diff -Nru darktable-4.4.2/.ci/Brewfile darktable-4.6.1/.ci/Brewfile --- darktable-4.4.2/.ci/Brewfile 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/.ci/Brewfile 2024-02-16 17:31:09.000000000 +0000 @@ -14,6 +14,7 @@ # You should have received a copy of the GNU General Public License # along with darktable. If not, see . +brew 'coreutils' brew 'cmake' brew 'pkg-config' brew 'adwaita-icon-theme' @@ -24,12 +25,14 @@ brew 'glib' brew 'gmic' brew 'gphoto2' -brew 'graphicsmagick' brew 'gtk+3' brew 'gtk-mac-integration' brew 'icu4c' +brew 'imagemagick@6' brew 'intltool' brew 'iso-codes' +brew 'jpeg-turbo' +brew 'jpeg-xl' brew 'json-glib' brew 'jsonschema' brew 'lensfun' @@ -51,6 +54,4 @@ brew 'cmocka' brew 'curl' brew 'perl' -brew 'jpeg' -brew 'jpeg-xl' brew 'webp' diff -Nru darktable-4.4.2/.ci/ci-script.sh darktable-4.6.1/.ci/ci-script.sh --- darktable-4.4.2/.ci/ci-script.sh 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/.ci/ci-script.sh 2024-02-16 17:31:09.000000000 +0000 @@ -115,7 +115,6 @@ -DUSE_OPENEXR=OFF \ -DBUILD_PRINT=OFF \ -DBUILD_RS_IDENTIFY=OFF \ - -DUSE_LENSFUN=OFF \ -DUSE_GMIC=OFF \ -DUSE_LIBSECRET=OFF \ $ECO "$SRC_DIR" || (cat "$BUILD_DIR"/CMakeFiles/CMakeOutput.log; cat "$BUILD_DIR"/CMakeFiles/CMakeError.log) @@ -142,7 +141,6 @@ -DUSE_OPENEXR=OFF \ -DBUILD_PRINT=OFF \ -DBUILD_RS_IDENTIFY=OFF \ - -DUSE_LENSFUN=OFF \ -DUSE_GMIC=OFF \ -DUSE_LIBSECRET=OFF \ -DBUILD_SSE2_CODEPATHS=OFF \ diff -Nru darktable-4.4.2/.ci/obs-workflows.yml darktable-4.6.1/.ci/obs-workflows.yml --- darktable-4.4.2/.ci/obs-workflows.yml 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/.ci/obs-workflows.yml 2024-02-16 17:31:09.000000000 +0000 @@ -0,0 +1,10 @@ +master: + steps: + - trigger_services: + project: graphics:darktable:master + package: darktable + filters: + event: push + branches: + only: + - master diff -Nru darktable-4.4.2/AUTHORS darktable-4.6.1/AUTHORS --- darktable-4.4.2/AUTHORS 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/AUTHORS 2024-02-16 17:31:09.000000000 +0000 @@ -2,69 +2,68 @@ Pascal Obry Aldric Renaudin Roman Lebedev -parafin -Edouard Gomez * translators: Victor Forsiuk Pascal Obry Jeronimo Pellegrini Martin Straeten +EdgarLux +Marko Vertainen Kang-Wei Hsu -Ryo Shinozaki -Besmir Godolja +Mario Zimmermann +Matteo Mardegan +RIM +Fabio Sirna Nicolas Auffray -Tianhao Chai -Matjaž Jeran +Petr Stasiak +Serkan ÖNDER +Яна Тунгушпаева +Besmir Godolja Báthory Péter -EdgarLux +Kofa +Matjaž Jeran +Nicolas +Ryo Shinozaki +Tianhao Chai bajdero -shinoryo -shlomi -François Delègue -Hanno Schwalm -Mario Zimmermann -Marko Vertainen -Tobias Kühne -Яна Тунгушпаева * contributors (at least 4 commits): Victor Forsiuk -Ralf Brown Hanno Schwalm Diederik ter Rahe -Miloš Komarčević -Dan Torop +Mario Zimmermann Jeronimo Pellegrini +Miloš Komarčević +Sakari Kapanen Martin Straeten -Mario Zimmermann -Mark-64 +Ralf Brown +solarer +EdgarLux +Chris Elston +Paolo DePetrillo +Bill Ferguson +gi-man +Marko Vertainen +rawfiner Kang-Wei Hsu Nicolas Auffray -rawfiner -Serkan ÖNDER -Bill Ferguson -Ryo Shinozaki -Simone Gotti -lhietal -Besmir Godolja -Dmitry Stoyanov -Manuel Presnitz -Petr Stasiak -Tianhao Chai -shonjir * Sub-module rawspeed contributors (at least 1 commit): Roman Lebedev Miloš Komarčević -Jordan Neumeyer -Philipp Lutz -Thomas Baumann -Howard Liberty +Georg Lukas +Yattaro +Jan Šmucr +Jorge Nerín +Marco Ristuccia +Massimo Paladin +Michael Allman +Omari Stephens +Victor Forsiuk * Sub-module integration contributors (at least 1 commit): Pascal Obry -ralfbrown -Simone Gotti +Sakari Kapanen -And all those of you that made previous releases possible. +And all those of you that made previous releases possible diff -Nru darktable-4.4.2/CMakeLists.txt darktable-4.6.1/CMakeLists.txt --- darktable-4.4.2/CMakeLists.txt 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/CMakeLists.txt 2024-02-16 17:31:09.000000000 +0000 @@ -148,6 +148,14 @@ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -L/usr/lib") set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -L/usr/lib") + if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "arm64" AND CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 15) + # request classic linker for Xcode 15 for Apple Silicon Macs + message("-- Xcode >= 15 on arm6 detected, requesting classic linker") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -ld_classic") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -ld_classic") + set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -ld_classic") + endif() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_DARWIN_C_SOURCE") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_DARWIN_C_SOURCE") add_definitions("-DOS_OBJECT_USE_OBJC=0") @@ -157,7 +165,6 @@ if(WIN32) message("-- Win32 build detected, setting default features") - set(CMAKE_FIND_LIBRARY_SUFFIXES .dll ${CMAKE_FIND_LIBRARY_SUFFIXES}) set(USE_COLORD OFF) set(USE_KWALLET OFF) set(BUILD_CMSTEST OFF) @@ -213,7 +220,7 @@ else(NOT SOURCE_PACKAGE) if(NOT EXISTS ${CMAKE_SOURCE_DIR}/src/version_gen.c) # should be expanded by git archive due to export-subst in .gitattributes - set(PROJECT_VERSION "archive-2c4744f64a8284a1810e005863bad1b9c93b16d8") + set(PROJECT_VERSION "archive-6f4a5ecd9c45ce56d10a6e1a0c5adcdab48c4b4d") # but was it expanded? if(PROJECT_VERSION MATCHES Format) set(PROJECT_VERSION "unknown-version") @@ -333,7 +340,7 @@ find_path(CLANG_OPENCL_INCLUDE_DIR opencl-c.h HINTS ${LLVM_INSTALL_PREFIX}/lib/clang ${LLVM_INSTALL_PREFIX}/lib64/clang - PATH_SUFFIXES include ${LLVM_PACKAGE_VERSION}/include + PATH_SUFFIXES include ${LLVM_PACKAGE_VERSION}/include ${LLVM_VERSION_MAJOR}/include NO_DEFAULT_PATH ) diff -Nru darktable-4.4.2/DefineOptions.cmake darktable-4.6.1/DefineOptions.cmake --- darktable-4.4.2/DefineOptions.cmake 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/DefineOptions.cmake 2024-02-16 17:31:09.000000000 +0000 @@ -35,7 +35,6 @@ option(BUILD_MSYS2_INSTALL "Build an MSYS2 version of the install, aka for Windows platform, but without dependency installs" OFF) option(BUILD_NOISE_TOOLS "Build tools for generating noise profiles" OFF) option(BUILD_CURVE_TOOLS "Build tools for generating base and tone curves" OFF) -option(USE_LENSFUN "Enable LensFun support" ON) option(USE_GMIC "Use G'MIC image processing framework." ON) option(USE_ICU "Use ICU - International Components for Unicode." ON) option(USE_GAME "Build 1st April easter egg game" ON) @@ -43,13 +42,13 @@ option(USE_SDL2 "Enable SDL2 support" ON) if (USE_OPENCL) - option(TESTBUILD_OPENCL_PROGRAMS "Test-compile opencl programs (needs llvm and clang 3.9+)" ON) + option(TESTBUILD_OPENCL_PROGRAMS "Test-compile OpenCL programs (needs LLVM and Clang 7+)" ON) else () set(TESTBUILD_OPENCL_PROGRAMS OFF) endif () if(APPLE) - option(USE_MAC_INTEGRATION "Enable OS X integration" ON) + option(USE_MAC_INTEGRATION "Enable macOS integration" ON) else(APPLE) set(USE_MAC_INTEGRATION OFF) endif(APPLE) diff -Nru darktable-4.4.2/README.md darktable-4.6.1/README.md --- darktable-4.4.2/README.md 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/README.md 2024-02-16 17:31:09.000000000 +0000 @@ -58,7 +58,7 @@ * Linux (64-bit) * FreeBSD (64-bit) * Windows (64-bit), 8.1 w/ [UCRT](https://support.microsoft.com/en-us/topic/update-for-universal-c-runtime-in-windows-c0514201-7fe6-95a3-b0a5-287930f3560c) and later -* macOS 11.3 and later +* macOS 12.5 and later *Big-endian platforms are not supported.* @@ -89,31 +89,31 @@ ### Latest release -4.2.1 (stable) +4.6.1 (stable) -* [Download executable for Windows](https://github.com/darktable-org/darktable/releases/download/release-4.2.1/darktable-4.2.1-win64.exe) -* [Download executable for macOS on Intel](https://github.com/darktable-org/darktable/releases/download/release-4.2.1/darktable-4.2.1_x86_64.dmg) -* [Download executable for macOS on Apple Silicon](https://github.com/darktable-org/darktable/releases/download/release-4.2.1/darktable-4.2.1_arm64.dmg) -* [Install native packages and repositories for Linux](https://software.opensuse.org/download.html?project=graphics:darktable:stable&package=darktable) +* [Download executable for Windows](https://github.com/darktable-org/darktable/releases/download/release-4.6.1/darktable-4.6.1-win64.exe) +* [Download executable for macOS on Intel](https://github.com/darktable-org/darktable/releases/download/release-4.6.1/darktable-4.6.1-x86_64.dmg) +* [Download executable for macOS on Apple Silicon](https://github.com/darktable-org/darktable/releases/download/release-4.6.1/darktable-4.6.1-arm64.dmg) +* [Install native packages or add a third-party repository for Linux distros](https://software.opensuse.org/download.html?project=graphics:darktable:stable&package=darktable) * [Install Flatpak package for Linux](https://flathub.org/apps/details/org.darktable.Darktable) * [More information about installing darktable on any system](https://www.darktable.org/install/) *When using a pre-built package, ensure that it has been built with Lua, OpenCL, OpenMP and Colord support. These are optional and will not prevent darktable from running if missing, but their absence will degrade the user experience. -Notably, some Flatpak, Snap and AppImage packages lack OpenCL and Lua support.* +You can check for them by running darktable with the `--version` command line option.* ### Development snapshot The development snapshot reflects the current state of the master branch. It is intended for testing and is generally not safe. See the notes [below](#get-the-source) for warnings and precautions about using the master branch. * [Install native packages and repositories for Linux](https://software.opensuse.org/download.html?project=graphics:darktable:master&package=darktable) (one snapshot per day). -* [Binary packages are provided for macOS and Windows on a nightly basis](https://github.com/darktable-org/darktable/actions/workflows/nightly.yml) (x86_64 only). +* [Binary packages are provided for Linux (AppImage), macOS and Windows on a nightly basis](https://github.com/darktable-org/darktable/releases/tag/nightly) (x86_64 only). Updating from older versions ---------------------------- -When updating darktable from an older release, you only need install +When updating darktable from an older release, you only need to install the newest version. Existing files will be preserved. However, newer releases occasionally need to change the structure of the library database @@ -152,15 +152,15 @@ ### Dependencies Compatible compilers/toolchains: -* Clang: 12 and later +* Clang: 13 and later * GCC: 12 and later * MinGW-w64: 10 and later -* XCode: 13.2 and later +* XCode: 14.2 and later Required dependencies (minimum version): * CMake 3.18 * GTK 3.24.15 -* GLib 2.40 +* GLib 2.56 * SQLite 3.15 *(but 3.24 or newer strongly recommended)* * Exiv2 0.25 *(but at least 0.27.4 built with ISO BMFF support needed for Canon CR3 raw import)* @@ -170,12 +170,12 @@ Optional dependencies (minimum version): * OpenMP 4.5 *(for CPU multi-threading and SIMD vectorization)* -* LLVM 3.9 *(for OpenCL checks at compilation time)* +* LLVM 7 *(for OpenCL checks at compilation time)* * OpenCL 1.2 *(for GPU-accelerated computing)* * Lua 5.4 *(for plugins and extension scripting)* * libgphoto2 2.5 *(for camera tethering)* * Imath 3.1.0 *(for 16-bit "half" float TIFF export and faster import)* -* libavif 0.8.2 *(for AVIF import & export)* +* libavif 0.9.3 *(for AVIF import & export)* * libheif 1.13.0 *(for HEIF/HEIC/HIF import; also for AVIF import if no libavif)* * libjxl 0.7.0 *(for JPEG XL import & export)* * WebP 0.3.0 *(for WebP import & export)* @@ -264,7 +264,7 @@ #### Latest stable release -4.4.2 +4.6.1 The darktable project releases two major versions every year, on Summer and Winter Solstices, tagged with even numbers (e.g. 4.0, 4.2, 4.4, 4.6). Minor revisions are tagged with a third digit (e.g. 4.0.1, 4.0.2) and mostly provide bug fixes and camera support. @@ -274,7 +274,7 @@ git clone --recurse-submodules --depth 1 https://github.com/darktable-org/darktable.git cd darktable git fetch --tags -git checkout tags/release-4.4.2 +git checkout tags/release-4.6.1 ``` ### Get submodules @@ -354,7 +354,7 @@ /opt/darktable-test/bin/darktable --configdir "~/.config/darktable-test" ``` -and ensure that you set the option "write sidecar file for each image" to "never" in preferences -> storage -> XMP. This way, +and ensure that you set the option "create sidecar file for each image" to "never" in preferences -> storage -> XMP. This way, your regular/stable version will save its configuration files in `~/.config/darktable`, as usual, the test/unstable one will save in `~/.config/darktable-test`, and the two versions will not produce database conflicts. diff -Nru darktable-4.4.2/RELEASE_NOTES.md darktable-4.6.1/RELEASE_NOTES.md --- darktable-4.4.2/RELEASE_NOTES.md 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/RELEASE_NOTES.md 2024-02-16 17:31:09.000000000 +0000 @@ -1,87 +1,148 @@ -We're proud to announce the new corrective release of darktable, 4.4.2! +We're proud to announce the new feature release of darktable, 4.6.1! -The github release is here: [https://github.com/darktable-org/darktable/releases/tag/release-4.4.2](https://github.com/darktable-org/darktable/releases/tag/release-4.4.2). +The github release is here: [https://github.com/darktable-org/darktable/releases/tag/release-4.6.1](https://github.com/darktable-org/darktable/releases/tag/release-4.6.1). As always, please don't use the autogenerated tarball provided by github, but only our tar.xz file. The checksums are: ``` -$ sha256sum darktable-4.4.2.tar.xz -??? darktable-4.4.2.tar.xz -$ sha256sum darktable-4.4.2-x86_64.dmg -??? darktable-4.4.2-x86_64.dmg -$ sha256sum darktable-4.4.2-arm64.dmg -??? darktable-4.4.2-arm64.dmg -$ sha256sum darktable-4.4.2-win64.exe -??? darktable-4.4.2-win64.exe +$ sha256sum darktable-4.6.1.tar.xz +??? darktable-4.6.1.tar.xz +$ sha256sum darktable-4.6.1-x86_64.dmg +??? darktable-4.6.1-x86_64.dmg +$ sha256sum darktable-4.6.1-arm64.dmg +??? darktable-4.6.1-arm64.dmg +$ sha256sum darktable-4.6.1-win64.exe +??? darktable-4.6.1.exe ``` -When updating from the stable 4.2.x series, please bear in +When updating from the stable 4.4 series, please bear in mind that your edits will be preserved during this process, but the new -library and configuration will no longer be usable with 4.2.x. +library and configuration will no longer be usable with 4.4. You are strongly advised to take a backup first. #### Important note: to make sure that darktable can keep on supporting the raw file format for your camera, *please* read [this post](https://discuss.pixls.us/t/raw-samples-wanted/5420?u=lebedevri) on how/what raw samples you can contribute to ensure that we have the *full* raw sample set for your camera under CC0 license! -Since darktable 4.4.1: +Since darktable 4.6.0: -- 53 commits to darktable+rawspeed -- 19 pull requests handled -- 1 issues closed +- 606 commits to darktable+rawspeed +- 57 pull requests handled +- 12 issues closed -_Please note that the darktable documentation is not currently complete for release 4.4 -and contributions are greatly appreciated. Please see the -[project documentation](https://github.com/darktable-org/dtdocs#contributing) -for more information on how to contribute._ +## The Big Ones + +- Documentation is now complete for darktable 4.6 including translation + into Ukrainian, Polish and Dutch. + See [https://www.darktable.org/resources](https://www.darktable.org/resources) + for details. + +## Performance Improvements + +- Fixed some OpenCL code paths that could produce garbled or unprocessed + output without reporting the issue back to the pixel-pipe. + +## Other Changes + +- Image discovery from the import dialog is now performed + asynchronously. This means that a long parsing (due to using recursive + mode in a directory with a huge number of sub-directories and + files) can be interrupted by selecting another place/directory + or un-checking recursive mode. ## Bug Fixes -- Graduated Density : Fix density computation for negative EVs. +- Fixed an issue with importing images in recursive mode. Using this + mode without having first selected a directory could freeze darktable due + to it having to parse the whole disk (though it would recover eventually). + +- When importing images in recursive mode, the thumbs for + images discovered in sub-directories are now properly displayed. + +- Fixed memory and resource leaks in the QOI image loader. + +- Fixed RGBE image loader. + +- Fixed possible issue with guide lines not being displayed in the + Rotate and Perspective module. + +- Fixed non-persistent zoom level in culling mode when switching images. + +- Fixed crashes related to details mask when running low on GPU or + system memory. + +- Fixed incorrect rendering of an initial snapshot after creating a + second snapshot. + +- Keep selected styles in the style dialog after editing them. + +- Fixed collection selection for ISO, aperture and aspect ratio to work + in all locales (independent of any locale-specific decimal separator). + +- Fixed RAW Chromatic Aberrations module, which could crash due to a + rounding issue while computing an internal buffer size. This could + cause a buffer overflow and possibly crash darktable. + +- Avoid undershoots while interpolating in Lens Correction, Rotate and + Perspective, Retouch and Liquify modules. + +- Include LibRaw fix for artifacts when decoding high-ISO Canon CR3 files. + +- Fixed possible incorrect module name when applying styles, whereby the + module name was showing garbled text. + +- Fixed possible incorrect default value initialized in Lens Correction legacy + parameter migration from version 2. -- Fixed wrong allocation of OpenCL image buffers for blending in - DEVELOP_BLEND_CS_RAW. +- Fixed garbled output and possible OpenCL errors for very dark regions + in Color Balance RGB. -- Fixed roi_in calculation in highlights and RAW Chromatic - Aberrations modules. +- Fixed OpenCL startup for various cards. -- Fix snap to grid for cm/inch units in print view. Only mm was - properly handled. +- Fixed issue where the right-click-and-drag rotation line was not being + displayed on the image when a darkroom module was expanded. -- Fix issue where the highlight reconstruction method was reset to - clip when applying a style from the lighttable. +- Fixed lighttable scrolling freeze when using a track-pad. -- Fix loading some image format using GraphicMagick on Windows. +- Fix compatibility issues with HDR created DNG files. -- Fix some possible wrong pixels at the lower-right border of images - due to some miscalculation in Input Color Profile & Color Balance. +- Fix possible crash when using the capture's live view mode. -- Fix retouch module ROI computation when a crop is active making some - clone area inactive when the source was outside of the cropped - area. This bug was only visible in darkroom main view. +- Fixed a zooming bug in lighttable culling mode where some images' area + could be plain grey or having a very small thumb. -- Fix positioning of demosaicer RoI in according to algorithm and - sensor. Avoid some possible (small) black artifacts on image - borders. +- Fixed some missing pipe recomputing making processing modules' graph + (Tone Equalizer for example) not properly updated. + +- Fixed several mouse scroll-wheel issues on macOS when used in + combination with the Shift modifier key (color harmonies + width, module height, geotagging date/time, ...). ## Lua ### API Version -- N/A +- API version is now 9.2.0 + +### Bug Fixes + +- Fixed `scripts_installer` to handle user names with spaces on Windows. + +### Add action support for Lua + ### Other Lua changes -- N/A +- n/a ## Notes - When exporting to AVIF, EXR, JPEG XL, or XCF, selecting specific - metadata (e.g. geo tag or creator) is not currently possible. For + metadata (e.g. geo-tag or creator) is not currently possible. For AVIF, EXR, JPEG XL, and XCF formats, darktable will not include any metadata fields unless the user selects all of the checkboxes in the - export preference options. + export module's preference options. - In order to support the correct display of numbers in darktable, the minimum supported Gtk version has had to be increased to @@ -90,42 +151,134 @@ `darktable.css` file on your system. See https://github.com/darktable-org/darktable/issues/13166. -- Starting with this release a new support policy regarding macOS - versions will be in place -- darktable releases will now only +- Starting with release 4.4 a new support policy regarding macOS + versions has been put in place – darktable releases will now only support those macOS versions that are also supported by Apple. - Release 4.4 therefore drops support for macOS versions older than - 11.3. + Release 4.6 therefore drops support for macOS versions older than + 12.5. ## Changed Dependencies ### Mandatory -- None +- n/a ### Optional -- None +- Bump libavif to 0.9.3 ## RawSpeed changes -## Camera support, compared to 4.2 +## Camera support, compared to 4.4 ### Base Support -- N/A +- Canon EOS Kiss F +- Canon EOS Kiss X50 +- Canon EOS Kiss X90 +- Canon IXY 220F (dng, chdk) +- Canon PowerShot SX220 HS (chdk) +- Fujifilm FinePix SL1000 +- Fujifilm GFX100 II (compressed) +- Fujifilm X-S20 (compressed) +- Hasselblad CFV-50c +- Hasselblad CFV-50c +- Hasselblad CFV-50c +- Hasselblad CFV-50c +- Hasselblad CFV-50c +- Hasselblad CFV-50c +- Hasselblad CFV-50c +- Hasselblad CFV-50c +- Hasselblad CFV-50c +- Hasselblad CFV-50c +- Hasselblad CFV-50c +- Hasselblad CFV II 50C +- Hasselblad CFV II 50C +- Hasselblad CFV 100C +- Hasselblad CFV 100C +- ImBack ImB35mm (chdk) +- Leica M (Typ 262) (dng) +- Leica M-D (Typ 262) (dng) +- Leica M10-D (dng) +- Leica M10-P (dng) +- Leica M10-R (dng) +- Leica M11-P (dng) +- Leica Q2 Monochrom (dng) +- Leica S (Typ 007) (dng) +- Leica S2 (dng) +- Leica S3 (dng) +- Leica SL2 (dng) +- Leica SL2-S (dng) +- Leica T (Typ 701) (dng) +- Leica TL (dng) +- Leica TL2 (dng) +- Leica V-Lux 4 (4:3, 3:2, 1:1, 16:9) +- Leica V-Lux 5 (3:2) +- Leica X (Typ 113) (dng) +- Leica X Vario (Typ 107) (dng) +- Leica X-U (Typ 113) (dng) +- Leica X1 (dng) +- Nikon Coolpix A1000 (12bit-uncompressed) +- Nikon Z f (14bit-compressed) +- OM System TG-7 +- Panasonic DC-TZ200D (3:2) +- Panasonic DC-TZ202D (3:2) +- Panasonic DC-TZ220 (3:2) +- Panasonic DC-TZ220D (3:2) +- Panasonic DC-ZS200D (3:2) +- Panasonic DC-ZS220 (3:2) +- Panasonic DC-ZS220D (3:2) +- Panasonic DMC-G10 (3:2, 16:9, 1:1) +- Panasonic DMC-GM1S (4:3, 3:2, 16:9, 1:1) +- Pentax K-3 Mark III Monochrome +- Pentax KF +- Pentax Q-S1 (dng) +- Pentax Q10 (dng) +- Samsung EK-GN120 +- Samsung G920F (dng) +- Samsung G935F (dng) +- Samsung GX10 (dng) +- Samsung GX20 (dng) +- Samsung NX3300 +- Sigma fp (dng) +- Sigma fp L (dng) +- Sigma sd Quattro (dng) +- Sigma sd Quattro H (dng) +- Sinar eVolution 75 +- Sony ILCE-6700 +- Sony ILCE-7CM2 +- Sony ILCE-7CR +- Sony ILME-FX3 +- Sony ZV-E1 ### White Balance Presets +- Leica M (Typ 240) +- Olympus E-P7 +- Olympus TG-6 +- Phase One IQ180 +- Sony ILCE-7CM2 + ### Noise Profiles +- Canon IXY 220F +- Nikon Z 8 +- Nikon Z f +- Olympus E-P7 +- Pentax *ist DS +- Sony ILCE-6700 +- Sony ILCE-7CM2 + ### Missing Compression Mode Support +- Adobe enhanced DNGs (JPEG XL flavor) - Apple ProRAW DNGs -- CinemaDNG lossless (Blackmagic, DJI, etc.) +- CinemaDNG lossless (Blackmagic, some DJI, etc.) - Fujifilm lossy RAFs - Nikon high efficiency NEFs -- Samsung Expert RAW DNGs +- Samsung Expert RAW DNGs (JPEG XL flavor) +- Sony downsized lossless ARWs ("M" for full-frame, "S" for full-frame & APS-C) ### Suspended Support @@ -143,32 +296,29 @@ - Minolta DiMAGE 5 - Olympus SP320 - Panasonic DMC-FX150 -- Pentax Q10 - Phase One IQ250 -- Samsung GX10 -- Samsung GX20 -- Samsung EK-GN120 -- Samsung SM-G920F -- Samsung SM-G935F - Sinar Hy6/ Sinarback eXact - ST Micro STV680 ## Translations -- New English translation with capital letters -- German +- Add support for Dutch online help which is now fully complete. + +- Albanian +- Brazilian Portuguese +- Chinese (Simplified) +- Chinese (Traditional) +- Czech +- Dutch - European Spanish - Finnish - French -- Hebrew +- German - Hungarian +- Italian - Japanese - Polish -- Brazilian Portuguese - Russian -- Turkish - Slovenian -- Albanian +- Turkish - Ukrainian -- Chinese - China -- Chinese - Taiwan diff -Nru darktable-4.4.2/build.sh darktable-4.6.1/build.sh --- darktable-4.4.2/build.sh 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/build.sh 2024-02-16 17:31:09.000000000 +0000 @@ -124,6 +124,7 @@ --) shift CMAKE_OPTIONS_FROM_CMDLINE="$@" + break ;; *) echo "warning: ignoring unknown option $option" diff -Nru darktable-4.4.2/cmake/compiler-versions.cmake darktable-4.6.1/cmake/compiler-versions.cmake --- darktable-4.4.2/cmake/compiler-versions.cmake 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/cmake/compiler-versions.cmake 2024-02-16 17:31:09.000000000 +0000 @@ -19,22 +19,17 @@ # * and the newest one that is available in *both* the # debian stable *and* the latest ubuntu LTS # -# As of the time of writing (2023-03-14), the next (spring) darktable release -# will happen in 2023-06 ish. By that time: -# * debian 12 (Bookworm) will have been released, -# coming with gcc-12 and LLVM15 -# * Ubuntu 22.04.1 LTS (Jammy Jellyfish) will be the newest LTS, -# coming with gcc-12 and LLVM15 -# * macOS 11 (Big Sur) be the oldest supported macOS version, -# with the newest supported Xcode version being 13.2 (LLVM12-based !) +# As of the time of writing (2024-02-14), the next (summer) darktable release +# will happen in 2024-06 ish. By that time: +# * debian 12 (Bookworm) is the newest debian stable, +# coming with gcc-12 and LLVM16 +# * Ubuntu 24.04 LTS (Noble Numbat) will have been released, +# coming with gcc-14 and LLVM18 +# * macOS 13 (Ventura) be the oldest supported macOS version, +# with the newest supported Xcode version being 15.2 (LLVM16-based !) # -# Therefore, we require GCC12, macOS 11 + Xcode 13.2, and LLVM12. -# -# The next+1 (fall) darktable release will happen 2023-12 ish, -# and by that time, macOS 11 will have EOL'd on 2023-10 ish, -# so after the spring release, macOS 12 will become required, -# and that will allow us to require Xcode 14.2 (LLVM14-based), -# and that will allow us to require LLVM14, +# Therefore, we currently require GCC12, macOS 12 + Xcode 14.2, and LLVM14. +# but should be able to require GCC12, macOS 13 + Xcode 15.2, and LLVM16. if(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_LESS 12) message(SEND_ERROR "GNU C compiler version ${CMAKE_C_COMPILER_VERSION} is too old and is unsupported. Version 12+ is required.") @@ -43,21 +38,21 @@ message(SEND_ERROR "GNU C++ compiler version ${CMAKE_CXX_COMPILER_VERSION} is too old and is unsupported. Version 12+ is required.") endif() -if(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND CMAKE_C_COMPILER_VERSION VERSION_LESS 12) - message(SEND_ERROR "LLVM Clang C compiler version ${CMAKE_C_COMPILER_VERSION} is too old and is unsupported. Version 12+ is required.") +if(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND CMAKE_C_COMPILER_VERSION VERSION_LESS 14) + message(SEND_ERROR "LLVM Clang C compiler version ${CMAKE_C_COMPILER_VERSION} is too old and is unsupported. Version 14+ is required.") endif() -if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12) - message(SEND_ERROR "LLVM Clang C++ compiler version ${CMAKE_CXX_COMPILER_VERSION} is too old and is unsupported. Version 12+ is required.") +if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 14) + message(SEND_ERROR "LLVM Clang C++ compiler version ${CMAKE_CXX_COMPILER_VERSION} is too old and is unsupported. Version 14+ is required.") endif() -# XCode 13.2 (apple clang 1300.0.29.3) is based on LLVM12 -if(CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND CMAKE_C_COMPILER_VERSION VERSION_LESS 13.0.0.13000029) - message(SEND_ERROR "XCode (Apple clang) C compiler version ${CMAKE_C_COMPILER_VERSION} is too old and is unsupported. XCode version 13.2+ is required.") +# XCode 14.2 (apple clang 1400.0.29.202) is based on LLVM14 +if(CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND CMAKE_C_COMPILER_VERSION VERSION_LESS 14.0.0.14000029) + message(SEND_ERROR "XCode (Apple clang) C compiler version ${CMAKE_C_COMPILER_VERSION} is too old and is unsupported. XCode version 14.2+ is required.") endif() -if(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13.0.0.13000029) - message(SEND_ERROR "XCode (Apple clang) C++ compiler version ${CMAKE_CXX_COMPILER_VERSION} is too old and is unsupported. XCode version 13.2+ is required.") +if(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 14.0.0.14000029) + message(SEND_ERROR "XCode (Apple clang) C++ compiler version ${CMAKE_CXX_COMPILER_VERSION} is too old and is unsupported. XCode version 14.2+ is required.") endif() -if(CMAKE_OSX_DEPLOYMENT_TARGET AND CMAKE_OSX_DEPLOYMENT_TARGET VERSION_LESS 11.3) - message(SEND_ERROR "Targeting OSX version ${CMAKE_OSX_DEPLOYMENT_TARGET} older than 11.3 is unsupported.") +if(CMAKE_OSX_DEPLOYMENT_TARGET AND CMAKE_OSX_DEPLOYMENT_TARGET VERSION_LESS 12.5) + message(SEND_ERROR "Targeting OSX version ${CMAKE_OSX_DEPLOYMENT_TARGET} older than 12.5 is unsupported.") endif() diff -Nru darktable-4.4.2/cmake/modules/FindGphoto2.cmake darktable-4.6.1/cmake/modules/FindGphoto2.cmake --- darktable-4.4.2/cmake/modules/FindGphoto2.cmake 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/cmake/modules/FindGphoto2.cmake 2024-02-16 17:31:09.000000000 +0000 @@ -35,6 +35,12 @@ set(Gphoto2_VERSION_STRING "${Gphoto2_PKGCONF_VERSION}") endif() +# Detect libgphoto2_port version +libfind_pkg_check_modules(Gphoto2_PORT_PKGCONF libgphoto2_port) +if(Gphoto2_PORT_PKGCONF_FOUND) + set(Gphoto2_PORT_VERSION_STRING "${Gphoto2_PORT_PKGCONF_VERSION}") +endif() + # handle the QUIETLY and REQUIRED arguments and set Gphoto2_FOUND to TRUE if # all listed variables are TRUE include(FindPackageHandleStandardArgs) diff -Nru darktable-4.4.2/cmake/modules/FindGraphicsMagick.cmake darktable-4.6.1/cmake/modules/FindGraphicsMagick.cmake --- darktable-4.4.2/cmake/modules/FindGraphicsMagick.cmake 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/cmake/modules/FindGraphicsMagick.cmake 2024-02-16 17:31:09.000000000 +0000 @@ -3,8 +3,9 @@ # # This module defines -# GraphicsMagick_INCLUDE_DIR, where to find *.h etc -# GraphicsMagick_LIBRARY, the libraries +# GraphicsMagick_VERSION +# GraphicsMagick_INCLUDE_DIRS, where to find *.h etc +# GraphicsMagick_LIBRARIES, the libraries # GraphicsMagick_FOUND, If false, do not try to use LCMS. @@ -26,13 +27,12 @@ HINTS ${GraphicsMagick_PKGCONF_LIBRARY_DIRS} ) +if(GraphicsMagick_PKGCONF_VERSION) + set(GraphicsMagick_VERSION ${GraphicsMagick_PKGCONF_VERSION}) +endif() + # Set the include dir variables and the libraries and let libfind_process do the rest. # NOTE: Singular variables for this library, plural for libraries this lib depends on. set(GraphicsMagick_PROCESS_INCLUDES ${GraphicsMagick_INCLUDE_DIR}) set(GraphicsMagick_PROCESS_LIBS ${GraphicsMagick_LIBRARY}) libfind_process(GraphicsMagick) - -if(GraphicsMagick_FOUND) - set(GraphicsMagick_INCLUDE_DIRS ${GraphicsMagick_INCLUDE_DIR}) - set(GraphicsMagick_LIBRARIES ${GraphicsMagick_LIBRARY}) -endif(GraphicsMagick_FOUND) diff -Nru darktable-4.4.2/cmake/modules/NSIS.template.in darktable-4.6.1/cmake/modules/NSIS.template.in --- darktable-4.4.2/cmake/modules/NSIS.template.in 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/cmake/modules/NSIS.template.in 2024-02-16 17:31:09.000000000 +0000 @@ -724,7 +724,7 @@ !define env_hkcu 'HKCU "Environment"' ; set variable for local machine WriteRegExpandStr ${env_hklm} CAMLIBS "$INSTDIR\lib\libgphoto2\@CPACK_NSIS_GPHOTO2_VERSION@" - WriteRegExpandStr ${env_hklm} IOLIBS $INSTDIR\lib\libgphoto2_port\0.12.1 + WriteRegExpandStr ${env_hklm} IOLIBS "$INSTDIR\lib\libgphoto2_port\@CPACK_NSIS_GPHOTO2_PORT_VERSION@" !insertmacro MUI_STARTMENU_WRITE_END diff -Nru darktable-4.4.2/cmake/windows-macros.cmake darktable-4.6.1/cmake/windows-macros.cmake --- darktable-4.4.2/cmake/windows-macros.cmake 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/cmake/windows-macros.cmake 2024-02-16 17:31:09.000000000 +0000 @@ -295,8 +295,8 @@ # Add GraphicsMagick libraries if(GraphicsMagick_FOUND) install(DIRECTORY - "${MINGW_PATH}/../lib/GraphicsMagick-${GraphicsMagick_PKGCONF_VERSION}/modules-Q16/coders" - DESTINATION lib/GraphicsMagick-${GraphicsMagick_PKGCONF_VERSION}/modules-Q16/ + "${MINGW_PATH}/../lib/GraphicsMagick-${GraphicsMagick_VERSION}/modules-Q16/coders" + DESTINATION lib/GraphicsMagick-${GraphicsMagick_VERSION}/modules-Q16/ COMPONENT DTApplication FILES_MATCHING PATTERN "*" # For some reason *.la files must be kept alongside DLLs diff -Nru darktable-4.4.2/data/CMakeLists.txt darktable-4.6.1/data/CMakeLists.txt --- darktable-4.4.2/data/CMakeLists.txt 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/data/CMakeLists.txt 2024-02-16 17:31:09.000000000 +0000 @@ -157,11 +157,18 @@ # Transform darktableconfig.xml into darktablerc # +set(DEFCONFIG_APPLE "false") +set(DEFCONFIG_NONAPPLE "true") set(DEFCONFIG_OPENCL "true") + if(APPLE) # OpenCL support on OS X isn't stable enough to enable it by default set(DEFCONFIG_OPENCL "false") + set(DEFCONFIG_APPLE "true") + set(DEFCONFIG_NONAPPLE "false") endif(APPLE) + + set(DEFCONFIG_AUDIOPLAYER "aplay") if(APPLE) # OS X doesn't have aplay, but afplay should do @@ -230,4 +237,6 @@ # # Install bash completion file. users/packagers can symlink that to /etc/bash_completion.d/ # -install(FILES darktable.bash DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/darktable COMPONENT DTApplication) +if ((NOT WIN32) OR BUILD_MSYS2_INSTALL) + install(FILES darktable.bash DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/darktable COMPONENT DTApplication) +endif() diff -Nru darktable-4.4.2/data/darktableconfig.dtd darktable-4.6.1/data/darktableconfig.dtd --- darktable-4.4.2/data/darktableconfig.dtd 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/data/darktableconfig.dtd 2024-02-16 17:31:09.000000000 +0000 @@ -1,9 +1,20 @@ - + + + + + + + + +
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+
+ + themes/usercss bool @@ -12,7 +45,7 @@ bool true prefer focused instance - if an instance of the module has focus, apply shortcut to that instance\nnote: blending shortcuts always apply to the focused instance + where multiple instances of a module are present, apply shortcuts to the instance that has focus\nif none are focused, the preferences below control rules that are followed (in order) to decide which module instance shortcuts will be applied to.\nnote: blending shortcuts always apply to the focused instance accel/prefer_expanded @@ -75,6 +108,18 @@ load default shortcuts before user settings. switch off to prevent deleted defaults returning + accel/show_tab_in_prefs + bool + true + show the shortcuts configuration tab in the preferences dialog + + + accel/hide_notice + bool + false + don't show advice in shortcuts dialog + + bauhaus/scale float 1.4 @@ -152,7 +197,7 @@ maximum width of the side panels in pixels (needs a restart) - + slideshow_delay int 5 @@ -186,19 +231,12 @@ prefer performance over quality if switched on, thumbnails and previews are rendered at lower quality but 4 times faster - - cache_disk_backend - bool - true - enable disk backend for thumbnail cache - if enabled, write thumbnails to disk (.cache/darktable/) when evicted from the memory cache.\nnote that this can take a lot of memory (several gigabytes for 20k images) and will never delete cached thumbnails again.\nit's safe though to delete these manually, if you want. light table performance will be increased greatly when browsing a lot.\nto generate all thumbnails of your entire collection offline, run 'darktable-generate-cache'. - - - cache_disk_backend_full - bool - false - enable disk backend for full preview cache - if enabled, write full preview to disk (.cache/darktable/) when evicted from the memory cache.\nnote that this can take a lot of memory (several gigabytes for 20k images) and will never delete cached thumbnails again.\nit's safe though to delete these manually, if you want.\nlight table performance will be increased greatly when zooming image in full preview mode. + + backthumbs_inactivity + float + 5.0 + inactivity time + user inactivity time (seconds) while being in lighttable before a thumbnail generation might start cache_color_managed @@ -252,8 +290,8 @@ on import - write sidecar file for each image - the sidecar files hold information about all your development steps to allow flawless re-importing of image files.\n\ndepending on the selected mode sidecar files will be written:\n - 'never'\n - 'on import': immediately after importing the image\n - 'after edit': after any user change on the image. + create XMP files + XMP sidecar files hold information about all your development steps to allow flawless re-importing of image files.\n\ndepending on the selected mode sidecar files will be created:\n - 'never'\n - 'on import': immediately after importing the image\n - 'after edit': after any user change on the image or adding tags. compress_xmp_tags @@ -268,12 +306,19 @@ store XMP tags in compressed format entries in XMP tags can get rather large and may exceed the available space to store the history stack in output files.\nthis option allows XMP tags to be compressed and save space. + + autosave_interval + int + 10 + auto-save interval + automatically save history while developing using the given interval (in seconds); set to zero to disable auto-saving. auto-saving might be disabled on slow drives. + omit_tag_hierarchy bool false omit hierarchy in simple tag lists - when creating XMP file the hierarchical tags are also added as a simple list\nof non-hierarchical ones to make them visible to some other programs.\nwhen this option is checked darktable will only include their last part\nand ignore the rest. so 'foo|bar|baz' will only add 'baz'. + when creating an XMP sidecar file the hierarchical tags are also added as a simple list\nof non-hierarchical ones to make them visible to some other programs.\nwhen this option is checked darktable will only include their last part\nand ignore the rest. so 'foo|bar|baz' will only add 'baz'. plugins/lighttable/tagging/no_uncategorized @@ -294,14 +339,14 @@ tags case sensitivity tags case sensitivity. without the Sqlite ICU extension, insensitivity works only for the 26 latin letters - + opencl bool ${DEFCONFIG_OPENCL} activate OpenCL support if found, use OpenCL runtime on your system to speed up processing.\ncan be switched on and off at any time. - + opencl_scheduling_profile @@ -314,19 +359,61 @@ OpenCL scheduling profile defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled systems:\n - 'default': GPU processes full and CPU processes preview pipe (adaptable by config parameters),\n - 'multiple GPUs': process both pixelpipes in parallel on two different GPUs,\n - 'very fast GPU': process both pixelpipes sequentially on the GPU. - - opencl_tuning_mode - - - - - - - - - nothing - tune OpenCL performance - allows runtime tuning of OpenCL devices:\n - 'memory size': uses a fixed headroom (400MB as default),\n - 'memory transfer': tries a faster memory access mode (pinned memory) used for tiling. + + opencl_tune_headroom + bool + false + use all device memory + if enabled darktable will use all device memory except a safety margin (headroom, default is 600MB) + + + clplatform_intelropenclhdgraphics + bool + ${DEFCONFIG_NONAPPLE} + Intel GPU + Intel(R) OpenCL Graphics for all supported platforms (vendor provided) + + + clplatform_nvidiacuda + bool + ${DEFCONFIG_NONAPPLE} + Nvidia CUDA + Nvidia CUDA based OpenCL (vendor provided) + + + clplatform_amdacceleratedparallelprocessing + bool + ${DEFCONFIG_NONAPPLE} + AMD ROCm + AMD Accelerated Parallel Processing (vendor provided) + + + clplatform_rusticl + bool + false + RustiCL + RustiCL Mesa OpenCL, still unstable. if you want to use this, you should disable the vendor driver + + + clplatform_apple + bool + ${DEFCONFIG_APPLE} + Apple + Apple OpenCL (vendor provided) + + + clplatform_openclon12 + bool + false + Microsoft OpenCLOn12 + Microsoft OpenCLOn12, only use this if the vendor provided driver does not work or there is none provided. + + + clplatform_other + bool + false + other platforms + if set, all unspecified platforms are accepted. only do this if no vendor driver is available opencl_library @@ -661,11 +748,11 @@ plugins/collect/filmroll_sort - - + + - id + import time sort film rolls by sets the collections-list order for film rolls @@ -923,11 +1010,11 @@ only select images that have not already been imported - ui_last/import_ignore_jpegs + ui_last/import_ignore_nonraws bool false - ignore JPEG images - when having raw+JPEG images together in one directory it makes no sense to import both. with this flag one can ignore all JPEGs found. + ignore non-raw images + if enabled, only raw files will be allowed to import. non-raw files will not be visible in the dialog and will not be imported. ui_last/import_apply_metadata @@ -980,8 +1067,8 @@ ui_last/import_last_directory - string - + dir + $(home) last opened directory. @@ -995,7 +1082,7 @@ ui_last/import_last_folder_descending bool - FALSE + false folders display order in folder pane @@ -1248,6 +1335,45 @@ if the thumbnail size is greater than this value, it will be processed using the full quality rendering path (better but slower).\nif you want all thumbnails and pre-rendered images in best quality you should choose the *always* option.\n(more comments in the manual) + cache_disk_backend + bool + true + enable disk backend for thumbnail cache + if enabled, write thumbnails to disk (.cache/darktable/) when evicted from the memory cache.\nnote that this can take a lot of memory (several gigabytes for 20k images) and will never delete cached thumbnails again.\nit's safe though to delete these manually, if you want. light table performance will be increased greatly when browsing a lot.\nto generate all thumbnails of your entire collection offline, run 'darktable-generate-cache'. + + + cache_disk_backend_full + bool + false + enable disk backend for full preview cache + if enabled, write full preview to disk (.cache/darktable/) when evicted from the memory cache.\nnote that this can take a lot of memory (several gigabytes for 20k images) and will never delete cached thumbnails again.\nit's safe though to delete these manually, if you want.\nlight table performance will be increased greatly when zooming image in full preview mode. + + + backthumbs_mipsize + + + + + + + + + + + + + never + generate thumbnails in background + if 'enable disk backend for thumbnail cache' is enabled thumbnails/mipmaps up to the selected size are generated while user is inactive in lighttable. + + + backthumbs_initialize + bool + false + reset cached thumbnails + force thumbnails to be regenerated by resetting the database. this may be needed in case some thumbnails have been manually removed or corrupted. + + plugins/lighttable/thumbnail_sizes string 120|400 @@ -1992,7 +2118,7 @@ max polygon points limit the number of points imported with polygon in find location module - + plugins/lighttable/metadata_view/pretty_location bool true @@ -2316,7 +2442,7 @@ whether to show the compute variance mode in denoiseprofile adds a mode in denoiseprofile that allows to compute the variance after the generalized anscombe transform is performed - + preview_downsampling @@ -2337,6 +2463,13 @@ show loading screen between images show gray loading screen when navigating between images in the darkroom\ndisable to just show a toast message + + darkroom/ui/develop_mask + bool + false + show mask in developer mode + if switched on, the mask visualize button will show the 'pure mask' instead of mask and image content. + plugins/lighttable/export/pixel_interpolator_warp @@ -2578,8 +2711,8 @@ plugins/imageio/format/tiff/shortfile - int - 0 + bool + false @@ -2688,8 +2821,8 @@ plugins/imageio/format/avif/color_mode - int - 0 + bool + false @@ -2702,15 +2835,15 @@ plugins/imageio/format/avif/compression_type - int - 0 + int + 1 plugins/imageio/format/avif/quality - int - 92 + int + 90 @@ -3392,13 +3525,6 @@ if more images are display in expose mode, zooming will be deactivated - codepaths/sse2 - bool - true - enable usage of SSE2-optimized codepaths - - - codepaths/openmp_simd bool false @@ -3474,7 +3600,7 @@ plugins/map/geotagging_search_url string - https://nominatim.openstreetmap.org/search/%s?format=xml&limit=%d&polygon_text=1 + https://nominatim.openstreetmap.org/search?q=%s&format=xml&limit=%d&polygon_text=1 Geotagging search URL this can be changed when the default OpenStreetMap search URL is broken @@ -3614,7 +3740,7 @@ float 10 the interval within which same widget changes are merged for undo - when continously manipulating the same widget (slider, curve) no new undo records are created during this time + when continuously manipulating the same widget (slider, curve) no new undo records are created during this time darkroom/undo/review_secs diff -Nru darktable-4.4.2/data/kernels/basic.cl darktable-4.6.1/data/kernels/basic.cl --- darktable-4.4.2/data/kernels/basic.cl 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/data/kernels/basic.cl 2024-02-16 17:31:09.000000000 +0000 @@ -309,7 +309,7 @@ float oval = 0.0f; if((irow >= 0) && (icol >= 0) && (icol < iwidth) && (irow < iheight)) - { + { const float ival = read_imagef(in, sampleri, (int2)(icol, irow)).x; const int c = (filters == 9u) ? FCxtrans(irow, icol, xtrans) : FC(irow, icol, filters); oval = (ival < clips[c]) ? 0.2f * ival : 1.0f; @@ -517,7 +517,8 @@ const unsigned int filters, global const unsigned char (*const xtrans)[6], global const float *clips, - global const float *chroma) + global const float *chroma, + const int fastcopymode) { const int x = get_global_id(0); const int y = get_global_id(1); @@ -531,11 +532,14 @@ { val = fmax(0.0f, read_imagef(in, samplerA, (int2)(icol, irow)).x); - const int color = (filters == 9u) ? FCxtrans(irow, icol, xtrans) : FC(irow, icol, filters); - if(val >= clips[color]) + if(!fastcopymode) { - const float ref = _calc_refavg(in, xtrans, filters, irow, icol, iheight, iwidth); - val = fmax(val, ref + chroma[color]); + const int color = (filters == 9u) ? FCxtrans(irow, icol, xtrans) : FC(irow, icol, filters); + if(val >= clips[color]) + { + const float ref = _calc_refavg(in, xtrans, filters, irow, icol, iheight, iwidth); + val = fmax(val, ref + chroma[color]); + } } } write_imagef (out, (int2)(x, y), val); @@ -1714,11 +1718,24 @@ /* kernel for clip&rotate: bicubic interpolation */ __kernel void -clip_rotate_bicubic(read_only image2d_t in, write_only image2d_t out, const int width, const int height, - const int in_width, const int in_height, - const int2 roi_in, const float2 roi_out, const float scale_in, const float scale_out, - const int flip, const float2 t, const float2 k, const float4 mat, - const float4 k_space, const float2 ka, const float4 ma, const float2 mb) +clip_rotate_bicubic(read_only image2d_t in, + write_only image2d_t out, + const int width, + const int height, + const int in_width, + const int in_height, + const int2 roi_in, + const float2 roi_out, + const float scale_in, + const float scale_out, + const int flip, + const float2 t, + const float2 k, + const float4 mat, + const float4 k_space, + const float2 ka, + const float4 ma, + const float2 mb) { const int x = get_global_id(0); const int y = get_global_id(1); @@ -1951,15 +1968,22 @@ ry = (ry <= iheight - 1) ? ry : iheight - 1; pixel.z = read_imagef(in, samplerf, (float2)(rx, ry)).z; - pixel = all(isfinite(pixel.xyz)) ? pixel : (float4)0.0f; + pixel = all(isfinite(pixel.xyz)) ? fmax(0.0f, pixel) : (float4)0.0f; write_imagef (out, (int2)(x, y), pixel); } /* kernels for the lens plugin: bicubic interpolation */ kernel void -lens_distort_bicubic (read_only image2d_t in, write_only image2d_t out, const int width, const int height, - const int iwidth, const int iheight, const int roi_in_x, const int roi_in_y, global float *pi, +lens_distort_bicubic (read_only image2d_t in, + write_only image2d_t out, + const int width, + const int height, + const int iwidth, + const int iheight, + const int roi_in_x, + const int roi_in_y, + global float *pi, const int do_nan_checks) { const int x = get_global_id(0); @@ -2088,7 +2112,7 @@ } pixel.z = sum/weight; - pixel = all(isfinite(pixel.xyz)) ? pixel : (float4)0.0f; + pixel = all(isfinite(pixel.xyz)) ? fmax(0.0f, pixel) : (float4)0.0f; write_imagef (out, (int2)(x, y), pixel); } @@ -2096,9 +2120,16 @@ /* kernels for the lens plugin: lanczos2 interpolation */ kernel void -lens_distort_lanczos2 (read_only image2d_t in, write_only image2d_t out, const int width, const int height, - const int iwidth, const int iheight, const int roi_in_x, const int roi_in_y, global float *pi, - const int do_nan_checks) +lens_distort_lanczos2 (read_only image2d_t in, + write_only image2d_t out, + const int width, + const int height, + const int iwidth, + const int iheight, + const int roi_in_x, + const int roi_in_y, + global float *pi, + const int do_nan_checks) { const int x = get_global_id(0); const int y = get_global_id(1); @@ -2226,7 +2257,7 @@ } pixel.z = sum/weight; - pixel = all(isfinite(pixel.xyz)) ? pixel : (float4)0.0f; + pixel = all(isfinite(pixel.xyz)) ? fmax(0.0f, pixel) : (float4)0.0f; write_imagef (out, (int2)(x, y), pixel); } @@ -2363,7 +2394,7 @@ } pixel.z = sum/weight; - pixel = all(isfinite(pixel.xyz)) ? pixel : (float4)0.0f; + pixel = all(isfinite(pixel.xyz)) ? fmax(0.0f, pixel) : (float4)0.0f; write_imagef (out, (int2)(x, y), pixel); } @@ -2418,9 +2449,18 @@ /* kernel for the ashift module: bicubic interpolation */ kernel void -ashift_bicubic (read_only image2d_t in, write_only image2d_t out, const int width, const int height, - const int iwidth, const int iheight, const int2 roi_in, const int2 roi_out, - const float in_scale, const float out_scale, const float2 clip, global float *homograph) +ashift_bicubic (read_only image2d_t in, + write_only image2d_t out, + const int width, + const int height, + const int iwidth, + const int iheight, + const int2 roi_in, + const int2 roi_out, + const float in_scale, + const float out_scale, + const float2 clip, + global float *homograph) { const int x = get_global_id(0); const int y = get_global_id(1); @@ -2483,9 +2523,18 @@ /* kernel for the ashift module: lanczos2 interpolation */ kernel void -ashift_lanczos2(read_only image2d_t in, write_only image2d_t out, const int width, const int height, - const int iwidth, const int iheight, const int2 roi_in, const int2 roi_out, - const float in_scale, const float out_scale, const float2 clip, global float *homograph) +ashift_lanczos2(read_only image2d_t in, + write_only image2d_t out, + const int width, + const int height, + const int iwidth, + const int iheight, + const int2 roi_in, + const int2 roi_out, + const float in_scale, + const float out_scale, + const float2 clip, + global float *homograph) { const int x = get_global_id(0); const int y = get_global_id(1); @@ -2548,9 +2597,18 @@ /* kernels for the ashift module: lanczos3 interpolation */ kernel void -ashift_lanczos3(read_only image2d_t in, write_only image2d_t out, const int width, const int height, - const int iwidth, const int iheight, const int2 roi_in, const int2 roi_out, - const float in_scale, const float out_scale, const float2 clip, global float *homograph) +ashift_lanczos3(read_only image2d_t in, + write_only image2d_t out, + const int width, + const int height, + const int iwidth, + const int iheight, + const int2 roi_in, + const int2 roi_out, + const float in_scale, + const float out_scale, + const float2 clip, + global float *homograph) { const int x = get_global_id(0); const int y = get_global_id(1); @@ -2605,14 +2663,108 @@ weight += w; } - pixel = (tx >= 0 && ty >= 0 && tx < iwidth && ty < iheight) ? pixel/weight : (float4)0.0f; + pixel = (tx >= 0 && ty >= 0 + && tx < iwidth && ty < iheight) ? pixel/weight : (float4)0.0f; + + write_imagef (out, (int2)(x, y), pixel); +} + +float _calc_vignette_spline(const float radius, + global float *spline, + const int splinesize) +{ + if(radius >= 1.0f) return spline[splinesize-1]; + + const float r = radius * (float)(splinesize-1 - 1); + const int i = (int)r; + const float frac = r - (float)i; + + const float p0 = spline[i]; + return p0 + (spline[i+1] - p0) * frac; +} + +float _interpolate_linear_spline(global float *xi, + global float *yi, + const int ni, + const float x) +{ + if(x < xi[0]) return yi[0]; + for(int i = 1; i < ni; i++) + { + if(x >= xi[i - 1] && x <= xi[i]) + { + const float dydx = (yi[i] - yi[i - 1]) / (xi[i] - xi[i - 1]); + return yi[i - 1] + (x - xi[i - 1]) * dydx; + } + } + return yi[ni - 1]; +} + +kernel void md_vignette(read_only image2d_t in, + write_only image2d_t out, + global float *knots_vig, + global float *vig, + const int width, + const int height, + const float w2, + const float h2, + const float r, + const int roix, + const int roiy, + const int knots) +{ + const int x = get_global_id(0); + const int y = get_global_id(1); + if(x >= width || y >= height) return; + + const float cx = ((float)(roix + x) - w2); + const float cy = ((float)(roiy + y) - h2); + const float4 spline = + _interpolate_linear_spline(knots_vig, vig, knots, r * sqrt(cx*cx + cy*cy)); + + float4 pixel = read_imagef(in, sampleri, (int2)(x, y)); + pixel /= fmax(1e-4, spline); + pixel.w = fmax(0.0f, pixel.w); write_imagef (out, (int2)(x, y), pixel); } +kernel void lens_man_vignette(read_only image2d_t in, + write_only image2d_t out, + global float *spline, + const int width, + const int height, + const float w2, + const float h2, + const int roix, + const int roiy, + const float inv_maxr, + const float intensity, + const int splinesize, + const int vigmask) +{ + const int x = get_global_id(0); + const int y = get_global_id(1); + if(x >= width || y >= height) return; + + const float dx = ((float)(roix + x) - w2); + const float dy = ((float)(roiy + y) - h2); + const float radius = sqrt(dx*dx + dy*dy) * inv_maxr; + const float4 val = intensity * _calc_vignette_spline(radius, spline, splinesize); + + float4 pixel = read_imagef(in, samplerA, (int2)(x, y)); + pixel *= (1.0f + val); + pixel.w = (vigmask) ? val.w : pixel.y; + + write_imagef (out, (int2)(x, y), pixel); +} kernel void -lens_vignette (read_only image2d_t in, write_only image2d_t out, const int width, const int height, global float4 *pi) +lens_vignette (read_only image2d_t in, + write_only image2d_t out, + const int width, + const int height, + global float4 *pi) { const int x = get_global_id(0); const int y = get_global_id(1); @@ -2627,11 +2779,303 @@ write_imagef (out, (int2)(x, y), pixel); } +float maketaps_bilinear(float *taps, + const int num_taps, + const float width, + const float first_tap, + const float interval) +{ + float iter[4]; + float vt[4]; + for(int c = 0; c < 4; c++) + iter[c] = 4.0f * interval; + for(int c = 0; c < 4; c++) + vt[c] = first_tap + (float)c * interval; + + const int runs = (num_taps + 3) / 4; + + for(int i = 0; i < runs; i++) + { + for(int c = 0; c < 4; c++) + taps[4*i + c] = 1.0f - (vt[c] < 0.0f ? -vt[c] : vt[c]); + // prepare next iteration + for(int c = 0; c < 4; c++) + vt[c] += iter[c]; + } + return 1.0f; //kernel norm is 1.0f by construction +} + +float maketaps_bicubic(float *taps, + const int num_taps, + const float width, + const float first_tap, + const float interval) +{ + float iter[4]; + float vt[4]; + for(int c = 0; c < 4; c++) + iter[c] = 4.0f * interval; + for(int c = 0; c < 4; c++) + vt[c] = first_tap + (float)c * interval; + + const int runs = (num_taps + 3) / 4; + + for(int i = 0; i < runs; i++) + { + // compute and store the values for the current four taps + float vt_abs[4]; + float t2[4]; // tap-squared + for(int c = 0; c < 4; c++) + { + vt_abs[c] = vt[c] < 0.0f ? -vt[c] : vt[c]; + t2[c] = vt[c] * vt[c]; + } + float t5[4]; + float mt2_add_t5_sub_8[4]; + for(int c = 0; c < 4; c++) + { + t5[c] = 5.0f * vt_abs[c]; + mt2_add_t5_sub_8[c] = t5[c] - 8.0f - t2[c]; + } + float b[4]; + float r12[4]; + for(int c = 0; c < 4; c++) + { + b[c] = vt_abs[c] * mt2_add_t5_sub_8[c] + 4.0f; + r12[c] = b[c] * 0.5f; // the value for 1 < t < 2 + } + float t23[4]; + float e[4]; + float r01[4]; + for(int c = 0; c < 4; c++) + { + t23[c] = 3.0f * t2[c] - t5[c]; + e[c] = t23[c] * vt_abs[c] + 2.0f; + r01[c] = e[c] * 0.5f; + } + // combine the values depending on whether abs(tap) is less than one or not + for(int c = 0; c < 4; c++) + { + taps[4*i + c] = vt_abs[c] <= 1.0f ? r01[c] : r12[c]; + } + // prepare next iteration + for(int c = 0; c < 4; c++) + vt[c] += iter[c]; + } + return 1.0f; //kernel norm is 1.0f by construction +} + +void vector_sin(const float *arg, float *sine) +{ + const float a = 4.0f / (M_PI_F * M_PI_F); + float abs_arg[4]; + for(int c = 0; c < 4; c++) + abs_arg[c] = (arg[c] < 0.0f) ? -arg[c] : arg[c]; + + float scaled[4]; + for(int c = 0; c < 4; c++) + scaled[c] = a * arg[c] * (M_PI_F - abs_arg[c]); + + float abs_scaled[4]; + for(int c = 0; c < 4; c++) + abs_scaled[c] = (scaled[c] < 0.0f) ? -scaled[c] : scaled[c]; + for(int c = 0; c < 4; c++) + sine[c] = scaled[c] * (0.225f * (abs_scaled[c] - 1.0f) + 1.0f); +} + +float maketaps_lanczos(float *taps, + const int num_taps, + const float width, + const float first_tap, + const float interval) +{ + float iter[4]; + float vt[4]; + for(int c = 0; c < 4; c++) + iter[c] = 4.0f * interval; + for(int c = 0; c < 4; c++) + vt[c] = first_tap + (float)c * interval; + float vw[4]; + for(int c = 0; c < 4; c++) + vw[c] = width; + + const int runs = (num_taps + 3) / 4; + + for(int i = 0; i < runs; i++) + { + float r[4]; + float sign[4]; + for(int c = 0; c < 4; c++) + { + const int a = (int)vt[c]; + r[c] = vt[c] - (float)a; + sign[c] = (a & 1) ? -1.0f : 1.0f; + } + float sine_arg1[4]; + float sine_arg2[4]; + for(int c = 0; c < 4; c++) + { + sine_arg1[c] = M_PI_F * r[c]; + sine_arg2[c] = M_PI_F * vt[c] / vw[c]; + } + float sine1[4]; + float sine2[4]; + vector_sin(sine_arg1, sine1); + vector_sin(sine_arg2, sine2); + float num[4]; + float denom[4]; + for(int c = 0; c < 4; c++) + { + num[c] = (vw[c] * sign[c] * sine1[c] * sine2[c]) + 1e-9f; + denom[c] = (M_PI_F*M_PI_F * vt[c] * vt[c]) + 1e-9f; + } + for(int c = 0; c < 4; c++) + { + taps[4*i + c] = num[c] / denom[c]; + } + // prepare next iteration + for(int c = 0; c < 4; c++) + vt[c] += iter[c]; + } + float norm = 0.0f; + for(int i = 0; i < num_taps; i++) + norm += taps[i]; + return norm; +} + +float compute_upsampling_taps(const int itor_mode, + const int itor_width, + float *taps, + float tt) +{ + const int f = (int)floor(tt) - itor_width + 1; + const float t = tt - (float)f; + + if(itor_mode == 1) + return maketaps_bicubic(taps, 2*itor_width, (float)itor_width, t, -1.0f); + else if(itor_mode == 2) + return maketaps_lanczos(taps, 2*itor_width, (float)itor_width, t, -1.0f); + else + return maketaps_bilinear(taps, 2*itor_width, (float)itor_width, t, -1.0f); +} + +static inline float get_image_channel(read_only image2d_t in, + const int x, + const int y, + const int c) +{ + float4 pixel = read_imagef(in, samplerA, (int2)(x, y)); + if(c == 0) + return pixel.x; + else if(c == 1) + return pixel.y; + else if(c == 2) + return pixel.z; + + return pixel.w; +} + +// Keep in sync with defines in interpolation +#define MAX_HALF_FILTER_WIDTH 3 +#define MAX_KERNEL_REQ ((2 * (MAX_HALF_FILTER_WIDTH) + 3) & (~3)) +float interpolation_compute_sample(read_only image2d_t in, + const int itor_mode, + const int itor_width, + const float x, + const float y, + const int width, + const int height, + const int plane) +{ + float kernelh[MAX_KERNEL_REQ]; + float kernelv[MAX_KERNEL_REQ]; + + // Compute both horizontal and vertical kernels + float normh = compute_upsampling_taps(itor_mode, itor_width, kernelh, x); + float normv = compute_upsampling_taps(itor_mode, itor_width, kernelv, y); + + int ix = (int)x; + int iy = (int)y; + if(ix >= 0 && iy >= 0 && ix < width && iy < height) + { + iy -= itor_width - 1; + ix -= itor_width - 1; + + const int tap_last = 2 * itor_width; + // Apply the kernel + float s = 0.0f; + for(int i = 0; i < tap_last; i++) + { + const int clip_y = min(max(iy + i, 0), height - 1); + float h = 0.0f; + for(int j = 0; j < tap_last; j++) + { + const int clip_x = min(max(ix + j, 0), width - 1); + h += kernelh[j] * get_image_channel(in, clip_x, clip_y, plane); + } + s += kernelv[i] * h; + } + return s / (normh * normv); + } + return 0.0f; +} +#undef MAX_KERNEL_REQ +#undef MAX_HALF_FILTER_WIDTH + +#define MAXKNOTS 16 +kernel void md_lens_correction(read_only image2d_t in, + write_only image2d_t out, + global float *knots_dist, + global float *cor_rgb, + const int owidth, + const int oheight, + const int iwidth, + const int iheight, + const float w2, + const float h2, + const float r, + const float scale, + const int roix, + const int roiy, + const int roox, + const int rooy, + const int knots, + const int itor_mode, + const int itor_width) +{ + const int x = get_global_id(0); + const int y = get_global_id(1); + if(x >= owidth || y >= oheight) return; + + const float cx = ((float)(roox + x) - w2) / scale; + const float cy = ((float)(rooy + y) - h2) / scale; + const float radius = r * sqrt(cx*cx + cy*cy); + + float output[4]; + for(int c = 0; c < 4; c++) + { + const int plane = (c == 3) ? 1 : c; + const float dr = + _interpolate_linear_spline(knots_dist, &cor_rgb[plane * MAXKNOTS], knots, radius); + const float xs = dr*cx + w2 - roix; + const float ys = dr*cy + h2 - roiy; + output[c] = fmax(0.0f, interpolation_compute_sample(in, itor_mode, itor_width, + xs, ys, iwidth, iheight, c)); + } + + float4 pixel = {output[0], output[1], output[2], output[3]}; + write_imagef(out, (int2)(x, y), pixel); +} +#undef MAXKNOTS /* kernel for flip */ __kernel void -flip(read_only image2d_t in, write_only image2d_t out, const int width, const int height, const int orientation) +flip(read_only image2d_t in, + write_only image2d_t out, + const int width, + const int height, + const int orientation) { const int x = get_global_id(0); const int y = get_global_id(1); @@ -2680,14 +3124,13 @@ /* kernel for monochrome */ kernel void -monochrome_filter( - read_only image2d_t in, - write_only image2d_t out, - const int width, - const int height, - const float a, - const float b, - const float size) +monochrome_filter(read_only image2d_t in, + write_only image2d_t out, + const int width, + const int height, + const float a, + const float b, + const float size) { const int x = get_global_id(0); const int y = get_global_id(1); @@ -2701,16 +3144,15 @@ } kernel void -monochrome( - read_only image2d_t in, - read_only image2d_t base, - write_only image2d_t out, - const int width, - const int height, - const float a, - const float b, - const float size, - float highlights) +monochrome(read_only image2d_t in, + read_only image2d_t base, + write_only image2d_t out, + const int width, + const int height, + const float a, + const float b, + const float size, + float highlights) { const int x = get_global_id(0); const int y = get_global_id(1); @@ -2731,8 +3173,14 @@ /* kernel for the plugin colorout, fast matrix + shaper path only */ kernel void -colorout (read_only image2d_t in, write_only image2d_t out, const int width, const int height, - global float *mat, read_only image2d_t lutr, read_only image2d_t lutg, read_only image2d_t lutb, +colorout (read_only image2d_t in, + write_only image2d_t out, + const int width, + const int height, + global float *mat, + read_only image2d_t lutr, + read_only image2d_t lutg, + read_only image2d_t lutb, global const float (*const a)[3]) { const int x = get_global_id(0); @@ -2760,8 +3208,14 @@ /* kernel for the levels plugin */ kernel void -levels (read_only image2d_t in, write_only image2d_t out, const int width, const int height, - read_only image2d_t lut, const float in_low, const float in_high, const float in_inv_gamma) +levels (read_only image2d_t in, + write_only image2d_t out, + const int width, + const int height, + read_only image2d_t lut, + const float in_low, + const float in_high, + const float in_inv_gamma) { const int x = get_global_id(0); const int y = get_global_id(1); @@ -2811,8 +3265,14 @@ kernel void -colorzones_v3 (read_only image2d_t in, write_only image2d_t out, const int width, const int height, const int channel, - read_only image2d_t table_L, read_only image2d_t table_a, read_only image2d_t table_b) +colorzones_v3 (read_only image2d_t in, + write_only image2d_t out, + const int width, + const int height, + const int channel, + read_only image2d_t table_L, + read_only image2d_t table_a, + read_only image2d_t table_b) { const int x = get_global_id(0); const int y = get_global_id(1); @@ -2859,8 +3319,14 @@ } kernel void -colorzones (read_only image2d_t in, write_only image2d_t out, const int width, const int height, const int channel, - read_only image2d_t table_L, read_only image2d_t table_C, read_only image2d_t table_h) +colorzones (read_only image2d_t in, + write_only image2d_t out, + const int width, + const int height, + const int channel, + read_only image2d_t table_L, + read_only image2d_t table_C, + read_only image2d_t table_h) { const int x = get_global_id(0); const int y = get_global_id(1); @@ -2902,8 +3368,13 @@ /* kernel for the zonesystem plugin */ kernel void -zonesystem (read_only image2d_t in, write_only image2d_t out, const int width, const int height, const int size, - global float *zonemap_offset, global float *zonemap_scale) +zonesystem (read_only image2d_t in, + write_only image2d_t out, + const int width, + const int height, + const int size, + global float *zonemap_offset, + global float *zonemap_scale) { const int x = get_global_id(0); const int y = get_global_id(1); @@ -2926,7 +3397,12 @@ /* kernel to fill an image with a color (for the borders plugin). */ kernel void -borders_fill (write_only image2d_t out, const int left, const int top, const int width, const int height, const float4 color) +borders_fill (write_only image2d_t out, + const int left, + const int top, + const int width, + const int height, + const float4 color) { const int x = get_global_id(0); const int y = get_global_id(1); @@ -2948,10 +3424,19 @@ } dt_clipping_preview_mode_t; kernel void -overexposed (read_only image2d_t in, write_only image2d_t out, read_only image2d_t tmp, const int width, const int height, - const float lower, const float upper, const float4 lower_color, const float4 upper_color, +overexposed (read_only image2d_t in, + write_only image2d_t out, + read_only image2d_t tmp, + const int width, + const int height, + const float lower, + const float upper, + const float4 lower_color, + const float4 upper_color, constant dt_colorspaces_iccprofile_info_cl_t *profile_info, - read_only image2d_t lut, const int use_work_profile, dt_clipping_preview_mode_t mode) + read_only image2d_t lut, + const int use_work_profile, + dt_clipping_preview_mode_t mode) { const int x = get_global_id(0); const int y = get_global_id(1); @@ -3031,12 +3516,18 @@ /* kernel for the rawoverexposed plugin. */ kernel void -rawoverexposed_mark_cfa ( - read_only image2d_t in, write_only image2d_t out, global float *pi, - const int width, const int height, - read_only image2d_t raw, const int raw_width, const int raw_height, - const unsigned int filters, global const unsigned char (*const xtrans)[6], - global unsigned int *threshold, global float *colors) +rawoverexposed_mark_cfa (read_only image2d_t in, + write_only image2d_t out, + global float *pi, + const int width, + const int height, + read_only image2d_t raw, + const int raw_width, + const int raw_height, + const unsigned int filters, + global const unsigned char (*const xtrans)[6], + global unsigned int *threshold, + global float *colors) { const int x = get_global_id(0); const int y = get_global_id(1); @@ -3053,7 +3544,9 @@ const uint raw_pixel = read_imageui(raw, sampleri, (int2)(raw_x, raw_y)).x; - const int c = (filters == 9u) ? FCxtrans(raw_y, raw_x, xtrans) : FC(raw_y, raw_x, filters); + const int c = (filters == 9u) + ? FCxtrans(raw_y, raw_x, xtrans) + : FC(raw_y, raw_x, filters); if(raw_pixel < threshold[c]) return; @@ -3070,12 +3563,18 @@ } kernel void -rawoverexposed_mark_solid ( - read_only image2d_t in, write_only image2d_t out, global float *pi, - const int width, const int height, - read_only image2d_t raw, const int raw_width, const int raw_height, - const unsigned int filters, global const unsigned char (*const xtrans)[6], - global unsigned int *threshold, const float4 solid_color) +rawoverexposed_mark_solid (read_only image2d_t in, + write_only image2d_t out, + global float *pi, + const int width, + const int height, + read_only image2d_t raw, + const int raw_width, + const int raw_height, + const unsigned int filters, + global const unsigned char (*const xtrans)[6], + global unsigned int *threshold, + const float4 solid_color) { const int x = get_global_id(0); const int y = get_global_id(1); @@ -3092,7 +3591,9 @@ const uint raw_pixel = read_imageui(raw, sampleri, (int2)(raw_x, raw_y)).x; - const int c = (filters == 9u) ? FCxtrans(raw_y, raw_x, xtrans) : FC(raw_y, raw_x, filters); + const int c = (filters == 9u) + ? FCxtrans(raw_y, raw_x, xtrans) + : FC(raw_y, raw_x, filters); if(raw_pixel < threshold[c]) return; @@ -3105,12 +3606,17 @@ } kernel void -rawoverexposed_falsecolor ( - read_only image2d_t in, write_only image2d_t out, global float *pi, - const int width, const int height, - read_only image2d_t raw, const int raw_width, const int raw_height, - const unsigned int filters, global const unsigned char (*const xtrans)[6], - global unsigned int *threshold) +rawoverexposed_falsecolor (read_only image2d_t in, + write_only image2d_t out, + global float *pi, + const int width, + const int height, + read_only image2d_t raw, + const int raw_width, + const int raw_height, + const unsigned int filters, + global const unsigned char (*const xtrans)[6], + global unsigned int *threshold) { const int x = get_global_id(0); const int y = get_global_id(1); @@ -3127,7 +3633,9 @@ const uint raw_pixel = read_imageui(raw, sampleri, (int2)(raw_x, raw_y)).x; - const int c = (filters == 9u) ? FCxtrans(raw_y, raw_x, xtrans) : FC(raw_y, raw_x, filters); + const int c = (filters == 9u) + ? FCxtrans(raw_y, raw_x, xtrans) + : FC(raw_y, raw_x, filters); if(raw_pixel < threshold[c]) return; @@ -3145,8 +3653,12 @@ /* kernel for the lowlight plugin. */ kernel void -lowlight (read_only image2d_t in, write_only image2d_t out, const int width, const int height, - const float4 XYZ_sw, read_only image2d_t lut) +lowlight (read_only image2d_t in, + write_only image2d_t out, + const int width, + const int height, + const float4 XYZ_sw, + read_only image2d_t lut) { const int x = get_global_id(0); const int y = get_global_id(1); @@ -3191,8 +3703,15 @@ /* kernel for the contrast lightness saturation module */ kernel void -colisa (read_only image2d_t in, write_only image2d_t out, unsigned int width, unsigned int height, const float saturation, - read_only image2d_t ctable, constant float *ca, read_only image2d_t ltable, constant float *la) +colisa (read_only image2d_t in, + write_only image2d_t out, + unsigned int width, + unsigned int height, + const float saturation, + read_only image2d_t ctable, + constant float *ca, + read_only image2d_t ltable, + constant float *la) { const unsigned int x = get_global_id(0); const unsigned int y = get_global_id(1); @@ -3214,8 +3733,12 @@ /* kernel for the unbreak input profile module - gamma version */ kernel void -profilegamma (read_only image2d_t in, write_only image2d_t out, int width, int height, - read_only image2d_t table, constant float *ta) +profilegamma (read_only image2d_t in, + write_only image2d_t out, + int width, + int height, + read_only image2d_t table, + constant float *ta) { const unsigned int x = get_global_id(0); const unsigned int y = get_global_id(1); @@ -3235,7 +3758,13 @@ /* kernel for the unbreak input profile module - log version */ kernel void -profilegamma_log (read_only image2d_t in, write_only image2d_t out, int width, int height, const float dynamic_range, const float shadows_range, const float grey) +profilegamma_log (read_only image2d_t in, + write_only image2d_t out, + int width, + int height, + const float dynamic_range, + const float shadows_range, + const float grey) { const unsigned int x = get_global_id(0); const unsigned int y = get_global_id(1); @@ -3260,13 +3789,22 @@ /* kernel for the interpolation resample helper */ kernel void -interpolation_resample (read_only image2d_t in, write_only image2d_t out, const int width, const int height, - const global int *hmeta, const global int *vmeta, - const global int *hlength, const global int *vlength, - const global int *hindex, const global int *vindex, - const global float *hkernel, const global float *vkernel, - const int htaps, const int vtaps, - local float *lkernel, local int *lindex, +interpolation_resample (read_only image2d_t in, + write_only image2d_t out, + const int width, + const int height, + const global int *hmeta, + const global int *vmeta, + const global int *hlength, + const global int *vlength, + const global int *hindex, + const global int *vindex, + const global float *hkernel, + const global float *vkernel, + const int htaps, + const int vtaps, + local float *lkernel, + local int *lindex, local float4 *buffer) { const int x = get_global_id(0); diff -Nru darktable-4.4.2/data/kernels/blendop.cl darktable-4.6.1/data/kernels/blendop.cl --- darktable-4.4.2/data/kernels/blendop.cl 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/data/kernels/blendop.cl 2024-02-16 17:31:09.000000000 +0000 @@ -942,7 +942,7 @@ } - write_imagef(out, (int2)(x, y), (float4)(o, 0.0f, 0.0f, 0.0f)); + write_imagef(out, (int2)(x, y), o); } diff -Nru darktable-4.4.2/data/kernels/color_conversion.h darktable-4.6.1/data/kernels/color_conversion.h --- darktable-4.4.2/data/kernels/color_conversion.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/data/kernels/color_conversion.h 2024-02-16 17:31:09.000000000 +0000 @@ -19,7 +19,7 @@ #include "common.h" #include "colorspace.h" -// must be in synch with dt_iop_colorspace_type_t in imageop.h +// must be in synch with dt_iop_colorspace_type_t in colorspaces.h typedef enum dt_iop_colorspace_type_t { IOP_CS_NONE = -1, diff -Nru darktable-4.4.2/data/kernels/colorspace.h darktable-4.6.1/data/kernels/colorspace.h --- darktable-4.4.2/data/kernels/colorspace.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/data/kernels/colorspace.h 2024-02-16 17:31:09.000000000 +0000 @@ -825,7 +825,7 @@ xyY_to_dt_UCS_UV(xyY, UV_star_prime); // Y upper limit is calculated from the L star upper limit. - const float DT_UCS_Y_UPPER_LIMIT = 13237757000.f; + const float DT_UCS_Y_UPPER_LIMIT = 1e8f; const float L_star = Y_to_dt_UCS_L_star(clamp(xyY.z, 0.f, DT_UCS_Y_UPPER_LIMIT)); const float M2 = UV_star_prime[0] * UV_star_prime[0] + UV_star_prime[1] * UV_star_prime[1]; // square of colorfulness M @@ -852,7 +852,7 @@ // should be L_star = powf(JCH[0], 1.f / cz) * L_white but we treat only the case where cz = 1 // L_star upper limit is 2.098883786377 truncated to 32-bit float and last decimal removed. // By clipping L_star to this limit, we ensure dt_UCS_L_star_to_Y() doesn't divide by zero. - const float DT_UCS_L_STAR_UPPER_LIMIT = 2.098883f; + const float DT_UCS_L_STAR_UPPER_LIMIT = 2.09885f; const float L_star = clamp(JCH.x * L_white, 0.f, DT_UCS_L_STAR_UPPER_LIMIT); const float M = L_star != 0.f ? native_powr(JCH.y * L_white / (15.932993652962535f * native_powr(L_star, 0.6523997524738018f)), 0.8322850678616855f) diff -Nru darktable-4.4.2/data/kernels/demosaic_rcd.cl darktable-4.6.1/data/kernels/demosaic_rcd.cl --- darktable-4.4.2/data/kernels/demosaic_rcd.cl 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/data/kernels/demosaic_rcd.cl 2024-02-16 17:31:09.000000000 +0000 @@ -28,7 +28,7 @@ // sigmoid function // result is in ]0;1] range // inflexion point is at (x, y) (threshold, 0.5) - return 1.0f / (1.0f + native_exp(16.0f - (16.0f / threshold) * val)); + return 1.0f / (1.0f + dt_fast_expf(16.0f - (16.0f / threshold) * val)); } // Populate cfa and rgb data by normalized input @@ -48,7 +48,7 @@ cfa[idx] = rgbcol[idx] = val; } -// Write back-normalized data in rgb channels to output +// Write back-normalized data in rgb channels to output __kernel void rcd_write_output (__write_only image2d_t out, global float *rgb0, global float *rgb1, global float *rgb2, const int w, const int height, const float scale, const int border) { const int col = get_global_id(0); @@ -138,7 +138,7 @@ // G@B and G@R interpolation rgb1[idx] = mix(V_Est, H_Est, VH_Disc); -} +} // Step 4.0: Calculate the square of the P/Q diagonals color difference high pass filter __kernel void rcd_step_4_1(global float *cfa, global float *p_diff, global float *q_diff, const int w, const int height, const unsigned int filters) @@ -164,7 +164,7 @@ const int idx = mad24(row, w, col); const int idx2 = idx / 2; const int idx3 = (idx - w - 1) / 2; - const int idx4 = (idx + w - 1) / 2; + const int idx4 = (idx + w - 1) / 2; const float eps = 1e-10f; const float P_Stat = fmax(eps, p_diff[idx3] + p_diff[idx2] + p_diff[idx4 + 1]); @@ -184,7 +184,7 @@ global float *rgbc = rgb0; if(color == 1) rgbc = rgb1; else if(color == 2) rgbc = rgb2; - + const int idx = mad24(row, w, col); const int pqidx = idx / 2; const int pqidx2 = (idx - w - 1) / 2; @@ -248,7 +248,7 @@ const float SNabs = fabs(rgbc[idx - w] - rgbc[idx + w]); const float EWabs = fabs(rgbc[idx - 1] - rgbc[idx + 1]); - + // Cardinal gradients const float N_Grad = N1 + SNabs + fabs(rgbc[idx - w] - rgbc[idx - w3]); const float S_Grad = S1 + SNabs + fabs(rgbc[idx + w] - rgbc[idx + w3]); @@ -270,6 +270,34 @@ } } +__kernel void write_blended_dual(__read_only image2d_t high, + __read_only image2d_t low, + __write_only image2d_t out, + const int w, + const int height, + global float *mask, + const int showmask) +{ + const int col = get_global_id(0); + const int row = get_global_id(1); + if((col >= w) || (row >= height)) return; + const int idx = mad24(row, w, col); + + float4 data; + + const float4 high_val = read_imagef(high, sampleri, (int2)(col, row)); + const float4 low_val = read_imagef(low, sampleri, (int2)(col, row)); + const float4 blender = mask[idx]; + data = mix(low_val, high_val, blender); + + if(showmask) + data.w = mask[idx]; + else + data.w = 0.0f; + + write_imagef(out, (int2)(col, row), fmax(data, 0.0f)); +} + __kernel void calc_Y0_mask(global float *mask, __read_only image2d_t in, const int w, const int height, const float red, const float green, const float blue) { const int col = get_global_id(0); @@ -297,7 +325,7 @@ int inrow = row < 1 ? 1 : row; inrow = row > height - 2 ? height - 2 : inrow; - const int idx = mad24(inrow, w, incol); + const int idx = mad24(inrow, w, incol); // scharr operator const float gx = 47.0f * (in[idx-w-1] - in[idx-w+1]) @@ -310,8 +338,7 @@ out[oidx] = gradient_magnitude / 16.0f; } - -__kernel void write_scharr_mask(global float *in, __write_only image2d_t out, const int w, const int height) +__kernel void write_scharr_mask(global float *in, global float *out, const int w, const int height) { const int col = get_global_id(0); const int row = get_global_id(1); @@ -324,7 +351,7 @@ int inrow = row < 1 ? 1 : row; inrow = row > height - 2 ? height - 2 : inrow; - const int idx = mad24(inrow, w, incol); + const int idx = mad24(inrow, w, incol); // scharr operator const float gx = 47.0f * (in[idx-w-1] - in[idx-w+1]) @@ -334,67 +361,21 @@ + 162.0f * (in[idx-w] - in[idx+w]) + 47.0f * (in[idx-w+1] - in[idx+w+1]); const float gradient_magnitude = native_sqrt(sqrf(gx / 256.0f) + sqrf(gy / 256.0f)); - write_imagef(out, (int2)(col, row), gradient_magnitude / 16.0f); + out[idx] = gradient_magnitude / 16.0f; } - __kernel void calc_detail_blend(global float *in, global float *out, const int w, const int height, const float threshold, const int detail) { const int col = get_global_id(0); const int row = get_global_id(1); if((col >= w) || (row >= height)) return; - const int idx = mad24(row, w, col); + const int idx = mad24(row, w, col); const float blend = ICLAMP(calcBlendFactor(in[idx], threshold), 0.0f, 1.0f); out[idx] = detail ? blend : 1.0f - blend; } -__kernel void readin_mask(global float *mask, __read_only image2d_t in, const int w, const int height) -{ - const int col = get_global_id(0); - const int row = get_global_id(1); - if((col >= w) || (row >= height)) return; - - const int idx = mad24(row, w, col); - const float val = read_imagef(in, sampleri, (int2)(col, row)).x; - mask[idx] = val; -} - -__kernel void writeout_mask(global const float *mask, __write_only image2d_t out, const int w, const int height) -{ - const int col = get_global_id(0); - const int row = get_global_id(1); - if((col >= w) || (row >= height)) return; - const int idx = mad24(row, w, col); - - const float val = mask[idx]; - write_imagef(out, (int2)(col, row), val); -} - -__kernel void write_blended_dual(__read_only image2d_t high, __read_only image2d_t low, __write_only image2d_t out, const int w, const int height, global float *mask, const int showmask) -{ - const int col = get_global_id(0); - const int row = get_global_id(1); - if((col >= w) || (row >= height)) return; - const int idx = mad24(row, w, col); - - float4 data; - - if(showmask) - { - data = mask[idx]; - } - else - { - const float4 high_val = read_imagef(high, sampleri, (int2)(col, row)); - const float4 low_val = read_imagef(low, sampleri, (int2)(col, row)); - const float4 blender = mask[idx]; - data = mix(low_val, high_val, blender); - } - write_imagef(out, (int2)(col, row), fmax(data, 0.0f)); -} - __kernel void fastblur_mask_9x9(global float *src, global float *out, const int w, const int height, global const float *kern) { const int col = get_global_id(0); @@ -406,7 +387,7 @@ incol = col > w - 5 ? w - 5 : incol; int inrow = row < 4 ? 4 : row; inrow = row > height - 5 ? height - 5 : inrow; - const int i = mad24(inrow, w, incol); + const int i = mad24(inrow, w, incol); const int w2 = 2 * w; const int w3 = 3 * w; @@ -576,7 +557,7 @@ const int c = FC(row, col, filters); float4 color = buffer[0]; if(row > 0 && col > 0 && col < width - 1 && row < height - 1) - { + { if(c == 1 || c == 3) { // calculate red and blue for green pixels: // need 4-nbhood: diff -Nru darktable-4.4.2/data/kernels/extended.cl darktable-4.6.1/data/kernels/extended.cl --- darktable-4.4.2/data/kernels/extended.cl 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/data/kernels/extended.cl 2024-02-16 17:31:09.000000000 +0000 @@ -750,7 +750,7 @@ #define LUT_ELEM 360 // gamut LUT number of elements: resolution of 1° -static inline float lookup_gamut(read_only image2d_t gamut_lut, const float x) +static inline float lookup_gamut(global const float *gamut_lut, const float x) { // WARNING : x should be between [-pi ; pi ], which is the default output of atan2 anyway @@ -772,18 +772,10 @@ else if(xii > LUT_ELEM - 1) xii = 0; // fetch the corresponding y values - const float y_prev = read_imagef(gamut_lut, sampleri, (int2)(xi, 0)).x; - const float y_next = read_imagef(gamut_lut, sampleri, (int2)(xii, 0)).x; + const float y_prev = gamut_lut[xi]; - // assume that we are exactly on an integer LUT element - float out = y_prev; - - if(x_next != x_prev) - // we are between 2 LUT elements : do linear interpolation - // actually, we only add the slope term on the previous one - out += (x_test - x_prev) * (y_next - y_prev) / (x_next - x_prev); - - return out; + // return y_prev if we are on the same integer LUT element or do linear interpolation + return y_prev + ((xi != xii) ? (x_test - x_prev) * (gamut_lut[xii] - y_prev) : 0.0f); } @@ -808,7 +800,7 @@ const int width, const int height, constant const dt_colorspaces_iccprofile_info_cl_t *const profile_info, constant const float *const matrix_in, constant const float *const matrix_out, - read_only image2d_t gamut_lut, + global const float *gamut_lut, const float shadows_weight, const float highlights_weight, const float midtones_weight, const float mask_grey_fulcrum, const float hue_angle, const float chroma_global, const float4 chroma, const float vibrance, const float4 global_offset, const float4 shadows, const float4 highlights, const float4 midtones, @@ -824,7 +816,8 @@ const int x = get_global_id(0); const int y = get_global_id(1); if(x >= width || y >= height) return; - const float4 pix_in = read_imagef(in, sampleri, (int2)(x, y)); + // we clip pipeline RGB while reading; this also ensures a proper alpha + const float4 pix_in = fmax(0.0f, read_imagef(in, sampleri, (int2)(x, y))); float4 XYZ_D65 = 0.f; float4 LMS = 0.f; @@ -832,8 +825,7 @@ float4 Yrg = 0.f; float4 Ych = 0.f; - // clip pipeline RGB - RGB = fmax(pix_in, 0.f); + RGB = pix_in; // go to CIE 2006 LMS D65 LMS = matrix_product_float4(RGB, matrix_in); @@ -988,6 +980,7 @@ } else { + XYZ_D65 = fmax(0.0f, XYZ_D65); float4 xyY = dt_XYZ_to_xyY(XYZ_D65); float4 JCH = xyY_to_dt_UCS_JCH(xyY, L_white); float4 HCB = dt_UCS_JCH_to_HCB(JCH); @@ -999,8 +992,8 @@ // This would be the full matrice of direct rotation if we didn't need only its last row //const float M_rot_dir[2][2] = { { cos_T, -sin_T }, { sin_T, cos_T } }; - float P = HCB.y; - float W = sin_T * HCB.y + cos_T * HCB.z; + const float P = fmax(FLT_MIN, HCB.y); + const float W = sin_T * HCB.y + cos_T * HCB.z; float a = fmax(1.f + saturation_global + dot(opacities, saturation), 0.f); const float b = fmax(1.f + brilliance_global + dot(opacities, brilliance), 0.f); @@ -1124,3 +1117,20 @@ write_imagef (out, (int2)(x, y), opixel); } + +kernel void +primaries(read_only image2d_t in, + write_only image2d_t out, + const int width, + const int height, + constant const float *const matrix) +{ + const int x = get_global_id(0); + const int y = get_global_id(1); + if(x >= width || y >= height) return; + + const float4 ipixel = read_imagef(in, sampleri, (int2)(x, y)); + float4 opixel = matrix_product_float4(ipixel, matrix); + opixel.w = ipixel.w; + write_imagef(out, (int2)(x, y), opixel); +} diff -Nru darktable-4.4.2/data/kernels/filmic.cl darktable-4.6.1/data/kernels/filmic.cl --- darktable-4.4.2/data/kernels/filmic.cl 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/data/kernels/filmic.cl 2024-02-16 17:31:09.000000000 +0000 @@ -1038,7 +1038,7 @@ kernel void filmic_mask_clipped_pixels(read_only image2d_t in, write_only image2d_t out, int width, int height, - const float normalize, const float feathering, write_only image2d_t is_clipped) + const float normalize, const float feathering, global uint *is_clipped) { const unsigned int x = get_global_id(0); const unsigned int y = get_global_id(1); @@ -1052,7 +1052,7 @@ const float argument = -pix_max * normalize + feathering; const float weight = clamp(1.0f / ( 1.0f + native_exp2(argument)), 0.f, 1.f); - if(4.f > argument) write_imageui(is_clipped, (int2)(0, 0), 1); + if(4.f > argument) *is_clipped = 1; write_imagef(out, (int2)(x, y), weight); } diff -Nru darktable-4.4.2/data/kernels/guided_filter.cl darktable-4.6.1/data/kernels/guided_filter.cl --- darktable-4.4.2/data/kernels/guided_filter.cl 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/data/kernels/guided_filter.cl 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,7 @@ /* This file is part of darktable, copyright (c) 2019 Heiko Bauke + Copyright (C) 2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -18,62 +19,69 @@ #include "common.h" -kernel void guided_filter_split_rgb_image(const int width, const int height, read_only image2d_t in, - write_only image2d_t out_r, write_only image2d_t out_g, - write_only image2d_t out_b, const float guide_weight) +kernel void guided_filter_split_rgb_image(const int width, + const int height, + read_only image2d_t guide, + write_only image2d_t out_r, + write_only image2d_t out_g, + write_only image2d_t out_b, + const float guide_weight) { const int x = get_global_id(0); const int y = get_global_id(1); if(x >= width || y >= height) return; - const float4 pixel = read_imagef(in, sampleri, (int2)(x, y)); - write_imagef(out_r, (int2)(x, y), (float4)(pixel.x * guide_weight, 0.0f, 0.0f, 0.0f)); - write_imagef(out_g, (int2)(x, y), (float4)(pixel.y * guide_weight, 0.0f, 0.0f, 0.0f)); - write_imagef(out_b, (int2)(x, y), (float4)(pixel.z * guide_weight, 0.0f, 0.0f, 0.0f)); + const float4 weight = { guide_weight, guide_weight, guide_weight, 0.0f }; + const float4 pixel = weight * fmin(100.0, fmax(0.0, read_imagef(guide, sampleri, (int2)(x, y)))); + write_imagef(out_r, (int2)(x, y), pixel.x); + write_imagef(out_g, (int2)(x, y), pixel.y); + write_imagef(out_b, (int2)(x, y), pixel.z); } // Kahan summation algorithm -#define Kahan_sum(m, c, add) \ - { \ - const float t1 = (add) - (c); \ - const float t2 = (m) + t1; \ - c = (t2 - m) - t1; \ - m = t2; \ +#define Kahan_sum(m, c, add) \ + { \ + const float t1 = (add) - (c); \ + const float t2 = (m) + t1; \ + c = (t2 - m) - t1; \ + m = t2; \ } -kernel void guided_filter_box_mean_x(const int width, const int height, read_only image2d_t in, - write_only image2d_t out, const int w) +kernel void guided_filter_box_mean_x(const int width, + const int height, + read_only image2d_t in, + write_only image2d_t out, + const int w) { - const int x = get_global_id(0); - const int y = get_global_id(1); - if(x >= 1 || y >= height) return; + const int y = get_global_id(0); + if(y >= height) return; float m = 0.f, n_box = 0.f, c = 0.f; if(width > 2 * w) { for(int i = 0, i_end = w + 1; i < i_end; i++) { - Kahan_sum(m, c, read_imagef(in, sampleri, (int2)(i, y)).x); + Kahan_sum(m, c, read_imagef(in, samplerA, (int2)(i, y)).x); n_box += 1.f; } for(int i = 0, i_end = w; i < i_end; i++) { - write_imagef(out, (int2)(i, y), (float4)(m / n_box, 0.0f, 0.0f, 0.0f)); - Kahan_sum(m, c, read_imagef(in, sampleri, (int2)(i + w + 1, y)).x); + write_imagef(out, (int2)(i, y), m / n_box); + Kahan_sum(m, c, read_imagef(in, samplerA, (int2)(i + w + 1, y)).x); n_box += 1.f; } for(int i = w, i_end = width - w - 1; i < i_end; i++) { - write_imagef(out, (int2)(i, y), (float4)(m / n_box, 0.0f, 0.0f, 0.0f)); - Kahan_sum(m, c, read_imagef(in, sampleri, (int2)(i + w + 1, y)).x); - Kahan_sum(m, c, -read_imagef(in, sampleri, (int2)(i - w, y)).x); + write_imagef(out, (int2)(i, y), m / n_box); + Kahan_sum(m, c, read_imagef(in, samplerA, (int2)(i + w + 1, y)).x); + Kahan_sum(m, c, -read_imagef(in, samplerA, (int2)(i - w, y)).x); } for(int i = width - w - 1, i_end = width; i < i_end; i++) { - write_imagef(out, (int2)(i, y), (float4)(m / n_box, 0.0f, 0.0f, 0.0f)); - Kahan_sum(m, c, -read_imagef(in, sampleri, (int2)(i - w, y)).x); + write_imagef(out, (int2)(i, y), m / n_box); + Kahan_sum(m, c, -read_imagef(in, samplerA, (int2)(i - w, y)).x); n_box -= 1.f; } } @@ -81,20 +89,20 @@ { for(int i = 0, i_end = min(w + 1, width); i < i_end; i++) { - Kahan_sum(m, c, read_imagef(in, sampleri, (int2)(i, y)).x); + Kahan_sum(m, c, read_imagef(in, samplerA, (int2)(i, y)).x); n_box += 1.f; } for(int i = 0; i < width; i++) { - write_imagef(out, (int2)(i, y), (float4)(m / n_box, 0.0f, 0.0f, 0.0f)); + write_imagef(out, (int2)(i, y), m / n_box); if(i - w >= 0) { - Kahan_sum(m, c, -read_imagef(in, sampleri, (int2)(i - w, y)).x); + Kahan_sum(m, c, -read_imagef(in, samplerA, (int2)(i - w, y)).x); n_box -= 1.f; } if(i + w + 1 < width) { - Kahan_sum(m, c, read_imagef(in, sampleri, (int2)(i + w + 1, y)).x); + Kahan_sum(m, c, read_imagef(in, samplerA, (int2)(i + w + 1, y)).x); n_box += 1.f; } } @@ -102,37 +110,39 @@ } -kernel void guided_filter_box_mean_y(const int width, const int height, read_only image2d_t in, - write_only image2d_t out, const int w) +kernel void guided_filter_box_mean_y(const int width, + const int height, + read_only image2d_t in, + write_only image2d_t out, + const int w) { const int x = get_global_id(0); - const int y = get_global_id(1); - if(x >= width || y >= 1) return; + if(x >= width) return; float m = 0.f, n_box = 0.f, c = 0.f; if(height > 2 * w) { for(int i = 0, i_end = w + 1; i < i_end; i++) { - Kahan_sum(m, c, read_imagef(in, sampleri, (int2)(x, i)).x); + Kahan_sum(m, c, read_imagef(in, samplerA, (int2)(x, i)).x); n_box += 1.f; } for(int i = 0, i_end = w; i < i_end; i++) { - write_imagef(out, (int2)(x, i), (float4)(m / n_box, 0.0f, 0.0f, 0.0f)); - Kahan_sum(m, c, read_imagef(in, sampleri, (int2)(x, i + w + 1)).x); + write_imagef(out, (int2)(x, i), m / n_box); + Kahan_sum(m, c, read_imagef(in, samplerA, (int2)(x, i + w + 1)).x); n_box += 1.f; } for(int i = w, i_end = height - w - 1; i < i_end; i++) { - write_imagef(out, (int2)(x, i), (float4)(m / n_box, 0.0f, 0.0f, 0.0f)); - Kahan_sum(m, c, read_imagef(in, sampleri, (int2)(x, i + w + 1)).x); - Kahan_sum(m, c, -read_imagef(in, sampleri, (int2)(x, i - w)).x); + write_imagef(out, (int2)(x, i), m / n_box); + Kahan_sum(m, c, read_imagef(in, samplerA, (int2)(x, i + w + 1)).x); + Kahan_sum(m, c, -read_imagef(in, samplerA, (int2)(x, i - w)).x); } for(int i = height - w - 1, i_end = height; i < i_end; i++) { - write_imagef(out, (int2)(x, i), (float4)(m / n_box, 0.0f, 0.0f, 0.0f)); - Kahan_sum(m, c, -read_imagef(in, sampleri, (int2)(x, i - w)).x); + write_imagef(out, (int2)(x, i), m / n_box); + Kahan_sum(m, c, -read_imagef(in, samplerA, (int2)(x, i - w)).x); n_box -= 1.f; } } @@ -140,112 +150,134 @@ { for(int i = 0, i_end = min(w + 1, height); i < i_end; i++) { - Kahan_sum(m, c, read_imagef(in, sampleri, (int2)(x, i)).x); + Kahan_sum(m, c, read_imagef(in, samplerA, (int2)(x, i)).x); n_box += 1.f; } for(int i = 0; i < height; i++) { - write_imagef(out, (int2)(x, i), (float4)(m / n_box, 0.0f, 0.0f, 0.0f)); + write_imagef(out, (int2)(x, i), m / n_box); if(i - w >= 0) { - Kahan_sum(m, c, -read_imagef(in, sampleri, (int2)(x, i - w)).x); + Kahan_sum(m, c, -read_imagef(in, samplerA, (int2)(x, i - w)).x); n_box -= 1.f; } if(i + w + 1 < height) { - Kahan_sum(m, c, read_imagef(in, sampleri, (int2)(x, i + w + 1)).x); + Kahan_sum(m, c, read_imagef(in, samplerA, (int2)(x, i + w + 1)).x); n_box += 1.f; } } } } - -kernel void guided_filter_covariances(const int width, const int height, read_only image2d_t imgg, - read_only image2d_t img, write_only image2d_t cov_imgg_img_r, - write_only image2d_t cov_imgg_img_g, write_only image2d_t cov_imgg_img_b, +kernel void guided_filter_covariances(const int width, + const int height, + read_only image2d_t guide, + read_only image2d_t img, + write_only image2d_t cov_imgg_img_r, + write_only image2d_t cov_imgg_img_g, + write_only image2d_t cov_imgg_img_b, const float guide_weight) { const int x = get_global_id(0); const int y = get_global_id(1); if(x >= width || y >= height) return; - float4 pixel = read_imagef(imgg, sampleri, (int2)(x, y)); - pixel.x *= guide_weight; - pixel.y *= guide_weight; - pixel.z *= guide_weight; - const float img_ = read_imagef(img, sampleri, (int2)(x, y)).x; - write_imagef(cov_imgg_img_r, (int2)(x, y), (float4)(pixel.x * img_, 0.f, 0.f, 0.f)); - write_imagef(cov_imgg_img_g, (int2)(x, y), (float4)(pixel.y * img_, 0.f, 0.f, 0.f)); - write_imagef(cov_imgg_img_b, (int2)(x, y), (float4)(pixel.z * img_, 0.f, 0.f, 0.f)); + const float4 weight = { guide_weight, guide_weight, guide_weight, 0.0f }; + const float img_ = read_imagef(img, samplerA, (int2)(x, y)).x; + const float4 imgv = { img_, img_, img_, 0.0f }; + const float4 pixel = imgv * weight * fmin(100.0, fmax(0.0, read_imagef(guide, sampleri, (int2)(x, y)))); + write_imagef(cov_imgg_img_r, (int2)(x, y), pixel.x); + write_imagef(cov_imgg_img_g, (int2)(x, y), pixel.y); + write_imagef(cov_imgg_img_b, (int2)(x, y), pixel.z); } -kernel void guided_filter_variances(const int width, const int height, read_only image2d_t imgg, - write_only image2d_t var_imgg_rr, write_only image2d_t var_imgg_rg, - write_only image2d_t var_imgg_rb, write_only image2d_t var_imgg_gg, - write_only image2d_t var_imgg_gb, write_only image2d_t var_imgg_bb, +kernel void guided_filter_variances(const int width, + const int height, + read_only image2d_t guide, + write_only image2d_t var_imgg_rr, + write_only image2d_t var_imgg_rg, + write_only image2d_t var_imgg_rb, + write_only image2d_t var_imgg_gg, + write_only image2d_t var_imgg_gb, + write_only image2d_t var_imgg_bb, const float guide_weight) { const int x = get_global_id(0); const int y = get_global_id(1); if(x >= width || y >= height) return; - float4 pixel = read_imagef(imgg, sampleri, (int2)(x, y)); - pixel.x *= guide_weight; - pixel.y *= guide_weight; - pixel.z *= guide_weight; - write_imagef(var_imgg_rr, (int2)(x, y), (float4)(pixel.x * pixel.x, 0.f, 0.f, 0.f)); - write_imagef(var_imgg_rg, (int2)(x, y), (float4)(pixel.x * pixel.y, 0.f, 0.f, 0.f)); - write_imagef(var_imgg_rb, (int2)(x, y), (float4)(pixel.x * pixel.z, 0.f, 0.f, 0.f)); - write_imagef(var_imgg_gg, (int2)(x, y), (float4)(pixel.y * pixel.y, 0.f, 0.f, 0.f)); - write_imagef(var_imgg_gb, (int2)(x, y), (float4)(pixel.y * pixel.z, 0.f, 0.f, 0.f)); - write_imagef(var_imgg_bb, (int2)(x, y), (float4)(pixel.z * pixel.z, 0.f, 0.f, 0.f)); + const float4 weight = { guide_weight, guide_weight, guide_weight, 0.0f }; + const float4 pixel = weight * fmin(100.0, fmax(0.0, read_imagef(guide, sampleri, (int2)(x, y)))); + write_imagef(var_imgg_rr, (int2)(x, y), pixel.x * pixel.x); + write_imagef(var_imgg_rg, (int2)(x, y), pixel.x * pixel.y); + write_imagef(var_imgg_rb, (int2)(x, y), pixel.x * pixel.z); + write_imagef(var_imgg_gg, (int2)(x, y), pixel.y * pixel.y); + write_imagef(var_imgg_gb, (int2)(x, y), pixel.y * pixel.z); + write_imagef(var_imgg_bb, (int2)(x, y), pixel.z * pixel.z); } -kernel void guided_filter_update_covariance(const int width, const int height, read_only image2d_t in, - write_only image2d_t out, read_only image2d_t a, read_only image2d_t b, +kernel void guided_filter_update_covariance(const int width, + const int height, + read_only image2d_t in, + write_only image2d_t out, + read_only image2d_t a, + read_only image2d_t b, const float eps) { const int x = get_global_id(0); const int y = get_global_id(1); if(x >= width || y >= height) return; - const float in_val = read_imagef(in, sampleri, (int2)(x, y)).x; - const float a_val = read_imagef(a, sampleri, (int2)(x, y)).x; - const float b_val = read_imagef(b, sampleri, (int2)(x, y)).x; - write_imagef(out, (int2)(x, y), (float4)(in_val - a_val * b_val + eps, 0.f, 0.f, 0.f)); + const float i_val = read_imagef(in, samplerA, (int2)(x, y)).x; + const float a_val = read_imagef(a, samplerA, (int2)(x, y)).x; + const float b_val = read_imagef(b, samplerA, (int2)(x, y)).x; + write_imagef(out, (int2)(x, y), i_val - a_val * b_val + eps); } -kernel void guided_filter_solve(const int width, const int height, read_only image2d_t img_mean, - read_only image2d_t imgg_mean_r, read_only image2d_t imgg_mean_g, - read_only image2d_t imgg_mean_b, read_only image2d_t cov_imgg_img_r, - read_only image2d_t cov_imgg_img_g, read_only image2d_t cov_imgg_img_b, - read_only image2d_t var_imgg_rr, read_only image2d_t var_imgg_rg, - read_only image2d_t var_imgg_rb, read_only image2d_t var_imgg_gg, - read_only image2d_t var_imgg_gb, read_only image2d_t var_imgg_bb, - write_only image2d_t a_r, write_only image2d_t a_g, write_only image2d_t a_b, +kernel void guided_filter_solve(const int width, + const int height, + read_only image2d_t img_mean, + read_only image2d_t imgg_mean_r, + read_only image2d_t imgg_mean_g, + read_only image2d_t imgg_mean_b, + read_only image2d_t cov_imgg_img_r, + read_only image2d_t cov_imgg_img_g, + read_only image2d_t cov_imgg_img_b, + read_only image2d_t var_imgg_rr, + read_only image2d_t var_imgg_rg, + read_only image2d_t var_imgg_rb, + read_only image2d_t var_imgg_gg, + read_only image2d_t var_imgg_gb, + read_only image2d_t var_imgg_bb, + write_only image2d_t a_r, + write_only image2d_t a_g, + write_only image2d_t a_b, write_only image2d_t b) { const int x = get_global_id(0); const int y = get_global_id(1); if(x >= width || y >= height) return; - const float Sigma_0_0 = read_imagef(var_imgg_rr, sampleri, (int2)(x, y)).x; - const float Sigma_0_1 = read_imagef(var_imgg_rg, sampleri, (int2)(x, y)).x; - const float Sigma_0_2 = read_imagef(var_imgg_rb, sampleri, (int2)(x, y)).x; - const float Sigma_1_1 = read_imagef(var_imgg_gg, sampleri, (int2)(x, y)).x; - const float Sigma_1_2 = read_imagef(var_imgg_gb, sampleri, (int2)(x, y)).x; - const float Sigma_2_2 = read_imagef(var_imgg_bb, sampleri, (int2)(x, y)).x; - const float cov_imgg_img[3] = { read_imagef(cov_imgg_img_r, sampleri, (int2)(x, y)).x, - read_imagef(cov_imgg_img_g, sampleri, (int2)(x, y)).x, - read_imagef(cov_imgg_img_b, sampleri, (int2)(x, y)).x }; + const float Sigma_0_0 = read_imagef(var_imgg_rr, samplerA, (int2)(x, y)).x; + const float Sigma_0_1 = read_imagef(var_imgg_rg, samplerA, (int2)(x, y)).x; + const float Sigma_0_2 = read_imagef(var_imgg_rb, samplerA, (int2)(x, y)).x; + const float Sigma_1_1 = read_imagef(var_imgg_gg, samplerA, (int2)(x, y)).x; + const float Sigma_1_2 = read_imagef(var_imgg_gb, samplerA, (int2)(x, y)).x; + const float Sigma_2_2 = read_imagef(var_imgg_bb, samplerA, (int2)(x, y)).x; + const float cov_imgg_img[3] = { read_imagef(cov_imgg_img_r, samplerA, (int2)(x, y)).x, + read_imagef(cov_imgg_img_g, samplerA, (int2)(x, y)).x, + read_imagef(cov_imgg_img_b, samplerA, (int2)(x, y)).x }; const float det0 = Sigma_0_0 * (Sigma_1_1 * Sigma_2_2 - Sigma_1_2 * Sigma_1_2) - Sigma_0_1 * (Sigma_0_1 * Sigma_2_2 - Sigma_0_2 * Sigma_1_2) + Sigma_0_2 * (Sigma_0_1 * Sigma_1_2 - Sigma_0_2 * Sigma_1_1); - float a_r_, a_g_, a_b_; + float a_r_ = 0.0f; + float a_g_ = 0.0f; + float a_b_ = 0.0f; + float b_ = read_imagef(img_mean, samplerA, (int2)(x, y)).x; if(fabs(det0) > 4.f * FLT_EPSILON) { const float det1 = cov_imgg_img[0] * (Sigma_1_1 * Sigma_2_2 - Sigma_1_2 * Sigma_1_2) @@ -260,44 +292,40 @@ a_r_ = det1 / det0; a_g_ = det2 / det0; a_b_ = det3 / det0; + b_ = b_ + - a_r_ * read_imagef(imgg_mean_r, samplerA, (int2)(x, y)).x + - a_g_ * read_imagef(imgg_mean_g, samplerA, (int2)(x, y)).x + - a_b_ * read_imagef(imgg_mean_b, samplerA, (int2)(x, y)).x; } - else - { - // linear system is singular - a_r_ = 0.f; - a_g_ = 0.f; - a_b_ = 0.f; - } - write_imagef(a_r, (int2)(x, y), (float4)(a_r_, 0.f, 0.f, 0.f)); - write_imagef(a_g, (int2)(x, y), (float4)(a_g_, 0.f, 0.f, 0.f)); - write_imagef(a_b, (int2)(x, y), (float4)(a_b_, 0.f, 0.f, 0.f)); - write_imagef(b, (int2)(x, y), - (float4)(read_imagef(img_mean, sampleri, (int2)(x, y)).x - - a_r_ * read_imagef(imgg_mean_r, sampleri, (int2)(x, y)).x - - a_g_ * read_imagef(imgg_mean_g, sampleri, (int2)(x, y)).x - - a_b_ * read_imagef(imgg_mean_b, sampleri, (int2)(x, y)).x, - 0.f, 0.f, 0.f)); + + write_imagef(a_r, (int2)(x, y), a_r_); + write_imagef(a_g, (int2)(x, y), a_g_); + write_imagef(a_b, (int2)(x, y), a_b_); + write_imagef(b, (int2)(x, y), b_); } -kernel void guided_filter_generate_result(const int width, const int height, read_only image2d_t imgg, - read_only image2d_t a_r, read_only image2d_t a_g, - read_only image2d_t a_b, read_only image2d_t b, write_only image2d_t res, - const float guide_weight, const float min_, const float max_) +kernel void guided_filter_generate_result(const int width, + const int height, + read_only image2d_t guide, + read_only image2d_t a_r, + read_only image2d_t a_g, + read_only image2d_t a_b, + read_only image2d_t b, + write_only image2d_t res, + const float guide_weight, + const float minval, + const float maxval) { const int x = get_global_id(0); const int y = get_global_id(1); if(x >= width || y >= height) return; - const float4 imgg_ = read_imagef(imgg, sampleri, (int2)(x, y)); - const float a_r_ = read_imagef(a_r, sampleri, (int2)(x, y)).x; - const float a_g_ = read_imagef(a_g, sampleri, (int2)(x, y)).x; - const float a_b_ = read_imagef(a_b, sampleri, (int2)(x, y)).x; - const float b_ = read_imagef(b, sampleri, (int2)(x, y)).x; - float res_ = imgg_.x * a_r_ + imgg_.y * a_g_ + imgg_.z * a_b_; - res_ *= guide_weight; - res_ += b_; - if(res_ < min_) res_ = min_; - if(res_ > max_) res_ = max_; - write_imagef(res, (int2)(x, y), (float4)(res_, 0.f, 0.f, 0.f)); + const float4 pixel = fmin(100.0, fmax(0.0, read_imagef(guide, sampleri, (int2)(x, y)))); + const float a_r_ = pixel.x * read_imagef(a_r, samplerA, (int2)(x, y)).x; + const float a_g_ = pixel.y * read_imagef(a_g, samplerA, (int2)(x, y)).x; + const float a_b_ = pixel.z * read_imagef(a_b, samplerA, (int2)(x, y)).x; + const float b_ = read_imagef(b, samplerA, (int2)(x, y)).x; + const float res_ = guide_weight * (a_r_ + a_g_ + a_b_)+ b_; + write_imagef(res, (int2)(x, y), fmin(maxval, fmax(minval, res_))); } diff -Nru darktable-4.4.2/data/kernels/sigmoid.cl darktable-4.6.1/data/kernels/sigmoid.cl --- darktable-4.4.2/data/kernels/sigmoid.cl 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/data/kernels/sigmoid.cl 2024-02-16 17:31:09.000000000 +0000 @@ -16,6 +16,7 @@ along with darktable. If not, see . */ +#include "colorspace.h" #include "common.h" typedef struct dt_iop_sigmoid_value_order_t @@ -135,31 +136,23 @@ const dt_iop_sigmoid_value_order_t order, const float hue_preservation) { - if (per_channel[order.max] - per_channel[order.min] < 1e-9f || - per_channel[order.mid] - per_channel[order.min] < 1e-9f ) - { - pix_io[0] = per_channel[0]; - pix_io[1] = per_channel[1]; - pix_io[2] = per_channel[2]; - return; // Nothing to fix - } - // Naive Hue correction of the middle channel + const float chroma = pix_io[order.max] - pix_io[order.min]; + const float midscale = chroma != 0.f ? (pix_io[order.mid] - pix_io[order.min]) / chroma : 0.f; const float full_hue_correction = - per_channel[order.min] + ((per_channel[order.max] - per_channel[order.min]) * - (pix_io[order.mid] - pix_io[order.min]) / (pix_io[order.max] - pix_io[order.min])); + per_channel[order.min] + (per_channel[order.max] - per_channel[order.min]) * midscale; const float naive_hue_mid = (1.0f - hue_preservation) * per_channel[order.mid] + hue_preservation * full_hue_correction; - const float per_channel_energy = per_channel[order.min] + per_channel[order.mid] + per_channel[order.max]; + const float per_channel_energy = per_channel[0] + per_channel[1] + per_channel[2]; const float naive_hue_energy = per_channel[order.min] + naive_hue_mid + per_channel[order.max]; - const float blend_factor = 2.0f * pix_io[order.min] / (pix_io[order.min] + pix_io[order.mid]); - const float midscale = (pix_io[order.mid] - pix_io[order.min]) / (pix_io[order.max] - pix_io[order.min]); + const float pix_in_min_plus_mid = pix_io[order.min] + pix_io[order.mid]; + const float blend_factor = pix_in_min_plus_mid != 0.f ? 2.0f * pix_io[order.min] / pix_in_min_plus_mid : 0.f; + const float energy_target = blend_factor * per_channel_energy + (1.0f - blend_factor) * naive_hue_energy; // Preserve hue constrained to maintain the same energy as the per channel result if (naive_hue_mid <= per_channel[order.mid]) { - const float energy_target = blend_factor * per_channel_energy + (1.0f - blend_factor) * naive_hue_energy; const float corrected_mid = ((1.0f - hue_preservation) * per_channel[order.mid] + hue_preservation * (midscale * per_channel[order.max] + (1.0f - midscale) * (energy_target - per_channel[order.max]))) / @@ -170,7 +163,6 @@ } else { - const float energy_target = blend_factor * per_channel_energy + (1.0f - blend_factor) * naive_hue_energy; const float corrected_mid = ((1.0f - hue_preservation) * per_channel[order.mid] + hue_preservation * (per_channel[order.min] * (1.0f - midscale) + @@ -190,7 +182,11 @@ const float paper_exp, const float film_fog, const float contrast_power, - const float skew_power) + const float skew_power, + const float hue_preservation, + constant const float *const pipe_to_base, + constant const float *const base_to_rendering, + constant const float *const rendering_to_pipe) { const unsigned int x = get_global_id(0); const unsigned int y = get_global_id(1); @@ -200,39 +196,13 @@ float4 i = read_imagef(in, sampleri, (int2)(x, y)); float alpha = i.w; - // Force negative values to zero - i = _desaturate_negative_values(i); - - i = _generalized_loglogistic_sigmoid_vector(i, white_target, paper_exp, film_fog, contrast_power, skew_power); - - // Copy over the alpha channel - i.w = alpha; - - write_imagef(out, (int2)(x, y), i); -} - -kernel void -sigmoid_loglogistic_per_channel_interpolated (read_only image2d_t in, - write_only image2d_t out, - const int width, - const int height, - const float white_target, - const float paper_exp, - const float film_fog, - const float contrast_power, - const float skew_power, - const float hue_preservation) -{ - const unsigned int x = get_global_id(0); - const unsigned int y = get_global_id(1); - - if(x >= width || y >= height) return; - - float4 i = read_imagef(in, sampleri, (int2)(x, y)); - float alpha = i.w; + i = matrix_product_float4(i, pipe_to_base); // Force negative values to zero i = _desaturate_negative_values(i); + + // Convert to rendering primaries + i = matrix_product_float4(i, base_to_rendering); float pix_array[3] = {i.x, i.y, i.z}; i = _generalized_loglogistic_sigmoid_vector(i, white_target, paper_exp, film_fog, contrast_power, skew_power); @@ -244,6 +214,8 @@ _preserve_hue_and_energy(pix_array, per_channel, pixel_value_order, hue_preservation); i.xyz = (float3)(pix_array[0], pix_array[1], pix_array[2]); + i = matrix_product_float4(i, rendering_to_pipe); + // Copy over the alpha channel i.w = alpha; diff -Nru darktable-4.4.2/data/luarc darktable-4.6.1/data/luarc --- darktable-4.4.2/data/luarc 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/data/luarc 2024-02-16 17:31:09.000000000 +0000 @@ -8,9 +8,9 @@ var = var + 1 local val = st[var] if val ~= nil then - return var, st[var] - end + return var, st[var] end +end ipairs = function(t) if getmetatable(t) ~= nil then -- t has metatable @@ -43,24 +43,99 @@ false ) + _scripts_install.dt.preferences.register( + "_scripts_install", + "debug", + "bool", + _scripts_install.dt.gettext.gettext("lua scripts installer log debug messages"), + _scripts_install.dt.gettext.gettext("write debugging messages to the log if the -d lua flag is specified"), + false + ) + + local PS = _scripts_install.dt.configuration.running_os == "windows" and "\\" or "/" + + local debug_messages = _scripts_install.dt.preferences.read("_scripts_install", "debug", "bool") + + local function debug_message(msg) + if debug_messages then + _scripts_install.dt.print_log("[script installer] " .. msg) + end + end + + local function _is_not_sanitized_posix(str) + -- A sanitized string must be quoted. + if not string.match(str, "^'.*'$") then + return true + -- A quoted string containing no quote characters within is sanitized. + elseif string.match(str, "^'[^']*'$") then + return false + end + + -- Any quote characters within a sanitized string must be properly + -- escaped. + local quotesStripped = string.sub(str, 2, -2) + local escapedQuotesRemoved = string.gsub(quotesStripped, "'\\''", "") + if string.find(escapedQuotesRemoved, "'") then + return true + else + return false + end + end + + local function _is_not_sanitized_windows(str) + if not string.match(str, "^\".*\"$") then + return true + else + return false + end + end + + local function _sanitize_posix(str) + if _is_not_sanitized_posix(str) then + return "'" .. string.gsub(str, "'", "'\\''") .. "'" + else + return str + end + end + + local function _sanitize_windows(str) + if _is_not_sanitized_windows(str) then + return "\"" .. string.gsub(str, "\"", "\"^\"\"") .. "\"" + else + return str + end + end + + local function sanitize(str) + if _scripts_install.dt.configuration.running_os == "windows" then + return _sanitize_windows(str) + else + return _sanitize_posix(str) + end + end + + local CONFIG_DIR = _scripts_install.dt.configuration.config_dir + if not _scripts_install.dt.preferences.read("_scripts_install", "dont_show", "bool") then - -- _scripts_install.dt.print_log("dont show not set") + debug_message("dont show not set") if _scripts_install.dt.preferences.read("_scripts_install", "remind", "bool") then - -- _scripts_install.dt.print_log("remind set") + debug_message("remind set") if _scripts_install.dt.preferences.read("_scripts_install", "restarts", "integer") < 4 then - _scripts_install.dt.preferences.write("_scripts_install", "restarts", "integer", _scripts_install.dt.preferences.read("_scripts_install", "restarts", "integer") + 1) - -- _scripts_install.dt.print_log("retries set to " .. _scripts_install.dt.preferences.read("_scripts_install", "restarts", "integer")) + local restart_count = _scripts_install.dt.preferences.read("_scripts_install", "restarts", "integer") + 1 + _scripts_install.dt.preferences.write("_scripts_install", "restarts", "integer", restart_count) + debug_message("retries set to " .. restart_count) return else _scripts_install.dt.preferences.write("_scripts_install", "restarts", "integer", 0) + debug_message("number of restarts without installing reached, installing...") end end _scripts_install.not_installed = true - --_scripts_install.dt.print_log("checking for lua directory") + debug_message("checking for lua directory") - -- check for lua scripts directory + -- set the necessary commands based on operating system if _scripts_install.dt.configuration.running_os == "windows" then _scripts_install.dir_cmd = "dir /b " _scripts_install.which_cmd = "where " @@ -70,14 +145,18 @@ end -- check for the scripts directory - -- _scripts_install.dt.print_log("checking for scripts") + debug_message("checking for scripts") - _scripts_install.p = io.popen(_scripts_install.dir_cmd .. _scripts_install.dt.configuration.config_dir) + local find_scripts_cmd = _scripts_install.dir_cmd .. CONFIG_DIR + if _scripts_install.dt.configuration.running_os == "windows" then + find_scripts_cmd = "\"" .. _scripts_install.dir_cmd .. "\"" .. CONFIG_DIR .. "\"\"" + end + _scripts_install.p = io.popen(find_scripts_cmd) for line in _scripts_install.p:lines() do - -- _scripts_install.dt.print_log("line is " .. line) + debug_message("line is " .. line) if string.match(line, "^lua$") then _scripts_install.not_installed = false - -- _scripts_install. dt.print_log("scripts found") + debug_message("scripts found") end end _scripts_install.p:close() @@ -89,18 +168,34 @@ end if _scripts_install.not_installed then - -- _scripts_install.dt.print_log("scripts not installed") + debug_message("took the scripts not installed branch") _scripts_install.widgets = {} + local function os_execute(cmd) + debug_message("cmd input to os_execute is " .. cmd) + if _scripts_install.dt.configuration.running_os == "windows" then + cmd = "\"" .. cmd .. "\"" + end + debug_message("command to os.execute is " .. cmd) + success, msg, rc = os.execute(cmd) + debug_message("command success: " .. tostring(success) .. " message: " .. msg .. " return code: " .. rc) + return success + end -- check for a luarc file and move it - function _scripts_install.backup_luarc() - local p = io.popen(_scripts_install.dir_cmd .. _scripts_install.dt.configuration.config_dir) + local function backup_luarc() + debug_message("backuping up luarc file (if it exists)") + local p = io.popen(_scripts_install.dir_cmd .. CONFIG_DIR) for line in p:lines() do if string.match(line, "^luarc$") then + debug_message("found the luarc file, renaming it to luarc.old") + local success = false if _scripts_install.dt.configuration.running_os == "windows" then - os.execute("rename " .. _scripts_install.dt.configuration.config_dir .. "/luarc " .. _scripts_install.dt.configuration.config_dir .. "/luarc.old") + success = os_execute("rename " .. "\"" .. CONFIG_DIR .. PS .. "luarc\" \"" .. CONFIG_DIR .. PS .. "luarc.old\"") else - os.execute("mv " .. _scripts_install.dt.configuration.config_dir .. "/luarc " .. _scripts_install.dt.configuration.config_dir .. "/luarc.old") + success = os_execute("mv " .. CONFIG_DIR .. "/luarc " .. CONFIG_DIR .. "/luarc.old") + end + if not success then + _scripts_install.dt.print(_("Unable to back up luarc file. It will be overwritten")) end end end @@ -113,20 +208,23 @@ end function _scripts_install.installer() - -- _scripts_install.dt.print_log("running installer") + debug_message("running installer") if _scripts_install.widgets.choice.value == _("don't show again") then + debug_message("setting script installer don't show") _scripts_install.dt.preferences.write("_scripts_install", "dont_show", "bool", true) _scripts_install.dt.preferences.write("_scripts_install", "remind", "bool", false) _scripts_install.dt.print(_("Installer won't be shown when darktable starts")) _scripts_install.minimize_lib() elseif _scripts_install.widgets.choice.value == _("remind me later") then + debug_message("setting script installer remind me later ") _scripts_install.dt.preferences.write("_scripts_install", "dont_show", "bool", false) _scripts_install.dt.preferences.write("_scripts_install", "remind", "bool", true) _scripts_install.dt.preferences.write("_scripts_install", "retries", "integer", 0) _scripts_install.dt.print(_("Installer will be shown every 5th time darktable starts")) _scripts_install.minimize_lib() else + debug_message("setting script installer remind and dont_show to false ") _scripts_install.dt.preferences.write("_scripts_install", "remind", "bool", false) _scripts_install.dt.preferences.write("_scripts_install", "dont_show", "bool", false) @@ -140,20 +238,21 @@ end _scripts_install.git_bin = nil - -- _scripts_install.dt.print_log("checking for git") - -- _scripts_install.dt.print_log("with command " .. _scripts_install.which_cmd .. _scripts_install.git_cmd) + debug_message("checking for git") + debug_message("with command " .. _scripts_install.which_cmd .. _scripts_install.git_cmd) _scripts_install.p = io.popen(_scripts_install.which_cmd .. _scripts_install.git_cmd) for line in _scripts_install.p:lines() do if string.match(line, _scripts_install.git_cmd) then - -- _scripts_install.dt.print_log("got a match") + debug_message("got a match") _scripts_install.git_bin = line - -- _scripts_install.dt.print_log("git bin is " .. _scripts_install.git_bin) + debug_message("git bin is " .. _scripts_install.git_bin) end end _scripts_install.p:close() if not _scripts_install.git_bin then + debug_message("git not found, printing error and exiting") _scripts_install.dt.print(_("Please install git and make sure it is in your path")) return end @@ -162,18 +261,48 @@ if _scripts_install.dt.configuration.running_os ~= "windows" then _scripts_install.require_string = "'" .. _scripts_install.require_string .. "'" end + debug_message("require string is " .. _scripts_install.require_string) - _scripts_install.backup_luarc() + backup_luarc() + _scripts_install.dt.print(_("lua scripts installing")) - os.execute("\"" .. _scripts_install.git_bin .. "\" " .. "clone https://github.com/darktable-org/lua-scripts.git " .. _scripts_install.dt.configuration.config_dir .. "/lua") - os.execute("echo " .. _scripts_install.require_string .. " > " .. _scripts_install.dt.configuration.config_dir .. "/luarc") + debug_message("lua scripts installing...") + + if _scripts_install.dt.configuration.running_os == "windows" then + _scripts_install.git_bin = "\"" .. _scripts_install.git_bin .. "\"" + _scripts_install.install_dir = "\"" .. CONFIG_DIR .. PS .. "lua\"" + _scripts_install.luarc_file = "\"" .. CONFIG_DIR .. PS .. "luarc\"" + else + _scripts_install.install_dir = CONFIG_DIR .. PS .. "lua" + _scripts_install.luarc_file = CONFIG_DIR .. PS .. "luarc" + end + + local success = os_execute(_scripts_install.git_bin .. " clone https://github.com/darktable-org/lua-scripts.git " .. _scripts_install.install_dir) + if not success then + debug_message("unable to clone lua-scripts. See above messages for possible error") + _scripts_install.dt.print("lua scripts installation failed. Enable scripts installer debug messages under lua options and try again") + return + else + debug_message("lua-scripts successfully cloned") + end + local success = os_execute("echo " .. _scripts_install.require_string .. " > " .. _scripts_install.luarc_file) + if not success then + debug_message("unable to create luarc file") + _scripts_install.dt.print(_("lua scripts installation failed. Enable scripts installer debug messages under lua options and try again")) + return + else + debug_message("luarc file created") + end _scripts_install.dt.print(_("lua scripts are installed")) + debug_message("starting script_manager") require "tools/script_manager" _scripts_install.dt.gui.libs["script_manager"].visible = true + debug_message("script_manager started and visible") end _scripts_install.minimize_lib() end + function _scripts_install.install_module() if not _scripts_install.module_installed then _scripts_install.dt.register_lib( @@ -190,10 +319,7 @@ nil ) _scripts_install.module_installed = true - if not _scripts_install.dt.preferences.read("_scripts_install", "initialized", "bool") then - _scripts_install.dt.gui.libs["lua_scripts_installer"].visible = true - _scripts_install.dt.preferences.write("_scripts_install", "initialized", "bool", true) - end + _scripts_install.dt.gui.libs["lua_scripts_installer"].visible = true end end diff -Nru darktable-4.4.2/data/noiseprofiles.json darktable-4.6.1/data/noiseprofiles.json --- darktable-4.4.2/data/noiseprofiles.json 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/data/noiseprofiles.json 2024-02-16 17:31:09.000000000 +0000 @@ -24,6 +24,19 @@ ] }, { + "comment": "ixy 220f contributed by Chase Patterson", + "model": "IXY 220F", + "profiles": [ + {"name": "IXY 220F iso 96", "iso": 96, "a": [1.82866772261908e-05, 9.28508324227103e-06, 2.02030342674795e-05], "b": [1.95844735335862e-08, 1.34461592451775e-08, 1.79379844906791e-08]}, + {"name": "IXY 220F iso 101", "iso": 101, "a": [1.79440377453451e-05, 9.0925244729954e-06, 2.0242974121267e-05], "b": [1.4163431316429e-08, 9.8001003671883e-09, 1.27716088216417e-08]}, + {"name": "IXY 220F iso 201", "iso": 201, "a": [3.56822648756006e-05, 1.80712803853164e-05, 4.03319520364166e-05], "b": [3.16999730468058e-08, 2.10315337368234e-08, 2.65957939761833e-08]}, + {"name": "IXY 220F iso 400", "iso": 400, "a": [7.10402586911534e-05, 3.56965806657605e-05, 8.02733552465675e-05], "b": [8.08403379012925e-08, 5.44044322626664e-08, 6.98286195440164e-08]}, + {"name": "IXY 220F iso 800", "iso": 800, "a": [0.000144131205861121, 7.24134494199361e-05, 0.00016322636375242], "b": [1.87115397567284e-07, 1.25923467281098e-07, 1.62795106942327e-07]}, + {"name": "IXY 220F iso 1600", "iso": 1600, "a": [0.000298374662700649, 0.00015238224475831, 0.00033178859324471], "b": [4.82214865874256e-07, 3.62870268124233e-07, 4.24183514820387e-07]}, + {"name": "IXY 220F iso 3200", "iso": 3200, "a": [0.000581800258227409, 0.000323576628227893, 0.000680762287769163], "b": [1.12738411344584e-06, 9.60673392753119e-07, 1.0287098657334e-06]} + ] + }, + { "comment": "powershot s100 contributed by Stig Inge Lea Bjørnsen", "model": "PowerShot S100", "profiles": [ @@ -4689,6 +4702,45 @@ {"name": "Z 7_2 iso 102400", "iso": 102400, "a": [0.00433736899017926, 0.00264188327826786, 0.00433071699797644], "b": [5.82950467939988e-06, 5.61634976847276e-06, 3.4647122667261e-06]} ] }, + { + "comment": "z 8 contributed by goetz", + "model": "Z 8", + "profiles": [ + {"name": "Z 8 iso 40", "iso": 40, "a": [1.93423565099654e-06, 1.02827975346718e-06, 2.15153922417374e-06], "b": [2.20384766803979e-09, 1.23348002050025e-09, 1.98736349417696e-09]}, + {"name": "Z 8 iso 50", "iso": 50, "a": [1.92187087467831e-06, 1.0365797837221e-06, 2.1616860536579e-06], "b": [1.9246169934247e-09, 1.10951821053069e-09, 1.80913151935998e-09]}, + {"name": "Z 8 iso 64", "iso": 64, "a": [1.92598222248029e-06, 1.04119178750553e-06, 2.15627851181382e-06], "b": [1.65554831946756e-09, 1.04480068120987e-09, 1.55284318938779e-09]}, + {"name": "Z 8 iso 80", "iso": 80, "a": [2.38546235295164e-06, 1.26548412944933e-06, 2.62906783893949e-06], "b": [2.18312868570558e-09, 1.41062397505217e-09, 2.08142115394366e-09]}, + {"name": "Z 8 iso 100", "iso": 100, "a": [2.95913623042083e-06, 1.53452889613501e-06, 3.19682457497435e-06], "b": [2.99690042612212e-09, 1.91747914871578e-09, 2.79475025691164e-09]}, + {"name": "Z 8 iso 125", "iso": 125, "a": [3.63344945695803e-06, 1.86571000384565e-06, 3.89959590039415e-06], "b": [3.83032103387839e-09, 2.59935032284075e-09, 3.72801561808773e-09]}, + {"name": "Z 8 iso 160", "iso": 160, "a": [4.47552611324074e-06, 2.28784930561168e-06, 4.78962607863867e-06], "b": [5.93399028232677e-09, 3.86766324443064e-09, 5.6710632875149e-09]}, + {"name": "Z 8 iso 200", "iso": 200, "a": [5.60061448350147e-06, 2.82426267571432e-06, 5.92918450886559e-06], "b": [7.94351584286901e-09, 5.52964027357259e-09, 7.83321972958465e-09]}, + {"name": "Z 8 iso 250", "iso": 250, "a": [7.0052579150867e-06, 3.5184276144606e-06, 7.39695217368869e-06], "b": [1.17118618333413e-08, 8.01349646639332e-09, 1.09668471557387e-08]}, + {"name": "Z 8 iso 320", "iso": 320, "a": [8.82366557782272e-06, 4.35610089202084e-06, 9.19578320855997e-06], "b": [1.40025937259504e-08, 9.79333401503261e-09, 1.34747553874444e-08]}, + {"name": "Z 8 iso 400", "iso": 400, "a": [1.10612897289696e-05, 5.46120732546394e-06, 1.15384338363567e-05], "b": [1.94829527747308e-08, 1.35549335579966e-08, 1.83441478095824e-08]}, + {"name": "Z 8 iso 500", "iso": 500, "a": [1.40874820304449e-05, 6.97667686499551e-06, 1.47043684033033e-05], "b": [7.92614656924409e-09, 5.27785837036325e-09, 7.78320970936056e-09]}, + {"name": "Z 8 iso 640", "iso": 640, "a": [1.75702329080929e-05, 8.66109555900208e-06, 1.82757476081632e-05], "b": [1.28264928547364e-08, 8.88690156594694e-09, 1.2658764236795e-08]}, + {"name": "Z 8 iso 800", "iso": 800, "a": [2.20530381403021e-05, 1.08606861731857e-05, 2.29414361169398e-05], "b": [1.65046543699225e-08, 1.13387680177376e-08, 1.5846440539257e-08]}, + {"name": "Z 8 iso 1000", "iso": 1000, "a": [2.76783201615745e-05, 1.35545092823849e-05, 2.86174890607479e-05], "b": [2.06662425912995e-08, 1.4600230510214e-08, 2.0535362380647e-08]}, + {"name": "Z 8 iso 1250", "iso": 1250, "a": [3.49248025761702e-05, 1.69710588399491e-05, 3.58424944688372e-05], "b": [2.65916176204029e-08, 1.81614425917134e-08, 2.55730114637667e-08]}, + {"name": "Z 8 iso 1600", "iso": 1600, "a": [4.37393645797843e-05, 2.12583547711389e-05, 4.48473879477753e-05], "b": [3.37071831672621e-08, 2.32272203114442e-08, 3.23505752182991e-08]}, + {"name": "Z 8 iso 2000", "iso": 2000, "a": [5.49940539114799e-05, 2.67534626865077e-05, 5.67538700453135e-05], "b": [3.88559747125494e-08, 2.79509740803742e-08, 3.78249835629406e-08]}, + {"name": "Z 8 iso 2500", "iso": 2500, "a": [6.9502379547745e-05, 3.35126517871933e-05, 7.09839683177008e-05], "b": [5.0421039547821e-08, 3.61875584996118e-08, 4.81176299083513e-08]}, + {"name": "Z 8 iso 3200", "iso": 3200, "a": [8.75771527064172e-05, 4.22407226184701e-05, 8.94566485047296e-05], "b": [6.83062045527119e-08, 4.76291208444998e-08, 6.49685035096734e-08]}, + {"name": "Z 8 iso 4000", "iso": 4000, "a": [0.000110865448571658, 5.33900768044223e-05, 0.000112196753748687], "b": [9.44976404427355e-08, 6.51296847385471e-08, 8.86320727862845e-08]}, + {"name": "Z 8 iso 5000", "iso": 5000, "a": [0.000139046281152851, 6.68793617932277e-05, 0.000141969433180296], "b": [1.26940161643349e-07, 8.58182997624187e-08, 1.16499863940868e-07]}, + {"name": "Z 8 iso 6400", "iso": 6400, "a": [0.000175792638084087, 8.42298138914887e-05, 0.000178311793088747], "b": [1.6117866581288e-07, 1.09595264319883e-07, 1.50197946418764e-07]}, + {"name": "Z 8 iso 8000", "iso": 8000, "a": [0.000223485384357258, 0.000105767809898683, 0.000227256756856035], "b": [2.04318859726003e-07, 1.45375303994598e-07, 1.96673188614018e-07]}, + {"name": "Z 8 iso 10000", "iso": 10000, "a": [0.000279829804704438, 0.000133615558313738, 0.000295458650486133], "b": [2.7623515553377e-07, 1.97917010816045e-07, 2.53304255042138e-07]}, + {"name": "Z 8 iso 12800", "iso": 12800, "a": [0.000357778236668475, 0.000169312501213385, 0.000359959505717377], "b": [3.40245444673906e-07, 2.51296476463251e-07, 3.14600466321977e-07]}, + {"name": "Z 8 iso 16000", "iso": 16000, "a": [0.000457341583497326, 0.000211335892098332, 0.000462916044924253], "b": [4.28096461926993e-07, 3.55119690251266e-07, 3.99894251807884e-07]}, + {"name": "Z 8 iso 20000", "iso": 20000, "a": [0.000584836863225988, 0.000270263933602336, 0.000562546984782421], "b": [5.16858471164187e-07, 4.68389946237327e-07, 4.93314555540329e-07]}, + {"name": "Z 8 iso 25600", "iso": 25600, "a": [0.000725854480950722, 0.000341541327016124, 0.000730923578775598], "b": [6.0156755988571e-07, 5.99653535393392e-07, 6.04795901737193e-07]}, + {"name": "Z 8 iso 32000", "iso": 32000, "a": [0.000918027598335309, 0.000430546395048518, 0.00100201017311359], "b": [6.81161264013301e-07, 8.06244554846076e-07, 6.41346904878865e-07]}, + {"name": "Z 8 iso 40000", "iso": 40000, "a": [0.00113222444217386, 0.000554292789187118, 0.00121088801929713], "b": [7.63527138470547e-07, 1.05228721566636e-06, 8.99435341481544e-07]}, + {"name": "Z 8 iso 51200", "iso": 51200, "a": [0.00141025848975299, 0.00070615595842392, 0.00159057013437255], "b": [6.60636415001496e-07, 1.43743800036416e-06, 1.23418545882757e-06]}, + {"name": "Z 8 iso 102400", "iso": 102400, "a": [0.00290836018364837, 0.00147068769630428, 0.00363530468727401], "b": [-1.14665589739881e-06, 3.71794948439699e-06, -9.89406108553392e-07]} + ] + }, { "comment": "z 9 contributed by colinadams", "model": "Z 9", @@ -4721,6 +4773,48 @@ {"name": "Z 9 iso 20000", "iso": 20000, "a": [0.000838695976554922, 0.000319273891680144, 0.000588840162876663], "b": [7.92028033864299e-07, 7.80965358120415e-07, 9.09215398521196e-07]}, {"name": "Z 9 iso 25600", "iso": 25600, "a": [0.00106586315404296, 0.000418691993712011, 0.000764789022525726], "b": [8.70280573559965e-07, 9.74294268449725e-07, 1.16441485568164e-06]} ] + }, + { + "comment": "z f contributed by jonathan hrovath", + "model": "Z f", + "profiles": [ + {"name": "Z f iso 50", "iso": 50, "a": [1.21425261007638e-06, 6.25164495965691e-07, 1.14994676207948e-06], "b": [9.70747318815974e-10, 4.26516035025482e-10, 8.35635002794788e-10]}, + {"name": "Z f iso 64", "iso": 64, "a": [1.35030461751604e-06, 5.86120752395519e-07, 1.16595475681432e-06], "b": [6.94230657765006e-10, 4.43642053937341e-10, 6.95678833132691e-10]}, + {"name": "Z f iso 80", "iso": 80, "a": [1.29158420848853e-06, 5.43243265173415e-07, 1.08637300118516e-06], "b": [6.5611178884091e-10, 4.65877379652397e-10, 6.93898802627745e-10]}, + {"name": "Z f iso 100", "iso": 100, "a": [1.20565281006638e-06, 5.04152240551154e-07, 1.00862188673984e-06], "b": [6.57643751377288e-10, 4.79342094452546e-10, 7.38104011276392e-10]}, + {"name": "Z f iso 125", "iso": 125, "a": [1.62741921042526e-06, 6.81591104390314e-07, 1.36519048559072e-06], "b": [8.30390518019221e-10, 6.42096171722426e-10, 8.82011225351475e-10]}, + {"name": "Z f iso 160", "iso": 160, "a": [2.05088193993584e-06, 8.51909969909092e-07, 1.70592881758459e-06], "b": [9.5797725218609e-10, 7.80716550881438e-10, 1.10755477642798e-09]}, + {"name": "Z f iso 200", "iso": 200, "a": [2.59508385024591e-06, 1.08005495826631e-06, 2.16298212799485e-06], "b": [1.15321289872172e-09, 9.88482266981946e-10, 1.33041327046162e-09]}, + {"name": "Z f iso 250", "iso": 250, "a": [3.28565951531307e-06, 1.35762943224529e-06, 2.71931843014466e-06], "b": [1.54317072658532e-09, 1.2967333884071e-09, 1.66743962455993e-09]}, + {"name": "Z f iso 320", "iso": 320, "a": [4.14901467586895e-06, 1.71768705991937e-06, 3.43529233622519e-06], "b": [1.90679748160106e-09, 1.73361967474587e-09, 2.0566340700885e-09]}, + {"name": "Z f iso 400", "iso": 400, "a": [5.58608657051496e-06, 2.30016048871651e-06, 4.59687022652323e-06], "b": [4.31649774778811e-09, 3.22124405466487e-09, 4.38786810918519e-09]}, + {"name": "Z f iso 500", "iso": 500, "a": [6.95658531390149e-06, 2.86877533607934e-06, 5.73939410600698e-06], "b": [5.68717644184733e-09, 4.23857147900471e-09, 5.78833144975971e-09]}, + {"name": "Z f iso 640", "iso": 640, "a": [8.68723610097954e-06, 3.58617435558427e-06, 7.15876945470416e-06], "b": [7.82875481139552e-09, 5.60149525965607e-09, 7.59325312953301e-09]}, + {"name": "Z f iso 800", "iso": 800, "a": [1.11445969228334e-05, 4.59358913325744e-06, 9.17794598343902e-06], "b": [4.12113193995582e-09, 3.09939614356304e-09, 4.42449106361412e-09]}, + {"name": "Z f iso 1000", "iso": 1000, "a": [1.3920343960953e-05, 5.72123243294794e-06, 1.14429611550584e-05], "b": [5.47799203475026e-09, 4.06922061824972e-09, 5.66768803305797e-09]}, + {"name": "Z f iso 1250", "iso": 1250, "a": [1.74260266295902e-05, 7.15254401463469e-06, 1.43504451835707e-05], "b": [6.99583630297731e-09, 5.14500256320171e-09, 7.34318769336995e-09]}, + {"name": "Z f iso 1600", "iso": 1600, "a": [2.18687274302289e-05, 9.03979899109674e-06, 1.79786374734424e-05], "b": [8.87538557678209e-09, 6.44387717374544e-09, 9.44900497845253e-09]}, + {"name": "Z f iso 2000", "iso": 2000, "a": [2.7577664167023e-05, 1.13002779462194e-05, 2.25247951544678e-05], "b": [1.13874070674243e-08, 8.23998552213754e-09, 1.18953594598112e-08]}, + {"name": "Z f iso 2500", "iso": 2500, "a": [3.44394629508699e-05, 1.42411227660234e-05, 2.83950877332036e-05], "b": [1.49714316303792e-08, 1.03196482271963e-08, 1.51858287873132e-08]}, + {"name": "Z f iso 3200", "iso": 3200, "a": [4.33765960254987e-05, 1.78690745792666e-05, 3.5603347019038e-05], "b": [1.91572308023242e-08, 1.32411634681238e-08, 1.94199288280203e-08]}, + {"name": "Z f iso 4000", "iso": 4000, "a": [5.46154741792519e-05, 2.2504722640215e-05, 4.47754889487989e-05], "b": [2.53293314830381e-08, 1.63677727921581e-08, 2.47743169781853e-08]}, + {"name": "Z f iso 5000", "iso": 5000, "a": [6.90220225845163e-05, 2.82154584868435e-05, 5.67012024168531e-05], "b": [3.1888076082159e-08, 2.13096972206306e-08, 3.20794304242476e-08]}, + {"name": "Z f iso 6400", "iso": 6400, "a": [8.66949160118372e-05, 3.56133675578414e-05, 7.12016651711998e-05], "b": [4.42285995368321e-08, 2.82494300650126e-08, 4.26777457154722e-08]}, + {"name": "Z f iso 8000", "iso": 8000, "a": [0.000109471739296533, 4.45870235680057e-05, 8.95637816858808e-05], "b": [5.70801771733711e-08, 3.60808800601899e-08, 5.54279343600014e-08]}, + {"name": "Z f iso 10000", "iso": 10000, "a": [0.000138142988784845, 5.63574022727306e-05, 0.000112848942647608], "b": [7.65200485889343e-08, 4.77786953594363e-08, 7.38603104232934e-08]}, + {"name": "Z f iso 12800", "iso": 12800, "a": [0.000173608768957258, 7.08925492908414e-05, 0.000141876945849072], "b": [1.07099003804836e-07, 6.55732783472938e-08, 1.01418300342721e-07]}, + {"name": "Z f iso 16000", "iso": 16000, "a": [0.000217237648671419, 8.89773124913518e-05, 0.000177777099425522], "b": [1.22939015165562e-07, 7.32701215783748e-08, 1.16834947311702e-07]}, + {"name": "Z f iso 20000", "iso": 20000, "a": [0.000275373682841592, 0.000113108372048657, 0.000225714045821289], "b": [1.74763407437672e-07, 1.01840125156467e-07, 1.63500231269804e-07]}, + {"name": "Z f iso 25600", "iso": 25600, "a": [0.000347008277532999, 0.000142107922467811, 0.000282988510320158], "b": [2.46959932896501e-07, 1.50568201437786e-07, 2.35035126214262e-07]}, + {"name": "Z f iso 32000", "iso": 32000, "a": [0.00043711577489902, 0.000179469718961693, 0.000358221174782306], "b": [3.31723320968128e-07, 2.08879699815228e-07, 3.1838827000398e-07]}, + {"name": "Z f iso 40000", "iso": 40000, "a": [0.000555419209332088, 0.000226321974383211, 0.000453136049710306], "b": [4.39208796322179e-07, 3.07474256044701e-07, 4.42483113644378e-07]}, + {"name": "Z f iso 51200", "iso": 51200, "a": [0.000702772774006672, 0.000287508382716289, 0.000576641585237769], "b": [5.56486853336084e-07, 4.29429573367776e-07, 5.89338479664398e-07]}, + {"name": "Z f iso 64000", "iso": 64000, "a": [0.00089128817366162, 0.000364171486429764, 0.000733204715826678], "b": [7.01626875098346e-07, 6.11050824728161e-07, 8.03921022856981e-07]}, + {"name": "Z f iso 80000", "iso": 80000, "a": [0.00113704517748834, 0.000464142342578896, 0.000928452168451632], "b": [7.02248767857428e-07, 8.73568758335306e-07, 1.07575797029336e-06]}, + {"name": "Z f iso 102400", "iso": 102400, "a": [0.0014508862518876, 0.000589999131059258, 0.00117983550983711], "b": [7.48641658562264e-07, 1.22323683364366e-06, 1.456362873333e-06]}, + {"name": "Z f iso 128000", "iso": 128000, "a": [0.00183956378316105, 0.000749073433089036, 0.00150047076311758], "b": [4.75216057696834e-07, 1.78803242265804e-06, 1.9241182322145e-06]}, + {"name": "Z f iso 204800", "iso": 204800, "a": [0.00301886781168965, 0.0012386301980822, 0.0024545719361193], "b": [-1.37149644794568e-06, 3.41002128913365e-06, 2.85395961412615e-06]} + ] } ] }, @@ -5130,6 +5224,20 @@ ] }, { + "comment": "e-p7 contributed by sarunas", + "model": "E-P7", + "profiles": [ + {"name": "E-P7 iso 200", "iso": 200, "a": [6.48875316425217e-06, 2.6166236641646e-06, 6.54012146361473e-06], "b": [6.88946597982113e-09, 4.57624309128538e-09, 6.86131335310015e-09]}, + {"name": "E-P7 iso 400", "iso": 400, "a": [1.25348616080975e-05, 5.06118894754476e-06, 1.26930844754045e-05], "b": [1.44875182494616e-08, 1.01291680102376e-08, 1.46068777075384e-08]}, + {"name": "E-P7 iso 800", "iso": 800, "a": [2.46821178473961e-05, 9.9346706294085e-06, 2.49845903783353e-05], "b": [3.14833816148721e-08, 2.43250809737711e-08, 3.21550241743548e-08]}, + {"name": "E-P7 iso 1600", "iso": 1600, "a": [4.87802404364331e-05, 1.94816060495115e-05, 4.91387162530736e-05], "b": [7.38688579860476e-08, 5.62048676161688e-08, 7.36304334015973e-08]}, + {"name": "E-P7 iso 3200", "iso": 3200, "a": [9.59341791643084e-05, 3.85354771738725e-05, 9.70754286798067e-05], "b": [1.30512713383963e-07, 9.37120942683036e-08, 1.25492089653434e-07]}, + {"name": "E-P7 iso 6400", "iso": 6400, "a": [0.000194316665036163, 7.77742060963611e-05, 0.0001967323424605], "b": [2.81850007796995e-07, 1.98848520973078e-07, 2.68323340137056e-07]}, + {"name": "E-P7 iso 12800", "iso": 12800, "a": [0.000401634434675095, 0.000159840051480087, 0.000405293613649797], "b": [7.01852562797397e-07, 5.69195293912447e-07, 6.75352693308946e-07]}, + {"name": "E-P7 iso 25600", "iso": 25600, "a": [0.000856113166415105, 0.000335911997018429, 0.000860002423173523], "b": [1.89348481157633e-06, 1.7200523630709e-06, 1.93627641328501e-06]} + ] + }, + { "comment": "olympus e-pl1 contributed by José Carlos R. Casimiro", "model": "E-PL1", "profiles": [ @@ -5616,6 +5724,25 @@ {"name": "ONEPLUS A6003 iso 3200", "iso": 3200, "a": [0.000481067503054928, 0.000178506040187063, 0.000384071081765525], "b": [1.71379659153122e-06, 1.69195921501592e-06, 2.28154147576285e-06]}, {"name": "ONEPLUS A6003 iso 6400", "iso": 6400, "a": [0.000761584975023307, 0.000312508706834794, 0.000615570880679479], "b": [2.7356528265377e-06, 2.84600840632156e-06, 3.7319159430218e-06]} ] + }, + { + "comment": "OnePlus Nord 3 5G contributed by Peter Wemmert", + "model": "OnePlus Nord 3 5G", + "profiles": [ + {"name": "OnePlus Nord 3 5G iso 100", "iso": 100, "a": [1.16155647052883e-05, 3.83439428602516e-06, 6.99126357118439e-06], "b": [3.05838477766493e-08, 1.31190010278117e-08, 2.49502759574945e-08]}, + {"name": "OnePlus Nord 3 5G iso 200", "iso": 200, "a": [1.61572622009496e-05, 5.25759097521712e-06, 9.59793397799223e-06], "b": [3.93635062002642e-08, 1.71855119056203e-08, 3.23463282701575e-08]}, + {"name": "OnePlus Nord 3 5G iso 320", "iso": 320, "a": [2.34598968313947e-05, 7.5271052559279e-06, 1.39019133178999e-05], "b": [5.01566038496237e-08, 2.23594413667554e-08, 4.12079297054665e-08]}, + {"name": "OnePlus Nord 3 5G iso 500", "iso": 500, "a": [4.54655448688236e-05, 1.43957540406525e-05, 2.67505788402331e-05], "b": [9.94763414865998e-08, 5.03270470301983e-08, 8.63219393945371e-08]}, + {"name": "OnePlus Nord 3 5G iso 640", "iso": 640, "a": [5.69311275103619e-05, 1.7933908778913e-05, 3.32783783336588e-05], "b": [1.24495260222814e-07, 6.49686285274035e-08, 1.11695254161908e-07]}, + {"name": "OnePlus Nord 3 5G iso 800", "iso": 800, "a": [7.01802272336549e-05, 2.2204761894325e-05, 4.13165395253332e-05], "b": [1.58607411039131e-07, 8.5120224409768e-08, 1.45945161366151e-07]}, + {"name": "OnePlus Nord 3 5G iso 1000", "iso": 1000, "a": [8.64737396526214e-05, 2.72795889809452e-05, 5.06756374482679e-05], "b": [1.99237537129977e-07, 1.11113037404809e-07, 1.87179314477715e-07]}, + {"name": "OnePlus Nord 3 5G iso 1600", "iso": 1600, "a": [0.000137320900148114, 4.30527283269709e-05, 8.05347571192204e-05], "b": [3.27350790318108e-07, 2.05621354192482e-07, 3.30841763938744e-07]}, + {"name": "OnePlus Nord 3 5G iso 2000", "iso": 2000, "a": [0.000168238444533191, 5.27323873427691e-05, 9.86380794172853e-05], "b": [4.24473410779935e-07, 2.83376069215934e-07, 4.47413383846152e-07]}, + {"name": "OnePlus Nord 3 5G iso 2500", "iso": 2500, "a": [0.000212336112169067, 6.67555654575364e-05, 0.000125693743332732], "b": [5.49305448979121e-07, 3.8972668914307e-07, 5.98575179294447e-07]}, + {"name": "OnePlus Nord 3 5G iso 4000", "iso": 4000, "a": [0.000334074588377134, 0.000105154391050553, 0.000199891982929722], "b": [9.51385307871509e-07, 7.88525036892384e-07, 1.1326698856522e-06]}, + {"name": "OnePlus Nord 3 5G iso 5000", "iso": 5000, "a": [0.000417527809188264, 0.000131356150779296, 0.000249023205188417], "b": [1.143339520625e-06, 1.02453428849859e-06, 1.44669728506426e-06]}, + {"name": "OnePlus Nord 3 5G iso 8000", "iso": 8000, "a": [0.000547201819132054, 0.000173784110007946, 0.000329243166392074], "b": [1.47816833349274e-06, 1.4458775563632e-06, 2.00582377914883e-06]} + ] } ] }, @@ -7300,6 +7427,17 @@ {"name": "KP iso 409600", "iso": 409600, "a": [0.0109954618568801, 0.00785463330197422, 0.0106331653582494], "b": [3.21486586253583e-05, -4.57049085001329e-05, 9.6732529573158e-06]}, {"name": "KP iso 819200", "iso": 819200, "a": [0.0212073230335629, 0.0164782999340476, 0.0193590640710024], "b": [0.000279434210359533, -8.03055405352881e-05, 0.000277338906773015]} ] + }, + { + "comment": "*ist ds contributed by charles", + "model": "*ist DS", + "profiles": [ + {"name": "*ist DS iso 200", "iso": 200, "a": [4.0060095368941e-06, 1.79548075868015e-06, 3.20523833472696e-06], "b": [1.89505591056566e-08, 1.21751712362586e-08, 1.95243399942241e-08]}, + {"name": "*ist DS iso 400", "iso": 400, "a": [5.42331581504131e-06, 2.36771842594128e-06, 4.32840766839149e-06], "b": [3.09846227089757e-08, 1.87175064223599e-08, 3.09952295531221e-08]}, + {"name": "*ist DS iso 800", "iso": 800, "a": [1.10343201968951e-05, 4.6821868402846e-06, 8.7442354115601e-06], "b": [8.66882847544356e-08, 5.0440402515895e-08, 8.60897793102315e-08]}, + {"name": "*ist DS iso 1600", "iso": 1600, "a": [2.35380849074203e-05, 9.64804429366582e-06, 1.83082322427452e-05], "b": [2.19174537942613e-07, 1.28852960436607e-07, 2.17187639478601e-07]}, + {"name": "*ist DS iso 3200", "iso": 3200, "a": [5.3264012565536e-05, 2.07099227090594e-05, 3.99514459261682e-05], "b": [6.75603660930612e-07, 3.73826174799021e-07, 6.62666061852185e-07]} + ] } ] }, @@ -8657,6 +8795,44 @@ ] }, { + "comment": "ilce-6700 contributed by zingerpb", + "model": "ILCE-6700", + "profiles": [ + {"name": "ILCE-6700 iso 100", "iso": 100, "a": [5.76053979453422e-06, 1.64066922966823e-06, 2.85686415339633e-06], "b": [4.01668774056514e-09, 9.98930190588784e-10, 3.52099537986009e-09]}, + {"name": "ILCE-6700 iso 125", "iso": 125, "a": [6.14360146353539e-06, 1.96213051808145e-06, 3.44369725153972e-06], "b": [7.29246851221506e-09, 1.59384202545674e-09, 4.52527250526334e-09]}, + {"name": "ILCE-6700 iso 160", "iso": 160, "a": [8.43830931265727e-06, 2.41413259128975e-06, 4.27699985503522e-06], "b": [7.50366387783866e-09, 2.62587140373834e-09, 6.40128115487989e-09]}, + {"name": "ILCE-6700 iso 200", "iso": 200, "a": [1.03116755376055e-05, 2.9561030333074e-06, 5.25359227307302e-06], "b": [1.02551737082835e-08, 3.94940487374463e-09, 8.69056611532273e-09]}, + {"name": "ILCE-6700 iso 250", "iso": 250, "a": [1.27167716020352e-05, 3.62836636437792e-06, 6.4906527631863e-06], "b": [1.38017625151036e-08, 5.89371939742931e-09, 1.17102403746839e-08]}, + {"name": "ILCE-6700 iso 320", "iso": 320, "a": [1.64800513966764e-05, 4.63958119464139e-06, 8.32499998427807e-06], "b": [1.45029996619789e-08, 5.53234187717876e-09, 1.2187598854578e-08]}, + {"name": "ILCE-6700 iso 400", "iso": 400, "a": [2.03534997457091e-05, 5.70196882475284e-06, 1.02868848466887e-05], "b": [1.8973832793303e-08, 7.68834354778311e-09, 1.57727589599677e-08]}, + {"name": "ILCE-6700 iso 500", "iso": 500, "a": [2.52110762831804e-05, 7.10056009450875e-06, 1.28708565731686e-05], "b": [2.47159633604734e-08, 1.05836733135886e-08, 2.05821214923002e-08]}, + {"name": "ILCE-6700 iso 640", "iso": 640, "a": [3.11599433434169e-05, 8.78756725706935e-06, 1.59169738757878e-05], "b": [3.22504145245829e-08, 1.45202465035735e-08, 2.68638191346383e-08]}, + {"name": "ILCE-6700 iso 800", "iso": 800, "a": [3.87772469550643e-05, 1.09752242199879e-05, 1.98983138735287e-05], "b": [4.08087230018107e-08, 1.95690472717791e-08, 3.46606492556151e-08]}, + {"name": "ILCE-6700 iso 1000", "iso": 1000, "a": [4.84501685938573e-05, 1.37206522441251e-05, 2.49019719157765e-05], "b": [5.22198811352048e-08, 2.59513702953746e-08, 4.47820612545891e-08]}, + {"name": "ILCE-6700 iso 1250", "iso": 1250, "a": [6.0776819372837e-05, 1.71398486218102e-05, 3.12957869800792e-05], "b": [6.59484647015256e-08, 3.49604945322332e-08, 5.62959643035763e-08]}, + {"name": "ILCE-6700 iso 1600", "iso": 1600, "a": [7.57718315646812e-05, 2.13470571026429e-05, 3.91487776714039e-05], "b": [8.27948343033413e-08, 4.69414321379659e-08, 7.22741244287671e-08]}, + {"name": "ILCE-6700 iso 2000", "iso": 2000, "a": [9.49522495029707e-05, 2.67723052950055e-05, 4.90624517155735e-05], "b": [1.03899546472129e-07, 6.11739206585868e-08, 9.12609693942212e-08]}, + {"name": "ILCE-6700 iso 2500", "iso": 2500, "a": [0.000119734809504315, 3.37871146152048e-05, 6.17579015569583e-05], "b": [1.28282789878586e-07, 8.01330174832348e-08, 1.1467670376128e-07]}, + {"name": "ILCE-6700 iso 3200", "iso": 3200, "a": [0.000149720406002819, 4.2564780279924e-05, 7.7783945306085e-05], "b": [1.56055828206538e-07, 1.01801255329722e-07, 1.41641207085749e-07]}, + {"name": "ILCE-6700 iso 4000", "iso": 4000, "a": [0.000188637071713793, 5.35473037311419e-05, 9.83299161705534e-05], "b": [1.93806229366126e-07, 1.34578367195364e-07, 1.78160310247483e-07]}, + {"name": "ILCE-6700 iso 5000", "iso": 5000, "a": [0.000236211826233346, 6.70755576293674e-05, 0.000123454654935268], "b": [2.33095526280788e-07, 1.70417351799916e-07, 2.19349567965472e-07]}, + {"name": "ILCE-6700 iso 6400", "iso": 6400, "a": [0.000298290627660824, 8.45648111397153e-05, 0.000154909345003776], "b": [2.79432322949163e-07, 2.14377635420347e-07, 2.70622030221362e-07]}, + {"name": "ILCE-6700 iso 8000", "iso": 8000, "a": [0.000375283732720437, 0.000106949986572504, 0.000195945749497864], "b": [3.36566244428701e-07, 2.74904136843124e-07, 3.35764980168448e-07]}, + {"name": "ILCE-6700 iso 10000", "iso": 10000, "a": [0.000469709163288037, 0.000133849683268407, 0.00024680882099669], "b": [3.81445051840935e-07, 3.41662827950407e-07, 4.03021811619142e-07]}, + {"name": "ILCE-6700 iso 12800", "iso": 12800, "a": [0.000598589557764176, 0.000170150425979597, 0.00031346276261512], "b": [4.37460166886083e-07, 4.30669646968546e-07, 4.98535355541121e-07]}, + {"name": "ILCE-6700 iso 16000", "iso": 16000, "a": [0.000420213250027509, 0.000118927847723971, 0.000211522107904091], "b": [5.02611106257439e-07, 4.52706657431437e-07, 5.39864048181092e-07]}, + {"name": "ILCE-6700 iso 20000", "iso": 20000, "a": [0.000529602308389873, 0.000150627134333399, 0.000268402379309673], "b": [5.49169854485803e-07, 5.32692397976574e-07, 6.23657864865721e-07]}, + {"name": "ILCE-6700 iso 25600", "iso": 25600, "a": [0.000666125430175872, 0.000189035906485928, 0.00033725938603723], "b": [5.88119450596344e-07, 6.5247433095073e-07, 7.4283962428867e-07]}, + {"name": "ILCE-6700 iso 32000", "iso": 32000, "a": [0.00087783501937456, 0.000246734163409722, 0.000445728542402174], "b": [4.74782382320257e-07, 5.70369653394941e-07, 6.46330794364318e-07]}, + {"name": "ILCE-6700 iso 32000", "iso": 32000, "a": [0.000860062394895381, 0.000243252662242582, 0.000434433836512951], "b": [4.02641753283809e-07, 6.05240672434411e-07, 6.77327624785912e-07]}, + {"name": "ILCE-6700 iso 40000", "iso": 40000, "a": [0.00108031263659543, 0.000308270529351213, 0.000554402950358943], "b": [2.6991673947087e-07, 7.07021298520812e-07, 7.30007712507438e-07]}, + {"name": "ILCE-6700 iso 51200", "iso": 51200, "a": [0.00136097783040805, 0.000387702994221882, 0.000696672654431157], "b": [2.10843642494744e-07, 1.04566956903592e-06, 1.07160774184481e-06]}, + {"name": "ILCE-6700 iso 64000", "iso": 64000, "a": [0.00172119448961222, 0.000488724737503561, 0.000892309836440566], "b": [-5.76834148389228e-09, 1.58191847607904e-06, 1.61393626262433e-06]}, + {"name": "ILCE-6700 iso 80000", "iso": 80000, "a": [0.00209332483618867, 0.000627153392137457, 0.00113069390817479], "b": [-5.46364822129028e-07, 2.2080994135526e-06, 2.04892367823974e-06]}, + {"name": "ILCE-6700 iso 102400", "iso": 102400, "a": [0.00285453544659552, 0.000834263410371187, 0.00149319805708772], "b": [-1.70900577074965e-06, 2.48461706476613e-06, 2.40854223206604e-06]} + ] + }, + { "comment": "sony ilce-5100 contributed by Mat", "model": "ILCE-5100", "profiles": [ @@ -8873,6 +9049,49 @@ ] }, { + "comment": "ilce-7cm2 contributed by tom", + "model": "ILCE-7CM2", + "profiles": [ + {"name": "ILCE-7CM2 iso 50", "iso": 50, "a": [3.15325290849987e-06, 1.14415821745486e-06, 2.00508567961611e-06], "b": [1.19256807351892e-09, 1.23087055935424e-09, 1.52205885241171e-09]}, + {"name": "ILCE-7CM2 iso 64", "iso": 64, "a": [3.85649395953188e-06, 1.3887965617176e-06, 2.44190027918674e-06], "b": [1.7536750219483e-09, 1.62638641872465e-09, 2.06295071524984e-09]}, + {"name": "ILCE-7CM2 iso 80", "iso": 80, "a": [4.71409023903325e-06, 1.6974033129964e-06, 2.99608056123683e-06], "b": [2.4322515935411e-09, 2.36229769558342e-09, 2.88905890671319e-09]}, + {"name": "ILCE-7CM2 iso 100", "iso": 100, "a": [2.89530164048183e-06, 1.04949150717477e-06, 1.83743037797375e-06], "b": [9.50369370005284e-10, 9.56648525544741e-10, 1.16803414077406e-09]}, + {"name": "ILCE-7CM2 iso 125", "iso": 125, "a": [3.58823693835629e-06, 1.29767988900295e-06, 2.28224220233369e-06], "b": [1.29292072454935e-09, 1.29945968856079e-09, 1.54633317922805e-09]}, + {"name": "ILCE-7CM2 iso 160", "iso": 160, "a": [4.47868881848117e-06, 1.60860794934974e-06, 2.83812955900729e-06], "b": [1.66117856795482e-09, 1.6883426651588e-09, 2.06394177212676e-09]}, + {"name": "ILCE-7CM2 iso 200", "iso": 200, "a": [5.53261310888657e-06, 1.98037406975184e-06, 3.5087318364626e-06], "b": [2.21211764268687e-09, 2.43017503362542e-09, 2.89845462919715e-09]}, + {"name": "ILCE-7CM2 iso 250", "iso": 250, "a": [7.11684960227349e-06, 2.54448548958548e-06, 4.51568726064172e-06], "b": [3.23408932227053e-09, 3.5138857057283e-09, 4.07364433851891e-09]}, + {"name": "ILCE-7CM2 iso 320", "iso": 320, "a": [8.57903608275566e-06, 3.06833474759912e-06, 5.42780565858249e-06], "b": [4.97491679319948e-09, 4.83811807062186e-09, 5.97256928186362e-09]}, + {"name": "ILCE-7CM2 iso 400", "iso": 400, "a": [1.1000322384095e-05, 3.88663332507113e-06, 6.93378804933162e-06], "b": [1.90547646121069e-09, 2.46224268329585e-09, 3.00838045628735e-09]}, + {"name": "ILCE-7CM2 iso 500", "iso": 500, "a": [1.3747854201149e-05, 4.85086306225576e-06, 8.64348032932227e-06], "b": [2.58597946695858e-09, 3.21644587004144e-09, 3.87965265780885e-09]}, + {"name": "ILCE-7CM2 iso 640", "iso": 640, "a": [1.71992301475449e-05, 6.07695450052204e-06, 1.08139073462537e-05], "b": [3.58285372376583e-09, 4.32280387346421e-09, 5.26382991292546e-09]}, + {"name": "ILCE-7CM2 iso 800", "iso": 800, "a": [2.14301567072375e-05, 7.56564535190021e-06, 1.3490188790698e-05], "b": [4.65208723339247e-09, 5.77577832673675e-09, 6.75524100051821e-09]}, + {"name": "ILCE-7CM2 iso 1000", "iso": 1000, "a": [2.69658785111761e-05, 9.47767458245521e-06, 1.69254618647765e-05], "b": [6.3721127953961e-09, 7.58758656759387e-09, 8.92769938280944e-09]}, + {"name": "ILCE-7CM2 iso 1250", "iso": 1250, "a": [3.46956306580553e-05, 1.2267328333344e-05, 2.18236887543043e-05], "b": [8.6622833339041e-09, 1.03391515623228e-08, 1.21990452750906e-08]}, + {"name": "ILCE-7CM2 iso 1600", "iso": 1600, "a": [4.35205778601302e-05, 1.53189508275053e-05, 2.73607348282577e-05], "b": [1.2149236118414e-08, 1.36650826548809e-08, 1.61516544610376e-08]}, + {"name": "ILCE-7CM2 iso 2000", "iso": 2000, "a": [5.3161388594196e-05, 1.87973356547611e-05, 3.35057377373553e-05], "b": [1.60912595975191e-08, 1.69958510824893e-08, 2.01901047098283e-08]}, + {"name": "ILCE-7CM2 iso 2500", "iso": 2500, "a": [6.65166845616131e-05, 2.36391633417963e-05, 4.19679519562038e-05], "b": [2.30928723224967e-08, 2.26494747082351e-08, 2.71093266801183e-08]}, + {"name": "ILCE-7CM2 iso 3200", "iso": 3200, "a": [8.36578387399688e-05, 2.96863219938574e-05, 5.27677573906031e-05], "b": [3.09536735133051e-08, 2.96773098992272e-08, 3.47313233678185e-08]}, + {"name": "ILCE-7CM2 iso 4000", "iso": 4000, "a": [0.000105062664031526, 3.727402643062e-05, 6.6385443420885e-05], "b": [4.30350055250616e-08, 4.03380152657467e-08, 4.76064907321812e-08]}, + {"name": "ILCE-7CM2 iso 5000", "iso": 5000, "a": [0.000132038342628508, 4.69801685311794e-05, 8.35415075099512e-05], "b": [5.96188856072379e-08, 5.36377366885964e-08, 6.34999977084616e-08]}, + {"name": "ILCE-7CM2 iso 6400", "iso": 6400, "a": [0.000166506282771989, 5.92519042774361e-05, 0.000105513386320542], "b": [7.90766241122039e-08, 6.83229587156401e-08, 8.22845787533387e-08]}, + {"name": "ILCE-7CM2 iso 8000", "iso": 8000, "a": [0.000201661323013953, 7.1162226173904e-05, 0.000127230561217018], "b": [9.70195426439991e-08, 8.3022197909835e-08, 1.00171214901966e-07]}, + {"name": "ILCE-7CM2 iso 10000", "iso": 10000, "a": [0.000242366409651266, 8.56673210284394e-05, 0.000153144140725813], "b": [1.13975678469106e-07, 9.31102571242164e-08, 1.14058552603046e-07]}, + {"name": "ILCE-7CM2 iso 12800", "iso": 12800, "a": [0.000286877355018967, 9.9853719342929e-05, 0.000178817620972932], "b": [1.3359456234708e-07, 1.1698767732057e-07, 1.35600481679853e-07]}, + {"name": "ILCE-7CM2 iso 16000", "iso": 16000, "a": [0.000352572506021118, 0.000123248831693094, 0.000220165509461956], "b": [1.57144483849228e-07, 1.31797554643203e-07, 1.56567496882677e-07]}, + {"name": "ILCE-7CM2 iso 20000", "iso": 20000, "a": [0.000437919360725322, 0.000152759579046369, 0.000272872514693932], "b": [1.84020737810113e-07, 1.63855865989842e-07, 1.87329548967969e-07]}, + {"name": "ILCE-7CM2 iso 25600", "iso": 25600, "a": [0.000535402107587316, 0.000187330127747682, 0.000335002508364849], "b": [1.9370840221102e-07, 1.81429183041721e-07, 2.05951965399339e-07]}, + {"name": "ILCE-7CM2 iso 32000", "iso": 32000, "a": [0.000668372271329254, 0.000234329212928612, 0.000419262869232281], "b": [2.00749865198703e-07, 2.39302309580098e-07, 2.52890309321118e-07]}, + {"name": "ILCE-7CM2 iso 40000", "iso": 40000, "a": [0.000841073258669272, 0.000295822038790553, 0.000528580016220444], "b": [1.19362958614259e-07, 3.11764819502386e-07, 2.91133193251706e-07]}, + {"name": "ILCE-7CM2 iso 51200", "iso": 51200, "a": [0.00105664616292161, 0.000373074163579325, 0.000663387111892552], "b": [-1.01584295989549e-07, 3.96953736673132e-07, 2.76950476767125e-07]}, + {"name": "ILCE-7CM2 iso 64000", "iso": 64000, "a": [0.000751212220524663, 0.00027738787718825, 0.000455225416084034], "b": [2.35593088257823e-09, 3.59516730752379e-07, 3.04685418954309e-07]}, + {"name": "ILCE-7CM2 iso 80000", "iso": 80000, "a": [0.000951802518196761, 0.00035232729781427, 0.000577049836146567], "b": [-2.85138146085132e-07, 4.43315405289892e-07, 3.022815380409e-07]}, + {"name": "ILCE-7CM2 iso 102400", "iso": 102400, "a": [0.00128164316866675, 0.000475461599245316, 0.000775441845105889], "b": [-1.08973979607988e-06, 5.82673094076882e-07, 1.86113332075488e-07]}, + {"name": "ILCE-7CM2 iso 128000", "iso": 128000, "a": [0.00159616515605242, 0.000598006689849666, 0.000971990111913491], "b": [-2.23412830381599e-06, 6.77317322032475e-07, -1.06813733807569e-07]}, + {"name": "ILCE-7CM2 iso 160000", "iso": 160000, "a": [0.00194214376776374, 0.000739669359823797, 0.00119801467183322], "b": [-3.96485864984941e-06, 8.13199962663426e-07, -4.10181786775007e-07]}, + {"name": "ILCE-7CM2 iso 204800", "iso": 204800, "a": [0.00248551598434816, 0.000967815367206779, 0.0015627849892481], "b": [-7.50766614176241e-06, 9.08559230756791e-07, -1.41447908356489e-06]} + ] + }, + { "comment": "ilce-9 contributed by chris", "model": "ILCE-9", "profiles": [ diff -Nru darktable-4.4.2/data/org.darktable.darktable.appdata.xml.in darktable-4.6.1/data/org.darktable.darktable.appdata.xml.in --- darktable-4.4.2/data/org.darktable.darktable.appdata.xml.in 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/data/org.darktable.darktable.appdata.xml.in 2024-02-16 17:31:09.000000000 +0000 @@ -48,8 +48,11 @@ + + + diff -Nru darktable-4.4.2/data/themes/darktable-elegant-darker.css darktable-4.6.1/data/themes/darktable-elegant-darker.css --- darktable-4.4.2/data/themes/darktable-elegant-darker.css 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/data/themes/darktable-elegant-darker.css 2024-02-16 17:31:09.000000000 +0000 @@ -72,7 +72,8 @@ "SF Pro Display Light", "SF Pro Display", /* Mac OS X default */ "Ubuntu Light", "Ubuntu", "IPAPGothic", /* Ubuntu default */ "Cantarell", /* Gnome default */ - sans-serif; /* default default */ + "Arial Unicode MS", /* Unicode glyphs */ + sans-serif; /* default default */ } .dt_section_label:not(#blending-box), @@ -84,6 +85,7 @@ "SF Pro Display Medium", "SF Pro Display", "Ubuntu Medium", "Ubuntu", "IPAPGothic", "Cantarell", + "Arial Unicode MS", sans-serif; } @@ -95,7 +97,8 @@ "SF Pro Display", "SF Pro Display", "Ubuntu Condensed", "Ubuntu", "IPAPGothic", "Cantarell", - sans-serif; + "Arial Unicode MS", + sans-serif; } .active_menu_item *, /* needed for some Pango issues not rendering synthetic bold for all OS */ @@ -109,5 +112,6 @@ "SF Pro Text", "Ubuntu", "IPAPGothic", "Cantarell", + "Arial Unicode MS", sans-serif; } diff -Nru darktable-4.4.2/data/themes/darktable-elegant-grey.css darktable-4.6.1/data/themes/darktable-elegant-grey.css --- darktable-4.4.2/data/themes/darktable-elegant-grey.css 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/data/themes/darktable-elegant-grey.css 2024-02-16 17:31:09.000000000 +0000 @@ -51,7 +51,7 @@ @define-color bauhaus_fg_insensitive alpha(@bauhaus_fg, 0.5); /* GTK Buttons and tabs */ -@define-color button_bg @grey_55; +@define-color button_bg shade(@grey_55,0.95); @define-color button_hover_bg @grey_70; @define-color button_hover_fg @grey_30; diff -Nru darktable-4.4.2/data/themes/darktable.css darktable-4.6.1/data/themes/darktable.css --- darktable-4.4.2/data/themes/darktable.css 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/data/themes/darktable.css 2024-02-16 17:31:09.000000000 +0000 @@ -18,9 +18,9 @@ /*** This has been tested with GTK 3.24 on Gnome ***/ -/*-------------------------------------- - - Perceptually uniform grey gradient - - --------------------------------------*/ +/*---------------------------------------------------------- + - Perceptually uniform grey gradient on LCH color space. - + --------------------------------------------------------*/ /* grey_00 = pure black is forbidden for visual assessment */ @define-color grey_00 #000000; @@ -187,7 +187,7 @@ @define-color thumbnail_star_bg_color @grey_35; @define-color thumbnail_star_hover_color @grey_80; @define-color thumbnail_fg_color @grey_55; -@define-color thumbnail_bg50_color @grey_100; +@define-color thumbnail_bg50_color @grey_95; @define-color thumbnail_selected_bg_color @grey_70; @define-color thumbnail_hover_bg_color @grey_85; @define-color thumbnail_hover_fg_color @grey_90; @@ -237,7 +237,7 @@ background-image: none; color: @fg_color; font-size: 1em; /* avoid changing this settings or you will made the UI quite awful (too big or too small) */ - font-family: sans-serif; + font-family: sans-serif, "Arial Unicode MS"; font-feature-settings: "tnum"; font-weight: normal; box-shadow:none; @@ -297,6 +297,7 @@ box * { background-color: transparent; + font-family: sans-serif, "Arial Unicode MS"; } /*---------------------- @@ -353,7 +354,7 @@ border: 1px solid @button_border; /* this too */ border-radius: 0.21em; background-color: @button_bg; - font-family: sans-serif; + font-family: sans-serif, "Arial Unicode MS"; } /* then set specific settings for all text zones and combo */ @@ -369,6 +370,7 @@ .combo, entry, +#dt-metadata-multi, textview { padding: 0.07em 0.28em; /* be sure to keep 0.07em padding, at least to scrolledwindow textview part. part of workaround just below */ @@ -390,6 +392,7 @@ .dt_module_btn, .path-bar button, header button, +.image-button, .text-button, .text-button radio, /* this line and following one are needed to set good margin inside some buttons, especially in header buttons in about dialog window and on radio button and label inside star icon overlay menu */ .text-button label @@ -591,7 +594,7 @@ color: @plugin_label_color; padding: 0 0.14em 0.14em 0.45em; font-weight: normal; - font-family: sans-serif; + font-family: sans-serif, "Arial Unicode MS"; font-size: 1.1em; } @@ -599,7 +602,7 @@ #iop-module-name { font-weight: lighter; - font-family: sans-serif; + font-family: sans-serif, "Arial Unicode MS"; font-size: 0.8em; } @@ -623,7 +626,7 @@ { padding: 0.14em 0; color: @section_label; - font-family: sans-serif; + font-family: sans-serif, "Arial Unicode MS"; font-weight: 500; } @@ -742,18 +745,24 @@ } /* set top margin in bottom button bar to be the same as bottom margin applied above for main dialog window */ -dialog .dialog-action-box +dialog .dialog-action-box, +#shortcut-controls, +#preset-controls { margin-top: 0.42em; } +dialog .dialog-vbox .text-button:not(.toggle) +{ + margin: 0.21em; +} /* remove margin on the left for first left button only, then do the same for right margin for last right button only */ dialog .dialog-action-box button:first-child { margin-left: 0; } -dialog .dialog-action-box button:last-child +dialog .dialog-vbox button:last-child:not(.toggle) { margin-right: 0; } @@ -843,6 +852,7 @@ } /* and set menuitem related to sort of combobox like metadata presets in import module */ +menuitem label, #view-dropdown button, #view-dropdown menuitem, #view-label @@ -897,7 +907,7 @@ #guides-line, #modules-tabs { - font-family: sans-serif; + font-family: sans-serif, "Arial Unicode MS"; } #blending-tabs, @@ -1098,8 +1108,13 @@ margin-right: 1.75em; } -#preferences-notebook combobox, -#preferences-notebook spinbutton, +#preference_non_default +{ + font-weight: bolder; + margin: 0.07em; + min-width: 1em; +} + #preset-controls entry, #shortcut-controls entry { @@ -1107,18 +1122,6 @@ } /* Set buttons and search field on presets and shortcuts control buttons */ -#shortcut-controls, -#preset-controls -{ - margin-top: 0.35em; -} - -#shortcut-controls button, -#preset-controls button -{ - margin-left: 0.28em; -} - #shortcut-controls .search, #preferences-box #shortcut-controls check { @@ -1452,7 +1455,8 @@ #import-presets, #modulegroups-ro { - font-style: italic; + margin-top: 1.0em; + font-weight: bold; } /* About window: set different background for credits view */ @@ -1503,7 +1507,7 @@ .search image.left { - padding: 0 0.21em; + padding: 0 0.4em; } .search image:disabled @@ -1606,6 +1610,18 @@ color: @disabled_fg_color; } +#dt-metadata-changed +{ + font-style: italic; + text-decoration-line: underline; +} + +#dt-metadata-multi +{ + font-style: italic; + margin: 0.07em; /* match textview */ +} + /*--------------------- - Set color pickers - ---------------------*/ @@ -1634,7 +1650,7 @@ be careful to not change that unless you really now what you do */ #picker-black { - color: @grey_00; + color: @grey_05; border: 0; } @@ -1646,7 +1662,7 @@ #picker-white { - color: @grey_100; + color: @grey_95; border: 0; } @@ -1655,6 +1671,7 @@ ------------------------------------------------------------------*/ /*** All states options are designed below, active, hover, selected, disabled and check states ***/ /* Main states */ +.default, /* dialog button that activates with Enter */ .dt_history_items:active, .dt_history_items:checked, button:active, @@ -1668,7 +1685,6 @@ filechooser *:selected, menuitem:active, menuitem:selected, -messagedialog .default, /* this show that a button in confirmation action pop-up has the focus (no by default) */ treeview *:selected:not(check), treeview *:checked:not(check), #main-histogram .dt_module_btn:checked:not(.rgb_toggle) @@ -1753,6 +1769,7 @@ color: @field_active_fg; } +#preferences-box .dt_bauhaus, treeview check:selected { background-color: @button_bg; @@ -1820,6 +1837,7 @@ border-top: 2.4em solid @plugin_bg_color; } + /*** --- Thumbtable css part --- Hierarchy : @@ -2107,6 +2125,12 @@ color: @thumbnail_font_color; } +.dt_overlays_always_extended.dt_fullview #thumb-main:hover #thumb-bottom-label, +.dt_overlays_always_extended.dt_fullview #thumb-main:selected #thumb-bottom-label +{ + color: shade(@thumbnail_font_color,.75); +} + /* Set red reject icon when visible */ .dt_overlays_hover #thumb-main:hover #thumb-reject:active, .dt_overlays_hover #thumb-main:hover #thumb-reject:hover, @@ -2157,6 +2181,12 @@ background-color: @thumbnail_star_bg_color; } +/* Set stars icon hover effect on fullview */ +.dt_fullview #thumb-main:hover #thumb-star:hover +{ + color: @lighttable_bg_color; +} + /* Set hover group and audio effect */ .dt_overlays_hover #thumb-main:hover #thumb-group-audio:hover, .dt_overlays_hover_extended #thumb-main:hover #thumb-group-audio:hover, @@ -2252,8 +2282,8 @@ .dt_fullview #thumb-main:hover #thumb-back, .dt_fullview #thumb-main:active #thumb-back { - background-color: transparent; - border: 0; + background-color: shade(@lighttable_bg_color,1.05); + border: 1px solid shade(@lighttable_bg_color,.95); } /* Set image borders */ @@ -2271,7 +2301,7 @@ .dt_overlays_always.dt_fullview #thumb-bottom, .dt_overlays_always_extended.dt_fullview #thumb-bottom { - background-color: shade(@lighttable_bg_color, 1.1); + background-color: transparent; } /* Set zoom info */ diff -Nru darktable-4.4.2/data/wb_presets.json darktable-4.6.1/data/wb_presets.json --- darktable-4.4.2/data/wb_presets.json 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/data/wb_presets.json 2024-02-16 17:31:09.000000000 +0000 @@ -34583,6 +34583,47 @@ ] }, { + "model": "M (Typ 240)", + "presets": [ + { + "name": "Daylight", + "channels": [ + 2.285156, + 1, + 1.312500, + 0 + ] + }, + { + "name": "Cloudy", + "channels": [ + 2.347656, + 1, + 1.195312, + 0 + ] + }, + { + "name": "Shade", + "channels": [ + 2.460938, + 1, + 1.109375, + 0 + ] + }, + { + "name": "Incandescent", + "channels": [ + 1.589844, + 1, + 1.839844, + 0 + ] + } + ] + }, + { "model": "D-LUX 6", "presets": [ { @@ -96431,6 +96472,293 @@ ] }, { + "model": "E-P7", + "presets": [ + { + "name": "Daylight", + "tuning": -7, + "channels": [ + 1.6484375, + 1, + 2.140625, + 0 + ] + }, + { + "name": "Daylight", + "channels": [ + 1.921875, + 1, + 1.8828125, + 0 + ] + }, + { + "name": "Daylight", + "tuning": 7, + "channels": [ + 2.1875, + 1, + 1.6171875, + 0 + ] + }, + { + "name": "Shade", + "tuning": -7, + "channels": [ + 1.9296875, + 1, + 1.6796875, + 0 + ] + }, + { + "name": "Shade", + "channels": [ + 2.25, + 1, + 1.4765625, + 0 + ] + }, + { + "name": "Shade", + "tuning": 7, + "channels": [ + 2.5625, + 1, + 1.265625, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": -7, + "channels": [ + 1.78125, + 1, + 1.9375, + 0 + ] + }, + { + "name": "Cloudy", + "channels": [ + 2.078125, + 1, + 1.703125, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": 7, + "channels": [ + 2.3671875, + 1, + 1.4609375, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": -7, + "channels": [ + 1.0390625, + 1, + 3.90625, + 0 + ] + }, + { + "name": "Tungsten", + "channels": [ + 1.2109375, + 1, + 3.4296875, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": 7, + "channels": [ + 1.375, + 1, + 2.9453125, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": -7, + "channels": [ + 1.578125, + 1, + 3.0859375, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "channels": [ + 1.8359375, + 1, + 2.7109375, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": 7, + "channels": [ + 2.0859375, + 1, + 2.328125, + 0 + ] + }, + { + "name": "Flash", + "tuning": -7, + "channels": [ + 1.875, + 1, + 1.828125, + 0 + ] + }, + { + "name": "Flash", + "channels": [ + 2.1875, + 1, + 1.609375, + 0 + ] + }, + { + "name": "Flash", + "tuning": 7, + "channels": [ + 2.4921875, + 1, + 1.3828125, + 0 + ] + }, + { + "name": "3000K", + "channels": [ + 1.2109375, + 1, + 3.4296875, + 0 + ] + }, + { + "name": "3300K", + "channels": [ + 1.4375, + 1, + 2.6875, + 0 + ] + }, + { + "name": "3600K", + "channels": [ + 1.53125, + 1, + 2.4609375, + 0 + ] + }, + { + "name": "3900K", + "channels": [ + 1.6171875, + 1, + 2.28125, + 0 + ] + }, + { + "name": "4000K", + "channels": [ + 1.8359375, + 1, + 2.7109375, + 0 + ] + }, + { + "name": "4300K", + "channels": [ + 1.7109375, + 1, + 2.1953125, + 0 + ] + }, + { + "name": "4500K", + "channels": [ + 1.8515625, + 1, + 2.2890625, + 0 + ] + }, + { + "name": "4800K", + "channels": [ + 1.828125, + 1, + 2.015625, + 0 + ] + }, + { + "name": "5300K", + "channels": [ + 1.921875, + 1, + 1.8828125, + 0 + ] + }, + { + "name": "6000K", + "channels": [ + 2.078125, + 1, + 1.703125, + 0 + ] + }, + { + "name": "6600K", + "channels": [ + 2.15625, + 1, + 1.8828125, + 0 + ] + }, + { + "name": "7500K", + "channels": [ + 2.25, + 1, + 1.4765625, + 0 + ] + } + ] + }, + { "model": "E-PL2", "presets": [ { @@ -100088,6 +100416,322 @@ ] }, { + "model": "TG-6", + "presets": [ + { + "name": "Daylight", + "tuning": -7, + "channels": [ + 1.5625, + 1, + 2.0, + 0 + ] + }, + { + "name": "Daylight", + "channels": [ + 1.8203125, + 1, + 1.7578125, + 0 + ] + }, + { + "name": "Daylight", + "tuning": 7, + "channels": [ + 2.0703125, + 1, + 1.5078125, + 0 + ] + }, + { + "name": "Shade", + "tuning": -7, + "channels": [ + 1.828125, + 1, + 1.5078125, + 0 + ] + }, + { + "name": "Shade", + "channels": [ + 2.1328125, + 1, + 1.328125, + 0 + ] + }, + { + "name": "Shade", + "tuning": 7, + "channels": [ + 2.4296875, + 1, + 1.140625, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": -7, + "channels": [ + 1.6796875, + 1, + 1.796875, + 0 + ] + }, + { + "name": "Cloudy", + "channels": [ + 1.9609375, + 1, + 1.578125, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": 7, + "channels": [ + 2.234375, + 1, + 1.3515625, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": -7, + "channels": [ + 0.9609375, + 1, + 3.3828125, + 0 + ] + }, + { + "name": "Tungsten", + "channels": [ + 1.125, + 1, + 2.96875, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": 7, + "channels": [ + 1.28125, + 1, + 2.546875, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": -7, + "channels": [ + 1.5078125, + 1, + 2.703125, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "channels": [ + 1.7578125, + 1, + 2.375, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": 7, + "channels": [ + 2.0, + 1, + 2.0390625, + 0 + ] + }, + { + "name": "Underwater", + "tuning": -7, + "channels": [ + 1.1796875, + 1, + 2.8515625, + 0 + ] + }, + { + "name": "Underwater", + "channels": [ + 1.375, + 1, + 2.5078125, + 0 + ] + }, + { + "name": "Underwater", + "tuning": 7, + "channels": [ + 1.5625, + 1, + 2.15625, + 0 + ] + }, + { + "name": "Flash", + "tuning": -7, + "channels": [ + 1.7734375, + 1, + 1.703125, + 0 + ] + }, + { + "name": "Flash", + "channels": [ + 2.0625, + 1, + 1.5, + 0 + ] + }, + { + "name": "Flash", + "tuning": 7, + "channels": [ + 2.34375, + 1, + 1.2890625, + 0 + ] + }, + { + "name": "3000K", + "channels": [ + 1.125, + 1, + 2.96875, + 0 + ] + }, + { + "name": "3300K", + "channels": [ + 1.328125, + 1, + 2.359375, + 0 + ] + }, + { + "name": "3600K", + "channels": [ + 1.4140625, + 1, + 2.171875, + 0 + ] + }, + { + "name": "3900K", + "channels": [ + 1.5, + 1, + 2.0234375, + 0 + ] + }, + { + "name": "4000K", + "channels": [ + 1.7578125, + 1, + 2.375, + 0 + ] + }, + { + "name": "4300K", + "channels": [ + 1.609375, + 1, + 2.078125, + 0 + ] + }, + { + "name": "4500K", + "channels": [ + 1.7265625, + 1, + 1.9921875, + 0 + ] + }, + { + "name": "4800K", + "channels": [ + 1.7265625, + 1, + 1.8984375, + 0 + ] + }, + { + "name": "5300K", + "channels": [ + 1.8203125, + 1, + 1.7578125, + 0 + ] + }, + { + "name": "6000K", + "channels": [ + 1.9609375, + 1, + 1.578125, + 0 + ] + }, + { + "name": "6600K", + "channels": [ + 1.984375, + 1, + 1.59375, + 0 + ] + }, + { + "name": "7500K", + "channels": [ + 2.1328125, + 1, + 1.328125, + 0 + ] + } + ] + }, + { "model": "XZ-1", "presets": [ { @@ -122195,6 +122839,52 @@ ] }, { + "maker": "Phase One", + "models": [ + { + "model": "IQ180", + "presets": [ + { + "name": "Tungsten", + "channels": [ + 1.17704999446869, + 1, + 2.67000007629395, + 0 + ] + }, + { + "name": "Fluorescent", + "channels": [ + 1.17704999446869, + 1, + 3.04999995231628, + 0 + ] + }, + { + "name": "Flash", + "channels": [ + 1.60302996635437, + 1, + 1.74000000953674, + 0 + ] + }, + { + "name": "Daylight", + "channels": [ + 1.67029011249542, + 1, + 1.75999999046326, + 0 + ] + } + ] + } + ] + }, + { "maker": "Ricoh", "models": [ { @@ -151428,6 +152118,2657 @@ 0 ] } + ] + }, + { + "model": "ILCE-7CM2", + "presets": [ + { + "name": "Daylight", + "tuning": -14, + "channels": [ + 1.955078125, + 1, + 2.0791015625, + 0 + ] + }, + { + "name": "Daylight", + "tuning": -13, + "channels": [ + 1.984375, + 1, + 2.0419921875, + 0 + ] + }, + { + "name": "Daylight", + "tuning": -12, + "channels": [ + 2.0146484375, + 1, + 2.005859375, + 0 + ] + }, + { + "name": "Daylight", + "tuning": -11, + "channels": [ + 2.044921875, + 1, + 1.96875, + 0 + ] + }, + { + "name": "Daylight", + "tuning": -10, + "channels": [ + 2.076171875, + 1, + 1.9345703125, + 0 + ] + }, + { + "name": "Daylight", + "tuning": -9, + "channels": [ + 2.107421875, + 1, + 1.900390625, + 0 + ] + }, + { + "name": "Daylight", + "tuning": -8, + "channels": [ + 2.1396484375, + 1, + 1.8662109375, + 0 + ] + }, + { + "name": "Daylight", + "tuning": -7, + "channels": [ + 2.1728515625, + 1, + 1.8330078125, + 0 + ] + }, + { + "name": "Daylight", + "tuning": -6, + "channels": [ + 2.205078125, + 1, + 1.80078125, + 0 + ] + }, + { + "name": "Daylight", + "tuning": -5, + "channels": [ + 2.2392578125, + 1, + 1.7685546875, + 0 + ] + }, + { + "name": "Daylight", + "tuning": -4, + "channels": [ + 2.2734375, + 1, + 1.73828125, + 0 + ] + }, + { + "name": "Daylight", + "tuning": -3, + "channels": [ + 2.30859375, + 1, + 1.70703125, + 0 + ] + }, + { + "name": "Daylight", + "tuning": -2, + "channels": [ + 2.3447265625, + 1, + 1.677734375, + 0 + ] + }, + { + "name": "Daylight", + "tuning": -1, + "channels": [ + 2.380859375, + 1, + 1.6484375, + 0 + ] + }, + { + "name": "Daylight", + "channels": [ + 2.41796875, + 1, + 1.619140625, + 0 + ] + }, + { + "name": "Daylight", + "tuning": 1, + "channels": [ + 2.4560546875, + 1, + 1.5908203125, + 0 + ] + }, + { + "name": "Daylight", + "tuning": 2, + "channels": [ + 2.494140625, + 1, + 1.5634765625, + 0 + ] + }, + { + "name": "Daylight", + "tuning": 3, + "channels": [ + 2.5341796875, + 1, + 1.5361328125, + 0 + ] + }, + { + "name": "Daylight", + "tuning": 4, + "channels": [ + 2.5732421875, + 1, + 1.509765625, + 0 + ] + }, + { + "name": "Daylight", + "tuning": 5, + "channels": [ + 2.615234375, + 1, + 1.4833984375, + 0 + ] + }, + { + "name": "Daylight", + "tuning": 6, + "channels": [ + 2.65625, + 1, + 1.45703125, + 0 + ] + }, + { + "name": "Daylight", + "tuning": 7, + "channels": [ + 2.6982421875, + 1, + 1.4326171875, + 0 + ] + }, + { + "name": "Daylight", + "tuning": 8, + "channels": [ + 2.740234375, + 1, + 1.4072265625, + 0 + ] + }, + { + "name": "Daylight", + "tuning": 9, + "channels": [ + 2.78515625, + 1, + 1.3828125, + 0 + ] + }, + { + "name": "Daylight", + "tuning": 10, + "channels": [ + 2.830078125, + 1, + 1.359375, + 0 + ] + }, + { + "name": "Daylight", + "tuning": 11, + "channels": [ + 2.875, + 1, + 1.3359375, + 0 + ] + }, + { + "name": "Daylight", + "tuning": 12, + "channels": [ + 2.921875, + 1, + 1.3134765625, + 0 + ] + }, + { + "name": "Daylight", + "tuning": 13, + "channels": [ + 2.96875, + 1, + 1.2900390625, + 0 + ] + }, + { + "name": "Daylight", + "tuning": 14, + "channels": [ + 3.0185546875, + 1, + 1.2685546875, + 0 + ] + }, + { + "name": "Shade", + "tuning": -14, + "channels": [ + 2.2783203125, + 1, + 1.6796875, + 0 + ] + }, + { + "name": "Shade", + "tuning": -13, + "channels": [ + 2.314453125, + 1, + 1.650390625, + 0 + ] + }, + { + "name": "Shade", + "tuning": -12, + "channels": [ + 2.349609375, + 1, + 1.62109375, + 0 + ] + }, + { + "name": "Shade", + "tuning": -11, + "channels": [ + 2.38671875, + 1, + 1.5927734375, + 0 + ] + }, + { + "name": "Shade", + "tuning": -10, + "channels": [ + 2.4248046875, + 1, + 1.564453125, + 0 + ] + }, + { + "name": "Shade", + "tuning": -9, + "channels": [ + 2.462890625, + 1, + 1.537109375, + 0 + ] + }, + { + "name": "Shade", + "tuning": -8, + "channels": [ + 2.5009765625, + 1, + 1.5107421875, + 0 + ] + }, + { + "name": "Shade", + "tuning": -7, + "channels": [ + 2.541015625, + 1, + 1.484375, + 0 + ] + }, + { + "name": "Shade", + "tuning": -6, + "channels": [ + 2.58203125, + 1, + 1.4580078125, + 0 + ] + }, + { + "name": "Shade", + "tuning": -5, + "channels": [ + 2.623046875, + 1, + 1.4326171875, + 0 + ] + }, + { + "name": "Shade", + "tuning": -4, + "channels": [ + 2.6650390625, + 1, + 1.408203125, + 0 + ] + }, + { + "name": "Shade", + "tuning": -3, + "channels": [ + 2.70703125, + 1, + 1.3837890625, + 0 + ] + }, + { + "name": "Shade", + "tuning": -2, + "channels": [ + 2.7509765625, + 1, + 1.359375, + 0 + ] + }, + { + "name": "Shade", + "tuning": -1, + "channels": [ + 2.7958984375, + 1, + 1.3359375, + 0 + ] + }, + { + "name": "Shade", + "channels": [ + 2.83984375, + 1, + 1.3125, + 0 + ] + }, + { + "name": "Shade", + "tuning": 1, + "channels": [ + 2.88671875, + 1, + 1.2900390625, + 0 + ] + }, + { + "name": "Shade", + "tuning": 2, + "channels": [ + 2.9345703125, + 1, + 1.267578125, + 0 + ] + }, + { + "name": "Shade", + "tuning": 3, + "channels": [ + 2.982421875, + 1, + 1.24609375, + 0 + ] + }, + { + "name": "Shade", + "tuning": 4, + "channels": [ + 3.0322265625, + 1, + 1.224609375, + 0 + ] + }, + { + "name": "Shade", + "tuning": 5, + "channels": [ + 3.08203125, + 1, + 1.203125, + 0 + ] + }, + { + "name": "Shade", + "tuning": 6, + "channels": [ + 3.1328125, + 1, + 1.1826171875, + 0 + ] + }, + { + "name": "Shade", + "tuning": 7, + "channels": [ + 3.185546875, + 1, + 1.162109375, + 0 + ] + }, + { + "name": "Shade", + "tuning": 8, + "channels": [ + 3.23828125, + 1, + 1.142578125, + 0 + ] + }, + { + "name": "Shade", + "tuning": 9, + "channels": [ + 3.29296875, + 1, + 1.123046875, + 0 + ] + }, + { + "name": "Shade", + "tuning": 10, + "channels": [ + 3.34765625, + 1, + 1.103515625, + 0 + ] + }, + { + "name": "Shade", + "tuning": 11, + "channels": [ + 3.4033203125, + 1, + 1.0849609375, + 0 + ] + }, + { + "name": "Shade", + "tuning": 12, + "channels": [ + 3.4619140625, + 1, + 1.06640625, + 0 + ] + }, + { + "name": "Shade", + "tuning": 13, + "channels": [ + 3.521484375, + 1, + 1.0478515625, + 0 + ] + }, + { + "name": "Shade", + "tuning": 14, + "channels": [ + 3.580078125, + 1, + 1.0302734375, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": -14, + "channels": [ + 2.10546875, + 1, + 1.9013671875, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": -13, + "channels": [ + 2.1376953125, + 1, + 1.8681640625, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": -12, + "channels": [ + 2.1708984375, + 1, + 1.8349609375, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": -11, + "channels": [ + 2.2041015625, + 1, + 1.802734375, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": -10, + "channels": [ + 2.2373046875, + 1, + 1.7705078125, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": -9, + "channels": [ + 2.271484375, + 1, + 1.7392578125, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": -8, + "channels": [ + 2.306640625, + 1, + 1.708984375, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": -7, + "channels": [ + 2.3427734375, + 1, + 1.6787109375, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": -6, + "channels": [ + 2.37890625, + 1, + 1.6494140625, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": -5, + "channels": [ + 2.4169921875, + 1, + 1.6201171875, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": -4, + "channels": [ + 2.4541015625, + 1, + 1.591796875, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": -3, + "channels": [ + 2.4931640625, + 1, + 1.564453125, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": -2, + "channels": [ + 2.53125, + 1, + 1.537109375, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": -1, + "channels": [ + 2.5712890625, + 1, + 1.5107421875, + 0 + ] + }, + { + "name": "Cloudy", + "channels": [ + 2.6123046875, + 1, + 1.484375, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": 1, + "channels": [ + 2.6533203125, + 1, + 1.458984375, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": 2, + "channels": [ + 2.6962890625, + 1, + 1.43359375, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": 3, + "channels": [ + 2.7392578125, + 1, + 1.4091796875, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": 4, + "channels": [ + 2.783203125, + 1, + 1.384765625, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": 5, + "channels": [ + 2.828125, + 1, + 1.3603515625, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": 6, + "channels": [ + 2.873046875, + 1, + 1.3369140625, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": 7, + "channels": [ + 2.919921875, + 1, + 1.314453125, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": 8, + "channels": [ + 2.966796875, + 1, + 1.2919921875, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": 9, + "channels": [ + 3.0146484375, + 1, + 1.26953125, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": 10, + "channels": [ + 3.064453125, + 1, + 1.248046875, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": 11, + "channels": [ + 3.115234375, + 1, + 1.2265625, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": 12, + "channels": [ + 3.1669921875, + 1, + 1.2060546875, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": 13, + "channels": [ + 3.21875, + 1, + 1.1845703125, + 0 + ] + }, + { + "name": "Cloudy", + "tuning": 14, + "channels": [ + 3.271484375, + 1, + 1.1650390625, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": -14, + "channels": [ + 1.224609375, + 1, + 3.8330078125, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": -13, + "channels": [ + 1.2421875, + 1, + 3.7578125, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": -12, + "channels": [ + 1.2587890625, + 1, + 3.68359375, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": -11, + "channels": [ + 1.27734375, + 1, + 3.6123046875, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": -10, + "channels": [ + 1.294921875, + 1, + 3.5419921875, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": -9, + "channels": [ + 1.3134765625, + 1, + 3.474609375, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": -8, + "channels": [ + 1.33203125, + 1, + 3.4072265625, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": -7, + "channels": [ + 1.3515625, + 1, + 3.3427734375, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": -6, + "channels": [ + 1.37109375, + 1, + 3.2763671875, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": -5, + "channels": [ + 1.3896484375, + 1, + 3.216796875, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": -4, + "channels": [ + 1.41015625, + 1, + 3.154296875, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": -3, + "channels": [ + 1.4296875, + 1, + 3.0947265625, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": -2, + "channels": [ + 1.451171875, + 1, + 3.0361328125, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": -1, + "channels": [ + 1.4716796875, + 1, + 2.978515625, + 0 + ] + }, + { + "name": "Tungsten", + "channels": [ + 1.4931640625, + 1, + 2.923828125, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": 1, + "channels": [ + 1.5146484375, + 1, + 2.869140625, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": 2, + "channels": [ + 1.537109375, + 1, + 2.814453125, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": 3, + "channels": [ + 1.55859375, + 1, + 2.7626953125, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": 4, + "channels": [ + 1.5810546875, + 1, + 2.7119140625, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": 5, + "channels": [ + 1.6044921875, + 1, + 2.66015625, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": 6, + "channels": [ + 1.6279296875, + 1, + 2.6123046875, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": 7, + "channels": [ + 1.65234375, + 1, + 2.5634765625, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": 8, + "channels": [ + 1.6767578125, + 1, + 2.5166015625, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": 9, + "channels": [ + 1.7001953125, + 1, + 2.470703125, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": 10, + "channels": [ + 1.7265625, + 1, + 2.4248046875, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": 11, + "channels": [ + 1.751953125, + 1, + 2.380859375, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": 12, + "channels": [ + 1.77734375, + 1, + 2.3369140625, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": 13, + "channels": [ + 1.8037109375, + 1, + 2.294921875, + 0 + ] + }, + { + "name": "Tungsten", + "tuning": 14, + "channels": [ + 1.830078125, + 1, + 2.25390625, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": -14, + "channels": [ + 1.451171875, + 1, + 3.5869140625, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": -13, + "channels": [ + 1.470703125, + 1, + 3.521484375, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": -12, + "channels": [ + 1.4912109375, + 1, + 3.4560546875, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": -11, + "channels": [ + 1.5107421875, + 1, + 3.3935546875, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": -10, + "channels": [ + 1.5322265625, + 1, + 3.3310546875, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": -9, + "channels": [ + 1.5537109375, + 1, + 3.2705078125, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": -8, + "channels": [ + 1.5751953125, + 1, + 3.2099609375, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": -7, + "channels": [ + 1.5966796875, + 1, + 3.15234375, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": -6, + "channels": [ + 1.619140625, + 1, + 3.095703125, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": -5, + "channels": [ + 1.6416015625, + 1, + 3.0400390625, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": -4, + "channels": [ + 1.6640625, + 1, + 2.984375, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": -3, + "channels": [ + 1.6884765625, + 1, + 2.9306640625, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": -2, + "channels": [ + 1.7109375, + 1, + 2.880859375, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": -1, + "channels": [ + 1.7353515625, + 1, + 2.8291015625, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "channels": [ + 1.759765625, + 1, + 2.7783203125, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": 1, + "channels": [ + 1.78515625, + 1, + 2.728515625, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": 2, + "channels": [ + 1.8095703125, + 1, + 2.6806640625, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": 3, + "channels": [ + 1.8359375, + 1, + 2.6328125, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": 4, + "channels": [ + 1.8623046875, + 1, + 2.5869140625, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": 5, + "channels": [ + 1.8876953125, + 1, + 2.541015625, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": 6, + "channels": [ + 1.9150390625, + 1, + 2.4970703125, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": 7, + "channels": [ + 1.9423828125, + 1, + 2.453125, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": 8, + "channels": [ + 1.970703125, + 1, + 2.41015625, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": 9, + "channels": [ + 1.9990234375, + 1, + 2.3681640625, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": 10, + "channels": [ + 2.02734375, + 1, + 2.326171875, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": 11, + "channels": [ + 2.056640625, + 1, + 2.287109375, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": 12, + "channels": [ + 2.0869140625, + 1, + 2.2470703125, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": 13, + "channels": [ + 2.1171875, + 1, + 2.208984375, + 0 + ] + }, + { + "name": "Warm White Fluorescent", + "tuning": 14, + "channels": [ + 2.1474609375, + 1, + 2.169921875, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": -14, + "channels": [ + 1.85546875, + 1, + 2.84375, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": -13, + "channels": [ + 1.8818359375, + 1, + 2.7939453125, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": -12, + "channels": [ + 1.908203125, + 1, + 2.74609375, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": -11, + "channels": [ + 1.9345703125, + 1, + 2.6982421875, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": -10, + "channels": [ + 1.9619140625, + 1, + 2.65234375, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": -9, + "channels": [ + 1.9892578125, + 1, + 2.6064453125, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": -8, + "channels": [ + 2.0166015625, + 1, + 2.5615234375, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": -7, + "channels": [ + 2.0439453125, + 1, + 2.5185546875, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": -6, + "channels": [ + 2.0732421875, + 1, + 2.474609375, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": -5, + "channels": [ + 2.1025390625, + 1, + 2.4326171875, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": -4, + "channels": [ + 2.1318359375, + 1, + 2.3916015625, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": -3, + "channels": [ + 2.1630859375, + 1, + 2.3515625, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": -2, + "channels": [ + 2.193359375, + 1, + 2.3115234375, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": -1, + "channels": [ + 2.224609375, + 1, + 2.2734375, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "channels": [ + 2.255859375, + 1, + 2.234375, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": 1, + "channels": [ + 2.2880859375, + 1, + 2.197265625, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": 2, + "channels": [ + 2.3212890625, + 1, + 2.16015625, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": 3, + "channels": [ + 2.3544921875, + 1, + 2.1240234375, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": 4, + "channels": [ + 2.388671875, + 1, + 2.0888671875, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": 5, + "channels": [ + 2.4228515625, + 1, + 2.0537109375, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": 6, + "channels": [ + 2.458984375, + 1, + 2.01953125, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": 7, + "channels": [ + 2.494140625, + 1, + 1.986328125, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": 8, + "channels": [ + 2.5302734375, + 1, + 1.953125, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": 9, + "channels": [ + 2.5673828125, + 1, + 1.9208984375, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": 10, + "channels": [ + 2.6044921875, + 1, + 1.8896484375, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": 11, + "channels": [ + 2.6435546875, + 1, + 1.8583984375, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": 12, + "channels": [ + 2.6826171875, + 1, + 1.828125, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": 13, + "channels": [ + 2.7216796875, + 1, + 1.7978515625, + 0 + ] + }, + { + "name": "Cool White Fluorescent", + "tuning": 14, + "channels": [ + 2.76171875, + 1, + 1.7685546875, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": -14, + "channels": [ + 1.9501953125, + 1, + 2.10546875, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": -13, + "channels": [ + 1.9794921875, + 1, + 2.0673828125, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": -12, + "channels": [ + 2.009765625, + 1, + 2.0302734375, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": -11, + "channels": [ + 2.0390625, + 1, + 1.9951171875, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": -10, + "channels": [ + 2.0703125, + 1, + 1.958984375, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": -9, + "channels": [ + 2.1025390625, + 1, + 1.923828125, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": -8, + "channels": [ + 2.1337890625, + 1, + 1.8896484375, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": -7, + "channels": [ + 2.1669921875, + 1, + 1.8564453125, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": -6, + "channels": [ + 2.19921875, + 1, + 1.8232421875, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": -5, + "channels": [ + 2.232421875, + 1, + 1.7919921875, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": -4, + "channels": [ + 2.267578125, + 1, + 1.759765625, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": -3, + "channels": [ + 2.3017578125, + 1, + 1.7294921875, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": -2, + "channels": [ + 2.337890625, + 1, + 1.69921875, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": -1, + "channels": [ + 2.3740234375, + 1, + 1.669921875, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "channels": [ + 2.4111328125, + 1, + 1.640625, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": 1, + "channels": [ + 2.4482421875, + 1, + 1.611328125, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": 2, + "channels": [ + 2.486328125, + 1, + 1.583984375, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": 3, + "channels": [ + 2.525390625, + 1, + 1.5556640625, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": 4, + "channels": [ + 2.564453125, + 1, + 1.529296875, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": 5, + "channels": [ + 2.60546875, + 1, + 1.5029296875, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": 6, + "channels": [ + 2.646484375, + 1, + 1.4765625, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": 7, + "channels": [ + 2.6884765625, + 1, + 1.451171875, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": 8, + "channels": [ + 2.7314453125, + 1, + 1.42578125, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": 9, + "channels": [ + 2.775390625, + 1, + 1.4013671875, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": 10, + "channels": [ + 2.8193359375, + 1, + 1.3779296875, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": 11, + "channels": [ + 2.8642578125, + 1, + 1.353515625, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": 12, + "channels": [ + 2.9111328125, + 1, + 1.330078125, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": 13, + "channels": [ + 2.9580078125, + 1, + 1.3076171875, + 0 + ] + }, + { + "name": "Day White Fluorescent", + "tuning": 14, + "channels": [ + 3.005859375, + 1, + 1.28515625, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": -14, + "channels": [ + 2.16015625, + 1, + 1.9541015625, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": -13, + "channels": [ + 2.1923828125, + 1, + 1.9189453125, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": -12, + "channels": [ + 2.224609375, + 1, + 1.88671875, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": -11, + "channels": [ + 2.2587890625, + 1, + 1.853515625, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": -10, + "channels": [ + 2.29296875, + 1, + 1.8212890625, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": -9, + "channels": [ + 2.328125, + 1, + 1.7890625, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": -8, + "channels": [ + 2.36328125, + 1, + 1.7587890625, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": -7, + "channels": [ + 2.3994140625, + 1, + 1.7275390625, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": -6, + "channels": [ + 2.4365234375, + 1, + 1.6982421875, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": -5, + "channels": [ + 2.4736328125, + 1, + 1.6689453125, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": -4, + "channels": [ + 2.51171875, + 1, + 1.6396484375, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": -3, + "channels": [ + 2.55078125, + 1, + 1.6123046875, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": -2, + "channels": [ + 2.58984375, + 1, + 1.5849609375, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": -1, + "channels": [ + 2.630859375, + 1, + 1.5576171875, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "channels": [ + 2.671875, + 1, + 1.5302734375, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": 1, + "channels": [ + 2.7138671875, + 1, + 1.5048828125, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": 2, + "channels": [ + 2.7568359375, + 1, + 1.478515625, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": 3, + "channels": [ + 2.7998046875, + 1, + 1.453125, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": 4, + "channels": [ + 2.8447265625, + 1, + 1.4287109375, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": 5, + "channels": [ + 2.888671875, + 1, + 1.404296875, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": 6, + "channels": [ + 2.935546875, + 1, + 1.380859375, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": 7, + "channels": [ + 2.982421875, + 1, + 1.357421875, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": 8, + "channels": [ + 3.029296875, + 1, + 1.3349609375, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": 9, + "channels": [ + 3.078125, + 1, + 1.3115234375, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": 10, + "channels": [ + 3.12890625, + 1, + 1.2900390625, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": 11, + "channels": [ + 3.1787109375, + 1, + 1.2685546875, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": 12, + "channels": [ + 3.2314453125, + 1, + 1.2470703125, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": 13, + "channels": [ + 3.283203125, + 1, + 1.2255859375, + 0 + ] + }, + { + "name": "Daylight Fluorescent", + "tuning": 14, + "channels": [ + 3.3369140625, + 1, + 1.205078125, + 0 + ] + }, + { + "name": "Flash", + "tuning": -14, + "channels": [ + 2.1474609375, + 1, + 1.84765625, + 0 + ] + }, + { + "name": "Flash", + "tuning": -13, + "channels": [ + 2.1806640625, + 1, + 1.814453125, + 0 + ] + }, + { + "name": "Flash", + "tuning": -12, + "channels": [ + 2.2138671875, + 1, + 1.7822265625, + 0 + ] + }, + { + "name": "Flash", + "tuning": -11, + "channels": [ + 2.248046875, + 1, + 1.7509765625, + 0 + ] + }, + { + "name": "Flash", + "tuning": -10, + "channels": [ + 2.283203125, + 1, + 1.720703125, + 0 + ] + }, + { + "name": "Flash", + "tuning": -9, + "channels": [ + 2.318359375, + 1, + 1.689453125, + 0 + ] + }, + { + "name": "Flash", + "tuning": -8, + "channels": [ + 2.3544921875, + 1, + 1.66015625, + 0 + ] + }, + { + "name": "Flash", + "tuning": -7, + "channels": [ + 2.3916015625, + 1, + 1.630859375, + 0 + ] + }, + { + "name": "Flash", + "tuning": -6, + "channels": [ + 2.427734375, + 1, + 1.6025390625, + 0 + ] + }, + { + "name": "Flash", + "tuning": -5, + "channels": [ + 2.4658203125, + 1, + 1.5751953125, + 0 + ] + }, + { + "name": "Flash", + "tuning": -4, + "channels": [ + 2.5048828125, + 1, + 1.5478515625, + 0 + ] + }, + { + "name": "Flash", + "tuning": -3, + "channels": [ + 2.5439453125, + 1, + 1.5205078125, + 0 + ] + }, + { + "name": "Flash", + "tuning": -2, + "channels": [ + 2.583984375, + 1, + 1.494140625, + 0 + ] + }, + { + "name": "Flash", + "tuning": -1, + "channels": [ + 2.6259765625, + 1, + 1.4677734375, + 0 + ] + }, + { + "name": "Flash", + "channels": [ + 2.6669921875, + 1, + 1.4423828125, + 0 + ] + }, + { + "name": "Flash", + "tuning": 1, + "channels": [ + 2.7099609375, + 1, + 1.41796875, + 0 + ] + }, + { + "name": "Flash", + "tuning": 2, + "channels": [ + 2.75390625, + 1, + 1.392578125, + 0 + ] + }, + { + "name": "Flash", + "tuning": 3, + "channels": [ + 2.796875, + 1, + 1.369140625, + 0 + ] + }, + { + "name": "Flash", + "tuning": 4, + "channels": [ + 2.8427734375, + 1, + 1.345703125, + 0 + ] + }, + { + "name": "Flash", + "tuning": 5, + "channels": [ + 2.888671875, + 1, + 1.322265625, + 0 + ] + }, + { + "name": "Flash", + "tuning": 6, + "channels": [ + 2.935546875, + 1, + 1.2998046875, + 0 + ] + }, + { + "name": "Flash", + "tuning": 7, + "channels": [ + 2.9833984375, + 1, + 1.27734375, + 0 + ] + }, + { + "name": "Flash", + "tuning": 8, + "channels": [ + 3.0322265625, + 1, + 1.2548828125, + 0 + ] + }, + { + "name": "Flash", + "tuning": 9, + "channels": [ + 3.08203125, + 1, + 1.234375, + 0 + ] + }, + { + "name": "Flash", + "tuning": 10, + "channels": [ + 3.1328125, + 1, + 1.212890625, + 0 + ] + }, + { + "name": "Flash", + "tuning": 11, + "channels": [ + 3.18359375, + 1, + 1.1923828125, + 0 + ] + }, + { + "name": "Flash", + "tuning": 12, + "channels": [ + 3.236328125, + 1, + 1.171875, + 0 + ] + }, + { + "name": "Flash", + "tuning": 13, + "channels": [ + 3.291015625, + 1, + 1.1513671875, + 0 + ] + }, + { + "name": "Flash", + "tuning": 14, + "channels": [ + 3.3466796875, + 1, + 1.1318359375, + 0 + ] + }, + { + "name": "2500K", + "channels": [ + 1.3681640625, + 1, + 3.263671875, + 0 + ] + }, + { + "name": "3200K", + "channels": [ + 1.724609375, + 1, + 2.4140625, + 0 + ] + }, + { + "name": "4500K", + "channels": [ + 2.1982421875, + 1, + 1.7783203125, + 0 + ] + }, + { + "name": "6000K", + "channels": [ + 2.564453125, + 1, + 1.4853515625, + 0 + ] + }, + { + "name": "8500K", + "channels": [ + 2.92578125, + 1, + 1.2568359375, + 0 + ] + } ] }, { diff -Nru darktable-4.4.2/data/wb_presets.schema darktable-4.6.1/data/wb_presets.schema --- darktable-4.4.2/data/wb_presets.schema 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/data/wb_presets.schema 2024-02-16 17:31:09.000000000 +0000 @@ -36,6 +36,7 @@ "OM System", "Panasonic", "Pentax", + "Phase One", "Raspberrypi", "Ricoh", "Samsung", diff -Nru darktable-4.4.2/debian/NEWS darktable-4.6.1/debian/NEWS --- darktable-4.4.2/debian/NEWS 2023-09-19 01:26:16.000000000 +0000 +++ darktable-4.6.1/debian/NEWS 2024-03-06 01:32:38.000000000 +0000 @@ -1,20 +1,11 @@ -darktable (4.4.2-0ubuntu1) UNRELEASED; urgency=medium +darktable (4.6.1-1) unstable; urgency=medium * This version of darktable has again an incompatible database format with earlier versions. If you think you might go back to an older version of darktable, make a backup of .config/darktable and all of your .xmp files. - -- Rob Savoury Mon, 18 Sep 2023 18:26:02 -0700 - -darktable (4.0.0-0ubuntu1) UNRELEASED; urgency=medium - - * This version of darktable has again an incompatible database format - with earlier versions. If you think you might go back to an older - version of darktable, make a backup of .config/darktable and all of - your .xmp files. - - -- Rob Savoury Tue, 02 Aug 2022 09:06:23 -0700 + -- Rob Savoury Tue, 05 Mar 2024 17:32:38 -0800 darktable (3.2.1-1) unstable; urgency=medium diff -Nru darktable-4.4.2/debian/changelog darktable-4.6.1/debian/changelog --- darktable-4.4.2/debian/changelog 2023-10-29 19:15:50.000000000 +0000 +++ darktable-4.6.1/debian/changelog 2024-03-06 01:32:38.000000000 +0000 @@ -1,91 +1,123 @@ -darktable (4.4.2-0ubuntu1~16.04.sav1) xenial; urgency=medium +darktable (4.6.1-2~16.04.sav0) xenial; urgency=medium - * Rebuild with new libavif16 (libavif 1.0.1) and libjxl0.8 (libjxl 0.8.2) - * d/patches/: Add fix-build-with-new-libavif.patch to fix FTBFS + * Backport to Xenial + * Build with G'MIC, JasPer, and HEIF/HEIC support as supported by source: + - debian/control: Add libgmic-dev, libjasper-dev (>= 4.0.0), and also + libheif (>= 1.13.0) BDs for these additional features + * Build the additional basecurve and noise reduction tools: + - debian/rules: Add BUILD_{CURVE,NOISE}_TOOLS=ON configs + * debian/control: Add g++ (>= 4:12.3.0) BD as GCC >= 12 (or LLVM >= 14) is + now required for darktable >= 4.4.0 (use ppa:savoury1/gcc-defaults-12) + - Set debhelper-compat (= 10) BD (Launchpad sbuild highest for Xenial) + - Set versioned libgtk-3-dev (>= 3.22.0) as is required by source + * debian/NEWS: Add a note that database is incompatible with older releases + * debian/patches/: Add revert-use-font-feature-settings.patch to fix issue + #13166 caused by font-feature-settings CSS property (GTK >= 3.24.15) + - Add revert-require-gtk-3-24.patch which has been enforced by upstream + only for font-feature-settings CSS property, which does not make any + noticeable difference with GTK 3.22.30 as backported to 16.04 Xenial + - Add revert-centre-iop-tooltip.patch to fix another FTBFS (GTK < 3.24) - -- Rob Savoury Sun, 29 Oct 2023 12:15:50 -0700 + -- Rob Savoury Tue, 05 Mar 2024 17:32:38 -0800 -darktable (4.4.2-0ubuntu1~16.04.sav0) xenial; urgency=medium +darktable (4.6.1-2) unstable; urgency=medium - * New upstream release - * d/control: Add {clang,lld,lldb,llvm,libomp-dev} (>= 1:13.0) BDs to use - Clang 13 (ppa:savoury1/llvm-defaults-13) as otherwise GCC >= 12 is needed - * d/rules: Add export C{C,XX}=/usr/bin/clang{++} to use Clang for build - * d/NEWS: Add note that database format is incompatible with older releases - * d/patches/: Add revert-centre-iop-tooltip.patch to fix FTBFS (GTK < 3.24) + * Team upload. + * Fix FTBFS due to broken check for arm64 - -- Rob Savoury Tue, 19 Sep 2023 10:51:44 -0700 + -- Tino Mettler Sun, 18 Feb 2024 18:29:32 +0100 -darktable (4.2.1-0ubuntu1~16.04.sav0.1) xenial; urgency=medium +darktable (4.6.1-1) unstable; urgency=medium - * No-change rebuild against Imath 3.1.9 (for libimath29 dependency) + [ David Bremner ] + * Drop dependence on python3-imath, no longer needed - -- Rob Savoury Sun, 09 Jul 2023 17:51:39 +1000 + [ Tino Mettler ] + * New upstream version 4.6.1 + * Restructure configure options + * Use system libraw and remove the internal copy (Closes: #1002876) + * Remove dpkg-parsechangelog usage and cruft from debian/rules + (Closes: #1060911) + * Don't require root at build time + * Update to standards version 4.6.2, no changes needed -darktable (4.2.1-0ubuntu1~16.04.sav0) xenial; urgency=medium + -- David Bremner Sun, 18 Feb 2024 07:38:22 -0400 - * New upstream release - * d/patches/: Add revert-require-gtk-3-24.patch which has been enforced by - upstream only for font-feature-settings CSS property, which does not make - any noticeable difference with GTK 3.22.30 as backported to 16.04 Xenial +darktable (4.4.2-1.1) unstable; urgency=medium - -- Rob Savoury Wed, 22 Mar 2023 12:38:12 -0700 + * Non-maintainer upload. -darktable (4.2.0-0ubuntu1~16.04.sav1) xenial; urgency=medium + [ Mitchell Dzurick ] + * Disable openmp for arm64 builds for now (LP: #2038351) + See Debian bug: #1053405 - * d/patches/: Add revert-use-font-feature-settings.patch to fix issue #13166 - caused by using font-feature-settings CSS property only in GTK >= 3.24.15 + -- Boyuan Yang Tue, 05 Dec 2023 10:05:05 -0500 - -- Rob Savoury Mon, 16 Jan 2023 12:16:11 -0800 +darktable (4.4.2-1) unstable; urgency=medium -darktable (4.2.0-0ubuntu1~16.04.sav0) xenial; urgency=medium + * Update to new upstream version 4.4.2. + * Drop patch 385aacf61e, now upstream - * New upstream release - * debian/control: Add libjxl-dev BD for new JPEG XL support + -- David Bremner Sun, 20 Aug 2023 09:26:40 -0300 - -- Rob Savoury Sun, 15 Jan 2023 16:32:22 -0800 +darktable (4.2.1-4) unstable; urgency=medium -darktable (4.0.1-0ubuntu1~16.04.sav0.1) xenial; urgency=medium + * Cherry-pick upstream commit 385aacf61e55903bb064e0fe99a1d138645f697c: + add StartupWMClass=darktable to .desktop file. (Closes: #1033001). - * No-change rebuild against new libavif15 + -- David Bremner Sun, 19 Mar 2023 14:10:18 -0300 - -- Rob Savoury Wed, 23 Nov 2022 16:21:56 -0800 +darktable (4.2.1-3) unstable; urgency=medium -darktable (4.0.1-0ubuntu1~16.04.sav0) xenial; urgency=medium + * Bug fix: "AVIF support is missing in Darktable", thanks to Guy + Rutenberg (Closes: #1032054). - * New upstream release - * debian/control: Add lib{portmidi,sdl2}-dev BDs for more optional features + -- David Bremner Mon, 27 Feb 2023 08:03:27 -0400 - -- Rob Savoury Mon, 07 Nov 2022 16:29:49 -0800 +darktable (4.2.1-2) unstable; urgency=medium -darktable (4.0.0-0ubuntu1~16.04.sav0) xenial; urgency=medium + * Upload to unstable + * drop obsolete URL from debian/copyright. - * New upstream release - * Build with Jasper (new 3.x version) and HEIF/HEIC support: - - d/control: Add libjasper-dev (>= 3.0.0) and libheif-dev (>= 1.12.0) BDs - * d/NEWS: Add note that database format is incompatible with older releases + -- David Bremner Sun, 26 Feb 2023 13:59:35 -0400 - -- Rob Savoury Tue, 02 Aug 2022 22:14:04 -0700 +darktable (4.2.1-1) experimental; urgency=medium -darktable (3.8.1-1+16.04.sav0.1) xenial; urgency=medium + * Update to new upstream version 4.2.1. + * Replace embedded Libraw with 0.21.0. See Debian bug #1031790 / + CVE-2021-32142 - * No-change rebuild against latest libavif14 + -- David Bremner Fri, 24 Feb 2023 08:07:51 -0400 - -- Rob Savoury Mon, 16 May 2022 18:44:53 -0700 +darktable (4.2.0-2) unstable; urgency=medium -darktable (3.8.1-1+16.04.sav0) xenial; urgency=medium + * Build against libjxl. Bug fix: "Missing JPEG XL support", thanks to Davide G. Borin (Closes: + #1027054). - * Backport to Xenial - * Build with gmic and libavif support: - - d/control: Add lib{gmic,avif}-dev BDs - * Build the additional tools: - - d/rules: Add BUILD_{CURVE,NOISE}_TOOLS=ON configs - * debian/control: Set debhelper-compat (= 10) BD (LP highest for Xenial) - - Set versioned libgtk-3-dev (>= 3.22.0) as required by source - * Build with GCC 9.3.0 for full OpenMP 4.5 support and LTO capability: - - debian/control: Add g++ (>= 4:9.3.0-1~) BD (ppa:savoury1/gcc-defaults-9) + -- David Bremner Tue, 27 Dec 2022 08:24:36 -0400 + +darktable (4.2.0-1) unstable; urgency=medium - -- Rob Savoury Sun, 10 Apr 2022 17:20:26 -0700 + * Update to new upstream version 4.2.0. + + -- David Bremner Mon, 26 Dec 2022 18:08:02 -0400 + +darktable (4.0.0-1) unstable; urgency=medium + + * Update to new upstream version 4.0.0. + * Bug fix: "Update to latest major", thanks to Shin Ice (Closes: + #1017387). + * Bug fix: "misses optional dependencies sdl2 and portmidi", (Closes: + #1003174). + + -- David Bremner Sun, 04 Sep 2022 14:34:40 -0300 + +darktable (3.8.1-2) unstable; urgency=medium + + * Bug fix: "Please rebuild darktable 3.8.1. against newer exiv2 for CR3 + support", thanks to Mike Brodbelt (Closes: #1009082). + + -- David Bremner Sat, 09 Apr 2022 13:04:04 -0300 darktable (3.8.1-1) unstable; urgency=medium @@ -1057,7 +1089,7 @@ SLT-A37/A57, Leica X1/X2, Sony DSC-RX100 * Build with libtiff5 (Closes: #682588). * Switch to debhelper compat 9, for hardening support - + -- David Bremner Fri, 27 Jul 2012 06:59:38 -0300 darktable (1.0.4-1) unstable; urgency=low diff -Nru darktable-4.4.2/debian/clean darktable-4.6.1/debian/clean --- darktable-4.4.2/debian/clean 2022-02-28 13:00:30.000000000 +0000 +++ darktable-4.6.1/debian/clean 2024-02-18 17:29:32.000000000 +0000 @@ -2,3 +2,4 @@ doc/usermanual/profiled_final.xml doc/usermanual/usermanual.pdf src/external/lua/ +src/external/LibRaw/ diff -Nru darktable-4.4.2/debian/control darktable-4.6.1/debian/control --- darktable-4.4.2/debian/control 2023-09-19 17:50:23.000000000 +0000 +++ darktable-4.6.1/debian/control 2024-03-06 01:29:46.000000000 +0000 @@ -5,11 +5,7 @@ Uploaders: David Bremner Build-Depends: cmake, debhelper-compat (= 10), - clang (>= 1:13.0), - lld (>= 1:13.0), - lldb (>= 1:13.0), - llvm (>= 1:13.0), - libomp-dev (>= 1:13.0), + g++ (>= 4:12.3.0), intltool, iso-codes, libavif-dev, @@ -24,8 +20,8 @@ libgphoto2-dev, libgraphicsmagick1-dev, libgtk-3-dev (>= 3.22.0), - libheif-dev (>= 1.12.0), - libjasper-dev (>= 3.0.0), + libheif-dev (>= 1.13.0), + libjasper-dev (>= 4.0.0), libjpeg-dev, libjson-glib-dev, libjxl-dev, @@ -39,6 +35,7 @@ libportmidi-dev, libpugixml-dev, libsdl2-dev, + libraw-dev, librsvg2-dev, libsecret-1-dev, libsoup2.4-dev, @@ -46,10 +43,11 @@ libtiff-dev, libwebp-dev, xsltproc -Standards-Version: 4.1.2 +Standards-Version: 4.6.2 Homepage: http://www.darktable.org/ Vcs-Git: https://salsa.debian.org/debian-phototools-team/darktable.git Vcs-Browser: https://salsa.debian.org/debian-phototools-team/darktable +Rules-Requires-Root: no Package: darktable Architecture: any-amd64 any-arm64 diff -Nru darktable-4.4.2/debian/copyright darktable-4.6.1/debian/copyright --- darktable-4.4.2/debian/copyright 2022-02-28 13:00:30.000000000 +0000 +++ darktable-4.6.1/debian/copyright 2024-02-18 17:29:32.000000000 +0000 @@ -2,10 +2,6 @@ Bernd Zeimetz on Wed, 26 May 2010 14:49:58 +0200 -It was downloaded from: - - git://git.debian.org/pkg-phototools/darktable.git - Upstream Authors (at least 10 commits): johannes hanika, Henrik Andersson, Tobias Ellinghaus, Ulrich diff -Nru darktable-4.4.2/debian/patches/fix-build-with-new-libavif.patch darktable-4.6.1/debian/patches/fix-build-with-new-libavif.patch --- darktable-4.4.2/debian/patches/fix-build-with-new-libavif.patch 2023-10-29 19:03:50.000000000 +0000 +++ darktable-4.6.1/debian/patches/fix-build-with-new-libavif.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,50 +0,0 @@ -From 698b14bf2d97e6386b79e9b4803e76371ea67db5 Mon Sep 17 00:00:00 2001 -From: Milos Komarcevic -Date: Tue, 29 Aug 2023 17:18:52 +0200 -Subject: [PATCH] cmake: accept libavif major version bump - ---- - src/CMakeLists.txt | 18 ++++++++++++------ - 1 file changed, 12 insertions(+), 6 deletions(-) - -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 11fa11567fe..a772b78a379 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -352,16 +352,22 @@ if(USE_WEBP) - endif(USE_WEBP) - - if (USE_AVIF) -- find_package(libavif 0.8.2 CONFIG) -+ # no version check in config mode because of major only match policy -+ find_package(libavif CONFIG) - if (TARGET avif) -- list(APPEND LIBS avif) -- add_definitions(-DHAVE_LIBAVIF=1) -- list(APPEND SOURCES "imageio/imageio_avif.c") -- set(DT_SUPPORTED_EXTENSIONS ${DT_SUPPORTED_EXTENSIONS} avif CACHE INTERNAL "") -+ if(libavif_VERSION VERSION_GREATER_EQUAL 0.9.2) -+ list(APPEND LIBS avif) -+ add_definitions(-DHAVE_LIBAVIF=1) -+ list(APPEND SOURCES "imageio/imageio_avif.c") -+ set(DT_SUPPORTED_EXTENSIONS ${DT_SUPPORTED_EXTENSIONS} avif CACHE INTERNAL "") -+ else() -+ set(libavif_FOUND NOTFOUND) -+ endif() - endif() - endif() - - if(USE_HEIF) -+ # no version check in config mode because of exact match policy - find_package(libheif CONFIG) - if(NOT TARGET heif) - find_package(libheif 1.13.0 MODULE) -@@ -372,7 +378,7 @@ if(USE_HEIF) - add_definitions(-DHAVE_LIBHEIF=1) - list(APPEND SOURCES "imageio/imageio_heif.c") - set(DT_SUPPORTED_EXTENSIONS ${DT_SUPPORTED_EXTENSIONS} heif heic hif CACHE INTERNAL "") -- if(NOT TARGET avif) -+ if(NOT libavif_FOUND) - # libheif can handle avif, too - set(DT_SUPPORTED_EXTENSIONS ${DT_SUPPORTED_EXTENSIONS} avif CACHE INTERNAL "") - endif() diff -Nru darktable-4.4.2/debian/patches/revert-centre-iop-tooltip.patch darktable-4.6.1/debian/patches/revert-centre-iop-tooltip.patch --- darktable-4.4.2/debian/patches/revert-centre-iop-tooltip.patch 2023-09-19 17:12:57.000000000 +0000 +++ darktable-4.6.1/debian/patches/revert-centre-iop-tooltip.patch 2024-03-05 21:43:40.000000000 +0000 @@ -6,6 +6,8 @@ --- Patch is revert of commit for build with GTK 3.22.0 as move_to_rect method is only in GTK >= 3.24.0 (Ubuntu >= 20.04) and this backport is for older series. + +Last-Update: 2024-03-05 --- src/develop/imageop.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) @@ -14,7 +16,7 @@ index 2adfb064259..2f8e3babcd8 100644 --- a/src/develop/imageop.c +++ b/src/develop/imageop.c -@@ -2604,20 +2604,6 @@ void add_remove_mask_indicator(dt_iop_module_t *module, gboolean add) +@@ -2749,20 +2749,6 @@ void add_remove_mask_indicator(dt_iop_module_t *module, gboolean add) } } @@ -35,7 +37,7 @@ gboolean _iop_tooltip_callback(GtkWidget *widget, const gint x, const gint y, -@@ -2671,9 +2661,6 @@ gboolean _iop_tooltip_callback(GtkWidget *widget, +@@ -2820,9 +2806,6 @@ gboolean _iop_tooltip_callback(GtkWidget *widget, gtk_box_pack_start(GTK_BOX(vbox), grid, FALSE, FALSE, 0); @@ -45,7 +47,7 @@ return dt_shortcut_tooltip_callback(widget, x, y, keyboard_mode, tooltip, vbox); } -@@ -2745,11 +2733,7 @@ void dt_iop_gui_set_expander(dt_iop_module_t *module) +@@ -2898,11 +2881,7 @@ void dt_iop_gui_set_expander(dt_iop_module_t *module) if((module->flags() & IOP_FLAGS_DEPRECATED) && module->deprecated_msg()) gtk_widget_set_tooltip_text(lab, module->deprecated_msg()); else diff -Nru darktable-4.4.2/debian/patches/revert-require-gtk-3-24.patch.patch darktable-4.6.1/debian/patches/revert-require-gtk-3-24.patch.patch --- darktable-4.4.2/debian/patches/revert-require-gtk-3-24.patch.patch 2023-03-22 19:37:04.000000000 +0000 +++ darktable-4.6.1/debian/patches/revert-require-gtk-3-24.patch.patch 2024-03-05 21:42:38.000000000 +0000 @@ -9,6 +9,8 @@ issue by enforcing newer GTK for the font-feature-settinsg CSS property. This CSS property does not fix anything noticeable for GTK 3.22.30 as backported to Xenial, at least not with particular GTK theme used. + +Last-Update: 2024-03-05 --- src/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) @@ -17,7 +19,7 @@ index 1796b696dfd..8fc9c077b82 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt -@@ -303,8 +303,8 @@ include_directories(SYSTEM ${Glib_INCLUDE_DIRS}) +@@ -283,8 +283,8 @@ include_directories(SYSTEM ${Glib_INCLUDE_DIRS}) list(APPEND LIBS ${Glib_LIBRARIES}) # GTK3 pulls in ATK, GDK, GDK-PIXBUF, CAIRO, GLIB, PANGO diff -Nru darktable-4.4.2/debian/patches/revert-use-font-feature-settings.patch darktable-4.6.1/debian/patches/revert-use-font-feature-settings.patch --- darktable-4.4.2/debian/patches/revert-use-font-feature-settings.patch 2023-01-16 20:16:02.000000000 +0000 +++ darktable-4.6.1/debian/patches/revert-use-font-feature-settings.patch 2024-03-05 21:41:36.000000000 +0000 @@ -15,6 +15,8 @@ However, no issues with display of numbers have been seen in darktable 4.2.0 with this CSS property removed. This is no doubt due the font used by selected GTK theme not having the particular problem with display of numbers. + +Last-Update: 2024-03-05 --- data/themes/darktable.css | 7 +++++++ 1 file changed, 7 insertions(+) @@ -26,7 +28,7 @@ @@ -238,7 +238,6 @@ Why that? Just because it's a developer choice and most classes use underscore i color: @fg_color; font-size: 1em; /* avoid changing this settings or you will made the UI quite awful (too big or too small) */ - font-family: sans-serif; + font-family: sans-serif, "Arial Unicode MS"; - font-feature-settings: "tnum"; font-weight: normal; box-shadow:none; diff -Nru darktable-4.4.2/debian/patches/series darktable-4.6.1/debian/patches/series --- darktable-4.4.2/debian/patches/series 2023-10-29 18:15:24.000000000 +0000 +++ darktable-4.6.1/debian/patches/series 2024-03-05 21:37:28.000000000 +0000 @@ -1,4 +1,3 @@ -fix-build-with-new-libavif.patch revert-use-font-feature-settings.patch revert-require-gtk-3-24.patch.patch revert-centre-iop-tooltip.patch diff -Nru darktable-4.4.2/debian/rules darktable-4.6.1/debian/rules --- darktable-4.4.2/debian/rules 2023-09-19 05:18:30.000000000 +0000 +++ darktable-4.6.1/debian/rules 2024-03-06 01:32:38.000000000 +0000 @@ -1,13 +1,7 @@ #!/usr/bin/make -f # -*- makefile -*- -SOURCEPKG=$(shell dpkg-parsechangelog | sed -n 's/^Source: \(.*\)/\1/p') -UPSTREAM=$(shell dpkg-parsechangelog | sed -n 's/^Version: \(.*\)-[^-]*/\1/p') -SHA1=$(lastword $(subst ~g, ,$(UPSTREAM))) -ORIG=${SOURCEPKG}_${UPSTREAM}.orig.tar.gz - -export CXX=/usr/bin/clang++ -export CC=/usr/bin/clang +include /usr/share/dpkg/pkg-info.mk export CONFIG_SHELL=/bin/bash @@ -19,6 +13,11 @@ export DEB_CXXFLAGS_MAINT_APPEND=-O3 endif +ifeq ($(DEB_HOST_ARCH),arm64) + # Disable OPENMP for arm64 builds. See LP: #2038351 + DISABLE_OPENMP = -DUSE_OPENMP=OFF +endif + %: dh $@ @@ -27,16 +26,15 @@ -DBINARY_PACKAGE_BUILD=1 \ -DCMAKE_BUILD_TYPE=Release \ -DRAWSPEED_ENABLE_LTO=ON \ + -DDONT_USE_INTERNAL_LIBRAW=ON \ -DBUILD_CURVE_TOOLS=ON \ - -DBUILD_NOISE_TOOLS=ON + -DBUILD_NOISE_TOOLS=ON \ + $(DISABLE_OPENMP) describe-current-version: git describe --tags upstream | sed 's,^release-,,;s,-,+,;s,-,~,;' -get-orig-source: - git archive --format=tar $(SHA1) | gzip -9 > ../$(ORIG) - -.PHONY: describe-current-version git-orig-source +.PHONY: describe-current-version cmake/version.cmake: - echo "set(PROJECT_VERSION \"${UPSTREAM}\")" > $@ + echo "set(PROJECT_VERSION \"${DEB_VERSION_UPSTREAM}\")" > $@ diff -Nru darktable-4.4.2/debian/upstream/metadata darktable-4.6.1/debian/upstream/metadata --- darktable-4.4.2/debian/upstream/metadata 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/debian/upstream/metadata 2024-02-18 17:29:32.000000000 +0000 @@ -0,0 +1,5 @@ +--- +Bug-Database: https://github.com/darktable-org/darktable/issues +Bug-Submit: https://github.com/darktable-org/darktable/issues/new +Repository: https://github.com/darktable-org/darktable.git +Repository-Browse: https://github.com/darktable-org/darktable diff -Nru darktable-4.4.2/debian/watch darktable-4.6.1/debian/watch --- darktable-4.4.2/debian/watch 2022-02-28 13:00:30.000000000 +0000 +++ darktable-4.6.1/debian/watch 2024-02-18 17:29:32.000000000 +0000 @@ -1,5 +1,9 @@ -version=3 +version=4 +opts="searchmode=plain, \ +pgpsigurlmangle=s/$/.asc/, \ +uversionmangle=s/(\d+\.\d+\.\d+).*/$1/;s/.rc/~rc/" \ + https://api.github.com/repos/darktable-org/@PACKAGE@/releases?per_page=100 \ + https:\/\/github.com\/darktable-org\/@PACKAGE@\/releases\/download\/release-@ANY_VERSION@\/@PACKAGE@-@ANY_VERSION@.tar.xz + -opts="uversionmangle=s/.rc/~rc/,pgpsigurlmangle=s%$%.asc%" \ -https://github.com/darktable-org/darktable/releases .*/darktable-(.+)\.tar\.xz diff -Nru darktable-4.4.2/doc/CMakeLists.txt darktable-4.6.1/doc/CMakeLists.txt --- darktable-4.4.2/doc/CMakeLists.txt 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/doc/CMakeLists.txt 2024-02-16 17:31:09.000000000 +0000 @@ -5,4 +5,6 @@ install(FILES ${DOC_FILES} DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT DTDocuments) # Build manual page -add_subdirectory(man) +if ((NOT WIN32) OR BUILD_MSYS2_INSTALL) + add_subdirectory(man) +endif() diff -Nru darktable-4.4.2/packaging/macosx/1_install_hb_dependencies.sh darktable-4.6.1/packaging/macosx/1_install_hb_dependencies.sh --- darktable-4.4.2/packaging/macosx/1_install_hb_dependencies.sh 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/packaging/macosx/1_install_hb_dependencies.sh 2024-02-16 17:31:09.000000000 +0000 @@ -12,7 +12,7 @@ echo 'Homebrew not found. Follow instructions as provided by https://brew.sh/ to install it.' >&2 exit 1 else - echo "Found homebrew running in $(arch)-based environment." + echo "Found homebrew running in $(uname -m)-based environment." fi # Make sure that homebrew is up-to-date @@ -21,6 +21,7 @@ # Define homebrew dependencies hbDependencies="adwaita-icon-theme \ + coreutils \ cmake \ pkg-config \ cmocka \ @@ -32,13 +33,13 @@ glib \ gmic \ gphoto2 \ - graphicsmagick \ + imagemagick@6 \ gtk-mac-integration \ gtk+3 \ icu4c \ intltool \ iso-codes \ - jpeg \ + jpeg-turbo \ jpeg-xl \ json-glib \ jsonschema \ @@ -103,3 +104,4 @@ # link keg-only packages brew link --force libomp brew link --force libsoup@2 +brew link --force imagemagick@6 diff -Nru darktable-4.4.2/packaging/macosx/2_build_hb_darktable_default.sh darktable-4.6.1/packaging/macosx/2_build_hb_darktable_default.sh --- darktable-4.4.2/packaging/macosx/2_build_hb_darktable_default.sh 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/packaging/macosx/2_build_hb_darktable_default.sh 2024-02-16 17:31:09.000000000 +0000 @@ -16,11 +16,19 @@ buildDir="${scriptDir}/../../build" installDir="${buildDir}/macosx" +# Options +options=" \ + -DUSE_GRAPHICSMAGICK=OFF \ + -DUSE_IMAGEMAGICK=ON \ + -DBUILD_CURVE_TOOLS=ON \ + -DBUILD_NOISE_TOOLS=ON \ +" + # Check for previous attempt and clean if [[ -d "$buildDir" ]]; then echo "Deleting directory $buildDir ... " - rm -R "$buildDir" + rm -rf "$buildDir" fi # Clean build here -../../build.sh --install --build-type Release --prefix "$installDir" +../../build.sh --install --build-generator Ninja --build-type Release --prefix "$installDir" -- $options diff -Nru darktable-4.4.2/packaging/macosx/3_make_hb_darktable_package.sh darktable-4.6.1/packaging/macosx/3_make_hb_darktable_package.sh --- darktable-4.4.2/packaging/macosx/3_make_hb_darktable_package.sh 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/packaging/macosx/3_make_hb_darktable_package.sh 2024-02-16 17:31:09.000000000 +0000 @@ -25,13 +25,20 @@ dtExecutables=$(echo "$dtExecDir"/darktable{,-chart,-cli,-cltest,-generate-cache,-rs-identify,-curve-tool,-noiseprofile}) homebrewHome=$(brew --prefix) + # Install direct and transitive dependencies function install_dependencies { local hbDependencies + absolutePath=$(dirname $(grealpath "$1")) + # Get dependencies of current executable oToolLDependencies=$(otool -L "$1" 2>/dev/null | grep compatibility | cut -d\( -f1 | sed 's/^[[:blank:]]*//;s/[[:blank:]]*$//' | uniq) + # Handle library relative paths + oToolLDependencies=$(echo "$oToolLDependencies" | sed "s#@loader_path#${absolutePath}#") + oToolLDependencies=$(echo "$oToolLDependencies" | sed "s#@rpath#${absolutePath}#") + # Filter for homebrew dependencies if [[ "$oToolLDependencies" == *"$homebrewHome"* ]]; then hbDependencies=$(echo "$oToolLDependencies" | grep "$homebrewHome") @@ -51,13 +58,13 @@ # Install dependency if not yet existant if [[ ! -f "$dynDepTargetFile" ]]; then - echo "Installing dependency <$hbDependency> of <$1>." + echo "Installing dependency $hbDependency of $1" # Copy dependency as not yet existant cp -L "$hbDependency" "$dynDepTargetFile" # Handle transitive dependencies - install_dependencies "$dynDepTargetFile" + install_dependencies "$hbDependency" fi fi done @@ -70,6 +77,9 @@ function reset_exec_path { local hbDependencies + # Store file name + libraryOrigFile=$(basename "$1") + # Get shared libraries used of current executable oToolLDependencies=$(otool -L "$1" 2>/dev/null | grep compatibility | cut -d\( -f1 | sed 's/^[[:blank:]]*//;s/[[:blank:]]*$//' | uniq) @@ -78,11 +88,14 @@ # Only need to reset binaries that live outside of lib/darktable oToolLoader=$(otool -l "$1" 2>/dev/null | grep '@loader_path' | cut -d\( -f1 | sed 's/^[[:blank:]]*path[[:blank:]]*//;s/[[:blank:]]*$//' ) if [[ "$oToolLoader" == "@loader_path/../lib/darktable" ]]; then - echo "Resetting loader path for libdarktable.dylib of <$1>" - install_name_tool -rpath @loader_path/../lib/darktable @loader_path/../Resources/lib/darktable "$1" + echo "Resetting loader path for libdarktable.dylib of $libraryOrigFile" + install_name_tool -rpath @loader_path/../lib/darktable @loader_path/../Resources/lib/darktable "$1" || true fi fi + # Handle library relative paths + oToolLDependencies=$(echo "$oToolLDependencies" | sed "s#@loader_path/[../]*opt/#${homebrewHome}/opt/#") + # Filter for any homebrew specific paths if [[ "$oToolLDependencies" == *"$homebrewHome"* ]]; then hbDependencies=$(echo "$oToolLDependencies" | grep "$homebrewHome") @@ -98,10 +111,18 @@ dynDepOrigFile=$(basename "$hbDependency") dynDepTargetFile="$dtResourcesDir/lib/$dynDepOrigFile" - echo "Resetting executable path for dependency <$hbDependency> of <$1>" + echo "Resetting executable path for $dynDepOrigFile of $libraryOrigFile" # Set correct executable path - install_name_tool -change "$hbDependency" "@executable_path/../Resources/lib/$dynDepOrigFile" "$1" + install_name_tool -change "$hbDependency" "@executable_path/../Resources/lib/$dynDepOrigFile" "$1" || true + + # Check for loader path + oToolLoader=$(otool -L "$1" 2>/dev/null | grep '@loader_path' | grep $dynDepOrigFile | cut -d\( -f1 | sed 's/^[[:blank:]]*//;s/[[:blank:]]*$//' ) || true + if [[ -n "$oToolLoader" ]]; then + echo "Resetting loader path for $hbDependency of $libraryOrigFile" + oToolLoaderNew=$(echo $oToolLoader | sed "s#@loader_path/##" | sed "s#../../../../opt/.*##") + install_name_tool -change "$oToolLoader" "@loader_path/${oToolLoaderNew}${dynDepOrigFile}" "$1" || true + fi done fi @@ -111,14 +132,10 @@ # Set correct ID to new destination if required if [[ "$oToolDDependencies" == *"$homebrewHome"* ]]; then - - # Store file name - libraryOrigFile=$(basename "$1") - - echo "Resetting library ID of <$1>" + echo "Resetting library ID of $libraryOrigFile" # Set correct library id - install_name_tool -id "@executable_path/../Resources/lib/$libraryOrigFile" "$1" + install_name_tool -id "@executable_path/../Resources/lib/$libraryOrigFile" "$1" || true fi } @@ -199,11 +216,18 @@ done # Add homebrew shared objects -dtSharedObjDirs="gtk-3.0 libgphoto2 libgphoto2_port gdk-pixbuf-2.0 gio" +dtSharedObjDirs="ImageMagick gtk-3.0 gdk-pixbuf-2.0 gio" for dtSharedObj in $dtSharedObjDirs; do cp -LR "$homebrewHome"/lib/"$dtSharedObj" "$dtResourcesDir"/lib/ done +dtSharedObjDirs="libgphoto2 libgphoto2_port" +for dtSharedObj in $dtSharedObjDirs; do + mkdir "$dtResourcesDir"/lib/"$dtSharedObj" + dtSharedObjVersion=$(pkg-config --modversion "$dtSharedObj") + cp -LR "$homebrewHome"/lib/"$dtSharedObj"/"$dtSharedObjVersion"/* "$dtResourcesDir"/lib/"$dtSharedObj" +done + # Add homebrew translations dtTranslations="gtk30 gtk30-properties gtk-mac-integration iso_639-2 gphoto2" for dtTranslation in $dtTranslations; do diff -Nru darktable-4.4.2/packaging/macosx/4_make_hb_darktable_dmg.sh darktable-4.6.1/packaging/macosx/4_make_hb_darktable_dmg.sh --- darktable-4.4.2/packaging/macosx/4_make_hb_darktable_dmg.sh 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/packaging/macosx/4_make_hb_darktable_dmg.sh 2024-02-16 17:31:09.000000000 +0000 @@ -48,7 +48,7 @@ chmod -Rf go-w /Volumes/"${PROGN}" sync hdiutil detach ${device} -DMG="${PROGN}-$(git describe --tags --match release-* | sed 's/^release-//;s/-/+/;s/-/~/;s/rc/~rc/')-$(arch)" +DMG="${PROGN}-$(git describe --tags --match release-* | sed 's/^release-//;s/-/+/;s/-/~/;s/rc/~rc/')-$(uname -m)" hdiutil convert "pack.temp.dmg" -format UDZO -imagekey zlib-level=9 -o "${DMG}" rm -f pack.temp.dmg diff -Nru darktable-4.4.2/packaging/macosx/BUILD_hb.txt darktable-4.6.1/packaging/macosx/BUILD_hb.txt --- darktable-4.4.2/packaging/macosx/BUILD_hb.txt 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/packaging/macosx/BUILD_hb.txt 2024-02-16 17:31:09.000000000 +0000 @@ -1,27 +1,10 @@ How to make disk image with darktable application bundle from source (using Homebrew): -0). Install Homebrew (instructions and prerequisites can be found on official website https://brew.sh/), ideally use default installation path (/opt/homebrew for arm64, /usr/local for i386). +0). Install Homebrew (instructions and prerequisites can be found on official website https://brew.sh/), ideally use default installation path (/opt/homebrew for arm64, /usr/local for x86_64). 1). Install required homebrew packages: $ 1_install_hb_dependencies.sh - Important: For the app bundle it is required that GraphicsMagick is linked - statically, which is not the default by homebrew. To get GraphicsMagick statically - linked, open a terminal and perform the following steps: - - $ brew edit graphicsmagick - - This opens the graphicsmagick homebrew formula in the editor. Locate and delete - the following line: - --with-modules - - Reinstall graphicsmagick: - - $ export HOMEBREW_NO_INSTALL_FROM_API=1 - $ brew reinstall --build-from-source graphicsmagick - - Now you have a statically linked GraphicsMagick library. - 2). Build and install darktable using either option A or B: - Option A: Build using the default build.sh, which should work for most use cases $ 2_build_hb_darktable_default.sh @@ -35,7 +18,7 @@ 4). Generate DMG image from application bundle: $ 4_make_hb_darktable_dmg.sh -The final result is a DMG file: darktable-+-{arm64|i386}.dmg +The final result is a DMG file: darktable-+-{arm64|x86_64}.dmg All binaries, the MacOS app bundle and the DMG file are created in build/macosx. @@ -50,8 +33,8 @@ - As the DMG is not notarized and the app bundle may not even be properly signed, it is still possible to install/run darktable at your own risk. To do so make sure to run "$ xattr -d com.apple.quarantine .dmg" on the DMG before installing. NOTES: -- It will be automatically build for the architecture you are currently on, either Apple Silicon (arm64) or Intel (i386). -- If you want to build for i386 on arm64 see https://stackoverflow.com/questions/64951024/how-can-i-run-two-isolated-installations-of-homebrew/68443301#68443301 about how to handle both environments in parallel. +- It will be automatically build for the architecture you are currently on, either Apple Silicon (arm64) or Intel (x86_64). +- If you want to build for x86_64 on arm64 see https://stackoverflow.com/questions/64951024/how-can-i-run-two-isolated-installations-of-homebrew/68443301#68443301 about how to handle both environments in parallel. - After creating the darktable application bundle (step 3) you can directly run the result by executing: $ build/macosx/package/darktable.app/Contents/MacOS/darktable --configdir .config/darktable/ --cachedir .cache/darktable/ diff -Nru darktable-4.4.2/packaging/macosx/darktable.bundle darktable-4.6.1/packaging/macosx/darktable.bundle --- darktable-4.4.2/packaging/macosx/darktable.bundle 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/packaging/macosx/darktable.bundle 2024-02-16 17:31:09.000000000 +0000 @@ -38,6 +38,7 @@ ${prefix}/share/mime ${prefix}/share/curl/curl-ca-bundle.crt ${prefix}/share/iso-codes/json/iso_639-2.json + ${prefix}/share/themes/Mac/gtk-3.0/gtk-keys.css ${project}/Icons.icns ${project}/defaults.list ${project}/open.desktop diff -Nru darktable-4.4.2/packaging/windows/README.md darktable-4.6.1/packaging/windows/README.md --- darktable-4.4.2/packaging/windows/README.md 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/packaging/windows/README.md 2024-02-16 17:31:09.000000000 +0000 @@ -59,8 +59,8 @@ ``` * If you have to set them manually you can do so by setting the variables in your `~/.bash_profile`. For example (check your version numbers first): ``` - export CAMLIBS="$MINGW_PREFIX/lib/libgphoto2/2.5.30/" - export IOLIBS="$MINGW_PREFIX/lib/libgphoto2_port/0.12.1/" + export CAMLIBS="$MINGW_PREFIX/lib/libgphoto2/2.5.31/" + export IOLIBS="$MINGW_PREFIX/lib/libgphoto2_port/0.12.2/" ``` * If you do so, execute the following command to activate those profile changes: ```bash diff -Nru darktable-4.4.2/po/POTFILES.in darktable-4.6.1/po/POTFILES.in --- darktable-4.4.2/po/POTFILES.in 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/po/POTFILES.in 2024-02-16 17:31:09.000000000 +0000 @@ -61,6 +61,7 @@ build/lib/darktable/plugins/introspection_negadoctor.c build/lib/darktable/plugins/introspection_nlmeans.c build/lib/darktable/plugins/introspection_overexposed.c +build/lib/darktable/plugins/introspection_primaries.c build/lib/darktable/plugins/introspection_profile_gamma.c build/lib/darktable/plugins/introspection_rawdenoise.c build/lib/darktable/plugins/introspection_rawoverexposed.c @@ -86,7 +87,7 @@ build/lib/darktable/plugins/introspection_vignette.c build/lib/darktable/plugins/introspection_watermark.c build/lib/darktable/plugins/introspection_zonesystem.c -build/lib/darktable/plugins/lighttable/tools/darktable_authors.h +build/bin/tools/darktable_authors.h build/share/darktable/org.darktable.darktable.desktop.in data/org.darktable.darktable.appdata.xml.in data/org.darktable.darktable.desktop.in @@ -95,6 +96,7 @@ src/cli/main.c src/common/camera_control.c src/common/collection.c +src/common/color_harmony.c src/common/color_vocabulary.c src/common/colorlabels.c src/common/colorspaces.c @@ -159,6 +161,7 @@ src/dtgtk/thumbnail_btn.c src/dtgtk/thumbtable.c src/generate-cache/main.c +src/gui/about.c src/gui/accelerators.c src/gui/gtk.c src/gui/gtkentry.c @@ -170,6 +173,7 @@ src/gui/styles_dialog.c src/imageio/imageio.c src/imageio/imageio_qoi.c +src/imageio/imageio_libraw.c src/imageio/format/avif.c src/imageio/format/copy.c src/imageio/format/exr.cc @@ -256,6 +260,7 @@ src/iop/negadoctor.c src/iop/nlmeans.c src/iop/overexposed.c +src/iop/primaries.c src/iop/profile_gamma.c src/iop/rawdenoise.c src/iop/rawoverexposed.c diff -Nru darktable-4.4.2/po/cs.po darktable-4.6.1/po/cs.po --- darktable-4.4.2/po/cs.po 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/po/cs.po 2024-02-16 17:31:09.000000000 +0000 @@ -0,0 +1,27540 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-11-30 19:32+0100\n" +"PO-Revision-Date: 2023-11-30 22:05+0100\n" +"Last-Translator: Petr Stasiak \n" +"Language-Team: \n" +"Language: cs_CZ\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n>=2 && n<=4 ? 1 : 2);\n" +"X-Generator: Poedit 3.4.1\n" + +#: ../build/bin/conf_gen.h:174 +msgctxt "preferences" +msgid "first instance" +msgstr "první instance" + +#: ../build/bin/conf_gen.h:175 ../build/bin/preferences_gen.h:7922 +msgctxt "preferences" +msgid "last instance" +msgstr "poslední instance" + +#: ../build/bin/conf_gen.h:252 ../build/bin/conf_gen.h:352 +#: ../build/bin/conf_gen.h:362 ../build/bin/conf_gen.h:1239 +#: ../build/bin/conf_gen.h:1255 ../build/bin/conf_gen.h:1275 +#: ../build/bin/preferences_gen.h:4747 ../build/bin/preferences_gen.h:4885 +msgctxt "preferences" +msgid "never" +msgstr "nikdy" + +#: ../build/bin/conf_gen.h:253 +msgctxt "preferences" +msgid "once a month" +msgstr "měsíčně" + +#: ../build/bin/conf_gen.h:254 ../build/bin/preferences_gen.h:7138 +msgctxt "preferences" +msgid "once a week" +msgstr "týdně" + +#: ../build/bin/conf_gen.h:255 +msgctxt "preferences" +msgid "once a day" +msgstr "denně" + +#: ../build/bin/conf_gen.h:256 +msgctxt "preferences" +msgid "on close" +msgstr "při ukončení" + +#: ../build/bin/conf_gen.h:292 ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1248 ../build/bin/conf_gen.h:1276 +msgctxt "preferences" +msgid "small" +msgstr "malý" + +#: ../build/bin/conf_gen.h:293 ../build/bin/conf_gen.h:405 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6223 +msgctxt "preferences" +msgid "default" +msgstr "výchozí" + +#: ../build/bin/conf_gen.h:294 ../build/bin/conf_gen.h:2904 +msgctxt "preferences" +msgid "large" +msgstr "velký" + +#: ../build/bin/conf_gen.h:295 +msgctxt "preferences" +msgid "unrestricted" +msgstr "neomezené" + +#: ../build/bin/conf_gen.h:353 +msgctxt "preferences" +msgid "after edit" +msgstr "po úpravě" + +#: ../build/bin/conf_gen.h:354 ../build/bin/preferences_gen.h:7224 +msgctxt "preferences" +msgid "on import" +msgstr "po importu" + +#: ../build/bin/conf_gen.h:363 ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1247 ../build/bin/conf_gen.h:3300 +#: ../build/bin/preferences_gen.h:5644 +msgctxt "preferences" +msgid "always" +msgstr "vždy" + +#: ../build/bin/conf_gen.h:364 ../build/bin/preferences_gen.h:7259 +msgctxt "preferences" +msgid "only large entries" +msgstr "pouze velké položky" + +#: ../build/bin/conf_gen.h:390 +msgctxt "preferences" +msgid "sensitive" +msgstr "citlivý" + +#: ../build/bin/conf_gen.h:391 ../build/bin/preferences_gen.h:8133 +msgctxt "preferences" +msgid "insensitive" +msgstr "necitlivý" + +#: ../build/bin/conf_gen.h:406 +msgctxt "preferences" +msgid "multiple GPUs" +msgstr "více GPU" + +#: ../build/bin/conf_gen.h:407 +msgctxt "preferences" +msgid "very fast GPU" +msgstr "velmi rychlý GPU" + +#: ../build/bin/conf_gen.h:755 +msgctxt "preferences" +msgid "import time" +msgstr "čas importu" + +#: ../build/bin/conf_gen.h:756 +msgctxt "preferences" +msgid "folder name" +msgstr "jméno složky" + +#: ../build/bin/conf_gen.h:770 +msgctxt "preferences" +msgid "RGB" +msgstr "RGB" + +#: ../build/bin/conf_gen.h:771 +msgctxt "preferences" +msgid "Lab" +msgstr "Lab" + +#: ../build/bin/conf_gen.h:772 +msgctxt "preferences" +msgid "LCh" +msgstr "LCh" + +#: ../build/bin/conf_gen.h:773 +msgctxt "preferences" +msgid "HSL" +msgstr "HSL" + +#: ../build/bin/conf_gen.h:774 +msgctxt "preferences" +msgid "Hex" +msgstr "Hex" + +#: ../build/bin/conf_gen.h:775 ../build/bin/conf_gen.h:1916 +#: ../build/bin/conf_gen.h:2578 ../build/bin/conf_gen.h:2880 +#: ../build/bin/conf_gen.h:3136 +msgctxt "preferences" +msgid "none" +msgstr "žádný" + +#: ../build/bin/conf_gen.h:783 +msgctxt "preferences" +msgid "mean" +msgstr "střední" + +#: ../build/bin/conf_gen.h:784 +msgctxt "preferences" +msgid "min" +msgstr "min" + +#: ../build/bin/conf_gen.h:785 +msgctxt "preferences" +msgid "max" +msgstr "max" + +#: ../build/bin/conf_gen.h:973 +msgid "select only new pictures" +msgstr "vybrat pouze nové obrázky" + +#: ../build/bin/conf_gen.h:974 +msgid "only select images that have not already been imported" +msgstr "vybrat pouze obrázky, které ještě nebyly importovány" + +#: ../build/bin/conf_gen.h:979 +msgid "ignore non-raw images" +msgstr "ignorovat ne-RAW obrázky" + +#: ../build/bin/conf_gen.h:980 +msgid "" +"if enabled, only raw files will be allowed to import. non-raw files will not " +"be visible in the dialog and will not be imported." +msgstr "" +"pokud je povoleno, bude povolen import pouze raw souborů. jiné, než raw " +"soubory nebudou v dialogu viditelné a nebudou importovány." + +#: ../build/bin/conf_gen.h:985 +msgid "apply metadata" +msgstr "aplikovat metadata" + +#: ../build/bin/conf_gen.h:986 +msgid "apply some metadata to all newly imported images." +msgstr "použít některá metadata na všechny nově importované obrázky." + +#: ../build/bin/conf_gen.h:991 +msgid "recursive directory" +msgstr "procházet složku rekursivně" + +#: ../build/bin/conf_gen.h:992 +msgid "recursive directory traversal when importing filmrolls" +msgstr "rekurzivní procházení adresářů při importu filmových pásů" + +#: ../build/bin/conf_gen.h:997 +msgid "creator to be applied when importing" +msgstr "tvůrce, který se použije při importu" + +#: ../build/bin/conf_gen.h:1003 +msgid "publisher to be applied when importing" +msgstr "vydavatel, který se použije při importu" + +#: ../build/bin/conf_gen.h:1009 +msgid "rights to be applied when importing" +msgstr "práva, která se mají uplatnit při importu" + +#: ../build/bin/conf_gen.h:1015 +msgid "comma separated tags to be applied when importing" +msgstr "čárkami oddělené značky, které se použijí při importu" + +#: ../build/bin/conf_gen.h:1021 +msgid "import tags from XMP" +msgstr "import značek z XMP" + +#: ../build/bin/conf_gen.h:1051 +msgid "initial rating" +msgstr "výchozí hodnocení" + +#: ../build/bin/conf_gen.h:1052 +msgid "initial star rating for all images when importing a filmroll" +msgstr "" +"počáteční hodnocení hvězdičkami pro všechny snímky při importu filmového pásu" + +#: ../build/bin/conf_gen.h:1057 +msgid "ignore EXIF rating" +msgstr "ignorovat EXIF hodnocení" + +#: ../build/bin/conf_gen.h:1058 +msgid "" +"ignore EXIF rating. if not set and EXIF rating is found, it overrides " +"'initial rating'" +msgstr "" +"ignorovat EXIF hodnocení. pokud není nastaveno a je nalezeno hodnocení EXIF, " +"přepíše „počáteční hodnocení“" + +#: ../build/bin/conf_gen.h:1063 +msgid "import job" +msgstr "importní úloha" + +#: ../build/bin/conf_gen.h:1064 +msgid "name of the import job" +msgstr "jméno importní úlohy" + +#: ../build/bin/conf_gen.h:1069 +msgid "override today's date" +msgstr "přepsat dnešní datum" + +#: ../build/bin/conf_gen.h:1070 +msgid "" +"type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override " +"the current date/time used when expanding variables:\n" +"$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS), $(MSEC).\n" +"let the field empty otherwise" +msgstr "" +"zadejte datum ve formátu: RRRR:MM:DD[ hh:mm:ss[.sss]] pokud chcete nahradit " +"aktuální datum/čas použitý v proměnných:\n" +"$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS), $(MSEC).\n" +"jinak nechte pole prázdné" + +#: ../build/bin/conf_gen.h:1075 +msgid "keep this window open" +msgstr "ponechat okno otevřené" + +#: ../build/bin/conf_gen.h:1076 +msgid "keep this window open to run several imports" +msgstr "ponechat okno otevřené pro spuštění více importů" + +#: ../build/bin/conf_gen.h:1233 ../build/bin/conf_gen.h:1249 +#: ../build/bin/conf_gen.h:1277 +msgctxt "preferences" +msgid "VGA" +msgstr "VGA" + +#: ../build/bin/conf_gen.h:1234 ../build/bin/conf_gen.h:1250 +#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4782 +msgctxt "preferences" +msgid "720p" +msgstr "720p" + +#: ../build/bin/conf_gen.h:1235 ../build/bin/conf_gen.h:1251 +#: ../build/bin/conf_gen.h:1279 +msgctxt "preferences" +msgid "1080p" +msgstr "1080p" + +#: ../build/bin/conf_gen.h:1236 ../build/bin/conf_gen.h:1252 +#: ../build/bin/conf_gen.h:1280 +msgctxt "preferences" +msgid "WQXGA" +msgstr "WQXGA" + +#: ../build/bin/conf_gen.h:1237 ../build/bin/conf_gen.h:1253 +#: ../build/bin/conf_gen.h:1281 +msgctxt "preferences" +msgid "4K" +msgstr "4K" + +#: ../build/bin/conf_gen.h:1238 ../build/bin/conf_gen.h:1254 +#: ../build/bin/conf_gen.h:1282 +msgctxt "preferences" +msgid "5K" +msgstr "5K" + +#: ../build/bin/conf_gen.h:1314 +msgctxt "preferences" +msgid "off" +msgstr "vyp" + +#: ../build/bin/conf_gen.h:1315 +msgctxt "preferences" +msgid "hardness (relative)" +msgstr "tvrdost (relativní)" + +#: ../build/bin/conf_gen.h:1316 +msgctxt "preferences" +msgid "hardness (absolute)" +msgstr "tvrdost (absolutní)" + +#: ../build/bin/conf_gen.h:1317 +msgctxt "preferences" +msgid "opacity (relative)" +msgstr "neprůhlednost (relativní)" + +#: ../build/bin/conf_gen.h:1318 +msgctxt "preferences" +msgid "opacity (absolute)" +msgstr "neprůhlednost (absolutní)" + +#: ../build/bin/conf_gen.h:1319 +msgctxt "preferences" +msgid "brush size (relative)" +msgstr "velikost štětce (relativní)" + +#: ../build/bin/conf_gen.h:1327 +msgctxt "preferences" +msgid "low" +msgstr "nízký" + +#: ../build/bin/conf_gen.h:1328 +msgctxt "preferences" +msgid "medium" +msgstr "střední" + +#: ../build/bin/conf_gen.h:1329 +msgctxt "preferences" +msgid "high" +msgstr "vysoký" + +#: ../build/bin/conf_gen.h:1349 ../build/bin/preferences_gen.h:5405 +msgctxt "preferences" +msgid "false color" +msgstr "neplatná barva" + +#: ../build/bin/conf_gen.h:1350 +msgctxt "preferences" +msgid "grayscale" +msgstr "odstíny šedi" + +#: ../build/bin/conf_gen.h:1364 +msgctxt "preferences" +msgid "top left" +msgstr "nahoře vlevo" + +#: ../build/bin/conf_gen.h:1365 +msgctxt "preferences" +msgid "top right" +msgstr "nahoře vpravo" + +#: ../build/bin/conf_gen.h:1366 +msgctxt "preferences" +msgid "top center" +msgstr "nahoře uprostřed" + +#: ../build/bin/conf_gen.h:1367 ../build/bin/preferences_gen.h:5217 +msgctxt "preferences" +msgid "bottom" +msgstr "dole" + +#: ../build/bin/conf_gen.h:1368 +msgctxt "preferences" +msgid "hidden" +msgstr "skrytý" + +#: ../build/bin/conf_gen.h:1878 +msgid "show OSD" +msgstr "zobrazit OSD" + +#: ../build/bin/conf_gen.h:1879 +msgid "toggle the visibility of the map overlays" +msgstr "přepnout viditelnost překryvu map" + +#: ../build/bin/conf_gen.h:1884 ../src/libs/map_settings.c:119 +msgid "filtered images" +msgstr "filtr obrázků" + +#: ../build/bin/conf_gen.h:1885 +msgid "when set limit the images drawn to the current filmstrip" +msgstr "pokud je nastaven limit zobrazených obrázků aktuálního filmového pásu" + +#: ../build/bin/conf_gen.h:1892 +msgid "max images" +msgstr "maximum obrázků" + +#: ../build/bin/conf_gen.h:1893 +msgid "the maximum number of image thumbnails drawn on the map" +msgstr "maximální počet miniatur obrázků nakreslených na mapě" + +#: ../build/bin/conf_gen.h:1900 +msgid "group size factor" +msgstr "faktor velikosti skupiny" + +#: ../build/bin/conf_gen.h:1901 +msgid "" +"increase or decrease the spatial size of images groups on the map. can " +"influence the calculation time" +msgstr "" +"zvětšit nebo zmenšit prostorovou velikost skupin obrázků na mapě. může " +"ovlivnit dobu výpočtu" + +#: ../build/bin/conf_gen.h:1908 +msgid "min images per group" +msgstr "minimum obrázků ve skupině" + +#: ../build/bin/conf_gen.h:1909 +msgid "" +"the minimum number of images to set up an images group. can influence the " +"calculation time." +msgstr "" +"minimální počet obrázků pro vytvoření skupiny obrázků. může ovlivnit dobu " +"výpočtu." + +#: ../build/bin/conf_gen.h:1914 +msgctxt "preferences" +msgid "thumbnail" +msgstr "náhled" + +#: ../build/bin/conf_gen.h:1915 +msgctxt "preferences" +msgid "count" +msgstr "počet" + +#: ../build/bin/conf_gen.h:1918 +msgid "thumbnail display" +msgstr "zobrazení náhledu" + +#: ../build/bin/conf_gen.h:1919 +msgid "" +"three options are available: images thumbnails, only the count of images of " +"the group or nothing" +msgstr "" +"k dispozici jsou tři možnosti: miniatury obrázků, pouze počet obrázků " +"skupiny nebo nic" + +#: ../build/bin/conf_gen.h:1930 +msgid "max polygon points" +msgstr "maximum bodů polygonu" + +#: ../build/bin/conf_gen.h:1931 +msgid "" +"limit the number of points imported with polygon in find location module" +msgstr "" +"omezit počet bodů importovaných pomocí polygonu v modulu hledání polohy" + +#: ../build/bin/conf_gen.h:2221 ../build/bin/preferences_gen.h:5329 +msgctxt "preferences" +msgid "original" +msgstr "originál" + +#: ../build/bin/conf_gen.h:2222 +msgctxt "preferences" +msgid "to 1/2" +msgstr "na 1/2" + +#: ../build/bin/conf_gen.h:2223 +msgctxt "preferences" +msgid "to 1/3" +msgstr "na 1/3" + +#: ../build/bin/conf_gen.h:2224 +msgctxt "preferences" +msgid "to 1/4" +msgstr "na 1/4" + +#: ../build/bin/conf_gen.h:2244 ../build/bin/conf_gen.h:2254 +msgctxt "preferences" +msgid "bilinear" +msgstr "bilineární" + +#: ../build/bin/conf_gen.h:2245 ../build/bin/conf_gen.h:2255 +#: ../build/bin/preferences_gen.h:5847 +msgctxt "preferences" +msgid "bicubic" +msgstr "bicubická" + +#: ../build/bin/conf_gen.h:2246 ../build/bin/conf_gen.h:2256 +msgctxt "preferences" +msgid "lanczos2" +msgstr "lanczos2" + +#: ../build/bin/conf_gen.h:2257 ../build/bin/preferences_gen.h:5882 +msgctxt "preferences" +msgid "lanczos3" +msgstr "lanczos3" + +#: ../build/bin/conf_gen.h:2577 ../build/bin/conf_gen.h:3303 +#: ../build/bin/preferences_gen.h:7032 +msgctxt "preferences" +msgid "auto" +msgstr "auto" + +#: ../build/bin/conf_gen.h:2579 +msgctxt "preferences" +msgid "libsecret" +msgstr "libsecret" + +#: ../build/bin/conf_gen.h:2580 +msgctxt "preferences" +msgid "kwallet" +msgstr "kwallet" + +#: ../build/bin/conf_gen.h:2790 +msgctxt "preferences" +msgid "vectorscope" +msgstr "vektoroskop" + +#: ../build/bin/conf_gen.h:2791 +msgctxt "preferences" +msgid "waveform" +msgstr "průběh" + +#: ../build/bin/conf_gen.h:2792 +msgctxt "preferences" +msgid "RGB parade" +msgstr "RGB přehlídka" + +#: ../build/bin/conf_gen.h:2793 +msgctxt "preferences" +msgid "histogram" +msgstr "histogram" + +#: ../build/bin/conf_gen.h:2801 +msgctxt "preferences" +msgid "left" +msgstr "levý" + +#: ../build/bin/conf_gen.h:2802 ../build/bin/preferences_gen.h:7619 +msgctxt "preferences" +msgid "right" +msgstr "pravý" + +#: ../build/bin/conf_gen.h:2810 ../build/bin/conf_gen.h:2847 +msgctxt "preferences" +msgid "logarithmic" +msgstr "logaritmický" + +#: ../build/bin/conf_gen.h:2811 ../build/bin/conf_gen.h:2848 +msgctxt "preferences" +msgid "linear" +msgstr "lineární" + +#: ../build/bin/conf_gen.h:2819 +msgctxt "preferences" +msgid "horizontal" +msgstr "horizontální" + +#: ../build/bin/conf_gen.h:2820 +msgctxt "preferences" +msgid "vertical" +msgstr "vertikální" + +#: ../build/bin/conf_gen.h:2828 +msgctxt "preferences" +msgid "overlaid" +msgstr "překrytý" + +#: ../build/bin/conf_gen.h:2829 +msgctxt "preferences" +msgid "parade" +msgstr "průvod" + +#: ../build/bin/conf_gen.h:2837 +msgctxt "preferences" +msgid "u*v*" +msgstr "u*v*" + +#: ../build/bin/conf_gen.h:2838 +msgctxt "preferences" +msgid "AzBz" +msgstr "AzBz" + +#: ../build/bin/conf_gen.h:2839 +msgctxt "preferences" +msgid "RYB" +msgstr "RYB" + +#: ../build/bin/conf_gen.h:2881 +msgctxt "preferences" +msgid "monochromatic" +msgstr "monochromatický" + +#: ../build/bin/conf_gen.h:2882 +msgctxt "preferences" +msgid "analogous" +msgstr "analogický" + +#: ../build/bin/conf_gen.h:2883 +msgctxt "preferences" +msgid "analogous complementary" +msgstr "analogicky komplementární" + +#: ../build/bin/conf_gen.h:2884 +msgctxt "preferences" +msgid "complementary" +msgstr "doplňkový" + +#: ../build/bin/conf_gen.h:2885 +msgctxt "preferences" +msgid "split complementary" +msgstr "rozdělit komplementární" + +#: ../build/bin/conf_gen.h:2886 +msgctxt "preferences" +msgid "dyad" +msgstr "dyáda" + +#: ../build/bin/conf_gen.h:2887 +msgctxt "preferences" +msgid "triad" +msgstr "triáda" + +#: ../build/bin/conf_gen.h:2888 +msgctxt "preferences" +msgid "tetrad" +msgstr "tetráda" + +#: ../build/bin/conf_gen.h:2889 +msgctxt "preferences" +msgid "square" +msgstr "čtverec" + +#: ../build/bin/conf_gen.h:2903 +msgctxt "preferences" +msgid "normal" +msgstr "normální" + +#: ../build/bin/conf_gen.h:2905 +msgctxt "preferences" +msgid "narrow" +msgstr "úzký (omezený)" + +#: ../build/bin/conf_gen.h:2906 +msgctxt "preferences" +msgid "line" +msgstr "čára" + +#: ../build/bin/conf_gen.h:3046 +msgctxt "preferences" +msgid "mm" +msgstr "mm" + +#: ../build/bin/conf_gen.h:3047 +msgctxt "preferences" +msgid "cm" +msgstr "cm" + +#: ../build/bin/conf_gen.h:3048 +msgctxt "preferences" +msgid "inch" +msgstr "inch" + +#: ../build/bin/conf_gen.h:3093 ../build/bin/preferences_gen.h:7654 +msgctxt "preferences" +msgid "all" +msgstr "vše" + +#: ../build/bin/conf_gen.h:3094 +msgctxt "preferences" +msgid "xatom" +msgstr "xatom" + +#: ../build/bin/conf_gen.h:3095 +msgctxt "preferences" +msgid "colord" +msgstr "barevný" + +#: ../build/bin/conf_gen.h:3133 ../build/bin/preferences_gen.h:5958 +msgctxt "preferences" +msgid "scene-referred (filmic)" +msgstr "odkaz na scénu (filmový)" + +#: ../build/bin/conf_gen.h:3134 +msgctxt "preferences" +msgid "scene-referred (sigmoid)" +msgstr "odkaz na scénu (sigmoid)" + +#: ../build/bin/conf_gen.h:3135 +msgctxt "preferences" +msgid "display-referred (legacy)" +msgstr "odkaz na displej (starší)" + +#: ../build/bin/conf_gen.h:3230 +msgid "camera time zone" +msgstr "časové pásmo fotoaparátu" + +#: ../build/bin/conf_gen.h:3231 +msgid "" +"most cameras don't store the time zone in EXIF. give the correct time zone " +"so the GPX data can be correctly matched" +msgstr "" +"většina fotoaparátů neukládá časové pásmo do EXIF. zadejte správné časové " +"pásmo, aby bylo možné správně spárovat data GPX" + +#: ../build/bin/conf_gen.h:3242 +msgctxt "preferences" +msgid "no color" +msgstr "bez barvy" + +#: ../build/bin/conf_gen.h:3243 +msgctxt "preferences" +msgid "illuminant color" +msgstr "barva světla" + +#: ../build/bin/conf_gen.h:3244 +msgctxt "preferences" +msgid "effect emulation" +msgstr "emulace efektu" + +#: ../build/bin/conf_gen.h:3290 +msgctxt "preferences" +msgid "list" +msgstr "seznam" + +#: ../build/bin/conf_gen.h:3291 +msgctxt "preferences" +msgid "tabs" +msgstr "záložky" + +#: ../build/bin/conf_gen.h:3292 +msgctxt "preferences" +msgid "columns" +msgstr "sloupce" + +#: ../build/bin/conf_gen.h:3301 +msgctxt "preferences" +msgid "active" +msgstr "aktivní" + +#: ../build/bin/conf_gen.h:3302 +msgctxt "preferences" +msgid "dim" +msgstr "ztlumená" + +#: ../build/bin/conf_gen.h:3304 +msgctxt "preferences" +msgid "fade" +msgstr "ztmavená" + +#: ../build/bin/conf_gen.h:3305 +msgctxt "preferences" +msgid "fit" +msgstr "vyplnit" + +#: ../build/bin/conf_gen.h:3306 +msgctxt "preferences" +msgid "smooth" +msgstr "plynulé" + +#: ../build/bin/conf_gen.h:3307 +msgctxt "preferences" +msgid "glide" +msgstr "klouzavé" + +#: ../build/bin/preferences_gen.h:77 ../build/bin/preferences_gen.h:4305 +#: ../build/bin/preferences_gen.h:4344 ../build/bin/preferences_gen.h:4383 +#: ../build/bin/preferences_gen.h:4417 ../build/bin/preferences_gen.h:4488 +#: ../build/bin/preferences_gen.h:4522 ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:4590 ../build/bin/preferences_gen.h:4624 +#: ../build/bin/preferences_gen.h:4658 ../build/bin/preferences_gen.h:4692 +#: ../build/bin/preferences_gen.h:4733 ../build/bin/preferences_gen.h:4768 +#: ../build/bin/preferences_gen.h:4803 ../build/bin/preferences_gen.h:4837 +#: ../build/bin/preferences_gen.h:4871 ../build/bin/preferences_gen.h:4906 +#: ../build/bin/preferences_gen.h:4940 ../build/bin/preferences_gen.h:4979 +#: ../build/bin/preferences_gen.h:5020 ../build/bin/preferences_gen.h:5093 +#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:5162 +#: ../build/bin/preferences_gen.h:5203 ../build/bin/preferences_gen.h:5237 +#: ../build/bin/preferences_gen.h:5281 ../build/bin/preferences_gen.h:5315 +#: ../build/bin/preferences_gen.h:5350 ../build/bin/preferences_gen.h:5391 +#: ../build/bin/preferences_gen.h:5426 ../build/bin/preferences_gen.h:5460 +#: ../build/bin/preferences_gen.h:5494 ../build/bin/preferences_gen.h:5528 +#: ../build/bin/preferences_gen.h:5562 ../build/bin/preferences_gen.h:5596 +#: ../build/bin/preferences_gen.h:5630 ../build/bin/preferences_gen.h:5665 +#: ../build/bin/preferences_gen.h:5699 ../build/bin/preferences_gen.h:5733 +#: ../build/bin/preferences_gen.h:5799 ../build/bin/preferences_gen.h:5833 +#: ../build/bin/preferences_gen.h:5868 ../build/bin/preferences_gen.h:5903 +#: ../build/bin/preferences_gen.h:5944 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/preferences_gen.h:6013 ../build/bin/preferences_gen.h:6047 +#: ../build/bin/preferences_gen.h:6088 ../build/bin/preferences_gen.h:6124 +#: ../build/bin/preferences_gen.h:6165 ../build/bin/preferences_gen.h:6209 +#: ../build/bin/preferences_gen.h:6254 ../build/bin/preferences_gen.h:6305 +#: ../build/bin/preferences_gen.h:6349 ../build/bin/preferences_gen.h:6393 +#: ../build/bin/preferences_gen.h:6437 ../build/bin/preferences_gen.h:6481 +#: ../build/bin/preferences_gen.h:6525 ../build/bin/preferences_gen.h:6569 +#: ../build/bin/preferences_gen.h:6635 ../build/bin/preferences_gen.h:6669 +#: ../build/bin/preferences_gen.h:6703 ../build/bin/preferences_gen.h:6737 +#: ../build/bin/preferences_gen.h:6771 ../build/bin/preferences_gen.h:6805 +#: ../build/bin/preferences_gen.h:6839 ../build/bin/preferences_gen.h:6873 +#: ../build/bin/preferences_gen.h:6906 ../build/bin/preferences_gen.h:6939 +#: ../build/bin/preferences_gen.h:6973 ../build/bin/preferences_gen.h:7014 +#: ../build/bin/preferences_gen.h:7053 ../build/bin/preferences_gen.h:7124 +#: ../build/bin/preferences_gen.h:7159 ../build/bin/preferences_gen.h:7210 +#: ../build/bin/preferences_gen.h:7245 ../build/bin/preferences_gen.h:7280 +#: ../build/bin/preferences_gen.h:7324 ../build/bin/preferences_gen.h:7390 +#: ../build/bin/preferences_gen.h:7424 ../build/bin/preferences_gen.h:7458 +#: ../build/bin/preferences_gen.h:7492 ../build/bin/preferences_gen.h:7526 +#: ../build/bin/preferences_gen.h:7560 ../build/bin/preferences_gen.h:7605 +#: ../build/bin/preferences_gen.h:7640 ../build/bin/preferences_gen.h:7675 +#: ../build/bin/preferences_gen.h:7731 ../build/bin/preferences_gen.h:7772 +#: ../build/bin/preferences_gen.h:7806 ../build/bin/preferences_gen.h:7840 +#: ../build/bin/preferences_gen.h:7874 ../build/bin/preferences_gen.h:7908 +#: ../build/bin/preferences_gen.h:7943 ../build/bin/preferences_gen.h:7984 +#: ../build/bin/preferences_gen.h:8025 ../build/bin/preferences_gen.h:8085 +#: ../build/bin/preferences_gen.h:8119 ../build/bin/preferences_gen.h:8154 +#: ../build/bin/preferences_gen.h:8199 ../build/bin/preferences_gen.h:8233 +#: ../build/bin/preferences_gen.h:8278 ../build/bin/preferences_gen.h:8313 +#: ../build/bin/preferences_gen.h:8365 ../build/bin/preferences_gen.h:8410 +#: ../build/bin/preferences_gen.h:8480 ../build/bin/preferences_gen.h:8526 +msgid "this setting has been modified" +msgstr "tato nastavení byla změněna" + +#. doesn't seem to work from gtkrc +#: ../build/bin/preferences_gen.h:4277 ../build/bin/preferences_gen.h:4460 +#: ../build/bin/preferences_gen.h:5065 ../build/bin/preferences_gen.h:5771 +#: ../build/bin/preferences_gen.h:6607 ../build/bin/preferences_gen.h:7096 +#: ../build/bin/preferences_gen.h:7362 ../src/gui/accelerators.c:2996 +#: ../src/gui/gtk.c:2641 ../src/gui/preferences.c:424 +#: ../src/gui/preferences.c:874 ../src/libs/modulegroups.c:3888 +msgid "?" +msgstr "?" + +#: ../build/bin/preferences_gen.h:4287 ../src/control/jobs/control_jobs.c:2352 +#: ../src/libs/import.c:173 +msgid "import" +msgstr "import" + +#: ../build/bin/preferences_gen.h:4289 +msgid "session options" +msgstr "nastavení sekce" + +#: ../build/bin/preferences_gen.h:4308 +msgid "base directory naming pattern" +msgstr "maska pojmenování základní složky" + +#: ../build/bin/preferences_gen.h:4323 ../build/bin/preferences_gen.h:4362 +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4435 +#: ../build/bin/preferences_gen.h:4501 ../build/bin/preferences_gen.h:4535 +#: ../build/bin/preferences_gen.h:4569 ../build/bin/preferences_gen.h:4603 +#: ../build/bin/preferences_gen.h:4637 ../build/bin/preferences_gen.h:4671 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4747 +#: ../build/bin/preferences_gen.h:4782 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:4850 ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:4958 +#: ../build/bin/preferences_gen.h:4999 ../build/bin/preferences_gen.h:5040 +#: ../build/bin/preferences_gen.h:5106 ../build/bin/preferences_gen.h:5140 +#: ../build/bin/preferences_gen.h:5182 ../build/bin/preferences_gen.h:5217 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5329 +#: ../build/bin/preferences_gen.h:5363 ../build/bin/preferences_gen.h:5405 +#: ../build/bin/preferences_gen.h:5439 ../build/bin/preferences_gen.h:5473 +#: ../build/bin/preferences_gen.h:5507 ../build/bin/preferences_gen.h:5541 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5644 ../build/bin/preferences_gen.h:5678 +#: ../build/bin/preferences_gen.h:5712 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5847 +#: ../build/bin/preferences_gen.h:5882 ../build/bin/preferences_gen.h:5922 +#: ../build/bin/preferences_gen.h:5958 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6060 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6178 ../build/bin/preferences_gen.h:6223 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6318 +#: ../build/bin/preferences_gen.h:6362 ../build/bin/preferences_gen.h:6406 +#: ../build/bin/preferences_gen.h:6450 ../build/bin/preferences_gen.h:6494 +#: ../build/bin/preferences_gen.h:6538 ../build/bin/preferences_gen.h:6582 +#: ../build/bin/preferences_gen.h:6648 ../build/bin/preferences_gen.h:6682 +#: ../build/bin/preferences_gen.h:6716 ../build/bin/preferences_gen.h:6750 +#: ../build/bin/preferences_gen.h:6784 ../build/bin/preferences_gen.h:6818 +#: ../build/bin/preferences_gen.h:6852 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7032 +#: ../build/bin/preferences_gen.h:7071 ../build/bin/preferences_gen.h:7138 +#: ../build/bin/preferences_gen.h:7224 ../build/bin/preferences_gen.h:7259 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7505 ../build/bin/preferences_gen.h:7539 +#: ../build/bin/preferences_gen.h:7619 ../build/bin/preferences_gen.h:7654 +#: ../build/bin/preferences_gen.h:7693 ../build/bin/preferences_gen.h:7744 +#: ../build/bin/preferences_gen.h:7785 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7922 ../build/bin/preferences_gen.h:7956 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8133 ../build/bin/preferences_gen.h:8212 +#: ../build/bin/preferences_gen.h:8292 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 +#, c-format +msgid "double click to reset to `%s'" +msgstr "dvojklik pro reset na `%s'" + +#: ../build/bin/preferences_gen.h:4326 ../build/bin/preferences_gen.h:4365 +msgid "part of full import path for an import session" +msgstr "část úplné cesty importu pro relaci importu" + +#: ../build/bin/preferences_gen.h:4347 +msgid "sub directory naming pattern" +msgstr "maska pojmenování podsložek" + +#: ../build/bin/preferences_gen.h:4386 +msgid "keep original filename" +msgstr "zachovat původní název souboru" + +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4501 +#: ../build/bin/preferences_gen.h:4535 ../build/bin/preferences_gen.h:4569 +#: ../build/bin/preferences_gen.h:4603 ../build/bin/preferences_gen.h:4637 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4850 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:5106 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5439 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5712 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6450 +#: ../build/bin/preferences_gen.h:6494 ../build/bin/preferences_gen.h:6538 +#: ../build/bin/preferences_gen.h:6582 ../build/bin/preferences_gen.h:6852 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7505 +#: ../build/bin/preferences_gen.h:7744 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7956 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8212 +msgctxt "preferences" +msgid "FALSE" +msgstr "NE" + +#: ../build/bin/preferences_gen.h:4399 +msgid "" +"keep original filename instead of a pattern while importing from camera or " +"card" +msgstr "" +"ponechat původní název souboru místo masky při importu z fotoaparátu nebo " +"karty" + +#: ../build/bin/preferences_gen.h:4420 +msgid "file naming pattern" +msgstr "maska pojmenování souboru" + +#: ../build/bin/preferences_gen.h:4438 +msgid "file naming pattern used for a import session" +msgstr "maska pojmenování souborů použitá pro import" + +#: ../build/bin/preferences_gen.h:4470 ../src/gui/gtk.c:1266 +#: ../src/gui/preferences.c:544 ../src/libs/tools/lighttable.c:66 +#: ../src/views/lighttable.c:91 +msgid "lighttable" +msgstr "katalog" + +#: ../build/bin/preferences_gen.h:4472 ../build/bin/preferences_gen.h:5077 +#: ../build/bin/preferences_gen.h:6619 ../src/gui/preferences.c:270 +msgid "general" +msgstr "hlavní" + +#: ../build/bin/preferences_gen.h:4491 +msgid "hide built-in presets for utility modules" +msgstr "skrýt vestavěné presety pro moduly nástrojů" + +#: ../build/bin/preferences_gen.h:4504 +msgid "hides built-in presets of utility modules in presets menu." +msgstr "skryje vestavěné presety nástrojových modulů v nabídce předvoleb." + +#: ../build/bin/preferences_gen.h:4525 +msgid "use single-click in the collections module" +msgstr "použijte jedno kliknutí v modulu kolekcí" + +#: ../build/bin/preferences_gen.h:4538 +msgid "" +"check this option to use single-click to select items in the collections " +"module. this will allow you to do range selections for date-time and numeric " +"values." +msgstr "" +"zaškrtnutím této možnosti použijete k výběru položek v modulu kolekcí jedno " +"kliknutí. to vám umožní vybrat rozsah pro datum-čas a číselné hodnoty." + +#: ../build/bin/preferences_gen.h:4559 +msgid "expand a single utility module at a time" +msgstr "rozbalit jeden nástrojový modul najednou" + +#: ../build/bin/preferences_gen.h:4572 +msgid "this option toggles the behavior of shift clicking in lighttable mode" +msgstr "tato volba přepíná chování klikání shift v režimu katalog" + +#: ../build/bin/preferences_gen.h:4593 +msgid "scroll utility modules to the top when expanded" +msgstr "po rozbalení posuňte obslužné moduly nahoru" + +#: ../build/bin/preferences_gen.h:4606 ../build/bin/preferences_gen.h:5612 +msgid "" +"when this option is enabled then darktable will try to scroll the module to " +"the top of the visible list" +msgstr "" +"když je tato možnost povolena, pak se darktable pokusí posunout modul na " +"začátek viditelného seznamu" + +#: ../build/bin/preferences_gen.h:4627 +msgid "rating an image one star twice will not zero out the rating" +msgstr "hodnocení obrázku jednou hvězdičkou dvakrát nevynuluje hodnocení" + +#: ../build/bin/preferences_gen.h:4640 +msgid "" +"defines whether rating an image one star twice will zero out star rating" +msgstr "" +"určuje, zda hodnocení obrázku jednou hvězdičkou dvakrát vynuluje hodnocení " +"hvězdičkami" + +#: ../build/bin/preferences_gen.h:4661 ../build/bin/preferences_gen.h:5284 +msgid "show scrollbars for central view" +msgstr "zobrazit posuvníky pro centrální zobrazení" + +#: ../build/bin/preferences_gen.h:4671 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:5140 ../build/bin/preferences_gen.h:5363 +#: ../build/bin/preferences_gen.h:5473 ../build/bin/preferences_gen.h:5507 +#: ../build/bin/preferences_gen.h:5541 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5678 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:6060 ../build/bin/preferences_gen.h:6178 +#: ../build/bin/preferences_gen.h:6318 ../build/bin/preferences_gen.h:6362 +#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6648 +#: ../build/bin/preferences_gen.h:6682 ../build/bin/preferences_gen.h:6716 +#: ../build/bin/preferences_gen.h:6750 ../build/bin/preferences_gen.h:6784 +#: ../build/bin/preferences_gen.h:6818 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7539 ../build/bin/preferences_gen.h:7785 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 +msgctxt "preferences" +msgid "TRUE" +msgstr "ANO" + +#: ../build/bin/preferences_gen.h:4674 ../build/bin/preferences_gen.h:5297 +msgid "defines whether scrollbars should be displayed" +msgstr "určuje, zda se mají zobrazovat posuvníky" + +#: ../build/bin/preferences_gen.h:4695 +msgid "show image time with milliseconds" +msgstr "zobrazit čas obrázku v milisekundách" + +#: ../build/bin/preferences_gen.h:4708 +msgid "defines whether time should be displayed with milliseconds" +msgstr "definuje, zda má být čas zobrazen včetně milisekund" + +#: ../build/bin/preferences_gen.h:4717 +msgid "thumbnails" +msgstr "náhledy" + +#: ../build/bin/preferences_gen.h:4736 +msgid "use raw file instead of embedded JPEG from size" +msgstr "použít raw soubor místo vloženého JPEG od velikosti" + +#: ../build/bin/preferences_gen.h:4750 +msgid "" +"if the thumbnail size is greater than this value, it will be processed using " +"raw file instead of the embedded preview JPEG (better but slower).\n" +"if you want all thumbnails and pre-rendered images in best quality you " +"should choose the *always* option.\n" +"(more comments in the manual)" +msgstr "" +"pokud je velikost miniatury větší než tato hodnota, bude zpracována pomocí " +"souboru raw namísto vloženého náhledu JPEG (lepší, ale pomalejší).\n" +"chcete-li všechny miniatury a předem vykreslené obrázky v nejlepší kvalitě, " +"měli byste zvolit možnost *vždy*.\n" +"(další komentáře v manuálu)" + +#: ../build/bin/preferences_gen.h:4771 +msgid "high quality processing from size" +msgstr "vysoce kvalitní zpracování od velikosti" + +#: ../build/bin/preferences_gen.h:4785 +msgid "" +"if the thumbnail size is greater than this value, it will be processed using " +"the full quality rendering path (better but slower).\n" +"if you want all thumbnails and pre-rendered images in best quality you " +"should choose the *always* option.\n" +"(more comments in the manual)" +msgstr "" +"pokud je velikost miniatury větší než tato hodnota, bude zpracována pomocí " +"cesty vykreslování v plné kvalitě (lepší, ale pomalejší).\n" +"chcete-li všechny miniatury a předem vykreslené obrázky v nejlepší kvalitě, " +"měli byste zvolit možnost *vždy*.\n" +"(další komentáře v manuálu)" + +#: ../build/bin/preferences_gen.h:4806 +msgid "enable disk backend for thumbnail cache" +msgstr "povolit backend disku pro mezipaměť miniatur" + +#: ../build/bin/preferences_gen.h:4819 +msgid "" +"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want. light table " +"performance will be increased greatly when browsing a lot.\n" +"to generate all thumbnails of your entire collection offline, run 'darktable-" +"generate-cache'." +msgstr "" +"je-li povoleno, zapsat miniatury na disk (.cache/darktable/) při vyjmutí z " +"mezipaměti.\n" +"všimněte si, že to může zabrat hodně paměti (několik gigabajtů pro 20k " +"obrázky) a již nikdy nevymažete miniatury uložené v mezipaměti.\n" +"je bezpečné je smazat ručně, pokud chcete. výkon správce obrázků se při " +"hodně procházení výrazně zvýší.\n" +"Chcete-li vygenerovat všechny miniatury celé vaší sbírky offline, spusťte " +"„darktable-generate-cache“." + +#: ../build/bin/preferences_gen.h:4840 +msgid "enable disk backend for full preview cache" +msgstr "povolit backend disku pro plnou mezipaměť náhledu" + +#: ../build/bin/preferences_gen.h:4853 +msgid "" +"if enabled, write full preview to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want.\n" +"light table performance will be increased greatly when zooming image in full " +"preview mode." +msgstr "" +"je-li povoleno, zapíše úplný náhled na disk (.cache/darktable/), když je " +"odstraněn z mezipaměti.\n" +"všimněte si, že to může zabrat hodně paměti (několik gigabajtů pro 20k " +"obrázky) a již nikdy nevymažete miniatury uložené v mezipaměti.\n" +"je bezpečné je smazat ručně, pokud chcete.\n" +"výkon správce obrázků se výrazně zvýší při přiblížení obrazu v režimu plného " +"náhledu." + +#: ../build/bin/preferences_gen.h:4874 +msgid "generate thumbnails in background" +msgstr "vytvářet náhledy na pozadí" + +#: ../build/bin/preferences_gen.h:4888 +msgid "" +"if 'enable disk backend for thumbnail cache' is enabled thumbnails/mipmaps " +"up to the selected size are generated while user is inactive in lighttable." +msgstr "" +"pokud je povoleno 'povolit diskový backend pro mezipaměť náhledů', jsou " +"generovány náhledy/mipmapy až do zvolené velikosti, když je uživatel " +"neaktivní ve světlé komoře." + +#: ../build/bin/preferences_gen.h:4909 +msgid "reset cached thumbnails" +msgstr "resetovat miniatury uložené v mezipaměti" + +#: ../build/bin/preferences_gen.h:4922 +msgid "" +"force thumbnails to be regenerated by resetting the database. this may be " +"needed in case some thumbnails have been manually removed or corrupted." +msgstr "" +"vynutit obnovení miniatur obnovením databáze. to může být potřeba v případě, " +"že některé miniatury byly ručně odstraněny nebo poškozeny." + +#: ../build/bin/preferences_gen.h:4943 +msgid "delimiters for size categories" +msgstr "oddělovače pro kategorie velikostí" + +#: ../build/bin/preferences_gen.h:4961 +msgid "" +"size categories are used to be able to set different overlays and CSS values " +"depending of the size of the thumbnail, separated by |.\n" +"for example, 120|400 means 3 categories of thumbnails: <120px, 120-400px, " +">400px" +msgstr "" +"kategorie velikosti se používají k tomu, aby bylo možné nastavit různé " +"překryvy a hodnoty CSS v závislosti na velikosti miniatury, oddělené |.\n" +"například 120|400 znamená 3 kategorie miniatur: <120px, 120-400px, >400px" + +#: ../build/bin/preferences_gen.h:4982 +msgid "pattern for the thumbnail extended overlay text" +msgstr "maska pro rozšířený překryvný text miniatur" + +#: ../build/bin/preferences_gen.h:5002 ../build/bin/preferences_gen.h:5043 +msgid "see manual to know all the tags you can use." +msgstr "všechny značky, které můžete použít, najdete v příručce." + +#: ../build/bin/preferences_gen.h:5023 +msgid "pattern for the thumbnail tooltip (empty to disable)" +msgstr "maska pro nápovědu k miniatuře (pro deaktivaci nechte prázdné)" + +#: ../build/bin/preferences_gen.h:5075 ../src/gui/gtk.c:1267 +#: ../src/gui/preferences.c:544 ../src/views/darkroom.c:94 +msgid "darkroom" +msgstr "editor" + +#: ../build/bin/preferences_gen.h:5096 +msgid "scroll down to increase mask parameters" +msgstr "scrolovat dolů pro zvýšení parametrů masky" + +#: ../build/bin/preferences_gen.h:5109 +msgid "" +"when using the mouse scroll wheel to change mask parameters, scroll down to " +"increase the mask size, feather size, opacity, brush hardness and gradient " +"curvature\n" +"by default scrolling up increases these parameters" +msgstr "" +"při použití rolovacího kolečka myši ke změně parametrů masky, rolováním dolů " +"zvětšíte velikost masky, velikost prolnutí, krytí, tvrdost štětce a " +"přechodové zakřivení\n" +"ve výchozím nastavení rolování nahoru tyto parametry zvyšuje" + +#: ../build/bin/preferences_gen.h:5130 +msgid "middle mouse button zooms to 200%" +msgstr "prostřední tlačítko myši zvětší na 200%" + +#: ../build/bin/preferences_gen.h:5144 +#, no-c-format +msgid "" +"if enabled, the zoom level will cycle between 100%, 200% and fit to viewport " +"on middle mouse clicks. if disabled, it will toggle between viewport size " +"and 100%, and the 'ctrl' key can be used to control the zoom level." +msgstr "" +"je-li povoleno, úroveň přiblížení se bude cyklicky pohybovat mezi 100 %, 200 " +"% a přizpůsobit se výřezu při kliknutí prostředním tlačítkem myši. pokud je " +"zakázáno, bude se přepínat mezi velikostí výřezu a 100 % a klávesu 'ctrl' " +"lze použít k ovládání úrovně přiblížení." + +#: ../build/bin/preferences_gen.h:5165 +msgid "pattern for the image information line" +msgstr "maska pro informační řádek obrázku" + +#: ../build/bin/preferences_gen.h:5185 +msgid "see manual for a list of the tags you can use." +msgstr "seznam značek, které můžete použít, naleznete v příručce." + +#: ../build/bin/preferences_gen.h:5206 +msgid "position of the image information line" +msgstr "pozice informačního řádku o obrázku" + +#: ../build/bin/preferences_gen.h:5240 +msgid "border around image in darkroom mode" +msgstr "ohraničení obrazu v režimu editor" + +#: ../build/bin/preferences_gen.h:5260 ../build/bin/preferences_gen.h:7182 +#: ../build/bin/preferences_gen.h:7303 ../build/bin/preferences_gen.h:7584 +#: ../build/bin/preferences_gen.h:8048 ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8257 ../build/bin/preferences_gen.h:8389 +#: ../build/bin/preferences_gen.h:8504 ../build/bin/preferences_gen.h:8550 +#, c-format +msgid "double click to reset to `%d'" +msgstr "dvojklik pro reset na `%d'" + +#: ../build/bin/preferences_gen.h:5263 +msgid "" +"process the image in darkroom mode with a small border. set to 0 if you " +"don't want any border." +msgstr "" +"zpracujte obraz v režimu editor s malým okrajem. nastavte na 0, pokud " +"nechcete žádné ohraničení." + +#: ../build/bin/preferences_gen.h:5318 +msgid "reduce resolution of preview image" +msgstr "snížit rozlišení náhledu" + +#: ../build/bin/preferences_gen.h:5332 +msgid "decrease to speed up preview rendering, may hinder accurate masking" +msgstr "" +"snížit pro urychlení vykreslování náhledu, může bránit přesnému maskování" + +#: ../build/bin/preferences_gen.h:5353 +msgid "show loading screen between images" +msgstr "zobrazit obrazovku načítání mezi obrázky" + +#: ../build/bin/preferences_gen.h:5366 +msgid "" +"show gray loading screen when navigating between images in the darkroom\n" +"disable to just show a toast message" +msgstr "" +"zobrazit šedou obrazovku načítání při procházení mezi snímky v editoru\n" +"při deaktivaci se zobrazí pouze informační zpráva" + +#: ../build/bin/preferences_gen.h:5375 +msgid "modules" +msgstr "moduly" + +#: ../build/bin/preferences_gen.h:5394 +msgid "display of individual color channels" +msgstr "zobrazení jednotlivých barevných kanálů" + +#: ../build/bin/preferences_gen.h:5408 +msgid "" +"defines how color channels are displayed when activated in the parametric " +"masks feature." +msgstr "" +"definuje, jak se barevné kanály zobrazí při aktivaci ve funkci " +"parametrických masek." + +#: ../build/bin/preferences_gen.h:5429 +msgid "hide built-in presets for processing modules" +msgstr "skrýt vestavěné presety pro moduly zpracování" + +#: ../build/bin/preferences_gen.h:5442 +msgid "" +"hides built-in presets of processing modules in both presets and favourites " +"menu." +msgstr "" +"skrývá vestavěné presety modulů zpracování v nabídce předvoleb a oblíbených " +"položkách." + +#: ../build/bin/preferences_gen.h:5463 ../build/bin/preferences_gen.h:5476 +msgid "show the guides widget in modules UI" +msgstr "zobrazit widget průvodců v modulech UI" + +#: ../build/bin/preferences_gen.h:5497 +msgid "expand a single processing module at a time" +msgstr "rozbalit jeden modul zpracování najednou" + +#: ../build/bin/preferences_gen.h:5510 +msgid "this option toggles the behavior of shift clicking in darkroom mode" +msgstr "tato možnost přepíná chování klikání s posunem v režimu editor" + +#: ../build/bin/preferences_gen.h:5531 +msgid "only collapse modules in current group" +msgstr "sbalit pouze moduly v aktuální skupině" + +#: ../build/bin/preferences_gen.h:5544 +msgid "" +"if only expanding a single module at a time, only collapse other modules in " +"the current group - ignore modules in other groups" +msgstr "" +"pokud rozbalujete pouze jeden modul najednou, pouze sbalíte ostatní moduly v " +"aktuální skupině - ignoruje moduly v jiných skupinách" + +#: ../build/bin/preferences_gen.h:5565 +msgid "expand the module when it is activated, and collapse it when disabled" +msgstr "rozbalit modul, když je aktivován, sbalit, když je zakázán" + +#: ../build/bin/preferences_gen.h:5578 +msgid "" +"this option allows to expand or collapse automatically the module when it is " +"enabled or disabled." +msgstr "" +"tato volba umožňuje automaticky rozbalit nebo sbalit modul, když je povolen " +"nebo zakázán." + +#: ../build/bin/preferences_gen.h:5599 +msgid "scroll processing modules to the top when expanded" +msgstr "po rozbalení posuňte moduly zpracování nahoru" + +#: ../build/bin/preferences_gen.h:5633 +msgid "show right-side buttons in processing module headers" +msgstr "zobrazit tlačítka na pravé straně v záhlaví modulu zpracování" + +#: ../build/bin/preferences_gen.h:5647 +msgid "" +"when the mouse is not over a module, the multi-instance, reset and preset " +"buttons can be hidden:\n" +" - 'always': always show all buttons,\n" +" - 'active': only show the buttons when the mouse is over the module,\n" +" - 'dim': buttons are dimmed when mouse is away,\n" +" - 'auto': hide the buttons when the panel is narrow,\n" +" - 'fade': fade out all buttons when panel narrows,\n" +" - 'fit': hide all the buttons if the module name doesn't fit,\n" +" - 'smooth': fade out all buttons in one header simultaneously,\n" +" - 'glide': gradually hide individual buttons as needed" +msgstr "" +"když myš není nad modulem, lze skrýt tlačítka pro více instancí, reset a " +"přednastavení:\n" +" - 'vždy': vždy zobrazit všechna tlačítka,\n" +" - 'aktivní': tlačítka zobrazit pouze tehdy, když je myš nad modulem,\n" +" - 'dim': tlačítka jsou ztlumená, když je myš pryč,\n" +" - 'auto': skrýt tlačítka, když je panel úzký,\n" +" - 'fade': ztmaví všechna tlačítka, když se panel zúží,\n" +" - 'fit': skrýt všechna tlačítka, pokud název modulu nesedí,\n" +" - 'hladký': ztlumí všechna tlačítka v jedné hlavičce současně,\n" +" - 'klouzání': postupně skryjte jednotlivá tlačítka podle potřeby" + +#: ../build/bin/preferences_gen.h:5668 +msgid "show mask indicator in module headers" +msgstr "zobrazit indikátor masky v záhlaví modulu" + +#: ../build/bin/preferences_gen.h:5681 +msgid "" +"if enabled, an icon will be shown in the header of any processing modules " +"that have a mask applied" +msgstr "" +"pokud je povoleno, zobrazí se ikona v záhlaví všech modulů zpracování, které " +"mají aplikovanou masku" + +#: ../build/bin/preferences_gen.h:5702 +msgid "prompt for name on addition of new instance" +msgstr "výzva k zadání jména při přidání nové instance" + +#: ../build/bin/preferences_gen.h:5715 +msgid "" +"if enabled, a rename prompt will be present for each new module instance " +"(either new instance or duplicate)" +msgstr "" +"pokud je povoleno, zobrazí se výzva k přejmenování pro každou novou instanci " +"modulu (buď novou, nebo duplikát)" + +#: ../build/bin/preferences_gen.h:5736 +msgid "automatically update module name" +msgstr "automaticky aktualizovat název modulu" + +#: ../build/bin/preferences_gen.h:5749 +msgid "" +"if enabled, the module name will be automatically updated to match a preset " +"name or a preset instance name if present." +msgstr "" +"pokud je povoleno, název modulu se automaticky aktualizuje tak, aby " +"odpovídal přednastavenému názvu nebo přednastavenému názvu instance, pokud " +"je k dispozici." + +#: ../build/bin/preferences_gen.h:5781 +msgid "processing" +msgstr "zpracování" + +#: ../build/bin/preferences_gen.h:5783 +msgid "image processing" +msgstr "zpracování obrázku" + +#: ../build/bin/preferences_gen.h:5802 +msgid "always use LittleCMS 2 to apply output color profile" +msgstr "k aplikaci výstupního barevného profilu vždy používejte LittleCMS 2" + +#: ../build/bin/preferences_gen.h:5815 +msgid "this is slower than the default." +msgstr "toto je pomalejší než výchozí nastavení." + +#: ../build/bin/preferences_gen.h:5836 +msgid "pixel interpolator (warp)" +msgstr "bodový interpolátor (warp)" + +#: ../build/bin/preferences_gen.h:5850 +msgid "" +"pixel interpolator used in modules for rotation, lens correction, liquify, " +"cropping and final scaling (bilinear, bicubic, lanczos2)." +msgstr "" +"pixelový interpolátor používaný v modulech pro rotaci, korekci čočky, " +"zkapalnění, oříznutí a konečné škálování (bilineární, bikubický, lanczos2)." + +#: ../build/bin/preferences_gen.h:5871 +msgid "pixel interpolator (scaling)" +msgstr "bodový interpolátor (škálování)" + +#: ../build/bin/preferences_gen.h:5885 +msgid "" +"pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." +msgstr "" +"bodový interpolátor používaný pro škálování (bilineární, bikubický, " +"lanczos2, lanczos3)." + +#: ../build/bin/preferences_gen.h:5906 +msgid "LUT 3D root folder" +msgstr "Kořenová složka LUT 3D" + +#: ../build/bin/preferences_gen.h:5912 ../src/control/jobs/control_jobs.c:1691 +#: ../src/control/jobs/control_jobs.c:1745 ../src/gui/preferences.c:1080 +#: ../src/gui/presets.c:421 ../src/imageio/storage/disk.c:197 +#: ../src/imageio/storage/disk.c:261 ../src/imageio/storage/gallery.c:149 +#: ../src/imageio/storage/gallery.c:213 ../src/imageio/storage/latex.c:145 +#: ../src/imageio/storage/latex.c:199 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1673 ../src/libs/styles.c:391 +#: ../src/lua/preferences.c:668 +msgid "select directory" +msgstr "vybrat složku" + +#: ../build/bin/preferences_gen.h:5926 +msgid "" +"this folder (and sub-folders) contains LUT files used by LUT 3D module. " +"(need a restart)." +msgstr "" +"tato složka (a podsložky) obsahuje soubory LUT používané modulem LUT 3D. " +"(potřebuje restart)." + +#: ../build/bin/preferences_gen.h:5947 +msgid "auto-apply pixel workflow defaults" +msgstr "automaticky použít výchozí pracovní postup pixelů" + +#: ../build/bin/preferences_gen.h:5961 +msgid "" +"scene-referred workflow is based on linear modules and will auto-apply " +"filmic or sigmoid, color calibration and exposure,\n" +"display-referred workflow is based on Lab modules and will auto-apply base " +"curve, white balance and the legacy module pipe order." +msgstr "" +"pracovní postup odkazovaný na scénu je založen na lineárních modulech a " +"automaticky použije filmovou nebo sigmoidní kalibraci barev a expozici,\n" +"pacovní postup odkazovaný na displej je založen na modulech Lab a " +"automaticky použije základní křivku, vyvážení bílé a pořadí potrubí starších " +"modulů." + +#: ../build/bin/preferences_gen.h:5982 +msgid "auto-apply per camera basecurve presets" +msgstr "automatické použití presetů základní křivky pro každou kameru" + +#: ../build/bin/preferences_gen.h:5995 +msgid "" +"use the per-camera basecurve by default instead of the generic manufacturer " +"one if there is one available (needs a restart).\n" +"this option is taken into account when the \"auto-apply pixel workflow " +"defaults\" is set to \"display-referred\".\n" +"to prevent auto-apply basecurve presets \"auto-apply pixel workflow " +"defaults\" should be set to \"none\"" +msgstr "" +"ve výchozím nastavení použijte základní křivku pro každou kameru namísto " +"obecné křivky výrobce, pokud je k dispozici (vyžaduje restart).\n" +"tato možnost se bere v úvahu, když je „automatické použití výchozích hodnot " +"pracovního postupu pixelů“ nastaveno na „s odkazem na displej“.\n" +"aby se zabránilo automatickému použití presetů základní křivky, „automatické " +"použití výchozího pracovního postupu pixelů“ by mělo být nastaveno na „žádné“" + +#: ../build/bin/preferences_gen.h:6016 +msgid "detect monochrome previews" +msgstr "detekovat monochromatické náhledy" + +#: ../build/bin/preferences_gen.h:6029 +msgid "" +"many monochrome images can be identified via EXIF and preview data. beware: " +"this slows down imports and reading of EXIF data" +msgstr "" +"mnoho monochromatických obrázků lze identifikovat pomocí EXIF a náhledových " +"dat. pozor: zpomaluje se tím import a čtení EXIF dat" + +#: ../build/bin/preferences_gen.h:6050 +msgid "show warning messages" +msgstr "zobrazit varovné zprávy" + +#: ../build/bin/preferences_gen.h:6063 +msgid "" +"display messages in modules to warn beginner users when non-standard and " +"possibly harmful settings are used in the pipeline.\n" +"these messages can be false-positive and should be disregarded if you know " +"what you are doing. this option will hide them all the time." +msgstr "" +"zobrazovat zprávy v modulech, které upozorňují začínající uživatele na " +"nestandardní a možná škodlivá nastavení.\n" +"tyto zprávy mohou být falešně pozitivní a měli byste je ignorovat, pokud " +"víte, co děláte. tato možnost je vždy skryje." + +#: ../build/bin/preferences_gen.h:6072 +msgid "CPU / memory" +msgstr "CPU / paměť" + +#: ../build/bin/preferences_gen.h:6091 +msgid "darktable resources" +msgstr "zdroje darktable" + +#: ../build/bin/preferences_gen.h:6106 +#, no-c-format +msgid "" +"defines how much darktable may take from your system resources:\n" +" - 'default': darktable takes ~50% of your systems resources and gives " +"darktable enough to be still performant.\n" +" - 'small': should be used if you are simultaneously running applications " +"taking large parts of your systems memory or OpenCL/GL applications like " +"games or Hugin.\n" +" - 'large': is the best option if you are mainly using darktable and want it " +"to take most of your systems resources for performance.\n" +" - 'unrestricted': should only be used for developing extremely large images " +"as darktable will take all of your systems resources\n" +" and thus might lead to swapping and unexpected performance drops.\n" +" use with caution and not recommended for general use!" +msgstr "" +"definuje, kolik může darktable vzít z vašich systémových prostředků:\n" +" - 'výchozí': darktable zabírá ~50% vašich systémových zdrojů a poskytuje " +"darktable dost na to, aby byl stále výkonný.\n" +" - 'malé': měl by být použit, pokud současně spouštíte aplikace zabírající " +"velkou část systémové paměti nebo aplikace OpenCL/GL, jako jsou hry nebo " +"Hugin.\n" +" - 'velké': je nejlepší volbou, pokud používáte hlavně darktable a chcete, " +"aby zabral většinu vašich systémových prostředků na výkon.\n" +" - 'bez omezení': měl by být používán pouze pro vývoj extrémně velkých " +"obrázků, protože darktable zabere všechny vaše systémové prostředky\n" +" a to může vést k výměně a neočekávanému poklesu výkonu.\n" +" používejte opatrně a nedoporučujeme k obecnému použití!" + +#: ../build/bin/preferences_gen.h:6127 +msgid "prefer performance over quality" +msgstr "preferovat rychlost před kvalitou" + +#: ../build/bin/preferences_gen.h:6140 +msgid "" +"if switched on, thumbnails and previews are rendered at lower quality but 4 " +"times faster" +msgstr "" +"pokud je tato funkce zapnutá, miniatury a náhledy se vykreslují v nižší " +"kvalitě, ale 4krát rychleji" + +#: ../build/bin/preferences_gen.h:6149 +#| msgid "OpenEXR" +msgid "OpenCL" +msgstr "OpenCL" + +#: ../build/bin/preferences_gen.h:6168 +msgid "activate OpenCL support" +msgstr "aktivovat podporu OpenCL" + +#: ../build/bin/preferences_gen.h:6181 +msgid "" +"if found, use OpenCL runtime on your system to speed up processing.\n" +"can be switched on and off at any time." +msgstr "" +"pokud je nalezen, použijte ve svém systému runtime OpenCL pro urychlení " +"zpracování.\n" +"lze kdykoli zapnout a vypnout." + +#: ../build/bin/preferences_gen.h:6185 ../build/bin/preferences_gen.h:6230 +#: ../build/bin/preferences_gen.h:6274 ../build/bin/preferences_gen.h:6325 +#: ../build/bin/preferences_gen.h:6369 ../build/bin/preferences_gen.h:6413 +#: ../build/bin/preferences_gen.h:6457 ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6545 ../build/bin/preferences_gen.h:7700 +msgid "not available" +msgstr "nedostupné" + +#: ../build/bin/preferences_gen.h:6187 ../build/bin/preferences_gen.h:6188 +#: ../build/bin/preferences_gen.h:6232 ../build/bin/preferences_gen.h:6233 +#: ../build/bin/preferences_gen.h:6276 ../build/bin/preferences_gen.h:6277 +#: ../build/bin/preferences_gen.h:6327 ../build/bin/preferences_gen.h:6328 +#: ../build/bin/preferences_gen.h:6371 ../build/bin/preferences_gen.h:6372 +#: ../build/bin/preferences_gen.h:6415 ../build/bin/preferences_gen.h:6416 +#: ../build/bin/preferences_gen.h:6459 ../build/bin/preferences_gen.h:6460 +#: ../build/bin/preferences_gen.h:6503 ../build/bin/preferences_gen.h:6504 +#: ../build/bin/preferences_gen.h:6547 ../build/bin/preferences_gen.h:6548 +#: ../build/bin/preferences_gen.h:7702 ../build/bin/preferences_gen.h:7703 +msgid "not available on this system" +msgstr "nedostupné v tomto systému" + +#: ../build/bin/preferences_gen.h:6212 +msgid "OpenCL scheduling profile" +msgstr "Plánovací profil OpenCL" + +#: ../build/bin/preferences_gen.h:6226 +msgid "" +"defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled " +"systems:\n" +" - 'default': GPU processes full and CPU processes preview pipe (adaptable " +"by config parameters),\n" +" - 'multiple GPUs': process both pixelpipes in parallel on two different " +"GPUs,\n" +" - 'very fast GPU': process both pixelpipes sequentially on the GPU." +msgstr "" +"definuje, jak jsou naplánovány úlohy náhledu a úplného zobrazení v systémech " +"podporujících OpenCL:\n" +" - 'výchozí': GPU zpracovává plné a CPU náhledy (přizpůsobitelné " +"konfiguračními parametry),\n" +" - „více GPU“: zpracujte obě úlohy paralelně na dvou různých GPU,\n" +" - 'velmi rychlý GPU': zpracujte obě úlohy postupně na GPU." + +#: ../build/bin/preferences_gen.h:6257 +msgid "use all device memory" +msgstr "použít veškerou paměť zařízení" + +#: ../build/bin/preferences_gen.h:6270 +msgid "" +"if enabled darktable will use all device memory except a safety margin " +"(headroom, default is 600MB)" +msgstr "" +"je-li povoleno, darktable bude využívat veškerou paměť zařízení kromě " +"bezpečnostní rezervy (volný prostor, výchozí je 600 MB)" + +#: ../build/bin/preferences_gen.h:6289 +msgid "OpenCL drivers" +msgstr "OpenCL ovladače" + +#: ../build/bin/preferences_gen.h:6308 +msgid "Intel GPU" +msgstr "GPU Intel" + +#: ../build/bin/preferences_gen.h:6321 +msgid "Intel(R) OpenCL Graphics for all supported platforms (vendor provided)" +msgstr "" +"Intel(R) OpenCL Graphics pro všechny podporované platformy (poskytován " +"dodavatelem)" + +#: ../build/bin/preferences_gen.h:6352 +msgid "Nvidia CUDA" +msgstr "Nvidia CUDA" + +#: ../build/bin/preferences_gen.h:6365 +msgid "Nvidia CUDA based OpenCL (vendor provided)" +msgstr "OpenCL založené na Nvidia CUDA (poskytován dodavatelem)" + +#: ../build/bin/preferences_gen.h:6396 +msgid "AMD ROCm" +msgstr "AMD ROCm" + +#: ../build/bin/preferences_gen.h:6409 +msgid "AMD Accelerated Parallel Processing (vendor provided)" +msgstr "AMD Akcelerované paralelní zpracování (poskytován dodavatelem)" + +#: ../build/bin/preferences_gen.h:6440 +msgid "RustiCL" +msgstr "RustiCL" + +#: ../build/bin/preferences_gen.h:6453 +msgid "" +"RustiCL Mesa OpenCL, still unstable. if you want to use this, you should " +"disable the vendor driver" +msgstr "" +"RustiCL Mesa OpenCL, stále nestabilní. pokud jej chcete použít, měli byste " +"vypnout ovladač dodavatele" + +#: ../build/bin/preferences_gen.h:6484 +msgid "Apple" +msgstr "Apple" + +#: ../build/bin/preferences_gen.h:6497 +msgid "Apple OpenCL (vendor provided)" +msgstr "Apple OpenCL (poskytován dodavatelem)" + +#: ../build/bin/preferences_gen.h:6528 +msgid "Microsoft OpenCLOn12" +msgstr "Microsoft OpenCLOn12" + +#: ../build/bin/preferences_gen.h:6541 +msgid "" +"Microsoft OpenCLOn12, only use this if the vendor provided driver does not " +"work or there is none provided." +msgstr "" +"Microsoft OpenCLOn12, použijte pouze v případě, že ovladač poskytnutý " +"dodavatelem nefunguje nebo není k dispozici." + +#: ../build/bin/preferences_gen.h:6572 +msgid "other platforms" +msgstr "ostatní platformy" + +#: ../build/bin/preferences_gen.h:6585 +msgid "" +"if set, all unspecified platforms are accepted. only do this if no vendor " +"driver is available" +msgstr "" +"pokud je nastaveno, jsou akceptovány všechny nespecifikované platformy. " +"použijte pouze v případě, že není k dispozici žádný ovladač dodavatele" + +#: ../build/bin/preferences_gen.h:6617 +msgid "security" +msgstr "zabezpečení" + +#: ../build/bin/preferences_gen.h:6638 +msgid "ask before removing images from the library" +msgstr "zeptejte se před odebráním obrázků z knihovny" + +#: ../build/bin/preferences_gen.h:6651 +msgid "always ask the user before removing image information from the library" +msgstr "" +"před odebráním informací o obrázku z knihovny se vždy zeptejte uživatele" + +#: ../build/bin/preferences_gen.h:6672 +msgid "ask before deleting images from disk" +msgstr "zeptat se před smazáním obrázků z disku" + +#: ../build/bin/preferences_gen.h:6685 +msgid "always ask the user before any image file is deleted" +msgstr "" +"vždy se zeptejtat uživatele před smazáním jakéhokoli obrazového souboru" + +#: ../build/bin/preferences_gen.h:6706 +msgid "ask before discarding history stack" +msgstr "zeptat se před smazáním zásobníku historie" + +#: ../build/bin/preferences_gen.h:6719 +msgid "always ask the user before history stack is discarded on any image" +msgstr "" +"vždy se zeptat uživatele před smazáním zásobníku historie pro každý obrázek" + +#: ../build/bin/preferences_gen.h:6740 +msgid "try to use trash when deleting images" +msgstr "pokusit se použít koš při mazání obrázků" + +#: ../build/bin/preferences_gen.h:6753 +msgid "" +"send files to trash instead of permanently deleting files on system that " +"supports it" +msgstr "" +"přesunout soubory do koše při permanentním mazání souborů v systémech, které " +"to podporují" + +#: ../build/bin/preferences_gen.h:6774 +msgid "ask before moving images from film roll folder" +msgstr "zeptat se před přesunutím obrázků ze složky filmového pásu" + +#: ../build/bin/preferences_gen.h:6787 +msgid "always ask the user before any image file is moved." +msgstr "vždy se zeptat uživatele před přesunutím obrázku." + +#: ../build/bin/preferences_gen.h:6808 +msgid "ask before copying images to new film roll folder" +msgstr "zeptat se před kopírováním obrázků do nové složky filmového pásu" + +#: ../build/bin/preferences_gen.h:6821 +msgid "always ask the user before any image file is copied." +msgstr "" +"vždy se zeptejte uživatele před zkopírováním jakéhokoli obrazového souboru." + +#: ../build/bin/preferences_gen.h:6842 +msgid "ask before removing empty folders" +msgstr "zeptejte se před odstraněním prázdných složek" + +#: ../build/bin/preferences_gen.h:6855 +msgid "" +"always ask the user before removing any empty folder. this can happen after " +"moving or deleting images." +msgstr "" +"před odstraněním prázdné složky se vždy zeptejte uživatele. k tomu může " +"dojít po přesunutí nebo vymazání snímků." + +#: ../build/bin/preferences_gen.h:6876 +msgid "ask before deleting a tag" +msgstr "zeptat se před smazáním štítku" + +#: ../build/bin/preferences_gen.h:6909 +msgid "ask before deleting a style" +msgstr "zeptat se před smazáním stylu" + +#: ../build/bin/preferences_gen.h:6942 +msgid "ask before deleting a preset" +msgstr "zeptat se před smazáním presetu" + +#: ../build/bin/preferences_gen.h:6955 +msgid "will ask for confirmation before deleting or overwriting a preset" +msgstr "před smazáním nebo přepsáním presetu požádá o potvrzení" + +#: ../build/bin/preferences_gen.h:6976 +msgid "ask before exporting in overwrite mode" +msgstr "zeptat se před exportem v režimu přepisování" + +#: ../build/bin/preferences_gen.h:6989 +msgid "will ask for confirmation before exporting files in overwrite mode" +msgstr "před exportem souborů v režimu přepisování požádá o potvrzení" + +#. italic +#: ../build/bin/preferences_gen.h:6998 ../src/libs/tools/viewswitcher.c:148 +msgid "other" +msgstr "ostatní" + +#: ../build/bin/preferences_gen.h:7017 +msgid "password storage backend to use" +msgstr "použitý správce úložiště hesel" + +#: ../build/bin/preferences_gen.h:7035 +msgid "" +"the storage backend for password storage: auto, none, libsecret, kwallet" +msgstr "backend úložiště pro ukládání hesel: auto, none, libsecret, kwallet" + +#: ../build/bin/preferences_gen.h:7056 +msgid "executable for playing audio files" +msgstr "spustitelný pro přehrávání zvukových souborů" + +#: ../build/bin/preferences_gen.h:7074 +msgid "" +"this external program is used to play audio files some cameras record to " +"keep notes for images" +msgstr "" +"tento externí program se používá k přehrávání zvukových souborů, které " +"některé kamery zaznamenávají a ukládají poznámky k obrázkům" + +#: ../build/bin/preferences_gen.h:7106 +msgid "storage" +msgstr "úložiště" + +#: ../build/bin/preferences_gen.h:7108 ../src/control/crawler.c:717 +msgid "database" +msgstr "databáze" + +#: ../build/bin/preferences_gen.h:7127 +msgid "create database snapshot" +msgstr "vytvořit zálohu databáze" + +#: ../build/bin/preferences_gen.h:7141 +msgid "" +"database snapshots are created right before closing darktable. options allow " +"you to choose how often to make snapshots:\n" +" - 'never': simply don't do snapshots. that way the only snapshots done are " +"mandatory version-upgrade snapshots\n" +" - 'once a month': create snapshot if a month has passed since last " +"snapshot\n" +" - 'once a week': create snapshot if 7 days had passed since last snapshot\n" +" - 'once a day': create snapshot if over 24h passed since last snapshot\n" +" - 'on close': create snapshot every time darktable is closed" +msgstr "" +"otisk databáze se vytvářejí těsně před uzavřením darktable. možnosti " +"umožňují zvolit, jak často se mají otisky vytvářet:\n" +" - 'nikdy': jednoduše žádné otisk databáze. tímto způsobem jsou jedinými " +"otisk povinné otisky při upgradu verze\n" +" - 'jednou za měsíc': vytvořit otisk, pokud od posledního otisku uplynul " +"měsíc\n" +" - 'jednou týdně': vytvořte otisk, pokud od posledního otisku uplynulo 7 " +"dní\n" +" - 'jednou denně': vytvořte otisk, pokud od posledního otisku uplynulo více " +"než 24 hodin\n" +" - 'on close': vytvořit otisk pokaždé, když se darktable zavře" + +#: ../build/bin/preferences_gen.h:7162 +msgid "how many snapshots to keep" +msgstr "kolik záloh ponechat" + +#: ../build/bin/preferences_gen.h:7185 +msgid "" +"after successfully creating snapshot, how many older snapshots to keep " +"(excluding mandatory version update ones). enter -1 to keep all snapshots\n" +"keep in mind that snapshots do take some space and you only need the most " +"recent one for successful restore" +msgstr "" +"po úspěšném vytvoření zálohy, kolik starších verzí zachovat (kromě těch s " +"povinnou aktualizací verze). zadejte -1, chcete-li zachovat všechny\n" +"mějte na paměti, že zálohy zabírají určité místo a pro úspěšné obnovení " +"potřebujete pouze tu nejnovější" + +#: ../build/bin/preferences_gen.h:7194 ../src/libs/copy_history.c:149 +msgid "XMP sidecar files" +msgstr "XMP pomocné soubory" + +#: ../build/bin/preferences_gen.h:7213 +msgid "create XMP files" +msgstr "vytvořit XMP soubory" + +#: ../build/bin/preferences_gen.h:7227 +msgid "" +"XMP sidecar files hold information about all your development steps to allow " +"flawless re-importing of image files.\n" +"\n" +"depending on the selected mode sidecar files will be created:\n" +" - 'never'\n" +" - 'on import': immediately after importing the image\n" +" - 'after edit': after any user change on the image or adding tags." +msgstr "" +"Pomocné XMP soubory obsahují informace o všech vašich vývojových krocích, " +"aby bylo možné bezchybně znovu importovat obrazové soubory.\n" +"\n" +"v závislosti na zvoleném režimu se vytvoří:\n" +" - 'nikdy'\n" +" - 'při importu': ihned po importu obrázku\n" +" - 'po úpravě': po jakékoli uživatelské změně obrázku nebo přidání tagů." + +#: ../build/bin/preferences_gen.h:7248 +msgid "store XMP tags in compressed format" +msgstr "ukládat XMP tagy v komprimovaném formátu" + +#: ../build/bin/preferences_gen.h:7262 +msgid "" +"entries in XMP tags can get rather large and may exceed the available space " +"to store the history stack in output files.\n" +"this option allows XMP tags to be compressed and save space." +msgstr "" +"položky ve značkách XMP mohou být poměrně velké a mohou přesáhnout dostupný " +"prostor pro uložení zásobníku historie ve výstupních souborech.\n" +"tato možnost umožňuje XMP tagy komprimovat a šetřit místo." + +#: ../build/bin/preferences_gen.h:7283 +msgid "auto-save interval" +msgstr "interval automatického ukládání" + +#: ../build/bin/preferences_gen.h:7306 +msgid "" +"automatically save history while developing using the given interval (in " +"seconds); set to zero to disable auto-saving. auto-saving might be disabled " +"on slow drives." +msgstr "" +"automatické ukládání historie při vývoji pomocí daného intervalu (v " +"sekundách); nastavením na nulu deaktivujete automatické ukládání. " +"automatické ukládání může být na pomalých discích zakázáno." + +#: ../build/bin/preferences_gen.h:7327 +msgid "look for updated XMP files on startup" +msgstr "při spuštění vyhledejte aktualizované soubory XMP" + +#: ../build/bin/preferences_gen.h:7340 +msgid "" +"check file modification times of all XMP files on startup to check if any " +"got updated in the meantime" +msgstr "" +"zkontrolujte časy úprav všech souborů XMP při spuštění a zjistěte, zda se " +"mezitím nějaký neaktualizoval" + +#: ../build/bin/preferences_gen.h:7372 +msgid "miscellaneous" +msgstr "různé" + +#: ../build/bin/preferences_gen.h:7374 +msgid "interface" +msgstr "rozhraní" + +#: ../build/bin/preferences_gen.h:7393 +msgid "load default shortcuts at startup" +msgstr "obnovit výchozí zkratky po startu" + +#: ../build/bin/preferences_gen.h:7406 +msgid "" +"load default shortcuts before user settings. switch off to prevent deleted " +"defaults returning" +msgstr "" +"načíst výchozí klávesové zkratky prod uživatelským nastavením. vypni, abys " +"zabránil návratu smazaných výchozích hodnot" + +#: ../build/bin/preferences_gen.h:7427 +msgid "scale slider step with min/max" +msgstr "posuvník měřítka krok s min/max" + +#: ../build/bin/preferences_gen.h:7440 +msgid "vary slider step size with min/max range" +msgstr "měnit velikost kroku posuvníku s rozsahem min/max" + +#: ../build/bin/preferences_gen.h:7461 +msgid "sort built-in presets first" +msgstr "nejprve řadit vestavěné presety" + +#: ../build/bin/preferences_gen.h:7474 +msgid "" +"whether to show built-in presets first before user's presets in presets menu." +msgstr "" +"zda se mají v nabídce presetů nejprve zobrazit vestavěné presety před " +"presety uživatele." + +#: ../build/bin/preferences_gen.h:7495 +msgid "mouse wheel scrolls modules side panel by default" +msgstr "kolečko myši ve výchozím nastavení posouvá boční panel modulů" + +#: ../build/bin/preferences_gen.h:7508 +msgid "" +"when enabled, use mouse wheel to scroll modules side panel. use ctrl+alt to " +"use mouse wheel for data entry. when disabled, this behavior is reversed" +msgstr "" +"je-li povoleno, použijte kolečko myši k posouvání bočního panelu modulů. " +"použijte ctrl+alt pro použití kolečka myši pro zadávání dat. při deaktivaci " +"je toto chování obráceno" + +#: ../build/bin/preferences_gen.h:7529 +msgid "always show panels' scrollbars" +msgstr "vždy zobrazovat posuvníky panelů" + +#: ../build/bin/preferences_gen.h:7542 +msgid "" +"defines whether the panel scrollbars should be always visible or activated " +"only depending on the content. (need a restart)" +msgstr "" +"vždy zobrazit panadefinuje, zda mají být posuvníky panelu vždy viditelné " +"nebo aktivované pouze v závislosti na obsahu. (vyžaduje restart)" + +#: ../build/bin/preferences_gen.h:7563 +msgid "duration of the UI transitions in ms" +msgstr "trvání přechodů uživatelského rozhraní v ms" + +#: ../build/bin/preferences_gen.h:7587 +msgid "" +"how long the transitions take (in ms) for expanding or collapsing modules " +"and other UI elements" +msgstr "" +"jak dlouho trvá přechod (v ms) pro rozbalení nebo sbalení modulů a dalších " +"prvků uživatelského rozhraní" + +#: ../build/bin/preferences_gen.h:7608 +msgid "position of the scopes module" +msgstr "pozice modulu rozsahy" + +#: ../build/bin/preferences_gen.h:7622 +msgid "position the scopes at the top-left or top-right of the screen" +msgstr "umístěte rozsahy do levého horního nebo pravého horního rohu obrazovky" + +#: ../build/bin/preferences_gen.h:7643 +msgid "method to use for getting the display profile" +msgstr "metoda, která se má použít pro získání profilu zobrazení" + +#: ../build/bin/preferences_gen.h:7657 +msgid "" +"this option allows to force a specific means of getting the current display " +"profile.\n" +"this is useful when one alternative gives wrong results" +msgstr "" +"tato možnost umožňuje vynutit konkrétní způsob získání aktuálního profilu " +"zobrazení.\n" +"to je užitečné, když jedna alternativa dává špatné výsledky" + +#: ../build/bin/preferences_gen.h:7678 +msgid "order or exclude MIDI devices" +msgstr "třídit nebo vyloučit MIDI zařízení" + +#: ../build/bin/preferences_gen.h:7696 +msgid "" +"comma-separated list of device name fragments that if matched load MIDI " +"device at id given by location in list\n" +"or if preceded by '-' prevent matching devices from loading. add encoding " +"and number of knobs like 'BeatStep:63:16'" +msgstr "" +"čárkami oddělený seznam fragmentů názvů zařízení, které v případě shody " +"načtou MIDI zařízení s id daným umístěním v seznamu\n" +"nebo pokud předchází '-', zabrání načítání odpovídajících zařízení. přidat " +"kódování a počet knoflíků jako 'BeatStep:63:16'" + +#. tags +#: ../build/bin/preferences_gen.h:7715 ../src/develop/lightroom.c:1573 +#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:322 +#: ../src/libs/image.c:614 ../src/libs/metadata_view.c:166 +msgid "tags" +msgstr "štítky" + +#: ../build/bin/preferences_gen.h:7734 +msgid "omit hierarchy in simple tag lists" +msgstr "vynechat hierarchii v jednoduchých seznamech značek" + +#: ../build/bin/preferences_gen.h:7747 +msgid "" +"when creating an XMP sidecar file the hierarchical tags are also added as a " +"simple list\n" +"of non-hierarchical ones to make them visible to some other programs.\n" +"when this option is checked darktable will only include their last part\n" +"and ignore the rest. so 'foo|bar|baz' will only add 'baz'." +msgstr "" +"při vytváření pomocného XMP souboru jsou hierarchické značky přidány také " +"jako jednoduchý seznam\n" +"nehierarchických, aby byly viditelné pro některé další programy.\n" +"když je tato volba zaškrtnuta, darktable bude vkládat pouze jejich poslední " +"část\n" +"a zbytek ignorovat. takže 'foo|bar|baz' přidá pouze 'baz'." + +#: ../build/bin/preferences_gen.h:7756 +msgid "shortcuts with multiple instances" +msgstr "zkratky s více instancemi" + +#: ../build/bin/preferences_gen.h:7775 +msgid "prefer focused instance" +msgstr "preferovat vybrané instance" + +#: ../build/bin/preferences_gen.h:7788 +msgid "" +"where multiple instances of a module are present, apply shortcuts to the " +"instance that has focus\n" +"if none are focused, the preferences below control rules that are followed " +"(in order) to decide which module instance shortcuts will be applied to.\n" +"note: blending shortcuts always apply to the focused instance" +msgstr "" +"pokud je přítomno více instancí modulu, použijte zástupce na instanci, která " +"má fokus\n" +"pokud žádná není zaměřena, níže uvedené předvolby řídí pravidla, která jsou " +"dodržována (v pořadí) při rozhodování, na které zástupce instance modulu " +"budou aplikovány.\n" +"poznámka: Zkratky prolnutí se vždy vztahují na aktivní instanci" + +#: ../build/bin/preferences_gen.h:7809 +msgid "prefer expanded instances" +msgstr "preferujte rozšířené instance" + +#: ../build/bin/preferences_gen.h:7822 +msgid "if instances of the module are expanded, ignore collapsed instances" +msgstr "pokud jsou instance modulu rozbaleny, ignorovat sbalené instance" + +#: ../build/bin/preferences_gen.h:7843 +msgid "prefer enabled instances" +msgstr "preferujte povolené instance" + +#: ../build/bin/preferences_gen.h:7856 +msgid "" +"after applying the above rule, if instances of the module are active, ignore " +"inactive instances" +msgstr "" +"po použití výše uvedeného pravidla, pokud jsou instance modulu aktivní, " +"ignorovat neaktivní instance" + +#: ../build/bin/preferences_gen.h:7877 +msgid "prefer unmasked instances" +msgstr "preferujte nemaskované instance" + +#: ../build/bin/preferences_gen.h:7890 +msgid "" +"after applying the above rules, if instances of the module are unmasked, " +"ignore masked instances" +msgstr "" +"po použití výše uvedených pravidel, pokud jsou instance modulu odmaskovány, " +"maskované instance ignorujte" + +#: ../build/bin/preferences_gen.h:7911 +msgid "selection order" +msgstr "pořadí výběru" + +#: ../build/bin/preferences_gen.h:7925 +msgid "" +"after applying the above rules, apply the shortcut based on its position in " +"the pixelpipe" +msgstr "" +"po použití výše uvedených pravidel použijte zkratku na základě její pozice " +"ve frontě zpracování" + +#: ../build/bin/preferences_gen.h:7946 +msgid "allow visual assignment to specific instances" +msgstr "umožňují vizuální přiřazení konkrétním instancím" + +#: ../build/bin/preferences_gen.h:7959 +msgid "" +"when multiple instances are present on an image this allows shortcuts to be " +"visually assigned to those specific instances\n" +"otherwise shortcuts will always be assigned to the preferred instance" +msgstr "" +"když je na obrázku přítomno více instancí, umožňuje to vizuálně přiřadit " +"zkratky k těmto konkrétním instancím\n" +"jinak budou zástupci vždy přiřazeni preferované instanci" + +#: ../build/bin/preferences_gen.h:7968 +msgid "map / geolocalization view" +msgstr "mapový / geolokalizační pohled" + +#: ../build/bin/preferences_gen.h:7987 +msgid "pretty print the image location" +msgstr "pěkně vytisknout umístění obrázku" + +#: ../build/bin/preferences_gen.h:8000 +msgid "" +"show a more readable representation of the location in the image information " +"module" +msgstr "" +"zobrazit čitelnější reprezentaci umístění v modulu obrazových informací" + +#: ../build/bin/preferences_gen.h:8009 +msgid "slideshow view" +msgstr "zobrazení prezentace" + +#: ../build/bin/preferences_gen.h:8028 +msgid "waiting time between each picture in slideshow" +msgstr "čekací doba mezi jednotlivými obrázky v prezentaci" + +#: ../build/bin/preferences_gen.h:8088 +msgid "do not set the 'uncategorized' entry for tags" +msgstr "nenastavit příznak 'bez kategorie' pro štítky" + +#: ../build/bin/preferences_gen.h:8101 +msgid "" +"do not set the 'uncategorized' entry for tags which do not have children" +msgstr "nenastavit příznak 'bez kategorie' pro štítky, které nemají potomky" + +#: ../build/bin/preferences_gen.h:8122 +msgid "tags case sensitivity" +msgstr "rozlišování velkých a malých písmen u štítků" + +#: ../build/bin/preferences_gen.h:8136 +msgid "" +"tags case sensitivity. without the Sqlite ICU extension, insensitivity works " +"only for the 26 latin letters" +msgstr "" +"rozlišení velikosti písmen u tagů. bez rozšíření Sqlite ICU funguje " +"necitlivost pouze pro 26 latinských písmen" + +#: ../build/bin/preferences_gen.h:8157 ../build/bin/preferences_gen.h:8368 +msgid "number of collections to be stored" +msgstr "počet kolekcí k uložení" + +#: ../build/bin/preferences_gen.h:8181 ../build/bin/preferences_gen.h:8392 +msgid "the number of recent collections to store and show in this list" +msgstr "počet kolekcí pro uložení a zobrazení v tomto seznamu" + +#: ../build/bin/preferences_gen.h:8202 +msgid "hide the history button and show a specific module instead" +msgstr "skrýt tlačítko historie a místo toho zobrazit konkrétní modul" + +#: ../build/bin/preferences_gen.h:8215 +msgid "hide the history button and show the recent collections module instead" +msgstr "" +"skrýt tlačítko historie a místo toho zobrazit kolekci posledních modulů" + +#: ../build/bin/preferences_gen.h:8236 +msgid "number of folder levels to show in lists" +msgstr "počet úrovní složek, které se mají zobrazit v seznamech" + +#: ../build/bin/preferences_gen.h:8260 +msgid "" +"the number of folder levels to show in film roll names, starting from the " +"right" +msgstr "" +"počet úrovní složek, které se mají zobrazit v názvech filmových pásů, " +"počítáno zprava" + +#: ../build/bin/preferences_gen.h:8281 +msgid "sort film rolls by" +msgstr "třídit filmový pás podle" + +#: ../build/bin/preferences_gen.h:8292 +msgctxt "preferences" +msgid "chronological" +msgstr "chronologický" + +#: ../build/bin/preferences_gen.h:8295 +msgid "sets the collections-list order for film rolls" +msgstr "nastaví pořadí seznamu kolekcí pro filmový pás" + +#: ../build/bin/preferences_gen.h:8316 +msgid "sort collection descending" +msgstr "seřadit kolekci sestupně" + +#: ../build/bin/preferences_gen.h:8329 +msgid "" +"sort the following collections in descending order: 'film roll' by folder, " +"'folder', 'times' (e.g. 'capture date')" +msgstr "" +"seřadit následující kolekce v sestupném pořadí: 'filmový pás' podle složky, " +"'složka', 'časy' (např. 'čas sejmutí')" + +#: ../build/bin/preferences_gen.h:8413 +msgid "prefer a history button in the collections module" +msgstr "preferujte tlačítko historie v modulu kolekcí" + +#: ../build/bin/preferences_gen.h:8426 +msgid "" +"hide this module and instead access collections history with a button in the " +"collections module" +msgstr "" +"skrýt tento modul a místo toho přistupovat k historii kolekcí pomocí " +"tlačítka v modulu kolekcí" + +#: ../build/bin/preferences_gen.h:8483 +msgid "suggested tags level of confidence" +msgstr "doporučené značky úrovně důvěry" + +#: ../build/bin/preferences_gen.h:8508 +#, no-c-format +msgid "" +"level of confidence to include the tag in the suggestions list, 0: all " +"associated tags, 99: 99% matching associated tags, 100: no matching tag to " +"show only recent tags (faster)" +msgstr "" +"úroveň spolehlivosti pro zahrnutí značky do seznamu návrhů, 0: všechny " +"přidružené značky, 99: 99 % shodných přidružených značek, 100: žádná " +"odpovídající značka pro zobrazení pouze posledních značek (rychlejší)" + +#: ../build/bin/preferences_gen.h:8529 +msgid "number of recently attached tags" +msgstr "počet nedávno připojených značek" + +#: ../build/bin/preferences_gen.h:8553 +msgid "" +"number of recently attached tags which are included in the suggestions list. " +"the value `-1' disables the recent list" +msgstr "" +"kolik nedávno přidaných značek má být přidáno do seznamu návrhů. hodnota -1 " +"zakáže seznam posledních značek" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:130 +#: ../build/lib/darktable/plugins/introspection_ashift.c:279 +msgid "lens shift (vertical)" +msgstr "posun objektivu (vertikální)" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:136 +#: ../build/lib/darktable/plugins/introspection_ashift.c:283 +msgid "lens shift (horizontal)" +msgstr "posun objektivu (horizontální)" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:142 +#: ../build/lib/darktable/plugins/introspection_ashift.c:287 +msgid "shear" +msgstr "stříhat" + +#. focal length +#: ../build/lib/darktable/plugins/introspection_ashift.c:148 +#: ../build/lib/darktable/plugins/introspection_ashift.c:291 +#: ../src/common/collection.c:627 ../src/gui/preferences.c:842 +#: ../src/gui/presets.c:721 ../src/libs/camera.c:550 +#: ../src/libs/metadata_view.c:145 +msgid "focal length" +msgstr "ohnisková vzdálenost" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:154 +#: ../build/lib/darktable/plugins/introspection_ashift.c:295 +#: ../src/libs/metadata_view.c:147 +msgid "crop factor" +msgstr "crop faktor" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:160 +#: ../build/lib/darktable/plugins/introspection_ashift.c:299 +msgid "lens dependence" +msgstr "závisí na objektivu" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:166 +#: ../build/lib/darktable/plugins/introspection_ashift.c:303 +msgid "aspect adjust" +msgstr "upravit poměr" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:172 +#: ../build/lib/darktable/plugins/introspection_ashift.c:307 +#: ../src/iop/lens.cc:4438 +msgid "lens model" +msgstr "model objektivu" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:178 +#: ../build/lib/darktable/plugins/introspection_ashift.c:311 +#: ../build/lib/darktable/plugins/introspection_clipping.c:244 +#: ../build/lib/darktable/plugins/introspection_clipping.c:371 +msgid "automatic cropping" +msgstr "automatické ořezávání" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:361 +#: ../build/lib/darktable/plugins/introspection_highlights.c:311 +msgid "generic" +msgstr "obecný" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:362 +msgid "specific" +msgstr "specifický" + +#. DEVELOP_MASK_DISABLED +#: ../build/lib/darktable/plugins/introspection_ashift.c:366 +#: ../build/lib/darktable/plugins/introspection_colorin.c:303 +#: ../build/lib/darktable/plugins/introspection_highlights.c:310 +#: ../build/lib/darktable/plugins/introspection_vignette.c:264 +#: ../src/develop/blend_gui.c:153 ../src/develop/blend_gui.c:182 +#: ../src/develop/blend_gui.c:3429 ../src/gui/accelerators.c:148 +#: ../src/gui/accelerators.c:158 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/imageio/format/j2k.c:686 +#: ../src/libs/live_view.c:361 +msgid "off" +msgstr "vyp" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:367 +msgid "largest area" +msgstr "největší oblast" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:368 +msgid "original format" +msgstr "původní formát" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:134 +#: ../build/lib/darktable/plugins/introspection_basecurve.c:231 +msgid "fusion" +msgstr "fúze" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:140 +#: ../build/lib/darktable/plugins/introspection_basecurve.c:235 +msgid "exposure shift" +msgstr "posun expozice" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:146 +#: ../build/lib/darktable/plugins/introspection_basecurve.c:239 +#: ../src/libs/metadata_view.c:144 +msgid "exposure bias" +msgstr "zkreslení expozice" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:152 +#: ../build/lib/darktable/plugins/introspection_basecurve.c:243 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:122 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:215 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:140 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:227 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:57 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:122 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:153 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:244 +msgid "preserve colors" +msgstr "zachovat barvy" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:262 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:249 +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:153 +#: ../build/lib/darktable/plugins/introspection_lens.cc:533 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:251 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:153 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:270 +#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2214 +#: ../src/iop/channelmixerrgb.c:4735 ../src/iop/clipping.c:1953 +#: ../src/iop/clipping.c:2146 ../src/iop/clipping.c:2161 +#: ../src/iop/retouch.c:507 ../src/libs/collect.c:2043 +#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1101 +#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:109 +#: ../src/libs/live_view.c:311 ../src/libs/print_settings.c:2835 +msgid "none" +msgstr "žádná" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:263 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:250 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:226 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:244 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:262 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:280 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:461 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:473 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:485 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:497 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:252 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:154 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:271 +#: ../src/develop/blend_gui.c:2379 ../src/develop/blend_gui.c:2413 +msgid "luminance" +msgstr "jas" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:264 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:251 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:550 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:253 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:155 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:272 +msgid "max RGB" +msgstr "max RGB" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:265 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:252 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:254 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:156 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:273 +msgid "average RGB" +msgstr "průměr RGB" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:266 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:253 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:255 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:157 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:274 +msgid "sum RGB" +msgstr "součet RGB" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:267 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:254 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:256 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:158 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:275 +msgid "norm RGB" +msgstr "norma RGB" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:268 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:255 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:257 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:159 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:276 +msgid "basic power" +msgstr "základní výkon" + +#: ../build/lib/darktable/plugins/introspection_basicadj.c:92 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:195 +#: ../build/lib/darktable/plugins/introspection_exposure.c:67 +#: ../build/lib/darktable/plugins/introspection_exposure.c:138 +msgid "black level correction" +msgstr "korekce úrovně černé" + +#: ../build/lib/darktable/plugins/introspection_basicadj.c:104 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:203 +msgid "highlight compression" +msgstr "komprese světel" + +#: ../build/lib/darktable/plugins/introspection_basicadj.c:128 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:219 +msgid "middle gray" +msgstr "střední šedá" + +#: ../build/lib/darktable/plugins/introspection_bilat.c:78 +#: ../build/lib/darktable/plugins/introspection_bilat.c:137 +msgid "midtone range" +msgstr "rozsah středních tónů" + +#: ../build/lib/darktable/plugins/introspection_bilat.c:151 +msgid "bilateral grid" +msgstr "dvoustranná mřížka" + +#: ../build/lib/darktable/plugins/introspection_bilat.c:152 +msgid "local laplacian filter" +msgstr "místní lalacian filtr" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:83 +#: ../build/lib/darktable/plugins/introspection_blurs.c:174 +#: ../build/lib/darktable/plugins/introspection_retouch.c:255 +#: ../build/lib/darktable/plugins/introspection_retouch.c:406 +msgid "blur type" +msgstr "typ rozostření" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:89 +#: ../build/lib/darktable/plugins/introspection_blurs.c:178 +#: ../build/lib/darktable/plugins/introspection_retouch.c:261 +#: ../build/lib/darktable/plugins/introspection_retouch.c:410 +msgid "blur radius" +msgstr "poloměr rozostření" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:95 +#: ../build/lib/darktable/plugins/introspection_blurs.c:182 +msgid "diaphragm blades" +msgstr "počet lamel" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:101 +#: ../build/lib/darktable/plugins/introspection_blurs.c:186 +msgid "concavity" +msgstr "vydutost" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:107 +#: ../build/lib/darktable/plugins/introspection_blurs.c:190 +msgid "linearity" +msgstr "linearita" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:113 +#: ../build/lib/darktable/plugins/introspection_blurs.c:194 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:75 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:144 +#: ../build/lib/darktable/plugins/introspection_watermark.c:136 +#: ../build/lib/darktable/plugins/introspection_watermark.c:265 +#: ../src/iop/ashift.c:6059 ../src/libs/masks.c:109 +msgid "rotation" +msgstr "rotace" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:119 +#: ../build/lib/darktable/plugins/introspection_blurs.c:198 +msgid "direction" +msgstr "směr" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:125 +#: ../build/lib/darktable/plugins/introspection_blurs.c:202 +#: ../src/libs/masks.c:110 +msgid "curvature" +msgstr "zakřivení" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:131 +#: ../build/lib/darktable/plugins/introspection_blurs.c:206 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:81 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:148 +#: ../src/iop/colorbalancergb.c:2039 +msgid "offset" +msgstr "offset" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:220 +#: ../src/common/collection.c:625 ../src/gui/preferences.c:826 +#: ../src/gui/presets.c:663 ../src/libs/metadata_view.c:141 +msgid "lens" +msgstr "objektiv" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:221 +msgid "motion" +msgstr "pohyb" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:222 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:567 +#: ../build/lib/darktable/plugins/introspection_lowpass.c:189 +#: ../build/lib/darktable/plugins/introspection_retouch.c:452 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:267 +msgid "gaussian" +msgstr "gaussian" + +#: ../build/lib/darktable/plugins/introspection_borders.c:122 +#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../src/common/collection.c:635 ../src/libs/filtering.c:59 +msgid "aspect ratio" +msgstr "poměr stran" + +#. // portrait / landscape +#: ../build/lib/darktable/plugins/introspection_borders.c:140 +#: ../build/lib/darktable/plugins/introspection_borders.c:281 +#: ../src/iop/flip.c:75 ../src/libs/print_settings.c:2517 +msgid "orientation" +msgstr "orientace" + +#: ../build/lib/darktable/plugins/introspection_borders.c:146 +#: ../build/lib/darktable/plugins/introspection_borders.c:285 +msgid "border size" +msgstr "šířka rámečku" + +#: ../build/lib/darktable/plugins/introspection_borders.c:152 +#: ../build/lib/darktable/plugins/introspection_borders.c:289 +msgid "horizontal offset" +msgstr "horizontální posun" + +#: ../build/lib/darktable/plugins/introspection_borders.c:170 +#: ../build/lib/darktable/plugins/introspection_borders.c:301 +msgid "vertical offset" +msgstr "vertikální posun" + +#: ../build/lib/darktable/plugins/introspection_borders.c:188 +#: ../build/lib/darktable/plugins/introspection_borders.c:313 +msgid "frame line size" +msgstr "šířka čáry rámečku" + +#: ../build/lib/darktable/plugins/introspection_borders.c:194 +#: ../build/lib/darktable/plugins/introspection_borders.c:317 +msgid "frame line offset" +msgstr "posun čáry rámečku" + +#: ../build/lib/darktable/plugins/introspection_borders.c:218 +#: ../build/lib/darktable/plugins/introspection_borders.c:333 +msgid "basis" +msgstr "základ" + +#: ../build/lib/darktable/plugins/introspection_borders.c:347 +#: ../build/lib/darktable/plugins/introspection_borders.c:353 +#: ../src/gui/preferences.c:847 ../src/imageio/format/jpeg.c:604 +#: ../src/iop/ashift.c:6238 ../src/iop/basicadj.c:662 ../src/iop/flip.c:470 +#: ../src/iop/flip.c:472 ../src/iop/levels.c:657 ../src/iop/rgblevels.c:1105 +msgid "auto" +msgstr "auto" + +#: ../build/lib/darktable/plugins/introspection_borders.c:348 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:315 +#: ../src/libs/filters/ratio.c:122 ../src/libs/print_settings.c:2519 +msgid "portrait" +msgstr "portrét (na výšku)" + +#: ../build/lib/darktable/plugins/introspection_borders.c:349 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:311 +#: ../src/libs/filters/ratio.c:124 ../src/libs/print_settings.c:2519 +msgid "landscape" +msgstr "krajina (na šířku)" + +#: ../build/lib/darktable/plugins/introspection_borders.c:354 +#: ../src/iop/relight.c:275 ../src/libs/export.c:1223 +#: ../src/libs/metadata_view.c:151 ../src/libs/print_settings.c:2537 +msgid "width" +msgstr "šířka" + +#: ../build/lib/darktable/plugins/introspection_borders.c:355 +#: ../build/lib/darktable/plugins/introspection_watermark.c:326 +#: ../src/libs/export.c:1229 ../src/libs/metadata_view.c:152 +#: ../src/libs/print_settings.c:2541 +msgid "height" +msgstr "výška" + +#: ../build/lib/darktable/plugins/introspection_borders.c:356 +msgid "shorter" +msgstr "kratší" + +#: ../build/lib/darktable/plugins/introspection_borders.c:357 +msgid "longer" +msgstr "delší" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:42 +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:91 +msgid "avoid colorshift" +msgstr "vyhnout se barevnému posunu" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:48 +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:95 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:117 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:244 +#: ../build/lib/darktable/plugins/introspection_highlights.c:155 +#: ../build/lib/darktable/plugins/introspection_highlights.c:252 +msgid "iterations" +msgstr "iterace" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:109 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:205 +msgid "once" +msgstr "jendou" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:110 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:206 +msgid "twice" +msgstr "dvakrát" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:111 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:207 +msgid "three times" +msgstr "třikrát" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:112 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:208 +msgid "four times" +msgstr "čtyřikrát" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:113 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:209 +msgid "five times" +msgstr "pětkrát" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:61 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:128 +msgid "guide" +msgstr "průvodce" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:67 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:132 +#: ../build/lib/darktable/plugins/introspection_lens.cc:340 +#: ../build/lib/darktable/plugins/introspection_lens.cc:501 +#: ../src/iop/atrous.c:1636 ../src/iop/bilateral.cc:352 ../src/iop/clahe.c:337 +#: ../src/iop/dither.c:762 ../src/iop/lowpass.c:597 ../src/iop/shadhi.c:710 +#: ../src/iop/sharpen.c:435 +msgid "radius" +msgstr "poloměr" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:73 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:136 +#: ../build/lib/darktable/plugins/introspection_highlights.c:137 +#: ../build/lib/darktable/plugins/introspection_highlights.c:240 +#: ../build/lib/darktable/plugins/introspection_lens.cc:334 +#: ../build/lib/darktable/plugins/introspection_lens.cc:497 +#: ../src/iop/bloom.c:372 ../src/iop/denoiseprofile.c:3822 +#: ../src/iop/grain.c:602 ../src/iop/hazeremoval.c:203 +#: ../src/iop/hotpixels.c:467 ../src/iop/nlmeans.c:463 ../src/iop/velvia.c:288 +msgid "strength" +msgstr "síla" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:79 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:140 +msgid "correction mode" +msgstr "režim korekce" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:85 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:144 +msgid "very large chromatic aberration" +msgstr "velmi velká chromatická aberace" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:158 +#: ../src/common/collection.c:1374 ../src/common/color_vocabulary.c:232 +#: ../src/common/colorlabels.c:333 ../src/develop/blend_gui.c:2346 +#: ../src/develop/blend_gui.c:2394 ../src/develop/lightroom.c:887 +#: ../src/gui/gtk.c:3183 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:356 +#: ../src/iop/channelmixer.c:637 ../src/iop/channelmixer.c:647 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/colorzones.c:2499 +#: ../src/iop/temperature.c:1912 ../src/iop/temperature.c:2094 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:260 +#: ../src/libs/histogram.c:2724 +msgid "red" +msgstr "červená" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:159 +#: ../src/common/collection.c:1378 ../src/common/color_vocabulary.c:277 +#: ../src/common/colorlabels.c:335 ../src/develop/blend_gui.c:2352 +#: ../src/develop/blend_gui.c:2400 ../src/develop/lightroom.c:891 +#: ../src/gui/gtk.c:3184 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:361 +#: ../src/iop/channelmixer.c:638 ../src/iop/channelmixer.c:653 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/colorzones.c:2502 +#: ../src/iop/temperature.c:1896 ../src/iop/temperature.c:1914 +#: ../src/iop/temperature.c:2095 ../src/libs/collect.c:1916 +#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2715 +msgid "green" +msgstr "zelená" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:160 +#: ../src/common/collection.c:1380 ../src/common/color_vocabulary.c:324 +#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2358 +#: ../src/develop/blend_gui.c:2406 ../src/develop/lightroom.c:893 +#: ../src/gui/gtk.c:3185 ../src/iop/bilateral.cc:366 +#: ../src/iop/channelmixer.c:639 ../src/iop/channelmixer.c:659 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/colorzones.c:2504 +#: ../src/iop/temperature.c:1916 ../src/iop/temperature.c:2096 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:263 +#: ../src/libs/histogram.c:2706 +msgid "blue" +msgstr "modrá" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:164 +msgid "standard" +msgstr "standard" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:165 +msgid "darken only" +msgstr "pouze ztmavit" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:166 +msgid "brighten only" +msgstr "pouze zesvětlit" + +#: ../build/lib/darktable/plugins/introspection_censorize.c:51 +#: ../build/lib/darktable/plugins/introspection_censorize.c:112 +msgid "input blur radius" +msgstr "vstupní poloměr rozostření" + +#: ../build/lib/darktable/plugins/introspection_censorize.c:57 +#: ../build/lib/darktable/plugins/introspection_censorize.c:116 +msgid "pixellation radius" +msgstr "poloměr pixelace" + +#: ../build/lib/darktable/plugins/introspection_censorize.c:63 +#: ../build/lib/darktable/plugins/introspection_censorize.c:120 +msgid "output blur radius" +msgstr "výstupní poloměr rozostření" + +#: ../build/lib/darktable/plugins/introspection_censorize.c:69 +#: ../build/lib/darktable/plugins/introspection_censorize.c:124 +#: ../build/lib/darktable/plugins/introspection_highlights.c:149 +#: ../build/lib/darktable/plugins/introspection_highlights.c:248 +msgid "noise level" +msgstr "úrověň šumu" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:252 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:258 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:264 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:270 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:276 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:282 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:433 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:437 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:441 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:445 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:449 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:453 +msgid "normalize channels" +msgstr "normalizovat kanály" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:294 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:461 +msgid "F source" +msgstr "F zdroj" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:300 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:465 +msgid "LED source" +msgstr "LED zdroj" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:330 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:485 +msgid "gamut compression" +msgstr "komprese rozsahu" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:336 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:489 +msgid "clip negative RGB from gamut" +msgstr "vystřihnout negativní RGB z rozsahu" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:342 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:493 +msgid "saturation algorithm" +msgstr "algoritmus sytosti" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:507 +msgid "same as pipeline (D50)" +msgstr "stejné jako ve frontě (D50)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:508 +msgid "A (incandescent)" +msgstr "A (žárovka)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:509 +msgid "D (daylight)" +msgstr "D (denní světlo)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:510 +msgid "E (equi-energy)" +msgstr "E (equi-energy)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:511 +msgid "F (fluorescent)" +msgstr "F (fluorescenční)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:512 +msgid "LED (LED light)" +msgstr "LED (LED světlo)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:513 +msgid "Planckian (black body)" +msgstr "Planckian (černé tělo)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:514 +#: ../src/common/iop_order.c:59 +msgid "custom" +msgstr "uživatelský" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:515 +msgid "(AI) detect from image surfaces..." +msgstr "(UI) detekovat z povrchů obrazu..." + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:516 +msgid "(AI) detect from image edges..." +msgstr "(UI) detekce z okrajů obrazu..." + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:517 +msgid "as shot in camera" +msgstr "jako snímek z fotoaparátu" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:522 +msgid "F1 (Daylight 6430 K) – medium CRI" +msgstr "F1 (Denní světlo 6430 K) – střední CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:523 +msgid "F2 (Cool White 4230 K) – medium CRI" +msgstr "F2 (Studená bílá 4230 K) – střední CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:524 +msgid "F3 (White 3450 K) – medium CRI" +msgstr "F3 (Bílá 3450 K) – střední CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:525 +msgid "F4 (Warm White 2940 K) – medium CRI" +msgstr "F4 (Teplá bílá 2940 K) – střední CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:526 +msgid "F5 (Daylight 6350 K) – medium CRI" +msgstr "F5 (Denní světlo 6350 K) – střední CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:527 +msgid "F6 (Lite White 4150 K) – medium CRI" +msgstr "F6 (Lehká bílá 4150 K) – střední CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:528 +msgid "F7 (D65 simulator 6500 K) – high CRI" +msgstr "F7 (D65 simulátor 6500 K) – vysoké CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:529 +msgid "F8 (D50 simulator 5000 K) – high CRI" +msgstr "F8 (D50 simulátor 5000 K) – vysoké CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:530 +msgid "F9 (Cool White Deluxe 4150 K) – high CRI" +msgstr "F9 (Studená bílá deluxe 4150 K) – vysoké CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:531 +msgid "F10 (Tuned RGB 5000 K) – low CRI" +msgstr "F10 (Vyladěné RGB 5000 K) – nízké CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:532 +msgid "F11 (Tuned RGB 4000 K) – low CRI" +msgstr "F11 (Vyladěné RGB 4000 K) – nízké CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:533 +msgid "F12 (Tuned RGB 3000 K) – low CRI" +msgstr "F12 (Vyladěné RGB 3000 K) – nízké CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:538 +msgid "B1 (Blue 2733 K)" +msgstr "B1 (Modrá 2733 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:539 +msgid "B2 (Blue 2998 K)" +msgstr "B2 (Modrá 2998 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:540 +msgid "B3 (Blue 4103 K)" +msgstr "B3 (Modrá 4103 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:541 +msgid "B4 (Blue 5109 K)" +msgstr "B4 (Modrá 5109 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:542 +msgid "B5 (Blue 6598 K)" +msgstr "B5 (Modrá 6598 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:543 +msgid "BH1 (Blue-Red hybrid 2851 K)" +msgstr "BH1 (Modrá-Červená hybrid 2851 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:544 +msgid "RGB1 (RGB 2840 K)" +msgstr "RGB1 (RGB 2840 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:545 +msgid "V1 (Violet 2724 K)" +msgstr "V1 (Fialová 2724 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:546 +msgid "V2 (Violet 4070 K)" +msgstr "V2 (Fialová 4070 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:551 +msgid "linear Bradford (ICC v4)" +msgstr "lineární Bradford (ICC v4)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:552 +msgid "CAT16 (CIECAM16)" +msgstr "CAT16 (CIECAM16)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:553 +msgid "non-linear Bradford" +msgstr "nelineární Bradford" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:554 +msgid "XYZ" +msgstr "XYZ" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:555 +msgid "none (bypass)" +msgstr "není (bypass)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:560 +msgid "version 1 (2020)" +msgstr "verze 1 (2020)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:561 +msgid "version 2 (2021)" +msgstr "verze 2 (2021)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:562 +msgid "version 3 (Apr 2021)" +msgstr "verze 3 (Apr 2021)" + +#: ../build/lib/darktable/plugins/introspection_clipping.c:142 +#: ../build/lib/darktable/plugins/introspection_clipping.c:303 +#: ../build/lib/darktable/plugins/introspection_crop.c:61 +#: ../build/lib/darktable/plugins/introspection_crop.c:134 +#: ../src/gui/gtk.c:1234 ../src/iop/atrous.c:1632 +msgid "left" +msgstr "levý" + +#: ../build/lib/darktable/plugins/introspection_clipping.c:148 +#: ../build/lib/darktable/plugins/introspection_clipping.c:307 +#: ../build/lib/darktable/plugins/introspection_crop.c:67 +#: ../build/lib/darktable/plugins/introspection_crop.c:138 +#: ../src/gui/accelerators.c:131 ../src/gui/gtk.c:1240 +msgid "top" +msgstr "horní" + +#: ../build/lib/darktable/plugins/introspection_clipping.c:154 +#: ../build/lib/darktable/plugins/introspection_clipping.c:311 +#: ../build/lib/darktable/plugins/introspection_crop.c:73 +#: ../build/lib/darktable/plugins/introspection_crop.c:142 +#: ../src/gui/gtk.c:1237 ../src/iop/atrous.c:1631 +msgid "right" +msgstr "pravý" + +#: ../build/lib/darktable/plugins/introspection_clipping.c:160 +#: ../build/lib/darktable/plugins/introspection_clipping.c:315 +#: ../build/lib/darktable/plugins/introspection_crop.c:79 +#: ../build/lib/darktable/plugins/introspection_crop.c:146 +#: ../src/gui/accelerators.c:132 ../src/gui/gtk.c:1243 +msgid "bottom" +msgstr "dole" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:114 +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:203 +msgid "input saturation" +msgstr "vstupní sytost" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:126 +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:211 +msgid "contrast fulcrum" +msgstr "opěrný bod kontrastu" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:132 +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:215 +msgid "output saturation" +msgstr "výstupní sytost" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:229 +msgid "lift, gamma, gain (ProPhoto RGB)" +msgstr "zvednutí, gama, zisk (ProPhoto RGB)" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:230 +msgid "slope, offset, power (ProPhoto RGB)" +msgstr "sklon, offset, výkon (ProPhoto RGB)" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:231 +msgid "lift, gamma, gain (sRGB)" +msgstr "zvednutí, gama, zisk (sRGB)" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:232 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:250 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:268 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:286 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:465 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:477 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:489 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:501 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 +#: ../src/develop/blend_gui.c:2372 ../src/develop/blend_gui.c:2420 +#: ../src/iop/atrous.c:1801 ../src/iop/channelmixerrgb.c:4525 +#: ../src/iop/channelmixerrgb.c:4641 ../src/iop/colorbalancergb.c:1966 +#: ../src/iop/colorzones.c:2645 ../src/iop/nlmeans.c:471 +msgid "chroma" +msgstr "chroma" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:238 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:256 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:274 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:292 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:469 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:481 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:493 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:505 +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:155 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:257 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:87 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:152 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:61 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:73 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:134 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:142 +#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2365 +#: ../src/develop/blend_gui.c:2427 ../src/iop/channelmixer.c:634 +#: ../src/iop/channelmixerrgb.c:4518 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/colorbalance.c:2017 ../src/iop/colorize.c:343 +#: ../src/iop/colorreconstruction.c:1249 ../src/iop/colorzones.c:2646 +msgid "hue" +msgstr "odstín" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:298 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:509 +msgid "shadows fall-off" +msgstr "stíny klesají" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:304 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:513 +msgid "white fulcrum" +msgstr "bílý opěrný bod" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:310 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:517 +msgid "highlights fall-off" +msgstr "světla klesají" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:316 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:358 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:388 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:521 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:549 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:569 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:156 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:297 +#: ../src/iop/bilat.c:479 ../src/iop/colorbalance.c:2074 +#: ../src/iop/negadoctor.c:934 ../src/iop/shadhi.c:706 +#: ../src/iop/splittoning.c:503 +msgid "shadows" +msgstr "stíny" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:322 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:346 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:376 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:525 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:541 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:561 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:180 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:313 +#: ../src/iop/bilat.c:473 ../src/iop/colorbalance.c:2076 +#: ../src/iop/monochrome.c:583 ../src/iop/shadhi.c:707 +#: ../src/iop/splittoning.c:510 +msgid "highlights" +msgstr "světla" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:328 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:529 +msgid "global chroma" +msgstr "globální chroma" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:334 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:352 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:382 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:533 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:545 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:565 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:168 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:305 +#: ../src/iop/colorbalance.c:2075 +msgid "mid-tones" +msgstr "střední-tony" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:340 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:537 +#: ../src/iop/filmic.c:1601 +msgid "global saturation" +msgstr "globální sytost" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:364 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:553 +msgid "hue shift" +msgstr "posun odstínu" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:370 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:557 +msgid "global brilliance" +msgstr "globální lesk" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:394 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:573 +msgid "mask middle-gray fulcrum" +msgstr "maska středošedý opěrný bod" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:400 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:577 +msgid "global vibrance" +msgstr "globální živost" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:406 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:581 +msgid "contrast gray fulcrum" +msgstr "šedý opěrný bod kontrastu" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:412 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:585 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:116 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:237 +#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:637 ../src/iop/bilat.c:468 +#: ../src/iop/colisa.c:298 ../src/iop/colorbalance.c:1922 +#: ../src/iop/colorbalance.c:1928 ../src/iop/filmic.c:1573 +#: ../src/iop/filmicrgb.c:4615 ../src/iop/lowpass.c:599 +msgid "contrast" +msgstr "kontrast" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:418 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:589 +msgid "saturation formula" +msgstr "saturační vzorec" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:603 +msgid "JzAzBz (2021)" +msgstr "JzAzBz (2021)" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:604 +msgid "darktable UCS (2022)" +msgstr "darktable UCS (2022)" + +#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:54 +#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:121 +msgid "green-magenta contrast" +msgstr "kontrast zelená-purpurová" + +#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:66 +#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:129 +msgid "blue-yellow contrast" +msgstr "kontrast modrá-žlutá" + +#: ../build/lib/darktable/plugins/introspection_colorin.c:150 +#: ../build/lib/darktable/plugins/introspection_colorin.c:233 +msgid "gamut clipping" +msgstr "ořezávání rozsahu" + +#: ../build/lib/darktable/plugins/introspection_colorin.c:304 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:312 +#: ../src/common/colorspaces.c:1410 ../src/common/colorspaces.c:1700 +#: ../src/libs/print_settings.c:1356 +msgid "sRGB" +msgstr "sRGB" + +#: ../build/lib/darktable/plugins/introspection_colorin.c:305 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:311 +#: ../src/common/colorspaces.c:1421 ../src/common/colorspaces.c:1702 +#: ../src/libs/print_settings.c:1363 +msgid "Adobe RGB (compatible)" +msgstr "Adobe RGB (kompatabilní)" + +#: ../build/lib/darktable/plugins/introspection_colorin.c:306 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 +#: ../src/common/colorspaces.c:1428 ../src/common/colorspaces.c:1704 +msgid "linear Rec709 RGB" +msgstr "lineární Rec709 RGB" + +#: ../build/lib/darktable/plugins/introspection_colorin.c:307 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:206 +#: ../src/common/colorspaces.c:1442 ../src/common/colorspaces.c:1706 +msgid "linear Rec2020 RGB" +msgstr "lineární Rec2020 RGB" + +#: ../build/lib/darktable/plugins/introspection_colorize.c:65 +#: ../build/lib/darktable/plugins/introspection_colorize.c:128 +msgid "source mix" +msgstr "zdrojový mix" + +#: ../build/lib/darktable/plugins/introspection_colormapping.c:94 +#: ../build/lib/darktable/plugins/introspection_colormapping.c:249 +msgid "number of clusters" +msgstr "počet skupin" + +#: ../build/lib/darktable/plugins/introspection_colormapping.c:100 +#: ../build/lib/darktable/plugins/introspection_colormapping.c:253 +msgid "color dominance" +msgstr "barevná dominance" + +#: ../build/lib/darktable/plugins/introspection_colormapping.c:106 +#: ../build/lib/darktable/plugins/introspection_colormapping.c:257 +msgid "histogram equalization" +msgstr "vyrovnání histogramu" + +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:62 +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:127 +#: ../build/lib/darktable/plugins/introspection_tonemap.cc:45 +#: ../build/lib/darktable/plugins/introspection_tonemap.cc:92 +#: ../src/iop/shadhi.c:721 +msgid "spatial extent" +msgstr "prostorový rozsah" + +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:68 +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:131 +msgid "range extent" +msgstr "rozšíření rozsahu" + +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:154 +#: ../src/iop/channelmixerrgb.c:4737 +msgid "saturated colors" +msgstr "syté barvy" + +#: ../build/lib/darktable/plugins/introspection_colorzones.c:78 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:193 +msgid "select by" +msgstr "vybrat podle" + +#. mix slider +#: ../build/lib/darktable/plugins/introspection_colorzones.c:138 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:233 +#: ../build/lib/darktable/plugins/introspection_soften.c:66 +#: ../build/lib/darktable/plugins/introspection_soften.c:121 +#: ../src/iop/atrous.c:1835 +msgid "mix" +msgstr "mix" + +#: ../build/lib/darktable/plugins/introspection_colorzones.c:144 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:237 +msgid "process mode" +msgstr "režim zpracování" + +#: ../build/lib/darktable/plugins/introspection_colorzones.c:255 +#: ../src/develop/blend_gui.c:2310 ../src/iop/channelmixer.c:636 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/colorchecker.c:1453 +#: ../src/iop/colorize.c:362 ../src/iop/colorzones.c:2644 +#: ../src/iop/exposure.c:1257 +msgid "lightness" +msgstr "světlost" + +#: ../build/lib/darktable/plugins/introspection_colorzones.c:267 +#: ../src/iop/atrous.c:1410 ../src/iop/atrous.c:1414 +#: ../src/iop/denoiseprofile.c:3531 ../src/iop/rawdenoise.c:771 +#: ../src/iop/sigmoid.c:292 +msgid "smooth" +msgstr "plynulé" + +#: ../build/lib/darktable/plugins/introspection_colorzones.c:268 +msgid "strong" +msgstr "silný" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:47 +#: ../build/lib/darktable/plugins/introspection_defringe.c:102 +msgid "edge detection radius" +msgstr "rádius detekce hran" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:53 +#: ../build/lib/darktable/plugins/introspection_defringe.c:106 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:230 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:435 +#: ../src/iop/atrous.c:1695 ../src/iop/bloom.c:368 +#: ../src/iop/colorreconstruction.c:1245 ../src/iop/hotpixels.c:463 +#: ../src/iop/sharpen.c:444 +msgid "threshold" +msgstr "práh" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:59 +#: ../build/lib/darktable/plugins/introspection_defringe.c:110 +msgid "operation mode" +msgstr "operační mód" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:124 +msgid "global average (fast)" +msgstr "globální průměr (rychlý)" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:125 +msgid "local average (slow)" +msgstr "místní průměr (pomalý)" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:126 +msgid "static threshold (fast)" +msgstr "statický práh (rychlý)" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:90 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:163 +msgid "match greens" +msgstr "porovnání zelených" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:96 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:167 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:141 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:260 +msgid "edge threshold" +msgstr "práh hran" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:102 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:171 +msgid "color smoothing" +msgstr "vyhlazení barev" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:108 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:175 +#: ../build/lib/darktable/plugins/introspection_dither.c:73 +#: ../build/lib/darktable/plugins/introspection_dither.c:152 +#: ../build/lib/darktable/plugins/introspection_highlights.c:119 +#: ../build/lib/darktable/plugins/introspection_highlights.c:228 +msgid "method" +msgstr "metoda" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:114 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:179 +msgid "LMMSE refine" +msgstr "LMMSE vylepšení" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:120 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:183 +msgid "dual threshold" +msgstr "duální práh" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:197 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:204 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:197 +msgid "disabled" +msgstr "zakázáno" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:198 +msgid "local average" +msgstr "místní průměr" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:199 +msgid "full average" +msgstr "úplný průměr" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:200 +msgid "full and local average" +msgstr "plný a místní průměr" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:213 +msgid "PPG" +msgstr "PPG" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:214 +msgid "AMaZE" +msgstr "AMaZE" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:215 +msgid "VNG4" +msgstr "VNG4" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:216 +msgid "RCD" +msgstr "RCD" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:217 +msgid "LMMSE" +msgstr "LMMSE" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:218 +msgid "RCD + VNG4" +msgstr "RCD + VNG4" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:219 +msgid "AMaZE + VNG4" +msgstr "AMaZE + VNG4" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:220 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:227 +msgid "passthrough (monochrome)" +msgstr "průchod (monochromatický)" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:221 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:228 +msgid "photosite color (debug)" +msgstr "barva fotostránky (zkouška)" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:222 +msgid "VNG" +msgstr "VNG" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:223 +msgid "Markesteijn 1-pass" +msgstr "Markesteijn 1 průběh" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:224 +msgid "Markesteijn 3-pass" +msgstr "Markesteijn 3 průběhy" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:225 +msgid "frequency domain chroma" +msgstr "chroma ve frekvenční oblasti" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:226 +msgid "Markesteijn 3-pass + VNG" +msgstr "Markesteijn 3 průběhy + VNG" + +#. history +#: ../build/lib/darktable/plugins/introspection_demosaic.c:232 +#: ../src/common/collection.c:1394 ../src/libs/collect.c:1863 +#: ../src/libs/filters/history.c:38 +msgid "basic" +msgstr "základní" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:233 +msgid "median" +msgstr "medián" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:234 +msgid "3x median" +msgstr "3x medián" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:235 +msgid "refine & medians" +msgstr "upřesnit & mediány" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:236 +msgid "2x refine + medians" +msgstr "2x upřesnění + mediány" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:125 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:300 +#: ../build/lib/darktable/plugins/introspection_nlmeans.c:48 +#: ../build/lib/darktable/plugins/introspection_nlmeans.c:109 +msgid "patch size" +msgstr "velikost záplaty" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:131 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:304 +msgid "search radius" +msgstr "rádius vyhledávání" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:143 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:312 +msgid "preserve shadows" +msgstr "zachovat stíny" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:149 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:316 +msgid "bias correction" +msgstr "korekce zkreslení" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:155 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:320 +msgid "scattering" +msgstr "rozptylování" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:161 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:324 +msgid "central pixel weight" +msgstr "středová váha bodu" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:167 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:328 +msgid "adjust autoset parameters" +msgstr "upravit parametry automatického nastavení" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:239 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:376 +msgid "whitebalance-adaptive transform" +msgstr "adaptivní transformace vyvážení bílé" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:245 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:380 +msgid "fix various bugs in algorithm" +msgstr "opravit různé chyby v algoritmu" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:251 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:384 +msgid "upgrade profiled transform" +msgstr "upgradovat profilovanou transformaci" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:257 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:388 +#: ../src/libs/colorpicker.c:659 +msgid "color mode" +msgstr "barevný režim" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:402 +msgid "non-local means" +msgstr "nelokální prostředky" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:403 +msgid "non-local means auto" +msgstr "nelokální prostředky auto" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:404 +msgid "wavelets" +msgstr "vlnky" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:405 +msgid "wavelets auto" +msgstr "vlnky auto" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:406 +msgid "compute variance" +msgstr "vypočítat rozptyl" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:410 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:292 +msgid "RGB" +msgstr "RGB" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:411 +msgid "Y0U0V0" +msgstr "Y0U0V0" + +#. two more sharpness (standard & strong) +#: ../build/lib/darktable/plugins/introspection_diffuse.c:123 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:248 +#: ../src/iop/atrous.c:1685 ../src/iop/diffuse.c:657 ../src/iop/highpass.c:376 +msgid "sharpness" +msgstr "ostrost" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:129 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:252 +msgid "radius span" +msgstr "poloměr rozsahu" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:135 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:256 +msgid "edge sensitivity" +msgstr "citlivost hran" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:147 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:264 +msgid "1st order anisotropy" +msgstr "anizotropie 1. řádu" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:153 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:268 +msgid "2nd order anisotropy" +msgstr "anizotropie 2. řádu" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:159 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:272 +msgid "3rd order anisotropy" +msgstr "anizotropie 3. řádu" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:165 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:276 +msgid "4th order anisotropy" +msgstr "anizotropie 4. řádu" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:171 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:280 +msgid "luminance masking threshold" +msgstr "práh maskování jasu" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:177 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:284 +msgid "1st order speed" +msgstr "rychlost 1. řádu" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:183 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:288 +msgid "2nd order speed" +msgstr "rychlost 2. řádu" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:189 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:292 +msgid "3rd order speed" +msgstr "rychlost 3. řádu" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:195 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:296 +msgid "4th order speed" +msgstr "rchlost 4. řádu" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:201 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:300 +msgid "central radius" +msgstr "středový poloměr" + +#: ../build/lib/darktable/plugins/introspection_dither.c:103 +#: ../build/lib/darktable/plugins/introspection_dither.c:172 +msgid "damping" +msgstr "tlumení" + +#: ../build/lib/darktable/plugins/introspection_dither.c:190 +msgid "random" +msgstr "náhodně" + +#: ../build/lib/darktable/plugins/introspection_dither.c:191 +msgid "Floyd-Steinberg 1-bit B&W" +msgstr "Floyd-Steinberg 1-bit B&W" + +#: ../build/lib/darktable/plugins/introspection_dither.c:192 +msgid "Floyd-Steinberg 1-bit RGB" +msgstr "Floyd-Steinberg 1-bit RGB" + +#: ../build/lib/darktable/plugins/introspection_dither.c:193 +msgid "Floyd-Steinberg 2-bit gray" +msgstr "Floyd-Steinberg 2-bit gray" + +#: ../build/lib/darktable/plugins/introspection_dither.c:194 +msgid "Floyd-Steinberg 2-bit RGB" +msgstr "Floyd-Steinberg 2-bit RGB" + +#: ../build/lib/darktable/plugins/introspection_dither.c:195 +msgid "Floyd-Steinberg 4-bit gray" +msgstr "Floyd-Steinberg 4-bity šedá" + +#: ../build/lib/darktable/plugins/introspection_dither.c:196 +msgid "Floyd-Steinberg 4-bit RGB" +msgstr "Floyd-Steinberg 4-bit RGB" + +#: ../build/lib/darktable/plugins/introspection_dither.c:197 +msgid "Floyd-Steinberg 8-bit RGB" +msgstr "Floyd-Steinberg 8-bitů RGB" + +#: ../build/lib/darktable/plugins/introspection_dither.c:198 +msgid "Floyd-Steinberg 16-bit RGB" +msgstr "Floyd-Steinberg 16-bitů RGB" + +#: ../build/lib/darktable/plugins/introspection_dither.c:199 +msgid "Floyd-Steinberg auto" +msgstr "Floyd-Steinberg auto" + +#: ../build/lib/darktable/plugins/introspection_dither.c:200 +msgid "posterize 2 levels per channel" +msgstr "posterizovat 2 úrovně na kanál" + +#: ../build/lib/darktable/plugins/introspection_dither.c:201 +msgid "posterize 3 levels per channel" +msgstr "posterizovat 3 úrovně na kanál" + +#: ../build/lib/darktable/plugins/introspection_dither.c:202 +msgid "posterize 4 levels per channel" +msgstr "posterizovat 4 úrovně na kanál" + +#: ../build/lib/darktable/plugins/introspection_dither.c:203 +msgid "posterize 5 levels per channel" +msgstr "posterizovat 5 úrovní na kanál" + +#: ../build/lib/darktable/plugins/introspection_dither.c:204 +msgid "posterize 6 levels per channel" +msgstr "posterizovat 6 úrovní na kanál" + +#: ../build/lib/darktable/plugins/introspection_dither.c:205 +msgid "posterize 7 levels per channel" +msgstr "posterizovat 7 úrovní na kanál" + +#: ../build/lib/darktable/plugins/introspection_dither.c:206 +msgid "posterize 8 levels per channel" +msgstr "posterizovat 8 úrovní na kanál" + +#: ../build/lib/darktable/plugins/introspection_exposure.c:79 +#: ../build/lib/darktable/plugins/introspection_exposure.c:146 +msgid "percentile" +msgstr "percentil" + +#: ../build/lib/darktable/plugins/introspection_exposure.c:85 +#: ../build/lib/darktable/plugins/introspection_exposure.c:150 +msgid "target level" +msgstr "cílová úroveň" + +#: ../build/lib/darktable/plugins/introspection_exposure.c:91 +#: ../build/lib/darktable/plugins/introspection_exposure.c:154 +msgid "compensate exposure bias" +msgstr "kompenzace zkreslení expozice" + +#: ../build/lib/darktable/plugins/introspection_exposure.c:168 +#: ../build/lib/darktable/plugins/introspection_levels.c:160 +msgid "manual" +msgstr "ruční" + +#: ../build/lib/darktable/plugins/introspection_exposure.c:169 +#: ../build/lib/darktable/plugins/introspection_levels.c:161 +msgid "automatic" +msgstr "automatický" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:212 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:423 +#: ../src/iop/filmic.c:1514 +msgid "middle gray luminance" +msgstr "středně šedý jas" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:218 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:427 +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:97 +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:166 +#: ../src/iop/filmic.c:1539 +msgid "black relative exposure" +msgstr "relativní expozice černá" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:224 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:431 +#: ../src/iop/filmic.c:1526 +msgid "white relative exposure" +msgstr "relativní expozice bílá" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:236 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:439 +msgid "transition" +msgstr "přechod" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:242 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:443 +msgid "bloom ↔ reconstruct" +msgstr "zasněný vzhled ↔ rekonstruovat" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:248 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:447 +msgid "gray ↔ colorful details" +msgstr "šedá ↔ barevné detaily" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:254 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:451 +msgid "structure ↔ texture" +msgstr "struktura ↔ textura" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:260 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:455 +msgid "dynamic range scaling" +msgstr "škálování dynamického rozsahu" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:266 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:459 +#: ../src/iop/filmic.c:1671 +msgid "target middle gray" +msgstr "cíl středně šedá" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:272 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:463 +#: ../src/iop/filmic.c:1662 +msgid "target black luminance" +msgstr "cílový černý jas" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:278 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:467 +#: ../src/iop/filmic.c:1680 +msgid "target white luminance" +msgstr "cílová bílá svítivost" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:284 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:471 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:69 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:140 +#: ../src/libs/masks.c:107 +msgid "hardness" +msgstr "tvrdost" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:302 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:483 +#: ../src/iop/filmic.c:1611 ../src/iop/filmicrgb.c:4793 +msgid "extreme luminance saturation" +msgstr "extrémní nasycení jasu" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:308 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:487 +msgid "shadows ↔ highlights balance" +msgstr "vyvážení stíny ↔ světla" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:314 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:491 +msgid "add noise in highlights" +msgstr "přidat šum ve světlech" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:320 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:495 +msgid "preserve chrominance" +msgstr "zachovat chrominanci" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:326 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:499 +msgid "color science" +msgstr "věda o barvách" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:332 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:503 +msgid "auto adjust hardness" +msgstr "automatické nastavení tvrdosti" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:338 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:507 +msgid "use custom middle-gray values" +msgstr "použijte vlastní hodnoty střední šedé" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:344 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:511 +msgid "iterations of high-quality reconstruction" +msgstr "iterace vysoce kvalitní rekonstrukce" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:350 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:515 +msgid "type of noise" +msgstr "druh šumu" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:356 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:519 +msgid "contrast in shadows" +msgstr "kontrast ve stínech" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:362 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:523 +msgid "contrast in highlights" +msgstr "kontrast ve světlech" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:368 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:527 +msgid "compensate output ICC profile black point" +msgstr "kompenzovat černý bod výstupního profilu ICC" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:374 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:531 +msgid "spline handling" +msgstr "zpracování dělené čáry" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:380 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:535 +msgid "enable highlight reconstruction" +msgstr "povolit rekonstrukci světel" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:549 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:371 +#: ../src/common/variables.c:714 ../src/develop/imageop_gui.c:209 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "no" +msgstr "ne" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:551 +msgid "luminance Y" +msgstr "jas Y" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:552 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:384 +msgid "RGB power norm" +msgstr "RGB norma výkonu" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:553 +msgid "RGB euclidean norm (legacy)" +msgstr "RGB euklidovská norma (starší)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:554 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:383 +msgid "RGB euclidean norm" +msgstr "RGB euklidovská norma" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:558 +msgid "v3 (2019)" +msgstr "v3 (2019)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:559 +msgid "v4 (2020)" +msgstr "v4 (2020)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:560 +msgid "v5 (2021)" +msgstr "v5 (2021)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:561 +msgid "v6 (2022)" +msgstr "v6 (2022)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:562 +msgid "v7 (2023)" +msgstr "v7 (2023)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:566 +msgid "uniform" +msgstr "jednotný" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:568 +msgid "poissonian" +msgstr "poissonovský" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:572 +msgid "hard" +msgstr "tvrdý" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:573 +msgid "soft" +msgstr "měkký" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:574 +msgid "safe" +msgstr "bezpečný" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:578 +msgid "v1 (2019)" +msgstr "v1 (2019)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:579 +msgid "v2 (2020)" +msgstr "v2 (2020)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:580 +msgid "v3 (2021)" +msgstr "v3 (2021)" + +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:60 +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:125 +msgid "bias" +msgstr "posun" + +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:66 +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:129 +msgid "target" +msgstr "cíl" + +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:151 +msgid "reinhard" +msgstr "reinhard" + +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:152 +#: ../src/iop/filmic.c:162 +msgid "filmic" +msgstr "filmový" + +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:153 +msgid "drago" +msgstr "drago" + +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:63 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:136 +msgid "density" +msgstr "hustota" + +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 +#: ../src/develop/blend_gui.c:2326 ../src/iop/basicadj.c:654 +#: ../src/iop/channelmixer.c:635 ../src/iop/colisa.c:300 +#: ../src/iop/colorbalance.c:2034 ../src/iop/colorbalancergb.c:1990 +#: ../src/iop/colorchecker.c:1488 ../src/iop/colorcontrast.c:82 +#: ../src/iop/colorcorrection.c:268 ../src/iop/colorize.c:356 +#: ../src/iop/lowpass.c:601 ../src/iop/soften.c:368 ../src/iop/velvia.c:75 +#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:1058 +msgid "saturation" +msgstr "sytost" + +#: ../build/lib/darktable/plugins/introspection_grain.c:58 +#: ../build/lib/darktable/plugins/introspection_grain.c:117 +#: ../src/iop/bilat.c:460 +msgid "coarseness" +msgstr "hrubost" + +#: ../build/lib/darktable/plugins/introspection_grain.c:70 +#: ../build/lib/darktable/plugins/introspection_grain.c:125 +#: ../build/lib/darktable/plugins/introspection_velvia.c:44 +#: ../build/lib/darktable/plugins/introspection_velvia.c:91 +msgid "mid-tones bias" +msgstr "zkreslení středních tónů" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:143 +#: ../build/lib/darktable/plugins/introspection_highlights.c:244 +#: ../src/views/darkroom.c:2245 +msgid "clipping threshold" +msgstr "práh oříznutí" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:161 +#: ../build/lib/darktable/plugins/introspection_highlights.c:256 +msgid "diameter of reconstruction" +msgstr "průměr rekonstrukce" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:167 +#: ../build/lib/darktable/plugins/introspection_highlights.c:260 +msgid "candidating" +msgstr "kandidující" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:173 +#: ../build/lib/darktable/plugins/introspection_highlights.c:264 +msgid "combine" +msgstr "kombinovat" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:179 +#: ../build/lib/darktable/plugins/introspection_highlights.c:268 +msgid "rebuild" +msgstr "znovu sestavit" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:185 +#: ../build/lib/darktable/plugins/introspection_highlights.c:272 +msgid "inpaint a flat color" +msgstr "namalovat plochou barvu" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:286 +msgid "inpaint opposed" +msgstr "malovat proti" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:287 +msgid "reconstruct in LCh" +msgstr "rekonstruovat v LCh" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:288 +msgid "clip highlights" +msgstr "vystřihnout světla" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:289 +msgid "segmentation based" +msgstr "na základě segmentace" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:290 +msgid "guided laplacians" +msgstr "vodící čáry" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:291 +msgid "reconstruct color" +msgstr "rekonstruovat barvu" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:295 +msgid "2 px" +msgstr "2 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:296 +msgid "4 px" +msgstr "4 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:297 +msgid "8 px" +msgstr "8 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:298 +msgid "16 px" +msgstr "16 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:299 +msgid "32 px" +msgstr "32 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:300 +msgid "64 px" +msgstr "64 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:301 +msgid "128 px (slow)" +msgstr "128 px (pomalé)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:302 +msgid "256 px (slow)" +msgstr "256 px (pomalé)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:303 +msgid "512 px (very slow)" +msgstr "512 px (velmi pomalé)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:304 +msgid "1024 px (very slow)" +msgstr "1024 px (velmi pomalé)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:305 +msgid "2048 px (insanely slow)" +msgstr "2048 px (velice pomalé)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:306 +msgid "4096 px (insanely slow)" +msgstr "4096 px (velice pomalé)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:312 +msgid "flat generic" +msgstr "plochý generický" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:313 +msgid "small segments" +msgstr "malé segmenty" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:314 +msgid "large segments" +msgstr "velké segmenty" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:315 +msgid "flat small segments" +msgstr "plochý malé segmenty" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:316 +msgid "flat large segments" +msgstr "plochý velké segmenty" + +#: ../build/lib/darktable/plugins/introspection_highpass.c:44 +#: ../build/lib/darktable/plugins/introspection_highpass.c:91 +msgid "contrast boost" +msgstr "zesílení kontrastu" + +#: ../build/lib/darktable/plugins/introspection_hotpixels.c:59 +#: ../build/lib/darktable/plugins/introspection_hotpixels.c:116 +msgid "mark fixed pixels" +msgstr "označit pevné body" + +#: ../build/lib/darktable/plugins/introspection_hotpixels.c:65 +#: ../build/lib/darktable/plugins/introspection_hotpixels.c:120 +msgid "detect by 3 neighbors" +msgstr "detekovat podle 3 sousedních" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:190 +#: ../build/lib/darktable/plugins/introspection_lens.cc:401 +msgid "correction method" +msgstr "korekční metoda" + +#. Page CORRECTIONS +#: ../build/lib/darktable/plugins/introspection_lens.cc:196 +#: ../build/lib/darktable/plugins/introspection_lens.cc:405 +#: ../src/iop/negadoctor.c:919 +msgid "corrections" +msgstr "korekce" + +#. mode choice +#: ../build/lib/darktable/plugins/introspection_lens.cc:202 +#: ../build/lib/darktable/plugins/introspection_lens.cc:409 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:128 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:219 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:51 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:118 +#: ../src/develop/blend_gui.c:3546 ../src/iop/bilat.c:438 +#: ../src/iop/colorbalance.c:1884 ../src/iop/denoiseprofile.c:3810 +#: ../src/iop/exposure.c:1175 ../src/iop/levels.c:700 +#: ../src/iop/profile_gamma.c:682 ../src/libs/copy_history.c:399 +#: ../src/libs/export.c:1376 ../src/libs/image.c:666 +#: ../src/libs/print_settings.c:2875 ../src/libs/styles.c:850 +#: ../src/views/darkroom.c:2226 +msgid "mode" +msgstr "režim" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:238 +#: ../build/lib/darktable/plugins/introspection_lens.cc:433 +#: ../src/iop/lens.cc:4474 +msgid "target geometry" +msgstr "cílová geometrie" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:268 +#: ../build/lib/darktable/plugins/introspection_lens.cc:453 +msgid "TCA overwrite" +msgstr "TCA přepis" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:274 +#: ../build/lib/darktable/plugins/introspection_lens.cc:298 +#: ../build/lib/darktable/plugins/introspection_lens.cc:457 +#: ../build/lib/darktable/plugins/introspection_lens.cc:473 +msgid "TCA red" +msgstr "TCA červená" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:280 +#: ../build/lib/darktable/plugins/introspection_lens.cc:304 +#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:477 +msgid "TCA blue" +msgstr "TCA modrá" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:286 +#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +msgid "distortion" +msgstr "zkreslení" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:292 +#: ../build/lib/darktable/plugins/introspection_lens.cc:469 +#: ../src/iop/vignette.c:114 +msgid "vignetting" +msgstr "vinětace" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:310 +#: ../build/lib/darktable/plugins/introspection_lens.cc:481 +msgid "scale fine-tune" +msgstr "jemné doladění měřítka" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:322 +#: ../build/lib/darktable/plugins/introspection_lens.cc:489 +msgid "image scale" +msgstr "měřítko obrázku" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:346 +#: ../build/lib/darktable/plugins/introspection_lens.cc:505 +msgid "steepness" +msgstr "strmost" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:527 +msgid "embedded metadata" +msgstr "vložená metadata" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:528 +msgid "Lensfun database" +msgstr "Databáze Lensfun" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:529 +msgid "only manual vignette" +msgstr "pouze ruční vinětace" + +#. get nice text for bounds +#. Side-border hide/show +#: ../build/lib/darktable/plugins/introspection_lens.cc:534 +#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2592 +#: ../src/gui/accelerators.c:2674 ../src/gui/gtk.c:1282 ../src/gui/gtk.c:3182 +#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3713 +#: ../src/iop/rawdenoise.c:909 ../src/libs/collect.c:3413 +#: ../src/libs/filtering.c:1521 ../src/libs/filters/colors.c:157 +#: ../src/libs/filters/colors.c:265 ../src/libs/filters/rating.c:211 +msgid "all" +msgstr "vše" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:535 +msgid "distortion & TCA" +msgstr "zkreslení a TCA" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:536 +msgid "distortion & vignetting" +msgstr "zkreslení a vinětace" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:537 +msgid "TCA & vignetting" +msgstr "TCA a vinětace" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:538 +msgid "only distortion" +msgstr "pouze zkreslení" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:539 +msgid "only TCA" +msgstr "pouze TCA" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:540 +msgid "only vignetting" +msgstr "pouze vinětace" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:544 +#: ../src/libs/modulegroups.c:2302 +msgid "correct" +msgstr "opravit" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:545 +msgid "distort" +msgstr "zkreslit" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:550 +msgid "rectilinear" +msgstr "přímočará" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:551 +msgid "fisheye" +msgstr "rybí oko" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:552 +msgid "panoramic" +msgstr "panoramatická" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:553 +msgid "equirectangular" +msgstr "pravoúhlá" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:554 +msgid "orthographic" +msgstr "ortografická" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:555 +msgid "stereographic" +msgstr "stereografická" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:556 +msgid "equisolid angle" +msgstr "rovnovážný úhel" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:557 +msgid "Thoby fisheye" +msgstr "Thoby rybí oko" + +#: ../build/lib/darktable/plugins/introspection_liquify.c:428 +msgid "invalidated" +msgstr "zneplatněn" + +#. move left/right/up/down +#: ../build/lib/darktable/plugins/introspection_liquify.c:429 +#: ../src/views/darkroom.c:2121 ../src/views/darkroom.c:2522 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:765 +#: ../src/views/lighttable.c:774 ../src/views/lighttable.c:1246 +#: ../src/views/lighttable.c:1250 ../src/views/lighttable.c:1254 +#: ../src/views/lighttable.c:1258 ../src/views/lighttable.c:1262 +msgid "move" +msgstr "přesun" + +#: ../build/lib/darktable/plugins/introspection_liquify.c:430 +msgid "line" +msgstr "čára" + +#: ../build/lib/darktable/plugins/introspection_liquify.c:431 +#: ../src/iop/basecurve.c:2207 ../src/iop/rgbcurve.c:1387 +#: ../src/iop/tonecurve.c:1171 +msgid "curve" +msgstr "křivka" + +#: ../build/lib/darktable/plugins/introspection_lowlight.c:43 +#: ../build/lib/darktable/plugins/introspection_lowlight.c:110 +msgid "blue shift" +msgstr "posun modlé" + +#: ../build/lib/darktable/plugins/introspection_lowpass.c:96 +#: ../build/lib/darktable/plugins/introspection_lowpass.c:165 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:160 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:247 +msgid "soften with" +msgstr "změkčit s" + +#: ../build/lib/darktable/plugins/introspection_lowpass.c:183 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:261 +msgid "order 0" +msgstr "pořadí 0" + +#: ../build/lib/darktable/plugins/introspection_lowpass.c:184 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:262 +msgid "order 1" +msgstr "pořadí 1" + +#: ../build/lib/darktable/plugins/introspection_lowpass.c:185 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:263 +msgid "order 2" +msgstr "pořadí 2" + +#: ../build/lib/darktable/plugins/introspection_lowpass.c:190 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:268 +msgid "bilateral filter" +msgstr "oboystranný filtr" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:77 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:164 +msgid "application color space" +msgstr "barevný prostor aplikace" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 +msgid "Adobe RGB" +msgstr "Adobe RGB" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 +msgid "gamma Rec709 RGB" +msgstr "gamma Rec709 RGB" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:207 +#: ../src/common/colorspaces.c:1486 ../src/common/colorspaces.c:1740 +msgid "linear ProPhoto RGB" +msgstr "lineární ProPhoto RGB" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 +msgid "tetrahedral" +msgstr "čtyřstěnný" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:212 +msgid "trilinear" +msgstr "trilineární" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:213 +msgid "pyramid" +msgstr "pyramida" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:84 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:199 +msgid "film stock" +msgstr "filmová zásoba" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:132 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:231 +msgid "scan exposure bias" +msgstr "posunutí expozice skenu" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:138 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:235 +msgid "paper black (density correction)" +msgstr "černý papír (korekce hustoty)" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:144 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:239 +#: ../src/iop/negadoctor.c:1011 +msgid "paper grade (gamma)" +msgstr "třída papíru (gama)" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:150 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:243 +msgid "paper gloss (specular highlights)" +msgstr "lesk papíru (zrcadlové odlesky)" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:156 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:247 +msgid "print exposure adjustment" +msgstr "úprava expozice tisku" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:261 +#: ../src/iop/negadoctor.c:431 +msgid "black and white film" +msgstr "černobílý film" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:262 +#: ../src/iop/negadoctor.c:416 +msgid "color film" +msgstr "barevný film" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:75 +#: ../build/lib/darktable/plugins/introspection_primaries.c:160 +#: ../src/iop/primaries.c:406 +msgid "tint hue" +msgstr "nádech odstín" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:81 +#: ../build/lib/darktable/plugins/introspection_primaries.c:164 +#: ../src/iop/primaries.c:413 +msgid "tint purity" +msgstr "nádech čistota" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:87 +#: ../build/lib/darktable/plugins/introspection_primaries.c:168 +msgid "red hue" +msgstr "červený odstín" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:93 +#: ../build/lib/darktable/plugins/introspection_primaries.c:172 +msgid "red purity" +msgstr "čistota červené" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:99 +#: ../build/lib/darktable/plugins/introspection_primaries.c:176 +msgid "green hue" +msgstr "zelený odstín" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:105 +#: ../build/lib/darktable/plugins/introspection_primaries.c:180 +msgid "green purity" +msgstr "čistota zelené" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:111 +#: ../build/lib/darktable/plugins/introspection_primaries.c:184 +msgid "blue hue" +msgstr "modrý odstín" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:117 +#: ../build/lib/darktable/plugins/introspection_primaries.c:188 +msgid "blue purity" +msgstr "čistota modré" + +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:85 +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:158 +msgid "dynamic range" +msgstr "dynamický rozsah" + +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:91 +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:162 +msgid "middle gray luma" +msgstr "středně šedá luma" + +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:103 +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:170 +#: ../src/iop/filmic.c:1551 +msgid "safety factor" +msgstr "bezpečnostní faktor" + +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:184 +msgid "logarithmic" +msgstr "logaritmický" + +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:185 +#: ../src/iop/profile_gamma.c:639 +msgid "gamma" +msgstr "gamma" + +#: ../build/lib/darktable/plugins/introspection_rawdenoise.c:43 +#: ../build/lib/darktable/plugins/introspection_rawdenoise.c:122 +msgid "noise threshold" +msgstr "práh šumu" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:70 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:155 +msgid "crop left" +msgstr "oříznout vlevo" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:76 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:159 +msgid "crop top" +msgstr "oříznout nahoře" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:82 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:163 +msgid "crop right" +msgstr "oříznout vpravo" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:88 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:167 +msgid "crop bottom" +msgstr "oříznutí dole" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:94 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:100 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:171 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:175 +msgid "black level" +msgstr "úroveň černé" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:106 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:179 +#: ../src/iop/rawprepare.c:954 +msgid "white point" +msgstr "bílý bod" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:112 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:183 +msgid "flat field correction" +msgstr "korekce plochých polí" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:198 +msgid "embedded GainMap" +msgstr "vestavěná GainMap" + +#. exposure +#: ../build/lib/darktable/plugins/introspection_relight.c:43 +#: ../build/lib/darktable/plugins/introspection_relight.c:98 +#: ../src/common/collection.c:633 ../src/gui/preferences.c:834 +#: ../src/gui/presets.c:687 ../src/iop/basicadj.c:628 ../src/iop/exposure.c:122 +#: ../src/iop/exposure.c:1135 ../src/libs/metadata_view.c:143 +msgid "exposure" +msgstr "expozice" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:267 +#: ../build/lib/darktable/plugins/introspection_retouch.c:414 +msgid "fill mode" +msgstr "režim vyplnění" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:285 +#: ../build/lib/darktable/plugins/introspection_retouch.c:426 +#: ../src/iop/basicadj.c:650 ../src/iop/channelmixerrgb.c:4685 +#: ../src/iop/colisa.c:299 ../src/iop/lowpass.c:600 ../src/iop/soften.c:372 +#: ../src/iop/vignette.c:1057 ../src/libs/history.c:963 +msgid "brightness" +msgstr "jas" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:291 +#: ../build/lib/darktable/plugins/introspection_retouch.c:430 +msgid "max_iter" +msgstr "max_iter" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:444 +#: ../src/libs/metadata_view.c:333 +msgid "unused" +msgstr "nepoužito" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:445 +msgid "clone" +msgstr "clona" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:446 +msgid "heal" +msgstr "vyléčit" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:447 +#: ../src/iop/retouch.c:2051 +msgid "blur" +msgstr "rozostření" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:448 +#: ../src/iop/retouch.c:2049 +msgid "fill" +msgstr "vyplnit" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:453 +msgid "bilateral" +msgstr "oboustranný" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:457 +msgid "erase" +msgstr "vymazat" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:458 +#: ../src/gui/presets.c:61 ../src/iop/watermark.c:1346 +#: ../src/libs/colorpicker.c:320 ../src/libs/image.c:683 +#: ../src/libs/modulegroups.c:2301 +msgid "color" +msgstr "barva" + +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:134 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:223 +#: ../src/iop/rgbcurve.c:1423 +msgid "compensate middle gray" +msgstr "kompenzovat střední šedou" + +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:246 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:148 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:266 +msgid "RGB, linked channels" +msgstr "RGB, propojené kanály" + +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:247 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:149 +msgid "RGB, independent channels" +msgstr "RGB, nezávislé kanály" + +#: ../build/lib/darktable/plugins/introspection_shadhi.c:112 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:215 +msgid "white point adjustment" +msgstr "úprava bílého bodu" + +#: ../build/lib/darktable/plugins/introspection_shadhi.c:136 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:231 +msgid "shadows color adjustment" +msgstr "úprava barev stínů" + +#: ../build/lib/darktable/plugins/introspection_shadhi.c:142 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:235 +msgid "highlights color adjustment" +msgstr "úprava barev světla" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:122 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:241 +#: ../src/gui/accelerators.c:101 +msgid "skew" +msgstr "zkreslit" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:128 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:245 +msgid "target white" +msgstr "cílová bílá" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:134 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:249 +msgid "target black" +msgstr "cílová černá" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:140 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:253 +msgid "color processing" +msgstr "zpracování barev" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:146 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:257 +msgid "preserve hue" +msgstr "zachovat odstín" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:152 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:261 +msgid "red attenuation" +msgstr "utlumení červené" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:158 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:265 +msgid "red rotation" +msgstr "rotace červené" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:164 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:269 +msgid "green attenuation" +msgstr "utlumení zelené" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:170 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:273 +msgid "green rotation" +msgstr "rotace zelené" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:176 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:277 +msgid "blue attenuation" +msgstr "utlumení modré" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:182 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:281 +msgid "blue rotation" +msgstr "rotace modré" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:188 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:285 +msgid "recover purity" +msgstr "obnova čistoty" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:194 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:289 +msgid "base primaries" +msgstr "základní primárky" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:303 +msgid "per channel" +msgstr "na kanál" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:304 +msgid "RGB ratio" +msgstr "Poměr RGB" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:308 +#: ../src/common/colorspaces.c:1377 ../src/common/colorspaces.c:1734 +msgid "work profile" +msgstr "pracovní profil" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:309 +#| msgid "PQ Rec2020" +msgid "Rec2020" +msgstr "Rec2020" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:310 +#: ../src/common/colorspaces.c:1750 +#| msgid "display" +msgid "Display P3" +msgstr "Display P3" + +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:135 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:232 +msgid "color space" +msgstr "barevný prostor" + +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:263 +msgid "Lab, linked channels" +msgstr "Lab, propojené kanály" + +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:264 +msgid "Lab, independent channels" +msgstr "Lab, nezávislé kanály" + +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:265 +msgid "XYZ, linked channels" +msgstr "XYZ, propojené kanály" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:144 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:289 +msgid "blacks" +msgstr "černí" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:150 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:293 +msgid "deep shadows" +msgstr "hluboké stíny" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:162 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:301 +msgid "light shadows" +msgstr "světlé stíny" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:174 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:309 +msgid "dark highlights" +msgstr "tmavá světla" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:186 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:317 +msgid "whites" +msgstr "bělmo" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:192 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:321 +msgid "speculars" +msgstr "zrcadla" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:198 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:325 +msgid "smoothing diameter" +msgstr "průměr vyhlazování" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:210 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:333 +msgid "edges refinement/feathering" +msgstr "zjemnění hran/opeření" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:216 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:337 +msgid "mask quantization" +msgstr "kvantování masky" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:222 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:341 +msgid "mask contrast compensation" +msgstr "kompenzace kontrastu masky" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:228 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:345 +msgid "mask exposure compensation" +msgstr "kompenzace expozice masky" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:240 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:353 +msgid "luminance estimator" +msgstr "odhad jasu" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:246 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:357 +msgid "filter diffusion" +msgstr "filtrační difúze" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:372 +msgid "averaged guided filter" +msgstr "průměrovaný řízený filtr" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:373 +msgid "guided filter" +msgstr "řízený filtr" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:374 +msgid "averaged EIGF" +msgstr "zprůměrovaný EIGF" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:375 +msgid "EIGF" +msgstr "EIGF" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:379 +msgid "RGB average" +msgstr "RGB průměr" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:380 +msgid "HSL lightness" +msgstr "HSL světlost" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:381 +msgid "HSV value / RGB max" +msgstr "Hodnota HSV / RGB max" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:382 +msgid "RGB sum" +msgstr "RGB součet" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:385 +msgid "RGB geometric mean" +msgstr "RGB geometrický průměr" + +#: ../build/lib/darktable/plugins/introspection_tonemap.cc:39 +#: ../build/lib/darktable/plugins/introspection_tonemap.cc:88 +#: ../src/iop/rgbcurve.c:186 ../src/iop/tonecurve.c:560 +msgid "contrast compression" +msgstr "komprese kontrastu" + +#: ../build/lib/darktable/plugins/introspection_vibrance.c:33 +#: ../build/lib/darktable/plugins/introspection_vibrance.c:76 +#: ../src/iop/basicadj.c:657 ../src/iop/vibrance.c:67 +msgid "vibrance" +msgstr "živost" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:92 +#: ../build/lib/darktable/plugins/introspection_vignette.c:201 +msgid "fall-off start" +msgstr "pádový start" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:98 +#: ../build/lib/darktable/plugins/introspection_vignette.c:205 +msgid "fall-off radius" +msgstr "poloměr pádu" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:116 +#: ../build/lib/darktable/plugins/introspection_vignette.c:217 +msgid "horizontal center" +msgstr "horizontální střed" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:122 +#: ../build/lib/darktable/plugins/introspection_vignette.c:221 +msgid "vertical center" +msgstr "vertikální střed" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:134 +#: ../build/lib/darktable/plugins/introspection_vignette.c:229 +msgid "automatic ratio" +msgstr "automatický poměr" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:140 +#: ../build/lib/darktable/plugins/introspection_vignette.c:233 +msgid "width/height ratio" +msgstr "poměr šířky/výšky" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:146 +#: ../build/lib/darktable/plugins/introspection_vignette.c:237 +#: ../src/iop/vignette.c:1066 +msgid "shape" +msgstr "tvar" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:265 +msgid "8-bit output" +msgstr "8-bitový výstup" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:266 +msgid "16-bit output" +msgstr "16-bitový výstup" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:118 +#: ../build/lib/darktable/plugins/introspection_watermark.c:253 +msgid "x offset" +msgstr "posun x" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:124 +#: ../build/lib/darktable/plugins/introspection_watermark.c:257 +msgid "y offset" +msgstr "posun y" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:142 +#: ../build/lib/darktable/plugins/introspection_watermark.c:269 +msgid "scale on" +msgstr "měřítko zapnuto" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:148 +#: ../build/lib/darktable/plugins/introspection_watermark.c:273 +msgid "scale marker to" +msgstr "upravit měřítko na" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:154 +#: ../build/lib/darktable/plugins/introspection_watermark.c:277 +msgid "scale marker reference" +msgstr "odkaz na značku stupnice" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:323 +#: ../src/imageio/format/tiff.c:125 ../src/imageio/format/xcf.c:159 +#: ../src/iop/borders.c:960 +msgid "image" +msgstr "obrázek" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:324 +msgid "larger border" +msgstr "větší okraj" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:325 +msgid "smaller border" +msgstr "menší okraj" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:327 +msgid "advanced options" +msgstr "rozšířené možnosti" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:331 +msgid "image width" +msgstr "šířka obrázku" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:332 +msgid "image height" +msgstr "výška obrázku" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:333 +msgid "larger image border" +msgstr "větší okraj obrázku" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:334 +msgid "smaller image border" +msgstr "menší okraj obrázku" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:338 +msgid "marker width" +msgstr "značka šířky" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:339 +msgid "marker height" +msgstr "značka výšky" + +#: ../build/bin/tools/darktable_authors.h:6 +msgid "developers" +msgstr "vývojáři" + +#: ../build/bin/tools/darktable_authors.h:11 +msgid "translators" +msgstr "překladatelé" + +#: ../build/bin/tools/darktable_authors.h:16 +msgid "contributors" +msgstr "přizpěvatelé" + +#: ../build/bin/tools/darktable_authors.h:21 +msgid "rawspeed contributors" +msgstr "přispěvatelé rawspeed" + +#: ../build/bin/tools/darktable_authors.h:26 +msgid "integration contributors" +msgstr "integrační přispěvatelé" + +#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:1 +#: ../data/org.darktable.darktable.desktop.in.h:1 +msgid "Virtual Lighttable and Darkroom" +msgstr "Virtuální katalog a editor" + +#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:2 +#: ../data/org.darktable.darktable.appdata.xml.in.h:1 +#: ../data/org.darktable.darktable.desktop.in.h:2 +msgid "Organize and develop images from digital cameras" +msgstr "Uspořádejte a vytvářejte snímky z digitálních fotoaparátů" + +#. TRANSLATORS: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! +#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:4 +#: ../data/org.darktable.darktable.desktop.in.h:4 +msgid "graphics;photography;raw;" +msgstr "grafika;fotografie;raw;" + +#: ../data/org.darktable.darktable.appdata.xml.in.h:2 +msgid "" +"darktable manages your digital negatives in a database and lets you view " +"them through a lighttable. It also enables you to develop raw images and " +"enhance them in a darkroom." +msgstr "" +"darktable spravuje vaše digitální negativy v databázi a umožňuje vám je " +"prohlížet přes katalog. Umožňuje také vyvolat nezpracované obrázky a " +"vylepšit je v editoru." + +#: ../data/org.darktable.darktable.appdata.xml.in.h:3 +msgid "" +"Other modes besides lighttable and darkroom are a map for geotagging, " +"tethering, print and a slideshow." +msgstr "" +"Další režimy kromě katalogu a editoru jsou mapa pro geotagging, tethering, " +"tisk a slideshow." + +#: ../data/org.darktable.darktable.appdata.xml.in.h:4 +msgid "" +"darktable supports most modern cameras' raw formats, and does all of its " +"processing at very high precision." +msgstr "" +"darktable podporuje raw formáty většiny moderních fotoaparátů a veškeré " +"zpracování provádí s velmi vysokou přesností." + +#: ../data/org.darktable.darktable.appdata.xml.in.h:5 +msgid "Virtual light table, showing a collection" +msgstr "Virtuální katalog zobrazující kolekci" + +#: ../data/org.darktable.darktable.appdata.xml.in.h:6 +msgid "Virtual dark room with an opened image" +msgstr "Virtuální editor s otevřeným obrázkem" + +#: ../data/org.darktable.darktable.appdata.xml.in.h:7 +msgid "Virtual dark room, sharpening an image" +msgstr "Virtuální editor, zaostření obrázku" + +#: ../data/org.darktable.darktable.appdata.xml.in.h:8 +msgid "Show images on a map" +msgstr "Zobrazit obrázky na mapě" + +#: ../data/org.darktable.darktable.appdata.xml.in.h:9 +msgid "Print your images" +msgstr "Tisk vašich obrázků" + +#: ../src/bauhaus/bauhaus.c:845 ../src/bauhaus/bauhaus.c:3957 +msgid "sliders" +msgstr "posuvníky" + +#: ../src/bauhaus/bauhaus.c:847 ../src/bauhaus/bauhaus.c:3962 +msgid "dropdowns" +msgstr "rozbalovací nabídky" + +#: ../src/bauhaus/bauhaus.c:849 ../src/bauhaus/bauhaus.c:3967 +msgid "buttons" +msgstr "tlačítka" + +#: ../src/bauhaus/bauhaus.c:3623 +msgid "button on" +msgstr "tlačítko zapnout" + +#: ../src/bauhaus/bauhaus.c:3623 +msgid "button off" +msgstr "tlačítko vypnout" + +#: ../src/bauhaus/bauhaus.c:3624 +msgid "button pressed" +msgstr "stisknuto tlačítko" + +#: ../src/bauhaus/bauhaus.c:3862 +msgid "not that many sliders" +msgstr "ne tolik posuvníků" + +#: ../src/bauhaus/bauhaus.c:3876 +msgid "not that many dropdowns" +msgstr "ne tolik rozevíracích seznamů" + +#: ../src/bauhaus/bauhaus.c:3895 +msgid "not that many buttons" +msgstr "ne tolik tlačítek" + +#: ../src/bauhaus/bauhaus.c:3900 ../src/gui/accelerators.c:389 +msgid "value" +msgstr "hodnota" + +#: ../src/bauhaus/bauhaus.c:3901 ../src/bauhaus/bauhaus.c:3907 +#: ../src/gui/accelerators.c:368 +msgid "button" +msgstr "tlačítko" + +#: ../src/bauhaus/bauhaus.c:3902 +msgid "force" +msgstr "vynutit" + +#: ../src/bauhaus/bauhaus.c:3903 ../src/libs/navigation.c:190 +#: ../src/libs/navigation.c:202 +msgid "zoom" +msgstr "zvětšení" + +#: ../src/bauhaus/bauhaus.c:3906 ../src/libs/select.c:40 +msgid "selection" +msgstr "výběr" + +#: ../src/bauhaus/bauhaus.c:3946 +msgid "slider" +msgstr "posuvník" + +#: ../src/bauhaus/bauhaus.c:3951 +msgid "dropdown" +msgstr "rozevírací seznam" + +#: ../src/chart/main.c:504 ../src/common/database.c:3372 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 ../src/gui/accelerators.c:2497 +#: ../src/gui/accelerators.c:2579 ../src/gui/accelerators.c:2632 +#: ../src/gui/accelerators.c:2661 ../src/gui/accelerators.c:2723 +#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1081 ../src/gui/presets.c:422 +#: ../src/gui/presets.c:565 ../src/gui/styles_dialog.c:526 +#: ../src/imageio/storage/disk.c:198 ../src/imageio/storage/gallery.c:150 +#: ../src/imageio/storage/latex.c:146 ../src/iop/lut3d.c:1560 +#: ../src/libs/collect.c:425 ../src/libs/collect.c:3242 +#: ../src/libs/copy_history.c:115 ../src/libs/export_metadata.c:276 +#: ../src/libs/geotagging.c:929 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1711 +#: ../src/libs/metadata.c:462 ../src/libs/metadata_view.c:1222 +#: ../src/libs/recentcollect.c:228 ../src/libs/modulegroups.c:3466 +#: ../src/libs/styles.c:392 ../src/libs/styles.c:439 ../src/libs/styles.c:529 +#: ../src/libs/styles.c:624 ../src/libs/tagging.c:1488 +#: ../src/libs/tagging.c:1579 ../src/libs/tagging.c:1670 +#: ../src/libs/tagging.c:1806 ../src/libs/tagging.c:2085 +#: ../src/libs/tagging.c:2520 ../src/libs/tagging.c:2556 +#: ../src/libs/tagging.c:3502 +msgid "_cancel" +msgstr "_zrušit" + +#: ../src/chart/main.c:504 ../src/gui/preferences.c:1081 +#: ../src/gui/styles_dialog.c:527 ../src/libs/collect.c:3243 +#: ../src/libs/export_metadata.c:277 ../src/libs/metadata.c:463 +#: ../src/libs/metadata_view.c:1223 ../src/libs/recentcollect.c:229 +#: ../src/libs/styles.c:392 ../src/libs/tagging.c:1671 +#: ../src/libs/tagging.c:1807 ../src/libs/tagging.c:2086 +#: ../src/libs/tagging.c:3503 +msgid "_save" +msgstr "_uložit" + +#. TODO: is the rank interesting, too? +#: ../src/chart/main.c:1064 +#, c-format +msgid "" +"average dE: %.02f\n" +"max dE: %.02f" +msgstr "" +"průměr dE: %.02f\n" +"max dE: %.02f" + +#: ../src/cli/main.c:270 +msgid "TODO: sorry, due to API restrictions we currently cannot set the BPP to" +msgstr "" +"TODO: omlouváme se, kvůli omezením API aktuálně nemůžeme nastavit BPP na" + +#: ../src/cli/main.c:282 +msgid "unknown option for --hq" +msgstr "neznámý parametr pro --hq" + +#: ../src/cli/main.c:298 +msgid "unknown option for --export_masks" +msgstr "neznámý parametr pro --export_masks" + +#: ../src/cli/main.c:314 +msgid "unknown option for --upscale" +msgstr "neznámý parametr pro --upscale" + +#: ../src/cli/main.c:339 +msgid "unknown option for --apply-custom-presets" +msgstr "neznámý parametr pro --apply-custom-presets" + +#: ../src/cli/main.c:350 +msgid "too long ext for --out-ext" +msgstr "příliš dlouhá přípona pro --out-ext" + +#: ../src/cli/main.c:367 +#, c-format +msgid "notice: input file or dir '%s' doesn't exist, skipping\n" +msgstr "upozornění: vstupní soubor nebo adresář '%s' neexistuje, přeskakuji\n" + +#: ../src/cli/main.c:376 +#, c-format +msgid "incorrect ICC type for --icc-type: '%s'\n" +msgstr "nesprávný typ ICC pro --icc-type: '%s'\n" + +#: ../src/cli/main.c:392 +#, c-format +msgid "notice: ICC file '%s' doesn't exist, skipping\n" +msgstr "upozornění: Soubor ICC '%s' neexistuje, přeskakuji\n" + +#: ../src/cli/main.c:401 +#, c-format +msgid "incorrect ICC intent for --icc-intent: '%s'\n" +msgstr "nesprávný záměr ICC pro --icc-intent: '%s'\n" + +#: ../src/cli/main.c:419 +#, c-format +msgid "warning: unknown option '%s'\n" +msgstr "varování: neznámá možnost '%s'\n" + +#: ../src/cli/main.c:477 +#, c-format +msgid "error: input file and import opts specified! that's not supported!\n" +msgstr "" +"chyba: zadány vstupní soubor a možnosti importu! to není podporováno!\n" + +#: ../src/cli/main.c:510 +#, c-format +msgid "" +"notice: output location is a directory. assuming '%s/$(FILE_NAME).%s' output " +"pattern" +msgstr "" +"upozornění: výstupní umístění je adresář. za předpokladu, že je výstupní " +"vzor '%s/$(FILE_NAME).%s'" + +#. output file exists or there's output ext specified and it's same as file... +#: ../src/cli/main.c:525 +msgid "output file already exists, it will get renamed" +msgstr "výstupní soubor již existuje, bude přejmenován" + +#. one of inputs was a failure, no prob +#: ../src/cli/main.c:555 +#, c-format +msgid "error: can't open folder %s" +msgstr "chyba: nelze otevřít složku %s" + +#: ../src/cli/main.c:572 +#, c-format +msgid "error: can't open file %s" +msgstr "chyba: nelze otevřít soubor %s" + +#: ../src/cli/main.c:589 +#, c-format +msgid "no images to export, aborting\n" +msgstr "žádné obrázky k exportu, konec\n" + +#: ../src/cli/main.c:606 +#, c-format +msgid "error: can't open XMP file %s" +msgstr "chyba: nelze otevřít XMP soubor %s" + +#: ../src/cli/main.c:627 +msgid "empty history stack" +msgstr "vyprázdnit zásobník historie" + +#. too long ext, no point in wasting time +#: ../src/cli/main.c:639 +#, c-format +msgid "too long output file extension: %s\n" +msgstr "příliš dlouhá přípona výstupního souboru: %s\n" + +#. no ext or empty ext, no point in wasting time +#: ../src/cli/main.c:647 +#, c-format +msgid "no output file extension given\n" +msgstr "není uvedena přípona výstupního souboru\n" + +#: ../src/cli/main.c:692 +msgid "" +"cannot find disk storage module. please check your installation, something " +"seems to be broken." +msgstr "" +"nelze najít modul úložiště disku. zkontrolujte prosím vaši instalaci, zdá " +"se, že něco nefunguje." + +#: ../src/cli/main.c:702 +msgid "failed to get parameters from storage module, aborting export ..." +msgstr "nepodařilo se získat parametry z modulu úložiště, export se ruší..." + +#: ../src/cli/main.c:718 +#, c-format +msgid "unknown extension '.%s'" +msgstr "neznámá přípona '.%s'" + +#: ../src/cli/main.c:728 +msgid "failed to get parameters from format module, aborting export ..." +msgstr "nepodařilo se získat parametry z modulu formátování, export se ruší..." + +#: ../src/common/camera_control.c:190 +#, c-format +msgid "" +"camera `%s' on port `%s' error %s\n" +"\n" +"make sure your camera allows access and is not mounted otherwise" +msgstr "" +"chyba fotoaparátu `%s' na portu `%s' %s\n" +"\n" +"ujistěte se, že váš fotoaparát umožňuje přístup a není připojena jinak" + +#: ../src/common/camera_control.c:892 +#, c-format +msgid "" +"failed to initialize `%s' on port `%s', likely causes are: locked by another " +"application, no access to devices etc" +msgstr "" +"nepodařilo se inicializovat `%s' na portu `%s', pravděpodobné příčiny jsou: " +"uzamčen jinou aplikací, žádný přístup k zařízením atd" + +#: ../src/common/camera_control.c:905 +#, c-format +msgid "" +"`%s' on port `%s' is not interesting because it supports neither tethering " +"nor import" +msgstr "" +"`%s' na portu `%s' není zajímavé, protože nepodporuje ani tethering, ani " +"import" + +#: ../src/common/camera_control.c:959 +#, c-format +msgid "camera `%s' on port `%s' disconnected while mounted" +msgstr "fotoaparát `%s' na portu `%s' byl odpojen během připojení" + +#: ../src/common/camera_control.c:967 +#, c-format +msgid "" +"camera `%s' on port `%s' needs to be remounted\n" +"make sure it allows access and is not mounted otherwise" +msgstr "" +"fotoaparát `%s' na portu `%s' musí být znovu připojena\n" +"ujistěte se, že umožňuje přístup a není namontován jinak" + +#: ../src/common/collection.c:586 +msgid "too much time to update aspect ratio for the collection" +msgstr "příliš mnoho času na aktualizaci poměru stran kolekce" + +#: ../src/common/collection.c:601 +msgid "film roll" +msgstr "filmový pás" + +#: ../src/common/collection.c:603 +msgid "folder" +msgstr "složka" + +#: ../src/common/collection.c:605 +msgid "camera" +msgstr "fotoaparát" + +#: ../src/common/collection.c:607 ../src/libs/export_metadata.c:176 +#: ../src/libs/tagging.c:3312 +msgid "tag" +msgstr "značka" + +#: ../src/common/collection.c:609 +msgid "capture date" +msgstr "datum zachycení snímku" + +#: ../src/common/collection.c:611 ../src/libs/filtering.c:61 +msgid "capture time" +msgstr "čas zachycení snímku" + +#: ../src/common/collection.c:613 ../src/libs/filtering.c:62 +msgid "import time" +msgstr "čas importu" + +#: ../src/common/collection.c:615 ../src/libs/filtering.c:63 +msgid "modification time" +msgstr "čas poslední úpravy" + +#: ../src/common/collection.c:617 ../src/libs/filtering.c:64 +msgid "export time" +msgstr "exportovat čas" + +#: ../src/common/collection.c:619 ../src/libs/filtering.c:65 +msgid "print time" +msgstr "čas tisku" + +#: ../src/common/collection.c:621 ../src/libs/collect.c:3586 +#: ../src/libs/filtering.c:2237 ../src/libs/filtering.c:2257 +#: ../src/libs/filters/history.c:153 ../src/libs/history.c:92 +msgid "history" +msgstr "historie" + +#: ../src/common/collection.c:623 ../src/common/colorlabels.c:341 +#: ../src/develop/lightroom.c:1607 ../src/dtgtk/thumbnail.c:1548 +#: ../src/libs/filtering.c:68 ../src/libs/filters/colors.c:301 +#: ../src/libs/filters/colors.c:312 ../src/libs/tools/colorlabels.c:93 +msgid "color label" +msgstr "barevný štítek" + +#. iso +#: ../src/common/collection.c:629 ../src/gui/preferences.c:830 +#: ../src/gui/presets.c:669 ../src/libs/camera.c:558 +#: ../src/libs/metadata_view.c:149 +msgid "ISO" +msgstr "ISO" + +#. aperture +#: ../src/common/collection.c:631 ../src/gui/preferences.c:838 +#: ../src/gui/presets.c:704 ../src/libs/camera.c:545 ../src/libs/camera.c:547 +#: ../src/libs/metadata_view.c:142 +msgid "aperture" +msgstr "clona" + +#: ../src/common/collection.c:637 ../src/libs/filtering.c:57 +#: ../src/libs/filters/filename.c:369 ../src/libs/metadata_view.c:128 +msgid "filename" +msgstr "jméno souboru" + +#: ../src/common/collection.c:639 ../src/develop/lightroom.c:1598 +#: ../src/libs/geotagging.c:141 +msgid "geotagging" +msgstr "geotagging" + +#: ../src/common/collection.c:641 ../src/libs/filters/grouping.c:167 +#: ../src/libs/tools/global_toolbox.c:394 +msgid "grouping" +msgstr "seskupování" + +#: ../src/common/collection.c:643 ../src/dtgtk/thumbnail.c:1563 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:340 +msgid "local copy" +msgstr "místní kopie" + +#: ../src/common/collection.c:645 ../src/gui/preferences.c:806 +msgid "module" +msgstr "modul" + +#: ../src/common/collection.c:647 ../src/gui/hist_dialog.c:346 +#: ../src/gui/styles_dialog.c:734 ../src/gui/styles_dialog.c:783 +#: ../src/libs/filters/module_order.c:161 ../src/libs/ioporder.c:39 +msgid "module order" +msgstr "třídění modulů" + +#: ../src/common/collection.c:649 +msgid "range rating" +msgstr "rozsah hodnocení" + +#: ../src/common/collection.c:651 ../src/common/ratings.c:321 +#: ../src/develop/lightroom.c:1582 ../src/libs/filtering.c:67 +#: ../src/libs/tools/ratings.c:110 +msgid "rating" +msgstr "hodnocení" + +#: ../src/common/collection.c:653 +msgid "search" +msgstr "hledat" + +#: ../src/common/collection.c:1376 ../src/common/colorlabels.c:334 +#: ../src/develop/lightroom.c:889 ../src/gui/guides.c:732 +#: ../src/iop/colorzones.c:2501 ../src/iop/temperature.c:1902 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:261 +msgid "yellow" +msgstr "žlutá" + +#: ../src/common/collection.c:1382 ../src/common/color_vocabulary.c:339 +#: ../src/common/colorlabels.c:337 ../src/iop/colorzones.c:2505 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:264 +msgid "purple" +msgstr "fialová" + +#: ../src/common/collection.c:1400 ../src/libs/collect.c:1863 +#: ../src/libs/filters/history.c:38 +msgid "auto applied" +msgstr "automaticky použito" + +#: ../src/common/collection.c:1406 ../src/libs/collect.c:1863 +#: ../src/libs/filters/history.c:38 +msgid "altered" +msgstr "změněno" + +#: ../src/common/collection.c:1424 ../src/common/collection.c:1535 +#: ../src/libs/collect.c:1242 ../src/libs/collect.c:1426 +#: ../src/libs/collect.c:1452 ../src/libs/collect.c:1592 +#: ../src/libs/collect.c:2662 +msgid "not tagged" +msgstr "neoštítkováno" + +#: ../src/common/collection.c:1425 ../src/libs/collect.c:1452 +#: ../src/libs/map_locations.c:742 +msgid "tagged" +msgstr "oštítkováno" + +#: ../src/common/collection.c:1426 +msgid "tagged*" +msgstr "oštítkováno*" + +#. local copy +#: ../src/common/collection.c:1460 ../src/libs/collect.c:1883 +#: ../src/libs/filters/local_copy.c:38 +msgid "not copied locally" +msgstr "nezkopírován lokálně" + +#: ../src/common/collection.c:1465 ../src/libs/collect.c:1882 +#: ../src/libs/filters/local_copy.c:38 +msgid "copied locally" +msgstr "zkopírován lokálně" + +#. if its undefined +#: ../src/common/collection.c:1507 ../src/common/collection.c:1619 +#: ../src/libs/collect.c:2209 ../src/libs/collect.c:2210 +msgid "unnamed" +msgstr "bezejmenný" + +#: ../src/common/collection.c:1905 ../src/libs/collect.c:2013 +#: ../src/libs/filters/grouping.c:147 ../src/libs/filters/grouping.c:170 +msgid "group leaders" +msgstr "vedoucí skupin" + +#: ../src/common/collection.c:1909 ../src/libs/collect.c:2013 +#: ../src/libs/filters/grouping.c:150 ../src/libs/filters/grouping.c:170 +msgid "group followers" +msgstr "následovníci skupin" + +#: ../src/common/collection.c:2066 ../src/libs/collect.c:2100 +msgid "not defined" +msgstr "nedefinováno" + +#: ../src/common/collection.c:2521 +#, c-format +msgid "%d image (#%d) selected of %d" +msgstr "%d obrázek (#%d) vybraný z %d" + +#: ../src/common/collection.c:2528 +#, c-format +msgid "%d image selected of %d" +msgid_plural "%d images selected of %d" +msgstr[0] "Vybrán %d obrázek z %d" +msgstr[1] "Vybrány %d obrázky z %d" +msgstr[2] "Vybráno %d obrázků z %d" + +#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2340 +#: ../src/develop/blend_gui.c:2388 ../src/gui/guides.c:729 +#: ../src/iop/channelmixerrgb.c:4688 ../src/iop/levels.c:687 +#: ../src/iop/rgblevels.c:969 ../src/iop/rgblevels.c:1083 +msgid "gray" +msgstr "šedá" + +#: ../src/common/color_vocabulary.c:92 +msgid "Chinese" +msgstr "Chinese" + +#: ../src/common/color_vocabulary.c:93 +msgid "Thai" +msgstr "Thai" + +#: ../src/common/color_vocabulary.c:94 +msgid "Kurdish" +msgstr "Kurdish" + +#: ../src/common/color_vocabulary.c:95 +msgid "Caucasian" +msgstr "Caucasian" + +#: ../src/common/color_vocabulary.c:96 +msgid "African-American" +msgstr "Afro-Američan" + +#: ../src/common/color_vocabulary.c:97 +msgid "Mexican" +msgstr "Mexický" + +#: ../src/common/color_vocabulary.c:100 ../src/common/color_vocabulary.c:105 +#: ../src/common/color_vocabulary.c:110 ../src/common/color_vocabulary.c:115 +msgid "forearm" +msgstr "předloktí" + +#: ../src/common/color_vocabulary.c:120 ../src/common/color_vocabulary.c:125 +#: ../src/common/color_vocabulary.c:130 ../src/common/color_vocabulary.c:135 +#: ../src/common/color_vocabulary.c:140 ../src/common/color_vocabulary.c:145 +msgid "forehead" +msgstr "čelo" + +#: ../src/common/color_vocabulary.c:150 ../src/common/color_vocabulary.c:155 +#: ../src/common/color_vocabulary.c:160 ../src/common/color_vocabulary.c:165 +#: ../src/common/color_vocabulary.c:170 ../src/common/color_vocabulary.c:175 +msgid "cheek" +msgstr "pleťová" + +#: ../src/common/color_vocabulary.c:202 +#, c-format +msgid "average %s skin tone\n" +msgstr "průměrný tón pleti %s\n" + +#. 0° - pinkish red +#: ../src/common/color_vocabulary.c:222 +msgid "deep purple" +msgstr "tmavě fialová" + +#. L = 10 % +#: ../src/common/color_vocabulary.c:223 +msgid "fuchsia" +msgstr "purpurová" + +#. L = 30 % +#: ../src/common/color_vocabulary.c:224 +msgid "medium magenta" +msgstr "střední purpurová" + +#. L = 50 % +#: ../src/common/color_vocabulary.c:225 +msgid "violet pink" +msgstr "fialově růžová" + +#. L = 70 % +#: ../src/common/color_vocabulary.c:226 +msgid "plum violet" +msgstr "švestková fialová" + +#. 24° - red +#: ../src/common/color_vocabulary.c:231 +msgid "dark red" +msgstr "tmavě červená" + +#: ../src/common/color_vocabulary.c:233 +msgid "crimson" +msgstr "karmínový" + +#: ../src/common/color_vocabulary.c:234 +msgid "salmon" +msgstr "lososová" + +#: ../src/common/color_vocabulary.c:235 +msgid "pink" +msgstr "růžová" + +#. 48° - orangy red +#: ../src/common/color_vocabulary.c:240 +msgid "maroon" +msgstr "kaštanová" + +#: ../src/common/color_vocabulary.c:241 +msgid "dark orange red" +msgstr "tmavě oranžovo červená" + +#: ../src/common/color_vocabulary.c:242 +msgid "orange red" +msgstr "oranžovo červená" + +#: ../src/common/color_vocabulary.c:243 +msgid "coral" +msgstr "korálová" + +#: ../src/common/color_vocabulary.c:244 ../src/common/color_vocabulary.c:261 +msgid "khaki" +msgstr "khaki" + +#. 72° - orange +#: ../src/common/color_vocabulary.c:249 +msgid "brown" +msgstr "hnědý" + +#: ../src/common/color_vocabulary.c:250 +msgid "chocolate" +msgstr "čokoládová" + +#: ../src/common/color_vocabulary.c:251 +msgid "dark gold" +msgstr "tmavě zlatá" + +#: ../src/common/color_vocabulary.c:252 +msgid "gold" +msgstr "zlatá" + +#: ../src/common/color_vocabulary.c:253 +msgid "sandy brown" +msgstr "pískově hnědá" + +#. 96° - yellow olive +#. 120° - green +#. 144° - blueish green +#: ../src/common/color_vocabulary.c:258 ../src/common/color_vocabulary.c:267 +#: ../src/common/color_vocabulary.c:276 +msgid "dark green" +msgstr "tmavě zelená" + +#: ../src/common/color_vocabulary.c:259 +msgid "dark olive green" +msgstr "tmavě olivově zelená" + +#: ../src/common/color_vocabulary.c:260 +msgid "olive" +msgstr "olivová" + +#: ../src/common/color_vocabulary.c:262 +msgid "beige" +msgstr "béžový" + +#: ../src/common/color_vocabulary.c:268 ../src/common/color_vocabulary.c:278 +msgid "forest green" +msgstr "fialová a zelená" + +#: ../src/common/color_vocabulary.c:269 +msgid "olive drab" +msgstr "olivová fádní" + +#: ../src/common/color_vocabulary.c:270 +msgid "yellow green" +msgstr "žluto zelená" + +#: ../src/common/color_vocabulary.c:271 ../src/common/color_vocabulary.c:280 +msgid "pale green" +msgstr "světle zelená" + +#: ../src/common/color_vocabulary.c:279 +msgid "lime green" +msgstr "limonádově zelená" + +#. 168° - greenish cyian +#: ../src/common/color_vocabulary.c:285 +msgid "dark sea green" +msgstr "tmavě oceánově zelená" + +#: ../src/common/color_vocabulary.c:286 +msgid "sea green" +msgstr "oceánově zelená" + +#: ../src/common/color_vocabulary.c:287 ../src/common/color_vocabulary.c:304 +msgid "teal" +msgstr "modrozelená" + +#: ../src/common/color_vocabulary.c:288 +msgid "light sea green" +msgstr "světle oceánově zelená" + +#: ../src/common/color_vocabulary.c:289 +msgid "turquoise" +msgstr "tyrkysová" + +#. 192° - cyan +#: ../src/common/color_vocabulary.c:294 +msgid "dark slate gray" +msgstr "tmavá břidlicově šedá" + +#: ../src/common/color_vocabulary.c:295 +msgid "light slate gray" +msgstr "světle břidlicová šedá" + +#: ../src/common/color_vocabulary.c:296 ../src/common/color_vocabulary.c:305 +msgid "dark cyan" +msgstr "tmavě azurová" + +#: ../src/common/color_vocabulary.c:297 ../src/common/color_vocabulary.c:317 +#: ../src/iop/colorzones.c:2503 +msgid "aqua" +msgstr "vodní" + +#: ../src/common/color_vocabulary.c:298 ../src/gui/guides.c:733 +#: ../src/iop/temperature.c:1900 +msgid "cyan" +msgstr "tyrkisová" + +#. 216° - medium blue +#: ../src/common/color_vocabulary.c:303 +msgid "navy blue" +msgstr "námořnická modrá" + +#: ../src/common/color_vocabulary.c:306 ../src/common/color_vocabulary.c:316 +msgid "deep sky blue" +msgstr "tmavě modrá obloha" + +#: ../src/common/color_vocabulary.c:307 +msgid "aquamarine blue" +msgstr "akvamarínová modrá" + +#. 240° - blue and 264° - bluer than blue +#. these are collapsed because CIE Lab 1976 sucks for blues +#. 288° - more blue +#: ../src/common/color_vocabulary.c:313 ../src/common/color_vocabulary.c:322 +msgid "dark blue" +msgstr "tmavě modrá" + +#: ../src/common/color_vocabulary.c:314 ../src/common/color_vocabulary.c:323 +msgid "medium blue" +msgstr "střední modrá" + +#: ../src/common/color_vocabulary.c:315 +msgid "azure blue" +msgstr "azurová modrá" + +#: ../src/common/color_vocabulary.c:325 +msgid "light sky blue" +msgstr "světle modrá obloha" + +#: ../src/common/color_vocabulary.c:326 +msgid "light blue" +msgstr "světle modrá" + +#. 312° - violet +#: ../src/common/color_vocabulary.c:331 +msgid "indigo" +msgstr "indigová" + +#: ../src/common/color_vocabulary.c:332 +msgid "dark violet" +msgstr "tmavě fialová" + +#: ../src/common/color_vocabulary.c:333 +msgid "blue violet" +msgstr "modrá fialová" + +#: ../src/common/color_vocabulary.c:334 ../src/common/color_vocabulary.c:342 +msgid "violet" +msgstr "fialová" + +#: ../src/common/color_vocabulary.c:335 +msgid "plum" +msgstr "švestková" + +#: ../src/common/color_vocabulary.c:340 +msgid "dark magenta" +msgstr "tmavě purpurová" + +#: ../src/common/color_vocabulary.c:341 ../src/gui/guides.c:734 +#: ../src/iop/colorzones.c:2506 ../src/iop/temperature.c:1898 +msgid "magenta" +msgstr "purpurová" + +#: ../src/common/color_vocabulary.c:343 +msgid "lavender" +msgstr "levandulová" + +#: ../src/common/color_vocabulary.c:346 +msgid "color not found" +msgstr "barva neexistuje" + +#: ../src/common/colorlabels.c:309 +#, c-format +msgid "colorlabels set to %s" +msgstr "barevné štítky nastaveny na %s" + +#: ../src/common/colorlabels.c:311 +msgid "all colorlabels removed" +msgstr "všechny barevné štítky odstraněny" + +#: ../src/common/colorlabels.c:332 ../src/gui/accelerators.c:188 +#: ../src/libs/image.c:660 +msgid "clear" +msgstr "vymazat" + +#: ../src/common/colorspaces.c:1382 ../src/common/colorspaces.c:1730 +#: ../src/iop/colorout.c:901 +msgid "export profile" +msgstr "exportní profil" + +#: ../src/common/colorspaces.c:1387 ../src/common/colorspaces.c:1732 +#: ../src/views/darkroom.c:2383 +msgid "softproof profile" +msgstr "profil jemný obrys" + +#: ../src/common/colorspaces.c:1397 ../src/common/colorspaces.c:1714 +msgid "system display profile" +msgstr "profil zobrazení systému" + +#: ../src/common/colorspaces.c:1402 ../src/common/colorspaces.c:1736 +msgid "system display profile (second window)" +msgstr "profil zobrazení systému (druhé okno)" + +#: ../src/common/colorspaces.c:1415 +msgid "sRGB (web-safe)" +msgstr "sRGB (bezpečný pro WWW)" + +#: ../src/common/colorspaces.c:1435 ../src/common/colorspaces.c:1738 +msgid "Rec709 RGB" +msgstr "Rec709 RGB" + +#: ../src/common/colorspaces.c:1450 +msgid "PQ Rec2020 RGB" +msgstr "PQ Rec2020 RGB" + +#: ../src/common/colorspaces.c:1458 +msgid "HLG Rec2020 RGB" +msgstr "HLG Rec2020 RGB" + +#: ../src/common/colorspaces.c:1465 +msgid "PQ P3 RGB" +msgstr "PQ P3 RGB" + +#: ../src/common/colorspaces.c:1471 +msgid "HLG P3 RGB" +msgstr "HLG P3 RGB" + +#: ../src/common/colorspaces.c:1478 +#| msgid "PQ P3 RGB" +msgid "Display P3 RGB" +msgstr "Zobrazit P3 RGB" + +#: ../src/common/colorspaces.c:1493 ../src/common/colorspaces.c:1708 +msgid "linear XYZ" +msgstr "lineární XYZ" + +#: ../src/common/colorspaces.c:1500 ../src/common/colorspaces.c:1710 +#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2016 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:293 +msgid "Lab" +msgstr "Lab" + +#: ../src/common/colorspaces.c:1508 ../src/common/colorspaces.c:1712 +msgid "linear infrared BGR" +msgstr "lineární infračervené BGR" + +#: ../src/common/colorspaces.c:1513 +msgid "BRG (for testing)" +msgstr "BRG (pro testování)" + +#: ../src/common/colorspaces.c:1619 +#, c-format +msgid "" +"profile `%s' not usable as histogram profile. it has been replaced by sRGB!" +msgstr "profil `%s' nelze použít jako profil histogramu. byl nahrazen sRGB!" + +#: ../src/common/colorspaces.c:1716 +msgid "embedded ICC profile" +msgstr "vestavěný ICC profil" + +#: ../src/common/colorspaces.c:1718 +msgid "embedded matrix" +msgstr "vestavěná matice" + +#: ../src/common/colorspaces.c:1720 +msgid "standard color matrix" +msgstr "standardní barevná matice" + +#: ../src/common/colorspaces.c:1722 +msgid "enhanced color matrix" +msgstr "rozšířená barevná matice" + +#: ../src/common/colorspaces.c:1724 +msgid "vendor color matrix" +msgstr "matice barev dodavatele" + +#: ../src/common/colorspaces.c:1726 +msgid "alternate color matrix" +msgstr "alternativní barevná matice" + +#: ../src/common/colorspaces.c:1728 +msgid "BRG (experimental)" +msgstr "BRG (experimentální)" + +#: ../src/common/colorspaces.c:1742 +msgid "PQ Rec2020" +msgstr "PQ Rec2020" + +#: ../src/common/colorspaces.c:1744 +msgid "HLG Rec2020" +msgstr "HLG Rec2020" + +#: ../src/common/colorspaces.c:1746 +msgid "PQ P3" +msgstr "PQ P3" + +#: ../src/common/colorspaces.c:1748 +msgid "HLG P3" +msgstr "HLG P3" + +#: ../src/common/cups_print.c:420 +#, c-format +msgid "file `%s' to print not found for image %d on `%s'" +msgstr "soubor `%s' k tisku nebyl nalezen pro obrázek %d na `%s'" + +#: ../src/common/cups_print.c:439 +msgid "failed to create temporary file for printing options" +msgstr "nepodařilo se vytvořit dočasný soubor pro možnosti tisku" + +#: ../src/common/cups_print.c:508 +#, c-format +msgid "printing on `%s' cancelled" +msgstr "tisk na `%s' zrušen" + +#: ../src/common/cups_print.c:572 +#, c-format +msgid "error while printing `%s' on `%s'" +msgstr "chyba při tisku `%s' na `%s'" + +#: ../src/common/cups_print.c:574 +#, c-format +msgid "printing `%s' on `%s'" +msgstr "tisk `%s' na `%s'" + +#: ../src/common/darktable.c:375 +#, c-format +msgid "found strange path `%s'" +msgstr "existuje podivná cesta `%s'" + +#: ../src/common/darktable.c:390 +#, c-format +msgid "error loading directory `%s'" +msgstr "chyba při načítání adresáře `%s'" + +#: ../src/common/darktable.c:414 +#, c-format +msgid "file `%s' has unknown format!" +msgstr "soubor `%s' má neznámý formát!" + +#: ../src/common/darktable.c:427 ../src/control/jobs/control_jobs.c:2121 +#: ../src/control/jobs/control_jobs.c:2180 +#, c-format +msgid "error loading file `%s'" +msgstr "chyba při načítání souboru `%s'" + +#: ../src/common/darktable.c:1650 +msgid "configuration information" +msgstr "informace o konfiguraci" + +#: ../src/common/darktable.c:1652 +msgid "_show this information again" +msgstr "_zobrazit tyto informace znovu" + +#: ../src/common/darktable.c:1652 +msgid "_understood" +msgstr "_rozumím" + +#: ../src/common/darktable.c:2106 +msgid "" +"the RCD demosaicer has been defined as default instead of PPG because of " +"better quality and performance." +msgstr "" +"odmozaikovač RCD byl definován jako výchozí místo PPG kvůli lepší kvalitě a " +"výkonu." + +#: ../src/common/darktable.c:2108 +msgid "see preferences/darkroom/demosaicing for zoomed out darkroom mode" +msgstr "viz preference/editor/demosaicing pro zvětšený režim editoru" + +#: ../src/common/darktable.c:2114 +msgid "" +"the user interface and the underlying internals for tuning darktable " +"performance have changed." +msgstr "" +"uživatelské rozhraní a základní interní prvky pro ladění výkonu darktable se " +"změnily." + +#: ../src/common/darktable.c:2116 +msgid "" +"you won't find headroom and friends any longer, instead in preferences/" +"processing use:" +msgstr "" +"už nenajdete headroom a přátele, místo toho v preferencích / zpracování " +"použijte:" + +#: ../src/common/darktable.c:2118 +msgid "1) darktable resources" +msgstr "1) zdroje darktable" + +#: ../src/common/darktable.c:2120 +msgid "2) tune OpenCL performance" +msgstr "2) ladění OpenCL výkonu" + +#: ../src/common/darktable.c:2127 +msgid "" +"some global config parameters relevant for OpenCL performance are not used " +"any longer." +msgstr "" +"některé globální konfigurační parametry relevantní pro výkon OpenCL se již " +"nepoužívají." + +#: ../src/common/darktable.c:2129 +msgid "" +"instead you will find 'per device' data in 'cldevice_v5_canonical-name'. " +"content is:" +msgstr "" +"místo toho najdete data 'pro zařízení' v 'cldevice_v5_canonical-name'. obsah " +"je:" + +#: ../src/common/darktable.c:2131 ../src/common/darktable.c:2150 +#: ../src/common/darktable.c:2165 +#| msgid "" +#| " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " +#| "'eventhandles' 'async' 'disable' 'magic'" +msgid "" +" 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" +msgstr "" +" 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" + +#: ../src/common/darktable.c:2133 ../src/common/darktable.c:2152 +msgid "you may tune as before except 'magic'" +msgstr "můžete naladit jako předtím, ale bez „magie“" + +#: ../src/common/darktable.c:2139 +msgid "" +"your OpenCL compiler settings for all devices have been reset to default." +msgstr "" +"vaše nastavení kompilátoru OpenCL pro všechna zařízení byla resetována na " +"výchozí." + +#: ../src/common/darktable.c:2146 +msgid "" +"OpenCL global config parameters 'per device' data has been recreated with an " +"updated name." +msgstr "" +"Data globální konfigurace OpenCL „na zařízení“ byla znovu vytvořena s " +"aktualizovaným názvem." + +#: ../src/common/darktable.c:2148 ../src/common/darktable.c:2163 +msgid "" +"you will find 'per device' data in 'cldevice_v5_canonical-name'. content is:" +msgstr "data 'na zařízení' najdete v 'cldevice_v5_canonical-name'. obsah je:" + +#: ../src/common/darktable.c:2154 +msgid "" +"If you're using device names in 'opencl_device_priority' you should update " +"them to the new names." +msgstr "" +"Pokud používáte názvy zařízení v 'opencl_device_priority', měli byste je " +"aktualizovat na nové názvy." + +#: ../src/common/darktable.c:2161 +msgid "" +"OpenCL 'per device' config data have been automatically extended by 'unified-" +"fraction'." +msgstr "" +"Konfigurační data OpenCL 'pro zařízení' byla automaticky rozšířena o " +"'sjednocenou-frakci'." + +#: ../src/common/darktable.c:2172 +msgid "" +"OpenCL 'per device' compiler settings might have been updated.\n" +"\n" +msgstr "" +"Nastavení kompilátoru OpenCL 'pro zařízení' mohla být aktualizována.\n" +"\n" +"\n" + +#: ../src/common/database.c:3350 +#, c-format +msgid "" +"\n" +" Sorry, darktable could not be started (database is locked)\n" +"\n" +" How to solve this problem?\n" +"\n" +" 1 - If another darktable instance is already open, \n" +" click cancel and either use that instance or close it before " +"attempting to rerun darktable \n" +" (process ID %d created the database locks)\n" +"\n" +" 2 - If you can't find a running instance of darktable, try restarting your " +"session or your computer. \n" +" This will close all running programs and hopefully close the databases " +"correctly. \n" +"\n" +" 3 - If you have done this or are certain that no other instances of " +"darktable are running, \n" +" this probably means that the last instance was ended abnormally. \n" +" Click on the \"delete database lock files\" button to remove the files " +"data.db.lock and library.db.lock. \n" +"\n" +"\n" +" Caution! Do not delete these files without first undertaking " +"the above checks, \n" +" otherwise you risk generating serious inconsistencies in your database." +"\n" +msgstr "" +"\n" +"Je nám líto, darktable nelze spustit (databáze je uzamčena)\n" +"\n" +" Jak tento problém vyřešit?\n" +"\n" +" 1 – Pokud je již otevřena jiná instance darktable,\n" +" klikněte na Storno a buď použijte tuto instanci, nebo ji zavřete, než " +"se pokusíte znovu spustit darktable\n" +" (ID procesu %d vytvořilo zámky databáze)\n" +"\n" +" 2 – Pokud nemůžete najít spuštěnou instanci darktable, zkuste restartovat " +"relaci nebo počítač.\n" +" Tím se ukončí všechny spuštěné programy a doufejme, že se správně " +"zavře databáze.\n" +"\n" +" 3 - Pokud jste to udělali nebo jste si jisti, že nejsou spuštěny žádné " +"další instance darktable,\n" +" to pravděpodobně znamená, že poslední instance byla ukončena " +"abnormálně.\n" +" Kliknutím na tlačítko \"smazat soubory zámku databáze\" odstraníte " +"soubory data.db.lock a library.db.lock.\n" +"\n" +"\n" +" Pozor! Tyto soubory neodstraňujte, aniž byste nejprve " +"provedli výše uvedené kontroly,\n" +" jinak riskujete generování vážných nekonzistencí ve vaší databázi.\n" + +#. clang-format on +#: ../src/common/database.c:3371 +msgid "error starting darktable" +msgstr "chyba při spouštění darktable" + +#: ../src/common/database.c:3372 +msgid "_delete database lock files" +msgstr "_vymazat zámkové soubory databáze" + +#: ../src/common/database.c:3378 +msgid "are you sure?" +msgstr "opravdu?" + +#: ../src/common/database.c:3379 +msgid "" +"\n" +"do you really want to delete the lock files?\n" +msgstr "" +"\n" +"opravdu chcete vymazat zámkové soubory databáze?\n" + +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2597 +msgid "_no" +msgstr "_ne" + +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2596 +msgid "_yes" +msgstr "_ano" + +#: ../src/common/database.c:3395 +msgid "done" +msgstr "hotovo" + +#: ../src/common/database.c:3396 +msgid "" +"\n" +"successfully deleted the lock files.\n" +"you can now restart darktable\n" +msgstr "" +"\n" +"zamykací soubory byly úspěšně smazány.\n" +"nyní můžete restartovat darktable\n" + +#: ../src/common/database.c:3397 ../src/common/database.c:3404 +#: ../src/gui/accelerators.c:2580 ../src/gui/accelerators.c:2662 +#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:566 +msgid "_ok" +msgstr "_ok" + +#: ../src/common/database.c:3400 +msgid "error" +msgstr "chyba" + +#: ../src/common/database.c:3401 +#, c-format +msgid "" +"\n" +"at least one file could not be removed.\n" +"you may try to manually delete the files data.db.lock and library." +"db.lock\n" +"in folder %s.\n" +msgstr "" +"\n" +"alespoň jeden soubor nelze odstranit.\n" +"můžete zkusit ručně smazat soubory data.db.lock a library.db.lock\n" +"ve složce %s.\n" + +#: ../src/common/database.c:3518 +#, c-format +msgid "" +"the database lock file contains a pid that seems to be alive in your system: " +"%d" +msgstr "" +"soubor zámku databáze obsahuje pid, který se zdá být ve vašem systému " +"aktivní: %d" + +#: ../src/common/database.c:3525 +#, c-format +msgid "the database lock file seems to be empty" +msgstr "soubor zámku databáze se zdá být prázdný" + +#: ../src/common/database.c:3535 +#, c-format +msgid "error opening the database lock file for reading: %s" +msgstr "chyba při otevírání souboru zámku databáze pro čtení: %s" + +#: ../src/common/database.c:3605 +#, c-format +msgid "" +"the database schema version of\n" +"\n" +"%s\n" +"\n" +"is too new for this build of darktable (this means the database was created " +"or upgraded by a newer darktable version)\n" +msgstr "" +"verze schématu databáze\n" +"\n" +"%s\n" +"\n" +"je příliš nové pro toto sestavení darktable (to znamená, že databáze byla " +"vytvořena nebo upgradována novější verzí darktable)\n" + +#: ../src/common/database.c:3612 +msgid "darktable - too new db version" +msgstr "darktable - příliš nová verze db" + +#: ../src/common/database.c:3613 +msgid "_quit darktable" +msgstr "_ukončit darktable" + +#. the database has to be upgraded, let's ask user +#: ../src/common/database.c:3628 +#, c-format +msgid "" +"the database schema has to be upgraded for\n" +"\n" +"%s\n" +"\n" +"this might take a long time in case of a large database\n" +"\n" +"do you want to proceed or quit now to do a backup\n" +msgstr "" +"schéma databáze musí být upgradováno\n" +"\n" +"%s\n" +"\n" +"to může v případě velké databáze trvat dlouho\n" +"\n" +"chcete pokračovat nebo skončit nyní a provést zálohu\n" + +#: ../src/common/database.c:3636 +msgid "darktable - schema migration" +msgstr "darktable - migrace schématu" + +#: ../src/common/database.c:3637 ../src/common/database.c:3959 +#: ../src/common/database.c:3974 ../src/common/database.c:4142 +#: ../src/common/database.c:4157 +msgid "_close darktable" +msgstr "_zavřít darktable" + +#: ../src/common/database.c:3637 +msgid "_upgrade database" +msgstr "_upgrade databáze" + +#: ../src/common/database.c:3939 ../src/common/database.c:4122 +#, c-format +msgid "" +"quick_check said:\n" +"%s \n" +msgstr "" +"rychlá kontrola říká:\n" +"%s\n" + +#: ../src/common/database.c:3956 ../src/common/database.c:3971 +#: ../src/common/database.c:4139 ../src/common/database.c:4154 +msgid "darktable - error opening database" +msgstr "darktable - chyba při otevření databáze" + +#: ../src/common/database.c:3960 ../src/common/database.c:4143 +msgid "_attempt restore" +msgstr "_pokus o obnovu" + +#: ../src/common/database.c:3961 ../src/common/database.c:3975 +#: ../src/common/database.c:4144 ../src/common/database.c:4158 +msgid "_delete database" +msgstr "_vymazat databázi" + +#: ../src/common/database.c:3964 ../src/common/database.c:4147 +msgid "" +"do you want to close darktable now to manually restore\n" +"the database from a backup, attempt an automatic restore\n" +"from the most recent snapshot or delete the corrupted database\n" +"and start with a new one?" +msgstr "" +"chcete nyní zavřít darktable pro ruční obnovení\n" +"databáze ze zálohy, pokusit se o automatické obnovení\n" +"z nejnovějšího zálohy, nebo odstranit poškozenou databázi\n" +"a začít s novou?" + +#: ../src/common/database.c:3978 ../src/common/database.c:4161 +msgid "" +"do you want to close darktable now to manually restore\n" +"the database from a backup or delete the corrupted database\n" +"and start with a new one?" +msgstr "" +"chcete nyní zavřít darktable pro ruční obnovení\n" +"databáze ze zálohy nebo odstranit poškozenou databázi\n" +"a začít s novou?" + +#: ../src/common/database.c:3985 ../src/common/database.c:4166 +#, c-format +msgid "" +"an error has occurred while trying to open the database from\n" +"\n" +"%s\n" +"\n" +"it seems that the database is corrupted.\n" +"%s%s" +msgstr "" +"při pokusu o otevření databáze z došlo k chybě\n" +"\n" +"%s\n" +"\n" +"zdá se, že databáze je poškozená.\n" +"%s%s" + +#: ../src/common/eigf.h:288 +msgid "" +"fast exposure independent guided filter failed to allocate memory, check " +"your RAM settings" +msgstr "" +"nezávislý řízený filtr s rychlou expozicí selhal při přidělení paměti, " +"zkontrolujte nastavení paměti RAM" + +#: ../src/common/exif.cc:5482 +#, c-format +msgid "cannot read XMP file '%s': '%s'" +msgstr "nelze číst XMP soubor '%s': '%s'" + +#: ../src/common/exif.cc:5540 +#, c-format +msgid "cannot write XMP file '%s': '%s'" +msgstr "nelze zapsat XMP soubor '%s': '%s'" + +#: ../src/common/fast_guided_filter.h:316 +msgid "fast guided filter failed to allocate memory, check your RAM settings" +msgstr "" +"rychle vedený filtr nedokázal přidělit paměť, zkontrolujte nastavení RAM" + +#: ../src/common/film.c:356 +msgid "do you want to remove this empty directory?" +msgid_plural "do you want to remove these empty directories?" +msgstr[0] "chcete odstranit tuto prázdnou složku?" +msgstr[1] "chcete odstranit tyto prázdné složky?" +msgstr[2] "chcete odstranit tyto prázdných složek?" + +#: ../src/common/film.c:363 +msgid "remove empty directory?" +msgid_plural "remove empty directories?" +msgstr[0] "odstranit prázdnou složku?" +msgstr[1] "odstranit prázdné složky?" +msgstr[2] "odstranit prázdných složek?" + +#: ../src/common/film.c:383 ../src/gui/preferences.c:814 +#: ../src/gui/styles_dialog.c:556 ../src/libs/geotagging.c:830 +#: ../src/libs/import.c:1560 +msgid "name" +msgstr "název" + +#: ../src/common/film.c:492 +msgid "" +"cannot remove film roll having local copies with non accessible originals" +msgstr "" +"nelze odstranit filmový pás pokud obsahuje lokální kopie s nepřístupnými " +"originály" + +#: ../src/common/history.c:876 +msgid "you need to copy history from an image before you paste it onto another" +msgstr "musíte zkopírovat historii z obrázku, než ji vložíte do jiného" + +#: ../src/common/image.c:333 +msgid "orphaned image" +msgstr "osiřelý obrázek" + +#: ../src/common/image.c:629 +#, c-format +msgid "geo-location undone for %d image" +msgid_plural "geo-location undone for %d images" +msgstr[0] "geografická poloha byla zrušena z %d obrázku" +msgstr[1] "geografická poloha byla zrušena z %d obrázků" +msgstr[2] "geografická poloha byla zrušena z %d obrázků" + +#: ../src/common/image.c:631 +#, c-format +msgid "geo-location re-applied to %d image" +msgid_plural "geo-location re-applied to %d images" +msgstr[0] "geografická poloha byla znovu použita na %d obrázek" +msgstr[1] "geografická poloha byla znovu použita na %d obrázky" +msgstr[2] "geografická poloha byla znovu použita na %d obrázků" + +#: ../src/common/image.c:654 +#, c-format +msgid "date/time undone for %d image" +msgid_plural "date/time undone for %d images" +msgstr[0] "datum/čas zrušeno pro %d obrázek" +msgstr[1] "datum/čas zrušeno pro %d obrázky" +msgstr[2] "datum/čas zrušeno pro %d obrázků" + +#: ../src/common/image.c:656 +#, c-format +msgid "date/time re-applied to %d image" +msgid_plural "date/time re-applied to %d images" +msgstr[0] "datum/čas znovu použito na %d obrázek" +msgstr[1] "datum/čas znovu použito na %d obrázky" +msgstr[2] "datum/čas znovu použito na %d obrázků" + +#: ../src/common/image.c:2260 +#, c-format +msgid "cannot access local copy `%s'" +msgstr "nelze získat přístup k lokální kopii `%s'" + +#: ../src/common/image.c:2267 +#, c-format +msgid "cannot write local copy `%s'" +msgstr "nelze zapsat lokální kopii `%s'" + +#: ../src/common/image.c:2274 +#, c-format +msgid "error moving local copy `%s' -> `%s'" +msgstr "chyba při přesunu lokální kopie `%s' -> `%s'" + +#: ../src/common/image.c:2291 +#, c-format +msgid "error moving `%s': file not found" +msgstr "chyba při přesunu `%s': soubor neexistuje" + +#: ../src/common/image.c:2301 +#, c-format +msgid "error moving `%s' -> `%s': file exists" +msgstr "chyba při přesunu `%s' -> `%s': soubor existuje" + +#: ../src/common/image.c:2305 +#, c-format +msgid "error moving `%s' -> `%s'" +msgstr "chyba při přesunu `%s' -> `%s'" + +#: ../src/common/image.c:2634 +msgid "cannot create local copy when the original file is not accessible." +msgstr "nelze vytvořit místní kopii, když původní soubor není přístupný." + +#: ../src/common/image.c:2648 +msgid "cannot create local copy." +msgstr "nelze vytvořit místní kopii." + +#: ../src/common/image.c:2728 ../src/control/jobs/control_jobs.c:777 +msgid "cannot remove local copy when the original file is not accessible." +msgstr "nelze odstranit místní kopii, když původní soubor není přístupný." + +#: ../src/common/image.c:2901 +#, c-format +msgid "%d local copy has been synchronized" +msgid_plural "%d local copies have been synchronized" +msgstr[0] "%d místní kopie byla synchronizována" +msgstr[1] "%d místní kopie byly synchronizovány" +msgstr[2] "%d místních kopií bylo synchronizováno" + +#: ../src/common/image.c:3102 +msgid "WARNING: camera is missing samples!" +msgstr "VAROVÁNÍ: fotoaparátu chybí vzorky!" + +#: ../src/common/image.c:3103 +msgid "" +"You must provide samples in https://raw." +"pixls.us/" +msgstr "" +"Musíte poskytnout vzorky https://raw.pixls." +"us/" + +#: ../src/common/image.c:3104 +#, c-format +msgid "" +"for `%s' `%s'\n" +"in as many format/compression/bit depths as possible" +msgstr "" +"pro `%s' `%s'\n" +"v co nejvíce formátech/kompresích/bitových hloubkách" + +#: ../src/common/image.c:3107 +msgid "or the RAW won't be readable in next version." +msgstr "nebo RAW nebude čitelný v další verzi." + +#: ../src/common/image.h:217 ../src/common/ratings.c:283 +#: ../src/imageio/format/avif.c:114 ../src/libs/history.c:843 +#: ../src/libs/snapshots.c:837 +msgid "unknown" +msgstr "neznámý" + +#. EMPTY_FIELD +#: ../src/common/image.h:218 ../src/imageio/format/tiff.c:831 +msgid "TIFF" +msgstr "TIFF" + +#: ../src/common/image.h:219 ../src/imageio/format/png.c:599 +msgid "PNG" +msgstr "PNG" + +#: ../src/common/image.h:220 +#| msgid "JPEG 2000 (12-bit)" +msgid "JPEG 2000" +msgstr "JPEG 2000" + +#: ../src/common/image.h:221 +#| msgid "JPEG XL" +msgid "JPEG" +msgstr "JPEG" + +#: ../src/common/image.h:222 +#| msgid "OpenEXR" +msgid "EXR" +msgstr "EXR" + +#: ../src/common/image.h:223 +msgid "RGBE" +msgstr "RGBE" + +#: ../src/common/image.h:224 ../src/imageio/format/pfm.c:120 +msgid "PFM" +msgstr "PFM" + +#: ../src/common/image.h:225 +msgid "GraphicsMagick" +msgstr "GraphicsMagick" + +#: ../src/common/image.h:226 +#| msgid "rawspeed" +msgid "RawSpeed" +msgstr "RawSpeed" + +#: ../src/common/image.h:227 +msgid "Netpbm" +msgstr "Netpbm" + +#: ../src/common/image.h:228 ../src/imageio/format/avif.c:728 +msgid "AVIF" +msgstr "AVIF" + +#: ../src/common/image.h:229 +msgid "ImageMagick" +msgstr "ImageMagick" + +#: ../src/common/image.h:230 +msgid "HEIF" +msgstr "HEIF" + +#: ../src/common/image.h:231 +msgid "LibRaw" +msgstr "LibRaw" + +#: ../src/common/image.h:232 ../src/imageio/format/webp.c:380 +msgid "WebP" +msgstr "WebP" + +#: ../src/common/image.h:233 ../src/imageio/format/jxl.c:482 +msgid "JPEG XL" +msgstr "JPEG XL" + +#: ../src/common/image.h:234 +msgid "QOI" +msgstr "QOI" + +#: ../src/common/imagebuf.c:132 +msgid "insufficient memory" +msgstr "nedostatek paměti" + +#: ../src/common/imagebuf.c:133 +msgid "" +"this module was unable to allocate\n" +"all of the memory required to process\n" +"the image. some or all processing\n" +"has been skipped." +msgstr "" +"tento modul nebyl schopen alokovat\n" +"veškerou paměť potřebnou ke zpracování\n" +"obrázku. některé nebo veškeré zpracování\n" +"bylo přeskočeno." + +#: ../src/common/import_session.c:308 +msgid "" +"couldn't expand to a unique filename for session, please check your import " +"session settings." +msgstr "" +"nelze rozšířit na jedinečný název souboru pro relaci, zkontrolujte nastavení " +"relace importu." + +#: ../src/common/import_session.c:401 +msgid "requested session path not available. device not mounted?" +msgstr "požadovaná cesta relace není k dispozici. zařízení není připojené?" + +#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:195 +msgid "legacy" +msgstr "starší" + +#: ../src/common/iop_order.c:61 +msgid "v3.0 RAW" +msgstr "v3.0 RAW" + +#: ../src/common/iop_order.c:62 +msgid "v3.0 JPEG" +msgstr "v3.0 JPEG" + +#: ../src/common/iop_profile.c:1207 +#, c-format +msgid "" +"darktable loads %s from\n" +"%s\n" +"or, if this directory does not exist, from\n" +"%s" +msgstr "" +"darktable načte %s z\n" +"%s\n" +"nebo, pokud tento adresář neexistuje, z\n" +"%s" + +#. clang-format off +#: ../src/common/metadata.c:46 +msgid "creator" +msgstr "tvůrce" + +#: ../src/common/metadata.c:47 +msgid "publisher" +msgstr "vydavatel" + +#. title +#: ../src/common/metadata.c:48 ../src/imageio/format/pdf.c:574 +#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:219 +#: ../src/imageio/storage/gallery.c:222 ../src/imageio/storage/latex.c:206 +#: ../src/imageio/storage/piwigo.c:1091 ../src/libs/filtering.c:69 +msgid "title" +msgstr "nadpis" + +#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:563 +#: ../src/libs/filtering.c:70 +msgid "description" +msgstr "popis" + +#: ../src/common/metadata.c:50 +msgid "rights" +msgstr "práva" + +#: ../src/common/metadata.c:51 +msgid "notes" +msgstr "poznámky" + +#: ../src/common/metadata.c:52 +msgid "version name" +msgstr "název verze" + +#: ../src/common/metadata.c:53 ../src/libs/live_view.c:319 +#: ../src/libs/metadata_view.c:126 +msgid "image id" +msgstr "id obrázku" + +#: ../src/common/mipmap_cache.c:1070 ../src/imageio/imageio.c:799 +#, c-format +msgid "image `%s' is not available!" +msgstr "obrázek `%s' není dostupný!" + +#: ../src/common/noiseprofiles.c:26 +msgid "generic poissonian" +msgstr "generický poissonský" + +#: ../src/common/noiseprofiles.c:61 +#, c-format +msgid "noiseprofile file `%s' is not valid" +msgstr "soubor s profilem šumu `%s' není platný" + +#: ../src/common/opencl.c:1165 +msgid "no working OpenCL library found" +msgstr "nenalezena žádná funkční knihovna OpenCL" + +#: ../src/common/opencl.c:1185 +msgid "" +"platform detection failed. some possible causes:\n" +" - OpenCL ICD (ocl-icd) missing,\n" +" - previous OpenCL errors leading to blocked devices,\n" +" - power management problems,\n" +" - buggy drivers,\n" +" - no OpenCL driver installed." +msgstr "" +"detekce platformy se nezdařila. některé možné příčiny:\n" +" - Chybí OpenCL ICD (ocl-icd),\n" +" - předchozí chyby OpenCL vedoucí k zablokovaným zařízením,\n" +" - problémy se správou napájení,\n" +" - chyba ovladače,\n" +" - není nainstalován žádný ovladač OpenCL." + +#: ../src/common/opencl.c:1277 +msgid "no devices found for unknown platform" +msgstr "nebyla nalezena žádná zařízení pro neznámou platformu" + +#: ../src/common/opencl.c:1323 +msgid "not enough memory for OpenCL devices" +msgstr "nedostatek paměti pro zařízení OpenCL" + +#: ../src/common/opencl.c:1358 +msgid "no OpenCL devices found" +msgstr "nebyla nalezena žádná zařízení OpenCL" + +#: ../src/common/opencl.c:1401 +msgid "no suitable OpenCL devices found" +msgstr "nenalezena žádná vhodná zařízení OpenCL" + +#: ../src/common/opencl.c:1422 +#, c-format +msgid "" +"OpenCL initializing problem:\n" +"%s" +msgstr "" +"Problém s inicializací OpenCL:\n" +"%s" + +#: ../src/common/opencl.c:1454 +msgid "OpenCL scheduling profile set to default, setup has changed" +msgstr "Plánovací profil OpenCL nastaven na výchozí, nastavení se změnilo" + +#: ../src/common/opencl.c:2283 +#, c-format +msgid "building OpenCL program %s for %s" +msgstr "vytváření OpenCL programu %s pro %s" + +#: ../src/common/pdf.h:88 ../src/iop/lens.cc:4071 +#: ../src/libs/filters/focal.c:74 ../src/libs/print_settings.c:81 +msgid "mm" +msgstr "mm" + +#: ../src/common/pdf.h:89 ../src/libs/export.c:555 ../src/libs/export.c:1241 +#: ../src/libs/print_settings.c:81 +msgid "cm" +msgstr "cm" + +#: ../src/common/pdf.h:90 ../src/libs/print_settings.c:81 +msgid "inch" +msgstr "palce" + +#: ../src/common/pdf.h:91 +msgid "\"" +msgstr "\"" + +#: ../src/common/pdf.h:104 ../src/iop/borders.c:971 +msgid "A4" +msgstr "A4" + +#: ../src/common/pdf.h:105 +msgid "A3" +msgstr "A3" + +#: ../src/common/pdf.h:106 +msgid "Letter" +msgstr "Dopis" + +#: ../src/common/pdf.h:107 +msgid "Legal" +msgstr "Legální" + +#: ../src/common/pwstorage/pwstorage.c:85 +msgid "GNOME Keyring backend is no longer supported. configure a different one" +msgstr "Backend Keyring GNOME již není podporován. nakonfigurovat jiný" + +#: ../src/common/ratings.c:172 +#, c-format +msgid "rejecting %d image" +msgid_plural "rejecting %d images" +msgstr[0] "odmítnutí %d obrázku" +msgstr[1] "odmítnutí %d obrázků" +msgstr[2] "odmítnutí %d obrázků" + +#: ../src/common/ratings.c:174 +#, c-format +msgid "applying rating %d to %d image" +msgid_plural "applying rating %d to %d images" +msgstr[0] "aplikuji hodnocení na obrázek %d z %d" +msgstr[1] "aplikuji hodnocení %d na %d obrázky" +msgstr[2] "aplikuji hodnocení %d na %d obrázků" + +#: ../src/common/ratings.c:221 +msgid "no images selected to apply rating" +msgstr "nejsou vybrány obrázky pro přiřazení hodnocení" + +#: ../src/common/ratings.c:274 ../src/libs/metadata_view.c:355 +msgid "image rejected" +msgstr "obrázek odmítnut" + +#: ../src/common/ratings.c:276 +msgid "image rated to 0 star" +msgstr "obrázek hodnocen 0 hvězdičkami" + +#: ../src/common/ratings.c:278 +#, c-format +msgid "image rated to %s" +msgstr "obrázek hodnocen jako %s" + +#: ../src/common/ratings.c:305 ../src/views/lighttable.c:766 +msgid "select" +msgstr "výběr" + +#: ../src/common/ratings.c:306 +msgid "upgrade" +msgstr "povýšit" + +#: ../src/common/ratings.c:307 +msgid "downgrade" +msgstr "ponížit" + +#: ../src/common/ratings.c:311 +msgid "zero" +msgstr "nula" + +#: ../src/common/ratings.c:312 ../src/libs/filters/rating_range.c:304 +msgid "one" +msgstr "jedna" + +#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:305 +msgid "two" +msgstr "dvě" + +#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:306 +msgid "three" +msgstr "tři" + +#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:307 +msgid "four" +msgstr "čtyři" + +#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:308 +msgid "five" +msgstr "pět" + +#: ../src/common/ratings.c:317 +msgid "reject" +msgstr "odmítnout" + +#: ../src/common/styles.c:243 +#, c-format +msgid "style with name '%s' already exists" +msgstr "styl s názvem '%s' již existuje" + +#: ../src/common/styles.c:270 ../src/common/styles.c:1783 +#: ../src/libs/styles.c:54 +msgid "styles" +msgstr "styly" + +#: ../src/common/styles.c:548 ../src/gui/styles_dialog.c:239 +#, c-format +msgid "style named '%s' successfully created" +msgstr "styl s názvem '%s' byl úspěšně vytvořen" + +#: ../src/common/styles.c:688 ../src/common/styles.c:718 +#: ../src/common/styles.c:758 ../src/dtgtk/culling.c:1066 +msgid "no image selected!" +msgstr "není vybrán žádný obrázek!" + +#: ../src/common/styles.c:692 +#, c-format +msgid "style %s successfully applied!" +msgstr "styl %s byl úspěšně použit!" + +#: ../src/common/styles.c:708 +msgid "no images nor styles selected!" +msgstr "nebyly vybrány žádné obrázky ani styly!" + +#: ../src/common/styles.c:713 +msgid "no styles selected!" +msgstr "nebyly vybrány žádné styly!" + +#: ../src/common/styles.c:743 +msgid "style successfully applied!" +msgid_plural "styles successfully applied!" +msgstr[0] "styl úspěšně použit!" +msgstr[1] "styly úspěšně použity!" +msgstr[2] "stylů úspěšně použito!" + +#: ../src/common/styles.c:838 +#, c-format +msgid "module `%s' version mismatch: %d != %d" +msgstr "neshoda verze modulu `%s': %d <> %d" + +#: ../src/common/styles.c:1125 +#, c-format +msgid "applied style `%s' on current image" +msgstr "styl `%s' byl použit na aktuální obrázek" + +#: ../src/common/styles.c:1383 +#, c-format +msgid "failed to overwrite style file for %s" +msgstr "nepodařilo se přepsat soubor stylu pro %s" + +#: ../src/common/styles.c:1389 +#, c-format +msgid "style file for %s exists" +msgstr "soubor stylu pro %s existuje" + +#: ../src/common/styles.c:1674 +#, c-format +msgid "style %s was successfully imported" +msgstr "styl %s byl úspěšně importován" + +#. Failed to open file, clean up. +#: ../src/common/styles.c:1718 +#, c-format +msgid "could not read file `%s'" +msgstr "nelze číst soubor `%s'" + +#: ../src/common/utility.c:505 +msgid "above sea level" +msgstr "nad hladinou moře" + +#: ../src/common/utility.c:506 +msgid "below sea level" +msgstr "pod hladinou moře" + +#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:907 +msgid "m" +msgstr "m" + +#: ../src/common/variables.c:712 ../src/develop/imageop_gui.c:210 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "yes" +msgstr "ano" + +#. Column 1 - "make" of the camera. +#. * Column 2 - "model" (use the "make" and "model" as provided by DCRaw). +#. * Column 3 - WB name. +#. * Column 4 - Fine tuning. MUST be in increasing order. 0 for no fine tuning. +#. * It is enough to give only the extreme values, the other values +#. * will be interpolated. +#. * Column 5 - Channel multipliers. +#. * +#. * Minolta's ALPHA and MAXXUM models are treated as the Dynax model. +#. * +#. * WB name is standardized to one of the following: +#. "Sunlight" and other variation should be switched to this: +#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:320 +msgid "daylight" +msgstr "denní světlo" + +#. Probably same as above: +#: ../src/common/wb_presets.c:44 +msgid "direct sunlight" +msgstr "přímé slunce" + +#: ../src/common/wb_presets.c:45 +msgid "cloudy" +msgstr "zataženo" + +#. "Shadows" should be switched to this: +#: ../src/common/wb_presets.c:47 +msgid "shade" +msgstr "odstín" + +#: ../src/common/wb_presets.c:48 +msgid "incandescent" +msgstr "žárovka" + +#: ../src/common/wb_presets.c:49 +msgid "incandescent warm" +msgstr "žárovka teplá" + +#. Same as "Incandescent": +#: ../src/common/wb_presets.c:51 +msgid "tungsten" +msgstr "wolfram" + +#: ../src/common/wb_presets.c:52 +msgid "fluorescent" +msgstr "fluorescenční" + +#. In Canon cameras and some newer Nikon cameras: +#: ../src/common/wb_presets.c:54 +msgid "fluorescent high" +msgstr "fluorescenční vysoká" + +#: ../src/common/wb_presets.c:55 +msgid "cool white fluorescent" +msgstr "studená bílá zářivka" + +#: ../src/common/wb_presets.c:56 +msgid "warm white fluorescent" +msgstr "teplá bílá zářivka" + +#: ../src/common/wb_presets.c:57 +msgid "daylight fluorescent" +msgstr "zářivka denní světlo" + +#: ../src/common/wb_presets.c:58 +msgid "neutral fluorescent" +msgstr "neutrální fluorescenční" + +#: ../src/common/wb_presets.c:59 +msgid "white fluorescent" +msgstr "bílá zářivka" + +#. In some newer Nikon cameras: +#: ../src/common/wb_presets.c:61 +msgid "sodium-vapor fluorescent" +msgstr "fluorescenční sodík-pára" + +#: ../src/common/wb_presets.c:62 +msgid "day white fluorescent" +msgstr "denní bílá zářivka" + +#: ../src/common/wb_presets.c:63 +msgid "high temp. mercury-vapor fluorescent" +msgstr "vysoká teplota fluorescenční rtuťové páry" + +#. found in Nikon Coolpix P1000 +#: ../src/common/wb_presets.c:65 +msgid "high temp. mercury-vapor" +msgstr "vysoká teplota rtuť-pára" + +#. On Some Panasonic +#: ../src/common/wb_presets.c:67 +msgid "D55" +msgstr "D55" + +#: ../src/common/wb_presets.c:69 +msgid "flash" +msgstr "blesk" + +#. For Olympus with no real "Flash" preset: +#: ../src/common/wb_presets.c:71 +msgid "flash (auto mode)" +msgstr "blesk (automatický režim)" + +#: ../src/common/wb_presets.c:72 +msgid "evening sun" +msgstr "večerní slunce" + +#: ../src/common/wb_presets.c:73 +msgid "underwater" +msgstr "pod vodou" + +#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2286 +msgid "black & white" +msgstr "černá a bílá" + +#: ../src/common/wb_presets.c:76 +msgid "spot WB" +msgstr "bod ČB" + +#: ../src/common/wb_presets.c:77 +msgid "manual WB" +msgstr "ruční vyvážení bílé" + +#: ../src/common/wb_presets.c:78 +msgid "camera WB" +msgstr "vyvážení bílé fotoaparátu" + +#: ../src/common/wb_presets.c:79 +msgid "auto WB" +msgstr "automatické vyvážení bílé" + +#: ../src/control/control.c:69 ../src/gui/accelerators.c:156 +#: ../src/views/darkroom.c:2029 +msgid "hold" +msgstr "držet" + +#: ../src/control/control.c:108 ../src/control/control.c:214 +msgid "modifiers" +msgstr "modifikátory" + +#: ../src/control/control.c:117 +msgctxt "accel" +msgid "global" +msgstr "globální" + +#: ../src/control/control.c:124 +msgctxt "accel" +msgid "views" +msgstr "pohledy" + +#: ../src/control/control.c:131 +msgctxt "accel" +msgid "thumbtable" +msgstr "tabulka náhledů" + +#: ../src/control/control.c:138 +msgctxt "accel" +msgid "utility modules" +msgstr "nástrojové moduly" + +#: ../src/control/control.c:145 +msgctxt "accel" +msgid "format" +msgstr "formát" + +#: ../src/control/control.c:152 +msgctxt "accel" +msgid "storage" +msgstr "úložiště" + +#: ../src/control/control.c:159 +msgctxt "accel" +msgid "processing modules" +msgstr "zpracovací moduly" + +#: ../src/control/control.c:166 +msgctxt "accel" +msgid "" +msgstr "" + +#: ../src/control/control.c:173 +msgctxt "accel" +msgid "Lua scripts" +msgstr "Lua skripty" + +#: ../src/control/control.c:180 +msgctxt "accel" +msgid "fallbacks" +msgstr "zálohy" + +#: ../src/control/control.c:189 +msgctxt "accel" +msgid "" +msgstr "" + +#: ../src/control/control.c:209 +msgid "show accels window" +msgstr "zobrazit okno akcelerátory" + +#: ../src/control/control.c:371 +msgid "working..." +msgstr "pracuji..." + +#: ../src/control/crawler.c:418 +#, c-format +msgid "ERROR: %s NOT synced XMP → DB" +msgstr "CHYBA: %s NENÍ synchronizováno XMP → DB" + +#: ../src/control/crawler.c:419 ../src/control/crawler.c:485 +#: ../src/control/crawler.c:554 +msgid "" +"ERROR: cannot write the database. the destination may be full, offline or " +"read-only." +msgstr "" +"CHYBA: nelze zapisovat do databáze. cíl může být plný, offline nebo jen pro " +"čtení." + +#: ../src/control/crawler.c:426 +#, c-format +msgid "SUCCESS: %s synced XMP → DB" +msgstr "HOTOVO: %s synchronizováno XMP → DB" + +#: ../src/control/crawler.c:448 +#, c-format +msgid "ERROR: %s NOT synced DB → XMP" +msgstr "CHYBA: %s NENÍ synchronizováno DB → XMP" + +#: ../src/control/crawler.c:450 ../src/control/crawler.c:509 +#: ../src/control/crawler.c:575 +#, c-format +msgid "" +"ERROR: cannot write %s \n" +"the destination may be full, offline or read-only." +msgstr "" +"CHYBA: nelze zapisovat %s\n" +"cíl může být plný, offline nebo jen pro čtení." + +#: ../src/control/crawler.c:456 +#, c-format +msgid "SUCCESS: %s synced DB → XMP" +msgstr "HOTOVO: %s synchronizováno DB → XMP" + +#: ../src/control/crawler.c:482 +#, c-format +msgid "ERROR: %s NOT synced new (XMP) → old (DB)" +msgstr "CHYBA: %s NENÍ synchronizováno nové (XMP) → staré (DB)" + +#: ../src/control/crawler.c:492 +#, c-format +msgid "SUCCESS: %s synced new (XMP) → old (DB)" +msgstr "HOTOVO: %s synchronizováno nové (XMP) → staré (DB)" + +#: ../src/control/crawler.c:506 +#, c-format +msgid "ERROR: %s NOT synced new (DB) → old (XMP)" +msgstr "CHYBA: %s NENÍ synchronizováno nové (DB) → staré (XMP)" + +#: ../src/control/crawler.c:514 +#, c-format +msgid "SUCCESS: %s synced new (DB) → old (XMP)" +msgstr "HOTOVO: %s synchronizováno nové (DB) → staré (XMP)" + +#: ../src/control/crawler.c:523 ../src/control/crawler.c:591 +#, c-format +msgid "EXCEPTION: %s has inconsistent timestamps" +msgstr "VÝJIMKA: %s má nekonzistentní časová razítka" + +#: ../src/control/crawler.c:551 +#, c-format +msgid "ERROR: %s NOT synced old (XMP) → new (DB)" +msgstr "CHYBA: %s NENÍ synchronizováno staré (XMP) → nové (DB)" + +#: ../src/control/crawler.c:560 +#, c-format +msgid "SUCCESS: %s synced old (XMP) → new (DB)" +msgstr "HOTOVO: %s synchronizováno staré (XMP) → nové (DB)" + +#: ../src/control/crawler.c:572 +#, c-format +msgid "ERROR: %s NOT synced old (DB) → new (XMP)" +msgstr "CHYBA: %s NENÍ synchronizováno staré (DB) → nové (XMP)" + +#: ../src/control/crawler.c:581 +#, c-format +msgid "SUCCESS: %s synced old (DB) → new (XMP)" +msgstr "HOTOVO: %s synchronizováno staré (DB) → nové (XMP)" + +#: ../src/control/crawler.c:663 +#, c-format +msgid "%id %02dh %02dm %02ds" +msgstr "%id %02dh %02dm %02ds" + +#: ../src/control/crawler.c:716 +msgid "XMP" +msgstr "XMP" + +#: ../src/control/crawler.c:733 ../src/imageio/storage/disk.c:250 +#: ../src/imageio/storage/gallery.c:202 ../src/imageio/storage/latex.c:190 +#: ../src/imageio/storage/latex.c:208 +msgid "path" +msgstr "cesta" + +#: ../src/control/crawler.c:742 +msgid "XMP timestamp" +msgstr "XMP časové razítko" + +#: ../src/control/crawler.c:747 +msgid "database timestamp" +msgstr "časové razítko databáze" + +#: ../src/control/crawler.c:752 +msgid "newest" +msgstr "nejnovější" + +#: ../src/control/crawler.c:758 +msgid "time difference" +msgstr "časový rozdíl" + +#: ../src/control/crawler.c:770 +msgid "updated XMP sidecar files found" +msgstr "byly nalezeny aktualizované vedlejší soubory XMP" + +#: ../src/control/crawler.c:771 +msgid "_close" +msgstr "_zavřít" + +#. setup selection accelerators +#. action-box +#: ../src/control/crawler.c:786 ../src/dtgtk/thumbtable.c:2755 +#: ../src/libs/import.c:1732 ../src/libs/select.c:136 +msgid "select all" +msgstr "vybrat vše" + +#: ../src/control/crawler.c:787 ../src/dtgtk/thumbtable.c:2757 +#: ../src/libs/import.c:1736 ../src/libs/select.c:140 +msgid "select none" +msgstr "zrušit výběr" + +#: ../src/control/crawler.c:788 ../src/dtgtk/thumbtable.c:2759 +#: ../src/libs/select.c:144 +msgid "invert selection" +msgstr "invertovat výběr" + +#: ../src/control/crawler.c:800 +msgid "on the selection:" +msgstr "ve výběru:" + +#: ../src/control/crawler.c:801 +msgid "keep the XMP edit" +msgstr "ponechat úpravu z XMP" + +#: ../src/control/crawler.c:802 +msgid "keep the database edit" +msgstr "ponechat úpravu z databáze" + +#: ../src/control/crawler.c:803 +msgid "keep the newest edit" +msgstr "ponechat novější úpravu" + +#: ../src/control/crawler.c:804 +msgid "keep the oldest edit" +msgstr "ponechat starší úpravu" + +#: ../src/control/crawler.c:829 +msgid "synchronization log" +msgstr "log synchronizace" + +#: ../src/control/jobs/camera_jobs.c:80 +#, c-format +msgid "capturing %d image" +msgid_plural "capturing %d images" +msgstr[0] "získávám obrázek %d" +msgstr[1] "získávám %d obrázky" +msgstr[2] "získávám %d obrázků" + +#: ../src/control/jobs/camera_jobs.c:114 +msgid "please set your camera to manual mode first!" +msgstr "nejprve nastavte fotoaparát do manuálního režimu!" + +#: ../src/control/jobs/camera_jobs.c:211 +msgid "capture images" +msgstr "zachytit obrázky" + +#: ../src/control/jobs/camera_jobs.c:245 +#, c-format +msgid "%d/%d imported to %s" +msgid_plural "%d/%d imported to %s" +msgstr[0] "%d/%d importován do %s" +msgstr[1] "%d/%d importováno do %s" +msgstr[2] "%d/%d importováno do %s" + +#: ../src/control/jobs/camera_jobs.c:298 +msgid "starting to import images from camera" +msgstr "start importu snímků z fotoaparátu" + +#: ../src/control/jobs/camera_jobs.c:302 +msgid "failed to import images from camera." +msgstr "nepodařilo se importovat snímky z fotoaparátu." + +#: ../src/control/jobs/camera_jobs.c:309 +#, c-format +msgid "importing %d image from camera" +msgid_plural "importing %d images from camera" +msgstr[0] "import %d obrázek z fotoaparátu" +msgstr[1] "import %d obrázky z fotoaparátu" +msgstr[2] "import %d obrázků z fotoaparátu" + +#: ../src/control/jobs/camera_jobs.c:369 +msgid "import images from camera" +msgstr "import snímků z fotoaparátu" + +#: ../src/control/jobs/control_jobs.c:145 +msgid "failed to create film roll for destination directory, aborting move.." +msgstr "" +"nepodařilo se vytvořit filmový pás pro cílový adresář, přesunutí se ruší.." + +#: ../src/control/jobs/control_jobs.c:388 +msgid "exposure bracketing only works on raw images." +msgstr "expoziční bracketing funguje pouze na raw obrázcích." + +#: ../src/control/jobs/control_jobs.c:395 +msgid "images have to be of same size and orientation!" +msgstr "obrázky musí mít stejnou velikost a orientaci!" + +#: ../src/control/jobs/control_jobs.c:490 +#, c-format +msgid "merging %d image" +msgid_plural "merging %d images" +msgstr[0] "slučuji %d obrázek" +msgstr[1] "slučuji %d obrázky" +msgstr[2] "slučuji %d obrázků" + +#: ../src/control/jobs/control_jobs.c:561 +#, c-format +msgid "wrote merged HDR `%s'" +msgstr "sloučené HDR `%s' uloženo" + +#: ../src/control/jobs/control_jobs.c:593 +#, c-format +msgid "duplicating %d image" +msgid_plural "duplicating %d images" +msgstr[0] "duplikuji %d obrázek" +msgstr[1] "duplikuji %d obrázky" +msgstr[2] "duplikuji %d obrázků" + +#: ../src/control/jobs/control_jobs.c:634 +#, c-format +msgid "flipping %d image" +msgid_plural "flipping %d images" +msgstr[0] "překlápím %d obrázek" +msgstr[1] "překlápím %d obrázky" +msgstr[2] "překlápím %d obrázků" + +#: ../src/control/jobs/control_jobs.c:665 +#, c-format +msgid "set %d color image" +msgid_plural "setting %d color images" +msgstr[0] "nastavuji barvu %d obrázku" +msgstr[1] "nastavuji barvu %d obrázků" +msgstr[2] "nastavuji barvu %d obrázků" + +#: ../src/control/jobs/control_jobs.c:667 +#, c-format +msgid "set %d monochrome image" +msgid_plural "setting %d monochrome images" +msgstr[0] "nastavuji %d černobílý obrázek" +msgstr[1] "nastavuji %d černobílé obrázky" +msgstr[2] "nastavuji %d černobílých obrázků" + +#: ../src/control/jobs/control_jobs.c:753 +#, c-format +msgid "removing %d image" +msgid_plural "removing %d images" +msgstr[0] "odstraňuji %d obrázek" +msgstr[1] "odstraňuji %d obrázky" +msgstr[2] "odstraňuji %d obrázků" + +#: ../src/control/jobs/control_jobs.c:860 +#, c-format +msgid "" +"could not send %s to trash%s\n" +"%s\n" +"\n" +" do you want to delete the file from disk without using trash?" +msgstr "" +"nelze přesunout %s do koše %s\n" +"%s\n" +"\n" +" chcete smazat soubor z disku bez použití koše?" + +#: ../src/control/jobs/control_jobs.c:861 +#, c-format +msgid "" +"could not delete from disk %s%s\n" +"%s" +msgstr "" +"nelze odstranit z disku %s%s\n" +"%s" + +#: ../src/control/jobs/control_jobs.c:869 +msgid "_apply to all" +msgstr "_aplikovat na vše" + +#: ../src/control/jobs/control_jobs.c:877 +msgid "_delete permanently" +msgstr "_trvale smazat" + +#: ../src/control/jobs/control_jobs.c:878 +#: ../src/control/jobs/control_jobs.c:882 +msgid "_remove from library" +msgstr "_odstranit z knihovny" + +#: ../src/control/jobs/control_jobs.c:884 ../src/libs/styles.c:440 +#: ../src/libs/styles.c:625 +msgid "_skip" +msgstr "_přeskočit" + +#: ../src/control/jobs/control_jobs.c:885 +msgid "abort" +msgstr "přerušit" + +#: ../src/control/jobs/control_jobs.c:891 +msgid "trashing error" +msgstr "chyba při přesunu do koše" + +#: ../src/control/jobs/control_jobs.c:892 +msgid "deletion error" +msgstr "chyba při mazání" + +#: ../src/control/jobs/control_jobs.c:1039 +#, c-format +msgid "trashing %d image" +msgid_plural "trashing %d images" +msgstr[0] "přesouvám do koše %d obrázek" +msgstr[1] "přesouvám do koše %d obrázky" +msgstr[2] "přesouvám do koše %d obrázků" + +#: ../src/control/jobs/control_jobs.c:1041 +#, c-format +msgid "deleting %d image" +msgid_plural "deleting %d images" +msgstr[0] "mažu %d obrázek" +msgstr[1] "mažu %d obrázky" +msgstr[2] "mažu %d obrázků" + +#: ../src/control/jobs/control_jobs.c:1177 +msgid "failed to parse GPX file" +msgstr "nepodařilo se analyzovat soubor GPX" + +#: ../src/control/jobs/control_jobs.c:1224 +#, c-format +msgid "applied matched GPX location onto %d image" +msgid_plural "applied matched GPX location onto %d images" +msgstr[0] "odpovídající umístění GPX použito na %d obrázek" +msgstr[1] "odpovídající umístění GPX použito na %d obrázky" +msgstr[2] "odpovídající umístění GPX použito na %d obrázků" + +#: ../src/control/jobs/control_jobs.c:1241 +#, c-format +msgid "moving %d image" +msgstr "přesun %d obrázku" + +#: ../src/control/jobs/control_jobs.c:1242 +#, c-format +msgid "moving %d images" +msgstr "přesun %d obrázků" + +#: ../src/control/jobs/control_jobs.c:1247 +#, c-format +msgid "copying %d image" +msgstr "kopírování %d obrázku" + +#: ../src/control/jobs/control_jobs.c:1248 +#, c-format +msgid "copying %d images" +msgstr "kopírování %d obrázků" + +#: ../src/control/jobs/control_jobs.c:1263 +#, c-format +msgid "creating local copy of %d image" +msgid_plural "creating local copies of %d images" +msgstr[0] "vytvářím lokální kopii %d obrázku" +msgstr[1] "vytvářím lokální kopii %d obrázků" +msgstr[2] "vytvářím lokální kopii %d obrázků" + +#: ../src/control/jobs/control_jobs.c:1266 +#, c-format +msgid "removing local copy of %d image" +msgid_plural "removing local copies of %d images" +msgstr[0] "odstraňuji lokální kopii %d obrázku" +msgstr[1] "odstraňuji lokální kopii %d obrázků" +msgstr[2] "odstraňuji lokální kopii %d obrázků" + +#: ../src/control/jobs/control_jobs.c:1313 +#, c-format +msgid "refreshing info for %d image" +msgid_plural "refreshing info for %d images" +msgstr[0] "obnovuji informace o %d obrázku" +msgstr[1] "obnovuji informace o %d obrázcích" +msgstr[2] "obnovuji informace o %d obrázcích" + +#: ../src/control/jobs/control_jobs.c:1398 +#, c-format +msgid "exporting %d image.." +msgid_plural "exporting %d images.." +msgstr[0] "exportuji %d obrázek.." +msgstr[1] "exportuji %d obrázky.." +msgstr[2] "exportuji %d obrázků.." + +#: ../src/control/jobs/control_jobs.c:1400 +msgid "no image to export" +msgstr "žádný obrázek pro export" + +#: ../src/control/jobs/control_jobs.c:1438 +#, c-format +msgid "exporting %d / %d to %s" +msgstr "exportuji %d / %d do %s" + +#: ../src/control/jobs/control_jobs.c:1451 ../src/views/darkroom.c:721 +#: ../src/views/print.c:369 +#, c-format +msgid "image `%s' is currently unavailable" +msgstr "obrázek `%s' je momentálně nedostupný" + +#: ../src/control/jobs/control_jobs.c:1554 +msgid "merge HDR image" +msgstr "sloučit HDR obraz" + +#: ../src/control/jobs/control_jobs.c:1568 +msgid "duplicate images" +msgstr "duplicitní obrázky" + +#: ../src/control/jobs/control_jobs.c:1574 +msgid "flip images" +msgstr "převracet obrázky" + +#: ../src/control/jobs/control_jobs.c:1581 +msgid "set monochrome images" +msgstr "nastavit monochromatické obrázky" + +#. get all selected images now, to avoid the set changing during ui interaction +#: ../src/control/jobs/control_jobs.c:1588 +msgid "remove images" +msgstr "odstranit obrázky" + +#: ../src/control/jobs/control_jobs.c:1601 +msgid "remove image?" +msgstr "odstranit obrázek?" + +#: ../src/control/jobs/control_jobs.c:1601 +msgid "remove images?" +msgstr "odstranit obrázky?" + +#: ../src/control/jobs/control_jobs.c:1602 +#, c-format +msgid "" +"do you really want to remove %d image from darktable\n" +"(without deleting file on disk)?" +msgid_plural "" +"do you really want to remove %d images from darktable\n" +"(without deleting files on disk)?" +msgstr[0] "" +"opravdu chcete odstranit %d obrázek z darktable\n" +"(bez smazání z disku)?" +msgstr[1] "" +"opravdu odstranit %d obrázky z darktable\n" +"(bez smazání z disku)?" +msgstr[2] "" +"opravdu odstranit %d obrázků z darktable\n" +"(bez smazání z disku)?" + +#. first get all selected images, to avoid the set changing during ui interaction +#: ../src/control/jobs/control_jobs.c:1617 +#: ../src/control/jobs/control_jobs.c:1650 +msgid "delete images" +msgstr "smazat obrázky" + +#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1663 +msgid "delete image?" +msgstr "vymazat obrázek?" + +#: ../src/control/jobs/control_jobs.c:1633 +msgid "delete images?" +msgstr "vymazat obrázky?" + +#: ../src/control/jobs/control_jobs.c:1634 +#, c-format +msgid "" +"do you really want to physically delete %d image\n" +"(using trash if possible)?" +msgid_plural "" +"do you really want to physically delete %d images\n" +"(using trash if possible)?" +msgstr[0] "" +"opravdu fyzicky odstranit %d obrázek z disku\n" +"(použít koš, pokud je to možné)?" +msgstr[1] "" +"opravdu fyzicky odstranit %d obrázky z disku\n" +"(použít koš, pokud je to možné)?" +msgstr[2] "" +"opravdu fyzicky odstranit %d obrázků z disku\n" +"(použít koš, pokud je to možné)?" + +#: ../src/control/jobs/control_jobs.c:1636 +#, c-format +msgid "do you really want to physically delete %d image from disk?" +msgid_plural "do you really want to physically delete %d images from disk?" +msgstr[0] "opravdu fyzicky odstranit %d obrázek z disku?" +msgstr[1] "opravdu fyzicky odstranit %d obrázky z disku?" +msgstr[2] "opravdu fyzicky odstranit %d obrázků z disku?" + +#: ../src/control/jobs/control_jobs.c:1664 +msgid "" +"do you really want to physically delete selected image (using trash if " +"possible)?" +msgstr "" +"opravdu chcete fyzicky smazat vybraný obrázek (pokud možno pomocí koše)?" + +#: ../src/control/jobs/control_jobs.c:1665 +msgid "do you really want to physically delete selected image from disk?" +msgstr "opravdu chcete fyzicky smazat vybraný obrázek z disku?" + +#: ../src/control/jobs/control_jobs.c:1680 +msgid "move images" +msgstr "přesun obrázků" + +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 +msgid "_select as destination" +msgstr "_vybrat jako cíl" + +#: ../src/control/jobs/control_jobs.c:1711 +msgid "move image?" +msgid_plural "move images?" +msgstr[0] "přesunout obrázek?" +msgstr[1] "přesunout obrázky?" +msgstr[2] "přesunout obrázků?" + +#: ../src/control/jobs/control_jobs.c:1712 +#, c-format +msgid "" +"do you really want to physically move %d image to %s?\n" +"(all duplicates will be moved along)" +msgid_plural "" +"do you really want to physically move %d images to %s?\n" +"(all duplicates will be moved along)" +msgstr[0] "" +"opravdu fyzicky přesunout %d obrázek do %s?\n" +"(všechny duplikáty budou přesunuty)" +msgstr[1] "" +"opravdu fyzicky přesunout %d obrázky do %s?\n" +"(všechny duplikáty budou přesunuty)" +msgstr[2] "" +"opravdu fyzicky přesunout %d obrázků do %s?\n" +"(všechny duplikáty budou přesunuty)" + +#: ../src/control/jobs/control_jobs.c:1734 +msgid "copy images" +msgstr "kopírovat obrázky" + +#: ../src/control/jobs/control_jobs.c:1765 +msgid "copy image?" +msgid_plural "copy images?" +msgstr[0] "kopírovat obrázek?" +msgstr[1] "kopírovat obrázky?" +msgstr[2] "kopírovat obrázků?" + +#: ../src/control/jobs/control_jobs.c:1766 +#, c-format +msgid "do you really want to physically copy %d image to %s?" +msgid_plural "do you really want to physically copy %d images to %s?" +msgstr[0] "opravdu fyzicky zkopírovat %d obrázek do %s?" +msgstr[1] "opravdu fyzicky zkopírovat %d obrázky do %s?" +msgstr[2] "opravdu fyzicky zkopírovat %d obrázků do %s?" + +#: ../src/control/jobs/control_jobs.c:1784 +#: ../src/control/jobs/control_jobs.c:1792 +msgid "local copy images" +msgstr "lokální kopie obrázků" + +#: ../src/control/jobs/control_jobs.c:1799 ../src/libs/image.c:674 +msgid "refresh EXIF" +msgstr "obnovit EXIF" + +#: ../src/control/jobs/control_jobs.c:1863 +#, c-format +msgid "failed to get parameters from storage module `%s', aborting export.." +msgstr "" +"nepodařilo se získat parametry z úložného modulu `%s', export se ruší.." + +#: ../src/control/jobs/control_jobs.c:1879 +msgid "export images" +msgstr "export obrázků" + +#: ../src/control/jobs/control_jobs.c:1929 +#, c-format +msgid "adding time offset to %d image" +msgstr "přidání časového posunu k %d obrázku" + +#: ../src/control/jobs/control_jobs.c:1929 +#, c-format +msgid "setting date/time of %d image" +msgstr "nastavení data/času %d obrázku" + +#: ../src/control/jobs/control_jobs.c:1930 +#, c-format +msgid "adding time offset to %d images" +msgstr "přidání časového posunu k %d obrázkům" + +#: ../src/control/jobs/control_jobs.c:1930 +#, c-format +msgid "setting date/time of %d images" +msgstr "nastavení data/času %d obrázků" + +#: ../src/control/jobs/control_jobs.c:1975 +#, c-format +msgid "added time offset to %d image" +msgstr "přidán časový posun k %d obrázku" + +#: ../src/control/jobs/control_jobs.c:1975 +#, c-format +msgid "set date/time of %d image" +msgstr "nastavit datum/čas %d obrázku" + +#: ../src/control/jobs/control_jobs.c:1976 +#, c-format +msgid "added time offset to %d images" +msgstr "přidán časový posun k %d obrázkům" + +#: ../src/control/jobs/control_jobs.c:1976 +#, c-format +msgid "set date/time of %d images" +msgstr "nastavit datum/čas %d obrázků" + +#: ../src/control/jobs/control_jobs.c:2017 +msgid "time offset" +msgstr "časový posun" + +#: ../src/control/jobs/control_jobs.c:2045 ../src/libs/copy_history.c:414 +msgid "write sidecar files" +msgstr "zapsat pomocné soubory" + +#: ../src/control/jobs/control_jobs.c:2259 ../src/control/jobs/film_jobs.c:297 +#, c-format +msgid "importing %d image" +msgid_plural "importing %d images" +msgstr[0] "importuji %d obrázek" +msgstr[1] "importuji %d obrázky" +msgstr[2] "importuji %d obrázků" + +#: ../src/control/jobs/control_jobs.c:2295 +#, c-format +msgid "importing %d/%d image" +msgid_plural "importing %d/%d images" +msgstr[0] "importuji obrázek %d/%d" +msgstr[1] "importuji obrázek %d/%d" +msgstr[2] "importuji obrázek %d/%d" + +#: ../src/control/jobs/control_jobs.c:2305 +#, c-format +msgid "imported %d image" +msgid_plural "imported %d images" +msgstr[0] "importován %d obrázek" +msgstr[1] "importovány %d obrázky" +msgstr[2] "importováno %d obrázků" + +#: ../src/control/jobs/film_jobs.c:73 ../src/control/jobs/film_jobs.c:109 +msgid "import images" +msgstr "importovat obrázky" + +#: ../src/control/jobs/film_jobs.c:239 +msgid "no supported images were found to be imported" +msgstr "nebyly nalezeny žádné podporované obrázky k importu" + +#: ../src/control/jobs/image_jobs.c:76 +#, c-format +msgid "importing image %s" +msgstr "importuji obrázek %s" + +#: ../src/control/jobs/image_jobs.c:110 +msgid "import image" +msgstr "import obrázku" + +#: ../src/develop/blend.c:315 +msgid "detail mask blending error" +msgstr "chyba prolnutí masky detailů" + +#: ../src/develop/blend.c:904 +msgid "detail mask CL blending problem" +msgstr "maska detailů CL problém prolnutí" + +#: ../src/develop/blend_gui.c:47 ../src/libs/live_view.c:335 +msgctxt "blendmode" +msgid "normal" +msgstr "normální" + +#: ../src/develop/blend_gui.c:49 +msgctxt "blendmode" +msgid "average" +msgstr "průměr" + +#: ../src/develop/blend_gui.c:51 ../src/libs/live_view.c:348 +msgctxt "blendmode" +msgid "difference" +msgstr "rozdíl" + +#: ../src/develop/blend_gui.c:54 +msgctxt "blendmode" +msgid "normal bounded" +msgstr "normálně ohraničené" + +#: ../src/develop/blend_gui.c:56 ../src/libs/live_view.c:343 +msgctxt "blendmode" +msgid "lighten" +msgstr "zesvětlit" + +#: ../src/develop/blend_gui.c:58 ../src/libs/live_view.c:342 +msgctxt "blendmode" +msgid "darken" +msgstr "ztmavit" + +#: ../src/develop/blend_gui.c:60 ../src/libs/live_view.c:340 +msgctxt "blendmode" +msgid "screen" +msgstr "obrazovka" + +#: ../src/develop/blend_gui.c:63 ../src/libs/live_view.c:339 +msgctxt "blendmode" +msgid "multiply" +msgstr "násobit" + +#: ../src/develop/blend_gui.c:65 +msgctxt "blendmode" +msgid "divide" +msgstr "dělení" + +#: ../src/develop/blend_gui.c:67 +msgctxt "blendmode" +msgid "addition" +msgstr "přidat" + +#: ../src/develop/blend_gui.c:69 +msgctxt "blendmode" +msgid "subtract" +msgstr "odčítat" + +#: ../src/develop/blend_gui.c:71 +msgctxt "blendmode" +msgid "geometric mean" +msgstr "geometrický průměr" + +#: ../src/develop/blend_gui.c:73 +msgctxt "blendmode" +msgid "harmonic mean" +msgstr "harmonický průměr" + +#: ../src/develop/blend_gui.c:76 ../src/libs/live_view.c:341 +msgctxt "blendmode" +msgid "overlay" +msgstr "překrytí" + +#: ../src/develop/blend_gui.c:78 +msgctxt "blendmode" +msgid "softlight" +msgstr "měkké světlo" + +#: ../src/develop/blend_gui.c:80 +msgctxt "blendmode" +msgid "hardlight" +msgstr "tvrdé světlo" + +#: ../src/develop/blend_gui.c:82 +msgctxt "blendmode" +msgid "vividlight" +msgstr "jasné světlo" + +#: ../src/develop/blend_gui.c:84 +msgctxt "blendmode" +msgid "linearlight" +msgstr "lieární světlo" + +#: ../src/develop/blend_gui.c:86 +msgctxt "blendmode" +msgid "pinlight" +msgstr "špendlík" + +#: ../src/develop/blend_gui.c:89 +msgctxt "blendmode" +msgid "lightness" +msgstr "světlost" + +#: ../src/develop/blend_gui.c:91 +msgctxt "blendmode" +msgid "chromaticity" +msgstr "chromatičnost" + +#: ../src/develop/blend_gui.c:94 +msgctxt "blendmode" +msgid "Lab lightness" +msgstr "Lab světlost" + +#: ../src/develop/blend_gui.c:96 +msgctxt "blendmode" +msgid "Lab a-channel" +msgstr "Lab kanál a" + +#: ../src/develop/blend_gui.c:98 +msgctxt "blendmode" +msgid "Lab b-channel" +msgstr "Lab kanál b" + +#: ../src/develop/blend_gui.c:100 +msgctxt "blendmode" +msgid "Lab color" +msgstr "Lab barva" + +#: ../src/develop/blend_gui.c:103 +msgctxt "blendmode" +msgid "RGB red channel" +msgstr "RGB červený kanál" + +#: ../src/develop/blend_gui.c:105 +msgctxt "blendmode" +msgid "RGB green channel" +msgstr "RGB zelený kanál" + +#: ../src/develop/blend_gui.c:107 +msgctxt "blendmode" +msgid "RGB blue channel" +msgstr "RGB modrý kanál" + +#: ../src/develop/blend_gui.c:109 +msgctxt "blendmode" +msgid "HSV value" +msgstr "HSV hodnota" + +#: ../src/develop/blend_gui.c:111 +msgctxt "blendmode" +msgid "HSV color" +msgstr "HSV barva" + +#: ../src/develop/blend_gui.c:114 +msgctxt "blendmode" +msgid "hue" +msgstr "odstín" + +#: ../src/develop/blend_gui.c:116 +msgctxt "blendmode" +msgid "color" +msgstr "barva" + +#: ../src/develop/blend_gui.c:118 +msgctxt "blendmode" +msgid "coloradjustment" +msgstr "nastavení barvy" + +#. * deprecated blend modes: make them available as legacy +#. * history stacks might want them +#: ../src/develop/blend_gui.c:124 +msgctxt "blendmode" +msgid "difference (deprecated)" +msgstr "rozdíl (zastaralý)" + +#: ../src/develop/blend_gui.c:126 +msgctxt "blendmode" +msgid "subtract inverse (deprecated)" +msgstr "odečíst inverzně (zastaralé)" + +#: ../src/develop/blend_gui.c:128 +msgctxt "blendmode" +msgid "divide inverse (deprecated)" +msgstr "dělit inverzní (zastaralé)" + +#: ../src/develop/blend_gui.c:130 +msgctxt "blendmode" +msgid "Lab L-channel (deprecated)" +msgstr "Lab L-kanál (zastaralé)" + +#: ../src/develop/blend_gui.c:135 +msgctxt "blendoperation" +msgid "normal" +msgstr "normální" + +#: ../src/develop/blend_gui.c:136 +msgctxt "blendoperation" +msgid "reverse" +msgstr "opačný" + +#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:442 +msgid "default" +msgstr "výchozí" + +#: ../src/develop/blend_gui.c:142 +msgid "RAW" +msgstr "RAW" + +#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2030 +msgid "RGB (display)" +msgstr "RGB (displej)" + +#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2043 +msgid "RGB (scene)" +msgstr "RGB (scéna)" + +#. DEVELOP_MASK_ENABLED +#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3438 +msgid "uniformly" +msgstr "jednotně" + +#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:3448 ../src/develop/imageop.c:2669 +msgid "drawn mask" +msgstr "nakreslená maska" + +#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2528 +#: ../src/develop/blend_gui.c:3459 ../src/develop/imageop.c:2671 +msgid "parametric mask" +msgstr "parametrická maska" + +#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2966 +#: ../src/develop/blend_gui.c:3486 ../src/develop/imageop.c:2673 +msgid "raster mask" +msgstr "rastrová maska" + +#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3473 +msgid "drawn & parametric mask" +msgstr "kreslená a parametrická maska" + +#: ../src/develop/blend_gui.c:168 +msgid "exclusive" +msgstr "výhradní" + +#: ../src/develop/blend_gui.c:169 +msgid "inclusive" +msgstr "včetně" + +#: ../src/develop/blend_gui.c:170 +msgid "exclusive & inverted" +msgstr "exkluzivní & obrácený" + +#: ../src/develop/blend_gui.c:171 +msgid "inclusive & inverted" +msgstr "včetně a invertováno" + +#: ../src/develop/blend_gui.c:175 +msgid "output before blur" +msgstr "výstup před rozostřením" + +#: ../src/develop/blend_gui.c:176 +msgid "input before blur" +msgstr "vstup před rozostřením" + +#: ../src/develop/blend_gui.c:177 +msgid "output after blur" +msgstr "výstup po rozostření" + +#: ../src/develop/blend_gui.c:178 +msgid "input after blur" +msgstr "vstup po rozostření" + +#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:157 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/libs/live_view.c:362 +msgid "on" +msgstr "zap" + +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 +msgid "input" +msgstr "vstup" + +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 +msgid "output" +msgstr "výstup" + +#: ../src/develop/blend_gui.c:998 +msgid " (zoom)" +msgstr " (zvětšení)" + +#: ../src/develop/blend_gui.c:1006 +msgid " (log)" +msgstr " (log)" + +#: ../src/develop/blend_gui.c:2004 +msgid "reset to default blend colorspace" +msgstr "obnovit výchozí prolnutý barevného prostoru" + +#: ../src/develop/blend_gui.c:2060 +msgid "reset and hide output channels" +msgstr "resetovat a skrýt výstupní kanály" + +#: ../src/develop/blend_gui.c:2067 +msgid "show output channels" +msgstr "zobrazit výstupní kanály" + +#: ../src/develop/blend_gui.c:2306 ../src/develop/blend_gui.c:2373 +#: ../src/iop/tonecurve.c:1156 +msgid "L" +msgstr "L" + +#: ../src/develop/blend_gui.c:2306 +msgid "sliders for L channel" +msgstr "posuvníky pro kanál L" + +#: ../src/develop/blend_gui.c:2311 ../src/iop/tonecurve.c:1157 +msgid "a" +msgstr "a" + +#: ../src/develop/blend_gui.c:2311 +msgid "sliders for a channel" +msgstr "posuvníky pro kanál" + +#: ../src/develop/blend_gui.c:2315 +msgid "green/red" +msgstr "zelená/červená" + +#: ../src/develop/blend_gui.c:2316 ../src/iop/tonecurve.c:1158 +msgid "b" +msgstr "b" + +#: ../src/develop/blend_gui.c:2316 +msgid "sliders for b channel" +msgstr "posuvníky pro kanál b" + +#: ../src/develop/blend_gui.c:2320 +msgid "blue/yellow" +msgstr "modrá/žlutá" + +#: ../src/develop/blend_gui.c:2321 +msgid "C" +msgstr "C" + +#: ../src/develop/blend_gui.c:2321 +msgid "sliders for chroma channel (of LCh)" +msgstr "posuvníky pro chroma kanál (LCh)" + +#: ../src/develop/blend_gui.c:2327 +msgid "h" +msgstr "h" + +#: ../src/develop/blend_gui.c:2327 +msgid "sliders for hue channel (of LCh)" +msgstr "posuvníky pro kanál odstínu (of LCh)" + +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 +msgid "g" +msgstr "g" + +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 +msgid "sliders for gray value" +msgstr "posuvníky pro hodnotu šedé" + +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/denoiseprofile.c:3714 +#: ../src/iop/rawdenoise.c:910 ../src/iop/rgbcurve.c:1358 +#: ../src/iop/rgblevels.c:1043 ../src/libs/filters/colors.c:137 +msgid "R" +msgstr "R" + +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +msgid "sliders for red channel" +msgstr "posuvníky pro červený kanál" + +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/denoiseprofile.c:3715 +#: ../src/iop/rawdenoise.c:911 ../src/iop/rgbcurve.c:1359 +#: ../src/iop/rgblevels.c:1044 ../src/libs/filters/colors.c:143 +msgid "G" +msgstr "G" + +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +msgid "sliders for green channel" +msgstr "posuvníky pro zelený kanál" + +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/denoiseprofile.c:3716 +#: ../src/iop/rawdenoise.c:912 ../src/iop/rgbcurve.c:1360 +#: ../src/iop/rgblevels.c:1045 ../src/libs/filters/colors.c:146 +msgid "B" +msgstr "B" + +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +msgid "sliders for blue channel" +msgstr "posuvníky pro modrý kanál" + +#: ../src/develop/blend_gui.c:2359 +msgid "H" +msgstr "H" + +#: ../src/develop/blend_gui.c:2359 +msgid "sliders for hue channel (of HSL)" +msgstr "posuvníky pro kanál odstínu (HSL)" + +#: ../src/develop/blend_gui.c:2366 +msgid "S" +msgstr "S" + +#: ../src/develop/blend_gui.c:2366 +msgid "sliders for chroma channel (of HSL)" +msgstr "posuvníky pro chroma kanál (z HSL)" + +#: ../src/develop/blend_gui.c:2373 +msgid "sliders for value channel (of HSL)" +msgstr "posuvníky pro kanál hodnoty (HSL)" + +#: ../src/develop/blend_gui.c:2407 +msgid "Jz" +msgstr "Jz" + +#: ../src/develop/blend_gui.c:2407 +msgid "sliders for value channel (of JzCzhz)" +msgstr "posuvníky pro kanál hodnoty (of JzCzhz)" + +#: ../src/develop/blend_gui.c:2414 +msgid "Cz" +msgstr "Cz" + +#: ../src/develop/blend_gui.c:2414 +msgid "sliders for chroma channel (of JzCzhz)" +msgstr "posuvníky pro chroma kanál (z JzCzhz)" + +#: ../src/develop/blend_gui.c:2421 +msgid "hz" +msgstr "hz" + +#: ../src/develop/blend_gui.c:2421 +msgid "sliders for hue channel (of JzCzhz)" +msgstr "posuvníky pro kanál odstínu (of JzCzhz)" + +#: ../src/develop/blend_gui.c:2431 +msgid "" +"adjustment based on input received by this module:\n" +"* range defined by upper markers: blend fully\n" +"* range defined by lower markers: do not blend at all\n" +"* range between adjacent upper/lower markers: blend gradually" +msgstr "" +"nastavení na základě vstupu přijatého tímto modulem:\n" +"* rozsah definovaný horními značkami: zcela prolnout\n" +"* rozsah definovaný spodními značkami: vůbec se neslévejte\n" +"* rozsah mezi sousedními horními/spodními značkami: promíchejte postupně" + +#: ../src/develop/blend_gui.c:2435 +msgid "" +"adjustment based on unblended output of this module:\n" +"* range defined by upper markers: blend fully\n" +"* range defined by lower markers: do not blend at all\n" +"* range between adjacent upper/lower markers: blend gradually" +msgstr "" +"úprava založená na nemíchaném výstupu tohoto modulu:\n" +"* rozsah definovaný horními značkami: zcela prolnout\n" +"* rozsah definovaný spodními značkami: vůbec se neslévejte\n" +"* rozsah mezi sousedními horními/spodními značkami: promíchejte postupně" + +#: ../src/develop/blend_gui.c:2532 +msgid "reset blend mask settings" +msgstr "resetujte nastavení masky prolnutí" + +#: ../src/develop/blend_gui.c:2543 ../src/iop/atrous.c:1797 +#: ../src/iop/colorzones.c:2641 ../src/iop/denoiseprofile.c:3711 +#: ../src/iop/rawdenoise.c:907 ../src/iop/rgbcurve.c:1357 +#: ../src/iop/rgblevels.c:1041 ../src/iop/tonecurve.c:1155 +msgid "channel" +msgstr "kanál" + +#: ../src/develop/blend_gui.c:2558 ../src/iop/colorzones.c:2660 +#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1164 +msgid "" +"pick GUI color from image\n" +"ctrl+click or right-click to select an area" +msgstr "" +"vyberte barvu GUI z obrázku\n" +"ctrl+klik nebo klik pravým tlačítkem vyberte oblast" + +#: ../src/develop/blend_gui.c:2561 ../src/iop/colorzones.c:2662 +#: ../src/iop/rgbcurve.c:1369 +msgid "show color" +msgstr "zobrazit barvu" + +#: ../src/develop/blend_gui.c:2570 +msgid "" +"set the range based on an area from the image\n" +"drag to use the input image\n" +"ctrl+drag to use the output image" +msgstr "" +"nastavte rozsah podle oblasti z obrázku\n" +"přetažením použijete vstupní obrázek\n" +"ctrl+přetažení použijete výstupní obrázek" + +#: ../src/develop/blend_gui.c:2573 +msgid "set range" +msgstr "nastavit rozsah" + +#: ../src/develop/blend_gui.c:2576 +msgid "invert all channel's polarities" +msgstr "obrátit polaritu všech kanálů" + +#: ../src/develop/blend_gui.c:2600 +msgid "toggle polarity. best seen by enabling 'display mask'" +msgstr "přepnout polaritu. nejlépe viditelné povolením „masky displeje“" + +#: ../src/develop/blend_gui.c:2629 +msgid "" +"double-click to reset.\n" +"press 'a' to toggle available slider modes.\n" +"press 'c' to toggle view of channel data.\n" +"press 'm' to toggle mask view." +msgstr "" +"dvojklik pro reset.\n" +"tlačítko 'a' přepíná dostupné režimy posuvníku.\n" +"tlačítko 'c' přepíná zobrazení kanálu dat.\n" +"tlačítko 'm' přepíná zobrazení masky." + +#: ../src/develop/blend_gui.c:2656 ../src/develop/blend_gui.c:3577 +#: ../src/iop/basicadj.c:630 ../src/iop/colorbalancergb.c:2161 +#: ../src/iop/exposure.c:1138 ../src/iop/exposure.c:1153 +#: ../src/iop/filmic.c:1528 ../src/iop/filmic.c:1541 ../src/iop/filmic.c:1583 +#: ../src/iop/filmicrgb.c:4504 ../src/iop/filmicrgb.c:4515 +#: ../src/iop/filmicrgb.c:4549 ../src/iop/filmicrgb.c:4559 +#: ../src/iop/graduatednd.c:1082 ../src/iop/negadoctor.c:1030 +#: ../src/iop/profile_gamma.c:657 ../src/iop/profile_gamma.c:663 +#: ../src/iop/relight.c:258 ../src/iop/soften.c:373 ../src/iop/toneequal.c:3379 +#: ../src/iop/toneequal.c:3382 ../src/iop/toneequal.c:3385 +#: ../src/iop/toneequal.c:3388 ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3394 ../src/iop/toneequal.c:3397 +#: ../src/iop/toneequal.c:3400 ../src/iop/toneequal.c:3403 +#: ../src/iop/toneequal.c:3525 ../src/iop/toneequal.c:3534 +#: ../src/iop/toneequal.c:3547 ../src/views/darkroom.c:2292 +msgid " EV" +msgstr " EV" + +#: ../src/develop/blend_gui.c:2658 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:2966 ../src/develop/blend_gui.c:3029 +#: ../src/develop/blend_gui.c:3545 ../src/develop/blend_gui.c:3575 +#: ../src/develop/blend_gui.c:3588 ../src/develop/blend_gui.c:3605 +#: ../src/develop/blend_gui.c:3629 ../src/develop/blend_gui.c:3641 +#: ../src/develop/blend_gui.c:3652 ../src/develop/blend_gui.c:3663 +msgid "blend" +msgstr "prolnutí" + +#: ../src/develop/blend_gui.c:2658 +msgid "boost factor" +msgstr "faktor zesílení" + +#: ../src/develop/blend_gui.c:2661 +msgid "adjust the boost factor of the channel mask" +msgstr "upravte faktor zesílení masky kanálu" + +#: ../src/develop/blend_gui.c:2698 +#, c-format +msgid "%d shape used" +msgid_plural "%d shapes used" +msgstr[0] "použit %d tvar" +msgstr[1] "použity %d tvary" +msgstr[2] "použito %d tvarů" + +#: ../src/develop/blend_gui.c:2703 ../src/develop/blend_gui.c:2759 +#: ../src/develop/blend_gui.c:2847 ../src/develop/blend_gui.c:2967 +msgid "no mask used" +msgstr "nepoužívá se žádná maska" + +#: ../src/develop/blend_gui.c:2767 +msgid "toggle polarity of drawn mask" +msgstr "přepnout polaritu nakreslené masky" + +#: ../src/develop/blend_gui.c:2776 +msgid "show and edit mask elements" +msgstr "zobrazit a upravit masky prvků" + +#: ../src/develop/blend_gui.c:2777 +msgid "show and edit in restricted mode" +msgstr "zobrazit a upravit v omezeném režimu" + +#: ../src/develop/blend_gui.c:2784 ../src/libs/masks.c:1014 +#: ../src/libs/masks.c:1812 ../src/libs/masks.c:1816 +msgid "add gradient" +msgstr "přidat gradient" + +#: ../src/develop/blend_gui.c:2785 +msgid "add multiple gradients" +msgstr "přidat více gradientů" + +#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2466 +#: ../src/libs/masks.c:994 ../src/libs/masks.c:1848 ../src/libs/masks.c:1852 +msgid "add brush" +msgstr "přidat štětec" + +#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2466 +msgid "add multiple brush strokes" +msgstr "přidat více tahů štětcem" + +#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 ../src/libs/masks.c:1009 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1825 +msgid "add path" +msgstr "přidat cestu" + +#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 +msgid "add multiple paths" +msgstr "přidat více cest" + +#: ../src/develop/blend_gui.c:2808 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 ../src/libs/masks.c:1004 ../src/libs/masks.c:1830 +#: ../src/libs/masks.c:1834 +msgid "add ellipse" +msgstr "přidat elipsu" + +#: ../src/develop/blend_gui.c:2809 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 +msgid "add multiple ellipses" +msgstr "přidat více elips" + +#: ../src/develop/blend_gui.c:2816 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 ../src/libs/masks.c:999 ../src/libs/masks.c:1839 +#: ../src/libs/masks.c:1843 +msgid "add circle" +msgstr "přidat kružnici" + +#: ../src/develop/blend_gui.c:2817 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 +msgid "add multiple circles" +msgstr "přidat více kruhů" + +#: ../src/develop/blend_gui.c:2976 +msgid "toggle polarity of raster mask" +msgstr "přepnout polaritu rastrové masky" + +#: ../src/develop/blend_gui.c:3119 +msgid "normal & difference" +msgstr "normální a rozdílový" + +#: ../src/develop/blend_gui.c:3124 +msgid "lighten" +msgstr "zesvětlit" + +#: ../src/develop/blend_gui.c:3131 +msgid "darken" +msgstr "ztmavit" + +#: ../src/develop/blend_gui.c:3138 +msgid "contrast enhancing" +msgstr "vylepšení kontrastu" + +#: ../src/develop/blend_gui.c:3145 ../src/develop/blend_gui.c:3168 +msgid "color channel" +msgstr "barevný kanál" + +#: ../src/develop/blend_gui.c:3156 ../src/develop/blend_gui.c:3171 +msgid "chromaticity & lightness" +msgstr "barevnost a světlost" + +#: ../src/develop/blend_gui.c:3163 +msgid "normal & arithmetic" +msgstr "normální a aritmetický" + +#. add deprecated blend mode +#: ../src/develop/blend_gui.c:3184 +msgid "deprecated" +msgstr "zastaralé" + +#. should never happen: unknown blend mode +#: ../src/develop/blend_gui.c:3188 +#, c-format +msgid "unknown blend mode '%d' in module '%s'" +msgstr "neznámý režim prolnutí '%d' v modulu '%s'" + +#: ../src/develop/blend_gui.c:3497 +msgid "blending options" +msgstr "možnosti prolnutí" + +#: ../src/develop/blend_gui.c:3516 +msgid "blend mask" +msgstr "míchání masky" + +#: ../src/develop/blend_gui.c:3520 +msgid "display mask and/or color channel" +msgstr "zobrazit masku a/nebo barevný kanál" + +#: ../src/develop/blend_gui.c:3525 +msgid "" +"display mask and/or color channel.\n" +"ctrl+click to display mask,\n" +"shift+click to display channel.\n" +"hover over parametric mask slider to select channel for display" +msgstr "" +"maska displeje a/nebo barevný kanál.\n" +"ctrl+klik zobrazí masku,\n" +"Shift+klik zobrazí kanál.\n" +"najeďte myší na posuvník parametrické masky a vyberte kanál pro zobrazení" + +#: ../src/develop/blend_gui.c:3532 +msgid "temporarily switch off blend mask" +msgstr "dočasně vypnout míchací masku" + +#: ../src/develop/blend_gui.c:3537 +msgid "" +"temporarily switch off blend mask.\n" +"only for module in focus" +msgstr "" +"dočasně vypněte míchací masku.\n" +"pouze pro vybraný modul" + +#: ../src/develop/blend_gui.c:3549 +msgid "choose blending mode" +msgstr "zvolte režim prolnutí" + +#: ../src/develop/blend_gui.c:3559 +msgid "toggle blend order" +msgstr "přepnout pořadí míchání" + +#: ../src/develop/blend_gui.c:3565 +msgid "" +"toggle the blending order between the input and the output of the module,\n" +"by default the output will be blended on top of the input,\n" +"order can be reversed by clicking on the icon (input on top of output)" +msgstr "" +"přepínat pořadí prolnutí mezi vstupem a výstupem modulu,\n" +"ve výchozím nastavení bude výstup smíchán se vstupem,\n" +"pořadí lze zvrátit kliknutím na ikonu (vstup nad výstupem)" + +#: ../src/develop/blend_gui.c:3576 +msgid "fulcrum" +msgstr "opěrný bod" + +#: ../src/develop/blend_gui.c:3580 +msgid "adjust the fulcrum used by some blending operations" +msgstr "upravit opěrný bod používaný některými operacemi prolnutí" + +#. Add opacity/scale sliders to table +#: ../src/develop/blend_gui.c:3588 ../src/iop/watermark.c:1362 +#: ../src/libs/masks.c:105 +msgid "opacity" +msgstr "neprůhlednost" + +#: ../src/develop/blend_gui.c:3591 +msgid "set the opacity of the blending" +msgstr "nastavte neprůhlednost prolnutí" + +#: ../src/develop/blend_gui.c:3596 ../src/libs/history.c:956 +msgid "combine masks" +msgstr "kombinovat masky" + +#: ../src/develop/blend_gui.c:3598 +msgid "" +"how to combine individual drawn mask and different channels of parametric " +"mask" +msgstr "" +"jak kombinovat jednotlivé nakreslené masky a různé kanály parametrické masky" + +#: ../src/develop/blend_gui.c:3605 +msgid "details threshold" +msgstr "prahová hodnota detailů" + +#: ../src/develop/blend_gui.c:3609 +msgid "" +"adjust the threshold for the details mask (using raw data),\n" +"positive values select areas with strong details,\n" +"negative values select flat areas" +msgstr "" +"upravit práh pro masku podrobností (pomocí nezpracovaných dat),\n" +"kladné hodnoty vybírají oblasti se silnými detaily,\n" +"záporné hodnoty vybírají rovné plochy" + +#: ../src/develop/blend_gui.c:3617 ../src/libs/history.c:959 +msgid "feathering guide" +msgstr "průvodce opeřením" + +#: ../src/develop/blend_gui.c:3620 +msgid "" +"choose to guide mask by input or output image and\n" +"choose to apply feathering before or after mask blur" +msgstr "" +"zvolte vodítko masky podle vstupního nebo výstupního obrázku a\n" +"zvolte použití opeření před nebo po rozmazání masky" + +#: ../src/develop/blend_gui.c:3629 ../src/libs/history.c:958 +msgid "feathering radius" +msgstr "poloměr opeření" + +#: ../src/develop/blend_gui.c:3632 +msgid "spatial radius of feathering" +msgstr "prostorový poloměr opeření" + +#: ../src/develop/blend_gui.c:3641 +msgid "blurring radius" +msgstr "poloměr rozostření" + +#: ../src/develop/blend_gui.c:3644 +msgid "radius for gaussian blur of blend mask" +msgstr "poloměr pro gaussovské rozostření prolnuté masky" + +#: ../src/develop/blend_gui.c:3652 ../src/iop/retouch.c:2738 +#: ../src/libs/history.c:954 +msgid "mask opacity" +msgstr "neprůhlednost masky" + +#: ../src/develop/blend_gui.c:3656 +msgid "" +"shifts and tilts the tone curve of the blend mask to adjust its brightness\n" +"without affecting fully transparent/fully opaque regions" +msgstr "" +"posune a nakloní tónovou křivku masky prolnutí, aby se upravil její jas\n" +"bez ovlivnění plně průhledných/zcela neprůhledných oblastí" + +#: ../src/develop/blend_gui.c:3663 ../src/libs/history.c:962 +msgid "mask contrast" +msgstr "kontrast masky" + +#: ../src/develop/blend_gui.c:3667 +msgid "" +"gives the tone curve of the blend mask an s-like shape to adjust its contrast" +msgstr "" +"dává tónové křivce prolnuté masky tvar podobný S pro úpravu jejího kontrastu" + +#: ../src/develop/blend_gui.c:3671 +msgid "mask refinement" +msgstr "zdokonalení masky" + +#: ../src/develop/develop.c:732 +msgid "" +"autosaving history has been disabled for this session because of a slow " +"drive used" +msgstr "" +"automatické ukládání historie bylo pro tuto relaci zakázáno z důvodu " +"pomalého disku" + +#: ../src/develop/develop.c:2202 +#, c-format +msgid "%s: module `%s' version mismatch: %d != %d" +msgstr "%s: Neshoda verze modulu `%s': %d <> %d" + +#: ../src/develop/develop.c:3016 +msgid "duplicate module, can't move new instance after the base one\n" +msgstr "duplicitní modul, nelze přesunout novou instanci za základní\n" + +#: ../src/develop/imageop.c:1031 +msgid "new instance" +msgstr "nová instance" + +#: ../src/develop/imageop.c:1037 +msgid "duplicate instance" +msgstr "duplicitní instance" + +#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3755 +#: ../src/libs/masks.c:1146 +msgid "move up" +msgstr "přesun výš" + +#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3756 +#: ../src/libs/masks.c:1151 +msgid "move down" +msgstr "přesun níž" + +#. delete button label and tooltip will be updated based on trash pref +#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3758 +#: ../src/gui/accelerators.c:173 ../src/libs/image.c:303 +#: ../src/libs/image.c:513 +msgid "delete" +msgstr "vymazat" + +#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3759 +#: ../src/libs/modulegroups.c:3817 +msgid "rename" +msgstr "přejmenovat" + +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 +#, c-format +msgid "'%s' is switched on" +msgstr "'%s' je zapnuto" + +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 +#, c-format +msgid "'%s' is switched off" +msgstr "'%s' je vypnuto" + +#: ../src/develop/imageop.c:2663 +msgid "unknown mask" +msgstr "neznámá maska" + +#: ../src/develop/imageop.c:2667 +msgid "drawn + parametric mask" +msgstr "kreslená + parametrická maska" + +#: ../src/develop/imageop.c:2676 +#, c-format +msgid "this module has a `%s'" +msgstr "tento modul má `%s'" + +#: ../src/develop/imageop.c:2681 +#, c-format +msgid "taken from module %s" +msgstr "získáno z modulu %s" + +#: ../src/develop/imageop.c:2686 +msgid "click to display (module must be activated first)" +msgstr "kliknutím zobrazíte (modul musí být nejprve aktivován)" + +#: ../src/develop/imageop.c:2797 +msgid "purpose" +msgstr "účel" + +#: ../src/develop/imageop.c:2797 +msgid "process" +msgstr "proces" + +#: ../src/develop/imageop.c:2917 +msgid "" +"multiple instance actions\n" +"right-click creates new instance" +msgstr "" +"více instancí akce\n" +"kliknutím pravým tlačítkem vytvoříte novou instanci" + +#: ../src/develop/imageop.c:2932 +msgid "" +"reset parameters\n" +"ctrl+click to reapply any automatic presets" +msgstr "" +"resetovat parametry\n" +"ctrl+klik pro opětovné použití všech automatických presetů" + +#: ../src/develop/imageop.c:2944 +msgid "" +"presets\n" +"right-click to apply on new instance" +msgstr "" +"presety\n" +"klik pravým tlačítkem pro použití na novou instanci" + +#: ../src/develop/imageop.c:3194 ../src/develop/imageop.c:3216 +msgid "ERROR" +msgstr "CHYBA" + +#: ../src/develop/imageop.c:3622 +msgid "unsupported input" +msgstr "nepodporované zadání" + +#: ../src/develop/imageop.c:3623 +msgid "" +"you have placed this module at\n" +"a position in the pipeline where\n" +"the data format does not match\n" +"its requirements." +msgstr "" +"umístili jste tento modul na\n" +"pozici ve frontě zpracování, kde\n" +"formát dat neodpovídá\n" +"jeho požadavku." + +#: ../src/develop/imageop.c:3754 ../src/develop/imageop.c:3764 +#: ../src/gui/accelerators.c:169 ../src/libs/lib.c:1415 +msgid "show" +msgstr "zobrazit" + +#: ../src/develop/imageop.c:3757 ../src/libs/modulegroups.c:3315 +#: ../src/libs/modulegroups.c:3438 ../src/libs/modulegroups.c:3819 +#: ../src/libs/tagging.c:3279 +msgid "new" +msgstr "nová" + +#: ../src/develop/imageop.c:3760 ../src/libs/duplicate.c:411 +#: ../src/libs/image.c:534 ../src/libs/modulegroups.c:3815 +msgid "duplicate" +msgstr "duplikovat" + +#: ../src/develop/imageop.c:3765 +msgid "enable" +msgstr "povolit" + +#: ../src/develop/imageop.c:3766 ../src/gui/accelerators.c:185 +msgid "focus" +msgstr "ostření" + +#: ../src/develop/imageop.c:3767 ../src/gui/accelerators.c:2874 +msgid "instance" +msgstr "instance" + +#: ../src/develop/imageop.c:3768 ../src/gui/accelerators.c:130 +#: ../src/gui/accelerators.c:140 ../src/gui/gtk.c:3055 ../src/gui/gtk.c:3102 +#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:615 +#: ../src/gui/styles_dialog.c:637 ../src/iop/atrous.c:1626 +#: ../src/libs/lib.c:1416 ../src/libs/modulegroups.c:3884 +msgid "reset" +msgstr "reset" + +#. Adding the outer container +#: ../src/develop/imageop.c:3769 ../src/gui/preferences.c:796 +#: ../src/libs/lib.c:1417 +msgid "presets" +msgstr "presety" + +#: ../src/develop/imageop.c:3789 +msgid "processing module" +msgstr "modul zpracování" + +#: ../src/develop/imageop_gui.c:293 +#, c-format +msgid "" +"%s\n" +"ctrl+click to %s" +msgstr "" +"%s\n" +"ctrl+click na %s" + +#: ../src/develop/lightroom.c:1137 +msgid "cannot find Lightroom XMP!" +msgstr "nemohu najít Lightroom XMP!" + +#: ../src/develop/lightroom.c:1169 ../src/develop/lightroom.c:1191 +#: ../src/develop/lightroom.c:1211 +#, c-format +msgid "`%s' is not a Lightroom XMP!" +msgstr "`%s' není lightroom XMP!" + +#: ../src/develop/lightroom.c:1613 +#, c-format +msgid "%s has been imported" +msgid_plural "%s have been imported" +msgstr[0] "%s byl importován" +msgstr[1] "%s byly importovány" +msgstr[2] "%s bylo importováno" + +#: ../src/develop/masks/brush.c:1346 ../src/develop/masks/brush.c:1400 +#, c-format +msgid "hardness: %3.2f%%" +msgstr "tvrdost: %3.2f%%" + +#: ../src/develop/masks/brush.c:1362 ../src/develop/masks/brush.c:1460 +#: ../src/develop/masks/circle.c:148 ../src/develop/masks/circle.c:193 +#: ../src/develop/masks/ellipse.c:484 ../src/develop/masks/ellipse.c:546 +#: ../src/develop/masks/path.c:1255 +#, c-format +msgid "size: %3.2f%%" +msgstr "velikost: %3.2f%%" + +#: ../src/develop/masks/brush.c:3191 +msgid "[BRUSH] change size" +msgstr "[ŠTĚTEC] změnit velikost" + +#: ../src/develop/masks/brush.c:3193 +msgid "[BRUSH] change hardness" +msgstr "[ŠTĚTEC] změna tvrdosti" + +#: ../src/develop/masks/brush.c:3195 +msgid "[BRUSH] change opacity" +msgstr "[ŠTĚTEC] změna neprůhlednosti" + +#: ../src/develop/masks/brush.c:3207 +#, c-format +msgid "brush #%d" +msgstr "štětec #%d" + +#: ../src/develop/masks/brush.c:3220 +#, c-format +msgid "" +"size: scroll, hardness: shift+scroll\n" +"opacity: ctrl+scroll (%d%%)" +msgstr "" +"velikost: rolování, tvrdost: shift+scroll\n" +"neprůhlednost: ctrl+scroll (%d%%)" + +#: ../src/develop/masks/brush.c:3223 +msgid "size: scroll" +msgstr "velikost: posuv" + +#: ../src/develop/masks/circle.c:137 ../src/develop/masks/circle.c:181 +#: ../src/develop/masks/ellipse.c:470 ../src/develop/masks/ellipse.c:531 +#: ../src/develop/masks/path.c:1187 +#, c-format +msgid "feather size: %3.2f%%" +msgstr "velikost peří: %3.2f%%" + +#: ../src/develop/masks/circle.c:1462 +msgid "[CIRCLE] change size" +msgstr "[KRUŽNICE] změna velikosti" + +#: ../src/develop/masks/circle.c:1464 +msgid "[CIRCLE] change feather size" +msgstr "[KRUŽNICE] změnit velikost pírka" + +#: ../src/develop/masks/circle.c:1466 +msgid "[CIRCLE] change opacity" +msgstr "[KRUŽNICE] změna neprůhlednosti" + +#: ../src/develop/masks/circle.c:1479 +#, c-format +msgid "circle #%d" +msgstr "kruh #%d" + +#: ../src/develop/masks/circle.c:1490 ../src/develop/masks/path.c:3406 +#, c-format +msgid "" +"size: scroll, feather size: shift+scroll\n" +"opacity: ctrl+scroll (%d%%)" +msgstr "" +"velikost: posouvání, velikost prolnutí: shift+rolování\n" +"neprůhlednost: ctrl+scroll (%d%%)" + +#: ../src/develop/masks/ellipse.c:456 ../src/develop/masks/ellipse.c:515 +#, c-format +msgid "rotation: %3.f°" +msgstr "rotace: %3.f°" + +#: ../src/develop/masks/ellipse.c:2015 +msgid "[ELLIPSE] change size" +msgstr "[ELIPSA] změna velikosti" + +#: ../src/develop/masks/ellipse.c:2018 +msgid "[ELLIPSE] change feather size" +msgstr "[ELIPSA] změnit velikost pírka" + +#: ../src/develop/masks/ellipse.c:2021 ../src/develop/masks/ellipse.c:2030 +msgid "[ELLIPSE] rotate shape" +msgstr "[ELIPSA] rotace tvaru" + +#: ../src/develop/masks/ellipse.c:2024 +msgid "[ELLIPSE] change opacity" +msgstr "[ELIPSA] změna neprůhlednosti" + +#: ../src/develop/masks/ellipse.c:2027 +msgid "[ELLIPSE] switch feathering mode" +msgstr "[ELIPSA] přepne režim prolnutí" + +#: ../src/develop/masks/ellipse.c:2037 +#, c-format +msgid "ellipse #%d" +msgstr "elipsa #%d" + +#: ../src/develop/masks/ellipse.c:2075 +#, c-format +msgid "" +"size: scroll, feather size: shift+scroll\n" +"rotation: ctrl+shift+scroll, opacity: ctrl+scroll (%d%%)" +msgstr "" +"velikost: posuv, prolnutí: shift+rolování\n" +"rotace: ctrl+shift+scroll, neprůhlednost: ctrl+scroll (%d%%)" + +#: ../src/develop/masks/ellipse.c:2079 +msgid "rotate: ctrl+drag" +msgstr "rotace: ctrl+přetáhnout" + +#: ../src/develop/masks/ellipse.c:2082 +#, c-format +msgid "" +"feather mode: shift+click, rotate: ctrl+drag\n" +"size: scroll, feather size: shift+scroll, opacity: " +"ctrl+scroll (%d%%)" +msgstr "" +"režim prolnutí: shift+kliknutí, otočení: ctrl+přetažení\n" +"velikost: rolování, velikost prolnutí: shift+scroll, " +"neprůhlednost: ctrl+scroll (%d%%)" + +#: ../src/develop/masks/gradient.c:131 ../src/develop/masks/gradient.c:175 +#, c-format +msgid "compression: %3.2f%%" +msgstr "komprese: %3.2f%%" + +#: ../src/develop/masks/gradient.c:143 ../src/develop/masks/gradient.c:186 +#, c-format +msgid "curvature: %3.2f%%" +msgstr "zakřivení: %3.2f%%" + +#: ../src/develop/masks/gradient.c:1514 +msgid "[GRADIENT on pivot] rotate shape" +msgstr "[GRADIENT na středu] rotace tvaru" + +#: ../src/develop/masks/gradient.c:1516 +msgid "[GRADIENT creation] set rotation" +msgstr "[vytvoření GRADIENTU] nastavit rotaci" + +#: ../src/develop/masks/gradient.c:1518 +msgid "[GRADIENT] change curvature" +msgstr "[GRADIENT] změna zakřivení" + +#: ../src/develop/masks/gradient.c:1520 +msgid "[GRADIENT] change compression" +msgstr "[GRADIENT] změna komprese" + +#: ../src/develop/masks/gradient.c:1522 +msgid "[GRADIENT] change opacity" +msgstr "[GRADIENT] změna neprůhlenosti" + +#: ../src/develop/masks/gradient.c:1535 +#, c-format +msgid "gradient #%d" +msgstr "gradient #%d" + +#: ../src/develop/masks/gradient.c:1546 +#, c-format +msgid "" +"curvature: scroll, compression: shift+scroll\n" +"rotation: click+drag, opacity: ctrl+scroll (%d%%)" +msgstr "" +"zakřivení: rolování, komprese: shift+scroll\n" +"rotace: klik+tažení, neprůhlednost: ctrl+posun (%d%%)" + +#: ../src/develop/masks/gradient.c:1551 +#, c-format +msgid "" +"curvature: scroll, compression: shift+scroll\n" +"opacity: ctrl+scroll (%d%%)" +msgstr "" +"zakřivení: rolování, komprese: shift+scroll\n" +"neprůhlednost: ctrl+scroll (%d%%)" + +#: ../src/develop/masks/gradient.c:1554 +msgid "rotate: drag" +msgstr "rotace: přetáhnout" + +#: ../src/develop/masks/masks.c:139 +msgid "[SHAPE] remove shape" +msgstr "[TVAR] odstranit tvar" + +#: ../src/develop/masks/masks.c:305 +#, c-format +msgid "group `%s'" +msgstr "skupina `%s'" + +#: ../src/develop/masks/masks.c:422 +#, c-format +msgid "copy of `%s'" +msgstr "kopie %s'" + +#: ../src/develop/masks/masks.c:985 +#, c-format +msgid "%s: mask version mismatch: %d != %d" +msgstr "%s: Neshoda verze masky: %d <> %d" + +#: ../src/develop/masks/masks.c:1230 ../src/develop/masks/masks.c:1881 +#, c-format +msgid "opacity: %.0f%%" +msgstr "neprůhlednost: %.0f%%" + +#: ../src/develop/masks/masks.c:1625 ../src/libs/masks.c:1084 +msgid "add existing shape" +msgstr "přidat existující tvar" + +#: ../src/develop/masks/masks.c:1652 +msgid "use same shapes as" +msgstr "používat stejné tvary jako" + +#: ../src/develop/masks/masks.c:1965 +msgid "masks can not contain themselves" +msgstr "masky nemohou obsahovat samy sebe" + +#: ../src/develop/masks/path.c:3349 +msgid "[PATH creation] add a smooth node" +msgstr "[vytvoření CESTY] přidat hladký uzel" + +#: ../src/develop/masks/path.c:3351 +msgid "[PATH creation] add a sharp node" +msgstr "[vytvoření CESTY] přidat ostrý uzel" + +#: ../src/develop/masks/path.c:3353 +msgid "[PATH creation] terminate path creation" +msgstr "[vytvoření CESTY] ukončit vytváření cesty" + +#: ../src/develop/masks/path.c:3355 +msgid "[PATH on node] switch between smooth/sharp node" +msgstr "[CESTA na uzlu] přepínání mezi hladkým/ostrý uzlem" + +#: ../src/develop/masks/path.c:3357 +msgid "[PATH on node] remove the node" +msgstr "[CESTA na uzlu] odstranit uzel" + +#: ../src/develop/masks/path.c:3359 +msgid "[PATH on feather] reset curvature" +msgstr "[CESTA na pírku] reset zakřivení" + +#: ../src/develop/masks/path.c:3361 +msgid "[PATH on segment] add node" +msgstr "[CESTA na segmentu] přidat uzel" + +#: ../src/develop/masks/path.c:3363 +msgid "[PATH] change size" +msgstr "[CESTA] změnit velikost" + +#: ../src/develop/masks/path.c:3365 +msgid "[PATH] change feather size" +msgstr "[CESTA] změnit velikost pírka" + +#: ../src/develop/masks/path.c:3367 +msgid "[PATH] change opacity" +msgstr "[CESTA] změnit neprůhlednost" + +#: ../src/develop/masks/path.c:3379 +#, c-format +msgid "path #%d" +msgstr "cesta #%d" + +#: ../src/develop/masks/path.c:3389 +msgid "" +"add node: click, add sharp node: ctrl+click\n" +"cancel: right-click" +msgstr "" +"přidat uzel: klik, přidat ostrý uzel: ctrl+klik\n" +"zrušit: klik pravým tlačítkem" + +#: ../src/develop/masks/path.c:3392 +msgid "" +"add node: click, add sharp node: ctrl+click\n" +"finish path: right-click" +msgstr "" +"přidat uzel: klik, přidat ostrý uzel: ctrl+klik\n" +"dokončit cestu: klikn pravým tlačítkem" + +#: ../src/develop/masks/path.c:3395 +msgid "" +"move node: drag, remove node: right-click\n" +"switch smooth/sharp mode: ctrl+click" +msgstr "" +"přesunout uzel: přetáhnout, odebrat uzel: klik pravým " +"tlačítkem\n" +"přepnout plynulý/ostrý režim: Ctrl+klik" + +#: ../src/develop/masks/path.c:3399 +msgid "" +"node curvature: drag\n" +"reset curvature: right-click" +msgstr "" +"zakřivení uzlu: přetáhněte\n" +"resetovat zakřivení: klik pravým tlačítkem" + +#: ../src/develop/masks/path.c:3403 +msgid "" +"move segment: drag\n" +"add node: ctrl+click" +msgstr "" +"přesunout segment: přetáhněte\n" +"přidat uzel: ctrl+klik" + +#: ../src/develop/pixelpipe_hb.c:486 +msgid "enabled as required" +msgstr "povoleno jako vyžadované" + +#: ../src/develop/pixelpipe_hb.c:487 +msgid "" +"history had module disabled but it is required for this type of image.\n" +"likely introduced by applying a preset, style or history copy&paste" +msgstr "" +"historie měla modul deaktivovaný, ale je pro tento typ obrázku je " +"vyžadován.\n" +"pravděpodobně zavedeno použitím presetu, stylu nebo historie kopírovat&vložit" + +#: ../src/develop/pixelpipe_hb.c:494 +msgid "disabled as not appropriate" +msgstr "zakázáno jako nevhodné" + +#: ../src/develop/pixelpipe_hb.c:495 +msgid "" +"history had module enabled but it is not allowed for this type of image.\n" +"likely introduced by applying a preset, style or history copy&paste" +msgstr "" +"historie měla povolený modul, ale pro tento typ obrázku to není povoleno.\n" +"pravděpodobně zavedeno použitím presetu, stylu nebo historie kopírovat&vložit" + +#: ../src/develop/pixelpipe_hb.c:2697 +msgid "" +"OpenCL errors encountered; disabling OpenCL for this session! some possible " +"causes:\n" +" - OpenCL out of resources due to preference settings. please try with " +"defaults,\n" +" - buggy driver for some device. please run darktable with `-d opencl' to " +"identify,\n" +" - some drivers don't support needed number of events,\n" +" - too small headroom settings while using 'use all device memory'." +msgstr "" +"Došlo k chybám OpenCL; deaktivace OpenCL pro tuto relaci! některé možné " +"příčiny:\n" +" - OpenCL nemá zdroje kvůli nastavení preferencí. zkuste to s výchozími " +"nastaveními,\n" +" - chybný ovladač pro některé zařízení. spusťte prosím darktable s `-d " +"opencl' k identifikaci,\n" +" - některé ovladače nepodporují potřebný počet událostí,\n" +" - příliš malé nastavení meze paměti při použití funkce „použít celou " +"paměť zařízení“." + +#: ../src/develop/pixelpipe_hb.c:2847 +#, c-format +msgid "" +"module '%s' can't get raster mask from module\n" +"'%s' as that is processed later in the pixel pipe.\n" +"raster mask is ignored." +msgstr "" +"modul '%s' nemůže získat rastrovou masku z modulu\n" +"'%s', jak je zpracováno později v pixelové frontě.\n" +"rastrová maska je ignorována." + +#: ../src/develop/tiling.c:819 ../src/develop/tiling.c:1172 +#, c-format +msgid "" +"tiling failed for module '%s'. the output most likely will be OK, but you " +"might want to check." +msgstr "" +"dlaždicování selhalo pro modul '%s'. výstup bude s největší pravděpodobností " +"v pořádku, ale možná jej budete chtít zkontrolovat." + +#: ../src/dtgtk/culling.c:223 +msgid "you have reached the start of your selection" +msgstr "dosáhl jste začátku výběru" + +#: ../src/dtgtk/culling.c:232 +msgid "you have reached the start of your collection" +msgstr "dosáhl jste začátku vaší kolekce" + +#: ../src/dtgtk/culling.c:279 +msgid "you have reached the end of your selection" +msgstr "dosáhl jste konce výběru" + +#: ../src/dtgtk/culling.c:306 +msgid "you have reached the end of your collection" +msgstr "dosáhl jste konce vaší kolekce" + +#: ../src/dtgtk/culling.c:415 +#, c-format +msgid "zooming is limited to %d images" +msgstr "zvětšení je limitováno na %d obrázků" + +#: ../src/dtgtk/range.c:214 ../src/dtgtk/range.c:219 +msgid "invalid" +msgstr "neplatný" + +#: ../src/dtgtk/range.c:327 +#, c-format +msgid "year %s" +msgstr "rok %s" + +#: ../src/dtgtk/range.c:405 +msgid "" +"enter the minimal value\n" +"use 'min' if no bound\n" +"right-click to select from existing values" +msgstr "" +"zadej minimální hodnotu\n" +"použij 'min' pokud nechceš omezit minimum\n" +"klikni pravým tlačítkem myši pro výběr z existujících hodnot" + +#: ../src/dtgtk/range.c:411 +msgid "" +"enter the maximal value\n" +"use 'max' if no bound\n" +"right-click to select from existing values" +msgstr "" +"zadej maximální hodnotu\n" +"použij 'max' pokud nechceš omezit maximum\n" +"klikni pravým tlačítkem myši pro výběr z existujících hodnot" + +#: ../src/dtgtk/range.c:417 +msgid "" +"enter the value\n" +"right-click to select from existing values" +msgstr "" +"zadej hodnotu\n" +"klikni pravým tlačítkem myši pro výběr z existujících hodnot" + +#: ../src/dtgtk/range.c:422 +msgid "" +"enter the minimal date\n" +"in the form YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)\n" +"use 'min' if no bound\n" +"use '-' prefix for relative date\n" +"right-click to select from calendar or existing values" +msgstr "" +"zadej minimální datum\n" +"ve tvaru RRRR:MM:DD hh:mm:ss.sss (yžadovánje pouze letopočet)\n" +"použij 'min' pokud nechceš omezovat\n" +"použij '-' pro relativní datum\n" +"klikni pravým tlačítkem myši pro výběr z kalendáře, nebo existujících hodnot" + +#: ../src/dtgtk/range.c:430 +msgid "" +"enter the maximal date\n" +"in the form YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)\n" +"use 'max' if no bound\n" +"'now' keyword is handled\n" +"use '-' prefix for relative date\n" +"right-click to select from calendar or existing values" +msgstr "" +"zadej maximální datum\n" +"ve tvaru RRRR:MM:DD hh:mm:ss.sss (vyžadován je pouze letopočet)\n" +"použij 'max' pokud nechceš omezovat\n" +"lze použít klíčové slovo 'now' (nyní)\n" +"použij '-' pro relativní datum\n" +"klikni pravým tlačítkem myši pro výběr z kalendáře, nebo existujících hodnot" + +#: ../src/dtgtk/range.c:439 +msgid "" +"enter the date\n" +"in the form YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)\n" +"right-click to select from calendar or existing values" +msgstr "" +"zadej datum\n" +"ve tvaru RRRR:MM:DD hh:mm:ss.ssss (povinný je pouze letopočet)\n" +"klikni pravým tlačítkem myši pro výběr z kalendáře, nebo existujících hodnot" + +#: ../src/dtgtk/range.c:461 +msgid "date-time interval to subtract from the max value" +msgstr "interval data-času pro odečtení od max. hodnoty" + +#: ../src/dtgtk/range.c:465 +msgid "date-time interval to add to the min value" +msgstr "interval data-času pro přidání k min. hodnotě" + +#: ../src/dtgtk/range.c:486 +msgid "fixed" +msgstr "pevný" + +#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1498 +msgid "relative" +msgstr "relativní" + +#: ../src/dtgtk/range.c:577 +msgid "selected" +msgstr "vybrané" + +#: ../src/dtgtk/range.c:624 ../src/dtgtk/range.c:1768 ../src/dtgtk/range.c:1819 +#: ../src/libs/colorpicker.c:53 +msgid "min" +msgstr "min" + +#: ../src/dtgtk/range.c:630 ../src/dtgtk/range.c:1780 ../src/dtgtk/range.c:1831 +#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:309 +msgid "max" +msgstr "max" + +#: ../src/dtgtk/range.c:944 +msgid "date type" +msgstr "typ data" + +#. the date section +#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1505 +msgid "date" +msgstr "datum" + +#: ../src/dtgtk/range.c:962 ../src/dtgtk/range.c:1028 +msgid "" +"click to select date\n" +"double-click to use the date directly" +msgstr "" +"klikni pro výběr data\n" +"dvojklik pro přímé použití data" + +#: ../src/dtgtk/range.c:973 +msgid "years: " +msgstr "roky: " + +#: ../src/dtgtk/range.c:981 +msgid "months: " +msgstr "měsíců: " + +#: ../src/dtgtk/range.c:989 +msgid "days: " +msgstr "dní: " + +#. the time section +#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1505 +msgid "time" +msgstr "čas" + +#: ../src/dtgtk/range.c:1049 +msgid "current date: " +msgstr "aktuální datum: " + +#: ../src/dtgtk/range.c:1053 ../src/dtgtk/range.c:1787 +#: ../src/dtgtk/range.c:1838 +msgid "now" +msgstr "nyní" + +#: ../src/dtgtk/range.c:1055 +msgid "set the value to always match current datetime" +msgstr "nastavte hodnotu tak, aby vždy odpovídala aktuálnímu datu a času" + +#. apply button +#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:180 +#: ../src/libs/metadata.c:735 ../src/libs/styles.c:901 +msgid "apply" +msgstr "použít" + +#: ../src/dtgtk/range.c:1059 +msgid "set the range bound with this value" +msgstr "nastavte rozsah vázaný na tuto hodnotu" + +#: ../src/dtgtk/resetlabel.c:59 +msgid "double-click to reset" +msgstr "dvojklik pro reset" + +#: ../src/dtgtk/thumbnail.c:142 ../src/dtgtk/thumbnail.c:175 +msgid "current" +msgstr "aktuální" + +#: ../src/dtgtk/thumbnail.c:142 ../src/dtgtk/thumbnail.c:151 +msgid "leader" +msgstr "vůdce" + +#: ../src/dtgtk/thumbnail.c:150 +msgid "" +"\n" +"click here to set this image as group leader\n" +msgstr "" +"\n" +"kliknutím sem nastavíte tento obrázek jako lídra skupiny\n" + +#. and the number of grouped images +#: ../src/dtgtk/thumbnail.c:187 ../src/libs/filters/grouping.c:144 +#: ../src/libs/filters/grouping.c:169 +msgid "grouped images" +msgstr "seskupené obrázky" + +#: ../src/dtgtk/thumbnail.c:814 ../src/dtgtk/thumbnail.c:1623 +#: ../src/iop/ashift.c:6138 ../src/iop/ashift.c:6227 ../src/iop/ashift.c:6229 +#: ../src/iop/ashift.c:6231 ../src/libs/navigation.c:111 +#: ../src/libs/navigation.c:193 +msgid "fit" +msgstr "vyplnit" + +#: ../src/dtgtk/thumbtable.c:1139 ../src/views/slideshow.c:422 +msgid "there are no images in this collection" +msgstr "v této kolekci nejsou žádné obrázky" + +#: ../src/dtgtk/thumbtable.c:1146 +msgid "if you have not imported any images yet" +msgstr "pokud jste ještě neimportovali žádné obrázky" + +#: ../src/dtgtk/thumbtable.c:1150 +msgid "you can do so in the import module" +msgstr "můžete tak učinit v modulu importu" + +#: ../src/dtgtk/thumbtable.c:1159 +msgid "try to relax the filter settings in the top panel" +msgstr "zkuste uvolnit nastavení filtru v horním panelu" + +#: ../src/dtgtk/thumbtable.c:1170 +msgid "or add images in the collections module in the left panel" +msgstr "nebo přidejte obrázky do modulu kolekcí v levém panelu" + +#: ../src/dtgtk/thumbtable.c:1455 +msgid "" +"you have changed the settings related to how thumbnails are generated.\n" +msgstr "změnili jste nastavení týkající se způsobu generování miniatur.\n" + +#: ../src/dtgtk/thumbtable.c:1458 +msgid "" +"all cached thumbnails need to be invalidated.\n" +"\n" +msgstr "" +"všechny miniatury uložené v mezipaměti musí být zneplatněny.\n" +"\n" + +#: ../src/dtgtk/thumbtable.c:1462 +#, c-format +msgid "" +"cached thumbnails starting from level %d need to be invalidated.\n" +"\n" +msgstr "" +"miniatury uložené v mezipaměti počínaje úrovní %d je třeba zrušit.\n" +"\n" + +#: ../src/dtgtk/thumbtable.c:1467 +#, c-format +msgid "" +"cached thumbnails below level %d need to be invalidated.\n" +"\n" +msgstr "" +"miniatury uložené v mezipaměti pod úrovní %d je třeba zrušit.\n" +"\n" + +#: ../src/dtgtk/thumbtable.c:1472 +#, c-format +msgid "" +"cached thumbnails between level %d and %d need to be invalidated.\n" +"\n" +msgstr "" +"miniatury uložené v mezipaměti mezi úrovní %d a %d je třeba zrušit.\n" +"\n" + +#: ../src/dtgtk/thumbtable.c:1475 +msgid "do you want to do that now?" +msgstr "chcete to udělat teď?" + +#: ../src/dtgtk/thumbtable.c:1477 +msgid "cached thumbnails invalidation" +msgstr "zneplatnění miniatur uložených v mezipaměti" + +#. setup history key accelerators +#: ../src/dtgtk/thumbtable.c:2738 +msgid "copy history" +msgstr "kopírovat historii" + +#: ../src/dtgtk/thumbtable.c:2740 +msgid "copy history parts" +msgstr "kopírovat části historie" + +#: ../src/dtgtk/thumbtable.c:2742 +msgid "paste history" +msgstr "vložit historii" + +#: ../src/dtgtk/thumbtable.c:2744 +msgid "paste history parts" +msgstr "vložit části historie" + +#: ../src/dtgtk/thumbtable.c:2746 ../src/libs/copy_history.c:394 +msgid "discard history" +msgstr "zahodit historii" + +#: ../src/dtgtk/thumbtable.c:2749 +msgid "duplicate image" +msgstr "duplikovat obrázek" + +#: ../src/dtgtk/thumbtable.c:2751 +msgid "duplicate image virgin" +msgstr "panenský duplikát obrázku" + +#: ../src/dtgtk/thumbtable.c:2761 ../src/libs/select.c:148 +msgid "select film roll" +msgstr "vybrat filmový pás" + +#: ../src/dtgtk/thumbtable.c:2763 ../src/libs/select.c:152 +msgid "select untouched" +msgstr "vybrat nedotčené" + +#: ../src/generate-cache/main.c:50 +#, c-format +msgid "creating cache directories\n" +msgstr "vytváření adresářů mezipaměti\n" + +#: ../src/generate-cache/main.c:56 +#, c-format +msgid "creating cache directory '%s'\n" +msgstr "vytvoření adresáře mezipaměti '%s'\n" + +#: ../src/generate-cache/main.c:59 +#, c-format +msgid "could not create directory '%s'!\n" +msgstr "nelze vytvořit adresář '%s'!\n" + +#: ../src/generate-cache/main.c:83 +#, c-format +msgid "warning: no images are matching the requested image id range\n" +msgstr "varování: žádné obrázky neodpovídají požadovanému rozsahu ID obrázku\n" + +#: ../src/generate-cache/main.c:86 +#, c-format +msgid "warning: did you want to swap these boundaries?\n" +msgstr "varování: chtěli jste tyto hranice prohodit?\n" + +#: ../src/generate-cache/main.c:227 +#, c-format +msgid "" +"warning: disk backend for thumbnail cache is disabled (cache_disk_backend)\n" +"if you want to pre-generate thumbnails and for darktable to use them, you " +"need to enable disk backend for thumbnail cache\n" +"no thumbnails to be generated, done.\n" +msgstr "" +"varování: diskový backend pro mezipaměť miniatur je zakázán " +"(cache_disk_backend)\n" +"pokud chcete předgenerovat náhledy a aby je mohl darktable používat, musíte " +"povolit diskový backend pro mezipaměť náhledů\n" +"žádné miniatury k generování, hotovo.\n" + +#: ../src/generate-cache/main.c:238 +#, c-format +msgid "" +"warning: disk backend for full preview cache is disabled " +"(cache_disk_backend_full)\n" +"if you want to pre-generate full previews and for darktable to use them, you " +"need to enable disk backend for full preview cache\n" +"no full previews to be generated, done.\n" +msgstr "" +"varování: diskový backend pro úplnou mezipaměť náhledu je zakázán " +"(cache_disk_backend_full)\n" +"pokud chcete předem vygenerovat úplné náhledy a aby je mohl darktable " +"používat, musíte povolit diskový backend pro úplnou mezipaměť náhledu\n" +"negenerují se žádné úplné náhledy, hotovo.\n" + +#: ../src/generate-cache/main.c:248 +#, c-format +msgid "error: ensure that min_mip <= max_mip\n" +msgstr "chyba: ujistěte se, že min_mip <= max_mip\n" + +#: ../src/generate-cache/main.c:253 +#, c-format +msgid "creating complete lighttable thumbnail cache\n" +msgstr "vtvořit kompletní mezipaměť miniatur katalogu\n" + +#: ../src/gui/about.c:34 +#, c-format +msgid "copyright (c) the authors 2009-%s" +msgstr "copyright (c) autoři 2009-%s" + +#: ../src/gui/about.c:39 +msgid "organize and develop images from digital cameras" +msgstr "organizovat a zpracovávat snímky z digitálních fotoaparátů" + +#: ../src/gui/about.c:51 +msgid "all those of you that made previous releases possible" +msgstr "všichni ti z vás, kteří umožnili předchozí vydání" + +#: ../src/gui/about.c:56 +msgid "and..." +msgstr "a (and)..." + +#: ../src/gui/about.c:59 +msgid "translator-credits" +msgstr "překladatel" + +#: ../src/gui/accelerators.c:72 +msgid "in active view" +msgstr "v aktivním zobrazení" + +#: ../src/gui/accelerators.c:73 +msgid "in other views" +msgstr "v jiných pohledech" + +#: ../src/gui/accelerators.c:74 +msgid "fallbacks" +msgstr "zálohy" + +#: ../src/gui/accelerators.c:75 +msgid "speed adjustments" +msgstr "rychlé úpravy" + +#: ../src/gui/accelerators.c:76 +msgid "disabled defaults" +msgstr "zakázané výchozí hodnoty" + +#: ../src/gui/accelerators.c:96 ../src/views/view.c:1361 +msgid "scroll" +msgstr "posun" + +#: ../src/gui/accelerators.c:97 +msgid "pan" +msgstr "posun" + +#: ../src/gui/accelerators.c:98 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6230 ../src/iop/clipping.c:1955 +#: ../src/iop/clipping.c:2147 ../src/iop/clipping.c:2163 +#: ../src/views/darkroom.c:2522 ../src/views/lighttable.c:1250 +msgid "horizontal" +msgstr "horizontální" + +#: ../src/gui/accelerators.c:99 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6228 ../src/iop/clipping.c:1954 +#: ../src/iop/clipping.c:2148 ../src/iop/clipping.c:2162 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:1254 +msgid "vertical" +msgstr "vertikální" + +#: ../src/gui/accelerators.c:100 +msgid "diagonal" +msgstr "úhlopříčka" + +#: ../src/gui/accelerators.c:102 +msgid "leftright" +msgstr "levýpravý" + +#: ../src/gui/accelerators.c:103 +msgid "updown" +msgstr "nahorudolů" + +#: ../src/gui/accelerators.c:104 +msgid "pgupdown" +msgstr "pgupdown" + +#: ../src/gui/accelerators.c:112 ../src/views/view.c:1343 +msgid "shift" +msgstr "shift" + +#: ../src/gui/accelerators.c:113 ../src/views/view.c:1345 +msgid "ctrl" +msgstr "ctrl" + +#: ../src/gui/accelerators.c:114 ../src/views/view.c:1347 +msgid "alt" +msgstr "alt" + +#: ../src/gui/accelerators.c:115 +msgid "cmd" +msgstr "cmd" + +#: ../src/gui/accelerators.c:116 +msgid "altgr" +msgstr "altgr" + +#: ../src/gui/accelerators.c:127 ../src/gui/accelerators.c:174 +#: ../src/libs/tagging.c:1804 +msgid "edit" +msgstr "upravit" + +#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 +msgid "up" +msgstr "nahoru" + +#: ../src/gui/accelerators.c:129 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 +msgid "down" +msgstr "dolů" + +#: ../src/gui/accelerators.c:133 +msgid "set" +msgstr "nastav" + +#: ../src/gui/accelerators.c:137 +msgid "popup" +msgstr "popup" + +#: ../src/gui/accelerators.c:138 ../src/gui/accelerators.c:171 +#: ../src/gui/gtk.c:3100 ../src/views/lighttable.c:760 +msgid "next" +msgstr "další" + +#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:170 +#: ../src/gui/gtk.c:3101 ../src/views/lighttable.c:761 +msgid "previous" +msgstr "předešlý" + +#: ../src/gui/accelerators.c:141 ../src/gui/accelerators.c:1598 +msgid "last" +msgstr "poslední" + +#: ../src/gui/accelerators.c:142 ../src/gui/accelerators.c:1597 +msgid "first" +msgstr "první" + +#: ../src/gui/accelerators.c:146 ../src/gui/accelerators.c:159 +#: ../src/gui/accelerators.c:356 ../src/libs/filters/rating_range.c:295 +#: ../src/libs/tagging.c:3150 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2258 ../src/views/darkroom.c:2494 +msgid "toggle" +msgstr "přepnout" + +#: ../src/gui/accelerators.c:149 +msgid "ctrl-toggle" +msgstr "ctrl-přepnout" + +#: ../src/gui/accelerators.c:150 +msgid "ctrl-on" +msgstr "ctrl-zap" + +#: ../src/gui/accelerators.c:151 +msgid "right-toggle" +msgstr "pravé-přepnout" + +#: ../src/gui/accelerators.c:152 +msgid "right-on" +msgstr "pravé-zap" + +#: ../src/gui/accelerators.c:163 ../src/gui/gtk.c:3099 +msgid "activate" +msgstr "aktivovat" + +#: ../src/gui/accelerators.c:164 +msgid "ctrl-activate" +msgstr "ctrl-aktivovat" + +#: ../src/gui/accelerators.c:165 +msgid "right-activate" +msgstr "pravé-aktivovat" + +#: ../src/gui/accelerators.c:172 +msgid "store" +msgstr "uložit" + +#: ../src/gui/accelerators.c:175 ../src/gui/styles_dialog.c:651 +msgid "update" +msgstr "aktualizovat" + +#: ../src/gui/accelerators.c:176 ../src/libs/tools/global_toolbox.c:60 +#: ../src/libs/tools/global_toolbox.c:510 +msgid "preferences" +msgstr "nastavení" + +#: ../src/gui/accelerators.c:181 +msgid "apply on new instance" +msgstr "použít na novou instanci" + +#: ../src/gui/accelerators.c:186 +msgid "start" +msgstr "start" + +#: ../src/gui/accelerators.c:187 +msgid "end" +msgstr "konec" + +#: ../src/gui/accelerators.c:374 +msgid "entry" +msgstr "záznam" + +#: ../src/gui/accelerators.c:450 +msgid "combo effect not found" +msgstr "kombinovaný efekt nenalezen" + +#: ../src/gui/accelerators.c:627 +msgid "(keypad)" +msgstr "(klávesnice)" + +#: ../src/gui/accelerators.c:636 +msgid "tablet button" +msgstr "tlačítko tabletu" + +#: ../src/gui/accelerators.c:645 +msgid "unknown driver" +msgstr "neznámý ovladač" + +#: ../src/gui/accelerators.c:718 +msgid "long" +msgstr "dlouhý" + +#: ../src/gui/accelerators.c:719 +msgid "double-press" +msgstr "dvojstisk" + +#: ../src/gui/accelerators.c:720 +msgid "triple-press" +msgstr "trojstisk" + +#: ../src/gui/accelerators.c:721 +msgid "press" +msgstr "stisk" + +#: ../src/gui/accelerators.c:725 +msgctxt "accel" +msgid "left" +msgstr "levý" + +#: ../src/gui/accelerators.c:726 +msgctxt "accel" +msgid "right" +msgstr "pravý" + +#: ../src/gui/accelerators.c:727 +msgctxt "accel" +msgid "middle" +msgstr "střed" + +#: ../src/gui/accelerators.c:728 +msgctxt "accel" +msgid "long" +msgstr "dlouhý" + +#: ../src/gui/accelerators.c:729 +msgctxt "accel" +msgid "double-click" +msgstr "dvojklik" + +#: ../src/gui/accelerators.c:730 +msgctxt "accel" +msgid "triple-click" +msgstr "trojklik" + +#: ../src/gui/accelerators.c:731 +msgid "click" +msgstr "klik" + +#: ../src/gui/accelerators.c:759 +msgid "first instance" +msgstr "první instance" + +#: ../src/gui/accelerators.c:761 +msgid "last instance" +msgstr "poslední instance" + +#: ../src/gui/accelerators.c:763 +msgid "relative instance" +msgstr "relativní instance" + +#: ../src/gui/accelerators.c:780 ../src/gui/accelerators.c:2864 +#: ../src/gui/accelerators.c:3811 +msgid "speed" +msgstr "rychlost" + +#: ../src/gui/accelerators.c:923 +#, c-format +msgid "" +"Lua script command copied to clipboard:\n" +"\n" +"%s" +msgstr "" +"Příkaz skriptu Lua zkopírován do schránky:\n" +"\n" +"%s" + +#: ../src/gui/accelerators.c:1025 ../src/gui/accelerators.c:1044 +msgid "start typing for incremental search" +msgstr "začněte psát pro přírůstkové vyhledávání" + +#: ../src/gui/accelerators.c:1028 +msgid "" +"\n" +"press Delete to delete selected shortcut" +msgstr "" +"\n" +"stisknutím Delete smažete vybraného zástupce" + +#: ../src/gui/accelerators.c:1030 +msgid "" +"\n" +"press Delete to disable selected default shortcut" +msgstr "" +"\n" +"stisknutím Delete deaktivujete vybranou výchozí zkratku" + +#: ../src/gui/accelerators.c:1031 +msgid "" +"\n" +"press Delete to restore selected default shortcut" +msgstr "" +"\n" +"stisknutím Delete obnovíte výchozí zkratku" + +#: ../src/gui/accelerators.c:1033 +msgid "" +"\n" +"double-click to add new shortcut" +msgstr "" +"\n" +"dvojklik přidá novou zkratku" + +#: ../src/gui/accelerators.c:1045 +msgid "click to filter shortcuts list" +msgstr "klikněte pro filtrování seznamu zkratek" + +#: ../src/gui/accelerators.c:1047 +msgid "" +"\n" +"right click to show action of selected shortcut" +msgstr "" +"\n" +"kliknutím pravým tlačítkem zobrazíte akci vybrané zkratky" + +#: ../src/gui/accelerators.c:1050 +msgid "" +"\n" +"double-click to define new shortcut" +msgstr "" +"\n" +"dvojklik definujte novou zkratku" + +#: ../src/gui/accelerators.c:1081 +msgid "shift+alt+scroll to change height" +msgstr "shift+alt+scroll pro změnu výšky" + +#: ../src/gui/accelerators.c:1101 +msgid "" +"press keys with mouse click and scroll or move combinations to create a " +"shortcut" +msgstr "" +"stiskněte klávesy s kliknutím myši a posouváním nebo přesouváním kombinací " +"vytvořte zkratku" + +#: ../src/gui/accelerators.c:1102 +msgid "click to open shortcut configuration" +msgstr "kliknutím otevřete konfiguraci zkratek" + +#: ../src/gui/accelerators.c:1103 +msgid "ctrl+click to add to quick access panel\n" +msgstr "ctrl+klik pro přidání na panel rychlého přístupu\n" + +#: ../src/gui/accelerators.c:1104 +msgid "ctrl+click to remove from quick access panel\n" +msgstr "ctrl+klik pro odebrání z panelu rychlého přístupu\n" + +#: ../src/gui/accelerators.c:1105 +msgid "scroll to change default speed" +msgstr "scroll pro změnu výchozí rychlosti" + +#: ../src/gui/accelerators.c:1106 +msgid "right click to exit mapping mode" +msgstr "pro opuštění režimu mapování klikněte pravým tlačítkem" + +#: ../src/gui/accelerators.c:1119 +#, c-format +msgid "" +"%sright-click to type a specific value between %s and %s\n" +"or hold ctrl+shift while dragging to ignore soft limits." +msgstr "" +"%s kliknutím pravým tlačítkem myši zadejte konkrétní hodnotu mezi %s " +"a %s\n" +"nebo při tažení podržte ctrl+shift, abyste ignorovali jemné limity." + +#: ../src/gui/accelerators.c:1183 +msgid "ctrl+v" +msgstr "ctrl+v" + +#: ../src/gui/accelerators.c:1183 +msgid "right long click" +msgstr "dlouhé kliknutí pravým tlačítkem" + +#: ../src/gui/accelerators.c:1183 +msgid "to copy Lua command" +msgstr "zkopírujte příkaz Lua" + +#: ../src/gui/accelerators.c:1451 +msgid "shortcut for move exists with single effect" +msgstr "zkratka pro pohyb existuje s jediným efektem" + +#: ../src/gui/accelerators.c:1452 +#, c-format +msgid "" +"%s\n" +"\n" +"(assign %s to %s)" +msgstr "" +"%s\n" +"\n" +"(přiřadit %s k %s)" + +#: ../src/gui/accelerators.c:1453 +msgid "create separate shortcuts for up and down move?" +msgstr "vytvořit samostatné zkratky pro pohyb nahoru a dolů?" + +#: ../src/gui/accelerators.c:1479 +#, c-format +msgid "%s, speed reset" +msgstr "%s, reset rychlosti" + +#: ../src/gui/accelerators.c:1497 +msgid "shortcut exists with different settings" +msgstr "zkratka existuje s jinými nastaveními" + +#: ../src/gui/accelerators.c:1498 +msgid "reset the settings of the shortcut?" +msgstr "resetovat nastavení zkratky?" + +#: ../src/gui/accelerators.c:1507 +msgid "shortcut already exists" +msgstr "zkratka již existuje" + +#: ../src/gui/accelerators.c:1509 +msgid "disable this default shortcut?" +msgstr "zakázat tuto výchozí zkratku?" + +#: ../src/gui/accelerators.c:1510 +msgid "remove the shortcut?" +msgstr "odstranit zkratku?" + +#: ../src/gui/accelerators.c:1550 +msgid "clashing shortcuts exist" +msgstr "existují konfliktní zkratky" + +#: ../src/gui/accelerators.c:1551 +msgid "remove these existing shortcuts?" +msgstr "odstranit tyto stávající zkratky?" + +#. or 3, but change char relative[] = "-2" to "-1" +#. NUM_INSTANCES +#: ../src/gui/accelerators.c:1596 +msgid "preferred" +msgstr "přednostně" + +#: ../src/gui/accelerators.c:1599 +msgid "second" +msgstr "druhý" + +#: ../src/gui/accelerators.c:1600 +msgid "last but one" +msgstr "předposlední" + +#: ../src/gui/accelerators.c:1761 ../src/gui/accelerators.c:1826 +msgid "(unchanged)" +msgstr "(nezměněný)" + +#: ../src/gui/accelerators.c:1941 +msgid "" +"define a shortcut by pressing a key, optionally combined with modifier keys " +"(ctrl/shift/alt)\n" +"a key can be double or triple pressed, with a long last press\n" +"while the key is held, a combination of mouse buttons can be (double/triple/" +"long) clicked\n" +"still holding the key (and modifiers and/or buttons) a scroll or mouse move " +"can be added\n" +"connected devices can send keys or moves using their physical controllers\n" +"\n" +"right-click to cancel" +msgstr "" +"definovat zkratku stisknutím klávesy, volitelně v kombinaci s modifikačními " +"klávesami (ctrl/shift/alt)\n" +"klávesu lze stisknout dvakrát nebo třikrát, s dlouhým posledním stisknutím\n" +"při držení klávesy lze kliknout na kombinaci tlačítek myši (dvojité/trojité/" +"dlouhé).\n" +"při stále držení klávesy (a modifikátorů a/nebo tlačítek) lze přidat " +"rolování nebo pohyb myší\n" +"připojená zařízení mohou odesílat klávesy nebo pohyby pomocí svých fyzických " +"ovladačů\n" +"\n" +"klikněte pravým tlačítkem pro zrušení" + +#: ../src/gui/accelerators.c:2014 +msgid "removing shortcut" +msgstr "odstranění zkratky" + +#: ../src/gui/accelerators.c:2016 +msgid "disable the selected default shortcut?" +msgstr "zakázat vybranou výchozí zkratku?" + +#: ../src/gui/accelerators.c:2017 +msgid "restore the selected default shortcut?" +msgstr "obnovit vybranou výchozí zkratku?" + +#: ../src/gui/accelerators.c:2018 +msgid "remove the selected shortcut?" +msgstr "odstranit vybranou zkratku?" + +#: ../src/gui/accelerators.c:2107 +msgid "command" +msgstr "příkaz" + +#: ../src/gui/accelerators.c:2108 +msgid "preset" +msgstr "preset" + +#: ../src/gui/accelerators.c:2491 +msgid "restore shortcuts" +msgstr "obnovit zkratky" + +#: ../src/gui/accelerators.c:2494 +msgid "_defaults" +msgstr "_výchozí" + +#: ../src/gui/accelerators.c:2495 +msgid "_startup" +msgstr "_spuštění" + +#: ../src/gui/accelerators.c:2496 +msgid "_edits" +msgstr "_úpravy" + +#: ../src/gui/accelerators.c:2503 +msgid "" +"restore shortcuts from one of these states:\n" +" - default\n" +" - as at startup\n" +" - as when opening this dialog\n" +msgstr "" +"obnovit zástupce z jednoho z těchto stavů:\n" +" - výchozí\n" +" - jako při startu\n" +" - jako při otevření tohoto dialogu\n" + +#: ../src/gui/accelerators.c:2510 +msgid "" +"clear all newer shortcuts\n" +"(instead of just restoring changed ones)" +msgstr "" +"vymazat všechny novější zkratky\n" +"(místo pouhého obnovení změněných)" + +#: ../src/gui/accelerators.c:2567 ../src/gui/preferences.c:905 +#: ../src/libs/tools/global_toolbox.c:494 +#: ../src/libs/tools/global_toolbox.c:652 +msgid "shortcuts" +msgstr "zkratky" + +#: ../src/gui/accelerators.c:2577 +msgid "export shortcuts" +msgstr "exportovat zkratky" + +#: ../src/gui/accelerators.c:2586 +msgid "" +"export all shortcuts to a file\n" +"or just for one selected device\n" +msgstr "" +"exportovat všechny zkratky do souboru\n" +"nebo jen pro jedno vybrané zařízení\n" + +#: ../src/gui/accelerators.c:2593 ../src/gui/accelerators.c:2675 +msgid "keyboard" +msgstr "klávesnice" + +#: ../src/gui/accelerators.c:2605 +msgid "device id" +msgstr "id zařízení" + +#: ../src/gui/accelerators.c:2631 +msgid "select file to export" +msgstr "vyberte soubor pro export" + +#: ../src/gui/accelerators.c:2632 ../src/libs/tagging.c:2556 +msgid "_export" +msgstr "_export" + +#: ../src/gui/accelerators.c:2659 +msgid "import shortcuts" +msgstr "importovat zkratky" + +#: ../src/gui/accelerators.c:2668 +msgid "" +"import all shortcuts from a file\n" +"or just for one selected device\n" +msgstr "" +"importovat všechny zkratky ze souboru\n" +"nebo jen pro jedno vybrané zařízení\n" + +#: ../src/gui/accelerators.c:2687 +msgid "id in file" +msgstr "id v souboru" + +#: ../src/gui/accelerators.c:2693 +msgid "id when loaded" +msgstr "id při načtení" + +#: ../src/gui/accelerators.c:2697 +msgid "clear device first" +msgstr "nejprve vyčistěte zařízení" + +#: ../src/gui/accelerators.c:2722 +msgid "select file to import" +msgstr "vyberte soubor k importu" + +#: ../src/gui/accelerators.c:2723 ../src/libs/tagging.c:2520 +msgid "_import" +msgstr "_import" + +#: ../src/gui/accelerators.c:2815 +msgid "search shortcuts list" +msgstr "prohledávat seznam zkratek" + +#: ../src/gui/accelerators.c:2817 +msgid "" +"incrementally search the list of shortcuts\n" +"press up or down keys to cycle through matches" +msgstr "" +"postupně prohledávat seznam zkratek\n" +"stisknutím kláves nahoru nebo dolů procházejte nalezené" + +#: ../src/gui/accelerators.c:2837 ../src/views/view.c:1554 +msgid "shortcut" +msgstr "zkratka" + +#: ../src/gui/accelerators.c:2840 ../src/gui/accelerators.c:2942 +#: ../src/views/view.c:1556 +msgid "action" +msgstr "akce" + +#: ../src/gui/accelerators.c:2850 +msgid "element" +msgstr "element" + +#: ../src/gui/accelerators.c:2858 +msgid "effect" +msgstr "efekt" + +#: ../src/gui/accelerators.c:2918 +msgid "search actions list" +msgstr "prohledat seznam akcí" + +#: ../src/gui/accelerators.c:2920 +msgid "" +"incrementally search the list of actions\n" +"press up or down keys to cycle through matches" +msgstr "" +"postupně prohledávejte seznam akcí\n" +"stisknutím kláves nahoru nebo dolů procházejte nalezené" + +#: ../src/gui/accelerators.c:2950 ../src/gui/guides.c:719 +#: ../src/libs/export_metadata.c:179 +msgid "type" +msgstr "typ" + +#: ../src/gui/accelerators.c:2988 +msgid "enable fallbacks" +msgstr "povolit zálohy" + +#: ../src/gui/accelerators.c:2989 +msgid "" +"enables default meanings for additional buttons, modifiers or moves\n" +"when used in combination with a base shortcut" +msgstr "" +"povolí výchozí významy pro další tlačítka, modifikátory nebo pohyby\n" +"při použití v kombinaci se základní zkratkou" + +#: ../src/gui/accelerators.c:2997 +msgid "open help page for shortcuts" +msgstr "otevřít stránku nápovědy pro zkratky" + +#: ../src/gui/accelerators.c:3002 +msgid "restore..." +msgstr "obnovit..." + +#: ../src/gui/accelerators.c:3003 +msgid "restore default shortcuts or previous state" +msgstr "obnovit výchozí zkratku nebo předchozí stav" + +#: ../src/gui/accelerators.c:3007 ../src/libs/styles.c:887 +#: ../src/libs/tagging.c:3282 +msgid "import..." +msgstr "import..." + +#: ../src/gui/accelerators.c:3008 +msgid "fully or partially import shortcuts from file" +msgstr "zcela nebo částečně importovat zkratky ze souboru" + +#: ../src/gui/accelerators.c:3012 ../src/libs/styles.c:894 +#: ../src/libs/tagging.c:3285 +msgid "export..." +msgstr "export..." + +#: ../src/gui/accelerators.c:3013 +msgid "fully or partially export shortcuts to file" +msgstr "zcela nebo částečně exportovat zkratky do souboru" + +#: ../src/gui/accelerators.c:3021 +msgid "" +"the recommended way to assign shortcuts to visual elements is the visual " +"shortcut mapping mode.\n" +"this is switched on by toggling the \"keyboard\" button next to " +"preferences in the top panel. in this mode, clicking on a widget or area " +"will open this dialog with the appropriate selection for advanced " +"configuration.\n" +"\n" +"multiple shortcuts can be assigned to the same action. this is especially " +"useful if it has multiple elements, like the module buttons or the " +"colorpickers attached to sliders. however, with fallbacks enabled one " +"can use the same simple shortcuts and change their element or " +"effect by adding mouse clicks.\n" +"\n" +"click three times to dismiss this notice permanently" +msgstr "" +"doporučeným způsobem přiřazení zkratek k vizuálním prvkům je režim " +"vizuálního mapování zkratek.\n" +"toto se zapíná přepnutím tlačítka \"klávesnice\" vedle předvoleb v " +"horním panelu. v tomto režimu se kliknutím na widget nebo oblast otevře " +"tento dialog s příslušným výběrem pro pokročilou konfiguraci.\n" +"\n" +"ke stejné akci lze přiřadit více zkratek. to je zvláště užitečné, pokud má " +"více prvků, jako jsou tlačítka modulu nebo výběry barev připojené k " +"posuvníkům. avšak s povolenými záložními možnostmi lze používat " +"stejné jednoduché zkratky a měnit jejich prvek nebo efekt " +"přidáním kliknutí myší.\n" +"\n" +"kliknutím třikrát toto oznámení trvale zavřete" + +#: ../src/gui/accelerators.c:3452 +msgid "reinitialising input devices" +msgstr "reinicializace vstupních zařízení" + +#: ../src/gui/accelerators.c:3594 +msgid "down move" +msgstr "pohyb dolů" + +#: ../src/gui/accelerators.c:3594 +msgid "flip top/bottom first/last" +msgstr "převrátit horní/dolní první/poslední" + +#: ../src/gui/accelerators.c:3679 +msgid "fallback to move" +msgstr "záloha pro přesun" + +#: ../src/gui/accelerators.c:3921 +#, c-format +msgid "%s not assigned" +msgstr "%s nepřiřazen" + +#: ../src/gui/accelerators.c:4102 +#, c-format +msgid "%s assigned to %s" +msgstr "%s přiřazeno k %s" + +#: ../src/gui/accelerators.c:4321 +msgid "short key press resets stuck keys" +msgstr "krátké stisknutí tlačítka resetuje zaseknuté klávesy" + +#: ../src/gui/gtk.c:175 ../src/views/darkroom.c:3861 +msgid "darktable - darkroom preview" +msgstr "darktable - náhled editoru" + +#: ../src/gui/gtk.c:186 +msgid "tooltips off" +msgstr "vypnout tooltipy" + +#: ../src/gui/gtk.c:188 +msgid "tooltips on" +msgstr "zapnout tooltipy" + +#: ../src/gui/gtk.c:193 +msgid "" +"tooltip visibility can only be toggled if compositing is enabled in your " +"window manager" +msgstr "" +"viditelnost tooltipů lze přepínat pouze v případě, že je ve správci oken " +"povoleno skládání" + +#: ../src/gui/gtk.c:809 +msgid "closing darktable..." +msgstr "zavírám darktable..." + +#: ../src/gui/gtk.c:1032 +msgid "URL opened in web browser" +msgstr "Adresa URL otevřena ve webovém prohlížeči" + +#: ../src/gui/gtk.c:1036 +msgid "error while opening URL in web browser" +msgstr "chyba při otevírání adresy URL ve webovém prohlížeči" + +#. View menu +#: ../src/gui/gtk.c:1104 +msgctxt "menu" +msgid "Views" +msgstr "Pohledy" + +#: ../src/gui/gtk.c:1108 +msgctxt "menu" +msgid "lighttable" +msgstr "katalog" + +#: ../src/gui/gtk.c:1109 +msgctxt "menu" +msgid "darkroom" +msgstr "editor" + +#: ../src/gui/gtk.c:1115 +msgctxt "menu" +msgid "slideshow" +msgstr "slideshow" + +#: ../src/gui/gtk.c:1117 +msgctxt "menu" +msgid "map" +msgstr "mapa" + +#: ../src/gui/gtk.c:1119 +msgctxt "menu" +msgid "print" +msgstr "tisk" + +#: ../src/gui/gtk.c:1121 +msgctxt "menu" +msgid "tethering" +msgstr "tethering" + +#. Help menu +#: ../src/gui/gtk.c:1127 +msgctxt "menu" +msgid "Help" +msgstr "Pomoc" + +#: ../src/gui/gtk.c:1131 +msgctxt "menu" +msgid "darktable Manual" +msgstr "návod DarkTable" + +#: ../src/gui/gtk.c:1138 +msgctxt "menu" +msgid "darktable Homepage" +msgstr "domovská stránka DarkTable" + +#: ../src/gui/gtk.c:1162 +msgctxt "menu" +msgid "Preferences" +msgstr "Nastavení" + +#: ../src/gui/gtk.c:1232 +msgid "panels" +msgstr "panely" + +#: ../src/gui/gtk.c:1264 +msgid "switch views" +msgstr "přepnout pohledy" + +#: ../src/gui/gtk.c:1265 ../src/views/tethering.c:102 +msgid "tethering" +msgstr "tethering" + +#: ../src/gui/gtk.c:1268 ../src/views/map.c:197 +msgid "map" +msgstr "mapa" + +#: ../src/gui/gtk.c:1269 ../src/views/slideshow.c:390 +msgid "slideshow" +msgstr "slideshow" + +#. Print button +#: ../src/gui/gtk.c:1270 ../src/libs/print_settings.c:2885 +msgid "print" +msgstr "tisk" + +#. register ctrl-q to quit: +#: ../src/gui/gtk.c:1276 +msgid "quit" +msgstr "konec" + +#. Full-screen accelerator (no ESC handler here to enable quit-slideshow using ESC) +#: ../src/gui/gtk.c:1279 +msgid "fullscreen" +msgstr "celá obrazovka" + +#: ../src/gui/gtk.c:1283 +msgid "collapsing controls" +msgstr "sbalovací ovládací prvky" + +#. specific top/bottom toggles +#: ../src/gui/gtk.c:1285 +msgid "header" +msgstr "hlavička" + +#: ../src/gui/gtk.c:1286 +msgid "filmstrip and timeline" +msgstr "panely/filmový pás a časová osa" + +#: ../src/gui/gtk.c:1287 +msgid "top toolbar" +msgstr "horní panel nástrojů" + +#: ../src/gui/gtk.c:1288 +msgid "bottom toolbar" +msgstr "spodní panel nástrojů" + +#: ../src/gui/gtk.c:1289 +msgid "all top" +msgstr "vše nahoře" + +#: ../src/gui/gtk.c:1290 +msgid "all bottom" +msgstr "vše dole" + +#: ../src/gui/gtk.c:1292 +msgid "toggle tooltip visibility" +msgstr "přepnout zobrazení tipů" + +#: ../src/gui/gtk.c:1293 +msgid "reinitialise input devices" +msgstr "reinicializace vstupních zařízení" + +#: ../src/gui/gtk.c:1331 +msgid "toggle focus-peaking mode" +msgstr "přepnout zobrazení zaostřené oblasti" + +#. toggle focus peaking everywhere +#: ../src/gui/gtk.c:1336 +msgid "toggle focus peaking" +msgstr "přepnout ladění zaostření" + +#: ../src/gui/gtk.c:1654 ../src/gui/gtk.c:3189 ../src/gui/gtk.c:3194 +#: ../src/gui/gtk.c:3199 ../src/gui/gtk.c:3204 +msgid "tabs" +msgstr "záložky" + +#. ask the user if darktable.org may be accessed +#: ../src/gui/gtk.c:2707 +msgid "access the online user manual?" +msgstr "získat přístup k online uživatelské příručce?" + +#: ../src/gui/gtk.c:2708 +#, c-format +msgid "do you want to access `%s'?" +msgstr "chcete získat přístup k `%s'?" + +#: ../src/gui/gtk.c:2778 +msgid "there is no help available for this element" +msgstr "pro tento prvek není k dispozici žádná nápověda" + +#. font name can only use period as decimal separator +#. but printf format strings use comma for some locales, so replace comma with period +#: ../src/gui/gtk.c:2798 ../src/libs/metadata_view.c:762 +#, c-format +msgid "%.1f" +msgstr "%.1f" + +#: ../src/gui/gtk.c:2800 +#, c-format +msgid "Sans %s" +msgstr "Sans %s" + +#: ../src/gui/gtk.c:3094 +msgid "does not contain pages" +msgstr "neobsahuje stránky" + +#: ../src/gui/gtk.c:3313 +#, c-format +msgid "never show more than %d lines" +msgstr "nemůžete mít více než %d řádků" + +#: ../src/gui/gtkentry.c:173 +msgid "$(ROLL.NAME) - roll of the input image" +msgstr "$(ROLL.NAME) - role vstupního obrázku" + +#: ../src/gui/gtkentry.c:174 +msgid "$(FILE.FOLDER) - folder containing the input image" +msgstr "$(FILE.FOLDER) - složka obsahující vstupní obrázek" + +#: ../src/gui/gtkentry.c:175 +msgid "$(FILE.NAME) - basename of the input image" +msgstr "$(FILE.NAME) - základní název vstupního obrázku" + +#: ../src/gui/gtkentry.c:176 +msgid "$(FILE.EXTENSION) - extension of the input image" +msgstr "$(FILE.EXTENSION) - přípona vstupního obrázku" + +#: ../src/gui/gtkentry.c:177 +msgid "$(VERSION) - duplicate version" +msgstr "$(VERSION) - duplikovat verzi" + +#: ../src/gui/gtkentry.c:178 +msgid "" +"$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version " +"exists" +msgstr "" +"$(VERSION.IF_MULTI) - stejné jako $(VERSION), ale prázdný řetězec, pokud " +"existuje pouze jedna verze" + +#: ../src/gui/gtkentry.c:179 +msgid "$(VERSION.NAME) - version name from metadata" +msgstr "$(VERSION.NAME) - název verze z metadat" + +#: ../src/gui/gtkentry.c:180 +msgid "$(JOBCODE) - job code for import" +msgstr "$(JOBCODE) - kód úlohy pro import" + +#: ../src/gui/gtkentry.c:181 +msgid "$(SEQUENCE) - sequence number" +msgstr "$(SEQUENCE) - pořadové číslo" + +#: ../src/gui/gtkentry.c:182 +msgid "$(WIDTH.MAX) - maximum image export width" +msgstr "$(WIDTH.MAX) - maximální šířka exportovaného obrázku" + +#: ../src/gui/gtkentry.c:183 +msgid "$(WIDTH.SENSOR) - image sensor width" +msgstr "$(WIDTH.SENSOR) - šířka obrazového snímače" + +#: ../src/gui/gtkentry.c:184 +msgid "$(WIDTH.RAW) - RAW image width" +msgstr "$(WIDTH.RAW) - šířka obrázku RAW" + +#: ../src/gui/gtkentry.c:185 +msgid "$(WIDTH.CROP) - image width after crop" +msgstr "$(WIDTH.CROP) - šířka obrázku po oříznutí" + +#: ../src/gui/gtkentry.c:186 +msgid "$(WIDTH.EXPORT) - exported image width" +msgstr "$(WIDTH.EXPORT) - šířka exportovaného obrázku" + +#: ../src/gui/gtkentry.c:187 +msgid "$(HEIGHT.MAX) - maximum image export height" +msgstr "$(HEIGHT.MAX) - maximální výška exportu obrázku" + +#: ../src/gui/gtkentry.c:188 +msgid "$(HEIGHT.SENSOR) - image sensor height" +msgstr "$(HEIGHT.SENSOR) - výška obrazového snímače" + +#: ../src/gui/gtkentry.c:189 +msgid "$(HEIGHT.RAW) - RAW image height" +msgstr "$(HEIGHT.RAW) - výška obrázku RAW" + +#: ../src/gui/gtkentry.c:190 +msgid "$(HEIGHT.CROP) - image height after crop" +msgstr "$(HEIGHT.CROP) - výška obrázku po oříznutí" + +#: ../src/gui/gtkentry.c:191 +msgid "$(HEIGHT.EXPORT) - exported image height" +msgstr "$(HEIGHT.EXPORT) - výška exportovaného obrázku" + +#: ../src/gui/gtkentry.c:192 +msgid "$(YEAR) - year" +msgstr "$(YEAR) - rok" + +#: ../src/gui/gtkentry.c:193 +msgid "$(YEAR.SHORT) - year without century" +msgstr "$(YEAR.SHORT) - rok bez století" + +#: ../src/gui/gtkentry.c:194 +msgid "$(MONTH) - month" +msgstr "$(MONTH) - měsíc" + +#: ../src/gui/gtkentry.c:195 +msgid "$(MONTH.SHORT) - abbreviated month name according to the current locale" +msgstr "$(MONTH.SHORT) - zkrácený název měsíce podle aktuální lokalizace" + +#: ../src/gui/gtkentry.c:196 +msgid "$(MONTH.LONG) - full month name according to the current locale" +msgstr "$(MONTH.LONG) - celý název měsíce podle aktuální lokalizace" + +#: ../src/gui/gtkentry.c:197 +msgid "$(DAY) - day" +msgstr "$(DAY) - den" + +#: ../src/gui/gtkentry.c:198 +msgid "$(HOUR) - hour" +msgstr "$(HOUR) - hodina" + +#: ../src/gui/gtkentry.c:199 +msgid "$(HOUR.AMPM) - hour, 12-hour clock" +msgstr "$(HOUR.AMPM) - hodin, 12cti hodinový čas" + +#: ../src/gui/gtkentry.c:200 +msgid "$(MINUTE) - minute" +msgstr "$(MINUTE) - mimuta" + +#: ../src/gui/gtkentry.c:201 +msgid "$(SECOND) - second" +msgstr "$(SECOND) - sekunda" + +#: ../src/gui/gtkentry.c:202 +msgid "$(MSEC) - millisecond" +msgstr "$(MSEC) - milisekunda" + +#: ../src/gui/gtkentry.c:203 +msgid "$(EXIF.YEAR) - EXIF year" +msgstr "$(EXIF.YEAR) - rok z EXIF" + +#: ../src/gui/gtkentry.c:204 +msgid "$(EXIF.YEAR.SHORT) - EXIF year without century" +msgstr "$(EXIF.YEAR.SHORT) - rok z EXIF bez století" + +#: ../src/gui/gtkentry.c:205 +msgid "$(EXIF.MONTH) - EXIF month" +msgstr "$(EXIF_MONTH) - měsíc z EXIF" + +#: ../src/gui/gtkentry.c:206 +msgid "" +"$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current " +"locale" +msgstr "" +"$(EXIF.MONTH.SHORT) - zkrácený název měsíce z EXIF podle aktuálního místního " +"nastavení" + +#: ../src/gui/gtkentry.c:207 +msgid "" +"$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" +msgstr "" +"$(EXIF.MONTH.LONG) - celý název měsíce z EXIF podle aktuálního místního " +"nastavení" + +#: ../src/gui/gtkentry.c:208 +msgid "$(EXIF.DAY) - EXIF day" +msgstr "$(EXIF.DAY) - den z EXIF" + +#: ../src/gui/gtkentry.c:209 +msgid "$(EXIF.HOUR) - EXIF hour" +msgstr "$(EXIF.HOUR) - hodina z EXIF" + +#: ../src/gui/gtkentry.c:210 +msgid "$(EXIF.HOUR.AMPM) - EXIF hour, 12-hour clock" +msgstr "$(EXIF.HOUR.AMPM) - hodina (12cti hodinový formát) z EXIF" + +#: ../src/gui/gtkentry.c:211 +msgid "$(EXIF.MINUTE) - EXIF minute" +msgstr "$(EXIF.MINUTE) - minuta z EXIF" + +#: ../src/gui/gtkentry.c:212 +msgid "$(EXIF.SECOND) - EXIF second" +msgstr "$(EXIF.SECOND) - sekundy z EXIF" + +#: ../src/gui/gtkentry.c:213 +msgid "$(EXIF.MSEC) - EXIF millisecond" +msgstr "$(EXIF_MSEC) - milisekundy z EXIF" + +#: ../src/gui/gtkentry.c:214 +msgid "$(EXIF.ISO) - ISO value" +msgstr "$(EXIF.ISO) - hodnota ISO" + +#: ../src/gui/gtkentry.c:215 +msgid "$(EXIF.EXPOSURE) - EXIF exposure" +msgstr "$(EXIF.EXPOSURE) - expozice z EXIF" + +#: ../src/gui/gtkentry.c:216 +msgid "$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias" +msgstr "$(EXIF.EXPOSURE.BIAS) - posun expozice z EXIF" + +#: ../src/gui/gtkentry.c:217 +msgid "$(EXIF.APERTURE) - EXIF aperture" +msgstr "$(EXIF.APERTURE) - clona z EXIF" + +#: ../src/gui/gtkentry.c:218 +#| msgid "$(EXIF.YEAR) - EXIF year" +msgid "$(EXIF.CROP_FACTOR) - EXIF crop factor" +msgstr "$(EXIF.CROP_FACTOR) - EXIF crop factor" + +#: ../src/gui/gtkentry.c:219 +msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" +msgstr "$(EXIF.FOCAL.LENGTH) - ohnisková vzdálenost z EXIF" + +#: ../src/gui/gtkentry.c:220 +#| msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" +msgid "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent focal length" +msgstr "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent fokální vzdálenost" + +#: ../src/gui/gtkentry.c:221 +msgid "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" +msgstr "$(EXIF_FOCUS_DISTANCE) - ohnisková vzdálenost z EXIF" + +#: ../src/gui/gtkentry.c:222 +msgid "$(EXIF.MAKER) - camera maker" +msgstr "$(EXIF.MAKER) - výrobce fotoaparátu" + +#: ../src/gui/gtkentry.c:223 +msgid "$(EXIF.MODEL) - camera model" +msgstr "$(EXIF.MODEL) - model fotoaparátu" + +#: ../src/gui/gtkentry.c:224 +msgid "$(EXIF.LENS) - lens" +msgstr "$(EXIF.LENS) - objektiv" + +#: ../src/gui/gtkentry.c:225 +msgid "$(LONGITUDE) - longitude" +msgstr "$(LONGITUDE) - zeměpisná délka" + +#: ../src/gui/gtkentry.c:226 +msgid "$(LATITUDE) - latitude" +msgstr "$(LATITUDE) - zeměpisná šířka" + +#: ../src/gui/gtkentry.c:227 +msgid "$(ELEVATION) - elevation" +msgstr "$(ELEVATION) - nadmořská výška" + +#: ../src/gui/gtkentry.c:228 +msgid "$(STARS) - star rating as number (-1 for rejected)" +msgstr "$(STARS) - hodnocení hvězdičkami číselně (-1 for rejected)" + +#: ../src/gui/gtkentry.c:229 +msgid "$(RATING.ICONS) - star/reject rating in icon form" +msgstr "$(RATING.ICONS) - hvězdička/zrušit hodnocení ve formě ikon" + +#: ../src/gui/gtkentry.c:230 +msgid "$(LABELS) - color labels as text" +msgstr "$(LABELS) - barevné štítky jako text" + +#: ../src/gui/gtkentry.c:231 +msgid "$(LABELS.ICONS) - color labels as icons" +msgstr "$(LABELS.ICONS) - barevné štítky jako ikony" + +#: ../src/gui/gtkentry.c:232 +msgid "$(ID) - image ID" +msgstr "$(ID) - ID obrázku" + +#: ../src/gui/gtkentry.c:233 +msgid "$(TITLE) - title from metadata" +msgstr "$(TITLE) - název z metadat" + +#: ../src/gui/gtkentry.c:234 +msgid "$(DESCRIPTION) - description from metadata" +msgstr "$(DESCRIPTION) - popis z metadat" + +#: ../src/gui/gtkentry.c:235 +msgid "$(CREATOR) - creator from metadata" +msgstr "$(CREATOR) - tvůrce z metadat" + +#: ../src/gui/gtkentry.c:236 +msgid "$(PUBLISHER) - publisher from metadata" +msgstr "$(PUBLISHER) – vydavatel z metadat" + +#: ../src/gui/gtkentry.c:237 +msgid "$(RIGHTS) - rights from metadata" +msgstr "$(RIGHTS) - práva z metadat" + +#: ../src/gui/gtkentry.c:238 +msgid "$(USERNAME) - login name" +msgstr "$(USERNAME) - přihlašovací jméno" + +#: ../src/gui/gtkentry.c:239 +msgid "$(FOLDER.PICTURES) - pictures folder" +msgstr "$(FOLDER.PICTURES) - složka obrázky" + +#: ../src/gui/gtkentry.c:240 +msgid "$(FOLDER.HOME) - home folder" +msgstr "$(FOLDER.HOME) - domovská složka" + +#: ../src/gui/gtkentry.c:241 +msgid "$(FOLDER.DESKTOP) - desktop folder" +msgstr "$(FOLDER.DESKTOP) - složka plocha" + +#: ../src/gui/gtkentry.c:242 +msgid "$(OPENCL.ACTIVATED) - whether OpenCL is activated" +msgstr "$(OPENCL.ACTIVATED) - je aktivováno OpenCL" + +#: ../src/gui/gtkentry.c:243 +msgid "$(CATEGORY0(category)) - subtag of level 0 in hierarchical tags" +msgstr "$(CATEGORY0(kategorie)) - podštítek úrovně 0 v hierarchických značkách" + +#: ../src/gui/gtkentry.c:244 +msgid "$(TAGS) - tags as set in metadata settings" +msgstr "$(TAGS) - značky podle nastavení v nastavení metadat" + +#: ../src/gui/gtkentry.c:245 +msgid "$(DARKTABLE.NAME) - darktable name" +msgstr "$(DARKTABLE.NAME) - jméno darktable" + +#: ../src/gui/gtkentry.c:246 +msgid "$(DARKTABLE.VERSION) - current darktable version" +msgstr "$(DARKTABLE.VERSION) - aktuální verze darktable" + +#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:248 +msgid "grid" +msgstr "mříž" + +#: ../src/gui/guides.c:31 +msgid "rules of thirds" +msgstr "pravidla třetin" + +#: ../src/gui/guides.c:32 +msgid "metering" +msgstr "měření" + +#: ../src/gui/guides.c:33 +msgid "perspective" +msgstr "perspektiva" + +#: ../src/gui/guides.c:34 +msgid "diagonal method" +msgstr "diagonální metoda" + +#: ../src/gui/guides.c:35 +msgid "harmonious triangles" +msgstr "harmonické trojúhelníky" + +#: ../src/gui/guides.c:36 +msgid "golden sections" +msgstr "zlaté řezy" + +#: ../src/gui/guides.c:37 +msgid "golden spiral" +msgstr "zlatá spirála" + +#: ../src/gui/guides.c:38 +msgid "golden spiral sections" +msgstr "sekce spirálové zlaté řezy" + +#: ../src/gui/guides.c:39 +msgid "golden mean (all guides)" +msgstr "zlatá střední cesta (všichni průvodci)" + +#: ../src/gui/guides.c:218 +msgid "horizontal lines" +msgstr "horizontální čáry" + +#: ../src/gui/guides.c:219 +msgid "number of horizontal guide lines" +msgstr "počet horizontálních vodících čar" + +#: ../src/gui/guides.c:228 +msgid "vertical lines" +msgstr "vertikální čáry" + +#: ../src/gui/guides.c:229 +msgid "number of vertical guide lines" +msgstr "počet vertikálních vodících čar" + +#: ../src/gui/guides.c:238 +msgid "subdivisions" +msgstr "pododdělení" + +#: ../src/gui/guides.c:239 +msgid "number of subdivisions per grid rectangle" +msgstr "počet dělení na obdélník mřížky" + +#. title +#: ../src/gui/guides.c:700 +msgid "global guide overlay settings" +msgstr "globální průvodce nastavením překrytí" + +#: ../src/gui/guides.c:710 ../src/gui/guides.c:719 ../src/gui/guides.c:727 +#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2494 +msgid "guide lines" +msgstr "vodící čary" + +#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2145 +msgid "flip" +msgstr "převrátit" + +#: ../src/gui/guides.c:710 +msgid "flip guides" +msgstr "překlápěcí vodítka" + +#: ../src/gui/guides.c:713 +msgid "horizontally" +msgstr "horizontálně" + +#: ../src/gui/guides.c:714 +msgid "vertically" +msgstr "vertikálně" + +#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6232 ../src/iop/clipping.c:2149 +#: ../src/iop/colorbalance.c:1892 +msgid "both" +msgstr "oba" + +#: ../src/gui/guides.c:720 +msgid "setup guide lines" +msgstr "nastavit vodící čáry" + +#: ../src/gui/guides.c:727 +msgid "overlay color" +msgstr "barva překrytí" + +#: ../src/gui/guides.c:727 +msgid "set overlay color" +msgstr "nastavit barvu překrytí" + +#: ../src/gui/guides.c:741 +msgid "" +"set the contrast between the lightest and darkest part of the guide overlays" +msgstr "nastavit kontrast mezi nejsvětlejší a nejtmavší částí vodítka překryvů" + +#: ../src/gui/guides.c:847 ../src/gui/guides.c:893 +msgid "show guides" +msgstr "zobrazit vodítka" + +#: ../src/gui/guides.c:902 +msgid "show guide overlay when this module has focus" +msgstr "zobrazit vodítka překrytí, když je tento modul aktivní" + +#: ../src/gui/guides.c:904 +msgid "" +"change global guide settings\n" +"note that these settings are applied globally and will impact any module " +"that shows guide overlays" +msgstr "" +"změnit globální nastavení průvodce\n" +"všimněte si, že tato nastavení jsou aplikována globálně a ovlivní jakýkoli " +"modul, který zobrazuje překryvy vodítek" + +#: ../src/gui/hist_dialog.c:222 +msgid "select parts to copy" +msgstr "vyberte části ke kopírování" + +#: ../src/gui/hist_dialog.c:222 +msgid "select parts to paste" +msgstr "vyberte části k vložení" + +#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:524 +msgid "select _all" +msgstr "vybrat _vše" + +#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:525 +msgid "select _none" +msgstr "zrušit _výběr" + +#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:605 +#: ../src/gui/styles_dialog.c:627 +msgid "include" +msgstr "zahrnout" + +#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:681 +#: ../src/gui/styles_dialog.c:687 +msgid "item" +msgstr "položka" + +#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:694 +#: ../src/gui/styles_dialog.c:703 +msgid "mask" +msgstr "maska" + +#: ../src/gui/hist_dialog.c:360 +msgid "can't copy history out of unaltered image" +msgstr "nelze zkopírovat historii z nezměněného obrázku" + +#. grid headers +#: ../src/gui/import_metadata.c:417 +msgid "metadata presets" +msgstr "presety metadat" + +#: ../src/gui/import_metadata.c:420 +msgid "" +"metadata to be applied per default\n" +"double-click on a label to clear the corresponding entry\n" +"double-click on 'preset' to clear all entries" +msgstr "" +"metadata, která se mají použít jako výchozí\n" +"poklepáním na štítek vymažete odpovídající položku\n" +"poklepáním na 'preset' vymažete všechny položky" + +#: ../src/gui/import_metadata.c:430 +msgid "from XMP" +msgstr "z XMP" + +#: ../src/gui/import_metadata.c:433 +msgid "" +"selected metadata are imported from image and override the default value.\n" +"this drives also the 'look for updated XMP files' and 'load sidecar file' " +"actions.\n" +"CAUTION: not selected metadata are cleaned up when XMP file is updated." +msgstr "" +"vybraná metadata se importují z obrázku a přepíší výchozí hodnotu.\n" +"to také provede akce „vyhledat aktualizované soubory XMP“ a „načíst soubor " +"úprav“.\n" +"UPOZORNĚNÍ: Nevybraná metadata se při aktualizaci souboru XMP vyčistí." + +#. tags +#: ../src/gui/import_metadata.c:469 +msgid "tag presets" +msgstr "štítky presetů" + +#: ../src/gui/import_metadata.c:483 +msgid "comma separated list of tags" +msgstr "seznam štítků oddělený čárkami" + +#. language +#: ../src/gui/preferences.c:274 +msgid "interface language" +msgstr "jazyk rozhraní" + +#: ../src/gui/preferences.c:290 +msgid "double-click to reset to the system language" +msgstr "dvojklik resetuje na jazyk systému" + +#: ../src/gui/preferences.c:292 +msgid "" +"set the language of the user interface. the system default is marked with an " +"* (needs a restart)" +msgstr "" +"nastavit jazyk uživatelského rozhraní. výchozí nastavení systému je označeno " +"* (vyžaduje restart)" + +#: ../src/gui/preferences.c:301 +msgid "theme" +msgstr "téma vzhledu" + +#: ../src/gui/preferences.c:331 +msgid "set the theme for the user interface" +msgstr "nastavit téma uživatelského rozhraní (UI)" + +#: ../src/gui/preferences.c:344 ../src/gui/preferences.c:351 +msgid "use system font size" +msgstr "použít systémovou velikost písma" + +#: ../src/gui/preferences.c:360 ../src/gui/preferences.c:367 +msgid "font size in points" +msgstr "velikost písma v bodech" + +#: ../src/gui/preferences.c:372 +msgid "GUI controls and text DPI" +msgstr "DPI textu GUI a ovladačů" + +#: ../src/gui/preferences.c:379 +msgid "" +"adjust the global GUI resolution to rescale controls, buttons, labels, etc.\n" +"increase for a magnified GUI, decrease to fit more content in window.\n" +"set to -1 to use the system-defined global resolution.\n" +"default is 96 DPI on most systems.\n" +"(needs a restart)." +msgstr "" +"upravit globální rozlišení GUI pro změnu měřítka ovládacích prvků, tlačítek, " +"štítků atd.\n" +"zvětšit pro zvětšení GUI, snížit, aby se do okna vešlo více obsahu.\n" +"nastavte na -1 pro použití systémem definovaného globálního rozlišení.\n" +"výchozí hodnota je na většině systémů 96 DPI.\n" +"(vyžaduje restart)." + +#. checkbox to allow user to modify theme with user.css +#: ../src/gui/preferences.c:388 +msgid "modify selected theme with CSS tweaks below" +msgstr "upravit vybrané téma pomocí CSS níže" + +#: ../src/gui/preferences.c:396 +msgid "modify theme with CSS keyed below (saved to user.css)" +msgstr "upravit motiv pomocí kódu CSS níže (uloženo do user.css)" + +#: ../src/gui/preferences.c:418 +msgctxt "usercss" +msgid "save CSS and apply" +msgstr "uložit CSS a použít" + +#: ../src/gui/preferences.c:423 +msgid "click to save and apply the CSS tweaks entered in this editor" +msgstr "klikněte pro uložení a použití CSS vylepšení zadané v tomto editoru" + +#: ../src/gui/preferences.c:425 +msgid "open help page for CSS tweaks" +msgstr "otevřít stránku nápovědy pro úpravy CSS" + +#. load default text with some pointers +#: ../src/gui/preferences.c:446 +msgid "ERROR Loading user.css" +msgstr "CHYBA při načítání user.css" + +#. load default text +#: ../src/gui/preferences.c:455 +msgid "Enter CSS theme tweaks here" +msgstr "Zadejte CSS vylepšení tématu sem" + +#: ../src/gui/preferences.c:491 +msgid "darktable preferences" +msgstr "nastavení darktable" + +#: ../src/gui/preferences.c:559 +msgid "darktable needs to be restarted for settings to take effect" +msgstr "darktable musí být restartování, aby se změny projevily" + +#. exif +#: ../src/gui/preferences.c:818 ../src/gui/presets.c:647 +#: ../src/libs/metadata_view.c:139 +msgid "model" +msgstr "model" + +#: ../src/gui/preferences.c:822 ../src/gui/presets.c:655 +#: ../src/libs/metadata_view.c:140 +msgid "maker" +msgstr "autor" + +#: ../src/gui/preferences.c:859 +msgid "search presets list" +msgstr "prohledat seznam presetů" + +#: ../src/gui/preferences.c:860 +msgid "" +"incrementally search the list of presets\n" +"press up or down keys to cycle through matches" +msgstr "" +"postupné prohledávání seznamu presetů\n" +"stisknutím kláves nahoru nebo dolů procházejte výsledky" + +#: ../src/gui/preferences.c:866 +msgctxt "preferences" +msgid "import..." +msgstr "import..." + +#: ../src/gui/preferences.c:870 +msgctxt "preferences" +msgid "export..." +msgstr "export..." + +#: ../src/gui/preferences.c:1030 +#, c-format +msgid "failed to import preset %s" +msgstr "chyba při importu presetu %s" + +#: ../src/gui/preferences.c:1041 +msgid "select preset(s) to import" +msgstr "vybrat preset(y) pro import" + +#: ../src/gui/preferences.c:1042 ../src/libs/collect.c:425 +#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:930 +#: ../src/libs/import.c:1515 ../src/libs/import.c:1619 ../src/libs/styles.c:529 +msgid "_open" +msgstr "_otevřít" + +#: ../src/gui/preferences.c:1051 +msgid "darktable preset files" +msgstr "soubory s presety darktable" + +#: ../src/gui/preferences.c:1056 ../src/iop/lut3d.c:1591 +#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:946 +#: ../src/libs/styles.c:543 +msgid "all files" +msgstr "všechny soubory" + +#: ../src/gui/presets.c:61 +msgid "non-raw" +msgstr "ne RAW" + +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:336 +msgid "raw" +msgstr "raw" + +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:337 +msgid "HDR" +msgstr "HDR" + +#: ../src/gui/presets.c:61 ../src/iop/monochrome.c:77 ../src/libs/image.c:679 +#: ../src/libs/metadata_view.c:343 +msgid "monochrome" +msgstr "černobílý" + +#: ../src/gui/presets.c:153 +#, c-format +msgid "preset `%s' is write-protected, can't delete!" +msgstr "preset `%s' je pouze pro čtení, nelze vymazat!" + +#: ../src/gui/presets.c:159 ../src/gui/presets.c:463 ../src/libs/lib.c:238 +#: ../src/libs/modulegroups.c:3703 +msgid "delete preset?" +msgstr "vymazat preset?" + +#: ../src/gui/presets.c:160 ../src/gui/presets.c:464 ../src/libs/lib.c:239 +#: ../src/libs/modulegroups.c:3704 +#, c-format +msgid "do you really want to delete the preset `%s'?" +msgstr "opravdu vymazat preset `%s'?" + +#. add new preset +#. create a shortcut for the new entry +#. then show edit dialog +#. clang-format on +#. create a shortcut for the new entry +#. then show edit dialog +#: ../src/gui/presets.c:202 ../src/gui/presets.c:1022 ../src/gui/presets.c:1025 +#: ../src/gui/presets.c:1028 ../src/libs/lib.c:188 ../src/libs/lib.c:205 +#: ../src/libs/lib.c:213 ../src/libs/lib.c:216 +msgid "new preset" +msgstr "nový preset" + +#: ../src/gui/presets.c:209 +msgid "please give preset a name" +msgstr "prosím zadejte název presetu" + +#: ../src/gui/presets.c:214 +msgid "unnamed preset" +msgstr "bezejmenný preset" + +#: ../src/gui/presets.c:243 +msgid "overwrite preset?" +msgstr "nahradit preset?" + +#: ../src/gui/presets.c:244 +#, c-format +msgid "" +"preset `%s' already exists.\n" +"do you want to overwrite?" +msgstr "" +"preset `%s' již existuje.\n" +"chcete jej nahradit?" + +#: ../src/gui/presets.c:422 ../src/imageio/storage/disk.c:198 +#: ../src/imageio/storage/gallery.c:150 ../src/imageio/storage/latex.c:146 +msgid "_select as output destination" +msgstr "vybrat cíl vý_stupu" + +#: ../src/gui/presets.c:431 +#, c-format +msgid "preset %s was successfully exported" +msgstr "preset %s byl v pořádku exportován" + +#: ../src/gui/presets.c:559 +#, c-format +msgid "edit `%s' for module `%s'" +msgstr "upravit `%s' pro modul `%s'" + +#: ../src/gui/presets.c:563 +msgid "_export..." +msgstr "_export..." + +#: ../src/gui/presets.c:564 ../src/libs/tagging.c:1489 +#: ../src/libs/tagging.c:1580 +msgid "_delete" +msgstr "_vymazat" + +#: ../src/gui/presets.c:588 +msgid "name of the preset" +msgstr "název presetu" + +#: ../src/gui/presets.c:597 +msgid "description or further information" +msgstr "popis, nebo další informace" + +#: ../src/gui/presets.c:601 +msgid "reset all module parameters to their default values" +msgstr "resetovat všechny parametry modulu na výchozí hodnoty" + +#: ../src/gui/presets.c:604 +msgid "" +"the parameters will be reset to their default values, which may be " +"automatically set based on image metadata" +msgstr "" +"parametry budou resetovány na výchozí hodnoty, které mohou být automaticky " +"nastaveny na základě metadat obrázku" + +#: ../src/gui/presets.c:610 +msgid "auto apply this preset to matching images" +msgstr "automaticky použít tento preset na odpovídající snímky" + +#: ../src/gui/presets.c:614 +msgid "only show this preset for matching images" +msgstr "zobrazit tento preset pouze pro odpovídající obrázky" + +#: ../src/gui/presets.c:616 +msgid "" +"be very careful with this option. this might be the last time you see your " +"preset." +msgstr "" +"buďte velmi opatrní s touto možností. toto může být naposledy, co vidíte " +"svůj preset." + +#: ../src/gui/presets.c:646 +#, no-c-format +msgid "string to match model (use % as wildcard)" +msgstr "řetězec odpovídající modelu (použijte % jako zástupný znak)" + +#: ../src/gui/presets.c:654 +#, no-c-format +msgid "string to match maker (use % as wildcard)" +msgstr "řetězec, který odpovídá výrobci (použijte % jako zástupný znak)" + +#: ../src/gui/presets.c:662 +#, no-c-format +msgid "string to match lens (use % as wildcard)" +msgstr "řetězec odpovídající objektivu (použijte % jako zástupný znak)" + +#: ../src/gui/presets.c:672 +msgid "minimum ISO value" +msgstr "minimální hodnota ISO" + +#: ../src/gui/presets.c:678 +msgid "" +"maximum ISO value\n" +"if left blank, it is equivalent to no upper limit" +msgstr "" +"maximální hodnota ISO\n" +"pokud je ponecháno prázdné, není horní limit" + +#: ../src/gui/presets.c:691 +msgid "minimum exposure time" +msgstr "minimální doba expozice" + +#: ../src/gui/presets.c:692 +msgid "maximum exposure time" +msgstr "maximální doba expozice" + +#: ../src/gui/presets.c:708 +msgid "minimum aperture value" +msgstr "minimální clonové číslo" + +#: ../src/gui/presets.c:709 +msgid "maximum aperture value" +msgstr "maximální clonové číslo" + +#: ../src/gui/presets.c:727 +msgid "minimum focal length" +msgstr "minimální ohnisková vzdálenost" + +#: ../src/gui/presets.c:728 +msgid "maximum focal length" +msgstr "maximální ohnisková vzdálenost" + +#. raw/hdr/ldr/mono/color +#: ../src/gui/presets.c:736 +msgid "format" +msgstr "formát" + +#: ../src/gui/presets.c:741 +msgid "select image types you want this preset to be available for" +msgstr "vyberte typy obrázků, pro které má být tento preset dostupný" + +#: ../src/gui/presets.c:754 ../src/libs/filtering.c:1263 +msgid "and" +msgstr "a (and)" + +#: ../src/gui/presets.c:798 ../src/gui/presets.c:850 +msgid "∞" +msgstr "∞" + +#: ../src/gui/presets.c:966 +#, c-format +msgid "preset `%s' is write-protected! can't edit it!" +msgstr "preset `%s' je chráněn proti zápisu! nelze jej upravit!" + +#: ../src/gui/presets.c:990 ../src/libs/lib.c:158 +msgid "update preset?" +msgstr "aktualizovat preset?" + +#: ../src/gui/presets.c:991 ../src/libs/lib.c:159 +#, c-format +msgid "do you really want to update the preset `%s'?" +msgstr "opravdu chcete aktualizovat preset `%s'?" + +#: ../src/gui/presets.c:1120 +msgid "(first)" +msgstr "(první)" + +#: ../src/gui/presets.c:1120 +msgid "(last)" +msgstr "(poslední)" + +#: ../src/gui/presets.c:1152 +#, c-format +msgid "" +"preset %s\n" +"%s" +msgstr "" +"preset %s\n" +"%s" + +#: ../src/gui/presets.c:1153 +msgid "no presets" +msgstr "žádné presety" + +#: ../src/gui/presets.c:1188 ../src/iop/basecurve.c:575 +#: ../src/iop/basecurve.c:579 ../src/iop/basecurve.c:582 +msgid "display-referred default" +msgstr "výchozí nastavení s odkazem na displej" + +#: ../src/gui/presets.c:1190 ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:400 ../src/iop/channelmixerrgb.c:403 +#: ../src/iop/exposure.c:319 ../src/iop/exposure.c:323 +#: ../src/iop/exposure.c:326 ../src/iop/filmicrgb.c:3311 +#: ../src/iop/filmicrgb.c:3315 ../src/iop/filmicrgb.c:3318 +#: ../src/iop/sigmoid.c:240 ../src/iop/sigmoid.c:243 ../src/iop/sigmoid.c:245 +msgid "scene-referred default" +msgstr "výchozí s odkazem na scénu" + +#: ../src/gui/presets.c:1394 ../src/libs/modulegroups.c:3783 +#: ../src/libs/modulegroups.c:3792 +msgid "manage module layouts" +msgstr "spravovat rozložení modulů" + +#: ../src/gui/presets.c:1403 +msgid "manage quick presets" +msgstr "spravovat rychlé presety" + +#: ../src/gui/presets.c:1587 +msgid "manage quick presets list..." +msgstr "spravovat seznam rychlých presetů..." + +#: ../src/gui/presets.c:1728 +msgid "(default)" +msgstr "(výchozí)" + +#: ../src/gui/presets.c:1755 +msgid "disabled: wrong module version" +msgstr "zakázáno: špatná verze modulu" + +#: ../src/gui/presets.c:1777 ../src/libs/lib.c:551 +msgid "edit this preset.." +msgstr "upravit preset.." + +#: ../src/gui/presets.c:1782 ../src/libs/lib.c:555 +msgid "delete this preset" +msgstr "smazat preset" + +#: ../src/gui/presets.c:1789 ../src/libs/lib.c:563 +msgid "store new preset.." +msgstr "uložit nový preset.." + +#: ../src/gui/presets.c:1797 ../src/libs/lib.c:576 +msgid "update preset" +msgstr "aktualizovat preset" + +#: ../src/gui/styles_dialog.c:221 ../src/libs/styles.c:437 +#: ../src/libs/styles.c:622 +msgid "overwrite style?" +msgstr "nahradit styl?" + +#: ../src/gui/styles_dialog.c:222 +#, c-format +msgid "" +"style `%s' already exists.\n" +"do you want to overwrite?" +msgstr "" +"styl `%s' existuje.\n" +"chcete jej nahradit?" + +#: ../src/gui/styles_dialog.c:251 ../src/gui/styles_dialog.c:323 +msgid "please give style a name" +msgstr "prosím zadejte název stylu" + +#: ../src/gui/styles_dialog.c:255 ../src/gui/styles_dialog.c:327 +msgid "unnamed style" +msgstr "bezejmenný styl" + +#: ../src/gui/styles_dialog.c:312 +#, c-format +msgid "style %s was successfully saved" +msgstr "styl %s byl uložen" + +#: ../src/gui/styles_dialog.c:512 +msgid "edit style" +msgstr "úprava stylu" + +#: ../src/gui/styles_dialog.c:513 +msgid "duplicate style" +msgstr "duplikovat styl" + +#: ../src/gui/styles_dialog.c:514 +msgid "creates a duplicate of the style before applying changes" +msgstr "vytvoří duplikát stylu před použitím změn" + +#: ../src/gui/styles_dialog.c:518 +msgid "create new style" +msgstr "vytvořit nový styl" + +#: ../src/gui/styles_dialog.c:557 +msgid "enter a name for the new style" +msgstr "zadejte název nového stylu" + +#: ../src/gui/styles_dialog.c:565 +msgid "enter a description for the new style, this description is searchable" +msgstr "zadejte popis nového stylu, tento popis lze vyhledávat" + +#: ../src/gui/styles_dialog.c:605 +msgid "keep" +msgstr "zachovat" + +#: ../src/gui/styles_dialog.c:832 +msgid "can't create style out of unaltered image" +msgstr "nelze vytvořit styl z nezměněného obrazu" + +#: ../src/imageio/imageio.c:816 +#, c-format +msgid "" +"failed to allocate memory for %s, please lower the threads used for export " +"or buy more memory." +msgstr "" +"nepodařilo se alokovat paměť pro %s, snižte počet vláken používaných pro " +"export nebo kupte více paměti." + +#: ../src/imageio/imageio.c:818 +msgctxt "noun" +msgid "thumbnail export" +msgstr "export náhledu" + +#: ../src/imageio/imageio.c:818 +msgctxt "noun" +msgid "export" +msgstr "export" + +#: ../src/imageio/imageio.c:831 +#, c-format +msgid "cannot find the style '%s' to apply during export." +msgstr "nemůže najít styl '%s', který se má použít při exportu." + +#: ../src/imageio/imageio_libraw.c:295 +msgid "" +"WARNING: camera is not fully supported!" +msgstr "" +"VAROVÁNÍ: přístroj není plně podporován!" + +#: ../src/imageio/imageio_libraw.c:297 +#, c-format +msgid "" +"colors for `%s' could be misrepresented,\n" +"and edits might not be compatible with future versions." +msgstr "" +"barvy pro '%s' mohou být nesprávně uvedeny,\n" +"a úpravy nemusí být kompatibilní s budoucími verzemi." + +#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:641 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 +msgid "8 bit" +msgstr "8 bitů" + +#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:567 +msgid "10 bit" +msgstr "10 bitů" + +#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:567 +msgid "12 bit" +msgstr "12 bitů" + +#: ../src/imageio/format/avif.c:110 ../src/imageio/format/webp.c:416 +msgid "lossless" +msgstr "bezztrátová" + +#: ../src/imageio/format/avif.c:112 ../src/imageio/format/webp.c:416 +msgid "lossy" +msgstr "ztrátová" + +#: ../src/imageio/format/avif.c:463 +msgid "invalid AVIF bit depth!" +msgstr "neplatná bitová hloubka AVIF!" + +#. Bit depth combo box +#: ../src/imageio/format/avif.c:800 ../src/imageio/format/exr.cc:601 +#: ../src/imageio/format/jxl.c:566 ../src/imageio/format/pdf.c:661 +#: ../src/imageio/format/png.c:639 ../src/imageio/format/tiff.c:900 +#: ../src/imageio/format/xcf.c:354 +msgid "bit depth" +msgstr "bitová hloubka" + +#: ../src/imageio/format/avif.c:813 +msgid "color information stored in an image, higher is better" +msgstr "informace o barvě uložené v obrázku, čím vyšší, tím lepší" + +#. +#. * Color mode combo box +#. +#. shortfile option combo box +#: ../src/imageio/format/avif.c:820 ../src/imageio/format/tiff.c:944 +#| msgid "grayscale" +msgid "B&W as grayscale" +msgstr "černobíle jako odstíny šedi" + +#: ../src/imageio/format/avif.c:821 ../src/imageio/format/tiff.c:945 +msgid "saving as grayscale will reduce the size for black & white images" +msgstr "uložením ve stupních šedi se zmenší velikost černobílých obrázků" + +#. +#. * Tiling combo box +#. +#: ../src/imageio/format/avif.c:832 +msgid "tiling" +msgstr "dlaždicování" + +#: ../src/imageio/format/avif.c:833 +msgid "" +"tile an image into segments.\n" +"\n" +"makes encoding faster, but increases the file size. the loss of image " +"quality is negligible." +msgstr "" +"rozdělit obrázek na segmenty.\n" +"\n" +"zrychluje kódování, ale zvětšuje velikost souboru. ztráta kvality obrazu je " +"zanedbatelná." + +#. compression +#. Compression method combo box +#: ../src/imageio/format/avif.c:850 ../src/imageio/format/exr.cc:611 +#: ../src/imageio/format/pdf.c:676 ../src/imageio/format/png.c:653 +#: ../src/imageio/format/tiff.c:923 ../src/imageio/format/webp.c:414 +#: ../src/libs/masks.c:111 +msgid "compression" +msgstr "komprese" + +#: ../src/imageio/format/avif.c:858 +msgid "the compression for the image" +msgstr "komprese pro obrázek" + +#. min +#. max +#. step +#. default +#. digits +#: ../src/imageio/format/avif.c:878 ../src/imageio/format/j2k.c:679 +#: ../src/imageio/format/jpeg.c:584 ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/webp.c:425 ../src/libs/camera.c:564 +msgid "quality" +msgstr "kvalita" + +#: ../src/imageio/format/avif.c:881 +msgid "" +"the quality of an image, less quality means fewer details.\n" +"\n" +"pixel format is controlled by quality:\n" +"\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" +msgstr "" +"kvalita obrazu, nižší kvalita znamená méně detailů.\n" +"\n" +"pixelový formát je řízen kvalitou:\n" +"\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" + +#: ../src/imageio/format/copy.c:109 ../src/libs/copy_history.c:370 +#: ../src/libs/image.c:647 +msgid "copy" +msgstr "kopírovat" + +#: ../src/imageio/format/copy.c:124 +msgid "" +"do a 1:1 copy of the selected files.\n" +"the global options below do not apply!" +msgstr "" +"vytvořte kopii 1:1 vybraných souborů.\n" +"níže uvedené globální možnosti se neaplikují!" + +#: ../src/imageio/format/exr.cc:217 +msgid "the selected output profile doesn't work well with EXR" +msgstr "vybraný výstupní profil nefunguje dobře s EXR" + +#: ../src/imageio/format/exr.cc:576 +msgid "OpenEXR" +msgstr "OpenEXR" + +#: ../src/imageio/format/exr.cc:603 +msgid "16 bit (float)" +msgstr "16 bitů (float)" + +#: ../src/imageio/format/exr.cc:603 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 +msgid "32 bit (float)" +msgstr "32 bitů (float)" + +#: ../src/imageio/format/exr.cc:613 ../src/imageio/format/pdf.c:682 +#: ../src/imageio/format/tiff.c:924 +msgid "uncompressed" +msgstr "nekomprimováno" + +#: ../src/imageio/format/exr.cc:614 +msgid "RLE" +msgstr "RLE" + +#: ../src/imageio/format/exr.cc:615 +msgid "ZIPS" +msgstr "ZIPS" + +#: ../src/imageio/format/exr.cc:616 +msgid "ZIP" +msgstr "ZIP" + +#: ../src/imageio/format/exr.cc:617 +msgid "PIZ" +msgstr "PIZ" + +#: ../src/imageio/format/exr.cc:618 +msgid "PXR24" +msgstr "PXR24" + +#: ../src/imageio/format/exr.cc:619 +msgid "B44" +msgstr "B44" + +#: ../src/imageio/format/exr.cc:620 +msgid "B44A" +msgstr "B44A" + +#: ../src/imageio/format/exr.cc:621 +msgid "DWAA" +msgstr "DWAA" + +#: ../src/imageio/format/exr.cc:622 +msgid "DWAB" +msgstr "DWAB" + +#: ../src/imageio/format/j2k.c:648 +msgid "JPEG 2000 (12-bit)" +msgstr "JPEG 2000 (12-bitů)" + +#: ../src/imageio/format/j2k.c:684 +msgid "DCP mode" +msgstr "DCP režim" + +#: ../src/imageio/format/j2k.c:687 +msgid "Cinema2K, 24FPS" +msgstr "Cinema2K, 24FPS" + +#: ../src/imageio/format/j2k.c:688 +msgid "Cinema2K, 48FPS" +msgstr "Cinema2K, 48FPS" + +#: ../src/imageio/format/j2k.c:689 +msgid "Cinema4K, 24FPS" +msgstr "Cinema4K, 24FPS" + +#: ../src/imageio/format/jpeg.c:546 +msgid "JPEG (8-bit)" +msgstr "JPEG (8-bitů)" + +#: ../src/imageio/format/jpeg.c:594 +msgid "chroma subsampling" +msgstr "chroma subsampling" + +#: ../src/imageio/format/jpeg.c:595 +msgid "" +"chroma subsampling setting for JPEG encoder.\n" +"auto - use subsampling determined by the quality value\n" +"4:4:4 - no chroma subsampling\n" +"4:4:0 - color sampling rate halved vertically\n" +"4:2:2 - color sampling rate halved horizontally\n" +"4:2:0 - color sampling rate halved horizontally and vertically" +msgstr "" +"nastavení podvzorkování barev pro kodér JPEG.\n" +"auto - použití dílčího vzorkování určeného hodnotou kvality\n" +"4:4:4 - žádné podvzorkování barev\n" +"4:4:0 - vzorkovací frekvence barev vertikálně poloviční\n" +"4:2:2 - vzorkovací frekvence barev horizontálně poloviční\n" +"4:2:0 - vzorkovací frekvence barev snížena na polovinu horizontálně a " +"vertikálně" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:4" +msgstr "4:4:4" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:0" +msgstr "4:4:0" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:2" +msgstr "4:2:2" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:0" +msgstr "4:2:0" + +#: ../src/imageio/format/jxl.c:567 ../src/imageio/format/pdf.c:81 +#: ../src/imageio/format/png.c:641 ../src/imageio/format/tiff.c:904 +#: ../src/imageio/format/xcf.c:357 +msgid "16 bit" +msgstr "16 bitů" + +#. Pixel format combo box +#: ../src/imageio/format/jxl.c:573 ../src/imageio/format/tiff.c:909 +msgid "pixel type" +msgstr "typ pixelu" + +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 +msgid "unsigned integer" +msgstr "celé číslo bez znaménka" + +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 +msgid "floating point" +msgstr "desetinné číslo" + +#: ../src/imageio/format/jxl.c:591 +msgid "" +"the quality of the output image\n" +"0-29 = very lossy\n" +"30-99 = JPEG quality comparable\n" +"100 = lossless (integer bit depth only)" +msgstr "" +"kvalita výstupního obrazu\n" +"0-29 = velmi ztrátové\n" +"30-99 = kvalita JPEG srovnatelná\n" +"100 = bezeztrátový (pouze celočíselná bitová hloubka)" + +#: ../src/imageio/format/jxl.c:600 +msgid "encoding color profile" +msgstr "kódování barevného profilu" + +#: ../src/imageio/format/jxl.c:601 +msgid "" +"the color profile used by the encoder\n" +"permit internal XYB color space conversion for more efficient lossy " +"compression,\n" +"or ensure no conversion to keep original image color space (implied for " +"lossless)" +msgstr "" +"barevný profil používaný enkodérem\n" +"umožňují interní konverzi barevného prostoru XYB pro efektivnější ztrátovou " +"kompresi,\n" +"nebo nezajistěte žádnou konverzi pro zachování původního barevného prostoru " +"obrazu (implicitně bezeztrátové)" + +#: ../src/imageio/format/jxl.c:604 +msgid "internal" +msgstr "interní" + +#: ../src/imageio/format/jxl.c:604 ../src/libs/duplicate.c:405 +#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:840 +msgid "original" +msgstr "originál" + +#: ../src/imageio/format/jxl.c:618 +msgid "encoding effort" +msgstr "kódovací úsilí" + +#: ../src/imageio/format/jxl.c:619 +msgid "" +"the effort used to encode the image, higher efforts will have better results " +"at the expense of longer encoding times" +msgstr "" +"úsilí vynaložené na kódování obrazu, vyšší úsilí bude mít lepší výsledky na " +"úkor delší doby kódování" + +#: ../src/imageio/format/jxl.c:630 +msgid "decoding speed" +msgstr "rychlost dekódování" + +#: ../src/imageio/format/jxl.c:631 +msgid "the preferred decoding speed with some sacrifice of quality" +msgstr "preferovanou rychlost dekódování s určitou obětí kvality" + +#: ../src/imageio/format/pdf.c:200 ../src/imageio/format/pdf.c:480 +msgid "invalid paper size" +msgstr "neplatná velikost papíru" + +#: ../src/imageio/format/pdf.c:207 +msgid "invalid border size, using 0" +msgstr "neplatná velikost okraje, použito 0" + +#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:460 +#: ../src/imageio/storage/email.c:187 ../src/imageio/storage/gallery.c:409 +#: ../src/imageio/storage/gallery.c:450 ../src/imageio/storage/piwigo.c:1236 +#, c-format +msgid "could not export to file `%s'!" +msgstr "nelze exportovat do souboru `%s'!" + +#: ../src/imageio/format/pdf.c:409 +msgid "PDF" +msgstr "PDF" + +#: ../src/imageio/format/pdf.c:577 +msgid "enter the title of the PDF" +msgstr "zadejte nádpis PDF" + +#. paper size +#. // papers +#: ../src/imageio/format/pdf.c:585 ../src/libs/print_settings.c:2510 +msgid "paper size" +msgstr "velikost papíru" + +#: ../src/imageio/format/pdf.c:586 +msgid "" +"paper size of the PDF\n" +"either one from the list or \" [unit] x \"\n" +"example: 210 mm x 2.97 cm" +msgstr "" +"velikost papíru PDF\n" +"buď jeden ze seznamu nebo \"<šířka> [jednotka] x \"\n" +"příklad: 210 mm x 2,97 cm" + +#. orientation +#: ../src/imageio/format/pdf.c:600 +msgid "page orientation" +msgstr "orientace stránky" + +#: ../src/imageio/format/pdf.c:601 +msgid "paper orientation of the PDF" +msgstr "orientaci papíru PDF" + +#. border +#: ../src/imageio/format/pdf.c:609 ../src/imageio/format/pdf.c:611 +msgid "border" +msgstr "okraj" + +#: ../src/imageio/format/pdf.c:612 +msgid "" +"empty space around the PDF\n" +"format: size + unit\n" +"examples: 10 mm, 1 inch" +msgstr "" +"prázdné místo kolem PDF\n" +"formát: velikost + jednotka\n" +"příklady: 10 mm, 1 palec" + +#. dpi +#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1218 +#: ../src/libs/export.c:1246 +msgid "dpi" +msgstr "dpi" + +#: ../src/imageio/format/pdf.c:625 +msgid "dpi of the images inside the PDF" +msgstr "dpi obrázků uvnitř PDF" + +#. rotate images yes|no +#: ../src/imageio/format/pdf.c:631 +msgid "rotate images" +msgstr "otáčet obrázky" + +#: ../src/imageio/format/pdf.c:632 +msgid "" +"images can be rotated to match the PDF orientation to waste less space when " +"printing" +msgstr "" +"obrázky lze otočit tak, aby odpovídaly orientaci PDF, aby se při tisku méně " +"plýtvalo místem" + +#. pages all|single images|contact sheet +#: ../src/imageio/format/pdf.c:641 +msgid "TODO: pages" +msgstr "TODO: stránky" + +#: ../src/imageio/format/pdf.c:642 +msgid "what pages should be added to the PDF" +msgstr "jaké stránky by měly být přidány do PDF" + +#: ../src/imageio/format/pdf.c:645 +msgid "single images" +msgstr "jednotlivé obrázky" + +#: ../src/imageio/format/pdf.c:645 +msgid "contact sheet" +msgstr "kontaktní list" + +#. TODO +#. embedded icc profile yes|no +#: ../src/imageio/format/pdf.c:651 +msgid "embed ICC profiles" +msgstr "vestavěné ICC profily" + +#: ../src/imageio/format/pdf.c:652 +msgid "images can be tagged with their ICC profile" +msgstr "obrázky mohou být označeny jejich ICC profilem" + +#: ../src/imageio/format/pdf.c:671 +msgid "bits per channel of the embedded images" +msgstr "počet bitů na kanál vložených obrázků" + +#: ../src/imageio/format/pdf.c:677 +msgid "" +"method used for image compression\n" +"uncompressed -- fast but big files\n" +"deflate -- smaller files but slower" +msgstr "" +"metoda používaná pro kompresi obrazků\n" +"nekomprimované -- rychlé, ale velké soubory\n" +"deflate -- menší soubory, ale pomalejší" + +#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:924 +msgid "deflate" +msgstr "deflate" + +#. image mode normal|draft|debug +#: ../src/imageio/format/pdf.c:687 +msgid "image mode" +msgstr "režim obrázku" + +#: ../src/imageio/format/pdf.c:688 +msgid "" +"normal -- just put the images into the PDF\n" +"draft -- images are replaced with boxes\n" +"debug -- only show the outlines and bounding boxes" +msgstr "" +"normální – stačí vložit obrázky do PDF\n" +"koncept -- obrázky jsou nahrazeny rámečky\n" +"debug -- zobrazí pouze obrysy a ohraničovací rámečky" + +#: ../src/imageio/format/pdf.c:693 +msgid "normal" +msgstr "normální" + +#: ../src/imageio/format/pdf.c:693 +msgid "draft" +msgstr "koncept" + +#: ../src/imageio/format/pdf.c:693 +msgid "debug" +msgstr "zkouška" + +#: ../src/imageio/format/ppm.c:111 +msgid "PPM (16-bit)" +msgstr "PPM (16-bitů)" + +#: ../src/imageio/format/tiff.c:246 +msgid "not a B&W image, will not export as grayscale" +msgstr "nečernobílý obrázek, nebude exportován ve stupních šedi" + +#: ../src/imageio/format/tiff.c:925 +msgid "deflate with predictor" +msgstr "deflate s predikcí" + +#: ../src/imageio/format/tiff.c:935 +msgid "compression level" +msgstr "úroveň komprese" + +#: ../src/imageio/format/webp.c:426 +msgid "" +"for lossy, 0 gives the smallest size and 100 the best quality.\n" +"for lossless, 0 is the fastest but gives larger files compared\n" +"to the slowest 100." +msgstr "" +"pro ztrátové, 0 dává nejmenší velikost a 100 nejlepší kvalitu.\n" +"pro bezstrátové, 0 je nejrychlejší, ale dává větší soubory ve srovnání\n" +"s nejpomalejší 100." + +#: ../src/imageio/format/webp.c:436 +msgid "image hint" +msgstr "nápověda k obrázku" + +#: ../src/imageio/format/webp.c:437 +msgid "" +"image characteristics hint for the underlying encoder.\n" +"picture: digital picture, like portrait, inner shot\n" +"photo: outdoor photograph, with natural lighting\n" +"graphic: discrete tone image (graph, map-tile etc)" +msgstr "" +"nápověda k charakteristikám obrazu pro základní kodér.\n" +"obrázek: digitální obrázek, jako portrét, vnitřní záběr\n" +"foto: venkovní fotografie, s přirozeným osvětlením\n" +"grafika: diskrétní tónový obrázek (graf, mapová dlaždice atd.)" + +#: ../src/imageio/format/webp.c:442 +msgid "picture" +msgstr "obrázek" + +#: ../src/imageio/format/webp.c:442 +msgid "photo" +msgstr "fotografie" + +#: ../src/imageio/format/webp.c:442 +msgid "graphic" +msgstr "grafika" + +#: ../src/imageio/format/xcf.c:314 +msgid "XCF" +msgstr "XCF" + +#: ../src/imageio/storage/disk.c:74 ../src/libs/export.c:1119 +msgid "file on disk" +msgstr "soubor na disku" + +#: ../src/imageio/storage/disk.c:251 ../src/imageio/storage/gallery.c:204 +#: ../src/imageio/storage/latex.c:191 +msgid "" +"enter the path where to put exported images\n" +"variables support bash like string manipulation\n" +"type '$(' to activate the completion and see the list of variables" +msgstr "" +"zadejte cestu, kam umístit exportované obrázky\n" +"proměnné podporují manipulaci s řetězci jako bash\n" +"zadejte '$ (' pro aktivaci automatického dokončování a podívejte se na " +"seznam proměnných" + +#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/piwigo.c:1113 +msgid "on conflict" +msgstr "při konfliktu" + +#: ../src/imageio/storage/disk.c:268 +msgid "create unique filename" +msgstr "vytvořit unikátní název" + +#. DT_COPY_HISTORY_APPEND +#: ../src/imageio/storage/disk.c:269 ../src/imageio/storage/piwigo.c:1117 +#: ../src/libs/copy_history.c:404 ../src/libs/image.c:670 +#: ../src/libs/styles.c:854 +msgid "overwrite" +msgstr "přepsat" + +#: ../src/imageio/storage/disk.c:270 +msgid "overwrite if changed" +msgstr "v případě změny přepsat" + +#: ../src/imageio/storage/disk.c:271 ../src/imageio/storage/piwigo.c:1115 +msgid "skip" +msgstr "přeskočit" + +#: ../src/imageio/storage/disk.c:371 ../src/imageio/storage/gallery.c:326 +#: ../src/imageio/storage/latex.c:289 +#, c-format +msgid "could not create directory `%s'!" +msgstr "nelze vytvořit složku `%s'!" + +#: ../src/imageio/storage/disk.c:382 +#, c-format +msgid "could not write to directory `%s'!" +msgstr "nelze zapisovat do složky `%s'!" + +#: ../src/imageio/storage/disk.c:419 +#, c-format +msgid "%d/%d skipping `%s'" +msgid_plural "%d/%d skipping `%s'" +msgstr[0] "%d/%d přeskakuji `%s'" +msgstr[1] "%d/%d přeskakuji `%s'" +msgstr[2] "%d/%d přeskakuji `%s'" + +#: ../src/imageio/storage/disk.c:441 +#, c-format +msgid "%d/%d skipping (not modified since export) `%s'" +msgid_plural "%d/%d skipping (not modified since export) `%s'" +msgstr[0] "%d/%d přeskakočen (nezměněny od exportu) „%s“" +msgstr[1] "%d/%d přeskakočeny (nezměněno od exportu) „%s“" +msgstr[2] "%d/%d přeskakočeno (nezměněno od exportu) „%s“" + +#: ../src/imageio/storage/disk.c:465 ../src/imageio/storage/email.c:194 +#: ../src/imageio/storage/gallery.c:458 ../src/imageio/storage/latex.c:377 +#, c-format +msgid "%d/%d exported to `%s'" +msgid_plural "%d/%d exported to `%s'" +msgstr[0] "%d/%d exportován do `%s'" +msgstr[1] "%d/%d exportovány do `%s'" +msgstr[2] "%d/%d exportováno do `%s'" + +#: ../src/imageio/storage/disk.c:530 +msgid "" +"you are going to export in overwrite mode, this will overwrite any existing " +"images\n" +"\n" +"do you really want to continue?" +msgstr "" +"budete exportovat v režimu přepisování, tím přepíšete všechny existující " +"obrázky\n" +"\n" +"opravdu chcete pokračovat?" + +#: ../src/imageio/storage/email.c:57 +msgid "send as email" +msgstr "poslat email" + +#. Unlikely in normal Windows installations, but let's notify the user if it happens +#: ../src/imageio/storage/email.c:265 +msgid "could not open mapi32.dll" +msgstr "nelze otevřít mapi32.dll" + +#. Even more unlikely +#: ../src/imageio/storage/email.c:275 +msgid "could not get SendMail function" +msgstr "nelze získat funkci SendMail" + +#: ../src/imageio/storage/email.c:319 ../src/imageio/storage/email.c:409 +msgid "images exported from darktable" +msgstr "obrázky exportované z darktable" + +#: ../src/imageio/storage/email.c:388 ../src/imageio/storage/email.c:467 +msgid "could not launch email client!" +msgstr "nelze spustit e-mailového klienta!" + +#: ../src/imageio/storage/gallery.c:76 +msgid "website gallery" +msgstr "webová galerie" + +#: ../src/imageio/storage/gallery.c:224 +msgid "enter the title of the website" +msgstr "zadejte nadpis webové stránky" + +#: ../src/imageio/storage/latex.c:72 +msgid "LaTeX book template" +msgstr "Šablona knihy LaTeX" + +#: ../src/imageio/storage/latex.c:209 +msgid "enter the title of the book" +msgstr "zadejte název knihy" + +#: ../src/imageio/storage/piwigo.c:525 +msgid "authenticated" +msgstr "ověřené" + +#: ../src/imageio/storage/piwigo.c:536 ../src/imageio/storage/piwigo.c:552 +#: ../src/imageio/storage/piwigo.c:565 +msgid "not authenticated" +msgstr "neověřené" + +#: ../src/imageio/storage/piwigo.c:542 +msgid "not authenticated, cannot reach server" +msgstr "není ověřeno, nelze se připojit k serveru" + +#: ../src/imageio/storage/piwigo.c:595 ../src/imageio/storage/piwigo.c:684 +msgid "create new album" +msgstr "vytvořit album" + +#: ../src/imageio/storage/piwigo.c:685 +msgid "---" +msgstr "---" + +#: ../src/imageio/storage/piwigo.c:735 +msgid "cannot refresh albums" +msgstr "nelze obnovit alba" + +#: ../src/imageio/storage/piwigo.c:950 +msgid "Piwigo" +msgstr "Piwigo" + +#: ../src/imageio/storage/piwigo.c:976 +msgid "accounts" +msgstr "uživatelé" + +#: ../src/imageio/storage/piwigo.c:995 ../src/imageio/storage/piwigo.c:1004 +msgid "server" +msgstr "server" + +#: ../src/imageio/storage/piwigo.c:998 +msgid "" +"the server name\n" +"default protocol is https\n" +"specify insecure protocol http:// explicitly if that protocol is required" +msgstr "" +"název serveru\n" +"výchozí protokol je https\n" +"specifikujte explicitně nezabezpečený protokol http://, pokud je tento " +"protokol vyžadován" + +#: ../src/imageio/storage/piwigo.c:1014 ../src/imageio/storage/piwigo.c:1021 +msgid "user" +msgstr "uživatel" + +#: ../src/imageio/storage/piwigo.c:1029 ../src/imageio/storage/piwigo.c:1034 +msgid "password" +msgstr "heslo" + +#. login button +#: ../src/imageio/storage/piwigo.c:1039 +msgid "login" +msgstr "login" + +#: ../src/imageio/storage/piwigo.c:1040 +msgid "Piwigo login" +msgstr "Piwigo uživatelské jméno" + +#. permissions list +#: ../src/imageio/storage/piwigo.c:1056 +msgid "visible to" +msgstr "viditelné pro" + +#: ../src/imageio/storage/piwigo.c:1058 +msgid "everyone" +msgstr "všichni" + +#: ../src/imageio/storage/piwigo.c:1059 +msgid "contacts" +msgstr "kontakty" + +#: ../src/imageio/storage/piwigo.c:1060 +msgid "friends" +msgstr "přátelé" + +#: ../src/imageio/storage/piwigo.c:1061 +msgid "family" +msgstr "rodina" + +#: ../src/imageio/storage/piwigo.c:1062 +msgid "you" +msgstr "vy" + +#. Available albums +#: ../src/imageio/storage/piwigo.c:1069 +msgid "album" +msgstr "album" + +#: ../src/imageio/storage/piwigo.c:1076 +msgid "refresh album list" +msgstr "obnovit seznam alb" + +#. Album title +#: ../src/imageio/storage/piwigo.c:1096 +msgid "new album" +msgstr "nové album" + +#. Available albums +#: ../src/imageio/storage/piwigo.c:1105 +msgid "parent album" +msgstr "nadřazené album" + +#: ../src/imageio/storage/piwigo.c:1109 +msgid "click login button to start" +msgstr "začněte kliknutím na tlačítko přihlášení" + +#: ../src/imageio/storage/piwigo.c:1114 +msgid "don't check" +msgstr "nekontrolovat" + +#: ../src/imageio/storage/piwigo.c:1116 +msgid "update metadata" +msgstr "aktualizovat metadata" + +#: ../src/imageio/storage/piwigo.c:1255 +msgid "cannot create a new Piwigo album!" +msgstr "nelze vytvořit nové album Piwigo!" + +#: ../src/imageio/storage/piwigo.c:1274 +msgid "could not update to Piwigo!" +msgstr "nelze aktualizovat na Piwigo!" + +#: ../src/imageio/storage/piwigo.c:1290 +msgid "could not upload to Piwigo!" +msgstr "nelze nahrát na Piwigo!" + +#: ../src/imageio/storage/piwigo.c:1319 +#, c-format +msgid "%d/%d skipped (already exists)" +msgstr "%d/%d přeskočeno (již existuje)" + +#: ../src/imageio/storage/piwigo.c:1325 +#, c-format +msgid "%d/%d exported to Piwigo webalbum" +msgid_plural "%d/%d exported to Piwigo webalbum" +msgstr[0] "%d/%d exportován do alba Piwigo" +msgstr[1] "%d/%d exportovány do alba Piwigo" +msgstr[2] "%d/%d exportováno do alba Piwigo" + +#: ../src/iop/ashift.c:120 +msgid "rotate and perspective" +msgstr "rotace a perspektiva" + +#: ../src/iop/ashift.c:125 +msgid "rotation|keystone|distortion|crop|reframe" +msgstr "rotace|základní kámen|zkreslení|oříznutí|přerámování" + +#: ../src/iop/ashift.c:130 +msgid "rotate or distort perspective" +msgstr "otočit nebo zkreslit perspektivu" + +#: ../src/iop/ashift.c:131 ../src/iop/channelmixer.c:139 +#: ../src/iop/channelmixerrgb.c:233 ../src/iop/clipping.c:363 +#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:185 +#: ../src/iop/colorchecker.c:130 ../src/iop/colorcorrection.c:77 +#: ../src/iop/crop.c:134 ../src/iop/lut3d.c:142 ../src/iop/primaries.c:80 +msgid "corrective or creative" +msgstr "korektivní nebo kreativní" + +#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:174 +#: ../src/iop/bilateral.cc:103 ../src/iop/bilateral.cc:105 +#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:236 ../src/iop/clipping.c:364 +#: ../src/iop/clipping.c:366 ../src/iop/colorbalancergb.c:186 +#: ../src/iop/colorin.c:136 ../src/iop/crop.c:135 ../src/iop/crop.c:137 +#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:780 +#: ../src/iop/denoiseprofile.c:782 ../src/iop/diffuse.c:146 +#: ../src/iop/diffuse.c:148 ../src/iop/exposure.c:132 ../src/iop/exposure.c:134 +#: ../src/iop/flip.c:111 ../src/iop/flip.c:112 ../src/iop/hazeremoval.c:113 +#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:263 ../src/iop/lens.cc:265 +#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/primaries.c:81 +#: ../src/iop/primaries.c:83 ../src/iop/retouch.c:210 ../src/iop/retouch.c:212 +#: ../src/iop/sigmoid.c:209 ../src/iop/splittoning.c:106 +#: ../src/iop/splittoning.c:108 ../src/iop/spots.c:70 ../src/iop/spots.c:72 +#: ../src/iop/toneequal.c:333 ../src/iop/velvia.c:99 ../src/iop/velvia.c:101 +msgid "linear, RGB, scene-referred" +msgstr "lineární, RGB, s odkazem na scénu" + +#: ../src/iop/ashift.c:133 ../src/iop/borders.c:325 ../src/iop/clipping.c:365 +#: ../src/iop/crop.c:136 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 +msgid "geometric, RGB" +msgstr "geometrické, RGB" + +#: ../src/iop/ashift.c:2866 +msgid "automatic cropping failed" +msgstr "automatické oříznutí se nezdařilo" + +#: ../src/iop/ashift.c:3276 ../src/iop/ashift.c:3328 ../src/iop/ashift.c:3375 +msgid "data pending - please repeat" +msgstr "data čekající na vyřízení – opakujte prosím" + +#: ../src/iop/ashift.c:3285 +msgid "could not detect structural data in image" +msgstr "nelze detekovat strukturální data v obrázku" + +#: ../src/iop/ashift.c:3297 +msgid "could not run outlier removal" +msgstr "nelze spustit odstranění odlehlých hodnot" + +#: ../src/iop/ashift.c:3474 +#, c-format +msgid "" +"not enough structure for automatic correction\n" +"minimum %d lines in each relevant direction" +msgstr "" +"nedostatečná struktura pro automatickou korekci\n" +"minimálně %d řádků v každém relevantním směru" + +#: ../src/iop/ashift.c:3480 +msgid "automatic correction failed, please correct manually" +msgstr "automatická oprava selhala, opravte ji prosím ručně" + +#: ../src/iop/ashift.c:5077 +#, c-format +msgid "only %d lines can be saved in parameters" +msgstr "do parametrů lze uložit pouze %d řádků" + +#: ../src/iop/ashift.c:5157 +#, c-format +msgid "rotation adjusted by %3.2f° to %3.2f°" +msgstr "otočení upraveno o %3.2f° až %3.2f°" + +#: ../src/iop/ashift.c:5797 ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 +#: ../src/iop/ashift.c:5906 +#, c-format +msgid "lens shift (%s)" +msgstr "posun objektivu (%s)" + +#: ../src/iop/ashift.c:6072 +msgid "manual perspective" +msgstr "manuální perspektiva" + +#: ../src/iop/ashift.c:6117 +msgctxt "section" +msgid "perspective" +msgstr "perspektivní" + +#: ../src/iop/ashift.c:6124 ../src/iop/ashift.c:6233 ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6237 +msgid "structure" +msgstr "struktura" + +#: ../src/iop/ashift.c:6159 +msgid "" +"rotate image\n" +"right-click and drag to define a horizontal or vertical line by drawing on " +"the image" +msgstr "" +"otočit obrázek\n" +"klik pravým tlačítkem a tažení definujte vodorovnou nebo svislou čáru " +"kreslením na obrázek" + +#: ../src/iop/ashift.c:6162 ../src/iop/ashift.c:6164 +msgid "apply lens shift correction in one direction" +msgstr "použijte korekci posunu čočky v jednom směru" + +#: ../src/iop/ashift.c:6166 +msgid "shear the image along one diagonal" +msgstr "zkosit obraz podél jedné úhlopříčky" + +#: ../src/iop/ashift.c:6167 ../src/iop/clipping.c:2170 +msgid "automatically crop to avoid black edges" +msgstr "automaticky oříznout, aby se zabránilo černým okrajům" + +#: ../src/iop/ashift.c:6168 +msgid "" +"lens model of the perspective correction: generic or according to the focal " +"length" +msgstr "" +"model objektivu korekce perspektivy: obecný nebo podle ohniskové vzdálenosti" + +#: ../src/iop/ashift.c:6171 +msgid "focal length of the lens, default value set from EXIF data if available" +msgstr "" +"ohnisková vzdálenost objektivu, výchozí hodnota nastavená z EXIF dat, pokud " +"jsou k dispozici" + +#: ../src/iop/ashift.c:6174 +msgid "" +"crop factor of the camera sensor, default value set from EXIF data if " +"available, manual setting is often required" +msgstr "" +"crop faktor snímače fotoaparátu, výchozí hodnota nastavená z EXIF dat, pokud " +"jsou k dispozici, často je vyžadováno ruční nastavení" + +#: ../src/iop/ashift.c:6178 +msgid "" +"the level of lens dependent correction, set to maximum for full lens " +"dependency, set to zero for the generic case" +msgstr "" +"úroveň korekce závislé na objektivu, nastavena na maximum pro plnou " +"závislost na objektivu, nastavena na nulu pro obecný případ" + +#: ../src/iop/ashift.c:6182 +msgid "adjust aspect ratio of image by horizontal and vertical scaling" +msgstr "upravit poměr stran obrázku horizontálním a vertikálním škálováním" + +#: ../src/iop/ashift.c:6184 +msgid "" +"automatically correct for vertical perspective distortion\n" +"ctrl+click to only fit rotation\n" +"shift+click to only fit lens shift" +msgstr "" +"automaticky koriguje vertikální perspektivní zkreslení\n" +"ctrl+klik přizpůsobíte pouze rotaci\n" +"shift+klik přizpůsobíte pouze posun objektivu" + +#: ../src/iop/ashift.c:6188 +msgid "" +"automatically correct for horizontal perspective distortion\n" +"ctrl+click to only fit rotation\n" +"shift+click to only fit lens shift" +msgstr "" +"automaticky koriguje zkreslení horizontální perspektivy\n" +"ctrl+klik přizpůsobíte pouze rotaci\n" +"shift+klik přizpůsobíte pouze posun objektivu" + +#: ../src/iop/ashift.c:6192 +msgid "" +"automatically correct for vertical and horizontal perspective distortions, " +"fitting rotation, lens shift in both directions, and shear\n" +"ctrl+click to only fit rotation\n" +"shift+click to only fit lens shift\n" +"ctrl+shift+click to only fit rotation and lens shift" +msgstr "" +"automaticky koriguje vertikální a horizontální perspektivní zkreslení; " +"rotace lícování, posun objektivu v obou směrech a střih\n" +"ctrl+klik přizpůsobí pouze rotaci\n" +"shift+klik přizpůsobí pouze posun objektivu\n" +"ctrl+shift+klik přizpůsobí pouze rotaci a posun objektivu" + +#: ../src/iop/ashift.c:6199 +msgid "" +"automatically analyse line structure in image\n" +"ctrl+click for an additional edge enhancement\n" +"shift+click for an additional detail enhancement\n" +"ctrl+shift+click for a combination of both methods" +msgstr "" +"automaticky analyzovat liniovou strukturu v obraze\n" +"Ctrl+klik pro další vylepšení hran\n" +"Shift+klik pro další vylepšení detailů\n" +"ctrl+shift+klik pro kombinaci obou metod" + +#: ../src/iop/ashift.c:6204 +msgid "manually define perspective rectangle" +msgstr "ručně definovat perspektivní obdélník" + +#: ../src/iop/ashift.c:6205 +msgid "manually draw structure lines" +msgstr "ručně nakreslete čáry struktury" + +#: ../src/iop/ashift.c:6234 +msgid "rectangle" +msgstr "obdélník" + +#: ../src/iop/ashift.c:6236 +msgid "lines" +msgstr "čáry" + +#: ../src/iop/ashift.c:6270 ../src/iop/clipping.c:3383 +#, c-format +msgid "[%s] define/rotate horizon" +msgstr "[%s] definovat/otočit horizont" + +#: ../src/iop/ashift.c:6273 +#, c-format +msgid "[%s on segment] select segment" +msgstr "[%s na segmentu] vyberte segment" + +#: ../src/iop/ashift.c:6277 +#, c-format +msgid "[%s on segment] unselect segment" +msgstr "[%s na segmentu] zrušit výběr segmentu" + +#: ../src/iop/ashift.c:6281 +#, c-format +msgid "[%s] select all segments from zone" +msgstr "[%s] vybrat všechny segmenty ze zóny" + +#: ../src/iop/ashift.c:6285 +#, c-format +msgid "[%s] unselect all segments from zone" +msgstr "[%s] zrušit výběr všech segmentů ze zóny" + +#: ../src/iop/atrous.c:122 ../src/iop/atrous.c:1770 +msgid "contrast equalizer" +msgstr "ekvalizér kontrastu" + +#: ../src/iop/atrous.c:127 +msgid "sharpness|acutance|local contrast" +msgstr "ostrost|acutance|místní kontrast" + +#: ../src/iop/atrous.c:132 +msgid "add or remove local contrast, sharpness, acutance" +msgstr "přidat nebo odstranit místní kontrast, sharpness, acutance" + +#: ../src/iop/atrous.c:133 ../src/iop/bilateral.cc:102 ../src/iop/diffuse.c:145 +#: ../src/iop/exposure.c:131 ../src/iop/filmicrgb.c:352 +#: ../src/iop/graduatednd.c:146 ../src/iop/negadoctor.c:146 +#: ../src/iop/rgbcurve.c:145 ../src/iop/rgblevels.c:125 ../src/iop/shadhi.c:144 +#: ../src/iop/sigmoid.c:209 ../src/iop/tonecurve.c:184 +#: ../src/iop/toneequal.c:332 +msgid "corrective and creative" +msgstr "korektivní a kreativní" + +#: ../src/iop/atrous.c:134 ../src/iop/atrous.c:136 +#: ../src/iop/colorbalance.c:164 +msgid "linear, Lab, scene-referred" +msgstr "lineární, lab, s odkazem na scénu" + +#: ../src/iop/atrous.c:135 ../src/iop/censorize.c:85 +#: ../src/iop/hazeremoval.c:114 +msgid "frequential, RGB" +msgstr "frekvenční, RGB" + +#: ../src/iop/atrous.c:799 +msgctxt "eq_preset" +msgid "coarse" +msgstr "hrubý" + +#: ../src/iop/atrous.c:815 +msgid "denoise & sharpen" +msgstr "odšumění & doostření" + +#: ../src/iop/atrous.c:831 +msgctxt "atrous" +msgid "sharpen" +msgstr "doostření" + +#: ../src/iop/atrous.c:847 +msgid "denoise chroma" +msgstr "odšumění chroma" + +#: ../src/iop/atrous.c:863 +msgid "denoise" +msgstr "odšumění" + +#: ../src/iop/atrous.c:880 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:448 +msgid "bloom" +msgstr "zasněný vzhled" + +#: ../src/iop/atrous.c:896 ../src/iop/bilat.c:186 +msgid "clarity" +msgstr "jasnost" + +#: ../src/iop/atrous.c:917 +msgid "deblur: large blur, strength 3" +msgstr "deblur: velké rozostření, síla 3" + +#: ../src/iop/atrous.c:935 +msgid "deblur: medium blur, strength 3" +msgstr "deblur: střední rozostření, síla 3" + +#: ../src/iop/atrous.c:952 +msgid "deblur: fine blur, strength 3" +msgstr "deblur: jemné rozostření, síla 3" + +#: ../src/iop/atrous.c:971 +msgid "deblur: large blur, strength 2" +msgstr "deblur: velké rozostření, síla 2" + +#: ../src/iop/atrous.c:989 +msgid "deblur: medium blur, strength 2" +msgstr "deblur: střední rozostření, síla 2" + +#: ../src/iop/atrous.c:1006 +msgid "deblur: fine blur, strength 2" +msgstr "deblur: jemné rozostření, síla 2" + +#: ../src/iop/atrous.c:1025 +msgid "deblur: large blur, strength 1" +msgstr "deblur: velké rozostření, síla 1" + +#: ../src/iop/atrous.c:1043 +msgid "deblur: medium blur, strength 1" +msgstr "deblur: střední rozostření, síla 1" + +#: ../src/iop/atrous.c:1060 +msgid "deblur: fine blur, strength 1" +msgstr "deblur: jemné rozostření, síla 1" + +#: ../src/iop/atrous.c:1390 ../src/iop/atrous.c:1639 +#: ../src/iop/denoiseprofile.c:3514 ../src/iop/rawdenoise.c:754 +msgid "coarse" +msgstr "hrubý" + +#: ../src/iop/atrous.c:1397 ../src/iop/atrous.c:1640 +#: ../src/iop/denoiseprofile.c:3522 ../src/iop/rawdenoise.c:762 +msgid "fine" +msgstr "jemně" + +#: ../src/iop/atrous.c:1409 +msgid "contrasty" +msgstr "kontrastní" + +#: ../src/iop/atrous.c:1415 ../src/iop/denoiseprofile.c:3536 +#: ../src/iop/rawdenoise.c:776 +msgid "noisy" +msgstr "zašumněný" + +#. case atrous_s: +#: ../src/iop/atrous.c:1418 +msgid "bold" +msgstr "tučný" + +#: ../src/iop/atrous.c:1419 +msgid "dull" +msgstr "nudný" + +#: ../src/iop/atrous.c:1627 ../src/iop/atrous.c:1685 +msgid "boost" +msgstr "zesílení" + +#: ../src/iop/atrous.c:1628 +msgid "reduce" +msgstr "redukovat" + +#: ../src/iop/atrous.c:1629 +msgid "raise" +msgstr "opatřit" + +#: ../src/iop/atrous.c:1630 +msgid "lower" +msgstr "dolní" + +#: ../src/iop/atrous.c:1637 +msgid "coarsest" +msgstr "nejhrubší" + +#: ../src/iop/atrous.c:1638 +msgid "coarser" +msgstr "hrubší" + +#: ../src/iop/atrous.c:1641 +msgid "finer" +msgstr "jemnější" + +#: ../src/iop/atrous.c:1642 +msgid "finest" +msgstr "nejlepší" + +#: ../src/iop/atrous.c:1710 ../src/libs/export.c:1239 ../src/libs/export.c:1255 +msgid "x" +msgstr "x" + +#: ../src/iop/atrous.c:1799 ../src/iop/nlmeans.c:468 +msgid "luma" +msgstr "luma" + +#: ../src/iop/atrous.c:1800 +msgid "change lightness at each feature size" +msgstr "změnit světlost při každé velikosti prvku" + +#: ../src/iop/atrous.c:1802 +msgid "change color saturation at each feature size" +msgstr "změnit sytost barev při každé velikosti prvku" + +#: ../src/iop/atrous.c:1804 +msgid "edges" +msgstr "hrany" + +#: ../src/iop/atrous.c:1805 +msgid "" +"change edge halos at each feature size\n" +"only changes results of luma and chroma tabs" +msgstr "" +"změňte okrajové halo při každé velikosti prvku\n" +"změní pouze výsledky karet luma a chroma" + +#: ../src/iop/atrous.c:1818 ../src/iop/colorbalancergb.c:2129 +#: ../src/iop/colorzones.c:2732 ../src/iop/denoiseprofile.c:3747 +#: ../src/iop/filmicrgb.c:4471 ../src/iop/lowlight.c:821 +#: ../src/iop/rawdenoise.c:935 ../src/iop/toneequal.c:3424 +msgid "graph" +msgstr "graf" + +#: ../src/iop/atrous.c:1836 ../src/iop/colorzones.c:2729 +msgid "make effect stronger or weaker" +msgstr "zvolit účinek silnější nebo slabší" + +#: ../src/iop/basecurve.c:260 +msgid "neutral" +msgstr "neutrální" + +#: ../src/iop/basecurve.c:261 +msgid "canon eos like" +msgstr "jako canon eos" + +#: ../src/iop/basecurve.c:262 +msgid "canon eos like alternate" +msgstr "jako canon eos alternativní" + +#: ../src/iop/basecurve.c:263 +msgid "nikon like" +msgstr "jako nikon" + +#: ../src/iop/basecurve.c:264 +msgid "nikon like alternate" +msgstr "jako nikon alternativní" + +#: ../src/iop/basecurve.c:265 +msgid "sony alpha like" +msgstr "jako sony alpha" + +#: ../src/iop/basecurve.c:266 +msgid "pentax like" +msgstr "jako pentax" + +#: ../src/iop/basecurve.c:267 +msgid "ricoh like" +msgstr "jako ricoh" + +#: ../src/iop/basecurve.c:268 +msgid "olympus like" +msgstr "jako olympus" + +#: ../src/iop/basecurve.c:269 +msgid "olympus like alternate" +msgstr "jako olympus alternativní" + +#: ../src/iop/basecurve.c:270 +msgid "panasonic like" +msgstr "jako panasonic" + +#: ../src/iop/basecurve.c:271 +msgid "leica like" +msgstr "jako leica" + +#: ../src/iop/basecurve.c:272 +msgid "kodak easyshare like" +msgstr "jako kodak easyshare" + +#: ../src/iop/basecurve.c:273 +msgid "konica minolta like" +msgstr "jako konica minolta" + +#: ../src/iop/basecurve.c:274 +msgid "samsung like" +msgstr "jako samsung" + +#: ../src/iop/basecurve.c:275 +msgid "fujifilm like" +msgstr "jako fujifilm" + +#: ../src/iop/basecurve.c:276 +msgid "nokia like" +msgstr "jako nokia" + +#. clang-format off +#. smoother cubic spline curve +#: ../src/iop/basecurve.c:331 ../src/iop/colorzones.c:2763 +#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1195 +msgid "cubic spline" +msgstr "kubická křivka" + +#: ../src/iop/basecurve.c:390 +msgid "base curve" +msgstr "základní křivka" + +#: ../src/iop/basecurve.c:397 +msgid "" +"apply a view transform based on personal or camera manufacturer look,\n" +"for corrective purposes, to prepare images for display" +msgstr "" +"použít transformaci pohledu na základě osobního vzhledu nebo vzhledu výrobce " +"fotoaparátu,\n" +"k opravným účelům, k přípravě snímků k zobrazení" + +#: ../src/iop/basecurve.c:399 ../src/iop/cacorrect.c:84 +#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:120 +#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:779 +#: ../src/iop/flip.c:110 ../src/iop/hazeremoval.c:112 +#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:75 +#: ../src/iop/invert.c:136 ../src/iop/lens.cc:262 ../src/iop/nlmeans.c:89 +#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:144 +#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:96 ../src/iop/spots.c:69 +#: ../src/iop/temperature.c:220 +msgid "corrective" +msgstr "korektivní" + +#: ../src/iop/basecurve.c:400 ../src/iop/channelmixer.c:140 +#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:143 +#: ../src/iop/negadoctor.c:147 ../src/iop/profile_gamma.c:103 +#: ../src/iop/rgbcurve.c:146 ../src/iop/rgbcurve.c:148 +#: ../src/iop/rgblevels.c:126 ../src/iop/sigmoid.c:210 ../src/iop/soften.c:104 +#: ../src/iop/soften.c:106 +msgid "linear, RGB, display-referred" +msgstr "lineární, RGB, s odkazem na displej" + +#: ../src/iop/basecurve.c:401 ../src/iop/basicadj.c:175 +#: ../src/iop/colorbalance.c:165 ../src/iop/colorbalancergb.c:187 +#: ../src/iop/dither.c:121 ../src/iop/filmicrgb.c:354 +#: ../src/iop/graduatednd.c:148 ../src/iop/negadoctor.c:148 +#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:147 +#: ../src/iop/rgblevels.c:127 ../src/iop/sigmoid.c:210 +#: ../src/iop/vignette.c:122 ../src/iop/watermark.c:424 +msgid "non-linear, RGB" +msgstr "nelineární, RGB" + +#: ../src/iop/basecurve.c:402 ../src/iop/dither.c:120 ../src/iop/dither.c:122 +#: ../src/iop/filmicrgb.c:355 ../src/iop/graduatednd.c:149 +#: ../src/iop/negadoctor.c:149 ../src/iop/profile_gamma.c:105 +#: ../src/iop/rgblevels.c:128 ../src/iop/vignette.c:121 +#: ../src/iop/vignette.c:123 ../src/iop/watermark.c:423 +#: ../src/iop/watermark.c:425 +msgid "non-linear, RGB, display-referred" +msgstr "nelineární, RGB, displej" + +#: ../src/iop/basecurve.c:2205 +msgid "abscissa: input, ordinate: output. works on RGB channels" +msgstr "úsečka: vstup, pořadnice: výstup. funguje na kanálech RGB" + +#: ../src/iop/basecurve.c:2211 ../src/iop/basicadj.c:642 +#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1133 +#: ../src/iop/tonecurve.c:1206 +msgid "method to preserve colors when applying contrast" +msgstr "metoda pro zachování barev při použití kontrastu" + +#: ../src/iop/basecurve.c:2215 +msgid "two exposures" +msgstr "dvě expozice" + +#: ../src/iop/basecurve.c:2216 +msgid "three exposures" +msgstr "tři expozice" + +#: ../src/iop/basecurve.c:2217 +msgid "" +"fuse this image stopped up/down a couple of times with itself, to compress " +"high dynamic range. expose for the highlights before use." +msgstr "" +"spojte tento obraz několikrát se sebou nahoru/dolů, aby se komprimoval " +"vysoký dynamický rozsah. před použitím exponujte pro odlesky." + +#: ../src/iop/basecurve.c:2222 +msgid "how many stops to shift the individual exposures apart" +msgstr "o kolik zastávek posunout jednotlivé expozice od sebe" + +#: ../src/iop/basecurve.c:2231 +msgid "" +"whether to shift exposure up or down (-1: reduce highlight, +1: reduce " +"shadows)" +msgstr "" +"zda posunout expozici nahoru nebo dolů (-1: snížení zvýraznění, +1: snížení " +"stínů)" + +#: ../src/iop/basecurve.c:2236 ../src/iop/tonecurve.c:1209 +msgid "scale for graph" +msgstr "měřítko pro graf" + +#: ../src/iop/basicadj.c:162 +msgid "this module is deprecated. please use the quick access panel instead." +msgstr "tento modul je zastaralý. místo toho použijte panel rychlého přístupu." + +#: ../src/iop/basicadj.c:167 +msgid "basic adjustments" +msgstr "základní úpravy" + +#: ../src/iop/basicadj.c:172 +msgid "apply usual image adjustments" +msgstr "použít obvyklé úpravy obrazu" + +#: ../src/iop/basicadj.c:173 ../src/iop/bilat.c:83 ../src/iop/bloom.c:81 +#: ../src/iop/blurs.c:93 ../src/iop/borders.c:323 ../src/iop/censorize.c:83 +#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:89 +#: ../src/iop/colorize.c:98 ../src/iop/colormapping.c:153 +#: ../src/iop/colorzones.c:146 ../src/iop/grain.c:450 ../src/iop/highpass.c:78 +#: ../src/iop/levels.c:140 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 +#: ../src/iop/lowpass.c:106 ../src/iop/monochrome.c:100 ../src/iop/soften.c:103 +#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:98 ../src/iop/vibrance.c:97 +#: ../src/iop/vignette.c:120 ../src/iop/watermark.c:422 +msgid "creative" +msgstr "kreativní" + +#: ../src/iop/basicadj.c:176 ../src/iop/colorbalancergb.c:188 +msgid "non-linear, RGB, scene-referred" +msgstr "nelineární, RGB, s odkazem na scénu" + +#: ../src/iop/basicadj.c:623 +msgid "" +"adjust the black level to unclip negative RGB values.\n" +"you should never use it to add more density in blacks!\n" +"if poorly set, it will clip near-black colors out of gamut\n" +"by pushing RGB values into negatives" +msgstr "" +"upravte úroveň černé, abyste odřízli záporné hodnoty RGB.\n" +"nikdy byste jej neměli používat k přidání větší hustoty v černé!\n" +"je-li špatně nastaven, ořízne téměř černé barvy mimo rozsah\n" +"posunutím hodnot RGB do záporů" + +#: ../src/iop/basicadj.c:631 ../src/iop/exposure.c:1136 +msgid "adjust the exposure correction" +msgstr "upravit korekci expozice" + +#: ../src/iop/basicadj.c:635 +msgid "highlight compression adjustment" +msgstr "nastavení komprese světel" + +#: ../src/iop/basicadj.c:639 ../src/iop/colisa.c:302 +msgid "contrast adjustment" +msgstr "úprava kontrastu" + +#: ../src/iop/basicadj.c:647 +msgid "middle gray adjustment" +msgstr "úprava střední šedé" + +#: ../src/iop/basicadj.c:652 ../src/iop/colisa.c:303 +msgid "brightness adjustment" +msgstr "nastavení jasu" + +#: ../src/iop/basicadj.c:655 +msgid "saturation adjustment" +msgstr "úprava sytosti" + +#: ../src/iop/basicadj.c:658 +msgid "vibrance adjustment" +msgstr "nastavení živosti" + +#: ../src/iop/basicadj.c:662 +msgid "apply auto exposure based on the entire image" +msgstr "použijte automatickou expozici na základě celého snímku" + +#: ../src/iop/basicadj.c:669 +msgid "" +"apply auto exposure based on a region defined by the user\n" +"click and drag to draw the area\n" +"right click to cancel" +msgstr "" +"použít automatickou expozici na základě regionu definovaného uživatelem\n" +"kliknutím a tažením nakreslete oblast\n" +"kliknutím pravým tlačítkem zrušíte" + +#: ../src/iop/basicadj.c:677 +msgid "clip" +msgstr "střih" + +#: ../src/iop/basicadj.c:679 +msgid "adjusts clipping value for auto exposure calculation" +msgstr "upraví hodnotu oříznutí pro automatický výpočet expozice" + +#. local contrast +#: ../src/iop/bilat.c:77 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:578 +msgid "local contrast" +msgstr "místní kontrast" + +#: ../src/iop/bilat.c:82 +msgid "manipulate local and global contrast separately" +msgstr "pracovat s místním a globálním kontrastem odděleně" + +#: ../src/iop/bilat.c:84 ../src/iop/bilat.c:86 ../src/iop/bloom.c:82 +#: ../src/iop/bloom.c:84 ../src/iop/colisa.c:91 ../src/iop/colisa.c:93 +#: ../src/iop/colorcontrast.c:90 ../src/iop/colorcontrast.c:92 +#: ../src/iop/colorcorrection.c:78 ../src/iop/colorcorrection.c:80 +#: ../src/iop/colorize.c:101 ../src/iop/colormapping.c:156 +#: ../src/iop/colorreconstruction.c:123 ../src/iop/colorzones.c:149 +#: ../src/iop/defringe.c:85 ../src/iop/grain.c:451 ../src/iop/grain.c:453 +#: ../src/iop/levels.c:143 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 +#: ../src/iop/monochrome.c:103 ../src/iop/nlmeans.c:90 ../src/iop/nlmeans.c:92 +#: ../src/iop/shadhi.c:147 ../src/iop/tonecurve.c:187 ../src/iop/vibrance.c:100 +msgid "non-linear, Lab, display-referred" +msgstr "nelineární, Lab, s odkazem na displej" + +#: ../src/iop/bilat.c:85 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 +#: ../src/iop/colorcontrast.c:91 ../src/iop/colorcorrection.c:79 +#: ../src/iop/colorize.c:100 ../src/iop/colormapping.c:155 +#: ../src/iop/colorreconstruction.c:122 ../src/iop/colorzones.c:148 +#: ../src/iop/defringe.c:84 ../src/iop/grain.c:452 ../src/iop/levels.c:142 +#: ../src/iop/monochrome.c:102 ../src/iop/nlmeans.c:91 ../src/iop/shadhi.c:146 +#: ../src/iop/tonecurve.c:186 ../src/iop/vibrance.c:99 +msgid "non-linear, Lab" +msgstr "nelineární, Lab" + +#: ../src/iop/bilat.c:195 +msgid "HDR local tone-mapping" +msgstr "HDR místní mapování tónů" + +#: ../src/iop/bilat.c:441 +msgid "" +"the filter used for local contrast enhancement. bilateral is faster but can " +"lead to artifacts around edges for extreme settings." +msgstr "" +"filtr používaný pro místní zvýšení kontrastu. oboustranný je rychlejší, ale " +"může vést k artefaktům kolem okrajů při extrémním nastavení." + +#: ../src/iop/bilat.c:445 ../src/iop/globaltonemap.c:668 +msgid "detail" +msgstr "detail" + +#: ../src/iop/bilat.c:448 +msgid "changes the local contrast" +msgstr "mění místní kontrast" + +#: ../src/iop/bilat.c:463 +msgid "feature size of local details (spatial sigma of bilateral filter)" +msgstr "" +"velikost funkce místních detailů (prostorové sigma bilaterálního filtru)" + +#: ../src/iop/bilat.c:471 +msgid "L difference to detect edges (range sigma of bilateral filter)" +msgstr "L rozdíl pro detekci hran (rozsah sigma bilaterálního filtru)" + +#: ../src/iop/bilat.c:477 +msgid "changes the local contrast of highlights" +msgstr "mění místní kontrast světel" + +#: ../src/iop/bilat.c:483 +msgid "changes the local contrast of shadows" +msgstr "mění místní kontrast stínů" + +#: ../src/iop/bilat.c:489 +msgid "" +"defines what counts as mid-tones. lower for better dynamic range compression " +"(reduce shadow and highlight contrast), increase for more powerful local " +"contrast" +msgstr "" +"definuje, co se počítá jako střední tóny. nižší pro lepší kompresi " +"dynamického rozsahu (snížení kontrastu stínů a světel), zvýšení pro silnější " +"místní kontrast" + +#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:423 +msgid "surface blur" +msgstr "povrchové rozostření" + +#: ../src/iop/bilateral.cc:79 +msgid "denoise (bilateral filter)" +msgstr "odšumění (oboustranný filtr)" + +#: ../src/iop/bilateral.cc:101 +msgid "apply edge-aware surface blur to denoise or smoothen textures" +msgstr "" +"aplikujte rozostření povrchu s ohledem na okraje pro odšumění nebo vyhlazení " +"textur" + +#: ../src/iop/bilateral.cc:104 ../src/iop/blurs.c:93 +#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:781 +#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/primaries.c:82 +#: ../src/iop/soften.c:105 ../src/iop/splittoning.c:107 ../src/iop/velvia.c:100 +msgid "linear, RGB" +msgstr "lineární, RGB" + +#: ../src/iop/bilateral.cc:138 +msgid "image too large" +msgstr "obrázek je příliš velký" + +#: ../src/iop/bilateral.cc:139 +msgid "" +"this module is unable to process\n" +"images with more than 2 gigapixels.\n" +"processing has been skipped." +msgstr "" +"tento modul není schopen zpracovat\n" +"obrázky s více než 2 gigapixely.\n" +"zpracování bylo přeskočeno." + +#: ../src/iop/bilateral.cc:353 +msgid "spatial extent of the gaussian" +msgstr "gaussuv prostorový rozsah" + +#: ../src/iop/bilateral.cc:357 +msgid "how much to blur red" +msgstr "jak moc rozmazat červenou" + +#: ../src/iop/bilateral.cc:362 +msgid "how much to blur green" +msgstr "jak moc rozmazat zelenou" + +#: ../src/iop/bilateral.cc:367 +msgid "how much to blur blue" +msgstr "jak moc rozmazat modrou" + +#: ../src/iop/bloom.c:80 +msgid "apply Orton effect for a dreamy aetherical look" +msgstr "aplikujte Ortonův efekt pro zasněný éterický vzhled" + +#: ../src/iop/bloom.c:364 ../src/iop/soften.c:364 ../src/libs/camera.c:567 +#: ../src/libs/masks.c:106 +msgid "size" +msgstr "velikost" + +#: ../src/iop/bloom.c:366 +msgid "the size of bloom" +msgstr "velikost zasnění" + +#: ../src/iop/bloom.c:370 +msgid "the threshold of light" +msgstr "práh světla" + +#: ../src/iop/bloom.c:374 +msgid "the strength of bloom" +msgstr "síla zasnění" + +#: ../src/iop/blurs.c:81 +msgid "blurs" +msgstr "rozostření" + +#: ../src/iop/blurs.c:86 +msgid "blur|lens|motion" +msgstr "rozostření|objektiv|pohyb" + +#: ../src/iop/blurs.c:92 +msgid "simulate physically-accurate lens and motion blurs" +msgstr "simulovat fyzikálně přesné rozmazání objektivu a pohybu" + +#: ../src/iop/borders.c:312 +msgid "framing" +msgstr "rámování" + +#: ../src/iop/borders.c:317 +msgid "borders|enlarge canvas|expand canvas" +msgstr "okraje|zvětšit plátno|rozšířit plátno" + +#: ../src/iop/borders.c:322 +msgid "add solid borders or margins around the picture" +msgstr "přidejte kolem obrázku pevné okraje nebo okraje" + +#: ../src/iop/borders.c:324 ../src/iop/borders.c:326 ../src/iop/lut3d.c:145 +msgid "linear or non-linear, RGB, display-referred" +msgstr "lineární nebo nelineární, RGB, s odkazem na displej" + +#: ../src/iop/borders.c:737 +msgid "15:10 postcard white" +msgstr "15:10 bílá pohlednice" + +#: ../src/iop/borders.c:742 +msgid "15:10 postcard black" +msgstr "15:10 černá pohlednice" + +#: ../src/iop/borders.c:948 +msgid "which dimension to use for the size calculation" +msgstr "jaký rozměr použít pro výpočet velikosti" + +#: ../src/iop/borders.c:954 +msgid "size of the border in percent of the chosen basis" +msgstr "velikost rámečku v procentech zvoleného základu" + +#: ../src/iop/borders.c:956 ../src/iop/clipping.c:2271 ../src/iop/crop.c:1208 +msgid "aspect" +msgstr "poměr" + +#: ../src/iop/borders.c:957 +msgid "" +"select the aspect ratio\n" +"(right click on slider below to type your own w:h)" +msgstr "" +"vyberte poměr stran\n" +"(klik pravým tlačítkem na posuvník níže a zadejte vlastní w:h)" + +#: ../src/iop/borders.c:961 +msgid "3:1" +msgstr "3:1" + +#: ../src/iop/borders.c:962 +msgid "95:33" +msgstr "95:33" + +#: ../src/iop/borders.c:963 +msgid "CinemaScope 2.39:1" +msgstr "CinemaScope 2.39:1" + +#: ../src/iop/borders.c:964 +msgid "2:1" +msgstr "2:1" + +#: ../src/iop/borders.c:965 +msgid "16:9" +msgstr "16:9" + +#: ../src/iop/borders.c:966 +msgid "5:3" +msgstr "5:3" + +#: ../src/iop/borders.c:967 +msgid "US Legal 8.5x14" +msgstr "US Legal 8.5x14" + +#: ../src/iop/borders.c:968 ../src/iop/clipping.c:2184 ../src/iop/crop.c:1112 +msgid "golden cut" +msgstr "zlatý řez" + +#: ../src/iop/borders.c:969 +msgid "16:10" +msgstr "16:10" + +#: ../src/iop/borders.c:970 +msgid "3:2 (4x6, 10x15cm)" +msgstr "3:2 (4x6, 10x15cm)" + +#: ../src/iop/borders.c:972 +msgid "DIN" +msgstr "DIN" + +#: ../src/iop/borders.c:973 +msgid "7:5" +msgstr "7:5" + +#: ../src/iop/borders.c:974 +msgid "4:3" +msgstr "4:3" + +#: ../src/iop/borders.c:975 +msgid "US Letter 8.5x11" +msgstr "US Letter 8.5x11" + +#: ../src/iop/borders.c:976 +msgid "14:11" +msgstr "14:11" + +#: ../src/iop/borders.c:977 +msgid "5:4 (8x10)" +msgstr "5:4 (8x10)" + +#: ../src/iop/borders.c:978 ../src/iop/clipping.c:2174 ../src/iop/crop.c:1102 +#: ../src/libs/filtering.c:307 ../src/libs/filters/ratio.c:126 +#: ../src/libs/histogram.c:118 +msgid "square" +msgstr "čtverec" + +#: ../src/iop/borders.c:979 +msgid "constant border" +msgstr "konstantní okraj" + +#: ../src/iop/borders.c:980 ../src/iop/borders.c:996 ../src/iop/borders.c:1007 +msgid "custom..." +msgstr "vlastní..." + +#: ../src/iop/borders.c:984 +msgid "" +"set the custom aspect ratio\n" +"(right click to enter number or w:h)" +msgstr "" +"nastavit vlastní poměr stran\n" +"(klik pravým tlačítkem zadejte číslo nebo w:h)" + +#: ../src/iop/borders.c:989 +msgid "aspect ratio orientation of the image with border" +msgstr "orientace poměru stran obrazu s okrajem" + +#: ../src/iop/borders.c:991 +msgid "horizontal position" +msgstr "horizontální pozice" + +#: ../src/iop/borders.c:992 +msgid "" +"select the horizontal position ratio relative to top\n" +"(right click on slider below to type your own x:w)" +msgstr "" +"vyberte poměr vodorovné polohy vzhledem k horní části\n" +"(klik pravým tlačítkem na posuvník níže a zadejte vlastní x:w)" + +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 +msgid "center" +msgstr "střed" + +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 +msgid "1/3" +msgstr "1/3" + +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 +msgid "3/8" +msgstr "3/8" + +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 +msgid "5/8" +msgstr "5/8" + +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 +msgid "2/3" +msgstr "2/3" + +#: ../src/iop/borders.c:1000 +msgid "custom horizontal position" +msgstr "vlastní horizontální poloha" + +#: ../src/iop/borders.c:1002 +msgid "vertical position" +msgstr "vertikální poloha" + +#: ../src/iop/borders.c:1003 +msgid "" +"select the vertical position ratio relative to left\n" +"(right click on slider below to type your own y:h)" +msgstr "" +"vyberte poměr vertikální polohy vzhledem k levé straně\n" +"(klik pravým tlačítkem na posuvník níže a zadejte své vlastní y:h)" + +#: ../src/iop/borders.c:1011 +msgid "custom vertical position" +msgstr "vlastní vertikální poloha" + +#: ../src/iop/borders.c:1017 +msgid "size of the frame line in percent of min border width" +msgstr "tloušťka čáry rámečku v procentech minimální šířky ohraničení" + +#: ../src/iop/borders.c:1023 +msgid "offset of the frame line beginning on picture side" +msgstr "posun čáry rámečku začínající na straně obrázku" + +#: ../src/iop/borders.c:1033 ../src/iop/borders.c:1044 +msgid "border color" +msgstr "barva okraje" + +#: ../src/iop/borders.c:1037 +msgid "select border color" +msgstr "vyberte barvu okraje" + +#: ../src/iop/borders.c:1043 +msgid "pick border color from image" +msgstr "vyberte barvu okraje z obrázku" + +#: ../src/iop/borders.c:1044 ../src/iop/borders.c:1061 +#: ../src/iop/colorzones.c:2662 ../src/iop/colorzones.c:2677 +#: ../src/iop/negadoctor.c:867 ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:972 ../src/iop/rgbcurve.c:1369 +#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1075 +#: ../src/iop/rgblevels.c:1083 ../src/iop/rgblevels.c:1091 +msgid "pickers" +msgstr "kapátka" + +#: ../src/iop/borders.c:1049 ../src/iop/borders.c:1061 +msgid "frame line color" +msgstr "barva čáry rámečku" + +#: ../src/iop/borders.c:1054 +msgid "select frame line color" +msgstr "vyberte barvu čáry rámečku" + +#: ../src/iop/borders.c:1060 +msgid "pick frame line color from image" +msgstr "vyberte barvu čáry rámečku z obrázku" + +#. make sure you put all your translatable strings into _() ! +#: ../src/iop/cacorrect.c:78 +msgid "raw chromatic aberrations" +msgstr "raw chromatická aberace" + +#: ../src/iop/cacorrect.c:83 +msgid "correct chromatic aberrations for Bayer sensors" +msgstr "správné chromatické aberace pro snímače Bayer" + +#: ../src/iop/cacorrect.c:85 ../src/iop/cacorrect.c:87 +#: ../src/iop/cacorrectrgb.c:171 ../src/iop/cacorrectrgb.c:173 +#: ../src/iop/demosaic.c:294 ../src/iop/highlights.c:180 +#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:76 +#: ../src/iop/hotpixels.c:78 ../src/iop/rawdenoise.c:145 +#: ../src/iop/rawdenoise.c:147 ../src/iop/rawprepare.c:175 +#: ../src/iop/rawprepare.c:177 ../src/iop/temperature.c:221 +#: ../src/iop/temperature.c:223 +msgid "linear, raw, scene-referred" +msgstr "lineární, raw, s odkazem na scénu" + +#: ../src/iop/cacorrect.c:86 ../src/iop/cacorrectrgb.c:172 +#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:138 +#: ../src/iop/rawdenoise.c:146 ../src/iop/rawprepare.c:176 +#: ../src/iop/temperature.c:222 +msgid "linear, raw" +msgstr "lineární, raw" + +#: ../src/iop/cacorrect.c:1424 +msgid "iteration runs, default is twice" +msgstr "iterace běží, výchozí hodnota je dvakrát" + +#: ../src/iop/cacorrect.c:1427 +msgid "activate colorshift correction for blue & red channels" +msgstr "aktivujte korekci barevného posunu pro modré a červené kanály" + +#: ../src/iop/cacorrect.c:1434 +msgid "" +"automatic chromatic aberration correction\n" +"only for Bayer raw files with 3 color channels" +msgstr "" +"automatická korekce chromatické aberace\n" +"pouze pro soubory Bayer raw se 3 barevnými kanály" + +#: ../src/iop/cacorrectrgb.c:164 ../src/iop/defringe.c:76 +msgid "chromatic aberrations" +msgstr "chromatické aberace" + +#: ../src/iop/cacorrectrgb.c:169 +msgid "correct chromatic aberrations" +msgstr "správné chromatické aberace" + +#: ../src/iop/cacorrectrgb.c:745 +msgid "" +"channel used as a reference to\n" +"correct the other channels.\n" +"use sharpest channel if some\n" +"channels are blurry.\n" +"try changing guide channel if you\n" +"have artifacts." +msgstr "" +"kanál použitý jako referenční pro\n" +"opravu ostatních kanálů.\n" +"použijte nejostřejší kanál, pokud jsou\n" +"některé kanály rozmazané.\n" +"zkuste změnit průvodce kanálem, pokud\n" +"obsahuje artefakty." + +#: ../src/iop/cacorrectrgb.c:752 +msgid "increase for stronger correction" +msgstr "zvýšit pro silnější korekci" + +#: ../src/iop/cacorrectrgb.c:754 +msgid "" +"balance between smoothing colors\n" +"and preserving them.\n" +"high values can lead to overshooting\n" +"and edge bleeding." +msgstr "" +"rovnováha mezi vyhlazujícími barvami\n" +"a jejich zachování.\n" +"vysoké hodnoty mohou vést k přepalům\n" +"a okrajům." + +#: ../src/iop/cacorrectrgb.c:759 +msgctxt "section" +msgid "advanced parameters" +msgstr "rozšířené parametry" + +#: ../src/iop/cacorrectrgb.c:761 +msgid "" +"correction mode to use.\n" +"can help with multiple\n" +"instances for very damaged\n" +"images.\n" +"darken only is particularly\n" +"efficient to correct blue\n" +"chromatic aberration." +msgstr "" +"korekční režim pro použití.\n" +"může pomoci s více\n" +"případy pro velmi poškozené\n" +"obrázky.\n" +"ztmavit je zvláště\n" +"efektivní pro korekci modré\n" +"chromatické aberace." + +#: ../src/iop/cacorrectrgb.c:769 +msgid "" +"runs an iterative approach\n" +"with several radii.\n" +"improves result on images\n" +"with very large chromatic\n" +"aberrations, but can smooth\n" +"colors too much on other\n" +"images." +msgstr "" +"používá iterativní přístup\n" +"s několika poloměry.\n" +"zlepšuje výsledky na snímcích\n" +"s velmi velkou chromatikou\n" +"aberací, ale může vyhlazovat\n" +"barvy příliš na jiných\n" +"snímcích." + +#: ../src/iop/censorize.c:77 +msgid "censorize" +msgstr "cenzurovat" + +#: ../src/iop/censorize.c:82 +msgid "censorize license plates and body parts for privacy" +msgstr "cenzurovat poznávací značky a části těla kvůli soukromí" + +#: ../src/iop/censorize.c:84 ../src/iop/colorin.c:134 +#: ../src/iop/filmicrgb.c:353 ../src/iop/graduatednd.c:147 +msgid "linear or non-linear, RGB, scene-referred" +msgstr "lineární nebo nelineární, RGB, s odkazem na scénu" + +#: ../src/iop/censorize.c:86 +msgid "special, RGB, scene-referred" +msgstr "speciální, RGB, s odkazem na scénu" + +#: ../src/iop/censorize.c:404 +msgid "radius_1" +msgstr "poloměr_1" + +#: ../src/iop/censorize.c:406 +msgid "pixelate" +msgstr "pixelovat" + +#: ../src/iop/censorize.c:408 +msgid "radius_2" +msgstr "poloměr_2" + +#: ../src/iop/censorize.c:410 +msgid "noise" +msgstr "šum" + +#: ../src/iop/censorize.c:412 +msgid "radius of gaussian blur before pixellation" +msgstr "poloměr gaussovského rozostření před pixelizací" + +#: ../src/iop/censorize.c:413 +msgid "radius of gaussian blur after pixellation" +msgstr "poloměr gaussovského rozostření po pixelizaci" + +#: ../src/iop/censorize.c:414 +msgid "radius of the intermediate pixellation" +msgstr "poloměr mezilehlé pixelizace" + +#: ../src/iop/censorize.c:415 +msgid "amount of noise to add at the end" +msgstr "množství šumu, které je třeba přidat na konci" + +#: ../src/iop/channelmixer.c:126 +msgid "channel mixer" +msgstr "kanálový směšovač" + +#: ../src/iop/channelmixer.c:131 +msgid "" +"this module is deprecated. please use the color calibration module instead." +msgstr "" +"tento modul je zastaralý. místo toho použijte modul pro kalibraci barev." + +#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:230 +msgid "" +"perform color space corrections\n" +"such as white balance, channels mixing\n" +"and conversions to monochrome emulating film" +msgstr "" +"provádět korekce barevného prostoru\n" +"jako je vyvážení bílé, míchání kanálů\n" +"a převody na monochromatický emulující film" + +#: ../src/iop/channelmixer.c:633 +msgid "destination" +msgstr "cíl" + +#: ../src/iop/channelmixer.c:640 +msgctxt "channelmixer" +msgid "gray" +msgstr "šedá" + +#: ../src/iop/channelmixer.c:646 +msgid "amount of red channel in the output channel" +msgstr "množství červeného kanálu ve výstupním kanálu" + +#: ../src/iop/channelmixer.c:652 +msgid "amount of green channel in the output channel" +msgstr "množství zeleného kanálu ve výstupním kanálu" + +#: ../src/iop/channelmixer.c:658 +msgid "amount of blue channel in the output channel" +msgstr "množství modrého kanálu ve výstupním kanálu" + +#: ../src/iop/channelmixer.c:674 ../src/iop/channelmixerrgb.c:588 +msgid "swap R and B" +msgstr "vyměnit R a B" + +#: ../src/iop/channelmixer.c:680 ../src/iop/channelmixerrgb.c:562 +msgid "swap G and B" +msgstr "vyměnit G a B" + +#: ../src/iop/channelmixer.c:686 +msgid "color contrast boost" +msgstr "zesílení barevného kontrastu" + +#: ../src/iop/channelmixer.c:692 +msgid "color details boost" +msgstr "zvýraznění barevných detailů" + +#: ../src/iop/channelmixer.c:698 +msgid "color artifacts boost" +msgstr "posílení barevných artefaktů" + +#: ../src/iop/channelmixer.c:704 +msgid "B/W luminance-based" +msgstr "Č/B luminance-based" + +#: ../src/iop/channelmixer.c:710 +msgid "B/W artifacts boost" +msgstr "Č/B posílení artefaktů" + +#: ../src/iop/channelmixer.c:716 +msgid "B/W smooth skin" +msgstr "Č/B smooth skin" + +#: ../src/iop/channelmixer.c:722 +msgid "B/W blue artifacts reduce" +msgstr "Č/B redukce modrých artefaktů" + +#: ../src/iop/channelmixer.c:729 +msgid "B/W Ilford Delta 100-400" +msgstr "Č/B Ilford Delta 100-400" + +#: ../src/iop/channelmixer.c:736 +msgid "B/W Ilford Delta 3200" +msgstr "Č/B Ilford Delta 3200" + +#: ../src/iop/channelmixer.c:743 +msgid "B/W Ilford FP4" +msgstr "Č/B Ilford FP4" + +#: ../src/iop/channelmixer.c:750 +msgid "B/W Ilford HP5" +msgstr "Č/B Ilford HP5" + +#: ../src/iop/channelmixer.c:757 +msgid "B/W Ilford SFX" +msgstr "Č/B Ilford SFX" + +#: ../src/iop/channelmixer.c:764 +msgid "B/W Kodak T-Max 100" +msgstr "Č/B Kodak T-Max 100" + +#: ../src/iop/channelmixer.c:771 +msgid "B/W Kodak T-max 400" +msgstr "Č/B Kodak T-max 400" + +#: ../src/iop/channelmixer.c:778 +msgid "B/W Kodak Tri-X 400" +msgstr "Č/B Kodak Tri-X 400" + +#: ../src/iop/channelmixerrgb.c:220 +msgid "color calibration" +msgstr "kalibrace barev" + +#: ../src/iop/channelmixerrgb.c:225 +msgid "channel mixer|white balance|monochrome" +msgstr "kanálový směšovač|vyvážení bílé|jednobarevné" + +#: ../src/iop/channelmixerrgb.c:235 +msgid "linear, RGB or XYZ" +msgstr "lineární, RGB nebo XYZ" + +#: ../src/iop/channelmixerrgb.c:460 +msgid "B&W: luminance-based" +msgstr "B&W: na bázi jasu" + +#: ../src/iop/channelmixerrgb.c:495 +msgid "B&W: ILFORD HP5+" +msgstr "B&W: ILFORD HP5+" + +#: ../src/iop/channelmixerrgb.c:504 +msgid "B&W: ILFORD DELTA 100" +msgstr "B&W: ILFORD DELTA 100" + +#: ../src/iop/channelmixerrgb.c:514 +msgid "B&W: ILFORD DELTA 400 - 3200" +msgstr "B&W: ILFORD DELTA 400 - 3200" + +#: ../src/iop/channelmixerrgb.c:523 +msgid "B&W: ILFORD FP4+" +msgstr "B&W: ILFORD FP4+" + +#: ../src/iop/channelmixerrgb.c:532 +msgid "B&W: Fuji Acros 100" +msgstr "B&W: Fuji Acros 100" + +#: ../src/iop/channelmixerrgb.c:549 +msgid "basic channel mixer" +msgstr "základní kanálový směšovač" + +#: ../src/iop/channelmixerrgb.c:575 +msgid "swap G and R" +msgstr "přehodit G a R" + +#: ../src/iop/channelmixerrgb.c:1926 +msgid "(daylight)" +msgstr "(denní světlo)" + +#: ../src/iop/channelmixerrgb.c:1928 +msgid "(black body)" +msgstr "(černé tělo)" + +#: ../src/iop/channelmixerrgb.c:1930 +msgid "(invalid)" +msgstr "(neplatný)" + +#: ../src/iop/channelmixerrgb.c:1934 ../src/iop/channelmixerrgb.c:1992 +msgid "very good" +msgstr "velmi dobrý" + +#: ../src/iop/channelmixerrgb.c:1936 ../src/iop/channelmixerrgb.c:1994 +msgid "good" +msgstr "dobrý" + +#: ../src/iop/channelmixerrgb.c:1938 ../src/iop/channelmixerrgb.c:1996 +msgid "passable" +msgstr "použitelný" + +#: ../src/iop/channelmixerrgb.c:1940 ../src/iop/channelmixerrgb.c:1998 +msgid "bad" +msgstr "špatný" + +#: ../src/iop/channelmixerrgb.c:1947 +#, c-format +msgid "" +"\n" +"Profile quality report: %s\n" +"input ΔE: \tavg. %.2f ; \tmax. %.2f\n" +"WB ΔE: \tavg. %.2f; \tmax. %.2f\n" +"output ΔE: \tavg. %.2f; \tmax. %.2f\n" +"\n" +"Profile data\n" +"illuminant: \t%.0f K \t%s\n" +"matrix in adaptation space:\n" +"%+.4f \t%+.4f \t%+.4f\n" +"%+.4f \t%+.4f \t%+.4f\n" +"%+.4f \t%+.4f \t%+.4f\n" +"\n" +"Normalization values\n" +"exposure compensation: \t%+.2f EV\n" +"black offset: \t%+.4f" +msgstr "" +"\n" +"Zpráva o kvalitě profilu: %s\n" +"vstup ΔE: \tprům. %.2f; \tmax. %.2f\n" +"WB ΔE: \tprům. %.2f; \tmax. %.2f\n" +"výstup ΔE: \tprům. %.2f; \tmax. %.2f\n" +"\n" +"Údaje o profilu\n" +"osvětlovací prostředek: \t%.0f K \t%s\n" +"matice v adaptačním prostoru:\n" +"%+.4f \t%+.4f \t%+.4f\n" +"%+.4f \t%+.4f \t%+.4f\n" +"%+.4f \t%+.4f \t%+.4f\n" +"\n" +"Hodnoty normalizace\n" +"kompenzace expozice: \t%+.2f EV\n" +"černý offset: \t%+.4f" + +#: ../src/iop/channelmixerrgb.c:2003 +#, c-format +msgid "" +"\n" +"Profile quality report: %s\n" +"output ΔE: \tavg. %.2f; \tmax. %.2f\n" +"\n" +"Normalization values\n" +"exposure compensation: \t%+.2f EV\n" +"black offset: \t%+.4f" +msgstr "" +"\n" +"Zpráva o kvalitě profilu: %s\n" +"výstup ΔE: \tprům. %.2f; \tmax. %.2f\n" +"\n" +"Hodnoty normalizace\n" +"kompenzace expozice: \t%+.2f EV\n" +"černý offset: \t%+.4f" + +#: ../src/iop/channelmixerrgb.c:2054 +msgid "double CAT applied" +msgstr "byl použit dvojitý CAT" + +#: ../src/iop/channelmixerrgb.c:2055 +msgid "" +"you have 2 instances or more of color calibration,\n" +"all providing chromatic adaptation.\n" +"this can lead to inconsistencies unless you\n" +"use them with masks or know what you are doing." +msgstr "" +"máte 2 nebo více případů kalibrace barev,\n" +"všechny poskytují chromatickou úpravu.\n" +"to může vést k nesrovnalostem, pokud je\n" +"nepoužíváte s maskami, nebo víte co děláte." + +#: ../src/iop/channelmixerrgb.c:2071 +msgid "white balance applied twice" +msgstr "vyvážení bílé použito dvakrát" + +#: ../src/iop/channelmixerrgb.c:2072 +msgid "" +"the color calibration module is enabled and already provides\n" +"chromatic adaptation.\n" +"set the white balance here to camera reference (D65)\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"modul pro kalibraci barev je povolen a již poskytuje\n" +"chromatickou adaptaci.\n" +"zde nastavte vyvážení bílé na referenci fotoaparátu (D65)\n" +"nebo deaktivujte chromatickou adaptaci v kalibraci barev." + +#: ../src/iop/channelmixerrgb.c:2080 +msgid "white balance module error" +msgstr "chyba modulu vyvážení bílé" + +#: ../src/iop/channelmixerrgb.c:2081 +msgid "" +"the white balance module is not using the camera\n" +"reference illuminant, which will cause issues here\n" +"with chromatic adaptation. either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" +"modul vyvážení bílé nepoužívá referenční osvětlení\n" +"fotoaparátu, což zde způsobí problémy\n" +"s chromatickou úpravou. buď jej nastavte na odkaz\n" +"nebo zde deaktivujte chromatickou adaptaci." + +#: ../src/iop/channelmixerrgb.c:2095 ../src/iop/channelmixerrgb.c:2104 +msgid "white balance missing" +msgstr "chybí vyvážení bílé" + +#: ../src/iop/channelmixerrgb.c:2096 +msgid "" +"this module is not providing a valid reference illuminant\n" +"causing chromatic adaptation issues in color calibration.\n" +"enable this module and either set it to reference\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"tento modul neposkytuje platné referenční osvětlení\n" +"způsobuje problémy s chromatickou adaptací při kalibraci barev.\n" +"povolte tento modul a buď jej nastavte jako odkaz\n" +"nebo deaktivujte chromatické přizpůsobení v kalibraci barev." + +#: ../src/iop/channelmixerrgb.c:2105 +msgid "" +"the white balance module is not providing a valid reference\n" +"illuminant causing issues with chromatic adaptation here.\n" +"enable white balance and either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" +"modul vyvážení bílé neposkytuje platnou referenci\n" +"iluminant, který zde způsobuje problémy s chromatickou adaptací.\n" +"povolit vyvážení bílé a buď jej nastavit jako referenční\n" +"nebo zde deaktivujte chromatickou adaptaci." + +#: ../src/iop/channelmixerrgb.c:2196 +msgid "auto-detection of white balance completed" +msgstr "automatická detekce vyvážení bílé dokončena" + +#: ../src/iop/channelmixerrgb.c:2346 +msgid "channelmixerrgb works only on RGB input" +msgstr "kanálový směšovač rgb funguje pouze na vstupu RGB" + +#: ../src/iop/channelmixerrgb.c:3692 +#, c-format +msgid "CCT: %.0f K (daylight)" +msgstr "CCT: %.0f K (denní světlo)" + +#: ../src/iop/channelmixerrgb.c:3695 +msgid "" +"approximated correlated color temperature.\n" +"this illuminant can be accurately modeled by a daylight spectrum,\n" +"so its temperature is relevant and meaningful with a D illuminant." +msgstr "" +"přibližná korelovaná barevná teplota.\n" +"tento osvětlovací prostředek lze přesně modelovat spektrem denního světla,\n" +"takže jeho teplota je relevantní a smysluplná s D iluminantem." + +#: ../src/iop/channelmixerrgb.c:3701 +#, c-format +msgid "CCT: %.0f K (black body)" +msgstr "CCT: %.0f K (černé tělo)" + +#: ../src/iop/channelmixerrgb.c:3704 +msgid "" +"approximated correlated color temperature.\n" +"this illuminant can be accurately modeled by a black body spectrum,\n" +"so its temperature is relevant and meaningful with a Planckian illuminant." +msgstr "" +"přibližná korelovaná barevná teplota.\n" +"tento osvětlovací prostředek lze přesně modelovat spektrem černého tělesa,\n" +"takže jeho teplota je relevantní a smysluplná s Planckovským osvětlovačem." + +#: ../src/iop/channelmixerrgb.c:3710 +#, c-format +msgid "CCT: %.0f K (invalid)" +msgstr "CCT: %.0f K (neplatný)" + +#: ../src/iop/channelmixerrgb.c:3713 +msgid "" +"approximated correlated color temperature.\n" +"this illuminant cannot be accurately modeled by a daylight or black body " +"spectrum,\n" +"so its temperature is not relevant and meaningful and you need to use a " +"custom illuminant." +msgstr "" +"přibližná korelovaná barevná teplota.\n" +"tento osvětlovací prostředek nelze přesně modelovat denním světlem nebo " +"spektrem černého tělesa,\n" +"takže jeho teplota není relevantní a smysluplná a musíte použít vlastní " +"osvětlení." + +#: ../src/iop/channelmixerrgb.c:3722 +#, c-format +msgid "CCT: undefined" +msgstr "CCT: nedefinovaný" + +#: ../src/iop/channelmixerrgb.c:3725 +msgid "" +"the approximated correlated color temperature\n" +"cannot be computed at all so you need to use a custom illuminant." +msgstr "" +"přibližnou korelovanou barevnou teplotu\n" +"nelze vůbec vypočítat, takže musíte použít vlastní osvětlení." + +#: ../src/iop/channelmixerrgb.c:4038 +msgid "white balance successfully extracted from raw image" +msgstr "vyvážení bílé úspěšně extrahováno z raw obrázku" + +#. We need to recompute only the full preview +#: ../src/iop/channelmixerrgb.c:4044 +msgid "auto-detection of white balance started…" +msgstr "byla spuštěna automatická detekce vyvážení bílé…" + +#: ../src/iop/channelmixerrgb.c:4149 +msgid "" +"color calibration: the sum of the gray channel parameters is zero, " +"normalization will be disabled." +msgstr "" +"kalibrace barev: součet parametrů šedého kanálu je nula, normalizace bude " +"zakázána." + +#. Write report in GUI +#: ../src/iop/channelmixerrgb.c:4194 +#, c-format +msgid "" +"L: \t%.1f %%\n" +"h: \t%.1f °\n" +"c: \t%.1f" +msgstr "" +"L: \t%.1f %%\n" +"h: \t%.1f °\n" +"c: \t%.1f" + +#: ../src/iop/channelmixerrgb.c:4462 ../src/iop/clipping.c:2140 +#: ../src/iop/colorbalancergb.c:1944 ../src/iop/filmicrgb.c:4483 +#: ../src/iop/negadoctor.c:848 ../src/iop/toneequal.c:3372 +#: ../src/libs/image.c:490 ../src/views/lighttable.c:1258 +msgid "page" +msgstr "strana" + +#. Page CAT +#: ../src/iop/channelmixerrgb.c:4465 +msgid "CAT" +msgstr "CAT" + +#: ../src/iop/channelmixerrgb.c:4466 +msgid "chromatic adaptation transform" +msgstr "chromatická adaptační transformace" + +#: ../src/iop/channelmixerrgb.c:4468 +msgid "adaptation" +msgstr "adaptace" + +#: ../src/iop/channelmixerrgb.c:4471 +msgid "" +"choose the method to adapt the illuminant\n" +"and the colorspace in which the module works: \n" +"• Linear Bradford (1985) is consistent with ICC v4 toolchain.\n" +"• CAT16 (2016) is more robust and accurate.\n" +"• Non-linear Bradford (1985) is the original Bradford,\n" +"it can produce better results than the linear version, but is unreliable.\n" +"• XYZ is a simple scaling in XYZ space. It is not recommended in general.\n" +"• none disables any adaptation and uses pipeline working RGB." +msgstr "" +"zvolte metodu přizpůsobení světla\n" +"a barevný prostor, ve kterém modul pracuje:\n" +"• Linear Bradford (1985) je konzistentní s ICC v4 toolchain.\n" +"• CAT16 (2016) je robustnější a přesnější.\n" +"• Nelineární Bradford (1985) je původní Bradford,\n" +"může poskytovat lepší výsledky než lineární verze, ale je nespolehlivá.\n" +"• XYZ je jednoduché škálování v prostoru XYZ. Obecně se to nedoporučuje.\n" +"• none deaktivuje jakoukoli adaptaci a používá průběžné pracovní RGB." + +#: ../src/iop/channelmixerrgb.c:4491 +msgid "" +"this is the color of the scene illuminant before chromatic adaptation\n" +"this color will be turned into pure white by the adaptation." +msgstr "" +"toto je barva osvětlení scény před chromatickou adaptací\n" +"tato barva se adaptací změní na čistě bílou." + +#: ../src/iop/channelmixerrgb.c:4499 +msgid "picker" +msgstr "kapátko" + +#: ../src/iop/channelmixerrgb.c:4501 ../src/iop/temperature.c:2015 +msgid "set white balance to detected from area" +msgstr "nastavte vyvážení bílé na detekci z oblasti" + +#: ../src/iop/channelmixerrgb.c:4505 ../src/iop/negadoctor.c:972 +msgid "illuminant" +msgstr "zdroj světla" + +#: ../src/iop/channelmixerrgb.c:4511 ../src/iop/temperature.c:2072 +msgid "temperature" +msgstr "teplota" + +#: ../src/iop/channelmixerrgb.c:4542 +msgid "area color mapping" +msgstr "barevné mapování oblasti" + +#: ../src/iop/channelmixerrgb.c:4548 +msgid "" +"define a target chromaticity (hue and chroma) for a particular region of the " +"image (the control sample), which you then match against the same target " +"chromaticity in other images. the control sample can either be a critical " +"part of your subject or a non-moving and consistently-lit surface over your " +"series of images." +msgstr "" +"definujte cílovou chromatičnost (odstín a chromatičnost) pro určitou oblast " +"obrazu (kontrolní vzorek), kterou pak porovnáte se stejnou cílovou " +"chromatičností v jiných obrázcích. kontrolní vzorek může být buď kritickou " +"částí objektu, nebo nehybnou a důsledně osvětlenou plochou nad sérií obrázků." + +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/channelmixerrgb.c:4570 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/channelmixerrgb.c:4641 +msgid "mapping" +msgstr "mapování" + +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/exposure.c:1206 +msgid "area mode" +msgstr "oblastní mód" + +#: ../src/iop/channelmixerrgb.c:4556 +msgid "" +"\"correction\" automatically adjust the illuminant\n" +"such that the input color is mapped to the target.\n" +"\"measure\" simply shows how an input color is mapped by the CAT\n" +"and can be used to sample a target." +msgstr "" +"„korekce“ automaticky upraví zdroj světla\n" +"tak, aby vstupní barva byla mapována na cíl.\n" +"„měření“ jednoduše ukazuje, jak CAT mapuje vstupní barvu\n" +"a lze jej použít k vzorkování cíle." + +#: ../src/iop/channelmixerrgb.c:4561 ../src/iop/exposure.c:1212 +msgid "correction" +msgstr "korekce" + +#: ../src/iop/channelmixerrgb.c:4562 ../src/iop/exposure.c:1213 +msgid "measure" +msgstr "měření" + +#: ../src/iop/channelmixerrgb.c:4568 +msgid "take channel mixing into account" +msgstr "brát v úvahu míchání kanálů" + +#: ../src/iop/channelmixerrgb.c:4575 +msgid "" +"compute the target by taking the channel mixing into account.\n" +"if disabled, only the CAT is considered." +msgstr "" +"vypočítat cíl s ohledem na smíchání kanálu.\n" +"pokud je deaktivován, zvažuje se pouze CAT." + +#: ../src/iop/channelmixerrgb.c:4587 ../src/iop/exposure.c:1220 +msgctxt "section" +msgid "input" +msgstr "vstup" + +#: ../src/iop/channelmixerrgb.c:4594 ../src/iop/exposure.c:1228 +msgid "the input color that should be mapped to the target" +msgstr "vstupní barva, která by měla být mapována na cíl" + +#: ../src/iop/channelmixerrgb.c:4600 +msgid "" +"L: \tN/A\n" +"h: \tN/A\n" +"c: \tN/A" +msgstr "" +"L: \tN/A\n" +"h: \tN/A\n" +"c: \tN/A" + +#: ../src/iop/channelmixerrgb.c:4603 ../src/iop/exposure.c:1236 +msgid "these LCh coordinates are computed from CIE Lab 1976 coordinates" +msgstr "tyto souřadnice LCh jsou vypočítány ze souřadnic CIE Lab 1976" + +#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/exposure.c:1243 +msgctxt "section" +msgid "target" +msgstr "cíl" + +#: ../src/iop/channelmixerrgb.c:4618 +msgid "the desired target color after mapping" +msgstr "požadovaná cílová barva po mapování" + +#: ../src/iop/channelmixerrgb.c:4657 +msgid "input R" +msgstr "vstupní R" + +#: ../src/iop/channelmixerrgb.c:4662 +msgid "input G" +msgstr "vstupní G" + +#: ../src/iop/channelmixerrgb.c:4667 +msgid "input B" +msgstr "vstupní B" + +#: ../src/iop/channelmixerrgb.c:4677 +msgid "output R" +msgstr "výstupní R" + +#: ../src/iop/channelmixerrgb.c:4678 +msgid "output G" +msgstr "výstupní G" + +#: ../src/iop/channelmixerrgb.c:4679 +msgid "output B" +msgstr "výstupní B" + +#: ../src/iop/channelmixerrgb.c:4681 +msgid "colorfulness" +msgstr "barevnost" + +#: ../src/iop/channelmixerrgb.c:4681 +msgid "output colorfulness" +msgstr "výstupní barevnost" + +#: ../src/iop/channelmixerrgb.c:4685 +msgid "output brightness" +msgstr "výstupní jas" + +#: ../src/iop/channelmixerrgb.c:4688 +msgid "output gray" +msgstr "výstupní šedá" + +#: ../src/iop/channelmixerrgb.c:4703 +msgid "calibrate with a color checker" +msgstr "kalibrovat pomocí kapátka" + +#: ../src/iop/channelmixerrgb.c:4708 +msgid "use a color checker target to autoset CAT and channels" +msgstr "použijte cíl výběru barvy k automatickému nastavení CAT a kanálů" + +#: ../src/iop/channelmixerrgb.c:4715 ../src/iop/channelmixerrgb.c:4728 +#: ../src/iop/channelmixerrgb.c:4746 ../src/iop/channelmixerrgb.c:4764 +#: ../src/iop/channelmixerrgb.c:4773 ../src/iop/channelmixerrgb.c:4781 +msgid "calibrate" +msgstr "kalibrovat" + +#: ../src/iop/channelmixerrgb.c:4715 +msgid "chart" +msgstr "graf" + +#: ../src/iop/channelmixerrgb.c:4716 +msgid "choose the vendor and the type of your chart" +msgstr "vyberte dodavatele a typ grafu" + +#: ../src/iop/channelmixerrgb.c:4718 +msgid "Xrite ColorChecker 24 pre-2014" +msgstr "Xrite ColorChecker 24 před rokem 2014" + +#: ../src/iop/channelmixerrgb.c:4719 +msgid "Xrite ColorChecker 24 post-2014" +msgstr "Xrite ColorChecker 24 po roce 2014" + +#: ../src/iop/channelmixerrgb.c:4720 +msgid "Datacolor SpyderCheckr 24 pre-2018" +msgstr "Datacolor SpyderCheckr 24 pre-2018" + +#: ../src/iop/channelmixerrgb.c:4721 +msgid "Datacolor SpyderCheckr 24 post-2018" +msgstr "Datacolor SpyderCheckr 24 post-2018" + +#: ../src/iop/channelmixerrgb.c:4722 +msgid "Datacolor SpyderCheckr 48 pre-2018" +msgstr "Datacolor SpyderCheckr 48 pre-2018" + +#: ../src/iop/channelmixerrgb.c:4723 +msgid "Datacolor SpyderCheckr 48 post-2018" +msgstr "Datacolor SpyderCheckr 48 post-2018" + +#: ../src/iop/channelmixerrgb.c:4724 +msgid "Datacolor SpyderCheckr Photo" +msgstr "Datacolor SpyderCheckr Photo" + +#: ../src/iop/channelmixerrgb.c:4728 +msgid "optimize for" +msgstr "optimalizovat pro" + +#: ../src/iop/channelmixerrgb.c:4729 +msgid "" +"choose the colors that will be optimized with higher priority.\n" +"neutral colors gives the lowest average delta E but a high maximum delta E\n" +"saturated colors gives the lowest maximum delta E but a high average delta " +"E\n" +"none is a trade-off between both\n" +"the others are special behaviors to protect some hues" +msgstr "" +"vyberte barvy, které budou optimalizovány s vyšší prioritou.\n" +"neutrální barvy dávají nejnižší průměrnou delta E, ale vysokou maximální " +"delta E\n" +"syté barvy dávají nejnižší maximální delta E, ale vysoký průměr delta E\n" +"žádný je kompromisem mezi oběma\n" +"ostatní jsou speciální chování k ochraně některých odstínů" + +#: ../src/iop/channelmixerrgb.c:4736 +msgid "neutral colors" +msgstr "neutrální barvy" + +#: ../src/iop/channelmixerrgb.c:4738 +msgid "skin and soil colors" +msgstr "barvy kůže a půdy" + +#: ../src/iop/channelmixerrgb.c:4739 +msgid "foliage colors" +msgstr "barvy listů" + +#: ../src/iop/channelmixerrgb.c:4740 +msgid "sky and water colors" +msgstr "barvy oblohy a vody" + +#: ../src/iop/channelmixerrgb.c:4741 +msgid "average delta E" +msgstr "průměrná délta E" + +#: ../src/iop/channelmixerrgb.c:4742 +msgid "maximum delta E" +msgstr "maximální délta E" + +#: ../src/iop/channelmixerrgb.c:4746 +msgid "patch scale" +msgstr "škálování záplaty" + +#: ../src/iop/channelmixerrgb.c:4749 +msgid "" +"reduce the radius of the patches to select the more or less central part.\n" +"useful when the perspective correction is sloppy or\n" +"the patches frame cast a shadows on the edges of the patch." +msgstr "" +"zmenšete poloměr záplat, abyste vybrali víceméně centrální část.\n" +"užitečné, když je korekce perspektivy nedbalá nebo\n" +"rám záplat vrhá stíny na okraje záplaty." + +#: ../src/iop/channelmixerrgb.c:4759 +msgid "the delta E is using the CIE 2000 formula" +msgstr "delta E používá vzorec CIE 2000" + +#: ../src/iop/channelmixerrgb.c:4764 +msgid "accept" +msgstr "akceptovat" + +#: ../src/iop/channelmixerrgb.c:4770 +msgid "accept the computed profile and set it in the module" +msgstr "přijmout vypočítaný profil a nastavit jej v modulu" + +#: ../src/iop/channelmixerrgb.c:4773 +msgid "recompute" +msgstr "přepočítat" + +#: ../src/iop/channelmixerrgb.c:4777 +msgid "recompute the profile" +msgstr "přepočítat profil" + +#: ../src/iop/channelmixerrgb.c:4781 +msgid "validate" +msgstr "ověřit" + +#: ../src/iop/channelmixerrgb.c:4785 +msgid "check the output delta E" +msgstr "zkontrolovat výstupní délta E" + +#: ../src/iop/choleski.h:290 ../src/iop/choleski.h:390 +msgid "" +"Choleski decomposition failed to allocate memory, check your RAM settings" +msgstr "" +"Cholesky rozkladu se nepodařilo alokovat paměť, zkontrolujte nastavení RAM" + +#: ../src/iop/clahe.c:74 +msgid "" +"this module is deprecated. better use new local contrast module instead." +msgstr "tento modul je zastaralý. raději použijte nový modul lokální kontrast." + +#: ../src/iop/clahe.c:339 ../src/iop/sharpen.c:440 +msgid "amount" +msgstr "množství" + +#: ../src/iop/clahe.c:348 +msgid "size of features to preserve" +msgstr "velikost prvků k zachování" + +#: ../src/iop/clahe.c:349 ../src/iop/nlmeans.c:467 +msgid "strength of the effect" +msgstr "síla účinku" + +#: ../src/iop/clipping.c:347 +msgid "" +"this module is deprecated. please use the crop, orientation and/or rotate " +"and perspective modules instead." +msgstr "" +"tento modul je zastaralý. místo toho použijte moduly oříznutí, orientace a/" +"nebo otočení a perspektivy." + +#: ../src/iop/clipping.c:352 +msgid "crop and rotate" +msgstr "oříznout a otočit" + +#: ../src/iop/clipping.c:357 +msgid "reframe|perspective|keystone|distortion" +msgstr "přerámovat|perspektiva|keystone|zkreslit" + +#: ../src/iop/clipping.c:362 +msgid "change the framing and correct the perspective" +msgstr "změnit orámování a opravit perspektivu" + +#: ../src/iop/clipping.c:1447 ../src/iop/clipping.c:2173 ../src/iop/crop.c:501 +#: ../src/iop/crop.c:1101 +msgid "original image" +msgstr "původní obrázek" + +#: ../src/iop/clipping.c:1751 ../src/iop/crop.c:808 +msgid "invalid ratio format. it should be \"number:number\"" +msgstr "neplatný formát poměru. mělo by to být \"číslo:číslo\"" + +#: ../src/iop/clipping.c:1767 ../src/iop/crop.c:824 +msgid "invalid ratio format. it should be a positive number" +msgstr "neplatný formát poměru. mělo by to být kladné číslo" + +#: ../src/iop/clipping.c:1956 ../src/iop/clipping.c:2164 +msgid "full" +msgstr "plný" + +#: ../src/iop/clipping.c:1957 +msgid "old system" +msgstr "starý systém" + +#: ../src/iop/clipping.c:1958 +msgid "correction applied" +msgstr "korekce aplikovány" + +#: ../src/iop/clipping.c:2142 +msgid "main" +msgstr "hlavní" + +#: ../src/iop/clipping.c:2151 +msgid "mirror image horizontally and/or vertically" +msgstr "zrcadlový obraz vodorovně a/nebo svisle" + +#: ../src/iop/clipping.c:2154 +msgid "angle" +msgstr "úhel" + +#: ../src/iop/clipping.c:2157 +msgid "right-click and drag a line on the image to drag a straight line" +msgstr "" +"klik pravým tlačítkem a přetažením čáry na obrázku přetáhněte rovnou čáru" + +#: ../src/iop/clipping.c:2160 +msgid "keystone" +msgstr "základní kámen" + +#: ../src/iop/clipping.c:2165 +msgid "set perspective correction for your image" +msgstr "nastavte korekci perspektivy pro váš obrázek" + +#: ../src/iop/clipping.c:2172 ../src/iop/crop.c:1100 +msgid "freehand" +msgstr "volná ruka" + +#: ../src/iop/clipping.c:2175 ../src/iop/crop.c:1103 +msgid "10:8 in print" +msgstr "10:8 v tisku" + +#: ../src/iop/clipping.c:2176 ../src/iop/crop.c:1104 +msgid "5:4, 4x5, 8x10" +msgstr "5:4, 4x5, 8x10" + +#: ../src/iop/clipping.c:2177 ../src/iop/crop.c:1105 +msgid "11x14" +msgstr "11x14" + +#: ../src/iop/clipping.c:2178 ../src/iop/crop.c:1106 +msgid "8.5x11, letter" +msgstr "8.5x11, letter" + +#: ../src/iop/clipping.c:2179 ../src/iop/crop.c:1107 +msgid "4:3, VGA, TV" +msgstr "4:3, VGA, TV" + +#: ../src/iop/clipping.c:2180 ../src/iop/crop.c:1108 +msgid "5x7" +msgstr "5x7" + +#: ../src/iop/clipping.c:2181 ../src/iop/crop.c:1109 +msgid "ISO 216, DIN 476, A4" +msgstr "ISO 216, DIN 476, A4" + +#: ../src/iop/clipping.c:2182 ../src/iop/crop.c:1110 +msgid "3:2, 4x6, 35mm" +msgstr "3:2, 4x6, 35mm" + +#: ../src/iop/clipping.c:2183 ../src/iop/crop.c:1111 +msgid "16:10, 8x5" +msgstr "16:10, 8x5" + +#: ../src/iop/clipping.c:2185 ../src/iop/crop.c:1113 +msgid "16:9, HDTV" +msgstr "16:9, HDTV" + +#: ../src/iop/clipping.c:2186 ../src/iop/crop.c:1114 +msgid "widescreen" +msgstr "širokoúhlý" + +#: ../src/iop/clipping.c:2187 ../src/iop/crop.c:1115 +msgid "2:1, univisium" +msgstr "2:1, univisium" + +#: ../src/iop/clipping.c:2188 ../src/iop/crop.c:1116 +msgid "cinemascope" +msgstr "cinemascope" + +#: ../src/iop/clipping.c:2189 ../src/iop/crop.c:1117 +msgid "21:9" +msgstr "21:9" + +#: ../src/iop/clipping.c:2190 ../src/iop/crop.c:1118 +msgid "anamorphic" +msgstr "anamorfní" + +#: ../src/iop/clipping.c:2191 ../src/iop/crop.c:1119 +msgid "3:1, panorama" +msgstr "3:1, panoramatický" + +#: ../src/iop/clipping.c:2223 ../src/iop/clipping.c:2235 ../src/iop/crop.c:1155 +#: ../src/iop/crop.c:1171 +#, c-format +msgid "invalid ratio format for `%s'. it should be \"number:number\"" +msgstr "neplatný formát poměru pro „%s“. mělo by to být \"číslo:číslo\"" + +#: ../src/iop/clipping.c:2282 ../src/iop/crop.c:1222 +msgid "" +"set the aspect ratio\n" +"the list is sorted: from most square to least square\n" +"to enter custom aspect ratio open the combobox and type ratio in x:y or " +"decimal format" +msgstr "" +"nastavit poměr stran\n" +"seznam je seřazen: od nejvíce čtveratých po nejméně\n" +"pro zadání vlastního poměru stran otevřete rozbalovací seznam a zadejte " +"poměr ve formátu x:y nebo v desítkové soustavě" + +#: ../src/iop/clipping.c:2289 ../src/iop/crop.c:1236 +msgid "margins" +msgstr "okraje" + +#: ../src/iop/clipping.c:2294 ../src/iop/crop.c:1246 +msgid "the left margin cannot overlap with the right margin" +msgstr "levý okraj se nemůže překrývat s pravým okrajem" + +#: ../src/iop/clipping.c:2301 ../src/iop/crop.c:1254 +msgid "the right margin cannot overlap with the left margin" +msgstr "pravý okraj se nemůže překrývat s levým okrajem" + +#: ../src/iop/clipping.c:2306 ../src/iop/crop.c:1260 +msgid "the top margin cannot overlap with the bottom margin" +msgstr "horní okraj se nesmí překrývat se spodním okrajem" + +#: ../src/iop/clipping.c:2313 ../src/iop/crop.c:1268 +msgid "the bottom margin cannot overlap with the top margin" +msgstr "spodní okraj se nemůže překrývat s horním okrajem" + +#: ../src/iop/clipping.c:3059 +msgid "commit: double-click, straighten: right-drag" +msgstr "" +"potvrdit: dvojklik, narovnat: přetáhněte pravým tlačítkem" + +#: ../src/iop/clipping.c:3063 +msgid "" +"resize: drag, keep aspect ratio: shift+drag\n" +"straighten: right-drag" +msgstr "" +"změna velikosti: tažení, zachování poměru stran: Shift+tažení\n" +"narovnat: táhněte doprava" + +#: ../src/iop/clipping.c:3104 +msgid "move control point: drag" +msgstr "přesunout ovládací bod: přetáhnout" + +#: ../src/iop/clipping.c:3109 +msgid "move line: drag, toggle symmetry: click ꝏ" +msgstr "přesunout čáru: přetáhnout, přepnout symetrii: klik ꝏ" + +#: ../src/iop/clipping.c:3114 +msgid "" +"apply: click ok, toggle symmetry: click ꝏ\n" +"move line/control point: drag" +msgstr "" +"použít: klikněte na ok, přepněte symetrii: klikněte " +"na ꝏ\n" +"přesunout čáru/kontrolní bod: tažení" + +#: ../src/iop/clipping.c:3121 +msgid "" +"move: drag, move vertically: shift+drag, move horizontally: ctrl+drag\n" +"straighten: right-drag, commit: double-click" +msgstr "" +"pohyb: tažení, svislý pohyb: shift+tažení, vodorovný pohyb: ctrl+tažení\n" +"narovnat: přetáhněte pravým tlačítkem, potvrdit: dvojklik" + +#: ../src/iop/clipping.c:3380 ../src/iop/crop.c:1770 +#, c-format +msgid "[%s on borders] crop" +msgstr "[%s na okrajích] oříznout" + +#: ../src/iop/clipping.c:3382 ../src/iop/crop.c:1772 +#, c-format +msgid "[%s on borders] crop keeping ratio" +msgstr "[%s na okrajích] oříznout - zachovat poměr" + +#: ../src/iop/colisa.c:79 +msgid "this module is deprecated. please use colorbalance RGB module instead." +msgstr "" +"tento modul je zastaralý. místo toho použijte modul RGB pro vyvážení barev." + +#: ../src/iop/colisa.c:84 +msgid "contrast brightness saturation" +msgstr "kontrast jas sytost" + +#: ../src/iop/colisa.c:89 +msgid "adjust the look of the image" +msgstr "upravit vzhled obrázku" + +#: ../src/iop/colisa.c:304 +msgid "color saturation adjustment" +msgstr "nastavení sytosti barev" + +#: ../src/iop/colorbalance.c:152 +msgid "color balance" +msgstr "barevné vyvážení" + +#: ../src/iop/colorbalance.c:157 +msgid "lift gamma gain|cdl|color grading|contrast|saturation|hue" +msgstr "zvýšit gama zisk|cdl|barevné korekce|kontrast|sytost|odstín" + +#: ../src/iop/colorbalance.c:162 +msgid "shift colors selectively by luminance range" +msgstr "posouvat barvy selektivně podle rozsahu jasu" + +#: ../src/iop/colorbalance.c:166 +msgid "non-linear, Lab, scene-referred" +msgstr "nelineární, Lab, s odkazem na scénu" + +#. these blobs were exported as dtstyle and copied from there: +#: ../src/iop/colorbalance.c:304 +msgid "split-toning teal-orange (2nd instance)" +msgstr "rozdělené tónování šedo-oranžová (2. instance)" + +#: ../src/iop/colorbalance.c:307 +msgid "split-toning teal-orange (1st instance)" +msgstr "dělené tónování šedo-oranžová (1. instance)" + +#: ../src/iop/colorbalance.c:311 +msgid "generic film" +msgstr "obecný film" + +#: ../src/iop/colorbalance.c:315 +msgid "similar to Kodak Portra" +msgstr "podobné na Kodak Portra" + +#: ../src/iop/colorbalance.c:319 +msgid "similar to Kodak Ektar" +msgstr "podobné na Kodak Ektar" + +#: ../src/iop/colorbalance.c:323 +msgid "similar to Kodachrome" +msgstr "podobné na Kodachrome" + +#: ../src/iop/colorbalance.c:964 +msgid "optimize luma from patches" +msgstr "optimalizovat luma z oprav" + +#: ../src/iop/colorbalance.c:966 ../src/iop/colorbalance.c:2085 +msgid "optimize luma" +msgstr "optimalizovat luma" + +#: ../src/iop/colorbalance.c:970 +msgid "neutralize colors from patches" +msgstr "neutralizovat barvy ze skvrn" + +#: ../src/iop/colorbalance.c:972 ../src/iop/colorbalance.c:2091 +msgid "neutralize colors" +msgstr "neutralizovat barvy" + +#: ../src/iop/colorbalance.c:1758 +msgctxt "color" +msgid "offset" +msgstr "offset" + +#: ../src/iop/colorbalance.c:1758 +msgctxt "color" +msgid "power" +msgstr "výkon" + +#: ../src/iop/colorbalance.c:1758 +msgctxt "color" +msgid "slope" +msgstr "sklon" + +#: ../src/iop/colorbalance.c:1759 +msgctxt "color" +msgid "lift" +msgstr "zvednout" + +#: ../src/iop/colorbalance.c:1759 +msgctxt "color" +msgid "gamma" +msgstr "gamma" + +#: ../src/iop/colorbalance.c:1759 +msgctxt "color" +msgid "gain" +msgstr "zesílení" + +#: ../src/iop/colorbalance.c:1762 +msgctxt "section" +msgid "shadows: lift / offset" +msgstr "stíny: zvýšení / posun" + +#: ../src/iop/colorbalance.c:1763 +msgctxt "section" +msgid "mid-tones: gamma / power" +msgstr "střední tóny: gama / výkon" + +#: ../src/iop/colorbalance.c:1764 +msgctxt "section" +msgid "highlights: gain / slope" +msgstr "zdůraznění: zisk / sklon" + +#: ../src/iop/colorbalance.c:1788 +msgid "shadows / mid-tones / highlights" +msgstr "stíny / střední tóny / světla" + +#: ../src/iop/colorbalance.c:1885 ../src/iop/colorbalance.c:1894 +msgid "color-grading mapping method" +msgstr "barevné korekce metoda mapování" + +#: ../src/iop/colorbalance.c:1889 +msgid "color control sliders" +msgstr "posuvníky ovládání barev" + +#: ../src/iop/colorbalance.c:1890 ../src/libs/colorpicker.c:51 +msgid "HSL" +msgstr "HSL" + +#: ../src/iop/colorbalance.c:1891 +msgid "RGBL" +msgstr "RGBL" + +#: ../src/iop/colorbalance.c:1903 +msgctxt "section" +msgid "master" +msgstr "hlavní" + +#: ../src/iop/colorbalance.c:1909 +msgid "saturation correction before the color balance" +msgstr "korekce sytosti před vyvážením barev" + +#: ../src/iop/colorbalance.c:1915 +msgid "saturation correction after the color balance" +msgstr "korekce sytosti po vyvážení barev" + +#: ../src/iop/colorbalance.c:1920 +msgid "adjust to match a neutral tone" +msgstr "upravit tak, aby odpovídal neutrálnímu tónu" + +#. is set in _configure_slider_blocks +#: ../src/iop/colorbalance.c:1978 +msgid "click to cycle layout" +msgstr "klik pro přepínání rozvržení" + +#: ../src/iop/colorbalance.c:2012 +msgid "factor" +msgstr "faktor" + +#: ../src/iop/colorbalance.c:2026 +msgid "select the hue" +msgstr "vyberte odstín" + +#: ../src/iop/colorbalance.c:2038 +msgid "select the saturation" +msgstr "vyberte sytost" + +#: ../src/iop/colorbalance.c:2057 +msgid "factor of lift/offset" +msgstr "faktor zdvihu/offsetu" + +#: ../src/iop/colorbalance.c:2058 +msgid "factor of red for lift/offset" +msgstr "faktor červené pro zdvih/offset" + +#: ../src/iop/colorbalance.c:2059 +msgid "factor of green for lift/offset" +msgstr "faktor zelené pro zdvih/offset" + +#: ../src/iop/colorbalance.c:2060 +msgid "factor of blue for lift/offset" +msgstr "faktor modré pro zdvih/offset" + +#: ../src/iop/colorbalance.c:2063 +msgid "factor of gamma/power" +msgstr "faktor gama/výkon" + +#: ../src/iop/colorbalance.c:2064 +msgid "factor of red for gamma/power" +msgstr "faktor červené pro gama/výkon" + +#: ../src/iop/colorbalance.c:2065 +msgid "factor of green for gamma/power" +msgstr "faktor zelené pro gama/výkon" + +#: ../src/iop/colorbalance.c:2066 +msgid "factor of blue for gamma/power" +msgstr "faktor modré pro gama/výkon" + +#: ../src/iop/colorbalance.c:2069 +msgid "factor of gain/slope" +msgstr "faktor zisku/sklonu" + +#: ../src/iop/colorbalance.c:2070 +msgid "factor of red for gain/slope" +msgstr "faktor červené pro zisk/sklon" + +#: ../src/iop/colorbalance.c:2071 +msgid "factor of green for gain/slope" +msgstr "faktor zelené pro zisk/sklon" + +#: ../src/iop/colorbalance.c:2072 +msgid "factor of blue for gain/slope" +msgstr "faktor modré pro zisk/sklon" + +#: ../src/iop/colorbalance.c:2081 +msgctxt "section" +msgid "auto optimizers" +msgstr "automatické optimalizace" + +#: ../src/iop/colorbalance.c:2086 +msgid "fit the whole histogram and center the average luma" +msgstr "přizpůsobte celý histogram a vycentrujte průměr luma" + +#: ../src/iop/colorbalance.c:2092 +msgid "optimize the RGB curves to remove color casts" +msgstr "optimalizujte křivky RGB pro odstranění barevných nádechů" + +#: ../src/iop/colorbalancergb.c:173 +msgid "color balance rgb" +msgstr "vyvážení barev rgb" + +#: ../src/iop/colorbalancergb.c:178 +msgid "" +"offset power slope|cdl|color grading|contrast|chroma_highlights|hue|vibrance|" +"saturation" +msgstr "" +"posun síly sklonu|cdl|grading barev|kontrast|chroma_světel|odstín|živost|" +"saturace" + +#: ../src/iop/colorbalancergb.c:183 +msgid "" +"color grading tools using alpha masks to separate\n" +"shadows, mid-tones and highlights" +msgstr "" +"nástroje pro třídění barev pomocí alfa masek k oddělení\n" +"stíny, střední tóny a zvýraznění" + +#: ../src/iop/colorbalancergb.c:536 +msgid "add basic colorfulness (legacy)" +msgstr "přidat základní barevnost (dědictví)" + +#: ../src/iop/colorbalancergb.c:545 +msgid "basic colorfulness: natural skin" +msgstr "základní barevnost: přírodní pokožka" + +#: ../src/iop/colorbalancergb.c:551 +msgid "basic colorfulness: vibrant colors" +msgstr "základní barevnost: živé barvy" + +#: ../src/iop/colorbalancergb.c:557 +msgid "basic colorfulness: standard" +msgstr "základní barevnost: standard" + +#: ../src/iop/colorbalancergb.c:1022 +msgid "colorbalance works only on RGB input" +msgstr "vyvážení barev funguje pouze na vstupu RGB" + +#: ../src/iop/colorbalancergb.c:1577 ../src/iop/colorzones.c:2394 +#: ../src/iop/retouch.c:2069 ../src/iop/toneequal.c:1996 +msgid "cannot display masks when the blending mask is displayed" +msgstr "nelze zobrazit masky, když je zobrazena prolínací maska" + +#. Page master +#: ../src/iop/colorbalancergb.c:1947 +msgid "master" +msgstr "hlavní" + +#: ../src/iop/colorbalancergb.c:1947 +msgid "global grading" +msgstr "globální korekce" + +#: ../src/iop/colorbalancergb.c:1951 +msgid "rotate all hues by an angle, at the same luminance" +msgstr "otočit všechny odstíny o úhel při stejné svítivosti" + +#: ../src/iop/colorbalancergb.c:1957 +msgid "increase colorfulness mostly on low-chroma colors" +msgstr "zvýšit barevnost především u barev s nízkou sytostí" + +#: ../src/iop/colorbalancergb.c:1963 +msgid "increase the contrast at constant chromaticity" +msgstr "zvýšit kontrast při konstantní chromatičnosti" + +#: ../src/iop/colorbalancergb.c:1965 +msgctxt "section" +msgid "linear chroma grading" +msgstr "lineární barevný grading" + +#: ../src/iop/colorbalancergb.c:1972 +msgid "increase colorfulness at same luminance globally" +msgstr "zvýšit barevnost při stejné svítivosti globálně" + +#: ../src/iop/colorbalancergb.c:1977 +msgid "increase colorfulness at same luminance mostly in shadows" +msgstr "zvýšit barevnost při stejné svítivosti většinou ve stínech" + +#: ../src/iop/colorbalancergb.c:1982 +msgid "increase colorfulness at same luminance mostly in mid-tones" +msgstr "zvýšit barevnost při stejné svítivosti většinou ve středních tónech" + +#: ../src/iop/colorbalancergb.c:1987 +msgid "increase colorfulness at same luminance mostly in highlights" +msgstr "zvýšit barevnost při stejné svítivosti většinou ve světlech" + +#: ../src/iop/colorbalancergb.c:1989 +msgctxt "section" +msgid "perceptual saturation grading" +msgstr "grading percepční saturace" + +#: ../src/iop/colorbalancergb.c:1995 +msgid "add or remove saturation by an absolute amount" +msgstr "přidat nebo odstranit sytost o absolutní množství" + +#: ../src/iop/colorbalancergb.c:2000 ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2010 +msgid "" +"increase or decrease saturation proportionally to the original pixel " +"saturation" +msgstr "zvýšit nebo snížit sytost úměrně původní sytosti bodů" + +#: ../src/iop/colorbalancergb.c:2012 +msgctxt "section" +msgid "perceptual brilliance grading" +msgstr "grading percepční brilantnosti" + +#: ../src/iop/colorbalancergb.c:2013 +msgid "brilliance" +msgstr "lesk" + +#: ../src/iop/colorbalancergb.c:2018 +msgid "add or remove brilliance by an absolute amount" +msgstr "přidat nebo odebrat lesk o absolutní hodnotu" + +#: ../src/iop/colorbalancergb.c:2023 ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2033 +msgid "" +"increase or decrease brilliance proportionally to the original pixel " +"brilliance" +msgstr "zvýšit nebo snížit lesk úměrně k původnímu lesku bodů" + +#. Page 4-ways +#: ../src/iop/colorbalancergb.c:2036 +msgid "4 ways" +msgstr "4 směry" + +#: ../src/iop/colorbalancergb.c:2036 +msgid "selective color grading" +msgstr "selektivní korekce barev" + +#: ../src/iop/colorbalancergb.c:2038 +msgctxt "section" +msgid "global offset" +msgstr "globální posun" + +#: ../src/iop/colorbalancergb.c:2045 +msgid "global luminance offset" +msgstr "globální posun jasu" + +#: ../src/iop/colorbalancergb.c:2050 +msgid "hue of the global color offset" +msgstr "odstín globálního barevného offsetu" + +#: ../src/iop/colorbalancergb.c:2056 +msgid "chroma of the global color offset" +msgstr "chroma globálního barevného offsetu" + +#: ../src/iop/colorbalancergb.c:2058 +msgctxt "section" +msgid "shadows lift" +msgstr "zdůraznit stíny" + +#: ../src/iop/colorbalancergb.c:2059 +msgid "lift" +msgstr "zvednutí" + +#: ../src/iop/colorbalancergb.c:2065 +msgid "luminance gain in shadows" +msgstr "zisk jasu ve stínech" + +#: ../src/iop/colorbalancergb.c:2070 +msgid "hue of the color gain in shadows" +msgstr "odstín získu barvy ve stínech" + +#: ../src/iop/colorbalancergb.c:2076 +msgid "chroma of the color gain in shadows" +msgstr "chroma barevného zisku ve stínech" + +#: ../src/iop/colorbalancergb.c:2078 +msgctxt "section" +msgid "highlights gain" +msgstr "zdůraznění světel" + +#: ../src/iop/colorbalancergb.c:2079 +msgid "gain" +msgstr "zesílení" + +#: ../src/iop/colorbalancergb.c:2085 +msgid "luminance gain in highlights" +msgstr "zisk jasu ve světlech" + +#: ../src/iop/colorbalancergb.c:2090 +msgid "hue of the color gain in highlights" +msgstr "odstín barevného zisku ve světlech" + +#: ../src/iop/colorbalancergb.c:2096 +msgid "chroma of the color gain in highlights" +msgstr "chroma barevného zisku ve světlech" + +#: ../src/iop/colorbalancergb.c:2098 +msgctxt "section" +msgid "power" +msgstr "výkon" + +#: ../src/iop/colorbalancergb.c:2099 +msgid "power" +msgstr "střední tóny" + +#: ../src/iop/colorbalancergb.c:2105 +msgid "luminance exponent in mid-tones" +msgstr "exponent jasu ve středních tónech" + +#: ../src/iop/colorbalancergb.c:2110 +msgid "hue of the color exponent in mid-tones" +msgstr "odstín barevného exponentu ve středních tónech" + +#: ../src/iop/colorbalancergb.c:2116 +msgid "chroma of the color exponent in mid-tones" +msgstr "chroma barevného exponentu ve středních tónech" + +#. Page masks +#: ../src/iop/colorbalancergb.c:2119 +msgid "masks" +msgstr "masky" + +#: ../src/iop/colorbalancergb.c:2119 +msgid "isolate luminances" +msgstr "izolovat jasy" + +#: ../src/iop/colorbalancergb.c:2123 +msgid "choose in which uniform color space the saturation is computed" +msgstr "vyberte, ve kterém jednotném barevném prostoru se saturace vypočítá" + +#: ../src/iop/colorbalancergb.c:2125 +msgctxt "section" +msgid "luminance ranges" +msgstr "rozsahy jasu" + +#: ../src/iop/colorbalancergb.c:2136 +msgid "weight of the shadows over the whole tonal range" +msgstr "váha stínů v celém tonálním rozsahu" + +#: ../src/iop/colorbalancergb.c:2144 +msgid "position of the middle-gray reference for masking" +msgstr "poloha středově šedé reference pro maskování" + +#: ../src/iop/colorbalancergb.c:2152 +msgid "weights of highlights over the whole tonal range" +msgstr "váhy světel v celém tonálním rozsahu" + +#: ../src/iop/colorbalancergb.c:2157 +msgctxt "section" +msgid "threshold" +msgstr "práh" + +#: ../src/iop/colorbalancergb.c:2162 +msgid "peak white luminance value used to normalize the power function" +msgstr "špičková hodnota bílého jasu použitá k normalizaci funkce výkonu" + +#: ../src/iop/colorbalancergb.c:2168 +msgid "peak gray luminance value used to normalize the power function" +msgstr "špičková hodnota šedého jasu použitá k normalizaci funkce výkonu" + +#: ../src/iop/colorbalancergb.c:2170 +msgctxt "section" +msgid "mask preview settings" +msgstr "nastavení náhledu masky" + +#: ../src/iop/colorbalancergb.c:2173 +msgid "checkerboard color 1" +msgstr "barva šachovnice 1" + +#: ../src/iop/colorbalancergb.c:2176 ../src/iop/colorbalancergb.c:2185 +msgid "select color of the checkerboard from a swatch" +msgstr "vyberte barvu šachovnice ze vzorníku" + +#: ../src/iop/colorbalancergb.c:2182 +msgid "checkerboard color 2" +msgstr "barva šachovnice 2" + +#: ../src/iop/colorbalancergb.c:2192 +msgid "checkerboard size" +msgstr "velikost šachovnice" + +#: ../src/iop/colorchecker.c:118 +msgid "color look up table" +msgstr "barevná vyhledávací tabulka" + +#: ../src/iop/colorchecker.c:123 +msgid "profile|lut|color grading" +msgstr "profil|lut|korekce barev" + +#: ../src/iop/colorchecker.c:129 +msgid "perform color space corrections and apply looks" +msgstr "provádět korekce barevného prostoru a aplikovat vzhled" + +#: ../src/iop/colorchecker.c:131 ../src/iop/colorchecker.c:133 +#: ../src/iop/colorize.c:99 ../src/iop/colormapping.c:154 +#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:121 +#: ../src/iop/colorzones.c:147 ../src/iop/defringe.c:83 ../src/iop/levels.c:141 +#: ../src/iop/monochrome.c:101 ../src/iop/shadhi.c:145 +#: ../src/iop/tonecurve.c:185 ../src/iop/vibrance.c:98 +msgid "linear or non-linear, Lab, display-referred" +msgstr "lineární nebo nelineární, Lab, s odkazem na displej" + +#: ../src/iop/colorchecker.c:132 +msgid "defined by profile, Lab" +msgstr "definovaný profilem, Lab" + +#: ../src/iop/colorchecker.c:308 +msgid "it8 skin tones" +msgstr "it8 odstínů pleti" + +#: ../src/iop/colorchecker.c:324 +msgid "Helmholtz/Kohlrausch monochrome" +msgstr "Helmholtz/Kohlrausch monochromatický" + +#: ../src/iop/colorchecker.c:341 +msgid "Fuji Astia emulation" +msgstr "Emulace Fuji Astia" + +#: ../src/iop/colorchecker.c:355 +msgid "Fuji Classic Chrome emulation" +msgstr "Emulace Fuji Classic Chrome" + +#: ../src/iop/colorchecker.c:369 +msgid "Fuji Monochrome emulation" +msgstr "Emulace Fuji Monochrome" + +#: ../src/iop/colorchecker.c:383 +msgid "Fuji Provia emulation" +msgstr "Emulace Fuji Provia" + +#: ../src/iop/colorchecker.c:397 +msgid "Fuji Velvia emulation" +msgstr "Emulace Fuji Velvia" + +#: ../src/iop/colorchecker.c:846 ../src/iop/colorchecker.c:1441 +#, c-format +msgid "patch #%d" +msgstr "patch #%d" + +#: ../src/iop/colorchecker.c:1288 +#, c-format +msgid "" +"(%2.2f %2.2f %2.2f)\n" +"altered patches are marked with an outline\n" +"click to select\n" +"double-click to reset\n" +"right click to delete patch\n" +"shift+click while color picking to replace patch" +msgstr "" +"(%2.2f %2.2f %2.2f)\n" +"změněné záplaty jsou označeny obrysem\n" +"klikněte pro výběr\n" +"dvojklik pro reset\n" +"klik pravým tlačítkem odstraní záplatu\n" +"shift+klik při výběru barvy nahradí záplatu" + +#: ../src/iop/colorchecker.c:1436 +msgid "patch" +msgstr "patch" + +#: ../src/iop/colorchecker.c:1437 +msgid "color checker patch" +msgstr "záplata kontroly barvy" + +#: ../src/iop/colorchecker.c:1451 +msgid "" +"adjust target color Lab 'L' channel\n" +"lower values darken target color while higher brighten it" +msgstr "" +"upravit cílovou barvu Lab kanálu 'L'\n" +"nižší hodnoty ztmaví cílovou barvu, zatímco vyšší ji zesvětlí" + +#: ../src/iop/colorchecker.c:1459 +msgid "" +"adjust target color Lab 'a' channel\n" +"lower values shift target color towards greens while higher shift towards " +"magentas" +msgstr "" +"upravit cílovou barvu Lab kanálu 'a'\n" +"nižší hodnoty posouvají cílovou barvu směrem k zelené, zatímco vyšší " +"posunují barvu k purpurové" + +#: ../src/iop/colorchecker.c:1462 +msgid "green-magenta offset" +msgstr "zeleno-purpurový offset" + +#: ../src/iop/colorchecker.c:1471 +msgid "" +"adjust target color Lab 'b' channel\n" +"lower values shift target color towards blues while higher shift towards " +"yellows" +msgstr "" +"upravit cílovou barvu Lab kanálu 'b'\n" +"nižší hodnoty posunou cílovou barvu směrem k modré, zatímco vyšší hodnoty " +"posunou barvu směrem ke žluté" + +#: ../src/iop/colorchecker.c:1474 +msgid "blue-yellow offset" +msgstr "modro-žlutý offset" + +#: ../src/iop/colorchecker.c:1483 +msgid "" +"adjust target color saturation\n" +"adjusts 'a' and 'b' channels of target color in Lab space simultaneously\n" +"lower values scale towards lower saturation while higher scale towards " +"higher saturation" +msgstr "" +"upravit cílovou sytost barev\n" +"současně upravuje kanály 'a' a 'b' cílové barvy v prostoru Lab\n" +"nižší hodnoty stupnice směrem k nižší sytosti, zatímco vyšší stupnice směrem " +"k vyšší sytosti" + +#: ../src/iop/colorchecker.c:1492 +msgid "target color" +msgstr "cílová barva" + +#: ../src/iop/colorchecker.c:1495 +msgid "" +"control target color of the patches\n" +"relative - target color is relative from the patch original color\n" +"absolute - target color is absolute Lab value" +msgstr "" +"ovládat cílovou barvu záplat\n" +"relativní - cílová barva je relativní vzhledem k původní barvě záplaty\n" +"absolutní - cílová barva je absolutní hodnota Lab" + +#: ../src/iop/colorchecker.c:1499 +msgid "absolute" +msgstr "absolutní" + +#: ../src/iop/colorcontrast.c:77 +msgid "color contrast" +msgstr "barevný kontrast" + +#: ../src/iop/colorcontrast.c:87 +msgid "" +"increase saturation and separation between\n" +"opposite colors" +msgstr "" +"zvýšit sytost a oddělení mezi\n" +"opačné barvy" + +#: ../src/iop/colorcontrast.c:330 +msgid "" +"steepness of the a* curve in Lab\n" +"lower values desaturate greens and magenta while higher saturate them" +msgstr "" +"strmost křivky a* v Lab\n" +"nižší hodnoty odsycují zelené a purpurové, zatímco vyšší je sytí" + +#: ../src/iop/colorcontrast.c:337 +msgid "" +"steepness of the b* curve in Lab\n" +"lower values desaturate blues and yellows while higher saturate them" +msgstr "" +"strmost křivky b* v Lab\n" +"nižší hodnoty odsycují modré a žluté, zatímco vyšší je sytí" + +#: ../src/iop/colorcorrection.c:71 +msgid "color correction" +msgstr "barevné korekce" + +#: ../src/iop/colorcorrection.c:76 +msgid "correct white balance selectively for blacks and whites" +msgstr "správné vyvážení bílé selektivně pro černou a bílou" + +#: ../src/iop/colorcorrection.c:109 +msgid "warm tone" +msgstr "teplý tón" + +#: ../src/iop/colorcorrection.c:117 +msgid "warming filter" +msgstr "ohřívací filtr" + +#: ../src/iop/colorcorrection.c:125 +msgid "cooling filter" +msgstr "chladící filtr" + +#: ../src/iop/colorcorrection.c:250 +msgid "" +"drag the line for split-toning. bright means highlights, dark means shadows. " +"use mouse wheel to change saturation." +msgstr "" +"přetáhněte čáru pro rozdělené tónování. světlý znamená světla, tmavý stíny. " +"použijte kolečko myši pro změnu sytosti." + +#: ../src/iop/colorcorrection.c:269 +msgid "set the global saturation" +msgstr "nastavit globální sytost" + +#: ../src/iop/colorin.c:126 +msgid "input color profile" +msgstr "vstupní barevný profil" + +#: ../src/iop/colorin.c:131 +msgid "" +"convert any RGB input to pipeline reference RGB\n" +"using color profiles to remap RGB values" +msgstr "" +"převést libovolný vstup RGB na referenční RGB kanálu\n" +"pomocí barevných profilů k přemapování hodnot RGB" + +#: ../src/iop/colorin.c:133 ../src/iop/colorout.c:89 ../src/iop/demosaic.c:293 +#: ../src/iop/rawprepare.c:174 +msgid "mandatory" +msgstr "povinné" + +#: ../src/iop/colorin.c:135 ../src/iop/colorout.c:91 +msgid "defined by profile" +msgstr "definovaný profilem" + +#: ../src/iop/colorin.c:582 +#, c-format +msgid "" +"can't extract matrix from colorspace `%s', it will be replaced by Rec2020 " +"RGB!" +msgstr "" +"nelze extrahovat matici z barevného prostoru `%s', bude nahrazena Rec2020 " +"RGB!" + +#: ../src/iop/colorin.c:1362 +#, c-format +msgid "`%s' color matrix not found!" +msgstr "Barevná matrice `%s' nebyla nalezena!" + +#: ../src/iop/colorin.c:1401 +msgid "input profile could not be generated!" +msgstr "vstupní profil nelze vygenerovat!" + +#: ../src/iop/colorin.c:1498 +msgid "unsupported input profile has been replaced by linear Rec709 RGB!" +msgstr "nepodporovaný vstupní profil byl nahrazen lineárním Rec709 RGB!" + +#: ../src/iop/colorin.c:1782 +msgid "external ICC profiles" +msgstr "externí ICC profily" + +#: ../src/iop/colorin.c:1827 +#, c-format +msgid "" +"embedded ICC profile properties:\n" +"\n" +"name: %s\n" +"version: %d.%d\n" +"type: %s\n" +"manufacturer: %s\n" +"model: %s\n" +"copyright: %s\n" +"\n" +msgstr "" +"vlastnosti vestavěného profilu ICC:\n" +"\n" +"jméno: %s\n" +"verze: %d.%d\n" +"typ: %s\n" +"výrobce: %s\n" +"model: %s\n" +"autorská práva: %s\n" + +#: ../src/iop/colorin.c:2022 +msgid "input profile" +msgstr "vstupní profil" + +#: ../src/iop/colorin.c:2026 +msgid "working profile" +msgstr "pracovní profil" + +#: ../src/iop/colorin.c:2035 +msgid "working ICC profiles" +msgstr "pracovní ICC profily" + +#: ../src/iop/colorin.c:2047 +msgid "confine Lab values to gamut of RGB color space" +msgstr "omezit hodnoty Lab na rozsah barevného prostoru RGB" + +#: ../src/iop/colorize.c:75 +msgid "colorize" +msgstr "obarvení" + +#: ../src/iop/colorize.c:97 +msgid "overlay a solid color on the image" +msgstr "překryjte obrázek plnou barvou" + +#: ../src/iop/colorize.c:354 ../src/iop/splittoning.c:481 +msgid "select the hue tone" +msgstr "vyberte tón odstínu" + +#: ../src/iop/colorize.c:360 +msgid "select the saturation shadow tone" +msgstr "vyberte sytost tónu stínů" + +#: ../src/iop/colorize.c:364 +msgid "lightness of color" +msgstr "světlost barvy" + +#: ../src/iop/colorize.c:368 +msgid "mix value of source lightness" +msgstr "smíšená hodnota zdroje světla" + +#: ../src/iop/colormapping.c:147 +msgid "color mapping" +msgstr "mapování barev" + +#: ../src/iop/colormapping.c:152 +msgid "" +"transfer a color palette and tonal repartition from one image to another" +msgstr "" +"přenést barevnou paletu a tonální rozdělení z jednoho obrázku do druhého" + +#: ../src/iop/colormapping.c:1019 +msgid "source clusters:" +msgstr "zdrojové clustery:" + +#: ../src/iop/colormapping.c:1025 +msgid "target clusters:" +msgstr "cílové klustery:" + +#: ../src/iop/colormapping.c:1034 +msgid "acquire as source" +msgstr "získat jako zdroj" + +#: ../src/iop/colormapping.c:1038 +msgid "analyze this image as a source image" +msgstr "analyzovat tento obrázek jako zdrojový obrázek" + +#: ../src/iop/colormapping.c:1040 +msgid "acquire as target" +msgstr "získat jako cíl" + +#: ../src/iop/colormapping.c:1044 +msgid "analyze this image as a target image" +msgstr "analyzovat tento obrázek jako cílový obrázek" + +#: ../src/iop/colormapping.c:1047 +msgid "number of clusters to find in image. value change resets all clusters" +msgstr "" +"počet skupin k nalezení na obrázku. změna hodnoty resetuje všechny skupiny" + +#: ../src/iop/colormapping.c:1050 +msgid "" +"how clusters are mapped. low values: based on color proximity, high values: " +"based on color dominance" +msgstr "" +"jak se klastry mapují. nízké hodnoty: založené na blízkosti barev, vysoké " +"hodnoty: založené na barevné dominanci" + +#: ../src/iop/colormapping.c:1055 +msgid "level of histogram equalization" +msgstr "úroveň vyrovnání histogramu" + +#: ../src/iop/colorout.c:81 +msgid "output color profile" +msgstr "výstupní barevný profil" + +#: ../src/iop/colorout.c:87 +msgid "" +"convert pipeline reference RGB to any display RGB\n" +"using color profiles to remap RGB values" +msgstr "" +"převést RGB z fronty zpracování na libovolné RGB\n" +"pomocí barevných profilů k přemapování hodnot RGB" + +#: ../src/iop/colorout.c:92 +msgid "non-linear, RGB or Lab, display-referred" +msgstr "nelineární, RGB nebo Lab, s odkazem na displej" + +#: ../src/iop/colorout.c:695 +msgid "missing output profile has been replaced by sRGB!" +msgstr "chybějící výstupní profil byl nahrazen sRGB!" + +#: ../src/iop/colorout.c:717 +msgid "missing softproof profile has been replaced by sRGB!" +msgstr "chybějící profil jemný obrys byl nahrazen sRGB!" + +#: ../src/iop/colorout.c:760 +msgid "unsupported output profile has been replaced by sRGB!" +msgstr "nepodporovaný výstupní profil byl nahrazen sRGB!" + +#: ../src/iop/colorout.c:885 +msgid "output intent" +msgstr "výstupní záměr" + +#: ../src/iop/colorout.c:886 +msgid "rendering intent" +msgstr "vykreslovací záměr" + +#: ../src/iop/colorout.c:888 ../src/libs/export.c:1358 +#: ../src/libs/print_settings.c:2475 ../src/libs/print_settings.c:2824 +#: ../src/views/darkroom.c:2359 ../src/views/lighttable.c:1176 +msgid "perceptual" +msgstr "percepční" + +#: ../src/iop/colorout.c:889 ../src/libs/export.c:1359 +#: ../src/libs/print_settings.c:2476 ../src/libs/print_settings.c:2825 +#: ../src/views/darkroom.c:2360 ../src/views/lighttable.c:1177 +msgid "relative colorimetric" +msgstr "relativní kolorimetrické" + +#: ../src/iop/colorout.c:890 ../src/libs/export.c:1360 +#: ../src/libs/print_settings.c:2477 ../src/libs/print_settings.c:2826 +#: ../src/views/darkroom.c:2361 ../src/views/lighttable.c:1178 +msgctxt "rendering intent" +msgid "saturation" +msgstr "sytost" + +#: ../src/iop/colorout.c:891 ../src/libs/export.c:1361 +#: ../src/libs/print_settings.c:2478 ../src/libs/print_settings.c:2827 +#: ../src/views/darkroom.c:2362 ../src/views/lighttable.c:1179 +msgid "absolute colorimetric" +msgstr "absolutní kolorimetrické" + +#: ../src/iop/colorout.c:909 +msgid "export ICC profiles" +msgstr "exportovat ICC profily" + +#: ../src/iop/colorreconstruction.c:114 +msgid "color reconstruction" +msgstr "rekonstrukce barev" + +#: ../src/iop/colorreconstruction.c:119 +msgid "recover clipped highlights by propagating surrounding colors" +msgstr "obnovit oříznutá světla šířením okolních barev" + +#: ../src/iop/colorreconstruction.c:647 ../src/iop/colorreconstruction.c:1053 +#: ../src/iop/globaltonemap.c:227 ../src/iop/globaltonemap.c:396 +#: ../src/iop/hazeremoval.c:541 ../src/iop/hazeremoval.c:776 +#: ../src/iop/levels.c:358 +msgid "inconsistent output" +msgstr "nekonzistentní výstup" + +#: ../src/iop/colorreconstruction.c:685 +msgid "module `color reconstruction' failed" +msgstr "modul `rekonstrukce barev' selhal" + +#: ../src/iop/colorreconstruction.c:1246 +msgid "spatial" +msgstr "prostorový" + +#: ../src/iop/colorreconstruction.c:1247 +msgid "range" +msgstr "rozsah" + +#: ../src/iop/colorreconstruction.c:1248 +msgid "precedence" +msgstr "přednost" + +#: ../src/iop/colorreconstruction.c:1264 +msgid "pixels with lightness values above this threshold are corrected" +msgstr "body s hodnotami světlosti nad tímto prahem jsou opraveny" + +#: ../src/iop/colorreconstruction.c:1265 +msgid "how far to look for replacement colors in spatial dimensions" +msgstr "jak daleko hledat náhradní barvy v prostorových rozměrech" + +#: ../src/iop/colorreconstruction.c:1266 +msgid "how far to look for replacement colors in the luminance dimension" +msgstr "jak daleko hledat náhradní barvy v dimenzi jasu" + +#: ../src/iop/colorreconstruction.c:1267 +msgid "if and how to give precedence to specific replacement colors" +msgstr "zda a jak dát přednost konkrétním náhradním barvám" + +#: ../src/iop/colorreconstruction.c:1268 +msgid "the hue tone which should be given precedence over other hue tones" +msgstr "tón odstínu, který bude upřednostněn před ostatními" + +#: ../src/iop/colorreconstruction.c:1270 ../src/iop/demosaic.c:1324 +#: ../src/iop/highlights.c:1258 +msgid "not applicable" +msgstr "nelze použít" + +#: ../src/iop/colorreconstruction.c:1271 +msgid "no highlights reconstruction for monochrome images" +msgstr "nelze opravit světla v monochromatických obrázcích" + +#: ../src/iop/colortransfer.c:103 +msgid "color transfer" +msgstr "přenos barev" + +#: ../src/iop/colortransfer.c:118 +msgid "this module is deprecated. better use color mapping module instead." +msgstr "tento modul je zastaralý. raději použijte modul mapování barev." + +#: ../src/iop/colortransfer.c:441 +msgid "" +"this module will be removed in the future\n" +"and is only here so you can switch it off\n" +"and move to the new color mapping module." +msgstr "" +"tento modul bude v budoucnu odstraněn\n" +"a je zde pouze proto, abyste jej mohli vypnout\n" +"a přejděte na nový modul mapování barev." + +#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2573 +msgid "color zones" +msgstr "barevné zóny" + +#: ../src/iop/colorzones.c:145 +msgid "selectively shift hues, chroma and lightness of pixels" +msgstr "selektivně posouvat odstíny, sytost a jas pixelů" + +#: ../src/iop/colorzones.c:684 +msgid "B&W: with red" +msgstr "B&W: s červenou" + +#: ../src/iop/colorzones.c:707 +msgid "B&W: with skin tones" +msgstr "B&W: s odstíny pleti" + +#: ../src/iop/colorzones.c:732 +msgid "polarizing filter" +msgstr "polarizační filtr" + +#: ../src/iop/colorzones.c:753 +msgid "natural skin tones" +msgstr "přirozené tóny pleti" + +#: ../src/iop/colorzones.c:784 +msgid "B&W: film" +msgstr "B&W: film" + +#: ../src/iop/colorzones.c:804 +msgid "HSL base setting" +msgstr "Základní nastavení HSL" + +#: ../src/iop/colorzones.c:2500 +msgid "orange" +msgstr "oranžová" + +#: ../src/iop/colorzones.c:2673 ../src/iop/rgbcurve.c:1375 +msgid "" +"create a curve based on an area from the image\n" +"drag to create a flat curve\n" +"ctrl+drag to create a positive curve\n" +"shift+drag to create a negative curve" +msgstr "" +"vytvořte křivku založenou na oblasti z obrázku\n" +"tažením vytvořte plochou křivku\n" +"ctrl+tažením vytvoříte kladnou křivku\n" +"shift+tažením vytvoříte zápornou křivku" + +#: ../src/iop/colorzones.c:2677 ../src/iop/rgbcurve.c:1379 +msgid "create curve" +msgstr "vytvořit křivku" + +#. edit by area +#: ../src/iop/colorzones.c:2696 +msgid "edit by area" +msgstr "upravit podle oblasti" + +#: ../src/iop/colorzones.c:2702 +msgid "edit the curve nodes by area" +msgstr "upravit uzly křivky podle oblasti" + +#: ../src/iop/colorzones.c:2710 +msgid "display selection" +msgstr "výběr zobrazení" + +#: ../src/iop/colorzones.c:2722 +msgid "choose selection criterion, will be the abscissa in the graph" +msgstr "zvolte kritérium výběru, bude v grafu úsečka" + +#: ../src/iop/colorzones.c:2725 +msgid "choose between a smoother or stronger effect" +msgstr "vyberte si mezi jemnějším nebo silnějším efektem" + +#: ../src/iop/colorzones.c:2762 ../src/iop/rgbcurve.c:1410 +#: ../src/iop/tonecurve.c:1194 +msgid "interpolation method" +msgstr "metoda interpolace" + +#: ../src/iop/colorzones.c:2764 ../src/iop/rgbcurve.c:1412 +#: ../src/iop/tonecurve.c:1196 +msgid "centripetal spline" +msgstr "dostředivá křivka" + +#: ../src/iop/colorzones.c:2765 ../src/iop/rgbcurve.c:1413 +#: ../src/iop/tonecurve.c:1197 +msgid "monotonic spline" +msgstr "monotónní spline" + +#: ../src/iop/colorzones.c:2768 ../src/iop/rgbcurve.c:1416 +#: ../src/iop/tonecurve.c:1199 +msgid "" +"change this method if you see oscillations or cusps in the curve\n" +"- cubic spline is better to produce smooth curves but oscillates when nodes " +"are too close\n" +"- centripetal is better to avoids cusps and oscillations with close nodes " +"but is less smooth\n" +"- monotonic is better for accuracy of pure analytical functions (log, gamma, " +"exp)" +msgstr "" +"změňte tuto metodu, pokud v křivce vidíte oscilace nebo hrbolky\n" +"- kubický spline je lepší pro vytváření hladkých křivek, ale osciluje, když " +"jsou uzly příliš blízko\n" +"- dostředivé je lepší vyhnout se hrbolkům a oscilacím s blízkými uzly, ale " +"je méně hladké\n" +"- monotónní je lepší pro přesnost čistě analytických funkcí (log, gama, exp)" + +#: ../src/iop/crop.c:122 +msgid "crop" +msgstr "oříznutí" + +#: ../src/iop/crop.c:127 +msgid "reframe|distortion" +msgstr "přerámovat|zkreslit" + +#: ../src/iop/crop.c:133 +msgid "change the framing" +msgstr "změnit rámování" + +#: ../src/iop/crop.c:1651 +msgid "resize: drag, keep aspect ratio: shift+drag" +msgstr "" +"změna velikosti: tažení, zachování poměru stran: Shift+tažení" + +#: ../src/iop/crop.c:1660 +msgid "" +"move: drag, move vertically: shift+drag, move horizontally: ctrl+drag" +msgstr "" +"pohyb: tažení, svislý pohyb: Shift+tažení, vodorovný pohyb: ctrl+tažení" + +#: ../src/iop/defringe.c:71 +msgid "defringe" +msgstr "odtřepení" + +#: ../src/iop/defringe.c:81 +msgid "attenuate chromatic aberration by desaturating edges" +msgstr "ztlumí chromatickou aberaci odsycením hran" + +#: ../src/iop/defringe.c:101 +msgid "" +"this module is deprecated. please use the chromatic aberration module " +"instead." +msgstr "" +"tento modul je zastaralý. místo toho použijte modul chromatické aberace." + +#: ../src/iop/defringe.c:417 +msgid "" +"method for color protection:\n" +" - global average: fast, might show slightly wrong previews in high " +"magnification; might sometimes protect saturation too much or too low in " +"comparison to local average\n" +" - local average: slower, might protect saturation better than global " +"average by using near pixels as color reference, so it can still allow for " +"more desaturation where required\n" +" - static: fast, only uses the threshold as a static limit" +msgstr "" +"způsob ochrany barev:\n" +" - globální průměr: rychle, může ukazovat mírně nesprávné náhledy při " +"velkém zvětšení; může někdy chránit sytost příliš nebo příliš nízko ve " +"srovnání s místním průměrem\n" +" - místní průměr: pomalejší, může chránit sytost lépe než globální průměr " +"použitím blízkých pixelů jako barevné reference, takže v případě potřeby " +"může stále umožnit větší odsycení\n" +" - statický: rychlý, používá pouze práh jako statický limit" + +#: ../src/iop/defringe.c:424 +msgid "radius for detecting fringe" +msgstr "poloměr pro detekci třepení" + +#: ../src/iop/defringe.c:427 +msgid "threshold for defringe, higher values mean less defringing" +msgstr "práh pro odtřepení, vyšší hodnoty znamenají menší odtřepení" + +#: ../src/iop/demosaic.c:287 +msgid "demosaic" +msgstr "demosaic" + +#: ../src/iop/demosaic.c:292 +msgid "reconstruct full RGB pixels from a sensor color filter array reading" +msgstr "rekonstruovat plné RGB pixely z pole barevných filtrů senzoru" + +#: ../src/iop/demosaic.c:1133 +#, c-format +msgid "`%s' color matrix not found for 4bayer image!" +msgstr "Barevná matice `%s' nebyla nalezena pro 4bayer obrázek!" + +#: ../src/iop/demosaic.c:1285 +msgid "" +"Bayer sensor demosaicing method, PPG and RCD are fast, AMaZE and LMMSE are " +"slow.\n" +"LMMSE is suited best for high ISO images.\n" +"dual demosaicers double processing time." +msgstr "" +"Bayerova metoda demosaicingu, PPG a RCD jsou rychlé, AMaZE a LMMSE pomalé.\n" +"LMMSE je nejvhodnější pro snímky s vysokým ISO.\n" +"duální demosaicing má dvojnásobnou dobu zpracování." + +#: ../src/iop/demosaic.c:1289 +msgid "" +"X-Trans sensor demosaicing method, Markesteijn 3-pass and frequency domain " +"chroma are slow.\n" +"dual demosaicers double processing time." +msgstr "" +"Demosaicing pomocí metody X-Trans senzoru, 3-průchodový Markesteijn a " +"frekvenční doména jasu jsou pomalé.\n" +"duální demosaicing má dvojnásobnou dobu zpracování." + +#: ../src/iop/demosaic.c:1295 +msgid "Bayer4 sensor demosaicing methods." +msgstr "Metody demosaicingu senzorů Bayer4." + +#: ../src/iop/demosaic.c:1299 +msgid "" +"threshold for edge-aware median.\n" +"set to 0.0 to switch off\n" +"set to 1.0 to ignore edges" +msgstr "" +"práh pro medián uvědomující si hrany.\n" +"pro vypnutí nastavte na 0,0\n" +"nastavte na 1.0 pro ignorování hran" + +#: ../src/iop/demosaic.c:1304 +msgid "" +"contrast threshold for dual demosaic.\n" +"set to 0.0 for high frequency content\n" +"set to 1.0 for flat content\n" +"toggle to visualize the mask" +msgstr "" +"kontrastní práh pro duální demosaic.\n" +"nastavte na 0,0 pro vysokofrekvenční obsah\n" +"nastavit na 1,0 pro plochý obsah\n" +"přepni pro vizualizaci masky" + +#: ../src/iop/demosaic.c:1312 +msgid "" +"LMMSE refinement steps. the median steps average the output,\n" +"refine adds some recalculation of red & blue channels" +msgstr "" +"Kroky upřesnění LMMSE. střední kroky průměrují výstup,\n" +"Upřesnit přidává přepočet červených a modrých kanálů" + +#: ../src/iop/demosaic.c:1315 +msgid "how many color smoothing median steps after demosaicing" +msgstr "kolik středních kroků vyhlazení barev po demosaicing" + +#: ../src/iop/demosaic.c:1318 +msgid "green channels matching method" +msgstr "metoda shody zelených kanálů" + +#: ../src/iop/demosaic.c:1325 +msgid "demosaicing is only used for color raw images" +msgstr "demosaicing se používá pouze pro barevné RAW obrázky" + +#: ../src/iop/denoiseprofile.c:766 +msgid "wavelets: chroma only" +msgstr "vlnky: pouze chroma" + +#: ../src/iop/denoiseprofile.c:772 +msgid "denoise (profiled)" +msgstr "odšumění (profilované)" + +#: ../src/iop/denoiseprofile.c:778 +msgid "denoise using noise statistics profiled on sensors" +msgstr "odšumění pomocí statistik šumu profilovaných na senzorech" + +#: ../src/iop/denoiseprofile.c:2850 +#, c-format +msgid "found match for ISO %d" +msgstr "nalezena shoda pro ISO %d" + +#: ../src/iop/denoiseprofile.c:2859 +#, c-format +msgid "interpolated from ISO %d and %d" +msgstr "interpolováno z ISO %d a %d" + +#: ../src/iop/denoiseprofile.c:3723 +msgid "Y0" +msgstr "Y0" + +#: ../src/iop/denoiseprofile.c:3724 +msgid "U0V0" +msgstr "U0V0" + +#: ../src/iop/denoiseprofile.c:3764 +msgid "" +"use only with a perfectly\n" +"uniform image if you want to\n" +"estimate the noise variance." +msgstr "" +"používat pouze s dokonale\n" +"jednotným obrázkem, pokud chcete\n" +"odhadnout rozptyl šumu." + +#: ../src/iop/denoiseprofile.c:3770 +msgid "variance red: " +msgstr "rozptyl červené: " + +#: ../src/iop/denoiseprofile.c:3774 +msgid "variance computed on the red channel" +msgstr "rozptyl vypočítaný na červeném kanálu" + +#: ../src/iop/denoiseprofile.c:3779 +msgid "variance green: " +msgstr "rozptyl zelené: " + +#: ../src/iop/denoiseprofile.c:3783 +msgid "variance computed on the green channel" +msgstr "rozptyl vypočítaný na zeleném kanálu" + +#: ../src/iop/denoiseprofile.c:3788 +msgid "variance blue: " +msgstr "rozptyl modré: " + +#: ../src/iop/denoiseprofile.c:3792 +msgid "variance computed on the blue channel" +msgstr "rozptyl vypočítaný na modrém kanálu" + +#: ../src/iop/denoiseprofile.c:3803 ../src/libs/export.c:1320 +#: ../src/libs/print_settings.c:2418 ../src/libs/print_settings.c:2774 +msgid "profile" +msgstr "profil" + +#: ../src/iop/denoiseprofile.c:3837 +msgid "" +"adapt denoising according to the\n" +"white balance coefficients.\n" +"should be enabled on a first instance\n" +"for better denoising.\n" +"should be disabled if an earlier instance\n" +"has been used with a color blending mode." +msgstr "" +"přizpůsobte odšumování podle koeficientů\n" +"vyvážení bílé. \n" +"měl by být povolen v první instanci\n" +"pro lepší odstranění šumu. \n" +"měla by být zakázána, pokud byla \n" +"s režimem prolnutí barev použita dřívější instance." + +#: ../src/iop/denoiseprofile.c:3844 +msgid "" +"fix bugs in Anscombe transform resulting\n" +"in undersmoothing of the green channel in\n" +"wavelets mode, combined with a bad handling\n" +"of white balance coefficients, and a bug in\n" +"non-local means normalization resulting in\n" +"undersmoothing when patch size was increased.\n" +"enabling this option will change the denoising\n" +"you get. once enabled, you won't be able to\n" +"return back to old algorithm." +msgstr "" +"oprava chyb ve výsledné transformaci Anscombe\n" +"v podhlazení zeleného kanálu v\n" +"vlnkový režim v kombinaci se špatnou manipulací\n" +"koeficientů vyvážení bílé a chyba\n" +"nelokální znamená normalizaci, která má za následek\n" +"nedostatečné vyhlazení při zvětšení velikosti náplasti.\n" +"povolením této možnosti se změní potlačení šumu\n" +"dostaneš. jakmile bude povoleno, nebudete moci\n" +"vrátit se ke starému algoritmu." + +#: ../src/iop/denoiseprofile.c:3854 +msgid "profile used for variance stabilization" +msgstr "profil používaný pro stabilizaci rozptylu" + +#: ../src/iop/denoiseprofile.c:3856 +msgid "" +"method used in the denoising core.\n" +"non-local means works best for `lightness' blending,\n" +"wavelets work best for `color' blending" +msgstr "" +"metoda použitá v odšumovacím jádru.\n" +"nelokální prostředky fungují nejlépe pro „lehké“ prolnutí,\n" +"vlnky fungují nejlépe pro prolnutí „barvy“" + +#: ../src/iop/denoiseprofile.c:3860 +msgid "" +"color representation used within the algorithm.\n" +"RGB keeps the RGB channels separated,\n" +"while Y0U0V0 combine the channels to\n" +"denoise chroma and luma separately." +msgstr "" +"barevná reprezentace použitá v rámci algoritmu.\n" +"RGB udržuje kanály RGB oddělené,\n" +"zatímco Y0U0V0 kombinuje kanály do\n" +"odšumění chroma a luma odděleně." + +#: ../src/iop/denoiseprofile.c:3865 +msgid "" +"radius of the patches to match.\n" +"increase for more sharpness on strong edges, and better denoising of smooth " +"areas.\n" +"if details are oversmoothed, reduce this value or increase the central pixel " +"weight slider." +msgstr "" +"poloměr záplat, aby se shodovaly.\n" +"zvýšení pro větší ostrost na silných hranách a lepší potlačení šumu v " +"hladkých oblastech.\n" +"pokud jsou detaily příliš vyhlazené, snižte tuto hodnotu nebo zvyšte " +"středový posuvník váhy bodů." + +#: ../src/iop/denoiseprofile.c:3871 +msgid "" +"emergency use only: radius of the neighborhood to search patches in. " +"increase for better denoising performance, but watch the long runtimes! " +"large radii can be very slow. you have been warned" +msgstr "" +"pouze nouzové použití: rádius okolí pro vyhledávání záplat. zvyšte výkon pro " +"lepší potlačení šumu, ale dlouhou doby běhu! velké poloměry mohou být velmi " +"pomalé. byl jsi varován" + +#: ../src/iop/denoiseprofile.c:3877 +msgid "" +"scattering of the neighborhood to search patches in.\n" +"increase for better coarse-grain noise reduction.\n" +"does not affect execution time." +msgstr "" +"rozptýlení po okolí k hledání záplat.\n" +"zvýšení pro lepší redukci hrubozrnného šumu.\n" +"nemá vliv na dobu provádění." + +#: ../src/iop/denoiseprofile.c:3881 +msgid "" +"increase the weight of the central pixel\n" +"of the patch in the patch comparison.\n" +"useful to recover details when patch size\n" +"is quite big." +msgstr "" +"zvýšit váhu centrálního bodu\n" +"náplasti v porovnání náplastí.\n" +"užitečné pro obnovení detailů pokud je velikost\n" +"opravy docela velká." + +#: ../src/iop/denoiseprofile.c:3885 +msgid "finetune denoising strength" +msgstr "jemně doladit sílu potlačení šumu" + +#: ../src/iop/denoiseprofile.c:3887 +msgid "" +"controls the way parameters are autoset\n" +"increase if shadows are not denoised enough\n" +"or if chroma noise remains.\n" +"this can happen if your picture is underexposed." +msgstr "" +"řídí způsob automatického nastavení parametrů\n" +"zvýšit, pokud stíny nejsou dostatečně odšumovány\n" +"nebo pokud zůstane barevný šum.\n" +"k tomu může dojít, pokud je váš snímek podexponovaný." + +#: ../src/iop/denoiseprofile.c:3892 +msgid "" +"finetune shadows denoising.\n" +"decrease to denoise more aggressively\n" +"dark areas of the image." +msgstr "" +"jemné doladění odšumování stínů.\n" +"snížit k odšumování agresivněji\n" +"tmavé oblasti obrazu." + +#: ../src/iop/denoiseprofile.c:3896 +msgid "" +"correct color cast in shadows.\n" +"decrease if shadows are too purple.\n" +"increase if shadows are too green." +msgstr "" +"správná barva vržená ve stínech.\n" +"snížit, pokud jsou stíny příliš fialové.\n" +"zvýšit, pokud jsou stíny příliš zelené." + +#: ../src/iop/denoiseprofile.c:3900 +msgid "" +"upgrade the variance stabilizing algorithm.\n" +"new algorithm extends the current one.\n" +"it is more flexible but could give small\n" +"differences in the images already processed." +msgstr "" +"upgradovat algoritmus stabilizace rozptylu.\n" +"nový algoritmus rozšiřuje stávající.\n" +"je pružnější, ale mohl by dát malý\n" +"rozdíl v již zpracovaných snímcích." + +#: ../src/iop/diffuse.c:129 +msgid "diffuse or sharpen" +msgstr "rozptýlit nebo zostřit" + +#: ../src/iop/diffuse.c:134 +msgid "diffusion|deconvolution|blur|sharpening" +msgstr "rozptyl|dekonvoluce|rozostření|ostření" + +#: ../src/iop/diffuse.c:141 +msgid "" +"simulate directional diffusion of light with heat transfer model\n" +"to apply an iterative edge-oriented blur,\n" +"inpaint damaged parts of the image, or to remove blur with blind " +"deconvolution." +msgstr "" +"simulovat směrovou difúzi světla pomocí modelu přenosu tepla\n" +"použít iterativní rozostření orientované na okraje,\n" +"domalovat poškozené části obrazu nebo odstranit rozostření pomocí slepé " +"dekonvoluce." + +#. deblurring presets +#: ../src/iop/diffuse.c:246 +msgid "lens deblur: soft" +msgstr "deblur objektivu: měkký" + +#: ../src/iop/diffuse.c:271 +msgid "lens deblur: medium" +msgstr "deblur objektivu: střední" + +#: ../src/iop/diffuse.c:296 +msgid "lens deblur: hard" +msgstr "deblur objektivu: tvrdý" + +#: ../src/iop/diffuse.c:322 +msgid "dehaze" +msgstr "odstranění oparu" + +#: ../src/iop/diffuse.c:348 +msgid "denoise: fine" +msgstr "odšumění: jemné" + +#: ../src/iop/diffuse.c:373 +msgid "denoise: medium" +msgstr "odšumění: střední" + +#: ../src/iop/diffuse.c:398 +msgid "denoise: coarse" +msgstr "odšumění: hrubé" + +#: ../src/iop/diffuse.c:473 +msgid "sharpen demosaicing: no AA filter" +msgstr "zostření demosaicing: žádný AA filtr" + +#: ../src/iop/diffuse.c:499 +msgid "sharpen demosaicing: AA filter" +msgstr "zostření demosaicing: AA filtr" + +#: ../src/iop/diffuse.c:526 +msgid "simulate watercolor" +msgstr "simulovat vodoznak" + +#: ../src/iop/diffuse.c:551 +msgid "simulate line drawing" +msgstr "simulovat kreslení čar" + +#: ../src/iop/diffuse.c:603 +msgid "inpaint highlights" +msgstr "malovat světla" + +#. fast presets for slow hardware +#: ../src/iop/diffuse.c:630 +msgid "sharpness: fast" +msgstr "ostrost: rychlá" + +#: ../src/iop/diffuse.c:682 +msgid "sharpness: strong" +msgstr "dostření: silné" + +#: ../src/iop/diffuse.c:707 +msgid "local contrast: fast" +msgstr "lokální kontrast: rychlý" + +#: ../src/iop/diffuse.c:1418 ../src/iop/diffuse.c:1693 +msgid "diffuse/sharpen failed to allocate memory, check your RAM settings" +msgstr "" +"rozptýlení/zaostření se nepodařilo alokovat paměť, zkontrolujte nastavení RAM" + +#. Additional parameters +#. Camera settings +#: ../src/iop/diffuse.c:1797 ../src/iop/splittoning.c:533 +#: ../src/libs/camera.c:486 +msgctxt "section" +msgid "properties" +msgstr "vlastnosti" + +#: ../src/iop/diffuse.c:1803 +msgid "" +"more iterations make the effect stronger but the module slower.\n" +"this is analogous to giving more time to the diffusion reaction.\n" +"if you plan on sharpening or inpainting, \n" +"more iterations help reconstruction." +msgstr "" +"více iterací zesiluje efekt, ale modul je pomalejší.\n" +"to je analogické s poskytnutím více času difúzní reakci.\n" +"pokud plánujete ostření nebo malování,\n" +"více iterací pomáhá rekonstrukci." + +#: ../src/iop/diffuse.c:1812 +msgid "" +"main scale of the diffusion.\n" +"zero makes diffusion act on the finest details more heavily.\n" +"non-zero defines the size of the details to diffuse heavily.\n" +"for deblurring and denoising, set to zero.\n" +"increase to act on local contrast instead." +msgstr "" +"hlavní měřítko difúze.\n" +"nula způsobuje, že difúze působí na nejjemnější detaily silněji.\n" +"nenulová definuje velikost detailů, které mají být silně rozptýleny.\n" +"pro odstranění rozmazání a odstranění šumu nastavte na nulu.\n" +"zvýšit, aby místo toho působil na lokální kontrast." + +#: ../src/iop/diffuse.c:1822 +msgid "" +"width of the diffusion around the central radius.\n" +"high values diffuse on a large band of radii.\n" +"low values diffuse closer to the central radius.\n" +"if you plan on deblurring, \n" +"the radius should be around the width of your lens blur." +msgstr "" +"šířka difuze kolem centrálního poloměru.\n" +"vysoké hodnoty se šíří na velkém pásmu poloměrů.\n" +"nízké hodnoty difundují blíže ke středovému poloměru.\n" +"pokud plánujete rozmazání,\n" +"poloměr by měl být kolem šířky rozostření objektivu." + +#: ../src/iop/diffuse.c:1829 +msgctxt "section" +msgid "speed (sharpen ↔ diffuse)" +msgstr "rychlost (zostřit ↔ difuzně)" + +#: ../src/iop/diffuse.c:1836 +msgid "" +"diffusion speed of low-frequency wavelet layers\n" +"in the direction of 1st order anisotropy (set below).\n" +"\n" +"negative values sharpen, \n" +"positive values diffuse and blur, \n" +"zero does nothing." +msgstr "" +"rychlost difúze nízkofrekvenčních vlnkových vrstev\n" +"ve směru anizotropie 1. řádu (níže).\n" +"\n" +"záporné hodnoty zaostřují\n" +"pozitivní hodnoty rozptylují a rozmazávají,\n" +"nula nedělá nic." + +#: ../src/iop/diffuse.c:1846 +msgid "" +"diffusion speed of low-frequency wavelet layers\n" +"in the direction of 2nd order anisotropy (set below).\n" +"\n" +"negative values sharpen, \n" +"positive values diffuse and blur, \n" +"zero does nothing." +msgstr "" +"rychlost difúze nízkofrekvenčních vlnkových vrstev\n" +"ve směru anizotropie 2. řádu (níže).\n" +"\n" +"záporné hodnoty zaostřují\n" +"pozitivní hodnoty rozptylují a rozmazávají,\n" +"nula nedělá nic." + +#: ../src/iop/diffuse.c:1856 +msgid "" +"diffusion speed of high-frequency wavelet layers\n" +"in the direction of 3rd order anisotropy (set below).\n" +"\n" +"negative values sharpen, \n" +"positive values diffuse and blur, \n" +"zero does nothing." +msgstr "" +"rychlost difúze vysokofrekvenčních vlnkových vrstev\n" +"ve směru anizotropie třetího řádu (níže).\n" +"\n" +"záporné hodnoty zaostřují\n" +"pozitivní hodnoty rozptylují a rozmazávají,\n" +"nula nedělá nic." + +#: ../src/iop/diffuse.c:1866 +msgid "" +"diffusion speed of high-frequency wavelet layers\n" +"in the direction of 4th order anisotropy (set below).\n" +"\n" +"negative values sharpen, \n" +"positive values diffuse and blur, \n" +"zero does nothing." +msgstr "" +"rychlost difúze vysokofrekvenčních vlnkových vrstev\n" +"ve směru anizotropie 4. řádu (nastaveno níže).\n" +"\n" +"záporné hodnoty zaostřují\n" +"pozitivní hodnoty rozptylují a rozmazávají,\n" +"nula nedělá nic." + +#: ../src/iop/diffuse.c:1872 +msgctxt "section" +msgid "direction" +msgstr "směr" + +#: ../src/iop/diffuse.c:1879 +msgid "" +"direction of 1st order speed (set above).\n" +"\n" +"negative values follow gradients more closely, \n" +"positive values rather avoid edges (isophotes), \n" +"zero affects both equally (isotropic)." +msgstr "" +"směr rychlosti 1. řádu (nastavený výše).\n" +"\n" +"záporné hodnoty sledují gradienty těsněji,\n" +"kladné hodnoty se spíše vyhýbají hranám (izofotům)\n" +"nula ovlivňuje oba stejně (izotropní)." + +#: ../src/iop/diffuse.c:1888 +msgid "" +"direction of 2nd order speed (set above).\n" +"\n" +"negative values follow gradients more closely, \n" +"positive values rather avoid edges (isophotes), \n" +"zero affects both equally (isotropic)." +msgstr "" +"směr rychlosti 2. řádu (nastavený výše).\n" +"\n" +"záporné hodnoty sledují gradienty těsněji,\n" +"kladné hodnoty se spíše vyhýbají hranám (izofotům)\n" +"nula ovlivňuje oba stejně (izotropní)." + +#: ../src/iop/diffuse.c:1897 +msgid "" +"direction of 3rd order speed (set above).\n" +"\n" +"negative values follow gradients more closely, \n" +"positive values rather avoid edges (isophotes), \n" +"zero affects both equally (isotropic)." +msgstr "" +"směr rychlosti 3. řádu (nastavený výše).\n" +"\n" +"záporné hodnoty sledují gradienty těsněji,\n" +"kladné hodnoty se spíše vyhýbají hranám (izofotům)\n" +"nula ovlivňuje oba stejně (izotropní)." + +#: ../src/iop/diffuse.c:1906 +msgid "" +"direction of 4th order speed (set above).\n" +"\n" +"negative values follow gradients more closely, \n" +"positive values rather avoid edges (isophotes), \n" +"zero affects both equally (isotropic)." +msgstr "" +"směr rychlosti 4. řádu (nastavený výše).\n" +"\n" +"záporné hodnoty sledují gradienty těsněji,\n" +"kladné hodnoty se spíše vyhýbají hranám (izofotům)\n" +"nula ovlivňuje oba stejně (izotropní)." + +#: ../src/iop/diffuse.c:1912 +msgctxt "section" +msgid "edge management" +msgstr "správa hran" + +#: ../src/iop/diffuse.c:1919 +msgid "" +"increase or decrease the sharpness of the highest frequencies.\n" +"can be used to keep details after blooming,\n" +"for standalone sharpening set speed to negative values." +msgstr "" +"zvýšit nebo snížit ostrost nejvyšších frekvencí.\n" +"lze použít k zachování detailů po odkvětu,\n" +"pro samostatné ostření nastavte rychlost na záporné hodnoty." + +#: ../src/iop/diffuse.c:1926 +msgid "" +"define the sensitivity of the variance penalty for edges.\n" +"increase to exclude more edges from diffusion,\n" +"if fringes or halos appear." +msgstr "" +"definovat citlivost penalizace rozptylu pro hrany.\n" +"zvětšit, aby bylo vyloučeno více hran z difúze,\n" +"pokud se objeví třepení nebo halo." + +#: ../src/iop/diffuse.c:1933 +msgid "" +"define the variance threshold between edge amplification and penalty.\n" +"decrease if you want pixels on smooth surfaces get a boost,\n" +"increase if you see noise appear on smooth surfaces or\n" +"if dark areas seem oversharpened compared to bright areas." +msgstr "" +"definovat práh rozptylu mezi zesílením hrany a penalizací.\n" +"snížit, pokud chcete, aby se pixely na hladkých površích zvýšily,\n" +"zvýšit, pokud se na hladkých površích objevuje šum nebo\n" +"pokud se tmavé oblasti zdají přeostřené ve srovnání se světlými oblastmi." + +#: ../src/iop/diffuse.c:1939 +msgctxt "section" +msgid "diffusion spatiality" +msgstr "difúzní prostorovost" + +#: ../src/iop/diffuse.c:1946 +msgid "" +"luminance threshold for the mask.\n" +"0. disables the luminance masking and applies the module on the whole " +"image.\n" +"any higher value excludes pixels with luminance lower than the threshold.\n" +"this can be used to inpaint highlights." +msgstr "" +"práh jasu pro masku.\n" +"0. deaktivuje maskování jasu a aplikuje modul na celý snímek.\n" +"jakákoli vyšší hodnota vylučuje pixely s jasem nižším, než je prahová " +"hodnota.\n" +"toto lze použít k domalování světel." + +#: ../src/iop/dither.c:107 +msgid "dither or posterize" +msgstr "dithering, nebo posterizace" + +#: ../src/iop/dither.c:112 +#| msgid "dithering|posterization|reduce bit-depth" +msgid "dithering|posterization|reduce bit depth" +msgstr "dithering|posterizace|redukce bitové hloubky" + +#: ../src/iop/dither.c:117 +msgid "" +"reduce banding and posterization effects in output\n" +"JPEGs by adding random noise, or reduce bit depth" +msgstr "" +"snížit efekty páskování a posterizace ve výstupu\n" +"JPEG přidáním náhodného šumu nebo snížením bitové hloubky" + +#: ../src/iop/dither.c:119 +msgid "corrective, artistic" +msgstr "korektivní, umělecké" + +#. add the preset. +#: ../src/iop/dither.c:149 +msgid "dither" +msgstr "zrno" + +#: ../src/iop/dither.c:761 +msgid "radius for blurring step" +msgstr "poloměr pro krok rozmazání" + +#: ../src/iop/dither.c:773 +msgid "the gradient range where to apply random dither" +msgstr "rozsah přechodu, kde se má použít náhodný rozklad" + +#: ../src/iop/dither.c:774 +msgid "gradient range" +msgstr "rozsah gradientu" + +#: ../src/iop/dither.c:782 +msgid "damping level of random dither" +msgstr "úroveň tlumení náhodného rozkladu" + +#: ../src/iop/equalizer.c:89 +msgid "legacy equalizer" +msgstr "starší ekvalizér" + +#: ../src/iop/equalizer.c:112 +msgid "" +"this module is deprecated. better use contrast equalizer module instead." +msgstr "tento modul je zastaralý. raději použijte modul ekvalizér kontrastu." + +#: ../src/iop/equalizer.c:240 +msgid "" +"this module will be removed in the future\n" +"and is only here so you can switch it off\n" +"and move to the new equalizer." +msgstr "" +"tento modul bude v budoucnu odstraněn\n" +"a je zde pouze proto, abyste jej mohli vypnout\n" +"a přejděte na nový ekvalizér." + +#: ../src/iop/exposure.c:129 +msgid "" +"redo the exposure of the shot as if you were still in-camera\n" +"using a color-safe brightening similar to increasing ISO setting" +msgstr "" +"zopakujte expozici snímku, jako byste byli stále ve fotoaparátu\n" +"použití barevně bezpečného zjasnění podobné zvýšení nastavení ISO" + +#: ../src/iop/exposure.c:301 +msgid "magic lantern defaults" +msgstr "výchozí nastavení magic lantern" + +#: ../src/iop/exposure.c:373 ../src/iop/rawoverexposed.c:137 +#: ../src/iop/rawoverexposed.c:256 +#, c-format +msgid "failed to get raw buffer from image `%s'" +msgstr "nepodařilo se získat raw buffer z obrázku `%s'" + +#: ../src/iop/exposure.c:647 +#, no-c-format +msgid "compensate camera exposure (%+.1f EV)" +msgstr "kompenzovat expozici fotoaparátu (%+.1f EV)" + +#. Write report in GUI +#: ../src/iop/exposure.c:831 +#, c-format +msgid "L : \t%.1f %%" +msgstr "L : \t%.1f %%" + +#: ../src/iop/exposure.c:963 ../src/libs/history.c:953 +#, c-format +msgid "%.2f EV" +msgstr "%.2f EV" + +#: ../src/iop/exposure.c:1131 +msgid "" +"automatically remove the camera exposure bias\n" +"this is useful if you exposed the image to the right." +msgstr "" +"automaticky odstraní zkreslení expozice fotoaparátu\n" +"to je užitečné, pokud exponujete obrázek vpravo." + +#: ../src/iop/exposure.c:1150 +#, no-c-format +msgid "where in the histogram to meter for deflicking. E.g. 50% is median" +msgstr "kde v histogramu měřit pro odklonění. Např. 50 % je medián" + +#: ../src/iop/exposure.c:1156 +msgid "" +"where to place the exposure level for processed pics, EV below overexposure." +msgstr "" +"kam umístit úroveň expozice pro zpracované snímky, EV pod přeexponováním." + +#: ../src/iop/exposure.c:1160 +msgid "computed EC: " +msgstr "vypočítané EC: " + +#: ../src/iop/exposure.c:1163 +msgid "what exposure correction has actually been used" +msgstr "jaká korekce expozice byla skutečně použita" + +#: ../src/iop/exposure.c:1182 +msgid "" +"adjust the black level to unclip negative RGB values.\n" +"you should never use it to add more density in blacks!\n" +"if poorly set, it will clip near-black colors out of gamut\n" +"by pushing RGB values into negatives." +msgstr "" +"upravte úroveň černé, abyste odřízli záporné hodnoty RGB.\n" +"nikdy byste jej neměli používat k přidání větší hustoty v černé!\n" +"je-li špatně nastaven, ořízne téměř černé barvy mimo rozsah\n" +"posunutím hodnot RGB do záporů." + +#: ../src/iop/exposure.c:1192 +msgid "area exposure mapping" +msgstr "mapování plošné expozice" + +#: ../src/iop/exposure.c:1198 +msgid "" +"define a target brightness, in terms of exposure,\n" +"for a selected region of the image (the control sample),\n" +"which you then match against the same target brightness\n" +"in other images. the control sample can either\n" +"be a critical part of your subject or a non-moving and\n" +"consistently-lit surface over your series of images." +msgstr "" +"definovat cílový jas z hlediska expozice,\n" +"pro vybranou oblast obrázku (kontrolní vzorek),\n" +"které pak porovnáte se stejným cílovým jasem\n" +"v jiných obrázcích. kontrolní vzorek může buď\n" +"být kritickou součástí vašeho předmětu nebo nepohyblivým a\n" +"konzistentně osvětlený povrch přes sérii snímků." + +#: ../src/iop/exposure.c:1207 +msgid "" +"\"correction\" automatically adjust exposure\n" +"such that the input lightness is mapped to the target.\n" +"\"measure\" simply shows how an input color is mapped by\n" +"the exposure compensation and can be used to define a target." +msgstr "" +"\"korekce\" automaticky upraví expozici\n" +"tak, že vstupní světlost je mapována na cíl.\n" +"\"měření\" jednoduše ukazuje, jak je vstupní barva mapována\n" +"kompenzaci expozice a lze ji použít k definování cíle." + +#: ../src/iop/exposure.c:1233 +msgid "L : \tN/A" +msgstr "L : \tN/A" + +#: ../src/iop/exposure.c:1251 +msgid "the desired target exposure after mapping" +msgstr "požadovaná cílová expozice po mapování" + +#: ../src/iop/filmic.c:177 +msgid "this module is deprecated. better use filmic rgb module instead." +msgstr "" +"tento modul je zastaralý. raději místo toho použijte filmový rgb modul." + +#: ../src/iop/filmic.c:333 +msgid "09 EV (low-key)" +msgstr "09 EV (low-key)" + +#: ../src/iop/filmic.c:341 +msgid "10 EV (indoors)" +msgstr "10 EV (uvnitř)" + +#: ../src/iop/filmic.c:349 +msgid "11 EV (dim outdoors)" +msgstr "11 EV (venku, šero)" + +#: ../src/iop/filmic.c:357 +msgid "12 EV (outdoors)" +msgstr "12 EV (venku)" + +#: ../src/iop/filmic.c:365 +msgid "13 EV (bright outdoors)" +msgstr "13 EV (venku, jasný)" + +#: ../src/iop/filmic.c:373 +msgid "14 EV (backlighting)" +msgstr "14 EV (podsvícení)" + +#: ../src/iop/filmic.c:381 +msgid "15 EV (sunset)" +msgstr "15 EV (západ slunce)" + +#: ../src/iop/filmic.c:389 +msgid "16 EV (HDR)" +msgstr "16 EV (HDR)" + +#: ../src/iop/filmic.c:397 +msgid "18 EV (HDR++)" +msgstr "18 EV (HDR++)" + +#: ../src/iop/filmic.c:1505 +msgid "read-only graph, use the parameters below to set the nodes" +msgstr "graf pouze pro čtení, použijte níže uvedené parametry k nastavení uzlů" + +#: ../src/iop/filmic.c:1509 +msgctxt "section" +msgid "logarithmic shaper" +msgstr "logaritmický tvarovač" + +#: ../src/iop/filmic.c:1517 +msgid "" +"adjust to match the average luminance of the subject.\n" +"except in back-lighting situations, this should be around 18%." +msgstr "" +"upravit tak, aby odpovídala průměrnému jasu objektu.\n" +"s výjimkou situací s protisvětlem by to mělo být přibližně 18 %." + +#: ../src/iop/filmic.c:1529 ../src/iop/filmicrgb.c:4506 +msgid "" +"number of stops between middle gray and pure white.\n" +"this is a reading a lightmeter would give you on the scene.\n" +"adjust so highlights clipping is avoided" +msgstr "" +"počet zastávek mezi středně šedou a čistě bílou.\n" +"toto je údaj, který by vám na scéně poskytl expozimetr.\n" +"upravit tak, aby nedocházelo k ořezávání světel" + +#: ../src/iop/filmic.c:1542 ../src/iop/filmicrgb.c:4517 +msgid "" +"number of stops between middle gray and pure black.\n" +"this is a reading a lightmeter would give you on the scene.\n" +"increase to get more contrast.\n" +"decrease to recover more details in low-lights." +msgstr "" +"počet zastávek mezi středně šedou a čistě černou.\n" +"toto je údaj, který by vám na scéně poskytl expozimetr.\n" +"zvýšením získáte větší kontrast.\n" +"snížením obnovíte více detailů ve slabém osvětlení." + +#: ../src/iop/filmic.c:1554 +msgid "" +"increase or decrease the computed dynamic range.\n" +"useful in conjunction with \"auto tune levels\"." +msgstr "" +"zvýšit nebo snížit vypočítaný dynamický rozsah.\n" +"užitečné ve spojení s „úrovněmi automatického ladění“." + +#: ../src/iop/filmic.c:1560 ../src/iop/filmicrgb.c:4531 +#: ../src/iop/profile_gamma.c:673 +msgid "auto tune levels" +msgstr "úrovně automatického ladění" + +#: ../src/iop/filmic.c:1563 +msgid "" +"try to optimize the settings with some guessing.\n" +"this will fit the luminance range inside the histogram bounds.\n" +"works better for landscapes and evenly-lit pictures\n" +"but fails for high-keys and low-keys." +msgstr "" +"zkuste optimalizovat nastavení s trochou hádání.\n" +"to bude odpovídat rozsahu jasu uvnitř hranic histogramu.\n" +"funguje lépe pro krajiny a rovnoměrně osvětlené snímky\n" +"ale selže pro high-keys a low-keys snímky." + +#: ../src/iop/filmic.c:1568 +msgctxt "section" +msgid "filmic S curve" +msgstr "filmová S křivka" + +#: ../src/iop/filmic.c:1575 ../src/iop/filmicrgb.c:4618 +msgid "" +"slope of the linear part of the curve\n" +"affects mostly the mid-tones" +msgstr "" +"sklon lineární části křivky\n" +"postihuje převážně střední tóny" + +#. geotagging +#: ../src/iop/filmic.c:1582 ../src/iop/filmicrgb.c:4627 +#: ../src/libs/metadata_view.c:161 +msgid "latitude" +msgstr "zeměpisná šířka" + +#: ../src/iop/filmic.c:1585 +msgid "" +"width of the linear domain in the middle of the curve.\n" +"increase to get more contrast at the extreme luminances.\n" +"this has no effect on mid-tones." +msgstr "" +"šířka lineární domény uprostřed křivky.\n" +"zvýšením získáte větší kontrast při extrémních jasech.\n" +"nemá to žádný vliv na střední tóny." + +#: ../src/iop/filmic.c:1592 +msgid "shadows/highlights balance" +msgstr "vyvážení stínů/světel" + +#: ../src/iop/filmic.c:1595 ../src/iop/filmicrgb.c:4638 +msgid "" +"slides the latitude along the slope\n" +"to give more room to shadows or highlights.\n" +"use it if you need to protect the details\n" +"at one extremity of the histogram." +msgstr "" +"posouvá zeměpisnou šířku po svahu\n" +"aby bylo více prostoru pro stíny nebo světla.\n" +"použijte jej, pokud potřebujete chránit detaily\n" +"na jednom konci histogramu." + +#: ../src/iop/filmic.c:1605 +msgid "" +"desaturates the input of the module globally.\n" +"you need to set this value below 100%\n" +"if the chrominance preservation is enabled." +msgstr "" +"globálně odsycuje vstup modulu.\n" +"musíte tuto hodnotu nastavit pod 100 %\n" +"pokud je povoleno zachování chrominance." + +#: ../src/iop/filmic.c:1615 +msgid "" +"desaturates the output of the module\n" +"specifically at extreme luminances.\n" +"decrease if shadows and/or highlights are over-saturated." +msgstr "" +"odsycuje výstup modulu\n" +"konkrétně při extrémních jasech.\n" +"snížit, pokud jsou stíny a/nebo světla přesycené." + +#. Add export intent combo +#: ../src/iop/filmic.c:1625 ../src/libs/export.c:1339 +#: ../src/libs/print_settings.c:2473 ../src/libs/print_settings.c:2820 +#: ../src/views/darkroom.c:2365 ../src/views/lighttable.c:1182 +msgid "intent" +msgstr "záměr" + +#: ../src/iop/filmic.c:1626 +msgid "contrasted" +msgstr "kontrastní" + +#. cubic spline +#: ../src/iop/filmic.c:1627 +msgid "faded" +msgstr "vybledlé" + +#. centripetal spline +#: ../src/iop/filmic.c:1628 ../src/iop/profile_gamma.c:635 +msgid "linear" +msgstr "lineární" + +#. monotonic spline +#: ../src/iop/filmic.c:1629 +msgid "optimized" +msgstr "optimalizované" + +#: ../src/iop/filmic.c:1631 +msgid "change this method if you see reversed contrast or faded blacks" +msgstr "změňte tuto metodu, pokud vidíte obrácený kontrast nebo vybledlé černé" + +#. Preserve color +#: ../src/iop/filmic.c:1635 +msgid "preserve the chrominance" +msgstr "zachovat chrominanci" + +#: ../src/iop/filmic.c:1637 +msgid "" +"ensure the original color are preserved.\n" +"may reinforce chromatic aberrations.\n" +"you need to manually tune the saturation when using this mode." +msgstr "" +"zajistit zachování původní barvy.\n" +"může posílit chromatické aberace.\n" +"při použití tohoto režimu musíte ručně doladit sytost." + +#: ../src/iop/filmic.c:1647 +msgctxt "section" +msgid "destination/display" +msgstr "cíl/zobrazení" + +#: ../src/iop/filmic.c:1665 ../src/iop/filmicrgb.c:4657 +msgid "" +"luminance of output pure black, this should be 0%\n" +"except if you want a faded look" +msgstr "" +"jas výstupu čistě černá, měl by být 0 %\n" +"kromě případů, kdy chcete vybledlý vzhled" + +#: ../src/iop/filmic.c:1674 ../src/iop/filmicrgb.c:4664 +msgid "" +"middle gray value of the target display or color space.\n" +"you should never touch that unless you know what you are doing." +msgstr "" +"střední hodnota šedé cílového zobrazení nebo barevného prostoru.\n" +"nikdy byste se toho neměli dotýkat, pokud nevíte, co děláte." + +#: ../src/iop/filmic.c:1683 ../src/iop/filmicrgb.c:4671 +msgid "" +"luminance of output pure white, this should be 100%\n" +"except if you want a faded look" +msgstr "" +"svítivost výstupu čistě bílá, měla by být 100%\n" +"kromě případů, kdy chcete vybledlý vzhled" + +#: ../src/iop/filmic.c:1689 +msgid "target gamma" +msgstr "cílová gama" + +#: ../src/iop/filmic.c:1691 +msgid "" +"power or gamma of the transfer function\n" +"of the display or color space.\n" +"you should never touch that unless you know what you are doing." +msgstr "" +"výkon nebo gama přenosové funkce\n" +"displeje nebo barevného prostoru.\n" +"nikdy byste se toho neměli dotýkat, pokud nevíte, co děláte." + +#: ../src/iop/filmicrgb.c:339 +msgid "filmic rgb" +msgstr "filmové rgb" + +#: ../src/iop/filmicrgb.c:344 +msgid "tone mapping|curve|view transform|contrast|saturation|highlights" +msgstr "mapování tónů|křivka|transformace pohledu|kontrast|sytost|světla" + +#: ../src/iop/filmicrgb.c:349 +msgid "" +"apply a view transform to prepare the scene-referred pipeline\n" +"for display on SDR screens and paper prints\n" +"while preventing clipping in non-destructive ways" +msgstr "" +"použijte transformaci pohledu k přípravě fronty zpracování s odkazem na " +"scénu\n" +"pro zobrazení na obrazovkách SDR a papírových výtiscích\n" +"a zároveň předchází ořezávání nedestruktivními způsoby" + +#: ../src/iop/filmicrgb.c:1365 +msgid "" +"filmic highlights reconstruction failed to allocate memory, check your RAM " +"settings" +msgstr "" +"rekonstrukci filmových zvýraznění se nepodařilo alokovat paměť, zkontrolujte " +"nastavení RAM" + +#: ../src/iop/filmicrgb.c:2369 +msgid "filmic highlights reconstruction failed to allocate memory on GPU" +msgstr "rekonstrukce filmových zvýraznění selhala při alokaci paměti na GPU" + +#: ../src/iop/filmicrgb.c:2487 +msgid "filmic works only on RGB input" +msgstr "filmic funguje pouze na vstupu RGB" + +#: ../src/iop/filmicrgb.c:3548 +msgid "look only" +msgstr "pouze vzhled" + +#: ../src/iop/filmicrgb.c:3550 +msgid "look + mapping (lin)" +msgstr "vzhled + mapování (lin)" + +#: ../src/iop/filmicrgb.c:3552 +msgid "look + mapping (log)" +msgstr "vzhled + mapování (log)" + +#: ../src/iop/filmicrgb.c:3554 +msgid "dynamic range mapping" +msgstr "mapování dynamického rozsahu" + +#: ../src/iop/filmicrgb.c:3921 +#, c-format +msgid "(%.0f %%)" +msgstr "(%.0f %%)" + +#: ../src/iop/filmicrgb.c:3937 +#, no-c-format +msgid "% display" +msgstr "% displej" + +#: ../src/iop/filmicrgb.c:3949 +msgid "EV scene" +msgstr "EV scéna" + +#: ../src/iop/filmicrgb.c:3953 +#, no-c-format +msgid "% camera" +msgstr "% fotoaparát" + +#. Page DISPLAY +#: ../src/iop/filmicrgb.c:3989 ../src/iop/filmicrgb.c:4651 +msgid "display" +msgstr "displej" + +#. axis legend +#: ../src/iop/filmicrgb.c:3998 +msgid "(%)" +msgstr "(%)" + +#. Page SCENE +#: ../src/iop/filmicrgb.c:4007 ../src/iop/filmicrgb.c:4486 +msgid "scene" +msgstr "scéna" + +#. axis legend +#: ../src/iop/filmicrgb.c:4016 +msgid "(EV)" +msgstr "(EV)" + +#. we are over the graph area +#: ../src/iop/filmicrgb.c:4428 +msgid "" +"use the parameters below to set the nodes.\n" +"the bright curve is the filmic tone mapping curve\n" +"the dark curve is the desaturation curve." +msgstr "" +"k nastavení uzlů použijte níže uvedené parametry.\n" +"světlá křivka je filmová křivka mapování tónů\n" +"tmavá křivka je křivka odsycení." + +#: ../src/iop/filmicrgb.c:4434 +msgid "toggle axis labels and values display" +msgstr "přepnout popisky os a zobrazení hodnot" + +#: ../src/iop/filmicrgb.c:4438 +msgid "" +"cycle through graph views.\n" +"left click: cycle forward.\n" +"right click: cycle backward.\n" +"double-click: reset to look view." +msgstr "" +"procházet zobrazení grafu.\n" +"levý klik: vpřed.\n" +"pravý klik: vzad.\n" +"dvojklik: reset zobrazení vzhledu." + +#: ../src/iop/filmicrgb.c:4495 +#, no-c-format +msgid "" +"adjust to match the average luminance of the image's subject.\n" +"the value entered here will then be remapped to 18.45%.\n" +"decrease the value to increase the overall brightness." +msgstr "" +"upravit tak, aby odpovídala průměrné svítivosti objektu na snímku.\n" +"zde zadaná hodnota bude poté přemapována na 18,45 %.\n" +"snížením hodnoty zvýšíte celkový jas." + +#: ../src/iop/filmicrgb.c:4525 +msgid "" +"symmetrically increase or decrease the computed dynamic range.\n" +"useful to give a safety margin to extreme luminances." +msgstr "" +"symetricky zvýšit nebo snížit vypočítaný dynamický rozsah.\n" +"užitečné pro poskytnutí bezpečnostní rezervy extrémním jasům." + +#: ../src/iop/filmicrgb.c:4532 +msgid "" +"try to optimize the settings with some statistical assumptions.\n" +"this will fit the luminance range inside the histogram bounds.\n" +"works better for landscapes and evenly-lit pictures\n" +"but fails for high-keys, low-keys and high-ISO pictures.\n" +"this is not an artificial intelligence, but a simple guess.\n" +"ensure you understand its assumptions before using it." +msgstr "" +"pokuste se optimalizovat nastavení pomocí některých statistických " +"předpokladů.\n" +"to bude odpovídat rozsahu jasu uvnitř hranic histogramu.\n" +"funguje lépe pro krajiny a rovnoměrně osvětlené snímky\n" +"ale selže pro high-key a low-key obrázky a obrázky vysokým ISO.\n" +"nejde o umělou inteligenci, ale o jednoduchý odhad.\n" +"před použitím se ujistěte, že rozumíte jeho předpokladům." + +#. Page RECONSTRUCT +#: ../src/iop/filmicrgb.c:4541 +msgid "reconstruct" +msgstr "rekonstruovat" + +#: ../src/iop/filmicrgb.c:4543 +msgctxt "section" +msgid "highlights clipping" +msgstr "ořez zvýraznění" + +#: ../src/iop/filmicrgb.c:4551 +msgid "" +"set the exposure threshold upon which\n" +"clipped highlights get reconstructed.\n" +"values are relative to the scene white point.\n" +"0 EV means the threshold is the same as the scene white point.\n" +"decrease to include more areas,\n" +"increase to exclude more areas." +msgstr "" +"nastavit práh expozice, při kterém\n" +"se oříznutá světla rekonstruují.\n" +"hodnoty jsou relativní k bílému bodu scény.\n" +"0 EV znamená, že práh je stejný jako bílý bod scény.\n" +"snížit, aby se zahrnulo více oblastí,\n" +"zvýšit pro vyloučení více oblastí." + +#: ../src/iop/filmicrgb.c:4561 +msgid "" +"soften the transition between clipped highlights and valid pixels.\n" +"decrease to make the transition harder and sharper,\n" +"increase to make the transition softer and blurrier." +msgstr "" +"změkčit přechod mezi oříznutými zvýrazněními a platnými body.\n" +"snížit, aby byl přechod těžší a ostřejší,\n" +"zvýšit, aby byl přechod měkčí a rozmazanější." + +#: ../src/iop/filmicrgb.c:4567 ../src/iop/filmicrgb.c:4568 +msgid "display highlight reconstruction mask" +msgstr "zobrazit masku rekonstrukce světel" + +#: ../src/iop/filmicrgb.c:4575 +msgctxt "section" +msgid "balance" +msgstr "vyvážení" + +#: ../src/iop/filmicrgb.c:4582 +#, no-c-format +msgid "" +"decide which reconstruction strategy to favor,\n" +"inpainting a smooth color gradient\n" +"or trying to recover the textured details.\n" +"0% is an equal mix of both.\n" +"increase if at least one RGB channel is not clipped.\n" +"decrease if all RGB channels are clipped over large areas." +msgstr "" +"rozhodněte, kterou strategii obnovy upřednostníte,\n" +"malování hladkého barevného přechodu\n" +"nebo se snaží obnovit texturované detaily.\n" +"0 % je stejná kombinace obou.\n" +"zvyšte, pokud alespoň jeden kanál RGB není oříznut.\n" +"snižte, pokud jsou všechny kanály RGB oříznuty na velkých plochách." + +#: ../src/iop/filmicrgb.c:4593 +#, no-c-format +msgid "" +"decide which reconstruction strategy to favor,\n" +"blooming highlights like film does\n" +"or trying to recover sharp details.\n" +"0% is an equal mix of both.\n" +"increase if you want more details.\n" +"decrease if you want more blur." +msgstr "" +"rozhodněte, kterou strategii obnovy upřednostníte,\n" +"vzhled jako film\n" +"nebo obnovit ostré detaily.\n" +"0 % je stejná kombinace obou.\n" +"zvyšte, pokud chcete více podrobností.\n" +"snižte, chcete-li více rozostřit." + +#: ../src/iop/filmicrgb.c:4605 +#, no-c-format +msgid "" +"decide which reconstruction strategy to favor,\n" +"recovering monochromatic highlights\n" +"or trying to recover colorful highlights.\n" +"0% is an equal mix of both.\n" +"increase if you want more color.\n" +"decrease if you see magenta or out-of-gamut highlights." +msgstr "" +"rozhodněte, kterou strategii obnovy upřednostníte,\n" +"obnovení monochromatických odlesků\n" +"nebo obnovení barevných odlesků.\n" +"0 % je stejná kombinace obou.\n" +"zvyšte, pokud chcete více barvy.\n" +"snižte, pokud vidíte purpurová světla, nebo světla mimo gamut." + +#. Page LOOK +#: ../src/iop/filmicrgb.c:4613 +msgid "look" +msgstr "vzhled" + +#: ../src/iop/filmicrgb.c:4623 +msgid "" +"equivalent to paper grade in analog.\n" +"increase to make highlights brighter and less compressed.\n" +"decrease to mute highlights." +msgstr "" +"ekvivalentní jakost papíru v analogu.\n" +"zvýšit, aby byly jasnější a méně komprimované.\n" +"snížit na ztlumení zvýraznění." + +#: ../src/iop/filmicrgb.c:4631 +msgid "" +"width of the linear domain in the middle of the curve,\n" +"increase to get more contrast and less desaturation at extreme luminances,\n" +"decrease otherwise. no desaturation happens in the latitude range.\n" +"this has no effect on mid-tones." +msgstr "" +"šířka lineární domény uprostřed křivky,\n" +"zvýšením získáte větší kontrast a menší desaturaci při extrémních jasech,\n" +"jinak snížit. v rozsahu zeměpisné šířky nedochází k žádné desaturaci.\n" +"nemá to žádný vliv na střední tóny." + +#: ../src/iop/filmicrgb.c:4646 ../src/iop/filmicrgb.c:4794 +msgid "" +"desaturates the output of the module\n" +"specifically at extreme luminances.\n" +"increase if shadows and/or highlights are under-saturated." +msgstr "" +"odsycuje výstup modulu\n" +"konkrétně při extrémních jasech.\n" +"zvýšit, pokud jsou stíny a/nebo světla nedostatečně nasycené." + +#. Page OPTIONS +#: ../src/iop/filmicrgb.c:4675 +msgid "options" +msgstr "nastavení" + +#: ../src/iop/filmicrgb.c:4680 +msgid "" +"v3 is darktable 3.0 desaturation method, same as color balance.\n" +"v4 is a newer desaturation method, based on spectral purity of light." +msgstr "" +"v3 je metoda desaturace darktable 3.0, stejně jako vyvážení barev.\n" +"v4 je novější desaturační metoda, založená na spektrální čistotě světla." + +#: ../src/iop/filmicrgb.c:4684 +msgid "" +"ensure the original colors are preserved.\n" +"may reinforce chromatic aberrations and chroma noise,\n" +"so ensure they are properly corrected elsewhere." +msgstr "" +"zajistit zachování původních barev.\n" +"může posílit chromatické aberace a chroma šum,\n" +"takže se ujistěte, že jsou správně opraveny jinde." + +#: ../src/iop/filmicrgb.c:4693 +msgid "" +"choose the desired curvature of the filmic spline in highlights.\n" +"hard uses a high curvature resulting in more tonal compression.\n" +"soft uses a low curvature resulting in less tonal compression." +msgstr "" +"zvolte požadované zakřivení filmové křivky ve světlech.\n" +"tvrdá využívá vysoké zakřivení, což má za následek větší tonální kompresi.\n" +"měkká využívá nízké zakřivení, což má za následek menší tonální kompresi." + +#: ../src/iop/filmicrgb.c:4698 +msgid "" +"choose the desired curvature of the filmic spline in shadows.\n" +"hard uses a high curvature resulting in more tonal compression.\n" +"soft uses a low curvature resulting in less tonal compression." +msgstr "" +"zvolte požadované zakřivení filmové křivky ve stínech.\n" +"tvrdá využívá vysoké zakřivení, což má za následek větší tonální kompresi.\n" +"měkká využívá nízké zakřivení, což má za následek menší tonální kompresi." + +#: ../src/iop/filmicrgb.c:4705 +#, no-c-format +msgid "" +"enable to input custom middle-gray values.\n" +"this is not recommended in general.\n" +"fix the global exposure in the exposure module instead.\n" +"disable to use standard 18.45% middle gray." +msgstr "" +"povolit zadávání vlastních středně šedých hodnot.\n" +"to se obecně nedoporučuje.\n" +"místo toho opravte globální expozici v modulu expozice.\n" +"deaktivovat použití standardních 18,45 % střední šedé." + +#: ../src/iop/filmicrgb.c:4712 +msgid "" +"enable to auto-set the look hardness depending on the scene white and black " +"points.\n" +"this keeps the middle gray on the identity line and improves fast tuning.\n" +"disable if you want a manual control." +msgstr "" +"umožňují automatické nastavení tvrdosti vzhledu v závislosti na bílých a " +"černých bodech scény.\n" +"toto zachovává střední šedou na linii identity a zlepšuje rychlé ladění.\n" +"deaktivujte, pokud chcete ruční ovládání." + +#: ../src/iop/filmicrgb.c:4718 +msgid "" +"run extra passes of chromaticity reconstruction.\n" +"more iterations means more color propagation from neighborhood.\n" +"this will be slower but will yield more neutral highlights.\n" +"it also helps with difficult cases of magenta highlights." +msgstr "" +"spustit extra průchody rekonstrukce barevnosti.\n" +"více iterací znamená větší šíření barev ze sousedství.\n" +"to bude pomalejší, ale přinese to neutrálnější zvýraznění.\n" +"pomáhá také při obtížných případech purpurových odlesků." + +#: ../src/iop/filmicrgb.c:4725 +msgid "" +"add statistical noise in reconstructed highlights.\n" +"this avoids highlights to look too smooth\n" +"when the picture is noisy overall,\n" +"so they blend with the rest of the picture." +msgstr "" +"přidat statistický šum do rekonstruovaných světel.\n" +"tím se zabrání tomu, aby odlesky vypadaly příliš hladce\n" +"když je obraz celkově zašuměný,\n" +"takže splývají se zbytkem obrazu." + +#: ../src/iop/filmicrgb.c:4732 +msgid "" +"choose the statistical distribution of noise.\n" +"this is useful to match natural sensor noise pattern." +msgstr "" +"zvolte statistické rozložení šumu.\n" +"to je užitečné pro přizpůsobení přirozenému vzoru šumu snímače." + +#: ../src/iop/filmicrgb.c:4800 +msgid "mid-tones saturation" +msgstr "sytost středních tónů" + +#: ../src/iop/filmicrgb.c:4801 +msgid "" +"desaturates the output of the module\n" +"specifically at medium luminances.\n" +"increase if midtones are under-saturated." +msgstr "" +"desaturuje výstup modulu\n" +"konkrétně při středních jasech.\n" +"zvýšit, pokud mají střední tóny nízkou saturaci." + +#: ../src/iop/filmicrgb.c:4807 +msgid "highlights saturation mix" +msgstr "zvýrazní mix saturace" + +#: ../src/iop/filmicrgb.c:4808 +msgid "" +"positive values ensure saturation is kept unchanged over the whole range.\n" +"negative values bleach highlights at constant hue and luminance.\n" +"zero is an equal mix of both strategies." +msgstr "" +"kladné hodnoty zajišťují, že saturace zůstane nezměněna v celém rozsahu.\n" +"záporné hodnoty odbarví světla při konstantním odstínu a jasu.\n" +"nula je stejná kombinace obou strategií." + +#: ../src/iop/finalscale.c:39 +msgctxt "modulename" +msgid "scale into final size" +msgstr "škálovat do konečné velikosti" + +#: ../src/iop/flip.c:80 +msgid "rotation|flip" +msgstr "rotace|převrácení" + +#: ../src/iop/flip.c:110 +msgid "flip or rotate image by step of 90 degrees" +msgstr "převrátit nebo otočit obrázek o 90 stupňů" + +#: ../src/iop/flip.c:475 +msgid "no rotation" +msgstr "bez rotace" + +#: ../src/iop/flip.c:479 ../src/iop/flip.c:622 +msgid "flip horizontally" +msgstr "překlopit vodorovně" + +#: ../src/iop/flip.c:483 ../src/iop/flip.c:626 +msgid "flip vertically" +msgstr "převrátit vertikálně" + +#: ../src/iop/flip.c:487 +msgid "rotate by -90 degrees" +msgstr "otočit o -90 stupňů" + +#: ../src/iop/flip.c:491 +msgid "rotate by 90 degrees" +msgstr "otočit o 90 stupňů" + +#: ../src/iop/flip.c:495 +msgid "rotate by 180 degrees" +msgstr "otočit o 180 stupňů" + +#: ../src/iop/flip.c:610 +msgid "transform" +msgstr "transformace" + +#: ../src/iop/flip.c:614 ../src/libs/live_view.c:293 +msgid "rotate 90 degrees CCW" +msgstr "otočit o 90 stupňů proti směru hodinových ručiček" + +#: ../src/iop/flip.c:618 ../src/libs/live_view.c:294 +msgid "rotate 90 degrees CW" +msgstr "otočit o 90 stupňů po směru hodinových ručiček" + +#: ../src/iop/gamma.c:44 +msgctxt "modulename" +msgid "display encoding" +msgstr "zobrazit kódování" + +#: ../src/iop/globaltonemap.c:100 +msgid "global tonemap" +msgstr "globální mapa tónů" + +#: ../src/iop/globaltonemap.c:105 +msgid "this module is deprecated. please use the filmic rgb module instead." +msgstr "tento modul je zastaralý. místo toho použijte filmový rgb modul." + +#: ../src/iop/globaltonemap.c:658 ../src/libs/filters/colors.c:259 +msgid "operator" +msgstr "operátor" + +#: ../src/iop/globaltonemap.c:659 +msgid "the global tonemap operator" +msgstr "globální operátor tónové mapy" + +#: ../src/iop/globaltonemap.c:662 +msgid "" +"the bias for tonemapper controls the linearity, the higher the more details " +"in blacks" +msgstr "" +"zkreslení pro tonemapper řídí linearitu, čím vyšší, tím více detailů v černé" + +#: ../src/iop/globaltonemap.c:666 +msgid "the target light for tonemapper specified as cd/m2" +msgstr "cílové světlo pro tonemapper specifikované jako cd/m2" + +#: ../src/iop/graduatednd.c:67 +msgid "neutral gray ND2 (soft)" +msgstr "neutrální šedý ND2 (měkký)" + +#: ../src/iop/graduatednd.c:70 +msgid "neutral gray ND4 (soft)" +msgstr "neutrální šedý ND4 (měkký)" + +#: ../src/iop/graduatednd.c:73 +msgid "neutral gray ND8 (soft)" +msgstr "neutrální šedý ND8 (měkký)" + +#: ../src/iop/graduatednd.c:76 +msgid "neutral gray ND2 (hard)" +msgstr "neutrální šedý ND2 (tvrdý)" + +#: ../src/iop/graduatednd.c:80 +msgid "neutral gray ND4 (hard)" +msgstr "neutrální šedý ND4 (tvrdý)" + +#: ../src/iop/graduatednd.c:83 +msgid "neutral gray ND8 (hard)" +msgstr "neutrální šedý ND8 (tvrdý)" + +#: ../src/iop/graduatednd.c:87 +msgid "orange ND2 (soft)" +msgstr "oranžová ND2 (měkká)" + +#: ../src/iop/graduatednd.c:90 +msgid "yellow ND2 (soft)" +msgstr "žlutá ND2 (měkká)" + +#: ../src/iop/graduatednd.c:94 +msgid "purple ND2 (soft)" +msgstr "fialová ND2 (měkká)" + +#: ../src/iop/graduatednd.c:98 +msgid "green ND2 (soft)" +msgstr "zelený ND2 (měkký)" + +#: ../src/iop/graduatednd.c:102 +msgid "red ND2 (soft)" +msgstr "červená ND2 (měkký)" + +#: ../src/iop/graduatednd.c:105 +msgid "blue ND2 (soft)" +msgstr "modrý ND2 (měkký)" + +#: ../src/iop/graduatednd.c:109 +msgid "brown ND4 (soft)" +msgstr "hnědý ND4 (měkký)" + +#: ../src/iop/graduatednd.c:140 +msgid "graduated density" +msgstr "odstupňovaná hustota" + +#: ../src/iop/graduatednd.c:145 +msgid "simulate an optical graduated neutral density filter" +msgstr "simulovat optický odstupňovaný neutrální filtr" + +#: ../src/iop/graduatednd.c:1083 +msgid "the density in EV for the filter" +msgstr "hustota v EV pro filtr" + +#: ../src/iop/graduatednd.c:1088 +#, no-c-format +msgid "" +"hardness of graduation:\n" +"0% = soft, 100% = hard" +msgstr "" +"tvrdost stupnice:\n" +"0 % = měkká, 100 % = tvrdá" + +#: ../src/iop/graduatednd.c:1092 +msgid "rotation of filter -180 to 180 degrees" +msgstr "otočení filtru -180 až 180 stupňů" + +#: ../src/iop/graduatednd.c:1105 +msgid "select the hue tone of filter" +msgstr "vyberte barevný tón filtru" + +#: ../src/iop/graduatednd.c:1111 +msgid "select the saturation of filter" +msgstr "vyberte sytost filtru" + +#: ../src/iop/graduatednd.c:1122 +#, c-format +msgid "[%s on nodes] change line rotation" +msgstr "[%s na uzlech] změnit rotaci čáry" + +#: ../src/iop/graduatednd.c:1123 +#, c-format +msgid "[%s on line] move line" +msgstr "[%s na řádku] přesunout řádek" + +#: ../src/iop/graduatednd.c:1125 +#, c-format +msgid "[%s on line] change density" +msgstr "[%s na řádku] změnit hustotu" + +#: ../src/iop/graduatednd.c:1127 +#, c-format +msgid "[%s on line] change hardness" +msgstr "[%s na řádku] změnit tvrdost" + +#: ../src/iop/grain.c:444 +msgid "grain" +msgstr "zrno" + +#: ../src/iop/grain.c:449 +msgid "simulate silver grains from film" +msgstr "simulovat stříbrná zrna z filmu" + +#: ../src/iop/grain.c:600 +msgid "the grain size (~ISO of the film)" +msgstr "velikost zrna (~ISO filmu)" + +#: ../src/iop/grain.c:604 +msgid "the strength of applied grain" +msgstr "síla aplikovaného zrna" + +#: ../src/iop/grain.c:608 +msgid "" +"amount of mid-tones bias from the photographic paper response modeling. the " +"greater the bias, the more pronounced the fall off of the grain in shadows " +"and highlights" +msgstr "" +"míra zkreslení středních tónů z modelování odezvy fotografického papíru. čím " +"větší je vychýlení, tím výraznější vypadávání zrna ve stínech a světlech" + +#: ../src/iop/hazeremoval.c:100 +msgid "haze removal" +msgstr "odstranění oparu" + +#: ../src/iop/hazeremoval.c:106 +msgid "dehaze|defog|smoke|smog" +msgstr "opar|odmlžovat|kouř|smog" + +#: ../src/iop/hazeremoval.c:111 +msgid "remove fog and atmospheric hazing from pictures" +msgstr "odstraňte z obrázků mlhu a atmosférický zákal" + +#: ../src/iop/hazeremoval.c:204 +msgid "amount of haze reduction" +msgstr "snížení množství zákalu" + +#: ../src/iop/hazeremoval.c:206 +msgid "distance" +msgstr "vzdálenost" + +#: ../src/iop/hazeremoval.c:208 +msgid "limit haze removal up to a specific spatial depth" +msgstr "omezit odstraňování zákalu až do určité prostorové hloubky" + +#: ../src/iop/highlights.c:173 +msgid "highlight reconstruction" +msgstr "rekonstrukce světel" + +#: ../src/iop/highlights.c:178 +msgid "avoid magenta highlights and try to recover highlights colors" +msgstr "vyhněte se purpurovým odleskům a pokuste se obnovit světlé barvy" + +#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:77 +msgid "reconstruction, raw" +msgstr "rekonstrukce, raw" + +#: ../src/iop/highlights.c:1004 +msgid "" +"highlights: mode not available for this type of image. falling back to " +"inpaint opposed." +msgstr "" +"zvýraznění: režim není pro tento typ snímku dostupný. vracím zpět k malování " +"proti." + +#: ../src/iop/highlights.c:1184 +msgid "highlight reconstruction method" +msgstr "meotoda rekonstrukce světel" + +#: ../src/iop/highlights.c:1189 +msgid "" +"manually adjust the clipping threshold mostly used against magenta " +"highlights.\n" +"you might use this for tuning 'laplacian', 'inpaint opposed' or " +"'segmentation' modes,\n" +"especially if camera white point is incorrect." +msgstr "" +"ručně upravit práh oříznutí, který se většinou používá proti purpurovým " +"světlům.\n" +"můžete to použít pro ladění režimů 'laplacia', 'inpaint opposed' nebo " +"'segmentace',\n" +"zvláště pokud je vyvážení bílé od kamery nesprávné." + +#: ../src/iop/highlights.c:1193 +msgid "" +"visualize clipped highlights in a false color representation.\n" +"the effective clipping level also depends on the reconstruction method." +msgstr "" +"vizualizovat oříznutá světla ve špatně prezentovaných barvách.\n" +"efektivní úroveň oříznutí také závisí na metodě rekonstrukce." + +#: ../src/iop/highlights.c:1203 +msgid "" +"combine closely related clipped segments by morphological operations.\n" +"this often leads to improved color reconstruction for tiny segments before " +"dark background." +msgstr "" +"kombinovat úzce související oříznuté segmenty pomocí morfologických " +"operací.\n" +"to často vede k lepší rekonstrukci barev pro malé segmenty před tmavým " +"pozadím." + +#: ../src/iop/highlights.c:1206 +msgid "visualize the combined segments in a false color representation." +msgstr "vizualizovat kombinované segmenty ve špatně prezentovaných barvách." + +#: ../src/iop/highlights.c:1213 +msgid "" +"select inpainting after segmentation analysis.\n" +"increase to favor candidates found in segmentation analysis, decrease for " +"opposed means inpainting." +msgstr "" +"vyberte malbu po segmentační analýze.\n" +"zvýšení ve prospěch kandidátů nalezených v segmentační analýze, snížení pro " +"opačné prostředky v malbě." + +#: ../src/iop/highlights.c:1216 +msgid "" +"visualize segments that are considered to have a good candidate in a false " +"color representation." +msgstr "" +"vizualizujte segmenty, které jsou považovány za vhodného kandidáta, v " +"nesprávně reprezentovaných barvách." + +#: ../src/iop/highlights.c:1225 +msgid "" +"approximate lost data in regions with all photosites clipped, the effect " +"depends on segment size and border gradients.\n" +"choose a mode tuned for segment size or the generic mode that tries to find " +"best settings for every segment.\n" +"small means areas with a diameter less than 25 pixels, large is best for " +"greater than 100.\n" +"the flat modes ignore narrow unclipped structures (like powerlines) to keep " +"highlights rebuilt and avoid gradients." +msgstr "" +"přibližná ztracená data v oblastech se všemi oříznutými fotolokacemi, efekt " +"závisí na velikosti segmentu a přechodech ohraničení.\n" +"vyberte režim vyladěný pro velikost segmentu nebo obecný režim, který se " +"snaží najít nejlepší nastavení pro každý segment.\n" +"malý znamená oblasti s průměrem menším než 25 pixelů, velký je nejlepší pro " +"větší než 100.\n" +"ploché režimy ignorují úzké neoříznuté struktury (jako jsou siločáry), aby " +"zůstala světla přestavěná a aby se zabránilo přechodům." + +#: ../src/iop/highlights.c:1231 +msgid "set strength of rebuilding in regions with all photosites clipped." +msgstr "nastavte sílu přestavby v regionech se všemi oříznutými fotomísty." + +#: ../src/iop/highlights.c:1233 +msgid "show the effect that is added to already reconstructed data." +msgstr "ukázat efekt, který je přidán k již rekonstruovaným datům." + +#: ../src/iop/highlights.c:1242 +msgid "" +"add noise to visually blend the reconstructed areas\n" +"into the rest of the noisy image. useful at high ISO." +msgstr "" +"přidat šum, aby se vizuálně smíchaly rekonstruované oblasti\n" +"do zbytku zašuměného obrazu. Užitečné při vysokém ISO." + +#: ../src/iop/highlights.c:1246 +msgid "" +"increase if magenta highlights don't get fully corrected\n" +"each new iteration brings a performance penalty." +msgstr "" +"zvyšuj, dokud se purpurová světla úplně neopraví\n" +"každé další opakování snižuje výkonnost." + +#: ../src/iop/highlights.c:1251 +msgid "" +"increase if magenta highlights don't get fully corrected.\n" +"this may produce non-smooth boundaries between valid and clipped regions." +msgstr "" +"zvýšit, pokud purpurová světla nejsou plně opravena.\n" +"to může způsobit nehladké hranice mezi platnými a oříznutými oblastmi." + +#: ../src/iop/highlights.c:1255 +msgid "" +"increase to correct larger clipped areas.\n" +"large values bring huge performance penalties" +msgstr "" +"zvyšuj pro opravu větších oříznutých oblastí.\n" +"velké hodnoty přinášejí obrovské výkonnostní pokuty" + +#: ../src/iop/highlights.c:1259 +msgid "this module does not work with monochrome RAW files" +msgstr "tento modul nepracuje s monochromatickými soubory RAW" + +#: ../src/iop/highpass.c:72 +msgid "highpass" +msgstr "horní propust" + +#: ../src/iop/highpass.c:77 +msgid "isolate high frequencies in the image" +msgstr "izolovat vysoké frekvence v obraze" + +#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:107 +msgid "linear or non-linear, Lab, scene-referred" +msgstr "lineární nebo nelineární, Lab, s odkazem na scénu" + +#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:108 ../src/iop/sharpen.c:98 +msgid "frequential, Lab" +msgstr "frekvenční, Lab" + +#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:109 +msgid "special, Lab, scene-referred" +msgstr "speciální, Lab, s odkazem na scénu" + +#: ../src/iop/highpass.c:378 +msgid "the sharpness of highpass filter" +msgstr "ostrost horní propusti" + +#: ../src/iop/highpass.c:382 +msgid "the contrast of highpass filter" +msgstr "kontrast horní propusti" + +#: ../src/iop/hotpixels.c:69 +msgid "hot pixels" +msgstr "přepálené body" + +#: ../src/iop/hotpixels.c:74 +msgid "remove abnormally bright pixels by dampening them with neighbors" +msgstr "odstraňte abnormálně jasné pixely jejich tlumením sousedními" + +#: ../src/iop/hotpixels.c:442 +#, c-format +msgid "fixed %d pixel" +msgid_plural "fixed %d pixels" +msgstr[0] "opraven %d bod" +msgstr[1] "opraveno %d body" +msgstr[2] "opraveno %d bodů" + +#: ../src/iop/hotpixels.c:465 +msgid "lower threshold for hot pixel" +msgstr "spodní práh pro přepálené body" + +#: ../src/iop/hotpixels.c:469 +msgid "strength of hot pixel correction" +msgstr "síla korekce přepálených bodů" + +#: ../src/iop/hotpixels.c:485 +msgid "" +"hot pixel correction\n" +"only works for raw images." +msgstr "" +"korekce přepálených bodů\n" +"funguje pouze pro raw obrázky." + +#: ../src/iop/invert.c:106 ../src/iop/invert.c:442 +#, c-format +msgid "`%s' color matrix not found for 4bayer image" +msgstr "Barevná matice `%s' nebyla nalezena pro 4bayer obrázek" + +#: ../src/iop/invert.c:125 +msgid "invert" +msgstr "invertovat" + +#: ../src/iop/invert.c:130 +msgid "this module is deprecated. please use the negadoctor module instead." +msgstr "tento modul je zastaralý. místo toho použijte modul filmové negativy." + +#: ../src/iop/invert.c:135 +msgid "invert film negatives" +msgstr "invertovat filmové negativy" + +#: ../src/iop/invert.c:137 ../src/iop/invert.c:139 +msgid "linear, raw, display-referred" +msgstr "lineární, raw, s odkazem na displej" + +#. Here we could provide more for monochrome special cases. As no monochrome camera +#. has a bayer sensor we don't need g->RGB_to_CAM and g->CAM_to_RGB corrections +#: ../src/iop/invert.c:427 +msgid "brightness of film material" +msgstr "jas filmového materiálu" + +#: ../src/iop/invert.c:431 +msgid "color of film material" +msgstr "barva filmového materiálu" + +#: ../src/iop/invert.c:515 ../src/iop/negadoctor.c:866 +msgid "pick color of film material from image" +msgstr "vybrat barvu filmového materiálu z obrázku" + +#: ../src/iop/invert.c:517 +msgid "select color of film material" +msgstr "vyberte barvu filmového materiálu" + +#: ../src/iop/lens.cc:251 +msgid "lens correction" +msgstr "korekce objektivu" + +#: ../src/iop/lens.cc:256 +msgid "vignette|chromatic aberrations|distortion" +msgstr "vinětace|chromatické aberace|zkreslení" + +#: ../src/iop/lens.cc:261 +msgid "correct lenses optical flaws" +msgstr "opravit optické vady objektivů" + +#: ../src/iop/lens.cc:264 +msgid "geometric and reconstruction, RGB" +msgstr "geometrické a rekonstrukce, RGB" + +#: ../src/iop/lens.cc:3773 +#, c-format +msgid "" +"maker:\t\t%s\n" +"model:\t\t%s%s\n" +"mount:\t\t%s\n" +"crop factor:\t%.1f" +msgstr "" +"výrobce: \t\t%s\n" +"model: \t\t%s%s\n" +"montáž: \t\t%s\n" +"crop factor: \t%.1f" + +#: ../src/iop/lens.cc:4026 +#, c-format +msgid "" +"maker:\t\t%s\n" +"model:\t\t%s\n" +"focal range:\t%s\n" +"aperture:\t%s\n" +"crop factor:\t%.1f\n" +"type:\t\t%s\n" +"mounts:\t%s" +msgstr "" +"výrobce: \t\t%s\n" +"model: \t\t%s\n" +"ohniskový rozsah: \t%s\n" +"clona: \t\t%s\n" +"crop factor: \t%.1f\n" +"typ: \t\t%s\n" +"montáž: \t%s" + +#: ../src/iop/lens.cc:4072 +msgid "focal length (mm)" +msgstr "ohnisková vzdálenost (mm)" + +#: ../src/iop/lens.cc:4098 +msgid "f/" +msgstr "f/" + +#: ../src/iop/lens.cc:4099 +msgid "f-number (aperture)" +msgstr "clonové číslo (clona)" + +#: ../src/iop/lens.cc:4115 +msgid "d" +msgstr "d" + +#: ../src/iop/lens.cc:4116 +msgid "distance to subject" +msgstr "vzdálenost k předmětu" + +#: ../src/iop/lens.cc:4277 +msgid "camera/lens not found" +msgstr "fotoaparát/objektiv nenalezen" + +#: ../src/iop/lens.cc:4278 +msgid "" +"please select your lens manually\n" +"you might also want to check if your Lensfun database is up-to-date\n" +"by running lensfun-update-data" +msgstr "" +"vyberte prosím svůj objektiv ručně\n" +"můžete také zkontrolovat, zda je vaše databáze Lensfun aktuální\n" +"spuštěním lensfun-update-data" + +#: ../src/iop/lens.cc:4423 +msgid "camera model" +msgstr "model fotoaparátu" + +#: ../src/iop/lens.cc:4428 +msgid "find camera" +msgstr "najít fotoaparát" + +#: ../src/iop/lens.cc:4443 +msgid "find lens" +msgstr "najít objektiv" + +#. scale +#: ../src/iop/lens.cc:4477 ../src/iop/vignette.c:1055 +#: ../src/iop/watermark.c:1372 ../src/libs/export.c:1264 +msgid "scale" +msgstr "měřítko" + +#: ../src/iop/lens.cc:4482 +msgid "auto scale" +msgstr "automatické měřítko" + +#: ../src/iop/lens.cc:4484 +msgid "automatic scale to available image size due to Lensfun data" +msgstr "automatické měřítko na dostupnou velikost obrázku díky datům Lensfun" + +#: ../src/iop/lens.cc:4488 +msgid "correct distortions or apply them" +msgstr "opravit deformace nebo je použít" + +#: ../src/iop/lens.cc:4495 +msgid "transversal chromatic aberration red" +msgstr "příčná chromatická aberace červená" + +#: ../src/iop/lens.cc:4499 +msgid "transversal chromatic aberration blue" +msgstr "příčná chromatická aberace modrá" + +#: ../src/iop/lens.cc:4509 +msgid "use latest algorithm" +msgstr "použít nejnovější algoritmus" + +#: ../src/iop/lens.cc:4511 +msgid "" +"you're using an old version of the algorithm.\n" +"once enabled, you won't be able to\n" +"return back to old algorithm." +msgstr "" +"používáte starou verzi algoritmu.\n" +"jakmile bude povoleno, nebudete se moci\n" +"vrátit se ke starému algoritmu." + +#: ../src/iop/lens.cc:4521 +msgid "fine-tuning" +msgstr "jemné ladění" + +#. DT_IOP_SECTION_FOR_PARAMS doesn't work in C++ so create section module manually +#: ../src/iop/lens.cc:4526 +msgid "fine-tune" +msgstr "jemné doladění" + +#: ../src/iop/lens.cc:4532 +msgid "tune the warp and chromatic aberration correction" +msgstr "dolaďte korekci deformace a chromatické aberace" + +#: ../src/iop/lens.cc:4536 +msgid "tune the vignette correction" +msgstr "upravit korekci vinětace" + +#: ../src/iop/lens.cc:4540 +msgid "tune the TCA red correction" +msgstr "dolaďte korekci na červenou TCA" + +#: ../src/iop/lens.cc:4544 +msgid "tune the TCA blue correction" +msgstr "dolaďte korekci TCA modré" + +#: ../src/iop/lens.cc:4551 +msgid "image scaling" +msgstr "škálování obrazu" + +#: ../src/iop/lens.cc:4553 +msgid "automatic scale to available image size" +msgstr "automatické měřítko na dostupnou velikost obrázku" + +#: ../src/iop/lens.cc:4561 +msgid "" +"select a correction mode either based on\n" +" a) data and algorithms provided by the Lensfun project\n" +" b) embedded metadata provided by the camera or software vendor" +msgstr "" +"vyberte režim korekce buď na základě\n" +" a) data a algoritmy poskytované projektem Lensfun\n" +" b) vložená metadata poskytnutá fotoaparátem nebo dodavatelem softwaru" + +#: ../src/iop/lens.cc:4568 +msgid "which corrections to apply" +msgstr "jaké opravy použít" + +#: ../src/iop/lens.cc:4574 +msgid "corrections done: " +msgstr "provedené opravy: " + +#: ../src/iop/lens.cc:4576 +msgid "which corrections have actually been done" +msgstr "jaké opravy byly skutečně provedeny" + +#: ../src/iop/lens.cc:4595 +msgid "manual vignette correction" +msgstr "ruční korekce vinětace" + +#: ../src/iop/lens.cc:4599 +msgid "additional manually controlled optical vignetting correction" +msgstr "přídavná ručně řízená optická korekce vinětace" + +#: ../src/iop/lens.cc:4602 +msgid "vignette" +msgstr "vinětace" + +#: ../src/iop/lens.cc:4606 +msgid "amount of the applied optical vignetting correction" +msgstr "množství použité optické korekce vinětace" + +#: ../src/iop/lens.cc:4608 +msgid "show applied optical vignette correction mask" +msgstr "zobrazit použitou masku pro korekci optické vinětace" + +#: ../src/iop/lens.cc:4618 +msgid "radius of uncorrected centre" +msgstr "poloměr nekorigovaného středu" + +#: ../src/iop/lens.cc:4624 +msgid "steepness of the correction effect outside of radius" +msgstr "strmost korekčního účinku mimo rádius" + +#: ../src/iop/levels.c:112 +msgid "this module is deprecated. please use the RGB levels module instead." +msgstr "tento modul je zastaralý. místo toho použijte modul úrovní RGB." + +#: ../src/iop/levels.c:117 ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1022 +#: ../src/iop/rgblevels.c:1056 +msgid "levels" +msgstr "úrovně" + +#: ../src/iop/levels.c:139 +msgid "adjust black, white and mid-gray points" +msgstr "upravte černé, bílé a středně šedé body" + +#: ../src/iop/levels.c:644 ../src/iop/rgblevels.c:1059 +msgid "" +"drag handles to set black, gray, and white points. operates on L channel." +msgstr "" +"přetažením úchytů nastavte černé, šedé a bílé body. funguje na L kanálu." + +#: ../src/iop/levels.c:658 ../src/iop/rgblevels.c:1108 +msgid "apply auto levels" +msgstr "použít automatické úrovně" + +#: ../src/iop/levels.c:662 ../src/iop/rgblevels.c:1077 +msgid "pick black point from image" +msgstr "vybrat černý bod z obrázku" + +#: ../src/iop/levels.c:666 ../src/iop/rgblevels.c:1085 +msgid "pick medium gray point from image" +msgstr "vyberte z obrázku středně šedý bod" + +#: ../src/iop/levels.c:670 ../src/iop/rgblevels.c:1093 +msgid "pick white point from image" +msgstr "vyberte z obrázku bílý bod" + +#: ../src/iop/levels.c:683 ../src/iop/rgblevels.c:968 +#: ../src/iop/rgblevels.c:1075 +msgid "black" +msgstr "černá" + +#: ../src/iop/levels.c:684 +msgid "black percentile" +msgstr "černý percentil" + +#: ../src/iop/levels.c:688 +msgid "gray percentile" +msgstr "šedý percentil" + +#: ../src/iop/levels.c:691 ../src/iop/rgblevels.c:970 +#: ../src/iop/rgblevels.c:1091 +msgid "white" +msgstr "bílá" + +#: ../src/iop/levels.c:692 +msgid "white percentile" +msgstr "bílý percentil" + +#: ../src/iop/liquify.c:291 +msgid "liquify" +msgstr "zkapalnit" + +#: ../src/iop/liquify.c:296 +msgid "distort parts of the image" +msgstr "zkreslit části obrázku" + +#: ../src/iop/liquify.c:2895 +msgid "click to edit nodes" +msgstr "kliknutím upravte uzly" + +#: ../src/iop/liquify.c:3599 +msgid "" +"add point: click and drag\n" +"size: scroll - strength: shift+scroll - direction: " +"ctrl+scroll" +msgstr "" +"přidat bod: klik a přetáhnout\n" +"velikost: rolování - síla: shift+scrolování - směr: " +"ctrl+scrolování" + +#: ../src/iop/liquify.c:3602 +msgid "" +"add line: click\n" +"size: scroll - strength: shift+scroll - direction: " +"ctrl+scroll" +msgstr "" +"přidat řádek: klik\n" +"velikost: scrolování - síla: shift+scrolování - směr: " +"ctrl+scrolování" + +#: ../src/iop/liquify.c:3605 +msgid "" +"add curve: click\n" +"size: scroll - strength: shift+scroll - direction: " +"ctrl+scroll" +msgstr "" +"přidat křivku: klik\n" +"velikost: scrolování - síla: shift+scrolování - směr: " +"ctrl+scrolování" + +#: ../src/iop/liquify.c:3656 +msgid "" +"use a tool to add warps\n" +"remove a warp: right-click" +msgstr "" +"použijte nástroj pro přidání osnov\n" +"odstranění deformace: klik pravým tlačítkem" + +#: ../src/iop/liquify.c:3659 +msgid "warps|nodes count:" +msgstr "zvlnění|počet uzlů:" + +#: ../src/iop/liquify.c:3668 +msgid "edit, add and delete nodes" +msgstr "upravovat, přidávat a mazat uzly" + +#: ../src/iop/liquify.c:3673 ../src/iop/liquify.c:3679 +#: ../src/iop/liquify.c:3685 ../src/iop/retouch.c:2465 +#: ../src/iop/retouch.c:2471 ../src/iop/retouch.c:2476 +#: ../src/iop/retouch.c:2481 ../src/iop/spots.c:885 ../src/iop/spots.c:890 +#: ../src/iop/spots.c:895 ../src/libs/masks.c:1812 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1830 ../src/libs/masks.c:1839 ../src/libs/masks.c:1848 +msgid "shapes" +msgstr "tvary" + +#: ../src/iop/liquify.c:3674 +msgid "draw curves" +msgstr "kreslit křivky" + +#: ../src/iop/liquify.c:3674 +msgid "draw multiple curves" +msgstr "nakreslit více křivek" + +#: ../src/iop/liquify.c:3680 +msgid "draw lines" +msgstr "kreslit čáry" + +#: ../src/iop/liquify.c:3680 +msgid "draw multiple lines" +msgstr "nakreslit více čar" + +#: ../src/iop/liquify.c:3686 +msgid "draw points" +msgstr "kreslit body" + +#: ../src/iop/liquify.c:3686 +msgid "draw multiple points" +msgstr "nakreslit více bodů" + +#: ../src/iop/liquify.c:3692 +msgid "" +"add node: ctrl+click - remove path: right click\n" +"toggle line/curve: ctrl+alt+click" +msgstr "" +"přidat uzel: ctrl+klik - odebrat cestu: pravý klik\n" +"přepíná čáry/křivky: ctrl+alt+klik" + +#: ../src/iop/liquify.c:3695 +msgid "" +"move: click and drag - show/hide feathering controls: click\n" +"autosmooth, cusp, smooth, symmetrical: ctrl+click - remove: " +"right click" +msgstr "" +"přesunout: klik a přetáhnout - zobrazit/skrýt ovládací prvky " +"prolnutí: klik\n" +"automaticky vyhladit, vrcholové, vyhlazené, symetrické: ctrl+klik - " +"odstranit: pravý klik" + +#: ../src/iop/liquify.c:3699 ../src/iop/liquify.c:3701 +msgid "shape of path: drag" +msgstr "tvar cesty: přetáhnout" + +#: ../src/iop/liquify.c:3703 +msgid "radius: drag" +msgstr "poloměr: táhnout" + +#: ../src/iop/liquify.c:3705 +msgid "hardness (center): drag" +msgstr "tvrdost (uprostřed): táhnout" + +#: ../src/iop/liquify.c:3707 +msgid "hardness (feather): drag" +msgstr "tvrdost (roztřepení): táhnout" + +#: ../src/iop/liquify.c:3709 +msgid "" +"strength: drag\n" +"linear, grow, and shrink: ctrl+click" +msgstr "" +"síla: tažení\n" +"lineární, zvětšování a zmenšování: ctrl+klik" + +#: ../src/iop/lowlight.c:86 +msgid "lowlight vision" +msgstr "vidění při slabém světle" + +#: ../src/iop/lowlight.c:91 +msgid "simulate human night vision" +msgstr "simulovat lidské noční vidění" + +#: ../src/iop/lowlight.c:94 +msgid "linear, XYZ" +msgstr "lineární, XYZ" + +#: ../src/iop/lowlight.c:338 +msgid "indoor bright" +msgstr "vnitřní světlý" + +#: ../src/iop/lowlight.c:356 +msgid "indoor dim" +msgstr "vnitřní tlumený" + +#: ../src/iop/lowlight.c:374 +msgid "indoor dark" +msgstr "vnitřní tmavý" + +#: ../src/iop/lowlight.c:392 +msgid "twilight" +msgstr "soumrak" + +#: ../src/iop/lowlight.c:410 +msgid "night street lit" +msgstr "osvětlená noční ulice" + +#: ../src/iop/lowlight.c:428 +msgid "night street" +msgstr "noční ulice" + +#: ../src/iop/lowlight.c:446 +msgid "night street dark" +msgstr "temná noční ulice" + +#: ../src/iop/lowlight.c:465 +msgid "night" +msgstr "noc" + +#: ../src/iop/lowlight.c:639 +msgid "dark" +msgstr "tmavý" + +#: ../src/iop/lowlight.c:647 +msgid "bright" +msgstr "jas" + +#: ../src/iop/lowlight.c:656 +msgid "day vision" +msgstr "denní vidění" + +#: ../src/iop/lowlight.c:661 +msgid "night vision" +msgstr "noční vidění" + +#: ../src/iop/lowlight.c:833 +msgid "blueness in shadows" +msgstr "modrost ve stínech" + +#: ../src/iop/lowpass.c:100 +msgid "lowpass" +msgstr "dolní propust" + +#: ../src/iop/lowpass.c:105 +msgid "isolate low frequencies in the image" +msgstr "izolujte v obraze nízké frekvence" + +#: ../src/iop/lowpass.c:578 +msgid "local contrast mask" +msgstr "maska lokálního kontrastu" + +#: ../src/iop/lowpass.c:603 +msgid "radius of gaussian/bilateral blur" +msgstr "poloměr gaussovského/bilaterálního rozostření" + +#: ../src/iop/lowpass.c:604 +msgid "contrast of lowpass filter" +msgstr "kontrast dolní propusti" + +#: ../src/iop/lowpass.c:605 +msgid "brightness adjustment of lowpass filter" +msgstr "nastavení jasu dolní propusti" + +#: ../src/iop/lowpass.c:606 +msgid "color saturation of lowpass filter" +msgstr "sytost barev dolní propusti" + +#: ../src/iop/lowpass.c:607 +msgid "which filter to use for blurring" +msgstr "jaký filtr použít pro rozmazání" + +#: ../src/iop/lut3d.c:136 +msgid "LUT 3D" +msgstr "LUT 3D" + +#: ../src/iop/lut3d.c:141 +msgid "perform color space corrections and apply look" +msgstr "provádět korekce barevného prostoru a aplikovat vzhled" + +#: ../src/iop/lut3d.c:144 +msgid "defined by profile, RGB" +msgstr "definovaný profilem, RGB" + +#: ../src/iop/lut3d.c:486 +msgid "error allocating buffer for gmz LUT" +msgstr "chyba při přidělování vyrovnávací paměti pro gmz LUT" + +#: ../src/iop/lut3d.c:512 +#, c-format +msgid "invalid png file %s" +msgstr "neplatný soubor png %s" + +#: ../src/iop/lut3d.c:520 +#, c-format +msgid "png bit depth %d is not supported" +msgstr "bitová hloubka png %d není podporována" + +#: ../src/iop/lut3d.c:534 ../src/iop/lut3d.c:544 +#, c-format +msgid "invalid level in png file %d %d" +msgstr "neplatná úroveň v souboru png %d %d" + +#: ../src/iop/lut3d.c:539 +msgid "this darktable build is not compatible with compressed CLUT" +msgstr "toto sestavení darktable není kompatibilní s komprimovaným CLUT" + +#: ../src/iop/lut3d.c:556 ../src/iop/lut3d.c:808 +#, c-format +msgid "error - LUT 3D size %d exceeds the maximum supported" +msgstr "chyba - velikost LUT 3D %d překračuje maximální podporovanou velikost" + +#: ../src/iop/lut3d.c:568 +msgid "error allocating buffer for png LUT" +msgstr "chyba při přidělování vyrovnávací paměti pro png LUT" + +#: ../src/iop/lut3d.c:576 +#, c-format +msgid "error - could not read png image %s" +msgstr "chyba - nelze přečíst obrázek png %s" + +#: ../src/iop/lut3d.c:586 +msgid "error - allocating buffer for png LUT" +msgstr "chyba - přidělování vyrovnávací paměti pro png LUT" + +#: ../src/iop/lut3d.c:761 +#, c-format +msgid "error - invalid cube file: %s" +msgstr "chyba - neplatný soubor krychle: %s" + +#: ../src/iop/lut3d.c:775 +msgid "DOMAIN MIN other than 0 is not supported" +msgstr "DOMAIN MIN jiné než 0 není podporováno" + +#: ../src/iop/lut3d.c:787 +msgid "DOMAIN MAX other than 1 is not supported" +msgstr "DOMAIN MAX jiný než 1 není podporován" + +#: ../src/iop/lut3d.c:797 +msgid "1D cube LUT is not supported" +msgstr "1D kostka LUT není podporována" + +#: ../src/iop/lut3d.c:819 +msgid "error - allocating buffer for cube LUT" +msgstr "chyba - alokace vyrovnávací paměti pro cube LUT" + +#: ../src/iop/lut3d.c:830 +msgid "error - cube LUT size is not defined" +msgstr "chyba - velikost kostky LUT není definována" + +#: ../src/iop/lut3d.c:841 +#, c-format +msgid "error - cube LUT invalid number line %d" +msgstr "chyba - kostka LUT neplatné číslo řádek %d" + +#: ../src/iop/lut3d.c:857 +#, c-format +msgid "error - cube LUT lines number %d is not correct, should be %d" +msgstr "chyba - číslo řádků LUT krychle %d není správné, mělo by být %d" + +#: ../src/iop/lut3d.c:867 +#, c-format +msgid "warning - cube LUT has %d values out of range [0,1]" +msgstr "varování - kostka LUT má %d hodnot mimo rozsah [0,1]" + +#: ../src/iop/lut3d.c:892 +#, c-format +msgid "error - invalid 3dl file: %s" +msgstr "chyba - neplatný soubor 3dl: %s" + +#: ../src/iop/lut3d.c:913 +#, c-format +msgid "error - the maximum shaper LUT value %d is too low" +msgstr "chyba - maximální hodnota LUT tvarovače %d je příliš nízká" + +#: ../src/iop/lut3d.c:924 +msgid "error - allocating buffer for 3dl LUT" +msgstr "chyba - alokace bufferu pro 3dl LUT" + +#: ../src/iop/lut3d.c:937 +msgid "error - 3dl LUT size is not defined" +msgstr "chyba - 3dl velikost LUT není definována" + +#: ../src/iop/lut3d.c:965 +msgid "error - 3dl LUT lines number is not correct" +msgstr "chyba - počet řádků 3dl LUT není správný" + +#: ../src/iop/lut3d.c:981 +msgid "error - the maximum LUT value does not match any valid bit depth" +msgstr "chyba - maximální hodnota LUT neodpovídá žádné platné bitové hloubce" + +#: ../src/iop/lut3d.c:1553 +msgid "LUT root folder not defined" +msgstr "kořenová složka pro LUT není definována" + +#: ../src/iop/lut3d.c:1559 +msgid "select LUT file" +msgstr "výběr LUT souboru" + +#: ../src/iop/lut3d.c:1560 +msgid "_select" +msgstr "_vybrat" + +#: ../src/iop/lut3d.c:1580 +msgid "hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" +msgstr "hald CLUT (png), 3D LUT (cube or 3dl) nebo gmic komprimovaný LUT (gmz)" + +#: ../src/iop/lut3d.c:1582 +msgid "hald CLUT (png) or 3D LUT (cube or 3dl)" +msgstr "hald CLUT (png) nebo 3D LUT (kostka nebo 3dl)" + +#: ../src/iop/lut3d.c:1606 +msgid "select file outside LUT root folder is not allowed" +msgstr "výběr souboru mimo kořenovou složku LUT není povolen" + +#: ../src/iop/lut3d.c:1677 +msgid "" +"select a png (haldclut), a cube, a 3dl or a gmz (compressed LUT) file " +"CAUTION: 3D LUT folder must be set in preferences/processing before choosing " +"the LUT file" +msgstr "" +"vyberte soubor png (haldclut), krychli, 3dl nebo gmz (komprimovaný LUT) " +"POZOR: Před výběrem souboru LUT je nutné nastavit složku 3D LUT v " +"předvolbách/zpracování" + +#: ../src/iop/lut3d.c:1681 +msgid "" +"select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be " +"set in preferences/processing before choosing the LUT file" +msgstr "" +"vyberte soubor png (haldclut), krychli nebo 3dl POZOR: Před výběrem souboru " +"LUT je nutné nastavit složku 3D LUT v předvolbách/zpracování" + +#: ../src/iop/lut3d.c:1693 +msgid "" +"the file path (relative to LUT folder) is saved with image along with the " +"LUT data if it's a compressed LUT (gmz)" +msgstr "" +"cesta k souboru (vzhledem ke složce LUT) se uloží s obrázkem spolu s daty " +"LUT, pokud se jedná o komprimovaný LUT (gmz)" + +#: ../src/iop/lut3d.c:1696 +msgid "" +"the file path (relative to LUT folder) is saved with image (and not the LUT " +"data themselves)" +msgstr "" +"cesta k souboru (vzhledem ke složce LUT) je uložena s obrázkem (a nikoli " +"samotnými daty LUT)" + +#: ../src/iop/lut3d.c:1705 +msgid "enter LUT name" +msgstr "zadejte název LUT" + +#: ../src/iop/lut3d.c:1726 +msgid "select the LUT" +msgstr "vyberte LUT" + +#: ../src/iop/lut3d.c:1739 +msgid "select the color space in which the LUT has to be applied" +msgstr "vyberte barevný prostor, ve kterém se má LUT použít" + +#: ../src/iop/lut3d.c:1741 +msgid "interpolation" +msgstr "interpolace" + +#: ../src/iop/lut3d.c:1742 +msgid "select the interpolation method" +msgstr "vyberte metodu interpolace" + +#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:63 +msgid "mask manager" +msgstr "správce masek" + +#: ../src/iop/monochrome.c:99 +msgid "quickly convert an image to black & white using a variable color filter" +msgstr "" +"rychle převést obrázek na černobílý pomocí variabilního barevného filtru" + +#: ../src/iop/monochrome.c:153 +msgid "red filter" +msgstr "červený filtr" + +#: ../src/iop/monochrome.c:568 +msgid "drag and scroll mouse wheel to adjust the virtual color filter" +msgstr "tažením a rolováním kolečka myši upravte virtuální barevný filtr" + +#: ../src/iop/monochrome.c:584 +msgid "how much to keep highlights" +msgstr "jak moc zachovat světla" + +#: ../src/iop/negadoctor.c:135 +msgid "negadoctor" +msgstr "filmové negativy" + +#: ../src/iop/negadoctor.c:140 +msgid "film|invert|negative|scan" +msgstr "film|invertovat|negativní|skenovat" + +#: ../src/iop/negadoctor.c:145 +msgid "invert film negative scans and simulate printing on paper" +msgstr "invertovat filmové negativy a simulovat tisk na papír" + +#: ../src/iop/negadoctor.c:483 +msgid "D min" +msgstr "D min" + +#: ../src/iop/negadoctor.c:489 ../src/iop/negadoctor.c:875 +msgid "D min red component" +msgstr "D min červená složka" + +#. Page FILM PROPERTIES +#: ../src/iop/negadoctor.c:851 +msgid "film properties" +msgstr "vlastnosti filmu" + +#. Dmin +#: ../src/iop/negadoctor.c:855 +msgctxt "section" +msgid "color of the film base" +msgstr "barva podkladu filmu" + +#: ../src/iop/negadoctor.c:861 +msgid "select color of film material from a swatch" +msgstr "vyberte barvu filmového materiálu ze vzorníku" + +#: ../src/iop/negadoctor.c:867 +msgid "film material" +msgstr "filmový materiál" + +#: ../src/iop/negadoctor.c:876 ../src/iop/negadoctor.c:886 +#: ../src/iop/negadoctor.c:896 +msgid "" +"adjust the color and shade of the film transparent base.\n" +"this value depends on the film material, \n" +"the chemical fog produced while developing the film,\n" +"and the scanner white balance." +msgstr "" +"upravte barvu a odstín průhledné základny filmu.\n" +"tato hodnota závisí na materiálu filmu,\n" +"chemická mlha produkovaná při vyvolávání filmu,\n" +"a vyvážení bílé skeneru." + +#: ../src/iop/negadoctor.c:885 +msgid "D min green component" +msgstr "D min zelená složka" + +#: ../src/iop/negadoctor.c:895 +msgid "D min blue component" +msgstr "D min modrá složka" + +#. D max and scanner bias +#: ../src/iop/negadoctor.c:903 +msgctxt "section" +msgid "dynamic range of the film" +msgstr "dynamický rozsah filmu" + +#: ../src/iop/negadoctor.c:907 +msgid "" +"maximum density of the film, corresponding to white after inversion.\n" +"this value depends on the film specifications, the developing process,\n" +"the dynamic range of the scene and the scanner exposure settings." +msgstr "" +"maximální hustota filmu, odpovídající bílé po inverzi.\n" +"tato hodnota závisí na specifikacích filmu, procesu vyvolávání,\n" +"dynamický rozsah scény a nastavení expozice skeneru." + +#: ../src/iop/negadoctor.c:911 +msgctxt "section" +msgid "scanner exposure settings" +msgstr "nastavení expozice skeneru" + +#: ../src/iop/negadoctor.c:915 +msgid "" +"correct the exposure of the scanner, for all RGB channels,\n" +"before the inversion, so blacks are neither clipped or too pale." +msgstr "" +"opravte expozici skeneru pro všechny kanály RGB,\n" +"před inverzí, takže černá není ani ořezaná, ani příliš bledá." + +#. WB shadows +#: ../src/iop/negadoctor.c:922 +msgctxt "section" +msgid "shadows color cast" +msgstr "barevný nádech stínů" + +#: ../src/iop/negadoctor.c:928 +msgid "select color of shadows from a swatch" +msgstr "vyberte barvu stínů ze vzorníku" + +#: ../src/iop/negadoctor.c:933 +msgid "pick shadows color from image" +msgstr "vybrat barvu stínů z obrázku" + +#: ../src/iop/negadoctor.c:939 +msgid "shadows red offset" +msgstr "stíny červený posun" + +#: ../src/iop/negadoctor.c:940 ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:954 +msgid "" +"correct the color cast in shadows so blacks are\n" +"truly achromatic. Setting this value before\n" +"the highlights illuminant white balance will help\n" +"recovering the global white balance in difficult cases." +msgstr "" +"opravte barvy vržené ve stínech tak, aby byly černé\n" +"skutečně achromatický. Nastavení této hodnoty předem\n" +"zvýraznění osvětlení pomůže vyvážení bílé\n" +"obnovení globálního vyvážení bílé v obtížných případech." + +#: ../src/iop/negadoctor.c:946 +msgid "shadows green offset" +msgstr "stíny zelený posun" + +#: ../src/iop/negadoctor.c:953 +msgid "shadows blue offset" +msgstr "stíny modrý posun" + +#. WB highlights +#: ../src/iop/negadoctor.c:960 +msgctxt "section" +msgid "highlights white balance" +msgstr "vyvážení bílé ve světlech" + +#: ../src/iop/negadoctor.c:966 +msgid "select color of illuminant from a swatch" +msgstr "vyberte barvu světla ze vzorníku" + +#: ../src/iop/negadoctor.c:971 +msgid "pick illuminant color from image" +msgstr "vyberte barvu světla z obrázku" + +#: ../src/iop/negadoctor.c:977 +msgid "illuminant red gain" +msgstr "zisk červeného světla" + +#: ../src/iop/negadoctor.c:978 ../src/iop/negadoctor.c:985 +#: ../src/iop/negadoctor.c:992 +msgid "" +"correct the color of the illuminant so whites are\n" +"truly achromatic. Setting this value after\n" +"the shadows color cast will help\n" +"recovering the global white balance in difficult cases." +msgstr "" +"opravte barvu osvětlení tak, aby byly bílé\n" +"skutečně achromatický. Nastavení této hodnoty po\n" +"pomůže barevnému nádechu stínů\n" +"obnovení globálního vyvážení bílé v obtížných případech." + +#: ../src/iop/negadoctor.c:984 +msgid "illuminant green gain" +msgstr "zisk zeleného světla" + +#: ../src/iop/negadoctor.c:991 +msgid "illuminant blue gain" +msgstr "zisk modrého světla" + +#. Page PRINT PROPERTIES +#: ../src/iop/negadoctor.c:998 +msgid "print properties" +msgstr "vlastnosti tisku" + +#. print corrections +#: ../src/iop/negadoctor.c:1001 +msgctxt "section" +msgid "virtual paper properties" +msgstr "vlastnosti virtuálního papíru" + +#: ../src/iop/negadoctor.c:1007 +msgid "" +"correct the density of black after the inversion,\n" +"to adjust the global contrast while avoiding clipping shadows." +msgstr "" +"opravit hustotu černé po inverzi,\n" +"upravit globální kontrast a zároveň se vyhnout ořezání stínů." + +#: ../src/iop/negadoctor.c:1012 +msgid "" +"select the grade of the virtual paper, which is actually\n" +"equivalent to applying a gamma. it compensates the film D max\n" +"and recovers the contrast. use a high grade for high D max." +msgstr "" +"vyberte třídu virtuálního papíru, která ve skutečnosti je\n" +"ekvivalentní aplikaci gama. kompenzuje film D max\n" +"a obnoví kontrast. použijte vysokou třídu pro vysoké D max." + +#: ../src/iop/negadoctor.c:1020 +msgid "" +"gradually compress specular highlights past this value\n" +"to avoid clipping while pushing the exposure for mid-tones.\n" +"this somewhat reproduces the behavior of matte paper." +msgstr "" +"postupně komprimujte zrcadlová světla za tuto hodnotu\n" +"abyste se vyhnuli oříznutí při posunutí expozice pro střední tóny.\n" +"to poněkud reprodukuje chování matného papíru." + +#: ../src/iop/negadoctor.c:1024 +msgctxt "section" +msgid "virtual print emulation" +msgstr "emulace virtuálního tisku" + +#: ../src/iop/negadoctor.c:1031 +msgid "" +"correct the printing exposure after inversion to adjust\n" +"the global contrast and avoid clipping highlights." +msgstr "" +"upravte expozici tisku po převrácení\n" +"globální kontrast a vyvarujte se oříznutí světel." + +#: ../src/iop/negadoctor.c:1039 +msgid "toggle on or off the color controls" +msgstr "zapnout nebo vypnout ovládání barev" + +#: ../src/iop/nlmeans.c:78 +msgid "astrophoto denoise" +msgstr "odšumovat astrofoto" + +#: ../src/iop/nlmeans.c:83 +msgid "denoise (non-local means)" +msgstr "odšumění (nemístní prostředky)" + +#: ../src/iop/nlmeans.c:88 +msgid "apply a poisson noise removal best suited for astrophotography" +msgstr "použijte odstranění šumu, které se nejlépe hodí pro astrofotografii" + +#: ../src/iop/nlmeans.c:462 +msgid "radius of the patches to match" +msgstr "poloměr záplat, aby se shodovaly" + +#: ../src/iop/nlmeans.c:470 +msgid "how much to smooth brightness" +msgstr "jak moc vyhladit jas" + +#: ../src/iop/nlmeans.c:473 +msgid "how much to smooth colors" +msgstr "jak moc vyhlazovat barvy" + +#. * let's fill the encapsulating widgets +#. preview mode +#. color scheme +#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2258 +#: ../src/views/darkroom.c:2276 ../src/views/darkroom.c:2283 +#: ../src/views/darkroom.c:2293 ../src/views/darkroom.c:2310 +msgid "overexposed" +msgstr "přeexponovaný" + +#: ../src/iop/overexposed.c:123 ../src/iop/overexposed.c:352 +msgid "module overexposed failed in buffer allocation" +msgstr "modul přeexponovaný selhal při alokaci vyrovnávací paměti" + +#: ../src/iop/overexposed.c:149 ../src/iop/overexposed.c:362 +msgid "module overexposed failed in color conversion" +msgstr "modul přeexponovaný selhal při převodu barev" + +#: ../src/iop/primaries.c:74 +msgid "rgb primaries" +msgstr "rgb primárky" + +#: ../src/iop/primaries.c:79 +msgid "adjustment of the RGB color primaries for color grading" +msgstr "úprava primárních barev RGB pro gradaci barev" + +#: ../src/iop/primaries.c:395 +msgid "shift red towards yellow or magenta" +msgstr "posun červené směrem ke žluté nebo purpurové" + +#: ../src/iop/primaries.c:396 +msgid "red primary purity" +msgstr "červená primární čistota" + +#: ../src/iop/primaries.c:397 +msgid "shift green towards cyan or yellow" +msgstr "posun zelené směrem k azurové nebo žluté" + +#: ../src/iop/primaries.c:398 +msgid "green primary purity" +msgstr "zelená primární čistota" + +#: ../src/iop/primaries.c:399 +msgid "shift blue towards magenta or cyan" +msgstr "posun modré směrem k purpurové nebo azurové" + +#: ../src/iop/primaries.c:400 +msgid "blue primary purity" +msgstr "modrá primární čistota" + +#: ../src/iop/profile_gamma.c:96 +msgid "unbreak input profile" +msgstr "zrušit vstupní profil" + +#: ../src/iop/profile_gamma.c:101 +msgid "correct input color profiles meant to be applied on non-linear RGB" +msgstr "správné vstupní barevné profily určené pro použití na nelineární RGB" + +#: ../src/iop/profile_gamma.c:138 +msgid "16 EV dynamic range (generic)" +msgstr "Dynamický rozsah 16 EV (obecný)" + +#: ../src/iop/profile_gamma.c:144 +msgid "14 EV dynamic range (generic)" +msgstr "Dynamický rozsah 14 EV (obecný)" + +#: ../src/iop/profile_gamma.c:150 +msgid "12 EV dynamic range (generic)" +msgstr "Dynamický rozsah 12 EV (obecný)" + +#: ../src/iop/profile_gamma.c:156 +msgid "10 EV dynamic range (generic)" +msgstr "Dynamický rozsah 10 EV (obecný)" + +#: ../src/iop/profile_gamma.c:162 +msgid "08 EV dynamic range (generic)" +msgstr "Dynamický rozsah 08 EV (obecný)" + +#: ../src/iop/profile_gamma.c:637 +msgid "linear part" +msgstr "lineární část" + +#: ../src/iop/profile_gamma.c:641 +msgid "gamma exponential factor" +msgstr "gama exponenciální faktor" + +#: ../src/iop/profile_gamma.c:652 +msgid "adjust to match the average luma of the subject" +msgstr "upravit tak, aby odpovídala průměrnému jasu objektu" + +#: ../src/iop/profile_gamma.c:658 +msgid "" +"number of stops between middle gray and pure black\n" +"this is a reading a light meter would give you on the scene" +msgstr "" +"počet zastávek mezi středně šedou a čistě černou\n" +"toto je údaj, který by vám expozimetr poskytl na scéně" + +#: ../src/iop/profile_gamma.c:664 +msgid "" +"number of stops between pure black and pure white\n" +"this is a reading a light meter would give you on the scene" +msgstr "" +"počet zastávek mezi čistě černou a čistě bílou\n" +"toto je údaj, který by vám expozimetr poskytl na scéně" + +#: ../src/iop/profile_gamma.c:666 +msgctxt "section" +msgid "optimize automatically" +msgstr "automaticky optimalizovat" + +#: ../src/iop/profile_gamma.c:670 +msgid "" +"increase or decrease the computed dynamic range\n" +"this is useful when noise distorts the measurement" +msgstr "" +"zvýšit nebo snížit vypočítaný dynamický rozsah\n" +"to je užitečné, když šum zkresluje měření" + +#: ../src/iop/profile_gamma.c:674 +msgid "make an optimization with some guessing" +msgstr "provést optimalizaci s trochou hádání" + +#: ../src/iop/profile_gamma.c:683 +msgid "tone mapping method" +msgstr "metoda mapování tónů" + +#: ../src/iop/rawdenoise.c:138 +msgid "raw denoise" +msgstr "odšumnění raw" + +#: ../src/iop/rawdenoise.c:143 +msgid "denoise the raw picture early in the pipeline" +msgstr "odšumět raw na začátku fronty zpracování" + +#: ../src/iop/rawdenoise.c:955 +msgid "" +"raw denoising\n" +"only works for raw images." +msgstr "" +"odšumování raw\n" +"funguje pouze pro raw obrázky." + +#. * let's fill the encapsulating widgets +#. mode of operation +#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2226 ../src/views/darkroom.c:2232 +#: ../src/views/darkroom.c:2245 +msgid "raw overexposed" +msgstr "přeexponovaný raw" + +#: ../src/iop/rawprepare.c:99 +msgctxt "modulename" +msgid "raw black/white point" +msgstr "raw černý/bílý bod" + +#: ../src/iop/rawprepare.c:172 +msgid "" +"sets technical specificities of the raw sensor.\n" +"touch with great care!" +msgstr "" +"nastavuje technická specifika raw snímače.\n" +"upravuj s velkou opatrností!" + +#: ../src/iop/rawprepare.c:184 +msgid "passthrough" +msgstr "průchod" + +#: ../src/iop/rawprepare.c:663 +msgid "invalid crop parameters" +msgstr "neplatné parametry ořezu" + +#: ../src/iop/rawprepare.c:664 +msgid "" +"please reset to defaults, update your preset or set to something correct" +msgstr "" +"prosím obnovte výchozí nastavení, aktualizujte předvolbu nebo nastavte něco " +"správného" + +#: ../src/iop/rawprepare.c:930 +msgid "black level 0" +msgstr "úroveň černé 0" + +#: ../src/iop/rawprepare.c:931 +msgid "black level 1" +msgstr "úroveň černé 1" + +#: ../src/iop/rawprepare.c:932 +msgid "black level 2" +msgstr "úroveň černé 2" + +#: ../src/iop/rawprepare.c:933 +msgid "black level 3" +msgstr "úroveň černé 3" + +#: ../src/iop/rawprepare.c:960 +msgid "raw flat field correction to compensate for lens shading" +msgstr "raw korekce plochého pole pro kompenzaci zastínění objektivu" + +#: ../src/iop/rawprepare.c:965 +msgctxt "section" +msgid "crop" +msgstr "oříznutí" + +#: ../src/iop/rawprepare.c:968 +msgid "crop left border" +msgstr "oříznout levý okraj" + +#: ../src/iop/rawprepare.c:972 +msgid "crop top border" +msgstr "oříznout horní okraj" + +#: ../src/iop/rawprepare.c:976 +msgid "crop right border" +msgstr "oříznout pravý okraj" + +#: ../src/iop/rawprepare.c:980 +msgid "crop bottom border" +msgstr "oříznout spodní okraj" + +#: ../src/iop/rawprepare.c:989 +msgid "" +"raw black/white point correction\n" +"only works for the sensors that need it." +msgstr "" +"korekce černobílého bodu raw\n" +"funguje pouze pro senzory, které to potřebují." + +#: ../src/iop/relight.c:53 +msgid "fill-light 0.25EV with 4 zones" +msgstr "vyplnit-světlo 0,25EV se 4 zónami" + +#: ../src/iop/relight.c:57 +msgid "fill-shadow -0.25EV with 4 zones" +msgstr "vyplnit-stín -0.25EV se 4 zónami" + +#: ../src/iop/relight.c:86 +msgid "fill light" +msgstr "vyplnit světlo" + +#: ../src/iop/relight.c:96 ../src/iop/zonesystem.c:122 +msgid "" +"this module is deprecated. please use the tone equalizer module instead." +msgstr "tento modul je zastaralý. místo toho použijte modul tónový ekvalizér." + +#: ../src/iop/relight.c:259 +msgid "the fill-light in EV" +msgstr "výplňové světlo v EV" + +#: ../src/iop/relight.c:268 +msgid "" +"select the center of fill-light\n" +"ctrl+click to select an area" +msgstr "" +"vyberte střed výplňového světla\n" +"ctrl+klik vyberte oblast" + +#: ../src/iop/relight.c:272 +msgid "toggle tool for picking median lightness in image" +msgstr "přepínací nástroj pro výběr střední světlosti obrázku" + +#: ../src/iop/relight.c:276 +msgid "width of fill-light area defined in zones" +msgstr "šířka oblasti výplně definované v zónách" + +#: ../src/iop/retouch.c:197 +msgid "retouch" +msgstr "retušovat" + +#: ../src/iop/retouch.c:202 +msgid "split-frequency|healing|cloning|stamp" +msgstr "dělená frekvence|léčení|klonování|razítko" + +#: ../src/iop/retouch.c:208 +msgid "remove and clone spots, perform split-frequency skin editing" +msgstr "" +"odstranit a klonovat skvrny, provádět úpravy vzhledu s rozdělenou frekvencí" + +#: ../src/iop/retouch.c:211 +msgid "geometric and frequential, RGB" +msgstr "geometrické a frekvenční, RGB" + +#: ../src/iop/retouch.c:1689 +msgid "cannot display scales when the blending mask is displayed" +msgstr "nelze zobrazit měřítka, když je zobrazena prolínací maska" + +#: ../src/iop/retouch.c:2045 ../src/iop/retouch.c:2047 +#: ../src/iop/retouch.c:2049 ../src/iop/retouch.c:2051 +#, c-format +msgid "default tool changed to %s" +msgstr "výchozí nástroj změněn na %s" + +#: ../src/iop/retouch.c:2045 +msgid "cloning" +msgstr "klonování" + +#: ../src/iop/retouch.c:2047 +msgid "healing" +msgstr "léčení" + +#: ../src/iop/retouch.c:2448 +msgid "shapes:" +msgstr "tvary:" + +#: ../src/iop/retouch.c:2454 +msgid "" +"to add a shape select an algorithm and a shape type and click on the image.\n" +"shapes are added to the current scale" +msgstr "" +"pro přidání tvaru vyberte algoritmus a typ tvaru a klikněte na obrázek.\n" +"tvary jsou přidány do aktuálního měřítka" + +#: ../src/iop/retouch.c:2458 ../src/iop/retouch.c:2591 +#: ../src/iop/retouch.c:2597 ../src/iop/retouch.c:2606 +#: ../src/iop/retouch.c:2611 ../src/iop/retouch.c:2619 +#: ../src/iop/retouch.c:2664 +msgid "editing" +msgstr "editace" + +#: ../src/iop/retouch.c:2459 +msgid "show and edit shapes on the current scale" +msgstr "zobrazit a upravit tvary v aktuálním měřítku" + +#: ../src/iop/retouch.c:2460 +msgid "show and edit shapes in restricted mode" +msgstr "zobrazovat a upravovat tvary v omezeném režimu" + +#: ../src/iop/retouch.c:2489 +msgid "algorithms:" +msgstr "algoritmy:" + +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2498 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2510 +msgid "tools" +msgstr "nástroje" + +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2518 +msgid "activate blur tool" +msgstr "aktivovat nástroj rozostření" + +#: ../src/iop/retouch.c:2493 ../src/iop/retouch.c:2499 +#: ../src/iop/retouch.c:2505 ../src/iop/retouch.c:2511 +msgid "change algorithm for current form" +msgstr "změnit algoritmus pro aktuální formu" + +#: ../src/iop/retouch.c:2498 ../src/iop/retouch.c:2521 +msgid "activate fill tool" +msgstr "aktivovat nástroj výplně" + +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2524 +msgid "activate cloning tool" +msgstr "aktivovat klonovací nástroj" + +#: ../src/iop/retouch.c:2510 ../src/iop/retouch.c:2527 +msgid "activate healing tool" +msgstr "aktivovat léčebný nástroj" + +#. overwrite tooltip ourself to handle shift+click +#: ../src/iop/retouch.c:2516 +msgid "ctrl+click to change tool for current form" +msgstr "ctrl+kliknutím změníte nástroj pro aktuální formulář" + +#: ../src/iop/retouch.c:2517 +msgid "shift+click to set the tool as default" +msgstr "shift+klik nastavíte nástroj jako výchozí" + +#: ../src/iop/retouch.c:2537 +msgid "scales:" +msgstr "měřítka:" + +#: ../src/iop/retouch.c:2544 +msgid "current:" +msgstr "aktuální:" + +#: ../src/iop/retouch.c:2551 +msgid "merge from:" +msgstr "sloučit z:" + +#: ../src/iop/retouch.c:2562 +msgid "" +"top slider adjusts where the merge scales start\n" +"bottom slider adjusts the number of scales\n" +"dot indicates the current scale\n" +"top line indicates that the scale is visible at current zoom level\n" +"bottom line indicates that the scale has shapes on it" +msgstr "" +"horní posuvník nastavuje, kde začínají měřítka sloučení\n" +"spodní posuvník upravuje počet měřítek\n" +"tečka označuje aktuální měřítko\n" +"horní řádek označuje, že měřítko je viditelné při aktuální úrovni " +"přiblížení\n" +"spodní řádek označuje, že na stupnici jsou tvary" + +#: ../src/iop/retouch.c:2591 +msgid "display masks" +msgstr "zobrazit masky" + +#: ../src/iop/retouch.c:2597 +msgid "temporarily switch off shapes" +msgstr "dočasně vypnout tvary" + +#: ../src/iop/retouch.c:2606 +msgid "paste cut shapes to current scale" +msgstr "vložit vyříznuté tvary do aktuálního měřítka" + +#: ../src/iop/retouch.c:2611 +msgid "cut shapes from current scale" +msgstr "vyjmout tvary z aktuálního měřítka" + +#: ../src/iop/retouch.c:2619 +msgid "display wavelet scale" +msgstr "zobrazení vlnkové stupnice" + +#: ../src/iop/retouch.c:2627 +msgctxt "section" +msgid "preview single scale" +msgstr "náhled jedné stupnice" + +#: ../src/iop/retouch.c:2641 +msgid "adjust preview levels" +msgstr "upravit úrovně náhledu" + +#: ../src/iop/retouch.c:2664 ../src/iop/rgblevels.c:1106 +msgid "auto levels" +msgstr "automatické úrovně" + +#: ../src/iop/retouch.c:2672 +msgid "shape selected:" +msgstr "vybraný tvar:" + +#: ../src/iop/retouch.c:2678 +msgid "" +"click on a shape to select it,\n" +"to unselect click on an empty space" +msgstr "" +"kliknutím na tvar jej vyberete,\n" +"pro zrušení výběru klikněte na prázdné místo" + +#: ../src/iop/retouch.c:2687 +msgid "erase the detail or fills with chosen color" +msgstr "vymazat detail nebo výplně zvolenou barvou" + +#: ../src/iop/retouch.c:2697 +msgid "fill color: " +msgstr "barva výplně: " + +#: ../src/iop/retouch.c:2702 ../src/iop/retouch.c:2703 +msgid "select fill color" +msgstr "vyberte barvu výplně" + +#: ../src/iop/retouch.c:2713 +msgid "pick fill color from image" +msgstr "vybrat barvu výplně z obrázku" + +#: ../src/iop/retouch.c:2714 +msgid "pick fill color" +msgstr "nabrat barvu výplně" + +#: ../src/iop/retouch.c:2724 +msgid "adjusts color brightness to fine-tune it. works with erase as well" +msgstr "upraví jas barev pro jemné doladění. funguje i s mazáním" + +#: ../src/iop/retouch.c:2730 +msgid "type for the blur algorithm" +msgstr "zadejte pro algoritmus rozostření" + +#: ../src/iop/retouch.c:2734 +msgid "radius of the selected blur type" +msgstr "poloměr vybraného typu rozostření" + +#: ../src/iop/retouch.c:2741 +msgid "set the opacity on the selected shape" +msgstr "nastavte neprůhlednost na vybraném tvaru" + +#: ../src/iop/retouch.c:2748 +msgctxt "section" +msgid "retouch tools" +msgstr "retušovací nástroje" + +#. wavelet decompose +#: ../src/iop/retouch.c:2757 +msgctxt "section" +msgid "wavelet decompose" +msgstr "rozklad vlnek" + +#. shapes +#: ../src/iop/retouch.c:2771 +msgctxt "section" +msgid "shapes" +msgstr "tvary" + +#: ../src/iop/retouch.c:3986 ../src/iop/retouch.c:4956 +#, c-format +msgid "max scale is %i for this image size" +msgstr "maximální měřítko je %i pro tuto velikost obrázku" + +#: ../src/iop/rgbcurve.c:122 +msgid "rgb curve" +msgstr "rgb křivka" + +#: ../src/iop/rgbcurve.c:144 +msgid "alter an image’s tones using curves in RGB color space" +msgstr "změnit tóny obrázku pomocí křivek v barevném prostoru RGB" + +#: ../src/iop/rgbcurve.c:195 ../src/iop/tonecurve.c:569 +msgid "gamma 1.0 (linear)" +msgstr "gamma 1.0 (lineární)" + +#: ../src/iop/rgbcurve.c:205 ../src/iop/tonecurve.c:579 +msgid "contrast - med (linear)" +msgstr "kontrast - střední (lineární)" + +#: ../src/iop/rgbcurve.c:214 ../src/iop/tonecurve.c:588 +msgid "contrast - high (linear)" +msgstr "kontrast - vysoký (lineární)" + +#: ../src/iop/rgbcurve.c:228 ../src/iop/tonecurve.c:600 +msgid "contrast - med (gamma 2.2)" +msgstr "kontrast - střední (gamma 2.2)" + +#: ../src/iop/rgbcurve.c:241 ../src/iop/tonecurve.c:611 +msgid "contrast - high (gamma 2.2)" +msgstr "kontrast - vysoký (gamma 2.2)" + +#: ../src/iop/rgbcurve.c:254 ../src/iop/tonecurve.c:624 +msgid "gamma 2.0" +msgstr "gamma 2.0" + +#: ../src/iop/rgbcurve.c:260 ../src/iop/tonecurve.c:630 +msgid "gamma 0.5" +msgstr "gamma 0.5" + +#: ../src/iop/rgbcurve.c:265 ../src/iop/tonecurve.c:635 +msgid "logarithm (base 2)" +msgstr "logaritmus (základ 2)" + +#: ../src/iop/rgbcurve.c:270 ../src/iop/tonecurve.c:640 +msgid "exponential (base 2)" +msgstr "exponenciální (základ 2)" + +#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:1038 +msgid "choose between linked and independent channels." +msgstr "vybrat mezi propojenými a nezávislými kanály." + +#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1043 +msgid "curve nodes for r channel" +msgstr "uzly křivky kanálu r" + +#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1044 +msgid "curve nodes for g channel" +msgstr "uzly křivky kanálu g" + +#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1045 +msgid "curve nodes for b channel" +msgstr "uzly křivky kanálu b" + +#: ../src/iop/rgblevels.c:102 +msgid "rgb levels" +msgstr "úrovně rgb" + +#: ../src/iop/rgblevels.c:124 +msgid "adjust black, white and mid-gray points in RGB color space" +msgstr "upravte černé, bílé a středně šedé body v barevném prostoru RGB" + +#: ../src/iop/rgblevels.c:1112 +msgid "auto region" +msgstr "automatický region" + +#: ../src/iop/rgblevels.c:1115 +msgid "" +"apply auto levels based on a region defined by the user\n" +"click and drag to draw the area\n" +"right click to cancel" +msgstr "" +"použít automatické úrovně na základě regionu definovaného uživatelem\n" +"kliknutím a tažením nakreslete oblast\n" +"kliknutím pravým tlačítkem zrušíte" + +#: ../src/iop/rotatepixels.c:70 +msgctxt "modulename" +msgid "rotate pixels" +msgstr "rotace bodů" + +#: ../src/iop/rotatepixels.c:99 ../src/iop/scalepixels.c:84 +msgid "" +"internal module to setup technical specificities of raw sensor.\n" +"\n" +"you should not touch values here!" +msgstr "" +"interní modul pro nastavení technických specifik raw snímače.\n" +"\n" +"zde byste se neměli nic upravovat!" + +#: ../src/iop/rotatepixels.c:381 +msgid "automatic pixel rotation" +msgstr "automatické otáčení bodů" + +#: ../src/iop/rotatepixels.c:382 +msgid "" +"automatic pixel rotation\n" +"only works for the sensors that need it." +msgstr "" +"automatické otáčení bodů\n" +"funguje pouze pro senzory, které to potřebují." + +#: ../src/iop/scalepixels.c:55 +msgctxt "modulename" +msgid "scale pixels" +msgstr "škálovat body" + +#: ../src/iop/scalepixels.c:281 +msgid "automatic pixel scaling" +msgstr "automatické škálování bodů" + +#: ../src/iop/scalepixels.c:282 +msgid "" +"automatic pixel scaling\n" +"only works for the sensors that need it." +msgstr "" +"automatické škálování bodů\n" +"funguje pouze pro senzory, které to potřebují." + +#: ../src/iop/shadhi.c:120 +msgid "shadows and highlights" +msgstr "stíny a světla" + +#: ../src/iop/shadhi.c:142 +msgid "" +"modify the tonal range of the shadows and highlights\n" +"of an image by enhancing local contrast." +msgstr "" +"upravit tónový rozsah stínů a světel\n" +"obrázku zvýšením lokálního kontrastu." + +#: ../src/iop/shadhi.c:711 ../src/iop/splittoning.c:544 +msgid "compress" +msgstr "komprimovat" + +#: ../src/iop/shadhi.c:718 +msgid "correct shadows" +msgstr "opravit stíny" + +#: ../src/iop/shadhi.c:719 +msgid "correct highlights" +msgstr "opravit světla" + +#: ../src/iop/shadhi.c:720 +msgid "shift white point" +msgstr "posun bílého bodu" + +#: ../src/iop/shadhi.c:722 +msgid "filter to use for softening. bilateral avoids halos" +msgstr "filtr pro změkčení. oboustranný se vyhýbá halo efektu" + +#: ../src/iop/shadhi.c:723 +msgid "" +"compress the effect on shadows/highlights and\n" +"preserve mid-tones" +msgstr "" +"komprimovat efekt na stíny/světly a\n" +"zachovat střední tóny" + +#: ../src/iop/shadhi.c:724 +msgid "adjust saturation of shadows" +msgstr "upravit sytost stínů" + +#: ../src/iop/shadhi.c:725 +msgid "adjust saturation of highlights" +msgstr "upravit sytost světel" + +#: ../src/iop/sharpen.c:73 +msgctxt "modulename" +msgid "sharpen" +msgstr "doostření" + +#: ../src/iop/sharpen.c:95 +msgid "sharpen the details in the image using a standard UnSharp Mask (USM)" +msgstr "doostřete detaily v obraze pomocí standardní masky UnSharp Mask (USM)" + +#: ../src/iop/sharpen.c:97 +msgid "linear or non-linear, Lab, display or scene-referred" +msgstr "lineární nebo nelineární, laboratoř, displej nebo s odkazem na scénu" + +#: ../src/iop/sharpen.c:99 +msgid "quasi-linear, Lab, display or scene-referred" +msgstr "kvazilineární, Lab, displej nebo s odkazem na scénu" + +#. add the preset. +#. restrict to raw images +#: ../src/iop/sharpen.c:106 ../src/iop/sharpen.c:110 +msgid "sharpen" +msgstr "doostření" + +#: ../src/iop/sharpen.c:438 +msgid "spatial extent of the unblurring" +msgstr "prostorový rozsah rozostření" + +#: ../src/iop/sharpen.c:442 +msgid "strength of the sharpen" +msgstr "síla ostření" + +#: ../src/iop/sharpen.c:446 +msgid "threshold to activate sharpen" +msgstr "prahová hodnota pro aktivaci doostření" + +#: ../src/iop/sigmoid.c:195 +msgid "sigmoid" +msgstr "sigmatu" + +#: ../src/iop/sigmoid.c:200 +msgid "tone mapping|view transform|display transform" +msgstr "mapování tónů|ukázat transformaci|zobrazit transformaci" + +#: ../src/iop/sigmoid.c:206 +msgid "" +"apply a view transform to make a image displayable\n" +"on a screen or print. uses a robust and smooth\n" +"tone curve with optional color preservation methods." +msgstr "" +"aplikujte transformaci pohledu, aby bylo možné obrázek zobrazit\n" +"na obrazovce nebo tisku. používá robustní a hladký\n" +"tónová křivka s volitelnými metodami zachování barvy." + +#: ../src/iop/sigmoid.c:258 +msgid "neutral gray" +msgstr "neutrální šedá" + +#: ../src/iop/sigmoid.c:264 +msgid "ACES 100-nit like" +msgstr "ACES jako 100-nitů" + +#: ../src/iop/sigmoid.c:270 +msgid "Reinhard" +msgstr "Reinhard" + +#: ../src/iop/sigmoid.c:917 +msgid "" +"compression of the applied curve\n" +"implicitly defines the supported input dynamic range" +msgstr "" +"komprimace aplikované křivky\n" +"implicitně definuje podporovaný vstupní dynamický rozsah" + +#: ../src/iop/sigmoid.c:920 +msgid "" +"shift the compression towards shadows or highlights.\n" +"negative values increase contrast in shadows.\n" +"positive values increase contrast in highlights.\n" +"the opposite end will see a reduction in contrast." +msgstr "" +"posuňte kompresi směrem ke stínům nebo světlům.\n" +"záporné hodnoty zvyšují kontrast ve stínech.\n" +"kladné hodnoty zvyšují kontrast ve světlech.\n" +"na opačném konci dojde ke snížení kontrastu." + +#: ../src/iop/sigmoid.c:929 +msgid "" +"optional correction of the hue twist introduced by\n" +"the per-channel processing method." +msgstr "" +"volitelná korekce zkroucení odstínu zavedená\n" +"metoda zpracování podle kanálu." + +#: ../src/iop/sigmoid.c:936 ../src/iop/sigmoid.c:940 +msgid "primaries" +msgstr "primáry" + +#: ../src/iop/sigmoid.c:937 +msgid "set custom primaries" +msgstr "nastavit vlastní primární volby" + +#: ../src/iop/sigmoid.c:943 +msgid "primaries to use as the base for below adjustments" +msgstr "primáry, které se mají použít jako základ pro níže uvedené úpravy" + +#: ../src/iop/sigmoid.c:962 +msgid "attenuate the purity of the red primary" +msgstr "zeslabit čistotu červené primární složky" + +#: ../src/iop/sigmoid.c:963 +msgid "rotate the red primary" +msgstr "rotace červený primár" + +#: ../src/iop/sigmoid.c:964 +msgid "attenuate the purity of the green primary" +msgstr "zeslabit čistotu zelené primární složky" + +#: ../src/iop/sigmoid.c:965 +msgid "rotate the green primary" +msgstr "rotace zelený primár" + +#: ../src/iop/sigmoid.c:966 +msgid "attenuate the purity of the blue primary" +msgstr "zeslabit čistotu modré primární složky" + +#: ../src/iop/sigmoid.c:967 +msgid "rotate the blue primary" +msgstr "rotace modrý primár" + +#: ../src/iop/sigmoid.c:974 +msgid "recover some of the original purity after the inset" +msgstr "obnovit část původní čistoty po vložení" + +#: ../src/iop/sigmoid.c:978 +msgid "display luminance" +msgstr "jas displeje" + +#: ../src/iop/sigmoid.c:979 +msgid "set display black/white targets" +msgstr "nastavit zobrazení černobílých cílů" + +#: ../src/iop/sigmoid.c:987 +msgid "" +"the black luminance of the target display or print.\n" +"can be used creatively for a faded look." +msgstr "" +"černý jas cílového displeje nebo tisku.\n" +"lze kreativně použít pro vybledlý vzhled." + +#: ../src/iop/sigmoid.c:992 +msgid "" +"the white luminance of the target display or print.\n" +"can be used creatively for a faded look or blowing out whites earlier." +msgstr "" +"bílý jas cílového displeje nebo tisku.\n" +"lze kreativně použít pro vybledlý vzhled nebo dřívější přepal bílé." + +#: ../src/iop/soften.c:80 +msgid "soften" +msgstr "změkčit" + +#: ../src/iop/soften.c:102 +msgid "create a softened image using the Orton effect" +msgstr "vytvořte změkčený obraz pomocí Ortonova efektu" + +#: ../src/iop/soften.c:366 +msgid "the size of blur" +msgstr "velikost rozostření" + +#: ../src/iop/soften.c:370 +msgid "the saturation of blur" +msgstr "sytost rozostření" + +#: ../src/iop/soften.c:374 +msgid "the brightness of blur" +msgstr "jas rozostření" + +#: ../src/iop/soften.c:378 +msgid "the mix of effect" +msgstr "mix efektů" + +#: ../src/iop/splittoning.c:81 +msgid "split-toning" +msgstr "dělené tónování" + +#: ../src/iop/splittoning.c:103 +msgid "" +"use two specific colors for shadows and highlights and\n" +"create a linear toning effect between them up to a pivot." +msgstr "" +"použijte dvě specifické barvy pro stíny a světla a\n" +"vytvořit mezi nimi efekt lineárního tónování až po osu." + +#: ../src/iop/splittoning.c:120 +msgid "authentic sepia" +msgstr "autentická sépie" + +#: ../src/iop/splittoning.c:129 +msgid "authentic cyanotype" +msgstr "autentická kyanotypie" + +#: ../src/iop/splittoning.c:138 +msgid "authentic platinotype" +msgstr "autentická platinotypie" + +#: ../src/iop/splittoning.c:147 +msgid "chocolate brown" +msgstr "čokoládově hnědá" + +#: ../src/iop/splittoning.c:486 +msgid "select the saturation tone" +msgstr "vyberte tón sytosti" + +#: ../src/iop/splittoning.c:490 +msgid "select tone color" +msgstr "vyberte barvu tónu" + +#: ../src/iop/splittoning.c:520 +msgctxt "section" +msgid "shadows" +msgstr "stíny" + +#: ../src/iop/splittoning.c:526 +msgctxt "section" +msgid "highlights" +msgstr "světla" + +#: ../src/iop/splittoning.c:535 +msgid "balance" +msgstr "vyvážení" + +#: ../src/iop/splittoning.c:542 +msgid "the balance of center of split-toning" +msgstr "rovnováha středu rozděleného tónování" + +#: ../src/iop/splittoning.c:546 +msgid "" +"compress the effect on highlights/shadows and\n" +"preserve mid-tones" +msgstr "" +"komprimovat efekt na světla/stíny a\n" +"zachovat střední tóny" + +#: ../src/iop/spots.c:58 +msgid "spot removal" +msgstr "odstranění skvrn" + +#: ../src/iop/spots.c:63 +msgid "this module is deprecated. please use the retouch module instead." +msgstr "tento modul je zastaralý. použijte prosím modul retuš." + +#: ../src/iop/spots.c:68 +msgid "remove sensor dust spots" +msgstr "odstranit prachové skvrny na senzoru" + +#: ../src/iop/spots.c:71 +msgid "geometric, raw" +msgstr "geometrické, raw" + +#: ../src/iop/spots.c:238 +msgid "spot module is limited to 64 shapes. please add a new instance!" +msgstr "bodový modul je omezen na 64 tvarů. prosím přidejte novou instanci!" + +#: ../src/iop/spots.c:874 +msgid "number of strokes:" +msgstr "počet tahů:" + +#: ../src/iop/spots.c:878 +msgid "" +"click on a shape and drag on canvas.\n" +"use the mouse wheel to adjust size.\n" +"right click to remove a shape." +msgstr "" +"klikněte na tvar a přetáhněte na plátno.\n" +"pomocí kolečka myši upravte velikost.\n" +"kliknutím pravým tlačítkem odstraníte tvar." + +#: ../src/iop/spots.c:881 +msgid "show and edit shapes" +msgstr "zobrazovat a upravovat tvary" + +#: ../src/iop/temperature.c:212 +msgctxt "modulename" +msgid "white balance" +msgstr "vyvážení bílé" + +#: ../src/iop/temperature.c:219 +msgid "scale raw RGB channels to balance white and help demosaicing" +msgstr "škálování RAW kanálů RGB pro vyvážení bílé a usnadnění demosaicingu" + +#: ../src/iop/temperature.c:1388 +#, c-format +msgid "`%s' color matrix not found for image" +msgstr "Barevná matice `%s' nebyla pro obrázek nalezena" + +#: ../src/iop/temperature.c:1418 +#, c-format +msgid "failed to read camera white balance information from `%s'!" +msgstr "nepodařilo se přečíst informace o vyvážení bílé z fotoaparátu z `%s'!" + +#: ../src/iop/temperature.c:1612 +msgctxt "white balance" +msgid "as shot" +msgstr "jako snímek" + +#. old "spot", reason: describes exactly what'll happen +#: ../src/iop/temperature.c:1615 +msgctxt "white balance" +msgid "from image area" +msgstr "z část obrázku" + +#: ../src/iop/temperature.c:1616 +msgctxt "white balance" +msgid "user modified" +msgstr "uživatelsky definovaný" + +#. old "camera neutral", reason: better matches intent +#: ../src/iop/temperature.c:1618 +msgctxt "white balance" +msgid "camera reference" +msgstr "podle fotoaparátu" + +#: ../src/iop/temperature.c:1897 ../src/iop/temperature.c:1915 +msgid "green channel coefficient" +msgstr "koeficient zeleného kanálu" + +#: ../src/iop/temperature.c:1899 +msgid "magenta channel coefficient" +msgstr "koeficient purpurového kanálu" + +#: ../src/iop/temperature.c:1901 +msgid "cyan channel coefficient" +msgstr "koeficient azurového kanálu" + +#: ../src/iop/temperature.c:1903 +msgid "yellow channel coefficient" +msgstr "koeficient žlutého kanálu" + +#: ../src/iop/temperature.c:1913 +msgid "red channel coefficient" +msgstr "koeficient červeného kanálu" + +#: ../src/iop/temperature.c:1917 +msgid "blue channel coefficient" +msgstr "koeficient modrého kanálu" + +#: ../src/iop/temperature.c:1918 +msgid "emerald" +msgstr "smaragdová" + +#: ../src/iop/temperature.c:1919 +msgid "emerald channel coefficient" +msgstr "koeficient smaragdového kanálu" + +#. relabel to settings to remove confusion between module presets +#. and white balance settings +#: ../src/iop/temperature.c:1997 ../src/iop/temperature.c:2010 +#: ../src/iop/temperature.c:2017 ../src/iop/temperature.c:2023 +#: ../src/iop/temperature.c:2042 +msgid "settings" +msgstr "nastavení" + +#: ../src/iop/temperature.c:1997 +msgid "as shot" +msgstr "jako snímek" + +#: ../src/iop/temperature.c:2000 +msgid "set white balance to as shot" +msgstr "nastavte vyvážení bílé podle snímku" + +#: ../src/iop/temperature.c:2010 +msgid "from image area" +msgstr "z oblasti obrázku" + +#: ../src/iop/temperature.c:2017 +msgid "user modified" +msgstr "uživatelsky definovaný" + +#: ../src/iop/temperature.c:2020 +msgid "set white balance to user modified" +msgstr "nastavit vyvážení bílé na uživatelsky definovanou" + +#: ../src/iop/temperature.c:2023 +msgid "camera reference" +msgstr "reference fotoaparátu" + +#: ../src/iop/temperature.c:2028 +msgid "" +"set white balance to camera reference point\n" +"in most cases it should be D65" +msgstr "" +"nastavte vyvážení bílé na referenční bod fotoaparátu\n" +"ve většině případů by to mělo být D65" + +#: ../src/iop/temperature.c:2043 +msgid "choose white balance setting" +msgstr "zvolte nastavení vyvážení bílé" + +#: ../src/iop/temperature.c:2048 +msgid "finetune" +msgstr "jemné doladění" + +#: ../src/iop/temperature.c:2050 +msgid "fine tune camera's white balance setting" +msgstr "jemné doladění vyvážení bílé ve fotoaparátu" + +#: ../src/iop/temperature.c:2058 +msgctxt "section" +msgid "scene illuminant temp" +msgstr "teplota osvětlení scény" + +#: ../src/iop/temperature.c:2059 +msgid "click to cycle color mode on sliders" +msgstr "kliknutím přepnete barevný režim na posuvnících" + +#: ../src/iop/temperature.c:2073 +msgid "color temperature (in Kelvin)" +msgstr "barevná teplota (v Kelvinech)" + +#: ../src/iop/temperature.c:2079 +msgid "tint" +msgstr "odstín" + +#: ../src/iop/temperature.c:2082 +msgid "color tint of the image, from magenta (value < 1) to green (value > 1)" +msgstr "" +"barevný odstín obrázku, od purpurové (hodnota < 1) po zelenou (hodnota > 1)" + +#: ../src/iop/temperature.c:2088 +msgid "channel coefficients" +msgstr "koeficienty kanálů" + +#: ../src/iop/temperature.c:2097 +msgid "various" +msgstr "různý" + +#: ../src/iop/temperature.c:2123 +msgid "white balance disabled for camera" +msgstr "vyvážení bílé je pro fotoaparát zakázáno" + +#: ../src/iop/tonecurve.c:161 +msgid "tone curve" +msgstr "tónová křivka" + +#: ../src/iop/tonecurve.c:183 +msgid "alter an image’s tones using curves" +msgstr "změnit tóny obrázku pomocí křivek" + +#: ../src/iop/tonecurve.c:1147 +msgid "" +"if set to auto, a and b curves have no effect and are not displayed. chroma " +"values (a and b) of each pixel are then adjusted based on L curve data. auto " +"XYZ is similar but applies the saturation changes in XYZ space." +msgstr "" +"pokud je nastaveno na auto, křivky a a b nemají žádný vliv a nezobrazují se. " +"hodnoty sytosti (a a b) každého pixelu jsou poté upraveny na základě dat L " +"křivky. auto XYZ je podobné, ale aplikuje změny sytosti v prostoru XYZ." + +#: ../src/iop/tonecurve.c:1156 +msgid "tonecurve for L channel" +msgstr "tónová křivka pro kanál L" + +#: ../src/iop/tonecurve.c:1157 +msgid "tonecurve for a channel" +msgstr "tónová křivka pro kanál a" + +#: ../src/iop/tonecurve.c:1158 +msgid "tonecurve for b channel" +msgstr "tónová křivka pro kanál b" + +#: ../src/iop/tonecurve.c:1165 ../src/iop/watermark.c:1353 +#: ../src/libs/colorpicker.c:675 +msgid "pick color" +msgstr "nabrat barvu" + +#: ../src/iop/toneequal.c:319 +msgid "tone equalizer" +msgstr "tónový ekvalizér" + +#: ../src/iop/toneequal.c:324 +msgid "tone curve|tone mapping|relight|background light|shadows highlights" +msgstr "křivka tónu|mapování tónů|přesvícení|světlo pozadí|stíny světla" + +#: ../src/iop/toneequal.c:331 +msgid "relight the scene as if the lighting was done directly on the scene" +msgstr "znovu nasvítit scénu, jako by bylo osvětlení provedeno přímo na scéně" + +#: ../src/iop/toneequal.c:334 +msgid "quasi-linear, RGB" +msgstr "kvazilineární, RGB" + +#: ../src/iop/toneequal.c:335 +msgid "quasi-linear, RGB, scene-referred" +msgstr "kvazilineární, RGB, s odkazem na scénu" + +#: ../src/iop/toneequal.c:489 +msgid "simple tone curve" +msgstr "jednoduchá tónová křivka" + +#: ../src/iop/toneequal.c:503 +msgid "mask blending: all purposes" +msgstr "prolnutí masky: všechny účely" + +#: ../src/iop/toneequal.c:510 +msgid "mask blending: people with backlight" +msgstr "prolnutí masky: lidé s podsvícením" + +#: ../src/iop/toneequal.c:527 +msgid "compress shadows/highlights (EIGF): strong" +msgstr "komprimovat stíny/světla (EIGF): silné" + +#: ../src/iop/toneequal.c:532 +msgid "compress shadows/highlights (GF): strong" +msgstr "komprimovat stíny/světla (GF): silné" + +#: ../src/iop/toneequal.c:541 +msgid "compress shadows/highlights (EIGF): medium" +msgstr "komprimovat stíny/světla (EIGF): střední" + +#: ../src/iop/toneequal.c:546 +msgid "compress shadows/highlights (GF): medium" +msgstr "komprimovat stíny/světla (GF): střední" + +#: ../src/iop/toneequal.c:555 +msgid "compress shadows/highlights (EIGF): soft" +msgstr "komprimovat stíny/světla (EIGF): měkké" + +#: ../src/iop/toneequal.c:560 +msgid "compress shadows/highlights (GF): soft" +msgstr "komprimovat stíny/světla (GF): měkké" + +#: ../src/iop/toneequal.c:568 +msgid "contrast tone curve: soft" +msgstr "křivka kontrast tónu: měkká" + +#: ../src/iop/toneequal.c:573 +msgid "contrast tone curve: medium" +msgstr "contrast tone curve: střední" + +#: ../src/iop/toneequal.c:578 +msgid "contrast tone curve: strong" +msgstr "křivka kontrast tónu: silná" + +#: ../src/iop/toneequal.c:601 +msgid "relight: fill-in" +msgstr "obnova světla: vyplnit" + +#: ../src/iop/toneequal.c:1120 +msgid "tone equalizer failed to allocate memory, check your RAM settings" +msgstr "" +"tónovému ekvalizéru se nepodařilo přidělit paměť, zkontrolujte nastavení RAM" + +#: ../src/iop/toneequal.c:1825 ../src/iop/toneequal.c:2196 +msgid "the interpolation is unstable, decrease the curve smoothing" +msgstr "interpolace je nestabilní, snižte vyhlazení křivky" + +#: ../src/iop/toneequal.c:1860 ../src/iop/toneequal.c:1927 +msgid "wait for the preview to finish recomputing" +msgstr "počkejte, až náhled dokončí přepočítávání" + +#: ../src/iop/toneequal.c:2069 ../src/iop/toneequal.c:2628 +msgid "" +"scroll over image to change tone exposure\n" +"shift+scroll for large steps; ctrl+scroll for small steps" +msgstr "" +"rolováním přes obrázek změňte expozici tónů\n" +"Shift+scroll pro velké kroky; ctrl+scroll pro malé kroky" + +#: ../src/iop/toneequal.c:2201 +msgid "some parameters are out-of-bounds" +msgstr "některé parametry jsou mimo rozsah" + +#: ../src/iop/toneequal.c:2518 +#, c-format +msgid "%+.1f EV" +msgstr "%+.1f EV" + +#: ../src/iop/toneequal.c:3283 +#, c-format +msgid "[%s over image] change tone exposure" +msgstr "[%s přes obrázek] změna tónu expozice" + +#: ../src/iop/toneequal.c:3286 +#, c-format +msgid "[%s over image] change tone exposure in large steps" +msgstr "[%s přes obrázek] změna tónu expozice po velkých krocích" + +#: ../src/iop/toneequal.c:3289 +#, c-format +msgid "[%s over image] change tone exposure in small steps" +msgstr "[%s přes obrázek] změna tónu expozice po malých krocích" + +#. Simple view +#: ../src/iop/toneequal.c:3376 ../src/iop/toneequal.c:3405 +#: ../src/iop/toneequal.c:3406 ../src/iop/toneequal.c:3407 +#: ../src/iop/toneequal.c:3408 ../src/iop/toneequal.c:3409 +#: ../src/iop/toneequal.c:3410 ../src/iop/toneequal.c:3411 +#: ../src/iop/toneequal.c:3412 ../src/iop/toneequal.c:3413 +msgid "simple" +msgstr "jednoduchý" + +#: ../src/iop/toneequal.c:3405 +msgid "-8 EV" +msgstr "-8 EV" + +#: ../src/iop/toneequal.c:3406 +msgid "-7 EV" +msgstr "-7 EV" + +#: ../src/iop/toneequal.c:3407 +msgid "-6 EV" +msgstr "-6 EV" + +#: ../src/iop/toneequal.c:3408 +msgid "-5 EV" +msgstr "-5 EV" + +#: ../src/iop/toneequal.c:3409 +msgid "-4 EV" +msgstr "-4 EV" + +#: ../src/iop/toneequal.c:3410 +msgid "-3 EV" +msgstr "-3 EV" + +#: ../src/iop/toneequal.c:3411 +msgid "-2 EV" +msgstr "-2 EV" + +#: ../src/iop/toneequal.c:3412 +msgid "-1 EV" +msgstr "-1 EV" + +#: ../src/iop/toneequal.c:3413 +msgid "+0 EV" +msgstr "+0 EV" + +#. Advanced view +#: ../src/iop/toneequal.c:3417 +msgid "advanced" +msgstr "pokročilý" + +#: ../src/iop/toneequal.c:3444 +msgid "double-click to reset the curve" +msgstr "dvojitým kliknutím obnovíte křivku" + +#: ../src/iop/toneequal.c:3448 +msgid "curve smoothing" +msgstr "vyhlazení křivky" + +#: ../src/iop/toneequal.c:3451 +msgid "" +"positive values will produce more progressive tone transitions\n" +"but the curve might become oscillatory in some settings.\n" +"negative values will avoid oscillations and behave more robustly\n" +"but may produce brutal tone transitions and damage local contrast." +msgstr "" +"kladné hodnoty způsobí progresivnější přechody tónů\n" +"ale křivka může v některých nastaveních oscilovat.\n" +"záporné hodnoty zabrání oscilacím a budou se chovat robustněji\n" +"ale může způsobit brutální přechody tónů a poškodit lokální kontrast." + +#. Masking options +#: ../src/iop/toneequal.c:3461 +msgid "masking" +msgstr "maskování" + +#: ../src/iop/toneequal.c:3466 +msgid "" +"preview the mask and chose the estimator that gives you the\n" +"higher contrast between areas to dodge and areas to burn" +msgstr "" +"zobrazte náhled masky a vyberte odhad, který vám poskytne\n" +"vyšší kontrast mezi oblastmi, kterým se má vyhýbat, a oblastmi, které se " +"mají vypálit" + +#: ../src/iop/toneequal.c:3469 +msgid "details" +msgstr "detaily" + +#: ../src/iop/toneequal.c:3470 +msgid "preserve details" +msgstr "zachovat detaily" + +#: ../src/iop/toneequal.c:3473 +msgid "" +"'no' affects global and local contrast (safe if you only add contrast)\n" +"'guided filter' only affects global contrast and tries to preserve local " +"contrast\n" +"'averaged guided filter' is a geometric mean of 'no' and 'guided filter' " +"methods\n" +"'EIGF' (exposure-independent guided filter) is a guided filter that is " +"exposure-independent, it smooths shadows and highlights the same way " +"(contrary to guided filter which smooths less the highlights)\n" +"'averaged EIGF' is a geometric mean of 'no' and 'exposure-independent guided " +"filter' methods" +msgstr "" +"„ne“ ovlivňuje globální a místní kontrast (bezpečné, pokud přidáte pouze " +"kontrast)\n" +"„řízený filtr“ ovlivňuje pouze globální kontrast a snaží se zachovat místní " +"kontrast\n" +"„průměrovaný řízený filtr“ je geometrický průměr metod „ne“ a „řízený " +"filtr“.\n" +"„EIGF“ (naváděný filtr nezávislý na expozici) je naváděný filtr, který je " +"nezávislý na expozici, vyhlazuje stíny a světla stejným způsobem (na rozdíl " +"od naváděného filtru, který vyhlazuje méně světla)\n" +"„průměrný EIGF“ je geometrický průměr metod „ne“ a „na expozici nezávislý " +"řízený filtr“" + +#: ../src/iop/toneequal.c:3486 +msgid "" +"number of passes of guided filter to apply\n" +"helps diffusing the edges of the filter at the expense of speed" +msgstr "" +"počet průchodů řízeného filtru, který se má použít\n" +"pomáhá rozptylovat okraje filtru na úkor rychlosti" + +#: ../src/iop/toneequal.c:3494 +msgid "" +"diameter of the blur in percent of the largest image size\n" +"warning: big values of this parameter can make the darkroom\n" +"preview much slower if denoise profiled is used." +msgstr "" +"průměr rozostření v procentech největší velikosti obrázku\n" +"varování: velké hodnoty tohoto parametru mohou způsobit vznik temné komory\n" +"náhled mnohem pomalejší, pokud je použit profil odšumění." + +#: ../src/iop/toneequal.c:3502 +msgid "" +"precision of the feathering:\n" +"higher values force the mask to follow edges more closely\n" +"but may void the effect of the smoothing\n" +"lower values give smoother gradients and better smoothing\n" +"but may lead to inaccurate edges taping and halos" +msgstr "" +"přesnost opeření:\n" +"vyšší hodnoty nutí masku, aby blíže sledovala okraje\n" +"ale může zrušit účinek vyhlazení\n" +"nižší hodnoty poskytují hladší přechody a lepší vyhlazení\n" +"ale může to vést k nepřesnému lepení hran a halo" + +#: ../src/iop/toneequal.c:3509 +msgctxt "section" +msgid "mask post-processing" +msgstr "postprocesing masky" + +#: ../src/iop/toneequal.c:3520 +msgid "" +"mask histogram span between the first and last deciles.\n" +"the central line shows the average. orange bars appear at extrema if " +"clipping occurs." +msgstr "" +"maska rozpětí histogramu mezi prvním a posledním decilem.\n" +"střední čára ukazuje průměr. Pokud dojde k oříznutí, objeví se v extrémech " +"oranžové pruhy." + +#: ../src/iop/toneequal.c:3528 +msgid "" +"0 disables the quantization.\n" +"higher values posterize the luminance mask to help the guiding\n" +"produce piece-wise smooth areas when using high feathering values" +msgstr "" +"0 deaktivuje kvantizaci.\n" +"vyšší hodnoty posterizují masku jasu a pomáhají tak navádění\n" +"při použití vysokých hodnot prolnutí vytváří hladké plochy po částech" + +#: ../src/iop/toneequal.c:3537 +msgid "" +"use this to slide the mask average exposure along channels\n" +"for a better control of the exposure correction with the available nodes.\n" +"the magic wand will auto-adjust the average exposure" +msgstr "" +"použijte k posunutí průměrné expozice masky podél kanálů\n" +"pro lepší kontrolu korekce expozice s dostupnými uzly.\n" +"kouzelná hůlka automaticky upraví průměrnou expozici" + +#: ../src/iop/toneequal.c:3550 +msgid "" +"use this to counter the averaging effect of the guided filter\n" +"and dilate the mask contrast around -4EV\n" +"this allows to spread the exposure histogram over more channels\n" +"for a better control of the exposure correction.\n" +"the magic wand will auto-adjust the contrast" +msgstr "" +"použijte to k potlačení efektu průměrování řízeného filtru\n" +"a rozšiřte kontrast masky kolem -4EV\n" +"to umožňuje rozložit histogram expozice na více kanálů\n" +"pro lepší kontrolu korekce expozice.\n" +"kouzelná hůlka automaticky upraví kontrast" + +#: ../src/iop/toneequal.c:3573 ../src/iop/toneequal.c:3576 +msgid "display exposure mask" +msgstr "zobrazit expoziční masku" + +#: ../src/iop/tonemap.cc:71 +msgid "tone mapping" +msgstr "mapování tónů" + +#: ../src/iop/tonemap.cc:87 +msgid "" +"this module is deprecated. please use the local contrast or tone equalizer " +"module instead." +msgstr "" +"tento modul je zastaralý. místo toho použijte modul lokální kontrast nebo " +"tónový ekvalizér." + +#: ../src/iop/velvia.c:70 +msgid "velvia" +msgstr "velvia" + +#: ../src/iop/velvia.c:97 +msgid "" +"resaturate giving more weight to blacks, whites and low-saturation pixels" +msgstr "resaturace dává větší váhu černé, bílé a bodům s nízkou sytostí" + +#: ../src/iop/velvia.c:290 +msgid "the strength of saturation boost" +msgstr "síla zvýšení sytosti" + +#: ../src/iop/velvia.c:293 +msgid "how much to spare highlights and shadows" +msgstr "jak moc ušetřit světla a stíny" + +#: ../src/iop/vibrance.c:62 +msgid "" +"this module is deprecated. please use the vibrance slider in the color " +"balance rgb module instead." +msgstr "" +"tento modul je zastaralý. místo toho použijte posuvník živosti v modulu " +"vyvážení barev rgb." + +#: ../src/iop/vibrance.c:95 +msgid "" +"saturate and reduce the lightness of the most saturated pixels\n" +"to make the colors more vivid." +msgstr "" +"nasycuje a snižuje světlost nejvíce nasycených pixelů\n" +"aby byly barvy živější." + +#: ../src/iop/vibrance.c:211 +msgid "the amount of vibrance" +msgstr "množství živosti" + +#: ../src/iop/vignette.c:119 +msgid "simulate a lens fall-off close to edges" +msgstr "simulovat vypadnutí čočky blízko okrajů" + +#: ../src/iop/vignette.c:1022 +msgid "lomo" +msgstr "lomo" + +#: ../src/iop/vignette.c:1061 +msgctxt "section" +msgid "position / form" +msgstr "pozice / forma" + +#: ../src/iop/vignette.c:1069 +msgid "dithering" +msgstr "zrnění" + +#: ../src/iop/vignette.c:1081 +msgid "the radii scale of vignette for start of fall-off" +msgstr "poloměr stupnice vinětace pro začátek poklesu" + +#: ../src/iop/vignette.c:1083 +msgid "the radii scale of vignette for end of fall-off" +msgstr "poloměr stupnice vinětace pro konec poklesu" + +#: ../src/iop/vignette.c:1084 +msgid "strength of effect on brightness" +msgstr "síla účinku na jas" + +#: ../src/iop/vignette.c:1085 +msgid "strength of effect on saturation" +msgstr "síla účinku na sytost" + +#: ../src/iop/vignette.c:1086 +msgid "horizontal offset of center of the effect" +msgstr "horizontální posunutí středu efektu" + +#: ../src/iop/vignette.c:1087 +msgid "vertical offset of center of the effect" +msgstr "vertikální posunutí středu efektu" + +#: ../src/iop/vignette.c:1090 +msgid "" +"shape factor\n" +"0 produces a rectangle\n" +"1 produces a circle or ellipse\n" +"2 produces a diamond" +msgstr "" +"typ tvaru\n" +"0 vytvoří obdélník\n" +"1 vytvoří kružnici nebo elipsu\n" +"2 vytvoří diamant" + +#: ../src/iop/vignette.c:1094 +msgid "enable to have the ratio automatically follow the image size" +msgstr "povolit, aby se poměr automaticky řídil velikostí obrázku" + +#: ../src/iop/vignette.c:1095 +msgid "width-to-height ratio" +msgstr "poměr šířky k výšce" + +#: ../src/iop/vignette.c:1097 +msgid "add some level of random noise to prevent banding" +msgstr "přidat určitou úroveň náhodného šumu, aby se zabránilo pruhování" + +#: ../src/iop/vignette.c:1105 +#, c-format +msgid "[%s on node] change vignette/feather size" +msgstr "[%s na uzlu] změnit velikost viněty/prolnutí" + +#: ../src/iop/vignette.c:1108 +#, c-format +msgid "[%s on node] change vignette/feather size keeping ratio" +msgstr "[%s na uzlu] změnit poměr zachování velikosti viněty/prolnutí" + +#: ../src/iop/vignette.c:1111 +#, c-format +msgid "[%s on center] move vignette" +msgstr "[%s na střed] přesunout vinětu" + +#: ../src/iop/watermark.c:416 +msgid "watermark" +msgstr "vodotisk" + +#: ../src/iop/watermark.c:421 +msgid "overlay an SVG watermark like a signature on the picture" +msgstr "vodoznak SVG jako podpis na obrázku" + +#: ../src/iop/watermark.c:1306 +msgid "marker" +msgstr "popisovač" + +#: ../src/iop/watermark.c:1309 +#, c-format +msgid "SVG watermarks in %s/watermarks or %s/watermarks" +msgstr "SVG vodoznaky v %s/vodoznaky nebo %s/vodoznaky" + +#. Simple text +#: ../src/iop/watermark.c:1319 ../src/iop/watermark.c:1320 +msgid "text" +msgstr "text" + +#: ../src/iop/watermark.c:1321 +msgid "" +"text string, tag:\n" +"$(WATERMARK_TEXT)" +msgstr "" +"textový řetězec, štítek:\n" +"$ (WATERMARK_TEXT)" + +#: ../src/iop/watermark.c:1323 +msgid "content" +msgstr "obsah" + +#. Text font +#: ../src/iop/watermark.c:1328 +msgid "font" +msgstr "písmo" + +#: ../src/iop/watermark.c:1333 +msgid "" +"text font, tags:\n" +"$(WATERMARK_FONT_FAMILY)\n" +"$(WATERMARK_FONT_STYLE)\n" +"$(WATERMARK_FONT_WEIGHT)" +msgstr "" +"písmo textu, štítky:\n" +"$(WATERMARK_FONT_FAMILY)\n" +"$(WATERMARK_FONT_STYLE)\n" +"$(WATERMARK_FONT_WEIGHT)" + +#: ../src/iop/watermark.c:1348 +msgid "" +"watermark color, tag:\n" +"$(WATERMARK_COLOR)" +msgstr "" +"barva vodoznaku, štítek:\n" +"$ (WATERMARK_COLOR)" + +#: ../src/iop/watermark.c:1350 +msgid "select watermark color" +msgstr "vyberte barvu vodoznaku" + +#: ../src/iop/watermark.c:1352 +msgid "pick color from image" +msgstr "vybrat barvu z obrázku" + +#: ../src/iop/watermark.c:1365 +msgctxt "section" +msgid "placement" +msgstr "rozmístění" + +#: ../src/iop/watermark.c:1378 +msgid "" +"choose how to scale the watermark\n" +"• image: scale watermark relative to whole image\n" +"• larger border: scale larger watermark border relative to larger image " +"border\n" +"• smaller border: scale larger watermark border relative to smaller image " +"border\n" +"• height: scale watermark height to image height\n" +"• advanced options: choose watermark and image dimensions independently" +msgstr "" +"vyberte, jak změnit měřítko vodoznaku\n" +"• obrázek: měřítko vodoznaku vzhledem k celému obrázku\n" +"• větší okraj: měřítko většího okraje vodoznaku vzhledem k většímu okraji " +"obrázku\n" +"• menší okraj: měřítko většího okraje vodoznaku vzhledem k menšímu okraji " +"obrázku\n" +"• výška: měřítko výšky vodoznaku na výšku obrázku\n" +"• Pokročilé možnosti: nezávisle vyberte rozměry vodoznaku a obrázku" + +#: ../src/iop/watermark.c:1387 +msgid "reference image dimension against which to scale the watermark" +msgstr "referenční rozměr obrázku, podle kterého se měří vodoznak" + +#: ../src/iop/watermark.c:1391 +msgid "watermark dimension to scale" +msgstr "rozměr vodoznaku v měřítku" + +#: ../src/iop/watermark.c:1395 ../src/libs/print_settings.c:2675 +msgid "alignment" +msgstr "zarovnání" + +#. Let's add some tooltips and hook up some signals... +#: ../src/iop/watermark.c:1416 +msgid "the opacity of the watermark" +msgstr "neprůhlednost vodoznaku" + +#: ../src/iop/watermark.c:1417 +msgid "the scale of the watermark" +msgstr "měřítko vodoznaku" + +#: ../src/iop/watermark.c:1418 +msgid "the rotation of the watermark" +msgstr "rotace vodoznaku" + +#: ../src/iop/zonesystem.c:111 +msgid "zone system" +msgstr "zónový systém" + +#: ../src/iop/zonesystem.c:486 +msgid "" +"lightness zones\n" +"use mouse scrollwheel to change the number of zones\n" +"left-click on a border to create a marker\n" +"right-click on a marker to delete it" +msgstr "" +"zóny lehkosti\n" +"pomocí rolovacího kolečka myši změňte počet zón\n" +"klik levým tlačítkem myši na ohraničení vytvoří značku\n" +"klik pravým tlačítkem myši na značku ji smaže" + +#: ../src/libs/backgroundjobs.c:52 +msgid "background jobs" +msgstr "práce na pozadí" + +#: ../src/libs/camera.c:78 +msgid "camera settings" +msgstr "nastavení fotoaparátu" + +#: ../src/libs/camera.c:131 +msgid "toggle view property in center view" +msgstr "přepnout zobrazení vlastnosti ve středním pohledu" + +#: ../src/libs/camera.c:201 +msgid "connection with camera lost, exiting tethering mode" +msgstr "spojení s fotoaparátem ztraceno, opuštění režimu tetheringu" + +#: ../src/libs/camera.c:342 +msgid "battery" +msgstr "baterie" + +#: ../src/libs/camera.c:342 +msgid "n/a" +msgstr "není k dispozici" + +#. Camera control +#: ../src/libs/camera.c:417 +msgctxt "section" +msgid "camera control" +msgstr "ovládání kamery" + +#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2679 +msgid "modes" +msgstr "režimy" + +#: ../src/libs/camera.c:422 +msgid "timer (s)" +msgstr "časovač (e)" + +#: ../src/libs/camera.c:423 +msgid "count" +msgstr "počet" + +#: ../src/libs/camera.c:424 +msgid "brackets" +msgstr "závorky" + +#: ../src/libs/camera.c:425 +msgid "bkt. steps" +msgstr "bkt. kroky" + +#: ../src/libs/camera.c:458 +msgid "capture image(s)" +msgstr "získat obrázek(zky)" + +#: ../src/libs/camera.c:461 +msgid "toggle delayed capture mode" +msgstr "přepnout režim zpožděného snímání" + +#: ../src/libs/camera.c:462 +msgid "toggle sequenced capture mode" +msgstr "přepnout režim sekvenčního snímání" + +#: ../src/libs/camera.c:463 +msgid "toggle bracketed capture mode" +msgstr "přepnout režim snímání s různou expozicí" + +#: ../src/libs/camera.c:464 +msgid "the count of seconds before actually doing a capture" +msgstr "počet sekund před skutečným zachycením" + +#: ../src/libs/camera.c:466 +msgid "" +"the amount of images to capture in a sequence,\n" +"you can use this in conjunction with delayed mode to create stop-motion " +"sequences" +msgstr "" +"počet snímků, které se mají zachytit v sekvenci,\n" +"můžete to použít ve spojení se zpožděným režimem k vytvoření sekvencí stop-" +"pohyb" + +#: ../src/libs/camera.c:469 +msgid "" +"the amount of brackets on each side of centered shoot, amount of images = " +"(brackets*2) + 1" +msgstr "" +"počet snímků na každé straně středového snímku, počet snímků = (snímků*2) + 1" + +#: ../src/libs/camera.c:471 +msgid "" +"the amount of steps per bracket, steps is camera configurable and usually 3 " +"steps per stop\n" +"with other words, 3 steps is 1EV exposure step between brackets" +msgstr "" +"počet kroků na držák, kroky je konfigurovatelný kamerou a obvykle 3 kroky na " +"zastávku\n" +"jinými slovy, 3 kroky jsou 1EV expoziční krok mezi závorkami" + +#. user specified properties +#: ../src/libs/camera.c:494 +msgctxt "section" +msgid "additional properties" +msgstr "další vlastnosti" + +#: ../src/libs/camera.c:497 +msgid "label" +msgstr "štítek" + +#: ../src/libs/camera.c:505 +msgid "property" +msgstr "vlastnost" + +#: ../src/libs/camera.c:517 +msgid "add user property" +msgstr "přidat uživatelskou vlastnost" + +#: ../src/libs/camera.c:537 +msgid "program" +msgstr "program" + +#: ../src/libs/camera.c:540 ../src/libs/camera.c:542 +msgid "focus mode" +msgstr "režim ostření" + +#: ../src/libs/camera.c:553 +msgid "shutterspeed2" +msgstr "rychlost závěrky2" + +#: ../src/libs/camera.c:555 +msgid "shutterspeed" +msgstr "rychlost závěrky" + +#: ../src/libs/camera.c:561 +msgid "WB" +msgstr "ČB" + +#: ../src/libs/collect.c:164 +msgid "collections" +msgstr "kolekce" + +#: ../src/libs/collect.c:424 +msgid "search filmroll" +msgstr "hledat filmový pás" + +#: ../src/libs/collect.c:507 +#, c-format +msgid "problem selecting new path for the filmroll in %s" +msgstr "problém s výběrem nové cesty pro filmový pás v %s" + +#: ../src/libs/collect.c:579 +msgid "search filmroll..." +msgstr "hledat filmový pás..." + +#: ../src/libs/collect.c:584 +msgid "remove..." +msgstr "odstranit..." + +#: ../src/libs/collect.c:1310 +msgid "uncategorized" +msgstr "bez kategorie" + +#: ../src/libs/collect.c:2172 ../src/libs/filters/rating_range.c:120 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:151 +#: ../src/libs/filters/rating_range.c:302 +msgid "rejected" +msgstr "odmítnuto" + +#: ../src/libs/collect.c:2175 ../src/libs/filters/rating_range.c:122 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:303 +msgid "not rated" +msgstr "nehodnoceno" + +#: ../src/libs/collect.c:2359 +msgid "use <, <=, >, >=, <>, =, [;] as operators" +msgstr "jako operátory použijte <, <=, >, >=, <>, =, [;]" + +#: ../src/libs/collect.c:2363 +msgid "" +"use <, <=, >, >=, <>, =, [;] as operators\n" +"star rating: 0-5\n" +"rejected images: -1" +msgstr "" +"jako operátory použijte <, <=, >, >=, <>, =, [;]\n" +"hodnocení hvězdičkami: 0-5\n" +"odmítnuté obrázky: -1" + +#: ../src/libs/collect.c:2371 +msgid "" +"use <, <=, >, >=, <>, =, [;] as operators\n" +"type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)" +msgstr "" +"použijte <, <=, >, >=, <>, =, [;] jako operátory\n" +"zadejte data ve tvaru: RRRR:MM:DD hh:mm:ss.sss (povinný je pouze rok)" + +#: ../src/libs/collect.c:2378 +#, no-c-format +msgid "use `%' as wildcard and `,' to separate values" +msgstr "použijte `%' jako zástupný znak a `,' k oddělení hodnot" + +#: ../src/libs/collect.c:2385 +#, no-c-format +msgid "" +"use `%' as wildcard\n" +"click to include hierarchy + sub-hierarchies (suffix `*')\n" +"shift+click to include only the current hierarchy (no suffix)\n" +"ctrl+click to include only sub-hierarchies (suffix `|%')" +msgstr "" +"použijte `%' jako zástupný znak\n" +"kliknutím zahrnete hierarchii + podhierarchie (přípona `*')\n" +"shift+klik zahrnete pouze aktuální hierarchii (bez přípony)\n" +"ctrl+klik zahrnete pouze podhierarchie (přípona `|%')" + +#: ../src/libs/collect.c:2398 +#, no-c-format +msgid "" +"use `%' as wildcard\n" +"click to include location + sub-locations (suffix `*')\n" +"shift+click to include only the current location (no suffix)\n" +"ctrl+click to include only sub-locations (suffix `|%')" +msgstr "" +"použijte `%' jako zástupný znak\n" +"kliknutím zahrnete umístění + dílčí umístění (přípona `*')\n" +"shift+klik zahrnete pouze aktuální umístění (bez přípony)\n" +"ctrl+klik zahrnete pouze dílčí umístění (přípona `|%')" + +#: ../src/libs/collect.c:2411 +#, no-c-format +msgid "" +"use `%' as wildcard\n" +"click to include current + sub-folders (suffix `*')\n" +"shift+click to include only the current folder (no suffix)\n" +"ctrl+click to include only sub-folders (suffix `|%')" +msgstr "" +"použijte `%' jako zástupný znak\n" +"kliknutím zahrnete aktuální + podsložky (přípona ``*')\n" +"shift+klik zahrnete pouze aktuální složku (bez přípony)\n" +"ctrl+klik zahrnete pouze podsložky (přípona `|%')" + +#: ../src/libs/collect.c:2422 +#, no-c-format +msgid "use `%' as wildcard" +msgstr "použijte `%' jako zástupný znak" + +#: ../src/libs/collect.c:2488 ../src/libs/collect.c:2502 +#: ../src/libs/collect.c:3111 +msgid "clear this rule" +msgstr "vymazat toto pravidlo" + +#: ../src/libs/collect.c:2492 +msgid "clear this rule or add new rules" +msgstr "vymazat toto pravidlo nebo přidat nová pravidla" + +#: ../src/libs/collect.c:3117 +msgid "narrow down search" +msgstr "zúžit vyhledávání" + +#: ../src/libs/collect.c:3124 +msgid "add more images" +msgstr "přidat další obrázky" + +#: ../src/libs/collect.c:3131 +msgid "exclude images" +msgstr "vyloučit obrázky" + +#: ../src/libs/collect.c:3140 +msgid "change to: and" +msgstr "změnit na: a" + +#: ../src/libs/collect.c:3147 +msgid "change to: or" +msgstr "změnit na: nebo" + +#: ../src/libs/collect.c:3154 +msgid "change to: except" +msgstr "změnit na: kromě" + +#. the different categories +#: ../src/libs/collect.c:3184 ../src/libs/filtering.c:883 +#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1620 +#: ../src/libs/filtering.c:1964 +msgid "files" +msgstr "soubory" + +#: ../src/libs/collect.c:3189 ../src/libs/export_metadata.c:301 +#: ../src/libs/filtering.c:888 ../src/libs/filtering.c:955 +#: ../src/libs/filtering.c:1628 ../src/libs/filtering.c:1968 +#: ../src/libs/image.c:495 ../src/libs/image.c:633 ../src/libs/image.c:645 +#: ../src/libs/metadata.c:509 ../src/libs/metadata_view.c:1256 +msgid "metadata" +msgstr "metadata" + +#: ../src/libs/collect.c:3208 ../src/libs/filtering.c:909 +#: ../src/libs/filtering.c:976 ../src/libs/filtering.c:1966 +msgid "times" +msgstr "časy" + +#: ../src/libs/collect.c:3216 ../src/libs/filtering.c:917 +#: ../src/libs/filtering.c:984 ../src/libs/filtering.c:1652 +msgid "capture details" +msgstr "zachytit detaily" + +#: ../src/libs/collect.c:3225 ../src/libs/filtering.c:926 +#: ../src/libs/filtering.c:993 ../src/libs/filtering.c:1664 +#: ../src/libs/filtering.c:1970 ../src/libs/tools/darktable.c:61 +msgid "darktable" +msgstr "editor" + +#: ../src/libs/collect.c:3240 +msgid "collections settings" +msgstr "nastavení kolekcí" + +#: ../src/libs/collect.c:3267 ../src/libs/export.c:1126 +#: ../src/libs/metadata.c:615 ../src/libs/metadata_view.c:1339 +#: ../src/libs/recentcollect.c:295 ../src/libs/tagging.c:3526 +msgid "preferences..." +msgstr "předvolby..." + +#: ../src/libs/collect.c:3388 ../src/libs/filtering.c:1494 +msgid "AND" +msgstr "A (AND)" + +#: ../src/libs/collect.c:3393 ../src/libs/filtering.c:1499 +msgid "OR" +msgstr "NEBO (OR)" + +#. case DT_LIB_COLLECT_MODE_AND_NOT: +#: ../src/libs/collect.c:3398 ../src/libs/filtering.c:1504 +msgid "BUT NOT" +msgstr "ALE NE" + +#: ../src/libs/collect.c:3588 ../src/libs/filtering.c:2238 +msgid "revert to a previous set of rules" +msgstr "vrátit se k předchozí sadě pravidel" + +#: ../src/libs/collect.c:3671 +msgid "jump back to previous collection" +msgstr "jdi zpět na předešlou kolekci" + +#: ../src/libs/colorpicker.c:51 +msgid "LCh" +msgstr "LCh" + +#: ../src/libs/colorpicker.c:51 +msgid "HSV" +msgstr "HSV" + +#: ../src/libs/colorpicker.c:51 +msgid "Hex" +msgstr "Hex" + +#: ../src/libs/colorpicker.c:53 +msgid "mean" +msgstr "střední" + +#: ../src/libs/colorpicker.c:71 +msgid "color picker" +msgstr "kapátko" + +#: ../src/libs/colorpicker.c:513 +msgid "" +"hover to highlight sample on canvas,\n" +"click to lock sample,\n" +"right-click to load sample area into active color picker" +msgstr "" +"najetím myší zvýrazníte vzorek na plátně,\n" +"kliknutím uzamknete vzorek,\n" +"kliknutím pravým tlačítkem myši načtete oblast vzorku do aktivního výběru " +"barvy" + +#: ../src/libs/colorpicker.c:626 ../src/libs/colorpicker.c:693 +msgid "click to (un)hide large color patch" +msgstr "kliknutím (od)skryjete velkou barevnou plochu" + +#: ../src/libs/colorpicker.c:649 +msgid "statistic" +msgstr "statistika" + +#: ../src/libs/colorpicker.c:650 +msgid "select which statistic to show" +msgstr "vyberte, která statistika se má zobrazit" + +#: ../src/libs/colorpicker.c:660 +msgid "select which color mode to use" +msgstr "vyberte, který barevný režim chcete použít" + +#: ../src/libs/colorpicker.c:671 +msgid "" +"turn on color picker\n" +"ctrl+click or right-click to select an area" +msgstr "" +"zapněte výběr barvy\n" +"ctrl+kliknutím nebo kliknutím pravým tlačítkem vyberte oblast" + +#: ../src/libs/colorpicker.c:722 +msgid "add sample" +msgstr "přidat vzorek" + +#. Adding the live samples section +#: ../src/libs/colorpicker.c:727 +msgctxt "section" +msgid "live samples" +msgstr "živé vzorky" + +#: ../src/libs/colorpicker.c:738 +msgid "display samples on image/vectorscope" +msgstr "zobrazit vzorky na obrázku/vektoroskopu" + +#: ../src/libs/colorpicker.c:749 +msgid "restrict scope to selection" +msgstr "omezit rozsah na výběr" + +#: ../src/libs/copy_history.c:61 +msgid "history stack" +msgstr "zásobník historie" + +#: ../src/libs/copy_history.c:114 +msgid "open sidecar file" +msgstr "otevřít pomocný soubor" + +#: ../src/libs/copy_history.c:166 +#, c-format +msgid "error loading file '%s'" +msgstr "chyba při čtení souboru '%s'" + +#: ../src/libs/copy_history.c:206 +#, c-format +msgid "no history compression of %d image" +msgid_plural "no history compression of %d images" +msgstr[0] "žádná komprese historie %d obrázku" +msgstr[1] "žádná komprese historie %d obrázků" +msgstr[2] "žádná komprese historie %d obrázků" + +#: ../src/libs/copy_history.c:247 +msgid "delete images' history?" +msgstr "vymazat historii obrázků?" + +#: ../src/libs/copy_history.c:248 +#, c-format +msgid "do you really want to clear history of %d selected image?" +msgid_plural "do you really want to clear history of %d selected images?" +msgstr[0] "opravdu odstranit historii %d vybraného obrázku?" +msgstr[1] "opravdu odstranit historii %d vybraných obrázků?" +msgstr[2] "opravdu odstranit historii %d vybraných obrázků?" + +#: ../src/libs/copy_history.c:364 +msgid "selective copy..." +msgstr "selektivní výběr..." + +#: ../src/libs/copy_history.c:365 +msgid "choose which modules to copy from the source image" +msgstr "vyberte, které moduly chcete zkopírovat ze zdrojového obrázku" + +#: ../src/libs/copy_history.c:371 +msgid "" +"copy history stack of\n" +"first selected image" +msgstr "" +"zkopírovat zásobník historie z\n" +"prvního vybraného obrázku" + +#: ../src/libs/copy_history.c:376 +msgid "selective paste..." +msgstr "selektivní vložení..." + +#: ../src/libs/copy_history.c:377 +msgid "choose which modules to paste to the target image(s)" +msgstr "vyberte, které moduly chcete vložit do cílového obrázku (obrázků)" + +#: ../src/libs/copy_history.c:382 ../src/libs/image.c:655 +msgid "paste" +msgstr "vložit" + +#: ../src/libs/copy_history.c:383 +msgid "" +"paste history stack to\n" +"all selected images" +msgstr "" +"vložit zásobník historie do\n" +"všech vybraných obrázků" + +#: ../src/libs/copy_history.c:389 +msgid "compress history" +msgstr "komprimovat historii" + +#: ../src/libs/copy_history.c:390 +msgid "" +"compress history stack of\n" +"all selected images" +msgstr "" +"komprimovat zásobník historie\n" +"všech vybraných obrázků" + +#: ../src/libs/copy_history.c:395 +msgid "" +"discard history stack of\n" +"all selected images" +msgstr "" +"zahodit zásobník historie u\n" +"všech vybraných obrázků" + +#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:851 +msgid "how to handle existing history" +msgstr "jak zacházet se stávající historií" + +#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:854 +msgid "append" +msgstr "připojit" + +#: ../src/libs/copy_history.c:409 +msgid "load sidecar file..." +msgstr "načíst pomocný soubor..." + +#: ../src/libs/copy_history.c:410 +msgid "" +"open an XMP sidecar file\n" +"and apply it to selected images" +msgstr "" +"otevřít pomocný XMP soubor\n" +"a použit jej na vybrané snímky" + +#: ../src/libs/copy_history.c:415 +msgid "write history stack and tags to XMP sidecar files" +msgstr "zapsat zásobník historie a tagy do pomocných souborů XMP" + +#: ../src/libs/duplicate.c:60 +msgid "duplicate manager" +msgstr "správce duplikátů" + +#: ../src/libs/duplicate.c:407 +msgid "create a 'virgin' duplicate of the image without any development" +msgstr "vytvořit 'panenský' duplikát obrázku bez veškerých úprav" + +#: ../src/libs/duplicate.c:412 +msgid "create a duplicate of the image with same history stack" +msgstr "vytvořit duplikát obrázku včetně kompletní historie úprav" + +#: ../src/libs/export.c:160 +msgid "export" +msgstr "export" + +#: ../src/libs/export.c:306 +msgid "invalid format for export selected" +msgstr "vybrán neplatný formát pro export" + +#: ../src/libs/export.c:311 +msgid "invalid storage for export selected" +msgstr "vybráno neplatné úložiště pro export" + +#: ../src/libs/export.c:322 +msgid "export to disk" +msgstr "exportovat na disk" + +#: ../src/libs/export.c:516 +#, c-format +msgid "which is equal to %s × %s px" +msgstr "což se rovná %s × %s px" + +#: ../src/libs/export.c:555 +msgctxt "unit" +msgid "in" +msgstr "z" + +#: ../src/libs/export.c:1141 +msgctxt "section" +msgid "storage options" +msgstr "nastavení úložiště" + +#: ../src/libs/export.c:1145 +msgid "target storage" +msgstr "cílové úložiště" + +#: ../src/libs/export.c:1171 +msgctxt "section" +msgid "format options" +msgstr "nastavení formátu" + +#: ../src/libs/export.c:1175 +msgid "file format" +msgstr "formát souboru" + +#: ../src/libs/export.c:1193 +msgctxt "section" +msgid "global options" +msgstr "globální nastavení" + +#: ../src/libs/export.c:1196 +msgid "set size" +msgstr "nastavit velikost" + +#: ../src/libs/export.c:1197 +msgid "choose a method for setting the output size" +msgstr "zvolte způsob nastavení výstupní velikosti" + +#: ../src/libs/export.c:1200 +msgid "in pixels (for file)" +msgstr "v bodech (pro soubor)" + +#: ../src/libs/export.c:1201 +msgid "in cm (for print)" +msgstr "v cm (pro tisk)" + +#: ../src/libs/export.c:1202 +msgid "in inch (for print)" +msgstr "v palcích (pro tisk)" + +#: ../src/libs/export.c:1203 +msgid "by scale (for file)" +msgstr "podle měřítka (pro soubor)" + +#: ../src/libs/export.c:1206 +msgid "print width" +msgstr "šířka tisku" + +#: ../src/libs/export.c:1208 ../src/libs/export.c:1225 +msgid "" +"maximum output width limit.\n" +"click middle mouse button to reset to 0." +msgstr "" +"limit maximální výstupní šířky.\n" +"kliknutím prostředním tlačítkem myši resetujte na 0." + +#: ../src/libs/export.c:1212 +msgid "print height" +msgstr "výška tisku" + +#: ../src/libs/export.c:1214 ../src/libs/export.c:1231 +msgid "" +"maximum output height limit.\n" +"click middle mouse button to reset to 0." +msgstr "" +"limit maximální výstupní výšky.\n" +"kliknutím prostředním tlačítkem myši resetujte na 0." + +#: ../src/libs/export.c:1220 +msgid "resolution in dot per inch" +msgstr "rozlišení v bodech na palec (DPI)" + +#: ../src/libs/export.c:1244 +msgid "@" +msgstr "@" + +#: ../src/libs/export.c:1258 ../src/libs/tools/global_toolbox.c:217 +msgid "px" +msgstr "px" + +#: ../src/libs/export.c:1266 +msgid "" +"it can be an integer, decimal number or simple fraction.\n" +"zero or empty values are equal to 1.\n" +"click middle mouse button to reset to 1." +msgstr "" +"může to být celé číslo, desetinné číslo nebo jednoduchý zlomek.\n" +"nulové nebo prázdné hodnoty se rovnají 1.\n" +"klik prostředním tlačítkem myši resetujte na 1." + +#: ../src/libs/export.c:1292 +msgid "allow upscaling" +msgstr "povolit upscaling" + +#: ../src/libs/export.c:1301 +msgid "high quality resampling" +msgstr "vysoce kvalitní převzorkování" + +#: ../src/libs/export.c:1302 +msgid "do high quality resampling during export" +msgstr "provádět vysoce kvalitní převzorkování během exportu" + +#: ../src/libs/export.c:1310 +msgid "store masks" +msgstr "ukládat masky" + +#: ../src/libs/export.c:1311 +msgid "store masks as layers in exported images. only works for some formats." +msgstr "" +"ukládat masky jako vrstvy v exportovaných obrázcích. funguje pouze pro " +"některé formáty." + +#: ../src/libs/export.c:1322 ../src/libs/export.c:1357 +#: ../src/libs/print_settings.c:2777 ../src/libs/print_settings.c:2823 +msgid "image settings" +msgstr "nastavení obrázku" + +#: ../src/libs/export.c:1332 ../src/libs/print_settings.c:2811 +msgid "output ICC profiles" +msgstr "výstupní ICC profily" + +#: ../src/libs/export.c:1340 +msgid "" +"• perceptual: smoothly moves out-of-gamut colors into gamut, preserving " +"gradations,\n" +"but distorts in-gamut colors in the process.\n" +"note that perceptual is often a proprietary LUT that depends on the " +"destination space.\n" +"\n" +"• relative colorimetric: keeps luminance while reducing as little as " +"possible\n" +"saturation until colors fit in gamut.\n" +"\n" +"• saturation: designed to present eye-catching business graphics\n" +"by preserving the saturation. (not suited for photography).\n" +"\n" +"• absolute colorimetric: adapt white point of the image to the white point " +"of the\n" +"destination medium and do nothing else. mainly used when proofing colors.\n" +"(not suited for photography)." +msgstr "" +"• percepční: plynule přesouvá barvy mimo gamut do gamutu, zachovává " +"gradace,\n" +"ale v procesu zkresluje barvy v gamutu.\n" +"všimněte si, že percepční je často proprietární LUT, která závisí na cílovém " +"prostoru.\n" +"\n" +"• relativní kolorimetrické: zachovává jas a zároveň snižuje co nejméně\n" +"sytost, dokud se barvy nevejdou do gamutu.\n" +"\n" +"• sytost: navržena tak, aby představovala poutavou obchodní grafiku\n" +"zachováním sytosti. (není vhodné pro fotografování).\n" +"\n" +"• Absolutní kolorimetrické: přizpůsobení bílého bodu obrazu bílému bodu\n" +"cílové médium a nedělat nic jiného. používá se hlavně při nátisku barev.\n" +"(není vhodné pro fotografování)." + +#: ../src/libs/export.c:1367 ../src/libs/print_settings.c:2833 +msgid "style" +msgstr "styl" + +#: ../src/libs/export.c:1370 +msgid "temporary style to use while exporting" +msgstr "dočasný styl pro použití při exportu" + +#: ../src/libs/export.c:1377 ../src/libs/print_settings.c:2876 +msgid "" +"whether the style items are appended to the history or replacing the history" +msgstr "zda jsou položky stylu připojeny k historii nebo nahrazují historii" + +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 +msgid "replace history" +msgstr "nahradit historii" + +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 +msgid "append history" +msgstr "připojit historii" + +#: ../src/libs/export.c:1398 +msgctxt "actionbutton" +msgid "export" +msgstr "export" + +#: ../src/libs/export.c:1400 +msgid "export with current settings" +msgstr "exportovat s aktuálním nastavením" + +#: ../src/libs/export_metadata.c:148 +msgid "select tag" +msgstr "vybrat štítek" + +#: ../src/libs/export_metadata.c:150 +msgid "_add" +msgstr "_přidat" + +#: ../src/libs/export_metadata.c:151 ../src/libs/geotagging.c:811 +msgid "_done" +msgstr "_hotovo" + +#: ../src/libs/export_metadata.c:162 +msgid "list filter" +msgstr "seznam filtrů" + +#: ../src/libs/export_metadata.c:173 +msgid "" +"list of available tags. click 'add' button or double-click on tag to add the " +"selected one" +msgstr "" +"seznam dostupných značek. klikněte na tlačítko 'přidat' nebo dvakrát " +"klikněte na značku a přidejte vybranou značku" + +#: ../src/libs/export_metadata.c:274 +msgid "edit metadata exportation" +msgstr "upravit export metadat" + +#: ../src/libs/export_metadata.c:293 +msgid "general settings" +msgstr "obecná nastavení" + +#: ../src/libs/export_metadata.c:298 +msgid "EXIF data" +msgstr "EXIF data" + +#: ../src/libs/export_metadata.c:299 +msgid "export EXIF metadata" +msgstr "exportovat EXIF metadata" + +#: ../src/libs/export_metadata.c:302 +msgid "export darktable XMP metadata (from metadata editor module)" +msgstr "export darktable XMP metadat (z modulu editor metadat)" + +#: ../src/libs/export_metadata.c:312 +msgid "only embedded" +msgstr "pouze vestavěné" + +#: ../src/libs/export_metadata.c:313 +msgid "" +"per default the interface sends some (limited) metadata beside the image to " +"remote storage.\n" +"to avoid this and let only image embedded darktable XMP metadata, check this " +"flag.\n" +"if remote storage doesn't understand darktable XMP metadata, you can use " +"calculated metadata instead" +msgstr "" +"standardně rozhraní odesílá některá (omezená) metadata vedle obrázku do " +"vzdáleného úložiště.\n" +"chcete-li se tomu vyhnout a ponechat pouze vložená metadata darktable XMP, " +"zaškrtněte tento příznak.\n" +"pokud vzdálené úložiště nerozumí metadatům darktable XMP, můžete místo toho " +"použít vypočítaná metadata" + +#: ../src/libs/export_metadata.c:319 ../src/libs/image.c:623 +msgid "geo tags" +msgstr "geo štítky" + +#: ../src/libs/export_metadata.c:320 +msgid "export geo tags" +msgstr "export geografických značek" + +#: ../src/libs/export_metadata.c:323 +msgid "export tags (to Xmp.dc.Subject)" +msgstr "exportovat značky (do Xmp.dc.Subject)" + +#: ../src/libs/export_metadata.c:331 +msgid "private tags" +msgstr "soukromé značky" + +#: ../src/libs/export_metadata.c:332 +msgid "export private tags" +msgstr "exportovat soukromé značky" + +#: ../src/libs/export_metadata.c:334 +msgid "synonyms" +msgstr "synonyma" + +#: ../src/libs/export_metadata.c:335 +msgid "export tags synonyms" +msgstr "exportovat synonyma značek" + +#: ../src/libs/export_metadata.c:337 +msgid "omit hierarchy" +msgstr "vynechat hierarchii" + +#: ../src/libs/export_metadata.c:338 +msgid "" +"only the last part of the hierarchical tags is included. can be useful if " +"categories are not used" +msgstr "" +"je zahrnuta pouze poslední část hierarchických značek. může být užitečné, " +"pokud se nepoužívají kategorie" + +#: ../src/libs/export_metadata.c:341 +msgid "hierarchical tags" +msgstr "hierarchické značky" + +#: ../src/libs/export_metadata.c:342 +msgid "export hierarchical tags (to Xmp.lr.Hierarchical Subject)" +msgstr "exportovat hierarchické značky (do Xmp.lr.Hierarchical Subject)" + +#: ../src/libs/export_metadata.c:344 +msgid "develop history" +msgstr "historie zpracování" + +#: ../src/libs/export_metadata.c:345 +msgid "" +"export darktable development data (recovery purpose in case of loss of " +"database or XMP file)" +msgstr "" +"exportovat vývojová data darktable (slouží pro obnovu v případě ztráty " +"databáze nebo souboru XMP)" + +#: ../src/libs/export_metadata.c:352 +msgid "per metadata settings" +msgstr "podle nastavení metadat" + +#: ../src/libs/export_metadata.c:364 +msgid "redefined tag" +msgstr "předefinovaný štítek" + +#: ../src/libs/export_metadata.c:370 +msgid "formula" +msgstr "vzorec" + +#: ../src/libs/export_metadata.c:373 +msgid "" +"list of calculated metadata\n" +"click on '+' button to select and add new metadata\n" +"if formula is empty, the corresponding metadata is removed from exported " +"file,\n" +"if formula is '=', the EXIF metadata is exported even if EXIF data are " +"disabled\n" +"otherwise the corresponding metadata is calculated and added to exported " +"file\n" +"click on formula cell to edit\n" +"type '$(' to activate the completion and see the list of variables" +msgstr "" +"seznam vypočítaných metadat\n" +"kliknutím na tlačítko „+“ vyberte a přidejte nová metadata\n" +"pokud je vzorec prázdný, příslušná metadata se z exportovaného souboru " +"odstraní,\n" +"pokud je vzorec '=', metadata EXIF se exportují, i když jsou data EXIF " +"zakázána\n" +"jinak jsou vypočítána odpovídající metadata a přidána do exportovaného " +"souboru\n" +"klikněte na buňku vzorce pro úpravu\n" +"zadejte '$(' pro aktivaci dokončení a zobrazení seznamu proměnných" + +#: ../src/libs/export_metadata.c:430 +msgid "add an output metadata tag" +msgstr "přidat výstupní značku metadat" + +#: ../src/libs/export_metadata.c:435 +msgid "delete metadata tag" +msgstr "odstranit značku metadat" + +#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:130 +msgid "full path" +msgstr "celá cesta" + +#: ../src/libs/filtering.c:72 +msgid "group" +msgstr "skupina" + +#: ../src/libs/filtering.c:73 ../src/libs/live_view.c:313 +msgid "id" +msgstr "id" + +#: ../src/libs/filtering.c:74 +msgid "custom sort" +msgstr "uživatelské třídění" + +#: ../src/libs/filtering.c:75 +msgid "shuffle" +msgstr "náhodně" + +#: ../src/libs/filtering.c:269 +msgid "collection filters" +msgstr "filtry kolekce" + +#: ../src/libs/filtering.c:302 +msgid "initial setting" +msgstr "výchozí nastavení" + +#: ../src/libs/filtering.c:321 +msgid "imported: last 24h" +msgstr "importováno: posledních 24 hod" + +#: ../src/libs/filtering.c:326 +msgid "imported: last 30 days" +msgstr "importováno: posledních 30 dní" + +#: ../src/libs/filtering.c:332 +msgid "taken: last 24h" +msgstr "získáno: posledních 24 hodin" + +#: ../src/libs/filtering.c:336 +msgid "taken: last 30 days" +msgstr "získáno: posledních 30 dní" + +#: ../src/libs/filtering.c:728 +msgid "click or click&drag to select one or multiple values" +msgstr "kliknutím nebo kliknutím&tažením vyberte jednu nebo více hodnot" + +#: ../src/libs/filtering.c:729 +msgid "right-click opens a menu to select the available values" +msgstr "" +"kliknutím pravým tlačítkem myši otevřete nabídku pro výběr dostupných hodnot" + +#: ../src/libs/filtering.c:826 +#, c-format +msgid "you can't have more than %d rules" +msgstr "nemůžete mít více než %d pravidel" + +#: ../src/libs/filtering.c:948 ../src/libs/filtering.c:1618 +msgid "rule property" +msgstr "vlastnosti pravidla" + +#: ../src/libs/filtering.c:1013 +msgid "" +"rule property\n" +"this can't be changed as the rule is pinned to the toolbar" +msgstr "" +"vlastnost pravidla\n" +"toto nelze změnit, protože pravidlo je připnuto na panel nástrojů" + +#: ../src/libs/filtering.c:1095 +msgctxt "quickfilter" +msgid "filter" +msgstr "filtr" + +#: ../src/libs/filtering.c:1124 +msgid "" +"this rule is pinned to the top toolbar\n" +"click to un-pin" +msgstr "" +"toto pravidlo je připnuto na horní panel nástrojů\n" +"kliknutím odepnete" + +#: ../src/libs/filtering.c:1125 +msgid "you can't disable the rule as it is pinned to the toolbar" +msgstr "pravidlo nelze zakázat, protože je připnuté na panel nástrojů" + +#: ../src/libs/filtering.c:1126 +msgid "you can't remove the rule as it is pinned to the toolbar" +msgstr "nemůžete odstranit pravidlo, protože je připnuté na panel nástrojů" + +#: ../src/libs/filtering.c:1131 +msgid "click to pin this rule to the top toolbar" +msgstr "kliknutím toto pravidlo připnete na horní panel nástrojů" + +#: ../src/libs/filtering.c:1132 +msgid "remove this collect rule" +msgstr "odstranit toto pravidlo shromažďování" + +#: ../src/libs/filtering.c:1134 +msgid "this rule is enabled" +msgstr "toto pravidlo je povoleno" + +#: ../src/libs/filtering.c:1136 +msgid "this rule is disabled" +msgstr "toto pravidlo je zakázáno" + +#: ../src/libs/filtering.c:1264 +msgid "or" +msgstr "nebo" + +#: ../src/libs/filtering.c:1265 +msgid "and not" +msgstr "a ne (and not)" + +#: ../src/libs/filtering.c:1267 +msgid "define how this rule should interact with the previous one" +msgstr "definuje, jak toto pravidlo spolupracuje s předešlým" + +#: ../src/libs/filtering.c:1528 +msgid " (off)" +msgstr " (vyp)" + +#: ../src/libs/filtering.c:1725 +msgid "you can't add more rules." +msgstr "nemůžete přidat další pravidla." + +#: ../src/libs/filtering.c:1759 +msgid "shown filters" +msgstr "zobrazené filtry" + +#: ../src/libs/filtering.c:1774 +msgid "new filter" +msgstr "nový filtr" + +#. the actions part of the popover +#: ../src/libs/filtering.c:1781 +msgid "actions" +msgstr "akce" + +#: ../src/libs/filtering.c:1784 +msgid "reset quickfilters" +msgstr "reset rychlých filtrů" + +#: ../src/libs/filtering.c:1957 +msgid "sort order" +msgstr "pořadí řazení" + +#: ../src/libs/filtering.c:1960 +msgid "determine the sort order of shown images" +msgstr "určit pořadí řazení zobrazených obrázků" + +#: ../src/libs/filtering.c:1980 +msgid "sort direction" +msgstr "směr řazení" + +#: ../src/libs/filtering.c:1985 +msgid "remove this sort order" +msgstr "odstranit tento směr třídění" + +#: ../src/libs/filtering.c:2069 +#, c-format +msgid "you can't have more than %d sort orders" +msgstr "nemůžete mít více než %d řazení" + +#: ../src/libs/filtering.c:2123 +msgid "DESC" +msgstr "SESTUPNĚ" + +#: ../src/libs/filtering.c:2123 +msgid "ASC" +msgstr "VZESTUPNĚ" + +#: ../src/libs/filtering.c:2234 +msgid "new rule" +msgstr "nové pravidlo" + +#: ../src/libs/filtering.c:2235 +msgid "append new rule to collect images" +msgstr "přidat nové pravidlo pro sběr obrázků" + +#: ../src/libs/filtering.c:2246 ../src/libs/tools/filter.c:116 +msgid "sort by" +msgstr "třídit podle" + +#: ../src/libs/filtering.c:2254 +msgid "new sort" +msgstr "nové třídění" + +#: ../src/libs/filtering.c:2255 +msgid "append new sort to order images" +msgstr "přidat nový směr třídění obrázků" + +#: ../src/libs/filtering.c:2258 +msgid "revert to a previous set of sort orders" +msgstr "vrátit se k předchozí sadě třídění" + +#. we change the tooltip of the reset button here, as we are sure the header is defined now +#: ../src/libs/filtering.c:2308 +msgid "" +"reset\n" +"ctrl+click to remove pinned rules too" +msgstr "" +"reset\n" +"ctrl+klik odstraní i připnutá pravidla" + +#: ../src/libs/filters/colors.c:140 +msgid "Y" +msgstr "Y" + +#: ../src/libs/filters/colors.c:149 +msgid "P" +msgstr "P" + +#: ../src/libs/filters/colors.c:269 +msgid "color filter" +msgstr "barevný filtr" + +#: ../src/libs/filters/colors.c:294 +msgid "" +"filter by images color label\n" +"click to toggle the color label selection\n" +"ctrl+click to exclude the color label\n" +"the gray button affects all color labels" +msgstr "" +"filtrovat podle barevného štítku obrázků\n" +"kliknutím přepnete výběr barevných štítků\n" +"ctrl + klik vyloučíte barevný štítek\n" +"šedé tlačítko ovlivňuje všechny barevné štítky" + +#. create the filter combobox +#: ../src/libs/filters/colors.c:301 ../src/libs/filters/colors.c:312 +#: ../src/libs/filters/grouping.c:167 ../src/libs/filters/history.c:153 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/filters/module_order.c:161 +#: ../src/libs/filters/rating.c:199 ../src/libs/filters/rating.c:210 +#: ../src/libs/filters/rating_range.c:356 +msgid "rules" +msgstr "pravidla" + +#: ../src/libs/filters/colors.c:306 +msgid "" +"filter by images color label\n" +"and (∩): images having all selected color labels\n" +"or (∪): images with at least one of the selected color labels" +msgstr "" +"filtrovat podle barevného štítku obrázků\n" +"a (∩): obrázky, které mají všechny vybrané barevné štítky\n" +"nebo (∪): obrázky s alespoň jedním z vybraných barevných štítků" + +#: ../src/libs/filters/filename.c:370 +msgid "" +"enter filename to search.\n" +"multiple values can be separated by ','\n" +"\n" +"right-click to get existing filenames" +msgstr "" +"zadej název hledaného souboru.\n" +"více hodnot lze oddělit ','\n" +"\n" +"klepnutím pravým tlačítkem myši získáš existující názvy souborů" + +#: ../src/libs/filters/filename.c:381 +msgid "extension" +msgstr "rozšíření" + +#: ../src/libs/filters/filename.c:382 +msgid "" +"enter extension to search with starting dot\n" +"multiple values can be separated by ','\n" +"handled keywords: 'RAW', 'NOT RAW', 'LDR', 'HDR'\n" +"\n" +"right-click to get existing extensions" +msgstr "" +"zadejte příponu pro vyhledávání s počáteční tečkou\n" +"více hodnot lze oddělit ','\n" +"zpracovaná klíčová slova: 'RAW', 'NOT RAW', 'LDR', 'HDR'\n" +"\n" +"kliknutím pravým tlačítkem získáte existující rozšíření" + +#: ../src/libs/filters/filename.c:410 +msgid "" +"click to select filename\n" +"ctrl+click to select multiple values" +msgstr "" +"klikni pro výběr názvu souboru\n" +"ctrl+klik pro výběr více hodnot" + +#: ../src/libs/filters/filename.c:437 +msgid "" +"click to select extension\n" +"ctrl+click to select multiple values" +msgstr "" +"klikni pro výběr rozšíření\n" +"ctrl+klik pro výběr více hodnot" + +#. the button to close the popup +#: ../src/libs/filters/filename.c:457 +msgid "ok" +msgstr "ok" + +#: ../src/libs/filters/grouping.c:141 ../src/libs/filters/grouping.c:169 +msgid "ungrouped images" +msgstr "neseskupené obrázky" + +#: ../src/libs/filters/grouping.c:168 +msgid "select the type of grouped image to filter" +msgstr "vyberte typ seskupeného obrázku, který chcete filtrovat" + +#. predefined selections +#: ../src/libs/filters/grouping.c:169 ../src/libs/filters/history.c:38 +#: ../src/libs/filters/local_copy.c:38 ../src/libs/filters/module_order.c:155 +#: ../src/libs/filters/rating_range.c:59 ../src/libs/filters/rating_range.c:83 +#: ../src/libs/filters/rating_range.c:131 ../src/libs/filters/ratio.c:68 +#: ../src/libs/filters/ratio.c:81 +msgid "all images" +msgstr "všechny obrázky" + +#: ../src/libs/filters/history.c:153 +msgid "filter on history state" +msgstr "filtrovat stav historie" + +#: ../src/libs/filters/local_copy.c:142 +msgid "local copied state filter" +msgstr "místní zkopírovaný stavový filtr" + +#: ../src/libs/filters/module_order.c:161 +msgid "filter images based on their module order" +msgstr "filtrovat obrázky na základě pořadí jejich modulů" + +#: ../src/libs/filters/rating.c:199 +msgid "comparator" +msgstr "srovnávač" + +#: ../src/libs/filters/rating.c:200 ../src/libs/filters/rating.c:210 +msgid "filter by images rating" +msgstr "filtr podle hodnocení obrázků" + +#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:596 +#: ../src/libs/tools/ratings.c:56 +msgid "ratings" +msgstr "hodnocení" + +#: ../src/libs/filters/rating.c:211 +msgid "unstarred only" +msgstr "pouze bez hvězdičky" + +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:65 +#: ../src/libs/filters/rating_range.c:89 +msgid "rejected only" +msgstr "pouze odmítnuté" + +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:62 +#: ../src/libs/filters/rating_range.c:86 ../src/libs/filters/rating_range.c:158 +msgid "all except rejected" +msgstr "vše kromě odmítnutých" + +#: ../src/libs/filters/rating_range.c:67 ../src/libs/filters/rating_range.c:91 +msgid "not rated only" +msgstr "pouze nehodnocené" + +#: ../src/libs/filters/rating_range.c:296 +msgid "better" +msgstr "lepší" + +#: ../src/libs/filters/rating_range.c:297 +msgid "worse" +msgstr "worse" + +#: ../src/libs/filters/rating_range.c:298 +msgid "cap" +msgstr "víčko" + +#: ../src/libs/filters/rating_range.c:313 +msgid "rating filter" +msgstr "filtr hodnocení" + +#: ../src/libs/filters/ratio.c:70 ../src/libs/filters/ratio.c:82 +msgid "portrait images" +msgstr "obrázky na výšku" + +#: ../src/libs/filters/ratio.c:71 ../src/libs/filters/ratio.c:83 +msgid "square images" +msgstr "čtvercové obrázky" + +#: ../src/libs/filters/ratio.c:72 ../src/libs/filters/ratio.c:84 +msgid "landscape images" +msgstr "obrázky na šířku" + +#: ../src/libs/filters/search.c:179 +#, no-c-format +msgid "" +"filter by text from images metadata, camera brand/model, tags, file path and " +"name\n" +"`%' is the wildcard character\n" +"by default start and end wildcards are auto-applied\n" +"starting or ending with a double quote disables the corresponding wildcard\n" +"is dimmed during the search execution" +msgstr "" +"filtrovat podle textu z metadat obrázků, značky/modelu fotoaparátu, značek, " +"cesty k souboru a názvu\n" +"„%“ je zástupný znak\n" +"ve výchozím nastavení jsou zástupné znaky začátku a konce použity " +"automaticky\n" +"začínající nebo končící dvojitými uvozovkami deaktivuje odpovídající " +"zástupný znak\n" +"je během vyhledávání ztlumená" + +#: ../src/libs/geotagging.c:368 +msgid "apply offset and geo-location" +msgstr "použít posun a geografickou polohu" + +#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1914 +msgid "apply geo-location" +msgstr "použít geografickou polohu" + +#: ../src/libs/geotagging.c:371 +msgid "" +"apply offset and geo-location to matching images\n" +"double operation: two ctrl-z to undo" +msgstr "" +"použít posun a geografickou polohu na odpovídající obrázky\n" +"dvojitá operace: dvě ctrl-z pro vrácení zpět" + +#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1915 +msgid "apply geo-location to matching images" +msgstr "použít geografickou polohu na odpovídající obrázky" + +#: ../src/libs/geotagging.c:809 +msgid "GPX file track segments" +msgstr "Segmenty stopy souboru GPX" + +#: ../src/libs/geotagging.c:831 ../src/libs/geotagging.c:1873 +msgid "start time" +msgstr "čas startu" + +#: ../src/libs/geotagging.c:832 +msgid "end time" +msgstr "čas konce" + +#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1875 +msgid "points" +msgstr "body" + +#: ../src/libs/geotagging.c:834 ../src/libs/geotagging.c:1877 +#: ../src/libs/image.c:494 +msgid "images" +msgstr "obrázky" + +#: ../src/libs/geotagging.c:927 +msgid "open GPX file" +msgstr "otevřít GPX soubor" + +#: ../src/libs/geotagging.c:928 ../src/libs/tools/lighttable.c:330 +#: ../src/libs/tools/lighttable.c:399 ../src/views/darkroom.c:2091 +msgid "preview" +msgstr "náhled" + +#: ../src/libs/geotagging.c:941 +msgid "GPS data exchange format" +msgstr "Formát výměny dat GPS" + +#: ../src/libs/geotagging.c:1743 +msgid "date/time" +msgstr "datum/čas" + +#: ../src/libs/geotagging.c:1744 +msgid "" +"enter the new date/time (YYYY:MM:DD hh:mm:ss[.sss])\n" +"key in the new numbers or scroll over the cell" +msgstr "" +"zadejte nové datum/čas (rrrr:mm:dd hh:mm:ss[.sss])\n" +"zadejte nová čísla nebo scrolujte přes políčko" + +#: ../src/libs/geotagging.c:1748 +msgid "original date/time" +msgstr "původní datum/čas" + +#: ../src/libs/geotagging.c:1752 +msgid "lock date/time offset value to apply it onto another selection" +msgstr "uzamknout hodnotu posunutí data/času pro použití na jiný výběr" + +#: ../src/libs/geotagging.c:1756 +msgid "date/time offset" +msgstr "posun data/času" + +#: ../src/libs/geotagging.c:1757 +msgid "offset or difference ([-]dd hh:mm:ss[.sss])" +msgstr "posun, nebo rozdíl ([-]dd hh:mm:ss[.sss])" + +#. apply +#: ../src/libs/geotagging.c:1761 +msgid "apply offset" +msgstr "použít offset" + +#: ../src/libs/geotagging.c:1762 +msgid "apply offset to selected images" +msgstr "použít offset na vybrané obrázky" + +#: ../src/libs/geotagging.c:1765 +msgid "apply date/time" +msgstr "použít datum/čas" + +#: ../src/libs/geotagging.c:1766 +msgid "apply the same date/time to selected images" +msgstr "použít stejný datum/čas na vybrané obrázky" + +#: ../src/libs/geotagging.c:1776 +msgid "" +"start typing to show a list of permitted values and select your timezone.\n" +"press enter to confirm, so that the asterisk * disappears" +msgstr "" +"začněte psát, aby se zobrazil seznam povolených hodnot a vyberte své časové " +"pásmo.\n" +"stiskněte enter pro potvrzení, aby hvězdička * zmizela" + +#. gpx +#: ../src/libs/geotagging.c:1819 +msgid "apply GPX track file..." +msgstr "použít soubor trasy GPX..." + +#: ../src/libs/geotagging.c:1820 +msgid "parses a GPX file and updates location of selected images" +msgstr "analyzuje soubor GPX a aktualizuje umístění vybraných obrázků" + +#: ../src/libs/geotagging.c:1831 +msgctxt "section" +msgid "GPX file" +msgstr "soubor GPX" + +#: ../src/libs/geotagging.c:1838 +msgid "select a GPX track file..." +msgstr "vyberte soubor trasy GPX..." + +#: ../src/libs/geotagging.c:1855 +msgid "" +"list of track segments in the GPX file, for each segment:\n" +"- the start date/time in local time (LT)\n" +"- the number of track points\n" +"- the number of matching images based on images date/time, offset and time " +"zone\n" +"- more detailed time information hovering the row" +msgstr "" +"seznam segmentů trasy v souboru GPX pro každý segment:\n" +"- počáteční datum/čas v místním čase (LT)\n" +"- počet bodů trasy\n" +"- počet odpovídajících snímků na základě data/času snímků, posunu a časového " +"pásma\n" +"- podrobnější informace o čase na řádku" + +#: ../src/libs/geotagging.c:1894 +msgid "preview images" +msgstr "náhled obrázků" + +#: ../src/libs/geotagging.c:1899 +msgid "show on map matching images" +msgstr "zobrazit na mapě odpovídající obrázky" + +#: ../src/libs/geotagging.c:1902 +msgid "select images" +msgstr "vybrat obrázky" + +#: ../src/libs/geotagging.c:1903 +msgid "select matching images" +msgstr "vybrat shodné obrázky" + +#: ../src/libs/geotagging.c:1911 +msgid "number of matching images versus selected images" +msgstr "počet shodných obrázků oproti vybraným obrázkům" + +#: ../src/libs/histogram.c:110 +msgid "monochromatic" +msgstr "monochromatický" + +#: ../src/libs/histogram.c:111 +msgid "analogous" +msgstr "analogický" + +#: ../src/libs/histogram.c:112 +msgid "analogous complementary" +msgstr "analogicky komplementární" + +#: ../src/libs/histogram.c:113 +msgid "complementary" +msgstr "doplňkový" + +#: ../src/libs/histogram.c:114 +msgid "split complementary" +msgstr "rozdělit komplementární" + +#: ../src/libs/histogram.c:115 +msgid "dyad" +msgstr "dyáda" + +#: ../src/libs/histogram.c:116 +msgid "triad" +msgstr "triáda" + +#: ../src/libs/histogram.c:117 +msgid "tetrad" +msgstr "tetráda" + +#: ../src/libs/histogram.c:123 +msgid "vectorscope" +msgstr "vektoroskop" + +#: ../src/libs/histogram.c:124 +msgid "waveform" +msgstr "průběh" + +#: ../src/libs/histogram.c:125 +msgid "RGB parade" +msgstr "RGB přehlídka" + +#: ../src/libs/histogram.c:126 ../src/libs/histogram.c:2622 +msgid "histogram" +msgstr "histogram" + +#: ../src/libs/histogram.c:218 +msgid "scopes" +msgstr "rozsahy" + +#: ../src/libs/histogram.c:757 +msgid "" +"unsupported vectorscope profile selected, it will be replaced with linear " +"Rec2020" +msgstr "" +"vybrán nepodporovaný profil vektoroskopu, bude nahrazen lineárním Rec2020" + +#: ../src/libs/histogram.c:1715 +msgid "scroll to coarse-rotate" +msgstr "přejděte na hrubé otočení" + +#: ../src/libs/histogram.c:1716 +msgid "ctrl+scroll to fine rotate" +msgstr "ctrl+scroll pro jemné otočení" + +#: ../src/libs/histogram.c:1717 +msgid "shift+scroll to change width" +msgstr "shift+scroll pro změnu šířky" + +#: ../src/libs/histogram.c:1718 +msgid "alt+scroll to cycle" +msgstr "alt+scroll pro cyklus" + +#: ../src/libs/histogram.c:1732 +msgid "drag to change black point" +msgstr "přetažením změníte černý bod" + +#: ../src/libs/histogram.c:1733 ../src/libs/histogram.c:1740 +msgid "double-click resets" +msgstr "dvojklik pro reset" + +#: ../src/libs/histogram.c:1739 +msgid "drag to change exposure" +msgstr "tažením změníte expozici" + +#: ../src/libs/histogram.c:1923 ../src/libs/histogram.c:1965 +msgid "set scale to linear" +msgstr "nastavit měřítko na lineární" + +#: ../src/libs/histogram.c:1928 ../src/libs/histogram.c:1970 +msgid "set scale to logarithmic" +msgstr "nastavit měřítko na logaritmické" + +#: ../src/libs/histogram.c:1946 +msgid "set scope to vertical" +msgstr "nastavit rozsah na vertikální" + +#: ../src/libs/histogram.c:1951 +msgid "set scope to horizontal" +msgstr "nastavit rozsah na horizontální" + +#: ../src/libs/histogram.c:1980 +msgid "set view to AzBz" +msgstr "nastavit pohled na AzBz" + +#: ../src/libs/histogram.c:1986 +msgid "set view to RYB" +msgstr "nastavit pohled na RYB" + +#: ../src/libs/histogram.c:1992 +msgid "set view to u*v*" +msgstr "nastavit pohled na u*v*" + +#: ../src/libs/histogram.c:2625 ../src/libs/histogram.c:2691 +msgid "cycle histogram modes" +msgstr "přepínat režimy histogramu" + +#: ../src/libs/histogram.c:2630 ../src/libs/histogram.c:2693 +msgid "hide histogram" +msgstr "skrýt histogram" + +#: ../src/libs/histogram.c:2696 ../src/libs/histogram.c:2729 +msgid "switch histogram view" +msgstr "přepnout režim histogramu" + +#: ../src/libs/histogram.c:2704 +msgid "toggle blue channel" +msgstr "přepnout modrý kanál" + +#: ../src/libs/histogram.c:2706 ../src/libs/histogram.c:2715 +#: ../src/libs/histogram.c:2724 +msgid "toggle colors" +msgstr "přepnout barvy" + +#: ../src/libs/histogram.c:2713 +msgid "toggle green channel" +msgstr "přepnout zelený kanál" + +#: ../src/libs/histogram.c:2722 +msgid "toggle red channel" +msgstr "přepnout červený kanál" + +#: ../src/libs/histogram.c:2734 +msgid "cycle vectorscope types" +msgstr "typy cyklových vektorskopů" + +#: ../src/libs/histogram.c:2745 +msgid "color harmonies" +msgstr "barevné harmonie" + +#: ../src/libs/histogram.c:2759 +msgid "cycle color harmonies" +msgstr "cyklus harmonie barev" + +#: ../src/libs/history.c:127 +msgid "compress history stack" +msgstr "komprimovat historii" + +#: ../src/libs/history.c:128 +msgid "" +"create a minimal history stack which produces the same image\n" +"ctrl+click to truncate history to the selected item" +msgstr "" +"vytvořit minimální zásobník historie, který vytvoří stejný obrázek\n" +"ctrl+klik pro zkrácení historie po vybranou položku" + +#: ../src/libs/history.c:139 +msgid "create a style from the current history stack" +msgstr "vytvořit styl z aktuálního zásobníku historie" + +#: ../src/libs/history.c:141 +msgid "create style from history" +msgstr "vytvořit styl z historie" + +#: ../src/libs/history.c:212 +msgid "always-on module" +msgstr "vždy zapnutý modul" + +#: ../src/libs/history.c:218 +msgid "default enabled module" +msgstr "výchozí povolený modul" + +#: ../src/libs/history.c:225 +msgid "deprecated module" +msgstr "zastaralý modul" + +#: ../src/libs/history.c:945 +msgid "colorspace" +msgstr "barevný prostor" + +#: ../src/libs/history.c:947 +msgid "mask mode" +msgstr "režim masky" + +#: ../src/libs/history.c:949 +msgid "blend mode" +msgstr "režim prolnutí" + +#: ../src/libs/history.c:951 +msgid "blend operation" +msgstr "operace prolnutí" + +#: ../src/libs/history.c:953 +msgid "blend fulcrum" +msgstr "opěrný bod prolnutí" + +#: ../src/libs/history.c:961 +msgid "mask blur" +msgstr "maskovat rozostření" + +#: ../src/libs/history.c:964 +msgid "raster mask instance" +msgstr "instance rastrové masky" + +#: ../src/libs/history.c:965 +msgid "raster mask id" +msgstr "id rastrové masky" + +#: ../src/libs/history.c:966 +msgid "invert mask" +msgstr "invertovat masku" + +#: ../src/libs/history.c:971 +msgid "drawn mask polarity" +msgstr "polarita nakreslené masky" + +#: ../src/libs/history.c:975 +#, c-format +msgid "a drawn mask was added" +msgstr "byla přidána nakreslená maska" + +#: ../src/libs/history.c:977 +#, c-format +msgid "the drawn mask was removed" +msgstr "nakreslená maska byla odstraněna" + +#: ../src/libs/history.c:978 +#, c-format +msgid "the drawn mask was changed" +msgstr "nakreslená maska byla změněna" + +#: ../src/libs/history.c:1010 +msgid "parametric output mask:" +msgstr "parametrická výstupní maska:" + +#: ../src/libs/history.c:1011 +msgid "parametric input mask:" +msgstr "maska parametrického vstupu:" + +#: ../src/libs/history.c:1322 +msgid "delete image's history?" +msgstr "smazat historii obrázku?" + +#: ../src/libs/history.c:1323 +msgid "do you really want to clear history of current image?" +msgstr "opravdu chcete vymazat historii aktuálního obrázku?" + +#: ../src/libs/image.c:74 +msgid "actions on selection" +msgstr "akce na výběru" + +#: ../src/libs/image.c:302 +msgid "delete (trash)" +msgstr "smazat (koš)" + +#: ../src/libs/image.c:305 +msgid "physically delete from disk (using trash if possible)" +msgstr "fyzicky odstranit z disku (pomocí koše, pokud je to možné)" + +#: ../src/libs/image.c:306 +msgid "physically delete from disk immediately" +msgstr "okamžitě fyzicky odstranit z disku" + +#: ../src/libs/image.c:506 ../src/libs/modulegroups.c:3813 +#: ../src/libs/styles.c:880 +msgid "remove" +msgstr "odstranit" + +#: ../src/libs/image.c:508 +msgid "remove images from the image library, without deleting" +msgstr "odstranit obrázky z knihovny obrázků bez odstranění s disku" + +#: ../src/libs/image.c:517 +msgid "move..." +msgstr "přesun..." + +#: ../src/libs/image.c:519 +msgid "move to other folder" +msgstr "přesunout do jiné složky" + +#: ../src/libs/image.c:522 +msgid "copy..." +msgstr "kopie..." + +#: ../src/libs/image.c:524 +msgid "copy to other folder" +msgstr "kopírovat do jiné složky" + +#: ../src/libs/image.c:528 +msgid "create HDR" +msgstr "vytvořit HDR" + +#: ../src/libs/image.c:530 +msgid "create a high dynamic range image from selected shots" +msgstr "vytvořit z vybraných snímků obraz s vysokým dynamickým rozsahem" + +#: ../src/libs/image.c:535 +msgid "add a duplicate to the image library, including its history stack" +msgstr "přidat duplikát do knihovny obrázků, včetně zásobníku historie" + +#: ../src/libs/image.c:542 ../src/libs/image.c:547 +msgid "rotate selected images 90 degrees CCW" +msgstr "otočit vybrané snímky o 90 stupňů proti směru hodinových ručiček" + +#: ../src/libs/image.c:553 ../src/libs/image.c:558 +msgid "rotate selected images 90 degrees CW" +msgstr "otočit vybrané snímky o 90 stupňů po směru hodinových ručiček" + +#: ../src/libs/image.c:561 +msgid "reset rotation" +msgstr "reset rotace" + +#: ../src/libs/image.c:563 +msgid "reset rotation to EXIF data" +msgstr "resetovat rotaci do EXIF dat" + +#: ../src/libs/image.c:566 +msgid "copy locally" +msgstr "místní kopie" + +#: ../src/libs/image.c:568 +msgid "copy the image locally" +msgstr "kopírovat obrázek lokálně" + +#: ../src/libs/image.c:572 +msgid "resync local copy" +msgstr "znovu synchronizovat místní kopii" + +#: ../src/libs/image.c:574 +msgid "synchronize the image's XMP and remove the local copy" +msgstr "synchronizujte XMP obrázku a odstraňte místní kopii" + +#: ../src/libs/image.c:578 +msgctxt "selected images action" +msgid "group" +msgstr "skupina" + +#: ../src/libs/image.c:580 +msgid "add selected images to expanded group or create a new one" +msgstr "přidat vybrané obrázky do skupiny nebo založit novou" + +#: ../src/libs/image.c:584 +msgid "ungroup" +msgstr "zrušit seskupení" + +#: ../src/libs/image.c:586 +msgid "remove selected images from the group" +msgstr "odstranit vybrané obrázky ze skupiny" + +#: ../src/libs/image.c:598 +msgid "select ratings metadata" +msgstr "vyberte metadata hodnocení" + +#: ../src/libs/image.c:605 +msgid "colors" +msgstr "barvy" + +#: ../src/libs/image.c:607 +msgid "select colors metadata" +msgstr "vyberte metadata barev" + +#: ../src/libs/image.c:616 +msgid "select tags metadata" +msgstr "vyberte metadata značek" + +#: ../src/libs/image.c:625 +msgid "select geo tags metadata" +msgstr "vyberte metadata geografických značek" + +#: ../src/libs/image.c:636 +msgid "select darktable metadata (from metadata editor module)" +msgstr "vybrat metadata darktable (z modulu editoru metadat)" + +#: ../src/libs/image.c:649 +msgid "set the selected image as source of metadata" +msgstr "nastavit vybraný obrázek jako zdroj metadat" + +#: ../src/libs/image.c:656 +msgid "paste selected metadata on selected images" +msgstr "vložit vybraná metadata do vybraných obrázků" + +#: ../src/libs/image.c:661 +msgid "clear selected metadata on selected images" +msgstr "vymazat vybraná metadata z vybraných obrázků" + +#: ../src/libs/image.c:667 +msgid "how to handle existing metadata" +msgstr "jak zacházet se stávajícími metadaty" + +#: ../src/libs/image.c:670 +msgid "merge" +msgstr "spojit" + +#: ../src/libs/image.c:675 +msgid "update image information to match changes to file" +msgstr "aktualizovat informace o obrázku, aby odpovídaly změnám souboru" + +#: ../src/libs/image.c:680 +msgid "set selection as monochrome images and activate monochrome workflow" +msgstr "" +"nastavit výběr jako monochromatické obrázky a aktivovat monochromatický " +"pracovní postup" + +#: ../src/libs/image.c:684 +msgid "set selection as color images" +msgstr "nastavit výběr jako barevné obrázky" + +#: ../src/libs/image.c:696 +msgid "duplicate virgin" +msgstr "panenský duplikát" + +#: ../src/libs/import.c:264 +#, c-format +msgid "device \"%s\" connected on port \"%s\"." +msgstr "zařízení \"%s\" připojené k portu \"%s\"." + +#: ../src/libs/import.c:274 ../src/libs/import.c:335 ../src/libs/import.c:1701 +msgid "copy & import from camera" +msgstr "kopírovat a import z fotoaparátu" + +#: ../src/libs/import.c:285 ../src/libs/import.c:337 +msgid "tethered shoot" +msgstr "tethered snímek" + +#: ../src/libs/import.c:292 ../src/libs/import.c:338 +msgid "unmount camera" +msgstr "odpojit fotoaparát" + +#: ../src/libs/import.c:313 +msgid "" +"camera is locked by another application\n" +"make sure it is no longer mounted\n" +"or quit the locking application" +msgstr "" +"fotoaparát je uzamčen jinou aplikací\n" +"ujistěte se, že je stále připojen\n" +"nebo ukončete aplikaci která jej uzamčela" + +#: ../src/libs/import.c:316 +msgid "tethering and importing is disabled for this camera" +msgstr "tethering a import jsou pro tento fotoaparát zakázány" + +#: ../src/libs/import.c:318 ../src/libs/import.c:336 +msgid "mount camera" +msgstr "připojit fotoaparát" + +#: ../src/libs/import.c:754 +#, c-format +msgid "%d image out of %d selected" +msgid_plural "%d images out of %d selected" +msgstr[0] "%d obrázek z %d vybrán" +msgstr[1] "%d obrázky z %d vybrány" +msgstr[2] "%d obrázků z %d vybráno" + +#: ../src/libs/import.c:1046 +msgid "you can't delete the selected place" +msgstr "vybrané místo nelze smazat" + +#: ../src/libs/import.c:1160 +msgid "choose the root of the folder tree below" +msgstr "níže vyberte kořen stromu složek" + +#: ../src/libs/import.c:1163 +msgid "places" +msgstr "místa" + +#: ../src/libs/import.c:1169 +msgid "restore all default places you have removed by right-click" +msgstr "" +"obnovit všechna výchozí místa, která jste odstranili, kliknutím pravým " +"tlačítkem myši" + +#: ../src/libs/import.c:1174 +msgid "" +"add a custom place\n" +"\n" +"right-click on a place to remove it" +msgstr "" +"přidat vlastní umístění\n" +"\n" +"klikněte pravým tlačítkem pro jeho odebrání" + +#: ../src/libs/import.c:1181 +msgid "you can add custom places using the plus icon" +msgstr "můžete přidat vlastní umístění kliknutím na ikonu plus" + +#: ../src/libs/import.c:1206 +msgid "select a folder to see the content" +msgstr "vyberte složky, pro zobrazení obsahu" + +#: ../src/libs/import.c:1209 +msgid "folders" +msgstr "složky" + +#: ../src/libs/import.c:1279 +msgid "home" +msgstr "domů" + +#: ../src/libs/import.c:1291 +msgid "pictures" +msgstr "obrázky" + +#: ../src/libs/import.c:1557 +msgid "mark already imported pictures" +msgstr "označit již importované obrázky" + +#: ../src/libs/import.c:1571 +msgid "modified" +msgstr "změněno" + +#: ../src/libs/import.c:1576 +msgid "file 'modified date/time', may be different from 'Exif date/time'" +msgstr "'změněný datum/čas' souboru, se může lišit od 'Exif data/času'" + +#: ../src/libs/import.c:1588 +msgid "show/hide thumbnails" +msgstr "zobrazit/skrýt náhledy" + +#: ../src/libs/import.c:1658 +msgid "naming rules" +msgstr "pravidla pojmenování" + +#: ../src/libs/import.c:1699 +msgid "add to library" +msgstr "přidat do knihovny" + +#: ../src/libs/import.c:1700 +msgid "copy & import" +msgstr "kopírování a import" + +#: ../src/libs/import.c:1740 +msgid "select new" +msgstr "vybrat nový" + +#: ../src/libs/import.c:1783 +msgid "please wait while prefetching the list of images from camera..." +msgstr "" +"počkejte prosím při předběžném načítání seznamu snímků z fotoaparátu..." + +#: ../src/libs/import.c:1922 +msgid "invalid override date/time format" +msgstr "neplatný přepis formátu data/času" + +#: ../src/libs/import.c:1986 +msgid "import base directory" +msgstr "importovat základní adresář" + +#: ../src/libs/import.c:1987 +msgid "" +"before copying images to the darktable base directory make sure it is " +"defined as you prefer.\n" +"further information can be found in the darktable manual.\n" +"\n" +"inspect darktable preferences -> import.\n" +"check and possibly correct the 'base directory naming pattern'" +msgstr "" +"před kopírováním obrázků do základního adresáře darktable se ujistěte, že je " +"definován tak, jak chcete.\n" +"další informace naleznete v manuálu darktable.\n" +"\n" +"zkontrolovat předvolby darktable -> import.\n" +"zkontrolujte a případně opravte „vzor pojmenování základního adresáře“" + +#: ../src/libs/import.c:1991 +msgid "_come back & check" +msgstr "_zpět a zkontrolovat" + +#: ../src/libs/import.c:1991 +msgid "_understood & done" +msgstr "_rozumím a hotovo" + +#: ../src/libs/import.c:2057 +msgid "add to library..." +msgstr "přidat do knihovny..." + +#: ../src/libs/import.c:2058 +msgid "add existing images to the library" +msgstr "přidat existující obrázky do knihovny" + +#: ../src/libs/import.c:2064 +msgid "copy & import..." +msgstr "kopírování a import..." + +#: ../src/libs/import.c:2065 +msgid "" +"copy and optionally rename images before adding them to the library\n" +"patterns can be defined to rename the images and specify the destination " +"folders" +msgstr "" +"zkopírujte a volitelně přejmenujte obrázky před jejich přidáním do knihovny\n" +"lze definovat masky pro přejmenování obrázků a určit cílové složky" + +#. collapsible section +#: ../src/libs/import.c:2088 +msgid "parameters" +msgstr "parametery" + +#: ../src/libs/ioporder.c:202 +msgid "v3.0 for RAW input (default)" +msgstr "v3.0 pro vstup RAW (výchozí)" + +#: ../src/libs/ioporder.c:208 +msgid "v3.0 for JPEG/non-RAW input" +msgstr "v3.0 pro vstup JPEG/ne-RAW" + +#: ../src/libs/lib.c:376 +msgid "deleting preset for obsolete module" +msgstr "smazání presetu pro zastaralý modulu" + +#: ../src/libs/lib.c:542 +msgid "manage presets..." +msgstr "správa presetů..." + +#: ../src/libs/lib.c:567 +msgid "nothing to save" +msgstr "nic pro uložení" + +#: ../src/libs/lib.c:1106 +msgid "show module" +msgstr "zobrazit modul" + +#: ../src/libs/lib.c:1431 +msgid "utility module" +msgstr "modul nástrojů" + +#: ../src/libs/live_view.c:107 +msgid "live view" +msgstr "živý náhled" + +#: ../src/libs/live_view.c:289 ../src/libs/live_view.c:290 +msgid "toggle live view" +msgstr "přepnout živý náhled" + +#. TODO: see _zoom_live_view_clicked +#: ../src/libs/live_view.c:291 ../src/libs/live_view.c:292 +msgid "zoom live view" +msgstr "zvětšit živý náhled" + +#: ../src/libs/live_view.c:295 +msgid "flip live view horizontally" +msgstr "horizontálně převrátit živý náhled" + +#: ../src/libs/live_view.c:301 +msgid "move focus point in (big steps)" +msgstr "ostření - přiblížit (velké kroky)" + +#: ../src/libs/live_view.c:302 +msgid "move focus point in (small steps)" +msgstr "ostření - přiblížit (malé kroky)" + +#. TODO icon not centered +#: ../src/libs/live_view.c:303 +msgid "run autofocus" +msgstr "spustit automatické ostření" + +#: ../src/libs/live_view.c:304 +msgid "move focus point out (small steps)" +msgstr "ostření - oddálit (malé kroky)" + +#. TODO same here +#: ../src/libs/live_view.c:305 +msgid "move focus point out (big steps)" +msgstr "ostření - oddálit (velké kroky)" + +#: ../src/libs/live_view.c:310 +msgid "overlay" +msgstr "překrytí" + +#: ../src/libs/live_view.c:312 +msgid "selected image" +msgstr "vybraný obrázek" + +#: ../src/libs/live_view.c:314 +msgid "overlay another image over the live view" +msgstr "překryjte živý náhled jiným snímkem" + +#: ../src/libs/live_view.c:323 +msgid "enter image id of the overlay manually" +msgstr "zadejte ID obrázku překryvné vrstvy ručně" + +#: ../src/libs/live_view.c:334 +msgid "overlay mode" +msgstr "překryvný režim" + +#: ../src/libs/live_view.c:336 +msgctxt "blendmode" +msgid "xor" +msgstr "xor" + +#: ../src/libs/live_view.c:337 +msgctxt "blendmode" +msgid "add" +msgstr "přidat" + +#: ../src/libs/live_view.c:338 +msgctxt "blendmode" +msgid "saturate" +msgstr "sytost" + +#: ../src/libs/live_view.c:344 +msgctxt "blendmode" +msgid "color dodge" +msgstr "vyhnout se barvě" + +#: ../src/libs/live_view.c:345 +msgctxt "blendmode" +msgid "color burn" +msgstr "vypálit barvu" + +#: ../src/libs/live_view.c:346 +msgctxt "blendmode" +msgid "hard light" +msgstr "tvrdé světlo" + +#: ../src/libs/live_view.c:347 +msgctxt "blendmode" +msgid "soft light" +msgstr "měkké světlo" + +#: ../src/libs/live_view.c:349 +msgctxt "blendmode" +msgid "exclusion" +msgstr "vyloučení" + +#: ../src/libs/live_view.c:350 +msgctxt "blendmode" +msgid "HSL hue" +msgstr "HSL odstín" + +#: ../src/libs/live_view.c:351 +msgctxt "blendmode" +msgid "HSL saturation" +msgstr "HSL sytost" + +#: ../src/libs/live_view.c:352 +msgctxt "blendmode" +msgid "HSL color" +msgstr "HSL barva" + +#: ../src/libs/live_view.c:353 +msgctxt "blendmode" +msgid "HSL luminosity" +msgstr "HSL jas" + +#: ../src/libs/live_view.c:354 +msgid "mode of the overlay" +msgstr "režim překrytí" + +#: ../src/libs/live_view.c:360 +msgid "split line" +msgstr "dělená čára" + +#: ../src/libs/live_view.c:363 +msgid "only draw part of the overlay" +msgstr "nakreslete pouze část překryvné vrstvy" + +#: ../src/libs/location.c:100 +msgid "find location" +msgstr "najít lokaci" + +#: ../src/libs/map_locations.c:36 +msgid "locations" +msgstr "lokace" + +#: ../src/libs/map_locations.c:234 +msgid "new sub-location" +msgstr "nová podlokace" + +#: ../src/libs/map_locations.c:238 ../src/libs/map_locations.c:286 +#: ../src/libs/map_locations.c:960 +msgid "new location" +msgstr "nová lokace" + +#: ../src/libs/map_locations.c:587 +#, c-format +msgid "location name '%s' already exists" +msgstr "název lokace '%s' již existuje" + +#: ../src/libs/map_locations.c:778 +msgid "edit location" +msgstr "upravit lokaci" + +#: ../src/libs/map_locations.c:781 +msgid "delete location" +msgstr "vymazat lokaci" + +#: ../src/libs/map_locations.c:791 +msgid "update filmstrip" +msgstr "aktualizovat filmový pás" + +#: ../src/libs/map_locations.c:798 +msgid "go to collection (lighttable)" +msgstr "jdi na kolekci (katalog)" + +#: ../src/libs/map_locations.c:844 +msgid "" +"terminate edit (press enter or escape) before selecting another location" +msgstr "" +"ukončete úpravy (stiskněte enter nebo escape) před výběrem jiného umístění" + +#: ../src/libs/map_locations.c:931 +msgid "" +"list of user locations,\n" +"click to show or hide a location on the map:\n" +" - wheel scroll inside the shape to resize it\n" +" - or scroll to modify the width or the height\n" +" - click inside the shape and drag it to change its position\n" +" - ctrl+click to move an image from inside the location\n" +"ctrl+click to edit a location name\n" +" - a pipe '|' symbol breaks the name into several levels\n" +" - to remove a group of locations clear its name\n" +" - press enter to validate the new name, escape to cancel the edit\n" +"right-click for other actions: delete location and go to collection" +msgstr "" +"seznam uživatelských míst,\n" +"kliknutím zobrazíte nebo skryjete místo na mapě:\n" +" - rolováním kolečka uvnitř tvaru změníte jeho velikost\n" +" - nebo rolováním upravte šířku nebo výšku\n" +" - klikněte dovnitř tvaru a přetažením změňte jeho polohu\n" +" - ctrl+kliknutím přesunete obrázek z umístění\n" +"ctrl+kliknutím upravíte název místa\n" +" - trubka '|' symbol rozděluje název do několika úrovní\n" +" - chcete-li odstranit skupinu míst, vymažte její název\n" +" - stiskněte Enter pro potvrzení nového názvu, Escape pro zrušení úpravy\n" +"klikněte pravým tlačítkem pro další akce: odstraňte umístění a přejděte do " +"kolekce" + +#: ../src/libs/map_locations.c:957 +msgid "" +"select the shape of the location's limits on the map, circle or rectangle\n" +"or even polygon if available (select first a polygon place in 'find " +"location' module)" +msgstr "" +"vyberte tvar limitu lokací na mapě, kruh nebo obdélník\n" +"nebo dokonce polygon, pokud je k dispozici (nejprve vyberte místo polygonu v " +"modulu 'najít polohu')" + +#: ../src/libs/map_locations.c:961 +msgid "add a new location on the center of the visible map" +msgstr "přidat novou lokaci do středu viditelné mapy" + +#: ../src/libs/map_locations.c:965 +msgid "show all" +msgstr "zobrazit vše" + +#: ../src/libs/map_locations.c:968 +msgid "show all locations which are on the visible map" +msgstr "zobrazit všechny lokace, které jsou na viditelné mapě" + +#: ../src/libs/map_settings.c:39 +msgid "map settings" +msgstr "nastavení mapy" + +#: ../src/libs/map_settings.c:89 +msgid "map source" +msgstr "zdroj mapy" + +#: ../src/libs/map_settings.c:90 +msgid "select the source of the map. some entries might not work" +msgstr "vyberte zdroj map. některé položky nemusí fungovat" + +#: ../src/libs/masks.c:108 +msgid "feather" +msgstr "opeřit" + +#: ../src/libs/masks.c:357 +#, c-format +msgid "group #%d" +msgstr "skupina #%d" + +#: ../src/libs/masks.c:1097 +msgid "duplicate this shape" +msgstr "duplikovat tento tvar" + +#: ../src/libs/masks.c:1101 +msgid "delete this shape" +msgstr "smazat tento tvar" + +#: ../src/libs/masks.c:1107 +msgid "delete group" +msgstr "vymazat skupinu" + +#: ../src/libs/masks.c:1114 +msgid "remove from group" +msgstr "odstranit ze skupiny" + +#: ../src/libs/masks.c:1122 +msgid "group the forms" +msgstr "seskupit formuláře" + +#: ../src/libs/masks.c:1130 +msgid "use inverted shape" +msgstr "použít obrácený tvar" + +#: ../src/libs/masks.c:1134 +msgid "mode: union" +msgstr "režim: sjednocení" + +#: ../src/libs/masks.c:1136 +msgid "mode: intersection" +msgstr "režim : průsečík" + +#: ../src/libs/masks.c:1138 +msgid "mode: difference" +msgstr "režim: rozdíl" + +#: ../src/libs/masks.c:1140 +msgid "mode: sum" +msgstr "režim: součet" + +#: ../src/libs/masks.c:1142 +msgid "mode: exclusion" +msgstr "režim : vyloučení" + +#: ../src/libs/masks.c:1158 +msgid "cleanup unused shapes" +msgstr "vyčistit nepoužívané tvary" + +#: ../src/libs/masks.c:1807 +msgid "created shapes" +msgstr "vytvořené tvary" + +#: ../src/libs/masks.c:1900 ../src/libs/masks.c:1915 ../src/libs/masks.c:1929 +#: ../src/libs/masks.c:1933 +msgid "properties" +msgstr "vlastnosti" + +#: ../src/libs/masks.c:1903 +msgid "no shapes selected" +msgstr "nebyly vybrány žádné tvary" + +#: ../src/libs/masks.c:1929 +msgid "pressure" +msgstr "tlak" + +#: ../src/libs/masks.c:1933 +msgid "smoothing" +msgstr "vyhlazování" + +#: ../src/libs/metadata.c:60 +msgid "metadata editor" +msgstr "editor metadat" + +#: ../src/libs/metadata.c:459 ../src/libs/metadata_view.c:1219 +msgid "metadata settings" +msgstr "nastavení metadat" + +#: ../src/libs/metadata.c:461 ../src/libs/metadata_view.c:1221 +msgid "_default" +msgstr "_výchozí" + +#: ../src/libs/metadata.c:516 ../src/libs/metadata_view.c:1267 +msgid "visible" +msgstr "zobrazeno" + +#: ../src/libs/metadata.c:524 +msgid "" +"tick if the corresponding metadata is of interest for you\n" +"it will be visible from metadata editor, collection and import module\n" +"it will be also exported" +msgstr "" +"zaškrtněte, pokud jsou pro vás příslušná metadata zajímavá\n" +"bude vidět z editoru metadat, modulu kolekcí a importu\n" +"bude také exportován" + +#: ../src/libs/metadata.c:529 ../src/libs/tagging.c:1705 +#: ../src/libs/tagging.c:1854 +msgid "private" +msgstr "soukromý" + +#: ../src/libs/metadata.c:534 +msgid "" +"tick if you want to keep this information private (not exported with images)" +msgstr "" +"zaškrtněte, pokud chcete tyto informace ponechat soukromé (neexportované s " +"obrázky)" + +#: ../src/libs/metadata.c:691 +msgid "" +"metadata text\n" +"ctrl+enter inserts a new line (caution, may not be compatible with standard " +"metadata)\n" +"if selected images have different metadata\n" +"in that case, right-click gives the possibility to choose one of them\n" +"escape to exit the popup window" +msgstr "" +"text metadat\n" +"ctrl+enter vloží nový řádek (pozor, nemusí být kompatibilní se standardními " +"metadaty)\n" +"pokud mají vybrané obrázky odlišná metadata\n" +"v takovém případě kliknutím pravým tlačítkem myši můžete vybrat jednu z " +"nich\n" +"escape pro opuštění vyskakovacího okna" + +#: ../src/libs/metadata.c:736 +msgid "write metadata for selected images" +msgstr "zapsat metadata pro vybrané obrázky" + +#: ../src/libs/metadata.c:737 +msgid "cancel" +msgstr "zrušit" + +#: ../src/libs/metadata.c:738 +msgid "ignore changed metadata" +msgstr "ignorovat změněná metadata" + +#. \0<description>\0<rights>\0<creator>\0<publisher> +#: ../src/libs/metadata.c:793 +msgid "CC BY" +msgstr "CC BY" + +#: ../src/libs/metadata.c:794 +msgid "Creative Commons Attribution (CC BY)" +msgstr "Creative Commons Attribution (CC BY)" + +#: ../src/libs/metadata.c:795 +msgid "CC BY-SA" +msgstr "CC BY-SA" + +#: ../src/libs/metadata.c:796 +msgid "Creative Commons Attribution-ShareAlike (CC BY-SA)" +msgstr "Creative Commons Attribution-ShareAlike (CC BY-SA)" + +#: ../src/libs/metadata.c:797 +msgid "CC BY-ND" +msgstr "CC BY-ND" + +#: ../src/libs/metadata.c:798 +msgid "Creative Commons Attribution-NoDerivs (CC BY-ND)" +msgstr "Creative Commons Attribution-NoDerivs (CC BY-ND)" + +#: ../src/libs/metadata.c:799 +msgid "CC BY-NC" +msgstr "CC BY-NC" + +#: ../src/libs/metadata.c:800 +msgid "Creative Commons Attribution-NonCommercial (CC BY-NC)" +msgstr "Creative Commons Attribution-NonCommercial (CC BY-NC)" + +#: ../src/libs/metadata.c:801 +msgid "CC BY-NC-SA" +msgstr "CC BY-NC-SA" + +#: ../src/libs/metadata.c:802 +msgid "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" +msgstr "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" + +#: ../src/libs/metadata.c:803 +msgid "CC BY-NC-ND" +msgstr "CC BY-NC-ND" + +#: ../src/libs/metadata.c:804 +msgid "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" +msgstr "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" + +#: ../src/libs/metadata.c:805 ../src/libs/metadata.c:806 +msgid "all rights reserved" +msgstr "všechna práva vyhrazena" + +#. internal +#: ../src/libs/metadata_view.c:125 +msgid "filmroll" +msgstr "filmový pás" + +#: ../src/libs/metadata_view.c:127 +msgid "group id" +msgstr "id skupiny" + +#: ../src/libs/metadata_view.c:129 +msgid "version" +msgstr "verze" + +#: ../src/libs/metadata_view.c:132 +msgid "import timestamp" +msgstr "čas importu" + +#: ../src/libs/metadata_view.c:133 +msgid "change timestamp" +msgstr "čas změny" + +#: ../src/libs/metadata_view.c:134 +msgid "export timestamp" +msgstr "čas exportu" + +#: ../src/libs/metadata_view.c:135 +msgid "print timestamp" +msgstr "čas tisku" + +#: ../src/libs/metadata_view.c:136 +msgid "flags" +msgstr "příznaky" + +#: ../src/libs/metadata_view.c:146 +msgid "35mm equiv focal length" +msgstr "35mm ekvivalentní ohnisková vzdálenost" + +#: ../src/libs/metadata_view.c:148 +msgid "focus distance" +msgstr "zaostřovací vzdálenost" + +#: ../src/libs/metadata_view.c:150 +msgid "datetime" +msgstr "datum čas" + +#: ../src/libs/metadata_view.c:153 +msgid "export width" +msgstr "šířka exportu" + +#: ../src/libs/metadata_view.c:154 +msgid "export height" +msgstr "výška exportu" + +#: ../src/libs/metadata_view.c:162 +msgid "longitude" +msgstr "zeměpisná délka" + +#: ../src/libs/metadata_view.c:163 +msgid "elevation" +msgstr "nadmořská výška" + +#: ../src/libs/metadata_view.c:167 +msgid "categories" +msgstr "kategorie" + +#: ../src/libs/metadata_view.c:174 +msgid "image information" +msgstr "informace o obrázku" + +#: ../src/libs/metadata_view.c:334 +msgid "unused/deprecated" +msgstr "nepoužívané/zastaralé" + +#: ../src/libs/metadata_view.c:335 +msgid "LDR" +msgstr "LDR" + +#: ../src/libs/metadata_view.c:338 +msgid "marked for deletion" +msgstr "označen pro vymazání" + +#: ../src/libs/metadata_view.c:339 +msgid "auto-applying presets applied" +msgstr "automatické presety aplikovány" + +#: ../src/libs/metadata_view.c:341 +msgid "has .txt" +msgstr "má .txt" + +#: ../src/libs/metadata_view.c:342 +msgid "has .wav" +msgstr "má .wav" + +#: ../src/libs/metadata_view.c:360 +#, c-format +msgid "image has %d star" +msgid_plural "image has %d stars" +msgstr[0] "obrázek má %d hvězdičku" +msgstr[1] "obrázek má %d hvězdičky" +msgstr[2] "obrázek má %d hvězdiček" + +#: ../src/libs/metadata_view.c:436 +#, c-format +msgid "loader: %s" +msgstr "zavaděč: %s" + +#: ../src/libs/metadata_view.c:626 +msgid "<various values>" +msgstr "<různé hodnoty>" + +#: ../src/libs/metadata_view.c:639 +#, c-format +msgid "" +"double-click to jump to film roll\n" +"%s" +msgstr "" +"dvojklik pro přechod na filmový pás\n" +"%s" + +#: ../src/libs/metadata_view.c:731 +#, c-format +msgid "%+.2f EV" +msgstr "%+.2f EV" + +#: ../src/libs/metadata_view.c:737 ../src/libs/metadata_view.c:749 +#: ../src/libs/metadata_view.c:754 +#, c-format +msgid "%.1f mm" +msgstr "%.1f mm" + +#: ../src/libs/metadata_view.c:778 +#, c-format +msgid "infinity" +msgstr "nekonečno" + +#: ../src/libs/metadata_view.c:782 +#, c-format +msgid "%.2f m" +msgstr "%.2f m" + +#: ../src/libs/metadata_view.c:1262 +msgid "" +"drag and drop one row at a time until you get the desired order\n" +"untick to hide metadata which are not of interest for you\n" +"if different settings are needed, use presets" +msgstr "" +"přetahujte jeden řádek po druhém, dokud nezískáte požadované pořadí\n" +"zrušením zaškrtnutí skryjete metadata, která vás nezajímají\n" +"pokud jsou potřeba jiná nastavení, použijte presety" + +#: ../src/libs/metadata_view.c:1423 +msgid "jump to film roll" +msgstr "jdi na filmový pás" + +#: ../src/libs/recentcollect.c:68 +msgid "recently used collections" +msgstr "nedávno použité kolekce" + +#: ../src/libs/recentcollect.c:109 +msgid " and " +msgstr " a " + +#: ../src/libs/recentcollect.c:114 +msgid " or " +msgstr " nebo " + +#. case DT_LIB_COLLECT_MODE_AND_NOT: +#: ../src/libs/recentcollect.c:119 +msgid " but not " +msgstr " ale ne " + +#: ../src/libs/recentcollect.c:226 +msgid "recent collections settings" +msgstr "nastavení posledních kolekcí" + +#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1753 +msgid "workflow: scene-referred" +msgstr "pracovní postup: s odkazem na scénu" + +#: ../src/libs/modulegroups.c:45 +msgid "modules: deprecated" +msgstr "moduly: zastaralé" + +#: ../src/libs/modulegroups.c:48 +msgid "last modified layout" +msgstr "poslední upravené rozložení" + +#: ../src/libs/modulegroups.c:192 +msgid "modulegroups" +msgstr "skupiny modulů" + +#. FIXME don't check here if on/off is enabled, because it depends on image (reload_defaults) +#. respond later to image changed signal +#: ../src/libs/modulegroups.c:307 ../src/libs/modulegroups.c:319 +#: ../src/libs/modulegroups.c:2411 ../src/libs/modulegroups.c:2413 +msgid "on-off" +msgstr "zap-vyp" + +#: ../src/libs/modulegroups.c:501 ../src/libs/modulegroups.c:504 +msgid "" +"this quick access widget is disabled as there are multiple instances of this " +"module present. Please use the full module to access this widget..." +msgstr "" +"tento widget pro rychlý přístup je deaktivován, protože je přítomno více " +"instancí tohoto modulu. Pro přístup k tomuto widgetu použijte prosím celý " +"modul..." + +#: ../src/libs/modulegroups.c:594 +msgid "(some features may only be available in the full module interface)" +msgstr "(některé funkce mohou být dostupné pouze v úplném rozhraní modulu)" + +#: ../src/libs/modulegroups.c:632 +#, c-format +msgid "go to the full version of the %s module" +msgstr "přejděte na plnou verzi modulu %s" + +#: ../src/libs/modulegroups.c:1538 ../src/libs/modulegroups.c:1624 +#: ../src/libs/modulegroups.c:1660 ../src/libs/modulegroups.c:1710 +#: ../src/libs/modulegroups.c:1801 +msgctxt "modulegroup" +msgid "base" +msgstr "základní" + +#: ../src/libs/modulegroups.c:1557 +msgctxt "modulegroup" +msgid "tone" +msgstr "tón" + +#: ../src/libs/modulegroups.c:1566 ../src/libs/modulegroups.c:1674 +#: ../src/libs/modulegroups.c:1724 +msgctxt "modulegroup" +msgid "color" +msgstr "barva" + +#: ../src/libs/modulegroups.c:1582 ../src/libs/modulegroups.c:1682 +#: ../src/libs/modulegroups.c:1730 +msgctxt "modulegroup" +msgid "correct" +msgstr "opravit" + +#: ../src/libs/modulegroups.c:1600 ../src/libs/modulegroups.c:1694 +#: ../src/libs/modulegroups.c:1742 ../src/libs/modulegroups.c:2305 +msgctxt "modulegroup" +msgid "effect" +msgstr "efekt" + +#: ../src/libs/modulegroups.c:1618 +msgid "modules: all" +msgstr "moduly: vše" + +#: ../src/libs/modulegroups.c:1639 +msgctxt "modulegroup" +msgid "grading" +msgstr "korekce" + +#: ../src/libs/modulegroups.c:1647 ../src/libs/modulegroups.c:2309 +msgctxt "modulegroup" +msgid "effects" +msgstr "efekty" + +#: ../src/libs/modulegroups.c:1655 +msgid "workflow: beginner" +msgstr "pracovní postup: začátečník" + +#: ../src/libs/modulegroups.c:1704 +msgid "workflow: display-referred" +msgstr "pracovní postup: s odkazem na displej" + +#: ../src/libs/modulegroups.c:1757 +msgid "search only" +msgstr "pouze hledat" + +#: ../src/libs/modulegroups.c:1763 ../src/libs/modulegroups.c:2074 +#: ../src/libs/modulegroups.c:2583 +msgctxt "modulegroup" +msgid "deprecated" +msgstr "zastaralé" + +#: ../src/libs/modulegroups.c:1776 +msgid "previous config" +msgstr "minulá konfigurace" + +#: ../src/libs/modulegroups.c:1777 +msgid "previous layout" +msgstr "minulé rozvržení" + +#: ../src/libs/modulegroups.c:1781 +msgid "previous config with new layout" +msgstr "minulá konfigurace s novým rozvržením" + +#: ../src/libs/modulegroups.c:1941 ../src/libs/modulegroups.c:2456 +#: ../src/libs/modulegroups.c:2468 +msgid "remove this widget" +msgstr "odstranit tento widget" + +#: ../src/libs/modulegroups.c:2091 ../src/libs/modulegroups.c:2331 +msgid "remove this module" +msgstr "odstranit tento modul" + +#. does it belong to recommended modules ? +#: ../src/libs/modulegroups.c:2300 +msgid "base" +msgstr "základní" + +#: ../src/libs/modulegroups.c:2303 +msgid "tone" +msgstr "tón" + +#: ../src/libs/modulegroups.c:2306 +msgid "technical" +msgstr "technický" + +#: ../src/libs/modulegroups.c:2307 +msgid "grading" +msgstr "korekce" + +#: ../src/libs/modulegroups.c:2313 ../src/libs/modulegroups.c:2321 +msgid "add this module" +msgstr "přidat tento modul" + +#. show the submenu with all the modules +#: ../src/libs/modulegroups.c:2343 ../src/libs/modulegroups.c:2543 +msgid "all available modules" +msgstr "všechny dostupné moduly" + +#: ../src/libs/modulegroups.c:2351 +msgid "add module" +msgstr "přidat modul" + +#: ../src/libs/modulegroups.c:2356 +msgid "remove module" +msgstr "odstranit modul" + +#: ../src/libs/modulegroups.c:2462 +msgid "header needed for other widgets" +msgstr "záhlaví potřebné pro další widgety" + +#: ../src/libs/modulegroups.c:2478 ../src/libs/modulegroups.c:2485 +msgid "add this widget" +msgstr "přidat tento widget" + +#: ../src/libs/modulegroups.c:2498 +msgid "currently invisible" +msgstr "v současné době neviditelné" + +#: ../src/libs/modulegroups.c:2527 +msgid "add widget" +msgstr "přidat widget" + +#: ../src/libs/modulegroups.c:2532 +msgid "remove widget" +msgstr "odstranit widget" + +#: ../src/libs/modulegroups.c:2637 +msgid "show all history modules" +msgstr "zobrazit všechny historické moduly" + +#: ../src/libs/modulegroups.c:2640 ../src/libs/modulegroups.c:3836 +msgid "" +"show modules that are present in the history stack, regardless of whether or " +"not they are currently enabled" +msgstr "" +"zobrazit moduly, které jsou přítomny v zásobníku historie, bez ohledu na to, " +"zda jsou aktuálně povoleny" + +#: ../src/libs/modulegroups.c:2731 ../src/libs/modulegroups.c:2823 +msgid "" +"the following modules are deprecated because they have internal design " +"mistakes that can't be corrected and alternative modules that correct them.\n" +"they will be removed for new edits in the next release." +msgstr "" +"následující moduly jsou zastaralé, protože obsahují interní chyby návrhu, " +"které nelze opravit, a alternativní moduly, které je opravují.\n" +"budou odstraněny pro nové úpravy v příštím vydání." + +#: ../src/libs/modulegroups.c:2782 ../src/libs/modulegroups.c:2783 +msgid "quick access panel" +msgstr "panel rychlého přístupu" + +#: ../src/libs/modulegroups.c:2793 +msgid "show only active modules" +msgstr "zobrazit pouze aktivní moduly" + +#: ../src/libs/modulegroups.c:2794 +msgid "active modules" +msgstr "aktivní moduly" + +#: ../src/libs/modulegroups.c:2799 +msgid "" +"presets\n" +"ctrl+click to manage" +msgstr "" +"presety\n" +"ctrl+klik pro správu" + +#: ../src/libs/modulegroups.c:2805 +msgid "search modules" +msgstr "hledat moduly" + +#: ../src/libs/modulegroups.c:2806 +msgid "search modules by name or tag" +msgstr "hledat moduly podle názvu nebo štítku" + +#: ../src/libs/modulegroups.c:2816 +msgid "clear text" +msgstr "vymazat text" + +#: ../src/libs/modulegroups.c:3056 +msgid "basic icon" +msgstr "jednoduchá ikona" + +#: ../src/libs/modulegroups.c:3066 +msgid "active icon" +msgstr "aktivní ikona" + +#: ../src/libs/modulegroups.c:3076 +msgid "color icon" +msgstr "barevná ikona" + +#: ../src/libs/modulegroups.c:3086 +msgid "correct icon" +msgstr "správná ikona" + +#: ../src/libs/modulegroups.c:3096 +msgid "effect icon" +msgstr "ikona efekty" + +#: ../src/libs/modulegroups.c:3106 +msgid "favorites icon" +msgstr "ikona oblíbené" + +#: ../src/libs/modulegroups.c:3116 +msgid "tone icon" +msgstr "ikona tón" + +#: ../src/libs/modulegroups.c:3126 +msgid "grading icon" +msgstr "ikona korekcí" + +#: ../src/libs/modulegroups.c:3136 +msgid "technical icon" +msgstr "ikona technické" + +#: ../src/libs/modulegroups.c:3169 +msgid "quick access panel widgets" +msgstr "widgety panelu rychlého přístupu" + +#: ../src/libs/modulegroups.c:3171 +msgid "quick access" +msgstr "rychlý přístup" + +#: ../src/libs/modulegroups.c:3191 +msgid "add widget to the quick access panel" +msgstr "přidat widget na panel rychlého přístupu" + +#: ../src/libs/modulegroups.c:3223 +msgid "group icon" +msgstr "ikona skupiny" + +#: ../src/libs/modulegroups.c:3232 +msgid "group name" +msgstr "název skupiny" + +#: ../src/libs/modulegroups.c:3243 +msgid "remove group" +msgstr "odstranit skupinu" + +#: ../src/libs/modulegroups.c:3269 +msgid "move group to the left" +msgstr "přesunout skupinu vlevo" + +#: ../src/libs/modulegroups.c:3277 +msgid "add module to the group" +msgstr "přidat modul do skupiny" + +#: ../src/libs/modulegroups.c:3288 +msgid "move group to the right" +msgstr "přesunout skupinu napravo" + +#: ../src/libs/modulegroups.c:3464 +msgid "rename preset" +msgstr "přejmenovat preset" + +#: ../src/libs/modulegroups.c:3467 +msgid "_rename" +msgstr "_přejmenovat" + +#: ../src/libs/modulegroups.c:3473 +msgid "new preset name:" +msgstr "nový název presetu:" + +#: ../src/libs/modulegroups.c:3474 +msgid "a preset with this name already exists!" +msgstr "preset s tímto názvem již existuje!" + +#: ../src/libs/modulegroups.c:3806 +msgid "preset: " +msgstr "preset: " + +#: ../src/libs/modulegroups.c:3813 +msgid "remove the preset" +msgstr "odstranit preset" + +#: ../src/libs/modulegroups.c:3815 +msgid "duplicate the preset" +msgstr "duplikovat preset" + +#: ../src/libs/modulegroups.c:3817 +msgid "rename the preset" +msgstr "přejmenovat preset" + +#: ../src/libs/modulegroups.c:3819 +msgid "create a new empty preset" +msgstr "vytvořit nový prázdný preset" + +#: ../src/libs/modulegroups.c:3827 +msgid "show search line" +msgstr "zobrazit řádek pro vyhledávání" + +#: ../src/libs/modulegroups.c:3830 +msgid "show quick access panel" +msgstr "zobrazit panel rychlého přístupu" + +#: ../src/libs/modulegroups.c:3833 +msgid "show all history modules in active group" +msgstr "zobrazit všechny historické moduly v aktivní skupině" + +#: ../src/libs/modulegroups.c:3845 +msgid "auto-apply this preset" +msgstr "automaticky použít tento preset" + +#: ../src/libs/modulegroups.c:3860 +msgid "module groups" +msgstr "skupiny modulů" + +#: ../src/libs/modulegroups.c:3877 +msgid "" +"this is a built-in read-only preset. duplicate it if you want to make changes" +msgstr "" +"toto je vestavěný preset pouze pro čtení. duplikujte jej, pokud chcete " +"provést změny" + +#: ../src/libs/navigation.c:74 +msgid "navigation" +msgstr "navigace" + +#: ../src/libs/navigation.c:112 ../src/libs/navigation.c:194 +msgctxt "navigationbox" +msgid "fill" +msgstr "vyplnit" + +#: ../src/libs/navigation.c:115 ../src/libs/navigation.c:192 +msgid "small" +msgstr "malý" + +#: ../src/libs/navigation.c:154 +msgid "" +"navigation\n" +"click or drag to position zoomed area in center view" +msgstr "" +"navigace\n" +"kliknutím nebo tažením umístěte zvětšenou oblast do středového pohledu" + +#: ../src/libs/navigation.c:176 +msgid "hide navigation thumbnail" +msgstr "skrýt navigaci náhledů" + +#: ../src/libs/navigation.c:190 +msgid "image zoom level" +msgstr "úroveň přiblížení obrazu" + +#: ../src/libs/navigation.c:195 +msgid "50%" +msgstr "50%" + +#: ../src/libs/navigation.c:196 +msgid "100%" +msgstr "100%" + +#: ../src/libs/navigation.c:197 +msgid "200%" +msgstr "200%" + +#: ../src/libs/navigation.c:198 +msgid "400%" +msgstr "400%" + +#: ../src/libs/navigation.c:199 +msgid "800%" +msgstr "800%" + +#: ../src/libs/navigation.c:200 +msgid "1600%" +msgstr "1600%" + +#: ../src/libs/print_settings.c:45 +msgid "print settings" +msgstr "nastavení tisku" + +#. FIXME: ellipsize title/printer as the export completed message is ellipsized +#: ../src/libs/print_settings.c:357 ../src/libs/print_settings.c:754 +#, c-format +msgid "processing `%s' for `%s'" +msgstr "zpracovává se `%s' pro `%s'" + +#: ../src/libs/print_settings.c:387 +#, c-format +msgid "cannot open printer profile `%s'" +msgstr "nelze otevřít profil tiskárny `%s'" + +#: ../src/libs/print_settings.c:398 +#, c-format +msgid "error getting output profile for image %d" +msgstr "chyba při získávání výstupního profilu pro obrázek %d" + +#: ../src/libs/print_settings.c:410 +#, c-format +msgid "cannot apply printer profile `%s'" +msgstr "nelze použít profil tiskárny `%s'" + +#: ../src/libs/print_settings.c:574 +msgid "failed to create temporary PDF for printing" +msgstr "nepodařilo se vytvořit dočasné PDF pro tisk" + +#: ../src/libs/print_settings.c:620 +msgid "maximum image per page reached" +msgstr "dosažen maximální počet obrázků na stranu" + +#: ../src/libs/print_settings.c:708 +msgid "cannot print until a picture is selected" +msgstr "nelze tisknout, dokud není vybrán snímek" + +#: ../src/libs/print_settings.c:713 +msgid "cannot print until a printer is selected" +msgstr "nelze tisknout, dokud není vybrána tiskárna" + +#: ../src/libs/print_settings.c:718 +msgid "cannot print until a paper is selected" +msgstr "nelze tisknout, dokud není vybrán papír" + +#. in this case no need to release from cache what we couldn't get +#: ../src/libs/print_settings.c:746 +#, c-format +msgid "cannot get image %d for printing" +msgstr "nelze získat obrázek %d pro tisk" + +#: ../src/libs/print_settings.c:918 +#, c-format +msgid "%3.2f (dpi:%d)" +msgstr "%3.2f (dpi:%d)" + +#: ../src/libs/print_settings.c:2396 +msgctxt "section" +msgid "printer" +msgstr "tiskárna" + +#: ../src/libs/print_settings.c:2409 ../src/libs/print_settings.c:2418 +#: ../src/libs/print_settings.c:2473 +msgid "printer" +msgstr "tiskárna" + +#: ../src/libs/print_settings.c:2409 +msgid "media" +msgstr "média" + +#: ../src/libs/print_settings.c:2430 +msgid "color management in printer driver" +msgstr "správa barev v ovladači tiskárny" + +#: ../src/libs/print_settings.c:2463 +msgid "printer ICC profiles" +msgstr "profily tiskárny ICC" + +#: ../src/libs/print_settings.c:2484 +msgid "black point compensation" +msgstr "kompenzace černého bodu" + +#: ../src/libs/print_settings.c:2497 +msgid "activate black point compensation when applying the printer profile" +msgstr "aktivujte kompenzaci černého bodu při použití profilu tiskárny" + +#. //////////////////////// PAGE SETTINGS +#: ../src/libs/print_settings.c:2504 +msgctxt "section" +msgid "page" +msgstr "strana" + +#: ../src/libs/print_settings.c:2526 +msgid "measurement units" +msgstr "jednotka měření" + +#: ../src/libs/print_settings.c:2534 +msgid "image width/height" +msgstr "šířka/výška obrázku" + +#: ../src/libs/print_settings.c:2539 +msgid " x " +msgstr " x " + +#: ../src/libs/print_settings.c:2547 +msgid "scale factor" +msgstr "měřítko" + +#: ../src/libs/print_settings.c:2553 +msgid "" +"image scale factor from native printer DPI:\n" +" < 1 means that it is downscaled (best quality)\n" +" > 1 means that the image is upscaled\n" +" a too large value may result in poor print quality" +msgstr "" +"faktor měřítka obrazu z nativní DPI tiskárny:\n" +" < 1 znamená, že je zmenšena (nejlepší kvalita)\n" +" > 1 znamená, že obrázek je zvětšený\n" +" příliš vysoká hodnota může mít za následek špatnou kvalitu tisku" + +#. d->b_top = gtk_spin_button_new_with_range(0, 10000, 1); +#: ../src/libs/print_settings.c:2567 +msgid "top margin" +msgstr "horní okraj" + +#. d->b_left = gtk_spin_button_new_with_range(0, 10000, 1); +#: ../src/libs/print_settings.c:2571 +msgid "left margin" +msgstr "levý okraj" + +#: ../src/libs/print_settings.c:2574 +msgid "lock" +msgstr "zámek" + +#: ../src/libs/print_settings.c:2576 +msgid "change all margins uniformly" +msgstr "změnit všechny okraje stejně" + +#. d->b_right = gtk_spin_button_new_with_range(0, 10000, 1); +#: ../src/libs/print_settings.c:2580 +msgid "right margin" +msgstr "pravý okraj" + +#. d->b_bottom = gtk_spin_button_new_with_range(0, 10000, 1); +#: ../src/libs/print_settings.c:2584 +msgid "bottom margin" +msgstr "spodní okraj" + +#: ../src/libs/print_settings.c:2617 +msgid "display grid" +msgstr "zobrazit mříž" + +#: ../src/libs/print_settings.c:2628 +msgid "snap to grid" +msgstr "přichytit k mřížce" + +#: ../src/libs/print_settings.c:2641 +msgid "borderless mode required" +msgstr "vyžadován bezokrajový režim" + +#: ../src/libs/print_settings.c:2644 +msgid "" +"indicates that the borderless mode should be activated\n" +"in the printer driver because the selected margins are\n" +"below the printer hardware margins" +msgstr "" +"označuje, že by měl být aktivován režim bez okrajů\n" +"v ovladači tiskárny, protože jsou vybrané okraje\n" +"pod hardwarovými okraji tiskárny" + +#. pack image dimension hbox here +#: ../src/libs/print_settings.c:2651 +msgctxt "section" +msgid "image layout" +msgstr "dispozice obrázku" + +#: ../src/libs/print_settings.c:2692 +msgid "new image area" +msgstr "nová oblast obrázku" + +#: ../src/libs/print_settings.c:2694 +msgid "" +"add a new image area on the page\n" +"click and drag on the page to place the area\n" +"drag and drop image from film strip on it" +msgstr "" +"přidat na stránku novou oblast obrázku\n" +"kliknutím a tažením na stránce umístěte oblast\n" +"přetáhněte na něj obrázek z filmového pásu" + +#: ../src/libs/print_settings.c:2698 +msgid "delete image area" +msgstr "odstranit oblast obrázku" + +#: ../src/libs/print_settings.c:2700 +msgid "delete the currently selected image area" +msgstr "odstranit aktuálně vybranou oblast obrázku" + +#: ../src/libs/print_settings.c:2703 +msgid "clear layout" +msgstr "vymazat rozložení" + +#: ../src/libs/print_settings.c:2705 +msgid "remove all image areas from the page" +msgstr "odstranit všechny oblasti obrázku ze stránky" + +#. d->b_x = gtk_spin_button_new_with_range(0, 1000, 1); +#: ../src/libs/print_settings.c:2722 +msgid "image area x origin (in current unit)" +msgstr "x oblasti obrázku (v aktuální jednotce)" + +#. d->b_y = gtk_spin_button_new_with_range(0, 1000, 1); +#: ../src/libs/print_settings.c:2726 +msgid "image area y origin (in current unit)" +msgstr "y oblasti obrázku (v aktuální jednotce)" + +#. d->b_width = gtk_spin_button_new_with_range(0, 1000, 1); +#: ../src/libs/print_settings.c:2737 +msgid "image area width (in current unit)" +msgstr "šířka oblasti obrázku (v aktuální jednotce)" + +#. d->b_height = gtk_spin_button_new_with_range(0, 1000, 1); +#: ../src/libs/print_settings.c:2741 +msgid "image area height (in current unit)" +msgstr "výška oblasti obrázku (v aktuální jednotce)" + +#. //////////////////////// PRINT SETTINGS +#: ../src/libs/print_settings.c:2767 +msgctxt "section" +msgid "print settings" +msgstr "nastavení tisku" + +#: ../src/libs/print_settings.c:2855 +msgid "temporary style to use while printing" +msgstr "dočasný styl pro použití při tisku" + +#: ../src/libs/print_settings.c:2887 +msgid "print with current settings" +msgstr "tisk s aktuálním nastavením" + +#: ../src/libs/select.c:137 +msgid "select all images in current collection" +msgstr "vybrat všechny obrázky v aktuální kolekci" + +#: ../src/libs/select.c:141 +msgid "clear selection" +msgstr "vymazat výběr" + +#: ../src/libs/select.c:145 +msgid "" +"select unselected images\n" +"in current collection" +msgstr "" +"vybrat nevybrané obrázky\n" +"v aktuální kolekci" + +#: ../src/libs/select.c:149 +msgid "" +"select all images which are in the same\n" +"film roll as the selected images" +msgstr "" +"vyberte všechny obrázky, které jsou ve stejném\n" +"filmovém pásu jako vybrané obrázky" + +#: ../src/libs/select.c:153 +msgid "" +"select untouched images in\n" +"current collection" +msgstr "" +"vyberte nedotčené snímky\n" +"z aktuální kolekce" + +#: ../src/libs/session.c:47 +msgid "session" +msgstr "sezení" + +#: ../src/libs/session.c:98 +msgid "jobcode" +msgstr "pracovní kód" + +#: ../src/libs/session.c:106 +msgid "create" +msgstr "vytvořit" + +#: ../src/libs/snapshots.c:88 +msgid "snapshots" +msgstr "varianty" + +#: ../src/libs/snapshots.c:137 +msgctxt "snapshot sign" +msgid "S" +msgstr "S" + +#: ../src/libs/snapshots.c:662 +msgid "snapshots for removed image have been deleted" +msgstr "uložené stavy pro odstraněný obrázek byly smazány" + +#: ../src/libs/snapshots.c:703 +#, c-format +msgid "↗ %s '%s'" +msgstr "↗ %s '%s'" + +#: ../src/libs/snapshots.c:703 +msgid "this snapshot was taken from" +msgstr "tento snímek byl pořízen z" + +#: ../src/libs/snapshots.c:742 +msgid "take snapshot" +msgstr "vytvoř variantu" + +#: ../src/libs/snapshots.c:744 +msgid "" +"take snapshot to compare with another image or the same image at another " +"stage of development" +msgstr "" +"vytvořte variantu pro porovnání s jiným snímkem nebo stejným snímkem v jiné " +"fázi vývoje" + +#: ../src/libs/snapshots.c:790 +msgid "toggle last snapshot" +msgstr "přepni poslední variantu" + +#: ../src/libs/styles.c:326 +msgid "remove style?" +msgid_plural "remove styles?" +msgstr[0] "odstranit styl?" +msgstr[1] "odstranit styly?" +msgstr[2] "odstranit stylů?" + +#: ../src/libs/styles.c:327 +#, c-format +msgid "do you really want to remove %d style?" +msgid_plural "do you really want to remove %d styles?" +msgstr[0] "opravdu vymazat styl %d?" +msgstr[1] "opravdu vymazat %d styly?" +msgstr[2] "opravdu vymazat %d stylů?" + +#: ../src/libs/styles.c:441 ../src/libs/styles.c:626 +msgid "_overwrite" +msgstr "_přepsat" + +#: ../src/libs/styles.c:446 ../src/libs/styles.c:631 +#, c-format +msgid "" +"style `%s' already exists.\n" +"do you want to overwrite existing style?\n" +msgstr "" +"styl `%s' již existuje.\n" +"chcete přepsat existuící styl? \n" + +#: ../src/libs/styles.c:448 ../src/libs/styles.c:633 +msgid "apply this option to all existing styles" +msgstr "použít tuto volbu na všechny existující styly" + +#: ../src/libs/styles.c:511 +#, c-format +msgid "style %s was successfully exported" +msgstr "styl %s byl úspěšně exportován" + +#: ../src/libs/styles.c:528 +msgid "select style" +msgstr "výběr stylu" + +#: ../src/libs/styles.c:538 +msgid "darktable style files" +msgstr "soubory stylu darktable" + +#: ../src/libs/styles.c:819 +msgid "" +"available styles,\n" +"double-click to apply" +msgstr "" +"dostupné styly,\n" +"dvojklik pro použití" + +#: ../src/libs/styles.c:828 ../src/libs/styles.c:829 +msgid "filter style names" +msgstr "filtrovat názvy stylů" + +#: ../src/libs/styles.c:841 +msgid "create duplicate" +msgstr "vytvořit duplikát" + +#: ../src/libs/styles.c:848 +msgid "creates a duplicate of the image before applying style" +msgstr "vytvoří duplikát obrázku před použitím stylu" + +#: ../src/libs/styles.c:866 +msgid "create..." +msgstr "vytvořit..." + +#: ../src/libs/styles.c:868 +msgid "create styles from history stack of selected images" +msgstr "vytvořit styl ze zásobníku historie vybraných obrázků" + +#: ../src/libs/styles.c:873 ../src/libs/tagging.c:2283 +msgid "edit..." +msgstr "upravit..." + +#: ../src/libs/styles.c:875 +msgid "edit the selected styles in list above" +msgstr "upravit vybrané styly v seznamu výše" + +#: ../src/libs/styles.c:882 +msgid "removes the selected styles in list above" +msgstr "odstranit vybrané styly v seznamu výše" + +#: ../src/libs/styles.c:889 +msgid "import styles from a style files" +msgstr "importovat styly ze souborů stylů" + +#: ../src/libs/styles.c:896 +msgid "export the selected styles into a style files" +msgstr "exportovat vybrané styly do souborů stylů" + +#: ../src/libs/styles.c:903 +msgid "apply the selected styles in list above to selected images" +msgstr "použít vybrané styly v seznamu výše na vybrané obrázky" + +#: ../src/libs/tagging.c:109 +msgid "tagging" +msgstr "štítky" + +#: ../src/libs/tagging.c:1258 +msgid "attach tag to all" +msgstr "přiřadit štítek všem" + +#: ../src/libs/tagging.c:1266 ../src/libs/tagging.c:2256 +msgid "detach tag" +msgstr "odpojit štítek" + +#: ../src/libs/tagging.c:1486 +msgid "delete tag?" +msgstr "vymazat štítek?" + +#: ../src/libs/tagging.c:1496 ../src/libs/tagging.c:1587 +#: ../src/libs/tagging.c:1814 ../src/libs/tagging.c:2093 +#, c-format +msgid "selected: %s" +msgstr "vybráno: %s" + +#: ../src/libs/tagging.c:1503 +#, c-format +msgid "" +"do you really want to delete the tag `%s'?\n" +"%d image is assigned this tag!" +msgid_plural "" +"do you really want to delete the tag `%s'?\n" +"%d images are assigned this tag!" +msgstr[0] "" +"opravdu chcete smazat štítek `%s'?\n" +"%d obrázku je přiřazen tento štítek!" +msgstr[1] "" +"opravdu chcete smazat štítek `%s'?\n" +"%d obrázkům je přiřazen tento štítek!" +msgstr[2] "" +"opravdu chcete smazat štítek `%s'?\n" +"%d obrázkům je přiřazen tento štítek!" + +#: ../src/libs/tagging.c:1537 +#, c-format +msgid "tag %s removed" +msgstr "štítek %s odebrán" + +#: ../src/libs/tagging.c:1577 +msgid "delete node?" +msgstr "smazat uzel?" + +#: ../src/libs/tagging.c:1594 +#, c-format +msgid "<u>%d</u> tag will be deleted" +msgid_plural "<u>%d</u> tags will be deleted" +msgstr[0] "<u>%d</u> štítek bude odstraněn" +msgstr[1] "<u>%d</u> štítky budou odstraněny" +msgstr[2] "<u>%d</u> štítků bude odstraněno" + +#: ../src/libs/tagging.c:1599 ../src/libs/tagging.c:1826 +#: ../src/libs/tagging.c:2105 +#, c-format +msgid "<u>%d</u> image will be updated" +msgid_plural "<u>%d</u> images will be updated" +msgstr[0] "<u>%d</u> obrázek bude aktualizován" +msgstr[1] "<u>%d</u> obrázky budou aktualizovány" +msgstr[2] "<u>%d</u> obrázků bude aktualizováno" + +#: ../src/libs/tagging.c:1625 +#, c-format +msgid "%d tags removed" +msgstr "%d štítků odstraněno" + +#: ../src/libs/tagging.c:1668 +msgid "create tag" +msgstr "vytvořit štítek" + +#: ../src/libs/tagging.c:1681 ../src/libs/tagging.c:1834 +msgid "name: " +msgstr "název: " + +#: ../src/libs/tagging.c:1696 +#, c-format +msgid "add to: \"%s\" " +msgstr "přidat do: \"%s\" " + +#: ../src/libs/tagging.c:1702 ../src/libs/tagging.c:1851 +msgid "category" +msgstr "kategorie" + +#: ../src/libs/tagging.c:1711 ../src/libs/tagging.c:1860 +msgid "synonyms: " +msgstr "synonyma: " + +#: ../src/libs/tagging.c:1728 ../src/libs/tagging.c:1882 +#: ../src/libs/tagging.c:2128 +msgid "empty tag is not allowed, aborting" +msgstr "prázdný štítek není dovolen, storno" + +#: ../src/libs/tagging.c:1739 +msgid "tag name already exists. aborting." +msgstr "název štítku již existuje, storno." + +#: ../src/libs/tagging.c:1821 ../src/libs/tagging.c:2100 +#, c-format +msgid "<u>%d</u> tag will be updated" +msgid_plural "<u>%d</u> tags will be updated" +msgstr[0] "<u>%d</u> štítek bude aktualizován" +msgstr[1] "<u>%d</u> štítky budou aktualizovány" +msgstr[2] "<u>%d</u> štítků bude aktualizováno" + +#: ../src/libs/tagging.c:1884 +msgid "" +"'|' character is not allowed for renaming tag.\n" +"to modify the hierarchy use rename path instead. Aborting." +msgstr "" +"'|' znak není povolen pro přejmenování štítku.\n" +"pro úpravu hierarchie použijte místo toho přejmenování cesty. Storno." + +#: ../src/libs/tagging.c:1923 ../src/libs/tagging.c:2031 +#, c-format +msgid "at least one new tag name (%s) already exists, aborting" +msgstr "alespoň jeden nový název štítku (%s) již existuje, storno" + +#: ../src/libs/tagging.c:2083 +msgid "change path" +msgstr "změnit cestu" + +#: ../src/libs/tagging.c:2130 +msgid "'|' misplaced, empty tag is not allowed, aborting" +msgstr "'|' špatně umístěn, prázdný štítek není povolen, storno" + +#: ../src/libs/tagging.c:2226 +#, c-format +msgid "tag %s created" +msgstr "štítek %s vytvořen" + +#: ../src/libs/tagging.c:2252 +msgid "attach tag" +msgstr "přiřadit štítek" + +#: ../src/libs/tagging.c:2265 +msgid "create tag..." +msgstr "vytvořit štítek..." + +#: ../src/libs/tagging.c:2271 +msgid "delete tag" +msgstr "vymazat štítek" + +#: ../src/libs/tagging.c:2278 +msgid "delete node" +msgstr "vymazat uzel" + +#: ../src/libs/tagging.c:2291 +msgid "change path..." +msgstr "změnit cestu..." + +#: ../src/libs/tagging.c:2301 +msgid "set as a tag" +msgstr "nastavit štítek" + +#: ../src/libs/tagging.c:2312 +msgid "copy to entry" +msgstr "zkopírovat do záznamu" + +#: ../src/libs/tagging.c:2329 +msgid "go to tag collection" +msgstr "přejděte do sbírky značek" + +#: ../src/libs/tagging.c:2335 +msgid "go back to work" +msgstr "vrátit se do práce" + +#: ../src/libs/tagging.c:2492 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../src/libs/tagging.c:2493 +msgid "(private)" +msgstr "(soukromé)" + +#: ../src/libs/tagging.c:2519 +msgid "select a keyword file" +msgstr "vybrat soubor klíčových slov" + +#: ../src/libs/tagging.c:2532 +msgid "error importing tags" +msgstr "chyba importu štítků" + +#: ../src/libs/tagging.c:2534 +#, c-format +msgid "%zd tags imported" +msgstr "%zd štítků importováno" + +#: ../src/libs/tagging.c:2555 +msgid "select file to export to" +msgstr "vyberte cílový soubor" + +#: ../src/libs/tagging.c:2569 +msgid "error exporting tags" +msgstr "chyba při exportu štítků" + +#: ../src/libs/tagging.c:2571 +#, c-format +msgid "%zd tags exported" +msgstr "%zd štítků exportováno" + +#: ../src/libs/tagging.c:2995 +msgid "drop to root" +msgstr "pustit do kořene" + +#: ../src/libs/tagging.c:3131 +msgid "" +"attached tags\n" +"press Delete or double-click to detach\n" +"right-click for other actions on attached tag,\n" +"Tab to give the focus to entry" +msgstr "" +"připojené značky\n" +"stiskněte Delete nebo dvojklik pro odpojení\n" +"klik pravým tlačítkem myši zobrazíte další akce s připojeným štítkem,\n" +"Tab pro zaměření položky" + +#: ../src/libs/tagging.c:3142 +msgid "attach" +msgstr "připnout" + +#: ../src/libs/tagging.c:3143 +msgid "attach tag to all selected images" +msgstr "přiřadit štítek vybraným obrázkům" + +#: ../src/libs/tagging.c:3146 +msgid "detach" +msgstr "odepnout" + +#: ../src/libs/tagging.c:3147 +msgid "detach tag from all selected images" +msgstr "odepnout štítek od vybraných obrázků" + +#: ../src/libs/tagging.c:3160 +msgid "toggle list with / without hierarchy" +msgstr "přepnout seznam s / bez hierarchie" + +#: ../src/libs/tagging.c:3160 +msgid "hide" +msgstr "skrýt" + +#: ../src/libs/tagging.c:3162 +msgid "toggle sort by name or by count" +msgstr "přepnout třídění podle názvu, nebo počtu" + +#: ../src/libs/tagging.c:3162 +msgid "sort" +msgstr "třídit" + +#: ../src/libs/tagging.c:3164 +msgid "toggle show or not darktable tags" +msgstr "přepnout zobrazení štítků darktable" + +#: ../src/libs/tagging.c:3164 +msgid "dttags" +msgstr "dttags" + +#: ../src/libs/tagging.c:3180 +msgid "" +"enter tag name\n" +"press Enter to create a new tag and attach it on selected images\n" +"press Tab or Down key to go to the first matching tag\n" +"press shift+Tab to select the first attached user tag" +msgstr "" +"zadejte název značky\n" +"stisknutím klávesy Enter vytvořte novou značku a připojte ji k vybraným " +"obrázkům\n" +"stisknutím klávesy Tab nebo Dolů přejdete na první odpovídající značku\n" +"stisknutím klávesy Shift + Tab vyberte první připojenou uživatelskou značku" + +#: ../src/libs/tagging.c:3191 ../src/libs/tagging.c:3197 +msgid "clear entry" +msgstr "vymazat záznam" + +#: ../src/libs/tagging.c:3244 +msgid "" +"tag dictionary,\n" +"Enter or double-click to attach selected tag on selected images\n" +"shift+Enter idem plus gives the focus to entry\n" +"shift+click to fully expand the selected tag\n" +"right-click for other actions on selected tag\n" +"shift+Tab to give the focus to entry" +msgstr "" +"slovník značek,\n" +"Zadejte nebo poklepejte pro připojení vybrané značky k vybraným obrázkům\n" +"shift+Enter idem plus zaměří vstup\n" +"shift+kliknutím plně rozbalíte vybranou značku\n" +"klikněte pravým tlačítkem pro další akce na vybrané značce\n" +"Shift+Tab pro zaměření položky" + +#: ../src/libs/tagging.c:3279 +msgid "" +"create a new tag with the\n" +"name you entered" +msgstr "" +"vytvoří nový štítek se\n" +"jménem, které jste zadali" + +#: ../src/libs/tagging.c:3282 +msgid "import tags from a Lightroom keyword file" +msgstr "importovat štítky ze souboru klíčových slov z Lightroom" + +#: ../src/libs/tagging.c:3285 +msgid "export all tags to a Lightroom keyword file" +msgstr "exportovat všechny štítky do souboru klíčových slov Lightroom" + +#: ../src/libs/tagging.c:3289 +msgid "toggle list / tree view" +msgstr "přepnout zobrazení seznam / strom" + +#: ../src/libs/tagging.c:3289 +msgid "tree" +msgstr "strom" + +#: ../src/libs/tagging.c:3291 +msgid "toggle list with / without suggestion" +msgstr "přepnout seznam s / bez návrhu" + +#: ../src/libs/tagging.c:3291 +msgid "suggestion" +msgstr "návrh" + +#: ../src/libs/tagging.c:3313 +msgid "redo last tag" +msgstr "znovu poslední značku" + +#: ../src/libs/tagging.c:3396 +msgid "" +"tag shortcut is not active with tag tree view. please switch to list view" +msgstr "" +"zástupce štítku není aktivní v zobrazení stromu štítků. prosím přepněte na " +"zobrazení seznamu" + +#: ../src/libs/tagging.c:3500 +msgid "tagging settings" +msgstr "nastavení značkování" + +#: ../src/libs/tools/battery_indicator.c:38 +#: ../src/libs/tools/battery_indicator.c:70 +msgid "battery indicator" +msgstr "indikátor baterie" + +#: ../src/libs/tools/colorlabels.c:42 +msgid "colorlabels" +msgstr "barevn éštítky" + +#: ../src/libs/tools/colorlabels.c:87 +msgid "toggle color label of selected images" +msgstr "přepnout barevnou značku vybraných obrázků" + +#: ../src/libs/tools/filmstrip.c:45 +msgid "filmstrip" +msgstr "filmový pás" + +#: ../src/libs/tools/filter.c:42 +msgid "filter" +msgstr "filtr" + +#: ../src/libs/tools/filter.c:104 +msgid "filter preferences" +msgstr "předvolby filtru" + +#: ../src/libs/tools/gamepad.c:37 +msgid "gamepad" +msgstr "gamepad" + +#: ../src/libs/tools/gamepad.c:60 +msgid "button a" +msgstr "tlačítko a" + +#: ../src/libs/tools/gamepad.c:60 +msgid "button b" +msgstr "tlačítko b" + +#: ../src/libs/tools/gamepad.c:60 +msgid "button x" +msgstr "tlačítko x" + +#: ../src/libs/tools/gamepad.c:60 +msgid "button y" +msgstr "tlačítko y" + +#: ../src/libs/tools/gamepad.c:61 +msgid "button back" +msgstr "tlačítko zpět" + +#: ../src/libs/tools/gamepad.c:61 +msgid "button guide" +msgstr "tlačítko průvodce" + +#: ../src/libs/tools/gamepad.c:61 +msgid "button start" +msgstr "tlačítko start" + +#: ../src/libs/tools/gamepad.c:62 +msgid "left stick" +msgstr "levá páka" + +#: ../src/libs/tools/gamepad.c:62 +msgid "right stick" +msgstr "pravá páka" + +#: ../src/libs/tools/gamepad.c:62 +msgid "left shoulder" +msgstr "levé rameno" + +#: ../src/libs/tools/gamepad.c:62 +msgid "right shoulder" +msgstr "pravé rameno" + +#: ../src/libs/tools/gamepad.c:63 +msgid "dpad up" +msgstr "dpad nahoru" + +#: ../src/libs/tools/gamepad.c:63 +msgid "dpad down" +msgstr "dpad dolů" + +#: ../src/libs/tools/gamepad.c:63 +msgid "dpad left" +msgstr "dpad vlevo" + +#: ../src/libs/tools/gamepad.c:63 +msgid "dpad right" +msgstr "dpad vpravo" + +#: ../src/libs/tools/gamepad.c:64 +msgid "button misc1" +msgstr "tlačítko různé1" + +#: ../src/libs/tools/gamepad.c:64 +msgid "paddle1" +msgstr "pádlo1" + +#: ../src/libs/tools/gamepad.c:64 +msgid "paddle2" +msgstr "pádlo2" + +#: ../src/libs/tools/gamepad.c:64 +msgid "paddle3" +msgstr "pádlo3" + +#: ../src/libs/tools/gamepad.c:64 +msgid "paddle4" +msgstr "pádlo4" + +#: ../src/libs/tools/gamepad.c:64 +msgid "touchpad" +msgstr "touchpad" + +#: ../src/libs/tools/gamepad.c:65 +msgid "left trigger" +msgstr "levá spoušť" + +#: ../src/libs/tools/gamepad.c:65 +msgid "right trigger" +msgstr "pravá spoušť" + +#: ../src/libs/tools/gamepad.c:71 +msgid "invalid gamepad button" +msgstr "neplatné tlačítko gamepadu" + +#: ../src/libs/tools/gamepad.c:89 +msgid "left x" +msgstr "vlevo x" + +#: ../src/libs/tools/gamepad.c:89 +msgid "left y" +msgstr "vlevo y" + +#: ../src/libs/tools/gamepad.c:89 +msgid "right x" +msgstr "pravý x" + +#: ../src/libs/tools/gamepad.c:89 +msgid "right y" +msgstr "pravý y" + +#: ../src/libs/tools/gamepad.c:90 +msgid "left diagonal" +msgstr "levá úhlopříčka" + +#: ../src/libs/tools/gamepad.c:90 +msgid "left skew" +msgstr "levé zkosení" + +#: ../src/libs/tools/gamepad.c:90 +msgid "right diagonal" +msgstr "pravá úhlopříčka" + +#: ../src/libs/tools/gamepad.c:90 +msgid "right skew" +msgstr "pravé zkosení" + +#. diagonals +#: ../src/libs/tools/gamepad.c:96 +msgid "invalid gamepad axis" +msgstr "neplatná osa gamepadu" + +#. we write the label with the size category +#: ../src/libs/tools/global_toolbox.c:215 +msgid "thumbnails overlays for size" +msgstr "překryvné miniatury pro velikost" + +#: ../src/libs/tools/global_toolbox.c:249 +#: ../src/libs/tools/global_toolbox.c:312 +msgid "" +"duration before the block overlay is hidden after each mouse movement on the " +"image\n" +"set -1 to never hide the overlay" +msgstr "" +"doba trvání před překrytím bloku se skryje po každém pohybu myši na obrázku\n" +"nastavte -1, aby se překrytí nikdy neskrylo" + +#: ../src/libs/tools/global_toolbox.c:254 +#: ../src/libs/tools/global_toolbox.c:317 +msgid "timeout only available for block overlay" +msgstr "časový limit je k dispozici pouze pro překrytí bloků" + +#: ../src/libs/tools/global_toolbox.c:277 +#: ../src/libs/tools/global_toolbox.c:463 +msgid "culling overlays" +msgstr "vyřazení překryvů" + +#: ../src/libs/tools/global_toolbox.c:279 +msgid "preview overlays" +msgstr "náhled překryvných vrstev" + +#: ../src/libs/tools/global_toolbox.c:353 +msgid "overlays not available here..." +msgstr "překryvné vrstvy zde nejsou k dispozici..." + +#: ../src/libs/tools/global_toolbox.c:397 +#: ../src/libs/tools/global_toolbox.c:533 +msgid "expand grouped images" +msgstr "rozbalit seskupené obrázky" + +#: ../src/libs/tools/global_toolbox.c:399 +#: ../src/libs/tools/global_toolbox.c:535 +msgid "collapse grouped images" +msgstr "sbalit seskupené obrázky" + +#: ../src/libs/tools/global_toolbox.c:406 +msgid "thumbnail overlays options" +msgstr "možnosti překrytí miniatur" + +#: ../src/libs/tools/global_toolbox.c:407 +msgid "click to change the type of overlays shown on thumbnails" +msgstr "kliknutím změníte typ překryvných obrázků zobrazených na miniaturách" + +#: ../src/libs/tools/global_toolbox.c:430 +#: ../src/libs/tools/global_toolbox.c:459 +msgid "overlay mode for size" +msgstr "překryvný režim pro velikost" + +#: ../src/libs/tools/global_toolbox.c:434 +msgid "thumbnail overlays" +msgstr "překrytí miniatur" + +#: ../src/libs/tools/global_toolbox.c:436 +#: ../src/libs/tools/global_toolbox.c:465 +msgid "no overlays" +msgstr "žádné překryvy" + +#: ../src/libs/tools/global_toolbox.c:437 +msgid "overlays on mouse hover" +msgstr "překryvy při najetí myší" + +#: ../src/libs/tools/global_toolbox.c:438 +msgid "extended overlays on mouse hover" +msgstr "rozšířené překryvy při najetí myší" + +#: ../src/libs/tools/global_toolbox.c:439 +#: ../src/libs/tools/global_toolbox.c:466 +msgid "permanent overlays" +msgstr "trvalé překryvy" + +#: ../src/libs/tools/global_toolbox.c:440 +#: ../src/libs/tools/global_toolbox.c:467 +msgid "permanent extended overlays" +msgstr "trvalé rozšířené překryvy" + +#: ../src/libs/tools/global_toolbox.c:441 +msgid "permanent overlays extended on mouse hover" +msgstr "trvalé překryvy rozšířené při najetí myší" + +#: ../src/libs/tools/global_toolbox.c:443 +#: ../src/libs/tools/global_toolbox.c:469 +msgid "overlays block on mouse hover" +msgstr "blok překryvu při najetí myši" + +#: ../src/libs/tools/global_toolbox.c:444 +#: ../src/libs/tools/global_toolbox.c:470 +msgid "during (s)" +msgstr "během (s)" + +#: ../src/libs/tools/global_toolbox.c:449 +#: ../src/libs/tools/global_toolbox.c:475 +msgid "show tooltip" +msgstr "zobrazit nápovědu" + +#: ../src/libs/tools/global_toolbox.c:487 +msgid "help" +msgstr "pomoc" + +#: ../src/libs/tools/global_toolbox.c:489 +msgid "enable this, then click on a control element to see its online help" +msgstr "" +"povolte toto a poté kliknutím na ovládací prvek zobrazíte jeho online " +"nápovědu" + +#: ../src/libs/tools/global_toolbox.c:496 +msgid "" +"define shortcuts\n" +"ctrl+click to switch off overwrite confirmations\n" +"\n" +"hover over a widget and press keys with mouse click and scroll or move " +"combinations\n" +"repeat same combination again to delete mapping\n" +"click on a widget, module or screen area to open the dialog for further " +"configuration" +msgstr "" +"definovat zkratky\n" +"ctrl+klik vypne potvrzení přepsání\n" +"\n" +"umístěte kurzor na widget a stiskněte klávesy s kliknutím myši a posouvejte " +"nebo přesouvejte kombinace\n" +"zopakováním stejné kombinace znovu smažete mapování\n" +"kliknutím na widget, modul nebo oblast obrazovky otevřete dialog pro další " +"konfiguraci" + +#: ../src/libs/tools/global_toolbox.c:512 +msgid "show global preferences" +msgstr "zobrazit globální předvolby" + +#: ../src/libs/tools/hinter.c:42 +msgid "hinter" +msgstr "napovídač" + +#: ../src/libs/tools/hinter.c:98 +#, c-format +msgid "%s in current collection" +msgstr "%s v aktuální kolekci" + +#: ../src/libs/tools/image_infos.c:40 +msgid "image infos" +msgstr "info o obrázku" + +#: ../src/libs/tools/lighttable.c:116 +msgid "click to exit from full preview layout." +msgstr "kliknutím ukončíte režim plného náhledu." + +#: ../src/libs/tools/lighttable.c:118 +msgid "click to enter full preview layout." +msgstr "kliknutím otevřete zobrazení plného náhledu." + +#: ../src/libs/tools/lighttable.c:121 +msgid "click to enter culling layout in fixed mode." +msgstr "kliknutím vstoupíte do pevného rolovacího rozvržení." + +#: ../src/libs/tools/lighttable.c:123 ../src/libs/tools/lighttable.c:128 +msgid "click to exit culling layout." +msgstr "kliknutím opustíte rolovací rozvržení." + +#: ../src/libs/tools/lighttable.c:126 +msgid "click to enter culling layout in dynamic mode." +msgstr "kliknutím vstoupíte do dynamického rolovacího rozvržení." + +#: ../src/libs/tools/lighttable.c:365 +msgid "toggle filemanager layout" +msgstr "přepnout rozložení správce souborů" + +#: ../src/libs/tools/lighttable.c:368 +msgid "click to enter filemanager layout." +msgstr "kliknout pro rozložení správce souborů." + +#: ../src/libs/tools/lighttable.c:374 +msgid "toggle zoomable lighttable layout" +msgstr "přepnout rozvržení se zoomovatelným katalogem" + +#: ../src/libs/tools/lighttable.c:377 +msgid "click to enter zoomable lighttable layout." +msgstr "kliknutím vstoupíte do rozvržení se zoomovatelným katalogem." + +#: ../src/libs/tools/lighttable.c:383 +msgid "toggle culling mode" +msgstr "přepnout režim rolování" + +#: ../src/libs/tools/lighttable.c:391 +msgid "toggle culling dynamic mode" +msgstr "přepnout režim dynamického rolování" + +#: ../src/libs/tools/lighttable.c:438 +msgid "toggle culling zoom mode" +msgstr "přepnout rolovací režim zvětšení" + +#: ../src/libs/tools/lighttable.c:440 +msgid "exit current layout" +msgstr "opustit aktuální rozložení" + +#: ../src/libs/tools/midi.c:41 +msgid "midi" +msgstr "midi" + +#: ../src/libs/tools/midi.c:221 +msgid "using absolute encoding; reinitialise to switch to relative" +msgstr "" +"použití absolutního kódování; znovu inicializovat pro přepnutí na relativní" + +#: ../src/libs/tools/midi.c:225 +#, c-format +msgid "%d more identical (down) moves before switching to relative encoding" +msgstr "" +"%d více identické (dolů) se pohybuje před přepnutím na relativní kódování" + +#: ../src/libs/tools/midi.c:228 +#, c-format +msgid "switching encoding to relative (down = %d)" +msgstr "přepnutí kódování na relativní (dolů = %d)" + +#: ../src/libs/tools/midi.c:558 +#, c-format +msgid "%s opened as midi%d" +msgstr "%s otevřeno jako midi%d" + +#: ../src/libs/tools/module_toolbox.c:46 +msgid "module toolbox" +msgstr "modul nástrojů" + +#. connect callbacks +#: ../src/libs/tools/ratings.c:97 +msgid "set star rating for selected images" +msgstr "zapsat hodnocení * pro vybrané obrázky" + +#: ../src/libs/tools/timeline.c:102 +msgid "timeline" +msgstr "časová osa" + +#: ../src/libs/tools/timeline.c:1433 +msgid "start selection" +msgstr "start výběru" + +#: ../src/libs/tools/timeline.c:1434 +msgid "stop selection" +msgstr "konec výběru" + +#: ../src/libs/tools/view_toolbox.c:46 +msgid "view toolbox" +msgstr "zobrazit toolbox" + +#: ../src/libs/tools/viewswitcher.c:60 +msgid "viewswitcher" +msgstr "přepínač pohledu" + +#: ../src/lua/preferences.c:656 ../src/lua/preferences.c:671 +#: ../src/lua/preferences.c:683 ../src/lua/preferences.c:695 +#: ../src/lua/preferences.c:711 ../src/lua/preferences.c:775 +#, c-format +msgid "double-click to reset to `%s'" +msgstr "dvojklik pro reset na `%s'" + +#: ../src/lua/preferences.c:681 +msgid "select file" +msgstr "výběr souboru" + +#: ../src/lua/preferences.c:734 +#, c-format +msgid "double-click to reset to `%d'" +msgstr "dvojklik pro reset na `%d'" + +#: ../src/lua/preferences.c:761 +#, c-format +msgid "double-click to reset to `%f'" +msgstr "dvojklik pro reset na `%f'" + +#: ../src/lua/preferences.c:837 +msgid "Lua options" +msgstr "Nastavení Lua" + +#: ../src/views/darkroom.c:503 +#, c-format +msgid "" +"darktable could not load `%s', switching to lighttable now.\n" +"\n" +"please check that the camera model that produced the image is supported in " +"darktable\n" +"(list of supported cameras is at https://www.darktable.org/resources/camera-" +"support/).\n" +"if you are sure that the camera model is supported, please consider opening " +"an issue\n" +"at https://github.com/darktable-org/darktable" +msgstr "" +"darktable nemohl načíst `%s', nyní přepínám na katalog.\n" +"\n" +"zkontrolujte, zda je model fotoaparátu, který vytvořil snímek, podporován v " +"darktable\n" +"(seznam podporovaných kamer je na https://www.darktable.org/resources/camera-" +"support/).\n" +"pokud jste si jisti, že je model fotoaparátu podporován, zvažte otevření " +"problému\n" +"na https://github.com/darktable-org/darktable" + +#: ../src/views/darkroom.c:521 +#, c-format +msgctxt "darkroom" +msgid "loading `%s' ..." +msgstr "načítám `%s' ..." + +#: ../src/views/darkroom.c:668 ../src/views/darkroom.c:2335 +msgid "gamut check" +msgstr "kontrola rozsahu" + +#: ../src/views/darkroom.c:668 +msgid "soft proof" +msgstr "měkký obtah" + +#. fail :( +#: ../src/views/darkroom.c:708 ../src/views/print.c:356 +msgid "no image to open!" +msgstr "není obrázek pro otevření!" + +#: ../src/views/darkroom.c:1232 +msgid "no user-defined presets for favorite modules were found" +msgstr "" +"nebyly nalezeny žádné uživatelsky definované presety pro oblíbené moduly" + +#: ../src/views/darkroom.c:1377 +msgid "no styles have been created yet" +msgstr "zatím nebyly vytvořeny žádné styly" + +#: ../src/views/darkroom.c:2170 ../src/views/darkroom.c:2171 +msgid "quick access to presets" +msgstr "rychlý přístup do presetů" + +#: ../src/views/darkroom.c:2179 +msgid "quick access to styles" +msgstr "rychlý přístup ke stylům" + +#: ../src/views/darkroom.c:2181 +msgid "quick access for applying any of your styles" +msgstr "rychlý přístup pro použití libovolného z vašich stylů" + +#: ../src/views/darkroom.c:2187 +msgid "second window" +msgstr "druhé okno" + +#: ../src/views/darkroom.c:2190 +msgid "display a second darkroom image window" +msgstr "zobrazit druhé okno s darkroomem" + +#: ../src/views/darkroom.c:2195 +msgid "color assessment" +msgstr "hodnocení barev" + +#: ../src/views/darkroom.c:2198 +msgid "toggle ISO 12646 color assessment conditions" +msgstr "přepnout podmínky hodnocení barev ISO 12646" + +#: ../src/views/darkroom.c:2211 +msgid "" +"toggle raw over exposed indication\n" +"right click for options" +msgstr "" +"přepnout indikaci přepalů raw\n" +"kliknutím pravým tlačítkem zobrazíte možnosti" + +#: ../src/views/darkroom.c:2227 +msgid "select how to mark the clipped pixels" +msgstr "vyberte, jak označit oříznuté pixely" + +#: ../src/views/darkroom.c:2229 +msgid "mark with CFA color" +msgstr "označte barvou CFA" + +#: ../src/views/darkroom.c:2229 +msgid "mark with solid color" +msgstr "značka plnou barvou" + +#: ../src/views/darkroom.c:2229 +msgid "false color" +msgstr "neplatná barva" + +#: ../src/views/darkroom.c:2232 ../src/views/darkroom.c:2283 +msgid "color scheme" +msgstr "barevné schéma" + +#: ../src/views/darkroom.c:2233 +msgid "" +"select the solid color to indicate over exposure.\n" +"will only be used if mode = mark with solid color" +msgstr "" +"vyberte plnou barvu pro označení nadměrné expozice.\n" +"použije se pouze v případě, že režim = označit plnou barvou" + +#: ../src/views/darkroom.c:2236 +msgctxt "solidcolor" +msgid "red" +msgstr "červená" + +#: ../src/views/darkroom.c:2237 +msgctxt "solidcolor" +msgid "green" +msgstr "zelená" + +#: ../src/views/darkroom.c:2238 +msgctxt "solidcolor" +msgid "blue" +msgstr "modrá" + +#: ../src/views/darkroom.c:2239 +msgctxt "solidcolor" +msgid "black" +msgstr "černá" + +#: ../src/views/darkroom.c:2247 +msgid "" +"threshold of what shall be considered overexposed\n" +"1.0 - white level\n" +"0.0 - black level" +msgstr "" +"prahová hodnota toho, co bude považováno za přeexponované\n" +"1,0 - úroveň bílé\n" +"0,0 - úroveň černé" + +#: ../src/views/darkroom.c:2261 +msgid "" +"toggle clipping indication\n" +"right click for options" +msgstr "" +"přepnout indikaci oříznutí\n" +"kliknutím pravým tlačítkem zobrazíte možnosti" + +#: ../src/views/darkroom.c:2276 +msgid "clipping preview mode" +msgstr "režim náhledu oříznutí" + +#: ../src/views/darkroom.c:2277 +msgid "" +"select the metric you want to preview\n" +"full gamut is the combination of all other modes" +msgstr "" +"vyberte metriku, kterou chcete zobrazit\n" +"plný rozsah je kombinací všech ostatních režimů" + +#: ../src/views/darkroom.c:2279 +msgid "full gamut" +msgstr "plný rozsah" + +#: ../src/views/darkroom.c:2279 +msgid "any RGB channel" +msgstr "jakýkoli RGB kanál" + +#: ../src/views/darkroom.c:2279 +msgid "luminance only" +msgstr "pouze jas" + +#: ../src/views/darkroom.c:2279 +msgid "saturation only" +msgstr "pouze sytost" + +#: ../src/views/darkroom.c:2284 +msgid "select colors to indicate clipping" +msgstr "vyberte barvy pro označení oříznutí" + +#: ../src/views/darkroom.c:2286 +msgid "red & blue" +msgstr "červená a modrá" + +#: ../src/views/darkroom.c:2286 +msgid "purple & green" +msgstr "fialová a zelená" + +#: ../src/views/darkroom.c:2293 +msgid "lower threshold" +msgstr "dolní hranice" + +#: ../src/views/darkroom.c:2294 +msgid "" +"clipping threshold for the black point,\n" +"in EV, relatively to white (0 EV).\n" +"8 bits sRGB clips blacks at -12.69 EV,\n" +"8 bits Adobe RGB clips blacks at -19.79 EV,\n" +"16 bits sRGB clips blacks at -20.69 EV,\n" +"typical fine-art mat prints produce black at -5.30 EV,\n" +"typical color glossy prints produce black at -8.00 EV,\n" +"typical B&W glossy prints produce black at -9.00 EV." +msgstr "" +"přáh ořezu pro černý bod,\n" +"v EV, relativně k bílé (0 EV).\n" +"8bitový sRGB klipy černé při -12,69 EV,\n" +"8bitové Adobe RGB klipy černé při -19,79 EV,\n" +"16bitový sRGB klipy černé při -20,69 EV,\n" +"typické umělecké matné tisky produkují černou při -5,30 EV,\n" +"typické barevné lesklé výtisky vytvářejí černou při -8,00 EV,\n" +"typické černobílé lesklé výtisky vytvářejí černou při -9,00 EV." + +#: ../src/views/darkroom.c:2310 +msgid "upper threshold" +msgstr "horní práh" + +#: ../src/views/darkroom.c:2312 +#, no-c-format +msgid "" +"clipping threshold for the white point.\n" +"100% is peak medium luminance." +msgstr "" +"práh ořezu pro bílý bod.\n" +"100% je špičkový střední jas." + +#: ../src/views/darkroom.c:2324 +msgid "softproof" +msgstr "jemný obrys" + +#: ../src/views/darkroom.c:2327 +msgid "" +"toggle softproofing\n" +"right click for profile options" +msgstr "" +"přepnout jemný obrys\n" +"kliknutím pravým tlačítkem zobrazíte možnosti profilu" + +#: ../src/views/darkroom.c:2338 +msgid "" +"toggle gamut checking\n" +"right click for profile options" +msgstr "" +"přepnout kontrolu rozsahu\n" +"kliknutím pravým tlačítkem zobrazíte možnosti profilu" + +#: ../src/views/darkroom.c:2365 ../src/views/darkroom.c:2367 +#: ../src/views/darkroom.c:2381 ../src/views/darkroom.c:2382 +#: ../src/views/darkroom.c:2383 ../src/views/darkroom.c:2384 +#: ../src/views/lighttable.c:1182 ../src/views/lighttable.c:1184 +msgid "profiles" +msgstr "profily" + +#: ../src/views/darkroom.c:2367 ../src/views/lighttable.c:1184 +msgid "preview intent" +msgstr "náhledový záměr" + +#: ../src/views/darkroom.c:2381 ../src/views/lighttable.c:1188 +msgid "display profile" +msgstr "profil displeje" + +#: ../src/views/darkroom.c:2382 ../src/views/lighttable.c:1191 +msgid "preview display profile" +msgstr "ukázat profil displeje" + +#: ../src/views/darkroom.c:2384 +msgid "histogram profile" +msgstr "profil histogramu" + +#: ../src/views/darkroom.c:2391 +msgid "second preview window ISO 12646 color assessment" +msgstr "druhé okno náhledu barvy podle ISO 12646" + +#: ../src/views/darkroom.c:2393 +msgid "color assessment second preview" +msgstr "posouzení barev druhý náhled" + +#: ../src/views/darkroom.c:2452 ../src/views/lighttable.c:1225 +msgid "display ICC profiles" +msgstr "zobrazení ICC profilů" + +#: ../src/views/darkroom.c:2456 ../src/views/lighttable.c:1229 +msgid "preview display ICC profiles" +msgstr "náhled ICC profilů displeje" + +#: ../src/views/darkroom.c:2460 +msgid "softproof ICC profiles" +msgstr "měkké ICC profily" + +#: ../src/views/darkroom.c:2464 +msgid "histogram and color picker ICC profiles" +msgstr "histogram a ICC profily pro výběr barev" + +#: ../src/views/darkroom.c:2497 +msgid "" +"toggle guide lines\n" +"right click for guides options" +msgstr "" +"přepínat vodicí čáry\n" +"kliknutím pravým tlačítkem zobrazíte možnosti vodítek" + +#. Fullscreen preview key +#: ../src/views/darkroom.c:2514 +msgid "full preview" +msgstr "plný náhled" + +#. add an option to allow skip mouse events while other overlays are consuming mouse actions +#: ../src/views/darkroom.c:2518 +msgid "force pan/zoom/rotate with mouse" +msgstr "vynutit posunutí/přiblížení/otočení myší" + +#. Zoom shortcuts +#: ../src/views/darkroom.c:2530 +msgid "zoom close-up" +msgstr "přiblížit" + +#. zoom in/out +#. zoom in/out/min/max +#: ../src/views/darkroom.c:2533 ../src/views/lighttable.c:1283 +msgid "zoom in" +msgstr "přiblížit" + +#: ../src/views/darkroom.c:2534 ../src/views/lighttable.c:1285 +msgid "zoom out" +msgstr "oddálit" + +#. Shortcut to skip images +#: ../src/views/darkroom.c:2537 +msgid "image forward" +msgstr "obrázek vpřed" + +#: ../src/views/darkroom.c:2538 +msgid "image back" +msgstr "obrázek vzad" + +#. cycle overlay colors +#: ../src/views/darkroom.c:2541 +msgid "cycle overlay colors" +msgstr "přepínat barvu překryvu" + +#. toggle visibility of drawn masks for current gui module +#: ../src/views/darkroom.c:2544 +msgid "show drawn masks" +msgstr "ukázat nakreslené masky" + +#. brush size +/- +#: ../src/views/darkroom.c:2547 +msgid "increase brush size" +msgstr "zvýšit velikost štětce" + +#: ../src/views/darkroom.c:2548 +msgid "decrease brush size" +msgstr "snížit velikost štětce" + +#. brush hardness +/- +#: ../src/views/darkroom.c:2551 +msgid "increase brush hardness" +msgstr "zvýšit tvrdost štětce" + +#: ../src/views/darkroom.c:2552 +msgid "decrease brush hardness" +msgstr "snížit tvrdost štětce" + +#. brush opacity +/- +#: ../src/views/darkroom.c:2555 +msgid "increase brush opacity" +msgstr "zvýšit neprůhlednost štětce" + +#: ../src/views/darkroom.c:2556 +msgid "decrease brush opacity" +msgstr "snížit neprůhlednost štětce" + +#. undo/redo +#: ../src/views/darkroom.c:2559 ../src/views/lighttable.c:1275 +#: ../src/views/map.c:2115 +msgid "undo" +msgstr "zpět" + +#: ../src/views/darkroom.c:2560 ../src/views/lighttable.c:1276 +#: ../src/views/map.c:2116 +msgid "redo" +msgstr "znovu" + +#. change the precision for adjusting sliders with keyboard shortcuts +#: ../src/views/darkroom.c:2563 +msgid "change keyboard shortcut slider precision" +msgstr "změnit klávesovou zkratku přesnosti posuvníku" + +#: ../src/views/darkroom.c:3565 +msgid "keyboard shortcut slider precision: fine" +msgstr "klávesová zkratka přesnost posuvníku: jemná" + +#: ../src/views/darkroom.c:3567 +msgid "keyboard shortcut slider precision: normal" +msgstr "klávesová zkratka přesnost posuvníku: normální" + +#: ../src/views/darkroom.c:3569 +msgid "keyboard shortcut slider precision: coarse" +msgstr "klávesová zkratka přesnost posuvníku: hrubá" + +#: ../src/views/darkroom.c:3584 +msgid "switch to lighttable" +msgstr "přepnout na katalog" + +#: ../src/views/darkroom.c:3585 ../src/views/lighttable.c:882 +msgid "zoom in the image" +msgstr "zvětšit obraz" + +#: ../src/views/darkroom.c:3586 +msgid "unbounded zoom in the image" +msgstr "neomezené zvětšení obrazu" + +#: ../src/views/darkroom.c:3587 +msgid "zoom to 100% 200% and back" +msgstr "zvětšit na 100% 200% a zpět" + +#: ../src/views/darkroom.c:3588 ../src/views/lighttable.c:885 +msgid "pan a zoomed image" +msgstr "posuňte zvětšený obrázek" + +#: ../src/views/darkroom.c:3590 ../src/views/lighttable.c:927 +msgid "[modules] expand module without closing others" +msgstr "[moduly] rozbalit modul bez sbalení ostatních" + +#: ../src/views/darkroom.c:3591 ../src/views/lighttable.c:928 +msgid "[modules] expand module and close others" +msgstr "[moduly] rozbalit modul a sbalit ostatní" + +#: ../src/views/darkroom.c:3593 +msgid "[modules] rename module" +msgstr "[moduly] přejmenovat modul" + +#: ../src/views/darkroom.c:3595 +msgid "[modules] change module position in pipe" +msgstr "[moduly] změna polohy modulu ve frontě zpracování" + +#: ../src/views/knight.c:334 +msgid "good knight" +msgstr "dobrý rytíř" + +#. Show infos key +#: ../src/views/lighttable.c:656 ../src/views/lighttable.c:1266 +msgid "show infos" +msgstr "zobrazit informace" + +#: ../src/views/lighttable.c:759 +msgid "middle" +msgstr "střed" + +#: ../src/views/lighttable.c:877 +msgid "open image in darkroom" +msgstr "otevřít obrázek v editoru" + +#: ../src/views/lighttable.c:881 +msgid "switch to next/previous image" +msgstr "přepnout na další/předchozí obrázek" + +#: ../src/views/lighttable.c:884 ../src/views/lighttable.c:915 +#, no-c-format +msgid "zoom to 100% and back" +msgstr "zvětšit na 100 % a zpět" + +#: ../src/views/lighttable.c:889 ../src/views/lighttable.c:908 +msgid "scroll the collection" +msgstr "posouvat sbírku" + +#: ../src/views/lighttable.c:891 +msgid "change number of images per row" +msgstr "změnit počet obrázků na řádek" + +#: ../src/views/lighttable.c:894 +msgid "select an image" +msgstr "vybrat obrázek" + +#: ../src/views/lighttable.c:896 +msgid "select range from last image" +msgstr "vyberte rozsah z posledního obrázku" + +#: ../src/views/lighttable.c:898 +msgid "add image to or remove it from a selection" +msgstr "přidat obrázek do výběru nebo jej z výběru odebrat" + +#: ../src/views/lighttable.c:902 +msgid "change image order" +msgstr "změnit pořadí obrázků" + +#: ../src/views/lighttable.c:909 +msgid "zoom all the images" +msgstr "přiblížit všechny obrázky" + +#: ../src/views/lighttable.c:910 +msgid "pan inside all the images" +msgstr "posun uvnitř všech obrázků" + +#: ../src/views/lighttable.c:912 +msgid "zoom current image" +msgstr "přiblížit aktuální obrázek" + +#: ../src/views/lighttable.c:913 +msgid "pan inside current image" +msgstr "posun uvnitř aktuálního obrázku" + +#: ../src/views/lighttable.c:918 +#, no-c-format +msgid "zoom current image to 100% and back" +msgstr "zvětšit aktuální obrázek na 100 % a zpět" + +#: ../src/views/lighttable.c:922 +msgid "zoom the main view" +msgstr "zvětšit hlavní pohled" + +#: ../src/views/lighttable.c:923 +msgid "pan inside the main view" +msgstr "posun uvnitř hlavního pohledu" + +#: ../src/views/lighttable.c:1160 +msgid "set display profile" +msgstr "nastavit profil zobrazení" + +#: ../src/views/lighttable.c:1246 +msgid "whole" +msgstr "celý" + +#: ../src/views/lighttable.c:1262 +msgid "leave" +msgstr "opustit" + +#: ../src/views/lighttable.c:1269 +msgid "align images to grid" +msgstr "zarovnat obrázky k mřížce" + +#: ../src/views/lighttable.c:1270 +msgid "reset first image offset" +msgstr "resetovat offset prvního obrázku" + +#: ../src/views/lighttable.c:1271 +msgid "select toggle image" +msgstr "přepnout výběr obrázku" + +#: ../src/views/lighttable.c:1272 +msgid "select single image" +msgstr "vybrat jeden obrázek" + +#. zoom for full culling & preview +#: ../src/views/lighttable.c:1279 +msgid "preview zoom 100%" +msgstr "náhled zoom 100%" + +#: ../src/views/lighttable.c:1280 +msgid "preview zoom fit" +msgstr "náhled přizpůsobit velikost" + +#: ../src/views/lighttable.c:1284 +msgid "zoom max" +msgstr "maximální zvětšení" + +#: ../src/views/lighttable.c:1286 +msgid "zoom min" +msgstr "minimální zvětšení" + +#: ../src/views/map.c:2809 +msgid "[on image] open in darkroom" +msgstr "[na obrázku] otevřít v editoru" + +#: ../src/views/map.c:2810 +msgid "[on map] zoom map" +msgstr "[na mapě] zvětšení mapy" + +#: ../src/views/map.c:2811 +msgid "move image location" +msgstr "přesunout lokaci obrázku" + +#: ../src/views/print.c:55 +msgctxt "view" +msgid "print" +msgstr "tisk" + +#: ../src/views/slideshow.c:355 +msgid "end of images" +msgstr "konec obrázků" + +#: ../src/views/slideshow.c:376 +msgid "end of images. press any key to return to lighttable mode" +msgstr "konec obrázků. stisknutím libovolné klávesy se vrátíte do katalogu" + +#: ../src/views/slideshow.c:509 +msgid "waiting to start slideshow" +msgstr "čekám na start slideshow" + +#: ../src/views/slideshow.c:678 ../src/views/slideshow.c:705 +#: ../src/views/slideshow.c:713 +msgid "slideshow paused" +msgstr "slideshow pozastavena" + +#: ../src/views/slideshow.c:686 ../src/views/slideshow.c:696 +#, c-format +msgid "slideshow delay set to %d second" +msgid_plural "slideshow delay set to %d seconds" +msgstr[0] "zpoždění slideshow nastaveno na %d sekundu" +msgstr[1] "zpoždění slideshow nastaveno na %d sekundy" +msgstr[2] "zpoždění slideshow nastaveno na %d sekund" + +#: ../src/views/slideshow.c:728 +msgid "start and stop" +msgstr "start a stop" + +#: ../src/views/slideshow.c:730 +msgid "exit slideshow" +msgstr "ukončit promítání" + +#: ../src/views/slideshow.c:734 +msgid "slow down" +msgstr "zpomalit" + +#: ../src/views/slideshow.c:738 +msgid "speed up" +msgstr "zrychlit" + +#: ../src/views/slideshow.c:743 +msgid "step forward" +msgstr "krok vpřed" + +#: ../src/views/slideshow.c:745 +msgid "step back" +msgstr "krok zpět" + +#: ../src/views/slideshow.c:753 +msgid "go to next image" +msgstr "další obrázek" + +#: ../src/views/slideshow.c:755 +msgid "go to previous image" +msgstr "předešlý obrázek" + +#: ../src/views/tethering.c:157 +#, c-format +msgid "new session initiated '%s'" +msgstr "nové sezení spuštěno '%s'" + +#: ../src/views/tethering.c:448 +msgid "no camera with tethering support available for use..." +msgstr "není k dispozici žádná kamera s podporou tetheringu..." + +#: ../src/views/view.c:1352 +msgid "left click" +msgstr "levý klik" + +#: ../src/views/view.c:1355 +msgid "right click" +msgstr "pravý klik" + +#: ../src/views/view.c:1358 +msgid "middle click" +msgstr "střední klik" + +#: ../src/views/view.c:1364 +msgid "left double-click" +msgstr "levý dvojklik" + +#: ../src/views/view.c:1367 +msgid "right double-click" +msgstr "pravý dvojklik" + +#: ../src/views/view.c:1370 +msgid "drag and drop" +msgstr "táhni a pusť" + +#: ../src/views/view.c:1373 +msgid "left click+drag" +msgstr "levý klik+táhnout" + +#: ../src/views/view.c:1376 +msgid "right click+drag" +msgstr "pravý klik+táhnout" + +#: ../src/views/view.c:1398 +msgid "darktable - accels window" +msgstr "darktable - okno akcelerátorů" + +#: ../src/views/view.c:1447 +msgid "switch to a classic window which will stay open after key release" +msgstr "přepnout na klasické okno, které po uvolnění klíče zůstane otevřené" + +#. we add the mouse actions too +#: ../src/views/view.c:1514 +msgid "mouse actions" +msgstr "akce myši" + +#~ msgctxt "preferences" +#~ msgid "nothing" +#~ msgstr "nic pro uložení" + +#~ msgctxt "preferences" +#~ msgid "memory size" +#~ msgstr "velikost paměti" + +#~ msgctxt "preferences" +#~ msgid "memory transfer" +#~ msgstr "paměťový přenos" + +#~ msgctxt "preferences" +#~ msgid "memory size and transfer" +#~ msgstr "velikost paměti a přenos" + +#~ msgctxt "preferences" +#~ msgid "id" +#~ msgstr "id" + +#~ msgctxt "preferences" +#~ msgid "folder" +#~ msgstr "složka" + +#~ msgid "" +#~ "when having raw+JPEG images together in one directory it makes no sense " +#~ "to import both. with this flag one can ignore all JPEGs found." +#~ msgstr "" +#~ "pokud máte obrázky raw+JPEG pohromadě v jednom adresáři, nemá smysl " +#~ "importovat oba. s tímto příznakem lze ignorovat všechny nalezené JPEGy." + +#~ msgid "tune OpenCL performance" +#~ msgstr "naladit výkon OpenCL" + +#~ msgid "" +#~ "allows runtime tuning of OpenCL devices:\n" +#~ " - 'memory size': uses a fixed headroom (400MB as default),\n" +#~ " - 'memory transfer': tries a faster memory access mode (pinned memory) " +#~ "used for tiling." +#~ msgstr "" +#~ "umožňuje runtime ladění OpenCL zařízení:\n" +#~ " - 'velikost paměti': používá pevnou rezervu (400 MB jako výchozí),\n" +#~ " - 'memory transfer': zkouší rychlejší režim přístupu do paměti " +#~ "(připnutá paměť) používaný pro dlaždicové uspořádání." + +#~ msgid "write sidecar file for each image" +#~ msgstr "pro každý obrázek vytvořit vedlejší soubor s vývojovými kroky" + +#~ msgid "save history while developing" +#~ msgstr "ukládat historii během vyvolávání" + +#~ msgid "" +#~ "if an instance of the module has focus, apply shortcut to that instance\n" +#~ "note: blending shortcuts always apply to the focused instance" +#~ msgstr "" +#~ "pokud je modul vybrán, použít zkratku na tuto instanci\n" +#~ "poznámka: míchání zkratek se vždy vztahuje na vybranou instanci" + +#~ msgid "tiff" +#~ msgstr "tiff" + +#~ msgid "png" +#~ msgstr "png" + +#~ msgid "j2k" +#~ msgstr "j2k" + +#~ msgid "jpeg" +#~ msgstr "jpeg" + +#~ msgid "exr" +#~ msgstr "exr" + +#~ msgid "rgbe" +#~ msgstr "rgbe" + +#~ msgid "pfm" +#~ msgstr "pfm" + +#~ msgid "netpnm" +#~ msgstr "netpnm" + +#~ msgid "avif" +#~ msgstr "avif" + +#~ msgid "heif" +#~ msgstr "heif" + +#~ msgid "libraw" +#~ msgstr "libraw" + +#~ msgid "webp" +#~ msgstr "webp" + +#~ msgid "jpeg xl" +#~ msgstr "jpeg xl" + +#~ msgid "" +#~ "due to a slow GPU hardware acceleration using OpenCL has been deactivated" +#~ msgstr "" +#~ "z důvodu pomalého GPU byla hardwarová akcelerace pomocí OpenCL " +#~ "deaktivována" + +#~ msgid "" +#~ "multiple GPUs detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "bylo zjištěno více GPU - plánovací profil OpenCL byl nastaven " +#~ "odpovídajícím způsobem" + +#~ msgid "" +#~ "very fast GPU detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "velmi rychlý GPU detekován - odpovídajícím způsobem byl nastaven " +#~ "plánovací profil OpenCL" + +#~ msgid "" +#~ "darktable discovered problems with your OpenCL setup; disabling OpenCL " +#~ "for this session!" +#~ msgstr "" +#~ "darktable objevil problémy s nastavením OpenCL; OpenCL je pro tuto relaci " +#~ "deaktivováno!" + +#~ msgid "click to dismiss this notice permanently" +#~ msgstr "kliknutím toto upozornění trvale zavřete" + +#~ msgid "RGB colors" +#~ msgstr "RGB barvy" + +#~ msgid "compression type" +#~ msgstr "druh komprese" + +#~ msgid "jp2" +#~ msgstr "jp2" + +#~ msgid "b&w image" +#~ msgstr "čb obrázek" + +#~ msgid "write RGB colors" +#~ msgstr "zapsat barvy RGB" + +#~ msgid "write grayscale" +#~ msgstr "zaptat odstíny šedi" + +#~ msgid "spot color mapping" +#~ msgstr "mapování barvy bodu" + +#~ msgid "spot mode" +#~ msgstr "bodový režim" + +#~ msgid "" +#~ "set strength of rebuilding in regions with all photosites clipped.\n" +#~ "the mask buttons shows the effect that is added to already reconstructed " +#~ "data." +#~ msgstr "" +#~ "nastavit sílu přestavby v regionech se všemi oříznutými fotomísty.\n" +#~ "tlačítka masky zobrazují efekt, který je přidán k již rekonstruovaným " +#~ "datům." + +#~ msgid "" +#~ "tone equalizer needs to be after distortion modules in the pipeline – " +#~ "disabled" +#~ msgstr "tónový ekvalizér musí být po modulech zkreslení – zakázan" + +#~ msgid "save" +#~ msgstr "uložit" + +#~ msgid "add" +#~ msgstr "přidat" + +#~ msgid "only" +#~ msgstr "pouze" + +#~ msgid "selected image[s]" +#~ msgstr "vybraný obrázek(zky)" + +#~ msgid "hardness (relative)" +#~ msgstr "tvrdost (relativní)" + +#~ msgid "hardness (absolute)" +#~ msgstr "tvrdost (absolutní)" + +#~ msgid "opacity (relative)" +#~ msgstr "neprůhlednost (relativní)" + +#~ msgid "opacity (absolute)" +#~ msgstr "neprůhlednost (absolutní)" + +#~ msgid "brush size (relative)" +#~ msgstr "velikost štětce (relativní)" + +#~ msgid "low" +#~ msgstr "nízký" + +#~ msgid "medium" +#~ msgstr "střední" + +#~ msgid "high" +#~ msgstr "vysoký" + +#~ msgid "" +#~ "pen pressure control for brush masks\n" +#~ "'off': pressure reading ignored,\n" +#~ "'hardness'/'opacity'/'brush size': pressure reading controls specified " +#~ "attribute,\n" +#~ "'absolute'/'relative': pressure reading is taken directly as attribute " +#~ "value or multiplied with pre-defined setting." +#~ msgstr "" +#~ "ovládání tlaku pera pro štětcové masky\n" +#~ "'off': údaj o tlaku ignorován,\n" +#~ "'tvrdost'/'neprůhlednost'/'velikost štětce': zadaný atribut řídí čtení " +#~ "tlaku,\n" +#~ "'absolutní'/'relativní': odečet tlaku se bere přímo jako hodnota atributu " +#~ "nebo se násobí předdefinovaným nastavením." + +#~ msgid "" +#~ "smoothing of brush strokes\n" +#~ "stronger smoothing leads to fewer nodes and easier editing but with lower " +#~ "control of accuracy." +#~ msgstr "" +#~ "vyhlazení tahů štětcem\n" +#~ "silnější vyhlazování vede k menšímu počtu uzlů a snadnějším úpravám, ale " +#~ "s nižší kontrolou přesnosti." + +#~ msgctxt "preferences" +#~ msgid "always bilinear (fast)" +#~ msgstr "vždy bilineárně (rychlý)" + +#~ msgctxt "preferences" +#~ msgid "full (possibly slow)" +#~ msgstr "plně (možná pomalé)" + +#~ msgctxt "preferences" +#~ msgid "rgb parade" +#~ msgstr "rgb průvod" + +#~ msgid "pen pressure control for brush masks" +#~ msgstr "ovládání tlaku pera pro štětcové masky" + +#~ msgid "smoothing of brush strokes" +#~ msgstr "vyhlazení tahů štětcem" + +#~ msgid "demosaicing for zoomed out darkroom mode" +#~ msgstr "demosaicing pro zvětšené obrázky v editoru" + +#~ msgid "" +#~ "demosaicer when not viewing 1:1 in darkroom mode: 'bilinear' is fast but " +#~ "slightly blurry. 'default' uses the default demosaicer for the used " +#~ "sensor (RCD or Markesteijn). 'full' will use exactly the settings as for " +#~ "full-size export." +#~ msgstr "" +#~ "demosaicer při nezobrazení 1:1 v režimu temné komory: „bilineární“ je " +#~ "rychlý, ale mírně rozmazaný. 'default' používá výchozí demosaicer pro " +#~ "použitý senzor (RCD nebo Markesteijn). 'plná' použije přesně nastavení " +#~ "jako pro export v plné velikosti." + +#~ msgid "geometry" +#~ msgstr "geometrie" + +#~ msgid "distortion fine-tune" +#~ msgstr "doladit zkreslení" + +#~ msgid "vignetting fine-tune" +#~ msgstr "jemné doladění vinětace" + +#~ msgid "sRGB (e.g. JPG)" +#~ msgstr "sRGB (např. JPG)" + +#, c-format +#~ msgid "could not send %s to trash%s%s" +#~ msgstr "nelze přesunout %s do koše %s%s" + +#~ msgid "physically delete" +#~ msgstr "fyzicky odstranit" + +#~ msgid "physically delete all files" +#~ msgstr "fyzicky odstranit všechny soubory" + +#~ msgid "skip to next file" +#~ msgstr "přeskočit na další soubor" + +#~ msgid "stop process" +#~ msgstr "zastavit proces" + +#, c-format +#~ msgid "skipped blending in module '%s': roi's do not match" +#~ msgstr "vynechané prolnutí v modulu '%s': ROI se neshodují" + +#~ msgid "could not allocate buffer for blending" +#~ msgstr "nelze přidělit vyrovnávací paměť pro míchání" + +#~ msgid "apply mask in normal or inverted mode" +#~ msgstr "aplikujte masku v normálním nebo inverzním režimu" + +#~ msgid "input devices reinitialised" +#~ msgstr "vstupní zařízení reinicializováno" + +#~ msgid "no-op" +#~ msgstr "žádná-operace" + +#~ msgid "maximum ISO value" +#~ msgstr "maximální hodnota ISO" + +#~ msgid "rgb colors" +#~ msgstr "rgb barvy" + +#~ msgid "embed icc profiles" +#~ msgstr "vestavěné icc profily" + +#~ msgid "3:2" +#~ msgstr "3:2" + +#, c-format +#~ msgid "ICC profiles in %s or %s" +#~ msgstr "Profily ICC v %s nebo %s" + +#~ msgctxt "accel" +#~ msgid "acquire" +#~ msgstr "získat" + +#~ msgctxt "accel" +#~ msgid "apply" +#~ msgstr "použít" + +#~ msgid "number of clusters to find in image" +#~ msgstr "počet skupin k nalezení na obrázku" + +#~ msgid "acquire" +#~ msgstr "získat" + +#~ msgid "analyze this image" +#~ msgstr "analyzovat tento obrázek" + +#~ msgid "apply previously analyzed image look to this image" +#~ msgstr "použít dříve analyzovaný vzhled obrázku na tento obrázek" + +#~ msgid "red black white" +#~ msgstr "červená černá bílá" + +#~ msgid "black white and skin tones" +#~ msgstr "černá bílá a tóny pleti" + +#~ msgid "black & white film" +#~ msgstr "černobílý film" + +#~ msgid "[dual demosaic_cl] internal problem" +#~ msgstr "[dual demosaic_cl] interní problém" + +#~ msgid "add local contrast" +#~ msgstr "přidat místní kontrast" + +#~ msgid "fast sharpness" +#~ msgstr "rychlá ostrost" + +#~ msgid "fast local contrast" +#~ msgstr "rychlý lokální kontrast" + +#~ msgid "[dual demosaic] can't allocate internal buffers" +#~ msgstr "[dual demosaic] nemůže alokovat vnitřní vyrovnávací paměti" + +#~ msgctxt "equalizer" +#~ msgid "sharpen" +#~ msgstr "doostření" + +#~ msgid "null" +#~ msgstr "null" + +#~ msgid "denoise (strong)" +#~ msgstr "odšumění (silné)" + +#~ msgid "autodetect" +#~ msgstr "autodetekce" + +#~ msgid "lensfun" +#~ msgstr "lensfun" + +#~ msgid "override automatic scale" +#~ msgstr "potlačit automatické měřítko" + +#~ msgid "" +#~ "click and drag to add point\n" +#~ "scroll to change size - shift+scroll to change strength - ctrl+scroll to " +#~ "change direction" +#~ msgstr "" +#~ "kliknutím a tažením přidejte bod\n" +#~ "rolujte pro změnu velikosti - Shift+scroll pro změnu síly - ctrl+scroll " +#~ "pro změnu směru" + +#~ msgid "" +#~ "click to add line\n" +#~ "scroll to change size - shift+scroll to change strength - ctrl+scroll to " +#~ "change direction" +#~ msgstr "" +#~ "kliknutím přidáte řádek\n" +#~ "rolujte pro změnu velikosti - Shift+scroll pro změnu síly - ctrl+scroll " +#~ "pro změnu směru" + +#~ msgid "" +#~ "click to add curve\n" +#~ "scroll to change size - shift+scroll to change strength - ctrl+scroll to " +#~ "change direction" +#~ msgstr "" +#~ "kliknutím přidáte křivku\n" +#~ "rolujte pro změnu velikosti - Shift+scroll pro změnu síly - ctrl+scroll " +#~ "pro změnu směru" + +#~ msgid "" +#~ "ctrl+click: add node - right click: remove path\n" +#~ "ctrl+alt+click: toggle line/curve" +#~ msgstr "" +#~ "ctrl+click: přidat uzel - pravé kliknutí: odebrat cestu\n" +#~ "ctrl+alt+click: přepínání čáry/křivky" + +#~ msgid "drag to change shape of path" +#~ msgstr "tažením změníte tvar cesty" + +#~ msgid "drag to adjust warp radius" +#~ msgstr "tažením upravte poloměr pokřivení" + +#~ msgid "drag to adjust hardness (center)" +#~ msgstr "tažením upravíte tvrdost (uprostřed)" + +#~ msgid "drag to adjust hardness (feather)" +#~ msgstr "tažením upravíte tvrdost (peříčko)" + +#~ msgid "" +#~ "drag to adjust warp strength\n" +#~ "ctrl+click: linear, grow, and shrink" +#~ msgstr "" +#~ "tažením upravte sílu osnovy\n" +#~ "ctrl+click: lineární, růst a zmenšování" + +#~ msgid "[lmmse_demosaic] too small area" +#~ msgstr "[lmmse_demosaic] příliš malá oblast" + +#~ msgid "[rcd_demosaic] too small area" +#~ msgstr "[rcd_demosaic] příliš malá oblast" + +#~ msgid "" +#~ "tone equalizer in/out buffer are ill-aligned, please report the bug to " +#~ "the developers" +#~ msgstr "" +#~ "vstupní/výstupní vyrovnávací paměť tónového ekvalizéru je špatně " +#~ "zarovnaná, nahlaste prosím chybu vývojářům" + +#~ msgid "size is relative to" +#~ msgstr "velikost je relativní k" + +#, c-format +#~ msgid "output ICC profiles in %s or %s" +#~ msgstr "výstupní ICC profily z %s nebo %s" + +#~ msgid "rotate 90 degrees ccw" +#~ msgstr "otočit o 90 stupňů proti směru hodinových ručiček" + +#~ msgid "rotate 90 degrees cw" +#~ msgstr "otočit o 90 stupňů po směru hodinových ručiček" + +#~ msgid "<leave unchanged>" +#~ msgstr "<zachovat>" + +#~ msgid "legacy flag. set for all new images" +#~ msgstr "starší příznak. nastavit pro všechny nové obrázky" + +#, c-format +#~ msgid "** %s" +#~ msgstr "** %s" + +#, c-format +#~ msgid "at least one new tagname (%s) already exists, aborting." +#~ msgstr "alespoň jeden nový štítek (%s) již existuje, storno." + +#~ msgid "toggle sticky preview mode" +#~ msgstr "přepnout režim rychlého náhledu" + +#~ msgid "toggle sticky preview mode with focus detection" +#~ msgstr "přepnout režim rychlého náhledu s detekcí zaostření" + +#, c-format +#~ msgid "display ICC profiles in %s or %s" +#~ msgstr "profily ICC displeje v %s nebo %s" + +#, c-format +#~ msgid "preview display ICC profiles in %s or %s" +#~ msgstr "zobrazit profily ICC v %s nebo %s" + +#, c-format +#~ msgid "softproof ICC profiles in %s or %s" +#~ msgstr "profily ICC jemný obrys z %s nebo %s" + +#~ msgid "focus detection" +#~ msgstr "detekce zaostření" + +#~ msgid "128 px" +#~ msgstr "128 px" + +#~ msgid "averaged eigf" +#~ msgstr "zprůměrované eigf" + +#~ msgid "eigf" +#~ msgstr "eigf" + +#, c-format +#~ msgid "darktable » %s" +#~ msgstr "darktable » %s" + +#~ msgid "<h1>Sorry,</h1><p>something went wrong. Please try again.</p>" +#~ msgstr "" +#~ "<h1>Je nám líto,</h1><p>něco se pokazilo. Zkuste to prosím znovu.</p>" + +#~ msgid "" +#~ "<h1>Thank you,</h1><p>everything should have worked, you can <b>close</b> " +#~ "your browser now and <b>go back</b> to darktable.</p>" +#~ msgstr "" +#~ "<h1>Děkuji,</h1><p>vše mělo fungovat. Nyní můžete <b>zavřít</b> prohlížeč " +#~ "a <b>vrátit se</b> do darktable.</p>" + +#, c-format +#~ msgid "unsupported working profile %s has been replaced by Rec2020 RGB!\n" +#~ msgstr "nepodporovaný pracovní profil %s byl nahrazen Rec2020 RGB!\n" + +#~ msgid "a4" +#~ msgstr "a4" + +#~ msgid "a3" +#~ msgstr "a3" + +#~ msgid "lighten modes" +#~ msgstr "režimy zesvětlení" + +#~ msgid "darken modes" +#~ msgstr "režimy ztmavení" + +#~ msgid "deprecated modes" +#~ msgstr "zastaralé režimy" + +#~ msgid "" +#~ "press Del to delete selected shortcut\n" +#~ "double-click to add new shortcut\n" +#~ "start typing for incremental search" +#~ msgstr "" +#~ "stiskněte Del pro smazání vybrané zkratky\n" +#~ "dvojklik přidá novou zkratku\n" +#~ "začněte psát pro přírůstkové vyhledávání" + +#~ msgid "make this preset auto set values depending on images" +#~ msgstr "" +#~ "nastavte tuto předvolbu automaticky na hodnoty v závislosti na snímcích" + +#~ msgid "raw CA correction supports only standard RGB Bayer filter arrays" +#~ msgstr "korekce RAW CA podporuje pouze standardní pole filtrů RGB Bayer" + +#~ msgid "bypassed while zooming in" +#~ msgstr "vynechán při zvětšování" + +#~ msgid "" +#~ "while calculating the correction parameters the internal maths failed so " +#~ "module is bypassed.\n" +#~ "you can get more info by running darktable via the console." +#~ msgstr "" +#~ "při výpočtu korekčních parametrů selhala interní matematika, takže modul " +#~ "je vynechán.\n" +#~ "více informací získáte spuštěním darktable přes konzoli." + +#~ msgid "" +#~ "internals maths found too few data points so restricted the order of the " +#~ "fit to linear.\n" +#~ "you might view bad correction results." +#~ msgstr "" +#~ "vnitřní matematika našla příliš málo datových bodů, takže omezila pořadí " +#~ "proložení na lineární.\n" +#~ "můžete vidět špatné výsledky oprav." + +#~ msgid "" +#~ "to calculate good parameters for raw CA correction we want full sensor " +#~ "data or at least a sensible part of that.\n" +#~ "the image shown in darkroom would look vastly different from developed " +#~ "files so effect is bypassed now." +#~ msgstr "" +#~ "pro výpočet dobrých parametrů pro raw CA korekci potřebujeme úplná data " +#~ "senzoru nebo alespoň jejich rozumnou část.\n" +#~ "obraz zobrazený v editoru by vypadal výrazně odlišně od zpracovaných " +#~ "souborů, takže efekt je nyní vynechán." + +#~ msgid "affect color, brightness and contrast" +#~ msgstr "ovlivnit barvu, jas a kontrast" + +#~ msgid "commit changes" +#~ msgstr "potvrdit změny" + +#~ msgid "crop from top" +#~ msgstr "oříznout shora" + +#~ msgid "crop from bottom" +#~ msgstr "oříznout zdola" + +#~ msgid "compress shadows/highlights (eigf): strong" +#~ msgstr "komprese stínů/světel (eigf): silná" + +#~ msgid "compress shadows/highlights (eigf): medium" +#~ msgstr "komprese stínů/světel (eigf): střední" + +#~ msgid "compress shadows/highlights (eigf): soft" +#~ msgstr "komprese stínů/světel (eigf): měkká" + +#~ msgid "grouping filter" +#~ msgstr "seskupovací filtr" + +#~ msgid "history filter" +#~ msgstr "filtr historie" + +#~ msgid "local_copy filter" +#~ msgstr "filtr local_copy" + +#~ msgid "module order filter" +#~ msgstr "filtr pořadí modulů" + +#~ msgid "" +#~ "histogram\n" +#~ "scroll to coarse-rotate color harmony guide lines\n" +#~ "shift+scroll to fine rotate\n" +#~ "alt+scroll to change harmony type\n" +#~ "shift+alt+scroll to change harmony width" +#~ msgstr "" +#~ "histogram\n" +#~ "přejděte k vodicím čarám pro hrubé otočení harmonie barev\n" +#~ "shift+scroll pro jemné otočení\n" +#~ "alt+scroll pro změnu typu harmonie\n" +#~ "shift+alt+scroll pro změnu šířky harmonie" + +#~ msgid "" +#~ "histogram\n" +#~ "drag to change black point,\n" +#~ "double-click resets" +#~ msgstr "" +#~ "histogram\n" +#~ "přetažením změníte černý bod,\n" +#~ "dvojklik resetuje" + +#~ msgid "" +#~ "histogram\n" +#~ "drag to change exposure,\n" +#~ "double-click resets" +#~ msgstr "" +#~ "histogram\n" +#~ "přetažením změníte expozici,\n" +#~ "dvojikik resetuje" + +#~ msgid "set mode to" +#~ msgstr "nastavte režim na" + +#~ msgid "fit to screen" +#~ msgstr "přizpůsobit obrazovce" + +#~ msgid "zoom fill" +#~ msgstr "vyplnit" + +#~ msgid "zoom fit" +#~ msgstr "přizpůsobit šířce" + +#~ msgctxt "preferences" +#~ msgid "modern" +#~ msgstr "moderní" + +#~ msgctxt "preferences" +#~ msgid "legacy" +#~ msgstr "starší" + +#~ msgid "auto-apply chromatic adaptation defaults" +#~ msgstr "automaticky použít výchozí nastavení chromatické adaptace" + +#~ msgid "" +#~ "legacy performs a basic chromatic adaptation using only the white balance " +#~ "module\n" +#~ "modern uses a combination of white balance module and color calibration " +#~ "module, with improved color science for chromatic adaptation" +#~ msgstr "" +#~ "legacy provádí základní chromatickou úpravu pouze pomocí modulu vyvážení " +#~ "bílé\n" +#~ "modern využívá kombinaci modulu vyvážení bílé a modulu kalibrace barev s " +#~ "vylepšenou vědou o barvách pro chromatickou adaptaci" + +#~ msgid "set mode to rgb parade" +#~ msgstr "nastavit režim na rgb přehlídka" + +#~ msgid "set mode to vectorscope" +#~ msgstr "nastavit režim na vectorscope" + +#~ msgid "set mode to histogram" +#~ msgstr "nastavte režim na histogram" + +#~ msgid "click to hide red channel" +#~ msgstr "kliknutím skryjete červený kanál" + +#~ msgid "click to show red channel" +#~ msgstr "kliknutím zobrazíte červený kanál" + +#~ msgid "click to hide green channel" +#~ msgstr "kliknutím skryjete zelený kanál" + +#~ msgid "click to show green channel" +#~ msgstr "kliknutím zobrazíte zelený kanál" + +#~ msgid "click to hide blue channel" +#~ msgstr "kliknutím skryjete modrý kanál" + +#~ msgid "click to show blue channel" +#~ msgstr "kliknutím zobrazíte modrý kanál" + +#~ msgid "switch histogram type" +#~ msgstr "přepnout typ histogramu" + +#~ msgid "modules: default" +#~ msgstr "moduly: výchozí" + +#~ msgctxt "modulegroup" +#~ msgid "technical" +#~ msgstr "technické" + +#~ msgctxt "preferences" +#~ msgid "on startup" +#~ msgstr "při spuštění" + +#~ msgctxt "preferences" +#~ msgid "on both" +#~ msgstr "při obou" + +#~ msgctxt "preferences" +#~ msgid "on startup (don't ask)" +#~ msgstr "při startu (bez dotazu)" + +#~ msgctxt "preferences" +#~ msgid "on close (don't ask)" +#~ msgstr "při ukončení (bez dotazu)" + +#~ msgctxt "preferences" +#~ msgid "on both (don't ask)" +#~ msgstr "při obou (bez dotazu)" + +#~ msgctxt "preferences" +#~ msgid "true" +#~ msgstr "ano" + +#~ msgctxt "preferences" +#~ msgid "active module" +#~ msgstr "aktivní modul" + +#~ msgctxt "preferences" +#~ msgid "false" +#~ msgstr "ne" + +#~ msgid "check for database maintenance" +#~ msgstr "zkontrolovat údržbu databáze" + +#~ msgid "" +#~ "this option indicates when to check database fragmentation and perform " +#~ "maintenance" +#~ msgstr "" +#~ "tato možnost označuje, kdy zkontrolovat fragmentaci databáze a provést " +#~ "údržbu" + +#~ msgid "database fragmentation ratio threshold" +#~ msgstr "prahová hodnota poměru fragmentace databáze" + +#~ msgid "" +#~ "fragmentation ratio above which to ask or carry out automatically " +#~ "database maintenance" +#~ msgstr "" +#~ "míra fragmentace, nad kterou je třeba požádat nebo provést automatickou " +#~ "údržbu databáze" + +#~ msgid "xmp" +#~ msgstr "xmp" + +#~ msgid "lift luminance" +#~ msgstr "zvedat jas" + +#~ msgid "lift chroma" +#~ msgstr "zvedat chroma" + +#~ msgid "power luminance" +#~ msgstr "výkon jasu" + +#~ msgid "power chroma" +#~ msgstr "výkon barevnosti" + +#~ msgid "power hue" +#~ msgstr "výkon odstínu" + +#~ msgid "gain luminance" +#~ msgstr "zesílení jasu" + +#~ msgid "gain chroma" +#~ msgstr "zesílení sytosti" + +#~ msgid "gain hue" +#~ msgstr "zesílení odstínu" + +#~ msgid "offset luminance" +#~ msgstr "posun jasu" + +#~ msgid "offset chroma" +#~ msgstr "posun chroma" + +#~ msgid "offset hue" +#~ msgstr "posun odstínu" + +#~ msgid "chroma shadows" +#~ msgstr "chroma stínů" + +#~ msgid "chroma highlights" +#~ msgstr "chroma světel" + +#~ msgid "chroma mid-tones" +#~ msgstr "chroma střední tóny" + +#~ msgid "saturation global" +#~ msgstr "globální sytost" + +#~ msgid "saturation highlights" +#~ msgstr "sytost světel" + +#~ msgid "saturation mid-tones" +#~ msgstr "saturace středních tónů" + +#~ msgid "saturation shadows" +#~ msgstr "saturace stínů" + +#~ msgid "brilliance global" +#~ msgstr "globální lesk" + +#~ msgid "brilliance highlights" +#~ msgstr "lesk světel" + +#~ msgid "brilliance mid-tones" +#~ msgstr "lesk střední tóny" + +#~ msgid "brilliance shadows" +#~ msgstr "lesklé stíny" + +#, c-format +#~ msgid "error: can't open xmp file %s" +#~ msgstr "chyba: nelze otevřít xmp soubor %s" + +#, c-format +#~ msgid "%d image of %d (#%d) in current collection is selected" +#~ msgstr "Je vybrán obrázek %d z %d (#%d) v aktuální kolekci" + +#, c-format +#~ msgid "%d image of %d in current collection is selected" +#~ msgid_plural "%d images of %d in current collection are selected" +#~ msgstr[0] "Je vybrán obrázek %d z %d v aktuální kolekci" +#~ msgstr[1] "Jsou vybrány %d obrázky z %d v aktuální kolekci" +#~ msgstr[2] "Je vybráno %d obrázků z %d v aktuální kolekci" + +#~ msgid "click later to be asked on next startup" +#~ msgstr "" +#~ "klikněte na později a budete znovu dotázán při příštím spuštění darktable" + +#~ msgid "click later to be asked when closing darktable" +#~ msgstr "klikněte na později a budete znovu dotázán při zavírání darktable" + +#~ msgid "click later to be asked next time when closing darktable" +#~ msgstr "" +#~ "klikněte na později a budete znovu dotázán během příštího zavírání " +#~ "darktable" + +#, c-format +#~ msgid "" +#~ "the database could use some maintenance\n" +#~ "\n" +#~ "there's <span style='italic'>%s</span> to be freed\n" +#~ "\n" +#~ "do you want to proceed now?\n" +#~ "\n" +#~ "%s\n" +#~ "you can always change maintenance preferences in core options" +#~ msgstr "" +#~ "databáze vyžaduje údržbu\n" +#~ "\n" +#~ "zbývá uvolnit <span style='italic'>%s</span>\n" +#~ "\n" +#~ "chcete nyní pokračovat?\n" +#~ "\n" +#~ "%s\n" +#~ "vždy můžete změnit předvolby údržby v základních možnostech" + +#~ msgid "darktable - schema maintenance" +#~ msgstr "darktable - údržba schématu" + +#~ msgid "later" +#~ msgstr "později" + +#~ msgid "[BRUSH creation] change size" +#~ msgstr "[tvorba ŠTĚTCE] změna velikosti" + +#~ msgid "[BRUSH creation] change hardness" +#~ msgstr "[tvorba ŠTĚTCE] změna tvrdosti" + +#~ msgid "no image selected !" +#~ msgstr "není vybrán obrázek!" + +#~ msgid "" +#~ "restore default shortcuts\n" +#~ " or as at startup\n" +#~ " or when the configuration dialog was opened\n" +#~ msgstr "" +#~ "obnovit výchozí zkratky\n" +#~ " nebo jako při startu\n" +#~ " nebo když byl otevřen konfigurační dialog \n" + +#~ msgid "AVIF (8/10/12-bit)" +#~ msgstr "AVIF (8/10/12-bitů)" + +#~ msgid "OpenEXR (16/32-bit float)" +#~ msgstr "OpenEXR (16/32 bit float)" + +#~ msgid "32 bit" +#~ msgstr "32 bit" + +#~ msgid "J2K" +#~ msgstr "J2K" + +#~ msgid "PFM (float)" +#~ msgstr "PFM (float)" + +#~ msgid "PNG (8/16-bit)" +#~ msgstr "PNG (8/16-bitů)" + +#~ msgid "TIFF (8/16/32-bit)" +#~ msgstr "TIFF (8/16/32-bitů)" + +#~ msgid "WebP (8-bit)" +#~ msgstr "WebP (8-bitů)" + +#~ msgid "xcf" +#~ msgstr "xcf" + +#, no-c-format +#~ msgid "preview is only possible for zoom lower than 200%%" +#~ msgstr "náhled je možný pouze pro zoom menší než 200 %%" + +#~ msgid "v3.0" +#~ msgstr "v3.0" + +#~ msgid "ldr" +#~ msgstr "ldr" + +#~ msgid "hdr" +#~ msgstr "hdr" + +#~ msgid "" +#~ "the following modules are deprecated because they have internal design " +#~ "mistakes which can't be solved and alternative modules which solve them.\n" +#~ " they will be removed for new edits in the next release." +#~ msgstr "" +#~ "následující moduly jsou zastaralé, protože mají chyby interního designu, " +#~ "které nelze vyřešit, a alternativní moduly, které je řeší.\n" +#~ " budou odstraněny pro nové úpravy v příštím vydání." + +#, c-format +#~ msgid "double click to reset to `%f'" +#~ msgstr "dvojitým kliknutím resetujete na ,%f'" + +#~ msgid "allow to pan & zoom while editing masks" +#~ msgstr "umožní posun a přiblížení při úpravách masek" + +#~ msgctxt "preferences" +#~ msgid "at most RCD (reasonable)" +#~ msgstr "maximálně RCD (doporučeno)" + +#~ msgid "white balance slider colors" +#~ msgstr "barvy posuvníku vyvážení bílé" + +#~ msgid "" +#~ "visual indication of temperature adjustments.\n" +#~ "in 'illuminant color' mode slider colors represent the color of the light " +#~ "source,\n" +#~ "in 'effect emulation' slider colors represent the effect the adjustment " +#~ "would have on the scene" +#~ msgstr "" +#~ "vizuální indikace nastavení teploty.\n" +#~ "v režimu „barva světla“ představují barvy posuvníku barvu světelného " +#~ "zdroje,\n" +#~ "v „emulaci efektu“ barvy jezdce představují účinek, který by úprava měla " +#~ "na scénu" + +#~ msgid "color balance slider block layout" +#~ msgstr "rozložení bloku posuvníku vyvážení barev" + +#~ msgid "" +#~ "choose how to organise the slider blocks for lift, gamma and gain:\n" +#~ "list - all sliders are shown in one long list (with headers),\n" +#~ "tabs - use tabs to switch between the blocks of sliders,\n" +#~ "columns - the blocks of sliders are shown next to each other (in narrow " +#~ "columns)" +#~ msgstr "" +#~ "zvolte, jak uspořádat posuvné bloky pro zdvih, gamu a zisk:\n" +#~ "seznam - všechny posuvníky jsou zobrazeny v jednom dlouhém seznamu (se " +#~ "záhlavím),\n" +#~ "tabulátory - použijte tabulátory k přepínání mezi bloky posuvníků,\n" +#~ "sloupce - bloky posuvníků jsou zobrazeny vedle sebe (v úzkých sloupcích)" + +#~ msgid "auto-apply sharpen" +#~ msgstr "automaticky použít doostření" + +#~ msgid "" +#~ "this added sharpen is not recommended on cameras without a low-pass " +#~ "filter. you should disable this option if you use one of those more " +#~ "recent cameras or sharpen your images with other means." +#~ msgstr "" +#~ "toto přidané doostření se nedoporučuje u fotoaparátů bez low-pass filtru. " +#~ "Pokud používáte některý z novějších fotoaparátů nebo zostřujete snímky " +#~ "jinými prostředky, měli byste tuto možnost zakázat." + +#~ msgid "cast balance" +#~ msgstr "cast vyvážení" + +#~ msgid "applies only to lossy setting" +#~ msgstr "platí pouze pro ztrátové nastavení" + +#~ msgid "" +#~ "this quick access widget is disabled as it's hidden in the actual module " +#~ "configuration. Please use the full module to access this widget..." +#~ msgstr "" +#~ "tento widget pro rychlý přístup je zakázán, protože je skrytý ve skutečné " +#~ "konfiguraci modulu. Pro přístup k tomuto widgetu použijte prosím celý " +#~ "modul..." + +#~ msgid "lmmse refine" +#~ msgstr "lmmse upřesnit" + +#~ msgid "lut 3D" +#~ msgstr "lut 3D" + +#~ msgid "select lut file" +#~ msgstr "vyberte soubor lut" + +#~ msgid "gpx file" +#~ msgstr "gpx soubor" + +#~ msgctxt "preferences" +#~ msgid "gray scale" +#~ msgstr "odstíny šedé" + +#~ msgid "guided laplacians (AI)" +#~ msgstr "vodící čáry (UI)" + +#~ msgid "linear rec709 RGB" +#~ msgstr "lineární rec709 RGB" + +#~ msgid "linear rec2020 RGB" +#~ msgstr "lineární rec2020 RGB" + +#~ msgid "last export time" +#~ msgstr "čas posledního exportu" + +#~ msgid "date taken" +#~ msgstr "datum vyfocení" + +#~ msgid "date-time taken" +#~ msgstr "datum čas vyfocení" + +#~ msgid "" +#~ "simple click to select date\n" +#~ "double click to use the date directly." +#~ msgstr "" +#~ "klikni pro výběr data\n" +#~ "dvojklik pro přímé použití data." + +#~ msgid "diffusion properties" +#~ msgstr "vlastnosti rozptýlení" + +#~ msgid "diffusion speed" +#~ msgstr "rychlost rozptýlení" + +#~ msgid "" +#~ "smoothing or sharpening of smooth details (gradients).\n" +#~ "positive values diffuse and blur.\n" +#~ "negative values sharpen.\n" +#~ "zero does nothing." +#~ msgstr "" +#~ "vyhlazení nebo doostření hladkých detailů (přechodů).\n" +#~ "kladné hodnoty se rozptýlí a rozostřují.\n" +#~ "záporné hodnoty se zostřují.\n" +#~ "nula nic nedělá." + +#~ msgid "" +#~ "smoothing or sharpening of sharp details.\n" +#~ "positive values diffuse and blur.\n" +#~ "negative values sharpen.\n" +#~ "zero does nothing." +#~ msgstr "" +#~ "vyhlazení nebo doostření ostrých detailů.\n" +#~ "kladné hodnoty se rozptýlí a rozostřují.\n" +#~ "záporné hodnoty se zostřují.\n" +#~ "nula nic nedělá." + +#~ msgid "" +#~ "smoothing or sharpening of sharp details (gradients).\n" +#~ "positive values diffuse and blur.\n" +#~ "negative values sharpen.\n" +#~ "zero does nothing." +#~ msgstr "" +#~ "vyhlazení nebo doostření ostrých detailů (přechodů).\n" +#~ "kladné hodnoty se rozptýlí a rozostřují.\n" +#~ "záporné hodnoty se zostřují.\n" +#~ "nula nic nedělá." + +#~ msgid "diffusion directionality" +#~ msgstr "směrovost rozptýlení" + +#~ msgid "" +#~ "anisotropy of the diffusion.\n" +#~ "zero makes the diffusion isotrope (same in all directions)\n" +#~ "positives make the diffusion follow isophotes more closely\n" +#~ "negatives make the diffusion follow gradients more closely" +#~ msgstr "" +#~ "anizotropie difúze.\n" +#~ "nula dělá difuzní izotrop (stejný ve všech směrech)\n" +#~ "pozitiva způsobují, že difúze přesněji sleduje izofoty\n" +#~ "zápory způsobí, že difúze přesněji sleduje gradienty" + +#~ msgid "increase or decrease the sharpness of the highest frequencies" +#~ msgstr "zvýšit nebo snížit ostrost nejvyšších frekvencí" + +#, c-format +#~ msgid "" +#~ "no history compression of 1 image.\n" +#~ "see tag: darktable|problem|history-compress" +#~ msgid_plural "" +#~ "no history compression of %d images.\n" +#~ "see tag: darktable|problem|history-compress" +#~ msgstr[0] "" +#~ "žádná komprese historie 1 obrázku.\n" +#~ "viz odkaz: darktable|problém|komprimace historie" +#~ msgstr[1] "" +#~ "žádná komprese historie %d obrázků.\n" +#~ "viz odkaz: darktable|problém|komprimace historie" +#~ msgstr[2] "" +#~ "žádná komprese historie %d obrázků.\n" +#~ "viz odkaz: darktable|problém|komprimace historie" + +#~ msgid "exif data" +#~ msgstr "exif informace" + +#~ msgid "" +#~ "disable this collect rule\n" +#~ "ctrl-click to pin into the top toolbar" +#~ msgstr "" +#~ "zakázat toto pravidlo sběru\n" +#~ "ctrl-click pro připnutí na panel nástrojů" + +#~ msgid "" +#~ "if switched on, darktable tunes OpenCL for best performance, overrides " +#~ "static settings" +#~ msgstr "" +#~ "pokud je zapnuto, darktable upravuje OpenCL pro nejlepší výkon, přepíše " +#~ "statické nastavení" + +#~ msgid "switch dual threshold" +#~ msgstr "přepnout duální práh" + +#, c-format +#~ msgctxt "accel" +#~ msgid "styles/apply %s" +#~ msgstr "styly/použít %s" + +#, c-format +#~ msgctxt "accel" +#~ msgid "apply %s" +#~ msgstr "použít %s" + +#~ msgctxt "accel" +#~ msgid "rating" +#~ msgstr "hodnocení" + +#~ msgctxt "accel" +#~ msgid "discard history" +#~ msgstr "zahodit historii" + +#~ msgctxt "accel" +#~ msgid "color label" +#~ msgstr "barevný štítek" + +#~ msgctxt "accel" +#~ msgid "select all" +#~ msgstr "vybrat vše" + +#~ msgctxt "accel" +#~ msgid "select none" +#~ msgstr "zrušit výběr" + +#~ msgctxt "accel" +#~ msgid "invert selection" +#~ msgstr "invertovat výběr" + +#~ msgctxt "accel" +#~ msgid "select film roll" +#~ msgstr "vybrat filmový pás" + +#~ msgctxt "accel" +#~ msgid "select untouched" +#~ msgstr "vybrat nedotčené" + +#~ msgctxt "accel" +#~ msgid "switch views/tethering" +#~ msgstr "přepnout zobrazení/tethering" + +#~ msgctxt "accel" +#~ msgid "switch views/lighttable" +#~ msgstr "přepnout pohled/katalog" + +#~ msgctxt "accel" +#~ msgid "switch views/darkroom" +#~ msgstr "přepnout pohled/editor" + +#~ msgctxt "accel" +#~ msgid "switch views/slideshow" +#~ msgstr "přepnout pohled/slideshow" + +#~ msgctxt "accel" +#~ msgid "switch views/print" +#~ msgstr "přepnout pohled/tisk" + +#~ msgctxt "accel" +#~ msgid "panels/all" +#~ msgstr "panely/vše" + +#~ msgctxt "accel" +#~ msgid "panels/left" +#~ msgstr "panely/levý" + +#~ msgctxt "accel" +#~ msgid "panels/right" +#~ msgstr "panely/pravý" + +#~ msgctxt "accel" +#~ msgid "panels/top" +#~ msgstr "panely/horní" + +#~ msgctxt "accel" +#~ msgid "panels/bottom" +#~ msgstr "panely/spodní" + +#~ msgctxt "accel" +#~ msgid "panels/header" +#~ msgstr "panely/záhlaví" + +#~ msgctxt "accel" +#~ msgid "panels/all bottom" +#~ msgstr "panely/vše dole" + +#~ msgctxt "accel" +#~ msgid "show accels window" +#~ msgstr "zobrazit okno akcelerátory" + +#~ msgid "display blending mask" +#~ msgstr "zobrazit masku prolínání" + +#~ msgid "grey" +#~ msgstr "šedá" + +#~ msgctxt "accel" +#~ msgid "capture image(s)" +#~ msgstr "získat obrázek(zky)" + +#~ msgid "imported: today" +#~ msgstr "importováno: dnes" + +#~ msgid "taken: today" +#~ msgstr "získáno: dnes" + +#~ msgctxt "accel" +#~ msgid "copy" +#~ msgstr "kopírovat" + +#~ msgctxt "accel" +#~ msgid "copy parts" +#~ msgstr "kopírovat části" + +#~ msgctxt "accel" +#~ msgid "compress" +#~ msgstr "komprimovat" + +#~ msgctxt "accel" +#~ msgid "discard" +#~ msgstr "zahodit" + +#~ msgctxt "accel" +#~ msgid "paste" +#~ msgstr "vložit" + +#~ msgctxt "accel" +#~ msgid "paste parts" +#~ msgstr "vložit části" + +#~ msgctxt "accel" +#~ msgid "load sidecar files" +#~ msgstr "načíst pomocné soubory" + +#~ msgctxt "accel" +#~ msgid "write sidecar files" +#~ msgstr "zapsat pomocné soubory" + +#~ msgctxt "accel" +#~ msgid "export" +#~ msgstr "export" + +#~ msgctxt "accel" +#~ msgid "histogram/hide histogram" +#~ msgstr "histogram/skrýt histogram" + +#~ msgctxt "accel" +#~ msgid "histogram/cycle histogram modes" +#~ msgstr "histogram/přepínat režimy histogramu" + +#~ msgctxt "accel" +#~ msgid "histogram/switch histogram mode" +#~ msgstr "histogram/přepnout režim histogramu" + +#~ msgctxt "accel" +#~ msgid "histogram/switch histogram type" +#~ msgstr "histogram/přepnout typ histogramu" + +#~ msgctxt "accel" +#~ msgid "compress history stack" +#~ msgstr "komprimovat historii" + +#~ msgctxt "accel" +#~ msgid "remove from darktable" +#~ msgstr "odstranit z darktable" + +#~ msgctxt "accel" +#~ msgid "delete from disk using trash if possible" +#~ msgstr "vymazat z disku s použitím koše pokud to jde" + +#~ msgctxt "accel" +#~ msgid "move to other folder" +#~ msgstr "přesunout do jiné složky" + +#~ msgctxt "accel" +#~ msgid "copy to other folder" +#~ msgstr "kopírovat do jiné složky" + +#~ msgctxt "accel" +#~ msgid "rotate selected images 90 degrees CW" +#~ msgstr "otočit vybrané snímky o 90 stupňů po směru hodinových ručiček" + +#~ msgctxt "accel" +#~ msgid "rotate selected images 90 degrees CCW" +#~ msgstr "otočit vybrané snímky o 90 stupňů proti směru hodinových ručiček" + +#~ msgctxt "accel" +#~ msgid "create HDR" +#~ msgstr "vytvořit HDR" + +#~ msgctxt "accel" +#~ msgid "duplicate" +#~ msgstr "duplikovat" + +#~ msgctxt "accel" +#~ msgid "reset rotation" +#~ msgstr "reset rotace" + +#~ msgctxt "accel" +#~ msgid "copy the image locally" +#~ msgstr "kopírovat obrázek lokálně" + +#~ msgctxt "accel" +#~ msgid "resync the local copy" +#~ msgstr "znovu synchronizovat lokální kopii" + +#~ msgctxt "accel" +#~ msgid "refresh exif" +#~ msgstr "obnovit exif" + +#~ msgctxt "accel" +#~ msgid "set monochrome image" +#~ msgstr "nastavit černobílý obrázek" + +#~ msgctxt "accel" +#~ msgid "set color image" +#~ msgstr "nastavit barevný obrázek" + +#~ msgctxt "accel" +#~ msgid "copy metadata" +#~ msgstr "kopírovat metadata" + +#~ msgctxt "accel" +#~ msgid "clear metadata" +#~ msgstr "vymazat metadata" + +#~ msgctxt "accel" +#~ msgid "group" +#~ msgstr "seskupit" + +#~ msgctxt "accel" +#~ msgid "ungroup" +#~ msgstr "zrušit seskupení" + +#~ msgctxt "accel" +#~ msgid "copy & import from camera" +#~ msgstr "kopírovat a import z fotoaparátu" + +#~ msgctxt "accel" +#~ msgid "tethered shoot" +#~ msgstr "tethered snímek" + +#~ msgctxt "accel" +#~ msgid "add to library" +#~ msgstr "přidat do knihovny" + +#~ msgctxt "accel" +#~ msgid "copy & import" +#~ msgstr "kopírování a import" + +#~ msgctxt "accel" +#~ msgid "mount camera" +#~ msgstr "připojit fotoaparát" + +#~ msgctxt "accel" +#~ msgid "unmount camera" +#~ msgstr "odpojit fotoaparát" + +#~ msgctxt "accel" +#~ msgid "toggle live view" +#~ msgstr "přepnout živý náhled" + +#~ msgctxt "accel" +#~ msgid "zoom live view" +#~ msgstr "zvětšit živý náhled" + +#~ msgctxt "accel" +#~ msgid "rotate 90 degrees CCW" +#~ msgstr "otočit o 90 stupňů proti směru hodinových ručiček" + +#~ msgctxt "accel" +#~ msgid "rotate 90 degrees CW" +#~ msgstr "otočit o 90 stupňů po směru hodinových ručiček" + +#~ msgctxt "accel" +#~ msgid "flip horizontally" +#~ msgstr "překlopit vodorovně" + +#~ msgctxt "accel" +#~ msgid "move focus point in (big steps)" +#~ msgstr "ostření - přiblížit (velké kroky)" + +#~ msgctxt "accel" +#~ msgid "move focus point in (small steps)" +#~ msgstr "ostření - přiblížit (malé kroky)" + +#~ msgctxt "accel" +#~ msgid "move focus point out (small steps)" +#~ msgstr "ostření - oddálit (malé kroky)" + +#~ msgctxt "accel" +#~ msgid "move focus point out (big steps)" +#~ msgstr "ostření - oddálit (velké kroky)" + +#~ msgctxt "accel" +#~ msgid "filtered images" +#~ msgstr "filtrované obrázky" + +#~ msgctxt "accel" +#~ msgid "thumbnail display" +#~ msgstr "zobrazení náhledu" + +#~ msgctxt "accel" +#~ msgid "print" +#~ msgstr "tisk" + +#~ msgctxt "accel" +#~ msgid "take snapshot" +#~ msgstr "vytvoř variantu" + +#~ msgctxt "accel" +#~ msgid "create" +#~ msgstr "vytvořit" + +#~ msgctxt "accel" +#~ msgid "remove" +#~ msgstr "odstranit" + +#~ msgctxt "accel" +#~ msgid "import" +#~ msgstr "import" + +#~ msgctxt "accel" +#~ msgid "edit" +#~ msgstr "upravit" + +#~ msgctxt "verb" +#~ msgid "import..." +#~ msgstr "import..." + +#~ msgctxt "accel" +#~ msgid "attach" +#~ msgstr "připnout" + +#~ msgctxt "accel" +#~ msgid "detach" +#~ msgstr "odepnout" + +#~ msgctxt "accel" +#~ msgid "new" +#~ msgstr "nový" + +#~ msgctxt "accel" +#~ msgid "import..." +#~ msgstr "import..." + +#~ msgctxt "accel" +#~ msgid "export..." +#~ msgstr "export..." + +#~ msgctxt "accel" +#~ msgid "clear entry" +#~ msgstr "smazat záznam" + +#~ msgctxt "accel" +#~ msgid "toggle tree" +#~ msgstr "přepnout strom" + +#~ msgctxt "accel" +#~ msgid "toggle hide" +#~ msgstr "přepnout skrytí" + +#~ msgctxt "accel" +#~ msgid "toggle dttags" +#~ msgstr "přepnout dč štítky" + +#~ msgctxt "accel" +#~ msgid "tag" +#~ msgstr "značka" + +#~ msgctxt "verb" +#~ msgid "export..." +#~ msgstr "export..." + +#~ msgid "overlays block on mouse hover during (s)" +#~ msgstr "překryvný blok při najetí myší během (s)" + +#~ msgctxt "accel" +#~ msgid "grouping" +#~ msgstr "seskupování" + +#~ msgctxt "accel" +#~ msgid "preferences" +#~ msgstr "nastavení" + +#~ msgctxt "accel" +#~ msgid "shortcuts" +#~ msgstr "zkratky" + +#~ msgctxt "accel" +#~ msgid "thumbnail overlays/no overlays" +#~ msgstr "překryvné miniatury/žádné překryvy" + +#~ msgctxt "accel" +#~ msgid "thumbnail overlays/overlays on mouse hover" +#~ msgstr "překryvné náhledy/překryvy při najetí myší" + +#~ msgctxt "accel" +#~ msgid "thumbnail overlays/extended overlays on mouse hover" +#~ msgstr "překryvné náhledy/rozšířené překryvy při najetí myší" + +#~ msgctxt "accel" +#~ msgid "thumbnail overlays/permanent overlays" +#~ msgstr "překrytí miniatur/trvalá překrytí" + +#~ msgctxt "accel" +#~ msgid "thumbnail overlays/permanent extended overlays" +#~ msgstr "překrytí miniatur/trvalá rozšířená překrytí" + +#~ msgctxt "accel" +#~ msgid "thumbnail overlays/permanent overlays extended on mouse hover" +#~ msgstr "překryvné náhledy/trvalé překryvy rozšířené při najetí myší" + +#~ msgctxt "accel" +#~ msgid "thumbnail overlays/overlays block on mouse hover" +#~ msgstr "překryvné náhledy/blok překrytí při najetí myší" + +#~ msgctxt "accel" +#~ msgid "reset lib parameters" +#~ msgstr "reset parametrů knihovny" + +#~ msgctxt "accel" +#~ msgid "raw overexposed/toggle" +#~ msgstr "raw přeexponované/přepnout" + +#~ msgctxt "accel" +#~ msgid "overexposed/toggle" +#~ msgstr "přeexponovaný/přepnout" + +#~ msgctxt "accel" +#~ msgid "gamut check" +#~ msgstr "kontrola rozsahu" + +#~ msgctxt "accel" +#~ msgid "guide lines/toggle" +#~ msgstr "vodicí čáry/přepínání" + +#~ msgctxt "accel" +#~ msgid "preview" +#~ msgstr "náhled" + +#~ msgctxt "preferences" +#~ msgid "mini (debug)" +#~ msgstr "mini (debug)" + +#~ msgctxt "preferences" +#~ msgid "reference (debug)" +#~ msgstr "reference (ladění)" + +#~ msgid "disable the entry completion" +#~ msgstr "zakázat dokončování zadání" + +#~ msgid "" +#~ "the entry completion is useful for those who enter tags from keyboard " +#~ "only. for others the entry completion can be embarrassing. need to " +#~ "restart darktable." +#~ msgstr "" +#~ "dokončení zadávání je užitečné pro ty, kteří zadávají značky pouze z " +#~ "klávesnice. pro ostatní může být dokončení záznamu trapné. je vyžadován " +#~ "restart darktable." + +#~ msgid "darktable - run performance configuration?" +#~ msgstr "darktable - spustit konfiguraci výkonu?" + +#~ msgid "" +#~ "we have an updated performance configuration logic - executing that might " +#~ "improve the performance of darktable.\n" +#~ "this will potentially overwrite some of your existing settings - " +#~ "especially in case you have manually modified them to custom values.\n" +#~ "would you like to execute this update of the performance configuration?\n" +#~ msgstr "" +#~ "máme aktualizovanou logiku konfigurace výkonu – spouštění, které by mohlo " +#~ "zlepšit výkon darktable.\n" +#~ "to potenciálně přepíše některá vaše stávající nastavení – zvláště v " +#~ "případě, že jste je ručně upravili na vlastní hodnoty.\n" +#~ "chcete provést tuto aktualizaci konfigurace výkonu?\n" + +#~ msgid "crop settings" +#~ msgstr "nastavení oříznutí" + +#~ msgid "" +#~ "percentage of bright values clipped out, toggle color picker to activate" +#~ msgstr "procento hodnot jasu oříznuto, aktivujte přepnutím výběru barvy" + +#, c-format +#~ msgid "%.0f ISO" +#~ msgstr "%.0f ISO" + +#, c-format +#~ msgid "%.0f mired" +#~ msgstr "%.0f mired" + +#~ msgid "metadata list" +#~ msgstr "seznam metadat" + +#~ msgid "memory in MB to use for thumbnail cache" +#~ msgstr "paměť v MB pro použití pro mezipaměť náhledů" + +#~ msgid "" +#~ "this controls how much memory is going to be used for thumbnails and " +#~ "other buffers (needs a restart)." +#~ msgstr "" +#~ "tím se řídí, kolik paměti bude použito pro náhledy a další vyrovnávací " +#~ "paměti (vyžaduje restart)." + +#~ msgid "host memory limit (in MB) for tiling" +#~ msgstr "limit paměti hostitele (v MB) pro dlaždice" + +#~ msgid "" +#~ "this variable controls the maximum amount of memory (in MB) a module may " +#~ "use during image processing. lower values will force memory hungry " +#~ "modules to process image with increasing number of tiles. setting this to " +#~ "0 will omit any limit. values below 500 will be treated as 500." +#~ msgstr "" +#~ "tato proměnná určuje maximální množství paměti (v MB), kterou může modul " +#~ "použít během zpracování obrázku. nižší hodnoty donutí moduly vyžadující " +#~ "velké množství paměti k rozložení obrázků na více dlaždic. nastavení na 0 " +#~ "vynechá jakýkoli limit. hodnoty pod 500 budou považovány za 500." + +#~ msgid "minimum amount of memory (in MB) for a single buffer in tiling" +#~ msgstr "" +#~ "minimální množství paměti (v MB) pro jednu vyrovnávací paměť v " +#~ "dlaždicovém uspořádání" + +#~ msgid "" +#~ "minimum amount of memory (in MB) that tiling should take for a single " +#~ "image buffer." +#~ msgstr "" +#~ "minimální paměť (v MB), kterou by dlaždicování mělo mít pro jednu " +#~ "vyrovnávací paměť obrázku." + +#~ msgid "list of available tags" +#~ msgstr "seznam dostupných značek" + +#~ msgid "which images should be shown" +#~ msgstr "jaké obrázky by se měly zobrazovat" + +#~ msgid "view" +#~ msgstr "pohled" + +#~ msgctxt "accel" +#~ msgid "double" +#~ msgstr "dvojnásobek" + +#~ msgctxt "accel" +#~ msgid "triple" +#~ msgstr "trojnásobek" + +#~ msgid "compression mode" +#~ msgstr "režim komprese" + +#~ msgid "PIZ (default)" +#~ msgstr "PIZ (výchozí)" + +#~ msgid "PXR24 (lossy)" +#~ msgstr "PXR24 (ztrátový)" + +#~ msgid "B44 (lossy)" +#~ msgstr "B44 (ztrátový)" + +#~ msgid "B44A (lossy)" +#~ msgstr "B44A (ztrátový)" + +#~ msgid "perspective helpers" +#~ msgstr "pomocníci s perspektivou" + +#~ msgid "enter tag name" +#~ msgstr "zadejte název štítku" + +#~ msgid "" +#~ "tag dictionary,\n" +#~ "double-click to attach,\n" +#~ "right-click for other actions on selected tag,\n" +#~ "ctrl-wheel scroll to resize the window" +#~ msgstr "" +#~ "slovník štítků,\n" +#~ "dvojitým kliknutím připojíte,\n" +#~ "klikněte pravým tlačítkem pro další akce na vybraném štítku,\n" +#~ "Ctrl-kolečko rolováním změňte velikost okna" diff -Nru darktable-4.4.2/po/darktable.pot darktable-4.6.1/po/darktable.pot --- darktable-4.4.2/po/darktable.pot 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/po/darktable.pot 2024-02-16 17:31:09.000000000 +0000 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-31 13:24+0200\n" +"POT-Creation-Date: 2023-11-30 19:32+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -18,285 +18,250 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: ../build/bin/conf_gen.h:172 ../build/bin/preferences_gen.h:7632 +#: ../build/bin/conf_gen.h:174 msgctxt "preferences" msgid "first instance" msgstr "" -#: ../build/bin/conf_gen.h:173 ../build/bin/preferences_gen.h:7637 -#: ../build/bin/preferences_gen.h:7656 +#: ../build/bin/conf_gen.h:175 ../build/bin/preferences_gen.h:7922 msgctxt "preferences" msgid "last instance" msgstr "" -#: ../build/bin/conf_gen.h:240 ../build/bin/conf_gen.h:346 -#: ../build/bin/conf_gen.h:356 ../build/bin/conf_gen.h:1186 -#: ../build/bin/conf_gen.h:1202 ../build/bin/preferences_gen.h:4137 -#: ../build/bin/preferences_gen.h:4156 ../build/bin/preferences_gen.h:4232 -#: ../build/bin/preferences_gen.h:6706 ../build/bin/preferences_gen.h:6834 -#: ../build/bin/preferences_gen.h:6899 +#: ../build/bin/conf_gen.h:252 ../build/bin/conf_gen.h:352 +#: ../build/bin/conf_gen.h:362 ../build/bin/conf_gen.h:1239 +#: ../build/bin/conf_gen.h:1255 ../build/bin/conf_gen.h:1275 +#: ../build/bin/preferences_gen.h:4747 ../build/bin/preferences_gen.h:4885 msgctxt "preferences" msgid "never" msgstr "" -#: ../build/bin/conf_gen.h:241 ../build/bin/preferences_gen.h:6711 +#: ../build/bin/conf_gen.h:253 msgctxt "preferences" msgid "once a month" msgstr "" -#: ../build/bin/conf_gen.h:242 ../build/bin/preferences_gen.h:6716 -#: ../build/bin/preferences_gen.h:6745 +#: ../build/bin/conf_gen.h:254 ../build/bin/preferences_gen.h:7138 msgctxt "preferences" msgid "once a week" msgstr "" -#: ../build/bin/conf_gen.h:243 ../build/bin/preferences_gen.h:6721 +#: ../build/bin/conf_gen.h:255 msgctxt "preferences" msgid "once a day" msgstr "" -#: ../build/bin/conf_gen.h:244 ../build/bin/preferences_gen.h:6726 +#: ../build/bin/conf_gen.h:256 msgctxt "preferences" msgid "on close" msgstr "" -#: ../build/bin/conf_gen.h:280 ../build/bin/conf_gen.h:1179 -#: ../build/bin/conf_gen.h:1195 ../build/bin/preferences_gen.h:4102 -#: ../build/bin/preferences_gen.h:4197 ../build/bin/preferences_gen.h:5748 +#: ../build/bin/conf_gen.h:292 ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1248 ../build/bin/conf_gen.h:1276 msgctxt "preferences" msgid "small" msgstr "" -#: ../build/bin/conf_gen.h:281 ../build/bin/conf_gen.h:393 -#: ../build/bin/preferences_gen.h:5753 ../build/bin/preferences_gen.h:5782 -#: ../build/bin/preferences_gen.h:5969 ../build/bin/preferences_gen.h:5998 +#: ../build/bin/conf_gen.h:293 ../build/bin/conf_gen.h:405 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6223 msgctxt "preferences" msgid "default" msgstr "" -#: ../build/bin/conf_gen.h:282 ../build/bin/conf_gen.h:2814 -#: ../build/bin/preferences_gen.h:5758 +#: ../build/bin/conf_gen.h:294 ../build/bin/conf_gen.h:2904 msgctxt "preferences" msgid "large" msgstr "" -#: ../build/bin/conf_gen.h:283 ../build/bin/preferences_gen.h:5763 +#: ../build/bin/conf_gen.h:295 msgctxt "preferences" msgid "unrestricted" msgstr "" -#: ../build/bin/conf_gen.h:347 ../build/bin/preferences_gen.h:6839 +#: ../build/bin/conf_gen.h:353 msgctxt "preferences" msgid "after edit" msgstr "" -#: ../build/bin/conf_gen.h:348 ../build/bin/preferences_gen.h:6844 -#: ../build/bin/preferences_gen.h:6863 +#: ../build/bin/conf_gen.h:354 ../build/bin/preferences_gen.h:7224 msgctxt "preferences" msgid "on import" msgstr "" -#: ../build/bin/conf_gen.h:357 ../build/bin/conf_gen.h:1178 -#: ../build/bin/conf_gen.h:1194 ../build/bin/conf_gen.h:3214 -#: ../build/bin/preferences_gen.h:4097 ../build/bin/preferences_gen.h:4192 -#: ../build/bin/preferences_gen.h:5112 ../build/bin/preferences_gen.h:5166 -#: ../build/bin/preferences_gen.h:6904 +#: ../build/bin/conf_gen.h:363 ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1247 ../build/bin/conf_gen.h:3300 +#: ../build/bin/preferences_gen.h:5644 msgctxt "preferences" msgid "always" msgstr "" -#: ../build/bin/conf_gen.h:358 ../build/bin/preferences_gen.h:6909 -#: ../build/bin/preferences_gen.h:6928 +#: ../build/bin/conf_gen.h:364 ../build/bin/preferences_gen.h:7259 msgctxt "preferences" msgid "only large entries" msgstr "" -#: ../build/bin/conf_gen.h:378 ../build/bin/preferences_gen.h:8069 +#: ../build/bin/conf_gen.h:390 msgctxt "preferences" msgid "sensitive" msgstr "" -#: ../build/bin/conf_gen.h:379 ../build/bin/preferences_gen.h:8074 -#: ../build/bin/preferences_gen.h:8093 +#: ../build/bin/conf_gen.h:391 ../build/bin/preferences_gen.h:8133 msgctxt "preferences" msgid "insensitive" msgstr "" -#: ../build/bin/conf_gen.h:394 ../build/bin/preferences_gen.h:5974 +#: ../build/bin/conf_gen.h:406 msgctxt "preferences" msgid "multiple GPUs" msgstr "" -#: ../build/bin/conf_gen.h:395 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/conf_gen.h:407 msgctxt "preferences" msgid "very fast GPU" msgstr "" -#: ../build/bin/conf_gen.h:403 ../build/bin/preferences_gen.h:6040 -#: ../build/bin/preferences_gen.h:6074 +#: ../build/bin/conf_gen.h:755 msgctxt "preferences" -msgid "nothing" -msgstr "" - -#: ../build/bin/conf_gen.h:404 ../build/bin/preferences_gen.h:6045 -msgctxt "preferences" -msgid "memory size" -msgstr "" - -#: ../build/bin/conf_gen.h:405 ../build/bin/preferences_gen.h:6050 -msgctxt "preferences" -msgid "memory transfer" -msgstr "" - -#: ../build/bin/conf_gen.h:406 ../build/bin/preferences_gen.h:6055 -msgctxt "preferences" -msgid "memory size and transfer" -msgstr "" - -#: ../build/bin/conf_gen.h:706 ../build/bin/preferences_gen.h:8257 -#: ../build/bin/preferences_gen.h:8281 -msgctxt "preferences" -msgid "id" +msgid "import time" msgstr "" -#: ../build/bin/conf_gen.h:707 ../build/bin/preferences_gen.h:8262 +#: ../build/bin/conf_gen.h:756 msgctxt "preferences" -msgid "folder" +msgid "folder name" msgstr "" -#: ../build/bin/conf_gen.h:721 +#: ../build/bin/conf_gen.h:770 msgctxt "preferences" msgid "RGB" msgstr "" -#: ../build/bin/conf_gen.h:722 +#: ../build/bin/conf_gen.h:771 msgctxt "preferences" msgid "Lab" msgstr "" -#: ../build/bin/conf_gen.h:723 +#: ../build/bin/conf_gen.h:772 msgctxt "preferences" msgid "LCh" msgstr "" -#: ../build/bin/conf_gen.h:724 +#: ../build/bin/conf_gen.h:773 msgctxt "preferences" msgid "HSL" msgstr "" -#: ../build/bin/conf_gen.h:725 +#: ../build/bin/conf_gen.h:774 msgctxt "preferences" msgid "Hex" msgstr "" -#: ../build/bin/conf_gen.h:726 ../build/bin/conf_gen.h:1830 -#: ../build/bin/conf_gen.h:2488 ../build/bin/conf_gen.h:2790 -#: ../build/bin/conf_gen.h:3044 ../build/bin/preferences_gen.h:5577 -#: ../build/bin/preferences_gen.h:6561 +#: ../build/bin/conf_gen.h:775 ../build/bin/conf_gen.h:1916 +#: ../build/bin/conf_gen.h:2578 ../build/bin/conf_gen.h:2880 +#: ../build/bin/conf_gen.h:3136 msgctxt "preferences" msgid "none" msgstr "" -#: ../build/bin/conf_gen.h:734 +#: ../build/bin/conf_gen.h:783 msgctxt "preferences" msgid "mean" msgstr "" -#: ../build/bin/conf_gen.h:735 +#: ../build/bin/conf_gen.h:784 msgctxt "preferences" msgid "min" msgstr "" -#: ../build/bin/conf_gen.h:736 +#: ../build/bin/conf_gen.h:785 msgctxt "preferences" msgid "max" msgstr "" -#: ../build/bin/conf_gen.h:924 +#: ../build/bin/conf_gen.h:973 msgid "select only new pictures" msgstr "" -#: ../build/bin/conf_gen.h:925 +#: ../build/bin/conf_gen.h:974 msgid "only select images that have not already been imported" msgstr "" -#: ../build/bin/conf_gen.h:930 -msgid "ignore JPEG images" +#: ../build/bin/conf_gen.h:979 +msgid "ignore non-raw images" msgstr "" -#: ../build/bin/conf_gen.h:931 +#: ../build/bin/conf_gen.h:980 msgid "" -"when having raw+JPEG images together in one directory it makes no sense to " -"import both. with this flag one can ignore all JPEGs found." +"if enabled, only raw files will be allowed to import. non-raw files will not " +"be visible in the dialog and will not be imported." msgstr "" -#: ../build/bin/conf_gen.h:936 +#: ../build/bin/conf_gen.h:985 msgid "apply metadata" msgstr "" -#: ../build/bin/conf_gen.h:937 +#: ../build/bin/conf_gen.h:986 msgid "apply some metadata to all newly imported images." msgstr "" -#: ../build/bin/conf_gen.h:942 +#: ../build/bin/conf_gen.h:991 msgid "recursive directory" msgstr "" -#: ../build/bin/conf_gen.h:943 +#: ../build/bin/conf_gen.h:992 msgid "recursive directory traversal when importing filmrolls" msgstr "" -#: ../build/bin/conf_gen.h:948 +#: ../build/bin/conf_gen.h:997 msgid "creator to be applied when importing" msgstr "" -#: ../build/bin/conf_gen.h:954 +#: ../build/bin/conf_gen.h:1003 msgid "publisher to be applied when importing" msgstr "" -#: ../build/bin/conf_gen.h:960 +#: ../build/bin/conf_gen.h:1009 msgid "rights to be applied when importing" msgstr "" -#: ../build/bin/conf_gen.h:966 +#: ../build/bin/conf_gen.h:1015 msgid "comma separated tags to be applied when importing" msgstr "" -#: ../build/bin/conf_gen.h:972 +#: ../build/bin/conf_gen.h:1021 msgid "import tags from XMP" msgstr "" -#: ../build/bin/conf_gen.h:998 +#: ../build/bin/conf_gen.h:1051 msgid "initial rating" msgstr "" -#: ../build/bin/conf_gen.h:999 +#: ../build/bin/conf_gen.h:1052 msgid "initial star rating for all images when importing a filmroll" msgstr "" -#: ../build/bin/conf_gen.h:1004 +#: ../build/bin/conf_gen.h:1057 msgid "ignore EXIF rating" msgstr "" -#: ../build/bin/conf_gen.h:1005 +#: ../build/bin/conf_gen.h:1058 msgid "" "ignore EXIF rating. if not set and EXIF rating is found, it overrides " "'initial rating'" msgstr "" -#: ../build/bin/conf_gen.h:1010 +#: ../build/bin/conf_gen.h:1063 msgid "import job" msgstr "" -#: ../build/bin/conf_gen.h:1011 +#: ../build/bin/conf_gen.h:1064 msgid "name of the import job" msgstr "" -#: ../build/bin/conf_gen.h:1016 +#: ../build/bin/conf_gen.h:1069 msgid "override today's date" msgstr "" -#: ../build/bin/conf_gen.h:1017 +#: ../build/bin/conf_gen.h:1070 msgid "" "type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override " "the current date/time used when expanding variables:\n" @@ -304,745 +269,793 @@ "let the field empty otherwise" msgstr "" -#: ../build/bin/conf_gen.h:1022 +#: ../build/bin/conf_gen.h:1075 msgid "keep this window open" msgstr "" -#: ../build/bin/conf_gen.h:1023 +#: ../build/bin/conf_gen.h:1076 msgid "keep this window open to run several imports" msgstr "" -#: ../build/bin/conf_gen.h:1180 ../build/bin/conf_gen.h:1196 -#: ../build/bin/preferences_gen.h:4107 ../build/bin/preferences_gen.h:4202 +#: ../build/bin/conf_gen.h:1233 ../build/bin/conf_gen.h:1249 +#: ../build/bin/conf_gen.h:1277 msgctxt "preferences" msgid "VGA" msgstr "" -#: ../build/bin/conf_gen.h:1181 ../build/bin/conf_gen.h:1197 -#: ../build/bin/preferences_gen.h:4112 ../build/bin/preferences_gen.h:4207 -#: ../build/bin/preferences_gen.h:4251 +#: ../build/bin/conf_gen.h:1234 ../build/bin/conf_gen.h:1250 +#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4782 msgctxt "preferences" msgid "720p" msgstr "" -#: ../build/bin/conf_gen.h:1182 ../build/bin/conf_gen.h:1198 -#: ../build/bin/preferences_gen.h:4117 ../build/bin/preferences_gen.h:4212 +#: ../build/bin/conf_gen.h:1235 ../build/bin/conf_gen.h:1251 +#: ../build/bin/conf_gen.h:1279 msgctxt "preferences" msgid "1080p" msgstr "" -#: ../build/bin/conf_gen.h:1183 ../build/bin/conf_gen.h:1199 -#: ../build/bin/preferences_gen.h:4122 ../build/bin/preferences_gen.h:4217 +#: ../build/bin/conf_gen.h:1236 ../build/bin/conf_gen.h:1252 +#: ../build/bin/conf_gen.h:1280 msgctxt "preferences" msgid "WQXGA" msgstr "" -#: ../build/bin/conf_gen.h:1184 ../build/bin/conf_gen.h:1200 -#: ../build/bin/preferences_gen.h:4127 ../build/bin/preferences_gen.h:4222 +#: ../build/bin/conf_gen.h:1237 ../build/bin/conf_gen.h:1253 +#: ../build/bin/conf_gen.h:1281 msgctxt "preferences" msgid "4K" msgstr "" -#: ../build/bin/conf_gen.h:1185 ../build/bin/conf_gen.h:1201 -#: ../build/bin/preferences_gen.h:4132 ../build/bin/preferences_gen.h:4227 +#: ../build/bin/conf_gen.h:1238 ../build/bin/conf_gen.h:1254 +#: ../build/bin/conf_gen.h:1282 msgctxt "preferences" msgid "5K" msgstr "" -#: ../build/bin/conf_gen.h:1228 +#: ../build/bin/conf_gen.h:1314 msgctxt "preferences" msgid "off" msgstr "" -#: ../build/bin/conf_gen.h:1229 +#: ../build/bin/conf_gen.h:1315 msgctxt "preferences" msgid "hardness (relative)" msgstr "" -#: ../build/bin/conf_gen.h:1230 +#: ../build/bin/conf_gen.h:1316 msgctxt "preferences" msgid "hardness (absolute)" msgstr "" -#: ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1317 msgctxt "preferences" msgid "opacity (relative)" msgstr "" -#: ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1318 msgctxt "preferences" msgid "opacity (absolute)" msgstr "" -#: ../build/bin/conf_gen.h:1233 +#: ../build/bin/conf_gen.h:1319 msgctxt "preferences" msgid "brush size (relative)" msgstr "" -#: ../build/bin/conf_gen.h:1241 +#: ../build/bin/conf_gen.h:1327 msgctxt "preferences" msgid "low" msgstr "" -#: ../build/bin/conf_gen.h:1242 +#: ../build/bin/conf_gen.h:1328 msgctxt "preferences" msgid "medium" msgstr "" -#: ../build/bin/conf_gen.h:1243 +#: ../build/bin/conf_gen.h:1329 msgctxt "preferences" msgid "high" msgstr "" -#: ../build/bin/conf_gen.h:1263 ../build/bin/preferences_gen.h:4836 -#: ../build/bin/preferences_gen.h:4860 +#: ../build/bin/conf_gen.h:1349 ../build/bin/preferences_gen.h:5405 msgctxt "preferences" msgid "false color" msgstr "" -#: ../build/bin/conf_gen.h:1264 ../build/bin/preferences_gen.h:4841 +#: ../build/bin/conf_gen.h:1350 msgctxt "preferences" msgid "grayscale" msgstr "" -#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4567 +#: ../build/bin/conf_gen.h:1364 msgctxt "preferences" msgid "top left" msgstr "" -#: ../build/bin/conf_gen.h:1279 ../build/bin/preferences_gen.h:4572 +#: ../build/bin/conf_gen.h:1365 msgctxt "preferences" msgid "top right" msgstr "" -#: ../build/bin/conf_gen.h:1280 ../build/bin/preferences_gen.h:4577 +#: ../build/bin/conf_gen.h:1366 msgctxt "preferences" msgid "top center" msgstr "" -#: ../build/bin/conf_gen.h:1281 ../build/bin/preferences_gen.h:4582 -#: ../build/bin/preferences_gen.h:4606 +#: ../build/bin/conf_gen.h:1367 ../build/bin/preferences_gen.h:5217 msgctxt "preferences" msgid "bottom" msgstr "" -#: ../build/bin/conf_gen.h:1282 ../build/bin/preferences_gen.h:4587 +#: ../build/bin/conf_gen.h:1368 msgctxt "preferences" msgid "hidden" msgstr "" -#: ../build/bin/conf_gen.h:1792 +#: ../build/bin/conf_gen.h:1878 msgid "show OSD" msgstr "" -#: ../build/bin/conf_gen.h:1793 +#: ../build/bin/conf_gen.h:1879 msgid "toggle the visibility of the map overlays" msgstr "" -#: ../build/bin/conf_gen.h:1798 ../src/libs/map_settings.c:146 +#: ../build/bin/conf_gen.h:1884 ../src/libs/map_settings.c:119 msgid "filtered images" msgstr "" -#: ../build/bin/conf_gen.h:1799 +#: ../build/bin/conf_gen.h:1885 msgid "when set limit the images drawn to the current filmstrip" msgstr "" -#: ../build/bin/conf_gen.h:1806 +#: ../build/bin/conf_gen.h:1892 msgid "max images" msgstr "" -#: ../build/bin/conf_gen.h:1807 +#: ../build/bin/conf_gen.h:1893 msgid "the maximum number of image thumbnails drawn on the map" msgstr "" -#: ../build/bin/conf_gen.h:1814 +#: ../build/bin/conf_gen.h:1900 msgid "group size factor" msgstr "" -#: ../build/bin/conf_gen.h:1815 +#: ../build/bin/conf_gen.h:1901 msgid "" "increase or decrease the spatial size of images groups on the map. can " "influence the calculation time" msgstr "" -#: ../build/bin/conf_gen.h:1822 +#: ../build/bin/conf_gen.h:1908 msgid "min images per group" msgstr "" -#: ../build/bin/conf_gen.h:1823 +#: ../build/bin/conf_gen.h:1909 msgid "" "the minimum number of images to set up an images group. can influence the " "calculation time." msgstr "" -#: ../build/bin/conf_gen.h:1828 +#: ../build/bin/conf_gen.h:1914 msgctxt "preferences" msgid "thumbnail" msgstr "" -#: ../build/bin/conf_gen.h:1829 +#: ../build/bin/conf_gen.h:1915 msgctxt "preferences" msgid "count" msgstr "" -#: ../build/bin/conf_gen.h:1832 ../src/libs/map_settings.c:159 +#: ../build/bin/conf_gen.h:1918 msgid "thumbnail display" msgstr "" -#: ../build/bin/conf_gen.h:1833 +#: ../build/bin/conf_gen.h:1919 msgid "" "three options are available: images thumbnails, only the count of images of " "the group or nothing" msgstr "" -#: ../build/bin/conf_gen.h:1844 +#: ../build/bin/conf_gen.h:1930 msgid "max polygon points" msgstr "" -#: ../build/bin/conf_gen.h:1845 +#: ../build/bin/conf_gen.h:1931 msgid "" "limit the number of points imported with polygon in find location module" msgstr "" -#: ../build/bin/conf_gen.h:2135 ../build/bin/preferences_gen.h:4722 -#: ../build/bin/preferences_gen.h:4756 +#: ../build/bin/conf_gen.h:2221 ../build/bin/preferences_gen.h:5329 msgctxt "preferences" msgid "original" msgstr "" -#: ../build/bin/conf_gen.h:2136 ../build/bin/preferences_gen.h:4727 +#: ../build/bin/conf_gen.h:2222 msgctxt "preferences" msgid "to 1/2" msgstr "" -#: ../build/bin/conf_gen.h:2137 ../build/bin/preferences_gen.h:4732 +#: ../build/bin/conf_gen.h:2223 msgctxt "preferences" msgid "to 1/3" msgstr "" -#: ../build/bin/conf_gen.h:2138 ../build/bin/preferences_gen.h:4737 +#: ../build/bin/conf_gen.h:2224 msgctxt "preferences" msgid "to 1/4" msgstr "" -#: ../build/bin/conf_gen.h:2152 ../build/bin/conf_gen.h:2162 -#: ../build/bin/preferences_gen.h:5384 ../build/bin/preferences_gen.h:5449 +#: ../build/bin/conf_gen.h:2244 ../build/bin/conf_gen.h:2254 msgctxt "preferences" msgid "bilinear" msgstr "" -#: ../build/bin/conf_gen.h:2153 ../build/bin/conf_gen.h:2163 -#: ../build/bin/preferences_gen.h:5389 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5454 +#: ../build/bin/conf_gen.h:2245 ../build/bin/conf_gen.h:2255 +#: ../build/bin/preferences_gen.h:5847 msgctxt "preferences" msgid "bicubic" msgstr "" -#: ../build/bin/conf_gen.h:2154 ../build/bin/conf_gen.h:2164 -#: ../build/bin/preferences_gen.h:5394 ../build/bin/preferences_gen.h:5459 +#: ../build/bin/conf_gen.h:2246 ../build/bin/conf_gen.h:2256 msgctxt "preferences" msgid "lanczos2" msgstr "" -#: ../build/bin/conf_gen.h:2165 ../build/bin/preferences_gen.h:5464 -#: ../build/bin/preferences_gen.h:5483 +#: ../build/bin/conf_gen.h:2257 ../build/bin/preferences_gen.h:5882 msgctxt "preferences" msgid "lanczos3" msgstr "" -#: ../build/bin/conf_gen.h:2487 ../build/bin/conf_gen.h:3217 -#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:6556 -#: ../build/bin/preferences_gen.h:6592 +#: ../build/bin/conf_gen.h:2577 ../build/bin/conf_gen.h:3303 +#: ../build/bin/preferences_gen.h:7032 msgctxt "preferences" msgid "auto" msgstr "" -#: ../build/bin/conf_gen.h:2489 ../build/bin/preferences_gen.h:6566 +#: ../build/bin/conf_gen.h:2579 msgctxt "preferences" msgid "libsecret" msgstr "" -#: ../build/bin/conf_gen.h:2490 ../build/bin/preferences_gen.h:6572 +#: ../build/bin/conf_gen.h:2580 msgctxt "preferences" msgid "kwallet" msgstr "" -#: ../build/bin/conf_gen.h:2700 +#: ../build/bin/conf_gen.h:2790 msgctxt "preferences" msgid "vectorscope" msgstr "" -#: ../build/bin/conf_gen.h:2701 +#: ../build/bin/conf_gen.h:2791 msgctxt "preferences" msgid "waveform" msgstr "" -#: ../build/bin/conf_gen.h:2702 +#: ../build/bin/conf_gen.h:2792 msgctxt "preferences" msgid "RGB parade" msgstr "" -#: ../build/bin/conf_gen.h:2703 +#: ../build/bin/conf_gen.h:2793 msgctxt "preferences" msgid "histogram" msgstr "" -#: ../build/bin/conf_gen.h:2711 ../build/bin/preferences_gen.h:7264 +#: ../build/bin/conf_gen.h:2801 msgctxt "preferences" msgid "left" msgstr "" -#: ../build/bin/conf_gen.h:2712 ../build/bin/preferences_gen.h:7269 -#: ../build/bin/preferences_gen.h:7288 +#: ../build/bin/conf_gen.h:2802 ../build/bin/preferences_gen.h:7619 msgctxt "preferences" msgid "right" msgstr "" -#: ../build/bin/conf_gen.h:2720 ../build/bin/conf_gen.h:2757 +#: ../build/bin/conf_gen.h:2810 ../build/bin/conf_gen.h:2847 msgctxt "preferences" msgid "logarithmic" msgstr "" -#: ../build/bin/conf_gen.h:2721 ../build/bin/conf_gen.h:2758 +#: ../build/bin/conf_gen.h:2811 ../build/bin/conf_gen.h:2848 msgctxt "preferences" msgid "linear" msgstr "" -#: ../build/bin/conf_gen.h:2729 +#: ../build/bin/conf_gen.h:2819 msgctxt "preferences" msgid "horizontal" msgstr "" -#: ../build/bin/conf_gen.h:2730 +#: ../build/bin/conf_gen.h:2820 msgctxt "preferences" msgid "vertical" msgstr "" -#: ../build/bin/conf_gen.h:2738 +#: ../build/bin/conf_gen.h:2828 msgctxt "preferences" msgid "overlaid" msgstr "" -#: ../build/bin/conf_gen.h:2739 +#: ../build/bin/conf_gen.h:2829 msgctxt "preferences" msgid "parade" msgstr "" -#: ../build/bin/conf_gen.h:2747 +#: ../build/bin/conf_gen.h:2837 msgctxt "preferences" msgid "u*v*" msgstr "" -#: ../build/bin/conf_gen.h:2748 +#: ../build/bin/conf_gen.h:2838 msgctxt "preferences" msgid "AzBz" msgstr "" -#: ../build/bin/conf_gen.h:2749 +#: ../build/bin/conf_gen.h:2839 msgctxt "preferences" msgid "RYB" msgstr "" -#: ../build/bin/conf_gen.h:2791 +#: ../build/bin/conf_gen.h:2881 msgctxt "preferences" msgid "monochromatic" msgstr "" -#: ../build/bin/conf_gen.h:2792 +#: ../build/bin/conf_gen.h:2882 msgctxt "preferences" msgid "analogous" msgstr "" -#: ../build/bin/conf_gen.h:2793 +#: ../build/bin/conf_gen.h:2883 msgctxt "preferences" msgid "analogous complementary" msgstr "" -#: ../build/bin/conf_gen.h:2794 +#: ../build/bin/conf_gen.h:2884 msgctxt "preferences" msgid "complementary" msgstr "" -#: ../build/bin/conf_gen.h:2795 +#: ../build/bin/conf_gen.h:2885 msgctxt "preferences" msgid "split complementary" msgstr "" -#: ../build/bin/conf_gen.h:2796 +#: ../build/bin/conf_gen.h:2886 msgctxt "preferences" msgid "dyad" msgstr "" -#: ../build/bin/conf_gen.h:2797 +#: ../build/bin/conf_gen.h:2887 msgctxt "preferences" msgid "triad" msgstr "" -#: ../build/bin/conf_gen.h:2798 +#: ../build/bin/conf_gen.h:2888 msgctxt "preferences" msgid "tetrad" msgstr "" -#: ../build/bin/conf_gen.h:2799 +#: ../build/bin/conf_gen.h:2889 msgctxt "preferences" msgid "square" msgstr "" -#: ../build/bin/conf_gen.h:2813 +#: ../build/bin/conf_gen.h:2903 msgctxt "preferences" msgid "normal" msgstr "" -#: ../build/bin/conf_gen.h:2815 +#: ../build/bin/conf_gen.h:2905 msgctxt "preferences" msgid "narrow" msgstr "" -#: ../build/bin/conf_gen.h:2816 +#: ../build/bin/conf_gen.h:2906 msgctxt "preferences" msgid "line" msgstr "" -#: ../build/bin/conf_gen.h:2956 +#: ../build/bin/conf_gen.h:3046 msgctxt "preferences" msgid "mm" msgstr "" -#: ../build/bin/conf_gen.h:2957 +#: ../build/bin/conf_gen.h:3047 msgctxt "preferences" msgid "cm" msgstr "" -#: ../build/bin/conf_gen.h:2958 +#: ../build/bin/conf_gen.h:3048 msgctxt "preferences" msgid "inch" msgstr "" -#: ../build/bin/conf_gen.h:3003 ../build/bin/preferences_gen.h:7324 -#: ../build/bin/preferences_gen.h:7353 +#: ../build/bin/conf_gen.h:3093 ../build/bin/preferences_gen.h:7654 msgctxt "preferences" msgid "all" msgstr "" -#: ../build/bin/conf_gen.h:3004 ../build/bin/preferences_gen.h:7329 +#: ../build/bin/conf_gen.h:3094 msgctxt "preferences" msgid "xatom" msgstr "" -#: ../build/bin/conf_gen.h:3005 ../build/bin/preferences_gen.h:7334 +#: ../build/bin/conf_gen.h:3095 msgctxt "preferences" msgid "colord" msgstr "" -#: ../build/bin/conf_gen.h:3041 ../build/bin/preferences_gen.h:5562 -#: ../build/bin/preferences_gen.h:5596 +#: ../build/bin/conf_gen.h:3133 ../build/bin/preferences_gen.h:5958 msgctxt "preferences" msgid "scene-referred (filmic)" msgstr "" -#: ../build/bin/conf_gen.h:3042 ../build/bin/preferences_gen.h:5567 +#: ../build/bin/conf_gen.h:3134 msgctxt "preferences" msgid "scene-referred (sigmoid)" msgstr "" -#: ../build/bin/conf_gen.h:3043 ../build/bin/preferences_gen.h:5572 +#: ../build/bin/conf_gen.h:3135 msgctxt "preferences" msgid "display-referred (legacy)" msgstr "" -#: ../build/bin/conf_gen.h:3144 +#: ../build/bin/conf_gen.h:3230 msgid "camera time zone" msgstr "" -#: ../build/bin/conf_gen.h:3145 +#: ../build/bin/conf_gen.h:3231 msgid "" "most cameras don't store the time zone in EXIF. give the correct time zone " "so the GPX data can be correctly matched" msgstr "" -#: ../build/bin/conf_gen.h:3156 +#: ../build/bin/conf_gen.h:3242 msgctxt "preferences" msgid "no color" msgstr "" -#: ../build/bin/conf_gen.h:3157 +#: ../build/bin/conf_gen.h:3243 msgctxt "preferences" msgid "illuminant color" msgstr "" -#: ../build/bin/conf_gen.h:3158 +#: ../build/bin/conf_gen.h:3244 msgctxt "preferences" msgid "effect emulation" msgstr "" -#: ../build/bin/conf_gen.h:3204 +#: ../build/bin/conf_gen.h:3290 msgctxt "preferences" msgid "list" msgstr "" -#: ../build/bin/conf_gen.h:3205 +#: ../build/bin/conf_gen.h:3291 msgctxt "preferences" msgid "tabs" msgstr "" -#: ../build/bin/conf_gen.h:3206 +#: ../build/bin/conf_gen.h:3292 msgctxt "preferences" msgid "columns" msgstr "" -#: ../build/bin/conf_gen.h:3215 ../build/bin/preferences_gen.h:5117 +#: ../build/bin/conf_gen.h:3301 msgctxt "preferences" msgid "active" msgstr "" -#: ../build/bin/conf_gen.h:3216 ../build/bin/preferences_gen.h:5122 +#: ../build/bin/conf_gen.h:3302 msgctxt "preferences" msgid "dim" msgstr "" -#: ../build/bin/conf_gen.h:3218 ../build/bin/preferences_gen.h:5132 +#: ../build/bin/conf_gen.h:3304 msgctxt "preferences" msgid "fade" msgstr "" -#: ../build/bin/conf_gen.h:3219 ../build/bin/preferences_gen.h:5137 +#: ../build/bin/conf_gen.h:3305 msgctxt "preferences" msgid "fit" msgstr "" -#: ../build/bin/conf_gen.h:3220 ../build/bin/preferences_gen.h:5142 +#: ../build/bin/conf_gen.h:3306 msgctxt "preferences" msgid "smooth" msgstr "" -#: ../build/bin/conf_gen.h:3221 ../build/bin/preferences_gen.h:5147 +#: ../build/bin/conf_gen.h:3307 msgctxt "preferences" msgid "glide" msgstr "" -#: ../build/bin/preferences_gen.h:81 ../build/bin/preferences_gen.h:3823 -#: ../build/bin/preferences_gen.h:3859 ../build/bin/preferences_gen.h:3895 -#: ../build/bin/preferences_gen.h:3931 ../build/bin/preferences_gen.h:3967 -#: ../build/bin/preferences_gen.h:4003 ../build/bin/preferences_gen.h:4039 -#: ../build/bin/preferences_gen.h:4083 ../build/bin/preferences_gen.h:4178 -#: ../build/bin/preferences_gen.h:4273 ../build/bin/preferences_gen.h:4313 -#: ../build/bin/preferences_gen.h:4356 ../build/bin/preferences_gen.h:4437 -#: ../build/bin/preferences_gen.h:4473 ../build/bin/preferences_gen.h:4510 -#: ../build/bin/preferences_gen.h:4553 ../build/bin/preferences_gen.h:4627 -#: ../build/bin/preferences_gen.h:4672 ../build/bin/preferences_gen.h:4708 -#: ../build/bin/preferences_gen.h:4778 ../build/bin/preferences_gen.h:4822 -#: ../build/bin/preferences_gen.h:4882 ../build/bin/preferences_gen.h:4918 -#: ../build/bin/preferences_gen.h:4954 ../build/bin/preferences_gen.h:4990 -#: ../build/bin/preferences_gen.h:5026 ../build/bin/preferences_gen.h:5062 -#: ../build/bin/preferences_gen.h:5098 ../build/bin/preferences_gen.h:5188 -#: ../build/bin/preferences_gen.h:5224 ../build/bin/preferences_gen.h:5260 -#: ../build/bin/preferences_gen.h:5334 ../build/bin/preferences_gen.h:5370 -#: ../build/bin/preferences_gen.h:5435 ../build/bin/preferences_gen.h:5505 -#: ../build/bin/preferences_gen.h:5548 ../build/bin/preferences_gen.h:5618 -#: ../build/bin/preferences_gen.h:5654 ../build/bin/preferences_gen.h:5690 -#: ../build/bin/preferences_gen.h:5734 ../build/bin/preferences_gen.h:5805 -#: ../build/bin/preferences_gen.h:5841 ../build/bin/preferences_gen.h:5877 -#: ../build/bin/preferences_gen.h:5913 ../build/bin/preferences_gen.h:5955 -#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6140 -#: ../build/bin/preferences_gen.h:6176 ../build/bin/preferences_gen.h:6212 -#: ../build/bin/preferences_gen.h:6248 ../build/bin/preferences_gen.h:6284 -#: ../build/bin/preferences_gen.h:6320 ../build/bin/preferences_gen.h:6356 -#: ../build/bin/preferences_gen.h:6392 ../build/bin/preferences_gen.h:6427 -#: ../build/bin/preferences_gen.h:6462 ../build/bin/preferences_gen.h:6498 -#: ../build/bin/preferences_gen.h:6542 ../build/bin/preferences_gen.h:6614 -#: ../build/bin/preferences_gen.h:6692 ../build/bin/preferences_gen.h:6767 -#: ../build/bin/preferences_gen.h:6820 ../build/bin/preferences_gen.h:6885 -#: ../build/bin/preferences_gen.h:6950 ../build/bin/preferences_gen.h:7024 -#: ../build/bin/preferences_gen.h:7060 ../build/bin/preferences_gen.h:7096 -#: ../build/bin/preferences_gen.h:7132 ../build/bin/preferences_gen.h:7168 -#: ../build/bin/preferences_gen.h:7204 ../build/bin/preferences_gen.h:7250 -#: ../build/bin/preferences_gen.h:7310 ../build/bin/preferences_gen.h:7375 -#: ../build/bin/preferences_gen.h:7429 ../build/bin/preferences_gen.h:7474 -#: ../build/bin/preferences_gen.h:7510 ../build/bin/preferences_gen.h:7546 -#: ../build/bin/preferences_gen.h:7582 ../build/bin/preferences_gen.h:7618 -#: ../build/bin/preferences_gen.h:7678 ../build/bin/preferences_gen.h:7722 -#: ../build/bin/preferences_gen.h:7766 ../build/bin/preferences_gen.h:7848 -#: ../build/bin/preferences_gen.h:7888 ../build/bin/preferences_gen.h:7928 -#: ../build/bin/preferences_gen.h:7964 ../build/bin/preferences_gen.h:8019 -#: ../build/bin/preferences_gen.h:8055 ../build/bin/preferences_gen.h:8115 -#: ../build/bin/preferences_gen.h:8161 ../build/bin/preferences_gen.h:8197 -#: ../build/bin/preferences_gen.h:8243 ../build/bin/preferences_gen.h:8303 -#: ../build/bin/preferences_gen.h:8355 ../build/bin/preferences_gen.h:8401 -#: ../build/bin/preferences_gen.h:8469 ../build/bin/preferences_gen.h:8516 +#: ../build/bin/preferences_gen.h:77 ../build/bin/preferences_gen.h:4305 +#: ../build/bin/preferences_gen.h:4344 ../build/bin/preferences_gen.h:4383 +#: ../build/bin/preferences_gen.h:4417 ../build/bin/preferences_gen.h:4488 +#: ../build/bin/preferences_gen.h:4522 ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:4590 ../build/bin/preferences_gen.h:4624 +#: ../build/bin/preferences_gen.h:4658 ../build/bin/preferences_gen.h:4692 +#: ../build/bin/preferences_gen.h:4733 ../build/bin/preferences_gen.h:4768 +#: ../build/bin/preferences_gen.h:4803 ../build/bin/preferences_gen.h:4837 +#: ../build/bin/preferences_gen.h:4871 ../build/bin/preferences_gen.h:4906 +#: ../build/bin/preferences_gen.h:4940 ../build/bin/preferences_gen.h:4979 +#: ../build/bin/preferences_gen.h:5020 ../build/bin/preferences_gen.h:5093 +#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:5162 +#: ../build/bin/preferences_gen.h:5203 ../build/bin/preferences_gen.h:5237 +#: ../build/bin/preferences_gen.h:5281 ../build/bin/preferences_gen.h:5315 +#: ../build/bin/preferences_gen.h:5350 ../build/bin/preferences_gen.h:5391 +#: ../build/bin/preferences_gen.h:5426 ../build/bin/preferences_gen.h:5460 +#: ../build/bin/preferences_gen.h:5494 ../build/bin/preferences_gen.h:5528 +#: ../build/bin/preferences_gen.h:5562 ../build/bin/preferences_gen.h:5596 +#: ../build/bin/preferences_gen.h:5630 ../build/bin/preferences_gen.h:5665 +#: ../build/bin/preferences_gen.h:5699 ../build/bin/preferences_gen.h:5733 +#: ../build/bin/preferences_gen.h:5799 ../build/bin/preferences_gen.h:5833 +#: ../build/bin/preferences_gen.h:5868 ../build/bin/preferences_gen.h:5903 +#: ../build/bin/preferences_gen.h:5944 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/preferences_gen.h:6013 ../build/bin/preferences_gen.h:6047 +#: ../build/bin/preferences_gen.h:6088 ../build/bin/preferences_gen.h:6124 +#: ../build/bin/preferences_gen.h:6165 ../build/bin/preferences_gen.h:6209 +#: ../build/bin/preferences_gen.h:6254 ../build/bin/preferences_gen.h:6305 +#: ../build/bin/preferences_gen.h:6349 ../build/bin/preferences_gen.h:6393 +#: ../build/bin/preferences_gen.h:6437 ../build/bin/preferences_gen.h:6481 +#: ../build/bin/preferences_gen.h:6525 ../build/bin/preferences_gen.h:6569 +#: ../build/bin/preferences_gen.h:6635 ../build/bin/preferences_gen.h:6669 +#: ../build/bin/preferences_gen.h:6703 ../build/bin/preferences_gen.h:6737 +#: ../build/bin/preferences_gen.h:6771 ../build/bin/preferences_gen.h:6805 +#: ../build/bin/preferences_gen.h:6839 ../build/bin/preferences_gen.h:6873 +#: ../build/bin/preferences_gen.h:6906 ../build/bin/preferences_gen.h:6939 +#: ../build/bin/preferences_gen.h:6973 ../build/bin/preferences_gen.h:7014 +#: ../build/bin/preferences_gen.h:7053 ../build/bin/preferences_gen.h:7124 +#: ../build/bin/preferences_gen.h:7159 ../build/bin/preferences_gen.h:7210 +#: ../build/bin/preferences_gen.h:7245 ../build/bin/preferences_gen.h:7280 +#: ../build/bin/preferences_gen.h:7324 ../build/bin/preferences_gen.h:7390 +#: ../build/bin/preferences_gen.h:7424 ../build/bin/preferences_gen.h:7458 +#: ../build/bin/preferences_gen.h:7492 ../build/bin/preferences_gen.h:7526 +#: ../build/bin/preferences_gen.h:7560 ../build/bin/preferences_gen.h:7605 +#: ../build/bin/preferences_gen.h:7640 ../build/bin/preferences_gen.h:7675 +#: ../build/bin/preferences_gen.h:7731 ../build/bin/preferences_gen.h:7772 +#: ../build/bin/preferences_gen.h:7806 ../build/bin/preferences_gen.h:7840 +#: ../build/bin/preferences_gen.h:7874 ../build/bin/preferences_gen.h:7908 +#: ../build/bin/preferences_gen.h:7943 ../build/bin/preferences_gen.h:7984 +#: ../build/bin/preferences_gen.h:8025 ../build/bin/preferences_gen.h:8085 +#: ../build/bin/preferences_gen.h:8119 ../build/bin/preferences_gen.h:8154 +#: ../build/bin/preferences_gen.h:8199 ../build/bin/preferences_gen.h:8233 +#: ../build/bin/preferences_gen.h:8278 ../build/bin/preferences_gen.h:8313 +#: ../build/bin/preferences_gen.h:8365 ../build/bin/preferences_gen.h:8410 +#: ../build/bin/preferences_gen.h:8480 ../build/bin/preferences_gen.h:8526 msgid "this setting has been modified" msgstr "" #. doesn't seem to work from gtkrc -#: ../build/bin/preferences_gen.h:3793 ../build/bin/preferences_gen.h:4407 -#: ../build/bin/preferences_gen.h:5304 ../build/bin/preferences_gen.h:6110 -#: ../build/bin/preferences_gen.h:6662 ../build/bin/preferences_gen.h:6994 -#: ../build/bin/preferences_gen.h:7818 ../src/gui/accelerators.c:2724 -#: ../src/gui/gtk.c:2580 ../src/gui/preferences.c:421 -#: ../src/gui/preferences.c:876 ../src/libs/modulegroups.c:3886 +#: ../build/bin/preferences_gen.h:4277 ../build/bin/preferences_gen.h:4460 +#: ../build/bin/preferences_gen.h:5065 ../build/bin/preferences_gen.h:5771 +#: ../build/bin/preferences_gen.h:6607 ../build/bin/preferences_gen.h:7096 +#: ../build/bin/preferences_gen.h:7362 ../src/gui/accelerators.c:2996 +#: ../src/gui/gtk.c:2641 ../src/gui/preferences.c:424 +#: ../src/gui/preferences.c:874 ../src/libs/modulegroups.c:3888 msgid "?" msgstr "" -#: ../build/bin/preferences_gen.h:3806 ../build/bin/preferences_gen.h:4420 -#: ../build/bin/preferences_gen.h:6123 ../src/gui/preferences.c:270 -msgid "general" +#: ../build/bin/preferences_gen.h:4287 ../src/control/jobs/control_jobs.c:2352 +#: ../src/libs/import.c:173 +msgid "import" msgstr "" -#: ../build/bin/preferences_gen.h:3826 -msgid "hide built-in presets for utility modules" +#: ../build/bin/preferences_gen.h:4289 +msgid "session options" msgstr "" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4017 -#: ../build/bin/preferences_gen.h:4053 ../build/bin/preferences_gen.h:4156 -#: ../build/bin/preferences_gen.h:4251 ../build/bin/preferences_gen.h:4291 -#: ../build/bin/preferences_gen.h:4334 ../build/bin/preferences_gen.h:4377 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4531 ../build/bin/preferences_gen.h:4606 -#: ../build/bin/preferences_gen.h:4686 ../build/bin/preferences_gen.h:4756 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4860 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5040 ../build/bin/preferences_gen.h:5076 -#: ../build/bin/preferences_gen.h:5166 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5274 -#: ../build/bin/preferences_gen.h:5348 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5483 ../build/bin/preferences_gen.h:5525 -#: ../build/bin/preferences_gen.h:5596 ../build/bin/preferences_gen.h:5632 -#: ../build/bin/preferences_gen.h:5668 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5782 ../build/bin/preferences_gen.h:5819 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:5927 ../build/bin/preferences_gen.h:5998 -#: ../build/bin/preferences_gen.h:6074 ../build/bin/preferences_gen.h:6154 -#: ../build/bin/preferences_gen.h:6190 ../build/bin/preferences_gen.h:6226 -#: ../build/bin/preferences_gen.h:6262 ../build/bin/preferences_gen.h:6298 -#: ../build/bin/preferences_gen.h:6334 ../build/bin/preferences_gen.h:6370 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:6592 ../build/bin/preferences_gen.h:6632 -#: ../build/bin/preferences_gen.h:6745 ../build/bin/preferences_gen.h:6863 -#: ../build/bin/preferences_gen.h:6928 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7146 -#: ../build/bin/preferences_gen.h:7182 ../build/bin/preferences_gen.h:7288 -#: ../build/bin/preferences_gen.h:7353 ../build/bin/preferences_gen.h:7393 -#: ../build/bin/preferences_gen.h:7443 ../build/bin/preferences_gen.h:7488 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7656 -#: ../build/bin/preferences_gen.h:7692 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:7866 ../build/bin/preferences_gen.h:7906 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:7982 -#: ../build/bin/preferences_gen.h:8033 ../build/bin/preferences_gen.h:8093 -#: ../build/bin/preferences_gen.h:8175 ../build/bin/preferences_gen.h:8281 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4308 +msgid "base directory naming pattern" +msgstr "" + +#: ../build/bin/preferences_gen.h:4323 ../build/bin/preferences_gen.h:4362 +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4435 +#: ../build/bin/preferences_gen.h:4501 ../build/bin/preferences_gen.h:4535 +#: ../build/bin/preferences_gen.h:4569 ../build/bin/preferences_gen.h:4603 +#: ../build/bin/preferences_gen.h:4637 ../build/bin/preferences_gen.h:4671 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4747 +#: ../build/bin/preferences_gen.h:4782 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:4850 ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:4958 +#: ../build/bin/preferences_gen.h:4999 ../build/bin/preferences_gen.h:5040 +#: ../build/bin/preferences_gen.h:5106 ../build/bin/preferences_gen.h:5140 +#: ../build/bin/preferences_gen.h:5182 ../build/bin/preferences_gen.h:5217 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5329 +#: ../build/bin/preferences_gen.h:5363 ../build/bin/preferences_gen.h:5405 +#: ../build/bin/preferences_gen.h:5439 ../build/bin/preferences_gen.h:5473 +#: ../build/bin/preferences_gen.h:5507 ../build/bin/preferences_gen.h:5541 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5644 ../build/bin/preferences_gen.h:5678 +#: ../build/bin/preferences_gen.h:5712 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5847 +#: ../build/bin/preferences_gen.h:5882 ../build/bin/preferences_gen.h:5922 +#: ../build/bin/preferences_gen.h:5958 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6060 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6178 ../build/bin/preferences_gen.h:6223 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6318 +#: ../build/bin/preferences_gen.h:6362 ../build/bin/preferences_gen.h:6406 +#: ../build/bin/preferences_gen.h:6450 ../build/bin/preferences_gen.h:6494 +#: ../build/bin/preferences_gen.h:6538 ../build/bin/preferences_gen.h:6582 +#: ../build/bin/preferences_gen.h:6648 ../build/bin/preferences_gen.h:6682 +#: ../build/bin/preferences_gen.h:6716 ../build/bin/preferences_gen.h:6750 +#: ../build/bin/preferences_gen.h:6784 ../build/bin/preferences_gen.h:6818 +#: ../build/bin/preferences_gen.h:6852 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7032 +#: ../build/bin/preferences_gen.h:7071 ../build/bin/preferences_gen.h:7138 +#: ../build/bin/preferences_gen.h:7224 ../build/bin/preferences_gen.h:7259 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7505 ../build/bin/preferences_gen.h:7539 +#: ../build/bin/preferences_gen.h:7619 ../build/bin/preferences_gen.h:7654 +#: ../build/bin/preferences_gen.h:7693 ../build/bin/preferences_gen.h:7744 +#: ../build/bin/preferences_gen.h:7785 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7922 ../build/bin/preferences_gen.h:7956 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8133 ../build/bin/preferences_gen.h:8212 +#: ../build/bin/preferences_gen.h:8292 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 #, c-format msgid "double click to reset to `%s'" msgstr "" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4053 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4686 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:5040 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5348 -#: ../build/bin/preferences_gen.h:5632 ../build/bin/preferences_gen.h:5668 -#: ../build/bin/preferences_gen.h:5819 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:6370 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7146 ../build/bin/preferences_gen.h:7443 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7692 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:8033 -#: ../build/bin/preferences_gen.h:8175 +#: ../build/bin/preferences_gen.h:4326 ../build/bin/preferences_gen.h:4365 +msgid "part of full import path for an import session" +msgstr "" + +#: ../build/bin/preferences_gen.h:4347 +msgid "sub directory naming pattern" +msgstr "" + +#: ../build/bin/preferences_gen.h:4386 +msgid "keep original filename" +msgstr "" + +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4501 +#: ../build/bin/preferences_gen.h:4535 ../build/bin/preferences_gen.h:4569 +#: ../build/bin/preferences_gen.h:4603 ../build/bin/preferences_gen.h:4637 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4850 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:5106 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5439 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5712 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6450 +#: ../build/bin/preferences_gen.h:6494 ../build/bin/preferences_gen.h:6538 +#: ../build/bin/preferences_gen.h:6582 ../build/bin/preferences_gen.h:6852 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7505 +#: ../build/bin/preferences_gen.h:7744 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7956 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8212 msgctxt "preferences" msgid "FALSE" msgstr "" -#: ../build/bin/preferences_gen.h:3840 +#: ../build/bin/preferences_gen.h:4399 +msgid "" +"keep original filename instead of a pattern while importing from camera or " +"card" +msgstr "" + +#: ../build/bin/preferences_gen.h:4420 +msgid "file naming pattern" +msgstr "" + +#: ../build/bin/preferences_gen.h:4438 +msgid "file naming pattern used for a import session" +msgstr "" + +#: ../build/bin/preferences_gen.h:4470 ../src/gui/gtk.c:1266 +#: ../src/gui/preferences.c:544 ../src/libs/tools/lighttable.c:66 +#: ../src/views/lighttable.c:91 +msgid "lighttable" +msgstr "" + +#: ../build/bin/preferences_gen.h:4472 ../build/bin/preferences_gen.h:5077 +#: ../build/bin/preferences_gen.h:6619 ../src/gui/preferences.c:270 +msgid "general" +msgstr "" + +#: ../build/bin/preferences_gen.h:4491 +msgid "hide built-in presets for utility modules" +msgstr "" + +#: ../build/bin/preferences_gen.h:4504 msgid "hides built-in presets of utility modules in presets menu." msgstr "" -#: ../build/bin/preferences_gen.h:3862 +#: ../build/bin/preferences_gen.h:4525 msgid "use single-click in the collections module" msgstr "" -#: ../build/bin/preferences_gen.h:3876 +#: ../build/bin/preferences_gen.h:4538 msgid "" "check this option to use single-click to select items in the collections " "module. this will allow you to do range selections for date-time and numeric " "values." msgstr "" -#: ../build/bin/preferences_gen.h:3898 +#: ../build/bin/preferences_gen.h:4559 msgid "expand a single utility module at a time" msgstr "" -#: ../build/bin/preferences_gen.h:3912 +#: ../build/bin/preferences_gen.h:4572 msgid "this option toggles the behavior of shift clicking in lighttable mode" msgstr "" -#: ../build/bin/preferences_gen.h:3934 +#: ../build/bin/preferences_gen.h:4593 msgid "scroll utility modules to the top when expanded" msgstr "" -#: ../build/bin/preferences_gen.h:3948 ../build/bin/preferences_gen.h:5079 +#: ../build/bin/preferences_gen.h:4606 ../build/bin/preferences_gen.h:5612 msgid "" "when this option is enabled then darktable will try to scroll the module to " "the top of the visible list" msgstr "" -#: ../build/bin/preferences_gen.h:3970 +#: ../build/bin/preferences_gen.h:4627 msgid "rating an image one star twice will not zero out the rating" msgstr "" -#: ../build/bin/preferences_gen.h:3984 +#: ../build/bin/preferences_gen.h:4640 msgid "" "defines whether rating an image one star twice will zero out star rating" msgstr "" -#: ../build/bin/preferences_gen.h:4006 ../build/bin/preferences_gen.h:4675 +#: ../build/bin/preferences_gen.h:4661 ../build/bin/preferences_gen.h:5284 msgid "show scrollbars for central view" msgstr "" -#: ../build/bin/preferences_gen.h:4017 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5076 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5274 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5927 -#: ../build/bin/preferences_gen.h:6154 ../build/bin/preferences_gen.h:6190 -#: ../build/bin/preferences_gen.h:6226 ../build/bin/preferences_gen.h:6262 -#: ../build/bin/preferences_gen.h:6298 ../build/bin/preferences_gen.h:6334 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7182 -#: ../build/bin/preferences_gen.h:7488 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4671 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:5140 ../build/bin/preferences_gen.h:5363 +#: ../build/bin/preferences_gen.h:5473 ../build/bin/preferences_gen.h:5507 +#: ../build/bin/preferences_gen.h:5541 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5678 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:6060 ../build/bin/preferences_gen.h:6178 +#: ../build/bin/preferences_gen.h:6318 ../build/bin/preferences_gen.h:6362 +#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6648 +#: ../build/bin/preferences_gen.h:6682 ../build/bin/preferences_gen.h:6716 +#: ../build/bin/preferences_gen.h:6750 ../build/bin/preferences_gen.h:6784 +#: ../build/bin/preferences_gen.h:6818 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7539 ../build/bin/preferences_gen.h:7785 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 msgctxt "preferences" msgid "TRUE" msgstr "" -#: ../build/bin/preferences_gen.h:4020 ../build/bin/preferences_gen.h:4689 +#: ../build/bin/preferences_gen.h:4674 ../build/bin/preferences_gen.h:5297 msgid "defines whether scrollbars should be displayed" msgstr "" -#: ../build/bin/preferences_gen.h:4042 +#: ../build/bin/preferences_gen.h:4695 msgid "show image time with milliseconds" msgstr "" -#: ../build/bin/preferences_gen.h:4056 +#: ../build/bin/preferences_gen.h:4708 msgid "defines whether time should be displayed with milliseconds" msgstr "" -#: ../build/bin/preferences_gen.h:4066 +#: ../build/bin/preferences_gen.h:4717 msgid "thumbnails" msgstr "" -#: ../build/bin/preferences_gen.h:4086 +#: ../build/bin/preferences_gen.h:4736 msgid "use raw file instead of embedded JPEG from size" msgstr "" -#: ../build/bin/preferences_gen.h:4159 +#: ../build/bin/preferences_gen.h:4750 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "raw file instead of the embedded preview JPEG (better but slower).\n" @@ -1051,11 +1064,11 @@ "(more comments in the manual)" msgstr "" -#: ../build/bin/preferences_gen.h:4181 +#: ../build/bin/preferences_gen.h:4771 msgid "high quality processing from size" msgstr "" -#: ../build/bin/preferences_gen.h:4254 +#: ../build/bin/preferences_gen.h:4785 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "the full quality rendering path (better but slower).\n" @@ -1064,11 +1077,62 @@ "(more comments in the manual)" msgstr "" -#: ../build/bin/preferences_gen.h:4276 +#: ../build/bin/preferences_gen.h:4806 +msgid "enable disk backend for thumbnail cache" +msgstr "" + +#: ../build/bin/preferences_gen.h:4819 +msgid "" +"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want. light table " +"performance will be increased greatly when browsing a lot.\n" +"to generate all thumbnails of your entire collection offline, run 'darktable-" +"generate-cache'." +msgstr "" + +#: ../build/bin/preferences_gen.h:4840 +msgid "enable disk backend for full preview cache" +msgstr "" + +#: ../build/bin/preferences_gen.h:4853 +msgid "" +"if enabled, write full preview to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want.\n" +"light table performance will be increased greatly when zooming image in full " +"preview mode." +msgstr "" + +#: ../build/bin/preferences_gen.h:4874 +msgid "generate thumbnails in background" +msgstr "" + +#: ../build/bin/preferences_gen.h:4888 +msgid "" +"if 'enable disk backend for thumbnail cache' is enabled thumbnails/mipmaps " +"up to the selected size are generated while user is inactive in lighttable." +msgstr "" + +#: ../build/bin/preferences_gen.h:4909 +msgid "reset cached thumbnails" +msgstr "" + +#: ../build/bin/preferences_gen.h:4922 +msgid "" +"force thumbnails to be regenerated by resetting the database. this may be " +"needed in case some thumbnails have been manually removed or corrupted." +msgstr "" + +#: ../build/bin/preferences_gen.h:4943 msgid "delimiters for size categories" msgstr "" -#: ../build/bin/preferences_gen.h:4294 +#: ../build/bin/preferences_gen.h:4961 msgid "" "size categories are used to be able to set different overlays and CSS values " "depending of the size of the thumbnail, separated by |.\n" @@ -1076,23 +1140,28 @@ ">400px" msgstr "" -#: ../build/bin/preferences_gen.h:4316 +#: ../build/bin/preferences_gen.h:4982 msgid "pattern for the thumbnail extended overlay text" msgstr "" -#: ../build/bin/preferences_gen.h:4337 ../build/bin/preferences_gen.h:4380 +#: ../build/bin/preferences_gen.h:5002 ../build/bin/preferences_gen.h:5043 msgid "see manual to know all the tags you can use." msgstr "" -#: ../build/bin/preferences_gen.h:4359 +#: ../build/bin/preferences_gen.h:5023 msgid "pattern for the thumbnail tooltip (empty to disable)" msgstr "" -#: ../build/bin/preferences_gen.h:4440 +#: ../build/bin/preferences_gen.h:5075 ../src/gui/gtk.c:1267 +#: ../src/gui/preferences.c:544 ../src/views/darkroom.c:94 +msgid "darkroom" +msgstr "" + +#: ../build/bin/preferences_gen.h:5096 msgid "scroll down to increase mask parameters" msgstr "" -#: ../build/bin/preferences_gen.h:4454 +#: ../build/bin/preferences_gen.h:5109 msgid "" "when using the mouse scroll wheel to change mask parameters, scroll down to " "increase the mask size, feather size, opacity, brush hardness and gradient " @@ -1100,11 +1169,11 @@ "by default scrolling up increases these parameters" msgstr "" -#: ../build/bin/preferences_gen.h:4476 +#: ../build/bin/preferences_gen.h:5130 msgid "middle mouse button zooms to 200%" msgstr "" -#: ../build/bin/preferences_gen.h:4491 +#: ../build/bin/preferences_gen.h:5144 #, no-c-format msgid "" "if enabled, the zoom level will cycle between 100%, 200% and fit to viewport " @@ -1112,120 +1181,120 @@ "and 100%, and the 'ctrl' key can be used to control the zoom level." msgstr "" -#: ../build/bin/preferences_gen.h:4513 +#: ../build/bin/preferences_gen.h:5165 msgid "pattern for the image information line" msgstr "" -#: ../build/bin/preferences_gen.h:4534 +#: ../build/bin/preferences_gen.h:5185 msgid "see manual for a list of the tags you can use." msgstr "" -#: ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:5206 msgid "position of the image information line" msgstr "" -#: ../build/bin/preferences_gen.h:4630 +#: ../build/bin/preferences_gen.h:5240 msgid "border around image in darkroom mode" msgstr "" -#: ../build/bin/preferences_gen.h:4650 ../build/bin/preferences_gen.h:6790 -#: ../build/bin/preferences_gen.h:7228 ../build/bin/preferences_gen.h:7789 -#: ../build/bin/preferences_gen.h:8139 ../build/bin/preferences_gen.h:8221 -#: ../build/bin/preferences_gen.h:8379 ../build/bin/preferences_gen.h:8493 -#: ../build/bin/preferences_gen.h:8540 +#: ../build/bin/preferences_gen.h:5260 ../build/bin/preferences_gen.h:7182 +#: ../build/bin/preferences_gen.h:7303 ../build/bin/preferences_gen.h:7584 +#: ../build/bin/preferences_gen.h:8048 ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8257 ../build/bin/preferences_gen.h:8389 +#: ../build/bin/preferences_gen.h:8504 ../build/bin/preferences_gen.h:8550 #, c-format msgid "double click to reset to `%d'" msgstr "" -#: ../build/bin/preferences_gen.h:4653 +#: ../build/bin/preferences_gen.h:5263 msgid "" "process the image in darkroom mode with a small border. set to 0 if you " "don't want any border." msgstr "" -#: ../build/bin/preferences_gen.h:4711 +#: ../build/bin/preferences_gen.h:5318 msgid "reduce resolution of preview image" msgstr "" -#: ../build/bin/preferences_gen.h:4759 +#: ../build/bin/preferences_gen.h:5332 msgid "decrease to speed up preview rendering, may hinder accurate masking" msgstr "" -#: ../build/bin/preferences_gen.h:4781 +#: ../build/bin/preferences_gen.h:5353 msgid "show loading screen between images" msgstr "" -#: ../build/bin/preferences_gen.h:4795 +#: ../build/bin/preferences_gen.h:5366 msgid "" "show gray loading screen when navigating between images in the darkroom\n" "disable to just show a toast message" msgstr "" -#: ../build/bin/preferences_gen.h:4805 +#: ../build/bin/preferences_gen.h:5375 msgid "modules" msgstr "" -#: ../build/bin/preferences_gen.h:4825 +#: ../build/bin/preferences_gen.h:5394 msgid "display of individual color channels" msgstr "" -#: ../build/bin/preferences_gen.h:4863 +#: ../build/bin/preferences_gen.h:5408 msgid "" "defines how color channels are displayed when activated in the parametric " "masks feature." msgstr "" -#: ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:5429 msgid "hide built-in presets for processing modules" msgstr "" -#: ../build/bin/preferences_gen.h:4899 +#: ../build/bin/preferences_gen.h:5442 msgid "" "hides built-in presets of processing modules in both presets and favourites " "menu." msgstr "" -#: ../build/bin/preferences_gen.h:4921 ../build/bin/preferences_gen.h:4935 +#: ../build/bin/preferences_gen.h:5463 ../build/bin/preferences_gen.h:5476 msgid "show the guides widget in modules UI" msgstr "" -#: ../build/bin/preferences_gen.h:4957 +#: ../build/bin/preferences_gen.h:5497 msgid "expand a single processing module at a time" msgstr "" -#: ../build/bin/preferences_gen.h:4971 +#: ../build/bin/preferences_gen.h:5510 msgid "this option toggles the behavior of shift clicking in darkroom mode" msgstr "" -#: ../build/bin/preferences_gen.h:4993 +#: ../build/bin/preferences_gen.h:5531 msgid "only collapse modules in current group" msgstr "" -#: ../build/bin/preferences_gen.h:5007 +#: ../build/bin/preferences_gen.h:5544 msgid "" "if only expanding a single module at a time, only collapse other modules in " "the current group - ignore modules in other groups" msgstr "" -#: ../build/bin/preferences_gen.h:5029 +#: ../build/bin/preferences_gen.h:5565 msgid "expand the module when it is activated, and collapse it when disabled" msgstr "" -#: ../build/bin/preferences_gen.h:5043 +#: ../build/bin/preferences_gen.h:5578 msgid "" "this option allows to expand or collapse automatically the module when it is " "enabled or disabled." msgstr "" -#: ../build/bin/preferences_gen.h:5065 +#: ../build/bin/preferences_gen.h:5599 msgid "scroll processing modules to the top when expanded" msgstr "" -#: ../build/bin/preferences_gen.h:5101 +#: ../build/bin/preferences_gen.h:5633 msgid "show right-side buttons in processing module headers" msgstr "" -#: ../build/bin/preferences_gen.h:5169 +#: ../build/bin/preferences_gen.h:5647 msgid "" "when the mouse is not over a module, the multi-instance, reset and preset " "buttons can be hidden:\n" @@ -1239,93 +1308,97 @@ " - 'glide': gradually hide individual buttons as needed" msgstr "" -#: ../build/bin/preferences_gen.h:5191 +#: ../build/bin/preferences_gen.h:5668 msgid "show mask indicator in module headers" msgstr "" -#: ../build/bin/preferences_gen.h:5205 +#: ../build/bin/preferences_gen.h:5681 msgid "" "if enabled, an icon will be shown in the header of any processing modules " "that have a mask applied" msgstr "" -#: ../build/bin/preferences_gen.h:5227 +#: ../build/bin/preferences_gen.h:5702 msgid "prompt for name on addition of new instance" msgstr "" -#: ../build/bin/preferences_gen.h:5241 +#: ../build/bin/preferences_gen.h:5715 msgid "" "if enabled, a rename prompt will be present for each new module instance " "(either new instance or duplicate)" msgstr "" -#: ../build/bin/preferences_gen.h:5263 +#: ../build/bin/preferences_gen.h:5736 msgid "automatically update module name" msgstr "" -#: ../build/bin/preferences_gen.h:5277 +#: ../build/bin/preferences_gen.h:5749 msgid "" "if enabled, the module name will be automatically updated to match a preset " "name or a preset instance name if present." msgstr "" -#: ../build/bin/preferences_gen.h:5317 +#: ../build/bin/preferences_gen.h:5781 +msgid "processing" +msgstr "" + +#: ../build/bin/preferences_gen.h:5783 msgid "image processing" msgstr "" -#: ../build/bin/preferences_gen.h:5337 +#: ../build/bin/preferences_gen.h:5802 msgid "always use LittleCMS 2 to apply output color profile" msgstr "" -#: ../build/bin/preferences_gen.h:5351 +#: ../build/bin/preferences_gen.h:5815 msgid "this is slower than the default." msgstr "" -#: ../build/bin/preferences_gen.h:5373 +#: ../build/bin/preferences_gen.h:5836 msgid "pixel interpolator (warp)" msgstr "" -#: ../build/bin/preferences_gen.h:5416 +#: ../build/bin/preferences_gen.h:5850 msgid "" "pixel interpolator used in modules for rotation, lens correction, liquify, " "cropping and final scaling (bilinear, bicubic, lanczos2)." msgstr "" -#: ../build/bin/preferences_gen.h:5438 +#: ../build/bin/preferences_gen.h:5871 msgid "pixel interpolator (scaling)" msgstr "" -#: ../build/bin/preferences_gen.h:5486 +#: ../build/bin/preferences_gen.h:5885 msgid "" "pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." msgstr "" -#: ../build/bin/preferences_gen.h:5508 +#: ../build/bin/preferences_gen.h:5906 msgid "LUT 3D root folder" msgstr "" -#: ../build/bin/preferences_gen.h:5513 ../src/control/jobs/control_jobs.c:1688 -#: ../src/control/jobs/control_jobs.c:1742 ../src/gui/preferences.c:1081 -#: ../src/gui/presets.c:419 ../src/imageio/storage/disk.c:122 -#: ../src/imageio/storage/disk.c:178 ../src/imageio/storage/gallery.c:109 -#: ../src/imageio/storage/gallery.c:163 ../src/imageio/storage/latex.c:108 -#: ../src/imageio/storage/latex.c:162 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/import.c:1664 ../src/libs/styles.c:391 +#: ../build/bin/preferences_gen.h:5912 ../src/control/jobs/control_jobs.c:1691 +#: ../src/control/jobs/control_jobs.c:1745 ../src/gui/preferences.c:1080 +#: ../src/gui/presets.c:421 ../src/imageio/storage/disk.c:197 +#: ../src/imageio/storage/disk.c:261 ../src/imageio/storage/gallery.c:149 +#: ../src/imageio/storage/gallery.c:213 ../src/imageio/storage/latex.c:145 +#: ../src/imageio/storage/latex.c:199 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1673 ../src/libs/styles.c:391 #: ../src/lua/preferences.c:668 msgid "select directory" msgstr "" -#: ../build/bin/preferences_gen.h:5529 +#: ../build/bin/preferences_gen.h:5926 msgid "" "this folder (and sub-folders) contains LUT files used by LUT 3D module. " "(need a restart)." msgstr "" -#: ../build/bin/preferences_gen.h:5551 +#: ../build/bin/preferences_gen.h:5947 msgid "auto-apply pixel workflow defaults" msgstr "" -#: ../build/bin/preferences_gen.h:5599 +#: ../build/bin/preferences_gen.h:5961 msgid "" "scene-referred workflow is based on linear modules and will auto-apply " "filmic or sigmoid, color calibration and exposure,\n" @@ -1333,11 +1406,11 @@ "curve, white balance and the legacy module pipe order." msgstr "" -#: ../build/bin/preferences_gen.h:5621 +#: ../build/bin/preferences_gen.h:5982 msgid "auto-apply per camera basecurve presets" msgstr "" -#: ../build/bin/preferences_gen.h:5635 +#: ../build/bin/preferences_gen.h:5995 msgid "" "use the per-camera basecurve by default instead of the generic manufacturer " "one if there is one available (needs a restart).\n" @@ -1347,21 +1420,21 @@ "defaults\" should be set to \"none\"" msgstr "" -#: ../build/bin/preferences_gen.h:5657 +#: ../build/bin/preferences_gen.h:6016 msgid "detect monochrome previews" msgstr "" -#: ../build/bin/preferences_gen.h:5671 +#: ../build/bin/preferences_gen.h:6029 msgid "" "many monochrome images can be identified via EXIF and preview data. beware: " "this slows down imports and reading of EXIF data" msgstr "" -#: ../build/bin/preferences_gen.h:5693 +#: ../build/bin/preferences_gen.h:6050 msgid "show warning messages" msgstr "" -#: ../build/bin/preferences_gen.h:5707 +#: ../build/bin/preferences_gen.h:6063 msgid "" "display messages in modules to warn beginner users when non-standard and " "possibly harmful settings are used in the pipeline.\n" @@ -1369,15 +1442,15 @@ "what you are doing. this option will hide them all the time." msgstr "" -#: ../build/bin/preferences_gen.h:5717 -msgid "CPU / GPU / memory" +#: ../build/bin/preferences_gen.h:6072 +msgid "CPU / memory" msgstr "" -#: ../build/bin/preferences_gen.h:5737 +#: ../build/bin/preferences_gen.h:6091 msgid "darktable resources" msgstr "" -#: ../build/bin/preferences_gen.h:5786 +#: ../build/bin/preferences_gen.h:6106 #, no-c-format msgid "" "defines how much darktable may take from your system resources:\n" @@ -1394,74 +1467,56 @@ " use with caution and not recommended for general use!" msgstr "" -#: ../build/bin/preferences_gen.h:5808 +#: ../build/bin/preferences_gen.h:6127 msgid "prefer performance over quality" msgstr "" -#: ../build/bin/preferences_gen.h:5822 +#: ../build/bin/preferences_gen.h:6140 msgid "" "if switched on, thumbnails and previews are rendered at lower quality but 4 " "times faster" msgstr "" -#: ../build/bin/preferences_gen.h:5844 -msgid "enable disk backend for thumbnail cache" -msgstr "" - -#: ../build/bin/preferences_gen.h:5858 -msgid "" -"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want. light table " -"performance will be increased greatly when browsing a lot.\n" -"to generate all thumbnails of your entire collection offline, run 'darktable-" -"generate-cache'." -msgstr "" - -#: ../build/bin/preferences_gen.h:5880 -msgid "enable disk backend for full preview cache" +#: ../build/bin/preferences_gen.h:6149 +msgid "OpenCL" msgstr "" -#: ../build/bin/preferences_gen.h:5894 -msgid "" -"if enabled, write full preview to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want.\n" -"light table performance will be increased greatly when zooming image in full " -"preview mode." -msgstr "" - -#: ../build/bin/preferences_gen.h:5916 +#: ../build/bin/preferences_gen.h:6168 msgid "activate OpenCL support" msgstr "" -#: ../build/bin/preferences_gen.h:5930 +#: ../build/bin/preferences_gen.h:6181 msgid "" "if found, use OpenCL runtime on your system to speed up processing.\n" "can be switched on and off at any time." msgstr "" -#: ../build/bin/preferences_gen.h:5931 ../build/bin/preferences_gen.h:6002 -#: ../build/bin/preferences_gen.h:6078 ../build/bin/preferences_gen.h:7397 +#: ../build/bin/preferences_gen.h:6185 ../build/bin/preferences_gen.h:6230 +#: ../build/bin/preferences_gen.h:6274 ../build/bin/preferences_gen.h:6325 +#: ../build/bin/preferences_gen.h:6369 ../build/bin/preferences_gen.h:6413 +#: ../build/bin/preferences_gen.h:6457 ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6545 ../build/bin/preferences_gen.h:7700 msgid "not available" msgstr "" -#: ../build/bin/preferences_gen.h:5934 ../build/bin/preferences_gen.h:5938 -#: ../build/bin/preferences_gen.h:6005 ../build/bin/preferences_gen.h:6009 -#: ../build/bin/preferences_gen.h:6081 ../build/bin/preferences_gen.h:6085 -#: ../build/bin/preferences_gen.h:7400 ../build/bin/preferences_gen.h:7404 +#: ../build/bin/preferences_gen.h:6187 ../build/bin/preferences_gen.h:6188 +#: ../build/bin/preferences_gen.h:6232 ../build/bin/preferences_gen.h:6233 +#: ../build/bin/preferences_gen.h:6276 ../build/bin/preferences_gen.h:6277 +#: ../build/bin/preferences_gen.h:6327 ../build/bin/preferences_gen.h:6328 +#: ../build/bin/preferences_gen.h:6371 ../build/bin/preferences_gen.h:6372 +#: ../build/bin/preferences_gen.h:6415 ../build/bin/preferences_gen.h:6416 +#: ../build/bin/preferences_gen.h:6459 ../build/bin/preferences_gen.h:6460 +#: ../build/bin/preferences_gen.h:6503 ../build/bin/preferences_gen.h:6504 +#: ../build/bin/preferences_gen.h:6547 ../build/bin/preferences_gen.h:6548 +#: ../build/bin/preferences_gen.h:7702 ../build/bin/preferences_gen.h:7703 msgid "not available on this system" msgstr "" -#: ../build/bin/preferences_gen.h:5958 +#: ../build/bin/preferences_gen.h:6212 msgid "OpenCL scheduling profile" msgstr "" -#: ../build/bin/preferences_gen.h:6001 +#: ../build/bin/preferences_gen.h:6226 msgid "" "defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled " "systems:\n" @@ -1472,135 +1527,207 @@ " - 'very fast GPU': process both pixelpipes sequentially on the GPU." msgstr "" -#: ../build/bin/preferences_gen.h:6029 -msgid "tune OpenCL performance" +#: ../build/bin/preferences_gen.h:6257 +msgid "use all device memory" +msgstr "" + +#: ../build/bin/preferences_gen.h:6270 +msgid "" +"if enabled darktable will use all device memory except a safety margin " +"(headroom, default is 600MB)" +msgstr "" + +#: ../build/bin/preferences_gen.h:6289 +msgid "OpenCL drivers" +msgstr "" + +#: ../build/bin/preferences_gen.h:6308 +msgid "Intel GPU" +msgstr "" + +#: ../build/bin/preferences_gen.h:6321 +msgid "Intel(R) OpenCL Graphics for all supported platforms (vendor provided)" +msgstr "" + +#: ../build/bin/preferences_gen.h:6352 +msgid "Nvidia CUDA" +msgstr "" + +#: ../build/bin/preferences_gen.h:6365 +msgid "Nvidia CUDA based OpenCL (vendor provided)" +msgstr "" + +#: ../build/bin/preferences_gen.h:6396 +msgid "AMD ROCm" +msgstr "" + +#: ../build/bin/preferences_gen.h:6409 +msgid "AMD Accelerated Parallel Processing (vendor provided)" +msgstr "" + +#: ../build/bin/preferences_gen.h:6440 +msgid "RustiCL" msgstr "" -#: ../build/bin/preferences_gen.h:6077 +#: ../build/bin/preferences_gen.h:6453 msgid "" -"allows runtime tuning of OpenCL devices:\n" -" - 'memory size': uses a fixed headroom (400MB as default),\n" -" - 'memory transfer': tries a faster memory access mode (pinned memory) used " -"for tiling." +"RustiCL Mesa OpenCL, still unstable. if you want to use this, you should " +"disable the vendor driver" msgstr "" -#: ../build/bin/preferences_gen.h:6143 +#: ../build/bin/preferences_gen.h:6484 +msgid "Apple" +msgstr "" + +#: ../build/bin/preferences_gen.h:6497 +msgid "Apple OpenCL (vendor provided)" +msgstr "" + +#: ../build/bin/preferences_gen.h:6528 +msgid "Microsoft OpenCLOn12" +msgstr "" + +#: ../build/bin/preferences_gen.h:6541 +msgid "" +"Microsoft OpenCLOn12, only use this if the vendor provided driver does not " +"work or there is none provided." +msgstr "" + +#: ../build/bin/preferences_gen.h:6572 +msgid "other platforms" +msgstr "" + +#: ../build/bin/preferences_gen.h:6585 +msgid "" +"if set, all unspecified platforms are accepted. only do this if no vendor " +"driver is available" +msgstr "" + +#: ../build/bin/preferences_gen.h:6617 +msgid "security" +msgstr "" + +#: ../build/bin/preferences_gen.h:6638 msgid "ask before removing images from the library" msgstr "" -#: ../build/bin/preferences_gen.h:6157 +#: ../build/bin/preferences_gen.h:6651 msgid "always ask the user before removing image information from the library" msgstr "" -#: ../build/bin/preferences_gen.h:6179 +#: ../build/bin/preferences_gen.h:6672 msgid "ask before deleting images from disk" msgstr "" -#: ../build/bin/preferences_gen.h:6193 +#: ../build/bin/preferences_gen.h:6685 msgid "always ask the user before any image file is deleted" msgstr "" -#: ../build/bin/preferences_gen.h:6215 +#: ../build/bin/preferences_gen.h:6706 msgid "ask before discarding history stack" msgstr "" -#: ../build/bin/preferences_gen.h:6229 +#: ../build/bin/preferences_gen.h:6719 msgid "always ask the user before history stack is discarded on any image" msgstr "" -#: ../build/bin/preferences_gen.h:6251 +#: ../build/bin/preferences_gen.h:6740 msgid "try to use trash when deleting images" msgstr "" -#: ../build/bin/preferences_gen.h:6265 +#: ../build/bin/preferences_gen.h:6753 msgid "" "send files to trash instead of permanently deleting files on system that " "supports it" msgstr "" -#: ../build/bin/preferences_gen.h:6287 +#: ../build/bin/preferences_gen.h:6774 msgid "ask before moving images from film roll folder" msgstr "" -#: ../build/bin/preferences_gen.h:6301 +#: ../build/bin/preferences_gen.h:6787 msgid "always ask the user before any image file is moved." msgstr "" -#: ../build/bin/preferences_gen.h:6323 +#: ../build/bin/preferences_gen.h:6808 msgid "ask before copying images to new film roll folder" msgstr "" -#: ../build/bin/preferences_gen.h:6337 +#: ../build/bin/preferences_gen.h:6821 msgid "always ask the user before any image file is copied." msgstr "" -#: ../build/bin/preferences_gen.h:6359 +#: ../build/bin/preferences_gen.h:6842 msgid "ask before removing empty folders" msgstr "" -#: ../build/bin/preferences_gen.h:6373 +#: ../build/bin/preferences_gen.h:6855 msgid "" "always ask the user before removing any empty folder. this can happen after " "moving or deleting images." msgstr "" -#: ../build/bin/preferences_gen.h:6395 +#: ../build/bin/preferences_gen.h:6876 msgid "ask before deleting a tag" msgstr "" -#: ../build/bin/preferences_gen.h:6430 +#: ../build/bin/preferences_gen.h:6909 msgid "ask before deleting a style" msgstr "" -#: ../build/bin/preferences_gen.h:6465 +#: ../build/bin/preferences_gen.h:6942 msgid "ask before deleting a preset" msgstr "" -#: ../build/bin/preferences_gen.h:6479 +#: ../build/bin/preferences_gen.h:6955 msgid "will ask for confirmation before deleting or overwriting a preset" msgstr "" -#: ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6976 msgid "ask before exporting in overwrite mode" msgstr "" -#: ../build/bin/preferences_gen.h:6515 +#: ../build/bin/preferences_gen.h:6989 msgid "will ask for confirmation before exporting files in overwrite mode" msgstr "" #. italic -#: ../build/bin/preferences_gen.h:6525 ../src/libs/tools/viewswitcher.c:148 +#: ../build/bin/preferences_gen.h:6998 ../src/libs/tools/viewswitcher.c:148 msgid "other" msgstr "" -#: ../build/bin/preferences_gen.h:6545 +#: ../build/bin/preferences_gen.h:7017 msgid "password storage backend to use" msgstr "" -#: ../build/bin/preferences_gen.h:6595 +#: ../build/bin/preferences_gen.h:7035 msgid "" "the storage backend for password storage: auto, none, libsecret, kwallet" msgstr "" -#: ../build/bin/preferences_gen.h:6617 +#: ../build/bin/preferences_gen.h:7056 msgid "executable for playing audio files" msgstr "" -#: ../build/bin/preferences_gen.h:6635 +#: ../build/bin/preferences_gen.h:7074 msgid "" "this external program is used to play audio files some cameras record to " "keep notes for images" msgstr "" -#: ../build/bin/preferences_gen.h:6675 ../src/control/crawler.c:724 +#: ../build/bin/preferences_gen.h:7106 +msgid "storage" +msgstr "" + +#: ../build/bin/preferences_gen.h:7108 ../src/control/crawler.c:717 msgid "database" msgstr "" -#: ../build/bin/preferences_gen.h:6695 +#: ../build/bin/preferences_gen.h:7127 msgid "create database snapshot" msgstr "" -#: ../build/bin/preferences_gen.h:6748 +#: ../build/bin/preferences_gen.h:7141 msgid "" "database snapshots are created right before closing darktable. options allow " "you to choose how often to make snapshots:\n" @@ -1613,11 +1740,11 @@ " - 'on close': create snapshot every time darktable is closed" msgstr "" -#: ../build/bin/preferences_gen.h:6770 +#: ../build/bin/preferences_gen.h:7162 msgid "how many snapshots to keep" msgstr "" -#: ../build/bin/preferences_gen.h:6793 +#: ../build/bin/preferences_gen.h:7185 msgid "" "after successfully creating snapshot, how many older snapshots to keep " "(excluding mandatory version update ones). enter -1 to keep all snapshots\n" @@ -1625,131 +1752,146 @@ "recent one for successful restore" msgstr "" -#: ../build/bin/preferences_gen.h:6803 ../src/control/crawler.c:723 -msgid "XMP" +#: ../build/bin/preferences_gen.h:7194 ../src/libs/copy_history.c:149 +msgid "XMP sidecar files" msgstr "" -#: ../build/bin/preferences_gen.h:6823 -msgid "write sidecar file for each image" +#: ../build/bin/preferences_gen.h:7213 +msgid "create XMP files" msgstr "" -#: ../build/bin/preferences_gen.h:6866 +#: ../build/bin/preferences_gen.h:7227 msgid "" -"the sidecar files hold information about all your development steps to allow " +"XMP sidecar files hold information about all your development steps to allow " "flawless re-importing of image files.\n" "\n" -"depending on the selected mode sidecar files will be written:\n" +"depending on the selected mode sidecar files will be created:\n" " - 'never'\n" " - 'on import': immediately after importing the image\n" -" - 'after edit': after any user change on the image." +" - 'after edit': after any user change on the image or adding tags." msgstr "" -#: ../build/bin/preferences_gen.h:6888 +#: ../build/bin/preferences_gen.h:7248 msgid "store XMP tags in compressed format" msgstr "" -#: ../build/bin/preferences_gen.h:6931 +#: ../build/bin/preferences_gen.h:7262 msgid "" "entries in XMP tags can get rather large and may exceed the available space " "to store the history stack in output files.\n" "this option allows XMP tags to be compressed and save space." msgstr "" -#: ../build/bin/preferences_gen.h:6953 +#: ../build/bin/preferences_gen.h:7283 +msgid "auto-save interval" +msgstr "" + +#: ../build/bin/preferences_gen.h:7306 +msgid "" +"automatically save history while developing using the given interval (in " +"seconds); set to zero to disable auto-saving. auto-saving might be disabled " +"on slow drives." +msgstr "" + +#: ../build/bin/preferences_gen.h:7327 msgid "look for updated XMP files on startup" msgstr "" -#: ../build/bin/preferences_gen.h:6967 +#: ../build/bin/preferences_gen.h:7340 msgid "" "check file modification times of all XMP files on startup to check if any " "got updated in the meantime" msgstr "" -#: ../build/bin/preferences_gen.h:7007 +#: ../build/bin/preferences_gen.h:7372 +msgid "miscellaneous" +msgstr "" + +#: ../build/bin/preferences_gen.h:7374 msgid "interface" msgstr "" -#: ../build/bin/preferences_gen.h:7027 +#: ../build/bin/preferences_gen.h:7393 msgid "load default shortcuts at startup" msgstr "" -#: ../build/bin/preferences_gen.h:7041 +#: ../build/bin/preferences_gen.h:7406 msgid "" "load default shortcuts before user settings. switch off to prevent deleted " "defaults returning" msgstr "" -#: ../build/bin/preferences_gen.h:7063 +#: ../build/bin/preferences_gen.h:7427 msgid "scale slider step with min/max" msgstr "" -#: ../build/bin/preferences_gen.h:7077 +#: ../build/bin/preferences_gen.h:7440 msgid "vary slider step size with min/max range" msgstr "" -#: ../build/bin/preferences_gen.h:7099 +#: ../build/bin/preferences_gen.h:7461 msgid "sort built-in presets first" msgstr "" -#: ../build/bin/preferences_gen.h:7113 +#: ../build/bin/preferences_gen.h:7474 msgid "" "whether to show built-in presets first before user's presets in presets menu." msgstr "" -#: ../build/bin/preferences_gen.h:7135 +#: ../build/bin/preferences_gen.h:7495 msgid "mouse wheel scrolls modules side panel by default" msgstr "" -#: ../build/bin/preferences_gen.h:7149 +#: ../build/bin/preferences_gen.h:7508 msgid "" "when enabled, use mouse wheel to scroll modules side panel. use ctrl+alt to " "use mouse wheel for data entry. when disabled, this behavior is reversed" msgstr "" -#: ../build/bin/preferences_gen.h:7171 +#: ../build/bin/preferences_gen.h:7529 msgid "always show panels' scrollbars" msgstr "" -#: ../build/bin/preferences_gen.h:7185 +#: ../build/bin/preferences_gen.h:7542 msgid "" "defines whether the panel scrollbars should be always visible or activated " "only depending on the content. (need a restart)" msgstr "" -#: ../build/bin/preferences_gen.h:7207 +#: ../build/bin/preferences_gen.h:7563 msgid "duration of the UI transitions in ms" msgstr "" -#: ../build/bin/preferences_gen.h:7231 +#: ../build/bin/preferences_gen.h:7587 msgid "" "how long the transitions take (in ms) for expanding or collapsing modules " "and other UI elements" msgstr "" -#: ../build/bin/preferences_gen.h:7253 +#: ../build/bin/preferences_gen.h:7608 msgid "position of the scopes module" msgstr "" -#: ../build/bin/preferences_gen.h:7291 +#: ../build/bin/preferences_gen.h:7622 msgid "position the scopes at the top-left or top-right of the screen" msgstr "" -#: ../build/bin/preferences_gen.h:7313 +#: ../build/bin/preferences_gen.h:7643 msgid "method to use for getting the display profile" msgstr "" -#: ../build/bin/preferences_gen.h:7356 +#: ../build/bin/preferences_gen.h:7657 msgid "" "this option allows to force a specific means of getting the current display " "profile.\n" "this is useful when one alternative gives wrong results" msgstr "" -#: ../build/bin/preferences_gen.h:7378 +#: ../build/bin/preferences_gen.h:7678 msgid "order or exclude MIDI devices" msgstr "" -#: ../build/bin/preferences_gen.h:7396 +#: ../build/bin/preferences_gen.h:7696 msgid "" "comma-separated list of device name fragments that if matched load MIDI " "device at id given by location in list\n" @@ -1758,229 +1900,196 @@ msgstr "" #. tags -#: ../build/bin/preferences_gen.h:7412 ../src/develop/lightroom.c:1516 -#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:333 -#: ../src/libs/image.c:558 ../src/libs/metadata_view.c:162 +#: ../build/bin/preferences_gen.h:7715 ../src/develop/lightroom.c:1573 +#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:322 +#: ../src/libs/image.c:614 ../src/libs/metadata_view.c:166 msgid "tags" msgstr "" -#: ../build/bin/preferences_gen.h:7432 +#: ../build/bin/preferences_gen.h:7734 msgid "omit hierarchy in simple tag lists" msgstr "" -#: ../build/bin/preferences_gen.h:7446 +#: ../build/bin/preferences_gen.h:7747 msgid "" -"when creating XMP file the hierarchical tags are also added as a simple " -"list\n" +"when creating an XMP sidecar file the hierarchical tags are also added as a " +"simple list\n" "of non-hierarchical ones to make them visible to some other programs.\n" "when this option is checked darktable will only include their last part\n" "and ignore the rest. so 'foo|bar|baz' will only add 'baz'." msgstr "" -#: ../build/bin/preferences_gen.h:7456 +#: ../build/bin/preferences_gen.h:7756 msgid "shortcuts with multiple instances" msgstr "" -#: ../build/bin/preferences_gen.h:7461 -msgid "" -"where multiple module instances are present, these preferences control rules " -"that are applied (in order) to decide which module instance shortcuts will " -"be applied to" -msgstr "" - -#: ../build/bin/preferences_gen.h:7477 +#: ../build/bin/preferences_gen.h:7775 msgid "prefer focused instance" msgstr "" -#: ../build/bin/preferences_gen.h:7491 +#: ../build/bin/preferences_gen.h:7788 msgid "" -"if an instance of the module has focus, apply shortcut to that instance\n" +"where multiple instances of a module are present, apply shortcuts to the " +"instance that has focus\n" +"if none are focused, the preferences below control rules that are followed " +"(in order) to decide which module instance shortcuts will be applied to.\n" "note: blending shortcuts always apply to the focused instance" msgstr "" -#: ../build/bin/preferences_gen.h:7513 +#: ../build/bin/preferences_gen.h:7809 msgid "prefer expanded instances" msgstr "" -#: ../build/bin/preferences_gen.h:7527 +#: ../build/bin/preferences_gen.h:7822 msgid "if instances of the module are expanded, ignore collapsed instances" msgstr "" -#: ../build/bin/preferences_gen.h:7549 +#: ../build/bin/preferences_gen.h:7843 msgid "prefer enabled instances" msgstr "" -#: ../build/bin/preferences_gen.h:7563 +#: ../build/bin/preferences_gen.h:7856 msgid "" "after applying the above rule, if instances of the module are active, ignore " "inactive instances" msgstr "" -#: ../build/bin/preferences_gen.h:7585 +#: ../build/bin/preferences_gen.h:7877 msgid "prefer unmasked instances" msgstr "" -#: ../build/bin/preferences_gen.h:7599 +#: ../build/bin/preferences_gen.h:7890 msgid "" "after applying the above rules, if instances of the module are unmasked, " "ignore masked instances" msgstr "" -#: ../build/bin/preferences_gen.h:7621 +#: ../build/bin/preferences_gen.h:7911 msgid "selection order" msgstr "" -#: ../build/bin/preferences_gen.h:7659 +#: ../build/bin/preferences_gen.h:7925 msgid "" "after applying the above rules, apply the shortcut based on its position in " "the pixelpipe" msgstr "" -#: ../build/bin/preferences_gen.h:7681 +#: ../build/bin/preferences_gen.h:7946 msgid "allow visual assignment to specific instances" msgstr "" -#: ../build/bin/preferences_gen.h:7695 +#: ../build/bin/preferences_gen.h:7959 msgid "" "when multiple instances are present on an image this allows shortcuts to be " "visually assigned to those specific instances\n" "otherwise shortcuts will always be assigned to the preferred instance" msgstr "" -#: ../build/bin/preferences_gen.h:7705 +#: ../build/bin/preferences_gen.h:7968 msgid "map / geolocalization view" msgstr "" -#: ../build/bin/preferences_gen.h:7725 +#: ../build/bin/preferences_gen.h:7987 msgid "pretty print the image location" msgstr "" -#: ../build/bin/preferences_gen.h:7739 +#: ../build/bin/preferences_gen.h:8000 msgid "" "show a more readable representation of the location in the image information " "module" msgstr "" -#: ../build/bin/preferences_gen.h:7749 +#: ../build/bin/preferences_gen.h:8009 msgid "slideshow view" msgstr "" -#: ../build/bin/preferences_gen.h:7769 +#: ../build/bin/preferences_gen.h:8028 msgid "waiting time between each picture in slideshow" msgstr "" -#: ../build/bin/preferences_gen.h:7831 -msgid "session options" -msgstr "" - -#: ../build/bin/preferences_gen.h:7851 -msgid "base directory naming pattern" -msgstr "" - -#: ../build/bin/preferences_gen.h:7869 ../build/bin/preferences_gen.h:7909 -msgid "part of full import path for an import session" -msgstr "" - -#: ../build/bin/preferences_gen.h:7891 -msgid "sub directory naming pattern" -msgstr "" - -#: ../build/bin/preferences_gen.h:7931 -msgid "keep original filename" -msgstr "" - -#: ../build/bin/preferences_gen.h:7945 -msgid "" -"keep original filename instead of a pattern while importing from camera or " -"card" -msgstr "" - -#: ../build/bin/preferences_gen.h:7967 -msgid "file naming pattern" -msgstr "" - -#: ../build/bin/preferences_gen.h:7985 -msgid "file naming pattern used for a import session" -msgstr "" - -#: ../build/bin/preferences_gen.h:8022 +#: ../build/bin/preferences_gen.h:8088 msgid "do not set the 'uncategorized' entry for tags" msgstr "" -#: ../build/bin/preferences_gen.h:8036 +#: ../build/bin/preferences_gen.h:8101 msgid "" "do not set the 'uncategorized' entry for tags which do not have children" msgstr "" -#: ../build/bin/preferences_gen.h:8058 +#: ../build/bin/preferences_gen.h:8122 msgid "tags case sensitivity" msgstr "" -#: ../build/bin/preferences_gen.h:8096 +#: ../build/bin/preferences_gen.h:8136 msgid "" "tags case sensitivity. without the Sqlite ICU extension, insensitivity works " "only for the 26 latin letters" msgstr "" -#: ../build/bin/preferences_gen.h:8118 ../build/bin/preferences_gen.h:8358 +#: ../build/bin/preferences_gen.h:8157 ../build/bin/preferences_gen.h:8368 msgid "number of collections to be stored" msgstr "" -#: ../build/bin/preferences_gen.h:8142 ../build/bin/preferences_gen.h:8382 +#: ../build/bin/preferences_gen.h:8181 ../build/bin/preferences_gen.h:8392 msgid "the number of recent collections to store and show in this list" msgstr "" -#: ../build/bin/preferences_gen.h:8164 +#: ../build/bin/preferences_gen.h:8202 msgid "hide the history button and show a specific module instead" msgstr "" -#: ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8215 msgid "hide the history button and show the recent collections module instead" msgstr "" -#: ../build/bin/preferences_gen.h:8200 +#: ../build/bin/preferences_gen.h:8236 msgid "number of folder levels to show in lists" msgstr "" -#: ../build/bin/preferences_gen.h:8224 +#: ../build/bin/preferences_gen.h:8260 msgid "" "the number of folder levels to show in film roll names, starting from the " "right" msgstr "" -#: ../build/bin/preferences_gen.h:8246 +#: ../build/bin/preferences_gen.h:8281 msgid "sort film rolls by" msgstr "" -#: ../build/bin/preferences_gen.h:8284 +#: ../build/bin/preferences_gen.h:8292 +msgctxt "preferences" +msgid "chronological" +msgstr "" + +#: ../build/bin/preferences_gen.h:8295 msgid "sets the collections-list order for film rolls" msgstr "" -#: ../build/bin/preferences_gen.h:8306 +#: ../build/bin/preferences_gen.h:8316 msgid "sort collection descending" msgstr "" -#: ../build/bin/preferences_gen.h:8320 +#: ../build/bin/preferences_gen.h:8329 msgid "" "sort the following collections in descending order: 'film roll' by folder, " "'folder', 'times' (e.g. 'capture date')" msgstr "" -#: ../build/bin/preferences_gen.h:8404 +#: ../build/bin/preferences_gen.h:8413 msgid "prefer a history button in the collections module" msgstr "" -#: ../build/bin/preferences_gen.h:8418 +#: ../build/bin/preferences_gen.h:8426 msgid "" "hide this module and instead access collections history with a button in the " "collections module" msgstr "" -#: ../build/bin/preferences_gen.h:8472 +#: ../build/bin/preferences_gen.h:8483 msgid "suggested tags level of confidence" msgstr "" -#: ../build/bin/preferences_gen.h:8497 +#: ../build/bin/preferences_gen.h:8508 #, no-c-format msgid "" "level of confidence to include the tag in the suggestions list, 0: all " @@ -1988,11 +2097,11 @@ "show only recent tags (faster)" msgstr "" -#: ../build/bin/preferences_gen.h:8519 +#: ../build/bin/preferences_gen.h:8529 msgid "number of recently attached tags" msgstr "" -#: ../build/bin/preferences_gen.h:8543 +#: ../build/bin/preferences_gen.h:8553 msgid "" "number of recently attached tags which are included in the suggestions list. " "the value `-1' disables the recent list" @@ -2016,14 +2125,15 @@ #. focal length #: ../build/lib/darktable/plugins/introspection_ashift.c:148 #: ../build/lib/darktable/plugins/introspection_ashift.c:291 -#: ../src/common/collection.c:714 ../src/gui/preferences.c:844 -#: ../src/gui/presets.c:718 ../src/libs/camera.c:550 -#: ../src/libs/metadata_view.c:143 +#: ../src/common/collection.c:627 ../src/gui/preferences.c:842 +#: ../src/gui/presets.c:721 ../src/libs/camera.c:550 +#: ../src/libs/metadata_view.c:145 msgid "focal length" msgstr "" #: ../build/lib/darktable/plugins/introspection_ashift.c:154 #: ../build/lib/darktable/plugins/introspection_ashift.c:295 +#: ../src/libs/metadata_view.c:147 msgid "crop factor" msgstr "" @@ -2039,7 +2149,7 @@ #: ../build/lib/darktable/plugins/introspection_ashift.c:172 #: ../build/lib/darktable/plugins/introspection_ashift.c:307 -#: ../src/iop/lens.cc:3784 +#: ../src/iop/lens.cc:4438 msgid "lens model" msgstr "" @@ -2061,14 +2171,14 @@ #. DEVELOP_MASK_DISABLED #: ../build/lib/darktable/plugins/introspection_ashift.c:366 -#: ../build/lib/darktable/plugins/introspection_colorin.c:300 +#: ../build/lib/darktable/plugins/introspection_colorin.c:303 #: ../build/lib/darktable/plugins/introspection_highlights.c:310 #: ../build/lib/darktable/plugins/introspection_vignette.c:264 #: ../src/develop/blend_gui.c:153 ../src/develop/blend_gui.c:182 -#: ../src/develop/blend_gui.c:3410 ../src/gui/accelerators.c:130 -#: ../src/gui/accelerators.c:140 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/imageio/format/j2k.c:669 -#: ../src/libs/live_view.c:361 ../src/libs/masks.c:113 +#: ../src/develop/blend_gui.c:3429 ../src/gui/accelerators.c:148 +#: ../src/gui/accelerators.c:158 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/imageio/format/j2k.c:686 +#: ../src/libs/live_view.c:361 msgid "off" msgstr "" @@ -2092,7 +2202,7 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:146 #: ../build/lib/darktable/plugins/introspection_basecurve.c:239 -#: ../src/libs/metadata_view.c:142 +#: ../src/libs/metadata_view.c:144 msgid "exposure bias" msgstr "" @@ -2112,16 +2222,16 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:262 #: ../build/lib/darktable/plugins/introspection_basicadj.c:249 #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:153 -#: ../build/lib/darktable/plugins/introspection_lens.cc:444 +#: ../build/lib/darktable/plugins/introspection_lens.cc:533 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:251 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:153 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:270 -#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2193 -#: ../src/iop/channelmixerrgb.c:4667 ../src/iop/clipping.c:1900 -#: ../src/iop/clipping.c:2093 ../src/iop/clipping.c:2108 -#: ../src/iop/retouch.c:463 ../src/libs/collect.c:1907 -#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1023 -#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:132 +#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2214 +#: ../src/iop/channelmixerrgb.c:4735 ../src/iop/clipping.c:1953 +#: ../src/iop/clipping.c:2146 ../src/iop/clipping.c:2161 +#: ../src/iop/retouch.c:507 ../src/libs/collect.c:2043 +#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1101 +#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:109 #: ../src/libs/live_view.c:311 ../src/libs/print_settings.c:2835 msgid "none" msgstr "" @@ -2139,7 +2249,7 @@ #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:252 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:154 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:271 -#: ../src/develop/blend_gui.c:2363 ../src/develop/blend_gui.c:2397 +#: ../src/develop/blend_gui.c:2379 ../src/develop/blend_gui.c:2413 msgid "luminance" msgstr "" @@ -2249,7 +2359,7 @@ #: ../build/lib/darktable/plugins/introspection_graduatednd.c:144 #: ../build/lib/darktable/plugins/introspection_watermark.c:136 #: ../build/lib/darktable/plugins/introspection_watermark.c:265 -#: ../src/iop/ashift.c:6112 ../src/libs/masks.c:108 +#: ../src/iop/ashift.c:6059 ../src/libs/masks.c:109 msgid "rotation" msgstr "" @@ -2260,7 +2370,7 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:125 #: ../build/lib/darktable/plugins/introspection_blurs.c:202 -#: ../src/libs/masks.c:109 +#: ../src/libs/masks.c:110 msgid "curvature" msgstr "" @@ -2268,13 +2378,13 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:206 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:81 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:148 -#: ../src/iop/colorbalancergb.c:1968 +#: ../src/iop/colorbalancergb.c:2039 msgid "offset" msgstr "" #: ../build/lib/darktable/plugins/introspection_blurs.c:220 -#: ../src/common/collection.c:712 ../src/gui/preferences.c:828 -#: ../src/gui/presets.c:660 ../src/libs/metadata_view.c:139 +#: ../src/common/collection.c:625 ../src/gui/preferences.c:826 +#: ../src/gui/presets.c:663 ../src/libs/metadata_view.c:141 msgid "lens" msgstr "" @@ -2290,63 +2400,90 @@ msgid "gaussian" msgstr "" -#: ../build/lib/darktable/plugins/introspection_borders.c:112 -#: ../build/lib/darktable/plugins/introspection_borders.c:253 -#: ../src/common/collection.c:722 ../src/libs/filtering.c:59 +#: ../build/lib/darktable/plugins/introspection_borders.c:122 +#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../src/common/collection.c:635 ../src/libs/filtering.c:59 msgid "aspect ratio" msgstr "" #. // portrait / landscape -#: ../build/lib/darktable/plugins/introspection_borders.c:130 -#: ../build/lib/darktable/plugins/introspection_borders.c:265 +#: ../build/lib/darktable/plugins/introspection_borders.c:140 +#: ../build/lib/darktable/plugins/introspection_borders.c:281 #: ../src/iop/flip.c:75 ../src/libs/print_settings.c:2517 msgid "orientation" msgstr "" -#: ../build/lib/darktable/plugins/introspection_borders.c:136 -#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../build/lib/darktable/plugins/introspection_borders.c:146 +#: ../build/lib/darktable/plugins/introspection_borders.c:285 msgid "border size" msgstr "" -#: ../build/lib/darktable/plugins/introspection_borders.c:142 -#: ../build/lib/darktable/plugins/introspection_borders.c:273 +#: ../build/lib/darktable/plugins/introspection_borders.c:152 +#: ../build/lib/darktable/plugins/introspection_borders.c:289 msgid "horizontal offset" msgstr "" -#: ../build/lib/darktable/plugins/introspection_borders.c:160 -#: ../build/lib/darktable/plugins/introspection_borders.c:285 +#: ../build/lib/darktable/plugins/introspection_borders.c:170 +#: ../build/lib/darktable/plugins/introspection_borders.c:301 msgid "vertical offset" msgstr "" -#: ../build/lib/darktable/plugins/introspection_borders.c:178 -#: ../build/lib/darktable/plugins/introspection_borders.c:297 +#: ../build/lib/darktable/plugins/introspection_borders.c:188 +#: ../build/lib/darktable/plugins/introspection_borders.c:313 msgid "frame line size" msgstr "" -#: ../build/lib/darktable/plugins/introspection_borders.c:184 -#: ../build/lib/darktable/plugins/introspection_borders.c:301 +#: ../build/lib/darktable/plugins/introspection_borders.c:194 +#: ../build/lib/darktable/plugins/introspection_borders.c:317 msgid "frame line offset" msgstr "" -#: ../build/lib/darktable/plugins/introspection_borders.c:327 -#: ../src/gui/preferences.c:849 ../src/iop/ashift.c:6291 -#: ../src/iop/basicadj.c:632 ../src/iop/flip.c:472 ../src/iop/flip.c:474 -#: ../src/iop/levels.c:641 ../src/iop/rgblevels.c:1050 +#: ../build/lib/darktable/plugins/introspection_borders.c:218 +#: ../build/lib/darktable/plugins/introspection_borders.c:333 +msgid "basis" +msgstr "" + +#: ../build/lib/darktable/plugins/introspection_borders.c:347 +#: ../build/lib/darktable/plugins/introspection_borders.c:353 +#: ../src/gui/preferences.c:847 ../src/imageio/format/jpeg.c:604 +#: ../src/iop/ashift.c:6238 ../src/iop/basicadj.c:662 ../src/iop/flip.c:470 +#: ../src/iop/flip.c:472 ../src/iop/levels.c:657 ../src/iop/rgblevels.c:1105 msgid "auto" msgstr "" -#: ../build/lib/darktable/plugins/introspection_borders.c:328 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:309 +#: ../build/lib/darktable/plugins/introspection_borders.c:348 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:315 #: ../src/libs/filters/ratio.c:122 ../src/libs/print_settings.c:2519 msgid "portrait" msgstr "" -#: ../build/lib/darktable/plugins/introspection_borders.c:329 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:305 +#: ../build/lib/darktable/plugins/introspection_borders.c:349 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:311 #: ../src/libs/filters/ratio.c:124 ../src/libs/print_settings.c:2519 msgid "landscape" msgstr "" +#: ../build/lib/darktable/plugins/introspection_borders.c:354 +#: ../src/iop/relight.c:275 ../src/libs/export.c:1223 +#: ../src/libs/metadata_view.c:151 ../src/libs/print_settings.c:2537 +msgid "width" +msgstr "" + +#: ../build/lib/darktable/plugins/introspection_borders.c:355 +#: ../build/lib/darktable/plugins/introspection_watermark.c:326 +#: ../src/libs/export.c:1229 ../src/libs/metadata_view.c:152 +#: ../src/libs/print_settings.c:2541 +msgid "height" +msgstr "" + +#: ../build/lib/darktable/plugins/introspection_borders.c:356 +msgid "shorter" +msgstr "" + +#: ../build/lib/darktable/plugins/introspection_borders.c:357 +msgid "longer" +msgstr "" + #: ../build/lib/darktable/plugins/introspection_cacorrect.c:42 #: ../build/lib/darktable/plugins/introspection_cacorrect.c:91 msgid "avoid colorshift" @@ -2393,9 +2530,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:67 #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:132 -#: ../src/iop/atrous.c:1522 ../src/iop/bilateral.cc:350 ../src/iop/clahe.c:335 -#: ../src/iop/dither.c:760 ../src/iop/lowpass.c:584 ../src/iop/shadhi.c:675 -#: ../src/iop/sharpen.c:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:340 +#: ../build/lib/darktable/plugins/introspection_lens.cc:501 +#: ../src/iop/atrous.c:1636 ../src/iop/bilateral.cc:352 ../src/iop/clahe.c:337 +#: ../src/iop/dither.c:762 ../src/iop/lowpass.c:597 ../src/iop/shadhi.c:710 +#: ../src/iop/sharpen.c:435 msgid "radius" msgstr "" @@ -2403,9 +2542,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:136 #: ../build/lib/darktable/plugins/introspection_highlights.c:137 #: ../build/lib/darktable/plugins/introspection_highlights.c:240 -#: ../src/iop/bloom.c:376 ../src/iop/denoiseprofile.c:3818 -#: ../src/iop/grain.c:584 ../src/iop/hazeremoval.c:201 -#: ../src/iop/hotpixels.c:388 ../src/iop/nlmeans.c:460 ../src/iop/velvia.c:279 +#: ../build/lib/darktable/plugins/introspection_lens.cc:334 +#: ../build/lib/darktable/plugins/introspection_lens.cc:497 +#: ../src/iop/bloom.c:372 ../src/iop/denoiseprofile.c:3822 +#: ../src/iop/grain.c:602 ../src/iop/hazeremoval.c:203 +#: ../src/iop/hotpixels.c:467 ../src/iop/nlmeans.c:463 ../src/iop/velvia.c:288 msgid "strength" msgstr "" @@ -2420,41 +2561,41 @@ msgstr "" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:158 -#: ../src/common/collection.c:1507 ../src/common/color_vocabulary.c:232 -#: ../src/common/colorlabels.c:334 ../src/develop/blend_gui.c:2330 -#: ../src/develop/blend_gui.c:2378 ../src/develop/lightroom.c:834 -#: ../src/gui/gtk.c:3137 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:354 -#: ../src/iop/channelmixer.c:618 ../src/iop/channelmixer.c:628 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/colorzones.c:2263 -#: ../src/iop/temperature.c:1935 ../src/iop/temperature.c:2129 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:260 -#: ../src/libs/histogram.c:2397 +#: ../src/common/collection.c:1374 ../src/common/color_vocabulary.c:232 +#: ../src/common/colorlabels.c:333 ../src/develop/blend_gui.c:2346 +#: ../src/develop/blend_gui.c:2394 ../src/develop/lightroom.c:887 +#: ../src/gui/gtk.c:3183 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:356 +#: ../src/iop/channelmixer.c:637 ../src/iop/channelmixer.c:647 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/colorzones.c:2499 +#: ../src/iop/temperature.c:1912 ../src/iop/temperature.c:2094 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:260 +#: ../src/libs/histogram.c:2724 msgid "red" msgstr "" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:159 -#: ../src/common/collection.c:1511 ../src/common/color_vocabulary.c:277 -#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2336 -#: ../src/develop/blend_gui.c:2384 ../src/develop/lightroom.c:838 -#: ../src/gui/gtk.c:3138 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:359 -#: ../src/iop/channelmixer.c:619 ../src/iop/channelmixer.c:634 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/colorzones.c:2266 -#: ../src/iop/temperature.c:1919 ../src/iop/temperature.c:1937 -#: ../src/iop/temperature.c:2130 ../src/libs/collect.c:1791 -#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2389 +#: ../src/common/collection.c:1378 ../src/common/color_vocabulary.c:277 +#: ../src/common/colorlabels.c:335 ../src/develop/blend_gui.c:2352 +#: ../src/develop/blend_gui.c:2400 ../src/develop/lightroom.c:891 +#: ../src/gui/gtk.c:3184 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:361 +#: ../src/iop/channelmixer.c:638 ../src/iop/channelmixer.c:653 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/colorzones.c:2502 +#: ../src/iop/temperature.c:1896 ../src/iop/temperature.c:1914 +#: ../src/iop/temperature.c:2095 ../src/libs/collect.c:1916 +#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2715 msgid "green" msgstr "" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:160 -#: ../src/common/collection.c:1513 ../src/common/color_vocabulary.c:324 -#: ../src/common/colorlabels.c:337 ../src/develop/blend_gui.c:2342 -#: ../src/develop/blend_gui.c:2390 ../src/develop/lightroom.c:840 -#: ../src/gui/gtk.c:3139 ../src/iop/bilateral.cc:364 -#: ../src/iop/channelmixer.c:620 ../src/iop/channelmixer.c:640 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/colorzones.c:2268 -#: ../src/iop/temperature.c:1939 ../src/iop/temperature.c:2131 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:263 -#: ../src/libs/histogram.c:2381 +#: ../src/common/collection.c:1380 ../src/common/color_vocabulary.c:324 +#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2358 +#: ../src/develop/blend_gui.c:2406 ../src/develop/lightroom.c:893 +#: ../src/gui/gtk.c:3185 ../src/iop/bilateral.cc:366 +#: ../src/iop/channelmixer.c:639 ../src/iop/channelmixer.c:659 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/colorzones.c:2504 +#: ../src/iop/temperature.c:1916 ../src/iop/temperature.c:2096 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:263 +#: ../src/libs/histogram.c:2706 msgid "blue" msgstr "" @@ -2697,7 +2838,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:303 #: ../build/lib/darktable/plugins/introspection_crop.c:61 #: ../build/lib/darktable/plugins/introspection_crop.c:134 -#: ../src/gui/gtk.c:1141 ../src/iop/atrous.c:1518 +#: ../src/gui/gtk.c:1234 ../src/iop/atrous.c:1632 msgid "left" msgstr "" @@ -2705,7 +2846,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:307 #: ../build/lib/darktable/plugins/introspection_crop.c:67 #: ../build/lib/darktable/plugins/introspection_crop.c:138 -#: ../src/gui/accelerators.c:113 ../src/gui/gtk.c:1155 +#: ../src/gui/accelerators.c:131 ../src/gui/gtk.c:1240 msgid "top" msgstr "" @@ -2713,7 +2854,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:311 #: ../build/lib/darktable/plugins/introspection_crop.c:73 #: ../build/lib/darktable/plugins/introspection_crop.c:142 -#: ../src/gui/gtk.c:1148 ../src/iop/atrous.c:1517 +#: ../src/gui/gtk.c:1237 ../src/iop/atrous.c:1631 msgid "right" msgstr "" @@ -2721,7 +2862,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:315 #: ../build/lib/darktable/plugins/introspection_crop.c:79 #: ../build/lib/darktable/plugins/introspection_crop.c:146 -#: ../src/gui/accelerators.c:114 ../src/gui/gtk.c:1162 +#: ../src/gui/accelerators.c:132 ../src/gui/gtk.c:1243 msgid "bottom" msgstr "" @@ -2760,10 +2901,11 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:477 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:489 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:501 -#: ../src/develop/blend_gui.c:2356 ../src/develop/blend_gui.c:2404 -#: ../src/iop/atrous.c:1667 ../src/iop/channelmixerrgb.c:4457 -#: ../src/iop/channelmixerrgb.c:4573 ../src/iop/colorbalancergb.c:1895 -#: ../src/iop/colorzones.c:2402 ../src/iop/nlmeans.c:468 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 +#: ../src/develop/blend_gui.c:2372 ../src/develop/blend_gui.c:2420 +#: ../src/iop/atrous.c:1801 ../src/iop/channelmixerrgb.c:4525 +#: ../src/iop/channelmixerrgb.c:4641 ../src/iop/colorbalancergb.c:1966 +#: ../src/iop/colorzones.c:2645 ../src/iop/nlmeans.c:471 msgid "chroma" msgstr "" @@ -2783,11 +2925,11 @@ #: ../build/lib/darktable/plugins/introspection_splittoning.c:73 #: ../build/lib/darktable/plugins/introspection_splittoning.c:134 #: ../build/lib/darktable/plugins/introspection_splittoning.c:142 -#: ../src/develop/blend_gui.c:2315 ../src/develop/blend_gui.c:2349 -#: ../src/develop/blend_gui.c:2411 ../src/iop/channelmixer.c:615 -#: ../src/iop/channelmixerrgb.c:4450 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/colorbalance.c:2042 ../src/iop/colorize.c:330 -#: ../src/iop/colorreconstruction.c:1240 ../src/iop/colorzones.c:2403 +#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2365 +#: ../src/develop/blend_gui.c:2427 ../src/iop/channelmixer.c:634 +#: ../src/iop/channelmixerrgb.c:4518 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/colorbalance.c:2017 ../src/iop/colorize.c:343 +#: ../src/iop/colorreconstruction.c:1249 ../src/iop/colorzones.c:2646 msgid "hue" msgstr "" @@ -2814,9 +2956,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:569 #: ../build/lib/darktable/plugins/introspection_toneequal.c:156 #: ../build/lib/darktable/plugins/introspection_toneequal.c:297 -#: ../src/iop/bilat.c:469 ../src/iop/colorbalance.c:2099 -#: ../src/iop/negadoctor.c:915 ../src/iop/shadhi.c:671 -#: ../src/iop/splittoning.c:507 +#: ../src/iop/bilat.c:479 ../src/iop/colorbalance.c:2074 +#: ../src/iop/negadoctor.c:934 ../src/iop/shadhi.c:706 +#: ../src/iop/splittoning.c:503 msgid "shadows" msgstr "" @@ -2828,9 +2970,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:561 #: ../build/lib/darktable/plugins/introspection_toneequal.c:180 #: ../build/lib/darktable/plugins/introspection_toneequal.c:313 -#: ../src/iop/bilat.c:463 ../src/iop/colorbalance.c:2101 -#: ../src/iop/monochrome.c:561 ../src/iop/shadhi.c:672 -#: ../src/iop/splittoning.c:514 +#: ../src/iop/bilat.c:473 ../src/iop/colorbalance.c:2076 +#: ../src/iop/monochrome.c:583 ../src/iop/shadhi.c:707 +#: ../src/iop/splittoning.c:510 msgid "highlights" msgstr "" @@ -2847,13 +2989,13 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:565 #: ../build/lib/darktable/plugins/introspection_toneequal.c:168 #: ../build/lib/darktable/plugins/introspection_toneequal.c:305 -#: ../src/iop/colorbalance.c:2100 +#: ../src/iop/colorbalance.c:2075 msgid "mid-tones" msgstr "" #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:340 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:537 -#: ../src/iop/filmic.c:1576 +#: ../src/iop/filmic.c:1601 msgid "global saturation" msgstr "" @@ -2884,12 +3026,12 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:412 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:585 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:64 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:137 -#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:607 ../src/iop/bilat.c:458 -#: ../src/iop/colisa.c:304 ../src/iop/colorbalance.c:1947 -#: ../src/iop/colorbalance.c:1953 ../src/iop/filmic.c:1548 -#: ../src/iop/filmicrgb.c:4551 ../src/iop/lowpass.c:586 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:116 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:237 +#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:637 ../src/iop/bilat.c:468 +#: ../src/iop/colisa.c:298 ../src/iop/colorbalance.c:1922 +#: ../src/iop/colorbalance.c:1928 ../src/iop/filmic.c:1573 +#: ../src/iop/filmicrgb.c:4615 ../src/iop/lowpass.c:599 msgid "contrast" msgstr "" @@ -2916,33 +3058,35 @@ msgid "blue-yellow contrast" msgstr "" -#: ../build/lib/darktable/plugins/introspection_colorin.c:148 -#: ../build/lib/darktable/plugins/introspection_colorin.c:231 +#: ../build/lib/darktable/plugins/introspection_colorin.c:150 +#: ../build/lib/darktable/plugins/introspection_colorin.c:233 msgid "gamut clipping" msgstr "" -#: ../build/lib/darktable/plugins/introspection_colorin.c:301 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:201 -#: ../src/common/colorspaces.c:1251 ../src/common/colorspaces.c:1484 +#: ../build/lib/darktable/plugins/introspection_colorin.c:304 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:312 +#: ../src/common/colorspaces.c:1410 ../src/common/colorspaces.c:1700 #: ../src/libs/print_settings.c:1356 msgid "sRGB" msgstr "" -#: ../build/lib/darktable/plugins/introspection_colorin.c:302 -#: ../src/common/colorspaces.c:1260 ../src/common/colorspaces.c:1486 +#: ../build/lib/darktable/plugins/introspection_colorin.c:305 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:311 +#: ../src/common/colorspaces.c:1421 ../src/common/colorspaces.c:1702 #: ../src/libs/print_settings.c:1363 msgid "Adobe RGB (compatible)" msgstr "" -#: ../build/lib/darktable/plugins/introspection_colorin.c:303 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 -#: ../src/common/colorspaces.c:1265 ../src/common/colorspaces.c:1488 +#: ../build/lib/darktable/plugins/introspection_colorin.c:306 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 +#: ../src/common/colorspaces.c:1428 ../src/common/colorspaces.c:1704 msgid "linear Rec709 RGB" msgstr "" -#: ../build/lib/darktable/plugins/introspection_colorin.c:304 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 -#: ../src/common/colorspaces.c:1274 ../src/common/colorspaces.c:1490 +#: ../build/lib/darktable/plugins/introspection_colorin.c:307 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:206 +#: ../src/common/colorspaces.c:1442 ../src/common/colorspaces.c:1706 msgid "linear Rec2020 RGB" msgstr "" @@ -2970,7 +3114,7 @@ #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:127 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:45 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:92 -#: ../src/iop/shadhi.c:686 +#: ../src/iop/shadhi.c:721 msgid "spatial extent" msgstr "" @@ -2980,7 +3124,7 @@ msgstr "" #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:154 -#: ../src/iop/channelmixerrgb.c:4669 +#: ../src/iop/channelmixerrgb.c:4737 msgid "saturated colors" msgstr "" @@ -2994,7 +3138,7 @@ #: ../build/lib/darktable/plugins/introspection_colorzones.c:233 #: ../build/lib/darktable/plugins/introspection_soften.c:66 #: ../build/lib/darktable/plugins/introspection_soften.c:121 -#: ../src/iop/atrous.c:1689 +#: ../src/iop/atrous.c:1835 msgid "mix" msgstr "" @@ -3004,33 +3148,17 @@ msgstr "" #: ../build/lib/darktable/plugins/introspection_colorzones.c:255 -#: ../src/develop/blend_gui.c:2294 ../src/iop/channelmixer.c:617 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/colorchecker.c:1448 -#: ../src/iop/colorize.c:349 ../src/iop/colorzones.c:2401 -#: ../src/iop/exposure.c:1239 +#: ../src/develop/blend_gui.c:2310 ../src/iop/channelmixer.c:636 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/colorchecker.c:1453 +#: ../src/iop/colorize.c:362 ../src/iop/colorzones.c:2644 +#: ../src/iop/exposure.c:1257 msgid "lightness" msgstr "" -#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 -#: ../src/develop/blend_gui.c:2310 ../src/iop/basicadj.c:624 -#: ../src/iop/channelmixer.c:616 ../src/iop/colisa.c:306 -#: ../src/iop/colorbalance.c:2059 ../src/iop/colorbalancergb.c:1919 -#: ../src/iop/colorchecker.c:1483 ../src/iop/colorcontrast.c:90 -#: ../src/iop/colorcorrection.c:275 ../src/iop/colorize.c:343 -#: ../src/iop/lowpass.c:588 ../src/iop/soften.c:373 ../src/iop/velvia.c:84 -#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:971 -msgid "saturation" -msgstr "" - #: ../build/lib/darktable/plugins/introspection_colorzones.c:267 -#: ../src/iop/atrous.c:1309 ../src/iop/atrous.c:1313 -#: ../src/iop/denoiseprofile.c:3527 ../src/iop/rawdenoise.c:755 +#: ../src/iop/atrous.c:1410 ../src/iop/atrous.c:1414 +#: ../src/iop/denoiseprofile.c:3531 ../src/iop/rawdenoise.c:771 +#: ../src/iop/sigmoid.c:292 msgid "smooth" msgstr "" @@ -3047,9 +3175,9 @@ #: ../build/lib/darktable/plugins/introspection_defringe.c:106 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:230 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:435 -#: ../src/iop/atrous.c:1572 ../src/iop/bloom.c:372 -#: ../src/iop/colorreconstruction.c:1236 ../src/iop/hotpixels.c:384 -#: ../src/iop/sharpen.c:449 +#: ../src/iop/atrous.c:1695 ../src/iop/bloom.c:368 +#: ../src/iop/colorreconstruction.c:1245 ../src/iop/hotpixels.c:463 +#: ../src/iop/sharpen.c:444 msgid "threshold" msgstr "" @@ -3184,7 +3312,7 @@ #. history #: ../build/lib/darktable/plugins/introspection_demosaic.c:232 -#: ../src/common/collection.c:1526 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1394 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "basic" msgstr "" @@ -3257,12 +3385,9 @@ msgid "upgrade profiled transform" msgstr "" -#. -#. * Color mode combo box -#. #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:257 #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:388 -#: ../src/imageio/format/avif.c:786 ../src/libs/colorpicker.c:584 +#: ../src/libs/colorpicker.c:659 msgid "color mode" msgstr "" @@ -3287,7 +3412,7 @@ msgstr "" #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:410 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:266 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:292 msgid "RGB" msgstr "" @@ -3298,7 +3423,7 @@ #. two more sharpness (standard & strong) #: ../build/lib/darktable/plugins/introspection_diffuse.c:123 #: ../build/lib/darktable/plugins/introspection_diffuse.c:248 -#: ../src/iop/atrous.c:1564 ../src/iop/diffuse.c:630 ../src/iop/highpass.c:381 +#: ../src/iop/atrous.c:1685 ../src/iop/diffuse.c:657 ../src/iop/highpass.c:376 msgid "sharpness" msgstr "" @@ -3462,7 +3587,7 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:212 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:423 -#: ../src/iop/filmic.c:1489 +#: ../src/iop/filmic.c:1514 msgid "middle gray luminance" msgstr "" @@ -3470,13 +3595,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:427 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:97 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:166 -#: ../src/iop/filmic.c:1514 +#: ../src/iop/filmic.c:1539 msgid "black relative exposure" msgstr "" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:224 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:431 -#: ../src/iop/filmic.c:1501 +#: ../src/iop/filmic.c:1526 msgid "white relative exposure" msgstr "" @@ -3507,19 +3632,19 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:266 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:459 -#: ../src/iop/filmic.c:1646 +#: ../src/iop/filmic.c:1671 msgid "target middle gray" msgstr "" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:272 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:463 -#: ../src/iop/filmic.c:1637 +#: ../src/iop/filmic.c:1662 msgid "target black luminance" msgstr "" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:278 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:467 -#: ../src/iop/filmic.c:1655 +#: ../src/iop/filmic.c:1680 msgid "target white luminance" msgstr "" @@ -3527,13 +3652,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:471 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:69 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:140 -#: ../src/libs/masks.c:106 +#: ../src/libs/masks.c:107 msgid "hardness" msgstr "" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:302 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:483 -#: ../src/iop/filmic.c:1586 ../src/iop/filmicrgb.c:4729 +#: ../src/iop/filmic.c:1611 ../src/iop/filmicrgb.c:4793 msgid "extreme luminance saturation" msgstr "" @@ -3604,11 +3729,11 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:549 #: ../build/lib/darktable/plugins/introspection_toneequal.c:371 -#: ../src/common/database.c:2785 ../src/common/variables.c:705 -#: ../src/develop/imageop_gui.c:209 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 +#: ../src/common/variables.c:714 ../src/develop/imageop_gui.c:209 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 msgid "no" msgstr "" @@ -3710,9 +3835,25 @@ msgid "density" msgstr "" +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 +#: ../src/develop/blend_gui.c:2326 ../src/iop/basicadj.c:654 +#: ../src/iop/channelmixer.c:635 ../src/iop/colisa.c:300 +#: ../src/iop/colorbalance.c:2034 ../src/iop/colorbalancergb.c:1990 +#: ../src/iop/colorchecker.c:1488 ../src/iop/colorcontrast.c:82 +#: ../src/iop/colorcorrection.c:268 ../src/iop/colorize.c:356 +#: ../src/iop/lowpass.c:601 ../src/iop/soften.c:368 ../src/iop/velvia.c:75 +#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:1058 +msgid "saturation" +msgstr "" + #: ../build/lib/darktable/plugins/introspection_grain.c:58 #: ../build/lib/darktable/plugins/introspection_grain.c:117 -#: ../src/iop/bilat.c:450 +#: ../src/iop/bilat.c:460 msgid "coarseness" msgstr "" @@ -3725,7 +3866,7 @@ #: ../build/lib/darktable/plugins/introspection_highlights.c:143 #: ../build/lib/darktable/plugins/introspection_highlights.c:244 -#: ../src/views/darkroom.c:2406 +#: ../src/views/darkroom.c:2245 msgid "clipping threshold" msgstr "" @@ -3861,168 +4002,172 @@ msgid "detect by 3 neighbors" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:162 -#: ../build/lib/darktable/plugins/introspection_lens.cc:337 +#: ../build/lib/darktable/plugins/introspection_lens.cc:190 +#: ../build/lib/darktable/plugins/introspection_lens.cc:401 msgid "correction method" msgstr "" #. Page CORRECTIONS -#: ../build/lib/darktable/plugins/introspection_lens.cc:168 -#: ../build/lib/darktable/plugins/introspection_lens.cc:341 -#: ../src/iop/negadoctor.c:900 +#: ../build/lib/darktable/plugins/introspection_lens.cc:196 +#: ../build/lib/darktable/plugins/introspection_lens.cc:405 +#: ../src/iop/negadoctor.c:919 msgid "corrections" msgstr "" #. mode choice -#. Add check to control whether the style is to replace or append the current module -#: ../build/lib/darktable/plugins/introspection_lens.cc:174 -#: ../build/lib/darktable/plugins/introspection_lens.cc:345 +#: ../build/lib/darktable/plugins/introspection_lens.cc:202 +#: ../build/lib/darktable/plugins/introspection_lens.cc:409 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:128 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:219 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:51 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:118 -#: ../src/iop/bilat.c:428 ../src/iop/colorbalance.c:1909 -#: ../src/iop/denoiseprofile.c:3806 ../src/iop/exposure.c:1157 -#: ../src/iop/levels.c:684 ../src/iop/profile_gamma.c:668 -#: ../src/libs/copy_history.c:399 ../src/libs/export.c:1262 -#: ../src/libs/image.c:597 ../src/libs/print_settings.c:2875 -#: ../src/libs/styles.c:846 ../src/views/darkroom.c:2387 +#: ../src/develop/blend_gui.c:3546 ../src/iop/bilat.c:438 +#: ../src/iop/colorbalance.c:1884 ../src/iop/denoiseprofile.c:3810 +#: ../src/iop/exposure.c:1175 ../src/iop/levels.c:700 +#: ../src/iop/profile_gamma.c:682 ../src/libs/copy_history.c:399 +#: ../src/libs/export.c:1376 ../src/libs/image.c:666 +#: ../src/libs/print_settings.c:2875 ../src/libs/styles.c:850 +#: ../src/views/darkroom.c:2226 msgid "mode" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:210 -#: ../build/lib/darktable/plugins/introspection_lens.cc:369 -#: ../src/iop/lens.cc:3820 +#: ../build/lib/darktable/plugins/introspection_lens.cc:238 +#: ../build/lib/darktable/plugins/introspection_lens.cc:433 +#: ../src/iop/lens.cc:4474 msgid "target geometry" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:240 -#: ../build/lib/darktable/plugins/introspection_lens.cc:389 +#: ../build/lib/darktable/plugins/introspection_lens.cc:268 +#: ../build/lib/darktable/plugins/introspection_lens.cc:453 msgid "TCA overwrite" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:246 -#: ../build/lib/darktable/plugins/introspection_lens.cc:393 +#: ../build/lib/darktable/plugins/introspection_lens.cc:274 +#: ../build/lib/darktable/plugins/introspection_lens.cc:298 +#: ../build/lib/darktable/plugins/introspection_lens.cc:457 +#: ../build/lib/darktable/plugins/introspection_lens.cc:473 msgid "TCA red" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:252 -#: ../build/lib/darktable/plugins/introspection_lens.cc:397 +#: ../build/lib/darktable/plugins/introspection_lens.cc:280 +#: ../build/lib/darktable/plugins/introspection_lens.cc:304 +#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:477 msgid "TCA blue" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:258 -#: ../build/lib/darktable/plugins/introspection_lens.cc:401 -msgid "distortion fine-tune" -msgstr "" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:264 -#: ../build/lib/darktable/plugins/introspection_lens.cc:405 -msgid "vignetting fine-tune" -msgstr "" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:270 -#: ../build/lib/darktable/plugins/introspection_lens.cc:409 -msgid "TCA red fine-tune" +#: ../build/lib/darktable/plugins/introspection_lens.cc:286 +#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +msgid "distortion" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:276 -#: ../build/lib/darktable/plugins/introspection_lens.cc:413 -msgid "TCA blue fine-tune" +#: ../build/lib/darktable/plugins/introspection_lens.cc:292 +#: ../build/lib/darktable/plugins/introspection_lens.cc:469 +#: ../src/iop/vignette.c:114 +msgid "vignetting" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:282 -#: ../build/lib/darktable/plugins/introspection_lens.cc:417 +#: ../build/lib/darktable/plugins/introspection_lens.cc:310 +#: ../build/lib/darktable/plugins/introspection_lens.cc:481 msgid "scale fine-tune" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:294 -#: ../build/lib/darktable/plugins/introspection_lens.cc:425 +#: ../build/lib/darktable/plugins/introspection_lens.cc:322 +#: ../build/lib/darktable/plugins/introspection_lens.cc:489 msgid "image scale" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:439 +#: ../build/lib/darktable/plugins/introspection_lens.cc:346 +#: ../build/lib/darktable/plugins/introspection_lens.cc:505 +msgid "steepness" +msgstr "" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:527 msgid "embedded metadata" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:528 msgid "Lensfun database" msgstr "" +#: ../build/lib/darktable/plugins/introspection_lens.cc:529 +msgid "only manual vignette" +msgstr "" + #. get nice text for bounds #. Side-border hide/show -#: ../build/lib/darktable/plugins/introspection_lens.cc:445 -#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2367 -#: ../src/gui/accelerators.c:2447 ../src/gui/gtk.c:1204 ../src/gui/gtk.c:3136 -#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3709 -#: ../src/iop/rawdenoise.c:893 ../src/libs/collect.c:3066 -#: ../src/libs/filtering.c:1459 ../src/libs/filters/colors.c:157 +#: ../build/lib/darktable/plugins/introspection_lens.cc:534 +#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2592 +#: ../src/gui/accelerators.c:2674 ../src/gui/gtk.c:1282 ../src/gui/gtk.c:3182 +#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3713 +#: ../src/iop/rawdenoise.c:909 ../src/libs/collect.c:3413 +#: ../src/libs/filtering.c:1521 ../src/libs/filters/colors.c:157 #: ../src/libs/filters/colors.c:265 ../src/libs/filters/rating.c:211 msgid "all" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:446 +#: ../build/lib/darktable/plugins/introspection_lens.cc:535 msgid "distortion & TCA" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:447 +#: ../build/lib/darktable/plugins/introspection_lens.cc:536 msgid "distortion & vignetting" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:448 +#: ../build/lib/darktable/plugins/introspection_lens.cc:537 msgid "TCA & vignetting" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:449 +#: ../build/lib/darktable/plugins/introspection_lens.cc:538 msgid "only distortion" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:450 +#: ../build/lib/darktable/plugins/introspection_lens.cc:539 msgid "only TCA" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:451 +#: ../build/lib/darktable/plugins/introspection_lens.cc:540 msgid "only vignetting" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:455 -#: ../src/libs/modulegroups.c:2318 +#: ../build/lib/darktable/plugins/introspection_lens.cc:544 +#: ../src/libs/modulegroups.c:2302 msgid "correct" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:456 +#: ../build/lib/darktable/plugins/introspection_lens.cc:545 msgid "distort" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:550 msgid "rectilinear" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:462 +#: ../build/lib/darktable/plugins/introspection_lens.cc:551 msgid "fisheye" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:463 +#: ../build/lib/darktable/plugins/introspection_lens.cc:552 msgid "panoramic" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:464 +#: ../build/lib/darktable/plugins/introspection_lens.cc:553 msgid "equirectangular" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +#: ../build/lib/darktable/plugins/introspection_lens.cc:554 msgid "orthographic" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:466 +#: ../build/lib/darktable/plugins/introspection_lens.cc:555 msgid "stereographic" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:467 +#: ../build/lib/darktable/plugins/introspection_lens.cc:556 msgid "equisolid angle" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lens.cc:468 +#: ../build/lib/darktable/plugins/introspection_lens.cc:557 msgid "Thoby fisheye" msgstr "" @@ -4032,8 +4177,8 @@ #. move left/right/up/down #: ../build/lib/darktable/plugins/introspection_liquify.c:429 -#: ../src/views/darkroom.c:2282 ../src/views/darkroom.c:2676 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:765 +#: ../src/views/darkroom.c:2121 ../src/views/darkroom.c:2522 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:765 #: ../src/views/lighttable.c:774 ../src/views/lighttable.c:1246 #: ../src/views/lighttable.c:1250 ../src/views/lighttable.c:1254 #: ../src/views/lighttable.c:1258 ../src/views/lighttable.c:1262 @@ -4045,8 +4190,8 @@ msgstr "" #: ../build/lib/darktable/plugins/introspection_liquify.c:431 -#: ../src/iop/basecurve.c:2186 ../src/iop/rgbcurve.c:1387 -#: ../src/iop/tonecurve.c:1149 +#: ../src/iop/basecurve.c:2207 ../src/iop/rgbcurve.c:1387 +#: ../src/iop/tonecurve.c:1171 msgid "curve" msgstr "" @@ -4082,28 +4227,33 @@ msgid "bilateral filter" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:76 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:163 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:77 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:164 msgid "application color space" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 msgid "Adobe RGB" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 msgid "gamma Rec709 RGB" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:209 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:207 +#: ../src/common/colorspaces.c:1486 ../src/common/colorspaces.c:1740 +msgid "linear ProPhoto RGB" +msgstr "" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 msgid "tetrahedral" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:210 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:212 msgid "trilinear" msgstr "" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:213 msgid "pyramid" msgstr "" @@ -4124,7 +4274,7 @@ #: ../build/lib/darktable/plugins/introspection_negadoctor.c:144 #: ../build/lib/darktable/plugins/introspection_negadoctor.c:239 -#: ../src/iop/negadoctor.c:992 +#: ../src/iop/negadoctor.c:1011 msgid "paper grade (gamma)" msgstr "" @@ -4139,15 +4289,57 @@ msgstr "" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:261 -#: ../src/iop/negadoctor.c:417 +#: ../src/iop/negadoctor.c:431 msgid "black and white film" msgstr "" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:262 -#: ../src/iop/negadoctor.c:402 +#: ../src/iop/negadoctor.c:416 msgid "color film" msgstr "" +#: ../build/lib/darktable/plugins/introspection_primaries.c:75 +#: ../build/lib/darktable/plugins/introspection_primaries.c:160 +#: ../src/iop/primaries.c:406 +msgid "tint hue" +msgstr "" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:81 +#: ../build/lib/darktable/plugins/introspection_primaries.c:164 +#: ../src/iop/primaries.c:413 +msgid "tint purity" +msgstr "" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:87 +#: ../build/lib/darktable/plugins/introspection_primaries.c:168 +msgid "red hue" +msgstr "" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:93 +#: ../build/lib/darktable/plugins/introspection_primaries.c:172 +msgid "red purity" +msgstr "" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:99 +#: ../build/lib/darktable/plugins/introspection_primaries.c:176 +msgid "green hue" +msgstr "" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:105 +#: ../build/lib/darktable/plugins/introspection_primaries.c:180 +msgid "green purity" +msgstr "" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:111 +#: ../build/lib/darktable/plugins/introspection_primaries.c:184 +msgid "blue hue" +msgstr "" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:117 +#: ../build/lib/darktable/plugins/introspection_primaries.c:188 +msgid "blue purity" +msgstr "" + #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:85 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:158 msgid "dynamic range" @@ -4160,7 +4352,7 @@ #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:103 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:170 -#: ../src/iop/filmic.c:1526 +#: ../src/iop/filmic.c:1551 msgid "safety factor" msgstr "" @@ -4169,7 +4361,7 @@ msgstr "" #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:185 -#: ../src/iop/profile_gamma.c:625 +#: ../src/iop/profile_gamma.c:639 msgid "gamma" msgstr "" @@ -4207,7 +4399,7 @@ #: ../build/lib/darktable/plugins/introspection_rawprepare.c:106 #: ../build/lib/darktable/plugins/introspection_rawprepare.c:179 -#: ../src/iop/rawprepare.c:946 +#: ../src/iop/rawprepare.c:954 msgid "white point" msgstr "" @@ -4223,9 +4415,9 @@ #. exposure #: ../build/lib/darktable/plugins/introspection_relight.c:43 #: ../build/lib/darktable/plugins/introspection_relight.c:98 -#: ../src/common/collection.c:720 ../src/gui/preferences.c:836 -#: ../src/gui/presets.c:684 ../src/iop/basicadj.c:598 ../src/iop/exposure.c:122 -#: ../src/iop/exposure.c:1117 ../src/libs/metadata_view.c:141 +#: ../src/common/collection.c:633 ../src/gui/preferences.c:834 +#: ../src/gui/presets.c:687 ../src/iop/basicadj.c:628 ../src/iop/exposure.c:122 +#: ../src/iop/exposure.c:1135 ../src/libs/metadata_view.c:143 msgid "exposure" msgstr "" @@ -4236,9 +4428,9 @@ #: ../build/lib/darktable/plugins/introspection_retouch.c:285 #: ../build/lib/darktable/plugins/introspection_retouch.c:426 -#: ../src/iop/basicadj.c:620 ../src/iop/channelmixerrgb.c:4617 -#: ../src/iop/colisa.c:305 ../src/iop/lowpass.c:587 ../src/iop/soften.c:377 -#: ../src/iop/vignette.c:970 ../src/libs/history.c:963 +#: ../src/iop/basicadj.c:650 ../src/iop/channelmixerrgb.c:4685 +#: ../src/iop/colisa.c:299 ../src/iop/lowpass.c:600 ../src/iop/soften.c:372 +#: ../src/iop/vignette.c:1057 ../src/libs/history.c:963 msgid "brightness" msgstr "" @@ -4248,7 +4440,7 @@ msgstr "" #: ../build/lib/darktable/plugins/introspection_retouch.c:444 -#: ../src/libs/metadata_view.c:329 +#: ../src/libs/metadata_view.c:333 msgid "unused" msgstr "" @@ -4261,12 +4453,12 @@ msgstr "" #: ../build/lib/darktable/plugins/introspection_retouch.c:447 -#: ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2051 msgid "blur" msgstr "" #: ../build/lib/darktable/plugins/introspection_retouch.c:448 -#: ../src/iop/retouch.c:1865 +#: ../src/iop/retouch.c:2049 msgid "fill" msgstr "" @@ -4279,9 +4471,9 @@ msgstr "" #: ../build/lib/darktable/plugins/introspection_retouch.c:458 -#: ../src/gui/presets.c:59 ../src/iop/watermark.c:1298 -#: ../src/libs/colorpicker.c:291 ../src/libs/image.c:612 -#: ../src/libs/modulegroups.c:2317 +#: ../src/gui/presets.c:61 ../src/iop/watermark.c:1346 +#: ../src/libs/colorpicker.c:320 ../src/libs/image.c:683 +#: ../src/libs/modulegroups.c:2301 msgid "color" msgstr "" @@ -4317,44 +4509,92 @@ msgid "highlights color adjustment" msgstr "" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:70 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:141 -#: ../src/gui/accelerators.c:85 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:122 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:241 +#: ../src/gui/accelerators.c:101 msgid "skew" msgstr "" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:76 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:145 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:128 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:245 msgid "target white" msgstr "" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:82 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:149 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:134 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:249 msgid "target black" msgstr "" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:88 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:153 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:140 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:253 msgid "color processing" msgstr "" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:94 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:157 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:146 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:257 msgid "preserve hue" msgstr "" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:171 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:152 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:261 +msgid "red attenuation" +msgstr "" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:158 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:265 +msgid "red rotation" +msgstr "" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:164 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:269 +msgid "green attenuation" +msgstr "" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:170 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:273 +msgid "green rotation" +msgstr "" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:176 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:277 +msgid "blue attenuation" +msgstr "" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:182 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:281 +msgid "blue rotation" +msgstr "" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:188 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:285 +msgid "recover purity" +msgstr "" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:194 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:289 +msgid "base primaries" +msgstr "" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:303 msgid "per channel" msgstr "" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:172 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:304 msgid "RGB ratio" msgstr "" -#: ../build/lib/darktable/plugins/introspection_temperature.c:66 -#: ../build/lib/darktable/plugins/introspection_temperature.c:121 -#: ../src/iop/temperature.c:1941 -msgid "emerald" +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:308 +#: ../src/common/colorspaces.c:1377 ../src/common/colorspaces.c:1734 +msgid "work profile" +msgstr "" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:309 +msgid "Rec2020" +msgstr "" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:310 +#: ../src/common/colorspaces.c:1750 +msgid "Display P3" msgstr "" #: ../build/lib/darktable/plugins/introspection_tonecurve.c:135 @@ -4477,13 +4717,13 @@ #: ../build/lib/darktable/plugins/introspection_tonemap.cc:39 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:88 -#: ../src/iop/rgbcurve.c:184 ../src/iop/tonecurve.c:539 +#: ../src/iop/rgbcurve.c:186 ../src/iop/tonecurve.c:560 msgid "contrast compression" msgstr "" #: ../build/lib/darktable/plugins/introspection_vibrance.c:33 #: ../build/lib/darktable/plugins/introspection_vibrance.c:76 -#: ../src/iop/basicadj.c:627 ../src/iop/vibrance.c:67 +#: ../src/iop/basicadj.c:657 ../src/iop/vibrance.c:67 msgid "vibrance" msgstr "" @@ -4519,7 +4759,7 @@ #: ../build/lib/darktable/plugins/introspection_vignette.c:146 #: ../build/lib/darktable/plugins/introspection_vignette.c:237 -#: ../src/iop/vignette.c:978 +#: ../src/iop/vignette.c:1066 msgid "shape" msgstr "" @@ -4558,7 +4798,7 @@ #: ../build/lib/darktable/plugins/introspection_watermark.c:323 #: ../src/imageio/format/tiff.c:125 ../src/imageio/format/xcf.c:159 -#: ../src/iop/borders.c:947 +#: ../src/iop/borders.c:960 msgid "image" msgstr "" @@ -4570,12 +4810,6 @@ msgid "smaller border" msgstr "" -#: ../build/lib/darktable/plugins/introspection_watermark.c:326 -#: ../src/libs/export.c:1135 ../src/libs/metadata_view.c:148 -#: ../src/libs/print_settings.c:2541 -msgid "height" -msgstr "" - #: ../build/lib/darktable/plugins/introspection_watermark.c:327 msgid "advanced options" msgstr "" @@ -4604,23 +4838,23 @@ msgid "marker height" msgstr "" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:6 +#: ../build/bin/tools/darktable_authors.h:6 msgid "developers" msgstr "" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:11 +#: ../build/bin/tools/darktable_authors.h:11 msgid "translators" msgstr "" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:16 +#: ../build/bin/tools/darktable_authors.h:16 msgid "contributors" msgstr "" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:21 +#: ../build/bin/tools/darktable_authors.h:21 msgid "rawspeed contributors" msgstr "" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:26 +#: ../build/bin/tools/darktable_authors.h:26 msgid "integration contributors" msgstr "" @@ -4680,90 +4914,104 @@ msgid "Print your images" msgstr "" -#: ../src/bauhaus/bauhaus.c:752 ../src/bauhaus/bauhaus.c:3689 +#: ../src/bauhaus/bauhaus.c:845 ../src/bauhaus/bauhaus.c:3957 msgid "sliders" msgstr "" -#: ../src/bauhaus/bauhaus.c:753 ../src/bauhaus/bauhaus.c:3694 +#: ../src/bauhaus/bauhaus.c:847 ../src/bauhaus/bauhaus.c:3962 msgid "dropdowns" msgstr "" -#: ../src/bauhaus/bauhaus.c:754 ../src/bauhaus/bauhaus.c:3699 +#: ../src/bauhaus/bauhaus.c:849 ../src/bauhaus/bauhaus.c:3967 msgid "buttons" msgstr "" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button on" msgstr "" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button off" msgstr "" -#: ../src/bauhaus/bauhaus.c:3406 +#: ../src/bauhaus/bauhaus.c:3624 msgid "button pressed" msgstr "" -#: ../src/bauhaus/bauhaus.c:3623 +#: ../src/bauhaus/bauhaus.c:3862 msgid "not that many sliders" msgstr "" -#: ../src/bauhaus/bauhaus.c:3633 +#: ../src/bauhaus/bauhaus.c:3876 msgid "not that many dropdowns" msgstr "" -#: ../src/bauhaus/bauhaus.c:3648 +#: ../src/bauhaus/bauhaus.c:3895 msgid "not that many buttons" msgstr "" -#: ../src/bauhaus/bauhaus.c:3653 ../src/gui/accelerators.c:348 +#: ../src/bauhaus/bauhaus.c:3900 ../src/gui/accelerators.c:389 msgid "value" msgstr "" -#: ../src/bauhaus/bauhaus.c:3654 ../src/bauhaus/bauhaus.c:3660 -#: ../src/gui/accelerators.c:326 +#: ../src/bauhaus/bauhaus.c:3901 ../src/bauhaus/bauhaus.c:3907 +#: ../src/gui/accelerators.c:368 msgid "button" msgstr "" -#: ../src/bauhaus/bauhaus.c:3655 +#: ../src/bauhaus/bauhaus.c:3902 msgid "force" msgstr "" -#: ../src/bauhaus/bauhaus.c:3656 ../src/libs/navigation.c:187 -#: ../src/libs/navigation.c:199 +#: ../src/bauhaus/bauhaus.c:3903 ../src/libs/navigation.c:190 +#: ../src/libs/navigation.c:202 msgid "zoom" msgstr "" -#: ../src/bauhaus/bauhaus.c:3659 +#: ../src/bauhaus/bauhaus.c:3906 ../src/libs/select.c:40 msgid "selection" msgstr "" -#: ../src/bauhaus/bauhaus.c:3678 +#: ../src/bauhaus/bauhaus.c:3946 msgid "slider" msgstr "" -#: ../src/bauhaus/bauhaus.c:3683 +#: ../src/bauhaus/bauhaus.c:3951 msgid "dropdown" msgstr "" -#: ../src/chart/main.c:504 ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 ../src/gui/accelerators.c:2278 -#: ../src/gui/accelerators.c:2355 ../src/gui/accelerators.c:2407 -#: ../src/gui/accelerators.c:2435 ../src/gui/accelerators.c:2495 -#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1043 -#: ../src/gui/preferences.c:1082 ../src/gui/presets.c:420 -#: ../src/gui/presets.c:563 ../src/gui/styles_dialog.c:519 -#: ../src/imageio/storage/disk.c:123 ../src/imageio/storage/gallery.c:110 -#: ../src/imageio/storage/latex.c:109 ../src/iop/lut3d.c:1546 -#: ../src/libs/collect.c:408 ../src/libs/copy_history.c:115 -#: ../src/libs/geotagging.c:928 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/styles.c:392 ../src/libs/styles.c:527 -#: ../src/libs/tagging.c:2489 ../src/libs/tagging.c:2525 +#: ../src/chart/main.c:504 ../src/common/database.c:3372 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 ../src/gui/accelerators.c:2497 +#: ../src/gui/accelerators.c:2579 ../src/gui/accelerators.c:2632 +#: ../src/gui/accelerators.c:2661 ../src/gui/accelerators.c:2723 +#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1081 ../src/gui/presets.c:422 +#: ../src/gui/presets.c:565 ../src/gui/styles_dialog.c:526 +#: ../src/imageio/storage/disk.c:198 ../src/imageio/storage/gallery.c:150 +#: ../src/imageio/storage/latex.c:146 ../src/iop/lut3d.c:1560 +#: ../src/libs/collect.c:425 ../src/libs/collect.c:3242 +#: ../src/libs/copy_history.c:115 ../src/libs/export_metadata.c:276 +#: ../src/libs/geotagging.c:929 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1711 +#: ../src/libs/metadata.c:462 ../src/libs/metadata_view.c:1222 +#: ../src/libs/recentcollect.c:228 ../src/libs/modulegroups.c:3466 +#: ../src/libs/styles.c:392 ../src/libs/styles.c:439 ../src/libs/styles.c:529 +#: ../src/libs/styles.c:624 ../src/libs/tagging.c:1488 +#: ../src/libs/tagging.c:1579 ../src/libs/tagging.c:1670 +#: ../src/libs/tagging.c:1806 ../src/libs/tagging.c:2085 +#: ../src/libs/tagging.c:2520 ../src/libs/tagging.c:2556 +#: ../src/libs/tagging.c:3502 msgid "_cancel" msgstr "" -#: ../src/chart/main.c:504 ../src/gui/preferences.c:1082 -#: ../src/gui/styles_dialog.c:520 ../src/libs/styles.c:392 +#: ../src/chart/main.c:504 ../src/gui/preferences.c:1081 +#: ../src/gui/styles_dialog.c:527 ../src/libs/collect.c:3243 +#: ../src/libs/export_metadata.c:277 ../src/libs/metadata.c:463 +#: ../src/libs/metadata_view.c:1223 ../src/libs/recentcollect.c:229 +#: ../src/libs/styles.c:392 ../src/libs/tagging.c:1671 +#: ../src/libs/tagging.c:1807 ../src/libs/tagging.c:2086 +#: ../src/libs/tagging.c:3503 msgid "_save" msgstr "" @@ -4775,61 +5023,61 @@ "max dE: %.02f" msgstr "" -#: ../src/cli/main.c:247 +#: ../src/cli/main.c:270 msgid "TODO: sorry, due to API restrictions we currently cannot set the BPP to" msgstr "" -#: ../src/cli/main.c:259 +#: ../src/cli/main.c:282 msgid "unknown option for --hq" msgstr "" -#: ../src/cli/main.c:275 +#: ../src/cli/main.c:298 msgid "unknown option for --export_masks" msgstr "" -#: ../src/cli/main.c:291 +#: ../src/cli/main.c:314 msgid "unknown option for --upscale" msgstr "" -#: ../src/cli/main.c:316 +#: ../src/cli/main.c:339 msgid "unknown option for --apply-custom-presets" msgstr "" -#: ../src/cli/main.c:327 +#: ../src/cli/main.c:350 msgid "too long ext for --out-ext" msgstr "" -#: ../src/cli/main.c:344 +#: ../src/cli/main.c:367 #, c-format msgid "notice: input file or dir '%s' doesn't exist, skipping\n" msgstr "" -#: ../src/cli/main.c:353 +#: ../src/cli/main.c:376 #, c-format msgid "incorrect ICC type for --icc-type: '%s'\n" msgstr "" -#: ../src/cli/main.c:369 +#: ../src/cli/main.c:392 #, c-format msgid "notice: ICC file '%s' doesn't exist, skipping\n" msgstr "" -#: ../src/cli/main.c:378 +#: ../src/cli/main.c:401 #, c-format msgid "incorrect ICC intent for --icc-intent: '%s'\n" msgstr "" -#: ../src/cli/main.c:396 +#: ../src/cli/main.c:419 #, c-format msgid "warning: unknown option '%s'\n" msgstr "" -#: ../src/cli/main.c:454 +#: ../src/cli/main.c:477 #, c-format msgid "error: input file and import opts specified! that's not supported!\n" msgstr "" -#: ../src/cli/main.c:487 +#: ../src/cli/main.c:510 #, c-format msgid "" "notice: output location is a directory. assuming '%s/$(FILE_NAME).%s' output " @@ -4837,63 +5085,63 @@ msgstr "" #. output file exists or there's output ext specified and it's same as file... -#: ../src/cli/main.c:502 +#: ../src/cli/main.c:525 msgid "output file already exists, it will get renamed" msgstr "" #. one of inputs was a failure, no prob -#: ../src/cli/main.c:532 +#: ../src/cli/main.c:555 #, c-format msgid "error: can't open folder %s" msgstr "" -#: ../src/cli/main.c:549 +#: ../src/cli/main.c:572 #, c-format msgid "error: can't open file %s" msgstr "" -#: ../src/cli/main.c:566 +#: ../src/cli/main.c:589 #, c-format msgid "no images to export, aborting\n" msgstr "" -#: ../src/cli/main.c:583 +#: ../src/cli/main.c:606 #, c-format msgid "error: can't open XMP file %s" msgstr "" -#: ../src/cli/main.c:604 +#: ../src/cli/main.c:627 msgid "empty history stack" msgstr "" #. too long ext, no point in wasting time -#: ../src/cli/main.c:616 +#: ../src/cli/main.c:639 #, c-format msgid "too long output file extension: %s\n" msgstr "" #. no ext or empty ext, no point in wasting time -#: ../src/cli/main.c:624 +#: ../src/cli/main.c:647 #, c-format msgid "no output file extension given\n" msgstr "" -#: ../src/cli/main.c:663 +#: ../src/cli/main.c:692 msgid "" "cannot find disk storage module. please check your installation, something " "seems to be broken." msgstr "" -#: ../src/cli/main.c:673 +#: ../src/cli/main.c:702 msgid "failed to get parameters from storage module, aborting export ..." msgstr "" -#: ../src/cli/main.c:689 +#: ../src/cli/main.c:718 #, c-format msgid "unknown extension '.%s'" msgstr "" -#: ../src/cli/main.c:699 +#: ../src/cli/main.c:728 msgid "failed to get parameters from format module, aborting export ..." msgstr "" @@ -4931,203 +5179,209 @@ "make sure it allows access and is not mounted otherwise" msgstr "" -#: ../src/common/collection.c:673 +#: ../src/common/collection.c:586 msgid "too much time to update aspect ratio for the collection" msgstr "" -#: ../src/common/collection.c:688 +#: ../src/common/collection.c:601 msgid "film roll" msgstr "" -#: ../src/common/collection.c:690 +#: ../src/common/collection.c:603 msgid "folder" msgstr "" -#: ../src/common/collection.c:692 +#: ../src/common/collection.c:605 msgid "camera" msgstr "" -#: ../src/common/collection.c:694 ../src/libs/export_metadata.c:189 -#: ../src/libs/tagging.c:3281 +#: ../src/common/collection.c:607 ../src/libs/export_metadata.c:176 +#: ../src/libs/tagging.c:3312 msgid "tag" msgstr "" -#: ../src/common/collection.c:696 +#: ../src/common/collection.c:609 msgid "capture date" msgstr "" -#: ../src/common/collection.c:698 ../src/libs/filtering.c:61 +#: ../src/common/collection.c:611 ../src/libs/filtering.c:61 msgid "capture time" msgstr "" -#: ../src/common/collection.c:700 ../src/libs/filtering.c:62 +#: ../src/common/collection.c:613 ../src/libs/filtering.c:62 msgid "import time" msgstr "" -#: ../src/common/collection.c:702 ../src/libs/filtering.c:63 +#: ../src/common/collection.c:615 ../src/libs/filtering.c:63 msgid "modification time" msgstr "" -#: ../src/common/collection.c:704 ../src/libs/filtering.c:64 +#: ../src/common/collection.c:617 ../src/libs/filtering.c:64 msgid "export time" msgstr "" -#: ../src/common/collection.c:706 ../src/libs/filtering.c:65 +#: ../src/common/collection.c:619 ../src/libs/filtering.c:65 msgid "print time" msgstr "" -#: ../src/common/collection.c:708 ../src/libs/collect.c:3222 -#: ../src/libs/filtering.c:2163 ../src/libs/filtering.c:2183 +#: ../src/common/collection.c:621 ../src/libs/collect.c:3586 +#: ../src/libs/filtering.c:2237 ../src/libs/filtering.c:2257 #: ../src/libs/filters/history.c:153 ../src/libs/history.c:92 msgid "history" msgstr "" -#: ../src/common/collection.c:710 ../src/common/colorlabels.c:342 -#: ../src/develop/lightroom.c:1550 ../src/dtgtk/thumbnail.c:1560 +#: ../src/common/collection.c:623 ../src/common/colorlabels.c:341 +#: ../src/develop/lightroom.c:1607 ../src/dtgtk/thumbnail.c:1548 #: ../src/libs/filtering.c:68 ../src/libs/filters/colors.c:301 #: ../src/libs/filters/colors.c:312 ../src/libs/tools/colorlabels.c:93 msgid "color label" msgstr "" #. iso -#: ../src/common/collection.c:716 ../src/gui/preferences.c:832 -#: ../src/gui/presets.c:666 ../src/libs/camera.c:558 -#: ../src/libs/metadata_view.c:145 +#: ../src/common/collection.c:629 ../src/gui/preferences.c:830 +#: ../src/gui/presets.c:669 ../src/libs/camera.c:558 +#: ../src/libs/metadata_view.c:149 msgid "ISO" msgstr "" #. aperture -#: ../src/common/collection.c:718 ../src/gui/preferences.c:840 -#: ../src/gui/presets.c:701 ../src/libs/camera.c:545 ../src/libs/camera.c:547 -#: ../src/libs/metadata_view.c:140 +#: ../src/common/collection.c:631 ../src/gui/preferences.c:838 +#: ../src/gui/presets.c:704 ../src/libs/camera.c:545 ../src/libs/camera.c:547 +#: ../src/libs/metadata_view.c:142 msgid "aperture" msgstr "" -#: ../src/common/collection.c:724 ../src/libs/filtering.c:57 -#: ../src/libs/filters/filename.c:364 ../src/libs/metadata_view.c:126 +#: ../src/common/collection.c:637 ../src/libs/filtering.c:57 +#: ../src/libs/filters/filename.c:369 ../src/libs/metadata_view.c:128 msgid "filename" msgstr "" -#: ../src/common/collection.c:726 ../src/develop/lightroom.c:1541 +#: ../src/common/collection.c:639 ../src/develop/lightroom.c:1598 #: ../src/libs/geotagging.c:141 msgid "geotagging" msgstr "" -#: ../src/common/collection.c:728 ../src/libs/filters/grouping.c:167 +#: ../src/common/collection.c:641 ../src/libs/filters/grouping.c:167 #: ../src/libs/tools/global_toolbox.c:394 msgid "grouping" msgstr "" -#: ../src/common/collection.c:730 ../src/dtgtk/thumbnail.c:1575 -#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:129 -#: ../src/libs/metadata_view.c:336 +#: ../src/common/collection.c:643 ../src/dtgtk/thumbnail.c:1563 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:340 msgid "local copy" msgstr "" -#: ../src/common/collection.c:732 ../src/gui/preferences.c:808 +#: ../src/common/collection.c:645 ../src/gui/preferences.c:806 msgid "module" msgstr "" -#: ../src/common/collection.c:734 ../src/gui/hist_dialog.c:346 -#: ../src/gui/styles_dialog.c:722 ../src/gui/styles_dialog.c:771 +#: ../src/common/collection.c:647 ../src/gui/hist_dialog.c:346 +#: ../src/gui/styles_dialog.c:734 ../src/gui/styles_dialog.c:783 #: ../src/libs/filters/module_order.c:161 ../src/libs/ioporder.c:39 msgid "module order" msgstr "" -#: ../src/common/collection.c:736 +#: ../src/common/collection.c:649 msgid "range rating" msgstr "" -#: ../src/common/collection.c:738 ../src/common/ratings.c:322 -#: ../src/develop/lightroom.c:1525 ../src/libs/filtering.c:67 +#: ../src/common/collection.c:651 ../src/common/ratings.c:321 +#: ../src/develop/lightroom.c:1582 ../src/libs/filtering.c:67 #: ../src/libs/tools/ratings.c:110 msgid "rating" msgstr "" -#: ../src/common/collection.c:740 +#: ../src/common/collection.c:653 msgid "search" msgstr "" -#: ../src/common/collection.c:1509 ../src/common/colorlabels.c:335 -#: ../src/develop/lightroom.c:836 ../src/gui/guides.c:732 -#: ../src/iop/colorzones.c:2265 ../src/iop/temperature.c:1925 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:261 +#: ../src/common/collection.c:1376 ../src/common/colorlabels.c:334 +#: ../src/develop/lightroom.c:889 ../src/gui/guides.c:732 +#: ../src/iop/colorzones.c:2501 ../src/iop/temperature.c:1902 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:261 msgid "yellow" msgstr "" -#: ../src/common/collection.c:1515 ../src/common/color_vocabulary.c:339 -#: ../src/common/colorlabels.c:338 ../src/iop/colorzones.c:2269 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:264 +#: ../src/common/collection.c:1382 ../src/common/color_vocabulary.c:339 +#: ../src/common/colorlabels.c:337 ../src/iop/colorzones.c:2505 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:264 msgid "purple" msgstr "" -#: ../src/common/collection.c:1532 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1400 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "auto applied" msgstr "" -#: ../src/common/collection.c:1536 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1406 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "altered" msgstr "" -#: ../src/common/collection.c:1553 ../src/common/collection.c:1649 -#: ../src/libs/collect.c:1166 ../src/libs/collect.c:1330 -#: ../src/libs/collect.c:1354 ../src/libs/collect.c:1473 -#: ../src/libs/collect.c:2432 +#: ../src/common/collection.c:1424 ../src/common/collection.c:1535 +#: ../src/libs/collect.c:1242 ../src/libs/collect.c:1426 +#: ../src/libs/collect.c:1452 ../src/libs/collect.c:1592 +#: ../src/libs/collect.c:2662 msgid "not tagged" msgstr "" -#: ../src/common/collection.c:1554 ../src/libs/collect.c:1354 +#: ../src/common/collection.c:1425 ../src/libs/collect.c:1452 #: ../src/libs/map_locations.c:742 msgid "tagged" msgstr "" -#: ../src/common/collection.c:1555 +#: ../src/common/collection.c:1426 msgid "tagged*" msgstr "" #. local copy -#: ../src/common/collection.c:1588 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1460 ../src/libs/collect.c:1883 #: ../src/libs/filters/local_copy.c:38 msgid "not copied locally" msgstr "" -#: ../src/common/collection.c:1592 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1465 ../src/libs/collect.c:1882 #: ../src/libs/filters/local_copy.c:38 msgid "copied locally" msgstr "" -#: ../src/common/collection.c:1974 ../src/libs/collect.c:1879 +#. if its undefined +#: ../src/common/collection.c:1507 ../src/common/collection.c:1619 +#: ../src/libs/collect.c:2209 ../src/libs/collect.c:2210 +msgid "unnamed" +msgstr "" + +#: ../src/common/collection.c:1905 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:147 ../src/libs/filters/grouping.c:170 msgid "group leaders" msgstr "" -#: ../src/common/collection.c:1978 ../src/libs/collect.c:1879 +#: ../src/common/collection.c:1909 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:150 ../src/libs/filters/grouping.c:170 msgid "group followers" msgstr "" -#: ../src/common/collection.c:2126 ../src/libs/collect.c:1959 +#: ../src/common/collection.c:2066 ../src/libs/collect.c:2100 msgid "not defined" msgstr "" -#: ../src/common/collection.c:2575 +#: ../src/common/collection.c:2521 #, c-format msgid "<b>%d</b> image (#<b>%d</b>) selected of <b>%d</b>" msgstr "" -#: ../src/common/collection.c:2582 +#: ../src/common/collection.c:2528 #, c-format msgid "<b>%d</b> image selected of <b>%d</b>" msgid_plural "<b>%d</b> images selected of <b>%d</b>" msgstr[0] "" msgstr[1] "" -#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2324 -#: ../src/develop/blend_gui.c:2372 ../src/gui/guides.c:729 -#: ../src/iop/channelmixerrgb.c:4620 ../src/iop/levels.c:671 -#: ../src/iop/rgblevels.c:937 ../src/iop/rgblevels.c:1032 +#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2340 +#: ../src/develop/blend_gui.c:2388 ../src/gui/guides.c:729 +#: ../src/iop/channelmixerrgb.c:4688 ../src/iop/levels.c:687 +#: ../src/iop/rgblevels.c:969 ../src/iop/rgblevels.c:1083 msgid "gray" msgstr "" @@ -5336,12 +5590,12 @@ msgstr "" #: ../src/common/color_vocabulary.c:297 ../src/common/color_vocabulary.c:317 -#: ../src/iop/colorzones.c:2267 +#: ../src/iop/colorzones.c:2503 msgid "aqua" msgstr "" #: ../src/common/color_vocabulary.c:298 ../src/gui/guides.c:733 -#: ../src/iop/temperature.c:1923 +#: ../src/iop/temperature.c:1900 msgid "cyan" msgstr "" @@ -5407,7 +5661,7 @@ msgstr "" #: ../src/common/color_vocabulary.c:341 ../src/gui/guides.c:734 -#: ../src/iop/colorzones.c:2270 ../src/iop/temperature.c:1921 +#: ../src/iop/colorzones.c:2506 ../src/iop/temperature.c:1898 msgid "magenta" msgstr "" @@ -5419,136 +5673,131 @@ msgid "color not found" msgstr "" -#: ../src/common/colorlabels.c:310 +#: ../src/common/colorlabels.c:309 #, c-format msgid "colorlabels set to %s" msgstr "" -#: ../src/common/colorlabels.c:312 +#: ../src/common/colorlabels.c:311 msgid "all colorlabels removed" msgstr "" -#: ../src/common/colorlabels.c:333 ../src/gui/accelerators.c:170 -#: ../src/libs/image.c:592 +#: ../src/common/colorlabels.c:332 ../src/gui/accelerators.c:188 +#: ../src/libs/image.c:660 msgid "clear" msgstr "" -#. init the category profile with NULL profile, the actual profile must be retrieved dynamically by the caller -#: ../src/common/colorspaces.c:1229 ../src/common/colorspaces.c:1518 -msgid "work profile" -msgstr "" - -#: ../src/common/colorspaces.c:1232 ../src/common/colorspaces.c:1514 -#: ../src/iop/colorout.c:885 +#: ../src/common/colorspaces.c:1382 ../src/common/colorspaces.c:1730 +#: ../src/iop/colorout.c:901 msgid "export profile" msgstr "" -#: ../src/common/colorspaces.c:1236 ../src/common/colorspaces.c:1516 -#: ../src/views/darkroom.c:2542 +#: ../src/common/colorspaces.c:1387 ../src/common/colorspaces.c:1732 +#: ../src/views/darkroom.c:2383 msgid "softproof profile" msgstr "" -#: ../src/common/colorspaces.c:1242 ../src/common/colorspaces.c:1498 +#: ../src/common/colorspaces.c:1397 ../src/common/colorspaces.c:1714 msgid "system display profile" msgstr "" -#: ../src/common/colorspaces.c:1245 ../src/common/colorspaces.c:1520 +#: ../src/common/colorspaces.c:1402 ../src/common/colorspaces.c:1736 msgid "system display profile (second window)" msgstr "" -#: ../src/common/colorspaces.c:1255 +#: ../src/common/colorspaces.c:1415 msgid "sRGB (web-safe)" msgstr "" -#: ../src/common/colorspaces.c:1269 ../src/common/colorspaces.c:1522 +#: ../src/common/colorspaces.c:1435 ../src/common/colorspaces.c:1738 msgid "Rec709 RGB" msgstr "" -#: ../src/common/colorspaces.c:1279 +#: ../src/common/colorspaces.c:1450 msgid "PQ Rec2020 RGB" msgstr "" -#: ../src/common/colorspaces.c:1284 +#: ../src/common/colorspaces.c:1458 msgid "HLG Rec2020 RGB" msgstr "" -#: ../src/common/colorspaces.c:1289 +#: ../src/common/colorspaces.c:1465 msgid "PQ P3 RGB" msgstr "" -#: ../src/common/colorspaces.c:1294 +#: ../src/common/colorspaces.c:1471 msgid "HLG P3 RGB" msgstr "" -#: ../src/common/colorspaces.c:1299 ../src/common/colorspaces.c:1524 -msgid "linear ProPhoto RGB" +#: ../src/common/colorspaces.c:1478 +msgid "Display P3 RGB" msgstr "" -#: ../src/common/colorspaces.c:1304 ../src/common/colorspaces.c:1492 +#: ../src/common/colorspaces.c:1493 ../src/common/colorspaces.c:1708 msgid "linear XYZ" msgstr "" -#: ../src/common/colorspaces.c:1308 ../src/common/colorspaces.c:1494 -#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2000 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:267 +#: ../src/common/colorspaces.c:1500 ../src/common/colorspaces.c:1710 +#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2016 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:293 msgid "Lab" msgstr "" -#: ../src/common/colorspaces.c:1313 ../src/common/colorspaces.c:1496 +#: ../src/common/colorspaces.c:1508 ../src/common/colorspaces.c:1712 msgid "linear infrared BGR" msgstr "" -#: ../src/common/colorspaces.c:1317 +#: ../src/common/colorspaces.c:1513 msgid "BRG (for testing)" msgstr "" -#: ../src/common/colorspaces.c:1409 +#: ../src/common/colorspaces.c:1619 #, c-format msgid "" "profile `%s' not usable as histogram profile. it has been replaced by sRGB!" msgstr "" -#: ../src/common/colorspaces.c:1500 +#: ../src/common/colorspaces.c:1716 msgid "embedded ICC profile" msgstr "" -#: ../src/common/colorspaces.c:1502 +#: ../src/common/colorspaces.c:1718 msgid "embedded matrix" msgstr "" -#: ../src/common/colorspaces.c:1504 +#: ../src/common/colorspaces.c:1720 msgid "standard color matrix" msgstr "" -#: ../src/common/colorspaces.c:1506 +#: ../src/common/colorspaces.c:1722 msgid "enhanced color matrix" msgstr "" -#: ../src/common/colorspaces.c:1508 +#: ../src/common/colorspaces.c:1724 msgid "vendor color matrix" msgstr "" -#: ../src/common/colorspaces.c:1510 +#: ../src/common/colorspaces.c:1726 msgid "alternate color matrix" msgstr "" -#: ../src/common/colorspaces.c:1512 +#: ../src/common/colorspaces.c:1728 msgid "BRG (experimental)" msgstr "" -#: ../src/common/colorspaces.c:1526 +#: ../src/common/colorspaces.c:1742 msgid "PQ Rec2020" msgstr "" -#: ../src/common/colorspaces.c:1528 +#: ../src/common/colorspaces.c:1744 msgid "HLG Rec2020" msgstr "" -#: ../src/common/colorspaces.c:1530 +#: ../src/common/colorspaces.c:1746 msgid "PQ P3" msgstr "" -#: ../src/common/colorspaces.c:1532 +#: ../src/common/colorspaces.c:1748 msgid "HLG P3" msgstr "" @@ -5576,114 +5825,127 @@ msgid "printing `%s' on `%s'" msgstr "" -#: ../src/common/darktable.c:250 +#: ../src/common/darktable.c:375 #, c-format msgid "found strange path `%s'" msgstr "" -#: ../src/common/darktable.c:265 +#: ../src/common/darktable.c:390 #, c-format msgid "error loading directory `%s'" msgstr "" -#: ../src/common/darktable.c:289 +#: ../src/common/darktable.c:414 #, c-format msgid "file `%s' has unknown format!" msgstr "" -#: ../src/common/darktable.c:302 ../src/control/jobs/control_jobs.c:2118 -#: ../src/control/jobs/control_jobs.c:2177 +#: ../src/common/darktable.c:427 ../src/control/jobs/control_jobs.c:2121 +#: ../src/control/jobs/control_jobs.c:2180 #, c-format msgid "error loading file `%s'" msgstr "" -#: ../src/common/darktable.c:1509 +#: ../src/common/darktable.c:1650 msgid "configuration information" msgstr "" -#: ../src/common/darktable.c:1511 -msgid "show this information again" +#: ../src/common/darktable.c:1652 +msgid "_show this information again" msgstr "" -#: ../src/common/darktable.c:1511 -msgid "understood" +#: ../src/common/darktable.c:1652 +msgid "_understood" msgstr "" -#: ../src/common/darktable.c:1968 +#: ../src/common/darktable.c:2106 msgid "" "the RCD demosaicer has been defined as default instead of PPG because of " "better quality and performance." msgstr "" -#: ../src/common/darktable.c:1970 +#: ../src/common/darktable.c:2108 msgid "see preferences/darkroom/demosaicing for zoomed out darkroom mode" msgstr "" -#: ../src/common/darktable.c:1976 +#: ../src/common/darktable.c:2114 msgid "" "the user interface and the underlying internals for tuning darktable " "performance have changed." msgstr "" -#: ../src/common/darktable.c:1978 +#: ../src/common/darktable.c:2116 msgid "" "you won't find headroom and friends any longer, instead in preferences/" "processing use:" msgstr "" -#: ../src/common/darktable.c:1980 +#: ../src/common/darktable.c:2118 msgid "1) darktable resources" msgstr "" -#: ../src/common/darktable.c:1982 +#: ../src/common/darktable.c:2120 msgid "2) tune OpenCL performance" msgstr "" -#: ../src/common/darktable.c:1989 +#: ../src/common/darktable.c:2127 msgid "" "some global config parameters relevant for OpenCL performance are not used " "any longer." msgstr "" -#: ../src/common/darktable.c:1991 +#: ../src/common/darktable.c:2129 msgid "" -"instead you will find 'per device' data in 'cl_device_v4_canonical-name'. " +"instead you will find 'per device' data in 'cldevice_v5_canonical-name'. " "content is:" msgstr "" -#: ../src/common/darktable.c:1993 ../src/common/darktable.c:2012 +#: ../src/common/darktable.c:2131 ../src/common/darktable.c:2150 +#: ../src/common/darktable.c:2165 msgid "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" msgstr "" -#: ../src/common/darktable.c:1995 ../src/common/darktable.c:2014 +#: ../src/common/darktable.c:2133 ../src/common/darktable.c:2152 msgid "you may tune as before except 'magic'" msgstr "" -#: ../src/common/darktable.c:2001 +#: ../src/common/darktable.c:2139 msgid "" "your OpenCL compiler settings for all devices have been reset to default." msgstr "" -#: ../src/common/darktable.c:2008 +#: ../src/common/darktable.c:2146 msgid "" "OpenCL global config parameters 'per device' data has been recreated with an " "updated name." msgstr "" -#: ../src/common/darktable.c:2010 +#: ../src/common/darktable.c:2148 ../src/common/darktable.c:2163 msgid "" -"you will find 'per device' data in 'cl_device_v5_canonical-name'. content is:" +"you will find 'per device' data in 'cldevice_v5_canonical-name'. content is:" msgstr "" -#: ../src/common/darktable.c:2016 +#: ../src/common/darktable.c:2154 msgid "" "If you're using device names in 'opencl_device_priority' you should update " "them to the new names." msgstr "" -#: ../src/common/database.c:2756 +#: ../src/common/darktable.c:2161 +msgid "" +"OpenCL 'per device' config data have been automatically extended by 'unified-" +"fraction'." +msgstr "" + +#: ../src/common/darktable.c:2172 +msgid "" +"OpenCL 'per device' compiler settings might have been updated.\n" +"\n" +msgstr "" + +#: ../src/common/database.c:3350 #, c-format msgid "" "\n" @@ -5715,66 +5977,54 @@ msgstr "" #. clang-format on -#: ../src/common/database.c:2777 +#: ../src/common/database.c:3371 msgid "error starting darktable" msgstr "" -#: ../src/common/database.c:2778 ../src/libs/collect.c:2915 -#: ../src/libs/export_metadata.c:288 ../src/libs/import.c:1702 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:227 ../src/libs/modulegroups.c:3464 -#: ../src/libs/styles.c:438 ../src/libs/styles.c:621 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3471 -msgid "cancel" -msgstr "" - -#: ../src/common/database.c:2778 -msgid "delete database lock files" +#: ../src/common/database.c:3372 +msgid "_delete database lock files" msgstr "" -#: ../src/common/database.c:2784 +#: ../src/common/database.c:3378 msgid "are you sure?" msgstr "" -#: ../src/common/database.c:2785 +#: ../src/common/database.c:3379 msgid "" "\n" "do you really want to delete the lock files?\n" msgstr "" -#: ../src/common/database.c:2785 ../src/common/variables.c:703 -#: ../src/develop/imageop_gui.c:210 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 -msgid "yes" +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2597 +msgid "_no" msgstr "" -#: ../src/common/database.c:2801 ../src/libs/export_metadata.c:164 -#: ../src/libs/geotagging.c:811 +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2596 +msgid "_yes" +msgstr "" + +#: ../src/common/database.c:3395 msgid "done" msgstr "" -#: ../src/common/database.c:2802 +#: ../src/common/database.c:3396 msgid "" "\n" "successfully deleted the lock files.\n" "you can now restart darktable\n" msgstr "" -#. the button to close the popup -#: ../src/common/database.c:2803 ../src/common/database.c:2810 -#: ../src/libs/filters/filename.c:452 -msgid "ok" +#: ../src/common/database.c:3397 ../src/common/database.c:3404 +#: ../src/gui/accelerators.c:2580 ../src/gui/accelerators.c:2662 +#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:566 +msgid "_ok" msgstr "" -#: ../src/common/database.c:2806 +#: ../src/common/database.c:3400 msgid "error" msgstr "" -#: ../src/common/database.c:2807 +#: ../src/common/database.c:3401 #, c-format msgid "" "\n" @@ -5784,25 +6034,44 @@ "in folder <a href=\"file:///%s\">%s</a>.\n" msgstr "" -#: ../src/common/database.c:2924 +#: ../src/common/database.c:3518 #, c-format msgid "" "the database lock file contains a pid that seems to be alive in your system: " "%d" msgstr "" -#: ../src/common/database.c:2931 +#: ../src/common/database.c:3525 #, c-format msgid "the database lock file seems to be empty" msgstr "" -#: ../src/common/database.c:2941 +#: ../src/common/database.c:3535 #, c-format msgid "error opening the database lock file for reading: %s" msgstr "" +#: ../src/common/database.c:3605 +#, c-format +msgid "" +"the database schema version of\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"is too new for this build of darktable (this means the database was created " +"or upgraded by a newer darktable version)\n" +msgstr "" + +#: ../src/common/database.c:3612 +msgid "darktable - too new db version" +msgstr "" + +#: ../src/common/database.c:3613 +msgid "_quit darktable" +msgstr "" + #. the database has to be upgraded, let's ask user -#: ../src/common/database.c:2978 +#: ../src/common/database.c:3628 #, c-format msgid "" "the database schema has to be upgraded for\n" @@ -5814,42 +6083,42 @@ "do you want to proceed or quit now to do a backup\n" msgstr "" -#: ../src/common/database.c:2986 +#: ../src/common/database.c:3636 msgid "darktable - schema migration" msgstr "" -#: ../src/common/database.c:2987 ../src/common/database.c:3306 -#: ../src/common/database.c:3324 ../src/common/database.c:3491 -#: ../src/common/database.c:3509 -msgid "close darktable" +#: ../src/common/database.c:3637 ../src/common/database.c:3959 +#: ../src/common/database.c:3974 ../src/common/database.c:4142 +#: ../src/common/database.c:4157 +msgid "_close darktable" msgstr "" -#: ../src/common/database.c:2987 -msgid "upgrade database" +#: ../src/common/database.c:3637 +msgid "_upgrade database" msgstr "" -#: ../src/common/database.c:3286 ../src/common/database.c:3471 +#: ../src/common/database.c:3939 ../src/common/database.c:4122 #, c-format msgid "" "quick_check said:\n" "%s \n" msgstr "" -#: ../src/common/database.c:3303 ../src/common/database.c:3321 -#: ../src/common/database.c:3488 ../src/common/database.c:3506 +#: ../src/common/database.c:3956 ../src/common/database.c:3971 +#: ../src/common/database.c:4139 ../src/common/database.c:4154 msgid "darktable - error opening database" msgstr "" -#: ../src/common/database.c:3308 ../src/common/database.c:3493 -msgid "attempt restore" +#: ../src/common/database.c:3960 ../src/common/database.c:4143 +msgid "_attempt restore" msgstr "" -#: ../src/common/database.c:3310 ../src/common/database.c:3326 -#: ../src/common/database.c:3495 ../src/common/database.c:3511 -msgid "delete database" +#: ../src/common/database.c:3961 ../src/common/database.c:3975 +#: ../src/common/database.c:4144 ../src/common/database.c:4158 +msgid "_delete database" msgstr "" -#: ../src/common/database.c:3314 ../src/common/database.c:3499 +#: ../src/common/database.c:3964 ../src/common/database.c:4147 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup, attempt an automatic restore\n" @@ -5857,14 +6126,14 @@ "and start with a new one?" msgstr "" -#: ../src/common/database.c:3330 ../src/common/database.c:3515 +#: ../src/common/database.c:3978 ../src/common/database.c:4161 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup or delete the corrupted database\n" "and start with a new one?" msgstr "" -#: ../src/common/database.c:3337 ../src/common/database.c:3520 +#: ../src/common/database.c:3985 ../src/common/database.c:4166 #, c-format msgid "" "an error has occurred while trying to open the database from\n" @@ -5881,12 +6150,12 @@ "your RAM settings" msgstr "" -#: ../src/common/exif.cc:5200 +#: ../src/common/exif.cc:5482 #, c-format msgid "cannot read XMP file '%s': '%s'" msgstr "" -#: ../src/common/exif.cc:5258 +#: ../src/common/exif.cc:5540 #, c-format msgid "cannot write XMP file '%s': '%s'" msgstr "" @@ -5895,206 +6164,207 @@ msgid "fast guided filter failed to allocate memory, check your RAM settings" msgstr "" -#: ../src/common/film.c:345 +#: ../src/common/film.c:356 msgid "do you want to remove this empty directory?" msgid_plural "do you want to remove these empty directories?" msgstr[0] "" msgstr[1] "" -#: ../src/common/film.c:352 +#: ../src/common/film.c:363 msgid "remove empty directory?" msgid_plural "remove empty directories?" msgstr[0] "" msgstr[1] "" -#: ../src/common/film.c:371 ../src/gui/preferences.c:816 -#: ../src/gui/styles_dialog.c:548 ../src/libs/geotagging.c:829 -#: ../src/libs/import.c:1551 +#: ../src/common/film.c:383 ../src/gui/preferences.c:814 +#: ../src/gui/styles_dialog.c:556 ../src/libs/geotagging.c:830 +#: ../src/libs/import.c:1560 msgid "name" msgstr "" -#: ../src/common/film.c:477 +#: ../src/common/film.c:492 msgid "" "cannot remove film roll having local copies with non accessible originals" msgstr "" -#: ../src/common/history.c:840 +#: ../src/common/history.c:876 msgid "you need to copy history from an image before you paste it onto another" msgstr "" -#: ../src/common/image.c:325 +#: ../src/common/image.c:333 msgid "orphaned image" msgstr "" -#: ../src/common/image.c:620 +#: ../src/common/image.c:629 #, c-format msgid "geo-location undone for %d image" msgid_plural "geo-location undone for %d images" msgstr[0] "" msgstr[1] "" -#: ../src/common/image.c:622 +#: ../src/common/image.c:631 #, c-format msgid "geo-location re-applied to %d image" msgid_plural "geo-location re-applied to %d images" msgstr[0] "" msgstr[1] "" -#: ../src/common/image.c:645 +#: ../src/common/image.c:654 #, c-format msgid "date/time undone for %d image" msgid_plural "date/time undone for %d images" msgstr[0] "" msgstr[1] "" -#: ../src/common/image.c:647 +#: ../src/common/image.c:656 #, c-format msgid "date/time re-applied to %d image" msgid_plural "date/time re-applied to %d images" msgstr[0] "" msgstr[1] "" -#: ../src/common/image.c:2188 +#: ../src/common/image.c:2260 #, c-format msgid "cannot access local copy `%s'" msgstr "" -#: ../src/common/image.c:2195 +#: ../src/common/image.c:2267 #, c-format msgid "cannot write local copy `%s'" msgstr "" -#: ../src/common/image.c:2202 +#: ../src/common/image.c:2274 #, c-format msgid "error moving local copy `%s' -> `%s'" msgstr "" -#: ../src/common/image.c:2219 +#: ../src/common/image.c:2291 #, c-format msgid "error moving `%s': file not found" msgstr "" -#: ../src/common/image.c:2229 +#: ../src/common/image.c:2301 #, c-format msgid "error moving `%s' -> `%s': file exists" msgstr "" -#: ../src/common/image.c:2233 +#: ../src/common/image.c:2305 #, c-format msgid "error moving `%s' -> `%s'" msgstr "" -#: ../src/common/image.c:2562 +#: ../src/common/image.c:2634 msgid "cannot create local copy when the original file is not accessible." msgstr "" -#: ../src/common/image.c:2576 +#: ../src/common/image.c:2648 msgid "cannot create local copy." msgstr "" -#: ../src/common/image.c:2656 ../src/control/jobs/control_jobs.c:777 +#: ../src/common/image.c:2728 ../src/control/jobs/control_jobs.c:777 msgid "cannot remove local copy when the original file is not accessible." msgstr "" -#: ../src/common/image.c:2821 +#: ../src/common/image.c:2901 #, c-format msgid "%d local copy has been synchronized" msgid_plural "%d local copies have been synchronized" msgstr[0] "" msgstr[1] "" -#: ../src/common/image.c:3022 +#: ../src/common/image.c:3102 msgid "<b>WARNING</b>: camera is missing samples!" msgstr "" -#: ../src/common/image.c:3023 +#: ../src/common/image.c:3103 msgid "" "You must provide samples in <a href='https://raw.pixls.us/'>https://raw." "pixls.us/</a>" msgstr "" -#: ../src/common/image.c:3024 +#: ../src/common/image.c:3104 #, c-format msgid "" "for `%s' `%s'\n" "in as many format/compression/bit depths as possible" msgstr "" -#: ../src/common/image.c:3027 +#: ../src/common/image.c:3107 msgid "or the <b>RAW won't be readable</b> in next version." msgstr "" -#: ../src/common/image.h:209 ../src/common/ratings.c:284 -#: ../src/libs/history.c:843 ../src/libs/snapshots.c:779 +#: ../src/common/image.h:217 ../src/common/ratings.c:283 +#: ../src/imageio/format/avif.c:114 ../src/libs/history.c:843 +#: ../src/libs/snapshots.c:837 msgid "unknown" msgstr "" #. EMPTY_FIELD -#: ../src/common/image.h:210 -msgid "tiff" +#: ../src/common/image.h:218 ../src/imageio/format/tiff.c:831 +msgid "TIFF" msgstr "" -#: ../src/common/image.h:211 -msgid "png" +#: ../src/common/image.h:219 ../src/imageio/format/png.c:599 +msgid "PNG" msgstr "" -#: ../src/common/image.h:212 ../src/imageio/format/j2k.c:652 -msgid "j2k" +#: ../src/common/image.h:220 +msgid "JPEG 2000" msgstr "" -#: ../src/common/image.h:213 -msgid "jpeg" +#: ../src/common/image.h:221 +msgid "JPEG" msgstr "" -#: ../src/common/image.h:214 -msgid "exr" +#: ../src/common/image.h:222 +msgid "EXR" msgstr "" -#: ../src/common/image.h:215 -msgid "rgbe" +#: ../src/common/image.h:223 +msgid "RGBE" msgstr "" -#: ../src/common/image.h:216 -msgid "pfm" +#: ../src/common/image.h:224 ../src/imageio/format/pfm.c:120 +msgid "PFM" msgstr "" -#: ../src/common/image.h:217 +#: ../src/common/image.h:225 msgid "GraphicsMagick" msgstr "" -#: ../src/common/image.h:218 -msgid "rawspeed" +#: ../src/common/image.h:226 +msgid "RawSpeed" msgstr "" -#: ../src/common/image.h:219 -msgid "netpnm" +#: ../src/common/image.h:227 +msgid "Netpbm" msgstr "" -#: ../src/common/image.h:220 -msgid "avif" +#: ../src/common/image.h:228 ../src/imageio/format/avif.c:728 +msgid "AVIF" msgstr "" -#: ../src/common/image.h:221 +#: ../src/common/image.h:229 msgid "ImageMagick" msgstr "" -#: ../src/common/image.h:222 -msgid "heif" +#: ../src/common/image.h:230 +msgid "HEIF" msgstr "" -#: ../src/common/image.h:223 -msgid "libraw" +#: ../src/common/image.h:231 +msgid "LibRaw" msgstr "" -#: ../src/common/image.h:224 -msgid "webp" +#: ../src/common/image.h:232 ../src/imageio/format/webp.c:380 +msgid "WebP" msgstr "" -#: ../src/common/image.h:225 -msgid "jpeg xl" +#: ../src/common/image.h:233 ../src/imageio/format/jxl.c:482 +msgid "JPEG XL" msgstr "" -#: ../src/common/image.h:226 +#: ../src/common/image.h:234 msgid "QOI" msgstr "" @@ -6120,7 +6390,7 @@ msgid "requested session path not available. device not mounted?" msgstr "" -#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:197 +#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:195 msgid "legacy" msgstr "" @@ -6132,7 +6402,7 @@ msgid "v3.0 JPEG" msgstr "" -#: ../src/common/iop_profile.c:1205 +#: ../src/common/iop_profile.c:1207 #, c-format msgid "" "darktable loads %s from\n" @@ -6152,13 +6422,13 @@ #. title #: ../src/common/metadata.c:48 ../src/imageio/format/pdf.c:574 -#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:169 -#: ../src/imageio/storage/gallery.c:170 ../src/imageio/storage/latex.c:169 -#: ../src/imageio/storage/piwigo.c:1058 ../src/libs/filtering.c:69 +#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:219 +#: ../src/imageio/storage/gallery.c:222 ../src/imageio/storage/latex.c:206 +#: ../src/imageio/storage/piwigo.c:1091 ../src/libs/filtering.c:69 msgid "title" msgstr "" -#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:552 +#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:563 #: ../src/libs/filtering.c:70 msgid "description" msgstr "" @@ -6176,11 +6446,11 @@ msgstr "" #: ../src/common/metadata.c:53 ../src/libs/live_view.c:319 -#: ../src/libs/metadata_view.c:124 +#: ../src/libs/metadata_view.c:126 msgid "image id" msgstr "" -#: ../src/common/mipmap_cache.c:1065 ../src/imageio/imageio.c:787 +#: ../src/common/mipmap_cache.c:1070 ../src/imageio/imageio.c:799 #, c-format msgid "image `%s' is not available!" msgstr "" @@ -6194,38 +6464,58 @@ msgid "noiseprofile file `%s' is not valid" msgstr "" -#: ../src/common/opencl.c:1376 -#, c-format -msgid "" -"OpenCL initializing problem:\n" -"%s" +#: ../src/common/opencl.c:1165 +msgid "no working OpenCL library found" msgstr "" -#: ../src/common/opencl.c:1439 +#: ../src/common/opencl.c:1185 msgid "" -"due to a slow GPU hardware acceleration using OpenCL has been deactivated" +"platform detection failed. some possible causes:\n" +" - OpenCL ICD (ocl-icd) missing,\n" +" - previous OpenCL errors leading to blocked devices,\n" +" - power management problems,\n" +" - buggy drivers,\n" +" - no OpenCL driver installed." msgstr "" -#: ../src/common/opencl.c:1449 -msgid "" -"multiple GPUs detected - OpenCL scheduling profile has been set accordingly" +#: ../src/common/opencl.c:1277 +msgid "no devices found for unknown platform" msgstr "" -#: ../src/common/opencl.c:1462 +#: ../src/common/opencl.c:1323 +msgid "not enough memory for OpenCL devices" +msgstr "" + +#: ../src/common/opencl.c:1358 +msgid "no OpenCL devices found" +msgstr "" + +#: ../src/common/opencl.c:1401 +msgid "no suitable OpenCL devices found" +msgstr "" + +#: ../src/common/opencl.c:1422 +#, c-format msgid "" -"very fast GPU detected - OpenCL scheduling profile has been set accordingly" +"OpenCL initializing problem:\n" +"%s" +msgstr "" + +#: ../src/common/opencl.c:1454 +msgid "OpenCL scheduling profile set to default, setup has changed" msgstr "" -#: ../src/common/opencl.c:1471 -msgid "OpenCL scheduling profile set to default" +#: ../src/common/opencl.c:2283 +#, c-format +msgid "building OpenCL program %s for %s" msgstr "" -#: ../src/common/pdf.h:88 ../src/iop/lens.cc:3441 +#: ../src/common/pdf.h:88 ../src/iop/lens.cc:4071 #: ../src/libs/filters/focal.c:74 ../src/libs/print_settings.c:81 msgid "mm" msgstr "" -#: ../src/common/pdf.h:89 ../src/libs/export.c:520 ../src/libs/export.c:1145 +#: ../src/common/pdf.h:89 ../src/libs/export.c:555 ../src/libs/export.c:1241 #: ../src/libs/print_settings.c:81 msgid "cm" msgstr "" @@ -6238,7 +6528,7 @@ msgid "\"" msgstr "" -#: ../src/common/pdf.h:104 ../src/iop/borders.c:958 +#: ../src/common/pdf.h:104 ../src/iop/borders.c:971 msgid "A4" msgstr "" @@ -6276,66 +6566,65 @@ msgid "no images selected to apply rating" msgstr "" -#: ../src/common/ratings.c:275 ../src/libs/metadata_view.c:351 +#: ../src/common/ratings.c:274 ../src/libs/metadata_view.c:355 msgid "image rejected" msgstr "" -#: ../src/common/ratings.c:277 +#: ../src/common/ratings.c:276 msgid "image rated to 0 star" msgstr "" -#: ../src/common/ratings.c:279 +#: ../src/common/ratings.c:278 #, c-format msgid "image rated to %s" msgstr "" -#: ../src/common/ratings.c:306 ../src/libs/select.c:39 -#: ../src/views/lighttable.c:766 +#: ../src/common/ratings.c:305 ../src/views/lighttable.c:766 msgid "select" msgstr "" -#: ../src/common/ratings.c:307 +#: ../src/common/ratings.c:306 msgid "upgrade" msgstr "" -#: ../src/common/ratings.c:308 +#: ../src/common/ratings.c:307 msgid "downgrade" msgstr "" -#: ../src/common/ratings.c:312 +#: ../src/common/ratings.c:311 msgid "zero" msgstr "" -#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:277 +#: ../src/common/ratings.c:312 ../src/libs/filters/rating_range.c:304 msgid "one" msgstr "" -#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:278 +#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:305 msgid "two" msgstr "" -#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:279 +#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:306 msgid "three" msgstr "" -#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:280 +#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:307 msgid "four" msgstr "" -#: ../src/common/ratings.c:317 ../src/libs/filters/rating_range.c:281 +#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:308 msgid "five" msgstr "" -#: ../src/common/ratings.c:318 +#: ../src/common/ratings.c:317 msgid "reject" msgstr "" -#: ../src/common/styles.c:244 +#: ../src/common/styles.c:243 #, c-format msgid "style with name '%s' already exists" msgstr "" -#: ../src/common/styles.c:270 ../src/common/styles.c:1776 +#: ../src/common/styles.c:270 ../src/common/styles.c:1783 #: ../src/libs/styles.c:54 msgid "styles" msgstr "" @@ -6345,57 +6634,57 @@ msgid "style named '%s' successfully created" msgstr "" -#: ../src/common/styles.c:689 ../src/common/styles.c:719 -#: ../src/common/styles.c:759 ../src/dtgtk/culling.c:1097 +#: ../src/common/styles.c:688 ../src/common/styles.c:718 +#: ../src/common/styles.c:758 ../src/dtgtk/culling.c:1066 msgid "no image selected!" msgstr "" -#: ../src/common/styles.c:693 +#: ../src/common/styles.c:692 #, c-format msgid "style %s successfully applied!" msgstr "" -#: ../src/common/styles.c:709 +#: ../src/common/styles.c:708 msgid "no images nor styles selected!" msgstr "" -#: ../src/common/styles.c:714 +#: ../src/common/styles.c:713 msgid "no styles selected!" msgstr "" -#: ../src/common/styles.c:744 +#: ../src/common/styles.c:743 msgid "style successfully applied!" msgid_plural "styles successfully applied!" msgstr[0] "" msgstr[1] "" -#: ../src/common/styles.c:840 +#: ../src/common/styles.c:838 #, c-format msgid "module `%s' version mismatch: %d != %d" msgstr "" -#: ../src/common/styles.c:1124 +#: ../src/common/styles.c:1125 #, c-format msgid "applied style `%s' on current image" msgstr "" -#: ../src/common/styles.c:1378 +#: ../src/common/styles.c:1383 #, c-format msgid "failed to overwrite style file for %s" msgstr "" -#: ../src/common/styles.c:1384 +#: ../src/common/styles.c:1389 #, c-format msgid "style file for %s exists" msgstr "" -#: ../src/common/styles.c:1667 +#: ../src/common/styles.c:1674 #, c-format msgid "style %s was successfully imported" msgstr "" #. Failed to open file, clean up. -#: ../src/common/styles.c:1711 +#: ../src/common/styles.c:1718 #, c-format msgid "could not read file `%s'" msgstr "" @@ -6408,10 +6697,18 @@ msgid "below sea level" msgstr "" -#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:880 +#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:907 msgid "m" msgstr "" +#: ../src/common/variables.c:712 ../src/develop/imageop_gui.c:210 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "yes" +msgstr "" + #. Column 1 - "make" of the camera. #. * Column 2 - "model" (use the "make" and "model" as provided by DCRaw). #. * Column 3 - WB name. @@ -6424,7 +6721,7 @@ #. * #. * WB name is standardized to one of the following: #. "Sunlight" and other variation should be switched to this: -#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:323 +#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:320 msgid "daylight" msgstr "" @@ -6524,7 +6821,7 @@ msgid "underwater" msgstr "" -#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2447 +#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2286 msgid "black & white" msgstr "" @@ -6544,231 +6841,235 @@ msgid "auto WB" msgstr "" -#: ../src/control/control.c:66 ../src/gui/accelerators.c:138 -#: ../src/views/darkroom.c:2162 +#: ../src/control/control.c:69 ../src/gui/accelerators.c:156 +#: ../src/views/darkroom.c:2029 msgid "hold" msgstr "" -#: ../src/control/control.c:102 ../src/control/control.c:205 +#: ../src/control/control.c:108 ../src/control/control.c:214 msgid "modifiers" msgstr "" -#: ../src/control/control.c:111 +#: ../src/control/control.c:117 msgctxt "accel" msgid "global" msgstr "" -#: ../src/control/control.c:118 +#: ../src/control/control.c:124 msgctxt "accel" msgid "views" msgstr "" -#: ../src/control/control.c:125 +#: ../src/control/control.c:131 msgctxt "accel" msgid "thumbtable" msgstr "" -#: ../src/control/control.c:132 +#: ../src/control/control.c:138 msgctxt "accel" msgid "utility modules" msgstr "" -#: ../src/control/control.c:139 +#: ../src/control/control.c:145 msgctxt "accel" msgid "format" msgstr "" -#: ../src/control/control.c:146 +#: ../src/control/control.c:152 msgctxt "accel" msgid "storage" msgstr "" -#: ../src/control/control.c:153 +#: ../src/control/control.c:159 msgctxt "accel" msgid "processing modules" msgstr "" -#: ../src/control/control.c:160 +#: ../src/control/control.c:166 msgctxt "accel" msgid "<blending>" msgstr "" -#: ../src/control/control.c:167 +#: ../src/control/control.c:173 msgctxt "accel" msgid "Lua scripts" msgstr "" -#: ../src/control/control.c:174 +#: ../src/control/control.c:180 msgctxt "accel" msgid "fallbacks" msgstr "" -#: ../src/control/control.c:183 +#: ../src/control/control.c:189 msgctxt "accel" msgid "<focused>" msgstr "" -#: ../src/control/control.c:202 +#: ../src/control/control.c:209 msgid "show accels window" msgstr "" -#: ../src/control/control.c:363 +#: ../src/control/control.c:371 msgid "working..." msgstr "" -#: ../src/control/crawler.c:425 +#: ../src/control/crawler.c:418 #, c-format msgid "ERROR: %s NOT synced XMP → DB" msgstr "" -#: ../src/control/crawler.c:426 ../src/control/crawler.c:492 -#: ../src/control/crawler.c:561 +#: ../src/control/crawler.c:419 ../src/control/crawler.c:485 +#: ../src/control/crawler.c:554 msgid "" "ERROR: cannot write the database. the destination may be full, offline or " "read-only." msgstr "" -#: ../src/control/crawler.c:433 +#: ../src/control/crawler.c:426 #, c-format msgid "SUCCESS: %s synced XMP → DB" msgstr "" -#: ../src/control/crawler.c:455 +#: ../src/control/crawler.c:448 #, c-format msgid "ERROR: %s NOT synced DB → XMP" msgstr "" -#: ../src/control/crawler.c:457 ../src/control/crawler.c:516 -#: ../src/control/crawler.c:582 +#: ../src/control/crawler.c:450 ../src/control/crawler.c:509 +#: ../src/control/crawler.c:575 #, c-format msgid "" "ERROR: cannot write %s \n" "the destination may be full, offline or read-only." msgstr "" -#: ../src/control/crawler.c:463 +#: ../src/control/crawler.c:456 #, c-format msgid "SUCCESS: %s synced DB → XMP" msgstr "" -#: ../src/control/crawler.c:489 +#: ../src/control/crawler.c:482 #, c-format msgid "ERROR: %s NOT synced new (XMP) → old (DB)" msgstr "" -#: ../src/control/crawler.c:499 +#: ../src/control/crawler.c:492 #, c-format msgid "SUCCESS: %s synced new (XMP) → old (DB)" msgstr "" -#: ../src/control/crawler.c:513 +#: ../src/control/crawler.c:506 #, c-format msgid "ERROR: %s NOT synced new (DB) → old (XMP)" msgstr "" -#: ../src/control/crawler.c:521 +#: ../src/control/crawler.c:514 #, c-format msgid "SUCCESS: %s synced new (DB) → old (XMP)" msgstr "" -#: ../src/control/crawler.c:530 ../src/control/crawler.c:598 +#: ../src/control/crawler.c:523 ../src/control/crawler.c:591 #, c-format msgid "EXCEPTION: %s has inconsistent timestamps" msgstr "" -#: ../src/control/crawler.c:558 +#: ../src/control/crawler.c:551 #, c-format msgid "ERROR: %s NOT synced old (XMP) → new (DB)" msgstr "" -#: ../src/control/crawler.c:567 +#: ../src/control/crawler.c:560 #, c-format msgid "SUCCESS: %s synced old (XMP) → new (DB)" msgstr "" -#: ../src/control/crawler.c:579 +#: ../src/control/crawler.c:572 #, c-format msgid "ERROR: %s NOT synced old (DB) → new (XMP)" msgstr "" -#: ../src/control/crawler.c:588 +#: ../src/control/crawler.c:581 #, c-format msgid "SUCCESS: %s synced old (DB) → new (XMP)" msgstr "" -#: ../src/control/crawler.c:670 +#: ../src/control/crawler.c:663 #, c-format msgid "%id %02dh %02dm %02ds" msgstr "" -#: ../src/control/crawler.c:740 ../src/imageio/storage/disk.c:168 -#: ../src/imageio/storage/gallery.c:154 ../src/imageio/storage/latex.c:153 -#: ../src/imageio/storage/latex.c:171 +#: ../src/control/crawler.c:716 +msgid "XMP" +msgstr "" + +#: ../src/control/crawler.c:733 ../src/imageio/storage/disk.c:250 +#: ../src/imageio/storage/gallery.c:202 ../src/imageio/storage/latex.c:190 +#: ../src/imageio/storage/latex.c:208 msgid "path" msgstr "" -#: ../src/control/crawler.c:749 +#: ../src/control/crawler.c:742 msgid "XMP timestamp" msgstr "" -#: ../src/control/crawler.c:754 +#: ../src/control/crawler.c:747 msgid "database timestamp" msgstr "" -#: ../src/control/crawler.c:759 +#: ../src/control/crawler.c:752 msgid "newest" msgstr "" -#: ../src/control/crawler.c:765 +#: ../src/control/crawler.c:758 msgid "time difference" msgstr "" -#: ../src/control/crawler.c:777 +#: ../src/control/crawler.c:770 msgid "updated XMP sidecar files found" msgstr "" -#: ../src/control/crawler.c:778 +#: ../src/control/crawler.c:771 msgid "_close" msgstr "" #. setup selection accelerators #. action-box -#: ../src/control/crawler.c:793 ../src/dtgtk/thumbtable.c:2578 -#: ../src/libs/import.c:1722 ../src/libs/select.c:135 +#: ../src/control/crawler.c:786 ../src/dtgtk/thumbtable.c:2755 +#: ../src/libs/import.c:1732 ../src/libs/select.c:136 msgid "select all" msgstr "" -#: ../src/control/crawler.c:794 ../src/dtgtk/thumbtable.c:2580 -#: ../src/libs/import.c:1726 ../src/libs/select.c:139 +#: ../src/control/crawler.c:787 ../src/dtgtk/thumbtable.c:2757 +#: ../src/libs/import.c:1736 ../src/libs/select.c:140 msgid "select none" msgstr "" -#: ../src/control/crawler.c:795 ../src/dtgtk/thumbtable.c:2582 -#: ../src/libs/select.c:143 +#: ../src/control/crawler.c:788 ../src/dtgtk/thumbtable.c:2759 +#: ../src/libs/select.c:144 msgid "invert selection" msgstr "" -#: ../src/control/crawler.c:807 +#: ../src/control/crawler.c:800 msgid "on the selection:" msgstr "" -#: ../src/control/crawler.c:808 +#: ../src/control/crawler.c:801 msgid "keep the XMP edit" msgstr "" -#: ../src/control/crawler.c:809 +#: ../src/control/crawler.c:802 msgid "keep the database edit" msgstr "" -#: ../src/control/crawler.c:810 +#: ../src/control/crawler.c:803 msgid "keep the newest edit" msgstr "" -#: ../src/control/crawler.c:811 +#: ../src/control/crawler.c:804 msgid "keep the oldest edit" msgstr "" -#: ../src/control/crawler.c:836 +#: ../src/control/crawler.c:829 msgid "synchronization log" msgstr "" @@ -6798,6 +7099,10 @@ msgid "starting to import images from camera" msgstr "" +#: ../src/control/jobs/camera_jobs.c:302 +msgid "failed to import images from camera." +msgstr "" + #: ../src/control/jobs/camera_jobs.c:309 #, c-format msgid "importing %d image from camera" @@ -6897,7 +7202,8 @@ msgid "_remove from library" msgstr "" -#: ../src/control/jobs/control_jobs.c:884 +#: ../src/control/jobs/control_jobs.c:884 ../src/libs/styles.c:440 +#: ../src/libs/styles.c:625 msgid "_skip" msgstr "" @@ -6995,42 +7301,42 @@ msgid "exporting %d / %d to %s" msgstr "" -#: ../src/control/jobs/control_jobs.c:1459 ../src/views/darkroom.c:800 +#: ../src/control/jobs/control_jobs.c:1451 ../src/views/darkroom.c:721 #: ../src/views/print.c:369 #, c-format msgid "image `%s' is currently unavailable" msgstr "" -#: ../src/control/jobs/control_jobs.c:1551 +#: ../src/control/jobs/control_jobs.c:1554 msgid "merge HDR image" msgstr "" -#: ../src/control/jobs/control_jobs.c:1565 +#: ../src/control/jobs/control_jobs.c:1568 msgid "duplicate images" msgstr "" -#: ../src/control/jobs/control_jobs.c:1571 +#: ../src/control/jobs/control_jobs.c:1574 msgid "flip images" msgstr "" -#: ../src/control/jobs/control_jobs.c:1578 +#: ../src/control/jobs/control_jobs.c:1581 msgid "set monochrome images" msgstr "" #. get all selected images now, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1585 +#: ../src/control/jobs/control_jobs.c:1588 msgid "remove images" msgstr "" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove image?" msgstr "" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove images?" msgstr "" -#: ../src/control/jobs/control_jobs.c:1599 +#: ../src/control/jobs/control_jobs.c:1602 #, c-format msgid "" "do you really want to remove %d image from darktable\n" @@ -7042,21 +7348,21 @@ msgstr[1] "" #. first get all selected images, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1614 -#: ../src/control/jobs/control_jobs.c:1647 +#: ../src/control/jobs/control_jobs.c:1617 +#: ../src/control/jobs/control_jobs.c:1650 msgid "delete images" msgstr "" -#: ../src/control/jobs/control_jobs.c:1630 -#: ../src/control/jobs/control_jobs.c:1660 +#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1663 msgid "delete image?" msgstr "" -#: ../src/control/jobs/control_jobs.c:1630 +#: ../src/control/jobs/control_jobs.c:1633 msgid "delete images?" msgstr "" -#: ../src/control/jobs/control_jobs.c:1631 +#: ../src/control/jobs/control_jobs.c:1634 #, c-format msgid "" "do you really want to physically delete %d image\n" @@ -7067,39 +7373,39 @@ msgstr[0] "" msgstr[1] "" -#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1636 #, c-format msgid "do you really want to physically delete %d image from disk?" msgid_plural "do you really want to physically delete %d images from disk?" msgstr[0] "" msgstr[1] "" -#: ../src/control/jobs/control_jobs.c:1661 +#: ../src/control/jobs/control_jobs.c:1664 msgid "" "do you really want to physically delete selected image (using trash if " "possible)?" msgstr "" -#: ../src/control/jobs/control_jobs.c:1662 +#: ../src/control/jobs/control_jobs.c:1665 msgid "do you really want to physically delete selected image from disk?" msgstr "" -#: ../src/control/jobs/control_jobs.c:1677 +#: ../src/control/jobs/control_jobs.c:1680 msgid "move images" msgstr "" -#: ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 msgid "_select as destination" msgstr "" -#: ../src/control/jobs/control_jobs.c:1708 +#: ../src/control/jobs/control_jobs.c:1711 msgid "move image?" msgid_plural "move images?" msgstr[0] "" msgstr[1] "" -#: ../src/control/jobs/control_jobs.c:1709 +#: ../src/control/jobs/control_jobs.c:1712 #, c-format msgid "" "do you really want to physically move %d image to %s?\n" @@ -7110,115 +7416,110 @@ msgstr[0] "" msgstr[1] "" -#: ../src/control/jobs/control_jobs.c:1731 +#: ../src/control/jobs/control_jobs.c:1734 msgid "copy images" msgstr "" -#: ../src/control/jobs/control_jobs.c:1762 +#: ../src/control/jobs/control_jobs.c:1765 msgid "copy image?" msgid_plural "copy images?" msgstr[0] "" msgstr[1] "" -#: ../src/control/jobs/control_jobs.c:1763 +#: ../src/control/jobs/control_jobs.c:1766 #, c-format msgid "do you really want to physically copy %d image to %s?" msgid_plural "do you really want to physically copy %d images to %s?" msgstr[0] "" msgstr[1] "" -#: ../src/control/jobs/control_jobs.c:1781 -#: ../src/control/jobs/control_jobs.c:1789 +#: ../src/control/jobs/control_jobs.c:1784 +#: ../src/control/jobs/control_jobs.c:1792 msgid "local copy images" msgstr "" -#: ../src/control/jobs/control_jobs.c:1796 ../src/libs/image.c:604 +#: ../src/control/jobs/control_jobs.c:1799 ../src/libs/image.c:674 msgid "refresh EXIF" msgstr "" -#: ../src/control/jobs/control_jobs.c:1860 +#: ../src/control/jobs/control_jobs.c:1863 #, c-format msgid "failed to get parameters from storage module `%s', aborting export.." msgstr "" -#: ../src/control/jobs/control_jobs.c:1876 +#: ../src/control/jobs/control_jobs.c:1879 msgid "export images" msgstr "" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "adding time offset to %d image" msgstr "" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "setting date/time of %d image" msgstr "" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "adding time offset to %d images" msgstr "" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "setting date/time of %d images" msgstr "" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "added time offset to %d image" msgstr "" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "set date/time of %d image" msgstr "" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "added time offset to %d images" msgstr "" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "set date/time of %d images" msgstr "" -#: ../src/control/jobs/control_jobs.c:2014 +#: ../src/control/jobs/control_jobs.c:2017 msgid "time offset" msgstr "" -#: ../src/control/jobs/control_jobs.c:2042 ../src/libs/copy_history.c:414 +#: ../src/control/jobs/control_jobs.c:2045 ../src/libs/copy_history.c:414 msgid "write sidecar files" msgstr "" -#: ../src/control/jobs/control_jobs.c:2256 ../src/control/jobs/film_jobs.c:297 +#: ../src/control/jobs/control_jobs.c:2259 ../src/control/jobs/film_jobs.c:297 #, c-format msgid "importing %d image" msgid_plural "importing %d images" msgstr[0] "" msgstr[1] "" -#: ../src/control/jobs/control_jobs.c:2292 +#: ../src/control/jobs/control_jobs.c:2295 #, c-format msgid "importing %d/%d image" msgid_plural "importing %d/%d images" msgstr[0] "" msgstr[1] "" -#: ../src/control/jobs/control_jobs.c:2300 +#: ../src/control/jobs/control_jobs.c:2305 #, c-format msgid "imported %d image" msgid_plural "imported %d images" msgstr[0] "" msgstr[1] "" -#: ../src/control/jobs/control_jobs.c:2347 ../src/gui/preferences.c:530 -#: ../src/libs/import.c:172 -msgid "import" -msgstr "" - #: ../src/control/jobs/film_jobs.c:73 ../src/control/jobs/film_jobs.c:109 msgid "import images" msgstr "" @@ -7236,11 +7537,11 @@ msgid "import image" msgstr "" -#: ../src/develop/blend.c:322 +#: ../src/develop/blend.c:315 msgid "detail mask blending error" msgstr "" -#: ../src/develop/blend.c:864 +#: ../src/develop/blend.c:904 msgid "detail mask CL blending problem" msgstr "" @@ -7441,8 +7742,7 @@ msgid "reverse" msgstr "" -#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:413 -#: ../src/libs/metadata.c:631 ../src/libs/metadata_view.c:1193 +#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:442 msgid "default" msgstr "" @@ -7450,35 +7750,35 @@ msgid "RAW" msgstr "" -#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2014 +#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2030 msgid "RGB (display)" msgstr "" -#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2027 +#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2043 msgid "RGB (scene)" msgstr "" #. DEVELOP_MASK_ENABLED -#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3419 +#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3438 msgid "uniformly" msgstr "" -#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:3429 ../src/develop/imageop.c:2660 +#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:3448 ../src/develop/imageop.c:2669 msgid "drawn mask" msgstr "" -#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2512 -#: ../src/develop/blend_gui.c:3440 ../src/develop/imageop.c:2662 +#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2528 +#: ../src/develop/blend_gui.c:3459 ../src/develop/imageop.c:2671 msgid "parametric mask" msgstr "" -#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2951 -#: ../src/develop/blend_gui.c:3467 ../src/develop/imageop.c:2664 +#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2966 +#: ../src/develop/blend_gui.c:3486 ../src/develop/imageop.c:2673 msgid "raster mask" msgstr "" -#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3454 +#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3473 msgid "drawn & parametric mask" msgstr "" @@ -7514,177 +7814,177 @@ msgid "input after blur" msgstr "" -#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:129 -#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/libs/live_view.c:362 +#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:157 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/libs/live_view.c:362 msgid "on" msgstr "" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "input" msgstr "" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "output" msgstr "" -#: ../src/develop/blend_gui.c:995 +#: ../src/develop/blend_gui.c:998 msgid " (zoom)" msgstr "" -#: ../src/develop/blend_gui.c:1003 +#: ../src/develop/blend_gui.c:1006 msgid " (log)" msgstr "" -#: ../src/develop/blend_gui.c:1988 +#: ../src/develop/blend_gui.c:2004 msgid "reset to default blend colorspace" msgstr "" -#: ../src/develop/blend_gui.c:2044 +#: ../src/develop/blend_gui.c:2060 msgid "reset and hide output channels" msgstr "" -#: ../src/develop/blend_gui.c:2051 +#: ../src/develop/blend_gui.c:2067 msgid "show output channels" msgstr "" -#: ../src/develop/blend_gui.c:2290 ../src/develop/blend_gui.c:2357 -#: ../src/iop/tonecurve.c:1134 +#: ../src/develop/blend_gui.c:2306 ../src/develop/blend_gui.c:2373 +#: ../src/iop/tonecurve.c:1156 msgid "L" msgstr "" -#: ../src/develop/blend_gui.c:2290 +#: ../src/develop/blend_gui.c:2306 msgid "sliders for L channel" msgstr "" -#: ../src/develop/blend_gui.c:2295 ../src/iop/tonecurve.c:1135 +#: ../src/develop/blend_gui.c:2311 ../src/iop/tonecurve.c:1157 msgid "a" msgstr "" -#: ../src/develop/blend_gui.c:2295 +#: ../src/develop/blend_gui.c:2311 msgid "sliders for a channel" msgstr "" -#: ../src/develop/blend_gui.c:2299 +#: ../src/develop/blend_gui.c:2315 msgid "green/red" msgstr "" -#: ../src/develop/blend_gui.c:2300 ../src/iop/tonecurve.c:1136 +#: ../src/develop/blend_gui.c:2316 ../src/iop/tonecurve.c:1158 msgid "b" msgstr "" -#: ../src/develop/blend_gui.c:2300 +#: ../src/develop/blend_gui.c:2316 msgid "sliders for b channel" msgstr "" -#: ../src/develop/blend_gui.c:2304 +#: ../src/develop/blend_gui.c:2320 msgid "blue/yellow" msgstr "" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "C" msgstr "" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "sliders for chroma channel (of LCh)" msgstr "" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "h" msgstr "" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "sliders for hue channel (of LCh)" msgstr "" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "g" msgstr "" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "sliders for gray value" msgstr "" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/denoiseprofile.c:3710 -#: ../src/iop/rawdenoise.c:894 ../src/iop/rgbcurve.c:1358 -#: ../src/iop/rgblevels.c:1003 ../src/libs/filters/colors.c:137 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/denoiseprofile.c:3714 +#: ../src/iop/rawdenoise.c:910 ../src/iop/rgbcurve.c:1358 +#: ../src/iop/rgblevels.c:1043 ../src/libs/filters/colors.c:137 msgid "R" msgstr "" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 msgid "sliders for red channel" msgstr "" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/denoiseprofile.c:3711 -#: ../src/iop/rawdenoise.c:895 ../src/iop/rgbcurve.c:1359 -#: ../src/iop/rgblevels.c:1004 ../src/libs/filters/colors.c:143 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/denoiseprofile.c:3715 +#: ../src/iop/rawdenoise.c:911 ../src/iop/rgbcurve.c:1359 +#: ../src/iop/rgblevels.c:1044 ../src/libs/filters/colors.c:143 msgid "G" msgstr "" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 msgid "sliders for green channel" msgstr "" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/denoiseprofile.c:3712 -#: ../src/iop/rawdenoise.c:896 ../src/iop/rgbcurve.c:1360 -#: ../src/iop/rgblevels.c:1005 ../src/libs/filters/colors.c:146 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/denoiseprofile.c:3716 +#: ../src/iop/rawdenoise.c:912 ../src/iop/rgbcurve.c:1360 +#: ../src/iop/rgblevels.c:1045 ../src/libs/filters/colors.c:146 msgid "B" msgstr "" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 msgid "sliders for blue channel" msgstr "" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "H" msgstr "" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "sliders for hue channel (of HSL)" msgstr "" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "S" msgstr "" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "sliders for chroma channel (of HSL)" msgstr "" -#: ../src/develop/blend_gui.c:2357 +#: ../src/develop/blend_gui.c:2373 msgid "sliders for value channel (of HSL)" msgstr "" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "Jz" msgstr "" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "sliders for value channel (of JzCzhz)" msgstr "" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "Cz" msgstr "" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "sliders for chroma channel (of JzCzhz)" msgstr "" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "hz" msgstr "" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "sliders for hue channel (of JzCzhz)" msgstr "" -#: ../src/develop/blend_gui.c:2415 +#: ../src/develop/blend_gui.c:2431 msgid "" "adjustment based on input received by this module:\n" "* range defined by upper markers: blend fully\n" @@ -7692,7 +7992,7 @@ "* range between adjacent upper/lower markers: blend gradually" msgstr "" -#: ../src/develop/blend_gui.c:2419 +#: ../src/develop/blend_gui.c:2435 msgid "" "adjustment based on unblended output of this module:\n" "* range defined by upper markers: blend fully\n" @@ -7700,49 +8000,49 @@ "* range between adjacent upper/lower markers: blend gradually" msgstr "" -#: ../src/develop/blend_gui.c:2516 +#: ../src/develop/blend_gui.c:2532 msgid "reset blend mask settings" msgstr "" -#: ../src/develop/blend_gui.c:2527 ../src/iop/atrous.c:1665 -#: ../src/iop/colorzones.c:2399 ../src/iop/denoiseprofile.c:3707 -#: ../src/iop/rawdenoise.c:891 ../src/iop/rgbcurve.c:1357 -#: ../src/iop/rgblevels.c:1002 ../src/iop/tonecurve.c:1133 +#: ../src/develop/blend_gui.c:2543 ../src/iop/atrous.c:1797 +#: ../src/iop/colorzones.c:2641 ../src/iop/denoiseprofile.c:3711 +#: ../src/iop/rawdenoise.c:907 ../src/iop/rgbcurve.c:1357 +#: ../src/iop/rgblevels.c:1041 ../src/iop/tonecurve.c:1155 msgid "channel" msgstr "" -#: ../src/develop/blend_gui.c:2542 ../src/iop/colorzones.c:2413 -#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1142 +#: ../src/develop/blend_gui.c:2558 ../src/iop/colorzones.c:2660 +#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1164 msgid "" "pick GUI color from image\n" "ctrl+click or right-click to select an area" msgstr "" -#: ../src/develop/blend_gui.c:2545 ../src/iop/colorzones.c:2415 +#: ../src/develop/blend_gui.c:2561 ../src/iop/colorzones.c:2662 #: ../src/iop/rgbcurve.c:1369 msgid "show color" msgstr "" -#: ../src/develop/blend_gui.c:2554 +#: ../src/develop/blend_gui.c:2570 msgid "" "set the range based on an area from the image\n" "drag to use the input image\n" "ctrl+drag to use the output image" msgstr "" -#: ../src/develop/blend_gui.c:2557 +#: ../src/develop/blend_gui.c:2573 msgid "set range" msgstr "" -#: ../src/develop/blend_gui.c:2560 +#: ../src/develop/blend_gui.c:2576 msgid "invert all channel's polarities" msgstr "" -#: ../src/develop/blend_gui.c:2584 +#: ../src/develop/blend_gui.c:2600 msgid "toggle polarity. best seen by enabling 'display mask'" msgstr "" -#: ../src/develop/blend_gui.c:2613 +#: ../src/develop/blend_gui.c:2629 msgid "" "double-click to reset.\n" "press 'a' to toggle available slider modes.\n" @@ -7750,294 +8050,306 @@ "press 'm' to toggle mask view." msgstr "" -#: ../src/develop/blend_gui.c:2640 ../src/develop/blend_gui.c:3531 -#: ../src/iop/basicadj.c:600 ../src/iop/colorbalancergb.c:2090 -#: ../src/iop/exposure.c:1120 ../src/iop/exposure.c:1135 -#: ../src/iop/filmic.c:1503 ../src/iop/filmic.c:1516 ../src/iop/filmic.c:1558 -#: ../src/iop/filmicrgb.c:4440 ../src/iop/filmicrgb.c:4451 -#: ../src/iop/filmicrgb.c:4485 ../src/iop/filmicrgb.c:4495 -#: ../src/iop/graduatednd.c:1113 ../src/iop/negadoctor.c:1011 -#: ../src/iop/profile_gamma.c:643 ../src/iop/profile_gamma.c:649 -#: ../src/iop/relight.c:262 ../src/iop/soften.c:378 ../src/iop/toneequal.c:3326 -#: ../src/iop/toneequal.c:3329 ../src/iop/toneequal.c:3332 -#: ../src/iop/toneequal.c:3335 ../src/iop/toneequal.c:3338 -#: ../src/iop/toneequal.c:3341 ../src/iop/toneequal.c:3344 -#: ../src/iop/toneequal.c:3347 ../src/iop/toneequal.c:3350 -#: ../src/iop/toneequal.c:3472 ../src/iop/toneequal.c:3481 -#: ../src/iop/toneequal.c:3494 ../src/views/darkroom.c:2453 +#: ../src/develop/blend_gui.c:2656 ../src/develop/blend_gui.c:3577 +#: ../src/iop/basicadj.c:630 ../src/iop/colorbalancergb.c:2161 +#: ../src/iop/exposure.c:1138 ../src/iop/exposure.c:1153 +#: ../src/iop/filmic.c:1528 ../src/iop/filmic.c:1541 ../src/iop/filmic.c:1583 +#: ../src/iop/filmicrgb.c:4504 ../src/iop/filmicrgb.c:4515 +#: ../src/iop/filmicrgb.c:4549 ../src/iop/filmicrgb.c:4559 +#: ../src/iop/graduatednd.c:1082 ../src/iop/negadoctor.c:1030 +#: ../src/iop/profile_gamma.c:657 ../src/iop/profile_gamma.c:663 +#: ../src/iop/relight.c:258 ../src/iop/soften.c:373 ../src/iop/toneequal.c:3379 +#: ../src/iop/toneequal.c:3382 ../src/iop/toneequal.c:3385 +#: ../src/iop/toneequal.c:3388 ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3394 ../src/iop/toneequal.c:3397 +#: ../src/iop/toneequal.c:3400 ../src/iop/toneequal.c:3403 +#: ../src/iop/toneequal.c:3525 ../src/iop/toneequal.c:3534 +#: ../src/iop/toneequal.c:3547 ../src/views/darkroom.c:2292 msgid " EV" msgstr "" -#: ../src/develop/blend_gui.c:2642 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:2951 ../src/develop/blend_gui.c:3014 -#: ../src/develop/blend_gui.c:3499 ../src/develop/blend_gui.c:3529 -#: ../src/develop/blend_gui.c:3542 ../src/develop/blend_gui.c:3559 -#: ../src/develop/blend_gui.c:3583 ../src/develop/blend_gui.c:3593 -#: ../src/develop/blend_gui.c:3602 ../src/develop/blend_gui.c:3613 +#: ../src/develop/blend_gui.c:2658 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:2966 ../src/develop/blend_gui.c:3029 +#: ../src/develop/blend_gui.c:3545 ../src/develop/blend_gui.c:3575 +#: ../src/develop/blend_gui.c:3588 ../src/develop/blend_gui.c:3605 +#: ../src/develop/blend_gui.c:3629 ../src/develop/blend_gui.c:3641 +#: ../src/develop/blend_gui.c:3652 ../src/develop/blend_gui.c:3663 msgid "blend" msgstr "" -#: ../src/develop/blend_gui.c:2642 +#: ../src/develop/blend_gui.c:2658 msgid "boost factor" msgstr "" -#: ../src/develop/blend_gui.c:2645 +#: ../src/develop/blend_gui.c:2661 msgid "adjust the boost factor of the channel mask" msgstr "" -#: ../src/develop/blend_gui.c:2682 +#: ../src/develop/blend_gui.c:2698 #, c-format msgid "%d shape used" msgid_plural "%d shapes used" msgstr[0] "" msgstr[1] "" -#: ../src/develop/blend_gui.c:2687 ../src/develop/blend_gui.c:2743 -#: ../src/develop/blend_gui.c:2831 ../src/develop/blend_gui.c:2952 +#: ../src/develop/blend_gui.c:2703 ../src/develop/blend_gui.c:2759 +#: ../src/develop/blend_gui.c:2847 ../src/develop/blend_gui.c:2967 msgid "no mask used" msgstr "" -#: ../src/develop/blend_gui.c:2751 +#: ../src/develop/blend_gui.c:2767 msgid "toggle polarity of drawn mask" msgstr "" -#: ../src/develop/blend_gui.c:2760 +#: ../src/develop/blend_gui.c:2776 msgid "show and edit mask elements" msgstr "" -#: ../src/develop/blend_gui.c:2761 +#: ../src/develop/blend_gui.c:2777 msgid "show and edit in restricted mode" msgstr "" -#: ../src/develop/blend_gui.c:2768 ../src/libs/masks.c:998 -#: ../src/libs/masks.c:1816 ../src/libs/masks.c:1820 +#: ../src/develop/blend_gui.c:2784 ../src/libs/masks.c:1014 +#: ../src/libs/masks.c:1812 ../src/libs/masks.c:1816 msgid "add gradient" msgstr "" -#: ../src/develop/blend_gui.c:2769 +#: ../src/develop/blend_gui.c:2785 msgid "add multiple gradients" msgstr "" -#: ../src/develop/blend_gui.c:2776 ../src/iop/retouch.c:2238 -#: ../src/libs/masks.c:978 ../src/libs/masks.c:1852 ../src/libs/masks.c:1856 +#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2466 +#: ../src/libs/masks.c:994 ../src/libs/masks.c:1848 ../src/libs/masks.c:1852 msgid "add brush" msgstr "" -#: ../src/develop/blend_gui.c:2777 ../src/iop/retouch.c:2238 +#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2466 msgid "add multiple brush strokes" msgstr "" -#: ../src/develop/blend_gui.c:2784 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 ../src/libs/masks.c:993 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1829 +#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 ../src/libs/masks.c:1009 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1825 msgid "add path" msgstr "" -#: ../src/develop/blend_gui.c:2785 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 +#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 msgid "add multiple paths" msgstr "" -#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 ../src/libs/masks.c:988 ../src/libs/masks.c:1834 -#: ../src/libs/masks.c:1838 +#: ../src/develop/blend_gui.c:2808 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 ../src/libs/masks.c:1004 ../src/libs/masks.c:1830 +#: ../src/libs/masks.c:1834 msgid "add ellipse" msgstr "" -#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 +#: ../src/develop/blend_gui.c:2809 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 msgid "add multiple ellipses" msgstr "" -#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 ../src/libs/masks.c:983 ../src/libs/masks.c:1843 -#: ../src/libs/masks.c:1847 +#: ../src/develop/blend_gui.c:2816 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 ../src/libs/masks.c:999 ../src/libs/masks.c:1839 +#: ../src/libs/masks.c:1843 msgid "add circle" msgstr "" -#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 +#: ../src/develop/blend_gui.c:2817 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 msgid "add multiple circles" msgstr "" -#: ../src/develop/blend_gui.c:2961 +#: ../src/develop/blend_gui.c:2976 msgid "toggle polarity of raster mask" msgstr "" -#: ../src/develop/blend_gui.c:3101 +#: ../src/develop/blend_gui.c:3119 msgid "normal & difference" msgstr "" -#: ../src/develop/blend_gui.c:3106 +#: ../src/develop/blend_gui.c:3124 msgid "lighten" msgstr "" -#: ../src/develop/blend_gui.c:3113 +#: ../src/develop/blend_gui.c:3131 msgid "darken" msgstr "" -#: ../src/develop/blend_gui.c:3120 +#: ../src/develop/blend_gui.c:3138 msgid "contrast enhancing" msgstr "" -#: ../src/develop/blend_gui.c:3127 ../src/develop/blend_gui.c:3150 +#: ../src/develop/blend_gui.c:3145 ../src/develop/blend_gui.c:3168 msgid "color channel" msgstr "" -#: ../src/develop/blend_gui.c:3138 ../src/develop/blend_gui.c:3153 +#: ../src/develop/blend_gui.c:3156 ../src/develop/blend_gui.c:3171 msgid "chromaticity & lightness" msgstr "" -#: ../src/develop/blend_gui.c:3145 +#: ../src/develop/blend_gui.c:3163 msgid "normal & arithmetic" msgstr "" #. add deprecated blend mode -#: ../src/develop/blend_gui.c:3166 +#: ../src/develop/blend_gui.c:3184 msgid "deprecated" msgstr "" -#: ../src/develop/blend_gui.c:3478 +#. should never happen: unknown blend mode +#: ../src/develop/blend_gui.c:3188 +#, c-format +msgid "unknown blend mode '%d' in module '%s'" +msgstr "" + +#: ../src/develop/blend_gui.c:3497 msgid "blending options" msgstr "" -#: ../src/develop/blend_gui.c:3500 ../src/libs/history.c:949 -msgid "blend mode" +#: ../src/develop/blend_gui.c:3516 +msgid "blend mask" +msgstr "" + +#: ../src/develop/blend_gui.c:3520 +msgid "display mask and/or color channel" +msgstr "" + +#: ../src/develop/blend_gui.c:3525 +msgid "" +"display mask and/or color channel.\n" +"ctrl+click to display mask,\n" +"shift+click to display channel.\n" +"hover over parametric mask slider to select channel for display" msgstr "" -#: ../src/develop/blend_gui.c:3503 +#: ../src/develop/blend_gui.c:3532 +msgid "temporarily switch off blend mask" +msgstr "" + +#: ../src/develop/blend_gui.c:3537 +msgid "" +"temporarily switch off blend mask.\n" +"only for module in focus" +msgstr "" + +#: ../src/develop/blend_gui.c:3549 msgid "choose blending mode" msgstr "" -#: ../src/develop/blend_gui.c:3513 +#: ../src/develop/blend_gui.c:3559 msgid "toggle blend order" msgstr "" -#: ../src/develop/blend_gui.c:3519 +#: ../src/develop/blend_gui.c:3565 msgid "" "toggle the blending order between the input and the output of the module,\n" "by default the output will be blended on top of the input,\n" "order can be reversed by clicking on the icon (input on top of output)" msgstr "" -#: ../src/develop/blend_gui.c:3530 ../src/libs/history.c:953 -msgid "blend fulcrum" +#: ../src/develop/blend_gui.c:3576 +msgid "fulcrum" msgstr "" -#: ../src/develop/blend_gui.c:3534 +#: ../src/develop/blend_gui.c:3580 msgid "adjust the fulcrum used by some blending operations" msgstr "" #. Add opacity/scale sliders to table -#: ../src/develop/blend_gui.c:3542 ../src/iop/watermark.c:1314 -#: ../src/libs/masks.c:104 +#: ../src/develop/blend_gui.c:3588 ../src/iop/watermark.c:1362 +#: ../src/libs/masks.c:105 msgid "opacity" msgstr "" -#: ../src/develop/blend_gui.c:3546 +#: ../src/develop/blend_gui.c:3591 msgid "set the opacity of the blending" msgstr "" -#: ../src/develop/blend_gui.c:3550 ../src/libs/history.c:956 +#: ../src/develop/blend_gui.c:3596 ../src/libs/history.c:956 msgid "combine masks" msgstr "" -#: ../src/develop/blend_gui.c:3552 +#: ../src/develop/blend_gui.c:3598 msgid "" "how to combine individual drawn mask and different channels of parametric " "mask" msgstr "" -#: ../src/develop/blend_gui.c:3559 +#: ../src/develop/blend_gui.c:3605 msgid "details threshold" msgstr "" -#: ../src/develop/blend_gui.c:3563 +#: ../src/develop/blend_gui.c:3609 msgid "" "adjust the threshold for the details mask (using raw data),\n" "positive values select areas with strong details,\n" "negative values select flat areas" msgstr "" -#: ../src/develop/blend_gui.c:3571 ../src/libs/history.c:959 +#: ../src/develop/blend_gui.c:3617 ../src/libs/history.c:959 msgid "feathering guide" msgstr "" -#: ../src/develop/blend_gui.c:3574 +#: ../src/develop/blend_gui.c:3620 msgid "" "choose to guide mask by input or output image and\n" "choose to apply feathering before or after mask blur" msgstr "" -#: ../src/develop/blend_gui.c:3583 ../src/libs/history.c:958 +#: ../src/develop/blend_gui.c:3629 ../src/libs/history.c:958 msgid "feathering radius" msgstr "" -#: ../src/develop/blend_gui.c:3586 +#: ../src/develop/blend_gui.c:3632 msgid "spatial radius of feathering" msgstr "" -#: ../src/develop/blend_gui.c:3593 +#: ../src/develop/blend_gui.c:3641 msgid "blurring radius" msgstr "" -#: ../src/develop/blend_gui.c:3596 +#: ../src/develop/blend_gui.c:3644 msgid "radius for gaussian blur of blend mask" msgstr "" -#: ../src/develop/blend_gui.c:3602 ../src/iop/retouch.c:2453 +#: ../src/develop/blend_gui.c:3652 ../src/iop/retouch.c:2738 #: ../src/libs/history.c:954 msgid "mask opacity" msgstr "" -#: ../src/develop/blend_gui.c:3606 +#: ../src/develop/blend_gui.c:3656 msgid "" "shifts and tilts the tone curve of the blend mask to adjust its brightness\n" "without affecting fully transparent/fully opaque regions" msgstr "" -#: ../src/develop/blend_gui.c:3613 ../src/libs/history.c:962 +#: ../src/develop/blend_gui.c:3663 ../src/libs/history.c:962 msgid "mask contrast" msgstr "" -#: ../src/develop/blend_gui.c:3617 +#: ../src/develop/blend_gui.c:3667 msgid "" "gives the tone curve of the blend mask an s-like shape to adjust its contrast" msgstr "" -#: ../src/develop/blend_gui.c:3621 +#: ../src/develop/blend_gui.c:3671 msgid "mask refinement" msgstr "" -#: ../src/develop/blend_gui.c:3625 -msgid "display mask and/or color channel" -msgstr "" - -#: ../src/develop/blend_gui.c:3630 -msgid "" -"display mask and/or color channel.\n" -"ctrl+click to display mask,\n" -"shift+click to display channel.\n" -"hover over parametric mask slider to select channel for display" -msgstr "" - -#: ../src/develop/blend_gui.c:3637 -msgid "temporarily switch off blend mask" -msgstr "" - -#: ../src/develop/blend_gui.c:3642 +#: ../src/develop/develop.c:732 msgid "" -"temporarily switch off blend mask.\n" -"only for module in focus" +"autosaving history has been disabled for this session because of a slow " +"drive used" msgstr "" -#: ../src/develop/develop.c:2303 +#: ../src/develop/develop.c:2202 #, c-format msgid "%s: module `%s' version mismatch: %d != %d" msgstr "" -#: ../src/develop/develop.c:2834 -msgid "module duplicate, can't move new instance after the base one\n" +#: ../src/develop/develop.c:3016 +msgid "duplicate module, can't move new instance after the base one\n" msgstr "" #: ../src/develop/imageop.c:1031 @@ -8048,96 +8360,95 @@ msgid "duplicate instance" msgstr "" -#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3739 -#: ../src/libs/masks.c:1152 +#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3755 +#: ../src/libs/masks.c:1146 msgid "move up" msgstr "" -#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3740 -#: ../src/libs/masks.c:1157 +#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3756 +#: ../src/libs/masks.c:1151 msgid "move down" msgstr "" #. delete button label and tooltip will be updated based on trash pref -#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3742 -#: ../src/gui/accelerators.c:155 ../src/gui/presets.c:562 -#: ../src/libs/image.c:285 ../src/libs/image.c:480 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 +#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3758 +#: ../src/gui/accelerators.c:173 ../src/libs/image.c:303 +#: ../src/libs/image.c:513 msgid "delete" msgstr "" -#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3743 -#: ../src/libs/modulegroups.c:3464 ../src/libs/modulegroups.c:3815 +#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3759 +#: ../src/libs/modulegroups.c:3817 msgid "rename" msgstr "" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched on" msgstr "" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched off" msgstr "" -#: ../src/develop/imageop.c:2654 +#: ../src/develop/imageop.c:2663 msgid "unknown mask" msgstr "" -#: ../src/develop/imageop.c:2658 +#: ../src/develop/imageop.c:2667 msgid "drawn + parametric mask" msgstr "" -#: ../src/develop/imageop.c:2667 +#: ../src/develop/imageop.c:2676 #, c-format msgid "this module has a `%s'" msgstr "" -#: ../src/develop/imageop.c:2672 +#: ../src/develop/imageop.c:2681 #, c-format msgid "taken from module %s" msgstr "" -#: ../src/develop/imageop.c:2677 +#: ../src/develop/imageop.c:2686 msgid "click to display (module must be activated first)" msgstr "" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "purpose" msgstr "" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "process" msgstr "" -#: ../src/develop/imageop.c:2906 +#: ../src/develop/imageop.c:2917 msgid "" "multiple instance actions\n" "right-click creates new instance" msgstr "" -#: ../src/develop/imageop.c:2921 +#: ../src/develop/imageop.c:2932 msgid "" "reset parameters\n" "ctrl+click to reapply any automatic presets" msgstr "" -#: ../src/develop/imageop.c:2933 +#: ../src/develop/imageop.c:2944 msgid "" "presets\n" "right-click to apply on new instance" msgstr "" -#: ../src/develop/imageop.c:3183 ../src/develop/imageop.c:3205 +#: ../src/develop/imageop.c:3194 ../src/develop/imageop.c:3216 msgid "ERROR" msgstr "" -#: ../src/develop/imageop.c:3620 +#: ../src/develop/imageop.c:3622 msgid "unsupported input" msgstr "" -#: ../src/develop/imageop.c:3621 +#: ../src/develop/imageop.c:3623 msgid "" "you have placed this module at\n" "a position in the pipeline where\n" @@ -8145,49 +8456,49 @@ "its requirements." msgstr "" -#: ../src/develop/imageop.c:3738 ../src/develop/imageop.c:3748 -#: ../src/gui/accelerators.c:151 ../src/libs/lib.c:1414 +#: ../src/develop/imageop.c:3754 ../src/develop/imageop.c:3764 +#: ../src/gui/accelerators.c:169 ../src/libs/lib.c:1415 msgid "show" msgstr "" -#: ../src/develop/imageop.c:3741 ../src/libs/modulegroups.c:3310 -#: ../src/libs/modulegroups.c:3436 ../src/libs/modulegroups.c:3817 -#: ../src/libs/tagging.c:3248 +#: ../src/develop/imageop.c:3757 ../src/libs/modulegroups.c:3315 +#: ../src/libs/modulegroups.c:3438 ../src/libs/modulegroups.c:3819 +#: ../src/libs/tagging.c:3279 msgid "new" msgstr "" -#: ../src/develop/imageop.c:3744 ../src/libs/duplicate.c:405 -#: ../src/libs/image.c:495 ../src/libs/modulegroups.c:3813 +#: ../src/develop/imageop.c:3760 ../src/libs/duplicate.c:411 +#: ../src/libs/image.c:534 ../src/libs/modulegroups.c:3815 msgid "duplicate" msgstr "" -#: ../src/develop/imageop.c:3749 +#: ../src/develop/imageop.c:3765 msgid "enable" msgstr "" -#: ../src/develop/imageop.c:3750 ../src/gui/accelerators.c:167 +#: ../src/develop/imageop.c:3766 ../src/gui/accelerators.c:185 msgid "focus" msgstr "" -#: ../src/develop/imageop.c:3751 ../src/gui/accelerators.c:2617 +#: ../src/develop/imageop.c:3767 ../src/gui/accelerators.c:2874 msgid "instance" msgstr "" -#: ../src/develop/imageop.c:3752 ../src/gui/accelerators.c:112 -#: ../src/gui/accelerators.c:122 ../src/gui/gtk.c:3009 ../src/gui/gtk.c:3056 -#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:603 -#: ../src/gui/styles_dialog.c:625 ../src/iop/atrous.c:1512 -#: ../src/libs/lib.c:1415 ../src/libs/modulegroups.c:3882 +#: ../src/develop/imageop.c:3768 ../src/gui/accelerators.c:130 +#: ../src/gui/accelerators.c:140 ../src/gui/gtk.c:3055 ../src/gui/gtk.c:3102 +#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:615 +#: ../src/gui/styles_dialog.c:637 ../src/iop/atrous.c:1626 +#: ../src/libs/lib.c:1416 ../src/libs/modulegroups.c:3884 msgid "reset" msgstr "" #. Adding the outer container -#: ../src/develop/imageop.c:3753 ../src/gui/preferences.c:798 -#: ../src/libs/lib.c:1416 +#: ../src/develop/imageop.c:3769 ../src/gui/preferences.c:796 +#: ../src/libs/lib.c:1417 msgid "presets" msgstr "" -#: ../src/develop/imageop.c:3773 +#: ../src/develop/imageop.c:3789 msgid "processing module" msgstr "" @@ -8198,89 +8509,89 @@ "ctrl+click to %s" msgstr "" -#: ../src/develop/lightroom.c:1083 +#: ../src/develop/lightroom.c:1137 msgid "cannot find Lightroom XMP!" msgstr "" -#: ../src/develop/lightroom.c:1115 ../src/develop/lightroom.c:1137 -#: ../src/develop/lightroom.c:1157 +#: ../src/develop/lightroom.c:1169 ../src/develop/lightroom.c:1191 +#: ../src/develop/lightroom.c:1211 #, c-format msgid "`%s' is not a Lightroom XMP!" msgstr "" -#: ../src/develop/lightroom.c:1556 +#: ../src/develop/lightroom.c:1613 #, c-format msgid "%s has been imported" msgid_plural "%s have been imported" msgstr[0] "" msgstr[1] "" -#: ../src/develop/masks/brush.c:1356 ../src/develop/masks/brush.c:1410 +#: ../src/develop/masks/brush.c:1346 ../src/develop/masks/brush.c:1400 #, c-format msgid "hardness: %3.2f%%" msgstr "" -#: ../src/develop/masks/brush.c:1372 ../src/develop/masks/brush.c:1470 +#: ../src/develop/masks/brush.c:1362 ../src/develop/masks/brush.c:1460 #: ../src/develop/masks/circle.c:148 ../src/develop/masks/circle.c:193 #: ../src/develop/masks/ellipse.c:484 ../src/develop/masks/ellipse.c:546 -#: ../src/develop/masks/path.c:1273 +#: ../src/develop/masks/path.c:1255 #, c-format msgid "size: %3.2f%%" msgstr "" -#: ../src/develop/masks/brush.c:3247 +#: ../src/develop/masks/brush.c:3191 msgid "[BRUSH] change size" msgstr "" -#: ../src/develop/masks/brush.c:3249 +#: ../src/develop/masks/brush.c:3193 msgid "[BRUSH] change hardness" msgstr "" -#: ../src/develop/masks/brush.c:3251 +#: ../src/develop/masks/brush.c:3195 msgid "[BRUSH] change opacity" msgstr "" -#: ../src/develop/masks/brush.c:3263 +#: ../src/develop/masks/brush.c:3207 #, c-format msgid "brush #%d" msgstr "" -#: ../src/develop/masks/brush.c:3276 +#: ../src/develop/masks/brush.c:3220 #, c-format msgid "" "<b>size</b>: scroll, <b>hardness</b>: shift+scroll\n" "<b>opacity</b>: ctrl+scroll (%d%%)" msgstr "" -#: ../src/develop/masks/brush.c:3279 +#: ../src/develop/masks/brush.c:3223 msgid "<b>size</b>: scroll" msgstr "" #: ../src/develop/masks/circle.c:137 ../src/develop/masks/circle.c:181 #: ../src/develop/masks/ellipse.c:470 ../src/develop/masks/ellipse.c:531 -#: ../src/develop/masks/path.c:1205 +#: ../src/develop/masks/path.c:1187 #, c-format msgid "feather size: %3.2f%%" msgstr "" -#: ../src/develop/masks/circle.c:1510 +#: ../src/develop/masks/circle.c:1462 msgid "[CIRCLE] change size" msgstr "" -#: ../src/develop/masks/circle.c:1512 +#: ../src/develop/masks/circle.c:1464 msgid "[CIRCLE] change feather size" msgstr "" -#: ../src/develop/masks/circle.c:1514 +#: ../src/develop/masks/circle.c:1466 msgid "[CIRCLE] change opacity" msgstr "" -#: ../src/develop/masks/circle.c:1527 +#: ../src/develop/masks/circle.c:1479 #, c-format msgid "circle #%d" msgstr "" -#: ../src/develop/masks/circle.c:1538 ../src/develop/masks/path.c:3490 +#: ../src/develop/masks/circle.c:1490 ../src/develop/masks/path.c:3406 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8292,43 +8603,43 @@ msgid "rotation: %3.f°" msgstr "" -#: ../src/develop/masks/ellipse.c:2068 +#: ../src/develop/masks/ellipse.c:2015 msgid "[ELLIPSE] change size" msgstr "" -#: ../src/develop/masks/ellipse.c:2071 +#: ../src/develop/masks/ellipse.c:2018 msgid "[ELLIPSE] change feather size" msgstr "" -#: ../src/develop/masks/ellipse.c:2074 ../src/develop/masks/ellipse.c:2083 +#: ../src/develop/masks/ellipse.c:2021 ../src/develop/masks/ellipse.c:2030 msgid "[ELLIPSE] rotate shape" msgstr "" -#: ../src/develop/masks/ellipse.c:2077 +#: ../src/develop/masks/ellipse.c:2024 msgid "[ELLIPSE] change opacity" msgstr "" -#: ../src/develop/masks/ellipse.c:2080 +#: ../src/develop/masks/ellipse.c:2027 msgid "[ELLIPSE] switch feathering mode" msgstr "" -#: ../src/develop/masks/ellipse.c:2090 +#: ../src/develop/masks/ellipse.c:2037 #, c-format msgid "ellipse #%d" msgstr "" -#: ../src/develop/masks/ellipse.c:2128 +#: ../src/develop/masks/ellipse.c:2075 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" "<b>rotation</b>: ctrl+shift+scroll, <b>opacity</b>: ctrl+scroll (%d%%)" msgstr "" -#: ../src/develop/masks/ellipse.c:2132 +#: ../src/develop/masks/ellipse.c:2079 msgid "<b>rotate</b>: ctrl+drag" msgstr "" -#: ../src/develop/masks/ellipse.c:2135 +#: ../src/develop/masks/ellipse.c:2082 #, c-format msgid "" "<b>feather mode</b>: shift+click, <b>rotate</b>: ctrl+drag\n" @@ -8346,46 +8657,46 @@ msgid "curvature: %3.2f%%" msgstr "" -#: ../src/develop/masks/gradient.c:1555 +#: ../src/develop/masks/gradient.c:1514 msgid "[GRADIENT on pivot] rotate shape" msgstr "" -#: ../src/develop/masks/gradient.c:1557 +#: ../src/develop/masks/gradient.c:1516 msgid "[GRADIENT creation] set rotation" msgstr "" -#: ../src/develop/masks/gradient.c:1559 +#: ../src/develop/masks/gradient.c:1518 msgid "[GRADIENT] change curvature" msgstr "" -#: ../src/develop/masks/gradient.c:1561 +#: ../src/develop/masks/gradient.c:1520 msgid "[GRADIENT] change compression" msgstr "" -#: ../src/develop/masks/gradient.c:1563 +#: ../src/develop/masks/gradient.c:1522 msgid "[GRADIENT] change opacity" msgstr "" -#: ../src/develop/masks/gradient.c:1576 +#: ../src/develop/masks/gradient.c:1535 #, c-format msgid "gradient #%d" msgstr "" -#: ../src/develop/masks/gradient.c:1587 +#: ../src/develop/masks/gradient.c:1546 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" "<b>rotation</b>: click+drag, <b>opacity</b>: ctrl+scroll (%d%%)" msgstr "" -#: ../src/develop/masks/gradient.c:1592 +#: ../src/develop/masks/gradient.c:1551 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" "<b>opacity</b>: ctrl+scroll (%d%%)" msgstr "" -#: ../src/develop/masks/gradient.c:1595 +#: ../src/develop/masks/gradient.c:1554 msgid "<b>rotate</b>: drag" msgstr "" @@ -8393,140 +8704,146 @@ msgid "[SHAPE] remove shape" msgstr "" -#: ../src/develop/masks/masks.c:306 +#: ../src/develop/masks/masks.c:305 #, c-format msgid "group `%s'" msgstr "" -#: ../src/develop/masks/masks.c:423 +#: ../src/develop/masks/masks.c:422 #, c-format msgid "copy of `%s'" msgstr "" -#: ../src/develop/masks/masks.c:984 +#: ../src/develop/masks/masks.c:985 #, c-format msgid "%s: mask version mismatch: %d != %d" msgstr "" -#: ../src/develop/masks/masks.c:1239 ../src/develop/masks/masks.c:1906 +#: ../src/develop/masks/masks.c:1230 ../src/develop/masks/masks.c:1881 #, c-format msgid "opacity: %.0f%%" msgstr "" -#: ../src/develop/masks/masks.c:1650 ../src/libs/masks.c:1068 +#: ../src/develop/masks/masks.c:1625 ../src/libs/masks.c:1084 msgid "add existing shape" msgstr "" -#: ../src/develop/masks/masks.c:1677 +#: ../src/develop/masks/masks.c:1652 msgid "use same shapes as" msgstr "" -#: ../src/develop/masks/masks.c:1990 +#: ../src/develop/masks/masks.c:1965 msgid "masks can not contain themselves" msgstr "" -#: ../src/develop/masks/path.c:3433 +#: ../src/develop/masks/path.c:3349 msgid "[PATH creation] add a smooth node" msgstr "" -#: ../src/develop/masks/path.c:3435 +#: ../src/develop/masks/path.c:3351 msgid "[PATH creation] add a sharp node" msgstr "" -#: ../src/develop/masks/path.c:3437 +#: ../src/develop/masks/path.c:3353 msgid "[PATH creation] terminate path creation" msgstr "" -#: ../src/develop/masks/path.c:3439 +#: ../src/develop/masks/path.c:3355 msgid "[PATH on node] switch between smooth/sharp node" msgstr "" -#: ../src/develop/masks/path.c:3441 +#: ../src/develop/masks/path.c:3357 msgid "[PATH on node] remove the node" msgstr "" -#: ../src/develop/masks/path.c:3443 +#: ../src/develop/masks/path.c:3359 msgid "[PATH on feather] reset curvature" msgstr "" -#: ../src/develop/masks/path.c:3445 +#: ../src/develop/masks/path.c:3361 msgid "[PATH on segment] add node" msgstr "" -#: ../src/develop/masks/path.c:3447 +#: ../src/develop/masks/path.c:3363 msgid "[PATH] change size" msgstr "" -#: ../src/develop/masks/path.c:3449 +#: ../src/develop/masks/path.c:3365 msgid "[PATH] change feather size" msgstr "" -#: ../src/develop/masks/path.c:3451 +#: ../src/develop/masks/path.c:3367 msgid "[PATH] change opacity" msgstr "" -#: ../src/develop/masks/path.c:3463 +#: ../src/develop/masks/path.c:3379 #, c-format msgid "path #%d" msgstr "" -#: ../src/develop/masks/path.c:3473 +#: ../src/develop/masks/path.c:3389 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>cancel</b>: right-click" msgstr "" -#: ../src/develop/masks/path.c:3476 +#: ../src/develop/masks/path.c:3392 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>finish path</b>: right-click" msgstr "" -#: ../src/develop/masks/path.c:3479 +#: ../src/develop/masks/path.c:3395 msgid "" "<b>move node</b>: drag, <b>remove node</b>: right-click\n" "<b>switch smooth/sharp mode</b>: ctrl+click" msgstr "" -#: ../src/develop/masks/path.c:3483 +#: ../src/develop/masks/path.c:3399 msgid "" "<b>node curvature</b>: drag\n" "<b>reset curvature</b>: right-click" msgstr "" -#: ../src/develop/masks/path.c:3487 +#: ../src/develop/masks/path.c:3403 msgid "" "<b>move segment</b>: drag\n" "<b>add node</b>: ctrl+click" msgstr "" -#: ../src/develop/pixelpipe_hb.c:500 +#: ../src/develop/pixelpipe_hb.c:486 msgid "enabled as required" msgstr "" -#: ../src/develop/pixelpipe_hb.c:501 +#: ../src/develop/pixelpipe_hb.c:487 msgid "" "history had module disabled but it is required for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" msgstr "" -#: ../src/develop/pixelpipe_hb.c:508 +#: ../src/develop/pixelpipe_hb.c:494 msgid "disabled as not appropriate" msgstr "" -#: ../src/develop/pixelpipe_hb.c:509 +#: ../src/develop/pixelpipe_hb.c:495 msgid "" "history had module enabled but it is not allowed for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" msgstr "" -#: ../src/develop/pixelpipe_hb.c:2705 +#: ../src/develop/pixelpipe_hb.c:2697 msgid "" -"darktable discovered problems with your OpenCL setup; disabling OpenCL for " -"this session!" +"OpenCL errors encountered; disabling OpenCL for this session! some possible " +"causes:\n" +" - OpenCL out of resources due to preference settings. please try with " +"defaults,\n" +" - buggy driver for some device. please run darktable with `-d opencl' to " +"identify,\n" +" - some drivers don't support needed number of events,\n" +" - too small headroom settings while using 'use all device memory'." msgstr "" -#: ../src/develop/pixelpipe_hb.c:2853 +#: ../src/develop/pixelpipe_hb.c:2847 #, c-format msgid "" "module '%s' can't get raster mask from module\n" @@ -8534,28 +8851,30 @@ "raster mask is ignored." msgstr "" -#: ../src/develop/tiling.c:820 ../src/develop/tiling.c:1173 +#: ../src/develop/tiling.c:819 ../src/develop/tiling.c:1172 #, c-format -msgid "tiling failed for module '%s'. output might be garbled." +msgid "" +"tiling failed for module '%s'. the output most likely will be OK, but you " +"might want to check." msgstr "" -#: ../src/dtgtk/culling.c:254 +#: ../src/dtgtk/culling.c:223 msgid "you have reached the start of your selection" msgstr "" -#: ../src/dtgtk/culling.c:263 +#: ../src/dtgtk/culling.c:232 msgid "you have reached the start of your collection" msgstr "" -#: ../src/dtgtk/culling.c:310 +#: ../src/dtgtk/culling.c:279 msgid "you have reached the end of your selection" msgstr "" -#: ../src/dtgtk/culling.c:337 +#: ../src/dtgtk/culling.c:306 msgid "you have reached the end of your collection" msgstr "" -#: ../src/dtgtk/culling.c:446 +#: ../src/dtgtk/culling.c:415 #, c-format msgid "zooming is limited to %d images" msgstr "" @@ -8627,7 +8946,7 @@ msgid "fixed" msgstr "" -#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1493 +#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1498 msgid "relative" msgstr "" @@ -8641,7 +8960,7 @@ msgstr "" #: ../src/dtgtk/range.c:630 ../src/dtgtk/range.c:1780 ../src/dtgtk/range.c:1831 -#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:282 +#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:309 msgid "max" msgstr "" @@ -8650,7 +8969,7 @@ msgstr "" #. the date section -#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1505 msgid "date" msgstr "" @@ -8673,7 +8992,7 @@ msgstr "" #. the time section -#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1505 msgid "time" msgstr "" @@ -8691,8 +9010,8 @@ msgstr "" #. apply button -#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:162 -#: ../src/libs/metadata.c:901 ../src/libs/styles.c:897 +#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:180 +#: ../src/libs/metadata.c:735 ../src/libs/styles.c:901 msgid "apply" msgstr "" @@ -8724,107 +9043,107 @@ msgid "grouped images" msgstr "" -#: ../src/dtgtk/thumbnail.c:820 ../src/dtgtk/thumbnail.c:1635 -#: ../src/iop/ashift.c:6191 ../src/iop/ashift.c:6280 ../src/iop/ashift.c:6282 -#: ../src/iop/ashift.c:6284 ../src/libs/navigation.c:110 -#: ../src/libs/navigation.c:190 +#: ../src/dtgtk/thumbnail.c:814 ../src/dtgtk/thumbnail.c:1623 +#: ../src/iop/ashift.c:6138 ../src/iop/ashift.c:6227 ../src/iop/ashift.c:6229 +#: ../src/iop/ashift.c:6231 ../src/libs/navigation.c:111 +#: ../src/libs/navigation.c:193 msgid "fit" msgstr "" -#: ../src/dtgtk/thumbtable.c:1041 ../src/views/slideshow.c:421 +#: ../src/dtgtk/thumbtable.c:1139 ../src/views/slideshow.c:422 msgid "there are no images in this collection" msgstr "" -#: ../src/dtgtk/thumbtable.c:1048 +#: ../src/dtgtk/thumbtable.c:1146 msgid "if you have not imported any images yet" msgstr "" -#: ../src/dtgtk/thumbtable.c:1052 +#: ../src/dtgtk/thumbtable.c:1150 msgid "you can do so in the import module" msgstr "" -#: ../src/dtgtk/thumbtable.c:1061 +#: ../src/dtgtk/thumbtable.c:1159 msgid "try to relax the filter settings in the top panel" msgstr "" -#: ../src/dtgtk/thumbtable.c:1072 +#: ../src/dtgtk/thumbtable.c:1170 msgid "or add images in the collections module in the left panel" msgstr "" -#: ../src/dtgtk/thumbtable.c:1338 +#: ../src/dtgtk/thumbtable.c:1455 msgid "" "you have changed the settings related to how thumbnails are generated.\n" msgstr "" -#: ../src/dtgtk/thumbtable.c:1341 +#: ../src/dtgtk/thumbtable.c:1458 msgid "" "all cached thumbnails need to be invalidated.\n" "\n" msgstr "" -#: ../src/dtgtk/thumbtable.c:1345 +#: ../src/dtgtk/thumbtable.c:1462 #, c-format msgid "" "cached thumbnails starting from level %d need to be invalidated.\n" "\n" msgstr "" -#: ../src/dtgtk/thumbtable.c:1350 +#: ../src/dtgtk/thumbtable.c:1467 #, c-format msgid "" "cached thumbnails below level %d need to be invalidated.\n" "\n" msgstr "" -#: ../src/dtgtk/thumbtable.c:1355 +#: ../src/dtgtk/thumbtable.c:1472 #, c-format msgid "" "cached thumbnails between level %d and %d need to be invalidated.\n" "\n" msgstr "" -#: ../src/dtgtk/thumbtable.c:1358 +#: ../src/dtgtk/thumbtable.c:1475 msgid "do you want to do that now?" msgstr "" -#: ../src/dtgtk/thumbtable.c:1360 +#: ../src/dtgtk/thumbtable.c:1477 msgid "cached thumbnails invalidation" msgstr "" #. setup history key accelerators -#: ../src/dtgtk/thumbtable.c:2561 +#: ../src/dtgtk/thumbtable.c:2738 msgid "copy history" msgstr "" -#: ../src/dtgtk/thumbtable.c:2563 +#: ../src/dtgtk/thumbtable.c:2740 msgid "copy history parts" msgstr "" -#: ../src/dtgtk/thumbtable.c:2565 +#: ../src/dtgtk/thumbtable.c:2742 msgid "paste history" msgstr "" -#: ../src/dtgtk/thumbtable.c:2567 +#: ../src/dtgtk/thumbtable.c:2744 msgid "paste history parts" msgstr "" -#: ../src/dtgtk/thumbtable.c:2569 ../src/libs/copy_history.c:394 +#: ../src/dtgtk/thumbtable.c:2746 ../src/libs/copy_history.c:394 msgid "discard history" msgstr "" -#: ../src/dtgtk/thumbtable.c:2572 +#: ../src/dtgtk/thumbtable.c:2749 msgid "duplicate image" msgstr "" -#: ../src/dtgtk/thumbtable.c:2574 +#: ../src/dtgtk/thumbtable.c:2751 msgid "duplicate image virgin" msgstr "" -#: ../src/dtgtk/thumbtable.c:2584 ../src/libs/select.c:147 +#: ../src/dtgtk/thumbtable.c:2761 ../src/libs/select.c:148 msgid "select film roll" msgstr "" -#: ../src/dtgtk/thumbtable.c:2586 ../src/libs/select.c:151 +#: ../src/dtgtk/thumbtable.c:2763 ../src/libs/select.c:152 msgid "select untouched" msgstr "" @@ -8882,265 +9201,296 @@ msgid "creating complete lighttable thumbnail cache\n" msgstr "" -#: ../src/gui/accelerators.c:61 -msgid "active view" +#: ../src/gui/about.c:34 +#, c-format +msgid "copyright (c) the authors 2009-%s" +msgstr "" + +#: ../src/gui/about.c:39 +msgid "organize and develop images from digital cameras" +msgstr "" + +#: ../src/gui/about.c:51 +msgid "all those of you that made previous releases possible" +msgstr "" + +#: ../src/gui/about.c:56 +msgid "and..." +msgstr "" + +#: ../src/gui/about.c:59 +msgid "translator-credits" +msgstr "" + +#: ../src/gui/accelerators.c:72 +msgid "in active view" msgstr "" -#: ../src/gui/accelerators.c:62 -msgid "other views" +#: ../src/gui/accelerators.c:73 +msgid "in other views" msgstr "" -#: ../src/gui/accelerators.c:63 +#: ../src/gui/accelerators.c:74 msgid "fallbacks" msgstr "" -#: ../src/gui/accelerators.c:64 ../src/gui/accelerators.c:722 -#: ../src/gui/accelerators.c:2607 ../src/gui/accelerators.c:3470 -msgid "speed" +#: ../src/gui/accelerators.c:75 +msgid "speed adjustments" +msgstr "" + +#: ../src/gui/accelerators.c:76 +msgid "disabled defaults" msgstr "" -#: ../src/gui/accelerators.c:80 ../src/views/view.c:1202 +#: ../src/gui/accelerators.c:96 ../src/views/view.c:1361 msgid "scroll" msgstr "" -#: ../src/gui/accelerators.c:81 +#: ../src/gui/accelerators.c:97 msgid "pan" msgstr "" -#: ../src/gui/accelerators.c:82 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6283 ../src/iop/clipping.c:1902 -#: ../src/iop/clipping.c:2094 ../src/iop/clipping.c:2110 -#: ../src/views/darkroom.c:2676 ../src/views/lighttable.c:1250 +#: ../src/gui/accelerators.c:98 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6230 ../src/iop/clipping.c:1955 +#: ../src/iop/clipping.c:2147 ../src/iop/clipping.c:2163 +#: ../src/views/darkroom.c:2522 ../src/views/lighttable.c:1250 msgid "horizontal" msgstr "" -#: ../src/gui/accelerators.c:83 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6281 ../src/iop/clipping.c:1901 -#: ../src/iop/clipping.c:2095 ../src/iop/clipping.c:2109 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:1254 +#: ../src/gui/accelerators.c:99 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6228 ../src/iop/clipping.c:1954 +#: ../src/iop/clipping.c:2148 ../src/iop/clipping.c:2162 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:1254 msgid "vertical" msgstr "" -#: ../src/gui/accelerators.c:84 +#: ../src/gui/accelerators.c:100 msgid "diagonal" msgstr "" -#: ../src/gui/accelerators.c:86 +#: ../src/gui/accelerators.c:102 msgid "leftright" msgstr "" -#: ../src/gui/accelerators.c:87 +#: ../src/gui/accelerators.c:103 msgid "updown" msgstr "" -#: ../src/gui/accelerators.c:88 +#: ../src/gui/accelerators.c:104 msgid "pgupdown" msgstr "" -#: ../src/gui/accelerators.c:96 ../src/views/view.c:1186 +#: ../src/gui/accelerators.c:112 ../src/views/view.c:1343 msgid "shift" msgstr "" -#: ../src/gui/accelerators.c:97 ../src/views/view.c:1187 +#: ../src/gui/accelerators.c:113 ../src/views/view.c:1345 msgid "ctrl" msgstr "" -#: ../src/gui/accelerators.c:98 ../src/views/view.c:1188 +#: ../src/gui/accelerators.c:114 ../src/views/view.c:1347 msgid "alt" msgstr "" -#: ../src/gui/accelerators.c:99 +#: ../src/gui/accelerators.c:115 msgid "cmd" msgstr "" -#: ../src/gui/accelerators.c:100 +#: ../src/gui/accelerators.c:116 msgid "altgr" msgstr "" -#: ../src/gui/accelerators.c:109 ../src/gui/accelerators.c:156 -#: ../src/libs/tagging.c:1782 +#: ../src/gui/accelerators.c:127 ../src/gui/accelerators.c:174 +#: ../src/libs/tagging.c:1804 msgid "edit" msgstr "" -#: ../src/gui/accelerators.c:110 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "up" msgstr "" -#: ../src/gui/accelerators.c:111 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:129 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "down" msgstr "" -#: ../src/gui/accelerators.c:115 +#: ../src/gui/accelerators.c:133 msgid "set" msgstr "" -#: ../src/gui/accelerators.c:119 +#: ../src/gui/accelerators.c:137 msgid "popup" msgstr "" -#: ../src/gui/accelerators.c:120 ../src/gui/accelerators.c:153 -#: ../src/gui/gtk.c:3054 ../src/views/lighttable.c:760 +#: ../src/gui/accelerators.c:138 ../src/gui/accelerators.c:171 +#: ../src/gui/gtk.c:3100 ../src/views/lighttable.c:760 msgid "next" msgstr "" -#: ../src/gui/accelerators.c:121 ../src/gui/accelerators.c:152 -#: ../src/gui/gtk.c:3055 ../src/views/lighttable.c:761 +#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:170 +#: ../src/gui/gtk.c:3101 ../src/views/lighttable.c:761 msgid "previous" msgstr "" -#: ../src/gui/accelerators.c:123 ../src/gui/accelerators.c:1462 +#: ../src/gui/accelerators.c:141 ../src/gui/accelerators.c:1598 msgid "last" msgstr "" -#: ../src/gui/accelerators.c:124 ../src/gui/accelerators.c:1461 +#: ../src/gui/accelerators.c:142 ../src/gui/accelerators.c:1597 msgid "first" msgstr "" -#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:141 -#: ../src/gui/accelerators.c:314 ../src/libs/filters/rating_range.c:268 -#: ../src/libs/tagging.c:3119 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2419 ../src/views/darkroom.c:2648 +#: ../src/gui/accelerators.c:146 ../src/gui/accelerators.c:159 +#: ../src/gui/accelerators.c:356 ../src/libs/filters/rating_range.c:295 +#: ../src/libs/tagging.c:3150 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2258 ../src/views/darkroom.c:2494 msgid "toggle" msgstr "" -#: ../src/gui/accelerators.c:131 +#: ../src/gui/accelerators.c:149 msgid "ctrl-toggle" msgstr "" -#: ../src/gui/accelerators.c:132 +#: ../src/gui/accelerators.c:150 msgid "ctrl-on" msgstr "" -#: ../src/gui/accelerators.c:133 +#: ../src/gui/accelerators.c:151 msgid "right-toggle" msgstr "" -#: ../src/gui/accelerators.c:134 +#: ../src/gui/accelerators.c:152 msgid "right-on" msgstr "" -#: ../src/gui/accelerators.c:145 ../src/gui/gtk.c:3053 +#: ../src/gui/accelerators.c:163 ../src/gui/gtk.c:3099 msgid "activate" msgstr "" -#: ../src/gui/accelerators.c:146 +#: ../src/gui/accelerators.c:164 msgid "ctrl-activate" msgstr "" -#: ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:165 msgid "right-activate" msgstr "" -#: ../src/gui/accelerators.c:154 +#: ../src/gui/accelerators.c:172 msgid "store" msgstr "" -#: ../src/gui/accelerators.c:157 ../src/gui/styles_dialog.c:639 +#: ../src/gui/accelerators.c:175 ../src/gui/styles_dialog.c:651 msgid "update" msgstr "" -#: ../src/gui/accelerators.c:158 ../src/libs/tools/global_toolbox.c:60 +#: ../src/gui/accelerators.c:176 ../src/libs/tools/global_toolbox.c:60 #: ../src/libs/tools/global_toolbox.c:510 msgid "preferences" msgstr "" -#: ../src/gui/accelerators.c:163 +#: ../src/gui/accelerators.c:181 msgid "apply on new instance" msgstr "" -#: ../src/gui/accelerators.c:168 +#: ../src/gui/accelerators.c:186 msgid "start" msgstr "" -#: ../src/gui/accelerators.c:169 +#: ../src/gui/accelerators.c:187 msgid "end" msgstr "" -#: ../src/gui/accelerators.c:332 +#: ../src/gui/accelerators.c:374 msgid "entry" msgstr "" -#: ../src/gui/accelerators.c:409 +#: ../src/gui/accelerators.c:450 msgid "combo effect not found" msgstr "" -#: ../src/gui/accelerators.c:578 +#: ../src/gui/accelerators.c:627 msgid "(keypad)" msgstr "" -#: ../src/gui/accelerators.c:587 +#: ../src/gui/accelerators.c:636 msgid "tablet button" msgstr "" -#: ../src/gui/accelerators.c:596 +#: ../src/gui/accelerators.c:645 msgid "unknown driver" msgstr "" -#: ../src/gui/accelerators.c:663 +#: ../src/gui/accelerators.c:718 msgid "long" msgstr "" -#: ../src/gui/accelerators.c:664 +#: ../src/gui/accelerators.c:719 msgid "double-press" msgstr "" -#: ../src/gui/accelerators.c:665 +#: ../src/gui/accelerators.c:720 msgid "triple-press" msgstr "" -#: ../src/gui/accelerators.c:666 +#: ../src/gui/accelerators.c:721 msgid "press" msgstr "" -#: ../src/gui/accelerators.c:670 +#: ../src/gui/accelerators.c:725 msgctxt "accel" msgid "left" msgstr "" -#: ../src/gui/accelerators.c:671 +#: ../src/gui/accelerators.c:726 msgctxt "accel" msgid "right" msgstr "" -#: ../src/gui/accelerators.c:672 +#: ../src/gui/accelerators.c:727 msgctxt "accel" msgid "middle" msgstr "" -#: ../src/gui/accelerators.c:673 +#: ../src/gui/accelerators.c:728 msgctxt "accel" msgid "long" msgstr "" -#: ../src/gui/accelerators.c:674 +#: ../src/gui/accelerators.c:729 msgctxt "accel" msgid "double-click" msgstr "" -#: ../src/gui/accelerators.c:675 +#: ../src/gui/accelerators.c:730 msgctxt "accel" msgid "triple-click" msgstr "" -#: ../src/gui/accelerators.c:676 +#: ../src/gui/accelerators.c:731 msgid "click" msgstr "" -#: ../src/gui/accelerators.c:704 +#: ../src/gui/accelerators.c:759 msgid "first instance" msgstr "" -#: ../src/gui/accelerators.c:706 +#: ../src/gui/accelerators.c:761 msgid "last instance" msgstr "" -#: ../src/gui/accelerators.c:708 +#: ../src/gui/accelerators.c:763 msgid "relative instance" msgstr "" -#: ../src/gui/accelerators.c:867 +#: ../src/gui/accelerators.c:780 ../src/gui/accelerators.c:2864 +#: ../src/gui/accelerators.c:3811 +msgid "speed" +msgstr "" + +#: ../src/gui/accelerators.c:923 #, c-format msgid "" "Lua script command copied to clipboard:\n" @@ -9148,143 +9498,167 @@ "<tt>%s</tt>" msgstr "" -#: ../src/gui/accelerators.c:965 ../src/gui/accelerators.c:978 +#: ../src/gui/accelerators.c:1025 ../src/gui/accelerators.c:1044 msgid "start typing for incremental search" msgstr "" -#: ../src/gui/accelerators.c:966 +#: ../src/gui/accelerators.c:1028 msgid "" "\n" "press Delete to delete selected shortcut" msgstr "" -#: ../src/gui/accelerators.c:968 +#: ../src/gui/accelerators.c:1030 +msgid "" +"\n" +"press Delete to disable selected default shortcut" +msgstr "" + +#: ../src/gui/accelerators.c:1031 +msgid "" +"\n" +"press Delete to restore selected default shortcut" +msgstr "" + +#: ../src/gui/accelerators.c:1033 msgid "" "\n" "double-click to add new shortcut" msgstr "" -#: ../src/gui/accelerators.c:979 +#: ../src/gui/accelerators.c:1045 msgid "click to filter shortcuts list" msgstr "" -#: ../src/gui/accelerators.c:981 +#: ../src/gui/accelerators.c:1047 msgid "" "\n" "right click to show action of selected shortcut" msgstr "" -#: ../src/gui/accelerators.c:984 +#: ../src/gui/accelerators.c:1050 msgid "" "\n" "double-click to define new shortcut" msgstr "" -#: ../src/gui/accelerators.c:1015 +#: ../src/gui/accelerators.c:1081 msgid "shift+alt+scroll to change height" msgstr "" -#: ../src/gui/accelerators.c:1035 +#: ../src/gui/accelerators.c:1101 msgid "" "press keys with mouse click and scroll or move combinations to create a " "shortcut" msgstr "" -#: ../src/gui/accelerators.c:1036 +#: ../src/gui/accelerators.c:1102 msgid "click to open shortcut configuration" msgstr "" -#: ../src/gui/accelerators.c:1037 +#: ../src/gui/accelerators.c:1103 msgid "ctrl+click to add to quick access panel\n" msgstr "" -#: ../src/gui/accelerators.c:1038 +#: ../src/gui/accelerators.c:1104 msgid "ctrl+click to remove from quick access panel\n" msgstr "" -#: ../src/gui/accelerators.c:1039 +#: ../src/gui/accelerators.c:1105 msgid "scroll to change default speed" msgstr "" -#: ../src/gui/accelerators.c:1040 +#: ../src/gui/accelerators.c:1106 msgid "right click to exit mapping mode" msgstr "" -#: ../src/gui/accelerators.c:1051 +#: ../src/gui/accelerators.c:1119 #, c-format msgid "" "%sright-click to type a specific value between <b>%s</b> and <b>%s</b>\n" "or hold ctrl+shift while dragging to ignore soft limits." msgstr "" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "ctrl+v" msgstr "" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "right long click" msgstr "" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "to copy Lua command" msgstr "" -#: ../src/gui/accelerators.c:1344 +#: ../src/gui/accelerators.c:1451 msgid "shortcut for move exists with single effect" msgstr "" -#: ../src/gui/accelerators.c:1345 +#: ../src/gui/accelerators.c:1452 +#, c-format +msgid "" +"%s\n" +"\n" +"(assign %s to %s)" +msgstr "" + +#: ../src/gui/accelerators.c:1453 msgid "create separate shortcuts for up and down move?" msgstr "" -#: ../src/gui/accelerators.c:1368 +#: ../src/gui/accelerators.c:1479 #, c-format msgid "%s, speed reset" msgstr "" -#: ../src/gui/accelerators.c:1377 +#: ../src/gui/accelerators.c:1497 msgid "shortcut exists with different settings" msgstr "" -#: ../src/gui/accelerators.c:1378 +#: ../src/gui/accelerators.c:1498 msgid "reset the settings of the shortcut?" msgstr "" -#: ../src/gui/accelerators.c:1389 +#: ../src/gui/accelerators.c:1507 msgid "shortcut already exists" msgstr "" -#: ../src/gui/accelerators.c:1390 +#: ../src/gui/accelerators.c:1509 +msgid "disable this default shortcut?" +msgstr "" + +#: ../src/gui/accelerators.c:1510 msgid "remove the shortcut?" msgstr "" -#: ../src/gui/accelerators.c:1423 +#: ../src/gui/accelerators.c:1550 msgid "clashing shortcuts exist" msgstr "" -#: ../src/gui/accelerators.c:1424 +#: ../src/gui/accelerators.c:1551 msgid "remove these existing shortcuts?" msgstr "" #. or 3, but change char relative[] = "-2" to "-1" #. NUM_INSTANCES -#: ../src/gui/accelerators.c:1460 +#: ../src/gui/accelerators.c:1596 msgid "preferred" msgstr "" -#: ../src/gui/accelerators.c:1463 +#: ../src/gui/accelerators.c:1599 msgid "second" msgstr "" -#: ../src/gui/accelerators.c:1464 +#: ../src/gui/accelerators.c:1600 msgid "last but one" msgstr "" -#: ../src/gui/accelerators.c:1610 ../src/gui/accelerators.c:1670 +#: ../src/gui/accelerators.c:1761 ../src/gui/accelerators.c:1826 msgid "(unchanged)" msgstr "" -#: ../src/gui/accelerators.c:1776 +#: ../src/gui/accelerators.c:1941 msgid "" "define a shortcut by pressing a key, optionally combined with modifier keys " "(ctrl/shift/alt)\n" @@ -9298,39 +9672,47 @@ "right-click to cancel" msgstr "" -#: ../src/gui/accelerators.c:1847 +#: ../src/gui/accelerators.c:2014 msgid "removing shortcut" msgstr "" -#: ../src/gui/accelerators.c:1848 +#: ../src/gui/accelerators.c:2016 +msgid "disable the selected default shortcut?" +msgstr "" + +#: ../src/gui/accelerators.c:2017 +msgid "restore the selected default shortcut?" +msgstr "" + +#: ../src/gui/accelerators.c:2018 msgid "remove the selected shortcut?" msgstr "" -#: ../src/gui/accelerators.c:1938 +#: ../src/gui/accelerators.c:2107 msgid "command" msgstr "" -#: ../src/gui/accelerators.c:1939 +#: ../src/gui/accelerators.c:2108 msgid "preset" msgstr "" -#: ../src/gui/accelerators.c:2272 +#: ../src/gui/accelerators.c:2491 msgid "restore shortcuts" msgstr "" -#: ../src/gui/accelerators.c:2275 +#: ../src/gui/accelerators.c:2494 msgid "_defaults" msgstr "" -#: ../src/gui/accelerators.c:2276 +#: ../src/gui/accelerators.c:2495 msgid "_startup" msgstr "" -#: ../src/gui/accelerators.c:2277 +#: ../src/gui/accelerators.c:2496 msgid "_edits" msgstr "" -#: ../src/gui/accelerators.c:2283 +#: ../src/gui/accelerators.c:2503 msgid "" "restore shortcuts from one of these states:\n" " - default\n" @@ -9338,649 +9720,714 @@ " - as when opening this dialog\n" msgstr "" -#: ../src/gui/accelerators.c:2289 +#: ../src/gui/accelerators.c:2510 msgid "" "clear all newer shortcuts\n" "(instead of just restoring changed ones)" msgstr "" -#: ../src/gui/accelerators.c:2344 ../src/gui/preferences.c:906 +#: ../src/gui/accelerators.c:2567 ../src/gui/preferences.c:905 #: ../src/libs/tools/global_toolbox.c:494 -#: ../src/libs/tools/global_toolbox.c:645 +#: ../src/libs/tools/global_toolbox.c:652 msgid "shortcuts" msgstr "" -#: ../src/gui/accelerators.c:2353 +#: ../src/gui/accelerators.c:2577 msgid "export shortcuts" msgstr "" -#: ../src/gui/accelerators.c:2356 ../src/gui/accelerators.c:2436 -#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:564 -msgid "_ok" -msgstr "" - -#: ../src/gui/accelerators.c:2361 +#: ../src/gui/accelerators.c:2586 msgid "" "export all shortcuts to a file\n" "or just for one selected device\n" msgstr "" -#: ../src/gui/accelerators.c:2368 ../src/gui/accelerators.c:2448 +#: ../src/gui/accelerators.c:2593 ../src/gui/accelerators.c:2675 msgid "keyboard" msgstr "" -#: ../src/gui/accelerators.c:2380 +#: ../src/gui/accelerators.c:2605 msgid "device id" msgstr "" -#: ../src/gui/accelerators.c:2406 +#: ../src/gui/accelerators.c:2631 msgid "select file to export" msgstr "" -#: ../src/gui/accelerators.c:2407 ../src/libs/tagging.c:2525 +#: ../src/gui/accelerators.c:2632 ../src/libs/tagging.c:2556 msgid "_export" msgstr "" -#: ../src/gui/accelerators.c:2433 +#: ../src/gui/accelerators.c:2659 msgid "import shortcuts" msgstr "" -#: ../src/gui/accelerators.c:2441 +#: ../src/gui/accelerators.c:2668 msgid "" "import all shortcuts from a file\n" "or just for one selected device\n" msgstr "" -#: ../src/gui/accelerators.c:2460 +#: ../src/gui/accelerators.c:2687 msgid "id in file" msgstr "" -#: ../src/gui/accelerators.c:2466 +#: ../src/gui/accelerators.c:2693 msgid "id when loaded" msgstr "" -#: ../src/gui/accelerators.c:2470 +#: ../src/gui/accelerators.c:2697 msgid "clear device first" msgstr "" -#: ../src/gui/accelerators.c:2494 +#: ../src/gui/accelerators.c:2722 msgid "select file to import" msgstr "" -#: ../src/gui/accelerators.c:2495 ../src/libs/tagging.c:2489 +#: ../src/gui/accelerators.c:2723 ../src/libs/tagging.c:2520 msgid "_import" msgstr "" -#: ../src/gui/accelerators.c:2568 +#: ../src/gui/accelerators.c:2815 msgid "search shortcuts list" msgstr "" -#: ../src/gui/accelerators.c:2569 +#: ../src/gui/accelerators.c:2817 msgid "" "incrementally search the list of shortcuts\n" "press up or down keys to cycle through matches" msgstr "" -#. Setting up the cell renderers -#: ../src/gui/accelerators.c:2583 ../src/views/view.c:1383 +#: ../src/gui/accelerators.c:2837 ../src/views/view.c:1554 msgid "shortcut" msgstr "" -#: ../src/gui/accelerators.c:2585 ../src/gui/accelerators.c:2676 -#: ../src/views/view.c:1385 +#: ../src/gui/accelerators.c:2840 ../src/gui/accelerators.c:2942 +#: ../src/views/view.c:1556 msgid "action" msgstr "" -#: ../src/gui/accelerators.c:2594 +#: ../src/gui/accelerators.c:2850 msgid "element" msgstr "" -#: ../src/gui/accelerators.c:2601 +#: ../src/gui/accelerators.c:2858 msgid "effect" msgstr "" -#: ../src/gui/accelerators.c:2658 +#: ../src/gui/accelerators.c:2918 msgid "search actions list" msgstr "" -#: ../src/gui/accelerators.c:2659 +#: ../src/gui/accelerators.c:2920 msgid "" "incrementally search the list of actions\n" "press up or down keys to cycle through matches" msgstr "" -#: ../src/gui/accelerators.c:2682 ../src/gui/guides.c:719 -#: ../src/libs/export_metadata.c:192 +#: ../src/gui/accelerators.c:2950 ../src/gui/guides.c:719 +#: ../src/libs/export_metadata.c:179 msgid "type" msgstr "" -#: ../src/gui/accelerators.c:2717 +#: ../src/gui/accelerators.c:2988 msgid "enable fallbacks" msgstr "" -#: ../src/gui/accelerators.c:2718 +#: ../src/gui/accelerators.c:2989 msgid "" "enables default meanings for additional buttons, modifiers or moves\n" "when used in combination with a base shortcut" msgstr "" -#: ../src/gui/accelerators.c:2725 +#: ../src/gui/accelerators.c:2997 msgid "open help page for shortcuts" msgstr "" -#: ../src/gui/accelerators.c:2730 +#: ../src/gui/accelerators.c:3002 msgid "restore..." msgstr "" -#: ../src/gui/accelerators.c:2731 +#: ../src/gui/accelerators.c:3003 msgid "restore default shortcuts or previous state" msgstr "" -#: ../src/gui/accelerators.c:2735 ../src/libs/styles.c:883 -#: ../src/libs/tagging.c:3251 +#: ../src/gui/accelerators.c:3007 ../src/libs/styles.c:887 +#: ../src/libs/tagging.c:3282 msgid "import..." msgstr "" -#: ../src/gui/accelerators.c:2736 +#: ../src/gui/accelerators.c:3008 msgid "fully or partially import shortcuts from file" msgstr "" -#: ../src/gui/accelerators.c:2740 ../src/libs/styles.c:890 -#: ../src/libs/tagging.c:3254 +#: ../src/gui/accelerators.c:3012 ../src/libs/styles.c:894 +#: ../src/libs/tagging.c:3285 msgid "export..." msgstr "" -#: ../src/gui/accelerators.c:2741 +#: ../src/gui/accelerators.c:3013 msgid "fully or partially export shortcuts to file" msgstr "" -#: ../src/gui/accelerators.c:3139 +#: ../src/gui/accelerators.c:3021 +msgid "" +"the recommended way to assign shortcuts to visual elements is the <b>visual " +"shortcut mapping</b> mode.\n" +"this is switched on by toggling the <i>\"keyboard\"</i> button next to " +"preferences in the top panel. in this mode, clicking on a widget or area " +"will open this dialog with the appropriate selection for advanced " +"configuration.\n" +"\n" +"multiple shortcuts can be assigned to the same action. this is especially " +"useful if it has multiple <i>elements</i>, like the module buttons or the " +"colorpickers attached to sliders. however, with <i>fallbacks</i> enabled one " +"can use the same simple shortcuts and change their <i>element</i> or " +"<i>effect</i> by adding mouse clicks.\n" +"\n" +"<i>click <b> three times </b> to dismiss this notice permanently</i>" +msgstr "" + +#: ../src/gui/accelerators.c:3452 msgid "reinitialising input devices" msgstr "" -#: ../src/gui/accelerators.c:3342 +#: ../src/gui/accelerators.c:3594 +msgid "down move" +msgstr "" + +#: ../src/gui/accelerators.c:3594 +msgid "flip top/bottom first/last" +msgstr "" + +#: ../src/gui/accelerators.c:3679 msgid "fallback to move" msgstr "" -#: ../src/gui/accelerators.c:3578 +#: ../src/gui/accelerators.c:3921 #, c-format msgid "%s not assigned" msgstr "" -#: ../src/gui/accelerators.c:3751 +#: ../src/gui/accelerators.c:4102 #, c-format msgid "%s assigned to %s" msgstr "" -#: ../src/gui/gtk.c:173 ../src/views/darkroom.c:4650 +#: ../src/gui/accelerators.c:4321 +msgid "short key press resets stuck keys" +msgstr "" + +#: ../src/gui/gtk.c:175 ../src/views/darkroom.c:3861 msgid "darktable - darkroom preview" msgstr "" -#: ../src/gui/gtk.c:184 +#: ../src/gui/gtk.c:186 msgid "tooltips off" msgstr "" -#: ../src/gui/gtk.c:186 +#: ../src/gui/gtk.c:188 msgid "tooltips on" msgstr "" -#: ../src/gui/gtk.c:191 +#: ../src/gui/gtk.c:193 msgid "" "tooltip visibility can only be toggled if compositing is enabled in your " "window manager" msgstr "" -#: ../src/gui/gtk.c:814 +#: ../src/gui/gtk.c:809 msgid "closing darktable..." msgstr "" -#: ../src/gui/gtk.c:1135 -msgid "panels" +#: ../src/gui/gtk.c:1032 +msgid "URL opened in web browser" msgstr "" -#. an action that does nothing - used for overriding/removing default shortcuts -#: ../src/gui/gtk.c:1184 -msgid "no-op" +#: ../src/gui/gtk.c:1036 +msgid "error while opening URL in web browser" msgstr "" -#: ../src/gui/gtk.c:1186 -msgid "switch views" +#. View menu +#: ../src/gui/gtk.c:1104 +msgctxt "menu" +msgid "Views" msgstr "" -#: ../src/gui/gtk.c:1187 ../src/views/tethering.c:102 +#: ../src/gui/gtk.c:1108 +msgctxt "menu" +msgid "lighttable" +msgstr "" + +#: ../src/gui/gtk.c:1109 +msgctxt "menu" +msgid "darkroom" +msgstr "" + +#: ../src/gui/gtk.c:1115 +msgctxt "menu" +msgid "slideshow" +msgstr "" + +#: ../src/gui/gtk.c:1117 +msgctxt "menu" +msgid "map" +msgstr "" + +#: ../src/gui/gtk.c:1119 +msgctxt "menu" +msgid "print" +msgstr "" + +#: ../src/gui/gtk.c:1121 +msgctxt "menu" msgid "tethering" msgstr "" -#: ../src/gui/gtk.c:1188 ../src/gui/preferences.c:531 -#: ../src/gui/preferences.c:542 ../src/libs/tools/lighttable.c:66 -#: ../src/views/lighttable.c:91 -msgid "lighttable" +#. Help menu +#: ../src/gui/gtk.c:1127 +msgctxt "menu" +msgid "Help" msgstr "" -#: ../src/gui/gtk.c:1189 ../src/gui/preferences.c:532 -#: ../src/gui/preferences.c:542 ../src/views/darkroom.c:94 -msgid "darkroom" +#: ../src/gui/gtk.c:1131 +msgctxt "menu" +msgid "darktable Manual" +msgstr "" + +#: ../src/gui/gtk.c:1138 +msgctxt "menu" +msgid "darktable Homepage" +msgstr "" + +#: ../src/gui/gtk.c:1162 +msgctxt "menu" +msgid "Preferences" msgstr "" -#: ../src/gui/gtk.c:1190 ../src/views/map.c:197 +#: ../src/gui/gtk.c:1232 +msgid "panels" +msgstr "" + +#: ../src/gui/gtk.c:1264 +msgid "switch views" +msgstr "" + +#: ../src/gui/gtk.c:1265 ../src/views/tethering.c:102 +msgid "tethering" +msgstr "" + +#: ../src/gui/gtk.c:1268 ../src/views/map.c:197 msgid "map" msgstr "" -#: ../src/gui/gtk.c:1191 ../src/views/slideshow.c:389 +#: ../src/gui/gtk.c:1269 ../src/views/slideshow.c:390 msgid "slideshow" msgstr "" #. Print button -#: ../src/gui/gtk.c:1192 ../src/libs/print_settings.c:2885 +#: ../src/gui/gtk.c:1270 ../src/libs/print_settings.c:2885 msgid "print" msgstr "" #. register ctrl-q to quit: -#: ../src/gui/gtk.c:1198 +#: ../src/gui/gtk.c:1276 msgid "quit" msgstr "" #. Full-screen accelerator (no ESC handler here to enable quit-slideshow using ESC) -#: ../src/gui/gtk.c:1201 +#: ../src/gui/gtk.c:1279 msgid "fullscreen" msgstr "" -#: ../src/gui/gtk.c:1205 +#: ../src/gui/gtk.c:1283 msgid "collapsing controls" msgstr "" #. specific top/bottom toggles -#: ../src/gui/gtk.c:1207 +#: ../src/gui/gtk.c:1285 msgid "header" msgstr "" -#: ../src/gui/gtk.c:1208 +#: ../src/gui/gtk.c:1286 msgid "filmstrip and timeline" msgstr "" -#: ../src/gui/gtk.c:1209 +#: ../src/gui/gtk.c:1287 msgid "top toolbar" msgstr "" -#: ../src/gui/gtk.c:1210 +#: ../src/gui/gtk.c:1288 msgid "bottom toolbar" msgstr "" -#: ../src/gui/gtk.c:1211 +#: ../src/gui/gtk.c:1289 msgid "all top" msgstr "" -#: ../src/gui/gtk.c:1212 +#: ../src/gui/gtk.c:1290 msgid "all bottom" msgstr "" -#: ../src/gui/gtk.c:1214 +#: ../src/gui/gtk.c:1292 msgid "toggle tooltip visibility" msgstr "" -#: ../src/gui/gtk.c:1215 +#: ../src/gui/gtk.c:1293 msgid "reinitialise input devices" msgstr "" -#: ../src/gui/gtk.c:1253 +#: ../src/gui/gtk.c:1331 msgid "toggle focus-peaking mode" msgstr "" #. toggle focus peaking everywhere -#: ../src/gui/gtk.c:1258 +#: ../src/gui/gtk.c:1336 msgid "toggle focus peaking" msgstr "" -#: ../src/gui/gtk.c:1594 ../src/gui/gtk.c:3143 ../src/gui/gtk.c:3148 -#: ../src/gui/gtk.c:3153 ../src/gui/gtk.c:3158 +#: ../src/gui/gtk.c:1654 ../src/gui/gtk.c:3189 ../src/gui/gtk.c:3194 +#: ../src/gui/gtk.c:3199 ../src/gui/gtk.c:3204 msgid "tabs" msgstr "" -#: ../src/gui/gtk.c:2535 -msgid "_yes" -msgstr "" - -#: ../src/gui/gtk.c:2536 -msgid "_no" -msgstr "" - #. ask the user if darktable.org may be accessed -#: ../src/gui/gtk.c:2647 +#: ../src/gui/gtk.c:2707 msgid "access the online user manual?" msgstr "" -#: ../src/gui/gtk.c:2648 +#: ../src/gui/gtk.c:2708 #, c-format msgid "do you want to access `%s'?" msgstr "" -#: ../src/gui/gtk.c:2717 -msgid "help url opened in web browser" -msgstr "" - -#: ../src/gui/gtk.c:2721 -msgid "error while opening help url in web browser" -msgstr "" - -#: ../src/gui/gtk.c:2732 +#: ../src/gui/gtk.c:2778 msgid "there is no help available for this element" msgstr "" #. font name can only use period as decimal separator #. but printf format strings use comma for some locales, so replace comma with period -#: ../src/gui/gtk.c:2752 +#: ../src/gui/gtk.c:2798 ../src/libs/metadata_view.c:762 #, c-format msgid "%.1f" msgstr "" -#: ../src/gui/gtk.c:2754 +#: ../src/gui/gtk.c:2800 #, c-format msgid "Sans %s" msgstr "" -#: ../src/gui/gtk.c:3048 +#: ../src/gui/gtk.c:3094 msgid "does not contain pages" msgstr "" -#: ../src/gui/gtk.c:3265 +#: ../src/gui/gtk.c:3313 #, c-format msgid "never show more than %d lines" msgstr "" -#: ../src/gui/gtkentry.c:172 +#: ../src/gui/gtkentry.c:173 msgid "$(ROLL.NAME) - roll of the input image" msgstr "" -#: ../src/gui/gtkentry.c:173 +#: ../src/gui/gtkentry.c:174 msgid "$(FILE.FOLDER) - folder containing the input image" msgstr "" -#: ../src/gui/gtkentry.c:174 +#: ../src/gui/gtkentry.c:175 msgid "$(FILE.NAME) - basename of the input image" msgstr "" -#: ../src/gui/gtkentry.c:175 +#: ../src/gui/gtkentry.c:176 msgid "$(FILE.EXTENSION) - extension of the input image" msgstr "" -#: ../src/gui/gtkentry.c:176 +#: ../src/gui/gtkentry.c:177 msgid "$(VERSION) - duplicate version" msgstr "" -#: ../src/gui/gtkentry.c:177 +#: ../src/gui/gtkentry.c:178 msgid "" "$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version " "exists" msgstr "" -#: ../src/gui/gtkentry.c:178 +#: ../src/gui/gtkentry.c:179 msgid "$(VERSION.NAME) - version name from metadata" msgstr "" -#: ../src/gui/gtkentry.c:179 +#: ../src/gui/gtkentry.c:180 msgid "$(JOBCODE) - job code for import" msgstr "" -#: ../src/gui/gtkentry.c:180 +#: ../src/gui/gtkentry.c:181 msgid "$(SEQUENCE) - sequence number" msgstr "" -#: ../src/gui/gtkentry.c:181 +#: ../src/gui/gtkentry.c:182 msgid "$(WIDTH.MAX) - maximum image export width" msgstr "" -#: ../src/gui/gtkentry.c:182 +#: ../src/gui/gtkentry.c:183 msgid "$(WIDTH.SENSOR) - image sensor width" msgstr "" -#: ../src/gui/gtkentry.c:183 +#: ../src/gui/gtkentry.c:184 msgid "$(WIDTH.RAW) - RAW image width" msgstr "" -#: ../src/gui/gtkentry.c:184 +#: ../src/gui/gtkentry.c:185 msgid "$(WIDTH.CROP) - image width after crop" msgstr "" -#: ../src/gui/gtkentry.c:185 +#: ../src/gui/gtkentry.c:186 msgid "$(WIDTH.EXPORT) - exported image width" msgstr "" -#: ../src/gui/gtkentry.c:186 +#: ../src/gui/gtkentry.c:187 msgid "$(HEIGHT.MAX) - maximum image export height" msgstr "" -#: ../src/gui/gtkentry.c:187 +#: ../src/gui/gtkentry.c:188 msgid "$(HEIGHT.SENSOR) - image sensor height" msgstr "" -#: ../src/gui/gtkentry.c:188 +#: ../src/gui/gtkentry.c:189 msgid "$(HEIGHT.RAW) - RAW image height" msgstr "" -#: ../src/gui/gtkentry.c:189 +#: ../src/gui/gtkentry.c:190 msgid "$(HEIGHT.CROP) - image height after crop" msgstr "" -#: ../src/gui/gtkentry.c:190 +#: ../src/gui/gtkentry.c:191 msgid "$(HEIGHT.EXPORT) - exported image height" msgstr "" -#: ../src/gui/gtkentry.c:191 +#: ../src/gui/gtkentry.c:192 msgid "$(YEAR) - year" msgstr "" -#: ../src/gui/gtkentry.c:192 +#: ../src/gui/gtkentry.c:193 msgid "$(YEAR.SHORT) - year without century" msgstr "" -#: ../src/gui/gtkentry.c:193 +#: ../src/gui/gtkentry.c:194 msgid "$(MONTH) - month" msgstr "" -#: ../src/gui/gtkentry.c:194 +#: ../src/gui/gtkentry.c:195 msgid "$(MONTH.SHORT) - abbreviated month name according to the current locale" msgstr "" -#: ../src/gui/gtkentry.c:195 +#: ../src/gui/gtkentry.c:196 msgid "$(MONTH.LONG) - full month name according to the current locale" msgstr "" -#: ../src/gui/gtkentry.c:196 +#: ../src/gui/gtkentry.c:197 msgid "$(DAY) - day" msgstr "" -#: ../src/gui/gtkentry.c:197 +#: ../src/gui/gtkentry.c:198 msgid "$(HOUR) - hour" msgstr "" -#: ../src/gui/gtkentry.c:198 +#: ../src/gui/gtkentry.c:199 msgid "$(HOUR.AMPM) - hour, 12-hour clock" msgstr "" -#: ../src/gui/gtkentry.c:199 +#: ../src/gui/gtkentry.c:200 msgid "$(MINUTE) - minute" msgstr "" -#: ../src/gui/gtkentry.c:200 +#: ../src/gui/gtkentry.c:201 msgid "$(SECOND) - second" msgstr "" -#: ../src/gui/gtkentry.c:201 +#: ../src/gui/gtkentry.c:202 msgid "$(MSEC) - millisecond" msgstr "" -#: ../src/gui/gtkentry.c:202 +#: ../src/gui/gtkentry.c:203 msgid "$(EXIF.YEAR) - EXIF year" msgstr "" -#: ../src/gui/gtkentry.c:203 +#: ../src/gui/gtkentry.c:204 msgid "$(EXIF.YEAR.SHORT) - EXIF year without century" msgstr "" -#: ../src/gui/gtkentry.c:204 +#: ../src/gui/gtkentry.c:205 msgid "$(EXIF.MONTH) - EXIF month" msgstr "" -#: ../src/gui/gtkentry.c:205 +#: ../src/gui/gtkentry.c:206 msgid "" "$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current " "locale" msgstr "" -#: ../src/gui/gtkentry.c:206 +#: ../src/gui/gtkentry.c:207 msgid "" "$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" msgstr "" -#: ../src/gui/gtkentry.c:207 +#: ../src/gui/gtkentry.c:208 msgid "$(EXIF.DAY) - EXIF day" msgstr "" -#: ../src/gui/gtkentry.c:208 +#: ../src/gui/gtkentry.c:209 msgid "$(EXIF.HOUR) - EXIF hour" msgstr "" -#: ../src/gui/gtkentry.c:209 +#: ../src/gui/gtkentry.c:210 msgid "$(EXIF.HOUR.AMPM) - EXIF hour, 12-hour clock" msgstr "" -#: ../src/gui/gtkentry.c:210 +#: ../src/gui/gtkentry.c:211 msgid "$(EXIF.MINUTE) - EXIF minute" msgstr "" -#: ../src/gui/gtkentry.c:211 +#: ../src/gui/gtkentry.c:212 msgid "$(EXIF.SECOND) - EXIF second" msgstr "" -#: ../src/gui/gtkentry.c:212 +#: ../src/gui/gtkentry.c:213 msgid "$(EXIF.MSEC) - EXIF millisecond" msgstr "" -#: ../src/gui/gtkentry.c:213 +#: ../src/gui/gtkentry.c:214 msgid "$(EXIF.ISO) - ISO value" msgstr "" -#: ../src/gui/gtkentry.c:214 +#: ../src/gui/gtkentry.c:215 msgid "$(EXIF.EXPOSURE) - EXIF exposure" msgstr "" -#: ../src/gui/gtkentry.c:215 +#: ../src/gui/gtkentry.c:216 msgid "$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias" msgstr "" -#: ../src/gui/gtkentry.c:216 +#: ../src/gui/gtkentry.c:217 msgid "$(EXIF.APERTURE) - EXIF aperture" msgstr "" -#: ../src/gui/gtkentry.c:217 +#: ../src/gui/gtkentry.c:218 +msgid "$(EXIF.CROP_FACTOR) - EXIF crop factor" +msgstr "" + +#: ../src/gui/gtkentry.c:219 msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" msgstr "" -#: ../src/gui/gtkentry.c:218 +#: ../src/gui/gtkentry.c:220 +msgid "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent focal length" +msgstr "" + +#: ../src/gui/gtkentry.c:221 msgid "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" msgstr "" -#: ../src/gui/gtkentry.c:219 +#: ../src/gui/gtkentry.c:222 msgid "$(EXIF.MAKER) - camera maker" msgstr "" -#: ../src/gui/gtkentry.c:220 +#: ../src/gui/gtkentry.c:223 msgid "$(EXIF.MODEL) - camera model" msgstr "" -#: ../src/gui/gtkentry.c:221 +#: ../src/gui/gtkentry.c:224 msgid "$(EXIF.LENS) - lens" msgstr "" -#: ../src/gui/gtkentry.c:222 +#: ../src/gui/gtkentry.c:225 msgid "$(LONGITUDE) - longitude" msgstr "" -#: ../src/gui/gtkentry.c:223 +#: ../src/gui/gtkentry.c:226 msgid "$(LATITUDE) - latitude" msgstr "" -#: ../src/gui/gtkentry.c:224 +#: ../src/gui/gtkentry.c:227 msgid "$(ELEVATION) - elevation" msgstr "" -#: ../src/gui/gtkentry.c:225 +#: ../src/gui/gtkentry.c:228 msgid "$(STARS) - star rating as number (-1 for rejected)" msgstr "" -#: ../src/gui/gtkentry.c:226 +#: ../src/gui/gtkentry.c:229 msgid "$(RATING.ICONS) - star/reject rating in icon form" msgstr "" -#: ../src/gui/gtkentry.c:227 +#: ../src/gui/gtkentry.c:230 msgid "$(LABELS) - color labels as text" msgstr "" -#: ../src/gui/gtkentry.c:228 +#: ../src/gui/gtkentry.c:231 msgid "$(LABELS.ICONS) - color labels as icons" msgstr "" -#: ../src/gui/gtkentry.c:229 +#: ../src/gui/gtkentry.c:232 msgid "$(ID) - image ID" msgstr "" -#: ../src/gui/gtkentry.c:230 +#: ../src/gui/gtkentry.c:233 msgid "$(TITLE) - title from metadata" msgstr "" -#: ../src/gui/gtkentry.c:231 +#: ../src/gui/gtkentry.c:234 msgid "$(DESCRIPTION) - description from metadata" msgstr "" -#: ../src/gui/gtkentry.c:232 +#: ../src/gui/gtkentry.c:235 msgid "$(CREATOR) - creator from metadata" msgstr "" -#: ../src/gui/gtkentry.c:233 +#: ../src/gui/gtkentry.c:236 msgid "$(PUBLISHER) - publisher from metadata" msgstr "" -#: ../src/gui/gtkentry.c:234 +#: ../src/gui/gtkentry.c:237 msgid "$(RIGHTS) - rights from metadata" msgstr "" -#: ../src/gui/gtkentry.c:235 +#: ../src/gui/gtkentry.c:238 msgid "$(USERNAME) - login name" msgstr "" -#: ../src/gui/gtkentry.c:236 +#: ../src/gui/gtkentry.c:239 msgid "$(FOLDER.PICTURES) - pictures folder" msgstr "" -#: ../src/gui/gtkentry.c:237 +#: ../src/gui/gtkentry.c:240 msgid "$(FOLDER.HOME) - home folder" msgstr "" -#: ../src/gui/gtkentry.c:238 +#: ../src/gui/gtkentry.c:241 msgid "$(FOLDER.DESKTOP) - desktop folder" msgstr "" -#: ../src/gui/gtkentry.c:239 +#: ../src/gui/gtkentry.c:242 msgid "$(OPENCL.ACTIVATED) - whether OpenCL is activated" msgstr "" -#: ../src/gui/gtkentry.c:240 +#: ../src/gui/gtkentry.c:243 msgid "$(CATEGORY0(category)) - subtag of level 0 in hierarchical tags" msgstr "" -#: ../src/gui/gtkentry.c:241 +#: ../src/gui/gtkentry.c:244 msgid "$(TAGS) - tags as set in metadata settings" msgstr "" -#: ../src/gui/gtkentry.c:242 +#: ../src/gui/gtkentry.c:245 msgid "$(DARKTABLE.NAME) - darktable name" msgstr "" -#: ../src/gui/gtkentry.c:243 +#: ../src/gui/gtkentry.c:246 msgid "$(DARKTABLE.VERSION) - current darktable version" msgstr "" -#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:255 +#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:248 msgid "grid" msgstr "" @@ -10050,11 +10497,11 @@ msgstr "" #: ../src/gui/guides.c:710 ../src/gui/guides.c:719 ../src/gui/guides.c:727 -#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2648 +#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2494 msgid "guide lines" msgstr "" -#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2092 +#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2145 msgid "flip" msgstr "" @@ -10070,8 +10517,8 @@ msgid "vertically" msgstr "" -#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6285 ../src/iop/clipping.c:2096 -#: ../src/iop/colorbalance.c:1917 +#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6232 ../src/iop/clipping.c:2149 +#: ../src/iop/colorbalance.c:1892 msgid "both" msgstr "" @@ -10115,26 +10562,26 @@ msgid "select parts to paste" msgstr "" -#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:517 +#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:524 msgid "select _all" msgstr "" -#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:518 +#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:525 msgid "select _none" msgstr "" -#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:593 -#: ../src/gui/styles_dialog.c:615 +#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:605 +#: ../src/gui/styles_dialog.c:627 msgid "include" msgstr "" -#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:669 -#: ../src/gui/styles_dialog.c:675 +#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:681 +#: ../src/gui/styles_dialog.c:687 msgid "item" msgstr "" -#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:682 -#: ../src/gui/styles_dialog.c:691 +#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:694 +#: ../src/gui/styles_dialog.c:703 msgid "mask" msgstr "" @@ -10180,37 +10627,37 @@ msgid "interface language" msgstr "" -#: ../src/gui/preferences.c:289 +#: ../src/gui/preferences.c:290 msgid "double-click to reset to the system language" msgstr "" -#: ../src/gui/preferences.c:291 +#: ../src/gui/preferences.c:292 msgid "" "set the language of the user interface. the system default is marked with an " "* (needs a restart)" msgstr "" -#: ../src/gui/preferences.c:300 +#: ../src/gui/preferences.c:301 msgid "theme" msgstr "" -#: ../src/gui/preferences.c:328 +#: ../src/gui/preferences.c:331 msgid "set the theme for the user interface" msgstr "" -#: ../src/gui/preferences.c:341 ../src/gui/preferences.c:348 +#: ../src/gui/preferences.c:344 ../src/gui/preferences.c:351 msgid "use system font size" msgstr "" -#: ../src/gui/preferences.c:357 ../src/gui/preferences.c:364 +#: ../src/gui/preferences.c:360 ../src/gui/preferences.c:367 msgid "font size in points" msgstr "" -#: ../src/gui/preferences.c:369 +#: ../src/gui/preferences.c:372 msgid "GUI controls and text DPI" msgstr "" -#: ../src/gui/preferences.c:376 +#: ../src/gui/preferences.c:379 msgid "" "adjust the global GUI resolution to rescale controls, buttons, labels, etc.\n" "increase for a magnified GUI, decrease to fit more content in window.\n" @@ -10220,146 +10667,130 @@ msgstr "" #. checkbox to allow user to modify theme with user.css -#: ../src/gui/preferences.c:385 +#: ../src/gui/preferences.c:388 msgid "modify selected theme with CSS tweaks below" msgstr "" -#: ../src/gui/preferences.c:393 +#: ../src/gui/preferences.c:396 msgid "modify theme with CSS keyed below (saved to user.css)" msgstr "" -#: ../src/gui/preferences.c:415 +#: ../src/gui/preferences.c:418 msgctxt "usercss" msgid "save CSS and apply" msgstr "" -#: ../src/gui/preferences.c:420 +#: ../src/gui/preferences.c:423 msgid "click to save and apply the CSS tweaks entered in this editor" msgstr "" -#: ../src/gui/preferences.c:422 +#: ../src/gui/preferences.c:425 msgid "open help page for CSS tweaks" msgstr "" #. load default text with some pointers -#: ../src/gui/preferences.c:443 +#: ../src/gui/preferences.c:446 msgid "ERROR Loading user.css" msgstr "" #. load default text -#: ../src/gui/preferences.c:452 +#: ../src/gui/preferences.c:455 msgid "Enter CSS theme tweaks here" msgstr "" -#: ../src/gui/preferences.c:488 +#: ../src/gui/preferences.c:491 msgid "darktable preferences" msgstr "" -#: ../src/gui/preferences.c:533 -msgid "processing" -msgstr "" - -#: ../src/gui/preferences.c:534 -msgid "security" -msgstr "" - -#: ../src/gui/preferences.c:535 -msgid "storage" -msgstr "" - -#: ../src/gui/preferences.c:536 -msgid "miscellaneous" -msgstr "" - -#: ../src/gui/preferences.c:561 +#: ../src/gui/preferences.c:559 msgid "darktable needs to be restarted for settings to take effect" msgstr "" #. exif -#: ../src/gui/preferences.c:820 ../src/gui/presets.c:644 -#: ../src/libs/metadata_view.c:137 +#: ../src/gui/preferences.c:818 ../src/gui/presets.c:647 +#: ../src/libs/metadata_view.c:139 msgid "model" msgstr "" -#: ../src/gui/preferences.c:824 ../src/gui/presets.c:652 -#: ../src/libs/metadata_view.c:138 +#: ../src/gui/preferences.c:822 ../src/gui/presets.c:655 +#: ../src/libs/metadata_view.c:140 msgid "maker" msgstr "" -#: ../src/gui/preferences.c:861 +#: ../src/gui/preferences.c:859 msgid "search presets list" msgstr "" -#: ../src/gui/preferences.c:862 +#: ../src/gui/preferences.c:860 msgid "" "incrementally search the list of presets\n" "press up or down keys to cycle through matches" msgstr "" -#: ../src/gui/preferences.c:868 +#: ../src/gui/preferences.c:866 msgctxt "preferences" msgid "import..." msgstr "" -#: ../src/gui/preferences.c:872 +#: ../src/gui/preferences.c:870 msgctxt "preferences" msgid "export..." msgstr "" -#: ../src/gui/preferences.c:1031 +#: ../src/gui/preferences.c:1030 #, c-format msgid "failed to import preset %s" msgstr "" -#: ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1041 msgid "select preset(s) to import" msgstr "" -#: ../src/gui/preferences.c:1043 ../src/libs/collect.c:408 -#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:929 -#: ../src/libs/import.c:1506 ../src/libs/import.c:1610 ../src/libs/styles.c:527 +#: ../src/gui/preferences.c:1042 ../src/libs/collect.c:425 +#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:930 +#: ../src/libs/import.c:1515 ../src/libs/import.c:1619 ../src/libs/styles.c:529 msgid "_open" msgstr "" -#: ../src/gui/preferences.c:1052 +#: ../src/gui/preferences.c:1051 msgid "darktable preset files" msgstr "" -#: ../src/gui/preferences.c:1057 ../src/iop/lut3d.c:1577 -#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:945 -#: ../src/libs/styles.c:541 +#: ../src/gui/preferences.c:1056 ../src/iop/lut3d.c:1591 +#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:946 +#: ../src/libs/styles.c:543 msgid "all files" msgstr "" -#: ../src/gui/presets.c:59 +#: ../src/gui/presets.c:61 msgid "non-raw" msgstr "" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:332 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:336 msgid "raw" msgstr "" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:333 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:337 msgid "HDR" msgstr "" -#: ../src/gui/presets.c:59 ../src/iop/monochrome.c:77 ../src/libs/image.c:608 -#: ../src/libs/metadata_view.c:339 +#: ../src/gui/presets.c:61 ../src/iop/monochrome.c:77 ../src/libs/image.c:679 +#: ../src/libs/metadata_view.c:343 msgid "monochrome" msgstr "" -#: ../src/gui/presets.c:151 +#: ../src/gui/presets.c:153 #, c-format msgid "preset `%s' is write-protected, can't delete!" msgstr "" -#: ../src/gui/presets.c:157 ../src/gui/presets.c:461 ../src/libs/lib.c:238 -#: ../src/libs/modulegroups.c:3701 +#: ../src/gui/presets.c:159 ../src/gui/presets.c:463 ../src/libs/lib.c:238 +#: ../src/libs/modulegroups.c:3703 msgid "delete preset?" msgstr "" -#: ../src/gui/presets.c:158 ../src/gui/presets.c:462 ../src/libs/lib.c:239 -#: ../src/libs/modulegroups.c:3702 +#: ../src/gui/presets.c:160 ../src/gui/presets.c:464 ../src/libs/lib.c:239 +#: ../src/libs/modulegroups.c:3704 #, c-format msgid "do you really want to delete the preset `%s'?" msgstr "" @@ -10370,234 +10801,239 @@ #. clang-format on #. create a shortcut for the new entry #. then show edit dialog -#: ../src/gui/presets.c:200 ../src/gui/presets.c:1035 ../src/gui/presets.c:1038 -#: ../src/gui/presets.c:1041 ../src/libs/lib.c:188 ../src/libs/lib.c:205 +#: ../src/gui/presets.c:202 ../src/gui/presets.c:1022 ../src/gui/presets.c:1025 +#: ../src/gui/presets.c:1028 ../src/libs/lib.c:188 ../src/libs/lib.c:205 #: ../src/libs/lib.c:213 ../src/libs/lib.c:216 msgid "new preset" msgstr "" -#: ../src/gui/presets.c:207 +#: ../src/gui/presets.c:209 msgid "please give preset a name" msgstr "" -#: ../src/gui/presets.c:212 +#: ../src/gui/presets.c:214 msgid "unnamed preset" msgstr "" -#: ../src/gui/presets.c:241 +#: ../src/gui/presets.c:243 msgid "overwrite preset?" msgstr "" -#: ../src/gui/presets.c:242 +#: ../src/gui/presets.c:244 #, c-format msgid "" "preset `%s' already exists.\n" "do you want to overwrite?" msgstr "" -#: ../src/gui/presets.c:420 ../src/imageio/storage/disk.c:123 -#: ../src/imageio/storage/gallery.c:110 ../src/imageio/storage/latex.c:109 +#: ../src/gui/presets.c:422 ../src/imageio/storage/disk.c:198 +#: ../src/imageio/storage/gallery.c:150 ../src/imageio/storage/latex.c:146 msgid "_select as output destination" msgstr "" -#: ../src/gui/presets.c:429 +#: ../src/gui/presets.c:431 #, c-format msgid "preset %s was successfully exported" msgstr "" -#: ../src/gui/presets.c:557 +#: ../src/gui/presets.c:559 #, c-format msgid "edit `%s' for module `%s'" msgstr "" -#: ../src/gui/presets.c:561 +#: ../src/gui/presets.c:563 msgid "_export..." msgstr "" -#: ../src/gui/presets.c:585 +#: ../src/gui/presets.c:564 ../src/libs/tagging.c:1489 +#: ../src/libs/tagging.c:1580 +msgid "_delete" +msgstr "" + +#: ../src/gui/presets.c:588 msgid "name of the preset" msgstr "" -#: ../src/gui/presets.c:594 +#: ../src/gui/presets.c:597 msgid "description or further information" msgstr "" -#: ../src/gui/presets.c:598 +#: ../src/gui/presets.c:601 msgid "reset all module parameters to their default values" msgstr "" -#: ../src/gui/presets.c:601 +#: ../src/gui/presets.c:604 msgid "" "the parameters will be reset to their default values, which may be " "automatically set based on image metadata" msgstr "" -#: ../src/gui/presets.c:607 +#: ../src/gui/presets.c:610 msgid "auto apply this preset to matching images" msgstr "" -#: ../src/gui/presets.c:611 +#: ../src/gui/presets.c:614 msgid "only show this preset for matching images" msgstr "" -#: ../src/gui/presets.c:613 +#: ../src/gui/presets.c:616 msgid "" "be very careful with this option. this might be the last time you see your " "preset." msgstr "" -#: ../src/gui/presets.c:643 +#: ../src/gui/presets.c:646 #, no-c-format msgid "string to match model (use % as wildcard)" msgstr "" -#: ../src/gui/presets.c:651 +#: ../src/gui/presets.c:654 #, no-c-format msgid "string to match maker (use % as wildcard)" msgstr "" -#: ../src/gui/presets.c:659 +#: ../src/gui/presets.c:662 #, no-c-format msgid "string to match lens (use % as wildcard)" msgstr "" -#: ../src/gui/presets.c:669 +#: ../src/gui/presets.c:672 msgid "minimum ISO value" msgstr "" -#: ../src/gui/presets.c:675 +#: ../src/gui/presets.c:678 msgid "" "maximum ISO value\n" "if left blank, it is equivalent to no upper limit" msgstr "" -#: ../src/gui/presets.c:688 +#: ../src/gui/presets.c:691 msgid "minimum exposure time" msgstr "" -#: ../src/gui/presets.c:689 +#: ../src/gui/presets.c:692 msgid "maximum exposure time" msgstr "" -#: ../src/gui/presets.c:705 +#: ../src/gui/presets.c:708 msgid "minimum aperture value" msgstr "" -#: ../src/gui/presets.c:706 +#: ../src/gui/presets.c:709 msgid "maximum aperture value" msgstr "" -#: ../src/gui/presets.c:724 +#: ../src/gui/presets.c:727 msgid "minimum focal length" msgstr "" -#: ../src/gui/presets.c:725 +#: ../src/gui/presets.c:728 msgid "maximum focal length" msgstr "" #. raw/hdr/ldr/mono/color -#: ../src/gui/presets.c:733 ../src/imageio/format/j2k.c:650 +#: ../src/gui/presets.c:736 msgid "format" msgstr "" -#: ../src/gui/presets.c:738 +#: ../src/gui/presets.c:741 msgid "select image types you want this preset to be available for" msgstr "" -#: ../src/gui/presets.c:751 ../src/libs/filtering.c:1201 +#: ../src/gui/presets.c:754 ../src/libs/filtering.c:1263 msgid "and" msgstr "" -#: ../src/gui/presets.c:795 ../src/gui/presets.c:847 +#: ../src/gui/presets.c:798 ../src/gui/presets.c:850 msgid "∞" msgstr "" -#: ../src/gui/presets.c:979 +#: ../src/gui/presets.c:966 #, c-format msgid "preset `%s' is write-protected! can't edit it!" msgstr "" -#: ../src/gui/presets.c:1003 ../src/libs/lib.c:158 +#: ../src/gui/presets.c:990 ../src/libs/lib.c:158 msgid "update preset?" msgstr "" -#: ../src/gui/presets.c:1004 ../src/libs/lib.c:159 +#: ../src/gui/presets.c:991 ../src/libs/lib.c:159 #, c-format msgid "do you really want to update the preset `%s'?" msgstr "" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(first)" msgstr "" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(last)" msgstr "" -#: ../src/gui/presets.c:1165 +#: ../src/gui/presets.c:1152 #, c-format msgid "" "preset %s\n" "%s" msgstr "" -#: ../src/gui/presets.c:1166 +#: ../src/gui/presets.c:1153 msgid "no presets" msgstr "" -#: ../src/gui/presets.c:1199 ../src/iop/basecurve.c:528 -#: ../src/iop/basecurve.c:532 ../src/iop/basecurve.c:535 +#: ../src/gui/presets.c:1188 ../src/iop/basecurve.c:575 +#: ../src/iop/basecurve.c:579 ../src/iop/basecurve.c:582 msgid "display-referred default" msgstr "" -#: ../src/gui/presets.c:1201 ../src/iop/channelmixerrgb.c:332 -#: ../src/iop/channelmixerrgb.c:336 ../src/iop/channelmixerrgb.c:339 -#: ../src/iop/exposure.c:297 ../src/iop/exposure.c:301 -#: ../src/iop/exposure.c:304 ../src/iop/filmicrgb.c:3248 -#: ../src/iop/filmicrgb.c:3252 ../src/iop/filmicrgb.c:3255 -#: ../src/iop/sigmoid.c:134 ../src/iop/sigmoid.c:138 ../src/iop/sigmoid.c:141 +#: ../src/gui/presets.c:1190 ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:400 ../src/iop/channelmixerrgb.c:403 +#: ../src/iop/exposure.c:319 ../src/iop/exposure.c:323 +#: ../src/iop/exposure.c:326 ../src/iop/filmicrgb.c:3311 +#: ../src/iop/filmicrgb.c:3315 ../src/iop/filmicrgb.c:3318 +#: ../src/iop/sigmoid.c:240 ../src/iop/sigmoid.c:243 ../src/iop/sigmoid.c:245 msgid "scene-referred default" msgstr "" -#: ../src/gui/presets.c:1393 ../src/libs/modulegroups.c:3781 -#: ../src/libs/modulegroups.c:3790 +#: ../src/gui/presets.c:1394 ../src/libs/modulegroups.c:3783 +#: ../src/libs/modulegroups.c:3792 msgid "manage module layouts" msgstr "" -#: ../src/gui/presets.c:1402 +#: ../src/gui/presets.c:1403 msgid "manage quick presets" msgstr "" -#: ../src/gui/presets.c:1586 +#: ../src/gui/presets.c:1587 msgid "manage quick presets list..." msgstr "" -#: ../src/gui/presets.c:1727 +#: ../src/gui/presets.c:1728 msgid "(default)" msgstr "" -#: ../src/gui/presets.c:1754 +#: ../src/gui/presets.c:1755 msgid "disabled: wrong module version" msgstr "" -#: ../src/gui/presets.c:1776 ../src/libs/lib.c:551 +#: ../src/gui/presets.c:1777 ../src/libs/lib.c:551 msgid "edit this preset.." msgstr "" -#: ../src/gui/presets.c:1781 ../src/libs/lib.c:555 +#: ../src/gui/presets.c:1782 ../src/libs/lib.c:555 msgid "delete this preset" msgstr "" -#: ../src/gui/presets.c:1788 ../src/libs/lib.c:563 +#: ../src/gui/presets.c:1789 ../src/libs/lib.c:563 msgid "store new preset.." msgstr "" -#: ../src/gui/presets.c:1796 ../src/libs/lib.c:576 +#: ../src/gui/presets.c:1797 ../src/libs/lib.c:576 msgid "update preset" msgstr "" #: ../src/gui/styles_dialog.c:221 ../src/libs/styles.c:437 -#: ../src/libs/styles.c:620 +#: ../src/libs/styles.c:622 msgid "overwrite style?" msgstr "" @@ -10621,126 +11057,147 @@ msgid "style %s was successfully saved" msgstr "" -#: ../src/gui/styles_dialog.c:505 +#: ../src/gui/styles_dialog.c:512 msgid "edit style" msgstr "" -#: ../src/gui/styles_dialog.c:506 +#: ../src/gui/styles_dialog.c:513 msgid "duplicate style" msgstr "" -#: ../src/gui/styles_dialog.c:507 +#: ../src/gui/styles_dialog.c:514 msgid "creates a duplicate of the style before applying changes" msgstr "" -#: ../src/gui/styles_dialog.c:511 +#: ../src/gui/styles_dialog.c:518 msgid "create new style" msgstr "" -#: ../src/gui/styles_dialog.c:549 +#: ../src/gui/styles_dialog.c:557 msgid "enter a name for the new style" msgstr "" -#: ../src/gui/styles_dialog.c:554 +#: ../src/gui/styles_dialog.c:565 msgid "enter a description for the new style, this description is searchable" msgstr "" -#: ../src/gui/styles_dialog.c:593 +#: ../src/gui/styles_dialog.c:605 msgid "keep" msgstr "" -#: ../src/gui/styles_dialog.c:820 +#: ../src/gui/styles_dialog.c:832 msgid "can't create style out of unaltered image" msgstr "" -#: ../src/imageio/imageio.c:804 +#: ../src/imageio/imageio.c:816 #, c-format msgid "" "failed to allocate memory for %s, please lower the threads used for export " "or buy more memory." msgstr "" -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "thumbnail export" msgstr "" -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "export" msgstr "" -#: ../src/imageio/imageio.c:819 +#: ../src/imageio/imageio.c:831 #, c-format msgid "cannot find the style '%s' to apply during export." msgstr "" -#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:536 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/imageio_libraw.c:295 +msgid "" +"<span foreground='red'><b>WARNING</b></span>: camera is not fully supported!" +msgstr "" + +#: ../src/imageio/imageio_libraw.c:297 +#, c-format +msgid "" +"colors for `%s' could be misrepresented,\n" +"and edits might not be compatible with future versions." +msgstr "" + +#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:641 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "8 bit" msgstr "" -#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:567 msgid "10 bit" msgstr "" -#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:567 msgid "12 bit" msgstr "" -#: ../src/imageio/format/avif.c:431 -msgid "invalid AVIF bit depth!" +#: ../src/imageio/format/avif.c:110 ../src/imageio/format/webp.c:416 +msgid "lossless" msgstr "" -#: ../src/imageio/format/avif.c:694 -msgid "AVIF" +#: ../src/imageio/format/avif.c:112 ../src/imageio/format/webp.c:416 +msgid "lossy" +msgstr "" + +#: ../src/imageio/format/avif.c:463 +msgid "invalid AVIF bit depth!" msgstr "" #. Bit depth combo box -#: ../src/imageio/format/avif.c:766 ../src/imageio/format/exr.cc:565 -#: ../src/imageio/format/jxl.c:555 ../src/imageio/format/pdf.c:661 -#: ../src/imageio/format/png.c:534 ../src/imageio/format/tiff.c:843 +#: ../src/imageio/format/avif.c:800 ../src/imageio/format/exr.cc:601 +#: ../src/imageio/format/jxl.c:566 ../src/imageio/format/pdf.c:661 +#: ../src/imageio/format/png.c:639 ../src/imageio/format/tiff.c:900 #: ../src/imageio/format/xcf.c:354 msgid "bit depth" msgstr "" -#: ../src/imageio/format/avif.c:779 +#: ../src/imageio/format/avif.c:813 msgid "color information stored in an image, higher is better" msgstr "" -#: ../src/imageio/format/avif.c:787 -msgid "saving as grayscale will reduce the size for black & white images" -msgstr "" - -#: ../src/imageio/format/avif.c:789 -msgid "RGB colors" +#. +#. * Color mode combo box +#. +#. shortfile option combo box +#: ../src/imageio/format/avif.c:820 ../src/imageio/format/tiff.c:944 +msgid "B&W as grayscale" msgstr "" -#: ../src/imageio/format/avif.c:789 -msgid "grayscale" +#: ../src/imageio/format/avif.c:821 ../src/imageio/format/tiff.c:945 +msgid "saving as grayscale will reduce the size for black & white images" msgstr "" #. #. * Tiling combo box #. -#: ../src/imageio/format/avif.c:799 +#: ../src/imageio/format/avif.c:832 msgid "tiling" msgstr "" -#: ../src/imageio/format/avif.c:800 +#: ../src/imageio/format/avif.c:833 msgid "" "tile an image into segments.\n" "\n" -"makes encoding faster. the impact on quality reduction is negligible, but " -"increases the file size." +"makes encoding faster, but increases the file size. the loss of image " +"quality is negligible." msgstr "" -#: ../src/imageio/format/avif.c:817 ../src/imageio/format/webp.c:383 -msgid "compression type" +#. compression +#. Compression method combo box +#: ../src/imageio/format/avif.c:850 ../src/imageio/format/exr.cc:611 +#: ../src/imageio/format/pdf.c:676 ../src/imageio/format/png.c:653 +#: ../src/imageio/format/tiff.c:923 ../src/imageio/format/webp.c:414 +#: ../src/libs/masks.c:111 +msgid "compression" msgstr "" -#: ../src/imageio/format/avif.c:825 +#: ../src/imageio/format/avif.c:858 msgid "the compression for the image" msgstr "" @@ -10749,27 +11206,23 @@ #. step #. default #. digits -#: ../src/imageio/format/avif.c:842 ../src/imageio/format/j2k.c:661 -#: ../src/imageio/format/jpeg.c:587 ../src/imageio/format/jxl.c:579 -#: ../src/imageio/format/webp.c:394 ../src/libs/camera.c:564 +#: ../src/imageio/format/avif.c:878 ../src/imageio/format/j2k.c:679 +#: ../src/imageio/format/jpeg.c:584 ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/webp.c:425 ../src/libs/camera.c:564 msgid "quality" msgstr "" -#: ../src/imageio/format/avif.c:847 +#: ../src/imageio/format/avif.c:881 msgid "" "the quality of an image, less quality means fewer details.\n" "\n" -"the following applies only to lossy setting\n" -"\n" -"pixelformat based on quality:\n" +"pixel format is controlled by quality:\n" "\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" msgstr "" #: ../src/imageio/format/copy.c:109 ../src/libs/copy_history.c:370 -#: ../src/libs/image.c:583 +#: ../src/libs/image.c:647 msgid "copy" msgstr "" @@ -10783,120 +11236,134 @@ msgid "the selected output profile doesn't work well with EXR" msgstr "" -#: ../src/imageio/format/exr.cc:540 +#: ../src/imageio/format/exr.cc:576 msgid "OpenEXR" msgstr "" -#: ../src/imageio/format/exr.cc:567 +#: ../src/imageio/format/exr.cc:603 msgid "16 bit (float)" msgstr "" -#: ../src/imageio/format/exr.cc:567 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/format/exr.cc:603 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "32 bit (float)" msgstr "" -#. compression -#. Compression method combo box -#: ../src/imageio/format/exr.cc:575 ../src/imageio/format/pdf.c:676 -#: ../src/imageio/format/png.c:548 ../src/imageio/format/tiff.c:866 -#: ../src/libs/masks.c:110 -msgid "compression" -msgstr "" - -#: ../src/imageio/format/exr.cc:577 ../src/imageio/format/pdf.c:682 -#: ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/exr.cc:613 ../src/imageio/format/pdf.c:682 +#: ../src/imageio/format/tiff.c:924 msgid "uncompressed" msgstr "" -#: ../src/imageio/format/exr.cc:578 +#: ../src/imageio/format/exr.cc:614 msgid "RLE" msgstr "" -#: ../src/imageio/format/exr.cc:579 +#: ../src/imageio/format/exr.cc:615 msgid "ZIPS" msgstr "" -#: ../src/imageio/format/exr.cc:580 +#: ../src/imageio/format/exr.cc:616 msgid "ZIP" msgstr "" -#: ../src/imageio/format/exr.cc:581 +#: ../src/imageio/format/exr.cc:617 msgid "PIZ" msgstr "" -#: ../src/imageio/format/exr.cc:582 +#: ../src/imageio/format/exr.cc:618 msgid "PXR24" msgstr "" -#: ../src/imageio/format/exr.cc:583 +#: ../src/imageio/format/exr.cc:619 msgid "B44" msgstr "" -#: ../src/imageio/format/exr.cc:584 +#: ../src/imageio/format/exr.cc:620 msgid "B44A" msgstr "" -#: ../src/imageio/format/exr.cc:585 +#: ../src/imageio/format/exr.cc:621 msgid "DWAA" msgstr "" -#: ../src/imageio/format/exr.cc:586 +#: ../src/imageio/format/exr.cc:622 msgid "DWAB" msgstr "" -#: ../src/imageio/format/j2k.c:618 +#: ../src/imageio/format/j2k.c:648 msgid "JPEG 2000 (12-bit)" msgstr "" -#: ../src/imageio/format/j2k.c:652 -msgid "jp2" -msgstr "" - -#: ../src/imageio/format/j2k.c:667 +#: ../src/imageio/format/j2k.c:684 msgid "DCP mode" msgstr "" -#: ../src/imageio/format/j2k.c:670 +#: ../src/imageio/format/j2k.c:687 msgid "Cinema2K, 24FPS" msgstr "" -#: ../src/imageio/format/j2k.c:671 +#: ../src/imageio/format/j2k.c:688 msgid "Cinema2K, 48FPS" msgstr "" -#: ../src/imageio/format/j2k.c:672 +#: ../src/imageio/format/j2k.c:689 msgid "Cinema4K, 24FPS" msgstr "" -#: ../src/imageio/format/jpeg.c:564 +#: ../src/imageio/format/jpeg.c:546 msgid "JPEG (8-bit)" msgstr "" -#: ../src/imageio/format/jxl.c:471 -msgid "JPEG XL" +#: ../src/imageio/format/jpeg.c:594 +msgid "chroma subsampling" +msgstr "" + +#: ../src/imageio/format/jpeg.c:595 +msgid "" +"chroma subsampling setting for JPEG encoder.\n" +"auto - use subsampling determined by the quality value\n" +"4:4:4 - no chroma subsampling\n" +"4:4:0 - color sampling rate halved vertically\n" +"4:2:2 - color sampling rate halved horizontally\n" +"4:2:0 - color sampling rate halved horizontally and vertically" +msgstr "" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:4" msgstr "" -#: ../src/imageio/format/jxl.c:556 ../src/imageio/format/pdf.c:81 -#: ../src/imageio/format/png.c:536 ../src/imageio/format/tiff.c:847 +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:0" +msgstr "" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:2" +msgstr "" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:0" +msgstr "" + +#: ../src/imageio/format/jxl.c:567 ../src/imageio/format/pdf.c:81 +#: ../src/imageio/format/png.c:641 ../src/imageio/format/tiff.c:904 #: ../src/imageio/format/xcf.c:357 msgid "16 bit" msgstr "" #. Pixel format combo box -#: ../src/imageio/format/jxl.c:562 ../src/imageio/format/tiff.c:852 +#: ../src/imageio/format/jxl.c:573 ../src/imageio/format/tiff.c:909 msgid "pixel type" msgstr "" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "unsigned integer" msgstr "" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "floating point" msgstr "" -#: ../src/imageio/format/jxl.c:580 +#: ../src/imageio/format/jxl.c:591 msgid "" "the quality of the output image\n" "0-29 = very lossy\n" @@ -10904,11 +11371,11 @@ "100 = lossless (integer bit depth only)" msgstr "" -#: ../src/imageio/format/jxl.c:589 +#: ../src/imageio/format/jxl.c:600 msgid "encoding color profile" msgstr "" -#: ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/jxl.c:601 msgid "" "the color profile used by the encoder\n" "permit internal XYB color space conversion for more efficient lossy " @@ -10917,30 +11384,30 @@ "lossless)" msgstr "" -#: ../src/imageio/format/jxl.c:593 +#: ../src/imageio/format/jxl.c:604 msgid "internal" msgstr "" -#: ../src/imageio/format/jxl.c:593 ../src/libs/duplicate.c:399 -#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:782 +#: ../src/imageio/format/jxl.c:604 ../src/libs/duplicate.c:405 +#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:840 msgid "original" msgstr "" -#: ../src/imageio/format/jxl.c:607 +#: ../src/imageio/format/jxl.c:618 msgid "encoding effort" msgstr "" -#: ../src/imageio/format/jxl.c:608 +#: ../src/imageio/format/jxl.c:619 msgid "" "the effort used to encode the image, higher efforts will have better results " "at the expense of longer encoding times" msgstr "" -#: ../src/imageio/format/jxl.c:619 +#: ../src/imageio/format/jxl.c:630 msgid "decoding speed" msgstr "" -#: ../src/imageio/format/jxl.c:620 +#: ../src/imageio/format/jxl.c:631 msgid "the preferred decoding speed with some sacrifice of quality" msgstr "" @@ -10952,9 +11419,9 @@ msgid "invalid border size, using 0" msgstr "" -#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:316 -#: ../src/imageio/storage/email.c:137 ../src/imageio/storage/gallery.c:331 -#: ../src/imageio/storage/gallery.c:370 ../src/imageio/storage/piwigo.c:1202 +#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:460 +#: ../src/imageio/storage/email.c:187 ../src/imageio/storage/gallery.c:409 +#: ../src/imageio/storage/gallery.c:450 ../src/imageio/storage/piwigo.c:1236 #, c-format msgid "could not export to file `%s'!" msgstr "" @@ -11002,8 +11469,8 @@ msgstr "" #. dpi -#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1127 -#: ../src/libs/export.c:1150 +#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1218 +#: ../src/libs/export.c:1246 msgid "dpi" msgstr "" @@ -11060,7 +11527,7 @@ "deflate -- smaller files but slower" msgstr "" -#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:924 msgid "deflate" msgstr "" @@ -11088,71 +11555,34 @@ msgid "debug" msgstr "" -#: ../src/imageio/format/pfm.c:120 -msgid "PFM" -msgstr "" - -#: ../src/imageio/format/png.c:493 -msgid "PNG" -msgstr "" - #: ../src/imageio/format/ppm.c:111 msgid "PPM (16-bit)" msgstr "" -#: ../src/imageio/format/tiff.c:228 -msgid "will export as a grayscale image" -msgstr "" - -#: ../src/imageio/format/tiff.c:774 -msgid "TIFF" +#: ../src/imageio/format/tiff.c:246 +msgid "not a B&W image, will not export as grayscale" msgstr "" -#: ../src/imageio/format/tiff.c:868 +#: ../src/imageio/format/tiff.c:925 msgid "deflate with predictor" msgstr "" -#: ../src/imageio/format/tiff.c:878 +#: ../src/imageio/format/tiff.c:935 msgid "compression level" msgstr "" -#. shortfile option combo box -#: ../src/imageio/format/tiff.c:887 -msgid "b&w image" -msgstr "" - -#: ../src/imageio/format/tiff.c:888 -msgid "write RGB colors" -msgstr "" - -#: ../src/imageio/format/tiff.c:888 -msgid "write grayscale" -msgstr "" - -#: ../src/imageio/format/webp.c:349 -msgid "WebP" -msgstr "" - -#: ../src/imageio/format/webp.c:385 -msgid "lossy" -msgstr "" - -#: ../src/imageio/format/webp.c:385 -msgid "lossless" -msgstr "" - -#: ../src/imageio/format/webp.c:397 +#: ../src/imageio/format/webp.c:426 msgid "" "for lossy, 0 gives the smallest size and 100 the best quality.\n" "for lossless, 0 is the fastest but gives larger files compared\n" "to the slowest 100." msgstr "" -#: ../src/imageio/format/webp.c:407 +#: ../src/imageio/format/webp.c:436 msgid "image hint" msgstr "" -#: ../src/imageio/format/webp.c:408 +#: ../src/imageio/format/webp.c:437 msgid "" "image characteristics hint for the underlying encoder.\n" "picture: digital picture, like portrait, inner shot\n" @@ -11160,15 +11590,15 @@ "graphic: discrete tone image (graph, map-tile etc)" msgstr "" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "picture" msgstr "" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "photo" msgstr "" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "graphic" msgstr "" @@ -11176,65 +11606,75 @@ msgid "XCF" msgstr "" -#: ../src/imageio/storage/disk.c:71 ../src/libs/export.c:1040 +#: ../src/imageio/storage/disk.c:74 ../src/libs/export.c:1119 msgid "file on disk" msgstr "" -#: ../src/imageio/storage/disk.c:169 ../src/imageio/storage/gallery.c:155 -#: ../src/imageio/storage/latex.c:154 +#: ../src/imageio/storage/disk.c:251 ../src/imageio/storage/gallery.c:204 +#: ../src/imageio/storage/latex.c:191 msgid "" "enter the path where to put exported images\n" "variables support bash like string manipulation\n" "type '$(' to activate the completion and see the list of variables" msgstr "" -#: ../src/imageio/storage/disk.c:182 ../src/imageio/storage/piwigo.c:1079 +#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/piwigo.c:1113 msgid "on conflict" msgstr "" -#: ../src/imageio/storage/disk.c:185 +#: ../src/imageio/storage/disk.c:268 msgid "create unique filename" msgstr "" #. DT_COPY_HISTORY_APPEND -#: ../src/imageio/storage/disk.c:186 ../src/imageio/storage/piwigo.c:1083 -#: ../src/libs/copy_history.c:404 ../src/libs/image.c:601 -#: ../src/libs/styles.c:440 ../src/libs/styles.c:623 ../src/libs/styles.c:850 +#: ../src/imageio/storage/disk.c:269 ../src/imageio/storage/piwigo.c:1117 +#: ../src/libs/copy_history.c:404 ../src/libs/image.c:670 +#: ../src/libs/styles.c:854 msgid "overwrite" msgstr "" -#: ../src/imageio/storage/disk.c:187 ../src/imageio/storage/piwigo.c:1081 -#: ../src/libs/styles.c:439 ../src/libs/styles.c:622 +#: ../src/imageio/storage/disk.c:270 +msgid "overwrite if changed" +msgstr "" + +#: ../src/imageio/storage/disk.c:271 ../src/imageio/storage/piwigo.c:1115 msgid "skip" msgstr "" -#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/gallery.c:253 -#: ../src/imageio/storage/latex.c:252 +#: ../src/imageio/storage/disk.c:371 ../src/imageio/storage/gallery.c:326 +#: ../src/imageio/storage/latex.c:289 #, c-format msgid "could not create directory `%s'!" msgstr "" -#: ../src/imageio/storage/disk.c:272 +#: ../src/imageio/storage/disk.c:382 #, c-format msgid "could not write to directory `%s'!" msgstr "" -#: ../src/imageio/storage/disk.c:302 +#: ../src/imageio/storage/disk.c:419 #, c-format msgid "%d/%d skipping `%s'" msgid_plural "%d/%d skipping `%s'" msgstr[0] "" msgstr[1] "" -#: ../src/imageio/storage/disk.c:321 ../src/imageio/storage/email.c:144 -#: ../src/imageio/storage/gallery.c:378 ../src/imageio/storage/latex.c:340 +#: ../src/imageio/storage/disk.c:441 +#, c-format +msgid "%d/%d skipping (not modified since export) `%s'" +msgid_plural "%d/%d skipping (not modified since export) `%s'" +msgstr[0] "" +msgstr[1] "" + +#: ../src/imageio/storage/disk.c:465 ../src/imageio/storage/email.c:194 +#: ../src/imageio/storage/gallery.c:458 ../src/imageio/storage/latex.c:377 #, c-format msgid "%d/%d exported to `%s'" msgid_plural "%d/%d exported to `%s'" msgstr[0] "" msgstr[1] "" -#: ../src/imageio/storage/disk.c:380 +#: ../src/imageio/storage/disk.c:530 msgid "" "you are going to export in overwrite mode, this will overwrite any existing " "images\n" @@ -11242,23 +11682,33 @@ "do you really want to continue?" msgstr "" -#: ../src/imageio/storage/email.c:52 +#: ../src/imageio/storage/email.c:57 msgid "send as email" msgstr "" -#: ../src/imageio/storage/email.c:198 +#. Unlikely in normal Windows installations, but let's notify the user if it happens +#: ../src/imageio/storage/email.c:265 +msgid "could not open mapi32.dll" +msgstr "" + +#. Even more unlikely +#: ../src/imageio/storage/email.c:275 +msgid "could not get SendMail function" +msgstr "" + +#: ../src/imageio/storage/email.c:319 ../src/imageio/storage/email.c:409 msgid "images exported from darktable" msgstr "" -#: ../src/imageio/storage/email.c:251 +#: ../src/imageio/storage/email.c:388 ../src/imageio/storage/email.c:467 msgid "could not launch email client!" msgstr "" -#: ../src/imageio/storage/gallery.c:73 +#: ../src/imageio/storage/gallery.c:76 msgid "website gallery" msgstr "" -#: ../src/imageio/storage/gallery.c:171 +#: ../src/imageio/storage/gallery.c:224 msgid "enter the title of the website" msgstr "" @@ -11266,146 +11716,145 @@ msgid "LaTeX book template" msgstr "" -#: ../src/imageio/storage/latex.c:172 +#: ../src/imageio/storage/latex.c:209 msgid "enter the title of the book" msgstr "" -#: ../src/imageio/storage/piwigo.c:522 +#: ../src/imageio/storage/piwigo.c:525 msgid "authenticated" msgstr "" -#: ../src/imageio/storage/piwigo.c:532 ../src/imageio/storage/piwigo.c:547 -#: ../src/imageio/storage/piwigo.c:559 +#: ../src/imageio/storage/piwigo.c:536 ../src/imageio/storage/piwigo.c:552 +#: ../src/imageio/storage/piwigo.c:565 msgid "not authenticated" msgstr "" -#: ../src/imageio/storage/piwigo.c:538 +#: ../src/imageio/storage/piwigo.c:542 msgid "not authenticated, cannot reach server" msgstr "" -#: ../src/imageio/storage/piwigo.c:587 ../src/imageio/storage/piwigo.c:675 +#: ../src/imageio/storage/piwigo.c:595 ../src/imageio/storage/piwigo.c:684 msgid "create new album" msgstr "" -#: ../src/imageio/storage/piwigo.c:676 +#: ../src/imageio/storage/piwigo.c:685 msgid "---" msgstr "" -#: ../src/imageio/storage/piwigo.c:721 +#: ../src/imageio/storage/piwigo.c:735 msgid "cannot refresh albums" msgstr "" -#: ../src/imageio/storage/piwigo.c:929 +#: ../src/imageio/storage/piwigo.c:950 msgid "Piwigo" msgstr "" -#: ../src/imageio/storage/piwigo.c:954 +#: ../src/imageio/storage/piwigo.c:976 msgid "accounts" msgstr "" -#: ../src/imageio/storage/piwigo.c:972 ../src/imageio/storage/piwigo.c:978 +#: ../src/imageio/storage/piwigo.c:995 ../src/imageio/storage/piwigo.c:1004 msgid "server" msgstr "" -#: ../src/imageio/storage/piwigo.c:974 ../src/imageio/storage/piwigo.c:989 +#: ../src/imageio/storage/piwigo.c:998 msgid "" "the server name\n" "default protocol is https\n" -"specify http:// if non secure server" +"specify insecure protocol http:// explicitly if that protocol is required" msgstr "" -#: ../src/imageio/storage/piwigo.c:987 ../src/imageio/storage/piwigo.c:993 +#: ../src/imageio/storage/piwigo.c:1014 ../src/imageio/storage/piwigo.c:1021 msgid "user" msgstr "" -#: ../src/imageio/storage/piwigo.c:1000 ../src/imageio/storage/piwigo.c:1005 +#: ../src/imageio/storage/piwigo.c:1029 ../src/imageio/storage/piwigo.c:1034 msgid "password" msgstr "" #. login button -#: ../src/imageio/storage/piwigo.c:1010 +#: ../src/imageio/storage/piwigo.c:1039 msgid "login" msgstr "" -#: ../src/imageio/storage/piwigo.c:1011 +#: ../src/imageio/storage/piwigo.c:1040 msgid "Piwigo login" msgstr "" #. permissions list -#: ../src/imageio/storage/piwigo.c:1025 +#: ../src/imageio/storage/piwigo.c:1056 msgid "visible to" msgstr "" -#: ../src/imageio/storage/piwigo.c:1027 +#: ../src/imageio/storage/piwigo.c:1058 msgid "everyone" msgstr "" -#: ../src/imageio/storage/piwigo.c:1028 +#: ../src/imageio/storage/piwigo.c:1059 msgid "contacts" msgstr "" -#: ../src/imageio/storage/piwigo.c:1029 +#: ../src/imageio/storage/piwigo.c:1060 msgid "friends" msgstr "" -#: ../src/imageio/storage/piwigo.c:1030 +#: ../src/imageio/storage/piwigo.c:1061 msgid "family" msgstr "" -#: ../src/imageio/storage/piwigo.c:1031 +#: ../src/imageio/storage/piwigo.c:1062 msgid "you" msgstr "" #. Available albums -#: ../src/imageio/storage/piwigo.c:1038 +#: ../src/imageio/storage/piwigo.c:1069 msgid "album" msgstr "" -#: ../src/imageio/storage/piwigo.c:1045 +#: ../src/imageio/storage/piwigo.c:1076 msgid "refresh album list" msgstr "" #. Album title -#: ../src/imageio/storage/piwigo.c:1063 +#: ../src/imageio/storage/piwigo.c:1096 msgid "new album" msgstr "" -#. parent album list #. Available albums -#: ../src/imageio/storage/piwigo.c:1071 +#: ../src/imageio/storage/piwigo.c:1105 msgid "parent album" msgstr "" -#: ../src/imageio/storage/piwigo.c:1075 +#: ../src/imageio/storage/piwigo.c:1109 msgid "click login button to start" msgstr "" -#: ../src/imageio/storage/piwigo.c:1080 +#: ../src/imageio/storage/piwigo.c:1114 msgid "don't check" msgstr "" -#: ../src/imageio/storage/piwigo.c:1082 +#: ../src/imageio/storage/piwigo.c:1116 msgid "update metadata" msgstr "" -#: ../src/imageio/storage/piwigo.c:1221 +#: ../src/imageio/storage/piwigo.c:1255 msgid "cannot create a new Piwigo album!" msgstr "" -#: ../src/imageio/storage/piwigo.c:1240 +#: ../src/imageio/storage/piwigo.c:1274 msgid "could not update to Piwigo!" msgstr "" -#: ../src/imageio/storage/piwigo.c:1255 +#: ../src/imageio/storage/piwigo.c:1290 msgid "could not upload to Piwigo!" msgstr "" -#: ../src/imageio/storage/piwigo.c:1284 +#: ../src/imageio/storage/piwigo.c:1319 #, c-format msgid "%d/%d skipped (already exists)" msgstr "" -#: ../src/imageio/storage/piwigo.c:1290 +#: ../src/imageio/storage/piwigo.c:1325 #, c-format msgid "%d/%d exported to Piwigo webalbum" msgid_plural "%d/%d exported to Piwigo webalbum" @@ -11425,154 +11874,154 @@ msgstr "" #: ../src/iop/ashift.c:131 ../src/iop/channelmixer.c:139 -#: ../src/iop/channelmixerrgb.c:232 ../src/iop/clipping.c:320 -#: ../src/iop/colorbalance.c:161 ../src/iop/colorbalancergb.c:185 +#: ../src/iop/channelmixerrgb.c:233 ../src/iop/clipping.c:363 +#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:185 #: ../src/iop/colorchecker.c:130 ../src/iop/colorcorrection.c:77 -#: ../src/iop/crop.c:144 ../src/iop/lut3d.c:141 +#: ../src/iop/crop.c:134 ../src/iop/lut3d.c:142 ../src/iop/primaries.c:80 msgid "corrective or creative" msgstr "" -#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:148 -#: ../src/iop/bilateral.cc:101 ../src/iop/bilateral.cc:103 -#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:233 -#: ../src/iop/channelmixerrgb.c:235 ../src/iop/clipping.c:321 -#: ../src/iop/clipping.c:323 ../src/iop/colorbalancergb.c:186 -#: ../src/iop/colorin.c:136 ../src/iop/crop.c:145 ../src/iop/crop.c:147 -#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:728 -#: ../src/iop/denoiseprofile.c:730 ../src/iop/diffuse.c:146 +#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:174 +#: ../src/iop/bilateral.cc:103 ../src/iop/bilateral.cc:105 +#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:236 ../src/iop/clipping.c:364 +#: ../src/iop/clipping.c:366 ../src/iop/colorbalancergb.c:186 +#: ../src/iop/colorin.c:136 ../src/iop/crop.c:135 ../src/iop/crop.c:137 +#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:780 +#: ../src/iop/denoiseprofile.c:782 ../src/iop/diffuse.c:146 #: ../src/iop/diffuse.c:148 ../src/iop/exposure.c:132 ../src/iop/exposure.c:134 #: ../src/iop/flip.c:111 ../src/iop/flip.c:112 ../src/iop/hazeremoval.c:113 -#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:242 ../src/iop/lens.cc:244 -#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/retouch.c:210 -#: ../src/iop/retouch.c:212 ../src/iop/sigmoid.c:103 -#: ../src/iop/splittoning.c:104 ../src/iop/splittoning.c:106 -#: ../src/iop/spots.c:70 ../src/iop/spots.c:72 ../src/iop/toneequal.c:325 -#: ../src/iop/velvia.c:106 ../src/iop/velvia.c:108 +#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:263 ../src/iop/lens.cc:265 +#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/primaries.c:81 +#: ../src/iop/primaries.c:83 ../src/iop/retouch.c:210 ../src/iop/retouch.c:212 +#: ../src/iop/sigmoid.c:209 ../src/iop/splittoning.c:106 +#: ../src/iop/splittoning.c:108 ../src/iop/spots.c:70 ../src/iop/spots.c:72 +#: ../src/iop/toneequal.c:333 ../src/iop/velvia.c:99 ../src/iop/velvia.c:101 msgid "linear, RGB, scene-referred" msgstr "" -#: ../src/iop/ashift.c:133 ../src/iop/borders.c:200 ../src/iop/clipping.c:322 -#: ../src/iop/crop.c:146 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 +#: ../src/iop/ashift.c:133 ../src/iop/borders.c:325 ../src/iop/clipping.c:365 +#: ../src/iop/crop.c:136 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 msgid "geometric, RGB" msgstr "" -#: ../src/iop/ashift.c:2820 +#: ../src/iop/ashift.c:2866 msgid "automatic cropping failed" msgstr "" -#: ../src/iop/ashift.c:3234 ../src/iop/ashift.c:3286 ../src/iop/ashift.c:3334 +#: ../src/iop/ashift.c:3276 ../src/iop/ashift.c:3328 ../src/iop/ashift.c:3375 msgid "data pending - please repeat" msgstr "" -#: ../src/iop/ashift.c:3243 +#: ../src/iop/ashift.c:3285 msgid "could not detect structural data in image" msgstr "" -#: ../src/iop/ashift.c:3255 +#: ../src/iop/ashift.c:3297 msgid "could not run outlier removal" msgstr "" -#: ../src/iop/ashift.c:3434 +#: ../src/iop/ashift.c:3474 #, c-format msgid "" "not enough structure for automatic correction\n" "minimum %d lines in each relevant direction" msgstr "" -#: ../src/iop/ashift.c:3440 +#: ../src/iop/ashift.c:3480 msgid "automatic correction failed, please correct manually" msgstr "" -#: ../src/iop/ashift.c:5096 +#: ../src/iop/ashift.c:5077 #, c-format msgid "only %d lines can be saved in parameters" msgstr "" -#: ../src/iop/ashift.c:5201 +#: ../src/iop/ashift.c:5157 #, c-format -msgid "rotation adjusted by %3.1f° to %3.1f°" +msgid "rotation adjusted by %3.2f° to %3.2f°" msgstr "" -#: ../src/iop/ashift.c:5852 ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 -#: ../src/iop/ashift.c:5961 +#: ../src/iop/ashift.c:5797 ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 +#: ../src/iop/ashift.c:5906 #, c-format msgid "lens shift (%s)" msgstr "" -#: ../src/iop/ashift.c:6125 +#: ../src/iop/ashift.c:6072 msgid "manual perspective" msgstr "" -#: ../src/iop/ashift.c:6170 +#: ../src/iop/ashift.c:6117 msgctxt "section" msgid "perspective" msgstr "" -#: ../src/iop/ashift.c:6177 ../src/iop/ashift.c:6286 ../src/iop/ashift.c:6288 -#: ../src/iop/ashift.c:6290 +#: ../src/iop/ashift.c:6124 ../src/iop/ashift.c:6233 ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6237 msgid "structure" msgstr "" -#: ../src/iop/ashift.c:6212 +#: ../src/iop/ashift.c:6159 msgid "" "rotate image\n" "right-click and drag to define a horizontal or vertical line by drawing on " "the image" msgstr "" -#: ../src/iop/ashift.c:6215 ../src/iop/ashift.c:6217 +#: ../src/iop/ashift.c:6162 ../src/iop/ashift.c:6164 msgid "apply lens shift correction in one direction" msgstr "" -#: ../src/iop/ashift.c:6219 +#: ../src/iop/ashift.c:6166 msgid "shear the image along one diagonal" msgstr "" -#: ../src/iop/ashift.c:6220 ../src/iop/clipping.c:2117 +#: ../src/iop/ashift.c:6167 ../src/iop/clipping.c:2170 msgid "automatically crop to avoid black edges" msgstr "" -#: ../src/iop/ashift.c:6221 +#: ../src/iop/ashift.c:6168 msgid "" "lens model of the perspective correction: generic or according to the focal " "length" msgstr "" -#: ../src/iop/ashift.c:6224 +#: ../src/iop/ashift.c:6171 msgid "focal length of the lens, default value set from EXIF data if available" msgstr "" -#: ../src/iop/ashift.c:6227 +#: ../src/iop/ashift.c:6174 msgid "" "crop factor of the camera sensor, default value set from EXIF data if " "available, manual setting is often required" msgstr "" -#: ../src/iop/ashift.c:6231 +#: ../src/iop/ashift.c:6178 msgid "" "the level of lens dependent correction, set to maximum for full lens " "dependency, set to zero for the generic case" msgstr "" -#: ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6182 msgid "adjust aspect ratio of image by horizontal and vertical scaling" msgstr "" -#: ../src/iop/ashift.c:6237 +#: ../src/iop/ashift.c:6184 msgid "" "automatically correct for vertical perspective distortion\n" "ctrl+click to only fit rotation\n" "shift+click to only fit lens shift" msgstr "" -#: ../src/iop/ashift.c:6241 +#: ../src/iop/ashift.c:6188 msgid "" "automatically correct for horizontal perspective distortion\n" "ctrl+click to only fit rotation\n" "shift+click to only fit lens shift" msgstr "" -#: ../src/iop/ashift.c:6245 +#: ../src/iop/ashift.c:6192 msgid "" "automatically correct for vertical and horizontal perspective distortions, " "fitting rotation, lens shift in both directions, and shear\n" @@ -11581,7 +12030,7 @@ "ctrl+shift+click to only fit rotation and lens shift" msgstr "" -#: ../src/iop/ashift.c:6252 +#: ../src/iop/ashift.c:6199 msgid "" "automatically analyse line structure in image\n" "ctrl+click for an additional edge enhancement\n" @@ -11589,434 +12038,433 @@ "ctrl+shift+click for a combination of both methods" msgstr "" -#: ../src/iop/ashift.c:6257 +#: ../src/iop/ashift.c:6204 msgid "manually define perspective rectangle" msgstr "" -#: ../src/iop/ashift.c:6258 +#: ../src/iop/ashift.c:6205 msgid "manually draw structure lines" msgstr "" -#: ../src/iop/ashift.c:6287 +#: ../src/iop/ashift.c:6234 msgid "rectangle" msgstr "" -#: ../src/iop/ashift.c:6289 +#: ../src/iop/ashift.c:6236 msgid "lines" msgstr "" -#: ../src/iop/ashift.c:6323 ../src/iop/clipping.c:3343 +#: ../src/iop/ashift.c:6270 ../src/iop/clipping.c:3383 #, c-format msgid "[%s] define/rotate horizon" msgstr "" -#: ../src/iop/ashift.c:6326 +#: ../src/iop/ashift.c:6273 #, c-format msgid "[%s on segment] select segment" msgstr "" -#: ../src/iop/ashift.c:6330 +#: ../src/iop/ashift.c:6277 #, c-format msgid "[%s on segment] unselect segment" msgstr "" -#: ../src/iop/ashift.c:6334 +#: ../src/iop/ashift.c:6281 #, c-format msgid "[%s] select all segments from zone" msgstr "" -#: ../src/iop/ashift.c:6338 +#: ../src/iop/ashift.c:6285 #, c-format msgid "[%s] unselect all segments from zone" msgstr "" -#: ../src/iop/atrous.c:123 ../src/iop/atrous.c:1638 +#: ../src/iop/atrous.c:122 ../src/iop/atrous.c:1770 msgid "contrast equalizer" msgstr "" -#: ../src/iop/atrous.c:128 +#: ../src/iop/atrous.c:127 msgid "sharpness|acutance|local contrast" msgstr "" -#: ../src/iop/atrous.c:133 +#: ../src/iop/atrous.c:132 msgid "add or remove local contrast, sharpness, acutance" msgstr "" -#: ../src/iop/atrous.c:134 ../src/iop/bilateral.cc:100 ../src/iop/diffuse.c:145 +#: ../src/iop/atrous.c:133 ../src/iop/bilateral.cc:102 ../src/iop/diffuse.c:145 #: ../src/iop/exposure.c:131 ../src/iop/filmicrgb.c:352 #: ../src/iop/graduatednd.c:146 ../src/iop/negadoctor.c:146 -#: ../src/iop/rgbcurve.c:143 ../src/iop/rgblevels.c:123 ../src/iop/shadhi.c:197 -#: ../src/iop/sigmoid.c:102 ../src/iop/tonecurve.c:211 -#: ../src/iop/toneequal.c:324 +#: ../src/iop/rgbcurve.c:145 ../src/iop/rgblevels.c:125 ../src/iop/shadhi.c:144 +#: ../src/iop/sigmoid.c:209 ../src/iop/tonecurve.c:184 +#: ../src/iop/toneequal.c:332 msgid "corrective and creative" msgstr "" -#: ../src/iop/atrous.c:135 ../src/iop/atrous.c:137 -#: ../src/iop/colorbalance.c:162 +#: ../src/iop/atrous.c:134 ../src/iop/atrous.c:136 +#: ../src/iop/colorbalance.c:164 msgid "linear, Lab, scene-referred" msgstr "" -#: ../src/iop/atrous.c:136 ../src/iop/censorize.c:85 +#: ../src/iop/atrous.c:135 ../src/iop/censorize.c:85 #: ../src/iop/hazeremoval.c:114 msgid "frequential, RGB" msgstr "" -#: ../src/iop/atrous.c:727 +#: ../src/iop/atrous.c:799 msgctxt "eq_preset" msgid "coarse" msgstr "" -#: ../src/iop/atrous.c:742 +#: ../src/iop/atrous.c:815 msgid "denoise & sharpen" msgstr "" -#: ../src/iop/atrous.c:757 +#: ../src/iop/atrous.c:831 msgctxt "atrous" msgid "sharpen" msgstr "" -#: ../src/iop/atrous.c:772 +#: ../src/iop/atrous.c:847 msgid "denoise chroma" msgstr "" -#: ../src/iop/atrous.c:787 +#: ../src/iop/atrous.c:863 msgid "denoise" msgstr "" -#: ../src/iop/atrous.c:803 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:421 +#: ../src/iop/atrous.c:880 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:448 msgid "bloom" msgstr "" -#: ../src/iop/atrous.c:818 ../src/iop/bilat.c:169 +#: ../src/iop/atrous.c:896 ../src/iop/bilat.c:186 msgid "clarity" msgstr "" -#: ../src/iop/atrous.c:838 +#: ../src/iop/atrous.c:917 msgid "deblur: large blur, strength 3" msgstr "" -#: ../src/iop/atrous.c:855 +#: ../src/iop/atrous.c:935 msgid "deblur: medium blur, strength 3" msgstr "" -#: ../src/iop/atrous.c:871 +#: ../src/iop/atrous.c:952 msgid "deblur: fine blur, strength 3" msgstr "" -#: ../src/iop/atrous.c:889 +#: ../src/iop/atrous.c:971 msgid "deblur: large blur, strength 2" msgstr "" -#: ../src/iop/atrous.c:906 +#: ../src/iop/atrous.c:989 msgid "deblur: medium blur, strength 2" msgstr "" -#: ../src/iop/atrous.c:922 +#: ../src/iop/atrous.c:1006 msgid "deblur: fine blur, strength 2" msgstr "" -#: ../src/iop/atrous.c:940 +#: ../src/iop/atrous.c:1025 msgid "deblur: large blur, strength 1" msgstr "" -#: ../src/iop/atrous.c:957 +#: ../src/iop/atrous.c:1043 msgid "deblur: medium blur, strength 1" msgstr "" -#: ../src/iop/atrous.c:973 +#: ../src/iop/atrous.c:1060 msgid "deblur: fine blur, strength 1" msgstr "" -#: ../src/iop/atrous.c:1289 ../src/iop/atrous.c:1525 -#: ../src/iop/denoiseprofile.c:3510 ../src/iop/rawdenoise.c:738 +#: ../src/iop/atrous.c:1390 ../src/iop/atrous.c:1639 +#: ../src/iop/denoiseprofile.c:3514 ../src/iop/rawdenoise.c:754 msgid "coarse" msgstr "" -#: ../src/iop/atrous.c:1296 ../src/iop/atrous.c:1526 -#: ../src/iop/denoiseprofile.c:3518 ../src/iop/rawdenoise.c:746 +#: ../src/iop/atrous.c:1397 ../src/iop/atrous.c:1640 +#: ../src/iop/denoiseprofile.c:3522 ../src/iop/rawdenoise.c:762 msgid "fine" msgstr "" -#: ../src/iop/atrous.c:1308 +#: ../src/iop/atrous.c:1409 msgid "contrasty" msgstr "" -#: ../src/iop/atrous.c:1314 ../src/iop/denoiseprofile.c:3532 -#: ../src/iop/rawdenoise.c:760 +#: ../src/iop/atrous.c:1415 ../src/iop/denoiseprofile.c:3536 +#: ../src/iop/rawdenoise.c:776 msgid "noisy" msgstr "" #. case atrous_s: -#: ../src/iop/atrous.c:1317 +#: ../src/iop/atrous.c:1418 msgid "bold" msgstr "" -#: ../src/iop/atrous.c:1318 +#: ../src/iop/atrous.c:1419 msgid "dull" msgstr "" -#: ../src/iop/atrous.c:1513 ../src/iop/atrous.c:1564 +#: ../src/iop/atrous.c:1627 ../src/iop/atrous.c:1685 msgid "boost" msgstr "" -#: ../src/iop/atrous.c:1514 +#: ../src/iop/atrous.c:1628 msgid "reduce" msgstr "" -#: ../src/iop/atrous.c:1515 +#: ../src/iop/atrous.c:1629 msgid "raise" msgstr "" -#: ../src/iop/atrous.c:1516 +#: ../src/iop/atrous.c:1630 msgid "lower" msgstr "" -#: ../src/iop/atrous.c:1523 +#: ../src/iop/atrous.c:1637 msgid "coarsest" msgstr "" -#: ../src/iop/atrous.c:1524 +#: ../src/iop/atrous.c:1638 msgid "coarser" msgstr "" -#: ../src/iop/atrous.c:1527 +#: ../src/iop/atrous.c:1641 msgid "finer" msgstr "" -#: ../src/iop/atrous.c:1528 +#: ../src/iop/atrous.c:1642 msgid "finest" msgstr "" -#: ../src/iop/atrous.c:1586 ../src/libs/export.c:1143 ../src/libs/export.c:1158 +#: ../src/iop/atrous.c:1710 ../src/libs/export.c:1239 ../src/libs/export.c:1255 msgid "x" msgstr "" -#: ../src/iop/atrous.c:1666 ../src/iop/nlmeans.c:465 +#: ../src/iop/atrous.c:1799 ../src/iop/nlmeans.c:468 msgid "luma" msgstr "" -#: ../src/iop/atrous.c:1666 +#: ../src/iop/atrous.c:1800 msgid "change lightness at each feature size" msgstr "" -#: ../src/iop/atrous.c:1667 +#: ../src/iop/atrous.c:1802 msgid "change color saturation at each feature size" msgstr "" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1804 msgid "edges" msgstr "" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1805 msgid "" "change edge halos at each feature size\n" "only changes results of luma and chroma tabs" msgstr "" -#: ../src/iop/atrous.c:1679 ../src/iop/colorbalancergb.c:2058 -#: ../src/iop/colorzones.c:2473 ../src/iop/denoiseprofile.c:3743 -#: ../src/iop/filmicrgb.c:4407 ../src/iop/lowlight.c:823 -#: ../src/iop/rawdenoise.c:919 ../src/iop/toneequal.c:3371 +#: ../src/iop/atrous.c:1818 ../src/iop/colorbalancergb.c:2129 +#: ../src/iop/colorzones.c:2732 ../src/iop/denoiseprofile.c:3747 +#: ../src/iop/filmicrgb.c:4471 ../src/iop/lowlight.c:821 +#: ../src/iop/rawdenoise.c:935 ../src/iop/toneequal.c:3424 msgid "graph" msgstr "" -#: ../src/iop/atrous.c:1690 ../src/iop/colorzones.c:2470 +#: ../src/iop/atrous.c:1836 ../src/iop/colorzones.c:2729 msgid "make effect stronger or weaker" msgstr "" -#: ../src/iop/basecurve.c:213 +#: ../src/iop/basecurve.c:260 msgid "neutral" msgstr "" -#: ../src/iop/basecurve.c:214 +#: ../src/iop/basecurve.c:261 msgid "canon eos like" msgstr "" -#: ../src/iop/basecurve.c:215 +#: ../src/iop/basecurve.c:262 msgid "canon eos like alternate" msgstr "" -#: ../src/iop/basecurve.c:216 +#: ../src/iop/basecurve.c:263 msgid "nikon like" msgstr "" -#: ../src/iop/basecurve.c:217 +#: ../src/iop/basecurve.c:264 msgid "nikon like alternate" msgstr "" -#: ../src/iop/basecurve.c:218 +#: ../src/iop/basecurve.c:265 msgid "sony alpha like" msgstr "" -#: ../src/iop/basecurve.c:219 +#: ../src/iop/basecurve.c:266 msgid "pentax like" msgstr "" -#: ../src/iop/basecurve.c:220 +#: ../src/iop/basecurve.c:267 msgid "ricoh like" msgstr "" -#: ../src/iop/basecurve.c:221 +#: ../src/iop/basecurve.c:268 msgid "olympus like" msgstr "" -#: ../src/iop/basecurve.c:222 +#: ../src/iop/basecurve.c:269 msgid "olympus like alternate" msgstr "" -#: ../src/iop/basecurve.c:223 +#: ../src/iop/basecurve.c:270 msgid "panasonic like" msgstr "" -#: ../src/iop/basecurve.c:224 +#: ../src/iop/basecurve.c:271 msgid "leica like" msgstr "" -#: ../src/iop/basecurve.c:225 +#: ../src/iop/basecurve.c:272 msgid "kodak easyshare like" msgstr "" -#: ../src/iop/basecurve.c:226 +#: ../src/iop/basecurve.c:273 msgid "konica minolta like" msgstr "" -#: ../src/iop/basecurve.c:227 +#: ../src/iop/basecurve.c:274 msgid "samsung like" msgstr "" -#: ../src/iop/basecurve.c:228 +#: ../src/iop/basecurve.c:275 msgid "fujifilm like" msgstr "" -#: ../src/iop/basecurve.c:229 +#: ../src/iop/basecurve.c:276 msgid "nokia like" msgstr "" #. clang-format off #. smoother cubic spline curve -#: ../src/iop/basecurve.c:284 ../src/iop/colorzones.c:2495 -#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1173 +#: ../src/iop/basecurve.c:331 ../src/iop/colorzones.c:2763 +#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1195 msgid "cubic spline" msgstr "" -#: ../src/iop/basecurve.c:343 +#: ../src/iop/basecurve.c:390 msgid "base curve" msgstr "" -#: ../src/iop/basecurve.c:350 +#: ../src/iop/basecurve.c:397 msgid "" "apply a view transform based on personal or camera manufacturer look,\n" "for corrective purposes, to prepare images for display" msgstr "" -#: ../src/iop/basecurve.c:352 ../src/iop/cacorrect.c:78 -#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:135 -#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:727 +#: ../src/iop/basecurve.c:399 ../src/iop/cacorrect.c:84 +#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:120 +#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:779 #: ../src/iop/flip.c:110 ../src/iop/hazeremoval.c:112 -#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:73 -#: ../src/iop/invert.c:119 ../src/iop/lens.cc:241 ../src/iop/nlmeans.c:95 -#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:130 -#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:94 ../src/iop/spots.c:69 -#: ../src/iop/temperature.c:212 +#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:75 +#: ../src/iop/invert.c:136 ../src/iop/lens.cc:262 ../src/iop/nlmeans.c:89 +#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:144 +#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:96 ../src/iop/spots.c:69 +#: ../src/iop/temperature.c:220 msgid "corrective" msgstr "" -#: ../src/iop/basecurve.c:353 ../src/iop/channelmixer.c:140 -#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:142 +#: ../src/iop/basecurve.c:400 ../src/iop/channelmixer.c:140 +#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:143 #: ../src/iop/negadoctor.c:147 ../src/iop/profile_gamma.c:103 -#: ../src/iop/rgbcurve.c:144 ../src/iop/rgbcurve.c:146 -#: ../src/iop/rgblevels.c:124 ../src/iop/sigmoid.c:105 ../src/iop/soften.c:102 -#: ../src/iop/soften.c:104 +#: ../src/iop/rgbcurve.c:146 ../src/iop/rgbcurve.c:148 +#: ../src/iop/rgblevels.c:126 ../src/iop/sigmoid.c:210 ../src/iop/soften.c:104 +#: ../src/iop/soften.c:106 msgid "linear, RGB, display-referred" msgstr "" -#: ../src/iop/basecurve.c:354 ../src/iop/basicadj.c:149 -#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:187 +#: ../src/iop/basecurve.c:401 ../src/iop/basicadj.c:175 +#: ../src/iop/colorbalance.c:165 ../src/iop/colorbalancergb.c:187 #: ../src/iop/dither.c:121 ../src/iop/filmicrgb.c:354 #: ../src/iop/graduatednd.c:148 ../src/iop/negadoctor.c:148 -#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:145 -#: ../src/iop/rgblevels.c:125 ../src/iop/sigmoid.c:104 -#: ../src/iop/vignette.c:161 ../src/iop/watermark.c:379 +#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:147 +#: ../src/iop/rgblevels.c:127 ../src/iop/sigmoid.c:210 +#: ../src/iop/vignette.c:122 ../src/iop/watermark.c:424 msgid "non-linear, RGB" msgstr "" -#: ../src/iop/basecurve.c:355 ../src/iop/dither.c:120 ../src/iop/dither.c:122 +#: ../src/iop/basecurve.c:402 ../src/iop/dither.c:120 ../src/iop/dither.c:122 #: ../src/iop/filmicrgb.c:355 ../src/iop/graduatednd.c:149 #: ../src/iop/negadoctor.c:149 ../src/iop/profile_gamma.c:105 -#: ../src/iop/rgblevels.c:126 ../src/iop/vignette.c:160 -#: ../src/iop/vignette.c:162 ../src/iop/watermark.c:378 -#: ../src/iop/watermark.c:380 +#: ../src/iop/rgblevels.c:128 ../src/iop/vignette.c:121 +#: ../src/iop/vignette.c:123 ../src/iop/watermark.c:423 +#: ../src/iop/watermark.c:425 msgid "non-linear, RGB, display-referred" msgstr "" -#: ../src/iop/basecurve.c:2184 +#: ../src/iop/basecurve.c:2205 msgid "abscissa: input, ordinate: output. works on RGB channels" msgstr "" -#: ../src/iop/basecurve.c:2190 ../src/iop/basicadj.c:612 -#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1072 -#: ../src/iop/tonecurve.c:1184 +#: ../src/iop/basecurve.c:2211 ../src/iop/basicadj.c:642 +#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1133 +#: ../src/iop/tonecurve.c:1206 msgid "method to preserve colors when applying contrast" msgstr "" -#: ../src/iop/basecurve.c:2194 +#: ../src/iop/basecurve.c:2215 msgid "two exposures" msgstr "" -#: ../src/iop/basecurve.c:2195 +#: ../src/iop/basecurve.c:2216 msgid "three exposures" msgstr "" -#: ../src/iop/basecurve.c:2196 +#: ../src/iop/basecurve.c:2217 msgid "" "fuse this image stopped up/down a couple of times with itself, to compress " "high dynamic range. expose for the highlights before use." msgstr "" -#: ../src/iop/basecurve.c:2201 +#: ../src/iop/basecurve.c:2222 msgid "how many stops to shift the individual exposures apart" msgstr "" -#: ../src/iop/basecurve.c:2210 +#: ../src/iop/basecurve.c:2231 msgid "" "whether to shift exposure up or down (-1: reduce highlight, +1: reduce " "shadows)" msgstr "" -#: ../src/iop/basecurve.c:2215 ../src/iop/tonecurve.c:1187 +#: ../src/iop/basecurve.c:2236 ../src/iop/tonecurve.c:1209 msgid "scale for graph" msgstr "" -#: ../src/iop/basicadj.c:136 +#: ../src/iop/basicadj.c:162 msgid "this module is deprecated. please use the quick access panel instead." msgstr "" -#: ../src/iop/basicadj.c:141 +#: ../src/iop/basicadj.c:167 msgid "basic adjustments" msgstr "" -#: ../src/iop/basicadj.c:146 +#: ../src/iop/basicadj.c:172 msgid "apply usual image adjustments" msgstr "" -#: ../src/iop/basicadj.c:147 ../src/iop/bilat.c:102 ../src/iop/bloom.c:81 -#: ../src/iop/blurs.c:93 ../src/iop/borders.c:198 ../src/iop/censorize.c:83 -#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:97 -#: ../src/iop/colorize.c:105 ../src/iop/colormapping.c:153 -#: ../src/iop/colorzones.c:145 ../src/iop/grain.c:434 ../src/iop/highpass.c:78 -#: ../src/iop/levels.c:138 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 -#: ../src/iop/lowpass.c:134 ../src/iop/monochrome.c:98 ../src/iop/soften.c:101 -#: ../src/iop/splittoning.c:103 ../src/iop/velvia.c:105 -#: ../src/iop/vibrance.c:95 ../src/iop/vignette.c:159 -#: ../src/iop/watermark.c:377 +#: ../src/iop/basicadj.c:173 ../src/iop/bilat.c:83 ../src/iop/bloom.c:81 +#: ../src/iop/blurs.c:93 ../src/iop/borders.c:323 ../src/iop/censorize.c:83 +#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:89 +#: ../src/iop/colorize.c:98 ../src/iop/colormapping.c:153 +#: ../src/iop/colorzones.c:146 ../src/iop/grain.c:450 ../src/iop/highpass.c:78 +#: ../src/iop/levels.c:140 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 +#: ../src/iop/lowpass.c:106 ../src/iop/monochrome.c:100 ../src/iop/soften.c:103 +#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:98 ../src/iop/vibrance.c:97 +#: ../src/iop/vignette.c:120 ../src/iop/watermark.c:422 msgid "creative" msgstr "" -#: ../src/iop/basicadj.c:150 ../src/iop/colorbalancergb.c:188 +#: ../src/iop/basicadj.c:176 ../src/iop/colorbalancergb.c:188 msgid "non-linear, RGB, scene-referred" msgstr "" -#: ../src/iop/basicadj.c:593 +#: ../src/iop/basicadj.c:623 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -12024,127 +12472,127 @@ "by pushing RGB values into negatives" msgstr "" -#: ../src/iop/basicadj.c:601 ../src/iop/exposure.c:1118 +#: ../src/iop/basicadj.c:631 ../src/iop/exposure.c:1136 msgid "adjust the exposure correction" msgstr "" -#: ../src/iop/basicadj.c:605 +#: ../src/iop/basicadj.c:635 msgid "highlight compression adjustment" msgstr "" -#: ../src/iop/basicadj.c:609 ../src/iop/colisa.c:308 +#: ../src/iop/basicadj.c:639 ../src/iop/colisa.c:302 msgid "contrast adjustment" msgstr "" -#: ../src/iop/basicadj.c:617 +#: ../src/iop/basicadj.c:647 msgid "middle gray adjustment" msgstr "" -#: ../src/iop/basicadj.c:622 ../src/iop/colisa.c:309 +#: ../src/iop/basicadj.c:652 ../src/iop/colisa.c:303 msgid "brightness adjustment" msgstr "" -#: ../src/iop/basicadj.c:625 +#: ../src/iop/basicadj.c:655 msgid "saturation adjustment" msgstr "" -#: ../src/iop/basicadj.c:628 +#: ../src/iop/basicadj.c:658 msgid "vibrance adjustment" msgstr "" -#: ../src/iop/basicadj.c:632 +#: ../src/iop/basicadj.c:662 msgid "apply auto exposure based on the entire image" msgstr "" -#: ../src/iop/basicadj.c:639 +#: ../src/iop/basicadj.c:669 msgid "" "apply auto exposure based on a region defined by the user\n" "click and drag to draw the area\n" "right click to cancel" msgstr "" -#: ../src/iop/basicadj.c:647 +#: ../src/iop/basicadj.c:677 msgid "clip" msgstr "" -#: ../src/iop/basicadj.c:649 +#: ../src/iop/basicadj.c:679 msgid "adjusts clipping value for auto exposure calculation" msgstr "" #. local contrast -#: ../src/iop/bilat.c:96 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:551 +#: ../src/iop/bilat.c:77 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:578 msgid "local contrast" msgstr "" -#: ../src/iop/bilat.c:101 +#: ../src/iop/bilat.c:82 msgid "manipulate local and global contrast separately" msgstr "" -#: ../src/iop/bilat.c:103 ../src/iop/bilat.c:105 ../src/iop/bloom.c:82 +#: ../src/iop/bilat.c:84 ../src/iop/bilat.c:86 ../src/iop/bloom.c:82 #: ../src/iop/bloom.c:84 ../src/iop/colisa.c:91 ../src/iop/colisa.c:93 -#: ../src/iop/colorcontrast.c:98 ../src/iop/colorcontrast.c:100 +#: ../src/iop/colorcontrast.c:90 ../src/iop/colorcontrast.c:92 #: ../src/iop/colorcorrection.c:78 ../src/iop/colorcorrection.c:80 -#: ../src/iop/colorize.c:108 ../src/iop/colormapping.c:156 -#: ../src/iop/colorreconstruction.c:138 ../src/iop/colorzones.c:148 -#: ../src/iop/defringe.c:85 ../src/iop/grain.c:435 ../src/iop/grain.c:437 -#: ../src/iop/levels.c:141 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 -#: ../src/iop/monochrome.c:101 ../src/iop/nlmeans.c:96 ../src/iop/nlmeans.c:98 -#: ../src/iop/shadhi.c:200 ../src/iop/tonecurve.c:214 ../src/iop/vibrance.c:98 +#: ../src/iop/colorize.c:101 ../src/iop/colormapping.c:156 +#: ../src/iop/colorreconstruction.c:123 ../src/iop/colorzones.c:149 +#: ../src/iop/defringe.c:85 ../src/iop/grain.c:451 ../src/iop/grain.c:453 +#: ../src/iop/levels.c:143 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 +#: ../src/iop/monochrome.c:103 ../src/iop/nlmeans.c:90 ../src/iop/nlmeans.c:92 +#: ../src/iop/shadhi.c:147 ../src/iop/tonecurve.c:187 ../src/iop/vibrance.c:100 msgid "non-linear, Lab, display-referred" msgstr "" -#: ../src/iop/bilat.c:104 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 -#: ../src/iop/colorcontrast.c:99 ../src/iop/colorcorrection.c:79 -#: ../src/iop/colorize.c:107 ../src/iop/colormapping.c:155 -#: ../src/iop/colorreconstruction.c:137 ../src/iop/colorzones.c:147 -#: ../src/iop/defringe.c:84 ../src/iop/grain.c:436 ../src/iop/levels.c:140 -#: ../src/iop/monochrome.c:100 ../src/iop/nlmeans.c:97 ../src/iop/shadhi.c:199 -#: ../src/iop/tonecurve.c:213 ../src/iop/vibrance.c:97 +#: ../src/iop/bilat.c:85 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 +#: ../src/iop/colorcontrast.c:91 ../src/iop/colorcorrection.c:79 +#: ../src/iop/colorize.c:100 ../src/iop/colormapping.c:155 +#: ../src/iop/colorreconstruction.c:122 ../src/iop/colorzones.c:148 +#: ../src/iop/defringe.c:84 ../src/iop/grain.c:452 ../src/iop/levels.c:142 +#: ../src/iop/monochrome.c:102 ../src/iop/nlmeans.c:91 ../src/iop/shadhi.c:146 +#: ../src/iop/tonecurve.c:186 ../src/iop/vibrance.c:99 msgid "non-linear, Lab" msgstr "" -#: ../src/iop/bilat.c:178 +#: ../src/iop/bilat.c:195 msgid "HDR local tone-mapping" msgstr "" -#: ../src/iop/bilat.c:431 +#: ../src/iop/bilat.c:441 msgid "" "the filter used for local contrast enhancement. bilateral is faster but can " "lead to artifacts around edges for extreme settings." msgstr "" -#: ../src/iop/bilat.c:435 ../src/iop/globaltonemap.c:635 +#: ../src/iop/bilat.c:445 ../src/iop/globaltonemap.c:668 msgid "detail" msgstr "" -#: ../src/iop/bilat.c:438 +#: ../src/iop/bilat.c:448 msgid "changes the local contrast" msgstr "" -#: ../src/iop/bilat.c:453 +#: ../src/iop/bilat.c:463 msgid "feature size of local details (spatial sigma of bilateral filter)" msgstr "" -#: ../src/iop/bilat.c:461 +#: ../src/iop/bilat.c:471 msgid "L difference to detect edges (range sigma of bilateral filter)" msgstr "" -#: ../src/iop/bilat.c:467 +#: ../src/iop/bilat.c:477 msgid "changes the local contrast of highlights" msgstr "" -#: ../src/iop/bilat.c:473 +#: ../src/iop/bilat.c:483 msgid "changes the local contrast of shadows" msgstr "" -#: ../src/iop/bilat.c:479 +#: ../src/iop/bilat.c:489 msgid "" "defines what counts as mid-tones. lower for better dynamic range compression " "(reduce shadow and highlight contrast), increase for more powerful local " "contrast" msgstr "" -#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:396 +#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:423 msgid "surface blur" msgstr "" @@ -12152,41 +12600,41 @@ msgid "denoise (bilateral filter)" msgstr "" -#: ../src/iop/bilateral.cc:99 +#: ../src/iop/bilateral.cc:101 msgid "apply edge-aware surface blur to denoise or smoothen textures" msgstr "" -#: ../src/iop/bilateral.cc:102 ../src/iop/blurs.c:93 -#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:729 -#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/soften.c:103 -#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:107 +#: ../src/iop/bilateral.cc:104 ../src/iop/blurs.c:93 +#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:781 +#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/primaries.c:82 +#: ../src/iop/soften.c:105 ../src/iop/splittoning.c:107 ../src/iop/velvia.c:100 msgid "linear, RGB" msgstr "" -#: ../src/iop/bilateral.cc:136 +#: ../src/iop/bilateral.cc:138 msgid "image too large" msgstr "" -#: ../src/iop/bilateral.cc:137 +#: ../src/iop/bilateral.cc:139 msgid "" "this module is unable to process\n" "images with more than 2 gigapixels.\n" "processing has been skipped." msgstr "" -#: ../src/iop/bilateral.cc:351 +#: ../src/iop/bilateral.cc:353 msgid "spatial extent of the gaussian" msgstr "" -#: ../src/iop/bilateral.cc:355 +#: ../src/iop/bilateral.cc:357 msgid "how much to blur red" msgstr "" -#: ../src/iop/bilateral.cc:360 +#: ../src/iop/bilateral.cc:362 msgid "how much to blur green" msgstr "" -#: ../src/iop/bilateral.cc:365 +#: ../src/iop/bilateral.cc:367 msgid "how much to blur blue" msgstr "" @@ -12194,20 +12642,20 @@ msgid "apply Orton effect for a dreamy aetherical look" msgstr "" -#: ../src/iop/bloom.c:368 ../src/iop/soften.c:369 ../src/libs/camera.c:567 -#: ../src/libs/masks.c:105 +#: ../src/iop/bloom.c:364 ../src/iop/soften.c:364 ../src/libs/camera.c:567 +#: ../src/libs/masks.c:106 msgid "size" msgstr "" -#: ../src/iop/bloom.c:370 +#: ../src/iop/bloom.c:366 msgid "the size of bloom" msgstr "" -#: ../src/iop/bloom.c:374 +#: ../src/iop/bloom.c:370 msgid "the threshold of light" msgstr "" -#: ../src/iop/bloom.c:378 +#: ../src/iop/bloom.c:374 msgid "the strength of bloom" msgstr "" @@ -12223,257 +12671,264 @@ msgid "simulate physically-accurate lens and motion blurs" msgstr "" -#: ../src/iop/borders.c:187 +#: ../src/iop/borders.c:312 msgid "framing" msgstr "" -#: ../src/iop/borders.c:192 +#: ../src/iop/borders.c:317 msgid "borders|enlarge canvas|expand canvas" msgstr "" -#: ../src/iop/borders.c:197 +#: ../src/iop/borders.c:322 msgid "add solid borders or margins around the picture" msgstr "" -#: ../src/iop/borders.c:199 ../src/iop/borders.c:201 ../src/iop/lut3d.c:144 +#: ../src/iop/borders.c:324 ../src/iop/borders.c:326 ../src/iop/lut3d.c:145 msgid "linear or non-linear, RGB, display-referred" msgstr "" -#: ../src/iop/borders.c:727 +#: ../src/iop/borders.c:737 msgid "15:10 postcard white" msgstr "" -#: ../src/iop/borders.c:732 +#: ../src/iop/borders.c:742 msgid "15:10 postcard black" msgstr "" -#: ../src/iop/borders.c:942 -msgid "size of the border in percent of the full image" +#: ../src/iop/borders.c:948 +msgid "which dimension to use for the size calculation" +msgstr "" + +#: ../src/iop/borders.c:954 +msgid "size of the border in percent of the chosen basis" msgstr "" -#: ../src/iop/borders.c:944 ../src/iop/clipping.c:2218 ../src/iop/crop.c:1224 +#: ../src/iop/borders.c:956 ../src/iop/clipping.c:2271 ../src/iop/crop.c:1208 msgid "aspect" msgstr "" -#: ../src/iop/borders.c:945 +#: ../src/iop/borders.c:957 msgid "" -"select the aspect ratio (right click on slider below to type your own w:h)" +"select the aspect ratio\n" +"(right click on slider below to type your own w:h)" msgstr "" -#: ../src/iop/borders.c:948 +#: ../src/iop/borders.c:961 msgid "3:1" msgstr "" -#: ../src/iop/borders.c:949 +#: ../src/iop/borders.c:962 msgid "95:33" msgstr "" -#: ../src/iop/borders.c:950 +#: ../src/iop/borders.c:963 msgid "CinemaScope 2.39:1" msgstr "" -#: ../src/iop/borders.c:951 +#: ../src/iop/borders.c:964 msgid "2:1" msgstr "" -#: ../src/iop/borders.c:952 +#: ../src/iop/borders.c:965 msgid "16:9" msgstr "" -#: ../src/iop/borders.c:953 +#: ../src/iop/borders.c:966 msgid "5:3" msgstr "" -#: ../src/iop/borders.c:954 +#: ../src/iop/borders.c:967 msgid "US Legal 8.5x14" msgstr "" -#: ../src/iop/borders.c:955 ../src/iop/clipping.c:2131 ../src/iop/crop.c:1128 +#: ../src/iop/borders.c:968 ../src/iop/clipping.c:2184 ../src/iop/crop.c:1112 msgid "golden cut" msgstr "" -#: ../src/iop/borders.c:956 +#: ../src/iop/borders.c:969 msgid "16:10" msgstr "" -#: ../src/iop/borders.c:957 +#: ../src/iop/borders.c:970 msgid "3:2 (4x6, 10x15cm)" msgstr "" -#: ../src/iop/borders.c:959 +#: ../src/iop/borders.c:972 msgid "DIN" msgstr "" -#: ../src/iop/borders.c:960 +#: ../src/iop/borders.c:973 msgid "7:5" msgstr "" -#: ../src/iop/borders.c:961 +#: ../src/iop/borders.c:974 msgid "4:3" msgstr "" -#: ../src/iop/borders.c:962 +#: ../src/iop/borders.c:975 msgid "US Letter 8.5x11" msgstr "" -#: ../src/iop/borders.c:963 +#: ../src/iop/borders.c:976 msgid "14:11" msgstr "" -#: ../src/iop/borders.c:964 +#: ../src/iop/borders.c:977 msgid "5:4 (8x10)" msgstr "" -#: ../src/iop/borders.c:965 ../src/iop/clipping.c:2121 ../src/iop/crop.c:1118 -#: ../src/libs/filtering.c:301 ../src/libs/filters/ratio.c:126 -#: ../src/libs/histogram.c:141 +#: ../src/iop/borders.c:978 ../src/iop/clipping.c:2174 ../src/iop/crop.c:1102 +#: ../src/libs/filtering.c:307 ../src/libs/filters/ratio.c:126 +#: ../src/libs/histogram.c:118 msgid "square" msgstr "" -#: ../src/iop/borders.c:966 +#: ../src/iop/borders.c:979 msgid "constant border" msgstr "" -#: ../src/iop/borders.c:967 ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:980 ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "custom..." msgstr "" -#: ../src/iop/borders.c:972 -msgid "set the custom aspect ratio (right click to enter number or w:h)" +#: ../src/iop/borders.c:984 +msgid "" +"set the custom aspect ratio\n" +"(right click to enter number or w:h)" msgstr "" -#: ../src/iop/borders.c:975 +#: ../src/iop/borders.c:989 msgid "aspect ratio orientation of the image with border" msgstr "" -#: ../src/iop/borders.c:977 +#: ../src/iop/borders.c:991 msgid "horizontal position" msgstr "" -#: ../src/iop/borders.c:978 +#: ../src/iop/borders.c:992 msgid "" -"select the horizontal position ratio relative to top or right click and type " -"your own (y:h)" +"select the horizontal position ratio relative to top\n" +"(right click on slider below to type your own x:w)" msgstr "" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "center" msgstr "" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "1/3" msgstr "" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "3/8" msgstr "" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "5/8" msgstr "" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "2/3" msgstr "" -#: ../src/iop/borders.c:986 +#: ../src/iop/borders.c:1000 msgid "custom horizontal position" msgstr "" -#: ../src/iop/borders.c:988 +#: ../src/iop/borders.c:1002 msgid "vertical position" msgstr "" -#: ../src/iop/borders.c:989 +#: ../src/iop/borders.c:1003 msgid "" -"select the vertical position ratio relative to left or right click and type " -"your own (x:w)" +"select the vertical position ratio relative to left\n" +"(right click on slider below to type your own y:h)" msgstr "" -#: ../src/iop/borders.c:997 +#: ../src/iop/borders.c:1011 msgid "custom vertical position" msgstr "" -#: ../src/iop/borders.c:1002 +#: ../src/iop/borders.c:1017 msgid "size of the frame line in percent of min border width" msgstr "" -#: ../src/iop/borders.c:1007 +#: ../src/iop/borders.c:1023 msgid "offset of the frame line beginning on picture side" msgstr "" -#: ../src/iop/borders.c:1014 ../src/iop/borders.c:1023 +#: ../src/iop/borders.c:1033 ../src/iop/borders.c:1044 msgid "border color" msgstr "" -#: ../src/iop/borders.c:1018 +#: ../src/iop/borders.c:1037 msgid "select border color" msgstr "" -#: ../src/iop/borders.c:1022 +#: ../src/iop/borders.c:1043 msgid "pick border color from image" msgstr "" -#: ../src/iop/borders.c:1023 ../src/iop/borders.c:1036 -#: ../src/iop/colorzones.c:2415 ../src/iop/colorzones.c:2425 -#: ../src/iop/negadoctor.c:848 ../src/iop/negadoctor.c:915 -#: ../src/iop/negadoctor.c:953 ../src/iop/rgbcurve.c:1369 -#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1026 -#: ../src/iop/rgblevels.c:1032 ../src/iop/rgblevels.c:1038 +#: ../src/iop/borders.c:1044 ../src/iop/borders.c:1061 +#: ../src/iop/colorzones.c:2662 ../src/iop/colorzones.c:2677 +#: ../src/iop/negadoctor.c:867 ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:972 ../src/iop/rgbcurve.c:1369 +#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1075 +#: ../src/iop/rgblevels.c:1083 ../src/iop/rgblevels.c:1091 msgid "pickers" msgstr "" -#: ../src/iop/borders.c:1027 ../src/iop/borders.c:1036 +#: ../src/iop/borders.c:1049 ../src/iop/borders.c:1061 msgid "frame line color" msgstr "" -#: ../src/iop/borders.c:1031 +#: ../src/iop/borders.c:1054 msgid "select frame line color" msgstr "" -#: ../src/iop/borders.c:1035 +#: ../src/iop/borders.c:1060 msgid "pick frame line color from image" msgstr "" #. make sure you put all your translatable strings into _() ! -#: ../src/iop/cacorrect.c:72 +#: ../src/iop/cacorrect.c:78 msgid "raw chromatic aberrations" msgstr "" -#: ../src/iop/cacorrect.c:77 +#: ../src/iop/cacorrect.c:83 msgid "correct chromatic aberrations for Bayer sensors" msgstr "" -#: ../src/iop/cacorrect.c:79 ../src/iop/cacorrect.c:81 +#: ../src/iop/cacorrect.c:85 ../src/iop/cacorrect.c:87 #: ../src/iop/cacorrectrgb.c:171 ../src/iop/cacorrectrgb.c:173 #: ../src/iop/demosaic.c:294 ../src/iop/highlights.c:180 -#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:74 -#: ../src/iop/hotpixels.c:76 ../src/iop/rawdenoise.c:131 -#: ../src/iop/rawdenoise.c:133 ../src/iop/rawprepare.c:159 -#: ../src/iop/rawprepare.c:161 ../src/iop/temperature.c:213 -#: ../src/iop/temperature.c:215 +#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:76 +#: ../src/iop/hotpixels.c:78 ../src/iop/rawdenoise.c:145 +#: ../src/iop/rawdenoise.c:147 ../src/iop/rawprepare.c:175 +#: ../src/iop/rawprepare.c:177 ../src/iop/temperature.c:221 +#: ../src/iop/temperature.c:223 msgid "linear, raw, scene-referred" msgstr "" -#: ../src/iop/cacorrect.c:80 ../src/iop/cacorrectrgb.c:172 -#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:121 -#: ../src/iop/rawdenoise.c:132 ../src/iop/rawprepare.c:160 -#: ../src/iop/temperature.c:214 +#: ../src/iop/cacorrect.c:86 ../src/iop/cacorrectrgb.c:172 +#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:138 +#: ../src/iop/rawdenoise.c:146 ../src/iop/rawprepare.c:176 +#: ../src/iop/temperature.c:222 msgid "linear, raw" msgstr "" -#: ../src/iop/cacorrect.c:1405 +#: ../src/iop/cacorrect.c:1424 msgid "iteration runs, default is twice" msgstr "" -#: ../src/iop/cacorrect.c:1408 +#: ../src/iop/cacorrect.c:1427 msgid "activate colorshift correction for blue & red channels" msgstr "" -#: ../src/iop/cacorrect.c:1415 +#: ../src/iop/cacorrect.c:1434 msgid "" "automatic chromatic aberration correction\n" -"only for Bayer raw files" +"only for Bayer raw files with 3 color channels" msgstr "" #: ../src/iop/cacorrectrgb.c:164 ../src/iop/defringe.c:76 @@ -12484,7 +12939,7 @@ msgid "correct chromatic aberrations" msgstr "" -#: ../src/iop/cacorrectrgb.c:743 +#: ../src/iop/cacorrectrgb.c:745 msgid "" "channel used as a reference to\n" "correct the other channels.\n" @@ -12494,11 +12949,11 @@ "have artifacts." msgstr "" -#: ../src/iop/cacorrectrgb.c:750 +#: ../src/iop/cacorrectrgb.c:752 msgid "increase for stronger correction" msgstr "" -#: ../src/iop/cacorrectrgb.c:752 +#: ../src/iop/cacorrectrgb.c:754 msgid "" "balance between smoothing colors\n" "and preserving them.\n" @@ -12506,12 +12961,12 @@ "and edge bleeding." msgstr "" -#: ../src/iop/cacorrectrgb.c:757 +#: ../src/iop/cacorrectrgb.c:759 msgctxt "section" msgid "advanced parameters" msgstr "" -#: ../src/iop/cacorrectrgb.c:759 +#: ../src/iop/cacorrectrgb.c:761 msgid "" "correction mode to use.\n" "can help with multiple\n" @@ -12522,7 +12977,7 @@ "chromatic aberration." msgstr "" -#: ../src/iop/cacorrectrgb.c:767 +#: ../src/iop/cacorrectrgb.c:769 msgid "" "runs an iterative approach\n" "with several radii.\n" @@ -12550,35 +13005,35 @@ msgid "special, RGB, scene-referred" msgstr "" -#: ../src/iop/censorize.c:412 +#: ../src/iop/censorize.c:404 msgid "radius_1" msgstr "" -#: ../src/iop/censorize.c:414 +#: ../src/iop/censorize.c:406 msgid "pixelate" msgstr "" -#: ../src/iop/censorize.c:416 +#: ../src/iop/censorize.c:408 msgid "radius_2" msgstr "" -#: ../src/iop/censorize.c:418 +#: ../src/iop/censorize.c:410 msgid "noise" msgstr "" -#: ../src/iop/censorize.c:420 +#: ../src/iop/censorize.c:412 msgid "radius of gaussian blur before pixellation" msgstr "" -#: ../src/iop/censorize.c:421 +#: ../src/iop/censorize.c:413 msgid "radius of gaussian blur after pixellation" msgstr "" -#: ../src/iop/censorize.c:422 +#: ../src/iop/censorize.c:414 msgid "radius of the intermediate pixellation" msgstr "" -#: ../src/iop/censorize.c:423 +#: ../src/iop/censorize.c:415 msgid "amount of noise to add at the end" msgstr "" @@ -12591,175 +13046,175 @@ "this module is deprecated. please use the color calibration module instead." msgstr "" -#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:229 +#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:230 msgid "" "perform color space corrections\n" "such as white balance, channels mixing\n" "and conversions to monochrome emulating film" msgstr "" -#: ../src/iop/channelmixer.c:614 +#: ../src/iop/channelmixer.c:633 msgid "destination" msgstr "" -#: ../src/iop/channelmixer.c:621 +#: ../src/iop/channelmixer.c:640 msgctxt "channelmixer" msgid "gray" msgstr "" -#: ../src/iop/channelmixer.c:627 +#: ../src/iop/channelmixer.c:646 msgid "amount of red channel in the output channel" msgstr "" -#: ../src/iop/channelmixer.c:633 +#: ../src/iop/channelmixer.c:652 msgid "amount of green channel in the output channel" msgstr "" -#: ../src/iop/channelmixer.c:639 +#: ../src/iop/channelmixer.c:658 msgid "amount of blue channel in the output channel" msgstr "" -#: ../src/iop/channelmixer.c:655 ../src/iop/channelmixerrgb.c:524 +#: ../src/iop/channelmixer.c:674 ../src/iop/channelmixerrgb.c:588 msgid "swap R and B" msgstr "" -#: ../src/iop/channelmixer.c:661 ../src/iop/channelmixerrgb.c:498 +#: ../src/iop/channelmixer.c:680 ../src/iop/channelmixerrgb.c:562 msgid "swap G and B" msgstr "" -#: ../src/iop/channelmixer.c:667 +#: ../src/iop/channelmixer.c:686 msgid "color contrast boost" msgstr "" -#: ../src/iop/channelmixer.c:673 +#: ../src/iop/channelmixer.c:692 msgid "color details boost" msgstr "" -#: ../src/iop/channelmixer.c:679 +#: ../src/iop/channelmixer.c:698 msgid "color artifacts boost" msgstr "" -#: ../src/iop/channelmixer.c:685 +#: ../src/iop/channelmixer.c:704 msgid "B/W luminance-based" msgstr "" -#: ../src/iop/channelmixer.c:691 +#: ../src/iop/channelmixer.c:710 msgid "B/W artifacts boost" msgstr "" -#: ../src/iop/channelmixer.c:697 +#: ../src/iop/channelmixer.c:716 msgid "B/W smooth skin" msgstr "" -#: ../src/iop/channelmixer.c:703 +#: ../src/iop/channelmixer.c:722 msgid "B/W blue artifacts reduce" msgstr "" -#: ../src/iop/channelmixer.c:710 +#: ../src/iop/channelmixer.c:729 msgid "B/W Ilford Delta 100-400" msgstr "" -#: ../src/iop/channelmixer.c:717 +#: ../src/iop/channelmixer.c:736 msgid "B/W Ilford Delta 3200" msgstr "" -#: ../src/iop/channelmixer.c:724 +#: ../src/iop/channelmixer.c:743 msgid "B/W Ilford FP4" msgstr "" -#: ../src/iop/channelmixer.c:731 +#: ../src/iop/channelmixer.c:750 msgid "B/W Ilford HP5" msgstr "" -#: ../src/iop/channelmixer.c:738 +#: ../src/iop/channelmixer.c:757 msgid "B/W Ilford SFX" msgstr "" -#: ../src/iop/channelmixer.c:745 +#: ../src/iop/channelmixer.c:764 msgid "B/W Kodak T-Max 100" msgstr "" -#: ../src/iop/channelmixer.c:752 +#: ../src/iop/channelmixer.c:771 msgid "B/W Kodak T-max 400" msgstr "" -#: ../src/iop/channelmixer.c:759 +#: ../src/iop/channelmixer.c:778 msgid "B/W Kodak Tri-X 400" msgstr "" -#: ../src/iop/channelmixerrgb.c:219 +#: ../src/iop/channelmixerrgb.c:220 msgid "color calibration" msgstr "" -#: ../src/iop/channelmixerrgb.c:224 +#: ../src/iop/channelmixerrgb.c:225 msgid "channel mixer|white balance|monochrome" msgstr "" -#: ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:235 msgid "linear, RGB or XYZ" msgstr "" -#: ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:460 msgid "B&W: luminance-based" msgstr "" -#: ../src/iop/channelmixerrgb.c:431 +#: ../src/iop/channelmixerrgb.c:495 msgid "B&W: ILFORD HP5+" msgstr "" -#: ../src/iop/channelmixerrgb.c:440 +#: ../src/iop/channelmixerrgb.c:504 msgid "B&W: ILFORD DELTA 100" msgstr "" -#: ../src/iop/channelmixerrgb.c:450 +#: ../src/iop/channelmixerrgb.c:514 msgid "B&W: ILFORD DELTA 400 - 3200" msgstr "" -#: ../src/iop/channelmixerrgb.c:459 +#: ../src/iop/channelmixerrgb.c:523 msgid "B&W: ILFORD FP4+" msgstr "" -#: ../src/iop/channelmixerrgb.c:468 +#: ../src/iop/channelmixerrgb.c:532 msgid "B&W: Fuji Acros 100" msgstr "" -#: ../src/iop/channelmixerrgb.c:485 +#: ../src/iop/channelmixerrgb.c:549 msgid "basic channel mixer" msgstr "" -#: ../src/iop/channelmixerrgb.c:511 +#: ../src/iop/channelmixerrgb.c:575 msgid "swap G and R" msgstr "" -#: ../src/iop/channelmixerrgb.c:1869 +#: ../src/iop/channelmixerrgb.c:1926 msgid "(daylight)" msgstr "" -#: ../src/iop/channelmixerrgb.c:1871 +#: ../src/iop/channelmixerrgb.c:1928 msgid "(black body)" msgstr "" -#: ../src/iop/channelmixerrgb.c:1873 +#: ../src/iop/channelmixerrgb.c:1930 msgid "(invalid)" msgstr "" -#: ../src/iop/channelmixerrgb.c:1877 ../src/iop/channelmixerrgb.c:1935 +#: ../src/iop/channelmixerrgb.c:1934 ../src/iop/channelmixerrgb.c:1992 msgid "very good" msgstr "" -#: ../src/iop/channelmixerrgb.c:1879 ../src/iop/channelmixerrgb.c:1937 +#: ../src/iop/channelmixerrgb.c:1936 ../src/iop/channelmixerrgb.c:1994 msgid "good" msgstr "" -#: ../src/iop/channelmixerrgb.c:1881 ../src/iop/channelmixerrgb.c:1939 +#: ../src/iop/channelmixerrgb.c:1938 ../src/iop/channelmixerrgb.c:1996 msgid "passable" msgstr "" -#: ../src/iop/channelmixerrgb.c:1883 ../src/iop/channelmixerrgb.c:1941 +#: ../src/iop/channelmixerrgb.c:1940 ../src/iop/channelmixerrgb.c:1998 msgid "bad" msgstr "" -#: ../src/iop/channelmixerrgb.c:1890 +#: ../src/iop/channelmixerrgb.c:1947 #, c-format msgid "" "\n" @@ -12780,7 +13235,7 @@ "black offset: \t%+.4f" msgstr "" -#: ../src/iop/channelmixerrgb.c:1946 +#: ../src/iop/channelmixerrgb.c:2003 #, c-format msgid "" "\n" @@ -12792,23 +13247,35 @@ "black offset: \t%+.4f" msgstr "" -#: ../src/iop/channelmixerrgb.c:1978 +#: ../src/iop/channelmixerrgb.c:2054 msgid "double CAT applied" msgstr "" -#: ../src/iop/channelmixerrgb.c:1979 +#: ../src/iop/channelmixerrgb.c:2055 msgid "" "you have 2 instances or more of color calibration,\n" -"all performing chromatic adaptation.\n" -"this can lead to inconsistencies, unless you\n" +"all providing chromatic adaptation.\n" +"this can lead to inconsistencies unless you\n" "use them with masks or know what you are doing." msgstr "" -#: ../src/iop/channelmixerrgb.c:1991 +#: ../src/iop/channelmixerrgb.c:2071 +msgid "white balance applied twice" +msgstr "" + +#: ../src/iop/channelmixerrgb.c:2072 +msgid "" +"the color calibration module is enabled and already provides\n" +"chromatic adaptation.\n" +"set the white balance here to camera reference (D65)\n" +"or disable chromatic adaptation in color calibration." +msgstr "" + +#: ../src/iop/channelmixerrgb.c:2080 msgid "white balance module error" msgstr "" -#: ../src/iop/channelmixerrgb.c:1992 +#: ../src/iop/channelmixerrgb.c:2081 msgid "" "the white balance module is not using the camera\n" "reference illuminant, which will cause issues here\n" @@ -12816,44 +13283,64 @@ "or disable chromatic adaptation here." msgstr "" -#: ../src/iop/channelmixerrgb.c:2083 +#: ../src/iop/channelmixerrgb.c:2095 ../src/iop/channelmixerrgb.c:2104 +msgid "white balance missing" +msgstr "" + +#: ../src/iop/channelmixerrgb.c:2096 +msgid "" +"this module is not providing a valid reference illuminant\n" +"causing chromatic adaptation issues in color calibration.\n" +"enable this module and either set it to reference\n" +"or disable chromatic adaptation in color calibration." +msgstr "" + +#: ../src/iop/channelmixerrgb.c:2105 +msgid "" +"the white balance module is not providing a valid reference\n" +"illuminant causing issues with chromatic adaptation here.\n" +"enable white balance and either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" + +#: ../src/iop/channelmixerrgb.c:2196 msgid "auto-detection of white balance completed" msgstr "" -#: ../src/iop/channelmixerrgb.c:2236 +#: ../src/iop/channelmixerrgb.c:2346 msgid "channelmixerrgb works only on RGB input" msgstr "" -#: ../src/iop/channelmixerrgb.c:3621 +#: ../src/iop/channelmixerrgb.c:3692 #, c-format msgid "CCT: %.0f K (daylight)" msgstr "" -#: ../src/iop/channelmixerrgb.c:3624 +#: ../src/iop/channelmixerrgb.c:3695 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a daylight spectrum,\n" "so its temperature is relevant and meaningful with a D illuminant." msgstr "" -#: ../src/iop/channelmixerrgb.c:3630 +#: ../src/iop/channelmixerrgb.c:3701 #, c-format msgid "CCT: %.0f K (black body)" msgstr "" -#: ../src/iop/channelmixerrgb.c:3633 +#: ../src/iop/channelmixerrgb.c:3704 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a black body spectrum,\n" "so its temperature is relevant and meaningful with a Planckian illuminant." msgstr "" -#: ../src/iop/channelmixerrgb.c:3639 +#: ../src/iop/channelmixerrgb.c:3710 #, c-format msgid "CCT: %.0f K (invalid)" msgstr "" -#: ../src/iop/channelmixerrgb.c:3642 +#: ../src/iop/channelmixerrgb.c:3713 msgid "" "approximated correlated color temperature.\n" "this illuminant cannot be accurately modeled by a daylight or black body " @@ -12862,34 +13349,34 @@ "custom illuminant." msgstr "" -#: ../src/iop/channelmixerrgb.c:3651 +#: ../src/iop/channelmixerrgb.c:3722 #, c-format msgid "CCT: undefined" msgstr "" -#: ../src/iop/channelmixerrgb.c:3654 +#: ../src/iop/channelmixerrgb.c:3725 msgid "" "the approximated correlated color temperature\n" "cannot be computed at all so you need to use a custom illuminant." msgstr "" -#: ../src/iop/channelmixerrgb.c:3967 +#: ../src/iop/channelmixerrgb.c:4038 msgid "white balance successfully extracted from raw image" msgstr "" #. We need to recompute only the full preview -#: ../src/iop/channelmixerrgb.c:3973 +#: ../src/iop/channelmixerrgb.c:4044 msgid "auto-detection of white balance started…" msgstr "" -#: ../src/iop/channelmixerrgb.c:4078 +#: ../src/iop/channelmixerrgb.c:4149 msgid "" "color calibration: the sum of the gray channel parameters is zero, " "normalization will be disabled." msgstr "" #. Write report in GUI -#: ../src/iop/channelmixerrgb.c:4126 +#: ../src/iop/channelmixerrgb.c:4194 #, c-format msgid "" "L: \t%.1f %%\n" @@ -12897,27 +13384,27 @@ "c: \t%.1f" msgstr "" -#: ../src/iop/channelmixerrgb.c:4394 ../src/iop/clipping.c:2087 -#: ../src/iop/colorbalancergb.c:1873 ../src/iop/filmicrgb.c:4419 -#: ../src/iop/negadoctor.c:829 ../src/iop/toneequal.c:3319 -#: ../src/libs/image.c:460 ../src/views/lighttable.c:1258 +#: ../src/iop/channelmixerrgb.c:4462 ../src/iop/clipping.c:2140 +#: ../src/iop/colorbalancergb.c:1944 ../src/iop/filmicrgb.c:4483 +#: ../src/iop/negadoctor.c:848 ../src/iop/toneequal.c:3372 +#: ../src/libs/image.c:490 ../src/views/lighttable.c:1258 msgid "page" msgstr "" #. Page CAT -#: ../src/iop/channelmixerrgb.c:4397 +#: ../src/iop/channelmixerrgb.c:4465 msgid "CAT" msgstr "" -#: ../src/iop/channelmixerrgb.c:4398 +#: ../src/iop/channelmixerrgb.c:4466 msgid "chromatic adaptation transform" msgstr "" -#: ../src/iop/channelmixerrgb.c:4400 +#: ../src/iop/channelmixerrgb.c:4468 msgid "adaptation" msgstr "" -#: ../src/iop/channelmixerrgb.c:4403 +#: ../src/iop/channelmixerrgb.c:4471 msgid "" "choose the method to adapt the illuminant\n" "and the colorspace in which the module works: \n" @@ -12929,33 +13416,33 @@ "• none disables any adaptation and uses pipeline working RGB." msgstr "" -#: ../src/iop/channelmixerrgb.c:4423 +#: ../src/iop/channelmixerrgb.c:4491 msgid "" "this is the color of the scene illuminant before chromatic adaptation\n" "this color will be turned into pure white by the adaptation." msgstr "" -#: ../src/iop/channelmixerrgb.c:4431 +#: ../src/iop/channelmixerrgb.c:4499 msgid "picker" msgstr "" -#: ../src/iop/channelmixerrgb.c:4433 ../src/iop/temperature.c:2047 +#: ../src/iop/channelmixerrgb.c:4501 ../src/iop/temperature.c:2015 msgid "set white balance to detected from area" msgstr "" -#: ../src/iop/channelmixerrgb.c:4437 ../src/iop/negadoctor.c:953 +#: ../src/iop/channelmixerrgb.c:4505 ../src/iop/negadoctor.c:972 msgid "illuminant" msgstr "" -#: ../src/iop/channelmixerrgb.c:4443 ../src/iop/temperature.c:2107 +#: ../src/iop/channelmixerrgb.c:4511 ../src/iop/temperature.c:2072 msgid "temperature" msgstr "" -#: ../src/iop/channelmixerrgb.c:4474 -msgid "spot color mapping" +#: ../src/iop/channelmixerrgb.c:4542 +msgid "area color mapping" msgstr "" -#: ../src/iop/channelmixerrgb.c:4480 +#: ../src/iop/channelmixerrgb.c:4548 msgid "" "define a target chromaticity (hue and chroma) for a particular region of the " "image (the control sample), which you then match against the same target " @@ -12964,17 +13451,17 @@ "series of images." msgstr "" -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/channelmixerrgb.c:4502 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/channelmixerrgb.c:4573 +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/channelmixerrgb.c:4570 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/channelmixerrgb.c:4641 msgid "mapping" msgstr "" -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/exposure.c:1188 -msgid "spot mode" +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/exposure.c:1206 +msgid "area mode" msgstr "" -#: ../src/iop/channelmixerrgb.c:4488 +#: ../src/iop/channelmixerrgb.c:4556 msgid "" "\"correction\" automatically adjust the illuminant\n" "such that the input color is mapped to the target.\n" @@ -12982,148 +13469,148 @@ "and can be used to sample a target." msgstr "" -#: ../src/iop/channelmixerrgb.c:4493 ../src/iop/exposure.c:1194 +#: ../src/iop/channelmixerrgb.c:4561 ../src/iop/exposure.c:1212 msgid "correction" msgstr "" -#: ../src/iop/channelmixerrgb.c:4494 ../src/iop/exposure.c:1195 +#: ../src/iop/channelmixerrgb.c:4562 ../src/iop/exposure.c:1213 msgid "measure" msgstr "" -#: ../src/iop/channelmixerrgb.c:4500 +#: ../src/iop/channelmixerrgb.c:4568 msgid "take channel mixing into account" msgstr "" -#: ../src/iop/channelmixerrgb.c:4507 +#: ../src/iop/channelmixerrgb.c:4575 msgid "" "compute the target by taking the channel mixing into account.\n" "if disabled, only the CAT is considered." msgstr "" -#: ../src/iop/channelmixerrgb.c:4519 ../src/iop/exposure.c:1202 +#: ../src/iop/channelmixerrgb.c:4587 ../src/iop/exposure.c:1220 msgctxt "section" msgid "input" msgstr "" -#: ../src/iop/channelmixerrgb.c:4526 ../src/iop/exposure.c:1210 +#: ../src/iop/channelmixerrgb.c:4594 ../src/iop/exposure.c:1228 msgid "the input color that should be mapped to the target" msgstr "" -#: ../src/iop/channelmixerrgb.c:4532 +#: ../src/iop/channelmixerrgb.c:4600 msgid "" "L: \tN/A\n" "h: \tN/A\n" "c: \tN/A" msgstr "" -#: ../src/iop/channelmixerrgb.c:4535 ../src/iop/exposure.c:1218 +#: ../src/iop/channelmixerrgb.c:4603 ../src/iop/exposure.c:1236 msgid "these LCh coordinates are computed from CIE Lab 1976 coordinates" msgstr "" -#: ../src/iop/channelmixerrgb.c:4543 ../src/iop/exposure.c:1225 +#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/exposure.c:1243 msgctxt "section" msgid "target" msgstr "" -#: ../src/iop/channelmixerrgb.c:4550 +#: ../src/iop/channelmixerrgb.c:4618 msgid "the desired target color after mapping" msgstr "" -#: ../src/iop/channelmixerrgb.c:4589 +#: ../src/iop/channelmixerrgb.c:4657 msgid "input R" msgstr "" -#: ../src/iop/channelmixerrgb.c:4594 +#: ../src/iop/channelmixerrgb.c:4662 msgid "input G" msgstr "" -#: ../src/iop/channelmixerrgb.c:4599 +#: ../src/iop/channelmixerrgb.c:4667 msgid "input B" msgstr "" -#: ../src/iop/channelmixerrgb.c:4609 +#: ../src/iop/channelmixerrgb.c:4677 msgid "output R" msgstr "" -#: ../src/iop/channelmixerrgb.c:4610 +#: ../src/iop/channelmixerrgb.c:4678 msgid "output G" msgstr "" -#: ../src/iop/channelmixerrgb.c:4611 +#: ../src/iop/channelmixerrgb.c:4679 msgid "output B" msgstr "" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "colorfulness" msgstr "" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "output colorfulness" msgstr "" -#: ../src/iop/channelmixerrgb.c:4617 +#: ../src/iop/channelmixerrgb.c:4685 msgid "output brightness" msgstr "" -#: ../src/iop/channelmixerrgb.c:4620 +#: ../src/iop/channelmixerrgb.c:4688 msgid "output gray" msgstr "" -#: ../src/iop/channelmixerrgb.c:4635 +#: ../src/iop/channelmixerrgb.c:4703 msgid "calibrate with a color checker" msgstr "" -#: ../src/iop/channelmixerrgb.c:4640 +#: ../src/iop/channelmixerrgb.c:4708 msgid "use a color checker target to autoset CAT and channels" msgstr "" -#: ../src/iop/channelmixerrgb.c:4647 ../src/iop/channelmixerrgb.c:4660 -#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/channelmixerrgb.c:4696 -#: ../src/iop/channelmixerrgb.c:4705 ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4715 ../src/iop/channelmixerrgb.c:4728 +#: ../src/iop/channelmixerrgb.c:4746 ../src/iop/channelmixerrgb.c:4764 +#: ../src/iop/channelmixerrgb.c:4773 ../src/iop/channelmixerrgb.c:4781 msgid "calibrate" msgstr "" -#: ../src/iop/channelmixerrgb.c:4647 +#: ../src/iop/channelmixerrgb.c:4715 msgid "chart" msgstr "" -#: ../src/iop/channelmixerrgb.c:4648 +#: ../src/iop/channelmixerrgb.c:4716 msgid "choose the vendor and the type of your chart" msgstr "" -#: ../src/iop/channelmixerrgb.c:4650 +#: ../src/iop/channelmixerrgb.c:4718 msgid "Xrite ColorChecker 24 pre-2014" msgstr "" -#: ../src/iop/channelmixerrgb.c:4651 +#: ../src/iop/channelmixerrgb.c:4719 msgid "Xrite ColorChecker 24 post-2014" msgstr "" -#: ../src/iop/channelmixerrgb.c:4652 +#: ../src/iop/channelmixerrgb.c:4720 msgid "Datacolor SpyderCheckr 24 pre-2018" msgstr "" -#: ../src/iop/channelmixerrgb.c:4653 +#: ../src/iop/channelmixerrgb.c:4721 msgid "Datacolor SpyderCheckr 24 post-2018" msgstr "" -#: ../src/iop/channelmixerrgb.c:4654 +#: ../src/iop/channelmixerrgb.c:4722 msgid "Datacolor SpyderCheckr 48 pre-2018" msgstr "" -#: ../src/iop/channelmixerrgb.c:4655 +#: ../src/iop/channelmixerrgb.c:4723 msgid "Datacolor SpyderCheckr 48 post-2018" msgstr "" -#: ../src/iop/channelmixerrgb.c:4656 +#: ../src/iop/channelmixerrgb.c:4724 msgid "Datacolor SpyderCheckr Photo" msgstr "" -#: ../src/iop/channelmixerrgb.c:4660 +#: ../src/iop/channelmixerrgb.c:4728 msgid "optimize for" msgstr "" -#: ../src/iop/channelmixerrgb.c:4661 +#: ../src/iop/channelmixerrgb.c:4729 msgid "" "choose the colors that will be optimized with higher priority.\n" "neutral colors gives the lowest average delta E but a high maximum delta E\n" @@ -13133,66 +13620,66 @@ "the others are special behaviors to protect some hues" msgstr "" -#: ../src/iop/channelmixerrgb.c:4668 +#: ../src/iop/channelmixerrgb.c:4736 msgid "neutral colors" msgstr "" -#: ../src/iop/channelmixerrgb.c:4670 +#: ../src/iop/channelmixerrgb.c:4738 msgid "skin and soil colors" msgstr "" -#: ../src/iop/channelmixerrgb.c:4671 +#: ../src/iop/channelmixerrgb.c:4739 msgid "foliage colors" msgstr "" -#: ../src/iop/channelmixerrgb.c:4672 +#: ../src/iop/channelmixerrgb.c:4740 msgid "sky and water colors" msgstr "" -#: ../src/iop/channelmixerrgb.c:4673 +#: ../src/iop/channelmixerrgb.c:4741 msgid "average delta E" msgstr "" -#: ../src/iop/channelmixerrgb.c:4674 +#: ../src/iop/channelmixerrgb.c:4742 msgid "maximum delta E" msgstr "" -#: ../src/iop/channelmixerrgb.c:4678 +#: ../src/iop/channelmixerrgb.c:4746 msgid "patch scale" msgstr "" -#: ../src/iop/channelmixerrgb.c:4681 +#: ../src/iop/channelmixerrgb.c:4749 msgid "" "reduce the radius of the patches to select the more or less central part.\n" "useful when the perspective correction is sloppy or\n" "the patches frame cast a shadows on the edges of the patch." msgstr "" -#: ../src/iop/channelmixerrgb.c:4691 +#: ../src/iop/channelmixerrgb.c:4759 msgid "the delta E is using the CIE 2000 formula" msgstr "" -#: ../src/iop/channelmixerrgb.c:4696 +#: ../src/iop/channelmixerrgb.c:4764 msgid "accept" msgstr "" -#: ../src/iop/channelmixerrgb.c:4702 +#: ../src/iop/channelmixerrgb.c:4770 msgid "accept the computed profile and set it in the module" msgstr "" -#: ../src/iop/channelmixerrgb.c:4705 +#: ../src/iop/channelmixerrgb.c:4773 msgid "recompute" msgstr "" -#: ../src/iop/channelmixerrgb.c:4709 +#: ../src/iop/channelmixerrgb.c:4777 msgid "recompute the profile" msgstr "" -#: ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4781 msgid "validate" msgstr "" -#: ../src/iop/channelmixerrgb.c:4717 +#: ../src/iop/channelmixerrgb.c:4785 msgid "check the output delta E" msgstr "" @@ -13206,160 +13693,160 @@ "this module is deprecated. better use new local contrast module instead." msgstr "" -#: ../src/iop/clahe.c:337 ../src/iop/sharpen.c:445 +#: ../src/iop/clahe.c:339 ../src/iop/sharpen.c:440 msgid "amount" msgstr "" -#: ../src/iop/clahe.c:346 +#: ../src/iop/clahe.c:348 msgid "size of features to preserve" msgstr "" -#: ../src/iop/clahe.c:347 ../src/iop/nlmeans.c:464 +#: ../src/iop/clahe.c:349 ../src/iop/nlmeans.c:467 msgid "strength of the effect" msgstr "" -#: ../src/iop/clipping.c:304 +#: ../src/iop/clipping.c:347 msgid "" "this module is deprecated. please use the crop, orientation and/or rotate " "and perspective modules instead." msgstr "" -#: ../src/iop/clipping.c:309 +#: ../src/iop/clipping.c:352 msgid "crop and rotate" msgstr "" -#: ../src/iop/clipping.c:314 +#: ../src/iop/clipping.c:357 msgid "reframe|perspective|keystone|distortion" msgstr "" -#: ../src/iop/clipping.c:319 +#: ../src/iop/clipping.c:362 msgid "change the framing and correct the perspective" msgstr "" -#: ../src/iop/clipping.c:1394 ../src/iop/clipping.c:2120 ../src/iop/crop.c:517 -#: ../src/iop/crop.c:1117 +#: ../src/iop/clipping.c:1447 ../src/iop/clipping.c:2173 ../src/iop/crop.c:501 +#: ../src/iop/crop.c:1101 msgid "original image" msgstr "" -#: ../src/iop/clipping.c:1698 ../src/iop/crop.c:824 +#: ../src/iop/clipping.c:1751 ../src/iop/crop.c:808 msgid "invalid ratio format. it should be \"number:number\"" msgstr "" -#: ../src/iop/clipping.c:1714 ../src/iop/crop.c:840 +#: ../src/iop/clipping.c:1767 ../src/iop/crop.c:824 msgid "invalid ratio format. it should be a positive number" msgstr "" -#: ../src/iop/clipping.c:1903 ../src/iop/clipping.c:2111 +#: ../src/iop/clipping.c:1956 ../src/iop/clipping.c:2164 msgid "full" msgstr "" -#: ../src/iop/clipping.c:1904 +#: ../src/iop/clipping.c:1957 msgid "old system" msgstr "" -#: ../src/iop/clipping.c:1905 +#: ../src/iop/clipping.c:1958 msgid "correction applied" msgstr "" -#: ../src/iop/clipping.c:2089 +#: ../src/iop/clipping.c:2142 msgid "main" msgstr "" -#: ../src/iop/clipping.c:2098 +#: ../src/iop/clipping.c:2151 msgid "mirror image horizontally and/or vertically" msgstr "" -#: ../src/iop/clipping.c:2101 +#: ../src/iop/clipping.c:2154 msgid "angle" msgstr "" -#: ../src/iop/clipping.c:2104 +#: ../src/iop/clipping.c:2157 msgid "right-click and drag a line on the image to drag a straight line" msgstr "" -#: ../src/iop/clipping.c:2107 +#: ../src/iop/clipping.c:2160 msgid "keystone" msgstr "" -#: ../src/iop/clipping.c:2112 +#: ../src/iop/clipping.c:2165 msgid "set perspective correction for your image" msgstr "" -#: ../src/iop/clipping.c:2119 ../src/iop/crop.c:1116 +#: ../src/iop/clipping.c:2172 ../src/iop/crop.c:1100 msgid "freehand" msgstr "" -#: ../src/iop/clipping.c:2122 ../src/iop/crop.c:1119 +#: ../src/iop/clipping.c:2175 ../src/iop/crop.c:1103 msgid "10:8 in print" msgstr "" -#: ../src/iop/clipping.c:2123 ../src/iop/crop.c:1120 +#: ../src/iop/clipping.c:2176 ../src/iop/crop.c:1104 msgid "5:4, 4x5, 8x10" msgstr "" -#: ../src/iop/clipping.c:2124 ../src/iop/crop.c:1121 +#: ../src/iop/clipping.c:2177 ../src/iop/crop.c:1105 msgid "11x14" msgstr "" -#: ../src/iop/clipping.c:2125 ../src/iop/crop.c:1122 +#: ../src/iop/clipping.c:2178 ../src/iop/crop.c:1106 msgid "8.5x11, letter" msgstr "" -#: ../src/iop/clipping.c:2126 ../src/iop/crop.c:1123 +#: ../src/iop/clipping.c:2179 ../src/iop/crop.c:1107 msgid "4:3, VGA, TV" msgstr "" -#: ../src/iop/clipping.c:2127 ../src/iop/crop.c:1124 +#: ../src/iop/clipping.c:2180 ../src/iop/crop.c:1108 msgid "5x7" msgstr "" -#: ../src/iop/clipping.c:2128 ../src/iop/crop.c:1125 +#: ../src/iop/clipping.c:2181 ../src/iop/crop.c:1109 msgid "ISO 216, DIN 476, A4" msgstr "" -#: ../src/iop/clipping.c:2129 ../src/iop/crop.c:1126 +#: ../src/iop/clipping.c:2182 ../src/iop/crop.c:1110 msgid "3:2, 4x6, 35mm" msgstr "" -#: ../src/iop/clipping.c:2130 ../src/iop/crop.c:1127 +#: ../src/iop/clipping.c:2183 ../src/iop/crop.c:1111 msgid "16:10, 8x5" msgstr "" -#: ../src/iop/clipping.c:2132 ../src/iop/crop.c:1129 +#: ../src/iop/clipping.c:2185 ../src/iop/crop.c:1113 msgid "16:9, HDTV" msgstr "" -#: ../src/iop/clipping.c:2133 ../src/iop/crop.c:1130 +#: ../src/iop/clipping.c:2186 ../src/iop/crop.c:1114 msgid "widescreen" msgstr "" -#: ../src/iop/clipping.c:2134 ../src/iop/crop.c:1131 +#: ../src/iop/clipping.c:2187 ../src/iop/crop.c:1115 msgid "2:1, univisium" msgstr "" -#: ../src/iop/clipping.c:2135 ../src/iop/crop.c:1132 +#: ../src/iop/clipping.c:2188 ../src/iop/crop.c:1116 msgid "cinemascope" msgstr "" -#: ../src/iop/clipping.c:2136 ../src/iop/crop.c:1133 +#: ../src/iop/clipping.c:2189 ../src/iop/crop.c:1117 msgid "21:9" msgstr "" -#: ../src/iop/clipping.c:2137 ../src/iop/crop.c:1134 +#: ../src/iop/clipping.c:2190 ../src/iop/crop.c:1118 msgid "anamorphic" msgstr "" -#: ../src/iop/clipping.c:2138 ../src/iop/crop.c:1135 +#: ../src/iop/clipping.c:2191 ../src/iop/crop.c:1119 msgid "3:1, panorama" msgstr "" -#: ../src/iop/clipping.c:2170 ../src/iop/clipping.c:2182 ../src/iop/crop.c:1171 -#: ../src/iop/crop.c:1187 +#: ../src/iop/clipping.c:2223 ../src/iop/clipping.c:2235 ../src/iop/crop.c:1155 +#: ../src/iop/crop.c:1171 #, c-format msgid "invalid ratio format for `%s'. it should be \"number:number\"" msgstr "" -#: ../src/iop/clipping.c:2229 ../src/iop/crop.c:1238 +#: ../src/iop/clipping.c:2282 ../src/iop/crop.c:1222 msgid "" "set the aspect ratio\n" "the list is sorted: from most square to least square\n" @@ -13367,63 +13854,63 @@ "decimal format" msgstr "" -#: ../src/iop/clipping.c:2236 ../src/iop/crop.c:1252 +#: ../src/iop/clipping.c:2289 ../src/iop/crop.c:1236 msgid "margins" msgstr "" -#: ../src/iop/clipping.c:2241 ../src/iop/crop.c:1262 +#: ../src/iop/clipping.c:2294 ../src/iop/crop.c:1246 msgid "the left margin cannot overlap with the right margin" msgstr "" -#: ../src/iop/clipping.c:2248 ../src/iop/crop.c:1270 +#: ../src/iop/clipping.c:2301 ../src/iop/crop.c:1254 msgid "the right margin cannot overlap with the left margin" msgstr "" -#: ../src/iop/clipping.c:2253 ../src/iop/crop.c:1276 +#: ../src/iop/clipping.c:2306 ../src/iop/crop.c:1260 msgid "the top margin cannot overlap with the bottom margin" msgstr "" -#: ../src/iop/clipping.c:2260 ../src/iop/crop.c:1284 +#: ../src/iop/clipping.c:2313 ../src/iop/crop.c:1268 msgid "the bottom margin cannot overlap with the top margin" msgstr "" -#: ../src/iop/clipping.c:3019 +#: ../src/iop/clipping.c:3059 msgid "<b>commit</b>: double-click, <b>straighten</b>: right-drag" msgstr "" -#: ../src/iop/clipping.c:3023 +#: ../src/iop/clipping.c:3063 msgid "" "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag\n" "<b>straighten</b>: right-drag" msgstr "" -#: ../src/iop/clipping.c:3066 +#: ../src/iop/clipping.c:3104 msgid "<b>move control point</b>: drag" msgstr "" -#: ../src/iop/clipping.c:3071 +#: ../src/iop/clipping.c:3109 msgid "<b>move line</b>: drag, <b>toggle symmetry</b>: click ꝏ" msgstr "" -#: ../src/iop/clipping.c:3076 +#: ../src/iop/clipping.c:3114 msgid "" "<b>apply</b>: click <tt>ok</tt>, <b>toggle symmetry</b>: click ꝏ\n" "<b>move line/control point</b>: drag" msgstr "" -#: ../src/iop/clipping.c:3083 +#: ../src/iop/clipping.c:3121 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag\n" "<b>straighten</b>: right-drag, <b>commit</b>: double-click" msgstr "" -#: ../src/iop/clipping.c:3340 ../src/iop/crop.c:1796 +#: ../src/iop/clipping.c:3380 ../src/iop/crop.c:1770 #, c-format msgid "[%s on borders] crop" msgstr "" -#: ../src/iop/clipping.c:3342 ../src/iop/crop.c:1798 +#: ../src/iop/clipping.c:3382 ../src/iop/crop.c:1772 #, c-format msgid "[%s on borders] crop keeping ratio" msgstr "" @@ -13440,224 +13927,224 @@ msgid "adjust the look of the image" msgstr "" -#: ../src/iop/colisa.c:310 +#: ../src/iop/colisa.c:304 msgid "color saturation adjustment" msgstr "" -#: ../src/iop/colorbalance.c:150 +#: ../src/iop/colorbalance.c:152 msgid "color balance" msgstr "" -#: ../src/iop/colorbalance.c:155 +#: ../src/iop/colorbalance.c:157 msgid "lift gamma gain|cdl|color grading|contrast|saturation|hue" msgstr "" -#: ../src/iop/colorbalance.c:160 +#: ../src/iop/colorbalance.c:162 msgid "shift colors selectively by luminance range" msgstr "" -#: ../src/iop/colorbalance.c:164 +#: ../src/iop/colorbalance.c:166 msgid "non-linear, Lab, scene-referred" msgstr "" #. these blobs were exported as dtstyle and copied from there: -#: ../src/iop/colorbalance.c:275 +#: ../src/iop/colorbalance.c:304 msgid "split-toning teal-orange (2nd instance)" msgstr "" -#: ../src/iop/colorbalance.c:278 +#: ../src/iop/colorbalance.c:307 msgid "split-toning teal-orange (1st instance)" msgstr "" -#: ../src/iop/colorbalance.c:282 +#: ../src/iop/colorbalance.c:311 msgid "generic film" msgstr "" -#: ../src/iop/colorbalance.c:286 +#: ../src/iop/colorbalance.c:315 msgid "similar to Kodak Portra" msgstr "" -#: ../src/iop/colorbalance.c:290 +#: ../src/iop/colorbalance.c:319 msgid "similar to Kodak Ektar" msgstr "" -#: ../src/iop/colorbalance.c:294 +#: ../src/iop/colorbalance.c:323 msgid "similar to Kodachrome" msgstr "" -#: ../src/iop/colorbalance.c:990 +#: ../src/iop/colorbalance.c:964 msgid "optimize luma from patches" msgstr "" -#: ../src/iop/colorbalance.c:992 ../src/iop/colorbalance.c:2110 +#: ../src/iop/colorbalance.c:966 ../src/iop/colorbalance.c:2085 msgid "optimize luma" msgstr "" -#: ../src/iop/colorbalance.c:996 +#: ../src/iop/colorbalance.c:970 msgid "neutralize colors from patches" msgstr "" -#: ../src/iop/colorbalance.c:998 ../src/iop/colorbalance.c:2116 +#: ../src/iop/colorbalance.c:972 ../src/iop/colorbalance.c:2091 msgid "neutralize colors" msgstr "" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "offset" msgstr "" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "power" msgstr "" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "slope" msgstr "" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "lift" msgstr "" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gamma" msgstr "" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gain" msgstr "" -#: ../src/iop/colorbalance.c:1787 +#: ../src/iop/colorbalance.c:1762 msgctxt "section" msgid "shadows: lift / offset" msgstr "" -#: ../src/iop/colorbalance.c:1788 +#: ../src/iop/colorbalance.c:1763 msgctxt "section" msgid "mid-tones: gamma / power" msgstr "" -#: ../src/iop/colorbalance.c:1789 +#: ../src/iop/colorbalance.c:1764 msgctxt "section" msgid "highlights: gain / slope" msgstr "" -#: ../src/iop/colorbalance.c:1813 +#: ../src/iop/colorbalance.c:1788 msgid "shadows / mid-tones / highlights" msgstr "" -#: ../src/iop/colorbalance.c:1910 ../src/iop/colorbalance.c:1919 +#: ../src/iop/colorbalance.c:1885 ../src/iop/colorbalance.c:1894 msgid "color-grading mapping method" msgstr "" -#: ../src/iop/colorbalance.c:1914 +#: ../src/iop/colorbalance.c:1889 msgid "color control sliders" msgstr "" -#: ../src/iop/colorbalance.c:1915 ../src/libs/colorpicker.c:51 +#: ../src/iop/colorbalance.c:1890 ../src/libs/colorpicker.c:51 msgid "HSL" msgstr "" -#: ../src/iop/colorbalance.c:1916 +#: ../src/iop/colorbalance.c:1891 msgid "RGBL" msgstr "" -#: ../src/iop/colorbalance.c:1928 +#: ../src/iop/colorbalance.c:1903 msgctxt "section" msgid "master" msgstr "" -#: ../src/iop/colorbalance.c:1934 +#: ../src/iop/colorbalance.c:1909 msgid "saturation correction before the color balance" msgstr "" -#: ../src/iop/colorbalance.c:1940 +#: ../src/iop/colorbalance.c:1915 msgid "saturation correction after the color balance" msgstr "" -#: ../src/iop/colorbalance.c:1945 +#: ../src/iop/colorbalance.c:1920 msgid "adjust to match a neutral tone" msgstr "" #. is set in _configure_slider_blocks -#: ../src/iop/colorbalance.c:2003 +#: ../src/iop/colorbalance.c:1978 msgid "click to cycle layout" msgstr "" -#: ../src/iop/colorbalance.c:2037 +#: ../src/iop/colorbalance.c:2012 msgid "factor" msgstr "" -#: ../src/iop/colorbalance.c:2051 +#: ../src/iop/colorbalance.c:2026 msgid "select the hue" msgstr "" -#: ../src/iop/colorbalance.c:2063 +#: ../src/iop/colorbalance.c:2038 msgid "select the saturation" msgstr "" -#: ../src/iop/colorbalance.c:2082 +#: ../src/iop/colorbalance.c:2057 msgid "factor of lift/offset" msgstr "" -#: ../src/iop/colorbalance.c:2083 +#: ../src/iop/colorbalance.c:2058 msgid "factor of red for lift/offset" msgstr "" -#: ../src/iop/colorbalance.c:2084 +#: ../src/iop/colorbalance.c:2059 msgid "factor of green for lift/offset" msgstr "" -#: ../src/iop/colorbalance.c:2085 +#: ../src/iop/colorbalance.c:2060 msgid "factor of blue for lift/offset" msgstr "" -#: ../src/iop/colorbalance.c:2088 +#: ../src/iop/colorbalance.c:2063 msgid "factor of gamma/power" msgstr "" -#: ../src/iop/colorbalance.c:2089 +#: ../src/iop/colorbalance.c:2064 msgid "factor of red for gamma/power" msgstr "" -#: ../src/iop/colorbalance.c:2090 +#: ../src/iop/colorbalance.c:2065 msgid "factor of green for gamma/power" msgstr "" -#: ../src/iop/colorbalance.c:2091 +#: ../src/iop/colorbalance.c:2066 msgid "factor of blue for gamma/power" msgstr "" -#: ../src/iop/colorbalance.c:2094 +#: ../src/iop/colorbalance.c:2069 msgid "factor of gain/slope" msgstr "" -#: ../src/iop/colorbalance.c:2095 +#: ../src/iop/colorbalance.c:2070 msgid "factor of red for gain/slope" msgstr "" -#: ../src/iop/colorbalance.c:2096 +#: ../src/iop/colorbalance.c:2071 msgid "factor of green for gain/slope" msgstr "" -#: ../src/iop/colorbalance.c:2097 +#: ../src/iop/colorbalance.c:2072 msgid "factor of blue for gain/slope" msgstr "" -#: ../src/iop/colorbalance.c:2106 +#: ../src/iop/colorbalance.c:2081 msgctxt "section" msgid "auto optimizers" msgstr "" -#: ../src/iop/colorbalance.c:2111 +#: ../src/iop/colorbalance.c:2086 msgid "fit the whole histogram and center the average luma" msgstr "" -#: ../src/iop/colorbalance.c:2117 +#: ../src/iop/colorbalance.c:2092 msgid "optimize the RGB curves to remove color casts" msgstr "" @@ -13677,259 +14164,259 @@ "shadows, mid-tones and highlights" msgstr "" -#: ../src/iop/colorbalancergb.c:443 +#: ../src/iop/colorbalancergb.c:536 msgid "add basic colorfulness (legacy)" msgstr "" -#: ../src/iop/colorbalancergb.c:452 +#: ../src/iop/colorbalancergb.c:545 msgid "basic colorfulness: natural skin" msgstr "" -#: ../src/iop/colorbalancergb.c:458 +#: ../src/iop/colorbalancergb.c:551 msgid "basic colorfulness: vibrant colors" msgstr "" -#: ../src/iop/colorbalancergb.c:464 +#: ../src/iop/colorbalancergb.c:557 msgid "basic colorfulness: standard" msgstr "" -#: ../src/iop/colorbalancergb.c:937 +#: ../src/iop/colorbalancergb.c:1022 msgid "colorbalance works only on RGB input" msgstr "" -#: ../src/iop/colorbalancergb.c:1506 ../src/iop/colorzones.c:2164 -#: ../src/iop/retouch.c:1884 ../src/iop/toneequal.c:1966 +#: ../src/iop/colorbalancergb.c:1577 ../src/iop/colorzones.c:2394 +#: ../src/iop/retouch.c:2069 ../src/iop/toneequal.c:1996 msgid "cannot display masks when the blending mask is displayed" msgstr "" #. Page master -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "master" msgstr "" -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "global grading" msgstr "" -#: ../src/iop/colorbalancergb.c:1880 +#: ../src/iop/colorbalancergb.c:1951 msgid "rotate all hues by an angle, at the same luminance" msgstr "" -#: ../src/iop/colorbalancergb.c:1886 +#: ../src/iop/colorbalancergb.c:1957 msgid "increase colorfulness mostly on low-chroma colors" msgstr "" -#: ../src/iop/colorbalancergb.c:1892 +#: ../src/iop/colorbalancergb.c:1963 msgid "increase the contrast at constant chromaticity" msgstr "" -#: ../src/iop/colorbalancergb.c:1894 +#: ../src/iop/colorbalancergb.c:1965 msgctxt "section" msgid "linear chroma grading" msgstr "" -#: ../src/iop/colorbalancergb.c:1901 +#: ../src/iop/colorbalancergb.c:1972 msgid "increase colorfulness at same luminance globally" msgstr "" -#: ../src/iop/colorbalancergb.c:1906 +#: ../src/iop/colorbalancergb.c:1977 msgid "increase colorfulness at same luminance mostly in shadows" msgstr "" -#: ../src/iop/colorbalancergb.c:1911 +#: ../src/iop/colorbalancergb.c:1982 msgid "increase colorfulness at same luminance mostly in mid-tones" msgstr "" -#: ../src/iop/colorbalancergb.c:1916 +#: ../src/iop/colorbalancergb.c:1987 msgid "increase colorfulness at same luminance mostly in highlights" msgstr "" -#: ../src/iop/colorbalancergb.c:1918 +#: ../src/iop/colorbalancergb.c:1989 msgctxt "section" msgid "perceptual saturation grading" msgstr "" -#: ../src/iop/colorbalancergb.c:1924 +#: ../src/iop/colorbalancergb.c:1995 msgid "add or remove saturation by an absolute amount" msgstr "" -#: ../src/iop/colorbalancergb.c:1929 ../src/iop/colorbalancergb.c:1934 -#: ../src/iop/colorbalancergb.c:1939 +#: ../src/iop/colorbalancergb.c:2000 ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2010 msgid "" "increase or decrease saturation proportionally to the original pixel " "saturation" msgstr "" -#: ../src/iop/colorbalancergb.c:1941 +#: ../src/iop/colorbalancergb.c:2012 msgctxt "section" msgid "perceptual brilliance grading" msgstr "" -#: ../src/iop/colorbalancergb.c:1942 +#: ../src/iop/colorbalancergb.c:2013 msgid "brilliance" msgstr "" -#: ../src/iop/colorbalancergb.c:1947 +#: ../src/iop/colorbalancergb.c:2018 msgid "add or remove brilliance by an absolute amount" msgstr "" -#: ../src/iop/colorbalancergb.c:1952 ../src/iop/colorbalancergb.c:1957 -#: ../src/iop/colorbalancergb.c:1962 +#: ../src/iop/colorbalancergb.c:2023 ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2033 msgid "" "increase or decrease brilliance proportionally to the original pixel " "brilliance" msgstr "" #. Page 4-ways -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "4 ways" msgstr "" -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "selective color grading" msgstr "" -#: ../src/iop/colorbalancergb.c:1967 +#: ../src/iop/colorbalancergb.c:2038 msgctxt "section" msgid "global offset" msgstr "" -#: ../src/iop/colorbalancergb.c:1974 +#: ../src/iop/colorbalancergb.c:2045 msgid "global luminance offset" msgstr "" -#: ../src/iop/colorbalancergb.c:1979 +#: ../src/iop/colorbalancergb.c:2050 msgid "hue of the global color offset" msgstr "" -#: ../src/iop/colorbalancergb.c:1985 +#: ../src/iop/colorbalancergb.c:2056 msgid "chroma of the global color offset" msgstr "" -#: ../src/iop/colorbalancergb.c:1987 +#: ../src/iop/colorbalancergb.c:2058 msgctxt "section" msgid "shadows lift" msgstr "" -#: ../src/iop/colorbalancergb.c:1988 +#: ../src/iop/colorbalancergb.c:2059 msgid "lift" msgstr "" -#: ../src/iop/colorbalancergb.c:1994 +#: ../src/iop/colorbalancergb.c:2065 msgid "luminance gain in shadows" msgstr "" -#: ../src/iop/colorbalancergb.c:1999 +#: ../src/iop/colorbalancergb.c:2070 msgid "hue of the color gain in shadows" msgstr "" -#: ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2076 msgid "chroma of the color gain in shadows" msgstr "" -#: ../src/iop/colorbalancergb.c:2007 +#: ../src/iop/colorbalancergb.c:2078 msgctxt "section" msgid "highlights gain" msgstr "" -#: ../src/iop/colorbalancergb.c:2008 +#: ../src/iop/colorbalancergb.c:2079 msgid "gain" msgstr "" -#: ../src/iop/colorbalancergb.c:2014 +#: ../src/iop/colorbalancergb.c:2085 msgid "luminance gain in highlights" msgstr "" -#: ../src/iop/colorbalancergb.c:2019 +#: ../src/iop/colorbalancergb.c:2090 msgid "hue of the color gain in highlights" msgstr "" -#: ../src/iop/colorbalancergb.c:2025 +#: ../src/iop/colorbalancergb.c:2096 msgid "chroma of the color gain in highlights" msgstr "" -#: ../src/iop/colorbalancergb.c:2027 +#: ../src/iop/colorbalancergb.c:2098 msgctxt "section" msgid "power" msgstr "" -#: ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2099 msgid "power" msgstr "" -#: ../src/iop/colorbalancergb.c:2034 +#: ../src/iop/colorbalancergb.c:2105 msgid "luminance exponent in mid-tones" msgstr "" -#: ../src/iop/colorbalancergb.c:2039 +#: ../src/iop/colorbalancergb.c:2110 msgid "hue of the color exponent in mid-tones" msgstr "" -#: ../src/iop/colorbalancergb.c:2045 +#: ../src/iop/colorbalancergb.c:2116 msgid "chroma of the color exponent in mid-tones" msgstr "" #. Page masks -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "masks" msgstr "" -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "isolate luminances" msgstr "" -#: ../src/iop/colorbalancergb.c:2052 +#: ../src/iop/colorbalancergb.c:2123 msgid "choose in which uniform color space the saturation is computed" msgstr "" -#: ../src/iop/colorbalancergb.c:2054 +#: ../src/iop/colorbalancergb.c:2125 msgctxt "section" msgid "luminance ranges" msgstr "" -#: ../src/iop/colorbalancergb.c:2065 +#: ../src/iop/colorbalancergb.c:2136 msgid "weight of the shadows over the whole tonal range" msgstr "" -#: ../src/iop/colorbalancergb.c:2073 +#: ../src/iop/colorbalancergb.c:2144 msgid "position of the middle-gray reference for masking" msgstr "" -#: ../src/iop/colorbalancergb.c:2081 +#: ../src/iop/colorbalancergb.c:2152 msgid "weights of highlights over the whole tonal range" msgstr "" -#: ../src/iop/colorbalancergb.c:2086 +#: ../src/iop/colorbalancergb.c:2157 msgctxt "section" msgid "threshold" msgstr "" -#: ../src/iop/colorbalancergb.c:2091 +#: ../src/iop/colorbalancergb.c:2162 msgid "peak white luminance value used to normalize the power function" msgstr "" -#: ../src/iop/colorbalancergb.c:2097 +#: ../src/iop/colorbalancergb.c:2168 msgid "peak gray luminance value used to normalize the power function" msgstr "" -#: ../src/iop/colorbalancergb.c:2099 +#: ../src/iop/colorbalancergb.c:2170 msgctxt "section" msgid "mask preview settings" msgstr "" -#: ../src/iop/colorbalancergb.c:2102 +#: ../src/iop/colorbalancergb.c:2173 msgid "checkerboard color 1" msgstr "" -#: ../src/iop/colorbalancergb.c:2105 ../src/iop/colorbalancergb.c:2114 +#: ../src/iop/colorbalancergb.c:2176 ../src/iop/colorbalancergb.c:2185 msgid "select color of the checkerboard from a swatch" msgstr "" -#: ../src/iop/colorbalancergb.c:2111 +#: ../src/iop/colorbalancergb.c:2182 msgid "checkerboard color 2" msgstr "" -#: ../src/iop/colorbalancergb.c:2121 +#: ../src/iop/colorbalancergb.c:2192 msgid "checkerboard size" msgstr "" @@ -13946,11 +14433,11 @@ msgstr "" #: ../src/iop/colorchecker.c:131 ../src/iop/colorchecker.c:133 -#: ../src/iop/colorize.c:106 ../src/iop/colormapping.c:154 -#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:136 -#: ../src/iop/colorzones.c:146 ../src/iop/defringe.c:83 ../src/iop/levels.c:139 -#: ../src/iop/monochrome.c:99 ../src/iop/shadhi.c:198 -#: ../src/iop/tonecurve.c:212 ../src/iop/vibrance.c:96 +#: ../src/iop/colorize.c:99 ../src/iop/colormapping.c:154 +#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:121 +#: ../src/iop/colorzones.c:147 ../src/iop/defringe.c:83 ../src/iop/levels.c:141 +#: ../src/iop/monochrome.c:101 ../src/iop/shadhi.c:145 +#: ../src/iop/tonecurve.c:185 ../src/iop/vibrance.c:98 msgid "linear or non-linear, Lab, display-referred" msgstr "" @@ -13958,40 +14445,40 @@ msgid "defined by profile, Lab" msgstr "" -#: ../src/iop/colorchecker.c:294 +#: ../src/iop/colorchecker.c:308 msgid "it8 skin tones" msgstr "" -#: ../src/iop/colorchecker.c:310 +#: ../src/iop/colorchecker.c:324 msgid "Helmholtz/Kohlrausch monochrome" msgstr "" -#: ../src/iop/colorchecker.c:327 +#: ../src/iop/colorchecker.c:341 msgid "Fuji Astia emulation" msgstr "" -#: ../src/iop/colorchecker.c:341 +#: ../src/iop/colorchecker.c:355 msgid "Fuji Classic Chrome emulation" msgstr "" -#: ../src/iop/colorchecker.c:355 +#: ../src/iop/colorchecker.c:369 msgid "Fuji Monochrome emulation" msgstr "" -#: ../src/iop/colorchecker.c:369 +#: ../src/iop/colorchecker.c:383 msgid "Fuji Provia emulation" msgstr "" -#: ../src/iop/colorchecker.c:383 +#: ../src/iop/colorchecker.c:397 msgid "Fuji Velvia emulation" msgstr "" -#: ../src/iop/colorchecker.c:841 ../src/iop/colorchecker.c:1436 +#: ../src/iop/colorchecker.c:846 ../src/iop/colorchecker.c:1441 #, c-format msgid "patch #%d" msgstr "" -#: ../src/iop/colorchecker.c:1283 +#: ../src/iop/colorchecker.c:1288 #, c-format msgid "" "(%2.2f %2.2f %2.2f)\n" @@ -14002,43 +14489,43 @@ "shift+click while color picking to replace patch" msgstr "" -#: ../src/iop/colorchecker.c:1431 +#: ../src/iop/colorchecker.c:1436 msgid "patch" msgstr "" -#: ../src/iop/colorchecker.c:1432 +#: ../src/iop/colorchecker.c:1437 msgid "color checker patch" msgstr "" -#: ../src/iop/colorchecker.c:1446 +#: ../src/iop/colorchecker.c:1451 msgid "" "adjust target color Lab 'L' channel\n" "lower values darken target color while higher brighten it" msgstr "" -#: ../src/iop/colorchecker.c:1454 +#: ../src/iop/colorchecker.c:1459 msgid "" "adjust target color Lab 'a' channel\n" "lower values shift target color towards greens while higher shift towards " "magentas" msgstr "" -#: ../src/iop/colorchecker.c:1457 +#: ../src/iop/colorchecker.c:1462 msgid "green-magenta offset" msgstr "" -#: ../src/iop/colorchecker.c:1466 +#: ../src/iop/colorchecker.c:1471 msgid "" "adjust target color Lab 'b' channel\n" "lower values shift target color towards blues while higher shift towards " "yellows" msgstr "" -#: ../src/iop/colorchecker.c:1469 +#: ../src/iop/colorchecker.c:1474 msgid "blue-yellow offset" msgstr "" -#: ../src/iop/colorchecker.c:1478 +#: ../src/iop/colorchecker.c:1483 msgid "" "adjust target color saturation\n" "adjusts 'a' and 'b' channels of target color in Lab space simultaneously\n" @@ -14046,38 +14533,38 @@ "higher saturation" msgstr "" -#: ../src/iop/colorchecker.c:1487 +#: ../src/iop/colorchecker.c:1492 msgid "target color" msgstr "" -#: ../src/iop/colorchecker.c:1490 +#: ../src/iop/colorchecker.c:1495 msgid "" "control target color of the patches\n" "relative - target color is relative from the patch original color\n" "absolute - target color is absolute Lab value" msgstr "" -#: ../src/iop/colorchecker.c:1494 +#: ../src/iop/colorchecker.c:1499 msgid "absolute" msgstr "" -#: ../src/iop/colorcontrast.c:85 +#: ../src/iop/colorcontrast.c:77 msgid "color contrast" msgstr "" -#: ../src/iop/colorcontrast.c:95 +#: ../src/iop/colorcontrast.c:87 msgid "" "increase saturation and separation between\n" "opposite colors" msgstr "" -#: ../src/iop/colorcontrast.c:324 +#: ../src/iop/colorcontrast.c:330 msgid "" "steepness of the a* curve in Lab\n" "lower values desaturate greens and magenta while higher saturate them" msgstr "" -#: ../src/iop/colorcontrast.c:331 +#: ../src/iop/colorcontrast.c:337 msgid "" "steepness of the b* curve in Lab\n" "lower values desaturate blues and yellows while higher saturate them" @@ -14091,25 +14578,25 @@ msgid "correct white balance selectively for blacks and whites" msgstr "" -#: ../src/iop/colorcorrection.c:107 +#: ../src/iop/colorcorrection.c:109 msgid "warm tone" msgstr "" -#: ../src/iop/colorcorrection.c:115 +#: ../src/iop/colorcorrection.c:117 msgid "warming filter" msgstr "" -#: ../src/iop/colorcorrection.c:123 +#: ../src/iop/colorcorrection.c:125 msgid "cooling filter" msgstr "" -#: ../src/iop/colorcorrection.c:257 +#: ../src/iop/colorcorrection.c:250 msgid "" "drag the line for split-toning. bright means highlights, dark means shadows. " "use mouse wheel to change saturation." msgstr "" -#: ../src/iop/colorcorrection.c:276 +#: ../src/iop/colorcorrection.c:269 msgid "set the global saturation" msgstr "" @@ -14124,7 +14611,7 @@ msgstr "" #: ../src/iop/colorin.c:133 ../src/iop/colorout.c:89 ../src/iop/demosaic.c:293 -#: ../src/iop/rawprepare.c:158 +#: ../src/iop/rawprepare.c:174 msgid "mandatory" msgstr "" @@ -14132,31 +14619,31 @@ msgid "defined by profile" msgstr "" -#: ../src/iop/colorin.c:542 +#: ../src/iop/colorin.c:582 #, c-format msgid "" "can't extract matrix from colorspace `%s', it will be replaced by Rec2020 " "RGB!" msgstr "" -#: ../src/iop/colorin.c:1424 +#: ../src/iop/colorin.c:1362 #, c-format msgid "`%s' color matrix not found!" msgstr "" -#: ../src/iop/colorin.c:1463 +#: ../src/iop/colorin.c:1401 msgid "input profile could not be generated!" msgstr "" -#: ../src/iop/colorin.c:1560 +#: ../src/iop/colorin.c:1498 msgid "unsupported input profile has been replaced by linear Rec709 RGB!" msgstr "" -#: ../src/iop/colorin.c:1844 +#: ../src/iop/colorin.c:1782 msgid "external ICC profiles" msgstr "" -#: ../src/iop/colorin.c:1889 +#: ../src/iop/colorin.c:1827 #, c-format msgid "" "embedded ICC profile properties:\n" @@ -14170,43 +14657,43 @@ "\n" msgstr "" -#: ../src/iop/colorin.c:2084 +#: ../src/iop/colorin.c:2022 msgid "input profile" msgstr "" -#: ../src/iop/colorin.c:2088 +#: ../src/iop/colorin.c:2026 msgid "working profile" msgstr "" -#: ../src/iop/colorin.c:2097 +#: ../src/iop/colorin.c:2035 msgid "working ICC profiles" msgstr "" -#: ../src/iop/colorin.c:2109 +#: ../src/iop/colorin.c:2047 msgid "confine Lab values to gamut of RGB color space" msgstr "" -#: ../src/iop/colorize.c:84 +#: ../src/iop/colorize.c:75 msgid "colorize" msgstr "" -#: ../src/iop/colorize.c:104 +#: ../src/iop/colorize.c:97 msgid "overlay a solid color on the image" msgstr "" -#: ../src/iop/colorize.c:341 ../src/iop/splittoning.c:485 +#: ../src/iop/colorize.c:354 ../src/iop/splittoning.c:481 msgid "select the hue tone" msgstr "" -#: ../src/iop/colorize.c:347 +#: ../src/iop/colorize.c:360 msgid "select the saturation shadow tone" msgstr "" -#: ../src/iop/colorize.c:351 +#: ../src/iop/colorize.c:364 msgid "lightness of color" msgstr "" -#: ../src/iop/colorize.c:355 +#: ../src/iop/colorize.c:368 msgid "mix value of source lightness" msgstr "" @@ -14219,41 +14706,41 @@ "transfer a color palette and tonal repartition from one image to another" msgstr "" -#: ../src/iop/colormapping.c:1030 +#: ../src/iop/colormapping.c:1019 msgid "source clusters:" msgstr "" -#: ../src/iop/colormapping.c:1036 +#: ../src/iop/colormapping.c:1025 msgid "target clusters:" msgstr "" -#: ../src/iop/colormapping.c:1045 +#: ../src/iop/colormapping.c:1034 msgid "acquire as source" msgstr "" -#: ../src/iop/colormapping.c:1049 +#: ../src/iop/colormapping.c:1038 msgid "analyze this image as a source image" msgstr "" -#: ../src/iop/colormapping.c:1051 +#: ../src/iop/colormapping.c:1040 msgid "acquire as target" msgstr "" -#: ../src/iop/colormapping.c:1055 +#: ../src/iop/colormapping.c:1044 msgid "analyze this image as a target image" msgstr "" -#: ../src/iop/colormapping.c:1058 +#: ../src/iop/colormapping.c:1047 msgid "number of clusters to find in image. value change resets all clusters" msgstr "" -#: ../src/iop/colormapping.c:1061 +#: ../src/iop/colormapping.c:1050 msgid "" "how clusters are mapped. low values: based on color proximity, high values: " "based on color dominance" msgstr "" -#: ../src/iop/colormapping.c:1066 +#: ../src/iop/colormapping.c:1055 msgid "level of histogram equalization" msgstr "" @@ -14271,112 +14758,112 @@ msgid "non-linear, RGB or Lab, display-referred" msgstr "" -#: ../src/iop/colorout.c:679 +#: ../src/iop/colorout.c:695 msgid "missing output profile has been replaced by sRGB!" msgstr "" -#: ../src/iop/colorout.c:701 +#: ../src/iop/colorout.c:717 msgid "missing softproof profile has been replaced by sRGB!" msgstr "" -#: ../src/iop/colorout.c:744 +#: ../src/iop/colorout.c:760 msgid "unsupported output profile has been replaced by sRGB!" msgstr "" -#: ../src/iop/colorout.c:869 +#: ../src/iop/colorout.c:885 msgid "output intent" msgstr "" -#: ../src/iop/colorout.c:870 +#: ../src/iop/colorout.c:886 msgid "rendering intent" msgstr "" -#: ../src/iop/colorout.c:872 ../src/libs/export.c:1246 +#: ../src/iop/colorout.c:888 ../src/libs/export.c:1358 #: ../src/libs/print_settings.c:2475 ../src/libs/print_settings.c:2824 -#: ../src/views/darkroom.c:2518 ../src/views/lighttable.c:1176 +#: ../src/views/darkroom.c:2359 ../src/views/lighttable.c:1176 msgid "perceptual" msgstr "" -#: ../src/iop/colorout.c:873 ../src/libs/export.c:1247 +#: ../src/iop/colorout.c:889 ../src/libs/export.c:1359 #: ../src/libs/print_settings.c:2476 ../src/libs/print_settings.c:2825 -#: ../src/views/darkroom.c:2519 ../src/views/lighttable.c:1177 +#: ../src/views/darkroom.c:2360 ../src/views/lighttable.c:1177 msgid "relative colorimetric" msgstr "" -#: ../src/iop/colorout.c:874 ../src/libs/export.c:1248 +#: ../src/iop/colorout.c:890 ../src/libs/export.c:1360 #: ../src/libs/print_settings.c:2477 ../src/libs/print_settings.c:2826 -#: ../src/views/darkroom.c:2520 ../src/views/lighttable.c:1178 +#: ../src/views/darkroom.c:2361 ../src/views/lighttable.c:1178 msgctxt "rendering intent" msgid "saturation" msgstr "" -#: ../src/iop/colorout.c:875 ../src/libs/export.c:1249 +#: ../src/iop/colorout.c:891 ../src/libs/export.c:1361 #: ../src/libs/print_settings.c:2478 ../src/libs/print_settings.c:2827 -#: ../src/views/darkroom.c:2521 ../src/views/lighttable.c:1179 +#: ../src/views/darkroom.c:2362 ../src/views/lighttable.c:1179 msgid "absolute colorimetric" msgstr "" -#: ../src/iop/colorout.c:893 +#: ../src/iop/colorout.c:909 msgid "export ICC profiles" msgstr "" -#: ../src/iop/colorreconstruction.c:129 +#: ../src/iop/colorreconstruction.c:114 msgid "color reconstruction" msgstr "" -#: ../src/iop/colorreconstruction.c:134 +#: ../src/iop/colorreconstruction.c:119 msgid "recover clipped highlights by propagating surrounding colors" msgstr "" -#: ../src/iop/colorreconstruction.c:628 ../src/iop/colorreconstruction.c:1040 -#: ../src/iop/globaltonemap.c:193 ../src/iop/globaltonemap.c:362 -#: ../src/iop/hazeremoval.c:553 ../src/iop/hazeremoval.c:788 -#: ../src/iop/levels.c:336 +#: ../src/iop/colorreconstruction.c:647 ../src/iop/colorreconstruction.c:1053 +#: ../src/iop/globaltonemap.c:227 ../src/iop/globaltonemap.c:396 +#: ../src/iop/hazeremoval.c:541 ../src/iop/hazeremoval.c:776 +#: ../src/iop/levels.c:358 msgid "inconsistent output" msgstr "" -#: ../src/iop/colorreconstruction.c:666 +#: ../src/iop/colorreconstruction.c:685 msgid "module `color reconstruction' failed" msgstr "" -#: ../src/iop/colorreconstruction.c:1237 +#: ../src/iop/colorreconstruction.c:1246 msgid "spatial" msgstr "" -#: ../src/iop/colorreconstruction.c:1238 +#: ../src/iop/colorreconstruction.c:1247 msgid "range" msgstr "" -#: ../src/iop/colorreconstruction.c:1239 +#: ../src/iop/colorreconstruction.c:1248 msgid "precedence" msgstr "" -#: ../src/iop/colorreconstruction.c:1255 +#: ../src/iop/colorreconstruction.c:1264 msgid "pixels with lightness values above this threshold are corrected" msgstr "" -#: ../src/iop/colorreconstruction.c:1256 +#: ../src/iop/colorreconstruction.c:1265 msgid "how far to look for replacement colors in spatial dimensions" msgstr "" -#: ../src/iop/colorreconstruction.c:1257 +#: ../src/iop/colorreconstruction.c:1266 msgid "how far to look for replacement colors in the luminance dimension" msgstr "" -#: ../src/iop/colorreconstruction.c:1258 +#: ../src/iop/colorreconstruction.c:1267 msgid "if and how to give precedence to specific replacement colors" msgstr "" -#: ../src/iop/colorreconstruction.c:1259 +#: ../src/iop/colorreconstruction.c:1268 msgid "the hue tone which should be given precedence over other hue tones" msgstr "" -#: ../src/iop/colorreconstruction.c:1261 ../src/iop/demosaic.c:1277 -#: ../src/iop/highlights.c:1168 +#: ../src/iop/colorreconstruction.c:1270 ../src/iop/demosaic.c:1324 +#: ../src/iop/highlights.c:1258 msgid "not applicable" msgstr "" -#: ../src/iop/colorreconstruction.c:1262 +#: ../src/iop/colorreconstruction.c:1271 msgid "no highlights reconstruction for monochrome images" msgstr "" @@ -14388,50 +14875,50 @@ msgid "this module is deprecated. better use color mapping module instead." msgstr "" -#: ../src/iop/colortransfer.c:439 +#: ../src/iop/colortransfer.c:441 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" "and move to the new color mapping module." msgstr "" -#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2332 +#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2573 msgid "color zones" msgstr "" -#: ../src/iop/colorzones.c:144 +#: ../src/iop/colorzones.c:145 msgid "selectively shift hues, chroma and lightness of pixels" msgstr "" -#: ../src/iop/colorzones.c:606 +#: ../src/iop/colorzones.c:684 msgid "B&W: with red" msgstr "" -#: ../src/iop/colorzones.c:629 +#: ../src/iop/colorzones.c:707 msgid "B&W: with skin tones" msgstr "" -#: ../src/iop/colorzones.c:652 +#: ../src/iop/colorzones.c:732 msgid "polarizing filter" msgstr "" -#: ../src/iop/colorzones.c:673 +#: ../src/iop/colorzones.c:753 msgid "natural skin tones" msgstr "" -#: ../src/iop/colorzones.c:704 +#: ../src/iop/colorzones.c:784 msgid "B&W: film" msgstr "" -#: ../src/iop/colorzones.c:724 +#: ../src/iop/colorzones.c:804 msgid "HSL base setting" msgstr "" -#: ../src/iop/colorzones.c:2264 +#: ../src/iop/colorzones.c:2500 msgid "orange" msgstr "" -#: ../src/iop/colorzones.c:2421 ../src/iop/rgbcurve.c:1375 +#: ../src/iop/colorzones.c:2673 ../src/iop/rgbcurve.c:1375 msgid "" "create a curve based on an area from the image\n" "drag to create a flat curve\n" @@ -14439,48 +14926,48 @@ "shift+drag to create a negative curve" msgstr "" -#: ../src/iop/colorzones.c:2425 ../src/iop/rgbcurve.c:1379 +#: ../src/iop/colorzones.c:2677 ../src/iop/rgbcurve.c:1379 msgid "create curve" msgstr "" #. edit by area -#: ../src/iop/colorzones.c:2442 +#: ../src/iop/colorzones.c:2696 msgid "edit by area" msgstr "" -#: ../src/iop/colorzones.c:2447 +#: ../src/iop/colorzones.c:2702 msgid "edit the curve nodes by area" msgstr "" -#: ../src/iop/colorzones.c:2454 +#: ../src/iop/colorzones.c:2710 msgid "display selection" msgstr "" -#: ../src/iop/colorzones.c:2463 +#: ../src/iop/colorzones.c:2722 msgid "choose selection criterion, will be the abscissa in the graph" msgstr "" -#: ../src/iop/colorzones.c:2466 +#: ../src/iop/colorzones.c:2725 msgid "choose between a smoother or stronger effect" msgstr "" -#: ../src/iop/colorzones.c:2494 ../src/iop/rgbcurve.c:1410 -#: ../src/iop/tonecurve.c:1172 +#: ../src/iop/colorzones.c:2762 ../src/iop/rgbcurve.c:1410 +#: ../src/iop/tonecurve.c:1194 msgid "interpolation method" msgstr "" -#: ../src/iop/colorzones.c:2496 ../src/iop/rgbcurve.c:1412 -#: ../src/iop/tonecurve.c:1174 +#: ../src/iop/colorzones.c:2764 ../src/iop/rgbcurve.c:1412 +#: ../src/iop/tonecurve.c:1196 msgid "centripetal spline" msgstr "" -#: ../src/iop/colorzones.c:2497 ../src/iop/rgbcurve.c:1413 -#: ../src/iop/tonecurve.c:1175 +#: ../src/iop/colorzones.c:2765 ../src/iop/rgbcurve.c:1413 +#: ../src/iop/tonecurve.c:1197 msgid "monotonic spline" msgstr "" -#: ../src/iop/colorzones.c:2500 ../src/iop/rgbcurve.c:1416 -#: ../src/iop/tonecurve.c:1177 +#: ../src/iop/colorzones.c:2768 ../src/iop/rgbcurve.c:1416 +#: ../src/iop/tonecurve.c:1199 msgid "" "change this method if you see oscillations or cusps in the curve\n" "- cubic spline is better to produce smooth curves but oscillates when nodes " @@ -14491,23 +14978,23 @@ "exp)" msgstr "" -#: ../src/iop/crop.c:132 +#: ../src/iop/crop.c:122 msgid "crop" msgstr "" -#: ../src/iop/crop.c:137 +#: ../src/iop/crop.c:127 msgid "reframe|distortion" msgstr "" -#: ../src/iop/crop.c:143 +#: ../src/iop/crop.c:133 msgid "change the framing" msgstr "" -#: ../src/iop/crop.c:1667 +#: ../src/iop/crop.c:1651 msgid "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag" msgstr "" -#: ../src/iop/crop.c:1676 +#: ../src/iop/crop.c:1660 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag" @@ -14527,7 +15014,7 @@ "instead." msgstr "" -#: ../src/iop/defringe.c:415 +#: ../src/iop/defringe.c:417 msgid "" "method for color protection:\n" " - global average: fast, might show slightly wrong previews in high " @@ -14539,11 +15026,11 @@ " - static: fast, only uses the threshold as a static limit" msgstr "" -#: ../src/iop/defringe.c:422 +#: ../src/iop/defringe.c:424 msgid "radius for detecting fringe" msgstr "" -#: ../src/iop/defringe.c:425 +#: ../src/iop/defringe.c:427 msgid "threshold for defringe, higher values mean less defringing" msgstr "" @@ -14555,12 +15042,12 @@ msgid "reconstruct full RGB pixels from a sensor color filter array reading" msgstr "" -#: ../src/iop/demosaic.c:1086 +#: ../src/iop/demosaic.c:1133 #, c-format msgid "`%s' color matrix not found for 4bayer image!" msgstr "" -#: ../src/iop/demosaic.c:1238 +#: ../src/iop/demosaic.c:1285 msgid "" "Bayer sensor demosaicing method, PPG and RCD are fast, AMaZE and LMMSE are " "slow.\n" @@ -14568,25 +15055,25 @@ "dual demosaicers double processing time." msgstr "" -#: ../src/iop/demosaic.c:1242 +#: ../src/iop/demosaic.c:1289 msgid "" "X-Trans sensor demosaicing method, Markesteijn 3-pass and frequency domain " "chroma are slow.\n" "dual demosaicers double processing time." msgstr "" -#: ../src/iop/demosaic.c:1248 +#: ../src/iop/demosaic.c:1295 msgid "Bayer4 sensor demosaicing methods." msgstr "" -#: ../src/iop/demosaic.c:1252 +#: ../src/iop/demosaic.c:1299 msgid "" "threshold for edge-aware median.\n" "set to 0.0 to switch off\n" "set to 1.0 to ignore edges" msgstr "" -#: ../src/iop/demosaic.c:1257 +#: ../src/iop/demosaic.c:1304 msgid "" "contrast threshold for dual demosaic.\n" "set to 0.0 for high frequency content\n" @@ -14594,91 +15081,91 @@ "toggle to visualize the mask" msgstr "" -#: ../src/iop/demosaic.c:1265 +#: ../src/iop/demosaic.c:1312 msgid "" "LMMSE refinement steps. the median steps average the output,\n" "refine adds some recalculation of red & blue channels" msgstr "" -#: ../src/iop/demosaic.c:1268 +#: ../src/iop/demosaic.c:1315 msgid "how many color smoothing median steps after demosaicing" msgstr "" -#: ../src/iop/demosaic.c:1271 +#: ../src/iop/demosaic.c:1318 msgid "green channels matching method" msgstr "" -#: ../src/iop/demosaic.c:1278 +#: ../src/iop/demosaic.c:1325 msgid "demosaicing is only used for color raw images" msgstr "" -#: ../src/iop/denoiseprofile.c:714 +#: ../src/iop/denoiseprofile.c:766 msgid "wavelets: chroma only" msgstr "" -#: ../src/iop/denoiseprofile.c:720 +#: ../src/iop/denoiseprofile.c:772 msgid "denoise (profiled)" msgstr "" -#: ../src/iop/denoiseprofile.c:726 +#: ../src/iop/denoiseprofile.c:778 msgid "denoise using noise statistics profiled on sensors" msgstr "" -#: ../src/iop/denoiseprofile.c:2846 +#: ../src/iop/denoiseprofile.c:2850 #, c-format msgid "found match for ISO %d" msgstr "" -#: ../src/iop/denoiseprofile.c:2855 +#: ../src/iop/denoiseprofile.c:2859 #, c-format msgid "interpolated from ISO %d and %d" msgstr "" -#: ../src/iop/denoiseprofile.c:3719 +#: ../src/iop/denoiseprofile.c:3723 msgid "Y0" msgstr "" -#: ../src/iop/denoiseprofile.c:3720 +#: ../src/iop/denoiseprofile.c:3724 msgid "U0V0" msgstr "" -#: ../src/iop/denoiseprofile.c:3760 +#: ../src/iop/denoiseprofile.c:3764 msgid "" "use only with a perfectly\n" "uniform image if you want to\n" "estimate the noise variance." msgstr "" -#: ../src/iop/denoiseprofile.c:3766 +#: ../src/iop/denoiseprofile.c:3770 msgid "variance red: " msgstr "" -#: ../src/iop/denoiseprofile.c:3770 +#: ../src/iop/denoiseprofile.c:3774 msgid "variance computed on the red channel" msgstr "" -#: ../src/iop/denoiseprofile.c:3775 +#: ../src/iop/denoiseprofile.c:3779 msgid "variance green: " msgstr "" -#: ../src/iop/denoiseprofile.c:3779 +#: ../src/iop/denoiseprofile.c:3783 msgid "variance computed on the green channel" msgstr "" -#: ../src/iop/denoiseprofile.c:3784 +#: ../src/iop/denoiseprofile.c:3788 msgid "variance blue: " msgstr "" -#: ../src/iop/denoiseprofile.c:3788 +#: ../src/iop/denoiseprofile.c:3792 msgid "variance computed on the blue channel" msgstr "" -#: ../src/iop/denoiseprofile.c:3799 ../src/libs/export.c:1208 +#: ../src/iop/denoiseprofile.c:3803 ../src/libs/export.c:1320 #: ../src/libs/print_settings.c:2418 ../src/libs/print_settings.c:2774 msgid "profile" msgstr "" -#: ../src/iop/denoiseprofile.c:3833 +#: ../src/iop/denoiseprofile.c:3837 msgid "" "adapt denoising according to the\n" "white balance coefficients.\n" @@ -14688,7 +15175,7 @@ "has been used with a color blending mode." msgstr "" -#: ../src/iop/denoiseprofile.c:3840 +#: ../src/iop/denoiseprofile.c:3844 msgid "" "fix bugs in Anscombe transform resulting\n" "in undersmoothing of the green channel in\n" @@ -14701,18 +15188,18 @@ "return back to old algorithm." msgstr "" -#: ../src/iop/denoiseprofile.c:3850 +#: ../src/iop/denoiseprofile.c:3854 msgid "profile used for variance stabilization" msgstr "" -#: ../src/iop/denoiseprofile.c:3852 +#: ../src/iop/denoiseprofile.c:3856 msgid "" "method used in the denoising core.\n" "non-local means works best for `lightness' blending,\n" "wavelets work best for `color' blending" msgstr "" -#: ../src/iop/denoiseprofile.c:3856 +#: ../src/iop/denoiseprofile.c:3860 msgid "" "color representation used within the algorithm.\n" "RGB keeps the RGB channels separated,\n" @@ -14720,7 +15207,7 @@ "denoise chroma and luma separately." msgstr "" -#: ../src/iop/denoiseprofile.c:3861 +#: ../src/iop/denoiseprofile.c:3865 msgid "" "radius of the patches to match.\n" "increase for more sharpness on strong edges, and better denoising of smooth " @@ -14729,21 +15216,21 @@ "weight slider." msgstr "" -#: ../src/iop/denoiseprofile.c:3867 +#: ../src/iop/denoiseprofile.c:3871 msgid "" "emergency use only: radius of the neighborhood to search patches in. " "increase for better denoising performance, but watch the long runtimes! " "large radii can be very slow. you have been warned" msgstr "" -#: ../src/iop/denoiseprofile.c:3873 +#: ../src/iop/denoiseprofile.c:3877 msgid "" "scattering of the neighborhood to search patches in.\n" "increase for better coarse-grain noise reduction.\n" "does not affect execution time." msgstr "" -#: ../src/iop/denoiseprofile.c:3877 +#: ../src/iop/denoiseprofile.c:3881 msgid "" "increase the weight of the central pixel\n" "of the patch in the patch comparison.\n" @@ -14751,11 +15238,11 @@ "is quite big." msgstr "" -#: ../src/iop/denoiseprofile.c:3881 +#: ../src/iop/denoiseprofile.c:3885 msgid "finetune denoising strength" msgstr "" -#: ../src/iop/denoiseprofile.c:3883 +#: ../src/iop/denoiseprofile.c:3887 msgid "" "controls the way parameters are autoset\n" "increase if shadows are not denoised enough\n" @@ -14763,21 +15250,21 @@ "this can happen if your picture is underexposed." msgstr "" -#: ../src/iop/denoiseprofile.c:3888 +#: ../src/iop/denoiseprofile.c:3892 msgid "" "finetune shadows denoising.\n" "decrease to denoise more aggressively\n" "dark areas of the image." msgstr "" -#: ../src/iop/denoiseprofile.c:3892 +#: ../src/iop/denoiseprofile.c:3896 msgid "" "correct color cast in shadows.\n" "decrease if shadows are too purple.\n" "increase if shadows are too green." msgstr "" -#: ../src/iop/denoiseprofile.c:3896 +#: ../src/iop/denoiseprofile.c:3900 msgid "" "upgrade the variance stabilizing algorithm.\n" "new algorithm extends the current one.\n" @@ -14802,80 +15289,80 @@ msgstr "" #. deblurring presets -#: ../src/iop/diffuse.c:219 +#: ../src/iop/diffuse.c:246 msgid "lens deblur: soft" msgstr "" -#: ../src/iop/diffuse.c:244 +#: ../src/iop/diffuse.c:271 msgid "lens deblur: medium" msgstr "" -#: ../src/iop/diffuse.c:269 +#: ../src/iop/diffuse.c:296 msgid "lens deblur: hard" msgstr "" -#: ../src/iop/diffuse.c:295 +#: ../src/iop/diffuse.c:322 msgid "dehaze" msgstr "" -#: ../src/iop/diffuse.c:321 +#: ../src/iop/diffuse.c:348 msgid "denoise: fine" msgstr "" -#: ../src/iop/diffuse.c:346 +#: ../src/iop/diffuse.c:373 msgid "denoise: medium" msgstr "" -#: ../src/iop/diffuse.c:371 +#: ../src/iop/diffuse.c:398 msgid "denoise: coarse" msgstr "" -#: ../src/iop/diffuse.c:446 +#: ../src/iop/diffuse.c:473 msgid "sharpen demosaicing: no AA filter" msgstr "" -#: ../src/iop/diffuse.c:472 +#: ../src/iop/diffuse.c:499 msgid "sharpen demosaicing: AA filter" msgstr "" -#: ../src/iop/diffuse.c:499 +#: ../src/iop/diffuse.c:526 msgid "simulate watercolor" msgstr "" -#: ../src/iop/diffuse.c:524 +#: ../src/iop/diffuse.c:551 msgid "simulate line drawing" msgstr "" -#: ../src/iop/diffuse.c:576 +#: ../src/iop/diffuse.c:603 msgid "inpaint highlights" msgstr "" #. fast presets for slow hardware -#: ../src/iop/diffuse.c:603 +#: ../src/iop/diffuse.c:630 msgid "sharpness: fast" msgstr "" -#: ../src/iop/diffuse.c:655 +#: ../src/iop/diffuse.c:682 msgid "sharpness: strong" msgstr "" -#: ../src/iop/diffuse.c:680 +#: ../src/iop/diffuse.c:707 msgid "local contrast: fast" msgstr "" -#: ../src/iop/diffuse.c:1391 ../src/iop/diffuse.c:1666 +#: ../src/iop/diffuse.c:1418 ../src/iop/diffuse.c:1693 msgid "diffuse/sharpen failed to allocate memory, check your RAM settings" msgstr "" #. Additional parameters #. Camera settings -#: ../src/iop/diffuse.c:1782 ../src/iop/splittoning.c:537 +#: ../src/iop/diffuse.c:1797 ../src/iop/splittoning.c:533 #: ../src/libs/camera.c:486 msgctxt "section" msgid "properties" msgstr "" -#: ../src/iop/diffuse.c:1788 +#: ../src/iop/diffuse.c:1803 msgid "" "more iterations make the effect stronger but the module slower.\n" "this is analogous to giving more time to the diffusion reaction.\n" @@ -14883,7 +15370,7 @@ "more iterations help reconstruction." msgstr "" -#: ../src/iop/diffuse.c:1797 +#: ../src/iop/diffuse.c:1812 msgid "" "main scale of the diffusion.\n" "zero makes diffusion act on the finest details more heavily.\n" @@ -14892,7 +15379,7 @@ "increase to act on local contrast instead." msgstr "" -#: ../src/iop/diffuse.c:1807 +#: ../src/iop/diffuse.c:1822 msgid "" "width of the diffusion around the central radius.\n" "high values diffuse on a large band of radii.\n" @@ -14901,12 +15388,12 @@ "the radius should be around the width of your lens blur." msgstr "" -#: ../src/iop/diffuse.c:1814 +#: ../src/iop/diffuse.c:1829 msgctxt "section" msgid "speed (sharpen ↔ diffuse)" msgstr "" -#: ../src/iop/diffuse.c:1821 +#: ../src/iop/diffuse.c:1836 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 1st order anisotropy (set below).\n" @@ -14916,7 +15403,7 @@ "zero does nothing." msgstr "" -#: ../src/iop/diffuse.c:1831 +#: ../src/iop/diffuse.c:1846 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 2nd order anisotropy (set below).\n" @@ -14926,7 +15413,7 @@ "zero does nothing." msgstr "" -#: ../src/iop/diffuse.c:1841 +#: ../src/iop/diffuse.c:1856 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 3rd order anisotropy (set below).\n" @@ -14936,7 +15423,7 @@ "zero does nothing." msgstr "" -#: ../src/iop/diffuse.c:1851 +#: ../src/iop/diffuse.c:1866 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 4th order anisotropy (set below).\n" @@ -14946,12 +15433,12 @@ "zero does nothing." msgstr "" -#: ../src/iop/diffuse.c:1857 +#: ../src/iop/diffuse.c:1872 msgctxt "section" msgid "direction" msgstr "" -#: ../src/iop/diffuse.c:1864 +#: ../src/iop/diffuse.c:1879 msgid "" "direction of 1st order speed (set above).\n" "\n" @@ -14960,7 +15447,7 @@ "zero affects both equally (isotropic)." msgstr "" -#: ../src/iop/diffuse.c:1873 +#: ../src/iop/diffuse.c:1888 msgid "" "direction of 2nd order speed (set above).\n" "\n" @@ -14969,7 +15456,7 @@ "zero affects both equally (isotropic)." msgstr "" -#: ../src/iop/diffuse.c:1882 +#: ../src/iop/diffuse.c:1897 msgid "" "direction of 3rd order speed (set above).\n" "\n" @@ -14978,7 +15465,7 @@ "zero affects both equally (isotropic)." msgstr "" -#: ../src/iop/diffuse.c:1891 +#: ../src/iop/diffuse.c:1906 msgid "" "direction of 4th order speed (set above).\n" "\n" @@ -14987,26 +15474,26 @@ "zero affects both equally (isotropic)." msgstr "" -#: ../src/iop/diffuse.c:1897 +#: ../src/iop/diffuse.c:1912 msgctxt "section" msgid "edge management" msgstr "" -#: ../src/iop/diffuse.c:1904 +#: ../src/iop/diffuse.c:1919 msgid "" "increase or decrease the sharpness of the highest frequencies.\n" "can be used to keep details after blooming,\n" "for standalone sharpening set speed to negative values." msgstr "" -#: ../src/iop/diffuse.c:1911 +#: ../src/iop/diffuse.c:1926 msgid "" "define the sensitivity of the variance penalty for edges.\n" "increase to exclude more edges from diffusion,\n" "if fringes or halos appear." msgstr "" -#: ../src/iop/diffuse.c:1918 +#: ../src/iop/diffuse.c:1933 msgid "" "define the variance threshold between edge amplification and penalty.\n" "decrease if you want pixels on smooth surfaces get a boost,\n" @@ -15014,12 +15501,12 @@ "if dark areas seem oversharpened compared to bright areas." msgstr "" -#: ../src/iop/diffuse.c:1924 +#: ../src/iop/diffuse.c:1939 msgctxt "section" msgid "diffusion spatiality" msgstr "" -#: ../src/iop/diffuse.c:1931 +#: ../src/iop/diffuse.c:1946 msgid "" "luminance threshold for the mask.\n" "0. disables the luminance masking and applies the module on the whole " @@ -15033,7 +15520,7 @@ msgstr "" #: ../src/iop/dither.c:112 -msgid "dithering|posterization|reduce bit-depth" +msgid "dithering|posterization|reduce bit depth" msgstr "" #: ../src/iop/dither.c:117 @@ -15047,23 +15534,23 @@ msgstr "" #. add the preset. -#: ../src/iop/dither.c:147 +#: ../src/iop/dither.c:149 msgid "dither" msgstr "" -#: ../src/iop/dither.c:759 +#: ../src/iop/dither.c:761 msgid "radius for blurring step" msgstr "" -#: ../src/iop/dither.c:771 +#: ../src/iop/dither.c:773 msgid "the gradient range where to apply random dither" msgstr "" -#: ../src/iop/dither.c:772 +#: ../src/iop/dither.c:774 msgid "gradient range" msgstr "" -#: ../src/iop/dither.c:780 +#: ../src/iop/dither.c:782 msgid "damping level of random dither" msgstr "" @@ -15071,12 +15558,12 @@ msgid "legacy equalizer" msgstr "" -#: ../src/iop/equalizer.c:110 +#: ../src/iop/equalizer.c:112 msgid "" "this module is deprecated. better use contrast equalizer module instead." msgstr "" -#: ../src/iop/equalizer.c:238 +#: ../src/iop/equalizer.c:240 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -15089,57 +15576,57 @@ "using a color-safe brightening similar to increasing ISO setting" msgstr "" -#: ../src/iop/exposure.c:279 +#: ../src/iop/exposure.c:301 msgid "magic lantern defaults" msgstr "" -#: ../src/iop/exposure.c:351 ../src/iop/rawoverexposed.c:135 -#: ../src/iop/rawoverexposed.c:254 +#: ../src/iop/exposure.c:373 ../src/iop/rawoverexposed.c:137 +#: ../src/iop/rawoverexposed.c:256 #, c-format msgid "failed to get raw buffer from image `%s'" msgstr "" -#: ../src/iop/exposure.c:629 +#: ../src/iop/exposure.c:647 #, no-c-format msgid "compensate camera exposure (%+.1f EV)" msgstr "" #. Write report in GUI -#: ../src/iop/exposure.c:813 +#: ../src/iop/exposure.c:831 #, c-format msgid "L : \t%.1f %%" msgstr "" -#: ../src/iop/exposure.c:945 ../src/libs/history.c:953 +#: ../src/iop/exposure.c:963 ../src/libs/history.c:953 #, c-format msgid "%.2f EV" msgstr "" -#: ../src/iop/exposure.c:1113 +#: ../src/iop/exposure.c:1131 msgid "" "automatically remove the camera exposure bias\n" "this is useful if you exposed the image to the right." msgstr "" -#: ../src/iop/exposure.c:1132 +#: ../src/iop/exposure.c:1150 #, no-c-format msgid "where in the histogram to meter for deflicking. E.g. 50% is median" msgstr "" -#: ../src/iop/exposure.c:1138 +#: ../src/iop/exposure.c:1156 msgid "" "where to place the exposure level for processed pics, EV below overexposure." msgstr "" -#: ../src/iop/exposure.c:1142 +#: ../src/iop/exposure.c:1160 msgid "computed EC: " msgstr "" -#: ../src/iop/exposure.c:1145 +#: ../src/iop/exposure.c:1163 msgid "what exposure correction has actually been used" msgstr "" -#: ../src/iop/exposure.c:1164 +#: ../src/iop/exposure.c:1182 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -15147,11 +15634,11 @@ "by pushing RGB values into negatives." msgstr "" -#: ../src/iop/exposure.c:1174 -msgid "spot exposure mapping" +#: ../src/iop/exposure.c:1192 +msgid "area exposure mapping" msgstr "" -#: ../src/iop/exposure.c:1180 +#: ../src/iop/exposure.c:1198 msgid "" "define a target brightness, in terms of exposure,\n" "for a selected region of the image (the control sample),\n" @@ -15161,7 +15648,7 @@ "consistently-lit surface over your series of images." msgstr "" -#: ../src/iop/exposure.c:1189 +#: ../src/iop/exposure.c:1207 msgid "" "\"correction\" automatically adjust exposure\n" "such that the input lightness is mapped to the target.\n" @@ -15169,11 +15656,11 @@ "the exposure compensation and can be used to define a target." msgstr "" -#: ../src/iop/exposure.c:1215 +#: ../src/iop/exposure.c:1233 msgid "L : \tN/A" msgstr "" -#: ../src/iop/exposure.c:1233 +#: ../src/iop/exposure.c:1251 msgid "the desired target exposure after mapping" msgstr "" @@ -15181,65 +15668,65 @@ msgid "this module is deprecated. better use filmic rgb module instead." msgstr "" -#: ../src/iop/filmic.c:304 +#: ../src/iop/filmic.c:333 msgid "09 EV (low-key)" msgstr "" -#: ../src/iop/filmic.c:312 +#: ../src/iop/filmic.c:341 msgid "10 EV (indoors)" msgstr "" -#: ../src/iop/filmic.c:320 +#: ../src/iop/filmic.c:349 msgid "11 EV (dim outdoors)" msgstr "" -#: ../src/iop/filmic.c:328 +#: ../src/iop/filmic.c:357 msgid "12 EV (outdoors)" msgstr "" -#: ../src/iop/filmic.c:336 +#: ../src/iop/filmic.c:365 msgid "13 EV (bright outdoors)" msgstr "" -#: ../src/iop/filmic.c:344 +#: ../src/iop/filmic.c:373 msgid "14 EV (backlighting)" msgstr "" -#: ../src/iop/filmic.c:352 +#: ../src/iop/filmic.c:381 msgid "15 EV (sunset)" msgstr "" -#: ../src/iop/filmic.c:360 +#: ../src/iop/filmic.c:389 msgid "16 EV (HDR)" msgstr "" -#: ../src/iop/filmic.c:368 +#: ../src/iop/filmic.c:397 msgid "18 EV (HDR++)" msgstr "" -#: ../src/iop/filmic.c:1480 +#: ../src/iop/filmic.c:1505 msgid "read-only graph, use the parameters below to set the nodes" msgstr "" -#: ../src/iop/filmic.c:1484 +#: ../src/iop/filmic.c:1509 msgctxt "section" msgid "logarithmic shaper" msgstr "" -#: ../src/iop/filmic.c:1492 +#: ../src/iop/filmic.c:1517 msgid "" "adjust to match the average luminance of the subject.\n" "except in back-lighting situations, this should be around 18%." msgstr "" -#: ../src/iop/filmic.c:1504 ../src/iop/filmicrgb.c:4442 +#: ../src/iop/filmic.c:1529 ../src/iop/filmicrgb.c:4506 msgid "" "number of stops between middle gray and pure white.\n" "this is a reading a lightmeter would give you on the scene.\n" "adjust so highlights clipping is avoided" msgstr "" -#: ../src/iop/filmic.c:1517 ../src/iop/filmicrgb.c:4453 +#: ../src/iop/filmic.c:1542 ../src/iop/filmicrgb.c:4517 msgid "" "number of stops between middle gray and pure black.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -15247,18 +15734,18 @@ "decrease to recover more details in low-lights." msgstr "" -#: ../src/iop/filmic.c:1529 +#: ../src/iop/filmic.c:1554 msgid "" -"enlarge or shrink the computed dynamic range.\n" +"increase or decrease the computed dynamic range.\n" "useful in conjunction with \"auto tune levels\"." msgstr "" -#: ../src/iop/filmic.c:1535 ../src/iop/filmicrgb.c:4467 -#: ../src/iop/profile_gamma.c:659 +#: ../src/iop/filmic.c:1560 ../src/iop/filmicrgb.c:4531 +#: ../src/iop/profile_gamma.c:673 msgid "auto tune levels" msgstr "" -#: ../src/iop/filmic.c:1538 +#: ../src/iop/filmic.c:1563 msgid "" "try to optimize the settings with some guessing.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -15266,35 +15753,35 @@ "but fails for high-keys and low-keys." msgstr "" -#: ../src/iop/filmic.c:1543 +#: ../src/iop/filmic.c:1568 msgctxt "section" msgid "filmic S curve" msgstr "" -#: ../src/iop/filmic.c:1550 ../src/iop/filmicrgb.c:4554 +#: ../src/iop/filmic.c:1575 ../src/iop/filmicrgb.c:4618 msgid "" "slope of the linear part of the curve\n" "affects mostly the mid-tones" msgstr "" #. geotagging -#: ../src/iop/filmic.c:1557 ../src/iop/filmicrgb.c:4563 -#: ../src/libs/metadata_view.c:157 +#: ../src/iop/filmic.c:1582 ../src/iop/filmicrgb.c:4627 +#: ../src/libs/metadata_view.c:161 msgid "latitude" msgstr "" -#: ../src/iop/filmic.c:1560 +#: ../src/iop/filmic.c:1585 msgid "" "width of the linear domain in the middle of the curve.\n" "increase to get more contrast at the extreme luminances.\n" "this has no effect on mid-tones." msgstr "" -#: ../src/iop/filmic.c:1567 +#: ../src/iop/filmic.c:1592 msgid "shadows/highlights balance" msgstr "" -#: ../src/iop/filmic.c:1570 ../src/iop/filmicrgb.c:4574 +#: ../src/iop/filmic.c:1595 ../src/iop/filmicrgb.c:4638 msgid "" "slides the latitude along the slope\n" "to give more room to shadows or highlights.\n" @@ -15302,14 +15789,14 @@ "at one extremity of the histogram." msgstr "" -#: ../src/iop/filmic.c:1580 +#: ../src/iop/filmic.c:1605 msgid "" "desaturates the input of the module globally.\n" "you need to set this value below 100%\n" "if the chrominance preservation is enabled." msgstr "" -#: ../src/iop/filmic.c:1590 +#: ../src/iop/filmic.c:1615 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -15317,75 +15804,75 @@ msgstr "" #. Add export intent combo -#: ../src/iop/filmic.c:1600 ../src/libs/export.c:1227 +#: ../src/iop/filmic.c:1625 ../src/libs/export.c:1339 #: ../src/libs/print_settings.c:2473 ../src/libs/print_settings.c:2820 -#: ../src/views/darkroom.c:2524 ../src/views/lighttable.c:1182 +#: ../src/views/darkroom.c:2365 ../src/views/lighttable.c:1182 msgid "intent" msgstr "" -#: ../src/iop/filmic.c:1601 +#: ../src/iop/filmic.c:1626 msgid "contrasted" msgstr "" #. cubic spline -#: ../src/iop/filmic.c:1602 +#: ../src/iop/filmic.c:1627 msgid "faded" msgstr "" #. centripetal spline -#: ../src/iop/filmic.c:1603 ../src/iop/profile_gamma.c:621 +#: ../src/iop/filmic.c:1628 ../src/iop/profile_gamma.c:635 msgid "linear" msgstr "" #. monotonic spline -#: ../src/iop/filmic.c:1604 +#: ../src/iop/filmic.c:1629 msgid "optimized" msgstr "" -#: ../src/iop/filmic.c:1606 +#: ../src/iop/filmic.c:1631 msgid "change this method if you see reversed contrast or faded blacks" msgstr "" #. Preserve color -#: ../src/iop/filmic.c:1610 +#: ../src/iop/filmic.c:1635 msgid "preserve the chrominance" msgstr "" -#: ../src/iop/filmic.c:1612 +#: ../src/iop/filmic.c:1637 msgid "" "ensure the original color are preserved.\n" "may reinforce chromatic aberrations.\n" "you need to manually tune the saturation when using this mode." msgstr "" -#: ../src/iop/filmic.c:1622 +#: ../src/iop/filmic.c:1647 msgctxt "section" msgid "destination/display" msgstr "" -#: ../src/iop/filmic.c:1640 ../src/iop/filmicrgb.c:4593 +#: ../src/iop/filmic.c:1665 ../src/iop/filmicrgb.c:4657 msgid "" "luminance of output pure black, this should be 0%\n" "except if you want a faded look" msgstr "" -#: ../src/iop/filmic.c:1649 ../src/iop/filmicrgb.c:4600 +#: ../src/iop/filmic.c:1674 ../src/iop/filmicrgb.c:4664 msgid "" "middle gray value of the target display or color space.\n" "you should never touch that unless you know what you are doing." msgstr "" -#: ../src/iop/filmic.c:1658 ../src/iop/filmicrgb.c:4607 +#: ../src/iop/filmic.c:1683 ../src/iop/filmicrgb.c:4671 msgid "" "luminance of output pure white, this should be 100%\n" "except if you want a faded look" msgstr "" -#: ../src/iop/filmic.c:1664 +#: ../src/iop/filmic.c:1689 msgid "target gamma" msgstr "" -#: ../src/iop/filmic.c:1666 +#: ../src/iop/filmic.c:1691 msgid "" "power or gamma of the transfer function\n" "of the display or color space.\n" @@ -15407,88 +15894,88 @@ "while preventing clipping in non-destructive ways" msgstr "" -#: ../src/iop/filmicrgb.c:1310 +#: ../src/iop/filmicrgb.c:1365 msgid "" "filmic highlights reconstruction failed to allocate memory, check your RAM " "settings" msgstr "" -#: ../src/iop/filmicrgb.c:2301 +#: ../src/iop/filmicrgb.c:2369 msgid "filmic highlights reconstruction failed to allocate memory on GPU" msgstr "" -#: ../src/iop/filmicrgb.c:2419 +#: ../src/iop/filmicrgb.c:2487 msgid "filmic works only on RGB input" msgstr "" -#: ../src/iop/filmicrgb.c:3484 +#: ../src/iop/filmicrgb.c:3548 msgid "look only" msgstr "" -#: ../src/iop/filmicrgb.c:3486 +#: ../src/iop/filmicrgb.c:3550 msgid "look + mapping (lin)" msgstr "" -#: ../src/iop/filmicrgb.c:3488 +#: ../src/iop/filmicrgb.c:3552 msgid "look + mapping (log)" msgstr "" -#: ../src/iop/filmicrgb.c:3490 +#: ../src/iop/filmicrgb.c:3554 msgid "dynamic range mapping" msgstr "" -#: ../src/iop/filmicrgb.c:3857 +#: ../src/iop/filmicrgb.c:3921 #, c-format msgid "(%.0f %%)" msgstr "" -#: ../src/iop/filmicrgb.c:3873 +#: ../src/iop/filmicrgb.c:3937 #, no-c-format msgid "% display" msgstr "" -#: ../src/iop/filmicrgb.c:3885 +#: ../src/iop/filmicrgb.c:3949 msgid "EV scene" msgstr "" -#: ../src/iop/filmicrgb.c:3889 +#: ../src/iop/filmicrgb.c:3953 #, no-c-format msgid "% camera" msgstr "" #. Page DISPLAY -#: ../src/iop/filmicrgb.c:3925 ../src/iop/filmicrgb.c:4587 +#: ../src/iop/filmicrgb.c:3989 ../src/iop/filmicrgb.c:4651 msgid "display" msgstr "" #. axis legend -#: ../src/iop/filmicrgb.c:3934 +#: ../src/iop/filmicrgb.c:3998 msgid "(%)" msgstr "" #. Page SCENE -#: ../src/iop/filmicrgb.c:3943 ../src/iop/filmicrgb.c:4422 +#: ../src/iop/filmicrgb.c:4007 ../src/iop/filmicrgb.c:4486 msgid "scene" msgstr "" #. axis legend -#: ../src/iop/filmicrgb.c:3952 +#: ../src/iop/filmicrgb.c:4016 msgid "(EV)" msgstr "" #. we are over the graph area -#: ../src/iop/filmicrgb.c:4364 +#: ../src/iop/filmicrgb.c:4428 msgid "" "use the parameters below to set the nodes.\n" "the bright curve is the filmic tone mapping curve\n" "the dark curve is the desaturation curve." msgstr "" -#: ../src/iop/filmicrgb.c:4370 +#: ../src/iop/filmicrgb.c:4434 msgid "toggle axis labels and values display" msgstr "" -#: ../src/iop/filmicrgb.c:4374 +#: ../src/iop/filmicrgb.c:4438 msgid "" "cycle through graph views.\n" "left click: cycle forward.\n" @@ -15496,7 +15983,7 @@ "double-click: reset to look view." msgstr "" -#: ../src/iop/filmicrgb.c:4431 +#: ../src/iop/filmicrgb.c:4495 #, no-c-format msgid "" "adjust to match the average luminance of the image's subject.\n" @@ -15504,13 +15991,13 @@ "decrease the value to increase the overall brightness." msgstr "" -#: ../src/iop/filmicrgb.c:4461 +#: ../src/iop/filmicrgb.c:4525 msgid "" -"symmetrically enlarge or shrink the computed dynamic range.\n" +"symmetrically increase or decrease the computed dynamic range.\n" "useful to give a safety margin to extreme luminances." msgstr "" -#: ../src/iop/filmicrgb.c:4468 +#: ../src/iop/filmicrgb.c:4532 msgid "" "try to optimize the settings with some statistical assumptions.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -15521,16 +16008,16 @@ msgstr "" #. Page RECONSTRUCT -#: ../src/iop/filmicrgb.c:4477 +#: ../src/iop/filmicrgb.c:4541 msgid "reconstruct" msgstr "" -#: ../src/iop/filmicrgb.c:4479 +#: ../src/iop/filmicrgb.c:4543 msgctxt "section" msgid "highlights clipping" msgstr "" -#: ../src/iop/filmicrgb.c:4487 +#: ../src/iop/filmicrgb.c:4551 msgid "" "set the exposure threshold upon which\n" "clipped highlights get reconstructed.\n" @@ -15540,49 +16027,49 @@ "increase to exclude more areas." msgstr "" -#: ../src/iop/filmicrgb.c:4497 +#: ../src/iop/filmicrgb.c:4561 msgid "" "soften the transition between clipped highlights and valid pixels.\n" "decrease to make the transition harder and sharper,\n" "increase to make the transition softer and blurrier." msgstr "" -#: ../src/iop/filmicrgb.c:4503 ../src/iop/filmicrgb.c:4504 +#: ../src/iop/filmicrgb.c:4567 ../src/iop/filmicrgb.c:4568 msgid "display highlight reconstruction mask" msgstr "" -#: ../src/iop/filmicrgb.c:4511 +#: ../src/iop/filmicrgb.c:4575 msgctxt "section" msgid "balance" msgstr "" -#: ../src/iop/filmicrgb.c:4518 +#: ../src/iop/filmicrgb.c:4582 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between inpainting a smooth color gradient,\n" +"inpainting a smooth color gradient\n" "or trying to recover the textured details.\n" "0% is an equal mix of both.\n" "increase if at least one RGB channel is not clipped.\n" "decrease if all RGB channels are clipped over large areas." msgstr "" -#: ../src/iop/filmicrgb.c:4529 +#: ../src/iop/filmicrgb.c:4593 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between blooming highlights like film does,\n" +"blooming highlights like film does\n" "or trying to recover sharp details.\n" "0% is an equal mix of both.\n" "increase if you want more details.\n" "decrease if you want more blur." msgstr "" -#: ../src/iop/filmicrgb.c:4541 +#: ../src/iop/filmicrgb.c:4605 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between recovering monochromatic highlights,\n" +"recovering monochromatic highlights\n" "or trying to recover colorful highlights.\n" "0% is an equal mix of both.\n" "increase if you want more color.\n" @@ -15590,18 +16077,18 @@ msgstr "" #. Page LOOK -#: ../src/iop/filmicrgb.c:4549 +#: ../src/iop/filmicrgb.c:4613 msgid "look" msgstr "" -#: ../src/iop/filmicrgb.c:4559 +#: ../src/iop/filmicrgb.c:4623 msgid "" "equivalent to paper grade in analog.\n" "increase to make highlights brighter and less compressed.\n" "decrease to mute highlights." msgstr "" -#: ../src/iop/filmicrgb.c:4567 +#: ../src/iop/filmicrgb.c:4631 msgid "" "width of the linear domain in the middle of the curve,\n" "increase to get more contrast and less desaturation at extreme luminances,\n" @@ -15609,7 +16096,7 @@ "this has no effect on mid-tones." msgstr "" -#: ../src/iop/filmicrgb.c:4582 ../src/iop/filmicrgb.c:4730 +#: ../src/iop/filmicrgb.c:4646 ../src/iop/filmicrgb.c:4794 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -15617,38 +16104,38 @@ msgstr "" #. Page OPTIONS -#: ../src/iop/filmicrgb.c:4611 +#: ../src/iop/filmicrgb.c:4675 msgid "options" msgstr "" -#: ../src/iop/filmicrgb.c:4616 +#: ../src/iop/filmicrgb.c:4680 msgid "" "v3 is darktable 3.0 desaturation method, same as color balance.\n" "v4 is a newer desaturation method, based on spectral purity of light." msgstr "" -#: ../src/iop/filmicrgb.c:4620 +#: ../src/iop/filmicrgb.c:4684 msgid "" "ensure the original colors are preserved.\n" "may reinforce chromatic aberrations and chroma noise,\n" "so ensure they are properly corrected elsewhere." msgstr "" -#: ../src/iop/filmicrgb.c:4629 +#: ../src/iop/filmicrgb.c:4693 msgid "" "choose the desired curvature of the filmic spline in highlights.\n" "hard uses a high curvature resulting in more tonal compression.\n" "soft uses a low curvature resulting in less tonal compression." msgstr "" -#: ../src/iop/filmicrgb.c:4634 +#: ../src/iop/filmicrgb.c:4698 msgid "" "choose the desired curvature of the filmic spline in shadows.\n" "hard uses a high curvature resulting in more tonal compression.\n" "soft uses a low curvature resulting in less tonal compression." msgstr "" -#: ../src/iop/filmicrgb.c:4641 +#: ../src/iop/filmicrgb.c:4705 #, no-c-format msgid "" "enable to input custom middle-gray values.\n" @@ -15657,7 +16144,7 @@ "disable to use standard 18.45% middle gray." msgstr "" -#: ../src/iop/filmicrgb.c:4648 +#: ../src/iop/filmicrgb.c:4712 msgid "" "enable to auto-set the look hardness depending on the scene white and black " "points.\n" @@ -15665,7 +16152,7 @@ "disable if you want a manual control." msgstr "" -#: ../src/iop/filmicrgb.c:4654 +#: ../src/iop/filmicrgb.c:4718 msgid "" "run extra passes of chromaticity reconstruction.\n" "more iterations means more color propagation from neighborhood.\n" @@ -15673,7 +16160,7 @@ "it also helps with difficult cases of magenta highlights." msgstr "" -#: ../src/iop/filmicrgb.c:4661 +#: ../src/iop/filmicrgb.c:4725 msgid "" "add statistical noise in reconstructed highlights.\n" "this avoids highlights to look too smooth\n" @@ -15681,28 +16168,28 @@ "so they blend with the rest of the picture." msgstr "" -#: ../src/iop/filmicrgb.c:4668 +#: ../src/iop/filmicrgb.c:4732 msgid "" "choose the statistical distribution of noise.\n" "this is useful to match natural sensor noise pattern." msgstr "" -#: ../src/iop/filmicrgb.c:4736 +#: ../src/iop/filmicrgb.c:4800 msgid "mid-tones saturation" msgstr "" -#: ../src/iop/filmicrgb.c:4737 +#: ../src/iop/filmicrgb.c:4801 msgid "" "desaturates the output of the module\n" "specifically at medium luminances.\n" "increase if midtones are under-saturated." msgstr "" -#: ../src/iop/filmicrgb.c:4743 +#: ../src/iop/filmicrgb.c:4807 msgid "highlights saturation mix" msgstr "" -#: ../src/iop/filmicrgb.c:4744 +#: ../src/iop/filmicrgb.c:4808 msgid "" "positive values ensure saturation is kept unchanged over the whole range.\n" "negative values bleach highlights at constant hue and luminance.\n" @@ -15722,39 +16209,39 @@ msgid "flip or rotate image by step of 90 degrees" msgstr "" -#: ../src/iop/flip.c:477 +#: ../src/iop/flip.c:475 msgid "no rotation" msgstr "" -#: ../src/iop/flip.c:481 ../src/iop/flip.c:624 +#: ../src/iop/flip.c:479 ../src/iop/flip.c:622 msgid "flip horizontally" msgstr "" -#: ../src/iop/flip.c:485 ../src/iop/flip.c:628 +#: ../src/iop/flip.c:483 ../src/iop/flip.c:626 msgid "flip vertically" msgstr "" -#: ../src/iop/flip.c:489 +#: ../src/iop/flip.c:487 msgid "rotate by -90 degrees" msgstr "" -#: ../src/iop/flip.c:493 +#: ../src/iop/flip.c:491 msgid "rotate by 90 degrees" msgstr "" -#: ../src/iop/flip.c:497 +#: ../src/iop/flip.c:495 msgid "rotate by 180 degrees" msgstr "" -#: ../src/iop/flip.c:612 +#: ../src/iop/flip.c:610 msgid "transform" msgstr "" -#: ../src/iop/flip.c:616 ../src/libs/live_view.c:293 +#: ../src/iop/flip.c:614 ../src/libs/live_view.c:293 msgid "rotate 90 degrees CCW" msgstr "" -#: ../src/iop/flip.c:620 ../src/libs/live_view.c:294 +#: ../src/iop/flip.c:618 ../src/libs/live_view.c:294 msgid "rotate 90 degrees CW" msgstr "" @@ -15771,21 +16258,21 @@ msgid "this module is deprecated. please use the filmic rgb module instead." msgstr "" -#: ../src/iop/globaltonemap.c:625 ../src/libs/filters/colors.c:259 +#: ../src/iop/globaltonemap.c:658 ../src/libs/filters/colors.c:259 msgid "operator" msgstr "" -#: ../src/iop/globaltonemap.c:626 +#: ../src/iop/globaltonemap.c:659 msgid "the global tonemap operator" msgstr "" -#: ../src/iop/globaltonemap.c:629 +#: ../src/iop/globaltonemap.c:662 msgid "" "the bias for tonemapper controls the linearity, the higher the more details " "in blacks" msgstr "" -#: ../src/iop/globaltonemap.c:633 +#: ../src/iop/globaltonemap.c:666 msgid "the target light for tonemapper specified as cd/m2" msgstr "" @@ -15849,66 +16336,66 @@ msgid "simulate an optical graduated neutral density filter" msgstr "" -#: ../src/iop/graduatednd.c:1114 +#: ../src/iop/graduatednd.c:1083 msgid "the density in EV for the filter" msgstr "" -#: ../src/iop/graduatednd.c:1119 +#: ../src/iop/graduatednd.c:1088 #, no-c-format msgid "" "hardness of graduation:\n" "0% = soft, 100% = hard" msgstr "" -#: ../src/iop/graduatednd.c:1123 +#: ../src/iop/graduatednd.c:1092 msgid "rotation of filter -180 to 180 degrees" msgstr "" -#: ../src/iop/graduatednd.c:1136 +#: ../src/iop/graduatednd.c:1105 msgid "select the hue tone of filter" msgstr "" -#: ../src/iop/graduatednd.c:1142 +#: ../src/iop/graduatednd.c:1111 msgid "select the saturation of filter" msgstr "" -#: ../src/iop/graduatednd.c:1153 +#: ../src/iop/graduatednd.c:1122 #, c-format msgid "[%s on nodes] change line rotation" msgstr "" -#: ../src/iop/graduatednd.c:1154 +#: ../src/iop/graduatednd.c:1123 #, c-format msgid "[%s on line] move line" msgstr "" -#: ../src/iop/graduatednd.c:1156 +#: ../src/iop/graduatednd.c:1125 #, c-format msgid "[%s on line] change density" msgstr "" -#: ../src/iop/graduatednd.c:1158 +#: ../src/iop/graduatednd.c:1127 #, c-format msgid "[%s on line] change hardness" msgstr "" -#: ../src/iop/grain.c:428 +#: ../src/iop/grain.c:444 msgid "grain" msgstr "" -#: ../src/iop/grain.c:433 +#: ../src/iop/grain.c:449 msgid "simulate silver grains from film" msgstr "" -#: ../src/iop/grain.c:582 +#: ../src/iop/grain.c:600 msgid "the grain size (~ISO of the film)" msgstr "" -#: ../src/iop/grain.c:586 +#: ../src/iop/grain.c:604 msgid "the strength of applied grain" msgstr "" -#: ../src/iop/grain.c:590 +#: ../src/iop/grain.c:608 msgid "" "amount of mid-tones bias from the photographic paper response modeling. the " "greater the bias, the more pronounced the fall off of the grain in shadows " @@ -15927,15 +16414,15 @@ msgid "remove fog and atmospheric hazing from pictures" msgstr "" -#: ../src/iop/hazeremoval.c:202 +#: ../src/iop/hazeremoval.c:204 msgid "amount of haze reduction" msgstr "" -#: ../src/iop/hazeremoval.c:204 +#: ../src/iop/hazeremoval.c:206 msgid "distance" msgstr "" -#: ../src/iop/hazeremoval.c:206 +#: ../src/iop/hazeremoval.c:208 msgid "limit haze removal up to a specific spatial depth" msgstr "" @@ -15947,45 +16434,60 @@ msgid "avoid magenta highlights and try to recover highlights colors" msgstr "" -#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:75 +#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:77 msgid "reconstruction, raw" msgstr "" -#: ../src/iop/highlights.c:923 +#: ../src/iop/highlights.c:1004 msgid "" "highlights: mode not available for this type of image. falling back to " "inpaint opposed." msgstr "" -#: ../src/iop/highlights.c:1101 +#: ../src/iop/highlights.c:1184 msgid "highlight reconstruction method" msgstr "" -#: ../src/iop/highlights.c:1106 +#: ../src/iop/highlights.c:1189 msgid "" "manually adjust the clipping threshold mostly used against magenta " -"highlights\n" -"the mask icon shows the clipped areas.\n" +"highlights.\n" "you might use this for tuning 'laplacian', 'inpaint opposed' or " "'segmentation' modes,\n" "especially if camera white point is incorrect." msgstr "" -#: ../src/iop/highlights.c:1117 +#: ../src/iop/highlights.c:1193 +msgid "" +"visualize clipped highlights in a false color representation.\n" +"the effective clipping level also depends on the reconstruction method." +msgstr "" + +#: ../src/iop/highlights.c:1203 msgid "" "combine closely related clipped segments by morphological operations.\n" -"the mask button shows the exact positions of resulting segment borders." +"this often leads to improved color reconstruction for tiny segments before " +"dark background." msgstr "" -#: ../src/iop/highlights.c:1125 +#: ../src/iop/highlights.c:1206 +msgid "visualize the combined segments in a false color representation." +msgstr "" + +#: ../src/iop/highlights.c:1213 msgid "" "select inpainting after segmentation analysis.\n" -"increase to favour candidates found in segmentation analysis, decrease for " -"opposed means inpainting.\n" -"the mask button shows segments that are considered to have a good candidate." +"increase to favor candidates found in segmentation analysis, decrease for " +"opposed means inpainting." msgstr "" -#: ../src/iop/highlights.c:1136 +#: ../src/iop/highlights.c:1216 +msgid "" +"visualize segments that are considered to have a good candidate in a false " +"color representation." +msgstr "" + +#: ../src/iop/highlights.c:1225 msgid "" "approximate lost data in regions with all photosites clipped, the effect " "depends on segment size and border gradients.\n" @@ -15997,39 +16499,40 @@ "highlights rebuilt and avoid gradients." msgstr "" -#: ../src/iop/highlights.c:1142 -msgid "" -"set strength of rebuilding in regions with all photosites clipped.\n" -"the mask buttons shows the effect that is added to already reconstructed " -"data." +#: ../src/iop/highlights.c:1231 +msgid "set strength of rebuilding in regions with all photosites clipped." msgstr "" -#: ../src/iop/highlights.c:1152 +#: ../src/iop/highlights.c:1233 +msgid "show the effect that is added to already reconstructed data." +msgstr "" + +#: ../src/iop/highlights.c:1242 msgid "" "add noise to visually blend the reconstructed areas\n" "into the rest of the noisy image. useful at high ISO." msgstr "" -#: ../src/iop/highlights.c:1156 +#: ../src/iop/highlights.c:1246 msgid "" "increase if magenta highlights don't get fully corrected\n" "each new iteration brings a performance penalty." msgstr "" -#: ../src/iop/highlights.c:1161 +#: ../src/iop/highlights.c:1251 msgid "" "increase if magenta highlights don't get fully corrected.\n" "this may produce non-smooth boundaries between valid and clipped regions." msgstr "" -#: ../src/iop/highlights.c:1165 +#: ../src/iop/highlights.c:1255 msgid "" "increase to correct larger clipped areas.\n" "large values bring huge performance penalties" msgstr "" -#: ../src/iop/highlights.c:1169 -msgid "this module only works with non-monochrome RAW and sRAW" +#: ../src/iop/highlights.c:1259 +msgid "this module does not work with monochrome RAW files" msgstr "" #: ../src/iop/highpass.c:72 @@ -16040,111 +16543,111 @@ msgid "isolate high frequencies in the image" msgstr "" -#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:135 +#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:107 msgid "linear or non-linear, Lab, scene-referred" msgstr "" -#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:136 ../src/iop/sharpen.c:96 +#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:108 ../src/iop/sharpen.c:98 msgid "frequential, Lab" msgstr "" -#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:137 +#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:109 msgid "special, Lab, scene-referred" msgstr "" -#: ../src/iop/highpass.c:383 +#: ../src/iop/highpass.c:378 msgid "the sharpness of highpass filter" msgstr "" -#: ../src/iop/highpass.c:387 +#: ../src/iop/highpass.c:382 msgid "the contrast of highpass filter" msgstr "" -#: ../src/iop/hotpixels.c:67 +#: ../src/iop/hotpixels.c:69 msgid "hot pixels" msgstr "" -#: ../src/iop/hotpixels.c:72 +#: ../src/iop/hotpixels.c:74 msgid "remove abnormally bright pixels by dampening them with neighbors" msgstr "" -#: ../src/iop/hotpixels.c:363 +#: ../src/iop/hotpixels.c:442 #, c-format msgid "fixed %d pixel" msgid_plural "fixed %d pixels" msgstr[0] "" msgstr[1] "" -#: ../src/iop/hotpixels.c:386 +#: ../src/iop/hotpixels.c:465 msgid "lower threshold for hot pixel" msgstr "" -#: ../src/iop/hotpixels.c:390 +#: ../src/iop/hotpixels.c:469 msgid "strength of hot pixel correction" msgstr "" -#: ../src/iop/hotpixels.c:406 +#: ../src/iop/hotpixels.c:485 msgid "" "hot pixel correction\n" "only works for raw images." msgstr "" -#: ../src/iop/invert.c:92 ../src/iop/invert.c:427 +#: ../src/iop/invert.c:106 ../src/iop/invert.c:442 #, c-format msgid "`%s' color matrix not found for 4bayer image" msgstr "" -#: ../src/iop/invert.c:108 +#: ../src/iop/invert.c:125 msgid "invert" msgstr "" -#: ../src/iop/invert.c:113 +#: ../src/iop/invert.c:130 msgid "this module is deprecated. please use the negadoctor module instead." msgstr "" -#: ../src/iop/invert.c:118 +#: ../src/iop/invert.c:135 msgid "invert film negatives" msgstr "" -#: ../src/iop/invert.c:120 ../src/iop/invert.c:122 +#: ../src/iop/invert.c:137 ../src/iop/invert.c:139 msgid "linear, raw, display-referred" msgstr "" #. Here we could provide more for monochrome special cases. As no monochrome camera #. has a bayer sensor we don't need g->RGB_to_CAM and g->CAM_to_RGB corrections -#: ../src/iop/invert.c:412 +#: ../src/iop/invert.c:427 msgid "brightness of film material" msgstr "" -#: ../src/iop/invert.c:416 +#: ../src/iop/invert.c:431 msgid "color of film material" msgstr "" -#: ../src/iop/invert.c:500 ../src/iop/negadoctor.c:847 +#: ../src/iop/invert.c:515 ../src/iop/negadoctor.c:866 msgid "pick color of film material from image" msgstr "" -#: ../src/iop/invert.c:502 +#: ../src/iop/invert.c:517 msgid "select color of film material" msgstr "" -#: ../src/iop/lens.cc:230 +#: ../src/iop/lens.cc:251 msgid "lens correction" msgstr "" -#: ../src/iop/lens.cc:235 +#: ../src/iop/lens.cc:256 msgid "vignette|chromatic aberrations|distortion" msgstr "" -#: ../src/iop/lens.cc:240 +#: ../src/iop/lens.cc:261 msgid "correct lenses optical flaws" msgstr "" -#: ../src/iop/lens.cc:243 +#: ../src/iop/lens.cc:264 msgid "geometric and reconstruction, RGB" msgstr "" -#: ../src/iop/lens.cc:3148 +#: ../src/iop/lens.cc:3773 #, c-format msgid "" "maker:\t\t%s\n" @@ -16153,7 +16656,7 @@ "crop factor:\t%.1f" msgstr "" -#: ../src/iop/lens.cc:3396 +#: ../src/iop/lens.cc:4026 #, c-format msgid "" "maker:\t\t%s\n" @@ -16165,167 +16668,219 @@ "mounts:\t%s" msgstr "" -#: ../src/iop/lens.cc:3442 +#: ../src/iop/lens.cc:4072 msgid "focal length (mm)" msgstr "" -#: ../src/iop/lens.cc:3468 +#: ../src/iop/lens.cc:4098 msgid "f/" msgstr "" -#: ../src/iop/lens.cc:3469 +#: ../src/iop/lens.cc:4099 msgid "f-number (aperture)" msgstr "" -#: ../src/iop/lens.cc:3485 +#: ../src/iop/lens.cc:4115 msgid "d" msgstr "" -#: ../src/iop/lens.cc:3486 +#: ../src/iop/lens.cc:4116 msgid "distance to subject" msgstr "" -#: ../src/iop/lens.cc:3645 +#: ../src/iop/lens.cc:4277 msgid "camera/lens not found" msgstr "" -#: ../src/iop/lens.cc:3646 +#: ../src/iop/lens.cc:4278 msgid "" "please select your lens manually\n" "you might also want to check if your Lensfun database is up-to-date\n" "by running lensfun-update-data" msgstr "" -#: ../src/iop/lens.cc:3769 +#: ../src/iop/lens.cc:4423 msgid "camera model" msgstr "" -#: ../src/iop/lens.cc:3774 +#: ../src/iop/lens.cc:4428 msgid "find camera" msgstr "" -#: ../src/iop/lens.cc:3789 +#: ../src/iop/lens.cc:4443 msgid "find lens" msgstr "" #. scale -#: ../src/iop/lens.cc:3823 ../src/iop/vignette.c:968 -#: ../src/iop/watermark.c:1324 ../src/libs/export.c:1165 +#: ../src/iop/lens.cc:4477 ../src/iop/vignette.c:1055 +#: ../src/iop/watermark.c:1372 ../src/libs/export.c:1264 msgid "scale" msgstr "" -#: ../src/iop/lens.cc:3828 +#: ../src/iop/lens.cc:4482 msgid "auto scale" msgstr "" -#: ../src/iop/lens.cc:3832 +#: ../src/iop/lens.cc:4484 +msgid "automatic scale to available image size due to Lensfun data" +msgstr "" + +#: ../src/iop/lens.cc:4488 msgid "correct distortions or apply them" msgstr "" -#: ../src/iop/lens.cc:3839 +#: ../src/iop/lens.cc:4495 msgid "transversal chromatic aberration red" msgstr "" -#: ../src/iop/lens.cc:3843 +#: ../src/iop/lens.cc:4499 msgid "transversal chromatic aberration blue" msgstr "" -#: ../src/iop/lens.cc:3849 +#: ../src/iop/lens.cc:4509 msgid "use latest algorithm" msgstr "" -#: ../src/iop/lens.cc:3851 +#: ../src/iop/lens.cc:4511 msgid "" "you're using an old version of the algorithm.\n" "once enabled, you won't be able to\n" "return back to old algorithm." msgstr "" -#: ../src/iop/lens.cc:3860 +#: ../src/iop/lens.cc:4521 +msgid "fine-tuning" +msgstr "" + +#. DT_IOP_SECTION_FOR_PARAMS doesn't work in C++ so create section module manually +#: ../src/iop/lens.cc:4526 +msgid "fine-tune" +msgstr "" + +#: ../src/iop/lens.cc:4532 msgid "tune the warp and chromatic aberration correction" msgstr "" -#: ../src/iop/lens.cc:3864 +#: ../src/iop/lens.cc:4536 msgid "tune the vignette correction" msgstr "" -#: ../src/iop/lens.cc:3868 +#: ../src/iop/lens.cc:4540 msgid "tune the TCA red correction" msgstr "" -#: ../src/iop/lens.cc:3872 +#: ../src/iop/lens.cc:4544 msgid "tune the TCA blue correction" msgstr "" -#: ../src/iop/lens.cc:3879 +#: ../src/iop/lens.cc:4551 msgid "image scaling" msgstr "" -#: ../src/iop/lens.cc:3891 +#: ../src/iop/lens.cc:4553 +msgid "automatic scale to available image size" +msgstr "" + +#: ../src/iop/lens.cc:4561 +msgid "" +"select a correction mode either based on\n" +" a) data and algorithms provided by the Lensfun project\n" +" b) embedded metadata provided by the camera or software vendor" +msgstr "" + +#: ../src/iop/lens.cc:4568 msgid "which corrections to apply" msgstr "" -#: ../src/iop/lens.cc:3904 +#: ../src/iop/lens.cc:4574 msgid "corrections done: " msgstr "" -#: ../src/iop/lens.cc:3906 +#: ../src/iop/lens.cc:4576 msgid "which corrections have actually been done" msgstr "" +#: ../src/iop/lens.cc:4595 +msgid "manual vignette correction" +msgstr "" + +#: ../src/iop/lens.cc:4599 +msgid "additional manually controlled optical vignetting correction" +msgstr "" + +#: ../src/iop/lens.cc:4602 +msgid "vignette" +msgstr "" + +#: ../src/iop/lens.cc:4606 +msgid "amount of the applied optical vignetting correction" +msgstr "" + +#: ../src/iop/lens.cc:4608 +msgid "show applied optical vignette correction mask" +msgstr "" + +#: ../src/iop/lens.cc:4618 +msgid "radius of uncorrected centre" +msgstr "" + +#: ../src/iop/lens.cc:4624 +msgid "steepness of the correction effect outside of radius" +msgstr "" + #: ../src/iop/levels.c:112 msgid "this module is deprecated. please use the RGB levels module instead." msgstr "" -#: ../src/iop/levels.c:117 ../src/iop/levels.c:630 ../src/iop/rgblevels.c:984 -#: ../src/iop/rgblevels.c:1014 +#: ../src/iop/levels.c:117 ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1022 +#: ../src/iop/rgblevels.c:1056 msgid "levels" msgstr "" -#: ../src/iop/levels.c:137 +#: ../src/iop/levels.c:139 msgid "adjust black, white and mid-gray points" msgstr "" -#: ../src/iop/levels.c:628 ../src/iop/rgblevels.c:1016 +#: ../src/iop/levels.c:644 ../src/iop/rgblevels.c:1059 msgid "" "drag handles to set black, gray, and white points. operates on L channel." msgstr "" -#: ../src/iop/levels.c:642 ../src/iop/rgblevels.c:1052 +#: ../src/iop/levels.c:658 ../src/iop/rgblevels.c:1108 msgid "apply auto levels" msgstr "" -#: ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1027 +#: ../src/iop/levels.c:662 ../src/iop/rgblevels.c:1077 msgid "pick black point from image" msgstr "" -#: ../src/iop/levels.c:650 ../src/iop/rgblevels.c:1033 +#: ../src/iop/levels.c:666 ../src/iop/rgblevels.c:1085 msgid "pick medium gray point from image" msgstr "" -#: ../src/iop/levels.c:654 ../src/iop/rgblevels.c:1039 +#: ../src/iop/levels.c:670 ../src/iop/rgblevels.c:1093 msgid "pick white point from image" msgstr "" -#: ../src/iop/levels.c:667 ../src/iop/rgblevels.c:936 -#: ../src/iop/rgblevels.c:1026 +#: ../src/iop/levels.c:683 ../src/iop/rgblevels.c:968 +#: ../src/iop/rgblevels.c:1075 msgid "black" msgstr "" -#: ../src/iop/levels.c:668 +#: ../src/iop/levels.c:684 msgid "black percentile" msgstr "" -#: ../src/iop/levels.c:672 +#: ../src/iop/levels.c:688 msgid "gray percentile" msgstr "" -#: ../src/iop/levels.c:675 ../src/iop/rgblevels.c:938 -#: ../src/iop/rgblevels.c:1038 +#: ../src/iop/levels.c:691 ../src/iop/rgblevels.c:970 +#: ../src/iop/rgblevels.c:1091 msgid "white" msgstr "" -#: ../src/iop/levels.c:676 +#: ../src/iop/levels.c:692 msgid "white percentile" msgstr "" @@ -16337,108 +16892,108 @@ msgid "distort parts of the image" msgstr "" -#: ../src/iop/liquify.c:2933 +#: ../src/iop/liquify.c:2895 msgid "click to edit nodes" msgstr "" -#: ../src/iop/liquify.c:3636 +#: ../src/iop/liquify.c:3599 msgid "" "<b>add point</b>: click and drag\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " "ctrl+scroll" msgstr "" -#: ../src/iop/liquify.c:3639 +#: ../src/iop/liquify.c:3602 msgid "" "<b>add line</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " "ctrl+scroll" msgstr "" -#: ../src/iop/liquify.c:3642 +#: ../src/iop/liquify.c:3605 msgid "" "<b>add curve</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " "ctrl+scroll" msgstr "" -#: ../src/iop/liquify.c:3693 +#: ../src/iop/liquify.c:3656 msgid "" "use a tool to add warps\n" "<b>remove a warp</b>: right-click" msgstr "" -#: ../src/iop/liquify.c:3696 +#: ../src/iop/liquify.c:3659 msgid "warps|nodes count:" msgstr "" -#: ../src/iop/liquify.c:3705 +#: ../src/iop/liquify.c:3668 msgid "edit, add and delete nodes" msgstr "" -#: ../src/iop/liquify.c:3710 ../src/iop/liquify.c:3716 -#: ../src/iop/liquify.c:3722 ../src/iop/retouch.c:2238 -#: ../src/iop/retouch.c:2242 ../src/iop/retouch.c:2246 -#: ../src/iop/retouch.c:2250 ../src/iop/spots.c:883 ../src/iop/spots.c:888 -#: ../src/iop/spots.c:893 ../src/libs/masks.c:1816 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1834 ../src/libs/masks.c:1843 ../src/libs/masks.c:1852 +#: ../src/iop/liquify.c:3673 ../src/iop/liquify.c:3679 +#: ../src/iop/liquify.c:3685 ../src/iop/retouch.c:2465 +#: ../src/iop/retouch.c:2471 ../src/iop/retouch.c:2476 +#: ../src/iop/retouch.c:2481 ../src/iop/spots.c:885 ../src/iop/spots.c:890 +#: ../src/iop/spots.c:895 ../src/libs/masks.c:1812 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1830 ../src/libs/masks.c:1839 ../src/libs/masks.c:1848 msgid "shapes" msgstr "" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw curves" msgstr "" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw multiple curves" msgstr "" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw lines" msgstr "" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw multiple lines" msgstr "" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw points" msgstr "" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw multiple points" msgstr "" -#: ../src/iop/liquify.c:3729 +#: ../src/iop/liquify.c:3692 msgid "" "<b>add node</b>: ctrl+click - <b>remove path</b>: right click\n" "<b>toggle line/curve</b>: ctrl+alt+click" msgstr "" -#: ../src/iop/liquify.c:3732 +#: ../src/iop/liquify.c:3695 msgid "" "<b>move</b>: click and drag - <b>show/hide feathering controls</b>: click\n" "<b>autosmooth, cusp, smooth, symmetrical</b>: ctrl+click - <b>remove</b>: " "right click" msgstr "" -#: ../src/iop/liquify.c:3736 ../src/iop/liquify.c:3738 +#: ../src/iop/liquify.c:3699 ../src/iop/liquify.c:3701 msgid "<b>shape of path</b>: drag" msgstr "" -#: ../src/iop/liquify.c:3740 +#: ../src/iop/liquify.c:3703 msgid "<b>radius</b>: drag" msgstr "" -#: ../src/iop/liquify.c:3742 +#: ../src/iop/liquify.c:3705 msgid "<b>hardness (center)</b>: drag" msgstr "" -#: ../src/iop/liquify.c:3744 +#: ../src/iop/liquify.c:3707 msgid "<b>hardness (feather)</b>: drag" msgstr "" -#: ../src/iop/liquify.c:3746 +#: ../src/iop/liquify.c:3709 msgid "" "<b>strength</b>: drag\n" "<b>linear, grow, and shrink</b>: ctrl+click" @@ -16456,295 +17011,295 @@ msgid "linear, XYZ" msgstr "" -#: ../src/iop/lowlight.c:341 +#: ../src/iop/lowlight.c:338 msgid "indoor bright" msgstr "" -#: ../src/iop/lowlight.c:359 +#: ../src/iop/lowlight.c:356 msgid "indoor dim" msgstr "" -#: ../src/iop/lowlight.c:377 +#: ../src/iop/lowlight.c:374 msgid "indoor dark" msgstr "" -#: ../src/iop/lowlight.c:395 +#: ../src/iop/lowlight.c:392 msgid "twilight" msgstr "" -#: ../src/iop/lowlight.c:413 +#: ../src/iop/lowlight.c:410 msgid "night street lit" msgstr "" -#: ../src/iop/lowlight.c:431 +#: ../src/iop/lowlight.c:428 msgid "night street" msgstr "" -#: ../src/iop/lowlight.c:449 +#: ../src/iop/lowlight.c:446 msgid "night street dark" msgstr "" -#: ../src/iop/lowlight.c:468 +#: ../src/iop/lowlight.c:465 msgid "night" msgstr "" -#: ../src/iop/lowlight.c:641 +#: ../src/iop/lowlight.c:639 msgid "dark" msgstr "" -#: ../src/iop/lowlight.c:649 +#: ../src/iop/lowlight.c:647 msgid "bright" msgstr "" -#: ../src/iop/lowlight.c:658 +#: ../src/iop/lowlight.c:656 msgid "day vision" msgstr "" -#: ../src/iop/lowlight.c:663 +#: ../src/iop/lowlight.c:661 msgid "night vision" msgstr "" -#: ../src/iop/lowlight.c:835 +#: ../src/iop/lowlight.c:833 msgid "blueness in shadows" msgstr "" -#: ../src/iop/lowpass.c:128 +#: ../src/iop/lowpass.c:100 msgid "lowpass" msgstr "" -#: ../src/iop/lowpass.c:133 +#: ../src/iop/lowpass.c:105 msgid "isolate low frequencies in the image" msgstr "" -#: ../src/iop/lowpass.c:565 +#: ../src/iop/lowpass.c:578 msgid "local contrast mask" msgstr "" -#: ../src/iop/lowpass.c:590 +#: ../src/iop/lowpass.c:603 msgid "radius of gaussian/bilateral blur" msgstr "" -#: ../src/iop/lowpass.c:591 +#: ../src/iop/lowpass.c:604 msgid "contrast of lowpass filter" msgstr "" -#: ../src/iop/lowpass.c:592 +#: ../src/iop/lowpass.c:605 msgid "brightness adjustment of lowpass filter" msgstr "" -#: ../src/iop/lowpass.c:593 +#: ../src/iop/lowpass.c:606 msgid "color saturation of lowpass filter" msgstr "" -#: ../src/iop/lowpass.c:594 +#: ../src/iop/lowpass.c:607 msgid "which filter to use for blurring" msgstr "" -#: ../src/iop/lut3d.c:135 +#: ../src/iop/lut3d.c:136 msgid "LUT 3D" msgstr "" -#: ../src/iop/lut3d.c:140 +#: ../src/iop/lut3d.c:141 msgid "perform color space corrections and apply look" msgstr "" -#: ../src/iop/lut3d.c:143 +#: ../src/iop/lut3d.c:144 msgid "defined by profile, RGB" msgstr "" -#: ../src/iop/lut3d.c:468 +#: ../src/iop/lut3d.c:486 msgid "error allocating buffer for gmz LUT" msgstr "" -#: ../src/iop/lut3d.c:494 +#: ../src/iop/lut3d.c:512 #, c-format msgid "invalid png file %s" msgstr "" -#: ../src/iop/lut3d.c:502 +#: ../src/iop/lut3d.c:520 #, c-format -msgid "png bit-depth %d not supported" +msgid "png bit depth %d is not supported" msgstr "" -#: ../src/iop/lut3d.c:516 ../src/iop/lut3d.c:526 +#: ../src/iop/lut3d.c:534 ../src/iop/lut3d.c:544 #, c-format msgid "invalid level in png file %d %d" msgstr "" -#: ../src/iop/lut3d.c:521 +#: ../src/iop/lut3d.c:539 msgid "this darktable build is not compatible with compressed CLUT" msgstr "" -#: ../src/iop/lut3d.c:538 ../src/iop/lut3d.c:788 +#: ../src/iop/lut3d.c:556 ../src/iop/lut3d.c:808 #, c-format msgid "error - LUT 3D size %d exceeds the maximum supported" msgstr "" -#: ../src/iop/lut3d.c:550 +#: ../src/iop/lut3d.c:568 msgid "error allocating buffer for png LUT" msgstr "" -#: ../src/iop/lut3d.c:558 +#: ../src/iop/lut3d.c:576 #, c-format msgid "error - could not read png image %s" msgstr "" -#: ../src/iop/lut3d.c:568 +#: ../src/iop/lut3d.c:586 msgid "error - allocating buffer for png LUT" msgstr "" -#: ../src/iop/lut3d.c:743 +#: ../src/iop/lut3d.c:761 #, c-format msgid "error - invalid cube file: %s" msgstr "" -#: ../src/iop/lut3d.c:757 -msgid "DOMAIN MIN <> 0.0 is not supported" +#: ../src/iop/lut3d.c:775 +msgid "DOMAIN MIN other than 0 is not supported" msgstr "" -#: ../src/iop/lut3d.c:768 -msgid "DOMAIN MAX <> 1.0 is not supported" +#: ../src/iop/lut3d.c:787 +msgid "DOMAIN MAX other than 1 is not supported" msgstr "" -#: ../src/iop/lut3d.c:777 +#: ../src/iop/lut3d.c:797 msgid "1D cube LUT is not supported" msgstr "" -#: ../src/iop/lut3d.c:799 +#: ../src/iop/lut3d.c:819 msgid "error - allocating buffer for cube LUT" msgstr "" -#: ../src/iop/lut3d.c:810 +#: ../src/iop/lut3d.c:830 msgid "error - cube LUT size is not defined" msgstr "" -#: ../src/iop/lut3d.c:821 +#: ../src/iop/lut3d.c:841 #, c-format msgid "error - cube LUT invalid number line %d" msgstr "" -#: ../src/iop/lut3d.c:837 +#: ../src/iop/lut3d.c:857 #, c-format msgid "error - cube LUT lines number %d is not correct, should be %d" msgstr "" -#: ../src/iop/lut3d.c:847 +#: ../src/iop/lut3d.c:867 #, c-format msgid "warning - cube LUT has %d values out of range [0,1]" msgstr "" -#: ../src/iop/lut3d.c:872 +#: ../src/iop/lut3d.c:892 #, c-format msgid "error - invalid 3dl file: %s" msgstr "" -#: ../src/iop/lut3d.c:893 +#: ../src/iop/lut3d.c:913 #, c-format msgid "error - the maximum shaper LUT value %d is too low" msgstr "" -#: ../src/iop/lut3d.c:904 +#: ../src/iop/lut3d.c:924 msgid "error - allocating buffer for 3dl LUT" msgstr "" -#: ../src/iop/lut3d.c:917 +#: ../src/iop/lut3d.c:937 msgid "error - 3dl LUT size is not defined" msgstr "" -#: ../src/iop/lut3d.c:945 +#: ../src/iop/lut3d.c:965 msgid "error - 3dl LUT lines number is not correct" msgstr "" -#: ../src/iop/lut3d.c:961 +#: ../src/iop/lut3d.c:981 msgid "error - the maximum LUT value does not match any valid bit depth" msgstr "" -#: ../src/iop/lut3d.c:1539 +#: ../src/iop/lut3d.c:1553 msgid "LUT root folder not defined" msgstr "" -#: ../src/iop/lut3d.c:1545 +#: ../src/iop/lut3d.c:1559 msgid "select LUT file" msgstr "" -#: ../src/iop/lut3d.c:1546 +#: ../src/iop/lut3d.c:1560 msgid "_select" msgstr "" -#: ../src/iop/lut3d.c:1566 +#: ../src/iop/lut3d.c:1580 msgid "hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" msgstr "" -#: ../src/iop/lut3d.c:1568 +#: ../src/iop/lut3d.c:1582 msgid "hald CLUT (png) or 3D LUT (cube or 3dl)" msgstr "" -#: ../src/iop/lut3d.c:1592 +#: ../src/iop/lut3d.c:1606 msgid "select file outside LUT root folder is not allowed" msgstr "" -#: ../src/iop/lut3d.c:1663 +#: ../src/iop/lut3d.c:1677 msgid "" "select a png (haldclut), a cube, a 3dl or a gmz (compressed LUT) file " "CAUTION: 3D LUT folder must be set in preferences/processing before choosing " "the LUT file" msgstr "" -#: ../src/iop/lut3d.c:1667 +#: ../src/iop/lut3d.c:1681 msgid "" "select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be " "set in preferences/processing before choosing the LUT file" msgstr "" -#: ../src/iop/lut3d.c:1679 +#: ../src/iop/lut3d.c:1693 msgid "" "the file path (relative to LUT folder) is saved with image along with the " "LUT data if it's a compressed LUT (gmz)" msgstr "" -#: ../src/iop/lut3d.c:1682 +#: ../src/iop/lut3d.c:1696 msgid "" "the file path (relative to LUT folder) is saved with image (and not the LUT " "data themselves)" msgstr "" -#: ../src/iop/lut3d.c:1691 +#: ../src/iop/lut3d.c:1705 msgid "enter LUT name" msgstr "" -#: ../src/iop/lut3d.c:1712 +#: ../src/iop/lut3d.c:1726 msgid "select the LUT" msgstr "" -#: ../src/iop/lut3d.c:1725 +#: ../src/iop/lut3d.c:1739 msgid "select the color space in which the LUT has to be applied" msgstr "" -#: ../src/iop/lut3d.c:1727 +#: ../src/iop/lut3d.c:1741 msgid "interpolation" msgstr "" -#: ../src/iop/lut3d.c:1728 +#: ../src/iop/lut3d.c:1742 msgid "select the interpolation method" msgstr "" -#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:62 +#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:63 msgid "mask manager" msgstr "" -#: ../src/iop/monochrome.c:97 +#: ../src/iop/monochrome.c:99 msgid "quickly convert an image to black & white using a variable color filter" msgstr "" -#: ../src/iop/monochrome.c:127 +#: ../src/iop/monochrome.c:153 msgid "red filter" msgstr "" -#: ../src/iop/monochrome.c:546 +#: ../src/iop/monochrome.c:568 msgid "drag and scroll mouse wheel to adjust the virtual color filter" msgstr "" -#: ../src/iop/monochrome.c:562 +#: ../src/iop/monochrome.c:584 msgid "how much to keep highlights" msgstr "" @@ -16760,35 +17315,35 @@ msgid "invert film negative scans and simulate printing on paper" msgstr "" -#: ../src/iop/negadoctor.c:469 +#: ../src/iop/negadoctor.c:483 msgid "D min" msgstr "" -#: ../src/iop/negadoctor.c:475 ../src/iop/negadoctor.c:856 +#: ../src/iop/negadoctor.c:489 ../src/iop/negadoctor.c:875 msgid "D min red component" msgstr "" #. Page FILM PROPERTIES -#: ../src/iop/negadoctor.c:832 +#: ../src/iop/negadoctor.c:851 msgid "film properties" msgstr "" #. Dmin -#: ../src/iop/negadoctor.c:836 +#: ../src/iop/negadoctor.c:855 msgctxt "section" msgid "color of the film base" msgstr "" -#: ../src/iop/negadoctor.c:842 +#: ../src/iop/negadoctor.c:861 msgid "select color of film material from a swatch" msgstr "" -#: ../src/iop/negadoctor.c:848 +#: ../src/iop/negadoctor.c:867 msgid "film material" msgstr "" -#: ../src/iop/negadoctor.c:857 ../src/iop/negadoctor.c:867 -#: ../src/iop/negadoctor.c:877 +#: ../src/iop/negadoctor.c:876 ../src/iop/negadoctor.c:886 +#: ../src/iop/negadoctor.c:896 msgid "" "adjust the color and shade of the film transparent base.\n" "this value depends on the film material, \n" @@ -16796,58 +17351,58 @@ "and the scanner white balance." msgstr "" -#: ../src/iop/negadoctor.c:866 +#: ../src/iop/negadoctor.c:885 msgid "D min green component" msgstr "" -#: ../src/iop/negadoctor.c:876 +#: ../src/iop/negadoctor.c:895 msgid "D min blue component" msgstr "" #. D max and scanner bias -#: ../src/iop/negadoctor.c:884 +#: ../src/iop/negadoctor.c:903 msgctxt "section" msgid "dynamic range of the film" msgstr "" -#: ../src/iop/negadoctor.c:888 +#: ../src/iop/negadoctor.c:907 msgid "" "maximum density of the film, corresponding to white after inversion.\n" "this value depends on the film specifications, the developing process,\n" "the dynamic range of the scene and the scanner exposure settings." msgstr "" -#: ../src/iop/negadoctor.c:892 +#: ../src/iop/negadoctor.c:911 msgctxt "section" msgid "scanner exposure settings" msgstr "" -#: ../src/iop/negadoctor.c:896 +#: ../src/iop/negadoctor.c:915 msgid "" "correct the exposure of the scanner, for all RGB channels,\n" "before the inversion, so blacks are neither clipped or too pale." msgstr "" #. WB shadows -#: ../src/iop/negadoctor.c:903 +#: ../src/iop/negadoctor.c:922 msgctxt "section" msgid "shadows color cast" msgstr "" -#: ../src/iop/negadoctor.c:909 +#: ../src/iop/negadoctor.c:928 msgid "select color of shadows from a swatch" msgstr "" -#: ../src/iop/negadoctor.c:914 +#: ../src/iop/negadoctor.c:933 msgid "pick shadows color from image" msgstr "" -#: ../src/iop/negadoctor.c:920 +#: ../src/iop/negadoctor.c:939 msgid "shadows red offset" msgstr "" -#: ../src/iop/negadoctor.c:921 ../src/iop/negadoctor.c:928 -#: ../src/iop/negadoctor.c:935 +#: ../src/iop/negadoctor.c:940 ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:954 msgid "" "correct the color cast in shadows so blacks are\n" "truly achromatic. Setting this value before\n" @@ -16855,34 +17410,34 @@ "recovering the global white balance in difficult cases." msgstr "" -#: ../src/iop/negadoctor.c:927 +#: ../src/iop/negadoctor.c:946 msgid "shadows green offset" msgstr "" -#: ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:953 msgid "shadows blue offset" msgstr "" #. WB highlights -#: ../src/iop/negadoctor.c:941 +#: ../src/iop/negadoctor.c:960 msgctxt "section" msgid "highlights white balance" msgstr "" -#: ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:966 msgid "select color of illuminant from a swatch" msgstr "" -#: ../src/iop/negadoctor.c:952 +#: ../src/iop/negadoctor.c:971 msgid "pick illuminant color from image" msgstr "" -#: ../src/iop/negadoctor.c:958 +#: ../src/iop/negadoctor.c:977 msgid "illuminant red gain" msgstr "" -#: ../src/iop/negadoctor.c:959 ../src/iop/negadoctor.c:966 -#: ../src/iop/negadoctor.c:973 +#: ../src/iop/negadoctor.c:978 ../src/iop/negadoctor.c:985 +#: ../src/iop/negadoctor.c:992 msgid "" "correct the color of the illuminant so whites are\n" "truly achromatic. Setting this value after\n" @@ -16890,101 +17445,133 @@ "recovering the global white balance in difficult cases." msgstr "" -#: ../src/iop/negadoctor.c:965 +#: ../src/iop/negadoctor.c:984 msgid "illuminant green gain" msgstr "" -#: ../src/iop/negadoctor.c:972 +#: ../src/iop/negadoctor.c:991 msgid "illuminant blue gain" msgstr "" #. Page PRINT PROPERTIES -#: ../src/iop/negadoctor.c:979 +#: ../src/iop/negadoctor.c:998 msgid "print properties" msgstr "" #. print corrections -#: ../src/iop/negadoctor.c:982 +#: ../src/iop/negadoctor.c:1001 msgctxt "section" msgid "virtual paper properties" msgstr "" -#: ../src/iop/negadoctor.c:988 +#: ../src/iop/negadoctor.c:1007 msgid "" "correct the density of black after the inversion,\n" "to adjust the global contrast while avoiding clipping shadows." msgstr "" -#: ../src/iop/negadoctor.c:993 +#: ../src/iop/negadoctor.c:1012 msgid "" "select the grade of the virtual paper, which is actually\n" "equivalent to applying a gamma. it compensates the film D max\n" "and recovers the contrast. use a high grade for high D max." msgstr "" -#: ../src/iop/negadoctor.c:1001 +#: ../src/iop/negadoctor.c:1020 msgid "" "gradually compress specular highlights past this value\n" "to avoid clipping while pushing the exposure for mid-tones.\n" "this somewhat reproduces the behavior of matte paper." msgstr "" -#: ../src/iop/negadoctor.c:1005 +#: ../src/iop/negadoctor.c:1024 msgctxt "section" msgid "virtual print emulation" msgstr "" -#: ../src/iop/negadoctor.c:1012 +#: ../src/iop/negadoctor.c:1031 msgid "" "correct the printing exposure after inversion to adjust\n" "the global contrast and avoid clipping highlights." msgstr "" -#: ../src/iop/negadoctor.c:1020 +#: ../src/iop/negadoctor.c:1039 msgid "toggle on or off the color controls" msgstr "" -#: ../src/iop/nlmeans.c:84 +#: ../src/iop/nlmeans.c:78 msgid "astrophoto denoise" msgstr "" -#: ../src/iop/nlmeans.c:89 +#: ../src/iop/nlmeans.c:83 msgid "denoise (non-local means)" msgstr "" -#: ../src/iop/nlmeans.c:94 +#: ../src/iop/nlmeans.c:88 msgid "apply a poisson noise removal best suited for astrophotography" msgstr "" -#: ../src/iop/nlmeans.c:459 +#: ../src/iop/nlmeans.c:462 msgid "radius of the patches to match" msgstr "" -#: ../src/iop/nlmeans.c:467 +#: ../src/iop/nlmeans.c:470 msgid "how much to smooth brightness" msgstr "" -#: ../src/iop/nlmeans.c:470 +#: ../src/iop/nlmeans.c:473 msgid "how much to smooth colors" msgstr "" #. * let's fill the encapsulating widgets #. preview mode #. color scheme -#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2419 -#: ../src/views/darkroom.c:2437 ../src/views/darkroom.c:2444 -#: ../src/views/darkroom.c:2454 ../src/views/darkroom.c:2471 +#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2258 +#: ../src/views/darkroom.c:2276 ../src/views/darkroom.c:2283 +#: ../src/views/darkroom.c:2293 ../src/views/darkroom.c:2310 msgid "overexposed" msgstr "" -#: ../src/iop/overexposed.c:130 ../src/iop/overexposed.c:360 +#: ../src/iop/overexposed.c:123 ../src/iop/overexposed.c:352 msgid "module overexposed failed in buffer allocation" msgstr "" -#: ../src/iop/overexposed.c:156 ../src/iop/overexposed.c:370 +#: ../src/iop/overexposed.c:149 ../src/iop/overexposed.c:362 msgid "module overexposed failed in color conversion" msgstr "" +#: ../src/iop/primaries.c:74 +msgid "rgb primaries" +msgstr "" + +#: ../src/iop/primaries.c:79 +msgid "adjustment of the RGB color primaries for color grading" +msgstr "" + +#: ../src/iop/primaries.c:395 +msgid "shift red towards yellow or magenta" +msgstr "" + +#: ../src/iop/primaries.c:396 +msgid "red primary purity" +msgstr "" + +#: ../src/iop/primaries.c:397 +msgid "shift green towards cyan or yellow" +msgstr "" + +#: ../src/iop/primaries.c:398 +msgid "green primary purity" +msgstr "" + +#: ../src/iop/primaries.c:399 +msgid "shift blue towards magenta or cyan" +msgstr "" + +#: ../src/iop/primaries.c:400 +msgid "blue primary purity" +msgstr "" + #: ../src/iop/profile_gamma.c:96 msgid "unbreak input profile" msgstr "" @@ -16993,78 +17580,78 @@ msgid "correct input color profiles meant to be applied on non-linear RGB" msgstr "" -#: ../src/iop/profile_gamma.c:136 +#: ../src/iop/profile_gamma.c:138 msgid "16 EV dynamic range (generic)" msgstr "" -#: ../src/iop/profile_gamma.c:142 +#: ../src/iop/profile_gamma.c:144 msgid "14 EV dynamic range (generic)" msgstr "" -#: ../src/iop/profile_gamma.c:148 +#: ../src/iop/profile_gamma.c:150 msgid "12 EV dynamic range (generic)" msgstr "" -#: ../src/iop/profile_gamma.c:154 +#: ../src/iop/profile_gamma.c:156 msgid "10 EV dynamic range (generic)" msgstr "" -#: ../src/iop/profile_gamma.c:160 +#: ../src/iop/profile_gamma.c:162 msgid "08 EV dynamic range (generic)" msgstr "" -#: ../src/iop/profile_gamma.c:623 +#: ../src/iop/profile_gamma.c:637 msgid "linear part" msgstr "" -#: ../src/iop/profile_gamma.c:627 +#: ../src/iop/profile_gamma.c:641 msgid "gamma exponential factor" msgstr "" -#: ../src/iop/profile_gamma.c:638 +#: ../src/iop/profile_gamma.c:652 msgid "adjust to match the average luma of the subject" msgstr "" -#: ../src/iop/profile_gamma.c:644 +#: ../src/iop/profile_gamma.c:658 msgid "" "number of stops between middle gray and pure black\n" "this is a reading a light meter would give you on the scene" msgstr "" -#: ../src/iop/profile_gamma.c:650 +#: ../src/iop/profile_gamma.c:664 msgid "" "number of stops between pure black and pure white\n" "this is a reading a light meter would give you on the scene" msgstr "" -#: ../src/iop/profile_gamma.c:652 +#: ../src/iop/profile_gamma.c:666 msgctxt "section" msgid "optimize automatically" msgstr "" -#: ../src/iop/profile_gamma.c:656 +#: ../src/iop/profile_gamma.c:670 msgid "" -"enlarge or shrink the computed dynamic range\n" -"this is useful when noise perturbates the measurements" +"increase or decrease the computed dynamic range\n" +"this is useful when noise distorts the measurement" msgstr "" -#: ../src/iop/profile_gamma.c:660 +#: ../src/iop/profile_gamma.c:674 msgid "make an optimization with some guessing" msgstr "" -#: ../src/iop/profile_gamma.c:669 +#: ../src/iop/profile_gamma.c:683 msgid "tone mapping method" msgstr "" -#: ../src/iop/rawdenoise.c:124 +#: ../src/iop/rawdenoise.c:138 msgid "raw denoise" msgstr "" -#: ../src/iop/rawdenoise.c:129 +#: ../src/iop/rawdenoise.c:143 msgid "denoise the raw picture early in the pipeline" msgstr "" -#: ../src/iop/rawdenoise.c:939 +#: ../src/iop/rawdenoise.c:955 msgid "" "raw denoising\n" "only works for raw images." @@ -17072,9 +17659,9 @@ #. * let's fill the encapsulating widgets #. mode of operation -#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2387 ../src/views/darkroom.c:2393 -#: ../src/views/darkroom.c:2406 +#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2226 ../src/views/darkroom.c:2232 +#: ../src/views/darkroom.c:2245 msgid "raw overexposed" msgstr "" @@ -17083,67 +17670,67 @@ msgid "raw black/white point" msgstr "" -#: ../src/iop/rawprepare.c:156 +#: ../src/iop/rawprepare.c:172 msgid "" "sets technical specificities of the raw sensor.\n" "touch with great care!" msgstr "" -#: ../src/iop/rawprepare.c:168 +#: ../src/iop/rawprepare.c:184 msgid "passthrough" msgstr "" -#: ../src/iop/rawprepare.c:655 +#: ../src/iop/rawprepare.c:663 msgid "invalid crop parameters" msgstr "" -#: ../src/iop/rawprepare.c:656 +#: ../src/iop/rawprepare.c:664 msgid "" "please reset to defaults, update your preset or set to something correct" msgstr "" -#: ../src/iop/rawprepare.c:922 +#: ../src/iop/rawprepare.c:930 msgid "black level 0" msgstr "" -#: ../src/iop/rawprepare.c:923 +#: ../src/iop/rawprepare.c:931 msgid "black level 1" msgstr "" -#: ../src/iop/rawprepare.c:924 +#: ../src/iop/rawprepare.c:932 msgid "black level 2" msgstr "" -#: ../src/iop/rawprepare.c:925 +#: ../src/iop/rawprepare.c:933 msgid "black level 3" msgstr "" -#: ../src/iop/rawprepare.c:952 +#: ../src/iop/rawprepare.c:960 msgid "raw flat field correction to compensate for lens shading" msgstr "" -#: ../src/iop/rawprepare.c:957 +#: ../src/iop/rawprepare.c:965 msgctxt "section" msgid "crop" msgstr "" -#: ../src/iop/rawprepare.c:960 +#: ../src/iop/rawprepare.c:968 msgid "crop left border" msgstr "" -#: ../src/iop/rawprepare.c:964 +#: ../src/iop/rawprepare.c:972 msgid "crop top border" msgstr "" -#: ../src/iop/rawprepare.c:968 +#: ../src/iop/rawprepare.c:976 msgid "crop right border" msgstr "" -#: ../src/iop/rawprepare.c:972 +#: ../src/iop/rawprepare.c:980 msgid "crop bottom border" msgstr "" -#: ../src/iop/rawprepare.c:981 +#: ../src/iop/rawprepare.c:989 msgid "" "raw black/white point correction\n" "only works for the sensors that need it." @@ -17166,26 +17753,21 @@ "this module is deprecated. please use the tone equalizer module instead." msgstr "" -#: ../src/iop/relight.c:263 +#: ../src/iop/relight.c:259 msgid "the fill-light in EV" msgstr "" -#: ../src/iop/relight.c:272 +#: ../src/iop/relight.c:268 msgid "" "select the center of fill-light\n" "ctrl+click to select an area" msgstr "" -#: ../src/iop/relight.c:276 +#: ../src/iop/relight.c:272 msgid "toggle tool for picking median lightness in image" msgstr "" -#: ../src/iop/relight.c:279 ../src/libs/export.c:1131 -#: ../src/libs/metadata_view.c:147 ../src/libs/print_settings.c:2537 -msgid "width" -msgstr "" - -#: ../src/iop/relight.c:280 +#: ../src/iop/relight.c:276 msgid "width of fill-light area defined in zones" msgstr "" @@ -17205,105 +17787,101 @@ msgid "geometric and frequential, RGB" msgstr "" -#: ../src/iop/retouch.c:1538 +#: ../src/iop/retouch.c:1689 msgid "cannot display scales when the blending mask is displayed" msgstr "" -#: ../src/iop/retouch.c:1861 ../src/iop/retouch.c:1863 -#: ../src/iop/retouch.c:1865 ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2045 ../src/iop/retouch.c:2047 +#: ../src/iop/retouch.c:2049 ../src/iop/retouch.c:2051 #, c-format msgid "default tool changed to %s" msgstr "" -#: ../src/iop/retouch.c:1861 +#: ../src/iop/retouch.c:2045 msgid "cloning" msgstr "" -#: ../src/iop/retouch.c:1863 +#: ../src/iop/retouch.c:2047 msgid "healing" msgstr "" -#: ../src/iop/retouch.c:2226 +#: ../src/iop/retouch.c:2448 msgid "shapes:" msgstr "" -#: ../src/iop/retouch.c:2230 +#: ../src/iop/retouch.c:2454 msgid "" "to add a shape select an algorithm and a shape type and click on the image.\n" "shapes are added to the current scale" msgstr "" -#. display & suppress masks -#. copy/paste shapes -#. display final image/current scale -#. auto-levels button -#: ../src/iop/retouch.c:2233 ../src/iop/retouch.c:2334 -#: ../src/iop/retouch.c:2339 ../src/iop/retouch.c:2347 -#: ../src/iop/retouch.c:2351 ../src/iop/retouch.c:2358 -#: ../src/iop/retouch.c:2392 +#: ../src/iop/retouch.c:2458 ../src/iop/retouch.c:2591 +#: ../src/iop/retouch.c:2597 ../src/iop/retouch.c:2606 +#: ../src/iop/retouch.c:2611 ../src/iop/retouch.c:2619 +#: ../src/iop/retouch.c:2664 msgid "editing" msgstr "" -#: ../src/iop/retouch.c:2233 +#: ../src/iop/retouch.c:2459 msgid "show and edit shapes on the current scale" msgstr "" -#: ../src/iop/retouch.c:2234 +#: ../src/iop/retouch.c:2460 msgid "show and edit shapes in restricted mode" msgstr "" -#: ../src/iop/retouch.c:2257 +#: ../src/iop/retouch.c:2489 msgid "algorithms:" msgstr "" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2498 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2510 msgid "tools" msgstr "" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2278 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2518 msgid "activate blur tool" msgstr "" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2493 ../src/iop/retouch.c:2499 +#: ../src/iop/retouch.c:2505 ../src/iop/retouch.c:2511 msgid "change algorithm for current form" msgstr "" -#: ../src/iop/retouch.c:2264 ../src/iop/retouch.c:2281 +#: ../src/iop/retouch.c:2498 ../src/iop/retouch.c:2521 msgid "activate fill tool" msgstr "" -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2284 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2524 msgid "activate cloning tool" msgstr "" -#: ../src/iop/retouch.c:2272 ../src/iop/retouch.c:2287 +#: ../src/iop/retouch.c:2510 ../src/iop/retouch.c:2527 msgid "activate healing tool" msgstr "" #. overwrite tooltip ourself to handle shift+click -#: ../src/iop/retouch.c:2276 +#: ../src/iop/retouch.c:2516 msgid "ctrl+click to change tool for current form" msgstr "" -#: ../src/iop/retouch.c:2277 +#: ../src/iop/retouch.c:2517 msgid "shift+click to set the tool as default" msgstr "" -#: ../src/iop/retouch.c:2296 +#: ../src/iop/retouch.c:2537 msgid "scales:" msgstr "" -#: ../src/iop/retouch.c:2301 +#: ../src/iop/retouch.c:2544 msgid "current:" msgstr "" -#: ../src/iop/retouch.c:2306 +#: ../src/iop/retouch.c:2551 msgid "merge from:" msgstr "" -#: ../src/iop/retouch.c:2314 +#: ../src/iop/retouch.c:2562 msgid "" "top slider adjusts where the merge scales start\n" "bottom slider adjusts the number of scales\n" @@ -17312,103 +17890,103 @@ "bottom line indicates that the scale has shapes on it" msgstr "" -#: ../src/iop/retouch.c:2334 +#: ../src/iop/retouch.c:2591 msgid "display masks" msgstr "" -#: ../src/iop/retouch.c:2339 +#: ../src/iop/retouch.c:2597 msgid "temporarily switch off shapes" msgstr "" -#: ../src/iop/retouch.c:2347 +#: ../src/iop/retouch.c:2606 msgid "paste cut shapes to current scale" msgstr "" -#: ../src/iop/retouch.c:2351 +#: ../src/iop/retouch.c:2611 msgid "cut shapes from current scale" msgstr "" -#: ../src/iop/retouch.c:2358 +#: ../src/iop/retouch.c:2619 msgid "display wavelet scale" msgstr "" -#: ../src/iop/retouch.c:2366 +#: ../src/iop/retouch.c:2627 msgctxt "section" msgid "preview single scale" msgstr "" -#: ../src/iop/retouch.c:2377 +#: ../src/iop/retouch.c:2641 msgid "adjust preview levels" msgstr "" -#: ../src/iop/retouch.c:2392 ../src/iop/rgblevels.c:1051 +#: ../src/iop/retouch.c:2664 ../src/iop/rgblevels.c:1106 msgid "auto levels" msgstr "" -#: ../src/iop/retouch.c:2400 +#: ../src/iop/retouch.c:2672 msgid "shape selected:" msgstr "" -#: ../src/iop/retouch.c:2405 +#: ../src/iop/retouch.c:2678 msgid "" "click on a shape to select it,\n" "to unselect click on an empty space" msgstr "" -#: ../src/iop/retouch.c:2412 +#: ../src/iop/retouch.c:2687 msgid "erase the detail or fills with chosen color" msgstr "" -#: ../src/iop/retouch.c:2419 +#: ../src/iop/retouch.c:2697 msgid "fill color: " msgstr "" -#: ../src/iop/retouch.c:2424 ../src/iop/retouch.c:2425 +#: ../src/iop/retouch.c:2702 ../src/iop/retouch.c:2703 msgid "select fill color" msgstr "" -#: ../src/iop/retouch.c:2430 +#: ../src/iop/retouch.c:2713 msgid "pick fill color from image" msgstr "" -#: ../src/iop/retouch.c:2431 +#: ../src/iop/retouch.c:2714 msgid "pick fill color" msgstr "" -#: ../src/iop/retouch.c:2439 +#: ../src/iop/retouch.c:2724 msgid "adjusts color brightness to fine-tune it. works with erase as well" msgstr "" -#: ../src/iop/retouch.c:2445 +#: ../src/iop/retouch.c:2730 msgid "type for the blur algorithm" msgstr "" -#: ../src/iop/retouch.c:2449 +#: ../src/iop/retouch.c:2734 msgid "radius of the selected blur type" msgstr "" -#: ../src/iop/retouch.c:2455 +#: ../src/iop/retouch.c:2741 msgid "set the opacity on the selected shape" msgstr "" -#: ../src/iop/retouch.c:2461 +#: ../src/iop/retouch.c:2748 msgctxt "section" msgid "retouch tools" msgstr "" #. wavelet decompose -#: ../src/iop/retouch.c:2470 +#: ../src/iop/retouch.c:2757 msgctxt "section" msgid "wavelet decompose" msgstr "" #. shapes -#: ../src/iop/retouch.c:2484 +#: ../src/iop/retouch.c:2771 msgctxt "section" msgid "shapes" msgstr "" -#: ../src/iop/retouch.c:3589 ../src/iop/retouch.c:4427 +#: ../src/iop/retouch.c:3986 ../src/iop/retouch.c:4956 #, c-format msgid "max scale is %i for this image size" msgstr "" @@ -17417,59 +17995,59 @@ msgid "rgb curve" msgstr "" -#: ../src/iop/rgbcurve.c:142 +#: ../src/iop/rgbcurve.c:144 msgid "alter an image’s tones using curves in RGB color space" msgstr "" -#: ../src/iop/rgbcurve.c:193 ../src/iop/tonecurve.c:548 +#: ../src/iop/rgbcurve.c:195 ../src/iop/tonecurve.c:569 msgid "gamma 1.0 (linear)" msgstr "" -#: ../src/iop/rgbcurve.c:203 ../src/iop/tonecurve.c:558 +#: ../src/iop/rgbcurve.c:205 ../src/iop/tonecurve.c:579 msgid "contrast - med (linear)" msgstr "" -#: ../src/iop/rgbcurve.c:212 ../src/iop/tonecurve.c:567 +#: ../src/iop/rgbcurve.c:214 ../src/iop/tonecurve.c:588 msgid "contrast - high (linear)" msgstr "" -#: ../src/iop/rgbcurve.c:226 ../src/iop/tonecurve.c:579 +#: ../src/iop/rgbcurve.c:228 ../src/iop/tonecurve.c:600 msgid "contrast - med (gamma 2.2)" msgstr "" -#: ../src/iop/rgbcurve.c:239 ../src/iop/tonecurve.c:590 +#: ../src/iop/rgbcurve.c:241 ../src/iop/tonecurve.c:611 msgid "contrast - high (gamma 2.2)" msgstr "" -#: ../src/iop/rgbcurve.c:252 ../src/iop/tonecurve.c:603 +#: ../src/iop/rgbcurve.c:254 ../src/iop/tonecurve.c:624 msgid "gamma 2.0" msgstr "" -#: ../src/iop/rgbcurve.c:258 ../src/iop/tonecurve.c:609 +#: ../src/iop/rgbcurve.c:260 ../src/iop/tonecurve.c:630 msgid "gamma 0.5" msgstr "" -#: ../src/iop/rgbcurve.c:263 ../src/iop/tonecurve.c:614 +#: ../src/iop/rgbcurve.c:265 ../src/iop/tonecurve.c:635 msgid "logarithm (base 2)" msgstr "" -#: ../src/iop/rgbcurve.c:268 ../src/iop/tonecurve.c:619 +#: ../src/iop/rgbcurve.c:270 ../src/iop/tonecurve.c:640 msgid "exponential (base 2)" msgstr "" -#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:999 +#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:1038 msgid "choose between linked and independent channels." msgstr "" -#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1003 +#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1043 msgid "curve nodes for r channel" msgstr "" -#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1004 +#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1044 msgid "curve nodes for g channel" msgstr "" -#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1005 +#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1045 msgid "curve nodes for b channel" msgstr "" @@ -17477,15 +18055,15 @@ msgid "rgb levels" msgstr "" -#: ../src/iop/rgblevels.c:122 +#: ../src/iop/rgblevels.c:124 msgid "adjust black, white and mid-gray points in RGB color space" msgstr "" -#: ../src/iop/rgblevels.c:1056 +#: ../src/iop/rgblevels.c:1112 msgid "auto region" msgstr "" -#: ../src/iop/rgblevels.c:1058 +#: ../src/iop/rgblevels.c:1115 msgid "" "apply auto levels based on a region defined by the user\n" "click and drag to draw the area\n" @@ -17497,18 +18075,18 @@ msgid "rotate pixels" msgstr "" -#: ../src/iop/rotatepixels.c:97 ../src/iop/scalepixels.c:82 +#: ../src/iop/rotatepixels.c:99 ../src/iop/scalepixels.c:84 msgid "" "internal module to setup technical specificities of raw sensor.\n" "\n" "you should not touch values here!" msgstr "" -#: ../src/iop/rotatepixels.c:366 +#: ../src/iop/rotatepixels.c:381 msgid "automatic pixel rotation" msgstr "" -#: ../src/iop/rotatepixels.c:367 +#: ../src/iop/rotatepixels.c:382 msgid "" "automatic pixel rotation\n" "only works for the sensors that need it." @@ -17519,57 +18097,57 @@ msgid "scale pixels" msgstr "" -#: ../src/iop/scalepixels.c:271 +#: ../src/iop/scalepixels.c:281 msgid "automatic pixel scaling" msgstr "" -#: ../src/iop/scalepixels.c:272 +#: ../src/iop/scalepixels.c:282 msgid "" "automatic pixel scaling\n" "only works for the sensors that need it." msgstr "" -#: ../src/iop/shadhi.c:175 +#: ../src/iop/shadhi.c:120 msgid "shadows and highlights" msgstr "" -#: ../src/iop/shadhi.c:195 +#: ../src/iop/shadhi.c:142 msgid "" "modify the tonal range of the shadows and highlights\n" "of an image by enhancing local contrast." msgstr "" -#: ../src/iop/shadhi.c:676 ../src/iop/splittoning.c:548 +#: ../src/iop/shadhi.c:711 ../src/iop/splittoning.c:544 msgid "compress" msgstr "" -#: ../src/iop/shadhi.c:683 +#: ../src/iop/shadhi.c:718 msgid "correct shadows" msgstr "" -#: ../src/iop/shadhi.c:684 +#: ../src/iop/shadhi.c:719 msgid "correct highlights" msgstr "" -#: ../src/iop/shadhi.c:685 +#: ../src/iop/shadhi.c:720 msgid "shift white point" msgstr "" -#: ../src/iop/shadhi.c:687 +#: ../src/iop/shadhi.c:722 msgid "filter to use for softening. bilateral avoids halos" msgstr "" -#: ../src/iop/shadhi.c:688 +#: ../src/iop/shadhi.c:723 msgid "" "compress the effect on shadows/highlights and\n" "preserve mid-tones" msgstr "" -#: ../src/iop/shadhi.c:689 +#: ../src/iop/shadhi.c:724 msgid "adjust saturation of shadows" msgstr "" -#: ../src/iop/shadhi.c:690 +#: ../src/iop/shadhi.c:725 msgid "adjust saturation of highlights" msgstr "" @@ -17578,70 +18156,70 @@ msgid "sharpen" msgstr "" -#: ../src/iop/sharpen.c:93 +#: ../src/iop/sharpen.c:95 msgid "sharpen the details in the image using a standard UnSharp Mask (USM)" msgstr "" -#: ../src/iop/sharpen.c:95 +#: ../src/iop/sharpen.c:97 msgid "linear or non-linear, Lab, display or scene-referred" msgstr "" -#: ../src/iop/sharpen.c:97 +#: ../src/iop/sharpen.c:99 msgid "quasi-linear, Lab, display or scene-referred" msgstr "" #. add the preset. #. restrict to raw images -#: ../src/iop/sharpen.c:104 ../src/iop/sharpen.c:108 +#: ../src/iop/sharpen.c:106 ../src/iop/sharpen.c:110 msgid "sharpen" msgstr "" -#: ../src/iop/sharpen.c:443 +#: ../src/iop/sharpen.c:438 msgid "spatial extent of the unblurring" msgstr "" -#: ../src/iop/sharpen.c:447 +#: ../src/iop/sharpen.c:442 msgid "strength of the sharpen" msgstr "" -#: ../src/iop/sharpen.c:451 +#: ../src/iop/sharpen.c:446 msgid "threshold to activate sharpen" msgstr "" -#: ../src/iop/sigmoid.c:89 +#: ../src/iop/sigmoid.c:195 msgid "sigmoid" msgstr "" -#: ../src/iop/sigmoid.c:94 +#: ../src/iop/sigmoid.c:200 msgid "tone mapping|view transform|display transform" msgstr "" -#: ../src/iop/sigmoid.c:99 +#: ../src/iop/sigmoid.c:206 msgid "" "apply a view transform to make a image displayable\n" "on a screen or print. uses a robust and smooth\n" "tone curve with optional color preservation methods." msgstr "" -#: ../src/iop/sigmoid.c:155 +#: ../src/iop/sigmoid.c:258 msgid "neutral gray" msgstr "" -#: ../src/iop/sigmoid.c:160 +#: ../src/iop/sigmoid.c:264 msgid "ACES 100-nit like" msgstr "" -#: ../src/iop/sigmoid.c:165 +#: ../src/iop/sigmoid.c:270 msgid "Reinhard" msgstr "" -#: ../src/iop/sigmoid.c:683 +#: ../src/iop/sigmoid.c:917 msgid "" "compression of the applied curve\n" "implicitly defines the supported input dynamic range" msgstr "" -#: ../src/iop/sigmoid.c:686 +#: ../src/iop/sigmoid.c:920 msgid "" "shift the compression towards shadows or highlights.\n" "negative values increase contrast in shadows.\n" @@ -17649,27 +18227,67 @@ "the opposite end will see a reduction in contrast." msgstr "" -#: ../src/iop/sigmoid.c:695 +#: ../src/iop/sigmoid.c:929 msgid "" "optional correction of the hue twist introduced by\n" "the per-channel processing method." msgstr "" -#: ../src/iop/sigmoid.c:702 +#: ../src/iop/sigmoid.c:936 ../src/iop/sigmoid.c:940 +msgid "primaries" +msgstr "" + +#: ../src/iop/sigmoid.c:937 +msgid "set custom primaries" +msgstr "" + +#: ../src/iop/sigmoid.c:943 +msgid "primaries to use as the base for below adjustments" +msgstr "" + +#: ../src/iop/sigmoid.c:962 +msgid "attenuate the purity of the red primary" +msgstr "" + +#: ../src/iop/sigmoid.c:963 +msgid "rotate the red primary" +msgstr "" + +#: ../src/iop/sigmoid.c:964 +msgid "attenuate the purity of the green primary" +msgstr "" + +#: ../src/iop/sigmoid.c:965 +msgid "rotate the green primary" +msgstr "" + +#: ../src/iop/sigmoid.c:966 +msgid "attenuate the purity of the blue primary" +msgstr "" + +#: ../src/iop/sigmoid.c:967 +msgid "rotate the blue primary" +msgstr "" + +#: ../src/iop/sigmoid.c:974 +msgid "recover some of the original purity after the inset" +msgstr "" + +#: ../src/iop/sigmoid.c:978 msgid "display luminance" msgstr "" -#: ../src/iop/sigmoid.c:706 +#: ../src/iop/sigmoid.c:979 msgid "set display black/white targets" msgstr "" -#: ../src/iop/sigmoid.c:714 +#: ../src/iop/sigmoid.c:987 msgid "" "the black luminance of the target display or print.\n" "can be used creatively for a faded look." msgstr "" -#: ../src/iop/sigmoid.c:719 +#: ../src/iop/sigmoid.c:992 msgid "" "the white luminance of the target display or print.\n" "can be used creatively for a faded look or blowing out whites earlier." @@ -17679,23 +18297,23 @@ msgid "soften" msgstr "" -#: ../src/iop/soften.c:100 +#: ../src/iop/soften.c:102 msgid "create a softened image using the Orton effect" msgstr "" -#: ../src/iop/soften.c:371 +#: ../src/iop/soften.c:366 msgid "the size of blur" msgstr "" -#: ../src/iop/soften.c:375 +#: ../src/iop/soften.c:370 msgid "the saturation of blur" msgstr "" -#: ../src/iop/soften.c:379 +#: ../src/iop/soften.c:374 msgid "the brightness of blur" msgstr "" -#: ../src/iop/soften.c:383 +#: ../src/iop/soften.c:378 msgid "the mix of effect" msgstr "" @@ -17703,55 +18321,55 @@ msgid "split-toning" msgstr "" -#: ../src/iop/splittoning.c:101 +#: ../src/iop/splittoning.c:103 msgid "" "use two specific colors for shadows and highlights and\n" "create a linear toning effect between them up to a pivot." msgstr "" -#: ../src/iop/splittoning.c:118 +#: ../src/iop/splittoning.c:120 msgid "authentic sepia" msgstr "" -#: ../src/iop/splittoning.c:127 +#: ../src/iop/splittoning.c:129 msgid "authentic cyanotype" msgstr "" -#: ../src/iop/splittoning.c:136 +#: ../src/iop/splittoning.c:138 msgid "authentic platinotype" msgstr "" -#: ../src/iop/splittoning.c:145 +#: ../src/iop/splittoning.c:147 msgid "chocolate brown" msgstr "" -#: ../src/iop/splittoning.c:490 +#: ../src/iop/splittoning.c:486 msgid "select the saturation tone" msgstr "" -#: ../src/iop/splittoning.c:494 +#: ../src/iop/splittoning.c:490 msgid "select tone color" msgstr "" -#: ../src/iop/splittoning.c:524 +#: ../src/iop/splittoning.c:520 msgctxt "section" msgid "shadows" msgstr "" -#: ../src/iop/splittoning.c:530 +#: ../src/iop/splittoning.c:526 msgctxt "section" msgid "highlights" msgstr "" -#: ../src/iop/splittoning.c:539 +#: ../src/iop/splittoning.c:535 msgid "balance" msgstr "" -#: ../src/iop/splittoning.c:546 +#: ../src/iop/splittoning.c:542 msgid "the balance of center of split-toning" msgstr "" -#: ../src/iop/splittoning.c:550 +#: ../src/iop/splittoning.c:546 msgid "" "compress the effect on highlights/shadows and\n" "preserve mid-tones" @@ -17773,396 +18391,386 @@ msgid "geometric, raw" msgstr "" -#: ../src/iop/spots.c:226 +#: ../src/iop/spots.c:238 msgid "spot module is limited to 64 shapes. please add a new instance!" msgstr "" -#: ../src/iop/spots.c:872 +#: ../src/iop/spots.c:874 msgid "number of strokes:" msgstr "" -#: ../src/iop/spots.c:876 +#: ../src/iop/spots.c:878 msgid "" "click on a shape and drag on canvas.\n" "use the mouse wheel to adjust size.\n" "right click to remove a shape." msgstr "" -#: ../src/iop/spots.c:879 +#: ../src/iop/spots.c:881 msgid "show and edit shapes" msgstr "" -#: ../src/iop/temperature.c:204 +#: ../src/iop/temperature.c:212 msgctxt "modulename" msgid "white balance" msgstr "" -#: ../src/iop/temperature.c:211 +#: ../src/iop/temperature.c:219 msgid "scale raw RGB channels to balance white and help demosaicing" msgstr "" -#: ../src/iop/temperature.c:1149 -msgid "white balance applied twice" -msgstr "" - -#: ../src/iop/temperature.c:1150 -msgid "" -"the color calibration module is enabled,\n" -"and performing chromatic adaptation.\n" -"set the white balance here to camera reference (D65)\n" -"or disable chromatic adaptation in color calibration." -msgstr "" - -#: ../src/iop/temperature.c:1430 +#: ../src/iop/temperature.c:1388 #, c-format msgid "`%s' color matrix not found for image" msgstr "" -#: ../src/iop/temperature.c:1459 +#: ../src/iop/temperature.c:1418 #, c-format msgid "failed to read camera white balance information from `%s'!" msgstr "" -#: ../src/iop/temperature.c:1631 +#: ../src/iop/temperature.c:1612 msgctxt "white balance" msgid "as shot" msgstr "" #. old "spot", reason: describes exactly what'll happen -#: ../src/iop/temperature.c:1634 +#: ../src/iop/temperature.c:1615 msgctxt "white balance" msgid "from image area" msgstr "" -#: ../src/iop/temperature.c:1635 +#: ../src/iop/temperature.c:1616 msgctxt "white balance" msgid "user modified" msgstr "" #. old "camera neutral", reason: better matches intent -#: ../src/iop/temperature.c:1637 +#: ../src/iop/temperature.c:1618 msgctxt "white balance" msgid "camera reference" msgstr "" -#: ../src/iop/temperature.c:1920 ../src/iop/temperature.c:1938 +#: ../src/iop/temperature.c:1897 ../src/iop/temperature.c:1915 msgid "green channel coefficient" msgstr "" -#: ../src/iop/temperature.c:1922 +#: ../src/iop/temperature.c:1899 msgid "magenta channel coefficient" msgstr "" -#: ../src/iop/temperature.c:1924 +#: ../src/iop/temperature.c:1901 msgid "cyan channel coefficient" msgstr "" -#: ../src/iop/temperature.c:1926 +#: ../src/iop/temperature.c:1903 msgid "yellow channel coefficient" msgstr "" -#: ../src/iop/temperature.c:1936 +#: ../src/iop/temperature.c:1913 msgid "red channel coefficient" msgstr "" -#: ../src/iop/temperature.c:1940 +#: ../src/iop/temperature.c:1917 msgid "blue channel coefficient" msgstr "" -#: ../src/iop/temperature.c:1942 +#: ../src/iop/temperature.c:1918 +msgid "emerald" +msgstr "" + +#: ../src/iop/temperature.c:1919 msgid "emerald channel coefficient" msgstr "" #. relabel to settings to remove confusion between module presets #. and white balance settings -#: ../src/iop/temperature.c:2029 ../src/iop/temperature.c:2042 -#: ../src/iop/temperature.c:2049 ../src/iop/temperature.c:2055 -#: ../src/iop/temperature.c:2074 +#: ../src/iop/temperature.c:1997 ../src/iop/temperature.c:2010 +#: ../src/iop/temperature.c:2017 ../src/iop/temperature.c:2023 +#: ../src/iop/temperature.c:2042 msgid "settings" msgstr "" -#: ../src/iop/temperature.c:2029 +#: ../src/iop/temperature.c:1997 msgid "as shot" msgstr "" -#: ../src/iop/temperature.c:2032 +#: ../src/iop/temperature.c:2000 msgid "set white balance to as shot" msgstr "" -#: ../src/iop/temperature.c:2042 +#: ../src/iop/temperature.c:2010 msgid "from image area" msgstr "" -#: ../src/iop/temperature.c:2049 +#: ../src/iop/temperature.c:2017 msgid "user modified" msgstr "" -#: ../src/iop/temperature.c:2052 +#: ../src/iop/temperature.c:2020 msgid "set white balance to user modified" msgstr "" -#: ../src/iop/temperature.c:2055 +#: ../src/iop/temperature.c:2023 msgid "camera reference" msgstr "" -#: ../src/iop/temperature.c:2060 +#: ../src/iop/temperature.c:2028 msgid "" "set white balance to camera reference point\n" "in most cases it should be D65" msgstr "" -#: ../src/iop/temperature.c:2075 +#: ../src/iop/temperature.c:2043 msgid "choose white balance setting" msgstr "" -#: ../src/iop/temperature.c:2080 +#: ../src/iop/temperature.c:2048 msgid "finetune" msgstr "" -#: ../src/iop/temperature.c:2082 +#: ../src/iop/temperature.c:2050 msgid "fine tune camera's white balance setting" msgstr "" -#: ../src/iop/temperature.c:2093 +#: ../src/iop/temperature.c:2058 msgctxt "section" msgid "scene illuminant temp" msgstr "" -#: ../src/iop/temperature.c:2094 +#: ../src/iop/temperature.c:2059 msgid "click to cycle color mode on sliders" msgstr "" -#: ../src/iop/temperature.c:2108 +#: ../src/iop/temperature.c:2073 msgid "color temperature (in Kelvin)" msgstr "" -#: ../src/iop/temperature.c:2114 +#: ../src/iop/temperature.c:2079 msgid "tint" msgstr "" -#: ../src/iop/temperature.c:2117 +#: ../src/iop/temperature.c:2082 msgid "color tint of the image, from magenta (value < 1) to green (value > 1)" msgstr "" -#: ../src/iop/temperature.c:2123 +#: ../src/iop/temperature.c:2088 msgid "channel coefficients" msgstr "" -#: ../src/iop/temperature.c:2158 +#: ../src/iop/temperature.c:2097 +msgid "various" +msgstr "" + +#: ../src/iop/temperature.c:2123 msgid "white balance disabled for camera" msgstr "" -#: ../src/iop/tonecurve.c:190 +#: ../src/iop/tonecurve.c:161 msgid "tone curve" msgstr "" -#: ../src/iop/tonecurve.c:210 +#: ../src/iop/tonecurve.c:183 msgid "alter an image’s tones using curves" msgstr "" -#: ../src/iop/tonecurve.c:1125 +#: ../src/iop/tonecurve.c:1147 msgid "" "if set to auto, a and b curves have no effect and are not displayed. chroma " "values (a and b) of each pixel are then adjusted based on L curve data. auto " "XYZ is similar but applies the saturation changes in XYZ space." msgstr "" -#: ../src/iop/tonecurve.c:1134 +#: ../src/iop/tonecurve.c:1156 msgid "tonecurve for L channel" msgstr "" -#: ../src/iop/tonecurve.c:1135 +#: ../src/iop/tonecurve.c:1157 msgid "tonecurve for a channel" msgstr "" -#: ../src/iop/tonecurve.c:1136 +#: ../src/iop/tonecurve.c:1158 msgid "tonecurve for b channel" msgstr "" -#: ../src/iop/tonecurve.c:1143 ../src/iop/watermark.c:1305 -#: ../src/libs/colorpicker.c:597 +#: ../src/iop/tonecurve.c:1165 ../src/iop/watermark.c:1353 +#: ../src/libs/colorpicker.c:675 msgid "pick color" msgstr "" -#: ../src/iop/toneequal.c:311 +#: ../src/iop/toneequal.c:319 msgid "tone equalizer" msgstr "" -#: ../src/iop/toneequal.c:316 +#: ../src/iop/toneequal.c:324 msgid "tone curve|tone mapping|relight|background light|shadows highlights" msgstr "" -#: ../src/iop/toneequal.c:323 +#: ../src/iop/toneequal.c:331 msgid "relight the scene as if the lighting was done directly on the scene" msgstr "" -#: ../src/iop/toneequal.c:326 +#: ../src/iop/toneequal.c:334 msgid "quasi-linear, RGB" msgstr "" -#: ../src/iop/toneequal.c:327 +#: ../src/iop/toneequal.c:335 msgid "quasi-linear, RGB, scene-referred" msgstr "" -#: ../src/iop/toneequal.c:458 +#: ../src/iop/toneequal.c:489 msgid "simple tone curve" msgstr "" -#: ../src/iop/toneequal.c:472 +#: ../src/iop/toneequal.c:503 msgid "mask blending: all purposes" msgstr "" -#: ../src/iop/toneequal.c:479 +#: ../src/iop/toneequal.c:510 msgid "mask blending: people with backlight" msgstr "" -#: ../src/iop/toneequal.c:496 +#: ../src/iop/toneequal.c:527 msgid "compress shadows/highlights (EIGF): strong" msgstr "" -#: ../src/iop/toneequal.c:501 +#: ../src/iop/toneequal.c:532 msgid "compress shadows/highlights (GF): strong" msgstr "" -#: ../src/iop/toneequal.c:510 +#: ../src/iop/toneequal.c:541 msgid "compress shadows/highlights (EIGF): medium" msgstr "" -#: ../src/iop/toneequal.c:515 +#: ../src/iop/toneequal.c:546 msgid "compress shadows/highlights (GF): medium" msgstr "" -#: ../src/iop/toneequal.c:524 +#: ../src/iop/toneequal.c:555 msgid "compress shadows/highlights (EIGF): soft" msgstr "" -#: ../src/iop/toneequal.c:529 +#: ../src/iop/toneequal.c:560 msgid "compress shadows/highlights (GF): soft" msgstr "" -#: ../src/iop/toneequal.c:537 +#: ../src/iop/toneequal.c:568 msgid "contrast tone curve: soft" msgstr "" -#: ../src/iop/toneequal.c:542 +#: ../src/iop/toneequal.c:573 msgid "contrast tone curve: medium" msgstr "" -#: ../src/iop/toneequal.c:547 +#: ../src/iop/toneequal.c:578 msgid "contrast tone curve: strong" msgstr "" -#: ../src/iop/toneequal.c:570 +#: ../src/iop/toneequal.c:601 msgid "relight: fill-in" msgstr "" -#: ../src/iop/toneequal.c:627 -msgid "" -"tone equalizer needs to be after distortion modules in the pipeline – " -"disabled" -msgstr "" - -#: ../src/iop/toneequal.c:1091 +#: ../src/iop/toneequal.c:1120 msgid "tone equalizer failed to allocate memory, check your RAM settings" msgstr "" -#: ../src/iop/toneequal.c:1795 ../src/iop/toneequal.c:2180 +#: ../src/iop/toneequal.c:1825 ../src/iop/toneequal.c:2196 msgid "the interpolation is unstable, decrease the curve smoothing" msgstr "" -#: ../src/iop/toneequal.c:1830 ../src/iop/toneequal.c:1897 +#: ../src/iop/toneequal.c:1860 ../src/iop/toneequal.c:1927 msgid "wait for the preview to finish recomputing" msgstr "" -#: ../src/iop/toneequal.c:2037 ../src/iop/toneequal.c:2587 +#: ../src/iop/toneequal.c:2069 ../src/iop/toneequal.c:2628 msgid "" "scroll over image to change tone exposure\n" "shift+scroll for large steps; ctrl+scroll for small steps" msgstr "" -#: ../src/iop/toneequal.c:2185 +#: ../src/iop/toneequal.c:2201 msgid "some parameters are out-of-bounds" msgstr "" -#: ../src/iop/toneequal.c:2524 +#: ../src/iop/toneequal.c:2518 #, c-format msgid "%+.1f EV" msgstr "" -#: ../src/iop/toneequal.c:3236 +#: ../src/iop/toneequal.c:3283 #, c-format msgid "[%s over image] change tone exposure" msgstr "" -#: ../src/iop/toneequal.c:3239 +#: ../src/iop/toneequal.c:3286 #, c-format msgid "[%s over image] change tone exposure in large steps" msgstr "" -#: ../src/iop/toneequal.c:3242 +#: ../src/iop/toneequal.c:3289 #, c-format msgid "[%s over image] change tone exposure in small steps" msgstr "" #. Simple view -#: ../src/iop/toneequal.c:3323 ../src/iop/toneequal.c:3352 -#: ../src/iop/toneequal.c:3353 ../src/iop/toneequal.c:3354 -#: ../src/iop/toneequal.c:3355 ../src/iop/toneequal.c:3356 -#: ../src/iop/toneequal.c:3357 ../src/iop/toneequal.c:3358 -#: ../src/iop/toneequal.c:3359 ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3376 ../src/iop/toneequal.c:3405 +#: ../src/iop/toneequal.c:3406 ../src/iop/toneequal.c:3407 +#: ../src/iop/toneequal.c:3408 ../src/iop/toneequal.c:3409 +#: ../src/iop/toneequal.c:3410 ../src/iop/toneequal.c:3411 +#: ../src/iop/toneequal.c:3412 ../src/iop/toneequal.c:3413 msgid "simple" msgstr "" -#: ../src/iop/toneequal.c:3352 +#: ../src/iop/toneequal.c:3405 msgid "-8 EV" msgstr "" -#: ../src/iop/toneequal.c:3353 +#: ../src/iop/toneequal.c:3406 msgid "-7 EV" msgstr "" -#: ../src/iop/toneequal.c:3354 +#: ../src/iop/toneequal.c:3407 msgid "-6 EV" msgstr "" -#: ../src/iop/toneequal.c:3355 +#: ../src/iop/toneequal.c:3408 msgid "-5 EV" msgstr "" -#: ../src/iop/toneequal.c:3356 +#: ../src/iop/toneequal.c:3409 msgid "-4 EV" msgstr "" -#: ../src/iop/toneequal.c:3357 +#: ../src/iop/toneequal.c:3410 msgid "-3 EV" msgstr "" -#: ../src/iop/toneequal.c:3358 +#: ../src/iop/toneequal.c:3411 msgid "-2 EV" msgstr "" -#: ../src/iop/toneequal.c:3359 +#: ../src/iop/toneequal.c:3412 msgid "-1 EV" msgstr "" -#: ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3413 msgid "+0 EV" msgstr "" #. Advanced view -#: ../src/iop/toneequal.c:3364 +#: ../src/iop/toneequal.c:3417 msgid "advanced" msgstr "" -#: ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3444 msgid "double-click to reset the curve" msgstr "" -#: ../src/iop/toneequal.c:3395 +#: ../src/iop/toneequal.c:3448 msgid "curve smoothing" msgstr "" -#: ../src/iop/toneequal.c:3398 +#: ../src/iop/toneequal.c:3451 msgid "" "positive values will produce more progressive tone transitions\n" "but the curve might become oscillatory in some settings.\n" @@ -18171,25 +18779,25 @@ msgstr "" #. Masking options -#: ../src/iop/toneequal.c:3408 +#: ../src/iop/toneequal.c:3461 msgid "masking" msgstr "" -#: ../src/iop/toneequal.c:3413 +#: ../src/iop/toneequal.c:3466 msgid "" "preview the mask and chose the estimator that gives you the\n" "higher contrast between areas to dodge and areas to burn" msgstr "" -#: ../src/iop/toneequal.c:3416 +#: ../src/iop/toneequal.c:3469 msgid "details" msgstr "" -#: ../src/iop/toneequal.c:3417 +#: ../src/iop/toneequal.c:3470 msgid "preserve details" msgstr "" -#: ../src/iop/toneequal.c:3420 +#: ../src/iop/toneequal.c:3473 msgid "" "'no' affects global and local contrast (safe if you only add contrast)\n" "'guided filter' only affects global contrast and tries to preserve local " @@ -18203,20 +18811,20 @@ "filter' methods" msgstr "" -#: ../src/iop/toneequal.c:3433 +#: ../src/iop/toneequal.c:3486 msgid "" "number of passes of guided filter to apply\n" "helps diffusing the edges of the filter at the expense of speed" msgstr "" -#: ../src/iop/toneequal.c:3441 +#: ../src/iop/toneequal.c:3494 msgid "" "diameter of the blur in percent of the largest image size\n" "warning: big values of this parameter can make the darkroom\n" "preview much slower if denoise profiled is used." msgstr "" -#: ../src/iop/toneequal.c:3449 +#: ../src/iop/toneequal.c:3502 msgid "" "precision of the feathering:\n" "higher values force the mask to follow edges more closely\n" @@ -18225,33 +18833,33 @@ "but may lead to inaccurate edges taping and halos" msgstr "" -#: ../src/iop/toneequal.c:3456 +#: ../src/iop/toneequal.c:3509 msgctxt "section" msgid "mask post-processing" msgstr "" -#: ../src/iop/toneequal.c:3467 +#: ../src/iop/toneequal.c:3520 msgid "" "mask histogram span between the first and last deciles.\n" "the central line shows the average. orange bars appear at extrema if " "clipping occurs." msgstr "" -#: ../src/iop/toneequal.c:3475 +#: ../src/iop/toneequal.c:3528 msgid "" "0 disables the quantization.\n" "higher values posterize the luminance mask to help the guiding\n" "produce piece-wise smooth areas when using high feathering values" msgstr "" -#: ../src/iop/toneequal.c:3484 +#: ../src/iop/toneequal.c:3537 msgid "" "use this to slide the mask average exposure along channels\n" "for a better control of the exposure correction with the available nodes.\n" "the magic wand will auto-adjust the average exposure" msgstr "" -#: ../src/iop/toneequal.c:3497 +#: ../src/iop/toneequal.c:3550 msgid "" "use this to counter the averaging effect of the guided filter\n" "and dilate the mask contrast around -4EV\n" @@ -18260,7 +18868,7 @@ "the magic wand will auto-adjust the contrast" msgstr "" -#: ../src/iop/toneequal.c:3520 ../src/iop/toneequal.c:3523 +#: ../src/iop/toneequal.c:3573 ../src/iop/toneequal.c:3576 msgid "display exposure mask" msgstr "" @@ -18274,20 +18882,20 @@ "module instead." msgstr "" -#: ../src/iop/velvia.c:79 +#: ../src/iop/velvia.c:70 msgid "velvia" msgstr "" -#: ../src/iop/velvia.c:104 +#: ../src/iop/velvia.c:97 msgid "" "resaturate giving more weight to blacks, whites and low-saturation pixels" msgstr "" -#: ../src/iop/velvia.c:281 +#: ../src/iop/velvia.c:290 msgid "the strength of saturation boost" msgstr "" -#: ../src/iop/velvia.c:284 +#: ../src/iop/velvia.c:293 msgid "how much to spare highlights and shadows" msgstr "" @@ -18297,62 +18905,58 @@ "balance rgb module instead." msgstr "" -#: ../src/iop/vibrance.c:93 +#: ../src/iop/vibrance.c:95 msgid "" "saturate and reduce the lightness of the most saturated pixels\n" "to make the colors more vivid." msgstr "" -#: ../src/iop/vibrance.c:217 +#: ../src/iop/vibrance.c:211 msgid "the amount of vibrance" msgstr "" -#: ../src/iop/vignette.c:153 -msgid "vignetting" -msgstr "" - -#: ../src/iop/vignette.c:158 +#: ../src/iop/vignette.c:119 msgid "simulate a lens fall-off close to edges" msgstr "" -#: ../src/iop/vignette.c:940 +#: ../src/iop/vignette.c:1022 msgid "lomo" msgstr "" -#: ../src/iop/vignette.c:974 +#: ../src/iop/vignette.c:1061 msgctxt "section" msgid "position / form" msgstr "" -#: ../src/iop/vignette.c:981 +#: ../src/iop/vignette.c:1069 msgid "dithering" msgstr "" -#: ../src/iop/vignette.c:992 +#: ../src/iop/vignette.c:1081 msgid "the radii scale of vignette for start of fall-off" msgstr "" -#: ../src/iop/vignette.c:993 +#: ../src/iop/vignette.c:1083 msgid "the radii scale of vignette for end of fall-off" msgstr "" -#: ../src/iop/vignette.c:994 +#: ../src/iop/vignette.c:1084 msgid "strength of effect on brightness" msgstr "" -#: ../src/iop/vignette.c:995 +#: ../src/iop/vignette.c:1085 msgid "strength of effect on saturation" msgstr "" -#: ../src/iop/vignette.c:996 +#: ../src/iop/vignette.c:1086 msgid "horizontal offset of center of the effect" msgstr "" -#: ../src/iop/vignette.c:997 +#: ../src/iop/vignette.c:1087 msgid "vertical offset of center of the effect" msgstr "" -#: ../src/iop/vignette.c:998 +#: ../src/iop/vignette.c:1090 msgid "" "shape factor\n" "0 produces a rectangle\n" @@ -18360,71 +18964,71 @@ "2 produces a diamond" msgstr "" -#: ../src/iop/vignette.c:1000 +#: ../src/iop/vignette.c:1094 msgid "enable to have the ratio automatically follow the image size" msgstr "" -#: ../src/iop/vignette.c:1001 +#: ../src/iop/vignette.c:1095 msgid "width-to-height ratio" msgstr "" -#: ../src/iop/vignette.c:1002 +#: ../src/iop/vignette.c:1097 msgid "add some level of random noise to prevent banding" msgstr "" -#: ../src/iop/vignette.c:1009 +#: ../src/iop/vignette.c:1105 #, c-format msgid "[%s on node] change vignette/feather size" msgstr "" -#: ../src/iop/vignette.c:1011 +#: ../src/iop/vignette.c:1108 #, c-format msgid "[%s on node] change vignette/feather size keeping ratio" msgstr "" -#: ../src/iop/vignette.c:1013 +#: ../src/iop/vignette.c:1111 #, c-format msgid "[%s on center] move vignette" msgstr "" -#: ../src/iop/watermark.c:371 +#: ../src/iop/watermark.c:416 msgid "watermark" msgstr "" -#: ../src/iop/watermark.c:376 +#: ../src/iop/watermark.c:421 msgid "overlay an SVG watermark like a signature on the picture" msgstr "" -#: ../src/iop/watermark.c:1258 +#: ../src/iop/watermark.c:1306 msgid "marker" msgstr "" -#: ../src/iop/watermark.c:1261 +#: ../src/iop/watermark.c:1309 #, c-format msgid "SVG watermarks in %s/watermarks or %s/watermarks" msgstr "" #. Simple text -#: ../src/iop/watermark.c:1271 ../src/iop/watermark.c:1272 +#: ../src/iop/watermark.c:1319 ../src/iop/watermark.c:1320 msgid "text" msgstr "" -#: ../src/iop/watermark.c:1273 +#: ../src/iop/watermark.c:1321 msgid "" "text string, tag:\n" "$(WATERMARK_TEXT)" msgstr "" -#: ../src/iop/watermark.c:1275 +#: ../src/iop/watermark.c:1323 msgid "content" msgstr "" #. Text font -#: ../src/iop/watermark.c:1280 +#: ../src/iop/watermark.c:1328 msgid "font" msgstr "" -#: ../src/iop/watermark.c:1285 +#: ../src/iop/watermark.c:1333 msgid "" "text font, tags:\n" "$(WATERMARK_FONT_FAMILY)\n" @@ -18432,57 +19036,59 @@ "$(WATERMARK_FONT_WEIGHT)" msgstr "" -#: ../src/iop/watermark.c:1300 +#: ../src/iop/watermark.c:1348 msgid "" "watermark color, tag:\n" "$(WATERMARK_COLOR)" msgstr "" -#: ../src/iop/watermark.c:1302 +#: ../src/iop/watermark.c:1350 msgid "select watermark color" msgstr "" -#: ../src/iop/watermark.c:1304 +#: ../src/iop/watermark.c:1352 msgid "pick color from image" msgstr "" -#: ../src/iop/watermark.c:1317 +#: ../src/iop/watermark.c:1365 msgctxt "section" msgid "placement" msgstr "" -#: ../src/iop/watermark.c:1330 +#: ../src/iop/watermark.c:1378 msgid "" -"scaling is done relative to this object\n" -"• image: fits marker into whole image\n" -"• larger border: fits larger marker border to larger image border\n" -"• smaller border: fits larger marker border to smaller image border\n" -"• height: fits marker height to image height, e.g. suitable for texts\n" -"• advanced options: activates two additional drop-down menus" +"choose how to scale the watermark\n" +"• image: scale watermark relative to whole image\n" +"• larger border: scale larger watermark border relative to larger image " +"border\n" +"• smaller border: scale larger watermark border relative to smaller image " +"border\n" +"• height: scale watermark height to image height\n" +"• advanced options: choose watermark and image dimensions independently" msgstr "" -#: ../src/iop/watermark.c:1339 -msgid "reference to which the marker should be scaled to" +#: ../src/iop/watermark.c:1387 +msgid "reference image dimension against which to scale the watermark" msgstr "" -#: ../src/iop/watermark.c:1343 -msgid "length of the marker which is used as scaling reference" +#: ../src/iop/watermark.c:1391 +msgid "watermark dimension to scale" msgstr "" -#: ../src/iop/watermark.c:1347 ../src/libs/print_settings.c:2675 +#: ../src/iop/watermark.c:1395 ../src/libs/print_settings.c:2675 msgid "alignment" msgstr "" #. Let's add some tooltips and hook up some signals... -#: ../src/iop/watermark.c:1368 +#: ../src/iop/watermark.c:1416 msgid "the opacity of the watermark" msgstr "" -#: ../src/iop/watermark.c:1369 +#: ../src/iop/watermark.c:1417 msgid "the scale of the watermark" msgstr "" -#: ../src/iop/watermark.c:1370 +#: ../src/iop/watermark.c:1418 msgid "the rotation of the watermark" msgstr "" @@ -18490,7 +19096,7 @@ msgid "zone system" msgstr "" -#: ../src/iop/zonesystem.c:490 +#: ../src/iop/zonesystem.c:486 msgid "" "lightness zones\n" "use mouse scrollwheel to change the number of zones\n" @@ -18528,7 +19134,7 @@ msgid "camera control" msgstr "" -#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2360 +#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2679 msgid "modes" msgstr "" @@ -18626,54 +19232,67 @@ msgid "WB" msgstr "" -#: ../src/libs/collect.c:151 +#: ../src/libs/collect.c:164 msgid "collections" msgstr "" -#: ../src/libs/collect.c:407 +#: ../src/libs/collect.c:424 msgid "search filmroll" msgstr "" -#: ../src/libs/collect.c:490 +#: ../src/libs/collect.c:507 #, c-format msgid "problem selecting new path for the filmroll in %s" msgstr "" -#: ../src/libs/collect.c:553 +#: ../src/libs/collect.c:579 msgid "search filmroll..." msgstr "" -#: ../src/libs/collect.c:557 +#: ../src/libs/collect.c:584 msgid "remove..." msgstr "" -#: ../src/libs/collect.c:1225 +#: ../src/libs/collect.c:1310 msgid "uncategorized" msgstr "" -#: ../src/libs/collect.c:2138 +#: ../src/libs/collect.c:2172 ../src/libs/filters/rating_range.c:120 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:151 +#: ../src/libs/filters/rating_range.c:302 +msgid "rejected" +msgstr "" + +#: ../src/libs/collect.c:2175 ../src/libs/filters/rating_range.c:122 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:303 +msgid "not rated" +msgstr "" + +#: ../src/libs/collect.c:2359 msgid "use <, <=, >, >=, <>, =, [;] as operators" msgstr "" -#: ../src/libs/collect.c:2142 +#: ../src/libs/collect.c:2363 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "star rating: 0-5\n" "rejected images: -1" msgstr "" -#: ../src/libs/collect.c:2149 +#: ../src/libs/collect.c:2371 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)" msgstr "" -#: ../src/libs/collect.c:2156 +#: ../src/libs/collect.c:2378 #, no-c-format msgid "use `%' as wildcard and `,' to separate values" msgstr "" -#: ../src/libs/collect.c:2162 +#: ../src/libs/collect.c:2385 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -18682,7 +19301,7 @@ "ctrl+click to include only sub-hierarchies (suffix `|%')" msgstr "" -#: ../src/libs/collect.c:2174 +#: ../src/libs/collect.c:2398 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -18691,7 +19310,7 @@ "ctrl+click to include only sub-locations (suffix `|%')" msgstr "" -#: ../src/libs/collect.c:2186 +#: ../src/libs/collect.c:2411 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -18700,111 +19319,103 @@ "ctrl+click to include only sub-folders (suffix `|%')" msgstr "" -#: ../src/libs/collect.c:2197 +#: ../src/libs/collect.c:2422 #, no-c-format msgid "use `%' as wildcard" msgstr "" -#: ../src/libs/collect.c:2263 ../src/libs/collect.c:2277 -#: ../src/libs/collect.c:2800 +#: ../src/libs/collect.c:2488 ../src/libs/collect.c:2502 +#: ../src/libs/collect.c:3111 msgid "clear this rule" msgstr "" -#: ../src/libs/collect.c:2267 +#: ../src/libs/collect.c:2492 msgid "clear this rule or add new rules" msgstr "" -#: ../src/libs/collect.c:2806 +#: ../src/libs/collect.c:3117 msgid "narrow down search" msgstr "" -#: ../src/libs/collect.c:2811 +#: ../src/libs/collect.c:3124 msgid "add more images" msgstr "" -#: ../src/libs/collect.c:2816 +#: ../src/libs/collect.c:3131 msgid "exclude images" msgstr "" -#: ../src/libs/collect.c:2823 +#: ../src/libs/collect.c:3140 msgid "change to: and" msgstr "" -#: ../src/libs/collect.c:2828 +#: ../src/libs/collect.c:3147 msgid "change to: or" msgstr "" -#: ../src/libs/collect.c:2833 +#: ../src/libs/collect.c:3154 msgid "change to: except" msgstr "" #. the different categories -#: ../src/libs/collect.c:2859 ../src/libs/filtering.c:857 -#: ../src/libs/filtering.c:924 ../src/libs/filtering.c:1558 -#: ../src/libs/filtering.c:1890 +#: ../src/libs/collect.c:3184 ../src/libs/filtering.c:883 +#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1620 +#: ../src/libs/filtering.c:1964 msgid "files" msgstr "" -#: ../src/libs/collect.c:2864 ../src/libs/export_metadata.c:312 -#: ../src/libs/filtering.c:862 ../src/libs/filtering.c:929 -#: ../src/libs/filtering.c:1566 ../src/libs/filtering.c:1894 -#: ../src/libs/image.c:464 ../src/libs/image.c:574 ../src/libs/image.c:582 -#: ../src/libs/metadata.c:676 ../src/libs/metadata_view.c:1226 +#: ../src/libs/collect.c:3189 ../src/libs/export_metadata.c:301 +#: ../src/libs/filtering.c:888 ../src/libs/filtering.c:955 +#: ../src/libs/filtering.c:1628 ../src/libs/filtering.c:1968 +#: ../src/libs/image.c:495 ../src/libs/image.c:633 ../src/libs/image.c:645 +#: ../src/libs/metadata.c:509 ../src/libs/metadata_view.c:1256 msgid "metadata" msgstr "" -#: ../src/libs/collect.c:2883 ../src/libs/filtering.c:883 -#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1892 +#: ../src/libs/collect.c:3208 ../src/libs/filtering.c:909 +#: ../src/libs/filtering.c:976 ../src/libs/filtering.c:1966 msgid "times" msgstr "" -#: ../src/libs/collect.c:2891 ../src/libs/filtering.c:891 -#: ../src/libs/filtering.c:958 ../src/libs/filtering.c:1590 +#: ../src/libs/collect.c:3216 ../src/libs/filtering.c:917 +#: ../src/libs/filtering.c:984 ../src/libs/filtering.c:1652 msgid "capture details" msgstr "" -#: ../src/libs/collect.c:2900 ../src/libs/filtering.c:900 -#: ../src/libs/filtering.c:967 ../src/libs/filtering.c:1602 -#: ../src/libs/filtering.c:1896 ../src/libs/tools/darktable.c:65 +#: ../src/libs/collect.c:3225 ../src/libs/filtering.c:926 +#: ../src/libs/filtering.c:993 ../src/libs/filtering.c:1664 +#: ../src/libs/filtering.c:1970 ../src/libs/tools/darktable.c:61 msgid "darktable" msgstr "" -#: ../src/libs/collect.c:2913 +#: ../src/libs/collect.c:3240 msgid "collections settings" msgstr "" -#: ../src/libs/collect.c:2916 ../src/libs/export_metadata.c:288 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:228 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3472 -msgid "save" -msgstr "" - -#: ../src/libs/collect.c:2936 ../src/libs/export.c:1046 -#: ../src/libs/metadata.c:779 ../src/libs/metadata_view.c:1306 -#: ../src/libs/recentcollect.c:293 ../src/libs/tagging.c:3494 +#: ../src/libs/collect.c:3267 ../src/libs/export.c:1126 +#: ../src/libs/metadata.c:615 ../src/libs/metadata_view.c:1339 +#: ../src/libs/recentcollect.c:295 ../src/libs/tagging.c:3526 msgid "preferences..." msgstr "" -#: ../src/libs/collect.c:3041 ../src/libs/filtering.c:1432 +#: ../src/libs/collect.c:3388 ../src/libs/filtering.c:1494 msgid "AND" msgstr "" -#: ../src/libs/collect.c:3046 ../src/libs/filtering.c:1437 +#: ../src/libs/collect.c:3393 ../src/libs/filtering.c:1499 msgid "OR" msgstr "" #. case DT_LIB_COLLECT_MODE_AND_NOT: -#: ../src/libs/collect.c:3051 ../src/libs/filtering.c:1442 +#: ../src/libs/collect.c:3398 ../src/libs/filtering.c:1504 msgid "BUT NOT" msgstr "" -#: ../src/libs/collect.c:3223 ../src/libs/filtering.c:2164 +#: ../src/libs/collect.c:3588 ../src/libs/filtering.c:2238 msgid "revert to a previous set of rules" msgstr "" -#: ../src/libs/collect.c:3280 +#: ../src/libs/collect.c:3671 msgid "jump back to previous collection" msgstr "" @@ -18828,50 +19439,50 @@ msgid "color picker" msgstr "" -#: ../src/libs/colorpicker.c:463 +#: ../src/libs/colorpicker.c:513 msgid "" "hover to highlight sample on canvas,\n" "click to lock sample,\n" "right-click to load sample area into active color picker" msgstr "" -#: ../src/libs/colorpicker.c:561 ../src/libs/colorpicker.c:612 +#: ../src/libs/colorpicker.c:626 ../src/libs/colorpicker.c:693 msgid "click to (un)hide large color patch" msgstr "" -#: ../src/libs/colorpicker.c:575 +#: ../src/libs/colorpicker.c:649 msgid "statistic" msgstr "" -#: ../src/libs/colorpicker.c:576 +#: ../src/libs/colorpicker.c:650 msgid "select which statistic to show" msgstr "" -#: ../src/libs/colorpicker.c:585 +#: ../src/libs/colorpicker.c:660 msgid "select which color mode to use" msgstr "" -#: ../src/libs/colorpicker.c:594 +#: ../src/libs/colorpicker.c:671 msgid "" "turn on color picker\n" "ctrl+click or right-click to select an area" msgstr "" -#: ../src/libs/colorpicker.c:636 +#: ../src/libs/colorpicker.c:722 msgid "add sample" msgstr "" #. Adding the live samples section -#: ../src/libs/colorpicker.c:640 +#: ../src/libs/colorpicker.c:727 msgctxt "section" msgid "live samples" msgstr "" -#: ../src/libs/colorpicker.c:648 +#: ../src/libs/colorpicker.c:738 msgid "display samples on image/vectorscope" msgstr "" -#: ../src/libs/colorpicker.c:657 +#: ../src/libs/colorpicker.c:749 msgid "restrict scope to selection" msgstr "" @@ -18883,10 +19494,6 @@ msgid "open sidecar file" msgstr "" -#: ../src/libs/copy_history.c:149 -msgid "XMP sidecar files" -msgstr "" - #: ../src/libs/copy_history.c:166 #, c-format msgid "error loading file '%s'" @@ -18932,7 +19539,7 @@ msgid "choose which modules to paste to the target image(s)" msgstr "" -#: ../src/libs/copy_history.c:382 ../src/libs/image.c:588 +#: ../src/libs/copy_history.c:382 ../src/libs/image.c:655 msgid "paste" msgstr "" @@ -18958,11 +19565,11 @@ "all selected images" msgstr "" -#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:847 +#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:851 msgid "how to handle existing history" msgstr "" -#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:850 +#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:854 msgid "append" msgstr "" @@ -18980,153 +19587,160 @@ msgid "write history stack and tags to XMP sidecar files" msgstr "" -#: ../src/libs/duplicate.c:56 +#: ../src/libs/duplicate.c:60 msgid "duplicate manager" msgstr "" -#: ../src/libs/duplicate.c:401 +#: ../src/libs/duplicate.c:407 msgid "create a 'virgin' duplicate of the image without any development" msgstr "" -#: ../src/libs/duplicate.c:406 +#: ../src/libs/duplicate.c:412 msgid "create a duplicate of the image with same history stack" msgstr "" -#. Export button -#: ../src/libs/export.c:153 ../src/libs/export.c:1281 +#: ../src/libs/export.c:160 msgid "export" msgstr "" #: ../src/libs/export.c:306 +msgid "invalid format for export selected" +msgstr "" + +#: ../src/libs/export.c:311 +msgid "invalid storage for export selected" +msgstr "" + +#: ../src/libs/export.c:322 msgid "export to disk" msgstr "" -#: ../src/libs/export.c:485 +#: ../src/libs/export.c:516 #, c-format msgid "which is equal to %s × %s px" msgstr "" -#: ../src/libs/export.c:520 +#: ../src/libs/export.c:555 msgctxt "unit" msgid "in" msgstr "" -#: ../src/libs/export.c:1060 +#: ../src/libs/export.c:1141 msgctxt "section" msgid "storage options" msgstr "" -#: ../src/libs/export.c:1064 +#: ../src/libs/export.c:1145 msgid "target storage" msgstr "" -#: ../src/libs/export.c:1086 +#: ../src/libs/export.c:1171 msgctxt "section" msgid "format options" msgstr "" -#: ../src/libs/export.c:1090 +#: ../src/libs/export.c:1175 msgid "file format" msgstr "" -#: ../src/libs/export.c:1107 +#: ../src/libs/export.c:1193 msgctxt "section" msgid "global options" msgstr "" -#: ../src/libs/export.c:1110 +#: ../src/libs/export.c:1196 msgid "set size" msgstr "" -#: ../src/libs/export.c:1111 +#: ../src/libs/export.c:1197 msgid "choose a method for setting the output size" msgstr "" -#: ../src/libs/export.c:1114 +#: ../src/libs/export.c:1200 msgid "in pixels (for file)" msgstr "" -#: ../src/libs/export.c:1115 +#: ../src/libs/export.c:1201 msgid "in cm (for print)" msgstr "" -#: ../src/libs/export.c:1116 +#: ../src/libs/export.c:1202 msgid "in inch (for print)" msgstr "" -#: ../src/libs/export.c:1117 +#: ../src/libs/export.c:1203 msgid "by scale (for file)" msgstr "" -#: ../src/libs/export.c:1119 +#: ../src/libs/export.c:1206 msgid "print width" msgstr "" -#: ../src/libs/export.c:1120 ../src/libs/export.c:1132 +#: ../src/libs/export.c:1208 ../src/libs/export.c:1225 msgid "" "maximum output width limit.\n" "click middle mouse button to reset to 0." msgstr "" -#: ../src/libs/export.c:1123 +#: ../src/libs/export.c:1212 msgid "print height" msgstr "" -#: ../src/libs/export.c:1124 ../src/libs/export.c:1136 +#: ../src/libs/export.c:1214 ../src/libs/export.c:1231 msgid "" "maximum output height limit.\n" "click middle mouse button to reset to 0." msgstr "" -#: ../src/libs/export.c:1128 +#: ../src/libs/export.c:1220 msgid "resolution in dot per inch" msgstr "" -#: ../src/libs/export.c:1148 +#: ../src/libs/export.c:1244 msgid "@" msgstr "" -#: ../src/libs/export.c:1161 ../src/libs/tools/global_toolbox.c:217 +#: ../src/libs/export.c:1258 ../src/libs/tools/global_toolbox.c:217 msgid "px" msgstr "" -#: ../src/libs/export.c:1166 +#: ../src/libs/export.c:1266 msgid "" "it can be an integer, decimal number or simple fraction.\n" "zero or empty values are equal to 1.\n" "click middle mouse button to reset to 1." msgstr "" -#: ../src/libs/export.c:1185 +#: ../src/libs/export.c:1292 msgid "allow upscaling" msgstr "" -#: ../src/libs/export.c:1191 +#: ../src/libs/export.c:1301 msgid "high quality resampling" msgstr "" -#: ../src/libs/export.c:1192 +#: ../src/libs/export.c:1302 msgid "do high quality resampling during export" msgstr "" -#: ../src/libs/export.c:1198 +#: ../src/libs/export.c:1310 msgid "store masks" msgstr "" -#: ../src/libs/export.c:1199 +#: ../src/libs/export.c:1311 msgid "store masks as layers in exported images. only works for some formats." msgstr "" -#: ../src/libs/export.c:1210 ../src/libs/export.c:1245 +#: ../src/libs/export.c:1322 ../src/libs/export.c:1357 #: ../src/libs/print_settings.c:2777 ../src/libs/print_settings.c:2823 msgid "image settings" msgstr "" -#: ../src/libs/export.c:1220 ../src/libs/print_settings.c:2811 +#: ../src/libs/export.c:1332 ../src/libs/print_settings.c:2811 msgid "output ICC profiles" msgstr "" -#: ../src/libs/export.c:1228 +#: ../src/libs/export.c:1340 msgid "" "• perceptual: smoothly moves out-of-gamut colors into gamut, preserving " "gradations,\n" @@ -19147,74 +19761,83 @@ "(not suited for photography)." msgstr "" -#: ../src/libs/export.c:1255 ../src/libs/print_settings.c:2833 +#: ../src/libs/export.c:1367 ../src/libs/print_settings.c:2833 msgid "style" msgstr "" -#: ../src/libs/export.c:1258 +#: ../src/libs/export.c:1370 msgid "temporary style to use while exporting" msgstr "" -#: ../src/libs/export.c:1263 ../src/libs/print_settings.c:2876 +#: ../src/libs/export.c:1377 ../src/libs/print_settings.c:2876 msgid "" "whether the style items are appended to the history or replacing the history" msgstr "" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "replace history" msgstr "" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "append history" msgstr "" -#: ../src/libs/export.c:1282 +#: ../src/libs/export.c:1398 +msgctxt "actionbutton" +msgid "export" +msgstr "" + +#: ../src/libs/export.c:1400 msgid "export with current settings" msgstr "" -#: ../src/libs/export_metadata.c:163 +#: ../src/libs/export_metadata.c:148 msgid "select tag" msgstr "" -#: ../src/libs/export_metadata.c:164 -msgid "add" +#: ../src/libs/export_metadata.c:150 +msgid "_add" +msgstr "" + +#: ../src/libs/export_metadata.c:151 ../src/libs/geotagging.c:811 +msgid "_done" msgstr "" -#: ../src/libs/export_metadata.c:175 +#: ../src/libs/export_metadata.c:162 msgid "list filter" msgstr "" -#: ../src/libs/export_metadata.c:186 +#: ../src/libs/export_metadata.c:173 msgid "" "list of available tags. click 'add' button or double-click on tag to add the " "selected one" msgstr "" -#: ../src/libs/export_metadata.c:287 +#: ../src/libs/export_metadata.c:274 msgid "edit metadata exportation" msgstr "" -#: ../src/libs/export_metadata.c:304 +#: ../src/libs/export_metadata.c:293 msgid "general settings" msgstr "" -#: ../src/libs/export_metadata.c:309 +#: ../src/libs/export_metadata.c:298 msgid "EXIF data" msgstr "" -#: ../src/libs/export_metadata.c:310 +#: ../src/libs/export_metadata.c:299 msgid "export EXIF metadata" msgstr "" -#: ../src/libs/export_metadata.c:313 +#: ../src/libs/export_metadata.c:302 msgid "export darktable XMP metadata (from metadata editor module)" msgstr "" -#: ../src/libs/export_metadata.c:323 +#: ../src/libs/export_metadata.c:312 msgid "only embedded" msgstr "" -#: ../src/libs/export_metadata.c:324 +#: ../src/libs/export_metadata.c:313 msgid "" "per default the interface sends some (limited) metadata beside the image to " "remote storage.\n" @@ -19224,75 +19847,75 @@ "calculated metadata instead" msgstr "" -#: ../src/libs/export_metadata.c:330 ../src/libs/image.c:566 +#: ../src/libs/export_metadata.c:319 ../src/libs/image.c:623 msgid "geo tags" msgstr "" -#: ../src/libs/export_metadata.c:331 +#: ../src/libs/export_metadata.c:320 msgid "export geo tags" msgstr "" -#: ../src/libs/export_metadata.c:334 +#: ../src/libs/export_metadata.c:323 msgid "export tags (to Xmp.dc.Subject)" msgstr "" -#: ../src/libs/export_metadata.c:342 +#: ../src/libs/export_metadata.c:331 msgid "private tags" msgstr "" -#: ../src/libs/export_metadata.c:343 +#: ../src/libs/export_metadata.c:332 msgid "export private tags" msgstr "" -#: ../src/libs/export_metadata.c:345 +#: ../src/libs/export_metadata.c:334 msgid "synonyms" msgstr "" -#: ../src/libs/export_metadata.c:346 +#: ../src/libs/export_metadata.c:335 msgid "export tags synonyms" msgstr "" -#: ../src/libs/export_metadata.c:348 +#: ../src/libs/export_metadata.c:337 msgid "omit hierarchy" msgstr "" -#: ../src/libs/export_metadata.c:349 +#: ../src/libs/export_metadata.c:338 msgid "" "only the last part of the hierarchical tags is included. can be useful if " "categories are not used" msgstr "" -#: ../src/libs/export_metadata.c:352 +#: ../src/libs/export_metadata.c:341 msgid "hierarchical tags" msgstr "" -#: ../src/libs/export_metadata.c:353 +#: ../src/libs/export_metadata.c:342 msgid "export hierarchical tags (to Xmp.lr.Hierarchical Subject)" msgstr "" -#: ../src/libs/export_metadata.c:355 +#: ../src/libs/export_metadata.c:344 msgid "develop history" msgstr "" -#: ../src/libs/export_metadata.c:356 +#: ../src/libs/export_metadata.c:345 msgid "" "export darktable development data (recovery purpose in case of loss of " "database or XMP file)" msgstr "" -#: ../src/libs/export_metadata.c:363 +#: ../src/libs/export_metadata.c:352 msgid "per metadata settings" msgstr "" -#: ../src/libs/export_metadata.c:376 +#: ../src/libs/export_metadata.c:364 msgid "redefined tag" msgstr "" -#: ../src/libs/export_metadata.c:382 +#: ../src/libs/export_metadata.c:370 msgid "formula" msgstr "" -#: ../src/libs/export_metadata.c:385 +#: ../src/libs/export_metadata.c:373 msgid "" "list of calculated metadata\n" "click on '+' button to select and add new metadata\n" @@ -19306,15 +19929,15 @@ "type '$(' to activate the completion and see the list of variables" msgstr "" -#: ../src/libs/export_metadata.c:442 +#: ../src/libs/export_metadata.c:430 msgid "add an output metadata tag" msgstr "" -#: ../src/libs/export_metadata.c:447 +#: ../src/libs/export_metadata.c:435 msgid "delete metadata tag" msgstr "" -#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:128 +#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:130 msgid "full path" msgstr "" @@ -19334,172 +19957,180 @@ msgid "shuffle" msgstr "" -#: ../src/libs/filtering.c:263 +#: ../src/libs/filtering.c:269 msgid "collection filters" msgstr "" -#: ../src/libs/filtering.c:296 +#: ../src/libs/filtering.c:302 msgid "initial setting" msgstr "" -#: ../src/libs/filtering.c:315 +#: ../src/libs/filtering.c:321 msgid "imported: last 24h" msgstr "" -#: ../src/libs/filtering.c:320 +#: ../src/libs/filtering.c:326 msgid "imported: last 30 days" msgstr "" -#: ../src/libs/filtering.c:326 +#: ../src/libs/filtering.c:332 msgid "taken: last 24h" msgstr "" -#: ../src/libs/filtering.c:330 +#: ../src/libs/filtering.c:336 msgid "taken: last 30 days" msgstr "" -#: ../src/libs/filtering.c:702 +#: ../src/libs/filtering.c:728 msgid "click or click&drag to select one or multiple values" msgstr "" -#: ../src/libs/filtering.c:703 +#: ../src/libs/filtering.c:729 msgid "right-click opens a menu to select the available values" msgstr "" -#: ../src/libs/filtering.c:800 +#: ../src/libs/filtering.c:826 #, c-format msgid "you can't have more than %d rules" msgstr "" -#: ../src/libs/filtering.c:922 ../src/libs/filtering.c:1556 +#: ../src/libs/filtering.c:948 ../src/libs/filtering.c:1618 msgid "rule property" msgstr "" -#: ../src/libs/filtering.c:987 +#: ../src/libs/filtering.c:1013 msgid "" "rule property\n" "this can't be changed as the rule is pinned to the toolbar" msgstr "" -#: ../src/libs/filtering.c:1035 +#: ../src/libs/filtering.c:1095 msgctxt "quickfilter" msgid "filter" msgstr "" -#: ../src/libs/filtering.c:1062 +#: ../src/libs/filtering.c:1124 msgid "" "this rule is pinned to the top toolbar\n" "click to un-pin" msgstr "" -#: ../src/libs/filtering.c:1063 +#: ../src/libs/filtering.c:1125 msgid "you can't disable the rule as it is pinned to the toolbar" msgstr "" -#: ../src/libs/filtering.c:1064 +#: ../src/libs/filtering.c:1126 msgid "you can't remove the rule as it is pinned to the toolbar" msgstr "" -#: ../src/libs/filtering.c:1069 +#: ../src/libs/filtering.c:1131 msgid "click to pin this rule to the top toolbar" msgstr "" -#: ../src/libs/filtering.c:1070 +#: ../src/libs/filtering.c:1132 msgid "remove this collect rule" msgstr "" -#: ../src/libs/filtering.c:1072 +#: ../src/libs/filtering.c:1134 msgid "this rule is enabled" msgstr "" -#: ../src/libs/filtering.c:1074 +#: ../src/libs/filtering.c:1136 msgid "this rule is disabled" msgstr "" -#: ../src/libs/filtering.c:1202 +#: ../src/libs/filtering.c:1264 msgid "or" msgstr "" -#: ../src/libs/filtering.c:1203 +#: ../src/libs/filtering.c:1265 msgid "and not" msgstr "" -#: ../src/libs/filtering.c:1205 +#: ../src/libs/filtering.c:1267 msgid "define how this rule should interact with the previous one" msgstr "" -#: ../src/libs/filtering.c:1466 +#: ../src/libs/filtering.c:1528 msgid " (off)" msgstr "" -#: ../src/libs/filtering.c:1663 +#: ../src/libs/filtering.c:1725 msgid "you can't add more rules." msgstr "" -#. fill the popover with all pinned rules -#: ../src/libs/filtering.c:1696 +#: ../src/libs/filtering.c:1759 msgid "shown filters" msgstr "" -#: ../src/libs/filtering.c:1711 +#: ../src/libs/filtering.c:1774 msgid "new filter" msgstr "" -#: ../src/libs/filtering.c:1884 +#. the actions part of the popover +#: ../src/libs/filtering.c:1781 +msgid "actions" +msgstr "" + +#: ../src/libs/filtering.c:1784 +msgid "reset quickfilters" +msgstr "" + +#: ../src/libs/filtering.c:1957 msgid "sort order" msgstr "" -#: ../src/libs/filtering.c:1886 +#: ../src/libs/filtering.c:1960 msgid "determine the sort order of shown images" msgstr "" -#: ../src/libs/filtering.c:1906 +#: ../src/libs/filtering.c:1980 msgid "sort direction" msgstr "" -#: ../src/libs/filtering.c:1911 +#: ../src/libs/filtering.c:1985 msgid "remove this sort order" msgstr "" -#: ../src/libs/filtering.c:1995 +#: ../src/libs/filtering.c:2069 #, c-format msgid "you can't have more than %d sort orders" msgstr "" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "DESC" msgstr "" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "ASC" msgstr "" -#: ../src/libs/filtering.c:2160 +#: ../src/libs/filtering.c:2234 msgid "new rule" msgstr "" -#: ../src/libs/filtering.c:2161 +#: ../src/libs/filtering.c:2235 msgid "append new rule to collect images" msgstr "" -#: ../src/libs/filtering.c:2172 ../src/libs/tools/filter.c:116 +#: ../src/libs/filtering.c:2246 ../src/libs/tools/filter.c:116 msgid "sort by" msgstr "" -#: ../src/libs/filtering.c:2180 +#: ../src/libs/filtering.c:2254 msgid "new sort" msgstr "" -#: ../src/libs/filtering.c:2181 +#: ../src/libs/filtering.c:2255 msgid "append new sort to order images" msgstr "" -#: ../src/libs/filtering.c:2184 +#: ../src/libs/filtering.c:2258 msgid "revert to a previous set of sort orders" msgstr "" #. we change the tooltip of the reset button here, as we are sure the header is defined now -#: ../src/libs/filtering.c:2234 +#: ../src/libs/filtering.c:2308 msgid "" "reset\n" "ctrl+click to remove pinned rules too" @@ -19530,7 +20161,7 @@ #: ../src/libs/filters/grouping.c:167 ../src/libs/filters/history.c:153 #: ../src/libs/filters/local_copy.c:142 ../src/libs/filters/module_order.c:161 #: ../src/libs/filters/rating.c:199 ../src/libs/filters/rating.c:210 -#: ../src/libs/filters/rating_range.c:325 +#: ../src/libs/filters/rating_range.c:356 msgid "rules" msgstr "" @@ -19541,7 +20172,7 @@ "or (∪): images with at least one of the selected color labels" msgstr "" -#: ../src/libs/filters/filename.c:365 +#: ../src/libs/filters/filename.c:370 msgid "" "enter filename to search.\n" "multiple values can be separated by ','\n" @@ -19549,11 +20180,11 @@ "right-click to get existing filenames" msgstr "" -#: ../src/libs/filters/filename.c:376 +#: ../src/libs/filters/filename.c:381 msgid "extension" msgstr "" -#: ../src/libs/filters/filename.c:377 +#: ../src/libs/filters/filename.c:382 msgid "" "enter extension to search with starting dot\n" "multiple values can be separated by ','\n" @@ -19562,18 +20193,23 @@ "right-click to get existing extensions" msgstr "" -#: ../src/libs/filters/filename.c:405 +#: ../src/libs/filters/filename.c:410 msgid "" "click to select filename\n" "ctrl+click to select multiple values" msgstr "" -#: ../src/libs/filters/filename.c:432 +#: ../src/libs/filters/filename.c:437 msgid "" "click to select extension\n" "ctrl+click to select multiple values" msgstr "" +#. the button to close the popup +#: ../src/libs/filters/filename.c:457 +msgid "ok" +msgstr "" + #: ../src/libs/filters/grouping.c:141 ../src/libs/filters/grouping.c:169 msgid "ungrouped images" msgstr "" @@ -19585,8 +20221,8 @@ #. predefined selections #: ../src/libs/filters/grouping.c:169 ../src/libs/filters/history.c:38 #: ../src/libs/filters/local_copy.c:38 ../src/libs/filters/module_order.c:155 -#: ../src/libs/filters/rating_range.c:56 ../src/libs/filters/rating_range.c:72 -#: ../src/libs/filters/rating_range.c:109 ../src/libs/filters/ratio.c:68 +#: ../src/libs/filters/rating_range.c:59 ../src/libs/filters/rating_range.c:83 +#: ../src/libs/filters/rating_range.c:131 ../src/libs/filters/ratio.c:68 #: ../src/libs/filters/ratio.c:81 msgid "all images" msgstr "" @@ -19611,7 +20247,7 @@ msgid "filter by images rating" msgstr "" -#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:542 +#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:596 #: ../src/libs/tools/ratings.c:56 msgid "ratings" msgstr "" @@ -19620,49 +20256,33 @@ msgid "unstarred only" msgstr "" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:60 -#: ../src/libs/filters/rating_range.c:75 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:65 +#: ../src/libs/filters/rating_range.c:89 msgid "rejected only" msgstr "" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:58 -#: ../src/libs/filters/rating_range.c:73 ../src/libs/filters/rating_range.c:138 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:62 +#: ../src/libs/filters/rating_range.c:86 ../src/libs/filters/rating_range.c:158 msgid "all except rejected" msgstr "" -#: ../src/libs/filters/rating_range.c:61 ../src/libs/filters/rating_range.c:76 +#: ../src/libs/filters/rating_range.c:67 ../src/libs/filters/rating_range.c:91 msgid "not rated only" msgstr "" -#: ../src/libs/filters/rating_range.c:99 ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:131 -#: ../src/libs/filters/rating_range.c:275 -msgid "rejected" -msgstr "" - -#: ../src/libs/filters/rating_range.c:101 -#: ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:276 -msgid "not rated" -msgstr "" - -#: ../src/libs/filters/rating_range.c:117 -msgid "only" -msgstr "" - -#: ../src/libs/filters/rating_range.c:269 +#: ../src/libs/filters/rating_range.c:296 msgid "better" msgstr "" -#: ../src/libs/filters/rating_range.c:270 +#: ../src/libs/filters/rating_range.c:297 msgid "worse" msgstr "" -#: ../src/libs/filters/rating_range.c:271 +#: ../src/libs/filters/rating_range.c:298 msgid "cap" msgstr "" -#: ../src/libs/filters/rating_range.c:286 +#: ../src/libs/filters/rating_range.c:313 msgid "rating filter" msgstr "" @@ -19693,7 +20313,7 @@ msgid "apply offset and geo-location" msgstr "" -#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1910 +#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1914 msgid "apply geo-location" msgstr "" @@ -19703,112 +20323,112 @@ "double operation: two ctrl-z to undo" msgstr "" -#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1911 +#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1915 msgid "apply geo-location to matching images" msgstr "" -#: ../src/libs/geotagging.c:810 +#: ../src/libs/geotagging.c:809 msgid "GPX file track segments" msgstr "" -#: ../src/libs/geotagging.c:830 ../src/libs/geotagging.c:1869 +#: ../src/libs/geotagging.c:831 ../src/libs/geotagging.c:1873 msgid "start time" msgstr "" -#: ../src/libs/geotagging.c:831 +#: ../src/libs/geotagging.c:832 msgid "end time" msgstr "" -#: ../src/libs/geotagging.c:832 ../src/libs/geotagging.c:1871 +#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1875 msgid "points" msgstr "" -#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1873 -#: ../src/libs/image.c:463 +#: ../src/libs/geotagging.c:834 ../src/libs/geotagging.c:1877 +#: ../src/libs/image.c:494 msgid "images" msgstr "" -#: ../src/libs/geotagging.c:926 +#: ../src/libs/geotagging.c:927 msgid "open GPX file" msgstr "" -#: ../src/libs/geotagging.c:927 ../src/libs/tools/lighttable.c:333 -#: ../src/libs/tools/lighttable.c:402 ../src/views/darkroom.c:2232 +#: ../src/libs/geotagging.c:928 ../src/libs/tools/lighttable.c:330 +#: ../src/libs/tools/lighttable.c:399 ../src/views/darkroom.c:2091 msgid "preview" msgstr "" -#: ../src/libs/geotagging.c:940 +#: ../src/libs/geotagging.c:941 msgid "GPS data exchange format" msgstr "" -#: ../src/libs/geotagging.c:1739 +#: ../src/libs/geotagging.c:1743 msgid "date/time" msgstr "" -#: ../src/libs/geotagging.c:1740 +#: ../src/libs/geotagging.c:1744 msgid "" "enter the new date/time (YYYY:MM:DD hh:mm:ss[.sss])\n" "key in the new numbers or scroll over the cell" msgstr "" -#: ../src/libs/geotagging.c:1744 +#: ../src/libs/geotagging.c:1748 msgid "original date/time" msgstr "" -#: ../src/libs/geotagging.c:1748 +#: ../src/libs/geotagging.c:1752 msgid "lock date/time offset value to apply it onto another selection" msgstr "" -#: ../src/libs/geotagging.c:1752 +#: ../src/libs/geotagging.c:1756 msgid "date/time offset" msgstr "" -#: ../src/libs/geotagging.c:1753 +#: ../src/libs/geotagging.c:1757 msgid "offset or difference ([-]dd hh:mm:ss[.sss])" msgstr "" #. apply -#: ../src/libs/geotagging.c:1757 +#: ../src/libs/geotagging.c:1761 msgid "apply offset" msgstr "" -#: ../src/libs/geotagging.c:1758 +#: ../src/libs/geotagging.c:1762 msgid "apply offset to selected images" msgstr "" -#: ../src/libs/geotagging.c:1761 +#: ../src/libs/geotagging.c:1765 msgid "apply date/time" msgstr "" -#: ../src/libs/geotagging.c:1762 +#: ../src/libs/geotagging.c:1766 msgid "apply the same date/time to selected images" msgstr "" -#: ../src/libs/geotagging.c:1772 +#: ../src/libs/geotagging.c:1776 msgid "" "start typing to show a list of permitted values and select your timezone.\n" "press enter to confirm, so that the asterisk * disappears" msgstr "" #. gpx -#: ../src/libs/geotagging.c:1815 +#: ../src/libs/geotagging.c:1819 msgid "apply GPX track file..." msgstr "" -#: ../src/libs/geotagging.c:1816 +#: ../src/libs/geotagging.c:1820 msgid "parses a GPX file and updates location of selected images" msgstr "" -#: ../src/libs/geotagging.c:1827 +#: ../src/libs/geotagging.c:1831 msgctxt "section" msgid "GPX file" msgstr "" -#: ../src/libs/geotagging.c:1834 +#: ../src/libs/geotagging.c:1838 msgid "select a GPX track file..." msgstr "" -#: ../src/libs/geotagging.c:1851 +#: ../src/libs/geotagging.c:1855 msgid "" "list of track segments in the GPX file, for each segment:\n" "- the start date/time in local time (LT)\n" @@ -19818,172 +20438,178 @@ "- more detailed time information hovering the row" msgstr "" -#: ../src/libs/geotagging.c:1890 +#: ../src/libs/geotagging.c:1894 msgid "preview images" msgstr "" -#: ../src/libs/geotagging.c:1895 +#: ../src/libs/geotagging.c:1899 msgid "show on map matching images" msgstr "" -#: ../src/libs/geotagging.c:1898 +#: ../src/libs/geotagging.c:1902 msgid "select images" msgstr "" -#: ../src/libs/geotagging.c:1899 +#: ../src/libs/geotagging.c:1903 msgid "select matching images" msgstr "" -#: ../src/libs/geotagging.c:1907 +#: ../src/libs/geotagging.c:1911 msgid "number of matching images versus selected images" msgstr "" -#: ../src/libs/histogram.c:133 +#: ../src/libs/histogram.c:110 msgid "monochromatic" msgstr "" -#: ../src/libs/histogram.c:134 +#: ../src/libs/histogram.c:111 msgid "analogous" msgstr "" -#: ../src/libs/histogram.c:135 +#: ../src/libs/histogram.c:112 msgid "analogous complementary" msgstr "" -#: ../src/libs/histogram.c:136 +#: ../src/libs/histogram.c:113 msgid "complementary" msgstr "" -#: ../src/libs/histogram.c:137 +#: ../src/libs/histogram.c:114 msgid "split complementary" msgstr "" -#: ../src/libs/histogram.c:138 +#: ../src/libs/histogram.c:115 msgid "dyad" msgstr "" -#: ../src/libs/histogram.c:139 +#: ../src/libs/histogram.c:116 msgid "triad" msgstr "" -#: ../src/libs/histogram.c:140 +#: ../src/libs/histogram.c:117 msgid "tetrad" msgstr "" -#: ../src/libs/histogram.c:146 +#: ../src/libs/histogram.c:123 msgid "vectorscope" msgstr "" -#: ../src/libs/histogram.c:147 +#: ../src/libs/histogram.c:124 msgid "waveform" msgstr "" -#: ../src/libs/histogram.c:148 +#: ../src/libs/histogram.c:125 msgid "RGB parade" msgstr "" -#: ../src/libs/histogram.c:149 ../src/libs/histogram.c:2309 +#: ../src/libs/histogram.c:126 ../src/libs/histogram.c:2622 msgid "histogram" msgstr "" -#: ../src/libs/histogram.c:243 +#: ../src/libs/histogram.c:218 msgid "scopes" msgstr "" -#: ../src/libs/histogram.c:1542 +#: ../src/libs/histogram.c:757 +msgid "" +"unsupported vectorscope profile selected, it will be replaced with linear " +"Rec2020" +msgstr "" + +#: ../src/libs/histogram.c:1715 msgid "scroll to coarse-rotate" msgstr "" -#: ../src/libs/histogram.c:1543 +#: ../src/libs/histogram.c:1716 msgid "ctrl+scroll to fine rotate" msgstr "" -#: ../src/libs/histogram.c:1544 +#: ../src/libs/histogram.c:1717 msgid "shift+scroll to change width" msgstr "" -#: ../src/libs/histogram.c:1545 +#: ../src/libs/histogram.c:1718 msgid "alt+scroll to cycle" msgstr "" -#: ../src/libs/histogram.c:1556 +#: ../src/libs/histogram.c:1732 msgid "drag to change black point" msgstr "" -#: ../src/libs/histogram.c:1557 ../src/libs/histogram.c:1564 +#: ../src/libs/histogram.c:1733 ../src/libs/histogram.c:1740 msgid "double-click resets" msgstr "" -#: ../src/libs/histogram.c:1563 +#: ../src/libs/histogram.c:1739 msgid "drag to change exposure" msgstr "" -#: ../src/libs/histogram.c:1725 ../src/libs/histogram.c:1765 +#: ../src/libs/histogram.c:1923 ../src/libs/histogram.c:1965 msgid "set scale to linear" msgstr "" -#: ../src/libs/histogram.c:1730 ../src/libs/histogram.c:1770 +#: ../src/libs/histogram.c:1928 ../src/libs/histogram.c:1970 msgid "set scale to logarithmic" msgstr "" -#: ../src/libs/histogram.c:1746 +#: ../src/libs/histogram.c:1946 msgid "set scope to vertical" msgstr "" -#: ../src/libs/histogram.c:1751 +#: ../src/libs/histogram.c:1951 msgid "set scope to horizontal" msgstr "" -#: ../src/libs/histogram.c:1780 +#: ../src/libs/histogram.c:1980 msgid "set view to AzBz" msgstr "" -#: ../src/libs/histogram.c:1786 +#: ../src/libs/histogram.c:1986 msgid "set view to RYB" msgstr "" -#: ../src/libs/histogram.c:1792 +#: ../src/libs/histogram.c:1992 msgid "set view to u*v*" msgstr "" -#: ../src/libs/histogram.c:2312 ../src/libs/histogram.c:2370 +#: ../src/libs/histogram.c:2625 ../src/libs/histogram.c:2691 msgid "cycle histogram modes" msgstr "" -#: ../src/libs/histogram.c:2316 ../src/libs/histogram.c:2371 +#: ../src/libs/histogram.c:2630 ../src/libs/histogram.c:2693 msgid "hide histogram" msgstr "" -#: ../src/libs/histogram.c:2372 ../src/libs/histogram.c:2401 +#: ../src/libs/histogram.c:2696 ../src/libs/histogram.c:2729 msgid "switch histogram view" msgstr "" -#: ../src/libs/histogram.c:2379 +#: ../src/libs/histogram.c:2704 msgid "toggle blue channel" msgstr "" -#: ../src/libs/histogram.c:2381 ../src/libs/histogram.c:2389 -#: ../src/libs/histogram.c:2397 +#: ../src/libs/histogram.c:2706 ../src/libs/histogram.c:2715 +#: ../src/libs/histogram.c:2724 msgid "toggle colors" msgstr "" -#: ../src/libs/histogram.c:2387 +#: ../src/libs/histogram.c:2713 msgid "toggle green channel" msgstr "" -#: ../src/libs/histogram.c:2395 +#: ../src/libs/histogram.c:2722 msgid "toggle red channel" msgstr "" -#: ../src/libs/histogram.c:2405 +#: ../src/libs/histogram.c:2734 msgid "cycle vectorscope types" msgstr "" -#: ../src/libs/histogram.c:2413 +#: ../src/libs/histogram.c:2745 msgid "color harmonies" msgstr "" -#: ../src/libs/histogram.c:2425 +#: ../src/libs/histogram.c:2759 msgid "cycle color harmonies" msgstr "" @@ -20025,10 +20651,18 @@ msgid "mask mode" msgstr "" +#: ../src/libs/history.c:949 +msgid "blend mode" +msgstr "" + #: ../src/libs/history.c:951 msgid "blend operation" msgstr "" +#: ../src/libs/history.c:953 +msgid "blend fulcrum" +msgstr "" + #: ../src/libs/history.c:961 msgid "mask blur" msgstr "" @@ -20072,311 +20706,333 @@ msgid "parametric input mask:" msgstr "" -#: ../src/libs/history.c:1323 +#: ../src/libs/history.c:1322 msgid "delete image's history?" msgstr "" -#: ../src/libs/history.c:1324 +#: ../src/libs/history.c:1323 msgid "do you really want to clear history of current image?" msgstr "" -#: ../src/libs/image.c:72 -msgid "selected image[s]" +#: ../src/libs/image.c:74 +msgid "actions on selection" msgstr "" -#: ../src/libs/image.c:284 +#: ../src/libs/image.c:302 msgid "delete (trash)" msgstr "" -#: ../src/libs/image.c:287 +#: ../src/libs/image.c:305 msgid "physically delete from disk (using trash if possible)" msgstr "" -#: ../src/libs/image.c:288 +#: ../src/libs/image.c:306 msgid "physically delete from disk immediately" msgstr "" -#: ../src/libs/image.c:474 ../src/libs/modulegroups.c:3811 -#: ../src/libs/styles.c:876 +#: ../src/libs/image.c:506 ../src/libs/modulegroups.c:3813 +#: ../src/libs/styles.c:880 msgid "remove" msgstr "" -#: ../src/libs/image.c:475 +#: ../src/libs/image.c:508 msgid "remove images from the image library, without deleting" msgstr "" -#: ../src/libs/image.c:483 +#: ../src/libs/image.c:517 msgid "move..." msgstr "" -#: ../src/libs/image.c:484 +#: ../src/libs/image.c:519 msgid "move to other folder" msgstr "" -#: ../src/libs/image.c:487 +#: ../src/libs/image.c:522 msgid "copy..." msgstr "" -#: ../src/libs/image.c:488 +#: ../src/libs/image.c:524 msgid "copy to other folder" msgstr "" -#: ../src/libs/image.c:491 +#: ../src/libs/image.c:528 msgid "create HDR" msgstr "" -#: ../src/libs/image.c:492 +#: ../src/libs/image.c:530 msgid "create a high dynamic range image from selected shots" msgstr "" -#: ../src/libs/image.c:496 +#: ../src/libs/image.c:535 msgid "add a duplicate to the image library, including its history stack" msgstr "" -#: ../src/libs/image.c:502 ../src/libs/image.c:505 +#: ../src/libs/image.c:542 ../src/libs/image.c:547 msgid "rotate selected images 90 degrees CCW" msgstr "" -#: ../src/libs/image.c:509 ../src/libs/image.c:512 +#: ../src/libs/image.c:553 ../src/libs/image.c:558 msgid "rotate selected images 90 degrees CW" msgstr "" -#: ../src/libs/image.c:514 +#: ../src/libs/image.c:561 msgid "reset rotation" msgstr "" -#: ../src/libs/image.c:515 +#: ../src/libs/image.c:563 msgid "reset rotation to EXIF data" msgstr "" -#: ../src/libs/image.c:518 +#: ../src/libs/image.c:566 msgid "copy locally" msgstr "" -#: ../src/libs/image.c:519 +#: ../src/libs/image.c:568 msgid "copy the image locally" msgstr "" -#: ../src/libs/image.c:522 +#: ../src/libs/image.c:572 msgid "resync local copy" msgstr "" -#: ../src/libs/image.c:523 +#: ../src/libs/image.c:574 msgid "synchronize the image's XMP and remove the local copy" msgstr "" -#: ../src/libs/image.c:526 +#: ../src/libs/image.c:578 msgctxt "selected images action" msgid "group" msgstr "" -#: ../src/libs/image.c:527 +#: ../src/libs/image.c:580 msgid "add selected images to expanded group or create a new one" msgstr "" -#: ../src/libs/image.c:531 +#: ../src/libs/image.c:584 msgid "ungroup" msgstr "" -#: ../src/libs/image.c:532 +#: ../src/libs/image.c:586 msgid "remove selected images from the group" msgstr "" -#: ../src/libs/image.c:544 +#: ../src/libs/image.c:598 msgid "select ratings metadata" msgstr "" -#: ../src/libs/image.c:550 +#: ../src/libs/image.c:605 msgid "colors" msgstr "" -#: ../src/libs/image.c:552 +#: ../src/libs/image.c:607 msgid "select colors metadata" msgstr "" -#: ../src/libs/image.c:560 +#: ../src/libs/image.c:616 msgid "select tags metadata" msgstr "" -#: ../src/libs/image.c:568 +#: ../src/libs/image.c:625 msgid "select geo tags metadata" msgstr "" -#: ../src/libs/image.c:576 +#: ../src/libs/image.c:636 msgid "select darktable metadata (from metadata editor module)" msgstr "" -#: ../src/libs/image.c:584 +#: ../src/libs/image.c:649 msgid "set the selected image as source of metadata" msgstr "" -#: ../src/libs/image.c:589 +#: ../src/libs/image.c:656 msgid "paste selected metadata on selected images" msgstr "" -#: ../src/libs/image.c:593 +#: ../src/libs/image.c:661 msgid "clear selected metadata on selected images" msgstr "" -#: ../src/libs/image.c:598 +#: ../src/libs/image.c:667 msgid "how to handle existing metadata" msgstr "" -#: ../src/libs/image.c:601 +#: ../src/libs/image.c:670 msgid "merge" msgstr "" -#: ../src/libs/image.c:605 +#: ../src/libs/image.c:675 msgid "update image information to match changes to file" msgstr "" -#: ../src/libs/image.c:609 +#: ../src/libs/image.c:680 msgid "set selection as monochrome images and activate monochrome workflow" msgstr "" -#: ../src/libs/image.c:613 +#: ../src/libs/image.c:684 msgid "set selection as color images" msgstr "" -#: ../src/libs/image.c:625 +#: ../src/libs/image.c:696 msgid "duplicate virgin" msgstr "" -#: ../src/libs/import.c:263 +#: ../src/libs/import.c:264 #, c-format msgid "device \"%s\" connected on port \"%s\"." msgstr "" -#: ../src/libs/import.c:273 ../src/libs/import.c:334 ../src/libs/import.c:1692 +#: ../src/libs/import.c:274 ../src/libs/import.c:335 ../src/libs/import.c:1701 msgid "copy & import from camera" msgstr "" -#: ../src/libs/import.c:284 ../src/libs/import.c:336 +#: ../src/libs/import.c:285 ../src/libs/import.c:337 msgid "tethered shoot" msgstr "" -#: ../src/libs/import.c:291 ../src/libs/import.c:337 +#: ../src/libs/import.c:292 ../src/libs/import.c:338 msgid "unmount camera" msgstr "" -#: ../src/libs/import.c:312 +#: ../src/libs/import.c:313 msgid "" "camera is locked by another application\n" "make sure it is no longer mounted\n" "or quit the locking application" msgstr "" -#: ../src/libs/import.c:315 +#: ../src/libs/import.c:316 msgid "tethering and importing is disabled for this camera" msgstr "" -#: ../src/libs/import.c:317 ../src/libs/import.c:335 +#: ../src/libs/import.c:318 ../src/libs/import.c:336 msgid "mount camera" msgstr "" -#: ../src/libs/import.c:747 +#: ../src/libs/import.c:754 #, c-format msgid "%d image out of %d selected" msgid_plural "%d images out of %d selected" msgstr[0] "" msgstr[1] "" -#: ../src/libs/import.c:1039 +#: ../src/libs/import.c:1046 msgid "you can't delete the selected place" msgstr "" -#: ../src/libs/import.c:1153 +#: ../src/libs/import.c:1160 msgid "choose the root of the folder tree below" msgstr "" -#: ../src/libs/import.c:1156 +#: ../src/libs/import.c:1163 msgid "places" msgstr "" -#: ../src/libs/import.c:1162 +#: ../src/libs/import.c:1169 msgid "restore all default places you have removed by right-click" msgstr "" -#: ../src/libs/import.c:1167 +#: ../src/libs/import.c:1174 msgid "" "add a custom place\n" "\n" "right-click on a place to remove it" msgstr "" -#: ../src/libs/import.c:1174 +#: ../src/libs/import.c:1181 msgid "you can add custom places using the plus icon" msgstr "" -#: ../src/libs/import.c:1199 +#: ../src/libs/import.c:1206 msgid "select a folder to see the content" msgstr "" -#: ../src/libs/import.c:1202 +#: ../src/libs/import.c:1209 msgid "folders" msgstr "" -#: ../src/libs/import.c:1272 +#: ../src/libs/import.c:1279 msgid "home" msgstr "" -#: ../src/libs/import.c:1284 +#: ../src/libs/import.c:1291 msgid "pictures" msgstr "" -#: ../src/libs/import.c:1548 +#: ../src/libs/import.c:1557 msgid "mark already imported pictures" msgstr "" -#: ../src/libs/import.c:1562 +#: ../src/libs/import.c:1571 msgid "modified" msgstr "" -#: ../src/libs/import.c:1567 +#: ../src/libs/import.c:1576 msgid "file 'modified date/time', may be different from 'Exif date/time'" msgstr "" -#: ../src/libs/import.c:1579 +#: ../src/libs/import.c:1588 msgid "show/hide thumbnails" msgstr "" -#: ../src/libs/import.c:1649 +#: ../src/libs/import.c:1658 msgid "naming rules" msgstr "" -#: ../src/libs/import.c:1690 +#: ../src/libs/import.c:1699 msgid "add to library" msgstr "" -#: ../src/libs/import.c:1691 +#: ../src/libs/import.c:1700 msgid "copy & import" msgstr "" -#: ../src/libs/import.c:1730 +#: ../src/libs/import.c:1740 msgid "select new" msgstr "" -#: ../src/libs/import.c:1773 +#: ../src/libs/import.c:1783 msgid "please wait while prefetching the list of images from camera..." msgstr "" -#: ../src/libs/import.c:1907 +#: ../src/libs/import.c:1922 msgid "invalid override date/time format" msgstr "" -#: ../src/libs/import.c:2022 +#: ../src/libs/import.c:1986 +msgid "import base directory" +msgstr "" + +#: ../src/libs/import.c:1987 +msgid "" +"before copying images to the darktable base directory make sure it is " +"defined as you prefer.\n" +"further information can be found in the darktable manual.\n" +"\n" +"inspect darktable preferences -> import.\n" +"check and possibly correct the 'base directory naming pattern'" +msgstr "" + +#: ../src/libs/import.c:1991 +msgid "_come back & check" +msgstr "" + +#: ../src/libs/import.c:1991 +msgid "_understood & done" +msgstr "" + +#: ../src/libs/import.c:2057 msgid "add to library..." msgstr "" -#: ../src/libs/import.c:2023 +#: ../src/libs/import.c:2058 msgid "add existing images to the library" msgstr "" -#: ../src/libs/import.c:2029 +#: ../src/libs/import.c:2064 msgid "copy & import..." msgstr "" -#: ../src/libs/import.c:2030 +#: ../src/libs/import.c:2065 msgid "" "copy and optionally rename images before adding them to the library\n" "patterns can be defined to rename the images and specify the destination " @@ -20384,15 +21040,15 @@ msgstr "" #. collapsible section -#: ../src/libs/import.c:2053 +#: ../src/libs/import.c:2088 msgid "parameters" msgstr "" -#: ../src/libs/ioporder.c:204 +#: ../src/libs/ioporder.c:202 msgid "v3.0 for RAW input (default)" msgstr "" -#: ../src/libs/ioporder.c:210 +#: ../src/libs/ioporder.c:208 msgid "v3.0 for JPEG/non-RAW input" msgstr "" @@ -20408,11 +21064,11 @@ msgid "nothing to save" msgstr "" -#: ../src/libs/lib.c:1105 +#: ../src/libs/lib.c:1106 msgid "show module" msgstr "" -#: ../src/libs/lib.c:1430 +#: ../src/libs/lib.c:1431 msgid "utility module" msgstr "" @@ -20628,175 +21284,126 @@ msgid "map settings" msgstr "" -#: ../src/libs/map_settings.c:107 +#: ../src/libs/map_settings.c:89 msgid "map source" msgstr "" -#: ../src/libs/map_settings.c:112 +#: ../src/libs/map_settings.c:90 msgid "select the source of the map. some entries might not work" msgstr "" -#: ../src/libs/masks.c:107 +#: ../src/libs/masks.c:108 msgid "feather" msgstr "" -#: ../src/libs/masks.c:114 -msgid "hardness (relative)" -msgstr "" - -#: ../src/libs/masks.c:115 -msgid "hardness (absolute)" -msgstr "" - -#: ../src/libs/masks.c:116 -msgid "opacity (relative)" -msgstr "" - -#: ../src/libs/masks.c:117 -msgid "opacity (absolute)" -msgstr "" - -#: ../src/libs/masks.c:118 -msgid "brush size (relative)" -msgstr "" - -#: ../src/libs/masks.c:121 -msgid "low" -msgstr "" - -#: ../src/libs/masks.c:122 -msgid "medium" -msgstr "" - -#: ../src/libs/masks.c:123 -msgid "high" -msgstr "" - -#: ../src/libs/masks.c:381 +#: ../src/libs/masks.c:357 #, c-format msgid "group #%d" msgstr "" -#: ../src/libs/masks.c:1081 +#: ../src/libs/masks.c:1097 msgid "duplicate this shape" msgstr "" -#: ../src/libs/masks.c:1085 +#: ../src/libs/masks.c:1101 msgid "delete this shape" msgstr "" -#: ../src/libs/masks.c:1091 +#: ../src/libs/masks.c:1107 msgid "delete group" msgstr "" -#: ../src/libs/masks.c:1098 +#: ../src/libs/masks.c:1114 msgid "remove from group" msgstr "" -#: ../src/libs/masks.c:1106 +#: ../src/libs/masks.c:1122 msgid "group the forms" msgstr "" -#: ../src/libs/masks.c:1114 +#: ../src/libs/masks.c:1130 msgid "use inverted shape" msgstr "" -#: ../src/libs/masks.c:1121 +#: ../src/libs/masks.c:1134 msgid "mode: union" msgstr "" -#: ../src/libs/masks.c:1127 +#: ../src/libs/masks.c:1136 msgid "mode: intersection" msgstr "" -#: ../src/libs/masks.c:1133 +#: ../src/libs/masks.c:1138 msgid "mode: difference" msgstr "" -#: ../src/libs/masks.c:1139 +#: ../src/libs/masks.c:1140 msgid "mode: sum" msgstr "" -#: ../src/libs/masks.c:1145 +#: ../src/libs/masks.c:1142 msgid "mode: exclusion" msgstr "" -#: ../src/libs/masks.c:1164 +#: ../src/libs/masks.c:1158 msgid "cleanup unused shapes" msgstr "" -#: ../src/libs/masks.c:1811 +#: ../src/libs/masks.c:1807 msgid "created shapes" msgstr "" -#: ../src/libs/masks.c:1904 ../src/libs/masks.c:1919 ../src/libs/masks.c:1939 -#: ../src/libs/masks.c:1955 +#: ../src/libs/masks.c:1900 ../src/libs/masks.c:1915 ../src/libs/masks.c:1929 +#: ../src/libs/masks.c:1933 msgid "properties" msgstr "" -#: ../src/libs/masks.c:1907 +#: ../src/libs/masks.c:1903 msgid "no shapes selected" msgstr "" -#: ../src/libs/masks.c:1940 +#: ../src/libs/masks.c:1929 msgid "pressure" msgstr "" -#: ../src/libs/masks.c:1941 -msgid "" -"pen pressure control for brush masks\n" -"'off': pressure reading ignored,\n" -"'hardness'/'opacity'/'brush size': pressure reading controls specified " -"attribute,\n" -"'absolute'/'relative': pressure reading is taken directly as attribute value " -"or multiplied with pre-defined setting." -msgstr "" - -#: ../src/libs/masks.c:1956 +#: ../src/libs/masks.c:1933 msgid "smoothing" msgstr "" -#: ../src/libs/masks.c:1957 -msgid "" -"smoothing of brush strokes\n" -"stronger smoothing leads to fewer nodes and easier editing but with lower " -"control of accuracy." -msgstr "" - -#: ../src/libs/metadata.c:64 +#: ../src/libs/metadata.c:60 msgid "metadata editor" msgstr "" -#: ../src/libs/metadata.c:206 ../src/libs/metadata.c:496 -msgid "<leave unchanged>" +#: ../src/libs/metadata.c:459 ../src/libs/metadata_view.c:1219 +msgid "metadata settings" msgstr "" -#: ../src/libs/metadata.c:630 ../src/libs/metadata_view.c:1192 -msgid "metadata settings" +#: ../src/libs/metadata.c:461 ../src/libs/metadata_view.c:1221 +msgid "_default" msgstr "" -#: ../src/libs/metadata.c:683 ../src/libs/metadata_view.c:1237 +#: ../src/libs/metadata.c:516 ../src/libs/metadata_view.c:1267 msgid "visible" msgstr "" -#: ../src/libs/metadata.c:688 +#: ../src/libs/metadata.c:524 msgid "" "tick if the corresponding metadata is of interest for you\n" "it will be visible from metadata editor, collection and import module\n" "it will be also exported" msgstr "" -#: ../src/libs/metadata.c:693 ../src/libs/tagging.c:1683 -#: ../src/libs/tagging.c:1827 +#: ../src/libs/metadata.c:529 ../src/libs/tagging.c:1705 +#: ../src/libs/tagging.c:1854 msgid "private" msgstr "" -#: ../src/libs/metadata.c:698 +#: ../src/libs/metadata.c:534 msgid "" "tick if you want to keep this information private (not exported with images)" msgstr "" -#: ../src/libs/metadata.c:857 +#: ../src/libs/metadata.c:691 msgid "" "metadata text\n" "ctrl+enter inserts a new line (caution, may not be compatible with standard " @@ -20806,208 +21413,216 @@ "escape to exit the popup window" msgstr "" -#: ../src/libs/metadata.c:902 +#: ../src/libs/metadata.c:736 msgid "write metadata for selected images" msgstr "" +#: ../src/libs/metadata.c:737 +msgid "cancel" +msgstr "" + +#: ../src/libs/metadata.c:738 +msgid "ignore changed metadata" +msgstr "" + #. <title>\0<description>\0<rights>\0<creator>\0<publisher> -#: ../src/libs/metadata.c:958 +#: ../src/libs/metadata.c:793 msgid "CC BY" msgstr "" -#: ../src/libs/metadata.c:959 +#: ../src/libs/metadata.c:794 msgid "Creative Commons Attribution (CC BY)" msgstr "" -#: ../src/libs/metadata.c:960 +#: ../src/libs/metadata.c:795 msgid "CC BY-SA" msgstr "" -#: ../src/libs/metadata.c:961 +#: ../src/libs/metadata.c:796 msgid "Creative Commons Attribution-ShareAlike (CC BY-SA)" msgstr "" -#: ../src/libs/metadata.c:962 +#: ../src/libs/metadata.c:797 msgid "CC BY-ND" msgstr "" -#: ../src/libs/metadata.c:963 +#: ../src/libs/metadata.c:798 msgid "Creative Commons Attribution-NoDerivs (CC BY-ND)" msgstr "" -#: ../src/libs/metadata.c:964 +#: ../src/libs/metadata.c:799 msgid "CC BY-NC" msgstr "" -#: ../src/libs/metadata.c:965 +#: ../src/libs/metadata.c:800 msgid "Creative Commons Attribution-NonCommercial (CC BY-NC)" msgstr "" -#: ../src/libs/metadata.c:966 +#: ../src/libs/metadata.c:801 msgid "CC BY-NC-SA" msgstr "" -#: ../src/libs/metadata.c:967 +#: ../src/libs/metadata.c:802 msgid "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" msgstr "" -#: ../src/libs/metadata.c:968 +#: ../src/libs/metadata.c:803 msgid "CC BY-NC-ND" msgstr "" -#: ../src/libs/metadata.c:969 +#: ../src/libs/metadata.c:804 msgid "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" msgstr "" -#: ../src/libs/metadata.c:970 ../src/libs/metadata.c:971 +#: ../src/libs/metadata.c:805 ../src/libs/metadata.c:806 msgid "all rights reserved" msgstr "" #. internal -#: ../src/libs/metadata_view.c:123 +#: ../src/libs/metadata_view.c:125 msgid "filmroll" msgstr "" -#: ../src/libs/metadata_view.c:125 +#: ../src/libs/metadata_view.c:127 msgid "group id" msgstr "" -#: ../src/libs/metadata_view.c:127 +#: ../src/libs/metadata_view.c:129 msgid "version" msgstr "" -#: ../src/libs/metadata_view.c:130 +#: ../src/libs/metadata_view.c:132 msgid "import timestamp" msgstr "" -#: ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:133 msgid "change timestamp" msgstr "" -#: ../src/libs/metadata_view.c:132 +#: ../src/libs/metadata_view.c:134 msgid "export timestamp" msgstr "" -#: ../src/libs/metadata_view.c:133 +#: ../src/libs/metadata_view.c:135 msgid "print timestamp" msgstr "" -#: ../src/libs/metadata_view.c:134 +#: ../src/libs/metadata_view.c:136 msgid "flags" msgstr "" -#: ../src/libs/metadata_view.c:144 +#: ../src/libs/metadata_view.c:146 +msgid "35mm equiv focal length" +msgstr "" + +#: ../src/libs/metadata_view.c:148 msgid "focus distance" msgstr "" -#: ../src/libs/metadata_view.c:146 +#: ../src/libs/metadata_view.c:150 msgid "datetime" msgstr "" -#: ../src/libs/metadata_view.c:149 +#: ../src/libs/metadata_view.c:153 msgid "export width" msgstr "" -#: ../src/libs/metadata_view.c:150 +#: ../src/libs/metadata_view.c:154 msgid "export height" msgstr "" -#: ../src/libs/metadata_view.c:158 +#: ../src/libs/metadata_view.c:162 msgid "longitude" msgstr "" -#: ../src/libs/metadata_view.c:159 +#: ../src/libs/metadata_view.c:163 msgid "elevation" msgstr "" -#: ../src/libs/metadata_view.c:163 +#: ../src/libs/metadata_view.c:167 msgid "categories" msgstr "" -#: ../src/libs/metadata_view.c:170 +#: ../src/libs/metadata_view.c:174 msgid "image information" msgstr "" -#: ../src/libs/metadata_view.c:330 +#: ../src/libs/metadata_view.c:334 msgid "unused/deprecated" msgstr "" -#: ../src/libs/metadata_view.c:331 +#: ../src/libs/metadata_view.c:335 msgid "LDR" msgstr "" -#: ../src/libs/metadata_view.c:334 +#: ../src/libs/metadata_view.c:338 msgid "marked for deletion" msgstr "" -#: ../src/libs/metadata_view.c:335 +#: ../src/libs/metadata_view.c:339 msgid "auto-applying presets applied" msgstr "" -#: ../src/libs/metadata_view.c:337 +#: ../src/libs/metadata_view.c:341 msgid "has .txt" msgstr "" -#: ../src/libs/metadata_view.c:338 +#: ../src/libs/metadata_view.c:342 msgid "has .wav" msgstr "" -#: ../src/libs/metadata_view.c:356 +#: ../src/libs/metadata_view.c:360 #, c-format msgid "image has %d star" msgid_plural "image has %d stars" msgstr[0] "" msgstr[1] "" -#: ../src/libs/metadata_view.c:432 +#: ../src/libs/metadata_view.c:436 #, c-format msgid "loader: %s" msgstr "" -#: ../src/libs/metadata_view.c:623 +#: ../src/libs/metadata_view.c:626 msgid "<various values>" msgstr "" -#: ../src/libs/metadata_view.c:636 +#: ../src/libs/metadata_view.c:639 #, c-format msgid "" "double-click to jump to film roll\n" "%s" msgstr "" -#: ../src/libs/metadata_view.c:728 +#: ../src/libs/metadata_view.c:731 #, c-format msgid "%+.2f EV" msgstr "" -#: ../src/libs/metadata_view.c:735 -#, c-format -msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" -msgstr "" - -#: ../src/libs/metadata_view.c:740 +#: ../src/libs/metadata_view.c:737 ../src/libs/metadata_view.c:749 +#: ../src/libs/metadata_view.c:754 #, c-format msgid "%.1f mm" msgstr "" -#: ../src/libs/metadata_view.c:751 +#: ../src/libs/metadata_view.c:778 #, c-format msgid "infinity" msgstr "" -#: ../src/libs/metadata_view.c:755 +#: ../src/libs/metadata_view.c:782 #, c-format msgid "%.2f m" msgstr "" -#: ../src/libs/metadata_view.c:1232 +#: ../src/libs/metadata_view.c:1262 msgid "" "drag and drop one row at a time until you get the desired order\n" "untick to hide metadata which are not of interest for you\n" "if different settings are needed, use presets" msgstr "" -#: ../src/libs/metadata_view.c:1388 +#: ../src/libs/metadata_view.c:1423 msgid "jump to film roll" msgstr "" @@ -21032,7 +21647,7 @@ msgid "recent collections settings" msgstr "" -#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1769 +#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1753 msgid "workflow: scene-referred" msgstr "" @@ -21050,335 +21665,339 @@ #. FIXME don't check here if on/off is enabled, because it depends on image (reload_defaults) #. respond later to image changed signal -#: ../src/libs/modulegroups.c:306 ../src/libs/modulegroups.c:318 -#: ../src/libs/modulegroups.c:2427 ../src/libs/modulegroups.c:2429 +#: ../src/libs/modulegroups.c:307 ../src/libs/modulegroups.c:319 +#: ../src/libs/modulegroups.c:2411 ../src/libs/modulegroups.c:2413 msgid "on-off" msgstr "" -#: ../src/libs/modulegroups.c:498 ../src/libs/modulegroups.c:501 +#: ../src/libs/modulegroups.c:501 ../src/libs/modulegroups.c:504 msgid "" "this quick access widget is disabled as there are multiple instances of this " "module present. Please use the full module to access this widget..." msgstr "" -#: ../src/libs/modulegroups.c:591 +#: ../src/libs/modulegroups.c:594 msgid "(some features may only be available in the full module interface)" msgstr "" -#: ../src/libs/modulegroups.c:635 +#: ../src/libs/modulegroups.c:632 #, c-format msgid "go to the full version of the %s module" msgstr "" -#: ../src/libs/modulegroups.c:1556 ../src/libs/modulegroups.c:1641 -#: ../src/libs/modulegroups.c:1677 ../src/libs/modulegroups.c:1727 -#: ../src/libs/modulegroups.c:1817 +#: ../src/libs/modulegroups.c:1538 ../src/libs/modulegroups.c:1624 +#: ../src/libs/modulegroups.c:1660 ../src/libs/modulegroups.c:1710 +#: ../src/libs/modulegroups.c:1801 msgctxt "modulegroup" msgid "base" msgstr "" -#: ../src/libs/modulegroups.c:1575 +#: ../src/libs/modulegroups.c:1557 msgctxt "modulegroup" msgid "tone" msgstr "" -#: ../src/libs/modulegroups.c:1584 ../src/libs/modulegroups.c:1691 -#: ../src/libs/modulegroups.c:1741 +#: ../src/libs/modulegroups.c:1566 ../src/libs/modulegroups.c:1674 +#: ../src/libs/modulegroups.c:1724 msgctxt "modulegroup" msgid "color" msgstr "" -#: ../src/libs/modulegroups.c:1599 ../src/libs/modulegroups.c:1699 -#: ../src/libs/modulegroups.c:1746 +#: ../src/libs/modulegroups.c:1582 ../src/libs/modulegroups.c:1682 +#: ../src/libs/modulegroups.c:1730 msgctxt "modulegroup" msgid "correct" msgstr "" -#: ../src/libs/modulegroups.c:1617 ../src/libs/modulegroups.c:1711 -#: ../src/libs/modulegroups.c:1758 ../src/libs/modulegroups.c:2321 +#: ../src/libs/modulegroups.c:1600 ../src/libs/modulegroups.c:1694 +#: ../src/libs/modulegroups.c:1742 ../src/libs/modulegroups.c:2305 msgctxt "modulegroup" msgid "effect" msgstr "" -#: ../src/libs/modulegroups.c:1635 +#: ../src/libs/modulegroups.c:1618 msgid "modules: all" msgstr "" -#: ../src/libs/modulegroups.c:1656 +#: ../src/libs/modulegroups.c:1639 msgctxt "modulegroup" msgid "grading" msgstr "" -#: ../src/libs/modulegroups.c:1664 ../src/libs/modulegroups.c:2325 +#: ../src/libs/modulegroups.c:1647 ../src/libs/modulegroups.c:2309 msgctxt "modulegroup" msgid "effects" msgstr "" -#: ../src/libs/modulegroups.c:1672 +#: ../src/libs/modulegroups.c:1655 msgid "workflow: beginner" msgstr "" -#: ../src/libs/modulegroups.c:1721 +#: ../src/libs/modulegroups.c:1704 msgid "workflow: display-referred" msgstr "" -#: ../src/libs/modulegroups.c:1773 +#: ../src/libs/modulegroups.c:1757 msgid "search only" msgstr "" -#: ../src/libs/modulegroups.c:1779 ../src/libs/modulegroups.c:2090 -#: ../src/libs/modulegroups.c:2599 +#: ../src/libs/modulegroups.c:1763 ../src/libs/modulegroups.c:2074 +#: ../src/libs/modulegroups.c:2583 msgctxt "modulegroup" msgid "deprecated" msgstr "" -#: ../src/libs/modulegroups.c:1792 +#: ../src/libs/modulegroups.c:1776 msgid "previous config" msgstr "" -#: ../src/libs/modulegroups.c:1793 +#: ../src/libs/modulegroups.c:1777 msgid "previous layout" msgstr "" -#: ../src/libs/modulegroups.c:1797 +#: ../src/libs/modulegroups.c:1781 msgid "previous config with new layout" msgstr "" -#: ../src/libs/modulegroups.c:1957 ../src/libs/modulegroups.c:2472 -#: ../src/libs/modulegroups.c:2484 +#: ../src/libs/modulegroups.c:1941 ../src/libs/modulegroups.c:2456 +#: ../src/libs/modulegroups.c:2468 msgid "remove this widget" msgstr "" -#: ../src/libs/modulegroups.c:2107 ../src/libs/modulegroups.c:2347 +#: ../src/libs/modulegroups.c:2091 ../src/libs/modulegroups.c:2331 msgid "remove this module" msgstr "" #. does it belong to recommended modules ? -#: ../src/libs/modulegroups.c:2316 +#: ../src/libs/modulegroups.c:2300 msgid "base" msgstr "" -#: ../src/libs/modulegroups.c:2319 +#: ../src/libs/modulegroups.c:2303 msgid "tone" msgstr "" -#: ../src/libs/modulegroups.c:2322 +#: ../src/libs/modulegroups.c:2306 msgid "technical" msgstr "" -#: ../src/libs/modulegroups.c:2323 +#: ../src/libs/modulegroups.c:2307 msgid "grading" msgstr "" -#: ../src/libs/modulegroups.c:2329 ../src/libs/modulegroups.c:2337 +#: ../src/libs/modulegroups.c:2313 ../src/libs/modulegroups.c:2321 msgid "add this module" msgstr "" #. show the submenu with all the modules -#: ../src/libs/modulegroups.c:2359 ../src/libs/modulegroups.c:2559 +#: ../src/libs/modulegroups.c:2343 ../src/libs/modulegroups.c:2543 msgid "all available modules" msgstr "" -#: ../src/libs/modulegroups.c:2367 +#: ../src/libs/modulegroups.c:2351 msgid "add module" msgstr "" -#: ../src/libs/modulegroups.c:2372 +#: ../src/libs/modulegroups.c:2356 msgid "remove module" msgstr "" -#: ../src/libs/modulegroups.c:2478 +#: ../src/libs/modulegroups.c:2462 msgid "header needed for other widgets" msgstr "" -#: ../src/libs/modulegroups.c:2494 ../src/libs/modulegroups.c:2501 +#: ../src/libs/modulegroups.c:2478 ../src/libs/modulegroups.c:2485 msgid "add this widget" msgstr "" -#: ../src/libs/modulegroups.c:2514 +#: ../src/libs/modulegroups.c:2498 msgid "currently invisible" msgstr "" -#: ../src/libs/modulegroups.c:2543 +#: ../src/libs/modulegroups.c:2527 msgid "add widget" msgstr "" -#: ../src/libs/modulegroups.c:2548 +#: ../src/libs/modulegroups.c:2532 msgid "remove widget" msgstr "" -#: ../src/libs/modulegroups.c:2653 +#: ../src/libs/modulegroups.c:2637 msgid "show all history modules" msgstr "" -#: ../src/libs/modulegroups.c:2656 ../src/libs/modulegroups.c:3834 +#: ../src/libs/modulegroups.c:2640 ../src/libs/modulegroups.c:3836 msgid "" "show modules that are present in the history stack, regardless of whether or " "not they are currently enabled" msgstr "" -#: ../src/libs/modulegroups.c:2747 ../src/libs/modulegroups.c:2816 +#: ../src/libs/modulegroups.c:2731 ../src/libs/modulegroups.c:2823 msgid "" "the following modules are deprecated because they have internal design " "mistakes that can't be corrected and alternative modules that correct them.\n" "they will be removed for new edits in the next release." msgstr "" -#: ../src/libs/modulegroups.c:2775 ../src/libs/modulegroups.c:2776 +#: ../src/libs/modulegroups.c:2782 ../src/libs/modulegroups.c:2783 msgid "quick access panel" msgstr "" -#: ../src/libs/modulegroups.c:2786 +#: ../src/libs/modulegroups.c:2793 msgid "show only active modules" msgstr "" -#: ../src/libs/modulegroups.c:2787 +#: ../src/libs/modulegroups.c:2794 msgid "active modules" msgstr "" -#: ../src/libs/modulegroups.c:2792 +#: ../src/libs/modulegroups.c:2799 msgid "" "presets\n" "ctrl+click to manage" msgstr "" -#: ../src/libs/modulegroups.c:2798 +#: ../src/libs/modulegroups.c:2805 msgid "search modules" msgstr "" -#: ../src/libs/modulegroups.c:2799 +#: ../src/libs/modulegroups.c:2806 msgid "search modules by name or tag" msgstr "" -#: ../src/libs/modulegroups.c:2809 +#: ../src/libs/modulegroups.c:2816 msgid "clear text" msgstr "" -#: ../src/libs/modulegroups.c:3051 +#: ../src/libs/modulegroups.c:3056 msgid "basic icon" msgstr "" -#: ../src/libs/modulegroups.c:3061 +#: ../src/libs/modulegroups.c:3066 msgid "active icon" msgstr "" -#: ../src/libs/modulegroups.c:3071 +#: ../src/libs/modulegroups.c:3076 msgid "color icon" msgstr "" -#: ../src/libs/modulegroups.c:3081 +#: ../src/libs/modulegroups.c:3086 msgid "correct icon" msgstr "" -#: ../src/libs/modulegroups.c:3091 +#: ../src/libs/modulegroups.c:3096 msgid "effect icon" msgstr "" -#: ../src/libs/modulegroups.c:3101 +#: ../src/libs/modulegroups.c:3106 msgid "favorites icon" msgstr "" -#: ../src/libs/modulegroups.c:3111 +#: ../src/libs/modulegroups.c:3116 msgid "tone icon" msgstr "" -#: ../src/libs/modulegroups.c:3121 +#: ../src/libs/modulegroups.c:3126 msgid "grading icon" msgstr "" -#: ../src/libs/modulegroups.c:3131 +#: ../src/libs/modulegroups.c:3136 msgid "technical icon" msgstr "" -#: ../src/libs/modulegroups.c:3164 +#: ../src/libs/modulegroups.c:3169 msgid "quick access panel widgets" msgstr "" -#: ../src/libs/modulegroups.c:3166 +#: ../src/libs/modulegroups.c:3171 msgid "quick access" msgstr "" -#: ../src/libs/modulegroups.c:3186 +#: ../src/libs/modulegroups.c:3191 msgid "add widget to the quick access panel" msgstr "" -#: ../src/libs/modulegroups.c:3218 +#: ../src/libs/modulegroups.c:3223 msgid "group icon" msgstr "" -#: ../src/libs/modulegroups.c:3227 +#: ../src/libs/modulegroups.c:3232 msgid "group name" msgstr "" -#: ../src/libs/modulegroups.c:3238 +#: ../src/libs/modulegroups.c:3243 msgid "remove group" msgstr "" -#: ../src/libs/modulegroups.c:3264 +#: ../src/libs/modulegroups.c:3269 msgid "move group to the left" msgstr "" -#: ../src/libs/modulegroups.c:3272 +#: ../src/libs/modulegroups.c:3277 msgid "add module to the group" msgstr "" -#: ../src/libs/modulegroups.c:3283 +#: ../src/libs/modulegroups.c:3288 msgid "move group to the right" msgstr "" -#: ../src/libs/modulegroups.c:3463 +#: ../src/libs/modulegroups.c:3464 msgid "rename preset" msgstr "" -#: ../src/libs/modulegroups.c:3470 +#: ../src/libs/modulegroups.c:3467 +msgid "_rename" +msgstr "" + +#: ../src/libs/modulegroups.c:3473 msgid "new preset name:" msgstr "" -#: ../src/libs/modulegroups.c:3471 +#: ../src/libs/modulegroups.c:3474 msgid "a preset with this name already exists!" msgstr "" -#: ../src/libs/modulegroups.c:3804 +#: ../src/libs/modulegroups.c:3806 msgid "preset: " msgstr "" -#: ../src/libs/modulegroups.c:3811 +#: ../src/libs/modulegroups.c:3813 msgid "remove the preset" msgstr "" -#: ../src/libs/modulegroups.c:3813 +#: ../src/libs/modulegroups.c:3815 msgid "duplicate the preset" msgstr "" -#: ../src/libs/modulegroups.c:3815 +#: ../src/libs/modulegroups.c:3817 msgid "rename the preset" msgstr "" -#: ../src/libs/modulegroups.c:3817 +#: ../src/libs/modulegroups.c:3819 msgid "create a new empty preset" msgstr "" -#: ../src/libs/modulegroups.c:3825 +#: ../src/libs/modulegroups.c:3827 msgid "show search line" msgstr "" -#: ../src/libs/modulegroups.c:3828 +#: ../src/libs/modulegroups.c:3830 msgid "show quick access panel" msgstr "" -#: ../src/libs/modulegroups.c:3831 +#: ../src/libs/modulegroups.c:3833 msgid "show all history modules in active group" msgstr "" -#: ../src/libs/modulegroups.c:3843 +#: ../src/libs/modulegroups.c:3845 msgid "auto-apply this preset" msgstr "" -#: ../src/libs/modulegroups.c:3858 +#: ../src/libs/modulegroups.c:3860 msgid "module groups" msgstr "" -#: ../src/libs/modulegroups.c:3875 +#: ../src/libs/modulegroups.c:3877 msgid "" "this is a built-in read-only preset. duplicate it if you want to make changes" msgstr "" @@ -21387,50 +22006,50 @@ msgid "navigation" msgstr "" -#: ../src/libs/navigation.c:111 ../src/libs/navigation.c:191 +#: ../src/libs/navigation.c:112 ../src/libs/navigation.c:194 msgctxt "navigationbox" msgid "fill" msgstr "" -#: ../src/libs/navigation.c:114 ../src/libs/navigation.c:189 +#: ../src/libs/navigation.c:115 ../src/libs/navigation.c:192 msgid "small" msgstr "" -#: ../src/libs/navigation.c:151 +#: ../src/libs/navigation.c:154 msgid "" "navigation\n" "click or drag to position zoomed area in center view" msgstr "" -#: ../src/libs/navigation.c:173 +#: ../src/libs/navigation.c:176 msgid "hide navigation thumbnail" msgstr "" -#: ../src/libs/navigation.c:187 +#: ../src/libs/navigation.c:190 msgid "image zoom level" msgstr "" -#: ../src/libs/navigation.c:192 +#: ../src/libs/navigation.c:195 msgid "50%" msgstr "" -#: ../src/libs/navigation.c:193 +#: ../src/libs/navigation.c:196 msgid "100%" msgstr "" -#: ../src/libs/navigation.c:194 +#: ../src/libs/navigation.c:197 msgid "200%" msgstr "" -#: ../src/libs/navigation.c:195 +#: ../src/libs/navigation.c:198 msgid "400%" msgstr "" -#: ../src/libs/navigation.c:196 +#: ../src/libs/navigation.c:199 msgid "800%" msgstr "" -#: ../src/libs/navigation.c:197 +#: ../src/libs/navigation.c:200 msgid "1600%" msgstr "" @@ -21664,27 +22283,27 @@ msgid "print with current settings" msgstr "" -#: ../src/libs/select.c:136 +#: ../src/libs/select.c:137 msgid "select all images in current collection" msgstr "" -#: ../src/libs/select.c:140 +#: ../src/libs/select.c:141 msgid "clear selection" msgstr "" -#: ../src/libs/select.c:144 +#: ../src/libs/select.c:145 msgid "" "select unselected images\n" "in current collection" msgstr "" -#: ../src/libs/select.c:148 +#: ../src/libs/select.c:149 msgid "" "select all images which are in the same\n" "film roll as the selected images" msgstr "" -#: ../src/libs/select.c:152 +#: ../src/libs/select.c:153 msgid "" "select untouched images in\n" "current collection" @@ -21702,35 +22321,39 @@ msgid "create" msgstr "" -#: ../src/libs/snapshots.c:92 +#: ../src/libs/snapshots.c:88 msgid "snapshots" msgstr "" -#: ../src/libs/snapshots.c:141 +#: ../src/libs/snapshots.c:137 msgctxt "snapshot sign" msgid "S" msgstr "" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:662 +msgid "snapshots for removed image have been deleted" +msgstr "" + +#: ../src/libs/snapshots.c:703 #, c-format msgid "↗ %s '%s'" msgstr "" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:703 msgid "this snapshot was taken from" msgstr "" -#: ../src/libs/snapshots.c:663 +#: ../src/libs/snapshots.c:742 msgid "take snapshot" msgstr "" -#: ../src/libs/snapshots.c:665 +#: ../src/libs/snapshots.c:744 msgid "" "take snapshot to compare with another image or the same image at another " "stage of development" msgstr "" -#: ../src/libs/snapshots.c:734 +#: ../src/libs/snapshots.c:790 msgid "toggle last snapshot" msgstr "" @@ -21747,103 +22370,107 @@ msgstr[0] "" msgstr[1] "" -#: ../src/libs/styles.c:444 ../src/libs/styles.c:627 +#: ../src/libs/styles.c:441 ../src/libs/styles.c:626 +msgid "_overwrite" +msgstr "" + +#: ../src/libs/styles.c:446 ../src/libs/styles.c:631 #, c-format msgid "" "style `%s' already exists.\n" "do you want to overwrite existing style?\n" msgstr "" -#: ../src/libs/styles.c:446 ../src/libs/styles.c:629 +#: ../src/libs/styles.c:448 ../src/libs/styles.c:633 msgid "apply this option to all existing styles" msgstr "" -#: ../src/libs/styles.c:509 +#: ../src/libs/styles.c:511 #, c-format msgid "style %s was successfully exported" msgstr "" -#: ../src/libs/styles.c:526 +#: ../src/libs/styles.c:528 msgid "select style" msgstr "" -#: ../src/libs/styles.c:536 +#: ../src/libs/styles.c:538 msgid "darktable style files" msgstr "" -#: ../src/libs/styles.c:815 +#: ../src/libs/styles.c:819 msgid "" "available styles,\n" "double-click to apply" msgstr "" -#: ../src/libs/styles.c:824 ../src/libs/styles.c:825 +#: ../src/libs/styles.c:828 ../src/libs/styles.c:829 msgid "filter style names" msgstr "" -#: ../src/libs/styles.c:837 +#: ../src/libs/styles.c:841 msgid "create duplicate" msgstr "" -#: ../src/libs/styles.c:844 +#: ../src/libs/styles.c:848 msgid "creates a duplicate of the image before applying style" msgstr "" -#: ../src/libs/styles.c:862 +#: ../src/libs/styles.c:866 msgid "create..." msgstr "" -#: ../src/libs/styles.c:864 +#: ../src/libs/styles.c:868 msgid "create styles from history stack of selected images" msgstr "" -#: ../src/libs/styles.c:869 ../src/libs/tagging.c:2252 +#: ../src/libs/styles.c:873 ../src/libs/tagging.c:2283 msgid "edit..." msgstr "" -#: ../src/libs/styles.c:871 +#: ../src/libs/styles.c:875 msgid "edit the selected styles in list above" msgstr "" -#: ../src/libs/styles.c:878 +#: ../src/libs/styles.c:882 msgid "removes the selected styles in list above" msgstr "" -#: ../src/libs/styles.c:885 +#: ../src/libs/styles.c:889 msgid "import styles from a style files" msgstr "" -#: ../src/libs/styles.c:892 +#: ../src/libs/styles.c:896 msgid "export the selected styles into a style files" msgstr "" -#: ../src/libs/styles.c:899 +#: ../src/libs/styles.c:903 msgid "apply the selected styles in list above to selected images" msgstr "" -#: ../src/libs/tagging.c:105 +#: ../src/libs/tagging.c:109 msgid "tagging" msgstr "" -#: ../src/libs/tagging.c:1255 +#: ../src/libs/tagging.c:1258 msgid "attach tag to all" msgstr "" -#: ../src/libs/tagging.c:1263 ../src/libs/tagging.c:2225 +#: ../src/libs/tagging.c:1266 ../src/libs/tagging.c:2256 msgid "detach tag" msgstr "" -#: ../src/libs/tagging.c:1483 +#: ../src/libs/tagging.c:1486 msgid "delete tag?" msgstr "" -#: ../src/libs/tagging.c:1490 ../src/libs/tagging.c:1578 -#: ../src/libs/tagging.c:1789 ../src/libs/tagging.c:2063 +#: ../src/libs/tagging.c:1496 ../src/libs/tagging.c:1587 +#: ../src/libs/tagging.c:1814 ../src/libs/tagging.c:2093 #, c-format msgid "selected: %s" msgstr "" -#: ../src/libs/tagging.c:1497 +#: ../src/libs/tagging.c:1503 #, c-format msgid "" "do you really want to delete the tag `%s'?\n" @@ -21854,172 +22481,172 @@ msgstr[0] "" msgstr[1] "" -#: ../src/libs/tagging.c:1531 +#: ../src/libs/tagging.c:1537 #, c-format msgid "tag %s removed" msgstr "" -#: ../src/libs/tagging.c:1571 +#: ../src/libs/tagging.c:1577 msgid "delete node?" msgstr "" -#: ../src/libs/tagging.c:1585 +#: ../src/libs/tagging.c:1594 #, c-format msgid "<u>%d</u> tag will be deleted" msgid_plural "<u>%d</u> tags will be deleted" msgstr[0] "" msgstr[1] "" -#: ../src/libs/tagging.c:1590 ../src/libs/tagging.c:1801 -#: ../src/libs/tagging.c:2075 +#: ../src/libs/tagging.c:1599 ../src/libs/tagging.c:1826 +#: ../src/libs/tagging.c:2105 #, c-format msgid "<u>%d</u> image will be updated" msgid_plural "<u>%d</u> images will be updated" msgstr[0] "" msgstr[1] "" -#: ../src/libs/tagging.c:1616 +#: ../src/libs/tagging.c:1625 #, c-format msgid "%d tags removed" msgstr "" -#: ../src/libs/tagging.c:1652 +#: ../src/libs/tagging.c:1668 msgid "create tag" msgstr "" -#: ../src/libs/tagging.c:1662 ../src/libs/tagging.c:1809 +#: ../src/libs/tagging.c:1681 ../src/libs/tagging.c:1834 msgid "name: " msgstr "" -#: ../src/libs/tagging.c:1674 +#: ../src/libs/tagging.c:1696 #, c-format msgid "add to: \"%s\" " msgstr "" -#: ../src/libs/tagging.c:1680 ../src/libs/tagging.c:1824 +#: ../src/libs/tagging.c:1702 ../src/libs/tagging.c:1851 msgid "category" msgstr "" -#: ../src/libs/tagging.c:1689 ../src/libs/tagging.c:1833 +#: ../src/libs/tagging.c:1711 ../src/libs/tagging.c:1860 msgid "synonyms: " msgstr "" -#: ../src/libs/tagging.c:1706 ../src/libs/tagging.c:1855 -#: ../src/libs/tagging.c:2097 +#: ../src/libs/tagging.c:1728 ../src/libs/tagging.c:1882 +#: ../src/libs/tagging.c:2128 msgid "empty tag is not allowed, aborting" msgstr "" -#: ../src/libs/tagging.c:1717 +#: ../src/libs/tagging.c:1739 msgid "tag name already exists. aborting." msgstr "" -#: ../src/libs/tagging.c:1796 ../src/libs/tagging.c:2070 +#: ../src/libs/tagging.c:1821 ../src/libs/tagging.c:2100 #, c-format msgid "<u>%d</u> tag will be updated" msgid_plural "<u>%d</u> tags will be updated" msgstr[0] "" msgstr[1] "" -#: ../src/libs/tagging.c:1857 +#: ../src/libs/tagging.c:1884 msgid "" "'|' character is not allowed for renaming tag.\n" "to modify the hierarchy use rename path instead. Aborting." msgstr "" -#: ../src/libs/tagging.c:1896 ../src/libs/tagging.c:2004 +#: ../src/libs/tagging.c:1923 ../src/libs/tagging.c:2031 #, c-format msgid "at least one new tag name (%s) already exists, aborting" msgstr "" -#: ../src/libs/tagging.c:2056 +#: ../src/libs/tagging.c:2083 msgid "change path" msgstr "" -#: ../src/libs/tagging.c:2099 +#: ../src/libs/tagging.c:2130 msgid "'|' misplaced, empty tag is not allowed, aborting" msgstr "" -#: ../src/libs/tagging.c:2195 +#: ../src/libs/tagging.c:2226 #, c-format msgid "tag %s created" msgstr "" -#: ../src/libs/tagging.c:2221 +#: ../src/libs/tagging.c:2252 msgid "attach tag" msgstr "" -#: ../src/libs/tagging.c:2234 +#: ../src/libs/tagging.c:2265 msgid "create tag..." msgstr "" -#: ../src/libs/tagging.c:2240 +#: ../src/libs/tagging.c:2271 msgid "delete tag" msgstr "" -#: ../src/libs/tagging.c:2247 +#: ../src/libs/tagging.c:2278 msgid "delete node" msgstr "" -#: ../src/libs/tagging.c:2260 +#: ../src/libs/tagging.c:2291 msgid "change path..." msgstr "" -#: ../src/libs/tagging.c:2270 +#: ../src/libs/tagging.c:2301 msgid "set as a tag" msgstr "" -#: ../src/libs/tagging.c:2281 +#: ../src/libs/tagging.c:2312 msgid "copy to entry" msgstr "" -#: ../src/libs/tagging.c:2298 +#: ../src/libs/tagging.c:2329 msgid "go to tag collection" msgstr "" -#: ../src/libs/tagging.c:2304 +#: ../src/libs/tagging.c:2335 msgid "go back to work" msgstr "" -#: ../src/libs/tagging.c:2461 +#: ../src/libs/tagging.c:2492 #, c-format msgid "%s" msgstr "" -#: ../src/libs/tagging.c:2462 +#: ../src/libs/tagging.c:2493 msgid "(private)" msgstr "" -#: ../src/libs/tagging.c:2488 +#: ../src/libs/tagging.c:2519 msgid "select a keyword file" msgstr "" -#: ../src/libs/tagging.c:2501 +#: ../src/libs/tagging.c:2532 msgid "error importing tags" msgstr "" -#: ../src/libs/tagging.c:2503 +#: ../src/libs/tagging.c:2534 #, c-format msgid "%zd tags imported" msgstr "" -#: ../src/libs/tagging.c:2524 +#: ../src/libs/tagging.c:2555 msgid "select file to export to" msgstr "" -#: ../src/libs/tagging.c:2538 +#: ../src/libs/tagging.c:2569 msgid "error exporting tags" msgstr "" -#: ../src/libs/tagging.c:2540 +#: ../src/libs/tagging.c:2571 #, c-format msgid "%zd tags exported" msgstr "" -#: ../src/libs/tagging.c:2964 +#: ../src/libs/tagging.c:2995 msgid "drop to root" msgstr "" -#: ../src/libs/tagging.c:3100 +#: ../src/libs/tagging.c:3131 msgid "" "attached tags\n" "press Delete or double-click to detach\n" @@ -22027,47 +22654,47 @@ "Tab to give the focus to entry" msgstr "" -#: ../src/libs/tagging.c:3111 +#: ../src/libs/tagging.c:3142 msgid "attach" msgstr "" -#: ../src/libs/tagging.c:3112 +#: ../src/libs/tagging.c:3143 msgid "attach tag to all selected images" msgstr "" -#: ../src/libs/tagging.c:3115 +#: ../src/libs/tagging.c:3146 msgid "detach" msgstr "" -#: ../src/libs/tagging.c:3116 +#: ../src/libs/tagging.c:3147 msgid "detach tag from all selected images" msgstr "" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "toggle list with / without hierarchy" msgstr "" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "hide" msgstr "" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "toggle sort by name or by count" msgstr "" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "sort" msgstr "" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "toggle show or not darktable tags" msgstr "" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "dttags" msgstr "" -#: ../src/libs/tagging.c:3149 +#: ../src/libs/tagging.c:3180 msgid "" "enter tag name\n" "press Enter to create a new tag and attach it on selected images\n" @@ -22075,11 +22702,11 @@ "press shift+Tab to select the first attached user tag" msgstr "" -#: ../src/libs/tagging.c:3160 ../src/libs/tagging.c:3166 +#: ../src/libs/tagging.c:3191 ../src/libs/tagging.c:3197 msgid "clear entry" msgstr "" -#: ../src/libs/tagging.c:3213 +#: ../src/libs/tagging.c:3244 msgid "" "tag dictionary,\n" "Enter or double-click to attach selected tag on selected images\n" @@ -22089,46 +22716,46 @@ "shift+Tab to give the focus to entry" msgstr "" -#: ../src/libs/tagging.c:3248 +#: ../src/libs/tagging.c:3279 msgid "" "create a new tag with the\n" "name you entered" msgstr "" -#: ../src/libs/tagging.c:3251 +#: ../src/libs/tagging.c:3282 msgid "import tags from a Lightroom keyword file" msgstr "" -#: ../src/libs/tagging.c:3254 +#: ../src/libs/tagging.c:3285 msgid "export all tags to a Lightroom keyword file" msgstr "" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "toggle list / tree view" msgstr "" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "tree" msgstr "" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "toggle list with / without suggestion" msgstr "" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "suggestion" msgstr "" -#: ../src/libs/tagging.c:3282 +#: ../src/libs/tagging.c:3313 msgid "redo last tag" msgstr "" -#: ../src/libs/tagging.c:3365 +#: ../src/libs/tagging.c:3396 msgid "" "tag shortcut is not active with tag tree view. please switch to list view" msgstr "" -#: ../src/libs/tagging.c:3469 +#: ../src/libs/tagging.c:3500 msgid "tagging settings" msgstr "" @@ -22145,27 +22772,6 @@ msgid "toggle color label of selected images" msgstr "" -#: ../src/libs/tools/darktable.c:284 -#, c-format -msgid "copyright (c) the authors 2009-%s" -msgstr "" - -#: ../src/libs/tools/darktable.c:288 -msgid "organize and develop images from digital cameras" -msgstr "" - -#: ../src/libs/tools/darktable.c:300 -msgid "all those of you that made previous releases possible" -msgstr "" - -#: ../src/libs/tools/darktable.c:305 -msgid "and..." -msgstr "" - -#: ../src/libs/tools/darktable.c:307 -msgid "translator-credits" -msgstr "" - #: ../src/libs/tools/filmstrip.c:45 msgid "filmstrip" msgstr "" @@ -22472,35 +23078,35 @@ msgid "click to enter culling layout in dynamic mode." msgstr "" -#: ../src/libs/tools/lighttable.c:368 +#: ../src/libs/tools/lighttable.c:365 msgid "toggle filemanager layout" msgstr "" -#: ../src/libs/tools/lighttable.c:371 +#: ../src/libs/tools/lighttable.c:368 msgid "click to enter filemanager layout." msgstr "" -#: ../src/libs/tools/lighttable.c:377 +#: ../src/libs/tools/lighttable.c:374 msgid "toggle zoomable lighttable layout" msgstr "" -#: ../src/libs/tools/lighttable.c:380 +#: ../src/libs/tools/lighttable.c:377 msgid "click to enter zoomable lighttable layout." msgstr "" -#: ../src/libs/tools/lighttable.c:386 +#: ../src/libs/tools/lighttable.c:383 msgid "toggle culling mode" msgstr "" -#: ../src/libs/tools/lighttable.c:394 +#: ../src/libs/tools/lighttable.c:391 msgid "toggle culling dynamic mode" msgstr "" -#: ../src/libs/tools/lighttable.c:441 +#: ../src/libs/tools/lighttable.c:438 msgid "toggle culling zoom mode" msgstr "" -#: ../src/libs/tools/lighttable.c:443 +#: ../src/libs/tools/lighttable.c:440 msgid "exit current layout" msgstr "" @@ -22581,7 +23187,7 @@ msgid "Lua options" msgstr "" -#: ../src/views/darkroom.c:607 +#: ../src/views/darkroom.c:503 #, c-format msgid "" "darktable could not load `%s', switching to lighttable now.\n" @@ -22595,169 +23201,169 @@ "at https://github.com/darktable-org/darktable" msgstr "" -#: ../src/views/darkroom.c:625 +#: ../src/views/darkroom.c:521 #, c-format msgctxt "darkroom" msgid "loading `%s' ..." msgstr "" -#: ../src/views/darkroom.c:749 ../src/views/darkroom.c:2496 +#: ../src/views/darkroom.c:668 ../src/views/darkroom.c:2335 msgid "gamut check" msgstr "" -#: ../src/views/darkroom.c:749 +#: ../src/views/darkroom.c:668 msgid "soft proof" msgstr "" #. fail :( -#: ../src/views/darkroom.c:787 ../src/views/print.c:356 +#: ../src/views/darkroom.c:708 ../src/views/print.c:356 msgid "no image to open!" msgstr "" -#: ../src/views/darkroom.c:1331 +#: ../src/views/darkroom.c:1232 msgid "no user-defined presets for favorite modules were found" msgstr "" -#: ../src/views/darkroom.c:1476 +#: ../src/views/darkroom.c:1377 msgid "no styles have been created yet" msgstr "" -#: ../src/views/darkroom.c:2331 ../src/views/darkroom.c:2332 +#: ../src/views/darkroom.c:2170 ../src/views/darkroom.c:2171 msgid "quick access to presets" msgstr "" -#: ../src/views/darkroom.c:2340 +#: ../src/views/darkroom.c:2179 msgid "quick access to styles" msgstr "" -#: ../src/views/darkroom.c:2342 +#: ../src/views/darkroom.c:2181 msgid "quick access for applying any of your styles" msgstr "" -#: ../src/views/darkroom.c:2348 +#: ../src/views/darkroom.c:2187 msgid "second window" msgstr "" -#: ../src/views/darkroom.c:2351 +#: ../src/views/darkroom.c:2190 msgid "display a second darkroom image window" msgstr "" -#: ../src/views/darkroom.c:2356 +#: ../src/views/darkroom.c:2195 msgid "color assessment" msgstr "" -#: ../src/views/darkroom.c:2359 +#: ../src/views/darkroom.c:2198 msgid "toggle ISO 12646 color assessment conditions" msgstr "" -#: ../src/views/darkroom.c:2372 +#: ../src/views/darkroom.c:2211 msgid "" "toggle raw over exposed indication\n" "right click for options" msgstr "" -#: ../src/views/darkroom.c:2388 +#: ../src/views/darkroom.c:2227 msgid "select how to mark the clipped pixels" msgstr "" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with CFA color" msgstr "" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with solid color" msgstr "" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "false color" msgstr "" -#: ../src/views/darkroom.c:2393 ../src/views/darkroom.c:2444 +#: ../src/views/darkroom.c:2232 ../src/views/darkroom.c:2283 msgid "color scheme" msgstr "" -#: ../src/views/darkroom.c:2394 +#: ../src/views/darkroom.c:2233 msgid "" "select the solid color to indicate over exposure.\n" "will only be used if mode = mark with solid color" msgstr "" -#: ../src/views/darkroom.c:2397 +#: ../src/views/darkroom.c:2236 msgctxt "solidcolor" msgid "red" msgstr "" -#: ../src/views/darkroom.c:2398 +#: ../src/views/darkroom.c:2237 msgctxt "solidcolor" msgid "green" msgstr "" -#: ../src/views/darkroom.c:2399 +#: ../src/views/darkroom.c:2238 msgctxt "solidcolor" msgid "blue" msgstr "" -#: ../src/views/darkroom.c:2400 +#: ../src/views/darkroom.c:2239 msgctxt "solidcolor" msgid "black" msgstr "" -#: ../src/views/darkroom.c:2408 +#: ../src/views/darkroom.c:2247 msgid "" "threshold of what shall be considered overexposed\n" "1.0 - white level\n" "0.0 - black level" msgstr "" -#: ../src/views/darkroom.c:2422 +#: ../src/views/darkroom.c:2261 msgid "" "toggle clipping indication\n" "right click for options" msgstr "" -#: ../src/views/darkroom.c:2437 +#: ../src/views/darkroom.c:2276 msgid "clipping preview mode" msgstr "" -#: ../src/views/darkroom.c:2438 +#: ../src/views/darkroom.c:2277 msgid "" "select the metric you want to preview\n" "full gamut is the combination of all other modes" msgstr "" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "full gamut" msgstr "" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "any RGB channel" msgstr "" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "luminance only" msgstr "" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "saturation only" msgstr "" -#: ../src/views/darkroom.c:2445 +#: ../src/views/darkroom.c:2284 msgid "select colors to indicate clipping" msgstr "" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "red & blue" msgstr "" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "purple & green" msgstr "" -#: ../src/views/darkroom.c:2454 +#: ../src/views/darkroom.c:2293 msgid "lower threshold" msgstr "" -#: ../src/views/darkroom.c:2455 +#: ../src/views/darkroom.c:2294 msgid "" "clipping threshold for the black point,\n" "in EV, relatively to white (0 EV).\n" @@ -22769,210 +23375,218 @@ "typical B&W glossy prints produce black at -9.00 EV." msgstr "" -#: ../src/views/darkroom.c:2471 +#: ../src/views/darkroom.c:2310 msgid "upper threshold" msgstr "" -#: ../src/views/darkroom.c:2473 +#: ../src/views/darkroom.c:2312 #, no-c-format msgid "" "clipping threshold for the white point.\n" "100% is peak medium luminance." msgstr "" -#: ../src/views/darkroom.c:2485 +#: ../src/views/darkroom.c:2324 msgid "softproof" msgstr "" -#: ../src/views/darkroom.c:2488 +#: ../src/views/darkroom.c:2327 msgid "" "toggle softproofing\n" "right click for profile options" msgstr "" -#: ../src/views/darkroom.c:2499 +#: ../src/views/darkroom.c:2338 msgid "" "toggle gamut checking\n" "right click for profile options" msgstr "" -#: ../src/views/darkroom.c:2524 ../src/views/darkroom.c:2526 -#: ../src/views/darkroom.c:2540 ../src/views/darkroom.c:2541 -#: ../src/views/darkroom.c:2542 ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2365 ../src/views/darkroom.c:2367 +#: ../src/views/darkroom.c:2381 ../src/views/darkroom.c:2382 +#: ../src/views/darkroom.c:2383 ../src/views/darkroom.c:2384 #: ../src/views/lighttable.c:1182 ../src/views/lighttable.c:1184 msgid "profiles" msgstr "" -#: ../src/views/darkroom.c:2526 ../src/views/lighttable.c:1184 +#: ../src/views/darkroom.c:2367 ../src/views/lighttable.c:1184 msgid "preview intent" msgstr "" -#: ../src/views/darkroom.c:2540 ../src/views/lighttable.c:1188 +#: ../src/views/darkroom.c:2381 ../src/views/lighttable.c:1188 msgid "display profile" msgstr "" -#: ../src/views/darkroom.c:2541 ../src/views/lighttable.c:1191 +#: ../src/views/darkroom.c:2382 ../src/views/lighttable.c:1191 msgid "preview display profile" msgstr "" -#: ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2384 msgid "histogram profile" msgstr "" -#: ../src/views/darkroom.c:2605 ../src/views/lighttable.c:1225 +#: ../src/views/darkroom.c:2391 +msgid "second preview window ISO 12646 color assessment" +msgstr "" + +#: ../src/views/darkroom.c:2393 +msgid "color assessment second preview" +msgstr "" + +#: ../src/views/darkroom.c:2452 ../src/views/lighttable.c:1225 msgid "display ICC profiles" msgstr "" -#: ../src/views/darkroom.c:2609 ../src/views/lighttable.c:1229 +#: ../src/views/darkroom.c:2456 ../src/views/lighttable.c:1229 msgid "preview display ICC profiles" msgstr "" -#: ../src/views/darkroom.c:2613 +#: ../src/views/darkroom.c:2460 msgid "softproof ICC profiles" msgstr "" -#: ../src/views/darkroom.c:2617 +#: ../src/views/darkroom.c:2464 msgid "histogram and color picker ICC profiles" msgstr "" -#: ../src/views/darkroom.c:2651 +#: ../src/views/darkroom.c:2497 msgid "" "toggle guide lines\n" "right click for guides options" msgstr "" #. Fullscreen preview key -#: ../src/views/darkroom.c:2668 +#: ../src/views/darkroom.c:2514 msgid "full preview" msgstr "" #. add an option to allow skip mouse events while other overlays are consuming mouse actions -#: ../src/views/darkroom.c:2672 +#: ../src/views/darkroom.c:2518 msgid "force pan/zoom/rotate with mouse" msgstr "" #. Zoom shortcuts -#: ../src/views/darkroom.c:2684 +#: ../src/views/darkroom.c:2530 msgid "zoom close-up" msgstr "" #. zoom in/out #. zoom in/out/min/max -#: ../src/views/darkroom.c:2687 ../src/views/lighttable.c:1283 +#: ../src/views/darkroom.c:2533 ../src/views/lighttable.c:1283 msgid "zoom in" msgstr "" -#: ../src/views/darkroom.c:2688 ../src/views/lighttable.c:1285 +#: ../src/views/darkroom.c:2534 ../src/views/lighttable.c:1285 msgid "zoom out" msgstr "" #. Shortcut to skip images -#: ../src/views/darkroom.c:2691 +#: ../src/views/darkroom.c:2537 msgid "image forward" msgstr "" -#: ../src/views/darkroom.c:2692 +#: ../src/views/darkroom.c:2538 msgid "image back" msgstr "" #. cycle overlay colors -#: ../src/views/darkroom.c:2695 +#: ../src/views/darkroom.c:2541 msgid "cycle overlay colors" msgstr "" #. toggle visibility of drawn masks for current gui module -#: ../src/views/darkroom.c:2698 +#: ../src/views/darkroom.c:2544 msgid "show drawn masks" msgstr "" #. brush size +/- -#: ../src/views/darkroom.c:2701 +#: ../src/views/darkroom.c:2547 msgid "increase brush size" msgstr "" -#: ../src/views/darkroom.c:2702 +#: ../src/views/darkroom.c:2548 msgid "decrease brush size" msgstr "" #. brush hardness +/- -#: ../src/views/darkroom.c:2705 +#: ../src/views/darkroom.c:2551 msgid "increase brush hardness" msgstr "" -#: ../src/views/darkroom.c:2706 +#: ../src/views/darkroom.c:2552 msgid "decrease brush hardness" msgstr "" #. brush opacity +/- -#: ../src/views/darkroom.c:2709 +#: ../src/views/darkroom.c:2555 msgid "increase brush opacity" msgstr "" -#: ../src/views/darkroom.c:2710 +#: ../src/views/darkroom.c:2556 msgid "decrease brush opacity" msgstr "" #. undo/redo -#: ../src/views/darkroom.c:2713 ../src/views/lighttable.c:1275 +#: ../src/views/darkroom.c:2559 ../src/views/lighttable.c:1275 #: ../src/views/map.c:2115 msgid "undo" msgstr "" -#: ../src/views/darkroom.c:2714 ../src/views/lighttable.c:1276 +#: ../src/views/darkroom.c:2560 ../src/views/lighttable.c:1276 #: ../src/views/map.c:2116 msgid "redo" msgstr "" #. change the precision for adjusting sliders with keyboard shortcuts -#: ../src/views/darkroom.c:2717 +#: ../src/views/darkroom.c:2563 msgid "change keyboard shortcut slider precision" msgstr "" -#: ../src/views/darkroom.c:3989 +#: ../src/views/darkroom.c:3565 msgid "keyboard shortcut slider precision: fine" msgstr "" -#: ../src/views/darkroom.c:3991 +#: ../src/views/darkroom.c:3567 msgid "keyboard shortcut slider precision: normal" msgstr "" -#: ../src/views/darkroom.c:3993 +#: ../src/views/darkroom.c:3569 msgid "keyboard shortcut slider precision: coarse" msgstr "" -#: ../src/views/darkroom.c:4009 +#: ../src/views/darkroom.c:3584 msgid "switch to lighttable" msgstr "" -#: ../src/views/darkroom.c:4010 ../src/views/lighttable.c:882 +#: ../src/views/darkroom.c:3585 ../src/views/lighttable.c:882 msgid "zoom in the image" msgstr "" -#: ../src/views/darkroom.c:4011 +#: ../src/views/darkroom.c:3586 msgid "unbounded zoom in the image" msgstr "" -#: ../src/views/darkroom.c:4012 +#: ../src/views/darkroom.c:3587 msgid "zoom to 100% 200% and back" msgstr "" -#: ../src/views/darkroom.c:4013 ../src/views/lighttable.c:885 +#: ../src/views/darkroom.c:3588 ../src/views/lighttable.c:885 msgid "pan a zoomed image" msgstr "" -#: ../src/views/darkroom.c:4015 ../src/views/lighttable.c:927 +#: ../src/views/darkroom.c:3590 ../src/views/lighttable.c:927 msgid "[modules] expand module without closing others" msgstr "" -#: ../src/views/darkroom.c:4016 ../src/views/lighttable.c:928 +#: ../src/views/darkroom.c:3591 ../src/views/lighttable.c:928 msgid "[modules] expand module and close others" msgstr "" -#: ../src/views/darkroom.c:4018 +#: ../src/views/darkroom.c:3593 msgid "[modules] rename module" msgstr "" -#: ../src/views/darkroom.c:4020 +#: ../src/views/darkroom.c:3595 msgid "[modules] change module position in pipe" msgstr "" @@ -23117,59 +23731,59 @@ msgid "print" msgstr "" -#: ../src/views/slideshow.c:353 +#: ../src/views/slideshow.c:355 msgid "end of images" msgstr "" -#: ../src/views/slideshow.c:374 +#: ../src/views/slideshow.c:376 msgid "end of images. press any key to return to lighttable mode" msgstr "" -#: ../src/views/slideshow.c:504 +#: ../src/views/slideshow.c:509 msgid "waiting to start slideshow" msgstr "" -#: ../src/views/slideshow.c:640 ../src/views/slideshow.c:661 -#: ../src/views/slideshow.c:669 +#: ../src/views/slideshow.c:678 ../src/views/slideshow.c:705 +#: ../src/views/slideshow.c:713 msgid "slideshow paused" msgstr "" -#: ../src/views/slideshow.c:648 ../src/views/slideshow.c:655 +#: ../src/views/slideshow.c:686 ../src/views/slideshow.c:696 #, c-format msgid "slideshow delay set to %d second" msgid_plural "slideshow delay set to %d seconds" msgstr[0] "" msgstr[1] "" -#: ../src/views/slideshow.c:684 +#: ../src/views/slideshow.c:728 msgid "start and stop" msgstr "" -#: ../src/views/slideshow.c:685 +#: ../src/views/slideshow.c:730 msgid "exit slideshow" msgstr "" -#: ../src/views/slideshow.c:688 +#: ../src/views/slideshow.c:734 msgid "slow down" msgstr "" -#: ../src/views/slideshow.c:691 +#: ../src/views/slideshow.c:738 msgid "speed up" msgstr "" -#: ../src/views/slideshow.c:695 +#: ../src/views/slideshow.c:743 msgid "step forward" msgstr "" -#: ../src/views/slideshow.c:696 +#: ../src/views/slideshow.c:745 msgid "step back" msgstr "" -#: ../src/views/slideshow.c:702 +#: ../src/views/slideshow.c:753 msgid "go to next image" msgstr "" -#: ../src/views/slideshow.c:703 +#: ../src/views/slideshow.c:755 msgid "go to previous image" msgstr "" @@ -23182,47 +23796,47 @@ msgid "no camera with tethering support available for use..." msgstr "" -#: ../src/views/view.c:1193 +#: ../src/views/view.c:1352 msgid "left click" msgstr "" -#: ../src/views/view.c:1196 +#: ../src/views/view.c:1355 msgid "right click" msgstr "" -#: ../src/views/view.c:1199 +#: ../src/views/view.c:1358 msgid "middle click" msgstr "" -#: ../src/views/view.c:1205 +#: ../src/views/view.c:1364 msgid "left double-click" msgstr "" -#: ../src/views/view.c:1208 +#: ../src/views/view.c:1367 msgid "right double-click" msgstr "" -#: ../src/views/view.c:1211 +#: ../src/views/view.c:1370 msgid "drag and drop" msgstr "" -#: ../src/views/view.c:1214 +#: ../src/views/view.c:1373 msgid "left click+drag" msgstr "" -#: ../src/views/view.c:1217 +#: ../src/views/view.c:1376 msgid "right click+drag" msgstr "" -#: ../src/views/view.c:1237 +#: ../src/views/view.c:1398 msgid "darktable - accels window" msgstr "" -#: ../src/views/view.c:1285 +#: ../src/views/view.c:1447 msgid "switch to a classic window which will stay open after key release" msgstr "" #. we add the mouse actions too -#: ../src/views/view.c:1344 +#: ../src/views/view.c:1514 msgid "mouse actions" msgstr "" diff -Nru darktable-4.4.2/po/de.po darktable-4.6.1/po/de.po --- darktable-4.4.2/po/de.po 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/po/de.po 2024-02-16 17:31:09.000000000 +0000 @@ -5,8 +5,8 @@ msgstr "" "Project-Id-Version: darktable\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-31 13:24+0200\n" -"PO-Revision-Date: 2023-06-17 21:35+0200\n" +"POT-Creation-Date: 2023-11-30 19:32+0100\n" +"PO-Revision-Date: 2023-11-30 21:56+0100\n" "Last-Translator: Martin Straeten <martin.straeten@gmail.com>\n" "Language-Team: German <>\n" "Language: de_DE\n" @@ -14,1167 +14,1391 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Poedit 3.3.1\n" +"X-Generator: Poedit 3.4.1\n" "X-Poedit-Bookmarks: 3066,376,-1,-1,-1,-1,-1,-1,-1,-1\n" -#: ../build/bin/conf_gen.h:172 ../build/bin/preferences_gen.h:7632 +#: ../build/bin/conf_gen.h:174 msgctxt "preferences" msgid "first instance" msgstr "erste Instanz" -#: ../build/bin/conf_gen.h:173 ../build/bin/preferences_gen.h:7637 ../build/bin/preferences_gen.h:7656 +#: ../build/bin/conf_gen.h:175 ../build/bin/preferences_gen.h:7922 msgctxt "preferences" msgid "last instance" msgstr "letzte Instanz" -#: ../build/bin/conf_gen.h:240 ../build/bin/conf_gen.h:346 ../build/bin/conf_gen.h:356 ../build/bin/conf_gen.h:1186 -#: ../build/bin/conf_gen.h:1202 ../build/bin/preferences_gen.h:4137 ../build/bin/preferences_gen.h:4156 -#: ../build/bin/preferences_gen.h:4232 ../build/bin/preferences_gen.h:6706 ../build/bin/preferences_gen.h:6834 -#: ../build/bin/preferences_gen.h:6899 +#: ../build/bin/conf_gen.h:252 ../build/bin/conf_gen.h:352 +#: ../build/bin/conf_gen.h:362 ../build/bin/conf_gen.h:1239 +#: ../build/bin/conf_gen.h:1255 ../build/bin/conf_gen.h:1275 +#: ../build/bin/preferences_gen.h:4747 ../build/bin/preferences_gen.h:4885 msgctxt "preferences" msgid "never" msgstr "nie" -#: ../build/bin/conf_gen.h:241 ../build/bin/preferences_gen.h:6711 +#: ../build/bin/conf_gen.h:253 msgctxt "preferences" msgid "once a month" msgstr "monatlich" -#: ../build/bin/conf_gen.h:242 ../build/bin/preferences_gen.h:6716 ../build/bin/preferences_gen.h:6745 +#: ../build/bin/conf_gen.h:254 ../build/bin/preferences_gen.h:7138 msgctxt "preferences" msgid "once a week" msgstr "wöchentlich" -#: ../build/bin/conf_gen.h:243 ../build/bin/preferences_gen.h:6721 +#: ../build/bin/conf_gen.h:255 msgctxt "preferences" msgid "once a day" msgstr "täglich" -#: ../build/bin/conf_gen.h:244 ../build/bin/preferences_gen.h:6726 +#: ../build/bin/conf_gen.h:256 msgctxt "preferences" msgid "on close" msgstr "beim Beenden" -#: ../build/bin/conf_gen.h:280 ../build/bin/conf_gen.h:1179 ../build/bin/conf_gen.h:1195 -#: ../build/bin/preferences_gen.h:4102 ../build/bin/preferences_gen.h:4197 ../build/bin/preferences_gen.h:5748 +#: ../build/bin/conf_gen.h:292 ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1248 ../build/bin/conf_gen.h:1276 msgctxt "preferences" msgid "small" msgstr "klein" -#: ../build/bin/conf_gen.h:281 ../build/bin/conf_gen.h:393 ../build/bin/preferences_gen.h:5753 -#: ../build/bin/preferences_gen.h:5782 ../build/bin/preferences_gen.h:5969 ../build/bin/preferences_gen.h:5998 +#: ../build/bin/conf_gen.h:293 ../build/bin/conf_gen.h:405 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6223 msgctxt "preferences" msgid "default" msgstr "Standard" -#: ../build/bin/conf_gen.h:282 ../build/bin/conf_gen.h:2814 ../build/bin/preferences_gen.h:5758 +#: ../build/bin/conf_gen.h:294 ../build/bin/conf_gen.h:2904 msgctxt "preferences" msgid "large" msgstr "groß" -#: ../build/bin/conf_gen.h:283 ../build/bin/preferences_gen.h:5763 +#: ../build/bin/conf_gen.h:295 msgctxt "preferences" msgid "unrestricted" msgstr "unbegrenzt" -#: ../build/bin/conf_gen.h:347 ../build/bin/preferences_gen.h:6839 +#: ../build/bin/conf_gen.h:353 msgctxt "preferences" msgid "after edit" msgstr "nach Bearbeitung" -#: ../build/bin/conf_gen.h:348 ../build/bin/preferences_gen.h:6844 ../build/bin/preferences_gen.h:6863 +#: ../build/bin/conf_gen.h:354 ../build/bin/preferences_gen.h:7224 msgctxt "preferences" msgid "on import" msgstr "beim Import" -#: ../build/bin/conf_gen.h:357 ../build/bin/conf_gen.h:1178 ../build/bin/conf_gen.h:1194 ../build/bin/conf_gen.h:3214 -#: ../build/bin/preferences_gen.h:4097 ../build/bin/preferences_gen.h:4192 ../build/bin/preferences_gen.h:5112 -#: ../build/bin/preferences_gen.h:5166 ../build/bin/preferences_gen.h:6904 +#: ../build/bin/conf_gen.h:363 ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1247 ../build/bin/conf_gen.h:3300 +#: ../build/bin/preferences_gen.h:5644 msgctxt "preferences" msgid "always" msgstr "immer" -#: ../build/bin/conf_gen.h:358 ../build/bin/preferences_gen.h:6909 ../build/bin/preferences_gen.h:6928 +#: ../build/bin/conf_gen.h:364 ../build/bin/preferences_gen.h:7259 msgctxt "preferences" msgid "only large entries" msgstr "nur große Daten" -#: ../build/bin/conf_gen.h:378 ../build/bin/preferences_gen.h:8069 +#: ../build/bin/conf_gen.h:390 msgctxt "preferences" msgid "sensitive" msgstr "Groß- und Kleinschreibung beachten" -#: ../build/bin/conf_gen.h:379 ../build/bin/preferences_gen.h:8074 ../build/bin/preferences_gen.h:8093 +#: ../build/bin/conf_gen.h:391 ../build/bin/preferences_gen.h:8133 msgctxt "preferences" msgid "insensitive" msgstr "Groß- und Kleinschreibung ignorieren" -#: ../build/bin/conf_gen.h:394 ../build/bin/preferences_gen.h:5974 +#: ../build/bin/conf_gen.h:406 msgctxt "preferences" msgid "multiple GPUs" msgstr "mehrere GPUs" -#: ../build/bin/conf_gen.h:395 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/conf_gen.h:407 msgctxt "preferences" msgid "very fast GPU" msgstr "sehr schnelle GPU" -#: ../build/bin/conf_gen.h:403 ../build/bin/preferences_gen.h:6040 ../build/bin/preferences_gen.h:6074 +#: ../build/bin/conf_gen.h:755 msgctxt "preferences" -msgid "nothing" -msgstr "nichts" - -#: ../build/bin/conf_gen.h:404 ../build/bin/preferences_gen.h:6045 -msgctxt "preferences" -msgid "memory size" -msgstr "Speichergröße" - -#: ../build/bin/conf_gen.h:405 ../build/bin/preferences_gen.h:6050 -msgctxt "preferences" -msgid "memory transfer" -msgstr "Speichertransfer" - -#: ../build/bin/conf_gen.h:406 ../build/bin/preferences_gen.h:6055 -msgctxt "preferences" -msgid "memory size and transfer" -msgstr "Speichergröße und -transfer" - -#: ../build/bin/conf_gen.h:706 ../build/bin/preferences_gen.h:8257 ../build/bin/preferences_gen.h:8281 -msgctxt "preferences" -msgid "id" -msgstr "ID" +msgid "import time" +msgstr "Importzeit" -#: ../build/bin/conf_gen.h:707 ../build/bin/preferences_gen.h:8262 +#: ../build/bin/conf_gen.h:756 msgctxt "preferences" -msgid "folder" -msgstr "Verzeichnis" +msgid "folder name" +msgstr "Verzeichnisname" -#: ../build/bin/conf_gen.h:721 +#: ../build/bin/conf_gen.h:770 msgctxt "preferences" msgid "RGB" msgstr "RGB" -#: ../build/bin/conf_gen.h:722 +#: ../build/bin/conf_gen.h:771 msgctxt "preferences" msgid "Lab" msgstr "Lab" -#: ../build/bin/conf_gen.h:723 +#: ../build/bin/conf_gen.h:772 msgctxt "preferences" msgid "LCh" msgstr "LCh" -#: ../build/bin/conf_gen.h:724 +#: ../build/bin/conf_gen.h:773 msgctxt "preferences" msgid "HSL" msgstr "HSL" -#: ../build/bin/conf_gen.h:725 +#: ../build/bin/conf_gen.h:774 msgctxt "preferences" msgid "Hex" msgstr "Hex" -#: ../build/bin/conf_gen.h:726 ../build/bin/conf_gen.h:1830 ../build/bin/conf_gen.h:2488 ../build/bin/conf_gen.h:2790 -#: ../build/bin/conf_gen.h:3044 ../build/bin/preferences_gen.h:5577 ../build/bin/preferences_gen.h:6561 +#: ../build/bin/conf_gen.h:775 ../build/bin/conf_gen.h:1916 +#: ../build/bin/conf_gen.h:2578 ../build/bin/conf_gen.h:2880 +#: ../build/bin/conf_gen.h:3136 msgctxt "preferences" msgid "none" msgstr "keines" -#: ../build/bin/conf_gen.h:734 +#: ../build/bin/conf_gen.h:783 msgctxt "preferences" msgid "mean" msgstr "Mittel" -#: ../build/bin/conf_gen.h:735 +#: ../build/bin/conf_gen.h:784 msgctxt "preferences" msgid "min" msgstr "min" -#: ../build/bin/conf_gen.h:736 +#: ../build/bin/conf_gen.h:785 msgctxt "preferences" msgid "max" msgstr "max" -#: ../build/bin/conf_gen.h:924 +#: ../build/bin/conf_gen.h:973 msgid "select only new pictures" msgstr "nur neue Bilder auswählen" -#: ../build/bin/conf_gen.h:925 +#: ../build/bin/conf_gen.h:974 msgid "only select images that have not already been imported" msgstr "Nur noch nicht importierte Bilder auswählen" -#: ../build/bin/conf_gen.h:930 -msgid "ignore JPEG images" -msgstr "JPEG-Dateien ignorieren" +#: ../build/bin/conf_gen.h:979 +msgid "ignore non-raw images" +msgstr "Nicht-RAW Dateien ignorieren" -#: ../build/bin/conf_gen.h:931 +#: ../build/bin/conf_gen.h:980 msgid "" -"when having raw+JPEG images together in one directory it makes no sense to import both. with this flag one can " -"ignore all JPEGs found." +"if enabled, only raw files will be allowed to import. non-raw files will not " +"be visible in the dialog and will not be imported." msgstr "" -"Wenn Raw- und JPEG-Bilder zusammen in einem Verzeichnis liegen, ist es nicht sinnvoll, beide zu importieren. \n" -"Mit dieser Option können alle gefundenen JPEG-Bilder ignoriert werden." +"Wenn diese Option aktiviert ist, können nur RAW Dateien importiert werden. " +"Nicht-RAW Dateien werden im Dialogfeld nicht angezeigt und können nicht " +"importiert werden." -#: ../build/bin/conf_gen.h:936 +#: ../build/bin/conf_gen.h:985 msgid "apply metadata" msgstr "Metadaten übernehmen" -#: ../build/bin/conf_gen.h:937 +#: ../build/bin/conf_gen.h:986 msgid "apply some metadata to all newly imported images." msgstr "Metadaten zu allen neu importierten Bildern hinzufügen." -#: ../build/bin/conf_gen.h:942 +#: ../build/bin/conf_gen.h:991 msgid "recursive directory" msgstr "inkl. Unterverzeichnisse" -#: ../build/bin/conf_gen.h:943 +#: ../build/bin/conf_gen.h:992 msgid "recursive directory traversal when importing filmrolls" msgstr "rekursiver Import von Verzeichnissen" -#: ../build/bin/conf_gen.h:948 +#: ../build/bin/conf_gen.h:997 msgid "creator to be applied when importing" msgstr "Urheber, der beim Import hinzugefügt werden soll" -#: ../build/bin/conf_gen.h:954 +#: ../build/bin/conf_gen.h:1003 msgid "publisher to be applied when importing" msgstr "Herausgeber, der beim Import hinzugefügt werden soll" -#: ../build/bin/conf_gen.h:960 +#: ../build/bin/conf_gen.h:1009 msgid "rights to be applied when importing" msgstr "Rechte, die beim Import hinzugefügt werden sollen" -#: ../build/bin/conf_gen.h:966 +#: ../build/bin/conf_gen.h:1015 msgid "comma separated tags to be applied when importing" msgstr "Komma-separierte Tags, die beim Import hinzugefügt werden sollen" -#: ../build/bin/conf_gen.h:972 +#: ../build/bin/conf_gen.h:1021 msgid "import tags from XMP" -msgstr "Tags aus XMP-Datei importieren" +msgstr "Tags aus XMP Datei importieren" -#: ../build/bin/conf_gen.h:998 +#: ../build/bin/conf_gen.h:1051 msgid "initial rating" msgstr "Bewertung beim Import" -#: ../build/bin/conf_gen.h:999 +#: ../build/bin/conf_gen.h:1052 msgid "initial star rating for all images when importing a filmroll" -msgstr "initiale Bewertung (Anzahl Sterne) aller Bilder in einer neu importierten Filmrolle" +msgstr "" +"initiale Bewertung (Anzahl Sterne) aller Bilder in einer neu importierten " +"Filmrolle" -#: ../build/bin/conf_gen.h:1004 +#: ../build/bin/conf_gen.h:1057 msgid "ignore EXIF rating" msgstr "Ignoriere Bewertung aus EXIF Daten" -#: ../build/bin/conf_gen.h:1005 -msgid "ignore EXIF rating. if not set and EXIF rating is found, it overrides 'initial rating'" +#: ../build/bin/conf_gen.h:1058 +msgid "" +"ignore EXIF rating. if not set and EXIF rating is found, it overrides " +"'initial rating'" msgstr "" -"Ignoriere Bewertung aus EXIF Daten. Falls dieses Flag nicht gesetzt ist wird die Bewertung aus den EXIF Daten " -"übernommen, sofern es dort gesetzt ist." +"Ignoriere Bewertung aus EXIF Daten. Falls dieses Flag nicht gesetzt ist wird " +"die Bewertung aus den EXIF Daten übernommen, sofern es dort gesetzt ist." -#: ../build/bin/conf_gen.h:1010 +#: ../build/bin/conf_gen.h:1063 msgid "import job" msgstr "Importauftrag" -#: ../build/bin/conf_gen.h:1011 +#: ../build/bin/conf_gen.h:1064 msgid "name of the import job" msgstr "Name des Importauftrags" -#: ../build/bin/conf_gen.h:1016 +#: ../build/bin/conf_gen.h:1069 msgid "override today's date" msgstr "Heutiges Datum überschreiben" -#: ../build/bin/conf_gen.h:1017 +#: ../build/bin/conf_gen.h:1070 msgid "" -"type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override the current date/time used when " -"expanding variables:\n" +"type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override " +"the current date/time used when expanding variables:\n" "$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS), $(MSEC).\n" "let the field empty otherwise" msgstr "" -"Datum/Uhrzeit mit Format: JJJJ:MM:TT[ hh:mm:ss[.sss]] eingeben, wenn das aktuelle Datum/Uhrzeit bei der Verwendung " -"der Variablen \n" +"Datum/Uhrzeit mit Format: JJJJ:MM:TT[ hh:mm:ss[.sss]] eingeben, wenn das " +"aktuelle Datum/Uhrzeit bei der Verwendung der Variablen \n" "$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS), $(MSEC)\n" "überschrieben werden soll:\n" "sonst das Feld leer lassen" -#: ../build/bin/conf_gen.h:1022 +#: ../build/bin/conf_gen.h:1075 msgid "keep this window open" msgstr "Dialog geöffnet lassen" -#: ../build/bin/conf_gen.h:1023 +#: ../build/bin/conf_gen.h:1076 msgid "keep this window open to run several imports" msgstr "Dialog für weitere Importe geöffnet halten" -#: ../build/bin/conf_gen.h:1180 ../build/bin/conf_gen.h:1196 ../build/bin/preferences_gen.h:4107 -#: ../build/bin/preferences_gen.h:4202 +#: ../build/bin/conf_gen.h:1233 ../build/bin/conf_gen.h:1249 +#: ../build/bin/conf_gen.h:1277 msgctxt "preferences" msgid "VGA" msgstr "VGA" -#: ../build/bin/conf_gen.h:1181 ../build/bin/conf_gen.h:1197 ../build/bin/preferences_gen.h:4112 -#: ../build/bin/preferences_gen.h:4207 ../build/bin/preferences_gen.h:4251 +#: ../build/bin/conf_gen.h:1234 ../build/bin/conf_gen.h:1250 +#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4782 msgctxt "preferences" msgid "720p" msgstr "720p" -#: ../build/bin/conf_gen.h:1182 ../build/bin/conf_gen.h:1198 ../build/bin/preferences_gen.h:4117 -#: ../build/bin/preferences_gen.h:4212 +#: ../build/bin/conf_gen.h:1235 ../build/bin/conf_gen.h:1251 +#: ../build/bin/conf_gen.h:1279 msgctxt "preferences" msgid "1080p" msgstr "1080p" -#: ../build/bin/conf_gen.h:1183 ../build/bin/conf_gen.h:1199 ../build/bin/preferences_gen.h:4122 -#: ../build/bin/preferences_gen.h:4217 +#: ../build/bin/conf_gen.h:1236 ../build/bin/conf_gen.h:1252 +#: ../build/bin/conf_gen.h:1280 msgctxt "preferences" msgid "WQXGA" msgstr "WQXGA" -#: ../build/bin/conf_gen.h:1184 ../build/bin/conf_gen.h:1200 ../build/bin/preferences_gen.h:4127 -#: ../build/bin/preferences_gen.h:4222 +#: ../build/bin/conf_gen.h:1237 ../build/bin/conf_gen.h:1253 +#: ../build/bin/conf_gen.h:1281 msgctxt "preferences" msgid "4K" msgstr "4K" -#: ../build/bin/conf_gen.h:1185 ../build/bin/conf_gen.h:1201 ../build/bin/preferences_gen.h:4132 -#: ../build/bin/preferences_gen.h:4227 +#: ../build/bin/conf_gen.h:1238 ../build/bin/conf_gen.h:1254 +#: ../build/bin/conf_gen.h:1282 msgctxt "preferences" msgid "5K" msgstr "5K" -#: ../build/bin/conf_gen.h:1228 +#: ../build/bin/conf_gen.h:1314 msgctxt "preferences" msgid "off" msgstr "aus" -#: ../build/bin/conf_gen.h:1229 +#: ../build/bin/conf_gen.h:1315 msgctxt "preferences" msgid "hardness (relative)" msgstr "Härte (relativ)" -#: ../build/bin/conf_gen.h:1230 +#: ../build/bin/conf_gen.h:1316 msgctxt "preferences" msgid "hardness (absolute)" msgstr "Härte (absolut)" -#: ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1317 msgctxt "preferences" msgid "opacity (relative)" msgstr "Deckkraft (relativ)" -#: ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1318 msgctxt "preferences" msgid "opacity (absolute)" msgstr "Deckkraft (absolut)" -#: ../build/bin/conf_gen.h:1233 +#: ../build/bin/conf_gen.h:1319 msgctxt "preferences" msgid "brush size (relative)" msgstr "Pinselgröße (relativ)" -#: ../build/bin/conf_gen.h:1241 +#: ../build/bin/conf_gen.h:1327 msgctxt "preferences" msgid "low" msgstr "gering" -#: ../build/bin/conf_gen.h:1242 +#: ../build/bin/conf_gen.h:1328 msgctxt "preferences" msgid "medium" msgstr "mittel" -#: ../build/bin/conf_gen.h:1243 +#: ../build/bin/conf_gen.h:1329 msgctxt "preferences" msgid "high" msgstr "hoch" -#: ../build/bin/conf_gen.h:1263 ../build/bin/preferences_gen.h:4836 ../build/bin/preferences_gen.h:4860 +#: ../build/bin/conf_gen.h:1349 ../build/bin/preferences_gen.h:5405 msgctxt "preferences" msgid "false color" msgstr "Falschfarben" -#: ../build/bin/conf_gen.h:1264 ../build/bin/preferences_gen.h:4841 +#: ../build/bin/conf_gen.h:1350 msgctxt "preferences" msgid "grayscale" msgstr "Graustufen" -#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4567 +#: ../build/bin/conf_gen.h:1364 msgctxt "preferences" msgid "top left" msgstr "oben links" -#: ../build/bin/conf_gen.h:1279 ../build/bin/preferences_gen.h:4572 +#: ../build/bin/conf_gen.h:1365 msgctxt "preferences" msgid "top right" msgstr "oben rechts" -#: ../build/bin/conf_gen.h:1280 ../build/bin/preferences_gen.h:4577 +#: ../build/bin/conf_gen.h:1366 msgctxt "preferences" msgid "top center" msgstr "oben mittig" -#: ../build/bin/conf_gen.h:1281 ../build/bin/preferences_gen.h:4582 ../build/bin/preferences_gen.h:4606 +#: ../build/bin/conf_gen.h:1367 ../build/bin/preferences_gen.h:5217 msgctxt "preferences" msgid "bottom" msgstr "unten" -#: ../build/bin/conf_gen.h:1282 ../build/bin/preferences_gen.h:4587 +#: ../build/bin/conf_gen.h:1368 msgctxt "preferences" msgid "hidden" msgstr "verborgen" -#: ../build/bin/conf_gen.h:1792 +#: ../build/bin/conf_gen.h:1878 msgid "show OSD" msgstr "OSD anzeigen" -#: ../build/bin/conf_gen.h:1793 +#: ../build/bin/conf_gen.h:1879 msgid "toggle the visibility of the map overlays" msgstr "Sichtbarkeit der Karten-Überlagerungen umschalten" -#: ../build/bin/conf_gen.h:1798 ../src/libs/map_settings.c:146 +#: ../build/bin/conf_gen.h:1884 ../src/libs/map_settings.c:119 msgid "filtered images" msgstr "nur aktuelle Sammlung" -#: ../build/bin/conf_gen.h:1799 +#: ../build/bin/conf_gen.h:1885 msgid "when set limit the images drawn to the current filmstrip" -msgstr "Zeige nur Bilder auf der Karte an, die Bestandteil der aktuellen Sammlung sind." +msgstr "" +"Zeige nur Bilder auf der Karte an, die Bestandteil der aktuellen Sammlung " +"sind." -#: ../build/bin/conf_gen.h:1806 +#: ../build/bin/conf_gen.h:1892 msgid "max images" msgstr "Maximale Anzahl Bilder" -#: ../build/bin/conf_gen.h:1807 +#: ../build/bin/conf_gen.h:1893 msgid "the maximum number of image thumbnails drawn on the map" msgstr "maximale Anzahl Bilder, die auf der Karte gezeigt werden" -#: ../build/bin/conf_gen.h:1814 +#: ../build/bin/conf_gen.h:1900 msgid "group size factor" msgstr "Faktor Gruppengröße" -#: ../build/bin/conf_gen.h:1815 -msgid "increase or decrease the spatial size of images groups on the map. can influence the calculation time" +#: ../build/bin/conf_gen.h:1901 +msgid "" +"increase or decrease the spatial size of images groups on the map. can " +"influence the calculation time" msgstr "" -"vergrößern oder verkleinern der räumlichen Ausdehnung der Bildgruppen auf der Karte. Kann die Berechnungszeit " -"beeinflussen" +"vergrößern oder verkleinern der räumlichen Ausdehnung der Bildgruppen auf " +"der Karte. Kann die Berechnungszeit beeinflussen" -#: ../build/bin/conf_gen.h:1822 +#: ../build/bin/conf_gen.h:1908 msgid "min images per group" msgstr "minimale Zahl Bilder je Gruppe" -#: ../build/bin/conf_gen.h:1823 -msgid "the minimum number of images to set up an images group. can influence the calculation time." -msgstr "minimale Anzahl von Bildern, um eine Bildgruppe einzurichten. Kann die Berechnungszeit beeinflussen." +#: ../build/bin/conf_gen.h:1909 +msgid "" +"the minimum number of images to set up an images group. can influence the " +"calculation time." +msgstr "" +"minimale Anzahl von Bildern, um eine Bildgruppe einzurichten. Kann die " +"Berechnungszeit beeinflussen." -#: ../build/bin/conf_gen.h:1828 +#: ../build/bin/conf_gen.h:1914 msgctxt "preferences" msgid "thumbnail" msgstr "Vorschaubild" -#: ../build/bin/conf_gen.h:1829 +#: ../build/bin/conf_gen.h:1915 msgctxt "preferences" msgid "count" msgstr "Anzahl" -#: ../build/bin/conf_gen.h:1832 ../src/libs/map_settings.c:159 +#: ../build/bin/conf_gen.h:1918 msgid "thumbnail display" msgstr "Vorschaubild Anzeige" -#: ../build/bin/conf_gen.h:1833 -msgid "three options are available: images thumbnails, only the count of images of the group or nothing" +#: ../build/bin/conf_gen.h:1919 +msgid "" +"three options are available: images thumbnails, only the count of images of " +"the group or nothing" msgstr "" -"Es stehen drei Optionen zur Verfügung: Bilder-Miniaturansichten, nur Anzahl der Bilder der Gruppe oder nichts" +"Es stehen drei Optionen zur Verfügung: Bilder-Miniaturansichten, nur Anzahl " +"der Bilder der Gruppe oder nichts" -#: ../build/bin/conf_gen.h:1844 +#: ../build/bin/conf_gen.h:1930 msgid "max polygon points" msgstr "max Polygonpunkte" -#: ../build/bin/conf_gen.h:1845 -msgid "limit the number of points imported with polygon in find location module" -msgstr "Begrenzung der Anzahl der importierten Punkte für ein Polygon im Modul „Position finden“" +#: ../build/bin/conf_gen.h:1931 +msgid "" +"limit the number of points imported with polygon in find location module" +msgstr "" +"Begrenzung der Anzahl der importierten Punkte für ein Polygon im Modul " +"„Position finden“" -#: ../build/bin/conf_gen.h:2135 ../build/bin/preferences_gen.h:4722 ../build/bin/preferences_gen.h:4756 +#: ../build/bin/conf_gen.h:2221 ../build/bin/preferences_gen.h:5329 msgctxt "preferences" msgid "original" msgstr "Originalgröße" -#: ../build/bin/conf_gen.h:2136 ../build/bin/preferences_gen.h:4727 +#: ../build/bin/conf_gen.h:2222 msgctxt "preferences" msgid "to 1/2" msgstr "auf die Hälfte" -#: ../build/bin/conf_gen.h:2137 ../build/bin/preferences_gen.h:4732 +#: ../build/bin/conf_gen.h:2223 msgctxt "preferences" msgid "to 1/3" msgstr "auf ein Drittel" -#: ../build/bin/conf_gen.h:2138 ../build/bin/preferences_gen.h:4737 +#: ../build/bin/conf_gen.h:2224 msgctxt "preferences" msgid "to 1/4" msgstr "auf ein Viertel" -#: ../build/bin/conf_gen.h:2152 ../build/bin/conf_gen.h:2162 ../build/bin/preferences_gen.h:5384 -#: ../build/bin/preferences_gen.h:5449 +#: ../build/bin/conf_gen.h:2244 ../build/bin/conf_gen.h:2254 msgctxt "preferences" msgid "bilinear" msgstr "bilinear" -#: ../build/bin/conf_gen.h:2153 ../build/bin/conf_gen.h:2163 ../build/bin/preferences_gen.h:5389 -#: ../build/bin/preferences_gen.h:5413 ../build/bin/preferences_gen.h:5454 +#: ../build/bin/conf_gen.h:2245 ../build/bin/conf_gen.h:2255 +#: ../build/bin/preferences_gen.h:5847 msgctxt "preferences" msgid "bicubic" msgstr "bikubisch" -#: ../build/bin/conf_gen.h:2154 ../build/bin/conf_gen.h:2164 ../build/bin/preferences_gen.h:5394 -#: ../build/bin/preferences_gen.h:5459 +#: ../build/bin/conf_gen.h:2246 ../build/bin/conf_gen.h:2256 msgctxt "preferences" msgid "lanczos2" msgstr "Lanczos2" -#: ../build/bin/conf_gen.h:2165 ../build/bin/preferences_gen.h:5464 ../build/bin/preferences_gen.h:5483 +#: ../build/bin/conf_gen.h:2257 ../build/bin/preferences_gen.h:5882 msgctxt "preferences" msgid "lanczos3" msgstr "Lanczos3" -#: ../build/bin/conf_gen.h:2487 ../build/bin/conf_gen.h:3217 ../build/bin/preferences_gen.h:5127 -#: ../build/bin/preferences_gen.h:6556 ../build/bin/preferences_gen.h:6592 +#: ../build/bin/conf_gen.h:2577 ../build/bin/conf_gen.h:3303 +#: ../build/bin/preferences_gen.h:7032 msgctxt "preferences" msgid "auto" msgstr "automatisch" -#: ../build/bin/conf_gen.h:2489 ../build/bin/preferences_gen.h:6566 +#: ../build/bin/conf_gen.h:2579 msgctxt "preferences" msgid "libsecret" msgstr "libsecret" -#: ../build/bin/conf_gen.h:2490 ../build/bin/preferences_gen.h:6572 +#: ../build/bin/conf_gen.h:2580 msgctxt "preferences" msgid "kwallet" msgstr "KWallet" -#: ../build/bin/conf_gen.h:2700 +#: ../build/bin/conf_gen.h:2790 msgctxt "preferences" msgid "vectorscope" msgstr "Vectorscope" -#: ../build/bin/conf_gen.h:2701 +#: ../build/bin/conf_gen.h:2791 msgctxt "preferences" msgid "waveform" msgstr "Waveform" -#: ../build/bin/conf_gen.h:2702 +#: ../build/bin/conf_gen.h:2792 msgctxt "preferences" msgid "RGB parade" msgstr "RGB Parade" -#: ../build/bin/conf_gen.h:2703 +#: ../build/bin/conf_gen.h:2793 msgctxt "preferences" msgid "histogram" msgstr "Histogramm" -#: ../build/bin/conf_gen.h:2711 ../build/bin/preferences_gen.h:7264 +#: ../build/bin/conf_gen.h:2801 msgctxt "preferences" msgid "left" msgstr "links" -#: ../build/bin/conf_gen.h:2712 ../build/bin/preferences_gen.h:7269 ../build/bin/preferences_gen.h:7288 +#: ../build/bin/conf_gen.h:2802 ../build/bin/preferences_gen.h:7619 msgctxt "preferences" msgid "right" msgstr "rechts" -#: ../build/bin/conf_gen.h:2720 ../build/bin/conf_gen.h:2757 +#: ../build/bin/conf_gen.h:2810 ../build/bin/conf_gen.h:2847 msgctxt "preferences" msgid "logarithmic" msgstr "logarithmisch" -#: ../build/bin/conf_gen.h:2721 ../build/bin/conf_gen.h:2758 +#: ../build/bin/conf_gen.h:2811 ../build/bin/conf_gen.h:2848 msgctxt "preferences" msgid "linear" msgstr "linear" -#: ../build/bin/conf_gen.h:2729 +#: ../build/bin/conf_gen.h:2819 msgctxt "preferences" msgid "horizontal" msgstr "horizontal" -#: ../build/bin/conf_gen.h:2730 +#: ../build/bin/conf_gen.h:2820 msgctxt "preferences" msgid "vertical" msgstr "vertikal" -#: ../build/bin/conf_gen.h:2738 +#: ../build/bin/conf_gen.h:2828 msgctxt "preferences" msgid "overlaid" msgstr "Überlagern" -#: ../build/bin/conf_gen.h:2739 +#: ../build/bin/conf_gen.h:2829 msgctxt "preferences" msgid "parade" msgstr "Parade" -#: ../build/bin/conf_gen.h:2747 +#: ../build/bin/conf_gen.h:2837 msgctxt "preferences" msgid "u*v*" msgstr "u*v*" -#: ../build/bin/conf_gen.h:2748 +#: ../build/bin/conf_gen.h:2838 msgctxt "preferences" msgid "AzBz" msgstr "AzBz" -#: ../build/bin/conf_gen.h:2749 +#: ../build/bin/conf_gen.h:2839 msgctxt "preferences" msgid "RYB" msgstr "RYB" -#: ../build/bin/conf_gen.h:2791 +#: ../build/bin/conf_gen.h:2881 msgctxt "preferences" msgid "monochromatic" msgstr "monochromatisch" -# abmelden wäre besser, aber der andere Knopf heißt "einloggen" und nicht anmelden. -#: ../build/bin/conf_gen.h:2792 +#: ../build/bin/conf_gen.h:2882 msgctxt "preferences" msgid "analogous" msgstr "analog" -#: ../build/bin/conf_gen.h:2793 +#: ../build/bin/conf_gen.h:2883 msgctxt "preferences" msgid "analogous complementary" msgstr "analog komplementär" -#: ../build/bin/conf_gen.h:2794 +#: ../build/bin/conf_gen.h:2884 msgctxt "preferences" msgid "complementary" msgstr "komplementär" -#: ../build/bin/conf_gen.h:2795 +#: ../build/bin/conf_gen.h:2885 msgctxt "preferences" msgid "split complementary" msgstr "teilkomplementär" -#: ../build/bin/conf_gen.h:2796 +#: ../build/bin/conf_gen.h:2886 msgctxt "preferences" msgid "dyad" msgstr "Radisch" -#: ../build/bin/conf_gen.h:2797 +#: ../build/bin/conf_gen.h:2887 msgctxt "preferences" msgid "triad" msgstr "triadisch" -#: ../build/bin/conf_gen.h:2798 +#: ../build/bin/conf_gen.h:2888 msgctxt "preferences" msgid "tetrad" msgstr "tetradisch" -#: ../build/bin/conf_gen.h:2799 +#: ../build/bin/conf_gen.h:2889 msgctxt "preferences" msgid "square" msgstr "quadratisch" -#: ../build/bin/conf_gen.h:2813 +#: ../build/bin/conf_gen.h:2903 msgctxt "preferences" msgid "normal" msgstr "normal" -#: ../build/bin/conf_gen.h:2815 +#: ../build/bin/conf_gen.h:2905 msgctxt "preferences" msgid "narrow" msgstr "eng" -#: ../build/bin/conf_gen.h:2816 +#: ../build/bin/conf_gen.h:2906 msgctxt "preferences" msgid "line" msgstr "Linie" -#: ../build/bin/conf_gen.h:2956 +#: ../build/bin/conf_gen.h:3046 msgctxt "preferences" msgid "mm" msgstr "mm" -#: ../build/bin/conf_gen.h:2957 +#: ../build/bin/conf_gen.h:3047 msgctxt "preferences" msgid "cm" msgstr "cm" -#: ../build/bin/conf_gen.h:2958 +#: ../build/bin/conf_gen.h:3048 msgctxt "preferences" msgid "inch" msgstr "inch" -#: ../build/bin/conf_gen.h:3003 ../build/bin/preferences_gen.h:7324 ../build/bin/preferences_gen.h:7353 +#: ../build/bin/conf_gen.h:3093 ../build/bin/preferences_gen.h:7654 msgctxt "preferences" msgid "all" msgstr "alle" -#: ../build/bin/conf_gen.h:3004 ../build/bin/preferences_gen.h:7329 +#: ../build/bin/conf_gen.h:3094 msgctxt "preferences" msgid "xatom" msgstr "XAtom" -#: ../build/bin/conf_gen.h:3005 ../build/bin/preferences_gen.h:7334 +#: ../build/bin/conf_gen.h:3095 msgctxt "preferences" msgid "colord" msgstr "Colord" -#: ../build/bin/conf_gen.h:3041 ../build/bin/preferences_gen.h:5562 ../build/bin/preferences_gen.h:5596 +#: ../build/bin/conf_gen.h:3133 ../build/bin/preferences_gen.h:5958 msgctxt "preferences" msgid "scene-referred (filmic)" msgstr "szenenbezogen (Filmic)" -#: ../build/bin/conf_gen.h:3042 ../build/bin/preferences_gen.h:5567 +#: ../build/bin/conf_gen.h:3134 msgctxt "preferences" msgid "scene-referred (sigmoid)" msgstr "szenenbezogen (Sigmoid)" -#: ../build/bin/conf_gen.h:3043 ../build/bin/preferences_gen.h:5572 +#: ../build/bin/conf_gen.h:3135 msgctxt "preferences" msgid "display-referred (legacy)" msgstr "anzeigebezogene (Legacy)" -#: ../build/bin/conf_gen.h:3144 +#: ../build/bin/conf_gen.h:3230 msgid "camera time zone" msgstr "Zeitzone der Kamera" -#: ../build/bin/conf_gen.h:3145 +#: ../build/bin/conf_gen.h:3231 msgid "" -"most cameras don't store the time zone in EXIF. give the correct time zone so the GPX data can be correctly matched" +"most cameras don't store the time zone in EXIF. give the correct time zone " +"so the GPX data can be correctly matched" msgstr "" -"die meisten Kameras speichern keine Zeitzone in den EXIF-Daten. Daher muss die korrekte Zeitzone angegeben werden, " -"damit die GPX-Daten richtig zugeordnet werden können" +"die meisten Kameras speichern keine Zeitzone in den EXIF-Daten. Daher muss " +"die korrekte Zeitzone angegeben werden, damit die GPX-Daten richtig " +"zugeordnet werden können" -#: ../build/bin/conf_gen.h:3156 +#: ../build/bin/conf_gen.h:3242 msgctxt "preferences" msgid "no color" msgstr "keine Farbe" -#: ../build/bin/conf_gen.h:3157 +#: ../build/bin/conf_gen.h:3243 msgctxt "preferences" msgid "illuminant color" msgstr "Farbe der Lichtquelle" -#: ../build/bin/conf_gen.h:3158 +#: ../build/bin/conf_gen.h:3244 msgctxt "preferences" msgid "effect emulation" msgstr "Emulation der Farbänderung" -#: ../build/bin/conf_gen.h:3204 +#: ../build/bin/conf_gen.h:3290 msgctxt "preferences" msgid "list" msgstr "Liste" -#: ../build/bin/conf_gen.h:3205 +#: ../build/bin/conf_gen.h:3291 msgctxt "preferences" msgid "tabs" msgstr "Tabs" -#: ../build/bin/conf_gen.h:3206 +#: ../build/bin/conf_gen.h:3292 msgctxt "preferences" msgid "columns" msgstr "Spalten" -#: ../build/bin/conf_gen.h:3215 ../build/bin/preferences_gen.h:5117 +#: ../build/bin/conf_gen.h:3301 msgctxt "preferences" msgid "active" msgstr "aktive" -#: ../build/bin/conf_gen.h:3216 ../build/bin/preferences_gen.h:5122 +#: ../build/bin/conf_gen.h:3302 msgctxt "preferences" msgid "dim" msgstr "dunkel" -#: ../build/bin/conf_gen.h:3218 ../build/bin/preferences_gen.h:5132 +#: ../build/bin/conf_gen.h:3304 msgctxt "preferences" msgid "fade" msgstr "ausblenden" -#: ../build/bin/conf_gen.h:3219 ../build/bin/preferences_gen.h:5137 +#: ../build/bin/conf_gen.h:3305 msgctxt "preferences" msgid "fit" msgstr "einpassen" # ist das eine passende Übersetzung? -#: ../build/bin/conf_gen.h:3220 ../build/bin/preferences_gen.h:5142 +#: ../build/bin/conf_gen.h:3306 msgctxt "preferences" msgid "smooth" msgstr "einpassen & ausblenden" -#: ../build/bin/conf_gen.h:3221 ../build/bin/preferences_gen.h:5147 +#: ../build/bin/conf_gen.h:3307 msgctxt "preferences" msgid "glide" msgstr "einpassen & gleitend ausblenden" -#: ../build/bin/preferences_gen.h:81 ../build/bin/preferences_gen.h:3823 ../build/bin/preferences_gen.h:3859 -#: ../build/bin/preferences_gen.h:3895 ../build/bin/preferences_gen.h:3931 ../build/bin/preferences_gen.h:3967 -#: ../build/bin/preferences_gen.h:4003 ../build/bin/preferences_gen.h:4039 ../build/bin/preferences_gen.h:4083 -#: ../build/bin/preferences_gen.h:4178 ../build/bin/preferences_gen.h:4273 ../build/bin/preferences_gen.h:4313 -#: ../build/bin/preferences_gen.h:4356 ../build/bin/preferences_gen.h:4437 ../build/bin/preferences_gen.h:4473 -#: ../build/bin/preferences_gen.h:4510 ../build/bin/preferences_gen.h:4553 ../build/bin/preferences_gen.h:4627 -#: ../build/bin/preferences_gen.h:4672 ../build/bin/preferences_gen.h:4708 ../build/bin/preferences_gen.h:4778 -#: ../build/bin/preferences_gen.h:4822 ../build/bin/preferences_gen.h:4882 ../build/bin/preferences_gen.h:4918 -#: ../build/bin/preferences_gen.h:4954 ../build/bin/preferences_gen.h:4990 ../build/bin/preferences_gen.h:5026 -#: ../build/bin/preferences_gen.h:5062 ../build/bin/preferences_gen.h:5098 ../build/bin/preferences_gen.h:5188 -#: ../build/bin/preferences_gen.h:5224 ../build/bin/preferences_gen.h:5260 ../build/bin/preferences_gen.h:5334 -#: ../build/bin/preferences_gen.h:5370 ../build/bin/preferences_gen.h:5435 ../build/bin/preferences_gen.h:5505 -#: ../build/bin/preferences_gen.h:5548 ../build/bin/preferences_gen.h:5618 ../build/bin/preferences_gen.h:5654 -#: ../build/bin/preferences_gen.h:5690 ../build/bin/preferences_gen.h:5734 ../build/bin/preferences_gen.h:5805 -#: ../build/bin/preferences_gen.h:5841 ../build/bin/preferences_gen.h:5877 ../build/bin/preferences_gen.h:5913 -#: ../build/bin/preferences_gen.h:5955 ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6140 -#: ../build/bin/preferences_gen.h:6176 ../build/bin/preferences_gen.h:6212 ../build/bin/preferences_gen.h:6248 -#: ../build/bin/preferences_gen.h:6284 ../build/bin/preferences_gen.h:6320 ../build/bin/preferences_gen.h:6356 -#: ../build/bin/preferences_gen.h:6392 ../build/bin/preferences_gen.h:6427 ../build/bin/preferences_gen.h:6462 -#: ../build/bin/preferences_gen.h:6498 ../build/bin/preferences_gen.h:6542 ../build/bin/preferences_gen.h:6614 -#: ../build/bin/preferences_gen.h:6692 ../build/bin/preferences_gen.h:6767 ../build/bin/preferences_gen.h:6820 -#: ../build/bin/preferences_gen.h:6885 ../build/bin/preferences_gen.h:6950 ../build/bin/preferences_gen.h:7024 -#: ../build/bin/preferences_gen.h:7060 ../build/bin/preferences_gen.h:7096 ../build/bin/preferences_gen.h:7132 -#: ../build/bin/preferences_gen.h:7168 ../build/bin/preferences_gen.h:7204 ../build/bin/preferences_gen.h:7250 -#: ../build/bin/preferences_gen.h:7310 ../build/bin/preferences_gen.h:7375 ../build/bin/preferences_gen.h:7429 -#: ../build/bin/preferences_gen.h:7474 ../build/bin/preferences_gen.h:7510 ../build/bin/preferences_gen.h:7546 -#: ../build/bin/preferences_gen.h:7582 ../build/bin/preferences_gen.h:7618 ../build/bin/preferences_gen.h:7678 -#: ../build/bin/preferences_gen.h:7722 ../build/bin/preferences_gen.h:7766 ../build/bin/preferences_gen.h:7848 -#: ../build/bin/preferences_gen.h:7888 ../build/bin/preferences_gen.h:7928 ../build/bin/preferences_gen.h:7964 -#: ../build/bin/preferences_gen.h:8019 ../build/bin/preferences_gen.h:8055 ../build/bin/preferences_gen.h:8115 -#: ../build/bin/preferences_gen.h:8161 ../build/bin/preferences_gen.h:8197 ../build/bin/preferences_gen.h:8243 -#: ../build/bin/preferences_gen.h:8303 ../build/bin/preferences_gen.h:8355 ../build/bin/preferences_gen.h:8401 -#: ../build/bin/preferences_gen.h:8469 ../build/bin/preferences_gen.h:8516 +#: ../build/bin/preferences_gen.h:77 ../build/bin/preferences_gen.h:4305 +#: ../build/bin/preferences_gen.h:4344 ../build/bin/preferences_gen.h:4383 +#: ../build/bin/preferences_gen.h:4417 ../build/bin/preferences_gen.h:4488 +#: ../build/bin/preferences_gen.h:4522 ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:4590 ../build/bin/preferences_gen.h:4624 +#: ../build/bin/preferences_gen.h:4658 ../build/bin/preferences_gen.h:4692 +#: ../build/bin/preferences_gen.h:4733 ../build/bin/preferences_gen.h:4768 +#: ../build/bin/preferences_gen.h:4803 ../build/bin/preferences_gen.h:4837 +#: ../build/bin/preferences_gen.h:4871 ../build/bin/preferences_gen.h:4906 +#: ../build/bin/preferences_gen.h:4940 ../build/bin/preferences_gen.h:4979 +#: ../build/bin/preferences_gen.h:5020 ../build/bin/preferences_gen.h:5093 +#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:5162 +#: ../build/bin/preferences_gen.h:5203 ../build/bin/preferences_gen.h:5237 +#: ../build/bin/preferences_gen.h:5281 ../build/bin/preferences_gen.h:5315 +#: ../build/bin/preferences_gen.h:5350 ../build/bin/preferences_gen.h:5391 +#: ../build/bin/preferences_gen.h:5426 ../build/bin/preferences_gen.h:5460 +#: ../build/bin/preferences_gen.h:5494 ../build/bin/preferences_gen.h:5528 +#: ../build/bin/preferences_gen.h:5562 ../build/bin/preferences_gen.h:5596 +#: ../build/bin/preferences_gen.h:5630 ../build/bin/preferences_gen.h:5665 +#: ../build/bin/preferences_gen.h:5699 ../build/bin/preferences_gen.h:5733 +#: ../build/bin/preferences_gen.h:5799 ../build/bin/preferences_gen.h:5833 +#: ../build/bin/preferences_gen.h:5868 ../build/bin/preferences_gen.h:5903 +#: ../build/bin/preferences_gen.h:5944 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/preferences_gen.h:6013 ../build/bin/preferences_gen.h:6047 +#: ../build/bin/preferences_gen.h:6088 ../build/bin/preferences_gen.h:6124 +#: ../build/bin/preferences_gen.h:6165 ../build/bin/preferences_gen.h:6209 +#: ../build/bin/preferences_gen.h:6254 ../build/bin/preferences_gen.h:6305 +#: ../build/bin/preferences_gen.h:6349 ../build/bin/preferences_gen.h:6393 +#: ../build/bin/preferences_gen.h:6437 ../build/bin/preferences_gen.h:6481 +#: ../build/bin/preferences_gen.h:6525 ../build/bin/preferences_gen.h:6569 +#: ../build/bin/preferences_gen.h:6635 ../build/bin/preferences_gen.h:6669 +#: ../build/bin/preferences_gen.h:6703 ../build/bin/preferences_gen.h:6737 +#: ../build/bin/preferences_gen.h:6771 ../build/bin/preferences_gen.h:6805 +#: ../build/bin/preferences_gen.h:6839 ../build/bin/preferences_gen.h:6873 +#: ../build/bin/preferences_gen.h:6906 ../build/bin/preferences_gen.h:6939 +#: ../build/bin/preferences_gen.h:6973 ../build/bin/preferences_gen.h:7014 +#: ../build/bin/preferences_gen.h:7053 ../build/bin/preferences_gen.h:7124 +#: ../build/bin/preferences_gen.h:7159 ../build/bin/preferences_gen.h:7210 +#: ../build/bin/preferences_gen.h:7245 ../build/bin/preferences_gen.h:7280 +#: ../build/bin/preferences_gen.h:7324 ../build/bin/preferences_gen.h:7390 +#: ../build/bin/preferences_gen.h:7424 ../build/bin/preferences_gen.h:7458 +#: ../build/bin/preferences_gen.h:7492 ../build/bin/preferences_gen.h:7526 +#: ../build/bin/preferences_gen.h:7560 ../build/bin/preferences_gen.h:7605 +#: ../build/bin/preferences_gen.h:7640 ../build/bin/preferences_gen.h:7675 +#: ../build/bin/preferences_gen.h:7731 ../build/bin/preferences_gen.h:7772 +#: ../build/bin/preferences_gen.h:7806 ../build/bin/preferences_gen.h:7840 +#: ../build/bin/preferences_gen.h:7874 ../build/bin/preferences_gen.h:7908 +#: ../build/bin/preferences_gen.h:7943 ../build/bin/preferences_gen.h:7984 +#: ../build/bin/preferences_gen.h:8025 ../build/bin/preferences_gen.h:8085 +#: ../build/bin/preferences_gen.h:8119 ../build/bin/preferences_gen.h:8154 +#: ../build/bin/preferences_gen.h:8199 ../build/bin/preferences_gen.h:8233 +#: ../build/bin/preferences_gen.h:8278 ../build/bin/preferences_gen.h:8313 +#: ../build/bin/preferences_gen.h:8365 ../build/bin/preferences_gen.h:8410 +#: ../build/bin/preferences_gen.h:8480 ../build/bin/preferences_gen.h:8526 msgid "this setting has been modified" msgstr "Diese Voreinstellung wurde angepasst" #. doesn't seem to work from gtkrc -#: ../build/bin/preferences_gen.h:3793 ../build/bin/preferences_gen.h:4407 ../build/bin/preferences_gen.h:5304 -#: ../build/bin/preferences_gen.h:6110 ../build/bin/preferences_gen.h:6662 ../build/bin/preferences_gen.h:6994 -#: ../build/bin/preferences_gen.h:7818 ../src/gui/accelerators.c:2724 ../src/gui/gtk.c:2580 -#: ../src/gui/preferences.c:421 ../src/gui/preferences.c:876 ../src/libs/modulegroups.c:3886 +#: ../build/bin/preferences_gen.h:4277 ../build/bin/preferences_gen.h:4460 +#: ../build/bin/preferences_gen.h:5065 ../build/bin/preferences_gen.h:5771 +#: ../build/bin/preferences_gen.h:6607 ../build/bin/preferences_gen.h:7096 +#: ../build/bin/preferences_gen.h:7362 ../src/gui/accelerators.c:2996 +#: ../src/gui/gtk.c:2641 ../src/gui/preferences.c:424 +#: ../src/gui/preferences.c:874 ../src/libs/modulegroups.c:3888 msgid "?" msgstr "?" -#: ../build/bin/preferences_gen.h:3806 ../build/bin/preferences_gen.h:4420 ../build/bin/preferences_gen.h:6123 -#: ../src/gui/preferences.c:270 -msgid "general" -msgstr "Allgemeines" +#: ../build/bin/preferences_gen.h:4287 ../src/control/jobs/control_jobs.c:2352 +#: ../src/libs/import.c:173 +msgid "import" +msgstr "Importieren" -#: ../build/bin/preferences_gen.h:3826 -msgid "hide built-in presets for utility modules" -msgstr "Voreinstellung für Leuchttisch-Module ausblenden" +# zu frei? +#: ../build/bin/preferences_gen.h:4289 +msgid "session options" +msgstr "Sitzungs-Optionen" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 ../build/bin/preferences_gen.h:3909 -#: ../build/bin/preferences_gen.h:3945 ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4017 -#: ../build/bin/preferences_gen.h:4053 ../build/bin/preferences_gen.h:4156 ../build/bin/preferences_gen.h:4251 -#: ../build/bin/preferences_gen.h:4291 ../build/bin/preferences_gen.h:4334 ../build/bin/preferences_gen.h:4377 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4487 ../build/bin/preferences_gen.h:4531 -#: ../build/bin/preferences_gen.h:4606 ../build/bin/preferences_gen.h:4686 ../build/bin/preferences_gen.h:4756 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4860 ../build/bin/preferences_gen.h:4896 -#: ../build/bin/preferences_gen.h:4932 ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5040 ../build/bin/preferences_gen.h:5076 ../build/bin/preferences_gen.h:5166 -#: ../build/bin/preferences_gen.h:5202 ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5274 -#: ../build/bin/preferences_gen.h:5348 ../build/bin/preferences_gen.h:5413 ../build/bin/preferences_gen.h:5483 -#: ../build/bin/preferences_gen.h:5525 ../build/bin/preferences_gen.h:5596 ../build/bin/preferences_gen.h:5632 -#: ../build/bin/preferences_gen.h:5668 ../build/bin/preferences_gen.h:5704 ../build/bin/preferences_gen.h:5782 -#: ../build/bin/preferences_gen.h:5819 ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:5927 ../build/bin/preferences_gen.h:5998 ../build/bin/preferences_gen.h:6074 -#: ../build/bin/preferences_gen.h:6154 ../build/bin/preferences_gen.h:6190 ../build/bin/preferences_gen.h:6226 -#: ../build/bin/preferences_gen.h:6262 ../build/bin/preferences_gen.h:6298 ../build/bin/preferences_gen.h:6334 -#: ../build/bin/preferences_gen.h:6370 ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 ../build/bin/preferences_gen.h:6592 -#: ../build/bin/preferences_gen.h:6632 ../build/bin/preferences_gen.h:6745 ../build/bin/preferences_gen.h:6863 -#: ../build/bin/preferences_gen.h:6928 ../build/bin/preferences_gen.h:6964 ../build/bin/preferences_gen.h:7038 -#: ../build/bin/preferences_gen.h:7074 ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7146 -#: ../build/bin/preferences_gen.h:7182 ../build/bin/preferences_gen.h:7288 ../build/bin/preferences_gen.h:7353 -#: ../build/bin/preferences_gen.h:7393 ../build/bin/preferences_gen.h:7443 ../build/bin/preferences_gen.h:7488 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 ../build/bin/preferences_gen.h:7596 -#: ../build/bin/preferences_gen.h:7656 ../build/bin/preferences_gen.h:7692 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:7866 ../build/bin/preferences_gen.h:7906 ../build/bin/preferences_gen.h:7942 -#: ../build/bin/preferences_gen.h:7982 ../build/bin/preferences_gen.h:8033 ../build/bin/preferences_gen.h:8093 -#: ../build/bin/preferences_gen.h:8175 ../build/bin/preferences_gen.h:8281 ../build/bin/preferences_gen.h:8317 -#: ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4308 +msgid "base directory naming pattern" +msgstr "Namensformat des Basisverzeichnisses" + +#: ../build/bin/preferences_gen.h:4323 ../build/bin/preferences_gen.h:4362 +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4435 +#: ../build/bin/preferences_gen.h:4501 ../build/bin/preferences_gen.h:4535 +#: ../build/bin/preferences_gen.h:4569 ../build/bin/preferences_gen.h:4603 +#: ../build/bin/preferences_gen.h:4637 ../build/bin/preferences_gen.h:4671 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4747 +#: ../build/bin/preferences_gen.h:4782 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:4850 ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:4958 +#: ../build/bin/preferences_gen.h:4999 ../build/bin/preferences_gen.h:5040 +#: ../build/bin/preferences_gen.h:5106 ../build/bin/preferences_gen.h:5140 +#: ../build/bin/preferences_gen.h:5182 ../build/bin/preferences_gen.h:5217 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5329 +#: ../build/bin/preferences_gen.h:5363 ../build/bin/preferences_gen.h:5405 +#: ../build/bin/preferences_gen.h:5439 ../build/bin/preferences_gen.h:5473 +#: ../build/bin/preferences_gen.h:5507 ../build/bin/preferences_gen.h:5541 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5644 ../build/bin/preferences_gen.h:5678 +#: ../build/bin/preferences_gen.h:5712 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5847 +#: ../build/bin/preferences_gen.h:5882 ../build/bin/preferences_gen.h:5922 +#: ../build/bin/preferences_gen.h:5958 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6060 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6178 ../build/bin/preferences_gen.h:6223 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6318 +#: ../build/bin/preferences_gen.h:6362 ../build/bin/preferences_gen.h:6406 +#: ../build/bin/preferences_gen.h:6450 ../build/bin/preferences_gen.h:6494 +#: ../build/bin/preferences_gen.h:6538 ../build/bin/preferences_gen.h:6582 +#: ../build/bin/preferences_gen.h:6648 ../build/bin/preferences_gen.h:6682 +#: ../build/bin/preferences_gen.h:6716 ../build/bin/preferences_gen.h:6750 +#: ../build/bin/preferences_gen.h:6784 ../build/bin/preferences_gen.h:6818 +#: ../build/bin/preferences_gen.h:6852 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7032 +#: ../build/bin/preferences_gen.h:7071 ../build/bin/preferences_gen.h:7138 +#: ../build/bin/preferences_gen.h:7224 ../build/bin/preferences_gen.h:7259 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7505 ../build/bin/preferences_gen.h:7539 +#: ../build/bin/preferences_gen.h:7619 ../build/bin/preferences_gen.h:7654 +#: ../build/bin/preferences_gen.h:7693 ../build/bin/preferences_gen.h:7744 +#: ../build/bin/preferences_gen.h:7785 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7922 ../build/bin/preferences_gen.h:7956 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8133 ../build/bin/preferences_gen.h:8212 +#: ../build/bin/preferences_gen.h:8292 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 #, c-format msgid "double click to reset to `%s'" msgstr "Doppelklick, um auf „%s” zurückzusetzen" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 ../build/bin/preferences_gen.h:3909 -#: ../build/bin/preferences_gen.h:3945 ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4053 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4686 ../build/bin/preferences_gen.h:4896 -#: ../build/bin/preferences_gen.h:5040 ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5348 -#: ../build/bin/preferences_gen.h:5632 ../build/bin/preferences_gen.h:5668 ../build/bin/preferences_gen.h:5819 -#: ../build/bin/preferences_gen.h:5891 ../build/bin/preferences_gen.h:6370 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7146 ../build/bin/preferences_gen.h:7443 ../build/bin/preferences_gen.h:7524 -#: ../build/bin/preferences_gen.h:7560 ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7692 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:8033 ../build/bin/preferences_gen.h:8175 +#: ../build/bin/preferences_gen.h:4326 ../build/bin/preferences_gen.h:4365 +msgid "part of full import path for an import session" +msgstr "Teil eines vollständigen Import-Pfades beim Importieren" + +#: ../build/bin/preferences_gen.h:4347 +msgid "sub directory naming pattern" +msgstr "Namensformat der Unterordner" + +#: ../build/bin/preferences_gen.h:4386 +msgid "keep original filename" +msgstr "ursprünglichen Dateinamen erhalten" + +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4501 +#: ../build/bin/preferences_gen.h:4535 ../build/bin/preferences_gen.h:4569 +#: ../build/bin/preferences_gen.h:4603 ../build/bin/preferences_gen.h:4637 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4850 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:5106 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5439 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5712 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6450 +#: ../build/bin/preferences_gen.h:6494 ../build/bin/preferences_gen.h:6538 +#: ../build/bin/preferences_gen.h:6582 ../build/bin/preferences_gen.h:6852 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7505 +#: ../build/bin/preferences_gen.h:7744 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7956 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8212 msgctxt "preferences" msgid "FALSE" msgstr "NEIN" -#: ../build/bin/preferences_gen.h:3840 +#: ../build/bin/preferences_gen.h:4399 +msgid "" +"keep original filename instead of a pattern while importing from camera or " +"card" +msgstr "" +"den ursprünglichen Dateinamen erhalten statt Änderung gemäß Namensformat " +"während Import von Kamera oder Karte" + +#: ../build/bin/preferences_gen.h:4420 +msgid "file naming pattern" +msgstr "Namensformat der Dateien" + +#: ../build/bin/preferences_gen.h:4438 +msgid "file naming pattern used for a import session" +msgstr "Namensformat für Dateien beim Importieren" + +#: ../build/bin/preferences_gen.h:4470 ../src/gui/gtk.c:1266 +#: ../src/gui/preferences.c:544 ../src/libs/tools/lighttable.c:66 +#: ../src/views/lighttable.c:91 +msgid "lighttable" +msgstr "Leuchttisch" + +#: ../build/bin/preferences_gen.h:4472 ../build/bin/preferences_gen.h:5077 +#: ../build/bin/preferences_gen.h:6619 ../src/gui/preferences.c:270 +msgid "general" +msgstr "Allgemeines" + +#: ../build/bin/preferences_gen.h:4491 +msgid "hide built-in presets for utility modules" +msgstr "Voreinstellung für Leuchttisch-Module ausblenden" + +#: ../build/bin/preferences_gen.h:4504 msgid "hides built-in presets of utility modules in presets menu." -msgstr "Verbirgt eingebaute Voreinstellungen im Voreinstellungsmenü und im Favoritenmenü." +msgstr "" +"Verbirgt eingebaute Voreinstellungen im Voreinstellungsmenü und im " +"Favoritenmenü." -#: ../build/bin/preferences_gen.h:3862 +#: ../build/bin/preferences_gen.h:4525 msgid "use single-click in the collections module" msgstr "Auswahl mit Einfachklick in „Sammlungen“ Liste" -#: ../build/bin/preferences_gen.h:3876 +#: ../build/bin/preferences_gen.h:4538 msgid "" -"check this option to use single-click to select items in the collections module. this will allow you to do range " -"selections for date-time and numeric values." -msgstr "" -"Aktiviere die Option, um Elemente in der Sammlungen-Liste mit einem einzigen Mausklick auszuwählen. \n" -"Dies erlaubt die Mehrfachauswahl für „Datum/Uhrzeit” und numerische Werte wie „ISO”, „Blende” etc." +"check this option to use single-click to select items in the collections " +"module. this will allow you to do range selections for date-time and numeric " +"values." +msgstr "" +"Aktiviere die Option, um Elemente in der Sammlungen-Liste mit einem einzigen " +"Mausklick auszuwählen. \n" +"Dies erlaubt die Mehrfachauswahl für „Datum/Uhrzeit” und numerische Werte " +"wie „ISO”, „Blende” etc." -#: ../build/bin/preferences_gen.h:3898 +#: ../build/bin/preferences_gen.h:4559 msgid "expand a single utility module at a time" msgstr "nur ein Leuchttisch-Modul wird eingeblendet" -#: ../build/bin/preferences_gen.h:3912 +#: ../build/bin/preferences_gen.h:4572 msgid "this option toggles the behavior of shift clicking in lighttable mode" -msgstr "Diese Option schaltet das Verhalten von Shift+Klick in der Leuchttisch-Ansicht um" +msgstr "" +"Diese Option schaltet das Verhalten von Shift+Klick in der Leuchttisch-" +"Ansicht um" -#: ../build/bin/preferences_gen.h:3934 +#: ../build/bin/preferences_gen.h:4593 msgid "scroll utility modules to the top when expanded" msgstr "Leuchttisch-Modul nach oben scrollen, wenn es ein-/ausgeblendet wird" -#: ../build/bin/preferences_gen.h:3948 ../build/bin/preferences_gen.h:5079 -msgid "when this option is enabled then darktable will try to scroll the module to the top of the visible list" +#: ../build/bin/preferences_gen.h:4606 ../build/bin/preferences_gen.h:5612 +msgid "" +"when this option is enabled then darktable will try to scroll the module to " +"the top of the visible list" msgstr "" -"Wenn diese Option aktiviert ist, wird versucht, das entsprechende Modul nach oben in den sichtbaren Bereich der " -"Liste zu scrollen" +"Wenn diese Option aktiviert ist, wird versucht, das entsprechende Modul nach " +"oben in den sichtbaren Bereich der Liste zu scrollen" -#: ../build/bin/preferences_gen.h:3970 +#: ../build/bin/preferences_gen.h:4627 msgid "rating an image one star twice will not zero out the rating" msgstr "doppelte Bewertung mit einem Stern setzt nicht null Sterne" -#: ../build/bin/preferences_gen.h:3984 -msgid "defines whether rating an image one star twice will zero out star rating" -msgstr "definiert, dass die doppelte Bewertung eines Bildes mit einem Stern diese nicht auf null setzt" +#: ../build/bin/preferences_gen.h:4640 +msgid "" +"defines whether rating an image one star twice will zero out star rating" +msgstr "" +"definiert, dass die doppelte Bewertung eines Bildes mit einem Stern diese " +"nicht auf null setzt" -#: ../build/bin/preferences_gen.h:4006 ../build/bin/preferences_gen.h:4675 +#: ../build/bin/preferences_gen.h:4661 ../build/bin/preferences_gen.h:5284 msgid "show scrollbars for central view" msgstr "zeige Scrollbalken für die mittlere Bildansicht" -#: ../build/bin/preferences_gen.h:4017 ../build/bin/preferences_gen.h:4487 ../build/bin/preferences_gen.h:4792 -#: ../build/bin/preferences_gen.h:4932 ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5076 ../build/bin/preferences_gen.h:5202 ../build/bin/preferences_gen.h:5274 -#: ../build/bin/preferences_gen.h:5704 ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5927 -#: ../build/bin/preferences_gen.h:6154 ../build/bin/preferences_gen.h:6190 ../build/bin/preferences_gen.h:6226 -#: ../build/bin/preferences_gen.h:6262 ../build/bin/preferences_gen.h:6298 ../build/bin/preferences_gen.h:6334 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 ../build/bin/preferences_gen.h:6476 -#: ../build/bin/preferences_gen.h:6512 ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7182 ../build/bin/preferences_gen.h:7488 -#: ../build/bin/preferences_gen.h:7736 ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4671 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:5140 ../build/bin/preferences_gen.h:5363 +#: ../build/bin/preferences_gen.h:5473 ../build/bin/preferences_gen.h:5507 +#: ../build/bin/preferences_gen.h:5541 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5678 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:6060 ../build/bin/preferences_gen.h:6178 +#: ../build/bin/preferences_gen.h:6318 ../build/bin/preferences_gen.h:6362 +#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6648 +#: ../build/bin/preferences_gen.h:6682 ../build/bin/preferences_gen.h:6716 +#: ../build/bin/preferences_gen.h:6750 ../build/bin/preferences_gen.h:6784 +#: ../build/bin/preferences_gen.h:6818 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7539 ../build/bin/preferences_gen.h:7785 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 msgctxt "preferences" msgid "TRUE" msgstr "JA" -#: ../build/bin/preferences_gen.h:4020 ../build/bin/preferences_gen.h:4689 +#: ../build/bin/preferences_gen.h:4674 ../build/bin/preferences_gen.h:5297 msgid "defines whether scrollbars should be displayed" msgstr "Definiert, ob Scrollbalken angezeigt werden sollen" -#: ../build/bin/preferences_gen.h:4042 +#: ../build/bin/preferences_gen.h:4695 msgid "show image time with milliseconds" msgstr "Bildzeit mit Millisekunden anzeigen" -#: ../build/bin/preferences_gen.h:4056 +#: ../build/bin/preferences_gen.h:4708 msgid "defines whether time should be displayed with milliseconds" msgstr "Definiert, ob die Zeit mit Millisekunden angezeigt werden soll" -#: ../build/bin/preferences_gen.h:4066 +#: ../build/bin/preferences_gen.h:4717 msgid "thumbnails" msgstr "Vorschaubilder" -#: ../build/bin/preferences_gen.h:4086 +#: ../build/bin/preferences_gen.h:4736 msgid "use raw file instead of embedded JPEG from size" msgstr "Vorschaubilder aus RAW statt eingebettetem JPEG ab Größe" -#: ../build/bin/preferences_gen.h:4159 +#: ../build/bin/preferences_gen.h:4750 msgid "" -"if the thumbnail size is greater than this value, it will be processed using raw file instead of the embedded " -"preview JPEG (better but slower).\n" -"if you want all thumbnails and pre-rendered images in best quality you should choose the *always* option.\n" +"if the thumbnail size is greater than this value, it will be processed using " +"raw file instead of the embedded preview JPEG (better but slower).\n" +"if you want all thumbnails and pre-rendered images in best quality you " +"should choose the *always* option.\n" "(more comments in the manual)" msgstr "" -"Wenn die Größe de Vorschaubildes größer als dieser Wert ist, dann wird es mit voller Qualität aus dem RAW " -"berechnet (besser aber langsamer).\n" -"Für die beste Qualität sollte „immer“ ausgewählt sein. (Weitere Infos siehe Benutzerdokumentation)" +"Wenn die Größe de Vorschaubildes größer als dieser Wert ist, dann wird es " +"mit voller Qualität aus dem RAW berechnet (besser aber langsamer).\n" +"Für die beste Qualität sollte „immer“ ausgewählt sein. (Weitere Infos siehe " +"Benutzerdokumentation)" -#: ../build/bin/preferences_gen.h:4181 +#: ../build/bin/preferences_gen.h:4771 msgid "high quality processing from size" msgstr "hochqualitatives Entwickeln für Vorschaubilder ab Größe" -#: ../build/bin/preferences_gen.h:4254 +#: ../build/bin/preferences_gen.h:4785 msgid "" -"if the thumbnail size is greater than this value, it will be processed using the full quality rendering path " -"(better but slower).\n" -"if you want all thumbnails and pre-rendered images in best quality you should choose the *always* option.\n" +"if the thumbnail size is greater than this value, it will be processed using " +"the full quality rendering path (better but slower).\n" +"if you want all thumbnails and pre-rendered images in best quality you " +"should choose the *always* option.\n" "(more comments in the manual)" msgstr "" -"Wenn die Größe eines Vorschaubildes größer als dieser Wert ist, dann wird es mit voller Qualität berechnet (besser " -"aber langsamer).\n" -"Für die beste Qualität sollte „immer“ ausgewählt sein. (Weitere Infos siehe Benutzerdokumentation)" +"Wenn die Größe eines Vorschaubildes größer als dieser Wert ist, dann wird es " +"mit voller Qualität berechnet (besser aber langsamer).\n" +"Für die beste Qualität sollte „immer“ ausgewählt sein. (Weitere Infos siehe " +"Benutzerdokumentation)" + +#: ../build/bin/preferences_gen.h:4806 +msgid "enable disk backend for thumbnail cache" +msgstr "Festplattencache für Thumbnails benutzen" + +#: ../build/bin/preferences_gen.h:4819 +msgid "" +"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want. light table " +"performance will be increased greatly when browsing a lot.\n" +"to generate all thumbnails of your entire collection offline, run 'darktable-" +"generate-cache'." +msgstr "" +"Wenn aktiviert, werden die Thumbnails auf die Festplatte (.cache/darktable/) " +"geschrieben. \n" +"Dies kann viel Speicherplatz belegen (mehrere Gigabytes für 20.000 Bilder); " +"zudem werden die zwischengespeicherten Thumbnails nicht wieder automatisch " +"gelöscht. Sie können jedoch bei Bedarf gefahrlos manuell gelöscht werden. \n" +"Die Performance des Lichttisches wird beim Sichten der Sammlung stark " +"erhöht. \n" +"Mit dem Kommandozeilenbefehl „darktable-generate-cache“ können die " +"Thumbnails aller Sammlungen erzeugt werden." + +#: ../build/bin/preferences_gen.h:4840 +msgid "enable disk backend for full preview cache" +msgstr "Festplattencache für Vorschaubilder benutzen" + +#: ../build/bin/preferences_gen.h:4853 +msgid "" +"if enabled, write full preview to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want.\n" +"light table performance will be increased greatly when zooming image in full " +"preview mode." +msgstr "" +"Wenn aktiviert, werden die Vorschaubilder auf die Festplatte (.cache/" +"darktable/) geschrieben. \n" +"Dies kann viel Speicherplatz belegen (mehrere Gigabytes für 20.000 Bilder); " +"zudem werden die zwischengespeicherten Vorschaubilder nicht wieder " +"automatisch gelöscht. Sie können jedoch bei Bedarf gefahrlos manuell " +"gelöscht werden. \n" +"Die Performance des Lichttisches wird stark erhöht, wenn Bilder in der " +"Voransicht betrachtet werden." + +#: ../build/bin/preferences_gen.h:4874 +msgid "generate thumbnails in background" +msgstr "Vorschaubilder im Hintergrund generieren" -#: ../build/bin/preferences_gen.h:4276 +#: ../build/bin/preferences_gen.h:4888 +msgid "" +"if 'enable disk backend for thumbnail cache' is enabled thumbnails/mipmaps " +"up to the selected size are generated while user is inactive in lighttable." +msgstr "" +"wenn ‚Festplattencache für Thumbnails benutzen‘ aktiviert ist, werden " +"Thumbnails/Mipmaps bis zur ausgewählten Größe generiert, während der " +"Benutzer im Lighttable inaktiv ist." + +#: ../build/bin/preferences_gen.h:4909 +msgid "reset cached thumbnails" +msgstr "Reset gespeicherte Vorschaubilder" + +#: ../build/bin/preferences_gen.h:4922 +msgid "" +"force thumbnails to be regenerated by resetting the database. this may be " +"needed in case some thumbnails have been manually removed or corrupted." +msgstr "" +"erzwingt die Neugenerierung von Thumbnails durch Zurücksetzen der Datenbank. " +"Dies kann erforderlich sein, wenn einige Thumbnails manuell entfernt wurden " +"oder beschädigt sind." + +#: ../build/bin/preferences_gen.h:4943 msgid "delimiters for size categories" msgstr "Grenzwerte für größenabhängige Einstellungen" -#: ../build/bin/preferences_gen.h:4294 +#: ../build/bin/preferences_gen.h:4961 msgid "" -"size categories are used to be able to set different overlays and CSS values depending of the size of the " -"thumbnail, separated by |.\n" -"for example, 120|400 means 3 categories of thumbnails: <120px, 120-400px, >400px" -msgstr "" -"Größenkategorien werden benutzt, um verschiedene Bildinfos und CSS-Einstellungen in Abhängigkeit von der Größe der " -"Vorschaubilder zu wählen. \n" -"Die Größen werden durch | getrennt. Der Default „120|400“ definiert 3 Kategorien: <120px, 120-400px und >400px" +"size categories are used to be able to set different overlays and CSS values " +"depending of the size of the thumbnail, separated by |.\n" +"for example, 120|400 means 3 categories of thumbnails: <120px, 120-400px, " +">400px" +msgstr "" +"Größenkategorien werden benutzt, um verschiedene Bildinfos und CSS-" +"Einstellungen in Abhängigkeit von der Größe der Vorschaubilder zu wählen. \n" +"Die Größen werden durch | getrennt. Der Default „120|400“ definiert 3 " +"Kategorien: <120px, 120-400px und >400px" -#: ../build/bin/preferences_gen.h:4316 +#: ../build/bin/preferences_gen.h:4982 msgid "pattern for the thumbnail extended overlay text" msgstr "Schema der erweiterten Bildinfos in Vorschaubildern" -#: ../build/bin/preferences_gen.h:4337 ../build/bin/preferences_gen.h:4380 +#: ../build/bin/preferences_gen.h:5002 ../build/bin/preferences_gen.h:5043 msgid "see manual to know all the tags you can use." msgstr "Siehe Handbuch, um mehr über die Platzhalter zu erfahren." -#: ../build/bin/preferences_gen.h:4359 +#: ../build/bin/preferences_gen.h:5023 msgid "pattern for the thumbnail tooltip (empty to disable)" msgstr "Schema der Kurzinfos beim Überfahren Vorschaubildern mit der Maus" -#: ../build/bin/preferences_gen.h:4440 +#: ../build/bin/preferences_gen.h:5075 ../src/gui/gtk.c:1267 +#: ../src/gui/preferences.c:544 ../src/views/darkroom.c:94 +msgid "darkroom" +msgstr "Dunkelkammer" + +#: ../build/bin/preferences_gen.h:5096 msgid "scroll down to increase mask parameters" msgstr "nach unten scrollen, um die Maskenparameter zu erhöhen" -#: ../build/bin/preferences_gen.h:4454 +#: ../build/bin/preferences_gen.h:5109 msgid "" -"when using the mouse scroll wheel to change mask parameters, scroll down to increase the mask size, feather size, " -"opacity, brush hardness and gradient curvature\n" +"when using the mouse scroll wheel to change mask parameters, scroll down to " +"increase the mask size, feather size, opacity, brush hardness and gradient " +"curvature\n" "by default scrolling up increases these parameters" msgstr "" -"Bei Verwendung des Mausrads zur Änderung der Maskenparameter können Maskengröße, Ausblenderadius, Deckkraft, " -"Pinselhärte und Gradientenkrümmung durch Scrollen nach unten erhöht werden.\n" +"Bei Verwendung des Mausrads zur Änderung der Maskenparameter können " +"Maskengröße, Ausblenderadius, Deckkraft, Pinselhärte und Gradientenkrümmung " +"durch Scrollen nach unten erhöht werden.\n" "Standardmäßig erhöht ein Scrollen nach oben diese Parameter." -#: ../build/bin/preferences_gen.h:4476 +#: ../build/bin/preferences_gen.h:5130 msgid "middle mouse button zooms to 200%" msgstr "mittlere Maustaste zoomt auf 200%" -#: ../build/bin/preferences_gen.h:4491 +#: ../build/bin/preferences_gen.h:5144 #, no-c-format msgid "" -"if enabled, the zoom level will cycle between 100%, 200% and fit to viewport on middle mouse clicks. if disabled, " -"it will toggle between viewport size and 100%, and the 'ctrl' key can be used to control the zoom level." -msgstr "" -"wenn aktiviert wechselt die Zoomstufe bei mittlerem Mausklick zwischen 100%, 200% und einpassen auf die " -"Bildschirmgröße anstatt zwischen „einpassen“ und „100 %“. Unabhängig davon können mit „Strg“-Scrollen Zoomstufen " -"frei gewählt werden." +"if enabled, the zoom level will cycle between 100%, 200% and fit to viewport " +"on middle mouse clicks. if disabled, it will toggle between viewport size " +"and 100%, and the 'ctrl' key can be used to control the zoom level." +msgstr "" +"wenn aktiviert wechselt die Zoomstufe bei mittlerem Mausklick zwischen 100%, " +"200% und einpassen auf die Bildschirmgröße anstatt zwischen „einpassen“ und " +"„100 %“. Unabhängig davon können mit „Strg“-Scrollen Zoomstufen frei gewählt " +"werden." -#: ../build/bin/preferences_gen.h:4513 +#: ../build/bin/preferences_gen.h:5165 msgid "pattern for the image information line" msgstr "Beschriftung der Bildinformationszeile" -#: ../build/bin/preferences_gen.h:4534 +#: ../build/bin/preferences_gen.h:5185 msgid "see manual for a list of the tags you can use." msgstr "Siehe Handbuch, um mehr über hier verwendbare Platzhalter zu erfahren." -#: ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:5206 msgid "position of the image information line" msgstr "Position der Bildinformationszeile" -#: ../build/bin/preferences_gen.h:4630 +#: ../build/bin/preferences_gen.h:5240 msgid "border around image in darkroom mode" msgstr "Rand um Bild in Dunkelkammer-Ansicht" -#: ../build/bin/preferences_gen.h:4650 ../build/bin/preferences_gen.h:6790 ../build/bin/preferences_gen.h:7228 -#: ../build/bin/preferences_gen.h:7789 ../build/bin/preferences_gen.h:8139 ../build/bin/preferences_gen.h:8221 -#: ../build/bin/preferences_gen.h:8379 ../build/bin/preferences_gen.h:8493 ../build/bin/preferences_gen.h:8540 +#: ../build/bin/preferences_gen.h:5260 ../build/bin/preferences_gen.h:7182 +#: ../build/bin/preferences_gen.h:7303 ../build/bin/preferences_gen.h:7584 +#: ../build/bin/preferences_gen.h:8048 ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8257 ../build/bin/preferences_gen.h:8389 +#: ../build/bin/preferences_gen.h:8504 ../build/bin/preferences_gen.h:8550 #, c-format msgid "double click to reset to `%d'" msgstr "Doppelklick, um auf „%d” zurückzusetzen" -#: ../build/bin/preferences_gen.h:4653 -msgid "process the image in darkroom mode with a small border. set to 0 if you don't want any border." +#: ../build/bin/preferences_gen.h:5263 +msgid "" +"process the image in darkroom mode with a small border. set to 0 if you " +"don't want any border." msgstr "" "Zeige das Bild in Dunkelkammer-Ansicht mit einem kleinen Rand. \n" "Auf 0 setzen, wenn kein Rand erwünscht ist." -#: ../build/bin/preferences_gen.h:4711 +#: ../build/bin/preferences_gen.h:5318 msgid "reduce resolution of preview image" msgstr "Auflösung des Vorschaubildes reduzieren" -#: ../build/bin/preferences_gen.h:4759 +#: ../build/bin/preferences_gen.h:5332 msgid "decrease to speed up preview rendering, may hinder accurate masking" msgstr "" -"Verringern, um die Berechnung des Vorschaubildes zu beschleunigen, dies kann zu weniger genauen Maskierungen führen" +"Verringern, um die Berechnung des Vorschaubildes zu beschleunigen, dies kann " +"zu weniger genauen Maskierungen führen" -#: ../build/bin/preferences_gen.h:4781 +#: ../build/bin/preferences_gen.h:5353 msgid "show loading screen between images" msgstr "graues Zwischenbild beim Bilderwechsel" -#: ../build/bin/preferences_gen.h:4795 +#: ../build/bin/preferences_gen.h:5366 msgid "" "show gray loading screen when navigating between images in the darkroom\n" "disable to just show a toast message" msgstr "" -"beim Navigieren zwischen Bildern wird in der Dunkelkammer ein graues Zwischenbild angezeigt bis das neue Bild " -"geladen ist\n" +"beim Navigieren zwischen Bildern wird in der Dunkelkammer ein graues " +"Zwischenbild angezeigt bis das neue Bild geladen ist\n" "Deaktivieren, um nur eine Benachrichtigung anzuzeigen" -#: ../build/bin/preferences_gen.h:4805 +#: ../build/bin/preferences_gen.h:5375 msgid "modules" msgstr "Module" -#: ../build/bin/preferences_gen.h:4825 +#: ../build/bin/preferences_gen.h:5394 msgid "display of individual color channels" msgstr "Anzeige einzelner Farbkanäle" -#: ../build/bin/preferences_gen.h:4863 -msgid "defines how color channels are displayed when activated in the parametric masks feature." +#: ../build/bin/preferences_gen.h:5408 +msgid "" +"defines how color channels are displayed when activated in the parametric " +"masks feature." msgstr "" -"Legt fest, wie einzelne Farbkanäle angezeigt werden, sobald sie im Dialog der parametrischen Maske eingeschaltet " -"wurden." +"Legt fest, wie einzelne Farbkanäle angezeigt werden, sobald sie im Dialog " +"der parametrischen Maske eingeschaltet wurden." -#: ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:5429 msgid "hide built-in presets for processing modules" msgstr "Voreinstellung für Dunkelkammer-Module ausblenden" -#: ../build/bin/preferences_gen.h:4899 -msgid "hides built-in presets of processing modules in both presets and favourites menu." -msgstr "Verbirgt eingebaute Voreinstellungen im Voreinstellungsmenü und im Favoritenmenü." +#: ../build/bin/preferences_gen.h:5442 +msgid "" +"hides built-in presets of processing modules in both presets and favourites " +"menu." +msgstr "" +"Verbirgt eingebaute Voreinstellungen im Voreinstellungsmenü und im " +"Favoritenmenü." -#: ../build/bin/preferences_gen.h:4921 ../build/bin/preferences_gen.h:4935 +#: ../build/bin/preferences_gen.h:5463 ../build/bin/preferences_gen.h:5476 msgid "show the guides widget in modules UI" msgstr "Hilfslinienfunktionalität in Moduleinstellungen anzeigen" -#: ../build/bin/preferences_gen.h:4957 +#: ../build/bin/preferences_gen.h:5497 msgid "expand a single processing module at a time" msgstr "nur ein Dunkelkammer-Modul wird eingeblendet" -#: ../build/bin/preferences_gen.h:4971 +#: ../build/bin/preferences_gen.h:5510 msgid "this option toggles the behavior of shift clicking in darkroom mode" -msgstr "Diese Option schaltet das Verhalten von Shift+Klick in der Dunkelkammer-Ansicht um" +msgstr "" +"Diese Option schaltet das Verhalten von Shift+Klick in der Dunkelkammer-" +"Ansicht um" -#: ../build/bin/preferences_gen.h:4993 +#: ../build/bin/preferences_gen.h:5531 msgid "only collapse modules in current group" msgstr "nur Module der aktuellen Gruppe ausblenden" -#: ../build/bin/preferences_gen.h:5007 +#: ../build/bin/preferences_gen.h:5544 msgid "" -"if only expanding a single module at a time, only collapse other modules in the current group - ignore modules in " -"other groups" +"if only expanding a single module at a time, only collapse other modules in " +"the current group - ignore modules in other groups" msgstr "" -"Falls „nur ein Dunkelkammer-Modul wird eingeblendet” aktiviert, werden nur Module der aktuellen Gruppe " -"ausgeblendet nicht jedoch Module in den übrigen Gruppen" +"Falls „nur ein Dunkelkammer-Modul wird eingeblendet” aktiviert, werden nur " +"Module der aktuellen Gruppe ausgeblendet nicht jedoch Module in den übrigen " +"Gruppen" -#: ../build/bin/preferences_gen.h:5029 +#: ../build/bin/preferences_gen.h:5565 msgid "expand the module when it is activated, and collapse it when disabled" msgstr "Modul einblenden, wenn aktiv; ausblenden, wenn inaktiv" -#: ../build/bin/preferences_gen.h:5043 -msgid "this option allows to expand or collapse automatically the module when it is enabled or disabled." -msgstr "Diese Option erlaubt, Module automatisch ein- bzw. auszublenden wenn aktiviert bzw. deaktiviert." +#: ../build/bin/preferences_gen.h:5578 +msgid "" +"this option allows to expand or collapse automatically the module when it is " +"enabled or disabled." +msgstr "" +"Diese Option erlaubt, Module automatisch ein- bzw. auszublenden wenn " +"aktiviert bzw. deaktiviert." -#: ../build/bin/preferences_gen.h:5065 +#: ../build/bin/preferences_gen.h:5599 msgid "scroll processing modules to the top when expanded" msgstr "Dunkelkammer-Modul nach oben scrollen, wenn es ein-/ausgeblendet wird" -#: ../build/bin/preferences_gen.h:5101 +#: ../build/bin/preferences_gen.h:5633 msgid "show right-side buttons in processing module headers" msgstr "Anzeige der rechten Schaltflächen in der Modul-Zeile" -#: ../build/bin/preferences_gen.h:5169 +#: ../build/bin/preferences_gen.h:5647 msgid "" -"when the mouse is not over a module, the multi-instance, reset and preset buttons can be hidden:\n" +"when the mouse is not over a module, the multi-instance, reset and preset " +"buttons can be hidden:\n" " - 'always': always show all buttons,\n" " - 'active': only show the buttons when the mouse is over the module,\n" " - 'dim': buttons are dimmed when mouse is away,\n" @@ -1184,839 +1408,1006 @@ " - 'smooth': fade out all buttons in one header simultaneously,\n" " - 'glide': gradually hide individual buttons as needed" msgstr "" -"Die Multiinstanz-, Reset- und Voreinstellungsschaltflächen können verborgen werden, wenn sich der Mauszeiger nicht " -"über einem Modul befinden\n" +"Die Multiinstanz-, Reset- und Voreinstellungsschaltflächen können verborgen " +"werden, wenn sich der Mauszeiger nicht über einem Modul befinden\n" " - „immer”: Alle Schaltflächen immer anzeigen\n" " - „aktive”: Zeige Schaltflächen nur, wenn Mauszeiger über Modul\n" " - „dunkel”: Schaltflächen werden abgedunkelt, wenn Maus nicht über Modul\n" " - „automatisch”: Verberge Schaltflächen, wenn Feld zu schmal\n" " - „ausblenden”: Blende Schaltflächen aus, wenn Feld zu schmal\n" -" - „einpassen”: Verberge Schaltflächen, wenn Feld zu schmal für Modulname und Schaltflächen\n" -" - „einpassen & ausblenden”: Blende Schaltflächen aus, wenn Feld zu schmal für Modulname und Schaltflächen\n" -" - „einpassen & gleitend ausblenden”: Blende Schaltflächen schrittweise aus, wenn Feld zu schmal für Modulname und " -"Schaltflächen" +" - „einpassen”: Verberge Schaltflächen, wenn Feld zu schmal für Modulname " +"und Schaltflächen\n" +" - „einpassen & ausblenden”: Blende Schaltflächen aus, wenn Feld zu schmal " +"für Modulname und Schaltflächen\n" +" - „einpassen & gleitend ausblenden”: Blende Schaltflächen schrittweise aus, " +"wenn Feld zu schmal für Modulname und Schaltflächen" -#: ../build/bin/preferences_gen.h:5191 +#: ../build/bin/preferences_gen.h:5668 msgid "show mask indicator in module headers" msgstr "Anzeige Indikator für Maske in der Modul-Zeile" -#: ../build/bin/preferences_gen.h:5205 -msgid "if enabled, an icon will be shown in the header of any processing modules that have a mask applied" -msgstr "wenn ausgewählt wird in der Modul Zeile ein Icon eingeblendet, wenn dort eine Maske definiert ist" +#: ../build/bin/preferences_gen.h:5681 +msgid "" +"if enabled, an icon will be shown in the header of any processing modules " +"that have a mask applied" +msgstr "" +"wenn ausgewählt wird in der Modul Zeile ein Icon eingeblendet, wenn dort " +"eine Maske definiert ist" -#: ../build/bin/preferences_gen.h:5227 +#: ../build/bin/preferences_gen.h:5702 msgid "prompt for name on addition of new instance" msgstr "Instanzbenennung beim Hinzufügen einer neuen Instanz abfragen" -#: ../build/bin/preferences_gen.h:5241 -msgid "if enabled, a rename prompt will be present for each new module instance (either new instance or duplicate)" +#: ../build/bin/preferences_gen.h:5715 +msgid "" +"if enabled, a rename prompt will be present for each new module instance " +"(either new instance or duplicate)" msgstr "" -"wenn aktiviert, wird bei jeder neuen Modulinstanz (entweder neue Instanz oder Duplikat) das Eingabefeld der " -"Benennung aktiviert" +"wenn aktiviert, wird bei jeder neuen Modulinstanz (entweder neue Instanz " +"oder Duplikat) das Eingabefeld der Benennung aktiviert" -#: ../build/bin/preferences_gen.h:5263 +#: ../build/bin/preferences_gen.h:5736 msgid "automatically update module name" msgstr "Ergänze Modulname um Voreinstellungs- oder Instanznamen" -#: ../build/bin/preferences_gen.h:5277 +#: ../build/bin/preferences_gen.h:5749 msgid "" -"if enabled, the module name will be automatically updated to match a preset name or a preset instance name if " -"present." -msgstr "wenn aktiviert, wird der Modulname mit einem ggf. vorhandenen Voreinstellungs- oder Instanznamen ergänzt" +"if enabled, the module name will be automatically updated to match a preset " +"name or a preset instance name if present." +msgstr "" +"wenn aktiviert, wird der Modulname mit einem ggf. vorhandenen " +"Voreinstellungs- oder Instanznamen ergänzt" + +#: ../build/bin/preferences_gen.h:5781 +msgid "processing" +msgstr "Bearbeitung" -#: ../build/bin/preferences_gen.h:5317 +#: ../build/bin/preferences_gen.h:5783 msgid "image processing" msgstr "Bildbearbeitung" -#: ../build/bin/preferences_gen.h:5337 +#: ../build/bin/preferences_gen.h:5802 msgid "always use LittleCMS 2 to apply output color profile" msgstr "benutze immer LittleCMS 2, um das Ausgabefarbprofil anzuwenden" -#: ../build/bin/preferences_gen.h:5351 +#: ../build/bin/preferences_gen.h:5815 msgid "this is slower than the default." msgstr "Dies ist langsamer als die Standardeinstellung." -#: ../build/bin/preferences_gen.h:5373 +#: ../build/bin/preferences_gen.h:5836 msgid "pixel interpolator (warp)" msgstr "Pixel-Interpolation (Verformung)" -#: ../build/bin/preferences_gen.h:5416 +#: ../build/bin/preferences_gen.h:5850 msgid "" -"pixel interpolator used in modules for rotation, lens correction, liquify, cropping and final scaling (bilinear, " -"bicubic, lanczos2)." +"pixel interpolator used in modules for rotation, lens correction, liquify, " +"cropping and final scaling (bilinear, bicubic, lanczos2)." msgstr "" -"Pixel-Interpolation, die in Modulen für Rotation, Objektivkorrektur, Verflüssigen, Zuschneiden und Skalieren " -"benutzt wird (bilinear, bikubisch, Lanczos2)." +"Pixel-Interpolation, die in Modulen für Rotation, Objektivkorrektur, " +"Verflüssigen, Zuschneiden und Skalieren benutzt wird (bilinear, bikubisch, " +"Lanczos2)." -#: ../build/bin/preferences_gen.h:5438 +#: ../build/bin/preferences_gen.h:5871 msgid "pixel interpolator (scaling)" msgstr "Pixel-Interpolation (Skalierung)" -#: ../build/bin/preferences_gen.h:5486 -msgid "pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." -msgstr "Pixel-Interpolation, die bei Skalierung benutzt wird (bilinear, bikubisch, Lanczos2, Lanczos3)." +#: ../build/bin/preferences_gen.h:5885 +msgid "" +"pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." +msgstr "" +"Pixel-Interpolation, die bei Skalierung benutzt wird (bilinear, bikubisch, " +"Lanczos2, Lanczos3)." -#: ../build/bin/preferences_gen.h:5508 +#: ../build/bin/preferences_gen.h:5906 msgid "LUT 3D root folder" msgstr "3D-LUT-Verzeichnis" -#: ../build/bin/preferences_gen.h:5513 ../src/control/jobs/control_jobs.c:1688 -#: ../src/control/jobs/control_jobs.c:1742 ../src/gui/preferences.c:1081 ../src/gui/presets.c:419 -#: ../src/imageio/storage/disk.c:122 ../src/imageio/storage/disk.c:178 ../src/imageio/storage/gallery.c:109 -#: ../src/imageio/storage/gallery.c:163 ../src/imageio/storage/latex.c:108 ../src/imageio/storage/latex.c:162 -#: ../src/libs/import.c:1506 ../src/libs/import.c:1610 ../src/libs/import.c:1664 ../src/libs/styles.c:391 +#: ../build/bin/preferences_gen.h:5912 ../src/control/jobs/control_jobs.c:1691 +#: ../src/control/jobs/control_jobs.c:1745 ../src/gui/preferences.c:1080 +#: ../src/gui/presets.c:421 ../src/imageio/storage/disk.c:197 +#: ../src/imageio/storage/disk.c:261 ../src/imageio/storage/gallery.c:149 +#: ../src/imageio/storage/gallery.c:213 ../src/imageio/storage/latex.c:145 +#: ../src/imageio/storage/latex.c:199 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1673 ../src/libs/styles.c:391 #: ../src/lua/preferences.c:668 msgid "select directory" msgstr "Verzeichnis wählen" -#: ../build/bin/preferences_gen.h:5529 -msgid "this folder (and sub-folders) contains LUT files used by LUT 3D module. (need a restart)." +#: ../build/bin/preferences_gen.h:5926 +msgid "" +"this folder (and sub-folders) contains LUT files used by LUT 3D module. " +"(need a restart)." msgstr "" -"Dieses Verzeichnis (einschließlich der Unterverzeichnisse) enthält die LUT-Dateien, die vom 3D LUT-Modul verwendet " -"werden. Bei Änderung Neustart erforderlich." +"Dieses Verzeichnis (einschließlich der Unterverzeichnisse) enthält die LUT-" +"Dateien, die vom 3D LUT-Modul verwendet werden. Bei Änderung Neustart " +"erforderlich." -#: ../build/bin/preferences_gen.h:5551 +#: ../build/bin/preferences_gen.h:5947 msgid "auto-apply pixel workflow defaults" msgstr "Arbeitsablauf-spezifische Einstellungen automatisch anwenden" -#: ../build/bin/preferences_gen.h:5599 +#: ../build/bin/preferences_gen.h:5961 msgid "" -"scene-referred workflow is based on linear modules and will auto-apply filmic or sigmoid, color calibration and " -"exposure,\n" -"display-referred workflow is based on Lab modules and will auto-apply base curve, white balance and the legacy " -"module pipe order." -msgstr "" -"Eine szenenbezogene Bearbeitung basiert auf Modulen, die in einem linearen Farbraum arbeiten. \n" -"Hierfür werden die Module „Filmic” oder „Sigmoid“ sowie „Farbkalibrierung“ und „Belichtung” automatisch " -"angewandt. \n" -"Eine anzeigebezogene Bearbeitung basiert auf Modulen, die im Lab Farbraum arbeiten. \n" -"Hierfür werden die Module „Basiskurve” und „Weißabgleich“ automatisch angewandt und die Legacy Modulreihenfolge " -"eingestellt." +"scene-referred workflow is based on linear modules and will auto-apply " +"filmic or sigmoid, color calibration and exposure,\n" +"display-referred workflow is based on Lab modules and will auto-apply base " +"curve, white balance and the legacy module pipe order." +msgstr "" +"Eine szenenbezogene Bearbeitung basiert auf Modulen, die in einem linearen " +"Farbraum arbeiten. \n" +"Hierfür werden die Module „Filmic” oder „Sigmoid“ sowie „Farbkalibrierung“ " +"und „Belichtung” automatisch angewandt. \n" +"Eine anzeigebezogene Bearbeitung basiert auf Modulen, die im Lab Farbraum " +"arbeiten. \n" +"Hierfür werden die Module „Basiskurve” und „Weißabgleich“ automatisch " +"angewandt und die Legacy Modulreihenfolge eingestellt." -#: ../build/bin/preferences_gen.h:5621 +#: ../build/bin/preferences_gen.h:5982 msgid "auto-apply per camera basecurve presets" msgstr "kameraspezifische Basiskurven automatisch anwenden" -#: ../build/bin/preferences_gen.h:5635 +#: ../build/bin/preferences_gen.h:5995 msgid "" -"use the per-camera basecurve by default instead of the generic manufacturer one if there is one available (needs a " -"restart).\n" -"this option is taken into account when the \"auto-apply pixel workflow defaults\" is set to \"display-referred\".\n" -"to prevent auto-apply basecurve presets \"auto-apply pixel workflow defaults\" should be set to \"none\"" +"use the per-camera basecurve by default instead of the generic manufacturer " +"one if there is one available (needs a restart).\n" +"this option is taken into account when the \"auto-apply pixel workflow " +"defaults\" is set to \"display-referred\".\n" +"to prevent auto-apply basecurve presets \"auto-apply pixel workflow " +"defaults\" should be set to \"none\"" msgstr "" -"Falls vorhanden standardmäßig die kamera-spezifische Basiskurve statt der generischen Basiskurve des " -"Kameraherstellers verwenden. \n" +"Falls vorhanden standardmäßig die kamera-spezifische Basiskurve statt der " +"generischen Basiskurve des Kameraherstellers verwenden. \n" "Bei Änderung Neustart erforderlich. \n" -"Diese Option wird nur berücksichtigt, wenn unter „Arbeitsablauf-spezifische Einstellungen automatisch anwenden” " -"die Option „anzeigebezogene Bearbeitung” gewählt wurde. \n" -"Um die automatische Anwendung einer Basiskurve gänzlich zu unterbinden, ist „keines” unter „Arbeitsablauf-" -"spezifische Einstellungen automatisch anwenden” auszuwählen." +"Diese Option wird nur berücksichtigt, wenn unter „Arbeitsablauf-spezifische " +"Einstellungen automatisch anwenden” die Option „anzeigebezogene Bearbeitung” " +"gewählt wurde. \n" +"Um die automatische Anwendung einer Basiskurve gänzlich zu unterbinden, ist " +"„keines” unter „Arbeitsablauf-spezifische Einstellungen automatisch " +"anwenden” auszuwählen." -#: ../build/bin/preferences_gen.h:5657 +#: ../build/bin/preferences_gen.h:6016 msgid "detect monochrome previews" msgstr "monochrome Vorschaubilder erkennen" -#: ../build/bin/preferences_gen.h:5671 +#: ../build/bin/preferences_gen.h:6029 msgid "" -"many monochrome images can be identified via EXIF and preview data. beware: this slows down imports and reading of " -"EXIF data" +"many monochrome images can be identified via EXIF and preview data. beware: " +"this slows down imports and reading of EXIF data" msgstr "" -"Zahlreiche monochrome Aufnahmen können via EXIF-Metadaten oder eingebettete Vorschaubilder erkannt werden\n" +"Zahlreiche monochrome Aufnahmen können via EXIF-Metadaten oder eingebettete " +"Vorschaubilder erkannt werden\n" "Vorsicht: Dies verlangsamt den Import sowie das Lesen der EXIF-Metadaten" -#: ../build/bin/preferences_gen.h:5693 +#: ../build/bin/preferences_gen.h:6050 msgid "show warning messages" msgstr "Warnungen anzeigen" -#: ../build/bin/preferences_gen.h:5707 +#: ../build/bin/preferences_gen.h:6063 msgid "" -"display messages in modules to warn beginner users when non-standard and possibly harmful settings are used in the " -"pipeline.\n" -"these messages can be false-positive and should be disregarded if you know what you are doing. this option will " -"hide them all the time." -msgstr "" -"Warnmeldungen in den Modulen anzeigen, wenn nicht standardmäßige und möglicherweise nachteilige Einstellungen in " -"der Pipeline verwendet werden.\n" -"Diese Meldungen können falsch-positiv sein und sollten ignoriert werden, wenn Du weisst, was Du tust. Mit dieser " -"Option werden sie immer ausgeblendet." - -#: ../build/bin/preferences_gen.h:5717 -msgid "CPU / GPU / memory" -msgstr "CPU / GPU / Speicher" +"display messages in modules to warn beginner users when non-standard and " +"possibly harmful settings are used in the pipeline.\n" +"these messages can be false-positive and should be disregarded if you know " +"what you are doing. this option will hide them all the time." +msgstr "" +"Warnmeldungen in den Modulen anzeigen, wenn nicht standardmäßige und " +"möglicherweise nachteilige Einstellungen in der Pipeline verwendet werden.\n" +"Diese Meldungen können falsch-positiv sein und sollten ignoriert werden, " +"wenn Du weisst, was Du tust. Mit dieser Option werden sie immer ausgeblendet." + +#: ../build/bin/preferences_gen.h:6072 +msgid "CPU / memory" +msgstr "CPU / Speicher" -#: ../build/bin/preferences_gen.h:5737 +#: ../build/bin/preferences_gen.h:6091 msgid "darktable resources" msgstr "darktable Ressourcenzuweisung" -#: ../build/bin/preferences_gen.h:5786 +#: ../build/bin/preferences_gen.h:6106 #, no-c-format msgid "" "defines how much darktable may take from your system resources:\n" -" - 'default': darktable takes ~50% of your systems resources and gives darktable enough to be still performant.\n" -" - 'small': should be used if you are simultaneously running applications taking large parts of your systems " -"memory or OpenCL/GL applications like games or Hugin.\n" -" - 'large': is the best option if you are mainly using darktable and want it to take most of your systems " -"resources for performance.\n" -" - 'unrestricted': should only be used for developing extremely large images as darktable will take all of your " -"systems resources\n" +" - 'default': darktable takes ~50% of your systems resources and gives " +"darktable enough to be still performant.\n" +" - 'small': should be used if you are simultaneously running applications " +"taking large parts of your systems memory or OpenCL/GL applications like " +"games or Hugin.\n" +" - 'large': is the best option if you are mainly using darktable and want it " +"to take most of your systems resources for performance.\n" +" - 'unrestricted': should only be used for developing extremely large images " +"as darktable will take all of your systems resources\n" " and thus might lead to swapping and unexpected performance drops.\n" " use with caution and not recommended for general use!" msgstr "" "legt fest, wie viel Systemressourcen darktable beanspruchen darf. \n" -" - „Standard“: beansprucht ~50% der Systemressourcen und gibt darktable so genug, um noch performant zu sein.\n" -" - „klein“: sollte verwendet werden, wenn gleichzeitig Anwendungen mit hohen Anforderungen an den Systemspeicher " -"verwendet werden, oder bei OpenCL/GL-Anwendungen wie Spielen oder hugin.\n" -" - „groß“: ideal, wenn hauptsächlich darktable verwendet wird und den größten Teil der Systemressourcen für die " -"beste Performance nutzen soll.\n" -" - „unbegrenzt“: sollte nur für die Bearbeitung extrem großer Bilder verwendet werden, da darktable alle " -"Systemressourcen beansprucht und es daher zu Swapping und unerwarteten Leistungseinbußen kommen kann. \n" +" - „Standard“: beansprucht ~50% der Systemressourcen und gibt darktable so " +"genug, um noch performant zu sein.\n" +" - „klein“: sollte verwendet werden, wenn gleichzeitig Anwendungen mit hohen " +"Anforderungen an den Systemspeicher verwendet werden, oder bei OpenCL/GL-" +"Anwendungen wie Spielen oder hugin.\n" +" - „groß“: ideal, wenn hauptsächlich darktable verwendet wird und den " +"größten Teil der Systemressourcen für die beste Performance nutzen soll.\n" +" - „unbegrenzt“: sollte nur für die Bearbeitung extrem großer Bilder " +"verwendet werden, da darktable alle Systemressourcen beansprucht und es " +"daher zu Swapping und unerwarteten Leistungseinbußen kommen kann. \n" "Mit Vorsicht zu verwenden und nicht für den allgemeinen Gebrauch empfohlen!" -#: ../build/bin/preferences_gen.h:5808 +#: ../build/bin/preferences_gen.h:6127 msgid "prefer performance over quality" msgstr "Geschwindigkeit gegenüber Qualität bevorzugen" -#: ../build/bin/preferences_gen.h:5822 -msgid "if switched on, thumbnails and previews are rendered at lower quality but 4 times faster" -msgstr "" -"Wenn aktiv werden Miniaturansichten und Vorschaubilder mit reduzierter Qualität aber vierfacher Geschwindigkeit " -"berechnet." - -#: ../build/bin/preferences_gen.h:5844 -msgid "enable disk backend for thumbnail cache" -msgstr "Festplattencache für Thumbnails benutzen" - -#: ../build/bin/preferences_gen.h:5858 +#: ../build/bin/preferences_gen.h:6140 msgid "" -"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) and will never delete cached thumbnails " -"again.\n" -"it's safe though to delete these manually, if you want. light table performance will be increased greatly when " -"browsing a lot.\n" -"to generate all thumbnails of your entire collection offline, run 'darktable-generate-cache'." -msgstr "" -"Wenn aktiviert, werden die Thumbnails auf die Festplatte (.cache/darktable/) geschrieben. \n" -"Dies kann viel Speicherplatz belegen (mehrere Gigabytes für 20.000 Bilder); zudem werden die zwischengespeicherten " -"Thumbnails nicht wieder automatisch gelöscht. Sie können jedoch bei Bedarf gefahrlos manuell gelöscht werden. \n" -"Die Performance des Lichttisches wird beim Sichten der Sammlung stark erhöht. \n" -"Mit dem Kommandozeilenbefehl „darktable-generate-cache“ können die Thumbnails aller Sammlungen erzeugt werden." - -#: ../build/bin/preferences_gen.h:5880 -msgid "enable disk backend for full preview cache" -msgstr "Festplattencache für Vorschaubilder benutzen" - -#: ../build/bin/preferences_gen.h:5894 -msgid "" -"if enabled, write full preview to disk (.cache/darktable/) when evicted from the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) and will never delete cached thumbnails " -"again.\n" -"it's safe though to delete these manually, if you want.\n" -"light table performance will be increased greatly when zooming image in full preview mode." +"if switched on, thumbnails and previews are rendered at lower quality but 4 " +"times faster" msgstr "" -"Wenn aktiviert, werden die Vorschaubilder auf die Festplatte (.cache/darktable/) geschrieben. \n" -"Dies kann viel Speicherplatz belegen (mehrere Gigabytes für 20.000 Bilder); zudem werden die zwischengespeicherten " -"Vorschaubilder nicht wieder automatisch gelöscht. Sie können jedoch bei Bedarf gefahrlos manuell gelöscht " -"werden. \n" -"Die Performance des Lichttisches wird stark erhöht, wenn Bilder in der Voransicht betrachtet werden." +"Wenn aktiv werden Miniaturansichten und Vorschaubilder mit reduzierter " +"Qualität aber vierfacher Geschwindigkeit berechnet." -#: ../build/bin/preferences_gen.h:5916 +#: ../build/bin/preferences_gen.h:6149 +msgid "OpenCL" +msgstr "OpenCL" + +#: ../build/bin/preferences_gen.h:6168 msgid "activate OpenCL support" msgstr "OpenCL-Unterstützung aktivieren" -#: ../build/bin/preferences_gen.h:5930 +#: ../build/bin/preferences_gen.h:6181 msgid "" "if found, use OpenCL runtime on your system to speed up processing.\n" "can be switched on and off at any time." msgstr "" -"falls vorhanden, benutze OpenCL-Laufzeitumgebung für schnellere Verarbeitung. \n" +"falls vorhanden, benutze OpenCL-Laufzeitumgebung für schnellere " +"Verarbeitung. \n" "Kann jederzeit an- und ausgeschaltet werden." -#: ../build/bin/preferences_gen.h:5931 ../build/bin/preferences_gen.h:6002 ../build/bin/preferences_gen.h:6078 -#: ../build/bin/preferences_gen.h:7397 +#: ../build/bin/preferences_gen.h:6185 ../build/bin/preferences_gen.h:6230 +#: ../build/bin/preferences_gen.h:6274 ../build/bin/preferences_gen.h:6325 +#: ../build/bin/preferences_gen.h:6369 ../build/bin/preferences_gen.h:6413 +#: ../build/bin/preferences_gen.h:6457 ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6545 ../build/bin/preferences_gen.h:7700 msgid "not available" msgstr "nicht verfügbar" -#: ../build/bin/preferences_gen.h:5934 ../build/bin/preferences_gen.h:5938 ../build/bin/preferences_gen.h:6005 -#: ../build/bin/preferences_gen.h:6009 ../build/bin/preferences_gen.h:6081 ../build/bin/preferences_gen.h:6085 -#: ../build/bin/preferences_gen.h:7400 ../build/bin/preferences_gen.h:7404 +#: ../build/bin/preferences_gen.h:6187 ../build/bin/preferences_gen.h:6188 +#: ../build/bin/preferences_gen.h:6232 ../build/bin/preferences_gen.h:6233 +#: ../build/bin/preferences_gen.h:6276 ../build/bin/preferences_gen.h:6277 +#: ../build/bin/preferences_gen.h:6327 ../build/bin/preferences_gen.h:6328 +#: ../build/bin/preferences_gen.h:6371 ../build/bin/preferences_gen.h:6372 +#: ../build/bin/preferences_gen.h:6415 ../build/bin/preferences_gen.h:6416 +#: ../build/bin/preferences_gen.h:6459 ../build/bin/preferences_gen.h:6460 +#: ../build/bin/preferences_gen.h:6503 ../build/bin/preferences_gen.h:6504 +#: ../build/bin/preferences_gen.h:6547 ../build/bin/preferences_gen.h:6548 +#: ../build/bin/preferences_gen.h:7702 ../build/bin/preferences_gen.h:7703 msgid "not available on this system" msgstr "auf diesem System nicht verfügbar" -#: ../build/bin/preferences_gen.h:5958 +#: ../build/bin/preferences_gen.h:6212 msgid "OpenCL scheduling profile" msgstr "OpenCL-Scheduler-Profil" -#: ../build/bin/preferences_gen.h:6001 +#: ../build/bin/preferences_gen.h:6226 msgid "" -"defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled systems:\n" -" - 'default': GPU processes full and CPU processes preview pipe (adaptable by config parameters),\n" -" - 'multiple GPUs': process both pixelpipes in parallel on two different GPUs,\n" +"defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled " +"systems:\n" +" - 'default': GPU processes full and CPU processes preview pipe (adaptable " +"by config parameters),\n" +" - 'multiple GPUs': process both pixelpipes in parallel on two different " +"GPUs,\n" " - 'very fast GPU': process both pixelpipes sequentially on the GPU." msgstr "" -"Legt fest, wie das Vorschaubild und die Pixelpipes auf Systemen mit aktiviertem OpenCL berechnet werden.\n" -" - „Standard“: GPU berechnet die volle Pixelpipes und die CPU das Vorschau (kann über die Konfigurationsdatei " -"„darktablerc” weiter angepasst werden)\n" +"Legt fest, wie das Vorschaubild und die Pixelpipes auf Systemen mit " +"aktiviertem OpenCL berechnet werden.\n" +" - „Standard“: GPU berechnet die vollen Pixelpipes und die CPU die Vorschau " +"(kann über die Konfigurationsdatei „darktablerc” weiter angepasst werden)\n" " - „mehrere GPUs“: beide Pixelpipes werden parallel auf zwei GPUs berechnet\n" -" - „sehr schnelle GPU“: beide Pixelpipes werden nacheinander auf der selben GPU berechnet." +" - „sehr schnelle GPU“: beide Pixelpipes werden nacheinander auf derselben " +"GPU berechnet." -#: ../build/bin/preferences_gen.h:6029 -msgid "tune OpenCL performance" -msgstr "OpenCL Performance optimieren" +#: ../build/bin/preferences_gen.h:6257 +msgid "use all device memory" +msgstr "Gesamten Speicher nutzen" -#: ../build/bin/preferences_gen.h:6077 +#: ../build/bin/preferences_gen.h:6270 msgid "" -"allows runtime tuning of OpenCL devices:\n" -" - 'memory size': uses a fixed headroom (400MB as default),\n" -" - 'memory transfer': tries a faster memory access mode (pinned memory) used for tiling." +"if enabled darktable will use all device memory except a safety margin " +"(headroom, default is 600MB)" msgstr "" -"ermöglicht die Abstimmung von OpenCL-Devices zur Laufzeit. \n" -" - „Speichergröße“ verwendet fix 400MB Headroom, \n" -" - „Speichertransfer“ versucht einen schnelleren Speicherzugriffsmodus (Pinned Memory), der für das Tiling " -"verwendet wird." +"wenn aktiviert, verwendet Darktable den gesamten Gerätespeicher bis auf eine " +"Sicherheitsreserve (Headroom, Standard ist 600Mb)" + +#: ../build/bin/preferences_gen.h:6289 +msgid "OpenCL drivers" +msgstr "OpenCL Treiber" + +#: ../build/bin/preferences_gen.h:6308 +msgid "Intel GPU" +msgstr "Intel GPU" + +#: ../build/bin/preferences_gen.h:6321 +msgid "Intel(R) OpenCL Graphics for all supported platforms (vendor provided)" +msgstr "" +"Intel(R) OpenCL Graphics für alle unterstützen Plattformen (herstellerseitig " +"bereitgestellt)" + +#: ../build/bin/preferences_gen.h:6352 +msgid "Nvidia CUDA" +msgstr "Nvidia CUDA" -#: ../build/bin/preferences_gen.h:6143 +#: ../build/bin/preferences_gen.h:6365 +msgid "Nvidia CUDA based OpenCL (vendor provided)" +msgstr "Nvidia CUDA-basiertes OpenCL (herstellerseitig bereitgestellt)" + +#: ../build/bin/preferences_gen.h:6396 +msgid "AMD ROCm" +msgstr "AMD ROCm" + +#: ../build/bin/preferences_gen.h:6409 +msgid "AMD Accelerated Parallel Processing (vendor provided)" +msgstr "AMD Accelerated Parallel Processing (herstellerseitig bereitgestellt)" + +#: ../build/bin/preferences_gen.h:6440 +msgid "RustiCL" +msgstr "RustiCL" + +#: ../build/bin/preferences_gen.h:6453 +msgid "" +"RustiCL Mesa OpenCL, still unstable. if you want to use this, you should " +"disable the vendor driver" +msgstr "" +"RustiCL Mesa OpenCL, noch nicht stabil. Falls dies verwendet werden soll, " +"sollte der Herstellertreiber deaktiviert werden." + +#: ../build/bin/preferences_gen.h:6484 +msgid "Apple" +msgstr "Apple" + +#: ../build/bin/preferences_gen.h:6497 +msgid "Apple OpenCL (vendor provided)" +msgstr "Apple OpenCL (herstellerseitig bereitgestellt)" + +#: ../build/bin/preferences_gen.h:6528 +msgid "Microsoft OpenCLOn12" +msgstr "Microsoft OpenCLOn12" + +#: ../build/bin/preferences_gen.h:6541 +msgid "" +"Microsoft OpenCLOn12, only use this if the vendor provided driver does not " +"work or there is none provided." +msgstr "" +"Microsoft OpenCLOn12, nur verwenden, wenn der vom Hersteller bereitgestellte " +"Treiber nicht funktioniert oder es keinen gibt." + +#: ../build/bin/preferences_gen.h:6572 +msgid "other platforms" +msgstr "Andere Plattformen" + +#: ../build/bin/preferences_gen.h:6585 +msgid "" +"if set, all unspecified platforms are accepted. only do this if no vendor " +"driver is available" +msgstr "" +"wenn gesetzt, werden alle nicht spezifizierten Plattformen akzeptiert. Nur, " +"wenn kein Herstellertreiber verfügbar ist" + +#: ../build/bin/preferences_gen.h:6617 +msgid "security" +msgstr "Sicherheit" + +#: ../build/bin/preferences_gen.h:6638 msgid "ask before removing images from the library" msgstr "fragen, bevor Bilder aus der Bibliothek entfernt werden" -#: ../build/bin/preferences_gen.h:6157 +#: ../build/bin/preferences_gen.h:6651 msgid "always ask the user before removing image information from the library" -msgstr "Immer nachfragen, bevor Bildinformationen aus der Bibliothek gelöscht werden." +msgstr "" +"Immer nachfragen, bevor Bildinformationen aus der Bibliothek gelöscht werden." -#: ../build/bin/preferences_gen.h:6179 +#: ../build/bin/preferences_gen.h:6672 msgid "ask before deleting images from disk" msgstr "fragen, bevor Bilder von der Festplatte gelöscht werden" -#: ../build/bin/preferences_gen.h:6193 +#: ../build/bin/preferences_gen.h:6685 msgid "always ask the user before any image file is deleted" -msgstr "Immer nachfragen, bevor eine Bilddatei von der Festplatte gelöscht wird" +msgstr "" +"Immer nachfragen, bevor eine Bilddatei von der Festplatte gelöscht wird" -#: ../build/bin/preferences_gen.h:6215 +#: ../build/bin/preferences_gen.h:6706 msgid "ask before discarding history stack" msgstr "fragen, bevor Verlaufsstapel von Bildern gelöscht werden" -#: ../build/bin/preferences_gen.h:6229 +#: ../build/bin/preferences_gen.h:6719 msgid "always ask the user before history stack is discarded on any image" -msgstr "Immer nachfragen, bevor der Verlaufsstapel einer Bilddatei verworfen wird" +msgstr "" +"Immer nachfragen, bevor der Verlaufsstapel einer Bilddatei verworfen wird" -#: ../build/bin/preferences_gen.h:6251 +#: ../build/bin/preferences_gen.h:6740 msgid "try to use trash when deleting images" msgstr "benutze den Papierkorb beim Löschen (wenn möglich)" -#: ../build/bin/preferences_gen.h:6265 -msgid "send files to trash instead of permanently deleting files on system that supports it" -msgstr "Verschiebe Bilder in den Papierkorb, statt sie permanent zu löschen, falls dies vom System unterstützt wird" +#: ../build/bin/preferences_gen.h:6753 +msgid "" +"send files to trash instead of permanently deleting files on system that " +"supports it" +msgstr "" +"Verschiebe Bilder in den Papierkorb, statt sie permanent zu löschen, falls " +"dies vom System unterstützt wird" -#: ../build/bin/preferences_gen.h:6287 +#: ../build/bin/preferences_gen.h:6774 msgid "ask before moving images from film roll folder" msgstr "fragen, bevor Bilder aus dem Filmrollen-Ordner verschoben werden" -#: ../build/bin/preferences_gen.h:6301 +#: ../build/bin/preferences_gen.h:6787 msgid "always ask the user before any image file is moved." msgstr "Immer nachfragen, bevor eine Bilddatei verschoben wird." -#: ../build/bin/preferences_gen.h:6323 +#: ../build/bin/preferences_gen.h:6808 msgid "ask before copying images to new film roll folder" msgstr "fragen, bevor Bilder in einen neuen Filmrollen-Ordner kopiert werden" -#: ../build/bin/preferences_gen.h:6337 +#: ../build/bin/preferences_gen.h:6821 msgid "always ask the user before any image file is copied." msgstr "Immer nachfragen, bevor eine Bilddatei kopiert wird." -#: ../build/bin/preferences_gen.h:6359 +#: ../build/bin/preferences_gen.h:6842 msgid "ask before removing empty folders" msgstr "fragen, bevor leere Verzeichnisse entfernt werden" -#: ../build/bin/preferences_gen.h:6373 -msgid "always ask the user before removing any empty folder. this can happen after moving or deleting images." +#: ../build/bin/preferences_gen.h:6855 +msgid "" +"always ask the user before removing any empty folder. this can happen after " +"moving or deleting images." msgstr "" "Immer nachfragen, bevor leere Verzeichnisse gelöscht werden. \n" -"Leere Verzeichnisse können entstehen, wenn Bilder verschoben oder gelöscht werden." +"Leere Verzeichnisse können entstehen, wenn Bilder verschoben oder gelöscht " +"werden." -#: ../build/bin/preferences_gen.h:6395 +#: ../build/bin/preferences_gen.h:6876 msgid "ask before deleting a tag" msgstr "fragen, bevor ein Tag gelöscht wird" -#: ../build/bin/preferences_gen.h:6430 +#: ../build/bin/preferences_gen.h:6909 msgid "ask before deleting a style" msgstr "fragen, bevor ein Stil gelöscht wird" -#: ../build/bin/preferences_gen.h:6465 +#: ../build/bin/preferences_gen.h:6942 msgid "ask before deleting a preset" msgstr "fragen, bevor eine Modul-Voreinstellung gelöscht wird" -#: ../build/bin/preferences_gen.h:6479 +#: ../build/bin/preferences_gen.h:6955 msgid "will ask for confirmation before deleting or overwriting a preset" -msgstr "Immer nachfragen, bevor eine Modul-Voreinstellung gelöscht oder geändert wird." +msgstr "" +"Immer nachfragen, bevor eine Modul-Voreinstellung gelöscht oder geändert " +"wird." -#: ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6976 msgid "ask before exporting in overwrite mode" msgstr "fragen, im Überschreiben-Modus exportiert wird" -#: ../build/bin/preferences_gen.h:6515 +#: ../build/bin/preferences_gen.h:6989 msgid "will ask for confirmation before exporting files in overwrite mode" -msgstr "Es wird immer nachgefragt, bevor im Überschreiben-Modus exportiert wird" +msgstr "" +"Es wird immer nachgefragt, bevor im Überschreiben-Modus exportiert wird" #. italic -#: ../build/bin/preferences_gen.h:6525 ../src/libs/tools/viewswitcher.c:148 +#: ../build/bin/preferences_gen.h:6998 ../src/libs/tools/viewswitcher.c:148 msgid "other" msgstr "weitere" -#: ../build/bin/preferences_gen.h:6545 +#: ../build/bin/preferences_gen.h:7017 msgid "password storage backend to use" msgstr "Passwort-Speicher-Backend, das benutzt werden soll" -#: ../build/bin/preferences_gen.h:6595 -msgid "the storage backend for password storage: auto, none, libsecret, kwallet" -msgstr "Speicher-Backend für Passwörter: automatisch, keines, libsecret, KWallet" +#: ../build/bin/preferences_gen.h:7035 +msgid "" +"the storage backend for password storage: auto, none, libsecret, kwallet" +msgstr "" +"Speicher-Backend für Passwörter: automatisch, keines, libsecret, KWallet" -#: ../build/bin/preferences_gen.h:6617 +#: ../build/bin/preferences_gen.h:7056 msgid "executable for playing audio files" msgstr "Programm zum Abspielen von Audiodateien" -#: ../build/bin/preferences_gen.h:6635 -msgid "this external program is used to play audio files some cameras record to keep notes for images" +#: ../build/bin/preferences_gen.h:7074 +msgid "" +"this external program is used to play audio files some cameras record to " +"keep notes for images" msgstr "" -"Dieses externe Programm wird benutzt, um die Audiodateien abzuspielen, die einige Kameras für Notizen zu Bildern " -"aufzeichnen" +"Dieses externe Programm wird benutzt, um die Audiodateien abzuspielen, die " +"einige Kameras für Notizen zu Bildern aufzeichnen" + +#: ../build/bin/preferences_gen.h:7106 +msgid "storage" +msgstr "Speichern" -#: ../build/bin/preferences_gen.h:6675 ../src/control/crawler.c:724 +#: ../build/bin/preferences_gen.h:7108 ../src/control/crawler.c:717 msgid "database" msgstr "Datenbank" -#: ../build/bin/preferences_gen.h:6695 +#: ../build/bin/preferences_gen.h:7127 msgid "create database snapshot" -msgstr "Datenbanksnapshot erstellen" +msgstr "Datenbank-Snapshot erstellen" -#: ../build/bin/preferences_gen.h:6748 +#: ../build/bin/preferences_gen.h:7141 msgid "" -"database snapshots are created right before closing darktable. options allow you to choose how often to make " -"snapshots:\n" -" - 'never': simply don't do snapshots. that way the only snapshots done are mandatory version-upgrade snapshots\n" -" - 'once a month': create snapshot if a month has passed since last snapshot\n" +"database snapshots are created right before closing darktable. options allow " +"you to choose how often to make snapshots:\n" +" - 'never': simply don't do snapshots. that way the only snapshots done are " +"mandatory version-upgrade snapshots\n" +" - 'once a month': create snapshot if a month has passed since last " +"snapshot\n" " - 'once a week': create snapshot if 7 days had passed since last snapshot\n" " - 'once a day': create snapshot if over 24h passed since last snapshot\n" " - 'on close': create snapshot every time darktable is closed" msgstr "" -"Datenbank-Snapshots werden unmittelbar vor dem Schließen von darktable erzeugt. Diese Option legt fest, wie oft " -"ein Snapshot erstellt wird.\n" -" - „nie”: Es werden keine Snapshots erstellt, außer beim erstmaligen Start nach einem darktable-Upgrade\n" -" - „monatlich”: Erstellt einen Snapshot, wenn der letzte einen Monat oder länger zurückliegt\n" -" - „wöchentlich”: Erstellt einen Snapshot, wenn der letzte eine Woche oder länger zurückliegt\n" -" - „täglich”: Erstellt einen Snapshot, wenn der letzte 24 Stunden oder länger zurückliegt\n" +"Datenbank-Snapshots werden unmittelbar vor dem Schließen von darktable " +"erzeugt. Diese Option legt fest, wie oft ein Snapshot erstellt wird.\n" +" - „nie”: Es werden keine Snapshots erstellt, außer beim erstmaligen Start " +"nach einem darktable-Upgrade\n" +" - „monatlich”: Erstellt einen Snapshot, wenn der letzte einen Monat oder " +"länger zurückliegt\n" +" - „wöchentlich”: Erstellt einen Snapshot, wenn der letzte eine Woche oder " +"länger zurückliegt\n" +" - „täglich”: Erstellt einen Snapshot, wenn der letzte 24 Stunden oder " +"länger zurückliegt\n" " - „beim Beenden”: Erstellt einen Snapshot bei jedem Beenden von darktable" -#: ../build/bin/preferences_gen.h:6770 +#: ../build/bin/preferences_gen.h:7162 msgid "how many snapshots to keep" -msgstr "Anzahl der aufbewahrten Datenbankabzüge" +msgstr "Anzahl der aufbewahrten Datenbank-Snapshots" -#: ../build/bin/preferences_gen.h:6793 +#: ../build/bin/preferences_gen.h:7185 msgid "" -"after successfully creating snapshot, how many older snapshots to keep (excluding mandatory version update ones). " -"enter -1 to keep all snapshots\n" -"keep in mind that snapshots do take some space and you only need the most recent one for successful restore" -msgstr "" -"Legt fest, wie viele ältere Datenbanksnapshots behalten werden sollen, nachdem ein neuer Snapshot erstellt wurde " -"(ohne Snapshots infolge eines Upgrades). \n" +"after successfully creating snapshot, how many older snapshots to keep " +"(excluding mandatory version update ones). enter -1 to keep all snapshots\n" +"keep in mind that snapshots do take some space and you only need the most " +"recent one for successful restore" +msgstr "" +"Legt fest, wie viele ältere Datenbank-Snapshots behalten werden sollen, " +"nachdem ein neuer Snapshot erstellt wurde (ohne einen infolge eines " +"Upgrades). \n" "Mit „-1” bleiben sämtliche Snapshots erhalten. \n" -"Beachte, dass Snapshots Speicherplatz benötigen und der jeweils neueste Snapshot für eine erfolgreiche " -"Wiederherstellung benötigt wird." +"Beachte, dass Snapshots Speicherplatz benötigen und der jeweils neueste " +"Snapshot für eine erfolgreiche Wiederherstellung benötigt wird." -#: ../build/bin/preferences_gen.h:6803 ../src/control/crawler.c:723 -msgid "XMP" -msgstr "XMP" +#: ../build/bin/preferences_gen.h:7194 ../src/libs/copy_history.c:149 +msgid "XMP sidecar files" +msgstr "XMP Dateien" -#: ../build/bin/preferences_gen.h:6823 -msgid "write sidecar file for each image" -msgstr "für jedes Bild Begleitdatei schreiben" +#: ../build/bin/preferences_gen.h:7213 +msgid "create XMP files" +msgstr "XMP Dateien erzeugen" -#: ../build/bin/preferences_gen.h:6866 +#: ../build/bin/preferences_gen.h:7227 msgid "" -"the sidecar files hold information about all your development steps to allow flawless re-importing of image " -"files.\n" +"XMP sidecar files hold information about all your development steps to allow " +"flawless re-importing of image files.\n" "\n" -"depending on the selected mode sidecar files will be written:\n" +"depending on the selected mode sidecar files will be created:\n" " - 'never'\n" " - 'on import': immediately after importing the image\n" -" - 'after edit': after any user change on the image." +" - 'after edit': after any user change on the image or adding tags." msgstr "" -"Die XMP-Dateien enthalten Informationen über alle Entwicklungsschritte, um einen problemlosen Re-Import von " -"Bilddateien zu ermöglichen.\n" +"XMP Dateien enthalten Informationen über alle Entwicklungsschritte, um einen " +"problemlosen Re-Import von Bilddateien zu ermöglichen.\n" "\n" -"Abhängig vom gewählten Modus werden XMP-Begleitdateien geschrieben:\n" +"Abhängig vom gewählten Modus werden XMP Dateien geschrieben:\n" " - „nie“\n" " - „beim Import“: sofort nach dem Importieren des Bildes\n" -" - „nach Bearbeitung“: nach jeder Benutzeränderung am Bild" +" - „nach Bearbeitung“: nach jeder Benutzeränderung am Bild oder Tagging" -#: ../build/bin/preferences_gen.h:6888 +#: ../build/bin/preferences_gen.h:7248 msgid "store XMP tags in compressed format" -msgstr "XMP-Tags komprimiert speichern" +msgstr "XMP Tags komprimiert speichern" -#: ../build/bin/preferences_gen.h:6931 +#: ../build/bin/preferences_gen.h:7262 msgid "" -"entries in XMP tags can get rather large and may exceed the available space to store the history stack in output " -"files.\n" +"entries in XMP tags can get rather large and may exceed the available space " +"to store the history stack in output files.\n" "this option allows XMP tags to be compressed and save space." msgstr "" -"Die Daten in einzelnen XMP-Feldern können recht groß werden, so dass die Größe des Verlaufsstapels den verfügbaren " -"Speicherplatz in exportierten Dateien überschreitet. \n" -"Diese Option erlaubt es, die Daten in den XMP-Feldern zu komprimieren und so Speicherplatz zu sparen." +"Die Daten in einzelnen XMP Tags können recht groß werden, so dass die Größe " +"des Verlaufsstapels den verfügbaren Speicherplatz in exportierten Dateien " +"überschreitet. \n" +"Diese Option erlaubt es, die Daten in den XMP Feldern zu komprimieren und so " +"Speicherplatz zu sparen." + +#: ../build/bin/preferences_gen.h:7283 +msgid "auto-save interval" +msgstr "Speicherintervall" + +#: ../build/bin/preferences_gen.h:7306 +msgid "" +"automatically save history while developing using the given interval (in " +"seconds); set to zero to disable auto-saving. auto-saving might be disabled " +"on slow drives." +msgstr "" +"Verlauf während der Bearbeitung periodisch speichern (Intervall in " +"Sekunden); zum Deaktivieren auf Null setzen. Bei langsamen Speichermedien " +"kann die automatische Speicherung deaktiviert sein." -#: ../build/bin/preferences_gen.h:6953 +#: ../build/bin/preferences_gen.h:7327 msgid "look for updated XMP files on startup" -msgstr "beim Start nach aktualisierten XMP-Dateien suchen" +msgstr "beim Start nach aktualisierten XMP Dateien suchen" -#: ../build/bin/preferences_gen.h:6967 -msgid "check file modification times of all XMP files on startup to check if any got updated in the meantime" +#: ../build/bin/preferences_gen.h:7340 +msgid "" +"check file modification times of all XMP files on startup to check if any " +"got updated in the meantime" msgstr "" -"Prüfe die Zeitstempel aller XMP-Dateien beim Start, um diejenigen zu finden, die zwischenzeitlich extern " -"bearbeitet wurden." +"Prüfe die Zeitstempel aller XMP Dateien beim Start, um diejenigen zu finden, " +"die zwischenzeitlich extern bearbeitet wurden." + +#: ../build/bin/preferences_gen.h:7372 +msgid "miscellaneous" +msgstr "Verschiedenes" -#: ../build/bin/preferences_gen.h:7007 +#: ../build/bin/preferences_gen.h:7374 msgid "interface" msgstr "Benutzeroberfläche" -#: ../build/bin/preferences_gen.h:7027 +#: ../build/bin/preferences_gen.h:7393 msgid "load default shortcuts at startup" msgstr "Standard Shortcuts beim Start laden" -#: ../build/bin/preferences_gen.h:7041 -msgid "load default shortcuts before user settings. switch off to prevent deleted defaults returning" +#: ../build/bin/preferences_gen.h:7406 +msgid "" +"load default shortcuts before user settings. switch off to prevent deleted " +"defaults returning" msgstr "" -"lädt Standard-Shortcuts vor den benutzerdefinierten. Ausschalten, um zu verhindern, dass gelöschte Standard-" -"Shortcuts zurückkehren" +"lädt Standard-Shortcuts vor den benutzerdefinierten. Ausschalten, um zu " +"verhindern, dass gelöschte Standard-Shortcuts zurückkehren" -#: ../build/bin/preferences_gen.h:7063 +#: ../build/bin/preferences_gen.h:7427 msgid "scale slider step with min/max" msgstr "Skalierung der Reglerschritte mit Min/Max" -#: ../build/bin/preferences_gen.h:7077 +#: ../build/bin/preferences_gen.h:7440 msgid "vary slider step size with min/max range" msgstr "variiert Regler Schrittweite in einem sicheren min/max Bereich" -#: ../build/bin/preferences_gen.h:7099 +#: ../build/bin/preferences_gen.h:7461 msgid "sort built-in presets first" msgstr "eingebaute Voreinstellungen zuerst sortieren" -#: ../build/bin/preferences_gen.h:7113 -msgid "whether to show built-in presets first before user's presets in presets menu." +#: ../build/bin/preferences_gen.h:7474 +msgid "" +"whether to show built-in presets first before user's presets in presets menu." msgstr "" -"Bestimmt ob, alle eingebauten Voreinstellungen vor den benutzerdefinierten Voreinstellungen im Voreinstellungsmenü " -"gezeigt werden." +"Bestimmt ob, alle eingebauten Voreinstellungen vor den benutzerdefinierten " +"Voreinstellungen im Voreinstellungsmenü gezeigt werden." -#: ../build/bin/preferences_gen.h:7135 +#: ../build/bin/preferences_gen.h:7495 msgid "mouse wheel scrolls modules side panel by default" -msgstr "Mausrad blättert standardmäßig die Module der seitlichen Eingabefelder durch" +msgstr "" +"Mausrad blättert standardmäßig die Module der seitlichen Eingabefelder durch" -#: ../build/bin/preferences_gen.h:7149 +#: ../build/bin/preferences_gen.h:7508 msgid "" -"when enabled, use mouse wheel to scroll modules side panel. use ctrl+alt to use mouse wheel for data entry. when " -"disabled, this behavior is reversed" +"when enabled, use mouse wheel to scroll modules side panel. use ctrl+alt to " +"use mouse wheel for data entry. when disabled, this behavior is reversed" msgstr "" -"Wenn aktiviert, bewirkt das Mausrad ein Scrollen der Module der seitlichen Eingabefelder und die Dateneingabe über " -"das Mausrad erfolgt bei gleichzeitig gedrückter Tastenkombination Strg+Alt.\n" +"Wenn aktiviert, bewirkt das Mausrad ein Scrollen der Module der seitlichen " +"Eingabefelder und die Dateneingabe über das Mausrad erfolgt bei gleichzeitig " +"gedrückter Tastenkombination Strg+Alt.\n" "Wenn deaktiviert, ist das Verhalten umgekehrt." -#: ../build/bin/preferences_gen.h:7171 +#: ../build/bin/preferences_gen.h:7529 msgid "always show panels' scrollbars" msgstr "zeige immer die Scrollbalken der Eingabefelder an" -#: ../build/bin/preferences_gen.h:7185 +#: ../build/bin/preferences_gen.h:7542 msgid "" -"defines whether the panel scrollbars should be always visible or activated only depending on the content. (need a " -"restart)" +"defines whether the panel scrollbars should be always visible or activated " +"only depending on the content. (need a restart)" msgstr "" -"Definiert, ob die Scrollbalken der Eingabefelder immer sichtbar sind oder abhängig vom Inhalt. Bei Änderung " -"Neustart erforderlich." +"Definiert, ob die Scrollbalken der Eingabefelder immer sichtbar sind oder " +"abhängig vom Inhalt. Bei Änderung Neustart erforderlich." -#: ../build/bin/preferences_gen.h:7207 +#: ../build/bin/preferences_gen.h:7563 msgid "duration of the UI transitions in ms" msgstr "Dauer der UI-Transitionen in ms" -#: ../build/bin/preferences_gen.h:7231 -msgid "how long the transitions take (in ms) for expanding or collapsing modules and other UI elements" +#: ../build/bin/preferences_gen.h:7587 +msgid "" +"how long the transitions take (in ms) for expanding or collapsing modules " +"and other UI elements" msgstr "" -"Dauer der Transitionen (in ms) für das Auf- und Zuklappen von Modulen und anderen Elementen der Benutzeroberfläche" +"Dauer der Transitionen (in ms) für das Auf- und Zuklappen von Modulen und " +"anderen Elementen der Benutzeroberfläche" -#: ../build/bin/preferences_gen.h:7253 +#: ../build/bin/preferences_gen.h:7608 msgid "position of the scopes module" msgstr "Position des Histogramms/Scopes" -#: ../build/bin/preferences_gen.h:7291 +#: ../build/bin/preferences_gen.h:7622 msgid "position the scopes at the top-left or top-right of the screen" msgstr "Positionierung des Histogramms/Scopes links oder rechts oben" -#: ../build/bin/preferences_gen.h:7313 +#: ../build/bin/preferences_gen.h:7643 msgid "method to use for getting the display profile" msgstr "Methode, um das Monitorprofil zu ermitteln" -#: ../build/bin/preferences_gen.h:7356 +#: ../build/bin/preferences_gen.h:7657 msgid "" -"this option allows to force a specific means of getting the current display profile.\n" +"this option allows to force a specific means of getting the current display " +"profile.\n" "this is useful when one alternative gives wrong results" msgstr "" -"Diese Option erlaubt es, eine bestimmte Methode zum Ermitteln des Anzeigenprofils festzulegen.\n" +"Diese Option erlaubt es, eine bestimmte Methode zum Ermitteln des " +"Anzeigenprofils festzulegen.\n" "Dies ist hilfreich, wenn eine der Alternativen falsche Ergebnisse liefert." -#: ../build/bin/preferences_gen.h:7378 +#: ../build/bin/preferences_gen.h:7678 msgid "order or exclude MIDI devices" msgstr "MIDI Devices anordnen oder ausschließen" -#: ../build/bin/preferences_gen.h:7396 +#: ../build/bin/preferences_gen.h:7696 msgid "" -"comma-separated list of device name fragments that if matched load MIDI device at id given by location in list\n" -"or if preceded by '-' prevent matching devices from loading. add encoding and number of knobs like 'BeatStep:63:16'" +"comma-separated list of device name fragments that if matched load MIDI " +"device at id given by location in list\n" +"or if preceded by '-' prevent matching devices from loading. add encoding " +"and number of knobs like 'BeatStep:63:16'" msgstr "" "kommaseparierte Liste von MIDI Device-Namensfragmenten,\n" -"Die ID des MIDI-Devices ergibt sich anhand der Position des zum Namensfragment passenden Devices.\n" +"Die ID des MIDI-Devices ergibt sich anhand der Position des zum " +"Namensfragment passenden Devices.\n" "Um ein Device auszuschließen ein „-“ voranstellen. \n" "Kodierung und Anzahl der Regler wie z.B. „BeatStep:63:16“ angeben" #. tags -#: ../build/bin/preferences_gen.h:7412 ../src/develop/lightroom.c:1516 ../src/gui/import_metadata.c:476 -#: ../src/libs/export_metadata.c:333 ../src/libs/image.c:558 ../src/libs/metadata_view.c:162 +#: ../build/bin/preferences_gen.h:7715 ../src/develop/lightroom.c:1573 +#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:322 +#: ../src/libs/image.c:614 ../src/libs/metadata_view.c:166 msgid "tags" msgstr "Tags" -#: ../build/bin/preferences_gen.h:7432 +#: ../build/bin/preferences_gen.h:7734 msgid "omit hierarchy in simple tag lists" msgstr "Hierarchie in einfacher Tag-Liste auslassen" -#: ../build/bin/preferences_gen.h:7446 +#: ../build/bin/preferences_gen.h:7747 msgid "" -"when creating XMP file the hierarchical tags are also added as a simple list\n" +"when creating an XMP sidecar file the hierarchical tags are also added as a " +"simple list\n" "of non-hierarchical ones to make them visible to some other programs.\n" "when this option is checked darktable will only include their last part\n" "and ignore the rest. so 'foo|bar|baz' will only add 'baz'." msgstr "" -"Beim Export werden die hierarchischen Tags auch in einer einfachen flachen Liste \n" -"gespeichert, um die Kompatibilität mit einigen anderen Programmen zu verbessern. \n" -"Wenn diese Option ausgewählt ist, wird nur das Tag der letzten Ebene genommen \n" +"Beim Erstellen der XMP Datei werden die hierarchischen Tags auch in einer " +"einfachen flachen Liste \n" +"gespeichert, um die Kompatibilität mit einigen anderen Programmen zu " +"verbessern. \n" +"Wenn diese Option ausgewählt ist, wird nur das Tag der letzten Ebene " +"genommen \n" "und der Rest ignoriert. Von „foo|bar|baz“ wird also nur „baz“ eingefügt." -#: ../build/bin/preferences_gen.h:7456 +#: ../build/bin/preferences_gen.h:7756 msgid "shortcuts with multiple instances" msgstr "Shortcuts bei mehreren Modulinstanzen" -#: ../build/bin/preferences_gen.h:7461 -msgid "" -"where multiple module instances are present, these preferences control rules that are applied (in order) to decide " -"which module instance shortcuts will be applied to" -msgstr "" -"Diese Einstellungen beeinflussen die Regeln, nach denen Shortcuts auf die Moduleinstellungen bei mehreren " -"Instanzen des Moduls angewandt werden." - -#: ../build/bin/preferences_gen.h:7477 +#: ../build/bin/preferences_gen.h:7775 msgid "prefer focused instance" msgstr "Modulinstanz mit Fokus bevorzugen" -#: ../build/bin/preferences_gen.h:7491 +#: ../build/bin/preferences_gen.h:7788 msgid "" -"if an instance of the module has focus, apply shortcut to that instance\n" +"where multiple instances of a module are present, apply shortcuts to the " +"instance that has focus\n" +"if none are focused, the preferences below control rules that are followed " +"(in order) to decide which module instance shortcuts will be applied to.\n" "note: blending shortcuts always apply to the focused instance" msgstr "" -"Hat eine Instanz des Moduls den Fokus, wird der Shortcut auf diese angewendet.\n" -"Hinweis: Überblendkürzel gelten immer für die fokussierte Instanz" +"Wenn mehrere Instanzen eines Moduls vorhanden sind, werden die Shortcuts auf " +"die Instanz angewendet, die den Fokus hat.\n" +"Wenn keine Instanz fokussiert ist, steuern die folgenden Einstellungen die " +"Regeln (und deren Reihenfolge) zur Entscheidung, auf welche Modulinstanz die " +"Verknüpfungen angewendet werden.\n" +"Hinweis: Überblendungs-Shortcuts werden immer auf die fokussierte Instanz " +"angewendet." -#: ../build/bin/preferences_gen.h:7513 +#: ../build/bin/preferences_gen.h:7809 msgid "prefer expanded instances" msgstr "eingeblendete Modulinstanzen bevorzugen" -#: ../build/bin/preferences_gen.h:7527 +#: ../build/bin/preferences_gen.h:7822 msgid "if instances of the module are expanded, ignore collapsed instances" -msgstr "Wenn Instanzen des Moduls eingeblendet sind, ignoriere ausgeblendete Modulinstanzen." +msgstr "" +"Wenn Instanzen des Moduls eingeblendet sind, ignoriere ausgeblendete " +"Modulinstanzen." -#: ../build/bin/preferences_gen.h:7549 +#: ../build/bin/preferences_gen.h:7843 msgid "prefer enabled instances" msgstr "aktive Modulinstanzen bevorzugen" -#: ../build/bin/preferences_gen.h:7563 -msgid "after applying the above rule, if instances of the module are active, ignore inactive instances" +#: ../build/bin/preferences_gen.h:7856 +msgid "" +"after applying the above rule, if instances of the module are active, ignore " +"inactive instances" msgstr "" -"Nachdem obige Regel angewandt wurde: Wenn Instanzen des Moduls aktiv sind, ignoriere inaktive Modulinstanzen." +"Nachdem obige Regel angewandt wurde: Wenn Instanzen des Moduls aktiv sind, " +"ignoriere inaktive Modulinstanzen." -#: ../build/bin/preferences_gen.h:7585 +#: ../build/bin/preferences_gen.h:7877 msgid "prefer unmasked instances" msgstr "Modulinstanzen mit lokalen Masken bevorzugen" -#: ../build/bin/preferences_gen.h:7599 -msgid "after applying the above rules, if instances of the module are unmasked, ignore masked instances" +#: ../build/bin/preferences_gen.h:7890 +msgid "" +"after applying the above rules, if instances of the module are unmasked, " +"ignore masked instances" msgstr "" -"Nachdem obige Regeln angewandt wurden: Wenn Instanzen des Moduls keine lokale Masken verwenden, ignoriere " -"Modulinstanzen, die lokale Masken verwenden." +"Nachdem obige Regeln angewandt wurden: Wenn Instanzen des Moduls keine " +"lokale Masken verwenden, ignoriere Modulinstanzen, die lokale Masken " +"verwenden." -#: ../build/bin/preferences_gen.h:7621 +#: ../build/bin/preferences_gen.h:7911 msgid "selection order" msgstr "Reihenfolge" -#: ../build/bin/preferences_gen.h:7659 -msgid "after applying the above rules, apply the shortcut based on its position in the pixelpipe" +#: ../build/bin/preferences_gen.h:7925 +msgid "" +"after applying the above rules, apply the shortcut based on its position in " +"the pixelpipe" msgstr "" -"Nachdem obige Regeln angewandt wurden: Wende die Shortcuts auf Module gemäß ihrer Position im Bearbeitungsstapel " -"an." +"Nachdem obige Regeln angewandt wurden: Wende die Shortcuts auf Module gemäß " +"ihrer Position im Bearbeitungsstapel an." -#: ../build/bin/preferences_gen.h:7681 +#: ../build/bin/preferences_gen.h:7946 msgid "allow visual assignment to specific instances" msgstr "visuelle Zuordnung zu bestimmten Instanzen ermöglichen" -#: ../build/bin/preferences_gen.h:7695 +#: ../build/bin/preferences_gen.h:7959 msgid "" -"when multiple instances are present on an image this allows shortcuts to be visually assigned to those specific " -"instances\n" +"when multiple instances are present on an image this allows shortcuts to be " +"visually assigned to those specific instances\n" "otherwise shortcuts will always be assigned to the preferred instance" msgstr "" -"Wenn mehrere Instanzen bei einem Bild vorhanden sind, können die Shortcuts visuell diesen spezifischen Instanzen " -"zugewiesen werden.\n" -"Andernfalls werden die Verknüpfungen immer der bevorzugten Instanz zugewiesen." +"Wenn mehrere Instanzen bei einem Bild vorhanden sind, können die Shortcuts " +"visuell diesen spezifischen Instanzen zugewiesen werden.\n" +"Andernfalls werden die Verknüpfungen immer der bevorzugten Instanz " +"zugewiesen." -#: ../build/bin/preferences_gen.h:7705 +#: ../build/bin/preferences_gen.h:7968 msgid "map / geolocalization view" msgstr "Karte / Geolokalisierung" -#: ../build/bin/preferences_gen.h:7725 +#: ../build/bin/preferences_gen.h:7987 msgid "pretty print the image location" msgstr "Bildposition schön formatieren" -#: ../build/bin/preferences_gen.h:7739 -msgid "show a more readable representation of the location in the image information module" -msgstr "Zeige eine besser lesbare Darstellung der Position im Modul „Bildinformation“" +#: ../build/bin/preferences_gen.h:8000 +msgid "" +"show a more readable representation of the location in the image information " +"module" +msgstr "" +"Zeige eine besser lesbare Darstellung der Position im Modul „Bildinformation“" -#: ../build/bin/preferences_gen.h:7749 +#: ../build/bin/preferences_gen.h:8009 msgid "slideshow view" msgstr "Diashow" -#: ../build/bin/preferences_gen.h:7769 +#: ../build/bin/preferences_gen.h:8028 msgid "waiting time between each picture in slideshow" msgstr "Wartezeit zwischen zwei Bildern in der Diashow" -# zu frei? -#: ../build/bin/preferences_gen.h:7831 -msgid "session options" -msgstr "Sitzungs-Optionen" - -#: ../build/bin/preferences_gen.h:7851 -msgid "base directory naming pattern" -msgstr "Namensformat des Wurzelverzeichnisses" - -#: ../build/bin/preferences_gen.h:7869 ../build/bin/preferences_gen.h:7909 -msgid "part of full import path for an import session" -msgstr "Teil eines vollständigen Import-Pfades beim Importieren" - -#: ../build/bin/preferences_gen.h:7891 -msgid "sub directory naming pattern" -msgstr "Namensformat der Unterordner" - -#: ../build/bin/preferences_gen.h:7931 -msgid "keep original filename" -msgstr "ursprünglichen Dateinamen erhalten" - -#: ../build/bin/preferences_gen.h:7945 -msgid "keep original filename instead of a pattern while importing from camera or card" -msgstr "" -"den ursprünglichen Dateinamen erhalten statt Änderung gemäß Namensformat während Import von Kamera oder Karte" - -#: ../build/bin/preferences_gen.h:7967 -msgid "file naming pattern" -msgstr "Namensformat der Dateien" - -#: ../build/bin/preferences_gen.h:7985 -msgid "file naming pattern used for a import session" -msgstr "Namensformat für Dateien beim Importieren" - -#: ../build/bin/preferences_gen.h:8022 +#: ../build/bin/preferences_gen.h:8088 msgid "do not set the 'uncategorized' entry for tags" msgstr "nicht „Sonstige“ als Tag verwenden" -#: ../build/bin/preferences_gen.h:8036 -msgid "do not set the 'uncategorized' entry for tags which do not have children" +#: ../build/bin/preferences_gen.h:8101 +msgid "" +"do not set the 'uncategorized' entry for tags which do not have children" msgstr "nicht „Sonstige“ als Tag verwenden, wenn es keine Detaillierung gibt" -#: ../build/bin/preferences_gen.h:8058 +#: ../build/bin/preferences_gen.h:8122 msgid "tags case sensitivity" msgstr "Groß- und Kleinschreibung für Tags" -#: ../build/bin/preferences_gen.h:8096 -msgid "tags case sensitivity. without the Sqlite ICU extension, insensitivity works only for the 26 latin letters" +#: ../build/bin/preferences_gen.h:8136 +msgid "" +"tags case sensitivity. without the Sqlite ICU extension, insensitivity works " +"only for the 26 latin letters" msgstr "" -"Groß- und Kleinschreibung für Tags. Ohne die Sqlite ICU Erweiterung funktioniert die Nichtbeachtung der Groß/" -"Kleinschreibung nur für die 26 lateinischen Buchstaben" +"Groß- und Kleinschreibung für Tags. Ohne die Sqlite ICU Erweiterung " +"funktioniert die Nichtbeachtung der Groß/Kleinschreibung nur für die 26 " +"lateinischen Buchstaben" -#: ../build/bin/preferences_gen.h:8118 ../build/bin/preferences_gen.h:8358 +#: ../build/bin/preferences_gen.h:8157 ../build/bin/preferences_gen.h:8368 msgid "number of collections to be stored" msgstr "Anzahl zu speichernder Sammlungen" -#: ../build/bin/preferences_gen.h:8142 ../build/bin/preferences_gen.h:8382 +#: ../build/bin/preferences_gen.h:8181 ../build/bin/preferences_gen.h:8392 msgid "the number of recent collections to store and show in this list" -msgstr "Anzahl der Sammlungen, die in der Liste „kürzlich benutzter Sammlungen“ gespeichert werden" +msgstr "" +"Anzahl der Sammlungen, die in der Liste „kürzlich benutzter Sammlungen“ " +"gespeichert werden" -#: ../build/bin/preferences_gen.h:8164 +#: ../build/bin/preferences_gen.h:8202 msgid "hide the history button and show a specific module instead" msgstr "Schaltfläche „Verlauf“ ausblenden und Verlaufsmodul anzeigen" -#: ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8215 msgid "hide the history button and show the recent collections module instead" -msgstr "Schaltfläche „Verlauf“ ausblenden und stattdessen Modul „kürzlich benutzte Sammlungen“ anzeigen" +msgstr "" +"Schaltfläche „Verlauf“ ausblenden und stattdessen Modul „kürzlich benutzte " +"Sammlungen“ anzeigen" -#: ../build/bin/preferences_gen.h:8200 +#: ../build/bin/preferences_gen.h:8236 msgid "number of folder levels to show in lists" msgstr "Anzahl der anzuzeigenden Verzeichnis-Ebenen" -#: ../build/bin/preferences_gen.h:8224 -msgid "the number of folder levels to show in film roll names, starting from the right" +#: ../build/bin/preferences_gen.h:8260 +msgid "" +"the number of folder levels to show in film roll names, starting from the " +"right" msgstr "" -"Bestimmt die Anzahl an Verzeichnis-Ebenen, die im Filmrollennamen angezeigt werden sollen, beginnend von rechts" +"Bestimmt die Anzahl an Verzeichnis-Ebenen, die im Filmrollennamen angezeigt " +"werden sollen, beginnend von rechts" -#: ../build/bin/preferences_gen.h:8246 +#: ../build/bin/preferences_gen.h:8281 msgid "sort film rolls by" msgstr "Filmrolle sortieren nach" -#: ../build/bin/preferences_gen.h:8284 +#: ../build/bin/preferences_gen.h:8292 +msgctxt "preferences" +msgid "chronological" +msgstr "chronologisch" + +#: ../build/bin/preferences_gen.h:8295 msgid "sets the collections-list order for film rolls" msgstr "Bestimmt die Sortierung der Bilder einer Filmrolle" -#: ../build/bin/preferences_gen.h:8306 +#: ../build/bin/preferences_gen.h:8316 msgid "sort collection descending" msgstr "Sammlung absteigend sortieren" -#: ../build/bin/preferences_gen.h:8320 +#: ../build/bin/preferences_gen.h:8329 msgid "" -"sort the following collections in descending order: 'film roll' by folder, 'folder', 'times' (e.g. 'capture date')" +"sort the following collections in descending order: 'film roll' by folder, " +"'folder', 'times' (e.g. 'capture date')" msgstr "" -"Sortierung der folgenden Sammlungen in absteigender Reihenfolge: „Filmrolle“ nach Ordnern, „Ordner“, „Zeiten“ (z. " -"B. „Aufnahmedatum“)" +"Sortierung der folgenden Sammlungen in absteigender Reihenfolge: „Filmrolle“ " +"nach Ordnern, „Ordner“, „Zeiten“ (z. B. „Aufnahmedatum“)" -#: ../build/bin/preferences_gen.h:8404 +#: ../build/bin/preferences_gen.h:8413 msgid "prefer a history button in the collections module" msgstr "Schaltfläche „Verlauf“ im Sammlungsmodul verwenden" -#: ../build/bin/preferences_gen.h:8418 -msgid "hide this module and instead access collections history with a button in the collections module" -msgstr "Schaltfläche „Verlauf“ Sammlungsmodul anstatt des separaten Moduls verwenden" +#: ../build/bin/preferences_gen.h:8426 +msgid "" +"hide this module and instead access collections history with a button in the " +"collections module" +msgstr "" +"Schaltfläche „Verlauf“ Sammlungsmodul anstatt des separaten Moduls verwenden" -#: ../build/bin/preferences_gen.h:8472 +#: ../build/bin/preferences_gen.h:8483 msgid "suggested tags level of confidence" msgstr "vorgeschlagene Tags Konfidenzlevel" -#: ../build/bin/preferences_gen.h:8497 +#: ../build/bin/preferences_gen.h:8508 #, no-c-format msgid "" -"level of confidence to include the tag in the suggestions list, 0: all associated tags, 99: 99% matching " -"associated tags, 100: no matching tag to show only recent tags (faster)" +"level of confidence to include the tag in the suggestions list, 0: all " +"associated tags, 99: 99% matching associated tags, 100: no matching tag to " +"show only recent tags (faster)" msgstr "" "Konfidenzlevel zur Aufnahme eines Tags in die Vorschlagsliste\n" "0: alle verknüpften Tags, \n" "99: 99% übereinstimmende verknüpfte Tags, \n" -"100: kein übereinstimmendes Tag, um nur die neuesten Tags anzuzeigen (schneller)" +"100: kein übereinstimmendes Tag, um nur die neuesten Tags anzuzeigen " +"(schneller)" -#: ../build/bin/preferences_gen.h:8519 +#: ../build/bin/preferences_gen.h:8529 msgid "number of recently attached tags" msgstr "Anzahl der zuletzt zugewiesenen Tags" -#: ../build/bin/preferences_gen.h:8543 +#: ../build/bin/preferences_gen.h:8553 msgid "" -"number of recently attached tags which are included in the suggestions list. the value `-1' disables the recent " -"list" +"number of recently attached tags which are included in the suggestions list. " +"the value `-1' disables the recent list" msgstr "" -"Anzahl der zuletzt zugeordneten Tags, die in die Vorschlagsliste aufgenommen werden. \n" +"Anzahl der zuletzt zugeordneten Tags, die in die Vorschlagsliste aufgenommen " +"werden. \n" "Der Wert „-1“ deaktiviert die Liste der zuletzt zugeordneten Tags." #: ../build/lib/darktable/plugins/introspection_ashift.c:130 @@ -2036,13 +2427,16 @@ #. focal length #: ../build/lib/darktable/plugins/introspection_ashift.c:148 -#: ../build/lib/darktable/plugins/introspection_ashift.c:291 ../src/common/collection.c:714 -#: ../src/gui/preferences.c:844 ../src/gui/presets.c:718 ../src/libs/camera.c:550 ../src/libs/metadata_view.c:143 +#: ../build/lib/darktable/plugins/introspection_ashift.c:291 +#: ../src/common/collection.c:627 ../src/gui/preferences.c:842 +#: ../src/gui/presets.c:721 ../src/libs/camera.c:550 +#: ../src/libs/metadata_view.c:145 msgid "focal length" msgstr "Brennweite" #: ../build/lib/darktable/plugins/introspection_ashift.c:154 #: ../build/lib/darktable/plugins/introspection_ashift.c:295 +#: ../src/libs/metadata_view.c:147 msgid "crop factor" msgstr "Crop-Faktor" @@ -2057,7 +2451,8 @@ msgstr "Seitenverhältnis anpassen" #: ../build/lib/darktable/plugins/introspection_ashift.c:172 -#: ../build/lib/darktable/plugins/introspection_ashift.c:307 ../src/iop/lens.cc:3784 +#: ../build/lib/darktable/plugins/introspection_ashift.c:307 +#: ../src/iop/lens.cc:4438 msgid "lens model" msgstr "Objektiv-Modell" @@ -2079,12 +2474,14 @@ #. DEVELOP_MASK_DISABLED #: ../build/lib/darktable/plugins/introspection_ashift.c:366 -#: ../build/lib/darktable/plugins/introspection_colorin.c:300 +#: ../build/lib/darktable/plugins/introspection_colorin.c:303 #: ../build/lib/darktable/plugins/introspection_highlights.c:310 -#: ../build/lib/darktable/plugins/introspection_vignette.c:264 ../src/develop/blend_gui.c:153 -#: ../src/develop/blend_gui.c:182 ../src/develop/blend_gui.c:3410 ../src/gui/accelerators.c:130 -#: ../src/gui/accelerators.c:140 ../src/gui/accelerators.c:227 ../src/imageio/format/avif.c:804 -#: ../src/imageio/format/j2k.c:669 ../src/libs/live_view.c:361 ../src/libs/masks.c:113 +#: ../build/lib/darktable/plugins/introspection_vignette.c:264 +#: ../src/develop/blend_gui.c:153 ../src/develop/blend_gui.c:182 +#: ../src/develop/blend_gui.c:3429 ../src/gui/accelerators.c:148 +#: ../src/gui/accelerators.c:158 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/imageio/format/j2k.c:686 +#: ../src/libs/live_view.c:361 msgid "off" msgstr "aus" @@ -2107,7 +2504,8 @@ msgstr "Belichtungsanpassung" #: ../build/lib/darktable/plugins/introspection_basecurve.c:146 -#: ../build/lib/darktable/plugins/introspection_basecurve.c:239 ../src/libs/metadata_view.c:142 +#: ../build/lib/darktable/plugins/introspection_basecurve.c:239 +#: ../src/libs/metadata_view.c:144 msgid "exposure bias" msgstr "Belichtungskorrektur" @@ -2127,14 +2525,17 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:262 #: ../build/lib/darktable/plugins/introspection_basicadj.c:249 #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:153 -#: ../build/lib/darktable/plugins/introspection_lens.cc:444 +#: ../build/lib/darktable/plugins/introspection_lens.cc:533 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:251 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:153 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:270 ../src/gui/guides.c:712 ../src/iop/basecurve.c:2193 -#: ../src/iop/channelmixerrgb.c:4667 ../src/iop/clipping.c:1900 ../src/iop/clipping.c:2093 ../src/iop/clipping.c:2108 -#: ../src/iop/retouch.c:463 ../src/libs/collect.c:1907 ../src/libs/colorpicker.c:51 ../src/libs/export.c:1023 -#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:132 ../src/libs/live_view.c:311 -#: ../src/libs/print_settings.c:2835 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:270 +#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2214 +#: ../src/iop/channelmixerrgb.c:4735 ../src/iop/clipping.c:1953 +#: ../src/iop/clipping.c:2146 ../src/iop/clipping.c:2161 +#: ../src/iop/retouch.c:507 ../src/libs/collect.c:2043 +#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1101 +#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:109 +#: ../src/libs/live_view.c:311 ../src/libs/print_settings.c:2835 msgid "none" msgstr "keine" @@ -2150,8 +2551,8 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:497 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:252 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:154 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:271 ../src/develop/blend_gui.c:2363 -#: ../src/develop/blend_gui.c:2397 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:271 +#: ../src/develop/blend_gui.c:2379 ../src/develop/blend_gui.c:2413 msgid "luminance" msgstr "Luminanz" @@ -2213,7 +2614,8 @@ msgid "middle gray" msgstr "mittelgrau" -#: ../build/lib/darktable/plugins/introspection_bilat.c:78 ../build/lib/darktable/plugins/introspection_bilat.c:137 +#: ../build/lib/darktable/plugins/introspection_bilat.c:78 +#: ../build/lib/darktable/plugins/introspection_bilat.c:137 msgid "midtone range" msgstr "Mittenbereich" @@ -2225,55 +2627,67 @@ msgid "local laplacian filter" msgstr "lokaler Laplace-Filter" -#: ../build/lib/darktable/plugins/introspection_blurs.c:83 ../build/lib/darktable/plugins/introspection_blurs.c:174 +#: ../build/lib/darktable/plugins/introspection_blurs.c:83 +#: ../build/lib/darktable/plugins/introspection_blurs.c:174 #: ../build/lib/darktable/plugins/introspection_retouch.c:255 #: ../build/lib/darktable/plugins/introspection_retouch.c:406 msgid "blur type" msgstr "Art der Unschärfe" -#: ../build/lib/darktable/plugins/introspection_blurs.c:89 ../build/lib/darktable/plugins/introspection_blurs.c:178 +#: ../build/lib/darktable/plugins/introspection_blurs.c:89 +#: ../build/lib/darktable/plugins/introspection_blurs.c:178 #: ../build/lib/darktable/plugins/introspection_retouch.c:261 #: ../build/lib/darktable/plugins/introspection_retouch.c:410 msgid "blur radius" msgstr "Radius" -#: ../build/lib/darktable/plugins/introspection_blurs.c:95 ../build/lib/darktable/plugins/introspection_blurs.c:182 +#: ../build/lib/darktable/plugins/introspection_blurs.c:95 +#: ../build/lib/darktable/plugins/introspection_blurs.c:182 msgid "diaphragm blades" msgstr "Blendenlamellen" -#: ../build/lib/darktable/plugins/introspection_blurs.c:101 ../build/lib/darktable/plugins/introspection_blurs.c:186 +#: ../build/lib/darktable/plugins/introspection_blurs.c:101 +#: ../build/lib/darktable/plugins/introspection_blurs.c:186 msgid "concavity" msgstr "Konkavität" -#: ../build/lib/darktable/plugins/introspection_blurs.c:107 ../build/lib/darktable/plugins/introspection_blurs.c:190 +#: ../build/lib/darktable/plugins/introspection_blurs.c:107 +#: ../build/lib/darktable/plugins/introspection_blurs.c:190 msgid "linearity" msgstr "Geradlinigkeit" -#: ../build/lib/darktable/plugins/introspection_blurs.c:113 ../build/lib/darktable/plugins/introspection_blurs.c:194 +#: ../build/lib/darktable/plugins/introspection_blurs.c:113 +#: ../build/lib/darktable/plugins/introspection_blurs.c:194 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:75 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:144 #: ../build/lib/darktable/plugins/introspection_watermark.c:136 -#: ../build/lib/darktable/plugins/introspection_watermark.c:265 ../src/iop/ashift.c:6112 ../src/libs/masks.c:108 +#: ../build/lib/darktable/plugins/introspection_watermark.c:265 +#: ../src/iop/ashift.c:6059 ../src/libs/masks.c:109 msgid "rotation" msgstr "Drehung" -#: ../build/lib/darktable/plugins/introspection_blurs.c:119 ../build/lib/darktable/plugins/introspection_blurs.c:198 +#: ../build/lib/darktable/plugins/introspection_blurs.c:119 +#: ../build/lib/darktable/plugins/introspection_blurs.c:198 msgid "direction" msgstr "Richtung" -#: ../build/lib/darktable/plugins/introspection_blurs.c:125 ../build/lib/darktable/plugins/introspection_blurs.c:202 -#: ../src/libs/masks.c:109 +#: ../build/lib/darktable/plugins/introspection_blurs.c:125 +#: ../build/lib/darktable/plugins/introspection_blurs.c:202 +#: ../src/libs/masks.c:110 msgid "curvature" msgstr "Krümmung" -#: ../build/lib/darktable/plugins/introspection_blurs.c:131 ../build/lib/darktable/plugins/introspection_blurs.c:206 +#: ../build/lib/darktable/plugins/introspection_blurs.c:131 +#: ../build/lib/darktable/plugins/introspection_blurs.c:206 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:81 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:148 ../src/iop/colorbalancergb.c:1968 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:148 +#: ../src/iop/colorbalancergb.c:2039 msgid "offset" msgstr "Offset" -#: ../build/lib/darktable/plugins/introspection_blurs.c:220 ../src/common/collection.c:712 -#: ../src/gui/preferences.c:828 ../src/gui/presets.c:660 ../src/libs/metadata_view.c:139 +#: ../build/lib/darktable/plugins/introspection_blurs.c:220 +#: ../src/common/collection.c:625 ../src/gui/preferences.c:826 +#: ../src/gui/presets.c:663 ../src/libs/metadata_view.c:141 msgid "lens" msgstr "Objektiv" @@ -2289,59 +2703,90 @@ msgid "gaussian" msgstr "Gauß" -#: ../build/lib/darktable/plugins/introspection_borders.c:112 -#: ../build/lib/darktable/plugins/introspection_borders.c:253 ../src/common/collection.c:722 -#: ../src/libs/filtering.c:59 +#: ../build/lib/darktable/plugins/introspection_borders.c:122 +#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../src/common/collection.c:635 ../src/libs/filtering.c:59 msgid "aspect ratio" msgstr "Seitenverhältnis" #. // portrait / landscape -#: ../build/lib/darktable/plugins/introspection_borders.c:130 -#: ../build/lib/darktable/plugins/introspection_borders.c:265 ../src/iop/flip.c:75 ../src/libs/print_settings.c:2517 +#: ../build/lib/darktable/plugins/introspection_borders.c:140 +#: ../build/lib/darktable/plugins/introspection_borders.c:281 +#: ../src/iop/flip.c:75 ../src/libs/print_settings.c:2517 msgid "orientation" msgstr "Drehung" -#: ../build/lib/darktable/plugins/introspection_borders.c:136 -#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../build/lib/darktable/plugins/introspection_borders.c:146 +#: ../build/lib/darktable/plugins/introspection_borders.c:285 msgid "border size" msgstr "Randgröße" -#: ../build/lib/darktable/plugins/introspection_borders.c:142 -#: ../build/lib/darktable/plugins/introspection_borders.c:273 +#: ../build/lib/darktable/plugins/introspection_borders.c:152 +#: ../build/lib/darktable/plugins/introspection_borders.c:289 msgid "horizontal offset" msgstr "horizontaler Versatz" -#: ../build/lib/darktable/plugins/introspection_borders.c:160 -#: ../build/lib/darktable/plugins/introspection_borders.c:285 +#: ../build/lib/darktable/plugins/introspection_borders.c:170 +#: ../build/lib/darktable/plugins/introspection_borders.c:301 msgid "vertical offset" msgstr "vertikaler Versatz" -#: ../build/lib/darktable/plugins/introspection_borders.c:178 -#: ../build/lib/darktable/plugins/introspection_borders.c:297 +#: ../build/lib/darktable/plugins/introspection_borders.c:188 +#: ../build/lib/darktable/plugins/introspection_borders.c:313 msgid "frame line size" msgstr "Größe der Rahmenlinie" -#: ../build/lib/darktable/plugins/introspection_borders.c:184 -#: ../build/lib/darktable/plugins/introspection_borders.c:301 +#: ../build/lib/darktable/plugins/introspection_borders.c:194 +#: ../build/lib/darktable/plugins/introspection_borders.c:317 msgid "frame line offset" msgstr "Versatz der Rahmenlinie" -#: ../build/lib/darktable/plugins/introspection_borders.c:327 ../src/gui/preferences.c:849 ../src/iop/ashift.c:6291 -#: ../src/iop/basicadj.c:632 ../src/iop/flip.c:472 ../src/iop/flip.c:474 ../src/iop/levels.c:641 -#: ../src/iop/rgblevels.c:1050 +#: ../build/lib/darktable/plugins/introspection_borders.c:218 +#: ../build/lib/darktable/plugins/introspection_borders.c:333 +msgid "basis" +msgstr "Basis" + +#: ../build/lib/darktable/plugins/introspection_borders.c:347 +#: ../build/lib/darktable/plugins/introspection_borders.c:353 +#: ../src/gui/preferences.c:847 ../src/imageio/format/jpeg.c:604 +#: ../src/iop/ashift.c:6238 ../src/iop/basicadj.c:662 ../src/iop/flip.c:470 +#: ../src/iop/flip.c:472 ../src/iop/levels.c:657 ../src/iop/rgblevels.c:1105 msgid "auto" msgstr "auto" -#: ../build/lib/darktable/plugins/introspection_borders.c:328 ../src/imageio/format/pdf.c:604 -#: ../src/libs/filtering.c:309 ../src/libs/filters/ratio.c:122 ../src/libs/print_settings.c:2519 +#: ../build/lib/darktable/plugins/introspection_borders.c:348 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:315 +#: ../src/libs/filters/ratio.c:122 ../src/libs/print_settings.c:2519 msgid "portrait" msgstr "Hochformat" -#: ../build/lib/darktable/plugins/introspection_borders.c:329 ../src/imageio/format/pdf.c:604 -#: ../src/libs/filtering.c:305 ../src/libs/filters/ratio.c:124 ../src/libs/print_settings.c:2519 +#: ../build/lib/darktable/plugins/introspection_borders.c:349 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:311 +#: ../src/libs/filters/ratio.c:124 ../src/libs/print_settings.c:2519 msgid "landscape" msgstr "Querformat" +#: ../build/lib/darktable/plugins/introspection_borders.c:354 +#: ../src/iop/relight.c:275 ../src/libs/export.c:1223 +#: ../src/libs/metadata_view.c:151 ../src/libs/print_settings.c:2537 +msgid "width" +msgstr "Breite" + +#: ../build/lib/darktable/plugins/introspection_borders.c:355 +#: ../build/lib/darktable/plugins/introspection_watermark.c:326 +#: ../src/libs/export.c:1229 ../src/libs/metadata_view.c:152 +#: ../src/libs/print_settings.c:2541 +msgid "height" +msgstr "Höhe" + +#: ../build/lib/darktable/plugins/introspection_borders.c:356 +msgid "shorter" +msgstr "kürzere Seite" + +#: ../build/lib/darktable/plugins/introspection_borders.c:357 +msgid "longer" +msgstr "Längere Seite" + #: ../build/lib/darktable/plugins/introspection_cacorrect.c:42 #: ../build/lib/darktable/plugins/introspection_cacorrect.c:91 msgid "avoid colorshift" @@ -2387,18 +2832,24 @@ msgstr "Referenzkanal" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:67 -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:132 ../src/iop/atrous.c:1522 -#: ../src/iop/bilateral.cc:350 ../src/iop/clahe.c:335 ../src/iop/dither.c:760 ../src/iop/lowpass.c:584 -#: ../src/iop/shadhi.c:675 ../src/iop/sharpen.c:440 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:132 +#: ../build/lib/darktable/plugins/introspection_lens.cc:340 +#: ../build/lib/darktable/plugins/introspection_lens.cc:501 +#: ../src/iop/atrous.c:1636 ../src/iop/bilateral.cc:352 ../src/iop/clahe.c:337 +#: ../src/iop/dither.c:762 ../src/iop/lowpass.c:597 ../src/iop/shadhi.c:710 +#: ../src/iop/sharpen.c:435 msgid "radius" msgstr "Radius" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:73 #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:136 #: ../build/lib/darktable/plugins/introspection_highlights.c:137 -#: ../build/lib/darktable/plugins/introspection_highlights.c:240 ../src/iop/bloom.c:376 -#: ../src/iop/denoiseprofile.c:3818 ../src/iop/grain.c:584 ../src/iop/hazeremoval.c:201 ../src/iop/hotpixels.c:388 -#: ../src/iop/nlmeans.c:460 ../src/iop/velvia.c:279 +#: ../build/lib/darktable/plugins/introspection_highlights.c:240 +#: ../build/lib/darktable/plugins/introspection_lens.cc:334 +#: ../build/lib/darktable/plugins/introspection_lens.cc:497 +#: ../src/iop/bloom.c:372 ../src/iop/denoiseprofile.c:3822 +#: ../src/iop/grain.c:602 ../src/iop/hazeremoval.c:203 +#: ../src/iop/hotpixels.c:467 ../src/iop/nlmeans.c:463 ../src/iop/velvia.c:288 msgid "strength" msgstr "Stärke" @@ -2412,32 +2863,42 @@ msgid "very large chromatic aberration" msgstr "sehr starke Chromatische Aberration" -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:158 ../src/common/collection.c:1507 -#: ../src/common/color_vocabulary.c:232 ../src/common/colorlabels.c:334 ../src/develop/blend_gui.c:2330 -#: ../src/develop/blend_gui.c:2378 ../src/develop/lightroom.c:834 ../src/gui/gtk.c:3137 ../src/gui/guides.c:730 -#: ../src/iop/bilateral.cc:354 ../src/iop/channelmixer.c:618 ../src/iop/channelmixer.c:628 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/colorzones.c:2263 ../src/iop/temperature.c:1935 -#: ../src/iop/temperature.c:2129 ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:260 -#: ../src/libs/histogram.c:2397 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:158 +#: ../src/common/collection.c:1374 ../src/common/color_vocabulary.c:232 +#: ../src/common/colorlabels.c:333 ../src/develop/blend_gui.c:2346 +#: ../src/develop/blend_gui.c:2394 ../src/develop/lightroom.c:887 +#: ../src/gui/gtk.c:3183 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:356 +#: ../src/iop/channelmixer.c:637 ../src/iop/channelmixer.c:647 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/colorzones.c:2499 +#: ../src/iop/temperature.c:1912 ../src/iop/temperature.c:2094 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:260 +#: ../src/libs/histogram.c:2724 msgid "red" msgstr "Rot" -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:159 ../src/common/collection.c:1511 -#: ../src/common/color_vocabulary.c:277 ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2336 -#: ../src/develop/blend_gui.c:2384 ../src/develop/lightroom.c:838 ../src/gui/gtk.c:3138 ../src/gui/guides.c:731 -#: ../src/iop/bilateral.cc:359 ../src/iop/channelmixer.c:619 ../src/iop/channelmixer.c:634 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/colorzones.c:2266 ../src/iop/temperature.c:1919 -#: ../src/iop/temperature.c:1937 ../src/iop/temperature.c:2130 ../src/libs/collect.c:1791 -#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2389 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:159 +#: ../src/common/collection.c:1378 ../src/common/color_vocabulary.c:277 +#: ../src/common/colorlabels.c:335 ../src/develop/blend_gui.c:2352 +#: ../src/develop/blend_gui.c:2400 ../src/develop/lightroom.c:891 +#: ../src/gui/gtk.c:3184 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:361 +#: ../src/iop/channelmixer.c:638 ../src/iop/channelmixer.c:653 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/colorzones.c:2502 +#: ../src/iop/temperature.c:1896 ../src/iop/temperature.c:1914 +#: ../src/iop/temperature.c:2095 ../src/libs/collect.c:1916 +#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2715 msgid "green" msgstr "Grün" -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:160 ../src/common/collection.c:1513 -#: ../src/common/color_vocabulary.c:324 ../src/common/colorlabels.c:337 ../src/develop/blend_gui.c:2342 -#: ../src/develop/blend_gui.c:2390 ../src/develop/lightroom.c:840 ../src/gui/gtk.c:3139 ../src/iop/bilateral.cc:364 -#: ../src/iop/channelmixer.c:620 ../src/iop/channelmixer.c:640 ../src/iop/channelmixerrgb.c:4611 -#: ../src/iop/colorzones.c:2268 ../src/iop/temperature.c:1939 ../src/iop/temperature.c:2131 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:263 ../src/libs/histogram.c:2381 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:160 +#: ../src/common/collection.c:1380 ../src/common/color_vocabulary.c:324 +#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2358 +#: ../src/develop/blend_gui.c:2406 ../src/develop/lightroom.c:893 +#: ../src/gui/gtk.c:3185 ../src/iop/bilateral.cc:366 +#: ../src/iop/channelmixer.c:639 ../src/iop/channelmixer.c:659 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/colorzones.c:2504 +#: ../src/iop/temperature.c:1916 ../src/iop/temperature.c:2096 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:263 +#: ../src/libs/histogram.c:2706 msgid "blue" msgstr "Blau" @@ -2543,7 +3004,8 @@ msgid "Planckian (black body)" msgstr "Schwarzkörper" -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:514 ../src/common/iop_order.c:59 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:514 +#: ../src/common/iop_order.c:59 msgid "custom" msgstr "benutzerdefiniert" @@ -2678,26 +3140,34 @@ msgstr "Version 3 (2021)" #: ../build/lib/darktable/plugins/introspection_clipping.c:142 -#: ../build/lib/darktable/plugins/introspection_clipping.c:303 ../build/lib/darktable/plugins/introspection_crop.c:61 -#: ../build/lib/darktable/plugins/introspection_crop.c:134 ../src/gui/gtk.c:1141 ../src/iop/atrous.c:1518 +#: ../build/lib/darktable/plugins/introspection_clipping.c:303 +#: ../build/lib/darktable/plugins/introspection_crop.c:61 +#: ../build/lib/darktable/plugins/introspection_crop.c:134 +#: ../src/gui/gtk.c:1234 ../src/iop/atrous.c:1632 msgid "left" msgstr "links" #: ../build/lib/darktable/plugins/introspection_clipping.c:148 -#: ../build/lib/darktable/plugins/introspection_clipping.c:307 ../build/lib/darktable/plugins/introspection_crop.c:67 -#: ../build/lib/darktable/plugins/introspection_crop.c:138 ../src/gui/accelerators.c:113 ../src/gui/gtk.c:1155 +#: ../build/lib/darktable/plugins/introspection_clipping.c:307 +#: ../build/lib/darktable/plugins/introspection_crop.c:67 +#: ../build/lib/darktable/plugins/introspection_crop.c:138 +#: ../src/gui/accelerators.c:131 ../src/gui/gtk.c:1240 msgid "top" msgstr "oben" #: ../build/lib/darktable/plugins/introspection_clipping.c:154 -#: ../build/lib/darktable/plugins/introspection_clipping.c:311 ../build/lib/darktable/plugins/introspection_crop.c:73 -#: ../build/lib/darktable/plugins/introspection_crop.c:142 ../src/gui/gtk.c:1148 ../src/iop/atrous.c:1517 +#: ../build/lib/darktable/plugins/introspection_clipping.c:311 +#: ../build/lib/darktable/plugins/introspection_crop.c:73 +#: ../build/lib/darktable/plugins/introspection_crop.c:142 +#: ../src/gui/gtk.c:1237 ../src/iop/atrous.c:1631 msgid "right" msgstr "rechts" #: ../build/lib/darktable/plugins/introspection_clipping.c:160 -#: ../build/lib/darktable/plugins/introspection_clipping.c:315 ../build/lib/darktable/plugins/introspection_crop.c:79 -#: ../build/lib/darktable/plugins/introspection_crop.c:146 ../src/gui/accelerators.c:114 ../src/gui/gtk.c:1162 +#: ../build/lib/darktable/plugins/introspection_clipping.c:315 +#: ../build/lib/darktable/plugins/introspection_crop.c:79 +#: ../build/lib/darktable/plugins/introspection_crop.c:146 +#: ../src/gui/accelerators.c:132 ../src/gui/gtk.c:1243 msgid "bottom" msgstr "unten" @@ -2709,7 +3179,7 @@ #: ../build/lib/darktable/plugins/introspection_colorbalance.c:126 #: ../build/lib/darktable/plugins/introspection_colorbalance.c:211 msgid "contrast fulcrum" -msgstr "Kontraststützpunkt" +msgstr "Kontrast Ansatzpunkt" #: ../build/lib/darktable/plugins/introspection_colorbalance.c:132 #: ../build/lib/darktable/plugins/introspection_colorbalance.c:215 @@ -2735,10 +3205,12 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:465 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:477 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:489 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:501 ../src/develop/blend_gui.c:2356 -#: ../src/develop/blend_gui.c:2404 ../src/iop/atrous.c:1667 ../src/iop/channelmixerrgb.c:4457 -#: ../src/iop/channelmixerrgb.c:4573 ../src/iop/colorbalancergb.c:1895 ../src/iop/colorzones.c:2402 -#: ../src/iop/nlmeans.c:468 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:501 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 +#: ../src/develop/blend_gui.c:2372 ../src/develop/blend_gui.c:2420 +#: ../src/iop/atrous.c:1801 ../src/iop/channelmixerrgb.c:4525 +#: ../src/iop/channelmixerrgb.c:4641 ../src/iop/colorbalancergb.c:1966 +#: ../src/iop/colorzones.c:2645 ../src/iop/nlmeans.c:471 msgid "chroma" msgstr "Chrominanz" @@ -2757,10 +3229,12 @@ #: ../build/lib/darktable/plugins/introspection_splittoning.c:61 #: ../build/lib/darktable/plugins/introspection_splittoning.c:73 #: ../build/lib/darktable/plugins/introspection_splittoning.c:134 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:142 ../src/develop/blend_gui.c:2315 -#: ../src/develop/blend_gui.c:2349 ../src/develop/blend_gui.c:2411 ../src/iop/channelmixer.c:615 -#: ../src/iop/channelmixerrgb.c:4450 ../src/iop/channelmixerrgb.c:4565 ../src/iop/colorbalance.c:2042 -#: ../src/iop/colorize.c:330 ../src/iop/colorreconstruction.c:1240 ../src/iop/colorzones.c:2403 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:142 +#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2365 +#: ../src/develop/blend_gui.c:2427 ../src/iop/channelmixer.c:634 +#: ../src/iop/channelmixerrgb.c:4518 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/colorbalance.c:2017 ../src/iop/colorize.c:343 +#: ../src/iop/colorreconstruction.c:1249 ../src/iop/colorzones.c:2646 msgid "hue" msgstr "Farbton" @@ -2772,7 +3246,7 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:304 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:513 msgid "white fulcrum" -msgstr "Weiß Stützpunkt" +msgstr "Weiß Ansatzpunkt" #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:310 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:517 @@ -2786,8 +3260,10 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:549 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:569 #: ../build/lib/darktable/plugins/introspection_toneequal.c:156 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:297 ../src/iop/bilat.c:469 ../src/iop/colorbalance.c:2099 -#: ../src/iop/negadoctor.c:915 ../src/iop/shadhi.c:671 ../src/iop/splittoning.c:507 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:297 +#: ../src/iop/bilat.c:479 ../src/iop/colorbalance.c:2074 +#: ../src/iop/negadoctor.c:934 ../src/iop/shadhi.c:706 +#: ../src/iop/splittoning.c:503 msgid "shadows" msgstr "Schatten" @@ -2798,8 +3274,10 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:541 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:561 #: ../build/lib/darktable/plugins/introspection_toneequal.c:180 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:313 ../src/iop/bilat.c:463 ../src/iop/colorbalance.c:2101 -#: ../src/iop/monochrome.c:561 ../src/iop/shadhi.c:672 ../src/iop/splittoning.c:514 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:313 +#: ../src/iop/bilat.c:473 ../src/iop/colorbalance.c:2076 +#: ../src/iop/monochrome.c:583 ../src/iop/shadhi.c:707 +#: ../src/iop/splittoning.c:510 msgid "highlights" msgstr "Lichter" @@ -2815,12 +3293,14 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:545 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:565 #: ../build/lib/darktable/plugins/introspection_toneequal.c:168 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:305 ../src/iop/colorbalance.c:2100 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:305 +#: ../src/iop/colorbalance.c:2075 msgid "mid-tones" msgstr "Mitteltöne" #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:340 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:537 ../src/iop/filmic.c:1576 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:537 +#: ../src/iop/filmic.c:1601 msgid "global saturation" msgstr "Sättigung Global" @@ -2837,7 +3317,7 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:394 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:573 msgid "mask middle-gray fulcrum" -msgstr "Mittelgraureferenz für Maskierung" +msgstr "Mittelgrau Ansatzpunkt für Maskierung" #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:400 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:577 @@ -2847,14 +3327,16 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:406 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:581 msgid "contrast gray fulcrum" -msgstr "Kontrast-Graustützpunkt" +msgstr "Kontrast Grau Ansatzpunkt" #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:412 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:585 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:64 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:137 ../src/gui/guides.c:740 ../src/iop/basicadj.c:607 -#: ../src/iop/bilat.c:458 ../src/iop/colisa.c:304 ../src/iop/colorbalance.c:1947 ../src/iop/colorbalance.c:1953 -#: ../src/iop/filmic.c:1548 ../src/iop/filmicrgb.c:4551 ../src/iop/lowpass.c:586 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:116 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:237 +#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:637 ../src/iop/bilat.c:468 +#: ../src/iop/colisa.c:298 ../src/iop/colorbalance.c:1922 +#: ../src/iop/colorbalance.c:1928 ../src/iop/filmic.c:1573 +#: ../src/iop/filmicrgb.c:4615 ../src/iop/lowpass.c:599 msgid "contrast" msgstr "Kontrast" @@ -2881,31 +3363,35 @@ msgid "blue-yellow contrast" msgstr "Blau-Gelb-Kontrast" -#: ../build/lib/darktable/plugins/introspection_colorin.c:148 -#: ../build/lib/darktable/plugins/introspection_colorin.c:231 +#: ../build/lib/darktable/plugins/introspection_colorin.c:150 +#: ../build/lib/darktable/plugins/introspection_colorin.c:233 msgid "gamut clipping" msgstr "Gamut beschneiden" -#: ../build/lib/darktable/plugins/introspection_colorin.c:301 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:201 ../src/common/colorspaces.c:1251 -#: ../src/common/colorspaces.c:1484 ../src/libs/print_settings.c:1356 +#: ../build/lib/darktable/plugins/introspection_colorin.c:304 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:312 +#: ../src/common/colorspaces.c:1410 ../src/common/colorspaces.c:1700 +#: ../src/libs/print_settings.c:1356 msgid "sRGB" msgstr "sRGB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:302 ../src/common/colorspaces.c:1260 -#: ../src/common/colorspaces.c:1486 ../src/libs/print_settings.c:1363 +#: ../build/lib/darktable/plugins/introspection_colorin.c:305 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:311 +#: ../src/common/colorspaces.c:1421 ../src/common/colorspaces.c:1702 +#: ../src/libs/print_settings.c:1363 msgid "Adobe RGB (compatible)" msgstr "Adobe RGB (kompatibel)" -#: ../build/lib/darktable/plugins/introspection_colorin.c:303 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 ../src/common/colorspaces.c:1265 -#: ../src/common/colorspaces.c:1488 +#: ../build/lib/darktable/plugins/introspection_colorin.c:306 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 +#: ../src/common/colorspaces.c:1428 ../src/common/colorspaces.c:1704 msgid "linear Rec709 RGB" msgstr "lineares Rec709-RGB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:304 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 ../src/common/colorspaces.c:1274 -#: ../src/common/colorspaces.c:1490 +#: ../build/lib/darktable/plugins/introspection_colorin.c:307 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:206 +#: ../src/common/colorspaces.c:1442 ../src/common/colorspaces.c:1706 msgid "linear Rec2020 RGB" msgstr "lineares Rec2020-RGB" @@ -2934,7 +3420,8 @@ #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:62 #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:127 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:45 -#: ../build/lib/darktable/plugins/introspection_tonemap.cc:92 ../src/iop/shadhi.c:686 +#: ../build/lib/darktable/plugins/introspection_tonemap.cc:92 +#: ../src/iop/shadhi.c:721 msgid "spatial extent" msgstr "räumliche Ausdehnung" @@ -2943,7 +3430,8 @@ msgid "range extent" msgstr "Werte-Ausdehnung" -#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:154 ../src/iop/channelmixerrgb.c:4669 +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:154 +#: ../src/iop/channelmixerrgb.c:4737 msgid "saturated colors" msgstr "gesättigte Farben" @@ -2955,8 +3443,9 @@ #. mix slider #: ../build/lib/darktable/plugins/introspection_colorzones.c:138 #: ../build/lib/darktable/plugins/introspection_colorzones.c:233 -#: ../build/lib/darktable/plugins/introspection_soften.c:66 ../build/lib/darktable/plugins/introspection_soften.c:121 -#: ../src/iop/atrous.c:1689 +#: ../build/lib/darktable/plugins/introspection_soften.c:66 +#: ../build/lib/darktable/plugins/introspection_soften.c:121 +#: ../src/iop/atrous.c:1835 msgid "mix" msgstr "einblenden" @@ -2966,29 +3455,19 @@ msgid "process mode" msgstr "Modus" -#: ../build/lib/darktable/plugins/introspection_colorzones.c:255 ../src/develop/blend_gui.c:2294 -#: ../src/iop/channelmixer.c:617 ../src/iop/channelmixerrgb.c:4556 ../src/iop/colorchecker.c:1448 -#: ../src/iop/colorize.c:349 ../src/iop/colorzones.c:2401 ../src/iop/exposure.c:1239 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:255 +#: ../src/develop/blend_gui.c:2310 ../src/iop/channelmixer.c:636 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/colorchecker.c:1453 +#: ../src/iop/colorize.c:362 ../src/iop/colorzones.c:2644 +#: ../src/iop/exposure.c:1257 msgid "lightness" msgstr "Helligkeit" -#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 ../src/develop/blend_gui.c:2310 -#: ../src/iop/basicadj.c:624 ../src/iop/channelmixer.c:616 ../src/iop/colisa.c:306 ../src/iop/colorbalance.c:2059 -#: ../src/iop/colorbalancergb.c:1919 ../src/iop/colorchecker.c:1483 ../src/iop/colorcontrast.c:90 -#: ../src/iop/colorcorrection.c:275 ../src/iop/colorize.c:343 ../src/iop/lowpass.c:588 ../src/iop/soften.c:373 -#: ../src/iop/velvia.c:84 ../src/iop/vibrance.c:72 ../src/iop/vignette.c:971 -msgid "saturation" -msgstr "Sättigung" - # ist das eine passende Übersetzung? -#: ../build/lib/darktable/plugins/introspection_colorzones.c:267 ../src/iop/atrous.c:1309 ../src/iop/atrous.c:1313 -#: ../src/iop/denoiseprofile.c:3527 ../src/iop/rawdenoise.c:755 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:267 +#: ../src/iop/atrous.c:1410 ../src/iop/atrous.c:1414 +#: ../src/iop/denoiseprofile.c:3531 ../src/iop/rawdenoise.c:771 +#: ../src/iop/sigmoid.c:292 msgid "smooth" msgstr "gleichmäßig" @@ -3004,8 +3483,10 @@ #: ../build/lib/darktable/plugins/introspection_defringe.c:53 #: ../build/lib/darktable/plugins/introspection_defringe.c:106 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:230 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:435 ../src/iop/atrous.c:1572 ../src/iop/bloom.c:372 -#: ../src/iop/colorreconstruction.c:1236 ../src/iop/hotpixels.c:384 ../src/iop/sharpen.c:449 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:435 +#: ../src/iop/atrous.c:1695 ../src/iop/bloom.c:368 +#: ../src/iop/colorreconstruction.c:1245 ../src/iop/hotpixels.c:463 +#: ../src/iop/sharpen.c:444 msgid "threshold" msgstr "Schwellwert" @@ -3046,7 +3527,8 @@ #: ../build/lib/darktable/plugins/introspection_demosaic.c:108 #: ../build/lib/darktable/plugins/introspection_demosaic.c:175 -#: ../build/lib/darktable/plugins/introspection_dither.c:73 ../build/lib/darktable/plugins/introspection_dither.c:152 +#: ../build/lib/darktable/plugins/introspection_dither.c:73 +#: ../build/lib/darktable/plugins/introspection_dither.c:152 #: ../build/lib/darktable/plugins/introspection_highlights.c:119 #: ../build/lib/darktable/plugins/introspection_highlights.c:228 msgid "method" @@ -3139,8 +3621,9 @@ msgstr "Markesteijn 3-mal + VNG" #. history -#: ../build/lib/darktable/plugins/introspection_demosaic.c:232 ../src/common/collection.c:1526 -#: ../src/libs/collect.c:1745 ../src/libs/filters/history.c:38 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:232 +#: ../src/common/collection.c:1394 ../src/libs/collect.c:1863 +#: ../src/libs/filters/history.c:38 msgid "basic" msgstr "einfach" @@ -3212,12 +3695,9 @@ msgid "upgrade profiled transform" msgstr "Profiltransformation aktualisieren" -#. -#. * Color mode combo box -#. #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:257 -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:388 ../src/imageio/format/avif.c:786 -#: ../src/libs/colorpicker.c:584 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:388 +#: ../src/libs/colorpicker.c:659 msgid "color mode" msgstr "Farbmodus" @@ -3241,8 +3721,8 @@ msgid "compute variance" msgstr "Varianz berechnen" -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:410 ../src/libs/colorpicker.c:51 -#: ../src/libs/colorpicker.c:266 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:410 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:292 msgid "RGB" msgstr "RGB" @@ -3252,8 +3732,8 @@ #. two more sharpness (standard & strong) #: ../build/lib/darktable/plugins/introspection_diffuse.c:123 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:248 ../src/iop/atrous.c:1564 ../src/iop/diffuse.c:630 -#: ../src/iop/highpass.c:381 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:248 +#: ../src/iop/atrous.c:1685 ../src/iop/diffuse.c:657 ../src/iop/highpass.c:376 msgid "sharpness" msgstr "Schärfe" @@ -3418,19 +3898,22 @@ msgstr "automatisch" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:212 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:423 ../src/iop/filmic.c:1489 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:423 +#: ../src/iop/filmic.c:1514 msgid "middle gray luminance" msgstr "Luminanz mittleres Grau" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:218 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:427 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:97 -#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:166 ../src/iop/filmic.c:1514 +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:166 +#: ../src/iop/filmic.c:1539 msgid "black relative exposure" msgstr "schwarz relative Belichtung" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:224 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:431 ../src/iop/filmic.c:1501 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:431 +#: ../src/iop/filmic.c:1526 msgid "white relative exposure" msgstr "weiß relative Belichtung" @@ -3460,29 +3943,34 @@ msgstr "Skalierung des Dynamikbereichs" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:266 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:459 ../src/iop/filmic.c:1646 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:459 +#: ../src/iop/filmic.c:1671 msgid "target middle gray" msgstr "Zielwert für mittleres Grau" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:272 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:463 ../src/iop/filmic.c:1637 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:463 +#: ../src/iop/filmic.c:1662 msgid "target black luminance" msgstr "Zielwert für Schwarz-Luminanz" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:278 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:467 ../src/iop/filmic.c:1655 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:467 +#: ../src/iop/filmic.c:1680 msgid "target white luminance" msgstr "Zielwert für Weiß-Luminanz" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:284 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:471 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:69 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:140 ../src/libs/masks.c:106 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:140 +#: ../src/libs/masks.c:107 msgid "hardness" msgstr "Härte" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:302 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:483 ../src/iop/filmic.c:1586 ../src/iop/filmicrgb.c:4729 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:483 +#: ../src/iop/filmic.c:1611 ../src/iop/filmicrgb.c:4793 msgid "extreme luminance saturation" msgstr "Sättigung bei extremer Luminanz" @@ -3552,10 +4040,12 @@ msgstr "Spitzlicht-Rekonstruktion aktivieren" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:549 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:371 ../src/common/database.c:2785 -#: ../src/common/variables.c:705 ../src/develop/imageop_gui.c:209 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:371 +#: ../src/common/variables.c:714 ../src/develop/imageop_gui.c:209 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 msgid "no" msgstr "nein" @@ -3645,7 +4135,8 @@ msgid "reinhard" msgstr "Reinhard" -#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:152 ../src/iop/filmic.c:162 +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:152 +#: ../src/iop/filmic.c:162 msgid "filmic" msgstr "Filmic" @@ -3658,18 +4149,38 @@ msgid "density" msgstr "Dichte" -#: ../build/lib/darktable/plugins/introspection_grain.c:58 ../build/lib/darktable/plugins/introspection_grain.c:117 -#: ../src/iop/bilat.c:450 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 +#: ../src/develop/blend_gui.c:2326 ../src/iop/basicadj.c:654 +#: ../src/iop/channelmixer.c:635 ../src/iop/colisa.c:300 +#: ../src/iop/colorbalance.c:2034 ../src/iop/colorbalancergb.c:1990 +#: ../src/iop/colorchecker.c:1488 ../src/iop/colorcontrast.c:82 +#: ../src/iop/colorcorrection.c:268 ../src/iop/colorize.c:356 +#: ../src/iop/lowpass.c:601 ../src/iop/soften.c:368 ../src/iop/velvia.c:75 +#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:1058 +msgid "saturation" +msgstr "Sättigung" + +#: ../build/lib/darktable/plugins/introspection_grain.c:58 +#: ../build/lib/darktable/plugins/introspection_grain.c:117 +#: ../src/iop/bilat.c:460 msgid "coarseness" msgstr "Korngröße" -#: ../build/lib/darktable/plugins/introspection_grain.c:70 ../build/lib/darktable/plugins/introspection_grain.c:125 -#: ../build/lib/darktable/plugins/introspection_velvia.c:44 ../build/lib/darktable/plugins/introspection_velvia.c:91 +#: ../build/lib/darktable/plugins/introspection_grain.c:70 +#: ../build/lib/darktable/plugins/introspection_grain.c:125 +#: ../build/lib/darktable/plugins/introspection_velvia.c:44 +#: ../build/lib/darktable/plugins/introspection_velvia.c:91 msgid "mid-tones bias" msgstr "Mittenbetonung" #: ../build/lib/darktable/plugins/introspection_highlights.c:143 -#: ../build/lib/darktable/plugins/introspection_highlights.c:244 ../src/views/darkroom.c:2406 +#: ../build/lib/darktable/plugins/introspection_highlights.c:244 +#: ../src/views/darkroom.c:2245 msgid "clipping threshold" msgstr "Abschneide-Schwellwert" @@ -3805,149 +4316,172 @@ msgid "detect by 3 neighbors" msgstr "durch 3 Nachbarpixel erkennen" -#: ../build/lib/darktable/plugins/introspection_lens.cc:162 ../build/lib/darktable/plugins/introspection_lens.cc:337 +#: ../build/lib/darktable/plugins/introspection_lens.cc:190 +#: ../build/lib/darktable/plugins/introspection_lens.cc:401 msgid "correction method" msgstr "Korrekturmethode" #. Page CORRECTIONS -#: ../build/lib/darktable/plugins/introspection_lens.cc:168 ../build/lib/darktable/plugins/introspection_lens.cc:341 -#: ../src/iop/negadoctor.c:900 +#: ../build/lib/darktable/plugins/introspection_lens.cc:196 +#: ../build/lib/darktable/plugins/introspection_lens.cc:405 +#: ../src/iop/negadoctor.c:919 msgid "corrections" msgstr "Korrekturen" #. mode choice -#. Add check to control whether the style is to replace or append the current module -#: ../build/lib/darktable/plugins/introspection_lens.cc:174 ../build/lib/darktable/plugins/introspection_lens.cc:345 +#: ../build/lib/darktable/plugins/introspection_lens.cc:202 +#: ../build/lib/darktable/plugins/introspection_lens.cc:409 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:128 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:219 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:51 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:118 ../src/iop/bilat.c:428 ../src/iop/colorbalance.c:1909 -#: ../src/iop/denoiseprofile.c:3806 ../src/iop/exposure.c:1157 ../src/iop/levels.c:684 ../src/iop/profile_gamma.c:668 -#: ../src/libs/copy_history.c:399 ../src/libs/export.c:1262 ../src/libs/image.c:597 ../src/libs/print_settings.c:2875 -#: ../src/libs/styles.c:846 ../src/views/darkroom.c:2387 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:118 +#: ../src/develop/blend_gui.c:3546 ../src/iop/bilat.c:438 +#: ../src/iop/colorbalance.c:1884 ../src/iop/denoiseprofile.c:3810 +#: ../src/iop/exposure.c:1175 ../src/iop/levels.c:700 +#: ../src/iop/profile_gamma.c:682 ../src/libs/copy_history.c:399 +#: ../src/libs/export.c:1376 ../src/libs/image.c:666 +#: ../src/libs/print_settings.c:2875 ../src/libs/styles.c:850 +#: ../src/views/darkroom.c:2226 msgid "mode" msgstr "Modus" -#: ../build/lib/darktable/plugins/introspection_lens.cc:210 ../build/lib/darktable/plugins/introspection_lens.cc:369 -#: ../src/iop/lens.cc:3820 +#: ../build/lib/darktable/plugins/introspection_lens.cc:238 +#: ../build/lib/darktable/plugins/introspection_lens.cc:433 +#: ../src/iop/lens.cc:4474 msgid "target geometry" msgstr "Zielgeometrie" -#: ../build/lib/darktable/plugins/introspection_lens.cc:240 ../build/lib/darktable/plugins/introspection_lens.cc:389 +#: ../build/lib/darktable/plugins/introspection_lens.cc:268 +#: ../build/lib/darktable/plugins/introspection_lens.cc:453 msgid "TCA overwrite" msgstr "TCA Übersteuerung" -#: ../build/lib/darktable/plugins/introspection_lens.cc:246 ../build/lib/darktable/plugins/introspection_lens.cc:393 +#: ../build/lib/darktable/plugins/introspection_lens.cc:274 +#: ../build/lib/darktable/plugins/introspection_lens.cc:298 +#: ../build/lib/darktable/plugins/introspection_lens.cc:457 +#: ../build/lib/darktable/plugins/introspection_lens.cc:473 msgid "TCA red" msgstr "TCA Rot" -#: ../build/lib/darktable/plugins/introspection_lens.cc:252 ../build/lib/darktable/plugins/introspection_lens.cc:397 +#: ../build/lib/darktable/plugins/introspection_lens.cc:280 +#: ../build/lib/darktable/plugins/introspection_lens.cc:304 +#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:477 msgid "TCA blue" msgstr "TCA Blau" -#: ../build/lib/darktable/plugins/introspection_lens.cc:258 ../build/lib/darktable/plugins/introspection_lens.cc:401 -msgid "distortion fine-tune" -msgstr "Verzeichnung anpassen" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:264 ../build/lib/darktable/plugins/introspection_lens.cc:405 -msgid "vignetting fine-tune" -msgstr "Vignettierung anpassen" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:270 ../build/lib/darktable/plugins/introspection_lens.cc:409 -msgid "TCA red fine-tune" -msgstr "TCA Rot Korrektur" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:276 ../build/lib/darktable/plugins/introspection_lens.cc:413 -msgid "TCA blue fine-tune" -msgstr "TCA Blau Korrektur" +#: ../build/lib/darktable/plugins/introspection_lens.cc:286 +#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +msgid "distortion" +msgstr "Verzeichnung" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:292 +#: ../build/lib/darktable/plugins/introspection_lens.cc:469 +#: ../src/iop/vignette.c:114 +msgid "vignetting" +msgstr "Vignettierung" -#: ../build/lib/darktable/plugins/introspection_lens.cc:282 ../build/lib/darktable/plugins/introspection_lens.cc:417 +#: ../build/lib/darktable/plugins/introspection_lens.cc:310 +#: ../build/lib/darktable/plugins/introspection_lens.cc:481 msgid "scale fine-tune" msgstr "Skalierung anpassen" -#: ../build/lib/darktable/plugins/introspection_lens.cc:294 ../build/lib/darktable/plugins/introspection_lens.cc:425 +#: ../build/lib/darktable/plugins/introspection_lens.cc:322 +#: ../build/lib/darktable/plugins/introspection_lens.cc:489 msgid "image scale" msgstr "Skalierung" -#: ../build/lib/darktable/plugins/introspection_lens.cc:439 +#: ../build/lib/darktable/plugins/introspection_lens.cc:346 +#: ../build/lib/darktable/plugins/introspection_lens.cc:505 +msgid "steepness" +msgstr "Steigung" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:527 msgid "embedded metadata" msgstr "eingebettete Metadaten" -#: ../build/lib/darktable/plugins/introspection_lens.cc:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:528 msgid "Lensfun database" msgstr "Lensfun Datenbank" +#: ../build/lib/darktable/plugins/introspection_lens.cc:529 +msgid "only manual vignette" +msgstr "nur manuelle Vignettierung" + #. get nice text for bounds #. Side-border hide/show -#: ../build/lib/darktable/plugins/introspection_lens.cc:445 ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2367 -#: ../src/gui/accelerators.c:2447 ../src/gui/gtk.c:1204 ../src/gui/gtk.c:3136 ../src/imageio/format/pdf.c:645 -#: ../src/iop/denoiseprofile.c:3709 ../src/iop/rawdenoise.c:893 ../src/libs/collect.c:3066 -#: ../src/libs/filtering.c:1459 ../src/libs/filters/colors.c:157 ../src/libs/filters/colors.c:265 -#: ../src/libs/filters/rating.c:211 +#: ../build/lib/darktable/plugins/introspection_lens.cc:534 +#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2592 +#: ../src/gui/accelerators.c:2674 ../src/gui/gtk.c:1282 ../src/gui/gtk.c:3182 +#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3713 +#: ../src/iop/rawdenoise.c:909 ../src/libs/collect.c:3413 +#: ../src/libs/filtering.c:1521 ../src/libs/filters/colors.c:157 +#: ../src/libs/filters/colors.c:265 ../src/libs/filters/rating.c:211 msgid "all" msgstr "alles" -#: ../build/lib/darktable/plugins/introspection_lens.cc:446 +#: ../build/lib/darktable/plugins/introspection_lens.cc:535 msgid "distortion & TCA" msgstr "Verzeichnung & TCA" -#: ../build/lib/darktable/plugins/introspection_lens.cc:447 +#: ../build/lib/darktable/plugins/introspection_lens.cc:536 msgid "distortion & vignetting" msgstr "Verzeichnung & Vignettierung" -#: ../build/lib/darktable/plugins/introspection_lens.cc:448 +#: ../build/lib/darktable/plugins/introspection_lens.cc:537 msgid "TCA & vignetting" msgstr "TCA & Vignettierung" -#: ../build/lib/darktable/plugins/introspection_lens.cc:449 +#: ../build/lib/darktable/plugins/introspection_lens.cc:538 msgid "only distortion" msgstr "nur Verzeichnung" -#: ../build/lib/darktable/plugins/introspection_lens.cc:450 +#: ../build/lib/darktable/plugins/introspection_lens.cc:539 msgid "only TCA" msgstr "nur TCA" -#: ../build/lib/darktable/plugins/introspection_lens.cc:451 +#: ../build/lib/darktable/plugins/introspection_lens.cc:540 msgid "only vignetting" msgstr "nur Vignettierung" -#: ../build/lib/darktable/plugins/introspection_lens.cc:455 ../src/libs/modulegroups.c:2318 +#: ../build/lib/darktable/plugins/introspection_lens.cc:544 +#: ../src/libs/modulegroups.c:2302 msgid "correct" msgstr "korrigieren" -#: ../build/lib/darktable/plugins/introspection_lens.cc:456 +#: ../build/lib/darktable/plugins/introspection_lens.cc:545 msgid "distort" msgstr "verzeichnen" -#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:550 msgid "rectilinear" msgstr "geradlinig" -#: ../build/lib/darktable/plugins/introspection_lens.cc:462 +#: ../build/lib/darktable/plugins/introspection_lens.cc:551 msgid "fisheye" msgstr "Fischauge" -#: ../build/lib/darktable/plugins/introspection_lens.cc:463 +#: ../build/lib/darktable/plugins/introspection_lens.cc:552 msgid "panoramic" msgstr "Panorama" -#: ../build/lib/darktable/plugins/introspection_lens.cc:464 +#: ../build/lib/darktable/plugins/introspection_lens.cc:553 msgid "equirectangular" msgstr "äquirektangulär" -#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +#: ../build/lib/darktable/plugins/introspection_lens.cc:554 msgid "orthographic" msgstr "orthografisch" -#: ../build/lib/darktable/plugins/introspection_lens.cc:466 +#: ../build/lib/darktable/plugins/introspection_lens.cc:555 msgid "stereographic" msgstr "winkeltreu" -#: ../build/lib/darktable/plugins/introspection_lens.cc:467 +#: ../build/lib/darktable/plugins/introspection_lens.cc:556 msgid "equisolid angle" msgstr "flächentreu" -#: ../build/lib/darktable/plugins/introspection_lens.cc:468 +#: ../build/lib/darktable/plugins/introspection_lens.cc:557 msgid "Thoby fisheye" msgstr "Thoby-Fischauge" @@ -3956,10 +4490,12 @@ msgstr "ungültig" #. move left/right/up/down -#: ../build/lib/darktable/plugins/introspection_liquify.c:429 ../src/views/darkroom.c:2282 -#: ../src/views/darkroom.c:2676 ../src/views/darkroom.c:2679 ../src/views/lighttable.c:765 -#: ../src/views/lighttable.c:774 ../src/views/lighttable.c:1246 ../src/views/lighttable.c:1250 -#: ../src/views/lighttable.c:1254 ../src/views/lighttable.c:1258 ../src/views/lighttable.c:1262 +#: ../build/lib/darktable/plugins/introspection_liquify.c:429 +#: ../src/views/darkroom.c:2121 ../src/views/darkroom.c:2522 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:765 +#: ../src/views/lighttable.c:774 ../src/views/lighttable.c:1246 +#: ../src/views/lighttable.c:1250 ../src/views/lighttable.c:1254 +#: ../src/views/lighttable.c:1258 ../src/views/lighttable.c:1262 msgid "move" msgstr "verschieben" @@ -3967,8 +4503,9 @@ msgid "line" msgstr "Linie" -#: ../build/lib/darktable/plugins/introspection_liquify.c:431 ../src/iop/basecurve.c:2186 ../src/iop/rgbcurve.c:1387 -#: ../src/iop/tonecurve.c:1149 +#: ../build/lib/darktable/plugins/introspection_liquify.c:431 +#: ../src/iop/basecurve.c:2207 ../src/iop/rgbcurve.c:1387 +#: ../src/iop/tonecurve.c:1171 msgid "curve" msgstr "Kurve" @@ -4005,29 +4542,35 @@ msgid "bilateral filter" msgstr "bilateralem Filter" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:76 ../build/lib/darktable/plugins/introspection_lut3d.c:163 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:77 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:164 msgid "application color space" msgstr "Anwendungsfarbraum" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 msgid "Adobe RGB" msgstr "Adobe RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 msgid "gamma Rec709 RGB" msgstr "Gamma Rec. 709 RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:209 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:207 +#: ../src/common/colorspaces.c:1486 ../src/common/colorspaces.c:1740 +msgid "linear ProPhoto RGB" +msgstr "lineares ProPhoto RGB" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 msgid "tetrahedral" msgstr "tetraedrisch" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:210 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:212 msgid "trilinear" msgstr "trilinear" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:213 msgid "pyramid" -msgstr "py­ra­mi­dal" +msgstr "pyramidal" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:84 #: ../build/lib/darktable/plugins/introspection_negadoctor.c:199 @@ -4045,7 +4588,8 @@ msgstr "Papierschwarz (Dichtekorrektur )" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:144 -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:239 ../src/iop/negadoctor.c:992 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:239 +#: ../src/iop/negadoctor.c:1011 msgid "paper grade (gamma)" msgstr "Papiergraduierung (Gamma)" @@ -4059,14 +4603,59 @@ msgid "print exposure adjustment" msgstr "Druck-Belichtungsanpassung" -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:261 ../src/iop/negadoctor.c:417 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:261 +#: ../src/iop/negadoctor.c:431 msgid "black and white film" msgstr "Schwarz-Weiß-Film" -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:262 ../src/iop/negadoctor.c:402 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:262 +#: ../src/iop/negadoctor.c:416 msgid "color film" msgstr "Farbfilm" +#: ../build/lib/darktable/plugins/introspection_primaries.c:75 +#: ../build/lib/darktable/plugins/introspection_primaries.c:160 +#: ../src/iop/primaries.c:406 +msgid "tint hue" +msgstr "Einfärbung Farbton" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:81 +#: ../build/lib/darktable/plugins/introspection_primaries.c:164 +#: ../src/iop/primaries.c:413 +msgid "tint purity" +msgstr "Einfärbung Reinheit" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:87 +#: ../build/lib/darktable/plugins/introspection_primaries.c:168 +msgid "red hue" +msgstr "Rot Rotation" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:93 +#: ../build/lib/darktable/plugins/introspection_primaries.c:172 +msgid "red purity" +msgstr "Rot Reinheit" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:99 +#: ../build/lib/darktable/plugins/introspection_primaries.c:176 +msgid "green hue" +msgstr "Grün Rotation" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:105 +#: ../build/lib/darktable/plugins/introspection_primaries.c:180 +msgid "green purity" +msgstr "Grün Reinheit" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:111 +#: ../build/lib/darktable/plugins/introspection_primaries.c:184 +msgid "blue hue" +msgstr "Blau Rotation" + +# purity isn’t one of the core color defining terms in darktable yet - so maybe it needs a better translation +#: ../build/lib/darktable/plugins/introspection_primaries.c:117 +#: ../build/lib/darktable/plugins/introspection_primaries.c:188 +msgid "blue purity" +msgstr "Blau Reinheit" + #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:85 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:158 msgid "dynamic range" @@ -4078,7 +4667,8 @@ msgstr "Luminanz mittleres Grau" #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:103 -#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:170 ../src/iop/filmic.c:1526 +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:170 +#: ../src/iop/filmic.c:1551 msgid "safety factor" msgstr "Sicherheitsfaktor" @@ -4086,7 +4676,8 @@ msgid "logarithmic" msgstr "logarithmisch" -#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:185 ../src/iop/profile_gamma.c:625 +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:185 +#: ../src/iop/profile_gamma.c:639 msgid "gamma" msgstr "Gamma" @@ -4123,7 +4714,8 @@ msgstr "Schwarzwert" #: ../build/lib/darktable/plugins/introspection_rawprepare.c:106 -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:179 ../src/iop/rawprepare.c:946 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:179 +#: ../src/iop/rawprepare.c:954 msgid "white point" msgstr "Weißpunkt" @@ -4138,9 +4730,10 @@ #. exposure #: ../build/lib/darktable/plugins/introspection_relight.c:43 -#: ../build/lib/darktable/plugins/introspection_relight.c:98 ../src/common/collection.c:720 -#: ../src/gui/preferences.c:836 ../src/gui/presets.c:684 ../src/iop/basicadj.c:598 ../src/iop/exposure.c:122 -#: ../src/iop/exposure.c:1117 ../src/libs/metadata_view.c:141 +#: ../build/lib/darktable/plugins/introspection_relight.c:98 +#: ../src/common/collection.c:633 ../src/gui/preferences.c:834 +#: ../src/gui/presets.c:687 ../src/iop/basicadj.c:628 ../src/iop/exposure.c:122 +#: ../src/iop/exposure.c:1135 ../src/libs/metadata_view.c:143 msgid "exposure" msgstr "Belichtung" @@ -4150,9 +4743,10 @@ msgstr "Füllmodus" #: ../build/lib/darktable/plugins/introspection_retouch.c:285 -#: ../build/lib/darktable/plugins/introspection_retouch.c:426 ../src/iop/basicadj.c:620 -#: ../src/iop/channelmixerrgb.c:4617 ../src/iop/colisa.c:305 ../src/iop/lowpass.c:587 ../src/iop/soften.c:377 -#: ../src/iop/vignette.c:970 ../src/libs/history.c:963 +#: ../build/lib/darktable/plugins/introspection_retouch.c:426 +#: ../src/iop/basicadj.c:650 ../src/iop/channelmixerrgb.c:4685 +#: ../src/iop/colisa.c:299 ../src/iop/lowpass.c:600 ../src/iop/soften.c:372 +#: ../src/iop/vignette.c:1057 ../src/libs/history.c:963 msgid "brightness" msgstr "Helligkeit" @@ -4162,7 +4756,8 @@ msgid "max_iter" msgstr "max_iter" -#: ../build/lib/darktable/plugins/introspection_retouch.c:444 ../src/libs/metadata_view.c:329 +#: ../build/lib/darktable/plugins/introspection_retouch.c:444 +#: ../src/libs/metadata_view.c:333 msgid "unused" msgstr "nicht benutzt" @@ -4174,11 +4769,13 @@ msgid "heal" msgstr "heilen" -#: ../build/lib/darktable/plugins/introspection_retouch.c:447 ../src/iop/retouch.c:1867 +#: ../build/lib/darktable/plugins/introspection_retouch.c:447 +#: ../src/iop/retouch.c:2051 msgid "blur" msgstr "weichzeichnen" -#: ../build/lib/darktable/plugins/introspection_retouch.c:448 ../src/iop/retouch.c:1865 +#: ../build/lib/darktable/plugins/introspection_retouch.c:448 +#: ../src/iop/retouch.c:2049 msgid "fill" msgstr "füllen" @@ -4190,13 +4787,16 @@ msgid "erase" msgstr "löschen" -#: ../build/lib/darktable/plugins/introspection_retouch.c:458 ../src/gui/presets.c:59 ../src/iop/watermark.c:1298 -#: ../src/libs/colorpicker.c:291 ../src/libs/image.c:612 ../src/libs/modulegroups.c:2317 +#: ../build/lib/darktable/plugins/introspection_retouch.c:458 +#: ../src/gui/presets.c:61 ../src/iop/watermark.c:1346 +#: ../src/libs/colorpicker.c:320 ../src/libs/image.c:683 +#: ../src/libs/modulegroups.c:2301 msgid "color" msgstr "Farbe" #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:134 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:223 ../src/iop/rgbcurve.c:1423 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:223 +#: ../src/iop/rgbcurve.c:1423 msgid "compensate middle gray" msgstr "mittleres Grau kompensieren" @@ -4226,44 +4826,93 @@ msgid "highlights color adjustment" msgstr "Farbanpassung der Spitzlichter" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:70 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:141 ../src/gui/accelerators.c:85 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:122 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:241 +#: ../src/gui/accelerators.c:101 msgid "skew" msgstr "Steigung" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:76 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:145 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:128 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:245 msgid "target white" msgstr "Zielwert Weiß" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:82 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:149 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:134 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:249 msgid "target black" msgstr "Zielwert Schwarz" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:88 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:153 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:140 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:253 msgid "color processing" msgstr "Farbbehandlung" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:94 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:157 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:146 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:257 msgid "preserve hue" msgstr "Hue erhalten" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:171 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:152 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:261 +msgid "red attenuation" +msgstr "Rot reduzieren" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:158 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:265 +msgid "red rotation" +msgstr "Rot Rotation" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:164 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:269 +msgid "green attenuation" +msgstr "Grün reduzieren" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:170 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:273 +msgid "green rotation" +msgstr "Grün Rotation" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:176 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:277 +msgid "blue attenuation" +msgstr "Blau reduzieren" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:182 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:281 +msgid "blue rotation" +msgstr "Blau Rotation" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:188 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:285 +msgid "recover purity" +msgstr "Reinheit wiederherstellen" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:194 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:289 +msgid "base primaries" +msgstr "Basis für Primärfarben" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:303 msgid "per channel" msgstr "Je Kanal" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:172 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:304 msgid "RGB ratio" msgstr "RGB Verhältnis" -# https://de.wikipedia.org/wiki/Demosaicing übersetzt "emerald" mit "Cyan" -#: ../build/lib/darktable/plugins/introspection_temperature.c:66 -#: ../build/lib/darktable/plugins/introspection_temperature.c:121 ../src/iop/temperature.c:1941 -msgid "emerald" -msgstr "Cyan" +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:308 +#: ../src/common/colorspaces.c:1377 ../src/common/colorspaces.c:1734 +msgid "work profile" +msgstr "Arbeitsprofil" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:309 +msgid "Rec2020" +msgstr "Rec2020" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:310 +#: ../src/common/colorspaces.c:1750 +msgid "Display P3" +msgstr "Display P3" #: ../build/lib/darktable/plugins/introspection_tonecurve.c:135 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:232 @@ -4385,12 +5034,14 @@ msgstr "Geometrischer Mittelwert der RGB Werte" #: ../build/lib/darktable/plugins/introspection_tonemap.cc:39 -#: ../build/lib/darktable/plugins/introspection_tonemap.cc:88 ../src/iop/rgbcurve.c:184 ../src/iop/tonecurve.c:539 +#: ../build/lib/darktable/plugins/introspection_tonemap.cc:88 +#: ../src/iop/rgbcurve.c:186 ../src/iop/tonecurve.c:560 msgid "contrast compression" msgstr "Kontrast-Kompression" #: ../build/lib/darktable/plugins/introspection_vibrance.c:33 -#: ../build/lib/darktable/plugins/introspection_vibrance.c:76 ../src/iop/basicadj.c:627 ../src/iop/vibrance.c:67 +#: ../build/lib/darktable/plugins/introspection_vibrance.c:76 +#: ../src/iop/basicadj.c:657 ../src/iop/vibrance.c:67 msgid "vibrance" msgstr "Lebendigkeit" @@ -4425,7 +5076,8 @@ msgstr "Verhältnis Breite/Höhe" #: ../build/lib/darktable/plugins/introspection_vignette.c:146 -#: ../build/lib/darktable/plugins/introspection_vignette.c:237 ../src/iop/vignette.c:978 +#: ../build/lib/darktable/plugins/introspection_vignette.c:237 +#: ../src/iop/vignette.c:1066 msgid "shape" msgstr "Form" @@ -4450,7 +5102,7 @@ #: ../build/lib/darktable/plugins/introspection_watermark.c:142 #: ../build/lib/darktable/plugins/introspection_watermark.c:269 msgid "scale on" -msgstr "Skalierung entsprechend" +msgstr "Skalierung relativ" #: ../build/lib/darktable/plugins/introspection_watermark.c:148 #: ../build/lib/darktable/plugins/introspection_watermark.c:273 @@ -4462,8 +5114,9 @@ msgid "scale marker reference" msgstr "Skalierungsreferenz" -#: ../build/lib/darktable/plugins/introspection_watermark.c:323 ../src/imageio/format/tiff.c:125 -#: ../src/imageio/format/xcf.c:159 ../src/iop/borders.c:947 +#: ../build/lib/darktable/plugins/introspection_watermark.c:323 +#: ../src/imageio/format/tiff.c:125 ../src/imageio/format/xcf.c:159 +#: ../src/iop/borders.c:960 msgid "image" msgstr "Bild" @@ -4475,11 +5128,6 @@ msgid "smaller border" msgstr "kürzere Seite" -#: ../build/lib/darktable/plugins/introspection_watermark.c:326 ../src/libs/export.c:1135 -#: ../src/libs/metadata_view.c:148 ../src/libs/print_settings.c:2541 -msgid "height" -msgstr "Höhe" - #: ../build/lib/darktable/plugins/introspection_watermark.c:327 msgid "advanced options" msgstr "erweiterte Optionen" @@ -4501,6 +5149,7 @@ msgstr "kürzere Bildseite" # nicht so wirklich schön +# Alternativvorschlag? #: ../build/lib/darktable/plugins/introspection_watermark.c:338 msgid "marker width" msgstr "Breite" @@ -4509,58 +5158,68 @@ msgid "marker height" msgstr "Höhe" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:6 +#: ../build/bin/tools/darktable_authors.h:6 msgid "developers" msgstr "Entwickler" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:11 +#: ../build/bin/tools/darktable_authors.h:11 msgid "translators" msgstr "Übersetzer" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:16 +#: ../build/bin/tools/darktable_authors.h:16 msgid "contributors" msgstr "Mitwirkende" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:21 +#: ../build/bin/tools/darktable_authors.h:21 msgid "rawspeed contributors" msgstr "Mitwirkende (rawspeed)" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:26 +#: ../build/bin/tools/darktable_authors.h:26 msgid "integration contributors" msgstr "Mitwirkende Integration" -#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:1 ../data/org.darktable.darktable.desktop.in.h:1 +#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:1 +#: ../data/org.darktable.darktable.desktop.in.h:1 msgid "Virtual Lighttable and Darkroom" msgstr "Virtueller Leuchttisch und Dunkelkammer" -#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:2 ../data/org.darktable.darktable.appdata.xml.in.h:1 +#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:2 +#: ../data/org.darktable.darktable.appdata.xml.in.h:1 #: ../data/org.darktable.darktable.desktop.in.h:2 msgid "Organize and develop images from digital cameras" msgstr "Organisiere und entwickle Bilder von Digitalkameras" #. TRANSLATORS: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! -#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:4 ../data/org.darktable.darktable.desktop.in.h:4 +#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:4 +#: ../data/org.darktable.darktable.desktop.in.h:4 msgid "graphics;photography;raw;" -msgstr "Graphik;Grafik;Photographie;Fotografie;Raw;" +msgstr "Graphik;Grafik;Photographie;Fotografie;RAW;" #: ../data/org.darktable.darktable.appdata.xml.in.h:2 msgid "" -"darktable manages your digital negatives in a database and lets you view them through a lighttable. It also " -"enables you to develop raw images and enhance them in a darkroom." -msgstr "" -"darktable verwaltet digitale Negative in einer Datenbank und erlaubt es, diese auf einem Leuchttisch zu " -"betrachten. Außerdem können Raw-Bilder in einer Dunkelkammer entwickelt und verbessert werden." +"darktable manages your digital negatives in a database and lets you view " +"them through a lighttable. It also enables you to develop raw images and " +"enhance them in a darkroom." +msgstr "" +"darktable verwaltet digitale Negative in einer Datenbank und erlaubt es, " +"diese auf einem Leuchttisch zu betrachten. Außerdem können RAW-Bilder in " +"einer Dunkelkammer entwickelt und verbessert werden." #: ../data/org.darktable.darktable.appdata.xml.in.h:3 -msgid "Other modes besides lighttable and darkroom are a map for geotagging, tethering, print and a slideshow." +msgid "" +"Other modes besides lighttable and darkroom are a map for geotagging, " +"tethering, print and a slideshow." msgstr "" -"Weitere Modi neben Leuchttisch und Dunkelkammer sind eine Karte für Geotagging, Tethering, Druck und eine Diashow." +"Weitere Modi neben Leuchttisch und Dunkelkammer sind eine Karte für " +"Geotagging, Tethering, Druck und eine Diashow." #: ../data/org.darktable.darktable.appdata.xml.in.h:4 -msgid "darktable supports most modern cameras' raw formats, and does all of its processing at very high precision." +msgid "" +"darktable supports most modern cameras' raw formats, and does all of its " +"processing at very high precision." msgstr "" -"darktable unterstützt das Raw-Format der meisten modernen Kameras und führt seine Berechnungen mit sehr hoher " -"Präzision durch." +"darktable unterstützt das RAW-Format der meisten modernen Kameras und führt " +"seine Berechnungen mit sehr hoher Präzision durch." #: ../data/org.darktable.darktable.appdata.xml.in.h:5 msgid "Virtual light table, showing a collection" @@ -4582,82 +5241,104 @@ msgid "Print your images" msgstr "Drucke deine Bilder" -#: ../src/bauhaus/bauhaus.c:752 ../src/bauhaus/bauhaus.c:3689 +#: ../src/bauhaus/bauhaus.c:845 ../src/bauhaus/bauhaus.c:3957 msgid "sliders" msgstr "Schieberegler" -#: ../src/bauhaus/bauhaus.c:753 ../src/bauhaus/bauhaus.c:3694 +#: ../src/bauhaus/bauhaus.c:847 ../src/bauhaus/bauhaus.c:3962 msgid "dropdowns" msgstr "Dropdowns" -#: ../src/bauhaus/bauhaus.c:754 ../src/bauhaus/bauhaus.c:3699 +#: ../src/bauhaus/bauhaus.c:849 ../src/bauhaus/bauhaus.c:3967 msgid "buttons" msgstr "Buttons" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button on" msgstr "Button An" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button off" msgstr "Button Aus" -#: ../src/bauhaus/bauhaus.c:3406 +#: ../src/bauhaus/bauhaus.c:3624 msgid "button pressed" msgstr "Button gedrückt" -#: ../src/bauhaus/bauhaus.c:3623 +#: ../src/bauhaus/bauhaus.c:3862 msgid "not that many sliders" msgstr "keine Schieberegler" -#: ../src/bauhaus/bauhaus.c:3633 +#: ../src/bauhaus/bauhaus.c:3876 msgid "not that many dropdowns" msgstr "keine Dropdowns" -#: ../src/bauhaus/bauhaus.c:3648 +#: ../src/bauhaus/bauhaus.c:3895 msgid "not that many buttons" msgstr "keine Buttons" -#: ../src/bauhaus/bauhaus.c:3653 ../src/gui/accelerators.c:348 +#: ../src/bauhaus/bauhaus.c:3900 ../src/gui/accelerators.c:389 msgid "value" msgstr "Wert" -#: ../src/bauhaus/bauhaus.c:3654 ../src/bauhaus/bauhaus.c:3660 ../src/gui/accelerators.c:326 +#: ../src/bauhaus/bauhaus.c:3901 ../src/bauhaus/bauhaus.c:3907 +#: ../src/gui/accelerators.c:368 msgid "button" msgstr "Schaltfläche" -#: ../src/bauhaus/bauhaus.c:3655 +#: ../src/bauhaus/bauhaus.c:3902 msgid "force" msgstr "Stärke" -#: ../src/bauhaus/bauhaus.c:3656 ../src/libs/navigation.c:187 ../src/libs/navigation.c:199 +#: ../src/bauhaus/bauhaus.c:3903 ../src/libs/navigation.c:190 +#: ../src/libs/navigation.c:202 msgid "zoom" msgstr "Zoom" -#: ../src/bauhaus/bauhaus.c:3659 +#: ../src/bauhaus/bauhaus.c:3906 ../src/libs/select.c:40 msgid "selection" msgstr "Auswahl" -#: ../src/bauhaus/bauhaus.c:3678 +#: ../src/bauhaus/bauhaus.c:3946 msgid "slider" msgstr "Regler" -#: ../src/bauhaus/bauhaus.c:3683 +#: ../src/bauhaus/bauhaus.c:3951 msgid "dropdown" msgstr "Dropdown" -#: ../src/chart/main.c:504 ../src/control/jobs/control_jobs.c:1689 ../src/control/jobs/control_jobs.c:1743 -#: ../src/gui/accelerators.c:2278 ../src/gui/accelerators.c:2355 ../src/gui/accelerators.c:2407 -#: ../src/gui/accelerators.c:2435 ../src/gui/accelerators.c:2495 ../src/gui/hist_dialog.c:226 -#: ../src/gui/preferences.c:1043 ../src/gui/preferences.c:1082 ../src/gui/presets.c:420 ../src/gui/presets.c:563 -#: ../src/gui/styles_dialog.c:519 ../src/imageio/storage/disk.c:123 ../src/imageio/storage/gallery.c:110 -#: ../src/imageio/storage/latex.c:109 ../src/iop/lut3d.c:1546 ../src/libs/collect.c:408 -#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:928 ../src/libs/import.c:1506 ../src/libs/import.c:1610 -#: ../src/libs/styles.c:392 ../src/libs/styles.c:527 ../src/libs/tagging.c:2489 ../src/libs/tagging.c:2525 +#: ../src/chart/main.c:504 ../src/common/database.c:3372 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 ../src/gui/accelerators.c:2497 +#: ../src/gui/accelerators.c:2579 ../src/gui/accelerators.c:2632 +#: ../src/gui/accelerators.c:2661 ../src/gui/accelerators.c:2723 +#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1081 ../src/gui/presets.c:422 +#: ../src/gui/presets.c:565 ../src/gui/styles_dialog.c:526 +#: ../src/imageio/storage/disk.c:198 ../src/imageio/storage/gallery.c:150 +#: ../src/imageio/storage/latex.c:146 ../src/iop/lut3d.c:1560 +#: ../src/libs/collect.c:425 ../src/libs/collect.c:3242 +#: ../src/libs/copy_history.c:115 ../src/libs/export_metadata.c:276 +#: ../src/libs/geotagging.c:929 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1711 +#: ../src/libs/metadata.c:462 ../src/libs/metadata_view.c:1222 +#: ../src/libs/recentcollect.c:228 ../src/libs/modulegroups.c:3466 +#: ../src/libs/styles.c:392 ../src/libs/styles.c:439 ../src/libs/styles.c:529 +#: ../src/libs/styles.c:624 ../src/libs/tagging.c:1488 +#: ../src/libs/tagging.c:1579 ../src/libs/tagging.c:1670 +#: ../src/libs/tagging.c:1806 ../src/libs/tagging.c:2085 +#: ../src/libs/tagging.c:2520 ../src/libs/tagging.c:2556 +#: ../src/libs/tagging.c:3502 msgid "_cancel" msgstr "abbre_chen" -#: ../src/chart/main.c:504 ../src/gui/preferences.c:1082 ../src/gui/styles_dialog.c:520 ../src/libs/styles.c:392 +#: ../src/chart/main.c:504 ../src/gui/preferences.c:1081 +#: ../src/gui/styles_dialog.c:527 ../src/libs/collect.c:3243 +#: ../src/libs/export_metadata.c:277 ../src/libs/metadata.c:463 +#: ../src/libs/metadata_view.c:1223 ../src/libs/recentcollect.c:229 +#: ../src/libs/styles.c:392 ../src/libs/tagging.c:1671 +#: ../src/libs/tagging.c:1807 ../src/libs/tagging.c:2086 +#: ../src/libs/tagging.c:3503 msgid "_save" msgstr "_speichern" @@ -4671,125 +5352,139 @@ "mittleres dE: %.02f\n" "maximales dE: %.02f" -#: ../src/cli/main.c:247 +#: ../src/cli/main.c:270 msgid "TODO: sorry, due to API restrictions we currently cannot set the BPP to" -msgstr "TODO: Entschuldigung, aber aufgrund von API-Beschränkungen können wir die BPP momentan nicht setzen" +msgstr "" +"TODO: Entschuldigung, aber aufgrund von API-Beschränkungen können wir die " +"BPP momentan nicht setzen" -#: ../src/cli/main.c:259 +#: ../src/cli/main.c:282 msgid "unknown option for --hq" msgstr "Unbekannte Option für --hq" -#: ../src/cli/main.c:275 +#: ../src/cli/main.c:298 msgid "unknown option for --export_masks" msgstr "Unbekannte Option für --export_masks" -#: ../src/cli/main.c:291 +#: ../src/cli/main.c:314 msgid "unknown option for --upscale" msgstr "Unbekannte Option für --upscale" -#: ../src/cli/main.c:316 +#: ../src/cli/main.c:339 msgid "unknown option for --apply-custom-presets" msgstr "Unbekannte Option für --apply-custom-presets" -#: ../src/cli/main.c:327 +#: ../src/cli/main.c:350 msgid "too long ext for --out-ext" msgstr "Erweiterung zu lang für die Option --out-ext" -#: ../src/cli/main.c:344 +#: ../src/cli/main.c:367 #, c-format msgid "notice: input file or dir '%s' doesn't exist, skipping\n" -msgstr "Achtung: Eingabedatei oder Verzeichnis „%s” existiert nicht, wird übersprungen\n" +msgstr "" +"Achtung: Eingabedatei oder Verzeichnis „%s” existiert nicht, wird " +"übersprungen\n" -#: ../src/cli/main.c:353 +#: ../src/cli/main.c:376 #, c-format msgid "incorrect ICC type for --icc-type: '%s'\n" msgstr "falscher ICC-Typ „%s” für --icc-type\n" -#: ../src/cli/main.c:369 +#: ../src/cli/main.c:392 #, c-format msgid "notice: ICC file '%s' doesn't exist, skipping\n" msgstr "Achtung: ICC-Datei „%s” existiert nicht, wird übersprungen\n" -#: ../src/cli/main.c:378 +#: ../src/cli/main.c:401 #, c-format msgid "incorrect ICC intent for --icc-intent: '%s'\n" msgstr "falscher ICC-Vorsatz „%s” für --icc-intent\n" -#: ../src/cli/main.c:396 +#: ../src/cli/main.c:419 #, c-format msgid "warning: unknown option '%s'\n" msgstr "Warnung: unbekannte Option „.%s”\n" -#: ../src/cli/main.c:454 +#: ../src/cli/main.c:477 #, c-format msgid "error: input file and import opts specified! that's not supported!\n" -msgstr "Fehler: Eingabedatei und Importoptionen angegeben. Dies wird nicht unterstützt!\n" +msgstr "" +"Fehler: Eingabedatei und Importoptionen angegeben. Dies wird nicht " +"unterstützt!\n" -#: ../src/cli/main.c:487 +#: ../src/cli/main.c:510 #, c-format -msgid "notice: output location is a directory. assuming '%s/$(FILE_NAME).%s' output pattern" -msgstr "Achtung: Ausgabeort ist ein Verzeichnis. Annahme: „%s/$(FILE_NAME).%s” als Ausgabemuster" +msgid "" +"notice: output location is a directory. assuming '%s/$(FILE_NAME).%s' output " +"pattern" +msgstr "" +"Achtung: Ausgabeort ist ein Verzeichnis. Annahme: „%s/$(FILE_NAME).%s” als " +"Ausgabemuster" #. output file exists or there's output ext specified and it's same as file... -#: ../src/cli/main.c:502 +#: ../src/cli/main.c:525 msgid "output file already exists, it will get renamed" msgstr "Ausgabedatei existiert bereits, sie wird umbenannt" #. one of inputs was a failure, no prob -#: ../src/cli/main.c:532 +#: ../src/cli/main.c:555 #, c-format msgid "error: can't open folder %s" msgstr "Fehler: kann Ordner „%s” nicht öffnen" -#: ../src/cli/main.c:549 +#: ../src/cli/main.c:572 #, c-format msgid "error: can't open file %s" msgstr "Fehler: kann Datei „%s” nicht öffnen" -#: ../src/cli/main.c:566 +#: ../src/cli/main.c:589 #, c-format msgid "no images to export, aborting\n" -msgstr "keine Bilder zum exportieren gefunden, breche ab\n" +msgstr "keine Bilder zum Exportieren gefunden, breche ab\n" -#: ../src/cli/main.c:583 +#: ../src/cli/main.c:606 #, c-format msgid "error: can't open XMP file %s" msgstr "Fehler: kann Datei „%s” nicht öffnen" -#: ../src/cli/main.c:604 +#: ../src/cli/main.c:627 msgid "empty history stack" msgstr "leerer Verlaufsstapel" #. too long ext, no point in wasting time -#: ../src/cli/main.c:616 +#: ../src/cli/main.c:639 #, c-format msgid "too long output file extension: %s\n" msgstr "zu lange Dateiendung für Ausgabe: %s\n" #. no ext or empty ext, no point in wasting time -#: ../src/cli/main.c:624 +#: ../src/cli/main.c:647 #, c-format msgid "no output file extension given\n" msgstr "keine Dateiendung für Ausgabe gefunden\n" -#: ../src/cli/main.c:663 -msgid "cannot find disk storage module. please check your installation, something seems to be broken." +#: ../src/cli/main.c:692 +msgid "" +"cannot find disk storage module. please check your installation, something " +"seems to be broken." msgstr "" -"Kann Modul zum Speichern auf der Festplatten nicht finden. Bitte die Installation prüfen, irgendwas scheint kaputt " -"zu sein." +"Kann Modul zum Speichern auf der Festplatten nicht finden. Bitte die " +"Installation prüfen, irgendwas scheint kaputt zu sein." -#: ../src/cli/main.c:673 +#: ../src/cli/main.c:702 msgid "failed to get parameters from storage module, aborting export ..." -msgstr "Konnte keine Einstellungen vom Speicher-Modul bekommen, breche Export ab…" +msgstr "" +"Konnte keine Einstellungen vom Speicher-Modul bekommen, breche Export ab…" -#: ../src/cli/main.c:689 +#: ../src/cli/main.c:718 #, c-format msgid "unknown extension '.%s'" msgstr "unbekannte Datei-Erweiterung „.%s”" -#: ../src/cli/main.c:699 +#: ../src/cli/main.c:728 msgid "failed to get parameters from format module, aborting export ..." -msgstr "Konnte keine Einstellungen vom Format-Modul bekommen, breche Export ab…" +msgstr "" +"Konnte keine Einstellungen vom Format-Modul bekommen, breche Export ab…" #: ../src/common/camera_control.c:190 #, c-format @@ -4800,20 +5495,26 @@ msgstr "" "Kamera „%s“ an Port „%s“ Fehler %s\n" "\n" -"Bitte sicherstellen, dass die Kamera einen Zugriff zulässt und nicht anderweitig verbunden ist" +"Bitte sicherstellen, dass die Kamera einen Zugriff zulässt und nicht " +"anderweitig verbunden ist" #: ../src/common/camera_control.c:892 #, c-format msgid "" -"failed to initialize `%s' on port `%s', likely causes are: locked by another application, no access to devices etc" +"failed to initialize `%s' on port `%s', likely causes are: locked by another " +"application, no access to devices etc" msgstr "" -"Initialisierung von „%s“ am Port „%s“ fehlgeschlagen, mögliche Ursachen: durch eine andere Anwendung gesperrt, " -"kein Zugriff auf Geräte usw." +"Initialisierung von „%s“ am Port „%s“ fehlgeschlagen, mögliche Ursachen: " +"durch eine andere Anwendung gesperrt, kein Zugriff auf Geräte usw." #: ../src/common/camera_control.c:905 #, c-format -msgid "`%s' on port `%s' is not interesting because it supports neither tethering nor import" -msgstr "„%s“ auf Port „%s“ funktioniert nicht, da weder Tethering noch Import unterstützt werden" +msgid "" +"`%s' on port `%s' is not interesting because it supports neither tethering " +"nor import" +msgstr "" +"„%s“ auf Port „%s“ funktioniert nicht, da weder Tethering noch Import " +"unterstützt werden" #: ../src/common/camera_control.c:959 #, c-format @@ -4827,185 +5528,212 @@ "make sure it allows access and is not mounted otherwise" msgstr "" "Kamera „%s“ an Port „%s“ muss neu verbunden werden\n" -"Bitte sicherstellen, dass die Kamera einen Zugriff zulässt und nicht anderweitig verbunden ist" +"Bitte sicherstellen, dass die Kamera einen Zugriff zulässt und nicht " +"anderweitig verbunden ist" -#: ../src/common/collection.c:673 +#: ../src/common/collection.c:586 msgid "too much time to update aspect ratio for the collection" msgstr "zu viel Zeit um Seitenverhältnis der Sammlung zu aktualisieren" -#: ../src/common/collection.c:688 +#: ../src/common/collection.c:601 msgid "film roll" msgstr "Filmrolle" -#: ../src/common/collection.c:690 +#: ../src/common/collection.c:603 msgid "folder" msgstr "Verzeichnis" -#: ../src/common/collection.c:692 +#: ../src/common/collection.c:605 msgid "camera" msgstr "Kamera" -#: ../src/common/collection.c:694 ../src/libs/export_metadata.c:189 ../src/libs/tagging.c:3281 +#: ../src/common/collection.c:607 ../src/libs/export_metadata.c:176 +#: ../src/libs/tagging.c:3312 msgid "tag" msgstr "Tagging" -#: ../src/common/collection.c:696 +#: ../src/common/collection.c:609 msgid "capture date" msgstr "Aufnahmedatum" -#: ../src/common/collection.c:698 ../src/libs/filtering.c:61 +#: ../src/common/collection.c:611 ../src/libs/filtering.c:61 msgid "capture time" msgstr "Aufnahmezeit" -#: ../src/common/collection.c:700 ../src/libs/filtering.c:62 +#: ../src/common/collection.c:613 ../src/libs/filtering.c:62 msgid "import time" msgstr "Importzeit" -#: ../src/common/collection.c:702 ../src/libs/filtering.c:63 +#: ../src/common/collection.c:615 ../src/libs/filtering.c:63 msgid "modification time" msgstr "letzte Änderung" -#: ../src/common/collection.c:704 ../src/libs/filtering.c:64 +#: ../src/common/collection.c:617 ../src/libs/filtering.c:64 msgid "export time" msgstr "Letzter Export" -#: ../src/common/collection.c:706 ../src/libs/filtering.c:65 +#: ../src/common/collection.c:619 ../src/libs/filtering.c:65 msgid "print time" msgstr "letzter Druck" -#: ../src/common/collection.c:708 ../src/libs/collect.c:3222 ../src/libs/filtering.c:2163 -#: ../src/libs/filtering.c:2183 ../src/libs/filters/history.c:153 ../src/libs/history.c:92 +#: ../src/common/collection.c:621 ../src/libs/collect.c:3586 +#: ../src/libs/filtering.c:2237 ../src/libs/filtering.c:2257 +#: ../src/libs/filters/history.c:153 ../src/libs/history.c:92 msgid "history" msgstr "Verlauf" -#: ../src/common/collection.c:710 ../src/common/colorlabels.c:342 ../src/develop/lightroom.c:1550 -#: ../src/dtgtk/thumbnail.c:1560 ../src/libs/filtering.c:68 ../src/libs/filters/colors.c:301 +#: ../src/common/collection.c:623 ../src/common/colorlabels.c:341 +#: ../src/develop/lightroom.c:1607 ../src/dtgtk/thumbnail.c:1548 +#: ../src/libs/filtering.c:68 ../src/libs/filters/colors.c:301 #: ../src/libs/filters/colors.c:312 ../src/libs/tools/colorlabels.c:93 msgid "color label" msgstr "Farbmarkierung" #. iso -#: ../src/common/collection.c:716 ../src/gui/preferences.c:832 ../src/gui/presets.c:666 ../src/libs/camera.c:558 -#: ../src/libs/metadata_view.c:145 +#: ../src/common/collection.c:629 ../src/gui/preferences.c:830 +#: ../src/gui/presets.c:669 ../src/libs/camera.c:558 +#: ../src/libs/metadata_view.c:149 msgid "ISO" msgstr "ISO" #. aperture -#: ../src/common/collection.c:718 ../src/gui/preferences.c:840 ../src/gui/presets.c:701 ../src/libs/camera.c:545 -#: ../src/libs/camera.c:547 ../src/libs/metadata_view.c:140 +#: ../src/common/collection.c:631 ../src/gui/preferences.c:838 +#: ../src/gui/presets.c:704 ../src/libs/camera.c:545 ../src/libs/camera.c:547 +#: ../src/libs/metadata_view.c:142 msgid "aperture" msgstr "Blende" -#: ../src/common/collection.c:724 ../src/libs/filtering.c:57 ../src/libs/filters/filename.c:364 -#: ../src/libs/metadata_view.c:126 +#: ../src/common/collection.c:637 ../src/libs/filtering.c:57 +#: ../src/libs/filters/filename.c:369 ../src/libs/metadata_view.c:128 msgid "filename" msgstr "Dateiname" -#: ../src/common/collection.c:726 ../src/develop/lightroom.c:1541 ../src/libs/geotagging.c:141 +#: ../src/common/collection.c:639 ../src/develop/lightroom.c:1598 +#: ../src/libs/geotagging.c:141 msgid "geotagging" msgstr "Geotagging" -#: ../src/common/collection.c:728 ../src/libs/filters/grouping.c:167 ../src/libs/tools/global_toolbox.c:394 +#: ../src/common/collection.c:641 ../src/libs/filters/grouping.c:167 +#: ../src/libs/tools/global_toolbox.c:394 msgid "grouping" msgstr "Gruppieren" -#: ../src/common/collection.c:730 ../src/dtgtk/thumbnail.c:1575 ../src/libs/filters/local_copy.c:142 -#: ../src/libs/metadata_view.c:129 ../src/libs/metadata_view.c:336 +#: ../src/common/collection.c:643 ../src/dtgtk/thumbnail.c:1563 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:340 msgid "local copy" msgstr "lokale Kopie" -#: ../src/common/collection.c:732 ../src/gui/preferences.c:808 +#: ../src/common/collection.c:645 ../src/gui/preferences.c:806 msgid "module" msgstr "Modul" -#: ../src/common/collection.c:734 ../src/gui/hist_dialog.c:346 ../src/gui/styles_dialog.c:722 -#: ../src/gui/styles_dialog.c:771 ../src/libs/filters/module_order.c:161 ../src/libs/ioporder.c:39 +#: ../src/common/collection.c:647 ../src/gui/hist_dialog.c:346 +#: ../src/gui/styles_dialog.c:734 ../src/gui/styles_dialog.c:783 +#: ../src/libs/filters/module_order.c:161 ../src/libs/ioporder.c:39 msgid "module order" msgstr "Modulsortierung" -#: ../src/common/collection.c:736 +#: ../src/common/collection.c:649 msgid "range rating" msgstr "Bewertungsintervall" -#: ../src/common/collection.c:738 ../src/common/ratings.c:322 ../src/develop/lightroom.c:1525 -#: ../src/libs/filtering.c:67 ../src/libs/tools/ratings.c:110 +#: ../src/common/collection.c:651 ../src/common/ratings.c:321 +#: ../src/develop/lightroom.c:1582 ../src/libs/filtering.c:67 +#: ../src/libs/tools/ratings.c:110 msgid "rating" msgstr "Bewertung" -#: ../src/common/collection.c:740 +#: ../src/common/collection.c:653 msgid "search" msgstr "Suche" -#: ../src/common/collection.c:1509 ../src/common/colorlabels.c:335 ../src/develop/lightroom.c:836 -#: ../src/gui/guides.c:732 ../src/iop/colorzones.c:2265 ../src/iop/temperature.c:1925 ../src/libs/collect.c:1791 -#: ../src/libs/filters/colors.c:261 +#: ../src/common/collection.c:1376 ../src/common/colorlabels.c:334 +#: ../src/develop/lightroom.c:889 ../src/gui/guides.c:732 +#: ../src/iop/colorzones.c:2501 ../src/iop/temperature.c:1902 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:261 msgid "yellow" msgstr "Gelb" -#: ../src/common/collection.c:1515 ../src/common/color_vocabulary.c:339 ../src/common/colorlabels.c:338 -#: ../src/iop/colorzones.c:2269 ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:264 +#: ../src/common/collection.c:1382 ../src/common/color_vocabulary.c:339 +#: ../src/common/colorlabels.c:337 ../src/iop/colorzones.c:2505 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:264 msgid "purple" msgstr "Violett" -#: ../src/common/collection.c:1532 ../src/libs/collect.c:1745 ../src/libs/filters/history.c:38 +#: ../src/common/collection.c:1400 ../src/libs/collect.c:1863 +#: ../src/libs/filters/history.c:38 msgid "auto applied" msgstr "automatisch anwenden" -#: ../src/common/collection.c:1536 ../src/libs/collect.c:1745 ../src/libs/filters/history.c:38 +#: ../src/common/collection.c:1406 ../src/libs/collect.c:1863 +#: ../src/libs/filters/history.c:38 msgid "altered" msgstr "geändert" -#: ../src/common/collection.c:1553 ../src/common/collection.c:1649 ../src/libs/collect.c:1166 -#: ../src/libs/collect.c:1330 ../src/libs/collect.c:1354 ../src/libs/collect.c:1473 ../src/libs/collect.c:2432 +#: ../src/common/collection.c:1424 ../src/common/collection.c:1535 +#: ../src/libs/collect.c:1242 ../src/libs/collect.c:1426 +#: ../src/libs/collect.c:1452 ../src/libs/collect.c:1592 +#: ../src/libs/collect.c:2662 msgid "not tagged" msgstr "nicht getaggt" -#: ../src/common/collection.c:1554 ../src/libs/collect.c:1354 ../src/libs/map_locations.c:742 +#: ../src/common/collection.c:1425 ../src/libs/collect.c:1452 +#: ../src/libs/map_locations.c:742 msgid "tagged" msgstr "getaggt" -#: ../src/common/collection.c:1555 +#: ../src/common/collection.c:1426 msgid "tagged*" msgstr "getaggt*" #. local copy -#: ../src/common/collection.c:1588 ../src/libs/collect.c:1759 ../src/libs/filters/local_copy.c:38 +#: ../src/common/collection.c:1460 ../src/libs/collect.c:1883 +#: ../src/libs/filters/local_copy.c:38 msgid "not copied locally" msgstr "nicht lokal kopiert" -#: ../src/common/collection.c:1592 ../src/libs/collect.c:1759 ../src/libs/filters/local_copy.c:38 +#: ../src/common/collection.c:1465 ../src/libs/collect.c:1882 +#: ../src/libs/filters/local_copy.c:38 msgid "copied locally" msgstr "lokal kopiert" -#: ../src/common/collection.c:1974 ../src/libs/collect.c:1879 ../src/libs/filters/grouping.c:147 -#: ../src/libs/filters/grouping.c:170 +#. if its undefined +#: ../src/common/collection.c:1507 ../src/common/collection.c:1619 +#: ../src/libs/collect.c:2209 ../src/libs/collect.c:2210 +msgid "unnamed" +msgstr "unbenannt" + +#: ../src/common/collection.c:1905 ../src/libs/collect.c:2013 +#: ../src/libs/filters/grouping.c:147 ../src/libs/filters/grouping.c:170 msgid "group leaders" -msgstr "Gruppenführer" +msgstr "Gruppen Schlüsselfotos" -#: ../src/common/collection.c:1978 ../src/libs/collect.c:1879 ../src/libs/filters/grouping.c:150 -#: ../src/libs/filters/grouping.c:170 +#: ../src/common/collection.c:1909 ../src/libs/collect.c:2013 +#: ../src/libs/filters/grouping.c:150 ../src/libs/filters/grouping.c:170 msgid "group followers" msgstr "Gruppenmitglieder" -#: ../src/common/collection.c:2126 ../src/libs/collect.c:1959 +#: ../src/common/collection.c:2066 ../src/libs/collect.c:2100 msgid "not defined" msgstr "nicht definiert" -#: ../src/common/collection.c:2575 +#: ../src/common/collection.c:2521 #, c-format msgid "<b>%d</b> image (#<b>%d</b>) selected of <b>%d</b>" msgstr "<b>%d</b> Bild (#<b>%d</b>) ausgewählt von <b>%d</b>" -#: ../src/common/collection.c:2582 +#: ../src/common/collection.c:2528 #, c-format msgid "<b>%d</b> image selected of <b>%d</b>" msgid_plural "<b>%d</b> images selected of <b>%d</b>" msgstr[0] "<b>%d</b> Bild ausgewählt von <b>%d</b>" msgstr[1] "<b>%d</b> Bilder ausgewählt von <b>%d</b>" -#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2324 ../src/develop/blend_gui.c:2372 -#: ../src/gui/guides.c:729 ../src/iop/channelmixerrgb.c:4620 ../src/iop/levels.c:671 ../src/iop/rgblevels.c:937 -#: ../src/iop/rgblevels.c:1032 +#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2340 +#: ../src/develop/blend_gui.c:2388 ../src/gui/guides.c:729 +#: ../src/iop/channelmixerrgb.c:4688 ../src/iop/levels.c:687 +#: ../src/iop/rgblevels.c:969 ../src/iop/rgblevels.c:1083 msgid "gray" msgstr "Grau" @@ -5038,18 +5766,20 @@ msgid "Mexican" msgstr "Mexikanischer" -#: ../src/common/color_vocabulary.c:100 ../src/common/color_vocabulary.c:105 ../src/common/color_vocabulary.c:110 -#: ../src/common/color_vocabulary.c:115 +#: ../src/common/color_vocabulary.c:100 ../src/common/color_vocabulary.c:105 +#: ../src/common/color_vocabulary.c:110 ../src/common/color_vocabulary.c:115 msgid "forearm" msgstr "Unterarm" -#: ../src/common/color_vocabulary.c:120 ../src/common/color_vocabulary.c:125 ../src/common/color_vocabulary.c:130 -#: ../src/common/color_vocabulary.c:135 ../src/common/color_vocabulary.c:140 ../src/common/color_vocabulary.c:145 +#: ../src/common/color_vocabulary.c:120 ../src/common/color_vocabulary.c:125 +#: ../src/common/color_vocabulary.c:130 ../src/common/color_vocabulary.c:135 +#: ../src/common/color_vocabulary.c:140 ../src/common/color_vocabulary.c:145 msgid "forehead" msgstr "Stirn" -#: ../src/common/color_vocabulary.c:150 ../src/common/color_vocabulary.c:155 ../src/common/color_vocabulary.c:160 -#: ../src/common/color_vocabulary.c:165 ../src/common/color_vocabulary.c:170 ../src/common/color_vocabulary.c:175 +#: ../src/common/color_vocabulary.c:150 ../src/common/color_vocabulary.c:155 +#: ../src/common/color_vocabulary.c:160 ../src/common/color_vocabulary.c:165 +#: ../src/common/color_vocabulary.c:170 ../src/common/color_vocabulary.c:175 msgid "cheek" msgstr "Wange" @@ -5145,7 +5875,8 @@ #. 96° - yellow olive #. 120° - green #. 144° - blueish green -#: ../src/common/color_vocabulary.c:258 ../src/common/color_vocabulary.c:267 ../src/common/color_vocabulary.c:276 +#: ../src/common/color_vocabulary.c:258 ../src/common/color_vocabulary.c:267 +#: ../src/common/color_vocabulary.c:276 msgid "dark green" msgstr "Dunkelgrün" @@ -5215,11 +5946,13 @@ msgid "dark cyan" msgstr "dunkles Cyan" -#: ../src/common/color_vocabulary.c:297 ../src/common/color_vocabulary.c:317 ../src/iop/colorzones.c:2267 +#: ../src/common/color_vocabulary.c:297 ../src/common/color_vocabulary.c:317 +#: ../src/iop/colorzones.c:2503 msgid "aqua" msgstr "Aquamarin" -#: ../src/common/color_vocabulary.c:298 ../src/gui/guides.c:733 ../src/iop/temperature.c:1923 +#: ../src/common/color_vocabulary.c:298 ../src/gui/guides.c:733 +#: ../src/iop/temperature.c:1900 msgid "cyan" msgstr "Cyan" @@ -5284,8 +6017,8 @@ msgid "dark magenta" msgstr "Dunkles Magenta" -#: ../src/common/color_vocabulary.c:341 ../src/gui/guides.c:734 ../src/iop/colorzones.c:2270 -#: ../src/iop/temperature.c:1921 +#: ../src/common/color_vocabulary.c:341 ../src/gui/guides.c:734 +#: ../src/iop/colorzones.c:2506 ../src/iop/temperature.c:1898 msgid "magenta" msgstr "Magenta" @@ -5297,138 +6030,141 @@ msgid "color not found" msgstr "Farbe nicht gefunden" -#: ../src/common/colorlabels.c:310 +#: ../src/common/colorlabels.c:309 #, c-format msgid "colorlabels set to %s" msgstr "Farbmarkierungen auf %s" -#: ../src/common/colorlabels.c:312 +#: ../src/common/colorlabels.c:311 msgid "all colorlabels removed" msgstr "alle Farbmarkierungen entfernt" -#: ../src/common/colorlabels.c:333 ../src/gui/accelerators.c:170 ../src/libs/image.c:592 +#: ../src/common/colorlabels.c:332 ../src/gui/accelerators.c:188 +#: ../src/libs/image.c:660 msgid "clear" msgstr "löschen" -#. init the category profile with NULL profile, the actual profile must be retrieved dynamically by the caller -#: ../src/common/colorspaces.c:1229 ../src/common/colorspaces.c:1518 -msgid "work profile" -msgstr "Arbeitsprofil" - -#: ../src/common/colorspaces.c:1232 ../src/common/colorspaces.c:1514 ../src/iop/colorout.c:885 +#: ../src/common/colorspaces.c:1382 ../src/common/colorspaces.c:1730 +#: ../src/iop/colorout.c:901 msgid "export profile" msgstr "Exportprofil" -#: ../src/common/colorspaces.c:1236 ../src/common/colorspaces.c:1516 ../src/views/darkroom.c:2542 +#: ../src/common/colorspaces.c:1387 ../src/common/colorspaces.c:1732 +#: ../src/views/darkroom.c:2383 msgid "softproof profile" msgstr "Softproof-Profil" -#: ../src/common/colorspaces.c:1242 ../src/common/colorspaces.c:1498 +#: ../src/common/colorspaces.c:1397 ../src/common/colorspaces.c:1714 msgid "system display profile" msgstr "System-Bildschirmprofil" -#: ../src/common/colorspaces.c:1245 ../src/common/colorspaces.c:1520 +#: ../src/common/colorspaces.c:1402 ../src/common/colorspaces.c:1736 msgid "system display profile (second window)" msgstr "System-Bildschirmprofil (zweites Fenster)" -#: ../src/common/colorspaces.c:1255 +#: ../src/common/colorspaces.c:1415 msgid "sRGB (web-safe)" msgstr "sRGB (web-sicher)" -#: ../src/common/colorspaces.c:1269 ../src/common/colorspaces.c:1522 +#: ../src/common/colorspaces.c:1435 ../src/common/colorspaces.c:1738 msgid "Rec709 RGB" msgstr "Rec709 RGB" -#: ../src/common/colorspaces.c:1279 +#: ../src/common/colorspaces.c:1450 msgid "PQ Rec2020 RGB" msgstr "PQ Rec2020 RGB" -#: ../src/common/colorspaces.c:1284 +#: ../src/common/colorspaces.c:1458 msgid "HLG Rec2020 RGB" msgstr "HLG Rec2020 RGB" -#: ../src/common/colorspaces.c:1289 +#: ../src/common/colorspaces.c:1465 msgid "PQ P3 RGB" msgstr "PQ P3 RGB" -#: ../src/common/colorspaces.c:1294 +#: ../src/common/colorspaces.c:1471 msgid "HLG P3 RGB" msgstr "HLG P3 RGB" -#: ../src/common/colorspaces.c:1299 ../src/common/colorspaces.c:1524 -msgid "linear ProPhoto RGB" -msgstr "lineares ProPhoto RGB" +#: ../src/common/colorspaces.c:1478 +msgid "Display P3 RGB" +msgstr "Display P3 RGB" -#: ../src/common/colorspaces.c:1304 ../src/common/colorspaces.c:1492 +#: ../src/common/colorspaces.c:1493 ../src/common/colorspaces.c:1708 msgid "linear XYZ" msgstr "lineares XYZ" -#: ../src/common/colorspaces.c:1308 ../src/common/colorspaces.c:1494 ../src/develop/blend_gui.c:144 -#: ../src/develop/blend_gui.c:2000 ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:267 +#: ../src/common/colorspaces.c:1500 ../src/common/colorspaces.c:1710 +#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2016 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:293 msgid "Lab" msgstr "Lab" -#: ../src/common/colorspaces.c:1313 ../src/common/colorspaces.c:1496 +#: ../src/common/colorspaces.c:1508 ../src/common/colorspaces.c:1712 msgid "linear infrared BGR" msgstr "linears Infrarot-BGR" -#: ../src/common/colorspaces.c:1317 +#: ../src/common/colorspaces.c:1513 msgid "BRG (for testing)" msgstr "BRG (zum Testen)" -#: ../src/common/colorspaces.c:1409 +#: ../src/common/colorspaces.c:1619 #, c-format -msgid "profile `%s' not usable as histogram profile. it has been replaced by sRGB!" -msgstr "Profil „%s“ kann nicht als Histogrammprofil verwendet werden. Es wurde durch sRGB ersetzt!" +msgid "" +"profile `%s' not usable as histogram profile. it has been replaced by sRGB!" +msgstr "" +"Profil „%s“ kann nicht als Histogrammprofil verwendet werden. Es wurde durch " +"sRGB ersetzt!" -#: ../src/common/colorspaces.c:1500 +#: ../src/common/colorspaces.c:1716 msgid "embedded ICC profile" msgstr "eingebettetes ICC-Profil" -#: ../src/common/colorspaces.c:1502 +#: ../src/common/colorspaces.c:1718 msgid "embedded matrix" msgstr "eingebettete Matrix" -#: ../src/common/colorspaces.c:1504 +#: ../src/common/colorspaces.c:1720 msgid "standard color matrix" msgstr "Standard-Farb-Matrix" -#: ../src/common/colorspaces.c:1506 +#: ../src/common/colorspaces.c:1722 msgid "enhanced color matrix" msgstr "Erweiterte Farb-Matrix" -#: ../src/common/colorspaces.c:1508 +#: ../src/common/colorspaces.c:1724 msgid "vendor color matrix" msgstr "Hersteller-Farb-Matrix" -#: ../src/common/colorspaces.c:1510 +#: ../src/common/colorspaces.c:1726 msgid "alternate color matrix" msgstr "Alternative Farb-Matrix" -#: ../src/common/colorspaces.c:1512 +#: ../src/common/colorspaces.c:1728 msgid "BRG (experimental)" msgstr "BRG (experimentell)" -#: ../src/common/colorspaces.c:1526 +#: ../src/common/colorspaces.c:1742 msgid "PQ Rec2020" msgstr "PQ Rec2020" -#: ../src/common/colorspaces.c:1528 +#: ../src/common/colorspaces.c:1744 msgid "HLG Rec2020" msgstr "HLG Rec2020" -#: ../src/common/colorspaces.c:1530 +#: ../src/common/colorspaces.c:1746 msgid "PQ P3" msgstr "PQ P3" -#: ../src/common/colorspaces.c:1532 +#: ../src/common/colorspaces.c:1748 msgid "HLG P3" msgstr "HLG P3" #: ../src/common/cups_print.c:420 #, c-format msgid "file `%s' to print not found for image %d on `%s'" -msgstr "Datei „%s” zum Drucken von Bild %d konnte auf „%s” nicht gefunden werden" +msgstr "" +"Datei „%s” zum Drucken von Bild %d konnte auf „%s” nicht gefunden werden" #: ../src/common/cups_print.c:439 msgid "failed to create temporary file for printing options" @@ -5449,102 +6185,154 @@ msgid "printing `%s' on `%s'" msgstr "drucke Bild „%s” auf „%s”" -#: ../src/common/darktable.c:250 +#: ../src/common/darktable.c:375 #, c-format msgid "found strange path `%s'" msgstr "Ungewöhnlicher Pfad „%s” gefunden" -#: ../src/common/darktable.c:265 +#: ../src/common/darktable.c:390 #, c-format msgid "error loading directory `%s'" msgstr "Fehler beim Laden von Verzeichnis „%s”" -#: ../src/common/darktable.c:289 +#: ../src/common/darktable.c:414 #, c-format msgid "file `%s' has unknown format!" msgstr "Datei „%s” hat ein unbekanntes Format!" -#: ../src/common/darktable.c:302 ../src/control/jobs/control_jobs.c:2118 ../src/control/jobs/control_jobs.c:2177 +#: ../src/common/darktable.c:427 ../src/control/jobs/control_jobs.c:2121 +#: ../src/control/jobs/control_jobs.c:2180 #, c-format msgid "error loading file `%s'" msgstr "Fehler beim Laden von Datei „%s”" -#: ../src/common/darktable.c:1509 +#: ../src/common/darktable.c:1650 msgid "configuration information" msgstr "Information zur Konfiguration" -#: ../src/common/darktable.c:1511 -msgid "show this information again" -msgstr "diese Informationen erneut anzeigen" +#: ../src/common/darktable.c:1652 +msgid "_show this information again" +msgstr "diese Informationen erneut _anzeigen" -#: ../src/common/darktable.c:1511 -msgid "understood" -msgstr "verstanden" +#: ../src/common/darktable.c:1652 +msgid "_understood" +msgstr "_verstanden" -#: ../src/common/darktable.c:1968 -msgid "the RCD demosaicer has been defined as default instead of PPG because of better quality and performance." +#: ../src/common/darktable.c:2106 +msgid "" +"the RCD demosaicer has been defined as default instead of PPG because of " +"better quality and performance." msgstr "" -"Der RCD-Demosaicer wurde wegen seiner besseren Qualität und Performance anstelle von PPG als Standard definiert." +"Der RCD-Demosaicer wurde wegen seiner besseren Qualität und Performance " +"anstelle von PPG als Standard definiert." -#: ../src/common/darktable.c:1970 +#: ../src/common/darktable.c:2108 msgid "see preferences/darkroom/demosaicing for zoomed out darkroom mode" -msgstr "siehe Einstellungen/Dunkelkammer/Demosaicing für den herausgezoomten Dunkelkammermodus" +msgstr "" +"siehe Einstellungen/Dunkelkammer/Demosaicing für den herausgezoomten " +"Dunkelkammermodus" -#: ../src/common/darktable.c:1976 -msgid "the user interface and the underlying internals for tuning darktable performance have changed." +#: ../src/common/darktable.c:2114 +msgid "" +"the user interface and the underlying internals for tuning darktable " +"performance have changed." msgstr "" -"Die Einstellmöglichkeiten und die zugrunde liegenden internen Funktionen zur Optimierung der darktable Performance " -"haben sich geändert." +"Die Einstellmöglichkeiten und die zugrunde liegenden internen Funktionen zur " +"Optimierung der darktable Performance haben sich geändert." -#: ../src/common/darktable.c:1978 -msgid "you won't find headroom and friends any longer, instead in preferences/processing use:" +#: ../src/common/darktable.c:2116 +msgid "" +"you won't find headroom and friends any longer, instead in preferences/" +"processing use:" msgstr "" -"direkte Einstellung von Headroom und so weiter sind nicht mehr vorgesehen, dafür gibt es in Voreinstellungen/" -"Bearbeitung:" +"direkte Einstellung von Headroom und so weiter sind nicht mehr vorgesehen, " +"dafür gibt es in Voreinstellungen/Bearbeitung:" -#: ../src/common/darktable.c:1980 +#: ../src/common/darktable.c:2118 msgid "1) darktable resources" msgstr "1) darktable Ressourcenzuweisung" -#: ../src/common/darktable.c:1982 +#: ../src/common/darktable.c:2120 msgid "2) tune OpenCL performance" msgstr "2) OpenCL Performance optimieren" -#: ../src/common/darktable.c:1989 -msgid "some global config parameters relevant for OpenCL performance are not used any longer." -msgstr "einige für OpenCL Leistung relevante globale Konfigurationsparameter werden nicht mehr verwendet." - -#: ../src/common/darktable.c:1991 -msgid "instead you will find 'per device' data in 'cl_device_v4_canonical-name'. content is:" -msgstr "Stattdessen stehen die gerätespezifischen Daten in „cl_device_v4_canonical-name“. Inhalte sind:" - -#: ../src/common/darktable.c:1993 ../src/common/darktable.c:2012 -msgid " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' 'eventhandles' 'async' 'disable' 'magic'" -msgstr "„avoid_atomics“ „micro_nap“ „pinned_memory“ „roundupwd“ „roundupht“ „eventhandles“ „async“ „disable“ „magic“" +#: ../src/common/darktable.c:2127 +msgid "" +"some global config parameters relevant for OpenCL performance are not used " +"any longer." +msgstr "" +"einige für OpenCL Leistung relevante globale Konfigurationsparameter werden " +"nicht mehr verwendet." + +#: ../src/common/darktable.c:2129 +msgid "" +"instead you will find 'per device' data in 'cldevice_v5_canonical-name'. " +"content is:" +msgstr "" +"Stattdessen stehen die gerätespezifischen Daten in „cldevice_v5_canonical-" +"name“. Inhalte sind:" + +#: ../src/common/darktable.c:2131 ../src/common/darktable.c:2150 +#: ../src/common/darktable.c:2165 +msgid "" +" 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" +msgstr "" +" 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" -#: ../src/common/darktable.c:1995 ../src/common/darktable.c:2014 +#: ../src/common/darktable.c:2133 ../src/common/darktable.c:2152 msgid "you may tune as before except 'magic'" msgstr "tunen wie zuvor, aber ohne Automagisches Verhalten" -#: ../src/common/darktable.c:2001 -msgid "your OpenCL compiler settings for all devices have been reset to default." -msgstr "Die OpenCL Compiler Einstellungen wurden für alle GPUs auf den Default zurückgesetzt." - -#: ../src/common/darktable.c:2008 -msgid "OpenCL global config parameters 'per device' data has been recreated with an updated name." -msgstr "Die globalen OpenCL-Konfigurationsparameter „per device“ wurden mit einem aktualisierten Namen neu erstellt" - -#: ../src/common/darktable.c:2010 -msgid "you will find 'per device' data in 'cl_device_v5_canonical-name'. content is:" -msgstr "Die „per device“-Daten befinden sich in „cl_device_v5_canonical-name“. Inhalt ist:" +#: ../src/common/darktable.c:2139 +msgid "" +"your OpenCL compiler settings for all devices have been reset to default." +msgstr "" +"Die OpenCL Compiler Einstellungen wurden für alle GPUs auf den Default " +"zurückgesetzt." -#: ../src/common/darktable.c:2016 -msgid "If you're using device names in 'opencl_device_priority' you should update them to the new names." +#: ../src/common/darktable.c:2146 +msgid "" +"OpenCL global config parameters 'per device' data has been recreated with an " +"updated name." msgstr "" -"Falls Device-Namen in „opencl_device_priority“ verwendet werden, sollten diese auf die neuen Namen aktualisiert " -"werden." +"Die globalen OpenCL-Konfigurationsparameter „per device“ wurden mit einem " +"aktualisierten Namen neu erstellt" + +#: ../src/common/darktable.c:2148 ../src/common/darktable.c:2163 +msgid "" +"you will find 'per device' data in 'cldevice_v5_canonical-name'. content is:" +msgstr "" +"Die „per device“-Daten befinden sich in „cldevice_v5_canonical-name“. Inhalt " +"ist:" + +#: ../src/common/darktable.c:2154 +msgid "" +"If you're using device names in 'opencl_device_priority' you should update " +"them to the new names." +msgstr "" +"Falls Device-Namen in „opencl_device_priority“ verwendet werden, sollten " +"diese auf die neuen Namen aktualisiert werden." + +#: ../src/common/darktable.c:2161 +msgid "" +"OpenCL 'per device' config data have been automatically extended by 'unified-" +"fraction'." +msgstr "" +"OpenCL ‚per device‘ Konfigurationsdaten wurden automatisch um ‚unified-" +"fraction‘ erweitert." -#: ../src/common/database.c:2756 +#: ../src/common/darktable.c:2172 +msgid "" +"OpenCL 'per device' compiler settings might have been updated.\n" +"\n" +msgstr "" +"Die OpenCL-Compilereinstellungen „per Device“ wurden möglicherweise " +"aktualisiert.\n" +"\n" + +#: ../src/common/database.c:3350 #, c-format msgid "" "\n" @@ -5553,20 +6341,26 @@ " How to solve this problem?\n" "\n" " 1 - If another darktable instance is already open, \n" -" click cancel and either use that instance or close it before attempting to rerun darktable \n" +" click cancel and either use that instance or close it before " +"attempting to rerun darktable \n" " (process ID <i><b>%d</b></i> created the database locks)\n" "\n" -" 2 - If you can't find a running instance of darktable, try restarting your session or your computer. \n" -" This will close all running programs and hopefully close the databases correctly. \n" +" 2 - If you can't find a running instance of darktable, try restarting your " +"session or your computer. \n" +" This will close all running programs and hopefully close the databases " +"correctly. \n" "\n" -" 3 - If you have done this or are certain that no other instances of darktable are running, \n" +" 3 - If you have done this or are certain that no other instances of " +"darktable are running, \n" " this probably means that the last instance was ended abnormally. \n" -" Click on the \"delete database lock files\" button to remove the files <i>data.db.lock</i> and <i>library.db." -"lock</i>. \n" +" Click on the \"delete database lock files\" button to remove the files " +"<i>data.db.lock</i> and <i>library.db.lock</i>. \n" "\n" "\n" -" <i><u>Caution!</u> Do not delete these files without first undertaking the above checks, \n" -" otherwise you risk generating serious inconsistencies in your database.</i>\n" +" <i><u>Caution!</u> Do not delete these files without first undertaking " +"the above checks, \n" +" otherwise you risk generating serious inconsistencies in your database." +"</i>\n" msgstr "" "\n" "darktable konnte nicht gestartet werden (Datenbank ist gesperrt)\n" @@ -5574,43 +6368,40 @@ "Wie kann dieses Problem gelöst werden?\n" "\n" "1 - Wenn bereits eine andere darktable Instanz geöffnet ist: \n" -" Abbrechen oder die bereits laufende darktable Instanz vor einem erneuten Start beenden. \n" +" Abbrechen oder die bereits laufende darktable Instanz vor einem " +"erneuten Start beenden. \n" " (Prozess-ID <i><b>%d</b></i> erstellt die Datenbanksperren)\n" "\n" "2 - wenn keine laufende darktable Instanz zu finden ist:\n" " Ggf. die laufende Sitzung oder den Computer neu starten. \n" -" Dadurch werden alle laufenden Programme und auch die Datenbanken hoffentlich ordnungsgemäß geschlossen. \n" +" Dadurch werden alle laufenden Programme und auch die Datenbanken " +"hoffentlich ordnungsgemäß geschlossen. \n" "\n" -"3 - Wenn weder 1 noch 2 geholfen haben oder sicher keine andere darktable Instanz ausgeführt wird:\n" -" Wahrscheinlich wurde die letzte Instanz von darktable abnormal beendet. \n" -" Auf die Schaltfläche „Datenbanksperrdateien löschen“ klicken, um die Dateien <i>Data.db.lock</i> und " -"<i>library.db.lock</i>zu entfernen. \n" -"\n" -"<i> <u>Vorsicht!</u> Nicht ohne vorherige Prüfungen diese Dateien löschen, sonst können schwerwiegende " -"Inkonsistenzen in der Datenbank die Folge sein.</i>\n" +"3 - Wenn weder 1 noch 2 geholfen haben oder sicher keine andere darktable " +"Instanz ausgeführt wird:\n" +" Wahrscheinlich wurde die letzte Instanz von darktable abnormal " +"beendet. \n" +" Auf die Schaltfläche „Datenbanksperrdateien löschen“ klicken, um die " +"Dateien <i>Data.db.lock</i> und <i>library.db.lock</i>zu entfernen. \n" +"\n" +"<i> <u>Vorsicht!</u> Nicht ohne vorherige Prüfungen diese Dateien löschen, " +"sonst können schwerwiegende Inkonsistenzen in der Datenbank die Folge sein.</" +"i>\n" #. clang-format on -#: ../src/common/database.c:2777 +#: ../src/common/database.c:3371 msgid "error starting darktable" -msgstr "Fehler beim starten von darktable" +msgstr "Fehler beim Starten von darktable" -#: ../src/common/database.c:2778 ../src/libs/collect.c:2915 ../src/libs/export_metadata.c:288 -#: ../src/libs/import.c:1702 ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:227 ../src/libs/modulegroups.c:3464 ../src/libs/styles.c:438 ../src/libs/styles.c:621 -#: ../src/libs/tagging.c:1484 ../src/libs/tagging.c:1572 ../src/libs/tagging.c:1653 ../src/libs/tagging.c:1783 -#: ../src/libs/tagging.c:2057 ../src/libs/tagging.c:3471 -msgid "cancel" -msgstr "abbrechen" - -#: ../src/common/database.c:2778 -msgid "delete database lock files" -msgstr "Datenbank Sperrdateien löschen" +#: ../src/common/database.c:3372 +msgid "_delete database lock files" +msgstr "Datenbank Sperrdateien _löschen" -#: ../src/common/database.c:2784 +#: ../src/common/database.c:3378 msgid "are you sure?" msgstr "Absolut sicher?" -#: ../src/common/database.c:2785 +#: ../src/common/database.c:3379 msgid "" "\n" "do you really want to delete the lock files?\n" @@ -5618,17 +6409,19 @@ "\n" "Sollen die Sperrdateien wirklich gelöscht werden?\n" -#: ../src/common/database.c:2785 ../src/common/variables.c:703 ../src/develop/imageop_gui.c:210 -#: ../src/imageio/format/pdf.c:636 ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 ../src/libs/metadata_view.c:670 -msgid "yes" -msgstr "ja" +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2597 +msgid "_no" +msgstr "_nein" -#: ../src/common/database.c:2801 ../src/libs/export_metadata.c:164 ../src/libs/geotagging.c:811 +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2596 +msgid "_yes" +msgstr "_ja" + +#: ../src/common/database.c:3395 msgid "done" msgstr "erledigt" -#: ../src/common/database.c:2802 +#: ../src/common/database.c:3396 msgid "" "\n" "successfully deleted the lock files.\n" @@ -5638,21 +6431,23 @@ "Sperrdateien erfolgreich gelöscht.\n" "darktable kann neu gestartet werden.\n" -#. the button to close the popup -#: ../src/common/database.c:2803 ../src/common/database.c:2810 ../src/libs/filters/filename.c:452 -msgid "ok" -msgstr "OK" +#: ../src/common/database.c:3397 ../src/common/database.c:3404 +#: ../src/gui/accelerators.c:2580 ../src/gui/accelerators.c:2662 +#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:566 +msgid "_ok" +msgstr "_OK" -#: ../src/common/database.c:2806 +#: ../src/common/database.c:3400 msgid "error" msgstr "Fehler" -#: ../src/common/database.c:2807 +#: ../src/common/database.c:3401 #, c-format msgid "" "\n" "at least one file could not be removed.\n" -"you may try to manually delete the files <i>data.db.lock</i> and <i>library.db.lock</i>\n" +"you may try to manually delete the files <i>data.db.lock</i> and <i>library." +"db.lock</i>\n" "in folder <a href=\"file:///%s\">%s</a>.\n" msgstr "" "\n" @@ -5660,23 +6455,52 @@ "Ggf. die Dateien <i>Data.db.lock</i> und <i>Library.db.lock</i> \n" "im Ordner <a href=\"file:///%s\">%s</a> manuell löschen.\n" -#: ../src/common/database.c:2924 +#: ../src/common/database.c:3518 #, c-format -msgid "the database lock file contains a pid that seems to be alive in your system: %d" -msgstr "Die Datenbank-Lock-Datei enthält eine PID, die zu einem laufenden Programm passt: %d" +msgid "" +"the database lock file contains a pid that seems to be alive in your system: " +"%d" +msgstr "" +"Die Datenbank-Lock-Datei enthält eine PID, die zu einem laufenden Programm " +"passt: %d" -#: ../src/common/database.c:2931 +#: ../src/common/database.c:3525 #, c-format msgid "the database lock file seems to be empty" msgstr "Die Datenbank-Lock-Datei scheint leer zu sein" -#: ../src/common/database.c:2941 +#: ../src/common/database.c:3535 #, c-format msgid "error opening the database lock file for reading: %s" msgstr "Fehler beim Öffnen der Datenbank-Lock-Datei zum Lesen: %s" +#: ../src/common/database.c:3605 +#, c-format +msgid "" +"the database schema version of\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"is too new for this build of darktable (this means the database was created " +"or upgraded by a newer darktable version)\n" +msgstr "" +"Die Datenbankschema Version von\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"ist zu neu für diesen Build von darktable (das bedeutet, dass die Datenbank " +"mit einer neueren darktable-Version erstellt oder aktualisiert wurde)\n" + +#: ../src/common/database.c:3612 +msgid "darktable - too new db version" +msgstr "darktable - Datenbank Version zu neu" + +#: ../src/common/database.c:3613 +msgid "_quit darktable" +msgstr "darktable _beenden" + #. the database has to be upgraded, let's ask user -#: ../src/common/database.c:2978 +#: ../src/common/database.c:3628 #, c-format msgid "" "the database schema has to be upgraded for\n" @@ -5695,20 +6519,21 @@ "\n" "Möchtest Du fortfahren oder jetzt beenden, um ein Backup zu erstellen\n" -#: ../src/common/database.c:2986 +#: ../src/common/database.c:3636 msgid "darktable - schema migration" msgstr "darktable - Datenbank Umstellung" -#: ../src/common/database.c:2987 ../src/common/database.c:3306 ../src/common/database.c:3324 -#: ../src/common/database.c:3491 ../src/common/database.c:3509 -msgid "close darktable" -msgstr "darktable schließen" - -#: ../src/common/database.c:2987 -msgid "upgrade database" -msgstr "Datenbank aktualisieren" +#: ../src/common/database.c:3637 ../src/common/database.c:3959 +#: ../src/common/database.c:3974 ../src/common/database.c:4142 +#: ../src/common/database.c:4157 +msgid "_close darktable" +msgstr "darktable _schließen" + +#: ../src/common/database.c:3637 +msgid "_upgrade database" +msgstr "Datenbank _aktualisieren" -#: ../src/common/database.c:3286 ../src/common/database.c:3471 +#: ../src/common/database.c:3939 ../src/common/database.c:4122 #, c-format msgid "" "quick_check said:\n" @@ -5717,21 +6542,21 @@ "quick_check ergab:\n" "%s \n" -#: ../src/common/database.c:3303 ../src/common/database.c:3321 ../src/common/database.c:3488 -#: ../src/common/database.c:3506 +#: ../src/common/database.c:3956 ../src/common/database.c:3971 +#: ../src/common/database.c:4139 ../src/common/database.c:4154 msgid "darktable - error opening database" msgstr "darktable - Fehler beim Öffnen der Datenbank" -#: ../src/common/database.c:3308 ../src/common/database.c:3493 -msgid "attempt restore" -msgstr "Datenbank wiederherstellen" - -#: ../src/common/database.c:3310 ../src/common/database.c:3326 ../src/common/database.c:3495 -#: ../src/common/database.c:3511 -msgid "delete database" -msgstr "Datenbank löschen" +#: ../src/common/database.c:3960 ../src/common/database.c:4143 +msgid "_attempt restore" +msgstr "Datenbank _wiederherstellen" + +#: ../src/common/database.c:3961 ../src/common/database.c:3975 +#: ../src/common/database.c:4144 ../src/common/database.c:4158 +msgid "_delete database" +msgstr "Datenbank _löschen" -#: ../src/common/database.c:3314 ../src/common/database.c:3499 +#: ../src/common/database.c:3964 ../src/common/database.c:4147 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup, attempt an automatic restore\n" @@ -5739,21 +6564,24 @@ "and start with a new one?" msgstr "" "Wie soll fortgefahren werden?\n" -" - darktable jetzt schließen, um die Datenbank manuell aus einem Backup wiederherzustellen\n" -" - Eine automatische Wiederherstellung aus dem letzten Datenbanksnapshot versuchen\n" +" - darktable jetzt schließen, um die Datenbank manuell aus einem Backup " +"wiederherzustellen\n" +" - Eine automatische Wiederherstellung aus dem letzten Datenbank-Snapshot " +"versuchen\n" " - Die beschädigte Datenbank löschen, um mit einer neuen Datenbank zu starten" -#: ../src/common/database.c:3330 ../src/common/database.c:3515 +#: ../src/common/database.c:3978 ../src/common/database.c:4161 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup or delete the corrupted database\n" "and start with a new one?" msgstr "" "Wie soll fortgefahren werden?\n" -" - darktable jetzt schließen, um die Datenbank manuell aus einem Backup wiederherzustellen\n" +" - darktable jetzt schließen, um die Datenbank manuell aus einem Backup " +"wiederherzustellen\n" " - Die beschädigte Datenbank löschen, um mit einer neuen Datenbank zu starten" -#: ../src/common/database.c:3337 ../src/common/database.c:3520 +#: ../src/common/database.c:3985 ../src/common/database.c:4166 #, c-format msgid "" "an error has occurred while trying to open the database from\n" @@ -5771,142 +6599,158 @@ "%s%s" #: ../src/common/eigf.h:288 -msgid "fast exposure independent guided filter failed to allocate memory, check your RAM settings" +msgid "" +"fast exposure independent guided filter failed to allocate memory, check " +"your RAM settings" msgstr "" -"schneller belichtungsunabhängiger geführter Filter konnte keinen Speicher allokieren, überprüfe die RAM-" -"Einstellungen" +"schneller belichtungsunabhängiger geführter Filter konnte keinen Speicher " +"allokieren, überprüfe die RAM-Einstellungen" -#: ../src/common/exif.cc:5200 +#: ../src/common/exif.cc:5482 #, c-format msgid "cannot read XMP file '%s': '%s'" -msgstr "konnte xmp Datei „%s“ nicht lesen: „%s“" +msgstr "konnte XMP Datei „%s“ nicht lesen: „%s“" -#: ../src/common/exif.cc:5258 +#: ../src/common/exif.cc:5540 #, c-format msgid "cannot write XMP file '%s': '%s'" -msgstr "konnte xmp Datei „%s“ nicht schreiben: „%s“" +msgstr "konnte XMP Datei „%s“ nicht schreiben: „%s“" #: ../src/common/fast_guided_filter.h:316 msgid "fast guided filter failed to allocate memory, check your RAM settings" -msgstr "Dem schnellen geführten Filter konnte kein Speicher zuweisen werden, überprüfe die RAM-Einstellungen." +msgstr "" +"Dem schnellen geführten Filter konnte kein Speicher zuweisen werden, " +"überprüfe die RAM-Einstellungen." -#: ../src/common/film.c:345 +#: ../src/common/film.c:356 msgid "do you want to remove this empty directory?" msgid_plural "do you want to remove these empty directories?" msgstr[0] "Soll dieses leere Verzeichnis entfernt werden?" msgstr[1] "Sollen diese leeren Verzeichnisse entfernt werden?" -#: ../src/common/film.c:352 +#: ../src/common/film.c:363 msgid "remove empty directory?" msgid_plural "remove empty directories?" msgstr[0] "leeres Verzeichnis entfernen?" msgstr[1] "leere Verzeichnisse entfernen?" -#: ../src/common/film.c:371 ../src/gui/preferences.c:816 ../src/gui/styles_dialog.c:548 ../src/libs/geotagging.c:829 -#: ../src/libs/import.c:1551 +#: ../src/common/film.c:383 ../src/gui/preferences.c:814 +#: ../src/gui/styles_dialog.c:556 ../src/libs/geotagging.c:830 +#: ../src/libs/import.c:1560 msgid "name" msgstr "Name" -#: ../src/common/film.c:477 -msgid "cannot remove film roll having local copies with non accessible originals" +#: ../src/common/film.c:492 +msgid "" +"cannot remove film roll having local copies with non accessible originals" msgstr "" -"Filmrolle kann nicht entfernt werden, so lange lokale Kopien existieren, für die kein Zugriff auf die Originale " -"besteht" +"Filmrolle kann nicht entfernt werden, so lange lokale Kopien existieren, für " +"die kein Zugriff auf die Originale besteht" -#: ../src/common/history.c:840 +#: ../src/common/history.c:876 msgid "you need to copy history from an image before you paste it onto another" -msgstr "Es muss erst der Verlauf eines Bildes kopiert werden, bevor er auf ein anderes Bild angewandt werden kann." +msgstr "" +"Es muss erst der Verlauf eines Bildes kopiert werden, bevor er auf ein " +"anderes Bild angewandt werden kann." -#: ../src/common/image.c:325 +#: ../src/common/image.c:333 msgid "orphaned image" msgstr "verwaistes Bild" -#: ../src/common/image.c:620 +#: ../src/common/image.c:629 #, c-format msgid "geo-location undone for %d image" msgid_plural "geo-location undone for %d images" msgstr[0] "Geolokalisierung für %d Bild zurück gesetzt" msgstr[1] "Geolokalisierung für %d Bilder zurück gesetzt" -#: ../src/common/image.c:622 +#: ../src/common/image.c:631 #, c-format msgid "geo-location re-applied to %d image" msgid_plural "geo-location re-applied to %d images" msgstr[0] "Geolokalisierung für %d Bild wieder zugeordnet" msgstr[1] "Geolokalisierung für %d Bilder wieder zugeordnet" -#: ../src/common/image.c:645 +#: ../src/common/image.c:654 #, c-format msgid "date/time undone for %d image" msgid_plural "date/time undone for %d images" msgstr[0] "Datum/Zeit für %d Bild zurück gesetzt" msgstr[1] "Datum/Zeit für %d Bilder zurück gesetzt" -#: ../src/common/image.c:647 +#: ../src/common/image.c:656 #, c-format msgid "date/time re-applied to %d image" msgid_plural "date/time re-applied to %d images" msgstr[0] "setze Datum/Zeit für %d Bild wieder zugeordnet" msgstr[1] "setze Datum/Zeit für %d Bilder wieder zugeordnet" -#: ../src/common/image.c:2188 +#: ../src/common/image.c:2260 #, c-format msgid "cannot access local copy `%s'" msgstr "auf lokale Kopie „%s” kann nicht zugegriffen werden." -#: ../src/common/image.c:2195 +#: ../src/common/image.c:2267 #, c-format msgid "cannot write local copy `%s'" msgstr "lokale Kopie „%s” kann nicht erzeugt werden." -#: ../src/common/image.c:2202 +#: ../src/common/image.c:2274 #, c-format msgid "error moving local copy `%s' -> `%s'" msgstr "Fehler beim Verschieben lokaler Kopie „%s” auf „%s”" -#: ../src/common/image.c:2219 +#: ../src/common/image.c:2291 #, c-format msgid "error moving `%s': file not found" msgstr "Fehler beim Verschieben „%s”: Datei nicht gefunden" -#: ../src/common/image.c:2229 +#: ../src/common/image.c:2301 #, c-format msgid "error moving `%s' -> `%s': file exists" msgstr "Fehler beim Verschieben „%s” auf „%s”: Datei existiert bereits" -#: ../src/common/image.c:2233 +#: ../src/common/image.c:2305 #, c-format msgid "error moving `%s' -> `%s'" msgstr "Fehler beim Verschieben „%s” auf „%s”" -#: ../src/common/image.c:2562 +#: ../src/common/image.c:2634 msgid "cannot create local copy when the original file is not accessible." -msgstr "lokale Kopie kann nicht erzeugt werden, wenn die Originaldatei nicht zugänglich ist." +msgstr "" +"lokale Kopie kann nicht erzeugt werden, wenn die Originaldatei nicht " +"zugänglich ist." -#: ../src/common/image.c:2576 +#: ../src/common/image.c:2648 msgid "cannot create local copy." msgstr "lokale Kopie kann nicht erzeugt werden." -#: ../src/common/image.c:2656 ../src/control/jobs/control_jobs.c:777 +#: ../src/common/image.c:2728 ../src/control/jobs/control_jobs.c:777 msgid "cannot remove local copy when the original file is not accessible." -msgstr "lokale Kopie kann nicht entfernt werden, wenn die Originaldatei nicht zugänglich ist." +msgstr "" +"lokale Kopie kann nicht entfernt werden, wenn die Originaldatei nicht " +"zugänglich ist." -#: ../src/common/image.c:2821 +#: ../src/common/image.c:2901 #, c-format msgid "%d local copy has been synchronized" msgid_plural "%d local copies have been synchronized" msgstr[0] "%d lokale Kopie wurde synchronisiert" msgstr[1] "%d lokale Kopien wurden synchronisiert" -#: ../src/common/image.c:3022 +#: ../src/common/image.c:3102 msgid "<b>WARNING</b>: camera is missing samples!" msgstr "<b>WARNUNG</b>: Es fehlen Beispielbilder für die Kamera!" -#: ../src/common/image.c:3023 -msgid "You must provide samples in <a href='https://raw.pixls.us/'>https://raw.pixls.us/</a>" -msgstr "Bitte unter <a href='https://raw.pixls.us/'>https://raw.pixls.us/</a> Beispielbilder bereitstellen" +#: ../src/common/image.c:3103 +msgid "" +"You must provide samples in <a href='https://raw.pixls.us/'>https://raw." +"pixls.us/</a>" +msgstr "" +"Bitte unter <a href='https://raw.pixls.us/'>https://raw.pixls.us/</a> " +"Beispielbilder bereitstellen" -#: ../src/common/image.c:3024 +#: ../src/common/image.c:3104 #, c-format msgid "" "for `%s' `%s'\n" @@ -5915,80 +6759,83 @@ "für „%s“ „%s“\n" "in so vielen Formaten/Komprimierungen/Bit-Stufen wie möglich" -#: ../src/common/image.c:3027 +#: ../src/common/image.c:3107 msgid "or the <b>RAW won't be readable</b> in next version." -msgstr "sonst ist das <b>RAW </b> in der nächsten Version <b>nicht mehr lesbar </b>." +msgstr "" +"sonst ist das <b>RAW </b> in der nächsten Version <b>nicht mehr lesbar </b>." -#: ../src/common/image.h:209 ../src/common/ratings.c:284 ../src/libs/history.c:843 ../src/libs/snapshots.c:779 +#: ../src/common/image.h:217 ../src/common/ratings.c:283 +#: ../src/imageio/format/avif.c:114 ../src/libs/history.c:843 +#: ../src/libs/snapshots.c:837 msgid "unknown" msgstr "unbekannt" #. EMPTY_FIELD -#: ../src/common/image.h:210 -msgid "tiff" +#: ../src/common/image.h:218 ../src/imageio/format/tiff.c:831 +msgid "TIFF" msgstr "TIFF" -#: ../src/common/image.h:211 -msgid "png" +#: ../src/common/image.h:219 ../src/imageio/format/png.c:599 +msgid "PNG" msgstr "PNG" -#: ../src/common/image.h:212 ../src/imageio/format/j2k.c:652 -msgid "j2k" -msgstr "J2K" +#: ../src/common/image.h:220 +msgid "JPEG 2000" +msgstr "JPEG 2000" -#: ../src/common/image.h:213 -msgid "jpeg" +#: ../src/common/image.h:221 +msgid "JPEG" msgstr "JPEG" -#: ../src/common/image.h:214 -msgid "exr" +#: ../src/common/image.h:222 +msgid "EXR" msgstr "EXR" -#: ../src/common/image.h:215 -msgid "rgbe" +#: ../src/common/image.h:223 +msgid "RGBE" msgstr "RGBE" -#: ../src/common/image.h:216 -msgid "pfm" +#: ../src/common/image.h:224 ../src/imageio/format/pfm.c:120 +msgid "PFM" msgstr "PFM" -#: ../src/common/image.h:217 +#: ../src/common/image.h:225 msgid "GraphicsMagick" msgstr "GraphicsMagick" -#: ../src/common/image.h:218 -msgid "rawspeed" -msgstr "rawspeed" - -#: ../src/common/image.h:219 -msgid "netpnm" -msgstr "NetPNM" +#: ../src/common/image.h:226 +msgid "RawSpeed" +msgstr "RawSpeed" + +#: ../src/common/image.h:227 +msgid "Netpbm" +msgstr "Netpbm" -#: ../src/common/image.h:220 -msgid "avif" +#: ../src/common/image.h:228 ../src/imageio/format/avif.c:728 +msgid "AVIF" msgstr "AVIF" -#: ../src/common/image.h:221 +#: ../src/common/image.h:229 msgid "ImageMagick" msgstr "ImageMagick" -#: ../src/common/image.h:222 -msgid "heif" +#: ../src/common/image.h:230 +msgid "HEIF" msgstr "HEIF" -#: ../src/common/image.h:223 -msgid "libraw" -msgstr "libraw" +#: ../src/common/image.h:231 +msgid "LibRaw" +msgstr "LibRaw" -#: ../src/common/image.h:224 -msgid "webp" +#: ../src/common/image.h:232 ../src/imageio/format/webp.c:380 +msgid "WebP" msgstr "WebP" -#: ../src/common/image.h:225 -msgid "jpeg xl" -msgstr "JPEG xl" +#: ../src/common/image.h:233 ../src/imageio/format/jxl.c:482 +msgid "JPEG XL" +msgstr "JPEG XL" -#: ../src/common/image.h:226 +#: ../src/common/image.h:234 msgid "QOI" msgstr "QOI" @@ -6008,15 +6855,18 @@ "einige oder alle Verarbeitungen wurden übersprungen." #: ../src/common/import_session.c:308 -msgid "couldn't expand to a unique filename for session, please check your import session settings." +msgid "" +"couldn't expand to a unique filename for session, please check your import " +"session settings." msgstr "" -"Konnte keinen einmaligen Dateinamen für die Sitzung generieren, bitte die Import-Sitzungs-Einstellungen überprüfen." +"Konnte keinen einmaligen Dateinamen für die Sitzung generieren, bitte die " +"Import-Sitzungs-Einstellungen überprüfen." #: ../src/common/import_session.c:401 msgid "requested session path not available. device not mounted?" msgstr "angeforderter Sitzungspfad nicht verfügbar. Gerät nicht verbunden?" -#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:197 +#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:195 msgid "legacy" msgstr "Legacy" @@ -6028,7 +6878,7 @@ msgid "v3.0 JPEG" msgstr "v3.0 JPEG" -#: ../src/common/iop_profile.c:1205 +#: ../src/common/iop_profile.c:1207 #, c-format msgid "" "darktable loads %s from\n" @@ -6052,13 +6902,15 @@ msgstr "Herausgeber" #. title -#: ../src/common/metadata.c:48 ../src/imageio/format/pdf.c:574 ../src/imageio/format/pdf.c:576 -#: ../src/imageio/storage/gallery.c:169 ../src/imageio/storage/gallery.c:170 ../src/imageio/storage/latex.c:169 -#: ../src/imageio/storage/piwigo.c:1058 ../src/libs/filtering.c:69 +#: ../src/common/metadata.c:48 ../src/imageio/format/pdf.c:574 +#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:219 +#: ../src/imageio/storage/gallery.c:222 ../src/imageio/storage/latex.c:206 +#: ../src/imageio/storage/piwigo.c:1091 ../src/libs/filtering.c:69 msgid "title" msgstr "Titel" -#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:552 ../src/libs/filtering.c:70 +#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:563 +#: ../src/libs/filtering.c:70 msgid "description" msgstr "Beschreibung" @@ -6074,11 +6926,12 @@ msgid "version name" msgstr "Versionsname" -#: ../src/common/metadata.c:53 ../src/libs/live_view.c:319 ../src/libs/metadata_view.c:124 +#: ../src/common/metadata.c:53 ../src/libs/live_view.c:319 +#: ../src/libs/metadata_view.c:126 msgid "image id" msgstr "Bild-ID" -#: ../src/common/mipmap_cache.c:1065 ../src/imageio/imageio.c:787 +#: ../src/common/mipmap_cache.c:1070 ../src/imageio/imageio.c:799 #, c-format msgid "image `%s' is not available!" msgstr "Bild „%s” ist nicht verfügbar!" @@ -6092,7 +6945,43 @@ msgid "noiseprofile file `%s' is not valid" msgstr "Rauschprofildatei „%s“ ist defekt" -#: ../src/common/opencl.c:1376 +#: ../src/common/opencl.c:1165 +msgid "no working OpenCL library found" +msgstr "keine funktionierende OpenCL-Bibliothek gefunden" + +#: ../src/common/opencl.c:1185 +msgid "" +"platform detection failed. some possible causes:\n" +" - OpenCL ICD (ocl-icd) missing,\n" +" - previous OpenCL errors leading to blocked devices,\n" +" - power management problems,\n" +" - buggy drivers,\n" +" - no OpenCL driver installed." +msgstr "" +"Plattformerkennung fehlgeschlagen. Einige mögliche Gründe:\n" +" - OpenCL ICD (ocl-icd) fehlt,\n" +" - frühere OpenCL-Fehler, die zu blockierten Geräten führen,\n" +" - Probleme mit der Energieverwaltung,\n" +" - fehlerhafte Treiber,\n" +" - kein OpenCL-Treiber installiert." + +#: ../src/common/opencl.c:1277 +msgid "no devices found for unknown platform" +msgstr "keine Geräte für unbekannte Plattform gefunden" + +#: ../src/common/opencl.c:1323 +msgid "not enough memory for OpenCL devices" +msgstr "nicht genügend Speicher für OpenCL-Geräte" + +#: ../src/common/opencl.c:1358 +msgid "no OpenCL devices found" +msgstr "keine OpenCL Geräte gefunden" + +#: ../src/common/opencl.c:1401 +msgid "no suitable OpenCL devices found" +msgstr "keine geeigneten OpenCL Geräte gefunden" + +#: ../src/common/opencl.c:1422 #, c-format msgid "" "OpenCL initializing problem:\n" @@ -6101,27 +6990,24 @@ "OpenCL Initialisierungsproblem:\n" "%s" -#: ../src/common/opencl.c:1439 -msgid "due to a slow GPU hardware acceleration using OpenCL has been deactivated" -msgstr "OpenCL-Hardware-Beschleunigung wurde aufgrund einer langsamen GPU deaktiviert" - -#: ../src/common/opencl.c:1449 -msgid "multiple GPUs detected - OpenCL scheduling profile has been set accordingly" -msgstr "mehrere GPUs gefunden – OpenCL-Scheduler-Profil wurde entsprechend gesetzt" - -#: ../src/common/opencl.c:1462 -msgid "very fast GPU detected - OpenCL scheduling profile has been set accordingly" -msgstr "Sehr schnelle GPU gefunden – OpenCL-Scheduler-Profil wurde entsprechend gesetzt" - -#: ../src/common/opencl.c:1471 -msgid "OpenCL scheduling profile set to default" -msgstr "OpenCL-Scheduler-Profil wurde auf den Standardwert gesetzt" +#: ../src/common/opencl.c:1454 +msgid "OpenCL scheduling profile set to default, setup has changed" +msgstr "" +"Setup hat sich geändert; OpenCL-Scheduler-Profil wurde auf den Standardwert " +"gesetzt" + +#: ../src/common/opencl.c:2283 +#, c-format +msgid "building OpenCL program %s for %s" +msgstr "Generieren des OpenCL-Programms %s für %s" -#: ../src/common/pdf.h:88 ../src/iop/lens.cc:3441 ../src/libs/filters/focal.c:74 ../src/libs/print_settings.c:81 +#: ../src/common/pdf.h:88 ../src/iop/lens.cc:4071 +#: ../src/libs/filters/focal.c:74 ../src/libs/print_settings.c:81 msgid "mm" msgstr "mm" -#: ../src/common/pdf.h:89 ../src/libs/export.c:520 ../src/libs/export.c:1145 ../src/libs/print_settings.c:81 +#: ../src/common/pdf.h:89 ../src/libs/export.c:555 ../src/libs/export.c:1241 +#: ../src/libs/print_settings.c:81 msgid "cm" msgstr "cm" @@ -6133,7 +7019,7 @@ msgid "\"" msgstr "\"" -#: ../src/common/pdf.h:104 ../src/iop/borders.c:958 +#: ../src/common/pdf.h:104 ../src/iop/borders.c:971 msgid "A4" msgstr "A4" @@ -6151,7 +7037,9 @@ #: ../src/common/pwstorage/pwstorage.c:85 msgid "GNOME Keyring backend is no longer supported. configure a different one" -msgstr "Das GNOME Keyring-Backend wird nicht mehr unterstützt. Wähle bitte ein anderes" +msgstr "" +"Das GNOME Keyring-Backend wird nicht mehr unterstützt. Bitte ein anderes " +"auswählen" #: ../src/common/ratings.c:172 #, c-format @@ -6171,65 +7059,66 @@ msgid "no images selected to apply rating" msgstr "kein Bild ausgewählt, um Bewertung anzuwenden" -#: ../src/common/ratings.c:275 ../src/libs/metadata_view.c:351 +#: ../src/common/ratings.c:274 ../src/libs/metadata_view.c:355 msgid "image rejected" msgstr "Bild abgelehnt" -#: ../src/common/ratings.c:277 +#: ../src/common/ratings.c:276 msgid "image rated to 0 star" msgstr "Bildbewertung kein Stern" -#: ../src/common/ratings.c:279 +#: ../src/common/ratings.c:278 #, c-format msgid "image rated to %s" msgstr "Bildbewertung %s" -#: ../src/common/ratings.c:306 ../src/libs/select.c:39 ../src/views/lighttable.c:766 +#: ../src/common/ratings.c:305 ../src/views/lighttable.c:766 msgid "select" msgstr "auswählen" -#: ../src/common/ratings.c:307 +#: ../src/common/ratings.c:306 msgid "upgrade" msgstr "höherstufen" -#: ../src/common/ratings.c:308 +#: ../src/common/ratings.c:307 msgid "downgrade" msgstr "herunterstufen" -#: ../src/common/ratings.c:312 +#: ../src/common/ratings.c:311 msgid "zero" msgstr "Null" -#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:277 +#: ../src/common/ratings.c:312 ../src/libs/filters/rating_range.c:304 msgid "one" msgstr "eins" -#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:278 +#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:305 msgid "two" msgstr "zwei" -#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:279 +#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:306 msgid "three" msgstr "drei" -#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:280 +#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:307 msgid "four" msgstr "Vier" -#: ../src/common/ratings.c:317 ../src/libs/filters/rating_range.c:281 +#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:308 msgid "five" msgstr "Fünf" -#: ../src/common/ratings.c:318 +#: ../src/common/ratings.c:317 msgid "reject" msgstr "verwerfen" -#: ../src/common/styles.c:244 +#: ../src/common/styles.c:243 #, c-format msgid "style with name '%s' already exists" msgstr "Stil mit dem Namen „%s” existiert bereits" -#: ../src/common/styles.c:270 ../src/common/styles.c:1776 ../src/libs/styles.c:54 +#: ../src/common/styles.c:270 ../src/common/styles.c:1783 +#: ../src/libs/styles.c:54 msgid "styles" msgstr "Stile" @@ -6238,56 +7127,57 @@ msgid "style named '%s' successfully created" msgstr "Stil mit dem Namen „%s” erfolgreich angelegt" -#: ../src/common/styles.c:689 ../src/common/styles.c:719 ../src/common/styles.c:759 ../src/dtgtk/culling.c:1097 +#: ../src/common/styles.c:688 ../src/common/styles.c:718 +#: ../src/common/styles.c:758 ../src/dtgtk/culling.c:1066 msgid "no image selected!" msgstr "Kein Bild ausgewählt!" -#: ../src/common/styles.c:693 +#: ../src/common/styles.c:692 #, c-format msgid "style %s successfully applied!" msgstr "Stil „%s” erfolgreich angewendet!" -#: ../src/common/styles.c:709 +#: ../src/common/styles.c:708 msgid "no images nor styles selected!" msgstr "Kein Bild oder Stil ausgewählt!" -#: ../src/common/styles.c:714 +#: ../src/common/styles.c:713 msgid "no styles selected!" msgstr "Kein Stil ausgewählt!" -#: ../src/common/styles.c:744 +#: ../src/common/styles.c:743 msgid "style successfully applied!" msgid_plural "styles successfully applied!" msgstr[0] "Stil erfolgreich angewandt" msgstr[1] "Stile erfolgreich angewandt" -#: ../src/common/styles.c:840 +#: ../src/common/styles.c:838 #, c-format msgid "module `%s' version mismatch: %d != %d" msgstr "Modul „%s” hat Versionskonflikt: %d ≠ %d" -#: ../src/common/styles.c:1124 +#: ../src/common/styles.c:1125 #, c-format msgid "applied style `%s' on current image" msgstr "Stil „%s” auf aktuelles Bild angewandt" -#: ../src/common/styles.c:1378 +#: ../src/common/styles.c:1383 #, c-format msgid "failed to overwrite style file for %s" msgstr "Fehler beim Überschreiben der Stil-Datei für „%s”" -#: ../src/common/styles.c:1384 +#: ../src/common/styles.c:1389 #, c-format msgid "style file for %s exists" msgstr "Stil-Datei für „%s” existiert bereits" -#: ../src/common/styles.c:1667 +#: ../src/common/styles.c:1674 #, c-format msgid "style %s was successfully imported" msgstr "Stil „%s” erfolgreich importiert" #. Failed to open file, clean up. -#: ../src/common/styles.c:1711 +#: ../src/common/styles.c:1718 #, c-format msgid "could not read file `%s'" msgstr "Konnte Datei „%s” nicht lesen!" @@ -6298,12 +7188,20 @@ #: ../src/common/utility.c:506 msgid "below sea level" -msgstr "unter Null" +msgstr "unter Meeresspiegel" -#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:880 +#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:907 msgid "m" msgstr "m" +#: ../src/common/variables.c:712 ../src/develop/imageop_gui.c:210 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "yes" +msgstr "ja" + #. Column 1 - "make" of the camera. #. * Column 2 - "model" (use the "make" and "model" as provided by DCRaw). #. * Column 3 - WB name. @@ -6316,7 +7214,7 @@ #. * #. * WB name is standardized to one of the following: #. "Sunlight" and other variation should be switched to this: -#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:323 +#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:320 msgid "daylight" msgstr "Tageslicht" @@ -6418,7 +7316,7 @@ msgid "underwater" msgstr "unter Wasser" -#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2447 +#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2286 msgid "black & white" msgstr "schwarz & weiß" @@ -6438,99 +7336,106 @@ msgid "auto WB" msgstr "automatischer Weißabgleich" -#: ../src/control/control.c:66 ../src/gui/accelerators.c:138 ../src/views/darkroom.c:2162 +#: ../src/control/control.c:69 ../src/gui/accelerators.c:156 +#: ../src/views/darkroom.c:2029 msgid "hold" msgstr "halten" -#: ../src/control/control.c:102 ../src/control/control.c:205 +#: ../src/control/control.c:108 ../src/control/control.c:214 msgid "modifiers" msgstr "Modifikatortasten" -#: ../src/control/control.c:111 +#: ../src/control/control.c:117 msgctxt "accel" msgid "global" msgstr "Global" -#: ../src/control/control.c:118 +#: ../src/control/control.c:124 msgctxt "accel" msgid "views" msgstr "Ansichten" -#: ../src/control/control.c:125 +#: ../src/control/control.c:131 msgctxt "accel" msgid "thumbtable" msgstr "Bilderübersicht" -#: ../src/control/control.c:132 +#: ../src/control/control.c:138 msgctxt "accel" msgid "utility modules" msgstr "Hilfsmodule" -#: ../src/control/control.c:139 +#: ../src/control/control.c:145 msgctxt "accel" msgid "format" msgstr "Format" -#: ../src/control/control.c:146 +#: ../src/control/control.c:152 msgctxt "accel" msgid "storage" msgstr "Speicherplatz" # keine Ahnung, ob das passt, konnte den String in der GUI nicht finden. -#: ../src/control/control.c:153 +#: ../src/control/control.c:159 msgctxt "accel" msgid "processing modules" msgstr "Bearbeitungsmodule" -#: ../src/control/control.c:160 +#: ../src/control/control.c:166 msgctxt "accel" msgid "<blending>" msgstr "<Überblendung>" -#: ../src/control/control.c:167 +#: ../src/control/control.c:173 msgctxt "accel" msgid "Lua scripts" msgstr "Lua-Skripte" -#: ../src/control/control.c:174 +#: ../src/control/control.c:180 msgctxt "accel" msgid "fallbacks" msgstr "Fallback" # keine Ahnung, ob das passt, konnte den String in der GUI nicht finden. -#: ../src/control/control.c:183 +#: ../src/control/control.c:189 msgctxt "accel" msgid "<focused>" msgstr "<Fokus>" -#: ../src/control/control.c:202 +#: ../src/control/control.c:209 msgid "show accels window" msgstr "zeige Tastenbelegungsübersicht" -#: ../src/control/control.c:363 +#: ../src/control/control.c:371 msgid "working..." msgstr "arbeite…" -#: ../src/control/crawler.c:425 +#: ../src/control/crawler.c:418 #, c-format msgid "ERROR: %s NOT synced XMP → DB" msgstr "ERROR: %s XMP → DB nicht synchronisiert" -#: ../src/control/crawler.c:426 ../src/control/crawler.c:492 ../src/control/crawler.c:561 -msgid "ERROR: cannot write the database. the destination may be full, offline or read-only." -msgstr "Fehler: In die Datenbank kann nicht geschrieben werden. Das Ziel kann gesperrt sein." +#: ../src/control/crawler.c:419 ../src/control/crawler.c:485 +#: ../src/control/crawler.c:554 +msgid "" +"ERROR: cannot write the database. the destination may be full, offline or " +"read-only." +msgstr "" +"Fehler: In die Datenbank kann nicht geschrieben werden. Das Ziel kann " +"gesperrt sein." -#: ../src/control/crawler.c:433 +#: ../src/control/crawler.c:426 #, c-format msgid "SUCCESS: %s synced XMP → DB" msgstr "SUCCESS: %s XMP → DB synchronisiert" -#: ../src/control/crawler.c:455 +#: ../src/control/crawler.c:448 #, c-format msgid "ERROR: %s NOT synced DB → XMP" msgstr "ERROR: %s DB → XMP nicht synchronisiert" -#: ../src/control/crawler.c:457 ../src/control/crawler.c:516 ../src/control/crawler.c:582 +#: ../src/control/crawler.c:450 ../src/control/crawler.c:509 +#: ../src/control/crawler.c:575 #, c-format msgid "" "ERROR: cannot write %s \n" @@ -6539,125 +7444,133 @@ "Fehler: kann %s nicht schreiben \n" "Das Ziel kann voll, offline oder schreibgeschützt sein." -#: ../src/control/crawler.c:463 +#: ../src/control/crawler.c:456 #, c-format msgid "SUCCESS: %s synced DB → XMP" msgstr "SUCCESS: %s DB → XMP synchronisiert" -#: ../src/control/crawler.c:489 +#: ../src/control/crawler.c:482 #, c-format msgid "ERROR: %s NOT synced new (XMP) → old (DB)" msgstr "ERROR: %s neu (XMP) → alt (DB) nicht synchronisiert" -#: ../src/control/crawler.c:499 +#: ../src/control/crawler.c:492 #, c-format msgid "SUCCESS: %s synced new (XMP) → old (DB)" msgstr "SUCCESS: %s neu (XMP) → alt (DB) synchronisiert" -#: ../src/control/crawler.c:513 +#: ../src/control/crawler.c:506 #, c-format msgid "ERROR: %s NOT synced new (DB) → old (XMP)" msgstr "ERROR: %s neu (DB) → alt (XMP) nicht synchronisiert" -#: ../src/control/crawler.c:521 +#: ../src/control/crawler.c:514 #, c-format msgid "SUCCESS: %s synced new (DB) → old (XMP)" msgstr "SUCCESS: %s neu (DB) → alt (XMP) synchronisiert" -#: ../src/control/crawler.c:530 ../src/control/crawler.c:598 +#: ../src/control/crawler.c:523 ../src/control/crawler.c:591 #, c-format msgid "EXCEPTION: %s has inconsistent timestamps" msgstr "EXCEPTION: %s hat inkonsistente Zeitstempel" -#: ../src/control/crawler.c:558 +#: ../src/control/crawler.c:551 #, c-format msgid "ERROR: %s NOT synced old (XMP) → new (DB)" msgstr "ERROR: %s alt (XMP) → neu (DB) nicht synchronisiert" -#: ../src/control/crawler.c:567 +#: ../src/control/crawler.c:560 #, c-format msgid "SUCCESS: %s synced old (XMP) → new (DB)" msgstr "SUCCESS: %s alt (XMP) → neu (DB) synchronisiert" -#: ../src/control/crawler.c:579 +#: ../src/control/crawler.c:572 #, c-format msgid "ERROR: %s NOT synced old (DB) → new (XMP)" msgstr "ERROR: %s alt (DB) → neu (XMP) nicht synchronisiert" -#: ../src/control/crawler.c:588 +#: ../src/control/crawler.c:581 #, c-format msgid "SUCCESS: %s synced old (DB) → new (XMP)" msgstr "SUCCESS: %s alt (DB) → neu (XMP) synchronisiert" -#: ../src/control/crawler.c:670 +#: ../src/control/crawler.c:663 #, c-format msgid "%id %02dh %02dm %02ds" msgstr "%it %02dh %02dm %02ds" -#: ../src/control/crawler.c:740 ../src/imageio/storage/disk.c:168 ../src/imageio/storage/gallery.c:154 -#: ../src/imageio/storage/latex.c:153 ../src/imageio/storage/latex.c:171 +#: ../src/control/crawler.c:716 +msgid "XMP" +msgstr "XMP" + +#: ../src/control/crawler.c:733 ../src/imageio/storage/disk.c:250 +#: ../src/imageio/storage/gallery.c:202 ../src/imageio/storage/latex.c:190 +#: ../src/imageio/storage/latex.c:208 msgid "path" msgstr "Pfad" -#: ../src/control/crawler.c:749 +#: ../src/control/crawler.c:742 msgid "XMP timestamp" -msgstr "XMP-Zeitstempel" +msgstr "XMP Zeitstempel" -#: ../src/control/crawler.c:754 +#: ../src/control/crawler.c:747 msgid "database timestamp" msgstr "Datenbank-Zeitstempel" -#: ../src/control/crawler.c:759 +#: ../src/control/crawler.c:752 msgid "newest" msgstr "Neueste" -#: ../src/control/crawler.c:765 +#: ../src/control/crawler.c:758 msgid "time difference" msgstr "Zeitdifferenz" -#: ../src/control/crawler.c:777 +#: ../src/control/crawler.c:770 msgid "updated XMP sidecar files found" -msgstr "aktualisierte XMP-Dateien gefunden" +msgstr "aktualisierte XMP Dateien gefunden" -#: ../src/control/crawler.c:778 +#: ../src/control/crawler.c:771 msgid "_close" msgstr "_Schließen" #. setup selection accelerators #. action-box -#: ../src/control/crawler.c:793 ../src/dtgtk/thumbtable.c:2578 ../src/libs/import.c:1722 ../src/libs/select.c:135 +#: ../src/control/crawler.c:786 ../src/dtgtk/thumbtable.c:2755 +#: ../src/libs/import.c:1732 ../src/libs/select.c:136 msgid "select all" msgstr "alles auswählen" -#: ../src/control/crawler.c:794 ../src/dtgtk/thumbtable.c:2580 ../src/libs/import.c:1726 ../src/libs/select.c:139 +#: ../src/control/crawler.c:787 ../src/dtgtk/thumbtable.c:2757 +#: ../src/libs/import.c:1736 ../src/libs/select.c:140 msgid "select none" msgstr "nichts auswählen" -#: ../src/control/crawler.c:795 ../src/dtgtk/thumbtable.c:2582 ../src/libs/select.c:143 +#: ../src/control/crawler.c:788 ../src/dtgtk/thumbtable.c:2759 +#: ../src/libs/select.c:144 msgid "invert selection" msgstr "Auswahl invertieren" -#: ../src/control/crawler.c:807 +#: ../src/control/crawler.c:800 msgid "on the selection:" msgstr "für Auswahl:" -#: ../src/control/crawler.c:808 +#: ../src/control/crawler.c:801 msgid "keep the XMP edit" msgstr "XMP Bearbeitung behalten" -#: ../src/control/crawler.c:809 +#: ../src/control/crawler.c:802 msgid "keep the database edit" msgstr "Bearbeitung aus Datenbank behalten" -#: ../src/control/crawler.c:810 +#: ../src/control/crawler.c:803 msgid "keep the newest edit" msgstr "neueste Bearbeitung behalten" -#: ../src/control/crawler.c:811 +#: ../src/control/crawler.c:804 msgid "keep the oldest edit" msgstr "älteste Bearbeitung behalten" -#: ../src/control/crawler.c:836 +#: ../src/control/crawler.c:829 msgid "synchronization log" msgstr "Synchonisationsprotokoll" @@ -6687,6 +7600,10 @@ msgid "starting to import images from camera" msgstr "Starte Import der Bilder von der Kamera" +#: ../src/control/jobs/camera_jobs.c:302 +msgid "failed to import images from camera." +msgstr "Import der Bilder von der Kamera fehlgeschlagen" + #: ../src/control/jobs/camera_jobs.c:309 #, c-format msgid "importing %d image from camera" @@ -6700,11 +7617,13 @@ #: ../src/control/jobs/control_jobs.c:145 msgid "failed to create film roll for destination directory, aborting move.." -msgstr "Fehler beim Erstellen einer Filmrolle für das Zielverzeichnis, Verschieben abgebrochen" +msgstr "" +"Fehler beim Erstellen einer Filmrolle für das Zielverzeichnis, Verschieben " +"abgebrochen" #: ../src/control/jobs/control_jobs.c:388 msgid "exposure bracketing only works on raw images." -msgstr "Belichtungsreihen funktionieren nur mit Raw-Bildern." +msgstr "Belichtungsreihen funktionieren nur mit RAW-Bildern." #: ../src/control/jobs/control_jobs.c:395 msgid "images have to be of same size and orientation!" @@ -6768,7 +7687,8 @@ "Konnte „%s” nicht in den Papierkorb %s verschieben\n" "%s\n" "\n" -"Soll die Datei von der Festplatte gelöscht werden, ohne den Papierkorb zu verwenden?" +"Soll die Datei von der Festplatte gelöscht werden, ohne den Papierkorb zu " +"verwenden?" #: ../src/control/jobs/control_jobs.c:861 #, c-format @@ -6787,11 +7707,13 @@ msgid "_delete permanently" msgstr "_dauerhaft löschen" -#: ../src/control/jobs/control_jobs.c:878 ../src/control/jobs/control_jobs.c:882 +#: ../src/control/jobs/control_jobs.c:878 +#: ../src/control/jobs/control_jobs.c:882 msgid "_remove from library" msgstr "aus Bibliothek entfe_rnen" -#: ../src/control/jobs/control_jobs.c:884 +#: ../src/control/jobs/control_jobs.c:884 ../src/libs/styles.c:440 +#: ../src/libs/styles.c:625 msgid "_skip" msgstr "über_springen" @@ -6889,41 +7811,42 @@ msgid "exporting %d / %d to %s" msgstr "exportiere Bild %d / %d nach „%s”" -#: ../src/control/jobs/control_jobs.c:1459 ../src/views/darkroom.c:800 ../src/views/print.c:369 +#: ../src/control/jobs/control_jobs.c:1451 ../src/views/darkroom.c:721 +#: ../src/views/print.c:369 #, c-format msgid "image `%s' is currently unavailable" msgstr "Bild „%s” ist momentan nicht verfügbar" -#: ../src/control/jobs/control_jobs.c:1551 +#: ../src/control/jobs/control_jobs.c:1554 msgid "merge HDR image" msgstr "HDR-Bild zusammenfassen" -#: ../src/control/jobs/control_jobs.c:1565 +#: ../src/control/jobs/control_jobs.c:1568 msgid "duplicate images" msgstr "Bilder duplizieren" -#: ../src/control/jobs/control_jobs.c:1571 +#: ../src/control/jobs/control_jobs.c:1574 msgid "flip images" msgstr "Bilder spiegeln" -#: ../src/control/jobs/control_jobs.c:1578 +#: ../src/control/jobs/control_jobs.c:1581 msgid "set monochrome images" msgstr "monochrome Bilder kennzeichnen" #. get all selected images now, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1585 +#: ../src/control/jobs/control_jobs.c:1588 msgid "remove images" msgstr "Bilder entfernen" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove image?" msgstr "Bilde entfernen?" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove images?" msgstr "Bilder entfernen?" -#: ../src/control/jobs/control_jobs.c:1599 +#: ../src/control/jobs/control_jobs.c:1602 #, c-format msgid "" "do you really want to remove %d image from darktable\n" @@ -6931,23 +7854,27 @@ msgid_plural "" "do you really want to remove %d images from darktable\n" "(without deleting files on disk)?" -msgstr[0] "Soll %d Bild aus der Sammlung entfernt werden (ohne Löschen der Datei)?" -msgstr[1] "Sollen %d Bilder aus der Sammlung entfernt werden (ohne Löschen der Dateien)?" +msgstr[0] "" +"Soll %d Bild aus der Sammlung entfernt werden (ohne Löschen der Datei)?" +msgstr[1] "" +"Sollen %d Bilder aus der Sammlung entfernt werden (ohne Löschen der Dateien)?" #. first get all selected images, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1614 ../src/control/jobs/control_jobs.c:1647 +#: ../src/control/jobs/control_jobs.c:1617 +#: ../src/control/jobs/control_jobs.c:1650 msgid "delete images" msgstr "Bilder löschen" -#: ../src/control/jobs/control_jobs.c:1630 ../src/control/jobs/control_jobs.c:1660 +#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1663 msgid "delete image?" msgstr "Bild löschen?" -#: ../src/control/jobs/control_jobs.c:1630 +#: ../src/control/jobs/control_jobs.c:1633 msgid "delete images?" msgstr "Bilder löschen?" -#: ../src/control/jobs/control_jobs.c:1631 +#: ../src/control/jobs/control_jobs.c:1634 #, c-format msgid "" "do you really want to physically delete %d image\n" @@ -6955,39 +7882,50 @@ msgid_plural "" "do you really want to physically delete %d images\n" "(using trash if possible)?" -msgstr[0] "Soll %d Bild physisch von der Festplatte gelöscht werden (Papierkorb verwenden, falls möglich)?" -msgstr[1] "Sollen %d Bilder physisch von der Festplatte gelöscht werden (Papierkorb verwenden, falls möglich)?" +msgstr[0] "" +"Soll %d Bild physisch von der Festplatte gelöscht werden (Papierkorb " +"verwenden, falls möglich)?" +msgstr[1] "" +"Sollen %d Bilder physisch von der Festplatte gelöscht werden (Papierkorb " +"verwenden, falls möglich)?" -#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1636 #, c-format msgid "do you really want to physically delete %d image from disk?" msgid_plural "do you really want to physically delete %d images from disk?" msgstr[0] "Soll %d Bild physisch von der Festplatte gelöscht werden?" -msgstr[1] "Sollen %d ausgewählte Bilder physisch von der Festplatte gelöscht werden?" +msgstr[1] "" +"Sollen %d ausgewählte Bilder physisch von der Festplatte gelöscht werden?" -#: ../src/control/jobs/control_jobs.c:1661 -msgid "do you really want to physically delete selected image (using trash if possible)?" -msgstr "Soll das ausgewählte Bild physisch von der Festplatte gelöscht werden (Papierkorb verwenden, falls möglich)?" +#: ../src/control/jobs/control_jobs.c:1664 +msgid "" +"do you really want to physically delete selected image (using trash if " +"possible)?" +msgstr "" +"Soll das ausgewählte Bild physisch von der Festplatte gelöscht werden " +"(Papierkorb verwenden, falls möglich)?" -#: ../src/control/jobs/control_jobs.c:1662 +#: ../src/control/jobs/control_jobs.c:1665 msgid "do you really want to physically delete selected image from disk?" -msgstr "sollen die ausgewählten Bilder physisch von der Festplatte gelöscht werden?" +msgstr "" +"sollen die ausgewählten Bilder physisch von der Festplatte gelöscht werden?" -#: ../src/control/jobs/control_jobs.c:1677 +#: ../src/control/jobs/control_jobs.c:1680 msgid "move images" msgstr "Bilder verschieben" -#: ../src/control/jobs/control_jobs.c:1689 ../src/control/jobs/control_jobs.c:1743 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 msgid "_select as destination" msgstr "als Ziel _wählen" -#: ../src/control/jobs/control_jobs.c:1708 +#: ../src/control/jobs/control_jobs.c:1711 msgid "move image?" msgid_plural "move images?" msgstr[0] "Bild verschieben?" msgstr[1] "Bilder verschieben?" -#: ../src/control/jobs/control_jobs.c:1709 +#: ../src/control/jobs/control_jobs.c:1712 #, c-format msgid "" "do you really want to physically move %d image to %s?\n" @@ -7002,113 +7940,113 @@ "Sollen %d Bilder wirklich physisch nach „%s” verschoben werden?\n" "(Alle nicht ausgewählten Duplikate werden auch verschoben.)" -#: ../src/control/jobs/control_jobs.c:1731 +#: ../src/control/jobs/control_jobs.c:1734 msgid "copy images" msgstr "Bilder kopieren" -#: ../src/control/jobs/control_jobs.c:1762 +#: ../src/control/jobs/control_jobs.c:1765 msgid "copy image?" msgid_plural "copy images?" msgstr[0] "Bild kopieren?" msgstr[1] "Bilder kopieren?" -#: ../src/control/jobs/control_jobs.c:1763 +#: ../src/control/jobs/control_jobs.c:1766 #, c-format msgid "do you really want to physically copy %d image to %s?" msgid_plural "do you really want to physically copy %d images to %s?" msgstr[0] "Soll das %d Bild physisch nach %s kopiert werden?" -msgstr[1] "Sollen die %d ausgewählten Bilder wirklich physisch nach %s kopiert werden?" +msgstr[1] "" +"Sollen die %d ausgewählten Bilder wirklich physisch nach %s kopiert werden?" -#: ../src/control/jobs/control_jobs.c:1781 ../src/control/jobs/control_jobs.c:1789 +#: ../src/control/jobs/control_jobs.c:1784 +#: ../src/control/jobs/control_jobs.c:1792 msgid "local copy images" msgstr "Bilder lokal kopieren" -#: ../src/control/jobs/control_jobs.c:1796 ../src/libs/image.c:604 +#: ../src/control/jobs/control_jobs.c:1799 ../src/libs/image.c:674 msgid "refresh EXIF" msgstr "EXIF aktualisieren" -#: ../src/control/jobs/control_jobs.c:1860 +#: ../src/control/jobs/control_jobs.c:1863 #, c-format msgid "failed to get parameters from storage module `%s', aborting export.." -msgstr "Konnte keine Einstellungen vom Speicher-Modul „%s” bekommen, breche Export ab.." +msgstr "" +"Konnte keine Einstellungen vom Speicher-Modul „%s” bekommen, breche Export " +"ab.." -#: ../src/control/jobs/control_jobs.c:1876 +#: ../src/control/jobs/control_jobs.c:1879 msgid "export images" msgstr "Bilder exportieren" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "adding time offset to %d image" msgstr "füge Zeitversatz zu %d Bild hinzu" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "setting date/time of %d image" msgstr "setze Datum/Zeit für %d Bild" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "adding time offset to %d images" msgstr "füge Zeitversatz zu %d Bildern hinzu" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "setting date/time of %d images" msgstr "setze Datum/Zeit für %d Bilder" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "added time offset to %d image" msgstr "Zeitversatz zu %d Bild hinzugefügt" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "set date/time of %d image" msgstr "setze Datum/Zeit für %d Bild" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "added time offset to %d images" msgstr "Zeitversatz zu %d Bildern hinzugefügt" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "set date/time of %d images" msgstr "setze Datum/Zeit für %d Bildern" -#: ../src/control/jobs/control_jobs.c:2014 +#: ../src/control/jobs/control_jobs.c:2017 msgid "time offset" msgstr "Zeitversatz" -#: ../src/control/jobs/control_jobs.c:2042 ../src/libs/copy_history.c:414 +#: ../src/control/jobs/control_jobs.c:2045 ../src/libs/copy_history.c:414 msgid "write sidecar files" msgstr "XMP schreiben" -#: ../src/control/jobs/control_jobs.c:2256 ../src/control/jobs/film_jobs.c:297 +#: ../src/control/jobs/control_jobs.c:2259 ../src/control/jobs/film_jobs.c:297 #, c-format msgid "importing %d image" msgid_plural "importing %d images" msgstr[0] "Importiere %d Bild" msgstr[1] "Importiere %d Bilder" -#: ../src/control/jobs/control_jobs.c:2292 +#: ../src/control/jobs/control_jobs.c:2295 #, c-format msgid "importing %d/%d image" msgid_plural "importing %d/%d images" msgstr[0] "Importiere %d/%d Bild" msgstr[1] "Importiere %d/%d Bilder" -#: ../src/control/jobs/control_jobs.c:2300 +#: ../src/control/jobs/control_jobs.c:2305 #, c-format msgid "imported %d image" msgid_plural "imported %d images" msgstr[0] "%d Bild importiert" msgstr[1] "%d Bilder importiert" -#: ../src/control/jobs/control_jobs.c:2347 ../src/gui/preferences.c:530 ../src/libs/import.c:172 -msgid "import" -msgstr "Importieren" - #: ../src/control/jobs/film_jobs.c:73 ../src/control/jobs/film_jobs.c:109 msgid "import images" msgstr "Bilder importieren" @@ -7126,11 +8064,11 @@ msgid "import image" msgstr "Bild importieren" -#: ../src/develop/blend.c:322 +#: ../src/develop/blend.c:315 msgid "detail mask blending error" msgstr "Detailmasken Überblendproblem" -#: ../src/develop/blend.c:864 +#: ../src/develop/blend.c:904 msgid "detail mask CL blending problem" msgstr "Detailmasken CL Überblendproblem" @@ -7331,8 +8269,7 @@ msgid "reverse" msgstr "umgekehrt" -#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:413 ../src/libs/metadata.c:631 -#: ../src/libs/metadata_view.c:1193 +#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:442 msgid "default" msgstr "Standard" @@ -7340,35 +8277,35 @@ msgid "RAW" msgstr "RAW" -#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2014 +#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2030 msgid "RGB (display)" msgstr "RGB (Anzeige)" -#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2027 +#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2043 msgid "RGB (scene)" msgstr "RGB (Szene)" #. DEVELOP_MASK_ENABLED -#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3419 +#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3438 msgid "uniformly" msgstr "einheitlich" -#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2740 ../src/develop/blend_gui.c:3429 -#: ../src/develop/imageop.c:2660 +#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:3448 ../src/develop/imageop.c:2669 msgid "drawn mask" msgstr "gezeichnete Maske" -#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2512 ../src/develop/blend_gui.c:3440 -#: ../src/develop/imageop.c:2662 +#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2528 +#: ../src/develop/blend_gui.c:3459 ../src/develop/imageop.c:2671 msgid "parametric mask" msgstr "parametrische Maske" -#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2951 ../src/develop/blend_gui.c:3467 -#: ../src/develop/imageop.c:2664 +#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2966 +#: ../src/develop/blend_gui.c:3486 ../src/develop/imageop.c:2673 msgid "raster mask" msgstr "Raster-Maske" -#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3454 +#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3473 msgid "drawn & parametric mask" msgstr "gezeichnet & parametrisch" @@ -7404,170 +8341,177 @@ msgid "input after blur" msgstr "Input nach Weichzeichnen" -#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:129 ../src/gui/accelerators.c:139 -#: ../src/gui/accelerators.c:227 ../src/imageio/format/avif.c:804 ../src/libs/live_view.c:362 +#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:157 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/libs/live_view.c:362 msgid "on" msgstr "ein" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "input" msgstr "Input" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "output" msgstr "Output" -#: ../src/develop/blend_gui.c:995 +#: ../src/develop/blend_gui.c:998 msgid " (zoom)" msgstr " (Zoom)" -#: ../src/develop/blend_gui.c:1003 +#: ../src/develop/blend_gui.c:1006 msgid " (log)" msgstr " (logarithmisch)" -#: ../src/develop/blend_gui.c:1988 +#: ../src/develop/blend_gui.c:2004 msgid "reset to default blend colorspace" msgstr "gemäß Voreinstellung für Überblendfarbraum zurücksetzen" -#: ../src/develop/blend_gui.c:2044 +#: ../src/develop/blend_gui.c:2060 msgid "reset and hide output channels" msgstr "Ausgabekanäle verbergen und zurücksetzen" -#: ../src/develop/blend_gui.c:2051 +#: ../src/develop/blend_gui.c:2067 msgid "show output channels" msgstr "Ausgabekanäle anzeigen" -#: ../src/develop/blend_gui.c:2290 ../src/develop/blend_gui.c:2357 ../src/iop/tonecurve.c:1134 +#: ../src/develop/blend_gui.c:2306 ../src/develop/blend_gui.c:2373 +#: ../src/iop/tonecurve.c:1156 msgid "L" msgstr "L" -#: ../src/develop/blend_gui.c:2290 +#: ../src/develop/blend_gui.c:2306 msgid "sliders for L channel" msgstr "Regler für L-Kanal" -#: ../src/develop/blend_gui.c:2295 ../src/iop/tonecurve.c:1135 +#: ../src/develop/blend_gui.c:2311 ../src/iop/tonecurve.c:1157 msgid "a" msgstr "a" -#: ../src/develop/blend_gui.c:2295 +#: ../src/develop/blend_gui.c:2311 msgid "sliders for a channel" msgstr "Regler für a-Kanal" -#: ../src/develop/blend_gui.c:2299 +#: ../src/develop/blend_gui.c:2315 msgid "green/red" msgstr "Grün / Rot" -#: ../src/develop/blend_gui.c:2300 ../src/iop/tonecurve.c:1136 +#: ../src/develop/blend_gui.c:2316 ../src/iop/tonecurve.c:1158 msgid "b" msgstr "b" -#: ../src/develop/blend_gui.c:2300 +#: ../src/develop/blend_gui.c:2316 msgid "sliders for b channel" msgstr "Regler für b-Kanal" -#: ../src/develop/blend_gui.c:2304 +#: ../src/develop/blend_gui.c:2320 msgid "blue/yellow" msgstr "Blau / Gelb" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "C" msgstr "C" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "sliders for chroma channel (of LCh)" msgstr "Regler für Chrominanz-Kanal (von LCh)" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "h" msgstr "h" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "sliders for hue channel (of LCh)" msgstr "Regler für Farbton-Kanal (von LCh)" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "g" msgstr "g" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "sliders for gray value" msgstr "Regler für Grauwert" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 ../src/iop/channelmixerrgb.c:4609 -#: ../src/iop/denoiseprofile.c:3710 ../src/iop/rawdenoise.c:894 ../src/iop/rgbcurve.c:1358 -#: ../src/iop/rgblevels.c:1003 ../src/libs/filters/colors.c:137 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/denoiseprofile.c:3714 +#: ../src/iop/rawdenoise.c:910 ../src/iop/rgbcurve.c:1358 +#: ../src/iop/rgblevels.c:1043 ../src/libs/filters/colors.c:137 msgid "R" msgstr "R" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 msgid "sliders for red channel" msgstr "Regler für Rot-Kanal" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 ../src/iop/channelmixerrgb.c:4610 -#: ../src/iop/denoiseprofile.c:3711 ../src/iop/rawdenoise.c:895 ../src/iop/rgbcurve.c:1359 -#: ../src/iop/rgblevels.c:1004 ../src/libs/filters/colors.c:143 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/denoiseprofile.c:3715 +#: ../src/iop/rawdenoise.c:911 ../src/iop/rgbcurve.c:1359 +#: ../src/iop/rgblevels.c:1044 ../src/libs/filters/colors.c:143 msgid "G" msgstr "G" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 msgid "sliders for green channel" msgstr "Regler für Grün-Kanal" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 ../src/iop/channelmixerrgb.c:4611 -#: ../src/iop/denoiseprofile.c:3712 ../src/iop/rawdenoise.c:896 ../src/iop/rgbcurve.c:1360 -#: ../src/iop/rgblevels.c:1005 ../src/libs/filters/colors.c:146 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/denoiseprofile.c:3716 +#: ../src/iop/rawdenoise.c:912 ../src/iop/rgbcurve.c:1360 +#: ../src/iop/rgblevels.c:1045 ../src/libs/filters/colors.c:146 msgid "B" msgstr "B" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 msgid "sliders for blue channel" msgstr "Regler für Blau-Kanal" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "H" msgstr "H" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "sliders for hue channel (of HSL)" msgstr "Regler für Farbton-Kanal (von HSL)" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "S" msgstr "S" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "sliders for chroma channel (of HSL)" msgstr "Regler für Chrominanz-Kanal (von HSL)" -#: ../src/develop/blend_gui.c:2357 +#: ../src/develop/blend_gui.c:2373 msgid "sliders for value channel (of HSL)" msgstr "Regler für Hellwert-Kanal (von HSL)" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "Jz" msgstr "Jz" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "sliders for value channel (of JzCzhz)" msgstr "Regler für Hellwert-Kanal (von JzCzhz)" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "Cz" msgstr "Cz" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "sliders for chroma channel (of JzCzhz)" msgstr "Regler für Chrominanz-Kanal (von JzCzhz)" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "hz" msgstr "hz" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "sliders for hue channel (of JzCzhz)" msgstr "Regler für Farbton-Kanal (von JzCzhz)" -#: ../src/develop/blend_gui.c:2415 +#: ../src/develop/blend_gui.c:2431 msgid "" "adjustment based on input received by this module:\n" "* range defined by upper markers: blend fully\n" @@ -7579,7 +8523,7 @@ " - Bereich der unteren Marker: gar nicht überblenden\n" " - Bereich zwischen zugehörigen oberen/unteren Markern: allmählich einblenden" -#: ../src/develop/blend_gui.c:2419 +#: ../src/develop/blend_gui.c:2435 msgid "" "adjustment based on unblended output of this module:\n" "* range defined by upper markers: blend fully\n" @@ -7591,18 +8535,19 @@ " - Bereich der unteren Marker: gar nicht überblenden\n" " - Bereich zwischen zugehörigen oberen/unteren Markern: allmählich einblenden" -#: ../src/develop/blend_gui.c:2516 +#: ../src/develop/blend_gui.c:2532 msgid "reset blend mask settings" msgstr "Masken-Einstellung zurücksetzen" -#: ../src/develop/blend_gui.c:2527 ../src/iop/atrous.c:1665 ../src/iop/colorzones.c:2399 -#: ../src/iop/denoiseprofile.c:3707 ../src/iop/rawdenoise.c:891 ../src/iop/rgbcurve.c:1357 -#: ../src/iop/rgblevels.c:1002 ../src/iop/tonecurve.c:1133 +#: ../src/develop/blend_gui.c:2543 ../src/iop/atrous.c:1797 +#: ../src/iop/colorzones.c:2641 ../src/iop/denoiseprofile.c:3711 +#: ../src/iop/rawdenoise.c:907 ../src/iop/rgbcurve.c:1357 +#: ../src/iop/rgblevels.c:1041 ../src/iop/tonecurve.c:1155 msgid "channel" msgstr "Kanal" -#: ../src/develop/blend_gui.c:2542 ../src/iop/colorzones.c:2413 ../src/iop/rgbcurve.c:1367 -#: ../src/iop/tonecurve.c:1142 +#: ../src/develop/blend_gui.c:2558 ../src/iop/colorzones.c:2660 +#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1164 msgid "" "pick GUI color from image\n" "ctrl+click or right-click to select an area" @@ -7610,33 +8555,36 @@ "GUI-Farbe aus dem Bild auswählen\n" "Strg+Klick oder Rechtsklick zur Auswahl eines Bereichs" -#: ../src/develop/blend_gui.c:2545 ../src/iop/colorzones.c:2415 ../src/iop/rgbcurve.c:1369 +#: ../src/develop/blend_gui.c:2561 ../src/iop/colorzones.c:2662 +#: ../src/iop/rgbcurve.c:1369 msgid "show color" msgstr "Farbe anzeigen" -#: ../src/develop/blend_gui.c:2554 +#: ../src/develop/blend_gui.c:2570 msgid "" "set the range based on an area from the image\n" "drag to use the input image\n" "ctrl+drag to use the output image" msgstr "" "Setzt den Bereich basierend auf einem Bildausschnitt\n" -"Bildausschnitt durch Klicken+Ziehen auswählen, um dazu das Inputbild zu verwenden.\n" +"Bildausschnitt durch Klicken+Ziehen auswählen, um dazu das Inputbild zu " +"verwenden.\n" "Strg+Klick+Ziehen, um das Outputbild zu verwenden." -#: ../src/develop/blend_gui.c:2557 +#: ../src/develop/blend_gui.c:2573 msgid "set range" msgstr "Bereich festlegen" -#: ../src/develop/blend_gui.c:2560 +#: ../src/develop/blend_gui.c:2576 msgid "invert all channel's polarities" msgstr "Polarität aller Kanäle umkehren" -#: ../src/develop/blend_gui.c:2584 +#: ../src/develop/blend_gui.c:2600 msgid "toggle polarity. best seen by enabling 'display mask'" -msgstr "Polarität umkehren. Am besten sichtbar, wenn „Maske anzeigen” ausgewählt" +msgstr "" +"Polarität umkehren. Am besten sichtbar, wenn „Maske anzeigen” ausgewählt" -#: ../src/develop/blend_gui.c:2613 +#: ../src/develop/blend_gui.c:2629 msgid "" "double-click to reset.\n" "press 'a' to toggle available slider modes.\n" @@ -7648,155 +8596,203 @@ "„c” drücken, um Anzeige des Farbkanals ein- oder auszuschalten\n" "„m” drücken, um die Anzeige der Maske ein- oder auszuschalten" -#: ../src/develop/blend_gui.c:2640 ../src/develop/blend_gui.c:3531 ../src/iop/basicadj.c:600 -#: ../src/iop/colorbalancergb.c:2090 ../src/iop/exposure.c:1120 ../src/iop/exposure.c:1135 ../src/iop/filmic.c:1503 -#: ../src/iop/filmic.c:1516 ../src/iop/filmic.c:1558 ../src/iop/filmicrgb.c:4440 ../src/iop/filmicrgb.c:4451 -#: ../src/iop/filmicrgb.c:4485 ../src/iop/filmicrgb.c:4495 ../src/iop/graduatednd.c:1113 ../src/iop/negadoctor.c:1011 -#: ../src/iop/profile_gamma.c:643 ../src/iop/profile_gamma.c:649 ../src/iop/relight.c:262 ../src/iop/soften.c:378 -#: ../src/iop/toneequal.c:3326 ../src/iop/toneequal.c:3329 ../src/iop/toneequal.c:3332 ../src/iop/toneequal.c:3335 -#: ../src/iop/toneequal.c:3338 ../src/iop/toneequal.c:3341 ../src/iop/toneequal.c:3344 ../src/iop/toneequal.c:3347 -#: ../src/iop/toneequal.c:3350 ../src/iop/toneequal.c:3472 ../src/iop/toneequal.c:3481 ../src/iop/toneequal.c:3494 -#: ../src/views/darkroom.c:2453 +#: ../src/develop/blend_gui.c:2656 ../src/develop/blend_gui.c:3577 +#: ../src/iop/basicadj.c:630 ../src/iop/colorbalancergb.c:2161 +#: ../src/iop/exposure.c:1138 ../src/iop/exposure.c:1153 +#: ../src/iop/filmic.c:1528 ../src/iop/filmic.c:1541 ../src/iop/filmic.c:1583 +#: ../src/iop/filmicrgb.c:4504 ../src/iop/filmicrgb.c:4515 +#: ../src/iop/filmicrgb.c:4549 ../src/iop/filmicrgb.c:4559 +#: ../src/iop/graduatednd.c:1082 ../src/iop/negadoctor.c:1030 +#: ../src/iop/profile_gamma.c:657 ../src/iop/profile_gamma.c:663 +#: ../src/iop/relight.c:258 ../src/iop/soften.c:373 ../src/iop/toneequal.c:3379 +#: ../src/iop/toneequal.c:3382 ../src/iop/toneequal.c:3385 +#: ../src/iop/toneequal.c:3388 ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3394 ../src/iop/toneequal.c:3397 +#: ../src/iop/toneequal.c:3400 ../src/iop/toneequal.c:3403 +#: ../src/iop/toneequal.c:3525 ../src/iop/toneequal.c:3534 +#: ../src/iop/toneequal.c:3547 ../src/views/darkroom.c:2292 msgid " EV" msgstr " EV" -#: ../src/develop/blend_gui.c:2642 ../src/develop/blend_gui.c:2740 ../src/develop/blend_gui.c:2951 -#: ../src/develop/blend_gui.c:3014 ../src/develop/blend_gui.c:3499 ../src/develop/blend_gui.c:3529 -#: ../src/develop/blend_gui.c:3542 ../src/develop/blend_gui.c:3559 ../src/develop/blend_gui.c:3583 -#: ../src/develop/blend_gui.c:3593 ../src/develop/blend_gui.c:3602 ../src/develop/blend_gui.c:3613 +#: ../src/develop/blend_gui.c:2658 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:2966 ../src/develop/blend_gui.c:3029 +#: ../src/develop/blend_gui.c:3545 ../src/develop/blend_gui.c:3575 +#: ../src/develop/blend_gui.c:3588 ../src/develop/blend_gui.c:3605 +#: ../src/develop/blend_gui.c:3629 ../src/develop/blend_gui.c:3641 +#: ../src/develop/blend_gui.c:3652 ../src/develop/blend_gui.c:3663 msgid "blend" msgstr "Überblenden" -#: ../src/develop/blend_gui.c:2642 +#: ../src/develop/blend_gui.c:2658 msgid "boost factor" msgstr "Aufhellungsfaktor" -#: ../src/develop/blend_gui.c:2645 +#: ../src/develop/blend_gui.c:2661 msgid "adjust the boost factor of the channel mask" msgstr "Aufhellungsfaktor für die Kanalmasken einstellen" -#: ../src/develop/blend_gui.c:2682 +#: ../src/develop/blend_gui.c:2698 #, c-format msgid "%d shape used" msgid_plural "%d shapes used" msgstr[0] "%d Form" msgstr[1] "%d Formen" -#: ../src/develop/blend_gui.c:2687 ../src/develop/blend_gui.c:2743 ../src/develop/blend_gui.c:2831 -#: ../src/develop/blend_gui.c:2952 +#: ../src/develop/blend_gui.c:2703 ../src/develop/blend_gui.c:2759 +#: ../src/develop/blend_gui.c:2847 ../src/develop/blend_gui.c:2967 msgid "no mask used" msgstr "keine Maske" -#: ../src/develop/blend_gui.c:2751 +#: ../src/develop/blend_gui.c:2767 msgid "toggle polarity of drawn mask" msgstr "Polarität der gezeichneten Maske umkehren" -#: ../src/develop/blend_gui.c:2760 +#: ../src/develop/blend_gui.c:2776 msgid "show and edit mask elements" msgstr "Masken-Elemente anzeigen und bearbeiten" -#: ../src/develop/blend_gui.c:2761 +#: ../src/develop/blend_gui.c:2777 msgid "show and edit in restricted mode" msgstr "Anzeigen und Bearbeiten von Formen im eingeschränkten Modus" -#: ../src/develop/blend_gui.c:2768 ../src/libs/masks.c:998 ../src/libs/masks.c:1816 ../src/libs/masks.c:1820 +#: ../src/develop/blend_gui.c:2784 ../src/libs/masks.c:1014 +#: ../src/libs/masks.c:1812 ../src/libs/masks.c:1816 msgid "add gradient" msgstr "Verlauf hinzufügen" -#: ../src/develop/blend_gui.c:2769 +#: ../src/develop/blend_gui.c:2785 msgid "add multiple gradients" msgstr "mehrere Verläufe hinzufügen" -#: ../src/develop/blend_gui.c:2776 ../src/iop/retouch.c:2238 ../src/libs/masks.c:978 ../src/libs/masks.c:1852 -#: ../src/libs/masks.c:1856 +#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2466 +#: ../src/libs/masks.c:994 ../src/libs/masks.c:1848 ../src/libs/masks.c:1852 msgid "add brush" msgstr "Pinsel hinzufügen" -#: ../src/develop/blend_gui.c:2777 ../src/iop/retouch.c:2238 +#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2466 msgid "add multiple brush strokes" msgstr "mehrere Pinselstriche hinzufügen" -#: ../src/develop/blend_gui.c:2784 ../src/iop/retouch.c:2242 ../src/iop/spots.c:884 ../src/libs/masks.c:993 -#: ../src/libs/masks.c:1825 ../src/libs/masks.c:1829 +#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 ../src/libs/masks.c:1009 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1825 msgid "add path" msgstr "Pfad hinzufügen" -#: ../src/develop/blend_gui.c:2785 ../src/iop/retouch.c:2242 ../src/iop/spots.c:884 +#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 msgid "add multiple paths" msgstr "mehrere Pfade hinzufügen" -#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2246 ../src/iop/spots.c:889 ../src/libs/masks.c:988 -#: ../src/libs/masks.c:1834 ../src/libs/masks.c:1838 +#: ../src/develop/blend_gui.c:2808 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 ../src/libs/masks.c:1004 ../src/libs/masks.c:1830 +#: ../src/libs/masks.c:1834 msgid "add ellipse" msgstr "Ellipse hinzufügen" -#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2246 ../src/iop/spots.c:889 +#: ../src/develop/blend_gui.c:2809 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 msgid "add multiple ellipses" msgstr "mehrere Ellipsen hinzufügen" -#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2250 ../src/iop/spots.c:894 ../src/libs/masks.c:983 -#: ../src/libs/masks.c:1843 ../src/libs/masks.c:1847 +#: ../src/develop/blend_gui.c:2816 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 ../src/libs/masks.c:999 ../src/libs/masks.c:1839 +#: ../src/libs/masks.c:1843 msgid "add circle" msgstr "Kreis hinzufügen" -#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2250 ../src/iop/spots.c:894 +#: ../src/develop/blend_gui.c:2817 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 msgid "add multiple circles" msgstr "mehrere Kreise hinzufügen" -#: ../src/develop/blend_gui.c:2961 +#: ../src/develop/blend_gui.c:2976 msgid "toggle polarity of raster mask" msgstr "Polarität der gezeichneten Raster-Maske umkehren" -#: ../src/develop/blend_gui.c:3101 +#: ../src/develop/blend_gui.c:3119 msgid "normal & difference" msgstr "Normal & Differenz" -#: ../src/develop/blend_gui.c:3106 +#: ../src/develop/blend_gui.c:3124 msgid "lighten" msgstr "Aufhellen" -#: ../src/develop/blend_gui.c:3113 +#: ../src/develop/blend_gui.c:3131 msgid "darken" msgstr "Abdunkeln" -#: ../src/develop/blend_gui.c:3120 +#: ../src/develop/blend_gui.c:3138 msgid "contrast enhancing" msgstr "Kontrast verstärken" -#: ../src/develop/blend_gui.c:3127 ../src/develop/blend_gui.c:3150 +#: ../src/develop/blend_gui.c:3145 ../src/develop/blend_gui.c:3168 msgid "color channel" msgstr "Farbkanal" -#: ../src/develop/blend_gui.c:3138 ../src/develop/blend_gui.c:3153 +#: ../src/develop/blend_gui.c:3156 ../src/develop/blend_gui.c:3171 msgid "chromaticity & lightness" msgstr "Chromatizität- & Helligkeit" -#: ../src/develop/blend_gui.c:3145 +#: ../src/develop/blend_gui.c:3163 msgid "normal & arithmetic" msgstr "Normal & arithmetisch" #. add deprecated blend mode -#: ../src/develop/blend_gui.c:3166 +#: ../src/develop/blend_gui.c:3184 msgid "deprecated" msgstr "veraltet" -#: ../src/develop/blend_gui.c:3478 +#. should never happen: unknown blend mode +#: ../src/develop/blend_gui.c:3188 +#, c-format +msgid "unknown blend mode '%d' in module '%s'" +msgstr "Unbekannter Überblendmodus ‚%d‘ in Modul ‚%s‘" + +#: ../src/develop/blend_gui.c:3497 msgid "blending options" msgstr "Überblendoptionen" -#: ../src/develop/blend_gui.c:3500 ../src/libs/history.c:949 -msgid "blend mode" -msgstr "Überblendmodus" +#: ../src/develop/blend_gui.c:3516 +msgid "blend mask" +msgstr "Überblendmaske" + +#: ../src/develop/blend_gui.c:3520 +msgid "display mask and/or color channel" +msgstr "Maskierung und/oder Farbkanal anzeigen" -#: ../src/develop/blend_gui.c:3503 +#: ../src/develop/blend_gui.c:3525 +msgid "" +"display mask and/or color channel.\n" +"ctrl+click to display mask,\n" +"shift+click to display channel.\n" +"hover over parametric mask slider to select channel for display" +msgstr "" +"Maske und/oder Farbkanal anzeigen \n" +"Strg+Klick, um die Maske zu zeigen, \n" +"Shift+Klick für Kanalanzeige. \n" +"Mit der Maus über die Kanalregler fahren, um den anzuzeigenden Kanal " +"auszuwählen." + +#: ../src/develop/blend_gui.c:3532 +msgid "temporarily switch off blend mask" +msgstr "Maskierung vorübergehend ausschalten" + +#: ../src/develop/blend_gui.c:3537 +msgid "" +"temporarily switch off blend mask.\n" +"only for module in focus" +msgstr "Maskierung des aktiven Moduls vorübergehend ausschalten." + +#: ../src/develop/blend_gui.c:3549 msgid "choose blending mode" msgstr "Modus des Überblendens wählen" -#: ../src/develop/blend_gui.c:3513 +#: ../src/develop/blend_gui.c:3559 msgid "toggle blend order" msgstr "Überblendreihenfolge umkehren" -#: ../src/develop/blend_gui.c:3519 +#: ../src/develop/blend_gui.c:3565 msgid "" "toggle the blending order between the input and the output of the module,\n" "by default the output will be blended on top of the input,\n" @@ -7804,38 +8800,44 @@ msgstr "" "schaltet die Überblendreihenfolge zwischen Input und Output des Moduls um,\n" "standardmäßig wird der Output über den Input gelegt,\n" -"Reihenfolge kann durch Klicken auf das Symbol umgekehrt werden (Input über dem Output)" +"Reihenfolge kann durch Klicken auf das Symbol umgekehrt werden (Input über " +"dem Output)" -#: ../src/develop/blend_gui.c:3530 ../src/libs/history.c:953 -msgid "blend fulcrum" -msgstr "Überblendstützpunkt" +#: ../src/develop/blend_gui.c:3576 +msgid "fulcrum" +msgstr "Ansatzpunkt" -#: ../src/develop/blend_gui.c:3534 +#: ../src/develop/blend_gui.c:3580 msgid "adjust the fulcrum used by some blending operations" -msgstr "Passt den Stützpunkt an, der von einigen Überblendmodi verwendet wird." +msgstr "Ansatzpunkt für einige Überblendoperationen anpassen" #. Add opacity/scale sliders to table -#: ../src/develop/blend_gui.c:3542 ../src/iop/watermark.c:1314 ../src/libs/masks.c:104 +#: ../src/develop/blend_gui.c:3588 ../src/iop/watermark.c:1362 +#: ../src/libs/masks.c:105 msgid "opacity" msgstr "Deckkraft" -#: ../src/develop/blend_gui.c:3546 +#: ../src/develop/blend_gui.c:3591 msgid "set the opacity of the blending" msgstr "Deckkraft des Überblendens anpassen" -#: ../src/develop/blend_gui.c:3550 ../src/libs/history.c:956 +#: ../src/develop/blend_gui.c:3596 ../src/libs/history.c:956 msgid "combine masks" msgstr "kombinieren" -#: ../src/develop/blend_gui.c:3552 -msgid "how to combine individual drawn mask and different channels of parametric mask" -msgstr "Art der Kombination einzelner gezeichneter Masken und der Kanäle der parametrischen Masken." +#: ../src/develop/blend_gui.c:3598 +msgid "" +"how to combine individual drawn mask and different channels of parametric " +"mask" +msgstr "" +"Art der Kombination einzelner gezeichneter Masken und der Kanäle der " +"parametrischen Masken." -#: ../src/develop/blend_gui.c:3559 +#: ../src/develop/blend_gui.c:3605 msgid "details threshold" msgstr "Detail Schwellwert" -#: ../src/develop/blend_gui.c:3563 +#: ../src/develop/blend_gui.c:3609 msgid "" "adjust the threshold for the details mask (using raw data),\n" "positive values select areas with strong details,\n" @@ -7845,92 +8847,82 @@ "positive Werte zur Auswahl detailreicher Bereiche, \n" "negative Werte zur Auswahl gleichmäßiger Bereiche" -#: ../src/develop/blend_gui.c:3571 ../src/libs/history.c:959 +#: ../src/develop/blend_gui.c:3617 ../src/libs/history.c:959 msgid "feathering guide" msgstr "Maske anpassen mit" -#: ../src/develop/blend_gui.c:3574 +#: ../src/develop/blend_gui.c:3620 msgid "" "choose to guide mask by input or output image and\n" "choose to apply feathering before or after mask blur" msgstr "" -"wählen, ob die kantensensitive Maske anhand Input- oder Output-Bild geführt wird\n" -"wählen, ob die Glättung vor oder nach der Maskierungsunschärfe angewendet wird" +"wählen, ob die kantensensitive Maske anhand Input- oder Output-Bild geführt " +"wird\n" +"wählen, ob die Glättung vor oder nach der Maskierungsunschärfe angewendet " +"wird" -#: ../src/develop/blend_gui.c:3583 ../src/libs/history.c:958 +#: ../src/develop/blend_gui.c:3629 ../src/libs/history.c:958 msgid "feathering radius" msgstr "Anpassungsradius" -#: ../src/develop/blend_gui.c:3586 +#: ../src/develop/blend_gui.c:3632 msgid "spatial radius of feathering" msgstr "Räumlicher Radius für das Ausblenden" -#: ../src/develop/blend_gui.c:3593 +#: ../src/develop/blend_gui.c:3641 msgid "blurring radius" msgstr "Weichzeichnungsradius" -#: ../src/develop/blend_gui.c:3596 +#: ../src/develop/blend_gui.c:3644 msgid "radius for gaussian blur of blend mask" msgstr "Radius des Gaußschen Weichzeichners der Maske" -#: ../src/develop/blend_gui.c:3602 ../src/iop/retouch.c:2453 ../src/libs/history.c:954 +#: ../src/develop/blend_gui.c:3652 ../src/iop/retouch.c:2738 +#: ../src/libs/history.c:954 msgid "mask opacity" msgstr "Deckkraft der Maske" -#: ../src/develop/blend_gui.c:3606 +#: ../src/develop/blend_gui.c:3656 msgid "" "shifts and tilts the tone curve of the blend mask to adjust its brightness\n" "without affecting fully transparent/fully opaque regions" msgstr "" -"verschiebt und neigt die Tonkurve der Mischmaske, um ihre Helligkeit anzupassen, \n" +"verschiebt und neigt die Tonkurve der Mischmaske, um ihre Helligkeit " +"anzupassen, \n" "ohne völlig transparente/vollständig undurchsichtige Bereiche zu beeinflussen" -#: ../src/develop/blend_gui.c:3613 ../src/libs/history.c:962 +#: ../src/develop/blend_gui.c:3663 ../src/libs/history.c:962 msgid "mask contrast" msgstr "Kontrast der Maske" -#: ../src/develop/blend_gui.c:3617 -msgid "gives the tone curve of the blend mask an s-like shape to adjust its contrast" -msgstr "gibt der Tonkurve der Überblendmaske eine s-ähnliche Form, um den Kontrast anzupassen" +#: ../src/develop/blend_gui.c:3667 +msgid "" +"gives the tone curve of the blend mask an s-like shape to adjust its contrast" +msgstr "" +"gibt der Tonkurve der Überblendmaske eine s-ähnliche Form, um den Kontrast " +"anzupassen" -#: ../src/develop/blend_gui.c:3621 +#: ../src/develop/blend_gui.c:3671 msgid "mask refinement" msgstr "Maskenverfeinerung" -#: ../src/develop/blend_gui.c:3625 -msgid "display mask and/or color channel" -msgstr "Maskierung und/oder Farbkanal anzeigen" - -#: ../src/develop/blend_gui.c:3630 +#: ../src/develop/develop.c:732 msgid "" -"display mask and/or color channel.\n" -"ctrl+click to display mask,\n" -"shift+click to display channel.\n" -"hover over parametric mask slider to select channel for display" +"autosaving history has been disabled for this session because of a slow " +"drive used" msgstr "" -"Maske und/oder Farbkanal anzeigen \n" -"Strg+Klick, um die Maske zu zeigen, \n" -"Shift+Klick für Kanalanzeige. \n" -"Mit der Maus über die Kanalregler fahren, um den anzuzeigenden Kanal auszuwählen." - -#: ../src/develop/blend_gui.c:3637 -msgid "temporarily switch off blend mask" -msgstr "Maskierung vorübergehend ausschalten" - -#: ../src/develop/blend_gui.c:3642 -msgid "" -"temporarily switch off blend mask.\n" -"only for module in focus" -msgstr "Maskierung des aktiven Moduls vorübergehend ausschalten." +"Die automatische Speicherung des Verlaufs wurde für diese Sitzung " +"deaktiviert, da ein langsames Laufwerk verwendet wird." -#: ../src/develop/develop.c:2303 +#: ../src/develop/develop.c:2202 #, c-format msgid "%s: module `%s' version mismatch: %d != %d" msgstr "%s: Modul „%s” hat unpassende Version: %d != %d" -#: ../src/develop/develop.c:2834 -msgid "module duplicate, can't move new instance after the base one\n" -msgstr "Modulduplikat, kann die neue Instanz nicht hinter dem ersten einfügen\n" +#: ../src/develop/develop.c:3016 +msgid "duplicate module, can't move new instance after the base one\n" +msgstr "" +"Modulduplikat, kann die neue Instanz nicht hinter dem ersten einfügen\n" #: ../src/develop/imageop.c:1031 msgid "new instance" @@ -7940,66 +8932,69 @@ msgid "duplicate instance" msgstr "Instanz duplizieren" -#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3739 ../src/libs/masks.c:1152 +#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3755 +#: ../src/libs/masks.c:1146 msgid "move up" msgstr "aufwärtsschieben" -#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3740 ../src/libs/masks.c:1157 +#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3756 +#: ../src/libs/masks.c:1151 msgid "move down" msgstr "abwärtsschieben" #. delete button label and tooltip will be updated based on trash pref -#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3742 ../src/gui/accelerators.c:155 ../src/gui/presets.c:562 -#: ../src/libs/image.c:285 ../src/libs/image.c:480 ../src/libs/tagging.c:1484 ../src/libs/tagging.c:1572 +#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3758 +#: ../src/gui/accelerators.c:173 ../src/libs/image.c:303 +#: ../src/libs/image.c:513 msgid "delete" msgstr "löschen" -#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3743 ../src/libs/modulegroups.c:3464 -#: ../src/libs/modulegroups.c:3815 +#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3759 +#: ../src/libs/modulegroups.c:3817 msgid "rename" msgstr "umbenennen" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched on" msgstr "„%s“ ist eingeschaltet" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched off" msgstr "„%s“ ist ausgeschaltet" -#: ../src/develop/imageop.c:2654 +#: ../src/develop/imageop.c:2663 msgid "unknown mask" msgstr "unbekannte Maske" -#: ../src/develop/imageop.c:2658 +#: ../src/develop/imageop.c:2667 msgid "drawn + parametric mask" msgstr "gezeichnete & parametrische Maske" -#: ../src/develop/imageop.c:2667 +#: ../src/develop/imageop.c:2676 #, c-format msgid "this module has a `%s'" msgstr "Dieses Modul hat eine „%s“" -#: ../src/develop/imageop.c:2672 +#: ../src/develop/imageop.c:2681 #, c-format msgid "taken from module %s" msgstr "Übernommen vom Modul %s" -#: ../src/develop/imageop.c:2677 +#: ../src/develop/imageop.c:2686 msgid "click to display (module must be activated first)" msgstr "zum Anzeigen anklicken (Modul muss erst aktiviert werden)" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "purpose" msgstr "Kategorie" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "process" msgstr "Bearbeitung" -#: ../src/develop/imageop.c:2906 +#: ../src/develop/imageop.c:2917 msgid "" "multiple instance actions\n" "right-click creates new instance" @@ -8007,7 +9002,7 @@ "Multi-Instanz Aktionen\n" "Rechtsklick erzeugt neue Instanz" -#: ../src/develop/imageop.c:2921 +#: ../src/develop/imageop.c:2932 msgid "" "reset parameters\n" "ctrl+click to reapply any automatic presets" @@ -8015,7 +9010,7 @@ "Einstellungen zurücksetzen\n" "Strg+Klick wendet automatische Voreinstellungen erneut an." -#: ../src/develop/imageop.c:2933 +#: ../src/develop/imageop.c:2944 msgid "" "presets\n" "right-click to apply on new instance" @@ -8023,15 +9018,15 @@ "Voreinstellungen\n" "Rechtsklick, um auf eine neue Instanz anzuwenden" -#: ../src/develop/imageop.c:3183 ../src/develop/imageop.c:3205 +#: ../src/develop/imageop.c:3194 ../src/develop/imageop.c:3216 msgid "ERROR" msgstr "Fehler" -#: ../src/develop/imageop.c:3620 +#: ../src/develop/imageop.c:3622 msgid "unsupported input" msgstr "nicht unterstütztes Eingabedatenformat" -#: ../src/develop/imageop.c:3621 +#: ../src/develop/imageop.c:3623 msgid "" "you have placed this module at\n" "a position in the pipeline where\n" @@ -8041,45 +9036,51 @@ "das Modul wurde an eine Position verschoben, \n" "in dem das Datenformat nicht den Anforderungen genügt." -#: ../src/develop/imageop.c:3738 ../src/develop/imageop.c:3748 ../src/gui/accelerators.c:151 ../src/libs/lib.c:1414 +#: ../src/develop/imageop.c:3754 ../src/develop/imageop.c:3764 +#: ../src/gui/accelerators.c:169 ../src/libs/lib.c:1415 msgid "show" msgstr "anzeigen" -#: ../src/develop/imageop.c:3741 ../src/libs/modulegroups.c:3310 ../src/libs/modulegroups.c:3436 -#: ../src/libs/modulegroups.c:3817 ../src/libs/tagging.c:3248 +#: ../src/develop/imageop.c:3757 ../src/libs/modulegroups.c:3315 +#: ../src/libs/modulegroups.c:3438 ../src/libs/modulegroups.c:3819 +#: ../src/libs/tagging.c:3279 msgid "new" msgstr "neu" -#: ../src/develop/imageop.c:3744 ../src/libs/duplicate.c:405 ../src/libs/image.c:495 ../src/libs/modulegroups.c:3813 +#: ../src/develop/imageop.c:3760 ../src/libs/duplicate.c:411 +#: ../src/libs/image.c:534 ../src/libs/modulegroups.c:3815 msgid "duplicate" msgstr "duplizieren" -#: ../src/develop/imageop.c:3749 +#: ../src/develop/imageop.c:3765 msgid "enable" msgstr "aktivieren" # keine Ahnung, ob das passt, konnte den String in der GUI nicht finden. -#: ../src/develop/imageop.c:3750 ../src/gui/accelerators.c:167 +#: ../src/develop/imageop.c:3766 ../src/gui/accelerators.c:185 msgid "focus" msgstr "Fokus" -#: ../src/develop/imageop.c:3751 ../src/gui/accelerators.c:2617 +#: ../src/develop/imageop.c:3767 ../src/gui/accelerators.c:2874 msgid "instance" msgstr "Instanz" -#: ../src/develop/imageop.c:3752 ../src/gui/accelerators.c:112 ../src/gui/accelerators.c:122 ../src/gui/gtk.c:3009 -#: ../src/gui/gtk.c:3056 ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:603 ../src/gui/styles_dialog.c:625 -#: ../src/iop/atrous.c:1512 ../src/libs/lib.c:1415 ../src/libs/modulegroups.c:3882 +#: ../src/develop/imageop.c:3768 ../src/gui/accelerators.c:130 +#: ../src/gui/accelerators.c:140 ../src/gui/gtk.c:3055 ../src/gui/gtk.c:3102 +#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:615 +#: ../src/gui/styles_dialog.c:637 ../src/iop/atrous.c:1626 +#: ../src/libs/lib.c:1416 ../src/libs/modulegroups.c:3884 msgid "reset" msgstr "zurücksetzen" #. Adding the outer container -#: ../src/develop/imageop.c:3753 ../src/gui/preferences.c:798 ../src/libs/lib.c:1416 +#: ../src/develop/imageop.c:3769 ../src/gui/preferences.c:796 +#: ../src/libs/lib.c:1417 msgid "presets" msgstr "Voreinstellungen" # keine Ahnung, ob das passt, konnte den String in der GUI nicht finden. -#: ../src/develop/imageop.c:3773 +#: ../src/develop/imageop.c:3789 msgid "processing module" msgstr "Bearbeitungsmodule" @@ -8092,52 +9093,54 @@ "%s\n" "Strg+Klick für %s" -#: ../src/develop/lightroom.c:1083 +#: ../src/develop/lightroom.c:1137 msgid "cannot find Lightroom XMP!" msgstr "Lightroom-XMP kann nicht gefunden werden!" -#: ../src/develop/lightroom.c:1115 ../src/develop/lightroom.c:1137 ../src/develop/lightroom.c:1157 +#: ../src/develop/lightroom.c:1169 ../src/develop/lightroom.c:1191 +#: ../src/develop/lightroom.c:1211 #, c-format msgid "`%s' is not a Lightroom XMP!" msgstr "„%s” ist kein Lightroom-XMP!" -#: ../src/develop/lightroom.c:1556 +#: ../src/develop/lightroom.c:1613 #, c-format msgid "%s has been imported" msgid_plural "%s have been imported" msgstr[0] "%s wurde importiert" msgstr[1] "%s wurden importiert" -#: ../src/develop/masks/brush.c:1356 ../src/develop/masks/brush.c:1410 +#: ../src/develop/masks/brush.c:1346 ../src/develop/masks/brush.c:1400 #, c-format msgid "hardness: %3.2f%%" msgstr "Härte: %3.2f%%" -#: ../src/develop/masks/brush.c:1372 ../src/develop/masks/brush.c:1470 ../src/develop/masks/circle.c:148 -#: ../src/develop/masks/circle.c:193 ../src/develop/masks/ellipse.c:484 ../src/develop/masks/ellipse.c:546 -#: ../src/develop/masks/path.c:1273 +#: ../src/develop/masks/brush.c:1362 ../src/develop/masks/brush.c:1460 +#: ../src/develop/masks/circle.c:148 ../src/develop/masks/circle.c:193 +#: ../src/develop/masks/ellipse.c:484 ../src/develop/masks/ellipse.c:546 +#: ../src/develop/masks/path.c:1255 #, c-format msgid "size: %3.2f%%" msgstr "Größe: %3.2f%%" -#: ../src/develop/masks/brush.c:3247 +#: ../src/develop/masks/brush.c:3191 msgid "[BRUSH] change size" msgstr "[BRUSH] Größe ändern" -#: ../src/develop/masks/brush.c:3249 +#: ../src/develop/masks/brush.c:3193 msgid "[BRUSH] change hardness" msgstr "[BRUSH] Härte ändern" -#: ../src/develop/masks/brush.c:3251 +#: ../src/develop/masks/brush.c:3195 msgid "[BRUSH] change opacity" msgstr "[BRUSH] Deckkraft ändern" -#: ../src/develop/masks/brush.c:3263 +#: ../src/develop/masks/brush.c:3207 #, c-format msgid "brush #%d" msgstr "Pinsel #%d" -#: ../src/develop/masks/brush.c:3276 +#: ../src/develop/masks/brush.c:3220 #, c-format msgid "" "<b>size</b>: scroll, <b>hardness</b>: shift+scroll\n" @@ -8146,34 +9149,35 @@ "<b>Größe</b>: Scrollen, <b>Härte</b>: Shift+Scrollen\n" "<b>Deckkraft</b>: Strg+Scrollen (%d%%)" -#: ../src/develop/masks/brush.c:3279 +#: ../src/develop/masks/brush.c:3223 msgid "<b>size</b>: scroll" msgstr "<b>Größe</b>: Scrollen" -#: ../src/develop/masks/circle.c:137 ../src/develop/masks/circle.c:181 ../src/develop/masks/ellipse.c:470 -#: ../src/develop/masks/ellipse.c:531 ../src/develop/masks/path.c:1205 +#: ../src/develop/masks/circle.c:137 ../src/develop/masks/circle.c:181 +#: ../src/develop/masks/ellipse.c:470 ../src/develop/masks/ellipse.c:531 +#: ../src/develop/masks/path.c:1187 #, c-format msgid "feather size: %3.2f%%" msgstr "Ausblendegröße: %3.2f%%" -#: ../src/develop/masks/circle.c:1510 +#: ../src/develop/masks/circle.c:1462 msgid "[CIRCLE] change size" msgstr "[CIRCLE] Größe ändern" -#: ../src/develop/masks/circle.c:1512 +#: ../src/develop/masks/circle.c:1464 msgid "[CIRCLE] change feather size" msgstr "[CIRCLE] Bereich des Ausblendens ändern" -#: ../src/develop/masks/circle.c:1514 +#: ../src/develop/masks/circle.c:1466 msgid "[CIRCLE] change opacity" msgstr "[CIRCLE] Deckkraft ändern" -#: ../src/develop/masks/circle.c:1527 +#: ../src/develop/masks/circle.c:1479 #, c-format msgid "circle #%d" msgstr "Kreis #%d" -#: ../src/develop/masks/circle.c:1538 ../src/develop/masks/path.c:3490 +#: ../src/develop/masks/circle.c:1490 ../src/develop/masks/path.c:3406 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8187,32 +9191,32 @@ msgid "rotation: %3.f°" msgstr "Drehung: %3.f°" -#: ../src/develop/masks/ellipse.c:2068 +#: ../src/develop/masks/ellipse.c:2015 msgid "[ELLIPSE] change size" msgstr "[ELLIPSE] Größe ändern" -#: ../src/develop/masks/ellipse.c:2071 +#: ../src/develop/masks/ellipse.c:2018 msgid "[ELLIPSE] change feather size" msgstr "[ELLIPSE] Bereich des Ausblendens ändern" -#: ../src/develop/masks/ellipse.c:2074 ../src/develop/masks/ellipse.c:2083 +#: ../src/develop/masks/ellipse.c:2021 ../src/develop/masks/ellipse.c:2030 msgid "[ELLIPSE] rotate shape" msgstr "[ELLIPSE] Form drehen" -#: ../src/develop/masks/ellipse.c:2077 +#: ../src/develop/masks/ellipse.c:2024 msgid "[ELLIPSE] change opacity" msgstr "[ELLIPSE] Deckkraft ändern" -#: ../src/develop/masks/ellipse.c:2080 +#: ../src/develop/masks/ellipse.c:2027 msgid "[ELLIPSE] switch feathering mode" msgstr "[ELLIPSE] Modus für Ausblenden umschalten" -#: ../src/develop/masks/ellipse.c:2090 +#: ../src/develop/masks/ellipse.c:2037 #, c-format msgid "ellipse #%d" msgstr "Ellipse #%d" -#: ../src/develop/masks/ellipse.c:2128 +#: ../src/develop/masks/ellipse.c:2075 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8221,18 +9225,20 @@ "<b>Größe</b>: Scrollen, <b>Ausblendegröße</b>: Shift+Scrollen\n" "<b>Drehen</b>: Strg+Shift+Scrollen, <b>Deckkraft</b>: Strg+Scrollen (%d%%)" -#: ../src/develop/masks/ellipse.c:2132 +#: ../src/develop/masks/ellipse.c:2079 msgid "<b>rotate</b>: ctrl+drag" msgstr "<b>drehen</b>: Strg+ziehen" -#: ../src/develop/masks/ellipse.c:2135 +#: ../src/develop/masks/ellipse.c:2082 #, c-format msgid "" "<b>feather mode</b>: shift+click, <b>rotate</b>: ctrl+drag\n" -"<b>size</b>: scroll, <b>feather size</b>: shift+scroll, <b>opacity</b>: ctrl+scroll (%d%%)" +"<b>size</b>: scroll, <b>feather size</b>: shift+scroll, <b>opacity</b>: " +"ctrl+scroll (%d%%)" msgstr "" "<b>Ausblendemodus</b>: Shift+Klick, <b>drehen</b>: Strg+ziehen\n" -"<b>Größe</b>: Scrollen, <b>Ausblendegöße</b>: Shift+Scrollen, <b>Deckkraft</b>: Strg+Scrollen (%d%%)" +"<b>Größe</b>: Scrollen, <b>Ausblendegöße</b>: Shift+Scrollen, <b>Deckkraft</" +"b>: Strg+Scrollen (%d%%)" #: ../src/develop/masks/gradient.c:131 ../src/develop/masks/gradient.c:175 #, c-format @@ -8244,32 +9250,32 @@ msgid "curvature: %3.2f%%" msgstr "Krümmung: %3.2f%%" -#: ../src/develop/masks/gradient.c:1555 +#: ../src/develop/masks/gradient.c:1514 msgid "[GRADIENT on pivot] rotate shape" msgstr "[GRADIENT on pivot] Form drehen" -#: ../src/develop/masks/gradient.c:1557 +#: ../src/develop/masks/gradient.c:1516 msgid "[GRADIENT creation] set rotation" msgstr "[GRADIENT creation] Drehrichtung einstellen" -#: ../src/develop/masks/gradient.c:1559 +#: ../src/develop/masks/gradient.c:1518 msgid "[GRADIENT] change curvature" msgstr "[GRADIENT] Krümmung ändern" -#: ../src/develop/masks/gradient.c:1561 +#: ../src/develop/masks/gradient.c:1520 msgid "[GRADIENT] change compression" msgstr "[GRADIENT] Kompression ändern" -#: ../src/develop/masks/gradient.c:1563 +#: ../src/develop/masks/gradient.c:1522 msgid "[GRADIENT] change opacity" msgstr "[GRADIENT] Deckkraft ändern" -#: ../src/develop/masks/gradient.c:1576 +#: ../src/develop/masks/gradient.c:1535 #, c-format msgid "gradient #%d" msgstr "Verlauf #%d" -#: ../src/develop/masks/gradient.c:1587 +#: ../src/develop/masks/gradient.c:1546 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8278,7 +9284,7 @@ "<b>Krümmung</b>: Scrollen, <b>Kompression</b>: Shift+Scrollen\n" "<b>Drehung</b>klicken+ziehen<b>>Deckkraft</b>: Strg+Scrollen (%d%%)" -#: ../src/develop/masks/gradient.c:1592 +#: ../src/develop/masks/gradient.c:1551 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8287,7 +9293,7 @@ "<b>Krümmung</b>: Scrollen, <b>Kompression</b>: Shift+Scrollen\n" "<b>>Deckkraft</b>: Strg+Scrollen (%d%%)" -#: ../src/develop/masks/gradient.c:1595 +#: ../src/develop/masks/gradient.c:1554 msgid "<b>rotate</b>: drag" msgstr "<b>drehen</b>: ziehen" @@ -8295,100 +9301,102 @@ msgid "[SHAPE] remove shape" msgstr "[SHAPE] Form entfernen" -#: ../src/develop/masks/masks.c:306 +#: ../src/develop/masks/masks.c:305 #, c-format msgid "group `%s'" msgstr "Gruppe „%s“" -#: ../src/develop/masks/masks.c:423 +#: ../src/develop/masks/masks.c:422 #, c-format msgid "copy of `%s'" msgstr "Kopie von „%s“" -#: ../src/develop/masks/masks.c:984 +#: ../src/develop/masks/masks.c:985 #, c-format msgid "%s: mask version mismatch: %d != %d" msgstr "%s: Maske hat unpassende Version: %d != %d" -#: ../src/develop/masks/masks.c:1239 ../src/develop/masks/masks.c:1906 +#: ../src/develop/masks/masks.c:1230 ../src/develop/masks/masks.c:1881 #, c-format msgid "opacity: %.0f%%" msgstr "Deckkraft: %.0f%%" -#: ../src/develop/masks/masks.c:1650 ../src/libs/masks.c:1068 +#: ../src/develop/masks/masks.c:1625 ../src/libs/masks.c:1084 msgid "add existing shape" msgstr "bestehende Form hinzufügen" -#: ../src/develop/masks/masks.c:1677 +#: ../src/develop/masks/masks.c:1652 msgid "use same shapes as" msgstr "gleiche Form verwenden wie" -#: ../src/develop/masks/masks.c:1990 +#: ../src/develop/masks/masks.c:1965 msgid "masks can not contain themselves" msgstr "Masken können sich nicht selbst enthalten" -#: ../src/develop/masks/path.c:3433 +#: ../src/develop/masks/path.c:3349 msgid "[PATH creation] add a smooth node" msgstr "[PATH creation] weichen Knoten hinzufügen" -#: ../src/develop/masks/path.c:3435 +#: ../src/develop/masks/path.c:3351 msgid "[PATH creation] add a sharp node" msgstr "[PATH creation] scharfen Knoten hinzufügen" -#: ../src/develop/masks/path.c:3437 +#: ../src/develop/masks/path.c:3353 msgid "[PATH creation] terminate path creation" msgstr "[PATH creation] Pfaderstellung beenden" -#: ../src/develop/masks/path.c:3439 +#: ../src/develop/masks/path.c:3355 msgid "[PATH on node] switch between smooth/sharp node" msgstr "[PATH on node] wechseln zwischen weichen und scharfen Knoten" -#: ../src/develop/masks/path.c:3441 +#: ../src/develop/masks/path.c:3357 msgid "[PATH on node] remove the node" msgstr "[PATH on node] Knoten entfernen" -#: ../src/develop/masks/path.c:3443 +#: ../src/develop/masks/path.c:3359 msgid "[PATH on feather] reset curvature" msgstr "[PATH on feather] Krümmung zurücksetzen" -#: ../src/develop/masks/path.c:3445 +#: ../src/develop/masks/path.c:3361 msgid "[PATH on segment] add node" msgstr "[PATH on segment] Knoten hinzufügen" -#: ../src/develop/masks/path.c:3447 +#: ../src/develop/masks/path.c:3363 msgid "[PATH] change size" msgstr "[PATH] Größe ändern" -#: ../src/develop/masks/path.c:3449 +#: ../src/develop/masks/path.c:3365 msgid "[PATH] change feather size" msgstr "[PATH] Bereich des Ausblendens ändern" -#: ../src/develop/masks/path.c:3451 +#: ../src/develop/masks/path.c:3367 msgid "[PATH] change opacity" msgstr "[PATH] Deckkraft ändern" -#: ../src/develop/masks/path.c:3463 +#: ../src/develop/masks/path.c:3379 #, c-format msgid "path #%d" msgstr "Pfad #%d" -#: ../src/develop/masks/path.c:3473 +#: ../src/develop/masks/path.c:3389 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>cancel</b>: right-click" msgstr "" -"<b>Knoten hinzufügen</b>: Klick, <b>Spitzen Knoten hinzufügen</b>: Strg+Klick\n" +"<b>Knoten hinzufügen</b>: Klick, <b>Spitzen Knoten hinzufügen</b>: " +"Strg+Klick\n" "<b>Abbrechen</b>: Rechtsklick" -#: ../src/develop/masks/path.c:3476 +#: ../src/develop/masks/path.c:3392 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>finish path</b>: right-click" msgstr "" -"<b>Knoten hinzufügen</b>: Klick, <b>spitzen Knoten hinzufügen</b>: Strg+klick\n" +"<b>Knoten hinzufügen</b>: Klick, <b>spitzen Knoten hinzufügen</b>: " +"Strg+klick\n" "<b>Pfad abschließen</b>: Rechtsklick" -#: ../src/develop/masks/path.c:3479 +#: ../src/develop/masks/path.c:3395 msgid "" "<b>move node</b>: drag, <b>remove node</b>: right-click\n" "<b>switch smooth/sharp mode</b>: ctrl+click" @@ -8396,7 +9404,7 @@ "<b>Knoten bewegen</b>: ziehen, <b>Knoten entfernen</b>: Rechtsklick\n" "<b>Wechsel glatt/spitz</b>: Strg+klick" -#: ../src/develop/masks/path.c:3483 +#: ../src/develop/masks/path.c:3399 msgid "" "<b>node curvature</b>: drag\n" "<b>reset curvature</b>: right-click" @@ -8404,7 +9412,7 @@ "<b>Knoten Krümmung</b>: ziehen\n" "<b>Krümmung zurücksetzen</b>: Rechtsklick" -#: ../src/develop/masks/path.c:3487 +#: ../src/develop/masks/path.c:3403 msgid "" "<b>move segment</b>: drag\n" "<b>add node</b>: ctrl+click" @@ -8412,35 +9420,56 @@ "<b>Segment bewegen</b>: ziehen\n" "<b>Knoten hinzufügen</b>: Strg+klick" -#: ../src/develop/pixelpipe_hb.c:500 +#: ../src/develop/pixelpipe_hb.c:486 msgid "enabled as required" msgstr "aktiviert da notwendig" -#: ../src/develop/pixelpipe_hb.c:501 +#: ../src/develop/pixelpipe_hb.c:487 msgid "" "history had module disabled but it is required for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" msgstr "" -"Im Verlaufstapel war das Modul deaktiviert, ist aber für diese Art von Bildern erforderlich.\n" -"Vermutlich eine Folge einer Voreinstellung, eines Stils oder Kopieren und Einfügen eines Verlaufs" +"Im Verlaufstapel war das Modul deaktiviert, ist aber für diese Art von " +"Bildern erforderlich.\n" +"Vermutlich eine Folge einer Voreinstellung, eines Stils oder Kopieren und " +"Einfügen eines Verlaufs" -#: ../src/develop/pixelpipe_hb.c:508 +#: ../src/develop/pixelpipe_hb.c:494 msgid "disabled as not appropriate" msgstr "deaktiviert da nicht sinnvoll" -#: ../src/develop/pixelpipe_hb.c:509 +#: ../src/develop/pixelpipe_hb.c:495 msgid "" "history had module enabled but it is not allowed for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" msgstr "" -"Im Verlaufstapel war das Modul aktiviert, ist aber für diese Art von Bildern nicht zulässig.\n" -"Vermutlich eine Folge einer Voreinstellung, eines Stils oder Kopieren und Einfügen eines Verlaufs" - -#: ../src/develop/pixelpipe_hb.c:2705 -msgid "darktable discovered problems with your OpenCL setup; disabling OpenCL for this session!" -msgstr "darktable hat Probleme mit OpenCL festgestellt; OpenCL wird für diese Sitzung deaktiviert!" +"Im Verlaufstapel war das Modul aktiviert, ist aber für diese Art von Bildern " +"nicht zulässig.\n" +"Vermutlich eine Folge einer Voreinstellung, eines Stils oder Kopieren und " +"Einfügen eines Verlaufs" + +#: ../src/develop/pixelpipe_hb.c:2697 +msgid "" +"OpenCL errors encountered; disabling OpenCL for this session! some possible " +"causes:\n" +" - OpenCL out of resources due to preference settings. please try with " +"defaults,\n" +" - buggy driver for some device. please run darktable with `-d opencl' to " +"identify,\n" +" - some drivers don't support needed number of events,\n" +" - too small headroom settings while using 'use all device memory'." +msgstr "" +"Es wurden OpenCL-Fehler festgestellt; OpenCL für diese Sitzung deaktiviert! " +"wahrscheinliche Probleme:\n" +" - OpenCL hat keine Ressourcen mehr aufgrund von Voreinstellungen. Bitte " +"mit Standardeinstellungen versuchen,\n" +" - fehlerhafter Treiber für einige Geräte. Bitte darktable mit `-d opencl’ " +"ausführen, um das zu identifizieren,\n" +" - einige Treiber unterstützen nicht die richtige Anzahl von Ereignissen,\n" +" - zu kleine Headroom-Einstellungen bei Verwendung von ‚use all device " +"memory‘." -#: ../src/develop/pixelpipe_hb.c:2853 +#: ../src/develop/pixelpipe_hb.c:2847 #, c-format msgid "" "module '%s' can't get raster mask from module\n" @@ -8451,28 +9480,32 @@ "da dieses später in der Pixelpipe verarbeitet wird.\n" "Rastermaske wird ignoriert." -#: ../src/develop/tiling.c:820 ../src/develop/tiling.c:1173 +#: ../src/develop/tiling.c:819 ../src/develop/tiling.c:1172 #, c-format -msgid "tiling failed for module '%s'. output might be garbled." -msgstr "Tiling für Modul „%s” fehlgeschlagen. Die Ausgabe könnte fehlerhaft sein." +msgid "" +"tiling failed for module '%s'. the output most likely will be OK, but you " +"might want to check." +msgstr "" +"Tiling für Modul „%s” fehlgeschlagen. Die Ausgabe wird wahrscheinlich ok " +"sein, aber ein Check is empfohlen." -#: ../src/dtgtk/culling.c:254 +#: ../src/dtgtk/culling.c:223 msgid "you have reached the start of your selection" msgstr "Anfang der Auswahl erreicht" -#: ../src/dtgtk/culling.c:263 +#: ../src/dtgtk/culling.c:232 msgid "you have reached the start of your collection" msgstr "Anfang der Sammlung erreicht" -#: ../src/dtgtk/culling.c:310 +#: ../src/dtgtk/culling.c:279 msgid "you have reached the end of your selection" msgstr "Ende der Auswahl erreicht" -#: ../src/dtgtk/culling.c:337 +#: ../src/dtgtk/culling.c:306 msgid "you have reached the end of your collection" msgstr "Ende der Sammlung erreicht" -#: ../src/dtgtk/culling.c:446 +#: ../src/dtgtk/culling.c:415 #, c-format msgid "zooming is limited to %d images" msgstr "Zoom ist auf %d Bilder beschränkt" @@ -8566,7 +9599,7 @@ msgid "fixed" msgstr "absolut" -#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1493 +#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1498 msgid "relative" msgstr "relativ" @@ -8574,12 +9607,13 @@ msgid "selected" msgstr "ausgewählt" -#: ../src/dtgtk/range.c:624 ../src/dtgtk/range.c:1768 ../src/dtgtk/range.c:1819 ../src/libs/colorpicker.c:53 +#: ../src/dtgtk/range.c:624 ../src/dtgtk/range.c:1768 ../src/dtgtk/range.c:1819 +#: ../src/libs/colorpicker.c:53 msgid "min" msgstr "Minimum" -#: ../src/dtgtk/range.c:630 ../src/dtgtk/range.c:1780 ../src/dtgtk/range.c:1831 ../src/libs/colorpicker.c:53 -#: ../src/libs/filters/rating_range.c:282 +#: ../src/dtgtk/range.c:630 ../src/dtgtk/range.c:1780 ../src/dtgtk/range.c:1831 +#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:309 msgid "max" msgstr "Maximum" @@ -8588,7 +9622,7 @@ msgstr "Datumsbereich" #. the date section -#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1505 msgid "date" msgstr "Datum" @@ -8613,7 +9647,7 @@ msgstr "Tage: " #. the time section -#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1505 msgid "time" msgstr "Datum/Uhrzeit" @@ -8621,16 +9655,19 @@ msgid "current date: " msgstr "aktuell:" -#: ../src/dtgtk/range.c:1053 ../src/dtgtk/range.c:1787 ../src/dtgtk/range.c:1838 +#: ../src/dtgtk/range.c:1053 ../src/dtgtk/range.c:1787 +#: ../src/dtgtk/range.c:1838 msgid "now" msgstr "jetzt" #: ../src/dtgtk/range.c:1055 msgid "set the value to always match current datetime" -msgstr "den Wert so einstellen, dass er immer mit dem aktuellen Datum übereinstimmt" +msgstr "" +"den Wert so einstellen, dass er immer mit dem aktuellen Datum übereinstimmt" #. apply button -#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:162 ../src/libs/metadata.c:901 ../src/libs/styles.c:897 +#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:180 +#: ../src/libs/metadata.c:735 ../src/libs/styles.c:901 msgid "apply" msgstr "anwenden" @@ -8659,40 +9696,44 @@ "hier klicken, um dieses Bild als Gruppenleiter festzulegen\n" #. and the number of grouped images -#: ../src/dtgtk/thumbnail.c:187 ../src/libs/filters/grouping.c:144 ../src/libs/filters/grouping.c:169 +#: ../src/dtgtk/thumbnail.c:187 ../src/libs/filters/grouping.c:144 +#: ../src/libs/filters/grouping.c:169 msgid "grouped images" msgstr "gruppierte Bilder" -#: ../src/dtgtk/thumbnail.c:820 ../src/dtgtk/thumbnail.c:1635 ../src/iop/ashift.c:6191 ../src/iop/ashift.c:6280 -#: ../src/iop/ashift.c:6282 ../src/iop/ashift.c:6284 ../src/libs/navigation.c:110 ../src/libs/navigation.c:190 +#: ../src/dtgtk/thumbnail.c:814 ../src/dtgtk/thumbnail.c:1623 +#: ../src/iop/ashift.c:6138 ../src/iop/ashift.c:6227 ../src/iop/ashift.c:6229 +#: ../src/iop/ashift.c:6231 ../src/libs/navigation.c:111 +#: ../src/libs/navigation.c:193 msgid "fit" msgstr "einpassen" -#: ../src/dtgtk/thumbtable.c:1041 ../src/views/slideshow.c:421 +#: ../src/dtgtk/thumbtable.c:1139 ../src/views/slideshow.c:422 msgid "there are no images in this collection" msgstr "Diese Sammlung enthält keine Bilder" -#: ../src/dtgtk/thumbtable.c:1048 +#: ../src/dtgtk/thumbtable.c:1146 msgid "if you have not imported any images yet" msgstr "Falls noch keine Bilder importiert wurden" -#: ../src/dtgtk/thumbtable.c:1052 +#: ../src/dtgtk/thumbtable.c:1150 msgid "you can do so in the import module" msgstr "Kann im Import-Modul erfolgen" -#: ../src/dtgtk/thumbtable.c:1061 +#: ../src/dtgtk/thumbtable.c:1159 msgid "try to relax the filter settings in the top panel" msgstr "Filterregeln in der oberen Leiste anpassen" -#: ../src/dtgtk/thumbtable.c:1072 +#: ../src/dtgtk/thumbtable.c:1170 msgid "or add images in the collections module in the left panel" msgstr "oder Bilder links im Sammlungen-Modul hinzufügen" -#: ../src/dtgtk/thumbtable.c:1338 -msgid "you have changed the settings related to how thumbnails are generated.\n" +#: ../src/dtgtk/thumbtable.c:1455 +msgid "" +"you have changed the settings related to how thumbnails are generated.\n" msgstr "Du hast die Einstellungen zur Miniaturbildergenerierung geändert.\n" -#: ../src/dtgtk/thumbtable.c:1341 +#: ../src/dtgtk/thumbtable.c:1458 msgid "" "all cached thumbnails need to be invalidated.\n" "\n" @@ -8700,7 +9741,7 @@ "alle gespeicherte Miniaturbilder müssen ungültig gesetzt werden.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1345 +#: ../src/dtgtk/thumbtable.c:1462 #, c-format msgid "" "cached thumbnails starting from level %d need to be invalidated.\n" @@ -8709,67 +9750,69 @@ "gespeicherte Miniaturbilder ab Level %d müssen ungültig gesetzt werden.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1350 +#: ../src/dtgtk/thumbtable.c:1467 #, c-format msgid "" "cached thumbnails below level %d need to be invalidated.\n" "\n" msgstr "" -"gespeicherte Miniaturbilder unterhalb der Ebene %d müssen ungültig gemacht werden.\n" +"gespeicherte Miniaturbilder unterhalb der Ebene %d müssen ungültig gemacht " +"werden.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1355 +#: ../src/dtgtk/thumbtable.c:1472 #, c-format msgid "" "cached thumbnails between level %d and %d need to be invalidated.\n" "\n" msgstr "" -"gespeicherte Miniaturbilder zwischen Ebene %d und %d müssen ungültig gesetzt werden.\n" +"gespeicherte Miniaturbilder zwischen Ebene %d und %d müssen ungültig gesetzt " +"werden.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1358 +#: ../src/dtgtk/thumbtable.c:1475 msgid "do you want to do that now?" msgstr "Willst Du das jetzt machen?" -#: ../src/dtgtk/thumbtable.c:1360 +#: ../src/dtgtk/thumbtable.c:1477 msgid "cached thumbnails invalidation" msgstr "Ungültigsetzen von gespeicherten Miniaturbildern" #. setup history key accelerators -#: ../src/dtgtk/thumbtable.c:2561 +#: ../src/dtgtk/thumbtable.c:2738 msgid "copy history" msgstr "Verlauf kopieren" -#: ../src/dtgtk/thumbtable.c:2563 +#: ../src/dtgtk/thumbtable.c:2740 msgid "copy history parts" msgstr "Verlauf teilweise kopieren" -#: ../src/dtgtk/thumbtable.c:2565 +#: ../src/dtgtk/thumbtable.c:2742 msgid "paste history" msgstr "Verlauf einfügen" -#: ../src/dtgtk/thumbtable.c:2567 +#: ../src/dtgtk/thumbtable.c:2744 msgid "paste history parts" msgstr "Verlauf teilweise einfügen" -#: ../src/dtgtk/thumbtable.c:2569 ../src/libs/copy_history.c:394 +#: ../src/dtgtk/thumbtable.c:2746 ../src/libs/copy_history.c:394 msgid "discard history" msgstr "verwerfen" -#: ../src/dtgtk/thumbtable.c:2572 +#: ../src/dtgtk/thumbtable.c:2749 msgid "duplicate image" msgstr "Bild duplizieren" -#: ../src/dtgtk/thumbtable.c:2574 +#: ../src/dtgtk/thumbtable.c:2751 msgid "duplicate image virgin" msgstr "Bilder unbearbeitet duplizieren" -#: ../src/dtgtk/thumbtable.c:2584 ../src/libs/select.c:147 +#: ../src/dtgtk/thumbtable.c:2761 ../src/libs/select.c:148 msgid "select film roll" msgstr "Filmrolle auswählen" # eigentlich: "unbearbeitete auswählen", was aber zu lang für den Knopf ist. -#: ../src/dtgtk/thumbtable.c:2586 ../src/libs/select.c:151 +#: ../src/dtgtk/thumbtable.c:2763 ../src/libs/select.c:152 msgid "select untouched" msgstr "unbearbeitete auswählen" @@ -8802,26 +9845,29 @@ #, c-format msgid "" "warning: disk backend for thumbnail cache is disabled (cache_disk_backend)\n" -"if you want to pre-generate thumbnails and for darktable to use them, you need to enable disk backend for " -"thumbnail cache\n" +"if you want to pre-generate thumbnails and for darktable to use them, you " +"need to enable disk backend for thumbnail cache\n" "no thumbnails to be generated, done.\n" msgstr "" -"Warnung: Festplattencache für Vorschaubilder ist deaktiviert (cache_disk_backend).\n" -"Wenn Vorschaubilder erzeugt und von darktable benutzt werden sollen, dann muss der Festplattencache aktiviert " -"werden.\n" +"Warnung: Festplattencache für Vorschaubilder ist deaktiviert " +"(cache_disk_backend).\n" +"Wenn Vorschaubilder erzeugt und von darktable benutzt werden sollen, dann " +"muss der Festplattencache aktiviert werden.\n" "Es werden keine Vorschaubilder erzeugt, fertig.\n" #: ../src/generate-cache/main.c:238 #, c-format msgid "" -"warning: disk backend for full preview cache is disabled (cache_disk_backend_full)\n" -"if you want to pre-generate full previews and for darktable to use them, you need to enable disk backend for full " -"preview cache\n" +"warning: disk backend for full preview cache is disabled " +"(cache_disk_backend_full)\n" +"if you want to pre-generate full previews and for darktable to use them, you " +"need to enable disk backend for full preview cache\n" "no full previews to be generated, done.\n" msgstr "" -"Warnung: Festplattencache für Vorschaubilder ist deaktiviert (cache_disk_backend_full).\n" -"Wenn Vorschaubilder erzeugt und von darktable benutzt werden sollen, dann muss der Festplattencache aktiviert " -"werden.\n" +"Warnung: Festplattencache für Vorschaubilder ist deaktiviert " +"(cache_disk_backend_full).\n" +"Wenn Vorschaubilder erzeugt und von darktable benutzt werden sollen, dann " +"muss der Festplattencache aktiviert werden.\n" "Es werden keine Vorschaubilder erzeugt, fertig.\n" #: ../src/generate-cache/main.c:248 @@ -8834,256 +9880,296 @@ msgid "creating complete lighttable thumbnail cache\n" msgstr "erzeuge vollständigen Leuchttisch-Vorschau-Cache\n" -#: ../src/gui/accelerators.c:61 -msgid "active view" -msgstr "Aktive Sicht" - -#: ../src/gui/accelerators.c:62 -msgid "other views" -msgstr "andere Ansichten" +#: ../src/gui/about.c:34 +#, c-format +msgid "copyright (c) the authors 2009-%s" +msgstr "Copyright © die Urheber 2009–%s" + +#: ../src/gui/about.c:39 +msgid "organize and develop images from digital cameras" +msgstr "Organisiere und entwickle Bilder von Digitalkameras" -#: ../src/gui/accelerators.c:63 +#: ../src/gui/about.c:51 +msgid "all those of you that made previous releases possible" +msgstr "Und alle, die frühere Releases möglich gemacht haben" + +#: ../src/gui/about.c:56 +msgid "and..." +msgstr "und…" + +#: ../src/gui/about.c:59 +msgid "translator-credits" +msgstr "Tobias Ellinghaus et al." + +#: ../src/gui/accelerators.c:72 +msgid "in active view" +msgstr "in aktiver Sicht" + +#: ../src/gui/accelerators.c:73 +msgid "in other views" +msgstr "in anderen Ansichten" + +#: ../src/gui/accelerators.c:74 msgid "fallbacks" msgstr "Fallbacks" -#: ../src/gui/accelerators.c:64 ../src/gui/accelerators.c:722 ../src/gui/accelerators.c:2607 -#: ../src/gui/accelerators.c:3470 -msgid "speed" -msgstr "Geschwindigkeit" +#: ../src/gui/accelerators.c:75 +msgid "speed adjustments" +msgstr "Geschwindigkeitsanpassungen" + +#: ../src/gui/accelerators.c:76 +msgid "disabled defaults" +msgstr "Deaktivierte Defaults" -#: ../src/gui/accelerators.c:80 ../src/views/view.c:1202 +#: ../src/gui/accelerators.c:96 ../src/views/view.c:1361 msgid "scroll" msgstr "scrollen" -#: ../src/gui/accelerators.c:81 +#: ../src/gui/accelerators.c:97 msgid "pan" msgstr "verschieben" -#: ../src/gui/accelerators.c:82 ../src/iop/ashift.c:5852 ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 -#: ../src/iop/ashift.c:5961 ../src/iop/ashift.c:6283 ../src/iop/clipping.c:1902 ../src/iop/clipping.c:2094 -#: ../src/iop/clipping.c:2110 ../src/views/darkroom.c:2676 ../src/views/lighttable.c:1250 +#: ../src/gui/accelerators.c:98 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6230 ../src/iop/clipping.c:1955 +#: ../src/iop/clipping.c:2147 ../src/iop/clipping.c:2163 +#: ../src/views/darkroom.c:2522 ../src/views/lighttable.c:1250 msgid "horizontal" msgstr "horizontal" -#: ../src/gui/accelerators.c:83 ../src/iop/ashift.c:5852 ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 -#: ../src/iop/ashift.c:5961 ../src/iop/ashift.c:6281 ../src/iop/clipping.c:1901 ../src/iop/clipping.c:2095 -#: ../src/iop/clipping.c:2109 ../src/views/darkroom.c:2679 ../src/views/lighttable.c:1254 +#: ../src/gui/accelerators.c:99 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6228 ../src/iop/clipping.c:1954 +#: ../src/iop/clipping.c:2148 ../src/iop/clipping.c:2162 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:1254 msgid "vertical" msgstr "vertikal" -#: ../src/gui/accelerators.c:84 +#: ../src/gui/accelerators.c:100 msgid "diagonal" msgstr "diagonal" -#: ../src/gui/accelerators.c:86 +#: ../src/gui/accelerators.c:102 msgid "leftright" msgstr "Links/rechts" -#: ../src/gui/accelerators.c:87 +#: ../src/gui/accelerators.c:103 msgid "updown" msgstr "auf/ab" -#: ../src/gui/accelerators.c:88 +#: ../src/gui/accelerators.c:104 msgid "pgupdown" msgstr "Bildauf/ab" -#: ../src/gui/accelerators.c:96 ../src/views/view.c:1186 +#: ../src/gui/accelerators.c:112 ../src/views/view.c:1343 msgid "shift" msgstr "Shift" -#: ../src/gui/accelerators.c:97 ../src/views/view.c:1187 +#: ../src/gui/accelerators.c:113 ../src/views/view.c:1345 msgid "ctrl" msgstr "Strg" -#: ../src/gui/accelerators.c:98 ../src/views/view.c:1188 +#: ../src/gui/accelerators.c:114 ../src/views/view.c:1347 msgid "alt" msgstr "Alt" -#: ../src/gui/accelerators.c:99 +#: ../src/gui/accelerators.c:115 msgid "cmd" msgstr "cmd" -#: ../src/gui/accelerators.c:100 +#: ../src/gui/accelerators.c:116 msgid "altgr" msgstr "altgr" -#: ../src/gui/accelerators.c:109 ../src/gui/accelerators.c:156 ../src/libs/tagging.c:1782 +#: ../src/gui/accelerators.c:127 ../src/gui/accelerators.c:174 +#: ../src/libs/tagging.c:1804 msgid "edit" msgstr "bearbeiten" -#: ../src/gui/accelerators.c:110 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "up" msgstr "auf" -#: ../src/gui/accelerators.c:111 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:129 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "down" msgstr "ab" -#: ../src/gui/accelerators.c:115 +#: ../src/gui/accelerators.c:133 msgid "set" msgstr "setzen" -#: ../src/gui/accelerators.c:119 +#: ../src/gui/accelerators.c:137 msgid "popup" msgstr "popup" -#: ../src/gui/accelerators.c:120 ../src/gui/accelerators.c:153 ../src/gui/gtk.c:3054 ../src/views/lighttable.c:760 +#: ../src/gui/accelerators.c:138 ../src/gui/accelerators.c:171 +#: ../src/gui/gtk.c:3100 ../src/views/lighttable.c:760 msgid "next" msgstr "nächster" -#: ../src/gui/accelerators.c:121 ../src/gui/accelerators.c:152 ../src/gui/gtk.c:3055 ../src/views/lighttable.c:761 +#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:170 +#: ../src/gui/gtk.c:3101 ../src/views/lighttable.c:761 msgid "previous" msgstr "vorheriger" -#: ../src/gui/accelerators.c:123 ../src/gui/accelerators.c:1462 +#: ../src/gui/accelerators.c:141 ../src/gui/accelerators.c:1598 msgid "last" msgstr "letzter" -#: ../src/gui/accelerators.c:124 ../src/gui/accelerators.c:1461 +#: ../src/gui/accelerators.c:142 ../src/gui/accelerators.c:1597 msgid "first" msgstr "erster" -#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:141 ../src/gui/accelerators.c:314 -#: ../src/libs/filters/rating_range.c:268 ../src/libs/tagging.c:3119 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2419 ../src/views/darkroom.c:2648 +#: ../src/gui/accelerators.c:146 ../src/gui/accelerators.c:159 +#: ../src/gui/accelerators.c:356 ../src/libs/filters/rating_range.c:295 +#: ../src/libs/tagging.c:3150 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2258 ../src/views/darkroom.c:2494 msgid "toggle" msgstr "umschalten" -#: ../src/gui/accelerators.c:131 +#: ../src/gui/accelerators.c:149 msgid "ctrl-toggle" msgstr "Strg-umschalten" -#: ../src/gui/accelerators.c:132 +#: ../src/gui/accelerators.c:150 msgid "ctrl-on" msgstr "Strg-über" -#: ../src/gui/accelerators.c:133 +#: ../src/gui/accelerators.c:151 msgid "right-toggle" msgstr "rechts-umschalten" -#: ../src/gui/accelerators.c:134 +#: ../src/gui/accelerators.c:152 msgid "right-on" msgstr "rechts-über" -#: ../src/gui/accelerators.c:145 ../src/gui/gtk.c:3053 +#: ../src/gui/accelerators.c:163 ../src/gui/gtk.c:3099 msgid "activate" msgstr "aktivieren" -#: ../src/gui/accelerators.c:146 +#: ../src/gui/accelerators.c:164 msgid "ctrl-activate" msgstr "Strg-aktivieren" -#: ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:165 msgid "right-activate" msgstr "rechts-aktivieren" -#: ../src/gui/accelerators.c:154 +#: ../src/gui/accelerators.c:172 msgid "store" msgstr "speichern" -#: ../src/gui/accelerators.c:157 ../src/gui/styles_dialog.c:639 +#: ../src/gui/accelerators.c:175 ../src/gui/styles_dialog.c:651 msgid "update" msgstr "aktualisieren" -#: ../src/gui/accelerators.c:158 ../src/libs/tools/global_toolbox.c:60 ../src/libs/tools/global_toolbox.c:510 +#: ../src/gui/accelerators.c:176 ../src/libs/tools/global_toolbox.c:60 +#: ../src/libs/tools/global_toolbox.c:510 msgid "preferences" msgstr "Einstellungen" -#: ../src/gui/accelerators.c:163 +#: ../src/gui/accelerators.c:181 msgid "apply on new instance" msgstr "auf neue Instanz anwenden" -#: ../src/gui/accelerators.c:168 +#: ../src/gui/accelerators.c:186 msgid "start" msgstr "Anfang" -#: ../src/gui/accelerators.c:169 +#: ../src/gui/accelerators.c:187 msgid "end" msgstr "Ende" -#: ../src/gui/accelerators.c:332 +#: ../src/gui/accelerators.c:374 msgid "entry" msgstr "Eintrag" -#: ../src/gui/accelerators.c:409 +#: ../src/gui/accelerators.c:450 msgid "combo effect not found" msgstr "Kombinationseffekt nicht gefunden" -#: ../src/gui/accelerators.c:578 +#: ../src/gui/accelerators.c:627 msgid "(keypad)" msgstr "(Tastenfeld)" -#: ../src/gui/accelerators.c:587 +#: ../src/gui/accelerators.c:636 msgid "tablet button" msgstr "Tablett Taste" -#: ../src/gui/accelerators.c:596 +#: ../src/gui/accelerators.c:645 msgid "unknown driver" msgstr "unbekannter Treiber" -#: ../src/gui/accelerators.c:663 +#: ../src/gui/accelerators.c:718 msgid "long" msgstr "lang" -#: ../src/gui/accelerators.c:664 +#: ../src/gui/accelerators.c:719 msgid "double-press" msgstr "doppelt drücken" -#: ../src/gui/accelerators.c:665 +#: ../src/gui/accelerators.c:720 msgid "triple-press" msgstr "dreifach drücken" -#: ../src/gui/accelerators.c:666 +#: ../src/gui/accelerators.c:721 msgid "press" msgstr "drücken" -#: ../src/gui/accelerators.c:670 +#: ../src/gui/accelerators.c:725 msgctxt "accel" msgid "left" msgstr "links" -#: ../src/gui/accelerators.c:671 +#: ../src/gui/accelerators.c:726 msgctxt "accel" msgid "right" msgstr "rechts" -#: ../src/gui/accelerators.c:672 +#: ../src/gui/accelerators.c:727 msgctxt "accel" msgid "middle" msgstr "mittel" -#: ../src/gui/accelerators.c:673 +#: ../src/gui/accelerators.c:728 msgctxt "accel" msgid "long" msgstr "lang" -#: ../src/gui/accelerators.c:674 +#: ../src/gui/accelerators.c:729 msgctxt "accel" msgid "double-click" msgstr "Doppelklick" -#: ../src/gui/accelerators.c:675 +#: ../src/gui/accelerators.c:730 msgctxt "accel" msgid "triple-click" msgstr "Dreifachklick" -#: ../src/gui/accelerators.c:676 +#: ../src/gui/accelerators.c:731 msgid "click" msgstr "klick" -#: ../src/gui/accelerators.c:704 +#: ../src/gui/accelerators.c:759 msgid "first instance" msgstr "erste Instanz" -#: ../src/gui/accelerators.c:706 +#: ../src/gui/accelerators.c:761 msgid "last instance" msgstr "letzte Instanz" -#: ../src/gui/accelerators.c:708 +#: ../src/gui/accelerators.c:763 msgid "relative instance" msgstr "relative Instanz" -#: ../src/gui/accelerators.c:867 +#: ../src/gui/accelerators.c:780 ../src/gui/accelerators.c:2864 +#: ../src/gui/accelerators.c:3811 +msgid "speed" +msgstr "Geschwindigkeit" + +#: ../src/gui/accelerators.c:923 #, c-format msgid "" "Lua script command copied to clipboard:\n" @@ -9094,11 +10180,11 @@ "\n" "<tt>%s</tt>" -#: ../src/gui/accelerators.c:965 ../src/gui/accelerators.c:978 +#: ../src/gui/accelerators.c:1025 ../src/gui/accelerators.c:1044 msgid "start typing for incremental search" msgstr "Tippen, um inkrementelle Suche zu starten" -#: ../src/gui/accelerators.c:966 +#: ../src/gui/accelerators.c:1028 msgid "" "\n" "press Delete to delete selected shortcut" @@ -9106,7 +10192,23 @@ "\n" "Entf um selektierten Shortcut zu entfernen" -#: ../src/gui/accelerators.c:968 +#: ../src/gui/accelerators.c:1030 +msgid "" +"\n" +"press Delete to disable selected default shortcut" +msgstr "" +"\n" +"Entf um selektierten Default Shortcut zu deaktivieren" + +#: ../src/gui/accelerators.c:1031 +msgid "" +"\n" +"press Delete to restore selected default shortcut" +msgstr "" +"\n" +"Entf um selektierten Default Shortcut wiederherzustellen" + +#: ../src/gui/accelerators.c:1033 msgid "" "\n" "double-click to add new shortcut" @@ -9114,11 +10216,11 @@ "\n" "Doppelklick, um neuen Shortcut hinzuzufügen" -#: ../src/gui/accelerators.c:979 +#: ../src/gui/accelerators.c:1045 msgid "click to filter shortcuts list" msgstr "klicken, um die Liste der Shortcuts zu filtern" -#: ../src/gui/accelerators.c:981 +#: ../src/gui/accelerators.c:1047 msgid "" "\n" "right click to show action of selected shortcut" @@ -9126,7 +10228,7 @@ "\n" "Rechtsklick zur Anzeige der Aktion des ausgewählten Shortcuts" -#: ../src/gui/accelerators.c:984 +#: ../src/gui/accelerators.c:1050 msgid "" "\n" "double-click to define new shortcut" @@ -9134,161 +10236,197 @@ "\n" "Doppelklick, um neuen Shortcut festzulegen" -#: ../src/gui/accelerators.c:1015 +#: ../src/gui/accelerators.c:1081 msgid "shift+alt+scroll to change height" msgstr "Shift+Alt+Scrollen ändert die Höhe" -#: ../src/gui/accelerators.c:1035 -msgid "press keys with mouse click and scroll or move combinations to create a shortcut" -msgstr "Tastendruck mit Mausklick und -scrollen oder -bewegung, um einen Shortcut zu erstellen" +#: ../src/gui/accelerators.c:1101 +msgid "" +"press keys with mouse click and scroll or move combinations to create a " +"shortcut" +msgstr "" +"Tastendruck mit Mausklick und -scrollen oder -bewegung, um einen Shortcut zu " +"erstellen" -#: ../src/gui/accelerators.c:1036 +#: ../src/gui/accelerators.c:1102 msgid "click to open shortcut configuration" msgstr "Klick um Shortcut Einstellungen zu öffnen" -#: ../src/gui/accelerators.c:1037 +#: ../src/gui/accelerators.c:1103 msgid "ctrl+click to add to quick access panel\n" msgstr "Strg+Klick zum Hinzufügen zur Schnellzugriffsgruppe\n" -#: ../src/gui/accelerators.c:1038 +#: ../src/gui/accelerators.c:1104 msgid "ctrl+click to remove from quick access panel\n" msgstr "Strg+Klick zum Entfernen aus Schnellzugriffsgruppe\n" -#: ../src/gui/accelerators.c:1039 +#: ../src/gui/accelerators.c:1105 msgid "scroll to change default speed" msgstr "Scrollen, um die Standardgeschwindigkeit zu ändern" -#: ../src/gui/accelerators.c:1040 +#: ../src/gui/accelerators.c:1106 msgid "right click to exit mapping mode" msgstr "Rechtsklick um Zuweisungsmodus zu beenden" -#: ../src/gui/accelerators.c:1051 +#: ../src/gui/accelerators.c:1119 #, c-format msgid "" "%sright-click to type a specific value between <b>%s</b> and <b>%s</b>\n" "or hold ctrl+shift while dragging to ignore soft limits." msgstr "" -"%sRechtsklick um einen spezifischen Wert zwischen <b>%s</b> und <b>%s</b> einzugeben\n" +"%sRechtsklick um einen spezifischen Wert zwischen <b>%s</b> und <b>%s</b> " +"einzugeben\n" "oder Strg+Shift Ziehen, um die weichen Grenzen zu ignorieren." -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "ctrl+v" msgstr "Strg+v" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "right long click" msgstr "langer Rechtsklick" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "to copy Lua command" msgstr "Lua Befehl kopieren" -#: ../src/gui/accelerators.c:1344 +#: ../src/gui/accelerators.c:1451 msgid "shortcut for move exists with single effect" msgstr "Shortcut für Bewegung mit einer Auswirkung existiert" -#: ../src/gui/accelerators.c:1345 +#: ../src/gui/accelerators.c:1452 +#, c-format +msgid "" +"%s\n" +"\n" +"(assign %s to %s)" +msgstr "" +"%s\n" +"\n" +"(%s zuweisen an %s)" + +#: ../src/gui/accelerators.c:1453 msgid "create separate shortcuts for up and down move?" msgstr "separate Shortcuts für auf/ab-Bewegung erzeugen?" -#: ../src/gui/accelerators.c:1368 +#: ../src/gui/accelerators.c:1479 #, c-format msgid "%s, speed reset" msgstr "%s, speed reset" -#: ../src/gui/accelerators.c:1377 +#: ../src/gui/accelerators.c:1497 msgid "shortcut exists with different settings" msgstr "Shortcut existiert mit anderer Einstellung" -#: ../src/gui/accelerators.c:1378 +#: ../src/gui/accelerators.c:1498 msgid "reset the settings of the shortcut?" msgstr "Einstellung des Shortcuts zurücksetzen?" -#: ../src/gui/accelerators.c:1389 +#: ../src/gui/accelerators.c:1507 msgid "shortcut already exists" msgstr "Shortcut existiert bereits" -#: ../src/gui/accelerators.c:1390 +#: ../src/gui/accelerators.c:1509 +msgid "disable this default shortcut?" +msgstr "diesen Default Shortcuts deaktivieren?" + +#: ../src/gui/accelerators.c:1510 msgid "remove the shortcut?" msgstr "Shortcut entfernen?" -#: ../src/gui/accelerators.c:1423 +#: ../src/gui/accelerators.c:1550 msgid "clashing shortcuts exist" msgstr "widersprüchlicher Shortcut existiert" -#: ../src/gui/accelerators.c:1424 +#: ../src/gui/accelerators.c:1551 msgid "remove these existing shortcuts?" msgstr "diese vorhandenen Shortcuts entfernen?" #. or 3, but change char relative[] = "-2" to "-1" #. NUM_INSTANCES -#: ../src/gui/accelerators.c:1460 +#: ../src/gui/accelerators.c:1596 msgid "preferred" msgstr "bevorzugt" -#: ../src/gui/accelerators.c:1463 +#: ../src/gui/accelerators.c:1599 msgid "second" msgstr "zweite" -#: ../src/gui/accelerators.c:1464 +#: ../src/gui/accelerators.c:1600 msgid "last but one" msgstr "vorletzte" -#: ../src/gui/accelerators.c:1610 ../src/gui/accelerators.c:1670 +#: ../src/gui/accelerators.c:1761 ../src/gui/accelerators.c:1826 msgid "(unchanged)" msgstr "<nicht geändert>" -#: ../src/gui/accelerators.c:1776 +#: ../src/gui/accelerators.c:1941 msgid "" -"define a shortcut by pressing a key, optionally combined with modifier keys (ctrl/shift/alt)\n" +"define a shortcut by pressing a key, optionally combined with modifier keys " +"(ctrl/shift/alt)\n" "a key can be double or triple pressed, with a long last press\n" -"while the key is held, a combination of mouse buttons can be (double/triple/long) clicked\n" -"still holding the key (and modifiers and/or buttons) a scroll or mouse move can be added\n" +"while the key is held, a combination of mouse buttons can be (double/triple/" +"long) clicked\n" +"still holding the key (and modifiers and/or buttons) a scroll or mouse move " +"can be added\n" "connected devices can send keys or moves using their physical controllers\n" "\n" "right-click to cancel" msgstr "" -"einen Shortcut durch Drücken einer Taste definieren; optional kombiniert mit Modifikatortasten (Strg/Shift/Alt)\n" -"eine Taste kann doppelt oder dreifach gedrückt werden, mit einem langen letzten Druck\n" -"während die Taste gehalten wird, kann eine Kombination von Maustasten (doppelt/dreifach/lang) geklickt werden\n" -"bei gehaltener Taste (und Modifikatoren und/oder Tasten) kann eine Scroll- oder Mausbewegung hinzugefügt werden\n" -"angeschlossene Geräte können mit ihren physischen Controllern Tasten oder Bewegungen senden\n" +"einen Shortcut durch Drücken einer Taste definieren; optional kombiniert mit " +"Modifikatortasten (Strg/Shift/Alt)\n" +"eine Taste kann doppelt oder dreifach gedrückt werden, mit einem langen " +"letzten Druck\n" +"während die Taste gehalten wird, kann eine Kombination von Maustasten " +"(doppelt/dreifach/lang) geklickt werden\n" +"bei gehaltener Taste (und Modifikatoren und/oder Tasten) kann eine Scroll- " +"oder Mausbewegung hinzugefügt werden\n" +"angeschlossene Geräte können mit ihren physischen Controllern Tasten oder " +"Bewegungen senden\n" "\n" "Rechtsklick zum Abbrechen" -#: ../src/gui/accelerators.c:1847 +#: ../src/gui/accelerators.c:2014 msgid "removing shortcut" msgstr "Shortcut wird entfernt" -#: ../src/gui/accelerators.c:1848 +#: ../src/gui/accelerators.c:2016 +msgid "disable the selected default shortcut?" +msgstr "selektierten Default Shortcut deaktivieren?" + +#: ../src/gui/accelerators.c:2017 +msgid "restore the selected default shortcut?" +msgstr "selektierten Default Shortcut wiederherstellen?" + +#: ../src/gui/accelerators.c:2018 msgid "remove the selected shortcut?" msgstr "selektierten Shortcut entfernen?" -#: ../src/gui/accelerators.c:1938 +#: ../src/gui/accelerators.c:2107 msgid "command" msgstr "Befehl" -#: ../src/gui/accelerators.c:1939 +#: ../src/gui/accelerators.c:2108 msgid "preset" msgstr "Voreinstellung" -#: ../src/gui/accelerators.c:2272 +#: ../src/gui/accelerators.c:2491 msgid "restore shortcuts" msgstr "Shortcuts wiederherstellen" -#: ../src/gui/accelerators.c:2275 +#: ../src/gui/accelerators.c:2494 msgid "_defaults" msgstr "_Standard" -#: ../src/gui/accelerators.c:2276 +#: ../src/gui/accelerators.c:2495 msgid "_startup" msgstr "_beim Start" -#: ../src/gui/accelerators.c:2277 +#: ../src/gui/accelerators.c:2496 msgid "_edits" msgstr "_vor Änderung" -#: ../src/gui/accelerators.c:2283 +#: ../src/gui/accelerators.c:2503 msgid "" "restore shortcuts from one of these states:\n" " - default\n" @@ -9300,7 +10438,7 @@ " - wie beim Starten\n" " - wie beim Öffnen dieses Dialogs\n" -#: ../src/gui/accelerators.c:2289 +#: ../src/gui/accelerators.c:2510 msgid "" "clear all newer shortcuts\n" "(instead of just restoring changed ones)" @@ -9308,21 +10446,17 @@ "alle neueren Shortcuts löschen\n" "(anstatt nur die geänderten wiederherzustellen)" -#: ../src/gui/accelerators.c:2344 ../src/gui/preferences.c:906 ../src/libs/tools/global_toolbox.c:494 -#: ../src/libs/tools/global_toolbox.c:645 +#: ../src/gui/accelerators.c:2567 ../src/gui/preferences.c:905 +#: ../src/libs/tools/global_toolbox.c:494 +#: ../src/libs/tools/global_toolbox.c:652 msgid "shortcuts" msgstr "Shortcuts" -#: ../src/gui/accelerators.c:2353 +#: ../src/gui/accelerators.c:2577 msgid "export shortcuts" msgstr "Shortcuts exportieren" -#: ../src/gui/accelerators.c:2356 ../src/gui/accelerators.c:2436 ../src/gui/hist_dialog.c:227 -#: ../src/gui/presets.c:564 -msgid "_ok" -msgstr "_OK" - -#: ../src/gui/accelerators.c:2361 +#: ../src/gui/accelerators.c:2586 msgid "" "export all shortcuts to a file\n" "or just for one selected device\n" @@ -9330,27 +10464,27 @@ "alle Shortcuts in eine Datei exportieren\n" "oder nur für ein ausgewähltes Gerät\n" -#: ../src/gui/accelerators.c:2368 ../src/gui/accelerators.c:2448 +#: ../src/gui/accelerators.c:2593 ../src/gui/accelerators.c:2675 msgid "keyboard" msgstr "Tastatur" -#: ../src/gui/accelerators.c:2380 +#: ../src/gui/accelerators.c:2605 msgid "device id" msgstr "Geräte ID" -#: ../src/gui/accelerators.c:2406 +#: ../src/gui/accelerators.c:2631 msgid "select file to export" msgstr "Datei zum exportieren wählen" -#: ../src/gui/accelerators.c:2407 ../src/libs/tagging.c:2525 +#: ../src/gui/accelerators.c:2632 ../src/libs/tagging.c:2556 msgid "_export" msgstr "_exportieren" -#: ../src/gui/accelerators.c:2433 +#: ../src/gui/accelerators.c:2659 msgid "import shortcuts" msgstr "Shortcuts importieren" -#: ../src/gui/accelerators.c:2441 +#: ../src/gui/accelerators.c:2668 msgid "" "import all shortcuts from a file\n" "or just for one selected device\n" @@ -9358,31 +10492,31 @@ "alle Shortcuts aus einer Datei importieren\n" "oder nur für ein ausgewähltes Gerät\n" -#: ../src/gui/accelerators.c:2460 +#: ../src/gui/accelerators.c:2687 msgid "id in file" msgstr "ID in Datei" -#: ../src/gui/accelerators.c:2466 +#: ../src/gui/accelerators.c:2693 msgid "id when loaded" msgstr "ID nach Laden" -#: ../src/gui/accelerators.c:2470 +#: ../src/gui/accelerators.c:2697 msgid "clear device first" msgstr "Zuweisungen für Gerät vorher löschen" -#: ../src/gui/accelerators.c:2494 +#: ../src/gui/accelerators.c:2722 msgid "select file to import" msgstr "Datei zum importieren wählen" -#: ../src/gui/accelerators.c:2495 ../src/libs/tagging.c:2489 +#: ../src/gui/accelerators.c:2723 ../src/libs/tagging.c:2520 msgid "_import" msgstr "_importieren" -#: ../src/gui/accelerators.c:2568 +#: ../src/gui/accelerators.c:2815 msgid "search shortcuts list" msgstr "suche Shortcuts" -#: ../src/gui/accelerators.c:2569 +#: ../src/gui/accelerators.c:2817 msgid "" "incrementally search the list of shortcuts\n" "press up or down keys to cycle through matches" @@ -9390,556 +10524,660 @@ "schrittweise Suche in der Liste der Shortcuts\n" "mit auf- oder ab-Pfeiltaste durch die Treffer blättern" -#. Setting up the cell renderers -#: ../src/gui/accelerators.c:2583 ../src/views/view.c:1383 +#: ../src/gui/accelerators.c:2837 ../src/views/view.c:1554 msgid "shortcut" msgstr "Shortcut" -#: ../src/gui/accelerators.c:2585 ../src/gui/accelerators.c:2676 ../src/views/view.c:1385 +#: ../src/gui/accelerators.c:2840 ../src/gui/accelerators.c:2942 +#: ../src/views/view.c:1556 msgid "action" msgstr "Aktion" -#: ../src/gui/accelerators.c:2594 +#: ../src/gui/accelerators.c:2850 msgid "element" msgstr "Element" -#: ../src/gui/accelerators.c:2601 +#: ../src/gui/accelerators.c:2858 msgid "effect" msgstr "Effekt" -#: ../src/gui/accelerators.c:2658 +#: ../src/gui/accelerators.c:2918 msgid "search actions list" msgstr "suche Aktion" -#: ../src/gui/accelerators.c:2659 +#: ../src/gui/accelerators.c:2920 msgid "" "incrementally search the list of actions\n" "press up or down keys to cycle through matches" msgstr "" "schrittweise Suche in der Liste der Aktionen\n" -"Drücken Sie die Aufwärts- oder Abwärts-Taste, um durch die Treffer zu blättern" +"Drücken Sie die Aufwärts- oder Abwärts-Taste, um durch die Treffer zu " +"blättern" -#: ../src/gui/accelerators.c:2682 ../src/gui/guides.c:719 ../src/libs/export_metadata.c:192 +#: ../src/gui/accelerators.c:2950 ../src/gui/guides.c:719 +#: ../src/libs/export_metadata.c:179 msgid "type" msgstr "Typ" -#: ../src/gui/accelerators.c:2717 +#: ../src/gui/accelerators.c:2988 msgid "enable fallbacks" msgstr "Fallbacks aktivieren" -#: ../src/gui/accelerators.c:2718 +#: ../src/gui/accelerators.c:2989 msgid "" "enables default meanings for additional buttons, modifiers or moves\n" "when used in combination with a base shortcut" msgstr "" -"aktiviert Standardverhalten für zusätzliche Tasten, Modifikatoren oder Bewegungen\n" +"aktiviert Standardverhalten für zusätzliche Tasten, Modifikatoren oder " +"Bewegungen\n" "bei Verwendung in Kombination mit einem Basis-Shortcut" -#: ../src/gui/accelerators.c:2725 +#: ../src/gui/accelerators.c:2997 msgid "open help page for shortcuts" msgstr "Öffne Hilfe für Shortcuts" -#: ../src/gui/accelerators.c:2730 +#: ../src/gui/accelerators.c:3002 msgid "restore..." msgstr "wiederherstellen…" -#: ../src/gui/accelerators.c:2731 +#: ../src/gui/accelerators.c:3003 msgid "restore default shortcuts or previous state" msgstr "Shortcuts auf Standard oder vorliegen Stand zurücksetzen" -#: ../src/gui/accelerators.c:2735 ../src/libs/styles.c:883 ../src/libs/tagging.c:3251 +#: ../src/gui/accelerators.c:3007 ../src/libs/styles.c:887 +#: ../src/libs/tagging.c:3282 msgid "import..." msgstr "importieren…" -#: ../src/gui/accelerators.c:2736 +#: ../src/gui/accelerators.c:3008 msgid "fully or partially import shortcuts from file" msgstr "Shortcuts teilweise oder vollständig aus Datei importieren" -#: ../src/gui/accelerators.c:2740 ../src/libs/styles.c:890 ../src/libs/tagging.c:3254 +#: ../src/gui/accelerators.c:3012 ../src/libs/styles.c:894 +#: ../src/libs/tagging.c:3285 msgid "export..." msgstr "exportieren…" -#: ../src/gui/accelerators.c:2741 +#: ../src/gui/accelerators.c:3013 msgid "fully or partially export shortcuts to file" msgstr "Shortcuts teilweise oder vollständig in Datei exportieren" -#: ../src/gui/accelerators.c:3139 +#: ../src/gui/accelerators.c:3021 +msgid "" +"the recommended way to assign shortcuts to visual elements is the <b>visual " +"shortcut mapping</b> mode.\n" +"this is switched on by toggling the <i>\"keyboard\"</i> button next to " +"preferences in the top panel. in this mode, clicking on a widget or area " +"will open this dialog with the appropriate selection for advanced " +"configuration.\n" +"\n" +"multiple shortcuts can be assigned to the same action. this is especially " +"useful if it has multiple <i>elements</i>, like the module buttons or the " +"colorpickers attached to sliders. however, with <i>fallbacks</i> enabled one " +"can use the same simple shortcuts and change their <i>element</i> or " +"<i>effect</i> by adding mouse clicks.\n" +"\n" +"<i>click <b> three times </b> to dismiss this notice permanently</i>" +msgstr "" +"Der empfohlene Weg, visuellen Elementen Shortcuts zuzuweisen, ist der " +"<b>Visuelle Shortcuts zuordnen</b> Modus.\n" +"Dieser wird durch Umschalten der <i>“Tastatur“</i>-Schaltfläche neben den " +"Einstellungen im oberen Bereich aktiviert. In diesem Modus wird durch " +"Klicken auf ein Widget oder einen Bereich dieser Dialog mit der " +"entsprechenden Auswahl für die erweiterte Konfiguration geöffnet.\n" +"Mehrere Shortcuts können der gleichen Aktion zugewiesen werden. Dies ist " +"besonders nützlich, wenn es mehrere <i>Elemente</i> hat, wie z.B. die Modul-" +"Tasten oder Pipetten, die an Schiebereglern angebracht sind.\n" +"Allerdings kann man mit aktivierten <i>Fallbacks</i> dieselben einfachen " +"Shortcuts verwenden und deren <i>Element</i> oder <i>Effekt</i> durch " +"Mausklicks ändern.\n" +"\n" +"<i>Klick <b> Dreimal </b> um diesen Hinweis dauerhaft auszublenden</i>" + +#: ../src/gui/accelerators.c:3452 msgid "reinitialising input devices" msgstr "Eingabegeräte neu initialisieren" -#: ../src/gui/accelerators.c:3342 +#: ../src/gui/accelerators.c:3594 +msgid "down move" +msgstr "Bewegung abwärts" + +#: ../src/gui/accelerators.c:3594 +msgid "flip top/bottom first/last" +msgstr "umschalten oben/unten zuerst/letzt" + +#: ../src/gui/accelerators.c:3679 msgid "fallback to move" msgstr "Fallback zur Bewegung" -#: ../src/gui/accelerators.c:3578 +#: ../src/gui/accelerators.c:3921 #, c-format msgid "%s not assigned" msgstr "%s nicht zugewiesen" -#: ../src/gui/accelerators.c:3751 +#: ../src/gui/accelerators.c:4102 #, c-format msgid "%s assigned to %s" msgstr "%s zugewiesen an %s" -#: ../src/gui/gtk.c:173 ../src/views/darkroom.c:4650 +#: ../src/gui/accelerators.c:4321 +msgid "short key press resets stuck keys" +msgstr "kurzer Tastendruck setzt hängende Tasten zurück" + +#: ../src/gui/gtk.c:175 ../src/views/darkroom.c:3861 msgid "darktable - darkroom preview" msgstr "darktable - Dunkelkammer Vorschau" -#: ../src/gui/gtk.c:184 +#: ../src/gui/gtk.c:186 msgid "tooltips off" msgstr "Kurzinfos aus" -#: ../src/gui/gtk.c:186 +#: ../src/gui/gtk.c:188 msgid "tooltips on" msgstr "Kurzinfos an" -#: ../src/gui/gtk.c:191 -msgid "tooltip visibility can only be toggled if compositing is enabled in your window manager" -msgstr "Die Sichtbarkeit der Kurzinfos kann nur geändert werden, wenn der Fenstermanager Composing unterstützt." +#: ../src/gui/gtk.c:193 +msgid "" +"tooltip visibility can only be toggled if compositing is enabled in your " +"window manager" +msgstr "" +"Die Sichtbarkeit der Kurzinfos kann nur geändert werden, wenn der " +"Fenstermanager Composing unterstützt." -#: ../src/gui/gtk.c:814 +#: ../src/gui/gtk.c:809 msgid "closing darktable..." msgstr "schließe darktable…" -#: ../src/gui/gtk.c:1135 +#: ../src/gui/gtk.c:1032 +msgid "URL opened in web browser" +msgstr "URL im Webbrowser geöffnet" + +#: ../src/gui/gtk.c:1036 +msgid "error while opening URL in web browser" +msgstr "Fehler beim Laden der URL im Webbrowser" + +#. View menu +#: ../src/gui/gtk.c:1104 +msgctxt "menu" +msgid "Views" +msgstr "Sichten" + +#: ../src/gui/gtk.c:1108 +msgctxt "menu" +msgid "lighttable" +msgstr "Leuchttisch" + +#: ../src/gui/gtk.c:1109 +msgctxt "menu" +msgid "darkroom" +msgstr "Dunkelkammer" + +#: ../src/gui/gtk.c:1115 +msgctxt "menu" +msgid "slideshow" +msgstr "Diashow" + +#: ../src/gui/gtk.c:1117 +msgctxt "menu" +msgid "map" +msgstr "Karte" + +#: ../src/gui/gtk.c:1119 +msgctxt "menu" +msgid "print" +msgstr "Drucken" + +#: ../src/gui/gtk.c:1121 +msgctxt "menu" +msgid "tethering" +msgstr "Tethering" + +#. Help menu +#: ../src/gui/gtk.c:1127 +msgctxt "menu" +msgid "Help" +msgstr "Hilfe" + +#: ../src/gui/gtk.c:1131 +msgctxt "menu" +msgid "darktable Manual" +msgstr "darktable Manual" + +#: ../src/gui/gtk.c:1138 +msgctxt "menu" +msgid "darktable Homepage" +msgstr "darktable Homepage" + +#: ../src/gui/gtk.c:1162 +msgctxt "menu" +msgid "Preferences" +msgstr "Einstellungen" + +#: ../src/gui/gtk.c:1232 msgid "panels" msgstr "Panel" -#. an action that does nothing - used for overriding/removing default shortcuts -#: ../src/gui/gtk.c:1184 -msgid "no-op" -msgstr "nichts" - -#: ../src/gui/gtk.c:1186 +#: ../src/gui/gtk.c:1264 msgid "switch views" msgstr "Ansicht wechseln" -#: ../src/gui/gtk.c:1187 ../src/views/tethering.c:102 +#: ../src/gui/gtk.c:1265 ../src/views/tethering.c:102 msgid "tethering" msgstr "Tethering" -#: ../src/gui/gtk.c:1188 ../src/gui/preferences.c:531 ../src/gui/preferences.c:542 ../src/libs/tools/lighttable.c:66 -#: ../src/views/lighttable.c:91 -msgid "lighttable" -msgstr "Leuchttisch" - -#: ../src/gui/gtk.c:1189 ../src/gui/preferences.c:532 ../src/gui/preferences.c:542 ../src/views/darkroom.c:94 -msgid "darkroom" -msgstr "Dunkelkammer" - -#: ../src/gui/gtk.c:1190 ../src/views/map.c:197 +#: ../src/gui/gtk.c:1268 ../src/views/map.c:197 msgid "map" msgstr "Karte" -#: ../src/gui/gtk.c:1191 ../src/views/slideshow.c:389 +#: ../src/gui/gtk.c:1269 ../src/views/slideshow.c:390 msgid "slideshow" msgstr "Diashow" #. Print button -#: ../src/gui/gtk.c:1192 ../src/libs/print_settings.c:2885 +#: ../src/gui/gtk.c:1270 ../src/libs/print_settings.c:2885 msgid "print" msgstr "drucken" #. register ctrl-q to quit: -#: ../src/gui/gtk.c:1198 +#: ../src/gui/gtk.c:1276 msgid "quit" msgstr "darktable beenden" #. Full-screen accelerator (no ESC handler here to enable quit-slideshow using ESC) -#: ../src/gui/gtk.c:1201 +#: ../src/gui/gtk.c:1279 msgid "fullscreen" msgstr "Vollbild" -#: ../src/gui/gtk.c:1205 +#: ../src/gui/gtk.c:1283 msgid "collapsing controls" msgstr "seitliche Panelsteuersymbole ein-/ausblenden" #. specific top/bottom toggles -#: ../src/gui/gtk.c:1207 +#: ../src/gui/gtk.c:1285 msgid "header" msgstr "Kopfleiste" -#: ../src/gui/gtk.c:1208 +#: ../src/gui/gtk.c:1286 msgid "filmstrip and timeline" msgstr "Filmstreifen bzw. Zeitleiste" -#: ../src/gui/gtk.c:1209 +#: ../src/gui/gtk.c:1287 msgid "top toolbar" msgstr "obere Werkzeugleiste" -#: ../src/gui/gtk.c:1210 +#: ../src/gui/gtk.c:1288 msgid "bottom toolbar" msgstr "untere Werkzeugleiste" -#: ../src/gui/gtk.c:1211 +#: ../src/gui/gtk.c:1289 msgid "all top" msgstr "alle oben" -#: ../src/gui/gtk.c:1212 +#: ../src/gui/gtk.c:1290 msgid "all bottom" msgstr "Alle unten" -#: ../src/gui/gtk.c:1214 +#: ../src/gui/gtk.c:1292 msgid "toggle tooltip visibility" msgstr "Tooltip ein-/ausblenden" -#: ../src/gui/gtk.c:1215 +#: ../src/gui/gtk.c:1293 msgid "reinitialise input devices" msgstr "Eingabegeräte neu initialisieren" -#: ../src/gui/gtk.c:1253 +#: ../src/gui/gtk.c:1331 msgid "toggle focus-peaking mode" msgstr "Fokuserkennung ein-/ausschalten" #. toggle focus peaking everywhere -#: ../src/gui/gtk.c:1258 +#: ../src/gui/gtk.c:1336 msgid "toggle focus peaking" msgstr "Fokuserkennung ein-/ausschalten" -#: ../src/gui/gtk.c:1594 ../src/gui/gtk.c:3143 ../src/gui/gtk.c:3148 ../src/gui/gtk.c:3153 ../src/gui/gtk.c:3158 +#: ../src/gui/gtk.c:1654 ../src/gui/gtk.c:3189 ../src/gui/gtk.c:3194 +#: ../src/gui/gtk.c:3199 ../src/gui/gtk.c:3204 msgid "tabs" msgstr "Tabs" -#: ../src/gui/gtk.c:2535 -msgid "_yes" -msgstr "_ja" - -#: ../src/gui/gtk.c:2536 -msgid "_no" -msgstr "_nein" - #. ask the user if darktable.org may be accessed -#: ../src/gui/gtk.c:2647 +#: ../src/gui/gtk.c:2707 msgid "access the online user manual?" msgstr "Auf das Online-Benutzerhandbuch zugreifen?" -#: ../src/gui/gtk.c:2648 +#: ../src/gui/gtk.c:2708 #, c-format msgid "do you want to access `%s'?" msgstr "Soll auf „%s” zugegriffen werden?" -#: ../src/gui/gtk.c:2717 -msgid "help url opened in web browser" -msgstr "Hilfe-URL wird in Webbrowser geöffnet." - -#: ../src/gui/gtk.c:2721 -msgid "error while opening help url in web browser" -msgstr "Fehler beim Laden der Hilfe-URL in Webbrowser." - -#: ../src/gui/gtk.c:2732 +#: ../src/gui/gtk.c:2778 msgid "there is no help available for this element" msgstr "Für dieses Element ist keine Hilfe verfügbar" #. font name can only use period as decimal separator #. but printf format strings use comma for some locales, so replace comma with period -#: ../src/gui/gtk.c:2752 +#: ../src/gui/gtk.c:2798 ../src/libs/metadata_view.c:762 #, c-format msgid "%.1f" msgstr "%.1f" -#: ../src/gui/gtk.c:2754 +#: ../src/gui/gtk.c:2800 #, c-format msgid "Sans %s" msgstr "Sans %s" -#: ../src/gui/gtk.c:3048 +#: ../src/gui/gtk.c:3094 msgid "does not contain pages" msgstr "keine Seiten" -#: ../src/gui/gtk.c:3265 +#: ../src/gui/gtk.c:3313 #, c-format msgid "never show more than %d lines" msgstr "Nie mehr als %d Zeilen anzeigen" -#: ../src/gui/gtkentry.c:172 +#: ../src/gui/gtkentry.c:173 msgid "$(ROLL.NAME) - roll of the input image" msgstr "$(ROLL.NAME) – Filmrolle des Input Bildes" -#: ../src/gui/gtkentry.c:173 +#: ../src/gui/gtkentry.c:174 msgid "$(FILE.FOLDER) - folder containing the input image" msgstr "$(FILE.FOLDER) – Verzeichnis des Input Bildes" -#: ../src/gui/gtkentry.c:174 +#: ../src/gui/gtkentry.c:175 msgid "$(FILE.NAME) - basename of the input image" msgstr "$(FILE.NAME) – Basisname des Input Bildes" -#: ../src/gui/gtkentry.c:175 +#: ../src/gui/gtkentry.c:176 msgid "$(FILE.EXTENSION) - extension of the input image" msgstr "$(FILE.EXTENSION) – Erweiterung des Input Bildes" -#: ../src/gui/gtkentry.c:176 +#: ../src/gui/gtkentry.c:177 msgid "$(VERSION) - duplicate version" msgstr "$(VERSION) – Version des Duplikats" -#: ../src/gui/gtkentry.c:177 -msgid "$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version exists" -msgstr "$(VERSION.IF_MULTI) - identisch mit $(VERSION) falls mehre Versionen existieren, sonst leer" - #: ../src/gui/gtkentry.c:178 +msgid "" +"$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version " +"exists" +msgstr "" +"$(VERSION.IF_MULTI) - identisch mit $(VERSION) falls mehre Versionen " +"existieren, sonst leer" + +#: ../src/gui/gtkentry.c:179 msgid "$(VERSION.NAME) - version name from metadata" msgstr "$(VERSION.NAME) - Versionsname aus den Metadaten" -#: ../src/gui/gtkentry.c:179 +#: ../src/gui/gtkentry.c:180 msgid "$(JOBCODE) - job code for import" msgstr "$(JOBCODE) - Auftragscode für den Import" -#: ../src/gui/gtkentry.c:180 +#: ../src/gui/gtkentry.c:181 msgid "$(SEQUENCE) - sequence number" msgstr "$(SEQUENCE) – Sequenznummer" -#: ../src/gui/gtkentry.c:181 +#: ../src/gui/gtkentry.c:182 msgid "$(WIDTH.MAX) - maximum image export width" msgstr "$(WIDTH.MAX) – maximale Breite beim Bildexport" -#: ../src/gui/gtkentry.c:182 +#: ../src/gui/gtkentry.c:183 msgid "$(WIDTH.SENSOR) - image sensor width" msgstr "$(WIDTH.SENSOR) - Breite des Bildsensors" -#: ../src/gui/gtkentry.c:183 +#: ../src/gui/gtkentry.c:184 msgid "$(WIDTH.RAW) - RAW image width" msgstr "$(WIDTH.RAW) - Breite des RAW" -#: ../src/gui/gtkentry.c:184 +#: ../src/gui/gtkentry.c:185 msgid "$(WIDTH.CROP) - image width after crop" msgstr "$(WIDTH.CROP) - Bildbreite nach dem Zuschneiden" -#: ../src/gui/gtkentry.c:185 +#: ../src/gui/gtkentry.c:186 msgid "$(WIDTH.EXPORT) - exported image width" msgstr "$(WIDTH.EXPORT) - Breite des exportierten Bilds" -#: ../src/gui/gtkentry.c:186 +#: ../src/gui/gtkentry.c:187 msgid "$(HEIGHT.MAX) - maximum image export height" msgstr "$(HEIGHT.MAX) – maximale Höhe beim Bildexport" -#: ../src/gui/gtkentry.c:187 +#: ../src/gui/gtkentry.c:188 msgid "$(HEIGHT.SENSOR) - image sensor height" msgstr "$(HEIGHT.SENSOR) - Höhe des Bildsensors" -#: ../src/gui/gtkentry.c:188 +#: ../src/gui/gtkentry.c:189 msgid "$(HEIGHT.RAW) - RAW image height" msgstr "$(HEIGHT.RAW) - Höhe des RAW" -#: ../src/gui/gtkentry.c:189 +#: ../src/gui/gtkentry.c:190 msgid "$(HEIGHT.CROP) - image height after crop" msgstr "$(HEIGHT.CROP) - Bildhöhe nach dem Zuschneiden" -#: ../src/gui/gtkentry.c:190 +#: ../src/gui/gtkentry.c:191 msgid "$(HEIGHT.EXPORT) - exported image height" msgstr "$(HEIGHT.EXPORT) - Höhe des exportierten Bilds" -#: ../src/gui/gtkentry.c:191 +#: ../src/gui/gtkentry.c:192 msgid "$(YEAR) - year" msgstr "$(YEAR) – Jahr" -#: ../src/gui/gtkentry.c:192 +#: ../src/gui/gtkentry.c:193 msgid "$(YEAR.SHORT) - year without century" msgstr "$(YEAR.SHORT) - Jahr 2stellig" -#: ../src/gui/gtkentry.c:193 +#: ../src/gui/gtkentry.c:194 msgid "$(MONTH) - month" msgstr "$(MONTH) – Monat" -#: ../src/gui/gtkentry.c:194 +#: ../src/gui/gtkentry.c:195 msgid "$(MONTH.SHORT) - abbreviated month name according to the current locale" msgstr "$(MONTH.SHORT) - Monat kurz gem. Ländereinstellungen" -#: ../src/gui/gtkentry.c:195 +#: ../src/gui/gtkentry.c:196 msgid "$(MONTH.LONG) - full month name according to the current locale" msgstr "$(MONTH.LONG) - Monat lang gem. Ländereinstellungen" -#: ../src/gui/gtkentry.c:196 +#: ../src/gui/gtkentry.c:197 msgid "$(DAY) - day" msgstr "$(DAY) – Tag" -#: ../src/gui/gtkentry.c:197 +#: ../src/gui/gtkentry.c:198 msgid "$(HOUR) - hour" msgstr "$(HOUR) – Stunde" -#: ../src/gui/gtkentry.c:198 +#: ../src/gui/gtkentry.c:199 msgid "$(HOUR.AMPM) - hour, 12-hour clock" msgstr "$(HOUR.AMPM) - Stunde, AM/PM" -#: ../src/gui/gtkentry.c:199 +#: ../src/gui/gtkentry.c:200 msgid "$(MINUTE) - minute" msgstr "$(MINUTE) – Minute" -#: ../src/gui/gtkentry.c:200 +#: ../src/gui/gtkentry.c:201 msgid "$(SECOND) - second" msgstr "$(SECOND) – Sekunde" -#: ../src/gui/gtkentry.c:201 +#: ../src/gui/gtkentry.c:202 msgid "$(MSEC) - millisecond" msgstr "$(MSEC) - Millisekunde" -#: ../src/gui/gtkentry.c:202 +#: ../src/gui/gtkentry.c:203 msgid "$(EXIF.YEAR) - EXIF year" msgstr "$(EXIF.YEAR) – Exif-Jahr" -#: ../src/gui/gtkentry.c:203 +#: ../src/gui/gtkentry.c:204 msgid "$(EXIF.YEAR.SHORT) - EXIF year without century" msgstr "$(EXIF.YEAR.SHORT) – Exif-Jahr 2stellig" -#: ../src/gui/gtkentry.c:204 +#: ../src/gui/gtkentry.c:205 msgid "$(EXIF.MONTH) - EXIF month" msgstr "$(EXIF.MONTH) – Exif-Monat" -#: ../src/gui/gtkentry.c:205 -msgid "$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current locale" +#: ../src/gui/gtkentry.c:206 +msgid "" +"$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current " +"locale" msgstr "$(EXIF.MONTH.SHORT) - EXIF-Monat kurz gem. Ländereinstellungen" -#: ../src/gui/gtkentry.c:206 -msgid "$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" +#: ../src/gui/gtkentry.c:207 +msgid "" +"$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" msgstr "$(EXIF.MONTH.LONG) - EXIF Monat lang gem. Ländereinstellungen" -#: ../src/gui/gtkentry.c:207 +#: ../src/gui/gtkentry.c:208 msgid "$(EXIF.DAY) - EXIF day" msgstr "$(EXIF.DAY) – Exif-Tag" -#: ../src/gui/gtkentry.c:208 +#: ../src/gui/gtkentry.c:209 msgid "$(EXIF.HOUR) - EXIF hour" msgstr "$(EXIF.HOUR) – Exif-Stunde" -#: ../src/gui/gtkentry.c:209 +#: ../src/gui/gtkentry.c:210 msgid "$(EXIF.HOUR.AMPM) - EXIF hour, 12-hour clock" msgstr "$(EXIF.HOUR.AMPM) – Exif-Stunde, AM/PM" -#: ../src/gui/gtkentry.c:210 +#: ../src/gui/gtkentry.c:211 msgid "$(EXIF.MINUTE) - EXIF minute" msgstr "$(EXIF.MINUTE) – Exif-Minute" -#: ../src/gui/gtkentry.c:211 +#: ../src/gui/gtkentry.c:212 msgid "$(EXIF.SECOND) - EXIF second" msgstr "$(EXIF.SECOND) – Exif-Sekunde" -#: ../src/gui/gtkentry.c:212 +#: ../src/gui/gtkentry.c:213 msgid "$(EXIF.MSEC) - EXIF millisecond" msgstr "$(EXIF.MSEC) – Exif-Millisekunde" -#: ../src/gui/gtkentry.c:213 +#: ../src/gui/gtkentry.c:214 msgid "$(EXIF.ISO) - ISO value" msgstr "$(EXIF.ISO) – ISO-Wert" -#: ../src/gui/gtkentry.c:214 +#: ../src/gui/gtkentry.c:215 msgid "$(EXIF.EXPOSURE) - EXIF exposure" msgstr "$(EXIF.EXPOSURE) – Exif-Belichtung" -#: ../src/gui/gtkentry.c:215 +#: ../src/gui/gtkentry.c:216 msgid "$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias" msgstr "$(EXIF.EXPOSURE.BIAS) – Exif-Belichtungskorrektur" -#: ../src/gui/gtkentry.c:216 +#: ../src/gui/gtkentry.c:217 msgid "$(EXIF.APERTURE) - EXIF aperture" msgstr "$(EXIF.APERTURE) – Exif-Blende" -#: ../src/gui/gtkentry.c:217 +#: ../src/gui/gtkentry.c:218 +msgid "$(EXIF.CROP_FACTOR) - EXIF crop factor" +msgstr "$(EXIF.CROP_FACTOR) - EXIF crop factor" + +#: ../src/gui/gtkentry.c:219 msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" msgstr "$(EXIF.FOCAL.LENGTH) - EXIF focal length" -#: ../src/gui/gtkentry.c:218 +#: ../src/gui/gtkentry.c:220 +msgid "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent focal length" +msgstr "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm Äquivalenzbrennweite" + +#: ../src/gui/gtkentry.c:221 msgid "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" msgstr "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" -#: ../src/gui/gtkentry.c:219 +#: ../src/gui/gtkentry.c:222 msgid "$(EXIF.MAKER) - camera maker" msgstr "$(EXIF.MAKER) – Kamerahersteller" -#: ../src/gui/gtkentry.c:220 +#: ../src/gui/gtkentry.c:223 msgid "$(EXIF.MODEL) - camera model" msgstr "$(EXIF.MODEL) – Kameramodell" -#: ../src/gui/gtkentry.c:221 +#: ../src/gui/gtkentry.c:224 msgid "$(EXIF.LENS) - lens" msgstr "$(EXIF.LENS) – Objektiv" -#: ../src/gui/gtkentry.c:222 +#: ../src/gui/gtkentry.c:225 msgid "$(LONGITUDE) - longitude" msgstr "$(LONGITUDE) – geographische Länge" -#: ../src/gui/gtkentry.c:223 +#: ../src/gui/gtkentry.c:226 msgid "$(LATITUDE) - latitude" msgstr "$(LATITUDE) – geografische Breite" -#: ../src/gui/gtkentry.c:224 +#: ../src/gui/gtkentry.c:227 msgid "$(ELEVATION) - elevation" msgstr "$(ELEVATION) – Höhe" -#: ../src/gui/gtkentry.c:225 +#: ../src/gui/gtkentry.c:228 msgid "$(STARS) - star rating as number (-1 for rejected)" msgstr "$(STARS) - Stern-Rating als Zahl (-1 für abgelehnt)" -#: ../src/gui/gtkentry.c:226 +#: ../src/gui/gtkentry.c:229 msgid "$(RATING.ICONS) - star/reject rating in icon form" msgstr "$(RATING.ICONS) - Stern-/Ablehnungsrating in Symbolform" -#: ../src/gui/gtkentry.c:227 +#: ../src/gui/gtkentry.c:230 msgid "$(LABELS) - color labels as text" msgstr "$(LABELS) - Farbmarkierung als Text" -#: ../src/gui/gtkentry.c:228 +#: ../src/gui/gtkentry.c:231 msgid "$(LABELS.ICONS) - color labels as icons" msgstr "$(LABELS.ICONS) - Farbmarkierung als Icons" -#: ../src/gui/gtkentry.c:229 +#: ../src/gui/gtkentry.c:232 msgid "$(ID) - image ID" msgstr "$(ID) - Bild-ID" -#: ../src/gui/gtkentry.c:230 +#: ../src/gui/gtkentry.c:233 msgid "$(TITLE) - title from metadata" msgstr "$(TITLE) – Titel aus den Metadaten" -#: ../src/gui/gtkentry.c:231 +#: ../src/gui/gtkentry.c:234 msgid "$(DESCRIPTION) - description from metadata" msgstr "$(DESCRIPTION) - Beschreibung aus den Metadaten" -#: ../src/gui/gtkentry.c:232 +#: ../src/gui/gtkentry.c:235 msgid "$(CREATOR) - creator from metadata" msgstr "$(CREATOR) – Urheber aus den Metadaten" -#: ../src/gui/gtkentry.c:233 +#: ../src/gui/gtkentry.c:236 msgid "$(PUBLISHER) - publisher from metadata" msgstr "$(PUBLISHER) – Herausgeber aus den Metadaten" -#: ../src/gui/gtkentry.c:234 +#: ../src/gui/gtkentry.c:237 msgid "$(RIGHTS) - rights from metadata" msgstr "$(RIGHTS) – Rechte aus den Metadaten" -#: ../src/gui/gtkentry.c:235 +#: ../src/gui/gtkentry.c:238 msgid "$(USERNAME) - login name" msgstr "$(USERNAME) - Login-Name" -#: ../src/gui/gtkentry.c:236 +#: ../src/gui/gtkentry.c:239 msgid "$(FOLDER.PICTURES) - pictures folder" msgstr "$(PICTURES.FOLDER) – Bilder-Verzeichnis" -#: ../src/gui/gtkentry.c:237 +#: ../src/gui/gtkentry.c:240 msgid "$(FOLDER.HOME) - home folder" msgstr "$(FOLDER.HOME) – Nutzer-Verzeichnis" -#: ../src/gui/gtkentry.c:238 +#: ../src/gui/gtkentry.c:241 msgid "$(FOLDER.DESKTOP) - desktop folder" msgstr "$(FOLDER.DESKTOP) – Desktop-Verzeichnis" -#: ../src/gui/gtkentry.c:239 +#: ../src/gui/gtkentry.c:242 msgid "$(OPENCL.ACTIVATED) - whether OpenCL is activated" msgstr "$(OPENCL.ACTIVATED) – falls OpenCL aktiviert ist" -#: ../src/gui/gtkentry.c:240 +#: ../src/gui/gtkentry.c:243 msgid "$(CATEGORY0(category)) - subtag of level 0 in hierarchical tags" msgstr "$(CATEGORY0(category)) – Tag der Ebene 0 in hierarchischem Tagging" -#: ../src/gui/gtkentry.c:241 +#: ../src/gui/gtkentry.c:244 msgid "$(TAGS) - tags as set in metadata settings" msgstr "$(TAGS) – Tags gemäß den Metadateneinstellungen" -#: ../src/gui/gtkentry.c:242 +#: ../src/gui/gtkentry.c:245 msgid "$(DARKTABLE.NAME) - darktable name" msgstr "$(DARKTABLE.NAME) - darktable Name" -#: ../src/gui/gtkentry.c:243 +#: ../src/gui/gtkentry.c:246 msgid "$(DARKTABLE.VERSION) - current darktable version" msgstr "$(DARKTABLE.VERSION) - aktuelle darktable Version" -#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:255 +#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:248 msgid "grid" msgstr "Gitter" @@ -10008,12 +11246,12 @@ msgid "global guide overlay settings" msgstr "Globale Hilfslinieneinstellungen" -#: ../src/gui/guides.c:710 ../src/gui/guides.c:719 ../src/gui/guides.c:727 ../src/gui/guides.c:740 -#: ../src/views/darkroom.c:2648 +#: ../src/gui/guides.c:710 ../src/gui/guides.c:719 ../src/gui/guides.c:727 +#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2494 msgid "guide lines" msgstr "Hilfslinien" -#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2092 +#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2145 msgid "flip" msgstr "spiegeln" @@ -10029,7 +11267,8 @@ msgid "vertically" msgstr "vertikal" -#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6285 ../src/iop/clipping.c:2096 ../src/iop/colorbalance.c:1917 +#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6232 ../src/iop/clipping.c:2149 +#: ../src/iop/colorbalance.c:1892 msgid "both" msgstr "beides" @@ -10046,8 +11285,11 @@ msgstr "Überlagerungsfarbe wählen" #: ../src/gui/guides.c:741 -msgid "set the contrast between the lightest and darkest part of the guide overlays" -msgstr "Kontrast zwischen dem hellsten und dunkelsten Segment der Hilfslinien-Overlays einstellen" +msgid "" +"set the contrast between the lightest and darkest part of the guide overlays" +msgstr "" +"Kontrast zwischen dem hellsten und dunkelsten Segment der Hilfslinien-" +"Overlays einstellen" #: ../src/gui/guides.c:847 ../src/gui/guides.c:893 msgid "show guides" @@ -10060,10 +11302,12 @@ #: ../src/gui/guides.c:904 msgid "" "change global guide settings\n" -"note that these settings are applied globally and will impact any module that shows guide overlays" +"note that these settings are applied globally and will impact any module " +"that shows guide overlays" msgstr "" "Globale Hilfslinieneinstellungen ändern\n" -"Diese Einstellungen werden global angewendet und wirken sich auf alle Module aus, die Hilfslinien anzeigen." +"Diese Einstellungen werden global angewendet und wirken sich auf alle Module " +"aus, die Hilfslinien anzeigen." #: ../src/gui/hist_dialog.c:222 msgid "select parts to copy" @@ -10073,24 +11317,27 @@ msgid "select parts to paste" msgstr "einzufügende Einstellungen auswählen" -#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:517 +#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:524 msgid "select _all" msgstr "_alles auswählen" -#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:518 +#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:525 msgid "select _none" msgstr "_nichts auswählen" # Meiner Meinung nach könnte man das ganz weglassen - Checkboxen erklären sich selbst, da braucht man keine Spaltenüberschrift... -#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:593 ../src/gui/styles_dialog.c:615 +#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:605 +#: ../src/gui/styles_dialog.c:627 msgid "include" msgstr "Auswahl" -#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:669 ../src/gui/styles_dialog.c:675 +#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:681 +#: ../src/gui/styles_dialog.c:687 msgid "item" msgstr "Einstellung" -#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:682 ../src/gui/styles_dialog.c:691 +#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:694 +#: ../src/gui/styles_dialog.c:703 msgid "mask" msgstr "Maskierung" @@ -10120,12 +11367,15 @@ #: ../src/gui/import_metadata.c:433 msgid "" "selected metadata are imported from image and override the default value.\n" -"this drives also the 'look for updated XMP files' and 'load sidecar file' actions.\n" +"this drives also the 'look for updated XMP files' and 'load sidecar file' " +"actions.\n" "CAUTION: not selected metadata are cleaned up when XMP file is updated." msgstr "" "Die ausgewählten Metadaten wurden aus dem Bild importiert.\n" -"Dies steuert auch die Aktionen „nach aktualisierten XMP-Dateien suchen“ und „XMP-Datei laden“.\n" -"Achtung: nicht ausgewählte Metadaten werden gelöscht, wenn die korrespondierende XMP-Datei geändert wurde." +"Dies steuert auch die Aktionen „nach aktualisierten XMP Dateien suchen“ und " +"„XMP Datei laden“.\n" +"Achtung: nicht ausgewählte Metadaten werden gelöscht, wenn die " +"korrespondierende XMP Datei geändert wurde." #. tags #: ../src/gui/import_metadata.c:469 @@ -10141,37 +11391,39 @@ msgid "interface language" msgstr "Sprache der Oberfläche" -#: ../src/gui/preferences.c:289 +#: ../src/gui/preferences.c:290 msgid "double-click to reset to the system language" msgstr "Doppelklick, um auf die Standardsprache des Systems zurückzusetzen" -#: ../src/gui/preferences.c:291 -msgid "set the language of the user interface. the system default is marked with an * (needs a restart)" +#: ../src/gui/preferences.c:292 +msgid "" +"set the language of the user interface. the system default is marked with an " +"* (needs a restart)" msgstr "" -"Setzt die Sprache der Benutzeroberfläche. Der Systemstandard ist mit einem * markiert. Bei Änderung Neustart " -"erforderlich." +"Setzt die Sprache der Benutzeroberfläche. Der Systemstandard ist mit einem * " +"markiert. Bei Änderung Neustart erforderlich." -#: ../src/gui/preferences.c:300 +#: ../src/gui/preferences.c:301 msgid "theme" msgstr "Design" -#: ../src/gui/preferences.c:328 +#: ../src/gui/preferences.c:331 msgid "set the theme for the user interface" msgstr "Setzt das Design der Benutzeroberfläche" -#: ../src/gui/preferences.c:341 ../src/gui/preferences.c:348 +#: ../src/gui/preferences.c:344 ../src/gui/preferences.c:351 msgid "use system font size" msgstr "System-Schriftgröße nutzen" -#: ../src/gui/preferences.c:357 ../src/gui/preferences.c:364 +#: ../src/gui/preferences.c:360 ../src/gui/preferences.c:367 msgid "font size in points" msgstr "Schriftgröße in Punkten" -#: ../src/gui/preferences.c:369 +#: ../src/gui/preferences.c:372 msgid "GUI controls and text DPI" msgstr "Skalierungsfaktor für grafischer Nutzerelemente und Text" -#: ../src/gui/preferences.c:376 +#: ../src/gui/preferences.c:379 msgid "" "adjust the global GUI resolution to rescale controls, buttons, labels, etc.\n" "increase for a magnified GUI, decrease to fit more content in window.\n" @@ -10179,7 +11431,8 @@ "default is 96 DPI on most systems.\n" "(needs a restart)." msgstr "" -"Auflösung in Punkte je Zoll (DPI) grafischer Nutzerelemente, Knöpfe, Beschriftungen usw. \n" +"Auflösung in Punkte je Zoll (DPI) grafischer Nutzerelemente, Knöpfe, " +"Beschriftungen usw. \n" "Wert anheben, um die Benutzeroberfläche zu vergrößern, \n" "verringern, um mehr Inhalt im Anwendungsfenster darstellen zu können. \n" "Der Wert -1 entspricht der Standardauflösung des Systems. \n" @@ -10187,75 +11440,66 @@ "Bei Änderung Neustart erforderlich." #. checkbox to allow user to modify theme with user.css -#: ../src/gui/preferences.c:385 +#: ../src/gui/preferences.c:388 msgid "modify selected theme with CSS tweaks below" msgstr "ausgewähltes Design durch CSS-Anweisungen anpassen" -#: ../src/gui/preferences.c:393 +#: ../src/gui/preferences.c:396 msgid "modify theme with CSS keyed below (saved to user.css)" -msgstr "Das Thema durch CSS-Anweisungen im unten stehenden Eingabefeld anpassen. Wird in „user.css” gespeichert." +msgstr "" +"Das Thema durch CSS-Anweisungen im unten stehenden Eingabefeld anpassen. " +"Wird in „user.css” gespeichert." -#: ../src/gui/preferences.c:415 +#: ../src/gui/preferences.c:418 msgctxt "usercss" msgid "save CSS and apply" msgstr "speichern und anwenden" -#: ../src/gui/preferences.c:420 +#: ../src/gui/preferences.c:423 msgid "click to save and apply the CSS tweaks entered in this editor" -msgstr "Klicken um die hier eingegebenen CSS-Änderungen zu speichern und anzuwenden" +msgstr "" +"Klicken um die hier eingegebenen CSS-Änderungen zu speichern und anzuwenden" -#: ../src/gui/preferences.c:422 +#: ../src/gui/preferences.c:425 msgid "open help page for CSS tweaks" msgstr "Hilfe für CSS Anpassungen" #. load default text with some pointers -#: ../src/gui/preferences.c:443 +#: ../src/gui/preferences.c:446 msgid "ERROR Loading user.css" msgstr "Fehler beim Laden von „user.css”" #. load default text -#: ../src/gui/preferences.c:452 +#: ../src/gui/preferences.c:455 msgid "Enter CSS theme tweaks here" msgstr "CSS-Anweisungen zur Designanpassung hier eingeben" -#: ../src/gui/preferences.c:488 +#: ../src/gui/preferences.c:491 msgid "darktable preferences" msgstr "darktable-Einstellungen" -#: ../src/gui/preferences.c:533 -msgid "processing" -msgstr "Bearbeitung" - -#: ../src/gui/preferences.c:534 -msgid "security" -msgstr "Sicherheit" - -#: ../src/gui/preferences.c:535 -msgid "storage" -msgstr "Speichern" - -#: ../src/gui/preferences.c:536 -msgid "miscellaneous" -msgstr "Verschiedenes" - -#: ../src/gui/preferences.c:561 +#: ../src/gui/preferences.c:559 msgid "darktable needs to be restarted for settings to take effect" -msgstr "darktable muss neu gestartet werden, damit die Einstellungsänderungen wirksam werden." +msgstr "" +"darktable muss neu gestartet werden, damit die Einstellungsänderungen " +"wirksam werden." #. exif -#: ../src/gui/preferences.c:820 ../src/gui/presets.c:644 ../src/libs/metadata_view.c:137 +#: ../src/gui/preferences.c:818 ../src/gui/presets.c:647 +#: ../src/libs/metadata_view.c:139 msgid "model" msgstr "Modell" -#: ../src/gui/preferences.c:824 ../src/gui/presets.c:652 ../src/libs/metadata_view.c:138 +#: ../src/gui/preferences.c:822 ../src/gui/presets.c:655 +#: ../src/libs/metadata_view.c:140 msgid "maker" msgstr "Hersteller" -#: ../src/gui/preferences.c:861 +#: ../src/gui/preferences.c:859 msgid "search presets list" msgstr "durchsuche Voreinstellungen" -#: ../src/gui/preferences.c:862 +#: ../src/gui/preferences.c:860 msgid "" "incrementally search the list of presets\n" "press up or down keys to cycle through matches" @@ -10263,65 +11507,71 @@ "schrittweise Suche in der Liste der Voreinstellungen\n" "mit auf- oder ab-Pfeiltaste durch die Treffer blättern" -#: ../src/gui/preferences.c:868 +#: ../src/gui/preferences.c:866 msgctxt "preferences" msgid "import..." msgstr "importieren…" -#: ../src/gui/preferences.c:872 +#: ../src/gui/preferences.c:870 msgctxt "preferences" msgid "export..." msgstr "exportieren…" -#: ../src/gui/preferences.c:1031 +#: ../src/gui/preferences.c:1030 #, c-format msgid "failed to import preset %s" msgstr "Voreinstellung %s konnte nicht importiert werden" -#: ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1041 msgid "select preset(s) to import" msgstr "Voreinstellung(en) zum importieren wählen" -#: ../src/gui/preferences.c:1043 ../src/libs/collect.c:408 ../src/libs/copy_history.c:115 -#: ../src/libs/geotagging.c:929 ../src/libs/import.c:1506 ../src/libs/import.c:1610 ../src/libs/styles.c:527 +#: ../src/gui/preferences.c:1042 ../src/libs/collect.c:425 +#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:930 +#: ../src/libs/import.c:1515 ../src/libs/import.c:1619 ../src/libs/styles.c:529 msgid "_open" msgstr "Ö_ffnen" -#: ../src/gui/preferences.c:1052 +#: ../src/gui/preferences.c:1051 msgid "darktable preset files" msgstr "darktable Voreinstellungsdatei" -#: ../src/gui/preferences.c:1057 ../src/iop/lut3d.c:1577 ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:945 -#: ../src/libs/styles.c:541 +#: ../src/gui/preferences.c:1056 ../src/iop/lut3d.c:1591 +#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:946 +#: ../src/libs/styles.c:543 msgid "all files" msgstr "alle Dateien" -#: ../src/gui/presets.c:59 +#: ../src/gui/presets.c:61 msgid "non-raw" -msgstr "non-Raw" +msgstr "nicht-RAW" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:332 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:336 msgid "raw" -msgstr "Raw" +msgstr "RAW" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:333 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:337 msgid "HDR" msgstr "HDR" -#: ../src/gui/presets.c:59 ../src/iop/monochrome.c:77 ../src/libs/image.c:608 ../src/libs/metadata_view.c:339 +#: ../src/gui/presets.c:61 ../src/iop/monochrome.c:77 ../src/libs/image.c:679 +#: ../src/libs/metadata_view.c:343 msgid "monochrome" msgstr "Monochrom" -#: ../src/gui/presets.c:151 +#: ../src/gui/presets.c:153 #, c-format msgid "preset `%s' is write-protected, can't delete!" -msgstr "Voreinstellung „%s” ist schreibgeschützt und kann nicht gelöscht werden" +msgstr "" +"Voreinstellung „%s” ist schreibgeschützt und kann nicht gelöscht werden" -#: ../src/gui/presets.c:157 ../src/gui/presets.c:461 ../src/libs/lib.c:238 ../src/libs/modulegroups.c:3701 +#: ../src/gui/presets.c:159 ../src/gui/presets.c:463 ../src/libs/lib.c:238 +#: ../src/libs/modulegroups.c:3703 msgid "delete preset?" msgstr "Voreinstellung löschen?" -#: ../src/gui/presets.c:158 ../src/gui/presets.c:462 ../src/libs/lib.c:239 ../src/libs/modulegroups.c:3702 +#: ../src/gui/presets.c:160 ../src/gui/presets.c:464 ../src/libs/lib.c:239 +#: ../src/libs/modulegroups.c:3704 #, c-format msgid "do you really want to delete the preset `%s'?" msgstr "Soll die Voreinstellung „%s” wirklich gelöscht werden?" @@ -10332,24 +11582,25 @@ #. clang-format on #. create a shortcut for the new entry #. then show edit dialog -#: ../src/gui/presets.c:200 ../src/gui/presets.c:1035 ../src/gui/presets.c:1038 ../src/gui/presets.c:1041 -#: ../src/libs/lib.c:188 ../src/libs/lib.c:205 ../src/libs/lib.c:213 ../src/libs/lib.c:216 +#: ../src/gui/presets.c:202 ../src/gui/presets.c:1022 ../src/gui/presets.c:1025 +#: ../src/gui/presets.c:1028 ../src/libs/lib.c:188 ../src/libs/lib.c:205 +#: ../src/libs/lib.c:213 ../src/libs/lib.c:216 msgid "new preset" msgstr "neue Voreinstellung" -#: ../src/gui/presets.c:207 +#: ../src/gui/presets.c:209 msgid "please give preset a name" msgstr "Gib der Voreinstellung einen Namen" -#: ../src/gui/presets.c:212 +#: ../src/gui/presets.c:214 msgid "unnamed preset" msgstr "unbenannte Voreinstellung" -#: ../src/gui/presets.c:241 +#: ../src/gui/presets.c:243 msgid "overwrite preset?" msgstr "Voreinstellung überschreiben?" -#: ../src/gui/presets.c:242 +#: ../src/gui/presets.c:244 #, c-format msgid "" "preset `%s' already exists.\n" @@ -10358,74 +11609,90 @@ "Voreinstellung „%s” existiert bereits.\n" "Soll sie überschrieben werden?" -#: ../src/gui/presets.c:420 ../src/imageio/storage/disk.c:123 ../src/imageio/storage/gallery.c:110 -#: ../src/imageio/storage/latex.c:109 +#: ../src/gui/presets.c:422 ../src/imageio/storage/disk.c:198 +#: ../src/imageio/storage/gallery.c:150 ../src/imageio/storage/latex.c:146 msgid "_select as output destination" msgstr "als Ausgabeziel _wählen" -#: ../src/gui/presets.c:429 +#: ../src/gui/presets.c:431 #, c-format msgid "preset %s was successfully exported" msgstr "Voreinstellung „%s” erfolgreich exportiert" -#: ../src/gui/presets.c:557 +#: ../src/gui/presets.c:559 #, c-format msgid "edit `%s' for module `%s'" msgstr "Bearbeite „%s“ des Moduls „%s“" -#: ../src/gui/presets.c:561 +#: ../src/gui/presets.c:563 msgid "_export..." msgstr "_exportieren…" -#: ../src/gui/presets.c:585 +#: ../src/gui/presets.c:564 ../src/libs/tagging.c:1489 +#: ../src/libs/tagging.c:1580 +msgid "_delete" +msgstr "_löschen" + +#: ../src/gui/presets.c:588 msgid "name of the preset" msgstr "Name der Voreinstellung" -#: ../src/gui/presets.c:594 +#: ../src/gui/presets.c:597 msgid "description or further information" msgstr "Beschreibung für weitere Information" -#: ../src/gui/presets.c:598 +#: ../src/gui/presets.c:601 msgid "reset all module parameters to their default values" msgstr "Modul-Parameter zurücksetzen" -#: ../src/gui/presets.c:601 -msgid "the parameters will be reset to their default values, which may be automatically set based on image metadata" -msgstr "die Parameter werden auf Standardwerte zurückgesetzt die anhand der Bild-Metadaten ermittelt werden können" +#: ../src/gui/presets.c:604 +msgid "" +"the parameters will be reset to their default values, which may be " +"automatically set based on image metadata" +msgstr "" +"die Parameter werden auf Standardwerte zurückgesetzt die anhand der Bild-" +"Metadaten ermittelt werden können" -#: ../src/gui/presets.c:607 +#: ../src/gui/presets.c:610 msgid "auto apply this preset to matching images" msgstr "Diese Voreinstellung automatisch auf passende Bilder anwenden" -#: ../src/gui/presets.c:611 +#: ../src/gui/presets.c:614 msgid "only show this preset for matching images" msgstr "Diese Voreinstellung nur für passende Bilder anzeigen" -#: ../src/gui/presets.c:613 -msgid "be very careful with this option. this might be the last time you see your preset." +#: ../src/gui/presets.c:616 +msgid "" +"be very careful with this option. this might be the last time you see your " +"preset." msgstr "" -"Mit dieser Option sehr vorsichtig sein. Es könnte das letzte Mal sein, dass diese Voreinstellung angezeigt wird." +"Mit dieser Option sehr vorsichtig sein. Es könnte das letzte Mal sein, dass " +"diese Voreinstellung angezeigt wird." -#: ../src/gui/presets.c:643 +#: ../src/gui/presets.c:646 #, no-c-format msgid "string to match model (use % as wildcard)" -msgstr "Zeichenkette, auf die das Modell passen muss („%” als Platzhalter benutzen)" +msgstr "" +"Zeichenkette, auf die das Modell passen muss („%” als Platzhalter benutzen)" -#: ../src/gui/presets.c:651 +#: ../src/gui/presets.c:654 #, no-c-format msgid "string to match maker (use % as wildcard)" -msgstr "Zeichenkette, auf die der Hersteller passen muss („%” als Platzhalter benutzen)" +msgstr "" +"Zeichenkette, auf die der Hersteller passen muss („%” als Platzhalter " +"benutzen)" -#: ../src/gui/presets.c:659 +#: ../src/gui/presets.c:662 #, no-c-format msgid "string to match lens (use % as wildcard)" -msgstr "Zeichenkette, auf die das Objektiv passen muss („%” als Platzhalter benutzen)" +msgstr "" +"Zeichenkette, auf die das Objektiv passen muss („%” als Platzhalter benutzen)" -#: ../src/gui/presets.c:669 +#: ../src/gui/presets.c:672 msgid "minimum ISO value" msgstr "Mindest-ISO-Wert" -#: ../src/gui/presets.c:675 +#: ../src/gui/presets.c:678 msgid "" "maximum ISO value\n" "if left blank, it is equivalent to no upper limit" @@ -10433,70 +11700,72 @@ "maximaler ISO-Wert\n" "wenn leer entspricht dies keiner Obergrenze" -#: ../src/gui/presets.c:688 +#: ../src/gui/presets.c:691 msgid "minimum exposure time" msgstr "Mindest-Belichtungszeit" -#: ../src/gui/presets.c:689 +#: ../src/gui/presets.c:692 msgid "maximum exposure time" msgstr "Maximal-Belichtungszeit" -#: ../src/gui/presets.c:705 +#: ../src/gui/presets.c:708 msgid "minimum aperture value" msgstr "Mindest-Blendenwert" -#: ../src/gui/presets.c:706 +#: ../src/gui/presets.c:709 msgid "maximum aperture value" msgstr "Maximal-Blendenwert" -#: ../src/gui/presets.c:724 +#: ../src/gui/presets.c:727 msgid "minimum focal length" msgstr "Mindest-Brennweite" -#: ../src/gui/presets.c:725 +#: ../src/gui/presets.c:728 msgid "maximum focal length" msgstr "Maximal-Brennweite" #. raw/hdr/ldr/mono/color -#: ../src/gui/presets.c:733 ../src/imageio/format/j2k.c:650 +#: ../src/gui/presets.c:736 msgid "format" msgstr "Format" -#: ../src/gui/presets.c:738 +#: ../src/gui/presets.c:741 msgid "select image types you want this preset to be available for" -msgstr "Bildtypen auswählen für welche, diese Voreinstellung verfügbar sein soll" +msgstr "" +"Bildtypen auswählen für welche, diese Voreinstellung verfügbar sein soll" -#: ../src/gui/presets.c:751 ../src/libs/filtering.c:1201 +#: ../src/gui/presets.c:754 ../src/libs/filtering.c:1263 msgid "and" msgstr "und" -#: ../src/gui/presets.c:795 ../src/gui/presets.c:847 +#: ../src/gui/presets.c:798 ../src/gui/presets.c:850 msgid "∞" msgstr "∞" -#: ../src/gui/presets.c:979 +#: ../src/gui/presets.c:966 #, c-format msgid "preset `%s' is write-protected! can't edit it!" -msgstr "Voreinstellung „%s” ist schreibgeschützt und kann nicht geändert werden" +msgstr "" +"Voreinstellung „%s” ist schreibgeschützt und kann nicht geändert werden" -#: ../src/gui/presets.c:1003 ../src/libs/lib.c:158 +#: ../src/gui/presets.c:990 ../src/libs/lib.c:158 msgid "update preset?" msgstr "Voreinstellung aktualisieren?" -#: ../src/gui/presets.c:1004 ../src/libs/lib.c:159 +#: ../src/gui/presets.c:991 ../src/libs/lib.c:159 #, c-format msgid "do you really want to update the preset `%s'?" msgstr "Soll die Voreinstellung „%s” aktualisiert werden?" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(first)" msgstr "(erster)" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(last)" msgstr "(letzter)" -#: ../src/gui/presets.c:1165 +#: ../src/gui/presets.c:1152 #, c-format msgid "" "preset %s\n" @@ -10505,59 +11774,64 @@ "Voreinstellung %s\n" "%s" -#: ../src/gui/presets.c:1166 +#: ../src/gui/presets.c:1153 msgid "no presets" msgstr "Keine Voreinstellungen" -#: ../src/gui/presets.c:1199 ../src/iop/basecurve.c:528 ../src/iop/basecurve.c:532 ../src/iop/basecurve.c:535 +#: ../src/gui/presets.c:1188 ../src/iop/basecurve.c:575 +#: ../src/iop/basecurve.c:579 ../src/iop/basecurve.c:582 msgid "display-referred default" -msgstr "Vorgabe anzeigebezogene Bearbeitung" +msgstr "anzeigebezogene Vorgabe" # Translation rather lengthly. -#: ../src/gui/presets.c:1201 ../src/iop/channelmixerrgb.c:332 ../src/iop/channelmixerrgb.c:336 -#: ../src/iop/channelmixerrgb.c:339 ../src/iop/exposure.c:297 ../src/iop/exposure.c:301 ../src/iop/exposure.c:304 -#: ../src/iop/filmicrgb.c:3248 ../src/iop/filmicrgb.c:3252 ../src/iop/filmicrgb.c:3255 ../src/iop/sigmoid.c:134 -#: ../src/iop/sigmoid.c:138 ../src/iop/sigmoid.c:141 +#: ../src/gui/presets.c:1190 ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:400 ../src/iop/channelmixerrgb.c:403 +#: ../src/iop/exposure.c:319 ../src/iop/exposure.c:323 +#: ../src/iop/exposure.c:326 ../src/iop/filmicrgb.c:3311 +#: ../src/iop/filmicrgb.c:3315 ../src/iop/filmicrgb.c:3318 +#: ../src/iop/sigmoid.c:240 ../src/iop/sigmoid.c:243 ../src/iop/sigmoid.c:245 msgid "scene-referred default" -msgstr "Vorgabe szenenbezogene Bearbeitung" +msgstr "szenenbezogene Vorgabe" -#: ../src/gui/presets.c:1393 ../src/libs/modulegroups.c:3781 ../src/libs/modulegroups.c:3790 +#: ../src/gui/presets.c:1394 ../src/libs/modulegroups.c:3783 +#: ../src/libs/modulegroups.c:3792 msgid "manage module layouts" msgstr "Modullayouts verwalten" -#: ../src/gui/presets.c:1402 +#: ../src/gui/presets.c:1403 msgid "manage quick presets" msgstr "Voreinstellungen für Schnellzugriff auswählen" -#: ../src/gui/presets.c:1586 +#: ../src/gui/presets.c:1587 msgid "manage quick presets list..." msgstr "Schnellzugriffliste bearbeiten" -#: ../src/gui/presets.c:1727 +#: ../src/gui/presets.c:1728 msgid "(default)" msgstr "(Standard)" -#: ../src/gui/presets.c:1754 +#: ../src/gui/presets.c:1755 msgid "disabled: wrong module version" msgstr "deaktiviert: falsche Modul-Version" -#: ../src/gui/presets.c:1776 ../src/libs/lib.c:551 +#: ../src/gui/presets.c:1777 ../src/libs/lib.c:551 msgid "edit this preset.." msgstr "Diese Voreinstellung bearbeiten.." -#: ../src/gui/presets.c:1781 ../src/libs/lib.c:555 +#: ../src/gui/presets.c:1782 ../src/libs/lib.c:555 msgid "delete this preset" msgstr "Diese Voreinstellung löschen" -#: ../src/gui/presets.c:1788 ../src/libs/lib.c:563 +#: ../src/gui/presets.c:1789 ../src/libs/lib.c:563 msgid "store new preset.." msgstr "neue Voreinstellung speichern…" -#: ../src/gui/presets.c:1796 ../src/libs/lib.c:576 +#: ../src/gui/presets.c:1797 ../src/libs/lib.c:576 msgid "update preset" msgstr "aktualisiere Voreinstellung" -#: ../src/gui/styles_dialog.c:221 ../src/libs/styles.c:437 ../src/libs/styles.c:620 +#: ../src/gui/styles_dialog.c:221 ../src/libs/styles.c:437 +#: ../src/libs/styles.c:622 msgid "overwrite style?" msgstr "Stil überschreiben?" @@ -10583,127 +11857,160 @@ msgid "style %s was successfully saved" msgstr "Stil „%s” erfolgreich gespeichert" -#: ../src/gui/styles_dialog.c:505 +#: ../src/gui/styles_dialog.c:512 msgid "edit style" msgstr "Stil bearbeiten" -#: ../src/gui/styles_dialog.c:506 +#: ../src/gui/styles_dialog.c:513 msgid "duplicate style" msgstr "Stil duplizieren" -#: ../src/gui/styles_dialog.c:507 +#: ../src/gui/styles_dialog.c:514 msgid "creates a duplicate of the style before applying changes" msgstr "erzeuge ein Duplikat des Stils, bevor die Änderungen angewandt werden" -#: ../src/gui/styles_dialog.c:511 +#: ../src/gui/styles_dialog.c:518 msgid "create new style" msgstr "Neuen Stil erstellen" -#: ../src/gui/styles_dialog.c:549 +#: ../src/gui/styles_dialog.c:557 msgid "enter a name for the new style" msgstr "Name für den neuen Stil eingeben" -#: ../src/gui/styles_dialog.c:554 +#: ../src/gui/styles_dialog.c:565 msgid "enter a description for the new style, this description is searchable" -msgstr "Beschreibung für den neuen Stil eingeben, diese Beschreibung ist durchsuchbar" +msgstr "" +"Beschreibung für den neuen Stil eingeben, diese Beschreibung ist durchsuchbar" -#: ../src/gui/styles_dialog.c:593 +#: ../src/gui/styles_dialog.c:605 msgid "keep" msgstr "beibehalten" -#: ../src/gui/styles_dialog.c:820 +#: ../src/gui/styles_dialog.c:832 msgid "can't create style out of unaltered image" msgstr "Kann keinen Stil aus unbearbeitetem Bild erzeugen" -#: ../src/imageio/imageio.c:804 +#: ../src/imageio/imageio.c:816 #, c-format -msgid "failed to allocate memory for %s, please lower the threads used for export or buy more memory." +msgid "" +"failed to allocate memory for %s, please lower the threads used for export " +"or buy more memory." msgstr "" -"Fehler beim Reservieren von Speicher zum %s, bitte die Anzahl Threads für den Export herabsetzen oder mehr " -"Speicher kaufen." +"Fehler beim Reservieren von Speicher zum %s, bitte die Anzahl Threads für " +"den Export herabsetzen oder mehr Speicher kaufen." -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "thumbnail export" msgstr "Exportieren der Vorschau" -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "export" msgstr "Exportieren" -#: ../src/imageio/imageio.c:819 +#: ../src/imageio/imageio.c:831 #, c-format msgid "cannot find the style '%s' to apply during export." msgstr "Stil „%s” kann zum Exportieren nicht gefunden werden." -#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:556 ../src/imageio/format/pdf.c:80 -#: ../src/imageio/format/png.c:536 ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/imageio_libraw.c:295 +msgid "" +"<span foreground='red'><b>WARNING</b></span>: camera is not fully supported!" +msgstr "" +"<span foreground='red'><b>WARNUNG</b></span>: Kamera wird nicht vollständig " +"unterstützt!" + +#: ../src/imageio/imageio_libraw.c:297 +#, c-format +msgid "" +"colors for `%s' could be misrepresented,\n" +"and edits might not be compatible with future versions." +msgstr "" +"Farben für „%s“ könnten falsch dargestellt werden\n" +"und Bearbeitungen sind möglicherweise nicht mit zukünftigen Versionen " +"kompatibel." + +#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:641 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "8 bit" msgstr "8 Bit" -#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:567 msgid "10 bit" msgstr "10 Bit" -#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:567 msgid "12 bit" msgstr "12 Bit" -#: ../src/imageio/format/avif.c:431 +#: ../src/imageio/format/avif.c:110 ../src/imageio/format/webp.c:416 +msgid "lossless" +msgstr "verlustfrei" + +#: ../src/imageio/format/avif.c:112 ../src/imageio/format/webp.c:416 +msgid "lossy" +msgstr "verlustbehaftet" + +#: ../src/imageio/format/avif.c:463 msgid "invalid AVIF bit depth!" msgstr "ungültige AVIF bit Rate!" -#: ../src/imageio/format/avif.c:694 -msgid "AVIF" -msgstr "AVIF" - #. Bit depth combo box -#: ../src/imageio/format/avif.c:766 ../src/imageio/format/exr.cc:565 ../src/imageio/format/jxl.c:555 -#: ../src/imageio/format/pdf.c:661 ../src/imageio/format/png.c:534 ../src/imageio/format/tiff.c:843 +#: ../src/imageio/format/avif.c:800 ../src/imageio/format/exr.cc:601 +#: ../src/imageio/format/jxl.c:566 ../src/imageio/format/pdf.c:661 +#: ../src/imageio/format/png.c:639 ../src/imageio/format/tiff.c:900 #: ../src/imageio/format/xcf.c:354 msgid "bit depth" msgstr "Farbtiefe" -#: ../src/imageio/format/avif.c:779 +#: ../src/imageio/format/avif.c:813 msgid "color information stored in an image, higher is better" -msgstr "Farbinformationen, die in einem Bild gespeichert sind, höher ist besser" +msgstr "" +"Farbinformationen, die in einem Bild gespeichert sind, höher ist besser" + +#. +#. * Color mode combo box +#. +#. shortfile option combo box +#: ../src/imageio/format/avif.c:820 ../src/imageio/format/tiff.c:944 +msgid "B&W as grayscale" +msgstr "s/w als Graustufen" -#: ../src/imageio/format/avif.c:787 +#: ../src/imageio/format/avif.c:821 ../src/imageio/format/tiff.c:945 msgid "saving as grayscale will reduce the size for black & white images" msgstr "Speichern als Graustufen reduziert die Größe für Schwarz-Weiß-Bilder" -#: ../src/imageio/format/avif.c:789 -msgid "RGB colors" -msgstr "RGB Farben" - -#: ../src/imageio/format/avif.c:789 -msgid "grayscale" -msgstr "Graustufen" - #. #. * Tiling combo box #. -#: ../src/imageio/format/avif.c:799 +#: ../src/imageio/format/avif.c:832 msgid "tiling" msgstr "Tiling" -#: ../src/imageio/format/avif.c:800 +#: ../src/imageio/format/avif.c:833 msgid "" "tile an image into segments.\n" "\n" -"makes encoding faster. the impact on quality reduction is negligible, but increases the file size." +"makes encoding faster, but increases the file size. the loss of image " +"quality is negligible." msgstr "" "zelegt ein Bild in Segmente.\n" "\n" -"macht die Codierung schneller. Die Auswirkung auf die Qualitätsminderung ist vernachlässigbar, erhöht aber die " -"Dateigröße." +"macht die Codierung schneller erhöht aber die Dateigröße. Die Auswirkung auf " +"die Qualitätsminderung ist vernachlässigbar." -#: ../src/imageio/format/avif.c:817 ../src/imageio/format/webp.c:383 -msgid "compression type" +#. compression +#. Compression method combo box +#: ../src/imageio/format/avif.c:850 ../src/imageio/format/exr.cc:611 +#: ../src/imageio/format/pdf.c:676 ../src/imageio/format/png.c:653 +#: ../src/imageio/format/tiff.c:923 ../src/imageio/format/webp.c:414 +#: ../src/libs/masks.c:111 +msgid "compression" msgstr "Kompression" -#: ../src/imageio/format/avif.c:825 +#: ../src/imageio/format/avif.c:858 msgid "the compression for the image" msgstr "Kompression des Bildes" @@ -10712,34 +12019,28 @@ #. step #. default #. digits -#: ../src/imageio/format/avif.c:842 ../src/imageio/format/j2k.c:661 ../src/imageio/format/jpeg.c:587 -#: ../src/imageio/format/jxl.c:579 ../src/imageio/format/webp.c:394 ../src/libs/camera.c:564 +#: ../src/imageio/format/avif.c:878 ../src/imageio/format/j2k.c:679 +#: ../src/imageio/format/jpeg.c:584 ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/webp.c:425 ../src/libs/camera.c:564 msgid "quality" msgstr "Qualität" -#: ../src/imageio/format/avif.c:847 +#: ../src/imageio/format/avif.c:881 msgid "" "the quality of an image, less quality means fewer details.\n" "\n" -"the following applies only to lossy setting\n" -"\n" -"pixelformat based on quality:\n" +"pixel format is controlled by quality:\n" "\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" msgstr "" "die Qualität eines Bildes, weniger Qualität bedeutet weniger Details.\n" "\n" -"Das Folgende gilt nur für die verlustbehaftete Einstellung\n" +"Pixelformat anhand der Qualitätseinstellung:\n" "\n" -"Pixelformat auf Basis der Qualität:\n" -"\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5 % - 80 % -> YUV420\n" +"5 - 80: YUV420, 81 - 90: YUV422, 91 - 100: YUV444" -#: ../src/imageio/format/copy.c:109 ../src/libs/copy_history.c:370 ../src/libs/image.c:583 +#: ../src/imageio/format/copy.c:109 ../src/libs/copy_history.c:370 +#: ../src/libs/image.c:647 msgid "copy" msgstr "kopieren" @@ -10756,117 +12057,140 @@ msgid "the selected output profile doesn't work well with EXR" msgstr "das gewählte Ausgabe-Profil kann mit EXR Probleme geben" -#: ../src/imageio/format/exr.cc:540 +#: ../src/imageio/format/exr.cc:576 msgid "OpenEXR" msgstr "OpenEXR" -#: ../src/imageio/format/exr.cc:567 +#: ../src/imageio/format/exr.cc:603 msgid "16 bit (float)" msgstr "16 Bit (Fließkomma)" -#: ../src/imageio/format/exr.cc:567 ../src/imageio/format/jxl.c:556 ../src/imageio/format/tiff.c:847 -#: ../src/imageio/format/xcf.c:357 +#: ../src/imageio/format/exr.cc:603 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "32 bit (float)" msgstr "32 Bit (Fließkomma)" -#. compression -#. Compression method combo box -#: ../src/imageio/format/exr.cc:575 ../src/imageio/format/pdf.c:676 ../src/imageio/format/png.c:548 -#: ../src/imageio/format/tiff.c:866 ../src/libs/masks.c:110 -msgid "compression" -msgstr "Kompression" - -#: ../src/imageio/format/exr.cc:577 ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/exr.cc:613 ../src/imageio/format/pdf.c:682 +#: ../src/imageio/format/tiff.c:924 msgid "uncompressed" msgstr "unkomprimiert" -#: ../src/imageio/format/exr.cc:578 +#: ../src/imageio/format/exr.cc:614 msgid "RLE" msgstr "RLE" -#: ../src/imageio/format/exr.cc:579 +#: ../src/imageio/format/exr.cc:615 msgid "ZIPS" msgstr "ZIPS" -#: ../src/imageio/format/exr.cc:580 +#: ../src/imageio/format/exr.cc:616 msgid "ZIP" msgstr "ZIP" -#: ../src/imageio/format/exr.cc:581 +#: ../src/imageio/format/exr.cc:617 msgid "PIZ" msgstr "PIZ" -#: ../src/imageio/format/exr.cc:582 +#: ../src/imageio/format/exr.cc:618 msgid "PXR24" msgstr "PXR24" -#: ../src/imageio/format/exr.cc:583 +#: ../src/imageio/format/exr.cc:619 msgid "B44" msgstr "B44" -#: ../src/imageio/format/exr.cc:584 +#: ../src/imageio/format/exr.cc:620 msgid "B44A" msgstr "B44A" -#: ../src/imageio/format/exr.cc:585 +#: ../src/imageio/format/exr.cc:621 msgid "DWAA" msgstr "DWAA" -#: ../src/imageio/format/exr.cc:586 +#: ../src/imageio/format/exr.cc:622 msgid "DWAB" msgstr "DWAB" -#: ../src/imageio/format/j2k.c:618 +#: ../src/imageio/format/j2k.c:648 msgid "JPEG 2000 (12-bit)" msgstr "JPEG 2000 (12 Bit)" -#: ../src/imageio/format/j2k.c:652 -msgid "jp2" -msgstr "JP2" - -#: ../src/imageio/format/j2k.c:667 +#: ../src/imageio/format/j2k.c:684 msgid "DCP mode" msgstr "DCP-Modus" -#: ../src/imageio/format/j2k.c:670 +#: ../src/imageio/format/j2k.c:687 msgid "Cinema2K, 24FPS" msgstr "Cinema2K, 24FPS" -#: ../src/imageio/format/j2k.c:671 +#: ../src/imageio/format/j2k.c:688 msgid "Cinema2K, 48FPS" msgstr "Cinema2K, 48FPS" -#: ../src/imageio/format/j2k.c:672 +#: ../src/imageio/format/j2k.c:689 msgid "Cinema4K, 24FPS" msgstr "Cinema4K, 24FPS" -#: ../src/imageio/format/jpeg.c:564 +#: ../src/imageio/format/jpeg.c:546 msgid "JPEG (8-bit)" msgstr "JPEG (8 Bit)" -#: ../src/imageio/format/jxl.c:471 -msgid "JPEG XL" -msgstr "JPEG XL" +#: ../src/imageio/format/jpeg.c:594 +msgid "chroma subsampling" +msgstr "Chroma Subsampling" + +#: ../src/imageio/format/jpeg.c:595 +msgid "" +"chroma subsampling setting for JPEG encoder.\n" +"auto - use subsampling determined by the quality value\n" +"4:4:4 - no chroma subsampling\n" +"4:4:0 - color sampling rate halved vertically\n" +"4:2:2 - color sampling rate halved horizontally\n" +"4:2:0 - color sampling rate halved horizontally and vertically" +msgstr "" +"Chroma-Subsampling-Einstellung für den JPEG-Encoder.\n" +"auto - Subsampling durch den Qualitätswert bestimmt\n" +"4:4:4 - kein Chroma Subsampling\n" +"4:4:0 - Farbauflösung vertikal halbiert\n" +"4:2:2 - Farbauflösung horizontal halbiert\n" +"4:2:0 - Farbauflösung horizontal und vertikal halbiert" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:4" +msgstr "4:4:4" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:0" +msgstr "4:4:0" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:2" +msgstr "4:2:2" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:0" +msgstr "4:2:0" -#: ../src/imageio/format/jxl.c:556 ../src/imageio/format/pdf.c:81 ../src/imageio/format/png.c:536 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/format/jxl.c:567 ../src/imageio/format/pdf.c:81 +#: ../src/imageio/format/png.c:641 ../src/imageio/format/tiff.c:904 +#: ../src/imageio/format/xcf.c:357 msgid "16 bit" msgstr "16 Bit" #. Pixel format combo box -#: ../src/imageio/format/jxl.c:562 ../src/imageio/format/tiff.c:852 +#: ../src/imageio/format/jxl.c:573 ../src/imageio/format/tiff.c:909 msgid "pixel type" msgstr "Pixel Typ" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "unsigned integer" msgstr "unsigned Integer" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "floating point" msgstr "Fliesskomma" -#: ../src/imageio/format/jxl.c:580 +#: ../src/imageio/format/jxl.c:591 msgid "" "the quality of the output image\n" "0-29 = very lossy\n" @@ -10878,45 +12202,50 @@ "30-99 = JPEG-Qualität vergleichbar\n" "100 = verlustfrei (nur bei ganzzahliger Bitrate)" -#: ../src/imageio/format/jxl.c:589 +#: ../src/imageio/format/jxl.c:600 msgid "encoding color profile" msgstr "Encoder Farbprofil" -#: ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/jxl.c:601 msgid "" "the color profile used by the encoder\n" -"permit internal XYB color space conversion for more efficient lossy compression,\n" -"or ensure no conversion to keep original image color space (implied for lossless)" +"permit internal XYB color space conversion for more efficient lossy " +"compression,\n" +"or ensure no conversion to keep original image color space (implied for " +"lossless)" msgstr "" "vom Encoder verwendetes Farbprofil\n" -"ermöglicht die interne XYB-Farbraumkonvertierung für eine effizientere verlustbehaftete Komprimierung,\n" -"oder keine Konvertierung, um den Originalfarbraum des Bildes beizubehalten (implizit für verlustfreie Kompression)" +"ermöglicht die interne XYB-Farbraumkonvertierung für eine effizientere " +"verlustbehaftete Komprimierung,\n" +"oder keine Konvertierung, um den Originalfarbraum des Bildes beizubehalten " +"(implizit für verlustfreie Kompression)" -#: ../src/imageio/format/jxl.c:593 +#: ../src/imageio/format/jxl.c:604 msgid "internal" msgstr "intern" -#: ../src/imageio/format/jxl.c:593 ../src/libs/duplicate.c:399 ../src/libs/history.c:1132 ../src/libs/snapshots.c:782 +#: ../src/imageio/format/jxl.c:604 ../src/libs/duplicate.c:405 +#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:840 msgid "original" msgstr "Original" -#: ../src/imageio/format/jxl.c:607 +#: ../src/imageio/format/jxl.c:618 msgid "encoding effort" msgstr "Encodieraufwand" -#: ../src/imageio/format/jxl.c:608 +#: ../src/imageio/format/jxl.c:619 msgid "" -"the effort used to encode the image, higher efforts will have better results at the expense of longer encoding " -"times" +"the effort used to encode the image, higher efforts will have better results " +"at the expense of longer encoding times" msgstr "" -"Aufwand für die Kodierung des Bildes: ein höherer Wert führt zu besseren Ergebnissen auf Kosten einer längeren " -"Codierdauer" +"Aufwand für die Kodierung des Bildes: ein höherer Wert führt zu besseren " +"Ergebnissen auf Kosten einer längeren Codierdauer" -#: ../src/imageio/format/jxl.c:619 +#: ../src/imageio/format/jxl.c:630 msgid "decoding speed" msgstr "Dekodierungsgeschwindigkeit" -#: ../src/imageio/format/jxl.c:620 +#: ../src/imageio/format/jxl.c:631 msgid "the preferred decoding speed with some sacrifice of quality" msgstr "bevorzugte Dekodiergeschwindigkeit mit gewissen Qualitätseinbußen" @@ -10928,8 +12257,9 @@ msgid "invalid border size, using 0" msgstr "ungültige Randgröße wurde durch 0 ersetzt" -#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:316 ../src/imageio/storage/email.c:137 -#: ../src/imageio/storage/gallery.c:331 ../src/imageio/storage/gallery.c:370 ../src/imageio/storage/piwigo.c:1202 +#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:460 +#: ../src/imageio/storage/email.c:187 ../src/imageio/storage/gallery.c:409 +#: ../src/imageio/storage/gallery.c:450 ../src/imageio/storage/piwigo.c:1236 #, c-format msgid "could not export to file `%s'!" msgstr "Konnte nicht in Datei „%s” exportieren!" @@ -10983,7 +12313,8 @@ "Beispiele: 10 mm, 1 inch" #. dpi -#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1127 ../src/libs/export.c:1150 +#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1218 +#: ../src/libs/export.c:1246 msgid "dpi" msgstr "DPI" @@ -10997,10 +12328,12 @@ msgstr "Bilder drehen" #: ../src/imageio/format/pdf.c:632 -msgid "images can be rotated to match the PDF orientation to waste less space when printing" +msgid "" +"images can be rotated to match the PDF orientation to waste less space when " +"printing" msgstr "" -"Bilder können so gedreht werden, dass sie der Ausrichtung des PDFs angepasst werden, um weniger Platz beim Drucken " -"zu verschwenden" +"Bilder können so gedreht werden, dass sie der Ausrichtung des PDFs angepasst " +"werden, um weniger Platz beim Drucken zu verschwenden" #. pages all|single images|contact sheet #: ../src/imageio/format/pdf.c:641 @@ -11043,7 +12376,7 @@ "unkomprimiert – schnell, aber große Dateien\n" "Deflate – kleinere Dateien, aber langsamer" -#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:924 msgid "deflate" msgstr "Deflate" @@ -11074,60 +12407,23 @@ msgid "debug" msgstr "Debug" -#: ../src/imageio/format/pfm.c:120 -msgid "PFM" -msgstr "PFM" - -#: ../src/imageio/format/png.c:493 -msgid "PNG" -msgstr "PNG" - #: ../src/imageio/format/ppm.c:111 msgid "PPM (16-bit)" msgstr "PPM (16 Bit)" -#: ../src/imageio/format/tiff.c:228 -msgid "will export as a grayscale image" -msgstr "Export als Graustufenbild" +#: ../src/imageio/format/tiff.c:246 +msgid "not a B&W image, will not export as grayscale" +msgstr "Kein s/w Bild, daher kein Export als Graustufen" -#: ../src/imageio/format/tiff.c:774 -msgid "TIFF" -msgstr "TIFF" - -#: ../src/imageio/format/tiff.c:868 +#: ../src/imageio/format/tiff.c:925 msgid "deflate with predictor" msgstr "Deflate mit Prädiktor" -#: ../src/imageio/format/tiff.c:878 +#: ../src/imageio/format/tiff.c:935 msgid "compression level" msgstr "Kompressionsstärke" -#. shortfile option combo box -#: ../src/imageio/format/tiff.c:887 -msgid "b&w image" -msgstr "Graustufenbild" - -#: ../src/imageio/format/tiff.c:888 -msgid "write RGB colors" -msgstr "als RGB-Farbbild" - -#: ../src/imageio/format/tiff.c:888 -msgid "write grayscale" -msgstr "als Graustufenbild" - -#: ../src/imageio/format/webp.c:349 -msgid "WebP" -msgstr "WebP" - -#: ../src/imageio/format/webp.c:385 -msgid "lossy" -msgstr "verlustbehaftet" - -#: ../src/imageio/format/webp.c:385 -msgid "lossless" -msgstr "verlustfrei" - -#: ../src/imageio/format/webp.c:397 +#: ../src/imageio/format/webp.c:426 msgid "" "for lossy, 0 gives the smallest size and 100 the best quality.\n" "for lossless, 0 is the fastest but gives larger files compared\n" @@ -11137,11 +12433,11 @@ "verlustfrei: 0 ist am schnellsten, ergibt aber größere Dateien als beim\n" "langsameren 100." -#: ../src/imageio/format/webp.c:407 +#: ../src/imageio/format/webp.c:436 msgid "image hint" msgstr "Bild-Hinweis" -#: ../src/imageio/format/webp.c:408 +#: ../src/imageio/format/webp.c:437 msgid "" "image characteristics hint for the underlying encoder.\n" "picture: digital picture, like portrait, inner shot\n" @@ -11153,15 +12449,15 @@ "Foto: Außenaufnahme mit natürlichem Licht\n" "Grafik: Bild mit begrenztem Farbumfang (Grafik, Kartenkachel usw.)" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "picture" msgstr "Bild" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "photo" msgstr "Foto" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "graphic" msgstr "Grafik" @@ -11169,11 +12465,12 @@ msgid "XCF" msgstr "XCF" -#: ../src/imageio/storage/disk.c:71 ../src/libs/export.c:1040 +#: ../src/imageio/storage/disk.c:74 ../src/libs/export.c:1119 msgid "file on disk" msgstr "Datei auf Festplatte" -#: ../src/imageio/storage/disk.c:169 ../src/imageio/storage/gallery.c:155 ../src/imageio/storage/latex.c:154 +#: ../src/imageio/storage/disk.c:251 ../src/imageio/storage/gallery.c:204 +#: ../src/imageio/storage/latex.c:191 msgid "" "enter the path where to put exported images\n" "variables support bash like string manipulation\n" @@ -11181,79 +12478,104 @@ msgstr "" "Speicherpfad für exportierte Bilder angeben\n" "Variablen unterstützen Bash-artige Stringmanipulationen\n" -"„$(“ eingeben, um die Vervollständigungsfunktion zu aktivieren und die Liste der Variablen anzuzeigen" +"„$(“ eingeben, um die Vervollständigungsfunktion zu aktivieren und die Liste " +"der Variablen anzuzeigen" -#: ../src/imageio/storage/disk.c:182 ../src/imageio/storage/piwigo.c:1079 +#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/piwigo.c:1113 msgid "on conflict" msgstr "bei Konflikten" -#: ../src/imageio/storage/disk.c:185 +#: ../src/imageio/storage/disk.c:268 msgid "create unique filename" msgstr "umbenennen" #. DT_COPY_HISTORY_APPEND -#: ../src/imageio/storage/disk.c:186 ../src/imageio/storage/piwigo.c:1083 ../src/libs/copy_history.c:404 -#: ../src/libs/image.c:601 ../src/libs/styles.c:440 ../src/libs/styles.c:623 ../src/libs/styles.c:850 +#: ../src/imageio/storage/disk.c:269 ../src/imageio/storage/piwigo.c:1117 +#: ../src/libs/copy_history.c:404 ../src/libs/image.c:670 +#: ../src/libs/styles.c:854 msgid "overwrite" msgstr "überschreiben" -#: ../src/imageio/storage/disk.c:187 ../src/imageio/storage/piwigo.c:1081 ../src/libs/styles.c:439 -#: ../src/libs/styles.c:622 +#: ../src/imageio/storage/disk.c:270 +msgid "overwrite if changed" +msgstr "überschreiben falls geändert" + +#: ../src/imageio/storage/disk.c:271 ../src/imageio/storage/piwigo.c:1115 msgid "skip" msgstr "überspringen" -#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/gallery.c:253 ../src/imageio/storage/latex.c:252 +#: ../src/imageio/storage/disk.c:371 ../src/imageio/storage/gallery.c:326 +#: ../src/imageio/storage/latex.c:289 #, c-format msgid "could not create directory `%s'!" msgstr "Konnte Verzeichnis „%s” nicht erstellen!" -#: ../src/imageio/storage/disk.c:272 +#: ../src/imageio/storage/disk.c:382 #, c-format msgid "could not write to directory `%s'!" msgstr "Konnte nicht in Verzeichnis „%s” schreiben!" -#: ../src/imageio/storage/disk.c:302 +#: ../src/imageio/storage/disk.c:419 #, c-format msgid "%d/%d skipping `%s'" msgid_plural "%d/%d skipping `%s'" msgstr[0] "%d / %d überspringen „%s”" msgstr[1] "%d / %d überspringen „%s”" -#: ../src/imageio/storage/disk.c:321 ../src/imageio/storage/email.c:144 ../src/imageio/storage/gallery.c:378 -#: ../src/imageio/storage/latex.c:340 +#: ../src/imageio/storage/disk.c:441 +#, c-format +msgid "%d/%d skipping (not modified since export) `%s'" +msgid_plural "%d/%d skipping (not modified since export) `%s'" +msgstr[0] "%d/%d überspringen (seit Export nicht geändert) `%s'" +msgstr[1] "%d/%d überspringen (seit Export nicht geändert) `%s'" + +#: ../src/imageio/storage/disk.c:465 ../src/imageio/storage/email.c:194 +#: ../src/imageio/storage/gallery.c:458 ../src/imageio/storage/latex.c:377 #, c-format msgid "%d/%d exported to `%s'" msgid_plural "%d/%d exported to `%s'" msgstr[0] "%d / %d exportiert nach „%s”" msgstr[1] "%d / %d exportiert nach „%s”" -#: ../src/imageio/storage/disk.c:380 +#: ../src/imageio/storage/disk.c:530 msgid "" -"you are going to export in overwrite mode, this will overwrite any existing images\n" +"you are going to export in overwrite mode, this will overwrite any existing " +"images\n" "\n" "do you really want to continue?" msgstr "" -"Du exportierst im Überschreibmodus, dadurch werden alle vorhandenen Bilder überschrieben.\n" +"Du exportierst im Überschreibmodus, dadurch werden alle vorhandenen Bilder " +"überschrieben.\n" "\n" "Möchtest Du wirklich weitermachen?" -#: ../src/imageio/storage/email.c:52 +#: ../src/imageio/storage/email.c:57 msgid "send as email" msgstr "als E-Mail senden" -#: ../src/imageio/storage/email.c:198 +#. Unlikely in normal Windows installations, but let's notify the user if it happens +#: ../src/imageio/storage/email.c:265 +msgid "could not open mapi32.dll" +msgstr "Konnte mapi32.dll nicht öffnen" + +#. Even more unlikely +#: ../src/imageio/storage/email.c:275 +msgid "could not get SendMail function" +msgstr "Konnte SendMail nicht aufrufen" + +#: ../src/imageio/storage/email.c:319 ../src/imageio/storage/email.c:409 msgid "images exported from darktable" msgstr "Aus darktable exportierte Bilder" -#: ../src/imageio/storage/email.c:251 +#: ../src/imageio/storage/email.c:388 ../src/imageio/storage/email.c:467 msgid "could not launch email client!" msgstr "Konnte E-Mail-Programm nicht starten!" -#: ../src/imageio/storage/gallery.c:73 +#: ../src/imageio/storage/gallery.c:76 msgid "website gallery" msgstr "Webseiten-Galerie" -#: ../src/imageio/storage/gallery.c:171 +#: ../src/imageio/storage/gallery.c:224 msgid "enter the title of the website" msgstr "Titel für die Webseite eingeben" @@ -11261,149 +12583,150 @@ msgid "LaTeX book template" msgstr "LaTeX-Buch-Vorlage" -#: ../src/imageio/storage/latex.c:172 +#: ../src/imageio/storage/latex.c:209 msgid "enter the title of the book" msgstr "den Titel für das Buch eingeben" -#: ../src/imageio/storage/piwigo.c:522 +#: ../src/imageio/storage/piwigo.c:525 msgid "authenticated" msgstr "authentifiziert" -#: ../src/imageio/storage/piwigo.c:532 ../src/imageio/storage/piwigo.c:547 ../src/imageio/storage/piwigo.c:559 +#: ../src/imageio/storage/piwigo.c:536 ../src/imageio/storage/piwigo.c:552 +#: ../src/imageio/storage/piwigo.c:565 msgid "not authenticated" msgstr "nicht authentifiziert" -#: ../src/imageio/storage/piwigo.c:538 +#: ../src/imageio/storage/piwigo.c:542 msgid "not authenticated, cannot reach server" msgstr "Nicht authentifiziert, konnte den Server nicht erreichen" -#: ../src/imageio/storage/piwigo.c:587 ../src/imageio/storage/piwigo.c:675 +#: ../src/imageio/storage/piwigo.c:595 ../src/imageio/storage/piwigo.c:684 msgid "create new album" msgstr "Neues Album erstellen" -#: ../src/imageio/storage/piwigo.c:676 +#: ../src/imageio/storage/piwigo.c:685 msgid "---" msgstr "---" -#: ../src/imageio/storage/piwigo.c:721 +#: ../src/imageio/storage/piwigo.c:735 msgid "cannot refresh albums" msgstr "Kann Albenliste nicht aktualisieren" -#: ../src/imageio/storage/piwigo.c:929 +#: ../src/imageio/storage/piwigo.c:950 msgid "Piwigo" msgstr "Piwigo" -#: ../src/imageio/storage/piwigo.c:954 +#: ../src/imageio/storage/piwigo.c:976 msgid "accounts" msgstr "Konten" -#: ../src/imageio/storage/piwigo.c:972 ../src/imageio/storage/piwigo.c:978 +#: ../src/imageio/storage/piwigo.c:995 ../src/imageio/storage/piwigo.c:1004 msgid "server" msgstr "Server" -#: ../src/imageio/storage/piwigo.c:974 ../src/imageio/storage/piwigo.c:989 +#: ../src/imageio/storage/piwigo.c:998 msgid "" "the server name\n" "default protocol is https\n" -"specify http:// if non secure server" +"specify insecure protocol http:// explicitly if that protocol is required" msgstr "" "Der Name des Servers.\n" "Das Standard-Protokoll ist HTTPS.\n" -"spezifiziere http:// falls kein HTTPS verfügbar ist" +"das unsichere Protokoll http:// ausdrücklich angeben, wenn dieses " +"erforderlich ist" -#: ../src/imageio/storage/piwigo.c:987 ../src/imageio/storage/piwigo.c:993 +#: ../src/imageio/storage/piwigo.c:1014 ../src/imageio/storage/piwigo.c:1021 msgid "user" msgstr "Benutzer" -#: ../src/imageio/storage/piwigo.c:1000 ../src/imageio/storage/piwigo.c:1005 +#: ../src/imageio/storage/piwigo.c:1029 ../src/imageio/storage/piwigo.c:1034 msgid "password" msgstr "Passwort" # "anmelden" ist zu lang #. login button -#: ../src/imageio/storage/piwigo.c:1010 +#: ../src/imageio/storage/piwigo.c:1039 msgid "login" msgstr "Login" -#: ../src/imageio/storage/piwigo.c:1011 +#: ../src/imageio/storage/piwigo.c:1040 msgid "Piwigo login" msgstr "Piwigo Login" #. permissions list -#: ../src/imageio/storage/piwigo.c:1025 +#: ../src/imageio/storage/piwigo.c:1056 msgid "visible to" msgstr "sichtbar für" -#: ../src/imageio/storage/piwigo.c:1027 +#: ../src/imageio/storage/piwigo.c:1058 msgid "everyone" msgstr "jeden" -#: ../src/imageio/storage/piwigo.c:1028 +#: ../src/imageio/storage/piwigo.c:1059 msgid "contacts" msgstr "Kontakte" -#: ../src/imageio/storage/piwigo.c:1029 +#: ../src/imageio/storage/piwigo.c:1060 msgid "friends" msgstr "Freunde" -#: ../src/imageio/storage/piwigo.c:1030 +#: ../src/imageio/storage/piwigo.c:1061 msgid "family" msgstr "Familie" -#: ../src/imageio/storage/piwigo.c:1031 +#: ../src/imageio/storage/piwigo.c:1062 msgid "you" msgstr "Du" #. Available albums -#: ../src/imageio/storage/piwigo.c:1038 +#: ../src/imageio/storage/piwigo.c:1069 msgid "album" msgstr "Album" -#: ../src/imageio/storage/piwigo.c:1045 +#: ../src/imageio/storage/piwigo.c:1076 msgid "refresh album list" msgstr "Albenliste aktualisieren" #. Album title -#: ../src/imageio/storage/piwigo.c:1063 +#: ../src/imageio/storage/piwigo.c:1096 msgid "new album" msgstr "Neues Album" -#. parent album list #. Available albums -#: ../src/imageio/storage/piwigo.c:1071 +#: ../src/imageio/storage/piwigo.c:1105 msgid "parent album" msgstr "Übergeordnetes Album" -#: ../src/imageio/storage/piwigo.c:1075 +#: ../src/imageio/storage/piwigo.c:1109 msgid "click login button to start" msgstr "zum Starten den Login-Knopf drücken" -#: ../src/imageio/storage/piwigo.c:1080 +#: ../src/imageio/storage/piwigo.c:1114 msgid "don't check" msgstr "nicht prüfen" -#: ../src/imageio/storage/piwigo.c:1082 +#: ../src/imageio/storage/piwigo.c:1116 msgid "update metadata" msgstr "Metadaten aktualisieren" -#: ../src/imageio/storage/piwigo.c:1221 +#: ../src/imageio/storage/piwigo.c:1255 msgid "cannot create a new Piwigo album!" msgstr "Konnte kein neues Piwigo-Album erstellen!" -#: ../src/imageio/storage/piwigo.c:1240 +#: ../src/imageio/storage/piwigo.c:1274 msgid "could not update to Piwigo!" msgstr "Konnte Piwigo nicht aktualisieren!" -#: ../src/imageio/storage/piwigo.c:1255 +#: ../src/imageio/storage/piwigo.c:1290 msgid "could not upload to Piwigo!" msgstr "Konnte nicht zu Piwigo hochladen!" -#: ../src/imageio/storage/piwigo.c:1284 +#: ../src/imageio/storage/piwigo.c:1319 #, c-format msgid "%d/%d skipped (already exists)" msgstr "%d/%d übersprungen (bereits vorhanden)" -#: ../src/imageio/storage/piwigo.c:1290 +#: ../src/imageio/storage/piwigo.c:1325 #, c-format msgid "%d/%d exported to Piwigo webalbum" msgid_plural "%d/%d exported to Piwigo webalbum" @@ -11422,48 +12745,55 @@ msgid "rotate or distort perspective" msgstr "Drehen oder Perspektivkorrektur" -#: ../src/iop/ashift.c:131 ../src/iop/channelmixer.c:139 ../src/iop/channelmixerrgb.c:232 ../src/iop/clipping.c:320 -#: ../src/iop/colorbalance.c:161 ../src/iop/colorbalancergb.c:185 ../src/iop/colorchecker.c:130 -#: ../src/iop/colorcorrection.c:77 ../src/iop/crop.c:144 ../src/iop/lut3d.c:141 +#: ../src/iop/ashift.c:131 ../src/iop/channelmixer.c:139 +#: ../src/iop/channelmixerrgb.c:233 ../src/iop/clipping.c:363 +#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:185 +#: ../src/iop/colorchecker.c:130 ../src/iop/colorcorrection.c:77 +#: ../src/iop/crop.c:134 ../src/iop/lut3d.c:142 ../src/iop/primaries.c:80 msgid "corrective or creative" msgstr "Korrekturen oder Effekte" -#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:148 ../src/iop/bilateral.cc:101 -#: ../src/iop/bilateral.cc:103 ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:233 -#: ../src/iop/channelmixerrgb.c:235 ../src/iop/clipping.c:321 ../src/iop/clipping.c:323 -#: ../src/iop/colorbalancergb.c:186 ../src/iop/colorin.c:136 ../src/iop/crop.c:145 ../src/iop/crop.c:147 -#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:728 ../src/iop/denoiseprofile.c:730 ../src/iop/diffuse.c:146 -#: ../src/iop/diffuse.c:148 ../src/iop/exposure.c:132 ../src/iop/exposure.c:134 ../src/iop/flip.c:111 -#: ../src/iop/flip.c:112 ../src/iop/hazeremoval.c:113 ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:242 -#: ../src/iop/lens.cc:244 ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/retouch.c:210 -#: ../src/iop/retouch.c:212 ../src/iop/sigmoid.c:103 ../src/iop/splittoning.c:104 ../src/iop/splittoning.c:106 -#: ../src/iop/spots.c:70 ../src/iop/spots.c:72 ../src/iop/toneequal.c:325 ../src/iop/velvia.c:106 -#: ../src/iop/velvia.c:108 +#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:174 +#: ../src/iop/bilateral.cc:103 ../src/iop/bilateral.cc:105 +#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:236 ../src/iop/clipping.c:364 +#: ../src/iop/clipping.c:366 ../src/iop/colorbalancergb.c:186 +#: ../src/iop/colorin.c:136 ../src/iop/crop.c:135 ../src/iop/crop.c:137 +#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:780 +#: ../src/iop/denoiseprofile.c:782 ../src/iop/diffuse.c:146 +#: ../src/iop/diffuse.c:148 ../src/iop/exposure.c:132 ../src/iop/exposure.c:134 +#: ../src/iop/flip.c:111 ../src/iop/flip.c:112 ../src/iop/hazeremoval.c:113 +#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:263 ../src/iop/lens.cc:265 +#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/primaries.c:81 +#: ../src/iop/primaries.c:83 ../src/iop/retouch.c:210 ../src/iop/retouch.c:212 +#: ../src/iop/sigmoid.c:209 ../src/iop/splittoning.c:106 +#: ../src/iop/splittoning.c:108 ../src/iop/spots.c:70 ../src/iop/spots.c:72 +#: ../src/iop/toneequal.c:333 ../src/iop/velvia.c:99 ../src/iop/velvia.c:101 msgid "linear, RGB, scene-referred" msgstr "linear, RGB, szenenbezogen" -#: ../src/iop/ashift.c:133 ../src/iop/borders.c:200 ../src/iop/clipping.c:322 ../src/iop/crop.c:146 -#: ../src/iop/flip.c:111 ../src/iop/liquify.c:299 +#: ../src/iop/ashift.c:133 ../src/iop/borders.c:325 ../src/iop/clipping.c:365 +#: ../src/iop/crop.c:136 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 msgid "geometric, RGB" msgstr "Geometriekorrektur, RGB" -#: ../src/iop/ashift.c:2820 +#: ../src/iop/ashift.c:2866 msgid "automatic cropping failed" msgstr "automatisches Zuschneiden fehlgeschlagen" -#: ../src/iop/ashift.c:3234 ../src/iop/ashift.c:3286 ../src/iop/ashift.c:3334 +#: ../src/iop/ashift.c:3276 ../src/iop/ashift.c:3328 ../src/iop/ashift.c:3375 msgid "data pending - please repeat" msgstr "Daten noch nicht bereit – bitte wiederholen" -#: ../src/iop/ashift.c:3243 +#: ../src/iop/ashift.c:3285 msgid "could not detect structural data in image" msgstr "konnte keine Strukturen im Bild finden" -#: ../src/iop/ashift.c:3255 +#: ../src/iop/ashift.c:3297 msgid "could not run outlier removal" msgstr "konnte Ausreißer nicht entfernen" -#: ../src/iop/ashift.c:3434 +#: ../src/iop/ashift.c:3474 #, c-format msgid "" "not enough structure for automatic correction\n" @@ -11472,86 +12802,100 @@ "nicht genügend Strukturen für automatische Korrektur\n" "mindestens %d Zeilen in jeder relevanten Richtung" -#: ../src/iop/ashift.c:3440 +#: ../src/iop/ashift.c:3480 msgid "automatic correction failed, please correct manually" msgstr "automatische Korrektur fehlgeschlagen, bitte manuell korrigieren" -#: ../src/iop/ashift.c:5096 +#: ../src/iop/ashift.c:5077 #, c-format msgid "only %d lines can be saved in parameters" msgstr "nur %d Zeilen können in Parametern gespeichert werden" -#: ../src/iop/ashift.c:5201 +#: ../src/iop/ashift.c:5157 #, c-format -msgid "rotation adjusted by %3.1f° to %3.1f°" -msgstr "Drehung angepasst um %3.1f° auf %3.1f°" +msgid "rotation adjusted by %3.2f° to %3.2f°" +msgstr "Drehung angepasst um %3.2f° auf %3.2f°" -#: ../src/iop/ashift.c:5852 ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 +#: ../src/iop/ashift.c:5797 ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 +#: ../src/iop/ashift.c:5906 #, c-format msgid "lens shift (%s)" msgstr "Objektivverschiebung (%s)" -#: ../src/iop/ashift.c:6125 +#: ../src/iop/ashift.c:6072 msgid "manual perspective" msgstr "manuelle Einstellungen" -#: ../src/iop/ashift.c:6170 +#: ../src/iop/ashift.c:6117 msgctxt "section" msgid "perspective" msgstr "Perspektive" # etwas zu frei übersetzt? -#: ../src/iop/ashift.c:6177 ../src/iop/ashift.c:6286 ../src/iop/ashift.c:6288 ../src/iop/ashift.c:6290 +#: ../src/iop/ashift.c:6124 ../src/iop/ashift.c:6233 ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6237 msgid "structure" msgstr "Fluchtlinien" -#: ../src/iop/ashift.c:6212 +#: ../src/iop/ashift.c:6159 msgid "" "rotate image\n" -"right-click and drag to define a horizontal or vertical line by drawing on the image" +"right-click and drag to define a horizontal or vertical line by drawing on " +"the image" msgstr "" "Bild rotieren\n" -"Rechtscklick und ziehen, um eine horizontale oder vertikale Linie auf dem Bild zu ziehen" +"Rechtscklick und ziehen, um eine horizontale oder vertikale Linie auf dem " +"Bild zu ziehen" -#: ../src/iop/ashift.c:6215 ../src/iop/ashift.c:6217 +#: ../src/iop/ashift.c:6162 ../src/iop/ashift.c:6164 msgid "apply lens shift correction in one direction" msgstr "Objektivverschiebung in eine Richtung korrigieren" -#: ../src/iop/ashift.c:6219 +#: ../src/iop/ashift.c:6166 msgid "shear the image along one diagonal" msgstr "Bild entlang einer Diagonalen scheren" -#: ../src/iop/ashift.c:6220 ../src/iop/clipping.c:2117 +#: ../src/iop/ashift.c:6167 ../src/iop/clipping.c:2170 msgid "automatically crop to avoid black edges" msgstr "Automatisch zuschneiden, um schwarze Ränder zu vermeiden" -#: ../src/iop/ashift.c:6221 -msgid "lens model of the perspective correction: generic or according to the focal length" -msgstr "Objektiv-Modell der perspektivischen Korrektur: generisch oder in Abhängigkeit von der Brennweite" +#: ../src/iop/ashift.c:6168 +msgid "" +"lens model of the perspective correction: generic or according to the focal " +"length" +msgstr "" +"Objektiv-Modell der perspektivischen Korrektur: generisch oder in " +"Abhängigkeit von der Brennweite" -#: ../src/iop/ashift.c:6224 +#: ../src/iop/ashift.c:6171 msgid "focal length of the lens, default value set from EXIF data if available" -msgstr "Brennweite des Objektivs, standardmäßig auf den Werten der EXIF-Daten so weit verfügbar" +msgstr "" +"Brennweite des Objektivs, standardmäßig auf den Werten der EXIF-Daten so " +"weit verfügbar" -#: ../src/iop/ashift.c:6227 +#: ../src/iop/ashift.c:6174 msgid "" -"crop factor of the camera sensor, default value set from EXIF data if available, manual setting is often required" +"crop factor of the camera sensor, default value set from EXIF data if " +"available, manual setting is often required" msgstr "" -"Crop-Faktor des Sensors, standardmäßig auf den Werten der EXIF-Daten so weit vorhanden. Häufig muss dieser Wert " -"angepasst werden" +"Crop-Faktor des Sensors, standardmäßig auf den Werten der EXIF-Daten so weit " +"vorhanden. Häufig muss dieser Wert angepasst werden" -#: ../src/iop/ashift.c:6231 +#: ../src/iop/ashift.c:6178 msgid "" -"the level of lens dependent correction, set to maximum for full lens dependency, set to zero for the generic case" +"the level of lens dependent correction, set to maximum for full lens " +"dependency, set to zero for the generic case" msgstr "" -"der Anteil der Objektivabhängigkeit der Korrektur, auf maximum setzen für volle Abhängigkeit, oder auf Null für " -"den generischen Fall" +"der Anteil der Objektivabhängigkeit der Korrektur, auf maximum setzen für " +"volle Abhängigkeit, oder auf Null für den generischen Fall" -#: ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6182 msgid "adjust aspect ratio of image by horizontal and vertical scaling" -msgstr "Seitenverhältnis des Bildes durch horizontales und vertikales Skalieren anpassen" +msgstr "" +"Seitenverhältnis des Bildes durch horizontales und vertikales Skalieren " +"anpassen" -#: ../src/iop/ashift.c:6237 +#: ../src/iop/ashift.c:6184 msgid "" "automatically correct for vertical perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -11561,7 +12905,7 @@ "Strg+Klick um nur die Drehung anzupassen\n" "Shift+Klick um nur die Objektivverschiebung anzupassen" -#: ../src/iop/ashift.c:6241 +#: ../src/iop/ashift.c:6188 msgid "" "automatically correct for horizontal perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -11571,21 +12915,22 @@ "Strg+Klick, um nur die Drehung anzupassen\n" "Shift+Klick, um nur die Objektivverschiebung anzupassen" -#: ../src/iop/ashift.c:6245 +#: ../src/iop/ashift.c:6192 msgid "" -"automatically correct for vertical and horizontal perspective distortions, fitting rotation, lens shift in both " -"directions, and shear\n" +"automatically correct for vertical and horizontal perspective distortions, " +"fitting rotation, lens shift in both directions, and shear\n" "ctrl+click to only fit rotation\n" "shift+click to only fit lens shift\n" "ctrl+shift+click to only fit rotation and lens shift" msgstr "" -"automatisch die vertikale und horizontale perspektivische Verzerrung korrigieren; passt Drehung, Verschiebung in " -"beide Richtungen und Scherung an\n" +"automatisch die vertikale und horizontale perspektivische Verzerrung " +"korrigieren; passt Drehung, Verschiebung in beide Richtungen und Scherung " +"an\n" "Strg+Klick, um nur die Drehung anzupassen\n" "Shift+Klick, um nur die Objektivverschiebung anzupassen\n" "Strg+Shift+Klick, um nur Drehung und Objektivverschiebung anzupassen" -#: ../src/iop/ashift.c:6252 +#: ../src/iop/ashift.c:6199 msgid "" "automatically analyse line structure in image\n" "ctrl+click for an additional edge enhancement\n" @@ -11597,415 +12942,445 @@ "Shift+Klick für eine zusätzliche Detail-Verbesserung\n" "Strg+Shift+Klick für eine Kombination beider Methoden" -#: ../src/iop/ashift.c:6257 +#: ../src/iop/ashift.c:6204 msgid "manually define perspective rectangle" msgstr "Rechteck für Perspektive manuell definieren" -#: ../src/iop/ashift.c:6258 +#: ../src/iop/ashift.c:6205 msgid "manually draw structure lines" msgstr "Strukturlinien manuell zeichnen" -#: ../src/iop/ashift.c:6287 +#: ../src/iop/ashift.c:6234 msgid "rectangle" msgstr "Rechteck" -#: ../src/iop/ashift.c:6289 +#: ../src/iop/ashift.c:6236 msgid "lines" msgstr "Linien" -#: ../src/iop/ashift.c:6323 ../src/iop/clipping.c:3343 +#: ../src/iop/ashift.c:6270 ../src/iop/clipping.c:3383 #, c-format msgid "[%s] define/rotate horizon" msgstr "[%s] Horizont definieren/drehen" -#: ../src/iop/ashift.c:6326 +#: ../src/iop/ashift.c:6273 #, c-format msgid "[%s on segment] select segment" msgstr "[%s on segment] Segment auswählen" -#: ../src/iop/ashift.c:6330 +#: ../src/iop/ashift.c:6277 #, c-format msgid "[%s on segment] unselect segment" msgstr "[%s on segment] Segment abwählen" -#: ../src/iop/ashift.c:6334 +#: ../src/iop/ashift.c:6281 #, c-format msgid "[%s] select all segments from zone" msgstr "[%s] alle Segmente aus Region auswählen" -#: ../src/iop/ashift.c:6338 +#: ../src/iop/ashift.c:6285 #, c-format msgid "[%s] unselect all segments from zone" msgstr "[%s] alle Segmente aus Region abwählen" -#: ../src/iop/atrous.c:123 ../src/iop/atrous.c:1638 +#: ../src/iop/atrous.c:122 ../src/iop/atrous.c:1770 msgid "contrast equalizer" msgstr "Kontrast-Equalizer" -#: ../src/iop/atrous.c:128 +#: ../src/iop/atrous.c:127 msgid "sharpness|acutance|local contrast" msgstr "Schärfe|Konturschärfe|Lokaler Kontrast" -#: ../src/iop/atrous.c:133 +#: ../src/iop/atrous.c:132 msgid "add or remove local contrast, sharpness, acutance" msgstr "lokalen Kontrast, Schärfe, Konturschärfe hinzufügen oder entfernen" -#: ../src/iop/atrous.c:134 ../src/iop/bilateral.cc:100 ../src/iop/diffuse.c:145 ../src/iop/exposure.c:131 -#: ../src/iop/filmicrgb.c:352 ../src/iop/graduatednd.c:146 ../src/iop/negadoctor.c:146 ../src/iop/rgbcurve.c:143 -#: ../src/iop/rgblevels.c:123 ../src/iop/shadhi.c:197 ../src/iop/sigmoid.c:102 ../src/iop/tonecurve.c:211 -#: ../src/iop/toneequal.c:324 +#: ../src/iop/atrous.c:133 ../src/iop/bilateral.cc:102 ../src/iop/diffuse.c:145 +#: ../src/iop/exposure.c:131 ../src/iop/filmicrgb.c:352 +#: ../src/iop/graduatednd.c:146 ../src/iop/negadoctor.c:146 +#: ../src/iop/rgbcurve.c:145 ../src/iop/rgblevels.c:125 ../src/iop/shadhi.c:144 +#: ../src/iop/sigmoid.c:209 ../src/iop/tonecurve.c:184 +#: ../src/iop/toneequal.c:332 msgid "corrective and creative" msgstr "Korrekturen und Effekte" -#: ../src/iop/atrous.c:135 ../src/iop/atrous.c:137 ../src/iop/colorbalance.c:162 +#: ../src/iop/atrous.c:134 ../src/iop/atrous.c:136 +#: ../src/iop/colorbalance.c:164 msgid "linear, Lab, scene-referred" msgstr "linear, Lab, szenenbezogen" -#: ../src/iop/atrous.c:136 ../src/iop/censorize.c:85 ../src/iop/hazeremoval.c:114 +#: ../src/iop/atrous.c:135 ../src/iop/censorize.c:85 +#: ../src/iop/hazeremoval.c:114 msgid "frequential, RGB" msgstr "frequenzbezogen, RGB" -#: ../src/iop/atrous.c:727 +#: ../src/iop/atrous.c:799 msgctxt "eq_preset" msgid "coarse" msgstr "grobe Strukturen" -#: ../src/iop/atrous.c:742 +#: ../src/iop/atrous.c:815 msgid "denoise & sharpen" msgstr "entrauschen & schärfen" -#: ../src/iop/atrous.c:757 +#: ../src/iop/atrous.c:831 msgctxt "atrous" msgid "sharpen" msgstr "schärfen" -#: ../src/iop/atrous.c:772 +#: ../src/iop/atrous.c:847 msgid "denoise chroma" msgstr "entrauschen (Chrominanz)" -#: ../src/iop/atrous.c:787 +#: ../src/iop/atrous.c:863 msgid "denoise" msgstr "entrauschen" -#: ../src/iop/atrous.c:803 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:421 +#: ../src/iop/atrous.c:880 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:448 msgid "bloom" msgstr "Überstrahlung" -#: ../src/iop/atrous.c:818 ../src/iop/bilat.c:169 +#: ../src/iop/atrous.c:896 ../src/iop/bilat.c:186 msgid "clarity" msgstr "Klarheit" -#: ../src/iop/atrous.c:838 +#: ../src/iop/atrous.c:917 msgid "deblur: large blur, strength 3" msgstr "Schärfen: starke Unschärfe, Stärke 3" -#: ../src/iop/atrous.c:855 +#: ../src/iop/atrous.c:935 msgid "deblur: medium blur, strength 3" msgstr "Schärfen: mittlere Unschärfe, Stärke 3" -#: ../src/iop/atrous.c:871 +#: ../src/iop/atrous.c:952 msgid "deblur: fine blur, strength 3" msgstr "Schärfen: feine Unschärfe, Stärke 3" -#: ../src/iop/atrous.c:889 +#: ../src/iop/atrous.c:971 msgid "deblur: large blur, strength 2" msgstr "Schärfen: starke Unschärfe, Stärke 2" -#: ../src/iop/atrous.c:906 +#: ../src/iop/atrous.c:989 msgid "deblur: medium blur, strength 2" msgstr "Schärfen: mittlere Unschärfe, Stärke 2" -#: ../src/iop/atrous.c:922 +#: ../src/iop/atrous.c:1006 msgid "deblur: fine blur, strength 2" msgstr "Schärfen: feine Unschärfe, Stärke 2" -#: ../src/iop/atrous.c:940 +#: ../src/iop/atrous.c:1025 msgid "deblur: large blur, strength 1" msgstr "Schärfen: starke Unschärfe, Stärke 1" -#: ../src/iop/atrous.c:957 +#: ../src/iop/atrous.c:1043 msgid "deblur: medium blur, strength 1" msgstr "Schärfen: mittlere Unschärfe, Stärke 1" -#: ../src/iop/atrous.c:973 +#: ../src/iop/atrous.c:1060 msgid "deblur: fine blur, strength 1" msgstr "Schärfen: feine Unschärfe, Stärke 1" -#: ../src/iop/atrous.c:1289 ../src/iop/atrous.c:1525 ../src/iop/denoiseprofile.c:3510 ../src/iop/rawdenoise.c:738 +#: ../src/iop/atrous.c:1390 ../src/iop/atrous.c:1639 +#: ../src/iop/denoiseprofile.c:3514 ../src/iop/rawdenoise.c:754 msgid "coarse" msgstr "grob" -#: ../src/iop/atrous.c:1296 ../src/iop/atrous.c:1526 ../src/iop/denoiseprofile.c:3518 ../src/iop/rawdenoise.c:746 +#: ../src/iop/atrous.c:1397 ../src/iop/atrous.c:1640 +#: ../src/iop/denoiseprofile.c:3522 ../src/iop/rawdenoise.c:762 msgid "fine" msgstr "fein" -#: ../src/iop/atrous.c:1308 +#: ../src/iop/atrous.c:1409 msgid "contrasty" msgstr "kontrastreich" -#: ../src/iop/atrous.c:1314 ../src/iop/denoiseprofile.c:3532 ../src/iop/rawdenoise.c:760 +#: ../src/iop/atrous.c:1415 ../src/iop/denoiseprofile.c:3536 +#: ../src/iop/rawdenoise.c:776 msgid "noisy" msgstr "verrauscht" #. case atrous_s: -#: ../src/iop/atrous.c:1317 +#: ../src/iop/atrous.c:1418 msgid "bold" msgstr "kräftig" -#: ../src/iop/atrous.c:1318 +#: ../src/iop/atrous.c:1419 msgid "dull" msgstr "matt" -#: ../src/iop/atrous.c:1513 ../src/iop/atrous.c:1564 +#: ../src/iop/atrous.c:1627 ../src/iop/atrous.c:1685 msgid "boost" msgstr "Verstärken" -#: ../src/iop/atrous.c:1514 +#: ../src/iop/atrous.c:1628 msgid "reduce" msgstr "reduzieren" -#: ../src/iop/atrous.c:1515 +#: ../src/iop/atrous.c:1629 msgid "raise" msgstr "anheben" -#: ../src/iop/atrous.c:1516 +#: ../src/iop/atrous.c:1630 msgid "lower" msgstr "verringern" -#: ../src/iop/atrous.c:1523 +#: ../src/iop/atrous.c:1637 msgid "coarsest" msgstr "sehr grob" -#: ../src/iop/atrous.c:1524 +#: ../src/iop/atrous.c:1638 msgid "coarser" msgstr "gröber" -#: ../src/iop/atrous.c:1527 +#: ../src/iop/atrous.c:1641 msgid "finer" msgstr "feiner" -#: ../src/iop/atrous.c:1528 +#: ../src/iop/atrous.c:1642 msgid "finest" msgstr "sehr fein" -#: ../src/iop/atrous.c:1586 ../src/libs/export.c:1143 ../src/libs/export.c:1158 +#: ../src/iop/atrous.c:1710 ../src/libs/export.c:1239 ../src/libs/export.c:1255 msgid "x" msgstr "×" -#: ../src/iop/atrous.c:1666 ../src/iop/nlmeans.c:465 +#: ../src/iop/atrous.c:1799 ../src/iop/nlmeans.c:468 msgid "luma" msgstr "Luminanz" # uh, häßlich -#: ../src/iop/atrous.c:1666 +#: ../src/iop/atrous.c:1800 msgid "change lightness at each feature size" msgstr "Helligkeit je nach Strukturgröße ändern" -#: ../src/iop/atrous.c:1667 +#: ../src/iop/atrous.c:1802 msgid "change color saturation at each feature size" msgstr "Farbsättigung je nach Strukturgröße ändern" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1804 msgid "edges" msgstr "Kanten" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1805 msgid "" "change edge halos at each feature size\n" "only changes results of luma and chroma tabs" msgstr "" "Kanten-Halos je nach Strukturgröße ändern.\n" -"Dies beeinflusst, wie sich Abweichungen von der Neutraleinstellung in den Luminanz- und Chrominanz-Tabs auf das " -"Bild auswirken." +"Dies beeinflusst, wie sich Abweichungen von der Neutraleinstellung in den " +"Luminanz- und Chrominanz-Tabs auf das Bild auswirken." -#: ../src/iop/atrous.c:1679 ../src/iop/colorbalancergb.c:2058 ../src/iop/colorzones.c:2473 -#: ../src/iop/denoiseprofile.c:3743 ../src/iop/filmicrgb.c:4407 ../src/iop/lowlight.c:823 ../src/iop/rawdenoise.c:919 -#: ../src/iop/toneequal.c:3371 +#: ../src/iop/atrous.c:1818 ../src/iop/colorbalancergb.c:2129 +#: ../src/iop/colorzones.c:2732 ../src/iop/denoiseprofile.c:3747 +#: ../src/iop/filmicrgb.c:4471 ../src/iop/lowlight.c:821 +#: ../src/iop/rawdenoise.c:935 ../src/iop/toneequal.c:3424 msgid "graph" msgstr "Grafik" -#: ../src/iop/atrous.c:1690 ../src/iop/colorzones.c:2470 +#: ../src/iop/atrous.c:1836 ../src/iop/colorzones.c:2729 msgid "make effect stronger or weaker" msgstr "mache den Effekt stärker oder schwächer" -#: ../src/iop/basecurve.c:213 +#: ../src/iop/basecurve.c:260 msgid "neutral" msgstr "neutral" -#: ../src/iop/basecurve.c:214 +#: ../src/iop/basecurve.c:261 msgid "canon eos like" msgstr "Canon EOS-artig" -#: ../src/iop/basecurve.c:215 +#: ../src/iop/basecurve.c:262 msgid "canon eos like alternate" msgstr "Canon EOS-artig, Alternative" -#: ../src/iop/basecurve.c:216 +#: ../src/iop/basecurve.c:263 msgid "nikon like" msgstr "Nikon-artig" -#: ../src/iop/basecurve.c:217 +#: ../src/iop/basecurve.c:264 msgid "nikon like alternate" msgstr "Nikon-artige Alternative" -#: ../src/iop/basecurve.c:218 +#: ../src/iop/basecurve.c:265 msgid "sony alpha like" msgstr "Sony Alpha-artig" -#: ../src/iop/basecurve.c:219 +#: ../src/iop/basecurve.c:266 msgid "pentax like" msgstr "Pentax-artig" -#: ../src/iop/basecurve.c:220 +#: ../src/iop/basecurve.c:267 msgid "ricoh like" msgstr "Ricoh-artig" -#: ../src/iop/basecurve.c:221 +#: ../src/iop/basecurve.c:268 msgid "olympus like" msgstr "Olympus-artig" -#: ../src/iop/basecurve.c:222 +#: ../src/iop/basecurve.c:269 msgid "olympus like alternate" msgstr "Olympus-artige Alternative" -#: ../src/iop/basecurve.c:223 +#: ../src/iop/basecurve.c:270 msgid "panasonic like" msgstr "Panasonic-artig" -#: ../src/iop/basecurve.c:224 +#: ../src/iop/basecurve.c:271 msgid "leica like" msgstr "Leica-artig" -#: ../src/iop/basecurve.c:225 +#: ../src/iop/basecurve.c:272 msgid "kodak easyshare like" msgstr "Kodak EasyShare-artig" -#: ../src/iop/basecurve.c:226 +#: ../src/iop/basecurve.c:273 msgid "konica minolta like" msgstr "Konica Minolta-artig" -#: ../src/iop/basecurve.c:227 +#: ../src/iop/basecurve.c:274 msgid "samsung like" msgstr "Samsung-artig" -#: ../src/iop/basecurve.c:228 +#: ../src/iop/basecurve.c:275 msgid "fujifilm like" msgstr "Fujifilm-artig" -#: ../src/iop/basecurve.c:229 +#: ../src/iop/basecurve.c:276 msgid "nokia like" msgstr "Nokia-artig" #. clang-format off #. smoother cubic spline curve -#: ../src/iop/basecurve.c:284 ../src/iop/colorzones.c:2495 ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1173 +#: ../src/iop/basecurve.c:331 ../src/iop/colorzones.c:2763 +#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1195 msgid "cubic spline" msgstr "kubischer Spline" -#: ../src/iop/basecurve.c:343 +#: ../src/iop/basecurve.c:390 msgid "base curve" msgstr "Basiskurve" -#: ../src/iop/basecurve.c:350 +#: ../src/iop/basecurve.c:397 msgid "" "apply a view transform based on personal or camera manufacturer look,\n" "for corrective purposes, to prepare images for display" msgstr "" -"Simuliert kamerainterne JPEG Verarbeitung anhand einer Hersteller- oder Kameraspezifisch vordefinierten " -"Tonwertkurve." +"Simuliert kamerainterne JPEG Verarbeitung anhand einer Hersteller- oder " +"Kameraspezifisch vordefinierten Tonwertkurve." -#: ../src/iop/basecurve.c:352 ../src/iop/cacorrect.c:78 ../src/iop/cacorrectrgb.c:170 -#: ../src/iop/colorreconstruction.c:135 ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:727 -#: ../src/iop/flip.c:110 ../src/iop/hazeremoval.c:112 ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:73 -#: ../src/iop/invert.c:119 ../src/iop/lens.cc:241 ../src/iop/nlmeans.c:95 ../src/iop/profile_gamma.c:102 -#: ../src/iop/rawdenoise.c:130 ../src/iop/retouch.c:209 ../src/iop/sharpen.c:94 ../src/iop/spots.c:69 -#: ../src/iop/temperature.c:212 +#: ../src/iop/basecurve.c:399 ../src/iop/cacorrect.c:84 +#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:120 +#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:779 +#: ../src/iop/flip.c:110 ../src/iop/hazeremoval.c:112 +#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:75 +#: ../src/iop/invert.c:136 ../src/iop/lens.cc:262 ../src/iop/nlmeans.c:89 +#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:144 +#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:96 ../src/iop/spots.c:69 +#: ../src/iop/temperature.c:220 msgid "corrective" msgstr "Korrekturen" -#: ../src/iop/basecurve.c:353 ../src/iop/channelmixer.c:140 ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:142 -#: ../src/iop/negadoctor.c:147 ../src/iop/profile_gamma.c:103 ../src/iop/rgbcurve.c:144 ../src/iop/rgbcurve.c:146 -#: ../src/iop/rgblevels.c:124 ../src/iop/sigmoid.c:105 ../src/iop/soften.c:102 ../src/iop/soften.c:104 +#: ../src/iop/basecurve.c:400 ../src/iop/channelmixer.c:140 +#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:143 +#: ../src/iop/negadoctor.c:147 ../src/iop/profile_gamma.c:103 +#: ../src/iop/rgbcurve.c:146 ../src/iop/rgbcurve.c:148 +#: ../src/iop/rgblevels.c:126 ../src/iop/sigmoid.c:210 ../src/iop/soften.c:104 +#: ../src/iop/soften.c:106 msgid "linear, RGB, display-referred" msgstr "linear, RGB, anzeigebezogen" -#: ../src/iop/basecurve.c:354 ../src/iop/basicadj.c:149 ../src/iop/colorbalance.c:163 -#: ../src/iop/colorbalancergb.c:187 ../src/iop/dither.c:121 ../src/iop/filmicrgb.c:354 ../src/iop/graduatednd.c:148 -#: ../src/iop/negadoctor.c:148 ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:145 ../src/iop/rgblevels.c:125 -#: ../src/iop/sigmoid.c:104 ../src/iop/vignette.c:161 ../src/iop/watermark.c:379 +#: ../src/iop/basecurve.c:401 ../src/iop/basicadj.c:175 +#: ../src/iop/colorbalance.c:165 ../src/iop/colorbalancergb.c:187 +#: ../src/iop/dither.c:121 ../src/iop/filmicrgb.c:354 +#: ../src/iop/graduatednd.c:148 ../src/iop/negadoctor.c:148 +#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:147 +#: ../src/iop/rgblevels.c:127 ../src/iop/sigmoid.c:210 +#: ../src/iop/vignette.c:122 ../src/iop/watermark.c:424 msgid "non-linear, RGB" msgstr "nichtlinear, RGB" -#: ../src/iop/basecurve.c:355 ../src/iop/dither.c:120 ../src/iop/dither.c:122 ../src/iop/filmicrgb.c:355 -#: ../src/iop/graduatednd.c:149 ../src/iop/negadoctor.c:149 ../src/iop/profile_gamma.c:105 ../src/iop/rgblevels.c:126 -#: ../src/iop/vignette.c:160 ../src/iop/vignette.c:162 ../src/iop/watermark.c:378 ../src/iop/watermark.c:380 +#: ../src/iop/basecurve.c:402 ../src/iop/dither.c:120 ../src/iop/dither.c:122 +#: ../src/iop/filmicrgb.c:355 ../src/iop/graduatednd.c:149 +#: ../src/iop/negadoctor.c:149 ../src/iop/profile_gamma.c:105 +#: ../src/iop/rgblevels.c:128 ../src/iop/vignette.c:121 +#: ../src/iop/vignette.c:123 ../src/iop/watermark.c:423 +#: ../src/iop/watermark.c:425 msgid "non-linear, RGB, display-referred" msgstr "nichtlinear, RGB, anzeigebezogen" -#: ../src/iop/basecurve.c:2184 +#: ../src/iop/basecurve.c:2205 msgid "abscissa: input, ordinate: output. works on RGB channels" msgstr "x-Wert: Eingabe, y-Wert: Ausgabe. Arbeitet auf den RGB-Kanälen." -#: ../src/iop/basecurve.c:2190 ../src/iop/basicadj.c:612 ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1072 -#: ../src/iop/tonecurve.c:1184 +#: ../src/iop/basecurve.c:2211 ../src/iop/basicadj.c:642 +#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1133 +#: ../src/iop/tonecurve.c:1206 msgid "method to preserve colors when applying contrast" msgstr "Verfahren zur Farberhaltung bei Kontraständerung" -#: ../src/iop/basecurve.c:2194 +#: ../src/iop/basecurve.c:2215 msgid "two exposures" msgstr "zwei Belichtungen" -#: ../src/iop/basecurve.c:2195 +#: ../src/iop/basecurve.c:2216 msgid "three exposures" msgstr "drei Belichtungen" -#: ../src/iop/basecurve.c:2196 +#: ../src/iop/basecurve.c:2217 msgid "" -"fuse this image stopped up/down a couple of times with itself, to compress high dynamic range. expose for the " -"highlights before use." +"fuse this image stopped up/down a couple of times with itself, to compress " +"high dynamic range. expose for the highlights before use." msgstr "" -"Dieses Bild mehrfach mit einer über-/unterbelichteten Kopie verschmelzen um hohen Dynamikumfang " -"zusammenzufassen. \n" +"Dieses Bild mehrfach mit einer über-/unterbelichteten Kopie verschmelzen um " +"hohen Dynamikumfang zusammenzufassen. \n" "Vor Gebrauch die Belichtung auf die Spitzlichter anpassen." -#: ../src/iop/basecurve.c:2201 +#: ../src/iop/basecurve.c:2222 msgid "how many stops to shift the individual exposures apart" -msgstr "wie viele Blendenstufen die einzelnen Belichtungen auseinander liegen sollen" +msgstr "" +"wie viele Blendenstufen die einzelnen Belichtungen auseinander liegen sollen" -#: ../src/iop/basecurve.c:2210 -msgid "whether to shift exposure up or down (-1: reduce highlight, +1: reduce shadows)" -msgstr "Soll die Belichtung angehoben oder abgesenkt werden (-1: Spitzlichter abschwächen, +1: Schatten abschwächen)" +#: ../src/iop/basecurve.c:2231 +msgid "" +"whether to shift exposure up or down (-1: reduce highlight, +1: reduce " +"shadows)" +msgstr "" +"Soll die Belichtung angehoben oder abgesenkt werden (-1: Spitzlichter " +"abschwächen, +1: Schatten abschwächen)" -#: ../src/iop/basecurve.c:2215 ../src/iop/tonecurve.c:1187 +#: ../src/iop/basecurve.c:2236 ../src/iop/tonecurve.c:1209 msgid "scale for graph" msgstr "Skalierungsfaktor" -#: ../src/iop/basicadj.c:136 +#: ../src/iop/basicadj.c:162 msgid "this module is deprecated. please use the quick access panel instead." msgstr "veraltetes Modul; abgelöst durch Schnellzugriffsgruppe" -#: ../src/iop/basicadj.c:141 +#: ../src/iop/basicadj.c:167 msgid "basic adjustments" msgstr "Grundlegende Anpassungen" -#: ../src/iop/basicadj.c:146 +#: ../src/iop/basicadj.c:172 msgid "apply usual image adjustments" msgstr "Zusammenfassung grundlegender Anpassungen" -#: ../src/iop/basicadj.c:147 ../src/iop/bilat.c:102 ../src/iop/bloom.c:81 ../src/iop/blurs.c:93 -#: ../src/iop/borders.c:198 ../src/iop/censorize.c:83 ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:97 -#: ../src/iop/colorize.c:105 ../src/iop/colormapping.c:153 ../src/iop/colorzones.c:145 ../src/iop/grain.c:434 -#: ../src/iop/highpass.c:78 ../src/iop/levels.c:138 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 -#: ../src/iop/lowpass.c:134 ../src/iop/monochrome.c:98 ../src/iop/soften.c:101 ../src/iop/splittoning.c:103 -#: ../src/iop/velvia.c:105 ../src/iop/vibrance.c:95 ../src/iop/vignette.c:159 ../src/iop/watermark.c:377 +#: ../src/iop/basicadj.c:173 ../src/iop/bilat.c:83 ../src/iop/bloom.c:81 +#: ../src/iop/blurs.c:93 ../src/iop/borders.c:323 ../src/iop/censorize.c:83 +#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:89 +#: ../src/iop/colorize.c:98 ../src/iop/colormapping.c:153 +#: ../src/iop/colorzones.c:146 ../src/iop/grain.c:450 ../src/iop/highpass.c:78 +#: ../src/iop/levels.c:140 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 +#: ../src/iop/lowpass.c:106 ../src/iop/monochrome.c:100 ../src/iop/soften.c:103 +#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:98 ../src/iop/vibrance.c:97 +#: ../src/iop/vignette.c:120 ../src/iop/watermark.c:422 msgid "creative" msgstr "Effekte" -#: ../src/iop/basicadj.c:150 ../src/iop/colorbalancergb.c:188 +#: ../src/iop/basicadj.c:176 ../src/iop/colorbalancergb.c:188 msgid "non-linear, RGB, scene-referred" msgstr "nichtlinear, RGB, szenenbezogen" -#: ../src/iop/basicadj.c:593 +#: ../src/iop/basicadj.c:623 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -12014,132 +13389,145 @@ msgstr "" "Anpassen des Schwarzwerts, um Clipping negativer RGB-Werten zu vermeiden.\n" "Niemals verwenden, um die Dichte in den Schwärzen zu erhöhen!\n" -"Bei schlechter Einstellung werden fast schwarze Farben aus dem Gamut entfernt,\n" +"Bei schlechter Einstellung werden fast schwarze Farben aus dem Gamut " +"entfernt,\n" "weil die RGB-Werte negativ werden." -#: ../src/iop/basicadj.c:601 ../src/iop/exposure.c:1118 +#: ../src/iop/basicadj.c:631 ../src/iop/exposure.c:1136 msgid "adjust the exposure correction" msgstr "Belichtungskorrektur anpassen" -#: ../src/iop/basicadj.c:605 +#: ../src/iop/basicadj.c:635 msgid "highlight compression adjustment" msgstr "Spitzlichtkompression anpassen" -#: ../src/iop/basicadj.c:609 ../src/iop/colisa.c:308 +#: ../src/iop/basicadj.c:639 ../src/iop/colisa.c:302 msgid "contrast adjustment" msgstr "Kontrastanpassung" -#: ../src/iop/basicadj.c:617 +#: ../src/iop/basicadj.c:647 msgid "middle gray adjustment" msgstr "mittlere Graueinstellung" -#: ../src/iop/basicadj.c:622 ../src/iop/colisa.c:309 +#: ../src/iop/basicadj.c:652 ../src/iop/colisa.c:303 msgid "brightness adjustment" msgstr "Helligkeitsanpassung" -#: ../src/iop/basicadj.c:625 +#: ../src/iop/basicadj.c:655 msgid "saturation adjustment" msgstr "Farbsättigungsanpassung" -#: ../src/iop/basicadj.c:628 +#: ../src/iop/basicadj.c:658 msgid "vibrance adjustment" msgstr "Lebendigkeitsanpassung" -#: ../src/iop/basicadj.c:632 +#: ../src/iop/basicadj.c:662 msgid "apply auto exposure based on the entire image" msgstr "Auto-Belichtung basierend auf dem gesamten Bild anwenden" -#: ../src/iop/basicadj.c:639 +#: ../src/iop/basicadj.c:669 msgid "" "apply auto exposure based on a region defined by the user\n" "click and drag to draw the area\n" "right click to cancel" msgstr "" -"Auto-Belichtung basierend auf einem vom Benutzer definierten Bereich anwenden\n" +"Auto-Belichtung basierend auf einem vom Benutzer definierten Bereich " +"anwenden\n" "Klicken und ziehen um den Bereich zu zeichnen.\n" "Rechtsklick zum Abbrechen" -#: ../src/iop/basicadj.c:647 +#: ../src/iop/basicadj.c:677 msgid "clip" msgstr "schneiden" -#: ../src/iop/basicadj.c:649 +#: ../src/iop/basicadj.c:679 msgid "adjusts clipping value for auto exposure calculation" -msgstr "Anpassen des Zuschneidewertes für die automatische Belichtungsberechnung" +msgstr "" +"Anpassen des Zuschneidewertes für die automatische Belichtungsberechnung" #. local contrast -#: ../src/iop/bilat.c:96 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:551 +#: ../src/iop/bilat.c:77 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:578 msgid "local contrast" msgstr "Lokaler Kontrast" -#: ../src/iop/bilat.c:101 +#: ../src/iop/bilat.c:82 msgid "manipulate local and global contrast separately" msgstr "behandelt lokalen und globalen Kontrast separat" -#: ../src/iop/bilat.c:103 ../src/iop/bilat.c:105 ../src/iop/bloom.c:82 ../src/iop/bloom.c:84 ../src/iop/colisa.c:91 -#: ../src/iop/colisa.c:93 ../src/iop/colorcontrast.c:98 ../src/iop/colorcontrast.c:100 -#: ../src/iop/colorcorrection.c:78 ../src/iop/colorcorrection.c:80 ../src/iop/colorize.c:108 -#: ../src/iop/colormapping.c:156 ../src/iop/colorreconstruction.c:138 ../src/iop/colorzones.c:148 -#: ../src/iop/defringe.c:85 ../src/iop/grain.c:435 ../src/iop/grain.c:437 ../src/iop/levels.c:141 -#: ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 ../src/iop/monochrome.c:101 ../src/iop/nlmeans.c:96 -#: ../src/iop/nlmeans.c:98 ../src/iop/shadhi.c:200 ../src/iop/tonecurve.c:214 ../src/iop/vibrance.c:98 +#: ../src/iop/bilat.c:84 ../src/iop/bilat.c:86 ../src/iop/bloom.c:82 +#: ../src/iop/bloom.c:84 ../src/iop/colisa.c:91 ../src/iop/colisa.c:93 +#: ../src/iop/colorcontrast.c:90 ../src/iop/colorcontrast.c:92 +#: ../src/iop/colorcorrection.c:78 ../src/iop/colorcorrection.c:80 +#: ../src/iop/colorize.c:101 ../src/iop/colormapping.c:156 +#: ../src/iop/colorreconstruction.c:123 ../src/iop/colorzones.c:149 +#: ../src/iop/defringe.c:85 ../src/iop/grain.c:451 ../src/iop/grain.c:453 +#: ../src/iop/levels.c:143 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 +#: ../src/iop/monochrome.c:103 ../src/iop/nlmeans.c:90 ../src/iop/nlmeans.c:92 +#: ../src/iop/shadhi.c:147 ../src/iop/tonecurve.c:187 ../src/iop/vibrance.c:100 msgid "non-linear, Lab, display-referred" msgstr "nichtlinear, Lab, anzeigebezogen" -#: ../src/iop/bilat.c:104 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 ../src/iop/colorcontrast.c:99 -#: ../src/iop/colorcorrection.c:79 ../src/iop/colorize.c:107 ../src/iop/colormapping.c:155 -#: ../src/iop/colorreconstruction.c:137 ../src/iop/colorzones.c:147 ../src/iop/defringe.c:84 ../src/iop/grain.c:436 -#: ../src/iop/levels.c:140 ../src/iop/monochrome.c:100 ../src/iop/nlmeans.c:97 ../src/iop/shadhi.c:199 -#: ../src/iop/tonecurve.c:213 ../src/iop/vibrance.c:97 +#: ../src/iop/bilat.c:85 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 +#: ../src/iop/colorcontrast.c:91 ../src/iop/colorcorrection.c:79 +#: ../src/iop/colorize.c:100 ../src/iop/colormapping.c:155 +#: ../src/iop/colorreconstruction.c:122 ../src/iop/colorzones.c:148 +#: ../src/iop/defringe.c:84 ../src/iop/grain.c:452 ../src/iop/levels.c:142 +#: ../src/iop/monochrome.c:102 ../src/iop/nlmeans.c:91 ../src/iop/shadhi.c:146 +#: ../src/iop/tonecurve.c:186 ../src/iop/vibrance.c:99 msgid "non-linear, Lab" msgstr "nichtlinear, Lab" -#: ../src/iop/bilat.c:178 +#: ../src/iop/bilat.c:195 msgid "HDR local tone-mapping" msgstr "HDR lokales Tonemapping" -#: ../src/iop/bilat.c:431 +#: ../src/iop/bilat.c:441 msgid "" -"the filter used for local contrast enhancement. bilateral is faster but can lead to artifacts around edges for " -"extreme settings." +"the filter used for local contrast enhancement. bilateral is faster but can " +"lead to artifacts around edges for extreme settings." msgstr "" "der Filter, welcher für den lokalen Kontrast genutzt wird. \n" -"Bilateral ist schneller, kann aber bei extremen Werten zu Artefakten an Kanten führen." +"Bilateral ist schneller, kann aber bei extremen Werten zu Artefakten an " +"Kanten führen." -#: ../src/iop/bilat.c:435 ../src/iop/globaltonemap.c:635 +#: ../src/iop/bilat.c:445 ../src/iop/globaltonemap.c:668 msgid "detail" msgstr "Detail" -#: ../src/iop/bilat.c:438 +#: ../src/iop/bilat.c:448 msgid "changes the local contrast" msgstr "ändert den lokalen Kontrast" -#: ../src/iop/bilat.c:453 +#: ../src/iop/bilat.c:463 msgid "feature size of local details (spatial sigma of bilateral filter)" -msgstr "Größe der lokalen Details (Sigma der Entfernung für den bilateralen Filter)" +msgstr "" +"Größe der lokalen Details (Sigma der Entfernung für den bilateralen Filter)" -#: ../src/iop/bilat.c:461 +#: ../src/iop/bilat.c:471 msgid "L difference to detect edges (range sigma of bilateral filter)" -msgstr "L-Unterschied für die Kantenerkennung (Sigma des Farbabstands für den bilateralen Filter)" +msgstr "" +"L-Unterschied für die Kantenerkennung (Sigma des Farbabstands für den " +"bilateralen Filter)" -#: ../src/iop/bilat.c:467 +#: ../src/iop/bilat.c:477 msgid "changes the local contrast of highlights" msgstr "ändert den lokalen Kontrast der Spitzlichter" -#: ../src/iop/bilat.c:473 +#: ../src/iop/bilat.c:483 msgid "changes the local contrast of shadows" msgstr "ändert den lokalen Kontrast der Schatten" -#: ../src/iop/bilat.c:479 +#: ../src/iop/bilat.c:489 msgid "" -"defines what counts as mid-tones. lower for better dynamic range compression (reduce shadow and highlight " -"contrast), increase for more powerful local contrast" +"defines what counts as mid-tones. lower for better dynamic range compression " +"(reduce shadow and highlight contrast), increase for more powerful local " +"contrast" msgstr "" "Legt fest, was als Mitten angesehen wird. \n" -"Niedriger für bessere Kompression des Dynamikumfangs (reduzierter Kontrast der Schatten und Spitzlichter), höher " -"für stärkeren lokalen Kontrast" +"Niedriger für bessere Kompression des Dynamikumfangs (reduzierter Kontrast " +"der Schatten und Spitzlichter), höher für stärkeren lokalen Kontrast" -#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:396 +#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:423 msgid "surface blur" msgstr "Flächenweichzeichner" @@ -12147,21 +13535,24 @@ msgid "denoise (bilateral filter)" msgstr "Entrauschen (bilateraler Filter)" -#: ../src/iop/bilateral.cc:99 +#: ../src/iop/bilateral.cc:101 msgid "apply edge-aware surface blur to denoise or smoothen textures" -msgstr "Rauschreduktion oder Glätten von Texturen durch kantenerhaltenden Flächenweichzeichner" +msgstr "" +"Rauschreduktion oder Glätten von Texturen durch kantenerhaltenden " +"Flächenweichzeichner" -#: ../src/iop/bilateral.cc:102 ../src/iop/blurs.c:93 ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:729 -#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/soften.c:103 ../src/iop/splittoning.c:105 -#: ../src/iop/velvia.c:107 +#: ../src/iop/bilateral.cc:104 ../src/iop/blurs.c:93 +#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:781 +#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/primaries.c:82 +#: ../src/iop/soften.c:105 ../src/iop/splittoning.c:107 ../src/iop/velvia.c:100 msgid "linear, RGB" msgstr "linear, RGB" -#: ../src/iop/bilateral.cc:136 +#: ../src/iop/bilateral.cc:138 msgid "image too large" msgstr "Bild zu groß" -#: ../src/iop/bilateral.cc:137 +#: ../src/iop/bilateral.cc:139 msgid "" "this module is unable to process\n" "images with more than 2 gigapixels.\n" @@ -12171,19 +13562,19 @@ "mit mehr als 2 Gigapixeln zu verarbeiten.\n" "Die Verarbeitung wurde übersprungen." -#: ../src/iop/bilateral.cc:351 +#: ../src/iop/bilateral.cc:353 msgid "spatial extent of the gaussian" msgstr "Ausdehnung des Gaußschen Weichzeichners" -#: ../src/iop/bilateral.cc:355 +#: ../src/iop/bilateral.cc:357 msgid "how much to blur red" msgstr "wie stark soll Rot weichgezeichnet werden" -#: ../src/iop/bilateral.cc:360 +#: ../src/iop/bilateral.cc:362 msgid "how much to blur green" msgstr "wie stark soll Grün weichgezeichnet werden" -#: ../src/iop/bilateral.cc:365 +#: ../src/iop/bilateral.cc:367 msgid "how much to blur blue" msgstr "wie stark soll Blau weichgezeichnet werden" @@ -12191,20 +13582,21 @@ msgid "apply Orton effect for a dreamy aetherical look" msgstr "Erzeugt durch den Orton-Effekt einen verträumten, mystischen Look" -#: ../src/iop/bloom.c:368 ../src/iop/soften.c:369 ../src/libs/camera.c:567 ../src/libs/masks.c:105 +#: ../src/iop/bloom.c:364 ../src/iop/soften.c:364 ../src/libs/camera.c:567 +#: ../src/libs/masks.c:106 msgid "size" msgstr "Größe" -#: ../src/iop/bloom.c:370 +#: ../src/iop/bloom.c:366 msgid "the size of bloom" msgstr "Größe der Überstrahlung" # unschön -#: ../src/iop/bloom.c:374 +#: ../src/iop/bloom.c:370 msgid "the threshold of light" msgstr "Schwellwert des Lichts" -#: ../src/iop/bloom.c:378 +#: ../src/iop/bloom.c:374 msgid "the strength of bloom" msgstr "Stärke der Überstrahlung" @@ -12220,245 +13612,275 @@ msgid "simulate physically-accurate lens and motion blurs" msgstr "Simuliert physikalisch korrekte Linsen- und Bewegungsunschärfe" -#: ../src/iop/borders.c:187 +#: ../src/iop/borders.c:312 msgid "framing" msgstr "Rahmen" -#: ../src/iop/borders.c:192 +#: ../src/iop/borders.c:317 msgid "borders|enlarge canvas|expand canvas" msgstr "Rahmen|Bild vergrößern|Bild ausdehnen" -#: ../src/iop/borders.c:197 +#: ../src/iop/borders.c:322 msgid "add solid borders or margins around the picture" msgstr "fügt einfarbigen Rahmen zum Bild hinzu" -#: ../src/iop/borders.c:199 ../src/iop/borders.c:201 ../src/iop/lut3d.c:144 +#: ../src/iop/borders.c:324 ../src/iop/borders.c:326 ../src/iop/lut3d.c:145 msgid "linear or non-linear, RGB, display-referred" msgstr "linear oder nichtlinear, RGB, anzeigebezogen" -#: ../src/iop/borders.c:727 +#: ../src/iop/borders.c:737 msgid "15:10 postcard white" msgstr "15:10-Postkarte (weiß)" -#: ../src/iop/borders.c:732 +#: ../src/iop/borders.c:742 msgid "15:10 postcard black" msgstr "15:10-Postkarte (schwarz)" -#: ../src/iop/borders.c:942 -msgid "size of the border in percent of the full image" -msgstr "Größe des Randes in Prozent des ganzen Bildes" +#: ../src/iop/borders.c:948 +msgid "which dimension to use for the size calculation" +msgstr "zur Größenberechnung genutzte Dimension" + +#: ../src/iop/borders.c:954 +msgid "size of the border in percent of the chosen basis" +msgstr "Größe des Randes in Prozent der gewählten Basis" -#: ../src/iop/borders.c:944 ../src/iop/clipping.c:2218 ../src/iop/crop.c:1224 +#: ../src/iop/borders.c:956 ../src/iop/clipping.c:2271 ../src/iop/crop.c:1208 msgid "aspect" msgstr "Format" -#: ../src/iop/borders.c:945 -msgid "select the aspect ratio (right click on slider below to type your own w:h)" -msgstr "Seitenverhältnis wählen (Rechtsklick zur Werteingabe b:h)" +#: ../src/iop/borders.c:957 +msgid "" +"select the aspect ratio\n" +"(right click on slider below to type your own w:h)" +msgstr "" +"Seitenverhältnis wählen\n" +"(Rechtsklick zur Werteingabe b:h)" -#: ../src/iop/borders.c:948 +#: ../src/iop/borders.c:961 msgid "3:1" msgstr "3:1" -#: ../src/iop/borders.c:949 +#: ../src/iop/borders.c:962 msgid "95:33" msgstr "95:33" -#: ../src/iop/borders.c:950 +#: ../src/iop/borders.c:963 msgid "CinemaScope 2.39:1" msgstr "CinemaScope 2.39:1" -#: ../src/iop/borders.c:951 +#: ../src/iop/borders.c:964 msgid "2:1" msgstr "2:1" -#: ../src/iop/borders.c:952 +#: ../src/iop/borders.c:965 msgid "16:9" msgstr "16:9" -#: ../src/iop/borders.c:953 +#: ../src/iop/borders.c:966 msgid "5:3" msgstr "5:3" -#: ../src/iop/borders.c:954 +#: ../src/iop/borders.c:967 msgid "US Legal 8.5x14" msgstr "US Legal 8.5x14" -#: ../src/iop/borders.c:955 ../src/iop/clipping.c:2131 ../src/iop/crop.c:1128 +#: ../src/iop/borders.c:968 ../src/iop/clipping.c:2184 ../src/iop/crop.c:1112 msgid "golden cut" msgstr "Goldener Schnitt" -#: ../src/iop/borders.c:956 +#: ../src/iop/borders.c:969 msgid "16:10" msgstr "16:10" -#: ../src/iop/borders.c:957 +#: ../src/iop/borders.c:970 msgid "3:2 (4x6, 10x15cm)" msgstr "3:2 (4x6, 10x15cm)" -#: ../src/iop/borders.c:959 +#: ../src/iop/borders.c:972 msgid "DIN" msgstr "DIN" -#: ../src/iop/borders.c:960 +#: ../src/iop/borders.c:973 msgid "7:5" msgstr "7:5" -#: ../src/iop/borders.c:961 +#: ../src/iop/borders.c:974 msgid "4:3" msgstr "4:3" -#: ../src/iop/borders.c:962 +#: ../src/iop/borders.c:975 msgid "US Letter 8.5x11" msgstr "US Letter 8.5x11" -#: ../src/iop/borders.c:963 +#: ../src/iop/borders.c:976 msgid "14:11" msgstr "14:11" -#: ../src/iop/borders.c:964 +#: ../src/iop/borders.c:977 msgid "5:4 (8x10)" msgstr "5:4 (8x10)" -#: ../src/iop/borders.c:965 ../src/iop/clipping.c:2121 ../src/iop/crop.c:1118 ../src/libs/filtering.c:301 -#: ../src/libs/filters/ratio.c:126 ../src/libs/histogram.c:141 +#: ../src/iop/borders.c:978 ../src/iop/clipping.c:2174 ../src/iop/crop.c:1102 +#: ../src/libs/filtering.c:307 ../src/libs/filters/ratio.c:126 +#: ../src/libs/histogram.c:118 msgid "square" msgstr "quadratisch" -#: ../src/iop/borders.c:966 +#: ../src/iop/borders.c:979 msgid "constant border" msgstr "konstanter Rahmen" -#: ../src/iop/borders.c:967 ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:980 ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "custom..." msgstr "benutzerdefiniert…" -#: ../src/iop/borders.c:972 -msgid "set the custom aspect ratio (right click to enter number or w:h)" -msgstr "benutzerdefiniertes Seitenverhältnis wählen (Rechtsklick zur Werteingabe b:h)" +#: ../src/iop/borders.c:984 +msgid "" +"set the custom aspect ratio\n" +"(right click to enter number or w:h)" +msgstr "" +"benutzerdefiniertes Seitenverhältnis wählen\n" +"(Rechtsklick zur Werteingabe b:h)" -#: ../src/iop/borders.c:975 +#: ../src/iop/borders.c:989 msgid "aspect ratio orientation of the image with border" msgstr "Drehung des Seitenverhältnisses des Bildes mit Rahmen" -#: ../src/iop/borders.c:977 +#: ../src/iop/borders.c:991 msgid "horizontal position" msgstr "horizontale Position" -#: ../src/iop/borders.c:978 -msgid "select the horizontal position ratio relative to top or right click and type your own (y:h)" -msgstr "horizontale Position relativ zur oberen Kante wählen oder Rechtsklick zum Eintippen (y:h)" +#: ../src/iop/borders.c:992 +msgid "" +"select the horizontal position ratio relative to top\n" +"(right click on slider below to type your own x:w)" +msgstr "" +"horizontale Position relativ zur oberen Kante wählen\n" +"(Rechtsklick auf den Regler zur Eingabe x:b)" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "center" msgstr "zentrieren" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "1/3" msgstr "1/3" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "3/8" msgstr "3/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "5/8" msgstr "5/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "2/3" msgstr "2/3" -#: ../src/iop/borders.c:986 +#: ../src/iop/borders.c:1000 msgid "custom horizontal position" msgstr "benutzerdefinierte horizontale Position" -#: ../src/iop/borders.c:988 +#: ../src/iop/borders.c:1002 msgid "vertical position" msgstr "vertikale Position" -#: ../src/iop/borders.c:989 -msgid "select the vertical position ratio relative to left or right click and type your own (x:w)" -msgstr "vertikale Position relativ zur linken Kante wählen oder Rechtsklick zum Eintippen (x:b)" +#: ../src/iop/borders.c:1003 +msgid "" +"select the vertical position ratio relative to left\n" +"(right click on slider below to type your own y:h)" +msgstr "" +"vertikale Position relativ zur linken Kante wählen\n" +"(Rechtsklick auf den Regler zur Eingabe y:h)" -#: ../src/iop/borders.c:997 +#: ../src/iop/borders.c:1011 msgid "custom vertical position" msgstr "benutzerdefinierte vertikale Position" -#: ../src/iop/borders.c:1002 +#: ../src/iop/borders.c:1017 msgid "size of the frame line in percent of min border width" msgstr "Größe der Rahmenlinie in Prozent der kleinsten Rahmenbreite" -#: ../src/iop/borders.c:1007 +#: ../src/iop/borders.c:1023 msgid "offset of the frame line beginning on picture side" msgstr "Versatz der Rahmenlinie, beginnend an der Bildkante" -#: ../src/iop/borders.c:1014 ../src/iop/borders.c:1023 +#: ../src/iop/borders.c:1033 ../src/iop/borders.c:1044 msgid "border color" msgstr "Farbe des Rahmens" -#: ../src/iop/borders.c:1018 +#: ../src/iop/borders.c:1037 msgid "select border color" msgstr "Rahmenfarbe wählen" -#: ../src/iop/borders.c:1022 +#: ../src/iop/borders.c:1043 msgid "pick border color from image" msgstr "Rahmenfarbe aus dem Bild übernehmen" -#: ../src/iop/borders.c:1023 ../src/iop/borders.c:1036 ../src/iop/colorzones.c:2415 ../src/iop/colorzones.c:2425 -#: ../src/iop/negadoctor.c:848 ../src/iop/negadoctor.c:915 ../src/iop/negadoctor.c:953 ../src/iop/rgbcurve.c:1369 -#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1026 ../src/iop/rgblevels.c:1032 ../src/iop/rgblevels.c:1038 +#: ../src/iop/borders.c:1044 ../src/iop/borders.c:1061 +#: ../src/iop/colorzones.c:2662 ../src/iop/colorzones.c:2677 +#: ../src/iop/negadoctor.c:867 ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:972 ../src/iop/rgbcurve.c:1369 +#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1075 +#: ../src/iop/rgblevels.c:1083 ../src/iop/rgblevels.c:1091 msgid "pickers" msgstr "Pipetten" -#: ../src/iop/borders.c:1027 ../src/iop/borders.c:1036 +#: ../src/iop/borders.c:1049 ../src/iop/borders.c:1061 msgid "frame line color" msgstr "Farbe der Rahmenlinie" -#: ../src/iop/borders.c:1031 +#: ../src/iop/borders.c:1054 msgid "select frame line color" msgstr "Rahmenlinien-Farbe wählen" -#: ../src/iop/borders.c:1035 +#: ../src/iop/borders.c:1060 msgid "pick frame line color from image" msgstr "Rahmenlinien-Farbe aus dem Bild übernehmen" #. make sure you put all your translatable strings into _() ! -#: ../src/iop/cacorrect.c:72 +#: ../src/iop/cacorrect.c:78 msgid "raw chromatic aberrations" msgstr "RAW Chromatische Aberration" -#: ../src/iop/cacorrect.c:77 +#: ../src/iop/cacorrect.c:83 msgid "correct chromatic aberrations for Bayer sensors" msgstr "Korrektur der chromatischen Aberration für Bayer Sensoren" -#: ../src/iop/cacorrect.c:79 ../src/iop/cacorrect.c:81 ../src/iop/cacorrectrgb.c:171 ../src/iop/cacorrectrgb.c:173 -#: ../src/iop/demosaic.c:294 ../src/iop/highlights.c:180 ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:74 -#: ../src/iop/hotpixels.c:76 ../src/iop/rawdenoise.c:131 ../src/iop/rawdenoise.c:133 ../src/iop/rawprepare.c:159 -#: ../src/iop/rawprepare.c:161 ../src/iop/temperature.c:213 ../src/iop/temperature.c:215 +#: ../src/iop/cacorrect.c:85 ../src/iop/cacorrect.c:87 +#: ../src/iop/cacorrectrgb.c:171 ../src/iop/cacorrectrgb.c:173 +#: ../src/iop/demosaic.c:294 ../src/iop/highlights.c:180 +#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:76 +#: ../src/iop/hotpixels.c:78 ../src/iop/rawdenoise.c:145 +#: ../src/iop/rawdenoise.c:147 ../src/iop/rawprepare.c:175 +#: ../src/iop/rawprepare.c:177 ../src/iop/temperature.c:221 +#: ../src/iop/temperature.c:223 msgid "linear, raw, scene-referred" msgstr "linear, RAW, szenenbezogen" -#: ../src/iop/cacorrect.c:80 ../src/iop/cacorrectrgb.c:172 ../src/iop/demosaic.c:295 ../src/iop/invert.c:121 -#: ../src/iop/rawdenoise.c:132 ../src/iop/rawprepare.c:160 ../src/iop/temperature.c:214 +#: ../src/iop/cacorrect.c:86 ../src/iop/cacorrectrgb.c:172 +#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:138 +#: ../src/iop/rawdenoise.c:146 ../src/iop/rawprepare.c:176 +#: ../src/iop/temperature.c:222 msgid "linear, raw" msgstr "linear, RAW" -#: ../src/iop/cacorrect.c:1405 +#: ../src/iop/cacorrect.c:1424 msgid "iteration runs, default is twice" msgstr "Iterationsläufe, Standard ist zweimal" -#: ../src/iop/cacorrect.c:1408 +#: ../src/iop/cacorrect.c:1427 msgid "activate colorshift correction for blue & red channels" msgstr "Farbverschiebungskorrektur für blaue und rote Kanäle aktivieren" -#: ../src/iop/cacorrect.c:1415 +#: ../src/iop/cacorrect.c:1434 msgid "" "automatic chromatic aberration correction\n" -"only for Bayer raw files" +"only for Bayer raw files with 3 color channels" msgstr "" "Automatische Korrektur der chromatischen Aberration\n" -"funktioniert nur bei RAW-Bildern." +"funktioniert nur bei Bayer RAW-Bildern mit 3 Farbkanälen." #: ../src/iop/cacorrectrgb.c:164 ../src/iop/defringe.c:76 msgid "chromatic aberrations" @@ -12468,7 +13890,7 @@ msgid "correct chromatic aberrations" msgstr "korrigiert Chromatische Aberration" -#: ../src/iop/cacorrectrgb.c:743 +#: ../src/iop/cacorrectrgb.c:745 msgid "" "channel used as a reference to\n" "correct the other channels.\n" @@ -12484,11 +13906,11 @@ "Wenn Artefakte auftreten, den \n" "Referenzkanal ändern." -#: ../src/iop/cacorrectrgb.c:750 +#: ../src/iop/cacorrectrgb.c:752 msgid "increase for stronger correction" msgstr "erhöhen für stärkere Korrektur" -#: ../src/iop/cacorrectrgb.c:752 +#: ../src/iop/cacorrectrgb.c:754 msgid "" "balance between smoothing colors\n" "and preserving them.\n" @@ -12500,12 +13922,12 @@ "hohe Werte können zu Übersteuerung und\n" "und Überstrahlung an Kanten führen." -#: ../src/iop/cacorrectrgb.c:757 +#: ../src/iop/cacorrectrgb.c:759 msgctxt "section" msgid "advanced parameters" msgstr "erweiterte Einstellungen" -#: ../src/iop/cacorrectrgb.c:759 +#: ../src/iop/cacorrectrgb.c:761 msgid "" "correction mode to use.\n" "can help with multiple\n" @@ -12523,7 +13945,7 @@ "effizient zur Korrektur der blauen\n" "chromatische Aberration." -#: ../src/iop/cacorrectrgb.c:767 +#: ../src/iop/cacorrectrgb.c:769 msgid "" "runs an iterative approach\n" "with several radii.\n" @@ -12549,7 +13971,8 @@ msgid "censorize license plates and body parts for privacy" msgstr "verpixelt Nummernschilder und Körperteile für mehr Privatsphäre" -#: ../src/iop/censorize.c:84 ../src/iop/colorin.c:134 ../src/iop/filmicrgb.c:353 ../src/iop/graduatednd.c:147 +#: ../src/iop/censorize.c:84 ../src/iop/colorin.c:134 +#: ../src/iop/filmicrgb.c:353 ../src/iop/graduatednd.c:147 msgid "linear or non-linear, RGB, scene-referred" msgstr "linear oder nichtlinear, RGB, szenenbezogen" @@ -12557,36 +13980,36 @@ msgid "special, RGB, scene-referred" msgstr "RGB, szenenbezogen" -#: ../src/iop/censorize.c:412 +#: ../src/iop/censorize.c:404 msgid "radius_1" msgstr "radius_1" -#: ../src/iop/censorize.c:414 +#: ../src/iop/censorize.c:406 msgid "pixelate" msgstr "pixelate" -#: ../src/iop/censorize.c:416 +#: ../src/iop/censorize.c:408 msgid "radius_2" msgstr "radius_2" -#: ../src/iop/censorize.c:418 +#: ../src/iop/censorize.c:410 msgid "noise" msgstr "noise" -#: ../src/iop/censorize.c:420 +#: ../src/iop/censorize.c:412 msgid "radius of gaussian blur before pixellation" msgstr "Radius des Gaußschen Weichzeichners vor Verpixelung" -#: ../src/iop/censorize.c:421 +#: ../src/iop/censorize.c:413 msgid "radius of gaussian blur after pixellation" msgstr "Radius des Gaußschen Weichzeichners nach Verpixelung" # Ugh ... -#: ../src/iop/censorize.c:422 +#: ../src/iop/censorize.c:414 msgid "radius of the intermediate pixellation" msgstr "Göße der Pixel" -#: ../src/iop/censorize.c:423 +#: ../src/iop/censorize.c:415 msgid "amount of noise to add at the end" msgstr "Menge des hinzugefügten Rauschens" @@ -12595,180 +14018,183 @@ msgstr "Kanalmixer" #: ../src/iop/channelmixer.c:131 -msgid "this module is deprecated. please use the color calibration module instead." +msgid "" +"this module is deprecated. please use the color calibration module instead." msgstr "veraltetes Modul; abgelöst durch Farbkalibierung" -#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:229 +#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:230 msgid "" "perform color space corrections\n" "such as white balance, channels mixing\n" "and conversions to monochrome emulating film" -msgstr "Farbraumkorrekturen durchführen, wie Weißabgleich, Kanalmischen und Schwarz-Weiß-Umwandlung" +msgstr "" +"Farbraumkorrekturen durchführen, wie Weißabgleich, Kanalmischen und Schwarz-" +"Weiß-Umwandlung" -#: ../src/iop/channelmixer.c:614 +#: ../src/iop/channelmixer.c:633 msgid "destination" msgstr "Ziel" -#: ../src/iop/channelmixer.c:621 +#: ../src/iop/channelmixer.c:640 msgctxt "channelmixer" msgid "gray" msgstr "Graustufen" -#: ../src/iop/channelmixer.c:627 +#: ../src/iop/channelmixer.c:646 msgid "amount of red channel in the output channel" msgstr "Anteil des Rot-Kanals im Ausgabekanal" -#: ../src/iop/channelmixer.c:633 +#: ../src/iop/channelmixer.c:652 msgid "amount of green channel in the output channel" msgstr "Anteil des Grün-Kanals im Ausgabekanal" -#: ../src/iop/channelmixer.c:639 +#: ../src/iop/channelmixer.c:658 msgid "amount of blue channel in the output channel" msgstr "Anteil des Blau-Kanals im Ausgabekanal" -#: ../src/iop/channelmixer.c:655 ../src/iop/channelmixerrgb.c:524 +#: ../src/iop/channelmixer.c:674 ../src/iop/channelmixerrgb.c:588 msgid "swap R and B" msgstr "Vertausche R und B" -#: ../src/iop/channelmixer.c:661 ../src/iop/channelmixerrgb.c:498 +#: ../src/iop/channelmixer.c:680 ../src/iop/channelmixerrgb.c:562 msgid "swap G and B" msgstr "Vertausche G und B" -#: ../src/iop/channelmixer.c:667 +#: ../src/iop/channelmixer.c:686 msgid "color contrast boost" msgstr "Farbkontrast verstärken" # Was auch immer Farbdetails sein mögen -#: ../src/iop/channelmixer.c:673 +#: ../src/iop/channelmixer.c:692 msgid "color details boost" msgstr "Farbdetails verstärken" # WTF? -#: ../src/iop/channelmixer.c:679 +#: ../src/iop/channelmixer.c:698 msgid "color artifacts boost" msgstr "Farbartefakte verstärken" -#: ../src/iop/channelmixer.c:685 +#: ../src/iop/channelmixer.c:704 msgid "B/W luminance-based" msgstr "S/W Luminanz-basiert" -#: ../src/iop/channelmixer.c:691 +#: ../src/iop/channelmixer.c:710 msgid "B/W artifacts boost" msgstr "S/W-Artefakte verstärken" -#: ../src/iop/channelmixer.c:697 +#: ../src/iop/channelmixer.c:716 msgid "B/W smooth skin" msgstr "S/W weiche Haut" -#: ../src/iop/channelmixer.c:703 +#: ../src/iop/channelmixer.c:722 msgid "B/W blue artifacts reduce" msgstr "S/W blaue Artefakte reduzieren" -#: ../src/iop/channelmixer.c:710 +#: ../src/iop/channelmixer.c:729 msgid "B/W Ilford Delta 100-400" msgstr "S/W Ilford Delta 100-400" -#: ../src/iop/channelmixer.c:717 +#: ../src/iop/channelmixer.c:736 msgid "B/W Ilford Delta 3200" msgstr "S/W Ilford Delta 3200" -#: ../src/iop/channelmixer.c:724 +#: ../src/iop/channelmixer.c:743 msgid "B/W Ilford FP4" msgstr "S/W Ilford FP4" -#: ../src/iop/channelmixer.c:731 +#: ../src/iop/channelmixer.c:750 msgid "B/W Ilford HP5" msgstr "S/W Ilford HP5" -#: ../src/iop/channelmixer.c:738 +#: ../src/iop/channelmixer.c:757 msgid "B/W Ilford SFX" msgstr "S/W Ilford SFX" -#: ../src/iop/channelmixer.c:745 +#: ../src/iop/channelmixer.c:764 msgid "B/W Kodak T-Max 100" msgstr "S/W Kodak T-Max 100" -#: ../src/iop/channelmixer.c:752 +#: ../src/iop/channelmixer.c:771 msgid "B/W Kodak T-max 400" msgstr "S/W Kodak T-max 400" -#: ../src/iop/channelmixer.c:759 +#: ../src/iop/channelmixer.c:778 msgid "B/W Kodak Tri-X 400" msgstr "S/W Kodak Tri-X 400" -#: ../src/iop/channelmixerrgb.c:219 +#: ../src/iop/channelmixerrgb.c:220 msgid "color calibration" msgstr "Farbkalibrierung" -#: ../src/iop/channelmixerrgb.c:224 +#: ../src/iop/channelmixerrgb.c:225 msgid "channel mixer|white balance|monochrome" msgstr "Kanalmixer|Weißabgleich|Monochrom" -#: ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:235 msgid "linear, RGB or XYZ" msgstr "linear, RGB oder XYZ" -#: ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:460 msgid "B&W: luminance-based" msgstr "S/W: Luminanz-basiert" -#: ../src/iop/channelmixerrgb.c:431 +#: ../src/iop/channelmixerrgb.c:495 msgid "B&W: ILFORD HP5+" msgstr "S/W: ILFORD HP5+" -#: ../src/iop/channelmixerrgb.c:440 +#: ../src/iop/channelmixerrgb.c:504 msgid "B&W: ILFORD DELTA 100" msgstr "S/W: ILFORD DELTA 100" -#: ../src/iop/channelmixerrgb.c:450 +#: ../src/iop/channelmixerrgb.c:514 msgid "B&W: ILFORD DELTA 400 - 3200" msgstr "S/W: ILFORD DELTA 400 - 3200" -#: ../src/iop/channelmixerrgb.c:459 +#: ../src/iop/channelmixerrgb.c:523 msgid "B&W: ILFORD FP4+" msgstr "S/W: ILFORD FP4+" -#: ../src/iop/channelmixerrgb.c:468 +#: ../src/iop/channelmixerrgb.c:532 msgid "B&W: Fuji Acros 100" msgstr "S/W: Fuji Acros 100" -#: ../src/iop/channelmixerrgb.c:485 +#: ../src/iop/channelmixerrgb.c:549 msgid "basic channel mixer" msgstr "einfacher Kanalmixer" -#: ../src/iop/channelmixerrgb.c:511 +#: ../src/iop/channelmixerrgb.c:575 msgid "swap G and R" msgstr "Vertausche G und R" -#: ../src/iop/channelmixerrgb.c:1869 +#: ../src/iop/channelmixerrgb.c:1926 msgid "(daylight)" msgstr "(Tageslicht)" -#: ../src/iop/channelmixerrgb.c:1871 +#: ../src/iop/channelmixerrgb.c:1928 msgid "(black body)" msgstr "(Schwarzkörper)" -#: ../src/iop/channelmixerrgb.c:1873 +#: ../src/iop/channelmixerrgb.c:1930 msgid "(invalid)" msgstr "(ungültig)" -#: ../src/iop/channelmixerrgb.c:1877 ../src/iop/channelmixerrgb.c:1935 +#: ../src/iop/channelmixerrgb.c:1934 ../src/iop/channelmixerrgb.c:1992 msgid "very good" msgstr "sehr gut" -#: ../src/iop/channelmixerrgb.c:1879 ../src/iop/channelmixerrgb.c:1937 +#: ../src/iop/channelmixerrgb.c:1936 ../src/iop/channelmixerrgb.c:1994 msgid "good" msgstr "gut" -#: ../src/iop/channelmixerrgb.c:1881 ../src/iop/channelmixerrgb.c:1939 +#: ../src/iop/channelmixerrgb.c:1938 ../src/iop/channelmixerrgb.c:1996 msgid "passable" msgstr "akzeptabel" -#: ../src/iop/channelmixerrgb.c:1883 ../src/iop/channelmixerrgb.c:1941 +#: ../src/iop/channelmixerrgb.c:1940 ../src/iop/channelmixerrgb.c:1998 msgid "bad" msgstr "schlecht" -#: ../src/iop/channelmixerrgb.c:1890 +#: ../src/iop/channelmixerrgb.c:1947 #, c-format msgid "" "\n" @@ -12805,7 +14231,7 @@ "Belichtungskompensation: \t%+.2f EV\n" "Schwarzwertanpassung: \t%+.4f" -#: ../src/iop/channelmixerrgb.c:1946 +#: ../src/iop/channelmixerrgb.c:2003 #, c-format msgid "" "\n" @@ -12824,15 +14250,15 @@ "Belichtungskompensation: \t%+.2f EV\n" "Schwarzwertanpassung: \t%+.4f" -#: ../src/iop/channelmixerrgb.c:1978 +#: ../src/iop/channelmixerrgb.c:2054 msgid "double CAT applied" msgstr "CAT doppelt angewendet" -#: ../src/iop/channelmixerrgb.c:1979 +#: ../src/iop/channelmixerrgb.c:2055 msgid "" "you have 2 instances or more of color calibration,\n" -"all performing chromatic adaptation.\n" -"this can lead to inconsistencies, unless you\n" +"all providing chromatic adaptation.\n" +"this can lead to inconsistencies unless you\n" "use them with masks or know what you are doing." msgstr "" "Es gibt mehrere Instanzen der Farbkalibrierung, \n" @@ -12840,99 +14266,155 @@ "Dies kann dies zu Inkonsistenzen führen, es sei denn \n" "sie werden mit Masken verwendet oder Du weisst, was Du tust." -#: ../src/iop/channelmixerrgb.c:1991 +#: ../src/iop/channelmixerrgb.c:2071 +msgid "white balance applied twice" +msgstr "Weißabgleich doppelt angewendet" + +#: ../src/iop/channelmixerrgb.c:2072 +msgid "" +"the color calibration module is enabled and already provides\n" +"chromatic adaptation.\n" +"set the white balance here to camera reference (D65)\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"Das Farbkalibrierungsmodul ist aktiv und steuert bereits \n" +"die Chromatische Adaption.\n" +"Bitte den Weißabgleich auf Kamera Referenzpunkt (D65) stellen \n" +"oder die CAT Anpassung im Farbkalibrierungsmodul deaktivieren." + +#: ../src/iop/channelmixerrgb.c:2080 msgid "white balance module error" msgstr "Fehler im Weißabgleichsmodul" -#: ../src/iop/channelmixerrgb.c:1992 +#: ../src/iop/channelmixerrgb.c:2081 msgid "" "the white balance module is not using the camera\n" "reference illuminant, which will cause issues here\n" "with chromatic adaptation. either set it to reference\n" "or disable chromatic adaptation here." msgstr "" -"das Weißabgleich-Modul verwendet die Kamera Referenzpunkt Einstellung. Dies führt hier zu fehlerhafter " -"chromatischer Anpassung. \n" -"entweder im Weißabgleichsmodul umstellen oder die chromatische Anpassung hier deaktivieren." +"das Weißabgleich-Modul verwendet die Kamera Referenzpunkt Einstellung. Dies " +"führt hier zu fehlerhafter chromatischer Anpassung. \n" +"entweder im Weißabgleichsmodul umstellen oder die chromatische Anpassung " +"hier deaktivieren." + +#: ../src/iop/channelmixerrgb.c:2095 ../src/iop/channelmixerrgb.c:2104 +msgid "white balance missing" +msgstr "Weißabgleich fehlt" + +#: ../src/iop/channelmixerrgb.c:2096 +msgid "" +"this module is not providing a valid reference illuminant\n" +"causing chromatic adaptation issues in color calibration.\n" +"enable this module and either set it to reference\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"dieses Modul liefert keine gültige Referenzlichtquelle\n" +"was zu Problemen bei der chromatischen Adaptation in der Farbkalibrierung " +"führt.\n" +"Dieses Modul aktivieren und entweder auf Kamera Referenzpunkt (D65) " +"stellen \n" +"oder die CAT Anpassung im Farbkalibrierungsmodul deaktivieren." + +#: ../src/iop/channelmixerrgb.c:2105 +msgid "" +"the white balance module is not providing a valid reference\n" +"illuminant causing issues with chromatic adaptation here.\n" +"enable white balance and either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" +"das Weißabgleichsmodul liefert keine gültige Referenzlichtquelle\n" +"was zu Problemen bei der chromatischen Adaption führt.\n" +"Weißabgleich aktivieren und entweder auf Kamera Referenzpunkt (D65) setzen\n" +"oder die CAT Anpassung hier deaktivieren." -#: ../src/iop/channelmixerrgb.c:2083 +#: ../src/iop/channelmixerrgb.c:2196 msgid "auto-detection of white balance completed" msgstr "automatische Ermittlung des Weißabgleichs beendet" -#: ../src/iop/channelmixerrgb.c:2236 +#: ../src/iop/channelmixerrgb.c:2346 msgid "channelmixerrgb works only on RGB input" msgstr "Farbkalibrierung setzt RGB Input voraus" -#: ../src/iop/channelmixerrgb.c:3621 +#: ../src/iop/channelmixerrgb.c:3692 #, c-format msgid "CCT: %.0f K (daylight)" msgstr "CCT: %.0f K (Tageslicht)" -#: ../src/iop/channelmixerrgb.c:3624 +#: ../src/iop/channelmixerrgb.c:3695 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a daylight spectrum,\n" "so its temperature is relevant and meaningful with a D illuminant." msgstr "" "CCT: genäherte ähnlichste Farbtemperatur (correlated color temperature)\n" -"Diese Lichtquelle kann präzise durch ein Tageslichtspektrum mit einer bestimmten Farbtemperatur modelliert werden." +"Diese Lichtquelle kann präzise durch ein Tageslichtspektrum mit einer " +"bestimmten Farbtemperatur modelliert werden." -#: ../src/iop/channelmixerrgb.c:3630 +#: ../src/iop/channelmixerrgb.c:3701 #, c-format msgid "CCT: %.0f K (black body)" msgstr "CCT: %.0f K (Schwarzkörper)" -#: ../src/iop/channelmixerrgb.c:3633 +#: ../src/iop/channelmixerrgb.c:3704 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a black body spectrum,\n" "so its temperature is relevant and meaningful with a Planckian illuminant." msgstr "" "CCT: genäherte ähnlichste Farbtemperatur (correlated color temperature)\n" -"Diese Lichtquelle kann präzise durch ein Schwarzkörperspektrum (Planck-Spektrum) mit einer bestimmten " -"Farbtemperatur modelliert werden." +"Diese Lichtquelle kann präzise durch ein Schwarzkörperspektrum (Planck-" +"Spektrum) mit einer bestimmten Farbtemperatur modelliert werden." -#: ../src/iop/channelmixerrgb.c:3639 +#: ../src/iop/channelmixerrgb.c:3710 #, c-format msgid "CCT: %.0f K (invalid)" msgstr "CCT: %.0f K (ungültig)" -#: ../src/iop/channelmixerrgb.c:3642 +#: ../src/iop/channelmixerrgb.c:3713 msgid "" "approximated correlated color temperature.\n" -"this illuminant cannot be accurately modeled by a daylight or black body spectrum,\n" -"so its temperature is not relevant and meaningful and you need to use a custom illuminant." +"this illuminant cannot be accurately modeled by a daylight or black body " +"spectrum,\n" +"so its temperature is not relevant and meaningful and you need to use a " +"custom illuminant." msgstr "" "CCT: genäherte ähnlichste Farbtemperatur (correlated color temperature)\n" -"Diese Lichtquelle kann weder durch ein Tageslichtspektrum noch durch ein Schwarzkörperspektrum (Planck-Spektrum) " -"hinreichend genau modelliert werden." +"Diese Lichtquelle kann weder durch ein Tageslichtspektrum noch durch ein " +"Schwarzkörperspektrum (Planck-Spektrum) hinreichend genau modelliert werden." -#: ../src/iop/channelmixerrgb.c:3651 +#: ../src/iop/channelmixerrgb.c:3722 #, c-format msgid "CCT: undefined" msgstr "CCT: nicht definiert" -#: ../src/iop/channelmixerrgb.c:3654 +#: ../src/iop/channelmixerrgb.c:3725 msgid "" "the approximated correlated color temperature\n" "cannot be computed at all so you need to use a custom illuminant." -msgstr "Die genäherte ähnlichste Farbtemperatur (correlated color temperature, CTT) konnte nicht berechnet werden." +msgstr "" +"Die genäherte ähnlichste Farbtemperatur (correlated color temperature, CTT) " +"konnte nicht berechnet werden." -#: ../src/iop/channelmixerrgb.c:3967 +#: ../src/iop/channelmixerrgb.c:4038 msgid "white balance successfully extracted from raw image" msgstr "Weißabgleich erfolgreich aus dem RAW-Bild ermittelt." #. We need to recompute only the full preview -#: ../src/iop/channelmixerrgb.c:3973 +#: ../src/iop/channelmixerrgb.c:4044 msgid "auto-detection of white balance started…" msgstr "Automatische Ermittlung des Weißabgleichs gestartet…" -#: ../src/iop/channelmixerrgb.c:4078 -msgid "color calibration: the sum of the gray channel parameters is zero, normalization will be disabled." -msgstr "Farbkalibrierung: die Summe der Graukanal Parameter ist Null, die Normalisierung wird deaktiviert." +#: ../src/iop/channelmixerrgb.c:4149 +msgid "" +"color calibration: the sum of the gray channel parameters is zero, " +"normalization will be disabled." +msgstr "" +"Farbkalibrierung: die Summe der Graukanal Parameter ist Null, die " +"Normalisierung wird deaktiviert." #. Write report in GUI -#: ../src/iop/channelmixerrgb.c:4126 +#: ../src/iop/channelmixerrgb.c:4194 #, c-format msgid "" "L: \t%.1f %%\n" @@ -12943,28 +14425,29 @@ "h: \t%.1f °\n" "c: \t%.1f" -#: ../src/iop/channelmixerrgb.c:4394 ../src/iop/clipping.c:2087 ../src/iop/colorbalancergb.c:1873 -#: ../src/iop/filmicrgb.c:4419 ../src/iop/negadoctor.c:829 ../src/iop/toneequal.c:3319 ../src/libs/image.c:460 -#: ../src/views/lighttable.c:1258 +#: ../src/iop/channelmixerrgb.c:4462 ../src/iop/clipping.c:2140 +#: ../src/iop/colorbalancergb.c:1944 ../src/iop/filmicrgb.c:4483 +#: ../src/iop/negadoctor.c:848 ../src/iop/toneequal.c:3372 +#: ../src/libs/image.c:490 ../src/views/lighttable.c:1258 msgid "page" msgstr "Seite" # CAT is for "chromatic adaptation # transform" #. Page CAT -#: ../src/iop/channelmixerrgb.c:4397 +#: ../src/iop/channelmixerrgb.c:4465 msgid "CAT" msgstr "CAT" -#: ../src/iop/channelmixerrgb.c:4398 +#: ../src/iop/channelmixerrgb.c:4466 msgid "chromatic adaptation transform" msgstr "chromatische Adaptions-Transformation" -#: ../src/iop/channelmixerrgb.c:4400 +#: ../src/iop/channelmixerrgb.c:4468 msgid "adaptation" msgstr "Anpassung" -#: ../src/iop/channelmixerrgb.c:4403 +#: ../src/iop/channelmixerrgb.c:4471 msgid "" "choose the method to adapt the illuminant\n" "and the colorspace in which the module works: \n" @@ -12978,60 +14461,66 @@ "Methode zur Adaption der Lichtquelle und den Arbeitsfarbraum wählen.\n" " - „Linear Bradford (1985)“ ist konsistent mit ICC v4.\n" " - „CAT16 (2016)“ ist robuster und genauer.\n" -" - „nicht-linear Bradford” entspricht der originalen Bradford-Methode. Es erzeugt mitunter bessere Ergebnisse als " -"„linear Bradford”, funktioniert aber nicht zuverlässig.\n" -" - „XYZ” entspricht einer einfachen Skalierung im XYZ-Farbraum und wird nicht zur generellen Nutzung empfohlen.\n" +" - „nicht-linear Bradford” entspricht der originalen Bradford-Methode. Es " +"erzeugt mitunter bessere Ergebnisse als „linear Bradford”, funktioniert aber " +"nicht zuverlässig.\n" +" - „XYZ” entspricht einer einfachen Skalierung im XYZ-Farbraum und wird " +"nicht zur generellen Nutzung empfohlen.\n" " - „keine” inaktiviert die Farbanpassung." -#: ../src/iop/channelmixerrgb.c:4423 +#: ../src/iop/channelmixerrgb.c:4491 msgid "" "this is the color of the scene illuminant before chromatic adaptation\n" "this color will be turned into pure white by the adaptation." msgstr "" -"Dies ist die Farbe der Motivlichtquelle vor der Farbanpassung. Diese Farbe wird durch die Farbanpassung zu " -"reinweiß." +"Dies ist die Farbe der Motivlichtquelle vor der Farbanpassung. Diese Farbe " +"wird durch die Farbanpassung zu reinweiß." -#: ../src/iop/channelmixerrgb.c:4431 +#: ../src/iop/channelmixerrgb.c:4499 msgid "picker" msgstr "Pipette" -#: ../src/iop/channelmixerrgb.c:4433 ../src/iop/temperature.c:2047 +#: ../src/iop/channelmixerrgb.c:4501 ../src/iop/temperature.c:2015 msgid "set white balance to detected from area" msgstr "Ermittelt den Weißabgleich aus ausgewähltem Bereich." -#: ../src/iop/channelmixerrgb.c:4437 ../src/iop/negadoctor.c:953 +#: ../src/iop/channelmixerrgb.c:4505 ../src/iop/negadoctor.c:972 msgid "illuminant" msgstr "Lichtquelle" -#: ../src/iop/channelmixerrgb.c:4443 ../src/iop/temperature.c:2107 +#: ../src/iop/channelmixerrgb.c:4511 ../src/iop/temperature.c:2072 msgid "temperature" msgstr "Farbtemperatur" -#: ../src/iop/channelmixerrgb.c:4474 -msgid "spot color mapping" -msgstr "Farbanpassung" +#: ../src/iop/channelmixerrgb.c:4542 +msgid "area color mapping" +msgstr "Farbtransfer" -#: ../src/iop/channelmixerrgb.c:4480 +#: ../src/iop/channelmixerrgb.c:4548 msgid "" -"define a target chromaticity (hue and chroma) for a particular region of the image (the control sample), which you " -"then match against the same target chromaticity in other images. the control sample can either be a critical part " -"of your subject or a non-moving and consistently-lit surface over your series of images." -msgstr "" -"Automatische Einstellung von Farbton und Chrominanz um diese in Bildern einer Serie anhand einer Referenz " -"anzugleichen.\n" -"Referenz und Zielbereich kann entweder ein kritischer Teil des Motivs sein oder eine sich nicht bewegende und " -"gleichmäßig beleuchtete Fläche in der Bildserie." - -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/channelmixerrgb.c:4502 ../src/iop/channelmixerrgb.c:4556 -#: ../src/iop/channelmixerrgb.c:4565 ../src/iop/channelmixerrgb.c:4573 +"define a target chromaticity (hue and chroma) for a particular region of the " +"image (the control sample), which you then match against the same target " +"chromaticity in other images. the control sample can either be a critical " +"part of your subject or a non-moving and consistently-lit surface over your " +"series of images." +msgstr "" +"Automatische Einstellung von Farbton und Chrominanz um diese in Bildern " +"einer Serie anhand einer Referenz anzugleichen.\n" +"Referenz und Zielbereich kann entweder ein kritischer Teil des Motivs sein " +"oder eine sich nicht bewegende und gleichmäßig beleuchtete Fläche in der " +"Bildserie." + +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/channelmixerrgb.c:4570 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/channelmixerrgb.c:4641 msgid "mapping" msgstr "Farbanpassung" -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/exposure.c:1188 -msgid "spot mode" +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/exposure.c:1206 +msgid "area mode" msgstr "Anpassungsmodus" -#: ../src/iop/channelmixerrgb.c:4488 +#: ../src/iop/channelmixerrgb.c:4556 msgid "" "\"correction\" automatically adjust the illuminant\n" "such that the input color is mapped to the target.\n" @@ -13043,19 +14532,19 @@ "„Referenz messen“ zeigt die CAT Werte des Referenzbereichs an \n" "und übernimmt diese als Ziel für die Anpassung." -#: ../src/iop/channelmixerrgb.c:4493 ../src/iop/exposure.c:1194 +#: ../src/iop/channelmixerrgb.c:4561 ../src/iop/exposure.c:1212 msgid "correction" msgstr "Ziel anpassen" -#: ../src/iop/channelmixerrgb.c:4494 ../src/iop/exposure.c:1195 +#: ../src/iop/channelmixerrgb.c:4562 ../src/iop/exposure.c:1213 msgid "measure" msgstr "Referenz messen" -#: ../src/iop/channelmixerrgb.c:4500 +#: ../src/iop/channelmixerrgb.c:4568 msgid "take channel mixing into account" msgstr "Kanalmixer mit berücksichtigen" -#: ../src/iop/channelmixerrgb.c:4507 +#: ../src/iop/channelmixerrgb.c:4575 msgid "" "compute the target by taking the channel mixing into account.\n" "if disabled, only the CAT is considered." @@ -13063,16 +14552,16 @@ "Berechnung des Ziels unter Berücksichtigung der RGB Kanalmixerwerte.\n" "wenn deaktiviert, werden nur die CAT Werte berücksichtigt." -#: ../src/iop/channelmixerrgb.c:4519 ../src/iop/exposure.c:1202 +#: ../src/iop/channelmixerrgb.c:4587 ../src/iop/exposure.c:1220 msgctxt "section" msgid "input" msgstr "Input" -#: ../src/iop/channelmixerrgb.c:4526 ../src/iop/exposure.c:1210 +#: ../src/iop/channelmixerrgb.c:4594 ../src/iop/exposure.c:1228 msgid "the input color that should be mapped to the target" msgstr "Farbe, die an die Referenz angepasst werden soll" -#: ../src/iop/channelmixerrgb.c:4532 +#: ../src/iop/channelmixerrgb.c:4600 msgid "" "L: \tN/A\n" "h: \tN/A\n" @@ -13082,427 +14571,448 @@ "h: \tN/A\n" "c: \tN/A" -#: ../src/iop/channelmixerrgb.c:4535 ../src/iop/exposure.c:1218 +#: ../src/iop/channelmixerrgb.c:4603 ../src/iop/exposure.c:1236 msgid "these LCh coordinates are computed from CIE Lab 1976 coordinates" -msgstr "diese LCh-Koordinaten werden aus den CIE Lab 1976 Koordinaten berechnet" +msgstr "" +"diese LCh-Koordinaten werden aus den CIE Lab 1976 Koordinaten berechnet" -#: ../src/iop/channelmixerrgb.c:4543 ../src/iop/exposure.c:1225 +#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/exposure.c:1243 msgctxt "section" msgid "target" msgstr "Ziel" -#: ../src/iop/channelmixerrgb.c:4550 +#: ../src/iop/channelmixerrgb.c:4618 msgid "the desired target color after mapping" msgstr "Zielfarbe nach Anpassung" -#: ../src/iop/channelmixerrgb.c:4589 +#: ../src/iop/channelmixerrgb.c:4657 msgid "input R" msgstr "Input R" -#: ../src/iop/channelmixerrgb.c:4594 +#: ../src/iop/channelmixerrgb.c:4662 msgid "input G" msgstr "Input G" -#: ../src/iop/channelmixerrgb.c:4599 +#: ../src/iop/channelmixerrgb.c:4667 msgid "input B" msgstr "Input B" -#: ../src/iop/channelmixerrgb.c:4609 +#: ../src/iop/channelmixerrgb.c:4677 msgid "output R" msgstr "Output R" -#: ../src/iop/channelmixerrgb.c:4610 +#: ../src/iop/channelmixerrgb.c:4678 msgid "output G" msgstr "Output G" -#: ../src/iop/channelmixerrgb.c:4611 +#: ../src/iop/channelmixerrgb.c:4679 msgid "output B" msgstr "Output B" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "colorfulness" msgstr "Farbigkeit" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "output colorfulness" msgstr "Output Farbigkeit" -#: ../src/iop/channelmixerrgb.c:4617 +#: ../src/iop/channelmixerrgb.c:4685 msgid "output brightness" msgstr "Output Helligkeit" -#: ../src/iop/channelmixerrgb.c:4620 +#: ../src/iop/channelmixerrgb.c:4688 msgid "output gray" msgstr "Output Grau" -#: ../src/iop/channelmixerrgb.c:4635 +#: ../src/iop/channelmixerrgb.c:4703 msgid "calibrate with a color checker" msgstr "Kalibrierung mit Color Checker" -#: ../src/iop/channelmixerrgb.c:4640 +#: ../src/iop/channelmixerrgb.c:4708 msgid "use a color checker target to autoset CAT and channels" msgstr "setzt CAT und RGB Kanäle anhand des Color Checker Targets" -#: ../src/iop/channelmixerrgb.c:4647 ../src/iop/channelmixerrgb.c:4660 ../src/iop/channelmixerrgb.c:4678 -#: ../src/iop/channelmixerrgb.c:4696 ../src/iop/channelmixerrgb.c:4705 ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4715 ../src/iop/channelmixerrgb.c:4728 +#: ../src/iop/channelmixerrgb.c:4746 ../src/iop/channelmixerrgb.c:4764 +#: ../src/iop/channelmixerrgb.c:4773 ../src/iop/channelmixerrgb.c:4781 msgid "calibrate" msgstr "Kalibrierung" -#: ../src/iop/channelmixerrgb.c:4647 +#: ../src/iop/channelmixerrgb.c:4715 msgid "chart" msgstr "Target" -#: ../src/iop/channelmixerrgb.c:4648 +#: ../src/iop/channelmixerrgb.c:4716 msgid "choose the vendor and the type of your chart" msgstr "Hersteller und Typ des Targets auswählen" -#: ../src/iop/channelmixerrgb.c:4650 +#: ../src/iop/channelmixerrgb.c:4718 msgid "Xrite ColorChecker 24 pre-2014" msgstr "Xrite ColorChecker 24 pre-2014" -#: ../src/iop/channelmixerrgb.c:4651 +#: ../src/iop/channelmixerrgb.c:4719 msgid "Xrite ColorChecker 24 post-2014" msgstr "Xrite ColorChecker 24 post-2014" -#: ../src/iop/channelmixerrgb.c:4652 +#: ../src/iop/channelmixerrgb.c:4720 msgid "Datacolor SpyderCheckr 24 pre-2018" msgstr "Datacolor SpyderCheckr 24 pre-2018" -#: ../src/iop/channelmixerrgb.c:4653 +#: ../src/iop/channelmixerrgb.c:4721 msgid "Datacolor SpyderCheckr 24 post-2018" msgstr "Datacolor SpyderCheckr 24 post-2018" -#: ../src/iop/channelmixerrgb.c:4654 +#: ../src/iop/channelmixerrgb.c:4722 msgid "Datacolor SpyderCheckr 48 pre-2018" msgstr "Datacolor SpyderCheckr 48 pre-2018" -#: ../src/iop/channelmixerrgb.c:4655 +#: ../src/iop/channelmixerrgb.c:4723 msgid "Datacolor SpyderCheckr 48 post-2018" msgstr "Datacolor SpyderCheckr 48 post-2018" -#: ../src/iop/channelmixerrgb.c:4656 +#: ../src/iop/channelmixerrgb.c:4724 msgid "Datacolor SpyderCheckr Photo" msgstr "Datacolor SpyderCheckr Photo" -#: ../src/iop/channelmixerrgb.c:4660 +#: ../src/iop/channelmixerrgb.c:4728 msgid "optimize for" msgstr "optimiert für" -#: ../src/iop/channelmixerrgb.c:4661 +#: ../src/iop/channelmixerrgb.c:4729 msgid "" "choose the colors that will be optimized with higher priority.\n" "neutral colors gives the lowest average delta E but a high maximum delta E\n" -"saturated colors gives the lowest maximum delta E but a high average delta E\n" +"saturated colors gives the lowest maximum delta E but a high average delta " +"E\n" "none is a trade-off between both\n" "the others are special behaviors to protect some hues" msgstr "" "Auswahl der Farben, die mit höherer Priorität optimiert werden sollen.\n" -"„neutrale Farben“ ergeben das niedrigste mittlere Delta E, aber ein hohes maximales Delta E\n" -"„gesättigte Farben“ ergeben das niedrigste maximale Delta E, aber ein hohes mittlere Delta E\n" +"„neutrale Farben“ ergeben das niedrigste mittlere Delta E, aber ein hohes " +"maximales Delta E\n" +"„gesättigte Farben“ ergeben das niedrigste maximale Delta E, aber ein hohes " +"mittlere Delta E\n" "„keine“ ist ein Kompromiss zwischen beiden\n" "die anderen sind spezielle Verhaltensweisen zum Schutz einiger Farbtöne" -#: ../src/iop/channelmixerrgb.c:4668 +#: ../src/iop/channelmixerrgb.c:4736 msgid "neutral colors" msgstr "neutrale Farben" -#: ../src/iop/channelmixerrgb.c:4670 +#: ../src/iop/channelmixerrgb.c:4738 msgid "skin and soil colors" msgstr "Haut- und Erdtöne" -#: ../src/iop/channelmixerrgb.c:4671 +#: ../src/iop/channelmixerrgb.c:4739 msgid "foliage colors" msgstr "Laub" -#: ../src/iop/channelmixerrgb.c:4672 +#: ../src/iop/channelmixerrgb.c:4740 msgid "sky and water colors" msgstr "Himmel und Wasser" -#: ../src/iop/channelmixerrgb.c:4673 +#: ../src/iop/channelmixerrgb.c:4741 msgid "average delta E" msgstr "mittleres ΔE" -#: ../src/iop/channelmixerrgb.c:4674 +#: ../src/iop/channelmixerrgb.c:4742 msgid "maximum delta E" msgstr "maximales ΔE" -#: ../src/iop/channelmixerrgb.c:4678 +#: ../src/iop/channelmixerrgb.c:4746 msgid "patch scale" msgstr "Messbereichsgröße" -#: ../src/iop/channelmixerrgb.c:4681 +#: ../src/iop/channelmixerrgb.c:4749 msgid "" "reduce the radius of the patches to select the more or less central part.\n" "useful when the perspective correction is sloppy or\n" "the patches frame cast a shadows on the edges of the patch." msgstr "" -"den Radius des Messbereichs reduzieren, um den mehr oder weniger zentralen Teil auszuwählen.\n" +"den Radius des Messbereichs reduzieren, um den mehr oder weniger zentralen " +"Teil auszuwählen.\n" "nützlich, wenn die Perspektivkorrektur ungenau ist oder\n" "der Rahmen der Farbfelder einen Schatten auf deren Kanten wirft." -#: ../src/iop/channelmixerrgb.c:4691 +#: ../src/iop/channelmixerrgb.c:4759 msgid "the delta E is using the CIE 2000 formula" msgstr "Delta E wird nach CIE 2000 ermittelt" -#: ../src/iop/channelmixerrgb.c:4696 +#: ../src/iop/channelmixerrgb.c:4764 msgid "accept" msgstr "übernehmen" -#: ../src/iop/channelmixerrgb.c:4702 +#: ../src/iop/channelmixerrgb.c:4770 msgid "accept the computed profile and set it in the module" msgstr "ermitteltes Profil akzeptieren und übernehmen" -#: ../src/iop/channelmixerrgb.c:4705 +#: ../src/iop/channelmixerrgb.c:4773 msgid "recompute" msgstr "neu berechnen" -#: ../src/iop/channelmixerrgb.c:4709 +#: ../src/iop/channelmixerrgb.c:4777 msgid "recompute the profile" msgstr "Profil neu berechnen" -#: ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4781 msgid "validate" msgstr "prüfen" -#: ../src/iop/channelmixerrgb.c:4717 +#: ../src/iop/channelmixerrgb.c:4785 msgid "check the output delta E" msgstr "Ergebnis Delta E prüfen" #: ../src/iop/choleski.h:290 ../src/iop/choleski.h:390 -msgid "Choleski decomposition failed to allocate memory, check your RAM settings" -msgstr "Der Cholesky-Zerlegung konnte kein Speicher zuweisen werden, überprüfe die RAM-Einstellungen." +msgid "" +"Choleski decomposition failed to allocate memory, check your RAM settings" +msgstr "" +"Der Cholesky-Zerlegung konnte kein Speicher zuweisen werden, überprüfe die " +"RAM-Einstellungen." #: ../src/iop/clahe.c:74 -msgid "this module is deprecated. better use new local contrast module instead." +msgid "" +"this module is deprecated. better use new local contrast module instead." msgstr "veraltetes Modul; abgelöst durch Lokaler Kontrast" -#: ../src/iop/clahe.c:337 ../src/iop/sharpen.c:445 +#: ../src/iop/clahe.c:339 ../src/iop/sharpen.c:440 msgid "amount" msgstr "Menge" -#: ../src/iop/clahe.c:346 +#: ../src/iop/clahe.c:348 msgid "size of features to preserve" msgstr "Größe der Strukturen, die erhalten bleiben sollen" -#: ../src/iop/clahe.c:347 ../src/iop/nlmeans.c:464 +#: ../src/iop/clahe.c:349 ../src/iop/nlmeans.c:467 msgid "strength of the effect" msgstr "Stärke des Effekts" -#: ../src/iop/clipping.c:304 -msgid "this module is deprecated. please use the crop, orientation and/or rotate and perspective modules instead." -msgstr "veraltetes Modul; abgelöst durch Zuschneiden bzw. Drehen und Perspektive" +#: ../src/iop/clipping.c:347 +msgid "" +"this module is deprecated. please use the crop, orientation and/or rotate " +"and perspective modules instead." +msgstr "" +"veraltetes Modul; abgelöst durch Zuschneiden bzw. Drehen und Perspektive" -#: ../src/iop/clipping.c:309 +#: ../src/iop/clipping.c:352 msgid "crop and rotate" msgstr "Zuschneiden und Drehen" -#: ../src/iop/clipping.c:314 +#: ../src/iop/clipping.c:357 msgid "reframe|perspective|keystone|distortion" msgstr "Zuschneiden|Perspektive|Trapezverzerrung|Verzerrung" -#: ../src/iop/clipping.c:319 +#: ../src/iop/clipping.c:362 msgid "change the framing and correct the perspective" msgstr "Ausschneiden, Rotieren und Perspektivkorrektur" -#: ../src/iop/clipping.c:1394 ../src/iop/clipping.c:2120 ../src/iop/crop.c:517 ../src/iop/crop.c:1117 +#: ../src/iop/clipping.c:1447 ../src/iop/clipping.c:2173 ../src/iop/crop.c:501 +#: ../src/iop/crop.c:1101 msgid "original image" msgstr "Original" -#: ../src/iop/clipping.c:1698 ../src/iop/crop.c:824 +#: ../src/iop/clipping.c:1751 ../src/iop/crop.c:808 msgid "invalid ratio format. it should be \"number:number\"" msgstr "Ungültiges Seitenverhältnis. Es sollte „Zahl:Zahl“ sein." -#: ../src/iop/clipping.c:1714 ../src/iop/crop.c:840 +#: ../src/iop/clipping.c:1767 ../src/iop/crop.c:824 msgid "invalid ratio format. it should be a positive number" msgstr "Ungültiges Seitenverhältnis. Es sollte eine positive Zahl sein." -#: ../src/iop/clipping.c:1903 ../src/iop/clipping.c:2111 +#: ../src/iop/clipping.c:1956 ../src/iop/clipping.c:2164 msgid "full" msgstr "vollständig" -#: ../src/iop/clipping.c:1904 +#: ../src/iop/clipping.c:1957 msgid "old system" msgstr "altes System" -#: ../src/iop/clipping.c:1905 +#: ../src/iop/clipping.c:1958 msgid "correction applied" msgstr "Korrektur angewandt" -#: ../src/iop/clipping.c:2089 +#: ../src/iop/clipping.c:2142 msgid "main" msgstr "Beschnitt" -#: ../src/iop/clipping.c:2098 +#: ../src/iop/clipping.c:2151 msgid "mirror image horizontally and/or vertically" msgstr "Bild horizontal und/oder vertikal spiegeln" -#: ../src/iop/clipping.c:2101 +#: ../src/iop/clipping.c:2154 msgid "angle" msgstr "Winkel" # sehr unschön :-( # hoffe, der deutsche Vorschlag ist besser :-) # (evtl. müßte das englische Original ebenfalls verbessert werden) -#: ../src/iop/clipping.c:2104 +#: ../src/iop/clipping.c:2157 msgid "right-click and drag a line on the image to drag a straight line" msgstr "" -"Mit rechter Maustaste ins Bild klicken und eine Linie entlang einer horizontalen oder vertikalen Kante des Motivs " -"ziehen" +"Mit rechter Maustaste ins Bild klicken und eine Linie entlang einer " +"horizontalen oder vertikalen Kante des Motivs ziehen" -#: ../src/iop/clipping.c:2107 +#: ../src/iop/clipping.c:2160 msgid "keystone" msgstr "Trapezkorrektur" -#: ../src/iop/clipping.c:2112 +#: ../src/iop/clipping.c:2165 msgid "set perspective correction for your image" msgstr "Perspektivische Korrektur des Bildes festlegen" -#: ../src/iop/clipping.c:2119 ../src/iop/crop.c:1116 +#: ../src/iop/clipping.c:2172 ../src/iop/crop.c:1100 msgid "freehand" msgstr "frei" -#: ../src/iop/clipping.c:2122 ../src/iop/crop.c:1119 +#: ../src/iop/clipping.c:2175 ../src/iop/crop.c:1103 msgid "10:8 in print" msgstr "10:8 für Druck" -#: ../src/iop/clipping.c:2123 ../src/iop/crop.c:1120 +#: ../src/iop/clipping.c:2176 ../src/iop/crop.c:1104 msgid "5:4, 4x5, 8x10" msgstr "5:4, 4×5, 8×10" -#: ../src/iop/clipping.c:2124 ../src/iop/crop.c:1121 +#: ../src/iop/clipping.c:2177 ../src/iop/crop.c:1105 msgid "11x14" msgstr "11×14" -#: ../src/iop/clipping.c:2125 ../src/iop/crop.c:1122 +#: ../src/iop/clipping.c:2178 ../src/iop/crop.c:1106 msgid "8.5x11, letter" msgstr "8,5×11, Letter" -#: ../src/iop/clipping.c:2126 ../src/iop/crop.c:1123 +#: ../src/iop/clipping.c:2179 ../src/iop/crop.c:1107 msgid "4:3, VGA, TV" msgstr "4:3, VGA, TV" -#: ../src/iop/clipping.c:2127 ../src/iop/crop.c:1124 +#: ../src/iop/clipping.c:2180 ../src/iop/crop.c:1108 msgid "5x7" msgstr "5×7" -#: ../src/iop/clipping.c:2128 ../src/iop/crop.c:1125 +#: ../src/iop/clipping.c:2181 ../src/iop/crop.c:1109 msgid "ISO 216, DIN 476, A4" msgstr "ISO 216, DIN 476, A4" -#: ../src/iop/clipping.c:2129 ../src/iop/crop.c:1126 +#: ../src/iop/clipping.c:2182 ../src/iop/crop.c:1110 msgid "3:2, 4x6, 35mm" msgstr "3:2, 4×6, 35mm" -#: ../src/iop/clipping.c:2130 ../src/iop/crop.c:1127 +#: ../src/iop/clipping.c:2183 ../src/iop/crop.c:1111 msgid "16:10, 8x5" msgstr "16:10, 8×5" -#: ../src/iop/clipping.c:2132 ../src/iop/crop.c:1129 +#: ../src/iop/clipping.c:2185 ../src/iop/crop.c:1113 msgid "16:9, HDTV" msgstr "16:9, HDTV" -#: ../src/iop/clipping.c:2133 ../src/iop/crop.c:1130 +#: ../src/iop/clipping.c:2186 ../src/iop/crop.c:1114 msgid "widescreen" msgstr "Breitbild" -#: ../src/iop/clipping.c:2134 ../src/iop/crop.c:1131 +#: ../src/iop/clipping.c:2187 ../src/iop/crop.c:1115 msgid "2:1, univisium" msgstr "2:1, Univisium" -#: ../src/iop/clipping.c:2135 ../src/iop/crop.c:1132 +#: ../src/iop/clipping.c:2188 ../src/iop/crop.c:1116 msgid "cinemascope" msgstr "CinemaScope" -#: ../src/iop/clipping.c:2136 ../src/iop/crop.c:1133 +#: ../src/iop/clipping.c:2189 ../src/iop/crop.c:1117 msgid "21:9" msgstr "21:9" -#: ../src/iop/clipping.c:2137 ../src/iop/crop.c:1134 +#: ../src/iop/clipping.c:2190 ../src/iop/crop.c:1118 msgid "anamorphic" msgstr "anamorph" -#: ../src/iop/clipping.c:2138 ../src/iop/crop.c:1135 +#: ../src/iop/clipping.c:2191 ../src/iop/crop.c:1119 msgid "3:1, panorama" msgstr "3:1, Panorama" -#: ../src/iop/clipping.c:2170 ../src/iop/clipping.c:2182 ../src/iop/crop.c:1171 ../src/iop/crop.c:1187 +#: ../src/iop/clipping.c:2223 ../src/iop/clipping.c:2235 ../src/iop/crop.c:1155 +#: ../src/iop/crop.c:1171 #, c-format msgid "invalid ratio format for `%s'. it should be \"number:number\"" msgstr "Ungültiges Seitenverhältnis für „%s”. Es sollte „Zahl:Zahl“ sein" -#: ../src/iop/clipping.c:2229 ../src/iop/crop.c:1238 +#: ../src/iop/clipping.c:2282 ../src/iop/crop.c:1222 msgid "" "set the aspect ratio\n" "the list is sorted: from most square to least square\n" -"to enter custom aspect ratio open the combobox and type ratio in x:y or decimal format" +"to enter custom aspect ratio open the combobox and type ratio in x:y or " +"decimal format" msgstr "" "Seitenverhältnis\n" "Die Liste ist nach absteigendem Seitenverhältnis sortiert\n" -"zur Eingabe des benutzerdefinierten Seitenverhältnisses das Einstellfeld öffnen und das Verhältnis in x:y oder im " -"Dezimalformat eingeben" +"zur Eingabe des benutzerdefinierten Seitenverhältnisses das Einstellfeld " +"öffnen und das Verhältnis in x:y oder im Dezimalformat eingeben" -#: ../src/iop/clipping.c:2236 ../src/iop/crop.c:1252 +#: ../src/iop/clipping.c:2289 ../src/iop/crop.c:1236 msgid "margins" msgstr "Ränder" -#: ../src/iop/clipping.c:2241 ../src/iop/crop.c:1262 +#: ../src/iop/clipping.c:2294 ../src/iop/crop.c:1246 msgid "the left margin cannot overlap with the right margin" msgstr "Linker Rand kann nicht über rechten Rand hinauslaufen" -#: ../src/iop/clipping.c:2248 ../src/iop/crop.c:1270 +#: ../src/iop/clipping.c:2301 ../src/iop/crop.c:1254 msgid "the right margin cannot overlap with the left margin" msgstr "Rechter Rand kann nicht über linken Rand hinauslaufen" -#: ../src/iop/clipping.c:2253 ../src/iop/crop.c:1276 +#: ../src/iop/clipping.c:2306 ../src/iop/crop.c:1260 msgid "the top margin cannot overlap with the bottom margin" msgstr "Oberer Rand kann nicht über unteren Rand hinauslaufen" -#: ../src/iop/clipping.c:2260 ../src/iop/crop.c:1284 +#: ../src/iop/clipping.c:2313 ../src/iop/crop.c:1268 msgid "the bottom margin cannot overlap with the top margin" msgstr "Unterer Rand kann nicht über oberen Rand hinauslaufen" -#: ../src/iop/clipping.c:3019 +#: ../src/iop/clipping.c:3059 msgid "<b>commit</b>: double-click, <b>straighten</b>: right-drag" msgstr "<b>Bestätigen</b>: Doppelklick, <b>Ausrichten</b>: Rechtsclick-ziehen" -#: ../src/iop/clipping.c:3023 +#: ../src/iop/clipping.c:3063 msgid "" "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag\n" "<b>straighten</b>: right-drag" msgstr "" -"<b>Größe ändern</b>: ziehen, <b>Seitenverhältnis beibehalten</b>: Shift+ziehen\n" +"<b>Größe ändern</b>: ziehen, <b>Seitenverhältnis beibehalten</b>: " +"Shift+ziehen\n" "<b>Ausrichten</b>: Rechtsclick-ziehen" -#: ../src/iop/clipping.c:3066 +#: ../src/iop/clipping.c:3104 msgid "<b>move control point</b>: drag" msgstr "<b>Kontrollpunkt bewegen</b>: ziehen" -#: ../src/iop/clipping.c:3071 +#: ../src/iop/clipping.c:3109 msgid "<b>move line</b>: drag, <b>toggle symmetry</b>: click ꝏ" -msgstr "<b>Linie verschieben</b>: ziehen, <b>Symmetrie umschalten</b>: klick auf ꝏ" +msgstr "" +"<b>Linie verschieben</b>: ziehen, <b>Symmetrie umschalten</b>: klick auf ꝏ" -#: ../src/iop/clipping.c:3076 +#: ../src/iop/clipping.c:3114 msgid "" "<b>apply</b>: click <tt>ok</tt>, <b>toggle symmetry</b>: click ꝏ\n" "<b>move line/control point</b>: drag" msgstr "" -"<b>Anwenden</b>: klick auf <tt>ok</tt>, <b>Symmetrie umschalten</b>: klick auf ꝏ\n" +"<b>Anwenden</b>: klick auf <tt>ok</tt>, <b>Symmetrie umschalten</b>: klick " +"auf ꝏ\n" "<b>Linie/Kontrollpunkt verschieben</b>: ziehen" -#: ../src/iop/clipping.c:3083 +#: ../src/iop/clipping.c:3121 msgid "" -"<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</b>: ctrl+drag\n" +"<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" +"b>: ctrl+drag\n" "<b>straighten</b>: right-drag, <b>commit</b>: double-click" msgstr "" -"<b>Verschieben</b>: ziehen, <b>Vertikal verschieben</b>: Shift+ziehen, <b>Horizontal verschieben</b>: Strg+ziehen\n" +"<b>Verschieben</b>: ziehen, <b>Vertikal verschieben</b>: Shift+ziehen, " +"<b>Horizontal verschieben</b>: Strg+ziehen\n" "<b>Ausrichten</b>: Rechtsklick-ziehen, <b>Bestätigen</b>: Doppelklick" -#: ../src/iop/clipping.c:3340 ../src/iop/crop.c:1796 +#: ../src/iop/clipping.c:3380 ../src/iop/crop.c:1770 #, c-format msgid "[%s on borders] crop" msgstr "[%s on borders] Zuschnitt" -#: ../src/iop/clipping.c:3342 ../src/iop/crop.c:1798 +#: ../src/iop/clipping.c:3382 ../src/iop/crop.c:1772 #, c-format msgid "[%s on borders] crop keeping ratio" msgstr "[%s on borders] Verhältnis des Zuschnitt" @@ -13519,224 +15029,225 @@ msgid "adjust the look of the image" msgstr "Anpassung Kontrast Helligkeit und Sättigung" -#: ../src/iop/colisa.c:310 +#: ../src/iop/colisa.c:304 msgid "color saturation adjustment" msgstr "Farbsättigungsanpassung" -#: ../src/iop/colorbalance.c:150 +#: ../src/iop/colorbalance.c:152 msgid "color balance" msgstr "Farbbalance" -#: ../src/iop/colorbalance.c:155 +#: ../src/iop/colorbalance.c:157 msgid "lift gamma gain|cdl|color grading|contrast|saturation|hue" msgstr "Lift Gamma Gain|CDL|Color Grading|Kontrast|Sättigung|Farbton" -#: ../src/iop/colorbalance.c:160 +#: ../src/iop/colorbalance.c:162 msgid "shift colors selectively by luminance range" msgstr "Farben selektiv nach Luminanzbereich verschieben" -#: ../src/iop/colorbalance.c:164 +#: ../src/iop/colorbalance.c:166 msgid "non-linear, Lab, scene-referred" msgstr "nichtlinear, Lab, szenenbezogen" #. these blobs were exported as dtstyle and copied from there: -#: ../src/iop/colorbalance.c:275 +#: ../src/iop/colorbalance.c:304 msgid "split-toning teal-orange (2nd instance)" msgstr "Teiltonung Teal-Orange (2. Instanz)" -#: ../src/iop/colorbalance.c:278 +#: ../src/iop/colorbalance.c:307 msgid "split-toning teal-orange (1st instance)" msgstr "Teiltonung Teal-Orange (1. Instanz)" -#: ../src/iop/colorbalance.c:282 +#: ../src/iop/colorbalance.c:311 msgid "generic film" msgstr "Generischer Film" -#: ../src/iop/colorbalance.c:286 +#: ../src/iop/colorbalance.c:315 msgid "similar to Kodak Portra" msgstr "ähnlich zu Kodak Portra" -#: ../src/iop/colorbalance.c:290 +#: ../src/iop/colorbalance.c:319 msgid "similar to Kodak Ektar" msgstr "ähnlich zu Kodak Ektar" -#: ../src/iop/colorbalance.c:294 +#: ../src/iop/colorbalance.c:323 msgid "similar to Kodachrome" msgstr "ähnlich zu Kodachrome" -#: ../src/iop/colorbalance.c:990 +#: ../src/iop/colorbalance.c:964 msgid "optimize luma from patches" msgstr "optimiere Luma aus Patches" -#: ../src/iop/colorbalance.c:992 ../src/iop/colorbalance.c:2110 +#: ../src/iop/colorbalance.c:966 ../src/iop/colorbalance.c:2085 msgid "optimize luma" msgstr "optimiere Luma" -#: ../src/iop/colorbalance.c:996 +#: ../src/iop/colorbalance.c:970 msgid "neutralize colors from patches" msgstr "neutralisiert Farben aus Feldern" -#: ../src/iop/colorbalance.c:998 ../src/iop/colorbalance.c:2116 +#: ../src/iop/colorbalance.c:972 ../src/iop/colorbalance.c:2091 msgid "neutralize colors" msgstr "neutralisiert Farben" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "offset" msgstr "Offset" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "power" msgstr "Stärke" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "slope" msgstr "Steigung" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "lift" msgstr "Lift" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gamma" msgstr "Gamma" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gain" msgstr "Gain" -#: ../src/iop/colorbalance.c:1787 +#: ../src/iop/colorbalance.c:1762 msgctxt "section" msgid "shadows: lift / offset" msgstr "Schatten: Lift / Offset" -#: ../src/iop/colorbalance.c:1788 +#: ../src/iop/colorbalance.c:1763 msgctxt "section" msgid "mid-tones: gamma / power" msgstr "Mitten: Gamma / Power" -#: ../src/iop/colorbalance.c:1789 +#: ../src/iop/colorbalance.c:1764 msgctxt "section" msgid "highlights: gain / slope" msgstr "Lichter: Gain / Slope" -#: ../src/iop/colorbalance.c:1813 +#: ../src/iop/colorbalance.c:1788 msgid "shadows / mid-tones / highlights" msgstr "Schatten / Mitten / Lichter" -#: ../src/iop/colorbalance.c:1910 ../src/iop/colorbalance.c:1919 +#: ../src/iop/colorbalance.c:1885 ../src/iop/colorbalance.c:1894 msgid "color-grading mapping method" msgstr "Farbabbildungsmethode" -#: ../src/iop/colorbalance.c:1914 +#: ../src/iop/colorbalance.c:1889 msgid "color control sliders" msgstr "Farbsteuerungsregler" -#: ../src/iop/colorbalance.c:1915 ../src/libs/colorpicker.c:51 +#: ../src/iop/colorbalance.c:1890 ../src/libs/colorpicker.c:51 msgid "HSL" msgstr "HSL" -#: ../src/iop/colorbalance.c:1916 +#: ../src/iop/colorbalance.c:1891 msgid "RGBL" msgstr "RGBL" -#: ../src/iop/colorbalance.c:1928 +#: ../src/iop/colorbalance.c:1903 msgctxt "section" msgid "master" msgstr "Allgemein" -#: ../src/iop/colorbalance.c:1934 +#: ../src/iop/colorbalance.c:1909 msgid "saturation correction before the color balance" msgstr "Sättigungskorrektur vor Farbanpassung" -#: ../src/iop/colorbalance.c:1940 +#: ../src/iop/colorbalance.c:1915 msgid "saturation correction after the color balance" msgstr "Sättigungskorrektur nach Farbanpassung" -#: ../src/iop/colorbalance.c:1945 +#: ../src/iop/colorbalance.c:1920 msgid "adjust to match a neutral tone" msgstr "anpassen an einen neutralen Ton" #. is set in _configure_slider_blocks -#: ../src/iop/colorbalance.c:2003 +#: ../src/iop/colorbalance.c:1978 msgid "click to cycle layout" msgstr "Klicken, um zyklisch zwischen Layouts zu wechseln." -#: ../src/iop/colorbalance.c:2037 +#: ../src/iop/colorbalance.c:2012 msgid "factor" msgstr "Faktor" -#: ../src/iop/colorbalance.c:2051 +#: ../src/iop/colorbalance.c:2026 msgid "select the hue" msgstr "Farbton auswählen" -#: ../src/iop/colorbalance.c:2063 +#: ../src/iop/colorbalance.c:2038 msgid "select the saturation" msgstr "Sättigung auswählen" -#: ../src/iop/colorbalance.c:2082 +#: ../src/iop/colorbalance.c:2057 msgid "factor of lift/offset" msgstr "Faktor für Lift/Offset" -#: ../src/iop/colorbalance.c:2083 +#: ../src/iop/colorbalance.c:2058 msgid "factor of red for lift/offset" msgstr "Rot-Faktor für Lift/Offset" -#: ../src/iop/colorbalance.c:2084 +#: ../src/iop/colorbalance.c:2059 msgid "factor of green for lift/offset" msgstr "Grün-Faktor für Lift/Offset" -#: ../src/iop/colorbalance.c:2085 +#: ../src/iop/colorbalance.c:2060 msgid "factor of blue for lift/offset" msgstr "Blau-Faktor für Lift/Offset" -#: ../src/iop/colorbalance.c:2088 +#: ../src/iop/colorbalance.c:2063 msgid "factor of gamma/power" msgstr "Faktor für Gamma/Stärke" -#: ../src/iop/colorbalance.c:2089 +#: ../src/iop/colorbalance.c:2064 msgid "factor of red for gamma/power" msgstr "Rot-Faktor für Gamma/Stärke" -#: ../src/iop/colorbalance.c:2090 +#: ../src/iop/colorbalance.c:2065 msgid "factor of green for gamma/power" msgstr "Grün-Faktor für Gamma/Stärke" -#: ../src/iop/colorbalance.c:2091 +#: ../src/iop/colorbalance.c:2066 msgid "factor of blue for gamma/power" msgstr "Blau-Faktor für Gamma/Stärke" -#: ../src/iop/colorbalance.c:2094 +#: ../src/iop/colorbalance.c:2069 msgid "factor of gain/slope" msgstr "Faktor für Gain/Steigung" -#: ../src/iop/colorbalance.c:2095 +#: ../src/iop/colorbalance.c:2070 msgid "factor of red for gain/slope" msgstr "Rot-Faktor für Gain/Steigung" -#: ../src/iop/colorbalance.c:2096 +#: ../src/iop/colorbalance.c:2071 msgid "factor of green for gain/slope" msgstr "Grün-Faktor für Gain/Steigung" -#: ../src/iop/colorbalance.c:2097 +#: ../src/iop/colorbalance.c:2072 msgid "factor of blue for gain/slope" msgstr "Blau-Faktor für Gain/Steigung" -#: ../src/iop/colorbalance.c:2106 +#: ../src/iop/colorbalance.c:2081 msgctxt "section" msgid "auto optimizers" msgstr "Autooptimierer" -#: ../src/iop/colorbalance.c:2111 +#: ../src/iop/colorbalance.c:2086 msgid "fit the whole histogram and center the average luma" -msgstr "gesamtes Histogramm anpassen und die durchschnittliche Luminanz zentrieren" +msgstr "" +"gesamtes Histogramm anpassen und die durchschnittliche Luminanz zentrieren" -#: ../src/iop/colorbalance.c:2117 +#: ../src/iop/colorbalance.c:2092 msgid "optimize the RGB curves to remove color casts" msgstr "optimiere die RGB-Kurven, um Farbstiche zu entfernen" @@ -13745,8 +15256,12 @@ msgstr "Farbbalance RGB" #: ../src/iop/colorbalancergb.c:178 -msgid "offset power slope|cdl|color grading|contrast|chroma_highlights|hue|vibrance|saturation" -msgstr "Schatten Mitteltöne Lichter|CDL|Color Grading|Kontrast|Chrominanz|Farbton|Lebendigkeit|Sättigung" +msgid "" +"offset power slope|cdl|color grading|contrast|chroma_highlights|hue|vibrance|" +"saturation" +msgstr "" +"Schatten Mitteltöne Lichter|CDL|Color Grading|Kontrast|Chrominanz|Farbton|" +"Lebendigkeit|Sättigung" #: ../src/iop/colorbalancergb.c:183 msgid "" @@ -13756,253 +15271,266 @@ "Werkzeuge zur Farbkorrektur mit Alphamasken zur Trennung von\n" "Schatten, Mitteltönen und Lichtern" -#: ../src/iop/colorbalancergb.c:443 +#: ../src/iop/colorbalancergb.c:536 msgid "add basic colorfulness (legacy)" msgstr "Basiseinstellung Farbigkeit (alt)" -#: ../src/iop/colorbalancergb.c:452 +#: ../src/iop/colorbalancergb.c:545 msgid "basic colorfulness: natural skin" msgstr "Basisfarbigkeit: natürliche Hauttöne" -#: ../src/iop/colorbalancergb.c:458 +#: ../src/iop/colorbalancergb.c:551 msgid "basic colorfulness: vibrant colors" msgstr "Basisfarbigkeit: lebendige Farben" -#: ../src/iop/colorbalancergb.c:464 +#: ../src/iop/colorbalancergb.c:557 msgid "basic colorfulness: standard" msgstr "Basisfarbigkeit: Standard" -#: ../src/iop/colorbalancergb.c:937 +#: ../src/iop/colorbalancergb.c:1022 msgid "colorbalance works only on RGB input" msgstr "Farbbalance funktioniert nur mit RGB-Input" -#: ../src/iop/colorbalancergb.c:1506 ../src/iop/colorzones.c:2164 ../src/iop/retouch.c:1884 -#: ../src/iop/toneequal.c:1966 +#: ../src/iop/colorbalancergb.c:1577 ../src/iop/colorzones.c:2394 +#: ../src/iop/retouch.c:2069 ../src/iop/toneequal.c:1996 msgid "cannot display masks when the blending mask is displayed" -msgstr "Kann Maske nicht anzeigen, solange die Maske zum Überblenden aktiviert ist" +msgstr "" +"Kann Maske nicht anzeigen, solange die Maske zum Überblenden aktiviert ist" #. Page master -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "master" msgstr "Allgemein" -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "global grading" msgstr "globales Color Grading" -#: ../src/iop/colorbalancergb.c:1880 +#: ../src/iop/colorbalancergb.c:1951 msgid "rotate all hues by an angle, at the same luminance" msgstr "rotiert alle Farbtöne um einen Winkel, bei gleicher Helligkeit" -#: ../src/iop/colorbalancergb.c:1886 +#: ../src/iop/colorbalancergb.c:1957 msgid "increase colorfulness mostly on low-chroma colors" msgstr "Erhöhung der Farbigkeit vor allem bei unbunten Farben" -#: ../src/iop/colorbalancergb.c:1892 +#: ../src/iop/colorbalancergb.c:1963 msgid "increase the contrast at constant chromaticity" msgstr "den Kontrast bei konstanter Chromatizität erhöhen" -#: ../src/iop/colorbalancergb.c:1894 +#: ../src/iop/colorbalancergb.c:1965 msgctxt "section" msgid "linear chroma grading" msgstr "Lineares Chrominanz Grading" -#: ../src/iop/colorbalancergb.c:1901 +#: ../src/iop/colorbalancergb.c:1972 msgid "increase colorfulness at same luminance globally" msgstr "Farbigkeit bei gleicher Leuchtdichte global erhöhen" -#: ../src/iop/colorbalancergb.c:1906 +#: ../src/iop/colorbalancergb.c:1977 msgid "increase colorfulness at same luminance mostly in shadows" msgstr "Erhöhung der Farbigkeit bei gleicher Leuchtdichte vor allem in Tiefen" -#: ../src/iop/colorbalancergb.c:1911 +#: ../src/iop/colorbalancergb.c:1982 msgid "increase colorfulness at same luminance mostly in mid-tones" -msgstr "Erhöhung der Farbigkeit bei gleicher Leuchtdichte vor allem in Mitteltönen" +msgstr "" +"Erhöhung der Farbigkeit bei gleicher Leuchtdichte vor allem in Mitteltönen" -#: ../src/iop/colorbalancergb.c:1916 +#: ../src/iop/colorbalancergb.c:1987 msgid "increase colorfulness at same luminance mostly in highlights" -msgstr "Erhöhung der Farbigkeit bei gleicher Leuchtdichte vor allem in Lichtern" +msgstr "" +"Erhöhung der Farbigkeit bei gleicher Leuchtdichte vor allem in Lichtern" -#: ../src/iop/colorbalancergb.c:1918 +#: ../src/iop/colorbalancergb.c:1989 msgctxt "section" msgid "perceptual saturation grading" msgstr "perzeptive Farbsättigung" -#: ../src/iop/colorbalancergb.c:1924 +#: ../src/iop/colorbalancergb.c:1995 msgid "add or remove saturation by an absolute amount" msgstr "Sättigung um einen absoluten Betrag erhöhen oder verringern" -#: ../src/iop/colorbalancergb.c:1929 ../src/iop/colorbalancergb.c:1934 ../src/iop/colorbalancergb.c:1939 -msgid "increase or decrease saturation proportionally to the original pixel saturation" +#: ../src/iop/colorbalancergb.c:2000 ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2010 +msgid "" +"increase or decrease saturation proportionally to the original pixel " +"saturation" msgstr "Sättigung proportional zum ursprünglichen Wert erhöhen oder verringern" -#: ../src/iop/colorbalancergb.c:1941 +#: ../src/iop/colorbalancergb.c:2012 msgctxt "section" msgid "perceptual brilliance grading" msgstr "perzeptive Farbbrillianz" -#: ../src/iop/colorbalancergb.c:1942 +#: ../src/iop/colorbalancergb.c:2013 msgid "brilliance" msgstr "Brillianz" -#: ../src/iop/colorbalancergb.c:1947 +#: ../src/iop/colorbalancergb.c:2018 msgid "add or remove brilliance by an absolute amount" msgstr "Farbbrillianz um einen absoluten Betrag erhöhen oder verringern" -#: ../src/iop/colorbalancergb.c:1952 ../src/iop/colorbalancergb.c:1957 ../src/iop/colorbalancergb.c:1962 -msgid "increase or decrease brilliance proportionally to the original pixel brilliance" +#: ../src/iop/colorbalancergb.c:2023 ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2033 +msgid "" +"increase or decrease brilliance proportionally to the original pixel " +"brilliance" msgstr "Brillianz proportional zum ursprünglichen Wert erhöhen oder verringern" #. Page 4-ways -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "4 ways" msgstr "4 HSL" -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "selective color grading" msgstr "selektives Color Grading" -#: ../src/iop/colorbalancergb.c:1967 +#: ../src/iop/colorbalancergb.c:2038 msgctxt "section" msgid "global offset" msgstr "Globale Anpassung" -#: ../src/iop/colorbalancergb.c:1974 +#: ../src/iop/colorbalancergb.c:2045 msgid "global luminance offset" msgstr "Globale Helligkeitsanpassung" -#: ../src/iop/colorbalancergb.c:1979 +#: ../src/iop/colorbalancergb.c:2050 msgid "hue of the global color offset" msgstr "Farbton der globalen Farbanpassung" -#: ../src/iop/colorbalancergb.c:1985 +#: ../src/iop/colorbalancergb.c:2056 msgid "chroma of the global color offset" msgstr "Chrominanz der globalen Farbanpassung" -#: ../src/iop/colorbalancergb.c:1987 +#: ../src/iop/colorbalancergb.c:2058 msgctxt "section" msgid "shadows lift" msgstr "Schatten - Lift" -#: ../src/iop/colorbalancergb.c:1988 +#: ../src/iop/colorbalancergb.c:2059 msgid "lift" msgstr "Lift" -#: ../src/iop/colorbalancergb.c:1994 +#: ../src/iop/colorbalancergb.c:2065 msgid "luminance gain in shadows" msgstr "Helligkeitsanpassung in den Schatten" -#: ../src/iop/colorbalancergb.c:1999 +#: ../src/iop/colorbalancergb.c:2070 msgid "hue of the color gain in shadows" msgstr "Farbton der Farbanpassung im Schatten" -#: ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2076 msgid "chroma of the color gain in shadows" msgstr "Chrominanz der Farbanpassung im Schatten" -#: ../src/iop/colorbalancergb.c:2007 +#: ../src/iop/colorbalancergb.c:2078 msgctxt "section" msgid "highlights gain" msgstr "Lichter - Gain" -#: ../src/iop/colorbalancergb.c:2008 +#: ../src/iop/colorbalancergb.c:2079 msgid "gain" msgstr "Gain" -#: ../src/iop/colorbalancergb.c:2014 +#: ../src/iop/colorbalancergb.c:2085 msgid "luminance gain in highlights" msgstr "Helligkeitsanpassung in den Lichter" -#: ../src/iop/colorbalancergb.c:2019 +#: ../src/iop/colorbalancergb.c:2090 msgid "hue of the color gain in highlights" msgstr "Farbton der Farbanpassung in den Lichtern" -#: ../src/iop/colorbalancergb.c:2025 +#: ../src/iop/colorbalancergb.c:2096 msgid "chroma of the color gain in highlights" msgstr "Chrominanz der Farbanpassung in den Lichtern" -#: ../src/iop/colorbalancergb.c:2027 +#: ../src/iop/colorbalancergb.c:2098 msgctxt "section" msgid "power" msgstr "Mitten - Power" -#: ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2099 msgid "power" msgstr "Mitten - Power" -#: ../src/iop/colorbalancergb.c:2034 +#: ../src/iop/colorbalancergb.c:2105 msgid "luminance exponent in mid-tones" msgstr "Luminanzexponent in den Mitteltönen" -#: ../src/iop/colorbalancergb.c:2039 +#: ../src/iop/colorbalancergb.c:2110 msgid "hue of the color exponent in mid-tones" msgstr "Farbton der Farbanpassung in den Mitteltönen" -#: ../src/iop/colorbalancergb.c:2045 +#: ../src/iop/colorbalancergb.c:2116 msgid "chroma of the color exponent in mid-tones" msgstr "Chrominanz der Farbanpassung in den Mitteltönen" #. Page masks -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "masks" msgstr "Maskierung" -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "isolate luminances" msgstr "Helligkeitswerte isolieren" -#: ../src/iop/colorbalancergb.c:2052 +#: ../src/iop/colorbalancergb.c:2123 msgid "choose in which uniform color space the saturation is computed" msgstr "wählen, in welchem Farbraum die Sättigung berechnet werden soll" -#: ../src/iop/colorbalancergb.c:2054 +#: ../src/iop/colorbalancergb.c:2125 msgctxt "section" msgid "luminance ranges" msgstr "Verlauf der Luminanzmasken" -#: ../src/iop/colorbalancergb.c:2065 +#: ../src/iop/colorbalancergb.c:2136 msgid "weight of the shadows over the whole tonal range" msgstr "Gewichtung der Schatten über den Tonwertbereich" -#: ../src/iop/colorbalancergb.c:2073 +#: ../src/iop/colorbalancergb.c:2144 msgid "position of the middle-gray reference for masking" msgstr "Position der Mittelgrau Referenz für die Maskierung" -#: ../src/iop/colorbalancergb.c:2081 +#: ../src/iop/colorbalancergb.c:2152 msgid "weights of highlights over the whole tonal range" msgstr "Gewichtung der Lichter über den Tonwertbereich" -#: ../src/iop/colorbalancergb.c:2086 +#: ../src/iop/colorbalancergb.c:2157 msgctxt "section" msgid "threshold" msgstr "Schwellwert" -#: ../src/iop/colorbalancergb.c:2091 +#: ../src/iop/colorbalancergb.c:2162 msgid "peak white luminance value used to normalize the power function" -msgstr "Maximalwert der Weißluminanz, der zur Normalisierung der Potenzfunktion verwendet wird" +msgstr "" +"Maximalwert der Weißluminanz, der zur Normalisierung der Potenzfunktion " +"verwendet wird" -#: ../src/iop/colorbalancergb.c:2097 +#: ../src/iop/colorbalancergb.c:2168 msgid "peak gray luminance value used to normalize the power function" -msgstr "Maximalwert der Grauluminanz, der zur Normalisierung der Potenzfunktion verwendet wird" +msgstr "" +"Maximalwert der Grauluminanz, der zur Normalisierung der Potenzfunktion " +"verwendet wird" -#: ../src/iop/colorbalancergb.c:2099 +#: ../src/iop/colorbalancergb.c:2170 msgctxt "section" msgid "mask preview settings" msgstr "Maskenvorschaueinstellungen" -#: ../src/iop/colorbalancergb.c:2102 +#: ../src/iop/colorbalancergb.c:2173 msgid "checkerboard color 1" msgstr "Schachbrettmuster Farbe 1" -#: ../src/iop/colorbalancergb.c:2105 ../src/iop/colorbalancergb.c:2114 +#: ../src/iop/colorbalancergb.c:2176 ../src/iop/colorbalancergb.c:2185 msgid "select color of the checkerboard from a swatch" msgstr "Farbe des Schachbrettmusters auswählen" -#: ../src/iop/colorbalancergb.c:2111 +#: ../src/iop/colorbalancergb.c:2182 msgid "checkerboard color 2" msgstr "Schachbrettmuster Farbe 2" -#: ../src/iop/colorbalancergb.c:2121 +#: ../src/iop/colorbalancergb.c:2192 msgid "checkerboard size" msgstr "Schachbrettmustergröße" @@ -14018,10 +15546,12 @@ msgid "perform color space corrections and apply looks" msgstr "Farbraumkorrekturen basierend auf Quell-/Zielwerten" -#: ../src/iop/colorchecker.c:131 ../src/iop/colorchecker.c:133 ../src/iop/colorize.c:106 -#: ../src/iop/colormapping.c:154 ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:136 -#: ../src/iop/colorzones.c:146 ../src/iop/defringe.c:83 ../src/iop/levels.c:139 ../src/iop/monochrome.c:99 -#: ../src/iop/shadhi.c:198 ../src/iop/tonecurve.c:212 ../src/iop/vibrance.c:96 +#: ../src/iop/colorchecker.c:131 ../src/iop/colorchecker.c:133 +#: ../src/iop/colorize.c:99 ../src/iop/colormapping.c:154 +#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:121 +#: ../src/iop/colorzones.c:147 ../src/iop/defringe.c:83 ../src/iop/levels.c:141 +#: ../src/iop/monochrome.c:101 ../src/iop/shadhi.c:145 +#: ../src/iop/tonecurve.c:185 ../src/iop/vibrance.c:98 msgid "linear or non-linear, Lab, display-referred" msgstr "linear oder nichtlinear, Lab, anzeigebezogen" @@ -14029,40 +15559,40 @@ msgid "defined by profile, Lab" msgstr "durch Profil vorgegeben, Lab" -#: ../src/iop/colorchecker.c:294 +#: ../src/iop/colorchecker.c:308 msgid "it8 skin tones" msgstr "IT8 Hautfarben" -#: ../src/iop/colorchecker.c:310 +#: ../src/iop/colorchecker.c:324 msgid "Helmholtz/Kohlrausch monochrome" msgstr "Helmholtz/Kohlrausch monochrom" -#: ../src/iop/colorchecker.c:327 +#: ../src/iop/colorchecker.c:341 msgid "Fuji Astia emulation" msgstr "Fuji Astia Emulation" -#: ../src/iop/colorchecker.c:341 +#: ../src/iop/colorchecker.c:355 msgid "Fuji Classic Chrome emulation" msgstr "Fuji Classic Chrome Emulation" -#: ../src/iop/colorchecker.c:355 +#: ../src/iop/colorchecker.c:369 msgid "Fuji Monochrome emulation" msgstr "Fuji Monochrome Emulation" -#: ../src/iop/colorchecker.c:369 +#: ../src/iop/colorchecker.c:383 msgid "Fuji Provia emulation" msgstr "Fuji Provia Emulation" -#: ../src/iop/colorchecker.c:383 +#: ../src/iop/colorchecker.c:397 msgid "Fuji Velvia emulation" msgstr "Fuji Velvia Emulation" -#: ../src/iop/colorchecker.c:841 ../src/iop/colorchecker.c:1436 +#: ../src/iop/colorchecker.c:846 ../src/iop/colorchecker.c:1441 #, c-format msgid "patch #%d" msgstr "Feld #%d" -#: ../src/iop/colorchecker.c:1283 +#: ../src/iop/colorchecker.c:1288 #, c-format msgid "" "(%2.2f %2.2f %2.2f)\n" @@ -14077,17 +15607,18 @@ "Klick zum Auswählen. \n" "Doppelklick zum Zurücksetzen. \n" "Rechtsklick zum Löschen des Felds. \n" -"Shift+Taste drücken während Farbwahl mittels Pipette, um die Farbe des Feldes zu ersetzen." +"Shift+Taste drücken während Farbwahl mittels Pipette, um die Farbe des " +"Feldes zu ersetzen." -#: ../src/iop/colorchecker.c:1431 +#: ../src/iop/colorchecker.c:1436 msgid "patch" msgstr "Feld" -#: ../src/iop/colorchecker.c:1432 +#: ../src/iop/colorchecker.c:1437 msgid "color checker patch" msgstr "Farbfeld" -#: ../src/iop/colorchecker.c:1446 +#: ../src/iop/colorchecker.c:1451 msgid "" "adjust target color Lab 'L' channel\n" "lower values darken target color while higher brighten it" @@ -14095,45 +15626,51 @@ "Zielfarbe einstellen: Lab „L“ Kanal\n" "niedrigere Werte verdunkeln die Zielfarbe, höhere hellen sie auf" -#: ../src/iop/colorchecker.c:1454 +#: ../src/iop/colorchecker.c:1459 msgid "" "adjust target color Lab 'a' channel\n" -"lower values shift target color towards greens while higher shift towards magentas" +"lower values shift target color towards greens while higher shift towards " +"magentas" msgstr "" "Zielfarbe einstellen: Lab „a“ Kanal\n" -"niedrigere Werte verschieben die Zielfarbe in Richtung Grün, höhere in Richtung Magenta" +"niedrigere Werte verschieben die Zielfarbe in Richtung Grün, höhere in " +"Richtung Magenta" -#: ../src/iop/colorchecker.c:1457 +#: ../src/iop/colorchecker.c:1462 msgid "green-magenta offset" msgstr "Grün-Magenta Kompensation" -#: ../src/iop/colorchecker.c:1466 +#: ../src/iop/colorchecker.c:1471 msgid "" "adjust target color Lab 'b' channel\n" -"lower values shift target color towards blues while higher shift towards yellows" +"lower values shift target color towards blues while higher shift towards " +"yellows" msgstr "" "Zielfarbe einstellen: Lab „b“ Kanal\n" -"niedrigere Werte verschieben die Zielfarbe in Richtung Blau, höhere in Richtung Gelb" +"niedrigere Werte verschieben die Zielfarbe in Richtung Blau, höhere in " +"Richtung Gelb" -#: ../src/iop/colorchecker.c:1469 +#: ../src/iop/colorchecker.c:1474 msgid "blue-yellow offset" msgstr "Blau-Gelb Kompensation" -#: ../src/iop/colorchecker.c:1478 +#: ../src/iop/colorchecker.c:1483 msgid "" "adjust target color saturation\n" "adjusts 'a' and 'b' channels of target color in Lab space simultaneously\n" -"lower values scale towards lower saturation while higher scale towards higher saturation" +"lower values scale towards lower saturation while higher scale towards " +"higher saturation" msgstr "" "Zielfarbe einstellen: Sättigung\n" "passt die Kanäle „a“ und „b“ der Zielfarbe im Lab-Raum gleichzeitig an\n" -"niedrigere Werte führen zu geringerer Sättigung, höhere Werte zu höherer Sättigung" +"niedrigere Werte führen zu geringerer Sättigung, höhere Werte zu höherer " +"Sättigung" -#: ../src/iop/colorchecker.c:1487 +#: ../src/iop/colorchecker.c:1492 msgid "target color" msgstr "Zielfarbe" -#: ../src/iop/colorchecker.c:1490 +#: ../src/iop/colorchecker.c:1495 msgid "" "control target color of the patches\n" "relative - target color is relative from the patch original color\n" @@ -14143,35 +15680,37 @@ "relativ - Zielfarbe ist relativ zur Originalfarbe des Feldes\n" "absolut - Zielfarbe ist der absolute Lab-Wert" -#: ../src/iop/colorchecker.c:1494 +#: ../src/iop/colorchecker.c:1499 msgid "absolute" msgstr "absolut" -#: ../src/iop/colorcontrast.c:85 +#: ../src/iop/colorcontrast.c:77 msgid "color contrast" msgstr "Farbkontrast" -#: ../src/iop/colorcontrast.c:95 +#: ../src/iop/colorcontrast.c:87 msgid "" "increase saturation and separation between\n" "opposite colors" -msgstr "Kontrast- und Farbtrennung zwischen Grün/Magenta und Blau/Gelb im Lab-Farbraum" +msgstr "" +"Kontrast- und Farbtrennung zwischen Grün/Magenta und Blau/Gelb im Lab-" +"Farbraum" -#: ../src/iop/colorcontrast.c:324 +#: ../src/iop/colorcontrast.c:330 msgid "" "steepness of the a* curve in Lab\n" "lower values desaturate greens and magenta while higher saturate them" msgstr "" -"Steilheit der a*-Kurve im Lab-Farbraum. Werte kleiner 1 entsättigen Grün- und Magentatöne, während Werte größer 1 " -"diese Farbtöne stärker sättigen." +"Steilheit der a*-Kurve im Lab-Farbraum. Werte kleiner 1 entsättigen Grün- " +"und Magentatöne, während Werte größer 1 diese Farbtöne stärker sättigen." -#: ../src/iop/colorcontrast.c:331 +#: ../src/iop/colorcontrast.c:337 msgid "" "steepness of the b* curve in Lab\n" "lower values desaturate blues and yellows while higher saturate them" msgstr "" -"Steilheit der b*-Kurve im Lab-Farbraum. Werte kleiner 1 entsättigen Blau- und Gelbtöne, während Werte größer 1 " -"diese Farbtöne stärker sättigen." +"Steilheit der b*-Kurve im Lab-Farbraum. Werte kleiner 1 entsättigen Blau- " +"und Gelbtöne, während Werte größer 1 diese Farbtöne stärker sättigen." #: ../src/iop/colorcorrection.c:71 msgid "color correction" @@ -14181,26 +15720,28 @@ msgid "correct white balance selectively for blacks and whites" msgstr "setzt Farbton für Schatten und Lichter" -#: ../src/iop/colorcorrection.c:107 +#: ../src/iop/colorcorrection.c:109 msgid "warm tone" msgstr "warme Farbe" -#: ../src/iop/colorcorrection.c:115 +#: ../src/iop/colorcorrection.c:117 msgid "warming filter" msgstr "wärmender Filter" -#: ../src/iop/colorcorrection.c:123 +#: ../src/iop/colorcorrection.c:125 msgid "cooling filter" msgstr "kühlender Filter" -#: ../src/iop/colorcorrection.c:257 +#: ../src/iop/colorcorrection.c:250 msgid "" -"drag the line for split-toning. bright means highlights, dark means shadows. use mouse wheel to change saturation." +"drag the line for split-toning. bright means highlights, dark means shadows. " +"use mouse wheel to change saturation." msgstr "" -"Linie für Teiltonung ziehen. Helles Ende bestimmt die Tonung der Spitzlichter, das dunkle die Tonung der Schatten. " -"Die Sättigung kann mit dem Mausrad angepasst werden." +"Linie für Teiltonung ziehen. Helles Ende bestimmt die Tonung der " +"Spitzlichter, das dunkle die Tonung der Schatten. Die Sättigung kann mit dem " +"Mausrad angepasst werden." -#: ../src/iop/colorcorrection.c:276 +#: ../src/iop/colorcorrection.c:269 msgid "set the global saturation" msgstr "Globale Sättigung setzen" @@ -14216,7 +15757,8 @@ "Konvertiert RGB Eingangswerte in den Arbeitsfarbraum\n" "basierend auf Farbprofilen " -#: ../src/iop/colorin.c:133 ../src/iop/colorout.c:89 ../src/iop/demosaic.c:293 ../src/iop/rawprepare.c:158 +#: ../src/iop/colorin.c:133 ../src/iop/colorout.c:89 ../src/iop/demosaic.c:293 +#: ../src/iop/rawprepare.c:174 msgid "mandatory" msgstr "obligatorisch" @@ -14224,29 +15766,34 @@ msgid "defined by profile" msgstr "durch Profil vorgegeben" -#: ../src/iop/colorin.c:542 +#: ../src/iop/colorin.c:582 #, c-format -msgid "can't extract matrix from colorspace `%s', it will be replaced by Rec2020 RGB!" -msgstr "Kann Matrix nicht aus dem Farbraum „%s” extrahieren, wird durch Rec2020 RGB ersetzt!" +msgid "" +"can't extract matrix from colorspace `%s', it will be replaced by Rec2020 " +"RGB!" +msgstr "" +"Kann Matrix nicht aus dem Farbraum „%s” extrahieren, wird durch Rec2020 RGB " +"ersetzt!" -#: ../src/iop/colorin.c:1424 +#: ../src/iop/colorin.c:1362 #, c-format msgid "`%s' color matrix not found!" msgstr "„%s” Farbmatrix nicht gefunden!" -#: ../src/iop/colorin.c:1463 +#: ../src/iop/colorin.c:1401 msgid "input profile could not be generated!" msgstr "Eingabeprofile konnte nicht erzeugt werden!" -#: ../src/iop/colorin.c:1560 +#: ../src/iop/colorin.c:1498 msgid "unsupported input profile has been replaced by linear Rec709 RGB!" -msgstr "Nicht unterstütztes Eingabeprofil wurde durch lineares Rec709-RGB ersetzt!" +msgstr "" +"Nicht unterstütztes Eingabeprofil wurde durch lineares Rec709-RGB ersetzt!" -#: ../src/iop/colorin.c:1844 +#: ../src/iop/colorin.c:1782 msgid "external ICC profiles" msgstr "externe ICC Profile" -#: ../src/iop/colorin.c:1889 +#: ../src/iop/colorin.c:1827 #, c-format msgid "" "embedded ICC profile properties:\n" @@ -14269,43 +15816,43 @@ "Copyright: <b>%s</b>\n" "\n" -#: ../src/iop/colorin.c:2084 +#: ../src/iop/colorin.c:2022 msgid "input profile" msgstr "Eingabeprofil" -#: ../src/iop/colorin.c:2088 +#: ../src/iop/colorin.c:2026 msgid "working profile" msgstr "Arbeitsprofil" -#: ../src/iop/colorin.c:2097 +#: ../src/iop/colorin.c:2035 msgid "working ICC profiles" msgstr "Arbeits-ICC Profil" -#: ../src/iop/colorin.c:2109 +#: ../src/iop/colorin.c:2047 msgid "confine Lab values to gamut of RGB color space" msgstr "Lab-Werte auf den Gamut von RGB-Farbräumen begrenzen" -#: ../src/iop/colorize.c:84 +#: ../src/iop/colorize.c:75 msgid "colorize" msgstr "Einfärben" -#: ../src/iop/colorize.c:104 +#: ../src/iop/colorize.c:97 msgid "overlay a solid color on the image" msgstr "Einfärben des Bildes" -#: ../src/iop/colorize.c:341 ../src/iop/splittoning.c:485 +#: ../src/iop/colorize.c:354 ../src/iop/splittoning.c:481 msgid "select the hue tone" msgstr "Farbton wählen" -#: ../src/iop/colorize.c:347 +#: ../src/iop/colorize.c:360 msgid "select the saturation shadow tone" msgstr "Sättigung für die Schatten wählen" -#: ../src/iop/colorize.c:351 +#: ../src/iop/colorize.c:364 msgid "lightness of color" msgstr "Helligkeit der Farbe" -#: ../src/iop/colorize.c:355 +#: ../src/iop/colorize.c:368 msgid "mix value of source lightness" msgstr "Mischanteil der Helligkeit des Ursprungsbildes" @@ -14314,49 +15861,52 @@ msgstr "Farbtransfer" #: ../src/iop/colormapping.c:152 -msgid "transfer a color palette and tonal repartition from one image to another" +msgid "" +"transfer a color palette and tonal repartition from one image to another" msgstr "" -"Übertragen von Aussehen und Wirkung eines Bildes auf ein anderes durch Abbildung der Farben des Quell- auf Farben " -"des Zielbereichs." +"Übertragen von Aussehen und Wirkung eines Bildes auf ein anderes durch " +"Abbildung der Farben des Quell- auf Farben des Zielbereichs." -#: ../src/iop/colormapping.c:1030 +#: ../src/iop/colormapping.c:1019 msgid "source clusters:" msgstr "Quellbereiche:" -#: ../src/iop/colormapping.c:1036 +#: ../src/iop/colormapping.c:1025 msgid "target clusters:" msgstr "Zielbereiche:" -#: ../src/iop/colormapping.c:1045 +#: ../src/iop/colormapping.c:1034 msgid "acquire as source" msgstr "als Quelle berechnen" -#: ../src/iop/colormapping.c:1049 +#: ../src/iop/colormapping.c:1038 msgid "analyze this image as a source image" msgstr "dieses Bild als Quell-Bild analysieren" -#: ../src/iop/colormapping.c:1051 +#: ../src/iop/colormapping.c:1040 msgid "acquire as target" msgstr "als Ziel berechnen" -#: ../src/iop/colormapping.c:1055 +#: ../src/iop/colormapping.c:1044 msgid "analyze this image as a target image" msgstr "dieses Bild als Ziel-Bild analysieren" -#: ../src/iop/colormapping.c:1058 +#: ../src/iop/colormapping.c:1047 msgid "number of clusters to find in image. value change resets all clusters" msgstr "" "Anzahl zusammenhängender Bereiche, die im Bild gesucht werden sollen.\n" "Eine Änderung des Wertes setzt alle Bereiche zurück" # wtf? -#: ../src/iop/colormapping.c:1061 -msgid "how clusters are mapped. low values: based on color proximity, high values: based on color dominance" +#: ../src/iop/colormapping.c:1050 +msgid "" +"how clusters are mapped. low values: based on color proximity, high values: " +"based on color dominance" msgstr "" "Art der Abbildung von Bereichen. \n" "Niedrige Werte: nach Farbähnlichkeit, hohe Werte: nach Farb-Dominanz" -#: ../src/iop/colormapping.c:1066 +#: ../src/iop/colormapping.c:1055 msgid "level of histogram equalization" msgstr "Grad der Histogramm-Angleichung" @@ -14376,105 +15926,112 @@ msgid "non-linear, RGB or Lab, display-referred" msgstr "nichtlinear, RGB oder Lab, anzeigebezogen" -#: ../src/iop/colorout.c:679 +#: ../src/iop/colorout.c:695 msgid "missing output profile has been replaced by sRGB!" msgstr "fehlendes Ausgabeprofil wurde durch sRGB ersetzt!" -#: ../src/iop/colorout.c:701 +#: ../src/iop/colorout.c:717 msgid "missing softproof profile has been replaced by sRGB!" msgstr "fehlendes Softproof-Profil wurde durch sRGB ersetzt!" -#: ../src/iop/colorout.c:744 +#: ../src/iop/colorout.c:760 msgid "unsupported output profile has been replaced by sRGB!" msgstr "nicht unterstütztes Ausgabeprofil wurde durch sRGB ersetzt!" -#: ../src/iop/colorout.c:869 +#: ../src/iop/colorout.c:885 msgid "output intent" msgstr "Ausgabevorsatz" -#: ../src/iop/colorout.c:870 +#: ../src/iop/colorout.c:886 msgid "rendering intent" msgstr "Wiedergabeabsicht" -#: ../src/iop/colorout.c:872 ../src/libs/export.c:1246 ../src/libs/print_settings.c:2475 -#: ../src/libs/print_settings.c:2824 ../src/views/darkroom.c:2518 ../src/views/lighttable.c:1176 +#: ../src/iop/colorout.c:888 ../src/libs/export.c:1358 +#: ../src/libs/print_settings.c:2475 ../src/libs/print_settings.c:2824 +#: ../src/views/darkroom.c:2359 ../src/views/lighttable.c:1176 msgid "perceptual" msgstr "Wahrnehmung" -#: ../src/iop/colorout.c:873 ../src/libs/export.c:1247 ../src/libs/print_settings.c:2476 -#: ../src/libs/print_settings.c:2825 ../src/views/darkroom.c:2519 ../src/views/lighttable.c:1177 +#: ../src/iop/colorout.c:889 ../src/libs/export.c:1359 +#: ../src/libs/print_settings.c:2476 ../src/libs/print_settings.c:2825 +#: ../src/views/darkroom.c:2360 ../src/views/lighttable.c:1177 msgid "relative colorimetric" msgstr "relativ Farbmetrisch" -#: ../src/iop/colorout.c:874 ../src/libs/export.c:1248 ../src/libs/print_settings.c:2477 -#: ../src/libs/print_settings.c:2826 ../src/views/darkroom.c:2520 ../src/views/lighttable.c:1178 +#: ../src/iop/colorout.c:890 ../src/libs/export.c:1360 +#: ../src/libs/print_settings.c:2477 ../src/libs/print_settings.c:2826 +#: ../src/views/darkroom.c:2361 ../src/views/lighttable.c:1178 msgctxt "rendering intent" msgid "saturation" msgstr "Sättigung" -#: ../src/iop/colorout.c:875 ../src/libs/export.c:1249 ../src/libs/print_settings.c:2478 -#: ../src/libs/print_settings.c:2827 ../src/views/darkroom.c:2521 ../src/views/lighttable.c:1179 +#: ../src/iop/colorout.c:891 ../src/libs/export.c:1361 +#: ../src/libs/print_settings.c:2478 ../src/libs/print_settings.c:2827 +#: ../src/views/darkroom.c:2362 ../src/views/lighttable.c:1179 msgid "absolute colorimetric" msgstr "absolut Farbmetrisch" -#: ../src/iop/colorout.c:893 +#: ../src/iop/colorout.c:909 msgid "export ICC profiles" msgstr "Export ICC Profil" -#: ../src/iop/colorreconstruction.c:129 +#: ../src/iop/colorreconstruction.c:114 msgid "color reconstruction" msgstr "Farbrekonstruktion" -#: ../src/iop/colorreconstruction.c:134 +#: ../src/iop/colorreconstruction.c:119 msgid "recover clipped highlights by propagating surrounding colors" msgstr "Farbrekonstruktion für Spitzlichter anhand der Umgebung" -#: ../src/iop/colorreconstruction.c:628 ../src/iop/colorreconstruction.c:1040 ../src/iop/globaltonemap.c:193 -#: ../src/iop/globaltonemap.c:362 ../src/iop/hazeremoval.c:553 ../src/iop/hazeremoval.c:788 ../src/iop/levels.c:336 +#: ../src/iop/colorreconstruction.c:647 ../src/iop/colorreconstruction.c:1053 +#: ../src/iop/globaltonemap.c:227 ../src/iop/globaltonemap.c:396 +#: ../src/iop/hazeremoval.c:541 ../src/iop/hazeremoval.c:776 +#: ../src/iop/levels.c:358 msgid "inconsistent output" msgstr "inkonsistente Ausgabe" -#: ../src/iop/colorreconstruction.c:666 +#: ../src/iop/colorreconstruction.c:685 msgid "module `color reconstruction' failed" msgstr "Modul „Farbrekonstruktion” fehlgeschlagen" -#: ../src/iop/colorreconstruction.c:1237 +#: ../src/iop/colorreconstruction.c:1246 msgid "spatial" msgstr "spatial" -#: ../src/iop/colorreconstruction.c:1238 +#: ../src/iop/colorreconstruction.c:1247 msgid "range" msgstr "range" -#: ../src/iop/colorreconstruction.c:1239 +#: ../src/iop/colorreconstruction.c:1248 msgid "precedence" msgstr "Priorität" -#: ../src/iop/colorreconstruction.c:1255 +#: ../src/iop/colorreconstruction.c:1264 msgid "pixels with lightness values above this threshold are corrected" msgstr "Pixel mit einer Helligkeit über diesem Schwellwert werden korrigiert" -#: ../src/iop/colorreconstruction.c:1256 +#: ../src/iop/colorreconstruction.c:1265 msgid "how far to look for replacement colors in spatial dimensions" msgstr "wie weit soll im räumlichen Umfeld nach Farben gesucht werden" -#: ../src/iop/colorreconstruction.c:1257 +#: ../src/iop/colorreconstruction.c:1266 msgid "how far to look for replacement colors in the luminance dimension" msgstr "wie weit darf sich eine Farbe von der Helligkeit her unterscheiden" -#: ../src/iop/colorreconstruction.c:1258 +#: ../src/iop/colorreconstruction.c:1267 msgid "if and how to give precedence to specific replacement colors" msgstr "ob und wie Ersatzfarben bevorzugt werden" -#: ../src/iop/colorreconstruction.c:1259 +#: ../src/iop/colorreconstruction.c:1268 msgid "the hue tone which should be given precedence over other hue tones" msgstr "der Farbton, der gegenüber anderen bevorzugt werden soll" -#: ../src/iop/colorreconstruction.c:1261 ../src/iop/demosaic.c:1277 ../src/iop/highlights.c:1168 +#: ../src/iop/colorreconstruction.c:1270 ../src/iop/demosaic.c:1324 +#: ../src/iop/highlights.c:1258 msgid "not applicable" msgstr "nicht anwendbar" -#: ../src/iop/colorreconstruction.c:1262 +#: ../src/iop/colorreconstruction.c:1271 msgid "no highlights reconstruction for monochrome images" msgstr "keine Spitzlichtrekonstruktion bei monochromen Bildern" @@ -14486,7 +16043,7 @@ msgid "this module is deprecated. better use color mapping module instead." msgstr "veraltetes Modul; abgelöst durch Color Mapping" -#: ../src/iop/colortransfer.c:439 +#: ../src/iop/colortransfer.c:441 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -14496,43 +16053,43 @@ "und ist nur noch hier, damit Du es abschalten\n" "und durch das neue Farbtransfer ersetzen kannst." -#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2332 +#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2573 msgid "color zones" msgstr "Farbbereiche" -#: ../src/iop/colorzones.c:144 +#: ../src/iop/colorzones.c:145 msgid "selectively shift hues, chroma and lightness of pixels" msgstr "Selektive Anpassung von Farbton, Chrominanz, Helligkeit" -#: ../src/iop/colorzones.c:606 +#: ../src/iop/colorzones.c:684 msgid "B&W: with red" msgstr "S/W: mit Rot" -#: ../src/iop/colorzones.c:629 +#: ../src/iop/colorzones.c:707 msgid "B&W: with skin tones" msgstr "S/W: mit Hautfarben" -#: ../src/iop/colorzones.c:652 +#: ../src/iop/colorzones.c:732 msgid "polarizing filter" msgstr "Polarisationsfilter" -#: ../src/iop/colorzones.c:673 +#: ../src/iop/colorzones.c:753 msgid "natural skin tones" msgstr "natürliche Hautfarben" -#: ../src/iop/colorzones.c:704 +#: ../src/iop/colorzones.c:784 msgid "B&W: film" msgstr "S/W: Film" -#: ../src/iop/colorzones.c:724 +#: ../src/iop/colorzones.c:804 msgid "HSL base setting" msgstr "HSL-Grundeinstellung" -#: ../src/iop/colorzones.c:2264 +#: ../src/iop/colorzones.c:2500 msgid "orange" msgstr "Orange" -#: ../src/iop/colorzones.c:2421 ../src/iop/rgbcurve.c:1375 +#: ../src/iop/colorzones.c:2673 ../src/iop/rgbcurve.c:1375 msgid "" "create a curve based on an area from the image\n" "drag to create a flat curve\n" @@ -14544,79 +16101,93 @@ "Strg+Auswahl erstellt eine positive Kurve. \n" "Shift+Auswahlerstellt eine negative Kurve." -#: ../src/iop/colorzones.c:2425 ../src/iop/rgbcurve.c:1379 +#: ../src/iop/colorzones.c:2677 ../src/iop/rgbcurve.c:1379 msgid "create curve" msgstr "Kurve erstellen" #. edit by area -#: ../src/iop/colorzones.c:2442 +#: ../src/iop/colorzones.c:2696 msgid "edit by area" msgstr "Nach Bereich bearbeiten" -#: ../src/iop/colorzones.c:2447 +#: ../src/iop/colorzones.c:2702 msgid "edit the curve nodes by area" msgstr "Kurvenknoten nach Bereich bearbeiten" -#: ../src/iop/colorzones.c:2454 +#: ../src/iop/colorzones.c:2710 msgid "display selection" msgstr "Auswahl anzeigen" -#: ../src/iop/colorzones.c:2463 +#: ../src/iop/colorzones.c:2722 msgid "choose selection criterion, will be the abscissa in the graph" msgstr "Auswahlkriterium, wird auf der x-Achse des Graphen angezeigt." -#: ../src/iop/colorzones.c:2466 +#: ../src/iop/colorzones.c:2725 msgid "choose between a smoother or stronger effect" msgstr "zwischen einem weicherem oder stärkeren Effekt wählen" -#: ../src/iop/colorzones.c:2494 ../src/iop/rgbcurve.c:1410 ../src/iop/tonecurve.c:1172 +#: ../src/iop/colorzones.c:2762 ../src/iop/rgbcurve.c:1410 +#: ../src/iop/tonecurve.c:1194 msgid "interpolation method" msgstr "Interpolationsverfahren" -#: ../src/iop/colorzones.c:2496 ../src/iop/rgbcurve.c:1412 ../src/iop/tonecurve.c:1174 +#: ../src/iop/colorzones.c:2764 ../src/iop/rgbcurve.c:1412 +#: ../src/iop/tonecurve.c:1196 msgid "centripetal spline" msgstr "zentripetaler Spline" -#: ../src/iop/colorzones.c:2497 ../src/iop/rgbcurve.c:1413 ../src/iop/tonecurve.c:1175 +#: ../src/iop/colorzones.c:2765 ../src/iop/rgbcurve.c:1413 +#: ../src/iop/tonecurve.c:1197 msgid "monotonic spline" msgstr "monotoner Spline" # Original English text is not meaningful in the context of the color zones module. -#: ../src/iop/colorzones.c:2500 ../src/iop/rgbcurve.c:1416 ../src/iop/tonecurve.c:1177 +#: ../src/iop/colorzones.c:2768 ../src/iop/rgbcurve.c:1416 +#: ../src/iop/tonecurve.c:1199 msgid "" "change this method if you see oscillations or cusps in the curve\n" -"- cubic spline is better to produce smooth curves but oscillates when nodes are too close\n" -"- centripetal is better to avoids cusps and oscillations with close nodes but is less smooth\n" -"- monotonic is better for accuracy of pure analytical functions (log, gamma, exp)" -msgstr "" -"Ändere die Interpolationsmethode, wenn Du Schwingungen oder Spitzen in der Kurve siehst.\n" -"- „kubischer Spline” ist besser geeignet, um glatte Kurven zu erzeugen, oszilliert jedoch, wenn die Knoten zu " -"dicht liegen.\n" -"- „zentripetaler Spline” ist besser geeignet, um Spitzen und Schwingungen bei engen Knoten zu vermeiden, ist aber " -"weniger glatt.\n" -"- „monotoner Spline“ garantiert einen monotonen Verlauf zwischen benachbarten Knoten und vermeidet so jedes " -"Überschwingen der Interpolationskurve." +"- cubic spline is better to produce smooth curves but oscillates when nodes " +"are too close\n" +"- centripetal is better to avoids cusps and oscillations with close nodes " +"but is less smooth\n" +"- monotonic is better for accuracy of pure analytical functions (log, gamma, " +"exp)" +msgstr "" +"Ändere die Interpolationsmethode, wenn Du Schwingungen oder Spitzen in der " +"Kurve siehst.\n" +"- „kubischer Spline” ist besser geeignet, um glatte Kurven zu erzeugen, " +"oszilliert jedoch, wenn die Knoten zu dicht liegen.\n" +"- „zentripetaler Spline” ist besser geeignet, um Spitzen und Schwingungen " +"bei engen Knoten zu vermeiden, ist aber weniger glatt.\n" +"- „monotoner Spline“ garantiert einen monotonen Verlauf zwischen " +"benachbarten Knoten und vermeidet so jedes Überschwingen der " +"Interpolationskurve." -#: ../src/iop/crop.c:132 +#: ../src/iop/crop.c:122 msgid "crop" msgstr "Zuschneiden" -#: ../src/iop/crop.c:137 +#: ../src/iop/crop.c:127 msgid "reframe|distortion" msgstr "Zuschneiden|Verzeichnung" -#: ../src/iop/crop.c:143 +#: ../src/iop/crop.c:133 msgid "change the framing" msgstr "Beschnitt verändern" -#: ../src/iop/crop.c:1667 +#: ../src/iop/crop.c:1651 msgid "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag" -msgstr "<b>Größe ändern</b>: ziehen, <b>Seitenverhältnis beibehalten</b>: Shift+ziehen" +msgstr "" +"<b>Größe ändern</b>: ziehen, <b>Seitenverhältnis beibehalten</b>: " +"Shift+ziehen" -#: ../src/iop/crop.c:1676 -msgid "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</b>: ctrl+drag" +#: ../src/iop/crop.c:1660 +msgid "" +"<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" +"b>: ctrl+drag" msgstr "" -"<b>Verschieben</b>: ziehen, <b>Vertikal verschieben</b>: Shift+ziehen, <b>Horizontal verschieben</b>: Strg+ziehen" +"<b>Verschieben</b>: ziehen, <b>Vertikal verschieben</b>: Shift+ziehen, " +"<b>Horizontal verschieben</b>: Strg+ziehen" #: ../src/iop/defringe.c:71 msgid "defringe" @@ -14627,32 +16198,39 @@ msgstr "Dämpfung der chromatischen Aberration durch Entsättigung an Kanten" #: ../src/iop/defringe.c:101 -msgid "this module is deprecated. please use the chromatic aberration module instead." +msgid "" +"this module is deprecated. please use the chromatic aberration module " +"instead." msgstr "veraltetes Modul; abgelöst durch Chromatische Aberration" -#: ../src/iop/defringe.c:415 +#: ../src/iop/defringe.c:417 msgid "" "method for color protection:\n" -" - global average: fast, might show slightly wrong previews in high magnification; might sometimes protect " -"saturation too much or too low in comparison to local average\n" -" - local average: slower, might protect saturation better than global average by using near pixels as color " -"reference, so it can still allow for more desaturation where required\n" +" - global average: fast, might show slightly wrong previews in high " +"magnification; might sometimes protect saturation too much or too low in " +"comparison to local average\n" +" - local average: slower, might protect saturation better than global " +"average by using near pixels as color reference, so it can still allow for " +"more desaturation where required\n" " - static: fast, only uses the threshold as a static limit" msgstr "" "Methode für Farbenschutz:\n" -"– globales Mittel: schnell, liefert bei hoher Vergrößerung eventuell eine leicht verfälschte Vorschau; schützt " -"manchmal im Vergleich zum lokalen Mittel die Sättigung zu viel oder zu wenig\n" -"– lokales Mittel: langsamer, schützt die Sättigung besser als das globale Mittel indem Pixel aus der Umgebung als " -"Farb-Referenz benutzt werden, so dass bei Bedarf eine stärkere Entsättigung erreicht werden kann\n" +"– globales Mittel: schnell, liefert bei hoher Vergrößerung eventuell eine " +"leicht verfälschte Vorschau; schützt manchmal im Vergleich zum lokalen " +"Mittel die Sättigung zu viel oder zu wenig\n" +"– lokales Mittel: langsamer, schützt die Sättigung besser als das globale " +"Mittel indem Pixel aus der Umgebung als Farb-Referenz benutzt werden, so " +"dass bei Bedarf eine stärkere Entsättigung erreicht werden kann\n" "– statisch: schnell, benutzt nur den Schwellwert als statischen Grenzwert" -#: ../src/iop/defringe.c:422 +#: ../src/iop/defringe.c:424 msgid "radius for detecting fringe" msgstr "Radius der Farbsaumerkennung" -#: ../src/iop/defringe.c:425 +#: ../src/iop/defringe.c:427 msgid "threshold for defringe, higher values mean less defringing" -msgstr "Schwellwert der Farbsaumentfernung, höhere Werte führen zu weniger Änderung" +msgstr "" +"Schwellwert der Farbsaumentfernung, höhere Werte führen zu weniger Änderung" #: ../src/iop/demosaic.c:287 msgid "demosaic" @@ -14660,16 +16238,19 @@ #: ../src/iop/demosaic.c:292 msgid "reconstruct full RGB pixels from a sensor color filter array reading" -msgstr "Rekonstruktion der RGB Pixel aus Helligkeitswerten eines Sensors mit Farbfiltermatrix" +msgstr "" +"Rekonstruktion der RGB Pixel aus Helligkeitswerten eines Sensors mit " +"Farbfiltermatrix" -#: ../src/iop/demosaic.c:1086 +#: ../src/iop/demosaic.c:1133 #, c-format msgid "`%s' color matrix not found for 4bayer image!" msgstr "„%s” Farbmatrix für 4-Bayer-Bild nicht gefunden!" -#: ../src/iop/demosaic.c:1238 +#: ../src/iop/demosaic.c:1285 msgid "" -"Bayer sensor demosaicing method, PPG and RCD are fast, AMaZE and LMMSE are slow.\n" +"Bayer sensor demosaicing method, PPG and RCD are fast, AMaZE and LMMSE are " +"slow.\n" "LMMSE is suited best for high ISO images.\n" "dual demosaicers double processing time." msgstr "" @@ -14678,22 +16259,24 @@ "LMMSE ist für High ISO Bilder geeignet.\n" "Dual-Demosaic verdoppelt die Verarbeitungszeit." -#: ../src/iop/demosaic.c:1242 +#: ../src/iop/demosaic.c:1289 msgid "" -"X-Trans sensor demosaicing method, Markesteijn 3-pass and frequency domain chroma are slow.\n" +"X-Trans sensor demosaicing method, Markesteijn 3-pass and frequency domain " +"chroma are slow.\n" "dual demosaicers double processing time." msgstr "" -"X-Trans Sensor Demosaicing Methode, Markesteijn 3-Pass und Frequency Domain Chromi sind langsam.\n" +"X-Trans Sensor Demosaicing Methode, Markesteijn 3-Pass und Frequency Domain " +"Chromi sind langsam.\n" "Dual-Demosaic verdoppelt die Verarbeitungszeit." -#: ../src/iop/demosaic.c:1248 +#: ../src/iop/demosaic.c:1295 msgid "Bayer4 sensor demosaicing methods." msgstr "Bayer4 Demosaicing Methoden" # WTF? Wer bitte soll das verstehen? # stimmt - wo kommt das vor? # wo ist der Vorschlag für bessere Übersetzung? -#: ../src/iop/demosaic.c:1252 +#: ../src/iop/demosaic.c:1299 msgid "" "threshold for edge-aware median.\n" "set to 0.0 to switch off\n" @@ -14703,7 +16286,7 @@ "Auf 0.0 setzen zum Ausschalten.\n" "Auf 1.0 setzen, um Kanten zu ignorieren." -#: ../src/iop/demosaic.c:1257 +#: ../src/iop/demosaic.c:1304 msgid "" "contrast threshold for dual demosaic.\n" "set to 0.0 for high frequency content\n" @@ -14715,57 +16298,58 @@ "1.0 für gleichmäßige Inhalte\n" "umschalten, um die Maske zu visualisieren" -#: ../src/iop/demosaic.c:1265 +#: ../src/iop/demosaic.c:1312 msgid "" "LMMSE refinement steps. the median steps average the output,\n" "refine adds some recalculation of red & blue channels" msgstr "" -"LMMSE-Verfeinerungsschritte. Die Medianschritte bilden den Mittelwert der Ausgabe,\n" +"LMMSE-Verfeinerungsschritte. Die Medianschritte bilden den Mittelwert der " +"Ausgabe,\n" "Verfeinerung fügt einige Neuberechnungen der roten und blauen Kanäle hinzu" -#: ../src/iop/demosaic.c:1268 +#: ../src/iop/demosaic.c:1315 msgid "how many color smoothing median steps after demosaicing" msgstr "wie viele Median-Schritte zur Farbglättung nach dem Demosaicing" -#: ../src/iop/demosaic.c:1271 +#: ../src/iop/demosaic.c:1318 msgid "green channels matching method" msgstr "Methode zum Abgleichen des Grünkanals" -#: ../src/iop/demosaic.c:1278 +#: ../src/iop/demosaic.c:1325 msgid "demosaicing is only used for color raw images" -msgstr "Demosaicing funktioniert nur mit Raw-Bildern." +msgstr "Demosaicing funktioniert nur mit RAW-Bildern." -#: ../src/iop/denoiseprofile.c:714 +#: ../src/iop/denoiseprofile.c:766 msgid "wavelets: chroma only" msgstr "Wavelets: nur Chrominanz" -#: ../src/iop/denoiseprofile.c:720 +#: ../src/iop/denoiseprofile.c:772 msgid "denoise (profiled)" msgstr "Entrauschen (Profil)" -#: ../src/iop/denoiseprofile.c:726 +#: ../src/iop/denoiseprofile.c:778 msgid "denoise using noise statistics profiled on sensors" msgstr "Entrauschen mit sensorspezifischen Rauschprofilen" -#: ../src/iop/denoiseprofile.c:2846 +#: ../src/iop/denoiseprofile.c:2850 #, c-format msgid "found match for ISO %d" msgstr "Treffer für ISO %d gefunden" -#: ../src/iop/denoiseprofile.c:2855 +#: ../src/iop/denoiseprofile.c:2859 #, c-format msgid "interpolated from ISO %d and %d" msgstr "aus ISO %d und %d interpoliert" -#: ../src/iop/denoiseprofile.c:3719 +#: ../src/iop/denoiseprofile.c:3723 msgid "Y0" msgstr "Y0" -#: ../src/iop/denoiseprofile.c:3720 +#: ../src/iop/denoiseprofile.c:3724 msgid "U0V0" msgstr "U0V0" -#: ../src/iop/denoiseprofile.c:3760 +#: ../src/iop/denoiseprofile.c:3764 msgid "" "use only with a perfectly\n" "uniform image if you want to\n" @@ -14775,36 +16359,36 @@ "nur mit einem perfekt homogenen\n" "Bild verwenden." -#: ../src/iop/denoiseprofile.c:3766 +#: ../src/iop/denoiseprofile.c:3770 msgid "variance red: " msgstr "Varianz rot: " -#: ../src/iop/denoiseprofile.c:3770 +#: ../src/iop/denoiseprofile.c:3774 msgid "variance computed on the red channel" msgstr "berechnete Varianz des Rot-Kanal" -#: ../src/iop/denoiseprofile.c:3775 +#: ../src/iop/denoiseprofile.c:3779 msgid "variance green: " msgstr "Varianz grün: " -#: ../src/iop/denoiseprofile.c:3779 +#: ../src/iop/denoiseprofile.c:3783 msgid "variance computed on the green channel" msgstr "berechnete Varianz des Grün-Kanal" -#: ../src/iop/denoiseprofile.c:3784 +#: ../src/iop/denoiseprofile.c:3788 msgid "variance blue: " msgstr "Varianz blau: " -#: ../src/iop/denoiseprofile.c:3788 +#: ../src/iop/denoiseprofile.c:3792 msgid "variance computed on the blue channel" msgstr "berechnete Varianz des Blau-Kanal" -#: ../src/iop/denoiseprofile.c:3799 ../src/libs/export.c:1208 ../src/libs/print_settings.c:2418 -#: ../src/libs/print_settings.c:2774 +#: ../src/iop/denoiseprofile.c:3803 ../src/libs/export.c:1320 +#: ../src/libs/print_settings.c:2418 ../src/libs/print_settings.c:2774 msgid "profile" msgstr "Profil" -#: ../src/iop/denoiseprofile.c:3833 +#: ../src/iop/denoiseprofile.c:3837 msgid "" "adapt denoising according to the\n" "white balance coefficients.\n" @@ -14820,7 +16404,7 @@ "Sollte deaktiviert werden, wenn in einer früheren\n" "Instanz ein Farbmischmodus verwendet wurde." -#: ../src/iop/denoiseprofile.c:3840 +#: ../src/iop/denoiseprofile.c:3844 msgid "" "fix bugs in Anscombe transform resulting\n" "in undersmoothing of the green channel in\n" @@ -14842,21 +16426,22 @@ "Entrauschung. Einmal aktiviert, kannst Du\n" " nicht mehr zum alten Algorithmus zurückkehren." -#: ../src/iop/denoiseprofile.c:3850 +#: ../src/iop/denoiseprofile.c:3854 msgid "profile used for variance stabilization" msgstr "Benutztes Profil zur Stabilisierung der Streuung" -#: ../src/iop/denoiseprofile.c:3852 +#: ../src/iop/denoiseprofile.c:3856 msgid "" "method used in the denoising core.\n" "non-local means works best for `lightness' blending,\n" "wavelets work best for `color' blending" msgstr "" "Verwendete Methode zur Rauschreduktion. \n" -"„Nicht-lokales Mittel” funktioniert am besten in Kombination mit dem Überblendmodus „Helligkeit”. \n" +"„Nicht-lokales Mittel” funktioniert am besten in Kombination mit dem " +"Überblendmodus „Helligkeit”. \n" "Für die Methode „Wavelets” ist der Überblendmodus „Farbe” am besten geeignet." -#: ../src/iop/denoiseprofile.c:3856 +#: ../src/iop/denoiseprofile.c:3860 msgid "" "color representation used within the algorithm.\n" "RGB keeps the RGB channels separated,\n" @@ -14864,14 +16449,17 @@ "denoise chroma and luma separately." msgstr "" "Die vom Algorithmus genutzte Farbdarstellung. \n" -"Mit „Y0U0V0” werden die RGB-Kanäle so gemischt, dass Farbrauschen und Helligkeitsrauschen getrennt beeinflusst " -"werden können, während bei „RGB” die RGB-Kanäle separiert bleiben." +"Mit „Y0U0V0” werden die RGB-Kanäle so gemischt, dass Farbrauschen und " +"Helligkeitsrauschen getrennt beeinflusst werden können, während bei „RGB” " +"die RGB-Kanäle separiert bleiben." -#: ../src/iop/denoiseprofile.c:3861 +#: ../src/iop/denoiseprofile.c:3865 msgid "" "radius of the patches to match.\n" -"increase for more sharpness on strong edges, and better denoising of smooth areas.\n" -"if details are oversmoothed, reduce this value or increase the central pixel weight slider." +"increase for more sharpness on strong edges, and better denoising of smooth " +"areas.\n" +"if details are oversmoothed, reduce this value or increase the central pixel " +"weight slider." msgstr "" "Radius der übereinstimmenden Blöcke.\n" "Erhöhen für mehr Schärfe an starken Kanten \n" @@ -14879,17 +16467,19 @@ "Wenn Details überglättet sind, diesen Wert reduzieren\n" "oder „Gewichtung zentrales Pixel“ erhöhen." -#: ../src/iop/denoiseprofile.c:3867 +#: ../src/iop/denoiseprofile.c:3871 msgid "" -"emergency use only: radius of the neighborhood to search patches in. increase for better denoising performance, " -"but watch the long runtimes! large radii can be very slow. you have been warned" -msgstr "" -"Nur für den Notfall: Radius der Nachbarschaft, in der nach Blöcken gesucht werden soll. \n" -"Eine Vergrößerung der Blockgröße führt zu einer besseren Rauschentfernung aber verusacht auch längere " -"Laufzeiten. \n" +"emergency use only: radius of the neighborhood to search patches in. " +"increase for better denoising performance, but watch the long runtimes! " +"large radii can be very slow. you have been warned" +msgstr "" +"Nur für den Notfall: Radius der Nachbarschaft, in der nach Blöcken gesucht " +"werden soll. \n" +"Eine Vergrößerung der Blockgröße führt zu einer besseren Rauschentfernung " +"aber verusacht auch längere Laufzeiten. \n" "Große Radien können zu einer sehr langsamen Bearbeitung führen." -#: ../src/iop/denoiseprofile.c:3873 +#: ../src/iop/denoiseprofile.c:3877 msgid "" "scattering of the neighborhood to search patches in.\n" "increase for better coarse-grain noise reduction.\n" @@ -14899,7 +16489,7 @@ "Für eine bessere Reduktion von grobem Rauschen erhöhen. \n" "Hat keine Auswirkungen auf die Ausführungsdauer." -#: ../src/iop/denoiseprofile.c:3877 +#: ../src/iop/denoiseprofile.c:3881 msgid "" "increase the weight of the central pixel\n" "of the patch in the patch comparison.\n" @@ -14911,11 +16501,11 @@ "Nützlich, um Details wiederherzustellen,\n" "bei denen die Patch-Größe relativ groß ist." -#: ../src/iop/denoiseprofile.c:3881 +#: ../src/iop/denoiseprofile.c:3885 msgid "finetune denoising strength" msgstr "Stärke des Entrauschens anpassen" -#: ../src/iop/denoiseprofile.c:3883 +#: ../src/iop/denoiseprofile.c:3887 msgid "" "controls the way parameters are autoset\n" "increase if shadows are not denoised enough\n" @@ -14927,16 +16517,17 @@ "werden oder wenn das Chrominanz-Rauschen erhalten bleibt.\n" "Dies kann bei unterbelichteten Bildern passieren." -#: ../src/iop/denoiseprofile.c:3888 +#: ../src/iop/denoiseprofile.c:3892 msgid "" "finetune shadows denoising.\n" "decrease to denoise more aggressively\n" "dark areas of the image." msgstr "" "Feineinstellung Entrauschen der Schatten. \n" -"Verringerung des Wertes bewirkt ein aggressiveres Entrauschen der dunklen Bildbereiche." +"Verringerung des Wertes bewirkt ein aggressiveres Entrauschen der dunklen " +"Bildbereiche." -#: ../src/iop/denoiseprofile.c:3892 +#: ../src/iop/denoiseprofile.c:3896 msgid "" "correct color cast in shadows.\n" "decrease if shadows are too purple.\n" @@ -14946,7 +16537,7 @@ "Verringern, wenn die Schatten zu violett sind.\n" "Erhöhen, wenn die Schatten zu grün sind." -#: ../src/iop/denoiseprofile.c:3896 +#: ../src/iop/denoiseprofile.c:3900 msgid "" "upgrade the variance stabilizing algorithm.\n" "new algorithm extends the current one.\n" @@ -14970,87 +16561,92 @@ msgid "" "simulate directional diffusion of light with heat transfer model\n" "to apply an iterative edge-oriented blur,\n" -"inpaint damaged parts of the image, or to remove blur with blind deconvolution." +"inpaint damaged parts of the image, or to remove blur with blind " +"deconvolution." msgstr "" -"Simuliert die gerichtete Streuung von Licht mit einem Wärmeübertragungsmodell\n" +"Simuliert die gerichtete Streuung von Licht mit einem " +"Wärmeübertragungsmodell\n" "um eine iterative kantenorientierte Unschärfe anwenden, \n" "um beschädigte Teile des Bildes zu überdecken,\n" "oder um Unschärfe mit blind deconvolution zu entfernen." #. deblurring presets -#: ../src/iop/diffuse.c:219 +#: ../src/iop/diffuse.c:246 msgid "lens deblur: soft" msgstr "Objektivschärfe: leicht" -#: ../src/iop/diffuse.c:244 +#: ../src/iop/diffuse.c:271 msgid "lens deblur: medium" msgstr "Objektivschärfe: mittel" -#: ../src/iop/diffuse.c:269 +#: ../src/iop/diffuse.c:296 msgid "lens deblur: hard" msgstr "Objektivschärfe: stark" -#: ../src/iop/diffuse.c:295 +#: ../src/iop/diffuse.c:322 msgid "dehaze" msgstr "Dunstentfernung" -#: ../src/iop/diffuse.c:321 +#: ../src/iop/diffuse.c:348 msgid "denoise: fine" msgstr "Entrauschen: fein" -#: ../src/iop/diffuse.c:346 +#: ../src/iop/diffuse.c:373 msgid "denoise: medium" msgstr "Entrauschen: mittel" -#: ../src/iop/diffuse.c:371 +#: ../src/iop/diffuse.c:398 msgid "denoise: coarse" msgstr "Entrauschen: grob" -#: ../src/iop/diffuse.c:446 +#: ../src/iop/diffuse.c:473 msgid "sharpen demosaicing: no AA filter" msgstr "Schärfen Demosaicing: kein AA-Filter" -#: ../src/iop/diffuse.c:472 +#: ../src/iop/diffuse.c:499 msgid "sharpen demosaicing: AA filter" msgstr "Schärfen Demosaicing: AA-Filter" -#: ../src/iop/diffuse.c:499 +#: ../src/iop/diffuse.c:526 msgid "simulate watercolor" msgstr "Simulation Aquarelleffekt" -#: ../src/iop/diffuse.c:524 +#: ../src/iop/diffuse.c:551 msgid "simulate line drawing" msgstr "Simulation Strichzeichnung" -#: ../src/iop/diffuse.c:576 +#: ../src/iop/diffuse.c:603 msgid "inpaint highlights" msgstr "Spitzlichter ausfüllen" #. fast presets for slow hardware -#: ../src/iop/diffuse.c:603 +#: ../src/iop/diffuse.c:630 msgid "sharpness: fast" msgstr "Schärfen: schnell" -#: ../src/iop/diffuse.c:655 +#: ../src/iop/diffuse.c:682 msgid "sharpness: strong" msgstr "Schärfen: stark" -#: ../src/iop/diffuse.c:680 +#: ../src/iop/diffuse.c:707 msgid "local contrast: fast" msgstr "Lokaler Kontrast: schnell" -#: ../src/iop/diffuse.c:1391 ../src/iop/diffuse.c:1666 +#: ../src/iop/diffuse.c:1418 ../src/iop/diffuse.c:1693 msgid "diffuse/sharpen failed to allocate memory, check your RAM settings" -msgstr "Diffusion & Schärfen konnte keinen Speicher reservieren, überprüfe die RAM-Einstellungen" +msgstr "" +"Diffusion & Schärfen konnte keinen Speicher reservieren, überprüfe die RAM-" +"Einstellungen" #. Additional parameters #. Camera settings -#: ../src/iop/diffuse.c:1782 ../src/iop/splittoning.c:537 ../src/libs/camera.c:486 +#: ../src/iop/diffuse.c:1797 ../src/iop/splittoning.c:533 +#: ../src/libs/camera.c:486 msgctxt "section" msgid "properties" msgstr "Eigenschaften" -#: ../src/iop/diffuse.c:1788 +#: ../src/iop/diffuse.c:1803 msgid "" "more iterations make the effect stronger but the module slower.\n" "this is analogous to giving more time to the diffusion reaction.\n" @@ -15062,7 +16658,7 @@ "Für Schärfung oder Ausfüllen von Spitzlichtern\n" "helfen mehr Iterationen bei der Rekonstruktion." -#: ../src/iop/diffuse.c:1797 +#: ../src/iop/diffuse.c:1812 msgid "" "main scale of the diffusion.\n" "zero makes diffusion act on the finest details more heavily.\n" @@ -15076,7 +16672,7 @@ "Für Schärfen und Entrauschen auf Null setzen,\n" "erhöhen, um stattdessen auf den lokalen Kontrast einzuwirken." -#: ../src/iop/diffuse.c:1807 +#: ../src/iop/diffuse.c:1822 msgid "" "width of the diffusion around the central radius.\n" "high values diffuse on a large band of radii.\n" @@ -15090,12 +16686,12 @@ "Soll die Unschärfe entfernt werden, sollte der Radius \n" "in etwa der Breite der Unschärfe des Objektivs entsprechen." -#: ../src/iop/diffuse.c:1814 +#: ../src/iop/diffuse.c:1829 msgctxt "section" msgid "speed (sharpen ↔ diffuse)" msgstr "Geschwindigkeit (schärfen ↔ diffus)" -#: ../src/iop/diffuse.c:1821 +#: ../src/iop/diffuse.c:1836 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 1st order anisotropy (set below).\n" @@ -15111,7 +16707,7 @@ "Positive Werte erhöhen Diffusion und Weichzeichnung\n" "Null bewirkt nichts" -#: ../src/iop/diffuse.c:1831 +#: ../src/iop/diffuse.c:1846 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 2nd order anisotropy (set below).\n" @@ -15127,7 +16723,7 @@ "Positive Werte erhöhen Diffusion und Weichzeichnung\n" "Null bewirkt nichts" -#: ../src/iop/diffuse.c:1841 +#: ../src/iop/diffuse.c:1856 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 3rd order anisotropy (set below).\n" @@ -15143,7 +16739,7 @@ "Positive Werte erhöhen Diffusion und Weichzeichnung\n" "Null bewirkt nichts" -#: ../src/iop/diffuse.c:1851 +#: ../src/iop/diffuse.c:1866 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 4th order anisotropy (set below).\n" @@ -15159,12 +16755,12 @@ "Positive Werte erhöhen Diffusion und Weichzeichnung\n" "Null bewirkt nichts" -#: ../src/iop/diffuse.c:1857 +#: ../src/iop/diffuse.c:1872 msgctxt "section" msgid "direction" msgstr "Richtung" -#: ../src/iop/diffuse.c:1864 +#: ../src/iop/diffuse.c:1879 msgid "" "direction of 1st order speed (set above).\n" "\n" @@ -15178,7 +16774,7 @@ "positive Werte vermeiden eher Kanten (Isophoten), \n" "Null wirkt sich auf beides gleichermaßen aus (isotrop)." -#: ../src/iop/diffuse.c:1873 +#: ../src/iop/diffuse.c:1888 msgid "" "direction of 2nd order speed (set above).\n" "\n" @@ -15192,7 +16788,7 @@ "positive Werte vermeiden eher Kanten (Isophoten), \n" "Null wirkt sich auf beides gleichermaßen aus (isotrop)." -#: ../src/iop/diffuse.c:1882 +#: ../src/iop/diffuse.c:1897 msgid "" "direction of 3rd order speed (set above).\n" "\n" @@ -15206,7 +16802,7 @@ "positive Werte vermeiden eher Kanten (Isophoten), \n" "Null wirkt sich auf beides gleichermaßen aus (isotrop)." -#: ../src/iop/diffuse.c:1891 +#: ../src/iop/diffuse.c:1906 msgid "" "direction of 4th order speed (set above).\n" "\n" @@ -15220,12 +16816,12 @@ "positive Werte vermeiden eher Kanten (Isophoten), \n" "Null wirkt sich auf beides gleichermaßen aus (isotrop)." -#: ../src/iop/diffuse.c:1897 +#: ../src/iop/diffuse.c:1912 msgctxt "section" msgid "edge management" msgstr "Kantenbehandlung" -#: ../src/iop/diffuse.c:1904 +#: ../src/iop/diffuse.c:1919 msgid "" "increase or decrease the sharpness of the highest frequencies.\n" "can be used to keep details after blooming,\n" @@ -15235,7 +16831,7 @@ "Kann zur Erhaltung von Details nach einer Überstrahlung verwendet werden,\n" "für unabhängige Schärfung Geschwindigkeit auf negative Werte setzen." -#: ../src/iop/diffuse.c:1911 +#: ../src/iop/diffuse.c:1926 msgid "" "define the sensitivity of the variance penalty for edges.\n" "increase to exclude more edges from diffusion,\n" @@ -15245,33 +16841,37 @@ "Erhöhen, um mehr Kanten von der Diffusion auszuschließen,\n" "wenn Farbsäume oder Halos auftreten." -#: ../src/iop/diffuse.c:1918 +#: ../src/iop/diffuse.c:1933 msgid "" "define the variance threshold between edge amplification and penalty.\n" "decrease if you want pixels on smooth surfaces get a boost,\n" "increase if you see noise appear on smooth surfaces or\n" "if dark areas seem oversharpened compared to bright areas." msgstr "" -"Definiert die Schwellwert für die Varianz zwischen Kantenverstärkung und Pönale.\n" +"Definiert die Schwellwert für die Varianz zwischen Kantenverstärkung und " +"Pönale.\n" "Verringern, damit Pixel auf glatten Oberflächen eine Verstärkung erhalten,\n" "Erhöhen, wenn Rauschen auf glatten Flächen auftritt oder\n" "wenn dunkle Bereiche im Vergleich zu hellen Bereichen überschärft erscheinen." -#: ../src/iop/diffuse.c:1924 +#: ../src/iop/diffuse.c:1939 msgctxt "section" msgid "diffusion spatiality" msgstr "Diffusion Raumwirkung" -#: ../src/iop/diffuse.c:1931 +#: ../src/iop/diffuse.c:1946 msgid "" "luminance threshold for the mask.\n" -"0. disables the luminance masking and applies the module on the whole image.\n" +"0. disables the luminance masking and applies the module on the whole " +"image.\n" "any higher value excludes pixels with luminance lower than the threshold.\n" "this can be used to inpaint highlights." msgstr "" "Luminanz-Schwellwert für die Maske.\n" -"0 deaktiviert die Luminanzmaskierung und wendet das Modul auf das gesamte Bild an.\n" -"Jeder höhere Wert schließt Pixel aus, deren Leuchtdichte unter dem Schwellwert liegt.\n" +"0 deaktiviert die Luminanzmaskierung und wendet das Modul auf das gesamte " +"Bild an.\n" +"Jeder höhere Wert schließt Pixel aus, deren Leuchtdichte unter dem " +"Schwellwert liegt.\n" "Dies kann verwendet werden, um Spitzlichter auszufüllen." #: ../src/iop/dither.c:107 @@ -15279,7 +16879,7 @@ msgstr "Dithern / Posterisieren" #: ../src/iop/dither.c:112 -msgid "dithering|posterization|reduce bit-depth" +msgid "dithering|posterization|reduce bit depth" msgstr "Dithern|Posterisieren|Farbtiefenreduktion" #: ../src/iop/dither.c:117 @@ -15295,23 +16895,23 @@ msgstr "Korrekturen, Effekte" #. add the preset. -#: ../src/iop/dither.c:147 +#: ../src/iop/dither.c:149 msgid "dither" msgstr "dithern" -#: ../src/iop/dither.c:759 +#: ../src/iop/dither.c:761 msgid "radius for blurring step" msgstr "Radius des Weichzeichners" -#: ../src/iop/dither.c:771 +#: ../src/iop/dither.c:773 msgid "the gradient range where to apply random dither" msgstr "Der Verlaufsbereich, in dem zufälliges Dithering hinzugefügt wird" -#: ../src/iop/dither.c:772 +#: ../src/iop/dither.c:774 msgid "gradient range" msgstr "Verlaufsbereich" -#: ../src/iop/dither.c:780 +#: ../src/iop/dither.c:782 msgid "damping level of random dither" msgstr "Dämpfungsgrad des zufälligen Ditherings" @@ -15319,11 +16919,12 @@ msgid "legacy equalizer" msgstr "Veralteter Equalizer" -#: ../src/iop/equalizer.c:110 -msgid "this module is deprecated. better use contrast equalizer module instead." +#: ../src/iop/equalizer.c:112 +msgid "" +"this module is deprecated. better use contrast equalizer module instead." msgstr "veraltetes Modul; abgelöst durch Kontrast Equalizer" -#: ../src/iop/equalizer.c:238 +#: ../src/iop/equalizer.c:240 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -15337,75 +16938,84 @@ msgid "" "redo the exposure of the shot as if you were still in-camera\n" "using a color-safe brightening similar to increasing ISO setting" -msgstr "farbsichere Anpassung der Gesamthelligkeit ähnlich der Anpassung der ISO-Einstellung in der Kamera" +msgstr "" +"farbsichere Anpassung der Gesamthelligkeit ähnlich der Anpassung der ISO-" +"Einstellung in der Kamera" -#: ../src/iop/exposure.c:279 +#: ../src/iop/exposure.c:301 msgid "magic lantern defaults" msgstr "Magic Lantern-Standard" -#: ../src/iop/exposure.c:351 ../src/iop/rawoverexposed.c:135 ../src/iop/rawoverexposed.c:254 +#: ../src/iop/exposure.c:373 ../src/iop/rawoverexposed.c:137 +#: ../src/iop/rawoverexposed.c:256 #, c-format msgid "failed to get raw buffer from image `%s'" -msgstr "Fehler beim Laden der Raw-Daten für Bild „%s”" +msgstr "Fehler beim Laden der RAW-Daten für Bild „%s”" -#: ../src/iop/exposure.c:629 +#: ../src/iop/exposure.c:647 #, no-c-format msgid "compensate camera exposure (%+.1f EV)" msgstr "Belichtungskorrektur kompensieren (%+.1f EV)" #. Write report in GUI -#: ../src/iop/exposure.c:813 +#: ../src/iop/exposure.c:831 #, c-format msgid "L : \t%.1f %%" msgstr "L: \t%.1f %%" -#: ../src/iop/exposure.c:945 ../src/libs/history.c:953 +#: ../src/iop/exposure.c:963 ../src/libs/history.c:953 #, c-format msgid "%.2f EV" msgstr "%.2f EV" -#: ../src/iop/exposure.c:1113 +#: ../src/iop/exposure.c:1131 msgid "" "automatically remove the camera exposure bias\n" "this is useful if you exposed the image to the right." msgstr "" "Automatisch die kamerainterne Belichtungskorrektur ausgleichen. \n" -"Dies ist insbesondere bei Aufnahmen nützlich, die so belichtet wurden, daß die Spitzlichter erhalten bleiben." +"Dies ist insbesondere bei Aufnahmen nützlich, die so belichtet wurden, daß " +"die Spitzlichter erhalten bleiben." -#: ../src/iop/exposure.c:1132 +#: ../src/iop/exposure.c:1150 #, no-c-format msgid "where in the histogram to meter for deflicking. E.g. 50% is median" -msgstr "Wo im Histogramm soll zum Entflackern gemessen werden. Z.B. 50% ist der Median" +msgstr "" +"Wo im Histogramm soll zum Entflackern gemessen werden. Z.B. 50% ist der " +"Median" -#: ../src/iop/exposure.c:1138 -msgid "where to place the exposure level for processed pics, EV below overexposure." -msgstr "Gewünschte Belichtung des Bildes, in EV unterhalb einer Überbelichtung." +#: ../src/iop/exposure.c:1156 +msgid "" +"where to place the exposure level for processed pics, EV below overexposure." +msgstr "" +"Gewünschte Belichtung des Bildes, in EV unterhalb einer Überbelichtung." -#: ../src/iop/exposure.c:1142 +#: ../src/iop/exposure.c:1160 msgid "computed EC: " msgstr "berechneter EC: " -#: ../src/iop/exposure.c:1145 +#: ../src/iop/exposure.c:1163 msgid "what exposure correction has actually been used" msgstr "welche Belichtungskorrektur wurde tatsächlich benutzt" -#: ../src/iop/exposure.c:1164 +#: ../src/iop/exposure.c:1182 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" "if poorly set, it will clip near-black colors out of gamut\n" "by pushing RGB values into negatives." msgstr "" -"Schwarzwert anpassen um das Abschneiden von negativen RGB-Werten zu verhindern.\n" +"Schwarzwert anpassen um das Abschneiden von negativen RGB-Werten zu " +"verhindern.\n" "Nie verwenden, um die Dichte der schwarzen Bereiche zu erhöhen!\n" "Bei schlechter Wahl werden dunkle Farben abgeschnitten und aus dem\n" "Gamut-Bereich gedrückt, weil die RGB-Werte negativ werden." -#: ../src/iop/exposure.c:1174 -msgid "spot exposure mapping" +#: ../src/iop/exposure.c:1192 +msgid "area exposure mapping" msgstr "Belichtungsanpassung" -#: ../src/iop/exposure.c:1180 +#: ../src/iop/exposure.c:1198 msgid "" "define a target brightness, in terms of exposure,\n" "for a selected region of the image (the control sample),\n" @@ -15421,7 +17031,7 @@ "des Motivs sein oder eine sich nicht bewegende und \n" "gleichmäßig beleuchtete Fläche in der Bildserie." -#: ../src/iop/exposure.c:1189 +#: ../src/iop/exposure.c:1207 msgid "" "\"correction\" automatically adjust exposure\n" "such that the input lightness is mapped to the target.\n" @@ -15433,11 +17043,11 @@ "„Referenz messen“ zeigt den Luminanzwert des Referenzbereichs an\n" "und übernimmt diesen als Ziel für die Anpassung." -#: ../src/iop/exposure.c:1215 +#: ../src/iop/exposure.c:1233 msgid "L : \tN/A" msgstr "L: \tN/A" -#: ../src/iop/exposure.c:1233 +#: ../src/iop/exposure.c:1251 msgid "the desired target exposure after mapping" msgstr "die gewünschte Belichtung nach der Anpassung" @@ -15445,52 +17055,54 @@ msgid "this module is deprecated. better use filmic rgb module instead." msgstr "veraltetes Modul; abgelöst durch Filmic RGB" -#: ../src/iop/filmic.c:304 +#: ../src/iop/filmic.c:333 msgid "09 EV (low-key)" msgstr "09 EV (dunkel)" -#: ../src/iop/filmic.c:312 +#: ../src/iop/filmic.c:341 msgid "10 EV (indoors)" msgstr "10 EV (Innenräume)" -#: ../src/iop/filmic.c:320 +#: ../src/iop/filmic.c:349 msgid "11 EV (dim outdoors)" msgstr "11 EV (Im Freien, dunkel)" -#: ../src/iop/filmic.c:328 +#: ../src/iop/filmic.c:357 msgid "12 EV (outdoors)" msgstr "12 EV (Im Freien)" -#: ../src/iop/filmic.c:336 +#: ../src/iop/filmic.c:365 msgid "13 EV (bright outdoors)" msgstr "13 EV (Im Freien, hell" -#: ../src/iop/filmic.c:344 +#: ../src/iop/filmic.c:373 msgid "14 EV (backlighting)" msgstr "14 EV (Gegenlicht)" -#: ../src/iop/filmic.c:352 +#: ../src/iop/filmic.c:381 msgid "15 EV (sunset)" msgstr "15 EV (Sonnenuntergang)" -#: ../src/iop/filmic.c:360 +#: ../src/iop/filmic.c:389 msgid "16 EV (HDR)" msgstr "16 EV (HDR)" -#: ../src/iop/filmic.c:368 +#: ../src/iop/filmic.c:397 msgid "18 EV (HDR++)" msgstr "18 EV (HDR++)" -#: ../src/iop/filmic.c:1480 +#: ../src/iop/filmic.c:1505 msgid "read-only graph, use the parameters below to set the nodes" -msgstr "Graph nicht editierbar, Parameter weiter unten benutzen, um die Knoten zu setzen." +msgstr "" +"Graph nicht editierbar, Parameter weiter unten benutzen, um die Knoten zu " +"setzen." -#: ../src/iop/filmic.c:1484 +#: ../src/iop/filmic.c:1509 msgctxt "section" msgid "logarithmic shaper" msgstr "logarithmischer Former" -#: ../src/iop/filmic.c:1492 +#: ../src/iop/filmic.c:1517 msgid "" "adjust to match the average luminance of the subject.\n" "except in back-lighting situations, this should be around 18%." @@ -15498,7 +17110,7 @@ "An die durchschnittliche Helligkeit des Objektes anpassen.\n" "Mit Ausnahme bei Gegenlichtsituationen sollte diese etwa 18% betragen." -#: ../src/iop/filmic.c:1504 ../src/iop/filmicrgb.c:4442 +#: ../src/iop/filmic.c:1529 ../src/iop/filmicrgb.c:4506 msgid "" "number of stops between middle gray and pure white.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -15508,7 +17120,7 @@ "Entspricht einer Messung, welche ein Belichtungsmesser liefern würde.\n" "So anpassen, dass Spitzlichter nicht abgeschnitten werden." -#: ../src/iop/filmic.c:1517 ../src/iop/filmicrgb.c:4453 +#: ../src/iop/filmic.c:1542 ../src/iop/filmicrgb.c:4517 msgid "" "number of stops between middle gray and pure black.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -15520,19 +17132,20 @@ "Für mehr Kontrast erhöhen. \n" "Für mehr Details in dunkleren Bereichen verringern." -#: ../src/iop/filmic.c:1529 +#: ../src/iop/filmic.c:1554 msgid "" -"enlarge or shrink the computed dynamic range.\n" +"increase or decrease the computed dynamic range.\n" "useful in conjunction with \"auto tune levels\"." msgstr "" "Den berechneten Dynamikbereich vergrößern oder verkleinern.\n" "Nützlich in Verbindung mit „Auto-Tune-Levels”." -#: ../src/iop/filmic.c:1535 ../src/iop/filmicrgb.c:4467 ../src/iop/profile_gamma.c:659 +#: ../src/iop/filmic.c:1560 ../src/iop/filmicrgb.c:4531 +#: ../src/iop/profile_gamma.c:673 msgid "auto tune levels" msgstr "Auto-Tune-Levels" -#: ../src/iop/filmic.c:1538 +#: ../src/iop/filmic.c:1563 msgid "" "try to optimize the settings with some guessing.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -15540,16 +17153,17 @@ "but fails for high-keys and low-keys." msgstr "" "Versuche, die Einstellungen durch Ausprobieren zu optimieren.\n" -"Dadurch wird der Leuchtdichtebereich innerhalb der Histogrammgrenzen angepasst.\n" +"Dadurch wird der Leuchtdichtebereich innerhalb der Histogrammgrenzen " +"angepasst.\n" "Funktioniert besser für Landschaften und gleichmäßig beleuchtete Bilder\n" "aber scheitert bei High-Key oder Low-Key Bildern." -#: ../src/iop/filmic.c:1543 +#: ../src/iop/filmic.c:1568 msgctxt "section" msgid "filmic S curve" msgstr "Filmic S-Kurve" -#: ../src/iop/filmic.c:1550 ../src/iop/filmicrgb.c:4554 +#: ../src/iop/filmic.c:1575 ../src/iop/filmicrgb.c:4618 msgid "" "slope of the linear part of the curve\n" "affects mostly the mid-tones" @@ -15558,11 +17172,12 @@ "wirkt sich hauptsächlich auf die Mitten aus" #. geotagging -#: ../src/iop/filmic.c:1557 ../src/iop/filmicrgb.c:4563 ../src/libs/metadata_view.c:157 +#: ../src/iop/filmic.c:1582 ../src/iop/filmicrgb.c:4627 +#: ../src/libs/metadata_view.c:161 msgid "latitude" msgstr "Breite" -#: ../src/iop/filmic.c:1560 +#: ../src/iop/filmic.c:1585 msgid "" "width of the linear domain in the middle of the curve.\n" "increase to get more contrast at the extreme luminances.\n" @@ -15572,11 +17187,11 @@ "Erhöhen, um mehr Kontrast bei extremen Helligkeitswerten zu erhalten.\n" "Hat keine Auswirkungen auf die Mitten." -#: ../src/iop/filmic.c:1567 +#: ../src/iop/filmic.c:1592 msgid "shadows/highlights balance" msgstr "Schatten/Spitzlichter-Balance" -#: ../src/iop/filmic.c:1570 ../src/iop/filmicrgb.c:4574 +#: ../src/iop/filmic.c:1595 ../src/iop/filmicrgb.c:4638 msgid "" "slides the latitude along the slope\n" "to give more room to shadows or highlights.\n" @@ -15588,7 +17203,7 @@ "Nützlich falls an einem Ende des Histogramms\n" "Details geschützt werden sollen." -#: ../src/iop/filmic.c:1580 +#: ../src/iop/filmic.c:1605 msgid "" "desaturates the input of the module globally.\n" "you need to set this value below 100%\n" @@ -15598,7 +17213,7 @@ "Muss auf weniger als 100% gesetzt werden\n" "wenn „Chrominanz erhalten” aktiviert ist." -#: ../src/iop/filmic.c:1590 +#: ../src/iop/filmic.c:1615 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -15608,40 +17223,43 @@ "Verringern wenn Schatten/Spitzlichter übersättigt sind." #. Add export intent combo -#: ../src/iop/filmic.c:1600 ../src/libs/export.c:1227 ../src/libs/print_settings.c:2473 -#: ../src/libs/print_settings.c:2820 ../src/views/darkroom.c:2524 ../src/views/lighttable.c:1182 +#: ../src/iop/filmic.c:1625 ../src/libs/export.c:1339 +#: ../src/libs/print_settings.c:2473 ../src/libs/print_settings.c:2820 +#: ../src/views/darkroom.c:2365 ../src/views/lighttable.c:1182 msgid "intent" msgstr "Vorsatz" -#: ../src/iop/filmic.c:1601 +#: ../src/iop/filmic.c:1626 msgid "contrasted" msgstr "kontrastreich" #. cubic spline -#: ../src/iop/filmic.c:1602 +#: ../src/iop/filmic.c:1627 msgid "faded" msgstr "verblasst" #. centripetal spline -#: ../src/iop/filmic.c:1603 ../src/iop/profile_gamma.c:621 +#: ../src/iop/filmic.c:1628 ../src/iop/profile_gamma.c:635 msgid "linear" msgstr "linear" #. monotonic spline -#: ../src/iop/filmic.c:1604 +#: ../src/iop/filmic.c:1629 msgid "optimized" msgstr "optimiert" -#: ../src/iop/filmic.c:1606 +#: ../src/iop/filmic.c:1631 msgid "change this method if you see reversed contrast or faded blacks" -msgstr "Diese Methode ändern, wenn umgekehrter Kontrast oder verblasste Schwarzwerte zu sehen sind." +msgstr "" +"Diese Methode ändern, wenn umgekehrter Kontrast oder verblasste Schwarzwerte " +"zu sehen sind." #. Preserve color -#: ../src/iop/filmic.c:1610 +#: ../src/iop/filmic.c:1635 msgid "preserve the chrominance" msgstr "Chrominanz erhalten" -#: ../src/iop/filmic.c:1612 +#: ../src/iop/filmic.c:1637 msgid "" "ensure the original color are preserved.\n" "may reinforce chromatic aberrations.\n" @@ -15651,12 +17269,12 @@ "Kann chromatische Aberrationen der Linse verstärken.\n" "Sättigung muss manuell angepasst werden, wenn dieser Modus aktiviert wird." -#: ../src/iop/filmic.c:1622 +#: ../src/iop/filmic.c:1647 msgctxt "section" msgid "destination/display" msgstr "Ziel/Anzeige" -#: ../src/iop/filmic.c:1640 ../src/iop/filmicrgb.c:4593 +#: ../src/iop/filmic.c:1665 ../src/iop/filmicrgb.c:4657 msgid "" "luminance of output pure black, this should be 0%\n" "except if you want a faded look" @@ -15664,7 +17282,7 @@ "Luminanz der Ausgabe reinschwarz sollte 0% sein,\n" "außer ein verblasster Look ist erwünscht." -#: ../src/iop/filmic.c:1649 ../src/iop/filmicrgb.c:4600 +#: ../src/iop/filmic.c:1674 ../src/iop/filmicrgb.c:4664 msgid "" "middle gray value of the target display or color space.\n" "you should never touch that unless you know what you are doing." @@ -15672,7 +17290,7 @@ "Mittlerer Grauwert der Zielanzeige oder des Farbraums.\n" "Sollte nicht geändert werden, es sei denn, Du weißt, was Du tust." -#: ../src/iop/filmic.c:1658 ../src/iop/filmicrgb.c:4607 +#: ../src/iop/filmic.c:1683 ../src/iop/filmicrgb.c:4671 msgid "" "luminance of output pure white, this should be 100%\n" "except if you want a faded look" @@ -15680,11 +17298,11 @@ "Luminanz der Ausgabe reinweiß sollte 100% sein,\n" "außer ein verblasster Look ist erwünscht." -#: ../src/iop/filmic.c:1664 +#: ../src/iop/filmic.c:1689 msgid "target gamma" msgstr "Ziel-Gamma" -#: ../src/iop/filmic.c:1666 +#: ../src/iop/filmic.c:1691 msgid "" "power or gamma of the transfer function\n" "of the display or color space.\n" @@ -15701,7 +17319,8 @@ # inhaltgerechte Übersetzung view transformation ? #: ../src/iop/filmicrgb.c:344 msgid "tone mapping|curve|view transform|contrast|saturation|highlights" -msgstr "Tonemapping|Tonwertkurve|Bildtransformation|Kontrast|Sättigung|Spitzlichter" +msgstr "" +"Tonemapping|Tonwertkurve|Bildtransformation|Kontrast|Sättigung|Spitzlichter" #: ../src/iop/filmicrgb.c:349 msgid "" @@ -15709,92 +17328,99 @@ "for display on SDR screens and paper prints\n" "while preventing clipping in non-destructive ways" msgstr "" -"Bildet den Tonwertumfang einer Aufnahme nicht-destruktiv in den Dynamikbereich der Anzeige ab. \n" -"Analog zu „klassischem“ Film durch Kompression von dunklen Schatten und hellen Lichtern." +"Bildet den Tonwertumfang einer Aufnahme nicht-destruktiv in den " +"Dynamikbereich der Anzeige ab. \n" +"Analog zu „klassischem“ Film durch Kompression von dunklen Schatten und " +"hellen Lichtern." -#: ../src/iop/filmicrgb.c:1310 -msgid "filmic highlights reconstruction failed to allocate memory, check your RAM settings" -msgstr "Filmic Spitzlichtrekonstruktion konnte kein Speicher zuweisen werden, überprüfe die RAM-Einstellungen." +#: ../src/iop/filmicrgb.c:1365 +msgid "" +"filmic highlights reconstruction failed to allocate memory, check your RAM " +"settings" +msgstr "" +"Filmic Spitzlichtrekonstruktion konnte kein Speicher zuweisen werden, " +"überprüfe die RAM-Einstellungen." -#: ../src/iop/filmicrgb.c:2301 +#: ../src/iop/filmicrgb.c:2369 msgid "filmic highlights reconstruction failed to allocate memory on GPU" msgstr "Filmic Spitzlichtrekonstruktion konnte keinen GPU Speicher allokieren." -#: ../src/iop/filmicrgb.c:2419 +#: ../src/iop/filmicrgb.c:2487 msgid "filmic works only on RGB input" msgstr "Filmic funktioniert nur mit RGB-Eingabedaten." -#: ../src/iop/filmicrgb.c:3484 +#: ../src/iop/filmicrgb.c:3548 msgid "look only" msgstr "nur Aussehen" -#: ../src/iop/filmicrgb.c:3486 +#: ../src/iop/filmicrgb.c:3550 msgid "look + mapping (lin)" msgstr "Basiskurve (lin.)" -#: ../src/iop/filmicrgb.c:3488 +#: ../src/iop/filmicrgb.c:3552 msgid "look + mapping (log)" msgstr "Basiskurve (log.)" -#: ../src/iop/filmicrgb.c:3490 +#: ../src/iop/filmicrgb.c:3554 msgid "dynamic range mapping" msgstr "Abbildung des Dynamikbereichs" -#: ../src/iop/filmicrgb.c:3857 +#: ../src/iop/filmicrgb.c:3921 #, c-format msgid "(%.0f %%)" msgstr "(%.0f %%)" -#: ../src/iop/filmicrgb.c:3873 +#: ../src/iop/filmicrgb.c:3937 #, no-c-format msgid "% display" msgstr "% Anzeige" -#: ../src/iop/filmicrgb.c:3885 +#: ../src/iop/filmicrgb.c:3949 msgid "EV scene" msgstr "EV Aufnahme" -#: ../src/iop/filmicrgb.c:3889 +#: ../src/iop/filmicrgb.c:3953 #, no-c-format msgid "% camera" msgstr "% Kamera" #. Page DISPLAY -#: ../src/iop/filmicrgb.c:3925 ../src/iop/filmicrgb.c:4587 +#: ../src/iop/filmicrgb.c:3989 ../src/iop/filmicrgb.c:4651 msgid "display" msgstr "Anzeige" #. axis legend -#: ../src/iop/filmicrgb.c:3934 +#: ../src/iop/filmicrgb.c:3998 msgid "(%)" msgstr "(%)" #. Page SCENE -#: ../src/iop/filmicrgb.c:3943 ../src/iop/filmicrgb.c:4422 +#: ../src/iop/filmicrgb.c:4007 ../src/iop/filmicrgb.c:4486 msgid "scene" msgstr "Aufnahme" #. axis legend -#: ../src/iop/filmicrgb.c:3952 +#: ../src/iop/filmicrgb.c:4016 msgid "(EV)" msgstr "(EV)" #. we are over the graph area -#: ../src/iop/filmicrgb.c:4364 +#: ../src/iop/filmicrgb.c:4428 msgid "" "use the parameters below to set the nodes.\n" "the bright curve is the filmic tone mapping curve\n" "the dark curve is the desaturation curve." msgstr "" -"Der Graph ist nicht editierbar, Parameter unten benutzen um die Knoten zu setzen. \n" +"Der Graph ist nicht editierbar, Parameter unten benutzen um die Knoten zu " +"setzen. \n" "Die helle Kurve ist die Dynamikkompressionskurve. \n" "Die dunkle Kurve ist die Entsättigungskurve." -#: ../src/iop/filmicrgb.c:4370 +#: ../src/iop/filmicrgb.c:4434 msgid "toggle axis labels and values display" msgstr "Achsenbeschriftung ein-/ausschalten" -#: ../src/iop/filmicrgb.c:4374 +#: ../src/iop/filmicrgb.c:4438 msgid "" "cycle through graph views.\n" "left click: cycle forward.\n" @@ -15806,7 +17432,7 @@ "Rechtsklick: rückwärts.\n" "Doppelklick: Wechsel zu „nur Aussehen“." -#: ../src/iop/filmicrgb.c:4431 +#: ../src/iop/filmicrgb.c:4495 #, no-c-format msgid "" "adjust to match the average luminance of the image's subject.\n" @@ -15817,15 +17443,15 @@ "Der hier eingegebene Wert wird dabei auf 18,45% umgerechnet.\n" "Reduzierung des Werts erhöht die Gesamthelligkeit." -#: ../src/iop/filmicrgb.c:4461 +#: ../src/iop/filmicrgb.c:4525 msgid "" -"symmetrically enlarge or shrink the computed dynamic range.\n" +"symmetrically increase or decrease the computed dynamic range.\n" "useful to give a safety margin to extreme luminances." msgstr "" -"Den berechneten Dynamikbereich vergrößern oder verkleinern.\n" +"Den berechneten Dynamikbereich symmetrisch vergrößern oder verkleinern.\n" "Nützlich, um extremer Luminanz einen sicheren Spielraum zu geben." -#: ../src/iop/filmicrgb.c:4468 +#: ../src/iop/filmicrgb.c:4532 msgid "" "try to optimize the settings with some statistical assumptions.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -15834,24 +17460,28 @@ "this is not an artificial intelligence, but a simple guess.\n" "ensure you understand its assumptions before using it." msgstr "" -"Versucht die Einstellungen durch einige statistische Annahmen zu optimieren.\n" -"Dadurch wird der Leuchtdichtebereich innerhalb der Histogrammgrenzen angepasst.\n" -"Funktioniert besser mit Landschaften und gleichmäßig ausgeleuchteten Bildern,\n" +"Versucht die Einstellungen durch einige statistische Annahmen zu " +"optimieren.\n" +"Dadurch wird der Leuchtdichtebereich innerhalb der Histogrammgrenzen " +"angepasst.\n" +"Funktioniert besser mit Landschaften und gleichmäßig ausgeleuchteten " +"Bildern,\n" "aber funktioniert nicht bei High-Key, Low-Key oder bei High-ISO-Bildern.\n" -"Hierbei handelt es sich nicht um eine künstliche Intelligenz sondern um eine einfache Vermutung.\n" +"Hierbei handelt es sich nicht um eine künstliche Intelligenz sondern um eine " +"einfache Vermutung.\n" "Vergewissere Dich, die Annahmen zu verstehen, bevor Du es verwendest." #. Page RECONSTRUCT -#: ../src/iop/filmicrgb.c:4477 +#: ../src/iop/filmicrgb.c:4541 msgid "reconstruct" msgstr "Rekonstruieren" -#: ../src/iop/filmicrgb.c:4479 +#: ../src/iop/filmicrgb.c:4543 msgctxt "section" msgid "highlights clipping" msgstr "Spitzlichtkompression" -#: ../src/iop/filmicrgb.c:4487 +#: ../src/iop/filmicrgb.c:4551 msgid "" "set the exposure threshold upon which\n" "clipped highlights get reconstructed.\n" @@ -15860,13 +17490,15 @@ "decrease to include more areas,\n" "increase to exclude more areas." msgstr "" -"Setzt die Belichtungswert oberhalb dessen die Spitzlichter rekonstruiert werden. \n" +"Setzt die Belichtungswert oberhalb dessen die Spitzlichter rekonstruiert " +"werden. \n" "Werte sind relativ zum Weißpunkt. \n" "0 EV bedeutet, dass die Schwelle beim Weißpunkt liegt. \n" -"Den Wert herabsetzen, um größere Bereiche in die Spitzlichtrekonstruktion einzubeziehen, \n" +"Den Wert herabsetzen, um größere Bereiche in die Spitzlichtrekonstruktion " +"einzubeziehen, \n" "erhöhen für kleinere Bereiche." -#: ../src/iop/filmicrgb.c:4497 +#: ../src/iop/filmicrgb.c:4561 msgid "" "soften the transition between clipped highlights and valid pixels.\n" "decrease to make the transition harder and sharper,\n" @@ -15876,20 +17508,20 @@ "Verringern, um den Übergang härter und schärfer zu machen, \n" "vergrößern, um ihn weicher und unschärfer zu gestalten." -#: ../src/iop/filmicrgb.c:4503 ../src/iop/filmicrgb.c:4504 +#: ../src/iop/filmicrgb.c:4567 ../src/iop/filmicrgb.c:4568 msgid "display highlight reconstruction mask" msgstr "Maske der Spitzlicht-Rekonstruktion anzeigen" -#: ../src/iop/filmicrgb.c:4511 +#: ../src/iop/filmicrgb.c:4575 msgctxt "section" msgid "balance" msgstr "Ausgleich" -#: ../src/iop/filmicrgb.c:4518 +#: ../src/iop/filmicrgb.c:4582 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between inpainting a smooth color gradient,\n" +"inpainting a smooth color gradient\n" "or trying to recover the textured details.\n" "0% is an equal mix of both.\n" "increase if at least one RGB channel is not clipped.\n" @@ -15897,46 +17529,50 @@ msgstr "" "Bestimmt, welche Methode zur Spitzlichtrekonstruktion bevorzugt wird:\n" "Ausfüllen mit glattem Farbübergang oder Rekonstruktion der Texturdetails.\n" -"%0 entspricht einer Gleichgewichtung beider Methoden. Kann verringert werden,\n" +"%0 entspricht einer Gleichgewichtung beider Methoden. Kann verringert " +"werden,\n" "wenn wenigstens ein RGB-Komponenten nicht abgeschnitten wird, vergrößern,\n" "wenn alle RGB-Komponenten über größere Bildbereiche abgeschnitten werden." -#: ../src/iop/filmicrgb.c:4529 +#: ../src/iop/filmicrgb.c:4593 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between blooming highlights like film does,\n" +"blooming highlights like film does\n" "or trying to recover sharp details.\n" "0% is an equal mix of both.\n" "increase if you want more details.\n" "decrease if you want more blur." msgstr "" "Bestimmt, welche Methode zur Spitzlichtrekonstruktion bevorzugt wird:\n" -"Ausblühen der Spitzlichter wie bei der Verwendung von Film oder Rekonstruktion der scharfen Details.\n" -"%0 entspricht einer Gleichgewichtung beider Methoden. Für mehr Details Wert anheben, verringern für mehr Unschärfe." +"Ausblühen der Spitzlichter wie bei der Verwendung von Film oder " +"Rekonstruktion der scharfen Details.\n" +"%0 entspricht einer Gleichgewichtung beider Methoden. Für mehr Details Wert " +"anheben, verringern für mehr Unschärfe." -#: ../src/iop/filmicrgb.c:4541 +#: ../src/iop/filmicrgb.c:4605 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between recovering monochromatic highlights,\n" +"recovering monochromatic highlights\n" "or trying to recover colorful highlights.\n" "0% is an equal mix of both.\n" "increase if you want more color.\n" "decrease if you see magenta or out-of-gamut highlights." msgstr "" "Bestimmt, welche Methode zur Spitzlichtrekonstruktion bevorzugt wird:\n" -"Rekonstruktion einfarbiger Spitzlichter oder Rekonstruktion farbiger Spitzlichter.\n" +"Rekonstruktion einfarbiger Spitzlichter oder Rekonstruktion farbiger " +"Spitzlichter.\n" "%0 entspricht einer Gleichgewichtung beider Methoden. \n" "Für mehr Farben Wert anheben, \n" "verringern falls Spitzlichter in Magenta oder außerhalb des Gamut auftreten." #. Page LOOK -#: ../src/iop/filmicrgb.c:4549 +#: ../src/iop/filmicrgb.c:4613 msgid "look" msgstr "Aussehen" -#: ../src/iop/filmicrgb.c:4559 +#: ../src/iop/filmicrgb.c:4623 msgid "" "equivalent to paper grade in analog.\n" "increase to make highlights brighter and less compressed.\n" @@ -15946,7 +17582,7 @@ "Vergrößern, um die Spitzlichter aufzuhellen und weniger zu komprimieren. \n" "Verringern, um die Spitzlichter zu dämpfen." -#: ../src/iop/filmicrgb.c:4567 +#: ../src/iop/filmicrgb.c:4631 msgid "" "width of the linear domain in the middle of the curve,\n" "increase to get more contrast and less desaturation at extreme luminances,\n" @@ -15959,7 +17595,7 @@ "Im mittleren Bereich findet keine Entsättigung statt.\n" "Hat keine Auswirkungen auf die Mitteltöne." -#: ../src/iop/filmicrgb.c:4582 ../src/iop/filmicrgb.c:4730 +#: ../src/iop/filmicrgb.c:4646 ../src/iop/filmicrgb.c:4794 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -15971,21 +17607,22 @@ "nicht ausreichend gesättigt sind." #. Page OPTIONS -#: ../src/iop/filmicrgb.c:4611 +#: ../src/iop/filmicrgb.c:4675 msgid "options" msgstr "Optionen" # Was bedeutet „same as color balance”? # => meint evtl. "wie im Modul Farbbalance"? -#: ../src/iop/filmicrgb.c:4616 +#: ../src/iop/filmicrgb.c:4680 msgid "" "v3 is darktable 3.0 desaturation method, same as color balance.\n" "v4 is a newer desaturation method, based on spectral purity of light." msgstr "" "V3 entspricht der Entsättigungsmethode aus darktable 3.0.\n" -"V4 ist eine neuere Entsättigungsmethode basierend auf der spektralen Reinheit des Lichts." +"V4 ist eine neuere Entsättigungsmethode basierend auf der spektralen " +"Reinheit des Lichts." -#: ../src/iop/filmicrgb.c:4620 +#: ../src/iop/filmicrgb.c:4684 msgid "" "ensure the original colors are preserved.\n" "may reinforce chromatic aberrations and chroma noise,\n" @@ -15995,27 +17632,31 @@ "Kann chromatische Aberrationen der Linse verstärken.\n" "Sättigung muss manuell angepasst werden, wenn dieser Modus aktiviert wird." -#: ../src/iop/filmicrgb.c:4629 +#: ../src/iop/filmicrgb.c:4693 msgid "" "choose the desired curvature of the filmic spline in highlights.\n" "hard uses a high curvature resulting in more tonal compression.\n" "soft uses a low curvature resulting in less tonal compression." msgstr "" "Wähle die gewünschte Krümmung Dynamikkompressionskurve in den Lichtern.\n" -"„hart” nutzt eine starke Krümmung, die zu stärkerer tonaler Kompression führt.\n" -"„weich” benutzt eine schwächere Krümmung, was eine geringere tonale Kompression bewirkt." +"„hart” nutzt eine starke Krümmung, die zu stärkerer tonaler Kompression " +"führt.\n" +"„weich” benutzt eine schwächere Krümmung, was eine geringere tonale " +"Kompression bewirkt." -#: ../src/iop/filmicrgb.c:4634 +#: ../src/iop/filmicrgb.c:4698 msgid "" "choose the desired curvature of the filmic spline in shadows.\n" "hard uses a high curvature resulting in more tonal compression.\n" "soft uses a low curvature resulting in less tonal compression." msgstr "" "Wähle die gewünschte Krümmung der Dynamikkompressionskurve in den Schatten.\n" -"„hart” nutzt eine starke Krümmung, die zu stärkerer tonaler Kompression führt.\n" -"„weich” benutzt eine schwächere Krümmung, was eine geringere tonale Kompression bewirkt." +"„hart” nutzt eine starke Krümmung, die zu stärkerer tonaler Kompression " +"führt.\n" +"„weich” benutzt eine schwächere Krümmung, was eine geringere tonale " +"Kompression bewirkt." -#: ../src/iop/filmicrgb.c:4641 +#: ../src/iop/filmicrgb.c:4705 #, no-c-format msgid "" "enable to input custom middle-gray values.\n" @@ -16024,23 +17665,24 @@ "disable to use standard 18.45% middle gray." msgstr "" "Eingabe nut­zer­de­fi­nierter Werte für mittleres Grau erlauben.\n" -"Dies wird nicht als allgemeine Vorgehensweise empfohlen, stattdessen globale Belichtung im Modul „Belichtung” " -"anpassen. \n" +"Dies wird nicht als allgemeine Vorgehensweise empfohlen, stattdessen globale " +"Belichtung im Modul „Belichtung” anpassen. \n" "Deaktivieren, um 18,45% als Standardwert für mittleres Grau zu verwenden." -#: ../src/iop/filmicrgb.c:4648 +#: ../src/iop/filmicrgb.c:4712 msgid "" -"enable to auto-set the look hardness depending on the scene white and black points.\n" +"enable to auto-set the look hardness depending on the scene white and black " +"points.\n" "this keeps the middle gray on the identity line and improves fast tuning.\n" "disable if you want a manual control." msgstr "" -"Automatisches Setzen des „Härte”-Parameters unter „Aussehen” in Abhängigkeit vom eingestellten Weiß- und " -"Schwarzpunkt.\n" -"Dadurch wird der Wert für mittleres Grau auf der neutralen Linie gehalten, was die Einstellung der Filmic-" -"Parameter vereinfacht. \n" +"Automatisches Setzen des „Härte”-Parameters unter „Aussehen” in Abhängigkeit " +"vom eingestellten Weiß- und Schwarzpunkt.\n" +"Dadurch wird der Wert für mittleres Grau auf der neutralen Linie gehalten, " +"was die Einstellung der Filmic-Parameter vereinfacht. \n" "Für mehr manuelle Kontrolle abschalten." -#: ../src/iop/filmicrgb.c:4654 +#: ../src/iop/filmicrgb.c:4718 msgid "" "run extra passes of chromaticity reconstruction.\n" "more iterations means more color propagation from neighborhood.\n" @@ -16048,11 +17690,12 @@ "it also helps with difficult cases of magenta highlights." msgstr "" "Zusätzliche Durchläufe der Farbrekonstruktion.\n" -"Mehr Iterationen führen zu stärkerer Übertragung der Farbe aus Nachbarbereichen. \n" -"Dies ist langsamer, ergibt aber neutralere Lichter und hilft in schwierigen Fällen von magenta-farbenen " -"Spitzlichtern." +"Mehr Iterationen führen zu stärkerer Übertragung der Farbe aus " +"Nachbarbereichen. \n" +"Dies ist langsamer, ergibt aber neutralere Lichter und hilft in schwierigen " +"Fällen von magenta-farbenen Spitzlichtern." -#: ../src/iop/filmicrgb.c:4661 +#: ../src/iop/filmicrgb.c:4725 msgid "" "add statistical noise in reconstructed highlights.\n" "this avoids highlights to look too smooth\n" @@ -16064,19 +17707,20 @@ "wenn das Bild ein Grundrauschen aufweist, \n" "sodass die Spitzlichter sich in die restlichen Bildbereiche einfügen." -#: ../src/iop/filmicrgb.c:4668 +#: ../src/iop/filmicrgb.c:4732 msgid "" "choose the statistical distribution of noise.\n" "this is useful to match natural sensor noise pattern." msgstr "" "Statistische Verteilung des Rauschens wählen.\n" -"Dies ist nützlich zur Anpassung an das natürliche Rauschverhalten des Sensors." +"Dies ist nützlich zur Anpassung an das natürliche Rauschverhalten des " +"Sensors." -#: ../src/iop/filmicrgb.c:4736 +#: ../src/iop/filmicrgb.c:4800 msgid "mid-tones saturation" -msgstr "Sättigung der Mitten" +msgstr "Sättigung Mitteltöne" -#: ../src/iop/filmicrgb.c:4737 +#: ../src/iop/filmicrgb.c:4801 msgid "" "desaturates the output of the module\n" "specifically at medium luminances.\n" @@ -16086,17 +17730,18 @@ "in Bereichen mit mittlerer Luminanz.\n" "Erhöhen wenn Mitteltöne zu schwach gesättigt sind." -#: ../src/iop/filmicrgb.c:4743 +#: ../src/iop/filmicrgb.c:4807 msgid "highlights saturation mix" msgstr "Mix Sättigung der Lichter" -#: ../src/iop/filmicrgb.c:4744 +#: ../src/iop/filmicrgb.c:4808 msgid "" "positive values ensure saturation is kept unchanged over the whole range.\n" "negative values bleach highlights at constant hue and luminance.\n" "zero is an equal mix of both strategies." msgstr "" -"Positive Werte führen dazu, dass die Sättigung über den gesamten Bereich unverändert bleibt.\n" +"Positive Werte führen dazu, dass die Sättigung über den gesamten Bereich " +"unverändert bleibt.\n" "Negative Werte bleichen Lichter bei konstantem Farbton und Luminanz aus.\n" "Null ist eine gleichmäßige Mischung aus beiden Strategien." @@ -16113,39 +17758,39 @@ msgid "flip or rotate image by step of 90 degrees" msgstr "Spiegeln oder Drehen des Bildes in 90-Grad-Schritten" -#: ../src/iop/flip.c:477 +#: ../src/iop/flip.c:475 msgid "no rotation" msgstr "keine Drehung" -#: ../src/iop/flip.c:481 ../src/iop/flip.c:624 +#: ../src/iop/flip.c:479 ../src/iop/flip.c:622 msgid "flip horizontally" msgstr "horizontal spiegeln" -#: ../src/iop/flip.c:485 ../src/iop/flip.c:628 +#: ../src/iop/flip.c:483 ../src/iop/flip.c:626 msgid "flip vertically" msgstr "vertikal spiegeln" -#: ../src/iop/flip.c:489 +#: ../src/iop/flip.c:487 msgid "rotate by -90 degrees" msgstr "um -90° drehen" -#: ../src/iop/flip.c:493 +#: ../src/iop/flip.c:491 msgid "rotate by 90 degrees" msgstr "um 90° drehen" -#: ../src/iop/flip.c:497 +#: ../src/iop/flip.c:495 msgid "rotate by 180 degrees" msgstr "um 180° drehen" -#: ../src/iop/flip.c:612 +#: ../src/iop/flip.c:610 msgid "transform" msgstr "Transformieren" -#: ../src/iop/flip.c:616 ../src/libs/live_view.c:293 +#: ../src/iop/flip.c:614 ../src/libs/live_view.c:293 msgid "rotate 90 degrees CCW" msgstr "um 90° gegen den Uhrzeigersinn drehen" -#: ../src/iop/flip.c:620 ../src/libs/live_view.c:294 +#: ../src/iop/flip.c:618 ../src/libs/live_view.c:294 msgid "rotate 90 degrees CW" msgstr "um 90° im Uhrzeigersinn drehen" @@ -16164,22 +17809,26 @@ # Ugh ... # Die Operatoren sollten auch übersetzt werden! -#: ../src/iop/globaltonemap.c:625 ../src/libs/filters/colors.c:259 +#: ../src/iop/globaltonemap.c:658 ../src/libs/filters/colors.c:259 msgid "operator" msgstr "Operator" -#: ../src/iop/globaltonemap.c:626 +#: ../src/iop/globaltonemap.c:659 msgid "the global tonemap operator" msgstr "der globale Tonemapping-Operator" # ...? # Bias => Vorgabewert/Vorspannungswert/Voreinstellwert?? # tonemapper => Tonwertzuordnung/-korrektur/-anpassung ?? -#: ../src/iop/globaltonemap.c:629 -msgid "the bias for tonemapper controls the linearity, the higher the more details in blacks" -msgstr "der Bias des Tonemappers bestimmt die Linearität, je höher desto mehr Details in schwarzen Bereichen" +#: ../src/iop/globaltonemap.c:662 +msgid "" +"the bias for tonemapper controls the linearity, the higher the more details " +"in blacks" +msgstr "" +"der Bias des Tonemappers bestimmt die Linearität, je höher desto mehr " +"Details in schwarzen Bereichen" -#: ../src/iop/globaltonemap.c:633 +#: ../src/iop/globaltonemap.c:666 msgid "the target light for tonemapper specified as cd/m2" msgstr "die Zielhelligkeit des Tonemappers, angegeben in cd/m2" @@ -16243,11 +17892,11 @@ msgid "simulate an optical graduated neutral density filter" msgstr "Simuliert einen Neutralen- oder Farbverlaufsfilter" -#: ../src/iop/graduatednd.c:1114 +#: ../src/iop/graduatednd.c:1083 msgid "the density in EV for the filter" msgstr "die Dichte des Filters in Blendenstufen" -#: ../src/iop/graduatednd.c:1119 +#: ../src/iop/graduatednd.c:1088 #, no-c-format msgid "" "hardness of graduation:\n" @@ -16256,61 +17905,63 @@ "Breite des Übergangs von transparent zu nicht-transparent:\n" "0% = weicher Verlauf, 100% = harter Verlauf" -#: ../src/iop/graduatednd.c:1123 +#: ../src/iop/graduatednd.c:1092 msgid "rotation of filter -180 to 180 degrees" msgstr "Drehung des Filters -180 bis 180 Grad" -#: ../src/iop/graduatednd.c:1136 +#: ../src/iop/graduatednd.c:1105 msgid "select the hue tone of filter" msgstr "Farbton des Filters wählen" -#: ../src/iop/graduatednd.c:1142 +#: ../src/iop/graduatednd.c:1111 msgid "select the saturation of filter" msgstr "Sättigung des Filters wählen" -#: ../src/iop/graduatednd.c:1153 +#: ../src/iop/graduatednd.c:1122 #, c-format msgid "[%s on nodes] change line rotation" msgstr "[%s on nodes] Rotation der Linie ändern" -#: ../src/iop/graduatednd.c:1154 +#: ../src/iop/graduatednd.c:1123 #, c-format msgid "[%s on line] move line" msgstr "[%s on line] Linie bewegen" -#: ../src/iop/graduatednd.c:1156 +#: ../src/iop/graduatednd.c:1125 #, c-format msgid "[%s on line] change density" msgstr "[%s on line] Dichte ändern" -#: ../src/iop/graduatednd.c:1158 +#: ../src/iop/graduatednd.c:1127 #, c-format msgid "[%s on line] change hardness" msgstr "[%s on line] Härte ändern" -#: ../src/iop/grain.c:428 +#: ../src/iop/grain.c:444 msgid "grain" msgstr "Körnung" -#: ../src/iop/grain.c:433 +#: ../src/iop/grain.c:449 msgid "simulate silver grains from film" msgstr "simuliert Filmkorn" -#: ../src/iop/grain.c:582 +#: ../src/iop/grain.c:600 msgid "the grain size (~ISO of the film)" msgstr "die Korngröße (~ISO des Films)" -#: ../src/iop/grain.c:586 +#: ../src/iop/grain.c:604 msgid "the strength of applied grain" msgstr "Stärke der hinzugefügten Körnung" -#: ../src/iop/grain.c:590 +#: ../src/iop/grain.c:608 msgid "" -"amount of mid-tones bias from the photographic paper response modeling. the greater the bias, the more pronounced " -"the fall off of the grain in shadows and highlights" +"amount of mid-tones bias from the photographic paper response modeling. the " +"greater the bias, the more pronounced the fall off of the grain in shadows " +"and highlights" msgstr "" "Stärke der Mittenbetonung in der Modellierung des Fotopapiers. \n" -"Je größer dieser Wert ist, desto weniger Körnung wird in den Schatten und Glanzlichtern sichtbar." +"Je größer dieser Wert ist, desto weniger Körnung wird in den Schatten und " +"Glanzlichtern sichtbar." #: ../src/iop/hazeremoval.c:100 msgid "haze removal" @@ -16324,15 +17975,15 @@ msgid "remove fog and atmospheric hazing from pictures" msgstr "Entfernt Nebel und Dunstschleier" -#: ../src/iop/hazeremoval.c:202 +#: ../src/iop/hazeremoval.c:204 msgid "amount of haze reduction" msgstr "Anteil der Dunstentfernung" -#: ../src/iop/hazeremoval.c:204 +#: ../src/iop/hazeremoval.c:206 msgid "distance" msgstr "Distanz" -#: ../src/iop/hazeremoval.c:206 +#: ../src/iop/hazeremoval.c:208 msgid "limit haze removal up to a specific spatial depth" msgstr "Dunstentfernung auf eine bestimmte räumliche Tiefe beschränken" @@ -16342,78 +17993,114 @@ #: ../src/iop/highlights.c:178 msgid "avoid magenta highlights and try to recover highlights colors" -msgstr "Vermeidung magentafarbener Spitzlichter und Wiederherstellung von Farbtönen" +msgstr "" +"Vermeidung magentafarbener Spitzlichter und Wiederherstellung von Farbtönen" -#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:75 +#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:77 msgid "reconstruction, raw" msgstr "Rekonstruktion, RAW" -#: ../src/iop/highlights.c:923 -msgid "highlights: mode not available for this type of image. falling back to inpaint opposed." -msgstr "Highlights: Modus ist für dieses Bild-Format nicht verfügbar. Fallback auf „Inpaint Opposed“." +#: ../src/iop/highlights.c:1004 +msgid "" +"highlights: mode not available for this type of image. falling back to " +"inpaint opposed." +msgstr "" +"Highlights: Modus ist für dieses Bild-Format nicht verfügbar. Fallback auf " +"„Inpaint Opposed“." -#: ../src/iop/highlights.c:1101 +#: ../src/iop/highlights.c:1184 msgid "highlight reconstruction method" msgstr "Methode zur Rekonstruktion der Spitzlichter" -#: ../src/iop/highlights.c:1106 +#: ../src/iop/highlights.c:1189 msgid "" -"manually adjust the clipping threshold mostly used against magenta highlights\n" -"the mask icon shows the clipped areas.\n" -"you might use this for tuning 'laplacian', 'inpaint opposed' or 'segmentation' modes,\n" +"manually adjust the clipping threshold mostly used against magenta " +"highlights.\n" +"you might use this for tuning 'laplacian', 'inpaint opposed' or " +"'segmentation' modes,\n" "especially if camera white point is incorrect." msgstr "" -"Manuelles Anpassen des Clipping-Schwellwerts, meist bei magentafarbenen Lichtern verwendet\n" -"Klick auf Maskensymbol zeigt die geclippten Bereiche an.\n" -"Dies kann zur Einstellung des Laplacian, Inpaint Opposed oder Segmentierungsbasierten Modus verwendet werden, " +"Manuelles Anpassen des Clipping-Schwellwerts, meist bei magentafarbenen " +"Lichtern verwendet\n" +"Dies kann zur Einstellung des Laplacian, Inpaint Opposed oder " +"Segmentierungsbasierten Modus verwendet werden, \n" "insbesondere wenn der Weißpunkt der Kamera nicht korrekt ist." -#: ../src/iop/highlights.c:1117 +#: ../src/iop/highlights.c:1193 +msgid "" +"visualize clipped highlights in a false color representation.\n" +"the effective clipping level also depends on the reconstruction method." +msgstr "" +"Visualisierung der beschnittenen Lichter in einer Falschfarbendarstellung.\n" +"Die effektive Stufe des Clippings hängt auch von der Rekonstruktionsmethode " +"ab." + +#: ../src/iop/highlights.c:1203 msgid "" "combine closely related clipped segments by morphological operations.\n" -"the mask button shows the exact positions of resulting segment borders." +"this often leads to improved color reconstruction for tiny segments before " +"dark background." msgstr "" -"zusammengehörige Segmente mit Clipping bei Farbermittlung kombiniert behandeln.\n" -"Wert erhöhen, wenn zusammengehörige Segmente geringe Farbababweichungen zeigen.\n" -"Klick auf Maskensymbol zeigt die exakten Positionen der resultierenden Segmentgrenzen." +"eng zusammenhängende Segmente mit Clipping durch morphologische Operationen " +"kombinieren.\n" +"Dies führt oft zu einer verbesserten Farbrekonstruktion für kleine Segmente " +"vor dunklem Hintergrund." -#: ../src/iop/highlights.c:1125 +#: ../src/iop/highlights.c:1206 +msgid "visualize the combined segments in a false color representation." +msgstr "" +"Visualisierung der kombinierten Segmente in einer Falschfarbendarstellung." + +#: ../src/iop/highlights.c:1213 msgid "" "select inpainting after segmentation analysis.\n" -"increase to favour candidates found in segmentation analysis, decrease for opposed means inpainting.\n" -"the mask button shows segments that are considered to have a good candidate." +"increase to favor candidates found in segmentation analysis, decrease for " +"opposed means inpainting." msgstr "" "Farbermittlungspräferenz nach Segmentierungsanalyse auswählen.\n" "erhöhen, um Referenzwert aus der Segmentierungsanalyse bevorzugen, \n" -"verringern, um Mittelwerte analog Inpaint opposed Methode zu bevorzugen.\n" -"Klick auf Maskensymbol zeigt Segmente, in denen gute Referenzwerte vermutet werden." +"verringern, um Mittelwerte analog Inpaint opposed Methode zu bevorzugen." -#: ../src/iop/highlights.c:1136 +#: ../src/iop/highlights.c:1216 msgid "" -"approximate lost data in regions with all photosites clipped, the effect depends on segment size and border " -"gradients.\n" -"choose a mode tuned for segment size or the generic mode that tries to find best settings for every segment.\n" -"small means areas with a diameter less than 25 pixels, large is best for greater than 100.\n" -"the flat modes ignore narrow unclipped structures (like powerlines) to keep highlights rebuilt and avoid gradients." -msgstr "" -"Approximiert verlorene Daten in Regionen, in denen alle Pixel geclippt sind; der Effekt hängt von Segmentgröße und " -"Randgradienten ab.\n" -"Einen auf die Segmentgröße abgestimmten Modus auswählen - der generische Modus versucht, die besten Einstellungen " -"für jedes Segment zu finden.\n" -"Klein bedeutet Bereiche mit einem Durchmesser von weniger als 25 Pixeln, groß ist am besten für Bereiche mit mehr " -"als 100 Pixeln.\n" -"Die flachen Modi ignorieren schmale Strukturen ohne Clipping (z. B. Stromleitungen) bei der Rekonstruktion und " -"vermeiden Gradienten." - -#: ../src/iop/highlights.c:1142 +"visualize segments that are considered to have a good candidate in a false " +"color representation." +msgstr "" +"Visualisierung von Segmenten in einer Falschfarbendarstellung, die als gute " +"Kandidaten angesehen werden." + +#: ../src/iop/highlights.c:1225 msgid "" -"set strength of rebuilding in regions with all photosites clipped.\n" -"the mask buttons shows the effect that is added to already reconstructed data." +"approximate lost data in regions with all photosites clipped, the effect " +"depends on segment size and border gradients.\n" +"choose a mode tuned for segment size or the generic mode that tries to find " +"best settings for every segment.\n" +"small means areas with a diameter less than 25 pixels, large is best for " +"greater than 100.\n" +"the flat modes ignore narrow unclipped structures (like powerlines) to keep " +"highlights rebuilt and avoid gradients." +msgstr "" +"Approximiert verlorene Daten in Regionen, in denen alle Pixel geclippt sind; " +"der Effekt hängt von Segmentgröße und Randgradienten ab.\n" +"Einen auf die Segmentgröße abgestimmten Modus auswählen - der generische " +"Modus versucht, die besten Einstellungen für jedes Segment zu finden.\n" +"Klein bedeutet Bereiche mit einem Durchmesser von weniger als 25 Pixeln, " +"groß ist am besten für Bereiche mit mehr als 100 Pixeln.\n" +"Die flachen Modi ignorieren schmale Strukturen ohne Clipping (z. B. " +"Stromleitungen) bei der Rekonstruktion und vermeiden Gradienten." + +#: ../src/iop/highlights.c:1231 +msgid "set strength of rebuilding in regions with all photosites clipped." +msgstr "" +"Stärke der Rekonstruktion in Bereichen, in denen alle Kanäle Clipping " +"aufweisen" + +#: ../src/iop/highlights.c:1233 +msgid "show the effect that is added to already reconstructed data." msgstr "" -"legt die Stärke der Rekonstruktion in Bereichen fest, in denen alle Pixel geclippt wurden.\n" -"Klick auf Maskensymbol zeigt die Wirkung auf rekonstruierte Daten." +"zeigt den Effekt, der zu den bereits rekonstruierten Daten hinzugefügt wird." -#: ../src/iop/highlights.c:1152 +#: ../src/iop/highlights.c:1242 msgid "" "add noise to visually blend the reconstructed areas\n" "into the rest of the noisy image. useful at high ISO." @@ -16421,23 +18108,26 @@ "Rauschen hinzufügen, um die rekonstruierten Bereiche visuell mit dem Rest\n" "des verrauschten Bildes zu verschmelzen. Nützlich bei hohen ISO-Werten." -#: ../src/iop/highlights.c:1156 +#: ../src/iop/highlights.c:1246 msgid "" "increase if magenta highlights don't get fully corrected\n" "each new iteration brings a performance penalty." msgstr "" -"erhöhen, wenn die magentafarbenen Lichter nicht vollständig korrigiert werden\n" +"erhöhen, wenn die magentafarbenen Lichter nicht vollständig korrigiert " +"werden\n" "jede neue Iteration bringt einen Leistungsverlust mit sich." -#: ../src/iop/highlights.c:1161 +#: ../src/iop/highlights.c:1251 msgid "" "increase if magenta highlights don't get fully corrected.\n" "this may produce non-smooth boundaries between valid and clipped regions." msgstr "" -"erhöhen, wenn die magentafarbenen Spitzlichter nicht vollständig korrigiert werden.\n" -"Dies kann dazu führen, dass die Grenzen zwischen gültigen und beschnittenen Bereichen nicht fließend sind." +"erhöhen, wenn die magentafarbenen Spitzlichter nicht vollständig korrigiert " +"werden.\n" +"Dies kann dazu führen, dass die Grenzen zwischen gültigen und beschnittenen " +"Bereichen nicht fließend sind." -#: ../src/iop/highlights.c:1165 +#: ../src/iop/highlights.c:1255 msgid "" "increase to correct larger clipped areas.\n" "large values bring huge performance penalties" @@ -16445,9 +18135,9 @@ "erhöhen, um größere Clipping Bereiche zu korrigieren.\n" "große Werte bringen enorme Leistungseinbußen" -#: ../src/iop/highlights.c:1169 -msgid "this module only works with non-monochrome RAW and sRAW" -msgstr "Dieses Modul wird nur bei nicht-monochrome Raw und sRaw angewendet" +#: ../src/iop/highlights.c:1259 +msgid "this module does not work with monochrome RAW files" +msgstr "dieses Modul unterstützt keine monochromen RAW-Dateien" #: ../src/iop/highpass.c:72 msgid "highpass" @@ -16457,113 +18147,113 @@ msgid "isolate high frequencies in the image" msgstr "isoliert hochfrequente Bildpartien" -#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:135 +#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:107 msgid "linear or non-linear, Lab, scene-referred" msgstr "linear oder nichtlinear, Lab, szenenbezogen" -#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:136 ../src/iop/sharpen.c:96 +#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:108 ../src/iop/sharpen.c:98 msgid "frequential, Lab" msgstr "frequenzbezogen, Lab" -#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:137 +#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:109 msgid "special, Lab, scene-referred" msgstr "Lab, szenenbezogen" -#: ../src/iop/highpass.c:383 +#: ../src/iop/highpass.c:378 msgid "the sharpness of highpass filter" msgstr "die Schärfe des Hochpassfilters" -#: ../src/iop/highpass.c:387 +#: ../src/iop/highpass.c:382 msgid "the contrast of highpass filter" msgstr "der Kontrast des Hochpassfilters" -#: ../src/iop/hotpixels.c:67 +#: ../src/iop/hotpixels.c:69 msgid "hot pixels" msgstr "Tote Pixel" -#: ../src/iop/hotpixels.c:72 +#: ../src/iop/hotpixels.c:74 msgid "remove abnormally bright pixels by dampening them with neighbors" msgstr "Ersetzen von Hotpixel mit Durchschnitt der Nachbarpixel" -#: ../src/iop/hotpixels.c:363 +#: ../src/iop/hotpixels.c:442 #, c-format msgid "fixed %d pixel" msgid_plural "fixed %d pixels" msgstr[0] "%d Pixel korrigiert" msgstr[1] "%d Pixel korrigiert" -#: ../src/iop/hotpixels.c:386 +#: ../src/iop/hotpixels.c:465 msgid "lower threshold for hot pixel" msgstr "unterer Schwellwert" -#: ../src/iop/hotpixels.c:390 +#: ../src/iop/hotpixels.c:469 msgid "strength of hot pixel correction" msgstr "Schwellwert zur Korrektur toter Pixel" -#: ../src/iop/hotpixels.c:406 +#: ../src/iop/hotpixels.c:485 msgid "" "hot pixel correction\n" "only works for raw images." msgstr "" "Entfernung von toten Pixeln\n" -"funktioniert nur mit Raw-Bildern." +"funktioniert nur mit RAW-Bildern." -#: ../src/iop/invert.c:92 ../src/iop/invert.c:427 +#: ../src/iop/invert.c:106 ../src/iop/invert.c:442 #, c-format msgid "`%s' color matrix not found for 4bayer image" msgstr "„%s” Farbmatrix für 4-Bayer-Bild nicht gefunden" -#: ../src/iop/invert.c:108 +#: ../src/iop/invert.c:125 msgid "invert" msgstr "Invertieren" -#: ../src/iop/invert.c:113 +#: ../src/iop/invert.c:130 msgid "this module is deprecated. please use the negadoctor module instead." msgstr "veraltetes Modul; abgelöst durch Negadoctor" -#: ../src/iop/invert.c:118 +#: ../src/iop/invert.c:135 msgid "invert film negatives" msgstr "Negative umkehren" -#: ../src/iop/invert.c:120 ../src/iop/invert.c:122 +#: ../src/iop/invert.c:137 ../src/iop/invert.c:139 msgid "linear, raw, display-referred" msgstr "linear, RAW, anzeigebezogen" #. Here we could provide more for monochrome special cases. As no monochrome camera #. has a bayer sensor we don't need g->RGB_to_CAM and g->CAM_to_RGB corrections -#: ../src/iop/invert.c:412 +#: ../src/iop/invert.c:427 msgid "brightness of film material" msgstr "Helligkeit des Filmmaterials" -#: ../src/iop/invert.c:416 +#: ../src/iop/invert.c:431 msgid "color of film material" msgstr "Farbe des Filmmaterials" -#: ../src/iop/invert.c:500 ../src/iop/negadoctor.c:847 +#: ../src/iop/invert.c:515 ../src/iop/negadoctor.c:866 msgid "pick color of film material from image" msgstr "Farbe des Filmmaterials aus dem Bild übernehmen" -#: ../src/iop/invert.c:502 +#: ../src/iop/invert.c:517 msgid "select color of film material" msgstr "Farbe des Filmmaterials auswählen" -#: ../src/iop/lens.cc:230 +#: ../src/iop/lens.cc:251 msgid "lens correction" msgstr "Objektivkorrektur" -#: ../src/iop/lens.cc:235 +#: ../src/iop/lens.cc:256 msgid "vignette|chromatic aberrations|distortion" msgstr "Vignettierung|chromatische Aberration|Verzerrung" -#: ../src/iop/lens.cc:240 +#: ../src/iop/lens.cc:261 msgid "correct lenses optical flaws" msgstr "korrigiert Verzeichnung, Vignettierung und chromatische Aberrationen" -#: ../src/iop/lens.cc:243 +#: ../src/iop/lens.cc:264 msgid "geometric and reconstruction, RGB" msgstr "Geometrie und Rekonstruktion, RGB" -#: ../src/iop/lens.cc:3148 +#: ../src/iop/lens.cc:3773 #, c-format msgid "" "maker:\t\t%s\n" @@ -16576,7 +18266,7 @@ "Anschluss:\t\t%s\n" "Crop-Faktor:\t%.1f" -#: ../src/iop/lens.cc:3396 +#: ../src/iop/lens.cc:4026 #, c-format msgid "" "maker:\t\t%s\n" @@ -16595,31 +18285,31 @@ "Typ:\t\t\t%s\n" "Anschlüsse:\t%s" -#: ../src/iop/lens.cc:3442 +#: ../src/iop/lens.cc:4072 msgid "focal length (mm)" msgstr "Brennweite (mm)" -#: ../src/iop/lens.cc:3468 +#: ../src/iop/lens.cc:4098 msgid "f/" msgstr "f/" -#: ../src/iop/lens.cc:3469 +#: ../src/iop/lens.cc:4099 msgid "f-number (aperture)" msgstr "Blendenzahl" -#: ../src/iop/lens.cc:3485 +#: ../src/iop/lens.cc:4115 msgid "d" msgstr "d" -#: ../src/iop/lens.cc:3486 +#: ../src/iop/lens.cc:4116 msgid "distance to subject" msgstr "Entfernung" -#: ../src/iop/lens.cc:3645 +#: ../src/iop/lens.cc:4277 msgid "camera/lens not found" msgstr "Kamera/Objektiv nicht gefunden" -#: ../src/iop/lens.cc:3646 +#: ../src/iop/lens.cc:4278 msgid "" "please select your lens manually\n" "you might also want to check if your Lensfun database is up-to-date\n" @@ -16629,44 +18319,51 @@ "Zum überprüfen, ob die Lensfun-Datenbank aktuell ist\n" "bitte lensfun-update-data ausführen" -#: ../src/iop/lens.cc:3769 +#: ../src/iop/lens.cc:4423 msgid "camera model" msgstr "Kameramodel" -#: ../src/iop/lens.cc:3774 +#: ../src/iop/lens.cc:4428 msgid "find camera" msgstr "Kamera finden" -#: ../src/iop/lens.cc:3789 +#: ../src/iop/lens.cc:4443 msgid "find lens" msgstr "Objektiv finden" #. scale -#: ../src/iop/lens.cc:3823 ../src/iop/vignette.c:968 ../src/iop/watermark.c:1324 ../src/libs/export.c:1165 +#: ../src/iop/lens.cc:4477 ../src/iop/vignette.c:1055 +#: ../src/iop/watermark.c:1372 ../src/libs/export.c:1264 msgid "scale" msgstr "Skalierung" -#: ../src/iop/lens.cc:3828 +#: ../src/iop/lens.cc:4482 msgid "auto scale" msgstr "automatisch skalieren" -#: ../src/iop/lens.cc:3832 +#: ../src/iop/lens.cc:4484 +msgid "automatic scale to available image size due to Lensfun data" +msgstr "" +"automatische Skalierung auf die verfügbare Bildgröße aufgrund der Lensfun-" +"Daten" + +#: ../src/iop/lens.cc:4488 msgid "correct distortions or apply them" msgstr "Verzeichnung korrigieren oder hinzufügen" -#: ../src/iop/lens.cc:3839 +#: ../src/iop/lens.cc:4495 msgid "transversal chromatic aberration red" msgstr "transversale chromatische Aberration Rot" -#: ../src/iop/lens.cc:3843 +#: ../src/iop/lens.cc:4499 msgid "transversal chromatic aberration blue" msgstr "transversale chromatische Aberration Blau" -#: ../src/iop/lens.cc:3849 +#: ../src/iop/lens.cc:4509 msgid "use latest algorithm" msgstr "letzten Algorithmus verwenden" -#: ../src/iop/lens.cc:3851 +#: ../src/iop/lens.cc:4511 msgid "" "you're using an old version of the algorithm.\n" "once enabled, you won't be able to\n" @@ -16676,90 +18373,148 @@ "Einmal aktiviert, kann nicht mehr zum vorigen Algorithmus \n" "zurückgekehrt werden." -#: ../src/iop/lens.cc:3860 +#: ../src/iop/lens.cc:4521 +msgid "fine-tuning" +msgstr "fein justieren" + +#. DT_IOP_SECTION_FOR_PARAMS doesn't work in C++ so create section module manually +#: ../src/iop/lens.cc:4526 +msgid "fine-tune" +msgstr "fein justieren" + +#: ../src/iop/lens.cc:4532 msgid "tune the warp and chromatic aberration correction" msgstr "Korrektur anpassen für Verzeichnung und chromatischer Aberration" -#: ../src/iop/lens.cc:3864 +#: ../src/iop/lens.cc:4536 msgid "tune the vignette correction" msgstr "Vignettierungskorrektur anpassen" -#: ../src/iop/lens.cc:3868 +#: ../src/iop/lens.cc:4540 msgid "tune the TCA red correction" msgstr "TCA Rot Korrektur anpassen" -#: ../src/iop/lens.cc:3872 +#: ../src/iop/lens.cc:4544 msgid "tune the TCA blue correction" msgstr "TCA Blau Korrektur anpassen" -#: ../src/iop/lens.cc:3879 +#: ../src/iop/lens.cc:4551 msgid "image scaling" msgstr "Skalierung" -#: ../src/iop/lens.cc:3891 +#: ../src/iop/lens.cc:4553 +msgid "automatic scale to available image size" +msgstr "automatische Skalierung auf die verfügbare Bildgröße" + +#: ../src/iop/lens.cc:4561 +msgid "" +"select a correction mode either based on\n" +" a) data and algorithms provided by the Lensfun project\n" +" b) embedded metadata provided by the camera or software vendor" +msgstr "" +"einen Korrekturmodus auswählen, basierend entweder auf\n" +" a) Daten und Algorithmen, die vom Lensfun-Projekt bereitgestellt werden\n" +" b) eingebetteten Metadaten, die von der Kamera oder dem Softwarehersteller " +"bereitgestellt werden" + +#: ../src/iop/lens.cc:4568 msgid "which corrections to apply" msgstr "welche Korrekturen sollen angewandt werden" -#: ../src/iop/lens.cc:3904 +#: ../src/iop/lens.cc:4574 msgid "corrections done: " msgstr "ausgeführte Korrekturen: " -#: ../src/iop/lens.cc:3906 +#: ../src/iop/lens.cc:4576 msgid "which corrections have actually been done" msgstr "welche Korrekturen wurden tatsächlich ausgeführt" +#: ../src/iop/lens.cc:4595 +msgid "manual vignette correction" +msgstr "Manuelle Vignettierungskorrektur" + +#: ../src/iop/lens.cc:4599 +msgid "additional manually controlled optical vignetting correction" +msgstr "zusätzliche manuell gesteuerte optische Vignettierungskorrektur" + +#: ../src/iop/lens.cc:4602 +msgid "vignette" +msgstr "Vignette" + +#: ../src/iop/lens.cc:4606 +msgid "amount of the applied optical vignetting correction" +msgstr "Umfang der angewandten optischen Vignettierungskorrektur" + +#: ../src/iop/lens.cc:4608 +msgid "show applied optical vignette correction mask" +msgstr "angewandte optische Vignettenkorrekturmaske anzeigen" + +#: ../src/iop/lens.cc:4618 +msgid "radius of uncorrected centre" +msgstr "Radius des unkorrigierten Zentrums" + +#: ../src/iop/lens.cc:4624 +msgid "steepness of the correction effect outside of radius" +msgstr "Steigung der Korrekturwirkung außerhalb des Radius" + #: ../src/iop/levels.c:112 msgid "this module is deprecated. please use the RGB levels module instead." msgstr "veraltetes Modul; abgelöst durch RGB Werte" -#: ../src/iop/levels.c:117 ../src/iop/levels.c:630 ../src/iop/rgblevels.c:984 ../src/iop/rgblevels.c:1014 +#: ../src/iop/levels.c:117 ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1022 +#: ../src/iop/rgblevels.c:1056 msgid "levels" msgstr "Werte" -#: ../src/iop/levels.c:137 +#: ../src/iop/levels.c:139 msgid "adjust black, white and mid-gray points" msgstr "Schwarz-/Weißpunkt und Mittleres Grau anpassen " -#: ../src/iop/levels.c:628 ../src/iop/rgblevels.c:1016 -msgid "drag handles to set black, gray, and white points. operates on L channel." -msgstr "Anfasser verschieben, um Schwarz-, Grau- und Weißpunkt zu setzen. Arbeitet auf dem L-Kanal." +#: ../src/iop/levels.c:644 ../src/iop/rgblevels.c:1059 +msgid "" +"drag handles to set black, gray, and white points. operates on L channel." +msgstr "" +"Anfasser verschieben, um Schwarz-, Grau- und Weißpunkt zu setzen. Arbeitet " +"auf dem L-Kanal." -#: ../src/iop/levels.c:642 ../src/iop/rgblevels.c:1052 +#: ../src/iop/levels.c:658 ../src/iop/rgblevels.c:1108 msgid "apply auto levels" msgstr "Werte automatisch setzen" -#: ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1027 +#: ../src/iop/levels.c:662 ../src/iop/rgblevels.c:1077 msgid "pick black point from image" msgstr "Schwarzpunkt aus dem Bild übernehmen" -#: ../src/iop/levels.c:650 ../src/iop/rgblevels.c:1033 +#: ../src/iop/levels.c:666 ../src/iop/rgblevels.c:1085 msgid "pick medium gray point from image" msgstr "Mittleren Graupunkt aus dem Bild übernehmen" -#: ../src/iop/levels.c:654 ../src/iop/rgblevels.c:1039 +#: ../src/iop/levels.c:670 ../src/iop/rgblevels.c:1093 msgid "pick white point from image" msgstr "Weißpunkt aus dem Bild übernehmen" -#: ../src/iop/levels.c:667 ../src/iop/rgblevels.c:936 ../src/iop/rgblevels.c:1026 +#: ../src/iop/levels.c:683 ../src/iop/rgblevels.c:968 +#: ../src/iop/rgblevels.c:1075 msgid "black" msgstr "Schwarz" # das muss weg -#: ../src/iop/levels.c:668 +#: ../src/iop/levels.c:684 msgid "black percentile" msgstr "Schwarz-Perzentil" # das muss weg -#: ../src/iop/levels.c:672 +#: ../src/iop/levels.c:688 msgid "gray percentile" msgstr "Grau-Perzentil" -#: ../src/iop/levels.c:675 ../src/iop/rgblevels.c:938 ../src/iop/rgblevels.c:1038 +#: ../src/iop/levels.c:691 ../src/iop/rgblevels.c:970 +#: ../src/iop/rgblevels.c:1091 msgid "white" msgstr "Weiß" # das muss weg -#: ../src/iop/levels.c:676 +#: ../src/iop/levels.c:692 msgid "white percentile" msgstr "Weiß-Perzentil" @@ -16771,35 +18526,41 @@ msgid "distort parts of the image" msgstr "lokales Verzerren" -#: ../src/iop/liquify.c:2933 +#: ../src/iop/liquify.c:2895 msgid "click to edit nodes" msgstr "Klicken, um Knoten zu bearbeiten" -#: ../src/iop/liquify.c:3636 +#: ../src/iop/liquify.c:3599 msgid "" "<b>add point</b>: click and drag\n" -"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: ctrl+scroll" +"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " +"ctrl+scroll" msgstr "" "<b>Punkt hinzufügen</b>: Klick+ziehen\n" -"<b>Größe</b>: Scrollen - <b>Stärke</b>: Shift+Scrollen - <b>Richtung</b>: Strg+Scrollen" +"<b>Größe</b>: Scrollen - <b>Stärke</b>: Shift+Scrollen - <b>Richtung</b>: " +"Strg+Scrollen" -#: ../src/iop/liquify.c:3639 +#: ../src/iop/liquify.c:3602 msgid "" "<b>add line</b>: click\n" -"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: ctrl+scroll" +"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " +"ctrl+scroll" msgstr "" "<b>Linie hinzufügen</b>: Klick \n" -"<b>Größe</b>: Scrollen - <b>Stärke</b>: Shift+Scrollen - <b>Richtung</b>: Strg+Scrollen" +"<b>Größe</b>: Scrollen - <b>Stärke</b>: Shift+Scrollen - <b>Richtung</b>: " +"Strg+Scrollen" -#: ../src/iop/liquify.c:3642 +#: ../src/iop/liquify.c:3605 msgid "" "<b>add curve</b>: click\n" -"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: ctrl+scroll" +"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " +"ctrl+scroll" msgstr "" "<b>Kurve hinzufügen</b>: Klick\n" -"<b>Größe</b>: Scrollen, <b>Stärke</b>: Shift+Scrollen, <b>Richtung</b>: Strg+Scrollen" +"<b>Größe</b>: Scrollen, <b>Stärke</b>: Shift+Scrollen, <b>Richtung</b>: " +"Strg+Scrollen" -#: ../src/iop/liquify.c:3693 +#: ../src/iop/liquify.c:3656 msgid "" "use a tool to add warps\n" "<b>remove a warp</b>: right-click" @@ -16807,46 +18568,48 @@ "Werkzeug auswählen, um Verformung hinzuzufügen\n" "<b>Verformung entfernen<b>: Rechtsklick" -#: ../src/iop/liquify.c:3696 +#: ../src/iop/liquify.c:3659 msgid "warps|nodes count:" msgstr "Anzahl Verformungen | Knoten:" -#: ../src/iop/liquify.c:3705 +#: ../src/iop/liquify.c:3668 msgid "edit, add and delete nodes" msgstr "Knotenwerkzeug: Knoten bearbeiten, hinzufügen und löschen" -#: ../src/iop/liquify.c:3710 ../src/iop/liquify.c:3716 ../src/iop/liquify.c:3722 ../src/iop/retouch.c:2238 -#: ../src/iop/retouch.c:2242 ../src/iop/retouch.c:2246 ../src/iop/retouch.c:2250 ../src/iop/spots.c:883 -#: ../src/iop/spots.c:888 ../src/iop/spots.c:893 ../src/libs/masks.c:1816 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1834 ../src/libs/masks.c:1843 ../src/libs/masks.c:1852 +#: ../src/iop/liquify.c:3673 ../src/iop/liquify.c:3679 +#: ../src/iop/liquify.c:3685 ../src/iop/retouch.c:2465 +#: ../src/iop/retouch.c:2471 ../src/iop/retouch.c:2476 +#: ../src/iop/retouch.c:2481 ../src/iop/spots.c:885 ../src/iop/spots.c:890 +#: ../src/iop/spots.c:895 ../src/libs/masks.c:1812 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1830 ../src/libs/masks.c:1839 ../src/libs/masks.c:1848 msgid "shapes" msgstr "Formen" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw curves" msgstr "Kurve zeichnen" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw multiple curves" msgstr "mehrere Kurven zeichnen" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw lines" msgstr "Linie zeichnen" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw multiple lines" msgstr "mehrere Linien zeichnen" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw points" msgstr "Punkt zeichnen" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw multiple points" msgstr "mehrere Punkte zeichnen" -#: ../src/iop/liquify.c:3729 +#: ../src/iop/liquify.c:3692 msgid "" "<b>add node</b>: ctrl+click - <b>remove path</b>: right click\n" "<b>toggle line/curve</b>: ctrl+alt+click" @@ -16854,31 +18617,34 @@ "<b>Knoten hinzufügen</b>: Strg+Klick - <b>Pfad entfernen<b>: Rechtsklick\n" "<b>Wechsel Linie/Kurve</b>: Strg+Alt+Klick" -#: ../src/iop/liquify.c:3732 +#: ../src/iop/liquify.c:3695 msgid "" "<b>move</b>: click and drag - <b>show/hide feathering controls</b>: click\n" -"<b>autosmooth, cusp, smooth, symmetrical</b>: ctrl+click - <b>remove</b>: right click" +"<b>autosmooth, cusp, smooth, symmetrical</b>: ctrl+click - <b>remove</b>: " +"right click" msgstr "" -"<b>bewegen</b>: Klick+ziehen - <b>zeigen/verbergen der Ausblend-Regler</b>: Klick\n" -"<b>automatisch, spitz, glatt, symmetrisch</b>: Strg+Klick - <b>Entfernen</b>: Rechtsklick" +"<b>bewegen</b>: Klick+ziehen - <b>zeigen/verbergen der Ausblend-Regler</b>: " +"Klick\n" +"<b>automatisch, spitz, glatt, symmetrisch</b>: Strg+Klick - <b>Entfernen</" +"b>: Rechtsklick" -#: ../src/iop/liquify.c:3736 ../src/iop/liquify.c:3738 +#: ../src/iop/liquify.c:3699 ../src/iop/liquify.c:3701 msgid "<b>shape of path</b>: drag" msgstr "<b>Form des Pfads</b>: ziehen" -#: ../src/iop/liquify.c:3740 +#: ../src/iop/liquify.c:3703 msgid "<b>radius</b>: drag" msgstr "<b>Radius</b>: ziehen" -#: ../src/iop/liquify.c:3742 +#: ../src/iop/liquify.c:3705 msgid "<b>hardness (center)</b>: drag" msgstr "<b>Härte (Mitte)</b>: ziehen" -#: ../src/iop/liquify.c:3744 +#: ../src/iop/liquify.c:3707 msgid "<b>hardness (feather)</b>: drag" msgstr "<b>Härte (Ausblendebereich)</b>: ziehen" -#: ../src/iop/liquify.c:3746 +#: ../src/iop/liquify.c:3709 msgid "" "<b>strength</b>: drag\n" "<b>linear, grow, and shrink</b>: ctrl+click" @@ -16898,299 +18664,309 @@ msgid "linear, XYZ" msgstr "linear, XYZ" -#: ../src/iop/lowlight.c:341 +#: ../src/iop/lowlight.c:338 msgid "indoor bright" msgstr "Innenraum, hell" -#: ../src/iop/lowlight.c:359 +#: ../src/iop/lowlight.c:356 msgid "indoor dim" msgstr "Innenraum, dämmrig" -#: ../src/iop/lowlight.c:377 +#: ../src/iop/lowlight.c:374 msgid "indoor dark" msgstr "Innenraum, dunkel" -#: ../src/iop/lowlight.c:395 +#: ../src/iop/lowlight.c:392 msgid "twilight" msgstr "Dämmerung" -#: ../src/iop/lowlight.c:413 +#: ../src/iop/lowlight.c:410 msgid "night street lit" msgstr "Straße bei Nacht, beleuchtet" -#: ../src/iop/lowlight.c:431 +#: ../src/iop/lowlight.c:428 msgid "night street" msgstr "Straße bei Nacht" -#: ../src/iop/lowlight.c:449 +#: ../src/iop/lowlight.c:446 msgid "night street dark" msgstr "Straße bei Nacht, dunkel" -#: ../src/iop/lowlight.c:468 +#: ../src/iop/lowlight.c:465 msgid "night" msgstr "Nacht" -#: ../src/iop/lowlight.c:641 +#: ../src/iop/lowlight.c:639 msgid "dark" msgstr "dunkel" -#: ../src/iop/lowlight.c:649 +#: ../src/iop/lowlight.c:647 msgid "bright" msgstr "hell" -#: ../src/iop/lowlight.c:658 +#: ../src/iop/lowlight.c:656 msgid "day vision" msgstr "Tagessicht" -#: ../src/iop/lowlight.c:663 +#: ../src/iop/lowlight.c:661 msgid "night vision" msgstr "Nachtsicht" -#: ../src/iop/lowlight.c:835 +#: ../src/iop/lowlight.c:833 msgid "blueness in shadows" msgstr "Blautönung in den Schatten" -#: ../src/iop/lowpass.c:128 +#: ../src/iop/lowpass.c:100 msgid "lowpass" msgstr "Tiefpass" -#: ../src/iop/lowpass.c:133 +#: ../src/iop/lowpass.c:105 msgid "isolate low frequencies in the image" msgstr "isoliert niedrigfrequente Bildpartien" -#: ../src/iop/lowpass.c:565 +#: ../src/iop/lowpass.c:578 msgid "local contrast mask" msgstr "Maske aus lokalem Kontrast" -#: ../src/iop/lowpass.c:590 +#: ../src/iop/lowpass.c:603 msgid "radius of gaussian/bilateral blur" msgstr "Radius des Gaußschen/bilateralen Weichzeichners" -#: ../src/iop/lowpass.c:591 +#: ../src/iop/lowpass.c:604 msgid "contrast of lowpass filter" msgstr "Kontrast des Tiefpassfilters" -#: ../src/iop/lowpass.c:592 +#: ../src/iop/lowpass.c:605 msgid "brightness adjustment of lowpass filter" msgstr "Helligkeitsanpassung des Tiefpassfilters" -#: ../src/iop/lowpass.c:593 +#: ../src/iop/lowpass.c:606 msgid "color saturation of lowpass filter" msgstr "Farbsättigung des Tiefpassfilters" -#: ../src/iop/lowpass.c:594 +#: ../src/iop/lowpass.c:607 msgid "which filter to use for blurring" msgstr "Filter, der zum Weichzeichnen genutzt wird" -#: ../src/iop/lut3d.c:135 +#: ../src/iop/lut3d.c:136 msgid "LUT 3D" msgstr "LUT 3D" -#: ../src/iop/lut3d.c:140 +#: ../src/iop/lut3d.c:141 msgid "perform color space corrections and apply look" msgstr "Farbraumkorrekturen mit 3D LUTs" -#: ../src/iop/lut3d.c:143 +#: ../src/iop/lut3d.c:144 msgid "defined by profile, RGB" msgstr "durch Profil vorgegeben, RGB" -#: ../src/iop/lut3d.c:468 +#: ../src/iop/lut3d.c:486 msgid "error allocating buffer for gmz LUT" msgstr "Fehler: Konnte keinen Puffer für gmz-LUT-Datei reservieren." -#: ../src/iop/lut3d.c:494 +#: ../src/iop/lut3d.c:512 #, c-format msgid "invalid png file %s" msgstr "ungültige PNG-Datei „%s”" -#: ../src/iop/lut3d.c:502 +#: ../src/iop/lut3d.c:520 #, c-format -msgid "png bit-depth %d not supported" +msgid "png bit depth %d is not supported" msgstr "PNG-Bittiefe %d nicht unterstützt" -#: ../src/iop/lut3d.c:516 ../src/iop/lut3d.c:526 +#: ../src/iop/lut3d.c:534 ../src/iop/lut3d.c:544 #, c-format msgid "invalid level in png file %d %d" msgstr "ungültiger Grad PNG-Datei %d %d" -#: ../src/iop/lut3d.c:521 +#: ../src/iop/lut3d.c:539 msgid "this darktable build is not compatible with compressed CLUT" msgstr "Dieser darktable-Build ist nicht kompatibel zu komprimierter CLUT." -#: ../src/iop/lut3d.c:538 ../src/iop/lut3d.c:788 +#: ../src/iop/lut3d.c:556 ../src/iop/lut3d.c:808 #, c-format msgid "error - LUT 3D size %d exceeds the maximum supported" msgstr "Fehler: LUT 3D Größe %d überschreitet die maximal unterstützte Größe" -#: ../src/iop/lut3d.c:550 +#: ../src/iop/lut3d.c:568 msgid "error allocating buffer for png LUT" msgstr "Fehler: Konnte keinen Puffer für png-LUT-Datei reservieren." -#: ../src/iop/lut3d.c:558 +#: ../src/iop/lut3d.c:576 #, c-format msgid "error - could not read png image %s" msgstr "Fehler: konnte Datei „%s” nicht laden" -#: ../src/iop/lut3d.c:568 +#: ../src/iop/lut3d.c:586 msgid "error - allocating buffer for png LUT" msgstr "Fehler: konnte keinen Puffer für png-LUT-Datei reservieren" -#: ../src/iop/lut3d.c:743 +#: ../src/iop/lut3d.c:761 #, c-format msgid "error - invalid cube file: %s" msgstr "Fehler: ungültige Cube-Datei: „%s”" -#: ../src/iop/lut3d.c:757 -msgid "DOMAIN MIN <> 0.0 is not supported" -msgstr "DOMAIN MIN ≠ 0.0 nicht unterstützt" - -#: ../src/iop/lut3d.c:768 -msgid "DOMAIN MAX <> 1.0 is not supported" -msgstr "DOMAIN MAX ≠ 1.0 nicht unterstützt" +#: ../src/iop/lut3d.c:775 +msgid "DOMAIN MIN other than 0 is not supported" +msgstr "DOMAIN MIN ≠ 0 nicht unterstützt" + +#: ../src/iop/lut3d.c:787 +msgid "DOMAIN MAX other than 1 is not supported" +msgstr "DOMAIN MAX ≠ 1 nicht unterstützt" -#: ../src/iop/lut3d.c:777 +#: ../src/iop/lut3d.c:797 msgid "1D cube LUT is not supported" msgstr "1D cube LUTs nicht unterstützt" -#: ../src/iop/lut3d.c:799 +#: ../src/iop/lut3d.c:819 msgid "error - allocating buffer for cube LUT" msgstr "Fehler: konnte keinen Puffer für cube-LUT reservieren" -#: ../src/iop/lut3d.c:810 +#: ../src/iop/lut3d.c:830 msgid "error - cube LUT size is not defined" msgstr "Fehler: cube-LUT Größe nicht definiert" -#: ../src/iop/lut3d.c:821 +#: ../src/iop/lut3d.c:841 #, c-format msgid "error - cube LUT invalid number line %d" msgstr "Fehler: cube-LUT Zeilenzahl %d nicht korrekt" -#: ../src/iop/lut3d.c:837 +#: ../src/iop/lut3d.c:857 #, c-format msgid "error - cube LUT lines number %d is not correct, should be %d" msgstr "Fehler: cube-LUT Zeilenzahl %d nicht korrekt, sollte %d sein." -#: ../src/iop/lut3d.c:847 +#: ../src/iop/lut3d.c:867 #, c-format msgid "warning - cube LUT has %d values out of range [0,1]" msgstr "Warnung: cube LUT %d Werte außerhalb des Bbereichs [0,1]" -#: ../src/iop/lut3d.c:872 +#: ../src/iop/lut3d.c:892 #, c-format msgid "error - invalid 3dl file: %s" msgstr "Fehler: Ungültige 3DL-Datei „%s”" -#: ../src/iop/lut3d.c:893 +#: ../src/iop/lut3d.c:913 #, c-format msgid "error - the maximum shaper LUT value %d is too low" msgstr "Fehler: maximaler Shaper LUT Wert %d ist zu klein." -#: ../src/iop/lut3d.c:904 +#: ../src/iop/lut3d.c:924 msgid "error - allocating buffer for 3dl LUT" msgstr "Fehler: konnte keinen Puffer für 3D LUT-Datei reservieren" -#: ../src/iop/lut3d.c:917 +#: ../src/iop/lut3d.c:937 msgid "error - 3dl LUT size is not defined" msgstr "Fehler: 3D LUT Größe nicht definiert" -#: ../src/iop/lut3d.c:945 +#: ../src/iop/lut3d.c:965 msgid "error - 3dl LUT lines number is not correct" msgstr "Fehler: 3D LUT Zeilenzahl nicht korrekt" -#: ../src/iop/lut3d.c:961 +#: ../src/iop/lut3d.c:981 msgid "error - the maximum LUT value does not match any valid bit depth" msgstr "Fehler: maximaler LUT Wert passt zu keiner erlaubten Bittiefe." -#: ../src/iop/lut3d.c:1539 +#: ../src/iop/lut3d.c:1553 msgid "LUT root folder not defined" msgstr "LUT-Verzeichnis nicht definiert" -#: ../src/iop/lut3d.c:1545 +#: ../src/iop/lut3d.c:1559 msgid "select LUT file" msgstr "LUT Datei auswählen" -#: ../src/iop/lut3d.c:1546 +#: ../src/iop/lut3d.c:1560 msgid "_select" msgstr "aus_wählen" -#: ../src/iop/lut3d.c:1566 +#: ../src/iop/lut3d.c:1580 msgid "hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" -msgstr "Hald CLUT (png), 3D LUT (cube oder 3dl) oder komprimierte G'MIC-LUT (gmz)" +msgstr "" +"Hald CLUT (png), 3D LUT (cube oder 3dl) oder komprimierte G'MIC-LUT (gmz)" -#: ../src/iop/lut3d.c:1568 +#: ../src/iop/lut3d.c:1582 msgid "hald CLUT (png) or 3D LUT (cube or 3dl)" msgstr "Hald CLUT (png) oder 3D LUT (cube oder 3dl)" -#: ../src/iop/lut3d.c:1592 +#: ../src/iop/lut3d.c:1606 msgid "select file outside LUT root folder is not allowed" msgstr "Dateiauswahl außerhalb des LUT-Verzeichnisses nicht erlaubt" -#: ../src/iop/lut3d.c:1663 +#: ../src/iop/lut3d.c:1677 msgid "" -"select a png (haldclut), a cube, a 3dl or a gmz (compressed LUT) file CAUTION: 3D LUT folder must be set in " -"preferences/processing before choosing the LUT file" +"select a png (haldclut), a cube, a 3dl or a gmz (compressed LUT) file " +"CAUTION: 3D LUT folder must be set in preferences/processing before choosing " +"the LUT file" msgstr "" -"Eine Hald CLUT (png), eine 3D LUT (cube oder 3dl) oder eine komprimierte G'MIC-LUT (gmz) auswählen. \n" -"Achtung: Das LUT-Verzeichnis muss in „Voreinstellungen/Bearbeitung” festgelegt werden, bevor eine LUT-Datei " -"ausgewählt werden kann." +"Eine Hald CLUT (png), eine 3D LUT (cube oder 3dl) oder eine komprimierte " +"G'MIC-LUT (gmz) auswählen. \n" +"Achtung: Das LUT-Verzeichnis muss in „Voreinstellungen/Bearbeitung” " +"festgelegt werden, bevor eine LUT-Datei ausgewählt werden kann." -#: ../src/iop/lut3d.c:1667 +#: ../src/iop/lut3d.c:1681 msgid "" -"select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be set in preferences/processing before " -"choosing the LUT file" +"select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be " +"set in preferences/processing before choosing the LUT file" msgstr "" "Eine Hald CLUT (png) oder eine 3D LUT (cube oder 3dl) auswählen. \n" -"Achtung: Das LUT-Verzeichnis muss unter „Voreinstellungen/Bearbeitung/3D-LUT-Verzeichnis” festgelegt werden, bevor " -"eine LUT-Datei ausgewählt werden kann." +"Achtung: Das LUT-Verzeichnis muss unter „Voreinstellungen/Bearbeitung/3D-LUT-" +"Verzeichnis” festgelegt werden, bevor eine LUT-Datei ausgewählt werden kann." -#: ../src/iop/lut3d.c:1679 +#: ../src/iop/lut3d.c:1693 msgid "" -"the file path (relative to LUT folder) is saved with image along with the LUT data if it's a compressed LUT (gmz)" +"the file path (relative to LUT folder) is saved with image along with the " +"LUT data if it's a compressed LUT (gmz)" msgstr "" -"Der Dateipfad (relativ zum LUT-Verzeichnis) wird im Bild mitgespeichert, zusammen mit der LUT selbst, falls es " -"sich um eine komprimierte G'MIC-LUT (gmz) handelt." +"Der Dateipfad (relativ zum LUT-Verzeichnis) wird im Bild mitgespeichert, " +"zusammen mit der LUT selbst, falls es sich um eine komprimierte G'MIC-LUT " +"(gmz) handelt." -#: ../src/iop/lut3d.c:1682 -msgid "the file path (relative to LUT folder) is saved with image (and not the LUT data themselves)" -msgstr "Der Dateipfad (relativ zum LUT-Verzeichnis) wird im Bild mitgespeichert (nicht die LUT-Daten selbst)." +#: ../src/iop/lut3d.c:1696 +msgid "" +"the file path (relative to LUT folder) is saved with image (and not the LUT " +"data themselves)" +msgstr "" +"Der Dateipfad (relativ zum LUT-Verzeichnis) wird im Bild mitgespeichert " +"(nicht die LUT-Daten selbst)." -#: ../src/iop/lut3d.c:1691 +#: ../src/iop/lut3d.c:1705 msgid "enter LUT name" msgstr "LUT-Namen eingeben" -#: ../src/iop/lut3d.c:1712 +#: ../src/iop/lut3d.c:1726 msgid "select the LUT" msgstr "LUT auswählen" -#: ../src/iop/lut3d.c:1725 +#: ../src/iop/lut3d.c:1739 msgid "select the color space in which the LUT has to be applied" msgstr "den Farbraum wählen, in dem die LUT angewendet wird" -#: ../src/iop/lut3d.c:1727 +#: ../src/iop/lut3d.c:1741 msgid "interpolation" msgstr "Interpolationsverfahren" -#: ../src/iop/lut3d.c:1728 +#: ../src/iop/lut3d.c:1742 msgid "select the interpolation method" msgstr "Interpolationsverfahren wählen" -#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:62 +#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:63 msgid "mask manager" msgstr "Maskenverwaltung" -#: ../src/iop/monochrome.c:97 +#: ../src/iop/monochrome.c:99 msgid "quickly convert an image to black & white using a variable color filter" msgstr "Schwarzweißumwandlung mit variablem Farbfilter" -#: ../src/iop/monochrome.c:127 +#: ../src/iop/monochrome.c:153 msgid "red filter" msgstr "Rotfilter" -#: ../src/iop/monochrome.c:546 +#: ../src/iop/monochrome.c:568 msgid "drag and scroll mouse wheel to adjust the virtual color filter" -msgstr "ziehen und mit Mausrad scrollen, um den virtuellen Farbfilter einzustellen" +msgstr "" +"ziehen und mit Mausrad scrollen, um den virtuellen Farbfilter einzustellen" -#: ../src/iop/monochrome.c:562 +#: ../src/iop/monochrome.c:584 msgid "how much to keep highlights" msgstr "wie sehr sollen Spitzlichter ausgenommen werden" @@ -17206,34 +18982,35 @@ msgid "invert film negative scans and simulate printing on paper" msgstr "Umkehrung von Negativscans mit Papiersimulation" -#: ../src/iop/negadoctor.c:469 +#: ../src/iop/negadoctor.c:483 msgid "D min" msgstr "D min" -#: ../src/iop/negadoctor.c:475 ../src/iop/negadoctor.c:856 +#: ../src/iop/negadoctor.c:489 ../src/iop/negadoctor.c:875 msgid "D min red component" msgstr "D min rote Komponente" #. Page FILM PROPERTIES -#: ../src/iop/negadoctor.c:832 +#: ../src/iop/negadoctor.c:851 msgid "film properties" msgstr "Filmeigenschaften" #. Dmin -#: ../src/iop/negadoctor.c:836 +#: ../src/iop/negadoctor.c:855 msgctxt "section" msgid "color of the film base" msgstr "Farbe des Filmmaterials" -#: ../src/iop/negadoctor.c:842 +#: ../src/iop/negadoctor.c:861 msgid "select color of film material from a swatch" msgstr "Farbe des Films aus einer Probe des Filmmaterials bestimmen" -#: ../src/iop/negadoctor.c:848 +#: ../src/iop/negadoctor.c:867 msgid "film material" msgstr "Filmmaterial" -#: ../src/iop/negadoctor.c:857 ../src/iop/negadoctor.c:867 ../src/iop/negadoctor.c:877 +#: ../src/iop/negadoctor.c:876 ../src/iop/negadoctor.c:886 +#: ../src/iop/negadoctor.c:896 msgid "" "adjust the color and shade of the film transparent base.\n" "this value depends on the film material, \n" @@ -17245,21 +19022,21 @@ "vom während des Entwickelns entstandenen chemischen Schleier \n" "sowie vom Weißabgleich des Scanners." -#: ../src/iop/negadoctor.c:866 +#: ../src/iop/negadoctor.c:885 msgid "D min green component" msgstr "D min grüne Komponente" -#: ../src/iop/negadoctor.c:876 +#: ../src/iop/negadoctor.c:895 msgid "D min blue component" msgstr "D min blaue Komponente" #. D max and scanner bias -#: ../src/iop/negadoctor.c:884 +#: ../src/iop/negadoctor.c:903 msgctxt "section" msgid "dynamic range of the film" msgstr "Dynamikbereich des Films" -#: ../src/iop/negadoctor.c:888 +#: ../src/iop/negadoctor.c:907 msgid "" "maximum density of the film, corresponding to white after inversion.\n" "this value depends on the film specifications, the developing process,\n" @@ -17267,107 +19044,117 @@ msgstr "" "Maximale Dichte des Films, entspricht Weiß nach Invertierung. \n" "Dies hängt ab von den Film-Kenngrößen, dem Entwicklungsprozess, \n" -"dem Dynamikumfang der Aufnahme sowie den Belichtungseinstellungen des Scanners." +"dem Dynamikumfang der Aufnahme sowie den Belichtungseinstellungen des " +"Scanners." -#: ../src/iop/negadoctor.c:892 +#: ../src/iop/negadoctor.c:911 msgctxt "section" msgid "scanner exposure settings" msgstr "Scanner Belichtungseinstellungen" -#: ../src/iop/negadoctor.c:896 +#: ../src/iop/negadoctor.c:915 msgid "" "correct the exposure of the scanner, for all RGB channels,\n" "before the inversion, so blacks are neither clipped or too pale." msgstr "" "Korrigiert die Belichtung aller RGB-Kanäle während des Scans, \n" -"vor der Invertierung, so dass die Tiefen weder abgeschnitten noch zu blass erscheinen." +"vor der Invertierung, so dass die Tiefen weder abgeschnitten noch zu blass " +"erscheinen." #. WB shadows -#: ../src/iop/negadoctor.c:903 +#: ../src/iop/negadoctor.c:922 msgctxt "section" msgid "shadows color cast" msgstr "Farbstich in den Schatten" -#: ../src/iop/negadoctor.c:909 +#: ../src/iop/negadoctor.c:928 msgid "select color of shadows from a swatch" msgstr "Farbe der Schatten aus einer Probe entnehmen" -#: ../src/iop/negadoctor.c:914 +#: ../src/iop/negadoctor.c:933 msgid "pick shadows color from image" msgstr "Farbe der Schatten aus dem Bild übernehmen." -#: ../src/iop/negadoctor.c:920 +#: ../src/iop/negadoctor.c:939 msgid "shadows red offset" msgstr "Schatten Rot-Offset" -#: ../src/iop/negadoctor.c:921 ../src/iop/negadoctor.c:928 ../src/iop/negadoctor.c:935 +#: ../src/iop/negadoctor.c:940 ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:954 msgid "" "correct the color cast in shadows so blacks are\n" "truly achromatic. Setting this value before\n" "the highlights illuminant white balance will help\n" "recovering the global white balance in difficult cases." msgstr "" -"Korrigiert die Farbe in den Schatten, so dass die Schwarzwerte gänzlich farblos sind. \n" -"Für die Wiederherstellung des globalen Weißabgleichs, kann es kann in schwierigen \n" -"Situationen hilfreich sein, diesen Wert vor dem Weißabgleich der Lichtquelle zu setzen." +"Korrigiert die Farbe in den Schatten, so dass die Schwarzwerte gänzlich " +"farblos sind. \n" +"Für die Wiederherstellung des globalen Weißabgleichs, kann es kann in " +"schwierigen \n" +"Situationen hilfreich sein, diesen Wert vor dem Weißabgleich der Lichtquelle " +"zu setzen." -#: ../src/iop/negadoctor.c:927 +#: ../src/iop/negadoctor.c:946 msgid "shadows green offset" msgstr "Schatten Grün-Offset" -#: ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:953 msgid "shadows blue offset" msgstr "Schatten Blau-Offset" #. WB highlights -#: ../src/iop/negadoctor.c:941 +#: ../src/iop/negadoctor.c:960 msgctxt "section" msgid "highlights white balance" msgstr "Weißabgleich der Spitzlichter" -#: ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:966 msgid "select color of illuminant from a swatch" msgstr "Farbe der Lichtquelle aus einer Probe entnehmen" -#: ../src/iop/negadoctor.c:952 +#: ../src/iop/negadoctor.c:971 msgid "pick illuminant color from image" msgstr "Farbe der Lichtquelle aus Bild wählen" -#: ../src/iop/negadoctor.c:958 +#: ../src/iop/negadoctor.c:977 msgid "illuminant red gain" msgstr "Lichtquelle Rot-Anhebung" -#: ../src/iop/negadoctor.c:959 ../src/iop/negadoctor.c:966 ../src/iop/negadoctor.c:973 +#: ../src/iop/negadoctor.c:978 ../src/iop/negadoctor.c:985 +#: ../src/iop/negadoctor.c:992 msgid "" "correct the color of the illuminant so whites are\n" "truly achromatic. Setting this value after\n" "the shadows color cast will help\n" "recovering the global white balance in difficult cases." msgstr "" -"Korrigiert die Farbe der Lichtquelle, so dass die Weißwerte gänzlich farblos sind. \n" -"Für die Wiederherstellung des globalen Weißabgleichs, kann es kann in schwierigen \n" -"Situationen hilfreich sein, diesen Wert nach dem Weißabgleich der Schatten zu setzen." +"Korrigiert die Farbe der Lichtquelle, so dass die Weißwerte gänzlich farblos " +"sind. \n" +"Für die Wiederherstellung des globalen Weißabgleichs, kann es kann in " +"schwierigen \n" +"Situationen hilfreich sein, diesen Wert nach dem Weißabgleich der Schatten " +"zu setzen." -#: ../src/iop/negadoctor.c:965 +#: ../src/iop/negadoctor.c:984 msgid "illuminant green gain" msgstr "Lichtquelle Grün-Anhebung" -#: ../src/iop/negadoctor.c:972 +#: ../src/iop/negadoctor.c:991 msgid "illuminant blue gain" msgstr "Lichtquelle Blau-Anhebung" #. Page PRINT PROPERTIES -#: ../src/iop/negadoctor.c:979 +#: ../src/iop/negadoctor.c:998 msgid "print properties" msgstr "Druckeigenschaften" #. print corrections -#: ../src/iop/negadoctor.c:982 +#: ../src/iop/negadoctor.c:1001 msgctxt "section" msgid "virtual paper properties" msgstr "virtuelle Papereigenschaften" -#: ../src/iop/negadoctor.c:988 +#: ../src/iop/negadoctor.c:1007 msgid "" "correct the density of black after the inversion,\n" "to adjust the global contrast while avoiding clipping shadows." @@ -17375,7 +19162,7 @@ "Korrigiert die Schwarzdichte nach Invertierung, \n" "um den globalen Kontrast anzupassen ohne die Tiefen abzuschneiden." -#: ../src/iop/negadoctor.c:993 +#: ../src/iop/negadoctor.c:1012 msgid "" "select the grade of the virtual paper, which is actually\n" "equivalent to applying a gamma. it compensates the film D max\n" @@ -17385,179 +19172,218 @@ "was der Anwendung einer Gamma-Korrektur entspricht. \n" "Dies gleicht D max aus und stellt den Kontrast wieder her." -#: ../src/iop/negadoctor.c:1001 +#: ../src/iop/negadoctor.c:1020 msgid "" "gradually compress specular highlights past this value\n" "to avoid clipping while pushing the exposure for mid-tones.\n" "this somewhat reproduces the behavior of matte paper." msgstr "" "Graduelle Kompression der Glanzlichter jenseits dieses Wertes, \n" -"um Abschneiden der Lichter zu verhindern und die Belichtung in die Mitten zu verschieben. \n" +"um Abschneiden der Lichter zu verhindern und die Belichtung in die Mitten zu " +"verschieben. \n" "Dies imitiert das Verhalten matten Papiers." -#: ../src/iop/negadoctor.c:1005 +#: ../src/iop/negadoctor.c:1024 msgctxt "section" msgid "virtual print emulation" msgstr "virtuelle Druckemulation" -#: ../src/iop/negadoctor.c:1012 +#: ../src/iop/negadoctor.c:1031 msgid "" "correct the printing exposure after inversion to adjust\n" "the global contrast and avoid clipping highlights." msgstr "" "Korrigiert die Belichtung beim Druck nach Invertierung, \n" -"um den globalen Kontrast anzupassen und das Beschneiden der Lichter zu vermeiden." +"um den globalen Kontrast anzupassen und das Beschneiden der Lichter zu " +"vermeiden." -#: ../src/iop/negadoctor.c:1020 +#: ../src/iop/negadoctor.c:1039 msgid "toggle on or off the color controls" msgstr "Schaltet die Bedienfelder zur Farbkorrektur ein oder aus." -#: ../src/iop/nlmeans.c:84 +#: ../src/iop/nlmeans.c:78 msgid "astrophoto denoise" msgstr "Astrofotografie-Entrauschen" -#: ../src/iop/nlmeans.c:89 +#: ../src/iop/nlmeans.c:83 msgid "denoise (non-local means)" msgstr "Entrauschen (nicht-lokales Mittel)" -#: ../src/iop/nlmeans.c:94 +#: ../src/iop/nlmeans.c:88 msgid "apply a poisson noise removal best suited for astrophotography" msgstr "Entfernt Poisson-Rauschen, ab besten geeignet in der Astrofotografie" -#: ../src/iop/nlmeans.c:459 +#: ../src/iop/nlmeans.c:462 msgid "radius of the patches to match" msgstr "Radius der Muster, die übereinstimmen müssen" -#: ../src/iop/nlmeans.c:467 +#: ../src/iop/nlmeans.c:470 msgid "how much to smooth brightness" msgstr "wie stark soll die Helligkeit geglättet werden" -#: ../src/iop/nlmeans.c:470 +#: ../src/iop/nlmeans.c:473 msgid "how much to smooth colors" msgstr "wie stark sollen die Farben geglättet werden" #. * let's fill the encapsulating widgets #. preview mode #. color scheme -#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2419 ../src/views/darkroom.c:2437 ../src/views/darkroom.c:2444 -#: ../src/views/darkroom.c:2454 ../src/views/darkroom.c:2471 +#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2258 +#: ../src/views/darkroom.c:2276 ../src/views/darkroom.c:2283 +#: ../src/views/darkroom.c:2293 ../src/views/darkroom.c:2310 msgid "overexposed" msgstr "Überbelichtet" -#: ../src/iop/overexposed.c:130 ../src/iop/overexposed.c:360 +#: ../src/iop/overexposed.c:123 ../src/iop/overexposed.c:352 msgid "module overexposed failed in buffer allocation" msgstr "Modul „Überbelichtet“ bei Pufferzuweisung fehlgeschlagen" -#: ../src/iop/overexposed.c:156 ../src/iop/overexposed.c:370 +#: ../src/iop/overexposed.c:149 ../src/iop/overexposed.c:362 msgid "module overexposed failed in color conversion" msgstr "Modul „Überbelichtet“ bei Farbkonvertierung fehlgeschlagen" +#: ../src/iop/primaries.c:74 +msgid "rgb primaries" +msgstr "RGB Primärfarben" + +#: ../src/iop/primaries.c:79 +msgid "adjustment of the RGB color primaries for color grading" +msgstr "Anpassung der RGB-Primärfarben für das Color Grading" + +#: ../src/iop/primaries.c:395 +msgid "shift red towards yellow or magenta" +msgstr "Anpassung Rot hin zu gelb oder magenta" + +#: ../src/iop/primaries.c:396 +msgid "red primary purity" +msgstr "Anpassung der Reinheit Rot" + +#: ../src/iop/primaries.c:397 +msgid "shift green towards cyan or yellow" +msgstr "Anpassung Grün hin zu cyan oder gelb" + +#: ../src/iop/primaries.c:398 +msgid "green primary purity" +msgstr "Anpassung der Reinheit Grün" + +#: ../src/iop/primaries.c:399 +msgid "shift blue towards magenta or cyan" +msgstr "Anpassung Blau hin zu magenta oder cyan" + +#: ../src/iop/primaries.c:400 +msgid "blue primary purity" +msgstr "Anpassung der Reinheit Blau" + #: ../src/iop/profile_gamma.c:96 msgid "unbreak input profile" msgstr "Eingabeprofil korrigieren" #: ../src/iop/profile_gamma.c:101 msgid "correct input color profiles meant to be applied on non-linear RGB" -msgstr "Korrigiert Eingabefarbprofil wenn Bilddaten in nichtlinearem RGB vorliegen" +msgstr "" +"Korrigiert Eingabefarbprofil wenn Bilddaten in nichtlinearem RGB vorliegen" -#: ../src/iop/profile_gamma.c:136 +#: ../src/iop/profile_gamma.c:138 msgid "16 EV dynamic range (generic)" msgstr "16 EV Dynamikbereich (generisch)" -#: ../src/iop/profile_gamma.c:142 +#: ../src/iop/profile_gamma.c:144 msgid "14 EV dynamic range (generic)" msgstr "14 EV Dynamikbereich (generisch)" -#: ../src/iop/profile_gamma.c:148 +#: ../src/iop/profile_gamma.c:150 msgid "12 EV dynamic range (generic)" msgstr "12 EV Dynamikbereich (generisch)" -#: ../src/iop/profile_gamma.c:154 +#: ../src/iop/profile_gamma.c:156 msgid "10 EV dynamic range (generic)" msgstr "10 EV Dynamikbereich (generisch)" -#: ../src/iop/profile_gamma.c:160 +#: ../src/iop/profile_gamma.c:162 msgid "08 EV dynamic range (generic)" msgstr "08 EV Dynamikbereich (generisch)" -#: ../src/iop/profile_gamma.c:623 +#: ../src/iop/profile_gamma.c:637 msgid "linear part" msgstr "linearer Teil" -#: ../src/iop/profile_gamma.c:627 +#: ../src/iop/profile_gamma.c:641 msgid "gamma exponential factor" msgstr "Gamma-Exponent" -#: ../src/iop/profile_gamma.c:638 +#: ../src/iop/profile_gamma.c:652 msgid "adjust to match the average luma of the subject" msgstr "Anpassung an die durchschnittliche Luma des Motivs" -#: ../src/iop/profile_gamma.c:644 +#: ../src/iop/profile_gamma.c:658 msgid "" "number of stops between middle gray and pure black\n" "this is a reading a light meter would give you on the scene" msgstr "" "Anzahl der Stufen zwischen mittlerem Grau und absolutem Schwarz.\n" -"Dies entspricht dem, was eine Belichtungsmessung der aufgenommenen Szene bei Objektmessung liefern würde." +"Dies entspricht dem, was eine Belichtungsmessung der aufgenommenen Szene bei " +"Objektmessung liefern würde." -#: ../src/iop/profile_gamma.c:650 +#: ../src/iop/profile_gamma.c:664 msgid "" "number of stops between pure black and pure white\n" "this is a reading a light meter would give you on the scene" msgstr "" "Anzahl der Stufen zwischen absolutem Schwarz und reinem Weiß.\n" -"Dies entspricht dem, was eine Belichtungsmessung der aufgenommenen Szene bei Lichtmessung liefern würde." +"Dies entspricht dem, was eine Belichtungsmessung der aufgenommenen Szene bei " +"Lichtmessung liefern würde." -#: ../src/iop/profile_gamma.c:652 +#: ../src/iop/profile_gamma.c:666 msgctxt "section" msgid "optimize automatically" msgstr "automatisch optimieren" -#: ../src/iop/profile_gamma.c:656 +#: ../src/iop/profile_gamma.c:670 msgid "" -"enlarge or shrink the computed dynamic range\n" -"this is useful when noise perturbates the measurements" +"increase or decrease the computed dynamic range\n" +"this is useful when noise distorts the measurement" msgstr "" -"Vergrößert oder verkleinert den berechneten Dynamikbereich.\n" +"Den berechneten Dynamikbereich vergrößern oder verkleinern.\n" "Dies ist nützlich, wenn Rauschen die automatische Bestimmung erschwert." -#: ../src/iop/profile_gamma.c:660 +#: ../src/iop/profile_gamma.c:674 msgid "make an optimization with some guessing" msgstr "Führe eine Optimierung auf Grundlage einer Schätzung durch." -#: ../src/iop/profile_gamma.c:669 +#: ../src/iop/profile_gamma.c:683 msgid "tone mapping method" msgstr "Tonemapping-Methode" -#: ../src/iop/rawdenoise.c:124 +#: ../src/iop/rawdenoise.c:138 msgid "raw denoise" -msgstr "Raw-Entrauschen" +msgstr "RAW-Entrauschen" -#: ../src/iop/rawdenoise.c:129 +#: ../src/iop/rawdenoise.c:143 msgid "denoise the raw picture early in the pipeline" msgstr "RAW entrauschen vor Entrastern" -#: ../src/iop/rawdenoise.c:939 +#: ../src/iop/rawdenoise.c:955 msgid "" "raw denoising\n" "only works for raw images." msgstr "" -"Raw-Entrauschen funktioniert\n" -"nur mit Raw-Bildern." +"RAW-Entrauschen funktioniert\n" +"nur mit RAW-Bildern." #. * let's fill the encapsulating widgets #. mode of operation -#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2369 ../src/views/darkroom.c:2387 -#: ../src/views/darkroom.c:2393 ../src/views/darkroom.c:2406 +#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2226 ../src/views/darkroom.c:2232 +#: ../src/views/darkroom.c:2245 msgid "raw overexposed" -msgstr "Raw-Überbelichtet" +msgstr "RAW-Überbelichtet" #: ../src/iop/rawprepare.c:99 msgctxt "modulename" msgid "raw black/white point" -msgstr "Raw-Schwarz-/Weißpunkt" +msgstr "RAW-Schwarz-/Weißpunkt" -#: ../src/iop/rawprepare.c:156 +#: ../src/iop/rawprepare.c:172 msgid "" "sets technical specificities of the raw sensor.\n" "touch with great care!" @@ -17565,67 +19391,68 @@ "Internes Modul um die technischen Sensoreigenschaften einzustellen.\n" "Mit Vorsicht verwenden!" -#: ../src/iop/rawprepare.c:168 +#: ../src/iop/rawprepare.c:184 msgid "passthrough" msgstr "durchschleifen" -#: ../src/iop/rawprepare.c:655 +#: ../src/iop/rawprepare.c:663 msgid "invalid crop parameters" msgstr "ungültige Crop Parameter" -#: ../src/iop/rawprepare.c:656 -msgid "please reset to defaults, update your preset or set to something correct" +#: ../src/iop/rawprepare.c:664 +msgid "" +"please reset to defaults, update your preset or set to something correct" msgstr "" -"bitte auf die Standardeinstellungen zurücksetzen, die Voreinstellungen aktualisieren oder auf etwas geeignetes " -"einstellen" +"bitte auf die Standardeinstellungen zurücksetzen, die Voreinstellungen " +"aktualisieren oder auf etwas geeignetes einstellen" -#: ../src/iop/rawprepare.c:922 +#: ../src/iop/rawprepare.c:930 msgid "black level 0" msgstr "Schwarzwert 0" -#: ../src/iop/rawprepare.c:923 +#: ../src/iop/rawprepare.c:931 msgid "black level 1" msgstr "Schwarzwert 1" -#: ../src/iop/rawprepare.c:924 +#: ../src/iop/rawprepare.c:932 msgid "black level 2" msgstr "Schwarzwert 2" -#: ../src/iop/rawprepare.c:925 +#: ../src/iop/rawprepare.c:933 msgid "black level 3" msgstr "Schwarzwert 3" -#: ../src/iop/rawprepare.c:952 +#: ../src/iop/rawprepare.c:960 msgid "raw flat field correction to compensate for lens shading" -msgstr "Raw Flat Field Korrektur zur Kompensation von Objektivabschattung" +msgstr "RAW Flat Field Korrektur zur Kompensation von Objektivabschattung" -#: ../src/iop/rawprepare.c:957 +#: ../src/iop/rawprepare.c:965 msgctxt "section" msgid "crop" msgstr "Zuschneiden" -#: ../src/iop/rawprepare.c:960 +#: ../src/iop/rawprepare.c:968 msgid "crop left border" msgstr "Beschnitt links" -#: ../src/iop/rawprepare.c:964 +#: ../src/iop/rawprepare.c:972 msgid "crop top border" msgstr "Beschnitt oben" -#: ../src/iop/rawprepare.c:968 +#: ../src/iop/rawprepare.c:976 msgid "crop right border" msgstr "Beschnitt rechts" -#: ../src/iop/rawprepare.c:972 +#: ../src/iop/rawprepare.c:980 msgid "crop bottom border" msgstr "Beschnitt unten" -#: ../src/iop/rawprepare.c:981 +#: ../src/iop/rawprepare.c:989 msgid "" "raw black/white point correction\n" "only works for the sensors that need it." msgstr "" -"Raw-Schwarz-/Weißpunktkorrektur\n" +"RAW-Schwarz-/Weißpunktkorrektur\n" "funktioniert nur für Sensoren,\n" "die es benötigen." @@ -17642,14 +19469,15 @@ msgstr "Fülllicht" #: ../src/iop/relight.c:96 ../src/iop/zonesystem.c:122 -msgid "this module is deprecated. please use the tone equalizer module instead." +msgid "" +"this module is deprecated. please use the tone equalizer module instead." msgstr "veraltetes Modul; abgelöst durch Tonwert Equalizer" -#: ../src/iop/relight.c:263 +#: ../src/iop/relight.c:259 msgid "the fill-light in EV" msgstr "Füllicht in EV" -#: ../src/iop/relight.c:272 +#: ../src/iop/relight.c:268 msgid "" "select the center of fill-light\n" "ctrl+click to select an area" @@ -17657,16 +19485,11 @@ "Zentrum des Fülllichts wählen\n" "Strg+Klick zur Auswahl einer Fläche" -#: ../src/iop/relight.c:276 +#: ../src/iop/relight.c:272 msgid "toggle tool for picking median lightness in image" msgstr "mittlere Helligkeit im Bild wählen" -#: ../src/iop/relight.c:279 ../src/libs/export.c:1131 ../src/libs/metadata_view.c:147 -#: ../src/libs/print_settings.c:2537 -msgid "width" -msgstr "Breite" - -#: ../src/iop/relight.c:280 +#: ../src/iop/relight.c:276 msgid "width of fill-light area defined in zones" msgstr "Breite des Füllicht-Bereichs, definiert in Zonen." @@ -17686,102 +19509,105 @@ msgid "geometric and frequential, RGB" msgstr "geometrisch und frequenzbezogen, RGB" -#: ../src/iop/retouch.c:1538 +#: ../src/iop/retouch.c:1689 msgid "cannot display scales when the blending mask is displayed" -msgstr "Kann keine Skalen anzeigen wenn die Maske zum Überblenden aktiviert ist" +msgstr "" +"Kann keine Skalen anzeigen wenn die Maske zum Überblenden aktiviert ist" -#: ../src/iop/retouch.c:1861 ../src/iop/retouch.c:1863 ../src/iop/retouch.c:1865 ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2045 ../src/iop/retouch.c:2047 +#: ../src/iop/retouch.c:2049 ../src/iop/retouch.c:2051 #, c-format msgid "default tool changed to %s" msgstr "Standard Werkzeug geändert zu %s" -#: ../src/iop/retouch.c:1861 +#: ../src/iop/retouch.c:2045 msgid "cloning" msgstr "klonen" -#: ../src/iop/retouch.c:1863 +#: ../src/iop/retouch.c:2047 msgid "healing" msgstr "heilen" -#: ../src/iop/retouch.c:2226 +#: ../src/iop/retouch.c:2448 msgid "shapes:" msgstr "Formen:" -#: ../src/iop/retouch.c:2230 +#: ../src/iop/retouch.c:2454 msgid "" "to add a shape select an algorithm and a shape type and click on the image.\n" "shapes are added to the current scale" msgstr "" -"um eine Form hinzuzufügen, wähle einen Algorithmus und einen Formtyp aus und klicke auf das Bild.\n" +"um eine Form hinzuzufügen, wähle einen Algorithmus und einen Formtyp aus und " +"klicke auf das Bild.\n" "Formen werden zur aktuellen Skalierung hinzugefügt" -#. display & suppress masks -#. copy/paste shapes -#. display final image/current scale -#. auto-levels button -#: ../src/iop/retouch.c:2233 ../src/iop/retouch.c:2334 ../src/iop/retouch.c:2339 ../src/iop/retouch.c:2347 -#: ../src/iop/retouch.c:2351 ../src/iop/retouch.c:2358 ../src/iop/retouch.c:2392 +#: ../src/iop/retouch.c:2458 ../src/iop/retouch.c:2591 +#: ../src/iop/retouch.c:2597 ../src/iop/retouch.c:2606 +#: ../src/iop/retouch.c:2611 ../src/iop/retouch.c:2619 +#: ../src/iop/retouch.c:2664 msgid "editing" msgstr "Bearbeiten" -#: ../src/iop/retouch.c:2233 +#: ../src/iop/retouch.c:2459 msgid "show and edit shapes on the current scale" msgstr "Anzeigen und Bearbeiten von Formen in der aktuellen Größe" -#: ../src/iop/retouch.c:2234 +#: ../src/iop/retouch.c:2460 msgid "show and edit shapes in restricted mode" msgstr "Anzeigen und Bearbeiten von Formen im beschränkten Modus" -#: ../src/iop/retouch.c:2257 +#: ../src/iop/retouch.c:2489 msgid "algorithms:" msgstr "Algorithmen:" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2498 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2510 msgid "tools" msgstr "Werkzeuge" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2278 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2518 msgid "activate blur tool" msgstr "Weichzeichnen-Werkzeug" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2493 ../src/iop/retouch.c:2499 +#: ../src/iop/retouch.c:2505 ../src/iop/retouch.c:2511 msgid "change algorithm for current form" msgstr "Algorithmus für aktuelle Form ändern" -#: ../src/iop/retouch.c:2264 ../src/iop/retouch.c:2281 +#: ../src/iop/retouch.c:2498 ../src/iop/retouch.c:2521 msgid "activate fill tool" msgstr "Füllwerkzeug" -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2284 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2524 msgid "activate cloning tool" msgstr "Klonen-Werkzeug" -#: ../src/iop/retouch.c:2272 ../src/iop/retouch.c:2287 +#: ../src/iop/retouch.c:2510 ../src/iop/retouch.c:2527 msgid "activate healing tool" msgstr "Heilen-Werkzeug" #. overwrite tooltip ourself to handle shift+click -#: ../src/iop/retouch.c:2276 +#: ../src/iop/retouch.c:2516 msgid "ctrl+click to change tool for current form" msgstr "Strg+Klick: für aktuelle Form verwenden" -#: ../src/iop/retouch.c:2277 +#: ../src/iop/retouch.c:2517 msgid "shift+click to set the tool as default" msgstr "Shift+Klick: als Standard setzen" -#: ../src/iop/retouch.c:2296 +#: ../src/iop/retouch.c:2537 msgid "scales:" msgstr "Skalen:" -#: ../src/iop/retouch.c:2301 +#: ../src/iop/retouch.c:2544 msgid "current:" msgstr "aktuell:" -#: ../src/iop/retouch.c:2306 +#: ../src/iop/retouch.c:2551 msgid "merge from:" msgstr "zusammenführen von:" -#: ../src/iop/retouch.c:2314 +#: ../src/iop/retouch.c:2562 msgid "" "top slider adjusts where the merge scales start\n" "bottom slider adjusts the number of scales\n" @@ -17789,50 +19615,52 @@ "top line indicates that the scale is visible at current zoom level\n" "bottom line indicates that the scale has shapes on it" msgstr "" -"Der obere Schieberegler bestimmt die Startposition der Zusammenführungsskala. \n" +"Der obere Schieberegler bestimmt die Startposition der " +"Zusammenführungsskala. \n" "Der untere Schieberegler legt die Skaleneinteilung fest. \n" "Der Punkt kennzeichnet die aktuelle Skala. \n" -"Die obere Linie zeigt an, dass die Skala bei der aktuellen Zoomstufe sichtbar ist. \n" +"Die obere Linie zeigt an, dass die Skala bei der aktuellen Zoomstufe " +"sichtbar ist. \n" "Retuschierte Skalen werden durch die untere Linie kenntlich gemacht." -#: ../src/iop/retouch.c:2334 +#: ../src/iop/retouch.c:2591 msgid "display masks" msgstr "Masken anzeigen" -#: ../src/iop/retouch.c:2339 +#: ../src/iop/retouch.c:2597 msgid "temporarily switch off shapes" msgstr "Formen vorübergehend ausschalten" -#: ../src/iop/retouch.c:2347 +#: ../src/iop/retouch.c:2606 msgid "paste cut shapes to current scale" msgstr "Zugeschnittene Formen des aktuellen Maßstab einfügen" -#: ../src/iop/retouch.c:2351 +#: ../src/iop/retouch.c:2611 msgid "cut shapes from current scale" msgstr "Zuschneiden der Formen vom aktuellen Maßstab" -#: ../src/iop/retouch.c:2358 +#: ../src/iop/retouch.c:2619 msgid "display wavelet scale" msgstr "Wavelet-Skala anzeigen" -#: ../src/iop/retouch.c:2366 +#: ../src/iop/retouch.c:2627 msgctxt "section" msgid "preview single scale" msgstr "Vorschau einer einzelnen Skala" -#: ../src/iop/retouch.c:2377 +#: ../src/iop/retouch.c:2641 msgid "adjust preview levels" msgstr "Vorschau-Ebenen anpassen" -#: ../src/iop/retouch.c:2392 ../src/iop/rgblevels.c:1051 +#: ../src/iop/retouch.c:2664 ../src/iop/rgblevels.c:1106 msgid "auto levels" msgstr "automatisches Level" -#: ../src/iop/retouch.c:2400 +#: ../src/iop/retouch.c:2672 msgid "shape selected:" msgstr "Form ausgewählt:" -#: ../src/iop/retouch.c:2405 +#: ../src/iop/retouch.c:2678 msgid "" "click on a shape to select it,\n" "to unselect click on an empty space" @@ -17840,61 +19668,63 @@ "klicke auf eine Form, um diese auszuwählen, \n" "um die Auswahl aufzuheben, klick auf eine leere Stelle" -#: ../src/iop/retouch.c:2412 +#: ../src/iop/retouch.c:2687 msgid "erase the detail or fills with chosen color" msgstr "löscht das Detail oder füllt mit der gewählten Farbe" -#: ../src/iop/retouch.c:2419 +#: ../src/iop/retouch.c:2697 msgid "fill color: " msgstr "Füllfarbe: " -#: ../src/iop/retouch.c:2424 ../src/iop/retouch.c:2425 +#: ../src/iop/retouch.c:2702 ../src/iop/retouch.c:2703 msgid "select fill color" msgstr "Füllfarbe auswählen" -#: ../src/iop/retouch.c:2430 +#: ../src/iop/retouch.c:2713 msgid "pick fill color from image" msgstr "Füllfarbe aus Bild wählen" -#: ../src/iop/retouch.c:2431 +#: ../src/iop/retouch.c:2714 msgid "pick fill color" msgstr "Füllfarbe wählen" -#: ../src/iop/retouch.c:2439 +#: ../src/iop/retouch.c:2724 msgid "adjusts color brightness to fine-tune it. works with erase as well" -msgstr "passt die Farbintensität an, um diese zu verfeinern. Funktioniert auch mit Radieren" +msgstr "" +"passt die Farbintensität an, um diese zu verfeinern. Funktioniert auch mit " +"Radieren" -#: ../src/iop/retouch.c:2445 +#: ../src/iop/retouch.c:2730 msgid "type for the blur algorithm" msgstr "Typ des Weichzeichnungsalgorithmus" # Ugh ... -#: ../src/iop/retouch.c:2449 +#: ../src/iop/retouch.c:2734 msgid "radius of the selected blur type" msgstr "Radius des selektierten Weichzeichnungsfilters" -#: ../src/iop/retouch.c:2455 +#: ../src/iop/retouch.c:2741 msgid "set the opacity on the selected shape" msgstr "setzt die Deckkraft der selektierten Form" -#: ../src/iop/retouch.c:2461 +#: ../src/iop/retouch.c:2748 msgctxt "section" msgid "retouch tools" msgstr "Retusche-Werkzeuge" #. wavelet decompose -#: ../src/iop/retouch.c:2470 +#: ../src/iop/retouch.c:2757 msgctxt "section" msgid "wavelet decompose" msgstr "Waveletzerlegung" #. shapes -#: ../src/iop/retouch.c:2484 +#: ../src/iop/retouch.c:2771 msgctxt "section" msgid "shapes" msgstr "Formen" -#: ../src/iop/retouch.c:3589 ../src/iop/retouch.c:4427 +#: ../src/iop/retouch.c:3986 ../src/iop/retouch.c:4956 #, c-format msgid "max scale is %i for this image size" msgstr "Die maximale Skalierung ist %i für diese Bildgröße" @@ -17903,59 +19733,59 @@ msgid "rgb curve" msgstr "RGB-Kurve" -#: ../src/iop/rgbcurve.c:142 +#: ../src/iop/rgbcurve.c:144 msgid "alter an image’s tones using curves in RGB color space" msgstr "Tonwertanpassung mittels Kurven im RGB Farbraum" -#: ../src/iop/rgbcurve.c:193 ../src/iop/tonecurve.c:548 +#: ../src/iop/rgbcurve.c:195 ../src/iop/tonecurve.c:569 msgid "gamma 1.0 (linear)" msgstr "Gamma 1.0 (linear)" -#: ../src/iop/rgbcurve.c:203 ../src/iop/tonecurve.c:558 +#: ../src/iop/rgbcurve.c:205 ../src/iop/tonecurve.c:579 msgid "contrast - med (linear)" msgstr "Kontrast - mittel (linear)" -#: ../src/iop/rgbcurve.c:212 ../src/iop/tonecurve.c:567 +#: ../src/iop/rgbcurve.c:214 ../src/iop/tonecurve.c:588 msgid "contrast - high (linear)" msgstr "Kontrast - hoch (linear)" -#: ../src/iop/rgbcurve.c:226 ../src/iop/tonecurve.c:579 +#: ../src/iop/rgbcurve.c:228 ../src/iop/tonecurve.c:600 msgid "contrast - med (gamma 2.2)" msgstr "Kontrast - mittel (Gamma 2.2)" -#: ../src/iop/rgbcurve.c:239 ../src/iop/tonecurve.c:590 +#: ../src/iop/rgbcurve.c:241 ../src/iop/tonecurve.c:611 msgid "contrast - high (gamma 2.2)" msgstr "Kontrast - hoch (Gamma 2.2)" -#: ../src/iop/rgbcurve.c:252 ../src/iop/tonecurve.c:603 +#: ../src/iop/rgbcurve.c:254 ../src/iop/tonecurve.c:624 msgid "gamma 2.0" msgstr "Gamma 2.0" -#: ../src/iop/rgbcurve.c:258 ../src/iop/tonecurve.c:609 +#: ../src/iop/rgbcurve.c:260 ../src/iop/tonecurve.c:630 msgid "gamma 0.5" msgstr "Gamma 0.5" -#: ../src/iop/rgbcurve.c:263 ../src/iop/tonecurve.c:614 +#: ../src/iop/rgbcurve.c:265 ../src/iop/tonecurve.c:635 msgid "logarithm (base 2)" msgstr "logarithmisch (Basis 2)" -#: ../src/iop/rgbcurve.c:268 ../src/iop/tonecurve.c:619 +#: ../src/iop/rgbcurve.c:270 ../src/iop/tonecurve.c:640 msgid "exponential (base 2)" msgstr "exponentiell (Basis 2)" -#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:999 +#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:1038 msgid "choose between linked and independent channels." msgstr "Zwischen verknüpften und unabhängigen Kanälen wählen." -#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1003 +#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1043 msgid "curve nodes for r channel" msgstr "Kurvenknoten für den R-Kanal" -#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1004 +#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1044 msgid "curve nodes for g channel" msgstr "Kurvenknoten für den G-Kanal" -#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1005 +#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1045 msgid "curve nodes for b channel" msgstr "Kurvenknoten für den B-Kanal" @@ -17963,15 +19793,15 @@ msgid "rgb levels" msgstr "RGB Werte" -#: ../src/iop/rgblevels.c:122 +#: ../src/iop/rgblevels.c:124 msgid "adjust black, white and mid-gray points in RGB color space" msgstr "Schwarz-/Weißpunkt und Mittleres Grau in RGB anpassen " -#: ../src/iop/rgblevels.c:1056 +#: ../src/iop/rgblevels.c:1112 msgid "auto region" msgstr "automatischer Bereich" -#: ../src/iop/rgblevels.c:1058 +#: ../src/iop/rgblevels.c:1115 msgid "" "apply auto levels based on a region defined by the user\n" "click and drag to draw the area\n" @@ -17986,7 +19816,7 @@ msgid "rotate pixels" msgstr "Pixel-Drehung" -#: ../src/iop/rotatepixels.c:97 ../src/iop/scalepixels.c:82 +#: ../src/iop/rotatepixels.c:99 ../src/iop/scalepixels.c:84 msgid "" "internal module to setup technical specificities of raw sensor.\n" "\n" @@ -17995,36 +19825,39 @@ "Internes Modul um Sensoreigenschaften zu einzustellen.\n" "Werte sollten nicht verändert werden!" -#: ../src/iop/rotatepixels.c:366 +#: ../src/iop/rotatepixels.c:381 msgid "automatic pixel rotation" msgstr "automatische Pixel-Drehung" -#: ../src/iop/rotatepixels.c:367 +#: ../src/iop/rotatepixels.c:382 msgid "" "automatic pixel rotation\n" "only works for the sensors that need it." -msgstr "Automatische Pixel-Drehung. Funktioniert nur für Sensoren, die es benötigen." +msgstr "" +"Automatische Pixel-Drehung. Funktioniert nur für Sensoren, die es benötigen." #: ../src/iop/scalepixels.c:55 msgctxt "modulename" msgid "scale pixels" msgstr "Pixel-Skalierung" -#: ../src/iop/scalepixels.c:271 +#: ../src/iop/scalepixels.c:281 msgid "automatic pixel scaling" msgstr "automatische Pixel-Skalierung" -#: ../src/iop/scalepixels.c:272 +#: ../src/iop/scalepixels.c:282 msgid "" "automatic pixel scaling\n" "only works for the sensors that need it." -msgstr "Automatische Pixel-Skalierung. Funktioniert nur für Sensoren, die es benötigen." +msgstr "" +"Automatische Pixel-Skalierung. Funktioniert nur für Sensoren, die es " +"benötigen." -#: ../src/iop/shadhi.c:175 +#: ../src/iop/shadhi.c:120 msgid "shadows and highlights" msgstr "Schatten und Spitzlichter" -#: ../src/iop/shadhi.c:195 +#: ../src/iop/shadhi.c:142 msgid "" "modify the tonal range of the shadows and highlights\n" "of an image by enhancing local contrast." @@ -18032,27 +19865,27 @@ "Tonwertanpassung von Schatten und Lichter\n" "mittels lokaler Kontrasterhöhung " -#: ../src/iop/shadhi.c:676 ../src/iop/splittoning.c:548 +#: ../src/iop/shadhi.c:711 ../src/iop/splittoning.c:544 msgid "compress" msgstr "komprimieren" -#: ../src/iop/shadhi.c:683 +#: ../src/iop/shadhi.c:718 msgid "correct shadows" msgstr "Schatten korrigieren" -#: ../src/iop/shadhi.c:684 +#: ../src/iop/shadhi.c:719 msgid "correct highlights" msgstr "Spitzlichter korrigieren" -#: ../src/iop/shadhi.c:685 +#: ../src/iop/shadhi.c:720 msgid "shift white point" msgstr "Weißpunkt verschieben" -#: ../src/iop/shadhi.c:687 +#: ../src/iop/shadhi.c:722 msgid "filter to use for softening. bilateral avoids halos" msgstr "Filter, der zum Weichzeichnen genutzt wird. Bilateral vermeidet Halos" -#: ../src/iop/shadhi.c:688 +#: ../src/iop/shadhi.c:723 msgid "" "compress the effect on shadows/highlights and\n" "preserve mid-tones" @@ -18060,11 +19893,11 @@ "komprimiere den Effekt in den\n" "Schatten/Spitzlichtern und erhalte die Mitten" -#: ../src/iop/shadhi.c:689 +#: ../src/iop/shadhi.c:724 msgid "adjust saturation of shadows" msgstr "Sättigung der Schatten anpassen" -#: ../src/iop/shadhi.c:690 +#: ../src/iop/shadhi.c:725 msgid "adjust saturation of highlights" msgstr "Sättigung der Spitzlichter anpassen" @@ -18073,46 +19906,47 @@ msgid "sharpen" msgstr "Schärfen" -#: ../src/iop/sharpen.c:93 +#: ../src/iop/sharpen.c:95 msgid "sharpen the details in the image using a standard UnSharp Mask (USM)" msgstr "Detailschärfen mit Standard Unschärfemaske (USM)" -#: ../src/iop/sharpen.c:95 +#: ../src/iop/sharpen.c:97 msgid "linear or non-linear, Lab, display or scene-referred" msgstr "linear oder nichtlinear, Lab, anzeige- oder szenenbezogen" -#: ../src/iop/sharpen.c:97 +#: ../src/iop/sharpen.c:99 msgid "quasi-linear, Lab, display or scene-referred" msgstr "quasi-linear, Lab, anzeige- oder szenenbezogen" #. add the preset. #. restrict to raw images -#: ../src/iop/sharpen.c:104 ../src/iop/sharpen.c:108 +#: ../src/iop/sharpen.c:106 ../src/iop/sharpen.c:110 msgid "sharpen" msgstr "schärfen" -#: ../src/iop/sharpen.c:443 +#: ../src/iop/sharpen.c:438 msgid "spatial extent of the unblurring" msgstr "Ausdehnung des Schärfens" -#: ../src/iop/sharpen.c:447 +#: ../src/iop/sharpen.c:442 msgid "strength of the sharpen" msgstr "Stärke des Schärfens" -#: ../src/iop/sharpen.c:451 +#: ../src/iop/sharpen.c:446 msgid "threshold to activate sharpen" msgstr "Schwellwert zum Aktivieren des Schärfens" -#: ../src/iop/sigmoid.c:89 +#: ../src/iop/sigmoid.c:195 msgid "sigmoid" msgstr "Sigmoid" # inhaltgerechte Übersetzung view transformation ? -#: ../src/iop/sigmoid.c:94 +# was ist der Alternativvorschlag? +#: ../src/iop/sigmoid.c:200 msgid "tone mapping|view transform|display transform" msgstr "Tonemapping|Bildtransformation|Anzeigetransformation" -#: ../src/iop/sigmoid.c:99 +#: ../src/iop/sigmoid.c:206 msgid "" "apply a view transform to make a image displayable\n" "on a screen or print. uses a robust and smooth\n" @@ -18122,19 +19956,19 @@ "Bildschirm oder auf einem Drucker darstellbar zu machen.\n" "Tonwertkurve mit optionalen Farberhaltungsmethoden." -#: ../src/iop/sigmoid.c:155 +#: ../src/iop/sigmoid.c:258 msgid "neutral gray" msgstr "neutrales Grau" -#: ../src/iop/sigmoid.c:160 +#: ../src/iop/sigmoid.c:264 msgid "ACES 100-nit like" msgstr "ACES 100-nit ähnlich" -#: ../src/iop/sigmoid.c:165 +#: ../src/iop/sigmoid.c:270 msgid "Reinhard" msgstr "Reinhard" -#: ../src/iop/sigmoid.c:683 +#: ../src/iop/sigmoid.c:917 msgid "" "compression of the applied curve\n" "implicitly defines the supported input dynamic range" @@ -18142,7 +19976,7 @@ "Kompression der verwendeten Kurve\n" "definiert implizit den unterstützten Eingangsdynamikbereich" -#: ../src/iop/sigmoid.c:686 +#: ../src/iop/sigmoid.c:920 msgid "" "shift the compression towards shadows or highlights.\n" "negative values increase contrast in shadows.\n" @@ -18154,23 +19988,63 @@ "Positive Werte erhöhen den Kontrast in den Lichtern.\n" "Am jeweils Ende wird der Kontrast verringert." -#: ../src/iop/sigmoid.c:695 +#: ../src/iop/sigmoid.c:929 msgid "" "optional correction of the hue twist introduced by\n" "the per-channel processing method." msgstr "" -"optionale Korrektur der Farbverscheiebung, die durch die\n" -"die Methode der kanalweisen Verarbeitung." +"optionale Korrektur der Farbverschiebung, die durch die\n" +"Methode der kanalweisen Verarbeitung verursacht wird." + +#: ../src/iop/sigmoid.c:936 ../src/iop/sigmoid.c:940 +msgid "primaries" +msgstr "RGB Primärfarben" + +#: ../src/iop/sigmoid.c:937 +msgid "set custom primaries" +msgstr "manuelles Anpassen der Primärfarben" + +#: ../src/iop/sigmoid.c:943 +msgid "primaries to use as the base for below adjustments" +msgstr "Farbraum, auf dem die Primärfarben für die Anpassung basieren" + +#: ../src/iop/sigmoid.c:962 +msgid "attenuate the purity of the red primary" +msgstr "Farbreinheit der Primärfarbe Rot reduzieren" + +#: ../src/iop/sigmoid.c:963 +msgid "rotate the red primary" +msgstr "Anpassung Rot hin zu gelb oder magenta" + +#: ../src/iop/sigmoid.c:964 +msgid "attenuate the purity of the green primary" +msgstr "Farbreinheit der Primärfarbe Grün reduzieren" + +#: ../src/iop/sigmoid.c:965 +msgid "rotate the green primary" +msgstr "Anpassung Grün hin zu cyan oder gelb" + +#: ../src/iop/sigmoid.c:966 +msgid "attenuate the purity of the blue primary" +msgstr "Farbreinheit der Primärfarbe Blau reduzieren" + +#: ../src/iop/sigmoid.c:967 +msgid "rotate the blue primary" +msgstr "Anpassung Blau hin zu magenta oder cyan" + +#: ../src/iop/sigmoid.c:974 +msgid "recover some of the original purity after the inset" +msgstr "originale Reinheit nach Anpassung teilweise wieder herstellen" -#: ../src/iop/sigmoid.c:702 +#: ../src/iop/sigmoid.c:978 msgid "display luminance" msgstr "Anzeigeluminanz" -#: ../src/iop/sigmoid.c:706 +#: ../src/iop/sigmoid.c:979 msgid "set display black/white targets" msgstr "Zielwerte für Schwarz/Weiß einstellen" -#: ../src/iop/sigmoid.c:714 +#: ../src/iop/sigmoid.c:987 msgid "" "the black luminance of the target display or print.\n" "can be used creatively for a faded look." @@ -18178,7 +20052,7 @@ "Schwarz-Luminanz für Anzeige oder Drucks.\n" "kann kreativ eingesetzt werden z.B. für einen verblassten Look." -#: ../src/iop/sigmoid.c:719 +#: ../src/iop/sigmoid.c:992 msgid "" "the white luminance of the target display or print.\n" "can be used creatively for a faded look or blowing out whites earlier." @@ -18191,23 +20065,23 @@ msgid "soften" msgstr "Weichzeichnen" -#: ../src/iop/soften.c:100 +#: ../src/iop/soften.c:102 msgid "create a softened image using the Orton effect" msgstr "Weichzeichnen mit Orton-Effekt" -#: ../src/iop/soften.c:371 +#: ../src/iop/soften.c:366 msgid "the size of blur" msgstr "Größe der Unschärfe" -#: ../src/iop/soften.c:375 +#: ../src/iop/soften.c:370 msgid "the saturation of blur" msgstr "Sättigung der Unschärfe" -#: ../src/iop/soften.c:379 +#: ../src/iop/soften.c:374 msgid "the brightness of blur" msgstr "Helligkeit der Unschärfe" -#: ../src/iop/soften.c:383 +#: ../src/iop/soften.c:378 msgid "the mix of effect" msgstr "Stärke des Effekts" @@ -18215,55 +20089,57 @@ msgid "split-toning" msgstr "Teiltonung" -#: ../src/iop/splittoning.c:101 +#: ../src/iop/splittoning.c:103 msgid "" "use two specific colors for shadows and highlights and\n" "create a linear toning effect between them up to a pivot." -msgstr "Setzt zwei Farben für Schatten und Lichter um einen linearen Zweifarbentonungseffekt zu erzielen" +msgstr "" +"Setzt zwei Farben für Schatten und Lichter um einen linearen " +"Zweifarbentonungseffekt zu erzielen" -#: ../src/iop/splittoning.c:118 +#: ../src/iop/splittoning.c:120 msgid "authentic sepia" msgstr "authentisches Sepia" -#: ../src/iop/splittoning.c:127 +#: ../src/iop/splittoning.c:129 msgid "authentic cyanotype" msgstr "authentische Cyanotypie" -#: ../src/iop/splittoning.c:136 +#: ../src/iop/splittoning.c:138 msgid "authentic platinotype" msgstr "authentische Platinotypie" -#: ../src/iop/splittoning.c:145 +#: ../src/iop/splittoning.c:147 msgid "chocolate brown" msgstr "Schokoladenbraun" -#: ../src/iop/splittoning.c:490 +#: ../src/iop/splittoning.c:486 msgid "select the saturation tone" msgstr "Sättigung wählen" -#: ../src/iop/splittoning.c:494 +#: ../src/iop/splittoning.c:490 msgid "select tone color" msgstr "Farbton wählen" -#: ../src/iop/splittoning.c:524 +#: ../src/iop/splittoning.c:520 msgctxt "section" msgid "shadows" msgstr "Schatten" -#: ../src/iop/splittoning.c:530 +#: ../src/iop/splittoning.c:526 msgctxt "section" msgid "highlights" msgstr "Lichter" -#: ../src/iop/splittoning.c:539 +#: ../src/iop/splittoning.c:535 msgid "balance" msgstr "Ausgleich" -#: ../src/iop/splittoning.c:546 +#: ../src/iop/splittoning.c:542 msgid "the balance of center of split-toning" msgstr "Teiltonung in den Schatten oder Spitzlichtern konzentrieren." -#: ../src/iop/splittoning.c:550 +#: ../src/iop/splittoning.c:546 msgid "" "compress the effect on highlights/shadows and\n" "preserve mid-tones" @@ -18287,15 +20163,17 @@ msgid "geometric, raw" msgstr "geometrisch, RAW" -#: ../src/iop/spots.c:226 +#: ../src/iop/spots.c:238 msgid "spot module is limited to 64 shapes. please add a new instance!" -msgstr "Das Fleckenentfernungsmodul ist auf 64 Formen beschränkt. Bitte eine neue Modulinstanz hinzufügen." +msgstr "" +"Das Fleckenentfernungsmodul ist auf 64 Formen beschränkt. Bitte eine neue " +"Modulinstanz hinzufügen." -#: ../src/iop/spots.c:872 +#: ../src/iop/spots.c:874 msgid "number of strokes:" msgstr "Anzahl Korrekturen:" -#: ../src/iop/spots.c:876 +#: ../src/iop/spots.c:878 msgid "" "click on a shape and drag on canvas.\n" "use the mouse wheel to adjust size.\n" @@ -18305,399 +20183,408 @@ "Größe kann mit Mausrad angepasst werden.\n" "Rechtsklick entfernt eine Form." -#: ../src/iop/spots.c:879 +#: ../src/iop/spots.c:881 msgid "show and edit shapes" msgstr "Masken anzeigen und bearbeiten" -#: ../src/iop/temperature.c:204 +#: ../src/iop/temperature.c:212 msgctxt "modulename" msgid "white balance" msgstr "Weißabgleich" -#: ../src/iop/temperature.c:211 +#: ../src/iop/temperature.c:219 msgid "scale raw RGB channels to balance white and help demosaicing" msgstr "Anpassung der RAW-RGB Kanäle für Weißabgleich und Demosaicing" -#: ../src/iop/temperature.c:1149 -msgid "white balance applied twice" -msgstr "Weißabgleich doppelt angewendet" - -#: ../src/iop/temperature.c:1150 -msgid "" -"the color calibration module is enabled,\n" -"and performing chromatic adaptation.\n" -"set the white balance here to camera reference (D65)\n" -"or disable chromatic adaptation in color calibration." -msgstr "" -"Das Farbkalibrierungsmodul ist aktiv und steuert die Farbanpassungen.\n" -"Bitte den Weißabgleich auf Kamera Referenzpunkt (D65) stellen oder \n" -"CAT Anpassung im Farbkalibrierungsmodul deaktivieren." - -#: ../src/iop/temperature.c:1430 +#: ../src/iop/temperature.c:1388 #, c-format msgid "`%s' color matrix not found for image" msgstr "„%s” Farbmatrix für Bild nicht gefunden" -#: ../src/iop/temperature.c:1459 +#: ../src/iop/temperature.c:1418 #, c-format msgid "failed to read camera white balance information from `%s'!" msgstr "Konnte Weißabgleichsdaten der Kamera nicht aus „%s“ lesen!" -#: ../src/iop/temperature.c:1631 +#: ../src/iop/temperature.c:1612 msgctxt "white balance" msgid "as shot" msgstr "wie bei Aufnahme" #. old "spot", reason: describes exactly what'll happen -#: ../src/iop/temperature.c:1634 +#: ../src/iop/temperature.c:1615 msgctxt "white balance" msgid "from image area" msgstr "aus Bildbereich" -#: ../src/iop/temperature.c:1635 +#: ../src/iop/temperature.c:1616 msgctxt "white balance" msgid "user modified" msgstr "manuell angepasst" #. old "camera neutral", reason: better matches intent -#: ../src/iop/temperature.c:1637 +#: ../src/iop/temperature.c:1618 msgctxt "white balance" msgid "camera reference" -msgstr "Kamera-Referenzpunkt" +msgstr "Kamera Referenzpunkt (D65)" -#: ../src/iop/temperature.c:1920 ../src/iop/temperature.c:1938 +#: ../src/iop/temperature.c:1897 ../src/iop/temperature.c:1915 msgid "green channel coefficient" msgstr "Koeffizient des Grünkanals" -#: ../src/iop/temperature.c:1922 +#: ../src/iop/temperature.c:1899 msgid "magenta channel coefficient" msgstr "Koeffizient Magenta-Kanal" -#: ../src/iop/temperature.c:1924 +#: ../src/iop/temperature.c:1901 msgid "cyan channel coefficient" msgstr "Koeffizient Cyan-Kanal" -#: ../src/iop/temperature.c:1926 +#: ../src/iop/temperature.c:1903 msgid "yellow channel coefficient" msgstr "Koeffizient Gelb-Kanal" -#: ../src/iop/temperature.c:1936 +#: ../src/iop/temperature.c:1913 msgid "red channel coefficient" msgstr "Koeffizient Rot-Kanal" -#: ../src/iop/temperature.c:1940 +#: ../src/iop/temperature.c:1917 msgid "blue channel coefficient" msgstr "Koeffizient Blau-Kanal" -#: ../src/iop/temperature.c:1942 +# https://de.wikipedia.org/wiki/Demosaicing übersetzt "emerald" mit "Cyan" +#: ../src/iop/temperature.c:1918 +msgid "emerald" +msgstr "Cyan" + +#: ../src/iop/temperature.c:1919 msgid "emerald channel coefficient" msgstr "Koeffizient Smaragdgrün-Kanal" #. relabel to settings to remove confusion between module presets #. and white balance settings -#: ../src/iop/temperature.c:2029 ../src/iop/temperature.c:2042 ../src/iop/temperature.c:2049 -#: ../src/iop/temperature.c:2055 ../src/iop/temperature.c:2074 +#: ../src/iop/temperature.c:1997 ../src/iop/temperature.c:2010 +#: ../src/iop/temperature.c:2017 ../src/iop/temperature.c:2023 +#: ../src/iop/temperature.c:2042 msgid "settings" msgstr "Einstellungen" -#: ../src/iop/temperature.c:2029 +#: ../src/iop/temperature.c:1997 msgid "as shot" msgstr "wie bei Aufnahme" -#: ../src/iop/temperature.c:2032 +#: ../src/iop/temperature.c:2000 msgid "set white balance to as shot" msgstr "Setzt Weißabgleich wie bei Aufnahme von Kamera ermittelt." -#: ../src/iop/temperature.c:2042 +#: ../src/iop/temperature.c:2010 msgid "from image area" msgstr "aus Bildbereich" -#: ../src/iop/temperature.c:2049 +#: ../src/iop/temperature.c:2017 msgid "user modified" msgstr "manuell angepasst" -#: ../src/iop/temperature.c:2052 +#: ../src/iop/temperature.c:2020 msgid "set white balance to user modified" msgstr "Setzt den Weißabgleich gemäß Nutzereinstellung." -#: ../src/iop/temperature.c:2055 +#: ../src/iop/temperature.c:2023 msgid "camera reference" -msgstr "Kamera-Referenzpunkt" +msgstr "Kamera Referenzpunkt (D65)" -#: ../src/iop/temperature.c:2060 +#: ../src/iop/temperature.c:2028 msgid "" "set white balance to camera reference point\n" "in most cases it should be D65" -msgstr "Setze Weißabgleich gemäß Kamera-Referenzpunkt. In der Regel entspricht dies der Normlichtart D65." +msgstr "" +"Setze Weißabgleich gemäß Kamera-Referenzpunkt. In der Regel entspricht dies " +"der Normlichtart D65." -#: ../src/iop/temperature.c:2075 +#: ../src/iop/temperature.c:2043 msgid "choose white balance setting" msgstr "Eine Weißabgleichsvoreinstellung auswählen." -#: ../src/iop/temperature.c:2080 +#: ../src/iop/temperature.c:2048 msgid "finetune" msgstr "anpassen" -#: ../src/iop/temperature.c:2082 +#: ../src/iop/temperature.c:2050 msgid "fine tune camera's white balance setting" -msgstr "Weißabgleichsvorgabe feinabstimmen." +msgstr "Kamera Weißabgleichseinstellungen fein justieren" -#: ../src/iop/temperature.c:2093 +#: ../src/iop/temperature.c:2058 msgctxt "section" msgid "scene illuminant temp" msgstr "Farbtemperatur der Lichtquelle" -#: ../src/iop/temperature.c:2094 +#: ../src/iop/temperature.c:2059 msgid "click to cycle color mode on sliders" msgstr "Klicken, um die Farbdarstellung der Regler zu ändern." -#: ../src/iop/temperature.c:2108 +#: ../src/iop/temperature.c:2073 msgid "color temperature (in Kelvin)" msgstr "Farbtemperatur in Kelvin" -#: ../src/iop/temperature.c:2114 +#: ../src/iop/temperature.c:2079 msgid "tint" msgstr "Farbton" -#: ../src/iop/temperature.c:2117 +#: ../src/iop/temperature.c:2082 msgid "color tint of the image, from magenta (value < 1) to green (value > 1)" -msgstr "Tonung des Bildes. Werte < 1 tonen das Bild magenta, Werte > 1 tonen grün." +msgstr "" +"Tonung des Bildes. Werte < 1 tonen das Bild magenta, Werte > 1 tonen grün." -#: ../src/iop/temperature.c:2123 +#: ../src/iop/temperature.c:2088 msgid "channel coefficients" msgstr "Farbkoeffizienten" -#: ../src/iop/temperature.c:2158 +#: ../src/iop/temperature.c:2097 +msgid "various" +msgstr "Verschiedene" + +#: ../src/iop/temperature.c:2123 msgid "white balance disabled for camera" msgstr "Weißabgleich für Kamera deaktiviert" -#: ../src/iop/tonecurve.c:190 +#: ../src/iop/tonecurve.c:161 msgid "tone curve" msgstr "Farbkurve" -#: ../src/iop/tonecurve.c:210 +#: ../src/iop/tonecurve.c:183 msgid "alter an image’s tones using curves" msgstr "Tonwertanpassung mittels Kurven" -#: ../src/iop/tonecurve.c:1125 +#: ../src/iop/tonecurve.c:1147 msgid "" -"if set to auto, a and b curves have no effect and are not displayed. chroma values (a and b) of each pixel are " -"then adjusted based on L curve data. auto XYZ is similar but applies the saturation changes in XYZ space." -msgstr "" -"Wenn dies auf „auto“ gesetzt ist, haben die a- und b-Kurven keine Wirkung und werden nicht angezeigt. \n" -"Chrominanzwerte (a und b) jedes Pixels werden dann entsprechend der L-Kurve angepasst. \n" -"Automatisches XYZ ist ähnlich, wendet aber die Änderungen der Sättigung in XYZ an." +"if set to auto, a and b curves have no effect and are not displayed. chroma " +"values (a and b) of each pixel are then adjusted based on L curve data. auto " +"XYZ is similar but applies the saturation changes in XYZ space." +msgstr "" +"Wenn dies auf „auto“ gesetzt ist, haben die a- und b-Kurven keine Wirkung " +"und werden nicht angezeigt. \n" +"Chrominanzwerte (a und b) jedes Pixels werden dann entsprechend der L-Kurve " +"angepasst. \n" +"Automatisches XYZ ist ähnlich, wendet aber die Änderungen der Sättigung in " +"XYZ an." -#: ../src/iop/tonecurve.c:1134 +#: ../src/iop/tonecurve.c:1156 msgid "tonecurve for L channel" msgstr "Farbkurve für L-Kanal" -#: ../src/iop/tonecurve.c:1135 +#: ../src/iop/tonecurve.c:1157 msgid "tonecurve for a channel" msgstr "Farbkurve für a-Kanal" -#: ../src/iop/tonecurve.c:1136 +#: ../src/iop/tonecurve.c:1158 msgid "tonecurve for b channel" msgstr "Farbkurve für b-Kanal" -#: ../src/iop/tonecurve.c:1143 ../src/iop/watermark.c:1305 ../src/libs/colorpicker.c:597 +#: ../src/iop/tonecurve.c:1165 ../src/iop/watermark.c:1353 +#: ../src/libs/colorpicker.c:675 msgid "pick color" msgstr "Farbe wählen" -#: ../src/iop/toneequal.c:311 +#: ../src/iop/toneequal.c:319 msgid "tone equalizer" msgstr "Tonwert-Equalizer" -#: ../src/iop/toneequal.c:316 +#: ../src/iop/toneequal.c:324 msgid "tone curve|tone mapping|relight|background light|shadows highlights" -msgstr "Tonwertkurve|Tonmapping|Nachbelichten|Hintergrundaufhellung|Schatten & Lichter" +msgstr "" +"Tonwertkurve|Tonmapping|Nachbelichten|Hintergrundaufhellung|Schatten & " +"Lichter" -#: ../src/iop/toneequal.c:323 +#: ../src/iop/toneequal.c:331 msgid "relight the scene as if the lighting was done directly on the scene" msgstr "" -"Selektives Aufhellen oder Abdunkeln über verschiedene Helligkeitsbereiche unter Beibehaltung des lokalen Kontrasts" +"Selektives Aufhellen oder Abdunkeln über verschiedene Helligkeitsbereiche " +"unter Beibehaltung des lokalen Kontrasts" -#: ../src/iop/toneequal.c:326 +#: ../src/iop/toneequal.c:334 msgid "quasi-linear, RGB" msgstr "quasi-linear, RGB" -#: ../src/iop/toneequal.c:327 +#: ../src/iop/toneequal.c:335 msgid "quasi-linear, RGB, scene-referred" msgstr "quasi-linear, RGB, szenenbezogen" -#: ../src/iop/toneequal.c:458 +#: ../src/iop/toneequal.c:489 msgid "simple tone curve" msgstr "einfache Tonwertkurve" -#: ../src/iop/toneequal.c:472 +#: ../src/iop/toneequal.c:503 msgid "mask blending: all purposes" msgstr "Maskenüberlagerung: alle Vorhaben" -#: ../src/iop/toneequal.c:479 +#: ../src/iop/toneequal.c:510 msgid "mask blending: people with backlight" msgstr "Maskenüberlagerung: Personen im Gegenlicht" -#: ../src/iop/toneequal.c:496 +#: ../src/iop/toneequal.c:527 msgid "compress shadows/highlights (EIGF): strong" msgstr "komprimiert Schatten/Spitzlichter (EIGF): stark" -#: ../src/iop/toneequal.c:501 +#: ../src/iop/toneequal.c:532 msgid "compress shadows/highlights (GF): strong" msgstr "komprimiert Schatten/Spitzlichter (GF): stark" -#: ../src/iop/toneequal.c:510 +#: ../src/iop/toneequal.c:541 msgid "compress shadows/highlights (EIGF): medium" msgstr "komprimiert Schatten/Spitzlichter (EIGF): mittel" -#: ../src/iop/toneequal.c:515 +#: ../src/iop/toneequal.c:546 msgid "compress shadows/highlights (GF): medium" msgstr "komprimiert Schatten/Spitzlichter (GF): mittel" -#: ../src/iop/toneequal.c:524 +#: ../src/iop/toneequal.c:555 msgid "compress shadows/highlights (EIGF): soft" msgstr "komprimiert Schatten/Spitzlichter (EIGF): gering" -#: ../src/iop/toneequal.c:529 +#: ../src/iop/toneequal.c:560 msgid "compress shadows/highlights (GF): soft" msgstr "komprimiert Schatten/Spitzlichter (GF): gering" -#: ../src/iop/toneequal.c:537 +#: ../src/iop/toneequal.c:568 msgid "contrast tone curve: soft" msgstr "Kontrastkurve: gering" -#: ../src/iop/toneequal.c:542 +#: ../src/iop/toneequal.c:573 msgid "contrast tone curve: medium" msgstr "Kontrastkurve: mittel" -#: ../src/iop/toneequal.c:547 +#: ../src/iop/toneequal.c:578 msgid "contrast tone curve: strong" msgstr "Kontrastkurve: stark" -#: ../src/iop/toneequal.c:570 +#: ../src/iop/toneequal.c:601 msgid "relight: fill-in" msgstr "aufhellen: ausfüllen" -#: ../src/iop/toneequal.c:627 -msgid "tone equalizer needs to be after distortion modules in the pipeline – disabled" -msgstr "Der Tonwert-Equalizer muss nach den Verzeichnungs-Modulen in der Pipeline erfolgen - deaktiviert" - -#: ../src/iop/toneequal.c:1091 +#: ../src/iop/toneequal.c:1120 msgid "tone equalizer failed to allocate memory, check your RAM settings" -msgstr "Tonwert-Equalizer konnte keinen Speicher reservieren, überprüfe die RAM-Einstellungen" +msgstr "" +"Tonwert-Equalizer konnte keinen Speicher reservieren, überprüfe die RAM-" +"Einstellungen" -#: ../src/iop/toneequal.c:1795 ../src/iop/toneequal.c:2180 +#: ../src/iop/toneequal.c:1825 ../src/iop/toneequal.c:2196 msgid "the interpolation is unstable, decrease the curve smoothing" msgstr "Die Interpolation ist instabil, verringere die Kurvenglättung." -#: ../src/iop/toneequal.c:1830 ../src/iop/toneequal.c:1897 +#: ../src/iop/toneequal.c:1860 ../src/iop/toneequal.c:1927 msgid "wait for the preview to finish recomputing" msgstr "Warten auf Vorschau, bis die Neuberechnung abgeschlossen ist" -#: ../src/iop/toneequal.c:2037 ../src/iop/toneequal.c:2587 +#: ../src/iop/toneequal.c:2069 ../src/iop/toneequal.c:2628 msgid "" "scroll over image to change tone exposure\n" "shift+scroll for large steps; ctrl+scroll for small steps" msgstr "" -"Über Bild scrollen, um Belichtung des ausgewählten Tonwertbereichs zu ändern,\n" +"Über Bild scrollen, um Belichtung des ausgewählten Tonwertbereichs zu " +"ändern,\n" "Shift+Scrollen für große Schritte, Strg+Scrollen für kleine Schritte." -#: ../src/iop/toneequal.c:2185 +#: ../src/iop/toneequal.c:2201 msgid "some parameters are out-of-bounds" msgstr "Einige Parameter sind außerhalb der zulässigen Grenzen." -#: ../src/iop/toneequal.c:2524 +#: ../src/iop/toneequal.c:2518 #, c-format msgid "%+.1f EV" msgstr "%+.1f EV" -#: ../src/iop/toneequal.c:3236 +#: ../src/iop/toneequal.c:3283 #, c-format msgid "[%s over image] change tone exposure" msgstr "[%s über Bild] selektive Belichtungsänderung" -#: ../src/iop/toneequal.c:3239 +#: ../src/iop/toneequal.c:3286 #, c-format msgid "[%s over image] change tone exposure in large steps" msgstr "[%s über Bild] selektive Belichtungsänderung in großen Schritten" -#: ../src/iop/toneequal.c:3242 +#: ../src/iop/toneequal.c:3289 #, c-format msgid "[%s over image] change tone exposure in small steps" msgstr "[%s über Bild] selektive Belichtungsänderung in kleinen Schritten" #. Simple view -#: ../src/iop/toneequal.c:3323 ../src/iop/toneequal.c:3352 ../src/iop/toneequal.c:3353 ../src/iop/toneequal.c:3354 -#: ../src/iop/toneequal.c:3355 ../src/iop/toneequal.c:3356 ../src/iop/toneequal.c:3357 ../src/iop/toneequal.c:3358 -#: ../src/iop/toneequal.c:3359 ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3376 ../src/iop/toneequal.c:3405 +#: ../src/iop/toneequal.c:3406 ../src/iop/toneequal.c:3407 +#: ../src/iop/toneequal.c:3408 ../src/iop/toneequal.c:3409 +#: ../src/iop/toneequal.c:3410 ../src/iop/toneequal.c:3411 +#: ../src/iop/toneequal.c:3412 ../src/iop/toneequal.c:3413 msgid "simple" msgstr "einfach" -#: ../src/iop/toneequal.c:3352 +#: ../src/iop/toneequal.c:3405 msgid "-8 EV" msgstr "-8 EV" -#: ../src/iop/toneequal.c:3353 +#: ../src/iop/toneequal.c:3406 msgid "-7 EV" msgstr "-7 EV" -#: ../src/iop/toneequal.c:3354 +#: ../src/iop/toneequal.c:3407 msgid "-6 EV" msgstr "-6 EV" -#: ../src/iop/toneequal.c:3355 +#: ../src/iop/toneequal.c:3408 msgid "-5 EV" msgstr "-5 EV" -#: ../src/iop/toneequal.c:3356 +#: ../src/iop/toneequal.c:3409 msgid "-4 EV" msgstr "-4 EV" -#: ../src/iop/toneequal.c:3357 +#: ../src/iop/toneequal.c:3410 msgid "-3 EV" msgstr "-3 EV" -#: ../src/iop/toneequal.c:3358 +#: ../src/iop/toneequal.c:3411 msgid "-2 EV" msgstr "-2 EV" -#: ../src/iop/toneequal.c:3359 +#: ../src/iop/toneequal.c:3412 msgid "-1 EV" msgstr "-1 EV" -#: ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3413 msgid "+0 EV" msgstr "+0 EV" #. Advanced view -#: ../src/iop/toneequal.c:3364 +#: ../src/iop/toneequal.c:3417 msgid "advanced" msgstr "erweitert" -#: ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3444 msgid "double-click to reset the curve" msgstr "Doppelklick setzt Kurve zurück" -#: ../src/iop/toneequal.c:3395 +#: ../src/iop/toneequal.c:3448 msgid "curve smoothing" msgstr "Kurvenglättung" -#: ../src/iop/toneequal.c:3398 +#: ../src/iop/toneequal.c:3451 msgid "" "positive values will produce more progressive tone transitions\n" "but the curve might become oscillatory in some settings.\n" "negative values will avoid oscillations and behave more robustly\n" "but may produce brutal tone transitions and damage local contrast." msgstr "" -"Positive Werte erzeugen dynamischere Farbübergänge, aber die Kurve kann in einigen Einstellungen schwingen. \n" -"Negative Werte vermeiden Schwingungen und verhalten sich robuster, können aber zu harten Farbübergängen führen und " -"den lokalen Kontrast beeinträchtigen." +"Positive Werte erzeugen dynamischere Farbübergänge, aber die Kurve kann in " +"einigen Einstellungen schwingen. \n" +"Negative Werte vermeiden Schwingungen und verhalten sich robuster, können " +"aber zu harten Farbübergängen führen und den lokalen Kontrast " +"beeinträchtigen." #. Masking options -#: ../src/iop/toneequal.c:3408 +#: ../src/iop/toneequal.c:3461 msgid "masking" msgstr "Maskierung" -#: ../src/iop/toneequal.c:3413 +#: ../src/iop/toneequal.c:3466 msgid "" "preview the mask and chose the estimator that gives you the\n" "higher contrast between areas to dodge and areas to burn" @@ -18705,47 +20592,58 @@ "Vorschau der Maske und Auswahl der Schätzfunktion, ergibt einen\n" "höheren Kontrast zwischen den zu vermeidenden und ausgebrannten Bereichen." -#: ../src/iop/toneequal.c:3416 +#: ../src/iop/toneequal.c:3469 msgid "details" msgstr "Details" -#: ../src/iop/toneequal.c:3417 +#: ../src/iop/toneequal.c:3470 msgid "preserve details" msgstr "Details erhalten" -#: ../src/iop/toneequal.c:3420 +#: ../src/iop/toneequal.c:3473 msgid "" "'no' affects global and local contrast (safe if you only add contrast)\n" -"'guided filter' only affects global contrast and tries to preserve local contrast\n" -"'averaged guided filter' is a geometric mean of 'no' and 'guided filter' methods\n" -"'EIGF' (exposure-independent guided filter) is a guided filter that is exposure-independent, it smooths shadows " -"and highlights the same way (contrary to guided filter which smooths less the highlights)\n" -"'averaged EIGF' is a geometric mean of 'no' and 'exposure-independent guided filter' methods" -msgstr "" -"„nein“ beeinflusst den globalen und lokalen Kontrast (sicher, wenn man nur Kontrast hinzufügt)\n" -"„geführter Filter“ (GF) beeinflusst nur den globalen Kontrast und versucht, den lokalen Kontrast zu erhalten\n" -"„gemittelter geführter Filter“ ist ein geometrisches Mittel aus den Methoden „nein“ und „geführter Filter“.\n" -"„EIGF“ (exposure-independent guided filter) ist ein belichtungsunabhängiger geführter Filter, der Schatten und " -"Lichter in gleicher Weise glättet (im Gegensatz zum geführten Filter, der weniger die Lichter glättet)\n" -"„gemittelter EIGF“ ist ein geometrisches Mittel aus den Methoden „nein“ und „EIGF“" +"'guided filter' only affects global contrast and tries to preserve local " +"contrast\n" +"'averaged guided filter' is a geometric mean of 'no' and 'guided filter' " +"methods\n" +"'EIGF' (exposure-independent guided filter) is a guided filter that is " +"exposure-independent, it smooths shadows and highlights the same way " +"(contrary to guided filter which smooths less the highlights)\n" +"'averaged EIGF' is a geometric mean of 'no' and 'exposure-independent guided " +"filter' methods" +msgstr "" +"„nein“ beeinflusst den globalen und lokalen Kontrast (sicher, wenn man nur " +"Kontrast hinzufügt)\n" +"„geführter Filter“ (GF) beeinflusst nur den globalen Kontrast und versucht, " +"den lokalen Kontrast zu erhalten\n" +"„gemittelter geführter Filter“ ist ein geometrisches Mittel aus den Methoden " +"„nein“ und „geführter Filter“.\n" +"„EIGF“ (exposure-independent guided filter) ist ein belichtungsunabhängiger " +"geführter Filter, der Schatten und Lichter in gleicher Weise glättet (im " +"Gegensatz zum geführten Filter, der weniger die Lichter glättet)\n" +"„gemittelter EIGF“ ist ein geometrisches Mittel aus den Methoden „nein“ und " +"„EIGF“" -#: ../src/iop/toneequal.c:3433 +#: ../src/iop/toneequal.c:3486 msgid "" "number of passes of guided filter to apply\n" "helps diffusing the edges of the filter at the expense of speed" -msgstr "Anzahl der Durchgänge des geführten Filters hilft, die Kanten auf Kosten der Geschwindigkeit zu streuen." +msgstr "" +"Anzahl der Durchgänge des geführten Filters hilft, die Kanten auf Kosten der " +"Geschwindigkeit zu streuen." -#: ../src/iop/toneequal.c:3441 +#: ../src/iop/toneequal.c:3494 msgid "" "diameter of the blur in percent of the largest image size\n" "warning: big values of this parameter can make the darkroom\n" "preview much slower if denoise profiled is used." msgstr "" "Durchmesser der Unschärfe in Prozent der größten Bildgröße\n" -"Warnung: Große Werte dieses Parameters können die Vorschau in der Dunkelkammer verlangsamen, wenn das Entrauschen " -"(Profil) verwendet wird." +"Warnung: Große Werte dieses Parameters können die Vorschau in der " +"Dunkelkammer verlangsamen, wenn das Entrauschen (Profil) verwendet wird." -#: ../src/iop/toneequal.c:3449 +#: ../src/iop/toneequal.c:3502 msgid "" "precision of the feathering:\n" "higher values force the mask to follow edges more closely\n" @@ -18759,40 +20657,45 @@ "Niedrigere Werte ergeben weichere Gradienten und eine bessere Glättung,\n" "kann aber zu ungenauen Rändern und Halos führen." -#: ../src/iop/toneequal.c:3456 +#: ../src/iop/toneequal.c:3509 msgctxt "section" msgid "mask post-processing" msgstr "Maskennachbearbeitung" -#: ../src/iop/toneequal.c:3467 +#: ../src/iop/toneequal.c:3520 msgid "" "mask histogram span between the first and last deciles.\n" -"the central line shows the average. orange bars appear at extrema if clipping occurs." +"the central line shows the average. orange bars appear at extrema if " +"clipping occurs." msgstr "" -"Spanne des Masken-Histogramm zwischen der ersten und letzten Zehntel.Die Mittellinie zeigt den Mittelwert an. \n" +"Spanne des Masken-Histogramm zwischen der ersten und letzten Zehntel.Die " +"Mittellinie zeigt den Mittelwert an. \n" "Orangefarbene Balken erscheinen bei Extrema, wenn es zu Beschneidungen kommt." -#: ../src/iop/toneequal.c:3475 +#: ../src/iop/toneequal.c:3528 msgid "" "0 disables the quantization.\n" "higher values posterize the luminance mask to help the guiding\n" "produce piece-wise smooth areas when using high feathering values" msgstr "" "0 deaktiviert die Quantisierung. \n" -"höhere Werte verstärken die Tontrennung in der Luminanzmaske, um zusammenhängende \n" +"höhere Werte verstärken die Tontrennung in der Luminanzmaske, um " +"zusammenhängende \n" "Bereiche zu erzeugen, wenn hohe Ausblende-Werte verwendet werden." -#: ../src/iop/toneequal.c:3484 +#: ../src/iop/toneequal.c:3537 msgid "" "use this to slide the mask average exposure along channels\n" "for a better control of the exposure correction with the available nodes.\n" "the magic wand will auto-adjust the average exposure" msgstr "" -"Hiermit kann die durchschnittliche Belichtung der Maske entlang der Kanäle verschoben\n" -"werden, um die Belichtungskorrektur mit den verfügbaren Knoten besser zu steuern.\n" +"Hiermit kann die durchschnittliche Belichtung der Maske entlang der Kanäle " +"verschoben\n" +"werden, um die Belichtungskorrektur mit den verfügbaren Knoten besser zu " +"steuern.\n" "Der Zauberstab passt die durchschnittliche Belichtung automatisch an" -#: ../src/iop/toneequal.c:3497 +#: ../src/iop/toneequal.c:3550 msgid "" "use this to counter the averaging effect of the guided filter\n" "and dilate the mask contrast around -4EV\n" @@ -18802,11 +20705,12 @@ msgstr "" "Hiermit wird der Mittelwertbildung des geführten Filters entgegengewirkt \n" "und der Maskenkontrast um -4EV erweitert. \n" -"Dies ermöglicht eine Streuung \\des Belichtungshistogramms auf mehrere Kanäle \n" +"Dies ermöglicht eine Streuung \\des Belichtungshistogramms auf mehrere " +"Kanäle \n" "zur besseren Kontrolle der Belichtungskorrektur.\n" "Der Zauberstab passt den Kontrast automatisch an" -#: ../src/iop/toneequal.c:3520 ../src/iop/toneequal.c:3523 +#: ../src/iop/toneequal.c:3573 ../src/iop/toneequal.c:3576 msgid "display exposure mask" msgstr "Belichtungsmasken anzeigen" @@ -18815,85 +20719,91 @@ msgstr "Tonemapping" #: ../src/iop/tonemap.cc:87 -msgid "this module is deprecated. please use the local contrast or tone equalizer module instead." -msgstr "veraltetes Modul; abgelöst durch Lokaler Kontrast oder Tonwert Equalizer" +msgid "" +"this module is deprecated. please use the local contrast or tone equalizer " +"module instead." +msgstr "" +"veraltetes Modul; abgelöst durch Lokaler Kontrast oder Tonwert Equalizer" -#: ../src/iop/velvia.c:79 +#: ../src/iop/velvia.c:70 msgid "velvia" msgstr "Velvia" -#: ../src/iop/velvia.c:104 -msgid "resaturate giving more weight to blacks, whites and low-saturation pixels" -msgstr "erhöht die Sättigung in den Schatten, den Lichtern und schwach gesättigten Bereichen" +#: ../src/iop/velvia.c:97 +msgid "" +"resaturate giving more weight to blacks, whites and low-saturation pixels" +msgstr "" +"erhöht die Sättigung in den Schatten, den Lichtern und schwach gesättigten " +"Bereichen" -#: ../src/iop/velvia.c:281 +#: ../src/iop/velvia.c:290 msgid "the strength of saturation boost" msgstr "Stärke der Sättigungsverstärkung" -#: ../src/iop/velvia.c:284 +#: ../src/iop/velvia.c:293 msgid "how much to spare highlights and shadows" msgstr "wie sehr sollen Spitzlichter und Schatten ausgenommen werden" #: ../src/iop/vibrance.c:62 -msgid "this module is deprecated. please use the vibrance slider in the color balance rgb module instead." +msgid "" +"this module is deprecated. please use the vibrance slider in the color " +"balance rgb module instead." msgstr "veraltetes Modul; abgelöst durch den Vibranceregler in Farbbalace RGB" -#: ../src/iop/vibrance.c:93 +#: ../src/iop/vibrance.c:95 msgid "" "saturate and reduce the lightness of the most saturated pixels\n" "to make the colors more vivid." -msgstr "Erzeugt lebendige Farben durch Sättigen und Abschatten der am stärksten gesättigten Bildbereiche" +msgstr "" +"Erzeugt lebendige Farben durch Sättigen und Abschatten der am stärksten " +"gesättigten Bildbereiche" -#: ../src/iop/vibrance.c:217 +#: ../src/iop/vibrance.c:211 msgid "the amount of vibrance" msgstr "Menge der Lebendigkeit" -#: ../src/iop/vignette.c:153 -msgid "vignetting" -msgstr "Vignettierung" - -#: ../src/iop/vignette.c:158 +#: ../src/iop/vignette.c:119 msgid "simulate a lens fall-off close to edges" msgstr "Simuliert Vignettierung an den Bildrändern" -#: ../src/iop/vignette.c:940 +#: ../src/iop/vignette.c:1022 msgid "lomo" msgstr "Lomo" -#: ../src/iop/vignette.c:974 +#: ../src/iop/vignette.c:1061 msgctxt "section" msgid "position / form" msgstr "Position / Form" -#: ../src/iop/vignette.c:981 +#: ../src/iop/vignette.c:1069 msgid "dithering" msgstr "Dithering" -#: ../src/iop/vignette.c:992 +#: ../src/iop/vignette.c:1081 msgid "the radii scale of vignette for start of fall-off" msgstr "Radius der Vignette für den Start des Verlaufs" -#: ../src/iop/vignette.c:993 +#: ../src/iop/vignette.c:1083 msgid "the radii scale of vignette for end of fall-off" msgstr "Radius der Vignette für das Ende des Verlaufs" -#: ../src/iop/vignette.c:994 +#: ../src/iop/vignette.c:1084 msgid "strength of effect on brightness" msgstr "Stärke des Effekts auf die Helligkeit" -#: ../src/iop/vignette.c:995 +#: ../src/iop/vignette.c:1085 msgid "strength of effect on saturation" msgstr "Stärke des Effekts auf die Sättigung" -#: ../src/iop/vignette.c:996 +#: ../src/iop/vignette.c:1086 msgid "horizontal offset of center of the effect" msgstr "horizontaler Versatz der Mitte des Effekts" -#: ../src/iop/vignette.c:997 +#: ../src/iop/vignette.c:1087 msgid "vertical offset of center of the effect" msgstr "vertikaler Versatz der Mitte des Effekts" -#: ../src/iop/vignette.c:998 +#: ../src/iop/vignette.c:1090 msgid "" "shape factor\n" "0 produces a rectangle\n" @@ -18905,57 +20815,62 @@ "1 ergibt einen Kreis oder Ellipse\n" "2 ergibt einen Diamanten" -#: ../src/iop/vignette.c:1000 +#: ../src/iop/vignette.c:1094 msgid "enable to have the ratio automatically follow the image size" -msgstr "aktivieren, damit das Seitenverhältnis automatisch an die Bildgröße angepasst wird" +msgstr "" +"aktivieren, damit das Seitenverhältnis automatisch an die Bildgröße " +"angepasst wird" -#: ../src/iop/vignette.c:1001 +#: ../src/iop/vignette.c:1095 msgid "width-to-height ratio" msgstr "Verhältnis Breite zu Höhe" -#: ../src/iop/vignette.c:1002 +#: ../src/iop/vignette.c:1097 msgid "add some level of random noise to prevent banding" -msgstr "füge ein gewisses Maß an zufälligem Rauschen hinzu, um Banding zu vermeiden" +msgstr "" +"füge ein gewisses Maß an zufälligem Rauschen hinzu, um Banding zu vermeiden" -#: ../src/iop/vignette.c:1009 +#: ../src/iop/vignette.c:1105 #, c-format msgid "[%s on node] change vignette/feather size" msgstr "[%s on node] Vignettierung / Ausblendgröße ändern" -#: ../src/iop/vignette.c:1011 +#: ../src/iop/vignette.c:1108 #, c-format msgid "[%s on node] change vignette/feather size keeping ratio" -msgstr "[%s on node] Vignette / Ausblendgröße ändern, wobei das Verhältnis beibehalten wird." +msgstr "" +"[%s on node] Vignette / Ausblendgröße ändern, wobei das Verhältnis " +"beibehalten wird." -#: ../src/iop/vignette.c:1013 +#: ../src/iop/vignette.c:1111 #, c-format msgid "[%s on center] move vignette" msgstr "[%s[in der Mitte] Vignette bewegen" -#: ../src/iop/watermark.c:371 +#: ../src/iop/watermark.c:416 msgid "watermark" msgstr "Wasserzeichen" -#: ../src/iop/watermark.c:376 +#: ../src/iop/watermark.c:421 msgid "overlay an SVG watermark like a signature on the picture" msgstr "SVG Wasserzeichen über das Bild legen" # nicht so wirklich schön -#: ../src/iop/watermark.c:1258 +#: ../src/iop/watermark.c:1306 msgid "marker" msgstr "Wasserzeichen" -#: ../src/iop/watermark.c:1261 +#: ../src/iop/watermark.c:1309 #, c-format msgid "SVG watermarks in %s/watermarks or %s/watermarks" msgstr "SVG-Wasserzeichen in %s/watermarks oder %s/watermarks" #. Simple text -#: ../src/iop/watermark.c:1271 ../src/iop/watermark.c:1272 +#: ../src/iop/watermark.c:1319 ../src/iop/watermark.c:1320 msgid "text" msgstr "Text" -#: ../src/iop/watermark.c:1273 +#: ../src/iop/watermark.c:1321 msgid "" "text string, tag:\n" "$(WATERMARK_TEXT)" @@ -18963,16 +20878,16 @@ "Text, Platzhalter:\n" "$(WATERMARK_TEXT)" -#: ../src/iop/watermark.c:1275 +#: ../src/iop/watermark.c:1323 msgid "content" msgstr "Inhalt" #. Text font -#: ../src/iop/watermark.c:1280 +#: ../src/iop/watermark.c:1328 msgid "font" msgstr "Schriftart" -#: ../src/iop/watermark.c:1285 +#: ../src/iop/watermark.c:1333 msgid "" "text font, tags:\n" "$(WATERMARK_FONT_FAMILY)\n" @@ -18984,7 +20899,7 @@ "$(WATERMARK_FONT_STYLE)\n" "$(WATERMARK_FONT_WEIGHT)" -#: ../src/iop/watermark.c:1300 +#: ../src/iop/watermark.c:1348 msgid "" "watermark color, tag:\n" "$(WATERMARK_COLOR)" @@ -18992,59 +20907,61 @@ "Wasserzeichenfarbe, Platzhalter:\n" "$(WATERMARK_COLOR)" -#: ../src/iop/watermark.c:1302 +#: ../src/iop/watermark.c:1350 msgid "select watermark color" msgstr "Wasserzeichen-Farbton wählen" -#: ../src/iop/watermark.c:1304 +#: ../src/iop/watermark.c:1352 msgid "pick color from image" msgstr "Farbe aus dem Bild übernehmen" -#: ../src/iop/watermark.c:1317 +#: ../src/iop/watermark.c:1365 msgctxt "section" msgid "placement" msgstr "Platzierung" -#: ../src/iop/watermark.c:1330 +#: ../src/iop/watermark.c:1378 msgid "" -"scaling is done relative to this object\n" -"• image: fits marker into whole image\n" -"• larger border: fits larger marker border to larger image border\n" -"• smaller border: fits larger marker border to smaller image border\n" -"• height: fits marker height to image height, e.g. suitable for texts\n" -"• advanced options: activates two additional drop-down menus" -msgstr "" -"die Skalierung erfolgt relativ zu diesem Objekt\n" -" - Bild: passt das Wasserzeichen Markierung in das gesamte Bild ein\n" -" - größere Seite: passt die größere Seite des Wasserzeichens \n" -" an die größere Seite des Bildes an\n" -" - kleinere Seite: passt die größere Seite des Wasserzeichens \n" -" an die kleinere Seite des Bildes an\n" -" - Höhe: passt das Wasserzeichen an die Bildhöhe an\n" -" - Erweiterte Optionen: Aktiviert zwei zusätzliche Dropdown-Menüs" - -#: ../src/iop/watermark.c:1339 -msgid "reference to which the marker should be scaled to" -msgstr "Referenz, auf die das Wasserzeichen skaliert werden soll" - -#: ../src/iop/watermark.c:1343 -msgid "length of the marker which is used as scaling reference" -msgstr "Größe, die als Referenz zur Skalierung verwendet wird" +"choose how to scale the watermark\n" +"• image: scale watermark relative to whole image\n" +"• larger border: scale larger watermark border relative to larger image " +"border\n" +"• smaller border: scale larger watermark border relative to smaller image " +"border\n" +"• height: scale watermark height to image height\n" +"• advanced options: choose watermark and image dimensions independently" +msgstr "" +"Skalierungsart für das Wasserzeichen festlegen\n" +" - Bild: skaliert das Wasserzeichen relativ zum gesamten Bild\n" +" - größerer Rand: skaliert den größeren Rand des Wasserzeichens\n" +" im Verhältnis zum größeren Bildrand\n" +" - kleinerer Rand: skaliert den größeren Rand des Wasserzeichens\n" +" im Verhältnis zum kleineren Rand des Bildes\n" +" - Höhe: skaliert die Höhe des Wasserzeichens auf die Bildhöhe\n" +" - Erweiterte Optionen: Unabhängige Wahl der Wasserzeichen- und Bildgröße" + +#: ../src/iop/watermark.c:1387 +msgid "reference image dimension against which to scale the watermark" +msgstr "Referenzdimension des Bildes für die Skalierung des Wasserzeichens" + +#: ../src/iop/watermark.c:1391 +msgid "watermark dimension to scale" +msgstr "Dimension des Wasserzeichens für Skalierung" -#: ../src/iop/watermark.c:1347 ../src/libs/print_settings.c:2675 +#: ../src/iop/watermark.c:1395 ../src/libs/print_settings.c:2675 msgid "alignment" msgstr "Position" #. Let's add some tooltips and hook up some signals... -#: ../src/iop/watermark.c:1368 +#: ../src/iop/watermark.c:1416 msgid "the opacity of the watermark" msgstr "Deckkraft des Wasserzeichens" -#: ../src/iop/watermark.c:1369 +#: ../src/iop/watermark.c:1417 msgid "the scale of the watermark" msgstr "Größe des Wasserzeichens" -#: ../src/iop/watermark.c:1370 +#: ../src/iop/watermark.c:1418 msgid "the rotation of the watermark" msgstr "Drehung des Wasserzeichens" @@ -19052,7 +20969,7 @@ msgid "zone system" msgstr "Zonensystem" -#: ../src/iop/zonesystem.c:490 +#: ../src/iop/zonesystem.c:486 msgid "" "lightness zones\n" "use mouse scrollwheel to change the number of zones\n" @@ -19074,7 +20991,8 @@ #: ../src/libs/camera.c:131 msgid "toggle view property in center view" -msgstr "umschalten, ob Einstellung in der mittleren Bildansicht angezeigt werden soll" +msgstr "" +"umschalten, ob Einstellung in der mittleren Bildansicht angezeigt werden soll" #: ../src/libs/camera.c:201 msgid "connection with camera lost, exiting tethering mode" @@ -19094,7 +21012,7 @@ msgid "camera control" msgstr "Kamerasteuerung" -#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2360 +#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2679 msgid "modes" msgstr "Modus" @@ -19137,24 +21055,31 @@ #: ../src/libs/camera.c:466 msgid "" "the amount of images to capture in a sequence,\n" -"you can use this in conjunction with delayed mode to create stop-motion sequences" +"you can use this in conjunction with delayed mode to create stop-motion " +"sequences" msgstr "" "Anzahl Bilder, die hintereinander gemacht werden sollen,\n" "dies kann zusammen mit verzögerter Aufnahme benutzt werden,\n" "um Stop-Motion-Sequenzen zu erstellen." #: ../src/libs/camera.c:469 -msgid "the amount of brackets on each side of centered shoot, amount of images = (brackets*2) + 1" -msgstr "Anzahl Belichtungen auf jeder Seite der mittleren Aufnahme, Anzahl Bilder = (Belichtungen*2)+1." +msgid "" +"the amount of brackets on each side of centered shoot, amount of images = " +"(brackets*2) + 1" +msgstr "" +"Anzahl Belichtungen auf jeder Seite der mittleren Aufnahme, Anzahl Bilder = " +"(Belichtungen*2)+1." #: ../src/libs/camera.c:471 msgid "" -"the amount of steps per bracket, steps is camera configurable and usually 3 steps per stop\n" +"the amount of steps per bracket, steps is camera configurable and usually 3 " +"steps per stop\n" "with other words, 3 steps is 1EV exposure step between brackets" msgstr "" -"Anzahl der Schritte pro Belichtungsreihe, die Schritte sind von der Kamera konfigurierbar und betragen " -"normalerweise 3 Schritte pro Blende.\n" -"Mit anderen Worten: 3 Schritte entsprechen 1 EV Belichtungsschritt in der Belichtungsreihe." +"Anzahl der Schritte pro Belichtungsreihe, die Schritte sind von der Kamera " +"konfigurierbar und betragen normalerweise 3 Schritte pro Blende.\n" +"Mit anderen Worten: 3 Schritte entsprechen 1 EV Belichtungsschritt in der " +"Belichtungsreihe." #. user specified properties #: ../src/libs/camera.c:494 @@ -19196,36 +21121,49 @@ msgid "WB" msgstr "Weißabgleich" -#: ../src/libs/collect.c:151 +#: ../src/libs/collect.c:164 msgid "collections" msgstr "Sammlungen" -#: ../src/libs/collect.c:407 +#: ../src/libs/collect.c:424 msgid "search filmroll" msgstr "Filmrolle suchen" -#: ../src/libs/collect.c:490 +#: ../src/libs/collect.c:507 #, c-format msgid "problem selecting new path for the filmroll in %s" msgstr "Problem beim Auswählen des neuen Pfads für die Filmrolle in %s" -#: ../src/libs/collect.c:553 +#: ../src/libs/collect.c:579 msgid "search filmroll..." msgstr "Filmrolle suchen…" -#: ../src/libs/collect.c:557 +#: ../src/libs/collect.c:584 msgid "remove..." msgstr "entfernen…" -#: ../src/libs/collect.c:1225 +#: ../src/libs/collect.c:1310 msgid "uncategorized" msgstr "Sonstige" -#: ../src/libs/collect.c:2138 +#: ../src/libs/collect.c:2172 ../src/libs/filters/rating_range.c:120 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:151 +#: ../src/libs/filters/rating_range.c:302 +msgid "rejected" +msgstr "verworfene" + +#: ../src/libs/collect.c:2175 ../src/libs/filters/rating_range.c:122 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:303 +msgid "not rated" +msgstr "nicht bewertet" + +#: ../src/libs/collect.c:2359 msgid "use <, <=, >, >=, <>, =, [;] as operators" msgstr "Erlaubte Operatoren sind <, <=, >, >=, <>, = und [;]." -#: ../src/libs/collect.c:2142 +#: ../src/libs/collect.c:2363 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "star rating: 0-5\n" @@ -19235,20 +21173,21 @@ "Sterne-Bewertung: 0-5\n" "abgelehnte Bilder: -1" -#: ../src/libs/collect.c:2149 +#: ../src/libs/collect.c:2371 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)" msgstr "" "Erlaubte Operatoren sind <, <=, >, >=, <>, = und [;]. \n" -"Datumsangaben erfolgen in der Form JJJJ:MM:DD hh:mm:ss.sss (nur das Jahr ist zwingend erforderlich)." +"Datumsangaben erfolgen in der Form JJJJ:MM:DD hh:mm:ss.sss (nur das Jahr ist " +"zwingend erforderlich)." -#: ../src/libs/collect.c:2156 +#: ../src/libs/collect.c:2378 #, no-c-format msgid "use `%' as wildcard and `,' to separate values" msgstr "„%” als Platzhalter und „,“ als Trennzeichen benutzen" -#: ../src/libs/collect.c:2162 +#: ../src/libs/collect.c:2385 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -19261,7 +21200,7 @@ "Shift+Klick, um nur die aktuelle Hierarchie einzuschließen (kein Suffix)\n" "Strg+Klick, um nur Unterhierarchien einzuschließen (Suffix „|%“)" -#: ../src/libs/collect.c:2174 +#: ../src/libs/collect.c:2398 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -19274,7 +21213,7 @@ "Shift+Klick, um nur den aktuellen Ort einzuschließen (kein Suffix)\n" "Strg+Klick, um nur Unterorte einzuschließen (Suffix „|%“)" -#: ../src/libs/collect.c:2186 +#: ../src/libs/collect.c:2411 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -19287,101 +21226,103 @@ "Shift+Klick, um nur den aktuellen Ordner einzuschließen (kein Suffix)\n" "Strg+Klick, um nur Unterordner einzuschließen (Suffix „|%“)" -#: ../src/libs/collect.c:2197 +#: ../src/libs/collect.c:2422 #, no-c-format msgid "use `%' as wildcard" msgstr "„%” als Platzhalter benutzen" -#: ../src/libs/collect.c:2263 ../src/libs/collect.c:2277 ../src/libs/collect.c:2800 +#: ../src/libs/collect.c:2488 ../src/libs/collect.c:2502 +#: ../src/libs/collect.c:3111 msgid "clear this rule" msgstr "diese Regel löschen" -#: ../src/libs/collect.c:2267 +#: ../src/libs/collect.c:2492 msgid "clear this rule or add new rules" msgstr "diese Regel löschen oder weitere Regeln hinzufügen" -#: ../src/libs/collect.c:2806 +#: ../src/libs/collect.c:3117 msgid "narrow down search" msgstr "Suche verfeinern" -#: ../src/libs/collect.c:2811 +#: ../src/libs/collect.c:3124 msgid "add more images" msgstr "mehr Bilder hinzufügen" -#: ../src/libs/collect.c:2816 +#: ../src/libs/collect.c:3131 msgid "exclude images" msgstr "Bilder ausschließen" -#: ../src/libs/collect.c:2823 +#: ../src/libs/collect.c:3140 msgid "change to: and" msgstr "ändere zu: UND" -#: ../src/libs/collect.c:2828 +#: ../src/libs/collect.c:3147 msgid "change to: or" msgstr "ändere zu: ODER" -#: ../src/libs/collect.c:2833 +#: ../src/libs/collect.c:3154 msgid "change to: except" msgstr "ändere zu: AUSSER" #. the different categories -#: ../src/libs/collect.c:2859 ../src/libs/filtering.c:857 ../src/libs/filtering.c:924 ../src/libs/filtering.c:1558 -#: ../src/libs/filtering.c:1890 +#: ../src/libs/collect.c:3184 ../src/libs/filtering.c:883 +#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1620 +#: ../src/libs/filtering.c:1964 msgid "files" msgstr "Dateien" -#: ../src/libs/collect.c:2864 ../src/libs/export_metadata.c:312 ../src/libs/filtering.c:862 -#: ../src/libs/filtering.c:929 ../src/libs/filtering.c:1566 ../src/libs/filtering.c:1894 ../src/libs/image.c:464 -#: ../src/libs/image.c:574 ../src/libs/image.c:582 ../src/libs/metadata.c:676 ../src/libs/metadata_view.c:1226 +#: ../src/libs/collect.c:3189 ../src/libs/export_metadata.c:301 +#: ../src/libs/filtering.c:888 ../src/libs/filtering.c:955 +#: ../src/libs/filtering.c:1628 ../src/libs/filtering.c:1968 +#: ../src/libs/image.c:495 ../src/libs/image.c:633 ../src/libs/image.c:645 +#: ../src/libs/metadata.c:509 ../src/libs/metadata_view.c:1256 msgid "metadata" msgstr "Metadaten" -#: ../src/libs/collect.c:2883 ../src/libs/filtering.c:883 ../src/libs/filtering.c:950 ../src/libs/filtering.c:1892 +#: ../src/libs/collect.c:3208 ../src/libs/filtering.c:909 +#: ../src/libs/filtering.c:976 ../src/libs/filtering.c:1966 msgid "times" msgstr "Datum/Uhrzeit" -#: ../src/libs/collect.c:2891 ../src/libs/filtering.c:891 ../src/libs/filtering.c:958 ../src/libs/filtering.c:1590 +#: ../src/libs/collect.c:3216 ../src/libs/filtering.c:917 +#: ../src/libs/filtering.c:984 ../src/libs/filtering.c:1652 msgid "capture details" msgstr "Aufnahmeparameter" -#: ../src/libs/collect.c:2900 ../src/libs/filtering.c:900 ../src/libs/filtering.c:967 ../src/libs/filtering.c:1602 -#: ../src/libs/filtering.c:1896 ../src/libs/tools/darktable.c:65 +#: ../src/libs/collect.c:3225 ../src/libs/filtering.c:926 +#: ../src/libs/filtering.c:993 ../src/libs/filtering.c:1664 +#: ../src/libs/filtering.c:1970 ../src/libs/tools/darktable.c:61 msgid "darktable" msgstr "darktable" -#: ../src/libs/collect.c:2913 +#: ../src/libs/collect.c:3240 msgid "collections settings" msgstr "Einstellungen „Sammlungen“" -#: ../src/libs/collect.c:2916 ../src/libs/export_metadata.c:288 ../src/libs/metadata.c:632 -#: ../src/libs/metadata_view.c:1194 ../src/libs/recentcollect.c:228 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 ../src/libs/tagging.c:3472 -msgid "save" -msgstr "Speichern" - -#: ../src/libs/collect.c:2936 ../src/libs/export.c:1046 ../src/libs/metadata.c:779 ../src/libs/metadata_view.c:1306 -#: ../src/libs/recentcollect.c:293 ../src/libs/tagging.c:3494 +#: ../src/libs/collect.c:3267 ../src/libs/export.c:1126 +#: ../src/libs/metadata.c:615 ../src/libs/metadata_view.c:1339 +#: ../src/libs/recentcollect.c:295 ../src/libs/tagging.c:3526 msgid "preferences..." msgstr "Einstellungen…" -#: ../src/libs/collect.c:3041 ../src/libs/filtering.c:1432 +#: ../src/libs/collect.c:3388 ../src/libs/filtering.c:1494 msgid "AND" msgstr "UND" -#: ../src/libs/collect.c:3046 ../src/libs/filtering.c:1437 +#: ../src/libs/collect.c:3393 ../src/libs/filtering.c:1499 msgid "OR" msgstr "ODER" #. case DT_LIB_COLLECT_MODE_AND_NOT: -#: ../src/libs/collect.c:3051 ../src/libs/filtering.c:1442 +#: ../src/libs/collect.c:3398 ../src/libs/filtering.c:1504 msgid "BUT NOT" msgstr "ABER NICHT" -#: ../src/libs/collect.c:3223 ../src/libs/filtering.c:2164 +#: ../src/libs/collect.c:3588 ../src/libs/filtering.c:2238 msgid "revert to a previous set of rules" msgstr "zu einem früheren Satz von Filterregeln zurückkehren" -#: ../src/libs/collect.c:3280 +#: ../src/libs/collect.c:3671 msgid "jump back to previous collection" msgstr "zurück zur letzten Sammlung" @@ -19405,7 +21346,7 @@ msgid "color picker" msgstr "Pipette" -#: ../src/libs/colorpicker.c:463 +#: ../src/libs/colorpicker.c:513 msgid "" "hover to highlight sample on canvas,\n" "click to lock sample,\n" @@ -19415,23 +21356,23 @@ "zum Sperren klicken\n" "Rechtsklick zum Laden des Meßpunkts in die aktive Pipette" -#: ../src/libs/colorpicker.c:561 ../src/libs/colorpicker.c:612 +#: ../src/libs/colorpicker.c:626 ../src/libs/colorpicker.c:693 msgid "click to (un)hide large color patch" msgstr "klicken, um großes Farbfeld ein- bzw. auszublenden" -#: ../src/libs/colorpicker.c:575 +#: ../src/libs/colorpicker.c:649 msgid "statistic" msgstr "Wert" -#: ../src/libs/colorpicker.c:576 +#: ../src/libs/colorpicker.c:650 msgid "select which statistic to show" msgstr "Auswählen welcher Wert angezeigt soll" -#: ../src/libs/colorpicker.c:585 +#: ../src/libs/colorpicker.c:660 msgid "select which color mode to use" msgstr "Auswahl des zu verwendenden Farbmodus" -#: ../src/libs/colorpicker.c:594 +#: ../src/libs/colorpicker.c:671 msgid "" "turn on color picker\n" "ctrl+click or right-click to select an area" @@ -19439,21 +21380,21 @@ "Pipette einschalten\n" "Strg+Klick oder Rechtsklick, um Bereich auszuwählen" -#: ../src/libs/colorpicker.c:636 +#: ../src/libs/colorpicker.c:722 msgid "add sample" msgstr "Sample hinzufügen" #. Adding the live samples section -#: ../src/libs/colorpicker.c:640 +#: ../src/libs/colorpicker.c:727 msgctxt "section" msgid "live samples" msgstr "Live-Messwerte" -#: ../src/libs/colorpicker.c:648 +#: ../src/libs/colorpicker.c:738 msgid "display samples on image/vectorscope" msgstr "Messpunkte im Bild/Vektorscope anzeigen" -#: ../src/libs/colorpicker.c:657 +#: ../src/libs/colorpicker.c:749 msgid "restrict scope to selection" msgstr "Histogramm/Scope auf Auswahl beschränken" @@ -19465,10 +21406,6 @@ msgid "open sidecar file" msgstr "Begleitdatei öffnen" -#: ../src/libs/copy_history.c:149 -msgid "XMP sidecar files" -msgstr "XMP-Begleitdateien" - #: ../src/libs/copy_history.c:166 #, c-format msgid "error loading file '%s'" @@ -19490,7 +21427,8 @@ msgid "do you really want to clear history of %d selected image?" msgid_plural "do you really want to clear history of %d selected images?" msgstr[0] "Soll der Bearbeitungsverlauf von %d Bild wirklich gelöscht werden?" -msgstr[1] "Soll der Bearbeitungsverlauf von %d Bildern wirklich gelöscht werden?" +msgstr[1] "" +"Soll der Bearbeitungsverlauf von %d Bildern wirklich gelöscht werden?" #: ../src/libs/copy_history.c:364 msgid "selective copy..." @@ -19514,7 +21452,7 @@ msgid "choose which modules to paste to the target image(s)" msgstr "auswählen, welche Module des Verlaufsstapels eingefügt werden" -#: ../src/libs/copy_history.c:382 ../src/libs/image.c:588 +#: ../src/libs/copy_history.c:382 ../src/libs/image.c:655 msgid "paste" msgstr "einfügen" @@ -19540,379 +21478,434 @@ "all selected images" msgstr "Verlaufsstapel aller ausgewählten Bilder verwerfen" -#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:847 +#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:851 msgid "how to handle existing history" msgstr "" "wie soll mit einem vorhandenen\n" "Verlauf umgegangen werden" -#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:850 +#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:854 msgid "append" msgstr "hinzufügen" #: ../src/libs/copy_history.c:409 msgid "load sidecar file..." -msgstr "XMP-Begleitdatei laden" +msgstr "XMP Datei laden" #: ../src/libs/copy_history.c:410 msgid "" "open an XMP sidecar file\n" "and apply it to selected images" msgstr "" -"eine XMP-Begleitdatei öffnen und auf\n" +"eine XMP Datei öffnen und auf\n" "die ausgewählten Bilder anwenden" #: ../src/libs/copy_history.c:415 msgid "write history stack and tags to XMP sidecar files" -msgstr "Verlaufsstapel und Tags in XMP-Begleitdatei schreiben" +msgstr "Verlaufsstapel und Tags in XMP Datei schreiben" -#: ../src/libs/duplicate.c:56 +#: ../src/libs/duplicate.c:60 msgid "duplicate manager" msgstr "Duplikat-Manager" -#: ../src/libs/duplicate.c:401 +#: ../src/libs/duplicate.c:407 msgid "create a 'virgin' duplicate of the image without any development" -msgstr "Erstellt ein „jungfräuliches” Duplikat des Bildes ohne jegliche Entwicklung" +msgstr "" +"Erstellt ein „jungfräuliches” Duplikat des Bildes ohne jegliche Entwicklung" -#: ../src/libs/duplicate.c:406 +#: ../src/libs/duplicate.c:412 msgid "create a duplicate of the image with same history stack" msgstr "Erstellt ein Duplikat des Bildes mit dem gleichen Verlaufsstapel" -#. Export button -#: ../src/libs/export.c:153 ../src/libs/export.c:1281 +#: ../src/libs/export.c:160 msgid "export" msgstr "exportieren" #: ../src/libs/export.c:306 +msgid "invalid format for export selected" +msgstr "ungültiges Format für den Export ausgewählt" + +#: ../src/libs/export.c:311 +msgid "invalid storage for export selected" +msgstr "ungültiger Speicher für den Export ausgewählt" + +#: ../src/libs/export.c:322 msgid "export to disk" msgstr "Exportieren" -#: ../src/libs/export.c:485 +#: ../src/libs/export.c:516 #, c-format msgid "which is equal to %s × %s px" msgstr "entspricht %s Pixel × %s Pixel" -#: ../src/libs/export.c:520 +#: ../src/libs/export.c:555 msgctxt "unit" msgid "in" msgstr "Zoll" -#: ../src/libs/export.c:1060 +#: ../src/libs/export.c:1141 msgctxt "section" msgid "storage options" msgstr "Speicher-Optionen" -#: ../src/libs/export.c:1064 +#: ../src/libs/export.c:1145 msgid "target storage" msgstr "Speicherziel" -#: ../src/libs/export.c:1086 +#: ../src/libs/export.c:1171 msgctxt "section" msgid "format options" msgstr "Format-Optionen" -#: ../src/libs/export.c:1090 +#: ../src/libs/export.c:1175 msgid "file format" msgstr "Dateiformat" -#: ../src/libs/export.c:1107 +#: ../src/libs/export.c:1193 msgctxt "section" msgid "global options" msgstr "globale Optionen" -#: ../src/libs/export.c:1110 +#: ../src/libs/export.c:1196 msgid "set size" msgstr "Größe" -#: ../src/libs/export.c:1111 +#: ../src/libs/export.c:1197 msgid "choose a method for setting the output size" msgstr "Methode, die Ausgabegröße festzulegen" -#: ../src/libs/export.c:1114 +#: ../src/libs/export.c:1200 msgid "in pixels (for file)" msgstr "in Pixel (für Datei)" -#: ../src/libs/export.c:1115 +#: ../src/libs/export.c:1201 msgid "in cm (for print)" msgstr "in cm (für Druck)" -#: ../src/libs/export.c:1116 +#: ../src/libs/export.c:1202 msgid "in inch (for print)" msgstr "in Zoll (für Druck)" -#: ../src/libs/export.c:1117 +#: ../src/libs/export.c:1203 msgid "by scale (for file)" msgstr "Skalierung (für Datei)" -#: ../src/libs/export.c:1119 +#: ../src/libs/export.c:1206 msgid "print width" msgstr "Druckbreite" -#: ../src/libs/export.c:1120 ../src/libs/export.c:1132 +#: ../src/libs/export.c:1208 ../src/libs/export.c:1225 msgid "" "maximum output width limit.\n" "click middle mouse button to reset to 0." -msgstr "Maximale Ausgabebreite. Mittlere Maustaste drücken, um auf 0 zurückzusetzen." +msgstr "" +"Maximale Ausgabebreite. Mittlere Maustaste drücken, um auf 0 zurückzusetzen." -#: ../src/libs/export.c:1123 +#: ../src/libs/export.c:1212 msgid "print height" msgstr "Druckhöhe" -#: ../src/libs/export.c:1124 ../src/libs/export.c:1136 +#: ../src/libs/export.c:1214 ../src/libs/export.c:1231 msgid "" "maximum output height limit.\n" "click middle mouse button to reset to 0." -msgstr "Maximale Ausgabehöhe. Mittlere Maustaste drücken, um auf 0 zurückzusetzen." +msgstr "" +"Maximale Ausgabehöhe. Mittlere Maustaste drücken, um auf 0 zurückzusetzen." -#: ../src/libs/export.c:1128 +#: ../src/libs/export.c:1220 msgid "resolution in dot per inch" msgstr "Auflösung in Punkte pro Zoll" -#: ../src/libs/export.c:1148 +#: ../src/libs/export.c:1244 msgid "@" msgstr "@" -#: ../src/libs/export.c:1161 ../src/libs/tools/global_toolbox.c:217 +#: ../src/libs/export.c:1258 ../src/libs/tools/global_toolbox.c:217 msgid "px" msgstr "Pixel" -#: ../src/libs/export.c:1166 +#: ../src/libs/export.c:1266 msgid "" "it can be an integer, decimal number or simple fraction.\n" "zero or empty values are equal to 1.\n" "click middle mouse button to reset to 1." -msgstr "Aus Eingabe werden Ganzzahlen, eine Dezimalzahlen oder einfache Brüche akzeptiert." +msgstr "" +"Aus Eingabe werden Ganzzahlen, eine Dezimalzahlen oder einfache Brüche " +"akzeptiert." -#: ../src/libs/export.c:1185 +#: ../src/libs/export.c:1292 msgid "allow upscaling" msgstr "Vergrößern erlauben" -#: ../src/libs/export.c:1191 +#: ../src/libs/export.c:1301 msgid "high quality resampling" msgstr "hochqualitatives Resampling" -#: ../src/libs/export.c:1192 +#: ../src/libs/export.c:1302 msgid "do high quality resampling during export" msgstr "Hochqualitatives Resampling beim Export" -#: ../src/libs/export.c:1198 +#: ../src/libs/export.c:1310 msgid "store masks" msgstr "Raster-Maske speichern" -#: ../src/libs/export.c:1199 +#: ../src/libs/export.c:1311 msgid "store masks as layers in exported images. only works for some formats." msgstr "" -"Speichere Masken als Ebenen in exportierten Bildern. Dies wird nur von bestimmten Ausgabeformaten unterstützt." +"Speichere Masken als Ebenen in exportierten Bildern. Dies wird nur von " +"bestimmten Ausgabeformaten unterstützt." -#: ../src/libs/export.c:1210 ../src/libs/export.c:1245 ../src/libs/print_settings.c:2777 -#: ../src/libs/print_settings.c:2823 +#: ../src/libs/export.c:1322 ../src/libs/export.c:1357 +#: ../src/libs/print_settings.c:2777 ../src/libs/print_settings.c:2823 msgid "image settings" msgstr "Bildeinstellungen" -#: ../src/libs/export.c:1220 ../src/libs/print_settings.c:2811 +#: ../src/libs/export.c:1332 ../src/libs/print_settings.c:2811 msgid "output ICC profiles" msgstr "Ausgabe ICC Profil" -#: ../src/libs/export.c:1228 +#: ../src/libs/export.c:1340 msgid "" -"• perceptual: smoothly moves out-of-gamut colors into gamut, preserving gradations,\n" +"• perceptual: smoothly moves out-of-gamut colors into gamut, preserving " +"gradations,\n" "but distorts in-gamut colors in the process.\n" -"note that perceptual is often a proprietary LUT that depends on the destination space.\n" +"note that perceptual is often a proprietary LUT that depends on the " +"destination space.\n" "\n" -"• relative colorimetric: keeps luminance while reducing as little as possible\n" +"• relative colorimetric: keeps luminance while reducing as little as " +"possible\n" "saturation until colors fit in gamut.\n" "\n" "• saturation: designed to present eye-catching business graphics\n" "by preserving the saturation. (not suited for photography).\n" "\n" -"• absolute colorimetric: adapt white point of the image to the white point of the\n" +"• absolute colorimetric: adapt white point of the image to the white point " +"of the\n" "destination medium and do nothing else. mainly used when proofing colors.\n" "(not suited for photography)." msgstr "" -"- Wahrnehmung: verschiebt Farben außerhalb des Farbspektrums in den Farbraum, \n" -"wobei die Abstufungen erhalten bleiben, aber die Farben innerhalb des Farbspektrums verzerrt werden. \n" -"Beachte, dass Wahrnehmung oft eine proprietäre LUT ist, die vom Zielfarbraum abhängt.\n" +"- Wahrnehmung: verschiebt Farben außerhalb des Farbspektrums in den " +"Farbraum, \n" +"wobei die Abstufungen erhalten bleiben, aber die Farben innerhalb des " +"Farbspektrums verzerrt werden. \n" +"Beachte, dass Wahrnehmung oft eine proprietäre LUT ist, die vom Zielfarbraum " +"abhängt.\n" "\n" -"- relativ Farbmetrisch: behält die Luminanz bei und reduziert gleichzeitig die Sättigung \n" +"- relativ Farbmetrisch: behält die Luminanz bei und reduziert gleichzeitig " +"die Sättigung \n" "so wenig wie möglich, bis die Farben in den Farbraum passen.\n" "\n" "- Sättigung: ausgelegt um auffällige Geschäftsgrafiken zu präsentieren, \n" "indem die Sättigung erhalten bleibt. (nicht für die Fotografie geeignet).\n" "\n" -"- absolut Farbmetrisch: passt den Weißpunkt des Bildes an den Weißpunkt des Zielmediums an \n" -"und tut nichts anderes. Wird hauptsächlich beim Proofing von Farben verwendet. \n" +"- absolut Farbmetrisch: passt den Weißpunkt des Bildes an den Weißpunkt des " +"Zielmediums an \n" +"und tut nichts anderes. Wird hauptsächlich beim Proofing von Farben " +"verwendet. \n" "(nicht für Fotografie geeignet)." -#: ../src/libs/export.c:1255 ../src/libs/print_settings.c:2833 +#: ../src/libs/export.c:1367 ../src/libs/print_settings.c:2833 msgid "style" msgstr "Stil" -#: ../src/libs/export.c:1258 +#: ../src/libs/export.c:1370 msgid "temporary style to use while exporting" msgstr "Stil, der beim Export vorübergehend angewandt werden soll" -#: ../src/libs/export.c:1263 ../src/libs/print_settings.c:2876 -msgid "whether the style items are appended to the history or replacing the history" -msgstr "sollen Stil-Module an den Verlauf angehängt werden, oder diesen ersetzen" +#: ../src/libs/export.c:1377 ../src/libs/print_settings.c:2876 +msgid "" +"whether the style items are appended to the history or replacing the history" +msgstr "" +"sollen Stil-Module an den Verlauf angehängt werden, oder diesen ersetzen" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "replace history" msgstr "Verlauf ersetzen" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "append history" msgstr "Verlauf hinzufügen" -#: ../src/libs/export.c:1282 +#: ../src/libs/export.c:1398 +msgctxt "actionbutton" +msgid "export" +msgstr "exportieren" + +#: ../src/libs/export.c:1400 msgid "export with current settings" msgstr "mit aktuellen Einstellungen exportieren" -#: ../src/libs/export_metadata.c:163 +#: ../src/libs/export_metadata.c:148 msgid "select tag" msgstr "Tag auswählen" -#: ../src/libs/export_metadata.c:164 -msgid "add" -msgstr "hinzufügen" +#: ../src/libs/export_metadata.c:150 +msgid "_add" +msgstr "_hinzufügen" + +#: ../src/libs/export_metadata.c:151 ../src/libs/geotagging.c:811 +msgid "_done" +msgstr "_erledigt" -#: ../src/libs/export_metadata.c:175 +#: ../src/libs/export_metadata.c:162 msgid "list filter" msgstr "Liste filtern" -#: ../src/libs/export_metadata.c:186 -msgid "list of available tags. click 'add' button or double-click on tag to add the selected one" +#: ../src/libs/export_metadata.c:173 +msgid "" +"list of available tags. click 'add' button or double-click on tag to add the " +"selected one" msgstr "" -"Liste der verfügbaren Tags. Ein Klick auf die Schaltfläche „Hinzufügen“ oder Doppelklick auf das Tag, fügt dieses " -"hinzu" +"Liste der verfügbaren Tags. Ein Klick auf die Schaltfläche „Hinzufügen“ oder " +"Doppelklick auf das Tag, fügt dieses hinzu" -#: ../src/libs/export_metadata.c:287 +#: ../src/libs/export_metadata.c:274 msgid "edit metadata exportation" msgstr "Metadaten-Export bearbeiten" -#: ../src/libs/export_metadata.c:304 +#: ../src/libs/export_metadata.c:293 msgid "general settings" msgstr "Allgemeine Einstellungen" -#: ../src/libs/export_metadata.c:309 +#: ../src/libs/export_metadata.c:298 msgid "EXIF data" msgstr "EXIF Daten" -#: ../src/libs/export_metadata.c:310 +#: ../src/libs/export_metadata.c:299 msgid "export EXIF metadata" msgstr "EXIF-Metadaten exportieren" -#: ../src/libs/export_metadata.c:313 +#: ../src/libs/export_metadata.c:302 msgid "export darktable XMP metadata (from metadata editor module)" -msgstr "Exportiere darktable XMP-Metadaten (aus dem Metadaten-Editor-Modul)" +msgstr "Exportiere darktable XMP Metadaten (aus dem Metadaten-Editor-Modul)" -#: ../src/libs/export_metadata.c:323 +#: ../src/libs/export_metadata.c:312 msgid "only embedded" msgstr "nur eingebettet" -#: ../src/libs/export_metadata.c:324 +#: ../src/libs/export_metadata.c:313 msgid "" -"per default the interface sends some (limited) metadata beside the image to remote storage.\n" -"to avoid this and let only image embedded darktable XMP metadata, check this flag.\n" -"if remote storage doesn't understand darktable XMP metadata, you can use calculated metadata instead" -msgstr "" -"Standardmäßig sendet die Schnittstelle einige (begrenzte) Metadaten neben dem Bild an den Remote-Speicher.\n" -"Um dies zu vermeiden und nur eingebettete darktable XMP-Metadaten anzuzeigen, überprüfe dieses Kontrollkästchen.\n" -"Wenn der Remote-Speicher darktable XMP-Metadaten nicht versteht, können stattdessen berechnete Metadaten verwendet " -"werden." +"per default the interface sends some (limited) metadata beside the image to " +"remote storage.\n" +"to avoid this and let only image embedded darktable XMP metadata, check this " +"flag.\n" +"if remote storage doesn't understand darktable XMP metadata, you can use " +"calculated metadata instead" +msgstr "" +"Standardmäßig sendet die Schnittstelle einige (begrenzte) Metadaten neben " +"dem Bild an den Remote-Speicher.\n" +"Um dies zu vermeiden und nur eingebettete darktable XMP Metadaten " +"anzuzeigen, überprüfe dieses Kontrollkästchen.\n" +"Wenn der Remote-Speicher darktable XMP Metadaten nicht versteht, können " +"stattdessen berechnete Metadaten verwendet werden." -#: ../src/libs/export_metadata.c:330 ../src/libs/image.c:566 +#: ../src/libs/export_metadata.c:319 ../src/libs/image.c:623 msgid "geo tags" msgstr "Geo-Tags" -#: ../src/libs/export_metadata.c:331 +#: ../src/libs/export_metadata.c:320 msgid "export geo tags" msgstr "Geo-Tags exportieren" -#: ../src/libs/export_metadata.c:334 +#: ../src/libs/export_metadata.c:323 msgid "export tags (to Xmp.dc.Subject)" msgstr "Tags exportieren (nach Xmp.dc.Subject)" -#: ../src/libs/export_metadata.c:342 +#: ../src/libs/export_metadata.c:331 msgid "private tags" msgstr "private Tags" -#: ../src/libs/export_metadata.c:343 +#: ../src/libs/export_metadata.c:332 msgid "export private tags" msgstr "private Tags exportieren" -#: ../src/libs/export_metadata.c:345 +#: ../src/libs/export_metadata.c:334 msgid "synonyms" msgstr "Synonym" -#: ../src/libs/export_metadata.c:346 +#: ../src/libs/export_metadata.c:335 msgid "export tags synonyms" msgstr "Tag Synonym exportieren" -#: ../src/libs/export_metadata.c:348 +#: ../src/libs/export_metadata.c:337 msgid "omit hierarchy" msgstr "Hierarchie ignorieren" -#: ../src/libs/export_metadata.c:349 -msgid "only the last part of the hierarchical tags is included. can be useful if categories are not used" +#: ../src/libs/export_metadata.c:338 +msgid "" +"only the last part of the hierarchical tags is included. can be useful if " +"categories are not used" msgstr "" -"Nur der letzte Teil des hierarchischen Tagging ist enthalten. Dies kann sinnvoll sein, wenn Kategorien nicht " -"verwendet werden." +"Nur der letzte Teil des hierarchischen Tagging ist enthalten. Dies kann " +"sinnvoll sein, wenn Kategorien nicht verwendet werden." -#: ../src/libs/export_metadata.c:352 +#: ../src/libs/export_metadata.c:341 msgid "hierarchical tags" msgstr "hierarchische Tags" -#: ../src/libs/export_metadata.c:353 +#: ../src/libs/export_metadata.c:342 msgid "export hierarchical tags (to Xmp.lr.Hierarchical Subject)" msgstr "Hierarchische Tags exportieren (nach Xmp.lr.Hierarchical Subject)" -#: ../src/libs/export_metadata.c:355 +#: ../src/libs/export_metadata.c:344 msgid "develop history" msgstr "Verlaufsstapel exportieren" -#: ../src/libs/export_metadata.c:356 -msgid "export darktable development data (recovery purpose in case of loss of database or XMP file)" -msgstr "Export von darktable Entwicklungsdaten (Wiederherstellung bei Verlust der Datenbank oder XMP-Datei)" +#: ../src/libs/export_metadata.c:345 +msgid "" +"export darktable development data (recovery purpose in case of loss of " +"database or XMP file)" +msgstr "" +"Export von darktable Entwicklungsdaten (Wiederherstellung bei Verlust der " +"Datenbank oder XMP Datei)" -#: ../src/libs/export_metadata.c:363 +#: ../src/libs/export_metadata.c:352 msgid "per metadata settings" msgstr "Konfiguration der einzelnen Metadaten" -#: ../src/libs/export_metadata.c:376 +#: ../src/libs/export_metadata.c:364 msgid "redefined tag" msgstr "neu definiertes Tag" -#: ../src/libs/export_metadata.c:382 +#: ../src/libs/export_metadata.c:370 msgid "formula" msgstr "Formel" -#: ../src/libs/export_metadata.c:385 +#: ../src/libs/export_metadata.c:373 msgid "" "list of calculated metadata\n" "click on '+' button to select and add new metadata\n" -"if formula is empty, the corresponding metadata is removed from exported file,\n" -"if formula is '=', the EXIF metadata is exported even if EXIF data are disabled\n" -"otherwise the corresponding metadata is calculated and added to exported file\n" +"if formula is empty, the corresponding metadata is removed from exported " +"file,\n" +"if formula is '=', the EXIF metadata is exported even if EXIF data are " +"disabled\n" +"otherwise the corresponding metadata is calculated and added to exported " +"file\n" "click on formula cell to edit\n" "type '$(' to activate the completion and see the list of variables" msgstr "" "Liste der berechneten Metadaten\n" -"- auf die Schaltfläche „+“ klicken, um neue Metadaten auszuwählen und hinzuzufügen\n" -"- wenn die Formel leer ist, werden die entsprechenden Metadaten aus der exportierten Datei entfernt,\n" -"- wenn die Formel „=„ ist, werden die EXIF-Metadaten exportiert, auch wenn EXIF-Daten deaktiviert sind\n" -"andernfalls werden die entsprechenden Metadaten neu berechnet und der exportierten Datei hinzugefügt.\n" +"- auf die Schaltfläche „+“ klicken, um neue Metadaten auszuwählen und " +"hinzuzufügen\n" +"- wenn die Formel leer ist, werden die entsprechenden Metadaten aus der " +"exportierten Datei entfernt,\n" +"- wenn die Formel „=„ ist, werden die EXIF-Metadaten exportiert, auch wenn " +"EXIF-Daten deaktiviert sind\n" +"andernfalls werden die entsprechenden Metadaten neu berechnet und der " +"exportierten Datei hinzugefügt.\n" "Zum Bearbeiten auf die Formelzelle klicken\n" -"„$(„ eingeben, um die Vervollständigungsfunktion zu aktivieren und die Liste der Variablen anzuzeigen" +"„$(„ eingeben, um die Vervollständigungsfunktion zu aktivieren und die Liste " +"der Variablen anzuzeigen" -#: ../src/libs/export_metadata.c:442 +#: ../src/libs/export_metadata.c:430 msgid "add an output metadata tag" msgstr "Hinzufügen eines Ausgabe Metadaten Tags" -#: ../src/libs/export_metadata.c:447 +#: ../src/libs/export_metadata.c:435 msgid "delete metadata tag" msgstr "Metadaten Tag löschen" -#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:128 +#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:130 msgid "full path" msgstr "voller Pfad" @@ -19932,61 +21925,63 @@ msgid "shuffle" msgstr "mischen" -#: ../src/libs/filtering.c:263 +#: ../src/libs/filtering.c:269 msgid "collection filters" msgstr "Filter- und Sortierung" -#: ../src/libs/filtering.c:296 +#: ../src/libs/filtering.c:302 msgid "initial setting" msgstr "initiale Einstellung" -#: ../src/libs/filtering.c:315 +#: ../src/libs/filtering.c:321 msgid "imported: last 24h" msgstr "importiert: letzte 24 Stunden" -#: ../src/libs/filtering.c:320 +#: ../src/libs/filtering.c:326 msgid "imported: last 30 days" msgstr "importiert: letzte 30 Tage" -#: ../src/libs/filtering.c:326 +#: ../src/libs/filtering.c:332 msgid "taken: last 24h" msgstr "aufgenommen: letzte 24 Stunden" -#: ../src/libs/filtering.c:330 +#: ../src/libs/filtering.c:336 msgid "taken: last 30 days" msgstr "aufgenommen: letzte 30 Tage" -#: ../src/libs/filtering.c:702 +#: ../src/libs/filtering.c:728 msgid "click or click&drag to select one or multiple values" -msgstr "klicken oder klicken&ziehen, um einen oder mehrere Werte auszuwählen" +msgstr "" +"klicken oder klicken&ziehen, um einen oder mehrere Werte auszuwählen" -#: ../src/libs/filtering.c:703 +#: ../src/libs/filtering.c:729 msgid "right-click opens a menu to select the available values" msgstr "Rechtsklick öffnet ein Menü zur Auswahl der verfügbaren Werte" -#: ../src/libs/filtering.c:800 +#: ../src/libs/filtering.c:826 #, c-format msgid "you can't have more than %d rules" msgstr "max %d Regeln zulässig" -#: ../src/libs/filtering.c:922 ../src/libs/filtering.c:1556 +#: ../src/libs/filtering.c:948 ../src/libs/filtering.c:1618 msgid "rule property" msgstr "Filterregel Eigenschaft" -#: ../src/libs/filtering.c:987 +#: ../src/libs/filtering.c:1013 msgid "" "rule property\n" "this can't be changed as the rule is pinned to the toolbar" msgstr "" "Regeleigenschaft\n" -"diese kann nicht geändert werden, da die Regel in der Symbolleiste verankert ist" +"diese kann nicht geändert werden, da die Regel in der Symbolleiste verankert " +"ist" -#: ../src/libs/filtering.c:1035 +#: ../src/libs/filtering.c:1095 msgctxt "quickfilter" msgid "filter" msgstr "Filter" -#: ../src/libs/filtering.c:1062 +#: ../src/libs/filtering.c:1124 msgid "" "this rule is pinned to the top toolbar\n" "click to un-pin" @@ -19994,114 +21989,126 @@ "diese Regel ist in der obere Symbolleiste angeheftet\n" "Klick zum Entfernen" -#: ../src/libs/filtering.c:1063 +#: ../src/libs/filtering.c:1125 msgid "you can't disable the rule as it is pinned to the toolbar" -msgstr "die Regel kann nicht deaktiviert werden, da sie in der Symbolleiste angeheftet ist" +msgstr "" +"die Regel kann nicht deaktiviert werden, da sie in der Symbolleiste " +"angeheftet ist" -#: ../src/libs/filtering.c:1064 +#: ../src/libs/filtering.c:1126 msgid "you can't remove the rule as it is pinned to the toolbar" -msgstr "die Regel kann nicht entfernt werden, da sie in der Symbolleiste angeheftet ist" +msgstr "" +"die Regel kann nicht entfernt werden, da sie in der Symbolleiste angeheftet " +"ist" -#: ../src/libs/filtering.c:1069 +#: ../src/libs/filtering.c:1131 msgid "click to pin this rule to the top toolbar" msgstr "Klicken, um die Regel in der oberen Symbolleiste anzuheften" -#: ../src/libs/filtering.c:1070 +#: ../src/libs/filtering.c:1132 msgid "remove this collect rule" msgstr "diese Sammlungsregel entfernen" -#: ../src/libs/filtering.c:1072 +#: ../src/libs/filtering.c:1134 msgid "this rule is enabled" msgstr "Regel ist aktiviert" -#: ../src/libs/filtering.c:1074 +#: ../src/libs/filtering.c:1136 msgid "this rule is disabled" msgstr "Regel ist deaktiviert" -#: ../src/libs/filtering.c:1202 +#: ../src/libs/filtering.c:1264 msgid "or" msgstr "oder" -#: ../src/libs/filtering.c:1203 +#: ../src/libs/filtering.c:1265 msgid "and not" msgstr "und nicht" -#: ../src/libs/filtering.c:1205 +#: ../src/libs/filtering.c:1267 msgid "define how this rule should interact with the previous one" msgstr "festlegen, wie diese Filteregel mit der vorherigen zusammenwirken soll" -#: ../src/libs/filtering.c:1466 +#: ../src/libs/filtering.c:1528 msgid " (off)" msgstr " (aus)" -#: ../src/libs/filtering.c:1663 +#: ../src/libs/filtering.c:1725 msgid "you can't add more rules." msgstr "keine weiteren Regeln möglich" -#. fill the popover with all pinned rules -#: ../src/libs/filtering.c:1696 +#: ../src/libs/filtering.c:1759 msgid "shown filters" msgstr "angezeigte Filter" -#: ../src/libs/filtering.c:1711 +#: ../src/libs/filtering.c:1774 msgid "new filter" msgstr "neuer Filter" -#: ../src/libs/filtering.c:1884 +#. the actions part of the popover +#: ../src/libs/filtering.c:1781 +msgid "actions" +msgstr "Aktionen" + +#: ../src/libs/filtering.c:1784 +msgid "reset quickfilters" +msgstr "Schnellfilter zurücksetzen" + +#: ../src/libs/filtering.c:1957 msgid "sort order" msgstr "Sortierung" -#: ../src/libs/filtering.c:1886 +#: ../src/libs/filtering.c:1960 msgid "determine the sort order of shown images" msgstr "die Sortierreihenfolge der angezeigten Bilder festlegen" -#: ../src/libs/filtering.c:1906 +#: ../src/libs/filtering.c:1980 msgid "sort direction" msgstr "Sortierung Richtung" -#: ../src/libs/filtering.c:1911 +#: ../src/libs/filtering.c:1985 msgid "remove this sort order" msgstr "diese Sortierung entfernen" -#: ../src/libs/filtering.c:1995 +#: ../src/libs/filtering.c:2069 #, c-format msgid "you can't have more than %d sort orders" msgstr "max %d Sortierreihenfolgen zulässig" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "DESC" msgstr "absteigend" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "ASC" msgstr "aufsteigend" -#: ../src/libs/filtering.c:2160 +#: ../src/libs/filtering.c:2234 msgid "new rule" msgstr "neue Filterregel" -#: ../src/libs/filtering.c:2161 +#: ../src/libs/filtering.c:2235 msgid "append new rule to collect images" msgstr "neue Filterregel anhängen" -#: ../src/libs/filtering.c:2172 ../src/libs/tools/filter.c:116 +#: ../src/libs/filtering.c:2246 ../src/libs/tools/filter.c:116 msgid "sort by" msgstr "sortieren nach" -#: ../src/libs/filtering.c:2180 +#: ../src/libs/filtering.c:2254 msgid "new sort" msgstr "neue Sortierregel" -#: ../src/libs/filtering.c:2181 +#: ../src/libs/filtering.c:2255 msgid "append new sort to order images" msgstr "neue Sortierung anhängen" -#: ../src/libs/filtering.c:2184 +#: ../src/libs/filtering.c:2258 msgid "revert to a previous set of sort orders" msgstr "zu einem früheren Satz von Sortierungen zurückkehren" #. we change the tooltip of the reset button here, as we are sure the header is defined now -#: ../src/libs/filtering.c:2234 +#: ../src/libs/filtering.c:2308 msgid "" "reset\n" "ctrl+click to remove pinned rules too" @@ -20134,9 +22141,11 @@ "Die graue Schaltfläche wirkt sich auf alle Farbmarkierungen aus." #. create the filter combobox -#: ../src/libs/filters/colors.c:301 ../src/libs/filters/colors.c:312 ../src/libs/filters/grouping.c:167 -#: ../src/libs/filters/history.c:153 ../src/libs/filters/local_copy.c:142 ../src/libs/filters/module_order.c:161 -#: ../src/libs/filters/rating.c:199 ../src/libs/filters/rating.c:210 ../src/libs/filters/rating_range.c:325 +#: ../src/libs/filters/colors.c:301 ../src/libs/filters/colors.c:312 +#: ../src/libs/filters/grouping.c:167 ../src/libs/filters/history.c:153 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/filters/module_order.c:161 +#: ../src/libs/filters/rating.c:199 ../src/libs/filters/rating.c:210 +#: ../src/libs/filters/rating_range.c:356 msgid "rules" msgstr "Regeln" @@ -20150,7 +22159,7 @@ "und (∩): Bilder mit allen ausgewählten Farbmarkierungen\n" "oder (∪): Bilder mit mindestens einer der ausgewählten Farbmarkierungen" -#: ../src/libs/filters/filename.c:365 +#: ../src/libs/filters/filename.c:370 msgid "" "enter filename to search.\n" "multiple values can be separated by ','\n" @@ -20162,11 +22171,11 @@ "\n" "Rechtsklick, um vorhandene Dateinamen zu erhalten" -#: ../src/libs/filters/filename.c:376 +#: ../src/libs/filters/filename.c:381 msgid "extension" msgstr "Erweiterung" -#: ../src/libs/filters/filename.c:377 +#: ../src/libs/filters/filename.c:382 msgid "" "enter extension to search with starting dot\n" "multiple values can be separated by ','\n" @@ -20180,7 +22189,7 @@ "\n" "Rechtsklick, um vorhandene Erweiterungen zu erhalten" -#: ../src/libs/filters/filename.c:405 +#: ../src/libs/filters/filename.c:410 msgid "" "click to select filename\n" "ctrl+click to select multiple values" @@ -20188,7 +22197,7 @@ "Mausklick zur Auswahl des Dateinamens\n" "Strg+Klick, um mehrere Werte auszuwählen" -#: ../src/libs/filters/filename.c:432 +#: ../src/libs/filters/filename.c:437 msgid "" "click to select extension\n" "ctrl+click to select multiple values" @@ -20196,6 +22205,11 @@ "Mausklick zur Auswahl der Erweiterung\n" "Strg+Klick zur Auswahl mehrerer Werte" +#. the button to close the popup +#: ../src/libs/filters/filename.c:457 +msgid "ok" +msgstr "OK" + #: ../src/libs/filters/grouping.c:141 ../src/libs/filters/grouping.c:169 msgid "ungrouped images" msgstr "ungruppierte Bilder" @@ -20205,9 +22219,11 @@ msgstr "zu filternde Typen auswählen" #. predefined selections -#: ../src/libs/filters/grouping.c:169 ../src/libs/filters/history.c:38 ../src/libs/filters/local_copy.c:38 -#: ../src/libs/filters/module_order.c:155 ../src/libs/filters/rating_range.c:56 ../src/libs/filters/rating_range.c:72 -#: ../src/libs/filters/rating_range.c:109 ../src/libs/filters/ratio.c:68 ../src/libs/filters/ratio.c:81 +#: ../src/libs/filters/grouping.c:169 ../src/libs/filters/history.c:38 +#: ../src/libs/filters/local_copy.c:38 ../src/libs/filters/module_order.c:155 +#: ../src/libs/filters/rating_range.c:59 ../src/libs/filters/rating_range.c:83 +#: ../src/libs/filters/rating_range.c:131 ../src/libs/filters/ratio.c:68 +#: ../src/libs/filters/ratio.c:81 msgid "all images" msgstr "alle Bilder" @@ -20233,7 +22249,8 @@ msgid "filter by images rating" msgstr "Filtern nach Rating" -#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:542 ../src/libs/tools/ratings.c:56 +#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:596 +#: ../src/libs/tools/ratings.c:56 msgid "ratings" msgstr "Bewertungen" @@ -20241,46 +22258,33 @@ msgid "unstarred only" msgstr "ohne Stern" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:60 ../src/libs/filters/rating_range.c:75 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:65 +#: ../src/libs/filters/rating_range.c:89 msgid "rejected only" msgstr "nur Abgelehnte" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:58 ../src/libs/filters/rating_range.c:73 -#: ../src/libs/filters/rating_range.c:138 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:62 +#: ../src/libs/filters/rating_range.c:86 ../src/libs/filters/rating_range.c:158 msgid "all except rejected" msgstr "Alle außer Abgelehnte" -#: ../src/libs/filters/rating_range.c:61 ../src/libs/filters/rating_range.c:76 +#: ../src/libs/filters/rating_range.c:67 ../src/libs/filters/rating_range.c:91 msgid "not rated only" msgstr "nur nicht bewertete" -#: ../src/libs/filters/rating_range.c:99 ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:131 ../src/libs/filters/rating_range.c:275 -msgid "rejected" -msgstr "verworfene" - -#: ../src/libs/filters/rating_range.c:101 ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:276 -msgid "not rated" -msgstr "nicht bewertet" - -#: ../src/libs/filters/rating_range.c:117 -msgid "only" -msgstr "nur " - -#: ../src/libs/filters/rating_range.c:269 +#: ../src/libs/filters/rating_range.c:296 msgid "better" msgstr "besser" -#: ../src/libs/filters/rating_range.c:270 +#: ../src/libs/filters/rating_range.c:297 msgid "worse" msgstr "schlechter" -#: ../src/libs/filters/rating_range.c:271 +#: ../src/libs/filters/rating_range.c:298 msgid "cap" msgstr "Limit" -#: ../src/libs/filters/rating_range.c:286 +#: ../src/libs/filters/rating_range.c:313 msgid "rating filter" msgstr "Bewertungsfilter" @@ -20299,24 +22303,27 @@ #: ../src/libs/filters/search.c:179 #, no-c-format msgid "" -"filter by text from images metadata, camera brand/model, tags, file path and name\n" +"filter by text from images metadata, camera brand/model, tags, file path and " +"name\n" "`%' is the wildcard character\n" "by default start and end wildcards are auto-applied\n" "starting or ending with a double quote disables the corresponding wildcard\n" "is dimmed during the search execution" msgstr "" -"Filtern nach Text aus Bild-Metadaten, Kameramarke/Modell, Tags, Dateipfad und Name\n" +"Filtern nach Text aus Bild-Metadaten, Kameramarke/Modell, Tags, Dateipfad " +"und Name\n" "„%“ ist das Wildcardzeichen\n" -"Standardmäßig werden Anfangs- und Ende-Wildcardzeichen automatisch angewandt.\n" -"Beginnt oder endet ein Text mit einem doppelten Anführungszeichen, wird das entsprechende Wildcardzeichen " -"deaktiviert\n" +"Standardmäßig werden Anfangs- und Ende-Wildcardzeichen automatisch " +"angewandt.\n" +"Beginnt oder endet ein Text mit einem doppelten Anführungszeichen, wird das " +"entsprechende Wildcardzeichen deaktiviert\n" "wird während der Ausführung der Suche abgeblendet" #: ../src/libs/geotagging.c:368 msgid "apply offset and geo-location" msgstr "Zeitversatz und Geolokalisierung anwenden" -#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1910 +#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1914 msgid "apply geo-location" msgstr "Geolokalisierung anwenden" @@ -20328,48 +22335,49 @@ "Zeitversatz und Geolokalisierung auf ausgewählte Bilder anwenden\n" "rückgängig mit zweifachem Strg-z, da dies zwei Zuweisungen sind" -#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1911 +#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1915 msgid "apply geo-location to matching images" msgstr "Geolokalisierung auf passende Bilder anwenden" -#: ../src/libs/geotagging.c:810 +#: ../src/libs/geotagging.c:809 msgid "GPX file track segments" msgstr "GPX Track Segmente" -#: ../src/libs/geotagging.c:830 ../src/libs/geotagging.c:1869 +#: ../src/libs/geotagging.c:831 ../src/libs/geotagging.c:1873 msgid "start time" msgstr "Startzeit" -#: ../src/libs/geotagging.c:831 +#: ../src/libs/geotagging.c:832 msgid "end time" msgstr "Ende Zeit" -#: ../src/libs/geotagging.c:832 ../src/libs/geotagging.c:1871 +#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1875 msgid "points" msgstr "Punkte" -#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1873 ../src/libs/image.c:463 +#: ../src/libs/geotagging.c:834 ../src/libs/geotagging.c:1877 +#: ../src/libs/image.c:494 msgid "images" msgstr "Bilder" -#: ../src/libs/geotagging.c:926 +#: ../src/libs/geotagging.c:927 msgid "open GPX file" msgstr "GPX-Datei öffnen" -#: ../src/libs/geotagging.c:927 ../src/libs/tools/lighttable.c:333 ../src/libs/tools/lighttable.c:402 -#: ../src/views/darkroom.c:2232 +#: ../src/libs/geotagging.c:928 ../src/libs/tools/lighttable.c:330 +#: ../src/libs/tools/lighttable.c:399 ../src/views/darkroom.c:2091 msgid "preview" msgstr "Vorschau" -#: ../src/libs/geotagging.c:940 +#: ../src/libs/geotagging.c:941 msgid "GPS data exchange format" msgstr "GPS-Daten-Austauschformat (GPX)" -#: ../src/libs/geotagging.c:1739 +#: ../src/libs/geotagging.c:1743 msgid "date/time" msgstr "Datum/Zeit" -#: ../src/libs/geotagging.c:1740 +#: ../src/libs/geotagging.c:1744 msgid "" "enter the new date/time (YYYY:MM:DD hh:mm:ss[.sss])\n" "key in the new numbers or scroll over the cell" @@ -20377,245 +22385,257 @@ "neues Datum/Zeit eingeben (JJJJ:MM:TT hh:mm:ss[.sss])\n" "neue Werte direkt eingeben oder auf der Zelle scrollen" -#: ../src/libs/geotagging.c:1744 +#: ../src/libs/geotagging.c:1748 msgid "original date/time" msgstr "Original Datum/Zeit" -#: ../src/libs/geotagging.c:1748 +#: ../src/libs/geotagging.c:1752 msgid "lock date/time offset value to apply it onto another selection" msgstr "Datum/Zeitversatz fixieren, um ihn auf eine andere Auswahl anzuwenden" -#: ../src/libs/geotagging.c:1752 +#: ../src/libs/geotagging.c:1756 msgid "date/time offset" msgstr "Datum/Zeitversatz" -#: ../src/libs/geotagging.c:1753 +#: ../src/libs/geotagging.c:1757 msgid "offset or difference ([-]dd hh:mm:ss[.sss])" msgstr "Zeitversatz ([-]TT hh:mm:ss[.sss])" #. apply -#: ../src/libs/geotagging.c:1757 +#: ../src/libs/geotagging.c:1761 msgid "apply offset" msgstr "Zeitversatz anwenden" -#: ../src/libs/geotagging.c:1758 +#: ../src/libs/geotagging.c:1762 msgid "apply offset to selected images" msgstr "Zeitversatz auf ausgewählte Bilder anwenden" -#: ../src/libs/geotagging.c:1761 +#: ../src/libs/geotagging.c:1765 msgid "apply date/time" msgstr "Datum/Zeit übernehmen" -#: ../src/libs/geotagging.c:1762 +#: ../src/libs/geotagging.c:1766 msgid "apply the same date/time to selected images" msgstr "gleiches Datum/Zeit auf ausgewählte Bilder anwenden" -#: ../src/libs/geotagging.c:1772 +#: ../src/libs/geotagging.c:1776 msgid "" "start typing to show a list of permitted values and select your timezone.\n" "press enter to confirm, so that the asterisk * disappears" msgstr "" -"Mit der Eingabe beginnen, um eine Liste zulässiger Werte anzuzeigen und die Zeitzone auszuwählen.\n" -"Zur Bestätigung die Eingabetaste drücken, so dass das Sternchen * verschwindet." +"Mit der Eingabe beginnen, um eine Liste zulässiger Werte anzuzeigen und die " +"Zeitzone auszuwählen.\n" +"Zur Bestätigung die Eingabetaste drücken, so dass das Sternchen * " +"verschwindet." #. gpx -#: ../src/libs/geotagging.c:1815 +#: ../src/libs/geotagging.c:1819 msgid "apply GPX track file..." msgstr "GPX-Track-Datei anwenden…" -#: ../src/libs/geotagging.c:1816 +#: ../src/libs/geotagging.c:1820 msgid "parses a GPX file and updates location of selected images" msgstr "liest eine GPX-Datei und setzt die Position der ausgewählten Bilder" -#: ../src/libs/geotagging.c:1827 +#: ../src/libs/geotagging.c:1831 msgctxt "section" msgid "GPX file" msgstr "GPX-Datei" -#: ../src/libs/geotagging.c:1834 +#: ../src/libs/geotagging.c:1838 msgid "select a GPX track file..." msgstr "GPX-Track-Datei auswählen…" -#: ../src/libs/geotagging.c:1851 +#: ../src/libs/geotagging.c:1855 msgid "" "list of track segments in the GPX file, for each segment:\n" "- the start date/time in local time (LT)\n" "- the number of track points\n" -"- the number of matching images based on images date/time, offset and time zone\n" +"- the number of matching images based on images date/time, offset and time " +"zone\n" "- more detailed time information hovering the row" msgstr "" "die Liste der Track-Segmente in der GPX-Datei, für jedes Segment:\n" "- die Uhrzeit des Startdatums in Ortszeit (LT)\n" "- die Anzahl der Trackpunkte\n" -"- die Anzahl der Bilder, die mit Geotags versehen werden sollen, basierend auf Datum, Uhrzeit, Offset und Zeitzone " -"der Bilder\n" +"- die Anzahl der Bilder, die mit Geotags versehen werden sollen, basierend " +"auf Datum, Uhrzeit, Offset und Zeitzone der Bilder\n" "- detailliertere Zeitinformationen per Mauszeiger über den Zeilen" -#: ../src/libs/geotagging.c:1890 +#: ../src/libs/geotagging.c:1894 msgid "preview images" msgstr "Bilder Voransicht" -#: ../src/libs/geotagging.c:1895 +#: ../src/libs/geotagging.c:1899 msgid "show on map matching images" msgstr "passende Bilder auf Karte anzeigen" -#: ../src/libs/geotagging.c:1898 +#: ../src/libs/geotagging.c:1902 msgid "select images" msgstr "Bilder auswählen" -#: ../src/libs/geotagging.c:1899 +#: ../src/libs/geotagging.c:1903 msgid "select matching images" msgstr "passende Bilder auswählen" -#: ../src/libs/geotagging.c:1907 +#: ../src/libs/geotagging.c:1911 msgid "number of matching images versus selected images" msgstr "Anzahl für Geotagging ausgewählte Bilder zu Ausgewählten Bildern" -#: ../src/libs/histogram.c:133 +#: ../src/libs/histogram.c:110 msgid "monochromatic" msgstr "monochromatisch" -#: ../src/libs/histogram.c:134 +#: ../src/libs/histogram.c:111 msgid "analogous" msgstr "analog" -#: ../src/libs/histogram.c:135 +#: ../src/libs/histogram.c:112 msgid "analogous complementary" msgstr "analog komplementär" -#: ../src/libs/histogram.c:136 +#: ../src/libs/histogram.c:113 msgid "complementary" msgstr "komplementär" -#: ../src/libs/histogram.c:137 +#: ../src/libs/histogram.c:114 msgid "split complementary" msgstr "teilkomplementär" -#: ../src/libs/histogram.c:138 +#: ../src/libs/histogram.c:115 msgid "dyad" msgstr "dyadisch" -#: ../src/libs/histogram.c:139 +#: ../src/libs/histogram.c:116 msgid "triad" msgstr "triadisch" -#: ../src/libs/histogram.c:140 +#: ../src/libs/histogram.c:117 msgid "tetrad" msgstr "tetradisch" -#: ../src/libs/histogram.c:146 +#: ../src/libs/histogram.c:123 msgid "vectorscope" msgstr "Vectorscope" -#: ../src/libs/histogram.c:147 +#: ../src/libs/histogram.c:124 msgid "waveform" msgstr "Waveform" -#: ../src/libs/histogram.c:148 +#: ../src/libs/histogram.c:125 msgid "RGB parade" msgstr "RGB Parade" -#: ../src/libs/histogram.c:149 ../src/libs/histogram.c:2309 +#: ../src/libs/histogram.c:126 ../src/libs/histogram.c:2622 msgid "histogram" msgstr "Histogramm" -#: ../src/libs/histogram.c:243 +#: ../src/libs/histogram.c:218 msgid "scopes" msgstr "Scopes" -#: ../src/libs/histogram.c:1542 +#: ../src/libs/histogram.c:757 +msgid "" +"unsupported vectorscope profile selected, it will be replaced with linear " +"Rec2020" +msgstr "" +"Nicht unterstütztes Vectorscopeprofil ausgewählt, wird durch lineares " +"Rec2020 ersetzt" + +#: ../src/libs/histogram.c:1715 msgid "scroll to coarse-rotate" msgstr "Scrollen: grosse Drehung" -#: ../src/libs/histogram.c:1543 +#: ../src/libs/histogram.c:1716 msgid "ctrl+scroll to fine rotate" msgstr "Strg+Scrollen: kleine Drehung" -#: ../src/libs/histogram.c:1544 +#: ../src/libs/histogram.c:1717 msgid "shift+scroll to change width" msgstr "Shift+Scrollen: Breite ändern" -#: ../src/libs/histogram.c:1545 +#: ../src/libs/histogram.c:1718 msgid "alt+scroll to cycle" msgstr "Alt+Scrollen: durchblättern" -#: ../src/libs/histogram.c:1556 +#: ../src/libs/histogram.c:1732 msgid "drag to change black point" msgstr "ziehen, um Schwarzpunkt anzupassen" -#: ../src/libs/histogram.c:1557 ../src/libs/histogram.c:1564 +#: ../src/libs/histogram.c:1733 ../src/libs/histogram.c:1740 msgid "double-click resets" msgstr "Doppelklick zum Zurücksetzen" -#: ../src/libs/histogram.c:1563 +#: ../src/libs/histogram.c:1739 msgid "drag to change exposure" msgstr "ziehen, um Belichtung anzupassen" -#: ../src/libs/histogram.c:1725 ../src/libs/histogram.c:1765 +#: ../src/libs/histogram.c:1923 ../src/libs/histogram.c:1965 msgid "set scale to linear" msgstr "Histogramm linear skalieren" -#: ../src/libs/histogram.c:1730 ../src/libs/histogram.c:1770 +#: ../src/libs/histogram.c:1928 ../src/libs/histogram.c:1970 msgid "set scale to logarithmic" msgstr "Histogramm logarithmischen skalieren" -#: ../src/libs/histogram.c:1746 +#: ../src/libs/histogram.c:1946 msgid "set scope to vertical" msgstr "zum vertikalen Histogramm wechseln" -#: ../src/libs/histogram.c:1751 +#: ../src/libs/histogram.c:1951 msgid "set scope to horizontal" msgstr "zum horizontalen Histogramm wechseln" -#: ../src/libs/histogram.c:1780 +#: ../src/libs/histogram.c:1980 msgid "set view to AzBz" msgstr "AzBz Sicht verwenden" -#: ../src/libs/histogram.c:1786 +#: ../src/libs/histogram.c:1986 msgid "set view to RYB" msgstr "RYB Sicht verwenden" -#: ../src/libs/histogram.c:1792 +#: ../src/libs/histogram.c:1992 msgid "set view to u*v*" msgstr "u*v* Sicht verwenden" -#: ../src/libs/histogram.c:2312 ../src/libs/histogram.c:2370 +#: ../src/libs/histogram.c:2625 ../src/libs/histogram.c:2691 msgid "cycle histogram modes" msgstr "Histogramm-Modi zyklisch wechseln" -#: ../src/libs/histogram.c:2316 ../src/libs/histogram.c:2371 +#: ../src/libs/histogram.c:2630 ../src/libs/histogram.c:2693 msgid "hide histogram" msgstr "Histogramm verbergen" -#: ../src/libs/histogram.c:2372 ../src/libs/histogram.c:2401 +#: ../src/libs/histogram.c:2696 ../src/libs/histogram.c:2729 msgid "switch histogram view" msgstr "Histogramm-Modus umschalten" -#: ../src/libs/histogram.c:2379 +#: ../src/libs/histogram.c:2704 msgid "toggle blue channel" msgstr "Blau-Kanal ein/aussblenden" -#: ../src/libs/histogram.c:2381 ../src/libs/histogram.c:2389 ../src/libs/histogram.c:2397 +#: ../src/libs/histogram.c:2706 ../src/libs/histogram.c:2715 +#: ../src/libs/histogram.c:2724 msgid "toggle colors" msgstr "Farbkanäle ein/ausblenden" -#: ../src/libs/histogram.c:2387 +#: ../src/libs/histogram.c:2713 msgid "toggle green channel" msgstr "Grün-Kanal ein/ausblenden" -#: ../src/libs/histogram.c:2395 +#: ../src/libs/histogram.c:2722 msgid "toggle red channel" msgstr "Rot-Kanal ein/ausblenden" -#: ../src/libs/histogram.c:2405 +#: ../src/libs/histogram.c:2734 msgid "cycle vectorscope types" msgstr "Vectorscope Modus umschalten" -#: ../src/libs/histogram.c:2413 +#: ../src/libs/histogram.c:2745 msgid "color harmonies" msgstr "Farbharmoniebereiche" -#: ../src/libs/histogram.c:2425 +#: ../src/libs/histogram.c:2759 msgid "cycle color harmonies" msgstr "Farbharmoniebereiche umschalten" @@ -20659,10 +22679,18 @@ msgid "mask mode" msgstr "Maskenmodus" +#: ../src/libs/history.c:949 +msgid "blend mode" +msgstr "Überblendmodus" + #: ../src/libs/history.c:951 msgid "blend operation" msgstr "Überblend Operation" +#: ../src/libs/history.c:953 +msgid "blend fulcrum" +msgstr "Überblend Ansatzpunkt" + #: ../src/libs/history.c:961 msgid "mask blur" msgstr "Maske weichzeichnen" @@ -20706,194 +22734,203 @@ msgid "parametric input mask:" msgstr "parametrische Eingabemaske:" -#: ../src/libs/history.c:1323 +#: ../src/libs/history.c:1322 msgid "delete image's history?" msgstr "Bearbeitungsverlauf des Bildes löschen?" -#: ../src/libs/history.c:1324 +#: ../src/libs/history.c:1323 msgid "do you really want to clear history of current image?" -msgstr "Soll der Bearbeitungsverlauf des aktuellen Bildes wirklich gelöscht werden?" +msgstr "" +"Soll der Bearbeitungsverlauf des aktuellen Bildes wirklich gelöscht werden?" -#: ../src/libs/image.c:72 -msgid "selected image[s]" -msgstr "ausgewählte Bilder" +#: ../src/libs/image.c:74 +msgid "actions on selection" +msgstr "Aktionen auf Auswahl" -#: ../src/libs/image.c:284 +#: ../src/libs/image.c:302 msgid "delete (trash)" msgstr "löschen (Papierkorb)" -#: ../src/libs/image.c:287 +#: ../src/libs/image.c:305 msgid "physically delete from disk (using trash if possible)" -msgstr "physisch von der Festplatte löschen (Papierkorb verwenden, falls möglich)" +msgstr "" +"physisch von der Festplatte löschen (Papierkorb verwenden, falls möglich)" -#: ../src/libs/image.c:288 +#: ../src/libs/image.c:306 msgid "physically delete from disk immediately" msgstr "physisch sofort von der Festplatte löschen" -#: ../src/libs/image.c:474 ../src/libs/modulegroups.c:3811 ../src/libs/styles.c:876 +#: ../src/libs/image.c:506 ../src/libs/modulegroups.c:3813 +#: ../src/libs/styles.c:880 msgid "remove" msgstr "entfernen" -#: ../src/libs/image.c:475 +#: ../src/libs/image.c:508 msgid "remove images from the image library, without deleting" msgstr "Bilder aus der Bildbibliothek entfernen, ohne sie zu löschen" -#: ../src/libs/image.c:483 +#: ../src/libs/image.c:517 msgid "move..." msgstr "verschieben" -#: ../src/libs/image.c:484 +#: ../src/libs/image.c:519 msgid "move to other folder" msgstr "in anderen Ordner verschieben" -#: ../src/libs/image.c:487 +#: ../src/libs/image.c:522 msgid "copy..." msgstr "kopieren…" -#: ../src/libs/image.c:488 +#: ../src/libs/image.c:524 msgid "copy to other folder" msgstr "in anderen Ordner kopieren" -#: ../src/libs/image.c:491 +#: ../src/libs/image.c:528 msgid "create HDR" msgstr "HDR erzeugen" -#: ../src/libs/image.c:492 +#: ../src/libs/image.c:530 msgid "create a high dynamic range image from selected shots" msgstr "Hochkontrastbild (HDRI) aus ausgewählten Bildern erzeugen" -#: ../src/libs/image.c:496 +#: ../src/libs/image.c:535 msgid "add a duplicate to the image library, including its history stack" -msgstr "füge ein Duplikat zur Bildbibliothek hinzu, inklusive des Verlaufsstapels" +msgstr "" +"füge ein Duplikat zur Bildbibliothek hinzu, inklusive des Verlaufsstapels" -#: ../src/libs/image.c:502 ../src/libs/image.c:505 +#: ../src/libs/image.c:542 ../src/libs/image.c:547 msgid "rotate selected images 90 degrees CCW" msgstr "Ausgewählte Bilder um 90° gegen den Uhrzeigersinn drehen" -#: ../src/libs/image.c:509 ../src/libs/image.c:512 +#: ../src/libs/image.c:553 ../src/libs/image.c:558 msgid "rotate selected images 90 degrees CW" msgstr "Ausgewählte Bilder um 90° im Uhrzeigersinn drehen" -#: ../src/libs/image.c:514 +#: ../src/libs/image.c:561 msgid "reset rotation" msgstr "Drehung entfernen" -#: ../src/libs/image.c:515 +#: ../src/libs/image.c:563 msgid "reset rotation to EXIF data" msgstr "Drehung auf EXIF-Angabe zurücksetzen" -#: ../src/libs/image.c:518 +#: ../src/libs/image.c:566 msgid "copy locally" msgstr "lokal kopieren" -#: ../src/libs/image.c:519 +#: ../src/libs/image.c:568 msgid "copy the image locally" msgstr "Bild in lokalen Cache kopieren" -#: ../src/libs/image.c:522 +#: ../src/libs/image.c:572 msgid "resync local copy" msgstr "Kopie zurückspielen" -#: ../src/libs/image.c:523 +#: ../src/libs/image.c:574 msgid "synchronize the image's XMP and remove the local copy" msgstr "XMP des Bildes synchronisieren und lokale Kopie entfernen" -#: ../src/libs/image.c:526 +#: ../src/libs/image.c:578 msgctxt "selected images action" msgid "group" msgstr "gruppieren" -#: ../src/libs/image.c:527 +#: ../src/libs/image.c:580 msgid "add selected images to expanded group or create a new one" -msgstr "ausgewählte Bilder zur eingeblendeten Gruppe hinzufügen oder neue Gruppe erstellen" +msgstr "" +"ausgewählte Bilder zur eingeblendeten Gruppe hinzufügen oder neue Gruppe " +"erstellen" -#: ../src/libs/image.c:531 +#: ../src/libs/image.c:584 msgid "ungroup" msgstr "Gruppe auflösen" -#: ../src/libs/image.c:532 +#: ../src/libs/image.c:586 msgid "remove selected images from the group" msgstr "Ausgewählte Bilder aus der Gruppe entfernen" -#: ../src/libs/image.c:544 +#: ../src/libs/image.c:598 msgid "select ratings metadata" msgstr "Bewertungemetadaten auswählen" -#: ../src/libs/image.c:550 +#: ../src/libs/image.c:605 msgid "colors" msgstr "Farben" -#: ../src/libs/image.c:552 +#: ../src/libs/image.c:607 msgid "select colors metadata" msgstr "Farbmetadaten auswählen" -#: ../src/libs/image.c:560 +#: ../src/libs/image.c:616 msgid "select tags metadata" msgstr "Tag Metadaten auswählen" -#: ../src/libs/image.c:568 +#: ../src/libs/image.c:625 msgid "select geo tags metadata" msgstr "Geo-Tag Metadaten auswählen" -#: ../src/libs/image.c:576 +#: ../src/libs/image.c:636 msgid "select darktable metadata (from metadata editor module)" -msgstr "wähle darktable xmp-Metadaten (aus dem Metadaten-Editor-Modul)" +msgstr "wähle darktable Metadaten (aus dem Metadaten-Editor-Modul)" -#: ../src/libs/image.c:584 +#: ../src/libs/image.c:649 msgid "set the selected image as source of metadata" msgstr "wählt das ausgewählte Bild als Metadatenquelle" -#: ../src/libs/image.c:589 +#: ../src/libs/image.c:656 msgid "paste selected metadata on selected images" msgstr "ausgewählte Metadaten für ausgewählte Bilder schreiben" -#: ../src/libs/image.c:593 +#: ../src/libs/image.c:661 msgid "clear selected metadata on selected images" msgstr "ausgewählte Metadaten für ausgewählte Bilder löschen" -#: ../src/libs/image.c:598 +#: ../src/libs/image.c:667 msgid "how to handle existing metadata" msgstr "wie mit vorhandenen Metadaten umgegangen werden soll" -#: ../src/libs/image.c:601 +#: ../src/libs/image.c:670 msgid "merge" msgstr "zusammenfügen" -#: ../src/libs/image.c:605 +#: ../src/libs/image.c:675 msgid "update image information to match changes to file" -msgstr "Bildinformationen aktualisieren, um Änderungen an der Datei abzugleichen." +msgstr "" +"Bildinformationen aktualisieren, um Änderungen an der Datei abzugleichen." -#: ../src/libs/image.c:609 +#: ../src/libs/image.c:680 msgid "set selection as monochrome images and activate monochrome workflow" -msgstr "Auswahl als monochrome Bilder kennzeichnen und monochromen Workflow aktivieren." +msgstr "" +"Auswahl als monochrome Bilder kennzeichnen und monochromen Workflow " +"aktivieren." -#: ../src/libs/image.c:613 +#: ../src/libs/image.c:684 msgid "set selection as color images" msgstr "Auswahl als Farbbilder kennzeichnen." -#: ../src/libs/image.c:625 +#: ../src/libs/image.c:696 msgid "duplicate virgin" msgstr "unbearbeitet duplizieren" -#: ../src/libs/import.c:263 +#: ../src/libs/import.c:264 #, c-format msgid "device \"%s\" connected on port \"%s\"." msgstr "Gerät „%s“ an Port „%s“ angeschlossen." -#: ../src/libs/import.c:273 ../src/libs/import.c:334 ../src/libs/import.c:1692 +#: ../src/libs/import.c:274 ../src/libs/import.c:335 ../src/libs/import.c:1701 msgid "copy & import from camera" msgstr "Von Kamera kopieren & importieren" # "Tethering" scheint auch im deutschsprachigen Raum verbreitet zu sein. -#: ../src/libs/import.c:284 ../src/libs/import.c:336 +#: ../src/libs/import.c:285 ../src/libs/import.c:337 msgid "tethered shoot" msgstr "Tethering-Aufnahme" -#: ../src/libs/import.c:291 ../src/libs/import.c:337 +#: ../src/libs/import.c:292 ../src/libs/import.c:338 msgid "unmount camera" msgstr "Kamera trennen" -#: ../src/libs/import.c:312 +#: ../src/libs/import.c:313 msgid "" "camera is locked by another application\n" "make sure it is no longer mounted\n" @@ -20903,38 +22940,39 @@ "Bitte sicherstellen dass sie nicht auf dem Computer \n" "gemounted ist oder die sperrende Applikation beenden" -#: ../src/libs/import.c:315 +#: ../src/libs/import.c:316 msgid "tethering and importing is disabled for this camera" msgstr "Tethering und Import ist für diese Kamera deaktiviert" -#: ../src/libs/import.c:317 ../src/libs/import.c:335 +#: ../src/libs/import.c:318 ../src/libs/import.c:336 msgid "mount camera" msgstr "Kamera verbinden" -#: ../src/libs/import.c:747 +#: ../src/libs/import.c:754 #, c-format msgid "%d image out of %d selected" msgid_plural "%d images out of %d selected" msgstr[0] "%d Bild von %d ausgewählt" msgstr[1] "%d Bilder von %d ausgewählt" -#: ../src/libs/import.c:1039 +#: ../src/libs/import.c:1046 msgid "you can't delete the selected place" msgstr "Der ausgewählte Speicherort kann nicht entfernt werden" -#: ../src/libs/import.c:1153 +#: ../src/libs/import.c:1160 msgid "choose the root of the folder tree below" msgstr "Root Verzeichnis für die unten stehende Verzeichnisstruktur" -#: ../src/libs/import.c:1156 +#: ../src/libs/import.c:1163 msgid "places" msgstr "Speicherorte" -#: ../src/libs/import.c:1162 +#: ../src/libs/import.c:1169 msgid "restore all default places you have removed by right-click" -msgstr "fügt die Standard Speicherorte wieder hinzu, wenn diese gelöscht wurden" +msgstr "" +"fügt die Standard Speicherorte wieder hinzu, wenn diese gelöscht wurden" -#: ../src/libs/import.c:1167 +#: ../src/libs/import.c:1174 msgid "" "add a custom place\n" "\n" @@ -20944,96 +22982,131 @@ "\n" "Rechtsklick auf einen Speicherort zum entfernen" -#: ../src/libs/import.c:1174 +#: ../src/libs/import.c:1181 msgid "you can add custom places using the plus icon" msgstr "Du kannst eigene Speicherorte mit dem + Icon hinzufügen" -#: ../src/libs/import.c:1199 +#: ../src/libs/import.c:1206 msgid "select a folder to see the content" msgstr "Verzeichnis wählen um den Inhalt anzuzeigen" -#: ../src/libs/import.c:1202 +#: ../src/libs/import.c:1209 msgid "folders" msgstr "Verzeichnisse" -#: ../src/libs/import.c:1272 +#: ../src/libs/import.c:1279 msgid "home" msgstr "Home" -#: ../src/libs/import.c:1284 +#: ../src/libs/import.c:1291 msgid "pictures" msgstr "Bilder" -#: ../src/libs/import.c:1548 +#: ../src/libs/import.c:1557 msgid "mark already imported pictures" msgstr "Bereits importierte Bilder markieren" -#: ../src/libs/import.c:1562 +#: ../src/libs/import.c:1571 msgid "modified" msgstr "Geändert" -#: ../src/libs/import.c:1567 +#: ../src/libs/import.c:1576 msgid "file 'modified date/time', may be different from 'Exif date/time'" -msgstr "Änderungsdatum der Datei kann sich vom Änderungsdatum in den EXIF Daten unterscheiden" +msgstr "" +"Änderungsdatum der Datei kann sich vom Änderungsdatum in den EXIF Daten " +"unterscheiden" -#: ../src/libs/import.c:1579 +#: ../src/libs/import.c:1588 msgid "show/hide thumbnails" msgstr "Vorschaubilder anzeigen/ausblenden" -#: ../src/libs/import.c:1649 +#: ../src/libs/import.c:1658 msgid "naming rules" msgstr "Namenskonventionen" -#: ../src/libs/import.c:1690 +#: ../src/libs/import.c:1699 msgid "add to library" msgstr "importieren" -#: ../src/libs/import.c:1691 +#: ../src/libs/import.c:1700 msgid "copy & import" msgstr "kopieren & importieren" -#: ../src/libs/import.c:1730 +#: ../src/libs/import.c:1740 msgid "select new" msgstr "Neue auswählen" -#: ../src/libs/import.c:1773 +#: ../src/libs/import.c:1783 msgid "please wait while prefetching the list of images from camera..." msgstr "Bitte warten während die Liste der Bilder von der Kamera geholt wird…" -#: ../src/libs/import.c:1907 +#: ../src/libs/import.c:1922 msgid "invalid override date/time format" msgstr "ungültiges Format zum Übersteuern von Datum/Uhrzeit" -#: ../src/libs/import.c:2022 +#: ../src/libs/import.c:1986 +msgid "import base directory" +msgstr "Import Basisverzeichnis" + +#: ../src/libs/import.c:1987 +msgid "" +"before copying images to the darktable base directory make sure it is " +"defined as you prefer.\n" +"further information can be found in the darktable manual.\n" +"\n" +"inspect darktable preferences -> import.\n" +"check and possibly correct the 'base directory naming pattern'" +msgstr "" +"vor der Kopie von Bildern in das darktable Basisverzeichnis muß " +"sichergestellt werden, \n" +"daß es wie gewünscht definiert ist.\n" +"Weitere Informationen siehe darktable Handbuch.\n" +"\n" +"ggf. das „Namensformat des Basisverzeichnisses“ im darktable " +"Einstellungsdialog -> Importieren \n" +"prüfen und korrigieren." + +#: ../src/libs/import.c:1991 +msgid "_come back & check" +msgstr "_erneut anzeigen & prüfen" + +#: ../src/libs/import.c:1991 +msgid "_understood & done" +msgstr "_verstanden & eingestellt" + +#: ../src/libs/import.c:2057 msgid "add to library..." msgstr "importieren…" -#: ../src/libs/import.c:2023 +#: ../src/libs/import.c:2058 msgid "add existing images to the library" msgstr "vorhandene Bilder zur Bildbibliothek hinzufügen" -#: ../src/libs/import.c:2029 +#: ../src/libs/import.c:2064 msgid "copy & import..." msgstr "kopieren & importieren…" -#: ../src/libs/import.c:2030 +#: ../src/libs/import.c:2065 msgid "" "copy and optionally rename images before adding them to the library\n" -"patterns can be defined to rename the images and specify the destination folders" +"patterns can be defined to rename the images and specify the destination " +"folders" msgstr "" -"Bilder vor dem Import in die Bildbibliothek kopieren und optional umbenennen\n" -"Muster können zur Umbenennung der Bilder und zur Festlegung der Zielordner definiert werden" +"Bilder vor dem Import in die Bildbibliothek kopieren und optional " +"umbenennen\n" +"Muster können zur Umbenennung der Bilder und zur Festlegung der Zielordner " +"definiert werden" #. collapsible section -#: ../src/libs/import.c:2053 +#: ../src/libs/import.c:2088 msgid "parameters" msgstr "Einstellungen" -#: ../src/libs/ioporder.c:204 +#: ../src/libs/ioporder.c:202 msgid "v3.0 for RAW input (default)" msgstr "v3.0 für RAW Bilder (default)" -#: ../src/libs/ioporder.c:210 +#: ../src/libs/ioporder.c:208 msgid "v3.0 for JPEG/non-RAW input" msgstr "v3.0 für JPEG/nicht-RAW Bilder" @@ -21049,11 +23122,11 @@ msgid "nothing to save" msgstr "nichts zu speichern" -#: ../src/libs/lib.c:1105 +#: ../src/libs/lib.c:1106 msgid "show module" msgstr "Modul zeigen" -#: ../src/libs/lib.c:1430 +#: ../src/libs/lib.c:1431 msgid "utility module" msgstr "Hilfsmodule" @@ -21200,7 +23273,8 @@ msgid "new sub-location" msgstr "neuer Unterort" -#: ../src/libs/map_locations.c:238 ../src/libs/map_locations.c:286 ../src/libs/map_locations.c:960 +#: ../src/libs/map_locations.c:238 ../src/libs/map_locations.c:286 +#: ../src/libs/map_locations.c:960 msgid "new location" msgstr "neuer Ort" @@ -21226,8 +23300,11 @@ msgstr "gehe zur Sammlung (Leuchttisch)" #: ../src/libs/map_locations.c:844 -msgid "terminate edit (press enter or escape) before selecting another location" -msgstr "Bearbeitung abbrechen (Eingabe oder Escape drücken) bevor eine andere Position ausgewählt werden kann" +msgid "" +"terminate edit (press enter or escape) before selecting another location" +msgstr "" +"Bearbeitung abbrechen (Eingabe oder Escape drücken) bevor eine andere " +"Position ausgewählt werden kann" # "to remove a group of locations clear its name" is apperantly not correct #: ../src/libs/map_locations.c:931 @@ -21251,7 +23328,8 @@ " - in die Kontur klicken und ziehen, um die Position zu ändern.\n" " - Strg+Klick zum Verschieben eines Bildes\n" "Strg+Klick, um einen Ortsnamen zu bearbeiten\n" -" - Das Pipe-Symbol „|“ ermöglicht die Strukturierung des Namens in mehrere Ebenen\n" +" - Das Pipe-Symbol „|“ ermöglicht die Strukturierung des Namens in mehrere " +"Ebenen\n" " - um eine Gruppe von Orten zu entfernen, den Gruppennamen löschen\n" " - Eingabetaste bestätigt Namensänderung, Escape bricht Änderung ab\n" "Rechtsklick für andere Aktionen: Ort löschen und zur Sammlung gehen" @@ -21259,14 +23337,18 @@ #: ../src/libs/map_locations.c:957 msgid "" "select the shape of the location's limits on the map, circle or rectangle\n" -"or even polygon if available (select first a polygon place in 'find location' module)" +"or even polygon if available (select first a polygon place in 'find " +"location' module)" msgstr "" -"Schaltet die Form des Umrisses, der die Bildauswahl bestimmt, zwischen Ellipse und Rechteck um.\n" -"Auch Polygon, falls vorhanden (dazu zuerst ein Polygon eines Ortes im Modul „Position finden“ auswählen)" +"Schaltet die Form des Umrisses, der die Bildauswahl bestimmt, zwischen " +"Ellipse und Rechteck um.\n" +"Auch Polygon, falls vorhanden (dazu zuerst ein Polygon eines Ortes im Modul " +"„Position finden“ auswählen)" #: ../src/libs/map_locations.c:961 msgid "add a new location on the center of the visible map" -msgstr "Fügt einen neuen Ort in der Mitte des sichtbaren Kartenausschnitts hinzu." +msgstr "" +"Fügt einen neuen Ort in der Mitte des sichtbaren Kartenausschnitts hinzu." #: ../src/libs/map_locations.c:965 msgid "show all" @@ -21280,360 +23362,331 @@ msgid "map settings" msgstr "Karteneinstellungen" -#: ../src/libs/map_settings.c:107 +#: ../src/libs/map_settings.c:89 msgid "map source" msgstr "Karten-Quelle" -#: ../src/libs/map_settings.c:112 +#: ../src/libs/map_settings.c:90 msgid "select the source of the map. some entries might not work" -msgstr "Quelle der Karte auswählen. Manche Einträge könnten nicht funktionieren" +msgstr "" +"Quelle der Karte auswählen. Manche Einträge könnten nicht funktionieren" -#: ../src/libs/masks.c:107 +#: ../src/libs/masks.c:108 msgid "feather" msgstr "ausblenden" -#: ../src/libs/masks.c:114 -msgid "hardness (relative)" -msgstr "Härte (relativ)" - -#: ../src/libs/masks.c:115 -msgid "hardness (absolute)" -msgstr "Härte (absolut)" - -#: ../src/libs/masks.c:116 -msgid "opacity (relative)" -msgstr "Deckkraft (relativ)" - -#: ../src/libs/masks.c:117 -msgid "opacity (absolute)" -msgstr "Deckkraft (absolut)" - -#: ../src/libs/masks.c:118 -msgid "brush size (relative)" -msgstr "Pinselgröße (relativ)" - -#: ../src/libs/masks.c:121 -msgid "low" -msgstr "gering" - -#: ../src/libs/masks.c:122 -msgid "medium" -msgstr "mittel" - -#: ../src/libs/masks.c:123 -msgid "high" -msgstr "hoch" - -#: ../src/libs/masks.c:381 +#: ../src/libs/masks.c:357 #, c-format msgid "group #%d" msgstr "Gruppe #%d" -#: ../src/libs/masks.c:1081 +#: ../src/libs/masks.c:1097 msgid "duplicate this shape" msgstr "diese Form duplizieren" -#: ../src/libs/masks.c:1085 +#: ../src/libs/masks.c:1101 msgid "delete this shape" msgstr "diese Form löschen" -#: ../src/libs/masks.c:1091 +#: ../src/libs/masks.c:1107 msgid "delete group" msgstr "Gruppe löschen" -#: ../src/libs/masks.c:1098 +#: ../src/libs/masks.c:1114 msgid "remove from group" msgstr "aus der Gruppe entfernen" -#: ../src/libs/masks.c:1106 +#: ../src/libs/masks.c:1122 msgid "group the forms" msgstr "Formen gruppieren" -#: ../src/libs/masks.c:1114 +#: ../src/libs/masks.c:1130 msgid "use inverted shape" msgstr "invertierte Form benutzen" -#: ../src/libs/masks.c:1121 +#: ../src/libs/masks.c:1134 msgid "mode: union" msgstr "Modus: Vereinigung" -#: ../src/libs/masks.c:1127 +#: ../src/libs/masks.c:1136 msgid "mode: intersection" msgstr "Modus: Überschneidung" -#: ../src/libs/masks.c:1133 +#: ../src/libs/masks.c:1138 msgid "mode: difference" msgstr "Modus: Differenz" -#: ../src/libs/masks.c:1139 +#: ../src/libs/masks.c:1140 msgid "mode: sum" msgstr "Modus: Addition" -#: ../src/libs/masks.c:1145 +#: ../src/libs/masks.c:1142 msgid "mode: exclusion" msgstr "Modus: Ausschluss" -#: ../src/libs/masks.c:1164 +#: ../src/libs/masks.c:1158 msgid "cleanup unused shapes" msgstr "unbenutzte Formen entfernen" -#: ../src/libs/masks.c:1811 +#: ../src/libs/masks.c:1807 msgid "created shapes" msgstr "Verfügbare Formen" -#: ../src/libs/masks.c:1904 ../src/libs/masks.c:1919 ../src/libs/masks.c:1939 ../src/libs/masks.c:1955 +#: ../src/libs/masks.c:1900 ../src/libs/masks.c:1915 ../src/libs/masks.c:1929 +#: ../src/libs/masks.c:1933 msgid "properties" msgstr "Eigenschaften" -#: ../src/libs/masks.c:1907 +#: ../src/libs/masks.c:1903 msgid "no shapes selected" msgstr "keine Formen ausgewählt" -#: ../src/libs/masks.c:1940 +#: ../src/libs/masks.c:1929 msgid "pressure" msgstr "Druck" -#: ../src/libs/masks.c:1941 -msgid "" -"pen pressure control for brush masks\n" -"'off': pressure reading ignored,\n" -"'hardness'/'opacity'/'brush size': pressure reading controls specified attribute,\n" -"'absolute'/'relative': pressure reading is taken directly as attribute value or multiplied with pre-defined " -"setting." -msgstr "" -"Drucksensitivität des Stiftes für Pinsel-Masken\n" -" - „aus“: Druck-Wert ignorieren\n" -" - „Härte“, „Deckkraft”, „Pinselgröße”: Druck-Wert kontrolliert gewählte Eigenschaft\n" -" - „absolut”, „relativ”: Druck-Wert wird direkt als Wert benutzt oder mit vordefinierten Einstellungen " -"multipliziert" - # ist das eine passende Übersetzung? -#: ../src/libs/masks.c:1956 +#: ../src/libs/masks.c:1933 msgid "smoothing" msgstr "glätten" -#: ../src/libs/masks.c:1957 -msgid "" -"smoothing of brush strokes\n" -"stronger smoothing leads to fewer nodes and easier editing but with lower control of accuracy." -msgstr "" -"Glättung von Pinselstrichen\n" -"Stärkere Glättung führt zu weniger Knoten und vereinfachtem Editieren, bedeutet aber zugleich eine geringere " -"Kontrolle über die Genauigkeit." - -#: ../src/libs/metadata.c:64 +#: ../src/libs/metadata.c:60 msgid "metadata editor" msgstr "Metadaten-Editor" -#: ../src/libs/metadata.c:206 ../src/libs/metadata.c:496 -msgid "<leave unchanged>" -msgstr "<nicht ändern>" - -#: ../src/libs/metadata.c:630 ../src/libs/metadata_view.c:1192 +#: ../src/libs/metadata.c:459 ../src/libs/metadata_view.c:1219 msgid "metadata settings" msgstr "Metadaten-Einstellungen" -#: ../src/libs/metadata.c:683 ../src/libs/metadata_view.c:1237 +#: ../src/libs/metadata.c:461 ../src/libs/metadata_view.c:1221 +msgid "_default" +msgstr "_Standard" + +#: ../src/libs/metadata.c:516 ../src/libs/metadata_view.c:1267 msgid "visible" msgstr "sichtbar" -#: ../src/libs/metadata.c:688 +#: ../src/libs/metadata.c:524 msgid "" "tick if the corresponding metadata is of interest for you\n" "it will be visible from metadata editor, collection and import module\n" "it will be also exported" msgstr "" "Auswählen, wenn die entsprechenden Metadaten von Interesse sind.\n" -"Diese Metadaten sind in den Modulen „Metadaten-Editor”, „Importieren”,„Sammlungen” sichtbar und werden auch " -"exportiert." +"Diese Metadaten sind in den Modulen „Metadaten-Editor”, „Importieren”," +"„Sammlungen” sichtbar und werden auch exportiert." -#: ../src/libs/metadata.c:693 ../src/libs/tagging.c:1683 ../src/libs/tagging.c:1827 +#: ../src/libs/metadata.c:529 ../src/libs/tagging.c:1705 +#: ../src/libs/tagging.c:1854 msgid "private" msgstr "privat" -#: ../src/libs/metadata.c:698 -msgid "tick if you want to keep this information private (not exported with images)" +#: ../src/libs/metadata.c:534 +msgid "" +"tick if you want to keep this information private (not exported with images)" msgstr "" -"Auswählen, wenn diese Informationen vertraulich gehalten und nicht beim Export in die exportierten Bilder " -"geschrieben werden sollen." +"Auswählen, wenn diese Informationen vertraulich gehalten und nicht beim " +"Export in die exportierten Bilder geschrieben werden sollen." -#: ../src/libs/metadata.c:857 +#: ../src/libs/metadata.c:691 msgid "" "metadata text\n" -"ctrl+enter inserts a new line (caution, may not be compatible with standard metadata)\n" +"ctrl+enter inserts a new line (caution, may not be compatible with standard " +"metadata)\n" "if <leave unchanged> selected images have different metadata\n" "in that case, right-click gives the possibility to choose one of them\n" "escape to exit the popup window" msgstr "" "Metadaten-Text. \n" -"Strg+Eingabe fügt einen Zeilenumbruch ein. (Vorsicht, dies kann unter Umständen zu Inkompatibilitäten führen.) \n" -"Einträge mit „<nicht ändern>” zeigen an, dass die ausgewählten Bilder verschiedene Metadaten besitzen. \n" -"In diesem Fall kann mit Rechtsklick einer der verschiedenen Werte ausgewählt werden. \n" +"Strg+Eingabe fügt einen Zeilenumbruch ein. (Vorsicht, dies kann unter " +"Umständen zu Inkompatibilitäten führen.) \n" +"Einträge mit „<nicht ändern>” zeigen an, dass die ausgewählten Bilder " +"verschiedene Metadaten besitzen. \n" +"In diesem Fall kann mit Rechtsklick einer der verschiedenen Werte ausgewählt " +"werden. \n" "Mit Escape die Auswahl abbrechen." -#: ../src/libs/metadata.c:902 +#: ../src/libs/metadata.c:736 msgid "write metadata for selected images" msgstr "Metadaten für ausgewählte Bilder schreiben" +#: ../src/libs/metadata.c:737 +msgid "cancel" +msgstr "abbrechen" + +#: ../src/libs/metadata.c:738 +msgid "ignore changed metadata" +msgstr "ignoriere geänderte Metadaten" + #. <title>\0<description>\0<rights>\0<creator>\0<publisher> -#: ../src/libs/metadata.c:958 +#: ../src/libs/metadata.c:793 msgid "CC BY" msgstr "CC BY" -#: ../src/libs/metadata.c:959 +#: ../src/libs/metadata.c:794 msgid "Creative Commons Attribution (CC BY)" msgstr "Creative Commons Namensnennung (CC-BY)" -#: ../src/libs/metadata.c:960 +#: ../src/libs/metadata.c:795 msgid "CC BY-SA" msgstr "CC BY-SA" -#: ../src/libs/metadata.c:961 +#: ../src/libs/metadata.c:796 msgid "Creative Commons Attribution-ShareAlike (CC BY-SA)" -msgstr "Creative Commons Namensnennung, Weitergabe unter gleichen Bedingungen (CC-BY-SA)" +msgstr "" +"Creative Commons Namensnennung, Weitergabe unter gleichen Bedingungen (CC-BY-" +"SA)" -#: ../src/libs/metadata.c:962 +#: ../src/libs/metadata.c:797 msgid "CC BY-ND" msgstr "CC BY-ND" -#: ../src/libs/metadata.c:963 +#: ../src/libs/metadata.c:798 msgid "Creative Commons Attribution-NoDerivs (CC BY-ND)" msgstr "Creative Commons Namensnennung, keine Bearbeitung (CC-BY-ND)" -#: ../src/libs/metadata.c:964 +#: ../src/libs/metadata.c:799 msgid "CC BY-NC" msgstr "CC BY-NC" -#: ../src/libs/metadata.c:965 +#: ../src/libs/metadata.c:800 msgid "Creative Commons Attribution-NonCommercial (CC BY-NC)" msgstr "Creative Commons Namensnennung, nicht kommerziell (CC-BY-NC)" -#: ../src/libs/metadata.c:966 +#: ../src/libs/metadata.c:801 msgid "CC BY-NC-SA" msgstr "CC BY-NC-SA" -#: ../src/libs/metadata.c:967 +#: ../src/libs/metadata.c:802 msgid "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" -msgstr "Creative Commons Namensnennung, nicht kommerziell, Weitergabe unter gleichen Bedingungen (CC-BY-NC-SA)" +msgstr "" +"Creative Commons Namensnennung, nicht kommerziell, Weitergabe unter gleichen " +"Bedingungen (CC-BY-NC-SA)" -#: ../src/libs/metadata.c:968 +#: ../src/libs/metadata.c:803 msgid "CC BY-NC-ND" msgstr "CC BY-NC-ND" -#: ../src/libs/metadata.c:969 +#: ../src/libs/metadata.c:804 msgid "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" -msgstr "Creative Commons Namensnennung, nicht kommerziell, keine Bearbeitung (CC-BY-NC-ND)" +msgstr "" +"Creative Commons Namensnennung, nicht kommerziell, keine Bearbeitung (CC-BY-" +"NC-ND)" -#: ../src/libs/metadata.c:970 ../src/libs/metadata.c:971 +#: ../src/libs/metadata.c:805 ../src/libs/metadata.c:806 msgid "all rights reserved" msgstr "alle Rechte vorbehalten" #. internal -#: ../src/libs/metadata_view.c:123 +#: ../src/libs/metadata_view.c:125 msgid "filmroll" msgstr "Filmrolle" -#: ../src/libs/metadata_view.c:125 +#: ../src/libs/metadata_view.c:127 msgid "group id" msgstr "Gruppen-ID" -#: ../src/libs/metadata_view.c:127 +#: ../src/libs/metadata_view.c:129 msgid "version" msgstr "Version" -#: ../src/libs/metadata_view.c:130 +#: ../src/libs/metadata_view.c:132 msgid "import timestamp" msgstr "Importzeitstempel" -#: ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:133 msgid "change timestamp" msgstr "Änderungszeitstempel" -#: ../src/libs/metadata_view.c:132 +#: ../src/libs/metadata_view.c:134 msgid "export timestamp" msgstr "Exportzeitstempel" -#: ../src/libs/metadata_view.c:133 +#: ../src/libs/metadata_view.c:135 msgid "print timestamp" msgstr "Druckzeitstempel" -#: ../src/libs/metadata_view.c:134 +#: ../src/libs/metadata_view.c:136 msgid "flags" msgstr "Flags" -#: ../src/libs/metadata_view.c:144 +#: ../src/libs/metadata_view.c:146 +msgid "35mm equiv focal length" +msgstr "35mm Äquivalenzbrennweite" + +#: ../src/libs/metadata_view.c:148 msgid "focus distance" msgstr "Fokus-Entfernung" -#: ../src/libs/metadata_view.c:146 +#: ../src/libs/metadata_view.c:150 msgid "datetime" msgstr "Datum/Uhrzeit" -#: ../src/libs/metadata_view.c:149 +#: ../src/libs/metadata_view.c:153 msgid "export width" msgstr "Exportbreite" -#: ../src/libs/metadata_view.c:150 +#: ../src/libs/metadata_view.c:154 msgid "export height" msgstr "Exporthöhe" -#: ../src/libs/metadata_view.c:158 +#: ../src/libs/metadata_view.c:162 msgid "longitude" msgstr "Länge" -#: ../src/libs/metadata_view.c:159 +#: ../src/libs/metadata_view.c:163 msgid "elevation" msgstr "Höhe" -#: ../src/libs/metadata_view.c:163 +#: ../src/libs/metadata_view.c:167 msgid "categories" msgstr "Kategorien" -#: ../src/libs/metadata_view.c:170 +#: ../src/libs/metadata_view.c:174 msgid "image information" msgstr "Bildinformationen" -#: ../src/libs/metadata_view.c:330 +#: ../src/libs/metadata_view.c:334 msgid "unused/deprecated" msgstr "unbenutzt/veraltet" -#: ../src/libs/metadata_view.c:331 +#: ../src/libs/metadata_view.c:335 msgid "LDR" msgstr "LDR" -#: ../src/libs/metadata_view.c:334 +#: ../src/libs/metadata_view.c:338 msgid "marked for deletion" msgstr "wird gelöscht" -#: ../src/libs/metadata_view.c:335 +#: ../src/libs/metadata_view.c:339 msgid "auto-applying presets applied" msgstr "automatische Voreinstellungen angewandt" -#: ../src/libs/metadata_view.c:337 +#: ../src/libs/metadata_view.c:341 msgid "has .txt" msgstr "hat .txt" -#: ../src/libs/metadata_view.c:338 +#: ../src/libs/metadata_view.c:342 msgid "has .wav" msgstr "hat .wav" -#: ../src/libs/metadata_view.c:356 +#: ../src/libs/metadata_view.c:360 #, c-format msgid "image has %d star" msgid_plural "image has %d stars" msgstr[0] "Bild hat %d Stern" msgstr[1] "Bild hat %d Sterne" -#: ../src/libs/metadata_view.c:432 +#: ../src/libs/metadata_view.c:436 #, c-format msgid "loader: %s" msgstr "geladen mit: „%s”" -#: ../src/libs/metadata_view.c:623 +#: ../src/libs/metadata_view.c:626 msgid "<various values>" msgstr "<verschiedene Werte>" -#: ../src/libs/metadata_view.c:636 +#: ../src/libs/metadata_view.c:639 #, c-format msgid "" "double-click to jump to film roll\n" @@ -21643,32 +23696,28 @@ "%s\n" "zu springen" -#: ../src/libs/metadata_view.c:728 +#: ../src/libs/metadata_view.c:731 #, c-format msgid "%+.2f EV" msgstr "%+.2f EV" -#: ../src/libs/metadata_view.c:735 -#, c-format -msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" -msgstr "%.1f mm (%.1f mm FF equiv, Crop %.1f)" - -#: ../src/libs/metadata_view.c:740 +#: ../src/libs/metadata_view.c:737 ../src/libs/metadata_view.c:749 +#: ../src/libs/metadata_view.c:754 #, c-format msgid "%.1f mm" msgstr "%.1f mm" -#: ../src/libs/metadata_view.c:751 +#: ../src/libs/metadata_view.c:778 #, c-format msgid "infinity" msgstr "unendlich" -#: ../src/libs/metadata_view.c:755 +#: ../src/libs/metadata_view.c:782 #, c-format msgid "%.2f m" msgstr "%.2f m" -#: ../src/libs/metadata_view.c:1232 +#: ../src/libs/metadata_view.c:1262 msgid "" "drag and drop one row at a time until you get the desired order\n" "untick to hide metadata which are not of interest for you\n" @@ -21676,9 +23725,10 @@ msgstr "" "Ziehe die Zeilen in die gewünschte Reihenfolge\n" "Entfernen des Häkchens, um nicht relevante Metadaten auszublenden,\n" -"Wenn unterschiedliche Einstellungen benötigt werden, Voreinstellungen verwenden " +"Wenn unterschiedliche Einstellungen benötigt werden, Voreinstellungen " +"verwenden " -#: ../src/libs/metadata_view.c:1388 +#: ../src/libs/metadata_view.c:1423 msgid "jump to film roll" msgstr "zu Filmrolle springen" @@ -21703,7 +23753,7 @@ msgid "recent collections settings" msgstr "Einstellungen „kürzlich benutzte Sammlungen“" -#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1769 +#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1753 msgid "workflow: scene-referred" msgstr "Workflow: szenenbezogen" @@ -21721,194 +23771,202 @@ #. FIXME don't check here if on/off is enabled, because it depends on image (reload_defaults) #. respond later to image changed signal -#: ../src/libs/modulegroups.c:306 ../src/libs/modulegroups.c:318 ../src/libs/modulegroups.c:2427 -#: ../src/libs/modulegroups.c:2429 +#: ../src/libs/modulegroups.c:307 ../src/libs/modulegroups.c:319 +#: ../src/libs/modulegroups.c:2411 ../src/libs/modulegroups.c:2413 msgid "on-off" msgstr "an-aus" -#: ../src/libs/modulegroups.c:498 ../src/libs/modulegroups.c:501 +#: ../src/libs/modulegroups.c:501 ../src/libs/modulegroups.c:504 msgid "" -"this quick access widget is disabled as there are multiple instances of this module present. Please use the full " -"module to access this widget..." +"this quick access widget is disabled as there are multiple instances of this " +"module present. Please use the full module to access this widget..." msgstr "" -"dieses Schnellzugriff-Widget ist deaktiviert, da es mehrere Instanzen für dieses Modul gibt. \n" +"dieses Schnellzugriff-Widget ist deaktiviert, da es mehrere Instanzen für " +"dieses Modul gibt. \n" "Bitte das vollständige Modul verwenden…" -#: ../src/libs/modulegroups.c:591 +#: ../src/libs/modulegroups.c:594 msgid "(some features may only be available in the full module interface)" msgstr "(einige Funktionen sind möglicherweise nur im Vollmodul verfügbar)" -#: ../src/libs/modulegroups.c:635 +#: ../src/libs/modulegroups.c:632 #, c-format msgid "go to the full version of the %s module" msgstr "zur Vollversion des Modul %s wechseln" -#: ../src/libs/modulegroups.c:1556 ../src/libs/modulegroups.c:1641 ../src/libs/modulegroups.c:1677 -#: ../src/libs/modulegroups.c:1727 ../src/libs/modulegroups.c:1817 +#: ../src/libs/modulegroups.c:1538 ../src/libs/modulegroups.c:1624 +#: ../src/libs/modulegroups.c:1660 ../src/libs/modulegroups.c:1710 +#: ../src/libs/modulegroups.c:1801 msgctxt "modulegroup" msgid "base" msgstr "Basisbearbeitung" -#: ../src/libs/modulegroups.c:1575 +#: ../src/libs/modulegroups.c:1557 msgctxt "modulegroup" msgid "tone" msgstr "Tonwerte" -#: ../src/libs/modulegroups.c:1584 ../src/libs/modulegroups.c:1691 ../src/libs/modulegroups.c:1741 +#: ../src/libs/modulegroups.c:1566 ../src/libs/modulegroups.c:1674 +#: ../src/libs/modulegroups.c:1724 msgctxt "modulegroup" msgid "color" msgstr "Farbe" -#: ../src/libs/modulegroups.c:1599 ../src/libs/modulegroups.c:1699 ../src/libs/modulegroups.c:1746 +#: ../src/libs/modulegroups.c:1582 ../src/libs/modulegroups.c:1682 +#: ../src/libs/modulegroups.c:1730 msgctxt "modulegroup" msgid "correct" msgstr "Korrekturen" -#: ../src/libs/modulegroups.c:1617 ../src/libs/modulegroups.c:1711 ../src/libs/modulegroups.c:1758 -#: ../src/libs/modulegroups.c:2321 +#: ../src/libs/modulegroups.c:1600 ../src/libs/modulegroups.c:1694 +#: ../src/libs/modulegroups.c:1742 ../src/libs/modulegroups.c:2305 msgctxt "modulegroup" msgid "effect" msgstr "Effekte" -#: ../src/libs/modulegroups.c:1635 +#: ../src/libs/modulegroups.c:1618 msgid "modules: all" msgstr "Module: alle" -#: ../src/libs/modulegroups.c:1656 +#: ../src/libs/modulegroups.c:1639 msgctxt "modulegroup" msgid "grading" msgstr "Farbkorrektur" -#: ../src/libs/modulegroups.c:1664 ../src/libs/modulegroups.c:2325 +#: ../src/libs/modulegroups.c:1647 ../src/libs/modulegroups.c:2309 msgctxt "modulegroup" msgid "effects" msgstr "Effekte" # rather loose translation as beginner/Anfänger may have some negative connotation -#: ../src/libs/modulegroups.c:1672 +#: ../src/libs/modulegroups.c:1655 msgid "workflow: beginner" msgstr "Workflow: vereinfacht" -#: ../src/libs/modulegroups.c:1721 +#: ../src/libs/modulegroups.c:1704 msgid "workflow: display-referred" msgstr "Workflow: anzeigebezogen" -#: ../src/libs/modulegroups.c:1773 +#: ../src/libs/modulegroups.c:1757 msgid "search only" msgstr "nur Modulsuche" -#: ../src/libs/modulegroups.c:1779 ../src/libs/modulegroups.c:2090 ../src/libs/modulegroups.c:2599 +#: ../src/libs/modulegroups.c:1763 ../src/libs/modulegroups.c:2074 +#: ../src/libs/modulegroups.c:2583 msgctxt "modulegroup" msgid "deprecated" msgstr "veraltet" -#: ../src/libs/modulegroups.c:1792 +#: ../src/libs/modulegroups.c:1776 msgid "previous config" msgstr "vorherige Einstellung" -#: ../src/libs/modulegroups.c:1793 +#: ../src/libs/modulegroups.c:1777 msgid "previous layout" msgstr "vorheriges Layout" -#: ../src/libs/modulegroups.c:1797 +#: ../src/libs/modulegroups.c:1781 msgid "previous config with new layout" msgstr "vorherige Einstellung mit neuem Layout" -#: ../src/libs/modulegroups.c:1957 ../src/libs/modulegroups.c:2472 ../src/libs/modulegroups.c:2484 +#: ../src/libs/modulegroups.c:1941 ../src/libs/modulegroups.c:2456 +#: ../src/libs/modulegroups.c:2468 msgid "remove this widget" msgstr "dieses Modul entfernen" -#: ../src/libs/modulegroups.c:2107 ../src/libs/modulegroups.c:2347 +#: ../src/libs/modulegroups.c:2091 ../src/libs/modulegroups.c:2331 msgid "remove this module" msgstr "dieses Modul entfernen" #. does it belong to recommended modules ? -#: ../src/libs/modulegroups.c:2316 +#: ../src/libs/modulegroups.c:2300 msgid "base" msgstr "Basisbearbeitung" -#: ../src/libs/modulegroups.c:2319 +#: ../src/libs/modulegroups.c:2303 msgid "tone" msgstr "Tonwerte" -#: ../src/libs/modulegroups.c:2322 +#: ../src/libs/modulegroups.c:2306 msgid "technical" msgstr "Technisch" -#: ../src/libs/modulegroups.c:2323 +#: ../src/libs/modulegroups.c:2307 msgid "grading" msgstr "Farbkorrektur" -#: ../src/libs/modulegroups.c:2329 ../src/libs/modulegroups.c:2337 +#: ../src/libs/modulegroups.c:2313 ../src/libs/modulegroups.c:2321 msgid "add this module" msgstr "dieses Modul hinzuzufügen" #. show the submenu with all the modules -#: ../src/libs/modulegroups.c:2359 ../src/libs/modulegroups.c:2559 +#: ../src/libs/modulegroups.c:2343 ../src/libs/modulegroups.c:2543 msgid "all available modules" msgstr "alle Module" -#: ../src/libs/modulegroups.c:2367 +#: ../src/libs/modulegroups.c:2351 msgid "add module" msgstr "Modul hinzufügen" -#: ../src/libs/modulegroups.c:2372 +#: ../src/libs/modulegroups.c:2356 msgid "remove module" msgstr "Modul entfernen" -#: ../src/libs/modulegroups.c:2478 +#: ../src/libs/modulegroups.c:2462 msgid "header needed for other widgets" msgstr "Modulheader für andere Widgets erforderlich" -#: ../src/libs/modulegroups.c:2494 ../src/libs/modulegroups.c:2501 +#: ../src/libs/modulegroups.c:2478 ../src/libs/modulegroups.c:2485 msgid "add this widget" msgstr "dieses Widget entfernen" -#: ../src/libs/modulegroups.c:2514 +#: ../src/libs/modulegroups.c:2498 msgid "currently invisible" msgstr "momentan unsichtbar" -#: ../src/libs/modulegroups.c:2543 +#: ../src/libs/modulegroups.c:2527 msgid "add widget" msgstr "Widget hinzufügen" -#: ../src/libs/modulegroups.c:2548 +#: ../src/libs/modulegroups.c:2532 msgid "remove widget" msgstr "Widget entfernen" -#: ../src/libs/modulegroups.c:2653 +#: ../src/libs/modulegroups.c:2637 msgid "show all history modules" msgstr "alle im Verlauf enthaltene Module anzeigen" -#: ../src/libs/modulegroups.c:2656 ../src/libs/modulegroups.c:3834 -msgid "show modules that are present in the history stack, regardless of whether or not they are currently enabled" +#: ../src/libs/modulegroups.c:2640 ../src/libs/modulegroups.c:3836 +msgid "" +"show modules that are present in the history stack, regardless of whether or " +"not they are currently enabled" msgstr "" "Module anzeigen, die im Verlaufsstapel vorhanden sind, \n" "unabhängig davon, ob sie derzeit aktiviert sind oder nicht" -#: ../src/libs/modulegroups.c:2747 ../src/libs/modulegroups.c:2816 +#: ../src/libs/modulegroups.c:2731 ../src/libs/modulegroups.c:2823 msgid "" -"the following modules are deprecated because they have internal design mistakes that can't be corrected and " -"alternative modules that correct them.\n" +"the following modules are deprecated because they have internal design " +"mistakes that can't be corrected and alternative modules that correct them.\n" "they will be removed for new edits in the next release." msgstr "" -"Folgende Module sind veraltet, weil sie interne Konzeptionsschwächen haben, die nicht behoben werden können und " -"die durch Alternativen abgelöst werden.\n" +"Folgende Module sind veraltet, weil sie interne Konzeptionsschwächen haben, " +"die nicht behoben werden können und die durch Alternativen abgelöst werden.\n" "Sie werden für neue Bearbeitungen in der nächsten Version entfernt." -#: ../src/libs/modulegroups.c:2775 ../src/libs/modulegroups.c:2776 +#: ../src/libs/modulegroups.c:2782 ../src/libs/modulegroups.c:2783 msgid "quick access panel" msgstr "Schnellzugriffsgruppe" -#: ../src/libs/modulegroups.c:2786 +#: ../src/libs/modulegroups.c:2793 msgid "show only active modules" msgstr "eingeschaltete Module" -#: ../src/libs/modulegroups.c:2787 +#: ../src/libs/modulegroups.c:2794 msgid "active modules" msgstr "aktive Module" -#: ../src/libs/modulegroups.c:2792 +#: ../src/libs/modulegroups.c:2799 msgid "" "presets\n" "ctrl+click to manage" @@ -21916,160 +23974,167 @@ "Modulgruppen\n" "Strg+Klick zum Anpassen" -#: ../src/libs/modulegroups.c:2798 +#: ../src/libs/modulegroups.c:2805 msgid "search modules" msgstr "suche Modul" -#: ../src/libs/modulegroups.c:2799 +#: ../src/libs/modulegroups.c:2806 msgid "search modules by name or tag" msgstr "Modul nach Namen oder Stichwort suchen" -#: ../src/libs/modulegroups.c:2809 +#: ../src/libs/modulegroups.c:2816 msgid "clear text" msgstr "Text löschen" -#: ../src/libs/modulegroups.c:3051 +#: ../src/libs/modulegroups.c:3056 msgid "basic icon" msgstr "Symbol „Basisbearbeitung”" -#: ../src/libs/modulegroups.c:3061 +#: ../src/libs/modulegroups.c:3066 msgid "active icon" msgstr "Symbol „aktiv”" -#: ../src/libs/modulegroups.c:3071 +#: ../src/libs/modulegroups.c:3076 msgid "color icon" msgstr "Symbol „Farbe”" -#: ../src/libs/modulegroups.c:3081 +#: ../src/libs/modulegroups.c:3086 msgid "correct icon" msgstr "Symbol „Korrekturen”" -#: ../src/libs/modulegroups.c:3091 +#: ../src/libs/modulegroups.c:3096 msgid "effect icon" msgstr "Symbol „Effekte”" -#: ../src/libs/modulegroups.c:3101 +#: ../src/libs/modulegroups.c:3106 msgid "favorites icon" msgstr "Symbol „Favoriten”" -#: ../src/libs/modulegroups.c:3111 +#: ../src/libs/modulegroups.c:3116 msgid "tone icon" msgstr "Symbol „Tonwerte”" -#: ../src/libs/modulegroups.c:3121 +#: ../src/libs/modulegroups.c:3126 msgid "grading icon" msgstr "Symbol „Farbkorrektur”" -#: ../src/libs/modulegroups.c:3131 +#: ../src/libs/modulegroups.c:3136 msgid "technical icon" msgstr "Symbol „Technisch”" -#: ../src/libs/modulegroups.c:3164 +#: ../src/libs/modulegroups.c:3169 msgid "quick access panel widgets" msgstr "Schnellzugriff Widgets" -#: ../src/libs/modulegroups.c:3166 +#: ../src/libs/modulegroups.c:3171 msgid "quick access" msgstr "Schnellzugriff" -#: ../src/libs/modulegroups.c:3186 +#: ../src/libs/modulegroups.c:3191 msgid "add widget to the quick access panel" msgstr "Widget zur Schnellzugriffsgruppe hinzufügen" -#: ../src/libs/modulegroups.c:3218 +#: ../src/libs/modulegroups.c:3223 msgid "group icon" msgstr "Gruppensymbol" -#: ../src/libs/modulegroups.c:3227 +#: ../src/libs/modulegroups.c:3232 msgid "group name" msgstr "Gruppenname" -#: ../src/libs/modulegroups.c:3238 +#: ../src/libs/modulegroups.c:3243 msgid "remove group" msgstr "Gruppe entfernen" -#: ../src/libs/modulegroups.c:3264 +#: ../src/libs/modulegroups.c:3269 msgid "move group to the left" msgstr "Gruppe nach links verschieben" -#: ../src/libs/modulegroups.c:3272 +#: ../src/libs/modulegroups.c:3277 msgid "add module to the group" msgstr "Modul zur Gruppe hinzufügen" -#: ../src/libs/modulegroups.c:3283 +#: ../src/libs/modulegroups.c:3288 msgid "move group to the right" msgstr "Gruppe nach rechts verschieben" -#: ../src/libs/modulegroups.c:3463 +#: ../src/libs/modulegroups.c:3464 msgid "rename preset" msgstr "Modullayout umbenennen" -#: ../src/libs/modulegroups.c:3470 +#: ../src/libs/modulegroups.c:3467 +msgid "_rename" +msgstr "_umbenennen" + +#: ../src/libs/modulegroups.c:3473 msgid "new preset name:" msgstr "neuer Name des Modullayouts:" -#: ../src/libs/modulegroups.c:3471 +#: ../src/libs/modulegroups.c:3474 msgid "a preset with this name already exists!" msgstr "Ein Modullayout mit diesem Namen existiert bereits!" -#: ../src/libs/modulegroups.c:3804 +#: ../src/libs/modulegroups.c:3806 msgid "preset: " msgstr "Modullayout:" -#: ../src/libs/modulegroups.c:3811 +#: ../src/libs/modulegroups.c:3813 msgid "remove the preset" msgstr "Modullayout entfernen" -#: ../src/libs/modulegroups.c:3813 +#: ../src/libs/modulegroups.c:3815 msgid "duplicate the preset" msgstr "Modullayout duplizieren" -#: ../src/libs/modulegroups.c:3815 +#: ../src/libs/modulegroups.c:3817 msgid "rename the preset" msgstr "Modullayout umbenennen" -#: ../src/libs/modulegroups.c:3817 +#: ../src/libs/modulegroups.c:3819 msgid "create a new empty preset" msgstr "neues leeres Modullayout erstellen" -#: ../src/libs/modulegroups.c:3825 +#: ../src/libs/modulegroups.c:3827 msgid "show search line" msgstr "zeige Suchfeld" -#: ../src/libs/modulegroups.c:3828 +#: ../src/libs/modulegroups.c:3830 msgid "show quick access panel" msgstr "Schnellzugriffsgruppe anzeigen" -#: ../src/libs/modulegroups.c:3831 +#: ../src/libs/modulegroups.c:3833 msgid "show all history modules in active group" msgstr "alle Verlaufsmodule in Gruppe der aktiven Module anzeigen" -#: ../src/libs/modulegroups.c:3843 +#: ../src/libs/modulegroups.c:3845 msgid "auto-apply this preset" msgstr "Modullayout automatisch anwenden" -#: ../src/libs/modulegroups.c:3858 +#: ../src/libs/modulegroups.c:3860 msgid "module groups" msgstr "Modulgruppen" -#: ../src/libs/modulegroups.c:3875 -msgid "this is a built-in read-only preset. duplicate it if you want to make changes" -msgstr "Dies ist ein eingebautes unveränderbares Modullayout, zum Ändern zunächst duplizieren." +#: ../src/libs/modulegroups.c:3877 +msgid "" +"this is a built-in read-only preset. duplicate it if you want to make changes" +msgstr "" +"Dies ist ein eingebautes unveränderbares Modullayout, zum Ändern zunächst " +"duplizieren." #: ../src/libs/navigation.c:74 msgid "navigation" msgstr "Navigation" -#: ../src/libs/navigation.c:111 ../src/libs/navigation.c:191 +#: ../src/libs/navigation.c:112 ../src/libs/navigation.c:194 msgctxt "navigationbox" msgid "fill" msgstr "füllen" -#: ../src/libs/navigation.c:114 ../src/libs/navigation.c:189 +#: ../src/libs/navigation.c:115 ../src/libs/navigation.c:192 msgid "small" msgstr "klein" -#: ../src/libs/navigation.c:151 +#: ../src/libs/navigation.c:154 msgid "" "navigation\n" "click or drag to position zoomed area in center view" @@ -22077,35 +24142,35 @@ "Ausschnittspositionierung \n" "Klicken oder ziehen positioniert den Ausschnitt in der mittleren Bildansicht" -#: ../src/libs/navigation.c:173 +#: ../src/libs/navigation.c:176 msgid "hide navigation thumbnail" msgstr "Navigationsvorschaubild ausblenden" -#: ../src/libs/navigation.c:187 +#: ../src/libs/navigation.c:190 msgid "image zoom level" msgstr "Zoom Level einstellen" -#: ../src/libs/navigation.c:192 +#: ../src/libs/navigation.c:195 msgid "50%" msgstr "50%" -#: ../src/libs/navigation.c:193 +#: ../src/libs/navigation.c:196 msgid "100%" msgstr "100%" -#: ../src/libs/navigation.c:194 +#: ../src/libs/navigation.c:197 msgid "200%" msgstr "200%" -#: ../src/libs/navigation.c:195 +#: ../src/libs/navigation.c:198 msgid "400%" msgstr "400%" -#: ../src/libs/navigation.c:196 +#: ../src/libs/navigation.c:199 msgid "800%" msgstr "800%" -#: ../src/libs/navigation.c:197 +#: ../src/libs/navigation.c:200 msgid "1600%" msgstr "1600%" @@ -22170,7 +24235,8 @@ msgid "printer" msgstr "Drucker" -#: ../src/libs/print_settings.c:2409 ../src/libs/print_settings.c:2418 ../src/libs/print_settings.c:2473 +#: ../src/libs/print_settings.c:2409 ../src/libs/print_settings.c:2418 +#: ../src/libs/print_settings.c:2473 msgid "printer" msgstr "Drucker" @@ -22296,7 +24362,8 @@ msgstr "" "einen neuen Bildbereich auf der Seite hinzufügen\n" "Auf die Seite klicken und ziehen, um den Bereich zu platzieren\n" -"per drag&drop können Bilder aus dem Filmstreifen in den Bildbereich übernommen werden" +"per drag&drop können Bilder aus dem Filmstreifen in den Bildbereich " +"übernommen werden" #: ../src/libs/print_settings.c:2698 msgid "delete image area" @@ -22348,15 +24415,15 @@ msgid "print with current settings" msgstr "mit aktuellen Einstellungen drucken" -#: ../src/libs/select.c:136 +#: ../src/libs/select.c:137 msgid "select all images in current collection" msgstr "wähle alle Bilder der aktuellen Sammlung" -#: ../src/libs/select.c:140 +#: ../src/libs/select.c:141 msgid "clear selection" msgstr "entferne die aktuelle Auswahl" -#: ../src/libs/select.c:144 +#: ../src/libs/select.c:145 msgid "" "select unselected images\n" "in current collection" @@ -22364,7 +24431,7 @@ "wähle alle Bilder der aktuellen Sammlung\n" "aus, die nicht ausgewählt sind" -#: ../src/libs/select.c:148 +#: ../src/libs/select.c:149 msgid "" "select all images which are in the same\n" "film roll as the selected images" @@ -22372,7 +24439,7 @@ "wähle alle Bilder aus, die in der selben\n" "Filmrolle sind wie die ausgewählten" -#: ../src/libs/select.c:152 +#: ../src/libs/select.c:153 msgid "" "select untouched images in\n" "current collection" @@ -22392,35 +24459,41 @@ msgid "create" msgstr "erzeugen" -#: ../src/libs/snapshots.c:92 +#: ../src/libs/snapshots.c:88 msgid "snapshots" msgstr "Snapshots" -#: ../src/libs/snapshots.c:141 +#: ../src/libs/snapshots.c:137 msgctxt "snapshot sign" msgid "S" msgstr "S" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:662 +msgid "snapshots for removed image have been deleted" +msgstr "Snapshots für das entfernte Bild wurden gelöscht" + +#: ../src/libs/snapshots.c:703 #, c-format msgid "↗ %s '%s'" msgstr "↗ %s „%s“" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:703 msgid "this snapshot was taken from" msgstr "Snapshot von" -#: ../src/libs/snapshots.c:663 +#: ../src/libs/snapshots.c:742 msgid "take snapshot" msgstr "Snapshot erstellen" -#: ../src/libs/snapshots.c:665 -msgid "take snapshot to compare with another image or the same image at another stage of development" +#: ../src/libs/snapshots.c:744 +msgid "" +"take snapshot to compare with another image or the same image at another " +"stage of development" msgstr "" -"Snapshot erstellen, um mit einem anderen Bild oder dem aktuellen Bild in einem anderen Bearbeitungszustand zu " -"vergleichen" +"Snapshot erstellen, um mit einem anderen Bild oder dem aktuellen Bild in " +"einem anderen Bearbeitungszustand zu vergleichen" -#: ../src/libs/snapshots.c:734 +#: ../src/libs/snapshots.c:790 msgid "toggle last snapshot" msgstr "letzten Snapshot ein-/ausschalten" @@ -22437,7 +24510,11 @@ msgstr[0] "%d Stil wirklich löschen?" msgstr[1] "%d Stile wirklich löschen?" -#: ../src/libs/styles.c:444 ../src/libs/styles.c:627 +#: ../src/libs/styles.c:441 ../src/libs/styles.c:626 +msgid "_overwrite" +msgstr "über_schreiben" + +#: ../src/libs/styles.c:446 ../src/libs/styles.c:631 #, c-format msgid "" "style `%s' already exists.\n" @@ -22446,24 +24523,24 @@ "Der Stil „%s” existiert bereits.\n" "Soll er überschrieben werden?\n" -#: ../src/libs/styles.c:446 ../src/libs/styles.c:629 +#: ../src/libs/styles.c:448 ../src/libs/styles.c:633 msgid "apply this option to all existing styles" msgstr "Diese Option auf alle vorhandenen Stile anwenden." -#: ../src/libs/styles.c:509 +#: ../src/libs/styles.c:511 #, c-format msgid "style %s was successfully exported" msgstr "Stil „%s” erfolgreich exportiert" -#: ../src/libs/styles.c:526 +#: ../src/libs/styles.c:528 msgid "select style" msgstr "Stil auswählen" -#: ../src/libs/styles.c:536 +#: ../src/libs/styles.c:538 msgid "darktable style files" msgstr "darktable-Stil-Datei" -#: ../src/libs/styles.c:815 +#: ../src/libs/styles.c:819 msgid "" "available styles,\n" "double-click to apply" @@ -22471,72 +24548,73 @@ "verfügbare Stile,\n" "Doppelklick zum Anwenden" -#: ../src/libs/styles.c:824 ../src/libs/styles.c:825 +#: ../src/libs/styles.c:828 ../src/libs/styles.c:829 msgid "filter style names" msgstr "Stile nach Namen filtern" -#: ../src/libs/styles.c:837 +#: ../src/libs/styles.c:841 msgid "create duplicate" msgstr "Duplikat erzeugen" -#: ../src/libs/styles.c:844 +#: ../src/libs/styles.c:848 msgid "creates a duplicate of the image before applying style" msgstr "Erzeuge ein Duplikat des Bildes, bevor der Stil angewendet wird." -#: ../src/libs/styles.c:862 +#: ../src/libs/styles.c:866 msgid "create..." msgstr "erzeugen…" -#: ../src/libs/styles.c:864 +#: ../src/libs/styles.c:868 msgid "create styles from history stack of selected images" msgstr "Stile aus den Verlaufsstapeln ausgewählter Bilder erzeugen" -#: ../src/libs/styles.c:869 ../src/libs/tagging.c:2252 +#: ../src/libs/styles.c:873 ../src/libs/tagging.c:2283 msgid "edit..." msgstr "bearbeiten…" -#: ../src/libs/styles.c:871 +#: ../src/libs/styles.c:875 msgid "edit the selected styles in list above" msgstr "ausgewählte Stile bearbeiten" -#: ../src/libs/styles.c:878 +#: ../src/libs/styles.c:882 msgid "removes the selected styles in list above" msgstr "ausgewählte Stile entfernen" -#: ../src/libs/styles.c:885 +#: ../src/libs/styles.c:889 msgid "import styles from a style files" msgstr "Stile aus einer Stil-Datei importieren" -#: ../src/libs/styles.c:892 +#: ../src/libs/styles.c:896 msgid "export the selected styles into a style files" msgstr "ausgewählte Stile in eine Stil-Datei exportieren" -#: ../src/libs/styles.c:899 +#: ../src/libs/styles.c:903 msgid "apply the selected styles in list above to selected images" msgstr "ausgewählte Stile auf ausgewählte Bilder anwenden" -#: ../src/libs/tagging.c:105 +#: ../src/libs/tagging.c:109 msgid "tagging" msgstr "Verschlagwortung - Tagging" -#: ../src/libs/tagging.c:1255 +#: ../src/libs/tagging.c:1258 msgid "attach tag to all" msgstr "Tag an alle zuweisen" -#: ../src/libs/tagging.c:1263 ../src/libs/tagging.c:2225 +#: ../src/libs/tagging.c:1266 ../src/libs/tagging.c:2256 msgid "detach tag" msgstr "Tag entfernen" -#: ../src/libs/tagging.c:1483 +#: ../src/libs/tagging.c:1486 msgid "delete tag?" msgstr "Tag löschen?" -#: ../src/libs/tagging.c:1490 ../src/libs/tagging.c:1578 ../src/libs/tagging.c:1789 ../src/libs/tagging.c:2063 +#: ../src/libs/tagging.c:1496 ../src/libs/tagging.c:1587 +#: ../src/libs/tagging.c:1814 ../src/libs/tagging.c:2093 #, c-format msgid "selected: %s" msgstr "ausgewählt: %s " -#: ../src/libs/tagging.c:1497 +#: ../src/libs/tagging.c:1503 #, c-format msgid "" "do you really want to delete the tag `%s'?\n" @@ -22551,71 +24629,73 @@ "Soll das Tag „%s“ wirklich gelöscht werden?\n" "%d Bildern ist dieses Tag zugewiesen." -#: ../src/libs/tagging.c:1531 +#: ../src/libs/tagging.c:1537 #, c-format msgid "tag %s removed" msgstr "Tag „%s” entfernt" -#: ../src/libs/tagging.c:1571 +#: ../src/libs/tagging.c:1577 msgid "delete node?" msgstr "Oberbegriff löschen?" -#: ../src/libs/tagging.c:1585 +#: ../src/libs/tagging.c:1594 #, c-format msgid "<u>%d</u> tag will be deleted" msgid_plural "<u>%d</u> tags will be deleted" msgstr[0] "<u>%d</u> Tag wird gelöscht" msgstr[1] "<u>%d</u> Tags werden gelöscht" -#: ../src/libs/tagging.c:1590 ../src/libs/tagging.c:1801 ../src/libs/tagging.c:2075 +#: ../src/libs/tagging.c:1599 ../src/libs/tagging.c:1826 +#: ../src/libs/tagging.c:2105 #, c-format msgid "<u>%d</u> image will be updated" msgid_plural "<u>%d</u> images will be updated" msgstr[0] "<u>%d</u> Bild wird aktualisiert" msgstr[1] "<u>%d</u> Bilder werden aktualisiert" -#: ../src/libs/tagging.c:1616 +#: ../src/libs/tagging.c:1625 #, c-format msgid "%d tags removed" msgstr "%d Tags entfernt" -#: ../src/libs/tagging.c:1652 +#: ../src/libs/tagging.c:1668 msgid "create tag" msgstr "Tag erstellen" -#: ../src/libs/tagging.c:1662 ../src/libs/tagging.c:1809 +#: ../src/libs/tagging.c:1681 ../src/libs/tagging.c:1834 msgid "name: " msgstr "Name: " -#: ../src/libs/tagging.c:1674 +#: ../src/libs/tagging.c:1696 #, c-format msgid "add to: \"%s\" " msgstr "hinzufügen zu: „%s” " -#: ../src/libs/tagging.c:1680 ../src/libs/tagging.c:1824 +#: ../src/libs/tagging.c:1702 ../src/libs/tagging.c:1851 msgid "category" msgstr "Kategorie" -#: ../src/libs/tagging.c:1689 ../src/libs/tagging.c:1833 +#: ../src/libs/tagging.c:1711 ../src/libs/tagging.c:1860 msgid "synonyms: " msgstr "Synonyme: " -#: ../src/libs/tagging.c:1706 ../src/libs/tagging.c:1855 ../src/libs/tagging.c:2097 +#: ../src/libs/tagging.c:1728 ../src/libs/tagging.c:1882 +#: ../src/libs/tagging.c:2128 msgid "empty tag is not allowed, aborting" msgstr "Leeres Tag ist nicht erlaubt. Abbruch" -#: ../src/libs/tagging.c:1717 +#: ../src/libs/tagging.c:1739 msgid "tag name already exists. aborting." msgstr "Tag existiert bereits. Abbruch." -#: ../src/libs/tagging.c:1796 ../src/libs/tagging.c:2070 +#: ../src/libs/tagging.c:1821 ../src/libs/tagging.c:2100 #, c-format msgid "<u>%d</u> tag will be updated" msgid_plural "<u>%d</u> tags will be updated" msgstr[0] "<u>%d</u> Tag wird aktualisiert" msgstr[1] "<u>%d</u> Tags werden aktualisiert" -#: ../src/libs/tagging.c:1857 +#: ../src/libs/tagging.c:1884 msgid "" "'|' character is not allowed for renaming tag.\n" "to modify the hierarchy use rename path instead. Aborting." @@ -22623,102 +24703,102 @@ "„|“ Zeichen ist für die Umbenennung von Tags nicht erlaubt.\n" "Um die Hierarchie zu ändern, verwenden stattdessen Pfad Umbenennen. Abbruch." -#: ../src/libs/tagging.c:1896 ../src/libs/tagging.c:2004 +#: ../src/libs/tagging.c:1923 ../src/libs/tagging.c:2031 #, c-format msgid "at least one new tag name (%s) already exists, aborting" msgstr "Mindestens ein neues Tag (%s) existiert bereits, Abbruch des Vorgangs" -#: ../src/libs/tagging.c:2056 +#: ../src/libs/tagging.c:2083 msgid "change path" msgstr "ändere Hierarchie…" -#: ../src/libs/tagging.c:2099 +#: ../src/libs/tagging.c:2130 msgid "'|' misplaced, empty tag is not allowed, aborting" msgstr "„|“ falsch platziert, leeres Tag ist nicht erlaubt, Abbruch" -#: ../src/libs/tagging.c:2195 +#: ../src/libs/tagging.c:2226 #, c-format msgid "tag %s created" msgstr "Tag „%s” angelegt" -#: ../src/libs/tagging.c:2221 +#: ../src/libs/tagging.c:2252 msgid "attach tag" msgstr "Tag zuweisen" -#: ../src/libs/tagging.c:2234 +#: ../src/libs/tagging.c:2265 msgid "create tag..." msgstr "Tag erstellen…" -#: ../src/libs/tagging.c:2240 +#: ../src/libs/tagging.c:2271 msgid "delete tag" msgstr "Tag löschen" -#: ../src/libs/tagging.c:2247 +#: ../src/libs/tagging.c:2278 msgid "delete node" msgstr "Oberbegriff löschen" -#: ../src/libs/tagging.c:2260 +#: ../src/libs/tagging.c:2291 msgid "change path..." msgstr "ändere Hierarchie…" -#: ../src/libs/tagging.c:2270 +#: ../src/libs/tagging.c:2301 msgid "set as a tag" msgstr "als Tag verwenden" -#: ../src/libs/tagging.c:2281 +#: ../src/libs/tagging.c:2312 msgid "copy to entry" msgstr "Kopieren in den Eintrag" -#: ../src/libs/tagging.c:2298 +#: ../src/libs/tagging.c:2329 msgid "go to tag collection" msgstr "gehe zur Tag Sammlung" -#: ../src/libs/tagging.c:2304 +#: ../src/libs/tagging.c:2335 msgid "go back to work" msgstr "Wieder an die Arbeit gehen" -#: ../src/libs/tagging.c:2461 +#: ../src/libs/tagging.c:2492 #, c-format msgid "%s" msgstr "%s" -#: ../src/libs/tagging.c:2462 +#: ../src/libs/tagging.c:2493 msgid "(private)" msgstr "(privat)" # bezieht sich auf eine Lightroom Stichwortdatei -#: ../src/libs/tagging.c:2488 +#: ../src/libs/tagging.c:2519 msgid "select a keyword file" msgstr "Stichwortdatei auswählen" -#: ../src/libs/tagging.c:2501 +#: ../src/libs/tagging.c:2532 msgid "error importing tags" msgstr "Fehler beim Importieren der Schlagwörter" -#: ../src/libs/tagging.c:2503 +#: ../src/libs/tagging.c:2534 #, c-format msgid "%zd tags imported" msgstr "%zd Tags importiert" -#: ../src/libs/tagging.c:2524 +#: ../src/libs/tagging.c:2555 msgid "select file to export to" msgstr "Datei zum exportieren wählen" # bezieht sich auf Stichwort Dateien. -#: ../src/libs/tagging.c:2538 +#: ../src/libs/tagging.c:2569 msgid "error exporting tags" msgstr "Fehler beim Exportieren der Tags" -#: ../src/libs/tagging.c:2540 +#: ../src/libs/tagging.c:2571 #, c-format msgid "%zd tags exported" msgstr "%zd Tags exportiert" -#: ../src/libs/tagging.c:2964 +#: ../src/libs/tagging.c:2995 msgid "drop to root" msgstr "drop to root" -#: ../src/libs/tagging.c:3100 +#: ../src/libs/tagging.c:3131 msgid "" "attached tags\n" "press Delete or double-click to detach\n" @@ -22730,47 +24810,47 @@ "Rechtsklick für andere Aktionen des zugewiesenen Tags,\n" "Tab springt ins Eingabefeld" -#: ../src/libs/tagging.c:3111 +#: ../src/libs/tagging.c:3142 msgid "attach" msgstr "zuweisen" -#: ../src/libs/tagging.c:3112 +#: ../src/libs/tagging.c:3143 msgid "attach tag to all selected images" msgstr "Tag an alle ausgewählten Bilder zuweisen" -#: ../src/libs/tagging.c:3115 +#: ../src/libs/tagging.c:3146 msgid "detach" msgstr "entfernen" -#: ../src/libs/tagging.c:3116 +#: ../src/libs/tagging.c:3147 msgid "detach tag from all selected images" msgstr "Tag von allen ausgewählten Bildern entfernen" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "toggle list with / without hierarchy" msgstr "Wechseln zwischen Liste mit / ohne Hierarchie" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "hide" msgstr "verstecken" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "toggle sort by name or by count" msgstr "Zwischen Sortierung nach Name oder Anzahl umschalten" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "sort" msgstr "sortieren" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "toggle show or not darktable tags" msgstr "Anzeige von darktable Tags aktivieren oder deaktivieren" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "dttags" msgstr "darktable Tags" -#: ../src/libs/tagging.c:3149 +#: ../src/libs/tagging.c:3180 msgid "" "enter tag name\n" "press Enter to create a new tag and attach it on selected images\n" @@ -22778,15 +24858,17 @@ "press shift+Tab to select the first attached user tag" msgstr "" "Tag Bezeichnung eingeben\n" -"Eingabetaste drücken, um ein neues Tag zu erstellen und den ausgewählten Bildern zuzuweisen\n" -"Tabulator oder Abwärtstaste drücken, um zum ersten passenden Tag zu gelangen\n" +"Eingabetaste drücken, um ein neues Tag zu erstellen und den ausgewählten " +"Bildern zuzuweisen\n" +"Tabulator oder Abwärtstaste drücken, um zum ersten passenden Tag zu " +"gelangen\n" "Shift+Tab drücken, um den ersten zugewiesenen Benutzer-Tag auszuwählen" -#: ../src/libs/tagging.c:3160 ../src/libs/tagging.c:3166 +#: ../src/libs/tagging.c:3191 ../src/libs/tagging.c:3197 msgid "clear entry" msgstr "Eintrag löschen" -#: ../src/libs/tagging.c:3213 +#: ../src/libs/tagging.c:3244 msgid "" "tag dictionary,\n" "Enter or double-click to attach selected tag on selected images\n" @@ -22796,13 +24878,14 @@ "shift+Tab to give the focus to entry" msgstr "" "Tag-Verzeichnis,\n" -"Eingabetaste drücken oder doppelklicken, um das ausgewählte Tag an die ausgewählten Bilder zuzuweisen,\n" +"Eingabetaste drücken oder doppelklicken, um das ausgewählte Tag an die " +"ausgewählten Bilder zuzuweisen,\n" "Shift+Eingabe plus zusätzlich Fokus auf das Eingabefeld,\n" "Shift+Klick, um das ausgewählte Tag vollständig zu erweitern,\n" "Rechtsklick für andere Aktionen auf dem ausgewählten Tag,\n" "Shift+Tab springt zum Eingabefeld" -#: ../src/libs/tagging.c:3248 +#: ../src/libs/tagging.c:3279 msgid "" "create a new tag with the\n" "name you entered" @@ -22810,43 +24893,47 @@ "neues Tag mit dem eingegebenen\n" "Namen erstellen" -#: ../src/libs/tagging.c:3251 +#: ../src/libs/tagging.c:3282 msgid "import tags from a Lightroom keyword file" msgstr "Tags aus einer Lightroom-Stichwortdatei importieren" -#: ../src/libs/tagging.c:3254 +#: ../src/libs/tagging.c:3285 msgid "export all tags to a Lightroom keyword file" msgstr "alle Tags in eine Lightroom-Stichwortdatei exportieren" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "toggle list / tree view" msgstr "Wechseln zwischen Listen- / Baumansicht" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "tree" msgstr "Hierarchie" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "toggle list with / without suggestion" msgstr "Wechseln zwischen Liste mit / ohne Vorschlag" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "suggestion" msgstr "Vorschlag" -#: ../src/libs/tagging.c:3282 +#: ../src/libs/tagging.c:3313 msgid "redo last tag" msgstr "letztes Tag erneut vergeben" -#: ../src/libs/tagging.c:3365 -msgid "tag shortcut is not active with tag tree view. please switch to list view" -msgstr "Tag Shortcut in der Baumansicht nicht aktiv. Bitte zur Listenansicht wechseln." +#: ../src/libs/tagging.c:3396 +msgid "" +"tag shortcut is not active with tag tree view. please switch to list view" +msgstr "" +"Tag Shortcut in der Baumansicht nicht aktiv. Bitte zur Listenansicht " +"wechseln." -#: ../src/libs/tagging.c:3469 +#: ../src/libs/tagging.c:3500 msgid "tagging settings" msgstr "Tagging Einstellungen" -#: ../src/libs/tools/battery_indicator.c:38 ../src/libs/tools/battery_indicator.c:70 +#: ../src/libs/tools/battery_indicator.c:38 +#: ../src/libs/tools/battery_indicator.c:70 msgid "battery indicator" msgstr "Batterieanzeige" @@ -22858,27 +24945,6 @@ msgid "toggle color label of selected images" msgstr "Farbmarkierung der ausgewählten Bilder an-/ausschalten" -#: ../src/libs/tools/darktable.c:284 -#, c-format -msgid "copyright (c) the authors 2009-%s" -msgstr "Copyright © die Urheber 2009–%s" - -#: ../src/libs/tools/darktable.c:288 -msgid "organize and develop images from digital cameras" -msgstr "Organisiere und entwickle Bilder von Digitalkameras" - -#: ../src/libs/tools/darktable.c:300 -msgid "all those of you that made previous releases possible" -msgstr "Und alle, die frühere Releases möglich gemacht haben" - -#: ../src/libs/tools/darktable.c:305 -msgid "and..." -msgstr "und…" - -#: ../src/libs/tools/darktable.c:307 -msgid "translator-credits" -msgstr "Tobias Ellinghaus et al." - #: ../src/libs/tools/filmstrip.c:45 msgid "filmstrip" msgstr "Filmstreifen" @@ -23033,19 +25099,24 @@ msgid "thumbnails overlays for size" msgstr "Bildinfos für Miniaturansichten der Größe" -#: ../src/libs/tools/global_toolbox.c:249 ../src/libs/tools/global_toolbox.c:312 +#: ../src/libs/tools/global_toolbox.c:249 +#: ../src/libs/tools/global_toolbox.c:312 msgid "" -"duration before the block overlay is hidden after each mouse movement on the image\n" +"duration before the block overlay is hidden after each mouse movement on the " +"image\n" "set -1 to never hide the overlay" msgstr "" -"Dauer für die Bildinfos angezeigt werden, wenn das Bild mit der Maus überfahren wird. \n" +"Dauer für die Bildinfos angezeigt werden, wenn das Bild mit der Maus " +"überfahren wird. \n" "Auf -1 setzen, um Bildinfos komplett zu verbergen." -#: ../src/libs/tools/global_toolbox.c:254 ../src/libs/tools/global_toolbox.c:317 +#: ../src/libs/tools/global_toolbox.c:254 +#: ../src/libs/tools/global_toolbox.c:317 msgid "timeout only available for block overlay" msgstr "Anzeigedauer nur für überlagerte Bildinfos verfügbar." -#: ../src/libs/tools/global_toolbox.c:277 ../src/libs/tools/global_toolbox.c:463 +#: ../src/libs/tools/global_toolbox.c:277 +#: ../src/libs/tools/global_toolbox.c:463 msgid "culling overlays" msgstr "Bildinfos Auswahl- und Vergleichssicht " @@ -23057,11 +25128,13 @@ msgid "overlays not available here..." msgstr "Bildinfos nicht verfügbar" -#: ../src/libs/tools/global_toolbox.c:397 ../src/libs/tools/global_toolbox.c:533 +#: ../src/libs/tools/global_toolbox.c:397 +#: ../src/libs/tools/global_toolbox.c:533 msgid "expand grouped images" msgstr "gruppierte Bilder anzeigen" -#: ../src/libs/tools/global_toolbox.c:399 ../src/libs/tools/global_toolbox.c:535 +#: ../src/libs/tools/global_toolbox.c:399 +#: ../src/libs/tools/global_toolbox.c:535 msgid "collapse grouped images" msgstr "gruppierte Bilder zusammenfassen" @@ -23073,7 +25146,8 @@ msgid "click to change the type of overlays shown on thumbnails" msgstr "klicken, um Art der Bildinfos in Vorschaubildern zu wählen" -#: ../src/libs/tools/global_toolbox.c:430 ../src/libs/tools/global_toolbox.c:459 +#: ../src/libs/tools/global_toolbox.c:430 +#: ../src/libs/tools/global_toolbox.c:459 msgid "overlay mode for size" msgstr "Überlagerungsmodus für Größe" @@ -23081,7 +25155,8 @@ msgid "thumbnail overlays" msgstr "Bildinfo-EInblendung" -#: ../src/libs/tools/global_toolbox.c:436 ../src/libs/tools/global_toolbox.c:465 +#: ../src/libs/tools/global_toolbox.c:436 +#: ../src/libs/tools/global_toolbox.c:465 msgid "no overlays" msgstr "keine Bildinfos" @@ -23093,11 +25168,13 @@ msgid "extended overlays on mouse hover" msgstr "erweiterte Bildinfos bei Überfahren mit Maus" -#: ../src/libs/tools/global_toolbox.c:439 ../src/libs/tools/global_toolbox.c:466 +#: ../src/libs/tools/global_toolbox.c:439 +#: ../src/libs/tools/global_toolbox.c:466 msgid "permanent overlays" msgstr "permanente Bildinfos" -#: ../src/libs/tools/global_toolbox.c:440 ../src/libs/tools/global_toolbox.c:467 +#: ../src/libs/tools/global_toolbox.c:440 +#: ../src/libs/tools/global_toolbox.c:467 msgid "permanent extended overlays" msgstr "permanente erweiterte Bildinfos" @@ -23105,15 +25182,18 @@ msgid "permanent overlays extended on mouse hover" msgstr "permanente Bildinfos erweitert bei Überfahren mit Maus" -#: ../src/libs/tools/global_toolbox.c:443 ../src/libs/tools/global_toolbox.c:469 +#: ../src/libs/tools/global_toolbox.c:443 +#: ../src/libs/tools/global_toolbox.c:469 msgid "overlays block on mouse hover" msgstr "Bildinfos bei Überfahren mit Maus" -#: ../src/libs/tools/global_toolbox.c:444 ../src/libs/tools/global_toolbox.c:470 +#: ../src/libs/tools/global_toolbox.c:444 +#: ../src/libs/tools/global_toolbox.c:470 msgid "during (s)" msgstr "Dauer (s)" -#: ../src/libs/tools/global_toolbox.c:449 ../src/libs/tools/global_toolbox.c:475 +#: ../src/libs/tools/global_toolbox.c:449 +#: ../src/libs/tools/global_toolbox.c:475 msgid "show tooltip" msgstr "zeige Bildinfos" @@ -23132,17 +25212,20 @@ "define shortcuts\n" "ctrl+click to switch off overwrite confirmations\n" "\n" -"hover over a widget and press keys with mouse click and scroll or move combinations\n" +"hover over a widget and press keys with mouse click and scroll or move " +"combinations\n" "repeat same combination again to delete mapping\n" -"click on a widget, module or screen area to open the dialog for further configuration" +"click on a widget, module or screen area to open the dialog for further " +"configuration" msgstr "" "Shortcuts definieren\n" "Strg+Klick zum Abschalten von Überschreibungsbestätigungen\n" "\n" -"Mauszeiger über ein Widget bewegen und Tasten drücken in Kombinationen mit Mausklick und Scrollen oder " -"Verschieben\n" +"Mauszeiger über ein Widget bewegen und Tasten drücken in Kombinationen mit " +"Mausklick und Scrollen oder Verschieben\n" "Gleiche Kombination wiederholen, um Zuordnung zu löschen\n" -"Auf ein Widget, ein Modul oder einen Bildschirmbereich klicken, um den Dialog zur weiteren Konfiguration zu öffnen" +"Auf ein Widget, ein Modul oder einen Bildschirmbereich klicken, um den " +"Dialog zur weiteren Konfiguration zu öffnen" #: ../src/libs/tools/global_toolbox.c:512 msgid "show global preferences" @@ -23179,39 +25262,40 @@ #: ../src/libs/tools/lighttable.c:126 msgid "click to enter culling layout in dynamic mode." -msgstr "Klicken, um Auswahl- und Vergleichssicht im dynamischen Modus zu öffnen" +msgstr "" +"Klicken, um Auswahl- und Vergleichssicht im dynamischen Modus zu öffnen" # besser „Bedienfeld“? # keine Ahnung was der Shortcut steuern soll, bei osx ändert sich jedenfalls nichts ;) -#: ../src/libs/tools/lighttable.c:368 +#: ../src/libs/tools/lighttable.c:365 msgid "toggle filemanager layout" msgstr "Galeriesicht ein/ausschalten" -#: ../src/libs/tools/lighttable.c:371 +#: ../src/libs/tools/lighttable.c:368 msgid "click to enter filemanager layout." msgstr "Klicken, um die Galeriesicht (Standardmodus) zu öffnen" -#: ../src/libs/tools/lighttable.c:377 +#: ../src/libs/tools/lighttable.c:374 msgid "toggle zoomable lighttable layout" msgstr "zoombarer Leuchttisch ein-/ausschalten" -#: ../src/libs/tools/lighttable.c:380 +#: ../src/libs/tools/lighttable.c:377 msgid "click to enter zoomable lighttable layout." msgstr "Klicken, um den zoombaren Leuchttisch zu öffnen" -#: ../src/libs/tools/lighttable.c:386 +#: ../src/libs/tools/lighttable.c:383 msgid "toggle culling mode" msgstr "Auswahl- und Vergleichssicht ein-/ausschalten" -#: ../src/libs/tools/lighttable.c:394 +#: ../src/libs/tools/lighttable.c:391 msgid "toggle culling dynamic mode" msgstr "dynamische Auswahl- und Vergleichssicht ein-/ausschalten" -#: ../src/libs/tools/lighttable.c:441 +#: ../src/libs/tools/lighttable.c:438 msgid "toggle culling zoom mode" msgstr "statische Auswahl- und Vergleichssicht ein-/ausschalten" -#: ../src/libs/tools/lighttable.c:443 +#: ../src/libs/tools/lighttable.c:440 msgid "exit current layout" msgstr "aktuelle Sicht verlassen" @@ -23221,12 +25305,16 @@ #: ../src/libs/tools/midi.c:221 msgid "using absolute encoding; reinitialise to switch to relative" -msgstr "Verwendung absoluter Codierung; zur Umstellung auf relative Codierung neu initialisieren" +msgstr "" +"Verwendung absoluter Codierung; zur Umstellung auf relative Codierung neu " +"initialisieren" #: ../src/libs/tools/midi.c:225 #, c-format msgid "%d more identical (down) moves before switching to relative encoding" -msgstr "%d weitere identische (Druckgeschwindigkeit) Bewegungen vor dem Wechsel zur relativen Codierung" +msgstr "" +"%d weitere identische (Druckgeschwindigkeit) Bewegungen vor dem Wechsel zur " +"relativen Codierung" #: ../src/libs/tools/midi.c:228 #, c-format @@ -23268,8 +25356,9 @@ msgid "viewswitcher" msgstr "Ansichtwechsler" -#: ../src/lua/preferences.c:656 ../src/lua/preferences.c:671 ../src/lua/preferences.c:683 -#: ../src/lua/preferences.c:695 ../src/lua/preferences.c:711 ../src/lua/preferences.c:775 +#: ../src/lua/preferences.c:656 ../src/lua/preferences.c:671 +#: ../src/lua/preferences.c:683 ../src/lua/preferences.c:695 +#: ../src/lua/preferences.c:711 ../src/lua/preferences.c:775 #, c-format msgid "double-click to reset to `%s'" msgstr "Doppelklick, um auf „%s” zurückzusetzen" @@ -23292,107 +25381,114 @@ msgid "Lua options" msgstr "Lua-Optionen" -#: ../src/views/darkroom.c:607 +#: ../src/views/darkroom.c:503 #, c-format msgid "" "darktable could not load `%s', switching to lighttable now.\n" "\n" -"please check that the camera model that produced the image is supported in darktable\n" -"(list of supported cameras is at https://www.darktable.org/resources/camera-support/).\n" -"if you are sure that the camera model is supported, please consider opening an issue\n" +"please check that the camera model that produced the image is supported in " +"darktable\n" +"(list of supported cameras is at https://www.darktable.org/resources/camera-" +"support/).\n" +"if you are sure that the camera model is supported, please consider opening " +"an issue\n" "at https://github.com/darktable-org/darktable" msgstr "" "darktable konnte „%s“ nicht laden und wechsle zurück zum Leuchttisch.\n" "\n" -"Bitte prüfe, ob das Kameramodell, mit dem das Bild aufgenommen wurde, in darktable unterstützt wird\n" -"(Liste der unterstützten Kameras befindet sich unter https://www.darktable.org/resources/camera-support/).\n" -"Wenn Du sicher bist, dass das Kameramodell unterstützt wird, bitte ein „Issue“ auf \n" +"Bitte prüfe, ob das Kameramodell, mit dem das Bild aufgenommen wurde, in " +"darktable unterstützt wird\n" +"(Liste der unterstützten Kameras befindet sich unter https://www.darktable." +"org/resources/camera-support/).\n" +"Wenn Du sicher bist, dass das Kameramodell unterstützt wird, bitte ein " +"„Issue“ auf \n" "https://github.com/darktable-org/darktable öffnen." -#: ../src/views/darkroom.c:625 +#: ../src/views/darkroom.c:521 #, c-format msgctxt "darkroom" msgid "loading `%s' ..." msgstr "Lade „%s”…" -#: ../src/views/darkroom.c:749 ../src/views/darkroom.c:2496 +#: ../src/views/darkroom.c:668 ../src/views/darkroom.c:2335 msgid "gamut check" msgstr "Gamut überprüfen" -#: ../src/views/darkroom.c:749 +#: ../src/views/darkroom.c:668 msgid "soft proof" msgstr "Softproof" #. fail :( -#: ../src/views/darkroom.c:787 ../src/views/print.c:356 +#: ../src/views/darkroom.c:708 ../src/views/print.c:356 msgid "no image to open!" msgstr "Kein Bild zum Öffnen!" -#: ../src/views/darkroom.c:1331 +#: ../src/views/darkroom.c:1232 msgid "no user-defined presets for favorite modules were found" -msgstr "keine benutzerdefinierten Voreinstellungen für Favoriten-Module gefunden" +msgstr "" +"keine benutzerdefinierten Voreinstellungen für Favoriten-Module gefunden" -#: ../src/views/darkroom.c:1476 +#: ../src/views/darkroom.c:1377 msgid "no styles have been created yet" msgstr "es wurde noch kein Stil angelegt" -#: ../src/views/darkroom.c:2331 ../src/views/darkroom.c:2332 +#: ../src/views/darkroom.c:2170 ../src/views/darkroom.c:2171 msgid "quick access to presets" msgstr "Schnellzugriff auf Voreinstellungen" -#: ../src/views/darkroom.c:2340 +#: ../src/views/darkroom.c:2179 msgid "quick access to styles" msgstr "Schnellzugriff auf Stile" -#: ../src/views/darkroom.c:2342 +#: ../src/views/darkroom.c:2181 msgid "quick access for applying any of your styles" msgstr "Schnellzugriff, um einen Stil anzuwenden" -#: ../src/views/darkroom.c:2348 +#: ../src/views/darkroom.c:2187 msgid "second window" msgstr "zweites Fenster" -#: ../src/views/darkroom.c:2351 +#: ../src/views/darkroom.c:2190 msgid "display a second darkroom image window" msgstr "ein zweites Dunkelkammer-Vorschaufenster anzeigen" -#: ../src/views/darkroom.c:2356 +#: ../src/views/darkroom.c:2195 msgid "color assessment" msgstr "Farbbeurteilung" -#: ../src/views/darkroom.c:2359 +#: ../src/views/darkroom.c:2198 msgid "toggle ISO 12646 color assessment conditions" msgstr "Bedingungen zur Farbbeurteilung nach ISO 12646 herstellen" -#: ../src/views/darkroom.c:2372 +#: ../src/views/darkroom.c:2211 msgid "" "toggle raw over exposed indication\n" "right click for options" msgstr "" -"Anzeige von Über-/Unterbelichtung der Raw-Werte,\n" +"Anzeige von Über-/Unterbelichtung der RAW-Werte,\n" "Rechtsklick für Einstellungen" -#: ../src/views/darkroom.c:2388 +#: ../src/views/darkroom.c:2227 msgid "select how to mark the clipped pixels" msgstr "auswählen, wie überbelichtete Pixel markiert werden sollen" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with CFA color" msgstr "mit CFA-Farben markieren" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with solid color" msgstr "mit fester Farbe markieren" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "false color" msgstr "Falschfarben" -#: ../src/views/darkroom.c:2393 ../src/views/darkroom.c:2444 +#: ../src/views/darkroom.c:2232 ../src/views/darkroom.c:2283 msgid "color scheme" msgstr "Farbzusammenstellung" -#: ../src/views/darkroom.c:2394 +#: ../src/views/darkroom.c:2233 msgid "" "select the solid color to indicate over exposure.\n" "will only be used if mode = mark with solid color" @@ -23400,27 +25496,27 @@ "feste Farbe zum Markieren der Überbelichtung auswählen.\n" "wird nur im entsprechenden Modus benutzt" -#: ../src/views/darkroom.c:2397 +#: ../src/views/darkroom.c:2236 msgctxt "solidcolor" msgid "red" msgstr "Rot" -#: ../src/views/darkroom.c:2398 +#: ../src/views/darkroom.c:2237 msgctxt "solidcolor" msgid "green" msgstr "Grün" -#: ../src/views/darkroom.c:2399 +#: ../src/views/darkroom.c:2238 msgctxt "solidcolor" msgid "blue" msgstr "Blau" -#: ../src/views/darkroom.c:2400 +#: ../src/views/darkroom.c:2239 msgctxt "solidcolor" msgid "black" msgstr "Schwarz" -#: ../src/views/darkroom.c:2408 +#: ../src/views/darkroom.c:2247 msgid "" "threshold of what shall be considered overexposed\n" "1.0 - white level\n" @@ -23430,7 +25526,7 @@ "1,0 – Weißwert\n" "0,0 – Schwarzwert" -#: ../src/views/darkroom.c:2422 +#: ../src/views/darkroom.c:2261 msgid "" "toggle clipping indication\n" "right click for options" @@ -23438,11 +25534,11 @@ "Anzeige von Über-/Unterschreitung der Farbwerte,\n" "Rechtsklick für Einstellungen" -#: ../src/views/darkroom.c:2437 +#: ../src/views/darkroom.c:2276 msgid "clipping preview mode" msgstr "Abschneidevoransicht" -#: ../src/views/darkroom.c:2438 +#: ../src/views/darkroom.c:2277 msgid "" "select the metric you want to preview\n" "full gamut is the combination of all other modes" @@ -23450,40 +25546,41 @@ "Legt die angezeigte Metrik fest. \n" "„voller Gamut” ist eine Kombination aller anderen Metriken" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "full gamut" msgstr "voller Gamut" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "any RGB channel" msgstr "beliebiger RGB-Kanal" # wtf? -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "luminance only" msgstr "nur Luminanz" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "saturation only" msgstr "nur Sättigung" -#: ../src/views/darkroom.c:2445 +#: ../src/views/darkroom.c:2284 msgid "select colors to indicate clipping" -msgstr "Farben wählen, mit denen über-/unterbelichtete Bereiche gekennzeichnet werden" +msgstr "" +"Farben wählen, mit denen über-/unterbelichtete Bereiche gekennzeichnet werden" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "red & blue" msgstr "Rot & Blau" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "purple & green" msgstr "Violett & Grün" -#: ../src/views/darkroom.c:2454 +#: ../src/views/darkroom.c:2293 msgid "lower threshold" msgstr "unterer Schwellwert" -#: ../src/views/darkroom.c:2455 +#: ../src/views/darkroom.c:2294 msgid "" "clipping threshold for the black point,\n" "in EV, relatively to white (0 EV).\n" @@ -23494,7 +25591,8 @@ "typical color glossy prints produce black at -8.00 EV,\n" "typical B&W glossy prints produce black at -9.00 EV." msgstr "" -"Abschneidewert für den Schwarzpunkt in Blendenstufen (EV) relativ zu weiß (0 EV).\n" +"Abschneidewert für den Schwarzpunkt in Blendenstufen (EV) relativ zu weiß (0 " +"EV).\n" "8-Bit sRGB schneidet bei -12,69 EV ab.\n" "8-Bits Adobe RGB schneidet bei -19,79 EV ab.\n" "16-Bit sRGB schneidet bei -20,69 EV ab.\n" @@ -23502,12 +25600,12 @@ "Typische Farbglanzdrucke erzeugen Schwarz bei -8,00 EV.\n" "Typische Hochglanz-Schwarz-Weiß- Drucke erzeugen Schwarz bei -9,00 EV." -#: ../src/views/darkroom.c:2471 +#: ../src/views/darkroom.c:2310 msgid "upper threshold" msgstr "oberer Schwellwert" # wft: peak medium luminance -#: ../src/views/darkroom.c:2473 +#: ../src/views/darkroom.c:2312 #, no-c-format msgid "" "clipping threshold for the white point.\n" @@ -23516,11 +25614,11 @@ "Abschneidewert für den Weißpunkt.\n" "100% ist die mittlere Spitzenluminanz." -#: ../src/views/darkroom.c:2485 +#: ../src/views/darkroom.c:2324 msgid "softproof" msgstr "Softproof" -#: ../src/views/darkroom.c:2488 +#: ../src/views/darkroom.c:2327 msgid "" "toggle softproofing\n" "right click for profile options" @@ -23528,7 +25626,7 @@ "Softproof,\n" "Rechtsklick für Einstellungen" -#: ../src/views/darkroom.c:2499 +#: ../src/views/darkroom.c:2338 msgid "" "toggle gamut checking\n" "right click for profile options" @@ -23536,45 +25634,54 @@ "Gamutüberprüfung,\n" "Rechtsklick für Einstellungen" -#: ../src/views/darkroom.c:2524 ../src/views/darkroom.c:2526 ../src/views/darkroom.c:2540 -#: ../src/views/darkroom.c:2541 ../src/views/darkroom.c:2542 ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2365 ../src/views/darkroom.c:2367 +#: ../src/views/darkroom.c:2381 ../src/views/darkroom.c:2382 +#: ../src/views/darkroom.c:2383 ../src/views/darkroom.c:2384 #: ../src/views/lighttable.c:1182 ../src/views/lighttable.c:1184 msgid "profiles" msgstr "Profile" -#: ../src/views/darkroom.c:2526 ../src/views/lighttable.c:1184 +#: ../src/views/darkroom.c:2367 ../src/views/lighttable.c:1184 msgid "preview intent" msgstr "Vorschau Intent" -#: ../src/views/darkroom.c:2540 ../src/views/lighttable.c:1188 +#: ../src/views/darkroom.c:2381 ../src/views/lighttable.c:1188 msgid "display profile" msgstr "Anzeigeprofil" -#: ../src/views/darkroom.c:2541 ../src/views/lighttable.c:1191 +#: ../src/views/darkroom.c:2382 ../src/views/lighttable.c:1191 msgid "preview display profile" msgstr "Vorschau Anzeigeprofil" -#: ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2384 msgid "histogram profile" msgstr "Histogrammprofil" -#: ../src/views/darkroom.c:2605 ../src/views/lighttable.c:1225 +#: ../src/views/darkroom.c:2391 +msgid "second preview window ISO 12646 color assessment" +msgstr "Farbbeurteilung nach ISO 12646 für zweites Vorschaufenster" + +#: ../src/views/darkroom.c:2393 +msgid "color assessment second preview" +msgstr "Farbbeurteilung für zweites Vorschaufenster" + +#: ../src/views/darkroom.c:2452 ../src/views/lighttable.c:1225 msgid "display ICC profiles" msgstr "Anzeige ICC Profil" -#: ../src/views/darkroom.c:2609 ../src/views/lighttable.c:1229 +#: ../src/views/darkroom.c:2456 ../src/views/lighttable.c:1229 msgid "preview display ICC profiles" msgstr "Vorschau Anzeige ICC Profil" -#: ../src/views/darkroom.c:2613 +#: ../src/views/darkroom.c:2460 msgid "softproof ICC profiles" msgstr "Softproof ICC Profil" -#: ../src/views/darkroom.c:2617 +#: ../src/views/darkroom.c:2464 msgid "histogram and color picker ICC profiles" msgstr "Histogramm und Pipette ICC Profile" -#: ../src/views/darkroom.c:2651 +#: ../src/views/darkroom.c:2497 msgid "" "toggle guide lines\n" "right click for guides options" @@ -23583,135 +25690,137 @@ "Rechtsklick für Hilfslinienoptionen" #. Fullscreen preview key -#: ../src/views/darkroom.c:2668 +#: ../src/views/darkroom.c:2514 msgid "full preview" msgstr "Vollbildvorschau" #. add an option to allow skip mouse events while other overlays are consuming mouse actions -#: ../src/views/darkroom.c:2672 +#: ../src/views/darkroom.c:2518 msgid "force pan/zoom/rotate with mouse" msgstr "zoomen, schieben und rotieren mit Maus erzwingen" #. Zoom shortcuts -#: ../src/views/darkroom.c:2684 +#: ../src/views/darkroom.c:2530 msgid "zoom close-up" msgstr "Zoom auf 100%" #. zoom in/out #. zoom in/out/min/max -#: ../src/views/darkroom.c:2687 ../src/views/lighttable.c:1283 +#: ../src/views/darkroom.c:2533 ../src/views/lighttable.c:1283 msgid "zoom in" msgstr "heranzoomen" -#: ../src/views/darkroom.c:2688 ../src/views/lighttable.c:1285 +#: ../src/views/darkroom.c:2534 ../src/views/lighttable.c:1285 msgid "zoom out" msgstr "herauszoomen" #. Shortcut to skip images -#: ../src/views/darkroom.c:2691 +#: ../src/views/darkroom.c:2537 msgid "image forward" msgstr "nächstes Bild" -#: ../src/views/darkroom.c:2692 +#: ../src/views/darkroom.c:2538 msgid "image back" msgstr "vorheriges Bild" #. cycle overlay colors -#: ../src/views/darkroom.c:2695 +#: ../src/views/darkroom.c:2541 msgid "cycle overlay colors" msgstr "Überlagerungsfarbe zyklisch ändern" #. toggle visibility of drawn masks for current gui module -#: ../src/views/darkroom.c:2698 +#: ../src/views/darkroom.c:2544 msgid "show drawn masks" msgstr "gezeichnete Maske anzeigen" #. brush size +/- -#: ../src/views/darkroom.c:2701 +#: ../src/views/darkroom.c:2547 msgid "increase brush size" msgstr "Größe des Pinsels erhöhen" -#: ../src/views/darkroom.c:2702 +#: ../src/views/darkroom.c:2548 msgid "decrease brush size" msgstr "Größe des Pinsels verringern" #. brush hardness +/- -#: ../src/views/darkroom.c:2705 +#: ../src/views/darkroom.c:2551 msgid "increase brush hardness" msgstr "Härte des Pinsels erhöhen" -#: ../src/views/darkroom.c:2706 +#: ../src/views/darkroom.c:2552 msgid "decrease brush hardness" msgstr "Härte des Pinsels verringern" #. brush opacity +/- -#: ../src/views/darkroom.c:2709 +#: ../src/views/darkroom.c:2555 msgid "increase brush opacity" msgstr "Deckkraft des Pinsels erhöhen" -#: ../src/views/darkroom.c:2710 +#: ../src/views/darkroom.c:2556 msgid "decrease brush opacity" msgstr "Deckkraft des Pinsels verringern" #. undo/redo -#: ../src/views/darkroom.c:2713 ../src/views/lighttable.c:1275 ../src/views/map.c:2115 +#: ../src/views/darkroom.c:2559 ../src/views/lighttable.c:1275 +#: ../src/views/map.c:2115 msgid "undo" msgstr "rückgängig" -#: ../src/views/darkroom.c:2714 ../src/views/lighttable.c:1276 ../src/views/map.c:2116 +#: ../src/views/darkroom.c:2560 ../src/views/lighttable.c:1276 +#: ../src/views/map.c:2116 msgid "redo" msgstr "wiederherstellen" #. change the precision for adjusting sliders with keyboard shortcuts -#: ../src/views/darkroom.c:2717 +#: ../src/views/darkroom.c:2563 msgid "change keyboard shortcut slider precision" msgstr "Schrittweite für Schieberegler via Shortcut ändern" -#: ../src/views/darkroom.c:3989 +#: ../src/views/darkroom.c:3565 msgid "keyboard shortcut slider precision: fine" msgstr "Reglerschrittweite: fein" -#: ../src/views/darkroom.c:3991 +#: ../src/views/darkroom.c:3567 msgid "keyboard shortcut slider precision: normal" msgstr "Reglerschrittweite: normal" -#: ../src/views/darkroom.c:3993 +#: ../src/views/darkroom.c:3569 msgid "keyboard shortcut slider precision: coarse" msgstr "Reglerschrittweite: grob" -#: ../src/views/darkroom.c:4009 +#: ../src/views/darkroom.c:3584 msgid "switch to lighttable" msgstr "zum Leuchttisch wechseln" -#: ../src/views/darkroom.c:4010 ../src/views/lighttable.c:882 +#: ../src/views/darkroom.c:3585 ../src/views/lighttable.c:882 msgid "zoom in the image" msgstr "im Bild zoomen" -#: ../src/views/darkroom.c:4011 +#: ../src/views/darkroom.c:3586 msgid "unbounded zoom in the image" msgstr "im Bild unbegrenzt Zoomen" -#: ../src/views/darkroom.c:4012 +#: ../src/views/darkroom.c:3587 msgid "zoom to 100% 200% and back" msgstr "auf zoomen 100%, 200% und zurück" -#: ../src/views/darkroom.c:4013 ../src/views/lighttable.c:885 +#: ../src/views/darkroom.c:3588 ../src/views/lighttable.c:885 msgid "pan a zoomed image" msgstr "Ausschnitt im gezoomten Bild verschieben" -#: ../src/views/darkroom.c:4015 ../src/views/lighttable.c:927 +#: ../src/views/darkroom.c:3590 ../src/views/lighttable.c:927 msgid "[modules] expand module without closing others" msgstr "Modul einblenden, ohne andere zu schließen" -#: ../src/views/darkroom.c:4016 ../src/views/lighttable.c:928 +#: ../src/views/darkroom.c:3591 ../src/views/lighttable.c:928 msgid "[modules] expand module and close others" msgstr "[Module] Modul einblenden und andere schließen" -#: ../src/views/darkroom.c:4018 +#: ../src/views/darkroom.c:3593 msgid "[modules] rename module" msgstr "[Module] Modul umbenennen" -#: ../src/views/darkroom.c:4020 +#: ../src/views/darkroom.c:3595 msgid "[modules] change module position in pipe" msgstr "Modul an eine andere Position im Bearbeitungsstapel verschieben" @@ -23856,58 +25965,61 @@ msgid "print" msgstr "Drucken" -#: ../src/views/slideshow.c:353 +#: ../src/views/slideshow.c:355 msgid "end of images" msgstr "Ende der Bilderfolge" -#: ../src/views/slideshow.c:374 +#: ../src/views/slideshow.c:376 msgid "end of images. press any key to return to lighttable mode" -msgstr "Letztes Bild. Eine beliebige Taste drücken, um zurück zum Leuchttisch zu gelangen" +msgstr "" +"Letztes Bild. Eine beliebige Taste drücken, um zurück zum Leuchttisch zu " +"gelangen" -#: ../src/views/slideshow.c:504 +#: ../src/views/slideshow.c:509 msgid "waiting to start slideshow" msgstr "Warte auf den Start der Diashow" -#: ../src/views/slideshow.c:640 ../src/views/slideshow.c:661 ../src/views/slideshow.c:669 +#: ../src/views/slideshow.c:678 ../src/views/slideshow.c:705 +#: ../src/views/slideshow.c:713 msgid "slideshow paused" msgstr "Diashow pausiert" -#: ../src/views/slideshow.c:648 ../src/views/slideshow.c:655 +#: ../src/views/slideshow.c:686 ../src/views/slideshow.c:696 #, c-format msgid "slideshow delay set to %d second" msgid_plural "slideshow delay set to %d seconds" msgstr[0] "Diashow-Wartezeit auf %d Sekunde gesetzt" msgstr[1] "Diashow-Wartezeit auf %d Sekunden gesetzt" -#: ../src/views/slideshow.c:684 +#: ../src/views/slideshow.c:728 msgid "start and stop" msgstr "Start und Stop" -#: ../src/views/slideshow.c:685 +#: ../src/views/slideshow.c:730 msgid "exit slideshow" msgstr "Diashow beenden" -#: ../src/views/slideshow.c:688 +#: ../src/views/slideshow.c:734 msgid "slow down" msgstr "Geschwindigkeit verringern" -#: ../src/views/slideshow.c:691 +#: ../src/views/slideshow.c:738 msgid "speed up" msgstr "Geschwindigkeit erhöhen" -#: ../src/views/slideshow.c:695 +#: ../src/views/slideshow.c:743 msgid "step forward" msgstr "nächstes Bild" -#: ../src/views/slideshow.c:696 +#: ../src/views/slideshow.c:745 msgid "step back" msgstr "vorheriges Bild" -#: ../src/views/slideshow.c:702 +#: ../src/views/slideshow.c:753 msgid "go to next image" msgstr "zum nächsten Bild gehen" -#: ../src/views/slideshow.c:703 +#: ../src/views/slideshow.c:755 msgid "go to previous image" msgstr "zum vorherigen Bild gehen" @@ -23920,5905 +26032,49 @@ msgid "no camera with tethering support available for use..." msgstr "keine Kamera mit Tethering-Unterstützung verfügbar…" -#: ../src/views/view.c:1193 +#: ../src/views/view.c:1352 msgid "left click" msgstr "Linksklick" -#: ../src/views/view.c:1196 +#: ../src/views/view.c:1355 msgid "right click" msgstr "Rechtsklick" -#: ../src/views/view.c:1199 +#: ../src/views/view.c:1358 msgid "middle click" msgstr "Mittelklick" -#: ../src/views/view.c:1205 +#: ../src/views/view.c:1364 msgid "left double-click" msgstr "Doppelklick links" -#: ../src/views/view.c:1208 +#: ../src/views/view.c:1367 msgid "right double-click" msgstr "Doppelklick rechts" -#: ../src/views/view.c:1211 +#: ../src/views/view.c:1370 msgid "drag and drop" msgstr "ziehen und ablegen" -#: ../src/views/view.c:1214 +#: ../src/views/view.c:1373 msgid "left click+drag" msgstr "Linksklick+ziehen" -#: ../src/views/view.c:1217 +#: ../src/views/view.c:1376 msgid "right click+drag" msgstr "Rechtsklick+ziehen" -#: ../src/views/view.c:1237 +#: ../src/views/view.c:1398 msgid "darktable - accels window" msgstr "darktable - Beschlunigungsfenster" -#: ../src/views/view.c:1285 +#: ../src/views/view.c:1447 msgid "switch to a classic window which will stay open after key release" -msgstr "Umschalten zum klassischen Fenster, das nach der Tastenbetätigung geöffnet bleibt" +msgstr "" +"Umschalten zum klassischen Fenster, das nach der Tastenbetätigung geöffnet " +"bleibt" #. we add the mouse actions too -#: ../src/views/view.c:1344 +#: ../src/views/view.c:1514 msgid "mouse actions" msgstr "Mausaktionen" - -#~ msgid "_yes, physically delete" -#~ msgstr "_ja, physisch löschen" - -#~ msgid "_no, only remove from library" -#~ msgstr "_nein, nur aus Bibliothek entfernen" - -#, c-format -#~ msgid "" -#~ "darktable loads external ICC profiles from\n" -#~ "%s\n" -#~ "and\n" -#~ "%s" -#~ msgstr "" -#~ "darktable lädt externe ICC profile von\n" -#~ "%s\n" -#~ "und\n" -#~ "%s" - -#, c-format -#~ msgid "ICC profiles in %s or %s" -#~ msgstr "ICC-Profile in %s oder %s" - -#, c-format -#~ msgid "output ICC profiles in %s or %s" -#~ msgstr "Ausgabe-ICC-Profile in %s oder %s" - -#, c-format -#~ msgid "display ICC profiles in %s or %s" -#~ msgstr "Anzeige-ICC-Profile in %s oder %s" - -#, c-format -#~ msgid "preview display ICC profiles in %s or %s" -#~ msgstr "Vorschau Anzeige-ICC-Profile in %s oder %s" - -#, c-format -#~ msgid "softproof ICC profiles in %s or %s" -#~ msgstr "Softproof-ICC-Profile in %s oder %s" - -#~ msgid "pen pressure control for brush masks" -#~ msgstr "Drucksensitivität des Stiftes für Pinsel-Masken" - -#~ msgid "smoothing of brush strokes" -#~ msgstr "Begradigen von Pinselstrichen" - -#~ msgid "[dual demosaic_cl] internal problem" -#~ msgstr "[dual demosaic_cl] internal problem" - -#~ msgid "override automatic scale" -#~ msgstr "automatische Skalierung übersteuern" - -#~ msgctxt "preferences" -#~ msgid "rgb parade" -#~ msgstr "RGB Parade" - -#, c-format -#~ msgid "could not send %s to trash%s%s" -#~ msgstr "Konnte „%s” nicht in den Papierkorb verschieben%s%s" - -#~ msgid "physically delete all files" -#~ msgstr "alle Dateien physisch von der Festplatte löschen" - -#~ msgid "skip to next file" -#~ msgstr "zur nächsten Datei gehen" - -#~ msgid "stop process" -#~ msgstr "Prozess abbrechen" - -#~ msgid "blend`pickers" -#~ msgstr "blend`pickers" - -#~ msgid "set the custom aspect ratio" -#~ msgstr "Seitenverhältnis manuell setzen" - -#~ msgid "legacy flag. set for all new images" -#~ msgstr "altes Flag, für alle neuen Bilder gesetzt" - -#~ msgid "rgb colors" -#~ msgstr "RGB Farben" - -#~ msgid "rgb parade" -#~ msgstr "RGB Parade" - -#~ msgid "rotate 90 degrees ccw" -#~ msgstr "um 90° gegen den Uhrzeigersinn drehen" - -#~ msgid "rotate 90 degrees cw" -#~ msgstr "um 90° im Uhrzeigersinn drehen" - -#~ msgid "input devices reinitialised" -#~ msgstr "Eingabegerät neu initialisiert " - -#~ msgid "3:2" -#~ msgstr "3:2" - -#~ msgid "tone equalizer in/out buffer are ill-aligned, please report the bug to the developers" -#~ msgstr "" -#~ "Ein-/Ausgabepuffer des Tonwert-Equalizer ist schlecht ausgerichtet, bitte melde den Fehler an die Entwickler" - -#, c-format -#~ msgid "skipped blending in module '%s': working area mismatch" -#~ msgstr "Überblenden in Modul „%s” ausgelassen: Arbeitsbereich abweichend" - -#~ msgid "could not allocate buffer for blending" -#~ msgstr "konnte keinen Puffer zum Überblenden reservieren" - -#~ msgid "apply mask in normal or inverted mode" -#~ msgstr "Maske normal oder invertiert anwenden" - -#~ msgid "maximum ISO value" -#~ msgstr "Maximal-ISO-Wert" - -#~ msgid "size is relative to" -#~ msgstr "Größe ist relativ zu" - -#~ msgid "geometry" -#~ msgstr "Geometrie" - -#~ msgid "lensfun" -#~ msgstr "lensfun" - -#~ msgid "embed icc profiles" -#~ msgstr "ICC-Profil einbinden" - -#, c-format -#~ msgid "at least one new tagname (%s) already exists, aborting." -#~ msgstr "Mindestens ein neues Tag (%s) existiert bereits. Abbruch." - -#~ msgctxt "preferences" -#~ msgid "always bilinear (fast)" -#~ msgstr "immer bilinear (schnell)" - -#~ msgctxt "preferences" -#~ msgid "full (possibly slow)" -#~ msgstr "vollständig (eventuell langsam)" - -#~ msgid "demosaicing for zoomed out darkroom mode" -#~ msgstr "Methode zum Entrastern in der herausgezoomten Dunkelkammer" - -#~ msgid "" -#~ "demosaicer when not viewing 1:1 in darkroom mode:\n" -#~ " - 'bilinear': is fast but slightly blurry.\n" -#~ " - 'default': uses the default demosaicer for the used sensor (RCD or Markesteijn).\n" -#~ " - 'full': will use exactly the settings as for full-size export." -#~ msgstr "" -#~ "Demosaicereinstellung falls nicht 1:1 im Dunkelkammer-Modus betrachtet wird: \n" -#~ " - „bilinear“ ist schnell, aber etwas unscharf. \n" -#~ " - „Standard“ verwendet den Standard-Demosaizer für den verwendeten Sensor (RCD oder Markesteijn). \n" -#~ "- „voll“ verwendet genau die Einstellungen wie beim Export in voller Größe." - -#~ msgid "red black white" -#~ msgstr "Rot-Schwarz-Weiß" - -#~ msgid "black white and skin tones" -#~ msgstr "Schwarz-Weiß und Hautfarben" - -#~ msgid "black & white film" -#~ msgstr "Schwarz-Weiß-Film" - -#~ msgid "add local contrast" -#~ msgstr "Lokalen Kontrast erhöhen" - -#~ msgid "fast sharpness" -#~ msgstr "Schärfe - schnell" - -#~ msgid "fast local contrast" -#~ msgstr "Lokaler Kontrast - schnell" - -#~ msgid "autodetect" -#~ msgstr "automatisch erkennen" - -#, c-format -#~ msgid "** %s" -#~ msgstr "** %s" - -#~ msgid "[dual demosaic] can't allocate internal buffers" -#~ msgstr "[dual demosaic] can't allocate internal buffers" - -#~ msgid "[lmmse_demosaic] too small area" -#~ msgstr "[lmmse_demosaic] Bereich zu klein" - -#~ msgid "[rcd_demosaic] too small area" -#~ msgstr "[rcd_demosaic] Bereich zu klein" - -#~ msgid "sRGB (e.g. JPG)" -#~ msgstr "sRGB (z.B. JPEG)" - -#~ msgid "" -#~ "click and drag to add point\n" -#~ "scroll to change size - shift+scroll to change strength - ctrl+scroll to change direction" -#~ msgstr "" -#~ "Klick und ziehen fügt Punkt hinzu.\n" -#~ "Scrollen: Größe ändern - Shift+Scrollen: Stärke ändern - Strg+Scrollen: Richtung ändern" - -#~ msgid "" -#~ "click to add line\n" -#~ "scroll to change size - shift+scroll to change strength - ctrl+scroll to change direction" -#~ msgstr "" -#~ "Mausklick fügt eine Linie hinzu.\n" -#~ "Scrollen: Größe ändern - Shift+Scrollen: Stärke ändern - Strg+Scrollen: Richtung ändern" - -#~ msgid "" -#~ "click to add curve\n" -#~ "scroll to change size - shift+scroll to change strength - ctrl+scroll to change direction" -#~ msgstr "" -#~ "Mausklick fügt eine Kurve hinzu.\n" -#~ "Scrollen: Größe ändern - Shift+Scrollen: Stärke ändern - Strg+Scrollen: Richtung ändern" - -#~ msgid "" -#~ "ctrl+click: add node - right click: remove path\n" -#~ "ctrl+alt+click: toggle line/curve" -#~ msgstr "" -#~ "Strg+Klick: Knoten hinzufügen - Rechtsklick: Pfad löschen\n" -#~ "Strg+Alt+Klick: Gerade/Kurve umschalten" - -#~ msgid "drag to change shape of path" -#~ msgstr "ziehen, um die Form des Pfads zu verändern" - -#~ msgid "drag to adjust warp radius" -#~ msgstr "ziehen, um den Radius der Verformung zu ändern" - -#~ msgid "drag to adjust hardness (center)" -#~ msgstr "ziehen, um die Härte anzupassen (Zentrum)" - -#~ msgid "drag to adjust hardness (feather)" -#~ msgstr "ziehen, um die Härte anzupassen (Rand)" - -#~ msgid "" -#~ "drag to adjust warp strength\n" -#~ "ctrl+click: linear, grow, and shrink" -#~ msgstr "" -#~ "ziehen, um die Stärke der Verformung anzupassen\n" -#~ "Strg+Klick: linear, vergrößern, verkleinern" - -#~ msgctxt "accel" -#~ msgid "acquire" -#~ msgstr "Berechnen" - -#~ msgctxt "accel" -#~ msgid "apply" -#~ msgstr "Anwenden" - -#~ msgid "number of clusters to find in image" -#~ msgstr "" -#~ "Anzahl zusammenhängender Bereiche,\n" -#~ "die im Bild gesucht werden sollen" - -#~ msgid "acquire" -#~ msgstr "berechnen" - -#~ msgid "analyze this image" -#~ msgstr "dieses Bild analysieren" - -#~ msgid "apply previously analyzed image look to this image" -#~ msgstr "Aussehen des zuvor analysierten Bildes auf dieses Bild anwenden" - -#~ msgctxt "equalizer" -#~ msgid "sharpen" -#~ msgstr "schärfen" - -#~ msgid "null" -#~ msgstr "nichts" - -#~ msgid "denoise (strong)" -#~ msgstr "entrauschen (stark)" - -#~ msgid "toggle sticky preview mode" -#~ msgstr "Vorschau ein-/ausschalten" - -#~ msgid "toggle sticky preview mode with focus detection" -#~ msgstr "Vorschau mit Fokuserkennung ein-/ausschalten" - -#~ msgid "focus detection" -#~ msgstr "Fokuserkennung" - -#~ msgid "averaged eigf" -#~ msgstr "gemittelter eigf" - -#~ msgid "eigf" -#~ msgstr "eigf" - -#~ msgid "compress shadows/highlights (eigf): strong" -#~ msgstr "komprimiert Schatten/Spitzlichter (eigf): stark" - -#~ msgid "compress shadows/highlights (eigf): medium" -#~ msgstr "komprimiert Schatten/Spitzlichter (eigf): mittel" - -#~ msgid "compress shadows/highlights (eigf): soft" -#~ msgstr "komprimiert Schatten/Spitzlichter (eigf): gering" - -#~ msgctxt "blendmode" -#~ msgid "Lab L-channel" -#~ msgstr "Lab L-Kanal" - -#~ msgid "lighten modes" -#~ msgstr "aufhellende Modi" - -#~ msgid "darken modes" -#~ msgstr "abdunkelnde Modi" - -#~ msgid "deprecated modes" -#~ msgstr "veraltete Modi" - -#~ msgid "" -#~ "press Del to delete selected shortcut\n" -#~ "double-click to add new shortcut\n" -#~ "start typing for incremental search" -#~ msgstr "" -#~ "Entf drücken, um ausgewählten Shortcut zu löschen\n" -#~ "Doppelklick, um neuen Shortcut festzulegen.\n" -#~ "Tippen, um inkrementelle Suche zu starten" - -#~ msgid "commit changes" -#~ msgstr "Änderungen übernehmen" - -#~ msgid "grouping filter" -#~ msgstr "Gruppierungsfilter" - -#~ msgid "history filter" -#~ msgstr "Statusfilter Verlaufsstapel" - -#~ msgid "local_copy filter" -#~ msgstr "Statusfilter Lokale Kopie" - -#~ msgid "module order filter" -#~ msgstr "Filter Modulsortierung" - -#, c-format -#~ msgid "darktable » %s" -#~ msgstr "darktable » %s" - -#~ msgid "<h1>Sorry,</h1><p>something went wrong. Please try again.</p>" -#~ msgstr "<h1>Entschuldige,</h1><p>irgendwas ist schief gegangen. Bitte versuche es nochmal.</p>" - -#~ msgid "" -#~ "<h1>Thank you,</h1><p>everything should have worked, you can <b>close</b> your browser now and <b>go back</b> " -#~ "to darktable.</p>" -#~ msgstr "" -#~ "<h1>Danke,</h1><p>es sollte alles funktioniert haben, Du kannst den Browser jetzt <b>schließen</b> und in " -#~ "darktable <b>weiter machen</b>.</p>" - -#~ msgid "make this preset auto set values depending on images" -#~ msgstr "automatisch Werte der Voreinstellung bildabhängig anwenden" - -#~ msgid "raw CA correction supports only standard RGB Bayer filter arrays" -#~ msgstr "Raw CA-Korrektur unterstützt nur RGB Bayer Flterarrays" - -#~ msgid "bypassed while zooming in" -#~ msgstr "nicht angewendet beim Hineinzoomen" - -#~ msgid "" -#~ "while calculating the correction parameters the internal maths failed so module is bypassed.\n" -#~ "you can get more info by running darktable via the console." -#~ msgstr "" -#~ "bei der Ermittlung der Korrekturparameter ist die interne Berechnung fehlgeschlagen, so dass das Modul umgangen " -#~ "wird.\n" -#~ "Detailliertere Informationen werden über die Konsole ausgegeben." - -#~ msgid "" -#~ "internals maths found too few data points so restricted the order of the fit to linear.\n" -#~ "you might view bad correction results." -#~ msgstr "" -#~ "Die interne Berechnungsmethode fand zu wenige Datenpunkte, so dass die Ordnung der Anpassung auf linear " -#~ "beschränkt wurde.\n" -#~ "Die Korrektur kann ungenügend sein." - -#~ msgid "" -#~ "to calculate good parameters for raw CA correction we want full sensor data or at least a sensible part of " -#~ "that.\n" -#~ "the image shown in darkroom would look vastly different from developed files so effect is bypassed now." -#~ msgstr "" -#~ "um gute Parameter für die Raw-CA-Korrektur zu berechnen, werden die vollständigen Sensordaten oder zumindest " -#~ "einen sinnvollen Teil davon benötigt.\n" -#~ "Das in Dunkelkammer angezeigte Bild würde ganz anders aussehen als entwickelte Dateien, daher wird der Effekt " -#~ "jetzt umgangen." - -#~ msgid "affect color, brightness and contrast" -#~ msgstr "" -#~ "Color Grading: Farb-, Helligkeits- und Kontrastanpassung \n" -#~ "für Schatten, Mitten und Lichter" - -#~ msgid "crop from top" -#~ msgstr "Zuschnitt von Oben" - -#~ msgid "crop from bottom" -#~ msgstr "Zuschnitt von Unten" - -#~ msgid "" -#~ "histogram\n" -#~ "drag to change black point,\n" -#~ "double-click resets" -#~ msgstr "" -#~ "Histogramm\n" -#~ "Ziehen, um den Schwarzpunkt zu ändern,\n" -#~ "Doppelklick zum Zurücksetzen" - -#~ msgid "" -#~ "histogram\n" -#~ "drag to change exposure,\n" -#~ "double-click resets" -#~ msgstr "" -#~ "Histogramm\n" -#~ "Ziehen, um die Belichtung zu ändern, \n" -#~ "Doppelklick zum Zurücksetzen" - -#~ msgid "128 px" -#~ msgstr "128 px" - -#, c-format -#~ msgid "unsupported working profile %s has been replaced by Rec2020 RGB!\n" -#~ msgstr "Nicht unterstütztes Arbeitsprofil %s wurde durch Rec2020-RGB ersetzt!\n" - -#~ msgid "a4" -#~ msgstr "A4" - -#~ msgid "a3" -#~ msgstr "A3" - -#~ msgid "" -#~ "scroll to coarse-rotate color harmony guide lines\n" -#~ "shift+scroll to fine rotate\n" -#~ "alt+scroll to change harmony type\n" -#~ "shift+alt+scroll to change harmony width\n" -#~ "\n" -#~ "ctrl+scroll to change display height" -#~ msgstr "" -#~ "Scrollen, um die Farbharmonie-Linien grob zu drehen\n" -#~ "Shift+Scrollen für Feinrotation\n" -#~ "Alt+Scrollen, um den Harmonietyp zu ändern\n" -#~ "Shift+Alt+Scrollen zum Ändern der Harmoniebreite\n" -#~ "\n" -#~ "Strg+Scrollen zum Ändern der Anzeigehöhe" - -#~ msgid "show color harmony guide lines" -#~ msgstr "Farbharmonielinien anzeigen" - -#~ msgid "set mode to waveform" -#~ msgstr "zum Waveform-Histogramm wechseln" - -#~ msgid "set mode to rgb parade" -#~ msgstr "zu getrennten RGB-Kanälen wechseln" - -#~ msgid "set mode to vectorscope" -#~ msgstr "zu Vectorscope wechseln" - -#~ msgid "set mode to histogram" -#~ msgstr "zu Histogramm wechseln" - -#~ msgid "show red channel" -#~ msgstr "Rot-Kanal zanzeigen" - -#~ msgid "show green channel" -#~ msgstr "Grün-Kanal anzeigen" - -#~ msgid "show blue channel" -#~ msgstr "Blau-Kanal anzeigen" - -#~ msgid "switch histogram type" -#~ msgstr "Histogramm-Typ umschalten" - -#~ msgid "fit to screen" -#~ msgstr "einpassen" - -#~ msgid "zoom fill" -#~ msgstr "Ansicht füllen" - -#~ msgid "zoom fit" -#~ msgstr "Ansicht einpassen" - -#~ msgctxt "preferences" -#~ msgid "modern" -#~ msgstr "modern" - -#~ msgctxt "preferences" -#~ msgid "legacy" -#~ msgstr "veraltet" - -#~ msgid "auto-apply chromatic adaptation defaults" -#~ msgstr "automatische Einstellungen für chromatische Adaption" - -#~ msgid "" -#~ "legacy performs a basic chromatic adaptation using only the white balance module\n" -#~ "modern uses a combination of white balance module and color calibration module, with improved color science for " -#~ "chromatic adaptation" -#~ msgstr "" -#~ "„veraltet” bewirkt lediglich eine grundlegende chromatische Adaption ausschließlich mit dem „Weißabgleich” " -#~ "Modul. \n" -#~ "„modern” kombiniert das „Weißabgleich” Modul mit „Farbkalibrierung”, um eine chromatische Adaption mit " -#~ "verbesserter Farbbehandlung durchzuführen" - -#~ msgid "modules: default" -#~ msgstr "Module: Standard" - -#~ msgctxt "modulegroup" -#~ msgid "technical" -#~ msgstr "Technisch" - -#~ msgid "ldr" -#~ msgstr "LDR" - -#~ msgid "hdr" -#~ msgstr "HDR" - -#~ msgid "add image to selection or remove" -#~ msgstr "Bild zur Auswahl hinzufügen oder entfernen" - -#, c-format -#~ msgid "double click to reset to `%f'" -#~ msgstr "Doppelklick, um auf „%f” zurückzusetzen" - -#~ msgid "no image selected !" -#~ msgstr "Kein Bild ausgewählt!" - -#~ msgid "" -#~ "restore default shortcuts\n" -#~ " or as at startup\n" -#~ " or when the configuration dialog was opened\n" -#~ msgstr "" -#~ "Standard-Shortcuts wiederherstellen\n" -#~ " oder wie beim Start\n" -#~ " oder wie beim Öffnen des Einstellungsdialogs\n" - -#~ msgid "no embedded metadata and lensfun disabled" -#~ msgstr "keine eingebetteten Metadaten vorhandne und lensfun deaktiviert" - -#~ msgid "" -#~ "embedded lens correction metadata is not available\n" -#~ "and darktable is compiled without lensfun" -#~ msgstr "" -#~ "Keine eingebettete Objektivkorrektur-Metadaten verfügbar\n" -#~ "und darktable wird ohne lensfun kompiliert" - -#~ msgid "actual selection" -#~ msgstr "aktuelle Auswahl" - -#~ msgid "allow to pan & zoom while editing masks" -#~ msgstr "erlaube Verschieben und Zoomen während Maskenbearbeitung" - -#~ msgctxt "preferences" -#~ msgid "on startup" -#~ msgstr "beim Start" - -#~ msgctxt "preferences" -#~ msgid "on both" -#~ msgstr "beim Start und beim Beenden" - -#~ msgctxt "preferences" -#~ msgid "on startup (don't ask)" -#~ msgstr "beim Start (ohne Nachfrage)" - -#~ msgctxt "preferences" -#~ msgid "on close (don't ask)" -#~ msgstr "beim Beenden (ohne Nachfrage)" - -#~ msgctxt "preferences" -#~ msgid "on both (don't ask)" -#~ msgstr "beim Start und beim Beenden (ohne Nachfrage)" - -#~ msgid "check for database maintenance" -#~ msgstr "prüfen, ob Datenbankwartung notwendig" - -#~ msgid "this option indicates when to check database fragmentation and perform maintenance" -#~ msgstr "" -#~ "Diese Option bestimmt, zu welchem Zeitpunkt die Datenbank auf Fragmentierung überprüft und gegebenenfalls " -#~ "gewartet wird." - -#~ msgid "database fragmentation ratio threshold" -#~ msgstr "Grenzwert für die Datenbankfragmentierungsrate" - -#~ msgid "fragmentation ratio above which to ask or carry out automatically database maintenance" -#~ msgstr "" -#~ "Fragmentierungsrate oberhalb derer der Nutzer gefragt wird, ob eine Wartung der Datenbank vorgenommen werden " -#~ "soll." - -#~ msgid "recovery" -#~ msgstr "Wiederherstellung" - -#~ msgid "click later to be asked on next startup" -#~ msgstr "„später” klicken, um beim nächsten Start gefragt zu werden" - -#~ msgid "click later to be asked when closing darktable" -#~ msgstr "„später” klicken, um beim Beenden gefragt zu werden" - -#~ msgid "click later to be asked next time when closing darktable" -#~ msgstr "„später” klicken, um beim Beenden nochmals gefragt zu werden" - -#, c-format -#~ msgid "" -#~ "the database could use some maintenance\n" -#~ "\n" -#~ "there's <span style='italic'>%s</span> to be freed\n" -#~ "\n" -#~ "do you want to proceed now?\n" -#~ "\n" -#~ "%s\n" -#~ "you can always change maintenance preferences in core options" -#~ msgstr "" -#~ "Die Datenbank benötigt eine Wartung\n" -#~ "\n" -#~ "<span style=\"italic\">%s</span> können freigegeben werden.\n" -#~ "\n" -#~ "Jetzt fortfahren?\n" -#~ "\n" -#~ "%s\n" -#~ "Einstellungen zur Datenbankwartung können unter „Speichern” in den darktable-Voreinstellungen vorgenommen " -#~ "werden." - -#~ msgid "darktable - schema maintenance" -#~ msgstr "darktable - Datenbank Wartung" - -#~ msgid "later" -#~ msgstr "später" - -#~ msgid "AVIF (8/10/12-bit)" -#~ msgstr "AVIF (8/10/12-bit)" - -#~ msgid "OpenEXR (16/32-bit float)" -#~ msgstr "OpenEXR (16/32bit Fließkomma)" - -#~ msgid "32 bit" -#~ msgstr "32 bit" - -#~ msgid "J2K" -#~ msgstr "J2K" - -#~ msgid "PFM (float)" -#~ msgstr "PFM (Fließkomma)" - -#~ msgid "PNG (8/16-bit)" -#~ msgstr "PNG (8/16 Bit)" - -#~ msgid "TIFF (8/16/32-bit)" -#~ msgstr "TIFF (8/16/32 Bit)" - -#~ msgid "WebP (8-bit)" -#~ msgstr "WebP (8 Bit)" - -#~ msgid "xcf" -#~ msgstr "xcf" - -#~ msgid "set strength of reconstruction in regions with all photosites clipped" -#~ msgstr "Stärke der Rekonstruktion in Bereichen, in denen alle Kanäle Clipping aufweisen" - -#, no-c-format -#~ msgid "preview is only possible for zoom lower than 200%%" -#~ msgstr "Vorschau ist nur bei Zoomstufe kleiner 200% möglich" - -#~ msgid "v3.0" -#~ msgstr "V3.0" - -#, c-format -#~ msgid "%d image of %d (#%d) in current collection is selected" -#~ msgstr "%d Bild von %d (#%d) ist in der aktuellen Sammlung ausgewählt" - -#, c-format -#~ msgid "%d image of %d in current collection is selected" -#~ msgid_plural "%d images of %d in current collection are selected" -#~ msgstr[0] "%d Bild von %d ist in der aktuellen Sammlung ausgewählt" -#~ msgstr[1] "%d Bilder von %d sind in der aktuellen Sammlung ausgewählt" - -#~ msgid "xmp" -#~ msgstr "XMP-Begleitdateien" - -#, c-format -#~ msgid "error: can't open xmp file %s" -#~ msgstr "Fehler: kann XMP-Datei „%s” nicht öffnen" - -#~ msgid "[BRUSH creation] change size" -#~ msgstr "[BRUSH creation] Größe ändern" - -#~ msgid "[BRUSH creation] change hardness" -#~ msgstr "[BRUSH creation] Härte ändern" - -#~ msgid "lift luminance" -#~ msgstr "Lift Luminanz" - -#~ msgid "lift chroma" -#~ msgstr " Lift Chrominanz" - -#~ msgid "lift hue" -#~ msgstr "Lift Farbton" - -#~ msgid "power luminance" -#~ msgstr "Power Luminanz" - -#~ msgid "power chroma" -#~ msgstr " Power Chrominanz" - -#~ msgid "power hue" -#~ msgstr "Power Farbton" - -#~ msgid "gain luminance" -#~ msgstr "Gain Luminanz" - -#~ msgid "gain chroma" -#~ msgstr "Gain Chrominanz" - -#~ msgid "gain hue" -#~ msgstr "Gain Farbton" - -#~ msgid "offset luminance" -#~ msgstr "Global Luminanz" - -#~ msgid "offset chroma" -#~ msgstr "Global Chrominanz" - -#~ msgid "offset hue" -#~ msgstr "Global Farbton" - -#~ msgid "chroma shadows" -#~ msgstr "Chrominanz Schatten" - -#~ msgid "chroma highlights" -#~ msgstr "Chrominanz Lichter" - -#~ msgid "chroma global" -#~ msgstr " Chrominanz Global" - -#~ msgid "chroma mid-tones" -#~ msgstr "Chrominanz Mitteltöne" - -#~ msgid "saturation global" -#~ msgstr "Sättigung Global" - -#~ msgid "saturation highlights" -#~ msgstr "Sättigung Lichter" - -#~ msgid "saturation mid-tones" -#~ msgstr "Sättigung Mitteltöne" - -#~ msgid "saturation shadows" -#~ msgstr "Sättigung Schatten" - -#~ msgid "brilliance global" -#~ msgstr "Brillanz Global" - -#~ msgid "brilliance highlights" -#~ msgstr "Brillianz Lichter" - -#~ msgid "brilliance mid-tones" -#~ msgstr "Brillianz Mitteltönen" - -#~ msgid "brilliance shadows" -#~ msgstr "Brillianz Schatten" - -#~ msgid "" -#~ "the following modules are deprecated because they have internal design mistakes which can't be solved and " -#~ "alternative modules which solve them.\n" -#~ " they will be removed for new edits in the next release." -#~ msgstr "" -#~ "Folgende Module sind veraltet, weil sie interne Konzeptionsschwächen haben, die nicht behoben werden können und " -#~ "die durch Alternativen abgelöst werden.\n" -#~ "Sie werden für neue Bearbeitungen in der nächsten Version entfernt." - -#~ msgctxt "preferences" -#~ msgid "true" -#~ msgstr "Wahr" - -#~ msgctxt "preferences" -#~ msgid "active module" -#~ msgstr "Aktives Modul" - -#~ msgctxt "preferences" -#~ msgid "false" -#~ msgstr "Falsch" - -#~ msgid "highlights recovery" -#~ msgstr "Spitzlicht-Rekonstruktion" - -#~ msgid "applies only to lossy setting" -#~ msgstr "nur bei verlustbehafteter Kompression relevant" - -#~ msgid "" -#~ "this quick access widget is disabled as it's hidden in the actual module configuration. Please use the full " -#~ "module to access this widget..." -#~ msgstr "" -#~ "dieses Schnellzugriff-Widget ist deaktiviert, da es in der eigentlichen Modulkonfiguration versteckt ist. \n" -#~ "Bitte das vollständige Modul verwenden..." - -#~ msgctxt "preferences" -#~ msgid "at most RCD (reasonable)" -#~ msgstr "höchstens PPG (sinnvoll)" - -#~ msgid "white balance slider colors" -#~ msgstr "Farben der Weißabgleichregler" - -#~ msgid "" -#~ "visual indication of temperature adjustments.\n" -#~ "in 'illuminant color' mode slider colors represent the color of the light source,\n" -#~ "in 'effect emulation' slider colors represent the effect the adjustment would have on the scene" -#~ msgstr "" -#~ "Visualisierung von Farbtemperaturanpassungen im Modul „Weißabgleich”. \n" -#~ "Im Modus „Farbe der Lichtquelle” zeigt der Temperaturregler einen Farbverlauf gemäß der Farbe der eingestellten " -#~ "Lichtquelle. \n" -#~ "Bei „Emulation der Farbänderung” repräsentiert die Farbe des Reglers die Auswirkung auf die Bildszene, die eine " -#~ "Verschiebung der Farbtemperatur zur Folge hat." - -#~ msgid "color balance slider block layout" -#~ msgstr "Layout der Regler im Modul „Farbbalance”" - -#~ msgid "" -#~ "choose how to organise the slider blocks for lift, gamma and gain:\n" -#~ "list - all sliders are shown in one long list (with headers),\n" -#~ "tabs - use tabs to switch between the blocks of sliders,\n" -#~ "columns - the blocks of sliders are shown next to each other (in narrow columns)" -#~ msgstr "" -#~ "Legt fest, wie die Regler im Modul „Farbbalance” angeordnet werden.\n" -#~ "• „Liste”: Alle Regler werden in einer langen Liste mit Kopfzeilen angezeigt.\n" -#~ "• „Tabs”: Verwendet Tabs zur Darstellung der einzelnen Reglerblöcke.\n" -#~ "• „Spalten”: Die Reglerblöcke werden in schmalen Blöcken nebeneinander dargestellt." - -#~ msgid "auto-apply sharpen" -#~ msgstr "Schärfung automatisch anwenden" - -#~ msgid "" -#~ "this added sharpen is not recommended on cameras without a low-pass filter. you should disable this option if " -#~ "you use one of those more recent cameras or sharpen your images with other means." -#~ msgstr "" -#~ "Diese zusätzliche Schärfung wird bei Kameras ohne Tiefpassfilter nicht empfohlen. \n" -#~ "Diese Option sollte nicht aktiviert werden, falls eine solche Kamera ohne Tiefpassfilter verwendet wird oder " -#~ "die Bilder auf andere Weise nachträglich geschärft werden. \n" -#~ "Bei Änderung Neustart erforderlich." - -# havn’t fount it in the gui -#~ msgid "cast balance" -#~ msgstr "cast balance" - -#~ msgid "lut 3D" -#~ msgstr "3D LUT" - -#~ msgid "select lut file" -#~ msgstr "LUT-Datei auswählen" - -#~ msgid "lmmse refine" -#~ msgstr "LMMSE verfeinern" - -#~ msgid "gpx file" -#~ msgstr "GPX Datei" - -#~ msgid "unstared only" -#~ msgstr "ohne Stern" - -#~ msgid "orphan images" -#~ msgstr "ungruppierte Bild" - -#~ msgid "images in a group" -#~ msgstr "Bilder in Gruppe" - -#~ msgid "linear rec709 RGB" -#~ msgstr "lineares Rec. 709 RGB" - -#~ msgid "linear rec2020 RGB" -#~ msgstr "lineares Rec. 2020 RGB" - -#~ msgctxt "preferences" -#~ msgid "gray scale" -#~ msgstr "Graustufen" - -#~ msgid "" -#~ "disable this collect rule\n" -#~ "ctrl-click to pin into the top toolbar" -#~ msgstr "" -#~ "diese Filterregel deaktivieren\n" -#~ "Strg-Klick zum Anheften in der oberen Symbolleiste" - -#~ msgid "guided laplacians (AI)" -#~ msgstr "Geführter Laplacian-Modus" - -#~ msgid "diffusion properties" -#~ msgstr "Diffusion Eigenschaften" - -#~ msgid "diffusion speed" -#~ msgstr "Diffusion Geschwindigkeit" - -#~ msgid "" -#~ "smoothing or sharpening of smooth details (gradients).\n" -#~ "positive values diffuse and blur.\n" -#~ "negative values sharpen.\n" -#~ "zero does nothing." -#~ msgstr "" -#~ "Glätten oder Schärfen von weichen Details (Gradienten).\n" -#~ "Positive Werte erhöhen Diffusion und Weichzeichnung\n" -#~ "Negative Werte schärfen\n" -#~ "Null bewirkt nichts" - -#~ msgid "" -#~ "smoothing or sharpening of sharp details.\n" -#~ "positive values diffuse and blur.\n" -#~ "negative values sharpen.\n" -#~ "zero does nothing." -#~ msgstr "" -#~ "Glätten oder Schärfen von scharfen Details.\n" -#~ "Positive Werte erhöhen Diffusion und Weichzeichnung\n" -#~ "Negative Werte schärfen\n" -#~ "Null bewirkt nichts" - -#~ msgid "" -#~ "smoothing or sharpening of sharp details (gradients).\n" -#~ "positive values diffuse and blur.\n" -#~ "negative values sharpen.\n" -#~ "zero does nothing." -#~ msgstr "" -#~ "Glätten oder Schärfen von scharfen Details (Gradienten).\n" -#~ "Positive Werte erhöhen Diffusion und Weichzeichnung\n" -#~ "Negative Werte schärfen\n" -#~ "Null bewirkt nichts" - -#~ msgid "diffusion directionality" -#~ msgstr "Diffusion Orientierung" - -#~ msgid "" -#~ "anisotropy of the diffusion.\n" -#~ "zero makes the diffusion isotrope (same in all directions)\n" -#~ "positives make the diffusion follow isophotes more closely\n" -#~ "negatives make the diffusion follow gradients more closely" -#~ msgstr "" -#~ "Anisotropie der Diffusion.\n" -#~ "Null macht die Diffusion isotrop (gleich in alle Richtungen).\n" -#~ "Positive Werte bewirken, dass die Diffusion stärker den Isophoten folgt\n" -#~ "Negative Werte bewirken, dass die Diffusion stärker den Gradienten folgt" - -#~ msgid "increase or decrease the sharpness of the highest frequencies" -#~ msgstr "Erhöhen oder verringern der Schärfe der höchsten Frequenzen" - -#~ msgid "last export time" -#~ msgstr "letzter Export" - -#~ msgid "date taken" -#~ msgstr "Aufnahmedatum" - -#~ msgid "date-time taken" -#~ msgstr "Aufnahmedatum und -uhrzeit" - -#~ msgid "refresh exif" -#~ msgstr "Exif-Daten aktualisieren" - -#~ msgid "" -#~ "simple click to select date\n" -#~ "double click to use the date directly." -#~ msgstr "" -#~ "Mausklick zur Datumsauswahl\n" -#~ "Doppelklick zur direkten Verwendung des Datums" - -#~ msgid "exif data" -#~ msgstr "Exif Daten" - -#, c-format -#~ msgid "" -#~ "no history compression of 1 image.\n" -#~ "see tag: darktable|problem|history-compress" -#~ msgid_plural "" -#~ "no history compression of %d images.\n" -#~ "see tag: darktable|problem|history-compress" -#~ msgstr[0] "" -#~ "Keine Verlauf-Kompression bei einem Bild,\n" -#~ "siehe Tag: darktable|problem|history-compress" -#~ msgstr[1] "" -#~ "Keine Verlauf-Kompression bei %d Bildern,\n" -#~ "siehe Tag: darktable|problem|history-compress" - -#~ msgid "switch dual threshold" -#~ msgstr "Schwellwert für Wechsel" - -#~ msgid "display blending mask" -#~ msgstr "Überblendemaske anzeigen" - -#~ msgid "filters for collections" -#~ msgstr "Filter- und Sortierung" - -#~ msgid "imported: today" -#~ msgstr "importiert: heute" - -#~ msgid "taken: today" -#~ msgstr "aufgenommen: heute" - -#, c-format -#~ msgctxt "accel" -#~ msgid "styles/apply %s" -#~ msgstr "Stile/%s anwenden" - -#, c-format -#~ msgctxt "accel" -#~ msgid "apply %s" -#~ msgstr "%s Anwenden" - -#~ msgctxt "accel" -#~ msgid "rating" -#~ msgstr "Bewertung" - -#~ msgctxt "accel" -#~ msgid "discard history" -#~ msgstr "Verlauf verwerfen" - -#~ msgctxt "accel" -#~ msgid "color label" -#~ msgstr "Farbmarkierung" - -#~ msgctxt "accel" -#~ msgid "select all" -#~ msgstr "alles auswählen" - -#~ msgctxt "accel" -#~ msgid "select none" -#~ msgstr "nichts auswählen" - -#~ msgctxt "accel" -#~ msgid "invert selection" -#~ msgstr "Auswahl invertieren" - -#~ msgctxt "accel" -#~ msgid "select film roll" -#~ msgstr "Filmrolle auswählen" - -#~ msgctxt "accel" -#~ msgid "select untouched" -#~ msgstr "Unbearbeitete auswählen" - -#~ msgctxt "accel" -#~ msgid "switch views/tethering" -#~ msgstr "Ansicht wechseln/Thethering" - -#~ msgctxt "accel" -#~ msgid "switch views/lighttable" -#~ msgstr "Ansicht wechseln/Leuchttisch" - -#~ msgctxt "accel" -#~ msgid "switch views/darkroom" -#~ msgstr "Ansicht wechseln/Dunkelkammer" - -#~ msgctxt "accel" -#~ msgid "switch views/slideshow" -#~ msgstr "Ansicht wechseln/Diashow" - -#~ msgctxt "accel" -#~ msgid "switch views/print" -#~ msgstr "Ansicht wechseln/Drucken" - -#~ msgctxt "accel" -#~ msgid "panels/all" -#~ msgstr "Panel/alle" - -#~ msgctxt "accel" -#~ msgid "panels/left" -#~ msgstr "Panel/links" - -#~ msgctxt "accel" -#~ msgid "panels/right" -#~ msgstr "Panel/rechts" - -#~ msgctxt "accel" -#~ msgid "panels/top" -#~ msgstr "Panel/oben" - -#~ msgctxt "accel" -#~ msgid "panels/bottom" -#~ msgstr "Panel/unten" - -#~ msgctxt "accel" -#~ msgid "panels/header" -#~ msgstr "Panel/Titel" - -#~ msgctxt "accel" -#~ msgid "panels/all bottom" -#~ msgstr "Panel/alle unten" - -#~ msgctxt "accel" -#~ msgid "show accels window" -#~ msgstr "zeige Tastenbelegungsfenster" - -#~ msgid "grey" -#~ msgstr "grau" - -#~ msgctxt "accel" -#~ msgid "capture image(s)" -#~ msgstr "Bild(er) aufnehmen" - -#~ msgctxt "accel" -#~ msgid "copy" -#~ msgstr "kopieren" - -#~ msgctxt "accel" -#~ msgid "copy parts" -#~ msgstr "teilweise kopieren" - -#~ msgctxt "accel" -#~ msgid "compress" -#~ msgstr "Komprimieren" - -#~ msgctxt "accel" -#~ msgid "discard" -#~ msgstr "Verwerfen" - -#~ msgctxt "accel" -#~ msgid "paste" -#~ msgstr "einfügen" - -#~ msgctxt "accel" -#~ msgid "paste parts" -#~ msgstr "teilweise einfügen" - -#~ msgctxt "accel" -#~ msgid "load sidecar files" -#~ msgstr "XMP-Begleitdateien laden" - -#~ msgctxt "accel" -#~ msgid "write sidecar files" -#~ msgstr "XMP-Begleitdateien schreiben" - -#~ msgctxt "accel" -#~ msgid "export" -#~ msgstr "exportieren" - -#~ msgctxt "accel" -#~ msgid "histogram/hide histogram" -#~ msgstr "Histogramm/Histogramm verbergen" - -#~ msgctxt "accel" -#~ msgid "histogram/cycle histogram modes" -#~ msgstr "Histogramm/Histogramm-Modi zyklisch wechseln" - -#~ msgctxt "accel" -#~ msgid "histogram/switch histogram mode" -#~ msgstr "Histogramm/Histogramm-Modus umschalten" - -#~ msgctxt "accel" -#~ msgid "histogram/switch histogram type" -#~ msgstr "Histogramm/Histogramm-Typ umschalten" - -#~ msgctxt "accel" -#~ msgid "compress history stack" -#~ msgstr "Verlaufsstapel zusammenfassen" - -#~ msgctxt "accel" -#~ msgid "remove from darktable" -#~ msgstr "aus Sammlung entfernen" - -#~ msgctxt "accel" -#~ msgid "delete from disk using trash if possible" -#~ msgstr "von der Festplatte löschen (Papierkorb verwenden, falls möglich)" - -#~ msgctxt "accel" -#~ msgid "move to other folder" -#~ msgstr "In anderen Ordner verschieben" - -#~ msgctxt "accel" -#~ msgid "copy to other folder" -#~ msgstr "In anderen Ordner kopieren" - -#~ msgctxt "accel" -#~ msgid "rotate selected images 90 degrees CW" -#~ msgstr "Ausgewählte Bilder um 90° im Uhrzeigersinn drehen" - -#~ msgctxt "accel" -#~ msgid "rotate selected images 90 degrees CCW" -#~ msgstr "Ausgewählte Bilder um 90° gegen den Uhrzeigersinn drehen" - -#~ msgctxt "accel" -#~ msgid "create HDR" -#~ msgstr "HDR erzeugen" - -#~ msgctxt "accel" -#~ msgid "duplicate" -#~ msgstr "duplizieren" - -#~ msgctxt "accel" -#~ msgid "reset rotation" -#~ msgstr "Drehung zurücksetzen" - -#~ msgctxt "accel" -#~ msgid "copy the image locally" -#~ msgstr "Bild lokal kopieren" - -#~ msgctxt "accel" -#~ msgid "resync the local copy" -#~ msgstr "Lokale Kopie synchronisieren" - -#~ msgctxt "accel" -#~ msgid "refresh exif" -#~ msgstr "Exif-Daten aktualisieren" - -#~ msgctxt "accel" -#~ msgid "set monochrome image" -#~ msgstr "Bild als monochrom kennzeichnen" - -#~ msgctxt "accel" -#~ msgid "set color image" -#~ msgstr "Bild als Farbbild kennzeichnen" - -#~ msgctxt "accel" -#~ msgid "copy metadata" -#~ msgstr "Metadaten kopieren" - -#~ msgctxt "accel" -#~ msgid "clear metadata" -#~ msgstr "Metadaten löschen" - -#~ msgctxt "accel" -#~ msgid "group" -#~ msgstr "gruppieren" - -#~ msgctxt "accel" -#~ msgid "ungroup" -#~ msgstr "Gruppierung aufheben" - -#~ msgctxt "accel" -#~ msgid "copy & import from camera" -#~ msgstr "von Kamera kopieren & importieren" - -#~ msgctxt "accel" -#~ msgid "tethered shoot" -#~ msgstr "Tethering-Aufnahme" - -#~ msgctxt "accel" -#~ msgid "add to library" -#~ msgstr "importieren" - -#~ msgctxt "accel" -#~ msgid "copy & import" -#~ msgstr "kopieren & importieren" - -#~ msgctxt "accel" -#~ msgid "mount camera" -#~ msgstr "Kamera verbinden" - -#~ msgctxt "accel" -#~ msgid "unmount camera" -#~ msgstr "Kamera trennen" - -#~ msgctxt "accel" -#~ msgid "toggle live view" -#~ msgstr "Live-View umschalten" - -#~ msgctxt "accel" -#~ msgid "zoom live view" -#~ msgstr "Live-View zoomen" - -#~ msgctxt "accel" -#~ msgid "rotate 90 degrees CCW" -#~ msgstr "um 90° gegen den Uhrzeigersinn drehen" - -#~ msgctxt "accel" -#~ msgid "rotate 90 degrees CW" -#~ msgstr "um 90° im Uhrzeigersinn drehen" - -#~ msgctxt "accel" -#~ msgid "flip horizontally" -#~ msgstr "Horizontal spiegeln" - -#~ msgctxt "accel" -#~ msgid "move focus point in (big steps)" -#~ msgstr "Fokuspunkt nach vorne verschieben (große Schritte)" - -#~ msgctxt "accel" -#~ msgid "move focus point in (small steps)" -#~ msgstr "Fokuspunkt nach vorne verschieben (kleine Schritte)" - -#~ msgctxt "accel" -#~ msgid "move focus point out (small steps)" -#~ msgstr "Fokuspunkt nach hinten verschieben (kleine Schritte)" - -#~ msgctxt "accel" -#~ msgid "move focus point out (big steps)" -#~ msgstr "Fokuspunkt nach hinten verschieben (große Schritte)" - -#~ msgctxt "accel" -#~ msgid "filtered images" -#~ msgstr "gefilterte Bilder" - -#~ msgctxt "accel" -#~ msgid "thumbnail display" -#~ msgstr "Vorschauanzeige" - -#~ msgctxt "accel" -#~ msgid "print" -#~ msgstr "Drucken" - -#~ msgctxt "accel" -#~ msgid "take snapshot" -#~ msgstr "Snapshot erstellen" - -#~ msgctxt "accel" -#~ msgid "create" -#~ msgstr "Erstellen" - -#~ msgctxt "accel" -#~ msgid "remove" -#~ msgstr "entfernen" - -#~ msgctxt "accel" -#~ msgid "import" -#~ msgstr "importieren" - -#~ msgctxt "accel" -#~ msgid "edit" -#~ msgstr "Bearbeiten" - -#~ msgctxt "verb" -#~ msgid "import..." -#~ msgstr "importieren…" - -#~ msgctxt "accel" -#~ msgid "attach" -#~ msgstr "Zuweisen" - -#~ msgctxt "accel" -#~ msgid "detach" -#~ msgstr "entfernen" - -#~ msgctxt "accel" -#~ msgid "new" -#~ msgstr "neu" - -#~ msgctxt "accel" -#~ msgid "import..." -#~ msgstr "importieren …" - -#~ msgctxt "accel" -#~ msgid "export..." -#~ msgstr "exportieren …" - -#~ msgctxt "accel" -#~ msgid "clear entry" -#~ msgstr "Eintrag löschen" - -#~ msgctxt "accel" -#~ msgid "toggle tree" -#~ msgstr "Listen/Baumsicht umschalten" - -#~ msgctxt "accel" -#~ msgid "toggle hide" -#~ msgstr "ein-/ausblenden" - -#~ msgctxt "accel" -#~ msgid "toggle dttags" -#~ msgstr "dt Tags ein-/ausblenden" - -#~ msgctxt "accel" -#~ msgid "tag" -#~ msgstr "Tag vergeben" - -#~ msgctxt "verb" -#~ msgid "export..." -#~ msgstr "exportieren…" - -#~ msgid "overlays block on mouse hover during (s)" -#~ msgstr "überlagerte Bildinfos bei Überfahren mit Maus für (s)" - -#~ msgctxt "accel" -#~ msgid "grouping" -#~ msgstr "Gruppieren" - -#~ msgctxt "accel" -#~ msgid "preferences" -#~ msgstr "Voreinstellungen" - -#~ msgctxt "accel" -#~ msgid "shortcuts" -#~ msgstr "Shortcuts" - -#~ msgctxt "accel" -#~ msgid "thumbnail overlays/no overlays" -#~ msgstr "Bildinfos/keine Bildinfos" - -#~ msgctxt "accel" -#~ msgid "thumbnail overlays/overlays on mouse hover" -#~ msgstr "Bildinfos/Bildinfos bei Überfahren mit Maus" - -#~ msgctxt "accel" -#~ msgid "thumbnail overlays/extended overlays on mouse hover" -#~ msgstr "Bildinfos/erweiterte Bildinfos bei Überfahren mit Maus" - -#~ msgctxt "accel" -#~ msgid "thumbnail overlays/permanent overlays" -#~ msgstr "Bildinfos/permanente Bildinfos" - -#~ msgctxt "accel" -#~ msgid "thumbnail overlays/permanent extended overlays" -#~ msgstr "Bildinfos/permanente erweiterte Bildinfos" - -#~ msgctxt "accel" -#~ msgid "thumbnail overlays/permanent overlays extended on mouse hover" -#~ msgstr "Bildinfos/permanente Bildinfos erweitert bei Überfahren mit Maus" - -#~ msgctxt "accel" -#~ msgid "thumbnail overlays/overlays block on mouse hover" -#~ msgstr "Bildinfos/überlagerte Box mit Bildinfos bei Überfahren mit Maus" - -#~ msgctxt "accel" -#~ msgid "reset lib parameters" -#~ msgstr "Modul-Parameter zurücksetzen" - -#~ msgctxt "accel" -#~ msgid "raw overexposed/toggle" -#~ msgstr "Raw-Überbelichtungsanzeige ein/ausschalten" - -#~ msgctxt "accel" -#~ msgid "overexposed/toggle" -#~ msgstr "Überbelichtungsanzeige ein/ausschalten" - -#~ msgctxt "accel" -#~ msgid "gamut check" -#~ msgstr "Gamut überprüfen" - -#~ msgctxt "accel" -#~ msgid "guide lines/toggle" -#~ msgstr "Hilfslinien/Schalter" - -#~ msgctxt "accel" -#~ msgid "preview" -#~ msgstr "Kurzvorschau" - -#~ msgid "if switched on, darktable tunes OpenCL for best performance, overrides static settings" -#~ msgstr "wenn eingeschaltet, optimiert darktable OpenCL für beste Leistung und übersteuert statische Einstellungen" - -#~ msgid "darktable - run performance configuration?" -#~ msgstr "darktable - Geschwindigkeitseinstellungen anpassen?" - -#~ msgid "" -#~ "we have an updated performance configuration logic - executing that might improve the performance of " -#~ "darktable.\n" -#~ "this will potentially overwrite some of your existing settings - especially in case you have manually modified " -#~ "them to custom values.\n" -#~ "would you like to execute this update of the performance configuration?\n" -#~ msgstr "" -#~ "Die Standardwerte einiger Einstellungen, die die Geschwindigkeit von darktable beeinflussen, wurden angepasst.\n" -#~ "Dies zu übernehmen kann unter Umständen die Geschwindigkeit von darktable verbessern.\n" -#~ "Dies wird allerdings einige der bestehenden Einstellungen überschreiben – insbesondere, wenn diese manuell " -#~ "geändert wurden.\n" -#~ "Sollen die Einstellungen angepasst werden?\n" - -#~ msgid "crop settings" -#~ msgstr "Einstellungen" - -#, c-format -#~ msgid "%.0f ISO" -#~ msgstr "%.0f ISO" - -#~ msgid "white balance settings" -#~ msgstr "Weißabgleichsvoreinstellungen" - -#, c-format -#~ msgid "%.0f mired" -#~ msgstr "%.0f Mired" - -#~ msgctxt "preferences" -#~ msgid "mini (debug)" -#~ msgstr "mini (debug)" - -#~ msgctxt "preferences" -#~ msgid "reference (debug)" -#~ msgstr "Referenz (Debug)" - -#~ msgid "percentage of bright values clipped out, toggle color picker to activate" -#~ msgstr "Prozentsatz der hellen Werte, die abgeschnitten werden. Zum Aktivieren die Pipette auswählen" - -#~ msgid "disable the entry completion" -#~ msgstr "deaktiviere die Eingabevervollständigung" - -#~ msgid "" -#~ "the entry completion is useful for those who enter tags from keyboard only. for others the entry completion can " -#~ "be embarrassing. need to restart darktable." -#~ msgstr "" -#~ "Die Eingabevervollständigung ist hilfreich, wenn Tags nur über die Tastatur eingegeben werden. \n" -#~ "Für andere Methoden kann die Eingabevervollständigung hinderlich sein. Bei Änderung Neustart erforderlich." - -#~ msgid "metadata list" -#~ msgstr "Metadaten-Liste" - -#~ msgid "memory in MB to use for thumbnail cache" -#~ msgstr "Speicher (in MB) für den Vorschaubild-Cache" - -#~ msgid "this controls how much memory is going to be used for thumbnails and other buffers (needs a restart)." -#~ msgstr "" -#~ "Dies legt fest, wie viel Speicher darktable für Vorschaubilder und andere Puffer nutzt. \n" -#~ "Bei Änderung Neustart erforderlich." - -#~ msgid "host memory limit (in MB) for tiling" -#~ msgstr "Speicherlimit (in MB) für Kachelung" - -#~ msgid "" -#~ "this variable controls the maximum amount of memory (in MB) a module may use during image processing. lower " -#~ "values will force memory hungry modules to process image with increasing number of tiles. setting this to 0 " -#~ "will omit any limit. values below 500 will be treated as 500." -#~ msgstr "" -#~ "Dies bestimmt die maximale Speichermenge (in MB), die ein Modul beim Verarbeiten des Bildes benutzen darf. \n" -#~ "Niedrigere Werte erzwingen bei speicherintensiven Modulen eine Bildverarbeitung mit einer größeren Anzahl von " -#~ "Kacheln. \n" -#~ "Ein Wert von 0MB bewirkt keinerlei Limitierung, ein Wert kleiner 500MB wird als 500MB interpretiert." - -#~ msgid "minimum amount of memory (in MB) for a single buffer in tiling" -#~ msgstr "minimale Speichermenge (in MB) für einen einzelnen Puffer beim Kacheln" - -#~ msgid "minimum amount of memory (in MB) that tiling should take for a single image buffer." -#~ msgstr "minimale Speichermenge (in MB), die Tiling für einen einzelnen Bildpuffer benötigen sollte." - -#~ msgid "list of available tags" -#~ msgstr "Liste der verfügbaren Tags" - -#~ msgid "which images should be shown" -#~ msgstr "welche Bilder sollen angezeigt werden" - -#~ msgid "view" -#~ msgstr "zeige" - -#~ msgctxt "accel" -#~ msgid "double" -#~ msgstr "doppelt" - -#~ msgctxt "accel" -#~ msgid "triple" -#~ msgstr "dreifach" - -#~ msgid "compression mode" -#~ msgstr "Kompression" - -#~ msgid "PIZ (default)" -#~ msgstr "PIZ (Standard)" - -#~ msgid "PXR24 (lossy)" -#~ msgstr "PXR24 (verlustbehaftet)" - -#~ msgid "B44 (lossy)" -#~ msgstr "B44 (verlustbehaftet)" - -#~ msgid "B44A (lossy)" -#~ msgstr "B44A (verlustbehaftet)" - -#~ msgid "perspective helpers" -#~ msgstr "Werkzeuge Perspektivenkorrektur" - -#~ msgid "<b>commit</b>: double click" -#~ msgstr "<b>bestätigen</b>: Doppelklick rechts" - -#~ msgid "enter tag name" -#~ msgstr "Tag eingeben" - -#~ msgid "" -#~ "tag dictionary,\n" -#~ "double-click to attach,\n" -#~ "right-click for other actions on selected tag,\n" -#~ "ctrl-wheel scroll to resize the window" -#~ msgstr "" -#~ "Tag Verzeichnis,\n" -#~ "Duppelklick für hinzufügen,\n" -#~ "Rechtsklick für andere Aktionen des ausgewählten Tag,\n" -#~ "Strg+Mausrad, um die Größe des Fensters zu ändern" - -#~ msgid "version of the spline generator" -#~ msgstr "Version des Spline-Generators" - -#~ msgid "denoise: hard (slow)" -#~ msgstr "Entrauschen: stark (besonders langsam)" - -#~ msgid "scopes settings" -#~ msgstr "Einstellungen Scopes" - -#~ msgid "display scopes" -#~ msgstr "Anzeigeort" - -#~ msgid "in the left sidebar" -#~ msgstr "in der linken Seitenleiste" - -#~ msgid "in the right sidebar" -#~ msgstr "in der rechten Seitenleiste" - -#~ msgid "this setting will take effect only after switching between views." -#~ msgstr "Diese Einstellung wird erst nach dem Wechsel zwischen den Ansichten wirksam" - -#~ msgid "you need to switch views for the new setting to take effect." -#~ msgstr "Ansicht wechseln, damit die Einstellungsänderungen wirksam werden." - -#~ msgid "modules order" -#~ msgstr "Modulsortierung" - -#~ msgid "cropping may be applied twice" -#~ msgstr "Zuschneiden kann doppelt angewendet sein" - -#~ msgid "" -#~ "crop module is enabled.\n" -#~ "cropping image here too will result in double cropping\n" -#~ "which may provide unexpected results." -#~ msgstr "" -#~ "Das Zuschneiden-Modul ist aktiviert.\n" -#~ "Das Bild auch hier zu beschneidenen kann zu unerwarteten \n" -#~ "Ergebnissen führen, da es später erneut beschnitten wird." - -#~ msgid "update database from selected xmp files" -#~ msgstr "Datenbank anhand ausgewählten XMP-Dateien aktualisieren" - -#~ msgid "overwrite selected xmp files" -#~ msgstr "ausgewählte XMP-Dateien überschreiben" - -#, c-format -#~ msgid "no fallback for %s (%s)" -#~ msgstr "Kein Fallback für %s (%s)" - -#~ msgctxt "accel" -#~ msgid "switch views/lighttable ↔ darkroom" -#~ msgstr "Ansicht wechseln/Leuchttisch ↔ Dunkelkammer" - -#~ msgid "try to locate your camera/lens in the above two menus" -#~ msgstr "Kamera/Objektiv nach Möglichkeit in den beiden oberen Menüs auswählen" - -#~ msgctxt "accel" -#~ msgid "tethering view" -#~ msgstr "Tethering-Ansicht" - -#~ msgctxt "accel" -#~ msgid "lighttable view" -#~ msgstr "Leuchttisch-Ansicht" - -#~ msgctxt "accel" -#~ msgid "map view" -#~ msgstr "Karten-Ansicht" - -#~ msgctxt "accel" -#~ msgid "slideshow view" -#~ msgstr "Diashow-Ansicht" - -#~ msgctxt "accel" -#~ msgid "print view" -#~ msgstr "Druck-Ansicht" - -#~ msgctxt "accel" -#~ msgid "toggle fullscreen" -#~ msgstr "Vollbild ein-/ausschalten" - -#~ msgctxt "accel" -#~ msgid "toggle side borders" -#~ msgstr "Seitenränder ein-/ausblenden" - -#~ msgctxt "accel" -#~ msgid "toggle left panel" -#~ msgstr "linkes Bedienfeld ein-/ausblenden" - -#~ msgctxt "accel" -#~ msgid "toggle right panel" -#~ msgstr "rechtes Bedienfeld ein-/ausblenden" - -#~ msgctxt "accel" -#~ msgid "toggle top panel" -#~ msgstr "oberes Bedienfeld ein-/ausblenden" - -#~ msgctxt "accel" -#~ msgid "toggle bottom panel" -#~ msgstr "unteres Feld umschalten" - -#~ msgctxt "accel" -#~ msgid "toggle all top panels" -#~ msgstr "alle oberen Bedienfelder ein-/ausblenden" - -#~ msgctxt "accel" -#~ msgid "toggle all bottom panels" -#~ msgstr "alle unteren Bedienfelder ein-/ausblenden" - -#~ msgid "perspective correction" -#~ msgstr "Perspektivkorrektur" - -#~ msgid "automatic fit" -#~ msgstr "automatisch anpassen" - -#~ msgid "rotate image" -#~ msgstr "Bild drehen" - -#~ msgid "remove line structure information" -#~ msgstr "Informationen über Linienstrukturen entfernen" - -#~ msgid "today" -#~ msgstr "heute" - -#~ msgid "open folder" -#~ msgstr "Verzeichnis öffnen" - -#~ msgid "all rights reserved." -#~ msgstr "alle Rechte vorbehalten." - -#~ msgid "Scroll" -#~ msgstr "Scrollen" - -#~ msgid "Action" -#~ msgstr "Aktion" - -#~ msgid "midtones" -#~ msgstr "Mitteltöne" - -#~ msgid "midtones bias" -#~ msgstr "Mittenbetonung" - -#~ msgid "show some extra guides" -#~ msgstr "weitere Hilfslinien anzeigen" - -#~ msgid "" -#~ "are you sure you want to restore the default keybindings? this will erase any modifications you have made." -#~ msgstr "" -#~ "Bist Du sicher, dass Du die Standard-Tastenkürzel wiederherstellen willst? \n" -#~ "Alle persönlichen Änderungen gehen hierdurch verloren." - -#~ msgid "lightness offset" -#~ msgstr "Änderung der Helligkeit" - -#~ msgid "chroma offset green/red" -#~ msgstr "Änderung der Chrominanz Grün/Rot" - -#~ msgid "chroma offset blue/yellow" -#~ msgstr "Änderung der Chrominanz Blau/Gelb" - -#~ msgid "saturation offset" -#~ msgstr "Änderung der Sättigung" - -#~ msgid "middle tones saturation" -#~ msgstr "Sättigung der Mitten" - -#~ msgid "only key + ctrl/shift/alt supported for this shortcut" -#~ msgstr "nur Taste + ctrl/shift/alt wird für den Kurzbefehl unterstützt" - -#~ msgid "overwrite existing shortcut?" -#~ msgstr "vorhandenenen Kurzbefehl überschreiben?" - -#~ msgid "only one shortcut allowed" -#~ msgstr "nur ein Kurzbefehl zulässig" - -#~ msgctxt "accel" -#~ msgid "move page up" -#~ msgstr "um eine Seite nach oben navigieren" - -#~ msgctxt "accel" -#~ msgid "move page down" -#~ msgstr "um eine Seite nach unten navigieren" - -#~ msgctxt "accel" -#~ msgid "move up" -#~ msgstr "nach oben navigieren" - -#~ msgctxt "accel" -#~ msgid "move down" -#~ msgstr "nach unten navigieren" - -#~ msgctxt "accel" -#~ msgid "move left" -#~ msgstr "nach links navigieren" - -#~ msgctxt "accel" -#~ msgid "move right" -#~ msgstr "nach rechts navigieren" - -#~ msgctxt "accel" -#~ msgid "move start" -#~ msgstr "zum Anfang navigieren" - -#~ msgctxt "accel" -#~ msgid "move end" -#~ msgstr "zum Ende navigieren" - -#~ msgctxt "accel" -#~ msgid "move page up and select" -#~ msgstr "um eine Seite nach oben navigieren und auswählen" - -#~ msgctxt "accel" -#~ msgid "move page down and select" -#~ msgstr "um eine Seite nach unten navigieren und auswählen" - -#~ msgctxt "accel" -#~ msgid "move up and select" -#~ msgstr "nach oben navigieren und auswählen" - -#~ msgctxt "accel" -#~ msgid "move down and select" -#~ msgstr "nach unten navigieren und auswählen" - -#~ msgctxt "accel" -#~ msgid "move left and select" -#~ msgstr "nach links navigieren und auswählen" - -#~ msgctxt "accel" -#~ msgid "move right and select" -#~ msgstr "nach rechts navigieren und auswählen" - -#~ msgctxt "accel" -#~ msgid "move start and select" -#~ msgstr "zum Anfang navigieren und auswählen" - -#~ msgctxt "accel" -#~ msgid "move end and select" -#~ msgstr "zum Ende navigieren und auswählen" - -#~ msgid "" -#~ "these redundant files can later be re-imported into a different database, preserving your changes to the image." -#~ msgstr "" -#~ "XMP-Begleitdateien können später wieder in eine andere Datenbank importiert werden, so dass beim Bildimport " -#~ "Bearbeitungen mit übernommen werden." - -#, no-c-format -#~ msgid "" -#~ "use `%' as wildcard\n" -#~ "use `|%' to include all sub-hierarchies (ctrl-click)\n" -#~ "use `*' to include hierarchy and sub-hierarchies (shift-click)" -#~ msgstr "" -#~ "„%” als Platzhalter benutzen\n" -#~ "„|%“ bezieht alle Unterhierarchien ein (Strg+Klick)\n" -#~ "„*“ bezieht alle Hierarchien mit ihren Unterhierarchien ein (Umschalt+Klick)" - -#, no-c-format -#~ msgid "" -#~ "use `%' as wildcard\n" -#~ "use `|%' to include all sub-locations (ctrl-click)\n" -#~ "use `*' to include locations and sub-locations (shift-click)" -#~ msgstr "" -#~ "„%” als Platzhalter benutzen\n" -#~ "„|%“ bezieht alle Unterorte ein (Strg+Klick)\n" -#~ "„*“ bezieht alle Orte mit ihren Unterorten ein (Umschalt+Klick)" - -#~ msgid "set view to waveform" -#~ msgstr "zum Waveform-Histogramm wechseln" - -#~ msgid "do not show april 1st game" -#~ msgstr "1.-April-Spiel nicht starten" - -#~ msgid "number of background threads" -#~ msgstr "Anzahl Hintergrund-Threads" - -#~ msgid "" -#~ "this controls for example how many threads are used to create thumbnails during import. the cache will grow to " -#~ "a maximum of twice this number of full resolution image buffers (needs a restart)." -#~ msgstr "" -#~ "Dies legt zum Beispiel fest, mit wie vielen Threads während des Imports Vorschaubilder erzeugt werden. \n" -#~ "Der Cache wächst höchstens bis zu zweimal diesen Wert an Bild-Puffern mit voller Auflösung. \n" -#~ "Bei Änderung Neustart erforderlich." - -#~ msgid "global" -#~ msgstr "Global" - -#~ msgctxt "accel" -#~ msgid "fusion" -#~ msgstr "Überblenden-Deckkraft" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/rate 0" -#~ msgstr "Ansichten/Miniaturvorschau/Bewertung „0 Sterne”" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/rate 1" -#~ msgstr "Ansichten/Miniaturvorschau/Bewertung „1 Stern”" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/rate 2" -#~ msgstr "Ansichten/Miniaturvorschau/Bewertung „2 Sterne”" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/rate 3" -#~ msgstr "Ansichten/Miniaturvorschau/Bewertung „3 Sterne”" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/rate 4" -#~ msgstr "Ansichten/Miniaturvorschau/Bewertung „4 Sterne”" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/rate 5" -#~ msgstr "Ansichten/Miniaturvorschau/Bewertung „5 Sterne”" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/rate reject" -#~ msgstr "Ansichten/Miniaturvorschau/Bewertung „verwerfen”" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/copy history" -#~ msgstr "Ansichten/Miniaturvorschau/kopiere Verlaufsstapel" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/copy history parts" -#~ msgstr "Ansichten/Miniaturvorschau/Teil des Verlaufsstapels kopieren" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/paste history" -#~ msgstr "Ansichten/Miniaturvorschau/Verlaufsstapel einfügen" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/paste history parts" -#~ msgstr "Ansichten/Miniaturvorschau/Teil des Verlaufsstapels einfügen" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/discard history" -#~ msgstr "Ansichten/Miniaturvorschau/Verlaufsstapel verwerfen" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/duplicate image" -#~ msgstr "Ansichten/Miniaturvorschau/Bild duplizieren" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/duplicate image virgin" -#~ msgstr "Ansichten/Miniaturvorschau/„jungfräuliches” Duplikat erstellen" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/color red" -#~ msgstr "Ansichten/Miniaturvorschau/Farbmarkierung rot" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/color yellow" -#~ msgstr "Ansichten/Miniaturvorschau/Farbmarkierung gelb" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/color green" -#~ msgstr "Ansichten/Miniaturvorschau/Farbmarkierung grün" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/color blue" -#~ msgstr "Ansichten/Miniaturvorschau/Farbmarkierung blau" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/color purple" -#~ msgstr "Ansichten/Miniaturvorschau/Farbmarkierung violett" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/clear color labels" -#~ msgstr "Ansichten/Miniaturvorschau/Farbmarkierungen entfernen" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/select all" -#~ msgstr "Ansichten/Miniaturvorschau/alle Bilder auswählen" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/select none" -#~ msgstr "Ansichten/Miniaturvorschau/alle Bilder abwählen" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/invert selection" -#~ msgstr "Ansichten/Miniaturvorschau/Bildauswahl invertieren" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/select film roll" -#~ msgstr "Ansichten/Miniaturvorschau/Filmrolle auswählen" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/select untouched" -#~ msgstr "Ansichten/Miniaturvorschau/unbearbeitete auswählen" - -#~ msgctxt "accel" -#~ msgid "lua" -#~ msgstr "Lua" - -#~ msgctxt "accel" -#~ msgid "enable module" -#~ msgstr "Modul aktivieren" - -# keine Ahnung, ob das passt, konnte den String in der GUI nicht finden. -#~ msgctxt "accel" -#~ msgid "focus module" -#~ msgstr "Eingabefokus auf Modul lenken" - -#~ msgctxt "accel" -#~ msgid "show preset menu" -#~ msgstr "Voreinstellungs-Menü zeigen" - -#~ msgctxt "accel" -#~ msgid "increase" -#~ msgstr "Erhöhen" - -#~ msgctxt "accel" -#~ msgid "decrease" -#~ msgstr "Verringern" - -#~ msgctxt "accel" -#~ msgid "reset" -#~ msgstr "Zurücksetzen" - -#~ msgctxt "accel" -#~ msgid "dynamic" -#~ msgstr "Dynamik" - -#, c-format -#~ msgid "" -#~ "%s\n" -#~ "(shortcut: %s)" -#~ msgstr "" -#~ "%s\n" -#~ "(Tastenkombination: %s)" - -#, c-format -#~ msgid "%s %s / %s: %s" -#~ msgstr "%s %s / %s: %s" - -#, c-format -#~ msgid "%s / %s: %s" -#~ msgstr "%s / %s: %s" - -#, c-format -#~ msgid "%s: %s" -#~ msgstr "%s: %s" - -#, c-format -#~ msgid "%s / %s" -#~ msgstr "%s / %s" - -#, c-format -#~ msgid "scroll to change <b>%s</b> of module %s %s" -#~ msgstr "scrollen, um <b>%s</b> des %s %s Moduls zu ändern" - -#~ msgid "enable focus-peaking mode" -#~ msgstr "Fokuserkennung einschalten" - -#~ msgid "" -#~ "click or press enter to search\n" -#~ "click or press enter again to cycle through results" -#~ msgstr "" -#~ "Klicken oder Eingabe drücken, um zu suchen. \n" -#~ "Nochmals klicken oder Eingabe drücken, um durch die Suchergebnisse zu iterieren." - -#~ msgid "press key combination to remap..." -#~ msgstr "Neue Tastenkombination drücken..." - -#, c-format -#~ msgid "" -#~ "%s accel is already mapped to\n" -#~ "%s.\n" -#~ "do you want to replace it ?" -#~ msgstr "" -#~ "Tastenkombination „%s” bereits „%s”\n" -#~ "zugewiesen. Soll sie überschrieben werden?" - -#~ msgid "accel conflict" -#~ msgstr "Konflikt bei der Tastenbelegung" - -#~ msgid "normal images" -#~ msgstr "normale Bilder" - -#~ msgid "guides" -#~ msgstr "Hilfslinien" - -#~ msgid "display guide lines overlay" -#~ msgstr "Hilfslinien anzeigen" - -#~ msgid "B&W : Ilford Delta 100" -#~ msgstr "S/W Ilford Delta 100" - -#~ msgid "input red" -#~ msgstr "Input rot" - -#~ msgid "input green" -#~ msgstr "Input grün" - -#~ msgid "input blue" -#~ msgstr "Input blau" - -#~ msgid "display guide lines to help compose your photograph" -#~ msgstr "Hilfslinien anzeigen, die beim Komponieren der Fotografie helfen" - -#~ msgid "linear or non-linear, RGB or Lab, display-referred" -#~ msgstr "linear oder nichtlinear, RGB oder Lab, anzeigebezogen" - -#~ msgid "rotate" -#~ msgstr "drehen" - -#~ msgctxt "accel" -#~ msgid "replace metadata" -#~ msgstr "Metadaten ersetzen" - -#, c-format -#~ msgid "edit `%s'" -#~ msgstr "„%s” bearbeiten" - -#~ msgid "reset parameters" -#~ msgstr "Einstellungen zurücksetzen" - -#~ msgid "search module" -#~ msgstr "Modul suchen" - -#~ msgid "" -#~ "toggle yellow label\n" -#~ "of selected images" -#~ msgstr "" -#~ "Gelbe Markierung der ausgewählten\n" -#~ "Bilder an/aus schalten" - -#~ msgid "" -#~ "toggle green label\n" -#~ "of selected images" -#~ msgstr "" -#~ "Grüne Markierung der ausgewählten\n" -#~ "Bilder an/aus schalten" - -#~ msgid "" -#~ "toggle blue label\n" -#~ "of selected images" -#~ msgstr "" -#~ "Blaue Markierung der ausgewählten\n" -#~ "Bilder an/aus schalten" - -#~ msgid "" -#~ "toggle purple label\n" -#~ "of selected images" -#~ msgstr "" -#~ "Violette Markierung der ausgewählten\n" -#~ "Bilder an/aus schalten" - -#~ msgid "clear all labels of selected images" -#~ msgstr "" -#~ "Alle Markierungen der\n" -#~ "ausgewählten Bilder entfernen" - -#~ msgid "set the color of lines that overlay the image (drawn masks, crop and rotate guides etc.)" -#~ msgstr "" -#~ "lege Farbe dem Bild überlagerter Linien fest (gezeichnete Masken, Hilfslinien für Beschneiden und Rotieren etc.)" - -#~ msgctxt "accel" -#~ msgid "raw overexposed" -#~ msgstr "Über-/Unterbelichtung der Raw-Werte" - -#~ msgctxt "accel" -#~ msgid "overexposed" -#~ msgstr "Über-/Unterbelichtung" - -#~ msgid "+Scroll" -#~ msgstr "+Mausrad" - -#~ msgid "Accel" -#~ msgstr "Tastenbelegung" - -#~ msgid "" -#~ "do not have the rating of one star behave as documented in the manual--an image rated one star twice will " -#~ "result in a zero star rating." -#~ msgstr "" -#~ "Sorgt dafür, dass im Gegensatz zur Beschreibung im Handbuch ein Bild bei doppelter Bewertung mit einem Stern " -#~ "nicht auf null Sterne gesetzt wird." - -#~ msgid "" -#~ "if set to a positive, non-zero value this variable defines the minimum amount of memory (in MB) that tiling " -#~ "should take for a single image buffer. has precedence over heuristics based on host_memory_limit (needs a " -#~ "restart)." -#~ msgstr "" -#~ "Falls dieser Wert größer als 0MB ist, dann bestimmt dieser die minimale Speichermenge in MB, die beim Kacheln " -#~ "für einen einzelnen Bild-Puffer reserviert wird. \n" -#~ "Dieser Wert hat Vorrang vor den Heuristiken basierend auf „host_memory_limit” in der Konfigurationsdatei " -#~ "„darktablerc”. \n" -#~ "Bei Änderung Neustart erforderlich." - -#~ msgid "middle grey luminance" -#~ msgstr "mittel graue Luminanz" - -#~ msgid "" -#~ "number of stops between middle grey and pure white.\n" -#~ "this is a reading a lightmeter would give you on the scene.\n" -#~ "adjust so highlights clipping is avoided" -#~ msgstr "" -#~ "Anzahl der Stufen zwischen mittlerem Grau und reinem Weiß.\n" -#~ "Entspricht einer Messung, welche ein Belichtungsmesser liefern würde.\n" -#~ "So anpassen, dass Spitzlichter nicht abgeschnitten werden." - -#~ msgid "" -#~ "number of stops between middle grey and pure black.\n" -#~ "this is a reading a lightmeter would give you on the scene.\n" -#~ "increase to get more contrast.\n" -#~ "decrease to recover more details in low-lights." -#~ msgstr "" -#~ "Anzahl der Stufen zwischen Mittlerem Grau und absolutem Schwarz. \n" -#~ "Entspricht einer Messung, welche ein Belichtungsmesser liefern würde. \n" -#~ "Für mehr Kontrast erhöhen. \n" -#~ "Für mehr Details in dunkleren Bereichen verringern." - -#~ msgid "target middle grey" -#~ msgstr "Zielwert für Mittleres Grau" - -# Anrede mal mit „du”, mal mit „Sie“. -#~ msgid "" -#~ "middle grey value of the target display or color space.\n" -#~ "you should never touch that unless you know what you are doing." -#~ msgstr "" -#~ "Mittlerer Grauwert der Zielanzeige oder des Farbraums.\n" -#~ "Sollte nicht geändert werden, es sei denn, Du weißt, was Du tust." - -#~ msgid "" -#~ "choose the root of the folder tree below\n" -#~ "try to choose a root folder that contains most/all of your photographs (in sub-folders)\n" -#~ "so that you don't need to change the root frequently\n" -#~ "e.g. set it to your 'pictures' or 'home' directory" -#~ msgstr "" -#~ "Einstieg für den unten dargestellten Verzeichnisbaum auswählen\n" -#~ "Idealerweise so wählen, dass dieser möglichst viele Fotos (in Unterordnern) enthält\n" -#~ "damit dieser nicht häufig geändert werden muss.\n" -#~ "z. B. das „Bilder“- oder „Home“-Verzeichnis" - -#~ msgctxt "blendmode" -#~ msgid "multiply reverse" -#~ msgstr "inverse Multiplikation" - -#~ msgctxt "blendmode" -#~ msgid "subtract reverse" -#~ msgstr "inverses Abziehen" - -#~ msgctxt "blendmode" -#~ msgid "divide reverse" -#~ msgstr "inverse Division" - -#~ msgctxt "blendmode" -#~ msgid "unbounded (deprecated)" -#~ msgstr "Unbeschränkt (überholt)" - -#~ msgid "output image" -#~ msgstr "Ausgangsabbild" - -#~ msgid "input image" -#~ msgstr "Eingangsbild" - -#~ msgid "collect images" -#~ msgstr "Bilder sammeln" - -#~ msgid "only remove from darktable, don't delete file on disk" -#~ msgstr "nur aus der Sammlung entfernen, Datei nicht löschen" - -#~ msgctxt "accel" -#~ msgid "import in-place" -#~ msgstr "Bild am Speicherort importieren" - -#~ msgid "import in-place" -#~ msgstr "am Speicherort importieren" - -#~ msgid "import in-place..." -#~ msgstr "am Speicherort importieren …" - -#~ msgid "import images in-place without renaming" -#~ msgstr "Bilder im aktuellen Verzeichnis ohne Umbenennung importieren" - -#~ msgid "gamma22 Rec709" -#~ msgstr "Gamma Rec709 RGB" - -#~ msgid "ProPhoto RGB" -#~ msgstr "ProPhoto RGB" - -#, c-format -#~ msgid "preset %s was successfully saved" -#~ msgstr "Voreinstellung „%s” wurde erfolgreich gespeichert" - -#~ msgid "_save..." -#~ msgstr "_speichern" - -#, c-format -#~ msgid "" -#~ "\n" -#~ " At startup, the database failed to open because at least one of the two files in the database is locked.\n" -#~ "\n" -#~ " The persistence of the lock is mainly caused by one of the two following causes:\n" -#~ "\n" -#~ " - Another occurrence of darktable has already opened this database file and locked it for its benefit.\n" -#~ "\n" -#~ " - A previous occurrence of darktable ended abnormally and therefore \n" -#~ " could not close one or both files in the database properly.\n" -#~ "\n" -#~ " How to solve this problem?\n" -#~ "\n" -#~ " 1 - Search in your environment if another darktable occurrence is active. If so, use it or close it. \n" -#~ " The lock indicates that the process number of this occurrence is : <i><b>%d</b></i>\n" -#~ "\n" -#~ " 2 - If you can't find this other occurrence, try closing your session and reopening it or shutting down your " -#~ "computer. \n" -#~ " This will delete all running programs and thus close the database correctly.\n" -#~ "\n" -#~ " 3 - If these two actions are not enough, it is because at least one of the two files that materialize the " -#~ "locks remains \n" -#~ " and that these are no longer attached to any occurrence of darktable. It is then necessary to delete it " -#~ "(or them). \n" -#~ " The two files are named <i>data.db.lock</i> and <i>library.db.lock</i> respectively. The opening mechanism " -#~ "signals \n" -#~ " the presence of the <i><b>%s</b></i> file in the <i><b>%s</b></i> folder. \n" -#~ " (full pathname: <i><b>%s</b></i>).\n" -#~ "\n" -#~ " <u>Caution!</u> Do not delete these files without first checking that there are no more occurrences of " -#~ "darktable, \n" -#~ " otherwise you risk generating serious inconsistencies in your database.\n" -#~ "\n" -#~ " As soon as you have identified and removed the cause of the lock, darktable will start without any problem.\n" -#~ msgstr "" -#~ "\n" -#~ "Die darktable-Datenbank konnte nicht geöffnet werden, weil mindestens eine der beiden Datenbankdateien gesperrt " -#~ "ist.\n" -#~ "Dies wird hauptsächlich durch eine der beiden folgenden Ursachen hervorgerufen:\n" -#~ "\n" -#~ "• Eine andere laufende darktable-Instanz greift bereits auf die Datenbank zu.\n" -#~ "• Eine früherer darktable-Instanz wurde fehlerhaft beendet und konnte eine oder beide Datenbankdateien nicht " -#~ "ordnungsgemäß schließen.\n" -#~ "\n" -#~ "Dieses Problem kann wie folgt behoben werden:\n" -#~ "\n" -#~ "• Prüfe, ob eine weitere darktable-Instanz aktiv ist. Wenn ja, nutze oder schließe diese.\n" -#~ "Die Dateisperre deutet darauf hin, dass die Prozessnummer dieser Instanz <i><b>%d</b></i> lautet\n" -#~ "• Falls keine weitere aktive darktable-Instanz identifiziert werden kann, melde Dich am Computer ab und erneut " -#~ "an oder starte den Computer neu.\n" -#~ "Dies wird alle laufenden Prozesse beenden und die Datenbank wieder freigeben.\n" -#~ "• Sollte die Datenbank nach den beiden zuvor genannten Maßnahmen noch immer gesperrt sein,\n" -#~ "dann besteht mindestens eine der beiden Dateien fort, die die Datenbanksperre verursachen,\n" -#~ "obwohl sie keiner darktable-Instanz mehr zugeordnet ist. Solche Dateien müssen gelöscht werden.\n" -#~ "Ihre Namen lauten <i>data.db.lock</i> bzw. <i>library.db.lock</i>.\n" -#~ "Der fehlerhafte Datenbankzugriff deutet auf des Vorhandensein\n" -#~ "der Datei <i><b>%s</b></i> im Verzeichnis <i><b>%s</b></i> hin\n" -#~ "(voller Pfad: <i><b>%s</b></i>).\n" -#~ "\n" -#~ "<u>Achtung!</u> Diese Dateien nur löschen, nachdem sichergestellt wurde, dass kein weitere darktable-Instanz " -#~ "läuft.\n" -#~ "Andernfalls besteht die Gefahr, dass die Datenbank in einen inkonsistenten Zustand gerät.\n" -#~ "\n" -#~ "Sobald die Ursache der Datenbanksperre identifiziert und behoben wurde, kann darktable wieder reibungslos " -#~ "starten.\n" - -#~ msgid "darktable cannot be started because the database is locked" -#~ msgstr "darktable kann nicht gestartet werden, weil die darktable-Datenbank gesperrt ist." - -#, no-c-format -#~ msgid "type your query, use `%' as wildcard" -#~ msgstr "Anfrage eingeben, „%” als Paltzhalter benutzen" - -#~ msgid "do you want to access https://darktable.org/usermanual/?" -#~ msgstr "Möchten Sie auf https://darktable.org/usermanual/ zugreifen?" - -#, c-format -#~ msgid "" -#~ "<b>compression</b>: shift+scroll\n" -#~ "<b>opacity</b>: ctrl+scroll (%d%%)" -#~ msgstr "" -#~ "<b>Kompression</b>: Umschalt+scrollen\n" -#~ "<b>Deckkraft</b>: Strg+scrollen (%d%%)" - -#, c-format -#~ msgid "do you really want to send %d image to trash?" -#~ msgid_plural "do you really want to send %d images to trash?" -#~ msgstr[0] "Soll %d Bild in den Papierkorb verschoben werden?" -#~ msgstr[1] "Sollen %d ausgewählte Bilder in den Papierkorb verschoben werden?" - -#~ msgid "trash images?" -#~ msgstr "Bilder in den Papierkorb verschieben?" - -#~ msgid "do you really want to send selected image to trash?" -#~ msgstr "sollen die ausgewählten Bild in den Papierkorb verschoben werden?" - -#~ msgid "bypassed" -#~ msgstr "nicht angewendet" - -#~ msgid "" -#~ "this module is experimental and the internal algo may slightly change before darktable 3.6. don't use it for " -#~ "serious work yet." -#~ msgstr "" -#~ "Dieses Modul ist experimentell und der interne Algorithmus kann sich bis darktable 3.6 leicht ändern. " -#~ "Verwendung für produktive Arbeiten vermeiden." - -#~ msgid "trash" -#~ msgstr "Papierkorb" - -#~ msgid "send file to trash" -#~ msgstr "Datei in Papierkorb verschieben" - -#~ msgid "remove from the collection" -#~ msgstr "aus der Sammlung entfernen" - -#~ msgid "autoapply" -#~ msgstr "automatisch anwenden" - -#~ msgid "preset name" -#~ msgstr "Name der Voreinstellung" - -#~ msgid "white pivot" -#~ msgstr "Weißpunkt" - -#~ msgid "PPG (fast)" -#~ msgstr "PPG (schnell)" - -#~ msgid "AMaZE (slow)" -#~ msgstr "AMaZE (langsam)" - -#~ msgid "Markesteijn 3-pass (slow)" -#~ msgstr "Markesteijn 3-mal (langsam)" - -#~ msgid "crop y" -#~ msgstr "Zuschnitt y" - -#~ msgid "crop width" -#~ msgstr "Zuschnitt Breite" - -#~ msgid "" -#~ "history problem detected\n" -#~ "please report via the issue tracker\n" -#~ "including the xmp file" -#~ msgstr "" -#~ "Fehler in der History\n" -#~ "Bitte über den Issue Tracker reporten\n" -#~ "und die xmp Datei beifügen" - -#~ msgid "demosaicing raw data method" -#~ msgstr "Methode zum Entrastern der Rohdaten" - -#~ msgid "" -#~ "this module has a mask\n" -#~ "click to display" -#~ msgstr "" -#~ "Dieses Modul hat eine Maske,\n" -#~ "klicken zum anzeigen" - -#~ msgid "store value as default" -#~ msgstr "Als Standard speichern" - -#~ msgid "reset value to default" -#~ msgstr "Auf Standard zurücksetzen" - -#~ msgctxt "camera import" -#~ msgid "import" -#~ msgstr "Importieren" - -#~ msgid "storage file" -#~ msgstr "Dateiname" - -#~ msgid "" -#~ "check this, if you want to override the timestamp used when expanding variables:\n" -#~ "$(YEAR), $(MONTH), $(DAY),\n" -#~ "$(HOUR), $(MINUTE), $(SECONDS)" -#~ msgstr "" -#~ "Diese Option auswählen, wenn der Zeitstempel überschrieben\n" -#~ "werden soll, der in folgende Variablen eingesetzt wird:\n" -#~ "$(YEAR), $(MONTH), $(DAY),\n" -#~ "$(HOUR), $(MINUTE), $(SECONDS)" - -#~ msgid "select the images from the list below that you want to import into a new filmroll" -#~ msgstr "Bilder aus der Liste auswählen, die in eine neue Film-Rolle importiert werden sollen" - -# Sollte man YYYY-MM-DD durch JJJJ-MM-TT ersetzen? -#~ msgid "please use YYYY-MM-DD format for date override" -#~ msgstr "Zum Überschreiben des Datums bitte als Format JJJJ-MM-DD benutzen" - -#~ msgid "Mass Storage Camera" -#~ msgstr "Massenspeicher Kamera" - -#~ msgid "warp pixel interpolator" -#~ msgstr "Pixel Interpolation (Verformungen)" - -#~ msgid "" -#~ "automatic chromatic aberration correction\n" -#~ "disabled for non-Bayer sensors" -#~ msgstr "Automatische Korrektur der chromatischen Aberration für Bayer Sensoren" - -#~ msgctxt "accel" -#~ msgid "import image" -#~ msgstr "Bild importieren" - -#~ msgctxt "accel" -#~ msgid "import folder" -#~ msgstr "Verzeichnis importieren" - -#~ msgid "file has unknown format!" -#~ msgstr "Datei hat ein unbekanntes Format!" - -#~ msgid "import folder" -#~ msgstr "Importverzeichnis" - -#~ msgid "image..." -#~ msgstr "Bild…" - -#~ msgid "select one or more images to import" -#~ msgstr "Ein oder mehrere Bilder zum Import wählen" - -#~ msgid "folder..." -#~ msgstr "Verzeichnis…" - -#, c-format -#~ msgid "tag: %s " -#~ msgstr "Tag: %s " - -#~ msgid "delete path" -#~ msgstr "Pfad löschen" - -#~ msgid "edit tag" -#~ msgstr "Tag bearbeiten" - -#~ msgid "rename path?" -#~ msgstr "Pfad umbenennen?" - -#~ msgid "edit tag..." -#~ msgstr "Tag bearbeiten…" - -#~ msgctxt "blendmode" -#~ msgid "chroma" -#~ msgstr "Chrominanz" - -#~ msgctxt "blendmode" -#~ msgid "HSV lightness" -#~ msgstr "HSV-Helligkeit" - -#~ msgid "" -#~ "copy part history stack of\n" -#~ "first selected image" -#~ msgstr "kopiere einen bestimmten Teil des Verlaufsstapels des ersten ausgewählten Bildes" - -#~ msgid "paste parts..." -#~ msgstr "selektiv einfügen" - -#~ msgid "" -#~ "paste part history stack to\n" -#~ "all selected images" -#~ msgstr "füge einen bestimmten Teil des kopierten Verlaufsstapels in allen ausgewählten Bildern ein" - -#~ msgid "show on map images to be geotagged" -#~ msgstr "auf der Karte Bilder anzeigen, die mit Geotags versehen werden sollen" - -#~ msgid "select images to be geotagged" -#~ msgstr "Bilder für Geotagging auswählen" - -#~ msgid "apply GPX file" -#~ msgstr "GPX-Datei anwenden" - -#~ msgid "" -#~ "apply location from GPX file to selected images\n" -#~ "even non checked gpx tracks are used\n" -#~ "date time offset must be null" -#~ msgstr "" -#~ "Standort aus GPX-Datei auf ausgewählte Bilder anwenden\n" -#~ "auch nicht geprüfte GPX-Tracks werden verwendet\n" -#~ "Datum-Zeit-Offset muss Null sein" - -#~ msgid "all available widgets" -#~ msgstr "Liste der verfügbaren Widgets" - -#~ msgid "" -#~ "the maximum number of geotagged images drawn on the map. increasing this number can slow drawing of the map " -#~ "down." -#~ msgstr "" -#~ "Die maximale Anzahl an Bilder, die auf der Karte angezeigt werden. Ein Erhöhen dieser Zahl kann das Zeichnen " -#~ "der Karte verlangsamen." - -#~ msgid "insensitive" -#~ msgstr "insensitive" - -#~ msgid "export selected" -#~ msgstr "ausgewählte exportieren" - -#~ msgid "modify the spatial size of an images group on the map" -#~ msgstr "Bestimmt die räumliche Ausdehnung, über die sich eine Bildgruppen auf der Karte erstreckt." - -#~ msgid "minimum of images to make a group" -#~ msgstr "maximale Anzahl Bilder, ab der Bilder auf der Karte als Gruppe zusammengefasst werden" - -#~ msgid "" -#~ "this basic widget is disabled as there's multiple instances for this module. You need to use the full module..." -#~ msgstr "" -#~ "dieses Basis-Widget ist deaktiviert, da es mehrere Instanzen für dieses Modul gibt. Sie müssen das vollständige " -#~ "Modul verwenden..." - -#~ msgid "click to remove this module" -#~ msgstr "Klicken, um Modul zu entfernen" - -#~ msgid "click to remove the widget" -#~ msgstr "Klicken, um Modul zu entfernen" - -#~ msgid "click to add the widget" -#~ msgstr "Klicken, um Modul hinzuzufügen" - -#~ msgid "show basic adjustement list" -#~ msgstr "Module der Grundlegenden Anpassungen zeigen" - -#~ msgid "show basics widgets group" -#~ msgstr "Grundlegende Module anzeigen" - -#~ msgid "" -#~ "add gradient\n" -#~ "ctrl+click to add multiple gradients" -#~ msgstr "Verlauf hinzufügen. Mit Strg+Mausklick können mehrere Verläufe erstellt werden." - -#~ msgid "" -#~ "add path\n" -#~ "ctrl+click to add multiple paths" -#~ msgstr "Pfad hinzufügen. Mit Strg+Mausklick können mehrere Pfade erstellt werden." - -#~ msgid "" -#~ "add ellipse\n" -#~ "ctrl+click to add multiple ellipses" -#~ msgstr "Ellipse hinzufügen. Mit Strg+Mausklick können mehrere Ellipsen erstellt werden." - -#~ msgid "" -#~ "add circle\n" -#~ "ctrl+click to add multiple circles" -#~ msgstr "Kreis hinzufügen. Mit Strg+Mausklick können mehrere Kreise erstellt werden." - -#~ msgid "" -#~ "add brush\n" -#~ "ctrl+click to add multiple brush strokes" -#~ msgstr "Pinselstrich hinzufügen. Mit Strg+Mausklick können spitze Knoten erstellt werden." - -#~ msgid "normalize exposure" -#~ msgstr "normalisiert Belichtung" - -#~ msgid "" -#~ "discard the patch luminance from the calibration.\n" -#~ "useful when the chart is not lit by an even lighting,\n" -#~ "in which case luminance discrepancies would make color matching inaccurate." -#~ msgstr "" -#~ "verwirft die Patch-Helligkeit aus der Kalibrierung.\n" -#~ "nützlich, wenn die Karte nicht gleichmäßig beleuchtet ist,\n" -#~ "in diesem Fall würden Helligkeit-Diskrepanzen die Farbanpassung ungenau werden lassen." - -#~ msgid "recommended module" -#~ msgid_plural "recommended modules" -#~ msgstr[0] "empfohlene Module" -#~ msgstr[1] "empfohlen" - -#~ msgid "already present module" -#~ msgid_plural "already present modules" -#~ msgstr[0] "Modul bereits vorhanden" -#~ msgstr[1] "Module bereits vorhanden" - -#~ msgid "recommended widget" -#~ msgid_plural "recommended widgets" -#~ msgstr[0] "empfohlenes Modul" -#~ msgstr[1] "empfohlene Module" - -#~ msgid "already present widget" -#~ msgid_plural "already present widgets" -#~ msgstr[0] "Modul bereits vorhanden" -#~ msgstr[1] "Module bereits vorhanden" - -#~ msgid "hide the basics widgets group" -#~ msgstr "Gruppe der Basis-Widgets ausblenden" - -#~ msgid "to see it again, use the presets manager" -#~ msgstr "wieder einblenden über 'Voreinstellungen bearbeiten...'" - -#~ msgid "color manage cached thumbnails" -#~ msgstr "Farben gespeicherter Vorschaubilder korrigieren" - -#~ msgid "" -#~ "if enabled, cached thumbnails will be color managed so that lighttable and filmstrip can show correct colors. " -#~ "otherwise the results may look wrong once the display profile gets changed." -#~ msgstr "" -#~ "Wenn die Farbverwaltung für gespeicherte Vorschaubilder aktiviert ist, werden auf dem Leuchttisch und im " -#~ "Filmstreifen korrekte Farben angezeigt. Andernfalls können die Bilder falsch dargestellt werden, sobald das " -#~ "Bildschirmfarbprofil geändert wurde." - -#~ msgid "don't use embedded preview JPEG but half-size raw" -#~ msgstr "Eingebettete Vorschau-JPEGs nicht nutzen, sondern Raw halber Größe" - -#~ msgid "" -#~ "check this option to not use the embedded JPEG from the raw file but process the raw data. this is slower but " -#~ "gives you color managed thumbnails." -#~ msgstr "" -#~ "Diese Option auswählen, damit die in Raw-Dateien eingebetteten JPEG-Vorschauen nicht benutzt werden, sondern " -#~ "die Raw-Daten verarbeitet werden. Das ist langsamer, ermöglicht dafür aber Farbmanagement für Vorschaubilder." - -#~ msgid "changes the default collections-list order for folders, times and dates to run from recent to older" -#~ msgstr "Ändert die voreingestellte Sortierung von Sammlungen, so dass jüngere Bilder vor älteren gezeigt werden" - -#~ msgid "ignore JPEG images when importing film rolls" -#~ msgstr "JPEG-Bilder beim Import von Filmrollen ignorieren" - -#~ msgid "apply metadata on import" -#~ msgstr "Metadaten beim Import hinzufügen" - -#~ msgid "ctrl+click to add a sharp node" -#~ msgstr "Strg+Klick fügt einen spitzen Knoten hinzu." - -#~ msgid "ctrl+click to switch between smooth/sharp node" -#~ msgstr "Strg+Klick schaltet um glatten und spitzen Knoten um." - -#, c-format -#~ msgid "shift+scroll to set feather size, ctrl+scroll to set shape opacity (%d%%)" -#~ msgstr "" -#~ "Umschalt+scrollen stellt den Ausblendbereich ein,\n" -#~ "Strg+scrollen ändert die Deckkraft der Form (%d%%)." - -#, c-format -#~ msgid "" -#~ "shift+scroll to change compression\n" -#~ "ctrl+scroll to set opacity (%d%%)" -#~ msgstr "" -#~ "Umschalt+scrollen stellt den Ausblendbereich ein,\n" -#~ "Strg+scrollen passt die Deckkraft an (%d%%)." - -#, c-format -#~ msgid "" -#~ "scroll to set curvature, shift+scroll to change compression\n" -#~ "ctrl+scroll to set shape opacity (%d%%)" -#~ msgstr "" -#~ "Scrollen ändert die Krümmung, Umschalt+scrollen stellt den Ausblendbereich ein,\n" -#~ "Strg+scrollen ändert die Deckkraft (%d%%)." - -#~ msgid "move to rotate shape" -#~ msgstr "verschieben, um die Form zu drehen" - -#, c-format -#~ msgid "" -#~ "scroll to set size, shift+scroll to set feather size\n" -#~ "ctrl+scroll to set shape opacity (%d%%)" -#~ msgstr "" -#~ "Scrollen ändert die Größe, Umschalt+scrollen stellt den Ausblendbereich ein,\n" -#~ "Strg+scrollen ändert die Deckkraft (%d%%)." - -#, c-format -#~ msgid "" -#~ "shift+click to switch feathering mode, ctrl+click to rotate\n" -#~ "shift+scroll to set feather size, ctrl+scroll to set shape opacity (%d%%)," -#~ msgstr "" -#~ "Umschalt+Klick wechselt den Ausblend-Modus, Strg+Klick zum Drehen,\n" -#~ "Shift+scrollen stellt den Ausblendbereich ein, Strg+scrollen ändert die Deckkraft (%d%%)." - -#, c-format -#~ msgid "" -#~ "scroll to set brush size, shift+scroll to set hardness,\n" -#~ "ctrl+scroll to set opacity (%d%%)" -#~ msgstr "" -#~ "Scrollen ändert die Pinselgröße, Shift+scrollen stellt die Härte ein,\n" -#~ "Strg+scrollen ändert die Deckkraft (%d%%)." - -#, c-format -#~ msgid "scroll to set hardness, ctrl+scroll to set shape opacity (%d%%)" -#~ msgstr "Scrollen stellt die Härte ein, Strg+scrollen ändert die Deckkraft (%d%%)." - -#~ msgid "scroll to set brush size" -#~ msgstr "Scrollen ändert die Pinselgröße." - -#~ msgid "metadata to be applied per default" -#~ msgstr "Voreinstellung für die Metadaten, die beim Import hinzugefügt werden" - -#~ msgid "two times" -#~ msgstr "zweimal" - -#~ msgid "edit metadata exportation details" -#~ msgstr "Metadaten-Exporteinstellungen bearbeiten" - -#~ msgid "" -#~ "enter the time shown on the selected picture\n" -#~ "format: hh:mm:ss" -#~ msgstr "" -#~ "Zeit eingeben, die auf dem ausgewählten Bild angezeigt wird\n" -#~ "Format: hh:mm:ss" - -#~ msgid "" -#~ "time offset\n" -#~ "format: [+-]?[[hh:]mm:]ss" -#~ msgstr "" -#~ "Zeitversatz\n" -#~ "Format: [+-]?[[hh:]mm:]ss" - -#~ msgid "calculate the time offset from an image" -#~ msgstr "Zeitversatz anhand eines Bildes berechnen" - -#~ msgid "import settings" -#~ msgstr "Importeinstellungen" - -#~ msgid "hidden" -#~ msgstr "verborgen" - -#~ msgctxt "accel" -#~ msgid "clear" -#~ msgstr "löschen" - -#~ msgid "remove metadata from selected images" -#~ msgstr "Metadaten von ausgewählten Bildern entfernen" - -#~ msgid "configure metadata" -#~ msgstr "Exif-Metadaten exportieren" - -#~ msgid "file manager" -#~ msgstr "Dateiverwaltung" - -#~ msgid "culling" -#~ msgstr "Sichten" - -#~ msgid "dynamic zoom" -#~ msgstr "Dynamischer Zoom" - -#~ msgid "display intent" -#~ msgstr "Anzeigevorsatz" - -#~ msgctxt "accel" -#~ msgid "sticky preview" -#~ msgstr "Vorschau" - -#~ msgid "black and white" -#~ msgstr "schwarz-weiß" - -#~ msgid "" -#~ "do not load files with an extension of .jpg or .jpeg. this can be useful when there are raw+JPEG in a directory." -#~ msgstr "" -#~ "Lade keine Dateien mit der Endung .jpg oder .jpeg. Dies kann nützlich sein, wenn es Raw+JPEG im gleichen Ordner " -#~ "gibt." - -# zu frei? -#~ msgid "import options" -#~ msgstr "Import-Optionen" - -#~ msgid "import folders recursively" -#~ msgstr "Verzeichnisse rekursiv importieren" - -#~ msgid "recursively import subfolders. Each folder goes into a new film roll." -#~ msgstr "Verzeichnisse rekursiv importieren. Für jedes Verzeichnis wird eine eigene neue Filmrolle angelegt." - -#~ msgid "" -#~ "when there is a txt file next to an image it can be shown as an overlay over zoomed images on the lighttable. " -#~ "the txt file either has to be there at import time or the crawler has to be enabled" -#~ msgstr "" -#~ "Wenn es zu einem Bild eine txt-Datei gibt, dann kann diese über das eingezoomte Bild im Leuchttisch überlagert " -#~ "werden. Die txt-Datei muss entweder bereits beim Import des Bildes vorhanden sein oder der Crawler muss " -#~ "eingeschaltet sein." - -#~ msgid "show module groups and/or search text entry" -#~ msgstr "zeige Modulgruppen und/oder Suchmodul-Texteintrag" - -#~ msgctxt "preferences" -#~ msgid "show both" -#~ msgstr "zeige beide" - -#~ msgid "show module groups and/or search text entry. (needs a restart)" -#~ msgstr "" -#~ "Legt fest, ob Modulgruppen oder Suchmodul-Texteintrag oder beides angezeigt werden. Bei Änderung Neustart " -#~ "erforderlich." - -#~ msgid "hide built-in presets" -#~ msgstr "eingebaute Voreinstellungen verbergen" - -#~ msgid "tagged%" -#~ msgstr "getaggt%" - -#~ msgid "" -#~ "distort perspective automatically,\n" -#~ "for corrective and creative purposes.\n" -#~ "works in RGB,\n" -#~ "takes preferably a linear RGB input,\n" -#~ "outputs linear RGB." -#~ msgstr "" -#~ "Verformt die Perspektive, kann zur automatischen Korrektur perspektivischer Verzerrungen oder auch für kreative " -#~ "Zwecke genutzt werden. Modul arbeitet in RGB-Darstellung, Eingabe vorzugsweise in linearer RGB-Darstellung, " -#~ "Ausgabe in linearer RGB-Darstellung." - -#~ msgid "" -#~ "add or remove local contrast,\n" -#~ "for corrective and creative purposes.\n" -#~ "works in Lab,\n" -#~ "takes preferably a linear RGB input,\n" -#~ "outputs almost linear RGB." -#~ msgstr "" -#~ "Verstärkt oder reduziert lokalen Kontrast. Für korrigierende oder kreative Zwecke. Modul arbeitet im Lab-" -#~ "Farbraum, Eingabe vorzugsweise in linearer RGB-Darstellung, Ausgabe in quasi-linearer RGB-Darstellung." - -#~ msgid "deblur: large blur, strength 4" -#~ msgstr "Schärfen: starke Unschärfe, Stärke 4" - -#~ msgid "" -#~ "apply usual adjustments,\n" -#~ "for corrective and creative purposes.\n" -#~ "works in RGB,\n" -#~ "takes preferably a linear RGB input,\n" -#~ "outputs non-linear RGB." -#~ msgstr "" -#~ "Wendet grundlegende Anpassungen an. Für korrigierende oder kreative Zwecke. Modul arbeitet im RGB-Darstellung, " -#~ "Eingabe vorzugsweise in linearer RGB-Darstellung, Ausgabe in nicht-linearer RGB-Darstellung." - -#~ msgid "" -#~ "manipulate local and global contrast separately,\n" -#~ "for corrective and creative purposes.\n" -#~ "works in Lab,\n" -#~ "takes any RGB input,\n" -#~ "outputs non-linear RGB." -#~ msgstr "" -#~ "Verändert selektiv lokalen und globalen Kontrast. Für korrigierende oder kreative Zwecke. Modul arbeitet im Lab-" -#~ "Farbraum, Eingabe beliebiger RGB-Darstellung, Ausgabe in nicht-linearer RGB-Darstellung." - -#~ msgid "" -#~ "apply Orton effect for a dreamy aetherical look,\n" -#~ "for creative purposes.\n" -#~ "works in Lab,\n" -#~ "takes preferably a linear RGB input,\n" -#~ "outputs non-linear RGB." -#~ msgstr "" -#~ "Ahmt den Orton-Effekt nach und erzeugt einen verträumtes, glühendes Aussehen. Für kreative Zwecke. Modul " -#~ "arbeitet im Lab-Farbraum, Eingabe vorzugsweise in linearer RGB-Darstellung, Ausgabe in nicht-linearer RGB-" -#~ "Darstellung." - -#~ msgid "" -#~ "affect color, brightness and contrast\n" -#~ "for corrective and creative purposes.\n" -#~ "works in RGB\n" -#~ "takes preferably a linear RGB input,\n" -#~ "outputs possibly non-linear RGB, depending on settings." -#~ msgstr "" -#~ "Modifiziert Farbe, Helligkeit und Kontrast. Für korrigierende oder kreative Zwecke. Modul arbeitet im RGB-" -#~ "Darstellung, Eingabe vorzugsweise in linearer RGB-Darstellung, Ausgabe in linearer oder nicht-linearer RGB-" -#~ "Darstellung, je nach Einstellungen." - -#~ msgctxt "lowpass" -#~ msgid "brightness" -#~ msgstr "Helligkeit" - -#~ msgid "compress shadows/highlights (eigf) : very strong" -#~ msgstr "komprimiert Schatten/Spitzlichter: sehr stark" - -#~ msgid "compress shadows/highlights (gf) : very strong" -#~ msgstr "komprimiert Schatten/Spitzlichter: sehr stark" - -#~ msgid "effects" -#~ msgstr "Effekte" - -#~ msgid "minimal" -#~ msgstr "reduziert" - -#~ msgid "scene referred" -#~ msgstr "auf Aufnahme bezogen" - -#~ msgid "channel mixer rgb" -#~ msgstr "Kanalmixer RGB" - -#~ msgid "no white balance was found in raw image" -#~ msgstr "Weißabgleich konnte nicht im RAW-Bild gefunden werden." - -#~ msgid "do high quality processing for slideshow" -#~ msgstr "hochqualitatives Entwickeln für die Diashow" - -#~ msgid "same option as for export, but applies to slideshow." -#~ msgstr "Die selbe Option wie beim Export, hier jedoch für die Diashow." - -#~ msgid "scattering (coarse-grain noise)" -#~ msgstr "Streuung (grobes Rauschen)" - -#~ msgid "central pixel weight (details)" -#~ msgstr "zentrales Pixelgewicht (Details)" - -#~ msgctxt "accel" -#~ msgid "image operations" -#~ msgstr "Bildoperationen" - -#~ msgid "performance mode" -#~ msgstr "Performancemodus" - -#~ msgctxt "accel" -#~ msgid "rotation" -#~ msgstr "Drehung" - -#~ msgctxt "accel" -#~ msgid "lens shift (v)" -#~ msgstr "Objektivverschiebung (v)" - -#~ msgctxt "accel" -#~ msgid "lens shift (h)" -#~ msgstr "Objektivverschiebung (h)" - -#~ msgctxt "accel" -#~ msgid "shear" -#~ msgstr "Scherung" - -#~ msgctxt "accel" -#~ msgid "focal length" -#~ msgstr "Brennweite" - -#~ msgctxt "accel" -#~ msgid "crop factor" -#~ msgstr "Crop-Faktor" - -#~ msgctxt "accel" -#~ msgid "aspect adjust" -#~ msgstr "Seitenverhältnis anpassen" - -#~ msgctxt "accel" -#~ msgid "guides" -#~ msgstr "Hilfslinien" - -#~ msgctxt "accel" -#~ msgid "automatic cropping" -#~ msgstr "automatisch Zuschneiden" - -#~ msgctxt "accel" -#~ msgid "lens model" -#~ msgstr "Objektiv" - -#~ msgctxt "accel" -#~ msgid "mix" -#~ msgstr "Einblenden" - -#~ msgctxt "accel" -#~ msgid "graph scale" -#~ msgstr "Skalierung der Achsen" - -#~ msgctxt "accel" -#~ msgid "preserve colors" -#~ msgstr "erhalte Farben" - -#~ msgctxt "accel" -#~ msgid "exposure fusion" -#~ msgstr "Belichtungsfusion" - -#~ msgctxt "accel" -#~ msgid "black level correction" -#~ msgstr "Schwarzwert-Anpassung" - -#~ msgctxt "accel" -#~ msgid "exposure" -#~ msgstr "Belichtung" - -#~ msgctxt "accel" -#~ msgid "highlight compression" -#~ msgstr "Spitzlichtkompression" - -#~ msgctxt "accel" -#~ msgid "contrast" -#~ msgstr "Kontrast" - -#~ msgctxt "accel" -#~ msgid "middle grey" -#~ msgstr "mittelgrau" - -#~ msgctxt "accel" -#~ msgid "brightness" -#~ msgstr "Helligkeit" - -#~ msgctxt "accel" -#~ msgid "saturation" -#~ msgstr "Sättigung" - -#~ msgctxt "accel" -#~ msgid "vibrance" -#~ msgstr "Lebendigkeit" - -#~ msgctxt "accel" -#~ msgid "clip" -#~ msgstr "abschneiden" - -#~ msgctxt "accel" -#~ msgid "detail" -#~ msgstr "Detail" - -#~ msgctxt "accel" -#~ msgid "coarseness" -#~ msgstr "Korngröße" - -#~ msgctxt "accel" -#~ msgid "highlights" -#~ msgstr "Spitzlichter" - -#~ msgctxt "accel" -#~ msgid "shadows" -#~ msgstr "Schatten" - -#~ msgctxt "accel" -#~ msgid "midtone range" -#~ msgstr "Mitten" - -#~ msgctxt "accel" -#~ msgid "mode" -#~ msgstr "Modus" - -#~ msgctxt "accel" -#~ msgid "radius" -#~ msgstr "Radius" - -#~ msgctxt "accel" -#~ msgid "red" -#~ msgstr "Rot" - -#~ msgctxt "accel" -#~ msgid "green" -#~ msgstr "Grün" - -#~ msgctxt "accel" -#~ msgid "blue" -#~ msgstr "Blau" - -#~ msgctxt "accel" -#~ msgid "size" -#~ msgstr "Größe" - -#~ msgctxt "accel" -#~ msgid "threshold" -#~ msgstr "Schwellwert" - -#~ msgctxt "accel" -#~ msgid "strength" -#~ msgstr "Stärke" - -#~ msgctxt "accel" -#~ msgid "border size" -#~ msgstr "Randgröße" - -#~ msgctxt "accel" -#~ msgid "pick border color from image" -#~ msgstr "Rahmenfarbe aus dem Bild übernehmen" - -#~ msgctxt "accel" -#~ msgid "frame line size" -#~ msgstr "Größe der Rahmenlinie" - -#~ msgctxt "accel" -#~ msgid "frame line offset" -#~ msgstr "Versatz der Rahmenlinie" - -#~ msgctxt "accel" -#~ msgid "pick frame line color from image" -#~ msgstr "Rahmenlinien-Farbe aus dem Bild übernehmen" - -#~ msgctxt "accel" -#~ msgid "aspect" -#~ msgstr "Format" - -#~ msgctxt "accel" -#~ msgid "orientation" -#~ msgstr "Drehung" - -#~ msgctxt "accel" -#~ msgid "horizontal position" -#~ msgstr "horizontale Position" - -#~ msgctxt "accel" -#~ msgid "vertical position" -#~ msgstr "vertikale Position" - -#~ msgctxt "accel" -#~ msgid "destination" -#~ msgstr "Ziel" - -#~ msgctxt "accel" -#~ msgid "angle" -#~ msgstr "Winkel" - -#~ msgctxt "accel" -#~ msgid "top" -#~ msgstr "oben" - -#~ msgctxt "accel" -#~ msgid "bottom" -#~ msgstr "unten" - -#~ msgctxt "accel" -#~ msgid "aspect ratio" -#~ msgstr "Seitenverhältnis" - -#~ msgctxt "accel" -#~ msgid "flip" -#~ msgstr "spiegeln" - -#~ msgctxt "accel" -#~ msgid "keystone" -#~ msgstr "Trapezkorrektur" - -#~ msgctxt "accel" -#~ msgid "input saturation" -#~ msgstr "Eingangssättigung" - -#~ msgctxt "accel" -#~ msgid "output saturation" -#~ msgstr "Ausgangssättigung" - -#~ msgctxt "accel" -#~ msgid "contrast fulcrum" -#~ msgstr "Kontraststützpunkt" - -#~ msgctxt "accel" -#~ msgid "shadows hue" -#~ msgstr "Farbton der Schatten" - -#~ msgctxt "accel" -#~ msgid "shadows saturation" -#~ msgstr "Sättigung der Schatten" - -#~ msgctxt "accel" -#~ msgid "mid-tones factor" -#~ msgstr "Faktor der Mitten" - -#~ msgctxt "accel" -#~ msgid "mid-tones hue" -#~ msgstr "Farbton der Mitten" - -#~ msgctxt "accel" -#~ msgid "color control sliders" -#~ msgstr "Farbsteuerungsregler" - -#~ msgctxt "accel" -#~ msgid "lightness" -#~ msgstr "Helligkeit" - -#~ msgctxt "accel" -#~ msgid "green-red" -#~ msgstr "Grün / Rot" - -#~ msgctxt "accel" -#~ msgid "blue-yellow" -#~ msgstr "Blau / Gelb" - -#~ msgctxt "accel" -#~ msgid "target color" -#~ msgstr "Zielfarbe" - -#~ msgctxt "accel" -#~ msgid "green-magenta contrast" -#~ msgstr "Grün-Magenta-Kontrast" - -#~ msgctxt "accel" -#~ msgid "blue-yellow contrast" -#~ msgstr "Blau-Gelb-Kontrast" - -#~ msgctxt "accel" -#~ msgid "input profile" -#~ msgstr "Eingabeprofil" - -#~ msgctxt "accel" -#~ msgid "working profile" -#~ msgstr "Arbeitsprofil" - -#~ msgctxt "accel" -#~ msgid "gamut clipping" -#~ msgstr "Gamut beschneiden" - -#~ msgctxt "accel" -#~ msgid "hue" -#~ msgstr "Farbton" - -#~ msgctxt "accel" -#~ msgid "source mix" -#~ msgstr "Quellanteil" - -#~ msgctxt "accel" -#~ msgid "number of clusters" -#~ msgstr "Anzahl der Cluster" - -# wtf? -#~ msgctxt "accel" -#~ msgid "color dominance" -#~ msgstr "Farbdominanz" - -#~ msgctxt "accel" -#~ msgid "histogram equalization" -#~ msgstr "Histogramm-Angleichung" - -#~ msgctxt "accel" -#~ msgid "acquire as source" -#~ msgstr "Als Quelle berechnen" - -#~ msgctxt "accel" -#~ msgid "acquire as target" -#~ msgstr "Als Ziel berechnen" - -#~ msgctxt "accel" -#~ msgid "export profile" -#~ msgstr "Exportprofil" - -#~ msgctxt "accel" -#~ msgid "spatial extent" -#~ msgstr "Räumliche Ausdehnung" - -#~ msgctxt "accel" -#~ msgid "range extent" -#~ msgstr "Werte-Ausdehnung" - -#~ msgctxt "accel" -#~ msgid "precedence" -#~ msgstr "Priorität" - -#~ msgctxt "accel" -#~ msgid "select by" -#~ msgstr "Auswahl nach" - -# keine Ahnung, ob das passt, konnte den String in der GUI nicht finden. -#~ msgctxt "accel" -#~ msgid "process mode" -#~ msgstr "Modus" - -#~ msgctxt "accel" -#~ msgid "interpolation method" -#~ msgstr "Interpolationsverfahren" - -#~ msgctxt "accel" -#~ msgid "edge detection radius" -#~ msgstr "Kantenerkennungsradius" - -#~ msgctxt "accel" -#~ msgid "operation mode" -#~ msgstr "Modus" - -#~ msgctxt "accel" -#~ msgid "edge threshold" -#~ msgstr "Kantenschwellwert" - -#~ msgctxt "accel" -#~ msgid "color smoothing" -#~ msgstr "Farbglättung" - -#~ msgctxt "accel" -#~ msgid "match greens" -#~ msgstr "Grün anpassen" - -#~ msgctxt "accel" -#~ msgid "adjust autoset parameters" -#~ msgstr "Autoset-Parameter einstellen" - -#~ msgctxt "accel" -#~ msgid "preserve shadows" -#~ msgstr "Schatten erhalten" - -#~ msgctxt "accel" -#~ msgid "bias correction" -#~ msgstr "Bias-Korrektur" - -#~ msgctxt "accel" -#~ msgid "patch size" -#~ msgstr "Blockgröße" - -#~ msgctxt "accel" -#~ msgid "search radius" -#~ msgstr "Suchradius" - -#~ msgctxt "accel" -#~ msgid "method" -#~ msgstr "Methode" - -#~ msgctxt "accel" -#~ msgid "black" -#~ msgstr "Schwarz" - -#~ msgctxt "accel" -#~ msgid "auto-exposure" -#~ msgstr "Automatische Belichtung" - -# das muss weg -#~ msgctxt "accel" -#~ msgid "percentile" -#~ msgstr "Perzentil" - -#~ msgctxt "accel" -#~ msgid "target level" -#~ msgstr "Ziel-Wert" - -#~ msgctxt "accel" -#~ msgid "black exposure" -#~ msgstr "Schwarzbelichtung" - -#~ msgctxt "accel" -#~ msgid "middle grey luminance" -#~ msgstr "mittelgraue Luminanz" - -#~ msgctxt "accel" -#~ msgid "dynamic range scaling" -#~ msgstr "Skalierung des Dynamikbereichs" - -#~ msgctxt "accel" -#~ msgid "latitude" -#~ msgstr "Breitengrad" - -#~ msgctxt "accel" -#~ msgid "extreme luminance saturation" -#~ msgstr "extreme Luminanz-Sättigung" - -#~ msgctxt "accel" -#~ msgid "target black luminance" -#~ msgstr "Zielwert für Schwarz-Luminanz" - -#~ msgctxt "accel" -#~ msgid "target middle grey" -#~ msgstr "Zielwert für Mittleres Grau" - -#~ msgctxt "accel" -#~ msgid "target white luminance" -#~ msgstr "Zielwert für Weiß-Luminanz" - -#~ msgctxt "accel" -#~ msgid "target power transfer function" -#~ msgstr "Ziel-Stärke-Übertragungsfunktion" - -#~ msgctxt "accel" -#~ msgid "preserve chrominance" -#~ msgstr "Chrominanz erhalten" - -#~ msgctxt "accel" -#~ msgid "bias" -#~ msgstr "Bias" - -#~ msgctxt "accel" -#~ msgid "target" -#~ msgstr "Ziel" - -# Ugh ... -# Die Operatoren sollten auch übersetzt werden! -#~ msgctxt "accel" -#~ msgid "operator" -#~ msgstr "Operator" - -#~ msgctxt "accel" -#~ msgid "density" -#~ msgstr "Dichte" - -#~ msgctxt "accel" -#~ msgid "hardness" -#~ msgstr "Härte" - -#~ msgctxt "accel" -#~ msgid "midtones bias" -#~ msgstr "Mittenbetonung" - -#~ msgctxt "accel" -#~ msgid "distance" -#~ msgstr "Distanz" - -#~ msgctxt "accel" -#~ msgid "clipping threshold" -#~ msgstr "Abschneide-Schwellwert" - -#~ msgctxt "accel" -#~ msgid "sharpness" -#~ msgstr "Schärfe" - -#~ msgctxt "accel" -#~ msgid "contrast boost" -#~ msgstr "Kontrastverstärkung" - -#~ msgctxt "accel" -#~ msgid "pick color of film material from image" -#~ msgstr "Farbe des Filmmaterials aus dem Bild übernehmen" - -#~ msgctxt "accel" -#~ msgid "scale" -#~ msgstr "Skalierung" - -#~ msgctxt "accel" -#~ msgid "TCA R" -#~ msgstr "TCA R" - -#~ msgctxt "accel" -#~ msgid "TCA B" -#~ msgstr "TCA B" - -#~ msgctxt "accel" -#~ msgid "find camera" -#~ msgstr "Kamera finden" - -#~ msgctxt "accel" -#~ msgid "find lens" -#~ msgstr "Objektiv finden" - -#~ msgctxt "accel" -#~ msgid "select corrections" -#~ msgstr "Korrekturen auswählen" - -#~ msgctxt "accel" -#~ msgid "corrections" -#~ msgstr "Korrekturen" - -#~ msgctxt "accel" -#~ msgid "geometry" -#~ msgstr "Geometrie" - -#~ msgctxt "accel" -#~ msgid "gray" -#~ msgstr "Grau" - -#~ msgctxt "accel" -#~ msgid "white" -#~ msgstr "Weiß" - -#~ msgid "point tool: draw points" -#~ msgstr "Punktwerkzeug: Punkte zeichnen" - -#~ msgid "line tool: draw lines" -#~ msgstr "Linienwerkzeug: Linien zeichnen" - -#~ msgid "curve tool: draw curves" -#~ msgstr "Kurvenwerkzeug: Kurven zeichnen" - -#~ msgctxt "accel" -#~ msgid "point tool" -#~ msgstr "Punktwerkzeug" - -#~ msgctxt "accel" -#~ msgid "line tool" -#~ msgstr "Linienwerkzeug" - -#~ msgctxt "accel" -#~ msgid "curve tool" -#~ msgstr "Kurvenwerkzeug" - -#~ msgctxt "accel" -#~ msgid "node tool" -#~ msgstr "Knotenwerkzeug" - -#~ msgctxt "accel" -#~ msgid "blue shift" -#~ msgstr "Blauverschiebung" - -#~ msgctxt "accel" -#~ msgid "application color space" -#~ msgstr "Anwendungsfarbraum" - -#~ msgctxt "accel" -#~ msgid "interpolation" -#~ msgstr "Interpolationsverfahren" - -#~ msgctxt "accel" -#~ msgid "luma" -#~ msgstr "Luminanz" - -#~ msgctxt "accel" -#~ msgid "chroma" -#~ msgstr "Chrominanz" - -#~ msgctxt "accel" -#~ msgid "linear" -#~ msgstr "linear" - -#~ msgctxt "accel" -#~ msgid "gamma" -#~ msgstr "gamma" - -#~ msgctxt "accel" -#~ msgid "dynamic range" -#~ msgstr "Dynamikbereich" - -#~ msgctxt "accel" -#~ msgid "black relative exposure" -#~ msgstr "schwarz relative Belichtung" - -#~ msgctxt "accel" -#~ msgid "safety factor" -#~ msgstr "Sicherheitsfaktor" - -#~ msgctxt "accel" -#~ msgid "noise threshold" -#~ msgstr "Rausch-Schwellwert" - -#~ msgid "black level %i" -#~ msgstr "Schwarzwert %i" - -#~ msgctxt "accel" -#~ msgid "white point" -#~ msgstr "Weißpunkt" - -#~ msgctxt "accel" -#~ msgid "crop x" -#~ msgstr "Zuschnitt x" - -#~ msgctxt "accel" -#~ msgid "crop y" -#~ msgstr "Zuschnitt y" - -#~ msgctxt "accel" -#~ msgid "crop width" -#~ msgstr "Zuschnitt Breite" - -#~ msgctxt "accel" -#~ msgid "crop height" -#~ msgstr "Zuschnitt Höhe" - -#~ msgctxt "accel" -#~ msgid "width" -#~ msgstr "Breite" - -#~ msgctxt "accel" -#~ msgid "retouch tool circle" -#~ msgstr "Retuschierwerkzeug Kreis" - -#~ msgctxt "accel" -#~ msgid "retouch tool ellipse" -#~ msgstr "Retuschierwerkzeug Ellipse" - -#~ msgctxt "accel" -#~ msgid "retouch tool path" -#~ msgstr "Retuschierwerkzeug Pfad" - -#~ msgctxt "accel" -#~ msgid "retouch tool brush" -#~ msgstr "Retuschierwerkzeug Pinsel" - -#~ msgctxt "accel" -#~ msgid "continuous add circle" -#~ msgstr "endlos Kreise hinzufügen" - -#~ msgctxt "accel" -#~ msgid "continuous add ellipse" -#~ msgstr "endlos Ellipsen hinzufügen" - -#~ msgctxt "accel" -#~ msgid "continuous add path" -#~ msgstr "endlos Pfad hinzufügen" - -#~ msgctxt "accel" -#~ msgid "continuous add brush" -#~ msgstr "endlos Pinsel hinzufügen" - -#~ msgctxt "accel" -#~ msgid "show or hide shapes" -#~ msgstr "Flecken anzeigen/verbergen" - -#~ msgctxt "accel" -#~ msgid "white point adjustment" -#~ msgstr "Weißpunktanpassung" - -#~ msgctxt "accel" -#~ msgid "shadows color correction" -#~ msgstr "Farbkorrektur der Schatten" - -#~ msgctxt "accel" -#~ msgid "highlights color correction" -#~ msgstr "Farbkorrektur der Spitzlichter" - -# nicht schön -#~ msgctxt "accel" -#~ msgid "soften with" -#~ msgstr "weichzeichnen mit" - -#~ msgctxt "accel" -#~ msgid "amount" -#~ msgstr "Menge" - -#~ msgctxt "accel" -#~ msgid "pick primary color" -#~ msgstr "Erste Farbe wählen" - -#~ msgctxt "accel" -#~ msgid "pick secondary color" -#~ msgstr "Zweite Farbe wählen" - -#~ msgctxt "accel" -#~ msgid "shadows-hue" -#~ msgstr "Farbton der Schatten" - -#~ msgctxt "accel" -#~ msgid "shadows-saturation" -#~ msgstr "Sättigung der Schatten" - -#~ msgctxt "accel" -#~ msgid "highlights-hue" -#~ msgstr "Farbton der Spitzlichter" - -#~ msgctxt "accel" -#~ msgid "highlights-saturation" -#~ msgstr "Sättigung der Spitzlichter" - -#~ msgctxt "accel" -#~ msgid "balance" -#~ msgstr "Ausgleich" - -#~ msgctxt "accel" -#~ msgid "spot circle tool" -#~ msgstr "Kreiswerkzeug" - -#~ msgctxt "accel" -#~ msgid "spot ellipse tool" -#~ msgstr "Ellipsenwerkzeug" - -#~ msgctxt "accel" -#~ msgid "spot path tool" -#~ msgstr "Pfadwerkzeug" - -#~ msgctxt "accel" -#~ msgid "tint" -#~ msgstr "Farbton" - -#~ msgctxt "accel" -#~ msgid "temperature" -#~ msgstr "Farbtemperatur" - -# https://de.wikipedia.org/wiki/Demosaicing übersetzt "emerald" mit "Cyan" -#~ msgctxt "accel" -#~ msgid "emerald" -#~ msgstr "Cyan" - -#~ msgctxt "accel" -#~ msgid "settings" -#~ msgstr "Einstellungen" - -#~ msgctxt "accel" -#~ msgid "settings/as shot" -#~ msgstr "Voreinstellung/wie bei Aufnahme" - -#~ msgctxt "accel" -#~ msgid "settings/from image area" -#~ msgstr "Voreinstellung/aus Bildbereich" - -#~ msgctxt "accel" -#~ msgid "settings/user modified" -#~ msgstr "Voreinstellung/manuell angepasst" - -#~ msgctxt "accel" -#~ msgid "settings/camera reference" -#~ msgstr "Voreinstellung/Kamera-Referenzpunkt" - -#~ msgid "setting" -#~ msgstr "Einstellungen" - -#~ msgctxt "accel" -#~ msgid "scale for graph" -#~ msgstr "Skalierung der Achsen" - -#~ msgctxt "accel" -#~ msgid "color space" -#~ msgstr "Farbraum" - -#~ msgctxt "accel" -#~ msgid "filter diffusion" -#~ msgstr "Filterdiffusion" - -#~ msgctxt "accel" -#~ msgid "smoothing diameter" -#~ msgstr "Glättungsdurchmesser" - -#~ msgctxt "accel" -#~ msgid "edges refinement or feathering" -#~ msgstr "Kanten verbessern/ausblenden" - -#~ msgctxt "accel" -#~ msgid "mask quantization" -#~ msgstr "Maskenquantisierung" - -#~ msgctxt "accel" -#~ msgid "mask exposure compensation" -#~ msgstr "Maskenbelichtungskorrektur" - -#~ msgctxt "accel" -#~ msgid "mask contrast compensation" -#~ msgstr "Maskenkontrastkompensation" - -# wtf? -#~ msgctxt "accel" -#~ msgid "luminance estimator" -#~ msgstr "Luminanz-Schätzer" - -#~ msgctxt "accel" -#~ msgid "preserve details" -#~ msgstr "Details erhalten" - -#~ msgctxt "accel" -#~ msgid "contrast compression" -#~ msgstr "Kontrast-Kompression" - -#~ msgctxt "accel" -#~ msgid "mid-tones bias" -#~ msgstr "Mittenbetonung" - -#~ msgctxt "accel" -#~ msgid "fall-off strength" -#~ msgstr "Abfallstärke" - -#~ msgctxt "accel" -#~ msgid "horizontal center" -#~ msgstr "Horizontale Mitte" - -#~ msgctxt "accel" -#~ msgid "vertical center" -#~ msgstr "Vertikale Mitte" - -#~ msgctxt "accel" -#~ msgid "shape" -#~ msgstr "Form" - -#~ msgctxt "accel" -#~ msgid "width-height ratio" -#~ msgstr "Verhältnis Breite/Höhe" - -#~ msgctxt "accel" -#~ msgid "dithering" -#~ msgstr "Dithering" - -#~ msgctxt "accel" -#~ msgid "opacity" -#~ msgstr "Deckkraft" - -#~ msgctxt "accel" -#~ msgid "x offset" -#~ msgstr "X-Versatz" - -#~ msgctxt "accel" -#~ msgid "y offset" -#~ msgstr "Y-Versatz" - -# nicht so wirklich schön -#~ msgctxt "accel" -#~ msgid "marker" -#~ msgstr "Wasserzeichen" - -#~ msgctxt "accel" -#~ msgid "scale on" -#~ msgstr "Skalierung entsprechend" - -#~ msgid "mask blending : landscapes" -#~ msgstr "Maskenüberlagerung: Querformat" - -#~ msgid "" -#~ "'no' affects global and local contrast (safe if you only add contrast)\n" -#~ "'guided filter' only affects global contrast and tries to preserve local contrast\n" -#~ "'averaged guided filter' is a geometric mean of both methods" -#~ msgstr "" -#~ "„Nein” beeinflusst den globalen und lokalen Kontrast (sicher, wenn nur der Kontrast hinzugefügt wird).\n" -#~ "„geführter Filter” beeinflusst nur den globalen Kontrast und versucht, den lokalen Kontrast zu erhalten.\n" -#~ "„gemittelter geführter Filter” ist ein geometrisches Mittel beider Verfahren." - -#~ msgid "copy all" -#~ msgstr "alles kopieren" - -#~ msgid "paste..." -#~ msgstr "einfügen" - -#~ msgid "paste all" -#~ msgstr "alles einfügen" - -#~ msgctxt "accel" -#~ msgid "copy all" -#~ msgstr "alles kopieren" - -#~ msgctxt "accel" -#~ msgid "paste all" -#~ msgstr "alles einfügen" - -#~ msgid "unit" -#~ msgstr "Einheit" - -#~ msgid "unit in which to input the image size" -#~ msgstr "Maßeinheit der angegebenen Bildgröße" - -#~ msgid "" -#~ "maximum output width\n" -#~ "set to 0 for no scaling" -#~ msgstr "Maximale Ausgabebreite. Mit dem Wert „0” findet keinerlei Verkleinerung auf eine maximale Breite statt." - -#~ msgid "" -#~ "maximum output height\n" -#~ "set to 0 for no scaling" -#~ msgstr "Maximale Ausgabehöhe. Mit dem Wert „0” findet keinerlei Verkleinerung auf eine maximale Höhe statt." - -# "maximale Größe" sprengt leider das Layout. :-( -#~ msgid "max size" -#~ msgstr "max. Größe" - -#~ msgid "filter styles name" -#~ msgstr "Stilname" - -#~ msgid "blue vs yellow" -#~ msgstr "Blau / Gelb" - -# gefällt mir nicht, weder im Original, noch die Übersetzung. -#~ msgid "only draw images on map that are currently collected and filtered" -#~ msgstr "nur Bilder auf der Karte anzeigen, die aktuell gesammelt und gefiltert sind" - -#~ msgid "" -#~ "use the current filter settings to select the geotagged images drawn on the map, i.e. limit the images drawn to " -#~ "the current filmstrip. this limits the number of images drawn and thus reduces the time needed to draw the " -#~ "images." -#~ msgstr "" -#~ "Nutze die aktuellen Filter-Einstellungen, um die Bilder auszuwählen, die auf der Karte angezeigt werden. " -#~ "Hierdurch werden nur die Bilder auf der Karte angezeigt, die momentan im Filmstreifen zu sehen sind. Dies " -#~ "beschränkt die Anzahl der anzuzeigenden Bilder und verringert daher die Zeit, die zum Zeichnen der Karte " -#~ "benötigt wird." - -#~ msgid "" -#~ "an error has occurred while trying to open the database from\n" -#~ "\n" -#~ "<span style=\"italic\">%s</span>\n" -#~ "\n" -#~ "it seems that the database is corrupt.\n" -#~ "do you want to close darktable now to manually restore\n" -#~ "the database from a backup or start with a new one?" -#~ msgstr "" -#~ "Fehler beim Öffnen der Datenbank in\n" -#~ "\n" -#~ "<span style=\"italic\">%s</span>\n" -#~ "\n" -#~ "Es scheint, dass die Datei beschädigt ist.\n" -#~ "Soll darktable nun beendet werden, so dass die Datei\n" -#~ "von einem Backup zurückgespielt werden kann, oder soll\n" -#~ "mit einer neuen Datei gestartet werden?" - -#~ msgid "GUI thumbs and previews DPI scaling factor" -#~ msgstr "Skalierungsfaktor für Miniaturansichten und Vorschaubilder" - -#~ msgid "" -#~ "scale the thumbnails and previews resolutions for high DPI screens.\n" -#~ "increase if thumbnails look blurry, decrease if lighttable is too slow.\n" -#~ "set to -1.0 to use the system-defined global scaling.\n" -#~ "default is 1.0 on most systems, or 2.0 when using resolutions above 1920×1080 px.\n" -#~ "this needs a restart to apply changes." -#~ msgstr "" -#~ "Skaliert die Miniaturansichten und Vorschaubilder für hochauflösenden Bildschirme. Vergrößern, wenn " -#~ "Miniaturansichten unscharf aussehen, verringern, wenn das Leuchttisch-Modul zu langsam ist. Der Wert -1,0 " -#~ "entspricht der Standardskalierung des Systems. Dieser Skalierungswert ist auf den meisten Systemen 1,0, bzw. " -#~ "2,0 wenn die Auflösung größer über 1920×1080 Pixel liegt." - -# Adobe übersetzt das als "Predictor", habe dazu sonst nichts gefunden -#~ msgid "deflate with predictor (float)" -#~ msgstr "Deflate mit Prädiktor (Fließkomma)" - -#~ msgctxt "accel" -#~ msgid "green vs magenta" -#~ msgstr "Grün / Magenta" - -#~ msgctxt "accel" -#~ msgid "blue vs yellow" -#~ msgstr "Blau / Gelb" - -#~ msgid "steepness of the a* curve in Lab" -#~ msgstr "Steilheit der a*-Kurve im Lab-Raum" - -#~ msgid "steepness of the b* curve in Lab" -#~ msgstr "Steilheit der b*-Kurve im Lab-Raum" - -#~ msgid "area" -#~ msgstr "Fläche" - -#~ msgid "existing duplicates" -#~ msgstr "Existierenden Duplikate" - -#~ msgid "show only your favourite modules (selected in `more modules' below)" -#~ msgstr "Favoriten (unten unter „weitere Module” ausgewählt)" - -#~ msgid "tone group" -#~ msgstr "Helligkeitsgruppe" - -#~ msgid "color group" -#~ msgstr "Farbgruppe" - -#~ msgid "correction group" -#~ msgstr "Korrekturgruppe" - -#~ msgid "effects group" -#~ msgstr "Effektgruppe" - -#~ msgid "subset: no module" -#~ msgstr "Untergruppe: Kein Modul" - -#~ msgid "subset: all modules" -#~ msgstr "Untergruppe: Alle Module" - -#~ msgid "subset: default modules" -#~ msgstr "Untergruppe: Standard-Module" - -#~ msgid "workspace: all-purpose" -#~ msgstr "Bereich: Allzweck" - -#~ msgid "workspace: landscape & HDR" -#~ msgstr "Bereich: Landschaft & HDR" - -#~ msgid "workspace: architecture & streets" -#~ msgstr "Bereich: Architektur & Straßen" - -#~ msgid "workspace: portrait & beauty" -#~ msgstr "Bereich: Portrait & Beauty" - -#~ msgid "workspace: lowlight & high ISO" -#~ msgstr "Bereich: Schwaches Licht & Hoher ISO" - -#~ msgid "subset: creative modules only" -#~ msgstr "Untergruppe: Nur Kreativmodule" - -#~ msgid "subset: technical modules only" -#~ msgstr "Untergruppe: Nur technische Module" - -#~ msgid "to be imported" -#~ msgstr "importieren" - -#~ msgctxt "accel" -#~ msgid "method (bayer)" -#~ msgstr "Methode (Bayer)" - -#~ msgctxt "accel" -#~ msgid "method (xtrans)" -#~ msgstr "Methode (X-Trans)" - -#~ msgctxt "accel" -#~ msgid "scan for devices" -#~ msgstr "Nach Geräten suchen" - -#~ msgid "no supported devices found" -#~ msgstr "keine unterstützten Geräte gefunden" - -#~ msgid "scan for newly attached devices" -#~ msgstr "Suche nach neu angeschlossenen Geräten" - -#, fuzzy -#~ msgid "darktable could not load" -#~ msgstr "darktable - Beschlunigungsfenster" - -#, fuzzy -#~ msgid "switching to lighttable now." -#~ msgstr "zum Leuchttisch wechseln" - -#~ msgid "" -#~ "toggle over/under exposed indication\n" -#~ "right click for options" -#~ msgstr "" -#~ "Anzeige von Über-/Unterbelichtung,\n" -#~ "Rechtsklick für Einstellungen" - -#~ msgid "threshold of what shall be considered underexposed" -#~ msgstr "Schwellwert dafür, was als unterbelichtet markiert wird" - -#~ msgid "threshold of what shall be considered overexposed" -#~ msgstr "Schwellwert dafür, was als überbelichtet markiert wird" - -#~ msgctxt "accel" -#~ msgid "presets" -#~ msgstr "Voreinstellungen" - -#~ msgid "invalid ratio format. it should be non zero" -#~ msgstr "Ungültiges Seitenverhältnis. Es sollte ungleich null sein." - -#~ msgctxt "white balance" -#~ msgid "camera" -#~ msgstr "Kamera" - -#~ msgctxt "white balance" -#~ msgid "camera neutral" -#~ msgstr "neutral" - -#~ msgctxt "white balance" -#~ msgid "spot" -#~ msgstr "manuell setzen" - -#~ msgid "error: output file is a directory. please specify file name" -#~ msgstr "Fehler: Ausgabedatei ist ein Verzeichnis. Bitte einen Dateinamen angeben" - -#~ msgid " g " -#~ msgstr " g " - -#~ msgid " R " -#~ msgstr " R " - -#~ msgid " G " -#~ msgstr " G " - -#~ msgid " B " -#~ msgstr " B " - -#~ msgid " H " -#~ msgstr " H " - -#~ msgid " S " -#~ msgstr " S " - -#~ msgid " L " -#~ msgstr " L " - -#~ msgid "selected metadata are imported from image and override the default value" -#~ msgstr "" -#~ "Ausgewählte Metadaten werden, so vorhanden, aus dem Bild importiert und ersetzen den angegeben Standardwert." - -#~ msgctxt "usercss" -#~ msgid "save theme tweaks" -#~ msgstr "Designanpassungen speichern" - -#~ msgid "scale to use in the graph. use logarithmic scale for more precise control near the blacks" -#~ msgstr "Skala für den Graph. Logarithmisch erlaubt eine präzisere Kontrolle der Schatten" - -#~ msgid "factor of " -#~ msgstr "Faktor für " - -#~ msgid "D max" -#~ msgstr "D max" - -#~ msgid "# shapes:" -#~ msgstr "# Formen:" - -#~ msgid " R " -#~ msgstr " R " - -#~ msgid " G " -#~ msgstr " G " - -#~ msgid " B " -#~ msgstr " B " - -#~ msgctxt "accel" -#~ msgid "base of the logarithm" -#~ msgstr "Basis des Logarithmus" - -#~ msgid " L " -#~ msgstr " L " - -#~ msgid " a " -#~ msgstr " a " - -#~ msgid " b " -#~ msgstr " b " - -# "anmelden" ist zu lang -#~ msgid "log" -#~ msgstr "Login" - -#~ msgid "base of the logarithm" -#~ msgstr "Basis des Logarithmus" - -#~ msgid "" -#~ "use the per-camera basecurve by default instead of the generic manufacturer one if there is one available " -#~ "(needs a restart)" -#~ msgstr "" -#~ "Benutze standardmäßig die kameraspezifische Basiskurve, falls verfügbar, anstatt die generischen " -#~ "Herstellerkurven. Bei Änderung Neustart erforderlich." - -#~ msgid "filter order" -#~ msgstr "Filter-Ordnung" - -#~ msgid "filter order of gaussian blur" -#~ msgstr "Filter-Ordnung des Gaußschen Weichzeichners" - -#~ msgctxt "size" -#~ msgid "image" -#~ msgstr "Bild" - -#~ msgid "auto-apply basecurve" -#~ msgstr "Basiskurve automatisch anwenden" - -#~ msgid "use a basecurve by default (needs a restart)" -#~ msgstr "Benutze immer eine Basiskurve. Bei Änderung Neustart erforderlich." - -#~ msgid "lift/gamma/gain controls as seen in video editors" -#~ msgstr "Lift-/Gamma-/Gain-Einstellungen wie sie aus Videobearbeitungsprogrammen bekannt sind" - -#~ msgid "07 EV dynamic range" -#~ msgstr "07 EV Dynamikbereich" - -#~ msgid "09 EV dynamic range" -#~ msgstr "09 EV Dynamikbereich" - -#~ msgid "11 EV dynamic range" -#~ msgstr "11 EV Dynamikbereich" - -#~ msgid "13 EV dynamic range" -#~ msgstr "13 EV Dynamikbereich" - -#~ msgid "15 EV (backlighting)" -#~ msgstr "15 EV (Gegenlicht)" - -#~ msgid "17 EV (HDR)" -#~ msgstr "17 EV (HDR)" - -#~ msgid "target power transfer function" -#~ msgstr "Ziel-Stärke-Übertragungsfunktion" - -#~ msgctxt "accel" -#~ msgid "no overlays" -#~ msgstr "keine Bildinfos" - -#~ msgctxt "accel" -#~ msgid "overlays on mouse hover" -#~ msgstr "Bildinfos bei Überfahren mit Maus" - -#~ msgctxt "accel" -#~ msgid "permanent overlays" -#~ msgstr "permanente Bildinfos" - -#~ msgctxt "accel" -#~ msgid "permanent extended overlays" -#~ msgstr "permanente erweiterte Bildinfos" - -#~ msgctxt "accel" -#~ msgid "permanent overlays extended on mouse hover" -#~ msgstr "permanente Bildinfos erweitert bei Überfahren mit Maus" - -#~ msgid "do you really want to send %d selected image to trash?" -#~ msgid_plural "do you really want to send %d selected images to trash?" -#~ msgstr[0] "Soll wirklich %d ausgewähltes Bild in den Papierkorb verschoben werden?" -#~ msgstr[1] "Sollen wirklich %d ausgewählte Bilder in den Papierkorb verschoben werden?" - -#~ msgid "do you really want to physically delete %d selected image from disk?" -#~ msgid_plural "do you really want to physically delete %d selected images from disk?" -#~ msgstr[0] "Soll wirklich %d ausgewähltes Bild physisch von der Festplatte gelöscht werden?" -#~ msgstr[1] "Sollen wirklich %d ausgewählte Bilder physisch von der Festplatte gelöscht werden?" - -#~ msgid "pick GUI color from image" -#~ msgstr "GUI-Farbe aus dem Bild übernehmen" - -#~ msgid "you have reached the start of your selection (%d image)" -#~ msgid_plural "you have reached the start of your selection (%d images)" -#~ msgstr[0] "Anfang der Auswahl erreicht (%d Bild)" -#~ msgstr[1] "Anfang der Auswahl erreicht (%d Bilder)" - -#~ msgid "you have reached the end of your selection (%d image)" -#~ msgid_plural "you have reached the end of your selection (%d images)" -#~ msgstr[0] "Ende der Auswahl erreicht (%d Bild)" -#~ msgstr[1] "Ende der Auswahl erreicht (%d Bilder)" - -#~ msgid "GUI options" -#~ msgstr "GUI-Optionen" - -#~ msgid "if set to true, thumb overlay shows filename and some exif data." -#~ msgstr "wenn auf true gesetzt, zeigt das Vorschaubild-Overlay den Dateinamen und einige Exif-Daten an." - -#~ msgctxt "preferences" -#~ msgid "no scrollbars" -#~ msgstr "keine Scrollbalken" - -#~ msgctxt "preferences" -#~ msgid "lighttable" -#~ msgstr "Leuchttisch" - -#~ msgid "%s/%s: %s" -#~ msgstr "%s/%s: %s" - -#~ msgid "darktable - error locking database" -#~ msgstr "darktable – Fehler beim Sperren der Datenbank" - -#~ msgid "close" -#~ msgstr "schließen" - -#~ msgctxt "accel" -#~ msgid "delete" -#~ msgstr "Löschen" - -#~ msgid "delete branch" -#~ msgstr "Zweig löschen" - -#~ msgid "'|' character is not allowed to create a tag. aborting." -#~ msgstr "'|' Zeichen ist für die Erstellung eines Tag nicht erlaubt. Abbruch." - -#~ msgid "show image overlays" -#~ msgstr "Bildinfos anzeigen" - -#~ msgid "width of the side panels in pixels" -#~ msgstr "Breite der Seitenleisten in Pixeln" - -#~ msgid "(needs a restart)" -#~ msgstr "(erfordert Neustart)" - -#~ msgid "enable the filmstrip in darkroom, tethering and map modes." -#~ msgstr "Filmstreifen im Dunkelkammer-, Tethering- und Karten-Modus aktivieren." - -#~ msgid "enable timeline" -#~ msgstr "Zeitleiste aktivieren" - -#~ msgid "enable the timeline in lighttable mode." -#~ msgstr "Zeitleiste im Leuchttisch-Modus aktivieren." - -#~ msgid "reload selected xmp files" -#~ msgstr "ausgewählte XMP-Dateien neu laden" - -#~ msgid "double click to reset" -#~ msgstr "Doppelklick zum Zurücksetzen" - -#~ msgid "ctrl+scroll to set shape opacity (%d%%)" -#~ msgstr "Strg+Scrollen um die Deckkraft zu ändern (%d%%)" - -#~ msgid "[facebook] unexpected URL format\n" -#~ msgstr "[facebook] unerwartetes Format der URL\n" - -#~ msgid "" -#~ "step 1: a new window or tab of your browser should have been loaded. you have to login into your facebook " -#~ "account there and authorize darktable to upload photos before continuing." -#~ msgstr "" -#~ "Schritt 1: Ein neues Fenster oder Tab sollte sich in Ihrem Browser geöffnet haben. Loggen Sie sich dort nun in " -#~ "Ihren Facebook-Account ein und autorisieren Sie darktable Fotos hochzuladen, bevor Sie fortfahren." - -#~ msgid "step 2: paste your browser URL and click the OK button once you are done." -#~ msgstr "Schritt 2: Fügen Sie die Browser-URL hier ein und klicken Sie auf OK, sobald Sie fertig sind." - -#~ msgid "facebook authentication" -#~ msgstr "Facebook-Authentifizierung" - -#~ msgid "URL:" -#~ msgstr "URL:" - -#~ msgid "please enter the validation URL" -#~ msgstr "bitte die Validierungs-URL eingeben" - -#~ msgid "the given URL is not valid, it should look like: " -#~ msgstr "die angegebene URL ist nicht gültig, sie sollte wie folgt aussehen: " - -#~ msgid "authentication successful" -#~ msgstr "Authentifizierung erfolgreich" - -#~ msgid "" -#~ "a new window or tab of your browser should have been loaded. you have to login into your facebook account there " -#~ "and authorize darktable to upload photos before continuing." -#~ msgstr "" -#~ "Ein neues Fenster oder Tab sollte sich in Ihrem Browser geöffnet haben. Loggen Sie sich dort nun in Ihren " -#~ "Facebook-Account ein und autorisieren Sie darktable, Fotos hochzuladen, bevor Sie fortfahren." - -#~ msgid "new account" -#~ msgstr "neuer Account" - -#~ msgid "other account" -#~ msgstr "anderer Account" - -#~ msgid "unable to retrieve the album list" -#~ msgstr "konnte Albenliste nicht holen" - -#~ msgid "facebook webalbum" -#~ msgstr "Facebook-Webalbum" - -#~ msgid "summary" -#~ msgstr "Zusammenfassung" - -#~ msgid "privacy" -#~ msgstr "Privatsphäre" - -#~ msgid "public" -#~ msgstr "öffentlich" - -#~ msgid "friends of friends" -#~ msgstr "Freunde von Freunden" - -#~ msgid "unable to create album, no title provided" -#~ msgstr "Kann Album nicht anlegen, kein Titel angegeben" - -#~ msgid "unable to create album" -#~ msgstr "Kann Album nicht erstellen" - -#~ msgid "unable to export photo to webalbum" -#~ msgstr "Kann Foto nicht ins Webalbum exportieren" - -#~ msgid "%d/%d exported to facebook webalbum" -#~ msgid_plural "%d/%d exported to facebook webalbum" -#~ msgstr[0] "%d/%d ins Facebook-Webalbum exportiert" -#~ msgstr[1] "%d/%d ins Facebook-Webalbum exportiert" - -#~ msgid "flickr authentication: %s" -#~ msgstr "Flickr-Authentifizierung: %s" - -#~ msgid "" -#~ "step 1: a new window or tab of your browser should have been loaded. you have to login into your flickr account " -#~ "there and authorize darktable to upload photos before continuing." -#~ msgstr "" -#~ "Schritt 1: Ein neues Fenster oder Tab sollte sich in Ihrem Browser geöffnet haben. Loggen Sie sich dort nun in " -#~ "Ihren Flickr-Account ein und autorisieren Sie darktable, Fotos hochzuladen, bevor Sie fortfahren." - -#~ msgid "step 2: click the OK button once you are done." -#~ msgstr "Schritt 2: Auf OK klicken, sobald Sie fertig sind." - -#~ msgid "flickr authentication" -#~ msgstr "Flickr-Authentifizierung" - -#~ msgid "flickr webalbum" -#~ msgstr "Flickr-Webalbum" - -#~ msgid "without album" -#~ msgstr "Ohne Album" - -#~ msgid "flickr user" -#~ msgstr "Benutzer" - -#~ msgid "flickr login" -#~ msgstr "Flickr-Anmeldung" - -#~ msgid "friends + family" -#~ msgstr "Freunde + Familie" - -#~ msgid "photosets" -#~ msgstr "Photosets" - -#~ msgid "my new photoset" -#~ msgstr "Mein neues Photoset" - -#~ msgid "could not upload to flickr!" -#~ msgstr "Konnte nicht zu Flickr hochladen!" - -#~ msgid "%d/%d exported to flickr webalbum" -#~ msgid_plural "%d/%d exported to flickr webalbum" -#~ msgstr[0] "%d/%d ins Flickr-Webalbum exportiert" -#~ msgstr[1] "%d/%d ins Flickr-Webalbum exportiert" - -#~ msgid "" -#~ "step 1: a new window or tab of your browser should have been loaded. you have to login into your google account " -#~ "there and authorize darktable to upload photos before continuing." -#~ msgstr "" -#~ "Schritt 1: Ein neues Fenster oder Tab sollte sich in Ihrem Browser geöffnet haben. Loggen Sie sich dort nun in " -#~ "Ihren Google+-Account ein und autorisieren Sie darktable, Fotos hochladen zu dürfen, bevor Sie fortfahren." - -#~ msgid "step 2: paste the verification code shown to you in the browser and click the OK button once you are done." -#~ msgstr "" -#~ "Schritt 2: Fügen Sie den Verifizierungs-Code, der im Browser angezeigt wird, hier ein und klicken Sie auf OK, " -#~ "sobald Sie fertig sind." - -#~ msgid "google authentication" -#~ msgstr "Google-Authentifizierung" - -#~ msgid "verification code:" -#~ msgstr "Verifizierungscode:" - -#~ msgid "please enter the verification code" -#~ msgstr "bitte den Verifizierungscode eingeben" - -#~ msgid "google photos" -#~ msgstr "Google Photos" - -#~ msgid "unable to export to google photos album" -#~ msgstr "Kann Foto nicht ins Google-Photos-Album exportieren" - -#~ msgid "%d/%d exported to google photos album" -#~ msgid_plural "%d/%d exported to google photos album" -#~ msgstr[0] "%d/%d ins Google-Album exportiert" -#~ msgstr[1] "%d/%d ins Google-Album exportiert" - -#~ msgid "local laplacian: inconsistent output" -#~ msgstr "lokaler Laplace-Filter: inkonsistente Ausgabe" - -#~ msgctxt "accel" -#~ msgid "controls" -#~ msgstr "Kontrollen" - -#~ msgid "chroma (use on 1st instance)" -#~ msgstr "Chroma (Verwendung in der 1. Instanz)" - -#~ msgid "luma (use on 2nd instance)" -#~ msgstr "Luma (Verwendung in der 2. Instanz)" - -#~ msgctxt "accel" -#~ msgid "shadows/highlights balance" -#~ msgstr "Schatten/Spitzlichter-Verhältnis" - -#~ msgctxt "modulename" -#~ msgid "gamma" -#~ msgstr "Gamma" - -#~ msgctxt "accel" -#~ msgid "compression" -#~ msgstr "Kompression" - -#~ msgctxt "accel" -#~ msgid "auto scale" -#~ msgstr "Automatisch skalieren" - -#~ msgid "invalid png header from %s" -#~ msgstr "ungültiger PNG-Dateikopf in „%s”" - -#~ msgid "hald cluts (png)" -#~ msgstr "HaldCLUTs (png)" - -#~ msgid "3D lut (cube)" -#~ msgstr "3D-LUT (cube)" - -#~ msgid "select a png (haldclut) or a cube file" -#~ msgstr "eine png- (HaldCLUT) oder eine cube-Datei auswählen" - -#~ msgid "REC.709" -#~ msgstr "REC.709" - -#~ msgid "lin sRGB/REC.709" -#~ msgstr "lineares sRGB/REC.709" - -#~ msgctxt "accel" -#~ msgid "shadows range" -#~ msgstr "Schattenbereich" - -#~ msgid "import film" -#~ msgstr "Film importieren" - -#~ msgid "copyright" -#~ msgstr "Rechte" - -#~ msgctxt "accel" -#~ msgid "rate 0" -#~ msgstr "0 Sterne" - -#~ msgctxt "accel" -#~ msgid "rate 1" -#~ msgstr "1 Stern" - -#~ msgctxt "accel" -#~ msgid "rate 2" -#~ msgstr "2 Sterne" - -#~ msgctxt "accel" -#~ msgid "rate 3" -#~ msgstr "3 Sterne" - -#~ msgctxt "accel" -#~ msgid "rate 4" -#~ msgstr "4 Sterne" - -#~ msgctxt "accel" -#~ msgid "rate 5" -#~ msgstr "5 Sterne" - -#~ msgctxt "accel" -#~ msgid "color red" -#~ msgstr "Farbmarkierung Rot" - -#~ msgctxt "accel" -#~ msgid "color yellow" -#~ msgstr "Farbmarkierung Gelb" - -#~ msgctxt "accel" -#~ msgid "color blue" -#~ msgstr "Farbmarkierung Blau" - -#~ msgctxt "accel" -#~ msgid "color purple" -#~ msgstr "Farbmarkierung Violett" - -#~ msgctxt "accel" -#~ msgid "navigate up" -#~ msgstr "Navigiere hoch" - -#~ msgctxt "accel" -#~ msgid "navigate down" -#~ msgstr "Navigiere runter" - -#~ msgctxt "accel" -#~ msgid "navigate page up" -#~ msgstr "Navigiere Seite hoch" - -#~ msgctxt "accel" -#~ msgid "navigate page down" -#~ msgstr "Navigiere Seite runter" - -#~ msgctxt "accel" -#~ msgid "scroll up" -#~ msgstr "Scrolle nach oben" - -#~ msgctxt "accel" -#~ msgid "scroll left" -#~ msgstr "Scrolle nach links" - -#~ msgctxt "accel" -#~ msgid "scroll right" -#~ msgstr "Scrolle nach rechts" - -#~ msgctxt "accel" -#~ msgid "scroll center" -#~ msgstr "Scrolle in die Mitte" - -#~ msgctxt "preferences" -#~ msgid "import" -#~ msgstr "importieren" - -#~ msgid "albums" -#~ msgstr "Alben" - -#, fuzzy -#~ msgid "migrate to fixed algorithm" -#~ msgstr "Typ des Weichzeichnungsalgorithmus" - -#~ msgid "log-log (xy)" -#~ msgstr "log-log (xy)" - -#~ msgid "semi-log (x)" -#~ msgstr "semi-log (x)" - -#~ msgid "semi-log (y)" -#~ msgstr "semi-log (y)" - -#~ msgid "discard" -#~ msgstr "verwerfen" - -#~ msgctxt "styles" -#~ msgid "import" -#~ msgstr "importieren" - -#~ msgid "" -#~ "attached tags,\n" -#~ "doubleclick to detach" -#~ msgstr "" -#~ "angehängte Tags,\n" -#~ "Doppelklick zum Entfernen" - -#~ msgid "" -#~ "related tags,\n" -#~ "doubleclick to attach" -#~ msgstr "" -#~ "verwandte Tags,\n" -#~ "Doppelklick zum Anhängen" - -#~ msgctxt "verb" -#~ msgid "import" -#~ msgstr "importieren" - -#~ msgctxt "verb" -#~ msgid "export" -#~ msgstr "exportieren" - -#~ msgid "" -#~ "the image will first be processed in full resolution, and downscaled at the very end. this can result in better " -#~ "quality sometimes, but will always be slower." -#~ msgstr "" -#~ "Das Bild wird zuerst in voller Auflösung berechnet und anschließend runterskaliert. Dies kann manchmal ein " -#~ "besseres Ergebnis liefern, wird aber immer langsamer sein." - -#~ msgid "display mask is currently disabled by another module" -#~ msgstr "Die Anzeige der Maske ist derzeit durch ein anderes Modul deaktiviert" - -#~ msgid "activate blending: uniformly, with drawn mask, with parametric mask, or combination of both" -#~ msgstr "" -#~ "Überblenden aktivieren: einheitlich, mit gezeichneter Maske, parametrischer Maske oder einer Kombination davon" - -#~ msgid "drop box" -#~ msgstr "Drop Box" - -# Ugh ... -#~ msgid "radius of the patches to match. increase for more sharpness" -#~ msgstr "Radius der Blöcke, die verglichen werden. Erhöhen für mehr Schärfe" - -#~ msgid "expose" -#~ msgstr "Exposè" - -#~ msgid "you are making a mistake!" -#~ msgstr "Sie machen einen Fehler!" - -#~ msgid "_yes, i understood. please let me suffer by using 32-bit darktable." -#~ msgstr "_Ja, ich habe verstanden. Bitte lass mich leiden, indem ich darktable in 32 Bit benutze." - -#~ msgid "" -#~ "warning!\n" -#~ "you are using a 32-bit build of darktable.\n" -#~ "the 32-bit build has severely limited virtual address space.\n" -#~ "we have had numerous reports that darktable exhibits sporadic issues and crashes when using 32-bit builds.\n" -#~ "we strongly recommend you switch to a proper 64-bit build.\n" -#~ "otherwise, you are GUARANTEED to experience issues which cannot be fixed.\n" -#~ msgstr "" -#~ "Achtung!\n" -#~ "Dies ist eine 32 Bit-Version von darktable.\n" -#~ "Eine 32 Bit-Version hat nur einen sehr eingeschränkten virtuellen Adressraum.\n" -#~ "Wir hatten eine Reihe an Fehlerberichten darüber, dass darktable gelegentlich Probleme macht und abstürzen " -#~ "kann, wenn 32 Bit-Versionen benutzt werden.\n" -#~ "Wir raten dringend dazu, zu einem vernünftigen 64 Bit-System zu wechseln.\n" -#~ "Andernfalls werden sie GARANTIERT Probleme haben, die nicht behoben werden können.\n" - -#~ msgid "ctrl+scroll to set shape opacity, shift+scroll to set feather size" -#~ msgstr "Strg+Scrollen, um die Deckkraft zu ändern, Umschalt+Scrollen ändert die Randgröße" - -#~ msgid "B/W" -#~ msgstr "S/W" - -#~ msgid "adjust the black level" -#~ msgstr "Schwarzwert anpassen" - -#~ msgid "auto tuning safety factor" -#~ msgstr "Sicherheitsfaktor der automatischen Anpassung" - -#~ msgid "gives more room to shadows or highlights, to protect the details" -#~ msgstr "gibt Schatten oder Lichtern mehr Raum, um die Details zu schützen" - -#~ msgid "" -#~ "desaturates the output, if the contrast adjustment\n" -#~ "produces over-saturation in shadows" -#~ msgstr "" -#~ "entsättigt die Ausgabe, wenn die Kontrasteinstellung\n" -#~ "eine Übersättigung in den Schatten erzeugt" - -#~ msgid "destination power factor" -#~ msgstr "Ziel-Power-Faktor" - -#~ msgid "click and drag to add point" -#~ msgstr "Klicken und Ziehen um eine Punkt hinzuzufügen" - -#~ msgctxt "sharpen" -#~ msgid "sharpen" -#~ msgstr "Schärfen" - -#~ msgid "med contrast" -#~ msgstr "mittlerer Kontrast" - -#~ msgid "high contrast" -#~ msgstr "hoher Kontrast" - -#~ msgid "scale chroma" -#~ msgstr "Chrominanz skalieren" - -#~ msgctxt "scale" -#~ msgid "manual" -#~ msgstr "manuell" - -#~ msgid "automatic in XYZ" -#~ msgstr "automatisch in XYZ" - -#~ msgid "automatic in RGB" -#~ msgstr "automatisch in RGB" - -#~ msgid "prepare printing image %d on `%s'" -#~ msgstr "bereite Druck von Bild %d auf „%s” vor" - -#~ msgid "Virtual dark room, split toning an image" -#~ msgstr "Split-Toning in der Dunkelkammer" - -#~ msgid "ICC profiles in %s/color/out or %s/color/out" -#~ msgstr "ICC-Profile in %s/color/out oder %s/color/out" - -#~ msgid "0ev, +3ev" -#~ msgstr "0EV, +3EV" - -#~ msgid "0ev, +3ev, +6ev" -#~ msgstr "0EV, +3EV, +6EV" - -#, fuzzy -#~ msgid "color checker lut" -#~ msgstr "Pipette" - -#, fuzzy -#~ msgid "light skin :A1" -#~ msgstr "Nachtsicht" - -#, fuzzy -#~ msgid "bluish green :A5" -#~ msgstr " Grün " - -#, fuzzy -#~ msgid "purple red :B1" -#~ msgstr "Violett & Grün" - -#, fuzzy -#~ msgid "purple :B3" -#~ msgstr "Violett" - -#, fuzzy -#~ msgid "orange yellow :B5" -#~ msgstr "Farbmarkierung Gelb" - -#, fuzzy -#~ msgid "blue :C0" -#~ msgstr "Blau" - -#, fuzzy -#~ msgid "green :C1" -#~ msgstr " Grün " - -#, fuzzy -#~ msgid "yellow :C3" -#~ msgstr "Gelb" - -#, fuzzy -#~ msgid "magenta :C4" -#~ msgstr "Magenta" - -#, fuzzy -#~ msgid "cyan :C5" -#~ msgstr "Cyan" - -#, fuzzy -#~ msgid "white :D0" -#~ msgstr "Weiß" - -#, fuzzy -#~ msgid "neutral 8 :D1" -#~ msgstr "neutral" - -#, fuzzy -#~ msgid "neutral 65 :D2" -#~ msgstr "neutral" - -#, fuzzy -#~ msgid "neutral 5 :D3" -#~ msgstr "neutral" - -#, fuzzy -#~ msgid "neutral 35 :D4" -#~ msgstr "neutral" - -#, fuzzy -#~ msgid "black :D5" -#~ msgstr "Schwarz" - -#, fuzzy -#~ msgctxt "accel" -#~ msgid "disable tools" -#~ msgstr "sichtbar für" - -#, fuzzy -#~ msgid "[init_f] `%s' color matrix not found for 4bayer image!\n" -#~ msgstr "„%s” Farbmatrix nicht gefunden!" - -# Probleme mit "löschen" != "datei löschen"? -#~ msgid "clear selection (ctrl-shift-a)" -#~ msgstr "entferne die aktuelle Auswahl (Strg-Shift-a)" - -#~ msgctxt "accel" -#~ msgid "apply style from popup menu" -#~ msgstr "Stil aus Popup-Menü anwenden" - -#, fuzzy -#~ msgid "[colorspaces] `%s' color matrix not found for 4bayer image!\n" -#~ msgstr "„%s” Farbmatrix nicht gefunden!" - -#, fuzzy -#~ msgid "[temperature] `%s' color matrix not found for 4bayer image!\n" -#~ msgstr "„%s” Farbmatrix nicht gefunden!" - -#~ msgid "select text color" -#~ msgstr "Textfarbe wählen" - -#~ msgctxt "preferences" -#~ msgid "gnome keyring" -#~ msgstr "GNOME Keyring" - -#~ msgid "VNG4 (slow)" -#~ msgstr "VNG4 (langsam)" - -#~ msgid "sync..." -#~ msgstr "synchronisieren ..." - -#~ msgid "local HDD" -#~ msgstr "lokale Festplatte" - -# sollte man da "Clipping" lassen? -#~ msgid "almost no clipping" -#~ msgstr "fast kein Abschneiden" - -# ist das richtig? -#~ msgid "pre-processed image" -#~ msgstr "entwickeltes Bild" - -#~ msgid "source raw data" -#~ msgstr "Bild-Raw-Daten" - -#~ msgid "" -#~ "ls\t\t\t\t\tlist content of directory\n" -#~ "cd <dir>\t\t\tchange directory\n" -#~ "mkdir <dir>\t\t\tcreate directory\n" -#~ "mv <src> <dst>\tmove <src> to <dst>\n" -#~ "cp <src> <dst>\t\tcopy <src> to <dst>\n" -#~ "rm <file>\t\t\tdelete <file>\n" -#~ "rmdir <dir>\t\t\tdelete empty directory" -#~ msgstr "" -#~ "ls\t\t\t\t\tzeige Inhalt des Verzeichnisses\n" -#~ "cd <verz>\t\t\tVerzeichnis wechseln\n" -#~ "mkdir <verz>\t\tVerzeichnis erstellen\n" -#~ "mv <src> <dst>\tverschiebe <src> nach <dst>\n" -#~ "cp <src> <dst>\t\tkopiere <src> nach <dst>\n" -#~ "rm <datei>\t\t\tlösche <datei>\n" -#~ "rmdir <verz>\t\tlösche leeres Verzeichnis" - -#~ msgid "always try to use LittleCMS 2" -#~ msgstr "Versuche immer, LittleCMS 2 zu benutzen" - -#~ msgid "_OK" -#~ msgstr "_OK" - -#~ msgid "_Close" -#~ msgstr "_Schließen" - -#~ msgid "_Cancel" -#~ msgstr "_Abbrechen" - -#~ msgid "_Save" -#~ msgstr "_Speichern" - -#~ msgctxt "accel" -#~ msgid "capture view" -#~ msgstr "Aufnahme-Ansicht" - -#~ msgid "Select _All" -#~ msgstr "_alles auswählen" - -#, fuzzy -#~ msgid "_Clear" -#~ msgstr "löschen" - -#~ msgid "natural" -#~ msgstr "natürlich" - -#~ msgid "1:2" -#~ msgstr "1:2" - -#~ msgid "5:4" -#~ msgstr "5:4" - -#~ msgctxt "accel" -#~ msgid "toggle softproofing" -#~ msgstr "Softproofing umschalten" - -#~ msgctxt "accel" -#~ msgid "toggle gamutcheck" -#~ msgstr "Gamut-Überprüfung umschalten" - -#, fuzzy -#~ msgctxt "accel" -#~ msgid "spatial blur" -#~ msgstr "räumliche Ausdehnung" - -#, fuzzy -#~ msgid "camera neutral white balance" -#~ msgstr "Kamera-Weißabgleich" - -#~ msgid "spot white balance" -#~ msgstr "manuell setzen" - -#~ msgid "invalid ratio format for `%s'. it should be \"number:number\"\n" -#~ msgstr "Ungültiges Seitenverhältnis für „%s”. Es sollte „Zahl:Zahl“ sein" - -#, fuzzy -#~ msgid "paper" -#~ msgstr "Blende" - -#~ msgid "" -#~ "maximum width of the image drawing area in darkroom mode. adjust to your screen\n" -#~ "(needs a restart and will invalidate current thumbnail caches)." -#~ msgstr "" -#~ "Maximale Breite der Zeichenfläche für Bilder im Dunkelkammer-Modus. An den Bildschirm anpassen.\n" -#~ "(erfordert einen Neustart und macht den momentanen Vorschau-Cache unbrauchbar)" - -#~ msgid "maximum height of image drawing area" -#~ msgstr "Maximale Höhe der Zeichenfläche für Bilder" - -#~ msgid "" -#~ "maximum height of the image drawing area in darkroom mode. adjust to your screen\n" -#~ "(needs a restart and will invalidate current thumbnail caches)." -#~ msgstr "" -#~ "Maximale Höhe der Zeichenfläche für Bilder im Dunkelkammer-Modus. An den Bildschirm anpassen.\n" -#~ "(erfordert einen Neustart und macht den momentanen Vorschau-Cache unbrauchbar)" - -#~ msgctxt "preferences" -#~ msgid "low quality (fast)" -#~ msgstr "niedrige Qualität (schnell)" - -#~ msgctxt "preferences" -#~ msgid "high quality (slow)" -#~ msgstr "hohe Qualität (langsam)" - -#~ msgid "" -#~ "off - no compression in memory, JPG on disk. low quality - DXT1 (fast). high quality - DXT1, same memory as low " -#~ "quality variant but slower." -#~ msgstr "" -#~ "aus – Keine Kompression im Speicher, JPG auf der Festplatte. Niedrige Qualität – DXT1 (schnell). Hohe Qualität " -#~ "– DXT1, gleicher Speicherverbrauch wie bei niedriger Qualität aber langsamer." - -#~ msgctxt "accel" -#~ msgid "decrease contrast" -#~ msgstr "Kontrast verringern" - -#~ msgid "8-bit" -#~ msgstr "8-Bit" - -#~ msgid "16-bit" -#~ msgstr "16-Bit" - -#~ msgctxt "modulename" -#~ msgid "let's go float!" -#~ msgstr "Fließkommazahlen sind fein!" - -#~ msgid "show modules explicit specified by user" -#~ msgstr "Module, die explizit ausgewählt wurden" - -#~ msgid "the modules used in active pipe" -#~ msgstr "Module, die aktuell verwendet werden" - -#~ msgid "* ubuntu packaging, color management, video tutorials *" -#~ msgstr "* Ubuntu-Paketierung, Farbmanagement, Video-Anleitungen *" - -#~ msgid "* OpenCL pipeline: *" -#~ msgstr "* OpenCL-Pipeline: *" - -#~ msgid "* networking, battle testing, translation expert *" -#~ msgstr "* Netzwerken, Battle-Testen, Übersetzungsexperte *" - -#, fuzzy -#~ msgctxt "accel" -#~ msgid "rotate" -#~ msgstr "drehen" - -#, fuzzy -#~ msgid "select a directory" -#~ msgstr "Verzeichnis wählen" - -#~ msgid "double click to reset to `%<PRId64>'" -#~ msgstr "Doppelklick, um auf ‚%<PRId64>‘ zurückzusetzen" - -# uh. passt das so? -#~ msgid "enhance coarse" -#~ msgstr "grobe Strukturen verstärken" - -#~ msgid "sharpen and denoise (strong)" -#~ msgstr "schärfen und entrauschen (stark)" - -#~ msgid "sharpen and denoise" -#~ msgstr "schärfen und entrauschen" - -#~ msgid "denoise (subtle)" -#~ msgstr "entrauschen (schwach)" - -#~ msgid "clarity (subtle)" -#~ msgstr "Klarheit (schwach)" - -#~ msgid "sharpness of edges at each feature size" -#~ msgstr "Kantenschärfe bei jeder Strukturgröße" - -#~ msgid "fotogenetic (point & shoot)" -#~ msgstr "Fotogenic (Point & Shoot)" - -#~ msgid "fotogenetic (EV3)" -#~ msgstr "Fotogenetic (EV3)" - -#~ msgctxt "accel" -#~ msgid "level" -#~ msgstr "Wert" - -#~ msgid "rotate by -90" -#~ msgstr "um -90° drehen" - -#~ msgid "rotate by 90" -#~ msgstr "um 90° drehen" - -#~ msgid "rotate by 180" -#~ msgstr "um 180° drehen" - -#~ msgid "Beta RGB (compatible)" -#~ msgstr "Beta RGB (kompatibel)" - -#~ msgctxt "accel" -#~ msgid "deflicker" -#~ msgstr "Entflackern" - -#~ msgid "cache locally" -#~ msgstr "lokal zwischenspeichern" - -#~ msgid "error creating GUI, see stderr" -#~ msgstr "Fehler beim Generieren der GUI, siehe stderr" - -#~ msgid "error creating GUI, DT_SIMPLE_GUI_NONE could not be found" -#~ msgstr "Fehler beim Generieren der GUI, DT_SIMPLE_GUI_NONE wurde nicht gefunden" - -#~ msgctxt "accel" -#~ msgid "expose statuses" -#~ msgstr "Bildeigenschaften anzeigen" - -#~ msgid "indicate focus regions" -#~ msgstr "Fokusbereiche markieren" - -#~ msgid "" -#~ "in full screen preview in lighttable (`z'-mode), draw an overlay indicating image sharpness. red is very sharp, " -#~ "blue slightly less so." -#~ msgstr "" -#~ "Lege eine Markierung über die Vollbild-Voransicht des Leuchttischs (‚z‘-Modus), die die Schärfe des Bildes " -#~ "anzeigt. Rot ist sehr scharf, Blau etwas weniger." - -#~ msgid "failed to create filmroll for camera import, import aborted." -#~ msgstr "Fehler beim Erstellen einer Filmrolle für den Kamera-Import, Import abgebrochen" - -#~ msgid "my jobcode" -#~ msgstr "Mein Job-Kode" - -#~ msgid "" -#~ "the following three settings describe the directory structure and file renaming for import storage and images; " -#~ "if you don't know how to use this, keep the default settings." -#~ msgstr "" -#~ "Die folgenden drei Einstellungen beschreiben die Verzeichnisstruktur und die Dateibenennung für Importspeicher " -#~ "und -bilder; wenn nicht klar ist, wie es benutzt werden soll, sollten die Standardwerte beibehalten werden." - -#~ msgid "storage directory" -#~ msgstr "Speicher-Verzeichnis" - -#~ msgid "directory structure" -#~ msgstr "Verzeichnis-Struktur" - -#~ msgid "filename structure" -#~ msgstr "Aufbau des Dateinamens" - -#~ msgid "above settings expands to:" -#~ msgstr "Beispiel zur aktuellen Einstellung:" - -#~ msgid "external backup" -#~ msgstr "Externes Backup" - -#~ msgid "" -#~ "external backup is an option to automatic do a backup of the imported image(s) to another physical location, " -#~ "when activated it does looks for specified backup foldername of mounted devices on your system... each found " -#~ "folder is used as basedirectory in the above storage structure and when a image are downloaded from camera it " -#~ "is replicated to found backup destinations." -#~ msgstr "" -#~ "Das externe Backup ist eine Option, um automatisch eine Sicherung der importierten Bilder an einen anderen " -#~ "physischen Ort zu machen. Wenn aktiviert, wird auf eingehängten Dateisystemen nach dem angegebenen Backup-" -#~ "Verzeichnisnamen gesucht … Jeder gefundene Ordner wird als Basisverzeichnis der obigen Speicherstruktur benutzt " -#~ "und wenn ein Bild von der Kamera heruntergeladen wurde, dann wird es in die gefundenen Sicherungsziele " -#~ "repliziert." - -#~ msgid "check this option to enable automatic backup of imported images" -#~ msgstr "Diese Option auswählen, um ein automatisches Backup der importierten Bilder zu aktivieren" - -#~ msgid "warn if no backup destinations are present" -#~ msgstr "Warnen, wenn keine Backup-Ziele verfügbar sind" - -#~ msgid "check this option to get an interactive warning if no backupdestinations are present" -#~ msgstr "Diese Option auswählen, um eine interaktive Warnung zu bekommen, wenn keine Backup-Ziele verfügbar sind" - -#~ msgid "backup foldername" -#~ msgstr "Backup-Verzeichnisname" - -#~ msgid "" -#~ "this is the name of folder that indicates a backup destination,\n" -#~ "if such a folder is found in any mounter media it is used as a backup destination." -#~ msgstr "" -#~ "Dies ist der Verzeichnisname der auf ein Backup-Ziel hinweist,\n" -#~ "wenn ein solches Verzeichnis auf einem eingehängten\n" -#~ "Medium gefunden wird, wird es als Backup-Ziel benutzt." - -#~ msgid "please set the basedirectory settings before importing" -#~ msgstr "Die Basisverzeichnis-Einstellungen müssen vor dem Importieren gesetzt werden" - -#~ msgid "please set the subdirectory settings before importing" -#~ msgstr "Die Unterverzeichnis-Einstellungen müssen vor dem Importieren gesetzt werden" - -#~ msgid "please set the filenamepattern settings before importing" -#~ msgstr "Das Dateinamenformat muss vor dem Importieren gesetzt werden" - -#~ msgid "8-bit JPG" -#~ msgstr "8-Bit JPG" - -#~ msgid "float PFM" -#~ msgstr "Fließkomma PFM" - -#~ msgid "16-bit PPM" -#~ msgstr "16-Bit PPM" - -#~ msgid "8/16-bit TIFF" -#~ msgstr "8/16-Bit TIFF" - -#~ msgid "" -#~ "enter the pattern for retrieved images\n" -#~ "⚠\t$(SEQUENCE) is mandatory\n" -#~ "recognized variables:" -#~ msgstr "" -#~ "Muster für runtergeladene Bilder angeben\n" -#~ "⚠\t$(SEQUENCE) ist Pflicht\n" -#~ "erkannte Variablen:" - -#~ msgid "failed to create session path %s." -#~ msgstr "Fehler beim Erstellen des Sitzungs-Pfades %s." - -#~ msgid "keywords" -#~ msgstr "Schlüsselwörter" - -#~ msgid "" -#~ "step 1: a new window or tab of your browser should have been loaded. you have to login into your picasa account " -#~ "there and authorize darktable to upload photos before continuing." -#~ msgstr "" -#~ "Schritt 1: Ein neues Fenster oder Tab sollte sich in Ihrem Browser geöffnet haben. Loggen Sie sich dort nun in " -#~ "Ihren Picasa-Account ein und autorisieren Sie darktable Fotos hochzuladen, bevor Sie fortfahren." - -#~ msgid "" -#~ "center view will be dithered if this option is on and module dithering is activated (default for new images). " -#~ "switch this to off if you can accept display banding and prefer to have a slightly faster processing speed." -#~ msgstr "" -#~ "Hauptbereich wird gedithert, wenn diese Option ausgewählt und das Dithering-Modul aktiviert ist (Standard für " -#~ "neue Bilder). Falls Banding der Anzeige akzeptabel ist und eine etwas höhere Geschwindigkeit gewünscht wird, " -#~ "dann kann diese Option ausgeschaltet werden." - -#~ msgid "picasa webalbum" -#~ msgstr "Picasa-Webalbum" - -#~ msgid "iso" -#~ msgstr "ISO" - -#~ msgid "8-bit jpg" -#~ msgstr "8-Bit JPG" - -#~ msgid "16-bit ppm" -#~ msgstr "16-Bit PPM" - -#~ msgid "8/16-bit tiff" -#~ msgstr "8/16-Bit TIFF" - -#~ msgid "url:" -#~ msgstr "URL:" - -#~ msgid "b/w" -#~ msgstr "s/w" - -#, fuzzy -#~ msgid "adobe RGB (compatible)" -#~ msgstr "Adobe RGB (kompatibel)" - -#~ msgctxt "accel" -#~ msgid "rotate 90 degrees ccw" -#~ msgstr "Um 90° gegen den Uhrzeigersinn drehen" - -#~ msgctxt "accel" -#~ msgid "rotate 90 degrees cw" -#~ msgstr "Um 90° im Uhrzeigersinn drehen" - -#~ msgctxt "accel" -#~ msgid "tca R" -#~ msgstr "TCA R" - -#~ msgctxt "accel" -#~ msgid "tca B" -#~ msgstr "TCA B" - -#~ msgid "tca red" -#~ msgstr "TCA Rot" - -#, fuzzy -#~ msgid "manual wb" -#~ msgstr "manuell" - -#, fuzzy -#~ msgid "camera wb" -#~ msgstr "Kamera" - -#, fuzzy -#~ msgid "auto wb" -#~ msgstr "auto" - -#~ msgid "rgb" -#~ msgstr "RGB" - -#~ msgid "create hdr" -#~ msgstr "HDR erzeugen" - -#~ msgid "rotate selected images 90 degrees ccw" -#~ msgstr "Ausgewählte Bilder um 90° gegen den Uhrzeigersinn drehen" - -#~ msgctxt "accel" -#~ msgid "rotate selected images 90 degrees cw" -#~ msgstr "Ausgewählte Bilder um 90° im Uhrzeigersinn drehen" - -#~ msgctxt "accel" -#~ msgid "rotate selected images 90 degrees ccw" -#~ msgstr "Ausgewählte Bilder um 90° gegen den Uhrzeigersinn drehen" - -#~ msgctxt "accel" -#~ msgid "create hdr" -#~ msgstr "HDR erzeugen" - -#, fuzzy -#~ msgid "cc-by-sa" -#~ msgstr "CC-by-sa" - -#, fuzzy -#~ msgid "cc-by-nd" -#~ msgstr "CC-by-nd" - -#, fuzzy -#~ msgid "cc-by-nc" -#~ msgstr "CC-by-nc" - -#, fuzzy -#~ msgid "cc-by-nc-sa" -#~ msgstr "CC-by-nc-sa" - -#, fuzzy -#~ msgid "cc-by-nc-nd" -#~ msgstr "CC-by-nc-nd" - -#~ msgid "delete originals after import" -#~ msgstr "Originale nach dem Import löschen" - -#~ msgid "check this option if you want to delete images on camera after download to computer" -#~ msgstr "" -#~ "Diese Option auswählen, wenn die Bilder auf der Kamera gelöscht werden sollen, nachdem sie auf den Computer " -#~ "geladen wurden" - -#~ msgid "Friends" -#~ msgstr "Freunde" - -#~ msgid "Public" -#~ msgstr "öffentlich" - -#~ msgid "Daylight" -#~ msgstr "Tageslicht" - -#~ msgid "Black & white" -#~ msgstr "Schwarz & Weiß" - -#~ msgid "CC-by" -#~ msgstr "CC-by" - -#~ msgid "All rights reserved." -#~ msgstr "Alle Rechte vorbehalten." - -#~ msgctxt "accel" -#~ msgid "rate desert" -#~ msgstr "kein Stern" - -#~ msgid "curve #%d" -#~ msgstr "Kurve #%d" - -#~ msgid "export multiple images in parallel" -#~ msgstr "Mehrere Bilder parallel exportieren" - -#~ msgid "" -#~ "set this variable to num_threads if you want multithreaded export to process multiple images at a time. be " -#~ "warned: every thread will need about 1GB of memory. setting this to 1 switches on per-image parallelization." -#~ msgstr "" -#~ "Diese Variable auf num_threads setzen, wenn beim Export mehrere Bilder zugleich verarbeitet werden sollen. " -#~ "Warnung: jeder Thread benötigt rund 1GB Arbeitsspeicher. Wird dieser Wert auf 1 gesetzt, dann findet eine " -#~ "Parallelisierung auf Bildebene statt." - -#~ msgid "only, if.." -#~ msgstr "nur, wenn …" - -#~ msgid "enable conditional blending" -#~ msgstr "bedingtes Überblenden aktivieren" - -#~ msgid "Flickr account not authenticated" -#~ msgstr "Flickr-Account nicht authentifiziert" - -#~ msgid "select the hue tone for shadows" -#~ msgstr "Farbton für die Schatten wählen" - -#~ msgid "select the hue tone for highlights" -#~ msgstr "Farbton für die Spitzlichter wählen" - -#~ msgid "spot removal only supports up to 32 spots" -#~ msgstr "Fleckenentfernung unterstützt nur 32 Flecken" - -#~ msgctxt "accel" -#~ msgid "temperature out" -#~ msgstr "Farbtemperatur aus" - -#~ msgid "temperature out" -#~ msgstr "Farbtemperatur aus" - -#~ msgid " (needs a restart) " -#~ msgstr " (erfordert Neustart) " - -#~ msgid "run indexer" -#~ msgstr "Indexer ausführen" - -#~ msgid "index images in background, so you can search them by similarity." -#~ msgstr "Indiziere Bilder im Hintergrund, so dass diese anhand von Ähnlichkeiten gesucht werden können." - -#~ msgid "" -#~ "darktable has trapped an illegal instruction which probably means that an invalid processor optimized codepath " -#~ "is used for your cpu, please try reproduce the crash running 'gdb darktable' from the console and post the " -#~ "backtrace log to mailing list with information about your CPU and where you got the package from." -#~ msgstr "" -#~ "darktable hat einen unerlaubten Prozessorbefehl abgefangen. Dies bedeutet wahrscheinlich, dass der Code für " -#~ "einen anderen Prozessor optimiert wurde als Sie nutzen. Versuchen Sie bitte, den Programmabsturz zu wiederholen " -#~ "während sie darktable mit ‚gdb darktable‘ aus der Konsole ausführen, und senden Sie den Backtrace anschließend " -#~ "and die Mailingliste, zusammen mit Informationen über Ihren Prozessor und woher Sie dieses Programm bezogen " -#~ "haben." - -#~ msgid "SIMD extensions found: " -#~ msgstr "SIMD-Erweiterungen gefunden:" - -#~ msgid "" -#~ "darktable is very cpu intensive and uses SSE2 SIMD instructions for heavy calculations. This gives a better " -#~ "user experience but also defines a minimum processor requirement.\n" -#~ "\n" -#~ "The processor in YOUR system does NOT support SSE2. darktable will now close down.\n" -#~ "\n" -#~ "%s" -#~ msgstr "" -#~ "darktable ist sehr Prozessor-intensiv und benutzt SSE2-SIMD-Befehle für aufwändige Berechnungen. Dies führt zu " -#~ "einer besseren Benutzer-Interaktion, legt aber auch eine Mindestanforderung an den Prozessor fest.\n" -#~ "\n" -#~ "Der Prozessor in IHREM System unterstützt SSE2 NICHT. darktable wird sich nun beenden.\n" -#~ "\n" -#~ "%s" - -#~ msgid "this image has not been indexed yet." -#~ msgstr "dieses Bild wurde noch nicht indiziert." - -#~ msgid "re-indexing %d image" -#~ msgid_plural "re-indexing %d images" -#~ msgstr[0] "%d Bild neu indizieren" -#~ msgstr[1] "%d Bilder neu indizieren" - -#~ msgid "select an image as target for search of similar images" -#~ msgstr "ein Bild als Ziel für die Suche nach ähnlichen Bildern auswählen" - -#~ msgid "float hdr" -#~ msgstr "Fließkomma HDR" - -#~ msgid "public album" -#~ msgstr "öffentliches Album" - -#~ msgctxt "accel" -#~ msgid "lower threshold" -#~ msgstr "unterer Schwellwert" - -#~ msgctxt "accel" -#~ msgid "upper threshold" -#~ msgstr "oberer Schwellwert" - -#~ msgctxt "accel" -#~ msgid "color scheme" -#~ msgstr "Farbzusammenstellung" - -#~ msgid "set the score weight of histogram matching" -#~ msgstr "setzt die Gewichtung des Histogramm-Vergleichs" - -#~ msgid "light map weight" -#~ msgstr "Gewichtung der Helligkeit" - -#~ msgid "set the score weight of light map matching" -#~ msgstr "setzt die Gewichtung des Helligkeits-Vergleichs" - -#~ msgid "view similar" -#~ msgstr "ähnliche anzeigen" - -#~ msgid "match images with selected image and views the result" -#~ msgstr "Bilder mit ausgewähltem Bild abgleichen und Ergebnis anzeigen" - -#~ msgid "use preset as default" -#~ msgstr "Voreinstellung als Standard verwenden" - -#~ msgid "adjust perspective for horizontal keystone distortion" -#~ msgstr "Perspektive für horizontale Trapezverzerrung anpassen" - -#~ msgid "keystone v" -#~ msgstr "Trapezkorrektur v" - -#~ msgctxt "accel" -#~ msgid "keystone h" -#~ msgstr "Trapezkorrektur h" - -#~ msgctxt "accel" -#~ msgid "keystone v" -#~ msgstr "Trapezkorrektur v" - -# nicht schön -#~ msgctxt "accel" -#~ msgid "split" -#~ msgstr "Teilung" - -# nicht schön -#~ msgid "split" -#~ msgstr "Teilung" - -#~ msgid "offset of filter in angle of rotation" -#~ msgstr "Versatz des Filters in Drehrichtung" - -#~ msgid "%s as favorite" -#~ msgstr "%s als Favorit" - -#~ msgid "filename relative to ~/.config/darktable or starting with a slash (needs a restart)." -#~ msgstr "" -#~ "Dateiname relativ zum Verzeichnis ~/.config/darktable, sonst mit Schrägstrich beginnen (erfordert Neustart)." - -#~ msgctxt "accel" -#~ msgid "linear part" -#~ msgstr "linearer Teil" - -#, fuzzy -#~ msgid "colorblend" -#~ msgstr "Farbmarkierung Blau" - -# nicht schön -#~ msgid "" -#~ "enter the path where to create the website gallery:\n" -#~ "$(ROLL_NAME) - roll of the input image\n" -#~ "$(FILE_FOLDER) - directory of the input image\n" -#~ "$(FILE_NAME) - basename of the input image\n" -#~ "$(FILE_EXTENSION) - extension of the input image\n" -#~ "$(SEQUENCE) - sequence number\n" -#~ "$(YEAR) - year\n" -#~ "$(MONTH) - month\n" -#~ "$(DAY) - day\n" -#~ "$(HOUR) - hour\n" -#~ "$(MINUTE) - minute\n" -#~ "$(SECOND) - second\n" -#~ "$(EXIF_YEAR) - exif year\n" -#~ "$(EXIF_MONTH) - exif month\n" -#~ "$(EXIF_DAY) - exif day\n" -#~ "$(EXIF_HOUR) - exif hour\n" -#~ "$(EXIF_MINUTE) - exif minute\n" -#~ "$(EXIF_SECOND) - exif second\n" -#~ "$(STARS) - star rating\n" -#~ "$(LABELS) - colorlabels\n" -#~ "$(PICTURES_FOLDER) - pictures folder\n" -#~ "$(HOME) - home folder\n" -#~ "$(DESKTOP) - desktop folder" -#~ msgstr "" -#~ "Speicherpfad, wo die Webseiten-Galerie erzeugt werden soll:\n" -#~ "$(ROLL_NAME) - Filmrolle des Eingabebildes\n" -#~ "$(FILE_FOLDER) - Verzeichnis des Eingabebildes\n" -#~ "$(FILE_NAME) - Basisname des Eingabebildes\n" -#~ "$(FILE_EXTENSION) - Erweiterung des Eingabebildes\n" -#~ "$(SEQUENCE) - Sequenznummer\n" -#~ "$(YEAR) - Jahr\n" -#~ "$(MONTH) - Monat\n" -#~ "$(DAY) - Tag\n" -#~ "$(HOUR) - Stunde\n" -#~ "$(MINUTE) - Minute\n" -#~ "$(SECOND) - Sekunde\n" -#~ "$(EXIF_YEAR) - EXIF Jahr\n" -#~ "$(EXIF_MONTH) - EXIF Monat\n" -#~ "$(EXIF_DAY) - EXIF Tag\n" -#~ "$(EXIF_HOUR) - EXIF Stunde\n" -#~ "$(EXIF_MINUTE) - EXIF Minute\n" -#~ "$(EXIF_SECOND) - EXIF Sekunde\n" -#~ "$(STARS) - Bewertung\n" -#~ "$(LABELS) - Farbmarkierungen\n" -#~ "$(PICTURES_FOLDER) - Bilder-Verzeichnis\n" -#~ "$(HOME) - home-Verzeichnis\n" -#~ "$(DESKTOP) - Desktop-Verzeichnis" - -#~ msgctxt "accel" -#~ msgid "blend L" -#~ msgstr "mische L" - -#~ msgctxt "accel" -#~ msgid "blend C" -#~ msgstr "mische C" - -#~ msgctxt "accel" -#~ msgid "blend h" -#~ msgstr "mische h" - -#~ msgid "blend lightness (0 is same as clipping)" -#~ msgstr "mische Helligkeit (0 ist identisch mit Abschneiden)" - -#~ msgid "blend colorness (0 is same as clipping)" -#~ msgstr "mische Buntheit (0 ist identisch mit Abschneiden)" - -#~ msgid "blend hue (0 is same as clipping)" -#~ msgstr "mische Farbton (0 ist identisch mit Abschneiden)" - -#~ msgid "blend L" -#~ msgstr "mische L" - -#~ msgid "blend C" -#~ msgstr "mische C" - -#~ msgid "blend h" -#~ msgstr "mische h" - -#~ msgid "tca R" -#~ msgstr "TCA R" - -#~ msgid "tca B" -#~ msgstr "TCA B" - -#~ msgid "" -#~ "override transversal chromatic aberration correction for red channel\n" -#~ "leave at 1.0 for defaults" -#~ msgstr "" -#~ "Überschreibe die transversale chromatische\n" -#~ "Aberrationskorrektur für den Rot-Kanal.\n" -#~ "für Standardwert bei 1,0 belassen" - -#~ msgid "" -#~ "override transversal chromatic aberration correction for blue channel\n" -#~ "leave at 1.0 for defaults" -#~ msgstr "" -#~ "Überschreibe die transversale chromatische\n" -#~ "Aberrationskorrektur für den Blau-Kanal.\n" -#~ "für Standardwert bei 1,0 belassen" - -#~ msgid "advanced edit of style" -#~ msgstr "Erweiterter Stil-Editor" - -#~ msgid "this doesn't work for raw/hdr images." -#~ msgstr "Dies funktioniert nicht bei Raw/HDR-Bildern." - -#~ msgid "apply distortions instead of correcting them" -#~ msgstr "füge Verzerrung hinzu statt sie zu korrigieren" - -# nicht schön -#, fuzzy -#~ msgid "" -#~ "enter the path where to put exported images:\n" -#~ "$(ROLL_NAME) - roll of the input image\n" -#~ "$(FILE_FOLDER) - folder containing the input image\n" -#~ "$(FILE_NAME) - basename of the input image\n" -#~ "$(FILE_EXTENSION) - extension of the input image\n" -#~ "$(SEQUENCE) - sequence number\n" -#~ "$(YEAR) - year\n" -#~ "$(MONTH) - month\n" -#~ "$(DAY) - day\n" -#~ "$(HOUR) - hour\n" -#~ "$(MINUTE) - minute\n" -#~ "$(SECOND) - second\n" -#~ "$(EXIF_YEAR) - exif year\n" -#~ "$(EXIF_MONTH) - exif month\n" -#~ "$(EXIF_DAY) - exif day\n" -#~ "$(EXIF_HOUR) - exif hour\n" -#~ "$(EXIF_MINUTE) - exif minute\n" -#~ "$(EXIF_SECOND) - exif second\n" -#~ "$(STARS) - star rating\n" -#~ "$(LABELS) - colorlabels\n" -#~ "$(PICTURES_FOLDER) - pictures folder\n" -#~ "$(HOME) - home folder\n" -#~ "$(DESKTOP) - desktop folder" -#~ msgstr "" -#~ "Speicherpfad für exportierte Bilder angeben:\n" -#~ "$(ROLL_NAME) - Filmrolle des Eingabebildes\n" -#~ "$(FILE_DIRECTORY) - Verzeichnis des Eingabebildes\n" -#~ "$(FILE_NAME) - Basisname des Eingabebildes\n" -#~ "$(FILE_EXTENSION) - Erweiterung des Eingabebildes\n" -#~ "$(SEQUENCE) - Sequenznummer\n" -#~ "$(YEAR) - Jahr\n" -#~ "$(MONTH) - Monat\n" -#~ "$(DAY) - Tag\n" -#~ "$(HOUR) - Stunde\n" -#~ "$(MINUTE) - Minute\n" -#~ "$(SECOND) - Sekunde\n" -#~ "$(EXIF_YEAR) - EXIF Jahr\n" -#~ "$(EXIF_MONTH) - EXIF Monat\n" -#~ "$(EXIF_DAY) - EXIF Tag\n" -#~ "$(EXIF_HOUR) - EXIF Stunde\n" -#~ "$(EXIF_MINUTE) - EXIF Minute\n" -#~ "$(EXIF_SECOND) - EXIF Sekunde\n" -#~ "$(STARS) - Bewertung\n" -#~ "$(LABELS) - Farbmarkierungen\n" -#~ "$(PICTURES_FOLDER) - Bilder-Verzeichnis\n" -#~ "$(HOME_FOLDER) - home-Verzeichnis\n" -#~ "$(DESKTOP_FOLDER) - Desktop-Verzeichnis" - -#~ msgctxt "border" -#~ msgid "auto" -#~ msgstr "auto" - -#~ msgid "filename of your custom theme in share/darktable/" -#~ msgstr "Dateiname des eigenen Themes in share/darktable/" - -#~ msgid "jpeg quality of on-disk thumbnails" -#~ msgstr "JPEG-Qualität der Vorschaubilder auf der Festplatte" - -#~ msgid "affects only the thumbnail cache used for quick startup." -#~ msgstr "Betrifft nur den Vorschaubild-Cache, der für einen schnellen Start genutzt wird" - -#~ msgctxt "accel" -#~ msgid "show plugin" -#~ msgstr "Modul zeigen" - -#~ msgctxt "accel" -#~ msgid "enable plugin" -#~ msgstr "Modul aktivieren" - -#~ msgctxt "accel" -#~ msgid "reset plugin parameters" -#~ msgstr "Modul-Einstellungen zurücksetzen" - -#~ msgctxt "accel" -#~ msgid "plugins" -#~ msgstr "Module" - -#~ msgid "" -#~ "set the aspect ratio (w:h)\n" -#~ "press ctrl-x to swap sides" -#~ msgstr "" -#~ "Seitenverhältnis setzen (b:h)\n" -#~ "Drücke Strg-x um die Seiten zu tauschen" - -#~ msgid "swap the aspect ratio (ctrl-x)" -#~ msgstr "Seitenverhältnis tauschen (Strg-x)" - -#~ msgid "flip guides horizontally" -#~ msgstr "Hilfslinien horizontal spiegeln" - -#~ msgid "flip guides vertically" -#~ msgstr "Hilfslinien vertikal spiegeln" - -#~ msgid "enable this option to show golden sections." -#~ msgstr "Diese Option auswählen, um den Goldenen Schnitt anzuzeigen" - -#~ msgid "enable this option to show golden spiral sections." -#~ msgstr "Diese Option auswählen, um die Bereiche der goldenen Spirale anzuzeigen" - -#~ msgid "enable this option to show a golden spiral guide." -#~ msgstr "Diese Option auswählen, um eine Goldene Spirale anzuzeigen" - -#~ msgid "golden triangles" -#~ msgstr "Goldene Dreiecke" - -#~ msgctxt "accel" -#~ msgid "swap the aspect ratio" -#~ msgstr "Seitenverhältnis tauschen" - -#~ msgid "draw a rectangle to give a tint" -#~ msgstr "Rechteck aufziehen, um einen Farbstich zu erzeugen" - -#~ msgid "more plugins" -#~ msgstr "weitere Module" - -#~ msgid "2 star" -#~ msgstr "2 Sterne" - -#~ msgid "3 star" -#~ msgstr "3 Sterne" - -#~ msgid "4 star" -#~ msgstr "4 Sterne" - -#~ msgid "5 star" -#~ msgstr "5 Sterne" - -#~ msgid "this collection is empty." -#~ msgstr "Diese Kollektion ist leer." - -#~ msgid "do that from the top left expander." -#~ msgstr "kann dies links oben gemacht werden." - -# FIXME: should be 'h', not 'H' -#~ msgctxt "accel" -#~ msgid "blend H" -#~ msgstr "mische H" - -#~ msgid "image cache file backup" -#~ msgstr "Bilder-Cache-Backup" - -#~ msgid "creates backup of cachefile to prevent loss of thumbnails generated at crashes etc (needs a restart)." -#~ msgstr "" -#~ "Lege Sicherung der Cache-Datei an, um einen Verlust der Vorschaubilder bei Abstürzen usw. zu verhindern " -#~ "(erfordert Neustart)." - -#~ msgid "how many threads to use in background" -#~ msgstr "Anzahl Hintergrund-Threads" - -# siehe equalizer (deprecated) -#~ msgid "local contrast 2" -#~ msgstr "Lokaler Kontrast 2" - -#~ msgid "sensitivity of edge detection" -#~ msgstr "Empfindlichkeit der Kantenerkennung" - -#~ msgid "spatial extent of the effect around edges" -#~ msgstr "Ausdehnung des Effekts entlang von Kanten" - -#~ msgid "" -#~ "abscissa: input, ordinate: output \n" -#~ "works on L channel" -#~ msgstr "" -#~ "x-Wert: Eingabe, y-Wert: Ausgabe\n" -#~ "arbeitet auf dem L-Kanal" - -#~ msgid "make images public" -#~ msgstr "Bilder öffentlich machen" - -#~ msgid "image cache file" -#~ msgstr "Bilder Cache-Datei" - -#~ msgid "filename relative to ~/.cache/darktable or starting with a slash (needs a restart)." -#~ msgstr "" -#~ "Dateiname relativ zum Verzeichnis ~/.cache/darktable, sonst mit Schrägstrich beginnen (erfordert Neustart)." - -#~ msgctxt "accel" -#~ msgid "load sidecar file" -#~ msgstr "Begleitdateien laden" - -#, fuzzy -#~ msgid "system default" -#~ msgstr "Standard entfernen" - -#~ msgid "english" -#~ msgstr "Englisch" - -# Hä? -#~ msgid "downsample the preview pixels" -#~ msgstr "Vorschaupixel herunter rechnen" - -#~ msgid "this value smaller than 1.0 downsamples the preview pixels in darkroom mode for faster feedback." -#~ msgstr "" -#~ "wenn dieser Wert kleiner 1.0 ist, dann werden die Vorschau-Pixel im Dunkelkammer-Modus für eine schnellere " -#~ "Rückmeldung runtergerechnet." - -#~ msgid "<span color=\"#7f7f7f\"><big><b>%s mode</b></big></span>" -#~ msgstr "<span color=\"#7f7f7f\"><big><b>%s-Modus</b></big></span>" - -#~ msgid "<span color=\"#7f7f7f\"><big><b>light table mode</b></big></span>" -#~ msgstr "<span color=\"#7f7f7f\"><big><b>Leuchttisch-Modus</b></big></span>" - -#~ msgid "f-length" -#~ msgstr "Brennweite" - -#~ msgid "-" -#~ msgstr "-" - -#~ msgctxt "global import" -#~ msgid "import" -#~ msgstr "Importieren" - -#~ msgctxt "gammaslider" -#~ msgid "linear" -#~ msgstr "linear" - -#~ msgctxt "gammaslider" -#~ msgid "gamma" -#~ msgstr "Gamma" - -#~ msgctxt "accel" -#~ msgid "history copy" -#~ msgstr "Verlaufsstapel kopieren" - -#~ msgctxt "accel" -#~ msgid "history paste" -#~ msgstr "Verlaufsstapel einfügen" - -#~ msgctxt "accel" -#~ msgid "history discard" -#~ msgstr "Verlaufsstapel verwerfen" - -#~ msgctxt "accel" -#~ msgid "scroll forward" -#~ msgstr "nach rechts scrollen" - -#~ msgid "" -#~ "switch on green equilibration before demosaicing.\n" -#~ "necessary for some mid-range cameras such as the EOS 400D." -#~ msgstr "" -#~ "Schalte Grünangleichung vor dem Entrastern ein.\n" -#~ "Dies ist für einige Mittelklassekameras wie die EOS 400D nötig." - -#~ msgctxt "accel" -#~ msgid "color" -#~ msgstr "Farbe" - -#~ msgctxt "accel" -#~ msgid "film strip" -#~ msgstr "Filmstreifen" - -#~ msgctxt "accel" -#~ msgid "local_contrast_2" -#~ msgstr "Lokaler Kontrast 2" - -#~ msgctxt "accel" -#~ msgid "max" -#~ msgstr "Maximum" - -#~ msgctxt "accel" -#~ msgid "min" -#~ msgstr "Minimum" - -#~ msgctxt "accel" -#~ msgid "purple" -#~ msgstr "Violett" - -#~ msgctxt "accel" -#~ msgid "reset camera from exif data" -#~ msgstr "Kamera auf EXIF-Angabe zurücksetzen" - -#~ msgctxt "accel" -#~ msgid "reset distance from exif data" -#~ msgstr "Entfernung auf EXIF-Angabe zurücksetzen" - -#~ msgctxt "accel" -#~ msgid "reset lens from exif data" -#~ msgstr "Objektiv auf EXIF-Angabe zurücksetzen" - -#~ msgctxt "accel" -#~ msgid "yellow" -#~ msgstr "Gelb" - -#~ msgctxt "accel" -#~ msgid "darkroom" -#~ msgstr "Dunkelkammer" - -#~ msgctxt "accel" -#~ msgid "lighttable" -#~ msgstr "Leuchttisch" - -#~ msgid "export selected images" -#~ msgstr "ausgewählte Bilder exportieren" - -#~ msgid "invert the colors of the image. useful for scanned negatives." -#~ msgstr "Invertiere die Farben im Bild. Nützlich für gescannte Negative." - -#, fuzzy -#~ msgid "coarsness" -#~ msgstr "Korngröße" - -#, fuzzy -#~ msgid "colorcorrection" -#~ msgstr "Farbkorrektur" - -#, fuzzy -#~ msgid "colorout" -#~ msgstr "Farbe" - -#, fuzzy -#~ msgid "graduatednd" -#~ msgstr "Verlaufsfilter" - -#, fuzzy -#~ msgid "hotpixels" -#~ msgstr "Tote Pixel" - -#, fuzzy -#~ msgid "lowlight" -#~ msgstr "Dämmerung" - -#, fuzzy -#~ msgid "nlmeans" -#~ msgstr "Mittel" - -#~ msgid "swap aspect" -#~ msgstr "Seitenverhältnis umkehren" - -#~ msgctxt "style" -#~ msgid "import" -#~ msgstr "importieren" - -#~ msgid "strength of stuck pixel correction threshold" -#~ msgstr "Schwellwert zur Korrektur toter Pixel" - -#~ msgid "( --- )" -#~ msgstr "( --- )" - -#~ msgid "<span color=\"#7f7f7f\"><big><b>darktable</b></big></span>" -#~ msgstr "<span color=\"#7f7f7f\"><big><b>darktable</b></big></span>" diff -Nru darktable-4.4.2/po/en@truecase.po darktable-4.6.1/po/en@truecase.po --- darktable-4.4.2/po/en@truecase.po 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/po/en@truecase.po 2024-02-16 17:31:09.000000000 +0000 @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-31 13:24+0200\n" -"PO-Revision-Date: 2023-05-31 19:04+0300\n" +"POT-Creation-Date: 2023-11-30 19:32+0100\n" +"PO-Revision-Date: 2023-11-30 21:04+0200\n" "Last-Translator: Victor Forsiuk <vvforce@gmail.com>\n" "Language-Team: \n" "Language: en\n" @@ -16,271 +16,236 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 3.3.1\n" +"X-Generator: Poedit 3.4.1\n" -#: ../build/bin/conf_gen.h:172 ../build/bin/preferences_gen.h:7632 +#: ../build/bin/conf_gen.h:174 msgctxt "preferences" msgid "first instance" msgstr "First instance" -#: ../build/bin/conf_gen.h:173 ../build/bin/preferences_gen.h:7637 -#: ../build/bin/preferences_gen.h:7656 +#: ../build/bin/conf_gen.h:175 ../build/bin/preferences_gen.h:7922 msgctxt "preferences" msgid "last instance" msgstr "Last instance" -#: ../build/bin/conf_gen.h:240 ../build/bin/conf_gen.h:346 -#: ../build/bin/conf_gen.h:356 ../build/bin/conf_gen.h:1186 -#: ../build/bin/conf_gen.h:1202 ../build/bin/preferences_gen.h:4137 -#: ../build/bin/preferences_gen.h:4156 ../build/bin/preferences_gen.h:4232 -#: ../build/bin/preferences_gen.h:6706 ../build/bin/preferences_gen.h:6834 -#: ../build/bin/preferences_gen.h:6899 +#: ../build/bin/conf_gen.h:252 ../build/bin/conf_gen.h:352 +#: ../build/bin/conf_gen.h:362 ../build/bin/conf_gen.h:1239 +#: ../build/bin/conf_gen.h:1255 ../build/bin/conf_gen.h:1275 +#: ../build/bin/preferences_gen.h:4747 ../build/bin/preferences_gen.h:4885 msgctxt "preferences" msgid "never" msgstr "Never" -#: ../build/bin/conf_gen.h:241 ../build/bin/preferences_gen.h:6711 +#: ../build/bin/conf_gen.h:253 msgctxt "preferences" msgid "once a month" msgstr "Once a month" -#: ../build/bin/conf_gen.h:242 ../build/bin/preferences_gen.h:6716 -#: ../build/bin/preferences_gen.h:6745 +#: ../build/bin/conf_gen.h:254 ../build/bin/preferences_gen.h:7138 msgctxt "preferences" msgid "once a week" msgstr "Once a week" -#: ../build/bin/conf_gen.h:243 ../build/bin/preferences_gen.h:6721 +#: ../build/bin/conf_gen.h:255 msgctxt "preferences" msgid "once a day" msgstr "Once a day" -#: ../build/bin/conf_gen.h:244 ../build/bin/preferences_gen.h:6726 +#: ../build/bin/conf_gen.h:256 msgctxt "preferences" msgid "on close" msgstr "On close" -#: ../build/bin/conf_gen.h:280 ../build/bin/conf_gen.h:1179 -#: ../build/bin/conf_gen.h:1195 ../build/bin/preferences_gen.h:4102 -#: ../build/bin/preferences_gen.h:4197 ../build/bin/preferences_gen.h:5748 +#: ../build/bin/conf_gen.h:292 ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1248 ../build/bin/conf_gen.h:1276 msgctxt "preferences" msgid "small" msgstr "Small" -#: ../build/bin/conf_gen.h:281 ../build/bin/conf_gen.h:393 -#: ../build/bin/preferences_gen.h:5753 ../build/bin/preferences_gen.h:5782 -#: ../build/bin/preferences_gen.h:5969 ../build/bin/preferences_gen.h:5998 +#: ../build/bin/conf_gen.h:293 ../build/bin/conf_gen.h:405 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6223 msgctxt "preferences" msgid "default" msgstr "Default" -#: ../build/bin/conf_gen.h:282 ../build/bin/conf_gen.h:2814 -#: ../build/bin/preferences_gen.h:5758 +#: ../build/bin/conf_gen.h:294 ../build/bin/conf_gen.h:2904 msgctxt "preferences" msgid "large" msgstr "Large" -#: ../build/bin/conf_gen.h:283 ../build/bin/preferences_gen.h:5763 +#: ../build/bin/conf_gen.h:295 msgctxt "preferences" msgid "unrestricted" msgstr "Unrestricted" -#: ../build/bin/conf_gen.h:347 ../build/bin/preferences_gen.h:6839 +#: ../build/bin/conf_gen.h:353 msgctxt "preferences" msgid "after edit" msgstr "After edit" -#: ../build/bin/conf_gen.h:348 ../build/bin/preferences_gen.h:6844 -#: ../build/bin/preferences_gen.h:6863 +#: ../build/bin/conf_gen.h:354 ../build/bin/preferences_gen.h:7224 msgctxt "preferences" msgid "on import" msgstr "On import" -#: ../build/bin/conf_gen.h:357 ../build/bin/conf_gen.h:1178 -#: ../build/bin/conf_gen.h:1194 ../build/bin/conf_gen.h:3214 -#: ../build/bin/preferences_gen.h:4097 ../build/bin/preferences_gen.h:4192 -#: ../build/bin/preferences_gen.h:5112 ../build/bin/preferences_gen.h:5166 -#: ../build/bin/preferences_gen.h:6904 +#: ../build/bin/conf_gen.h:363 ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1247 ../build/bin/conf_gen.h:3300 +#: ../build/bin/preferences_gen.h:5644 msgctxt "preferences" msgid "always" msgstr "Always" -#: ../build/bin/conf_gen.h:358 ../build/bin/preferences_gen.h:6909 -#: ../build/bin/preferences_gen.h:6928 +#: ../build/bin/conf_gen.h:364 ../build/bin/preferences_gen.h:7259 msgctxt "preferences" msgid "only large entries" msgstr "Only large entries" -#: ../build/bin/conf_gen.h:378 ../build/bin/preferences_gen.h:8069 +#: ../build/bin/conf_gen.h:390 msgctxt "preferences" msgid "sensitive" msgstr "Sensitive" -#: ../build/bin/conf_gen.h:379 ../build/bin/preferences_gen.h:8074 -#: ../build/bin/preferences_gen.h:8093 +#: ../build/bin/conf_gen.h:391 ../build/bin/preferences_gen.h:8133 msgctxt "preferences" msgid "insensitive" msgstr "Insensitive" -#: ../build/bin/conf_gen.h:394 ../build/bin/preferences_gen.h:5974 +#: ../build/bin/conf_gen.h:406 msgctxt "preferences" msgid "multiple GPUs" msgstr "Multiple GPUs" -#: ../build/bin/conf_gen.h:395 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/conf_gen.h:407 msgctxt "preferences" msgid "very fast GPU" msgstr "Very fast GPU" -#: ../build/bin/conf_gen.h:403 ../build/bin/preferences_gen.h:6040 -#: ../build/bin/preferences_gen.h:6074 +#: ../build/bin/conf_gen.h:755 msgctxt "preferences" -msgid "nothing" -msgstr "Nothing" - -#: ../build/bin/conf_gen.h:404 ../build/bin/preferences_gen.h:6045 -msgctxt "preferences" -msgid "memory size" -msgstr "Memory size" - -#: ../build/bin/conf_gen.h:405 ../build/bin/preferences_gen.h:6050 -msgctxt "preferences" -msgid "memory transfer" -msgstr "Memory transfer" - -#: ../build/bin/conf_gen.h:406 ../build/bin/preferences_gen.h:6055 -msgctxt "preferences" -msgid "memory size and transfer" -msgstr "Memory size and transfer" - -#: ../build/bin/conf_gen.h:706 ../build/bin/preferences_gen.h:8257 -#: ../build/bin/preferences_gen.h:8281 -msgctxt "preferences" -msgid "id" -msgstr "Id" +msgid "import time" +msgstr "Import time" -#: ../build/bin/conf_gen.h:707 ../build/bin/preferences_gen.h:8262 +#: ../build/bin/conf_gen.h:756 msgctxt "preferences" -msgid "folder" -msgstr "Folder" +msgid "folder name" +msgstr "Folder name" -#: ../build/bin/conf_gen.h:721 +#: ../build/bin/conf_gen.h:770 msgctxt "preferences" msgid "RGB" msgstr "RGB" -#: ../build/bin/conf_gen.h:722 +#: ../build/bin/conf_gen.h:771 msgctxt "preferences" msgid "Lab" msgstr "Lab" -#: ../build/bin/conf_gen.h:723 +#: ../build/bin/conf_gen.h:772 msgctxt "preferences" msgid "LCh" msgstr "LCh" -#: ../build/bin/conf_gen.h:724 +#: ../build/bin/conf_gen.h:773 msgctxt "preferences" msgid "HSL" msgstr "HSL" -#: ../build/bin/conf_gen.h:725 +#: ../build/bin/conf_gen.h:774 msgctxt "preferences" msgid "Hex" msgstr "Hex" -#: ../build/bin/conf_gen.h:726 ../build/bin/conf_gen.h:1830 -#: ../build/bin/conf_gen.h:2488 ../build/bin/conf_gen.h:2790 -#: ../build/bin/conf_gen.h:3044 ../build/bin/preferences_gen.h:5577 -#: ../build/bin/preferences_gen.h:6561 +#: ../build/bin/conf_gen.h:775 ../build/bin/conf_gen.h:1916 +#: ../build/bin/conf_gen.h:2578 ../build/bin/conf_gen.h:2880 +#: ../build/bin/conf_gen.h:3136 msgctxt "preferences" msgid "none" msgstr "None" -#: ../build/bin/conf_gen.h:734 +#: ../build/bin/conf_gen.h:783 msgctxt "preferences" msgid "mean" msgstr "Mean" -#: ../build/bin/conf_gen.h:735 +#: ../build/bin/conf_gen.h:784 msgctxt "preferences" msgid "min" msgstr "Min" -#: ../build/bin/conf_gen.h:736 +#: ../build/bin/conf_gen.h:785 msgctxt "preferences" msgid "max" msgstr "Max" -#: ../build/bin/conf_gen.h:924 +#: ../build/bin/conf_gen.h:973 msgid "select only new pictures" msgstr "Select only new pictures" -#: ../build/bin/conf_gen.h:925 +#: ../build/bin/conf_gen.h:974 msgid "only select images that have not already been imported" msgstr "Only select images that have not already been imported" -#: ../build/bin/conf_gen.h:930 -msgid "ignore JPEG images" -msgstr "Ignore JPEG images" +#: ../build/bin/conf_gen.h:979 +msgid "ignore non-raw images" +msgstr "Ignore non-raw images" -#: ../build/bin/conf_gen.h:931 +#: ../build/bin/conf_gen.h:980 msgid "" -"when having raw+JPEG images together in one directory it makes no sense to " -"import both. with this flag one can ignore all JPEGs found." +"if enabled, only raw files will be allowed to import. non-raw files will not " +"be visible in the dialog and will not be imported." msgstr "" -"When having raw+JPEG images together in one directory it makes no sense to " -"import both. With this flag one can ignore all JPEGs found." +"If enabled, only raw files will be allowed to import. Non-raw files will not " +"be visible in the dialog and will not be imported." -#: ../build/bin/conf_gen.h:936 +#: ../build/bin/conf_gen.h:985 msgid "apply metadata" msgstr "Apply metadata" -#: ../build/bin/conf_gen.h:937 +#: ../build/bin/conf_gen.h:986 msgid "apply some metadata to all newly imported images." msgstr "Apply some metadata to all newly imported images." -#: ../build/bin/conf_gen.h:942 +#: ../build/bin/conf_gen.h:991 msgid "recursive directory" msgstr "Recursive directory" -#: ../build/bin/conf_gen.h:943 +#: ../build/bin/conf_gen.h:992 msgid "recursive directory traversal when importing filmrolls" msgstr "Recursive directory traversal when importing filmrolls" -#: ../build/bin/conf_gen.h:948 +#: ../build/bin/conf_gen.h:997 msgid "creator to be applied when importing" msgstr "Creator to be applied when importing" -#: ../build/bin/conf_gen.h:954 +#: ../build/bin/conf_gen.h:1003 msgid "publisher to be applied when importing" msgstr "Publisher to be applied when importing" -#: ../build/bin/conf_gen.h:960 +#: ../build/bin/conf_gen.h:1009 msgid "rights to be applied when importing" msgstr "Rights to be applied when importing" -#: ../build/bin/conf_gen.h:966 +#: ../build/bin/conf_gen.h:1015 msgid "comma separated tags to be applied when importing" msgstr "Comma separated tags to be applied when importing" -#: ../build/bin/conf_gen.h:972 +#: ../build/bin/conf_gen.h:1021 msgid "import tags from XMP" msgstr "Import tags from XMP" -#: ../build/bin/conf_gen.h:998 +#: ../build/bin/conf_gen.h:1051 msgid "initial rating" msgstr "Initial rating" -#: ../build/bin/conf_gen.h:999 +#: ../build/bin/conf_gen.h:1052 msgid "initial star rating for all images when importing a filmroll" msgstr "Initial star rating for all images when importing a filmroll" -#: ../build/bin/conf_gen.h:1004 +#: ../build/bin/conf_gen.h:1057 msgid "ignore EXIF rating" msgstr "Ignore EXIF rating" -#: ../build/bin/conf_gen.h:1005 +#: ../build/bin/conf_gen.h:1058 msgid "" "ignore EXIF rating. if not set and EXIF rating is found, it overrides " "'initial rating'" @@ -288,19 +253,19 @@ "Ignore EXIF rating. If not set and EXIF rating is found, it overrides " "'initial rating'" -#: ../build/bin/conf_gen.h:1010 +#: ../build/bin/conf_gen.h:1063 msgid "import job" msgstr "Import job" -#: ../build/bin/conf_gen.h:1011 +#: ../build/bin/conf_gen.h:1064 msgid "name of the import job" msgstr "Name of the import job" -#: ../build/bin/conf_gen.h:1016 +#: ../build/bin/conf_gen.h:1069 msgid "override today's date" msgstr "Override today's date" -#: ../build/bin/conf_gen.h:1017 +#: ../build/bin/conf_gen.h:1070 msgid "" "type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override " "the current date/time used when expanding variables:\n" @@ -312,162 +277,159 @@ "$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS), $(MSEC).\n" "Let the field empty otherwise" -#: ../build/bin/conf_gen.h:1022 +#: ../build/bin/conf_gen.h:1075 msgid "keep this window open" msgstr "Keep this window open" -#: ../build/bin/conf_gen.h:1023 +#: ../build/bin/conf_gen.h:1076 msgid "keep this window open to run several imports" msgstr "Keep this window open to run several imports" -#: ../build/bin/conf_gen.h:1180 ../build/bin/conf_gen.h:1196 -#: ../build/bin/preferences_gen.h:4107 ../build/bin/preferences_gen.h:4202 +#: ../build/bin/conf_gen.h:1233 ../build/bin/conf_gen.h:1249 +#: ../build/bin/conf_gen.h:1277 msgctxt "preferences" msgid "VGA" msgstr "VGA" -#: ../build/bin/conf_gen.h:1181 ../build/bin/conf_gen.h:1197 -#: ../build/bin/preferences_gen.h:4112 ../build/bin/preferences_gen.h:4207 -#: ../build/bin/preferences_gen.h:4251 +#: ../build/bin/conf_gen.h:1234 ../build/bin/conf_gen.h:1250 +#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4782 msgctxt "preferences" msgid "720p" msgstr "720p" -#: ../build/bin/conf_gen.h:1182 ../build/bin/conf_gen.h:1198 -#: ../build/bin/preferences_gen.h:4117 ../build/bin/preferences_gen.h:4212 +#: ../build/bin/conf_gen.h:1235 ../build/bin/conf_gen.h:1251 +#: ../build/bin/conf_gen.h:1279 msgctxt "preferences" msgid "1080p" msgstr "1080p" -#: ../build/bin/conf_gen.h:1183 ../build/bin/conf_gen.h:1199 -#: ../build/bin/preferences_gen.h:4122 ../build/bin/preferences_gen.h:4217 +#: ../build/bin/conf_gen.h:1236 ../build/bin/conf_gen.h:1252 +#: ../build/bin/conf_gen.h:1280 msgctxt "preferences" msgid "WQXGA" msgstr "WQXGA" -#: ../build/bin/conf_gen.h:1184 ../build/bin/conf_gen.h:1200 -#: ../build/bin/preferences_gen.h:4127 ../build/bin/preferences_gen.h:4222 +#: ../build/bin/conf_gen.h:1237 ../build/bin/conf_gen.h:1253 +#: ../build/bin/conf_gen.h:1281 msgctxt "preferences" msgid "4K" msgstr "4K" -#: ../build/bin/conf_gen.h:1185 ../build/bin/conf_gen.h:1201 -#: ../build/bin/preferences_gen.h:4132 ../build/bin/preferences_gen.h:4227 +#: ../build/bin/conf_gen.h:1238 ../build/bin/conf_gen.h:1254 +#: ../build/bin/conf_gen.h:1282 msgctxt "preferences" msgid "5K" msgstr "5K" -#: ../build/bin/conf_gen.h:1228 +#: ../build/bin/conf_gen.h:1314 msgctxt "preferences" msgid "off" msgstr "Off" -#: ../build/bin/conf_gen.h:1229 +#: ../build/bin/conf_gen.h:1315 msgctxt "preferences" msgid "hardness (relative)" msgstr "Hardness (relative)" -#: ../build/bin/conf_gen.h:1230 +#: ../build/bin/conf_gen.h:1316 msgctxt "preferences" msgid "hardness (absolute)" msgstr "Hardness (absolute)" -#: ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1317 msgctxt "preferences" msgid "opacity (relative)" msgstr "Opacity (relative)" -#: ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1318 msgctxt "preferences" msgid "opacity (absolute)" msgstr "Opacity (absolute)" -#: ../build/bin/conf_gen.h:1233 +#: ../build/bin/conf_gen.h:1319 msgctxt "preferences" msgid "brush size (relative)" msgstr "Brush size (relative)" -#: ../build/bin/conf_gen.h:1241 +#: ../build/bin/conf_gen.h:1327 msgctxt "preferences" msgid "low" msgstr "Low" -#: ../build/bin/conf_gen.h:1242 +#: ../build/bin/conf_gen.h:1328 msgctxt "preferences" msgid "medium" msgstr "Medium" -#: ../build/bin/conf_gen.h:1243 +#: ../build/bin/conf_gen.h:1329 msgctxt "preferences" msgid "high" msgstr "High" -#: ../build/bin/conf_gen.h:1263 ../build/bin/preferences_gen.h:4836 -#: ../build/bin/preferences_gen.h:4860 +#: ../build/bin/conf_gen.h:1349 ../build/bin/preferences_gen.h:5405 msgctxt "preferences" msgid "false color" msgstr "False color" -#: ../build/bin/conf_gen.h:1264 ../build/bin/preferences_gen.h:4841 +#: ../build/bin/conf_gen.h:1350 msgctxt "preferences" msgid "grayscale" msgstr "Grayscale" -#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4567 +#: ../build/bin/conf_gen.h:1364 msgctxt "preferences" msgid "top left" msgstr "Top left" -#: ../build/bin/conf_gen.h:1279 ../build/bin/preferences_gen.h:4572 +#: ../build/bin/conf_gen.h:1365 msgctxt "preferences" msgid "top right" msgstr "Top right" -#: ../build/bin/conf_gen.h:1280 ../build/bin/preferences_gen.h:4577 +#: ../build/bin/conf_gen.h:1366 msgctxt "preferences" msgid "top center" msgstr "Top center" -#: ../build/bin/conf_gen.h:1281 ../build/bin/preferences_gen.h:4582 -#: ../build/bin/preferences_gen.h:4606 +#: ../build/bin/conf_gen.h:1367 ../build/bin/preferences_gen.h:5217 msgctxt "preferences" msgid "bottom" msgstr "Bottom" -#: ../build/bin/conf_gen.h:1282 ../build/bin/preferences_gen.h:4587 +#: ../build/bin/conf_gen.h:1368 msgctxt "preferences" msgid "hidden" msgstr "Hidden" -#: ../build/bin/conf_gen.h:1792 +#: ../build/bin/conf_gen.h:1878 msgid "show OSD" msgstr "Show OSD" -#: ../build/bin/conf_gen.h:1793 +#: ../build/bin/conf_gen.h:1879 msgid "toggle the visibility of the map overlays" msgstr "Toggle the visibility of the map overlays" -#: ../build/bin/conf_gen.h:1798 ../src/libs/map_settings.c:146 +#: ../build/bin/conf_gen.h:1884 ../src/libs/map_settings.c:119 msgid "filtered images" msgstr "Filtered images" -#: ../build/bin/conf_gen.h:1799 +#: ../build/bin/conf_gen.h:1885 msgid "when set limit the images drawn to the current filmstrip" msgstr "When set limit the images drawn to the current filmstrip" -#: ../build/bin/conf_gen.h:1806 +#: ../build/bin/conf_gen.h:1892 msgid "max images" msgstr "Max images" -#: ../build/bin/conf_gen.h:1807 +#: ../build/bin/conf_gen.h:1893 msgid "the maximum number of image thumbnails drawn on the map" msgstr "The maximum number of image thumbnails drawn on the map" -#: ../build/bin/conf_gen.h:1814 +#: ../build/bin/conf_gen.h:1900 msgid "group size factor" msgstr "Group size factor" -#: ../build/bin/conf_gen.h:1815 +#: ../build/bin/conf_gen.h:1901 msgid "" "increase or decrease the spatial size of images groups on the map. can " "influence the calculation time" @@ -475,11 +437,11 @@ "Increase or decrease the spatial size of images groups on the map. Can " "influence the calculation time" -#: ../build/bin/conf_gen.h:1822 +#: ../build/bin/conf_gen.h:1908 msgid "min images per group" msgstr "Min images per group" -#: ../build/bin/conf_gen.h:1823 +#: ../build/bin/conf_gen.h:1909 msgid "" "the minimum number of images to set up an images group. can influence the " "calculation time." @@ -487,21 +449,21 @@ "The minimum number of images to set up an images group. Can influence the " "calculation time." -#: ../build/bin/conf_gen.h:1828 +#: ../build/bin/conf_gen.h:1914 msgctxt "preferences" msgid "thumbnail" msgstr "Thumbnail" -#: ../build/bin/conf_gen.h:1829 +#: ../build/bin/conf_gen.h:1915 msgctxt "preferences" msgid "count" msgstr "Count" -#: ../build/bin/conf_gen.h:1832 ../src/libs/map_settings.c:159 +#: ../build/bin/conf_gen.h:1918 msgid "thumbnail display" msgstr "Thumbnail display" -#: ../build/bin/conf_gen.h:1833 +#: ../build/bin/conf_gen.h:1919 msgid "" "three options are available: images thumbnails, only the count of images of " "the group or nothing" @@ -509,267 +471,258 @@ "Three options are available: images thumbnails, only the count of images of " "the group or nothing" -#: ../build/bin/conf_gen.h:1844 +#: ../build/bin/conf_gen.h:1930 msgid "max polygon points" msgstr "Max polygon points" -#: ../build/bin/conf_gen.h:1845 +#: ../build/bin/conf_gen.h:1931 msgid "" "limit the number of points imported with polygon in find location module" msgstr "" "Limit the number of points imported with polygon in find location module" -#: ../build/bin/conf_gen.h:2135 ../build/bin/preferences_gen.h:4722 -#: ../build/bin/preferences_gen.h:4756 +#: ../build/bin/conf_gen.h:2221 ../build/bin/preferences_gen.h:5329 msgctxt "preferences" msgid "original" msgstr "Original" -#: ../build/bin/conf_gen.h:2136 ../build/bin/preferences_gen.h:4727 +#: ../build/bin/conf_gen.h:2222 msgctxt "preferences" msgid "to 1/2" msgstr "To 1/2" -#: ../build/bin/conf_gen.h:2137 ../build/bin/preferences_gen.h:4732 +#: ../build/bin/conf_gen.h:2223 msgctxt "preferences" msgid "to 1/3" msgstr "To 1/3" -#: ../build/bin/conf_gen.h:2138 ../build/bin/preferences_gen.h:4737 +#: ../build/bin/conf_gen.h:2224 msgctxt "preferences" msgid "to 1/4" msgstr "To 1/4" -#: ../build/bin/conf_gen.h:2152 ../build/bin/conf_gen.h:2162 -#: ../build/bin/preferences_gen.h:5384 ../build/bin/preferences_gen.h:5449 +#: ../build/bin/conf_gen.h:2244 ../build/bin/conf_gen.h:2254 msgctxt "preferences" msgid "bilinear" msgstr "Bilinear" -#: ../build/bin/conf_gen.h:2153 ../build/bin/conf_gen.h:2163 -#: ../build/bin/preferences_gen.h:5389 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5454 +#: ../build/bin/conf_gen.h:2245 ../build/bin/conf_gen.h:2255 +#: ../build/bin/preferences_gen.h:5847 msgctxt "preferences" msgid "bicubic" msgstr "Bicubic" -#: ../build/bin/conf_gen.h:2154 ../build/bin/conf_gen.h:2164 -#: ../build/bin/preferences_gen.h:5394 ../build/bin/preferences_gen.h:5459 +#: ../build/bin/conf_gen.h:2246 ../build/bin/conf_gen.h:2256 msgctxt "preferences" msgid "lanczos2" msgstr "Lanczos2" -#: ../build/bin/conf_gen.h:2165 ../build/bin/preferences_gen.h:5464 -#: ../build/bin/preferences_gen.h:5483 +#: ../build/bin/conf_gen.h:2257 ../build/bin/preferences_gen.h:5882 msgctxt "preferences" msgid "lanczos3" msgstr "Lanczos3" -#: ../build/bin/conf_gen.h:2487 ../build/bin/conf_gen.h:3217 -#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:6556 -#: ../build/bin/preferences_gen.h:6592 +#: ../build/bin/conf_gen.h:2577 ../build/bin/conf_gen.h:3303 +#: ../build/bin/preferences_gen.h:7032 msgctxt "preferences" msgid "auto" msgstr "Auto" -#: ../build/bin/conf_gen.h:2489 ../build/bin/preferences_gen.h:6566 +#: ../build/bin/conf_gen.h:2579 msgctxt "preferences" msgid "libsecret" msgstr "libsecret" -#: ../build/bin/conf_gen.h:2490 ../build/bin/preferences_gen.h:6572 +#: ../build/bin/conf_gen.h:2580 msgctxt "preferences" msgid "kwallet" msgstr "KWallet" -#: ../build/bin/conf_gen.h:2700 +#: ../build/bin/conf_gen.h:2790 msgctxt "preferences" msgid "vectorscope" msgstr "Vectorscope" -#: ../build/bin/conf_gen.h:2701 +#: ../build/bin/conf_gen.h:2791 msgctxt "preferences" msgid "waveform" msgstr "Waveform" -#: ../build/bin/conf_gen.h:2702 +#: ../build/bin/conf_gen.h:2792 msgctxt "preferences" msgid "RGB parade" msgstr "RGB parade" -#: ../build/bin/conf_gen.h:2703 +#: ../build/bin/conf_gen.h:2793 msgctxt "preferences" msgid "histogram" msgstr "Histogram" -#: ../build/bin/conf_gen.h:2711 ../build/bin/preferences_gen.h:7264 +#: ../build/bin/conf_gen.h:2801 msgctxt "preferences" msgid "left" msgstr "Left" -#: ../build/bin/conf_gen.h:2712 ../build/bin/preferences_gen.h:7269 -#: ../build/bin/preferences_gen.h:7288 +#: ../build/bin/conf_gen.h:2802 ../build/bin/preferences_gen.h:7619 msgctxt "preferences" msgid "right" msgstr "Right" -#: ../build/bin/conf_gen.h:2720 ../build/bin/conf_gen.h:2757 +#: ../build/bin/conf_gen.h:2810 ../build/bin/conf_gen.h:2847 msgctxt "preferences" msgid "logarithmic" msgstr "Logarithmic" -#: ../build/bin/conf_gen.h:2721 ../build/bin/conf_gen.h:2758 +#: ../build/bin/conf_gen.h:2811 ../build/bin/conf_gen.h:2848 msgctxt "preferences" msgid "linear" msgstr "Linear" -#: ../build/bin/conf_gen.h:2729 +#: ../build/bin/conf_gen.h:2819 msgctxt "preferences" msgid "horizontal" msgstr "Horizontal" -#: ../build/bin/conf_gen.h:2730 +#: ../build/bin/conf_gen.h:2820 msgctxt "preferences" msgid "vertical" msgstr "Vertical" -#: ../build/bin/conf_gen.h:2738 +#: ../build/bin/conf_gen.h:2828 msgctxt "preferences" msgid "overlaid" msgstr "Overlaid" -#: ../build/bin/conf_gen.h:2739 +#: ../build/bin/conf_gen.h:2829 msgctxt "preferences" msgid "parade" msgstr "Parade" -#: ../build/bin/conf_gen.h:2747 +#: ../build/bin/conf_gen.h:2837 msgctxt "preferences" msgid "u*v*" msgstr "u*v*" -#: ../build/bin/conf_gen.h:2748 +#: ../build/bin/conf_gen.h:2838 msgctxt "preferences" msgid "AzBz" msgstr "AzBz" -#: ../build/bin/conf_gen.h:2749 +#: ../build/bin/conf_gen.h:2839 msgctxt "preferences" msgid "RYB" msgstr "RYB" -#: ../build/bin/conf_gen.h:2791 +#: ../build/bin/conf_gen.h:2881 msgctxt "preferences" msgid "monochromatic" msgstr "Monochromatic" -#: ../build/bin/conf_gen.h:2792 +#: ../build/bin/conf_gen.h:2882 msgctxt "preferences" msgid "analogous" msgstr "Analogous" -#: ../build/bin/conf_gen.h:2793 +#: ../build/bin/conf_gen.h:2883 msgctxt "preferences" msgid "analogous complementary" msgstr "Analogous complementary" -#: ../build/bin/conf_gen.h:2794 +#: ../build/bin/conf_gen.h:2884 msgctxt "preferences" msgid "complementary" msgstr "Complementary" -#: ../build/bin/conf_gen.h:2795 +#: ../build/bin/conf_gen.h:2885 msgctxt "preferences" msgid "split complementary" msgstr "Split complementary" -#: ../build/bin/conf_gen.h:2796 +#: ../build/bin/conf_gen.h:2886 msgctxt "preferences" msgid "dyad" msgstr "Dyad" -#: ../build/bin/conf_gen.h:2797 +#: ../build/bin/conf_gen.h:2887 msgctxt "preferences" msgid "triad" msgstr "Triad" -#: ../build/bin/conf_gen.h:2798 +#: ../build/bin/conf_gen.h:2888 msgctxt "preferences" msgid "tetrad" msgstr "Tetrad" -#: ../build/bin/conf_gen.h:2799 +#: ../build/bin/conf_gen.h:2889 msgctxt "preferences" msgid "square" msgstr "Square" -#: ../build/bin/conf_gen.h:2813 +#: ../build/bin/conf_gen.h:2903 msgctxt "preferences" msgid "normal" msgstr "Normal" -#: ../build/bin/conf_gen.h:2815 +#: ../build/bin/conf_gen.h:2905 msgctxt "preferences" msgid "narrow" msgstr "Narrow" -#: ../build/bin/conf_gen.h:2816 +#: ../build/bin/conf_gen.h:2906 msgctxt "preferences" msgid "line" msgstr "Line" -#: ../build/bin/conf_gen.h:2956 +#: ../build/bin/conf_gen.h:3046 msgctxt "preferences" msgid "mm" msgstr "mm" -#: ../build/bin/conf_gen.h:2957 +#: ../build/bin/conf_gen.h:3047 msgctxt "preferences" msgid "cm" msgstr "cm" -#: ../build/bin/conf_gen.h:2958 +#: ../build/bin/conf_gen.h:3048 msgctxt "preferences" msgid "inch" msgstr "inch" -#: ../build/bin/conf_gen.h:3003 ../build/bin/preferences_gen.h:7324 -#: ../build/bin/preferences_gen.h:7353 +#: ../build/bin/conf_gen.h:3093 ../build/bin/preferences_gen.h:7654 msgctxt "preferences" msgid "all" msgstr "All" -#: ../build/bin/conf_gen.h:3004 ../build/bin/preferences_gen.h:7329 +#: ../build/bin/conf_gen.h:3094 msgctxt "preferences" msgid "xatom" msgstr "Xatom" -#: ../build/bin/conf_gen.h:3005 ../build/bin/preferences_gen.h:7334 +#: ../build/bin/conf_gen.h:3095 msgctxt "preferences" msgid "colord" msgstr "colord" -#: ../build/bin/conf_gen.h:3041 ../build/bin/preferences_gen.h:5562 -#: ../build/bin/preferences_gen.h:5596 +#: ../build/bin/conf_gen.h:3133 ../build/bin/preferences_gen.h:5958 msgctxt "preferences" msgid "scene-referred (filmic)" msgstr "Scene-referred (Filmic)" -#: ../build/bin/conf_gen.h:3042 ../build/bin/preferences_gen.h:5567 +#: ../build/bin/conf_gen.h:3134 msgctxt "preferences" msgid "scene-referred (sigmoid)" msgstr "Scene-referred (Sigmoid)" -#: ../build/bin/conf_gen.h:3043 ../build/bin/preferences_gen.h:5572 +#: ../build/bin/conf_gen.h:3135 msgctxt "preferences" msgid "display-referred (legacy)" msgstr "Display-referred (legacy)" -#: ../build/bin/conf_gen.h:3144 +#: ../build/bin/conf_gen.h:3230 msgid "camera time zone" msgstr "Camera time zone" -#: ../build/bin/conf_gen.h:3145 +#: ../build/bin/conf_gen.h:3231 msgid "" "most cameras don't store the time zone in EXIF. give the correct time zone " "so the GPX data can be correctly matched" @@ -777,212 +730,272 @@ "Most cameras don't store the time zone in EXIF. Give the correct time zone " "so the GPX data can be correctly matched" -#: ../build/bin/conf_gen.h:3156 +#: ../build/bin/conf_gen.h:3242 msgctxt "preferences" msgid "no color" msgstr "No color" -#: ../build/bin/conf_gen.h:3157 +#: ../build/bin/conf_gen.h:3243 msgctxt "preferences" msgid "illuminant color" msgstr "Illuminant color" -#: ../build/bin/conf_gen.h:3158 +#: ../build/bin/conf_gen.h:3244 msgctxt "preferences" msgid "effect emulation" msgstr "Effect emulation" -#: ../build/bin/conf_gen.h:3204 +#: ../build/bin/conf_gen.h:3290 msgctxt "preferences" msgid "list" msgstr "List" -#: ../build/bin/conf_gen.h:3205 +#: ../build/bin/conf_gen.h:3291 msgctxt "preferences" msgid "tabs" msgstr "Tabs" -#: ../build/bin/conf_gen.h:3206 +#: ../build/bin/conf_gen.h:3292 msgctxt "preferences" msgid "columns" msgstr "Columns" -#: ../build/bin/conf_gen.h:3215 ../build/bin/preferences_gen.h:5117 +#: ../build/bin/conf_gen.h:3301 msgctxt "preferences" msgid "active" msgstr "Active" -#: ../build/bin/conf_gen.h:3216 ../build/bin/preferences_gen.h:5122 +#: ../build/bin/conf_gen.h:3302 msgctxt "preferences" msgid "dim" msgstr "Dim" -#: ../build/bin/conf_gen.h:3218 ../build/bin/preferences_gen.h:5132 +#: ../build/bin/conf_gen.h:3304 msgctxt "preferences" msgid "fade" msgstr "Fade" -#: ../build/bin/conf_gen.h:3219 ../build/bin/preferences_gen.h:5137 +#: ../build/bin/conf_gen.h:3305 msgctxt "preferences" msgid "fit" msgstr "Fit" -#: ../build/bin/conf_gen.h:3220 ../build/bin/preferences_gen.h:5142 +#: ../build/bin/conf_gen.h:3306 msgctxt "preferences" msgid "smooth" msgstr "Smooth" -#: ../build/bin/conf_gen.h:3221 ../build/bin/preferences_gen.h:5147 +#: ../build/bin/conf_gen.h:3307 msgctxt "preferences" msgid "glide" msgstr "Glide" -#: ../build/bin/preferences_gen.h:81 ../build/bin/preferences_gen.h:3823 -#: ../build/bin/preferences_gen.h:3859 ../build/bin/preferences_gen.h:3895 -#: ../build/bin/preferences_gen.h:3931 ../build/bin/preferences_gen.h:3967 -#: ../build/bin/preferences_gen.h:4003 ../build/bin/preferences_gen.h:4039 -#: ../build/bin/preferences_gen.h:4083 ../build/bin/preferences_gen.h:4178 -#: ../build/bin/preferences_gen.h:4273 ../build/bin/preferences_gen.h:4313 -#: ../build/bin/preferences_gen.h:4356 ../build/bin/preferences_gen.h:4437 -#: ../build/bin/preferences_gen.h:4473 ../build/bin/preferences_gen.h:4510 -#: ../build/bin/preferences_gen.h:4553 ../build/bin/preferences_gen.h:4627 -#: ../build/bin/preferences_gen.h:4672 ../build/bin/preferences_gen.h:4708 -#: ../build/bin/preferences_gen.h:4778 ../build/bin/preferences_gen.h:4822 -#: ../build/bin/preferences_gen.h:4882 ../build/bin/preferences_gen.h:4918 -#: ../build/bin/preferences_gen.h:4954 ../build/bin/preferences_gen.h:4990 -#: ../build/bin/preferences_gen.h:5026 ../build/bin/preferences_gen.h:5062 -#: ../build/bin/preferences_gen.h:5098 ../build/bin/preferences_gen.h:5188 -#: ../build/bin/preferences_gen.h:5224 ../build/bin/preferences_gen.h:5260 -#: ../build/bin/preferences_gen.h:5334 ../build/bin/preferences_gen.h:5370 -#: ../build/bin/preferences_gen.h:5435 ../build/bin/preferences_gen.h:5505 -#: ../build/bin/preferences_gen.h:5548 ../build/bin/preferences_gen.h:5618 -#: ../build/bin/preferences_gen.h:5654 ../build/bin/preferences_gen.h:5690 -#: ../build/bin/preferences_gen.h:5734 ../build/bin/preferences_gen.h:5805 -#: ../build/bin/preferences_gen.h:5841 ../build/bin/preferences_gen.h:5877 -#: ../build/bin/preferences_gen.h:5913 ../build/bin/preferences_gen.h:5955 -#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6140 -#: ../build/bin/preferences_gen.h:6176 ../build/bin/preferences_gen.h:6212 -#: ../build/bin/preferences_gen.h:6248 ../build/bin/preferences_gen.h:6284 -#: ../build/bin/preferences_gen.h:6320 ../build/bin/preferences_gen.h:6356 -#: ../build/bin/preferences_gen.h:6392 ../build/bin/preferences_gen.h:6427 -#: ../build/bin/preferences_gen.h:6462 ../build/bin/preferences_gen.h:6498 -#: ../build/bin/preferences_gen.h:6542 ../build/bin/preferences_gen.h:6614 -#: ../build/bin/preferences_gen.h:6692 ../build/bin/preferences_gen.h:6767 -#: ../build/bin/preferences_gen.h:6820 ../build/bin/preferences_gen.h:6885 -#: ../build/bin/preferences_gen.h:6950 ../build/bin/preferences_gen.h:7024 -#: ../build/bin/preferences_gen.h:7060 ../build/bin/preferences_gen.h:7096 -#: ../build/bin/preferences_gen.h:7132 ../build/bin/preferences_gen.h:7168 -#: ../build/bin/preferences_gen.h:7204 ../build/bin/preferences_gen.h:7250 -#: ../build/bin/preferences_gen.h:7310 ../build/bin/preferences_gen.h:7375 -#: ../build/bin/preferences_gen.h:7429 ../build/bin/preferences_gen.h:7474 -#: ../build/bin/preferences_gen.h:7510 ../build/bin/preferences_gen.h:7546 -#: ../build/bin/preferences_gen.h:7582 ../build/bin/preferences_gen.h:7618 -#: ../build/bin/preferences_gen.h:7678 ../build/bin/preferences_gen.h:7722 -#: ../build/bin/preferences_gen.h:7766 ../build/bin/preferences_gen.h:7848 -#: ../build/bin/preferences_gen.h:7888 ../build/bin/preferences_gen.h:7928 -#: ../build/bin/preferences_gen.h:7964 ../build/bin/preferences_gen.h:8019 -#: ../build/bin/preferences_gen.h:8055 ../build/bin/preferences_gen.h:8115 -#: ../build/bin/preferences_gen.h:8161 ../build/bin/preferences_gen.h:8197 -#: ../build/bin/preferences_gen.h:8243 ../build/bin/preferences_gen.h:8303 -#: ../build/bin/preferences_gen.h:8355 ../build/bin/preferences_gen.h:8401 -#: ../build/bin/preferences_gen.h:8469 ../build/bin/preferences_gen.h:8516 +#: ../build/bin/preferences_gen.h:77 ../build/bin/preferences_gen.h:4305 +#: ../build/bin/preferences_gen.h:4344 ../build/bin/preferences_gen.h:4383 +#: ../build/bin/preferences_gen.h:4417 ../build/bin/preferences_gen.h:4488 +#: ../build/bin/preferences_gen.h:4522 ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:4590 ../build/bin/preferences_gen.h:4624 +#: ../build/bin/preferences_gen.h:4658 ../build/bin/preferences_gen.h:4692 +#: ../build/bin/preferences_gen.h:4733 ../build/bin/preferences_gen.h:4768 +#: ../build/bin/preferences_gen.h:4803 ../build/bin/preferences_gen.h:4837 +#: ../build/bin/preferences_gen.h:4871 ../build/bin/preferences_gen.h:4906 +#: ../build/bin/preferences_gen.h:4940 ../build/bin/preferences_gen.h:4979 +#: ../build/bin/preferences_gen.h:5020 ../build/bin/preferences_gen.h:5093 +#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:5162 +#: ../build/bin/preferences_gen.h:5203 ../build/bin/preferences_gen.h:5237 +#: ../build/bin/preferences_gen.h:5281 ../build/bin/preferences_gen.h:5315 +#: ../build/bin/preferences_gen.h:5350 ../build/bin/preferences_gen.h:5391 +#: ../build/bin/preferences_gen.h:5426 ../build/bin/preferences_gen.h:5460 +#: ../build/bin/preferences_gen.h:5494 ../build/bin/preferences_gen.h:5528 +#: ../build/bin/preferences_gen.h:5562 ../build/bin/preferences_gen.h:5596 +#: ../build/bin/preferences_gen.h:5630 ../build/bin/preferences_gen.h:5665 +#: ../build/bin/preferences_gen.h:5699 ../build/bin/preferences_gen.h:5733 +#: ../build/bin/preferences_gen.h:5799 ../build/bin/preferences_gen.h:5833 +#: ../build/bin/preferences_gen.h:5868 ../build/bin/preferences_gen.h:5903 +#: ../build/bin/preferences_gen.h:5944 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/preferences_gen.h:6013 ../build/bin/preferences_gen.h:6047 +#: ../build/bin/preferences_gen.h:6088 ../build/bin/preferences_gen.h:6124 +#: ../build/bin/preferences_gen.h:6165 ../build/bin/preferences_gen.h:6209 +#: ../build/bin/preferences_gen.h:6254 ../build/bin/preferences_gen.h:6305 +#: ../build/bin/preferences_gen.h:6349 ../build/bin/preferences_gen.h:6393 +#: ../build/bin/preferences_gen.h:6437 ../build/bin/preferences_gen.h:6481 +#: ../build/bin/preferences_gen.h:6525 ../build/bin/preferences_gen.h:6569 +#: ../build/bin/preferences_gen.h:6635 ../build/bin/preferences_gen.h:6669 +#: ../build/bin/preferences_gen.h:6703 ../build/bin/preferences_gen.h:6737 +#: ../build/bin/preferences_gen.h:6771 ../build/bin/preferences_gen.h:6805 +#: ../build/bin/preferences_gen.h:6839 ../build/bin/preferences_gen.h:6873 +#: ../build/bin/preferences_gen.h:6906 ../build/bin/preferences_gen.h:6939 +#: ../build/bin/preferences_gen.h:6973 ../build/bin/preferences_gen.h:7014 +#: ../build/bin/preferences_gen.h:7053 ../build/bin/preferences_gen.h:7124 +#: ../build/bin/preferences_gen.h:7159 ../build/bin/preferences_gen.h:7210 +#: ../build/bin/preferences_gen.h:7245 ../build/bin/preferences_gen.h:7280 +#: ../build/bin/preferences_gen.h:7324 ../build/bin/preferences_gen.h:7390 +#: ../build/bin/preferences_gen.h:7424 ../build/bin/preferences_gen.h:7458 +#: ../build/bin/preferences_gen.h:7492 ../build/bin/preferences_gen.h:7526 +#: ../build/bin/preferences_gen.h:7560 ../build/bin/preferences_gen.h:7605 +#: ../build/bin/preferences_gen.h:7640 ../build/bin/preferences_gen.h:7675 +#: ../build/bin/preferences_gen.h:7731 ../build/bin/preferences_gen.h:7772 +#: ../build/bin/preferences_gen.h:7806 ../build/bin/preferences_gen.h:7840 +#: ../build/bin/preferences_gen.h:7874 ../build/bin/preferences_gen.h:7908 +#: ../build/bin/preferences_gen.h:7943 ../build/bin/preferences_gen.h:7984 +#: ../build/bin/preferences_gen.h:8025 ../build/bin/preferences_gen.h:8085 +#: ../build/bin/preferences_gen.h:8119 ../build/bin/preferences_gen.h:8154 +#: ../build/bin/preferences_gen.h:8199 ../build/bin/preferences_gen.h:8233 +#: ../build/bin/preferences_gen.h:8278 ../build/bin/preferences_gen.h:8313 +#: ../build/bin/preferences_gen.h:8365 ../build/bin/preferences_gen.h:8410 +#: ../build/bin/preferences_gen.h:8480 ../build/bin/preferences_gen.h:8526 msgid "this setting has been modified" msgstr "This setting has been modified" #. doesn't seem to work from gtkrc -#: ../build/bin/preferences_gen.h:3793 ../build/bin/preferences_gen.h:4407 -#: ../build/bin/preferences_gen.h:5304 ../build/bin/preferences_gen.h:6110 -#: ../build/bin/preferences_gen.h:6662 ../build/bin/preferences_gen.h:6994 -#: ../build/bin/preferences_gen.h:7818 ../src/gui/accelerators.c:2724 -#: ../src/gui/gtk.c:2580 ../src/gui/preferences.c:421 -#: ../src/gui/preferences.c:876 ../src/libs/modulegroups.c:3886 +#: ../build/bin/preferences_gen.h:4277 ../build/bin/preferences_gen.h:4460 +#: ../build/bin/preferences_gen.h:5065 ../build/bin/preferences_gen.h:5771 +#: ../build/bin/preferences_gen.h:6607 ../build/bin/preferences_gen.h:7096 +#: ../build/bin/preferences_gen.h:7362 ../src/gui/accelerators.c:2996 +#: ../src/gui/gtk.c:2641 ../src/gui/preferences.c:424 +#: ../src/gui/preferences.c:874 ../src/libs/modulegroups.c:3888 msgid "?" msgstr "?" -#: ../build/bin/preferences_gen.h:3806 ../build/bin/preferences_gen.h:4420 -#: ../build/bin/preferences_gen.h:6123 ../src/gui/preferences.c:270 -msgid "general" -msgstr "General" +#: ../build/bin/preferences_gen.h:4287 ../src/control/jobs/control_jobs.c:2352 +#: ../src/libs/import.c:173 +msgid "import" +msgstr "Import" -#: ../build/bin/preferences_gen.h:3826 -msgid "hide built-in presets for utility modules" -msgstr "Hide built-in presets for utility modules" +#: ../build/bin/preferences_gen.h:4289 +msgid "session options" +msgstr "Session options" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4017 -#: ../build/bin/preferences_gen.h:4053 ../build/bin/preferences_gen.h:4156 -#: ../build/bin/preferences_gen.h:4251 ../build/bin/preferences_gen.h:4291 -#: ../build/bin/preferences_gen.h:4334 ../build/bin/preferences_gen.h:4377 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4531 ../build/bin/preferences_gen.h:4606 -#: ../build/bin/preferences_gen.h:4686 ../build/bin/preferences_gen.h:4756 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4860 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5040 ../build/bin/preferences_gen.h:5076 -#: ../build/bin/preferences_gen.h:5166 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5274 -#: ../build/bin/preferences_gen.h:5348 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5483 ../build/bin/preferences_gen.h:5525 -#: ../build/bin/preferences_gen.h:5596 ../build/bin/preferences_gen.h:5632 -#: ../build/bin/preferences_gen.h:5668 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5782 ../build/bin/preferences_gen.h:5819 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:5927 ../build/bin/preferences_gen.h:5998 -#: ../build/bin/preferences_gen.h:6074 ../build/bin/preferences_gen.h:6154 -#: ../build/bin/preferences_gen.h:6190 ../build/bin/preferences_gen.h:6226 -#: ../build/bin/preferences_gen.h:6262 ../build/bin/preferences_gen.h:6298 -#: ../build/bin/preferences_gen.h:6334 ../build/bin/preferences_gen.h:6370 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:6592 ../build/bin/preferences_gen.h:6632 -#: ../build/bin/preferences_gen.h:6745 ../build/bin/preferences_gen.h:6863 -#: ../build/bin/preferences_gen.h:6928 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7146 -#: ../build/bin/preferences_gen.h:7182 ../build/bin/preferences_gen.h:7288 -#: ../build/bin/preferences_gen.h:7353 ../build/bin/preferences_gen.h:7393 -#: ../build/bin/preferences_gen.h:7443 ../build/bin/preferences_gen.h:7488 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7656 -#: ../build/bin/preferences_gen.h:7692 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:7866 ../build/bin/preferences_gen.h:7906 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:7982 -#: ../build/bin/preferences_gen.h:8033 ../build/bin/preferences_gen.h:8093 -#: ../build/bin/preferences_gen.h:8175 ../build/bin/preferences_gen.h:8281 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4308 +msgid "base directory naming pattern" +msgstr "Base directory naming pattern" + +#: ../build/bin/preferences_gen.h:4323 ../build/bin/preferences_gen.h:4362 +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4435 +#: ../build/bin/preferences_gen.h:4501 ../build/bin/preferences_gen.h:4535 +#: ../build/bin/preferences_gen.h:4569 ../build/bin/preferences_gen.h:4603 +#: ../build/bin/preferences_gen.h:4637 ../build/bin/preferences_gen.h:4671 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4747 +#: ../build/bin/preferences_gen.h:4782 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:4850 ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:4958 +#: ../build/bin/preferences_gen.h:4999 ../build/bin/preferences_gen.h:5040 +#: ../build/bin/preferences_gen.h:5106 ../build/bin/preferences_gen.h:5140 +#: ../build/bin/preferences_gen.h:5182 ../build/bin/preferences_gen.h:5217 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5329 +#: ../build/bin/preferences_gen.h:5363 ../build/bin/preferences_gen.h:5405 +#: ../build/bin/preferences_gen.h:5439 ../build/bin/preferences_gen.h:5473 +#: ../build/bin/preferences_gen.h:5507 ../build/bin/preferences_gen.h:5541 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5644 ../build/bin/preferences_gen.h:5678 +#: ../build/bin/preferences_gen.h:5712 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5847 +#: ../build/bin/preferences_gen.h:5882 ../build/bin/preferences_gen.h:5922 +#: ../build/bin/preferences_gen.h:5958 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6060 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6178 ../build/bin/preferences_gen.h:6223 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6318 +#: ../build/bin/preferences_gen.h:6362 ../build/bin/preferences_gen.h:6406 +#: ../build/bin/preferences_gen.h:6450 ../build/bin/preferences_gen.h:6494 +#: ../build/bin/preferences_gen.h:6538 ../build/bin/preferences_gen.h:6582 +#: ../build/bin/preferences_gen.h:6648 ../build/bin/preferences_gen.h:6682 +#: ../build/bin/preferences_gen.h:6716 ../build/bin/preferences_gen.h:6750 +#: ../build/bin/preferences_gen.h:6784 ../build/bin/preferences_gen.h:6818 +#: ../build/bin/preferences_gen.h:6852 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7032 +#: ../build/bin/preferences_gen.h:7071 ../build/bin/preferences_gen.h:7138 +#: ../build/bin/preferences_gen.h:7224 ../build/bin/preferences_gen.h:7259 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7505 ../build/bin/preferences_gen.h:7539 +#: ../build/bin/preferences_gen.h:7619 ../build/bin/preferences_gen.h:7654 +#: ../build/bin/preferences_gen.h:7693 ../build/bin/preferences_gen.h:7744 +#: ../build/bin/preferences_gen.h:7785 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7922 ../build/bin/preferences_gen.h:7956 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8133 ../build/bin/preferences_gen.h:8212 +#: ../build/bin/preferences_gen.h:8292 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 #, c-format msgid "double click to reset to `%s'" msgstr "Double click to reset to `%s'" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4053 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4686 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:5040 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5348 -#: ../build/bin/preferences_gen.h:5632 ../build/bin/preferences_gen.h:5668 -#: ../build/bin/preferences_gen.h:5819 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:6370 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7146 ../build/bin/preferences_gen.h:7443 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7692 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:8033 -#: ../build/bin/preferences_gen.h:8175 +#: ../build/bin/preferences_gen.h:4326 ../build/bin/preferences_gen.h:4365 +msgid "part of full import path for an import session" +msgstr "Part of full import path for an import session" + +#: ../build/bin/preferences_gen.h:4347 +msgid "sub directory naming pattern" +msgstr "Sub directory naming pattern" + +#: ../build/bin/preferences_gen.h:4386 +msgid "keep original filename" +msgstr "Keep original filename" + +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4501 +#: ../build/bin/preferences_gen.h:4535 ../build/bin/preferences_gen.h:4569 +#: ../build/bin/preferences_gen.h:4603 ../build/bin/preferences_gen.h:4637 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4850 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:5106 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5439 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5712 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6450 +#: ../build/bin/preferences_gen.h:6494 ../build/bin/preferences_gen.h:6538 +#: ../build/bin/preferences_gen.h:6582 ../build/bin/preferences_gen.h:6852 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7505 +#: ../build/bin/preferences_gen.h:7744 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7956 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8212 msgctxt "preferences" msgid "FALSE" msgstr "FALSE" -#: ../build/bin/preferences_gen.h:3840 +#: ../build/bin/preferences_gen.h:4399 +msgid "" +"keep original filename instead of a pattern while importing from camera or " +"card" +msgstr "" +"Keep original filename instead of a pattern while importing from camera or " +"card" + +#: ../build/bin/preferences_gen.h:4420 +msgid "file naming pattern" +msgstr "File naming pattern" + +#: ../build/bin/preferences_gen.h:4438 +msgid "file naming pattern used for a import session" +msgstr "File naming pattern used for a import session" + +#: ../build/bin/preferences_gen.h:4470 ../src/gui/gtk.c:1266 +#: ../src/gui/preferences.c:544 ../src/libs/tools/lighttable.c:66 +#: ../src/views/lighttable.c:91 +msgid "lighttable" +msgstr "Lighttable" + +#: ../build/bin/preferences_gen.h:4472 ../build/bin/preferences_gen.h:5077 +#: ../build/bin/preferences_gen.h:6619 ../src/gui/preferences.c:270 +msgid "general" +msgstr "General" + +#: ../build/bin/preferences_gen.h:4491 +msgid "hide built-in presets for utility modules" +msgstr "Hide built-in presets for utility modules" + +#: ../build/bin/preferences_gen.h:4504 msgid "hides built-in presets of utility modules in presets menu." msgstr "Hides built-in presets of utility modules in presets menu." -#: ../build/bin/preferences_gen.h:3862 +#: ../build/bin/preferences_gen.h:4525 msgid "use single-click in the collections module" msgstr "Use single-click in the collections module" -#: ../build/bin/preferences_gen.h:3876 +#: ../build/bin/preferences_gen.h:4538 msgid "" "check this option to use single-click to select items in the collections " "module. this will allow you to do range selections for date-time and numeric " @@ -992,19 +1005,19 @@ "module. This will allow you to do range selections for date-time and numeric " "values." -#: ../build/bin/preferences_gen.h:3898 +#: ../build/bin/preferences_gen.h:4559 msgid "expand a single utility module at a time" msgstr "Expand a single utility module at a time" -#: ../build/bin/preferences_gen.h:3912 +#: ../build/bin/preferences_gen.h:4572 msgid "this option toggles the behavior of shift clicking in lighttable mode" msgstr "This option toggles the behavior of Shift clicking in Lighttable mode" -#: ../build/bin/preferences_gen.h:3934 +#: ../build/bin/preferences_gen.h:4593 msgid "scroll utility modules to the top when expanded" msgstr "Scroll utility modules to the top when expanded" -#: ../build/bin/preferences_gen.h:3948 ../build/bin/preferences_gen.h:5079 +#: ../build/bin/preferences_gen.h:4606 ../build/bin/preferences_gen.h:5612 msgid "" "when this option is enabled then darktable will try to scroll the module to " "the top of the visible list" @@ -1012,60 +1025,62 @@ "When this option is enabled then Darktable will try to scroll the module to " "the top of the visible list" -#: ../build/bin/preferences_gen.h:3970 +#: ../build/bin/preferences_gen.h:4627 msgid "rating an image one star twice will not zero out the rating" msgstr "Rating an image one star twice will not zero out the rating" -#: ../build/bin/preferences_gen.h:3984 +#: ../build/bin/preferences_gen.h:4640 msgid "" "defines whether rating an image one star twice will zero out star rating" msgstr "" "Defines whether rating an image one star twice will zero out star rating" -#: ../build/bin/preferences_gen.h:4006 ../build/bin/preferences_gen.h:4675 +#: ../build/bin/preferences_gen.h:4661 ../build/bin/preferences_gen.h:5284 msgid "show scrollbars for central view" msgstr "Show scrollbars for central view" -#: ../build/bin/preferences_gen.h:4017 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5076 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5274 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5927 -#: ../build/bin/preferences_gen.h:6154 ../build/bin/preferences_gen.h:6190 -#: ../build/bin/preferences_gen.h:6226 ../build/bin/preferences_gen.h:6262 -#: ../build/bin/preferences_gen.h:6298 ../build/bin/preferences_gen.h:6334 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7182 -#: ../build/bin/preferences_gen.h:7488 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4671 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:5140 ../build/bin/preferences_gen.h:5363 +#: ../build/bin/preferences_gen.h:5473 ../build/bin/preferences_gen.h:5507 +#: ../build/bin/preferences_gen.h:5541 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5678 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:6060 ../build/bin/preferences_gen.h:6178 +#: ../build/bin/preferences_gen.h:6318 ../build/bin/preferences_gen.h:6362 +#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6648 +#: ../build/bin/preferences_gen.h:6682 ../build/bin/preferences_gen.h:6716 +#: ../build/bin/preferences_gen.h:6750 ../build/bin/preferences_gen.h:6784 +#: ../build/bin/preferences_gen.h:6818 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7539 ../build/bin/preferences_gen.h:7785 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 msgctxt "preferences" msgid "TRUE" msgstr "TRUE" -#: ../build/bin/preferences_gen.h:4020 ../build/bin/preferences_gen.h:4689 +#: ../build/bin/preferences_gen.h:4674 ../build/bin/preferences_gen.h:5297 msgid "defines whether scrollbars should be displayed" msgstr "Defines whether scrollbars should be displayed" -#: ../build/bin/preferences_gen.h:4042 +#: ../build/bin/preferences_gen.h:4695 msgid "show image time with milliseconds" msgstr "Show image time with milliseconds" -#: ../build/bin/preferences_gen.h:4056 +#: ../build/bin/preferences_gen.h:4708 msgid "defines whether time should be displayed with milliseconds" msgstr "Defines whether time should be displayed with milliseconds" -#: ../build/bin/preferences_gen.h:4066 +#: ../build/bin/preferences_gen.h:4717 msgid "thumbnails" msgstr "Thumbnails" -#: ../build/bin/preferences_gen.h:4086 +#: ../build/bin/preferences_gen.h:4736 msgid "use raw file instead of embedded JPEG from size" msgstr "Use raw file instead of embedded JPEG from size" -#: ../build/bin/preferences_gen.h:4159 +#: ../build/bin/preferences_gen.h:4750 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "raw file instead of the embedded preview JPEG (better but slower).\n" @@ -1079,11 +1094,11 @@ "should choose the *always* option.\n" "(more comments in the manual)" -#: ../build/bin/preferences_gen.h:4181 +#: ../build/bin/preferences_gen.h:4771 msgid "high quality processing from size" msgstr "High quality processing from size" -#: ../build/bin/preferences_gen.h:4254 +#: ../build/bin/preferences_gen.h:4785 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "the full quality rendering path (better but slower).\n" @@ -1097,11 +1112,81 @@ "should choose the *always* option.\n" "(more comments in the manual)" -#: ../build/bin/preferences_gen.h:4276 +#: ../build/bin/preferences_gen.h:4806 +msgid "enable disk backend for thumbnail cache" +msgstr "Enable disk backend for thumbnail cache" + +#: ../build/bin/preferences_gen.h:4819 +msgid "" +"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want. light table " +"performance will be increased greatly when browsing a lot.\n" +"to generate all thumbnails of your entire collection offline, run 'darktable-" +"generate-cache'." +msgstr "" +"If enabled, write thumbnails to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"Note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"It's safe though to delete these manually, if you want. Light table " +"performance will be increased greatly when browsing a lot.\n" +"To generate all thumbnails of your entire collection offline, run 'darktable-" +"generate-cache'." + +#: ../build/bin/preferences_gen.h:4840 +msgid "enable disk backend for full preview cache" +msgstr "Enable disk backend for full preview cache" + +#: ../build/bin/preferences_gen.h:4853 +msgid "" +"if enabled, write full preview to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want.\n" +"light table performance will be increased greatly when zooming image in full " +"preview mode." +msgstr "" +"If enabled, write full preview to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"Note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"It's safe though to delete these manually, if you want.\n" +"Light table performance will be increased greatly when zooming image in full " +"preview mode." + +#: ../build/bin/preferences_gen.h:4874 +msgid "generate thumbnails in background" +msgstr "Generate thumbnails in background" + +#: ../build/bin/preferences_gen.h:4888 +msgid "" +"if 'enable disk backend for thumbnail cache' is enabled thumbnails/mipmaps " +"up to the selected size are generated while user is inactive in lighttable." +msgstr "" +"If 'Enable disk backend for thumbnail cache' is enabled, thumbnails/mipmaps " +"up to the selected size are generated while user is inactive in Lighttable." + +#: ../build/bin/preferences_gen.h:4909 +msgid "reset cached thumbnails" +msgstr "Reset cached thumbnails" + +#: ../build/bin/preferences_gen.h:4922 +msgid "" +"force thumbnails to be regenerated by resetting the database. this may be " +"needed in case some thumbnails have been manually removed or corrupted." +msgstr "" +"Force thumbnails to be regenerated by resetting the database. This may be " +"needed in case some thumbnails have been manually removed or corrupted." + +#: ../build/bin/preferences_gen.h:4943 msgid "delimiters for size categories" msgstr "Delimiters for size categories" -#: ../build/bin/preferences_gen.h:4294 +#: ../build/bin/preferences_gen.h:4961 msgid "" "size categories are used to be able to set different overlays and CSS values " "depending of the size of the thumbnail, separated by |.\n" @@ -1113,23 +1198,28 @@ "For example, 120|400 means 3 categories of thumbnails: <120px, 120-400px, " ">400px" -#: ../build/bin/preferences_gen.h:4316 +#: ../build/bin/preferences_gen.h:4982 msgid "pattern for the thumbnail extended overlay text" msgstr "Pattern for the thumbnail extended overlay text" -#: ../build/bin/preferences_gen.h:4337 ../build/bin/preferences_gen.h:4380 +#: ../build/bin/preferences_gen.h:5002 ../build/bin/preferences_gen.h:5043 msgid "see manual to know all the tags you can use." msgstr "See manual to know all the tags you can use." -#: ../build/bin/preferences_gen.h:4359 +#: ../build/bin/preferences_gen.h:5023 msgid "pattern for the thumbnail tooltip (empty to disable)" msgstr "Pattern for the thumbnail tooltip (empty to disable)" -#: ../build/bin/preferences_gen.h:4440 +#: ../build/bin/preferences_gen.h:5075 ../src/gui/gtk.c:1267 +#: ../src/gui/preferences.c:544 ../src/views/darkroom.c:94 +msgid "darkroom" +msgstr "Darkroom" + +#: ../build/bin/preferences_gen.h:5096 msgid "scroll down to increase mask parameters" msgstr "Scroll down to increase mask parameters" -#: ../build/bin/preferences_gen.h:4454 +#: ../build/bin/preferences_gen.h:5109 msgid "" "when using the mouse scroll wheel to change mask parameters, scroll down to " "increase the mask size, feather size, opacity, brush hardness and gradient " @@ -1141,11 +1231,11 @@ "curvature\n" "By default scrolling up increases these parameters" -#: ../build/bin/preferences_gen.h:4476 +#: ../build/bin/preferences_gen.h:5130 msgid "middle mouse button zooms to 200%" msgstr "Middle mouse button zooms to 200%" -#: ../build/bin/preferences_gen.h:4491 +#: ../build/bin/preferences_gen.h:5144 #, no-c-format msgid "" "if enabled, the zoom level will cycle between 100%, 200% and fit to viewport " @@ -1156,32 +1246,32 @@ "on middle mouse clicks. If disabled, it will toggle between viewport size " "and 100%, and the Ctrl key can be used to control the zoom level." -#: ../build/bin/preferences_gen.h:4513 +#: ../build/bin/preferences_gen.h:5165 msgid "pattern for the image information line" msgstr "Pattern for the image information line" -#: ../build/bin/preferences_gen.h:4534 +#: ../build/bin/preferences_gen.h:5185 msgid "see manual for a list of the tags you can use." msgstr "See manual for a list of the tags you can use." -#: ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:5206 msgid "position of the image information line" msgstr "Position of the image information line" -#: ../build/bin/preferences_gen.h:4630 +#: ../build/bin/preferences_gen.h:5240 msgid "border around image in darkroom mode" msgstr "Border around image in Darkroom mode" -#: ../build/bin/preferences_gen.h:4650 ../build/bin/preferences_gen.h:6790 -#: ../build/bin/preferences_gen.h:7228 ../build/bin/preferences_gen.h:7789 -#: ../build/bin/preferences_gen.h:8139 ../build/bin/preferences_gen.h:8221 -#: ../build/bin/preferences_gen.h:8379 ../build/bin/preferences_gen.h:8493 -#: ../build/bin/preferences_gen.h:8540 +#: ../build/bin/preferences_gen.h:5260 ../build/bin/preferences_gen.h:7182 +#: ../build/bin/preferences_gen.h:7303 ../build/bin/preferences_gen.h:7584 +#: ../build/bin/preferences_gen.h:8048 ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8257 ../build/bin/preferences_gen.h:8389 +#: ../build/bin/preferences_gen.h:8504 ../build/bin/preferences_gen.h:8550 #, c-format msgid "double click to reset to `%d'" msgstr "Double click to reset to `%d'" -#: ../build/bin/preferences_gen.h:4653 +#: ../build/bin/preferences_gen.h:5263 msgid "" "process the image in darkroom mode with a small border. set to 0 if you " "don't want any border." @@ -1189,19 +1279,19 @@ "Process the image in Darkroom mode with a small border. Set to 0 if you " "don't want any border." -#: ../build/bin/preferences_gen.h:4711 +#: ../build/bin/preferences_gen.h:5318 msgid "reduce resolution of preview image" msgstr "Reduce resolution of preview image" -#: ../build/bin/preferences_gen.h:4759 +#: ../build/bin/preferences_gen.h:5332 msgid "decrease to speed up preview rendering, may hinder accurate masking" msgstr "Decrease to speed up preview rendering, may hinder accurate masking" -#: ../build/bin/preferences_gen.h:4781 +#: ../build/bin/preferences_gen.h:5353 msgid "show loading screen between images" msgstr "Show loading screen between images" -#: ../build/bin/preferences_gen.h:4795 +#: ../build/bin/preferences_gen.h:5366 msgid "" "show gray loading screen when navigating between images in the darkroom\n" "disable to just show a toast message" @@ -1209,15 +1299,15 @@ "Show gray loading screen when navigating between images in the Darkroom\n" "Disable to just show a toast message" -#: ../build/bin/preferences_gen.h:4805 +#: ../build/bin/preferences_gen.h:5375 msgid "modules" msgstr "Modules" -#: ../build/bin/preferences_gen.h:4825 +#: ../build/bin/preferences_gen.h:5394 msgid "display of individual color channels" msgstr "Display of individual color channels" -#: ../build/bin/preferences_gen.h:4863 +#: ../build/bin/preferences_gen.h:5408 msgid "" "defines how color channels are displayed when activated in the parametric " "masks feature." @@ -1225,11 +1315,11 @@ "Defines how color channels are displayed when activated in the parametric " "masks feature." -#: ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:5429 msgid "hide built-in presets for processing modules" msgstr "Hide built-in presets for processing modules" -#: ../build/bin/preferences_gen.h:4899 +#: ../build/bin/preferences_gen.h:5442 msgid "" "hides built-in presets of processing modules in both presets and favourites " "menu." @@ -1237,23 +1327,23 @@ "Hides built-in presets of processing modules in both presets and favourites " "menu." -#: ../build/bin/preferences_gen.h:4921 ../build/bin/preferences_gen.h:4935 +#: ../build/bin/preferences_gen.h:5463 ../build/bin/preferences_gen.h:5476 msgid "show the guides widget in modules UI" msgstr "Show the guides widget in modules UI" -#: ../build/bin/preferences_gen.h:4957 +#: ../build/bin/preferences_gen.h:5497 msgid "expand a single processing module at a time" msgstr "Expand a single processing module at a time" -#: ../build/bin/preferences_gen.h:4971 +#: ../build/bin/preferences_gen.h:5510 msgid "this option toggles the behavior of shift clicking in darkroom mode" msgstr "This option toggles the behavior of Shift clicking in Darkroom mode" -#: ../build/bin/preferences_gen.h:4993 +#: ../build/bin/preferences_gen.h:5531 msgid "only collapse modules in current group" msgstr "Only collapse modules in current group" -#: ../build/bin/preferences_gen.h:5007 +#: ../build/bin/preferences_gen.h:5544 msgid "" "if only expanding a single module at a time, only collapse other modules in " "the current group - ignore modules in other groups" @@ -1261,11 +1351,11 @@ "If only expanding a single module at a time, only collapse other modules in " "the current group - ignore modules in other groups" -#: ../build/bin/preferences_gen.h:5029 +#: ../build/bin/preferences_gen.h:5565 msgid "expand the module when it is activated, and collapse it when disabled" msgstr "Expand the module when it is activated, and collapse it when disabled" -#: ../build/bin/preferences_gen.h:5043 +#: ../build/bin/preferences_gen.h:5578 msgid "" "this option allows to expand or collapse automatically the module when it is " "enabled or disabled." @@ -1273,15 +1363,15 @@ "This option allows to expand or collapse automatically the module when it is " "enabled or disabled." -#: ../build/bin/preferences_gen.h:5065 +#: ../build/bin/preferences_gen.h:5599 msgid "scroll processing modules to the top when expanded" msgstr "Scroll processing modules to the top when expanded" -#: ../build/bin/preferences_gen.h:5101 +#: ../build/bin/preferences_gen.h:5633 msgid "show right-side buttons in processing module headers" msgstr "Show right-side buttons in processing module headers" -#: ../build/bin/preferences_gen.h:5169 +#: ../build/bin/preferences_gen.h:5647 msgid "" "when the mouse is not over a module, the multi-instance, reset and preset " "buttons can be hidden:\n" @@ -1305,11 +1395,11 @@ " - 'Smooth': fade out all buttons in one header simultaneously,\n" " - 'Glide': gradually hide individual buttons as needed" -#: ../build/bin/preferences_gen.h:5191 +#: ../build/bin/preferences_gen.h:5668 msgid "show mask indicator in module headers" msgstr "Show mask indicator in module headers" -#: ../build/bin/preferences_gen.h:5205 +#: ../build/bin/preferences_gen.h:5681 msgid "" "if enabled, an icon will be shown in the header of any processing modules " "that have a mask applied" @@ -1317,11 +1407,11 @@ "If enabled, an icon will be shown in the header of any processing modules " "that have a mask applied" -#: ../build/bin/preferences_gen.h:5227 +#: ../build/bin/preferences_gen.h:5702 msgid "prompt for name on addition of new instance" msgstr "Prompt for name on addition of new instance" -#: ../build/bin/preferences_gen.h:5241 +#: ../build/bin/preferences_gen.h:5715 msgid "" "if enabled, a rename prompt will be present for each new module instance " "(either new instance or duplicate)" @@ -1329,11 +1419,11 @@ "If enabled, a rename prompt will be present for each new module instance " "(either new instance or duplicate)" -#: ../build/bin/preferences_gen.h:5263 +#: ../build/bin/preferences_gen.h:5736 msgid "automatically update module name" msgstr "Automatically update module name" -#: ../build/bin/preferences_gen.h:5277 +#: ../build/bin/preferences_gen.h:5749 msgid "" "if enabled, the module name will be automatically updated to match a preset " "name or a preset instance name if present." @@ -1341,23 +1431,27 @@ "If enabled, the module name will be automatically updated to match a preset " "name or a preset instance name if present." -#: ../build/bin/preferences_gen.h:5317 +#: ../build/bin/preferences_gen.h:5781 +msgid "processing" +msgstr "Processing" + +#: ../build/bin/preferences_gen.h:5783 msgid "image processing" msgstr "Image processing" -#: ../build/bin/preferences_gen.h:5337 +#: ../build/bin/preferences_gen.h:5802 msgid "always use LittleCMS 2 to apply output color profile" msgstr "Always use LittleCMS 2 to apply output color profile" -#: ../build/bin/preferences_gen.h:5351 +#: ../build/bin/preferences_gen.h:5815 msgid "this is slower than the default." msgstr "This is slower than the default." -#: ../build/bin/preferences_gen.h:5373 +#: ../build/bin/preferences_gen.h:5836 msgid "pixel interpolator (warp)" msgstr "Pixel interpolator (warp)" -#: ../build/bin/preferences_gen.h:5416 +#: ../build/bin/preferences_gen.h:5850 msgid "" "pixel interpolator used in modules for rotation, lens correction, liquify, " "cropping and final scaling (bilinear, bicubic, lanczos2)." @@ -1365,32 +1459,32 @@ "Pixel interpolator used in modules for rotation, lens correction, liquify, " "cropping and final scaling (bilinear, bicubic, lanczos2)." -#: ../build/bin/preferences_gen.h:5438 +#: ../build/bin/preferences_gen.h:5871 msgid "pixel interpolator (scaling)" msgstr "Pixel interpolator (scaling)" -#: ../build/bin/preferences_gen.h:5486 +#: ../build/bin/preferences_gen.h:5885 msgid "" "pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." msgstr "" "Pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." -#: ../build/bin/preferences_gen.h:5508 +#: ../build/bin/preferences_gen.h:5906 msgid "LUT 3D root folder" msgstr "LUT 3D root folder" -#: ../build/bin/preferences_gen.h:5513 ../src/control/jobs/control_jobs.c:1688 -#: ../src/control/jobs/control_jobs.c:1742 ../src/gui/preferences.c:1081 -#: ../src/gui/presets.c:419 ../src/imageio/storage/disk.c:122 -#: ../src/imageio/storage/disk.c:178 ../src/imageio/storage/gallery.c:109 -#: ../src/imageio/storage/gallery.c:163 ../src/imageio/storage/latex.c:108 -#: ../src/imageio/storage/latex.c:162 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/import.c:1664 ../src/libs/styles.c:391 +#: ../build/bin/preferences_gen.h:5912 ../src/control/jobs/control_jobs.c:1691 +#: ../src/control/jobs/control_jobs.c:1745 ../src/gui/preferences.c:1080 +#: ../src/gui/presets.c:421 ../src/imageio/storage/disk.c:197 +#: ../src/imageio/storage/disk.c:261 ../src/imageio/storage/gallery.c:149 +#: ../src/imageio/storage/gallery.c:213 ../src/imageio/storage/latex.c:145 +#: ../src/imageio/storage/latex.c:199 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1673 ../src/libs/styles.c:391 #: ../src/lua/preferences.c:668 msgid "select directory" msgstr "Select directory" -#: ../build/bin/preferences_gen.h:5529 +#: ../build/bin/preferences_gen.h:5926 msgid "" "this folder (and sub-folders) contains LUT files used by LUT 3D module. " "(need a restart)." @@ -1398,11 +1492,11 @@ "This folder (and sub-folders) contains LUT files used by LUT 3D module. " "(need a restart)." -#: ../build/bin/preferences_gen.h:5551 +#: ../build/bin/preferences_gen.h:5947 msgid "auto-apply pixel workflow defaults" msgstr "Auto-apply pixel workflow defaults" -#: ../build/bin/preferences_gen.h:5599 +#: ../build/bin/preferences_gen.h:5961 msgid "" "scene-referred workflow is based on linear modules and will auto-apply " "filmic or sigmoid, color calibration and exposure,\n" @@ -1414,11 +1508,11 @@ "Display-referred workflow is based on Lab modules and will auto-apply Base " "curve, White balance and the legacy module pipe order." -#: ../build/bin/preferences_gen.h:5621 +#: ../build/bin/preferences_gen.h:5982 msgid "auto-apply per camera basecurve presets" msgstr "Auto-apply per camera basecurve presets" -#: ../build/bin/preferences_gen.h:5635 +#: ../build/bin/preferences_gen.h:5995 msgid "" "use the per-camera basecurve by default instead of the generic manufacturer " "one if there is one available (needs a restart).\n" @@ -1434,11 +1528,11 @@ "To prevent auto-apply basecurve presets \"Auto-apply pixel workflow " "defaults\" should be set to \"None\"" -#: ../build/bin/preferences_gen.h:5657 +#: ../build/bin/preferences_gen.h:6016 msgid "detect monochrome previews" msgstr "Detect monochrome previews" -#: ../build/bin/preferences_gen.h:5671 +#: ../build/bin/preferences_gen.h:6029 msgid "" "many monochrome images can be identified via EXIF and preview data. beware: " "this slows down imports and reading of EXIF data" @@ -1446,11 +1540,11 @@ "Many monochrome images can be identified via EXIF and preview data. Beware: " "this slows down imports and reading of EXIF data" -#: ../build/bin/preferences_gen.h:5693 +#: ../build/bin/preferences_gen.h:6050 msgid "show warning messages" msgstr "Show warning messages" -#: ../build/bin/preferences_gen.h:5707 +#: ../build/bin/preferences_gen.h:6063 msgid "" "display messages in modules to warn beginner users when non-standard and " "possibly harmful settings are used in the pipeline.\n" @@ -1462,15 +1556,15 @@ "These messages can be false-positive and should be disregarded if you know " "what you are doing. This option will hide them all the time." -#: ../build/bin/preferences_gen.h:5717 -msgid "CPU / GPU / memory" -msgstr "CPU / GPU / Memory" +#: ../build/bin/preferences_gen.h:6072 +msgid "CPU / memory" +msgstr "CPU / Memory" -#: ../build/bin/preferences_gen.h:5737 +#: ../build/bin/preferences_gen.h:6091 msgid "darktable resources" msgstr "Darktable resources" -#: ../build/bin/preferences_gen.h:5786 +#: ../build/bin/preferences_gen.h:6106 #, no-c-format msgid "" "defines how much darktable may take from your system resources:\n" @@ -1499,11 +1593,11 @@ " and thus might lead to swapping and unexpected performance drops.\n" " Use with caution and not recommended for general use!" -#: ../build/bin/preferences_gen.h:5808 +#: ../build/bin/preferences_gen.h:6127 msgid "prefer performance over quality" msgstr "Prefer performance over quality" -#: ../build/bin/preferences_gen.h:5822 +#: ../build/bin/preferences_gen.h:6140 msgid "" "if switched on, thumbnails and previews are rendered at lower quality but 4 " "times faster" @@ -1511,57 +1605,15 @@ "If switched on, thumbnails and previews are rendered at lower quality but 4 " "times faster" -#: ../build/bin/preferences_gen.h:5844 -msgid "enable disk backend for thumbnail cache" -msgstr "Enable disk backend for thumbnail cache" - -#: ../build/bin/preferences_gen.h:5858 -msgid "" -"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want. light table " -"performance will be increased greatly when browsing a lot.\n" -"to generate all thumbnails of your entire collection offline, run 'darktable-" -"generate-cache'." -msgstr "" -"If enabled, write thumbnails to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"Note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"It's safe though to delete these manually, if you want. Light table " -"performance will be increased greatly when browsing a lot.\n" -"To generate all thumbnails of your entire collection offline, run 'darktable-" -"generate-cache'." - -#: ../build/bin/preferences_gen.h:5880 -msgid "enable disk backend for full preview cache" -msgstr "Enable disk backend for full preview cache" - -#: ../build/bin/preferences_gen.h:5894 -msgid "" -"if enabled, write full preview to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want.\n" -"light table performance will be increased greatly when zooming image in full " -"preview mode." -msgstr "" -"If enabled, write full preview to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"Note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"It's safe though to delete these manually, if you want.\n" -"Light table performance will be increased greatly when zooming image in full " -"preview mode." +#: ../build/bin/preferences_gen.h:6149 +msgid "OpenCL" +msgstr "OpenCL" -#: ../build/bin/preferences_gen.h:5916 +#: ../build/bin/preferences_gen.h:6168 msgid "activate OpenCL support" msgstr "Activate OpenCL support" -#: ../build/bin/preferences_gen.h:5930 +#: ../build/bin/preferences_gen.h:6181 msgid "" "if found, use OpenCL runtime on your system to speed up processing.\n" "can be switched on and off at any time." @@ -1569,23 +1621,32 @@ "If found, use OpenCL runtime on your system to speed up processing.\n" "Can be switched on and off at any time." -#: ../build/bin/preferences_gen.h:5931 ../build/bin/preferences_gen.h:6002 -#: ../build/bin/preferences_gen.h:6078 ../build/bin/preferences_gen.h:7397 +#: ../build/bin/preferences_gen.h:6185 ../build/bin/preferences_gen.h:6230 +#: ../build/bin/preferences_gen.h:6274 ../build/bin/preferences_gen.h:6325 +#: ../build/bin/preferences_gen.h:6369 ../build/bin/preferences_gen.h:6413 +#: ../build/bin/preferences_gen.h:6457 ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6545 ../build/bin/preferences_gen.h:7700 msgid "not available" msgstr "Not available" -#: ../build/bin/preferences_gen.h:5934 ../build/bin/preferences_gen.h:5938 -#: ../build/bin/preferences_gen.h:6005 ../build/bin/preferences_gen.h:6009 -#: ../build/bin/preferences_gen.h:6081 ../build/bin/preferences_gen.h:6085 -#: ../build/bin/preferences_gen.h:7400 ../build/bin/preferences_gen.h:7404 +#: ../build/bin/preferences_gen.h:6187 ../build/bin/preferences_gen.h:6188 +#: ../build/bin/preferences_gen.h:6232 ../build/bin/preferences_gen.h:6233 +#: ../build/bin/preferences_gen.h:6276 ../build/bin/preferences_gen.h:6277 +#: ../build/bin/preferences_gen.h:6327 ../build/bin/preferences_gen.h:6328 +#: ../build/bin/preferences_gen.h:6371 ../build/bin/preferences_gen.h:6372 +#: ../build/bin/preferences_gen.h:6415 ../build/bin/preferences_gen.h:6416 +#: ../build/bin/preferences_gen.h:6459 ../build/bin/preferences_gen.h:6460 +#: ../build/bin/preferences_gen.h:6503 ../build/bin/preferences_gen.h:6504 +#: ../build/bin/preferences_gen.h:6547 ../build/bin/preferences_gen.h:6548 +#: ../build/bin/preferences_gen.h:7702 ../build/bin/preferences_gen.h:7703 msgid "not available on this system" msgstr "Not available on this system" -#: ../build/bin/preferences_gen.h:5958 +#: ../build/bin/preferences_gen.h:6212 msgid "OpenCL scheduling profile" msgstr "OpenCL scheduling profile" -#: ../build/bin/preferences_gen.h:6001 +#: ../build/bin/preferences_gen.h:6226 msgid "" "defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled " "systems:\n" @@ -1603,51 +1664,123 @@ "GPUs,\n" " - 'Very fast GPU': process both pixelpipes sequentially on the GPU." -#: ../build/bin/preferences_gen.h:6029 -msgid "tune OpenCL performance" -msgstr "Tune OpenCL performance" +#: ../build/bin/preferences_gen.h:6257 +msgid "use all device memory" +msgstr "Use all device memory" + +#: ../build/bin/preferences_gen.h:6270 +msgid "" +"if enabled darktable will use all device memory except a safety margin " +"(headroom, default is 600MB)" +msgstr "" +"If enabled Darktable will use all device memory except a safety margin " +"(headroom, default is 600MB)" + +#: ../build/bin/preferences_gen.h:6289 +msgid "OpenCL drivers" +msgstr "OpenCL drivers" + +#: ../build/bin/preferences_gen.h:6308 +msgid "Intel GPU" +msgstr "Intel GPU" + +#: ../build/bin/preferences_gen.h:6321 +msgid "Intel(R) OpenCL Graphics for all supported platforms (vendor provided)" +msgstr "Intel® OpenCL Graphics for all supported platforms (vendor provided)" + +#: ../build/bin/preferences_gen.h:6352 +msgid "Nvidia CUDA" +msgstr "Nvidia CUDA" + +#: ../build/bin/preferences_gen.h:6365 +msgid "Nvidia CUDA based OpenCL (vendor provided)" +msgstr "Nvidia CUDA based OpenCL (vendor provided)" -#: ../build/bin/preferences_gen.h:6077 +#: ../build/bin/preferences_gen.h:6396 +msgid "AMD ROCm" +msgstr "AMD ROCm" + +#: ../build/bin/preferences_gen.h:6409 +msgid "AMD Accelerated Parallel Processing (vendor provided)" +msgstr "AMD Accelerated Parallel Processing (vendor provided)" + +#: ../build/bin/preferences_gen.h:6440 +msgid "RustiCL" +msgstr "RustiCL" + +#: ../build/bin/preferences_gen.h:6453 +msgid "" +"RustiCL Mesa OpenCL, still unstable. if you want to use this, you should " +"disable the vendor driver" +msgstr "" +"RustiCL Mesa OpenCL, still unstable. If you want to use this, you should " +"disable the vendor driver" + +#: ../build/bin/preferences_gen.h:6484 +msgid "Apple" +msgstr "Apple" + +#: ../build/bin/preferences_gen.h:6497 +msgid "Apple OpenCL (vendor provided)" +msgstr "Apple OpenCL (vendor provided)" + +#: ../build/bin/preferences_gen.h:6528 +msgid "Microsoft OpenCLOn12" +msgstr "Microsoft OpenCLOn12" + +#: ../build/bin/preferences_gen.h:6541 msgid "" -"allows runtime tuning of OpenCL devices:\n" -" - 'memory size': uses a fixed headroom (400MB as default),\n" -" - 'memory transfer': tries a faster memory access mode (pinned memory) used " -"for tiling." -msgstr "" -"Allows runtime tuning of OpenCL devices:\n" -" - 'Memory size': uses a fixed headroom (400MB as default),\n" -" - 'Memory transfer': tries a faster memory access mode (pinned memory) used " -"for tiling." +"Microsoft OpenCLOn12, only use this if the vendor provided driver does not " +"work or there is none provided." +msgstr "" +"Microsoft OpenCLOn12, only use this if the vendor provided driver does not " +"work or there is none provided." + +#: ../build/bin/preferences_gen.h:6572 +msgid "other platforms" +msgstr "Other platforms" -#: ../build/bin/preferences_gen.h:6143 +#: ../build/bin/preferences_gen.h:6585 +msgid "" +"if set, all unspecified platforms are accepted. only do this if no vendor " +"driver is available" +msgstr "" +"If set, all unspecified platforms are accepted. Only do this if no vendor " +"driver is available" + +#: ../build/bin/preferences_gen.h:6617 +msgid "security" +msgstr "Security" + +#: ../build/bin/preferences_gen.h:6638 msgid "ask before removing images from the library" msgstr "Ask before removing images from the library" -#: ../build/bin/preferences_gen.h:6157 +#: ../build/bin/preferences_gen.h:6651 msgid "always ask the user before removing image information from the library" msgstr "Always ask the user before removing image information from the library" -#: ../build/bin/preferences_gen.h:6179 +#: ../build/bin/preferences_gen.h:6672 msgid "ask before deleting images from disk" msgstr "Ask before deleting images from disk" -#: ../build/bin/preferences_gen.h:6193 +#: ../build/bin/preferences_gen.h:6685 msgid "always ask the user before any image file is deleted" msgstr "Always ask the user before any image file is deleted" -#: ../build/bin/preferences_gen.h:6215 +#: ../build/bin/preferences_gen.h:6706 msgid "ask before discarding history stack" msgstr "Ask before discarding history stack" -#: ../build/bin/preferences_gen.h:6229 +#: ../build/bin/preferences_gen.h:6719 msgid "always ask the user before history stack is discarded on any image" msgstr "Always ask the user before history stack is discarded on any image" -#: ../build/bin/preferences_gen.h:6251 +#: ../build/bin/preferences_gen.h:6740 msgid "try to use trash when deleting images" msgstr "Try to use trash when deleting images" -#: ../build/bin/preferences_gen.h:6265 +#: ../build/bin/preferences_gen.h:6753 msgid "" "send files to trash instead of permanently deleting files on system that " "supports it" @@ -1655,27 +1788,27 @@ "Send files to trash instead of permanently deleting files on system that " "supports it" -#: ../build/bin/preferences_gen.h:6287 +#: ../build/bin/preferences_gen.h:6774 msgid "ask before moving images from film roll folder" msgstr "Ask before moving images from film roll folder" -#: ../build/bin/preferences_gen.h:6301 +#: ../build/bin/preferences_gen.h:6787 msgid "always ask the user before any image file is moved." msgstr "Always ask the user before any image file is moved." -#: ../build/bin/preferences_gen.h:6323 +#: ../build/bin/preferences_gen.h:6808 msgid "ask before copying images to new film roll folder" msgstr "Ask before copying images to new film roll folder" -#: ../build/bin/preferences_gen.h:6337 +#: ../build/bin/preferences_gen.h:6821 msgid "always ask the user before any image file is copied." msgstr "Always ask the user before any image file is copied." -#: ../build/bin/preferences_gen.h:6359 +#: ../build/bin/preferences_gen.h:6842 msgid "ask before removing empty folders" msgstr "Ask before removing empty folders" -#: ../build/bin/preferences_gen.h:6373 +#: ../build/bin/preferences_gen.h:6855 msgid "" "always ask the user before removing any empty folder. this can happen after " "moving or deleting images." @@ -1683,50 +1816,50 @@ "Always ask the user before removing any empty folder. This can happen after " "moving or deleting images." -#: ../build/bin/preferences_gen.h:6395 +#: ../build/bin/preferences_gen.h:6876 msgid "ask before deleting a tag" msgstr "Ask before deleting a tag" -#: ../build/bin/preferences_gen.h:6430 +#: ../build/bin/preferences_gen.h:6909 msgid "ask before deleting a style" msgstr "Ask before deleting a style" -#: ../build/bin/preferences_gen.h:6465 +#: ../build/bin/preferences_gen.h:6942 msgid "ask before deleting a preset" msgstr "Ask before deleting a preset" -#: ../build/bin/preferences_gen.h:6479 +#: ../build/bin/preferences_gen.h:6955 msgid "will ask for confirmation before deleting or overwriting a preset" msgstr "Will ask for confirmation before deleting or overwriting a preset" -#: ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6976 msgid "ask before exporting in overwrite mode" msgstr "Ask before exporting in overwrite mode" -#: ../build/bin/preferences_gen.h:6515 +#: ../build/bin/preferences_gen.h:6989 msgid "will ask for confirmation before exporting files in overwrite mode" msgstr "Will ask for confirmation before exporting files in overwrite mode" #. italic -#: ../build/bin/preferences_gen.h:6525 ../src/libs/tools/viewswitcher.c:148 +#: ../build/bin/preferences_gen.h:6998 ../src/libs/tools/viewswitcher.c:148 msgid "other" msgstr "Other" -#: ../build/bin/preferences_gen.h:6545 +#: ../build/bin/preferences_gen.h:7017 msgid "password storage backend to use" msgstr "Password storage backend to use" -#: ../build/bin/preferences_gen.h:6595 +#: ../build/bin/preferences_gen.h:7035 msgid "" "the storage backend for password storage: auto, none, libsecret, kwallet" msgstr "" "The storage backend for password storage: auto, none, libsecret, KWallet" -#: ../build/bin/preferences_gen.h:6617 +#: ../build/bin/preferences_gen.h:7056 msgid "executable for playing audio files" msgstr "Executable for playing audio files" -#: ../build/bin/preferences_gen.h:6635 +#: ../build/bin/preferences_gen.h:7074 msgid "" "this external program is used to play audio files some cameras record to " "keep notes for images" @@ -1734,15 +1867,19 @@ "This external program is used to play audio files some cameras record to " "keep notes for images" -#: ../build/bin/preferences_gen.h:6675 ../src/control/crawler.c:724 +#: ../build/bin/preferences_gen.h:7106 +msgid "storage" +msgstr "Storage" + +#: ../build/bin/preferences_gen.h:7108 ../src/control/crawler.c:717 msgid "database" msgstr "Database" -#: ../build/bin/preferences_gen.h:6695 +#: ../build/bin/preferences_gen.h:7127 msgid "create database snapshot" msgstr "Create database snapshot" -#: ../build/bin/preferences_gen.h:6748 +#: ../build/bin/preferences_gen.h:7141 msgid "" "database snapshots are created right before closing darktable. options allow " "you to choose how often to make snapshots:\n" @@ -1764,11 +1901,11 @@ " - 'Once a day': create snapshot if over 24h passed since last snapshot\n" " - 'On close': create snapshot every time darktable is closed" -#: ../build/bin/preferences_gen.h:6770 +#: ../build/bin/preferences_gen.h:7162 msgid "how many snapshots to keep" msgstr "How many snapshots to keep" -#: ../build/bin/preferences_gen.h:6793 +#: ../build/bin/preferences_gen.h:7185 msgid "" "after successfully creating snapshot, how many older snapshots to keep " "(excluding mandatory version update ones). enter -1 to keep all snapshots\n" @@ -1780,37 +1917,37 @@ "Keep in mind that snapshots do take some space and you only need the most " "recent one for successful restore" -#: ../build/bin/preferences_gen.h:6803 ../src/control/crawler.c:723 -msgid "XMP" -msgstr "XMP" +#: ../build/bin/preferences_gen.h:7194 ../src/libs/copy_history.c:149 +msgid "XMP sidecar files" +msgstr "XMP sidecar files" -#: ../build/bin/preferences_gen.h:6823 -msgid "write sidecar file for each image" -msgstr "Write sidecar file for each image" +#: ../build/bin/preferences_gen.h:7213 +msgid "create XMP files" +msgstr "Create XMP files" -#: ../build/bin/preferences_gen.h:6866 +#: ../build/bin/preferences_gen.h:7227 msgid "" -"the sidecar files hold information about all your development steps to allow " +"XMP sidecar files hold information about all your development steps to allow " "flawless re-importing of image files.\n" "\n" -"depending on the selected mode sidecar files will be written:\n" +"depending on the selected mode sidecar files will be created:\n" " - 'never'\n" " - 'on import': immediately after importing the image\n" -" - 'after edit': after any user change on the image." +" - 'after edit': after any user change on the image or adding tags." msgstr "" -"The sidecar files hold information about all your development steps to allow " +"XMP sidecar files hold information about all your development steps to allow " "flawless re-importing of image files.\n" "\n" -"Depending on the selected mode sidecar files will be written:\n" +"Depending on the selected mode sidecar files will be created:\n" " - 'Never'\n" " - 'On import': immediately after importing the image\n" -" - 'After edit': after any user change on the image." +" - 'After edit': after any user change on the image or adding tags." -#: ../build/bin/preferences_gen.h:6888 +#: ../build/bin/preferences_gen.h:7248 msgid "store XMP tags in compressed format" msgstr "Store XMP tags in compressed format" -#: ../build/bin/preferences_gen.h:6931 +#: ../build/bin/preferences_gen.h:7262 msgid "" "entries in XMP tags can get rather large and may exceed the available space " "to store the history stack in output files.\n" @@ -1820,11 +1957,25 @@ "to store the history stack in output files.\n" "This option allows XMP tags to be compressed and save space." -#: ../build/bin/preferences_gen.h:6953 +#: ../build/bin/preferences_gen.h:7283 +msgid "auto-save interval" +msgstr "Auto-save interval" + +#: ../build/bin/preferences_gen.h:7306 +msgid "" +"automatically save history while developing using the given interval (in " +"seconds); set to zero to disable auto-saving. auto-saving might be disabled " +"on slow drives." +msgstr "" +"Automatically save history while developing using the given interval (in " +"seconds); set to zero to disable auto-saving. Auto-saving might be disabled " +"on slow drives." + +#: ../build/bin/preferences_gen.h:7327 msgid "look for updated XMP files on startup" msgstr "Look for updated XMP files on startup" -#: ../build/bin/preferences_gen.h:6967 +#: ../build/bin/preferences_gen.h:7340 msgid "" "check file modification times of all XMP files on startup to check if any " "got updated in the meantime" @@ -1832,15 +1983,19 @@ "Check file modification times of all XMP files on startup to check if any " "got updated in the meantime" -#: ../build/bin/preferences_gen.h:7007 +#: ../build/bin/preferences_gen.h:7372 +msgid "miscellaneous" +msgstr "Miscellaneous" + +#: ../build/bin/preferences_gen.h:7374 msgid "interface" msgstr "Interface" -#: ../build/bin/preferences_gen.h:7027 +#: ../build/bin/preferences_gen.h:7393 msgid "load default shortcuts at startup" msgstr "Load default shortcuts at startup" -#: ../build/bin/preferences_gen.h:7041 +#: ../build/bin/preferences_gen.h:7406 msgid "" "load default shortcuts before user settings. switch off to prevent deleted " "defaults returning" @@ -1848,29 +2003,29 @@ "Load default shortcuts before user settings. Switch off to prevent deleted " "defaults returning" -#: ../build/bin/preferences_gen.h:7063 +#: ../build/bin/preferences_gen.h:7427 msgid "scale slider step with min/max" msgstr "Scale slider step with min/max" -#: ../build/bin/preferences_gen.h:7077 +#: ../build/bin/preferences_gen.h:7440 msgid "vary slider step size with min/max range" msgstr "Vary slider step size with min/max range" -#: ../build/bin/preferences_gen.h:7099 +#: ../build/bin/preferences_gen.h:7461 msgid "sort built-in presets first" msgstr "Sort built-in presets first" -#: ../build/bin/preferences_gen.h:7113 +#: ../build/bin/preferences_gen.h:7474 msgid "" "whether to show built-in presets first before user's presets in presets menu." msgstr "" "Whether to show built-in presets first before user's presets in presets menu." -#: ../build/bin/preferences_gen.h:7135 +#: ../build/bin/preferences_gen.h:7495 msgid "mouse wheel scrolls modules side panel by default" msgstr "Mouse wheel scrolls modules side panel by default" -#: ../build/bin/preferences_gen.h:7149 +#: ../build/bin/preferences_gen.h:7508 msgid "" "when enabled, use mouse wheel to scroll modules side panel. use ctrl+alt to " "use mouse wheel for data entry. when disabled, this behavior is reversed" @@ -1878,11 +2033,11 @@ "When enabled, use mouse wheel to scroll modules side panel. Use Ctrl+Alt to " "use mouse wheel for data entry. When disabled, this behavior is reversed" -#: ../build/bin/preferences_gen.h:7171 +#: ../build/bin/preferences_gen.h:7529 msgid "always show panels' scrollbars" msgstr "Always show panels' scrollbars" -#: ../build/bin/preferences_gen.h:7185 +#: ../build/bin/preferences_gen.h:7542 msgid "" "defines whether the panel scrollbars should be always visible or activated " "only depending on the content. (need a restart)" @@ -1890,11 +2045,11 @@ "Defines whether the panel scrollbars should be always visible or activated " "only depending on the content. (need a restart)" -#: ../build/bin/preferences_gen.h:7207 +#: ../build/bin/preferences_gen.h:7563 msgid "duration of the UI transitions in ms" msgstr "Duration of the UI transitions in ms" -#: ../build/bin/preferences_gen.h:7231 +#: ../build/bin/preferences_gen.h:7587 msgid "" "how long the transitions take (in ms) for expanding or collapsing modules " "and other UI elements" @@ -1902,19 +2057,19 @@ "How long the transitions take (in ms) for expanding or collapsing modules " "and other UI elements." -#: ../build/bin/preferences_gen.h:7253 +#: ../build/bin/preferences_gen.h:7608 msgid "position of the scopes module" msgstr "Position of the scopes module" -#: ../build/bin/preferences_gen.h:7291 +#: ../build/bin/preferences_gen.h:7622 msgid "position the scopes at the top-left or top-right of the screen" msgstr "Position the scopes at the top-left or top-right of the screen" -#: ../build/bin/preferences_gen.h:7313 +#: ../build/bin/preferences_gen.h:7643 msgid "method to use for getting the display profile" msgstr "Method to use for getting the display profile" -#: ../build/bin/preferences_gen.h:7356 +#: ../build/bin/preferences_gen.h:7657 msgid "" "this option allows to force a specific means of getting the current display " "profile.\n" @@ -1924,11 +2079,11 @@ "profile.\n" "This is useful when one alternative gives wrong results" -#: ../build/bin/preferences_gen.h:7378 +#: ../build/bin/preferences_gen.h:7678 msgid "order or exclude MIDI devices" msgstr "Order or exclude MIDI devices" -#: ../build/bin/preferences_gen.h:7396 +#: ../build/bin/preferences_gen.h:7696 msgid "" "comma-separated list of device name fragments that if matched load MIDI " "device at id given by location in list\n" @@ -1941,69 +2096,65 @@ "and number of knobs like 'BeatStep:63:16'." #. tags -#: ../build/bin/preferences_gen.h:7412 ../src/develop/lightroom.c:1516 -#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:333 -#: ../src/libs/image.c:558 ../src/libs/metadata_view.c:162 +#: ../build/bin/preferences_gen.h:7715 ../src/develop/lightroom.c:1573 +#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:322 +#: ../src/libs/image.c:614 ../src/libs/metadata_view.c:166 msgid "tags" msgstr "Tags" -#: ../build/bin/preferences_gen.h:7432 +#: ../build/bin/preferences_gen.h:7734 msgid "omit hierarchy in simple tag lists" msgstr "Omit hierarchy in simple tag lists" -#: ../build/bin/preferences_gen.h:7446 +#: ../build/bin/preferences_gen.h:7747 msgid "" -"when creating XMP file the hierarchical tags are also added as a simple " -"list\n" +"when creating an XMP sidecar file the hierarchical tags are also added as a " +"simple list\n" "of non-hierarchical ones to make them visible to some other programs.\n" "when this option is checked darktable will only include their last part\n" "and ignore the rest. so 'foo|bar|baz' will only add 'baz'." msgstr "" -"When creating XMP file the hierarchical tags are also added as a simple " -"list\n" +"When creating an XMP sidecar file the hierarchical tags are also added as a " +"simple list\n" "of non-hierarchical ones to make them visible to some other programs.\n" "When this option is checked darktable will only include their last part\n" "and ignore the rest. So 'foo|bar|baz' will only add 'baz'." -#: ../build/bin/preferences_gen.h:7456 +#: ../build/bin/preferences_gen.h:7756 msgid "shortcuts with multiple instances" msgstr "Shortcuts with multiple instances" -#: ../build/bin/preferences_gen.h:7461 -msgid "" -"where multiple module instances are present, these preferences control rules " -"that are applied (in order) to decide which module instance shortcuts will " -"be applied to" -msgstr "" -"Where multiple module instances are present, these preferences control rules " -"that are applied (in order) to decide which module instance shortcuts will " -"be applied to" - -#: ../build/bin/preferences_gen.h:7477 +#: ../build/bin/preferences_gen.h:7775 msgid "prefer focused instance" msgstr "Prefer focused instance" -#: ../build/bin/preferences_gen.h:7491 +#: ../build/bin/preferences_gen.h:7788 msgid "" -"if an instance of the module has focus, apply shortcut to that instance\n" +"where multiple instances of a module are present, apply shortcuts to the " +"instance that has focus\n" +"if none are focused, the preferences below control rules that are followed " +"(in order) to decide which module instance shortcuts will be applied to.\n" "note: blending shortcuts always apply to the focused instance" msgstr "" -"If an instance of the module has focus, apply shortcut to that instance\n" +"Where multiple instances of a module are present, apply shortcuts to the " +"instance that has focus.\n" +"If none are focused, the preferences below control rules that are followed " +"(in order) to decide which module instance shortcuts will be applied to.\n" "Note: blending shortcuts always apply to the focused instance" -#: ../build/bin/preferences_gen.h:7513 +#: ../build/bin/preferences_gen.h:7809 msgid "prefer expanded instances" msgstr "Prefer expanded instances" -#: ../build/bin/preferences_gen.h:7527 +#: ../build/bin/preferences_gen.h:7822 msgid "if instances of the module are expanded, ignore collapsed instances" msgstr "If instances of the module are expanded, ignore collapsed instances" -#: ../build/bin/preferences_gen.h:7549 +#: ../build/bin/preferences_gen.h:7843 msgid "prefer enabled instances" msgstr "Prefer enabled instances" -#: ../build/bin/preferences_gen.h:7563 +#: ../build/bin/preferences_gen.h:7856 msgid "" "after applying the above rule, if instances of the module are active, ignore " "inactive instances" @@ -2011,11 +2162,11 @@ "After applying the above rule, if instances of the module are active, ignore " "inactive instances" -#: ../build/bin/preferences_gen.h:7585 +#: ../build/bin/preferences_gen.h:7877 msgid "prefer unmasked instances" msgstr "Prefer unmasked instances" -#: ../build/bin/preferences_gen.h:7599 +#: ../build/bin/preferences_gen.h:7890 msgid "" "after applying the above rules, if instances of the module are unmasked, " "ignore masked instances" @@ -2023,11 +2174,11 @@ "After applying the above rules, if instances of the module are unmasked, " "ignore masked instances" -#: ../build/bin/preferences_gen.h:7621 +#: ../build/bin/preferences_gen.h:7911 msgid "selection order" msgstr "Selection order" -#: ../build/bin/preferences_gen.h:7659 +#: ../build/bin/preferences_gen.h:7925 msgid "" "after applying the above rules, apply the shortcut based on its position in " "the pixelpipe" @@ -2035,11 +2186,11 @@ "After applying the above rules, apply the shortcut based on its position in " "the pixelpipe" -#: ../build/bin/preferences_gen.h:7681 +#: ../build/bin/preferences_gen.h:7946 msgid "allow visual assignment to specific instances" msgstr "Allow visual assignment to specific instances" -#: ../build/bin/preferences_gen.h:7695 +#: ../build/bin/preferences_gen.h:7959 msgid "" "when multiple instances are present on an image this allows shortcuts to be " "visually assigned to those specific instances\n" @@ -2049,15 +2200,15 @@ "visually assigned to those specific instances\n" "Otherwise shortcuts will always be assigned to the preferred instance" -#: ../build/bin/preferences_gen.h:7705 +#: ../build/bin/preferences_gen.h:7968 msgid "map / geolocalization view" msgstr "Map / geolocalization view" -#: ../build/bin/preferences_gen.h:7725 +#: ../build/bin/preferences_gen.h:7987 msgid "pretty print the image location" msgstr "Pretty print the image location" -#: ../build/bin/preferences_gen.h:7739 +#: ../build/bin/preferences_gen.h:8000 msgid "" "show a more readable representation of the location in the image information " "module" @@ -2065,65 +2216,29 @@ "Show a more readable representation of the location in the image information " "module" -#: ../build/bin/preferences_gen.h:7749 +#: ../build/bin/preferences_gen.h:8009 msgid "slideshow view" msgstr "Slideshow view" -#: ../build/bin/preferences_gen.h:7769 +#: ../build/bin/preferences_gen.h:8028 msgid "waiting time between each picture in slideshow" msgstr "Waiting time between each picture in slideshow" -#: ../build/bin/preferences_gen.h:7831 -msgid "session options" -msgstr "Session options" - -#: ../build/bin/preferences_gen.h:7851 -msgid "base directory naming pattern" -msgstr "Base directory naming pattern" - -#: ../build/bin/preferences_gen.h:7869 ../build/bin/preferences_gen.h:7909 -msgid "part of full import path for an import session" -msgstr "Part of full import path for an import session" - -#: ../build/bin/preferences_gen.h:7891 -msgid "sub directory naming pattern" -msgstr "Sub directory naming pattern" - -#: ../build/bin/preferences_gen.h:7931 -msgid "keep original filename" -msgstr "Keep original filename" - -#: ../build/bin/preferences_gen.h:7945 -msgid "" -"keep original filename instead of a pattern while importing from camera or " -"card" -msgstr "" -"Keep original filename instead of a pattern while importing from camera or " -"card" - -#: ../build/bin/preferences_gen.h:7967 -msgid "file naming pattern" -msgstr "File naming pattern" - -#: ../build/bin/preferences_gen.h:7985 -msgid "file naming pattern used for a import session" -msgstr "File naming pattern used for a import session" - -#: ../build/bin/preferences_gen.h:8022 +#: ../build/bin/preferences_gen.h:8088 msgid "do not set the 'uncategorized' entry for tags" msgstr "Do not set the 'uncategorized' entry for tags" -#: ../build/bin/preferences_gen.h:8036 +#: ../build/bin/preferences_gen.h:8101 msgid "" "do not set the 'uncategorized' entry for tags which do not have children" msgstr "" "Do not set the 'uncategorized' entry for tags which do not have children" -#: ../build/bin/preferences_gen.h:8058 +#: ../build/bin/preferences_gen.h:8122 msgid "tags case sensitivity" msgstr "Tags case sensitivity" -#: ../build/bin/preferences_gen.h:8096 +#: ../build/bin/preferences_gen.h:8136 msgid "" "tags case sensitivity. without the Sqlite ICU extension, insensitivity works " "only for the 26 latin letters" @@ -2131,27 +2246,27 @@ "Tags case sensitivity. Without the Sqlite ICU extension, insensitivity works " "only for the 26 latin letters" -#: ../build/bin/preferences_gen.h:8118 ../build/bin/preferences_gen.h:8358 +#: ../build/bin/preferences_gen.h:8157 ../build/bin/preferences_gen.h:8368 msgid "number of collections to be stored" msgstr "Number of collections to be stored" -#: ../build/bin/preferences_gen.h:8142 ../build/bin/preferences_gen.h:8382 +#: ../build/bin/preferences_gen.h:8181 ../build/bin/preferences_gen.h:8392 msgid "the number of recent collections to store and show in this list" msgstr "The number of recent collections to store and show in this list" -#: ../build/bin/preferences_gen.h:8164 +#: ../build/bin/preferences_gen.h:8202 msgid "hide the history button and show a specific module instead" msgstr "Hide the history button and show a specific module instead" -#: ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8215 msgid "hide the history button and show the recent collections module instead" msgstr "Hide the history button and show the recent collections module instead" -#: ../build/bin/preferences_gen.h:8200 +#: ../build/bin/preferences_gen.h:8236 msgid "number of folder levels to show in lists" msgstr "Number of folder levels to show in lists" -#: ../build/bin/preferences_gen.h:8224 +#: ../build/bin/preferences_gen.h:8260 msgid "" "the number of folder levels to show in film roll names, starting from the " "right" @@ -2159,19 +2274,24 @@ "The number of folder levels to show in film roll names, starting from the " "right" -#: ../build/bin/preferences_gen.h:8246 +#: ../build/bin/preferences_gen.h:8281 msgid "sort film rolls by" msgstr "Sort film rolls by" -#: ../build/bin/preferences_gen.h:8284 +#: ../build/bin/preferences_gen.h:8292 +msgctxt "preferences" +msgid "chronological" +msgstr "Chronological" + +#: ../build/bin/preferences_gen.h:8295 msgid "sets the collections-list order for film rolls" msgstr "Sets the collections-list order for film rolls" -#: ../build/bin/preferences_gen.h:8306 +#: ../build/bin/preferences_gen.h:8316 msgid "sort collection descending" msgstr "Sort collection descending" -#: ../build/bin/preferences_gen.h:8320 +#: ../build/bin/preferences_gen.h:8329 msgid "" "sort the following collections in descending order: 'film roll' by folder, " "'folder', 'times' (e.g. 'capture date')" @@ -2179,11 +2299,11 @@ "Sort the following collections in descending order: 'film roll' by folder, " "'folder', 'times' (e.g. 'capture date')" -#: ../build/bin/preferences_gen.h:8404 +#: ../build/bin/preferences_gen.h:8413 msgid "prefer a history button in the collections module" msgstr "Prefer a history button in the collections module" -#: ../build/bin/preferences_gen.h:8418 +#: ../build/bin/preferences_gen.h:8426 msgid "" "hide this module and instead access collections history with a button in the " "collections module" @@ -2191,11 +2311,11 @@ "Hide this module and instead access collections history with a button in the " "collections module" -#: ../build/bin/preferences_gen.h:8472 +#: ../build/bin/preferences_gen.h:8483 msgid "suggested tags level of confidence" msgstr "Suggested tags level of confidence" -#: ../build/bin/preferences_gen.h:8497 +#: ../build/bin/preferences_gen.h:8508 #, no-c-format msgid "" "level of confidence to include the tag in the suggestions list, 0: all " @@ -2206,11 +2326,11 @@ "associated tags, 99: 99% matching associated tags, 100: no matching tag to " "show only recent tags (faster)" -#: ../build/bin/preferences_gen.h:8519 +#: ../build/bin/preferences_gen.h:8529 msgid "number of recently attached tags" msgstr "Number of recently attached tags" -#: ../build/bin/preferences_gen.h:8543 +#: ../build/bin/preferences_gen.h:8553 msgid "" "number of recently attached tags which are included in the suggestions list. " "the value `-1' disables the recent list" @@ -2236,14 +2356,15 @@ #. focal length #: ../build/lib/darktable/plugins/introspection_ashift.c:148 #: ../build/lib/darktable/plugins/introspection_ashift.c:291 -#: ../src/common/collection.c:714 ../src/gui/preferences.c:844 -#: ../src/gui/presets.c:718 ../src/libs/camera.c:550 -#: ../src/libs/metadata_view.c:143 +#: ../src/common/collection.c:627 ../src/gui/preferences.c:842 +#: ../src/gui/presets.c:721 ../src/libs/camera.c:550 +#: ../src/libs/metadata_view.c:145 msgid "focal length" msgstr "Focal length" #: ../build/lib/darktable/plugins/introspection_ashift.c:154 #: ../build/lib/darktable/plugins/introspection_ashift.c:295 +#: ../src/libs/metadata_view.c:147 msgid "crop factor" msgstr "Crop factor" @@ -2259,7 +2380,7 @@ #: ../build/lib/darktable/plugins/introspection_ashift.c:172 #: ../build/lib/darktable/plugins/introspection_ashift.c:307 -#: ../src/iop/lens.cc:3784 +#: ../src/iop/lens.cc:4438 msgid "lens model" msgstr "Lens model" @@ -2281,14 +2402,14 @@ #. DEVELOP_MASK_DISABLED #: ../build/lib/darktable/plugins/introspection_ashift.c:366 -#: ../build/lib/darktable/plugins/introspection_colorin.c:300 +#: ../build/lib/darktable/plugins/introspection_colorin.c:303 #: ../build/lib/darktable/plugins/introspection_highlights.c:310 #: ../build/lib/darktable/plugins/introspection_vignette.c:264 #: ../src/develop/blend_gui.c:153 ../src/develop/blend_gui.c:182 -#: ../src/develop/blend_gui.c:3410 ../src/gui/accelerators.c:130 -#: ../src/gui/accelerators.c:140 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/imageio/format/j2k.c:669 -#: ../src/libs/live_view.c:361 ../src/libs/masks.c:113 +#: ../src/develop/blend_gui.c:3429 ../src/gui/accelerators.c:148 +#: ../src/gui/accelerators.c:158 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/imageio/format/j2k.c:686 +#: ../src/libs/live_view.c:361 msgid "off" msgstr "Off" @@ -2312,7 +2433,7 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:146 #: ../build/lib/darktable/plugins/introspection_basecurve.c:239 -#: ../src/libs/metadata_view.c:142 +#: ../src/libs/metadata_view.c:144 msgid "exposure bias" msgstr "Exposure bias" @@ -2332,16 +2453,16 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:262 #: ../build/lib/darktable/plugins/introspection_basicadj.c:249 #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:153 -#: ../build/lib/darktable/plugins/introspection_lens.cc:444 +#: ../build/lib/darktable/plugins/introspection_lens.cc:533 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:251 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:153 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:270 -#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2193 -#: ../src/iop/channelmixerrgb.c:4667 ../src/iop/clipping.c:1900 -#: ../src/iop/clipping.c:2093 ../src/iop/clipping.c:2108 -#: ../src/iop/retouch.c:463 ../src/libs/collect.c:1907 -#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1023 -#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:132 +#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2214 +#: ../src/iop/channelmixerrgb.c:4735 ../src/iop/clipping.c:1953 +#: ../src/iop/clipping.c:2146 ../src/iop/clipping.c:2161 +#: ../src/iop/retouch.c:507 ../src/libs/collect.c:2043 +#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1101 +#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:109 #: ../src/libs/live_view.c:311 ../src/libs/print_settings.c:2835 msgid "none" msgstr "None" @@ -2359,7 +2480,7 @@ #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:252 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:154 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:271 -#: ../src/develop/blend_gui.c:2363 ../src/develop/blend_gui.c:2397 +#: ../src/develop/blend_gui.c:2379 ../src/develop/blend_gui.c:2413 msgid "luminance" msgstr "Luminance" @@ -2469,7 +2590,7 @@ #: ../build/lib/darktable/plugins/introspection_graduatednd.c:144 #: ../build/lib/darktable/plugins/introspection_watermark.c:136 #: ../build/lib/darktable/plugins/introspection_watermark.c:265 -#: ../src/iop/ashift.c:6112 ../src/libs/masks.c:108 +#: ../src/iop/ashift.c:6059 ../src/libs/masks.c:109 msgid "rotation" msgstr "Rotation" @@ -2480,7 +2601,7 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:125 #: ../build/lib/darktable/plugins/introspection_blurs.c:202 -#: ../src/libs/masks.c:109 +#: ../src/libs/masks.c:110 msgid "curvature" msgstr "Curvature" @@ -2488,13 +2609,13 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:206 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:81 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:148 -#: ../src/iop/colorbalancergb.c:1968 +#: ../src/iop/colorbalancergb.c:2039 msgid "offset" msgstr "Offset" #: ../build/lib/darktable/plugins/introspection_blurs.c:220 -#: ../src/common/collection.c:712 ../src/gui/preferences.c:828 -#: ../src/gui/presets.c:660 ../src/libs/metadata_view.c:139 +#: ../src/common/collection.c:625 ../src/gui/preferences.c:826 +#: ../src/gui/presets.c:663 ../src/libs/metadata_view.c:141 msgid "lens" msgstr "Lens" @@ -2510,63 +2631,90 @@ msgid "gaussian" msgstr "Gaussian" -#: ../build/lib/darktable/plugins/introspection_borders.c:112 -#: ../build/lib/darktable/plugins/introspection_borders.c:253 -#: ../src/common/collection.c:722 ../src/libs/filtering.c:59 +#: ../build/lib/darktable/plugins/introspection_borders.c:122 +#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../src/common/collection.c:635 ../src/libs/filtering.c:59 msgid "aspect ratio" msgstr "Aspect ratio" #. // portrait / landscape -#: ../build/lib/darktable/plugins/introspection_borders.c:130 -#: ../build/lib/darktable/plugins/introspection_borders.c:265 +#: ../build/lib/darktable/plugins/introspection_borders.c:140 +#: ../build/lib/darktable/plugins/introspection_borders.c:281 #: ../src/iop/flip.c:75 ../src/libs/print_settings.c:2517 msgid "orientation" msgstr "Orientation" -#: ../build/lib/darktable/plugins/introspection_borders.c:136 -#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../build/lib/darktable/plugins/introspection_borders.c:146 +#: ../build/lib/darktable/plugins/introspection_borders.c:285 msgid "border size" msgstr "Border size" -#: ../build/lib/darktable/plugins/introspection_borders.c:142 -#: ../build/lib/darktable/plugins/introspection_borders.c:273 +#: ../build/lib/darktable/plugins/introspection_borders.c:152 +#: ../build/lib/darktable/plugins/introspection_borders.c:289 msgid "horizontal offset" msgstr "Horizontal offset" -#: ../build/lib/darktable/plugins/introspection_borders.c:160 -#: ../build/lib/darktable/plugins/introspection_borders.c:285 +#: ../build/lib/darktable/plugins/introspection_borders.c:170 +#: ../build/lib/darktable/plugins/introspection_borders.c:301 msgid "vertical offset" msgstr "Vertical offset" -#: ../build/lib/darktable/plugins/introspection_borders.c:178 -#: ../build/lib/darktable/plugins/introspection_borders.c:297 +#: ../build/lib/darktable/plugins/introspection_borders.c:188 +#: ../build/lib/darktable/plugins/introspection_borders.c:313 msgid "frame line size" msgstr "Frame line size" -#: ../build/lib/darktable/plugins/introspection_borders.c:184 -#: ../build/lib/darktable/plugins/introspection_borders.c:301 +#: ../build/lib/darktable/plugins/introspection_borders.c:194 +#: ../build/lib/darktable/plugins/introspection_borders.c:317 msgid "frame line offset" msgstr "Frame line offset" -#: ../build/lib/darktable/plugins/introspection_borders.c:327 -#: ../src/gui/preferences.c:849 ../src/iop/ashift.c:6291 -#: ../src/iop/basicadj.c:632 ../src/iop/flip.c:472 ../src/iop/flip.c:474 -#: ../src/iop/levels.c:641 ../src/iop/rgblevels.c:1050 +#: ../build/lib/darktable/plugins/introspection_borders.c:218 +#: ../build/lib/darktable/plugins/introspection_borders.c:333 +msgid "basis" +msgstr "Basis" + +#: ../build/lib/darktable/plugins/introspection_borders.c:347 +#: ../build/lib/darktable/plugins/introspection_borders.c:353 +#: ../src/gui/preferences.c:847 ../src/imageio/format/jpeg.c:604 +#: ../src/iop/ashift.c:6238 ../src/iop/basicadj.c:662 ../src/iop/flip.c:470 +#: ../src/iop/flip.c:472 ../src/iop/levels.c:657 ../src/iop/rgblevels.c:1105 msgid "auto" msgstr "Auto" -#: ../build/lib/darktable/plugins/introspection_borders.c:328 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:309 +#: ../build/lib/darktable/plugins/introspection_borders.c:348 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:315 #: ../src/libs/filters/ratio.c:122 ../src/libs/print_settings.c:2519 msgid "portrait" msgstr "Portrait" -#: ../build/lib/darktable/plugins/introspection_borders.c:329 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:305 +#: ../build/lib/darktable/plugins/introspection_borders.c:349 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:311 #: ../src/libs/filters/ratio.c:124 ../src/libs/print_settings.c:2519 msgid "landscape" msgstr "Landscape" +#: ../build/lib/darktable/plugins/introspection_borders.c:354 +#: ../src/iop/relight.c:275 ../src/libs/export.c:1223 +#: ../src/libs/metadata_view.c:151 ../src/libs/print_settings.c:2537 +msgid "width" +msgstr "Width" + +#: ../build/lib/darktable/plugins/introspection_borders.c:355 +#: ../build/lib/darktable/plugins/introspection_watermark.c:326 +#: ../src/libs/export.c:1229 ../src/libs/metadata_view.c:152 +#: ../src/libs/print_settings.c:2541 +msgid "height" +msgstr "Height" + +#: ../build/lib/darktable/plugins/introspection_borders.c:356 +msgid "shorter" +msgstr "Shorter" + +#: ../build/lib/darktable/plugins/introspection_borders.c:357 +msgid "longer" +msgstr "Longer" + #: ../build/lib/darktable/plugins/introspection_cacorrect.c:42 #: ../build/lib/darktable/plugins/introspection_cacorrect.c:91 msgid "avoid colorshift" @@ -2613,9 +2761,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:67 #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:132 -#: ../src/iop/atrous.c:1522 ../src/iop/bilateral.cc:350 ../src/iop/clahe.c:335 -#: ../src/iop/dither.c:760 ../src/iop/lowpass.c:584 ../src/iop/shadhi.c:675 -#: ../src/iop/sharpen.c:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:340 +#: ../build/lib/darktable/plugins/introspection_lens.cc:501 +#: ../src/iop/atrous.c:1636 ../src/iop/bilateral.cc:352 ../src/iop/clahe.c:337 +#: ../src/iop/dither.c:762 ../src/iop/lowpass.c:597 ../src/iop/shadhi.c:710 +#: ../src/iop/sharpen.c:435 msgid "radius" msgstr "Radius" @@ -2623,9 +2773,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:136 #: ../build/lib/darktable/plugins/introspection_highlights.c:137 #: ../build/lib/darktable/plugins/introspection_highlights.c:240 -#: ../src/iop/bloom.c:376 ../src/iop/denoiseprofile.c:3818 -#: ../src/iop/grain.c:584 ../src/iop/hazeremoval.c:201 -#: ../src/iop/hotpixels.c:388 ../src/iop/nlmeans.c:460 ../src/iop/velvia.c:279 +#: ../build/lib/darktable/plugins/introspection_lens.cc:334 +#: ../build/lib/darktable/plugins/introspection_lens.cc:497 +#: ../src/iop/bloom.c:372 ../src/iop/denoiseprofile.c:3822 +#: ../src/iop/grain.c:602 ../src/iop/hazeremoval.c:203 +#: ../src/iop/hotpixels.c:467 ../src/iop/nlmeans.c:463 ../src/iop/velvia.c:288 msgid "strength" msgstr "Strength" @@ -2640,41 +2792,41 @@ msgstr "Very large chromatic aberration" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:158 -#: ../src/common/collection.c:1507 ../src/common/color_vocabulary.c:232 -#: ../src/common/colorlabels.c:334 ../src/develop/blend_gui.c:2330 -#: ../src/develop/blend_gui.c:2378 ../src/develop/lightroom.c:834 -#: ../src/gui/gtk.c:3137 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:354 -#: ../src/iop/channelmixer.c:618 ../src/iop/channelmixer.c:628 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/colorzones.c:2263 -#: ../src/iop/temperature.c:1935 ../src/iop/temperature.c:2129 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:260 -#: ../src/libs/histogram.c:2397 +#: ../src/common/collection.c:1374 ../src/common/color_vocabulary.c:232 +#: ../src/common/colorlabels.c:333 ../src/develop/blend_gui.c:2346 +#: ../src/develop/blend_gui.c:2394 ../src/develop/lightroom.c:887 +#: ../src/gui/gtk.c:3183 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:356 +#: ../src/iop/channelmixer.c:637 ../src/iop/channelmixer.c:647 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/colorzones.c:2499 +#: ../src/iop/temperature.c:1912 ../src/iop/temperature.c:2094 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:260 +#: ../src/libs/histogram.c:2724 msgid "red" msgstr "Red" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:159 -#: ../src/common/collection.c:1511 ../src/common/color_vocabulary.c:277 -#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2336 -#: ../src/develop/blend_gui.c:2384 ../src/develop/lightroom.c:838 -#: ../src/gui/gtk.c:3138 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:359 -#: ../src/iop/channelmixer.c:619 ../src/iop/channelmixer.c:634 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/colorzones.c:2266 -#: ../src/iop/temperature.c:1919 ../src/iop/temperature.c:1937 -#: ../src/iop/temperature.c:2130 ../src/libs/collect.c:1791 -#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2389 +#: ../src/common/collection.c:1378 ../src/common/color_vocabulary.c:277 +#: ../src/common/colorlabels.c:335 ../src/develop/blend_gui.c:2352 +#: ../src/develop/blend_gui.c:2400 ../src/develop/lightroom.c:891 +#: ../src/gui/gtk.c:3184 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:361 +#: ../src/iop/channelmixer.c:638 ../src/iop/channelmixer.c:653 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/colorzones.c:2502 +#: ../src/iop/temperature.c:1896 ../src/iop/temperature.c:1914 +#: ../src/iop/temperature.c:2095 ../src/libs/collect.c:1916 +#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2715 msgid "green" msgstr "Green" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:160 -#: ../src/common/collection.c:1513 ../src/common/color_vocabulary.c:324 -#: ../src/common/colorlabels.c:337 ../src/develop/blend_gui.c:2342 -#: ../src/develop/blend_gui.c:2390 ../src/develop/lightroom.c:840 -#: ../src/gui/gtk.c:3139 ../src/iop/bilateral.cc:364 -#: ../src/iop/channelmixer.c:620 ../src/iop/channelmixer.c:640 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/colorzones.c:2268 -#: ../src/iop/temperature.c:1939 ../src/iop/temperature.c:2131 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:263 -#: ../src/libs/histogram.c:2381 +#: ../src/common/collection.c:1380 ../src/common/color_vocabulary.c:324 +#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2358 +#: ../src/develop/blend_gui.c:2406 ../src/develop/lightroom.c:893 +#: ../src/gui/gtk.c:3185 ../src/iop/bilateral.cc:366 +#: ../src/iop/channelmixer.c:639 ../src/iop/channelmixer.c:659 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/colorzones.c:2504 +#: ../src/iop/temperature.c:1916 ../src/iop/temperature.c:2096 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:263 +#: ../src/libs/histogram.c:2706 msgid "blue" msgstr "Blue" @@ -2917,7 +3069,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:303 #: ../build/lib/darktable/plugins/introspection_crop.c:61 #: ../build/lib/darktable/plugins/introspection_crop.c:134 -#: ../src/gui/gtk.c:1141 ../src/iop/atrous.c:1518 +#: ../src/gui/gtk.c:1234 ../src/iop/atrous.c:1632 msgid "left" msgstr "Left" @@ -2925,7 +3077,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:307 #: ../build/lib/darktable/plugins/introspection_crop.c:67 #: ../build/lib/darktable/plugins/introspection_crop.c:138 -#: ../src/gui/accelerators.c:113 ../src/gui/gtk.c:1155 +#: ../src/gui/accelerators.c:131 ../src/gui/gtk.c:1240 msgid "top" msgstr "Top" @@ -2933,7 +3085,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:311 #: ../build/lib/darktable/plugins/introspection_crop.c:73 #: ../build/lib/darktable/plugins/introspection_crop.c:142 -#: ../src/gui/gtk.c:1148 ../src/iop/atrous.c:1517 +#: ../src/gui/gtk.c:1237 ../src/iop/atrous.c:1631 msgid "right" msgstr "Right" @@ -2941,7 +3093,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:315 #: ../build/lib/darktable/plugins/introspection_crop.c:79 #: ../build/lib/darktable/plugins/introspection_crop.c:146 -#: ../src/gui/accelerators.c:114 ../src/gui/gtk.c:1162 +#: ../src/gui/accelerators.c:132 ../src/gui/gtk.c:1243 msgid "bottom" msgstr "Bottom" @@ -2980,10 +3132,11 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:477 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:489 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:501 -#: ../src/develop/blend_gui.c:2356 ../src/develop/blend_gui.c:2404 -#: ../src/iop/atrous.c:1667 ../src/iop/channelmixerrgb.c:4457 -#: ../src/iop/channelmixerrgb.c:4573 ../src/iop/colorbalancergb.c:1895 -#: ../src/iop/colorzones.c:2402 ../src/iop/nlmeans.c:468 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 +#: ../src/develop/blend_gui.c:2372 ../src/develop/blend_gui.c:2420 +#: ../src/iop/atrous.c:1801 ../src/iop/channelmixerrgb.c:4525 +#: ../src/iop/channelmixerrgb.c:4641 ../src/iop/colorbalancergb.c:1966 +#: ../src/iop/colorzones.c:2645 ../src/iop/nlmeans.c:471 msgid "chroma" msgstr "Chroma" @@ -3003,11 +3156,11 @@ #: ../build/lib/darktable/plugins/introspection_splittoning.c:73 #: ../build/lib/darktable/plugins/introspection_splittoning.c:134 #: ../build/lib/darktable/plugins/introspection_splittoning.c:142 -#: ../src/develop/blend_gui.c:2315 ../src/develop/blend_gui.c:2349 -#: ../src/develop/blend_gui.c:2411 ../src/iop/channelmixer.c:615 -#: ../src/iop/channelmixerrgb.c:4450 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/colorbalance.c:2042 ../src/iop/colorize.c:330 -#: ../src/iop/colorreconstruction.c:1240 ../src/iop/colorzones.c:2403 +#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2365 +#: ../src/develop/blend_gui.c:2427 ../src/iop/channelmixer.c:634 +#: ../src/iop/channelmixerrgb.c:4518 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/colorbalance.c:2017 ../src/iop/colorize.c:343 +#: ../src/iop/colorreconstruction.c:1249 ../src/iop/colorzones.c:2646 msgid "hue" msgstr "Hue" @@ -3034,9 +3187,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:569 #: ../build/lib/darktable/plugins/introspection_toneequal.c:156 #: ../build/lib/darktable/plugins/introspection_toneequal.c:297 -#: ../src/iop/bilat.c:469 ../src/iop/colorbalance.c:2099 -#: ../src/iop/negadoctor.c:915 ../src/iop/shadhi.c:671 -#: ../src/iop/splittoning.c:507 +#: ../src/iop/bilat.c:479 ../src/iop/colorbalance.c:2074 +#: ../src/iop/negadoctor.c:934 ../src/iop/shadhi.c:706 +#: ../src/iop/splittoning.c:503 msgid "shadows" msgstr "Shadows" @@ -3048,9 +3201,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:561 #: ../build/lib/darktable/plugins/introspection_toneequal.c:180 #: ../build/lib/darktable/plugins/introspection_toneequal.c:313 -#: ../src/iop/bilat.c:463 ../src/iop/colorbalance.c:2101 -#: ../src/iop/monochrome.c:561 ../src/iop/shadhi.c:672 -#: ../src/iop/splittoning.c:514 +#: ../src/iop/bilat.c:473 ../src/iop/colorbalance.c:2076 +#: ../src/iop/monochrome.c:583 ../src/iop/shadhi.c:707 +#: ../src/iop/splittoning.c:510 msgid "highlights" msgstr "Highlights" @@ -3067,13 +3220,13 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:565 #: ../build/lib/darktable/plugins/introspection_toneequal.c:168 #: ../build/lib/darktable/plugins/introspection_toneequal.c:305 -#: ../src/iop/colorbalance.c:2100 +#: ../src/iop/colorbalance.c:2075 msgid "mid-tones" msgstr "Mid-tones" #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:340 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:537 -#: ../src/iop/filmic.c:1576 +#: ../src/iop/filmic.c:1601 msgid "global saturation" msgstr "Global saturation" @@ -3104,12 +3257,12 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:412 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:585 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:64 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:137 -#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:607 ../src/iop/bilat.c:458 -#: ../src/iop/colisa.c:304 ../src/iop/colorbalance.c:1947 -#: ../src/iop/colorbalance.c:1953 ../src/iop/filmic.c:1548 -#: ../src/iop/filmicrgb.c:4551 ../src/iop/lowpass.c:586 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:116 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:237 +#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:637 ../src/iop/bilat.c:468 +#: ../src/iop/colisa.c:298 ../src/iop/colorbalance.c:1922 +#: ../src/iop/colorbalance.c:1928 ../src/iop/filmic.c:1573 +#: ../src/iop/filmicrgb.c:4615 ../src/iop/lowpass.c:599 msgid "contrast" msgstr "Contrast" @@ -3136,33 +3289,35 @@ msgid "blue-yellow contrast" msgstr "Blue-yellow contrast" -#: ../build/lib/darktable/plugins/introspection_colorin.c:148 -#: ../build/lib/darktable/plugins/introspection_colorin.c:231 +#: ../build/lib/darktable/plugins/introspection_colorin.c:150 +#: ../build/lib/darktable/plugins/introspection_colorin.c:233 msgid "gamut clipping" msgstr "Gamut clipping" -#: ../build/lib/darktable/plugins/introspection_colorin.c:301 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:201 -#: ../src/common/colorspaces.c:1251 ../src/common/colorspaces.c:1484 +#: ../build/lib/darktable/plugins/introspection_colorin.c:304 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:312 +#: ../src/common/colorspaces.c:1410 ../src/common/colorspaces.c:1700 #: ../src/libs/print_settings.c:1356 msgid "sRGB" msgstr "sRGB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:302 -#: ../src/common/colorspaces.c:1260 ../src/common/colorspaces.c:1486 +#: ../build/lib/darktable/plugins/introspection_colorin.c:305 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:311 +#: ../src/common/colorspaces.c:1421 ../src/common/colorspaces.c:1702 #: ../src/libs/print_settings.c:1363 msgid "Adobe RGB (compatible)" msgstr "Adobe RGB (compatible)" -#: ../build/lib/darktable/plugins/introspection_colorin.c:303 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 -#: ../src/common/colorspaces.c:1265 ../src/common/colorspaces.c:1488 +#: ../build/lib/darktable/plugins/introspection_colorin.c:306 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 +#: ../src/common/colorspaces.c:1428 ../src/common/colorspaces.c:1704 msgid "linear Rec709 RGB" msgstr "Linear Rec709 RGB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:304 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 -#: ../src/common/colorspaces.c:1274 ../src/common/colorspaces.c:1490 +#: ../build/lib/darktable/plugins/introspection_colorin.c:307 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:206 +#: ../src/common/colorspaces.c:1442 ../src/common/colorspaces.c:1706 msgid "linear Rec2020 RGB" msgstr "Linear Rec2020 RGB" @@ -3190,7 +3345,7 @@ #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:127 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:45 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:92 -#: ../src/iop/shadhi.c:686 +#: ../src/iop/shadhi.c:721 msgid "spatial extent" msgstr "Spatial extent" @@ -3200,7 +3355,7 @@ msgstr "Range extent" #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:154 -#: ../src/iop/channelmixerrgb.c:4669 +#: ../src/iop/channelmixerrgb.c:4737 msgid "saturated colors" msgstr "Saturated colors" @@ -3214,7 +3369,7 @@ #: ../build/lib/darktable/plugins/introspection_colorzones.c:233 #: ../build/lib/darktable/plugins/introspection_soften.c:66 #: ../build/lib/darktable/plugins/introspection_soften.c:121 -#: ../src/iop/atrous.c:1689 +#: ../src/iop/atrous.c:1835 msgid "mix" msgstr "Mix" @@ -3224,33 +3379,17 @@ msgstr "Process mode" #: ../build/lib/darktable/plugins/introspection_colorzones.c:255 -#: ../src/develop/blend_gui.c:2294 ../src/iop/channelmixer.c:617 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/colorchecker.c:1448 -#: ../src/iop/colorize.c:349 ../src/iop/colorzones.c:2401 -#: ../src/iop/exposure.c:1239 +#: ../src/develop/blend_gui.c:2310 ../src/iop/channelmixer.c:636 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/colorchecker.c:1453 +#: ../src/iop/colorize.c:362 ../src/iop/colorzones.c:2644 +#: ../src/iop/exposure.c:1257 msgid "lightness" msgstr "Lightness" -#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 -#: ../src/develop/blend_gui.c:2310 ../src/iop/basicadj.c:624 -#: ../src/iop/channelmixer.c:616 ../src/iop/colisa.c:306 -#: ../src/iop/colorbalance.c:2059 ../src/iop/colorbalancergb.c:1919 -#: ../src/iop/colorchecker.c:1483 ../src/iop/colorcontrast.c:90 -#: ../src/iop/colorcorrection.c:275 ../src/iop/colorize.c:343 -#: ../src/iop/lowpass.c:588 ../src/iop/soften.c:373 ../src/iop/velvia.c:84 -#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:971 -msgid "saturation" -msgstr "Saturation" - #: ../build/lib/darktable/plugins/introspection_colorzones.c:267 -#: ../src/iop/atrous.c:1309 ../src/iop/atrous.c:1313 -#: ../src/iop/denoiseprofile.c:3527 ../src/iop/rawdenoise.c:755 +#: ../src/iop/atrous.c:1410 ../src/iop/atrous.c:1414 +#: ../src/iop/denoiseprofile.c:3531 ../src/iop/rawdenoise.c:771 +#: ../src/iop/sigmoid.c:292 msgid "smooth" msgstr "Smooth" @@ -3267,9 +3406,9 @@ #: ../build/lib/darktable/plugins/introspection_defringe.c:106 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:230 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:435 -#: ../src/iop/atrous.c:1572 ../src/iop/bloom.c:372 -#: ../src/iop/colorreconstruction.c:1236 ../src/iop/hotpixels.c:384 -#: ../src/iop/sharpen.c:449 +#: ../src/iop/atrous.c:1695 ../src/iop/bloom.c:368 +#: ../src/iop/colorreconstruction.c:1245 ../src/iop/hotpixels.c:463 +#: ../src/iop/sharpen.c:444 msgid "threshold" msgstr "Threshold" @@ -3404,7 +3543,7 @@ #. history #: ../build/lib/darktable/plugins/introspection_demosaic.c:232 -#: ../src/common/collection.c:1526 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1394 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "basic" msgstr "Basic" @@ -3477,12 +3616,9 @@ msgid "upgrade profiled transform" msgstr "Upgrade profiled transform" -#. -#. * Color mode combo box -#. #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:257 #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:388 -#: ../src/imageio/format/avif.c:786 ../src/libs/colorpicker.c:584 +#: ../src/libs/colorpicker.c:659 msgid "color mode" msgstr "Color mode" @@ -3507,7 +3643,7 @@ msgstr "Compute variance" #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:410 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:266 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:292 msgid "RGB" msgstr "RGB" @@ -3518,7 +3654,7 @@ #. two more sharpness (standard & strong) #: ../build/lib/darktable/plugins/introspection_diffuse.c:123 #: ../build/lib/darktable/plugins/introspection_diffuse.c:248 -#: ../src/iop/atrous.c:1564 ../src/iop/diffuse.c:630 ../src/iop/highpass.c:381 +#: ../src/iop/atrous.c:1685 ../src/iop/diffuse.c:657 ../src/iop/highpass.c:376 msgid "sharpness" msgstr "Sharpness" @@ -3682,7 +3818,7 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:212 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:423 -#: ../src/iop/filmic.c:1489 +#: ../src/iop/filmic.c:1514 msgid "middle gray luminance" msgstr "Middle gray luminance" @@ -3690,13 +3826,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:427 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:97 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:166 -#: ../src/iop/filmic.c:1514 +#: ../src/iop/filmic.c:1539 msgid "black relative exposure" msgstr "Black relative exposure" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:224 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:431 -#: ../src/iop/filmic.c:1501 +#: ../src/iop/filmic.c:1526 msgid "white relative exposure" msgstr "White relative exposure" @@ -3727,19 +3863,19 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:266 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:459 -#: ../src/iop/filmic.c:1646 +#: ../src/iop/filmic.c:1671 msgid "target middle gray" msgstr "Target middle gray" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:272 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:463 -#: ../src/iop/filmic.c:1637 +#: ../src/iop/filmic.c:1662 msgid "target black luminance" msgstr "Target black luminance" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:278 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:467 -#: ../src/iop/filmic.c:1655 +#: ../src/iop/filmic.c:1680 msgid "target white luminance" msgstr "Target white luminance" @@ -3747,13 +3883,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:471 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:69 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:140 -#: ../src/libs/masks.c:106 +#: ../src/libs/masks.c:107 msgid "hardness" msgstr "Hardness" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:302 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:483 -#: ../src/iop/filmic.c:1586 ../src/iop/filmicrgb.c:4729 +#: ../src/iop/filmic.c:1611 ../src/iop/filmicrgb.c:4793 msgid "extreme luminance saturation" msgstr "Extreme luminance saturation" @@ -3824,11 +3960,11 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:549 #: ../build/lib/darktable/plugins/introspection_toneequal.c:371 -#: ../src/common/database.c:2785 ../src/common/variables.c:705 -#: ../src/develop/imageop_gui.c:209 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 +#: ../src/common/variables.c:714 ../src/develop/imageop_gui.c:209 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 msgid "no" msgstr "No" @@ -3930,9 +4066,25 @@ msgid "density" msgstr "Density" +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 +#: ../src/develop/blend_gui.c:2326 ../src/iop/basicadj.c:654 +#: ../src/iop/channelmixer.c:635 ../src/iop/colisa.c:300 +#: ../src/iop/colorbalance.c:2034 ../src/iop/colorbalancergb.c:1990 +#: ../src/iop/colorchecker.c:1488 ../src/iop/colorcontrast.c:82 +#: ../src/iop/colorcorrection.c:268 ../src/iop/colorize.c:356 +#: ../src/iop/lowpass.c:601 ../src/iop/soften.c:368 ../src/iop/velvia.c:75 +#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:1058 +msgid "saturation" +msgstr "Saturation" + #: ../build/lib/darktable/plugins/introspection_grain.c:58 #: ../build/lib/darktable/plugins/introspection_grain.c:117 -#: ../src/iop/bilat.c:450 +#: ../src/iop/bilat.c:460 msgid "coarseness" msgstr "Coarseness" @@ -3945,7 +4097,7 @@ #: ../build/lib/darktable/plugins/introspection_highlights.c:143 #: ../build/lib/darktable/plugins/introspection_highlights.c:244 -#: ../src/views/darkroom.c:2406 +#: ../src/views/darkroom.c:2245 msgid "clipping threshold" msgstr "Clipping threshold" @@ -4081,168 +4233,172 @@ msgid "detect by 3 neighbors" msgstr "Detect by 3 neighbors" -#: ../build/lib/darktable/plugins/introspection_lens.cc:162 -#: ../build/lib/darktable/plugins/introspection_lens.cc:337 +#: ../build/lib/darktable/plugins/introspection_lens.cc:190 +#: ../build/lib/darktable/plugins/introspection_lens.cc:401 msgid "correction method" msgstr "Correction method" #. Page CORRECTIONS -#: ../build/lib/darktable/plugins/introspection_lens.cc:168 -#: ../build/lib/darktable/plugins/introspection_lens.cc:341 -#: ../src/iop/negadoctor.c:900 +#: ../build/lib/darktable/plugins/introspection_lens.cc:196 +#: ../build/lib/darktable/plugins/introspection_lens.cc:405 +#: ../src/iop/negadoctor.c:919 msgid "corrections" msgstr "Corrections" #. mode choice -#. Add check to control whether the style is to replace or append the current module -#: ../build/lib/darktable/plugins/introspection_lens.cc:174 -#: ../build/lib/darktable/plugins/introspection_lens.cc:345 +#: ../build/lib/darktable/plugins/introspection_lens.cc:202 +#: ../build/lib/darktable/plugins/introspection_lens.cc:409 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:128 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:219 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:51 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:118 -#: ../src/iop/bilat.c:428 ../src/iop/colorbalance.c:1909 -#: ../src/iop/denoiseprofile.c:3806 ../src/iop/exposure.c:1157 -#: ../src/iop/levels.c:684 ../src/iop/profile_gamma.c:668 -#: ../src/libs/copy_history.c:399 ../src/libs/export.c:1262 -#: ../src/libs/image.c:597 ../src/libs/print_settings.c:2875 -#: ../src/libs/styles.c:846 ../src/views/darkroom.c:2387 +#: ../src/develop/blend_gui.c:3546 ../src/iop/bilat.c:438 +#: ../src/iop/colorbalance.c:1884 ../src/iop/denoiseprofile.c:3810 +#: ../src/iop/exposure.c:1175 ../src/iop/levels.c:700 +#: ../src/iop/profile_gamma.c:682 ../src/libs/copy_history.c:399 +#: ../src/libs/export.c:1376 ../src/libs/image.c:666 +#: ../src/libs/print_settings.c:2875 ../src/libs/styles.c:850 +#: ../src/views/darkroom.c:2226 msgid "mode" msgstr "Mode" -#: ../build/lib/darktable/plugins/introspection_lens.cc:210 -#: ../build/lib/darktable/plugins/introspection_lens.cc:369 -#: ../src/iop/lens.cc:3820 +#: ../build/lib/darktable/plugins/introspection_lens.cc:238 +#: ../build/lib/darktable/plugins/introspection_lens.cc:433 +#: ../src/iop/lens.cc:4474 msgid "target geometry" msgstr "Target geometry" -#: ../build/lib/darktable/plugins/introspection_lens.cc:240 -#: ../build/lib/darktable/plugins/introspection_lens.cc:389 +#: ../build/lib/darktable/plugins/introspection_lens.cc:268 +#: ../build/lib/darktable/plugins/introspection_lens.cc:453 msgid "TCA overwrite" msgstr "TCA overwrite" -#: ../build/lib/darktable/plugins/introspection_lens.cc:246 -#: ../build/lib/darktable/plugins/introspection_lens.cc:393 +#: ../build/lib/darktable/plugins/introspection_lens.cc:274 +#: ../build/lib/darktable/plugins/introspection_lens.cc:298 +#: ../build/lib/darktable/plugins/introspection_lens.cc:457 +#: ../build/lib/darktable/plugins/introspection_lens.cc:473 msgid "TCA red" msgstr "TCA red" -#: ../build/lib/darktable/plugins/introspection_lens.cc:252 -#: ../build/lib/darktable/plugins/introspection_lens.cc:397 +#: ../build/lib/darktable/plugins/introspection_lens.cc:280 +#: ../build/lib/darktable/plugins/introspection_lens.cc:304 +#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:477 msgid "TCA blue" msgstr "TCA blue" -#: ../build/lib/darktable/plugins/introspection_lens.cc:258 -#: ../build/lib/darktable/plugins/introspection_lens.cc:401 -msgid "distortion fine-tune" -msgstr "Distortion fine-tune" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:264 -#: ../build/lib/darktable/plugins/introspection_lens.cc:405 -msgid "vignetting fine-tune" -msgstr "Vignetting fine-tune" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:270 -#: ../build/lib/darktable/plugins/introspection_lens.cc:409 -msgid "TCA red fine-tune" -msgstr "TCA red fine-tune" +#: ../build/lib/darktable/plugins/introspection_lens.cc:286 +#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +msgid "distortion" +msgstr "Distortion" -#: ../build/lib/darktable/plugins/introspection_lens.cc:276 -#: ../build/lib/darktable/plugins/introspection_lens.cc:413 -msgid "TCA blue fine-tune" -msgstr "TCA blue fine-tune" +#: ../build/lib/darktable/plugins/introspection_lens.cc:292 +#: ../build/lib/darktable/plugins/introspection_lens.cc:469 +#: ../src/iop/vignette.c:114 +msgid "vignetting" +msgstr "Vignetting" -#: ../build/lib/darktable/plugins/introspection_lens.cc:282 -#: ../build/lib/darktable/plugins/introspection_lens.cc:417 +#: ../build/lib/darktable/plugins/introspection_lens.cc:310 +#: ../build/lib/darktable/plugins/introspection_lens.cc:481 msgid "scale fine-tune" msgstr "Scale fine-tune" -#: ../build/lib/darktable/plugins/introspection_lens.cc:294 -#: ../build/lib/darktable/plugins/introspection_lens.cc:425 +#: ../build/lib/darktable/plugins/introspection_lens.cc:322 +#: ../build/lib/darktable/plugins/introspection_lens.cc:489 msgid "image scale" msgstr "Image scale" -#: ../build/lib/darktable/plugins/introspection_lens.cc:439 +#: ../build/lib/darktable/plugins/introspection_lens.cc:346 +#: ../build/lib/darktable/plugins/introspection_lens.cc:505 +msgid "steepness" +msgstr "Steepness" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:527 msgid "embedded metadata" msgstr "Embedded metadata" -#: ../build/lib/darktable/plugins/introspection_lens.cc:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:528 msgid "Lensfun database" msgstr "Lensfun database" +#: ../build/lib/darktable/plugins/introspection_lens.cc:529 +msgid "only manual vignette" +msgstr "Only manual vignette" + #. get nice text for bounds #. Side-border hide/show -#: ../build/lib/darktable/plugins/introspection_lens.cc:445 -#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2367 -#: ../src/gui/accelerators.c:2447 ../src/gui/gtk.c:1204 ../src/gui/gtk.c:3136 -#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3709 -#: ../src/iop/rawdenoise.c:893 ../src/libs/collect.c:3066 -#: ../src/libs/filtering.c:1459 ../src/libs/filters/colors.c:157 +#: ../build/lib/darktable/plugins/introspection_lens.cc:534 +#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2592 +#: ../src/gui/accelerators.c:2674 ../src/gui/gtk.c:1282 ../src/gui/gtk.c:3182 +#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3713 +#: ../src/iop/rawdenoise.c:909 ../src/libs/collect.c:3413 +#: ../src/libs/filtering.c:1521 ../src/libs/filters/colors.c:157 #: ../src/libs/filters/colors.c:265 ../src/libs/filters/rating.c:211 msgid "all" msgstr "All" -#: ../build/lib/darktable/plugins/introspection_lens.cc:446 +#: ../build/lib/darktable/plugins/introspection_lens.cc:535 msgid "distortion & TCA" msgstr "Distortion & TCA" -#: ../build/lib/darktable/plugins/introspection_lens.cc:447 +#: ../build/lib/darktable/plugins/introspection_lens.cc:536 msgid "distortion & vignetting" msgstr "Distortion & vignetting" -#: ../build/lib/darktable/plugins/introspection_lens.cc:448 +#: ../build/lib/darktable/plugins/introspection_lens.cc:537 msgid "TCA & vignetting" msgstr "TCA & vignetting" -#: ../build/lib/darktable/plugins/introspection_lens.cc:449 +#: ../build/lib/darktable/plugins/introspection_lens.cc:538 msgid "only distortion" msgstr "Only distortion" -#: ../build/lib/darktable/plugins/introspection_lens.cc:450 +#: ../build/lib/darktable/plugins/introspection_lens.cc:539 msgid "only TCA" msgstr "Only TCA" -#: ../build/lib/darktable/plugins/introspection_lens.cc:451 +#: ../build/lib/darktable/plugins/introspection_lens.cc:540 msgid "only vignetting" msgstr "Only vignetting" -#: ../build/lib/darktable/plugins/introspection_lens.cc:455 -#: ../src/libs/modulegroups.c:2318 +#: ../build/lib/darktable/plugins/introspection_lens.cc:544 +#: ../src/libs/modulegroups.c:2302 msgid "correct" msgstr "Correct" -#: ../build/lib/darktable/plugins/introspection_lens.cc:456 +#: ../build/lib/darktable/plugins/introspection_lens.cc:545 msgid "distort" msgstr "Distort" -#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:550 msgid "rectilinear" msgstr "Rectilinear" -#: ../build/lib/darktable/plugins/introspection_lens.cc:462 +#: ../build/lib/darktable/plugins/introspection_lens.cc:551 msgid "fisheye" msgstr "Fisheye" -#: ../build/lib/darktable/plugins/introspection_lens.cc:463 +#: ../build/lib/darktable/plugins/introspection_lens.cc:552 msgid "panoramic" msgstr "Panoramic" -#: ../build/lib/darktable/plugins/introspection_lens.cc:464 +#: ../build/lib/darktable/plugins/introspection_lens.cc:553 msgid "equirectangular" msgstr "Equirectangular" -#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +#: ../build/lib/darktable/plugins/introspection_lens.cc:554 msgid "orthographic" msgstr "Orthographic" -#: ../build/lib/darktable/plugins/introspection_lens.cc:466 +#: ../build/lib/darktable/plugins/introspection_lens.cc:555 msgid "stereographic" msgstr "Stereographic" -#: ../build/lib/darktable/plugins/introspection_lens.cc:467 +#: ../build/lib/darktable/plugins/introspection_lens.cc:556 msgid "equisolid angle" msgstr "Equisolid angle" -#: ../build/lib/darktable/plugins/introspection_lens.cc:468 +#: ../build/lib/darktable/plugins/introspection_lens.cc:557 msgid "Thoby fisheye" msgstr "Thoby fisheye" @@ -4252,8 +4408,8 @@ #. move left/right/up/down #: ../build/lib/darktable/plugins/introspection_liquify.c:429 -#: ../src/views/darkroom.c:2282 ../src/views/darkroom.c:2676 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:765 +#: ../src/views/darkroom.c:2121 ../src/views/darkroom.c:2522 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:765 #: ../src/views/lighttable.c:774 ../src/views/lighttable.c:1246 #: ../src/views/lighttable.c:1250 ../src/views/lighttable.c:1254 #: ../src/views/lighttable.c:1258 ../src/views/lighttable.c:1262 @@ -4265,8 +4421,8 @@ msgstr "Line" #: ../build/lib/darktable/plugins/introspection_liquify.c:431 -#: ../src/iop/basecurve.c:2186 ../src/iop/rgbcurve.c:1387 -#: ../src/iop/tonecurve.c:1149 +#: ../src/iop/basecurve.c:2207 ../src/iop/rgbcurve.c:1387 +#: ../src/iop/tonecurve.c:1171 msgid "curve" msgstr "Curve" @@ -4302,28 +4458,33 @@ msgid "bilateral filter" msgstr "Bilateral filter" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:76 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:163 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:77 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:164 msgid "application color space" msgstr "Application color space" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 msgid "Adobe RGB" msgstr "Adobe RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 msgid "gamma Rec709 RGB" msgstr "Gamma Rec709 RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:209 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:207 +#: ../src/common/colorspaces.c:1486 ../src/common/colorspaces.c:1740 +msgid "linear ProPhoto RGB" +msgstr "Linear ProPhoto RGB" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 msgid "tetrahedral" msgstr "Tetrahedral" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:210 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:212 msgid "trilinear" msgstr "Trilinear" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:213 msgid "pyramid" msgstr "Pyramid" @@ -4344,7 +4505,7 @@ #: ../build/lib/darktable/plugins/introspection_negadoctor.c:144 #: ../build/lib/darktable/plugins/introspection_negadoctor.c:239 -#: ../src/iop/negadoctor.c:992 +#: ../src/iop/negadoctor.c:1011 msgid "paper grade (gamma)" msgstr "Paper grade (gamma)" @@ -4359,15 +4520,57 @@ msgstr "Print exposure adjustment" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:261 -#: ../src/iop/negadoctor.c:417 +#: ../src/iop/negadoctor.c:431 msgid "black and white film" msgstr "Black and white film" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:262 -#: ../src/iop/negadoctor.c:402 +#: ../src/iop/negadoctor.c:416 msgid "color film" msgstr "Color film" +#: ../build/lib/darktable/plugins/introspection_primaries.c:75 +#: ../build/lib/darktable/plugins/introspection_primaries.c:160 +#: ../src/iop/primaries.c:406 +msgid "tint hue" +msgstr "Tint hue" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:81 +#: ../build/lib/darktable/plugins/introspection_primaries.c:164 +#: ../src/iop/primaries.c:413 +msgid "tint purity" +msgstr "Tint purity" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:87 +#: ../build/lib/darktable/plugins/introspection_primaries.c:168 +msgid "red hue" +msgstr "Red hue" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:93 +#: ../build/lib/darktable/plugins/introspection_primaries.c:172 +msgid "red purity" +msgstr "Red purity" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:99 +#: ../build/lib/darktable/plugins/introspection_primaries.c:176 +msgid "green hue" +msgstr "Green hue" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:105 +#: ../build/lib/darktable/plugins/introspection_primaries.c:180 +msgid "green purity" +msgstr "Green purity" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:111 +#: ../build/lib/darktable/plugins/introspection_primaries.c:184 +msgid "blue hue" +msgstr "Blue hue" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:117 +#: ../build/lib/darktable/plugins/introspection_primaries.c:188 +msgid "blue purity" +msgstr "Blue purity" + #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:85 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:158 msgid "dynamic range" @@ -4380,7 +4583,7 @@ #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:103 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:170 -#: ../src/iop/filmic.c:1526 +#: ../src/iop/filmic.c:1551 msgid "safety factor" msgstr "Safety factor" @@ -4389,7 +4592,7 @@ msgstr "Logarithmic" #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:185 -#: ../src/iop/profile_gamma.c:625 +#: ../src/iop/profile_gamma.c:639 msgid "gamma" msgstr "Gamma" @@ -4427,7 +4630,7 @@ #: ../build/lib/darktable/plugins/introspection_rawprepare.c:106 #: ../build/lib/darktable/plugins/introspection_rawprepare.c:179 -#: ../src/iop/rawprepare.c:946 +#: ../src/iop/rawprepare.c:954 msgid "white point" msgstr "White point" @@ -4443,9 +4646,9 @@ #. exposure #: ../build/lib/darktable/plugins/introspection_relight.c:43 #: ../build/lib/darktable/plugins/introspection_relight.c:98 -#: ../src/common/collection.c:720 ../src/gui/preferences.c:836 -#: ../src/gui/presets.c:684 ../src/iop/basicadj.c:598 ../src/iop/exposure.c:122 -#: ../src/iop/exposure.c:1117 ../src/libs/metadata_view.c:141 +#: ../src/common/collection.c:633 ../src/gui/preferences.c:834 +#: ../src/gui/presets.c:687 ../src/iop/basicadj.c:628 ../src/iop/exposure.c:122 +#: ../src/iop/exposure.c:1135 ../src/libs/metadata_view.c:143 msgid "exposure" msgstr "Exposure" @@ -4456,9 +4659,9 @@ #: ../build/lib/darktable/plugins/introspection_retouch.c:285 #: ../build/lib/darktable/plugins/introspection_retouch.c:426 -#: ../src/iop/basicadj.c:620 ../src/iop/channelmixerrgb.c:4617 -#: ../src/iop/colisa.c:305 ../src/iop/lowpass.c:587 ../src/iop/soften.c:377 -#: ../src/iop/vignette.c:970 ../src/libs/history.c:963 +#: ../src/iop/basicadj.c:650 ../src/iop/channelmixerrgb.c:4685 +#: ../src/iop/colisa.c:299 ../src/iop/lowpass.c:600 ../src/iop/soften.c:372 +#: ../src/iop/vignette.c:1057 ../src/libs/history.c:963 msgid "brightness" msgstr "Brightness" @@ -4468,7 +4671,7 @@ msgstr "Max_iter" #: ../build/lib/darktable/plugins/introspection_retouch.c:444 -#: ../src/libs/metadata_view.c:329 +#: ../src/libs/metadata_view.c:333 msgid "unused" msgstr "Unused" @@ -4481,12 +4684,12 @@ msgstr "Heal" #: ../build/lib/darktable/plugins/introspection_retouch.c:447 -#: ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2051 msgid "blur" msgstr "Blur" #: ../build/lib/darktable/plugins/introspection_retouch.c:448 -#: ../src/iop/retouch.c:1865 +#: ../src/iop/retouch.c:2049 msgid "fill" msgstr "Fill" @@ -4499,9 +4702,9 @@ msgstr "Erase" #: ../build/lib/darktable/plugins/introspection_retouch.c:458 -#: ../src/gui/presets.c:59 ../src/iop/watermark.c:1298 -#: ../src/libs/colorpicker.c:291 ../src/libs/image.c:612 -#: ../src/libs/modulegroups.c:2317 +#: ../src/gui/presets.c:61 ../src/iop/watermark.c:1346 +#: ../src/libs/colorpicker.c:320 ../src/libs/image.c:683 +#: ../src/libs/modulegroups.c:2301 msgid "color" msgstr "Color" @@ -4537,45 +4740,93 @@ msgid "highlights color adjustment" msgstr "Highlights color adjustment" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:70 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:141 -#: ../src/gui/accelerators.c:85 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:122 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:241 +#: ../src/gui/accelerators.c:101 msgid "skew" msgstr "Skew" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:76 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:145 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:128 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:245 msgid "target white" msgstr "Target white" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:82 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:149 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:134 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:249 msgid "target black" msgstr "Target black" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:88 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:153 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:140 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:253 msgid "color processing" msgstr "Color processing" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:94 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:157 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:146 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:257 msgid "preserve hue" msgstr "Preserve hue" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:171 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:152 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:261 +msgid "red attenuation" +msgstr "Red attenuation" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:158 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:265 +msgid "red rotation" +msgstr "Red rotation" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:164 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:269 +msgid "green attenuation" +msgstr "Green attenuation" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:170 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:273 +msgid "green rotation" +msgstr "Green rotation" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:176 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:277 +msgid "blue attenuation" +msgstr "Blue attenuation" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:182 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:281 +msgid "blue rotation" +msgstr "Blue rotation" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:188 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:285 +msgid "recover purity" +msgstr "Recover purity" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:194 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:289 +msgid "base primaries" +msgstr "Base primaries" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:303 msgid "per channel" msgstr "Per channel" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:172 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:304 msgid "RGB ratio" msgstr "RGB ratio" -#: ../build/lib/darktable/plugins/introspection_temperature.c:66 -#: ../build/lib/darktable/plugins/introspection_temperature.c:121 -#: ../src/iop/temperature.c:1941 -msgid "emerald" -msgstr "Emerald" +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:308 +#: ../src/common/colorspaces.c:1377 ../src/common/colorspaces.c:1734 +msgid "work profile" +msgstr "Work profile" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:309 +msgid "Rec2020" +msgstr "Rec2020" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:310 +#: ../src/common/colorspaces.c:1750 +msgid "Display P3" +msgstr "Display P3" #: ../build/lib/darktable/plugins/introspection_tonecurve.c:135 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:232 @@ -4697,13 +4948,13 @@ #: ../build/lib/darktable/plugins/introspection_tonemap.cc:39 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:88 -#: ../src/iop/rgbcurve.c:184 ../src/iop/tonecurve.c:539 +#: ../src/iop/rgbcurve.c:186 ../src/iop/tonecurve.c:560 msgid "contrast compression" msgstr "Contrast compression" #: ../build/lib/darktable/plugins/introspection_vibrance.c:33 #: ../build/lib/darktable/plugins/introspection_vibrance.c:76 -#: ../src/iop/basicadj.c:627 ../src/iop/vibrance.c:67 +#: ../src/iop/basicadj.c:657 ../src/iop/vibrance.c:67 msgid "vibrance" msgstr "Vibrance" @@ -4739,7 +4990,7 @@ #: ../build/lib/darktable/plugins/introspection_vignette.c:146 #: ../build/lib/darktable/plugins/introspection_vignette.c:237 -#: ../src/iop/vignette.c:978 +#: ../src/iop/vignette.c:1066 msgid "shape" msgstr "Shape" @@ -4778,7 +5029,7 @@ #: ../build/lib/darktable/plugins/introspection_watermark.c:323 #: ../src/imageio/format/tiff.c:125 ../src/imageio/format/xcf.c:159 -#: ../src/iop/borders.c:947 +#: ../src/iop/borders.c:960 msgid "image" msgstr "Image" @@ -4790,12 +5041,6 @@ msgid "smaller border" msgstr "Smaller border" -#: ../build/lib/darktable/plugins/introspection_watermark.c:326 -#: ../src/libs/export.c:1135 ../src/libs/metadata_view.c:148 -#: ../src/libs/print_settings.c:2541 -msgid "height" -msgstr "Height" - #: ../build/lib/darktable/plugins/introspection_watermark.c:327 msgid "advanced options" msgstr "Advanced options" @@ -4824,23 +5069,23 @@ msgid "marker height" msgstr "Marker height" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:6 +#: ../build/bin/tools/darktable_authors.h:6 msgid "developers" msgstr "Developers" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:11 +#: ../build/bin/tools/darktable_authors.h:11 msgid "translators" msgstr "Translators" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:16 +#: ../build/bin/tools/darktable_authors.h:16 msgid "contributors" msgstr "Contributors" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:21 +#: ../build/bin/tools/darktable_authors.h:21 msgid "rawspeed contributors" msgstr "Rawspeed contributors" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:26 +#: ../build/bin/tools/darktable_authors.h:26 msgid "integration contributors" msgstr "Integration contributors" @@ -4907,90 +5152,104 @@ msgid "Print your images" msgstr "Print your images" -#: ../src/bauhaus/bauhaus.c:752 ../src/bauhaus/bauhaus.c:3689 +#: ../src/bauhaus/bauhaus.c:845 ../src/bauhaus/bauhaus.c:3957 msgid "sliders" msgstr "Sliders" -#: ../src/bauhaus/bauhaus.c:753 ../src/bauhaus/bauhaus.c:3694 +#: ../src/bauhaus/bauhaus.c:847 ../src/bauhaus/bauhaus.c:3962 msgid "dropdowns" msgstr "Dropdowns" -#: ../src/bauhaus/bauhaus.c:754 ../src/bauhaus/bauhaus.c:3699 +#: ../src/bauhaus/bauhaus.c:849 ../src/bauhaus/bauhaus.c:3967 msgid "buttons" msgstr "Buttons" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button on" msgstr "Button on" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button off" msgstr "Button off" -#: ../src/bauhaus/bauhaus.c:3406 +#: ../src/bauhaus/bauhaus.c:3624 msgid "button pressed" msgstr "Button pressed" -#: ../src/bauhaus/bauhaus.c:3623 +#: ../src/bauhaus/bauhaus.c:3862 msgid "not that many sliders" msgstr "Not that many sliders" -#: ../src/bauhaus/bauhaus.c:3633 +#: ../src/bauhaus/bauhaus.c:3876 msgid "not that many dropdowns" msgstr "Not that many dropdowns" -#: ../src/bauhaus/bauhaus.c:3648 +#: ../src/bauhaus/bauhaus.c:3895 msgid "not that many buttons" msgstr "Not that many buttons" -#: ../src/bauhaus/bauhaus.c:3653 ../src/gui/accelerators.c:348 +#: ../src/bauhaus/bauhaus.c:3900 ../src/gui/accelerators.c:389 msgid "value" msgstr "Value" -#: ../src/bauhaus/bauhaus.c:3654 ../src/bauhaus/bauhaus.c:3660 -#: ../src/gui/accelerators.c:326 +#: ../src/bauhaus/bauhaus.c:3901 ../src/bauhaus/bauhaus.c:3907 +#: ../src/gui/accelerators.c:368 msgid "button" msgstr "Button" -#: ../src/bauhaus/bauhaus.c:3655 +#: ../src/bauhaus/bauhaus.c:3902 msgid "force" msgstr "Force" -#: ../src/bauhaus/bauhaus.c:3656 ../src/libs/navigation.c:187 -#: ../src/libs/navigation.c:199 +#: ../src/bauhaus/bauhaus.c:3903 ../src/libs/navigation.c:190 +#: ../src/libs/navigation.c:202 msgid "zoom" msgstr "Zoom" -#: ../src/bauhaus/bauhaus.c:3659 +#: ../src/bauhaus/bauhaus.c:3906 ../src/libs/select.c:40 msgid "selection" msgstr "Selection" -#: ../src/bauhaus/bauhaus.c:3678 +#: ../src/bauhaus/bauhaus.c:3946 msgid "slider" msgstr "Slider" -#: ../src/bauhaus/bauhaus.c:3683 +#: ../src/bauhaus/bauhaus.c:3951 msgid "dropdown" msgstr "Dropdown" -#: ../src/chart/main.c:504 ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 ../src/gui/accelerators.c:2278 -#: ../src/gui/accelerators.c:2355 ../src/gui/accelerators.c:2407 -#: ../src/gui/accelerators.c:2435 ../src/gui/accelerators.c:2495 -#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1043 -#: ../src/gui/preferences.c:1082 ../src/gui/presets.c:420 -#: ../src/gui/presets.c:563 ../src/gui/styles_dialog.c:519 -#: ../src/imageio/storage/disk.c:123 ../src/imageio/storage/gallery.c:110 -#: ../src/imageio/storage/latex.c:109 ../src/iop/lut3d.c:1546 -#: ../src/libs/collect.c:408 ../src/libs/copy_history.c:115 -#: ../src/libs/geotagging.c:928 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/styles.c:392 ../src/libs/styles.c:527 -#: ../src/libs/tagging.c:2489 ../src/libs/tagging.c:2525 +#: ../src/chart/main.c:504 ../src/common/database.c:3372 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 ../src/gui/accelerators.c:2497 +#: ../src/gui/accelerators.c:2579 ../src/gui/accelerators.c:2632 +#: ../src/gui/accelerators.c:2661 ../src/gui/accelerators.c:2723 +#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1081 ../src/gui/presets.c:422 +#: ../src/gui/presets.c:565 ../src/gui/styles_dialog.c:526 +#: ../src/imageio/storage/disk.c:198 ../src/imageio/storage/gallery.c:150 +#: ../src/imageio/storage/latex.c:146 ../src/iop/lut3d.c:1560 +#: ../src/libs/collect.c:425 ../src/libs/collect.c:3242 +#: ../src/libs/copy_history.c:115 ../src/libs/export_metadata.c:276 +#: ../src/libs/geotagging.c:929 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1711 +#: ../src/libs/metadata.c:462 ../src/libs/metadata_view.c:1222 +#: ../src/libs/recentcollect.c:228 ../src/libs/modulegroups.c:3466 +#: ../src/libs/styles.c:392 ../src/libs/styles.c:439 ../src/libs/styles.c:529 +#: ../src/libs/styles.c:624 ../src/libs/tagging.c:1488 +#: ../src/libs/tagging.c:1579 ../src/libs/tagging.c:1670 +#: ../src/libs/tagging.c:1806 ../src/libs/tagging.c:2085 +#: ../src/libs/tagging.c:2520 ../src/libs/tagging.c:2556 +#: ../src/libs/tagging.c:3502 msgid "_cancel" msgstr "_Cancel" -#: ../src/chart/main.c:504 ../src/gui/preferences.c:1082 -#: ../src/gui/styles_dialog.c:520 ../src/libs/styles.c:392 +#: ../src/chart/main.c:504 ../src/gui/preferences.c:1081 +#: ../src/gui/styles_dialog.c:527 ../src/libs/collect.c:3243 +#: ../src/libs/export_metadata.c:277 ../src/libs/metadata.c:463 +#: ../src/libs/metadata_view.c:1223 ../src/libs/recentcollect.c:229 +#: ../src/libs/styles.c:392 ../src/libs/tagging.c:1671 +#: ../src/libs/tagging.c:1807 ../src/libs/tagging.c:2086 +#: ../src/libs/tagging.c:3503 msgid "_save" msgstr "_Save" @@ -5004,62 +5263,62 @@ "Average dE: %.02f\n" "Max dE: %.02f" -#: ../src/cli/main.c:247 +#: ../src/cli/main.c:270 msgid "TODO: sorry, due to API restrictions we currently cannot set the BPP to" msgstr "" "TODO: sorry, due to API restrictions we currently cannot set the BPP to" -#: ../src/cli/main.c:259 +#: ../src/cli/main.c:282 msgid "unknown option for --hq" msgstr "Unknown option for --hq" -#: ../src/cli/main.c:275 +#: ../src/cli/main.c:298 msgid "unknown option for --export_masks" msgstr "Unknown option for --export_masks" -#: ../src/cli/main.c:291 +#: ../src/cli/main.c:314 msgid "unknown option for --upscale" msgstr "Unknown option for --upscale" -#: ../src/cli/main.c:316 +#: ../src/cli/main.c:339 msgid "unknown option for --apply-custom-presets" msgstr "Unknown option for --apply-custom-presets" -#: ../src/cli/main.c:327 +#: ../src/cli/main.c:350 msgid "too long ext for --out-ext" msgstr "Too long ext for --out-ext" -#: ../src/cli/main.c:344 +#: ../src/cli/main.c:367 #, c-format msgid "notice: input file or dir '%s' doesn't exist, skipping\n" msgstr "Notice: input file or dir '%s' doesn't exist, skipping\n" -#: ../src/cli/main.c:353 +#: ../src/cli/main.c:376 #, c-format msgid "incorrect ICC type for --icc-type: '%s'\n" msgstr "Incorrect ICC type for --icc-type: '%s'\n" -#: ../src/cli/main.c:369 +#: ../src/cli/main.c:392 #, c-format msgid "notice: ICC file '%s' doesn't exist, skipping\n" msgstr "Notice: ICC file '%s' doesn't exist, skipping\n" -#: ../src/cli/main.c:378 +#: ../src/cli/main.c:401 #, c-format msgid "incorrect ICC intent for --icc-intent: '%s'\n" msgstr "Incorrect ICC intent for --icc-intent: '%s'\n" -#: ../src/cli/main.c:396 +#: ../src/cli/main.c:419 #, c-format msgid "warning: unknown option '%s'\n" msgstr "Warning: unknown option '%s'\n" -#: ../src/cli/main.c:454 +#: ../src/cli/main.c:477 #, c-format msgid "error: input file and import opts specified! that's not supported!\n" msgstr "Error: input file and import opts specified! That's not supported!\n" -#: ../src/cli/main.c:487 +#: ../src/cli/main.c:510 #, c-format msgid "" "notice: output location is a directory. assuming '%s/$(FILE_NAME).%s' output " @@ -5069,48 +5328,48 @@ "pattern" #. output file exists or there's output ext specified and it's same as file... -#: ../src/cli/main.c:502 +#: ../src/cli/main.c:525 msgid "output file already exists, it will get renamed" msgstr "Output file already exists, it will get renamed" #. one of inputs was a failure, no prob -#: ../src/cli/main.c:532 +#: ../src/cli/main.c:555 #, c-format msgid "error: can't open folder %s" msgstr "Error: can't open folder %s" -#: ../src/cli/main.c:549 +#: ../src/cli/main.c:572 #, c-format msgid "error: can't open file %s" msgstr "Error: can't open file %s" -#: ../src/cli/main.c:566 +#: ../src/cli/main.c:589 #, c-format msgid "no images to export, aborting\n" msgstr "No images to export, aborting\n" -#: ../src/cli/main.c:583 +#: ../src/cli/main.c:606 #, c-format msgid "error: can't open XMP file %s" msgstr "Error: can't open XMP file %s" -#: ../src/cli/main.c:604 +#: ../src/cli/main.c:627 msgid "empty history stack" msgstr "Empty history stack" #. too long ext, no point in wasting time -#: ../src/cli/main.c:616 +#: ../src/cli/main.c:639 #, c-format msgid "too long output file extension: %s\n" msgstr "Too long output file extension: %s\n" #. no ext or empty ext, no point in wasting time -#: ../src/cli/main.c:624 +#: ../src/cli/main.c:647 #, c-format msgid "no output file extension given\n" msgstr "No output file extension given\n" -#: ../src/cli/main.c:663 +#: ../src/cli/main.c:692 msgid "" "cannot find disk storage module. please check your installation, something " "seems to be broken." @@ -5118,16 +5377,16 @@ "Cannot find disk storage module. Please check your installation, something " "seems to be broken." -#: ../src/cli/main.c:673 +#: ../src/cli/main.c:702 msgid "failed to get parameters from storage module, aborting export ..." msgstr "Failed to get parameters from storage module, aborting export ..." -#: ../src/cli/main.c:689 +#: ../src/cli/main.c:718 #, c-format msgid "unknown extension '.%s'" msgstr "Unknown extension '.%s'" -#: ../src/cli/main.c:699 +#: ../src/cli/main.c:728 msgid "failed to get parameters from format module, aborting export ..." msgstr "Failed to get parameters from format module, aborting export ..." @@ -5174,203 +5433,209 @@ "Camera `%s' on port `%s' needs to be remounted\n" "Make sure it allows access and is not mounted otherwise" -#: ../src/common/collection.c:673 +#: ../src/common/collection.c:586 msgid "too much time to update aspect ratio for the collection" msgstr "Too much time to update aspect ratio for the collection" -#: ../src/common/collection.c:688 +#: ../src/common/collection.c:601 msgid "film roll" msgstr "Film roll" -#: ../src/common/collection.c:690 +#: ../src/common/collection.c:603 msgid "folder" msgstr "Folder" -#: ../src/common/collection.c:692 +#: ../src/common/collection.c:605 msgid "camera" msgstr "Camera" -#: ../src/common/collection.c:694 ../src/libs/export_metadata.c:189 -#: ../src/libs/tagging.c:3281 +#: ../src/common/collection.c:607 ../src/libs/export_metadata.c:176 +#: ../src/libs/tagging.c:3312 msgid "tag" msgstr "Tag" -#: ../src/common/collection.c:696 +#: ../src/common/collection.c:609 msgid "capture date" msgstr "Capture date" -#: ../src/common/collection.c:698 ../src/libs/filtering.c:61 +#: ../src/common/collection.c:611 ../src/libs/filtering.c:61 msgid "capture time" msgstr "Capture time" -#: ../src/common/collection.c:700 ../src/libs/filtering.c:62 +#: ../src/common/collection.c:613 ../src/libs/filtering.c:62 msgid "import time" msgstr "Import time" -#: ../src/common/collection.c:702 ../src/libs/filtering.c:63 +#: ../src/common/collection.c:615 ../src/libs/filtering.c:63 msgid "modification time" msgstr "Modification time" -#: ../src/common/collection.c:704 ../src/libs/filtering.c:64 +#: ../src/common/collection.c:617 ../src/libs/filtering.c:64 msgid "export time" msgstr "Export time" -#: ../src/common/collection.c:706 ../src/libs/filtering.c:65 +#: ../src/common/collection.c:619 ../src/libs/filtering.c:65 msgid "print time" msgstr "Print time" -#: ../src/common/collection.c:708 ../src/libs/collect.c:3222 -#: ../src/libs/filtering.c:2163 ../src/libs/filtering.c:2183 +#: ../src/common/collection.c:621 ../src/libs/collect.c:3586 +#: ../src/libs/filtering.c:2237 ../src/libs/filtering.c:2257 #: ../src/libs/filters/history.c:153 ../src/libs/history.c:92 msgid "history" msgstr "History" -#: ../src/common/collection.c:710 ../src/common/colorlabels.c:342 -#: ../src/develop/lightroom.c:1550 ../src/dtgtk/thumbnail.c:1560 +#: ../src/common/collection.c:623 ../src/common/colorlabels.c:341 +#: ../src/develop/lightroom.c:1607 ../src/dtgtk/thumbnail.c:1548 #: ../src/libs/filtering.c:68 ../src/libs/filters/colors.c:301 #: ../src/libs/filters/colors.c:312 ../src/libs/tools/colorlabels.c:93 msgid "color label" msgstr "Color label" #. iso -#: ../src/common/collection.c:716 ../src/gui/preferences.c:832 -#: ../src/gui/presets.c:666 ../src/libs/camera.c:558 -#: ../src/libs/metadata_view.c:145 +#: ../src/common/collection.c:629 ../src/gui/preferences.c:830 +#: ../src/gui/presets.c:669 ../src/libs/camera.c:558 +#: ../src/libs/metadata_view.c:149 msgid "ISO" msgstr "ISO" #. aperture -#: ../src/common/collection.c:718 ../src/gui/preferences.c:840 -#: ../src/gui/presets.c:701 ../src/libs/camera.c:545 ../src/libs/camera.c:547 -#: ../src/libs/metadata_view.c:140 +#: ../src/common/collection.c:631 ../src/gui/preferences.c:838 +#: ../src/gui/presets.c:704 ../src/libs/camera.c:545 ../src/libs/camera.c:547 +#: ../src/libs/metadata_view.c:142 msgid "aperture" msgstr "Aperture" -#: ../src/common/collection.c:724 ../src/libs/filtering.c:57 -#: ../src/libs/filters/filename.c:364 ../src/libs/metadata_view.c:126 +#: ../src/common/collection.c:637 ../src/libs/filtering.c:57 +#: ../src/libs/filters/filename.c:369 ../src/libs/metadata_view.c:128 msgid "filename" msgstr "Filename" -#: ../src/common/collection.c:726 ../src/develop/lightroom.c:1541 +#: ../src/common/collection.c:639 ../src/develop/lightroom.c:1598 #: ../src/libs/geotagging.c:141 msgid "geotagging" msgstr "Geotagging" -#: ../src/common/collection.c:728 ../src/libs/filters/grouping.c:167 +#: ../src/common/collection.c:641 ../src/libs/filters/grouping.c:167 #: ../src/libs/tools/global_toolbox.c:394 msgid "grouping" msgstr "Grouping" -#: ../src/common/collection.c:730 ../src/dtgtk/thumbnail.c:1575 -#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:129 -#: ../src/libs/metadata_view.c:336 +#: ../src/common/collection.c:643 ../src/dtgtk/thumbnail.c:1563 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:340 msgid "local copy" msgstr "Local copy" -#: ../src/common/collection.c:732 ../src/gui/preferences.c:808 +#: ../src/common/collection.c:645 ../src/gui/preferences.c:806 msgid "module" msgstr "Module" -#: ../src/common/collection.c:734 ../src/gui/hist_dialog.c:346 -#: ../src/gui/styles_dialog.c:722 ../src/gui/styles_dialog.c:771 +#: ../src/common/collection.c:647 ../src/gui/hist_dialog.c:346 +#: ../src/gui/styles_dialog.c:734 ../src/gui/styles_dialog.c:783 #: ../src/libs/filters/module_order.c:161 ../src/libs/ioporder.c:39 msgid "module order" msgstr "Module order" -#: ../src/common/collection.c:736 +#: ../src/common/collection.c:649 msgid "range rating" msgstr "Range rating" -#: ../src/common/collection.c:738 ../src/common/ratings.c:322 -#: ../src/develop/lightroom.c:1525 ../src/libs/filtering.c:67 +#: ../src/common/collection.c:651 ../src/common/ratings.c:321 +#: ../src/develop/lightroom.c:1582 ../src/libs/filtering.c:67 #: ../src/libs/tools/ratings.c:110 msgid "rating" msgstr "Rating" -#: ../src/common/collection.c:740 +#: ../src/common/collection.c:653 msgid "search" msgstr "Search" -#: ../src/common/collection.c:1509 ../src/common/colorlabels.c:335 -#: ../src/develop/lightroom.c:836 ../src/gui/guides.c:732 -#: ../src/iop/colorzones.c:2265 ../src/iop/temperature.c:1925 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:261 +#: ../src/common/collection.c:1376 ../src/common/colorlabels.c:334 +#: ../src/develop/lightroom.c:889 ../src/gui/guides.c:732 +#: ../src/iop/colorzones.c:2501 ../src/iop/temperature.c:1902 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:261 msgid "yellow" msgstr "Yellow" -#: ../src/common/collection.c:1515 ../src/common/color_vocabulary.c:339 -#: ../src/common/colorlabels.c:338 ../src/iop/colorzones.c:2269 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:264 +#: ../src/common/collection.c:1382 ../src/common/color_vocabulary.c:339 +#: ../src/common/colorlabels.c:337 ../src/iop/colorzones.c:2505 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:264 msgid "purple" msgstr "Purple" -#: ../src/common/collection.c:1532 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1400 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "auto applied" msgstr "Auto applied" -#: ../src/common/collection.c:1536 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1406 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "altered" msgstr "Altered" -#: ../src/common/collection.c:1553 ../src/common/collection.c:1649 -#: ../src/libs/collect.c:1166 ../src/libs/collect.c:1330 -#: ../src/libs/collect.c:1354 ../src/libs/collect.c:1473 -#: ../src/libs/collect.c:2432 +#: ../src/common/collection.c:1424 ../src/common/collection.c:1535 +#: ../src/libs/collect.c:1242 ../src/libs/collect.c:1426 +#: ../src/libs/collect.c:1452 ../src/libs/collect.c:1592 +#: ../src/libs/collect.c:2662 msgid "not tagged" msgstr "Not tagged" -#: ../src/common/collection.c:1554 ../src/libs/collect.c:1354 +#: ../src/common/collection.c:1425 ../src/libs/collect.c:1452 #: ../src/libs/map_locations.c:742 msgid "tagged" msgstr "Tagged" -#: ../src/common/collection.c:1555 +#: ../src/common/collection.c:1426 msgid "tagged*" msgstr "Tagged*" #. local copy -#: ../src/common/collection.c:1588 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1460 ../src/libs/collect.c:1883 #: ../src/libs/filters/local_copy.c:38 msgid "not copied locally" msgstr "Not copied locally" -#: ../src/common/collection.c:1592 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1465 ../src/libs/collect.c:1882 #: ../src/libs/filters/local_copy.c:38 msgid "copied locally" msgstr "Copied locally" -#: ../src/common/collection.c:1974 ../src/libs/collect.c:1879 +#. if its undefined +#: ../src/common/collection.c:1507 ../src/common/collection.c:1619 +#: ../src/libs/collect.c:2209 ../src/libs/collect.c:2210 +msgid "unnamed" +msgstr "Unnamed" + +#: ../src/common/collection.c:1905 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:147 ../src/libs/filters/grouping.c:170 msgid "group leaders" msgstr "Group leaders" -#: ../src/common/collection.c:1978 ../src/libs/collect.c:1879 +#: ../src/common/collection.c:1909 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:150 ../src/libs/filters/grouping.c:170 msgid "group followers" msgstr "Group followers" -#: ../src/common/collection.c:2126 ../src/libs/collect.c:1959 +#: ../src/common/collection.c:2066 ../src/libs/collect.c:2100 msgid "not defined" msgstr "Not defined" -#: ../src/common/collection.c:2575 +#: ../src/common/collection.c:2521 #, c-format msgid "<b>%d</b> image (#<b>%d</b>) selected of <b>%d</b>" msgstr "<b>%d</b> image (#<b>%d</b>) selected of <b>%d</b>" -#: ../src/common/collection.c:2582 +#: ../src/common/collection.c:2528 #, c-format msgid "<b>%d</b> image selected of <b>%d</b>" msgid_plural "<b>%d</b> images selected of <b>%d</b>" msgstr[0] "<b>%d</b> image selected of <b>%d</b>" msgstr[1] "<b>%d</b> images selected of <b>%d</b>" -#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2324 -#: ../src/develop/blend_gui.c:2372 ../src/gui/guides.c:729 -#: ../src/iop/channelmixerrgb.c:4620 ../src/iop/levels.c:671 -#: ../src/iop/rgblevels.c:937 ../src/iop/rgblevels.c:1032 +#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2340 +#: ../src/develop/blend_gui.c:2388 ../src/gui/guides.c:729 +#: ../src/iop/channelmixerrgb.c:4688 ../src/iop/levels.c:687 +#: ../src/iop/rgblevels.c:969 ../src/iop/rgblevels.c:1083 msgid "gray" msgstr "Gray" @@ -5579,12 +5844,12 @@ msgstr "Dark cyan" #: ../src/common/color_vocabulary.c:297 ../src/common/color_vocabulary.c:317 -#: ../src/iop/colorzones.c:2267 +#: ../src/iop/colorzones.c:2503 msgid "aqua" msgstr "Aqua" #: ../src/common/color_vocabulary.c:298 ../src/gui/guides.c:733 -#: ../src/iop/temperature.c:1923 +#: ../src/iop/temperature.c:1900 msgid "cyan" msgstr "Cyan" @@ -5650,7 +5915,7 @@ msgstr "Dark magenta" #: ../src/common/color_vocabulary.c:341 ../src/gui/guides.c:734 -#: ../src/iop/colorzones.c:2270 ../src/iop/temperature.c:1921 +#: ../src/iop/colorzones.c:2506 ../src/iop/temperature.c:1898 msgid "magenta" msgstr "Magenta" @@ -5662,137 +5927,132 @@ msgid "color not found" msgstr "Color not found" -#: ../src/common/colorlabels.c:310 +#: ../src/common/colorlabels.c:309 #, c-format msgid "colorlabels set to %s" msgstr "Colorlabels set to %s" -#: ../src/common/colorlabels.c:312 +#: ../src/common/colorlabels.c:311 msgid "all colorlabels removed" msgstr "All colorlabels removed" -#: ../src/common/colorlabels.c:333 ../src/gui/accelerators.c:170 -#: ../src/libs/image.c:592 +#: ../src/common/colorlabels.c:332 ../src/gui/accelerators.c:188 +#: ../src/libs/image.c:660 msgid "clear" msgstr "Clear" -#. init the category profile with NULL profile, the actual profile must be retrieved dynamically by the caller -#: ../src/common/colorspaces.c:1229 ../src/common/colorspaces.c:1518 -msgid "work profile" -msgstr "Work profile" - -#: ../src/common/colorspaces.c:1232 ../src/common/colorspaces.c:1514 -#: ../src/iop/colorout.c:885 +#: ../src/common/colorspaces.c:1382 ../src/common/colorspaces.c:1730 +#: ../src/iop/colorout.c:901 msgid "export profile" msgstr "Export profile" -#: ../src/common/colorspaces.c:1236 ../src/common/colorspaces.c:1516 -#: ../src/views/darkroom.c:2542 +#: ../src/common/colorspaces.c:1387 ../src/common/colorspaces.c:1732 +#: ../src/views/darkroom.c:2383 msgid "softproof profile" msgstr "Softproof profile" -#: ../src/common/colorspaces.c:1242 ../src/common/colorspaces.c:1498 +#: ../src/common/colorspaces.c:1397 ../src/common/colorspaces.c:1714 msgid "system display profile" msgstr "System display profile" -#: ../src/common/colorspaces.c:1245 ../src/common/colorspaces.c:1520 +#: ../src/common/colorspaces.c:1402 ../src/common/colorspaces.c:1736 msgid "system display profile (second window)" msgstr "System display profile (second window)" -#: ../src/common/colorspaces.c:1255 +#: ../src/common/colorspaces.c:1415 msgid "sRGB (web-safe)" msgstr "sRGB (web-safe)" -#: ../src/common/colorspaces.c:1269 ../src/common/colorspaces.c:1522 +#: ../src/common/colorspaces.c:1435 ../src/common/colorspaces.c:1738 msgid "Rec709 RGB" msgstr "Rec709 RGB" -#: ../src/common/colorspaces.c:1279 +#: ../src/common/colorspaces.c:1450 msgid "PQ Rec2020 RGB" msgstr "PQ Rec2020 RGB" -#: ../src/common/colorspaces.c:1284 +#: ../src/common/colorspaces.c:1458 msgid "HLG Rec2020 RGB" msgstr "HLG Rec2020 RGB" -#: ../src/common/colorspaces.c:1289 +#: ../src/common/colorspaces.c:1465 msgid "PQ P3 RGB" msgstr "PQ P3 RGB" -#: ../src/common/colorspaces.c:1294 +#: ../src/common/colorspaces.c:1471 msgid "HLG P3 RGB" msgstr "HLG P3 RGB" -#: ../src/common/colorspaces.c:1299 ../src/common/colorspaces.c:1524 -msgid "linear ProPhoto RGB" -msgstr "Linear ProPhoto RGB" +#: ../src/common/colorspaces.c:1478 +msgid "Display P3 RGB" +msgstr "Display P3 RGB" -#: ../src/common/colorspaces.c:1304 ../src/common/colorspaces.c:1492 +#: ../src/common/colorspaces.c:1493 ../src/common/colorspaces.c:1708 msgid "linear XYZ" msgstr "Linear XYZ" -#: ../src/common/colorspaces.c:1308 ../src/common/colorspaces.c:1494 -#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2000 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:267 +#: ../src/common/colorspaces.c:1500 ../src/common/colorspaces.c:1710 +#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2016 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:293 msgid "Lab" msgstr "Lab" -#: ../src/common/colorspaces.c:1313 ../src/common/colorspaces.c:1496 +#: ../src/common/colorspaces.c:1508 ../src/common/colorspaces.c:1712 msgid "linear infrared BGR" msgstr "Linear infrared BGR" -#: ../src/common/colorspaces.c:1317 +#: ../src/common/colorspaces.c:1513 msgid "BRG (for testing)" msgstr "BRG (for testing)" -#: ../src/common/colorspaces.c:1409 +#: ../src/common/colorspaces.c:1619 #, c-format msgid "" "profile `%s' not usable as histogram profile. it has been replaced by sRGB!" msgstr "" "Profile `%s' not usable as histogram profile. It has been replaced by sRGB!" -#: ../src/common/colorspaces.c:1500 +#: ../src/common/colorspaces.c:1716 msgid "embedded ICC profile" msgstr "Embedded ICC profile" -#: ../src/common/colorspaces.c:1502 +#: ../src/common/colorspaces.c:1718 msgid "embedded matrix" msgstr "Embedded matrix" -#: ../src/common/colorspaces.c:1504 +#: ../src/common/colorspaces.c:1720 msgid "standard color matrix" msgstr "Standard color matrix" -#: ../src/common/colorspaces.c:1506 +#: ../src/common/colorspaces.c:1722 msgid "enhanced color matrix" msgstr "Enhanced color matrix" -#: ../src/common/colorspaces.c:1508 +#: ../src/common/colorspaces.c:1724 msgid "vendor color matrix" msgstr "Vendor color matrix" -#: ../src/common/colorspaces.c:1510 +#: ../src/common/colorspaces.c:1726 msgid "alternate color matrix" msgstr "Alternate color matrix" -#: ../src/common/colorspaces.c:1512 +#: ../src/common/colorspaces.c:1728 msgid "BRG (experimental)" msgstr "BRG (experimental)" -#: ../src/common/colorspaces.c:1526 +#: ../src/common/colorspaces.c:1742 msgid "PQ Rec2020" msgstr "PQ Rec2020" -#: ../src/common/colorspaces.c:1528 +#: ../src/common/colorspaces.c:1744 msgid "HLG Rec2020" msgstr "HLG Rec2020" -#: ../src/common/colorspaces.c:1530 +#: ../src/common/colorspaces.c:1746 msgid "PQ P3" msgstr "PQ P3" -#: ../src/common/colorspaces.c:1532 +#: ../src/common/colorspaces.c:1748 msgid "HLG P3" msgstr "HLG P3" @@ -5820,40 +6080,40 @@ msgid "printing `%s' on `%s'" msgstr "Printing `%s' on `%s'" -#: ../src/common/darktable.c:250 +#: ../src/common/darktable.c:375 #, c-format msgid "found strange path `%s'" msgstr "Found strange path `%s'" -#: ../src/common/darktable.c:265 +#: ../src/common/darktable.c:390 #, c-format msgid "error loading directory `%s'" msgstr "Error loading directory `%s'" -#: ../src/common/darktable.c:289 +#: ../src/common/darktable.c:414 #, c-format msgid "file `%s' has unknown format!" msgstr "File `%s' has unknown format!" -#: ../src/common/darktable.c:302 ../src/control/jobs/control_jobs.c:2118 -#: ../src/control/jobs/control_jobs.c:2177 +#: ../src/common/darktable.c:427 ../src/control/jobs/control_jobs.c:2121 +#: ../src/control/jobs/control_jobs.c:2180 #, c-format msgid "error loading file `%s'" msgstr "Error loading file `%s'" -#: ../src/common/darktable.c:1509 +#: ../src/common/darktable.c:1650 msgid "configuration information" msgstr "Configuration information" -#: ../src/common/darktable.c:1511 -msgid "show this information again" -msgstr "Show this information again" - -#: ../src/common/darktable.c:1511 -msgid "understood" -msgstr "Understood" +#: ../src/common/darktable.c:1652 +msgid "_show this information again" +msgstr "_Show this information again" + +#: ../src/common/darktable.c:1652 +msgid "_understood" +msgstr "_Understood" -#: ../src/common/darktable.c:1968 +#: ../src/common/darktable.c:2106 msgid "" "the RCD demosaicer has been defined as default instead of PPG because of " "better quality and performance." @@ -5861,11 +6121,11 @@ "The RCD demosaicer has been defined as default instead of PPG because of " "better quality and performance." -#: ../src/common/darktable.c:1970 +#: ../src/common/darktable.c:2108 msgid "see preferences/darkroom/demosaicing for zoomed out darkroom mode" msgstr "See Preferences/Darkroom/Demosaicing for zoomed out Darkroom mode" -#: ../src/common/darktable.c:1976 +#: ../src/common/darktable.c:2114 msgid "" "the user interface and the underlying internals for tuning darktable " "performance have changed." @@ -5873,7 +6133,7 @@ "The user interface and the underlying internals for tuning Darktable " "performance have changed." -#: ../src/common/darktable.c:1978 +#: ../src/common/darktable.c:2116 msgid "" "you won't find headroom and friends any longer, instead in preferences/" "processing use:" @@ -5881,15 +6141,15 @@ "You won't find headroom and friends any longer, instead in Preferences/" "Processing use:" -#: ../src/common/darktable.c:1980 +#: ../src/common/darktable.c:2118 msgid "1) darktable resources" msgstr "1) Darktable resources" -#: ../src/common/darktable.c:1982 +#: ../src/common/darktable.c:2120 msgid "2) tune OpenCL performance" msgstr "2) Tune OpenCL performance" -#: ../src/common/darktable.c:1989 +#: ../src/common/darktable.c:2127 msgid "" "some global config parameters relevant for OpenCL performance are not used " "any longer." @@ -5897,33 +6157,34 @@ "Some global config parameters relevant for OpenCL performance are not used " "any longer." -#: ../src/common/darktable.c:1991 +#: ../src/common/darktable.c:2129 msgid "" -"instead you will find 'per device' data in 'cl_device_v4_canonical-name'. " +"instead you will find 'per device' data in 'cldevice_v5_canonical-name'. " "content is:" msgstr "" -"Instead you will find 'per device' data in 'cl_device_v4_canonical-name'. " +"Instead you will find 'per device' data in 'cldevice_v5_canonical-name'. " "Content is:" -#: ../src/common/darktable.c:1993 ../src/common/darktable.c:2012 +#: ../src/common/darktable.c:2131 ../src/common/darktable.c:2150 +#: ../src/common/darktable.c:2165 msgid "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" msgstr "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" -#: ../src/common/darktable.c:1995 ../src/common/darktable.c:2014 +#: ../src/common/darktable.c:2133 ../src/common/darktable.c:2152 msgid "you may tune as before except 'magic'" msgstr "You may tune as before except 'magic'" -#: ../src/common/darktable.c:2001 +#: ../src/common/darktable.c:2139 msgid "" "your OpenCL compiler settings for all devices have been reset to default." msgstr "" "Your OpenCL compiler settings for all devices have been reset to default." -#: ../src/common/darktable.c:2008 +#: ../src/common/darktable.c:2146 msgid "" "OpenCL global config parameters 'per device' data has been recreated with an " "updated name." @@ -5931,13 +6192,13 @@ "OpenCL global config parameters 'per device' data has been recreated with an " "updated name." -#: ../src/common/darktable.c:2010 +#: ../src/common/darktable.c:2148 ../src/common/darktable.c:2163 msgid "" -"you will find 'per device' data in 'cl_device_v5_canonical-name'. content is:" +"you will find 'per device' data in 'cldevice_v5_canonical-name'. content is:" msgstr "" -"You will find 'per device' data in 'cl_device_v5_canonical-name'. Content is:" +"You will find 'per device' data in 'cldevice_v5_canonical-name'. Content is:" -#: ../src/common/darktable.c:2016 +#: ../src/common/darktable.c:2154 msgid "" "If you're using device names in 'opencl_device_priority' you should update " "them to the new names." @@ -5945,7 +6206,23 @@ "If you're using device names in 'opencl_device_priority' you should update " "them to the new names." -#: ../src/common/database.c:2756 +#: ../src/common/darktable.c:2161 +msgid "" +"OpenCL 'per device' config data have been automatically extended by 'unified-" +"fraction'." +msgstr "" +"OpenCL 'per device' config data have been automatically extended by 'unified-" +"fraction'." + +#: ../src/common/darktable.c:2172 +msgid "" +"OpenCL 'per device' compiler settings might have been updated.\n" +"\n" +msgstr "" +"OpenCL 'per device' compiler settings might have been updated.\n" +"\n" + +#: ../src/common/database.c:3350 #, c-format msgid "" "\n" @@ -6003,30 +6280,19 @@ "</i>\n" #. clang-format on -#: ../src/common/database.c:2777 +#: ../src/common/database.c:3371 msgid "error starting darktable" msgstr "Error starting Darktable" -#: ../src/common/database.c:2778 ../src/libs/collect.c:2915 -#: ../src/libs/export_metadata.c:288 ../src/libs/import.c:1702 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:227 ../src/libs/modulegroups.c:3464 -#: ../src/libs/styles.c:438 ../src/libs/styles.c:621 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3471 -msgid "cancel" -msgstr "Cancel" +#: ../src/common/database.c:3372 +msgid "_delete database lock files" +msgstr "_Delete database lock files" -#: ../src/common/database.c:2778 -msgid "delete database lock files" -msgstr "Delete database lock files" - -#: ../src/common/database.c:2784 +#: ../src/common/database.c:3378 msgid "are you sure?" msgstr "Are you sure?" -#: ../src/common/database.c:2785 +#: ../src/common/database.c:3379 msgid "" "\n" "do you really want to delete the lock files?\n" @@ -6034,20 +6300,19 @@ "\n" "Do you really want to delete the lock files?\n" -#: ../src/common/database.c:2785 ../src/common/variables.c:703 -#: ../src/develop/imageop_gui.c:210 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 -msgid "yes" -msgstr "Yes" +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2597 +msgid "_no" +msgstr "_No" -#: ../src/common/database.c:2801 ../src/libs/export_metadata.c:164 -#: ../src/libs/geotagging.c:811 +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2596 +msgid "_yes" +msgstr "_Yes" + +#: ../src/common/database.c:3395 msgid "done" msgstr "Done" -#: ../src/common/database.c:2802 +#: ../src/common/database.c:3396 msgid "" "\n" "successfully deleted the lock files.\n" @@ -6057,17 +6322,17 @@ "Successfully deleted the lock files.\n" "You can now restart Darktable\n" -#. the button to close the popup -#: ../src/common/database.c:2803 ../src/common/database.c:2810 -#: ../src/libs/filters/filename.c:452 -msgid "ok" -msgstr "OK" +#: ../src/common/database.c:3397 ../src/common/database.c:3404 +#: ../src/gui/accelerators.c:2580 ../src/gui/accelerators.c:2662 +#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:566 +msgid "_ok" +msgstr "_OK" -#: ../src/common/database.c:2806 +#: ../src/common/database.c:3400 msgid "error" msgstr "Error" -#: ../src/common/database.c:2807 +#: ../src/common/database.c:3401 #, c-format msgid "" "\n" @@ -6082,7 +6347,7 @@ "db.lock</i>\n" "in folder <a href=\"file:///%s\">%s</a>.\n" -#: ../src/common/database.c:2924 +#: ../src/common/database.c:3518 #, c-format msgid "" "the database lock file contains a pid that seems to be alive in your system: " @@ -6091,18 +6356,43 @@ "The database lock file contains a PID that seems to be alive in your system: " "%d" -#: ../src/common/database.c:2931 +#: ../src/common/database.c:3525 #, c-format msgid "the database lock file seems to be empty" msgstr "The database lock file seems to be empty" -#: ../src/common/database.c:2941 +#: ../src/common/database.c:3535 #, c-format msgid "error opening the database lock file for reading: %s" msgstr "Error opening the database lock file for reading: %s" +#: ../src/common/database.c:3605 +#, c-format +msgid "" +"the database schema version of\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"is too new for this build of darktable (this means the database was created " +"or upgraded by a newer darktable version)\n" +msgstr "" +"The database schema version of\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"is too new for this build of Darktable (this means the database was created " +"or upgraded by a newer Darktable version)\n" + +#: ../src/common/database.c:3612 +msgid "darktable - too new db version" +msgstr "Darktable - too new db version" + +#: ../src/common/database.c:3613 +msgid "_quit darktable" +msgstr "_Quit Darktable" + #. the database has to be upgraded, let's ask user -#: ../src/common/database.c:2978 +#: ../src/common/database.c:3628 #, c-format msgid "" "the database schema has to be upgraded for\n" @@ -6121,21 +6411,21 @@ "\n" "Do you want to proceed or quit now to do a backup\n" -#: ../src/common/database.c:2986 +#: ../src/common/database.c:3636 msgid "darktable - schema migration" msgstr "Darktable - schema migration" -#: ../src/common/database.c:2987 ../src/common/database.c:3306 -#: ../src/common/database.c:3324 ../src/common/database.c:3491 -#: ../src/common/database.c:3509 -msgid "close darktable" -msgstr "Close Darktable" - -#: ../src/common/database.c:2987 -msgid "upgrade database" -msgstr "Upgrade database" +#: ../src/common/database.c:3637 ../src/common/database.c:3959 +#: ../src/common/database.c:3974 ../src/common/database.c:4142 +#: ../src/common/database.c:4157 +msgid "_close darktable" +msgstr "_Close Darktable" + +#: ../src/common/database.c:3637 +msgid "_upgrade database" +msgstr "_Upgrade database" -#: ../src/common/database.c:3286 ../src/common/database.c:3471 +#: ../src/common/database.c:3939 ../src/common/database.c:4122 #, c-format msgid "" "quick_check said:\n" @@ -6144,21 +6434,21 @@ "Quick_check said:\n" "%s \n" -#: ../src/common/database.c:3303 ../src/common/database.c:3321 -#: ../src/common/database.c:3488 ../src/common/database.c:3506 +#: ../src/common/database.c:3956 ../src/common/database.c:3971 +#: ../src/common/database.c:4139 ../src/common/database.c:4154 msgid "darktable - error opening database" msgstr "Darktable - error opening database" -#: ../src/common/database.c:3308 ../src/common/database.c:3493 -msgid "attempt restore" -msgstr "Attempt restore" - -#: ../src/common/database.c:3310 ../src/common/database.c:3326 -#: ../src/common/database.c:3495 ../src/common/database.c:3511 -msgid "delete database" -msgstr "Delete database" +#: ../src/common/database.c:3960 ../src/common/database.c:4143 +msgid "_attempt restore" +msgstr "_Attempt restore" + +#: ../src/common/database.c:3961 ../src/common/database.c:3975 +#: ../src/common/database.c:4144 ../src/common/database.c:4158 +msgid "_delete database" +msgstr "_Delete database" -#: ../src/common/database.c:3314 ../src/common/database.c:3499 +#: ../src/common/database.c:3964 ../src/common/database.c:4147 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup, attempt an automatic restore\n" @@ -6170,7 +6460,7 @@ "from the most recent snapshot or delete the corrupted database\n" "and start with a new one?" -#: ../src/common/database.c:3330 ../src/common/database.c:3515 +#: ../src/common/database.c:3978 ../src/common/database.c:4161 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup or delete the corrupted database\n" @@ -6180,7 +6470,7 @@ "the database from a backup or delete the corrupted database\n" "and start with a new one?" -#: ../src/common/database.c:3337 ../src/common/database.c:3520 +#: ../src/common/database.c:3985 ../src/common/database.c:4166 #, c-format msgid "" "an error has occurred while trying to open the database from\n" @@ -6205,12 +6495,12 @@ "Fast exposure independent guided filter failed to allocate memory, check " "your RAM settings" -#: ../src/common/exif.cc:5200 +#: ../src/common/exif.cc:5482 #, c-format msgid "cannot read XMP file '%s': '%s'" msgstr "Cannot read XMP file '%s': '%s'" -#: ../src/common/exif.cc:5258 +#: ../src/common/exif.cc:5540 #, c-format msgid "cannot write XMP file '%s': '%s'" msgstr "Cannot write XMP file '%s': '%s'" @@ -6219,121 +6509,121 @@ msgid "fast guided filter failed to allocate memory, check your RAM settings" msgstr "Fast guided filter failed to allocate memory, check your RAM settings" -#: ../src/common/film.c:345 +#: ../src/common/film.c:356 msgid "do you want to remove this empty directory?" msgid_plural "do you want to remove these empty directories?" msgstr[0] "Do you want to remove this empty directory?" msgstr[1] "Do you want to remove these empty directories?" -#: ../src/common/film.c:352 +#: ../src/common/film.c:363 msgid "remove empty directory?" msgid_plural "remove empty directories?" msgstr[0] "Remove empty directory?" msgstr[1] "Remove empty directories?" -#: ../src/common/film.c:371 ../src/gui/preferences.c:816 -#: ../src/gui/styles_dialog.c:548 ../src/libs/geotagging.c:829 -#: ../src/libs/import.c:1551 +#: ../src/common/film.c:383 ../src/gui/preferences.c:814 +#: ../src/gui/styles_dialog.c:556 ../src/libs/geotagging.c:830 +#: ../src/libs/import.c:1560 msgid "name" msgstr "Name" -#: ../src/common/film.c:477 +#: ../src/common/film.c:492 msgid "" "cannot remove film roll having local copies with non accessible originals" msgstr "" "Cannot remove film roll having local copies with non accessible originals" -#: ../src/common/history.c:840 +#: ../src/common/history.c:876 msgid "you need to copy history from an image before you paste it onto another" msgstr "" "You need to copy history from an image before you paste it onto another" -#: ../src/common/image.c:325 +#: ../src/common/image.c:333 msgid "orphaned image" msgstr "Orphaned image" -#: ../src/common/image.c:620 +#: ../src/common/image.c:629 #, c-format msgid "geo-location undone for %d image" msgid_plural "geo-location undone for %d images" msgstr[0] "Geo-location undone for %d image" msgstr[1] "Geo-location undone for %d images" -#: ../src/common/image.c:622 +#: ../src/common/image.c:631 #, c-format msgid "geo-location re-applied to %d image" msgid_plural "geo-location re-applied to %d images" msgstr[0] "Geo-location re-applied to %d image" msgstr[1] "Geo-location re-applied to %d images" -#: ../src/common/image.c:645 +#: ../src/common/image.c:654 #, c-format msgid "date/time undone for %d image" msgid_plural "date/time undone for %d images" msgstr[0] "Date/time undone for %d image" msgstr[1] "Date/time undone for %d images" -#: ../src/common/image.c:647 +#: ../src/common/image.c:656 #, c-format msgid "date/time re-applied to %d image" msgid_plural "date/time re-applied to %d images" msgstr[0] "Date/time re-applied to %d image" msgstr[1] "Date/time re-applied to %d images" -#: ../src/common/image.c:2188 +#: ../src/common/image.c:2260 #, c-format msgid "cannot access local copy `%s'" msgstr "Cannot access local copy `%s'" -#: ../src/common/image.c:2195 +#: ../src/common/image.c:2267 #, c-format msgid "cannot write local copy `%s'" msgstr "Cannot write local copy `%s'" -#: ../src/common/image.c:2202 +#: ../src/common/image.c:2274 #, c-format msgid "error moving local copy `%s' -> `%s'" msgstr "Error moving local copy `%s' -> `%s'" -#: ../src/common/image.c:2219 +#: ../src/common/image.c:2291 #, c-format msgid "error moving `%s': file not found" msgstr "Error moving `%s': file not found" -#: ../src/common/image.c:2229 +#: ../src/common/image.c:2301 #, c-format msgid "error moving `%s' -> `%s': file exists" msgstr "Error moving `%s' -> `%s': file exists" -#: ../src/common/image.c:2233 +#: ../src/common/image.c:2305 #, c-format msgid "error moving `%s' -> `%s'" msgstr "Error moving `%s' -> `%s'" -#: ../src/common/image.c:2562 +#: ../src/common/image.c:2634 msgid "cannot create local copy when the original file is not accessible." msgstr "Cannot create local copy when the original file is not accessible." -#: ../src/common/image.c:2576 +#: ../src/common/image.c:2648 msgid "cannot create local copy." msgstr "Cannot create local copy." -#: ../src/common/image.c:2656 ../src/control/jobs/control_jobs.c:777 +#: ../src/common/image.c:2728 ../src/control/jobs/control_jobs.c:777 msgid "cannot remove local copy when the original file is not accessible." msgstr "Cannot remove local copy when the original file is not accessible." -#: ../src/common/image.c:2821 +#: ../src/common/image.c:2901 #, c-format msgid "%d local copy has been synchronized" msgid_plural "%d local copies have been synchronized" msgstr[0] "%d local copy has been synchronized" msgstr[1] "%d local copies have been synchronized" -#: ../src/common/image.c:3022 +#: ../src/common/image.c:3102 msgid "<b>WARNING</b>: camera is missing samples!" msgstr "<b>WARNING</b>: camera is missing samples!" -#: ../src/common/image.c:3023 +#: ../src/common/image.c:3103 msgid "" "You must provide samples in <a href='https://raw.pixls.us/'>https://raw." "pixls.us/</a>" @@ -6341,7 +6631,7 @@ "You must provide samples in <a href='https://raw.pixls.us/'>https://raw." "pixls.us/</a>" -#: ../src/common/image.c:3024 +#: ../src/common/image.c:3104 #, c-format msgid "" "for `%s' `%s'\n" @@ -6350,81 +6640,82 @@ "for `%s' `%s'\n" "in as many format/compression/bit depths as possible" -#: ../src/common/image.c:3027 +#: ../src/common/image.c:3107 msgid "or the <b>RAW won't be readable</b> in next version." msgstr "or the <b>RAW won't be readable</b> in next version." -#: ../src/common/image.h:209 ../src/common/ratings.c:284 -#: ../src/libs/history.c:843 ../src/libs/snapshots.c:779 +#: ../src/common/image.h:217 ../src/common/ratings.c:283 +#: ../src/imageio/format/avif.c:114 ../src/libs/history.c:843 +#: ../src/libs/snapshots.c:837 msgid "unknown" msgstr "Unknown" #. EMPTY_FIELD -#: ../src/common/image.h:210 -msgid "tiff" -msgstr "Tiff" - -#: ../src/common/image.h:211 -msgid "png" -msgstr "Png" - -#: ../src/common/image.h:212 ../src/imageio/format/j2k.c:652 -msgid "j2k" -msgstr "J2k" - -#: ../src/common/image.h:213 -msgid "jpeg" -msgstr "Jpeg" - -#: ../src/common/image.h:214 -msgid "exr" -msgstr "Exr" - -#: ../src/common/image.h:215 -msgid "rgbe" -msgstr "Rgbe" - -#: ../src/common/image.h:216 -msgid "pfm" -msgstr "Pfm" - -#: ../src/common/image.h:217 -msgid "GraphicsMagick" -msgstr "GraphicsMagick" +#: ../src/common/image.h:218 ../src/imageio/format/tiff.c:831 +msgid "TIFF" +msgstr "TIFF" -#: ../src/common/image.h:218 -msgid "rawspeed" -msgstr "Rawspeed" - -#: ../src/common/image.h:219 -msgid "netpnm" -msgstr "Netpnm" +#: ../src/common/image.h:219 ../src/imageio/format/png.c:599 +msgid "PNG" +msgstr "PNG" #: ../src/common/image.h:220 -msgid "avif" -msgstr "Avif" +msgid "JPEG 2000" +msgstr "JPEG 2000" #: ../src/common/image.h:221 -msgid "ImageMagick" -msgstr "ImageMagick" +msgid "JPEG" +msgstr "JPEG" #: ../src/common/image.h:222 -msgid "heif" -msgstr "Heif" +msgid "EXR" +msgstr "EXR" #: ../src/common/image.h:223 -msgid "libraw" -msgstr "Libraw" +msgid "RGBE" +msgstr "RGBE" -#: ../src/common/image.h:224 -msgid "webp" -msgstr "WebP" +#: ../src/common/image.h:224 ../src/imageio/format/pfm.c:120 +msgid "PFM" +msgstr "PFM" #: ../src/common/image.h:225 -msgid "jpeg xl" -msgstr "JPEG XL" +msgid "GraphicsMagick" +msgstr "GraphicsMagick" #: ../src/common/image.h:226 +msgid "RawSpeed" +msgstr "RawSpeed" + +#: ../src/common/image.h:227 +msgid "Netpbm" +msgstr "Netpbm" + +#: ../src/common/image.h:228 ../src/imageio/format/avif.c:728 +msgid "AVIF" +msgstr "AVIF" + +#: ../src/common/image.h:229 +msgid "ImageMagick" +msgstr "ImageMagick" + +#: ../src/common/image.h:230 +msgid "HEIF" +msgstr "HEIF" + +#: ../src/common/image.h:231 +msgid "LibRaw" +msgstr "LibRaw" + +#: ../src/common/image.h:232 ../src/imageio/format/webp.c:380 +msgid "WebP" +msgstr "WebP" + +#: ../src/common/image.h:233 ../src/imageio/format/jxl.c:482 +msgid "JPEG XL" +msgstr "JPEG XL" + +#: ../src/common/image.h:234 msgid "QOI" msgstr "QOI" @@ -6456,7 +6747,7 @@ msgid "requested session path not available. device not mounted?" msgstr "Requested session path not available. Device not mounted?" -#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:197 +#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:195 msgid "legacy" msgstr "Legacy" @@ -6468,7 +6759,7 @@ msgid "v3.0 JPEG" msgstr "V3.0 JPEG" -#: ../src/common/iop_profile.c:1205 +#: ../src/common/iop_profile.c:1207 #, c-format msgid "" "darktable loads %s from\n" @@ -6492,13 +6783,13 @@ #. title #: ../src/common/metadata.c:48 ../src/imageio/format/pdf.c:574 -#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:169 -#: ../src/imageio/storage/gallery.c:170 ../src/imageio/storage/latex.c:169 -#: ../src/imageio/storage/piwigo.c:1058 ../src/libs/filtering.c:69 +#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:219 +#: ../src/imageio/storage/gallery.c:222 ../src/imageio/storage/latex.c:206 +#: ../src/imageio/storage/piwigo.c:1091 ../src/libs/filtering.c:69 msgid "title" msgstr "Title" -#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:552 +#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:563 #: ../src/libs/filtering.c:70 msgid "description" msgstr "Description" @@ -6516,11 +6807,11 @@ msgstr "Version name" #: ../src/common/metadata.c:53 ../src/libs/live_view.c:319 -#: ../src/libs/metadata_view.c:124 +#: ../src/libs/metadata_view.c:126 msgid "image id" msgstr "Image id" -#: ../src/common/mipmap_cache.c:1065 ../src/imageio/imageio.c:787 +#: ../src/common/mipmap_cache.c:1070 ../src/imageio/imageio.c:799 #, c-format msgid "image `%s' is not available!" msgstr "Image `%s' is not available!" @@ -6534,7 +6825,43 @@ msgid "noiseprofile file `%s' is not valid" msgstr "Noiseprofile file `%s' is not valid" -#: ../src/common/opencl.c:1376 +#: ../src/common/opencl.c:1165 +msgid "no working OpenCL library found" +msgstr "No working OpenCL library found" + +#: ../src/common/opencl.c:1185 +msgid "" +"platform detection failed. some possible causes:\n" +" - OpenCL ICD (ocl-icd) missing,\n" +" - previous OpenCL errors leading to blocked devices,\n" +" - power management problems,\n" +" - buggy drivers,\n" +" - no OpenCL driver installed." +msgstr "" +"Platform detection failed. Some possible causes:\n" +" - OpenCL ICD (ocl-icd) missing,\n" +" - previous OpenCL errors leading to blocked devices,\n" +" - power management problems,\n" +" - buggy drivers,\n" +" - no OpenCL driver installed." + +#: ../src/common/opencl.c:1277 +msgid "no devices found for unknown platform" +msgstr "No devices found for unknown platform" + +#: ../src/common/opencl.c:1323 +msgid "not enough memory for OpenCL devices" +msgstr "Not enough memory for OpenCL devices" + +#: ../src/common/opencl.c:1358 +msgid "no OpenCL devices found" +msgstr "No OpenCL devices found" + +#: ../src/common/opencl.c:1401 +msgid "no suitable OpenCL devices found" +msgstr "No suitable OpenCL devices found" + +#: ../src/common/opencl.c:1422 #, c-format msgid "" "OpenCL initializing problem:\n" @@ -6543,34 +6870,21 @@ "OpenCL initializing problem:\n" "%s" -#: ../src/common/opencl.c:1439 -msgid "" -"due to a slow GPU hardware acceleration using OpenCL has been deactivated" -msgstr "" -"Due to a slow GPU hardware acceleration using OpenCL has been deactivated" - -#: ../src/common/opencl.c:1449 -msgid "" -"multiple GPUs detected - OpenCL scheduling profile has been set accordingly" -msgstr "" -"Multiple GPUs detected - OpenCL scheduling profile has been set accordingly" - -#: ../src/common/opencl.c:1462 -msgid "" -"very fast GPU detected - OpenCL scheduling profile has been set accordingly" -msgstr "" -"Very fast GPU detected - OpenCL scheduling profile has been set accordingly" +#: ../src/common/opencl.c:1454 +msgid "OpenCL scheduling profile set to default, setup has changed" +msgstr "OpenCL scheduling profile set to default, setup has changed" -#: ../src/common/opencl.c:1471 -msgid "OpenCL scheduling profile set to default" -msgstr "OpenCL scheduling profile set to default" +#: ../src/common/opencl.c:2283 +#, c-format +msgid "building OpenCL program %s for %s" +msgstr "Building OpenCL program %s for %s" -#: ../src/common/pdf.h:88 ../src/iop/lens.cc:3441 +#: ../src/common/pdf.h:88 ../src/iop/lens.cc:4071 #: ../src/libs/filters/focal.c:74 ../src/libs/print_settings.c:81 msgid "mm" msgstr "mm" -#: ../src/common/pdf.h:89 ../src/libs/export.c:520 ../src/libs/export.c:1145 +#: ../src/common/pdf.h:89 ../src/libs/export.c:555 ../src/libs/export.c:1241 #: ../src/libs/print_settings.c:81 msgid "cm" msgstr "cm" @@ -6583,7 +6897,7 @@ msgid "\"" msgstr "\"" -#: ../src/common/pdf.h:104 ../src/iop/borders.c:958 +#: ../src/common/pdf.h:104 ../src/iop/borders.c:971 msgid "A4" msgstr "A4" @@ -6622,66 +6936,65 @@ msgid "no images selected to apply rating" msgstr "No images selected to apply rating" -#: ../src/common/ratings.c:275 ../src/libs/metadata_view.c:351 +#: ../src/common/ratings.c:274 ../src/libs/metadata_view.c:355 msgid "image rejected" msgstr "Image rejected" -#: ../src/common/ratings.c:277 +#: ../src/common/ratings.c:276 msgid "image rated to 0 star" msgstr "Image rated to 0 star" -#: ../src/common/ratings.c:279 +#: ../src/common/ratings.c:278 #, c-format msgid "image rated to %s" msgstr "Image rated to %s" -#: ../src/common/ratings.c:306 ../src/libs/select.c:39 -#: ../src/views/lighttable.c:766 +#: ../src/common/ratings.c:305 ../src/views/lighttable.c:766 msgid "select" msgstr "Select" -#: ../src/common/ratings.c:307 +#: ../src/common/ratings.c:306 msgid "upgrade" msgstr "Upgrade" -#: ../src/common/ratings.c:308 +#: ../src/common/ratings.c:307 msgid "downgrade" msgstr "Downgrade" -#: ../src/common/ratings.c:312 +#: ../src/common/ratings.c:311 msgid "zero" msgstr "Zero" -#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:277 +#: ../src/common/ratings.c:312 ../src/libs/filters/rating_range.c:304 msgid "one" msgstr "One" -#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:278 +#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:305 msgid "two" msgstr "Two" -#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:279 +#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:306 msgid "three" msgstr "Three" -#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:280 +#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:307 msgid "four" msgstr "Four" -#: ../src/common/ratings.c:317 ../src/libs/filters/rating_range.c:281 +#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:308 msgid "five" msgstr "Five" -#: ../src/common/ratings.c:318 +#: ../src/common/ratings.c:317 msgid "reject" msgstr "Reject" -#: ../src/common/styles.c:244 +#: ../src/common/styles.c:243 #, c-format msgid "style with name '%s' already exists" msgstr "Style with name '%s' already exists" -#: ../src/common/styles.c:270 ../src/common/styles.c:1776 +#: ../src/common/styles.c:270 ../src/common/styles.c:1783 #: ../src/libs/styles.c:54 msgid "styles" msgstr "Styles" @@ -6691,57 +7004,57 @@ msgid "style named '%s' successfully created" msgstr "Style named '%s' successfully created" -#: ../src/common/styles.c:689 ../src/common/styles.c:719 -#: ../src/common/styles.c:759 ../src/dtgtk/culling.c:1097 +#: ../src/common/styles.c:688 ../src/common/styles.c:718 +#: ../src/common/styles.c:758 ../src/dtgtk/culling.c:1066 msgid "no image selected!" msgstr "No images selected!" -#: ../src/common/styles.c:693 +#: ../src/common/styles.c:692 #, c-format msgid "style %s successfully applied!" msgstr "Style %s successfully applied!" -#: ../src/common/styles.c:709 +#: ../src/common/styles.c:708 msgid "no images nor styles selected!" msgstr "No images nor styles selected!" -#: ../src/common/styles.c:714 +#: ../src/common/styles.c:713 msgid "no styles selected!" msgstr "No styles selected!" -#: ../src/common/styles.c:744 +#: ../src/common/styles.c:743 msgid "style successfully applied!" msgid_plural "styles successfully applied!" msgstr[0] "Style successfully applied!" msgstr[1] "Styles successfully applied!" -#: ../src/common/styles.c:840 +#: ../src/common/styles.c:838 #, c-format msgid "module `%s' version mismatch: %d != %d" msgstr "Module `%s' version mismatch: %d != %d" -#: ../src/common/styles.c:1124 +#: ../src/common/styles.c:1125 #, c-format msgid "applied style `%s' on current image" msgstr "Applied style `%s' on current image" -#: ../src/common/styles.c:1378 +#: ../src/common/styles.c:1383 #, c-format msgid "failed to overwrite style file for %s" msgstr "Failed to overwrite style file for %s" -#: ../src/common/styles.c:1384 +#: ../src/common/styles.c:1389 #, c-format msgid "style file for %s exists" msgstr "Style file for %s exists" -#: ../src/common/styles.c:1667 +#: ../src/common/styles.c:1674 #, c-format msgid "style %s was successfully imported" msgstr "Style %s was successfully imported" #. Failed to open file, clean up. -#: ../src/common/styles.c:1711 +#: ../src/common/styles.c:1718 #, c-format msgid "could not read file `%s'" msgstr "Could not read file `%s'" @@ -6754,10 +7067,18 @@ msgid "below sea level" msgstr "below sea level" -#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:880 +#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:907 msgid "m" msgstr "m" +#: ../src/common/variables.c:712 ../src/develop/imageop_gui.c:210 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "yes" +msgstr "Yes" + #. Column 1 - "make" of the camera. #. * Column 2 - "model" (use the "make" and "model" as provided by DCRaw). #. * Column 3 - WB name. @@ -6770,7 +7091,7 @@ #. * #. * WB name is standardized to one of the following: #. "Sunlight" and other variation should be switched to this: -#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:323 +#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:320 msgid "daylight" msgstr "Daylight" @@ -6870,7 +7191,7 @@ msgid "underwater" msgstr "Underwater" -#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2447 +#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2286 msgid "black & white" msgstr "Black & white" @@ -6890,85 +7211,85 @@ msgid "auto WB" msgstr "Auto WB" -#: ../src/control/control.c:66 ../src/gui/accelerators.c:138 -#: ../src/views/darkroom.c:2162 +#: ../src/control/control.c:69 ../src/gui/accelerators.c:156 +#: ../src/views/darkroom.c:2029 msgid "hold" msgstr "Hold" -#: ../src/control/control.c:102 ../src/control/control.c:205 +#: ../src/control/control.c:108 ../src/control/control.c:214 msgid "modifiers" msgstr "Modifiers" -#: ../src/control/control.c:111 +#: ../src/control/control.c:117 msgctxt "accel" msgid "global" msgstr "Global" -#: ../src/control/control.c:118 +#: ../src/control/control.c:124 msgctxt "accel" msgid "views" msgstr "Views" -#: ../src/control/control.c:125 +#: ../src/control/control.c:131 msgctxt "accel" msgid "thumbtable" msgstr "Thumbtable" -#: ../src/control/control.c:132 +#: ../src/control/control.c:138 msgctxt "accel" msgid "utility modules" msgstr "Utility modules" -#: ../src/control/control.c:139 +#: ../src/control/control.c:145 msgctxt "accel" msgid "format" msgstr "Format" -#: ../src/control/control.c:146 +#: ../src/control/control.c:152 msgctxt "accel" msgid "storage" msgstr "Storage" -#: ../src/control/control.c:153 +#: ../src/control/control.c:159 msgctxt "accel" msgid "processing modules" msgstr "Processing modules" -#: ../src/control/control.c:160 +#: ../src/control/control.c:166 msgctxt "accel" msgid "<blending>" msgstr "<blending>" -#: ../src/control/control.c:167 +#: ../src/control/control.c:173 msgctxt "accel" msgid "Lua scripts" msgstr "Lua scripts" -#: ../src/control/control.c:174 +#: ../src/control/control.c:180 msgctxt "accel" msgid "fallbacks" msgstr "Fallbacks" -#: ../src/control/control.c:183 +#: ../src/control/control.c:189 msgctxt "accel" msgid "<focused>" msgstr "<focused>" -#: ../src/control/control.c:202 +#: ../src/control/control.c:209 msgid "show accels window" msgstr "Show accels window" -#: ../src/control/control.c:363 +#: ../src/control/control.c:371 msgid "working..." msgstr "Working..." -#: ../src/control/crawler.c:425 +#: ../src/control/crawler.c:418 #, c-format msgid "ERROR: %s NOT synced XMP → DB" msgstr "ERROR: %s NOT synced XMP → DB" -#: ../src/control/crawler.c:426 ../src/control/crawler.c:492 -#: ../src/control/crawler.c:561 +#: ../src/control/crawler.c:419 ../src/control/crawler.c:485 +#: ../src/control/crawler.c:554 msgid "" "ERROR: cannot write the database. the destination may be full, offline or " "read-only." @@ -6976,18 +7297,18 @@ "ERROR: cannot write the database. The destination may be full, offline or " "read-only." -#: ../src/control/crawler.c:433 +#: ../src/control/crawler.c:426 #, c-format msgid "SUCCESS: %s synced XMP → DB" msgstr "SUCCESS: %s synced XMP → DB" -#: ../src/control/crawler.c:455 +#: ../src/control/crawler.c:448 #, c-format msgid "ERROR: %s NOT synced DB → XMP" msgstr "ERROR: %s NOT synced DB → XMP" -#: ../src/control/crawler.c:457 ../src/control/crawler.c:516 -#: ../src/control/crawler.c:582 +#: ../src/control/crawler.c:450 ../src/control/crawler.c:509 +#: ../src/control/crawler.c:575 #, c-format msgid "" "ERROR: cannot write %s \n" @@ -6996,129 +7317,133 @@ "ERROR: cannot write %s \n" "The destination may be full, offline or read-only." -#: ../src/control/crawler.c:463 +#: ../src/control/crawler.c:456 #, c-format msgid "SUCCESS: %s synced DB → XMP" msgstr "SUCCESS: %s synced DB → XMP" -#: ../src/control/crawler.c:489 +#: ../src/control/crawler.c:482 #, c-format msgid "ERROR: %s NOT synced new (XMP) → old (DB)" msgstr "ERROR: %s NOT synced new (XMP) → old (DB)" -#: ../src/control/crawler.c:499 +#: ../src/control/crawler.c:492 #, c-format msgid "SUCCESS: %s synced new (XMP) → old (DB)" msgstr "SUCCESS: %s synced new (XMP) → old (DB)" -#: ../src/control/crawler.c:513 +#: ../src/control/crawler.c:506 #, c-format msgid "ERROR: %s NOT synced new (DB) → old (XMP)" msgstr "ERROR: %s NOT synced new (DB) → old (XMP)" -#: ../src/control/crawler.c:521 +#: ../src/control/crawler.c:514 #, c-format msgid "SUCCESS: %s synced new (DB) → old (XMP)" msgstr "SUCCESS: %s synced new (DB) → old (XMP)" -#: ../src/control/crawler.c:530 ../src/control/crawler.c:598 +#: ../src/control/crawler.c:523 ../src/control/crawler.c:591 #, c-format msgid "EXCEPTION: %s has inconsistent timestamps" msgstr "EXCEPTION: %s has inconsistent timestamps" -#: ../src/control/crawler.c:558 +#: ../src/control/crawler.c:551 #, c-format msgid "ERROR: %s NOT synced old (XMP) → new (DB)" msgstr "ERROR: %s NOT synced old (XMP) → new (DB)" -#: ../src/control/crawler.c:567 +#: ../src/control/crawler.c:560 #, c-format msgid "SUCCESS: %s synced old (XMP) → new (DB)" msgstr "SUCCESS: %s synced old (XMP) → new (DB)" -#: ../src/control/crawler.c:579 +#: ../src/control/crawler.c:572 #, c-format msgid "ERROR: %s NOT synced old (DB) → new (XMP)" msgstr "ERROR: %s NOT synced old (DB) → new (XMP)" -#: ../src/control/crawler.c:588 +#: ../src/control/crawler.c:581 #, c-format msgid "SUCCESS: %s synced old (DB) → new (XMP)" msgstr "SUCCESS: %s synced old (DB) → new (XMP)" -#: ../src/control/crawler.c:670 +#: ../src/control/crawler.c:663 #, c-format msgid "%id %02dh %02dm %02ds" msgstr "%id %02dh %02dm %02ds" -#: ../src/control/crawler.c:740 ../src/imageio/storage/disk.c:168 -#: ../src/imageio/storage/gallery.c:154 ../src/imageio/storage/latex.c:153 -#: ../src/imageio/storage/latex.c:171 +#: ../src/control/crawler.c:716 +msgid "XMP" +msgstr "XMP" + +#: ../src/control/crawler.c:733 ../src/imageio/storage/disk.c:250 +#: ../src/imageio/storage/gallery.c:202 ../src/imageio/storage/latex.c:190 +#: ../src/imageio/storage/latex.c:208 msgid "path" msgstr "Path" -#: ../src/control/crawler.c:749 +#: ../src/control/crawler.c:742 msgid "XMP timestamp" msgstr "XMP timestamp" -#: ../src/control/crawler.c:754 +#: ../src/control/crawler.c:747 msgid "database timestamp" msgstr "Database timestamp" -#: ../src/control/crawler.c:759 +#: ../src/control/crawler.c:752 msgid "newest" msgstr "Newest" -#: ../src/control/crawler.c:765 +#: ../src/control/crawler.c:758 msgid "time difference" msgstr "Time difference" -#: ../src/control/crawler.c:777 +#: ../src/control/crawler.c:770 msgid "updated XMP sidecar files found" msgstr "Updated XMP sidecar files found" -#: ../src/control/crawler.c:778 +#: ../src/control/crawler.c:771 msgid "_close" msgstr "_Close" #. setup selection accelerators #. action-box -#: ../src/control/crawler.c:793 ../src/dtgtk/thumbtable.c:2578 -#: ../src/libs/import.c:1722 ../src/libs/select.c:135 +#: ../src/control/crawler.c:786 ../src/dtgtk/thumbtable.c:2755 +#: ../src/libs/import.c:1732 ../src/libs/select.c:136 msgid "select all" msgstr "Select all" -#: ../src/control/crawler.c:794 ../src/dtgtk/thumbtable.c:2580 -#: ../src/libs/import.c:1726 ../src/libs/select.c:139 +#: ../src/control/crawler.c:787 ../src/dtgtk/thumbtable.c:2757 +#: ../src/libs/import.c:1736 ../src/libs/select.c:140 msgid "select none" msgstr "Select none" -#: ../src/control/crawler.c:795 ../src/dtgtk/thumbtable.c:2582 -#: ../src/libs/select.c:143 +#: ../src/control/crawler.c:788 ../src/dtgtk/thumbtable.c:2759 +#: ../src/libs/select.c:144 msgid "invert selection" msgstr "Invert selection" -#: ../src/control/crawler.c:807 +#: ../src/control/crawler.c:800 msgid "on the selection:" msgstr "On the selection:" -#: ../src/control/crawler.c:808 +#: ../src/control/crawler.c:801 msgid "keep the XMP edit" msgstr "Keep the XMP edit" -#: ../src/control/crawler.c:809 +#: ../src/control/crawler.c:802 msgid "keep the database edit" msgstr "Keep the database edit" -#: ../src/control/crawler.c:810 +#: ../src/control/crawler.c:803 msgid "keep the newest edit" msgstr "Keep the newest edit" -#: ../src/control/crawler.c:811 +#: ../src/control/crawler.c:804 msgid "keep the oldest edit" msgstr "Keep the oldest edit" -#: ../src/control/crawler.c:836 +#: ../src/control/crawler.c:829 msgid "synchronization log" msgstr "Synchronization log" @@ -7148,6 +7473,10 @@ msgid "starting to import images from camera" msgstr "Starting to import images from camera" +#: ../src/control/jobs/camera_jobs.c:302 +msgid "failed to import images from camera." +msgstr "Failed to import images from camera." + #: ../src/control/jobs/camera_jobs.c:309 #, c-format msgid "importing %d image from camera" @@ -7253,7 +7582,8 @@ msgid "_remove from library" msgstr "_Remove from library" -#: ../src/control/jobs/control_jobs.c:884 +#: ../src/control/jobs/control_jobs.c:884 ../src/libs/styles.c:440 +#: ../src/libs/styles.c:625 msgid "_skip" msgstr "_Skip" @@ -7351,42 +7681,42 @@ msgid "exporting %d / %d to %s" msgstr "Exporting %d / %d to %s" -#: ../src/control/jobs/control_jobs.c:1459 ../src/views/darkroom.c:800 +#: ../src/control/jobs/control_jobs.c:1451 ../src/views/darkroom.c:721 #: ../src/views/print.c:369 #, c-format msgid "image `%s' is currently unavailable" msgstr "Image `%s' is currently unavailable" -#: ../src/control/jobs/control_jobs.c:1551 +#: ../src/control/jobs/control_jobs.c:1554 msgid "merge HDR image" msgstr "Merge HDR image" -#: ../src/control/jobs/control_jobs.c:1565 +#: ../src/control/jobs/control_jobs.c:1568 msgid "duplicate images" msgstr "Duplicate images" -#: ../src/control/jobs/control_jobs.c:1571 +#: ../src/control/jobs/control_jobs.c:1574 msgid "flip images" msgstr "Flip images" -#: ../src/control/jobs/control_jobs.c:1578 +#: ../src/control/jobs/control_jobs.c:1581 msgid "set monochrome images" msgstr "Set monochrome images" #. get all selected images now, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1585 +#: ../src/control/jobs/control_jobs.c:1588 msgid "remove images" msgstr "Remove images" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove image?" msgstr "Remove image?" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove images?" msgstr "Remove images?" -#: ../src/control/jobs/control_jobs.c:1599 +#: ../src/control/jobs/control_jobs.c:1602 #, c-format msgid "" "do you really want to remove %d image from darktable\n" @@ -7402,21 +7732,21 @@ "(without deleting files on disk)?" #. first get all selected images, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1614 -#: ../src/control/jobs/control_jobs.c:1647 +#: ../src/control/jobs/control_jobs.c:1617 +#: ../src/control/jobs/control_jobs.c:1650 msgid "delete images" msgstr "Delete images" -#: ../src/control/jobs/control_jobs.c:1630 -#: ../src/control/jobs/control_jobs.c:1660 +#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1663 msgid "delete image?" msgstr "Delete image?" -#: ../src/control/jobs/control_jobs.c:1630 +#: ../src/control/jobs/control_jobs.c:1633 msgid "delete images?" msgstr "Delete images?" -#: ../src/control/jobs/control_jobs.c:1631 +#: ../src/control/jobs/control_jobs.c:1634 #, c-format msgid "" "do you really want to physically delete %d image\n" @@ -7431,14 +7761,14 @@ "Do you really want to physically delete %d images\n" "(using trash if possible)?" -#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1636 #, c-format msgid "do you really want to physically delete %d image from disk?" msgid_plural "do you really want to physically delete %d images from disk?" msgstr[0] "Do you really want to physically delete %d image from disk?" msgstr[1] "Do you really want to physically delete %d images from disk?" -#: ../src/control/jobs/control_jobs.c:1661 +#: ../src/control/jobs/control_jobs.c:1664 msgid "" "do you really want to physically delete selected image (using trash if " "possible)?" @@ -7446,26 +7776,26 @@ "Do you really want to physically delete selected image (using trash if " "possible)?" -#: ../src/control/jobs/control_jobs.c:1662 +#: ../src/control/jobs/control_jobs.c:1665 msgid "do you really want to physically delete selected image from disk?" msgstr "Do you really want to physically delete selected image from disk?" -#: ../src/control/jobs/control_jobs.c:1677 +#: ../src/control/jobs/control_jobs.c:1680 msgid "move images" msgstr "Move images" -#: ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 msgid "_select as destination" msgstr "_Select as destination" -#: ../src/control/jobs/control_jobs.c:1708 +#: ../src/control/jobs/control_jobs.c:1711 msgid "move image?" msgid_plural "move images?" msgstr[0] "Move image?" msgstr[1] "Move images?" -#: ../src/control/jobs/control_jobs.c:1709 +#: ../src/control/jobs/control_jobs.c:1712 #, c-format msgid "" "do you really want to physically move %d image to %s?\n" @@ -7480,115 +7810,110 @@ "Do you really want to physically move %d images to %s?\n" "(all duplicates will be moved along)" -#: ../src/control/jobs/control_jobs.c:1731 +#: ../src/control/jobs/control_jobs.c:1734 msgid "copy images" msgstr "Copy images" -#: ../src/control/jobs/control_jobs.c:1762 +#: ../src/control/jobs/control_jobs.c:1765 msgid "copy image?" msgid_plural "copy images?" msgstr[0] "Copy image?" msgstr[1] "Copy images?" -#: ../src/control/jobs/control_jobs.c:1763 +#: ../src/control/jobs/control_jobs.c:1766 #, c-format msgid "do you really want to physically copy %d image to %s?" msgid_plural "do you really want to physically copy %d images to %s?" msgstr[0] "Do you really want to physically copy %d image to %s?" msgstr[1] "Do you really want to physically copy %d images to %s?" -#: ../src/control/jobs/control_jobs.c:1781 -#: ../src/control/jobs/control_jobs.c:1789 +#: ../src/control/jobs/control_jobs.c:1784 +#: ../src/control/jobs/control_jobs.c:1792 msgid "local copy images" msgstr "Local copy images" -#: ../src/control/jobs/control_jobs.c:1796 ../src/libs/image.c:604 +#: ../src/control/jobs/control_jobs.c:1799 ../src/libs/image.c:674 msgid "refresh EXIF" msgstr "Refresh EXIF" -#: ../src/control/jobs/control_jobs.c:1860 +#: ../src/control/jobs/control_jobs.c:1863 #, c-format msgid "failed to get parameters from storage module `%s', aborting export.." msgstr "Failed to get parameters from storage module `%s', aborting export.." -#: ../src/control/jobs/control_jobs.c:1876 +#: ../src/control/jobs/control_jobs.c:1879 msgid "export images" msgstr "Export images" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "adding time offset to %d image" msgstr "Adding time offset to %d image" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "setting date/time of %d image" msgstr "Setting date/time of %d image" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "adding time offset to %d images" msgstr "Adding time offset to %d images" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "setting date/time of %d images" msgstr "Setting date/time of %d images" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "added time offset to %d image" msgstr "Added time offset to %d image" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "set date/time of %d image" msgstr "Set date/time of %d image" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "added time offset to %d images" msgstr "Added time offset to %d images" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "set date/time of %d images" msgstr "Set date/time of %d images" -#: ../src/control/jobs/control_jobs.c:2014 +#: ../src/control/jobs/control_jobs.c:2017 msgid "time offset" msgstr "Time offset" -#: ../src/control/jobs/control_jobs.c:2042 ../src/libs/copy_history.c:414 +#: ../src/control/jobs/control_jobs.c:2045 ../src/libs/copy_history.c:414 msgid "write sidecar files" msgstr "Write sidecar files" -#: ../src/control/jobs/control_jobs.c:2256 ../src/control/jobs/film_jobs.c:297 +#: ../src/control/jobs/control_jobs.c:2259 ../src/control/jobs/film_jobs.c:297 #, c-format msgid "importing %d image" msgid_plural "importing %d images" msgstr[0] "Importing %d image" msgstr[1] "Importing %d images" -#: ../src/control/jobs/control_jobs.c:2292 +#: ../src/control/jobs/control_jobs.c:2295 #, c-format msgid "importing %d/%d image" msgid_plural "importing %d/%d images" msgstr[0] "Importing %d/%d image" msgstr[1] "Importing %d/%d images" -#: ../src/control/jobs/control_jobs.c:2300 +#: ../src/control/jobs/control_jobs.c:2305 #, c-format msgid "imported %d image" msgid_plural "imported %d images" msgstr[0] "Imported %d image" msgstr[1] "Imported %d images" -#: ../src/control/jobs/control_jobs.c:2347 ../src/gui/preferences.c:530 -#: ../src/libs/import.c:172 -msgid "import" -msgstr "Import" - #: ../src/control/jobs/film_jobs.c:73 ../src/control/jobs/film_jobs.c:109 msgid "import images" msgstr "Import images" @@ -7606,11 +7931,11 @@ msgid "import image" msgstr "Import image" -#: ../src/develop/blend.c:322 +#: ../src/develop/blend.c:315 msgid "detail mask blending error" msgstr "Detail mask blending error" -#: ../src/develop/blend.c:864 +#: ../src/develop/blend.c:904 msgid "detail mask CL blending problem" msgstr "Detail mask CL blending problem" @@ -7811,8 +8136,7 @@ msgid "reverse" msgstr "Reverse" -#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:413 -#: ../src/libs/metadata.c:631 ../src/libs/metadata_view.c:1193 +#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:442 msgid "default" msgstr "Default" @@ -7820,35 +8144,35 @@ msgid "RAW" msgstr "RAW" -#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2014 +#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2030 msgid "RGB (display)" msgstr "RGB (display)" -#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2027 +#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2043 msgid "RGB (scene)" msgstr "RGB (scene)" #. DEVELOP_MASK_ENABLED -#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3419 +#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3438 msgid "uniformly" msgstr "Uniformly" -#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:3429 ../src/develop/imageop.c:2660 +#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:3448 ../src/develop/imageop.c:2669 msgid "drawn mask" msgstr "Drawn mask" -#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2512 -#: ../src/develop/blend_gui.c:3440 ../src/develop/imageop.c:2662 +#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2528 +#: ../src/develop/blend_gui.c:3459 ../src/develop/imageop.c:2671 msgid "parametric mask" msgstr "Parametric mask" -#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2951 -#: ../src/develop/blend_gui.c:3467 ../src/develop/imageop.c:2664 +#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2966 +#: ../src/develop/blend_gui.c:3486 ../src/develop/imageop.c:2673 msgid "raster mask" msgstr "Raster mask" -#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3454 +#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3473 msgid "drawn & parametric mask" msgstr "Drawn & parametric mask" @@ -7884,177 +8208,177 @@ msgid "input after blur" msgstr "Input after blur" -#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:129 -#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/libs/live_view.c:362 +#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:157 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/libs/live_view.c:362 msgid "on" msgstr "On" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "input" msgstr "Input" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "output" msgstr "Output" -#: ../src/develop/blend_gui.c:995 +#: ../src/develop/blend_gui.c:998 msgid " (zoom)" msgstr " (zoom)" -#: ../src/develop/blend_gui.c:1003 +#: ../src/develop/blend_gui.c:1006 msgid " (log)" msgstr " (log)" -#: ../src/develop/blend_gui.c:1988 +#: ../src/develop/blend_gui.c:2004 msgid "reset to default blend colorspace" msgstr "Reset to default blend colorspace" -#: ../src/develop/blend_gui.c:2044 +#: ../src/develop/blend_gui.c:2060 msgid "reset and hide output channels" msgstr "Reset and hide output channels" -#: ../src/develop/blend_gui.c:2051 +#: ../src/develop/blend_gui.c:2067 msgid "show output channels" msgstr "Show output channels" -#: ../src/develop/blend_gui.c:2290 ../src/develop/blend_gui.c:2357 -#: ../src/iop/tonecurve.c:1134 +#: ../src/develop/blend_gui.c:2306 ../src/develop/blend_gui.c:2373 +#: ../src/iop/tonecurve.c:1156 msgid "L" msgstr "L" -#: ../src/develop/blend_gui.c:2290 +#: ../src/develop/blend_gui.c:2306 msgid "sliders for L channel" msgstr "Sliders for L channel" -#: ../src/develop/blend_gui.c:2295 ../src/iop/tonecurve.c:1135 +#: ../src/develop/blend_gui.c:2311 ../src/iop/tonecurve.c:1157 msgid "a" msgstr "a" -#: ../src/develop/blend_gui.c:2295 +#: ../src/develop/blend_gui.c:2311 msgid "sliders for a channel" msgstr "Sliders for a channel" -#: ../src/develop/blend_gui.c:2299 +#: ../src/develop/blend_gui.c:2315 msgid "green/red" msgstr "Green/red" -#: ../src/develop/blend_gui.c:2300 ../src/iop/tonecurve.c:1136 +#: ../src/develop/blend_gui.c:2316 ../src/iop/tonecurve.c:1158 msgid "b" msgstr "b" -#: ../src/develop/blend_gui.c:2300 +#: ../src/develop/blend_gui.c:2316 msgid "sliders for b channel" msgstr "Sliders for b channel" -#: ../src/develop/blend_gui.c:2304 +#: ../src/develop/blend_gui.c:2320 msgid "blue/yellow" msgstr "Blue/yellow" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "C" msgstr "C" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "sliders for chroma channel (of LCh)" msgstr "Sliders for chroma channel (of LCh)" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "h" msgstr "h" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "sliders for hue channel (of LCh)" msgstr "Sliders for hue channel (of LCh)" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "g" msgstr "g" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "sliders for gray value" msgstr "Sliders for gray value" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/denoiseprofile.c:3710 -#: ../src/iop/rawdenoise.c:894 ../src/iop/rgbcurve.c:1358 -#: ../src/iop/rgblevels.c:1003 ../src/libs/filters/colors.c:137 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/denoiseprofile.c:3714 +#: ../src/iop/rawdenoise.c:910 ../src/iop/rgbcurve.c:1358 +#: ../src/iop/rgblevels.c:1043 ../src/libs/filters/colors.c:137 msgid "R" msgstr "R" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 msgid "sliders for red channel" msgstr "Sliders for red channel" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/denoiseprofile.c:3711 -#: ../src/iop/rawdenoise.c:895 ../src/iop/rgbcurve.c:1359 -#: ../src/iop/rgblevels.c:1004 ../src/libs/filters/colors.c:143 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/denoiseprofile.c:3715 +#: ../src/iop/rawdenoise.c:911 ../src/iop/rgbcurve.c:1359 +#: ../src/iop/rgblevels.c:1044 ../src/libs/filters/colors.c:143 msgid "G" msgstr "G" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 msgid "sliders for green channel" msgstr "Sliders for green channel" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/denoiseprofile.c:3712 -#: ../src/iop/rawdenoise.c:896 ../src/iop/rgbcurve.c:1360 -#: ../src/iop/rgblevels.c:1005 ../src/libs/filters/colors.c:146 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/denoiseprofile.c:3716 +#: ../src/iop/rawdenoise.c:912 ../src/iop/rgbcurve.c:1360 +#: ../src/iop/rgblevels.c:1045 ../src/libs/filters/colors.c:146 msgid "B" msgstr "B" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 msgid "sliders for blue channel" msgstr "Sliders for blue channel" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "H" msgstr "H" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "sliders for hue channel (of HSL)" msgstr "Sliders for hue channel (of HSL)" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "S" msgstr "S" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "sliders for chroma channel (of HSL)" msgstr "Sliders for chroma channel (of HSL)" -#: ../src/develop/blend_gui.c:2357 +#: ../src/develop/blend_gui.c:2373 msgid "sliders for value channel (of HSL)" msgstr "Sliders for value channel (of HSL)" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "Jz" msgstr "Jz" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "sliders for value channel (of JzCzhz)" msgstr "Sliders for value channel (of JzCzhz)" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "Cz" msgstr "Cz" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "sliders for chroma channel (of JzCzhz)" msgstr "Sliders for chroma channel (of JzCzhz)" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "hz" msgstr "hz" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "sliders for hue channel (of JzCzhz)" msgstr "Sliders for hue channel (of JzCzhz)" -#: ../src/develop/blend_gui.c:2415 +#: ../src/develop/blend_gui.c:2431 msgid "" "adjustment based on input received by this module:\n" "* range defined by upper markers: blend fully\n" @@ -8066,7 +8390,7 @@ "* range defined by lower markers: do not blend at all\n" "* range between adjacent upper/lower markers: blend gradually" -#: ../src/develop/blend_gui.c:2419 +#: ../src/develop/blend_gui.c:2435 msgid "" "adjustment based on unblended output of this module:\n" "* range defined by upper markers: blend fully\n" @@ -8078,19 +8402,19 @@ "* range defined by lower markers: do not blend at all\n" "* range between adjacent upper/lower markers: blend gradually" -#: ../src/develop/blend_gui.c:2516 +#: ../src/develop/blend_gui.c:2532 msgid "reset blend mask settings" msgstr "Reset blend mask settings" -#: ../src/develop/blend_gui.c:2527 ../src/iop/atrous.c:1665 -#: ../src/iop/colorzones.c:2399 ../src/iop/denoiseprofile.c:3707 -#: ../src/iop/rawdenoise.c:891 ../src/iop/rgbcurve.c:1357 -#: ../src/iop/rgblevels.c:1002 ../src/iop/tonecurve.c:1133 +#: ../src/develop/blend_gui.c:2543 ../src/iop/atrous.c:1797 +#: ../src/iop/colorzones.c:2641 ../src/iop/denoiseprofile.c:3711 +#: ../src/iop/rawdenoise.c:907 ../src/iop/rgbcurve.c:1357 +#: ../src/iop/rgblevels.c:1041 ../src/iop/tonecurve.c:1155 msgid "channel" msgstr "Channel" -#: ../src/develop/blend_gui.c:2542 ../src/iop/colorzones.c:2413 -#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1142 +#: ../src/develop/blend_gui.c:2558 ../src/iop/colorzones.c:2660 +#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1164 msgid "" "pick GUI color from image\n" "ctrl+click or right-click to select an area" @@ -8098,12 +8422,12 @@ "Pick GUI color from image\n" "Ctrl+click or right-click to select an area" -#: ../src/develop/blend_gui.c:2545 ../src/iop/colorzones.c:2415 +#: ../src/develop/blend_gui.c:2561 ../src/iop/colorzones.c:2662 #: ../src/iop/rgbcurve.c:1369 msgid "show color" msgstr "Show color" -#: ../src/develop/blend_gui.c:2554 +#: ../src/develop/blend_gui.c:2570 msgid "" "set the range based on an area from the image\n" "drag to use the input image\n" @@ -8113,19 +8437,19 @@ "Drag to use the input image\n" "Ctrl+drag to use the output image" -#: ../src/develop/blend_gui.c:2557 +#: ../src/develop/blend_gui.c:2573 msgid "set range" msgstr "Set range" -#: ../src/develop/blend_gui.c:2560 +#: ../src/develop/blend_gui.c:2576 msgid "invert all channel's polarities" msgstr "Invert all channel's polarities" -#: ../src/develop/blend_gui.c:2584 +#: ../src/develop/blend_gui.c:2600 msgid "toggle polarity. best seen by enabling 'display mask'" msgstr "Toggle polarity. Best seen by enabling 'display mask'" -#: ../src/develop/blend_gui.c:2613 +#: ../src/develop/blend_gui.c:2629 msgid "" "double-click to reset.\n" "press 'a' to toggle available slider modes.\n" @@ -8137,170 +8461,204 @@ "Press 'c' to toggle view of channel data.\n" "Press 'm' to toggle mask view." -#: ../src/develop/blend_gui.c:2640 ../src/develop/blend_gui.c:3531 -#: ../src/iop/basicadj.c:600 ../src/iop/colorbalancergb.c:2090 -#: ../src/iop/exposure.c:1120 ../src/iop/exposure.c:1135 -#: ../src/iop/filmic.c:1503 ../src/iop/filmic.c:1516 ../src/iop/filmic.c:1558 -#: ../src/iop/filmicrgb.c:4440 ../src/iop/filmicrgb.c:4451 -#: ../src/iop/filmicrgb.c:4485 ../src/iop/filmicrgb.c:4495 -#: ../src/iop/graduatednd.c:1113 ../src/iop/negadoctor.c:1011 -#: ../src/iop/profile_gamma.c:643 ../src/iop/profile_gamma.c:649 -#: ../src/iop/relight.c:262 ../src/iop/soften.c:378 ../src/iop/toneequal.c:3326 -#: ../src/iop/toneequal.c:3329 ../src/iop/toneequal.c:3332 -#: ../src/iop/toneequal.c:3335 ../src/iop/toneequal.c:3338 -#: ../src/iop/toneequal.c:3341 ../src/iop/toneequal.c:3344 -#: ../src/iop/toneequal.c:3347 ../src/iop/toneequal.c:3350 -#: ../src/iop/toneequal.c:3472 ../src/iop/toneequal.c:3481 -#: ../src/iop/toneequal.c:3494 ../src/views/darkroom.c:2453 +#: ../src/develop/blend_gui.c:2656 ../src/develop/blend_gui.c:3577 +#: ../src/iop/basicadj.c:630 ../src/iop/colorbalancergb.c:2161 +#: ../src/iop/exposure.c:1138 ../src/iop/exposure.c:1153 +#: ../src/iop/filmic.c:1528 ../src/iop/filmic.c:1541 ../src/iop/filmic.c:1583 +#: ../src/iop/filmicrgb.c:4504 ../src/iop/filmicrgb.c:4515 +#: ../src/iop/filmicrgb.c:4549 ../src/iop/filmicrgb.c:4559 +#: ../src/iop/graduatednd.c:1082 ../src/iop/negadoctor.c:1030 +#: ../src/iop/profile_gamma.c:657 ../src/iop/profile_gamma.c:663 +#: ../src/iop/relight.c:258 ../src/iop/soften.c:373 ../src/iop/toneequal.c:3379 +#: ../src/iop/toneequal.c:3382 ../src/iop/toneequal.c:3385 +#: ../src/iop/toneequal.c:3388 ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3394 ../src/iop/toneequal.c:3397 +#: ../src/iop/toneequal.c:3400 ../src/iop/toneequal.c:3403 +#: ../src/iop/toneequal.c:3525 ../src/iop/toneequal.c:3534 +#: ../src/iop/toneequal.c:3547 ../src/views/darkroom.c:2292 msgid " EV" msgstr " EV" -#: ../src/develop/blend_gui.c:2642 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:2951 ../src/develop/blend_gui.c:3014 -#: ../src/develop/blend_gui.c:3499 ../src/develop/blend_gui.c:3529 -#: ../src/develop/blend_gui.c:3542 ../src/develop/blend_gui.c:3559 -#: ../src/develop/blend_gui.c:3583 ../src/develop/blend_gui.c:3593 -#: ../src/develop/blend_gui.c:3602 ../src/develop/blend_gui.c:3613 +#: ../src/develop/blend_gui.c:2658 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:2966 ../src/develop/blend_gui.c:3029 +#: ../src/develop/blend_gui.c:3545 ../src/develop/blend_gui.c:3575 +#: ../src/develop/blend_gui.c:3588 ../src/develop/blend_gui.c:3605 +#: ../src/develop/blend_gui.c:3629 ../src/develop/blend_gui.c:3641 +#: ../src/develop/blend_gui.c:3652 ../src/develop/blend_gui.c:3663 msgid "blend" msgstr "Blend" -#: ../src/develop/blend_gui.c:2642 +#: ../src/develop/blend_gui.c:2658 msgid "boost factor" msgstr "Boost factor" -#: ../src/develop/blend_gui.c:2645 +#: ../src/develop/blend_gui.c:2661 msgid "adjust the boost factor of the channel mask" msgstr "Adjust the boost factor of the channel mask" -#: ../src/develop/blend_gui.c:2682 +#: ../src/develop/blend_gui.c:2698 #, c-format msgid "%d shape used" msgid_plural "%d shapes used" msgstr[0] "%d shape used" msgstr[1] "%d shapes used" -#: ../src/develop/blend_gui.c:2687 ../src/develop/blend_gui.c:2743 -#: ../src/develop/blend_gui.c:2831 ../src/develop/blend_gui.c:2952 +#: ../src/develop/blend_gui.c:2703 ../src/develop/blend_gui.c:2759 +#: ../src/develop/blend_gui.c:2847 ../src/develop/blend_gui.c:2967 msgid "no mask used" msgstr "No mask used" -#: ../src/develop/blend_gui.c:2751 +#: ../src/develop/blend_gui.c:2767 msgid "toggle polarity of drawn mask" msgstr "Toggle polarity of drawn mask" -#: ../src/develop/blend_gui.c:2760 +#: ../src/develop/blend_gui.c:2776 msgid "show and edit mask elements" msgstr "Show and edit mask elements" -#: ../src/develop/blend_gui.c:2761 +#: ../src/develop/blend_gui.c:2777 msgid "show and edit in restricted mode" msgstr "Show and edit in restricted mode" -#: ../src/develop/blend_gui.c:2768 ../src/libs/masks.c:998 -#: ../src/libs/masks.c:1816 ../src/libs/masks.c:1820 +#: ../src/develop/blend_gui.c:2784 ../src/libs/masks.c:1014 +#: ../src/libs/masks.c:1812 ../src/libs/masks.c:1816 msgid "add gradient" msgstr "Add gradient" -#: ../src/develop/blend_gui.c:2769 +#: ../src/develop/blend_gui.c:2785 msgid "add multiple gradients" msgstr "Add multiple gradients" -#: ../src/develop/blend_gui.c:2776 ../src/iop/retouch.c:2238 -#: ../src/libs/masks.c:978 ../src/libs/masks.c:1852 ../src/libs/masks.c:1856 +#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2466 +#: ../src/libs/masks.c:994 ../src/libs/masks.c:1848 ../src/libs/masks.c:1852 msgid "add brush" msgstr "Add brush" -#: ../src/develop/blend_gui.c:2777 ../src/iop/retouch.c:2238 +#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2466 msgid "add multiple brush strokes" msgstr "Add multiple brush strokes" -#: ../src/develop/blend_gui.c:2784 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 ../src/libs/masks.c:993 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1829 +#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 ../src/libs/masks.c:1009 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1825 msgid "add path" msgstr "Add path" -#: ../src/develop/blend_gui.c:2785 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 +#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 msgid "add multiple paths" msgstr "Add multiple paths" -#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 ../src/libs/masks.c:988 ../src/libs/masks.c:1834 -#: ../src/libs/masks.c:1838 +#: ../src/develop/blend_gui.c:2808 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 ../src/libs/masks.c:1004 ../src/libs/masks.c:1830 +#: ../src/libs/masks.c:1834 msgid "add ellipse" msgstr "Add ellipse" -#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 +#: ../src/develop/blend_gui.c:2809 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 msgid "add multiple ellipses" msgstr "Add multiple ellipses" -#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 ../src/libs/masks.c:983 ../src/libs/masks.c:1843 -#: ../src/libs/masks.c:1847 +#: ../src/develop/blend_gui.c:2816 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 ../src/libs/masks.c:999 ../src/libs/masks.c:1839 +#: ../src/libs/masks.c:1843 msgid "add circle" msgstr "Add circle" -#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 +#: ../src/develop/blend_gui.c:2817 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 msgid "add multiple circles" msgstr "Add multiple circles" -#: ../src/develop/blend_gui.c:2961 +#: ../src/develop/blend_gui.c:2976 msgid "toggle polarity of raster mask" msgstr "Toggle polarity of raster mask" -#: ../src/develop/blend_gui.c:3101 +#: ../src/develop/blend_gui.c:3119 msgid "normal & difference" msgstr "Normal & difference" -#: ../src/develop/blend_gui.c:3106 +#: ../src/develop/blend_gui.c:3124 msgid "lighten" msgstr "Lighten" -#: ../src/develop/blend_gui.c:3113 +#: ../src/develop/blend_gui.c:3131 msgid "darken" msgstr "Darken" -#: ../src/develop/blend_gui.c:3120 +#: ../src/develop/blend_gui.c:3138 msgid "contrast enhancing" msgstr "Contrast enhancing" -#: ../src/develop/blend_gui.c:3127 ../src/develop/blend_gui.c:3150 +#: ../src/develop/blend_gui.c:3145 ../src/develop/blend_gui.c:3168 msgid "color channel" msgstr "Color channel" -#: ../src/develop/blend_gui.c:3138 ../src/develop/blend_gui.c:3153 +#: ../src/develop/blend_gui.c:3156 ../src/develop/blend_gui.c:3171 msgid "chromaticity & lightness" msgstr "Chromaticity & lightness" -#: ../src/develop/blend_gui.c:3145 +#: ../src/develop/blend_gui.c:3163 msgid "normal & arithmetic" msgstr "Normal & arithmetic" #. add deprecated blend mode -#: ../src/develop/blend_gui.c:3166 +#: ../src/develop/blend_gui.c:3184 msgid "deprecated" msgstr "Deprecated" -#: ../src/develop/blend_gui.c:3478 +#. should never happen: unknown blend mode +#: ../src/develop/blend_gui.c:3188 +#, c-format +msgid "unknown blend mode '%d' in module '%s'" +msgstr "Unknown blend mode '%d' in module '%s'" + +#: ../src/develop/blend_gui.c:3497 msgid "blending options" msgstr "Blending options" -#: ../src/develop/blend_gui.c:3500 ../src/libs/history.c:949 -msgid "blend mode" -msgstr "Blend mode" +#: ../src/develop/blend_gui.c:3516 +msgid "blend mask" +msgstr "Blend mask" + +#: ../src/develop/blend_gui.c:3520 +msgid "display mask and/or color channel" +msgstr "Display mask and/or color channel" + +#: ../src/develop/blend_gui.c:3525 +msgid "" +"display mask and/or color channel.\n" +"ctrl+click to display mask,\n" +"shift+click to display channel.\n" +"hover over parametric mask slider to select channel for display" +msgstr "" +"Display mask and/or color channel.\n" +"Ctrl+click to display mask,\n" +"Shift+click to display channel.\n" +"Hover over parametric mask slider to select channel for display" + +#: ../src/develop/blend_gui.c:3532 +msgid "temporarily switch off blend mask" +msgstr "Temporarily switch off blend mask" -#: ../src/develop/blend_gui.c:3503 +#: ../src/develop/blend_gui.c:3537 +msgid "" +"temporarily switch off blend mask.\n" +"only for module in focus" +msgstr "" +"Temporarily switch off blend mask.\n" +"Only for module in focus" + +#: ../src/develop/blend_gui.c:3549 msgid "choose blending mode" msgstr "Choose blending mode" -#: ../src/develop/blend_gui.c:3513 +#: ../src/develop/blend_gui.c:3559 msgid "toggle blend order" msgstr "Toggle blend order" -#: ../src/develop/blend_gui.c:3519 +#: ../src/develop/blend_gui.c:3565 msgid "" "toggle the blending order between the input and the output of the module,\n" "by default the output will be blended on top of the input,\n" @@ -8310,29 +8668,29 @@ "By default the output will be blended on top of the input,\n" "Order can be reversed by clicking on the icon (input on top of output)" -#: ../src/develop/blend_gui.c:3530 ../src/libs/history.c:953 -msgid "blend fulcrum" -msgstr "Blend fulcrum" +#: ../src/develop/blend_gui.c:3576 +msgid "fulcrum" +msgstr "Fulcrum" -#: ../src/develop/blend_gui.c:3534 +#: ../src/develop/blend_gui.c:3580 msgid "adjust the fulcrum used by some blending operations" msgstr "Adjust the fulcrum used by some blending operations" #. Add opacity/scale sliders to table -#: ../src/develop/blend_gui.c:3542 ../src/iop/watermark.c:1314 -#: ../src/libs/masks.c:104 +#: ../src/develop/blend_gui.c:3588 ../src/iop/watermark.c:1362 +#: ../src/libs/masks.c:105 msgid "opacity" msgstr "Opacity" -#: ../src/develop/blend_gui.c:3546 +#: ../src/develop/blend_gui.c:3591 msgid "set the opacity of the blending" msgstr "Set the opacity of the blending" -#: ../src/develop/blend_gui.c:3550 ../src/libs/history.c:956 +#: ../src/develop/blend_gui.c:3596 ../src/libs/history.c:956 msgid "combine masks" msgstr "Combine masks" -#: ../src/develop/blend_gui.c:3552 +#: ../src/develop/blend_gui.c:3598 msgid "" "how to combine individual drawn mask and different channels of parametric " "mask" @@ -8340,11 +8698,11 @@ "How to combine individual drawn mask and different channels of parametric " "mask" -#: ../src/develop/blend_gui.c:3559 +#: ../src/develop/blend_gui.c:3605 msgid "details threshold" msgstr "Details threshold" -#: ../src/develop/blend_gui.c:3563 +#: ../src/develop/blend_gui.c:3609 msgid "" "adjust the threshold for the details mask (using raw data),\n" "positive values select areas with strong details,\n" @@ -8354,11 +8712,11 @@ "Positive values select areas with strong details,\n" "Negative values select flat areas" -#: ../src/develop/blend_gui.c:3571 ../src/libs/history.c:959 +#: ../src/develop/blend_gui.c:3617 ../src/libs/history.c:959 msgid "feathering guide" msgstr "Feathering guide" -#: ../src/develop/blend_gui.c:3574 +#: ../src/develop/blend_gui.c:3620 msgid "" "choose to guide mask by input or output image and\n" "choose to apply feathering before or after mask blur" @@ -8366,28 +8724,28 @@ "Choose to guide mask by input or output image and\n" "choose to apply feathering before or after mask blur" -#: ../src/develop/blend_gui.c:3583 ../src/libs/history.c:958 +#: ../src/develop/blend_gui.c:3629 ../src/libs/history.c:958 msgid "feathering radius" msgstr "Feathering radius" -#: ../src/develop/blend_gui.c:3586 +#: ../src/develop/blend_gui.c:3632 msgid "spatial radius of feathering" msgstr "Spatial radius of feathering" -#: ../src/develop/blend_gui.c:3593 +#: ../src/develop/blend_gui.c:3641 msgid "blurring radius" msgstr "Blurring radius" -#: ../src/develop/blend_gui.c:3596 +#: ../src/develop/blend_gui.c:3644 msgid "radius for gaussian blur of blend mask" msgstr "Radius for gaussian blur of blend mask" -#: ../src/develop/blend_gui.c:3602 ../src/iop/retouch.c:2453 +#: ../src/develop/blend_gui.c:3652 ../src/iop/retouch.c:2738 #: ../src/libs/history.c:954 msgid "mask opacity" msgstr "Mask opacity" -#: ../src/develop/blend_gui.c:3606 +#: ../src/develop/blend_gui.c:3656 msgid "" "shifts and tilts the tone curve of the blend mask to adjust its brightness\n" "without affecting fully transparent/fully opaque regions" @@ -8395,56 +8753,36 @@ "Shifts and tilts the tone curve of the blend mask to adjust its brightness\n" "without affecting fully transparent/fully opaque regions" -#: ../src/develop/blend_gui.c:3613 ../src/libs/history.c:962 +#: ../src/develop/blend_gui.c:3663 ../src/libs/history.c:962 msgid "mask contrast" msgstr "Mask contrast" -#: ../src/develop/blend_gui.c:3617 +#: ../src/develop/blend_gui.c:3667 msgid "" "gives the tone curve of the blend mask an s-like shape to adjust its contrast" msgstr "" "Gives the tone curve of the blend mask an S-like shape to adjust its contrast" -#: ../src/develop/blend_gui.c:3621 +#: ../src/develop/blend_gui.c:3671 msgid "mask refinement" msgstr "Mask refinement" -#: ../src/develop/blend_gui.c:3625 -msgid "display mask and/or color channel" -msgstr "Display mask and/or color channel" - -#: ../src/develop/blend_gui.c:3630 -msgid "" -"display mask and/or color channel.\n" -"ctrl+click to display mask,\n" -"shift+click to display channel.\n" -"hover over parametric mask slider to select channel for display" -msgstr "" -"Display mask and/or color channel.\n" -"Ctrl+click to display mask,\n" -"Shift+click to display channel.\n" -"Hover over parametric mask slider to select channel for display" - -#: ../src/develop/blend_gui.c:3637 -msgid "temporarily switch off blend mask" -msgstr "Temporarily switch off blend mask" - -#: ../src/develop/blend_gui.c:3642 +#: ../src/develop/develop.c:732 msgid "" -"temporarily switch off blend mask.\n" -"only for module in focus" +"autosaving history has been disabled for this session because of a slow " +"drive used" msgstr "" -"Temporarily switch off blend mask.\n" -"Only for module in focus" +"Autosaving history has been disabled for this session because of a slow " +"drive used" -#: ../src/develop/develop.c:2303 +#: ../src/develop/develop.c:2202 #, c-format msgid "%s: module `%s' version mismatch: %d != %d" msgstr "%s: module `%s' version mismatch: %d != %d" -#: ../src/develop/develop.c:2834 -msgid "module duplicate, can't move new instance after the base one\n" -msgstr "Module duplicate, can't move new instance after the base one\n" +#: ../src/develop/develop.c:3016 +msgid "duplicate module, can't move new instance after the base one\n" +msgstr "Duplicate module, can't move new instance after the base one\n" #: ../src/develop/imageop.c:1031 msgid "new instance" @@ -8454,70 +8792,69 @@ msgid "duplicate instance" msgstr "Duplicate instance" -#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3739 -#: ../src/libs/masks.c:1152 +#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3755 +#: ../src/libs/masks.c:1146 msgid "move up" msgstr "Move up" -#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3740 -#: ../src/libs/masks.c:1157 +#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3756 +#: ../src/libs/masks.c:1151 msgid "move down" msgstr "Move down" #. delete button label and tooltip will be updated based on trash pref -#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3742 -#: ../src/gui/accelerators.c:155 ../src/gui/presets.c:562 -#: ../src/libs/image.c:285 ../src/libs/image.c:480 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 +#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3758 +#: ../src/gui/accelerators.c:173 ../src/libs/image.c:303 +#: ../src/libs/image.c:513 msgid "delete" msgstr "Delete" -#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3743 -#: ../src/libs/modulegroups.c:3464 ../src/libs/modulegroups.c:3815 +#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3759 +#: ../src/libs/modulegroups.c:3817 msgid "rename" msgstr "Rename" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched on" msgstr "'%s' is switched on" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched off" msgstr "'%s' is switched off" -#: ../src/develop/imageop.c:2654 +#: ../src/develop/imageop.c:2663 msgid "unknown mask" msgstr "Unknown mask" -#: ../src/develop/imageop.c:2658 +#: ../src/develop/imageop.c:2667 msgid "drawn + parametric mask" msgstr "Drawn + parametric mask" -#: ../src/develop/imageop.c:2667 +#: ../src/develop/imageop.c:2676 #, c-format msgid "this module has a `%s'" msgstr "This module has a `%s'" -#: ../src/develop/imageop.c:2672 +#: ../src/develop/imageop.c:2681 #, c-format msgid "taken from module %s" msgstr "Taken from module %s" -#: ../src/develop/imageop.c:2677 +#: ../src/develop/imageop.c:2686 msgid "click to display (module must be activated first)" msgstr "Click to display (module must be activated first)" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "purpose" msgstr "Purpose" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "process" msgstr "Process" -#: ../src/develop/imageop.c:2906 +#: ../src/develop/imageop.c:2917 msgid "" "multiple instance actions\n" "right-click creates new instance" @@ -8525,7 +8862,7 @@ "Multiple instance actions\n" "Right-click creates new instance" -#: ../src/develop/imageop.c:2921 +#: ../src/develop/imageop.c:2932 msgid "" "reset parameters\n" "ctrl+click to reapply any automatic presets" @@ -8533,7 +8870,7 @@ "Reset parameters\n" "Ctrl+click to reapply any automatic presets" -#: ../src/develop/imageop.c:2933 +#: ../src/develop/imageop.c:2944 msgid "" "presets\n" "right-click to apply on new instance" @@ -8541,15 +8878,15 @@ "Presets\n" "Right-click to apply on new instance" -#: ../src/develop/imageop.c:3183 ../src/develop/imageop.c:3205 +#: ../src/develop/imageop.c:3194 ../src/develop/imageop.c:3216 msgid "ERROR" msgstr "ERROR" -#: ../src/develop/imageop.c:3620 +#: ../src/develop/imageop.c:3622 msgid "unsupported input" msgstr "Unsupported input" -#: ../src/develop/imageop.c:3621 +#: ../src/develop/imageop.c:3623 msgid "" "you have placed this module at\n" "a position in the pipeline where\n" @@ -8561,49 +8898,49 @@ "the data format does not match\n" "its requirements." -#: ../src/develop/imageop.c:3738 ../src/develop/imageop.c:3748 -#: ../src/gui/accelerators.c:151 ../src/libs/lib.c:1414 +#: ../src/develop/imageop.c:3754 ../src/develop/imageop.c:3764 +#: ../src/gui/accelerators.c:169 ../src/libs/lib.c:1415 msgid "show" msgstr "Show" -#: ../src/develop/imageop.c:3741 ../src/libs/modulegroups.c:3310 -#: ../src/libs/modulegroups.c:3436 ../src/libs/modulegroups.c:3817 -#: ../src/libs/tagging.c:3248 +#: ../src/develop/imageop.c:3757 ../src/libs/modulegroups.c:3315 +#: ../src/libs/modulegroups.c:3438 ../src/libs/modulegroups.c:3819 +#: ../src/libs/tagging.c:3279 msgid "new" msgstr "New" -#: ../src/develop/imageop.c:3744 ../src/libs/duplicate.c:405 -#: ../src/libs/image.c:495 ../src/libs/modulegroups.c:3813 +#: ../src/develop/imageop.c:3760 ../src/libs/duplicate.c:411 +#: ../src/libs/image.c:534 ../src/libs/modulegroups.c:3815 msgid "duplicate" msgstr "Duplicate" -#: ../src/develop/imageop.c:3749 +#: ../src/develop/imageop.c:3765 msgid "enable" msgstr "Enable" -#: ../src/develop/imageop.c:3750 ../src/gui/accelerators.c:167 +#: ../src/develop/imageop.c:3766 ../src/gui/accelerators.c:185 msgid "focus" msgstr "Focus" -#: ../src/develop/imageop.c:3751 ../src/gui/accelerators.c:2617 +#: ../src/develop/imageop.c:3767 ../src/gui/accelerators.c:2874 msgid "instance" msgstr "Instance" -#: ../src/develop/imageop.c:3752 ../src/gui/accelerators.c:112 -#: ../src/gui/accelerators.c:122 ../src/gui/gtk.c:3009 ../src/gui/gtk.c:3056 -#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:603 -#: ../src/gui/styles_dialog.c:625 ../src/iop/atrous.c:1512 -#: ../src/libs/lib.c:1415 ../src/libs/modulegroups.c:3882 +#: ../src/develop/imageop.c:3768 ../src/gui/accelerators.c:130 +#: ../src/gui/accelerators.c:140 ../src/gui/gtk.c:3055 ../src/gui/gtk.c:3102 +#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:615 +#: ../src/gui/styles_dialog.c:637 ../src/iop/atrous.c:1626 +#: ../src/libs/lib.c:1416 ../src/libs/modulegroups.c:3884 msgid "reset" msgstr "Reset" #. Adding the outer container -#: ../src/develop/imageop.c:3753 ../src/gui/preferences.c:798 -#: ../src/libs/lib.c:1416 +#: ../src/develop/imageop.c:3769 ../src/gui/preferences.c:796 +#: ../src/libs/lib.c:1417 msgid "presets" msgstr "Presets" -#: ../src/develop/imageop.c:3773 +#: ../src/develop/imageop.c:3789 msgid "processing module" msgstr "Processing module" @@ -8616,54 +8953,54 @@ "%s\n" "Ctrl+click to %s" -#: ../src/develop/lightroom.c:1083 +#: ../src/develop/lightroom.c:1137 msgid "cannot find Lightroom XMP!" msgstr "Cannot find Lightroom XMP!" -#: ../src/develop/lightroom.c:1115 ../src/develop/lightroom.c:1137 -#: ../src/develop/lightroom.c:1157 +#: ../src/develop/lightroom.c:1169 ../src/develop/lightroom.c:1191 +#: ../src/develop/lightroom.c:1211 #, c-format msgid "`%s' is not a Lightroom XMP!" msgstr "`%s' is not a Lightroom XMP!" -#: ../src/develop/lightroom.c:1556 +#: ../src/develop/lightroom.c:1613 #, c-format msgid "%s has been imported" msgid_plural "%s have been imported" msgstr[0] "%s has been imported" msgstr[1] "%s have been imported" -#: ../src/develop/masks/brush.c:1356 ../src/develop/masks/brush.c:1410 +#: ../src/develop/masks/brush.c:1346 ../src/develop/masks/brush.c:1400 #, c-format msgid "hardness: %3.2f%%" msgstr "Hardness: %3.2f%%" -#: ../src/develop/masks/brush.c:1372 ../src/develop/masks/brush.c:1470 +#: ../src/develop/masks/brush.c:1362 ../src/develop/masks/brush.c:1460 #: ../src/develop/masks/circle.c:148 ../src/develop/masks/circle.c:193 #: ../src/develop/masks/ellipse.c:484 ../src/develop/masks/ellipse.c:546 -#: ../src/develop/masks/path.c:1273 +#: ../src/develop/masks/path.c:1255 #, c-format msgid "size: %3.2f%%" msgstr "Size: %3.2f%%" -#: ../src/develop/masks/brush.c:3247 +#: ../src/develop/masks/brush.c:3191 msgid "[BRUSH] change size" msgstr "[BRUSH] change size" -#: ../src/develop/masks/brush.c:3249 +#: ../src/develop/masks/brush.c:3193 msgid "[BRUSH] change hardness" msgstr "[BRUSH] change hardness" -#: ../src/develop/masks/brush.c:3251 +#: ../src/develop/masks/brush.c:3195 msgid "[BRUSH] change opacity" msgstr "[BRUSH] change opacity" -#: ../src/develop/masks/brush.c:3263 +#: ../src/develop/masks/brush.c:3207 #, c-format msgid "brush #%d" msgstr "Brush #%d" -#: ../src/develop/masks/brush.c:3276 +#: ../src/develop/masks/brush.c:3220 #, c-format msgid "" "<b>size</b>: scroll, <b>hardness</b>: shift+scroll\n" @@ -8672,35 +9009,35 @@ "<b>Size</b>: scroll, <b>Hardness</b>: Shift+scroll\n" "<b>Opacity</b>: Ctrl+scroll (%d%%)" -#: ../src/develop/masks/brush.c:3279 +#: ../src/develop/masks/brush.c:3223 msgid "<b>size</b>: scroll" msgstr "<b>Size</b>: scroll" #: ../src/develop/masks/circle.c:137 ../src/develop/masks/circle.c:181 #: ../src/develop/masks/ellipse.c:470 ../src/develop/masks/ellipse.c:531 -#: ../src/develop/masks/path.c:1205 +#: ../src/develop/masks/path.c:1187 #, c-format msgid "feather size: %3.2f%%" msgstr "Feather size: %3.2f%%" -#: ../src/develop/masks/circle.c:1510 +#: ../src/develop/masks/circle.c:1462 msgid "[CIRCLE] change size" msgstr "[CIRCLE] change size" -#: ../src/develop/masks/circle.c:1512 +#: ../src/develop/masks/circle.c:1464 msgid "[CIRCLE] change feather size" msgstr "[CIRCLE] change feather size" -#: ../src/develop/masks/circle.c:1514 +#: ../src/develop/masks/circle.c:1466 msgid "[CIRCLE] change opacity" msgstr "[CIRCLE] change opacity" -#: ../src/develop/masks/circle.c:1527 +#: ../src/develop/masks/circle.c:1479 #, c-format msgid "circle #%d" msgstr "Circle #%d" -#: ../src/develop/masks/circle.c:1538 ../src/develop/masks/path.c:3490 +#: ../src/develop/masks/circle.c:1490 ../src/develop/masks/path.c:3406 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8714,32 +9051,32 @@ msgid "rotation: %3.f°" msgstr "Rotation: %3.f°" -#: ../src/develop/masks/ellipse.c:2068 +#: ../src/develop/masks/ellipse.c:2015 msgid "[ELLIPSE] change size" msgstr "[ELLIPSE] change size" -#: ../src/develop/masks/ellipse.c:2071 +#: ../src/develop/masks/ellipse.c:2018 msgid "[ELLIPSE] change feather size" msgstr "[ELLIPSE] change feather size" -#: ../src/develop/masks/ellipse.c:2074 ../src/develop/masks/ellipse.c:2083 +#: ../src/develop/masks/ellipse.c:2021 ../src/develop/masks/ellipse.c:2030 msgid "[ELLIPSE] rotate shape" msgstr "[ELLIPSE] rotate shape" -#: ../src/develop/masks/ellipse.c:2077 +#: ../src/develop/masks/ellipse.c:2024 msgid "[ELLIPSE] change opacity" msgstr "[ELLIPSE] change opacity" -#: ../src/develop/masks/ellipse.c:2080 +#: ../src/develop/masks/ellipse.c:2027 msgid "[ELLIPSE] switch feathering mode" msgstr "[ELLIPSE] switch feathering mode" -#: ../src/develop/masks/ellipse.c:2090 +#: ../src/develop/masks/ellipse.c:2037 #, c-format msgid "ellipse #%d" msgstr "Ellipse #%d" -#: ../src/develop/masks/ellipse.c:2128 +#: ../src/develop/masks/ellipse.c:2075 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8748,11 +9085,11 @@ "<b>Size</b>: scroll, <b>Feather size</b>: Shift+scroll\n" "<b>Rotation</b>: Ctrl+Shift+scroll, <b>Opacity</b>: Ctrl+scroll (%d%%)" -#: ../src/develop/masks/ellipse.c:2132 +#: ../src/develop/masks/ellipse.c:2079 msgid "<b>rotate</b>: ctrl+drag" msgstr "<b>Rotate</b>: Ctrl+drag" -#: ../src/develop/masks/ellipse.c:2135 +#: ../src/develop/masks/ellipse.c:2082 #, c-format msgid "" "<b>feather mode</b>: shift+click, <b>rotate</b>: ctrl+drag\n" @@ -8773,32 +9110,32 @@ msgid "curvature: %3.2f%%" msgstr "Curvature: %3.2f%%" -#: ../src/develop/masks/gradient.c:1555 +#: ../src/develop/masks/gradient.c:1514 msgid "[GRADIENT on pivot] rotate shape" msgstr "[GRADIENT on pivot] rotate shape" -#: ../src/develop/masks/gradient.c:1557 +#: ../src/develop/masks/gradient.c:1516 msgid "[GRADIENT creation] set rotation" msgstr "[GRADIENT creation] set rotation" -#: ../src/develop/masks/gradient.c:1559 +#: ../src/develop/masks/gradient.c:1518 msgid "[GRADIENT] change curvature" msgstr "[GRADIENT] change curvature" -#: ../src/develop/masks/gradient.c:1561 +#: ../src/develop/masks/gradient.c:1520 msgid "[GRADIENT] change compression" msgstr "[GRADIENT] change compression" -#: ../src/develop/masks/gradient.c:1563 +#: ../src/develop/masks/gradient.c:1522 msgid "[GRADIENT] change opacity" msgstr "[GRADIENT] change opacity" -#: ../src/develop/masks/gradient.c:1576 +#: ../src/develop/masks/gradient.c:1535 #, c-format msgid "gradient #%d" msgstr "Gradient #%d" -#: ../src/develop/masks/gradient.c:1587 +#: ../src/develop/masks/gradient.c:1546 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8807,7 +9144,7 @@ "<b>Curvature</b>: scroll, <b>Compression</b>: Shift+scroll\n" "<b>Rotation</b>: click+drag, <b>Opacity</b>: Ctrl+scroll (%d%%)" -#: ../src/develop/masks/gradient.c:1592 +#: ../src/develop/masks/gradient.c:1551 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8816,7 +9153,7 @@ "<b>Curvature</b>: scroll, <b>Compression</b>: Shift+scroll\n" "<b>Opacity</b>: Ctrl+scroll (%d%%)" -#: ../src/develop/masks/gradient.c:1595 +#: ../src/develop/masks/gradient.c:1554 msgid "<b>rotate</b>: drag" msgstr "<b>Rotate</b>: drag" @@ -8824,84 +9161,84 @@ msgid "[SHAPE] remove shape" msgstr "[SHAPE] remove shape" -#: ../src/develop/masks/masks.c:306 +#: ../src/develop/masks/masks.c:305 #, c-format msgid "group `%s'" msgstr "Group '%s'" -#: ../src/develop/masks/masks.c:423 +#: ../src/develop/masks/masks.c:422 #, c-format msgid "copy of `%s'" msgstr "Copy of '%s'" -#: ../src/develop/masks/masks.c:984 +#: ../src/develop/masks/masks.c:985 #, c-format msgid "%s: mask version mismatch: %d != %d" msgstr "%s: mask version mismatch: %d != %d" -#: ../src/develop/masks/masks.c:1239 ../src/develop/masks/masks.c:1906 +#: ../src/develop/masks/masks.c:1230 ../src/develop/masks/masks.c:1881 #, c-format msgid "opacity: %.0f%%" msgstr "Opacity: %.0f%%" -#: ../src/develop/masks/masks.c:1650 ../src/libs/masks.c:1068 +#: ../src/develop/masks/masks.c:1625 ../src/libs/masks.c:1084 msgid "add existing shape" msgstr "Add existing shape" -#: ../src/develop/masks/masks.c:1677 +#: ../src/develop/masks/masks.c:1652 msgid "use same shapes as" msgstr "Use same shapes as" -#: ../src/develop/masks/masks.c:1990 +#: ../src/develop/masks/masks.c:1965 msgid "masks can not contain themselves" msgstr "Masks can not contain themselves" -#: ../src/develop/masks/path.c:3433 +#: ../src/develop/masks/path.c:3349 msgid "[PATH creation] add a smooth node" msgstr "[PATH creation] add a smooth node" -#: ../src/develop/masks/path.c:3435 +#: ../src/develop/masks/path.c:3351 msgid "[PATH creation] add a sharp node" msgstr "[PATH creation] add a sharp node" -#: ../src/develop/masks/path.c:3437 +#: ../src/develop/masks/path.c:3353 msgid "[PATH creation] terminate path creation" msgstr "[PATH creation] terminate path creation" -#: ../src/develop/masks/path.c:3439 +#: ../src/develop/masks/path.c:3355 msgid "[PATH on node] switch between smooth/sharp node" msgstr "[PATH on node] switch between smooth/sharp node" -#: ../src/develop/masks/path.c:3441 +#: ../src/develop/masks/path.c:3357 msgid "[PATH on node] remove the node" msgstr "[PATH on node] remove the node" -#: ../src/develop/masks/path.c:3443 +#: ../src/develop/masks/path.c:3359 msgid "[PATH on feather] reset curvature" msgstr "[PATH on feather] reset curvature" -#: ../src/develop/masks/path.c:3445 +#: ../src/develop/masks/path.c:3361 msgid "[PATH on segment] add node" msgstr "[PATH on segment] add node" -#: ../src/develop/masks/path.c:3447 +#: ../src/develop/masks/path.c:3363 msgid "[PATH] change size" msgstr "[PATH] change size" -#: ../src/develop/masks/path.c:3449 +#: ../src/develop/masks/path.c:3365 msgid "[PATH] change feather size" msgstr "[PATH] change feather size" -#: ../src/develop/masks/path.c:3451 +#: ../src/develop/masks/path.c:3367 msgid "[PATH] change opacity" msgstr "[PATH] change opacity" -#: ../src/develop/masks/path.c:3463 +#: ../src/develop/masks/path.c:3379 #, c-format msgid "path #%d" msgstr "Path #%d" -#: ../src/develop/masks/path.c:3473 +#: ../src/develop/masks/path.c:3389 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>cancel</b>: right-click" @@ -8909,7 +9246,7 @@ "<b>Add node</b>: click, <b>Add sharp node</b>: Ctrl+click\n" "<b>Cancel</b>: right-click" -#: ../src/develop/masks/path.c:3476 +#: ../src/develop/masks/path.c:3392 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>finish path</b>: right-click" @@ -8917,7 +9254,7 @@ "<b>Add node</b>: click, <b>Add sharp node</b>: Ctrl+click\n" "<b>Finish path</b>: right-click" -#: ../src/develop/masks/path.c:3479 +#: ../src/develop/masks/path.c:3395 msgid "" "<b>move node</b>: drag, <b>remove node</b>: right-click\n" "<b>switch smooth/sharp mode</b>: ctrl+click" @@ -8925,7 +9262,7 @@ "<b>Move node</b>: drag, <b>Remove node</b>: right-click\n" "<b>Switch smooth/sharp mode</b>: Ctrl+click" -#: ../src/develop/masks/path.c:3483 +#: ../src/develop/masks/path.c:3399 msgid "" "<b>node curvature</b>: drag\n" "<b>reset curvature</b>: right-click" @@ -8933,7 +9270,7 @@ "<b>Node curvature</b>: drag\n" "<b>Reset curvature</b>: right-click" -#: ../src/develop/masks/path.c:3487 +#: ../src/develop/masks/path.c:3403 msgid "" "<b>move segment</b>: drag\n" "<b>add node</b>: ctrl+click" @@ -8941,11 +9278,11 @@ "<b>Move segment</b>: drag\n" "<b>Add node</b>: Ctrl+click" -#: ../src/develop/pixelpipe_hb.c:500 +#: ../src/develop/pixelpipe_hb.c:486 msgid "enabled as required" msgstr "Enabled as required" -#: ../src/develop/pixelpipe_hb.c:501 +#: ../src/develop/pixelpipe_hb.c:487 msgid "" "history had module disabled but it is required for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -8953,11 +9290,11 @@ "History had module disabled but it is required for this type of image.\n" "Likely introduced by applying a preset, style or history copy&paste" -#: ../src/develop/pixelpipe_hb.c:508 +#: ../src/develop/pixelpipe_hb.c:494 msgid "disabled as not appropriate" msgstr "Disabled as not appropriate" -#: ../src/develop/pixelpipe_hb.c:509 +#: ../src/develop/pixelpipe_hb.c:495 msgid "" "history had module enabled but it is not allowed for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -8965,15 +9302,27 @@ "History had module enabled but it is not allowed for this type of image.\n" "Likely introduced by applying a preset, style or history copy&paste" -#: ../src/develop/pixelpipe_hb.c:2705 +#: ../src/develop/pixelpipe_hb.c:2697 msgid "" -"darktable discovered problems with your OpenCL setup; disabling OpenCL for " -"this session!" -msgstr "" -"Darktable discovered problems with your OpenCL setup; disabling OpenCL for " -"this session!" +"OpenCL errors encountered; disabling OpenCL for this session! some possible " +"causes:\n" +" - OpenCL out of resources due to preference settings. please try with " +"defaults,\n" +" - buggy driver for some device. please run darktable with `-d opencl' to " +"identify,\n" +" - some drivers don't support needed number of events,\n" +" - too small headroom settings while using 'use all device memory'." +msgstr "" +"OpenCL errors encountered; disabling OpenCL for this session! Some possible " +"causes:\n" +" - OpenCL out of resources due to preference settings. Please try with " +"defaults.\n" +" - Buggy driver for some device. Please run Darktable with '-d opencl' to " +"identify.\n" +" - Some drivers don't support needed number of events.\n" +" - Too small headroom settings while using 'Use all device memory'." -#: ../src/develop/pixelpipe_hb.c:2853 +#: ../src/develop/pixelpipe_hb.c:2847 #, c-format msgid "" "module '%s' can't get raster mask from module\n" @@ -8984,28 +9333,32 @@ "'%s' as that is processed later in the pixel pipe.\n" "Raster mask is ignored." -#: ../src/develop/tiling.c:820 ../src/develop/tiling.c:1173 +#: ../src/develop/tiling.c:819 ../src/develop/tiling.c:1172 #, c-format -msgid "tiling failed for module '%s'. output might be garbled." -msgstr "Tiling failed for module '%s'. Output might be garbled." +msgid "" +"tiling failed for module '%s'. the output most likely will be OK, but you " +"might want to check." +msgstr "" +"Tiling failed for module '%s'. The output most likely will be OK, but you " +"might want to check." -#: ../src/dtgtk/culling.c:254 +#: ../src/dtgtk/culling.c:223 msgid "you have reached the start of your selection" msgstr "You have reached the start of your selection" -#: ../src/dtgtk/culling.c:263 +#: ../src/dtgtk/culling.c:232 msgid "you have reached the start of your collection" msgstr "You have reached the start of your collection" -#: ../src/dtgtk/culling.c:310 +#: ../src/dtgtk/culling.c:279 msgid "you have reached the end of your selection" msgstr "You have reached the end of your selection" -#: ../src/dtgtk/culling.c:337 +#: ../src/dtgtk/culling.c:306 msgid "you have reached the end of your collection" msgstr "You have reached the end of your collection" -#: ../src/dtgtk/culling.c:446 +#: ../src/dtgtk/culling.c:415 #, c-format msgid "zooming is limited to %d images" msgstr "Zooming is limited to %d images" @@ -9099,7 +9452,7 @@ msgid "fixed" msgstr "Fixed" -#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1493 +#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1498 msgid "relative" msgstr "Relative" @@ -9113,7 +9466,7 @@ msgstr "Min" #: ../src/dtgtk/range.c:630 ../src/dtgtk/range.c:1780 ../src/dtgtk/range.c:1831 -#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:282 +#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:309 msgid "max" msgstr "Max" @@ -9122,7 +9475,7 @@ msgstr "Date type" #. the date section -#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1505 msgid "date" msgstr "Date" @@ -9147,7 +9500,7 @@ msgstr "Days: " #. the time section -#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1505 msgid "time" msgstr "Time" @@ -9165,8 +9518,8 @@ msgstr "Set the value to always match current datetime" #. apply button -#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:162 -#: ../src/libs/metadata.c:901 ../src/libs/styles.c:897 +#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:180 +#: ../src/libs/metadata.c:735 ../src/libs/styles.c:901 msgid "apply" msgstr "Apply" @@ -9200,40 +9553,40 @@ msgid "grouped images" msgstr "Grouped images" -#: ../src/dtgtk/thumbnail.c:820 ../src/dtgtk/thumbnail.c:1635 -#: ../src/iop/ashift.c:6191 ../src/iop/ashift.c:6280 ../src/iop/ashift.c:6282 -#: ../src/iop/ashift.c:6284 ../src/libs/navigation.c:110 -#: ../src/libs/navigation.c:190 +#: ../src/dtgtk/thumbnail.c:814 ../src/dtgtk/thumbnail.c:1623 +#: ../src/iop/ashift.c:6138 ../src/iop/ashift.c:6227 ../src/iop/ashift.c:6229 +#: ../src/iop/ashift.c:6231 ../src/libs/navigation.c:111 +#: ../src/libs/navigation.c:193 msgid "fit" msgstr "Fit" -#: ../src/dtgtk/thumbtable.c:1041 ../src/views/slideshow.c:421 +#: ../src/dtgtk/thumbtable.c:1139 ../src/views/slideshow.c:422 msgid "there are no images in this collection" msgstr "There are no images in this collection" -#: ../src/dtgtk/thumbtable.c:1048 +#: ../src/dtgtk/thumbtable.c:1146 msgid "if you have not imported any images yet" msgstr "If you have not imported any images yet" -#: ../src/dtgtk/thumbtable.c:1052 +#: ../src/dtgtk/thumbtable.c:1150 msgid "you can do so in the import module" msgstr "you can do so in the import module" -#: ../src/dtgtk/thumbtable.c:1061 +#: ../src/dtgtk/thumbtable.c:1159 msgid "try to relax the filter settings in the top panel" msgstr "Try to relax the filter settings in the top panel" -#: ../src/dtgtk/thumbtable.c:1072 +#: ../src/dtgtk/thumbtable.c:1170 msgid "or add images in the collections module in the left panel" msgstr "or add images in the collections module in the left panel" -#: ../src/dtgtk/thumbtable.c:1338 +#: ../src/dtgtk/thumbtable.c:1455 msgid "" "you have changed the settings related to how thumbnails are generated.\n" msgstr "" "You have changed the settings related to how thumbnails are generated.\n" -#: ../src/dtgtk/thumbtable.c:1341 +#: ../src/dtgtk/thumbtable.c:1458 msgid "" "all cached thumbnails need to be invalidated.\n" "\n" @@ -9241,7 +9594,7 @@ "All cached thumbnails need to be invalidated.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1345 +#: ../src/dtgtk/thumbtable.c:1462 #, c-format msgid "" "cached thumbnails starting from level %d need to be invalidated.\n" @@ -9250,7 +9603,7 @@ "Cached thumbnails starting from level %d need to be invalidated.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1350 +#: ../src/dtgtk/thumbtable.c:1467 #, c-format msgid "" "cached thumbnails below level %d need to be invalidated.\n" @@ -9259,7 +9612,7 @@ "Cached thumbnails below level %d need to be invalidated.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1355 +#: ../src/dtgtk/thumbtable.c:1472 #, c-format msgid "" "cached thumbnails between level %d and %d need to be invalidated.\n" @@ -9268,48 +9621,48 @@ "Cached thumbnails between level %d and %d need to be invalidated.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1358 +#: ../src/dtgtk/thumbtable.c:1475 msgid "do you want to do that now?" msgstr "Do you want to do that now?" -#: ../src/dtgtk/thumbtable.c:1360 +#: ../src/dtgtk/thumbtable.c:1477 msgid "cached thumbnails invalidation" msgstr "Cached thumbnails invalidation" #. setup history key accelerators -#: ../src/dtgtk/thumbtable.c:2561 +#: ../src/dtgtk/thumbtable.c:2738 msgid "copy history" msgstr "Copy history" -#: ../src/dtgtk/thumbtable.c:2563 +#: ../src/dtgtk/thumbtable.c:2740 msgid "copy history parts" msgstr "Copy history parts" -#: ../src/dtgtk/thumbtable.c:2565 +#: ../src/dtgtk/thumbtable.c:2742 msgid "paste history" msgstr "Paste history" -#: ../src/dtgtk/thumbtable.c:2567 +#: ../src/dtgtk/thumbtable.c:2744 msgid "paste history parts" msgstr "Paste history parts" -#: ../src/dtgtk/thumbtable.c:2569 ../src/libs/copy_history.c:394 +#: ../src/dtgtk/thumbtable.c:2746 ../src/libs/copy_history.c:394 msgid "discard history" msgstr "Discard history" -#: ../src/dtgtk/thumbtable.c:2572 +#: ../src/dtgtk/thumbtable.c:2749 msgid "duplicate image" msgstr "Duplicate image" -#: ../src/dtgtk/thumbtable.c:2574 +#: ../src/dtgtk/thumbtable.c:2751 msgid "duplicate image virgin" msgstr "Duplicate image virgin" -#: ../src/dtgtk/thumbtable.c:2584 ../src/libs/select.c:147 +#: ../src/dtgtk/thumbtable.c:2761 ../src/libs/select.c:148 msgid "select film roll" msgstr "Select film roll" -#: ../src/dtgtk/thumbtable.c:2586 ../src/libs/select.c:151 +#: ../src/dtgtk/thumbtable.c:2763 ../src/libs/select.c:152 msgid "select untouched" msgstr "Select untouched" @@ -9376,265 +9729,296 @@ msgid "creating complete lighttable thumbnail cache\n" msgstr "Creating complete Lighttable thumbnail cache\n" -#: ../src/gui/accelerators.c:61 -msgid "active view" -msgstr "Active view" - -#: ../src/gui/accelerators.c:62 -msgid "other views" -msgstr "Other views" +#: ../src/gui/about.c:34 +#, c-format +msgid "copyright (c) the authors 2009-%s" +msgstr "Copyright (c) the authors 2009-%s" + +#: ../src/gui/about.c:39 +msgid "organize and develop images from digital cameras" +msgstr "Organize and develop images from digital cameras" + +#: ../src/gui/about.c:51 +msgid "all those of you that made previous releases possible" +msgstr "All those of you that made previous releases possible" -#: ../src/gui/accelerators.c:63 +#: ../src/gui/about.c:56 +msgid "and..." +msgstr "And..." + +#: ../src/gui/about.c:59 +msgid "translator-credits" +msgstr "Victor Forsiuk <vvforce@gmail.com>" + +#: ../src/gui/accelerators.c:72 +msgid "in active view" +msgstr "In active view" + +#: ../src/gui/accelerators.c:73 +msgid "in other views" +msgstr "In other views" + +#: ../src/gui/accelerators.c:74 msgid "fallbacks" msgstr "Fallbacks" -#: ../src/gui/accelerators.c:64 ../src/gui/accelerators.c:722 -#: ../src/gui/accelerators.c:2607 ../src/gui/accelerators.c:3470 -msgid "speed" -msgstr "Speed" +#: ../src/gui/accelerators.c:75 +msgid "speed adjustments" +msgstr "Speed adjustments" + +#: ../src/gui/accelerators.c:76 +msgid "disabled defaults" +msgstr "Disabled defaults" -#: ../src/gui/accelerators.c:80 ../src/views/view.c:1202 +#: ../src/gui/accelerators.c:96 ../src/views/view.c:1361 msgid "scroll" msgstr "Scroll" -#: ../src/gui/accelerators.c:81 +#: ../src/gui/accelerators.c:97 msgid "pan" msgstr "Pan" -#: ../src/gui/accelerators.c:82 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6283 ../src/iop/clipping.c:1902 -#: ../src/iop/clipping.c:2094 ../src/iop/clipping.c:2110 -#: ../src/views/darkroom.c:2676 ../src/views/lighttable.c:1250 +#: ../src/gui/accelerators.c:98 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6230 ../src/iop/clipping.c:1955 +#: ../src/iop/clipping.c:2147 ../src/iop/clipping.c:2163 +#: ../src/views/darkroom.c:2522 ../src/views/lighttable.c:1250 msgid "horizontal" msgstr "Horizontal" -#: ../src/gui/accelerators.c:83 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6281 ../src/iop/clipping.c:1901 -#: ../src/iop/clipping.c:2095 ../src/iop/clipping.c:2109 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:1254 +#: ../src/gui/accelerators.c:99 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6228 ../src/iop/clipping.c:1954 +#: ../src/iop/clipping.c:2148 ../src/iop/clipping.c:2162 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:1254 msgid "vertical" msgstr "Vertical" -#: ../src/gui/accelerators.c:84 +#: ../src/gui/accelerators.c:100 msgid "diagonal" msgstr "Diagonal" -#: ../src/gui/accelerators.c:86 +#: ../src/gui/accelerators.c:102 msgid "leftright" msgstr "LeftRight" -#: ../src/gui/accelerators.c:87 +#: ../src/gui/accelerators.c:103 msgid "updown" msgstr "UpDown" -#: ../src/gui/accelerators.c:88 +#: ../src/gui/accelerators.c:104 msgid "pgupdown" msgstr "PgUpDown" -#: ../src/gui/accelerators.c:96 ../src/views/view.c:1186 +#: ../src/gui/accelerators.c:112 ../src/views/view.c:1343 msgid "shift" msgstr "Shift" -#: ../src/gui/accelerators.c:97 ../src/views/view.c:1187 +#: ../src/gui/accelerators.c:113 ../src/views/view.c:1345 msgid "ctrl" msgstr "Ctrl" -#: ../src/gui/accelerators.c:98 ../src/views/view.c:1188 +#: ../src/gui/accelerators.c:114 ../src/views/view.c:1347 msgid "alt" msgstr "Alt" -#: ../src/gui/accelerators.c:99 +#: ../src/gui/accelerators.c:115 msgid "cmd" msgstr "Cmd" -#: ../src/gui/accelerators.c:100 +#: ../src/gui/accelerators.c:116 msgid "altgr" msgstr "AltGr" -#: ../src/gui/accelerators.c:109 ../src/gui/accelerators.c:156 -#: ../src/libs/tagging.c:1782 +#: ../src/gui/accelerators.c:127 ../src/gui/accelerators.c:174 +#: ../src/libs/tagging.c:1804 msgid "edit" msgstr "Edit" -#: ../src/gui/accelerators.c:110 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "up" msgstr "Up" -#: ../src/gui/accelerators.c:111 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:129 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "down" msgstr "Down" -#: ../src/gui/accelerators.c:115 +#: ../src/gui/accelerators.c:133 msgid "set" msgstr "Set" -#: ../src/gui/accelerators.c:119 +#: ../src/gui/accelerators.c:137 msgid "popup" msgstr "Popup" -#: ../src/gui/accelerators.c:120 ../src/gui/accelerators.c:153 -#: ../src/gui/gtk.c:3054 ../src/views/lighttable.c:760 +#: ../src/gui/accelerators.c:138 ../src/gui/accelerators.c:171 +#: ../src/gui/gtk.c:3100 ../src/views/lighttable.c:760 msgid "next" msgstr "Next" -#: ../src/gui/accelerators.c:121 ../src/gui/accelerators.c:152 -#: ../src/gui/gtk.c:3055 ../src/views/lighttable.c:761 +#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:170 +#: ../src/gui/gtk.c:3101 ../src/views/lighttable.c:761 msgid "previous" msgstr "Previous" -#: ../src/gui/accelerators.c:123 ../src/gui/accelerators.c:1462 +#: ../src/gui/accelerators.c:141 ../src/gui/accelerators.c:1598 msgid "last" msgstr "Last" -#: ../src/gui/accelerators.c:124 ../src/gui/accelerators.c:1461 +#: ../src/gui/accelerators.c:142 ../src/gui/accelerators.c:1597 msgid "first" msgstr "First" -#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:141 -#: ../src/gui/accelerators.c:314 ../src/libs/filters/rating_range.c:268 -#: ../src/libs/tagging.c:3119 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2419 ../src/views/darkroom.c:2648 +#: ../src/gui/accelerators.c:146 ../src/gui/accelerators.c:159 +#: ../src/gui/accelerators.c:356 ../src/libs/filters/rating_range.c:295 +#: ../src/libs/tagging.c:3150 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2258 ../src/views/darkroom.c:2494 msgid "toggle" msgstr "Toggle" -#: ../src/gui/accelerators.c:131 +#: ../src/gui/accelerators.c:149 msgid "ctrl-toggle" msgstr "Ctrl-toggle" -#: ../src/gui/accelerators.c:132 +#: ../src/gui/accelerators.c:150 msgid "ctrl-on" msgstr "Ctrl-on" -#: ../src/gui/accelerators.c:133 +#: ../src/gui/accelerators.c:151 msgid "right-toggle" msgstr "Right-toggle" -#: ../src/gui/accelerators.c:134 +#: ../src/gui/accelerators.c:152 msgid "right-on" msgstr "Right-on" -#: ../src/gui/accelerators.c:145 ../src/gui/gtk.c:3053 +#: ../src/gui/accelerators.c:163 ../src/gui/gtk.c:3099 msgid "activate" msgstr "Activate" -#: ../src/gui/accelerators.c:146 +#: ../src/gui/accelerators.c:164 msgid "ctrl-activate" msgstr "Ctrl-activate" -#: ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:165 msgid "right-activate" msgstr "Right-activate" -#: ../src/gui/accelerators.c:154 +#: ../src/gui/accelerators.c:172 msgid "store" msgstr "Store" -#: ../src/gui/accelerators.c:157 ../src/gui/styles_dialog.c:639 +#: ../src/gui/accelerators.c:175 ../src/gui/styles_dialog.c:651 msgid "update" msgstr "Update" -#: ../src/gui/accelerators.c:158 ../src/libs/tools/global_toolbox.c:60 +#: ../src/gui/accelerators.c:176 ../src/libs/tools/global_toolbox.c:60 #: ../src/libs/tools/global_toolbox.c:510 msgid "preferences" msgstr "Preferences" -#: ../src/gui/accelerators.c:163 +#: ../src/gui/accelerators.c:181 msgid "apply on new instance" msgstr "Apply on new instance" -#: ../src/gui/accelerators.c:168 +#: ../src/gui/accelerators.c:186 msgid "start" msgstr "Start" -#: ../src/gui/accelerators.c:169 +#: ../src/gui/accelerators.c:187 msgid "end" msgstr "End" -#: ../src/gui/accelerators.c:332 +#: ../src/gui/accelerators.c:374 msgid "entry" msgstr "Entry" -#: ../src/gui/accelerators.c:409 +#: ../src/gui/accelerators.c:450 msgid "combo effect not found" msgstr "Combo effect not found" -#: ../src/gui/accelerators.c:578 +#: ../src/gui/accelerators.c:627 msgid "(keypad)" msgstr "(keypad)" -#: ../src/gui/accelerators.c:587 +#: ../src/gui/accelerators.c:636 msgid "tablet button" msgstr "Tablet button" -#: ../src/gui/accelerators.c:596 +#: ../src/gui/accelerators.c:645 msgid "unknown driver" msgstr "Unknown driver" -#: ../src/gui/accelerators.c:663 +#: ../src/gui/accelerators.c:718 msgid "long" msgstr "Long" -#: ../src/gui/accelerators.c:664 +#: ../src/gui/accelerators.c:719 msgid "double-press" msgstr "Double-press" -#: ../src/gui/accelerators.c:665 +#: ../src/gui/accelerators.c:720 msgid "triple-press" msgstr "Triple-press" -#: ../src/gui/accelerators.c:666 +#: ../src/gui/accelerators.c:721 msgid "press" msgstr "Press" -#: ../src/gui/accelerators.c:670 +#: ../src/gui/accelerators.c:725 msgctxt "accel" msgid "left" msgstr "Left" -#: ../src/gui/accelerators.c:671 +#: ../src/gui/accelerators.c:726 msgctxt "accel" msgid "right" msgstr "Right" -#: ../src/gui/accelerators.c:672 +#: ../src/gui/accelerators.c:727 msgctxt "accel" msgid "middle" msgstr "Middle" -#: ../src/gui/accelerators.c:673 +#: ../src/gui/accelerators.c:728 msgctxt "accel" msgid "long" msgstr "Long" -#: ../src/gui/accelerators.c:674 +#: ../src/gui/accelerators.c:729 msgctxt "accel" msgid "double-click" msgstr "Double-click" -#: ../src/gui/accelerators.c:675 +#: ../src/gui/accelerators.c:730 msgctxt "accel" msgid "triple-click" msgstr "Triple-click" -#: ../src/gui/accelerators.c:676 +#: ../src/gui/accelerators.c:731 msgid "click" msgstr "Click" -#: ../src/gui/accelerators.c:704 +#: ../src/gui/accelerators.c:759 msgid "first instance" msgstr "First instance" -#: ../src/gui/accelerators.c:706 +#: ../src/gui/accelerators.c:761 msgid "last instance" msgstr "Last instance" -#: ../src/gui/accelerators.c:708 +#: ../src/gui/accelerators.c:763 msgid "relative instance" msgstr "Relative instance" -#: ../src/gui/accelerators.c:867 +#: ../src/gui/accelerators.c:780 ../src/gui/accelerators.c:2864 +#: ../src/gui/accelerators.c:3811 +msgid "speed" +msgstr "Speed" + +#: ../src/gui/accelerators.c:923 #, c-format msgid "" "Lua script command copied to clipboard:\n" @@ -9645,11 +10029,11 @@ "\n" "<tt>%s</tt>" -#: ../src/gui/accelerators.c:965 ../src/gui/accelerators.c:978 +#: ../src/gui/accelerators.c:1025 ../src/gui/accelerators.c:1044 msgid "start typing for incremental search" msgstr "Start typing for incremental search" -#: ../src/gui/accelerators.c:966 +#: ../src/gui/accelerators.c:1028 msgid "" "\n" "press Delete to delete selected shortcut" @@ -9657,7 +10041,23 @@ "\n" "Press Delete to delete selected shortcut" -#: ../src/gui/accelerators.c:968 +#: ../src/gui/accelerators.c:1030 +msgid "" +"\n" +"press Delete to disable selected default shortcut" +msgstr "" +"\n" +"Press Delete to disable selected default shortcut" + +#: ../src/gui/accelerators.c:1031 +msgid "" +"\n" +"press Delete to restore selected default shortcut" +msgstr "" +"\n" +"Press Delete to restore selected default shortcut" + +#: ../src/gui/accelerators.c:1033 msgid "" "\n" "double-click to add new shortcut" @@ -9665,11 +10065,11 @@ "\n" "Double-click to add new shortcut" -#: ../src/gui/accelerators.c:979 +#: ../src/gui/accelerators.c:1045 msgid "click to filter shortcuts list" msgstr "Click to filter shortcuts list" -#: ../src/gui/accelerators.c:981 +#: ../src/gui/accelerators.c:1047 msgid "" "\n" "right click to show action of selected shortcut" @@ -9677,7 +10077,7 @@ "\n" "Right click to show action of selected shortcut" -#: ../src/gui/accelerators.c:984 +#: ../src/gui/accelerators.c:1050 msgid "" "\n" "double-click to define new shortcut" @@ -9685,11 +10085,11 @@ "\n" "Double-click to define new shortcut" -#: ../src/gui/accelerators.c:1015 +#: ../src/gui/accelerators.c:1081 msgid "shift+alt+scroll to change height" msgstr "Shift+Alt+scroll to change height" -#: ../src/gui/accelerators.c:1035 +#: ../src/gui/accelerators.c:1101 msgid "" "press keys with mouse click and scroll or move combinations to create a " "shortcut" @@ -9697,27 +10097,27 @@ "Press keys with mouse click and scroll or move combinations to create a " "shortcut" -#: ../src/gui/accelerators.c:1036 +#: ../src/gui/accelerators.c:1102 msgid "click to open shortcut configuration" msgstr "Click to open shortcut configuration" -#: ../src/gui/accelerators.c:1037 +#: ../src/gui/accelerators.c:1103 msgid "ctrl+click to add to quick access panel\n" msgstr "Ctrl+click to add to quick access panel\n" -#: ../src/gui/accelerators.c:1038 +#: ../src/gui/accelerators.c:1104 msgid "ctrl+click to remove from quick access panel\n" msgstr "Ctrl+click to remove from quick access panel\n" -#: ../src/gui/accelerators.c:1039 +#: ../src/gui/accelerators.c:1105 msgid "scroll to change default speed" msgstr "Scroll to change default speed" -#: ../src/gui/accelerators.c:1040 +#: ../src/gui/accelerators.c:1106 msgid "right click to exit mapping mode" msgstr "Right click to exit mapping mode" -#: ../src/gui/accelerators.c:1051 +#: ../src/gui/accelerators.c:1119 #, c-format msgid "" "%sright-click to type a specific value between <b>%s</b> and <b>%s</b>\n" @@ -9726,74 +10126,89 @@ "%sRight-click to type a specific value between <b>%s</b> and <b>%s</b>\n" "or hold Ctrl+Shift while dragging to ignore soft limits." -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "ctrl+v" msgstr "Ctrl+v" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "right long click" msgstr "Right long click" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "to copy Lua command" msgstr "to copy Lua command" -#: ../src/gui/accelerators.c:1344 +#: ../src/gui/accelerators.c:1451 msgid "shortcut for move exists with single effect" msgstr "Shortcut for move exists with single effect" -#: ../src/gui/accelerators.c:1345 +#: ../src/gui/accelerators.c:1452 +#, c-format +msgid "" +"%s\n" +"\n" +"(assign %s to %s)" +msgstr "" +"%s\n" +"\n" +"(assign %s to %s)" + +#: ../src/gui/accelerators.c:1453 msgid "create separate shortcuts for up and down move?" msgstr "Create separate shortcuts for up and down move?" -#: ../src/gui/accelerators.c:1368 +#: ../src/gui/accelerators.c:1479 #, c-format msgid "%s, speed reset" msgstr "%s, speed reset" -#: ../src/gui/accelerators.c:1377 +#: ../src/gui/accelerators.c:1497 msgid "shortcut exists with different settings" msgstr "Shortcut exists with different settings" -#: ../src/gui/accelerators.c:1378 +#: ../src/gui/accelerators.c:1498 msgid "reset the settings of the shortcut?" msgstr "Reset the settings of the shortcut?" -#: ../src/gui/accelerators.c:1389 +#: ../src/gui/accelerators.c:1507 msgid "shortcut already exists" msgstr "Shortcut already exists" -#: ../src/gui/accelerators.c:1390 +#: ../src/gui/accelerators.c:1509 +msgid "disable this default shortcut?" +msgstr "Disable this default shortcut?" + +#: ../src/gui/accelerators.c:1510 msgid "remove the shortcut?" msgstr "Remove the shortcut?" -#: ../src/gui/accelerators.c:1423 +#: ../src/gui/accelerators.c:1550 msgid "clashing shortcuts exist" msgstr "Clashing shortcuts exist" -#: ../src/gui/accelerators.c:1424 +#: ../src/gui/accelerators.c:1551 msgid "remove these existing shortcuts?" msgstr "Remove these existing shortcuts?" #. or 3, but change char relative[] = "-2" to "-1" #. NUM_INSTANCES -#: ../src/gui/accelerators.c:1460 +#: ../src/gui/accelerators.c:1596 msgid "preferred" msgstr "Preferred" -#: ../src/gui/accelerators.c:1463 +#: ../src/gui/accelerators.c:1599 msgid "second" msgstr "Second" -#: ../src/gui/accelerators.c:1464 +#: ../src/gui/accelerators.c:1600 msgid "last but one" msgstr "Last but one" -#: ../src/gui/accelerators.c:1610 ../src/gui/accelerators.c:1670 +#: ../src/gui/accelerators.c:1761 ../src/gui/accelerators.c:1826 msgid "(unchanged)" msgstr "(unchanged)" -#: ../src/gui/accelerators.c:1776 +#: ../src/gui/accelerators.c:1941 msgid "" "define a shortcut by pressing a key, optionally combined with modifier keys " "(ctrl/shift/alt)\n" @@ -9817,39 +10232,47 @@ "\n" "Right-click to cancel" -#: ../src/gui/accelerators.c:1847 +#: ../src/gui/accelerators.c:2014 msgid "removing shortcut" msgstr "Removing shortcut" -#: ../src/gui/accelerators.c:1848 +#: ../src/gui/accelerators.c:2016 +msgid "disable the selected default shortcut?" +msgstr "Disable the selected default shortcut?" + +#: ../src/gui/accelerators.c:2017 +msgid "restore the selected default shortcut?" +msgstr "Restore the selected default shortcut?" + +#: ../src/gui/accelerators.c:2018 msgid "remove the selected shortcut?" msgstr "Remove the selected shortcut?" -#: ../src/gui/accelerators.c:1938 +#: ../src/gui/accelerators.c:2107 msgid "command" msgstr "Command" -#: ../src/gui/accelerators.c:1939 +#: ../src/gui/accelerators.c:2108 msgid "preset" msgstr "Preset" -#: ../src/gui/accelerators.c:2272 +#: ../src/gui/accelerators.c:2491 msgid "restore shortcuts" msgstr "Restore shortcuts" -#: ../src/gui/accelerators.c:2275 +#: ../src/gui/accelerators.c:2494 msgid "_defaults" msgstr "_Defaults" -#: ../src/gui/accelerators.c:2276 +#: ../src/gui/accelerators.c:2495 msgid "_startup" msgstr "_Startup" -#: ../src/gui/accelerators.c:2277 +#: ../src/gui/accelerators.c:2496 msgid "_edits" msgstr "_Edits" -#: ../src/gui/accelerators.c:2283 +#: ../src/gui/accelerators.c:2503 msgid "" "restore shortcuts from one of these states:\n" " - default\n" @@ -9861,7 +10284,7 @@ " - as at startup\n" " - as when opening this dialog\n" -#: ../src/gui/accelerators.c:2289 +#: ../src/gui/accelerators.c:2510 msgid "" "clear all newer shortcuts\n" "(instead of just restoring changed ones)" @@ -9869,22 +10292,17 @@ "Clear all newer shortcuts\n" "(instead of just restoring changed ones)" -#: ../src/gui/accelerators.c:2344 ../src/gui/preferences.c:906 +#: ../src/gui/accelerators.c:2567 ../src/gui/preferences.c:905 #: ../src/libs/tools/global_toolbox.c:494 -#: ../src/libs/tools/global_toolbox.c:645 +#: ../src/libs/tools/global_toolbox.c:652 msgid "shortcuts" msgstr "Shortcuts" -#: ../src/gui/accelerators.c:2353 +#: ../src/gui/accelerators.c:2577 msgid "export shortcuts" msgstr "Export shortcuts" -#: ../src/gui/accelerators.c:2356 ../src/gui/accelerators.c:2436 -#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:564 -msgid "_ok" -msgstr "_OK" - -#: ../src/gui/accelerators.c:2361 +#: ../src/gui/accelerators.c:2586 msgid "" "export all shortcuts to a file\n" "or just for one selected device\n" @@ -9892,27 +10310,27 @@ "Export all shortcuts to a file\n" "or just for one selected device\n" -#: ../src/gui/accelerators.c:2368 ../src/gui/accelerators.c:2448 +#: ../src/gui/accelerators.c:2593 ../src/gui/accelerators.c:2675 msgid "keyboard" msgstr "Keyboard" -#: ../src/gui/accelerators.c:2380 +#: ../src/gui/accelerators.c:2605 msgid "device id" msgstr "Device id" -#: ../src/gui/accelerators.c:2406 +#: ../src/gui/accelerators.c:2631 msgid "select file to export" msgstr "Select file to export" -#: ../src/gui/accelerators.c:2407 ../src/libs/tagging.c:2525 +#: ../src/gui/accelerators.c:2632 ../src/libs/tagging.c:2556 msgid "_export" msgstr "_Export" -#: ../src/gui/accelerators.c:2433 +#: ../src/gui/accelerators.c:2659 msgid "import shortcuts" msgstr "Import shortcuts" -#: ../src/gui/accelerators.c:2441 +#: ../src/gui/accelerators.c:2668 msgid "" "import all shortcuts from a file\n" "or just for one selected device\n" @@ -9920,31 +10338,31 @@ "Import all shortcuts from a file\n" "or just for one selected device\n" -#: ../src/gui/accelerators.c:2460 +#: ../src/gui/accelerators.c:2687 msgid "id in file" msgstr "Id in file" -#: ../src/gui/accelerators.c:2466 +#: ../src/gui/accelerators.c:2693 msgid "id when loaded" msgstr "Id when loaded" -#: ../src/gui/accelerators.c:2470 +#: ../src/gui/accelerators.c:2697 msgid "clear device first" msgstr "Clear device first" -#: ../src/gui/accelerators.c:2494 +#: ../src/gui/accelerators.c:2722 msgid "select file to import" msgstr "Select file to import" -#: ../src/gui/accelerators.c:2495 ../src/libs/tagging.c:2489 +#: ../src/gui/accelerators.c:2723 ../src/libs/tagging.c:2520 msgid "_import" msgstr "_Import" -#: ../src/gui/accelerators.c:2568 +#: ../src/gui/accelerators.c:2815 msgid "search shortcuts list" msgstr "Search shortcuts list" -#: ../src/gui/accelerators.c:2569 +#: ../src/gui/accelerators.c:2817 msgid "" "incrementally search the list of shortcuts\n" "press up or down keys to cycle through matches" @@ -9952,29 +10370,28 @@ "Incrementally search the list of shortcuts\n" "Press up or down keys to cycle through matches" -#. Setting up the cell renderers -#: ../src/gui/accelerators.c:2583 ../src/views/view.c:1383 +#: ../src/gui/accelerators.c:2837 ../src/views/view.c:1554 msgid "shortcut" msgstr "Shortcut" -#: ../src/gui/accelerators.c:2585 ../src/gui/accelerators.c:2676 -#: ../src/views/view.c:1385 +#: ../src/gui/accelerators.c:2840 ../src/gui/accelerators.c:2942 +#: ../src/views/view.c:1556 msgid "action" msgstr "Action" -#: ../src/gui/accelerators.c:2594 +#: ../src/gui/accelerators.c:2850 msgid "element" msgstr "Element" -#: ../src/gui/accelerators.c:2601 +#: ../src/gui/accelerators.c:2858 msgid "effect" msgstr "Effect" -#: ../src/gui/accelerators.c:2658 +#: ../src/gui/accelerators.c:2918 msgid "search actions list" msgstr "Search actions list" -#: ../src/gui/accelerators.c:2659 +#: ../src/gui/accelerators.c:2920 msgid "" "incrementally search the list of actions\n" "press up or down keys to cycle through matches" @@ -9982,16 +10399,16 @@ "Incrementally search the list of actions\n" "Press up or down keys to cycle through matches" -#: ../src/gui/accelerators.c:2682 ../src/gui/guides.c:719 -#: ../src/libs/export_metadata.c:192 +#: ../src/gui/accelerators.c:2950 ../src/gui/guides.c:719 +#: ../src/libs/export_metadata.c:179 msgid "type" msgstr "Type" -#: ../src/gui/accelerators.c:2717 +#: ../src/gui/accelerators.c:2988 msgid "enable fallbacks" msgstr "Enable fallbacks" -#: ../src/gui/accelerators.c:2718 +#: ../src/gui/accelerators.c:2989 msgid "" "enables default meanings for additional buttons, modifiers or moves\n" "when used in combination with a base shortcut" @@ -9999,67 +10416,111 @@ "Enables default meanings for additional buttons, modifiers or moves\n" "when used in combination with a base shortcut" -#: ../src/gui/accelerators.c:2725 +#: ../src/gui/accelerators.c:2997 msgid "open help page for shortcuts" msgstr "Open help page for shortcuts" -#: ../src/gui/accelerators.c:2730 +#: ../src/gui/accelerators.c:3002 msgid "restore..." msgstr "Restore..." -#: ../src/gui/accelerators.c:2731 +#: ../src/gui/accelerators.c:3003 msgid "restore default shortcuts or previous state" msgstr "Restore default shortcuts or previous state" -#: ../src/gui/accelerators.c:2735 ../src/libs/styles.c:883 -#: ../src/libs/tagging.c:3251 +#: ../src/gui/accelerators.c:3007 ../src/libs/styles.c:887 +#: ../src/libs/tagging.c:3282 msgid "import..." msgstr "Import..." -#: ../src/gui/accelerators.c:2736 +#: ../src/gui/accelerators.c:3008 msgid "fully or partially import shortcuts from file" msgstr "Fully or partially import shortcuts from file" -#: ../src/gui/accelerators.c:2740 ../src/libs/styles.c:890 -#: ../src/libs/tagging.c:3254 +#: ../src/gui/accelerators.c:3012 ../src/libs/styles.c:894 +#: ../src/libs/tagging.c:3285 msgid "export..." msgstr "Export..." -#: ../src/gui/accelerators.c:2741 +#: ../src/gui/accelerators.c:3013 msgid "fully or partially export shortcuts to file" msgstr "Fully or partially export shortcuts to file" -#: ../src/gui/accelerators.c:3139 +#: ../src/gui/accelerators.c:3021 +msgid "" +"the recommended way to assign shortcuts to visual elements is the <b>visual " +"shortcut mapping</b> mode.\n" +"this is switched on by toggling the <i>\"keyboard\"</i> button next to " +"preferences in the top panel. in this mode, clicking on a widget or area " +"will open this dialog with the appropriate selection for advanced " +"configuration.\n" +"\n" +"multiple shortcuts can be assigned to the same action. this is especially " +"useful if it has multiple <i>elements</i>, like the module buttons or the " +"colorpickers attached to sliders. however, with <i>fallbacks</i> enabled one " +"can use the same simple shortcuts and change their <i>element</i> or " +"<i>effect</i> by adding mouse clicks.\n" +"\n" +"<i>click <b> three times </b> to dismiss this notice permanently</i>" +msgstr "" +"The recommended way to assign shortcuts to visual elements is the <b>visual " +"shortcut mapping</b> mode.\n" +"This is switched on by toggling the <i>\"keyboard\"</i> button next to " +"preferences in the top panel. In this mode, clicking on a widget or area " +"will open this dialog with the appropriate selection for advanced " +"configuration.\n" +"\n" +"Multiple shortcuts can be assigned to the same action. This is especially " +"useful if it has multiple <i>elements</i>, like the module buttons or the " +"color-pickers attached to sliders. However, with <i>fallbacks</i> enabled " +"one can use the same simple shortcuts and change their <i>element</i> or " +"<i>effect</i> by adding mouse clicks.\n" +"\n" +"<i>Click <b> three times </b> to dismiss this notice permanently</i>" + +#: ../src/gui/accelerators.c:3452 msgid "reinitialising input devices" msgstr "Reinitialising input devices" -#: ../src/gui/accelerators.c:3342 +#: ../src/gui/accelerators.c:3594 +msgid "down move" +msgstr "Down move" + +#: ../src/gui/accelerators.c:3594 +msgid "flip top/bottom first/last" +msgstr "Flip top/bottom first/last" + +#: ../src/gui/accelerators.c:3679 msgid "fallback to move" msgstr "Fallback to move" -#: ../src/gui/accelerators.c:3578 +#: ../src/gui/accelerators.c:3921 #, c-format msgid "%s not assigned" msgstr "%s not assigned" -#: ../src/gui/accelerators.c:3751 +#: ../src/gui/accelerators.c:4102 #, c-format msgid "%s assigned to %s" msgstr "%s assigned to %s" -#: ../src/gui/gtk.c:173 ../src/views/darkroom.c:4650 +#: ../src/gui/accelerators.c:4321 +msgid "short key press resets stuck keys" +msgstr "Short key press resets stuck keys" + +#: ../src/gui/gtk.c:175 ../src/views/darkroom.c:3861 msgid "darktable - darkroom preview" msgstr "Darktable - Darkroom preview" -#: ../src/gui/gtk.c:184 +#: ../src/gui/gtk.c:186 msgid "tooltips off" msgstr "Tooltips off" -#: ../src/gui/gtk.c:186 +#: ../src/gui/gtk.c:188 msgid "tooltips on" msgstr "Tooltips on" -#: ../src/gui/gtk.c:191 +#: ../src/gui/gtk.c:193 msgid "" "tooltip visibility can only be toggled if compositing is enabled in your " "window manager" @@ -10067,184 +10528,217 @@ "Tooltip visibility can only be toggled if compositing is enabled in your " "window manager" -#: ../src/gui/gtk.c:814 +#: ../src/gui/gtk.c:809 msgid "closing darktable..." msgstr "Closing Darktable..." -#: ../src/gui/gtk.c:1135 +#: ../src/gui/gtk.c:1032 +msgid "URL opened in web browser" +msgstr "URL opened in web browser" + +#: ../src/gui/gtk.c:1036 +msgid "error while opening URL in web browser" +msgstr "Error while opening URL in web browser" + +#. View menu +#: ../src/gui/gtk.c:1104 +msgctxt "menu" +msgid "Views" +msgstr "Views" + +#: ../src/gui/gtk.c:1108 +msgctxt "menu" +msgid "lighttable" +msgstr "Lighttable" + +#: ../src/gui/gtk.c:1109 +msgctxt "menu" +msgid "darkroom" +msgstr "Darkroom" + +#: ../src/gui/gtk.c:1115 +msgctxt "menu" +msgid "slideshow" +msgstr "Slideshow" + +#: ../src/gui/gtk.c:1117 +msgctxt "menu" +msgid "map" +msgstr "Map" + +#: ../src/gui/gtk.c:1119 +msgctxt "menu" +msgid "print" +msgstr "Print" + +#: ../src/gui/gtk.c:1121 +msgctxt "menu" +msgid "tethering" +msgstr "Tethering" + +#. Help menu +#: ../src/gui/gtk.c:1127 +msgctxt "menu" +msgid "Help" +msgstr "Help" + +#: ../src/gui/gtk.c:1131 +msgctxt "menu" +msgid "darktable Manual" +msgstr "Darktable Manual" + +#: ../src/gui/gtk.c:1138 +msgctxt "menu" +msgid "darktable Homepage" +msgstr "Darktable Homepage" + +#: ../src/gui/gtk.c:1162 +msgctxt "menu" +msgid "Preferences" +msgstr "Preferences" + +#: ../src/gui/gtk.c:1232 msgid "panels" msgstr "Panels" -#. an action that does nothing - used for overriding/removing default shortcuts -#: ../src/gui/gtk.c:1184 -msgid "no-op" -msgstr "No-op" - -#: ../src/gui/gtk.c:1186 +#: ../src/gui/gtk.c:1264 msgid "switch views" msgstr "Switch views" -#: ../src/gui/gtk.c:1187 ../src/views/tethering.c:102 +#: ../src/gui/gtk.c:1265 ../src/views/tethering.c:102 msgid "tethering" msgstr "Tethering" -#: ../src/gui/gtk.c:1188 ../src/gui/preferences.c:531 -#: ../src/gui/preferences.c:542 ../src/libs/tools/lighttable.c:66 -#: ../src/views/lighttable.c:91 -msgid "lighttable" -msgstr "Lighttable" - -#: ../src/gui/gtk.c:1189 ../src/gui/preferences.c:532 -#: ../src/gui/preferences.c:542 ../src/views/darkroom.c:94 -msgid "darkroom" -msgstr "Darkroom" - -#: ../src/gui/gtk.c:1190 ../src/views/map.c:197 +#: ../src/gui/gtk.c:1268 ../src/views/map.c:197 msgid "map" msgstr "Map" -#: ../src/gui/gtk.c:1191 ../src/views/slideshow.c:389 +#: ../src/gui/gtk.c:1269 ../src/views/slideshow.c:390 msgid "slideshow" msgstr "Slideshow" #. Print button -#: ../src/gui/gtk.c:1192 ../src/libs/print_settings.c:2885 +#: ../src/gui/gtk.c:1270 ../src/libs/print_settings.c:2885 msgid "print" msgstr "Print" #. register ctrl-q to quit: -#: ../src/gui/gtk.c:1198 +#: ../src/gui/gtk.c:1276 msgid "quit" msgstr "Quit" #. Full-screen accelerator (no ESC handler here to enable quit-slideshow using ESC) -#: ../src/gui/gtk.c:1201 +#: ../src/gui/gtk.c:1279 msgid "fullscreen" msgstr "Fullscreen" -#: ../src/gui/gtk.c:1205 +#: ../src/gui/gtk.c:1283 msgid "collapsing controls" msgstr "Collapsing controls" #. specific top/bottom toggles -#: ../src/gui/gtk.c:1207 +#: ../src/gui/gtk.c:1285 msgid "header" msgstr "Header" -#: ../src/gui/gtk.c:1208 +#: ../src/gui/gtk.c:1286 msgid "filmstrip and timeline" msgstr "Filmstrip and timeline" -#: ../src/gui/gtk.c:1209 +#: ../src/gui/gtk.c:1287 msgid "top toolbar" msgstr "Top toolbar" -#: ../src/gui/gtk.c:1210 +#: ../src/gui/gtk.c:1288 msgid "bottom toolbar" msgstr "Bottom toolbar" -#: ../src/gui/gtk.c:1211 +#: ../src/gui/gtk.c:1289 msgid "all top" msgstr "All top" -#: ../src/gui/gtk.c:1212 +#: ../src/gui/gtk.c:1290 msgid "all bottom" msgstr "All bottom" -#: ../src/gui/gtk.c:1214 +#: ../src/gui/gtk.c:1292 msgid "toggle tooltip visibility" msgstr "Toggle tooltip visibility" -#: ../src/gui/gtk.c:1215 +#: ../src/gui/gtk.c:1293 msgid "reinitialise input devices" msgstr "Reinitialise input devices" -#: ../src/gui/gtk.c:1253 +#: ../src/gui/gtk.c:1331 msgid "toggle focus-peaking mode" msgstr "Toggle focus-peaking mode" #. toggle focus peaking everywhere -#: ../src/gui/gtk.c:1258 +#: ../src/gui/gtk.c:1336 msgid "toggle focus peaking" msgstr "Toggle focus peaking" -#: ../src/gui/gtk.c:1594 ../src/gui/gtk.c:3143 ../src/gui/gtk.c:3148 -#: ../src/gui/gtk.c:3153 ../src/gui/gtk.c:3158 +#: ../src/gui/gtk.c:1654 ../src/gui/gtk.c:3189 ../src/gui/gtk.c:3194 +#: ../src/gui/gtk.c:3199 ../src/gui/gtk.c:3204 msgid "tabs" msgstr "Tabs" -#: ../src/gui/gtk.c:2535 -msgid "_yes" -msgstr "_Yes" - -#: ../src/gui/gtk.c:2536 -msgid "_no" -msgstr "_No" - #. ask the user if darktable.org may be accessed -#: ../src/gui/gtk.c:2647 +#: ../src/gui/gtk.c:2707 msgid "access the online user manual?" msgstr "Access the online user manual?" -#: ../src/gui/gtk.c:2648 +#: ../src/gui/gtk.c:2708 #, c-format msgid "do you want to access `%s'?" msgstr "Do you want to access `%s'?" -#: ../src/gui/gtk.c:2717 -msgid "help url opened in web browser" -msgstr "Help URL opened in web browser" - -#: ../src/gui/gtk.c:2721 -msgid "error while opening help url in web browser" -msgstr "Error while opening help URL in web browser" - -#: ../src/gui/gtk.c:2732 +#: ../src/gui/gtk.c:2778 msgid "there is no help available for this element" msgstr "There is no help available for this element" #. font name can only use period as decimal separator #. but printf format strings use comma for some locales, so replace comma with period -#: ../src/gui/gtk.c:2752 +#: ../src/gui/gtk.c:2798 ../src/libs/metadata_view.c:762 #, c-format msgid "%.1f" msgstr "%.1f" -#: ../src/gui/gtk.c:2754 +#: ../src/gui/gtk.c:2800 #, c-format msgid "Sans %s" msgstr "Sans %s" -#: ../src/gui/gtk.c:3048 +#: ../src/gui/gtk.c:3094 msgid "does not contain pages" msgstr "Does not contain pages" -#: ../src/gui/gtk.c:3265 +#: ../src/gui/gtk.c:3313 #, c-format msgid "never show more than %d lines" msgstr "Never show more than %d lines" -#: ../src/gui/gtkentry.c:172 +#: ../src/gui/gtkentry.c:173 msgid "$(ROLL.NAME) - roll of the input image" msgstr "$(ROLL.NAME) - roll of the input image" -#: ../src/gui/gtkentry.c:173 +#: ../src/gui/gtkentry.c:174 msgid "$(FILE.FOLDER) - folder containing the input image" msgstr "$(FILE.FOLDER) - folder containing the input image" -#: ../src/gui/gtkentry.c:174 +#: ../src/gui/gtkentry.c:175 msgid "$(FILE.NAME) - basename of the input image" msgstr "$(FILE.NAME) - basename of the input image" -#: ../src/gui/gtkentry.c:175 +#: ../src/gui/gtkentry.c:176 msgid "$(FILE.EXTENSION) - extension of the input image" msgstr "$(FILE.EXTENSION) - extension of the input image" -#: ../src/gui/gtkentry.c:176 +#: ../src/gui/gtkentry.c:177 msgid "$(VERSION) - duplicate version" msgstr "$(VERSION) - duplicate version" -#: ../src/gui/gtkentry.c:177 +#: ../src/gui/gtkentry.c:178 msgid "" "$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version " "exists" @@ -10252,116 +10746,116 @@ "$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version " "exists" -#: ../src/gui/gtkentry.c:178 +#: ../src/gui/gtkentry.c:179 msgid "$(VERSION.NAME) - version name from metadata" msgstr "$(VERSION.NAME) - version name from metadata" -#: ../src/gui/gtkentry.c:179 +#: ../src/gui/gtkentry.c:180 msgid "$(JOBCODE) - job code for import" msgstr "$(JOBCODE) - job code for import" -#: ../src/gui/gtkentry.c:180 +#: ../src/gui/gtkentry.c:181 msgid "$(SEQUENCE) - sequence number" msgstr "$(SEQUENCE) - sequence number" -#: ../src/gui/gtkentry.c:181 +#: ../src/gui/gtkentry.c:182 msgid "$(WIDTH.MAX) - maximum image export width" msgstr "$(WIDTH.MAX) - maximum image export width" -#: ../src/gui/gtkentry.c:182 +#: ../src/gui/gtkentry.c:183 msgid "$(WIDTH.SENSOR) - image sensor width" msgstr "$(WIDTH.SENSOR) - image sensor width" -#: ../src/gui/gtkentry.c:183 +#: ../src/gui/gtkentry.c:184 msgid "$(WIDTH.RAW) - RAW image width" msgstr "$(WIDTH.RAW) - RAW image width" -#: ../src/gui/gtkentry.c:184 +#: ../src/gui/gtkentry.c:185 msgid "$(WIDTH.CROP) - image width after crop" msgstr "$(WIDTH.CROP) - image width after crop" -#: ../src/gui/gtkentry.c:185 +#: ../src/gui/gtkentry.c:186 msgid "$(WIDTH.EXPORT) - exported image width" msgstr "$(WIDTH.EXPORT) - exported image width" -#: ../src/gui/gtkentry.c:186 +#: ../src/gui/gtkentry.c:187 msgid "$(HEIGHT.MAX) - maximum image export height" msgstr "$(HEIGHT.MAX) - maximum image export height" -#: ../src/gui/gtkentry.c:187 +#: ../src/gui/gtkentry.c:188 msgid "$(HEIGHT.SENSOR) - image sensor height" msgstr "$(HEIGHT.SENSOR) - image sensor height" -#: ../src/gui/gtkentry.c:188 +#: ../src/gui/gtkentry.c:189 msgid "$(HEIGHT.RAW) - RAW image height" msgstr "$(HEIGHT.RAW) - RAW image height" -#: ../src/gui/gtkentry.c:189 +#: ../src/gui/gtkentry.c:190 msgid "$(HEIGHT.CROP) - image height after crop" msgstr "$(HEIGHT.CROP) - image height after crop" -#: ../src/gui/gtkentry.c:190 +#: ../src/gui/gtkentry.c:191 msgid "$(HEIGHT.EXPORT) - exported image height" msgstr "$(HEIGHT.EXPORT) - exported image height" -#: ../src/gui/gtkentry.c:191 +#: ../src/gui/gtkentry.c:192 msgid "$(YEAR) - year" msgstr "$(YEAR) - year" -#: ../src/gui/gtkentry.c:192 +#: ../src/gui/gtkentry.c:193 msgid "$(YEAR.SHORT) - year without century" msgstr "$(YEAR.SHORT) - year without century" -#: ../src/gui/gtkentry.c:193 +#: ../src/gui/gtkentry.c:194 msgid "$(MONTH) - month" msgstr "$(MONTH) - month" -#: ../src/gui/gtkentry.c:194 +#: ../src/gui/gtkentry.c:195 msgid "$(MONTH.SHORT) - abbreviated month name according to the current locale" msgstr "" "$(MONTH.SHORT) - abbreviated month name according to the current locale" -#: ../src/gui/gtkentry.c:195 +#: ../src/gui/gtkentry.c:196 msgid "$(MONTH.LONG) - full month name according to the current locale" msgstr "$(MONTH.LONG) - full month name according to the current locale" -#: ../src/gui/gtkentry.c:196 +#: ../src/gui/gtkentry.c:197 msgid "$(DAY) - day" msgstr "$(DAY) - day" -#: ../src/gui/gtkentry.c:197 +#: ../src/gui/gtkentry.c:198 msgid "$(HOUR) - hour" msgstr "$(HOUR) - hour" -#: ../src/gui/gtkentry.c:198 +#: ../src/gui/gtkentry.c:199 msgid "$(HOUR.AMPM) - hour, 12-hour clock" msgstr "$(HOUR.AMPM) - hour, 12-hour clock" -#: ../src/gui/gtkentry.c:199 +#: ../src/gui/gtkentry.c:200 msgid "$(MINUTE) - minute" msgstr "$(MINUTE) - minute" -#: ../src/gui/gtkentry.c:200 +#: ../src/gui/gtkentry.c:201 msgid "$(SECOND) - second" msgstr "$(SECOND) - second" -#: ../src/gui/gtkentry.c:201 +#: ../src/gui/gtkentry.c:202 msgid "$(MSEC) - millisecond" msgstr "$(MSEC) - millisecond" -#: ../src/gui/gtkentry.c:202 +#: ../src/gui/gtkentry.c:203 msgid "$(EXIF.YEAR) - EXIF year" msgstr "$(EXIF.YEAR) - EXIF year" -#: ../src/gui/gtkentry.c:203 +#: ../src/gui/gtkentry.c:204 msgid "$(EXIF.YEAR.SHORT) - EXIF year without century" msgstr "$(EXIF.YEAR.SHORT) - EXIF year without century" -#: ../src/gui/gtkentry.c:204 +#: ../src/gui/gtkentry.c:205 msgid "$(EXIF.MONTH) - EXIF month" msgstr "$(EXIF.MONTH) - EXIF month" -#: ../src/gui/gtkentry.c:205 +#: ../src/gui/gtkentry.c:206 msgid "" "$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current " "locale" @@ -10369,161 +10863,169 @@ "$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current " "locale" -#: ../src/gui/gtkentry.c:206 +#: ../src/gui/gtkentry.c:207 msgid "" "$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" msgstr "" "$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" -#: ../src/gui/gtkentry.c:207 +#: ../src/gui/gtkentry.c:208 msgid "$(EXIF.DAY) - EXIF day" msgstr "$(EXIF.DAY) - EXIF day" -#: ../src/gui/gtkentry.c:208 +#: ../src/gui/gtkentry.c:209 msgid "$(EXIF.HOUR) - EXIF hour" msgstr "$(EXIF.HOUR) - EXIF hour" -#: ../src/gui/gtkentry.c:209 +#: ../src/gui/gtkentry.c:210 msgid "$(EXIF.HOUR.AMPM) - EXIF hour, 12-hour clock" msgstr "$(EXIF.HOUR.AMPM) - EXIF hour, 12-hour clock" -#: ../src/gui/gtkentry.c:210 +#: ../src/gui/gtkentry.c:211 msgid "$(EXIF.MINUTE) - EXIF minute" msgstr "$(EXIF.MINUTE) - EXIF minute" -#: ../src/gui/gtkentry.c:211 +#: ../src/gui/gtkentry.c:212 msgid "$(EXIF.SECOND) - EXIF second" msgstr "$(EXIF.SECOND) - EXIF second" -#: ../src/gui/gtkentry.c:212 +#: ../src/gui/gtkentry.c:213 msgid "$(EXIF.MSEC) - EXIF millisecond" msgstr "$(EXIF.MSEC) - EXIF millisecond" -#: ../src/gui/gtkentry.c:213 +#: ../src/gui/gtkentry.c:214 msgid "$(EXIF.ISO) - ISO value" msgstr "$(EXIF.ISO) - ISO value" -#: ../src/gui/gtkentry.c:214 +#: ../src/gui/gtkentry.c:215 msgid "$(EXIF.EXPOSURE) - EXIF exposure" msgstr "$(EXIF.EXPOSURE) - EXIF exposure" -#: ../src/gui/gtkentry.c:215 +#: ../src/gui/gtkentry.c:216 msgid "$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias" msgstr "$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias" -#: ../src/gui/gtkentry.c:216 +#: ../src/gui/gtkentry.c:217 msgid "$(EXIF.APERTURE) - EXIF aperture" msgstr "$(EXIF.APERTURE) - EXIF aperture" -#: ../src/gui/gtkentry.c:217 +#: ../src/gui/gtkentry.c:218 +msgid "$(EXIF.CROP_FACTOR) - EXIF crop factor" +msgstr "$(EXIF.CROP_FACTOR) - EXIF crop factor" + +#: ../src/gui/gtkentry.c:219 msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" msgstr "$(EXIF.FOCAL.LENGTH) - EXIF focal length" -#: ../src/gui/gtkentry.c:218 +#: ../src/gui/gtkentry.c:220 +msgid "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent focal length" +msgstr "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent focal length" + +#: ../src/gui/gtkentry.c:221 msgid "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" msgstr "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" -#: ../src/gui/gtkentry.c:219 +#: ../src/gui/gtkentry.c:222 msgid "$(EXIF.MAKER) - camera maker" msgstr "$(EXIF.MAKER) - camera maker" -#: ../src/gui/gtkentry.c:220 +#: ../src/gui/gtkentry.c:223 msgid "$(EXIF.MODEL) - camera model" msgstr "$(EXIF.MODEL) - camera model" -#: ../src/gui/gtkentry.c:221 +#: ../src/gui/gtkentry.c:224 msgid "$(EXIF.LENS) - lens" msgstr "$(EXIF.LENS) - lens" -#: ../src/gui/gtkentry.c:222 +#: ../src/gui/gtkentry.c:225 msgid "$(LONGITUDE) - longitude" msgstr "$(LONGITUDE) - longitude" -#: ../src/gui/gtkentry.c:223 +#: ../src/gui/gtkentry.c:226 msgid "$(LATITUDE) - latitude" msgstr "$(LATITUDE) - latitude" -#: ../src/gui/gtkentry.c:224 +#: ../src/gui/gtkentry.c:227 msgid "$(ELEVATION) - elevation" msgstr "$(ELEVATION) - elevation" -#: ../src/gui/gtkentry.c:225 +#: ../src/gui/gtkentry.c:228 msgid "$(STARS) - star rating as number (-1 for rejected)" msgstr "$(STARS) - star rating as number (-1 for rejected)" -#: ../src/gui/gtkentry.c:226 +#: ../src/gui/gtkentry.c:229 msgid "$(RATING.ICONS) - star/reject rating in icon form" msgstr "$(RATING.ICONS) - star/reject rating in icon form" -#: ../src/gui/gtkentry.c:227 +#: ../src/gui/gtkentry.c:230 msgid "$(LABELS) - color labels as text" msgstr "$(LABELS) - color labels as text" -#: ../src/gui/gtkentry.c:228 +#: ../src/gui/gtkentry.c:231 msgid "$(LABELS.ICONS) - color labels as icons" msgstr "$(LABELS.ICONS) - color labels as icons" -#: ../src/gui/gtkentry.c:229 +#: ../src/gui/gtkentry.c:232 msgid "$(ID) - image ID" msgstr "$(ID) - image ID" -#: ../src/gui/gtkentry.c:230 +#: ../src/gui/gtkentry.c:233 msgid "$(TITLE) - title from metadata" msgstr "$(TITLE) - title from metadata" -#: ../src/gui/gtkentry.c:231 +#: ../src/gui/gtkentry.c:234 msgid "$(DESCRIPTION) - description from metadata" msgstr "$(DESCRIPTION) - description from metadata" -#: ../src/gui/gtkentry.c:232 +#: ../src/gui/gtkentry.c:235 msgid "$(CREATOR) - creator from metadata" msgstr "$(CREATOR) - creator from metadata" -#: ../src/gui/gtkentry.c:233 +#: ../src/gui/gtkentry.c:236 msgid "$(PUBLISHER) - publisher from metadata" msgstr "$(PUBLISHER) - publisher from metadata" -#: ../src/gui/gtkentry.c:234 +#: ../src/gui/gtkentry.c:237 msgid "$(RIGHTS) - rights from metadata" msgstr "$(RIGHTS) - rights from metadata" -#: ../src/gui/gtkentry.c:235 +#: ../src/gui/gtkentry.c:238 msgid "$(USERNAME) - login name" msgstr "$(USERNAME) - login name" -#: ../src/gui/gtkentry.c:236 +#: ../src/gui/gtkentry.c:239 msgid "$(FOLDER.PICTURES) - pictures folder" msgstr "$(FOLDER.PICTURES) - pictures folder" -#: ../src/gui/gtkentry.c:237 +#: ../src/gui/gtkentry.c:240 msgid "$(FOLDER.HOME) - home folder" msgstr "$(FOLDER.HOME) - home folder" -#: ../src/gui/gtkentry.c:238 +#: ../src/gui/gtkentry.c:241 msgid "$(FOLDER.DESKTOP) - desktop folder" msgstr "$(FOLDER.DESKTOP) - desktop folder" -#: ../src/gui/gtkentry.c:239 +#: ../src/gui/gtkentry.c:242 msgid "$(OPENCL.ACTIVATED) - whether OpenCL is activated" msgstr "$(OPENCL.ACTIVATED) - whether OpenCL is activated" -#: ../src/gui/gtkentry.c:240 +#: ../src/gui/gtkentry.c:243 msgid "$(CATEGORY0(category)) - subtag of level 0 in hierarchical tags" msgstr "$(CATEGORY0(category)) - subtag of level 0 in hierarchical tags" -#: ../src/gui/gtkentry.c:241 +#: ../src/gui/gtkentry.c:244 msgid "$(TAGS) - tags as set in metadata settings" msgstr "$(TAGS) - tags as set in metadata settings" -#: ../src/gui/gtkentry.c:242 +#: ../src/gui/gtkentry.c:245 msgid "$(DARKTABLE.NAME) - darktable name" msgstr "$(DARKTABLE.NAME) - Darktable name" -#: ../src/gui/gtkentry.c:243 +#: ../src/gui/gtkentry.c:246 msgid "$(DARKTABLE.VERSION) - current darktable version" msgstr "$(DARKTABLE.VERSION) - current Darktable version" -#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:255 +#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:248 msgid "grid" msgstr "Grid" @@ -10593,11 +11095,11 @@ msgstr "Global guide overlay settings" #: ../src/gui/guides.c:710 ../src/gui/guides.c:719 ../src/gui/guides.c:727 -#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2648 +#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2494 msgid "guide lines" msgstr "Guide lines" -#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2092 +#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2145 msgid "flip" msgstr "Flip" @@ -10613,8 +11115,8 @@ msgid "vertically" msgstr "Vertically" -#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6285 ../src/iop/clipping.c:2096 -#: ../src/iop/colorbalance.c:1917 +#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6232 ../src/iop/clipping.c:2149 +#: ../src/iop/colorbalance.c:1892 msgid "both" msgstr "Both" @@ -10662,26 +11164,26 @@ msgid "select parts to paste" msgstr "Select parts to paste" -#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:517 +#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:524 msgid "select _all" msgstr "Select _all" -#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:518 +#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:525 msgid "select _none" msgstr "Select _none" -#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:593 -#: ../src/gui/styles_dialog.c:615 +#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:605 +#: ../src/gui/styles_dialog.c:627 msgid "include" msgstr "Include" -#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:669 -#: ../src/gui/styles_dialog.c:675 +#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:681 +#: ../src/gui/styles_dialog.c:687 msgid "item" msgstr "Item" -#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:682 -#: ../src/gui/styles_dialog.c:691 +#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:694 +#: ../src/gui/styles_dialog.c:703 msgid "mask" msgstr "Mask" @@ -10734,11 +11236,11 @@ msgid "interface language" msgstr "Interface language" -#: ../src/gui/preferences.c:289 +#: ../src/gui/preferences.c:290 msgid "double-click to reset to the system language" msgstr "Double-click to reset to the system language" -#: ../src/gui/preferences.c:291 +#: ../src/gui/preferences.c:292 msgid "" "set the language of the user interface. the system default is marked with an " "* (needs a restart)" @@ -10746,27 +11248,27 @@ "Set the language of the user interface. The system default is marked with an " "* (needs a restart)" -#: ../src/gui/preferences.c:300 +#: ../src/gui/preferences.c:301 msgid "theme" msgstr "Theme" -#: ../src/gui/preferences.c:328 +#: ../src/gui/preferences.c:331 msgid "set the theme for the user interface" msgstr "Set the theme for the user interface" -#: ../src/gui/preferences.c:341 ../src/gui/preferences.c:348 +#: ../src/gui/preferences.c:344 ../src/gui/preferences.c:351 msgid "use system font size" msgstr "Use system font size" -#: ../src/gui/preferences.c:357 ../src/gui/preferences.c:364 +#: ../src/gui/preferences.c:360 ../src/gui/preferences.c:367 msgid "font size in points" msgstr "Font size in points" -#: ../src/gui/preferences.c:369 +#: ../src/gui/preferences.c:372 msgid "GUI controls and text DPI" msgstr "GUI controls and text DPI" -#: ../src/gui/preferences.c:376 +#: ../src/gui/preferences.c:379 msgid "" "adjust the global GUI resolution to rescale controls, buttons, labels, etc.\n" "increase for a magnified GUI, decrease to fit more content in window.\n" @@ -10781,77 +11283,61 @@ "(needs a restart)." #. checkbox to allow user to modify theme with user.css -#: ../src/gui/preferences.c:385 +#: ../src/gui/preferences.c:388 msgid "modify selected theme with CSS tweaks below" msgstr "Modify selected theme with CSS tweaks below" -#: ../src/gui/preferences.c:393 +#: ../src/gui/preferences.c:396 msgid "modify theme with CSS keyed below (saved to user.css)" msgstr "Modify theme with CSS keyed below (saved to user.css)" -#: ../src/gui/preferences.c:415 +#: ../src/gui/preferences.c:418 msgctxt "usercss" msgid "save CSS and apply" msgstr "Save CSS and apply" -#: ../src/gui/preferences.c:420 +#: ../src/gui/preferences.c:423 msgid "click to save and apply the CSS tweaks entered in this editor" msgstr "Click to save and apply the CSS tweaks entered in this editor" -#: ../src/gui/preferences.c:422 +#: ../src/gui/preferences.c:425 msgid "open help page for CSS tweaks" msgstr "Open help page for CSS tweaks" #. load default text with some pointers -#: ../src/gui/preferences.c:443 +#: ../src/gui/preferences.c:446 msgid "ERROR Loading user.css" msgstr "ERROR Loading user.css" #. load default text -#: ../src/gui/preferences.c:452 +#: ../src/gui/preferences.c:455 msgid "Enter CSS theme tweaks here" msgstr "Enter CSS theme tweaks here" -#: ../src/gui/preferences.c:488 +#: ../src/gui/preferences.c:491 msgid "darktable preferences" msgstr "Darktable preferences" -#: ../src/gui/preferences.c:533 -msgid "processing" -msgstr "Processing" - -#: ../src/gui/preferences.c:534 -msgid "security" -msgstr "Security" - -#: ../src/gui/preferences.c:535 -msgid "storage" -msgstr "Storage" - -#: ../src/gui/preferences.c:536 -msgid "miscellaneous" -msgstr "Miscellaneous" - -#: ../src/gui/preferences.c:561 +#: ../src/gui/preferences.c:559 msgid "darktable needs to be restarted for settings to take effect" msgstr "Darktable needs to be restarted for settings to take effect" #. exif -#: ../src/gui/preferences.c:820 ../src/gui/presets.c:644 -#: ../src/libs/metadata_view.c:137 +#: ../src/gui/preferences.c:818 ../src/gui/presets.c:647 +#: ../src/libs/metadata_view.c:139 msgid "model" msgstr "Model" -#: ../src/gui/preferences.c:824 ../src/gui/presets.c:652 -#: ../src/libs/metadata_view.c:138 +#: ../src/gui/preferences.c:822 ../src/gui/presets.c:655 +#: ../src/libs/metadata_view.c:140 msgid "maker" msgstr "Maker" -#: ../src/gui/preferences.c:861 +#: ../src/gui/preferences.c:859 msgid "search presets list" msgstr "Search presets list" -#: ../src/gui/preferences.c:862 +#: ../src/gui/preferences.c:860 msgid "" "incrementally search the list of presets\n" "press up or down keys to cycle through matches" @@ -10859,70 +11345,70 @@ "Incrementally search the list of presets\n" "Press up or down keys to cycle through matches" -#: ../src/gui/preferences.c:868 +#: ../src/gui/preferences.c:866 msgctxt "preferences" msgid "import..." msgstr "Import..." -#: ../src/gui/preferences.c:872 +#: ../src/gui/preferences.c:870 msgctxt "preferences" msgid "export..." msgstr "Export..." -#: ../src/gui/preferences.c:1031 +#: ../src/gui/preferences.c:1030 #, c-format msgid "failed to import preset %s" msgstr "Failed to import preset %s" -#: ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1041 msgid "select preset(s) to import" msgstr "Select preset(s) to import" -#: ../src/gui/preferences.c:1043 ../src/libs/collect.c:408 -#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:929 -#: ../src/libs/import.c:1506 ../src/libs/import.c:1610 ../src/libs/styles.c:527 +#: ../src/gui/preferences.c:1042 ../src/libs/collect.c:425 +#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:930 +#: ../src/libs/import.c:1515 ../src/libs/import.c:1619 ../src/libs/styles.c:529 msgid "_open" msgstr "_Open" -#: ../src/gui/preferences.c:1052 +#: ../src/gui/preferences.c:1051 msgid "darktable preset files" msgstr "Darktable preset files" -#: ../src/gui/preferences.c:1057 ../src/iop/lut3d.c:1577 -#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:945 -#: ../src/libs/styles.c:541 +#: ../src/gui/preferences.c:1056 ../src/iop/lut3d.c:1591 +#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:946 +#: ../src/libs/styles.c:543 msgid "all files" msgstr "All files" -#: ../src/gui/presets.c:59 +#: ../src/gui/presets.c:61 msgid "non-raw" msgstr "Non-raw" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:332 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:336 msgid "raw" msgstr "Raw" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:333 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:337 msgid "HDR" msgstr "HDR" -#: ../src/gui/presets.c:59 ../src/iop/monochrome.c:77 ../src/libs/image.c:608 -#: ../src/libs/metadata_view.c:339 +#: ../src/gui/presets.c:61 ../src/iop/monochrome.c:77 ../src/libs/image.c:679 +#: ../src/libs/metadata_view.c:343 msgid "monochrome" msgstr "Monochrome" -#: ../src/gui/presets.c:151 +#: ../src/gui/presets.c:153 #, c-format msgid "preset `%s' is write-protected, can't delete!" msgstr "Preset `%s' is write-protected, can't delete!" -#: ../src/gui/presets.c:157 ../src/gui/presets.c:461 ../src/libs/lib.c:238 -#: ../src/libs/modulegroups.c:3701 +#: ../src/gui/presets.c:159 ../src/gui/presets.c:463 ../src/libs/lib.c:238 +#: ../src/libs/modulegroups.c:3703 msgid "delete preset?" msgstr "Delete preset?" -#: ../src/gui/presets.c:158 ../src/gui/presets.c:462 ../src/libs/lib.c:239 -#: ../src/libs/modulegroups.c:3702 +#: ../src/gui/presets.c:160 ../src/gui/presets.c:464 ../src/libs/lib.c:239 +#: ../src/libs/modulegroups.c:3704 #, c-format msgid "do you really want to delete the preset `%s'?" msgstr "Do you really want to delete the preset `%s'?" @@ -10933,25 +11419,25 @@ #. clang-format on #. create a shortcut for the new entry #. then show edit dialog -#: ../src/gui/presets.c:200 ../src/gui/presets.c:1035 ../src/gui/presets.c:1038 -#: ../src/gui/presets.c:1041 ../src/libs/lib.c:188 ../src/libs/lib.c:205 +#: ../src/gui/presets.c:202 ../src/gui/presets.c:1022 ../src/gui/presets.c:1025 +#: ../src/gui/presets.c:1028 ../src/libs/lib.c:188 ../src/libs/lib.c:205 #: ../src/libs/lib.c:213 ../src/libs/lib.c:216 msgid "new preset" msgstr "New preset" -#: ../src/gui/presets.c:207 +#: ../src/gui/presets.c:209 msgid "please give preset a name" msgstr "Please give preset a name" -#: ../src/gui/presets.c:212 +#: ../src/gui/presets.c:214 msgid "unnamed preset" msgstr "Unnamed preset" -#: ../src/gui/presets.c:241 +#: ../src/gui/presets.c:243 msgid "overwrite preset?" msgstr "Overwrite preset?" -#: ../src/gui/presets.c:242 +#: ../src/gui/presets.c:244 #, c-format msgid "" "preset `%s' already exists.\n" @@ -10960,38 +11446,43 @@ "Preset `%s' already exists.\n" "Do you want to overwrite?" -#: ../src/gui/presets.c:420 ../src/imageio/storage/disk.c:123 -#: ../src/imageio/storage/gallery.c:110 ../src/imageio/storage/latex.c:109 +#: ../src/gui/presets.c:422 ../src/imageio/storage/disk.c:198 +#: ../src/imageio/storage/gallery.c:150 ../src/imageio/storage/latex.c:146 msgid "_select as output destination" msgstr "_Select as output destination" -#: ../src/gui/presets.c:429 +#: ../src/gui/presets.c:431 #, c-format msgid "preset %s was successfully exported" msgstr "Preset %s was successfully exported" -#: ../src/gui/presets.c:557 +#: ../src/gui/presets.c:559 #, c-format msgid "edit `%s' for module `%s'" msgstr "Edit `%s' for module `%s'" -#: ../src/gui/presets.c:561 +#: ../src/gui/presets.c:563 msgid "_export..." msgstr "_Export..." -#: ../src/gui/presets.c:585 +#: ../src/gui/presets.c:564 ../src/libs/tagging.c:1489 +#: ../src/libs/tagging.c:1580 +msgid "_delete" +msgstr "_Delete" + +#: ../src/gui/presets.c:588 msgid "name of the preset" msgstr "Name of the preset" -#: ../src/gui/presets.c:594 +#: ../src/gui/presets.c:597 msgid "description or further information" msgstr "Description or further information" -#: ../src/gui/presets.c:598 +#: ../src/gui/presets.c:601 msgid "reset all module parameters to their default values" msgstr "Reset all module parameters to their default values" -#: ../src/gui/presets.c:601 +#: ../src/gui/presets.c:604 msgid "" "the parameters will be reset to their default values, which may be " "automatically set based on image metadata" @@ -10999,15 +11490,15 @@ "The parameters will be reset to their default values, which may be " "automatically set based on image metadata" -#: ../src/gui/presets.c:607 +#: ../src/gui/presets.c:610 msgid "auto apply this preset to matching images" msgstr "Auto apply this preset to matching images" -#: ../src/gui/presets.c:611 +#: ../src/gui/presets.c:614 msgid "only show this preset for matching images" msgstr "Only show this preset for matching images" -#: ../src/gui/presets.c:613 +#: ../src/gui/presets.c:616 msgid "" "be very careful with this option. this might be the last time you see your " "preset." @@ -11015,26 +11506,26 @@ "Be very careful with this option. This might be the last time you see your " "preset." -#: ../src/gui/presets.c:643 +#: ../src/gui/presets.c:646 #, no-c-format msgid "string to match model (use % as wildcard)" msgstr "String to match model (use % as wildcard)" -#: ../src/gui/presets.c:651 +#: ../src/gui/presets.c:654 #, no-c-format msgid "string to match maker (use % as wildcard)" msgstr "String to match maker (use % as wildcard)" -#: ../src/gui/presets.c:659 +#: ../src/gui/presets.c:662 #, no-c-format msgid "string to match lens (use % as wildcard)" msgstr "String to match lens (use % as wildcard)" -#: ../src/gui/presets.c:669 +#: ../src/gui/presets.c:672 msgid "minimum ISO value" msgstr "Minimum ISO value" -#: ../src/gui/presets.c:675 +#: ../src/gui/presets.c:678 msgid "" "maximum ISO value\n" "if left blank, it is equivalent to no upper limit" @@ -11042,70 +11533,70 @@ "Maximum ISO value\n" "If left blank, it is equivalent to no upper limit" -#: ../src/gui/presets.c:688 +#: ../src/gui/presets.c:691 msgid "minimum exposure time" msgstr "Minimum exposure time" -#: ../src/gui/presets.c:689 +#: ../src/gui/presets.c:692 msgid "maximum exposure time" msgstr "Maximum exposure time" -#: ../src/gui/presets.c:705 +#: ../src/gui/presets.c:708 msgid "minimum aperture value" msgstr "Minimum aperture value" -#: ../src/gui/presets.c:706 +#: ../src/gui/presets.c:709 msgid "maximum aperture value" msgstr "Maximum aperture value" -#: ../src/gui/presets.c:724 +#: ../src/gui/presets.c:727 msgid "minimum focal length" msgstr "Minimum focal length" -#: ../src/gui/presets.c:725 +#: ../src/gui/presets.c:728 msgid "maximum focal length" msgstr "Maximum focal length" #. raw/hdr/ldr/mono/color -#: ../src/gui/presets.c:733 ../src/imageio/format/j2k.c:650 +#: ../src/gui/presets.c:736 msgid "format" msgstr "Format" -#: ../src/gui/presets.c:738 +#: ../src/gui/presets.c:741 msgid "select image types you want this preset to be available for" msgstr "Select image types you want this preset to be available for" -#: ../src/gui/presets.c:751 ../src/libs/filtering.c:1201 +#: ../src/gui/presets.c:754 ../src/libs/filtering.c:1263 msgid "and" msgstr "and" -#: ../src/gui/presets.c:795 ../src/gui/presets.c:847 +#: ../src/gui/presets.c:798 ../src/gui/presets.c:850 msgid "∞" msgstr "∞" -#: ../src/gui/presets.c:979 +#: ../src/gui/presets.c:966 #, c-format msgid "preset `%s' is write-protected! can't edit it!" msgstr "Preset `%s' is write-protected! Can't edit it!" -#: ../src/gui/presets.c:1003 ../src/libs/lib.c:158 +#: ../src/gui/presets.c:990 ../src/libs/lib.c:158 msgid "update preset?" msgstr "Update preset?" -#: ../src/gui/presets.c:1004 ../src/libs/lib.c:159 +#: ../src/gui/presets.c:991 ../src/libs/lib.c:159 #, c-format msgid "do you really want to update the preset `%s'?" msgstr "Do you really want to update the preset `%s'?" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(first)" msgstr "(first)" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(last)" msgstr "(last)" -#: ../src/gui/presets.c:1165 +#: ../src/gui/presets.c:1152 #, c-format msgid "" "preset %s\n" @@ -11114,63 +11605,63 @@ "Preset %s\n" "%s" -#: ../src/gui/presets.c:1166 +#: ../src/gui/presets.c:1153 msgid "no presets" msgstr "No presets" -#: ../src/gui/presets.c:1199 ../src/iop/basecurve.c:528 -#: ../src/iop/basecurve.c:532 ../src/iop/basecurve.c:535 +#: ../src/gui/presets.c:1188 ../src/iop/basecurve.c:575 +#: ../src/iop/basecurve.c:579 ../src/iop/basecurve.c:582 msgid "display-referred default" msgstr "Display-referred default" -#: ../src/gui/presets.c:1201 ../src/iop/channelmixerrgb.c:332 -#: ../src/iop/channelmixerrgb.c:336 ../src/iop/channelmixerrgb.c:339 -#: ../src/iop/exposure.c:297 ../src/iop/exposure.c:301 -#: ../src/iop/exposure.c:304 ../src/iop/filmicrgb.c:3248 -#: ../src/iop/filmicrgb.c:3252 ../src/iop/filmicrgb.c:3255 -#: ../src/iop/sigmoid.c:134 ../src/iop/sigmoid.c:138 ../src/iop/sigmoid.c:141 +#: ../src/gui/presets.c:1190 ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:400 ../src/iop/channelmixerrgb.c:403 +#: ../src/iop/exposure.c:319 ../src/iop/exposure.c:323 +#: ../src/iop/exposure.c:326 ../src/iop/filmicrgb.c:3311 +#: ../src/iop/filmicrgb.c:3315 ../src/iop/filmicrgb.c:3318 +#: ../src/iop/sigmoid.c:240 ../src/iop/sigmoid.c:243 ../src/iop/sigmoid.c:245 msgid "scene-referred default" msgstr "Scene-referred default" -#: ../src/gui/presets.c:1393 ../src/libs/modulegroups.c:3781 -#: ../src/libs/modulegroups.c:3790 +#: ../src/gui/presets.c:1394 ../src/libs/modulegroups.c:3783 +#: ../src/libs/modulegroups.c:3792 msgid "manage module layouts" msgstr "Manage module layouts" -#: ../src/gui/presets.c:1402 +#: ../src/gui/presets.c:1403 msgid "manage quick presets" msgstr "Manage quick presets" -#: ../src/gui/presets.c:1586 +#: ../src/gui/presets.c:1587 msgid "manage quick presets list..." msgstr "Manage quick presets list..." -#: ../src/gui/presets.c:1727 +#: ../src/gui/presets.c:1728 msgid "(default)" msgstr "(default)" -#: ../src/gui/presets.c:1754 +#: ../src/gui/presets.c:1755 msgid "disabled: wrong module version" msgstr "Disabled: wrong module version" -#: ../src/gui/presets.c:1776 ../src/libs/lib.c:551 +#: ../src/gui/presets.c:1777 ../src/libs/lib.c:551 msgid "edit this preset.." msgstr "Edit this preset.." -#: ../src/gui/presets.c:1781 ../src/libs/lib.c:555 +#: ../src/gui/presets.c:1782 ../src/libs/lib.c:555 msgid "delete this preset" msgstr "Delete this preset" -#: ../src/gui/presets.c:1788 ../src/libs/lib.c:563 +#: ../src/gui/presets.c:1789 ../src/libs/lib.c:563 msgid "store new preset.." msgstr "Store new preset.." -#: ../src/gui/presets.c:1796 ../src/libs/lib.c:576 +#: ../src/gui/presets.c:1797 ../src/libs/lib.c:576 msgid "update preset" msgstr "Update preset" #: ../src/gui/styles_dialog.c:221 ../src/libs/styles.c:437 -#: ../src/libs/styles.c:620 +#: ../src/libs/styles.c:622 msgid "overwrite style?" msgstr "Overwrite style?" @@ -11196,39 +11687,39 @@ msgid "style %s was successfully saved" msgstr "Style %s was successfully saved" -#: ../src/gui/styles_dialog.c:505 +#: ../src/gui/styles_dialog.c:512 msgid "edit style" msgstr "Edit style" -#: ../src/gui/styles_dialog.c:506 +#: ../src/gui/styles_dialog.c:513 msgid "duplicate style" msgstr "Duplicate style" -#: ../src/gui/styles_dialog.c:507 +#: ../src/gui/styles_dialog.c:514 msgid "creates a duplicate of the style before applying changes" msgstr "Creates a duplicate of the style before applying changes" -#: ../src/gui/styles_dialog.c:511 +#: ../src/gui/styles_dialog.c:518 msgid "create new style" msgstr "Create new style" -#: ../src/gui/styles_dialog.c:549 +#: ../src/gui/styles_dialog.c:557 msgid "enter a name for the new style" msgstr "Enter a name for the new style" -#: ../src/gui/styles_dialog.c:554 +#: ../src/gui/styles_dialog.c:565 msgid "enter a description for the new style, this description is searchable" msgstr "Enter a description for the new style, this description is searchable" -#: ../src/gui/styles_dialog.c:593 +#: ../src/gui/styles_dialog.c:605 msgid "keep" msgstr "Keep" -#: ../src/gui/styles_dialog.c:820 +#: ../src/gui/styles_dialog.c:832 msgid "can't create style out of unaltered image" msgstr "Can't create style out of unaltered image" -#: ../src/imageio/imageio.c:804 +#: ../src/imageio/imageio.c:816 #, c-format msgid "" "failed to allocate memory for %s, please lower the threads used for export " @@ -11237,91 +11728,115 @@ "Failed to allocate memory for %s, please lower the threads used for export " "or buy more memory." -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "thumbnail export" msgstr "Thumbnail export" -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "export" msgstr "Export" -#: ../src/imageio/imageio.c:819 +#: ../src/imageio/imageio.c:831 #, c-format msgid "cannot find the style '%s' to apply during export." msgstr "Cannot find the style '%s' to apply during export." -#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:536 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/imageio_libraw.c:295 +msgid "" +"<span foreground='red'><b>WARNING</b></span>: camera is not fully supported!" +msgstr "" +"<span foreground='red'><b>WARNING</b></span>: camera is not fully supported!" + +#: ../src/imageio/imageio_libraw.c:297 +#, c-format +msgid "" +"colors for `%s' could be misrepresented,\n" +"and edits might not be compatible with future versions." +msgstr "" +"Colors for '%s' could be misrepresented,\n" +"and edits might not be compatible with future versions." + +#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:641 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "8 bit" msgstr "8 bit" -#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:567 msgid "10 bit" msgstr "10 bit" -#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:567 msgid "12 bit" msgstr "12 bit" -#: ../src/imageio/format/avif.c:431 +#: ../src/imageio/format/avif.c:110 ../src/imageio/format/webp.c:416 +msgid "lossless" +msgstr "Lossless" + +#: ../src/imageio/format/avif.c:112 ../src/imageio/format/webp.c:416 +msgid "lossy" +msgstr "Lossy" + +#: ../src/imageio/format/avif.c:463 msgid "invalid AVIF bit depth!" msgstr "Invalid AVIF bit depth!" -#: ../src/imageio/format/avif.c:694 -msgid "AVIF" -msgstr "AVIF" - #. Bit depth combo box -#: ../src/imageio/format/avif.c:766 ../src/imageio/format/exr.cc:565 -#: ../src/imageio/format/jxl.c:555 ../src/imageio/format/pdf.c:661 -#: ../src/imageio/format/png.c:534 ../src/imageio/format/tiff.c:843 +#: ../src/imageio/format/avif.c:800 ../src/imageio/format/exr.cc:601 +#: ../src/imageio/format/jxl.c:566 ../src/imageio/format/pdf.c:661 +#: ../src/imageio/format/png.c:639 ../src/imageio/format/tiff.c:900 #: ../src/imageio/format/xcf.c:354 msgid "bit depth" msgstr "Bit depth" -#: ../src/imageio/format/avif.c:779 +#: ../src/imageio/format/avif.c:813 msgid "color information stored in an image, higher is better" msgstr "Color information stored in an image, higher is better" -#: ../src/imageio/format/avif.c:787 +#. +#. * Color mode combo box +#. +#. shortfile option combo box +#: ../src/imageio/format/avif.c:820 ../src/imageio/format/tiff.c:944 +msgid "B&W as grayscale" +msgstr "B&W as grayscale" + +#: ../src/imageio/format/avif.c:821 ../src/imageio/format/tiff.c:945 msgid "saving as grayscale will reduce the size for black & white images" msgstr "Saving as grayscale will reduce the size for black & white images" -#: ../src/imageio/format/avif.c:789 -msgid "RGB colors" -msgstr "RGB colors" - -#: ../src/imageio/format/avif.c:789 -msgid "grayscale" -msgstr "Grayscale" - #. #. * Tiling combo box #. -#: ../src/imageio/format/avif.c:799 +#: ../src/imageio/format/avif.c:832 msgid "tiling" msgstr "Tiling" -#: ../src/imageio/format/avif.c:800 +#: ../src/imageio/format/avif.c:833 msgid "" "tile an image into segments.\n" "\n" -"makes encoding faster. the impact on quality reduction is negligible, but " -"increases the file size." +"makes encoding faster, but increases the file size. the loss of image " +"quality is negligible." msgstr "" "Tile an image into segments.\n" "\n" -"Makes encoding faster. The impact on quality reduction is negligible, but " -"increases the file size." +"Makes encoding faster, but increases the file size. The loss of image " +"quality is negligible." -#: ../src/imageio/format/avif.c:817 ../src/imageio/format/webp.c:383 -msgid "compression type" -msgstr "Compression type" +#. compression +#. Compression method combo box +#: ../src/imageio/format/avif.c:850 ../src/imageio/format/exr.cc:611 +#: ../src/imageio/format/pdf.c:676 ../src/imageio/format/png.c:653 +#: ../src/imageio/format/tiff.c:923 ../src/imageio/format/webp.c:414 +#: ../src/libs/masks.c:111 +msgid "compression" +msgstr "Compression" -#: ../src/imageio/format/avif.c:825 +#: ../src/imageio/format/avif.c:858 msgid "the compression for the image" msgstr "The compression for the image" @@ -11330,36 +11845,28 @@ #. step #. default #. digits -#: ../src/imageio/format/avif.c:842 ../src/imageio/format/j2k.c:661 -#: ../src/imageio/format/jpeg.c:587 ../src/imageio/format/jxl.c:579 -#: ../src/imageio/format/webp.c:394 ../src/libs/camera.c:564 +#: ../src/imageio/format/avif.c:878 ../src/imageio/format/j2k.c:679 +#: ../src/imageio/format/jpeg.c:584 ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/webp.c:425 ../src/libs/camera.c:564 msgid "quality" msgstr "Quality" -#: ../src/imageio/format/avif.c:847 +#: ../src/imageio/format/avif.c:881 msgid "" "the quality of an image, less quality means fewer details.\n" "\n" -"the following applies only to lossy setting\n" -"\n" -"pixelformat based on quality:\n" +"pixel format is controlled by quality:\n" "\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" msgstr "" "The quality of an image, less quality means fewer details.\n" "\n" -"The following applies only to lossy setting.\n" -"\n" -"Pixelformat based on quality:\n" +"Pixel format is controlled by quality:\n" "\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" #: ../src/imageio/format/copy.c:109 ../src/libs/copy_history.c:370 -#: ../src/libs/image.c:583 +#: ../src/libs/image.c:647 msgid "copy" msgstr "Copy" @@ -11375,120 +11882,140 @@ msgid "the selected output profile doesn't work well with EXR" msgstr "The selected output profile doesn't work well with EXR" -#: ../src/imageio/format/exr.cc:540 +#: ../src/imageio/format/exr.cc:576 msgid "OpenEXR" msgstr "OpenEXR" -#: ../src/imageio/format/exr.cc:567 +#: ../src/imageio/format/exr.cc:603 msgid "16 bit (float)" msgstr "16 bit (float)" -#: ../src/imageio/format/exr.cc:567 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/format/exr.cc:603 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "32 bit (float)" msgstr "32 bit (float)" -#. compression -#. Compression method combo box -#: ../src/imageio/format/exr.cc:575 ../src/imageio/format/pdf.c:676 -#: ../src/imageio/format/png.c:548 ../src/imageio/format/tiff.c:866 -#: ../src/libs/masks.c:110 -msgid "compression" -msgstr "Compression" - -#: ../src/imageio/format/exr.cc:577 ../src/imageio/format/pdf.c:682 -#: ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/exr.cc:613 ../src/imageio/format/pdf.c:682 +#: ../src/imageio/format/tiff.c:924 msgid "uncompressed" msgstr "Uncompressed" -#: ../src/imageio/format/exr.cc:578 +#: ../src/imageio/format/exr.cc:614 msgid "RLE" msgstr "RLE" -#: ../src/imageio/format/exr.cc:579 +#: ../src/imageio/format/exr.cc:615 msgid "ZIPS" msgstr "ZIPS" -#: ../src/imageio/format/exr.cc:580 +#: ../src/imageio/format/exr.cc:616 msgid "ZIP" msgstr "ZIP" -#: ../src/imageio/format/exr.cc:581 +#: ../src/imageio/format/exr.cc:617 msgid "PIZ" msgstr "PIZ" -#: ../src/imageio/format/exr.cc:582 +#: ../src/imageio/format/exr.cc:618 msgid "PXR24" msgstr "PXR24" -#: ../src/imageio/format/exr.cc:583 +#: ../src/imageio/format/exr.cc:619 msgid "B44" msgstr "B44" -#: ../src/imageio/format/exr.cc:584 +#: ../src/imageio/format/exr.cc:620 msgid "B44A" msgstr "B44A" -#: ../src/imageio/format/exr.cc:585 +#: ../src/imageio/format/exr.cc:621 msgid "DWAA" msgstr "DWAA" -#: ../src/imageio/format/exr.cc:586 +#: ../src/imageio/format/exr.cc:622 msgid "DWAB" msgstr "DWAB" -#: ../src/imageio/format/j2k.c:618 +#: ../src/imageio/format/j2k.c:648 msgid "JPEG 2000 (12-bit)" msgstr "JPEG 2000 (12-bit)" -#: ../src/imageio/format/j2k.c:652 -msgid "jp2" -msgstr "jp2" - -#: ../src/imageio/format/j2k.c:667 +#: ../src/imageio/format/j2k.c:684 msgid "DCP mode" msgstr "DCP mode" -#: ../src/imageio/format/j2k.c:670 +#: ../src/imageio/format/j2k.c:687 msgid "Cinema2K, 24FPS" msgstr "Cinema2K, 24FPS" -#: ../src/imageio/format/j2k.c:671 +#: ../src/imageio/format/j2k.c:688 msgid "Cinema2K, 48FPS" msgstr "Cinema2K, 48FPS" -#: ../src/imageio/format/j2k.c:672 +#: ../src/imageio/format/j2k.c:689 msgid "Cinema4K, 24FPS" msgstr "Cinema4K, 24FPS" -#: ../src/imageio/format/jpeg.c:564 +#: ../src/imageio/format/jpeg.c:546 msgid "JPEG (8-bit)" msgstr "JPEG (8-bit)" -#: ../src/imageio/format/jxl.c:471 -msgid "JPEG XL" -msgstr "JPEG XL" +#: ../src/imageio/format/jpeg.c:594 +msgid "chroma subsampling" +msgstr "Chroma subsampling" + +#: ../src/imageio/format/jpeg.c:595 +msgid "" +"chroma subsampling setting for JPEG encoder.\n" +"auto - use subsampling determined by the quality value\n" +"4:4:4 - no chroma subsampling\n" +"4:4:0 - color sampling rate halved vertically\n" +"4:2:2 - color sampling rate halved horizontally\n" +"4:2:0 - color sampling rate halved horizontally and vertically" +msgstr "" +"Chroma subsampling setting for JPEG encoder.\n" +"Auto - use subsampling determined by the Quality value\n" +"4:4:4 - no chroma subsampling\n" +"4:4:0 - color sampling rate halved vertically\n" +"4:2:2 - color sampling rate halved horizontally\n" +"4:2:0 - color sampling rate halved horizontally and vertically" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:4" +msgstr "4:4:4" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:0" +msgstr "4:4:0" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:2" +msgstr "4:2:2" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:0" +msgstr "4:2:0" -#: ../src/imageio/format/jxl.c:556 ../src/imageio/format/pdf.c:81 -#: ../src/imageio/format/png.c:536 ../src/imageio/format/tiff.c:847 +#: ../src/imageio/format/jxl.c:567 ../src/imageio/format/pdf.c:81 +#: ../src/imageio/format/png.c:641 ../src/imageio/format/tiff.c:904 #: ../src/imageio/format/xcf.c:357 msgid "16 bit" msgstr "16 bit" #. Pixel format combo box -#: ../src/imageio/format/jxl.c:562 ../src/imageio/format/tiff.c:852 +#: ../src/imageio/format/jxl.c:573 ../src/imageio/format/tiff.c:909 msgid "pixel type" msgstr "Pixel type" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "unsigned integer" msgstr "Unsigned integer" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "floating point" msgstr "Floating point" -#: ../src/imageio/format/jxl.c:580 +#: ../src/imageio/format/jxl.c:591 msgid "" "the quality of the output image\n" "0-29 = very lossy\n" @@ -11500,11 +12027,11 @@ "30-99 = JPEG quality comparable\n" "100 = lossless (integer bit depth only)" -#: ../src/imageio/format/jxl.c:589 +#: ../src/imageio/format/jxl.c:600 msgid "encoding color profile" msgstr "Encoding color profile" -#: ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/jxl.c:601 msgid "" "the color profile used by the encoder\n" "permit internal XYB color space conversion for more efficient lossy " @@ -11518,20 +12045,20 @@ "or ensure no conversion to keep original image color space (implied for " "lossless)" -#: ../src/imageio/format/jxl.c:593 +#: ../src/imageio/format/jxl.c:604 msgid "internal" msgstr "Internal" -#: ../src/imageio/format/jxl.c:593 ../src/libs/duplicate.c:399 -#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:782 +#: ../src/imageio/format/jxl.c:604 ../src/libs/duplicate.c:405 +#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:840 msgid "original" msgstr "Original" -#: ../src/imageio/format/jxl.c:607 +#: ../src/imageio/format/jxl.c:618 msgid "encoding effort" msgstr "Encoding effort" -#: ../src/imageio/format/jxl.c:608 +#: ../src/imageio/format/jxl.c:619 msgid "" "the effort used to encode the image, higher efforts will have better results " "at the expense of longer encoding times" @@ -11539,11 +12066,11 @@ "The effort used to encode the image, higher efforts will have better results " "at the expense of longer encoding times" -#: ../src/imageio/format/jxl.c:619 +#: ../src/imageio/format/jxl.c:630 msgid "decoding speed" msgstr "Decoding speed" -#: ../src/imageio/format/jxl.c:620 +#: ../src/imageio/format/jxl.c:631 msgid "the preferred decoding speed with some sacrifice of quality" msgstr "The preferred decoding speed with some sacrifice of quality" @@ -11555,9 +12082,9 @@ msgid "invalid border size, using 0" msgstr "Invalid border size, using 0" -#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:316 -#: ../src/imageio/storage/email.c:137 ../src/imageio/storage/gallery.c:331 -#: ../src/imageio/storage/gallery.c:370 ../src/imageio/storage/piwigo.c:1202 +#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:460 +#: ../src/imageio/storage/email.c:187 ../src/imageio/storage/gallery.c:409 +#: ../src/imageio/storage/gallery.c:450 ../src/imageio/storage/piwigo.c:1236 #, c-format msgid "could not export to file `%s'!" msgstr "Could not export to file `%s'!" @@ -11611,8 +12138,8 @@ "Examples: 10 mm, 1 inch" #. dpi -#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1127 -#: ../src/libs/export.c:1150 +#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1218 +#: ../src/libs/export.c:1246 msgid "dpi" msgstr "dpi" @@ -11674,7 +12201,7 @@ "Uncompressed -- fast but big files\n" "Deflate -- smaller files but slower" -#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:924 msgid "deflate" msgstr "Deflate" @@ -11705,60 +12232,23 @@ msgid "debug" msgstr "Debug" -#: ../src/imageio/format/pfm.c:120 -msgid "PFM" -msgstr "PFM" - -#: ../src/imageio/format/png.c:493 -msgid "PNG" -msgstr "PNG" - #: ../src/imageio/format/ppm.c:111 msgid "PPM (16-bit)" msgstr "PPM (16-bit)" -#: ../src/imageio/format/tiff.c:228 -msgid "will export as a grayscale image" -msgstr "Will export as a grayscale image" - -#: ../src/imageio/format/tiff.c:774 -msgid "TIFF" -msgstr "TIFF" +#: ../src/imageio/format/tiff.c:246 +msgid "not a B&W image, will not export as grayscale" +msgstr "Not a B&W image, will not export as grayscale" -#: ../src/imageio/format/tiff.c:868 +#: ../src/imageio/format/tiff.c:925 msgid "deflate with predictor" msgstr "Deflate with predictor" -#: ../src/imageio/format/tiff.c:878 +#: ../src/imageio/format/tiff.c:935 msgid "compression level" msgstr "Compression level" -#. shortfile option combo box -#: ../src/imageio/format/tiff.c:887 -msgid "b&w image" -msgstr "B&W image" - -#: ../src/imageio/format/tiff.c:888 -msgid "write RGB colors" -msgstr "Write RGB colors" - -#: ../src/imageio/format/tiff.c:888 -msgid "write grayscale" -msgstr "Write grayscale" - -#: ../src/imageio/format/webp.c:349 -msgid "WebP" -msgstr "WebP" - -#: ../src/imageio/format/webp.c:385 -msgid "lossy" -msgstr "Lossy" - -#: ../src/imageio/format/webp.c:385 -msgid "lossless" -msgstr "Lossless" - -#: ../src/imageio/format/webp.c:397 +#: ../src/imageio/format/webp.c:426 msgid "" "for lossy, 0 gives the smallest size and 100 the best quality.\n" "for lossless, 0 is the fastest but gives larger files compared\n" @@ -11768,11 +12258,11 @@ "For lossless, 0 is the fastest but gives larger files compared\n" "to the slowest 100." -#: ../src/imageio/format/webp.c:407 +#: ../src/imageio/format/webp.c:436 msgid "image hint" msgstr "Image hint" -#: ../src/imageio/format/webp.c:408 +#: ../src/imageio/format/webp.c:437 msgid "" "image characteristics hint for the underlying encoder.\n" "picture: digital picture, like portrait, inner shot\n" @@ -11784,15 +12274,15 @@ "Photo: outdoor photograph, with natural lighting\n" "Graphic: discrete tone image (graph, map-tile etc)" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "picture" msgstr "Picture" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "photo" msgstr "Photo" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "graphic" msgstr "Graphic" @@ -11800,12 +12290,12 @@ msgid "XCF" msgstr "XCF" -#: ../src/imageio/storage/disk.c:71 ../src/libs/export.c:1040 +#: ../src/imageio/storage/disk.c:74 ../src/libs/export.c:1119 msgid "file on disk" msgstr "File on disk" -#: ../src/imageio/storage/disk.c:169 ../src/imageio/storage/gallery.c:155 -#: ../src/imageio/storage/latex.c:154 +#: ../src/imageio/storage/disk.c:251 ../src/imageio/storage/gallery.c:204 +#: ../src/imageio/storage/latex.c:191 msgid "" "enter the path where to put exported images\n" "variables support bash like string manipulation\n" @@ -11815,53 +12305,63 @@ "Variables support bash like string manipulation\n" "Type '$(' to activate the completion and see the list of variables" -#: ../src/imageio/storage/disk.c:182 ../src/imageio/storage/piwigo.c:1079 +#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/piwigo.c:1113 msgid "on conflict" msgstr "On conflict" -#: ../src/imageio/storage/disk.c:185 +#: ../src/imageio/storage/disk.c:268 msgid "create unique filename" msgstr "Create unique filename" #. DT_COPY_HISTORY_APPEND -#: ../src/imageio/storage/disk.c:186 ../src/imageio/storage/piwigo.c:1083 -#: ../src/libs/copy_history.c:404 ../src/libs/image.c:601 -#: ../src/libs/styles.c:440 ../src/libs/styles.c:623 ../src/libs/styles.c:850 +#: ../src/imageio/storage/disk.c:269 ../src/imageio/storage/piwigo.c:1117 +#: ../src/libs/copy_history.c:404 ../src/libs/image.c:670 +#: ../src/libs/styles.c:854 msgid "overwrite" msgstr "Overwrite" -#: ../src/imageio/storage/disk.c:187 ../src/imageio/storage/piwigo.c:1081 -#: ../src/libs/styles.c:439 ../src/libs/styles.c:622 +#: ../src/imageio/storage/disk.c:270 +msgid "overwrite if changed" +msgstr "Overwrite if changed" + +#: ../src/imageio/storage/disk.c:271 ../src/imageio/storage/piwigo.c:1115 msgid "skip" msgstr "Skip" -#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/gallery.c:253 -#: ../src/imageio/storage/latex.c:252 +#: ../src/imageio/storage/disk.c:371 ../src/imageio/storage/gallery.c:326 +#: ../src/imageio/storage/latex.c:289 #, c-format msgid "could not create directory `%s'!" msgstr "Could not create directory `%s'!" -#: ../src/imageio/storage/disk.c:272 +#: ../src/imageio/storage/disk.c:382 #, c-format msgid "could not write to directory `%s'!" msgstr "Could not write to directory `%s'!" -#: ../src/imageio/storage/disk.c:302 +#: ../src/imageio/storage/disk.c:419 #, c-format msgid "%d/%d skipping `%s'" msgid_plural "%d/%d skipping `%s'" msgstr[0] "%d/%d skipping `%s'" msgstr[1] "%d/%d skipping `%s'" -#: ../src/imageio/storage/disk.c:321 ../src/imageio/storage/email.c:144 -#: ../src/imageio/storage/gallery.c:378 ../src/imageio/storage/latex.c:340 +#: ../src/imageio/storage/disk.c:441 +#, c-format +msgid "%d/%d skipping (not modified since export) `%s'" +msgid_plural "%d/%d skipping (not modified since export) `%s'" +msgstr[0] "%d/%d skipping (not modified since export) '%s'" +msgstr[1] "%d/%d skipping (not modified since export) '%s'" + +#: ../src/imageio/storage/disk.c:465 ../src/imageio/storage/email.c:194 +#: ../src/imageio/storage/gallery.c:458 ../src/imageio/storage/latex.c:377 #, c-format msgid "%d/%d exported to `%s'" msgid_plural "%d/%d exported to `%s'" msgstr[0] "%d/%d exported to `%s'" msgstr[1] "%d/%d exported to `%s'" -#: ../src/imageio/storage/disk.c:380 +#: ../src/imageio/storage/disk.c:530 msgid "" "you are going to export in overwrite mode, this will overwrite any existing " "images\n" @@ -11873,23 +12373,33 @@ "\n" "Do you really want to continue?" -#: ../src/imageio/storage/email.c:52 +#: ../src/imageio/storage/email.c:57 msgid "send as email" msgstr "Send as email" -#: ../src/imageio/storage/email.c:198 +#. Unlikely in normal Windows installations, but let's notify the user if it happens +#: ../src/imageio/storage/email.c:265 +msgid "could not open mapi32.dll" +msgstr "Could not open mapi32.dll" + +#. Even more unlikely +#: ../src/imageio/storage/email.c:275 +msgid "could not get SendMail function" +msgstr "Could not get SendMail function" + +#: ../src/imageio/storage/email.c:319 ../src/imageio/storage/email.c:409 msgid "images exported from darktable" msgstr "Images exported from Darktable" -#: ../src/imageio/storage/email.c:251 +#: ../src/imageio/storage/email.c:388 ../src/imageio/storage/email.c:467 msgid "could not launch email client!" msgstr "Could not launch email client!" -#: ../src/imageio/storage/gallery.c:73 +#: ../src/imageio/storage/gallery.c:76 msgid "website gallery" msgstr "Website gallery" -#: ../src/imageio/storage/gallery.c:171 +#: ../src/imageio/storage/gallery.c:224 msgid "enter the title of the website" msgstr "Enter the title of the website" @@ -11897,149 +12407,148 @@ msgid "LaTeX book template" msgstr "LaTeX book template" -#: ../src/imageio/storage/latex.c:172 +#: ../src/imageio/storage/latex.c:209 msgid "enter the title of the book" msgstr "Enter the title of the book" -#: ../src/imageio/storage/piwigo.c:522 +#: ../src/imageio/storage/piwigo.c:525 msgid "authenticated" msgstr "Authenticated" -#: ../src/imageio/storage/piwigo.c:532 ../src/imageio/storage/piwigo.c:547 -#: ../src/imageio/storage/piwigo.c:559 +#: ../src/imageio/storage/piwigo.c:536 ../src/imageio/storage/piwigo.c:552 +#: ../src/imageio/storage/piwigo.c:565 msgid "not authenticated" msgstr "Not authenticated" -#: ../src/imageio/storage/piwigo.c:538 +#: ../src/imageio/storage/piwigo.c:542 msgid "not authenticated, cannot reach server" msgstr "Not authenticated, cannot reach server" -#: ../src/imageio/storage/piwigo.c:587 ../src/imageio/storage/piwigo.c:675 +#: ../src/imageio/storage/piwigo.c:595 ../src/imageio/storage/piwigo.c:684 msgid "create new album" msgstr "Create new album" -#: ../src/imageio/storage/piwigo.c:676 +#: ../src/imageio/storage/piwigo.c:685 msgid "---" msgstr "---" -#: ../src/imageio/storage/piwigo.c:721 +#: ../src/imageio/storage/piwigo.c:735 msgid "cannot refresh albums" msgstr "Cannot refresh albums" -#: ../src/imageio/storage/piwigo.c:929 +#: ../src/imageio/storage/piwigo.c:950 msgid "Piwigo" msgstr "Piwigo" -#: ../src/imageio/storage/piwigo.c:954 +#: ../src/imageio/storage/piwigo.c:976 msgid "accounts" msgstr "Accounts" -#: ../src/imageio/storage/piwigo.c:972 ../src/imageio/storage/piwigo.c:978 +#: ../src/imageio/storage/piwigo.c:995 ../src/imageio/storage/piwigo.c:1004 msgid "server" msgstr "Server" -#: ../src/imageio/storage/piwigo.c:974 ../src/imageio/storage/piwigo.c:989 +#: ../src/imageio/storage/piwigo.c:998 msgid "" "the server name\n" "default protocol is https\n" -"specify http:// if non secure server" +"specify insecure protocol http:// explicitly if that protocol is required" msgstr "" "The server name\n" "Default protocol is https\n" -"Specify http:// if not secure server" +"Specify insecure protocol http:// explicitly if that protocol is required" -#: ../src/imageio/storage/piwigo.c:987 ../src/imageio/storage/piwigo.c:993 +#: ../src/imageio/storage/piwigo.c:1014 ../src/imageio/storage/piwigo.c:1021 msgid "user" msgstr "User" -#: ../src/imageio/storage/piwigo.c:1000 ../src/imageio/storage/piwigo.c:1005 +#: ../src/imageio/storage/piwigo.c:1029 ../src/imageio/storage/piwigo.c:1034 msgid "password" msgstr "Password" #. login button -#: ../src/imageio/storage/piwigo.c:1010 +#: ../src/imageio/storage/piwigo.c:1039 msgid "login" msgstr "Login" -#: ../src/imageio/storage/piwigo.c:1011 +#: ../src/imageio/storage/piwigo.c:1040 msgid "Piwigo login" msgstr "Piwigo login" #. permissions list -#: ../src/imageio/storage/piwigo.c:1025 +#: ../src/imageio/storage/piwigo.c:1056 msgid "visible to" msgstr "Visible to" -#: ../src/imageio/storage/piwigo.c:1027 +#: ../src/imageio/storage/piwigo.c:1058 msgid "everyone" msgstr "Everyone" -#: ../src/imageio/storage/piwigo.c:1028 +#: ../src/imageio/storage/piwigo.c:1059 msgid "contacts" msgstr "Contacts" -#: ../src/imageio/storage/piwigo.c:1029 +#: ../src/imageio/storage/piwigo.c:1060 msgid "friends" msgstr "Friends" -#: ../src/imageio/storage/piwigo.c:1030 +#: ../src/imageio/storage/piwigo.c:1061 msgid "family" msgstr "Family" -#: ../src/imageio/storage/piwigo.c:1031 +#: ../src/imageio/storage/piwigo.c:1062 msgid "you" msgstr "You" #. Available albums -#: ../src/imageio/storage/piwigo.c:1038 +#: ../src/imageio/storage/piwigo.c:1069 msgid "album" msgstr "Album" -#: ../src/imageio/storage/piwigo.c:1045 +#: ../src/imageio/storage/piwigo.c:1076 msgid "refresh album list" msgstr "Refresh album list" #. Album title -#: ../src/imageio/storage/piwigo.c:1063 +#: ../src/imageio/storage/piwigo.c:1096 msgid "new album" msgstr "New album" -#. parent album list #. Available albums -#: ../src/imageio/storage/piwigo.c:1071 +#: ../src/imageio/storage/piwigo.c:1105 msgid "parent album" msgstr "Parent album" -#: ../src/imageio/storage/piwigo.c:1075 +#: ../src/imageio/storage/piwigo.c:1109 msgid "click login button to start" msgstr "Click login button to start" -#: ../src/imageio/storage/piwigo.c:1080 +#: ../src/imageio/storage/piwigo.c:1114 msgid "don't check" msgstr "Don't check" -#: ../src/imageio/storage/piwigo.c:1082 +#: ../src/imageio/storage/piwigo.c:1116 msgid "update metadata" msgstr "Update metadata" -#: ../src/imageio/storage/piwigo.c:1221 +#: ../src/imageio/storage/piwigo.c:1255 msgid "cannot create a new Piwigo album!" msgstr "Cannot create a new Piwigo album!" -#: ../src/imageio/storage/piwigo.c:1240 +#: ../src/imageio/storage/piwigo.c:1274 msgid "could not update to Piwigo!" msgstr "Could not update to Piwigo!" -#: ../src/imageio/storage/piwigo.c:1255 +#: ../src/imageio/storage/piwigo.c:1290 msgid "could not upload to Piwigo!" msgstr "Could not upload to Piwigo!" -#: ../src/imageio/storage/piwigo.c:1284 +#: ../src/imageio/storage/piwigo.c:1319 #, c-format msgid "%d/%d skipped (already exists)" msgstr "%d/%d skipped (already exists)" -#: ../src/imageio/storage/piwigo.c:1290 +#: ../src/imageio/storage/piwigo.c:1325 #, c-format msgid "%d/%d exported to Piwigo webalbum" msgid_plural "%d/%d exported to Piwigo webalbum" @@ -12059,54 +12568,54 @@ msgstr "Rotate or distort perspective" #: ../src/iop/ashift.c:131 ../src/iop/channelmixer.c:139 -#: ../src/iop/channelmixerrgb.c:232 ../src/iop/clipping.c:320 -#: ../src/iop/colorbalance.c:161 ../src/iop/colorbalancergb.c:185 +#: ../src/iop/channelmixerrgb.c:233 ../src/iop/clipping.c:363 +#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:185 #: ../src/iop/colorchecker.c:130 ../src/iop/colorcorrection.c:77 -#: ../src/iop/crop.c:144 ../src/iop/lut3d.c:141 +#: ../src/iop/crop.c:134 ../src/iop/lut3d.c:142 ../src/iop/primaries.c:80 msgid "corrective or creative" msgstr "Corrective or creative" -#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:148 -#: ../src/iop/bilateral.cc:101 ../src/iop/bilateral.cc:103 -#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:233 -#: ../src/iop/channelmixerrgb.c:235 ../src/iop/clipping.c:321 -#: ../src/iop/clipping.c:323 ../src/iop/colorbalancergb.c:186 -#: ../src/iop/colorin.c:136 ../src/iop/crop.c:145 ../src/iop/crop.c:147 -#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:728 -#: ../src/iop/denoiseprofile.c:730 ../src/iop/diffuse.c:146 +#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:174 +#: ../src/iop/bilateral.cc:103 ../src/iop/bilateral.cc:105 +#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:236 ../src/iop/clipping.c:364 +#: ../src/iop/clipping.c:366 ../src/iop/colorbalancergb.c:186 +#: ../src/iop/colorin.c:136 ../src/iop/crop.c:135 ../src/iop/crop.c:137 +#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:780 +#: ../src/iop/denoiseprofile.c:782 ../src/iop/diffuse.c:146 #: ../src/iop/diffuse.c:148 ../src/iop/exposure.c:132 ../src/iop/exposure.c:134 #: ../src/iop/flip.c:111 ../src/iop/flip.c:112 ../src/iop/hazeremoval.c:113 -#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:242 ../src/iop/lens.cc:244 -#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/retouch.c:210 -#: ../src/iop/retouch.c:212 ../src/iop/sigmoid.c:103 -#: ../src/iop/splittoning.c:104 ../src/iop/splittoning.c:106 -#: ../src/iop/spots.c:70 ../src/iop/spots.c:72 ../src/iop/toneequal.c:325 -#: ../src/iop/velvia.c:106 ../src/iop/velvia.c:108 +#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:263 ../src/iop/lens.cc:265 +#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/primaries.c:81 +#: ../src/iop/primaries.c:83 ../src/iop/retouch.c:210 ../src/iop/retouch.c:212 +#: ../src/iop/sigmoid.c:209 ../src/iop/splittoning.c:106 +#: ../src/iop/splittoning.c:108 ../src/iop/spots.c:70 ../src/iop/spots.c:72 +#: ../src/iop/toneequal.c:333 ../src/iop/velvia.c:99 ../src/iop/velvia.c:101 msgid "linear, RGB, scene-referred" msgstr "Linear, RGB, scene-referred" -#: ../src/iop/ashift.c:133 ../src/iop/borders.c:200 ../src/iop/clipping.c:322 -#: ../src/iop/crop.c:146 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 +#: ../src/iop/ashift.c:133 ../src/iop/borders.c:325 ../src/iop/clipping.c:365 +#: ../src/iop/crop.c:136 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 msgid "geometric, RGB" msgstr "Geometric, RGB" -#: ../src/iop/ashift.c:2820 +#: ../src/iop/ashift.c:2866 msgid "automatic cropping failed" msgstr "Automatic cropping failed" -#: ../src/iop/ashift.c:3234 ../src/iop/ashift.c:3286 ../src/iop/ashift.c:3334 +#: ../src/iop/ashift.c:3276 ../src/iop/ashift.c:3328 ../src/iop/ashift.c:3375 msgid "data pending - please repeat" msgstr "Data pending - please repeat" -#: ../src/iop/ashift.c:3243 +#: ../src/iop/ashift.c:3285 msgid "could not detect structural data in image" msgstr "Could not detect structural data in image" -#: ../src/iop/ashift.c:3255 +#: ../src/iop/ashift.c:3297 msgid "could not run outlier removal" msgstr "Could not run outlier removal" -#: ../src/iop/ashift.c:3434 +#: ../src/iop/ashift.c:3474 #, c-format msgid "" "not enough structure for automatic correction\n" @@ -12115,41 +12624,41 @@ "Not enough structure for automatic correction\n" "Minimum %d lines in each relevant direction" -#: ../src/iop/ashift.c:3440 +#: ../src/iop/ashift.c:3480 msgid "automatic correction failed, please correct manually" msgstr "Automatic correction failed, please correct manually" -#: ../src/iop/ashift.c:5096 +#: ../src/iop/ashift.c:5077 #, c-format msgid "only %d lines can be saved in parameters" msgstr "Only %d lines can be saved in parameters" -#: ../src/iop/ashift.c:5201 +#: ../src/iop/ashift.c:5157 #, c-format -msgid "rotation adjusted by %3.1f° to %3.1f°" -msgstr "Rotation adjusted by %3.1f° to %3.1f°" +msgid "rotation adjusted by %3.2f° to %3.2f°" +msgstr "Rotation adjusted by %3.2f° to %3.2f°" -#: ../src/iop/ashift.c:5852 ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 -#: ../src/iop/ashift.c:5961 +#: ../src/iop/ashift.c:5797 ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 +#: ../src/iop/ashift.c:5906 #, c-format msgid "lens shift (%s)" msgstr "Lens shift (%s)" -#: ../src/iop/ashift.c:6125 +#: ../src/iop/ashift.c:6072 msgid "manual perspective" msgstr "Manual perspective" -#: ../src/iop/ashift.c:6170 +#: ../src/iop/ashift.c:6117 msgctxt "section" msgid "perspective" msgstr "Perspective" -#: ../src/iop/ashift.c:6177 ../src/iop/ashift.c:6286 ../src/iop/ashift.c:6288 -#: ../src/iop/ashift.c:6290 +#: ../src/iop/ashift.c:6124 ../src/iop/ashift.c:6233 ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6237 msgid "structure" msgstr "Structure" -#: ../src/iop/ashift.c:6212 +#: ../src/iop/ashift.c:6159 msgid "" "rotate image\n" "right-click and drag to define a horizontal or vertical line by drawing on " @@ -12159,19 +12668,19 @@ "Right-click and drag to define a horizontal or vertical line by drawing on " "the image" -#: ../src/iop/ashift.c:6215 ../src/iop/ashift.c:6217 +#: ../src/iop/ashift.c:6162 ../src/iop/ashift.c:6164 msgid "apply lens shift correction in one direction" msgstr "Apply lens shift correction in one direction" -#: ../src/iop/ashift.c:6219 +#: ../src/iop/ashift.c:6166 msgid "shear the image along one diagonal" msgstr "Shear the image along one diagonal" -#: ../src/iop/ashift.c:6220 ../src/iop/clipping.c:2117 +#: ../src/iop/ashift.c:6167 ../src/iop/clipping.c:2170 msgid "automatically crop to avoid black edges" msgstr "Automatically crop to avoid black edges" -#: ../src/iop/ashift.c:6221 +#: ../src/iop/ashift.c:6168 msgid "" "lens model of the perspective correction: generic or according to the focal " "length" @@ -12179,12 +12688,12 @@ "Lens model of the perspective correction: generic or according to the focal " "length" -#: ../src/iop/ashift.c:6224 +#: ../src/iop/ashift.c:6171 msgid "focal length of the lens, default value set from EXIF data if available" msgstr "" "Focal length of the lens, default value set from EXIF data if available" -#: ../src/iop/ashift.c:6227 +#: ../src/iop/ashift.c:6174 msgid "" "crop factor of the camera sensor, default value set from EXIF data if " "available, manual setting is often required" @@ -12192,7 +12701,7 @@ "Crop factor of the camera sensor, default value set from EXIF data if " "available, manual setting is often required" -#: ../src/iop/ashift.c:6231 +#: ../src/iop/ashift.c:6178 msgid "" "the level of lens dependent correction, set to maximum for full lens " "dependency, set to zero for the generic case" @@ -12200,11 +12709,11 @@ "The level of lens dependent correction, set to maximum for full lens " "dependency, set to zero for the generic case" -#: ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6182 msgid "adjust aspect ratio of image by horizontal and vertical scaling" msgstr "Adjust aspect ratio of image by horizontal and vertical scaling" -#: ../src/iop/ashift.c:6237 +#: ../src/iop/ashift.c:6184 msgid "" "automatically correct for vertical perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12214,7 +12723,7 @@ "Ctrl+click to only fit rotation\n" "Shift+click to only fit lens shift" -#: ../src/iop/ashift.c:6241 +#: ../src/iop/ashift.c:6188 msgid "" "automatically correct for horizontal perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12224,7 +12733,7 @@ "Ctrl+click to only fit rotation\n" "Shift+click to only fit lens shift" -#: ../src/iop/ashift.c:6245 +#: ../src/iop/ashift.c:6192 msgid "" "automatically correct for vertical and horizontal perspective distortions, " "fitting rotation, lens shift in both directions, and shear\n" @@ -12238,7 +12747,7 @@ "Shift+click to only fit lens shift\n" "Ctrl+Shift+click to only fit rotation and lens shift" -#: ../src/iop/ashift.c:6252 +#: ../src/iop/ashift.c:6199 msgid "" "automatically analyse line structure in image\n" "ctrl+click for an additional edge enhancement\n" @@ -12250,225 +12759,225 @@ "Shift+click for an additional detail enhancement\n" "Ctrl+Shift+click for a combination of both methods" -#: ../src/iop/ashift.c:6257 +#: ../src/iop/ashift.c:6204 msgid "manually define perspective rectangle" msgstr "Manually define perspective rectangle" -#: ../src/iop/ashift.c:6258 +#: ../src/iop/ashift.c:6205 msgid "manually draw structure lines" msgstr "Manually draw structure lines" -#: ../src/iop/ashift.c:6287 +#: ../src/iop/ashift.c:6234 msgid "rectangle" msgstr "Rectangle" -#: ../src/iop/ashift.c:6289 +#: ../src/iop/ashift.c:6236 msgid "lines" msgstr "Lines" -#: ../src/iop/ashift.c:6323 ../src/iop/clipping.c:3343 +#: ../src/iop/ashift.c:6270 ../src/iop/clipping.c:3383 #, c-format msgid "[%s] define/rotate horizon" msgstr "[%s] define/rotate horizon" -#: ../src/iop/ashift.c:6326 +#: ../src/iop/ashift.c:6273 #, c-format msgid "[%s on segment] select segment" msgstr "[%s on segment] select segment" -#: ../src/iop/ashift.c:6330 +#: ../src/iop/ashift.c:6277 #, c-format msgid "[%s on segment] unselect segment" msgstr "[%s on segment] unselect segment" -#: ../src/iop/ashift.c:6334 +#: ../src/iop/ashift.c:6281 #, c-format msgid "[%s] select all segments from zone" msgstr "[%s] select all segments from zone" -#: ../src/iop/ashift.c:6338 +#: ../src/iop/ashift.c:6285 #, c-format msgid "[%s] unselect all segments from zone" msgstr "[%s] unselect all segments from zone" -#: ../src/iop/atrous.c:123 ../src/iop/atrous.c:1638 +#: ../src/iop/atrous.c:122 ../src/iop/atrous.c:1770 msgid "contrast equalizer" msgstr "Contrast equalizer" -#: ../src/iop/atrous.c:128 +#: ../src/iop/atrous.c:127 msgid "sharpness|acutance|local contrast" msgstr "sharpness|acutance|local contrast" -#: ../src/iop/atrous.c:133 +#: ../src/iop/atrous.c:132 msgid "add or remove local contrast, sharpness, acutance" msgstr "Add or remove local contrast, sharpness, acutance" -#: ../src/iop/atrous.c:134 ../src/iop/bilateral.cc:100 ../src/iop/diffuse.c:145 +#: ../src/iop/atrous.c:133 ../src/iop/bilateral.cc:102 ../src/iop/diffuse.c:145 #: ../src/iop/exposure.c:131 ../src/iop/filmicrgb.c:352 #: ../src/iop/graduatednd.c:146 ../src/iop/negadoctor.c:146 -#: ../src/iop/rgbcurve.c:143 ../src/iop/rgblevels.c:123 ../src/iop/shadhi.c:197 -#: ../src/iop/sigmoid.c:102 ../src/iop/tonecurve.c:211 -#: ../src/iop/toneequal.c:324 +#: ../src/iop/rgbcurve.c:145 ../src/iop/rgblevels.c:125 ../src/iop/shadhi.c:144 +#: ../src/iop/sigmoid.c:209 ../src/iop/tonecurve.c:184 +#: ../src/iop/toneequal.c:332 msgid "corrective and creative" msgstr "Corrective and creative" -#: ../src/iop/atrous.c:135 ../src/iop/atrous.c:137 -#: ../src/iop/colorbalance.c:162 +#: ../src/iop/atrous.c:134 ../src/iop/atrous.c:136 +#: ../src/iop/colorbalance.c:164 msgid "linear, Lab, scene-referred" msgstr "Linear, Lab, scene-referred" -#: ../src/iop/atrous.c:136 ../src/iop/censorize.c:85 +#: ../src/iop/atrous.c:135 ../src/iop/censorize.c:85 #: ../src/iop/hazeremoval.c:114 msgid "frequential, RGB" msgstr "Frequential, RGB" -#: ../src/iop/atrous.c:727 +#: ../src/iop/atrous.c:799 msgctxt "eq_preset" msgid "coarse" msgstr "Coarse" -#: ../src/iop/atrous.c:742 +#: ../src/iop/atrous.c:815 msgid "denoise & sharpen" msgstr "Denoise & sharpen" -#: ../src/iop/atrous.c:757 +#: ../src/iop/atrous.c:831 msgctxt "atrous" msgid "sharpen" msgstr "Sharpen" -#: ../src/iop/atrous.c:772 +#: ../src/iop/atrous.c:847 msgid "denoise chroma" msgstr "Denoise chroma" -#: ../src/iop/atrous.c:787 +#: ../src/iop/atrous.c:863 msgid "denoise" msgstr "Denoise" -#: ../src/iop/atrous.c:803 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:421 +#: ../src/iop/atrous.c:880 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:448 msgid "bloom" msgstr "Bloom" -#: ../src/iop/atrous.c:818 ../src/iop/bilat.c:169 +#: ../src/iop/atrous.c:896 ../src/iop/bilat.c:186 msgid "clarity" msgstr "Clarity" -#: ../src/iop/atrous.c:838 +#: ../src/iop/atrous.c:917 msgid "deblur: large blur, strength 3" msgstr "Deblur: large blur, strength 3" -#: ../src/iop/atrous.c:855 +#: ../src/iop/atrous.c:935 msgid "deblur: medium blur, strength 3" msgstr "Deblur: medium blur, strength 3" -#: ../src/iop/atrous.c:871 +#: ../src/iop/atrous.c:952 msgid "deblur: fine blur, strength 3" msgstr "Deblur: fine blur, strength 3" -#: ../src/iop/atrous.c:889 +#: ../src/iop/atrous.c:971 msgid "deblur: large blur, strength 2" msgstr "Deblur: large blur, strength 2" -#: ../src/iop/atrous.c:906 +#: ../src/iop/atrous.c:989 msgid "deblur: medium blur, strength 2" msgstr "Deblur: medium blur, strength 2" -#: ../src/iop/atrous.c:922 +#: ../src/iop/atrous.c:1006 msgid "deblur: fine blur, strength 2" msgstr "Deblur: fine blur, strength 2" -#: ../src/iop/atrous.c:940 +#: ../src/iop/atrous.c:1025 msgid "deblur: large blur, strength 1" msgstr "Deblur: large blur, strength 1" -#: ../src/iop/atrous.c:957 +#: ../src/iop/atrous.c:1043 msgid "deblur: medium blur, strength 1" msgstr "Deblur: medium blur, strength 1" -#: ../src/iop/atrous.c:973 +#: ../src/iop/atrous.c:1060 msgid "deblur: fine blur, strength 1" msgstr "Deblur: fine blur, strength 1" -#: ../src/iop/atrous.c:1289 ../src/iop/atrous.c:1525 -#: ../src/iop/denoiseprofile.c:3510 ../src/iop/rawdenoise.c:738 +#: ../src/iop/atrous.c:1390 ../src/iop/atrous.c:1639 +#: ../src/iop/denoiseprofile.c:3514 ../src/iop/rawdenoise.c:754 msgid "coarse" msgstr "Coarse" -#: ../src/iop/atrous.c:1296 ../src/iop/atrous.c:1526 -#: ../src/iop/denoiseprofile.c:3518 ../src/iop/rawdenoise.c:746 +#: ../src/iop/atrous.c:1397 ../src/iop/atrous.c:1640 +#: ../src/iop/denoiseprofile.c:3522 ../src/iop/rawdenoise.c:762 msgid "fine" msgstr "Fine" -#: ../src/iop/atrous.c:1308 +#: ../src/iop/atrous.c:1409 msgid "contrasty" msgstr "Contrasty" -#: ../src/iop/atrous.c:1314 ../src/iop/denoiseprofile.c:3532 -#: ../src/iop/rawdenoise.c:760 +#: ../src/iop/atrous.c:1415 ../src/iop/denoiseprofile.c:3536 +#: ../src/iop/rawdenoise.c:776 msgid "noisy" msgstr "Noisy" #. case atrous_s: -#: ../src/iop/atrous.c:1317 +#: ../src/iop/atrous.c:1418 msgid "bold" msgstr "Bold" -#: ../src/iop/atrous.c:1318 +#: ../src/iop/atrous.c:1419 msgid "dull" msgstr "Dull" -#: ../src/iop/atrous.c:1513 ../src/iop/atrous.c:1564 +#: ../src/iop/atrous.c:1627 ../src/iop/atrous.c:1685 msgid "boost" msgstr "Boost" -#: ../src/iop/atrous.c:1514 +#: ../src/iop/atrous.c:1628 msgid "reduce" msgstr "Reduce" -#: ../src/iop/atrous.c:1515 +#: ../src/iop/atrous.c:1629 msgid "raise" msgstr "Raise" -#: ../src/iop/atrous.c:1516 +#: ../src/iop/atrous.c:1630 msgid "lower" msgstr "Lower" -#: ../src/iop/atrous.c:1523 +#: ../src/iop/atrous.c:1637 msgid "coarsest" msgstr "Coarsest" -#: ../src/iop/atrous.c:1524 +#: ../src/iop/atrous.c:1638 msgid "coarser" msgstr "Coarser" -#: ../src/iop/atrous.c:1527 +#: ../src/iop/atrous.c:1641 msgid "finer" msgstr "Finer" -#: ../src/iop/atrous.c:1528 +#: ../src/iop/atrous.c:1642 msgid "finest" msgstr "Finest" -#: ../src/iop/atrous.c:1586 ../src/libs/export.c:1143 ../src/libs/export.c:1158 +#: ../src/iop/atrous.c:1710 ../src/libs/export.c:1239 ../src/libs/export.c:1255 msgid "x" msgstr "x" -#: ../src/iop/atrous.c:1666 ../src/iop/nlmeans.c:465 +#: ../src/iop/atrous.c:1799 ../src/iop/nlmeans.c:468 msgid "luma" msgstr "Luma" -#: ../src/iop/atrous.c:1666 +#: ../src/iop/atrous.c:1800 msgid "change lightness at each feature size" msgstr "Change lightness at each feature size" -#: ../src/iop/atrous.c:1667 +#: ../src/iop/atrous.c:1802 msgid "change color saturation at each feature size" msgstr "Change color saturation at each feature size" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1804 msgid "edges" msgstr "Edges" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1805 msgid "" "change edge halos at each feature size\n" "only changes results of luma and chroma tabs" @@ -12476,97 +12985,97 @@ "Change edge halos at each feature size\n" "Only changes results of luma and chroma tabs" -#: ../src/iop/atrous.c:1679 ../src/iop/colorbalancergb.c:2058 -#: ../src/iop/colorzones.c:2473 ../src/iop/denoiseprofile.c:3743 -#: ../src/iop/filmicrgb.c:4407 ../src/iop/lowlight.c:823 -#: ../src/iop/rawdenoise.c:919 ../src/iop/toneequal.c:3371 +#: ../src/iop/atrous.c:1818 ../src/iop/colorbalancergb.c:2129 +#: ../src/iop/colorzones.c:2732 ../src/iop/denoiseprofile.c:3747 +#: ../src/iop/filmicrgb.c:4471 ../src/iop/lowlight.c:821 +#: ../src/iop/rawdenoise.c:935 ../src/iop/toneequal.c:3424 msgid "graph" msgstr "Graph" -#: ../src/iop/atrous.c:1690 ../src/iop/colorzones.c:2470 +#: ../src/iop/atrous.c:1836 ../src/iop/colorzones.c:2729 msgid "make effect stronger or weaker" msgstr "Make effect stronger or weaker" -#: ../src/iop/basecurve.c:213 +#: ../src/iop/basecurve.c:260 msgid "neutral" msgstr "Neutral" -#: ../src/iop/basecurve.c:214 +#: ../src/iop/basecurve.c:261 msgid "canon eos like" msgstr "Canon EOS like" -#: ../src/iop/basecurve.c:215 +#: ../src/iop/basecurve.c:262 msgid "canon eos like alternate" msgstr "Canon EOS like alternate" -#: ../src/iop/basecurve.c:216 +#: ../src/iop/basecurve.c:263 msgid "nikon like" msgstr "Nikon like" -#: ../src/iop/basecurve.c:217 +#: ../src/iop/basecurve.c:264 msgid "nikon like alternate" msgstr "Nikon like alternate" -#: ../src/iop/basecurve.c:218 +#: ../src/iop/basecurve.c:265 msgid "sony alpha like" msgstr "Sony Alpha like" -#: ../src/iop/basecurve.c:219 +#: ../src/iop/basecurve.c:266 msgid "pentax like" msgstr "Pentax like" -#: ../src/iop/basecurve.c:220 +#: ../src/iop/basecurve.c:267 msgid "ricoh like" msgstr "Ricoh like" -#: ../src/iop/basecurve.c:221 +#: ../src/iop/basecurve.c:268 msgid "olympus like" msgstr "Olympus like" -#: ../src/iop/basecurve.c:222 +#: ../src/iop/basecurve.c:269 msgid "olympus like alternate" msgstr "Olympus like alternate" -#: ../src/iop/basecurve.c:223 +#: ../src/iop/basecurve.c:270 msgid "panasonic like" msgstr "Panasonic like" -#: ../src/iop/basecurve.c:224 +#: ../src/iop/basecurve.c:271 msgid "leica like" msgstr "Leica like" -#: ../src/iop/basecurve.c:225 +#: ../src/iop/basecurve.c:272 msgid "kodak easyshare like" msgstr "Kodak Easyshare like" -#: ../src/iop/basecurve.c:226 +#: ../src/iop/basecurve.c:273 msgid "konica minolta like" msgstr "Konica Minolta like" -#: ../src/iop/basecurve.c:227 +#: ../src/iop/basecurve.c:274 msgid "samsung like" msgstr "Samsung like" -#: ../src/iop/basecurve.c:228 +#: ../src/iop/basecurve.c:275 msgid "fujifilm like" msgstr "Fujifilm like" -#: ../src/iop/basecurve.c:229 +#: ../src/iop/basecurve.c:276 msgid "nokia like" msgstr "Nokia like" #. clang-format off #. smoother cubic spline curve -#: ../src/iop/basecurve.c:284 ../src/iop/colorzones.c:2495 -#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1173 +#: ../src/iop/basecurve.c:331 ../src/iop/colorzones.c:2763 +#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1195 msgid "cubic spline" msgstr "Cubic spline" -#: ../src/iop/basecurve.c:343 +#: ../src/iop/basecurve.c:390 msgid "base curve" msgstr "Base curve" -#: ../src/iop/basecurve.c:350 +#: ../src/iop/basecurve.c:397 msgid "" "apply a view transform based on personal or camera manufacturer look,\n" "for corrective purposes, to prepare images for display" @@ -12574,65 +13083,65 @@ "Apply a view transform based on personal or camera manufacturer look\n" "for corrective purposes, to prepare images for display" -#: ../src/iop/basecurve.c:352 ../src/iop/cacorrect.c:78 -#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:135 -#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:727 +#: ../src/iop/basecurve.c:399 ../src/iop/cacorrect.c:84 +#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:120 +#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:779 #: ../src/iop/flip.c:110 ../src/iop/hazeremoval.c:112 -#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:73 -#: ../src/iop/invert.c:119 ../src/iop/lens.cc:241 ../src/iop/nlmeans.c:95 -#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:130 -#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:94 ../src/iop/spots.c:69 -#: ../src/iop/temperature.c:212 +#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:75 +#: ../src/iop/invert.c:136 ../src/iop/lens.cc:262 ../src/iop/nlmeans.c:89 +#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:144 +#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:96 ../src/iop/spots.c:69 +#: ../src/iop/temperature.c:220 msgid "corrective" msgstr "Corrective" -#: ../src/iop/basecurve.c:353 ../src/iop/channelmixer.c:140 -#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:142 +#: ../src/iop/basecurve.c:400 ../src/iop/channelmixer.c:140 +#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:143 #: ../src/iop/negadoctor.c:147 ../src/iop/profile_gamma.c:103 -#: ../src/iop/rgbcurve.c:144 ../src/iop/rgbcurve.c:146 -#: ../src/iop/rgblevels.c:124 ../src/iop/sigmoid.c:105 ../src/iop/soften.c:102 -#: ../src/iop/soften.c:104 +#: ../src/iop/rgbcurve.c:146 ../src/iop/rgbcurve.c:148 +#: ../src/iop/rgblevels.c:126 ../src/iop/sigmoid.c:210 ../src/iop/soften.c:104 +#: ../src/iop/soften.c:106 msgid "linear, RGB, display-referred" msgstr "Linear, RGB, display-referred" -#: ../src/iop/basecurve.c:354 ../src/iop/basicadj.c:149 -#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:187 +#: ../src/iop/basecurve.c:401 ../src/iop/basicadj.c:175 +#: ../src/iop/colorbalance.c:165 ../src/iop/colorbalancergb.c:187 #: ../src/iop/dither.c:121 ../src/iop/filmicrgb.c:354 #: ../src/iop/graduatednd.c:148 ../src/iop/negadoctor.c:148 -#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:145 -#: ../src/iop/rgblevels.c:125 ../src/iop/sigmoid.c:104 -#: ../src/iop/vignette.c:161 ../src/iop/watermark.c:379 +#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:147 +#: ../src/iop/rgblevels.c:127 ../src/iop/sigmoid.c:210 +#: ../src/iop/vignette.c:122 ../src/iop/watermark.c:424 msgid "non-linear, RGB" msgstr "Non-linear, RGB" -#: ../src/iop/basecurve.c:355 ../src/iop/dither.c:120 ../src/iop/dither.c:122 +#: ../src/iop/basecurve.c:402 ../src/iop/dither.c:120 ../src/iop/dither.c:122 #: ../src/iop/filmicrgb.c:355 ../src/iop/graduatednd.c:149 #: ../src/iop/negadoctor.c:149 ../src/iop/profile_gamma.c:105 -#: ../src/iop/rgblevels.c:126 ../src/iop/vignette.c:160 -#: ../src/iop/vignette.c:162 ../src/iop/watermark.c:378 -#: ../src/iop/watermark.c:380 +#: ../src/iop/rgblevels.c:128 ../src/iop/vignette.c:121 +#: ../src/iop/vignette.c:123 ../src/iop/watermark.c:423 +#: ../src/iop/watermark.c:425 msgid "non-linear, RGB, display-referred" msgstr "Non-linear, RGB, display-referred" -#: ../src/iop/basecurve.c:2184 +#: ../src/iop/basecurve.c:2205 msgid "abscissa: input, ordinate: output. works on RGB channels" msgstr "Abscissa: input, ordinate: output. Works on RGB channels" -#: ../src/iop/basecurve.c:2190 ../src/iop/basicadj.c:612 -#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1072 -#: ../src/iop/tonecurve.c:1184 +#: ../src/iop/basecurve.c:2211 ../src/iop/basicadj.c:642 +#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1133 +#: ../src/iop/tonecurve.c:1206 msgid "method to preserve colors when applying contrast" msgstr "Method to preserve colors when applying contrast" -#: ../src/iop/basecurve.c:2194 +#: ../src/iop/basecurve.c:2215 msgid "two exposures" msgstr "Two exposures" -#: ../src/iop/basecurve.c:2195 +#: ../src/iop/basecurve.c:2216 msgid "three exposures" msgstr "Three exposures" -#: ../src/iop/basecurve.c:2196 +#: ../src/iop/basecurve.c:2217 msgid "" "fuse this image stopped up/down a couple of times with itself, to compress " "high dynamic range. expose for the highlights before use." @@ -12640,11 +13149,11 @@ "Fuse this image stopped up/down a couple of times with itself, to compress " "high dynamic range. Expose for the highlights before use." -#: ../src/iop/basecurve.c:2201 +#: ../src/iop/basecurve.c:2222 msgid "how many stops to shift the individual exposures apart" msgstr "How many stops to shift the individual exposures apart" -#: ../src/iop/basecurve.c:2210 +#: ../src/iop/basecurve.c:2231 msgid "" "whether to shift exposure up or down (-1: reduce highlight, +1: reduce " "shadows)" @@ -12652,40 +13161,39 @@ "Whether to shift exposure up or down (-1: reduce highlight, +1: reduce " "shadows)" -#: ../src/iop/basecurve.c:2215 ../src/iop/tonecurve.c:1187 +#: ../src/iop/basecurve.c:2236 ../src/iop/tonecurve.c:1209 msgid "scale for graph" msgstr "Scale for graph" -#: ../src/iop/basicadj.c:136 +#: ../src/iop/basicadj.c:162 msgid "this module is deprecated. please use the quick access panel instead." msgstr "This module is deprecated. Please use the quick access panel instead." -#: ../src/iop/basicadj.c:141 +#: ../src/iop/basicadj.c:167 msgid "basic adjustments" msgstr "Basic adjustments" -#: ../src/iop/basicadj.c:146 +#: ../src/iop/basicadj.c:172 msgid "apply usual image adjustments" msgstr "Apply usual image adjustments" -#: ../src/iop/basicadj.c:147 ../src/iop/bilat.c:102 ../src/iop/bloom.c:81 -#: ../src/iop/blurs.c:93 ../src/iop/borders.c:198 ../src/iop/censorize.c:83 -#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:97 -#: ../src/iop/colorize.c:105 ../src/iop/colormapping.c:153 -#: ../src/iop/colorzones.c:145 ../src/iop/grain.c:434 ../src/iop/highpass.c:78 -#: ../src/iop/levels.c:138 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 -#: ../src/iop/lowpass.c:134 ../src/iop/monochrome.c:98 ../src/iop/soften.c:101 -#: ../src/iop/splittoning.c:103 ../src/iop/velvia.c:105 -#: ../src/iop/vibrance.c:95 ../src/iop/vignette.c:159 -#: ../src/iop/watermark.c:377 +#: ../src/iop/basicadj.c:173 ../src/iop/bilat.c:83 ../src/iop/bloom.c:81 +#: ../src/iop/blurs.c:93 ../src/iop/borders.c:323 ../src/iop/censorize.c:83 +#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:89 +#: ../src/iop/colorize.c:98 ../src/iop/colormapping.c:153 +#: ../src/iop/colorzones.c:146 ../src/iop/grain.c:450 ../src/iop/highpass.c:78 +#: ../src/iop/levels.c:140 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 +#: ../src/iop/lowpass.c:106 ../src/iop/monochrome.c:100 ../src/iop/soften.c:103 +#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:98 ../src/iop/vibrance.c:97 +#: ../src/iop/vignette.c:120 ../src/iop/watermark.c:422 msgid "creative" msgstr "Creative" -#: ../src/iop/basicadj.c:150 ../src/iop/colorbalancergb.c:188 +#: ../src/iop/basicadj.c:176 ../src/iop/colorbalancergb.c:188 msgid "non-linear, RGB, scene-referred" msgstr "Non-linear, RGB, scene-referred" -#: ../src/iop/basicadj.c:593 +#: ../src/iop/basicadj.c:623 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -12697,39 +13205,39 @@ "If poorly set, it will clip near-black colors out of gamut\n" "by pushing RGB values into negatives" -#: ../src/iop/basicadj.c:601 ../src/iop/exposure.c:1118 +#: ../src/iop/basicadj.c:631 ../src/iop/exposure.c:1136 msgid "adjust the exposure correction" msgstr "Adjust the exposure correction" -#: ../src/iop/basicadj.c:605 +#: ../src/iop/basicadj.c:635 msgid "highlight compression adjustment" msgstr "Highlight compression adjustment" -#: ../src/iop/basicadj.c:609 ../src/iop/colisa.c:308 +#: ../src/iop/basicadj.c:639 ../src/iop/colisa.c:302 msgid "contrast adjustment" msgstr "Contrast adjustment" -#: ../src/iop/basicadj.c:617 +#: ../src/iop/basicadj.c:647 msgid "middle gray adjustment" msgstr "Middle gray adjustment" -#: ../src/iop/basicadj.c:622 ../src/iop/colisa.c:309 +#: ../src/iop/basicadj.c:652 ../src/iop/colisa.c:303 msgid "brightness adjustment" msgstr "Brightness adjustment" -#: ../src/iop/basicadj.c:625 +#: ../src/iop/basicadj.c:655 msgid "saturation adjustment" msgstr "Saturation adjustment" -#: ../src/iop/basicadj.c:628 +#: ../src/iop/basicadj.c:658 msgid "vibrance adjustment" msgstr "Vibrance adjustment" -#: ../src/iop/basicadj.c:632 +#: ../src/iop/basicadj.c:662 msgid "apply auto exposure based on the entire image" msgstr "Apply auto exposure based on the entire image" -#: ../src/iop/basicadj.c:639 +#: ../src/iop/basicadj.c:669 msgid "" "apply auto exposure based on a region defined by the user\n" "click and drag to draw the area\n" @@ -12739,51 +13247,51 @@ "Click and drag to draw the area\n" "Right click to cancel" -#: ../src/iop/basicadj.c:647 +#: ../src/iop/basicadj.c:677 msgid "clip" msgstr "Clip" -#: ../src/iop/basicadj.c:649 +#: ../src/iop/basicadj.c:679 msgid "adjusts clipping value for auto exposure calculation" msgstr "Adjusts clipping value for auto exposure calculation" #. local contrast -#: ../src/iop/bilat.c:96 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:551 +#: ../src/iop/bilat.c:77 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:578 msgid "local contrast" msgstr "Local contrast" -#: ../src/iop/bilat.c:101 +#: ../src/iop/bilat.c:82 msgid "manipulate local and global contrast separately" msgstr "Manipulate local and global contrast separately" -#: ../src/iop/bilat.c:103 ../src/iop/bilat.c:105 ../src/iop/bloom.c:82 +#: ../src/iop/bilat.c:84 ../src/iop/bilat.c:86 ../src/iop/bloom.c:82 #: ../src/iop/bloom.c:84 ../src/iop/colisa.c:91 ../src/iop/colisa.c:93 -#: ../src/iop/colorcontrast.c:98 ../src/iop/colorcontrast.c:100 +#: ../src/iop/colorcontrast.c:90 ../src/iop/colorcontrast.c:92 #: ../src/iop/colorcorrection.c:78 ../src/iop/colorcorrection.c:80 -#: ../src/iop/colorize.c:108 ../src/iop/colormapping.c:156 -#: ../src/iop/colorreconstruction.c:138 ../src/iop/colorzones.c:148 -#: ../src/iop/defringe.c:85 ../src/iop/grain.c:435 ../src/iop/grain.c:437 -#: ../src/iop/levels.c:141 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 -#: ../src/iop/monochrome.c:101 ../src/iop/nlmeans.c:96 ../src/iop/nlmeans.c:98 -#: ../src/iop/shadhi.c:200 ../src/iop/tonecurve.c:214 ../src/iop/vibrance.c:98 +#: ../src/iop/colorize.c:101 ../src/iop/colormapping.c:156 +#: ../src/iop/colorreconstruction.c:123 ../src/iop/colorzones.c:149 +#: ../src/iop/defringe.c:85 ../src/iop/grain.c:451 ../src/iop/grain.c:453 +#: ../src/iop/levels.c:143 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 +#: ../src/iop/monochrome.c:103 ../src/iop/nlmeans.c:90 ../src/iop/nlmeans.c:92 +#: ../src/iop/shadhi.c:147 ../src/iop/tonecurve.c:187 ../src/iop/vibrance.c:100 msgid "non-linear, Lab, display-referred" msgstr "Non-linear, Lab, display-referred" -#: ../src/iop/bilat.c:104 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 -#: ../src/iop/colorcontrast.c:99 ../src/iop/colorcorrection.c:79 -#: ../src/iop/colorize.c:107 ../src/iop/colormapping.c:155 -#: ../src/iop/colorreconstruction.c:137 ../src/iop/colorzones.c:147 -#: ../src/iop/defringe.c:84 ../src/iop/grain.c:436 ../src/iop/levels.c:140 -#: ../src/iop/monochrome.c:100 ../src/iop/nlmeans.c:97 ../src/iop/shadhi.c:199 -#: ../src/iop/tonecurve.c:213 ../src/iop/vibrance.c:97 +#: ../src/iop/bilat.c:85 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 +#: ../src/iop/colorcontrast.c:91 ../src/iop/colorcorrection.c:79 +#: ../src/iop/colorize.c:100 ../src/iop/colormapping.c:155 +#: ../src/iop/colorreconstruction.c:122 ../src/iop/colorzones.c:148 +#: ../src/iop/defringe.c:84 ../src/iop/grain.c:452 ../src/iop/levels.c:142 +#: ../src/iop/monochrome.c:102 ../src/iop/nlmeans.c:91 ../src/iop/shadhi.c:146 +#: ../src/iop/tonecurve.c:186 ../src/iop/vibrance.c:99 msgid "non-linear, Lab" msgstr "Non-linear, Lab" -#: ../src/iop/bilat.c:178 +#: ../src/iop/bilat.c:195 msgid "HDR local tone-mapping" msgstr "HDR local tone-mapping" -#: ../src/iop/bilat.c:431 +#: ../src/iop/bilat.c:441 msgid "" "the filter used for local contrast enhancement. bilateral is faster but can " "lead to artifacts around edges for extreme settings." @@ -12791,31 +13299,31 @@ "The filter used for local contrast enhancement. Bilateral is faster but can " "lead to artifacts around edges for extreme settings." -#: ../src/iop/bilat.c:435 ../src/iop/globaltonemap.c:635 +#: ../src/iop/bilat.c:445 ../src/iop/globaltonemap.c:668 msgid "detail" msgstr "Detail" -#: ../src/iop/bilat.c:438 +#: ../src/iop/bilat.c:448 msgid "changes the local contrast" msgstr "Changes the local contrast" -#: ../src/iop/bilat.c:453 +#: ../src/iop/bilat.c:463 msgid "feature size of local details (spatial sigma of bilateral filter)" msgstr "Feature size of local details (spatial sigma of bilateral filter)" -#: ../src/iop/bilat.c:461 +#: ../src/iop/bilat.c:471 msgid "L difference to detect edges (range sigma of bilateral filter)" msgstr "L difference to detect edges (range sigma of bilateral filter)" -#: ../src/iop/bilat.c:467 +#: ../src/iop/bilat.c:477 msgid "changes the local contrast of highlights" msgstr "Changes the local contrast of highlights" -#: ../src/iop/bilat.c:473 +#: ../src/iop/bilat.c:483 msgid "changes the local contrast of shadows" msgstr "Changes the local contrast of shadows" -#: ../src/iop/bilat.c:479 +#: ../src/iop/bilat.c:489 msgid "" "defines what counts as mid-tones. lower for better dynamic range compression " "(reduce shadow and highlight contrast), increase for more powerful local " @@ -12825,7 +13333,7 @@ "(reduce shadow and highlight contrast), increase for more powerful local " "contrast" -#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:396 +#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:423 msgid "surface blur" msgstr "Surface blur" @@ -12833,22 +13341,22 @@ msgid "denoise (bilateral filter)" msgstr "Denoise (bilateral filter)" -#: ../src/iop/bilateral.cc:99 +#: ../src/iop/bilateral.cc:101 msgid "apply edge-aware surface blur to denoise or smoothen textures" msgstr "Apply edge-aware surface blur to denoise or smoothen textures" -#: ../src/iop/bilateral.cc:102 ../src/iop/blurs.c:93 -#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:729 -#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/soften.c:103 -#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:107 +#: ../src/iop/bilateral.cc:104 ../src/iop/blurs.c:93 +#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:781 +#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/primaries.c:82 +#: ../src/iop/soften.c:105 ../src/iop/splittoning.c:107 ../src/iop/velvia.c:100 msgid "linear, RGB" msgstr "Linear, RGB" -#: ../src/iop/bilateral.cc:136 +#: ../src/iop/bilateral.cc:138 msgid "image too large" msgstr "Image too large" -#: ../src/iop/bilateral.cc:137 +#: ../src/iop/bilateral.cc:139 msgid "" "this module is unable to process\n" "images with more than 2 gigapixels.\n" @@ -12858,19 +13366,19 @@ "images with more than 2 gigapixels.\n" "Processing has been skipped." -#: ../src/iop/bilateral.cc:351 +#: ../src/iop/bilateral.cc:353 msgid "spatial extent of the gaussian" msgstr "Spatial extent of the gaussian" -#: ../src/iop/bilateral.cc:355 +#: ../src/iop/bilateral.cc:357 msgid "how much to blur red" msgstr "How much to blur red" -#: ../src/iop/bilateral.cc:360 +#: ../src/iop/bilateral.cc:362 msgid "how much to blur green" msgstr "How much to blur green" -#: ../src/iop/bilateral.cc:365 +#: ../src/iop/bilateral.cc:367 msgid "how much to blur blue" msgstr "How much to blur blue" @@ -12878,20 +13386,20 @@ msgid "apply Orton effect for a dreamy aetherical look" msgstr "Apply Orton effect for a dreamy aetherical look" -#: ../src/iop/bloom.c:368 ../src/iop/soften.c:369 ../src/libs/camera.c:567 -#: ../src/libs/masks.c:105 +#: ../src/iop/bloom.c:364 ../src/iop/soften.c:364 ../src/libs/camera.c:567 +#: ../src/libs/masks.c:106 msgid "size" msgstr "Size" -#: ../src/iop/bloom.c:370 +#: ../src/iop/bloom.c:366 msgid "the size of bloom" msgstr "The size of bloom" -#: ../src/iop/bloom.c:374 +#: ../src/iop/bloom.c:370 msgid "the threshold of light" msgstr "The threshold of light" -#: ../src/iop/bloom.c:378 +#: ../src/iop/bloom.c:374 msgid "the strength of bloom" msgstr "The strength of bloom" @@ -12907,265 +13415,275 @@ msgid "simulate physically-accurate lens and motion blurs" msgstr "Simulate physically-accurate lens and motion blurs" -#: ../src/iop/borders.c:187 +#: ../src/iop/borders.c:312 msgid "framing" msgstr "Framing" -#: ../src/iop/borders.c:192 +#: ../src/iop/borders.c:317 msgid "borders|enlarge canvas|expand canvas" msgstr "borders|enlarge canvas|expand canvas" -#: ../src/iop/borders.c:197 +#: ../src/iop/borders.c:322 msgid "add solid borders or margins around the picture" msgstr "Add solid borders or margins around the picture" -#: ../src/iop/borders.c:199 ../src/iop/borders.c:201 ../src/iop/lut3d.c:144 +#: ../src/iop/borders.c:324 ../src/iop/borders.c:326 ../src/iop/lut3d.c:145 msgid "linear or non-linear, RGB, display-referred" msgstr "Linear or non-linear, RGB, display-referred" -#: ../src/iop/borders.c:727 +#: ../src/iop/borders.c:737 msgid "15:10 postcard white" msgstr "15:10 postcard white" -#: ../src/iop/borders.c:732 +#: ../src/iop/borders.c:742 msgid "15:10 postcard black" msgstr "15:10 postcard black" -#: ../src/iop/borders.c:942 -msgid "size of the border in percent of the full image" -msgstr "Size of the border in percent of the full image" +#: ../src/iop/borders.c:948 +msgid "which dimension to use for the size calculation" +msgstr "Which dimension to use for the size calculation" + +#: ../src/iop/borders.c:954 +msgid "size of the border in percent of the chosen basis" +msgstr "Size of the border in percent of the chosen basis" -#: ../src/iop/borders.c:944 ../src/iop/clipping.c:2218 ../src/iop/crop.c:1224 +#: ../src/iop/borders.c:956 ../src/iop/clipping.c:2271 ../src/iop/crop.c:1208 msgid "aspect" msgstr "Aspect" -#: ../src/iop/borders.c:945 +#: ../src/iop/borders.c:957 msgid "" -"select the aspect ratio (right click on slider below to type your own w:h)" +"select the aspect ratio\n" +"(right click on slider below to type your own w:h)" msgstr "" -"Select the aspect ratio (right click on slider below to type your own w:h)" +"Select the aspect ratio\n" +"(right click on slider below to type your own w:h)" -#: ../src/iop/borders.c:948 +#: ../src/iop/borders.c:961 msgid "3:1" msgstr "3:1" -#: ../src/iop/borders.c:949 +#: ../src/iop/borders.c:962 msgid "95:33" msgstr "95:33" -#: ../src/iop/borders.c:950 +#: ../src/iop/borders.c:963 msgid "CinemaScope 2.39:1" msgstr "CinemaScope 2.39:1" -#: ../src/iop/borders.c:951 +#: ../src/iop/borders.c:964 msgid "2:1" msgstr "2:1" -#: ../src/iop/borders.c:952 +#: ../src/iop/borders.c:965 msgid "16:9" msgstr "16:9" -#: ../src/iop/borders.c:953 +#: ../src/iop/borders.c:966 msgid "5:3" msgstr "5:3" -#: ../src/iop/borders.c:954 +#: ../src/iop/borders.c:967 msgid "US Legal 8.5x14" msgstr "US Legal 8.5x14" -#: ../src/iop/borders.c:955 ../src/iop/clipping.c:2131 ../src/iop/crop.c:1128 +#: ../src/iop/borders.c:968 ../src/iop/clipping.c:2184 ../src/iop/crop.c:1112 msgid "golden cut" msgstr "Golden cut" -#: ../src/iop/borders.c:956 +#: ../src/iop/borders.c:969 msgid "16:10" msgstr "16:10" -#: ../src/iop/borders.c:957 +#: ../src/iop/borders.c:970 msgid "3:2 (4x6, 10x15cm)" msgstr "3:2 (4x6, 10x15cm)" -#: ../src/iop/borders.c:959 +#: ../src/iop/borders.c:972 msgid "DIN" msgstr "DIN" -#: ../src/iop/borders.c:960 +#: ../src/iop/borders.c:973 msgid "7:5" msgstr "7:5" -#: ../src/iop/borders.c:961 +#: ../src/iop/borders.c:974 msgid "4:3" msgstr "4:3" -#: ../src/iop/borders.c:962 +#: ../src/iop/borders.c:975 msgid "US Letter 8.5x11" msgstr "US Letter 8.5x11" -#: ../src/iop/borders.c:963 +#: ../src/iop/borders.c:976 msgid "14:11" msgstr "14:11" -#: ../src/iop/borders.c:964 +#: ../src/iop/borders.c:977 msgid "5:4 (8x10)" msgstr "5:4 (8x10)" -#: ../src/iop/borders.c:965 ../src/iop/clipping.c:2121 ../src/iop/crop.c:1118 -#: ../src/libs/filtering.c:301 ../src/libs/filters/ratio.c:126 -#: ../src/libs/histogram.c:141 +#: ../src/iop/borders.c:978 ../src/iop/clipping.c:2174 ../src/iop/crop.c:1102 +#: ../src/libs/filtering.c:307 ../src/libs/filters/ratio.c:126 +#: ../src/libs/histogram.c:118 msgid "square" msgstr "Square" -#: ../src/iop/borders.c:966 +#: ../src/iop/borders.c:979 msgid "constant border" msgstr "Constant border" -#: ../src/iop/borders.c:967 ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:980 ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "custom..." msgstr "Custom..." -#: ../src/iop/borders.c:972 -msgid "set the custom aspect ratio (right click to enter number or w:h)" -msgstr "Set the custom aspect ratio (right click to enter number or w:h)" +#: ../src/iop/borders.c:984 +msgid "" +"set the custom aspect ratio\n" +"(right click to enter number or w:h)" +msgstr "" +"Set the custom aspect ratio\n" +"(right click to enter number or w:h)" -#: ../src/iop/borders.c:975 +#: ../src/iop/borders.c:989 msgid "aspect ratio orientation of the image with border" msgstr "Aspect ratio orientation of the image with border" -#: ../src/iop/borders.c:977 +#: ../src/iop/borders.c:991 msgid "horizontal position" msgstr "Horizontal position" -#: ../src/iop/borders.c:978 +#: ../src/iop/borders.c:992 msgid "" -"select the horizontal position ratio relative to top or right click and type " -"your own (y:h)" +"select the horizontal position ratio relative to top\n" +"(right click on slider below to type your own x:w)" msgstr "" -"Select the horizontal position ratio relative to top or right click and type " -"your own (y:h)" +"Select the horizontal position ratio relative to top\n" +"(right click on slider below to type your own x:w)" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "center" msgstr "Center" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "1/3" msgstr "1/3" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "3/8" msgstr "3/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "5/8" msgstr "5/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "2/3" msgstr "2/3" -#: ../src/iop/borders.c:986 +#: ../src/iop/borders.c:1000 msgid "custom horizontal position" msgstr "Custom horizontal position" -#: ../src/iop/borders.c:988 +#: ../src/iop/borders.c:1002 msgid "vertical position" msgstr "Vertical position" -#: ../src/iop/borders.c:989 +#: ../src/iop/borders.c:1003 msgid "" -"select the vertical position ratio relative to left or right click and type " -"your own (x:w)" +"select the vertical position ratio relative to left\n" +"(right click on slider below to type your own y:h)" msgstr "" -"Select the vertical position ratio relative to left or right click and type " -"your own (x:w)" +"Select the vertical position ratio relative to left\n" +"(right click on slider below to type your own y:h)" -#: ../src/iop/borders.c:997 +#: ../src/iop/borders.c:1011 msgid "custom vertical position" msgstr "Custom vertical position" -#: ../src/iop/borders.c:1002 +#: ../src/iop/borders.c:1017 msgid "size of the frame line in percent of min border width" msgstr "Size of the frame line in percent of min border width" -#: ../src/iop/borders.c:1007 +#: ../src/iop/borders.c:1023 msgid "offset of the frame line beginning on picture side" msgstr "Offset of the frame line beginning on picture side" -#: ../src/iop/borders.c:1014 ../src/iop/borders.c:1023 +#: ../src/iop/borders.c:1033 ../src/iop/borders.c:1044 msgid "border color" msgstr "Border color" -#: ../src/iop/borders.c:1018 +#: ../src/iop/borders.c:1037 msgid "select border color" msgstr "Select border color" -#: ../src/iop/borders.c:1022 +#: ../src/iop/borders.c:1043 msgid "pick border color from image" msgstr "Pick border color from image" -#: ../src/iop/borders.c:1023 ../src/iop/borders.c:1036 -#: ../src/iop/colorzones.c:2415 ../src/iop/colorzones.c:2425 -#: ../src/iop/negadoctor.c:848 ../src/iop/negadoctor.c:915 -#: ../src/iop/negadoctor.c:953 ../src/iop/rgbcurve.c:1369 -#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1026 -#: ../src/iop/rgblevels.c:1032 ../src/iop/rgblevels.c:1038 +#: ../src/iop/borders.c:1044 ../src/iop/borders.c:1061 +#: ../src/iop/colorzones.c:2662 ../src/iop/colorzones.c:2677 +#: ../src/iop/negadoctor.c:867 ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:972 ../src/iop/rgbcurve.c:1369 +#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1075 +#: ../src/iop/rgblevels.c:1083 ../src/iop/rgblevels.c:1091 msgid "pickers" msgstr "Pickers" -#: ../src/iop/borders.c:1027 ../src/iop/borders.c:1036 +#: ../src/iop/borders.c:1049 ../src/iop/borders.c:1061 msgid "frame line color" msgstr "Frame line color" -#: ../src/iop/borders.c:1031 +#: ../src/iop/borders.c:1054 msgid "select frame line color" msgstr "Select frame line color" -#: ../src/iop/borders.c:1035 +#: ../src/iop/borders.c:1060 msgid "pick frame line color from image" msgstr "Pick frame line color from image" #. make sure you put all your translatable strings into _() ! -#: ../src/iop/cacorrect.c:72 +#: ../src/iop/cacorrect.c:78 msgid "raw chromatic aberrations" msgstr "Raw chromatic aberrations" -#: ../src/iop/cacorrect.c:77 +#: ../src/iop/cacorrect.c:83 msgid "correct chromatic aberrations for Bayer sensors" msgstr "Correct chromatic aberrations for Bayer sensors" -#: ../src/iop/cacorrect.c:79 ../src/iop/cacorrect.c:81 +#: ../src/iop/cacorrect.c:85 ../src/iop/cacorrect.c:87 #: ../src/iop/cacorrectrgb.c:171 ../src/iop/cacorrectrgb.c:173 #: ../src/iop/demosaic.c:294 ../src/iop/highlights.c:180 -#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:74 -#: ../src/iop/hotpixels.c:76 ../src/iop/rawdenoise.c:131 -#: ../src/iop/rawdenoise.c:133 ../src/iop/rawprepare.c:159 -#: ../src/iop/rawprepare.c:161 ../src/iop/temperature.c:213 -#: ../src/iop/temperature.c:215 +#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:76 +#: ../src/iop/hotpixels.c:78 ../src/iop/rawdenoise.c:145 +#: ../src/iop/rawdenoise.c:147 ../src/iop/rawprepare.c:175 +#: ../src/iop/rawprepare.c:177 ../src/iop/temperature.c:221 +#: ../src/iop/temperature.c:223 msgid "linear, raw, scene-referred" msgstr "Linear, raw, scene-referred" -#: ../src/iop/cacorrect.c:80 ../src/iop/cacorrectrgb.c:172 -#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:121 -#: ../src/iop/rawdenoise.c:132 ../src/iop/rawprepare.c:160 -#: ../src/iop/temperature.c:214 +#: ../src/iop/cacorrect.c:86 ../src/iop/cacorrectrgb.c:172 +#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:138 +#: ../src/iop/rawdenoise.c:146 ../src/iop/rawprepare.c:176 +#: ../src/iop/temperature.c:222 msgid "linear, raw" msgstr "Linear, raw" -#: ../src/iop/cacorrect.c:1405 +#: ../src/iop/cacorrect.c:1424 msgid "iteration runs, default is twice" msgstr "Iteration runs, default is twice" -#: ../src/iop/cacorrect.c:1408 +#: ../src/iop/cacorrect.c:1427 msgid "activate colorshift correction for blue & red channels" msgstr "Activate colorshift correction for blue & red channels" -#: ../src/iop/cacorrect.c:1415 +#: ../src/iop/cacorrect.c:1434 msgid "" "automatic chromatic aberration correction\n" -"only for Bayer raw files" +"only for Bayer raw files with 3 color channels" msgstr "" "Automatic chromatic aberration correction\n" -"Only for Bayer raw files" +"Only for Bayer raw files with 3 color channels" #: ../src/iop/cacorrectrgb.c:164 ../src/iop/defringe.c:76 msgid "chromatic aberrations" @@ -13175,7 +13693,7 @@ msgid "correct chromatic aberrations" msgstr "Correct chromatic aberrations" -#: ../src/iop/cacorrectrgb.c:743 +#: ../src/iop/cacorrectrgb.c:745 msgid "" "channel used as a reference to\n" "correct the other channels.\n" @@ -13191,11 +13709,11 @@ "Try changing guide channel if you\n" "have artifacts." -#: ../src/iop/cacorrectrgb.c:750 +#: ../src/iop/cacorrectrgb.c:752 msgid "increase for stronger correction" msgstr "Increase for stronger correction" -#: ../src/iop/cacorrectrgb.c:752 +#: ../src/iop/cacorrectrgb.c:754 msgid "" "balance between smoothing colors\n" "and preserving them.\n" @@ -13207,12 +13725,12 @@ "High values can lead to overshooting\n" "and edge bleeding." -#: ../src/iop/cacorrectrgb.c:757 +#: ../src/iop/cacorrectrgb.c:759 msgctxt "section" msgid "advanced parameters" msgstr "Advanced parameters" -#: ../src/iop/cacorrectrgb.c:759 +#: ../src/iop/cacorrectrgb.c:761 msgid "" "correction mode to use.\n" "can help with multiple\n" @@ -13230,7 +13748,7 @@ "efficient to correct blue\n" "chromatic aberration." -#: ../src/iop/cacorrectrgb.c:767 +#: ../src/iop/cacorrectrgb.c:769 msgid "" "runs an iterative approach\n" "with several radii.\n" @@ -13265,35 +13783,35 @@ msgid "special, RGB, scene-referred" msgstr "Special, RGB, scene-referred" -#: ../src/iop/censorize.c:412 +#: ../src/iop/censorize.c:404 msgid "radius_1" msgstr "Radius_1" -#: ../src/iop/censorize.c:414 +#: ../src/iop/censorize.c:406 msgid "pixelate" msgstr "Pixelate" -#: ../src/iop/censorize.c:416 +#: ../src/iop/censorize.c:408 msgid "radius_2" msgstr "Radius_2" -#: ../src/iop/censorize.c:418 +#: ../src/iop/censorize.c:410 msgid "noise" msgstr "Noise" -#: ../src/iop/censorize.c:420 +#: ../src/iop/censorize.c:412 msgid "radius of gaussian blur before pixellation" msgstr "Radius of gaussian blur before pixellation" -#: ../src/iop/censorize.c:421 +#: ../src/iop/censorize.c:413 msgid "radius of gaussian blur after pixellation" msgstr "Radius of gaussian blur after pixellation" -#: ../src/iop/censorize.c:422 +#: ../src/iop/censorize.c:414 msgid "radius of the intermediate pixellation" msgstr "Radius of the intermediate pixellation" -#: ../src/iop/censorize.c:423 +#: ../src/iop/censorize.c:415 msgid "amount of noise to add at the end" msgstr "Amount of noise to add at the end" @@ -13307,7 +13825,7 @@ msgstr "" "This module is deprecated. Please use the color calibration module instead." -#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:229 +#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:230 msgid "" "perform color space corrections\n" "such as white balance, channels mixing\n" @@ -13317,168 +13835,168 @@ "such as white balance, channels mixing\n" "and conversions to monochrome emulating film" -#: ../src/iop/channelmixer.c:614 +#: ../src/iop/channelmixer.c:633 msgid "destination" msgstr "Destination" -#: ../src/iop/channelmixer.c:621 +#: ../src/iop/channelmixer.c:640 msgctxt "channelmixer" msgid "gray" msgstr "Gray" -#: ../src/iop/channelmixer.c:627 +#: ../src/iop/channelmixer.c:646 msgid "amount of red channel in the output channel" msgstr "Amount of red channel in the output channel" -#: ../src/iop/channelmixer.c:633 +#: ../src/iop/channelmixer.c:652 msgid "amount of green channel in the output channel" msgstr "Amount of green channel in the output channel" -#: ../src/iop/channelmixer.c:639 +#: ../src/iop/channelmixer.c:658 msgid "amount of blue channel in the output channel" msgstr "Amount of blue channel in the output channel" -#: ../src/iop/channelmixer.c:655 ../src/iop/channelmixerrgb.c:524 +#: ../src/iop/channelmixer.c:674 ../src/iop/channelmixerrgb.c:588 msgid "swap R and B" msgstr "Swap R and B" -#: ../src/iop/channelmixer.c:661 ../src/iop/channelmixerrgb.c:498 +#: ../src/iop/channelmixer.c:680 ../src/iop/channelmixerrgb.c:562 msgid "swap G and B" msgstr "Swap G and B" -#: ../src/iop/channelmixer.c:667 +#: ../src/iop/channelmixer.c:686 msgid "color contrast boost" msgstr "Color contrast boost" -#: ../src/iop/channelmixer.c:673 +#: ../src/iop/channelmixer.c:692 msgid "color details boost" msgstr "Color details boost" -#: ../src/iop/channelmixer.c:679 +#: ../src/iop/channelmixer.c:698 msgid "color artifacts boost" msgstr "Color artifacts boost" -#: ../src/iop/channelmixer.c:685 +#: ../src/iop/channelmixer.c:704 msgid "B/W luminance-based" msgstr "B/W luminance-based" -#: ../src/iop/channelmixer.c:691 +#: ../src/iop/channelmixer.c:710 msgid "B/W artifacts boost" msgstr "B/W artifacts boost" -#: ../src/iop/channelmixer.c:697 +#: ../src/iop/channelmixer.c:716 msgid "B/W smooth skin" msgstr "B/W smooth skin" -#: ../src/iop/channelmixer.c:703 +#: ../src/iop/channelmixer.c:722 msgid "B/W blue artifacts reduce" msgstr "B/W blue artifacts reduce" -#: ../src/iop/channelmixer.c:710 +#: ../src/iop/channelmixer.c:729 msgid "B/W Ilford Delta 100-400" msgstr "B/W Ilford Delta 100-400" -#: ../src/iop/channelmixer.c:717 +#: ../src/iop/channelmixer.c:736 msgid "B/W Ilford Delta 3200" msgstr "B/W Ilford Delta 3200" -#: ../src/iop/channelmixer.c:724 +#: ../src/iop/channelmixer.c:743 msgid "B/W Ilford FP4" msgstr "B/W Ilford FP4" -#: ../src/iop/channelmixer.c:731 +#: ../src/iop/channelmixer.c:750 msgid "B/W Ilford HP5" msgstr "B/W Ilford HP5" -#: ../src/iop/channelmixer.c:738 +#: ../src/iop/channelmixer.c:757 msgid "B/W Ilford SFX" msgstr "B/W Ilford SFX" -#: ../src/iop/channelmixer.c:745 +#: ../src/iop/channelmixer.c:764 msgid "B/W Kodak T-Max 100" msgstr "B/W Kodak T-Max 100" -#: ../src/iop/channelmixer.c:752 +#: ../src/iop/channelmixer.c:771 msgid "B/W Kodak T-max 400" msgstr "B/W Kodak T-max 400" -#: ../src/iop/channelmixer.c:759 +#: ../src/iop/channelmixer.c:778 msgid "B/W Kodak Tri-X 400" msgstr "B/W Kodak Tri-X 400" -#: ../src/iop/channelmixerrgb.c:219 +#: ../src/iop/channelmixerrgb.c:220 msgid "color calibration" msgstr "Color calibration" -#: ../src/iop/channelmixerrgb.c:224 +#: ../src/iop/channelmixerrgb.c:225 msgid "channel mixer|white balance|monochrome" msgstr "channel mixer|white balance|monochrome" -#: ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:235 msgid "linear, RGB or XYZ" msgstr "Linear, RGB or XYZ" -#: ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:460 msgid "B&W: luminance-based" msgstr "B&W: luminance-based" -#: ../src/iop/channelmixerrgb.c:431 +#: ../src/iop/channelmixerrgb.c:495 msgid "B&W: ILFORD HP5+" msgstr "B&W: ILFORD HP5+" -#: ../src/iop/channelmixerrgb.c:440 +#: ../src/iop/channelmixerrgb.c:504 msgid "B&W: ILFORD DELTA 100" msgstr "B&W: ILFORD DELTA 100" -#: ../src/iop/channelmixerrgb.c:450 +#: ../src/iop/channelmixerrgb.c:514 msgid "B&W: ILFORD DELTA 400 - 3200" msgstr "B&W: ILFORD DELTA 400 - 3200" -#: ../src/iop/channelmixerrgb.c:459 +#: ../src/iop/channelmixerrgb.c:523 msgid "B&W: ILFORD FP4+" msgstr "B&W: ILFORD FP4+" -#: ../src/iop/channelmixerrgb.c:468 +#: ../src/iop/channelmixerrgb.c:532 msgid "B&W: Fuji Acros 100" msgstr "B&W: Fuji Acros 100" -#: ../src/iop/channelmixerrgb.c:485 +#: ../src/iop/channelmixerrgb.c:549 msgid "basic channel mixer" msgstr "Basic channel mixer" -#: ../src/iop/channelmixerrgb.c:511 +#: ../src/iop/channelmixerrgb.c:575 msgid "swap G and R" msgstr "Swap G and R" -#: ../src/iop/channelmixerrgb.c:1869 +#: ../src/iop/channelmixerrgb.c:1926 msgid "(daylight)" msgstr "(daylight)" -#: ../src/iop/channelmixerrgb.c:1871 +#: ../src/iop/channelmixerrgb.c:1928 msgid "(black body)" msgstr "(black body)" -#: ../src/iop/channelmixerrgb.c:1873 +#: ../src/iop/channelmixerrgb.c:1930 msgid "(invalid)" msgstr "(invalid)" -#: ../src/iop/channelmixerrgb.c:1877 ../src/iop/channelmixerrgb.c:1935 +#: ../src/iop/channelmixerrgb.c:1934 ../src/iop/channelmixerrgb.c:1992 msgid "very good" msgstr "Very good" -#: ../src/iop/channelmixerrgb.c:1879 ../src/iop/channelmixerrgb.c:1937 +#: ../src/iop/channelmixerrgb.c:1936 ../src/iop/channelmixerrgb.c:1994 msgid "good" msgstr "Good" -#: ../src/iop/channelmixerrgb.c:1881 ../src/iop/channelmixerrgb.c:1939 +#: ../src/iop/channelmixerrgb.c:1938 ../src/iop/channelmixerrgb.c:1996 msgid "passable" msgstr "Passable" -#: ../src/iop/channelmixerrgb.c:1883 ../src/iop/channelmixerrgb.c:1941 +#: ../src/iop/channelmixerrgb.c:1940 ../src/iop/channelmixerrgb.c:1998 msgid "bad" msgstr "Bad" -#: ../src/iop/channelmixerrgb.c:1890 +#: ../src/iop/channelmixerrgb.c:1947 #, c-format msgid "" "\n" @@ -13515,7 +14033,7 @@ "Exposure compensation: \t%+.2f EV\n" "Black offset: \t%+.4f" -#: ../src/iop/channelmixerrgb.c:1946 +#: ../src/iop/channelmixerrgb.c:2003 #, c-format msgid "" "\n" @@ -13534,27 +14052,43 @@ "Exposure compensation: \t%+.2f EV\n" "Black offset: \t%+.4f" -#: ../src/iop/channelmixerrgb.c:1978 +#: ../src/iop/channelmixerrgb.c:2054 msgid "double CAT applied" msgstr "Double CAT applied" -#: ../src/iop/channelmixerrgb.c:1979 +#: ../src/iop/channelmixerrgb.c:2055 msgid "" "you have 2 instances or more of color calibration,\n" -"all performing chromatic adaptation.\n" -"this can lead to inconsistencies, unless you\n" +"all providing chromatic adaptation.\n" +"this can lead to inconsistencies unless you\n" "use them with masks or know what you are doing." msgstr "" "You have 2 instances or more of color calibration,\n" -"all performing chromatic adaptation.\n" -"This can lead to inconsistencies, unless you\n" +"all providing chromatic adaptation.\n" +"This can lead to inconsistencies unless you\n" "use them with masks or know what you are doing." -#: ../src/iop/channelmixerrgb.c:1991 +#: ../src/iop/channelmixerrgb.c:2071 +msgid "white balance applied twice" +msgstr "White balance applied twice" + +#: ../src/iop/channelmixerrgb.c:2072 +msgid "" +"the color calibration module is enabled and already provides\n" +"chromatic adaptation.\n" +"set the white balance here to camera reference (D65)\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"The color calibration module is enabled and already provides\n" +"chromatic adaptation.\n" +"Set the white balance here to camera reference (D65)\n" +"or disable chromatic adaptation in color calibration." + +#: ../src/iop/channelmixerrgb.c:2080 msgid "white balance module error" msgstr "White balance module error" -#: ../src/iop/channelmixerrgb.c:1992 +#: ../src/iop/channelmixerrgb.c:2081 msgid "" "the white balance module is not using the camera\n" "reference illuminant, which will cause issues here\n" @@ -13566,20 +14100,48 @@ "with chromatic adaptation. Either set it to reference\n" "or disable chromatic adaptation here." -#: ../src/iop/channelmixerrgb.c:2083 +#: ../src/iop/channelmixerrgb.c:2095 ../src/iop/channelmixerrgb.c:2104 +msgid "white balance missing" +msgstr "White balance missing" + +#: ../src/iop/channelmixerrgb.c:2096 +msgid "" +"this module is not providing a valid reference illuminant\n" +"causing chromatic adaptation issues in color calibration.\n" +"enable this module and either set it to reference\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"This module is not providing a valid reference illuminant\n" +"causing chromatic adaptation issues in color calibration.\n" +"Enable this module and either set it to reference\n" +"or disable chromatic adaptation in color calibration." + +#: ../src/iop/channelmixerrgb.c:2105 +msgid "" +"the white balance module is not providing a valid reference\n" +"illuminant causing issues with chromatic adaptation here.\n" +"enable white balance and either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" +"The white balance module is not providing a valid reference\n" +"illuminant causing issues with chromatic adaptation here.\n" +"Enable white balance and either set it to reference\n" +"or disable chromatic adaptation here." + +#: ../src/iop/channelmixerrgb.c:2196 msgid "auto-detection of white balance completed" msgstr "Auto-detection of white balance completed" -#: ../src/iop/channelmixerrgb.c:2236 +#: ../src/iop/channelmixerrgb.c:2346 msgid "channelmixerrgb works only on RGB input" msgstr "Channelmixerrgb works only on RGB input" -#: ../src/iop/channelmixerrgb.c:3621 +#: ../src/iop/channelmixerrgb.c:3692 #, c-format msgid "CCT: %.0f K (daylight)" msgstr "CCT: %.0f K (daylight)" -#: ../src/iop/channelmixerrgb.c:3624 +#: ../src/iop/channelmixerrgb.c:3695 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a daylight spectrum,\n" @@ -13589,12 +14151,12 @@ "This illuminant can be accurately modeled by a daylight spectrum,\n" "so its temperature is relevant and meaningful with a D illuminant." -#: ../src/iop/channelmixerrgb.c:3630 +#: ../src/iop/channelmixerrgb.c:3701 #, c-format msgid "CCT: %.0f K (black body)" msgstr "CCT: %.0f K (black body)" -#: ../src/iop/channelmixerrgb.c:3633 +#: ../src/iop/channelmixerrgb.c:3704 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a black body spectrum,\n" @@ -13604,12 +14166,12 @@ "This illuminant can be accurately modeled by a black body spectrum,\n" "so its temperature is relevant and meaningful with a Planckian illuminant." -#: ../src/iop/channelmixerrgb.c:3639 +#: ../src/iop/channelmixerrgb.c:3710 #, c-format msgid "CCT: %.0f K (invalid)" msgstr "CCT: %.0f K (invalid)" -#: ../src/iop/channelmixerrgb.c:3642 +#: ../src/iop/channelmixerrgb.c:3713 msgid "" "approximated correlated color temperature.\n" "this illuminant cannot be accurately modeled by a daylight or black body " @@ -13623,12 +14185,12 @@ "so its temperature is not relevant and meaningful and you need to use a " "custom illuminant." -#: ../src/iop/channelmixerrgb.c:3651 +#: ../src/iop/channelmixerrgb.c:3722 #, c-format msgid "CCT: undefined" msgstr "CCT: undefined" -#: ../src/iop/channelmixerrgb.c:3654 +#: ../src/iop/channelmixerrgb.c:3725 msgid "" "the approximated correlated color temperature\n" "cannot be computed at all so you need to use a custom illuminant." @@ -13636,16 +14198,16 @@ "The approximated correlated color temperature\n" "cannot be computed at all so you need to use a custom illuminant." -#: ../src/iop/channelmixerrgb.c:3967 +#: ../src/iop/channelmixerrgb.c:4038 msgid "white balance successfully extracted from raw image" msgstr "White balance successfully extracted from raw image" #. We need to recompute only the full preview -#: ../src/iop/channelmixerrgb.c:3973 +#: ../src/iop/channelmixerrgb.c:4044 msgid "auto-detection of white balance started…" msgstr "Auto-detection of white balance started…" -#: ../src/iop/channelmixerrgb.c:4078 +#: ../src/iop/channelmixerrgb.c:4149 msgid "" "color calibration: the sum of the gray channel parameters is zero, " "normalization will be disabled." @@ -13654,7 +14216,7 @@ "normalization will be disabled." #. Write report in GUI -#: ../src/iop/channelmixerrgb.c:4126 +#: ../src/iop/channelmixerrgb.c:4194 #, c-format msgid "" "L: \t%.1f %%\n" @@ -13665,27 +14227,27 @@ "h: \t%.1f °\n" "c: \t%.1f" -#: ../src/iop/channelmixerrgb.c:4394 ../src/iop/clipping.c:2087 -#: ../src/iop/colorbalancergb.c:1873 ../src/iop/filmicrgb.c:4419 -#: ../src/iop/negadoctor.c:829 ../src/iop/toneequal.c:3319 -#: ../src/libs/image.c:460 ../src/views/lighttable.c:1258 +#: ../src/iop/channelmixerrgb.c:4462 ../src/iop/clipping.c:2140 +#: ../src/iop/colorbalancergb.c:1944 ../src/iop/filmicrgb.c:4483 +#: ../src/iop/negadoctor.c:848 ../src/iop/toneequal.c:3372 +#: ../src/libs/image.c:490 ../src/views/lighttable.c:1258 msgid "page" msgstr "Page" #. Page CAT -#: ../src/iop/channelmixerrgb.c:4397 +#: ../src/iop/channelmixerrgb.c:4465 msgid "CAT" msgstr "CAT" -#: ../src/iop/channelmixerrgb.c:4398 +#: ../src/iop/channelmixerrgb.c:4466 msgid "chromatic adaptation transform" msgstr "Chromatic adaptation transform" -#: ../src/iop/channelmixerrgb.c:4400 +#: ../src/iop/channelmixerrgb.c:4468 msgid "adaptation" msgstr "Adaptation" -#: ../src/iop/channelmixerrgb.c:4403 +#: ../src/iop/channelmixerrgb.c:4471 msgid "" "choose the method to adapt the illuminant\n" "and the colorspace in which the module works: \n" @@ -13705,7 +14267,7 @@ "• XYZ is a simple scaling in XYZ space. It is not recommended in general.\n" "• None disables any adaptation and uses pipeline working RGB." -#: ../src/iop/channelmixerrgb.c:4423 +#: ../src/iop/channelmixerrgb.c:4491 msgid "" "this is the color of the scene illuminant before chromatic adaptation\n" "this color will be turned into pure white by the adaptation." @@ -13713,27 +14275,27 @@ "This is the color of the scene illuminant before chromatic adaptation\n" "This color will be turned into pure white by the adaptation." -#: ../src/iop/channelmixerrgb.c:4431 +#: ../src/iop/channelmixerrgb.c:4499 msgid "picker" msgstr "Picker" -#: ../src/iop/channelmixerrgb.c:4433 ../src/iop/temperature.c:2047 +#: ../src/iop/channelmixerrgb.c:4501 ../src/iop/temperature.c:2015 msgid "set white balance to detected from area" msgstr "Set white balance to detected from area" -#: ../src/iop/channelmixerrgb.c:4437 ../src/iop/negadoctor.c:953 +#: ../src/iop/channelmixerrgb.c:4505 ../src/iop/negadoctor.c:972 msgid "illuminant" msgstr "Illuminant" -#: ../src/iop/channelmixerrgb.c:4443 ../src/iop/temperature.c:2107 +#: ../src/iop/channelmixerrgb.c:4511 ../src/iop/temperature.c:2072 msgid "temperature" msgstr "Temperature" -#: ../src/iop/channelmixerrgb.c:4474 -msgid "spot color mapping" -msgstr "Spot color mapping" +#: ../src/iop/channelmixerrgb.c:4542 +msgid "area color mapping" +msgstr "Area color mapping" -#: ../src/iop/channelmixerrgb.c:4480 +#: ../src/iop/channelmixerrgb.c:4548 msgid "" "define a target chromaticity (hue and chroma) for a particular region of the " "image (the control sample), which you then match against the same target " @@ -13747,17 +14309,17 @@ "part of your subject or a non-moving and consistently-lit surface over your " "series of images." -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/channelmixerrgb.c:4502 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/channelmixerrgb.c:4573 +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/channelmixerrgb.c:4570 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/channelmixerrgb.c:4641 msgid "mapping" msgstr "Mapping" -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/exposure.c:1188 -msgid "spot mode" -msgstr "Spot mode" +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/exposure.c:1206 +msgid "area mode" +msgstr "Area mode" -#: ../src/iop/channelmixerrgb.c:4488 +#: ../src/iop/channelmixerrgb.c:4556 msgid "" "\"correction\" automatically adjust the illuminant\n" "such that the input color is mapped to the target.\n" @@ -13769,19 +14331,19 @@ "\"Measure\" simply shows how an input color is mapped by the CAT\n" "and can be used to sample a target." -#: ../src/iop/channelmixerrgb.c:4493 ../src/iop/exposure.c:1194 +#: ../src/iop/channelmixerrgb.c:4561 ../src/iop/exposure.c:1212 msgid "correction" msgstr "Correction" -#: ../src/iop/channelmixerrgb.c:4494 ../src/iop/exposure.c:1195 +#: ../src/iop/channelmixerrgb.c:4562 ../src/iop/exposure.c:1213 msgid "measure" msgstr "Measure" -#: ../src/iop/channelmixerrgb.c:4500 +#: ../src/iop/channelmixerrgb.c:4568 msgid "take channel mixing into account" msgstr "Take channel mixing into account" -#: ../src/iop/channelmixerrgb.c:4507 +#: ../src/iop/channelmixerrgb.c:4575 msgid "" "compute the target by taking the channel mixing into account.\n" "if disabled, only the CAT is considered." @@ -13789,16 +14351,16 @@ "Compute the target by taking the channel mixing into account.\n" "If disabled, only the CAT is considered." -#: ../src/iop/channelmixerrgb.c:4519 ../src/iop/exposure.c:1202 +#: ../src/iop/channelmixerrgb.c:4587 ../src/iop/exposure.c:1220 msgctxt "section" msgid "input" msgstr "Input" -#: ../src/iop/channelmixerrgb.c:4526 ../src/iop/exposure.c:1210 +#: ../src/iop/channelmixerrgb.c:4594 ../src/iop/exposure.c:1228 msgid "the input color that should be mapped to the target" msgstr "The input color that should be mapped to the target" -#: ../src/iop/channelmixerrgb.c:4532 +#: ../src/iop/channelmixerrgb.c:4600 msgid "" "L: \tN/A\n" "h: \tN/A\n" @@ -13808,114 +14370,114 @@ "h: \tN/A\n" "c: \tN/A" -#: ../src/iop/channelmixerrgb.c:4535 ../src/iop/exposure.c:1218 +#: ../src/iop/channelmixerrgb.c:4603 ../src/iop/exposure.c:1236 msgid "these LCh coordinates are computed from CIE Lab 1976 coordinates" msgstr "These LCh coordinates are computed from CIE Lab 1976 coordinates" -#: ../src/iop/channelmixerrgb.c:4543 ../src/iop/exposure.c:1225 +#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/exposure.c:1243 msgctxt "section" msgid "target" msgstr "Target" -#: ../src/iop/channelmixerrgb.c:4550 +#: ../src/iop/channelmixerrgb.c:4618 msgid "the desired target color after mapping" msgstr "The desired target color after mapping" -#: ../src/iop/channelmixerrgb.c:4589 +#: ../src/iop/channelmixerrgb.c:4657 msgid "input R" msgstr "Input R" -#: ../src/iop/channelmixerrgb.c:4594 +#: ../src/iop/channelmixerrgb.c:4662 msgid "input G" msgstr "Input G" -#: ../src/iop/channelmixerrgb.c:4599 +#: ../src/iop/channelmixerrgb.c:4667 msgid "input B" msgstr "Input B" -#: ../src/iop/channelmixerrgb.c:4609 +#: ../src/iop/channelmixerrgb.c:4677 msgid "output R" msgstr "Output R" -#: ../src/iop/channelmixerrgb.c:4610 +#: ../src/iop/channelmixerrgb.c:4678 msgid "output G" msgstr "Output G" -#: ../src/iop/channelmixerrgb.c:4611 +#: ../src/iop/channelmixerrgb.c:4679 msgid "output B" msgstr "Output B" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "colorfulness" msgstr "Colorfulness" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "output colorfulness" msgstr "Output colorfulness" -#: ../src/iop/channelmixerrgb.c:4617 +#: ../src/iop/channelmixerrgb.c:4685 msgid "output brightness" msgstr "Output brightness" -#: ../src/iop/channelmixerrgb.c:4620 +#: ../src/iop/channelmixerrgb.c:4688 msgid "output gray" msgstr "Output gray" -#: ../src/iop/channelmixerrgb.c:4635 +#: ../src/iop/channelmixerrgb.c:4703 msgid "calibrate with a color checker" msgstr "Calibrate with a color checker" -#: ../src/iop/channelmixerrgb.c:4640 +#: ../src/iop/channelmixerrgb.c:4708 msgid "use a color checker target to autoset CAT and channels" msgstr "Use a color checker target to autoset CAT and channels" -#: ../src/iop/channelmixerrgb.c:4647 ../src/iop/channelmixerrgb.c:4660 -#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/channelmixerrgb.c:4696 -#: ../src/iop/channelmixerrgb.c:4705 ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4715 ../src/iop/channelmixerrgb.c:4728 +#: ../src/iop/channelmixerrgb.c:4746 ../src/iop/channelmixerrgb.c:4764 +#: ../src/iop/channelmixerrgb.c:4773 ../src/iop/channelmixerrgb.c:4781 msgid "calibrate" msgstr "Calibrate" -#: ../src/iop/channelmixerrgb.c:4647 +#: ../src/iop/channelmixerrgb.c:4715 msgid "chart" msgstr "Chart" -#: ../src/iop/channelmixerrgb.c:4648 +#: ../src/iop/channelmixerrgb.c:4716 msgid "choose the vendor and the type of your chart" msgstr "Choose the vendor and the type of your chart" -#: ../src/iop/channelmixerrgb.c:4650 +#: ../src/iop/channelmixerrgb.c:4718 msgid "Xrite ColorChecker 24 pre-2014" msgstr "Xrite ColorChecker 24 pre-2014" -#: ../src/iop/channelmixerrgb.c:4651 +#: ../src/iop/channelmixerrgb.c:4719 msgid "Xrite ColorChecker 24 post-2014" msgstr "Xrite ColorChecker 24 post-2014" -#: ../src/iop/channelmixerrgb.c:4652 +#: ../src/iop/channelmixerrgb.c:4720 msgid "Datacolor SpyderCheckr 24 pre-2018" msgstr "Datacolor SpyderCheckr 24 pre-2018" -#: ../src/iop/channelmixerrgb.c:4653 +#: ../src/iop/channelmixerrgb.c:4721 msgid "Datacolor SpyderCheckr 24 post-2018" msgstr "Datacolor SpyderCheckr 24 post-2018" -#: ../src/iop/channelmixerrgb.c:4654 +#: ../src/iop/channelmixerrgb.c:4722 msgid "Datacolor SpyderCheckr 48 pre-2018" msgstr "Datacolor SpyderCheckr 48 pre-2018" -#: ../src/iop/channelmixerrgb.c:4655 +#: ../src/iop/channelmixerrgb.c:4723 msgid "Datacolor SpyderCheckr 48 post-2018" msgstr "Datacolor SpyderCheckr 48 post-2018" -#: ../src/iop/channelmixerrgb.c:4656 +#: ../src/iop/channelmixerrgb.c:4724 msgid "Datacolor SpyderCheckr Photo" msgstr "Datacolor SpyderCheckr Photo" -#: ../src/iop/channelmixerrgb.c:4660 +#: ../src/iop/channelmixerrgb.c:4728 msgid "optimize for" msgstr "Optimize for" -#: ../src/iop/channelmixerrgb.c:4661 +#: ../src/iop/channelmixerrgb.c:4729 msgid "" "choose the colors that will be optimized with higher priority.\n" "neutral colors gives the lowest average delta E but a high maximum delta E\n" @@ -13931,35 +14493,35 @@ "None is a trade-off between both\n" "The others are special behaviors to protect some hues" -#: ../src/iop/channelmixerrgb.c:4668 +#: ../src/iop/channelmixerrgb.c:4736 msgid "neutral colors" msgstr "Neutral colors" -#: ../src/iop/channelmixerrgb.c:4670 +#: ../src/iop/channelmixerrgb.c:4738 msgid "skin and soil colors" msgstr "Skin and soil colors" -#: ../src/iop/channelmixerrgb.c:4671 +#: ../src/iop/channelmixerrgb.c:4739 msgid "foliage colors" msgstr "Foliage colors" -#: ../src/iop/channelmixerrgb.c:4672 +#: ../src/iop/channelmixerrgb.c:4740 msgid "sky and water colors" msgstr "Sky and water colors" -#: ../src/iop/channelmixerrgb.c:4673 +#: ../src/iop/channelmixerrgb.c:4741 msgid "average delta E" msgstr "Average delta E" -#: ../src/iop/channelmixerrgb.c:4674 +#: ../src/iop/channelmixerrgb.c:4742 msgid "maximum delta E" msgstr "Maximum delta E" -#: ../src/iop/channelmixerrgb.c:4678 +#: ../src/iop/channelmixerrgb.c:4746 msgid "patch scale" msgstr "Patch scale" -#: ../src/iop/channelmixerrgb.c:4681 +#: ../src/iop/channelmixerrgb.c:4749 msgid "" "reduce the radius of the patches to select the more or less central part.\n" "useful when the perspective correction is sloppy or\n" @@ -13969,31 +14531,31 @@ "Useful when the perspective correction is sloppy or\n" "the patches frame cast a shadows on the edges of the patch." -#: ../src/iop/channelmixerrgb.c:4691 +#: ../src/iop/channelmixerrgb.c:4759 msgid "the delta E is using the CIE 2000 formula" msgstr "The delta E is using the CIE 2000 formula" -#: ../src/iop/channelmixerrgb.c:4696 +#: ../src/iop/channelmixerrgb.c:4764 msgid "accept" msgstr "Accept" -#: ../src/iop/channelmixerrgb.c:4702 +#: ../src/iop/channelmixerrgb.c:4770 msgid "accept the computed profile and set it in the module" msgstr "Accept the computed profile and set it in the module" -#: ../src/iop/channelmixerrgb.c:4705 +#: ../src/iop/channelmixerrgb.c:4773 msgid "recompute" msgstr "Recompute" -#: ../src/iop/channelmixerrgb.c:4709 +#: ../src/iop/channelmixerrgb.c:4777 msgid "recompute the profile" msgstr "Recompute the profile" -#: ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4781 msgid "validate" msgstr "Validate" -#: ../src/iop/channelmixerrgb.c:4717 +#: ../src/iop/channelmixerrgb.c:4785 msgid "check the output delta E" msgstr "Check the output delta E" @@ -14009,19 +14571,19 @@ msgstr "" "This module is deprecated. Better use new local contrast module instead." -#: ../src/iop/clahe.c:337 ../src/iop/sharpen.c:445 +#: ../src/iop/clahe.c:339 ../src/iop/sharpen.c:440 msgid "amount" msgstr "Amount" -#: ../src/iop/clahe.c:346 +#: ../src/iop/clahe.c:348 msgid "size of features to preserve" msgstr "Size of features to preserve" -#: ../src/iop/clahe.c:347 ../src/iop/nlmeans.c:464 +#: ../src/iop/clahe.c:349 ../src/iop/nlmeans.c:467 msgid "strength of the effect" msgstr "Strength of the effect" -#: ../src/iop/clipping.c:304 +#: ../src/iop/clipping.c:347 msgid "" "this module is deprecated. please use the crop, orientation and/or rotate " "and perspective modules instead." @@ -14029,142 +14591,142 @@ "This module is deprecated. Please use the crop, orientation and/or rotate " "and perspective modules instead." -#: ../src/iop/clipping.c:309 +#: ../src/iop/clipping.c:352 msgid "crop and rotate" msgstr "Crop and rotate" -#: ../src/iop/clipping.c:314 +#: ../src/iop/clipping.c:357 msgid "reframe|perspective|keystone|distortion" msgstr "reframe|perspective|keystone|distortion" -#: ../src/iop/clipping.c:319 +#: ../src/iop/clipping.c:362 msgid "change the framing and correct the perspective" msgstr "Change the framing and correct the perspective" -#: ../src/iop/clipping.c:1394 ../src/iop/clipping.c:2120 ../src/iop/crop.c:517 -#: ../src/iop/crop.c:1117 +#: ../src/iop/clipping.c:1447 ../src/iop/clipping.c:2173 ../src/iop/crop.c:501 +#: ../src/iop/crop.c:1101 msgid "original image" msgstr "Original image" -#: ../src/iop/clipping.c:1698 ../src/iop/crop.c:824 +#: ../src/iop/clipping.c:1751 ../src/iop/crop.c:808 msgid "invalid ratio format. it should be \"number:number\"" msgstr "Invalid ratio format. It should be \"number:number\"" -#: ../src/iop/clipping.c:1714 ../src/iop/crop.c:840 +#: ../src/iop/clipping.c:1767 ../src/iop/crop.c:824 msgid "invalid ratio format. it should be a positive number" msgstr "Invalid ratio format. It should be a positive number" -#: ../src/iop/clipping.c:1903 ../src/iop/clipping.c:2111 +#: ../src/iop/clipping.c:1956 ../src/iop/clipping.c:2164 msgid "full" msgstr "Full" -#: ../src/iop/clipping.c:1904 +#: ../src/iop/clipping.c:1957 msgid "old system" msgstr "Old system" -#: ../src/iop/clipping.c:1905 +#: ../src/iop/clipping.c:1958 msgid "correction applied" msgstr "Correction applied" -#: ../src/iop/clipping.c:2089 +#: ../src/iop/clipping.c:2142 msgid "main" msgstr "Main" -#: ../src/iop/clipping.c:2098 +#: ../src/iop/clipping.c:2151 msgid "mirror image horizontally and/or vertically" msgstr "Mirror image horizontally and/or vertically" -#: ../src/iop/clipping.c:2101 +#: ../src/iop/clipping.c:2154 msgid "angle" msgstr "Angle" -#: ../src/iop/clipping.c:2104 +#: ../src/iop/clipping.c:2157 msgid "right-click and drag a line on the image to drag a straight line" msgstr "Right-click and drag a line on the image to drag a straight line" -#: ../src/iop/clipping.c:2107 +#: ../src/iop/clipping.c:2160 msgid "keystone" msgstr "Keystone" -#: ../src/iop/clipping.c:2112 +#: ../src/iop/clipping.c:2165 msgid "set perspective correction for your image" msgstr "Set perspective correction for your image" -#: ../src/iop/clipping.c:2119 ../src/iop/crop.c:1116 +#: ../src/iop/clipping.c:2172 ../src/iop/crop.c:1100 msgid "freehand" msgstr "Freehand" -#: ../src/iop/clipping.c:2122 ../src/iop/crop.c:1119 +#: ../src/iop/clipping.c:2175 ../src/iop/crop.c:1103 msgid "10:8 in print" msgstr "10:8 in print" -#: ../src/iop/clipping.c:2123 ../src/iop/crop.c:1120 +#: ../src/iop/clipping.c:2176 ../src/iop/crop.c:1104 msgid "5:4, 4x5, 8x10" msgstr "5:4, 4x5, 8x10" -#: ../src/iop/clipping.c:2124 ../src/iop/crop.c:1121 +#: ../src/iop/clipping.c:2177 ../src/iop/crop.c:1105 msgid "11x14" msgstr "11x14" -#: ../src/iop/clipping.c:2125 ../src/iop/crop.c:1122 +#: ../src/iop/clipping.c:2178 ../src/iop/crop.c:1106 msgid "8.5x11, letter" msgstr "8.5x11, letter" -#: ../src/iop/clipping.c:2126 ../src/iop/crop.c:1123 +#: ../src/iop/clipping.c:2179 ../src/iop/crop.c:1107 msgid "4:3, VGA, TV" msgstr "4:3, VGA, TV" -#: ../src/iop/clipping.c:2127 ../src/iop/crop.c:1124 +#: ../src/iop/clipping.c:2180 ../src/iop/crop.c:1108 msgid "5x7" msgstr "5x7" -#: ../src/iop/clipping.c:2128 ../src/iop/crop.c:1125 +#: ../src/iop/clipping.c:2181 ../src/iop/crop.c:1109 msgid "ISO 216, DIN 476, A4" msgstr "ISO 216, DIN 476, A4" -#: ../src/iop/clipping.c:2129 ../src/iop/crop.c:1126 +#: ../src/iop/clipping.c:2182 ../src/iop/crop.c:1110 msgid "3:2, 4x6, 35mm" msgstr "3:2, 4x6, 35mm" -#: ../src/iop/clipping.c:2130 ../src/iop/crop.c:1127 +#: ../src/iop/clipping.c:2183 ../src/iop/crop.c:1111 msgid "16:10, 8x5" msgstr "16:10, 8x5" -#: ../src/iop/clipping.c:2132 ../src/iop/crop.c:1129 +#: ../src/iop/clipping.c:2185 ../src/iop/crop.c:1113 msgid "16:9, HDTV" msgstr "16:9, HDTV" -#: ../src/iop/clipping.c:2133 ../src/iop/crop.c:1130 +#: ../src/iop/clipping.c:2186 ../src/iop/crop.c:1114 msgid "widescreen" msgstr "Widescreen" -#: ../src/iop/clipping.c:2134 ../src/iop/crop.c:1131 +#: ../src/iop/clipping.c:2187 ../src/iop/crop.c:1115 msgid "2:1, univisium" msgstr "2:1, Univisium" -#: ../src/iop/clipping.c:2135 ../src/iop/crop.c:1132 +#: ../src/iop/clipping.c:2188 ../src/iop/crop.c:1116 msgid "cinemascope" msgstr "Cinemascope" -#: ../src/iop/clipping.c:2136 ../src/iop/crop.c:1133 +#: ../src/iop/clipping.c:2189 ../src/iop/crop.c:1117 msgid "21:9" msgstr "21:9" -#: ../src/iop/clipping.c:2137 ../src/iop/crop.c:1134 +#: ../src/iop/clipping.c:2190 ../src/iop/crop.c:1118 msgid "anamorphic" msgstr "Anamorphic" -#: ../src/iop/clipping.c:2138 ../src/iop/crop.c:1135 +#: ../src/iop/clipping.c:2191 ../src/iop/crop.c:1119 msgid "3:1, panorama" msgstr "3:1, panorama" -#: ../src/iop/clipping.c:2170 ../src/iop/clipping.c:2182 ../src/iop/crop.c:1171 -#: ../src/iop/crop.c:1187 +#: ../src/iop/clipping.c:2223 ../src/iop/clipping.c:2235 ../src/iop/crop.c:1155 +#: ../src/iop/crop.c:1171 #, c-format msgid "invalid ratio format for `%s'. it should be \"number:number\"" msgstr "Invalid ratio format for `%s'. It should be \"number:number\"" -#: ../src/iop/clipping.c:2229 ../src/iop/crop.c:1238 +#: ../src/iop/clipping.c:2282 ../src/iop/crop.c:1222 msgid "" "set the aspect ratio\n" "the list is sorted: from most square to least square\n" @@ -14176,31 +14738,31 @@ "To enter custom aspect ratio open the combobox and type ratio in x:y or " "decimal format" -#: ../src/iop/clipping.c:2236 ../src/iop/crop.c:1252 +#: ../src/iop/clipping.c:2289 ../src/iop/crop.c:1236 msgid "margins" msgstr "Margins" -#: ../src/iop/clipping.c:2241 ../src/iop/crop.c:1262 +#: ../src/iop/clipping.c:2294 ../src/iop/crop.c:1246 msgid "the left margin cannot overlap with the right margin" msgstr "The left margin cannot overlap with the right margin" -#: ../src/iop/clipping.c:2248 ../src/iop/crop.c:1270 +#: ../src/iop/clipping.c:2301 ../src/iop/crop.c:1254 msgid "the right margin cannot overlap with the left margin" msgstr "The right margin cannot overlap with the left margin" -#: ../src/iop/clipping.c:2253 ../src/iop/crop.c:1276 +#: ../src/iop/clipping.c:2306 ../src/iop/crop.c:1260 msgid "the top margin cannot overlap with the bottom margin" msgstr "The top margin cannot overlap with the bottom margin" -#: ../src/iop/clipping.c:2260 ../src/iop/crop.c:1284 +#: ../src/iop/clipping.c:2313 ../src/iop/crop.c:1268 msgid "the bottom margin cannot overlap with the top margin" msgstr "The bottom margin cannot overlap with the top margin" -#: ../src/iop/clipping.c:3019 +#: ../src/iop/clipping.c:3059 msgid "<b>commit</b>: double-click, <b>straighten</b>: right-drag" msgstr "<b>Commit</b>: double-click, <b>Straighten</b>: right-drag" -#: ../src/iop/clipping.c:3023 +#: ../src/iop/clipping.c:3063 msgid "" "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag\n" "<b>straighten</b>: right-drag" @@ -14208,15 +14770,15 @@ "<b>Resize</b>: drag, <b>Keep aspect ratio</b>: Shift+drag\n" "<b>Straighten</b>: right-drag" -#: ../src/iop/clipping.c:3066 +#: ../src/iop/clipping.c:3104 msgid "<b>move control point</b>: drag" msgstr "<b>Move control point</b>: drag" -#: ../src/iop/clipping.c:3071 +#: ../src/iop/clipping.c:3109 msgid "<b>move line</b>: drag, <b>toggle symmetry</b>: click ꝏ" msgstr "<b>Move line</b>: drag, <b>Toggle symmetry</b>: click ꝏ" -#: ../src/iop/clipping.c:3076 +#: ../src/iop/clipping.c:3114 msgid "" "<b>apply</b>: click <tt>ok</tt>, <b>toggle symmetry</b>: click ꝏ\n" "<b>move line/control point</b>: drag" @@ -14224,7 +14786,7 @@ "<b>Apply</b>: click <tt>ok</tt>, <b>Toggle symmetry</b>: click ꝏ\n" "<b>Move line/control point</b>: drag" -#: ../src/iop/clipping.c:3083 +#: ../src/iop/clipping.c:3121 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag\n" @@ -14234,12 +14796,12 @@ "b>: Ctrl+drag\n" "<b>Straighten</b>: right-drag, <b>Commit</b>: double-click" -#: ../src/iop/clipping.c:3340 ../src/iop/crop.c:1796 +#: ../src/iop/clipping.c:3380 ../src/iop/crop.c:1770 #, c-format msgid "[%s on borders] crop" msgstr "[%s on borders] crop" -#: ../src/iop/clipping.c:3342 ../src/iop/crop.c:1798 +#: ../src/iop/clipping.c:3382 ../src/iop/crop.c:1772 #, c-format msgid "[%s on borders] crop keeping ratio" msgstr "[%s on borders] crop keeping ratio" @@ -14256,224 +14818,224 @@ msgid "adjust the look of the image" msgstr "Adjust the look of the image" -#: ../src/iop/colisa.c:310 +#: ../src/iop/colisa.c:304 msgid "color saturation adjustment" msgstr "Color saturation adjustment" -#: ../src/iop/colorbalance.c:150 +#: ../src/iop/colorbalance.c:152 msgid "color balance" msgstr "Color balance" -#: ../src/iop/colorbalance.c:155 +#: ../src/iop/colorbalance.c:157 msgid "lift gamma gain|cdl|color grading|contrast|saturation|hue" msgstr "lift gamma gain|cdl|color grading|contrast|saturation|hue" -#: ../src/iop/colorbalance.c:160 +#: ../src/iop/colorbalance.c:162 msgid "shift colors selectively by luminance range" msgstr "Shift colors selectively by luminance range" -#: ../src/iop/colorbalance.c:164 +#: ../src/iop/colorbalance.c:166 msgid "non-linear, Lab, scene-referred" msgstr "Non-linear, Lab, scene-referred" #. these blobs were exported as dtstyle and copied from there: -#: ../src/iop/colorbalance.c:275 +#: ../src/iop/colorbalance.c:304 msgid "split-toning teal-orange (2nd instance)" msgstr "Split-toning teal-orange (2nd instance)" -#: ../src/iop/colorbalance.c:278 +#: ../src/iop/colorbalance.c:307 msgid "split-toning teal-orange (1st instance)" msgstr "Split-toning teal-orange (1st instance)" -#: ../src/iop/colorbalance.c:282 +#: ../src/iop/colorbalance.c:311 msgid "generic film" msgstr "Generic film" -#: ../src/iop/colorbalance.c:286 +#: ../src/iop/colorbalance.c:315 msgid "similar to Kodak Portra" msgstr "Similar to Kodak Portra" -#: ../src/iop/colorbalance.c:290 +#: ../src/iop/colorbalance.c:319 msgid "similar to Kodak Ektar" msgstr "Similar to Kodak Ektar" -#: ../src/iop/colorbalance.c:294 +#: ../src/iop/colorbalance.c:323 msgid "similar to Kodachrome" msgstr "Similar to Kodachrome" -#: ../src/iop/colorbalance.c:990 +#: ../src/iop/colorbalance.c:964 msgid "optimize luma from patches" msgstr "Optimize luma from patches" -#: ../src/iop/colorbalance.c:992 ../src/iop/colorbalance.c:2110 +#: ../src/iop/colorbalance.c:966 ../src/iop/colorbalance.c:2085 msgid "optimize luma" msgstr "Optimize luma" -#: ../src/iop/colorbalance.c:996 +#: ../src/iop/colorbalance.c:970 msgid "neutralize colors from patches" msgstr "Neutralize colors from patches" -#: ../src/iop/colorbalance.c:998 ../src/iop/colorbalance.c:2116 +#: ../src/iop/colorbalance.c:972 ../src/iop/colorbalance.c:2091 msgid "neutralize colors" msgstr "Neutralize colors" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "offset" msgstr "Offset" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "power" msgstr "Power" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "slope" msgstr "Slope" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "lift" msgstr "Lift" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gamma" msgstr "Gamma" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gain" msgstr "Gain" -#: ../src/iop/colorbalance.c:1787 +#: ../src/iop/colorbalance.c:1762 msgctxt "section" msgid "shadows: lift / offset" msgstr "Shadows: lift / offset" -#: ../src/iop/colorbalance.c:1788 +#: ../src/iop/colorbalance.c:1763 msgctxt "section" msgid "mid-tones: gamma / power" msgstr "Mid-tones: gamma / power" -#: ../src/iop/colorbalance.c:1789 +#: ../src/iop/colorbalance.c:1764 msgctxt "section" msgid "highlights: gain / slope" msgstr "Highlights: gain / slope" -#: ../src/iop/colorbalance.c:1813 +#: ../src/iop/colorbalance.c:1788 msgid "shadows / mid-tones / highlights" msgstr "Shadows / mid-tones / highlights" -#: ../src/iop/colorbalance.c:1910 ../src/iop/colorbalance.c:1919 +#: ../src/iop/colorbalance.c:1885 ../src/iop/colorbalance.c:1894 msgid "color-grading mapping method" msgstr "Color-grading mapping method" -#: ../src/iop/colorbalance.c:1914 +#: ../src/iop/colorbalance.c:1889 msgid "color control sliders" msgstr "Color control sliders" -#: ../src/iop/colorbalance.c:1915 ../src/libs/colorpicker.c:51 +#: ../src/iop/colorbalance.c:1890 ../src/libs/colorpicker.c:51 msgid "HSL" msgstr "HSL" -#: ../src/iop/colorbalance.c:1916 +#: ../src/iop/colorbalance.c:1891 msgid "RGBL" msgstr "RGBL" -#: ../src/iop/colorbalance.c:1928 +#: ../src/iop/colorbalance.c:1903 msgctxt "section" msgid "master" msgstr "Master" -#: ../src/iop/colorbalance.c:1934 +#: ../src/iop/colorbalance.c:1909 msgid "saturation correction before the color balance" msgstr "Saturation correction before the color balance" -#: ../src/iop/colorbalance.c:1940 +#: ../src/iop/colorbalance.c:1915 msgid "saturation correction after the color balance" msgstr "Saturation correction after the color balance" -#: ../src/iop/colorbalance.c:1945 +#: ../src/iop/colorbalance.c:1920 msgid "adjust to match a neutral tone" msgstr "Adjust to match a neutral tone" #. is set in _configure_slider_blocks -#: ../src/iop/colorbalance.c:2003 +#: ../src/iop/colorbalance.c:1978 msgid "click to cycle layout" msgstr "Click to cycle layout" -#: ../src/iop/colorbalance.c:2037 +#: ../src/iop/colorbalance.c:2012 msgid "factor" msgstr "Factor" -#: ../src/iop/colorbalance.c:2051 +#: ../src/iop/colorbalance.c:2026 msgid "select the hue" msgstr "Select the hue" -#: ../src/iop/colorbalance.c:2063 +#: ../src/iop/colorbalance.c:2038 msgid "select the saturation" msgstr "Select the saturation" -#: ../src/iop/colorbalance.c:2082 +#: ../src/iop/colorbalance.c:2057 msgid "factor of lift/offset" msgstr "Factor of lift/offset" -#: ../src/iop/colorbalance.c:2083 +#: ../src/iop/colorbalance.c:2058 msgid "factor of red for lift/offset" msgstr "Factor of red for lift/offset" -#: ../src/iop/colorbalance.c:2084 +#: ../src/iop/colorbalance.c:2059 msgid "factor of green for lift/offset" msgstr "Factor of green for lift/offset" -#: ../src/iop/colorbalance.c:2085 +#: ../src/iop/colorbalance.c:2060 msgid "factor of blue for lift/offset" msgstr "Factor of blue for lift/offset" -#: ../src/iop/colorbalance.c:2088 +#: ../src/iop/colorbalance.c:2063 msgid "factor of gamma/power" msgstr "Factor of gamma/power" -#: ../src/iop/colorbalance.c:2089 +#: ../src/iop/colorbalance.c:2064 msgid "factor of red for gamma/power" msgstr "Factor of red for gamma/power" -#: ../src/iop/colorbalance.c:2090 +#: ../src/iop/colorbalance.c:2065 msgid "factor of green for gamma/power" msgstr "Factor of green for gamma/power" -#: ../src/iop/colorbalance.c:2091 +#: ../src/iop/colorbalance.c:2066 msgid "factor of blue for gamma/power" msgstr "Factor of blue for gamma/power" -#: ../src/iop/colorbalance.c:2094 +#: ../src/iop/colorbalance.c:2069 msgid "factor of gain/slope" msgstr "Factor of gain/slope" -#: ../src/iop/colorbalance.c:2095 +#: ../src/iop/colorbalance.c:2070 msgid "factor of red for gain/slope" msgstr "Factor of red for gain/slope" -#: ../src/iop/colorbalance.c:2096 +#: ../src/iop/colorbalance.c:2071 msgid "factor of green for gain/slope" msgstr "Factor of green for gain/slope" -#: ../src/iop/colorbalance.c:2097 +#: ../src/iop/colorbalance.c:2072 msgid "factor of blue for gain/slope" msgstr "Factor of blue for gain/slope" -#: ../src/iop/colorbalance.c:2106 +#: ../src/iop/colorbalance.c:2081 msgctxt "section" msgid "auto optimizers" msgstr "Auto optimizers" -#: ../src/iop/colorbalance.c:2111 +#: ../src/iop/colorbalance.c:2086 msgid "fit the whole histogram and center the average luma" msgstr "Fit the whole histogram and center the average luma" -#: ../src/iop/colorbalance.c:2117 +#: ../src/iop/colorbalance.c:2092 msgid "optimize the RGB curves to remove color casts" msgstr "Optimize the RGB curves to remove color casts" @@ -14497,84 +15059,84 @@ "Color grading tools using alpha masks to separate\n" "shadows, mid-tones and highlights" -#: ../src/iop/colorbalancergb.c:443 +#: ../src/iop/colorbalancergb.c:536 msgid "add basic colorfulness (legacy)" msgstr "Add basic colorfulness (legacy)" -#: ../src/iop/colorbalancergb.c:452 +#: ../src/iop/colorbalancergb.c:545 msgid "basic colorfulness: natural skin" msgstr "Basic colorfulness: natural skin" -#: ../src/iop/colorbalancergb.c:458 +#: ../src/iop/colorbalancergb.c:551 msgid "basic colorfulness: vibrant colors" msgstr "Basic colorfulness: vibrant colors" -#: ../src/iop/colorbalancergb.c:464 +#: ../src/iop/colorbalancergb.c:557 msgid "basic colorfulness: standard" msgstr "Basic colorfulness: standard" -#: ../src/iop/colorbalancergb.c:937 +#: ../src/iop/colorbalancergb.c:1022 msgid "colorbalance works only on RGB input" msgstr "Colorbalance works only on RGB input" -#: ../src/iop/colorbalancergb.c:1506 ../src/iop/colorzones.c:2164 -#: ../src/iop/retouch.c:1884 ../src/iop/toneequal.c:1966 +#: ../src/iop/colorbalancergb.c:1577 ../src/iop/colorzones.c:2394 +#: ../src/iop/retouch.c:2069 ../src/iop/toneequal.c:1996 msgid "cannot display masks when the blending mask is displayed" msgstr "Cannot display masks when the blending mask is displayed" #. Page master -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "master" msgstr "Master" -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "global grading" msgstr "Global grading" -#: ../src/iop/colorbalancergb.c:1880 +#: ../src/iop/colorbalancergb.c:1951 msgid "rotate all hues by an angle, at the same luminance" msgstr "Rotate all hues by an angle, at the same luminance" -#: ../src/iop/colorbalancergb.c:1886 +#: ../src/iop/colorbalancergb.c:1957 msgid "increase colorfulness mostly on low-chroma colors" msgstr "Increase colorfulness mostly on low-chroma colors" -#: ../src/iop/colorbalancergb.c:1892 +#: ../src/iop/colorbalancergb.c:1963 msgid "increase the contrast at constant chromaticity" msgstr "Increase the contrast at constant chromaticity" -#: ../src/iop/colorbalancergb.c:1894 +#: ../src/iop/colorbalancergb.c:1965 msgctxt "section" msgid "linear chroma grading" msgstr "Linear chroma grading" -#: ../src/iop/colorbalancergb.c:1901 +#: ../src/iop/colorbalancergb.c:1972 msgid "increase colorfulness at same luminance globally" msgstr "Increase colorfulness at same luminance globally" -#: ../src/iop/colorbalancergb.c:1906 +#: ../src/iop/colorbalancergb.c:1977 msgid "increase colorfulness at same luminance mostly in shadows" msgstr "Increase colorfulness at same luminance mostly in shadows" -#: ../src/iop/colorbalancergb.c:1911 +#: ../src/iop/colorbalancergb.c:1982 msgid "increase colorfulness at same luminance mostly in mid-tones" msgstr "Increase colorfulness at same luminance mostly in mid-tones" -#: ../src/iop/colorbalancergb.c:1916 +#: ../src/iop/colorbalancergb.c:1987 msgid "increase colorfulness at same luminance mostly in highlights" msgstr "Increase colorfulness at same luminance mostly in highlights" -#: ../src/iop/colorbalancergb.c:1918 +#: ../src/iop/colorbalancergb.c:1989 msgctxt "section" msgid "perceptual saturation grading" msgstr "Perceptual saturation grading" -#: ../src/iop/colorbalancergb.c:1924 +#: ../src/iop/colorbalancergb.c:1995 msgid "add or remove saturation by an absolute amount" msgstr "Add or remove saturation by an absolute amount" -#: ../src/iop/colorbalancergb.c:1929 ../src/iop/colorbalancergb.c:1934 -#: ../src/iop/colorbalancergb.c:1939 +#: ../src/iop/colorbalancergb.c:2000 ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2010 msgid "" "increase or decrease saturation proportionally to the original pixel " "saturation" @@ -14582,21 +15144,21 @@ "Increase or decrease saturation proportionally to the original pixel " "saturation" -#: ../src/iop/colorbalancergb.c:1941 +#: ../src/iop/colorbalancergb.c:2012 msgctxt "section" msgid "perceptual brilliance grading" msgstr "Perceptual brilliance grading" -#: ../src/iop/colorbalancergb.c:1942 +#: ../src/iop/colorbalancergb.c:2013 msgid "brilliance" msgstr "Brilliance" -#: ../src/iop/colorbalancergb.c:1947 +#: ../src/iop/colorbalancergb.c:2018 msgid "add or remove brilliance by an absolute amount" msgstr "Add or remove brilliance by an absolute amount" -#: ../src/iop/colorbalancergb.c:1952 ../src/iop/colorbalancergb.c:1957 -#: ../src/iop/colorbalancergb.c:1962 +#: ../src/iop/colorbalancergb.c:2023 ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2033 msgid "" "increase or decrease brilliance proportionally to the original pixel " "brilliance" @@ -14605,155 +15167,155 @@ "brilliance" #. Page 4-ways -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "4 ways" msgstr "4 ways" -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "selective color grading" msgstr "Selective color grading" -#: ../src/iop/colorbalancergb.c:1967 +#: ../src/iop/colorbalancergb.c:2038 msgctxt "section" msgid "global offset" msgstr "Global offset" -#: ../src/iop/colorbalancergb.c:1974 +#: ../src/iop/colorbalancergb.c:2045 msgid "global luminance offset" msgstr "Global luminance offset" -#: ../src/iop/colorbalancergb.c:1979 +#: ../src/iop/colorbalancergb.c:2050 msgid "hue of the global color offset" msgstr "Hue of the global color offset" -#: ../src/iop/colorbalancergb.c:1985 +#: ../src/iop/colorbalancergb.c:2056 msgid "chroma of the global color offset" msgstr "Chroma of the global color offset" -#: ../src/iop/colorbalancergb.c:1987 +#: ../src/iop/colorbalancergb.c:2058 msgctxt "section" msgid "shadows lift" msgstr "Shadows lift" -#: ../src/iop/colorbalancergb.c:1988 +#: ../src/iop/colorbalancergb.c:2059 msgid "lift" msgstr "Lift" -#: ../src/iop/colorbalancergb.c:1994 +#: ../src/iop/colorbalancergb.c:2065 msgid "luminance gain in shadows" msgstr "Luminance gain in shadows" -#: ../src/iop/colorbalancergb.c:1999 +#: ../src/iop/colorbalancergb.c:2070 msgid "hue of the color gain in shadows" msgstr "Hue of the color gain in shadows" -#: ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2076 msgid "chroma of the color gain in shadows" msgstr "Chroma of the color gain in shadows" -#: ../src/iop/colorbalancergb.c:2007 +#: ../src/iop/colorbalancergb.c:2078 msgctxt "section" msgid "highlights gain" msgstr "Highlights gain" -#: ../src/iop/colorbalancergb.c:2008 +#: ../src/iop/colorbalancergb.c:2079 msgid "gain" msgstr "Gain" -#: ../src/iop/colorbalancergb.c:2014 +#: ../src/iop/colorbalancergb.c:2085 msgid "luminance gain in highlights" msgstr "Luminance gain in highlights" -#: ../src/iop/colorbalancergb.c:2019 +#: ../src/iop/colorbalancergb.c:2090 msgid "hue of the color gain in highlights" msgstr "Hue of the color gain in highlights" -#: ../src/iop/colorbalancergb.c:2025 +#: ../src/iop/colorbalancergb.c:2096 msgid "chroma of the color gain in highlights" msgstr "Chroma of the color gain in highlights" -#: ../src/iop/colorbalancergb.c:2027 +#: ../src/iop/colorbalancergb.c:2098 msgctxt "section" msgid "power" msgstr "Power" -#: ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2099 msgid "power" msgstr "Power" -#: ../src/iop/colorbalancergb.c:2034 +#: ../src/iop/colorbalancergb.c:2105 msgid "luminance exponent in mid-tones" msgstr "Luminance exponent in mid-tones" -#: ../src/iop/colorbalancergb.c:2039 +#: ../src/iop/colorbalancergb.c:2110 msgid "hue of the color exponent in mid-tones" msgstr "Hue of the color exponent in mid-tones" -#: ../src/iop/colorbalancergb.c:2045 +#: ../src/iop/colorbalancergb.c:2116 msgid "chroma of the color exponent in mid-tones" msgstr "Chroma of the color exponent in mid-tones" #. Page masks -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "masks" msgstr "Masks" -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "isolate luminances" msgstr "Isolate luminances" -#: ../src/iop/colorbalancergb.c:2052 +#: ../src/iop/colorbalancergb.c:2123 msgid "choose in which uniform color space the saturation is computed" msgstr "Choose in which uniform color space the saturation is computed" -#: ../src/iop/colorbalancergb.c:2054 +#: ../src/iop/colorbalancergb.c:2125 msgctxt "section" msgid "luminance ranges" msgstr "Luminance ranges" -#: ../src/iop/colorbalancergb.c:2065 +#: ../src/iop/colorbalancergb.c:2136 msgid "weight of the shadows over the whole tonal range" msgstr "Weight of the shadows over the whole tonal range" -#: ../src/iop/colorbalancergb.c:2073 +#: ../src/iop/colorbalancergb.c:2144 msgid "position of the middle-gray reference for masking" msgstr "Position of the middle-gray reference for masking" -#: ../src/iop/colorbalancergb.c:2081 +#: ../src/iop/colorbalancergb.c:2152 msgid "weights of highlights over the whole tonal range" msgstr "Weights of highlights over the whole tonal range" -#: ../src/iop/colorbalancergb.c:2086 +#: ../src/iop/colorbalancergb.c:2157 msgctxt "section" msgid "threshold" msgstr "Threshold" -#: ../src/iop/colorbalancergb.c:2091 +#: ../src/iop/colorbalancergb.c:2162 msgid "peak white luminance value used to normalize the power function" msgstr "Peak white luminance value used to normalize the power function" -#: ../src/iop/colorbalancergb.c:2097 +#: ../src/iop/colorbalancergb.c:2168 msgid "peak gray luminance value used to normalize the power function" msgstr "Peak gray luminance value used to normalize the power function" -#: ../src/iop/colorbalancergb.c:2099 +#: ../src/iop/colorbalancergb.c:2170 msgctxt "section" msgid "mask preview settings" msgstr "Mask preview settings" -#: ../src/iop/colorbalancergb.c:2102 +#: ../src/iop/colorbalancergb.c:2173 msgid "checkerboard color 1" msgstr "Checkerboard color 1" -#: ../src/iop/colorbalancergb.c:2105 ../src/iop/colorbalancergb.c:2114 +#: ../src/iop/colorbalancergb.c:2176 ../src/iop/colorbalancergb.c:2185 msgid "select color of the checkerboard from a swatch" msgstr "Select color of the checkerboard from a swatch" -#: ../src/iop/colorbalancergb.c:2111 +#: ../src/iop/colorbalancergb.c:2182 msgid "checkerboard color 2" msgstr "Checkerboard color 2" -#: ../src/iop/colorbalancergb.c:2121 +#: ../src/iop/colorbalancergb.c:2192 msgid "checkerboard size" msgstr "Checkerboard size" @@ -14770,11 +15332,11 @@ msgstr "Perform color space corrections and apply looks" #: ../src/iop/colorchecker.c:131 ../src/iop/colorchecker.c:133 -#: ../src/iop/colorize.c:106 ../src/iop/colormapping.c:154 -#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:136 -#: ../src/iop/colorzones.c:146 ../src/iop/defringe.c:83 ../src/iop/levels.c:139 -#: ../src/iop/monochrome.c:99 ../src/iop/shadhi.c:198 -#: ../src/iop/tonecurve.c:212 ../src/iop/vibrance.c:96 +#: ../src/iop/colorize.c:99 ../src/iop/colormapping.c:154 +#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:121 +#: ../src/iop/colorzones.c:147 ../src/iop/defringe.c:83 ../src/iop/levels.c:141 +#: ../src/iop/monochrome.c:101 ../src/iop/shadhi.c:145 +#: ../src/iop/tonecurve.c:185 ../src/iop/vibrance.c:98 msgid "linear or non-linear, Lab, display-referred" msgstr "Linear or non-linear, Lab, display-referred" @@ -14782,40 +15344,40 @@ msgid "defined by profile, Lab" msgstr "Defined by profile, Lab" -#: ../src/iop/colorchecker.c:294 +#: ../src/iop/colorchecker.c:308 msgid "it8 skin tones" msgstr "IT8 skin tones" -#: ../src/iop/colorchecker.c:310 +#: ../src/iop/colorchecker.c:324 msgid "Helmholtz/Kohlrausch monochrome" msgstr "Helmholtz/Kohlrausch monochrome" -#: ../src/iop/colorchecker.c:327 +#: ../src/iop/colorchecker.c:341 msgid "Fuji Astia emulation" msgstr "Fuji Astia emulation" -#: ../src/iop/colorchecker.c:341 +#: ../src/iop/colorchecker.c:355 msgid "Fuji Classic Chrome emulation" msgstr "Fuji Classic Chrome emulation" -#: ../src/iop/colorchecker.c:355 +#: ../src/iop/colorchecker.c:369 msgid "Fuji Monochrome emulation" msgstr "Fuji Monochrome emulation" -#: ../src/iop/colorchecker.c:369 +#: ../src/iop/colorchecker.c:383 msgid "Fuji Provia emulation" msgstr "Fuji Provia emulation" -#: ../src/iop/colorchecker.c:383 +#: ../src/iop/colorchecker.c:397 msgid "Fuji Velvia emulation" msgstr "Fuji Velvia emulation" -#: ../src/iop/colorchecker.c:841 ../src/iop/colorchecker.c:1436 +#: ../src/iop/colorchecker.c:846 ../src/iop/colorchecker.c:1441 #, c-format msgid "patch #%d" msgstr "Patch #%d" -#: ../src/iop/colorchecker.c:1283 +#: ../src/iop/colorchecker.c:1288 #, c-format msgid "" "(%2.2f %2.2f %2.2f)\n" @@ -14832,15 +15394,15 @@ "Right click to delete patch\n" "Shift+click while color picking to replace patch" -#: ../src/iop/colorchecker.c:1431 +#: ../src/iop/colorchecker.c:1436 msgid "patch" msgstr "Patch" -#: ../src/iop/colorchecker.c:1432 +#: ../src/iop/colorchecker.c:1437 msgid "color checker patch" msgstr "Color checker patch" -#: ../src/iop/colorchecker.c:1446 +#: ../src/iop/colorchecker.c:1451 msgid "" "adjust target color Lab 'L' channel\n" "lower values darken target color while higher brighten it" @@ -14848,7 +15410,7 @@ "Adjust target color Lab 'L' channel\n" "Lower values darken target color while higher brighten it" -#: ../src/iop/colorchecker.c:1454 +#: ../src/iop/colorchecker.c:1459 msgid "" "adjust target color Lab 'a' channel\n" "lower values shift target color towards greens while higher shift towards " @@ -14858,11 +15420,11 @@ "Lower values shift target color towards greens while higher shift towards " "magentas" -#: ../src/iop/colorchecker.c:1457 +#: ../src/iop/colorchecker.c:1462 msgid "green-magenta offset" msgstr "Green-magenta offset" -#: ../src/iop/colorchecker.c:1466 +#: ../src/iop/colorchecker.c:1471 msgid "" "adjust target color Lab 'b' channel\n" "lower values shift target color towards blues while higher shift towards " @@ -14872,11 +15434,11 @@ "Lower values shift target color towards blues while higher shift towards " "yellows" -#: ../src/iop/colorchecker.c:1469 +#: ../src/iop/colorchecker.c:1474 msgid "blue-yellow offset" msgstr "Blue-yellow offset" -#: ../src/iop/colorchecker.c:1478 +#: ../src/iop/colorchecker.c:1483 msgid "" "adjust target color saturation\n" "adjusts 'a' and 'b' channels of target color in Lab space simultaneously\n" @@ -14888,11 +15450,11 @@ "Lower values scale towards lower saturation while higher scale towards " "higher saturation" -#: ../src/iop/colorchecker.c:1487 +#: ../src/iop/colorchecker.c:1492 msgid "target color" msgstr "Target color" -#: ../src/iop/colorchecker.c:1490 +#: ../src/iop/colorchecker.c:1495 msgid "" "control target color of the patches\n" "relative - target color is relative from the patch original color\n" @@ -14902,15 +15464,15 @@ "Relative - target color is relative from the patch original color\n" "Absolute - target color is absolute Lab value" -#: ../src/iop/colorchecker.c:1494 +#: ../src/iop/colorchecker.c:1499 msgid "absolute" msgstr "Absolute" -#: ../src/iop/colorcontrast.c:85 +#: ../src/iop/colorcontrast.c:77 msgid "color contrast" msgstr "Color contrast" -#: ../src/iop/colorcontrast.c:95 +#: ../src/iop/colorcontrast.c:87 msgid "" "increase saturation and separation between\n" "opposite colors" @@ -14918,7 +15480,7 @@ "Increase saturation and separation between\n" "opposite colors" -#: ../src/iop/colorcontrast.c:324 +#: ../src/iop/colorcontrast.c:330 msgid "" "steepness of the a* curve in Lab\n" "lower values desaturate greens and magenta while higher saturate them" @@ -14926,7 +15488,7 @@ "Steepness of the a* curve in Lab\n" "Lower values desaturate greens and magenta while higher saturate them" -#: ../src/iop/colorcontrast.c:331 +#: ../src/iop/colorcontrast.c:337 msgid "" "steepness of the b* curve in Lab\n" "lower values desaturate blues and yellows while higher saturate them" @@ -14942,19 +15504,19 @@ msgid "correct white balance selectively for blacks and whites" msgstr "Correct white balance selectively for blacks and whites" -#: ../src/iop/colorcorrection.c:107 +#: ../src/iop/colorcorrection.c:109 msgid "warm tone" msgstr "Warm tone" -#: ../src/iop/colorcorrection.c:115 +#: ../src/iop/colorcorrection.c:117 msgid "warming filter" msgstr "Warming filter" -#: ../src/iop/colorcorrection.c:123 +#: ../src/iop/colorcorrection.c:125 msgid "cooling filter" msgstr "Cooling filter" -#: ../src/iop/colorcorrection.c:257 +#: ../src/iop/colorcorrection.c:250 msgid "" "drag the line for split-toning. bright means highlights, dark means shadows. " "use mouse wheel to change saturation." @@ -14962,7 +15524,7 @@ "Drag the line for split-toning. Bright means highlights, dark means shadows. " "Use mouse wheel to change saturation." -#: ../src/iop/colorcorrection.c:276 +#: ../src/iop/colorcorrection.c:269 msgid "set the global saturation" msgstr "Set the global saturation" @@ -14979,7 +15541,7 @@ "using color profiles to remap RGB values" #: ../src/iop/colorin.c:133 ../src/iop/colorout.c:89 ../src/iop/demosaic.c:293 -#: ../src/iop/rawprepare.c:158 +#: ../src/iop/rawprepare.c:174 msgid "mandatory" msgstr "Mandatory" @@ -14987,7 +15549,7 @@ msgid "defined by profile" msgstr "Defined by profile" -#: ../src/iop/colorin.c:542 +#: ../src/iop/colorin.c:582 #, c-format msgid "" "can't extract matrix from colorspace `%s', it will be replaced by Rec2020 " @@ -14996,24 +15558,24 @@ "Can't extract matrix from colorspace `%s', it will be replaced by Rec2020 " "RGB!" -#: ../src/iop/colorin.c:1424 +#: ../src/iop/colorin.c:1362 #, c-format msgid "`%s' color matrix not found!" msgstr "`%s' color matrix not found!" -#: ../src/iop/colorin.c:1463 +#: ../src/iop/colorin.c:1401 msgid "input profile could not be generated!" msgstr "Input profile could not be generated!" -#: ../src/iop/colorin.c:1560 +#: ../src/iop/colorin.c:1498 msgid "unsupported input profile has been replaced by linear Rec709 RGB!" msgstr "Unsupported input profile has been replaced by linear Rec709 RGB!" -#: ../src/iop/colorin.c:1844 +#: ../src/iop/colorin.c:1782 msgid "external ICC profiles" msgstr "external ICC profiles" -#: ../src/iop/colorin.c:1889 +#: ../src/iop/colorin.c:1827 #, c-format msgid "" "embedded ICC profile properties:\n" @@ -15036,43 +15598,43 @@ "Copyright: <b>%s</b>\n" "\n" -#: ../src/iop/colorin.c:2084 +#: ../src/iop/colorin.c:2022 msgid "input profile" msgstr "Input profile" -#: ../src/iop/colorin.c:2088 +#: ../src/iop/colorin.c:2026 msgid "working profile" msgstr "Working profile" -#: ../src/iop/colorin.c:2097 +#: ../src/iop/colorin.c:2035 msgid "working ICC profiles" msgstr "working ICC profiles" -#: ../src/iop/colorin.c:2109 +#: ../src/iop/colorin.c:2047 msgid "confine Lab values to gamut of RGB color space" msgstr "Confine Lab values to gamut of RGB color space" -#: ../src/iop/colorize.c:84 +#: ../src/iop/colorize.c:75 msgid "colorize" msgstr "Colorize" -#: ../src/iop/colorize.c:104 +#: ../src/iop/colorize.c:97 msgid "overlay a solid color on the image" msgstr "Overlay a solid color on the image" -#: ../src/iop/colorize.c:341 ../src/iop/splittoning.c:485 +#: ../src/iop/colorize.c:354 ../src/iop/splittoning.c:481 msgid "select the hue tone" msgstr "Select the hue tone" -#: ../src/iop/colorize.c:347 +#: ../src/iop/colorize.c:360 msgid "select the saturation shadow tone" msgstr "Select the saturation shadow tone" -#: ../src/iop/colorize.c:351 +#: ../src/iop/colorize.c:364 msgid "lightness of color" msgstr "Lightness of color" -#: ../src/iop/colorize.c:355 +#: ../src/iop/colorize.c:368 msgid "mix value of source lightness" msgstr "Mix value of source lightness" @@ -15086,35 +15648,35 @@ msgstr "" "Transfer a color palette and tonal repartition from one image to another" -#: ../src/iop/colormapping.c:1030 +#: ../src/iop/colormapping.c:1019 msgid "source clusters:" msgstr "Source clusters:" -#: ../src/iop/colormapping.c:1036 +#: ../src/iop/colormapping.c:1025 msgid "target clusters:" msgstr "Target clusters:" -#: ../src/iop/colormapping.c:1045 +#: ../src/iop/colormapping.c:1034 msgid "acquire as source" msgstr "Acquire as source" -#: ../src/iop/colormapping.c:1049 +#: ../src/iop/colormapping.c:1038 msgid "analyze this image as a source image" msgstr "Analyze this image as a source image" -#: ../src/iop/colormapping.c:1051 +#: ../src/iop/colormapping.c:1040 msgid "acquire as target" msgstr "Acquire as target" -#: ../src/iop/colormapping.c:1055 +#: ../src/iop/colormapping.c:1044 msgid "analyze this image as a target image" msgstr "Analyze this image as a target image" -#: ../src/iop/colormapping.c:1058 +#: ../src/iop/colormapping.c:1047 msgid "number of clusters to find in image. value change resets all clusters" msgstr "Number of clusters to find in image. Value change resets all clusters" -#: ../src/iop/colormapping.c:1061 +#: ../src/iop/colormapping.c:1050 msgid "" "how clusters are mapped. low values: based on color proximity, high values: " "based on color dominance" @@ -15122,7 +15684,7 @@ "How clusters are mapped. Low values: based on color proximity, high values: " "based on color dominance" -#: ../src/iop/colormapping.c:1066 +#: ../src/iop/colormapping.c:1055 msgid "level of histogram equalization" msgstr "Level of histogram equalization" @@ -15142,112 +15704,112 @@ msgid "non-linear, RGB or Lab, display-referred" msgstr "Non-linear, RGB or Lab, display-referred" -#: ../src/iop/colorout.c:679 +#: ../src/iop/colorout.c:695 msgid "missing output profile has been replaced by sRGB!" msgstr "Missing output profile has been replaced by sRGB!" -#: ../src/iop/colorout.c:701 +#: ../src/iop/colorout.c:717 msgid "missing softproof profile has been replaced by sRGB!" msgstr "Missing softproof profile has been replaced by sRGB!" -#: ../src/iop/colorout.c:744 +#: ../src/iop/colorout.c:760 msgid "unsupported output profile has been replaced by sRGB!" msgstr "Unsupported output profile has been replaced by sRGB!" -#: ../src/iop/colorout.c:869 +#: ../src/iop/colorout.c:885 msgid "output intent" msgstr "Output intent" -#: ../src/iop/colorout.c:870 +#: ../src/iop/colorout.c:886 msgid "rendering intent" msgstr "Rendering intent" -#: ../src/iop/colorout.c:872 ../src/libs/export.c:1246 +#: ../src/iop/colorout.c:888 ../src/libs/export.c:1358 #: ../src/libs/print_settings.c:2475 ../src/libs/print_settings.c:2824 -#: ../src/views/darkroom.c:2518 ../src/views/lighttable.c:1176 +#: ../src/views/darkroom.c:2359 ../src/views/lighttable.c:1176 msgid "perceptual" msgstr "Perceptual" -#: ../src/iop/colorout.c:873 ../src/libs/export.c:1247 +#: ../src/iop/colorout.c:889 ../src/libs/export.c:1359 #: ../src/libs/print_settings.c:2476 ../src/libs/print_settings.c:2825 -#: ../src/views/darkroom.c:2519 ../src/views/lighttable.c:1177 +#: ../src/views/darkroom.c:2360 ../src/views/lighttable.c:1177 msgid "relative colorimetric" msgstr "Relative colorimetric" -#: ../src/iop/colorout.c:874 ../src/libs/export.c:1248 +#: ../src/iop/colorout.c:890 ../src/libs/export.c:1360 #: ../src/libs/print_settings.c:2477 ../src/libs/print_settings.c:2826 -#: ../src/views/darkroom.c:2520 ../src/views/lighttable.c:1178 +#: ../src/views/darkroom.c:2361 ../src/views/lighttable.c:1178 msgctxt "rendering intent" msgid "saturation" msgstr "Saturation" -#: ../src/iop/colorout.c:875 ../src/libs/export.c:1249 +#: ../src/iop/colorout.c:891 ../src/libs/export.c:1361 #: ../src/libs/print_settings.c:2478 ../src/libs/print_settings.c:2827 -#: ../src/views/darkroom.c:2521 ../src/views/lighttable.c:1179 +#: ../src/views/darkroom.c:2362 ../src/views/lighttable.c:1179 msgid "absolute colorimetric" msgstr "Absolute colorimetric" -#: ../src/iop/colorout.c:893 +#: ../src/iop/colorout.c:909 msgid "export ICC profiles" msgstr "export ICC profiles" -#: ../src/iop/colorreconstruction.c:129 +#: ../src/iop/colorreconstruction.c:114 msgid "color reconstruction" msgstr "Color reconstruction" -#: ../src/iop/colorreconstruction.c:134 +#: ../src/iop/colorreconstruction.c:119 msgid "recover clipped highlights by propagating surrounding colors" msgstr "Recover clipped highlights by propagating surrounding colors" -#: ../src/iop/colorreconstruction.c:628 ../src/iop/colorreconstruction.c:1040 -#: ../src/iop/globaltonemap.c:193 ../src/iop/globaltonemap.c:362 -#: ../src/iop/hazeremoval.c:553 ../src/iop/hazeremoval.c:788 -#: ../src/iop/levels.c:336 +#: ../src/iop/colorreconstruction.c:647 ../src/iop/colorreconstruction.c:1053 +#: ../src/iop/globaltonemap.c:227 ../src/iop/globaltonemap.c:396 +#: ../src/iop/hazeremoval.c:541 ../src/iop/hazeremoval.c:776 +#: ../src/iop/levels.c:358 msgid "inconsistent output" msgstr "Inconsistent output" -#: ../src/iop/colorreconstruction.c:666 +#: ../src/iop/colorreconstruction.c:685 msgid "module `color reconstruction' failed" msgstr "Module 'Color reconstruction' failed" -#: ../src/iop/colorreconstruction.c:1237 +#: ../src/iop/colorreconstruction.c:1246 msgid "spatial" msgstr "Spatial" -#: ../src/iop/colorreconstruction.c:1238 +#: ../src/iop/colorreconstruction.c:1247 msgid "range" msgstr "Range" -#: ../src/iop/colorreconstruction.c:1239 +#: ../src/iop/colorreconstruction.c:1248 msgid "precedence" msgstr "Precedence" -#: ../src/iop/colorreconstruction.c:1255 +#: ../src/iop/colorreconstruction.c:1264 msgid "pixels with lightness values above this threshold are corrected" msgstr "Pixels with lightness values above this threshold are corrected" -#: ../src/iop/colorreconstruction.c:1256 +#: ../src/iop/colorreconstruction.c:1265 msgid "how far to look for replacement colors in spatial dimensions" msgstr "How far to look for replacement colors in spatial dimensions" -#: ../src/iop/colorreconstruction.c:1257 +#: ../src/iop/colorreconstruction.c:1266 msgid "how far to look for replacement colors in the luminance dimension" msgstr "How far to look for replacement colors in the luminance dimension" -#: ../src/iop/colorreconstruction.c:1258 +#: ../src/iop/colorreconstruction.c:1267 msgid "if and how to give precedence to specific replacement colors" msgstr "If and how to give precedence to specific replacement colors" -#: ../src/iop/colorreconstruction.c:1259 +#: ../src/iop/colorreconstruction.c:1268 msgid "the hue tone which should be given precedence over other hue tones" msgstr "The hue tone which should be given precedence over other hue tones" -#: ../src/iop/colorreconstruction.c:1261 ../src/iop/demosaic.c:1277 -#: ../src/iop/highlights.c:1168 +#: ../src/iop/colorreconstruction.c:1270 ../src/iop/demosaic.c:1324 +#: ../src/iop/highlights.c:1258 msgid "not applicable" msgstr "Not applicable" -#: ../src/iop/colorreconstruction.c:1262 +#: ../src/iop/colorreconstruction.c:1271 msgid "no highlights reconstruction for monochrome images" msgstr "No highlights reconstruction for monochrome images" @@ -15259,7 +15821,7 @@ msgid "this module is deprecated. better use color mapping module instead." msgstr "This module is deprecated. Better use color mapping module instead." -#: ../src/iop/colortransfer.c:439 +#: ../src/iop/colortransfer.c:441 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -15269,43 +15831,43 @@ "and is only here so you can switch it off\n" "and move to the new color mapping module." -#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2332 +#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2573 msgid "color zones" msgstr "Color zones" -#: ../src/iop/colorzones.c:144 +#: ../src/iop/colorzones.c:145 msgid "selectively shift hues, chroma and lightness of pixels" msgstr "Selectively shift hues, chroma and lightness of pixels" -#: ../src/iop/colorzones.c:606 +#: ../src/iop/colorzones.c:684 msgid "B&W: with red" msgstr "B&W: with red" -#: ../src/iop/colorzones.c:629 +#: ../src/iop/colorzones.c:707 msgid "B&W: with skin tones" msgstr "B&W: with skin tones" -#: ../src/iop/colorzones.c:652 +#: ../src/iop/colorzones.c:732 msgid "polarizing filter" msgstr "Polarizing filter" -#: ../src/iop/colorzones.c:673 +#: ../src/iop/colorzones.c:753 msgid "natural skin tones" msgstr "Natural skin tones" -#: ../src/iop/colorzones.c:704 +#: ../src/iop/colorzones.c:784 msgid "B&W: film" msgstr "B&W: film" -#: ../src/iop/colorzones.c:724 +#: ../src/iop/colorzones.c:804 msgid "HSL base setting" msgstr "HSL base setting" -#: ../src/iop/colorzones.c:2264 +#: ../src/iop/colorzones.c:2500 msgid "orange" msgstr "Orange" -#: ../src/iop/colorzones.c:2421 ../src/iop/rgbcurve.c:1375 +#: ../src/iop/colorzones.c:2673 ../src/iop/rgbcurve.c:1375 msgid "" "create a curve based on an area from the image\n" "drag to create a flat curve\n" @@ -15317,48 +15879,48 @@ "Ctrl+drag to create a positive curve\n" "Shift+drag to create a negative curve" -#: ../src/iop/colorzones.c:2425 ../src/iop/rgbcurve.c:1379 +#: ../src/iop/colorzones.c:2677 ../src/iop/rgbcurve.c:1379 msgid "create curve" msgstr "Create curve" #. edit by area -#: ../src/iop/colorzones.c:2442 +#: ../src/iop/colorzones.c:2696 msgid "edit by area" msgstr "Edit by area" -#: ../src/iop/colorzones.c:2447 +#: ../src/iop/colorzones.c:2702 msgid "edit the curve nodes by area" msgstr "Edit the curve nodes by area" -#: ../src/iop/colorzones.c:2454 +#: ../src/iop/colorzones.c:2710 msgid "display selection" msgstr "Display selection" -#: ../src/iop/colorzones.c:2463 +#: ../src/iop/colorzones.c:2722 msgid "choose selection criterion, will be the abscissa in the graph" msgstr "Choose selection criterion, will be the abscissa in the graph" -#: ../src/iop/colorzones.c:2466 +#: ../src/iop/colorzones.c:2725 msgid "choose between a smoother or stronger effect" msgstr "Choose between a smoother or stronger effect" -#: ../src/iop/colorzones.c:2494 ../src/iop/rgbcurve.c:1410 -#: ../src/iop/tonecurve.c:1172 +#: ../src/iop/colorzones.c:2762 ../src/iop/rgbcurve.c:1410 +#: ../src/iop/tonecurve.c:1194 msgid "interpolation method" msgstr "Interpolation method" -#: ../src/iop/colorzones.c:2496 ../src/iop/rgbcurve.c:1412 -#: ../src/iop/tonecurve.c:1174 +#: ../src/iop/colorzones.c:2764 ../src/iop/rgbcurve.c:1412 +#: ../src/iop/tonecurve.c:1196 msgid "centripetal spline" msgstr "Centripetal spline" -#: ../src/iop/colorzones.c:2497 ../src/iop/rgbcurve.c:1413 -#: ../src/iop/tonecurve.c:1175 +#: ../src/iop/colorzones.c:2765 ../src/iop/rgbcurve.c:1413 +#: ../src/iop/tonecurve.c:1197 msgid "monotonic spline" msgstr "Monotonic spline" -#: ../src/iop/colorzones.c:2500 ../src/iop/rgbcurve.c:1416 -#: ../src/iop/tonecurve.c:1177 +#: ../src/iop/colorzones.c:2768 ../src/iop/rgbcurve.c:1416 +#: ../src/iop/tonecurve.c:1199 msgid "" "change this method if you see oscillations or cusps in the curve\n" "- cubic spline is better to produce smooth curves but oscillates when nodes " @@ -15376,23 +15938,23 @@ "- Monotonic is better for accuracy of pure analytical functions (log, gamma, " "exp)" -#: ../src/iop/crop.c:132 +#: ../src/iop/crop.c:122 msgid "crop" msgstr "Crop" -#: ../src/iop/crop.c:137 +#: ../src/iop/crop.c:127 msgid "reframe|distortion" msgstr "reframe|distortion" -#: ../src/iop/crop.c:143 +#: ../src/iop/crop.c:133 msgid "change the framing" msgstr "Change the framing" -#: ../src/iop/crop.c:1667 +#: ../src/iop/crop.c:1651 msgid "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag" msgstr "<b>Resize</b>: drag, <b>Keep aspect ratio</b>: Shift+drag" -#: ../src/iop/crop.c:1676 +#: ../src/iop/crop.c:1660 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag" @@ -15416,7 +15978,7 @@ "This module is deprecated. Please use the chromatic aberration module " "instead." -#: ../src/iop/defringe.c:415 +#: ../src/iop/defringe.c:417 msgid "" "method for color protection:\n" " - global average: fast, might show slightly wrong previews in high " @@ -15436,11 +15998,11 @@ "more desaturation where required\n" " - static: fast, only uses the threshold as a static limit" -#: ../src/iop/defringe.c:422 +#: ../src/iop/defringe.c:424 msgid "radius for detecting fringe" msgstr "Radius for detecting fringe" -#: ../src/iop/defringe.c:425 +#: ../src/iop/defringe.c:427 msgid "threshold for defringe, higher values mean less defringing" msgstr "Threshold for defringe, higher values mean less defringing" @@ -15452,12 +16014,12 @@ msgid "reconstruct full RGB pixels from a sensor color filter array reading" msgstr "Reconstruct full RGB pixels from a sensor color filter array reading" -#: ../src/iop/demosaic.c:1086 +#: ../src/iop/demosaic.c:1133 #, c-format msgid "`%s' color matrix not found for 4bayer image!" msgstr "`%s' color matrix not found for 4bayer image!" -#: ../src/iop/demosaic.c:1238 +#: ../src/iop/demosaic.c:1285 msgid "" "Bayer sensor demosaicing method, PPG and RCD are fast, AMaZE and LMMSE are " "slow.\n" @@ -15469,7 +16031,7 @@ "LMMSE is suited best for high ISO images.\n" "Dual demosaicers double processing time." -#: ../src/iop/demosaic.c:1242 +#: ../src/iop/demosaic.c:1289 msgid "" "X-Trans sensor demosaicing method, Markesteijn 3-pass and frequency domain " "chroma are slow.\n" @@ -15479,11 +16041,11 @@ "chroma are slow.\n" "Dual demosaicers double processing time." -#: ../src/iop/demosaic.c:1248 +#: ../src/iop/demosaic.c:1295 msgid "Bayer4 sensor demosaicing methods." msgstr "Quad Bayer sensor demosaicing methods." -#: ../src/iop/demosaic.c:1252 +#: ../src/iop/demosaic.c:1299 msgid "" "threshold for edge-aware median.\n" "set to 0.0 to switch off\n" @@ -15493,7 +16055,7 @@ "Set to 0.0 to switch off\n" "Set to 1.0 to ignore edges" -#: ../src/iop/demosaic.c:1257 +#: ../src/iop/demosaic.c:1304 msgid "" "contrast threshold for dual demosaic.\n" "set to 0.0 for high frequency content\n" @@ -15505,7 +16067,7 @@ "Set to 1.0 for flat content\n" "Toggle to visualize the mask" -#: ../src/iop/demosaic.c:1265 +#: ../src/iop/demosaic.c:1312 msgid "" "LMMSE refinement steps. the median steps average the output,\n" "refine adds some recalculation of red & blue channels" @@ -15513,49 +16075,49 @@ "LMMSE refinement steps. The median steps average the output,\n" "refine adds some recalculation of red & blue channels" -#: ../src/iop/demosaic.c:1268 +#: ../src/iop/demosaic.c:1315 msgid "how many color smoothing median steps after demosaicing" msgstr "How many color smoothing median steps after demosaicing" -#: ../src/iop/demosaic.c:1271 +#: ../src/iop/demosaic.c:1318 msgid "green channels matching method" msgstr "Green channels matching method" -#: ../src/iop/demosaic.c:1278 +#: ../src/iop/demosaic.c:1325 msgid "demosaicing is only used for color raw images" msgstr "Demosaicing is only used for color raw images" -#: ../src/iop/denoiseprofile.c:714 +#: ../src/iop/denoiseprofile.c:766 msgid "wavelets: chroma only" msgstr "Wavelets: chroma only" -#: ../src/iop/denoiseprofile.c:720 +#: ../src/iop/denoiseprofile.c:772 msgid "denoise (profiled)" msgstr "Denoise (profiled)" -#: ../src/iop/denoiseprofile.c:726 +#: ../src/iop/denoiseprofile.c:778 msgid "denoise using noise statistics profiled on sensors" msgstr "Denoise using noise statistics profiled on sensors" -#: ../src/iop/denoiseprofile.c:2846 +#: ../src/iop/denoiseprofile.c:2850 #, c-format msgid "found match for ISO %d" msgstr "Found match for ISO %d" -#: ../src/iop/denoiseprofile.c:2855 +#: ../src/iop/denoiseprofile.c:2859 #, c-format msgid "interpolated from ISO %d and %d" msgstr "Interpolated from ISO %d and %d" -#: ../src/iop/denoiseprofile.c:3719 +#: ../src/iop/denoiseprofile.c:3723 msgid "Y0" msgstr "Y0" -#: ../src/iop/denoiseprofile.c:3720 +#: ../src/iop/denoiseprofile.c:3724 msgid "U0V0" msgstr "U0V0" -#: ../src/iop/denoiseprofile.c:3760 +#: ../src/iop/denoiseprofile.c:3764 msgid "" "use only with a perfectly\n" "uniform image if you want to\n" @@ -15565,36 +16127,36 @@ "uniform image if you want to\n" "estimate the noise variance." -#: ../src/iop/denoiseprofile.c:3766 +#: ../src/iop/denoiseprofile.c:3770 msgid "variance red: " msgstr "Variance red: " -#: ../src/iop/denoiseprofile.c:3770 +#: ../src/iop/denoiseprofile.c:3774 msgid "variance computed on the red channel" msgstr "Variance computed on the red channel" -#: ../src/iop/denoiseprofile.c:3775 +#: ../src/iop/denoiseprofile.c:3779 msgid "variance green: " msgstr "Variance green: " -#: ../src/iop/denoiseprofile.c:3779 +#: ../src/iop/denoiseprofile.c:3783 msgid "variance computed on the green channel" msgstr "Variance computed on the green channel" -#: ../src/iop/denoiseprofile.c:3784 +#: ../src/iop/denoiseprofile.c:3788 msgid "variance blue: " msgstr "Variance blue: " -#: ../src/iop/denoiseprofile.c:3788 +#: ../src/iop/denoiseprofile.c:3792 msgid "variance computed on the blue channel" msgstr "Variance computed on the blue channel" -#: ../src/iop/denoiseprofile.c:3799 ../src/libs/export.c:1208 +#: ../src/iop/denoiseprofile.c:3803 ../src/libs/export.c:1320 #: ../src/libs/print_settings.c:2418 ../src/libs/print_settings.c:2774 msgid "profile" msgstr "Profile" -#: ../src/iop/denoiseprofile.c:3833 +#: ../src/iop/denoiseprofile.c:3837 msgid "" "adapt denoising according to the\n" "white balance coefficients.\n" @@ -15610,7 +16172,7 @@ "Should be disabled if an earlier instance\n" "has been used with a color blending mode." -#: ../src/iop/denoiseprofile.c:3840 +#: ../src/iop/denoiseprofile.c:3844 msgid "" "fix bugs in Anscombe transform resulting\n" "in undersmoothing of the green channel in\n" @@ -15632,11 +16194,11 @@ "you get. Once enabled, you won't be able to\n" "return back to old algorithm." -#: ../src/iop/denoiseprofile.c:3850 +#: ../src/iop/denoiseprofile.c:3854 msgid "profile used for variance stabilization" msgstr "Profile used for variance stabilization" -#: ../src/iop/denoiseprofile.c:3852 +#: ../src/iop/denoiseprofile.c:3856 msgid "" "method used in the denoising core.\n" "non-local means works best for `lightness' blending,\n" @@ -15646,7 +16208,7 @@ "Non-local means works best for `lightness' blending,\n" "wavelets work best for `color' blending" -#: ../src/iop/denoiseprofile.c:3856 +#: ../src/iop/denoiseprofile.c:3860 msgid "" "color representation used within the algorithm.\n" "RGB keeps the RGB channels separated,\n" @@ -15658,7 +16220,7 @@ "while Y0U0V0 combine the channels to\n" "denoise chroma and luma separately." -#: ../src/iop/denoiseprofile.c:3861 +#: ../src/iop/denoiseprofile.c:3865 msgid "" "radius of the patches to match.\n" "increase for more sharpness on strong edges, and better denoising of smooth " @@ -15672,7 +16234,7 @@ "If details are oversmoothed, reduce this value or increase the central pixel " "weight slider." -#: ../src/iop/denoiseprofile.c:3867 +#: ../src/iop/denoiseprofile.c:3871 msgid "" "emergency use only: radius of the neighborhood to search patches in. " "increase for better denoising performance, but watch the long runtimes! " @@ -15682,7 +16244,7 @@ "Increase for better denoising performance, but watch the long runtimes! " "Large radii can be very slow. You have been warned" -#: ../src/iop/denoiseprofile.c:3873 +#: ../src/iop/denoiseprofile.c:3877 msgid "" "scattering of the neighborhood to search patches in.\n" "increase for better coarse-grain noise reduction.\n" @@ -15692,7 +16254,7 @@ "Increase for better coarse-grain noise reduction.\n" "Does not affect execution time." -#: ../src/iop/denoiseprofile.c:3877 +#: ../src/iop/denoiseprofile.c:3881 msgid "" "increase the weight of the central pixel\n" "of the patch in the patch comparison.\n" @@ -15704,11 +16266,11 @@ "Useful to recover details when patch size\n" "is quite big." -#: ../src/iop/denoiseprofile.c:3881 +#: ../src/iop/denoiseprofile.c:3885 msgid "finetune denoising strength" msgstr "Finetune denoising strength" -#: ../src/iop/denoiseprofile.c:3883 +#: ../src/iop/denoiseprofile.c:3887 msgid "" "controls the way parameters are autoset\n" "increase if shadows are not denoised enough\n" @@ -15720,7 +16282,7 @@ "or if chroma noise remains.\n" "This can happen if your picture is underexposed." -#: ../src/iop/denoiseprofile.c:3888 +#: ../src/iop/denoiseprofile.c:3892 msgid "" "finetune shadows denoising.\n" "decrease to denoise more aggressively\n" @@ -15730,7 +16292,7 @@ "Decrease to denoise more aggressively\n" "dark areas of the image." -#: ../src/iop/denoiseprofile.c:3892 +#: ../src/iop/denoiseprofile.c:3896 msgid "" "correct color cast in shadows.\n" "decrease if shadows are too purple.\n" @@ -15740,7 +16302,7 @@ "Decrease if shadows are too purple.\n" "Increase if shadows are too green." -#: ../src/iop/denoiseprofile.c:3896 +#: ../src/iop/denoiseprofile.c:3900 msgid "" "upgrade the variance stabilizing algorithm.\n" "new algorithm extends the current one.\n" @@ -15773,80 +16335,80 @@ "deconvolution." #. deblurring presets -#: ../src/iop/diffuse.c:219 +#: ../src/iop/diffuse.c:246 msgid "lens deblur: soft" msgstr "Lens deblur: soft" -#: ../src/iop/diffuse.c:244 +#: ../src/iop/diffuse.c:271 msgid "lens deblur: medium" msgstr "Lens deblur: medium" -#: ../src/iop/diffuse.c:269 +#: ../src/iop/diffuse.c:296 msgid "lens deblur: hard" msgstr "Lens deblur: hard" -#: ../src/iop/diffuse.c:295 +#: ../src/iop/diffuse.c:322 msgid "dehaze" msgstr "Dehaze" -#: ../src/iop/diffuse.c:321 +#: ../src/iop/diffuse.c:348 msgid "denoise: fine" msgstr "Denoise: fine" -#: ../src/iop/diffuse.c:346 +#: ../src/iop/diffuse.c:373 msgid "denoise: medium" msgstr "Denoise: medium" -#: ../src/iop/diffuse.c:371 +#: ../src/iop/diffuse.c:398 msgid "denoise: coarse" msgstr "Denoise: coarse" -#: ../src/iop/diffuse.c:446 +#: ../src/iop/diffuse.c:473 msgid "sharpen demosaicing: no AA filter" msgstr "Sharpen demosaicing: no AA filter" -#: ../src/iop/diffuse.c:472 +#: ../src/iop/diffuse.c:499 msgid "sharpen demosaicing: AA filter" msgstr "Sharpen demosaicing: AA filter" -#: ../src/iop/diffuse.c:499 +#: ../src/iop/diffuse.c:526 msgid "simulate watercolor" msgstr "Simulate watercolor" -#: ../src/iop/diffuse.c:524 +#: ../src/iop/diffuse.c:551 msgid "simulate line drawing" msgstr "Simulate line drawing" -#: ../src/iop/diffuse.c:576 +#: ../src/iop/diffuse.c:603 msgid "inpaint highlights" msgstr "Inpaint highlights" #. fast presets for slow hardware -#: ../src/iop/diffuse.c:603 +#: ../src/iop/diffuse.c:630 msgid "sharpness: fast" msgstr "Sharpness: fast" -#: ../src/iop/diffuse.c:655 +#: ../src/iop/diffuse.c:682 msgid "sharpness: strong" msgstr "Sharpness: strong" -#: ../src/iop/diffuse.c:680 +#: ../src/iop/diffuse.c:707 msgid "local contrast: fast" msgstr "Local contrast: fast" -#: ../src/iop/diffuse.c:1391 ../src/iop/diffuse.c:1666 +#: ../src/iop/diffuse.c:1418 ../src/iop/diffuse.c:1693 msgid "diffuse/sharpen failed to allocate memory, check your RAM settings" msgstr "Diffuse/sharpen failed to allocate memory, check your RAM settings" #. Additional parameters #. Camera settings -#: ../src/iop/diffuse.c:1782 ../src/iop/splittoning.c:537 +#: ../src/iop/diffuse.c:1797 ../src/iop/splittoning.c:533 #: ../src/libs/camera.c:486 msgctxt "section" msgid "properties" msgstr "Properties" -#: ../src/iop/diffuse.c:1788 +#: ../src/iop/diffuse.c:1803 msgid "" "more iterations make the effect stronger but the module slower.\n" "this is analogous to giving more time to the diffusion reaction.\n" @@ -15858,7 +16420,7 @@ "If you plan on sharpening or inpainting, \n" "more iterations help reconstruction." -#: ../src/iop/diffuse.c:1797 +#: ../src/iop/diffuse.c:1812 msgid "" "main scale of the diffusion.\n" "zero makes diffusion act on the finest details more heavily.\n" @@ -15872,7 +16434,7 @@ "For deblurring and denoising, set to zero.\n" "Increase to act on local contrast instead." -#: ../src/iop/diffuse.c:1807 +#: ../src/iop/diffuse.c:1822 msgid "" "width of the diffusion around the central radius.\n" "high values diffuse on a large band of radii.\n" @@ -15886,12 +16448,12 @@ "If you plan on deblurring, \n" "the radius should be around the width of your lens blur." -#: ../src/iop/diffuse.c:1814 +#: ../src/iop/diffuse.c:1829 msgctxt "section" msgid "speed (sharpen ↔ diffuse)" msgstr "Speed (sharpen ↔ diffuse)" -#: ../src/iop/diffuse.c:1821 +#: ../src/iop/diffuse.c:1836 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 1st order anisotropy (set below).\n" @@ -15907,7 +16469,7 @@ "positive values diffuse and blur, \n" "zero does nothing." -#: ../src/iop/diffuse.c:1831 +#: ../src/iop/diffuse.c:1846 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 2nd order anisotropy (set below).\n" @@ -15923,7 +16485,7 @@ "positive values diffuse and blur, \n" "zero does nothing." -#: ../src/iop/diffuse.c:1841 +#: ../src/iop/diffuse.c:1856 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 3rd order anisotropy (set below).\n" @@ -15939,7 +16501,7 @@ "positive values diffuse and blur, \n" "zero does nothing." -#: ../src/iop/diffuse.c:1851 +#: ../src/iop/diffuse.c:1866 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 4th order anisotropy (set below).\n" @@ -15955,12 +16517,12 @@ "positive values diffuse and blur, \n" "zero does nothing." -#: ../src/iop/diffuse.c:1857 +#: ../src/iop/diffuse.c:1872 msgctxt "section" msgid "direction" msgstr "Direction" -#: ../src/iop/diffuse.c:1864 +#: ../src/iop/diffuse.c:1879 msgid "" "direction of 1st order speed (set above).\n" "\n" @@ -15974,7 +16536,7 @@ "positive values rather avoid edges (isophotes), \n" "zero affects both equally (isotropic)." -#: ../src/iop/diffuse.c:1873 +#: ../src/iop/diffuse.c:1888 msgid "" "direction of 2nd order speed (set above).\n" "\n" @@ -15988,7 +16550,7 @@ "positive values rather avoid edges (isophotes), \n" "zero affects both equally (isotropic)." -#: ../src/iop/diffuse.c:1882 +#: ../src/iop/diffuse.c:1897 msgid "" "direction of 3rd order speed (set above).\n" "\n" @@ -16002,7 +16564,7 @@ "positive values rather avoid edges (isophotes), \n" "zero affects both equally (isotropic)." -#: ../src/iop/diffuse.c:1891 +#: ../src/iop/diffuse.c:1906 msgid "" "direction of 4th order speed (set above).\n" "\n" @@ -16016,12 +16578,12 @@ "positive values rather avoid edges (isophotes), \n" "zero affects both equally (isotropic)." -#: ../src/iop/diffuse.c:1897 +#: ../src/iop/diffuse.c:1912 msgctxt "section" msgid "edge management" msgstr "Edge management" -#: ../src/iop/diffuse.c:1904 +#: ../src/iop/diffuse.c:1919 msgid "" "increase or decrease the sharpness of the highest frequencies.\n" "can be used to keep details after blooming,\n" @@ -16031,7 +16593,7 @@ "Can be used to keep details after blooming,\n" "for standalone sharpening set speed to negative values." -#: ../src/iop/diffuse.c:1911 +#: ../src/iop/diffuse.c:1926 msgid "" "define the sensitivity of the variance penalty for edges.\n" "increase to exclude more edges from diffusion,\n" @@ -16041,7 +16603,7 @@ "Increase to exclude more edges from diffusion,\n" "if fringes or halos appear." -#: ../src/iop/diffuse.c:1918 +#: ../src/iop/diffuse.c:1933 msgid "" "define the variance threshold between edge amplification and penalty.\n" "decrease if you want pixels on smooth surfaces get a boost,\n" @@ -16053,12 +16615,12 @@ "increase if you see noise appear on smooth surfaces or\n" "if dark areas seem oversharpened compared to bright areas." -#: ../src/iop/diffuse.c:1924 +#: ../src/iop/diffuse.c:1939 msgctxt "section" msgid "diffusion spatiality" msgstr "Diffusion spatiality" -#: ../src/iop/diffuse.c:1931 +#: ../src/iop/diffuse.c:1946 msgid "" "luminance threshold for the mask.\n" "0. disables the luminance masking and applies the module on the whole " @@ -16077,8 +16639,8 @@ msgstr "Dither or posterize" #: ../src/iop/dither.c:112 -msgid "dithering|posterization|reduce bit-depth" -msgstr "dithering|posterization|reduce bit-depth" +msgid "dithering|posterization|reduce bit depth" +msgstr "dithering|posterization|reduce bit depth" #: ../src/iop/dither.c:117 msgid "" @@ -16093,23 +16655,23 @@ msgstr "Corrective, artistic" #. add the preset. -#: ../src/iop/dither.c:147 +#: ../src/iop/dither.c:149 msgid "dither" msgstr "Dither" -#: ../src/iop/dither.c:759 +#: ../src/iop/dither.c:761 msgid "radius for blurring step" msgstr "Radius for blurring step" -#: ../src/iop/dither.c:771 +#: ../src/iop/dither.c:773 msgid "the gradient range where to apply random dither" msgstr "The gradient range where to apply random dither" -#: ../src/iop/dither.c:772 +#: ../src/iop/dither.c:774 msgid "gradient range" msgstr "Gradient range" -#: ../src/iop/dither.c:780 +#: ../src/iop/dither.c:782 msgid "damping level of random dither" msgstr "Damping level of random dither" @@ -16117,13 +16679,13 @@ msgid "legacy equalizer" msgstr "Legacy equalizer" -#: ../src/iop/equalizer.c:110 +#: ../src/iop/equalizer.c:112 msgid "" "this module is deprecated. better use contrast equalizer module instead." msgstr "" "This module is deprecated. Better use contrast equalizer module instead." -#: ../src/iop/equalizer.c:238 +#: ../src/iop/equalizer.c:240 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -16141,33 +16703,33 @@ "Redo the exposure of the shot as if you were still in-camera\n" "using a color-safe brightening similar to increasing ISO setting" -#: ../src/iop/exposure.c:279 +#: ../src/iop/exposure.c:301 msgid "magic lantern defaults" msgstr "Magic lantern defaults" -#: ../src/iop/exposure.c:351 ../src/iop/rawoverexposed.c:135 -#: ../src/iop/rawoverexposed.c:254 +#: ../src/iop/exposure.c:373 ../src/iop/rawoverexposed.c:137 +#: ../src/iop/rawoverexposed.c:256 #, c-format msgid "failed to get raw buffer from image `%s'" msgstr "Failed to get raw buffer from image `%s'" -#: ../src/iop/exposure.c:629 +#: ../src/iop/exposure.c:647 #, no-c-format msgid "compensate camera exposure (%+.1f EV)" msgstr "Compensate camera exposure (%+.1f EV)" #. Write report in GUI -#: ../src/iop/exposure.c:813 +#: ../src/iop/exposure.c:831 #, c-format msgid "L : \t%.1f %%" msgstr "L : \t%.1f %%" -#: ../src/iop/exposure.c:945 ../src/libs/history.c:953 +#: ../src/iop/exposure.c:963 ../src/libs/history.c:953 #, c-format msgid "%.2f EV" msgstr "%.2f EV" -#: ../src/iop/exposure.c:1113 +#: ../src/iop/exposure.c:1131 msgid "" "automatically remove the camera exposure bias\n" "this is useful if you exposed the image to the right." @@ -16175,26 +16737,26 @@ "Automatically remove the camera exposure bias.\n" "This is useful if you exposed the image to the right." -#: ../src/iop/exposure.c:1132 +#: ../src/iop/exposure.c:1150 #, no-c-format msgid "where in the histogram to meter for deflicking. E.g. 50% is median" msgstr "Where in the histogram to meter for deflicking. E.g. 50% is median" -#: ../src/iop/exposure.c:1138 +#: ../src/iop/exposure.c:1156 msgid "" "where to place the exposure level for processed pics, EV below overexposure." msgstr "" "Where to place the exposure level for processed pics, EV below overexposure." -#: ../src/iop/exposure.c:1142 +#: ../src/iop/exposure.c:1160 msgid "computed EC: " msgstr "Computed EC: " -#: ../src/iop/exposure.c:1145 +#: ../src/iop/exposure.c:1163 msgid "what exposure correction has actually been used" msgstr "What exposure correction has actually been used" -#: ../src/iop/exposure.c:1164 +#: ../src/iop/exposure.c:1182 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -16206,11 +16768,11 @@ "If poorly set, it will clip near-black colors out of gamut\n" "by pushing RGB values into negatives." -#: ../src/iop/exposure.c:1174 -msgid "spot exposure mapping" -msgstr "Spot exposure mapping" +#: ../src/iop/exposure.c:1192 +msgid "area exposure mapping" +msgstr "Area exposure mapping" -#: ../src/iop/exposure.c:1180 +#: ../src/iop/exposure.c:1198 msgid "" "define a target brightness, in terms of exposure,\n" "for a selected region of the image (the control sample),\n" @@ -16226,7 +16788,7 @@ "be a critical part of your subject or a non-moving and\n" "consistently-lit surface over your series of images." -#: ../src/iop/exposure.c:1189 +#: ../src/iop/exposure.c:1207 msgid "" "\"correction\" automatically adjust exposure\n" "such that the input lightness is mapped to the target.\n" @@ -16238,11 +16800,11 @@ "\"Measure\" simply shows how an input color is mapped by\n" "the exposure compensation and can be used to define a target." -#: ../src/iop/exposure.c:1215 +#: ../src/iop/exposure.c:1233 msgid "L : \tN/A" msgstr "L : \tN/A" -#: ../src/iop/exposure.c:1233 +#: ../src/iop/exposure.c:1251 msgid "the desired target exposure after mapping" msgstr "The desired target exposure after mapping" @@ -16250,52 +16812,52 @@ msgid "this module is deprecated. better use filmic rgb module instead." msgstr "This module is deprecated. Better use Filmic RGB module instead." -#: ../src/iop/filmic.c:304 +#: ../src/iop/filmic.c:333 msgid "09 EV (low-key)" msgstr "09 EV (low-key)" -#: ../src/iop/filmic.c:312 +#: ../src/iop/filmic.c:341 msgid "10 EV (indoors)" msgstr "10 EV (indoors)" -#: ../src/iop/filmic.c:320 +#: ../src/iop/filmic.c:349 msgid "11 EV (dim outdoors)" msgstr "11 EV (dim outdoors)" -#: ../src/iop/filmic.c:328 +#: ../src/iop/filmic.c:357 msgid "12 EV (outdoors)" msgstr "12 EV (outdoors)" -#: ../src/iop/filmic.c:336 +#: ../src/iop/filmic.c:365 msgid "13 EV (bright outdoors)" msgstr "13 EV (bright outdoors)" -#: ../src/iop/filmic.c:344 +#: ../src/iop/filmic.c:373 msgid "14 EV (backlighting)" msgstr "14 EV (backlighting)" -#: ../src/iop/filmic.c:352 +#: ../src/iop/filmic.c:381 msgid "15 EV (sunset)" msgstr "15 EV (sunset)" -#: ../src/iop/filmic.c:360 +#: ../src/iop/filmic.c:389 msgid "16 EV (HDR)" msgstr "16 EV (HDR)" -#: ../src/iop/filmic.c:368 +#: ../src/iop/filmic.c:397 msgid "18 EV (HDR++)" msgstr "18 EV (HDR++)" -#: ../src/iop/filmic.c:1480 +#: ../src/iop/filmic.c:1505 msgid "read-only graph, use the parameters below to set the nodes" msgstr "Read-only graph, use the parameters below to set the nodes" -#: ../src/iop/filmic.c:1484 +#: ../src/iop/filmic.c:1509 msgctxt "section" msgid "logarithmic shaper" msgstr "Logarithmic shaper" -#: ../src/iop/filmic.c:1492 +#: ../src/iop/filmic.c:1517 msgid "" "adjust to match the average luminance of the subject.\n" "except in back-lighting situations, this should be around 18%." @@ -16303,7 +16865,7 @@ "Adjust to match the average luminance of the subject.\n" "Except in back-lighting situations, this should be around 18%." -#: ../src/iop/filmic.c:1504 ../src/iop/filmicrgb.c:4442 +#: ../src/iop/filmic.c:1529 ../src/iop/filmicrgb.c:4506 msgid "" "number of stops between middle gray and pure white.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16313,7 +16875,7 @@ "This is a reading a lightmeter would give you on the scene.\n" "Adjust so highlights clipping is avoided" -#: ../src/iop/filmic.c:1517 ../src/iop/filmicrgb.c:4453 +#: ../src/iop/filmic.c:1542 ../src/iop/filmicrgb.c:4517 msgid "" "number of stops between middle gray and pure black.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16325,20 +16887,20 @@ "Increase to get more contrast.\n" "Decrease to recover more details in low-lights." -#: ../src/iop/filmic.c:1529 +#: ../src/iop/filmic.c:1554 msgid "" -"enlarge or shrink the computed dynamic range.\n" +"increase or decrease the computed dynamic range.\n" "useful in conjunction with \"auto tune levels\"." msgstr "" -"Enlarge or shrink the computed dynamic range.\n" +"Increase or decrease the computed dynamic range.\n" "Useful in conjunction with \"auto tune levels\"." -#: ../src/iop/filmic.c:1535 ../src/iop/filmicrgb.c:4467 -#: ../src/iop/profile_gamma.c:659 +#: ../src/iop/filmic.c:1560 ../src/iop/filmicrgb.c:4531 +#: ../src/iop/profile_gamma.c:673 msgid "auto tune levels" msgstr "Auto tune levels" -#: ../src/iop/filmic.c:1538 +#: ../src/iop/filmic.c:1563 msgid "" "try to optimize the settings with some guessing.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16350,12 +16912,12 @@ "Works better for landscapes and evenly-lit pictures\n" "but fails for high-keys and low-keys." -#: ../src/iop/filmic.c:1543 +#: ../src/iop/filmic.c:1568 msgctxt "section" msgid "filmic S curve" msgstr "Filmic S curve" -#: ../src/iop/filmic.c:1550 ../src/iop/filmicrgb.c:4554 +#: ../src/iop/filmic.c:1575 ../src/iop/filmicrgb.c:4618 msgid "" "slope of the linear part of the curve\n" "affects mostly the mid-tones" @@ -16364,12 +16926,12 @@ "Affects mostly the mid-tones" #. geotagging -#: ../src/iop/filmic.c:1557 ../src/iop/filmicrgb.c:4563 -#: ../src/libs/metadata_view.c:157 +#: ../src/iop/filmic.c:1582 ../src/iop/filmicrgb.c:4627 +#: ../src/libs/metadata_view.c:161 msgid "latitude" msgstr "Latitude" -#: ../src/iop/filmic.c:1560 +#: ../src/iop/filmic.c:1585 msgid "" "width of the linear domain in the middle of the curve.\n" "increase to get more contrast at the extreme luminances.\n" @@ -16379,11 +16941,11 @@ "Increase to get more contrast at the extreme luminances.\n" "This has no effect on mid-tones." -#: ../src/iop/filmic.c:1567 +#: ../src/iop/filmic.c:1592 msgid "shadows/highlights balance" msgstr "Shadows/highlights balance" -#: ../src/iop/filmic.c:1570 ../src/iop/filmicrgb.c:4574 +#: ../src/iop/filmic.c:1595 ../src/iop/filmicrgb.c:4638 msgid "" "slides the latitude along the slope\n" "to give more room to shadows or highlights.\n" @@ -16395,7 +16957,7 @@ "Use it if you need to protect the details\n" "at one extremity of the histogram." -#: ../src/iop/filmic.c:1580 +#: ../src/iop/filmic.c:1605 msgid "" "desaturates the input of the module globally.\n" "you need to set this value below 100%\n" @@ -16405,7 +16967,7 @@ "You need to set this value below 100%\n" "if the chrominance preservation is enabled." -#: ../src/iop/filmic.c:1590 +#: ../src/iop/filmic.c:1615 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16416,41 +16978,41 @@ "Decrease if shadows and/or highlights are over-saturated." #. Add export intent combo -#: ../src/iop/filmic.c:1600 ../src/libs/export.c:1227 +#: ../src/iop/filmic.c:1625 ../src/libs/export.c:1339 #: ../src/libs/print_settings.c:2473 ../src/libs/print_settings.c:2820 -#: ../src/views/darkroom.c:2524 ../src/views/lighttable.c:1182 +#: ../src/views/darkroom.c:2365 ../src/views/lighttable.c:1182 msgid "intent" msgstr "Intent" -#: ../src/iop/filmic.c:1601 +#: ../src/iop/filmic.c:1626 msgid "contrasted" msgstr "Contrasted" #. cubic spline -#: ../src/iop/filmic.c:1602 +#: ../src/iop/filmic.c:1627 msgid "faded" msgstr "Faded" #. centripetal spline -#: ../src/iop/filmic.c:1603 ../src/iop/profile_gamma.c:621 +#: ../src/iop/filmic.c:1628 ../src/iop/profile_gamma.c:635 msgid "linear" msgstr "Linear" #. monotonic spline -#: ../src/iop/filmic.c:1604 +#: ../src/iop/filmic.c:1629 msgid "optimized" msgstr "Optimized" -#: ../src/iop/filmic.c:1606 +#: ../src/iop/filmic.c:1631 msgid "change this method if you see reversed contrast or faded blacks" msgstr "Change this method if you see reversed contrast or faded blacks" #. Preserve color -#: ../src/iop/filmic.c:1610 +#: ../src/iop/filmic.c:1635 msgid "preserve the chrominance" msgstr "Preserve the chrominance" -#: ../src/iop/filmic.c:1612 +#: ../src/iop/filmic.c:1637 msgid "" "ensure the original color are preserved.\n" "may reinforce chromatic aberrations.\n" @@ -16460,12 +17022,12 @@ "May reinforce chromatic aberrations.\n" "You need to manually tune the saturation when using this mode." -#: ../src/iop/filmic.c:1622 +#: ../src/iop/filmic.c:1647 msgctxt "section" msgid "destination/display" msgstr "Destination/display" -#: ../src/iop/filmic.c:1640 ../src/iop/filmicrgb.c:4593 +#: ../src/iop/filmic.c:1665 ../src/iop/filmicrgb.c:4657 msgid "" "luminance of output pure black, this should be 0%\n" "except if you want a faded look" @@ -16473,7 +17035,7 @@ "Luminance of output pure black, this should be 0%\n" "except if you want a faded look" -#: ../src/iop/filmic.c:1649 ../src/iop/filmicrgb.c:4600 +#: ../src/iop/filmic.c:1674 ../src/iop/filmicrgb.c:4664 msgid "" "middle gray value of the target display or color space.\n" "you should never touch that unless you know what you are doing." @@ -16481,7 +17043,7 @@ "Middle gray value of the target display or color space.\n" "You should never touch that unless you know what you are doing." -#: ../src/iop/filmic.c:1658 ../src/iop/filmicrgb.c:4607 +#: ../src/iop/filmic.c:1683 ../src/iop/filmicrgb.c:4671 msgid "" "luminance of output pure white, this should be 100%\n" "except if you want a faded look" @@ -16489,11 +17051,11 @@ "Luminance of output pure white, this should be 100%\n" "except if you want a faded look" -#: ../src/iop/filmic.c:1664 +#: ../src/iop/filmic.c:1689 msgid "target gamma" msgstr "Target gamma" -#: ../src/iop/filmic.c:1666 +#: ../src/iop/filmic.c:1691 msgid "" "power or gamma of the transfer function\n" "of the display or color space.\n" @@ -16521,7 +17083,7 @@ "for display on SDR screens and paper prints\n" "while preventing clipping in non-destructive ways" -#: ../src/iop/filmicrgb.c:1310 +#: ../src/iop/filmicrgb.c:1365 msgid "" "filmic highlights reconstruction failed to allocate memory, check your RAM " "settings" @@ -16529,71 +17091,71 @@ "Filmic highlights reconstruction failed to allocate memory, check your RAM " "settings" -#: ../src/iop/filmicrgb.c:2301 +#: ../src/iop/filmicrgb.c:2369 msgid "filmic highlights reconstruction failed to allocate memory on GPU" msgstr "Filmic highlights reconstruction failed to allocate memory on GPU" -#: ../src/iop/filmicrgb.c:2419 +#: ../src/iop/filmicrgb.c:2487 msgid "filmic works only on RGB input" msgstr "Filmic works only on RGB input" -#: ../src/iop/filmicrgb.c:3484 +#: ../src/iop/filmicrgb.c:3548 msgid "look only" msgstr "Look only" -#: ../src/iop/filmicrgb.c:3486 +#: ../src/iop/filmicrgb.c:3550 msgid "look + mapping (lin)" msgstr "Look + mapping (lin)" -#: ../src/iop/filmicrgb.c:3488 +#: ../src/iop/filmicrgb.c:3552 msgid "look + mapping (log)" msgstr "Look + mapping (log)" -#: ../src/iop/filmicrgb.c:3490 +#: ../src/iop/filmicrgb.c:3554 msgid "dynamic range mapping" msgstr "Dynamic range mapping" -#: ../src/iop/filmicrgb.c:3857 +#: ../src/iop/filmicrgb.c:3921 #, c-format msgid "(%.0f %%)" msgstr "(%.0f %%)" -#: ../src/iop/filmicrgb.c:3873 +#: ../src/iop/filmicrgb.c:3937 #, no-c-format msgid "% display" msgstr "% display" -#: ../src/iop/filmicrgb.c:3885 +#: ../src/iop/filmicrgb.c:3949 msgid "EV scene" msgstr "EV scene" -#: ../src/iop/filmicrgb.c:3889 +#: ../src/iop/filmicrgb.c:3953 #, no-c-format msgid "% camera" msgstr "% camera" #. Page DISPLAY -#: ../src/iop/filmicrgb.c:3925 ../src/iop/filmicrgb.c:4587 +#: ../src/iop/filmicrgb.c:3989 ../src/iop/filmicrgb.c:4651 msgid "display" msgstr "Display" #. axis legend -#: ../src/iop/filmicrgb.c:3934 +#: ../src/iop/filmicrgb.c:3998 msgid "(%)" msgstr "(%)" #. Page SCENE -#: ../src/iop/filmicrgb.c:3943 ../src/iop/filmicrgb.c:4422 +#: ../src/iop/filmicrgb.c:4007 ../src/iop/filmicrgb.c:4486 msgid "scene" msgstr "Scene" #. axis legend -#: ../src/iop/filmicrgb.c:3952 +#: ../src/iop/filmicrgb.c:4016 msgid "(EV)" msgstr "(EV)" #. we are over the graph area -#: ../src/iop/filmicrgb.c:4364 +#: ../src/iop/filmicrgb.c:4428 msgid "" "use the parameters below to set the nodes.\n" "the bright curve is the filmic tone mapping curve\n" @@ -16603,11 +17165,11 @@ "The bright curve is the filmic tone mapping curve.\n" "The dark curve is the desaturation curve." -#: ../src/iop/filmicrgb.c:4370 +#: ../src/iop/filmicrgb.c:4434 msgid "toggle axis labels and values display" msgstr "Toggle axis labels and values display" -#: ../src/iop/filmicrgb.c:4374 +#: ../src/iop/filmicrgb.c:4438 msgid "" "cycle through graph views.\n" "left click: cycle forward.\n" @@ -16619,7 +17181,7 @@ "Right click: cycle backward.\n" "Double-click: reset to look view." -#: ../src/iop/filmicrgb.c:4431 +#: ../src/iop/filmicrgb.c:4495 #, no-c-format msgid "" "adjust to match the average luminance of the image's subject.\n" @@ -16630,15 +17192,15 @@ "The value entered here will then be remapped to 18.45%.\n" "Decrease the value to increase the overall brightness." -#: ../src/iop/filmicrgb.c:4461 +#: ../src/iop/filmicrgb.c:4525 msgid "" -"symmetrically enlarge or shrink the computed dynamic range.\n" +"symmetrically increase or decrease the computed dynamic range.\n" "useful to give a safety margin to extreme luminances." msgstr "" -"Symmetrically enlarge or shrink the computed dynamic range.\n" +"Symmetrically increase or decrease the computed dynamic range.\n" "Useful to give a safety margin to extreme luminances." -#: ../src/iop/filmicrgb.c:4468 +#: ../src/iop/filmicrgb.c:4532 msgid "" "try to optimize the settings with some statistical assumptions.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16655,16 +17217,16 @@ "Ensure you understand its assumptions before using it." #. Page RECONSTRUCT -#: ../src/iop/filmicrgb.c:4477 +#: ../src/iop/filmicrgb.c:4541 msgid "reconstruct" msgstr "Reconstruct" -#: ../src/iop/filmicrgb.c:4479 +#: ../src/iop/filmicrgb.c:4543 msgctxt "section" msgid "highlights clipping" msgstr "Highlights clipping" -#: ../src/iop/filmicrgb.c:4487 +#: ../src/iop/filmicrgb.c:4551 msgid "" "set the exposure threshold upon which\n" "clipped highlights get reconstructed.\n" @@ -16680,7 +17242,7 @@ "Decrease to include more areas,\n" "increase to exclude more areas." -#: ../src/iop/filmicrgb.c:4497 +#: ../src/iop/filmicrgb.c:4561 msgid "" "soften the transition between clipped highlights and valid pixels.\n" "decrease to make the transition harder and sharper,\n" @@ -16690,72 +17252,72 @@ "Decrease to make the transition harder and sharper,\n" "increase to make the transition softer and blurrier." -#: ../src/iop/filmicrgb.c:4503 ../src/iop/filmicrgb.c:4504 +#: ../src/iop/filmicrgb.c:4567 ../src/iop/filmicrgb.c:4568 msgid "display highlight reconstruction mask" msgstr "Display highlight reconstruction mask" -#: ../src/iop/filmicrgb.c:4511 +#: ../src/iop/filmicrgb.c:4575 msgctxt "section" msgid "balance" msgstr "Balance" -#: ../src/iop/filmicrgb.c:4518 +#: ../src/iop/filmicrgb.c:4582 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between inpainting a smooth color gradient,\n" +"inpainting a smooth color gradient\n" "or trying to recover the textured details.\n" "0% is an equal mix of both.\n" "increase if at least one RGB channel is not clipped.\n" "decrease if all RGB channels are clipped over large areas." msgstr "" "Decide which reconstruction strategy to favor,\n" -"between inpainting a smooth color gradient,\n" +"inpainting a smooth color gradient\n" "or trying to recover the textured details.\n" "0% is an equal mix of both.\n" "Increase if at least one RGB channel is not clipped.\n" "Decrease if all RGB channels are clipped over large areas." -#: ../src/iop/filmicrgb.c:4529 +#: ../src/iop/filmicrgb.c:4593 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between blooming highlights like film does,\n" +"blooming highlights like film does\n" "or trying to recover sharp details.\n" "0% is an equal mix of both.\n" "increase if you want more details.\n" "decrease if you want more blur." msgstr "" "Decide which reconstruction strategy to favor,\n" -"between blooming highlights like film does,\n" +"blooming highlights like film does\n" "or trying to recover sharp details.\n" "0% is an equal mix of both.\n" "Increase if you want more details.\n" "Decrease if you want more blur." -#: ../src/iop/filmicrgb.c:4541 +#: ../src/iop/filmicrgb.c:4605 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between recovering monochromatic highlights,\n" +"recovering monochromatic highlights\n" "or trying to recover colorful highlights.\n" "0% is an equal mix of both.\n" "increase if you want more color.\n" "decrease if you see magenta or out-of-gamut highlights." msgstr "" "Decide which reconstruction strategy to favor,\n" -"between recovering monochromatic highlights,\n" +"recovering monochromatic highlights\n" "or trying to recover colorful highlights.\n" "0% is an equal mix of both.\n" "Increase if you want more color.\n" "Decrease if you see magenta or out-of-gamut highlights." #. Page LOOK -#: ../src/iop/filmicrgb.c:4549 +#: ../src/iop/filmicrgb.c:4613 msgid "look" msgstr "Look" -#: ../src/iop/filmicrgb.c:4559 +#: ../src/iop/filmicrgb.c:4623 msgid "" "equivalent to paper grade in analog.\n" "increase to make highlights brighter and less compressed.\n" @@ -16765,7 +17327,7 @@ "Increase to make highlights brighter and less compressed.\n" "Decrease to mute highlights." -#: ../src/iop/filmicrgb.c:4567 +#: ../src/iop/filmicrgb.c:4631 msgid "" "width of the linear domain in the middle of the curve,\n" "increase to get more contrast and less desaturation at extreme luminances,\n" @@ -16777,7 +17339,7 @@ "decrease otherwise. No desaturation happens in the latitude range.\n" "This has no effect on mid-tones." -#: ../src/iop/filmicrgb.c:4582 ../src/iop/filmicrgb.c:4730 +#: ../src/iop/filmicrgb.c:4646 ../src/iop/filmicrgb.c:4794 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16788,11 +17350,11 @@ "Increase if shadows and/or highlights are under-saturated." #. Page OPTIONS -#: ../src/iop/filmicrgb.c:4611 +#: ../src/iop/filmicrgb.c:4675 msgid "options" msgstr "Options" -#: ../src/iop/filmicrgb.c:4616 +#: ../src/iop/filmicrgb.c:4680 msgid "" "v3 is darktable 3.0 desaturation method, same as color balance.\n" "v4 is a newer desaturation method, based on spectral purity of light." @@ -16800,7 +17362,7 @@ "V3 is Darktable 3.0 desaturation method, same as color balance.\n" "V4 is a newer desaturation method, based on spectral purity of light." -#: ../src/iop/filmicrgb.c:4620 +#: ../src/iop/filmicrgb.c:4684 msgid "" "ensure the original colors are preserved.\n" "may reinforce chromatic aberrations and chroma noise,\n" @@ -16810,7 +17372,7 @@ "May reinforce chromatic aberrations and chroma noise,\n" "so ensure they are properly corrected elsewhere." -#: ../src/iop/filmicrgb.c:4629 +#: ../src/iop/filmicrgb.c:4693 msgid "" "choose the desired curvature of the filmic spline in highlights.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -16820,7 +17382,7 @@ "Hard uses a high curvature resulting in more tonal compression.\n" "Soft uses a low curvature resulting in less tonal compression." -#: ../src/iop/filmicrgb.c:4634 +#: ../src/iop/filmicrgb.c:4698 msgid "" "choose the desired curvature of the filmic spline in shadows.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -16830,7 +17392,7 @@ "Hard uses a high curvature resulting in more tonal compression.\n" "Soft uses a low curvature resulting in less tonal compression." -#: ../src/iop/filmicrgb.c:4641 +#: ../src/iop/filmicrgb.c:4705 #, no-c-format msgid "" "enable to input custom middle-gray values.\n" @@ -16843,7 +17405,7 @@ "Fix the global exposure in the Exposure module instead.\n" "Disable to use standard 18.45% middle gray." -#: ../src/iop/filmicrgb.c:4648 +#: ../src/iop/filmicrgb.c:4712 msgid "" "enable to auto-set the look hardness depending on the scene white and black " "points.\n" @@ -16855,7 +17417,7 @@ "This keeps the middle gray on the identity line and improves fast tuning.\n" "Disable if you want a manual control." -#: ../src/iop/filmicrgb.c:4654 +#: ../src/iop/filmicrgb.c:4718 msgid "" "run extra passes of chromaticity reconstruction.\n" "more iterations means more color propagation from neighborhood.\n" @@ -16867,7 +17429,7 @@ "This will be slower but will yield more neutral highlights.\n" "It also helps with difficult cases of magenta highlights." -#: ../src/iop/filmicrgb.c:4661 +#: ../src/iop/filmicrgb.c:4725 msgid "" "add statistical noise in reconstructed highlights.\n" "this avoids highlights to look too smooth\n" @@ -16879,7 +17441,7 @@ "when the picture is noisy overall,\n" "so they blend with the rest of the picture." -#: ../src/iop/filmicrgb.c:4668 +#: ../src/iop/filmicrgb.c:4732 msgid "" "choose the statistical distribution of noise.\n" "this is useful to match natural sensor noise pattern." @@ -16887,11 +17449,11 @@ "Choose the statistical distribution of noise.\n" "This is useful to match natural sensor noise pattern." -#: ../src/iop/filmicrgb.c:4736 +#: ../src/iop/filmicrgb.c:4800 msgid "mid-tones saturation" msgstr "Mid-tones saturation" -#: ../src/iop/filmicrgb.c:4737 +#: ../src/iop/filmicrgb.c:4801 msgid "" "desaturates the output of the module\n" "specifically at medium luminances.\n" @@ -16901,11 +17463,11 @@ "specifically at medium luminances.\n" "Increase if midtones are under-saturated." -#: ../src/iop/filmicrgb.c:4743 +#: ../src/iop/filmicrgb.c:4807 msgid "highlights saturation mix" msgstr "Highlights saturation mix" -#: ../src/iop/filmicrgb.c:4744 +#: ../src/iop/filmicrgb.c:4808 msgid "" "positive values ensure saturation is kept unchanged over the whole range.\n" "negative values bleach highlights at constant hue and luminance.\n" @@ -16928,39 +17490,39 @@ msgid "flip or rotate image by step of 90 degrees" msgstr "Flip or rotate image by step of 90 degrees" -#: ../src/iop/flip.c:477 +#: ../src/iop/flip.c:475 msgid "no rotation" msgstr "No rotation" -#: ../src/iop/flip.c:481 ../src/iop/flip.c:624 +#: ../src/iop/flip.c:479 ../src/iop/flip.c:622 msgid "flip horizontally" msgstr "Flip horizontally" -#: ../src/iop/flip.c:485 ../src/iop/flip.c:628 +#: ../src/iop/flip.c:483 ../src/iop/flip.c:626 msgid "flip vertically" msgstr "Flip vertically" -#: ../src/iop/flip.c:489 +#: ../src/iop/flip.c:487 msgid "rotate by -90 degrees" msgstr "Rotate by -90 degrees" -#: ../src/iop/flip.c:493 +#: ../src/iop/flip.c:491 msgid "rotate by 90 degrees" msgstr "Rotate by 90 degrees" -#: ../src/iop/flip.c:497 +#: ../src/iop/flip.c:495 msgid "rotate by 180 degrees" msgstr "Rotate by 180 degrees" -#: ../src/iop/flip.c:612 +#: ../src/iop/flip.c:610 msgid "transform" msgstr "Transform" -#: ../src/iop/flip.c:616 ../src/libs/live_view.c:293 +#: ../src/iop/flip.c:614 ../src/libs/live_view.c:293 msgid "rotate 90 degrees CCW" msgstr "Rotate 90 degrees CCW" -#: ../src/iop/flip.c:620 ../src/libs/live_view.c:294 +#: ../src/iop/flip.c:618 ../src/libs/live_view.c:294 msgid "rotate 90 degrees CW" msgstr "Rotate 90 degrees CW" @@ -16977,15 +17539,15 @@ msgid "this module is deprecated. please use the filmic rgb module instead." msgstr "This module is deprecated. Please use the Filmic RGB module instead." -#: ../src/iop/globaltonemap.c:625 ../src/libs/filters/colors.c:259 +#: ../src/iop/globaltonemap.c:658 ../src/libs/filters/colors.c:259 msgid "operator" msgstr "Operator" -#: ../src/iop/globaltonemap.c:626 +#: ../src/iop/globaltonemap.c:659 msgid "the global tonemap operator" msgstr "The global tonemap operator" -#: ../src/iop/globaltonemap.c:629 +#: ../src/iop/globaltonemap.c:662 msgid "" "the bias for tonemapper controls the linearity, the higher the more details " "in blacks" @@ -16993,7 +17555,7 @@ "The bias for tonemapper controls the linearity, the higher the more details " "in blacks" -#: ../src/iop/globaltonemap.c:633 +#: ../src/iop/globaltonemap.c:666 msgid "the target light for tonemapper specified as cd/m2" msgstr "The target light for tonemapper specified as cd/m2" @@ -17057,11 +17619,11 @@ msgid "simulate an optical graduated neutral density filter" msgstr "Simulate an optical graduated neutral density filter" -#: ../src/iop/graduatednd.c:1114 +#: ../src/iop/graduatednd.c:1083 msgid "the density in EV for the filter" msgstr "The density in EV for the filter" -#: ../src/iop/graduatednd.c:1119 +#: ../src/iop/graduatednd.c:1088 #, no-c-format msgid "" "hardness of graduation:\n" @@ -17070,55 +17632,55 @@ "Hardness of graduation:\n" "0% = soft, 100% = hard" -#: ../src/iop/graduatednd.c:1123 +#: ../src/iop/graduatednd.c:1092 msgid "rotation of filter -180 to 180 degrees" msgstr "Rotation of filter -180 to 180 degrees" -#: ../src/iop/graduatednd.c:1136 +#: ../src/iop/graduatednd.c:1105 msgid "select the hue tone of filter" msgstr "Select the hue tone of filter" -#: ../src/iop/graduatednd.c:1142 +#: ../src/iop/graduatednd.c:1111 msgid "select the saturation of filter" msgstr "Select the saturation of filter" -#: ../src/iop/graduatednd.c:1153 +#: ../src/iop/graduatednd.c:1122 #, c-format msgid "[%s on nodes] change line rotation" msgstr "[%s on nodes] change line rotation" -#: ../src/iop/graduatednd.c:1154 +#: ../src/iop/graduatednd.c:1123 #, c-format msgid "[%s on line] move line" msgstr "[%s on line] move line" -#: ../src/iop/graduatednd.c:1156 +#: ../src/iop/graduatednd.c:1125 #, c-format msgid "[%s on line] change density" msgstr "[%s on line] change density" -#: ../src/iop/graduatednd.c:1158 +#: ../src/iop/graduatednd.c:1127 #, c-format msgid "[%s on line] change hardness" msgstr "[%s on line] change hardness" -#: ../src/iop/grain.c:428 +#: ../src/iop/grain.c:444 msgid "grain" msgstr "Grain" -#: ../src/iop/grain.c:433 +#: ../src/iop/grain.c:449 msgid "simulate silver grains from film" msgstr "Simulate silver grains from film" -#: ../src/iop/grain.c:582 +#: ../src/iop/grain.c:600 msgid "the grain size (~ISO of the film)" msgstr "The grain size (~ISO of the film)" -#: ../src/iop/grain.c:586 +#: ../src/iop/grain.c:604 msgid "the strength of applied grain" msgstr "The strength of applied grain" -#: ../src/iop/grain.c:590 +#: ../src/iop/grain.c:608 msgid "" "amount of mid-tones bias from the photographic paper response modeling. the " "greater the bias, the more pronounced the fall off of the grain in shadows " @@ -17140,15 +17702,15 @@ msgid "remove fog and atmospheric hazing from pictures" msgstr "Remove fog and atmospheric hazing from pictures" -#: ../src/iop/hazeremoval.c:202 +#: ../src/iop/hazeremoval.c:204 msgid "amount of haze reduction" msgstr "Amount of haze reduction" -#: ../src/iop/hazeremoval.c:204 +#: ../src/iop/hazeremoval.c:206 msgid "distance" msgstr "Distance" -#: ../src/iop/hazeremoval.c:206 +#: ../src/iop/hazeremoval.c:208 msgid "limit haze removal up to a specific spatial depth" msgstr "Limit haze removal up to a specific spatial depth" @@ -17160,11 +17722,11 @@ msgid "avoid magenta highlights and try to recover highlights colors" msgstr "Avoid magenta highlights and try to recover highlights colors" -#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:75 +#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:77 msgid "reconstruction, raw" msgstr "Reconstruction, raw" -#: ../src/iop/highlights.c:923 +#: ../src/iop/highlights.c:1004 msgid "" "highlights: mode not available for this type of image. falling back to " "inpaint opposed." @@ -17172,47 +17734,65 @@ "Highlights: mode not available for this type of image. Falling back to " "inpaint opposed." -#: ../src/iop/highlights.c:1101 +#: ../src/iop/highlights.c:1184 msgid "highlight reconstruction method" msgstr "Highlight reconstruction method" -#: ../src/iop/highlights.c:1106 +#: ../src/iop/highlights.c:1189 msgid "" "manually adjust the clipping threshold mostly used against magenta " -"highlights\n" -"the mask icon shows the clipped areas.\n" +"highlights.\n" "you might use this for tuning 'laplacian', 'inpaint opposed' or " "'segmentation' modes,\n" "especially if camera white point is incorrect." msgstr "" "Manually adjust the clipping threshold mostly used against magenta " "highlights.\n" -"The mask icon shows the clipped areas.\n" -"You might use this for tuning 'laplacian', 'inpaint opposed' or " -"'segmentation' modes,\n" +"You might use this for tuning 'Laplacian', 'Inpaint opposed' or " +"'Segmentation' modes,\n" "especially if camera white point is incorrect." -#: ../src/iop/highlights.c:1117 +#: ../src/iop/highlights.c:1193 +msgid "" +"visualize clipped highlights in a false color representation.\n" +"the effective clipping level also depends on the reconstruction method." +msgstr "" +"Visualize clipped highlights in a false color representation.\n" +"The effective clipping level also depends on the reconstruction method." + +#: ../src/iop/highlights.c:1203 msgid "" "combine closely related clipped segments by morphological operations.\n" -"the mask button shows the exact positions of resulting segment borders." +"this often leads to improved color reconstruction for tiny segments before " +"dark background." msgstr "" "Combine closely related clipped segments by morphological operations.\n" -"The mask button shows the exact positions of resulting segment borders." +"This often leads to improved color reconstruction for tiny segments before " +"dark background." -#: ../src/iop/highlights.c:1125 +#: ../src/iop/highlights.c:1206 +msgid "visualize the combined segments in a false color representation." +msgstr "Visualize the combined segments in a false color representation." + +#: ../src/iop/highlights.c:1213 msgid "" "select inpainting after segmentation analysis.\n" -"increase to favour candidates found in segmentation analysis, decrease for " -"opposed means inpainting.\n" -"the mask button shows segments that are considered to have a good candidate." +"increase to favor candidates found in segmentation analysis, decrease for " +"opposed means inpainting." msgstr "" "Select inpainting after segmentation analysis.\n" -"Increase to favour candidates found in segmentation analysis, decrease for " -"opposed means inpainting.\n" -"The mask button shows segments that are considered to have a good candidate." +"Increase to favor candidates found in segmentation analysis, decrease for " +"opposed means inpainting." -#: ../src/iop/highlights.c:1136 +#: ../src/iop/highlights.c:1216 +msgid "" +"visualize segments that are considered to have a good candidate in a false " +"color representation." +msgstr "" +"Visualize segments that are considered to have a good candidate in a false " +"color representation." + +#: ../src/iop/highlights.c:1225 msgid "" "approximate lost data in regions with all photosites clipped, the effect " "depends on segment size and border gradients.\n" @@ -17232,17 +17812,15 @@ "The flat modes ignore narrow unclipped structures (like powerlines) to keep " "highlights rebuilt and avoid gradients." -#: ../src/iop/highlights.c:1142 -msgid "" -"set strength of rebuilding in regions with all photosites clipped.\n" -"the mask buttons shows the effect that is added to already reconstructed " -"data." -msgstr "" -"Set strength of rebuilding in regions with all photosites clipped.\n" -"The mask buttons shows the effect that is added to already reconstructed " -"data." +#: ../src/iop/highlights.c:1231 +msgid "set strength of rebuilding in regions with all photosites clipped." +msgstr "Set strength of rebuilding in regions with all photosites clipped." + +#: ../src/iop/highlights.c:1233 +msgid "show the effect that is added to already reconstructed data." +msgstr "Show the effect that is added to already reconstructed data." -#: ../src/iop/highlights.c:1152 +#: ../src/iop/highlights.c:1242 msgid "" "add noise to visually blend the reconstructed areas\n" "into the rest of the noisy image. useful at high ISO." @@ -17250,7 +17828,7 @@ "Add noise to visually blend the reconstructed areas\n" "into the rest of the noisy image. Useful at high ISO." -#: ../src/iop/highlights.c:1156 +#: ../src/iop/highlights.c:1246 msgid "" "increase if magenta highlights don't get fully corrected\n" "each new iteration brings a performance penalty." @@ -17258,7 +17836,7 @@ "Increase if magenta highlights don't get fully corrected\n" "Each new iteration brings a performance penalty." -#: ../src/iop/highlights.c:1161 +#: ../src/iop/highlights.c:1251 msgid "" "increase if magenta highlights don't get fully corrected.\n" "this may produce non-smooth boundaries between valid and clipped regions." @@ -17266,7 +17844,7 @@ "Increase if magenta highlights don't get fully corrected.\n" "This may produce non-smooth boundaries between valid and clipped regions." -#: ../src/iop/highlights.c:1165 +#: ../src/iop/highlights.c:1255 msgid "" "increase to correct larger clipped areas.\n" "large values bring huge performance penalties" @@ -17274,9 +17852,9 @@ "Increase to correct larger clipped areas.\n" "Large values bring huge performance penalties" -#: ../src/iop/highlights.c:1169 -msgid "this module only works with non-monochrome RAW and sRAW" -msgstr "This module only works with non-monochrome RAW and sRAW" +#: ../src/iop/highlights.c:1259 +msgid "this module does not work with monochrome RAW files" +msgstr "This module does not work with monochrome RAW files" #: ../src/iop/highpass.c:72 msgid "highpass" @@ -17286,50 +17864,50 @@ msgid "isolate high frequencies in the image" msgstr "Isolate high frequencies in the image" -#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:135 +#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:107 msgid "linear or non-linear, Lab, scene-referred" msgstr "Linear or non-linear, Lab, scene-referred" -#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:136 ../src/iop/sharpen.c:96 +#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:108 ../src/iop/sharpen.c:98 msgid "frequential, Lab" msgstr "Frequential, Lab" -#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:137 +#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:109 msgid "special, Lab, scene-referred" msgstr "Special, Lab, scene-referred" -#: ../src/iop/highpass.c:383 +#: ../src/iop/highpass.c:378 msgid "the sharpness of highpass filter" msgstr "The sharpness of highpass filter" -#: ../src/iop/highpass.c:387 +#: ../src/iop/highpass.c:382 msgid "the contrast of highpass filter" msgstr "The contrast of highpass filter" -#: ../src/iop/hotpixels.c:67 +#: ../src/iop/hotpixels.c:69 msgid "hot pixels" msgstr "Hot pixels" -#: ../src/iop/hotpixels.c:72 +#: ../src/iop/hotpixels.c:74 msgid "remove abnormally bright pixels by dampening them with neighbors" msgstr "Remove abnormally bright pixels by dampening them with neighbors" -#: ../src/iop/hotpixels.c:363 +#: ../src/iop/hotpixels.c:442 #, c-format msgid "fixed %d pixel" msgid_plural "fixed %d pixels" msgstr[0] "Fixed %d pixel" msgstr[1] "Fixed %d pixels" -#: ../src/iop/hotpixels.c:386 +#: ../src/iop/hotpixels.c:465 msgid "lower threshold for hot pixel" msgstr "Lower threshold for hot pixel" -#: ../src/iop/hotpixels.c:390 +#: ../src/iop/hotpixels.c:469 msgid "strength of hot pixel correction" msgstr "Strength of hot pixel correction" -#: ../src/iop/hotpixels.c:406 +#: ../src/iop/hotpixels.c:485 msgid "" "hot pixel correction\n" "only works for raw images." @@ -17337,62 +17915,62 @@ "Hot pixel correction\n" "Only works for raw images." -#: ../src/iop/invert.c:92 ../src/iop/invert.c:427 +#: ../src/iop/invert.c:106 ../src/iop/invert.c:442 #, c-format msgid "`%s' color matrix not found for 4bayer image" msgstr "`%s' color matrix not found for 4bayer image" -#: ../src/iop/invert.c:108 +#: ../src/iop/invert.c:125 msgid "invert" msgstr "Invert" -#: ../src/iop/invert.c:113 +#: ../src/iop/invert.c:130 msgid "this module is deprecated. please use the negadoctor module instead." msgstr "This module is deprecated. Please use the negadoctor module instead." -#: ../src/iop/invert.c:118 +#: ../src/iop/invert.c:135 msgid "invert film negatives" msgstr "Invert film negatives" -#: ../src/iop/invert.c:120 ../src/iop/invert.c:122 +#: ../src/iop/invert.c:137 ../src/iop/invert.c:139 msgid "linear, raw, display-referred" msgstr "Linear, raw, display-referred" #. Here we could provide more for monochrome special cases. As no monochrome camera #. has a bayer sensor we don't need g->RGB_to_CAM and g->CAM_to_RGB corrections -#: ../src/iop/invert.c:412 +#: ../src/iop/invert.c:427 msgid "brightness of film material" msgstr "Brightness of film material" -#: ../src/iop/invert.c:416 +#: ../src/iop/invert.c:431 msgid "color of film material" msgstr "Color of film material" -#: ../src/iop/invert.c:500 ../src/iop/negadoctor.c:847 +#: ../src/iop/invert.c:515 ../src/iop/negadoctor.c:866 msgid "pick color of film material from image" msgstr "Pick color of film material from image" -#: ../src/iop/invert.c:502 +#: ../src/iop/invert.c:517 msgid "select color of film material" msgstr "Select color of film material" -#: ../src/iop/lens.cc:230 +#: ../src/iop/lens.cc:251 msgid "lens correction" msgstr "Lens correction" -#: ../src/iop/lens.cc:235 +#: ../src/iop/lens.cc:256 msgid "vignette|chromatic aberrations|distortion" msgstr "vignette|chromatic aberrations|distortion" -#: ../src/iop/lens.cc:240 +#: ../src/iop/lens.cc:261 msgid "correct lenses optical flaws" msgstr "Correct lenses optical flaws" -#: ../src/iop/lens.cc:243 +#: ../src/iop/lens.cc:264 msgid "geometric and reconstruction, RGB" msgstr "Geometric and reconstruction, RGB" -#: ../src/iop/lens.cc:3148 +#: ../src/iop/lens.cc:3773 #, c-format msgid "" "maker:\t\t%s\n" @@ -17405,7 +17983,7 @@ "Mount:\t\t%s\n" "Crop factor:\t%.1f" -#: ../src/iop/lens.cc:3396 +#: ../src/iop/lens.cc:4026 #, c-format msgid "" "maker:\t\t%s\n" @@ -17424,31 +18002,31 @@ "Type:\t\t%s\n" "Mounts:\t%s" -#: ../src/iop/lens.cc:3442 +#: ../src/iop/lens.cc:4072 msgid "focal length (mm)" msgstr "Focal length (mm)" -#: ../src/iop/lens.cc:3468 +#: ../src/iop/lens.cc:4098 msgid "f/" msgstr "f/" -#: ../src/iop/lens.cc:3469 +#: ../src/iop/lens.cc:4099 msgid "f-number (aperture)" msgstr "f-number (aperture)" -#: ../src/iop/lens.cc:3485 +#: ../src/iop/lens.cc:4115 msgid "d" msgstr "d" -#: ../src/iop/lens.cc:3486 +#: ../src/iop/lens.cc:4116 msgid "distance to subject" msgstr "Distance to subject" -#: ../src/iop/lens.cc:3645 +#: ../src/iop/lens.cc:4277 msgid "camera/lens not found" msgstr "Camera/lens not found" -#: ../src/iop/lens.cc:3646 +#: ../src/iop/lens.cc:4278 msgid "" "please select your lens manually\n" "you might also want to check if your Lensfun database is up-to-date\n" @@ -17458,45 +18036,49 @@ "You might also want to check if your Lensfun database is up-to-date\n" "by running lensfun-update-data" -#: ../src/iop/lens.cc:3769 +#: ../src/iop/lens.cc:4423 msgid "camera model" msgstr "Camera model" -#: ../src/iop/lens.cc:3774 +#: ../src/iop/lens.cc:4428 msgid "find camera" msgstr "Find camera" -#: ../src/iop/lens.cc:3789 +#: ../src/iop/lens.cc:4443 msgid "find lens" msgstr "Find lens" #. scale -#: ../src/iop/lens.cc:3823 ../src/iop/vignette.c:968 -#: ../src/iop/watermark.c:1324 ../src/libs/export.c:1165 +#: ../src/iop/lens.cc:4477 ../src/iop/vignette.c:1055 +#: ../src/iop/watermark.c:1372 ../src/libs/export.c:1264 msgid "scale" msgstr "Scale" -#: ../src/iop/lens.cc:3828 +#: ../src/iop/lens.cc:4482 msgid "auto scale" msgstr "Auto scale" -#: ../src/iop/lens.cc:3832 +#: ../src/iop/lens.cc:4484 +msgid "automatic scale to available image size due to Lensfun data" +msgstr "Automatic scale to available image size due to Lensfun data" + +#: ../src/iop/lens.cc:4488 msgid "correct distortions or apply them" msgstr "Correct distortions or apply them" -#: ../src/iop/lens.cc:3839 +#: ../src/iop/lens.cc:4495 msgid "transversal chromatic aberration red" msgstr "Transversal Chromatic Aberration red" -#: ../src/iop/lens.cc:3843 +#: ../src/iop/lens.cc:4499 msgid "transversal chromatic aberration blue" msgstr "Transversal Chromatic Aberration blue" -#: ../src/iop/lens.cc:3849 +#: ../src/iop/lens.cc:4509 msgid "use latest algorithm" msgstr "Use latest algorithm" -#: ../src/iop/lens.cc:3851 +#: ../src/iop/lens.cc:4511 msgid "" "you're using an old version of the algorithm.\n" "once enabled, you won't be able to\n" @@ -17506,92 +18088,143 @@ "Once enabled, you won't be able to\n" "return back to old algorithm." -#: ../src/iop/lens.cc:3860 +#: ../src/iop/lens.cc:4521 +msgid "fine-tuning" +msgstr "Fine-tuning" + +#. DT_IOP_SECTION_FOR_PARAMS doesn't work in C++ so create section module manually +#: ../src/iop/lens.cc:4526 +msgid "fine-tune" +msgstr "Fine-tune" + +#: ../src/iop/lens.cc:4532 msgid "tune the warp and chromatic aberration correction" msgstr "Tune the warp and chromatic aberration correction" -#: ../src/iop/lens.cc:3864 +#: ../src/iop/lens.cc:4536 msgid "tune the vignette correction" msgstr "Tune the vignette correction" -#: ../src/iop/lens.cc:3868 +#: ../src/iop/lens.cc:4540 msgid "tune the TCA red correction" msgstr "Tune the TCA red correction" -#: ../src/iop/lens.cc:3872 +#: ../src/iop/lens.cc:4544 msgid "tune the TCA blue correction" msgstr "Tune the TCA blue correction" -#: ../src/iop/lens.cc:3879 +#: ../src/iop/lens.cc:4551 msgid "image scaling" msgstr "Image scaling" -#: ../src/iop/lens.cc:3891 +#: ../src/iop/lens.cc:4553 +msgid "automatic scale to available image size" +msgstr "Automatic scale to available image size" + +#: ../src/iop/lens.cc:4561 +msgid "" +"select a correction mode either based on\n" +" a) data and algorithms provided by the Lensfun project\n" +" b) embedded metadata provided by the camera or software vendor" +msgstr "" +"Select a correction mode either based on\n" +" a) data and algorithms provided by the Lensfun project\n" +" b) embedded metadata provided by the camera or software vendor" + +#: ../src/iop/lens.cc:4568 msgid "which corrections to apply" msgstr "Which corrections to apply" -#: ../src/iop/lens.cc:3904 +#: ../src/iop/lens.cc:4574 msgid "corrections done: " msgstr "Corrections done: " -#: ../src/iop/lens.cc:3906 +#: ../src/iop/lens.cc:4576 msgid "which corrections have actually been done" msgstr "Which corrections have actually been done" +#: ../src/iop/lens.cc:4595 +msgid "manual vignette correction" +msgstr "Manual vignette correction" + +#: ../src/iop/lens.cc:4599 +msgid "additional manually controlled optical vignetting correction" +msgstr "Additional manually controlled optical vignetting correction" + +#: ../src/iop/lens.cc:4602 +msgid "vignette" +msgstr "Vignette" + +#: ../src/iop/lens.cc:4606 +msgid "amount of the applied optical vignetting correction" +msgstr "Amount of the applied optical vignetting correction" + +#: ../src/iop/lens.cc:4608 +msgid "show applied optical vignette correction mask" +msgstr "Show applied optical vignette correction mask" + +#: ../src/iop/lens.cc:4618 +msgid "radius of uncorrected centre" +msgstr "Radius of uncorrected centre" + +#: ../src/iop/lens.cc:4624 +msgid "steepness of the correction effect outside of radius" +msgstr "Steepness of the correction effect outside of radius" + #: ../src/iop/levels.c:112 msgid "this module is deprecated. please use the RGB levels module instead." msgstr "This module is deprecated. Please use the RGB levels module instead." -#: ../src/iop/levels.c:117 ../src/iop/levels.c:630 ../src/iop/rgblevels.c:984 -#: ../src/iop/rgblevels.c:1014 +#: ../src/iop/levels.c:117 ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1022 +#: ../src/iop/rgblevels.c:1056 msgid "levels" msgstr "Levels" -#: ../src/iop/levels.c:137 +#: ../src/iop/levels.c:139 msgid "adjust black, white and mid-gray points" msgstr "Adjust black, white and mid-gray points" -#: ../src/iop/levels.c:628 ../src/iop/rgblevels.c:1016 +#: ../src/iop/levels.c:644 ../src/iop/rgblevels.c:1059 msgid "" "drag handles to set black, gray, and white points. operates on L channel." msgstr "" "Drag handles to set black, gray, and white points. Operates on L channel." -#: ../src/iop/levels.c:642 ../src/iop/rgblevels.c:1052 +#: ../src/iop/levels.c:658 ../src/iop/rgblevels.c:1108 msgid "apply auto levels" msgstr "Apply auto levels" -#: ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1027 +#: ../src/iop/levels.c:662 ../src/iop/rgblevels.c:1077 msgid "pick black point from image" msgstr "Pick black point from image" -#: ../src/iop/levels.c:650 ../src/iop/rgblevels.c:1033 +#: ../src/iop/levels.c:666 ../src/iop/rgblevels.c:1085 msgid "pick medium gray point from image" msgstr "Pick medium gray point from image" -#: ../src/iop/levels.c:654 ../src/iop/rgblevels.c:1039 +#: ../src/iop/levels.c:670 ../src/iop/rgblevels.c:1093 msgid "pick white point from image" msgstr "Pick white point from image" -#: ../src/iop/levels.c:667 ../src/iop/rgblevels.c:936 -#: ../src/iop/rgblevels.c:1026 +#: ../src/iop/levels.c:683 ../src/iop/rgblevels.c:968 +#: ../src/iop/rgblevels.c:1075 msgid "black" msgstr "Black" -#: ../src/iop/levels.c:668 +#: ../src/iop/levels.c:684 msgid "black percentile" msgstr "Black percentile" -#: ../src/iop/levels.c:672 +#: ../src/iop/levels.c:688 msgid "gray percentile" msgstr "Gray percentile" -#: ../src/iop/levels.c:675 ../src/iop/rgblevels.c:938 -#: ../src/iop/rgblevels.c:1038 +#: ../src/iop/levels.c:691 ../src/iop/rgblevels.c:970 +#: ../src/iop/rgblevels.c:1091 msgid "white" msgstr "White" -#: ../src/iop/levels.c:676 +#: ../src/iop/levels.c:692 msgid "white percentile" msgstr "White percentile" @@ -17603,11 +18236,11 @@ msgid "distort parts of the image" msgstr "Distort parts of the image" -#: ../src/iop/liquify.c:2933 +#: ../src/iop/liquify.c:2895 msgid "click to edit nodes" msgstr "Click to edit nodes" -#: ../src/iop/liquify.c:3636 +#: ../src/iop/liquify.c:3599 msgid "" "<b>add point</b>: click and drag\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17617,7 +18250,7 @@ "<b>Size</b>: scroll - <b>Strength</b>: Shift+scroll - <b>Direction</b>: " "Ctrl+scroll" -#: ../src/iop/liquify.c:3639 +#: ../src/iop/liquify.c:3602 msgid "" "<b>add line</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17627,7 +18260,7 @@ "<b>Size</b>: scroll - <b>Strength</b>: Shift+scroll - <b>Direction</b>: " "Ctrl+scroll" -#: ../src/iop/liquify.c:3642 +#: ../src/iop/liquify.c:3605 msgid "" "<b>add curve</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17637,7 +18270,7 @@ "<b>Size</b>: scroll - <b>Strength</b>: Shift+scroll - <b>Direction</b>: " "Ctrl+scroll" -#: ../src/iop/liquify.c:3693 +#: ../src/iop/liquify.c:3656 msgid "" "use a tool to add warps\n" "<b>remove a warp</b>: right-click" @@ -17645,48 +18278,48 @@ "Use a tool to add warps\n" "<b>Remove a warp</b>: right-click" -#: ../src/iop/liquify.c:3696 +#: ../src/iop/liquify.c:3659 msgid "warps|nodes count:" msgstr "Warps|nodes count:" -#: ../src/iop/liquify.c:3705 +#: ../src/iop/liquify.c:3668 msgid "edit, add and delete nodes" msgstr "Edit, add and delete nodes" -#: ../src/iop/liquify.c:3710 ../src/iop/liquify.c:3716 -#: ../src/iop/liquify.c:3722 ../src/iop/retouch.c:2238 -#: ../src/iop/retouch.c:2242 ../src/iop/retouch.c:2246 -#: ../src/iop/retouch.c:2250 ../src/iop/spots.c:883 ../src/iop/spots.c:888 -#: ../src/iop/spots.c:893 ../src/libs/masks.c:1816 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1834 ../src/libs/masks.c:1843 ../src/libs/masks.c:1852 +#: ../src/iop/liquify.c:3673 ../src/iop/liquify.c:3679 +#: ../src/iop/liquify.c:3685 ../src/iop/retouch.c:2465 +#: ../src/iop/retouch.c:2471 ../src/iop/retouch.c:2476 +#: ../src/iop/retouch.c:2481 ../src/iop/spots.c:885 ../src/iop/spots.c:890 +#: ../src/iop/spots.c:895 ../src/libs/masks.c:1812 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1830 ../src/libs/masks.c:1839 ../src/libs/masks.c:1848 msgid "shapes" msgstr "Shapes" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw curves" msgstr "Draw curves" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw multiple curves" msgstr "Draw multiple curves" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw lines" msgstr "Draw lines" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw multiple lines" msgstr "Draw multiple lines" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw points" msgstr "Draw points" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw multiple points" msgstr "Draw multiple points" -#: ../src/iop/liquify.c:3729 +#: ../src/iop/liquify.c:3692 msgid "" "<b>add node</b>: ctrl+click - <b>remove path</b>: right click\n" "<b>toggle line/curve</b>: ctrl+alt+click" @@ -17694,7 +18327,7 @@ "<b>Add node</b>: Ctrl+click - <b>Remove path</b>: right click\n" "<b>Toggle line/curve</b>: Ctrl+Alt+click" -#: ../src/iop/liquify.c:3732 +#: ../src/iop/liquify.c:3695 msgid "" "<b>move</b>: click and drag - <b>show/hide feathering controls</b>: click\n" "<b>autosmooth, cusp, smooth, symmetrical</b>: ctrl+click - <b>remove</b>: " @@ -17704,23 +18337,23 @@ "<b>Autosmooth, cusp, smooth, symmetrical</b>: Ctrl+click - <b>Remove</b>: " "right click" -#: ../src/iop/liquify.c:3736 ../src/iop/liquify.c:3738 +#: ../src/iop/liquify.c:3699 ../src/iop/liquify.c:3701 msgid "<b>shape of path</b>: drag" msgstr "<b>Shape of path</b>: drag" -#: ../src/iop/liquify.c:3740 +#: ../src/iop/liquify.c:3703 msgid "<b>radius</b>: drag" msgstr "<b>Radius</b>: drag" -#: ../src/iop/liquify.c:3742 +#: ../src/iop/liquify.c:3705 msgid "<b>hardness (center)</b>: drag" msgstr "<b>Hardness (center)</b>: drag" -#: ../src/iop/liquify.c:3744 +#: ../src/iop/liquify.c:3707 msgid "<b>hardness (feather)</b>: drag" msgstr "<b>Hardness (feather)</b>: drag" -#: ../src/iop/liquify.c:3746 +#: ../src/iop/liquify.c:3709 msgid "" "<b>strength</b>: drag\n" "<b>linear, grow, and shrink</b>: ctrl+click" @@ -17740,234 +18373,234 @@ msgid "linear, XYZ" msgstr "Linear, XYZ" -#: ../src/iop/lowlight.c:341 +#: ../src/iop/lowlight.c:338 msgid "indoor bright" msgstr "Indoor bright" -#: ../src/iop/lowlight.c:359 +#: ../src/iop/lowlight.c:356 msgid "indoor dim" msgstr "Indoor dim" -#: ../src/iop/lowlight.c:377 +#: ../src/iop/lowlight.c:374 msgid "indoor dark" msgstr "Indoor dark" -#: ../src/iop/lowlight.c:395 +#: ../src/iop/lowlight.c:392 msgid "twilight" msgstr "Twilight" -#: ../src/iop/lowlight.c:413 +#: ../src/iop/lowlight.c:410 msgid "night street lit" msgstr "Night street lit" -#: ../src/iop/lowlight.c:431 +#: ../src/iop/lowlight.c:428 msgid "night street" msgstr "Night street" -#: ../src/iop/lowlight.c:449 +#: ../src/iop/lowlight.c:446 msgid "night street dark" msgstr "Night street dark" -#: ../src/iop/lowlight.c:468 +#: ../src/iop/lowlight.c:465 msgid "night" msgstr "Night" -#: ../src/iop/lowlight.c:641 +#: ../src/iop/lowlight.c:639 msgid "dark" msgstr "Dark" -#: ../src/iop/lowlight.c:649 +#: ../src/iop/lowlight.c:647 msgid "bright" msgstr "Bright" -#: ../src/iop/lowlight.c:658 +#: ../src/iop/lowlight.c:656 msgid "day vision" msgstr "Day vision" -#: ../src/iop/lowlight.c:663 +#: ../src/iop/lowlight.c:661 msgid "night vision" msgstr "Night vision" -#: ../src/iop/lowlight.c:835 +#: ../src/iop/lowlight.c:833 msgid "blueness in shadows" msgstr "Blueness in shadows" -#: ../src/iop/lowpass.c:128 +#: ../src/iop/lowpass.c:100 msgid "lowpass" msgstr "Lowpass" -#: ../src/iop/lowpass.c:133 +#: ../src/iop/lowpass.c:105 msgid "isolate low frequencies in the image" msgstr "Isolate low frequencies in the image" -#: ../src/iop/lowpass.c:565 +#: ../src/iop/lowpass.c:578 msgid "local contrast mask" msgstr "Local contrast mask" -#: ../src/iop/lowpass.c:590 +#: ../src/iop/lowpass.c:603 msgid "radius of gaussian/bilateral blur" msgstr "Radius of gaussian/bilateral blur" -#: ../src/iop/lowpass.c:591 +#: ../src/iop/lowpass.c:604 msgid "contrast of lowpass filter" msgstr "Contrast of lowpass filter" -#: ../src/iop/lowpass.c:592 +#: ../src/iop/lowpass.c:605 msgid "brightness adjustment of lowpass filter" msgstr "Brightness adjustment of lowpass filter" -#: ../src/iop/lowpass.c:593 +#: ../src/iop/lowpass.c:606 msgid "color saturation of lowpass filter" msgstr "Color saturation of lowpass filter" -#: ../src/iop/lowpass.c:594 +#: ../src/iop/lowpass.c:607 msgid "which filter to use for blurring" msgstr "Which filter to use for blurring" -#: ../src/iop/lut3d.c:135 +#: ../src/iop/lut3d.c:136 msgid "LUT 3D" msgstr "LUT 3D" -#: ../src/iop/lut3d.c:140 +#: ../src/iop/lut3d.c:141 msgid "perform color space corrections and apply look" msgstr "Perform color space corrections and apply look" -#: ../src/iop/lut3d.c:143 +#: ../src/iop/lut3d.c:144 msgid "defined by profile, RGB" msgstr "Defined by profile, RGB" -#: ../src/iop/lut3d.c:468 +#: ../src/iop/lut3d.c:486 msgid "error allocating buffer for gmz LUT" msgstr "Error allocating buffer for gmz LUT" -#: ../src/iop/lut3d.c:494 +#: ../src/iop/lut3d.c:512 #, c-format msgid "invalid png file %s" msgstr "Invalid PNG file %s" -#: ../src/iop/lut3d.c:502 +#: ../src/iop/lut3d.c:520 #, c-format -msgid "png bit-depth %d not supported" -msgstr "PNG bit-depth %d not supported" +msgid "png bit depth %d is not supported" +msgstr "PNG bit depth %d is not supported" -#: ../src/iop/lut3d.c:516 ../src/iop/lut3d.c:526 +#: ../src/iop/lut3d.c:534 ../src/iop/lut3d.c:544 #, c-format msgid "invalid level in png file %d %d" msgstr "Invalid level in PNG file %d %d" -#: ../src/iop/lut3d.c:521 +#: ../src/iop/lut3d.c:539 msgid "this darktable build is not compatible with compressed CLUT" msgstr "This Darktable build is not compatible with compressed CLUT" -#: ../src/iop/lut3d.c:538 ../src/iop/lut3d.c:788 +#: ../src/iop/lut3d.c:556 ../src/iop/lut3d.c:808 #, c-format msgid "error - LUT 3D size %d exceeds the maximum supported" msgstr "Error - LUT 3D size %d exceeds the maximum supported" -#: ../src/iop/lut3d.c:550 +#: ../src/iop/lut3d.c:568 msgid "error allocating buffer for png LUT" msgstr "Error allocating buffer for PNG LUT" -#: ../src/iop/lut3d.c:558 +#: ../src/iop/lut3d.c:576 #, c-format msgid "error - could not read png image %s" msgstr "Error - could not read PNG image %s" -#: ../src/iop/lut3d.c:568 +#: ../src/iop/lut3d.c:586 msgid "error - allocating buffer for png LUT" msgstr "Error - allocating buffer for PNG LUT" -#: ../src/iop/lut3d.c:743 +#: ../src/iop/lut3d.c:761 #, c-format msgid "error - invalid cube file: %s" msgstr "Error - invalid cube file: %s" -#: ../src/iop/lut3d.c:757 -msgid "DOMAIN MIN <> 0.0 is not supported" -msgstr "DOMAIN MIN <> 0.0 is not supported" - -#: ../src/iop/lut3d.c:768 -msgid "DOMAIN MAX <> 1.0 is not supported" -msgstr "DOMAIN MAX <> 1.0 is not supported" +#: ../src/iop/lut3d.c:775 +msgid "DOMAIN MIN other than 0 is not supported" +msgstr "DOMAIN MIN other than 0 is not supported" + +#: ../src/iop/lut3d.c:787 +msgid "DOMAIN MAX other than 1 is not supported" +msgstr "DOMAIN MAX other than 1 is not supported" -#: ../src/iop/lut3d.c:777 +#: ../src/iop/lut3d.c:797 msgid "1D cube LUT is not supported" msgstr "1D cube LUT is not supported" -#: ../src/iop/lut3d.c:799 +#: ../src/iop/lut3d.c:819 msgid "error - allocating buffer for cube LUT" msgstr "Error - allocating buffer for cube LUT" -#: ../src/iop/lut3d.c:810 +#: ../src/iop/lut3d.c:830 msgid "error - cube LUT size is not defined" msgstr "Error - cube LUT size is not defined" -#: ../src/iop/lut3d.c:821 +#: ../src/iop/lut3d.c:841 #, c-format msgid "error - cube LUT invalid number line %d" msgstr "Error - cube LUT invalid number line %d" -#: ../src/iop/lut3d.c:837 +#: ../src/iop/lut3d.c:857 #, c-format msgid "error - cube LUT lines number %d is not correct, should be %d" msgstr "Error - cube LUT lines number %d is not correct, should be %d" -#: ../src/iop/lut3d.c:847 +#: ../src/iop/lut3d.c:867 #, c-format msgid "warning - cube LUT has %d values out of range [0,1]" msgstr "Warning - cube LUT has %d values out of range [0,1]" -#: ../src/iop/lut3d.c:872 +#: ../src/iop/lut3d.c:892 #, c-format msgid "error - invalid 3dl file: %s" msgstr "Error - invalid 3dl file: %s" -#: ../src/iop/lut3d.c:893 +#: ../src/iop/lut3d.c:913 #, c-format msgid "error - the maximum shaper LUT value %d is too low" msgstr "Error - the maximum shaper LUT value %d is too low" -#: ../src/iop/lut3d.c:904 +#: ../src/iop/lut3d.c:924 msgid "error - allocating buffer for 3dl LUT" msgstr "Error - allocating buffer for 3dl LUT" -#: ../src/iop/lut3d.c:917 +#: ../src/iop/lut3d.c:937 msgid "error - 3dl LUT size is not defined" msgstr "Error - 3dl LUT size is not defined" -#: ../src/iop/lut3d.c:945 +#: ../src/iop/lut3d.c:965 msgid "error - 3dl LUT lines number is not correct" msgstr "Error - 3dl LUT lines number is not correct" -#: ../src/iop/lut3d.c:961 +#: ../src/iop/lut3d.c:981 msgid "error - the maximum LUT value does not match any valid bit depth" msgstr "Error - the maximum LUT value does not match any valid bit depth" -#: ../src/iop/lut3d.c:1539 +#: ../src/iop/lut3d.c:1553 msgid "LUT root folder not defined" msgstr "LUT root folder not defined" -#: ../src/iop/lut3d.c:1545 +#: ../src/iop/lut3d.c:1559 msgid "select LUT file" msgstr "Select LUT file" -#: ../src/iop/lut3d.c:1546 +#: ../src/iop/lut3d.c:1560 msgid "_select" msgstr "_Select" -#: ../src/iop/lut3d.c:1566 +#: ../src/iop/lut3d.c:1580 msgid "hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" msgstr "Hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" -#: ../src/iop/lut3d.c:1568 +#: ../src/iop/lut3d.c:1582 msgid "hald CLUT (png) or 3D LUT (cube or 3dl)" msgstr "Hald CLUT (png) or 3D LUT (cube or 3dl)" -#: ../src/iop/lut3d.c:1592 +#: ../src/iop/lut3d.c:1606 msgid "select file outside LUT root folder is not allowed" msgstr "Select file outside LUT root folder is not allowed" -#: ../src/iop/lut3d.c:1663 +#: ../src/iop/lut3d.c:1677 msgid "" "select a png (haldclut), a cube, a 3dl or a gmz (compressed LUT) file " "CAUTION: 3D LUT folder must be set in preferences/processing before choosing " @@ -17977,7 +18610,7 @@ "CAUTION: 3D LUT folder must be set in Preferences/Processing before choosing " "the LUT file" -#: ../src/iop/lut3d.c:1667 +#: ../src/iop/lut3d.c:1681 msgid "" "select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be " "set in preferences/processing before choosing the LUT file" @@ -17985,7 +18618,7 @@ "Select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be " "set in Preferences/Processing before choosing the LUT file" -#: ../src/iop/lut3d.c:1679 +#: ../src/iop/lut3d.c:1693 msgid "" "the file path (relative to LUT folder) is saved with image along with the " "LUT data if it's a compressed LUT (gmz)" @@ -17993,7 +18626,7 @@ "The file path (relative to LUT folder) is saved with image along with the " "LUT data if it's a compressed LUT (gmz)" -#: ../src/iop/lut3d.c:1682 +#: ../src/iop/lut3d.c:1696 msgid "" "the file path (relative to LUT folder) is saved with image (and not the LUT " "data themselves)" @@ -18001,44 +18634,44 @@ "The file path (relative to LUT folder) is saved with image (and not the LUT " "data themselves)" -#: ../src/iop/lut3d.c:1691 +#: ../src/iop/lut3d.c:1705 msgid "enter LUT name" msgstr "Enter LUT name" -#: ../src/iop/lut3d.c:1712 +#: ../src/iop/lut3d.c:1726 msgid "select the LUT" msgstr "Select the LUT" -#: ../src/iop/lut3d.c:1725 +#: ../src/iop/lut3d.c:1739 msgid "select the color space in which the LUT has to be applied" msgstr "Select the color space in which the LUT has to be applied" -#: ../src/iop/lut3d.c:1727 +#: ../src/iop/lut3d.c:1741 msgid "interpolation" msgstr "Interpolation" -#: ../src/iop/lut3d.c:1728 +#: ../src/iop/lut3d.c:1742 msgid "select the interpolation method" msgstr "Select the interpolation method" -#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:62 +#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:63 msgid "mask manager" msgstr "Mask manager" -#: ../src/iop/monochrome.c:97 +#: ../src/iop/monochrome.c:99 msgid "quickly convert an image to black & white using a variable color filter" msgstr "" "Quickly convert an image to black & white using a variable color filter" -#: ../src/iop/monochrome.c:127 +#: ../src/iop/monochrome.c:153 msgid "red filter" msgstr "Red filter" -#: ../src/iop/monochrome.c:546 +#: ../src/iop/monochrome.c:568 msgid "drag and scroll mouse wheel to adjust the virtual color filter" msgstr "Drag and scroll mouse wheel to adjust the virtual color filter" -#: ../src/iop/monochrome.c:562 +#: ../src/iop/monochrome.c:584 msgid "how much to keep highlights" msgstr "How much to keep highlights" @@ -18054,35 +18687,35 @@ msgid "invert film negative scans and simulate printing on paper" msgstr "Invert film negative scans and simulate printing on paper" -#: ../src/iop/negadoctor.c:469 +#: ../src/iop/negadoctor.c:483 msgid "D min" msgstr "D min" -#: ../src/iop/negadoctor.c:475 ../src/iop/negadoctor.c:856 +#: ../src/iop/negadoctor.c:489 ../src/iop/negadoctor.c:875 msgid "D min red component" msgstr "D min red component" #. Page FILM PROPERTIES -#: ../src/iop/negadoctor.c:832 +#: ../src/iop/negadoctor.c:851 msgid "film properties" msgstr "Film properties" #. Dmin -#: ../src/iop/negadoctor.c:836 +#: ../src/iop/negadoctor.c:855 msgctxt "section" msgid "color of the film base" msgstr "Color of the film base" -#: ../src/iop/negadoctor.c:842 +#: ../src/iop/negadoctor.c:861 msgid "select color of film material from a swatch" msgstr "Select color of film material from a swatch" -#: ../src/iop/negadoctor.c:848 +#: ../src/iop/negadoctor.c:867 msgid "film material" msgstr "Film material" -#: ../src/iop/negadoctor.c:857 ../src/iop/negadoctor.c:867 -#: ../src/iop/negadoctor.c:877 +#: ../src/iop/negadoctor.c:876 ../src/iop/negadoctor.c:886 +#: ../src/iop/negadoctor.c:896 msgid "" "adjust the color and shade of the film transparent base.\n" "this value depends on the film material, \n" @@ -18094,21 +18727,21 @@ "the chemical fog produced while developing the film,\n" "and the scanner white balance." -#: ../src/iop/negadoctor.c:866 +#: ../src/iop/negadoctor.c:885 msgid "D min green component" msgstr "D min green component" -#: ../src/iop/negadoctor.c:876 +#: ../src/iop/negadoctor.c:895 msgid "D min blue component" msgstr "D min blue component" #. D max and scanner bias -#: ../src/iop/negadoctor.c:884 +#: ../src/iop/negadoctor.c:903 msgctxt "section" msgid "dynamic range of the film" msgstr "Dynamic range of the film" -#: ../src/iop/negadoctor.c:888 +#: ../src/iop/negadoctor.c:907 msgid "" "maximum density of the film, corresponding to white after inversion.\n" "this value depends on the film specifications, the developing process,\n" @@ -18118,12 +18751,12 @@ "This value depends on the film specifications, the developing process,\n" "the dynamic range of the scene and the scanner exposure settings." -#: ../src/iop/negadoctor.c:892 +#: ../src/iop/negadoctor.c:911 msgctxt "section" msgid "scanner exposure settings" msgstr "Scanner exposure settings" -#: ../src/iop/negadoctor.c:896 +#: ../src/iop/negadoctor.c:915 msgid "" "correct the exposure of the scanner, for all RGB channels,\n" "before the inversion, so blacks are neither clipped or too pale." @@ -18132,25 +18765,25 @@ "before the inversion, so blacks are neither clipped or too pale." #. WB shadows -#: ../src/iop/negadoctor.c:903 +#: ../src/iop/negadoctor.c:922 msgctxt "section" msgid "shadows color cast" msgstr "Shadows color cast" -#: ../src/iop/negadoctor.c:909 +#: ../src/iop/negadoctor.c:928 msgid "select color of shadows from a swatch" msgstr "Select color of shadows from a swatch" -#: ../src/iop/negadoctor.c:914 +#: ../src/iop/negadoctor.c:933 msgid "pick shadows color from image" msgstr "Pick shadows color from image" -#: ../src/iop/negadoctor.c:920 +#: ../src/iop/negadoctor.c:939 msgid "shadows red offset" msgstr "Shadows red offset" -#: ../src/iop/negadoctor.c:921 ../src/iop/negadoctor.c:928 -#: ../src/iop/negadoctor.c:935 +#: ../src/iop/negadoctor.c:940 ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:954 msgid "" "correct the color cast in shadows so blacks are\n" "truly achromatic. Setting this value before\n" @@ -18162,34 +18795,34 @@ "the highlights illuminant white balance will help\n" "recovering the global white balance in difficult cases." -#: ../src/iop/negadoctor.c:927 +#: ../src/iop/negadoctor.c:946 msgid "shadows green offset" msgstr "Shadows green offset" -#: ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:953 msgid "shadows blue offset" msgstr "Shadows blue offset" #. WB highlights -#: ../src/iop/negadoctor.c:941 +#: ../src/iop/negadoctor.c:960 msgctxt "section" msgid "highlights white balance" msgstr "Highlights white balance" -#: ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:966 msgid "select color of illuminant from a swatch" msgstr "Select color of illuminant from a swatch" -#: ../src/iop/negadoctor.c:952 +#: ../src/iop/negadoctor.c:971 msgid "pick illuminant color from image" msgstr "Pick illuminant color from image" -#: ../src/iop/negadoctor.c:958 +#: ../src/iop/negadoctor.c:977 msgid "illuminant red gain" msgstr "Illuminant red gain" -#: ../src/iop/negadoctor.c:959 ../src/iop/negadoctor.c:966 -#: ../src/iop/negadoctor.c:973 +#: ../src/iop/negadoctor.c:978 ../src/iop/negadoctor.c:985 +#: ../src/iop/negadoctor.c:992 msgid "" "correct the color of the illuminant so whites are\n" "truly achromatic. Setting this value after\n" @@ -18201,26 +18834,26 @@ "the shadows color cast will help\n" "recovering the global white balance in difficult cases." -#: ../src/iop/negadoctor.c:965 +#: ../src/iop/negadoctor.c:984 msgid "illuminant green gain" msgstr "Illuminant green gain" -#: ../src/iop/negadoctor.c:972 +#: ../src/iop/negadoctor.c:991 msgid "illuminant blue gain" msgstr "Illuminant blue gain" #. Page PRINT PROPERTIES -#: ../src/iop/negadoctor.c:979 +#: ../src/iop/negadoctor.c:998 msgid "print properties" msgstr "Print properties" #. print corrections -#: ../src/iop/negadoctor.c:982 +#: ../src/iop/negadoctor.c:1001 msgctxt "section" msgid "virtual paper properties" msgstr "Virtual paper properties" -#: ../src/iop/negadoctor.c:988 +#: ../src/iop/negadoctor.c:1007 msgid "" "correct the density of black after the inversion,\n" "to adjust the global contrast while avoiding clipping shadows." @@ -18228,7 +18861,7 @@ "Correct the density of black after the inversion,\n" "to adjust the global contrast while avoiding clipping shadows." -#: ../src/iop/negadoctor.c:993 +#: ../src/iop/negadoctor.c:1012 msgid "" "select the grade of the virtual paper, which is actually\n" "equivalent to applying a gamma. it compensates the film D max\n" @@ -18238,7 +18871,7 @@ "equivalent to applying a gamma. It compensates the film D max\n" "and recovers the contrast. Use a high grade for high D max." -#: ../src/iop/negadoctor.c:1001 +#: ../src/iop/negadoctor.c:1020 msgid "" "gradually compress specular highlights past this value\n" "to avoid clipping while pushing the exposure for mid-tones.\n" @@ -18248,12 +18881,12 @@ "to avoid clipping while pushing the exposure for mid-tones.\n" "This somewhat reproduces the behavior of matte paper." -#: ../src/iop/negadoctor.c:1005 +#: ../src/iop/negadoctor.c:1024 msgctxt "section" msgid "virtual print emulation" msgstr "Virtual print emulation" -#: ../src/iop/negadoctor.c:1012 +#: ../src/iop/negadoctor.c:1031 msgid "" "correct the printing exposure after inversion to adjust\n" "the global contrast and avoid clipping highlights." @@ -18261,51 +18894,83 @@ "Correct the printing exposure after inversion to adjust\n" "the global contrast and avoid clipping highlights." -#: ../src/iop/negadoctor.c:1020 +#: ../src/iop/negadoctor.c:1039 msgid "toggle on or off the color controls" msgstr "Toggle on or off the color controls" -#: ../src/iop/nlmeans.c:84 +#: ../src/iop/nlmeans.c:78 msgid "astrophoto denoise" msgstr "Astrophoto denoise" -#: ../src/iop/nlmeans.c:89 +#: ../src/iop/nlmeans.c:83 msgid "denoise (non-local means)" msgstr "Denoise (non-local means)" -#: ../src/iop/nlmeans.c:94 +#: ../src/iop/nlmeans.c:88 msgid "apply a poisson noise removal best suited for astrophotography" msgstr "Apply a poisson noise removal best suited for astrophotography" -#: ../src/iop/nlmeans.c:459 +#: ../src/iop/nlmeans.c:462 msgid "radius of the patches to match" msgstr "Radius of the patches to match" -#: ../src/iop/nlmeans.c:467 +#: ../src/iop/nlmeans.c:470 msgid "how much to smooth brightness" msgstr "How much to smooth brightness" -#: ../src/iop/nlmeans.c:470 +#: ../src/iop/nlmeans.c:473 msgid "how much to smooth colors" msgstr "How much to smooth colors" #. * let's fill the encapsulating widgets #. preview mode #. color scheme -#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2419 -#: ../src/views/darkroom.c:2437 ../src/views/darkroom.c:2444 -#: ../src/views/darkroom.c:2454 ../src/views/darkroom.c:2471 +#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2258 +#: ../src/views/darkroom.c:2276 ../src/views/darkroom.c:2283 +#: ../src/views/darkroom.c:2293 ../src/views/darkroom.c:2310 msgid "overexposed" msgstr "Overexposed" -#: ../src/iop/overexposed.c:130 ../src/iop/overexposed.c:360 +#: ../src/iop/overexposed.c:123 ../src/iop/overexposed.c:352 msgid "module overexposed failed in buffer allocation" msgstr "Module overexposed failed in buffer allocation" -#: ../src/iop/overexposed.c:156 ../src/iop/overexposed.c:370 +#: ../src/iop/overexposed.c:149 ../src/iop/overexposed.c:362 msgid "module overexposed failed in color conversion" msgstr "Module overexposed failed in color conversion" +#: ../src/iop/primaries.c:74 +msgid "rgb primaries" +msgstr "RGB primaries" + +#: ../src/iop/primaries.c:79 +msgid "adjustment of the RGB color primaries for color grading" +msgstr "Adjustment of the RGB color primaries for color grading" + +#: ../src/iop/primaries.c:395 +msgid "shift red towards yellow or magenta" +msgstr "Shift red towards yellow or magenta" + +#: ../src/iop/primaries.c:396 +msgid "red primary purity" +msgstr "Red primary purity" + +#: ../src/iop/primaries.c:397 +msgid "shift green towards cyan or yellow" +msgstr "Shift green towards cyan or yellow" + +#: ../src/iop/primaries.c:398 +msgid "green primary purity" +msgstr "Green primary purity" + +#: ../src/iop/primaries.c:399 +msgid "shift blue towards magenta or cyan" +msgstr "Shift blue towards magenta or cyan" + +#: ../src/iop/primaries.c:400 +msgid "blue primary purity" +msgstr "Blue primary purity" + #: ../src/iop/profile_gamma.c:96 msgid "unbreak input profile" msgstr "Unbreak input profile" @@ -18314,39 +18979,39 @@ msgid "correct input color profiles meant to be applied on non-linear RGB" msgstr "Correct input color profiles meant to be applied on non-linear RGB" -#: ../src/iop/profile_gamma.c:136 +#: ../src/iop/profile_gamma.c:138 msgid "16 EV dynamic range (generic)" msgstr "16 EV dynamic range (generic)" -#: ../src/iop/profile_gamma.c:142 +#: ../src/iop/profile_gamma.c:144 msgid "14 EV dynamic range (generic)" msgstr "14 EV dynamic range (generic)" -#: ../src/iop/profile_gamma.c:148 +#: ../src/iop/profile_gamma.c:150 msgid "12 EV dynamic range (generic)" msgstr "12 EV dynamic range (generic)" -#: ../src/iop/profile_gamma.c:154 +#: ../src/iop/profile_gamma.c:156 msgid "10 EV dynamic range (generic)" msgstr "10 EV dynamic range (generic)" -#: ../src/iop/profile_gamma.c:160 +#: ../src/iop/profile_gamma.c:162 msgid "08 EV dynamic range (generic)" msgstr "08 EV dynamic range (generic)" -#: ../src/iop/profile_gamma.c:623 +#: ../src/iop/profile_gamma.c:637 msgid "linear part" msgstr "Linear part" -#: ../src/iop/profile_gamma.c:627 +#: ../src/iop/profile_gamma.c:641 msgid "gamma exponential factor" msgstr "Gamma exponential factor" -#: ../src/iop/profile_gamma.c:638 +#: ../src/iop/profile_gamma.c:652 msgid "adjust to match the average luma of the subject" msgstr "Adjust to match the average luma of the subject" -#: ../src/iop/profile_gamma.c:644 +#: ../src/iop/profile_gamma.c:658 msgid "" "number of stops between middle gray and pure black\n" "this is a reading a light meter would give you on the scene" @@ -18354,7 +19019,7 @@ "Number of stops between middle gray and pure black\n" "This is a reading a light meter would give you on the scene" -#: ../src/iop/profile_gamma.c:650 +#: ../src/iop/profile_gamma.c:664 msgid "" "number of stops between pure black and pure white\n" "this is a reading a light meter would give you on the scene" @@ -18362,36 +19027,36 @@ "Number of stops between pure black and pure white\n" "This is a reading a light meter would give you on the scene" -#: ../src/iop/profile_gamma.c:652 +#: ../src/iop/profile_gamma.c:666 msgctxt "section" msgid "optimize automatically" msgstr "Optimize automatically" -#: ../src/iop/profile_gamma.c:656 +#: ../src/iop/profile_gamma.c:670 msgid "" -"enlarge or shrink the computed dynamic range\n" -"this is useful when noise perturbates the measurements" +"increase or decrease the computed dynamic range\n" +"this is useful when noise distorts the measurement" msgstr "" -"Enlarge or shrink the computed dynamic range\n" -"This is useful when noise perturbates the measurements" +"Increase or decrease the computed dynamic range\n" +"This is useful when noise distorts the measurement" -#: ../src/iop/profile_gamma.c:660 +#: ../src/iop/profile_gamma.c:674 msgid "make an optimization with some guessing" msgstr "Make an optimization with some guessing" -#: ../src/iop/profile_gamma.c:669 +#: ../src/iop/profile_gamma.c:683 msgid "tone mapping method" msgstr "Tone mapping method" -#: ../src/iop/rawdenoise.c:124 +#: ../src/iop/rawdenoise.c:138 msgid "raw denoise" msgstr "Raw denoise" -#: ../src/iop/rawdenoise.c:129 +#: ../src/iop/rawdenoise.c:143 msgid "denoise the raw picture early in the pipeline" msgstr "Denoise the raw picture early in the pipeline" -#: ../src/iop/rawdenoise.c:939 +#: ../src/iop/rawdenoise.c:955 msgid "" "raw denoising\n" "only works for raw images." @@ -18401,9 +19066,9 @@ #. * let's fill the encapsulating widgets #. mode of operation -#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2387 ../src/views/darkroom.c:2393 -#: ../src/views/darkroom.c:2406 +#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2226 ../src/views/darkroom.c:2232 +#: ../src/views/darkroom.c:2245 msgid "raw overexposed" msgstr "Raw overexposed" @@ -18412,7 +19077,7 @@ msgid "raw black/white point" msgstr "Raw black/white point" -#: ../src/iop/rawprepare.c:156 +#: ../src/iop/rawprepare.c:172 msgid "" "sets technical specificities of the raw sensor.\n" "touch with great care!" @@ -18420,62 +19085,62 @@ "Sets technical specificities of the raw sensor.\n" "Touch with great care!" -#: ../src/iop/rawprepare.c:168 +#: ../src/iop/rawprepare.c:184 msgid "passthrough" msgstr "Passthrough" -#: ../src/iop/rawprepare.c:655 +#: ../src/iop/rawprepare.c:663 msgid "invalid crop parameters" msgstr "Invalid crop parameters" -#: ../src/iop/rawprepare.c:656 +#: ../src/iop/rawprepare.c:664 msgid "" "please reset to defaults, update your preset or set to something correct" msgstr "" "Please reset to defaults, update your preset or set to something correct" -#: ../src/iop/rawprepare.c:922 +#: ../src/iop/rawprepare.c:930 msgid "black level 0" msgstr "Black level 0" -#: ../src/iop/rawprepare.c:923 +#: ../src/iop/rawprepare.c:931 msgid "black level 1" msgstr "Black level 1" -#: ../src/iop/rawprepare.c:924 +#: ../src/iop/rawprepare.c:932 msgid "black level 2" msgstr "Black level 2" -#: ../src/iop/rawprepare.c:925 +#: ../src/iop/rawprepare.c:933 msgid "black level 3" msgstr "Black level 3" -#: ../src/iop/rawprepare.c:952 +#: ../src/iop/rawprepare.c:960 msgid "raw flat field correction to compensate for lens shading" msgstr "Raw flat field correction to compensate for lens shading" -#: ../src/iop/rawprepare.c:957 +#: ../src/iop/rawprepare.c:965 msgctxt "section" msgid "crop" msgstr "Crop" -#: ../src/iop/rawprepare.c:960 +#: ../src/iop/rawprepare.c:968 msgid "crop left border" msgstr "Crop left border" -#: ../src/iop/rawprepare.c:964 +#: ../src/iop/rawprepare.c:972 msgid "crop top border" msgstr "Crop top border" -#: ../src/iop/rawprepare.c:968 +#: ../src/iop/rawprepare.c:976 msgid "crop right border" msgstr "Crop right border" -#: ../src/iop/rawprepare.c:972 +#: ../src/iop/rawprepare.c:980 msgid "crop bottom border" msgstr "Crop bottom border" -#: ../src/iop/rawprepare.c:981 +#: ../src/iop/rawprepare.c:989 msgid "" "raw black/white point correction\n" "only works for the sensors that need it." @@ -18501,11 +19166,11 @@ msgstr "" "This module is deprecated. Please use the tone equalizer module instead." -#: ../src/iop/relight.c:263 +#: ../src/iop/relight.c:259 msgid "the fill-light in EV" msgstr "The fill-light in EV" -#: ../src/iop/relight.c:272 +#: ../src/iop/relight.c:268 msgid "" "select the center of fill-light\n" "ctrl+click to select an area" @@ -18513,16 +19178,11 @@ "Select the center of fill-light\n" "Ctrl+click to select an area" -#: ../src/iop/relight.c:276 +#: ../src/iop/relight.c:272 msgid "toggle tool for picking median lightness in image" msgstr "Toggle tool for picking median lightness in image" -#: ../src/iop/relight.c:279 ../src/libs/export.c:1131 -#: ../src/libs/metadata_view.c:147 ../src/libs/print_settings.c:2537 -msgid "width" -msgstr "Width" - -#: ../src/iop/relight.c:280 +#: ../src/iop/relight.c:276 msgid "width of fill-light area defined in zones" msgstr "Width of fill-light area defined in zones" @@ -18542,29 +19202,29 @@ msgid "geometric and frequential, RGB" msgstr "Geometric and frequential, RGB" -#: ../src/iop/retouch.c:1538 +#: ../src/iop/retouch.c:1689 msgid "cannot display scales when the blending mask is displayed" msgstr "Cannot display scales when the blending mask is displayed" -#: ../src/iop/retouch.c:1861 ../src/iop/retouch.c:1863 -#: ../src/iop/retouch.c:1865 ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2045 ../src/iop/retouch.c:2047 +#: ../src/iop/retouch.c:2049 ../src/iop/retouch.c:2051 #, c-format msgid "default tool changed to %s" msgstr "Default tool changed to %s" -#: ../src/iop/retouch.c:1861 +#: ../src/iop/retouch.c:2045 msgid "cloning" msgstr "Cloning" -#: ../src/iop/retouch.c:1863 +#: ../src/iop/retouch.c:2047 msgid "healing" msgstr "Healing" -#: ../src/iop/retouch.c:2226 +#: ../src/iop/retouch.c:2448 msgid "shapes:" msgstr "Shapes:" -#: ../src/iop/retouch.c:2230 +#: ../src/iop/retouch.c:2454 msgid "" "to add a shape select an algorithm and a shape type and click on the image.\n" "shapes are added to the current scale" @@ -18572,77 +19232,73 @@ "To add a shape select an algorithm and a shape type and click on the image.\n" "Shapes are added to the current scale" -#. display & suppress masks -#. copy/paste shapes -#. display final image/current scale -#. auto-levels button -#: ../src/iop/retouch.c:2233 ../src/iop/retouch.c:2334 -#: ../src/iop/retouch.c:2339 ../src/iop/retouch.c:2347 -#: ../src/iop/retouch.c:2351 ../src/iop/retouch.c:2358 -#: ../src/iop/retouch.c:2392 +#: ../src/iop/retouch.c:2458 ../src/iop/retouch.c:2591 +#: ../src/iop/retouch.c:2597 ../src/iop/retouch.c:2606 +#: ../src/iop/retouch.c:2611 ../src/iop/retouch.c:2619 +#: ../src/iop/retouch.c:2664 msgid "editing" msgstr "Editing" -#: ../src/iop/retouch.c:2233 +#: ../src/iop/retouch.c:2459 msgid "show and edit shapes on the current scale" msgstr "Show and edit shapes on the current scale" -#: ../src/iop/retouch.c:2234 +#: ../src/iop/retouch.c:2460 msgid "show and edit shapes in restricted mode" msgstr "Show and edit shapes in restricted mode" -#: ../src/iop/retouch.c:2257 +#: ../src/iop/retouch.c:2489 msgid "algorithms:" msgstr "Algorithms:" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2498 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2510 msgid "tools" msgstr "Tools" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2278 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2518 msgid "activate blur tool" msgstr "Activate blur tool" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2493 ../src/iop/retouch.c:2499 +#: ../src/iop/retouch.c:2505 ../src/iop/retouch.c:2511 msgid "change algorithm for current form" msgstr "Change algorithm for current form" -#: ../src/iop/retouch.c:2264 ../src/iop/retouch.c:2281 +#: ../src/iop/retouch.c:2498 ../src/iop/retouch.c:2521 msgid "activate fill tool" msgstr "Activate fill tool" -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2284 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2524 msgid "activate cloning tool" msgstr "Activate cloning tool" -#: ../src/iop/retouch.c:2272 ../src/iop/retouch.c:2287 +#: ../src/iop/retouch.c:2510 ../src/iop/retouch.c:2527 msgid "activate healing tool" msgstr "Activate healing tool" #. overwrite tooltip ourself to handle shift+click -#: ../src/iop/retouch.c:2276 +#: ../src/iop/retouch.c:2516 msgid "ctrl+click to change tool for current form" msgstr "Ctrl+click to change tool for current form" -#: ../src/iop/retouch.c:2277 +#: ../src/iop/retouch.c:2517 msgid "shift+click to set the tool as default" msgstr "Shift+click to set the tool as default" -#: ../src/iop/retouch.c:2296 +#: ../src/iop/retouch.c:2537 msgid "scales:" msgstr "Scales:" -#: ../src/iop/retouch.c:2301 +#: ../src/iop/retouch.c:2544 msgid "current:" msgstr "Current:" -#: ../src/iop/retouch.c:2306 +#: ../src/iop/retouch.c:2551 msgid "merge from:" msgstr "Merge from:" -#: ../src/iop/retouch.c:2314 +#: ../src/iop/retouch.c:2562 msgid "" "top slider adjusts where the merge scales start\n" "bottom slider adjusts the number of scales\n" @@ -18656,44 +19312,44 @@ "Top line indicates that the scale is visible at current zoom level\n" "Bottom line indicates that the scale has shapes on it" -#: ../src/iop/retouch.c:2334 +#: ../src/iop/retouch.c:2591 msgid "display masks" msgstr "Display masks" -#: ../src/iop/retouch.c:2339 +#: ../src/iop/retouch.c:2597 msgid "temporarily switch off shapes" msgstr "Temporarily switch off shapes" -#: ../src/iop/retouch.c:2347 +#: ../src/iop/retouch.c:2606 msgid "paste cut shapes to current scale" msgstr "Paste cut shapes to current scale" -#: ../src/iop/retouch.c:2351 +#: ../src/iop/retouch.c:2611 msgid "cut shapes from current scale" msgstr "Cut shapes from current scale" -#: ../src/iop/retouch.c:2358 +#: ../src/iop/retouch.c:2619 msgid "display wavelet scale" msgstr "Display wavelet scale" -#: ../src/iop/retouch.c:2366 +#: ../src/iop/retouch.c:2627 msgctxt "section" msgid "preview single scale" msgstr "Preview single scale" -#: ../src/iop/retouch.c:2377 +#: ../src/iop/retouch.c:2641 msgid "adjust preview levels" msgstr "Adjust preview levels" -#: ../src/iop/retouch.c:2392 ../src/iop/rgblevels.c:1051 +#: ../src/iop/retouch.c:2664 ../src/iop/rgblevels.c:1106 msgid "auto levels" msgstr "Auto levels" -#: ../src/iop/retouch.c:2400 +#: ../src/iop/retouch.c:2672 msgid "shape selected:" msgstr "Shape selected:" -#: ../src/iop/retouch.c:2405 +#: ../src/iop/retouch.c:2678 msgid "" "click on a shape to select it,\n" "to unselect click on an empty space" @@ -18701,60 +19357,60 @@ "Click on a shape to select it,\n" "to unselect click on an empty space" -#: ../src/iop/retouch.c:2412 +#: ../src/iop/retouch.c:2687 msgid "erase the detail or fills with chosen color" msgstr "Erase the detail or fills with chosen color" -#: ../src/iop/retouch.c:2419 +#: ../src/iop/retouch.c:2697 msgid "fill color: " msgstr "Fill color: " -#: ../src/iop/retouch.c:2424 ../src/iop/retouch.c:2425 +#: ../src/iop/retouch.c:2702 ../src/iop/retouch.c:2703 msgid "select fill color" msgstr "Select fill color" -#: ../src/iop/retouch.c:2430 +#: ../src/iop/retouch.c:2713 msgid "pick fill color from image" msgstr "Pick fill color from image" -#: ../src/iop/retouch.c:2431 +#: ../src/iop/retouch.c:2714 msgid "pick fill color" msgstr "Pick fill color" -#: ../src/iop/retouch.c:2439 +#: ../src/iop/retouch.c:2724 msgid "adjusts color brightness to fine-tune it. works with erase as well" msgstr "Adjusts color brightness to fine-tune it. Works with erase as well" -#: ../src/iop/retouch.c:2445 +#: ../src/iop/retouch.c:2730 msgid "type for the blur algorithm" msgstr "Type for the blur algorithm" -#: ../src/iop/retouch.c:2449 +#: ../src/iop/retouch.c:2734 msgid "radius of the selected blur type" msgstr "Radius of the selected blur type" -#: ../src/iop/retouch.c:2455 +#: ../src/iop/retouch.c:2741 msgid "set the opacity on the selected shape" msgstr "Set the opacity on the selected shape" -#: ../src/iop/retouch.c:2461 +#: ../src/iop/retouch.c:2748 msgctxt "section" msgid "retouch tools" msgstr "Retouch tools" #. wavelet decompose -#: ../src/iop/retouch.c:2470 +#: ../src/iop/retouch.c:2757 msgctxt "section" msgid "wavelet decompose" msgstr "Wavelet decompose" #. shapes -#: ../src/iop/retouch.c:2484 +#: ../src/iop/retouch.c:2771 msgctxt "section" msgid "shapes" msgstr "Shapes" -#: ../src/iop/retouch.c:3589 ../src/iop/retouch.c:4427 +#: ../src/iop/retouch.c:3986 ../src/iop/retouch.c:4956 #, c-format msgid "max scale is %i for this image size" msgstr "Max scale is %i for this image size" @@ -18763,59 +19419,59 @@ msgid "rgb curve" msgstr "RGB curve" -#: ../src/iop/rgbcurve.c:142 +#: ../src/iop/rgbcurve.c:144 msgid "alter an image’s tones using curves in RGB color space" msgstr "Alter an image’s tones using curves in RGB color space" -#: ../src/iop/rgbcurve.c:193 ../src/iop/tonecurve.c:548 +#: ../src/iop/rgbcurve.c:195 ../src/iop/tonecurve.c:569 msgid "gamma 1.0 (linear)" msgstr "Gamma 1.0 (linear)" -#: ../src/iop/rgbcurve.c:203 ../src/iop/tonecurve.c:558 +#: ../src/iop/rgbcurve.c:205 ../src/iop/tonecurve.c:579 msgid "contrast - med (linear)" msgstr "Contrast - med (linear)" -#: ../src/iop/rgbcurve.c:212 ../src/iop/tonecurve.c:567 +#: ../src/iop/rgbcurve.c:214 ../src/iop/tonecurve.c:588 msgid "contrast - high (linear)" msgstr "Contrast - high (linear)" -#: ../src/iop/rgbcurve.c:226 ../src/iop/tonecurve.c:579 +#: ../src/iop/rgbcurve.c:228 ../src/iop/tonecurve.c:600 msgid "contrast - med (gamma 2.2)" msgstr "Contrast - med (gamma 2.2)" -#: ../src/iop/rgbcurve.c:239 ../src/iop/tonecurve.c:590 +#: ../src/iop/rgbcurve.c:241 ../src/iop/tonecurve.c:611 msgid "contrast - high (gamma 2.2)" msgstr "Contrast - high (gamma 2.2)" -#: ../src/iop/rgbcurve.c:252 ../src/iop/tonecurve.c:603 +#: ../src/iop/rgbcurve.c:254 ../src/iop/tonecurve.c:624 msgid "gamma 2.0" msgstr "Gamma 2.0" -#: ../src/iop/rgbcurve.c:258 ../src/iop/tonecurve.c:609 +#: ../src/iop/rgbcurve.c:260 ../src/iop/tonecurve.c:630 msgid "gamma 0.5" msgstr "Gamma 0.5" -#: ../src/iop/rgbcurve.c:263 ../src/iop/tonecurve.c:614 +#: ../src/iop/rgbcurve.c:265 ../src/iop/tonecurve.c:635 msgid "logarithm (base 2)" msgstr "Logarithm (base 2)" -#: ../src/iop/rgbcurve.c:268 ../src/iop/tonecurve.c:619 +#: ../src/iop/rgbcurve.c:270 ../src/iop/tonecurve.c:640 msgid "exponential (base 2)" msgstr "Exponential (base 2)" -#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:999 +#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:1038 msgid "choose between linked and independent channels." msgstr "Choose between linked and independent channels." -#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1003 +#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1043 msgid "curve nodes for r channel" msgstr "Curve nodes for R channel" -#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1004 +#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1044 msgid "curve nodes for g channel" msgstr "Curve nodes for G channel" -#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1005 +#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1045 msgid "curve nodes for b channel" msgstr "Curve nodes for B channel" @@ -18823,15 +19479,15 @@ msgid "rgb levels" msgstr "RGB levels" -#: ../src/iop/rgblevels.c:122 +#: ../src/iop/rgblevels.c:124 msgid "adjust black, white and mid-gray points in RGB color space" msgstr "Adjust black, white and mid-gray points in RGB color space" -#: ../src/iop/rgblevels.c:1056 +#: ../src/iop/rgblevels.c:1112 msgid "auto region" msgstr "Auto region" -#: ../src/iop/rgblevels.c:1058 +#: ../src/iop/rgblevels.c:1115 msgid "" "apply auto levels based on a region defined by the user\n" "click and drag to draw the area\n" @@ -18846,7 +19502,7 @@ msgid "rotate pixels" msgstr "Rotate pixels" -#: ../src/iop/rotatepixels.c:97 ../src/iop/scalepixels.c:82 +#: ../src/iop/rotatepixels.c:99 ../src/iop/scalepixels.c:84 msgid "" "internal module to setup technical specificities of raw sensor.\n" "\n" @@ -18856,11 +19512,11 @@ "\n" "You should not touch values here!" -#: ../src/iop/rotatepixels.c:366 +#: ../src/iop/rotatepixels.c:381 msgid "automatic pixel rotation" msgstr "Automatic pixel rotation" -#: ../src/iop/rotatepixels.c:367 +#: ../src/iop/rotatepixels.c:382 msgid "" "automatic pixel rotation\n" "only works for the sensors that need it." @@ -18873,11 +19529,11 @@ msgid "scale pixels" msgstr "Scale pixels" -#: ../src/iop/scalepixels.c:271 +#: ../src/iop/scalepixels.c:281 msgid "automatic pixel scaling" msgstr "Automatic pixel scaling" -#: ../src/iop/scalepixels.c:272 +#: ../src/iop/scalepixels.c:282 msgid "" "automatic pixel scaling\n" "only works for the sensors that need it." @@ -18885,11 +19541,11 @@ "Automatic pixel scaling\n" "Only works for the sensors that need it." -#: ../src/iop/shadhi.c:175 +#: ../src/iop/shadhi.c:120 msgid "shadows and highlights" msgstr "Shadows and highlights" -#: ../src/iop/shadhi.c:195 +#: ../src/iop/shadhi.c:142 msgid "" "modify the tonal range of the shadows and highlights\n" "of an image by enhancing local contrast." @@ -18897,27 +19553,27 @@ "Modify the tonal range of the shadows and highlights\n" "of an image by enhancing local contrast." -#: ../src/iop/shadhi.c:676 ../src/iop/splittoning.c:548 +#: ../src/iop/shadhi.c:711 ../src/iop/splittoning.c:544 msgid "compress" msgstr "Compress" -#: ../src/iop/shadhi.c:683 +#: ../src/iop/shadhi.c:718 msgid "correct shadows" msgstr "Correct shadows" -#: ../src/iop/shadhi.c:684 +#: ../src/iop/shadhi.c:719 msgid "correct highlights" msgstr "Correct highlights" -#: ../src/iop/shadhi.c:685 +#: ../src/iop/shadhi.c:720 msgid "shift white point" msgstr "Shift white point" -#: ../src/iop/shadhi.c:687 +#: ../src/iop/shadhi.c:722 msgid "filter to use for softening. bilateral avoids halos" msgstr "Filter to use for softening. Bilateral avoids halos" -#: ../src/iop/shadhi.c:688 +#: ../src/iop/shadhi.c:723 msgid "" "compress the effect on shadows/highlights and\n" "preserve mid-tones" @@ -18925,11 +19581,11 @@ "Compress the effect on shadows/highlights and\n" "preserve mid-tones" -#: ../src/iop/shadhi.c:689 +#: ../src/iop/shadhi.c:724 msgid "adjust saturation of shadows" msgstr "Adjust saturation of shadows" -#: ../src/iop/shadhi.c:690 +#: ../src/iop/shadhi.c:725 msgid "adjust saturation of highlights" msgstr "Adjust saturation of highlights" @@ -18938,45 +19594,45 @@ msgid "sharpen" msgstr "Sharpen" -#: ../src/iop/sharpen.c:93 +#: ../src/iop/sharpen.c:95 msgid "sharpen the details in the image using a standard UnSharp Mask (USM)" msgstr "Sharpen the details in the image using a standard UnSharp Mask (USM)" -#: ../src/iop/sharpen.c:95 +#: ../src/iop/sharpen.c:97 msgid "linear or non-linear, Lab, display or scene-referred" msgstr "Linear or non-linear, Lab, display or scene-referred" -#: ../src/iop/sharpen.c:97 +#: ../src/iop/sharpen.c:99 msgid "quasi-linear, Lab, display or scene-referred" msgstr "Quasi-linear, Lab, display or scene-referred" #. add the preset. #. restrict to raw images -#: ../src/iop/sharpen.c:104 ../src/iop/sharpen.c:108 +#: ../src/iop/sharpen.c:106 ../src/iop/sharpen.c:110 msgid "sharpen" msgstr "Sharpen" -#: ../src/iop/sharpen.c:443 +#: ../src/iop/sharpen.c:438 msgid "spatial extent of the unblurring" msgstr "Spatial extent of the unblurring" -#: ../src/iop/sharpen.c:447 +#: ../src/iop/sharpen.c:442 msgid "strength of the sharpen" msgstr "Strength of the sharpen" -#: ../src/iop/sharpen.c:451 +#: ../src/iop/sharpen.c:446 msgid "threshold to activate sharpen" msgstr "Threshold to activate sharpen" -#: ../src/iop/sigmoid.c:89 +#: ../src/iop/sigmoid.c:195 msgid "sigmoid" msgstr "Sigmoid" -#: ../src/iop/sigmoid.c:94 +#: ../src/iop/sigmoid.c:200 msgid "tone mapping|view transform|display transform" msgstr "tone mapping|view transform|display transform" -#: ../src/iop/sigmoid.c:99 +#: ../src/iop/sigmoid.c:206 msgid "" "apply a view transform to make a image displayable\n" "on a screen or print. uses a robust and smooth\n" @@ -18986,19 +19642,19 @@ "on a screen or print. Uses a robust and smooth\n" "tone curve with optional color preservation methods." -#: ../src/iop/sigmoid.c:155 +#: ../src/iop/sigmoid.c:258 msgid "neutral gray" msgstr "Neutral gray" -#: ../src/iop/sigmoid.c:160 +#: ../src/iop/sigmoid.c:264 msgid "ACES 100-nit like" msgstr "ACES 100-nit like" -#: ../src/iop/sigmoid.c:165 +#: ../src/iop/sigmoid.c:270 msgid "Reinhard" msgstr "Reinhard" -#: ../src/iop/sigmoid.c:683 +#: ../src/iop/sigmoid.c:917 msgid "" "compression of the applied curve\n" "implicitly defines the supported input dynamic range" @@ -19006,7 +19662,7 @@ "Compression of the applied curve\n" "Implicitly defines the supported input dynamic range" -#: ../src/iop/sigmoid.c:686 +#: ../src/iop/sigmoid.c:920 msgid "" "shift the compression towards shadows or highlights.\n" "negative values increase contrast in shadows.\n" @@ -19018,7 +19674,7 @@ "Positive values increase contrast in highlights.\n" "The opposite end will see a reduction in contrast." -#: ../src/iop/sigmoid.c:695 +#: ../src/iop/sigmoid.c:929 msgid "" "optional correction of the hue twist introduced by\n" "the per-channel processing method." @@ -19026,15 +19682,55 @@ "Optional correction of the hue twist introduced by\n" "the per-channel processing method." -#: ../src/iop/sigmoid.c:702 +#: ../src/iop/sigmoid.c:936 ../src/iop/sigmoid.c:940 +msgid "primaries" +msgstr "Primaries" + +#: ../src/iop/sigmoid.c:937 +msgid "set custom primaries" +msgstr "Set custom primaries" + +#: ../src/iop/sigmoid.c:943 +msgid "primaries to use as the base for below adjustments" +msgstr "Primaries to use as the base for below adjustments" + +#: ../src/iop/sigmoid.c:962 +msgid "attenuate the purity of the red primary" +msgstr "Attenuate the purity of the red primary" + +#: ../src/iop/sigmoid.c:963 +msgid "rotate the red primary" +msgstr "Rotate the red primary" + +#: ../src/iop/sigmoid.c:964 +msgid "attenuate the purity of the green primary" +msgstr "Attenuate the purity of the green primary" + +#: ../src/iop/sigmoid.c:965 +msgid "rotate the green primary" +msgstr "Rotate the green primary" + +#: ../src/iop/sigmoid.c:966 +msgid "attenuate the purity of the blue primary" +msgstr "Attenuate the purity of the blue primary" + +#: ../src/iop/sigmoid.c:967 +msgid "rotate the blue primary" +msgstr "Rotate the blue primary" + +#: ../src/iop/sigmoid.c:974 +msgid "recover some of the original purity after the inset" +msgstr "Recover some of the original purity after the inset" + +#: ../src/iop/sigmoid.c:978 msgid "display luminance" msgstr "Display luminance" -#: ../src/iop/sigmoid.c:706 +#: ../src/iop/sigmoid.c:979 msgid "set display black/white targets" msgstr "Set display black/white targets" -#: ../src/iop/sigmoid.c:714 +#: ../src/iop/sigmoid.c:987 msgid "" "the black luminance of the target display or print.\n" "can be used creatively for a faded look." @@ -19042,7 +19738,7 @@ "The black luminance of the target display or print.\n" "Can be used creatively for a faded look." -#: ../src/iop/sigmoid.c:719 +#: ../src/iop/sigmoid.c:992 msgid "" "the white luminance of the target display or print.\n" "can be used creatively for a faded look or blowing out whites earlier." @@ -19054,23 +19750,23 @@ msgid "soften" msgstr "Soften" -#: ../src/iop/soften.c:100 +#: ../src/iop/soften.c:102 msgid "create a softened image using the Orton effect" msgstr "Create a softened image using the Orton effect" -#: ../src/iop/soften.c:371 +#: ../src/iop/soften.c:366 msgid "the size of blur" msgstr "The size of blur" -#: ../src/iop/soften.c:375 +#: ../src/iop/soften.c:370 msgid "the saturation of blur" msgstr "The saturation of blur" -#: ../src/iop/soften.c:379 +#: ../src/iop/soften.c:374 msgid "the brightness of blur" msgstr "The brightness of blur" -#: ../src/iop/soften.c:383 +#: ../src/iop/soften.c:378 msgid "the mix of effect" msgstr "The mix of effect" @@ -19078,7 +19774,7 @@ msgid "split-toning" msgstr "Split-toning" -#: ../src/iop/splittoning.c:101 +#: ../src/iop/splittoning.c:103 msgid "" "use two specific colors for shadows and highlights and\n" "create a linear toning effect between them up to a pivot." @@ -19086,49 +19782,49 @@ "Use two specific colors for shadows and highlights and\n" "create a linear toning effect between them up to a pivot." -#: ../src/iop/splittoning.c:118 +#: ../src/iop/splittoning.c:120 msgid "authentic sepia" msgstr "Authentic sepia" -#: ../src/iop/splittoning.c:127 +#: ../src/iop/splittoning.c:129 msgid "authentic cyanotype" msgstr "Authentic cyanotype" -#: ../src/iop/splittoning.c:136 +#: ../src/iop/splittoning.c:138 msgid "authentic platinotype" msgstr "Authentic platinotype" -#: ../src/iop/splittoning.c:145 +#: ../src/iop/splittoning.c:147 msgid "chocolate brown" msgstr "Chocolate brown" -#: ../src/iop/splittoning.c:490 +#: ../src/iop/splittoning.c:486 msgid "select the saturation tone" msgstr "Select the saturation tone" -#: ../src/iop/splittoning.c:494 +#: ../src/iop/splittoning.c:490 msgid "select tone color" msgstr "Select tone color" -#: ../src/iop/splittoning.c:524 +#: ../src/iop/splittoning.c:520 msgctxt "section" msgid "shadows" msgstr "Shadows" -#: ../src/iop/splittoning.c:530 +#: ../src/iop/splittoning.c:526 msgctxt "section" msgid "highlights" msgstr "Highlights" -#: ../src/iop/splittoning.c:539 +#: ../src/iop/splittoning.c:535 msgid "balance" msgstr "Balance" -#: ../src/iop/splittoning.c:546 +#: ../src/iop/splittoning.c:542 msgid "the balance of center of split-toning" msgstr "The balance of center of split-toning" -#: ../src/iop/splittoning.c:550 +#: ../src/iop/splittoning.c:546 msgid "" "compress the effect on highlights/shadows and\n" "preserve mid-tones" @@ -19152,15 +19848,15 @@ msgid "geometric, raw" msgstr "Geometric, raw" -#: ../src/iop/spots.c:226 +#: ../src/iop/spots.c:238 msgid "spot module is limited to 64 shapes. please add a new instance!" msgstr "Spot module is limited to 64 shapes. Please add a new instance!" -#: ../src/iop/spots.c:872 +#: ../src/iop/spots.c:874 msgid "number of strokes:" msgstr "Number of strokes:" -#: ../src/iop/spots.c:876 +#: ../src/iop/spots.c:878 msgid "" "click on a shape and drag on canvas.\n" "use the mouse wheel to adjust size.\n" @@ -19170,128 +19866,116 @@ "Use the mouse wheel to adjust size.\n" "Right click to remove a shape." -#: ../src/iop/spots.c:879 +#: ../src/iop/spots.c:881 msgid "show and edit shapes" msgstr "Show and edit shapes" -#: ../src/iop/temperature.c:204 +#: ../src/iop/temperature.c:212 msgctxt "modulename" msgid "white balance" msgstr "White balance" -#: ../src/iop/temperature.c:211 +#: ../src/iop/temperature.c:219 msgid "scale raw RGB channels to balance white and help demosaicing" msgstr "Scale raw RGB channels to balance white and help demosaicing" -#: ../src/iop/temperature.c:1149 -msgid "white balance applied twice" -msgstr "White balance applied twice" - -#: ../src/iop/temperature.c:1150 -msgid "" -"the color calibration module is enabled,\n" -"and performing chromatic adaptation.\n" -"set the white balance here to camera reference (D65)\n" -"or disable chromatic adaptation in color calibration." -msgstr "" -"The color calibration module is enabled,\n" -"and performing chromatic adaptation.\n" -"Set the white balance here to camera reference (D65)\n" -"or disable chromatic adaptation in color calibration." - -#: ../src/iop/temperature.c:1430 +#: ../src/iop/temperature.c:1388 #, c-format msgid "`%s' color matrix not found for image" msgstr "`%s' color matrix not found for image" -#: ../src/iop/temperature.c:1459 +#: ../src/iop/temperature.c:1418 #, c-format msgid "failed to read camera white balance information from `%s'!" msgstr "Failed to read camera white balance information from `%s'!" -#: ../src/iop/temperature.c:1631 +#: ../src/iop/temperature.c:1612 msgctxt "white balance" msgid "as shot" msgstr "As shot" #. old "spot", reason: describes exactly what'll happen -#: ../src/iop/temperature.c:1634 +#: ../src/iop/temperature.c:1615 msgctxt "white balance" msgid "from image area" msgstr "From image area" -#: ../src/iop/temperature.c:1635 +#: ../src/iop/temperature.c:1616 msgctxt "white balance" msgid "user modified" msgstr "User modified" #. old "camera neutral", reason: better matches intent -#: ../src/iop/temperature.c:1637 +#: ../src/iop/temperature.c:1618 msgctxt "white balance" msgid "camera reference" msgstr "Camera reference" -#: ../src/iop/temperature.c:1920 ../src/iop/temperature.c:1938 +#: ../src/iop/temperature.c:1897 ../src/iop/temperature.c:1915 msgid "green channel coefficient" msgstr "Green channel coefficient" -#: ../src/iop/temperature.c:1922 +#: ../src/iop/temperature.c:1899 msgid "magenta channel coefficient" msgstr "Magenta channel coefficient" -#: ../src/iop/temperature.c:1924 +#: ../src/iop/temperature.c:1901 msgid "cyan channel coefficient" msgstr "Cyan channel coefficient" -#: ../src/iop/temperature.c:1926 +#: ../src/iop/temperature.c:1903 msgid "yellow channel coefficient" msgstr "Yellow channel coefficient" -#: ../src/iop/temperature.c:1936 +#: ../src/iop/temperature.c:1913 msgid "red channel coefficient" msgstr "Red channel coefficient" -#: ../src/iop/temperature.c:1940 +#: ../src/iop/temperature.c:1917 msgid "blue channel coefficient" msgstr "Blue channel coefficient" -#: ../src/iop/temperature.c:1942 +#: ../src/iop/temperature.c:1918 +msgid "emerald" +msgstr "Emerald" + +#: ../src/iop/temperature.c:1919 msgid "emerald channel coefficient" msgstr "Emerald channel coefficient" #. relabel to settings to remove confusion between module presets #. and white balance settings -#: ../src/iop/temperature.c:2029 ../src/iop/temperature.c:2042 -#: ../src/iop/temperature.c:2049 ../src/iop/temperature.c:2055 -#: ../src/iop/temperature.c:2074 +#: ../src/iop/temperature.c:1997 ../src/iop/temperature.c:2010 +#: ../src/iop/temperature.c:2017 ../src/iop/temperature.c:2023 +#: ../src/iop/temperature.c:2042 msgid "settings" msgstr "Settings" -#: ../src/iop/temperature.c:2029 +#: ../src/iop/temperature.c:1997 msgid "as shot" msgstr "As shot" -#: ../src/iop/temperature.c:2032 +#: ../src/iop/temperature.c:2000 msgid "set white balance to as shot" msgstr "Set white balance to as shot" -#: ../src/iop/temperature.c:2042 +#: ../src/iop/temperature.c:2010 msgid "from image area" msgstr "From image area" -#: ../src/iop/temperature.c:2049 +#: ../src/iop/temperature.c:2017 msgid "user modified" msgstr "User modified" -#: ../src/iop/temperature.c:2052 +#: ../src/iop/temperature.c:2020 msgid "set white balance to user modified" msgstr "Set white balance to user modified" -#: ../src/iop/temperature.c:2055 +#: ../src/iop/temperature.c:2023 msgid "camera reference" msgstr "Camera reference" -#: ../src/iop/temperature.c:2060 +#: ../src/iop/temperature.c:2028 msgid "" "set white balance to camera reference point\n" "in most cases it should be D65" @@ -19299,56 +19983,60 @@ "Set white balance to camera reference point\n" "In most cases it should be D65" -#: ../src/iop/temperature.c:2075 +#: ../src/iop/temperature.c:2043 msgid "choose white balance setting" msgstr "Choose white balance setting" -#: ../src/iop/temperature.c:2080 +#: ../src/iop/temperature.c:2048 msgid "finetune" msgstr "Finetune" -#: ../src/iop/temperature.c:2082 +#: ../src/iop/temperature.c:2050 msgid "fine tune camera's white balance setting" msgstr "Fine tune camera's white balance setting" -#: ../src/iop/temperature.c:2093 +#: ../src/iop/temperature.c:2058 msgctxt "section" msgid "scene illuminant temp" msgstr "Scene illuminant temp" -#: ../src/iop/temperature.c:2094 +#: ../src/iop/temperature.c:2059 msgid "click to cycle color mode on sliders" msgstr "Click to cycle color mode on sliders" -#: ../src/iop/temperature.c:2108 +#: ../src/iop/temperature.c:2073 msgid "color temperature (in Kelvin)" msgstr "Color temperature (in Kelvin)" -#: ../src/iop/temperature.c:2114 +#: ../src/iop/temperature.c:2079 msgid "tint" msgstr "Tint" -#: ../src/iop/temperature.c:2117 +#: ../src/iop/temperature.c:2082 msgid "color tint of the image, from magenta (value < 1) to green (value > 1)" msgstr "Color tint of the image, from magenta (value < 1) to green (value > 1)" -#: ../src/iop/temperature.c:2123 +#: ../src/iop/temperature.c:2088 msgid "channel coefficients" msgstr "Channel coefficients" -#: ../src/iop/temperature.c:2158 +#: ../src/iop/temperature.c:2097 +msgid "various" +msgstr "Various" + +#: ../src/iop/temperature.c:2123 msgid "white balance disabled for camera" msgstr "White balance disabled for camera" -#: ../src/iop/tonecurve.c:190 +#: ../src/iop/tonecurve.c:161 msgid "tone curve" msgstr "Tone curve" -#: ../src/iop/tonecurve.c:210 +#: ../src/iop/tonecurve.c:183 msgid "alter an image’s tones using curves" msgstr "Alter an image’s tones using curves" -#: ../src/iop/tonecurve.c:1125 +#: ../src/iop/tonecurve.c:1147 msgid "" "if set to auto, a and b curves have no effect and are not displayed. chroma " "values (a and b) of each pixel are then adjusted based on L curve data. auto " @@ -19358,116 +20046,108 @@ "values (a and b) of each pixel are then adjusted based on L curve data. Auto " "XYZ is similar but applies the saturation changes in XYZ space." -#: ../src/iop/tonecurve.c:1134 +#: ../src/iop/tonecurve.c:1156 msgid "tonecurve for L channel" msgstr "Tonecurve for L channel" -#: ../src/iop/tonecurve.c:1135 +#: ../src/iop/tonecurve.c:1157 msgid "tonecurve for a channel" msgstr "Tonecurve for a channel" -#: ../src/iop/tonecurve.c:1136 +#: ../src/iop/tonecurve.c:1158 msgid "tonecurve for b channel" msgstr "Tonecurve for b channel" -#: ../src/iop/tonecurve.c:1143 ../src/iop/watermark.c:1305 -#: ../src/libs/colorpicker.c:597 +#: ../src/iop/tonecurve.c:1165 ../src/iop/watermark.c:1353 +#: ../src/libs/colorpicker.c:675 msgid "pick color" msgstr "Pick color" -#: ../src/iop/toneequal.c:311 +#: ../src/iop/toneequal.c:319 msgid "tone equalizer" msgstr "Tone equalizer" -#: ../src/iop/toneequal.c:316 +#: ../src/iop/toneequal.c:324 msgid "tone curve|tone mapping|relight|background light|shadows highlights" msgstr "tone curve|tone mapping|relight|background light|shadows highlights" -#: ../src/iop/toneequal.c:323 +#: ../src/iop/toneequal.c:331 msgid "relight the scene as if the lighting was done directly on the scene" msgstr "Relight the scene as if the lighting was done directly on the scene" -#: ../src/iop/toneequal.c:326 +#: ../src/iop/toneequal.c:334 msgid "quasi-linear, RGB" msgstr "Quasi-linear, RGB" -#: ../src/iop/toneequal.c:327 +#: ../src/iop/toneequal.c:335 msgid "quasi-linear, RGB, scene-referred" msgstr "Quasi-linear, RGB, scene-referred" -#: ../src/iop/toneequal.c:458 +#: ../src/iop/toneequal.c:489 msgid "simple tone curve" msgstr "Simple tone curve" -#: ../src/iop/toneequal.c:472 +#: ../src/iop/toneequal.c:503 msgid "mask blending: all purposes" msgstr "Mask blending: all purposes" -#: ../src/iop/toneequal.c:479 +#: ../src/iop/toneequal.c:510 msgid "mask blending: people with backlight" msgstr "Mask blending: people with backlight" -#: ../src/iop/toneequal.c:496 +#: ../src/iop/toneequal.c:527 msgid "compress shadows/highlights (EIGF): strong" msgstr "Compress shadows/highlights (EIGF): strong" -#: ../src/iop/toneequal.c:501 +#: ../src/iop/toneequal.c:532 msgid "compress shadows/highlights (GF): strong" msgstr "Compress shadows/highlights (GF): strong" -#: ../src/iop/toneequal.c:510 +#: ../src/iop/toneequal.c:541 msgid "compress shadows/highlights (EIGF): medium" msgstr "Compress shadows/highlights (EIGF): medium" -#: ../src/iop/toneequal.c:515 +#: ../src/iop/toneequal.c:546 msgid "compress shadows/highlights (GF): medium" msgstr "Compress shadows/highlights (GF): medium" -#: ../src/iop/toneequal.c:524 +#: ../src/iop/toneequal.c:555 msgid "compress shadows/highlights (EIGF): soft" msgstr "Compress shadows/highlights (EIGF): soft" -#: ../src/iop/toneequal.c:529 +#: ../src/iop/toneequal.c:560 msgid "compress shadows/highlights (GF): soft" msgstr "Compress shadows/highlights (GF): soft" -#: ../src/iop/toneequal.c:537 +#: ../src/iop/toneequal.c:568 msgid "contrast tone curve: soft" msgstr "Contrast tone curve: soft" -#: ../src/iop/toneequal.c:542 +#: ../src/iop/toneequal.c:573 msgid "contrast tone curve: medium" msgstr "Contrast tone curve: medium" -#: ../src/iop/toneequal.c:547 +#: ../src/iop/toneequal.c:578 msgid "contrast tone curve: strong" msgstr "Contrast tone curve: strong" -#: ../src/iop/toneequal.c:570 +#: ../src/iop/toneequal.c:601 msgid "relight: fill-in" msgstr "Relight: fill-in" -#: ../src/iop/toneequal.c:627 -msgid "" -"tone equalizer needs to be after distortion modules in the pipeline – " -"disabled" -msgstr "" -"Tone equalizer needs to be after distortion modules in the pipeline – " -"disabled" - -#: ../src/iop/toneequal.c:1091 +#: ../src/iop/toneequal.c:1120 msgid "tone equalizer failed to allocate memory, check your RAM settings" msgstr "Tone equalizer failed to allocate memory, check your RAM settings" -#: ../src/iop/toneequal.c:1795 ../src/iop/toneequal.c:2180 +#: ../src/iop/toneequal.c:1825 ../src/iop/toneequal.c:2196 msgid "the interpolation is unstable, decrease the curve smoothing" msgstr "The interpolation is unstable, decrease the curve smoothing" -#: ../src/iop/toneequal.c:1830 ../src/iop/toneequal.c:1897 +#: ../src/iop/toneequal.c:1860 ../src/iop/toneequal.c:1927 msgid "wait for the preview to finish recomputing" msgstr "Wait for the preview to finish recomputing" -#: ../src/iop/toneequal.c:2037 ../src/iop/toneequal.c:2587 +#: ../src/iop/toneequal.c:2069 ../src/iop/toneequal.c:2628 msgid "" "scroll over image to change tone exposure\n" "shift+scroll for large steps; ctrl+scroll for small steps" @@ -19475,89 +20155,89 @@ "Scroll over image to change tone exposure\n" "Shift+scroll for large steps; Ctrl+scroll for small steps" -#: ../src/iop/toneequal.c:2185 +#: ../src/iop/toneequal.c:2201 msgid "some parameters are out-of-bounds" msgstr "Some parameters are out-of-bounds" -#: ../src/iop/toneequal.c:2524 +#: ../src/iop/toneequal.c:2518 #, c-format msgid "%+.1f EV" msgstr "%+.1f EV" -#: ../src/iop/toneequal.c:3236 +#: ../src/iop/toneequal.c:3283 #, c-format msgid "[%s over image] change tone exposure" msgstr "[%s over image] change tone exposure" -#: ../src/iop/toneequal.c:3239 +#: ../src/iop/toneequal.c:3286 #, c-format msgid "[%s over image] change tone exposure in large steps" msgstr "[%s over image] change tone exposure in large steps" -#: ../src/iop/toneequal.c:3242 +#: ../src/iop/toneequal.c:3289 #, c-format msgid "[%s over image] change tone exposure in small steps" msgstr "[%s over image] change tone exposure in small steps" #. Simple view -#: ../src/iop/toneequal.c:3323 ../src/iop/toneequal.c:3352 -#: ../src/iop/toneequal.c:3353 ../src/iop/toneequal.c:3354 -#: ../src/iop/toneequal.c:3355 ../src/iop/toneequal.c:3356 -#: ../src/iop/toneequal.c:3357 ../src/iop/toneequal.c:3358 -#: ../src/iop/toneequal.c:3359 ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3376 ../src/iop/toneequal.c:3405 +#: ../src/iop/toneequal.c:3406 ../src/iop/toneequal.c:3407 +#: ../src/iop/toneequal.c:3408 ../src/iop/toneequal.c:3409 +#: ../src/iop/toneequal.c:3410 ../src/iop/toneequal.c:3411 +#: ../src/iop/toneequal.c:3412 ../src/iop/toneequal.c:3413 msgid "simple" msgstr "Simple" -#: ../src/iop/toneequal.c:3352 +#: ../src/iop/toneequal.c:3405 msgid "-8 EV" msgstr "-8 EV" -#: ../src/iop/toneequal.c:3353 +#: ../src/iop/toneequal.c:3406 msgid "-7 EV" msgstr "-7 EV" -#: ../src/iop/toneequal.c:3354 +#: ../src/iop/toneequal.c:3407 msgid "-6 EV" msgstr "-6 EV" -#: ../src/iop/toneequal.c:3355 +#: ../src/iop/toneequal.c:3408 msgid "-5 EV" msgstr "-5 EV" -#: ../src/iop/toneequal.c:3356 +#: ../src/iop/toneequal.c:3409 msgid "-4 EV" msgstr "-4 EV" -#: ../src/iop/toneequal.c:3357 +#: ../src/iop/toneequal.c:3410 msgid "-3 EV" msgstr "-3 EV" -#: ../src/iop/toneequal.c:3358 +#: ../src/iop/toneequal.c:3411 msgid "-2 EV" msgstr "-2 EV" -#: ../src/iop/toneequal.c:3359 +#: ../src/iop/toneequal.c:3412 msgid "-1 EV" msgstr "-1 EV" -#: ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3413 msgid "+0 EV" msgstr "+0 EV" #. Advanced view -#: ../src/iop/toneequal.c:3364 +#: ../src/iop/toneequal.c:3417 msgid "advanced" msgstr "Advanced" -#: ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3444 msgid "double-click to reset the curve" msgstr "Double-click to reset the curve" -#: ../src/iop/toneequal.c:3395 +#: ../src/iop/toneequal.c:3448 msgid "curve smoothing" msgstr "Curve smoothing" -#: ../src/iop/toneequal.c:3398 +#: ../src/iop/toneequal.c:3451 msgid "" "positive values will produce more progressive tone transitions\n" "but the curve might become oscillatory in some settings.\n" @@ -19570,11 +20250,11 @@ "but may produce brutal tone transitions and damage local contrast." #. Masking options -#: ../src/iop/toneequal.c:3408 +#: ../src/iop/toneequal.c:3461 msgid "masking" msgstr "Masking" -#: ../src/iop/toneequal.c:3413 +#: ../src/iop/toneequal.c:3466 msgid "" "preview the mask and chose the estimator that gives you the\n" "higher contrast between areas to dodge and areas to burn" @@ -19582,15 +20262,15 @@ "Preview the mask and chose the estimator that gives you the\n" "higher contrast between areas to dodge and areas to burn" -#: ../src/iop/toneequal.c:3416 +#: ../src/iop/toneequal.c:3469 msgid "details" msgstr "Details" -#: ../src/iop/toneequal.c:3417 +#: ../src/iop/toneequal.c:3470 msgid "preserve details" msgstr "Preserve details" -#: ../src/iop/toneequal.c:3420 +#: ../src/iop/toneequal.c:3473 msgid "" "'no' affects global and local contrast (safe if you only add contrast)\n" "'guided filter' only affects global contrast and tries to preserve local " @@ -19614,7 +20294,7 @@ "'Averaged EIGF' is a geometric mean of 'No' and 'Exposure-independent guided " "filter' methods" -#: ../src/iop/toneequal.c:3433 +#: ../src/iop/toneequal.c:3486 msgid "" "number of passes of guided filter to apply\n" "helps diffusing the edges of the filter at the expense of speed" @@ -19622,7 +20302,7 @@ "Number of passes of guided filter to apply\n" "Helps diffusing the edges of the filter at the expense of speed" -#: ../src/iop/toneequal.c:3441 +#: ../src/iop/toneequal.c:3494 msgid "" "diameter of the blur in percent of the largest image size\n" "warning: big values of this parameter can make the darkroom\n" @@ -19632,7 +20312,7 @@ "Warning: big values of this parameter can make the Darkroom\n" "preview much slower if denoise profiled is used." -#: ../src/iop/toneequal.c:3449 +#: ../src/iop/toneequal.c:3502 msgid "" "precision of the feathering:\n" "higher values force the mask to follow edges more closely\n" @@ -19646,12 +20326,12 @@ "Lower values give smoother gradients and better smoothing\n" "but may lead to inaccurate edges taping and halos" -#: ../src/iop/toneequal.c:3456 +#: ../src/iop/toneequal.c:3509 msgctxt "section" msgid "mask post-processing" msgstr "Mask post-processing" -#: ../src/iop/toneequal.c:3467 +#: ../src/iop/toneequal.c:3520 msgid "" "mask histogram span between the first and last deciles.\n" "the central line shows the average. orange bars appear at extrema if " @@ -19661,7 +20341,7 @@ "The central line shows the average. Orange bars appear at extrema if " "clipping occurs." -#: ../src/iop/toneequal.c:3475 +#: ../src/iop/toneequal.c:3528 msgid "" "0 disables the quantization.\n" "higher values posterize the luminance mask to help the guiding\n" @@ -19671,7 +20351,7 @@ "Higher values posterize the luminance mask to help the guiding\n" "Produce piece-wise smooth areas when using high feathering values" -#: ../src/iop/toneequal.c:3484 +#: ../src/iop/toneequal.c:3537 msgid "" "use this to slide the mask average exposure along channels\n" "for a better control of the exposure correction with the available nodes.\n" @@ -19681,7 +20361,7 @@ "for a better control of the exposure correction with the available nodes.\n" "The magic wand will auto-adjust the average exposure" -#: ../src/iop/toneequal.c:3497 +#: ../src/iop/toneequal.c:3550 msgid "" "use this to counter the averaging effect of the guided filter\n" "and dilate the mask contrast around -4EV\n" @@ -19695,7 +20375,7 @@ "for a better control of the exposure correction.\n" "The magic wand will auto-adjust the contrast" -#: ../src/iop/toneequal.c:3520 ../src/iop/toneequal.c:3523 +#: ../src/iop/toneequal.c:3573 ../src/iop/toneequal.c:3576 msgid "display exposure mask" msgstr "Display exposure mask" @@ -19711,21 +20391,21 @@ "This module is deprecated. Please use the local contrast or tone equalizer " "module instead." -#: ../src/iop/velvia.c:79 +#: ../src/iop/velvia.c:70 msgid "velvia" msgstr "Velvia" -#: ../src/iop/velvia.c:104 +#: ../src/iop/velvia.c:97 msgid "" "resaturate giving more weight to blacks, whites and low-saturation pixels" msgstr "" "Resaturate giving more weight to blacks, whites and low-saturation pixels" -#: ../src/iop/velvia.c:281 +#: ../src/iop/velvia.c:290 msgid "the strength of saturation boost" msgstr "The strength of saturation boost" -#: ../src/iop/velvia.c:284 +#: ../src/iop/velvia.c:293 msgid "how much to spare highlights and shadows" msgstr "How much to spare highlights and shadows" @@ -19737,7 +20417,7 @@ "This module is deprecated. Please use the Vibrance slider in the Color " "balance RGB module instead." -#: ../src/iop/vibrance.c:93 +#: ../src/iop/vibrance.c:95 msgid "" "saturate and reduce the lightness of the most saturated pixels\n" "to make the colors more vivid." @@ -19745,56 +20425,52 @@ "Saturate and reduce the lightness of the most saturated pixels\n" "to make the colors more vivid." -#: ../src/iop/vibrance.c:217 +#: ../src/iop/vibrance.c:211 msgid "the amount of vibrance" msgstr "The amount of vibrance" -#: ../src/iop/vignette.c:153 -msgid "vignetting" -msgstr "Vignetting" - -#: ../src/iop/vignette.c:158 +#: ../src/iop/vignette.c:119 msgid "simulate a lens fall-off close to edges" msgstr "Simulate a lens fall-off close to edges" -#: ../src/iop/vignette.c:940 +#: ../src/iop/vignette.c:1022 msgid "lomo" msgstr "Lomo" -#: ../src/iop/vignette.c:974 +#: ../src/iop/vignette.c:1061 msgctxt "section" msgid "position / form" msgstr "Position / form" -#: ../src/iop/vignette.c:981 +#: ../src/iop/vignette.c:1069 msgid "dithering" msgstr "Dithering" -#: ../src/iop/vignette.c:992 +#: ../src/iop/vignette.c:1081 msgid "the radii scale of vignette for start of fall-off" msgstr "The radii scale of vignette for start of fall-off" -#: ../src/iop/vignette.c:993 +#: ../src/iop/vignette.c:1083 msgid "the radii scale of vignette for end of fall-off" msgstr "The radii scale of vignette for end of fall-off" -#: ../src/iop/vignette.c:994 +#: ../src/iop/vignette.c:1084 msgid "strength of effect on brightness" msgstr "Strength of effect on brightness" -#: ../src/iop/vignette.c:995 +#: ../src/iop/vignette.c:1085 msgid "strength of effect on saturation" msgstr "Strength of effect on saturation" -#: ../src/iop/vignette.c:996 +#: ../src/iop/vignette.c:1086 msgid "horizontal offset of center of the effect" msgstr "Horizontal offset of center of the effect" -#: ../src/iop/vignette.c:997 +#: ../src/iop/vignette.c:1087 msgid "vertical offset of center of the effect" msgstr "Vertical offset of center of the effect" -#: ../src/iop/vignette.c:998 +#: ../src/iop/vignette.c:1090 msgid "" "shape factor\n" "0 produces a rectangle\n" @@ -19806,56 +20482,56 @@ "1 produces a circle or ellipse\n" "2 produces a diamond" -#: ../src/iop/vignette.c:1000 +#: ../src/iop/vignette.c:1094 msgid "enable to have the ratio automatically follow the image size" msgstr "Enable to have the ratio automatically follow the image size" -#: ../src/iop/vignette.c:1001 +#: ../src/iop/vignette.c:1095 msgid "width-to-height ratio" msgstr "Width-to-height ratio" -#: ../src/iop/vignette.c:1002 +#: ../src/iop/vignette.c:1097 msgid "add some level of random noise to prevent banding" msgstr "Add some level of random noise to prevent banding" -#: ../src/iop/vignette.c:1009 +#: ../src/iop/vignette.c:1105 #, c-format msgid "[%s on node] change vignette/feather size" msgstr "[%s on node] change vignette/feather size" -#: ../src/iop/vignette.c:1011 +#: ../src/iop/vignette.c:1108 #, c-format msgid "[%s on node] change vignette/feather size keeping ratio" msgstr "[%s on node] change vignette/feather size keeping ratio" -#: ../src/iop/vignette.c:1013 +#: ../src/iop/vignette.c:1111 #, c-format msgid "[%s on center] move vignette" msgstr "[%s on center] move vignette" -#: ../src/iop/watermark.c:371 +#: ../src/iop/watermark.c:416 msgid "watermark" msgstr "Watermark" -#: ../src/iop/watermark.c:376 +#: ../src/iop/watermark.c:421 msgid "overlay an SVG watermark like a signature on the picture" msgstr "Overlay an SVG watermark like a signature on the picture" -#: ../src/iop/watermark.c:1258 +#: ../src/iop/watermark.c:1306 msgid "marker" msgstr "Marker" -#: ../src/iop/watermark.c:1261 +#: ../src/iop/watermark.c:1309 #, c-format msgid "SVG watermarks in %s/watermarks or %s/watermarks" msgstr "SVG watermarks in %s/watermarks or %s/watermarks" #. Simple text -#: ../src/iop/watermark.c:1271 ../src/iop/watermark.c:1272 +#: ../src/iop/watermark.c:1319 ../src/iop/watermark.c:1320 msgid "text" msgstr "Text" -#: ../src/iop/watermark.c:1273 +#: ../src/iop/watermark.c:1321 msgid "" "text string, tag:\n" "$(WATERMARK_TEXT)" @@ -19863,16 +20539,16 @@ "Text string, tag:\n" "$(WATERMARK_TEXT)" -#: ../src/iop/watermark.c:1275 +#: ../src/iop/watermark.c:1323 msgid "content" msgstr "Content" #. Text font -#: ../src/iop/watermark.c:1280 +#: ../src/iop/watermark.c:1328 msgid "font" msgstr "Font" -#: ../src/iop/watermark.c:1285 +#: ../src/iop/watermark.c:1333 msgid "" "text font, tags:\n" "$(WATERMARK_FONT_FAMILY)\n" @@ -19884,7 +20560,7 @@ "$(WATERMARK_FONT_STYLE)\n" "$(WATERMARK_FONT_WEIGHT)" -#: ../src/iop/watermark.c:1300 +#: ../src/iop/watermark.c:1348 msgid "" "watermark color, tag:\n" "$(WATERMARK_COLOR)" @@ -19892,57 +20568,61 @@ "Watermark color, tag:\n" "$(WATERMARK_COLOR)" -#: ../src/iop/watermark.c:1302 +#: ../src/iop/watermark.c:1350 msgid "select watermark color" msgstr "Select watermark color" -#: ../src/iop/watermark.c:1304 +#: ../src/iop/watermark.c:1352 msgid "pick color from image" msgstr "Pick color from image" -#: ../src/iop/watermark.c:1317 +#: ../src/iop/watermark.c:1365 msgctxt "section" msgid "placement" msgstr "Placement" -#: ../src/iop/watermark.c:1330 +#: ../src/iop/watermark.c:1378 msgid "" -"scaling is done relative to this object\n" -"• image: fits marker into whole image\n" -"• larger border: fits larger marker border to larger image border\n" -"• smaller border: fits larger marker border to smaller image border\n" -"• height: fits marker height to image height, e.g. suitable for texts\n" -"• advanced options: activates two additional drop-down menus" -msgstr "" -"Scaling is done relative to this object:\n" -"• Image: fits marker into whole image\n" -"• Larger border: fits larger marker border to larger image border\n" -"• Smaller border: fits larger marker border to smaller image border\n" -"• Height: fits marker height to image height, e.g. suitable for texts\n" -"• Advanced options: activates two additional drop-down menus" - -#: ../src/iop/watermark.c:1339 -msgid "reference to which the marker should be scaled to" -msgstr "Reference to which the marker should be scaled to" - -#: ../src/iop/watermark.c:1343 -msgid "length of the marker which is used as scaling reference" -msgstr "Length of the marker which is used as scaling reference" +"choose how to scale the watermark\n" +"• image: scale watermark relative to whole image\n" +"• larger border: scale larger watermark border relative to larger image " +"border\n" +"• smaller border: scale larger watermark border relative to smaller image " +"border\n" +"• height: scale watermark height to image height\n" +"• advanced options: choose watermark and image dimensions independently" +msgstr "" +"Choose how to scale the watermark\n" +"• Image: scale watermark relative to whole image\n" +"• Larger border: scale larger watermark border relative to larger image " +"border\n" +"• Smaller border: scale larger watermark border relative to smaller image " +"border\n" +"• Height: scale watermark height to image height\n" +"• Advanced options: choose watermark and image dimensions independently" + +#: ../src/iop/watermark.c:1387 +msgid "reference image dimension against which to scale the watermark" +msgstr "Reference image dimension against which to scale the watermark" + +#: ../src/iop/watermark.c:1391 +msgid "watermark dimension to scale" +msgstr "Watermark dimension to scale" -#: ../src/iop/watermark.c:1347 ../src/libs/print_settings.c:2675 +#: ../src/iop/watermark.c:1395 ../src/libs/print_settings.c:2675 msgid "alignment" msgstr "Alignment" #. Let's add some tooltips and hook up some signals... -#: ../src/iop/watermark.c:1368 +#: ../src/iop/watermark.c:1416 msgid "the opacity of the watermark" msgstr "The opacity of the watermark" -#: ../src/iop/watermark.c:1369 +#: ../src/iop/watermark.c:1417 msgid "the scale of the watermark" msgstr "The scale of the watermark" -#: ../src/iop/watermark.c:1370 +#: ../src/iop/watermark.c:1418 msgid "the rotation of the watermark" msgstr "The rotation of the watermark" @@ -19950,7 +20630,7 @@ msgid "zone system" msgstr "Zone system" -#: ../src/iop/zonesystem.c:490 +#: ../src/iop/zonesystem.c:486 msgid "" "lightness zones\n" "use mouse scrollwheel to change the number of zones\n" @@ -19992,7 +20672,7 @@ msgid "camera control" msgstr "Camera control" -#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2360 +#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2679 msgid "modes" msgstr "Modes" @@ -20098,36 +20778,49 @@ msgid "WB" msgstr "WB" -#: ../src/libs/collect.c:151 +#: ../src/libs/collect.c:164 msgid "collections" msgstr "Collections" -#: ../src/libs/collect.c:407 +#: ../src/libs/collect.c:424 msgid "search filmroll" msgstr "Search filmroll" -#: ../src/libs/collect.c:490 +#: ../src/libs/collect.c:507 #, c-format msgid "problem selecting new path for the filmroll in %s" msgstr "Problem selecting new path for the filmroll in %s" -#: ../src/libs/collect.c:553 +#: ../src/libs/collect.c:579 msgid "search filmroll..." msgstr "Search filmroll..." -#: ../src/libs/collect.c:557 +#: ../src/libs/collect.c:584 msgid "remove..." msgstr "Remove..." -#: ../src/libs/collect.c:1225 +#: ../src/libs/collect.c:1310 msgid "uncategorized" msgstr "Uncategorized" -#: ../src/libs/collect.c:2138 +#: ../src/libs/collect.c:2172 ../src/libs/filters/rating_range.c:120 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:151 +#: ../src/libs/filters/rating_range.c:302 +msgid "rejected" +msgstr "Rejected" + +#: ../src/libs/collect.c:2175 ../src/libs/filters/rating_range.c:122 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:303 +msgid "not rated" +msgstr "Not rated" + +#: ../src/libs/collect.c:2359 msgid "use <, <=, >, >=, <>, =, [;] as operators" msgstr "Use <, <=, >, >=, <>, =, [;] as operators" -#: ../src/libs/collect.c:2142 +#: ../src/libs/collect.c:2363 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "star rating: 0-5\n" @@ -20137,7 +20830,7 @@ "Star rating: 0-5\n" "Rejected images: -1" -#: ../src/libs/collect.c:2149 +#: ../src/libs/collect.c:2371 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)" @@ -20145,12 +20838,12 @@ "Use <, <=, >, >=, <>, =, [;] as operators\n" "Type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)" -#: ../src/libs/collect.c:2156 +#: ../src/libs/collect.c:2378 #, no-c-format msgid "use `%' as wildcard and `,' to separate values" msgstr "Use `%' as wildcard and `,' to separate values" -#: ../src/libs/collect.c:2162 +#: ../src/libs/collect.c:2385 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20163,7 +20856,7 @@ "Shift+click to include only the current hierarchy (no suffix)\n" "Ctrl+click to include only sub-hierarchies (suffix `|%')" -#: ../src/libs/collect.c:2174 +#: ../src/libs/collect.c:2398 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20176,7 +20869,7 @@ "Shift+click to include only the current location (no suffix)\n" "Ctrl+click to include only sub-locations (suffix `|%')" -#: ../src/libs/collect.c:2186 +#: ../src/libs/collect.c:2411 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20189,111 +20882,103 @@ "Shift+click to include only the current folder (no suffix)\n" "Ctrl+click to include only sub-folders (suffix `|%')" -#: ../src/libs/collect.c:2197 +#: ../src/libs/collect.c:2422 #, no-c-format msgid "use `%' as wildcard" msgstr "Use `%' as wildcard" -#: ../src/libs/collect.c:2263 ../src/libs/collect.c:2277 -#: ../src/libs/collect.c:2800 +#: ../src/libs/collect.c:2488 ../src/libs/collect.c:2502 +#: ../src/libs/collect.c:3111 msgid "clear this rule" msgstr "Clear this rule" -#: ../src/libs/collect.c:2267 +#: ../src/libs/collect.c:2492 msgid "clear this rule or add new rules" msgstr "Clear this rule or add new rules" -#: ../src/libs/collect.c:2806 +#: ../src/libs/collect.c:3117 msgid "narrow down search" msgstr "Narrow down search" -#: ../src/libs/collect.c:2811 +#: ../src/libs/collect.c:3124 msgid "add more images" msgstr "Add more images" -#: ../src/libs/collect.c:2816 +#: ../src/libs/collect.c:3131 msgid "exclude images" msgstr "Exclude images" -#: ../src/libs/collect.c:2823 +#: ../src/libs/collect.c:3140 msgid "change to: and" msgstr "Change to: and" -#: ../src/libs/collect.c:2828 +#: ../src/libs/collect.c:3147 msgid "change to: or" msgstr "Change to: or" -#: ../src/libs/collect.c:2833 +#: ../src/libs/collect.c:3154 msgid "change to: except" msgstr "Change to: except" #. the different categories -#: ../src/libs/collect.c:2859 ../src/libs/filtering.c:857 -#: ../src/libs/filtering.c:924 ../src/libs/filtering.c:1558 -#: ../src/libs/filtering.c:1890 +#: ../src/libs/collect.c:3184 ../src/libs/filtering.c:883 +#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1620 +#: ../src/libs/filtering.c:1964 msgid "files" msgstr "Files" -#: ../src/libs/collect.c:2864 ../src/libs/export_metadata.c:312 -#: ../src/libs/filtering.c:862 ../src/libs/filtering.c:929 -#: ../src/libs/filtering.c:1566 ../src/libs/filtering.c:1894 -#: ../src/libs/image.c:464 ../src/libs/image.c:574 ../src/libs/image.c:582 -#: ../src/libs/metadata.c:676 ../src/libs/metadata_view.c:1226 +#: ../src/libs/collect.c:3189 ../src/libs/export_metadata.c:301 +#: ../src/libs/filtering.c:888 ../src/libs/filtering.c:955 +#: ../src/libs/filtering.c:1628 ../src/libs/filtering.c:1968 +#: ../src/libs/image.c:495 ../src/libs/image.c:633 ../src/libs/image.c:645 +#: ../src/libs/metadata.c:509 ../src/libs/metadata_view.c:1256 msgid "metadata" msgstr "Metadata" -#: ../src/libs/collect.c:2883 ../src/libs/filtering.c:883 -#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1892 +#: ../src/libs/collect.c:3208 ../src/libs/filtering.c:909 +#: ../src/libs/filtering.c:976 ../src/libs/filtering.c:1966 msgid "times" msgstr "Times" -#: ../src/libs/collect.c:2891 ../src/libs/filtering.c:891 -#: ../src/libs/filtering.c:958 ../src/libs/filtering.c:1590 +#: ../src/libs/collect.c:3216 ../src/libs/filtering.c:917 +#: ../src/libs/filtering.c:984 ../src/libs/filtering.c:1652 msgid "capture details" msgstr "Capture details" -#: ../src/libs/collect.c:2900 ../src/libs/filtering.c:900 -#: ../src/libs/filtering.c:967 ../src/libs/filtering.c:1602 -#: ../src/libs/filtering.c:1896 ../src/libs/tools/darktable.c:65 +#: ../src/libs/collect.c:3225 ../src/libs/filtering.c:926 +#: ../src/libs/filtering.c:993 ../src/libs/filtering.c:1664 +#: ../src/libs/filtering.c:1970 ../src/libs/tools/darktable.c:61 msgid "darktable" msgstr "Darktable" -#: ../src/libs/collect.c:2913 +#: ../src/libs/collect.c:3240 msgid "collections settings" msgstr "Collections settings" -#: ../src/libs/collect.c:2916 ../src/libs/export_metadata.c:288 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:228 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3472 -msgid "save" -msgstr "Save" - -#: ../src/libs/collect.c:2936 ../src/libs/export.c:1046 -#: ../src/libs/metadata.c:779 ../src/libs/metadata_view.c:1306 -#: ../src/libs/recentcollect.c:293 ../src/libs/tagging.c:3494 +#: ../src/libs/collect.c:3267 ../src/libs/export.c:1126 +#: ../src/libs/metadata.c:615 ../src/libs/metadata_view.c:1339 +#: ../src/libs/recentcollect.c:295 ../src/libs/tagging.c:3526 msgid "preferences..." msgstr "Preferences..." -#: ../src/libs/collect.c:3041 ../src/libs/filtering.c:1432 +#: ../src/libs/collect.c:3388 ../src/libs/filtering.c:1494 msgid "AND" msgstr "AND" -#: ../src/libs/collect.c:3046 ../src/libs/filtering.c:1437 +#: ../src/libs/collect.c:3393 ../src/libs/filtering.c:1499 msgid "OR" msgstr "OR" #. case DT_LIB_COLLECT_MODE_AND_NOT: -#: ../src/libs/collect.c:3051 ../src/libs/filtering.c:1442 +#: ../src/libs/collect.c:3398 ../src/libs/filtering.c:1504 msgid "BUT NOT" msgstr "BUT NOT" -#: ../src/libs/collect.c:3223 ../src/libs/filtering.c:2164 +#: ../src/libs/collect.c:3588 ../src/libs/filtering.c:2238 msgid "revert to a previous set of rules" msgstr "Revert to a previous set of rules" -#: ../src/libs/collect.c:3280 +#: ../src/libs/collect.c:3671 msgid "jump back to previous collection" msgstr "Jump back to previous collection" @@ -20317,7 +21002,7 @@ msgid "color picker" msgstr "Color picker" -#: ../src/libs/colorpicker.c:463 +#: ../src/libs/colorpicker.c:513 msgid "" "hover to highlight sample on canvas,\n" "click to lock sample,\n" @@ -20327,23 +21012,23 @@ "Click to lock sample,\n" "Right-click to load sample area into active color picker" -#: ../src/libs/colorpicker.c:561 ../src/libs/colorpicker.c:612 +#: ../src/libs/colorpicker.c:626 ../src/libs/colorpicker.c:693 msgid "click to (un)hide large color patch" msgstr "Click to (un)hide large color patch" -#: ../src/libs/colorpicker.c:575 +#: ../src/libs/colorpicker.c:649 msgid "statistic" msgstr "Statistic" -#: ../src/libs/colorpicker.c:576 +#: ../src/libs/colorpicker.c:650 msgid "select which statistic to show" msgstr "Select which statistic to show" -#: ../src/libs/colorpicker.c:585 +#: ../src/libs/colorpicker.c:660 msgid "select which color mode to use" msgstr "Select which color mode to use" -#: ../src/libs/colorpicker.c:594 +#: ../src/libs/colorpicker.c:671 msgid "" "turn on color picker\n" "ctrl+click or right-click to select an area" @@ -20351,21 +21036,21 @@ "Turn on color picker\n" "Ctrl+click or right-click to select an area" -#: ../src/libs/colorpicker.c:636 +#: ../src/libs/colorpicker.c:722 msgid "add sample" msgstr "Add sample" #. Adding the live samples section -#: ../src/libs/colorpicker.c:640 +#: ../src/libs/colorpicker.c:727 msgctxt "section" msgid "live samples" msgstr "Live samples" -#: ../src/libs/colorpicker.c:648 +#: ../src/libs/colorpicker.c:738 msgid "display samples on image/vectorscope" msgstr "Display samples on image/vectorscope" -#: ../src/libs/colorpicker.c:657 +#: ../src/libs/colorpicker.c:749 msgid "restrict scope to selection" msgstr "Restrict scope to selection" @@ -20377,10 +21062,6 @@ msgid "open sidecar file" msgstr "Open sidecar file" -#: ../src/libs/copy_history.c:149 -msgid "XMP sidecar files" -msgstr "XMP sidecar files" - #: ../src/libs/copy_history.c:166 #, c-format msgid "error loading file '%s'" @@ -20428,7 +21109,7 @@ msgid "choose which modules to paste to the target image(s)" msgstr "Choose which modules to paste to the target image(s)" -#: ../src/libs/copy_history.c:382 ../src/libs/image.c:588 +#: ../src/libs/copy_history.c:382 ../src/libs/image.c:655 msgid "paste" msgstr "Paste" @@ -20460,11 +21141,11 @@ "Discard history stack of\n" "all selected images" -#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:847 +#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:851 msgid "how to handle existing history" msgstr "How to handle existing history" -#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:850 +#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:854 msgid "append" msgstr "Append" @@ -20484,89 +21165,96 @@ msgid "write history stack and tags to XMP sidecar files" msgstr "Write history stack and tags to XMP sidecar files" -#: ../src/libs/duplicate.c:56 +#: ../src/libs/duplicate.c:60 msgid "duplicate manager" msgstr "Duplicate manager" -#: ../src/libs/duplicate.c:401 +#: ../src/libs/duplicate.c:407 msgid "create a 'virgin' duplicate of the image without any development" msgstr "Create a 'virgin' duplicate of the image without any development" -#: ../src/libs/duplicate.c:406 +#: ../src/libs/duplicate.c:412 msgid "create a duplicate of the image with same history stack" msgstr "Create a duplicate of the image with same history stack" -#. Export button -#: ../src/libs/export.c:153 ../src/libs/export.c:1281 +#: ../src/libs/export.c:160 msgid "export" msgstr "Export" #: ../src/libs/export.c:306 +msgid "invalid format for export selected" +msgstr "Invalid format for export selected" + +#: ../src/libs/export.c:311 +msgid "invalid storage for export selected" +msgstr "Invalid storage for export selected" + +#: ../src/libs/export.c:322 msgid "export to disk" msgstr "Export to disk" -#: ../src/libs/export.c:485 +#: ../src/libs/export.c:516 #, c-format msgid "which is equal to %s × %s px" msgstr "Which is equal to %s × %s px" -#: ../src/libs/export.c:520 +#: ../src/libs/export.c:555 msgctxt "unit" msgid "in" msgstr "in" -#: ../src/libs/export.c:1060 +#: ../src/libs/export.c:1141 msgctxt "section" msgid "storage options" msgstr "Storage options" -#: ../src/libs/export.c:1064 +#: ../src/libs/export.c:1145 msgid "target storage" msgstr "Target storage" -#: ../src/libs/export.c:1086 +#: ../src/libs/export.c:1171 msgctxt "section" msgid "format options" msgstr "Format options" -#: ../src/libs/export.c:1090 +#: ../src/libs/export.c:1175 msgid "file format" msgstr "File format" -#: ../src/libs/export.c:1107 +#: ../src/libs/export.c:1193 msgctxt "section" msgid "global options" msgstr "Global options" -#: ../src/libs/export.c:1110 +#: ../src/libs/export.c:1196 msgid "set size" msgstr "Set size" -#: ../src/libs/export.c:1111 +#: ../src/libs/export.c:1197 msgid "choose a method for setting the output size" msgstr "Choose a method for setting the output size" -#: ../src/libs/export.c:1114 +#: ../src/libs/export.c:1200 msgid "in pixels (for file)" msgstr "In pixels (for file)" -#: ../src/libs/export.c:1115 +#: ../src/libs/export.c:1201 msgid "in cm (for print)" msgstr "In cm (for print)" -#: ../src/libs/export.c:1116 +#: ../src/libs/export.c:1202 msgid "in inch (for print)" msgstr "In inch (for print)" -#: ../src/libs/export.c:1117 +#: ../src/libs/export.c:1203 msgid "by scale (for file)" msgstr "By scale (for file)" -#: ../src/libs/export.c:1119 +#: ../src/libs/export.c:1206 msgid "print width" msgstr "Print width" -#: ../src/libs/export.c:1120 ../src/libs/export.c:1132 +#: ../src/libs/export.c:1208 ../src/libs/export.c:1225 msgid "" "maximum output width limit.\n" "click middle mouse button to reset to 0." @@ -20574,11 +21262,11 @@ "Maximum output width limit.\n" "Click middle mouse button to reset to 0." -#: ../src/libs/export.c:1123 +#: ../src/libs/export.c:1212 msgid "print height" msgstr "Print height" -#: ../src/libs/export.c:1124 ../src/libs/export.c:1136 +#: ../src/libs/export.c:1214 ../src/libs/export.c:1231 msgid "" "maximum output height limit.\n" "click middle mouse button to reset to 0." @@ -20586,19 +21274,19 @@ "Maximum output height limit.\n" "Click middle mouse button to reset to 0." -#: ../src/libs/export.c:1128 +#: ../src/libs/export.c:1220 msgid "resolution in dot per inch" msgstr "Resolution in dot per inch" -#: ../src/libs/export.c:1148 +#: ../src/libs/export.c:1244 msgid "@" msgstr "@" -#: ../src/libs/export.c:1161 ../src/libs/tools/global_toolbox.c:217 +#: ../src/libs/export.c:1258 ../src/libs/tools/global_toolbox.c:217 msgid "px" msgstr "px" -#: ../src/libs/export.c:1166 +#: ../src/libs/export.c:1266 msgid "" "it can be an integer, decimal number or simple fraction.\n" "zero or empty values are equal to 1.\n" @@ -20608,36 +21296,36 @@ "Zero or empty values are equal to 1.\n" "Click middle mouse button to reset to 1." -#: ../src/libs/export.c:1185 +#: ../src/libs/export.c:1292 msgid "allow upscaling" msgstr "Allow upscaling" -#: ../src/libs/export.c:1191 +#: ../src/libs/export.c:1301 msgid "high quality resampling" msgstr "High quality resampling" -#: ../src/libs/export.c:1192 +#: ../src/libs/export.c:1302 msgid "do high quality resampling during export" msgstr "Do high quality resampling during export" -#: ../src/libs/export.c:1198 +#: ../src/libs/export.c:1310 msgid "store masks" msgstr "Store masks" -#: ../src/libs/export.c:1199 +#: ../src/libs/export.c:1311 msgid "store masks as layers in exported images. only works for some formats." msgstr "Store masks as layers in exported images. Only works for some formats." -#: ../src/libs/export.c:1210 ../src/libs/export.c:1245 +#: ../src/libs/export.c:1322 ../src/libs/export.c:1357 #: ../src/libs/print_settings.c:2777 ../src/libs/print_settings.c:2823 msgid "image settings" msgstr "Image settings" -#: ../src/libs/export.c:1220 ../src/libs/print_settings.c:2811 +#: ../src/libs/export.c:1332 ../src/libs/print_settings.c:2811 msgid "output ICC profiles" msgstr "output ICC profiles" -#: ../src/libs/export.c:1228 +#: ../src/libs/export.c:1340 msgid "" "• perceptual: smoothly moves out-of-gamut colors into gamut, preserving " "gradations,\n" @@ -20675,45 +21363,54 @@ "destination medium and do nothing else. Mainly used when proofing colors.\n" "(not suited for photography)." -#: ../src/libs/export.c:1255 ../src/libs/print_settings.c:2833 +#: ../src/libs/export.c:1367 ../src/libs/print_settings.c:2833 msgid "style" msgstr "Style" -#: ../src/libs/export.c:1258 +#: ../src/libs/export.c:1370 msgid "temporary style to use while exporting" msgstr "Temporary style to use while exporting" -#: ../src/libs/export.c:1263 ../src/libs/print_settings.c:2876 +#: ../src/libs/export.c:1377 ../src/libs/print_settings.c:2876 msgid "" "whether the style items are appended to the history or replacing the history" msgstr "" "Whether the style items are appended to the history or replacing the history" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "replace history" msgstr "Replace history" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "append history" msgstr "Append history" -#: ../src/libs/export.c:1282 +#: ../src/libs/export.c:1398 +msgctxt "actionbutton" +msgid "export" +msgstr "Export" + +#: ../src/libs/export.c:1400 msgid "export with current settings" msgstr "Export with current settings" -#: ../src/libs/export_metadata.c:163 +#: ../src/libs/export_metadata.c:148 msgid "select tag" msgstr "Select tag" -#: ../src/libs/export_metadata.c:164 -msgid "add" -msgstr "Add" +#: ../src/libs/export_metadata.c:150 +msgid "_add" +msgstr "_Add" + +#: ../src/libs/export_metadata.c:151 ../src/libs/geotagging.c:811 +msgid "_done" +msgstr "_Done" -#: ../src/libs/export_metadata.c:175 +#: ../src/libs/export_metadata.c:162 msgid "list filter" msgstr "List filter" -#: ../src/libs/export_metadata.c:186 +#: ../src/libs/export_metadata.c:173 msgid "" "list of available tags. click 'add' button or double-click on tag to add the " "selected one" @@ -20721,31 +21418,31 @@ "List of available tags. Click 'add' button or double-click on tag to add the " "selected one" -#: ../src/libs/export_metadata.c:287 +#: ../src/libs/export_metadata.c:274 msgid "edit metadata exportation" msgstr "Edit metadata exportation" -#: ../src/libs/export_metadata.c:304 +#: ../src/libs/export_metadata.c:293 msgid "general settings" msgstr "General settings" -#: ../src/libs/export_metadata.c:309 +#: ../src/libs/export_metadata.c:298 msgid "EXIF data" msgstr "EXIF data" -#: ../src/libs/export_metadata.c:310 +#: ../src/libs/export_metadata.c:299 msgid "export EXIF metadata" msgstr "Export EXIF metadata" -#: ../src/libs/export_metadata.c:313 +#: ../src/libs/export_metadata.c:302 msgid "export darktable XMP metadata (from metadata editor module)" msgstr "Export Darktable XMP metadata (from metadata editor module)" -#: ../src/libs/export_metadata.c:323 +#: ../src/libs/export_metadata.c:312 msgid "only embedded" msgstr "Only embedded" -#: ../src/libs/export_metadata.c:324 +#: ../src/libs/export_metadata.c:313 msgid "" "per default the interface sends some (limited) metadata beside the image to " "remote storage.\n" @@ -20761,39 +21458,39 @@ "If remote storage doesn't understand darktable XMP metadata, you can use " "calculated metadata instead" -#: ../src/libs/export_metadata.c:330 ../src/libs/image.c:566 +#: ../src/libs/export_metadata.c:319 ../src/libs/image.c:623 msgid "geo tags" msgstr "Geo tags" -#: ../src/libs/export_metadata.c:331 +#: ../src/libs/export_metadata.c:320 msgid "export geo tags" msgstr "Export geo tags" -#: ../src/libs/export_metadata.c:334 +#: ../src/libs/export_metadata.c:323 msgid "export tags (to Xmp.dc.Subject)" msgstr "Export tags (to Xmp.dc.Subject)" -#: ../src/libs/export_metadata.c:342 +#: ../src/libs/export_metadata.c:331 msgid "private tags" msgstr "Private tags" -#: ../src/libs/export_metadata.c:343 +#: ../src/libs/export_metadata.c:332 msgid "export private tags" msgstr "Export private tags" -#: ../src/libs/export_metadata.c:345 +#: ../src/libs/export_metadata.c:334 msgid "synonyms" msgstr "Synonyms" -#: ../src/libs/export_metadata.c:346 +#: ../src/libs/export_metadata.c:335 msgid "export tags synonyms" msgstr "Export tags synonyms" -#: ../src/libs/export_metadata.c:348 +#: ../src/libs/export_metadata.c:337 msgid "omit hierarchy" msgstr "Omit hierarchy" -#: ../src/libs/export_metadata.c:349 +#: ../src/libs/export_metadata.c:338 msgid "" "only the last part of the hierarchical tags is included. can be useful if " "categories are not used" @@ -20801,19 +21498,19 @@ "Only the last part of the hierarchical tags is included. Can be useful if " "categories are not used" -#: ../src/libs/export_metadata.c:352 +#: ../src/libs/export_metadata.c:341 msgid "hierarchical tags" msgstr "Hierarchical tags" -#: ../src/libs/export_metadata.c:353 +#: ../src/libs/export_metadata.c:342 msgid "export hierarchical tags (to Xmp.lr.Hierarchical Subject)" msgstr "Export hierarchical tags (to Xmp.lr.Hierarchical Subject)" -#: ../src/libs/export_metadata.c:355 +#: ../src/libs/export_metadata.c:344 msgid "develop history" msgstr "Develop history" -#: ../src/libs/export_metadata.c:356 +#: ../src/libs/export_metadata.c:345 msgid "" "export darktable development data (recovery purpose in case of loss of " "database or XMP file)" @@ -20821,19 +21518,19 @@ "Export Darktable development data (recovery purpose in case of loss of " "database or XMP file)" -#: ../src/libs/export_metadata.c:363 +#: ../src/libs/export_metadata.c:352 msgid "per metadata settings" msgstr "Per metadata settings" -#: ../src/libs/export_metadata.c:376 +#: ../src/libs/export_metadata.c:364 msgid "redefined tag" msgstr "Redefined tag" -#: ../src/libs/export_metadata.c:382 +#: ../src/libs/export_metadata.c:370 msgid "formula" msgstr "Formula" -#: ../src/libs/export_metadata.c:385 +#: ../src/libs/export_metadata.c:373 msgid "" "list of calculated metadata\n" "click on '+' button to select and add new metadata\n" @@ -20857,15 +21554,15 @@ "Click on formula cell to edit\n" "Type '$(' to activate the completion and see the list of variables" -#: ../src/libs/export_metadata.c:442 +#: ../src/libs/export_metadata.c:430 msgid "add an output metadata tag" msgstr "Add an output metadata tag" -#: ../src/libs/export_metadata.c:447 +#: ../src/libs/export_metadata.c:435 msgid "delete metadata tag" msgstr "Delete metadata tag" -#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:128 +#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:130 msgid "full path" msgstr "Full path" @@ -20885,48 +21582,48 @@ msgid "shuffle" msgstr "Shuffle" -#: ../src/libs/filtering.c:263 +#: ../src/libs/filtering.c:269 msgid "collection filters" msgstr "Collection filters" -#: ../src/libs/filtering.c:296 +#: ../src/libs/filtering.c:302 msgid "initial setting" msgstr "Initial setting" -#: ../src/libs/filtering.c:315 +#: ../src/libs/filtering.c:321 msgid "imported: last 24h" msgstr "Imported: last 24h" -#: ../src/libs/filtering.c:320 +#: ../src/libs/filtering.c:326 msgid "imported: last 30 days" msgstr "Imported: last 30 days" -#: ../src/libs/filtering.c:326 +#: ../src/libs/filtering.c:332 msgid "taken: last 24h" msgstr "Taken: last 24h" -#: ../src/libs/filtering.c:330 +#: ../src/libs/filtering.c:336 msgid "taken: last 30 days" msgstr "Taken: last 30 days" -#: ../src/libs/filtering.c:702 +#: ../src/libs/filtering.c:728 msgid "click or click&drag to select one or multiple values" msgstr "Click or click&drag to select one or multiple values" -#: ../src/libs/filtering.c:703 +#: ../src/libs/filtering.c:729 msgid "right-click opens a menu to select the available values" msgstr "Right-click opens a menu to select the available values" -#: ../src/libs/filtering.c:800 +#: ../src/libs/filtering.c:826 #, c-format msgid "you can't have more than %d rules" msgstr "You can't have more than %d rules" -#: ../src/libs/filtering.c:922 ../src/libs/filtering.c:1556 +#: ../src/libs/filtering.c:948 ../src/libs/filtering.c:1618 msgid "rule property" msgstr "Rule property" -#: ../src/libs/filtering.c:987 +#: ../src/libs/filtering.c:1013 msgid "" "rule property\n" "this can't be changed as the rule is pinned to the toolbar" @@ -20934,12 +21631,12 @@ "Rule property\n" "This can't be changed as the rule is pinned to the toolbar" -#: ../src/libs/filtering.c:1035 +#: ../src/libs/filtering.c:1095 msgctxt "quickfilter" msgid "filter" msgstr "Filter" -#: ../src/libs/filtering.c:1062 +#: ../src/libs/filtering.c:1124 msgid "" "this rule is pinned to the top toolbar\n" "click to un-pin" @@ -20947,114 +21644,122 @@ "This rule is pinned to the top toolbar\n" "Click to un-pin" -#: ../src/libs/filtering.c:1063 +#: ../src/libs/filtering.c:1125 msgid "you can't disable the rule as it is pinned to the toolbar" msgstr "You can't disable the rule as it is pinned to the toolbar" -#: ../src/libs/filtering.c:1064 +#: ../src/libs/filtering.c:1126 msgid "you can't remove the rule as it is pinned to the toolbar" msgstr "You can't remove the rule as it is pinned to the toolbar" -#: ../src/libs/filtering.c:1069 +#: ../src/libs/filtering.c:1131 msgid "click to pin this rule to the top toolbar" msgstr "Click to pin this rule to the top toolbar" -#: ../src/libs/filtering.c:1070 +#: ../src/libs/filtering.c:1132 msgid "remove this collect rule" msgstr "Remove this collect rule" -#: ../src/libs/filtering.c:1072 +#: ../src/libs/filtering.c:1134 msgid "this rule is enabled" msgstr "This rule is enabled" -#: ../src/libs/filtering.c:1074 +#: ../src/libs/filtering.c:1136 msgid "this rule is disabled" msgstr "This rule is disabled" -#: ../src/libs/filtering.c:1202 +#: ../src/libs/filtering.c:1264 msgid "or" msgstr "or" -#: ../src/libs/filtering.c:1203 +#: ../src/libs/filtering.c:1265 msgid "and not" msgstr "and not" -#: ../src/libs/filtering.c:1205 +#: ../src/libs/filtering.c:1267 msgid "define how this rule should interact with the previous one" msgstr "Define how this rule should interact with the previous one" -#: ../src/libs/filtering.c:1466 +#: ../src/libs/filtering.c:1528 msgid " (off)" msgstr " (off)" -#: ../src/libs/filtering.c:1663 +#: ../src/libs/filtering.c:1725 msgid "you can't add more rules." msgstr "You can't add more rules." -#. fill the popover with all pinned rules -#: ../src/libs/filtering.c:1696 +#: ../src/libs/filtering.c:1759 msgid "shown filters" msgstr "Shown filters" -#: ../src/libs/filtering.c:1711 +#: ../src/libs/filtering.c:1774 msgid "new filter" msgstr "New filter" -#: ../src/libs/filtering.c:1884 +#. the actions part of the popover +#: ../src/libs/filtering.c:1781 +msgid "actions" +msgstr "Actions" + +#: ../src/libs/filtering.c:1784 +msgid "reset quickfilters" +msgstr "Reset quickfilters" + +#: ../src/libs/filtering.c:1957 msgid "sort order" msgstr "Sort order" -#: ../src/libs/filtering.c:1886 +#: ../src/libs/filtering.c:1960 msgid "determine the sort order of shown images" msgstr "Determine the sort order of shown images" -#: ../src/libs/filtering.c:1906 +#: ../src/libs/filtering.c:1980 msgid "sort direction" msgstr "Sort direction" -#: ../src/libs/filtering.c:1911 +#: ../src/libs/filtering.c:1985 msgid "remove this sort order" msgstr "Remove this sort order" -#: ../src/libs/filtering.c:1995 +#: ../src/libs/filtering.c:2069 #, c-format msgid "you can't have more than %d sort orders" msgstr "You can't have more than %d sort orders" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "DESC" msgstr "DESC" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "ASC" msgstr "ASC" -#: ../src/libs/filtering.c:2160 +#: ../src/libs/filtering.c:2234 msgid "new rule" msgstr "New rule" -#: ../src/libs/filtering.c:2161 +#: ../src/libs/filtering.c:2235 msgid "append new rule to collect images" msgstr "Append new rule to collect images" -#: ../src/libs/filtering.c:2172 ../src/libs/tools/filter.c:116 +#: ../src/libs/filtering.c:2246 ../src/libs/tools/filter.c:116 msgid "sort by" msgstr "Sort by" -#: ../src/libs/filtering.c:2180 +#: ../src/libs/filtering.c:2254 msgid "new sort" msgstr "New sort" -#: ../src/libs/filtering.c:2181 +#: ../src/libs/filtering.c:2255 msgid "append new sort to order images" msgstr "Append new sort to order images" -#: ../src/libs/filtering.c:2184 +#: ../src/libs/filtering.c:2258 msgid "revert to a previous set of sort orders" msgstr "Revert to a previous set of sort orders" #. we change the tooltip of the reset button here, as we are sure the header is defined now -#: ../src/libs/filtering.c:2234 +#: ../src/libs/filtering.c:2308 msgid "" "reset\n" "ctrl+click to remove pinned rules too" @@ -21091,7 +21796,7 @@ #: ../src/libs/filters/grouping.c:167 ../src/libs/filters/history.c:153 #: ../src/libs/filters/local_copy.c:142 ../src/libs/filters/module_order.c:161 #: ../src/libs/filters/rating.c:199 ../src/libs/filters/rating.c:210 -#: ../src/libs/filters/rating_range.c:325 +#: ../src/libs/filters/rating_range.c:356 msgid "rules" msgstr "Rules" @@ -21105,7 +21810,7 @@ "And (∩): images having all selected color labels\n" "Or (∪): images with at least one of the selected color labels" -#: ../src/libs/filters/filename.c:365 +#: ../src/libs/filters/filename.c:370 msgid "" "enter filename to search.\n" "multiple values can be separated by ','\n" @@ -21117,11 +21822,11 @@ "\n" "Right-click to get existing filenames" -#: ../src/libs/filters/filename.c:376 +#: ../src/libs/filters/filename.c:381 msgid "extension" msgstr "Extension" -#: ../src/libs/filters/filename.c:377 +#: ../src/libs/filters/filename.c:382 msgid "" "enter extension to search with starting dot\n" "multiple values can be separated by ','\n" @@ -21135,7 +21840,7 @@ "\n" "Right-click to get existing extensions" -#: ../src/libs/filters/filename.c:405 +#: ../src/libs/filters/filename.c:410 msgid "" "click to select filename\n" "ctrl+click to select multiple values" @@ -21143,7 +21848,7 @@ "Click to select filename\n" "Ctrl+click to select multiple values" -#: ../src/libs/filters/filename.c:432 +#: ../src/libs/filters/filename.c:437 msgid "" "click to select extension\n" "ctrl+click to select multiple values" @@ -21151,6 +21856,11 @@ "Click to select extension\n" "Ctrl+click to select multiple values" +#. the button to close the popup +#: ../src/libs/filters/filename.c:457 +msgid "ok" +msgstr "OK" + #: ../src/libs/filters/grouping.c:141 ../src/libs/filters/grouping.c:169 msgid "ungrouped images" msgstr "Ungrouped images" @@ -21162,8 +21872,8 @@ #. predefined selections #: ../src/libs/filters/grouping.c:169 ../src/libs/filters/history.c:38 #: ../src/libs/filters/local_copy.c:38 ../src/libs/filters/module_order.c:155 -#: ../src/libs/filters/rating_range.c:56 ../src/libs/filters/rating_range.c:72 -#: ../src/libs/filters/rating_range.c:109 ../src/libs/filters/ratio.c:68 +#: ../src/libs/filters/rating_range.c:59 ../src/libs/filters/rating_range.c:83 +#: ../src/libs/filters/rating_range.c:131 ../src/libs/filters/ratio.c:68 #: ../src/libs/filters/ratio.c:81 msgid "all images" msgstr "All images" @@ -21188,7 +21898,7 @@ msgid "filter by images rating" msgstr "Filter by images rating" -#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:542 +#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:596 #: ../src/libs/tools/ratings.c:56 msgid "ratings" msgstr "Ratings" @@ -21197,49 +21907,33 @@ msgid "unstarred only" msgstr "Unstarred only" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:60 -#: ../src/libs/filters/rating_range.c:75 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:65 +#: ../src/libs/filters/rating_range.c:89 msgid "rejected only" msgstr "Rejected only" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:58 -#: ../src/libs/filters/rating_range.c:73 ../src/libs/filters/rating_range.c:138 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:62 +#: ../src/libs/filters/rating_range.c:86 ../src/libs/filters/rating_range.c:158 msgid "all except rejected" msgstr "All except rejected" -#: ../src/libs/filters/rating_range.c:61 ../src/libs/filters/rating_range.c:76 +#: ../src/libs/filters/rating_range.c:67 ../src/libs/filters/rating_range.c:91 msgid "not rated only" msgstr "Not rated only" -#: ../src/libs/filters/rating_range.c:99 ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:131 -#: ../src/libs/filters/rating_range.c:275 -msgid "rejected" -msgstr "Rejected" - -#: ../src/libs/filters/rating_range.c:101 -#: ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:276 -msgid "not rated" -msgstr "Not rated" - -#: ../src/libs/filters/rating_range.c:117 -msgid "only" -msgstr "Only" - -#: ../src/libs/filters/rating_range.c:269 +#: ../src/libs/filters/rating_range.c:296 msgid "better" msgstr "Better" -#: ../src/libs/filters/rating_range.c:270 +#: ../src/libs/filters/rating_range.c:297 msgid "worse" msgstr "Worse" -#: ../src/libs/filters/rating_range.c:271 +#: ../src/libs/filters/rating_range.c:298 msgid "cap" msgstr "Cap" -#: ../src/libs/filters/rating_range.c:286 +#: ../src/libs/filters/rating_range.c:313 msgid "rating filter" msgstr "Rating filter" @@ -21276,7 +21970,7 @@ msgid "apply offset and geo-location" msgstr "Apply offset and geo-location" -#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1910 +#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1914 msgid "apply geo-location" msgstr "Apply geo-location" @@ -21288,49 +21982,49 @@ "Apply offset and geo-location to matching images\n" "Double operation: two Ctrl-z to undo" -#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1911 +#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1915 msgid "apply geo-location to matching images" msgstr "Apply geo-location to matching images" -#: ../src/libs/geotagging.c:810 +#: ../src/libs/geotagging.c:809 msgid "GPX file track segments" msgstr "GPX file track segments" -#: ../src/libs/geotagging.c:830 ../src/libs/geotagging.c:1869 +#: ../src/libs/geotagging.c:831 ../src/libs/geotagging.c:1873 msgid "start time" msgstr "Start time" -#: ../src/libs/geotagging.c:831 +#: ../src/libs/geotagging.c:832 msgid "end time" msgstr "End time" -#: ../src/libs/geotagging.c:832 ../src/libs/geotagging.c:1871 +#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1875 msgid "points" msgstr "Points" -#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1873 -#: ../src/libs/image.c:463 +#: ../src/libs/geotagging.c:834 ../src/libs/geotagging.c:1877 +#: ../src/libs/image.c:494 msgid "images" msgstr "Images" -#: ../src/libs/geotagging.c:926 +#: ../src/libs/geotagging.c:927 msgid "open GPX file" msgstr "Open GPX file" -#: ../src/libs/geotagging.c:927 ../src/libs/tools/lighttable.c:333 -#: ../src/libs/tools/lighttable.c:402 ../src/views/darkroom.c:2232 +#: ../src/libs/geotagging.c:928 ../src/libs/tools/lighttable.c:330 +#: ../src/libs/tools/lighttable.c:399 ../src/views/darkroom.c:2091 msgid "preview" msgstr "Preview" -#: ../src/libs/geotagging.c:940 +#: ../src/libs/geotagging.c:941 msgid "GPS data exchange format" msgstr "GPS data exchange format" -#: ../src/libs/geotagging.c:1739 +#: ../src/libs/geotagging.c:1743 msgid "date/time" msgstr "Date/time" -#: ../src/libs/geotagging.c:1740 +#: ../src/libs/geotagging.c:1744 msgid "" "enter the new date/time (YYYY:MM:DD hh:mm:ss[.sss])\n" "key in the new numbers or scroll over the cell" @@ -21338,40 +22032,40 @@ "Enter the new date/time (YYYY:MM:DD hh:mm:ss[.sss])\n" "Key in the new numbers or scroll over the cell" -#: ../src/libs/geotagging.c:1744 +#: ../src/libs/geotagging.c:1748 msgid "original date/time" msgstr "Original date/time" -#: ../src/libs/geotagging.c:1748 +#: ../src/libs/geotagging.c:1752 msgid "lock date/time offset value to apply it onto another selection" msgstr "Lock date/time offset value to apply it onto another selection" -#: ../src/libs/geotagging.c:1752 +#: ../src/libs/geotagging.c:1756 msgid "date/time offset" msgstr "Date/time offset" -#: ../src/libs/geotagging.c:1753 +#: ../src/libs/geotagging.c:1757 msgid "offset or difference ([-]dd hh:mm:ss[.sss])" msgstr "Offset or difference ([-]dd hh:mm:ss[.sss])" #. apply -#: ../src/libs/geotagging.c:1757 +#: ../src/libs/geotagging.c:1761 msgid "apply offset" msgstr "Apply offset" -#: ../src/libs/geotagging.c:1758 +#: ../src/libs/geotagging.c:1762 msgid "apply offset to selected images" msgstr "Apply offset to selected images" -#: ../src/libs/geotagging.c:1761 +#: ../src/libs/geotagging.c:1765 msgid "apply date/time" msgstr "Apply date/time" -#: ../src/libs/geotagging.c:1762 +#: ../src/libs/geotagging.c:1766 msgid "apply the same date/time to selected images" msgstr "Apply the same date/time to selected images" -#: ../src/libs/geotagging.c:1772 +#: ../src/libs/geotagging.c:1776 msgid "" "start typing to show a list of permitted values and select your timezone.\n" "press enter to confirm, so that the asterisk * disappears" @@ -21380,24 +22074,24 @@ "Press enter to confirm, so that the asterisk * disappears" #. gpx -#: ../src/libs/geotagging.c:1815 +#: ../src/libs/geotagging.c:1819 msgid "apply GPX track file..." msgstr "Apply GPX track file..." -#: ../src/libs/geotagging.c:1816 +#: ../src/libs/geotagging.c:1820 msgid "parses a GPX file and updates location of selected images" msgstr "Parses a GPX file and updates location of selected images" -#: ../src/libs/geotagging.c:1827 +#: ../src/libs/geotagging.c:1831 msgctxt "section" msgid "GPX file" msgstr "GPX file" -#: ../src/libs/geotagging.c:1834 +#: ../src/libs/geotagging.c:1838 msgid "select a GPX track file..." msgstr "Select a GPX track file..." -#: ../src/libs/geotagging.c:1851 +#: ../src/libs/geotagging.c:1855 msgid "" "list of track segments in the GPX file, for each segment:\n" "- the start date/time in local time (LT)\n" @@ -21413,172 +22107,180 @@ "zone\n" "- more detailed time information hovering the row" -#: ../src/libs/geotagging.c:1890 +#: ../src/libs/geotagging.c:1894 msgid "preview images" msgstr "Preview images" -#: ../src/libs/geotagging.c:1895 +#: ../src/libs/geotagging.c:1899 msgid "show on map matching images" msgstr "Show on map matching images" -#: ../src/libs/geotagging.c:1898 +#: ../src/libs/geotagging.c:1902 msgid "select images" msgstr "Select images" -#: ../src/libs/geotagging.c:1899 +#: ../src/libs/geotagging.c:1903 msgid "select matching images" msgstr "Select matching images" -#: ../src/libs/geotagging.c:1907 +#: ../src/libs/geotagging.c:1911 msgid "number of matching images versus selected images" msgstr "Number of matching images versus selected images" -#: ../src/libs/histogram.c:133 +#: ../src/libs/histogram.c:110 msgid "monochromatic" msgstr "Monochromatic" -#: ../src/libs/histogram.c:134 +#: ../src/libs/histogram.c:111 msgid "analogous" msgstr "Analogous" -#: ../src/libs/histogram.c:135 +#: ../src/libs/histogram.c:112 msgid "analogous complementary" msgstr "Analogous complementary" -#: ../src/libs/histogram.c:136 +#: ../src/libs/histogram.c:113 msgid "complementary" msgstr "Complementary" -#: ../src/libs/histogram.c:137 +#: ../src/libs/histogram.c:114 msgid "split complementary" msgstr "Split complementary" -#: ../src/libs/histogram.c:138 +#: ../src/libs/histogram.c:115 msgid "dyad" msgstr "Dyad" -#: ../src/libs/histogram.c:139 +#: ../src/libs/histogram.c:116 msgid "triad" msgstr "Triad" -#: ../src/libs/histogram.c:140 +#: ../src/libs/histogram.c:117 msgid "tetrad" msgstr "Tetrad" -#: ../src/libs/histogram.c:146 +#: ../src/libs/histogram.c:123 msgid "vectorscope" msgstr "Vectorscope" -#: ../src/libs/histogram.c:147 +#: ../src/libs/histogram.c:124 msgid "waveform" msgstr "Waveform" -#: ../src/libs/histogram.c:148 +#: ../src/libs/histogram.c:125 msgid "RGB parade" msgstr "RGB parade" -#: ../src/libs/histogram.c:149 ../src/libs/histogram.c:2309 +#: ../src/libs/histogram.c:126 ../src/libs/histogram.c:2622 msgid "histogram" msgstr "Histogram" -#: ../src/libs/histogram.c:243 +#: ../src/libs/histogram.c:218 msgid "scopes" msgstr "Scopes" -#: ../src/libs/histogram.c:1542 +#: ../src/libs/histogram.c:757 +msgid "" +"unsupported vectorscope profile selected, it will be replaced with linear " +"Rec2020" +msgstr "" +"Unsupported vectorscope profile selected, it will be replaced by linear " +"Rec2020" + +#: ../src/libs/histogram.c:1715 msgid "scroll to coarse-rotate" msgstr "Scroll to coarse-rotate" -#: ../src/libs/histogram.c:1543 +#: ../src/libs/histogram.c:1716 msgid "ctrl+scroll to fine rotate" msgstr "Ctrl+scroll to fine rotate" -#: ../src/libs/histogram.c:1544 +#: ../src/libs/histogram.c:1717 msgid "shift+scroll to change width" msgstr "Shift+scroll to change width" -#: ../src/libs/histogram.c:1545 +#: ../src/libs/histogram.c:1718 msgid "alt+scroll to cycle" msgstr "Alt+scroll to cycle" -#: ../src/libs/histogram.c:1556 +#: ../src/libs/histogram.c:1732 msgid "drag to change black point" msgstr "Drag to change black point" -#: ../src/libs/histogram.c:1557 ../src/libs/histogram.c:1564 +#: ../src/libs/histogram.c:1733 ../src/libs/histogram.c:1740 msgid "double-click resets" msgstr "Double-click resets" -#: ../src/libs/histogram.c:1563 +#: ../src/libs/histogram.c:1739 msgid "drag to change exposure" msgstr "Drag to change exposure" -#: ../src/libs/histogram.c:1725 ../src/libs/histogram.c:1765 +#: ../src/libs/histogram.c:1923 ../src/libs/histogram.c:1965 msgid "set scale to linear" msgstr "Set scale to linear" -#: ../src/libs/histogram.c:1730 ../src/libs/histogram.c:1770 +#: ../src/libs/histogram.c:1928 ../src/libs/histogram.c:1970 msgid "set scale to logarithmic" msgstr "Set scale to logarithmic" -#: ../src/libs/histogram.c:1746 +#: ../src/libs/histogram.c:1946 msgid "set scope to vertical" msgstr "Set scope to vertical" -#: ../src/libs/histogram.c:1751 +#: ../src/libs/histogram.c:1951 msgid "set scope to horizontal" msgstr "Set scope to horizontal" -#: ../src/libs/histogram.c:1780 +#: ../src/libs/histogram.c:1980 msgid "set view to AzBz" msgstr "Set view to AzBz" -#: ../src/libs/histogram.c:1786 +#: ../src/libs/histogram.c:1986 msgid "set view to RYB" msgstr "Set view to RYB" -#: ../src/libs/histogram.c:1792 +#: ../src/libs/histogram.c:1992 msgid "set view to u*v*" msgstr "Set view to u*v*" -#: ../src/libs/histogram.c:2312 ../src/libs/histogram.c:2370 +#: ../src/libs/histogram.c:2625 ../src/libs/histogram.c:2691 msgid "cycle histogram modes" msgstr "Cycle histogram modes" -#: ../src/libs/histogram.c:2316 ../src/libs/histogram.c:2371 +#: ../src/libs/histogram.c:2630 ../src/libs/histogram.c:2693 msgid "hide histogram" msgstr "Hide histogram" -#: ../src/libs/histogram.c:2372 ../src/libs/histogram.c:2401 +#: ../src/libs/histogram.c:2696 ../src/libs/histogram.c:2729 msgid "switch histogram view" msgstr "Switch histogram view" -#: ../src/libs/histogram.c:2379 +#: ../src/libs/histogram.c:2704 msgid "toggle blue channel" msgstr "Toggle blue channel" -#: ../src/libs/histogram.c:2381 ../src/libs/histogram.c:2389 -#: ../src/libs/histogram.c:2397 +#: ../src/libs/histogram.c:2706 ../src/libs/histogram.c:2715 +#: ../src/libs/histogram.c:2724 msgid "toggle colors" msgstr "Toggle colors" -#: ../src/libs/histogram.c:2387 +#: ../src/libs/histogram.c:2713 msgid "toggle green channel" msgstr "Toggle green channel" -#: ../src/libs/histogram.c:2395 +#: ../src/libs/histogram.c:2722 msgid "toggle red channel" msgstr "Toggle red channel" -#: ../src/libs/histogram.c:2405 +#: ../src/libs/histogram.c:2734 msgid "cycle vectorscope types" msgstr "Cycle vectorscope types" -#: ../src/libs/histogram.c:2413 +#: ../src/libs/histogram.c:2745 msgid "color harmonies" msgstr "Color harmonies" -#: ../src/libs/histogram.c:2425 +#: ../src/libs/histogram.c:2759 msgid "cycle color harmonies" msgstr "Cycle color harmonies" @@ -21622,10 +22324,18 @@ msgid "mask mode" msgstr "Mask mode" +#: ../src/libs/history.c:949 +msgid "blend mode" +msgstr "Blend mode" + #: ../src/libs/history.c:951 msgid "blend operation" msgstr "Blend operation" +#: ../src/libs/history.c:953 +msgid "blend fulcrum" +msgstr "Blend fulcrum" + #: ../src/libs/history.c:961 msgid "mask blur" msgstr "Mask blur" @@ -21669,194 +22379,194 @@ msgid "parametric input mask:" msgstr "Parametric input mask:" -#: ../src/libs/history.c:1323 +#: ../src/libs/history.c:1322 msgid "delete image's history?" msgstr "Delete image's history?" -#: ../src/libs/history.c:1324 +#: ../src/libs/history.c:1323 msgid "do you really want to clear history of current image?" msgstr "Do you really want to clear history of current image?" -#: ../src/libs/image.c:72 -msgid "selected image[s]" -msgstr "Selected image[s]" +#: ../src/libs/image.c:74 +msgid "actions on selection" +msgstr "Actions on selection" -#: ../src/libs/image.c:284 +#: ../src/libs/image.c:302 msgid "delete (trash)" msgstr "Delete (trash)" -#: ../src/libs/image.c:287 +#: ../src/libs/image.c:305 msgid "physically delete from disk (using trash if possible)" msgstr "Physically delete from disk (using trash if possible)" -#: ../src/libs/image.c:288 +#: ../src/libs/image.c:306 msgid "physically delete from disk immediately" msgstr "Physically delete from disk immediately" -#: ../src/libs/image.c:474 ../src/libs/modulegroups.c:3811 -#: ../src/libs/styles.c:876 +#: ../src/libs/image.c:506 ../src/libs/modulegroups.c:3813 +#: ../src/libs/styles.c:880 msgid "remove" msgstr "Remove" -#: ../src/libs/image.c:475 +#: ../src/libs/image.c:508 msgid "remove images from the image library, without deleting" msgstr "Remove images from the image library, without deleting" -#: ../src/libs/image.c:483 +#: ../src/libs/image.c:517 msgid "move..." msgstr "Move..." -#: ../src/libs/image.c:484 +#: ../src/libs/image.c:519 msgid "move to other folder" msgstr "Move to other folder" -#: ../src/libs/image.c:487 +#: ../src/libs/image.c:522 msgid "copy..." msgstr "Copy..." -#: ../src/libs/image.c:488 +#: ../src/libs/image.c:524 msgid "copy to other folder" msgstr "Copy to other folder" -#: ../src/libs/image.c:491 +#: ../src/libs/image.c:528 msgid "create HDR" msgstr "Create HDR" -#: ../src/libs/image.c:492 +#: ../src/libs/image.c:530 msgid "create a high dynamic range image from selected shots" msgstr "Create a high dynamic range image from selected shots" -#: ../src/libs/image.c:496 +#: ../src/libs/image.c:535 msgid "add a duplicate to the image library, including its history stack" msgstr "Add a duplicate to the image library, including its history stack" -#: ../src/libs/image.c:502 ../src/libs/image.c:505 +#: ../src/libs/image.c:542 ../src/libs/image.c:547 msgid "rotate selected images 90 degrees CCW" msgstr "Rotate selected images 90 degrees CCW" -#: ../src/libs/image.c:509 ../src/libs/image.c:512 +#: ../src/libs/image.c:553 ../src/libs/image.c:558 msgid "rotate selected images 90 degrees CW" msgstr "Rotate selected images 90 degrees CW" -#: ../src/libs/image.c:514 +#: ../src/libs/image.c:561 msgid "reset rotation" msgstr "Reset rotation" -#: ../src/libs/image.c:515 +#: ../src/libs/image.c:563 msgid "reset rotation to EXIF data" msgstr "Reset rotation to EXIF data" -#: ../src/libs/image.c:518 +#: ../src/libs/image.c:566 msgid "copy locally" msgstr "Copy locally" -#: ../src/libs/image.c:519 +#: ../src/libs/image.c:568 msgid "copy the image locally" msgstr "Copy the image locally" -#: ../src/libs/image.c:522 +#: ../src/libs/image.c:572 msgid "resync local copy" msgstr "Resync local copy" -#: ../src/libs/image.c:523 +#: ../src/libs/image.c:574 msgid "synchronize the image's XMP and remove the local copy" msgstr "Synchronize the image's XMP and remove the local copy" -#: ../src/libs/image.c:526 +#: ../src/libs/image.c:578 msgctxt "selected images action" msgid "group" msgstr "Group" -#: ../src/libs/image.c:527 +#: ../src/libs/image.c:580 msgid "add selected images to expanded group or create a new one" msgstr "Add selected images to expanded group or create a new one" -#: ../src/libs/image.c:531 +#: ../src/libs/image.c:584 msgid "ungroup" msgstr "Ungroup" -#: ../src/libs/image.c:532 +#: ../src/libs/image.c:586 msgid "remove selected images from the group" msgstr "Remove selected images from the group" -#: ../src/libs/image.c:544 +#: ../src/libs/image.c:598 msgid "select ratings metadata" msgstr "Select ratings metadata" -#: ../src/libs/image.c:550 +#: ../src/libs/image.c:605 msgid "colors" msgstr "Colors" -#: ../src/libs/image.c:552 +#: ../src/libs/image.c:607 msgid "select colors metadata" msgstr "Select colors metadata" -#: ../src/libs/image.c:560 +#: ../src/libs/image.c:616 msgid "select tags metadata" msgstr "Select tags metadata" -#: ../src/libs/image.c:568 +#: ../src/libs/image.c:625 msgid "select geo tags metadata" msgstr "Select geo tags metadata" -#: ../src/libs/image.c:576 +#: ../src/libs/image.c:636 msgid "select darktable metadata (from metadata editor module)" msgstr "Select Darktable metadata (from metadata editor module)" -#: ../src/libs/image.c:584 +#: ../src/libs/image.c:649 msgid "set the selected image as source of metadata" msgstr "Set the selected image as source of metadata" -#: ../src/libs/image.c:589 +#: ../src/libs/image.c:656 msgid "paste selected metadata on selected images" msgstr "Paste selected metadata on selected images" -#: ../src/libs/image.c:593 +#: ../src/libs/image.c:661 msgid "clear selected metadata on selected images" msgstr "Clear selected metadata on selected images" -#: ../src/libs/image.c:598 +#: ../src/libs/image.c:667 msgid "how to handle existing metadata" msgstr "How to handle existing metadata" -#: ../src/libs/image.c:601 +#: ../src/libs/image.c:670 msgid "merge" msgstr "Merge" -#: ../src/libs/image.c:605 +#: ../src/libs/image.c:675 msgid "update image information to match changes to file" msgstr "Update image information to match changes to file" -#: ../src/libs/image.c:609 +#: ../src/libs/image.c:680 msgid "set selection as monochrome images and activate monochrome workflow" msgstr "Set selection as monochrome images and activate monochrome workflow" -#: ../src/libs/image.c:613 +#: ../src/libs/image.c:684 msgid "set selection as color images" msgstr "Set selection as color images" -#: ../src/libs/image.c:625 +#: ../src/libs/image.c:696 msgid "duplicate virgin" msgstr "Duplicate virgin" -#: ../src/libs/import.c:263 +#: ../src/libs/import.c:264 #, c-format msgid "device \"%s\" connected on port \"%s\"." msgstr "Device \"%s\" connected on port \"%s\"." -#: ../src/libs/import.c:273 ../src/libs/import.c:334 ../src/libs/import.c:1692 +#: ../src/libs/import.c:274 ../src/libs/import.c:335 ../src/libs/import.c:1701 msgid "copy & import from camera" msgstr "Copy & import from camera" -#: ../src/libs/import.c:284 ../src/libs/import.c:336 +#: ../src/libs/import.c:285 ../src/libs/import.c:337 msgid "tethered shoot" msgstr "Tethered shoot" -#: ../src/libs/import.c:291 ../src/libs/import.c:337 +#: ../src/libs/import.c:292 ../src/libs/import.c:338 msgid "unmount camera" msgstr "Unmount camera" -#: ../src/libs/import.c:312 +#: ../src/libs/import.c:313 msgid "" "camera is locked by another application\n" "make sure it is no longer mounted\n" @@ -21866,38 +22576,38 @@ "Make sure it is no longer mounted\n" "or quit the locking application" -#: ../src/libs/import.c:315 +#: ../src/libs/import.c:316 msgid "tethering and importing is disabled for this camera" msgstr "Tethering and importing is disabled for this camera" -#: ../src/libs/import.c:317 ../src/libs/import.c:335 +#: ../src/libs/import.c:318 ../src/libs/import.c:336 msgid "mount camera" msgstr "Mount camera" -#: ../src/libs/import.c:747 +#: ../src/libs/import.c:754 #, c-format msgid "%d image out of %d selected" msgid_plural "%d images out of %d selected" msgstr[0] "%d image out of %d selected" msgstr[1] "%d images out of %d selected" -#: ../src/libs/import.c:1039 +#: ../src/libs/import.c:1046 msgid "you can't delete the selected place" msgstr "You can't delete the selected place" -#: ../src/libs/import.c:1153 +#: ../src/libs/import.c:1160 msgid "choose the root of the folder tree below" msgstr "Choose the root of the folder tree below" -#: ../src/libs/import.c:1156 +#: ../src/libs/import.c:1163 msgid "places" msgstr "Places" -#: ../src/libs/import.c:1162 +#: ../src/libs/import.c:1169 msgid "restore all default places you have removed by right-click" msgstr "Restore all default places you have removed by right-click" -#: ../src/libs/import.c:1167 +#: ../src/libs/import.c:1174 msgid "" "add a custom place\n" "\n" @@ -21907,79 +22617,107 @@ "\n" "Right-click on a place to remove it" -#: ../src/libs/import.c:1174 +#: ../src/libs/import.c:1181 msgid "you can add custom places using the plus icon" msgstr "You can add custom places using the plus icon" -#: ../src/libs/import.c:1199 +#: ../src/libs/import.c:1206 msgid "select a folder to see the content" msgstr "Select a folder to see the content" -#: ../src/libs/import.c:1202 +#: ../src/libs/import.c:1209 msgid "folders" msgstr "Folders" -#: ../src/libs/import.c:1272 +#: ../src/libs/import.c:1279 msgid "home" msgstr "Home" -#: ../src/libs/import.c:1284 +#: ../src/libs/import.c:1291 msgid "pictures" msgstr "Pictures" -#: ../src/libs/import.c:1548 +#: ../src/libs/import.c:1557 msgid "mark already imported pictures" msgstr "Mark already imported pictures" -#: ../src/libs/import.c:1562 +#: ../src/libs/import.c:1571 msgid "modified" msgstr "Modified" -#: ../src/libs/import.c:1567 +#: ../src/libs/import.c:1576 msgid "file 'modified date/time', may be different from 'Exif date/time'" msgstr "File 'modified date/time', may be different from 'Exif date/time'" -#: ../src/libs/import.c:1579 +#: ../src/libs/import.c:1588 msgid "show/hide thumbnails" msgstr "Show/hide thumbnails" -#: ../src/libs/import.c:1649 +#: ../src/libs/import.c:1658 msgid "naming rules" msgstr "Naming rules" -#: ../src/libs/import.c:1690 +#: ../src/libs/import.c:1699 msgid "add to library" msgstr "Add to library" -#: ../src/libs/import.c:1691 +#: ../src/libs/import.c:1700 msgid "copy & import" msgstr "Copy & import" -#: ../src/libs/import.c:1730 +#: ../src/libs/import.c:1740 msgid "select new" msgstr "Select new" -#: ../src/libs/import.c:1773 +#: ../src/libs/import.c:1783 msgid "please wait while prefetching the list of images from camera..." msgstr "Please wait while prefetching the list of images from camera..." -#: ../src/libs/import.c:1907 +#: ../src/libs/import.c:1922 msgid "invalid override date/time format" msgstr "Invalid override date/time format" -#: ../src/libs/import.c:2022 +#: ../src/libs/import.c:1986 +msgid "import base directory" +msgstr "Import base directory" + +#: ../src/libs/import.c:1987 +msgid "" +"before copying images to the darktable base directory make sure it is " +"defined as you prefer.\n" +"further information can be found in the darktable manual.\n" +"\n" +"inspect darktable preferences -> import.\n" +"check and possibly correct the 'base directory naming pattern'" +msgstr "" +"Before copying images to the darktable base directory make sure it is " +"defined as you prefer.\n" +"Further information can be found in the darktable manual.\n" +"\n" +"Inspect darktable preferences -> import.\n" +"Check and possibly correct the 'base directory naming pattern'" + +#: ../src/libs/import.c:1991 +msgid "_come back & check" +msgstr "_Come back & check" + +#: ../src/libs/import.c:1991 +msgid "_understood & done" +msgstr "_Understood & done" + +#: ../src/libs/import.c:2057 msgid "add to library..." msgstr "Add to library..." -#: ../src/libs/import.c:2023 +#: ../src/libs/import.c:2058 msgid "add existing images to the library" msgstr "Add existing images to the library" -#: ../src/libs/import.c:2029 +#: ../src/libs/import.c:2064 msgid "copy & import..." msgstr "Copy & import..." -#: ../src/libs/import.c:2030 +#: ../src/libs/import.c:2065 msgid "" "copy and optionally rename images before adding them to the library\n" "patterns can be defined to rename the images and specify the destination " @@ -21990,15 +22728,15 @@ "folders" #. collapsible section -#: ../src/libs/import.c:2053 +#: ../src/libs/import.c:2088 msgid "parameters" msgstr "Parameters" -#: ../src/libs/ioporder.c:204 +#: ../src/libs/ioporder.c:202 msgid "v3.0 for RAW input (default)" msgstr "V3.0 for RAW input (default)" -#: ../src/libs/ioporder.c:210 +#: ../src/libs/ioporder.c:208 msgid "v3.0 for JPEG/non-RAW input" msgstr "V3.0 for JPEG/non-RAW input" @@ -22014,11 +22752,11 @@ msgid "nothing to save" msgstr "Nothing to save" -#: ../src/libs/lib.c:1105 +#: ../src/libs/lib.c:1106 msgid "show module" msgstr "Show module" -#: ../src/libs/lib.c:1430 +#: ../src/libs/lib.c:1431 msgid "utility module" msgstr "Utility module" @@ -22249,167 +22987,109 @@ msgid "map settings" msgstr "Map settings" -#: ../src/libs/map_settings.c:107 +#: ../src/libs/map_settings.c:89 msgid "map source" msgstr "Map source" -#: ../src/libs/map_settings.c:112 +#: ../src/libs/map_settings.c:90 msgid "select the source of the map. some entries might not work" msgstr "Select the source of the map. Some entries might not work" -#: ../src/libs/masks.c:107 +#: ../src/libs/masks.c:108 msgid "feather" msgstr "Feather" -#: ../src/libs/masks.c:114 -msgid "hardness (relative)" -msgstr "Hardness (relative)" - -#: ../src/libs/masks.c:115 -msgid "hardness (absolute)" -msgstr "Hardness (absolute)" - -#: ../src/libs/masks.c:116 -msgid "opacity (relative)" -msgstr "Opacity (relative)" - -#: ../src/libs/masks.c:117 -msgid "opacity (absolute)" -msgstr "Opacity (absolute)" - -#: ../src/libs/masks.c:118 -msgid "brush size (relative)" -msgstr "Brush size (relative)" - -#: ../src/libs/masks.c:121 -msgid "low" -msgstr "Low" - -#: ../src/libs/masks.c:122 -msgid "medium" -msgstr "Medium" - -#: ../src/libs/masks.c:123 -msgid "high" -msgstr "High" - -#: ../src/libs/masks.c:381 +#: ../src/libs/masks.c:357 #, c-format msgid "group #%d" msgstr "Group #%d" -#: ../src/libs/masks.c:1081 +#: ../src/libs/masks.c:1097 msgid "duplicate this shape" msgstr "Duplicate this shape" -#: ../src/libs/masks.c:1085 +#: ../src/libs/masks.c:1101 msgid "delete this shape" msgstr "Delete this shape" -#: ../src/libs/masks.c:1091 +#: ../src/libs/masks.c:1107 msgid "delete group" msgstr "Delete group" -#: ../src/libs/masks.c:1098 +#: ../src/libs/masks.c:1114 msgid "remove from group" msgstr "Remove from group" -#: ../src/libs/masks.c:1106 +#: ../src/libs/masks.c:1122 msgid "group the forms" msgstr "Group the forms" -#: ../src/libs/masks.c:1114 +#: ../src/libs/masks.c:1130 msgid "use inverted shape" msgstr "Use inverted shape" -#: ../src/libs/masks.c:1121 +#: ../src/libs/masks.c:1134 msgid "mode: union" msgstr "Mode: union" -#: ../src/libs/masks.c:1127 +#: ../src/libs/masks.c:1136 msgid "mode: intersection" msgstr "Mode: intersection" -#: ../src/libs/masks.c:1133 +#: ../src/libs/masks.c:1138 msgid "mode: difference" msgstr "Mode: difference" -#: ../src/libs/masks.c:1139 +#: ../src/libs/masks.c:1140 msgid "mode: sum" msgstr "Mode: sum" -#: ../src/libs/masks.c:1145 +#: ../src/libs/masks.c:1142 msgid "mode: exclusion" msgstr "Mode: exclusion" -#: ../src/libs/masks.c:1164 +#: ../src/libs/masks.c:1158 msgid "cleanup unused shapes" msgstr "Cleanup unused shapes" -#: ../src/libs/masks.c:1811 +#: ../src/libs/masks.c:1807 msgid "created shapes" msgstr "Created shapes" -#: ../src/libs/masks.c:1904 ../src/libs/masks.c:1919 ../src/libs/masks.c:1939 -#: ../src/libs/masks.c:1955 +#: ../src/libs/masks.c:1900 ../src/libs/masks.c:1915 ../src/libs/masks.c:1929 +#: ../src/libs/masks.c:1933 msgid "properties" msgstr "Properties" -#: ../src/libs/masks.c:1907 +#: ../src/libs/masks.c:1903 msgid "no shapes selected" msgstr "No shapes selected" -#: ../src/libs/masks.c:1940 +#: ../src/libs/masks.c:1929 msgid "pressure" msgstr "Pressure" -#: ../src/libs/masks.c:1941 -msgid "" -"pen pressure control for brush masks\n" -"'off': pressure reading ignored,\n" -"'hardness'/'opacity'/'brush size': pressure reading controls specified " -"attribute,\n" -"'absolute'/'relative': pressure reading is taken directly as attribute value " -"or multiplied with pre-defined setting." -msgstr "" -"Pen pressure control for brush masks\n" -"'Off': pressure reading ignored,\n" -"'Hardness'/'Opacity'/'Brush size': pressure reading controls specified " -"attribute,\n" -"'Absolute'/'Relative': pressure reading is taken directly as attribute value " -"or multiplied with pre-defined setting." - -#: ../src/libs/masks.c:1956 +#: ../src/libs/masks.c:1933 msgid "smoothing" msgstr "Smoothing" -#: ../src/libs/masks.c:1957 -msgid "" -"smoothing of brush strokes\n" -"stronger smoothing leads to fewer nodes and easier editing but with lower " -"control of accuracy." -msgstr "" -"Smoothing of brush strokes\n" -"Stronger smoothing leads to fewer nodes and easier editing but with lower " -"control of accuracy." - -#: ../src/libs/metadata.c:64 +#: ../src/libs/metadata.c:60 msgid "metadata editor" msgstr "Metadata editor" -#: ../src/libs/metadata.c:206 ../src/libs/metadata.c:496 -msgid "<leave unchanged>" -msgstr "<leave unchanged>" - -#: ../src/libs/metadata.c:630 ../src/libs/metadata_view.c:1192 +#: ../src/libs/metadata.c:459 ../src/libs/metadata_view.c:1219 msgid "metadata settings" msgstr "Metadata settings" -#: ../src/libs/metadata.c:683 ../src/libs/metadata_view.c:1237 +#: ../src/libs/metadata.c:461 ../src/libs/metadata_view.c:1221 +msgid "_default" +msgstr "_Default" + +#: ../src/libs/metadata.c:516 ../src/libs/metadata_view.c:1267 msgid "visible" msgstr "Visible" -#: ../src/libs/metadata.c:688 +#: ../src/libs/metadata.c:524 msgid "" "tick if the corresponding metadata is of interest for you\n" "it will be visible from metadata editor, collection and import module\n" @@ -22419,18 +23099,18 @@ "It will be visible from metadata editor, collection and import module\n" "It will be also exported" -#: ../src/libs/metadata.c:693 ../src/libs/tagging.c:1683 -#: ../src/libs/tagging.c:1827 +#: ../src/libs/metadata.c:529 ../src/libs/tagging.c:1705 +#: ../src/libs/tagging.c:1854 msgid "private" msgstr "Private" -#: ../src/libs/metadata.c:698 +#: ../src/libs/metadata.c:534 msgid "" "tick if you want to keep this information private (not exported with images)" msgstr "" "Tick if you want to keep this information private (not exported with images)" -#: ../src/libs/metadata.c:857 +#: ../src/libs/metadata.c:691 msgid "" "metadata text\n" "ctrl+enter inserts a new line (caution, may not be compatible with standard " @@ -22446,169 +23126,181 @@ "In that case, right-click gives the possibility to choose one of them\n" "Escape to exit the popup window" -#: ../src/libs/metadata.c:902 +#: ../src/libs/metadata.c:736 msgid "write metadata for selected images" msgstr "Write metadata for selected images" +#: ../src/libs/metadata.c:737 +msgid "cancel" +msgstr "Cancel" + +#: ../src/libs/metadata.c:738 +msgid "ignore changed metadata" +msgstr "Ignore changed metadata" + #. <title>\0<description>\0<rights>\0<creator>\0<publisher> -#: ../src/libs/metadata.c:958 +#: ../src/libs/metadata.c:793 msgid "CC BY" msgstr "CC BY" -#: ../src/libs/metadata.c:959 +#: ../src/libs/metadata.c:794 msgid "Creative Commons Attribution (CC BY)" msgstr "Creative Commons Attribution (CC BY)" -#: ../src/libs/metadata.c:960 +#: ../src/libs/metadata.c:795 msgid "CC BY-SA" msgstr "CC BY-SA" -#: ../src/libs/metadata.c:961 +#: ../src/libs/metadata.c:796 msgid "Creative Commons Attribution-ShareAlike (CC BY-SA)" msgstr "Creative Commons Attribution-ShareAlike (CC BY-SA)" -#: ../src/libs/metadata.c:962 +#: ../src/libs/metadata.c:797 msgid "CC BY-ND" msgstr "CC BY-ND" -#: ../src/libs/metadata.c:963 +#: ../src/libs/metadata.c:798 msgid "Creative Commons Attribution-NoDerivs (CC BY-ND)" msgstr "Creative Commons Attribution-NoDerivs (CC BY-ND)" -#: ../src/libs/metadata.c:964 +#: ../src/libs/metadata.c:799 msgid "CC BY-NC" msgstr "CC BY-NC" -#: ../src/libs/metadata.c:965 +#: ../src/libs/metadata.c:800 msgid "Creative Commons Attribution-NonCommercial (CC BY-NC)" msgstr "Creative Commons Attribution-NonCommercial (CC BY-NC)" -#: ../src/libs/metadata.c:966 +#: ../src/libs/metadata.c:801 msgid "CC BY-NC-SA" msgstr "CC BY-NC-SA" -#: ../src/libs/metadata.c:967 +#: ../src/libs/metadata.c:802 msgid "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" msgstr "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" -#: ../src/libs/metadata.c:968 +#: ../src/libs/metadata.c:803 msgid "CC BY-NC-ND" msgstr "CC BY-NC-ND" -#: ../src/libs/metadata.c:969 +#: ../src/libs/metadata.c:804 msgid "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" msgstr "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" -#: ../src/libs/metadata.c:970 ../src/libs/metadata.c:971 +#: ../src/libs/metadata.c:805 ../src/libs/metadata.c:806 msgid "all rights reserved" msgstr "All rights reserved" #. internal -#: ../src/libs/metadata_view.c:123 +#: ../src/libs/metadata_view.c:125 msgid "filmroll" msgstr "Filmroll" -#: ../src/libs/metadata_view.c:125 +#: ../src/libs/metadata_view.c:127 msgid "group id" msgstr "Group id" -#: ../src/libs/metadata_view.c:127 +#: ../src/libs/metadata_view.c:129 msgid "version" msgstr "Version" -#: ../src/libs/metadata_view.c:130 +#: ../src/libs/metadata_view.c:132 msgid "import timestamp" msgstr "Import timestamp" -#: ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:133 msgid "change timestamp" msgstr "Change timestamp" -#: ../src/libs/metadata_view.c:132 +#: ../src/libs/metadata_view.c:134 msgid "export timestamp" msgstr "Export timestamp" -#: ../src/libs/metadata_view.c:133 +#: ../src/libs/metadata_view.c:135 msgid "print timestamp" msgstr "Print timestamp" -#: ../src/libs/metadata_view.c:134 +#: ../src/libs/metadata_view.c:136 msgid "flags" msgstr "Flags" -#: ../src/libs/metadata_view.c:144 +#: ../src/libs/metadata_view.c:146 +msgid "35mm equiv focal length" +msgstr "35mm equiv focal length" + +#: ../src/libs/metadata_view.c:148 msgid "focus distance" msgstr "Focus distance" -#: ../src/libs/metadata_view.c:146 +#: ../src/libs/metadata_view.c:150 msgid "datetime" msgstr "Datetime" -#: ../src/libs/metadata_view.c:149 +#: ../src/libs/metadata_view.c:153 msgid "export width" msgstr "Export width" -#: ../src/libs/metadata_view.c:150 +#: ../src/libs/metadata_view.c:154 msgid "export height" msgstr "Export height" -#: ../src/libs/metadata_view.c:158 +#: ../src/libs/metadata_view.c:162 msgid "longitude" msgstr "Longitude" -#: ../src/libs/metadata_view.c:159 +#: ../src/libs/metadata_view.c:163 msgid "elevation" msgstr "Elevation" -#: ../src/libs/metadata_view.c:163 +#: ../src/libs/metadata_view.c:167 msgid "categories" msgstr "Categories" -#: ../src/libs/metadata_view.c:170 +#: ../src/libs/metadata_view.c:174 msgid "image information" msgstr "Image information" -#: ../src/libs/metadata_view.c:330 +#: ../src/libs/metadata_view.c:334 msgid "unused/deprecated" msgstr "Unused/deprecated" -#: ../src/libs/metadata_view.c:331 +#: ../src/libs/metadata_view.c:335 msgid "LDR" msgstr "LDR" -#: ../src/libs/metadata_view.c:334 +#: ../src/libs/metadata_view.c:338 msgid "marked for deletion" msgstr "Marked for deletion" -#: ../src/libs/metadata_view.c:335 +#: ../src/libs/metadata_view.c:339 msgid "auto-applying presets applied" msgstr "Auto-applying presets applied" -#: ../src/libs/metadata_view.c:337 +#: ../src/libs/metadata_view.c:341 msgid "has .txt" msgstr "Has .txt" -#: ../src/libs/metadata_view.c:338 +#: ../src/libs/metadata_view.c:342 msgid "has .wav" msgstr "Has .wav" -#: ../src/libs/metadata_view.c:356 +#: ../src/libs/metadata_view.c:360 #, c-format msgid "image has %d star" msgid_plural "image has %d stars" msgstr[0] "Image has %d star" msgstr[1] "Image has %d stars" -#: ../src/libs/metadata_view.c:432 +#: ../src/libs/metadata_view.c:436 #, c-format msgid "loader: %s" msgstr "Loader: %s" -#: ../src/libs/metadata_view.c:623 +#: ../src/libs/metadata_view.c:626 msgid "<various values>" msgstr "<Various values>" -#: ../src/libs/metadata_view.c:636 +#: ../src/libs/metadata_view.c:639 #, c-format msgid "" "double-click to jump to film roll\n" @@ -22617,32 +23309,28 @@ "Double-click to jump to film roll\n" "%s" -#: ../src/libs/metadata_view.c:728 +#: ../src/libs/metadata_view.c:731 #, c-format msgid "%+.2f EV" msgstr "%+.2f EV" -#: ../src/libs/metadata_view.c:735 -#, c-format -msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" -msgstr "%.1f mm (%.1f mm FF equiv, Crop %.1f)" - -#: ../src/libs/metadata_view.c:740 +#: ../src/libs/metadata_view.c:737 ../src/libs/metadata_view.c:749 +#: ../src/libs/metadata_view.c:754 #, c-format msgid "%.1f mm" msgstr "%.1f mm" -#: ../src/libs/metadata_view.c:751 +#: ../src/libs/metadata_view.c:778 #, c-format msgid "infinity" msgstr "infinity" -#: ../src/libs/metadata_view.c:755 +#: ../src/libs/metadata_view.c:782 #, c-format msgid "%.2f m" msgstr "%.2f m" -#: ../src/libs/metadata_view.c:1232 +#: ../src/libs/metadata_view.c:1262 msgid "" "drag and drop one row at a time until you get the desired order\n" "untick to hide metadata which are not of interest for you\n" @@ -22652,7 +23340,7 @@ "Untick to hide metadata which are not of interest for you\n" "If different settings are needed, use presets" -#: ../src/libs/metadata_view.c:1388 +#: ../src/libs/metadata_view.c:1423 msgid "jump to film roll" msgstr "Jump to film roll" @@ -22677,7 +23365,7 @@ msgid "recent collections settings" msgstr "Recent collections settings" -#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1769 +#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1753 msgid "workflow: scene-referred" msgstr "Workflow: scene-referred" @@ -22695,12 +23383,12 @@ #. FIXME don't check here if on/off is enabled, because it depends on image (reload_defaults) #. respond later to image changed signal -#: ../src/libs/modulegroups.c:306 ../src/libs/modulegroups.c:318 -#: ../src/libs/modulegroups.c:2427 ../src/libs/modulegroups.c:2429 +#: ../src/libs/modulegroups.c:307 ../src/libs/modulegroups.c:319 +#: ../src/libs/modulegroups.c:2411 ../src/libs/modulegroups.c:2413 msgid "on-off" msgstr "On-off" -#: ../src/libs/modulegroups.c:498 ../src/libs/modulegroups.c:501 +#: ../src/libs/modulegroups.c:501 ../src/libs/modulegroups.c:504 msgid "" "this quick access widget is disabled as there are multiple instances of this " "module present. Please use the full module to access this widget..." @@ -22708,157 +23396,157 @@ "This quick access widget is disabled as there are multiple instances of this " "module present. Please use the full module to access this widget..." -#: ../src/libs/modulegroups.c:591 +#: ../src/libs/modulegroups.c:594 msgid "(some features may only be available in the full module interface)" msgstr "(some features may only be available in the full module interface)" -#: ../src/libs/modulegroups.c:635 +#: ../src/libs/modulegroups.c:632 #, c-format msgid "go to the full version of the %s module" msgstr "Go to the full version of the %s module" -#: ../src/libs/modulegroups.c:1556 ../src/libs/modulegroups.c:1641 -#: ../src/libs/modulegroups.c:1677 ../src/libs/modulegroups.c:1727 -#: ../src/libs/modulegroups.c:1817 +#: ../src/libs/modulegroups.c:1538 ../src/libs/modulegroups.c:1624 +#: ../src/libs/modulegroups.c:1660 ../src/libs/modulegroups.c:1710 +#: ../src/libs/modulegroups.c:1801 msgctxt "modulegroup" msgid "base" msgstr "Base" -#: ../src/libs/modulegroups.c:1575 +#: ../src/libs/modulegroups.c:1557 msgctxt "modulegroup" msgid "tone" msgstr "Tone" -#: ../src/libs/modulegroups.c:1584 ../src/libs/modulegroups.c:1691 -#: ../src/libs/modulegroups.c:1741 +#: ../src/libs/modulegroups.c:1566 ../src/libs/modulegroups.c:1674 +#: ../src/libs/modulegroups.c:1724 msgctxt "modulegroup" msgid "color" msgstr "Color" -#: ../src/libs/modulegroups.c:1599 ../src/libs/modulegroups.c:1699 -#: ../src/libs/modulegroups.c:1746 +#: ../src/libs/modulegroups.c:1582 ../src/libs/modulegroups.c:1682 +#: ../src/libs/modulegroups.c:1730 msgctxt "modulegroup" msgid "correct" msgstr "Correct" -#: ../src/libs/modulegroups.c:1617 ../src/libs/modulegroups.c:1711 -#: ../src/libs/modulegroups.c:1758 ../src/libs/modulegroups.c:2321 +#: ../src/libs/modulegroups.c:1600 ../src/libs/modulegroups.c:1694 +#: ../src/libs/modulegroups.c:1742 ../src/libs/modulegroups.c:2305 msgctxt "modulegroup" msgid "effect" msgstr "Effect" -#: ../src/libs/modulegroups.c:1635 +#: ../src/libs/modulegroups.c:1618 msgid "modules: all" msgstr "Modules: all" -#: ../src/libs/modulegroups.c:1656 +#: ../src/libs/modulegroups.c:1639 msgctxt "modulegroup" msgid "grading" msgstr "Grading" -#: ../src/libs/modulegroups.c:1664 ../src/libs/modulegroups.c:2325 +#: ../src/libs/modulegroups.c:1647 ../src/libs/modulegroups.c:2309 msgctxt "modulegroup" msgid "effects" msgstr "Effects" -#: ../src/libs/modulegroups.c:1672 +#: ../src/libs/modulegroups.c:1655 msgid "workflow: beginner" msgstr "Workflow: beginner" -#: ../src/libs/modulegroups.c:1721 +#: ../src/libs/modulegroups.c:1704 msgid "workflow: display-referred" msgstr "Workflow: display-referred" -#: ../src/libs/modulegroups.c:1773 +#: ../src/libs/modulegroups.c:1757 msgid "search only" msgstr "Search only" -#: ../src/libs/modulegroups.c:1779 ../src/libs/modulegroups.c:2090 -#: ../src/libs/modulegroups.c:2599 +#: ../src/libs/modulegroups.c:1763 ../src/libs/modulegroups.c:2074 +#: ../src/libs/modulegroups.c:2583 msgctxt "modulegroup" msgid "deprecated" msgstr "Deprecated" -#: ../src/libs/modulegroups.c:1792 +#: ../src/libs/modulegroups.c:1776 msgid "previous config" msgstr "Previous config" -#: ../src/libs/modulegroups.c:1793 +#: ../src/libs/modulegroups.c:1777 msgid "previous layout" msgstr "Previous layout" -#: ../src/libs/modulegroups.c:1797 +#: ../src/libs/modulegroups.c:1781 msgid "previous config with new layout" msgstr "Previous config with new layout" -#: ../src/libs/modulegroups.c:1957 ../src/libs/modulegroups.c:2472 -#: ../src/libs/modulegroups.c:2484 +#: ../src/libs/modulegroups.c:1941 ../src/libs/modulegroups.c:2456 +#: ../src/libs/modulegroups.c:2468 msgid "remove this widget" msgstr "Remove this widget" -#: ../src/libs/modulegroups.c:2107 ../src/libs/modulegroups.c:2347 +#: ../src/libs/modulegroups.c:2091 ../src/libs/modulegroups.c:2331 msgid "remove this module" msgstr "Remove this module" #. does it belong to recommended modules ? -#: ../src/libs/modulegroups.c:2316 +#: ../src/libs/modulegroups.c:2300 msgid "base" msgstr "Base" -#: ../src/libs/modulegroups.c:2319 +#: ../src/libs/modulegroups.c:2303 msgid "tone" msgstr "Tone" -#: ../src/libs/modulegroups.c:2322 +#: ../src/libs/modulegroups.c:2306 msgid "technical" msgstr "Technical" -#: ../src/libs/modulegroups.c:2323 +#: ../src/libs/modulegroups.c:2307 msgid "grading" msgstr "Grading" -#: ../src/libs/modulegroups.c:2329 ../src/libs/modulegroups.c:2337 +#: ../src/libs/modulegroups.c:2313 ../src/libs/modulegroups.c:2321 msgid "add this module" msgstr "Add this module" #. show the submenu with all the modules -#: ../src/libs/modulegroups.c:2359 ../src/libs/modulegroups.c:2559 +#: ../src/libs/modulegroups.c:2343 ../src/libs/modulegroups.c:2543 msgid "all available modules" msgstr "All available modules" -#: ../src/libs/modulegroups.c:2367 +#: ../src/libs/modulegroups.c:2351 msgid "add module" msgstr "Add module" -#: ../src/libs/modulegroups.c:2372 +#: ../src/libs/modulegroups.c:2356 msgid "remove module" msgstr "Remove module" -#: ../src/libs/modulegroups.c:2478 +#: ../src/libs/modulegroups.c:2462 msgid "header needed for other widgets" msgstr "Header needed for other widgets" -#: ../src/libs/modulegroups.c:2494 ../src/libs/modulegroups.c:2501 +#: ../src/libs/modulegroups.c:2478 ../src/libs/modulegroups.c:2485 msgid "add this widget" msgstr "Add this widget" -#: ../src/libs/modulegroups.c:2514 +#: ../src/libs/modulegroups.c:2498 msgid "currently invisible" msgstr "Currently invisible" -#: ../src/libs/modulegroups.c:2543 +#: ../src/libs/modulegroups.c:2527 msgid "add widget" msgstr "Add widget" -#: ../src/libs/modulegroups.c:2548 +#: ../src/libs/modulegroups.c:2532 msgid "remove widget" msgstr "Remove widget" -#: ../src/libs/modulegroups.c:2653 +#: ../src/libs/modulegroups.c:2637 msgid "show all history modules" msgstr "Show all history modules" -#: ../src/libs/modulegroups.c:2656 ../src/libs/modulegroups.c:3834 +#: ../src/libs/modulegroups.c:2640 ../src/libs/modulegroups.c:3836 msgid "" "show modules that are present in the history stack, regardless of whether or " "not they are currently enabled" @@ -22866,7 +23554,7 @@ "Show modules that are present in the history stack, regardless of whether or " "not they are currently enabled" -#: ../src/libs/modulegroups.c:2747 ../src/libs/modulegroups.c:2816 +#: ../src/libs/modulegroups.c:2731 ../src/libs/modulegroups.c:2823 msgid "" "the following modules are deprecated because they have internal design " "mistakes that can't be corrected and alternative modules that correct them.\n" @@ -22877,19 +23565,19 @@ "them.\n" "They will be removed for new edits in the next release." -#: ../src/libs/modulegroups.c:2775 ../src/libs/modulegroups.c:2776 +#: ../src/libs/modulegroups.c:2782 ../src/libs/modulegroups.c:2783 msgid "quick access panel" msgstr "Quick access panel" -#: ../src/libs/modulegroups.c:2786 +#: ../src/libs/modulegroups.c:2793 msgid "show only active modules" msgstr "Show only active modules" -#: ../src/libs/modulegroups.c:2787 +#: ../src/libs/modulegroups.c:2794 msgid "active modules" msgstr "Active modules" -#: ../src/libs/modulegroups.c:2792 +#: ../src/libs/modulegroups.c:2799 msgid "" "presets\n" "ctrl+click to manage" @@ -22897,143 +23585,147 @@ "Presets\n" "Ctrl+click to manage" -#: ../src/libs/modulegroups.c:2798 +#: ../src/libs/modulegroups.c:2805 msgid "search modules" msgstr "Search modules" -#: ../src/libs/modulegroups.c:2799 +#: ../src/libs/modulegroups.c:2806 msgid "search modules by name or tag" msgstr "Search modules by name or tag" -#: ../src/libs/modulegroups.c:2809 +#: ../src/libs/modulegroups.c:2816 msgid "clear text" msgstr "Clear text" -#: ../src/libs/modulegroups.c:3051 +#: ../src/libs/modulegroups.c:3056 msgid "basic icon" msgstr "Basic icon" -#: ../src/libs/modulegroups.c:3061 +#: ../src/libs/modulegroups.c:3066 msgid "active icon" msgstr "Active icon" -#: ../src/libs/modulegroups.c:3071 +#: ../src/libs/modulegroups.c:3076 msgid "color icon" msgstr "Color icon" -#: ../src/libs/modulegroups.c:3081 +#: ../src/libs/modulegroups.c:3086 msgid "correct icon" msgstr "Correct icon" -#: ../src/libs/modulegroups.c:3091 +#: ../src/libs/modulegroups.c:3096 msgid "effect icon" msgstr "Effect icon" -#: ../src/libs/modulegroups.c:3101 +#: ../src/libs/modulegroups.c:3106 msgid "favorites icon" msgstr "Favorites icon" -#: ../src/libs/modulegroups.c:3111 +#: ../src/libs/modulegroups.c:3116 msgid "tone icon" msgstr "Tone icon" -#: ../src/libs/modulegroups.c:3121 +#: ../src/libs/modulegroups.c:3126 msgid "grading icon" msgstr "Grading icon" -#: ../src/libs/modulegroups.c:3131 +#: ../src/libs/modulegroups.c:3136 msgid "technical icon" msgstr "Technical icon" -#: ../src/libs/modulegroups.c:3164 +#: ../src/libs/modulegroups.c:3169 msgid "quick access panel widgets" msgstr "Quick access panel widgets" -#: ../src/libs/modulegroups.c:3166 +#: ../src/libs/modulegroups.c:3171 msgid "quick access" msgstr "Quick access" -#: ../src/libs/modulegroups.c:3186 +#: ../src/libs/modulegroups.c:3191 msgid "add widget to the quick access panel" msgstr "Add widget to the quick access panel" -#: ../src/libs/modulegroups.c:3218 +#: ../src/libs/modulegroups.c:3223 msgid "group icon" msgstr "Group icon" -#: ../src/libs/modulegroups.c:3227 +#: ../src/libs/modulegroups.c:3232 msgid "group name" msgstr "Group name" -#: ../src/libs/modulegroups.c:3238 +#: ../src/libs/modulegroups.c:3243 msgid "remove group" msgstr "Remove group" -#: ../src/libs/modulegroups.c:3264 +#: ../src/libs/modulegroups.c:3269 msgid "move group to the left" msgstr "Move group to the left" -#: ../src/libs/modulegroups.c:3272 +#: ../src/libs/modulegroups.c:3277 msgid "add module to the group" msgstr "Add module to the group" -#: ../src/libs/modulegroups.c:3283 +#: ../src/libs/modulegroups.c:3288 msgid "move group to the right" msgstr "Move group to the right" -#: ../src/libs/modulegroups.c:3463 +#: ../src/libs/modulegroups.c:3464 msgid "rename preset" msgstr "Rename preset" -#: ../src/libs/modulegroups.c:3470 +#: ../src/libs/modulegroups.c:3467 +msgid "_rename" +msgstr "_Rename" + +#: ../src/libs/modulegroups.c:3473 msgid "new preset name:" msgstr "New preset name:" -#: ../src/libs/modulegroups.c:3471 +#: ../src/libs/modulegroups.c:3474 msgid "a preset with this name already exists!" msgstr "A preset with this name already exists!" -#: ../src/libs/modulegroups.c:3804 +#: ../src/libs/modulegroups.c:3806 msgid "preset: " msgstr "Preset: " -#: ../src/libs/modulegroups.c:3811 +#: ../src/libs/modulegroups.c:3813 msgid "remove the preset" msgstr "Remove the preset" -#: ../src/libs/modulegroups.c:3813 +#: ../src/libs/modulegroups.c:3815 msgid "duplicate the preset" msgstr "Duplicate the preset" -#: ../src/libs/modulegroups.c:3815 +#: ../src/libs/modulegroups.c:3817 msgid "rename the preset" msgstr "Rename the preset" -#: ../src/libs/modulegroups.c:3817 +#: ../src/libs/modulegroups.c:3819 msgid "create a new empty preset" msgstr "Create a new empty preset" -#: ../src/libs/modulegroups.c:3825 +#: ../src/libs/modulegroups.c:3827 msgid "show search line" msgstr "Show search line" -#: ../src/libs/modulegroups.c:3828 +#: ../src/libs/modulegroups.c:3830 msgid "show quick access panel" msgstr "Show quick access panel" -#: ../src/libs/modulegroups.c:3831 +#: ../src/libs/modulegroups.c:3833 msgid "show all history modules in active group" msgstr "Show all history modules in active group" -#: ../src/libs/modulegroups.c:3843 +#: ../src/libs/modulegroups.c:3845 msgid "auto-apply this preset" msgstr "Auto-apply this preset" -#: ../src/libs/modulegroups.c:3858 +#: ../src/libs/modulegroups.c:3860 msgid "module groups" msgstr "Module groups" -#: ../src/libs/modulegroups.c:3875 +#: ../src/libs/modulegroups.c:3877 msgid "" "this is a built-in read-only preset. duplicate it if you want to make changes" msgstr "" @@ -23043,16 +23735,16 @@ msgid "navigation" msgstr "Navigation" -#: ../src/libs/navigation.c:111 ../src/libs/navigation.c:191 +#: ../src/libs/navigation.c:112 ../src/libs/navigation.c:194 msgctxt "navigationbox" msgid "fill" msgstr "Fill" -#: ../src/libs/navigation.c:114 ../src/libs/navigation.c:189 +#: ../src/libs/navigation.c:115 ../src/libs/navigation.c:192 msgid "small" msgstr "Small" -#: ../src/libs/navigation.c:151 +#: ../src/libs/navigation.c:154 msgid "" "navigation\n" "click or drag to position zoomed area in center view" @@ -23060,35 +23752,35 @@ "Navigation\n" "Click or drag to position zoomed area in center view" -#: ../src/libs/navigation.c:173 +#: ../src/libs/navigation.c:176 msgid "hide navigation thumbnail" msgstr "Hide navigation thumbnail" -#: ../src/libs/navigation.c:187 +#: ../src/libs/navigation.c:190 msgid "image zoom level" msgstr "Image zoom level" -#: ../src/libs/navigation.c:192 +#: ../src/libs/navigation.c:195 msgid "50%" msgstr "50%" -#: ../src/libs/navigation.c:193 +#: ../src/libs/navigation.c:196 msgid "100%" msgstr "100%" -#: ../src/libs/navigation.c:194 +#: ../src/libs/navigation.c:197 msgid "200%" msgstr "200%" -#: ../src/libs/navigation.c:195 +#: ../src/libs/navigation.c:198 msgid "400%" msgstr "400%" -#: ../src/libs/navigation.c:196 +#: ../src/libs/navigation.c:199 msgid "800%" msgstr "800%" -#: ../src/libs/navigation.c:197 +#: ../src/libs/navigation.c:200 msgid "1600%" msgstr "1600%" @@ -23332,15 +24024,15 @@ msgid "print with current settings" msgstr "Print with current settings" -#: ../src/libs/select.c:136 +#: ../src/libs/select.c:137 msgid "select all images in current collection" msgstr "Select all images in current collection" -#: ../src/libs/select.c:140 +#: ../src/libs/select.c:141 msgid "clear selection" msgstr "Clear selection" -#: ../src/libs/select.c:144 +#: ../src/libs/select.c:145 msgid "" "select unselected images\n" "in current collection" @@ -23348,7 +24040,7 @@ "Select unselected images\n" "in current collection" -#: ../src/libs/select.c:148 +#: ../src/libs/select.c:149 msgid "" "select all images which are in the same\n" "film roll as the selected images" @@ -23356,7 +24048,7 @@ "Select all images which are in the same\n" "film roll as the selected images" -#: ../src/libs/select.c:152 +#: ../src/libs/select.c:153 msgid "" "select untouched images in\n" "current collection" @@ -23376,29 +24068,33 @@ msgid "create" msgstr "Create" -#: ../src/libs/snapshots.c:92 +#: ../src/libs/snapshots.c:88 msgid "snapshots" msgstr "Snapshots" -#: ../src/libs/snapshots.c:141 +#: ../src/libs/snapshots.c:137 msgctxt "snapshot sign" msgid "S" msgstr "S" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:662 +msgid "snapshots for removed image have been deleted" +msgstr "Snapshots for removed image have been deleted" + +#: ../src/libs/snapshots.c:703 #, c-format msgid "↗ %s '%s'" msgstr "↗ %s '%s'" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:703 msgid "this snapshot was taken from" msgstr "This snapshot was taken from" -#: ../src/libs/snapshots.c:663 +#: ../src/libs/snapshots.c:742 msgid "take snapshot" msgstr "Take snapshot" -#: ../src/libs/snapshots.c:665 +#: ../src/libs/snapshots.c:744 msgid "" "take snapshot to compare with another image or the same image at another " "stage of development" @@ -23406,7 +24102,7 @@ "Take snapshot to compare with another image or the same image at another " "stage of development" -#: ../src/libs/snapshots.c:734 +#: ../src/libs/snapshots.c:790 msgid "toggle last snapshot" msgstr "Toggle last snapshot" @@ -23423,7 +24119,11 @@ msgstr[0] "Do you really want to remove %d style?" msgstr[1] "Do you really want to remove %d styles?" -#: ../src/libs/styles.c:444 ../src/libs/styles.c:627 +#: ../src/libs/styles.c:441 ../src/libs/styles.c:626 +msgid "_overwrite" +msgstr "_Overwrite" + +#: ../src/libs/styles.c:446 ../src/libs/styles.c:631 #, c-format msgid "" "style `%s' already exists.\n" @@ -23432,24 +24132,24 @@ "Style `%s' already exists.\n" "Do you want to overwrite existing style?\n" -#: ../src/libs/styles.c:446 ../src/libs/styles.c:629 +#: ../src/libs/styles.c:448 ../src/libs/styles.c:633 msgid "apply this option to all existing styles" msgstr "Apply this option to all existing styles" -#: ../src/libs/styles.c:509 +#: ../src/libs/styles.c:511 #, c-format msgid "style %s was successfully exported" msgstr "Style %s was successfully exported" -#: ../src/libs/styles.c:526 +#: ../src/libs/styles.c:528 msgid "select style" msgstr "Select style" -#: ../src/libs/styles.c:536 +#: ../src/libs/styles.c:538 msgid "darktable style files" msgstr "Darktable style files" -#: ../src/libs/styles.c:815 +#: ../src/libs/styles.c:819 msgid "" "available styles,\n" "double-click to apply" @@ -23457,73 +24157,73 @@ "Available styles,\n" "double-click to apply" -#: ../src/libs/styles.c:824 ../src/libs/styles.c:825 +#: ../src/libs/styles.c:828 ../src/libs/styles.c:829 msgid "filter style names" msgstr "Filter style names" -#: ../src/libs/styles.c:837 +#: ../src/libs/styles.c:841 msgid "create duplicate" msgstr "Create duplicate" -#: ../src/libs/styles.c:844 +#: ../src/libs/styles.c:848 msgid "creates a duplicate of the image before applying style" msgstr "Creates a duplicate of the image before applying style" -#: ../src/libs/styles.c:862 +#: ../src/libs/styles.c:866 msgid "create..." msgstr "Create..." -#: ../src/libs/styles.c:864 +#: ../src/libs/styles.c:868 msgid "create styles from history stack of selected images" msgstr "Create styles from history stack of selected images" -#: ../src/libs/styles.c:869 ../src/libs/tagging.c:2252 +#: ../src/libs/styles.c:873 ../src/libs/tagging.c:2283 msgid "edit..." msgstr "Edit..." -#: ../src/libs/styles.c:871 +#: ../src/libs/styles.c:875 msgid "edit the selected styles in list above" msgstr "Edit the selected styles in list above" -#: ../src/libs/styles.c:878 +#: ../src/libs/styles.c:882 msgid "removes the selected styles in list above" msgstr "Removes the selected styles in list above" -#: ../src/libs/styles.c:885 +#: ../src/libs/styles.c:889 msgid "import styles from a style files" msgstr "Import styles from a style files" -#: ../src/libs/styles.c:892 +#: ../src/libs/styles.c:896 msgid "export the selected styles into a style files" msgstr "Export the selected styles into a style files" -#: ../src/libs/styles.c:899 +#: ../src/libs/styles.c:903 msgid "apply the selected styles in list above to selected images" msgstr "Apply the selected styles in list above to selected images" -#: ../src/libs/tagging.c:105 +#: ../src/libs/tagging.c:109 msgid "tagging" msgstr "Tagging" -#: ../src/libs/tagging.c:1255 +#: ../src/libs/tagging.c:1258 msgid "attach tag to all" msgstr "Attach tag to all" -#: ../src/libs/tagging.c:1263 ../src/libs/tagging.c:2225 +#: ../src/libs/tagging.c:1266 ../src/libs/tagging.c:2256 msgid "detach tag" msgstr "Detach tag" -#: ../src/libs/tagging.c:1483 +#: ../src/libs/tagging.c:1486 msgid "delete tag?" msgstr "Delete tag?" -#: ../src/libs/tagging.c:1490 ../src/libs/tagging.c:1578 -#: ../src/libs/tagging.c:1789 ../src/libs/tagging.c:2063 +#: ../src/libs/tagging.c:1496 ../src/libs/tagging.c:1587 +#: ../src/libs/tagging.c:1814 ../src/libs/tagging.c:2093 #, c-format msgid "selected: %s" msgstr "Selected: %s" -#: ../src/libs/tagging.c:1497 +#: ../src/libs/tagging.c:1503 #, c-format msgid "" "do you really want to delete the tag `%s'?\n" @@ -23538,73 +24238,73 @@ "Do you really want to delete the tag `%s'?\n" "%d images are assigned this tag!" -#: ../src/libs/tagging.c:1531 +#: ../src/libs/tagging.c:1537 #, c-format msgid "tag %s removed" msgstr "Tag %s removed" -#: ../src/libs/tagging.c:1571 +#: ../src/libs/tagging.c:1577 msgid "delete node?" msgstr "Delete node?" -#: ../src/libs/tagging.c:1585 +#: ../src/libs/tagging.c:1594 #, c-format msgid "<u>%d</u> tag will be deleted" msgid_plural "<u>%d</u> tags will be deleted" msgstr[0] "<u>%d</u> tag will be deleted" msgstr[1] "<u>%d</u> tags will be deleted" -#: ../src/libs/tagging.c:1590 ../src/libs/tagging.c:1801 -#: ../src/libs/tagging.c:2075 +#: ../src/libs/tagging.c:1599 ../src/libs/tagging.c:1826 +#: ../src/libs/tagging.c:2105 #, c-format msgid "<u>%d</u> image will be updated" msgid_plural "<u>%d</u> images will be updated" msgstr[0] "<u>%d</u> image will be updated" msgstr[1] "<u>%d</u> images will be updated" -#: ../src/libs/tagging.c:1616 +#: ../src/libs/tagging.c:1625 #, c-format msgid "%d tags removed" msgstr "%d tags removed" -#: ../src/libs/tagging.c:1652 +#: ../src/libs/tagging.c:1668 msgid "create tag" msgstr "Create tag" -#: ../src/libs/tagging.c:1662 ../src/libs/tagging.c:1809 +#: ../src/libs/tagging.c:1681 ../src/libs/tagging.c:1834 msgid "name: " msgstr "Name: " -#: ../src/libs/tagging.c:1674 +#: ../src/libs/tagging.c:1696 #, c-format msgid "add to: \"%s\" " msgstr "Add to: \"%s\" " -#: ../src/libs/tagging.c:1680 ../src/libs/tagging.c:1824 +#: ../src/libs/tagging.c:1702 ../src/libs/tagging.c:1851 msgid "category" msgstr "Category" -#: ../src/libs/tagging.c:1689 ../src/libs/tagging.c:1833 +#: ../src/libs/tagging.c:1711 ../src/libs/tagging.c:1860 msgid "synonyms: " msgstr "Synonyms: " -#: ../src/libs/tagging.c:1706 ../src/libs/tagging.c:1855 -#: ../src/libs/tagging.c:2097 +#: ../src/libs/tagging.c:1728 ../src/libs/tagging.c:1882 +#: ../src/libs/tagging.c:2128 msgid "empty tag is not allowed, aborting" msgstr "Empty tag is not allowed, aborting" -#: ../src/libs/tagging.c:1717 +#: ../src/libs/tagging.c:1739 msgid "tag name already exists. aborting." msgstr "Tag name already exists. Aborting." -#: ../src/libs/tagging.c:1796 ../src/libs/tagging.c:2070 +#: ../src/libs/tagging.c:1821 ../src/libs/tagging.c:2100 #, c-format msgid "<u>%d</u> tag will be updated" msgid_plural "<u>%d</u> tags will be updated" msgstr[0] "<u>%d</u> tag will be updated" msgstr[1] "<u>%d</u> tags will be updated" -#: ../src/libs/tagging.c:1857 +#: ../src/libs/tagging.c:1884 msgid "" "'|' character is not allowed for renaming tag.\n" "to modify the hierarchy use rename path instead. Aborting." @@ -23612,100 +24312,100 @@ "'|' character is not allowed for renaming tag.\n" "To modify the hierarchy use rename path instead. Aborting." -#: ../src/libs/tagging.c:1896 ../src/libs/tagging.c:2004 +#: ../src/libs/tagging.c:1923 ../src/libs/tagging.c:2031 #, c-format msgid "at least one new tag name (%s) already exists, aborting" msgstr "At least one new tag name (%s) already exists, aborting" -#: ../src/libs/tagging.c:2056 +#: ../src/libs/tagging.c:2083 msgid "change path" msgstr "Change path" -#: ../src/libs/tagging.c:2099 +#: ../src/libs/tagging.c:2130 msgid "'|' misplaced, empty tag is not allowed, aborting" msgstr "'|' misplaced, empty tag is not allowed, aborting" -#: ../src/libs/tagging.c:2195 +#: ../src/libs/tagging.c:2226 #, c-format msgid "tag %s created" msgstr "Tag %s created" -#: ../src/libs/tagging.c:2221 +#: ../src/libs/tagging.c:2252 msgid "attach tag" msgstr "Attach tag" -#: ../src/libs/tagging.c:2234 +#: ../src/libs/tagging.c:2265 msgid "create tag..." msgstr "Create tag..." -#: ../src/libs/tagging.c:2240 +#: ../src/libs/tagging.c:2271 msgid "delete tag" msgstr "Delete tag" -#: ../src/libs/tagging.c:2247 +#: ../src/libs/tagging.c:2278 msgid "delete node" msgstr "Delete node" -#: ../src/libs/tagging.c:2260 +#: ../src/libs/tagging.c:2291 msgid "change path..." msgstr "Change path..." -#: ../src/libs/tagging.c:2270 +#: ../src/libs/tagging.c:2301 msgid "set as a tag" msgstr "Set as a tag" -#: ../src/libs/tagging.c:2281 +#: ../src/libs/tagging.c:2312 msgid "copy to entry" msgstr "Copy to entry" -#: ../src/libs/tagging.c:2298 +#: ../src/libs/tagging.c:2329 msgid "go to tag collection" msgstr "Go to tag collection" -#: ../src/libs/tagging.c:2304 +#: ../src/libs/tagging.c:2335 msgid "go back to work" msgstr "Go back to work" -#: ../src/libs/tagging.c:2461 +#: ../src/libs/tagging.c:2492 #, c-format msgid "%s" msgstr "%s" -#: ../src/libs/tagging.c:2462 +#: ../src/libs/tagging.c:2493 msgid "(private)" msgstr "(private)" -#: ../src/libs/tagging.c:2488 +#: ../src/libs/tagging.c:2519 msgid "select a keyword file" msgstr "Select a keyword file" -#: ../src/libs/tagging.c:2501 +#: ../src/libs/tagging.c:2532 msgid "error importing tags" msgstr "Error importing tags" -#: ../src/libs/tagging.c:2503 +#: ../src/libs/tagging.c:2534 #, c-format msgid "%zd tags imported" msgstr "%zd tags imported" -#: ../src/libs/tagging.c:2524 +#: ../src/libs/tagging.c:2555 msgid "select file to export to" msgstr "Select file to export to" -#: ../src/libs/tagging.c:2538 +#: ../src/libs/tagging.c:2569 msgid "error exporting tags" msgstr "Error exporting tags" -#: ../src/libs/tagging.c:2540 +#: ../src/libs/tagging.c:2571 #, c-format msgid "%zd tags exported" msgstr "%zd tags exported" -#: ../src/libs/tagging.c:2964 +#: ../src/libs/tagging.c:2995 msgid "drop to root" msgstr "Drop to root" -#: ../src/libs/tagging.c:3100 +#: ../src/libs/tagging.c:3131 msgid "" "attached tags\n" "press Delete or double-click to detach\n" @@ -23717,47 +24417,47 @@ "Right-click for other actions on attached tag,\n" "Tab to give the focus to entry" -#: ../src/libs/tagging.c:3111 +#: ../src/libs/tagging.c:3142 msgid "attach" msgstr "Attach" -#: ../src/libs/tagging.c:3112 +#: ../src/libs/tagging.c:3143 msgid "attach tag to all selected images" msgstr "Attach tag to all selected images" -#: ../src/libs/tagging.c:3115 +#: ../src/libs/tagging.c:3146 msgid "detach" msgstr "Detach" -#: ../src/libs/tagging.c:3116 +#: ../src/libs/tagging.c:3147 msgid "detach tag from all selected images" msgstr "Detach tag from all selected images" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "toggle list with / without hierarchy" msgstr "Toggle list with / without hierarchy" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "hide" msgstr "Hide" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "toggle sort by name or by count" msgstr "Toggle sort by name or by count" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "sort" msgstr "Sort" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "toggle show or not darktable tags" msgstr "Toggle show or not Darktable tags" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "dttags" msgstr "dttags" -#: ../src/libs/tagging.c:3149 +#: ../src/libs/tagging.c:3180 msgid "" "enter tag name\n" "press Enter to create a new tag and attach it on selected images\n" @@ -23769,11 +24469,11 @@ "Press Tab or Down key to go to the first matching tag\n" "Press Shift+Tab to select the first attached user tag" -#: ../src/libs/tagging.c:3160 ../src/libs/tagging.c:3166 +#: ../src/libs/tagging.c:3191 ../src/libs/tagging.c:3197 msgid "clear entry" msgstr "Clear entry" -#: ../src/libs/tagging.c:3213 +#: ../src/libs/tagging.c:3244 msgid "" "tag dictionary,\n" "Enter or double-click to attach selected tag on selected images\n" @@ -23789,7 +24489,7 @@ "Right-click for other actions on selected tag\n" "Shift+Tab to give the focus to entry" -#: ../src/libs/tagging.c:3248 +#: ../src/libs/tagging.c:3279 msgid "" "create a new tag with the\n" "name you entered" @@ -23797,41 +24497,41 @@ "Create a new tag with the\n" "name you entered" -#: ../src/libs/tagging.c:3251 +#: ../src/libs/tagging.c:3282 msgid "import tags from a Lightroom keyword file" msgstr "Import tags from a Lightroom keyword file" -#: ../src/libs/tagging.c:3254 +#: ../src/libs/tagging.c:3285 msgid "export all tags to a Lightroom keyword file" msgstr "Export all tags to a Lightroom keyword file" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "toggle list / tree view" msgstr "Toggle list / tree view" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "tree" msgstr "Tree" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "toggle list with / without suggestion" msgstr "Toggle list with / without suggestion" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "suggestion" msgstr "Suggestion" -#: ../src/libs/tagging.c:3282 +#: ../src/libs/tagging.c:3313 msgid "redo last tag" msgstr "Redo last tag" -#: ../src/libs/tagging.c:3365 +#: ../src/libs/tagging.c:3396 msgid "" "tag shortcut is not active with tag tree view. please switch to list view" msgstr "" "Tag shortcut is not active with tag tree view. Please switch to list view" -#: ../src/libs/tagging.c:3469 +#: ../src/libs/tagging.c:3500 msgid "tagging settings" msgstr "Tagging settings" @@ -23848,27 +24548,6 @@ msgid "toggle color label of selected images" msgstr "Toggle color label of selected images" -#: ../src/libs/tools/darktable.c:284 -#, c-format -msgid "copyright (c) the authors 2009-%s" -msgstr "Copyright (c) the authors 2009-%s" - -#: ../src/libs/tools/darktable.c:288 -msgid "organize and develop images from digital cameras" -msgstr "Organize and develop images from digital cameras" - -#: ../src/libs/tools/darktable.c:300 -msgid "all those of you that made previous releases possible" -msgstr "All those of you that made previous releases possible" - -#: ../src/libs/tools/darktable.c:305 -msgid "and..." -msgstr "And..." - -#: ../src/libs/tools/darktable.c:307 -msgid "translator-credits" -msgstr "Victor Forsiuk <vvforce@gmail.com>" - #: ../src/libs/tools/filmstrip.c:45 msgid "filmstrip" msgstr "Filmstrip" @@ -24186,35 +24865,35 @@ msgid "click to enter culling layout in dynamic mode." msgstr "Click to enter culling layout in dynamic mode." -#: ../src/libs/tools/lighttable.c:368 +#: ../src/libs/tools/lighttable.c:365 msgid "toggle filemanager layout" msgstr "Toggle filemanager layout" -#: ../src/libs/tools/lighttable.c:371 +#: ../src/libs/tools/lighttable.c:368 msgid "click to enter filemanager layout." msgstr "Click to enter filemanager layout." -#: ../src/libs/tools/lighttable.c:377 +#: ../src/libs/tools/lighttable.c:374 msgid "toggle zoomable lighttable layout" msgstr "Toggle zoomable Lighttable layout" -#: ../src/libs/tools/lighttable.c:380 +#: ../src/libs/tools/lighttable.c:377 msgid "click to enter zoomable lighttable layout." msgstr "Click to enter zoomable Lighttable layout." -#: ../src/libs/tools/lighttable.c:386 +#: ../src/libs/tools/lighttable.c:383 msgid "toggle culling mode" msgstr "Toggle culling mode" -#: ../src/libs/tools/lighttable.c:394 +#: ../src/libs/tools/lighttable.c:391 msgid "toggle culling dynamic mode" msgstr "Toggle culling dynamic mode" -#: ../src/libs/tools/lighttable.c:441 +#: ../src/libs/tools/lighttable.c:438 msgid "toggle culling zoom mode" msgstr "Toggle culling zoom mode" -#: ../src/libs/tools/lighttable.c:443 +#: ../src/libs/tools/lighttable.c:440 msgid "exit current layout" msgstr "Exit current layout" @@ -24295,7 +24974,7 @@ msgid "Lua options" msgstr "Lua options" -#: ../src/views/darkroom.c:607 +#: ../src/views/darkroom.c:503 #, c-format msgid "" "darktable could not load `%s', switching to lighttable now.\n" @@ -24318,62 +24997,62 @@ "an issue\n" "at https://github.com/darktable-org/darktable" -#: ../src/views/darkroom.c:625 +#: ../src/views/darkroom.c:521 #, c-format msgctxt "darkroom" msgid "loading `%s' ..." msgstr "Loading `%s' ..." -#: ../src/views/darkroom.c:749 ../src/views/darkroom.c:2496 +#: ../src/views/darkroom.c:668 ../src/views/darkroom.c:2335 msgid "gamut check" msgstr "Gamut check" -#: ../src/views/darkroom.c:749 +#: ../src/views/darkroom.c:668 msgid "soft proof" msgstr "Soft proof" #. fail :( -#: ../src/views/darkroom.c:787 ../src/views/print.c:356 +#: ../src/views/darkroom.c:708 ../src/views/print.c:356 msgid "no image to open!" msgstr "No image to open!" -#: ../src/views/darkroom.c:1331 +#: ../src/views/darkroom.c:1232 msgid "no user-defined presets for favorite modules were found" msgstr "No user-defined presets for favorite modules were found" -#: ../src/views/darkroom.c:1476 +#: ../src/views/darkroom.c:1377 msgid "no styles have been created yet" msgstr "No styles have been created yet" -#: ../src/views/darkroom.c:2331 ../src/views/darkroom.c:2332 +#: ../src/views/darkroom.c:2170 ../src/views/darkroom.c:2171 msgid "quick access to presets" msgstr "Quick access to presets" -#: ../src/views/darkroom.c:2340 +#: ../src/views/darkroom.c:2179 msgid "quick access to styles" msgstr "Quick access to styles" -#: ../src/views/darkroom.c:2342 +#: ../src/views/darkroom.c:2181 msgid "quick access for applying any of your styles" msgstr "Quick access for applying any of your styles" -#: ../src/views/darkroom.c:2348 +#: ../src/views/darkroom.c:2187 msgid "second window" msgstr "Second window" -#: ../src/views/darkroom.c:2351 +#: ../src/views/darkroom.c:2190 msgid "display a second darkroom image window" msgstr "Display a second Darkroom image window" -#: ../src/views/darkroom.c:2356 +#: ../src/views/darkroom.c:2195 msgid "color assessment" msgstr "Color assessment" -#: ../src/views/darkroom.c:2359 +#: ../src/views/darkroom.c:2198 msgid "toggle ISO 12646 color assessment conditions" msgstr "Toggle ISO 12646 color assessment conditions" -#: ../src/views/darkroom.c:2372 +#: ../src/views/darkroom.c:2211 msgid "" "toggle raw over exposed indication\n" "right click for options" @@ -24381,27 +25060,27 @@ "Toggle raw over exposed indication\n" "Right click for options" -#: ../src/views/darkroom.c:2388 +#: ../src/views/darkroom.c:2227 msgid "select how to mark the clipped pixels" msgstr "Select how to mark the clipped pixels" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with CFA color" msgstr "Mark with CFA color" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with solid color" msgstr "Mark with solid color" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "false color" msgstr "False color" -#: ../src/views/darkroom.c:2393 ../src/views/darkroom.c:2444 +#: ../src/views/darkroom.c:2232 ../src/views/darkroom.c:2283 msgid "color scheme" msgstr "Color scheme" -#: ../src/views/darkroom.c:2394 +#: ../src/views/darkroom.c:2233 msgid "" "select the solid color to indicate over exposure.\n" "will only be used if mode = mark with solid color" @@ -24409,27 +25088,27 @@ "Select the solid color to indicate over exposure.\n" "Will only be used if mode = mark with solid color" -#: ../src/views/darkroom.c:2397 +#: ../src/views/darkroom.c:2236 msgctxt "solidcolor" msgid "red" msgstr "Red" -#: ../src/views/darkroom.c:2398 +#: ../src/views/darkroom.c:2237 msgctxt "solidcolor" msgid "green" msgstr "Green" -#: ../src/views/darkroom.c:2399 +#: ../src/views/darkroom.c:2238 msgctxt "solidcolor" msgid "blue" msgstr "Blue" -#: ../src/views/darkroom.c:2400 +#: ../src/views/darkroom.c:2239 msgctxt "solidcolor" msgid "black" msgstr "Black" -#: ../src/views/darkroom.c:2408 +#: ../src/views/darkroom.c:2247 msgid "" "threshold of what shall be considered overexposed\n" "1.0 - white level\n" @@ -24439,7 +25118,7 @@ "1.0 - white level\n" "0.0 - black level" -#: ../src/views/darkroom.c:2422 +#: ../src/views/darkroom.c:2261 msgid "" "toggle clipping indication\n" "right click for options" @@ -24447,11 +25126,11 @@ "Toggle clipping indication\n" "Right click for options" -#: ../src/views/darkroom.c:2437 +#: ../src/views/darkroom.c:2276 msgid "clipping preview mode" msgstr "Clipping preview mode" -#: ../src/views/darkroom.c:2438 +#: ../src/views/darkroom.c:2277 msgid "" "select the metric you want to preview\n" "full gamut is the combination of all other modes" @@ -24459,39 +25138,39 @@ "Select the metric you want to preview\n" "Full gamut is the combination of all other modes" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "full gamut" msgstr "Full gamut" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "any RGB channel" msgstr "Any RGB channel" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "luminance only" msgstr "Luminance only" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "saturation only" msgstr "Saturation only" -#: ../src/views/darkroom.c:2445 +#: ../src/views/darkroom.c:2284 msgid "select colors to indicate clipping" msgstr "Select colors to indicate clipping" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "red & blue" msgstr "Red & blue" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "purple & green" msgstr "Purple & green" -#: ../src/views/darkroom.c:2454 +#: ../src/views/darkroom.c:2293 msgid "lower threshold" msgstr "Lower threshold" -#: ../src/views/darkroom.c:2455 +#: ../src/views/darkroom.c:2294 msgid "" "clipping threshold for the black point,\n" "in EV, relatively to white (0 EV).\n" @@ -24511,11 +25190,11 @@ "Typical color glossy prints produce black at -8.00 EV,\n" "Typical B&W glossy prints produce black at -9.00 EV." -#: ../src/views/darkroom.c:2471 +#: ../src/views/darkroom.c:2310 msgid "upper threshold" msgstr "Upper threshold" -#: ../src/views/darkroom.c:2473 +#: ../src/views/darkroom.c:2312 #, no-c-format msgid "" "clipping threshold for the white point.\n" @@ -24524,11 +25203,11 @@ "Clipping threshold for the white point.\n" "100% is peak medium luminance." -#: ../src/views/darkroom.c:2485 +#: ../src/views/darkroom.c:2324 msgid "softproof" msgstr "Softproof" -#: ../src/views/darkroom.c:2488 +#: ../src/views/darkroom.c:2327 msgid "" "toggle softproofing\n" "right click for profile options" @@ -24536,7 +25215,7 @@ "Toggle softproofing\n" "Right click for profile options" -#: ../src/views/darkroom.c:2499 +#: ../src/views/darkroom.c:2338 msgid "" "toggle gamut checking\n" "right click for profile options" @@ -24544,46 +25223,54 @@ "Toggle gamut checking\n" "Right click for profile options" -#: ../src/views/darkroom.c:2524 ../src/views/darkroom.c:2526 -#: ../src/views/darkroom.c:2540 ../src/views/darkroom.c:2541 -#: ../src/views/darkroom.c:2542 ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2365 ../src/views/darkroom.c:2367 +#: ../src/views/darkroom.c:2381 ../src/views/darkroom.c:2382 +#: ../src/views/darkroom.c:2383 ../src/views/darkroom.c:2384 #: ../src/views/lighttable.c:1182 ../src/views/lighttable.c:1184 msgid "profiles" msgstr "Profiles" -#: ../src/views/darkroom.c:2526 ../src/views/lighttable.c:1184 +#: ../src/views/darkroom.c:2367 ../src/views/lighttable.c:1184 msgid "preview intent" msgstr "Preview intent" -#: ../src/views/darkroom.c:2540 ../src/views/lighttable.c:1188 +#: ../src/views/darkroom.c:2381 ../src/views/lighttable.c:1188 msgid "display profile" msgstr "Display profile" -#: ../src/views/darkroom.c:2541 ../src/views/lighttable.c:1191 +#: ../src/views/darkroom.c:2382 ../src/views/lighttable.c:1191 msgid "preview display profile" msgstr "Preview display profile" -#: ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2384 msgid "histogram profile" msgstr "Histogram profile" -#: ../src/views/darkroom.c:2605 ../src/views/lighttable.c:1225 +#: ../src/views/darkroom.c:2391 +msgid "second preview window ISO 12646 color assessment" +msgstr "Second preview window ISO 12646 color assessment" + +#: ../src/views/darkroom.c:2393 +msgid "color assessment second preview" +msgstr "Color assessment second preview" + +#: ../src/views/darkroom.c:2452 ../src/views/lighttable.c:1225 msgid "display ICC profiles" msgstr "display ICC profiles" -#: ../src/views/darkroom.c:2609 ../src/views/lighttable.c:1229 +#: ../src/views/darkroom.c:2456 ../src/views/lighttable.c:1229 msgid "preview display ICC profiles" msgstr "preview display ICC profiles" -#: ../src/views/darkroom.c:2613 +#: ../src/views/darkroom.c:2460 msgid "softproof ICC profiles" msgstr "softproof ICC profiles" -#: ../src/views/darkroom.c:2617 +#: ../src/views/darkroom.c:2464 msgid "histogram and color picker ICC profiles" msgstr "histogram and color picker ICC profiles" -#: ../src/views/darkroom.c:2651 +#: ../src/views/darkroom.c:2497 msgid "" "toggle guide lines\n" "right click for guides options" @@ -24592,137 +25279,137 @@ "Right click for guides options" #. Fullscreen preview key -#: ../src/views/darkroom.c:2668 +#: ../src/views/darkroom.c:2514 msgid "full preview" msgstr "Full preview" #. add an option to allow skip mouse events while other overlays are consuming mouse actions -#: ../src/views/darkroom.c:2672 +#: ../src/views/darkroom.c:2518 msgid "force pan/zoom/rotate with mouse" msgstr "Force pan/zoom/rotate with mouse" #. Zoom shortcuts -#: ../src/views/darkroom.c:2684 +#: ../src/views/darkroom.c:2530 msgid "zoom close-up" msgstr "Zoom close-up" #. zoom in/out #. zoom in/out/min/max -#: ../src/views/darkroom.c:2687 ../src/views/lighttable.c:1283 +#: ../src/views/darkroom.c:2533 ../src/views/lighttable.c:1283 msgid "zoom in" msgstr "Zoom in" -#: ../src/views/darkroom.c:2688 ../src/views/lighttable.c:1285 +#: ../src/views/darkroom.c:2534 ../src/views/lighttable.c:1285 msgid "zoom out" msgstr "Zoom out" #. Shortcut to skip images -#: ../src/views/darkroom.c:2691 +#: ../src/views/darkroom.c:2537 msgid "image forward" msgstr "Image forward" -#: ../src/views/darkroom.c:2692 +#: ../src/views/darkroom.c:2538 msgid "image back" msgstr "Image back" #. cycle overlay colors -#: ../src/views/darkroom.c:2695 +#: ../src/views/darkroom.c:2541 msgid "cycle overlay colors" msgstr "Cycle overlay colors" #. toggle visibility of drawn masks for current gui module -#: ../src/views/darkroom.c:2698 +#: ../src/views/darkroom.c:2544 msgid "show drawn masks" msgstr "Show drawn masks" #. brush size +/- -#: ../src/views/darkroom.c:2701 +#: ../src/views/darkroom.c:2547 msgid "increase brush size" msgstr "Increase brush size" -#: ../src/views/darkroom.c:2702 +#: ../src/views/darkroom.c:2548 msgid "decrease brush size" msgstr "Decrease brush size" #. brush hardness +/- -#: ../src/views/darkroom.c:2705 +#: ../src/views/darkroom.c:2551 msgid "increase brush hardness" msgstr "Increase brush hardness" -#: ../src/views/darkroom.c:2706 +#: ../src/views/darkroom.c:2552 msgid "decrease brush hardness" msgstr "Decrease brush hardness" #. brush opacity +/- -#: ../src/views/darkroom.c:2709 +#: ../src/views/darkroom.c:2555 msgid "increase brush opacity" msgstr "Increase brush opacity" -#: ../src/views/darkroom.c:2710 +#: ../src/views/darkroom.c:2556 msgid "decrease brush opacity" msgstr "Decrease brush opacity" #. undo/redo -#: ../src/views/darkroom.c:2713 ../src/views/lighttable.c:1275 +#: ../src/views/darkroom.c:2559 ../src/views/lighttable.c:1275 #: ../src/views/map.c:2115 msgid "undo" msgstr "Undo" -#: ../src/views/darkroom.c:2714 ../src/views/lighttable.c:1276 +#: ../src/views/darkroom.c:2560 ../src/views/lighttable.c:1276 #: ../src/views/map.c:2116 msgid "redo" msgstr "Redo" #. change the precision for adjusting sliders with keyboard shortcuts -#: ../src/views/darkroom.c:2717 +#: ../src/views/darkroom.c:2563 msgid "change keyboard shortcut slider precision" msgstr "Change keyboard shortcut slider precision" -#: ../src/views/darkroom.c:3989 +#: ../src/views/darkroom.c:3565 msgid "keyboard shortcut slider precision: fine" msgstr "Keyboard shortcut slider precision: fine" -#: ../src/views/darkroom.c:3991 +#: ../src/views/darkroom.c:3567 msgid "keyboard shortcut slider precision: normal" msgstr "Keyboard shortcut slider precision: normal" -#: ../src/views/darkroom.c:3993 +#: ../src/views/darkroom.c:3569 msgid "keyboard shortcut slider precision: coarse" msgstr "Keyboard shortcut slider precision: coarse" -#: ../src/views/darkroom.c:4009 +#: ../src/views/darkroom.c:3584 msgid "switch to lighttable" msgstr "Switch to Lighttable" -#: ../src/views/darkroom.c:4010 ../src/views/lighttable.c:882 +#: ../src/views/darkroom.c:3585 ../src/views/lighttable.c:882 msgid "zoom in the image" msgstr "Zoom in the image" -#: ../src/views/darkroom.c:4011 +#: ../src/views/darkroom.c:3586 msgid "unbounded zoom in the image" msgstr "Unbounded zoom in the image" -#: ../src/views/darkroom.c:4012 +#: ../src/views/darkroom.c:3587 msgid "zoom to 100% 200% and back" msgstr "Zoom to 100% 200% and back" -#: ../src/views/darkroom.c:4013 ../src/views/lighttable.c:885 +#: ../src/views/darkroom.c:3588 ../src/views/lighttable.c:885 msgid "pan a zoomed image" msgstr "Pan a zoomed image" -#: ../src/views/darkroom.c:4015 ../src/views/lighttable.c:927 +#: ../src/views/darkroom.c:3590 ../src/views/lighttable.c:927 msgid "[modules] expand module without closing others" msgstr "[modules] expand module without closing others" -#: ../src/views/darkroom.c:4016 ../src/views/lighttable.c:928 +#: ../src/views/darkroom.c:3591 ../src/views/lighttable.c:928 msgid "[modules] expand module and close others" msgstr "[modules] expand module and close others" -#: ../src/views/darkroom.c:4018 +#: ../src/views/darkroom.c:3593 msgid "[modules] rename module" msgstr "[modules] rename module" -#: ../src/views/darkroom.c:4020 +#: ../src/views/darkroom.c:3595 msgid "[modules] change module position in pipe" msgstr "[modules] change module position in pipe" @@ -24867,59 +25554,59 @@ msgid "print" msgstr "Print" -#: ../src/views/slideshow.c:353 +#: ../src/views/slideshow.c:355 msgid "end of images" msgstr "End of images" -#: ../src/views/slideshow.c:374 +#: ../src/views/slideshow.c:376 msgid "end of images. press any key to return to lighttable mode" msgstr "End of images. Press any key to return to Lighttable mode" -#: ../src/views/slideshow.c:504 +#: ../src/views/slideshow.c:509 msgid "waiting to start slideshow" msgstr "Waiting to start slideshow" -#: ../src/views/slideshow.c:640 ../src/views/slideshow.c:661 -#: ../src/views/slideshow.c:669 +#: ../src/views/slideshow.c:678 ../src/views/slideshow.c:705 +#: ../src/views/slideshow.c:713 msgid "slideshow paused" msgstr "Slideshow paused" -#: ../src/views/slideshow.c:648 ../src/views/slideshow.c:655 +#: ../src/views/slideshow.c:686 ../src/views/slideshow.c:696 #, c-format msgid "slideshow delay set to %d second" msgid_plural "slideshow delay set to %d seconds" msgstr[0] "Slideshow delay set to %d second" msgstr[1] "Slideshow delay set to %d seconds" -#: ../src/views/slideshow.c:684 +#: ../src/views/slideshow.c:728 msgid "start and stop" msgstr "Start and stop" -#: ../src/views/slideshow.c:685 +#: ../src/views/slideshow.c:730 msgid "exit slideshow" msgstr "Exit slideshow" -#: ../src/views/slideshow.c:688 +#: ../src/views/slideshow.c:734 msgid "slow down" msgstr "Slow down" -#: ../src/views/slideshow.c:691 +#: ../src/views/slideshow.c:738 msgid "speed up" msgstr "Speed up" -#: ../src/views/slideshow.c:695 +#: ../src/views/slideshow.c:743 msgid "step forward" msgstr "Step forward" -#: ../src/views/slideshow.c:696 +#: ../src/views/slideshow.c:745 msgid "step back" msgstr "Step back" -#: ../src/views/slideshow.c:702 +#: ../src/views/slideshow.c:753 msgid "go to next image" msgstr "Go to next image" -#: ../src/views/slideshow.c:703 +#: ../src/views/slideshow.c:755 msgid "go to previous image" msgstr "Go to previous image" @@ -24932,51 +25619,339 @@ msgid "no camera with tethering support available for use..." msgstr "No camera with tethering support available for use..." -#: ../src/views/view.c:1193 +#: ../src/views/view.c:1352 msgid "left click" msgstr "Left click" -#: ../src/views/view.c:1196 +#: ../src/views/view.c:1355 msgid "right click" msgstr "Right click" -#: ../src/views/view.c:1199 +#: ../src/views/view.c:1358 msgid "middle click" msgstr "Middle click" -#: ../src/views/view.c:1205 +#: ../src/views/view.c:1364 msgid "left double-click" msgstr "Left double-click" -#: ../src/views/view.c:1208 +#: ../src/views/view.c:1367 msgid "right double-click" msgstr "Right double-click" -#: ../src/views/view.c:1211 +#: ../src/views/view.c:1370 msgid "drag and drop" msgstr "Drag and drop" -#: ../src/views/view.c:1214 +#: ../src/views/view.c:1373 msgid "left click+drag" msgstr "Left click+drag" -#: ../src/views/view.c:1217 +#: ../src/views/view.c:1376 msgid "right click+drag" msgstr "Right click+drag" -#: ../src/views/view.c:1237 +#: ../src/views/view.c:1398 msgid "darktable - accels window" msgstr "Darktable - accels window" -#: ../src/views/view.c:1285 +#: ../src/views/view.c:1447 msgid "switch to a classic window which will stay open after key release" msgstr "Switch to a classic window which will stay open after key release" #. we add the mouse actions too -#: ../src/views/view.c:1344 +#: ../src/views/view.c:1514 msgid "mouse actions" msgstr "Mouse actions" +#~ msgid "selected image[s]" +#~ msgstr "Selected image[s]" + +#~ msgid "spot color mapping" +#~ msgstr "Spot color mapping" + +#~ msgid "spot mode" +#~ msgstr "Spot mode" + +#~ msgid "save history while developing" +#~ msgstr "Save history while developing" + +#~ msgid "longest" +#~ msgstr "Longest" + +#~ msgid "" +#~ "when having raw+JPEG images together in one directory it makes no sense " +#~ "to import both. with this flag one can ignore all JPEGs found." +#~ msgstr "" +#~ "When having raw+JPEG images together in one directory it makes no sense " +#~ "to import both. With this flag one can ignore all JPEGs found." + +#~ msgid "red inset" +#~ msgstr "Red inset" + +#~ msgid "green inset" +#~ msgstr "Green inset" + +#~ msgid "blue inset" +#~ msgstr "Blue inset" + +#~ msgid "b&w as grayscale" +#~ msgstr "B&W as grayscale" + +#~ msgid "red primary inset" +#~ msgstr "Red primary inset" + +#~ msgid "red primary rotation" +#~ msgstr "Red primary rotation" + +#~ msgid "green primary inset" +#~ msgstr "Green primary inset" + +#~ msgid "green primary rotation" +#~ msgstr "Green primary rotation" + +#~ msgid "blue primary inset" +#~ msgstr "Blue primary inset" + +#~ msgid "blue primary rotation" +#~ msgstr "Blue primary rotation" + +#~ msgid "" +#~ "tone equalizer needs to be after distortion modules in the pipeline – " +#~ "disabled" +#~ msgstr "" +#~ "Tone equalizer needs to be after distortion modules in the pipeline – " +#~ "disabled" + +#~ msgid "red primary hue" +#~ msgstr "Red primary hue" + +#~ msgctxt "preferences" +#~ msgid "4k" +#~ msgstr "4K" + +#~ msgid "only" +#~ msgstr "Only" + +#~ msgctxt "preferences" +#~ msgid "id" +#~ msgstr "Id" + +#~ msgctxt "preferences" +#~ msgid "folder" +#~ msgstr "Folder" + +#~ msgid "" +#~ "if an instance of the module has focus, apply shortcut to that instance\n" +#~ "note: blending shortcuts always apply to the focused instance" +#~ msgstr "" +#~ "If an instance of the module has focus, apply shortcut to that instance\n" +#~ "Note: blending shortcuts always apply to the focused instance" + +#~ msgid "click to dismiss this notice permanently" +#~ msgstr "Click to dismiss this notice permanently" + +#~ msgid "hardness (relative)" +#~ msgstr "Hardness (relative)" + +#~ msgid "hardness (absolute)" +#~ msgstr "Hardness (absolute)" + +#~ msgid "opacity (relative)" +#~ msgstr "Opacity (relative)" + +#~ msgid "opacity (absolute)" +#~ msgstr "Opacity (absolute)" + +#~ msgid "brush size (relative)" +#~ msgstr "Brush size (relative)" + +#~ msgid "low" +#~ msgstr "Low" + +#~ msgid "medium" +#~ msgstr "Medium" + +#~ msgid "high" +#~ msgstr "High" + +#~ msgid "" +#~ "pen pressure control for brush masks\n" +#~ "'off': pressure reading ignored,\n" +#~ "'hardness'/'opacity'/'brush size': pressure reading controls specified " +#~ "attribute,\n" +#~ "'absolute'/'relative': pressure reading is taken directly as attribute " +#~ "value or multiplied with pre-defined setting." +#~ msgstr "" +#~ "Pen pressure control for brush masks\n" +#~ "'Off': pressure reading ignored,\n" +#~ "'Hardness'/'Opacity'/'Brush size': pressure reading controls specified " +#~ "attribute,\n" +#~ "'Absolute'/'Relative': pressure reading is taken directly as attribute " +#~ "value or multiplied with pre-defined setting." + +#~ msgid "" +#~ "smoothing of brush strokes\n" +#~ "stronger smoothing leads to fewer nodes and easier editing but with lower " +#~ "control of accuracy." +#~ msgstr "" +#~ "Smoothing of brush strokes\n" +#~ "Stronger smoothing leads to fewer nodes and easier editing but with lower " +#~ "control of accuracy." + +#~ msgid "" +#~ "darktable discovered problems with your OpenCL setup; disabling OpenCL " +#~ "for this session!" +#~ msgstr "" +#~ "Darktable discovered problems with your OpenCL setup; disabling OpenCL " +#~ "for this session!" + +#~ msgid "RGB colors" +#~ msgstr "RGB colors" + +#~ msgid "compression type" +#~ msgstr "Compression type" + +#~ msgid "b&w image" +#~ msgstr "B&W image" + +#~ msgid "write RGB colors" +#~ msgstr "Write RGB colors" + +#~ msgid "write grayscale" +#~ msgstr "Write grayscale" + +#~ msgid "tiff" +#~ msgstr "Tiff" + +#~ msgid "png" +#~ msgstr "Png" + +#~ msgid "j2k" +#~ msgstr "J2k" + +#~ msgid "jpeg" +#~ msgstr "Jpeg" + +#~ msgid "exr" +#~ msgstr "Exr" + +#~ msgid "rgbe" +#~ msgstr "Rgbe" + +#~ msgid "pfm" +#~ msgstr "Pfm" + +#~ msgid "netpnm" +#~ msgstr "Netpnm" + +#~ msgid "avif" +#~ msgstr "Avif" + +#~ msgid "heif" +#~ msgstr "Heif" + +#~ msgid "libraw" +#~ msgstr "Libraw" + +#~ msgid "webp" +#~ msgstr "WebP" + +#~ msgid "jpeg xl" +#~ msgstr "JPEG XL" + +#~ msgid "save" +#~ msgstr "Save" + +#~ msgid "add" +#~ msgstr "Add" + +#~ msgid "write sidecar file for each image" +#~ msgstr "Write sidecar file for each image" + +#~ msgctxt "preferences" +#~ msgid "nothing" +#~ msgstr "Nothing" + +#~ msgctxt "preferences" +#~ msgid "memory size" +#~ msgstr "Memory size" + +#~ msgctxt "preferences" +#~ msgid "memory transfer" +#~ msgstr "Memory transfer" + +#~ msgctxt "preferences" +#~ msgid "memory size and transfer" +#~ msgstr "Memory size and transfer" + +#~ msgid "tune OpenCL performance" +#~ msgstr "Tune OpenCL performance" + +#~ msgid "" +#~ "allows runtime tuning of OpenCL devices:\n" +#~ " - 'memory size': uses a fixed headroom (400MB as default),\n" +#~ " - 'memory transfer': tries a faster memory access mode (pinned memory) " +#~ "used for tiling." +#~ msgstr "" +#~ "Allows runtime tuning of OpenCL devices:\n" +#~ " - 'Memory size': uses a fixed headroom (400MB as default),\n" +#~ " - 'Memory transfer': tries a faster memory access mode (pinned memory) " +#~ "used for tiling." + +#~ msgid "" +#~ "due to a slow GPU hardware acceleration using OpenCL has been deactivated" +#~ msgstr "" +#~ "Due to a slow GPU hardware acceleration using OpenCL has been deactivated" + +#~ msgid "" +#~ "multiple GPUs detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "Multiple GPUs detected - OpenCL scheduling profile has been set " +#~ "accordingly" + +#~ msgid "" +#~ "very fast GPU detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "Very fast GPU detected - OpenCL scheduling profile has been set " +#~ "accordingly" + +#~ msgid "jp2" +#~ msgstr "jp2" + +#~ msgid "no-op" +#~ msgstr "No-op" + +#~ msgid "distortion fine-tune" +#~ msgstr "Distortion fine-tune" + +#~ msgid "vignetting fine-tune" +#~ msgstr "Vignetting fine-tune" + +#~ msgid "TCA red fine-tune" +#~ msgstr "TCA red fine-tune" + +#~ msgid "TCA blue fine-tune" +#~ msgstr "TCA blue fine-tune" + +#~ msgid "linear Prophoto RGB" +#~ msgstr "Linear ProPhoto RGB" + +#~ msgid "<leave unchanged>" +#~ msgstr "<leave unchanged>" + +#~ msgid "reference to which the marker should be scaled to" +#~ msgstr "Reference to which the marker should be scaled to" + +#~ msgid "length of the marker which is used as scaling reference" +#~ msgstr "Length of the marker which is used as scaling reference" + +#, c-format +#~ msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" +#~ msgstr "%.1f mm (%.1f mm FF equiv, Crop %.1f)" + #~ msgid "_yes, physically delete" #~ msgstr "_Yes, physically delete" @@ -25040,9 +26015,6 @@ #~ msgid "stop process" #~ msgstr "Stop process" -#~ msgid "set the custom aspect ratio" -#~ msgstr "Set the custom aspect ratio" - #~ msgid "legacy flag. set for all new images" #~ msgstr "Legacy flag. Set for all new images" @@ -25056,9 +26028,6 @@ #~ msgid "rgb colors" #~ msgstr "RGB colors" -#~ msgid "rgb parade" -#~ msgstr "RGB parade" - #~ msgid "rotate 90 degrees ccw" #~ msgstr "Rotate 90 degrees ccw" @@ -25251,9 +26220,6 @@ #~ msgid "lift chroma" #~ msgstr "Lift chroma" -#~ msgid "lift hue" -#~ msgstr "Lift hue" - #~ msgid "power luminance" #~ msgstr "Power luminance" @@ -25287,9 +26253,6 @@ #~ msgid "chroma highlights" #~ msgstr "Chroma highlights" -#~ msgid "chroma global" -#~ msgstr "Chroma global" - #~ msgid "chroma mid-tones" #~ msgstr "Chroma mid-tones" @@ -25644,9 +26607,6 @@ #~ msgid "preview is only possible for zoom lower than 200%%" #~ msgstr "Preview is only possible for zoom lower than 200%%" -#~ msgid "actual selection" -#~ msgstr "Actual selection" - #~ msgid "grouping filter" #~ msgstr "Grouping filter" diff -Nru darktable-4.4.2/po/es.po darktable-4.6.1/po/es.po --- darktable-4.4.2/po/es.po 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/po/es.po 2024-02-16 17:31:09.000000000 +0000 @@ -1,9 +1,9 @@ msgid "" msgstr "" -"Project-Id-Version: darktable 4.4\n" +"Project-Id-Version: darktable 4.6.x\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-31 13:24+0200\n" -"PO-Revision-Date: 2023-06-14 04:28-0600\n" +"POT-Creation-Date: 2023-12-02 20:18-0600\n" +"PO-Revision-Date: 2024-01-03 20:33-0600\n" "Last-Translator: Edgar Lux <edgarlux@disroot.org>\n" "Language-Team: Edgar Lux\n" "Language: es_ES\n" @@ -12,272 +12,237 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Bookmarks: -1,1170,-1,-1,-1,-1,-1,-1,-1,-1\n" -"X-Generator: Poedit 2.4.2\n" +"X-Generator: Poedit 3.2.2\n" -#: ../build/bin/conf_gen.h:172 ../build/bin/preferences_gen.h:7632 +#: ../build/bin/conf_gen.h:174 msgctxt "preferences" msgid "first instance" msgstr "Primera instancia" -#: ../build/bin/conf_gen.h:173 ../build/bin/preferences_gen.h:7637 -#: ../build/bin/preferences_gen.h:7656 +#: ../build/bin/conf_gen.h:175 ../build/bin/preferences_gen.h:7923 msgctxt "preferences" msgid "last instance" msgstr "Última instancia" -#: ../build/bin/conf_gen.h:240 ../build/bin/conf_gen.h:346 -#: ../build/bin/conf_gen.h:356 ../build/bin/conf_gen.h:1186 -#: ../build/bin/conf_gen.h:1202 ../build/bin/preferences_gen.h:4137 -#: ../build/bin/preferences_gen.h:4156 ../build/bin/preferences_gen.h:4232 -#: ../build/bin/preferences_gen.h:6706 ../build/bin/preferences_gen.h:6834 -#: ../build/bin/preferences_gen.h:6899 +#: ../build/bin/conf_gen.h:252 ../build/bin/conf_gen.h:352 +#: ../build/bin/conf_gen.h:362 ../build/bin/conf_gen.h:1239 +#: ../build/bin/conf_gen.h:1255 ../build/bin/conf_gen.h:1275 +#: ../build/bin/preferences_gen.h:4748 ../build/bin/preferences_gen.h:4886 msgctxt "preferences" msgid "never" msgstr "Nunca" -#: ../build/bin/conf_gen.h:241 ../build/bin/preferences_gen.h:6711 +#: ../build/bin/conf_gen.h:253 msgctxt "preferences" msgid "once a month" msgstr "Una vez por mes" -#: ../build/bin/conf_gen.h:242 ../build/bin/preferences_gen.h:6716 -#: ../build/bin/preferences_gen.h:6745 +#: ../build/bin/conf_gen.h:254 ../build/bin/preferences_gen.h:7139 msgctxt "preferences" msgid "once a week" msgstr "Una vez por semana" -#: ../build/bin/conf_gen.h:243 ../build/bin/preferences_gen.h:6721 +#: ../build/bin/conf_gen.h:255 msgctxt "preferences" msgid "once a day" msgstr "Una vez al día" -#: ../build/bin/conf_gen.h:244 ../build/bin/preferences_gen.h:6726 +#: ../build/bin/conf_gen.h:256 msgctxt "preferences" msgid "on close" msgstr "Al cerrar" -#: ../build/bin/conf_gen.h:280 ../build/bin/conf_gen.h:1179 -#: ../build/bin/conf_gen.h:1195 ../build/bin/preferences_gen.h:4102 -#: ../build/bin/preferences_gen.h:4197 ../build/bin/preferences_gen.h:5748 +#: ../build/bin/conf_gen.h:292 ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1248 ../build/bin/conf_gen.h:1276 msgctxt "preferences" msgid "small" msgstr "Reducido" -#: ../build/bin/conf_gen.h:281 ../build/bin/conf_gen.h:393 -#: ../build/bin/preferences_gen.h:5753 ../build/bin/preferences_gen.h:5782 -#: ../build/bin/preferences_gen.h:5969 ../build/bin/preferences_gen.h:5998 +#: ../build/bin/conf_gen.h:293 ../build/bin/conf_gen.h:405 +#: ../build/bin/preferences_gen.h:6103 ../build/bin/preferences_gen.h:6224 msgctxt "preferences" msgid "default" msgstr "Preestablecido" -#: ../build/bin/conf_gen.h:282 ../build/bin/conf_gen.h:2814 -#: ../build/bin/preferences_gen.h:5758 +#: ../build/bin/conf_gen.h:294 ../build/bin/conf_gen.h:2904 msgctxt "preferences" msgid "large" msgstr "Extenso" -#: ../build/bin/conf_gen.h:283 ../build/bin/preferences_gen.h:5763 +#: ../build/bin/conf_gen.h:295 msgctxt "preferences" msgid "unrestricted" msgstr "Irrestricto" -#: ../build/bin/conf_gen.h:347 ../build/bin/preferences_gen.h:6839 +#: ../build/bin/conf_gen.h:353 msgctxt "preferences" msgid "after edit" msgstr "Después de editar" -#: ../build/bin/conf_gen.h:348 ../build/bin/preferences_gen.h:6844 -#: ../build/bin/preferences_gen.h:6863 +#: ../build/bin/conf_gen.h:354 ../build/bin/preferences_gen.h:7225 msgctxt "preferences" msgid "on import" msgstr "Al importar" -#: ../build/bin/conf_gen.h:357 ../build/bin/conf_gen.h:1178 -#: ../build/bin/conf_gen.h:1194 ../build/bin/conf_gen.h:3214 -#: ../build/bin/preferences_gen.h:4097 ../build/bin/preferences_gen.h:4192 -#: ../build/bin/preferences_gen.h:5112 ../build/bin/preferences_gen.h:5166 -#: ../build/bin/preferences_gen.h:6904 +#: ../build/bin/conf_gen.h:363 ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1247 ../build/bin/conf_gen.h:3300 +#: ../build/bin/preferences_gen.h:5645 msgctxt "preferences" msgid "always" msgstr "Siempre" -#: ../build/bin/conf_gen.h:358 ../build/bin/preferences_gen.h:6909 -#: ../build/bin/preferences_gen.h:6928 +#: ../build/bin/conf_gen.h:364 ../build/bin/preferences_gen.h:7260 msgctxt "preferences" msgid "only large entries" msgstr "Solo entradas extensas" -#: ../build/bin/conf_gen.h:378 ../build/bin/preferences_gen.h:8069 +#: ../build/bin/conf_gen.h:390 msgctxt "preferences" msgid "sensitive" msgstr "diferenciar" -#: ../build/bin/conf_gen.h:379 ../build/bin/preferences_gen.h:8074 -#: ../build/bin/preferences_gen.h:8093 +#: ../build/bin/conf_gen.h:391 ../build/bin/preferences_gen.h:8134 msgctxt "preferences" msgid "insensitive" msgstr "indistinto" -#: ../build/bin/conf_gen.h:394 ../build/bin/preferences_gen.h:5974 +#: ../build/bin/conf_gen.h:406 msgctxt "preferences" msgid "multiple GPUs" msgstr "Múltiples GPU" # Ignorar advertencia: en el texto original GPU va en mayúsculas. -#: ../build/bin/conf_gen.h:395 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/conf_gen.h:407 msgctxt "preferences" msgid "very fast GPU" msgstr "GPU muy rápido" -#: ../build/bin/conf_gen.h:403 ../build/bin/preferences_gen.h:6040 -#: ../build/bin/preferences_gen.h:6074 +#: ../build/bin/conf_gen.h:755 ../build/bin/preferences_gen.h:8293 msgctxt "preferences" -msgid "nothing" -msgstr "ninguno" - -#: ../build/bin/conf_gen.h:404 ../build/bin/preferences_gen.h:6045 -msgctxt "preferences" -msgid "memory size" -msgstr "tamaño de memoria" - -#: ../build/bin/conf_gen.h:405 ../build/bin/preferences_gen.h:6050 -msgctxt "preferences" -msgid "memory transfer" -msgstr "transferencia de memoria" - -#: ../build/bin/conf_gen.h:406 ../build/bin/preferences_gen.h:6055 -msgctxt "preferences" -msgid "memory size and transfer" -msgstr "tamaño y trasnferencia de memoria" +msgid "import time" +msgstr "Fecha de importación" -#: ../build/bin/conf_gen.h:706 ../build/bin/preferences_gen.h:8257 -#: ../build/bin/preferences_gen.h:8281 +#: ../build/bin/conf_gen.h:756 msgctxt "preferences" -msgid "id" -msgstr "id." +msgid "folder name" +msgstr "Nombre de carpeta" -#: ../build/bin/conf_gen.h:707 ../build/bin/preferences_gen.h:8262 -msgctxt "preferences" -msgid "folder" -msgstr "Carpeta" - -#: ../build/bin/conf_gen.h:721 +#: ../build/bin/conf_gen.h:770 msgctxt "preferences" msgid "RGB" msgstr "RGB" -#: ../build/bin/conf_gen.h:722 +#: ../build/bin/conf_gen.h:771 msgctxt "preferences" msgid "Lab" msgstr "Lab" -#: ../build/bin/conf_gen.h:723 +#: ../build/bin/conf_gen.h:772 msgctxt "preferences" msgid "LCh" msgstr "LCh" -#: ../build/bin/conf_gen.h:724 +#: ../build/bin/conf_gen.h:773 msgctxt "preferences" msgid "HSL" msgstr "HSL" -#: ../build/bin/conf_gen.h:725 +#: ../build/bin/conf_gen.h:774 msgctxt "preferences" msgid "Hex" msgstr "Hex" -#: ../build/bin/conf_gen.h:726 ../build/bin/conf_gen.h:1830 -#: ../build/bin/conf_gen.h:2488 ../build/bin/conf_gen.h:2790 -#: ../build/bin/conf_gen.h:3044 ../build/bin/preferences_gen.h:5577 -#: ../build/bin/preferences_gen.h:6561 +#: ../build/bin/conf_gen.h:775 ../build/bin/conf_gen.h:1916 +#: ../build/bin/conf_gen.h:2578 ../build/bin/conf_gen.h:2880 +#: ../build/bin/conf_gen.h:3136 msgctxt "preferences" msgid "none" msgstr "Ninguno" -#: ../build/bin/conf_gen.h:734 +#: ../build/bin/conf_gen.h:783 msgctxt "preferences" msgid "mean" msgstr "promedio" -#: ../build/bin/conf_gen.h:735 +#: ../build/bin/conf_gen.h:784 msgctxt "preferences" msgid "min" msgstr "mín." -#: ../build/bin/conf_gen.h:736 +#: ../build/bin/conf_gen.h:785 msgctxt "preferences" msgid "max" msgstr "máx." -#: ../build/bin/conf_gen.h:924 +#: ../build/bin/conf_gen.h:973 msgid "select only new pictures" msgstr "seleccionar sólo imágenes nuevas" -#: ../build/bin/conf_gen.h:925 +#: ../build/bin/conf_gen.h:974 msgid "only select images that have not already been imported" msgstr "Sólo se seleccionan las imágenes que aún no han sido importadas" -#: ../build/bin/conf_gen.h:930 -msgid "ignore JPEG images" -msgstr "ignorar imágenes JPEG" +#: ../build/bin/conf_gen.h:979 +msgid "ignore non-raw images" +msgstr "únicamente imágenes en bruto" -#: ../build/bin/conf_gen.h:931 +#: ../build/bin/conf_gen.h:980 msgid "" -"when having raw+JPEG images together in one directory it makes no sense to " -"import both. with this flag one can ignore all JPEGs found." +"if enabled, only raw files will be allowed to import. non-raw files will not " +"be visible in the dialog and will not be imported." msgstr "" -"Cuando se tienen imágenes RAW+JPEG juntas en un directorio no tiene sentido " -"importar ambas. Con esta marca se pueden ignorar todos los JPEG encontrados." +"Si se habilita, se mostrarán sólo las imágenes en bruto. Cualquier otro " +"formato de imagen se ocultará para omitir su importación." -#: ../build/bin/conf_gen.h:936 +#: ../build/bin/conf_gen.h:985 msgid "apply metadata" msgstr "establecer metadatos" -#: ../build/bin/conf_gen.h:937 +#: ../build/bin/conf_gen.h:986 msgid "apply some metadata to all newly imported images." msgstr "Establecer ciertos metadatos a todas las imágenes importadas." -#: ../build/bin/conf_gen.h:942 +#: ../build/bin/conf_gen.h:991 msgid "recursive directory" msgstr "recursivo" -#: ../build/bin/conf_gen.h:943 +#: ../build/bin/conf_gen.h:992 msgid "recursive directory traversal when importing filmrolls" msgstr "Hacer un recorrido recursivo de los directorios al importar carretes" -#: ../build/bin/conf_gen.h:948 +#: ../build/bin/conf_gen.h:997 msgid "creator to be applied when importing" msgstr "Establecer autor al importar" -#: ../build/bin/conf_gen.h:954 +#: ../build/bin/conf_gen.h:1003 msgid "publisher to be applied when importing" msgstr "Establecer editor al importar" -#: ../build/bin/conf_gen.h:960 +#: ../build/bin/conf_gen.h:1009 msgid "rights to be applied when importing" msgstr "Establecer derechos al importar" -#: ../build/bin/conf_gen.h:966 +#: ../build/bin/conf_gen.h:1015 msgid "comma separated tags to be applied when importing" msgstr "Establecer etiquetas separadas por comas al importar" -#: ../build/bin/conf_gen.h:972 +#: ../build/bin/conf_gen.h:1021 msgid "import tags from XMP" msgstr "importar etiquetas desde el XMP" -#: ../build/bin/conf_gen.h:998 +#: ../build/bin/conf_gen.h:1051 msgid "initial rating" msgstr "puntuación inicial" -#: ../build/bin/conf_gen.h:999 +#: ../build/bin/conf_gen.h:1052 msgid "initial star rating for all images when importing a filmroll" msgstr "Puntuación inicial para todas las imágenes al importar carretes" -#: ../build/bin/conf_gen.h:1004 +#: ../build/bin/conf_gen.h:1057 msgid "ignore EXIF rating" msgstr "ignorar la puntuación Exif" -#: ../build/bin/conf_gen.h:1005 +#: ../build/bin/conf_gen.h:1058 msgid "" "ignore EXIF rating. if not set and EXIF rating is found, it overrides " "'initial rating'" @@ -285,19 +250,19 @@ "Si existe una puntuación en los datos Exif y la casilla está desmarcada, se " "anulará el valor indicado en «Puntuación inicial»" -#: ../build/bin/conf_gen.h:1010 +#: ../build/bin/conf_gen.h:1063 msgid "import job" msgstr "importar código de trabajo" -#: ../build/bin/conf_gen.h:1011 +#: ../build/bin/conf_gen.h:1064 msgid "name of the import job" msgstr "Nombre del código de trabajo" -#: ../build/bin/conf_gen.h:1016 +#: ../build/bin/conf_gen.h:1069 msgid "override today's date" msgstr "Anular la fecha de hoy" -#: ../build/bin/conf_gen.h:1017 +#: ../build/bin/conf_gen.h:1070 msgid "" "type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override " "the current date/time used when expanding variables:\n" @@ -309,163 +274,160 @@ "$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS) $(MSEC).\n" "En caso contrario, dejar el campo vacío." -#: ../build/bin/conf_gen.h:1022 +#: ../build/bin/conf_gen.h:1075 msgid "keep this window open" msgstr "Mantener esta ventana abierta" -#: ../build/bin/conf_gen.h:1023 +#: ../build/bin/conf_gen.h:1076 msgid "keep this window open to run several imports" msgstr "Mantenga esta ventana abierta para realizar varias importaciones" -#: ../build/bin/conf_gen.h:1180 ../build/bin/conf_gen.h:1196 -#: ../build/bin/preferences_gen.h:4107 ../build/bin/preferences_gen.h:4202 +#: ../build/bin/conf_gen.h:1233 ../build/bin/conf_gen.h:1249 +#: ../build/bin/conf_gen.h:1277 msgctxt "preferences" msgid "VGA" msgstr "VGA" -#: ../build/bin/conf_gen.h:1181 ../build/bin/conf_gen.h:1197 -#: ../build/bin/preferences_gen.h:4112 ../build/bin/preferences_gen.h:4207 -#: ../build/bin/preferences_gen.h:4251 +#: ../build/bin/conf_gen.h:1234 ../build/bin/conf_gen.h:1250 +#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4783 msgctxt "preferences" msgid "720p" msgstr "720p" -#: ../build/bin/conf_gen.h:1182 ../build/bin/conf_gen.h:1198 -#: ../build/bin/preferences_gen.h:4117 ../build/bin/preferences_gen.h:4212 +#: ../build/bin/conf_gen.h:1235 ../build/bin/conf_gen.h:1251 +#: ../build/bin/conf_gen.h:1279 msgctxt "preferences" msgid "1080p" msgstr "1080p" -#: ../build/bin/conf_gen.h:1183 ../build/bin/conf_gen.h:1199 -#: ../build/bin/preferences_gen.h:4122 ../build/bin/preferences_gen.h:4217 +#: ../build/bin/conf_gen.h:1236 ../build/bin/conf_gen.h:1252 +#: ../build/bin/conf_gen.h:1280 msgctxt "preferences" msgid "WQXGA" msgstr "WQXGA" -#: ../build/bin/conf_gen.h:1184 ../build/bin/conf_gen.h:1200 -#: ../build/bin/preferences_gen.h:4127 ../build/bin/preferences_gen.h:4222 +#: ../build/bin/conf_gen.h:1237 ../build/bin/conf_gen.h:1253 +#: ../build/bin/conf_gen.h:1281 msgctxt "preferences" msgid "4K" msgstr "4K" -#: ../build/bin/conf_gen.h:1185 ../build/bin/conf_gen.h:1201 -#: ../build/bin/preferences_gen.h:4132 ../build/bin/preferences_gen.h:4227 +#: ../build/bin/conf_gen.h:1238 ../build/bin/conf_gen.h:1254 +#: ../build/bin/conf_gen.h:1282 msgctxt "preferences" msgid "5K" msgstr "5K" -#: ../build/bin/conf_gen.h:1228 +#: ../build/bin/conf_gen.h:1314 msgctxt "preferences" msgid "off" msgstr "Apagado" -#: ../build/bin/conf_gen.h:1229 +#: ../build/bin/conf_gen.h:1315 msgctxt "preferences" msgid "hardness (relative)" msgstr "Dureza (relativa)" -#: ../build/bin/conf_gen.h:1230 +#: ../build/bin/conf_gen.h:1316 msgctxt "preferences" msgid "hardness (absolute)" msgstr "Dureza (absoluta)" -#: ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1317 msgctxt "preferences" msgid "opacity (relative)" msgstr "Opacidad (relativa)" -#: ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1318 msgctxt "preferences" msgid "opacity (absolute)" msgstr "Opacidad (absoluta)" -#: ../build/bin/conf_gen.h:1233 +#: ../build/bin/conf_gen.h:1319 msgctxt "preferences" msgid "brush size (relative)" msgstr "Tamaño del pincel (relativo)" -#: ../build/bin/conf_gen.h:1241 +#: ../build/bin/conf_gen.h:1327 msgctxt "preferences" msgid "low" msgstr "Bajo" -#: ../build/bin/conf_gen.h:1242 +#: ../build/bin/conf_gen.h:1328 msgctxt "preferences" msgid "medium" msgstr "Medio" -#: ../build/bin/conf_gen.h:1243 +#: ../build/bin/conf_gen.h:1329 msgctxt "preferences" msgid "high" msgstr "Alto" -#: ../build/bin/conf_gen.h:1263 ../build/bin/preferences_gen.h:4836 -#: ../build/bin/preferences_gen.h:4860 +#: ../build/bin/conf_gen.h:1349 ../build/bin/preferences_gen.h:5406 msgctxt "preferences" msgid "false color" msgstr "Color falso" -#: ../build/bin/conf_gen.h:1264 ../build/bin/preferences_gen.h:4841 +#: ../build/bin/conf_gen.h:1350 msgctxt "preferences" msgid "grayscale" msgstr "escala de grises" -#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4567 +#: ../build/bin/conf_gen.h:1364 msgctxt "preferences" msgid "top left" msgstr "Parte superior izquierda" -#: ../build/bin/conf_gen.h:1279 ../build/bin/preferences_gen.h:4572 +#: ../build/bin/conf_gen.h:1365 msgctxt "preferences" msgid "top right" msgstr "Parte superior derecha" -#: ../build/bin/conf_gen.h:1280 ../build/bin/preferences_gen.h:4577 +#: ../build/bin/conf_gen.h:1366 msgctxt "preferences" msgid "top center" msgstr "Parte superior central" -#: ../build/bin/conf_gen.h:1281 ../build/bin/preferences_gen.h:4582 -#: ../build/bin/preferences_gen.h:4606 +#: ../build/bin/conf_gen.h:1367 ../build/bin/preferences_gen.h:5218 msgctxt "preferences" msgid "bottom" msgstr "Parte inferior" -#: ../build/bin/conf_gen.h:1282 ../build/bin/preferences_gen.h:4587 +#: ../build/bin/conf_gen.h:1368 msgctxt "preferences" msgid "hidden" msgstr "Oculto" -#: ../build/bin/conf_gen.h:1792 +#: ../build/bin/conf_gen.h:1878 msgid "show OSD" msgstr "mostrar OSD" -#: ../build/bin/conf_gen.h:1793 +#: ../build/bin/conf_gen.h:1879 msgid "toggle the visibility of the map overlays" msgstr "Cambiar la visibilidad del mapa superpuesto" -#: ../build/bin/conf_gen.h:1798 ../src/libs/map_settings.c:146 +#: ../build/bin/conf_gen.h:1884 ../src/libs/map_settings.c:119 msgid "filtered images" msgstr "imágenes filtradas" -#: ../build/bin/conf_gen.h:1799 +#: ../build/bin/conf_gen.h:1885 msgid "when set limit the images drawn to the current filmstrip" msgstr "" "Cuando está activada, limita las imágenes mostradas en la tira de imágenes" -#: ../build/bin/conf_gen.h:1806 +#: ../build/bin/conf_gen.h:1892 msgid "max images" msgstr "límite máximo" -#: ../build/bin/conf_gen.h:1807 +#: ../build/bin/conf_gen.h:1893 msgid "the maximum number of image thumbnails drawn on the map" msgstr "Cantidad máxima de miniaturas mostradas en el mapa" -#: ../build/bin/conf_gen.h:1814 +#: ../build/bin/conf_gen.h:1900 msgid "group size factor" msgstr "factor del tamaño de grupo" -#: ../build/bin/conf_gen.h:1815 +#: ../build/bin/conf_gen.h:1901 msgid "" "increase or decrease the spatial size of images groups on the map. can " "influence the calculation time" @@ -473,11 +435,11 @@ "Aumentar o disminuir el tamaño espacial de los grupos de imágenes en el " "mapa. El valor podría afectar el tiempo de cálculo." -#: ../build/bin/conf_gen.h:1822 +#: ../build/bin/conf_gen.h:1908 msgid "min images per group" msgstr "cantidad mínima por grupo" -#: ../build/bin/conf_gen.h:1823 +#: ../build/bin/conf_gen.h:1909 msgid "" "the minimum number of images to set up an images group. can influence the " "calculation time." @@ -485,21 +447,21 @@ "La cantidad mínima de imágenes que conformarán un grupo. Repercute en la " "velocidad de cálculo." -#: ../build/bin/conf_gen.h:1828 +#: ../build/bin/conf_gen.h:1914 msgctxt "preferences" msgid "thumbnail" msgstr "Miniatura" -#: ../build/bin/conf_gen.h:1829 +#: ../build/bin/conf_gen.h:1915 msgctxt "preferences" msgid "count" msgstr "Contador" -#: ../build/bin/conf_gen.h:1832 ../src/libs/map_settings.c:159 +#: ../build/bin/conf_gen.h:1918 msgid "thumbnail display" msgstr "visualización de miniaturas" -#: ../build/bin/conf_gen.h:1833 +#: ../build/bin/conf_gen.h:1919 msgid "" "three options are available: images thumbnails, only the count of images of " "the group or nothing" @@ -507,268 +469,259 @@ "Existen tres opciones disponibles: miniaturas, sólo el recuento de imágenes " "del grupo o ninguno" -#: ../build/bin/conf_gen.h:1844 +#: ../build/bin/conf_gen.h:1930 msgid "max polygon points" msgstr "máximo de puntos de polígono" -#: ../build/bin/conf_gen.h:1845 +#: ../build/bin/conf_gen.h:1931 msgid "" "limit the number of points imported with polygon in find location module" msgstr "" "Limita el número de puntos del polígono importado en el módulo de «buscar " "ubicación»" -#: ../build/bin/conf_gen.h:2135 ../build/bin/preferences_gen.h:4722 -#: ../build/bin/preferences_gen.h:4756 +#: ../build/bin/conf_gen.h:2221 ../build/bin/preferences_gen.h:5330 msgctxt "preferences" msgid "original" msgstr "Original" -#: ../build/bin/conf_gen.h:2136 ../build/bin/preferences_gen.h:4727 +#: ../build/bin/conf_gen.h:2222 msgctxt "preferences" msgid "to 1/2" msgstr "Reducir a 1/2" -#: ../build/bin/conf_gen.h:2137 ../build/bin/preferences_gen.h:4732 +#: ../build/bin/conf_gen.h:2223 msgctxt "preferences" msgid "to 1/3" msgstr "Reducir a 1/3" -#: ../build/bin/conf_gen.h:2138 ../build/bin/preferences_gen.h:4737 +#: ../build/bin/conf_gen.h:2224 msgctxt "preferences" msgid "to 1/4" msgstr "Reducir a 1/4" -#: ../build/bin/conf_gen.h:2152 ../build/bin/conf_gen.h:2162 -#: ../build/bin/preferences_gen.h:5384 ../build/bin/preferences_gen.h:5449 +#: ../build/bin/conf_gen.h:2244 ../build/bin/conf_gen.h:2254 msgctxt "preferences" msgid "bilinear" msgstr "Bilineal" -#: ../build/bin/conf_gen.h:2153 ../build/bin/conf_gen.h:2163 -#: ../build/bin/preferences_gen.h:5389 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5454 +#: ../build/bin/conf_gen.h:2245 ../build/bin/conf_gen.h:2255 +#: ../build/bin/preferences_gen.h:5848 msgctxt "preferences" msgid "bicubic" msgstr "Bicúbico" -#: ../build/bin/conf_gen.h:2154 ../build/bin/conf_gen.h:2164 -#: ../build/bin/preferences_gen.h:5394 ../build/bin/preferences_gen.h:5459 +#: ../build/bin/conf_gen.h:2246 ../build/bin/conf_gen.h:2256 msgctxt "preferences" msgid "lanczos2" msgstr "Lanczos2" -#: ../build/bin/conf_gen.h:2165 ../build/bin/preferences_gen.h:5464 -#: ../build/bin/preferences_gen.h:5483 +#: ../build/bin/conf_gen.h:2257 ../build/bin/preferences_gen.h:5883 msgctxt "preferences" msgid "lanczos3" msgstr "Lanczos3" -#: ../build/bin/conf_gen.h:2487 ../build/bin/conf_gen.h:3217 -#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:6556 -#: ../build/bin/preferences_gen.h:6592 +#: ../build/bin/conf_gen.h:2577 ../build/bin/conf_gen.h:3303 +#: ../build/bin/preferences_gen.h:7033 msgctxt "preferences" msgid "auto" msgstr "Automático" -#: ../build/bin/conf_gen.h:2489 ../build/bin/preferences_gen.h:6566 +#: ../build/bin/conf_gen.h:2579 msgctxt "preferences" msgid "libsecret" msgstr "Libsecret" -#: ../build/bin/conf_gen.h:2490 ../build/bin/preferences_gen.h:6572 +#: ../build/bin/conf_gen.h:2580 msgctxt "preferences" msgid "kwallet" msgstr "Kwallet" -#: ../build/bin/conf_gen.h:2700 +#: ../build/bin/conf_gen.h:2790 msgctxt "preferences" msgid "vectorscope" msgstr "vectorscopio" -#: ../build/bin/conf_gen.h:2701 +#: ../build/bin/conf_gen.h:2791 msgctxt "preferences" msgid "waveform" msgstr "Oscilograma" -#: ../build/bin/conf_gen.h:2702 +#: ../build/bin/conf_gen.h:2792 msgctxt "preferences" msgid "RGB parade" msgstr "Canales paralelos RGB" -#: ../build/bin/conf_gen.h:2703 +#: ../build/bin/conf_gen.h:2793 msgctxt "preferences" msgid "histogram" msgstr "Histograma" -#: ../build/bin/conf_gen.h:2711 ../build/bin/preferences_gen.h:7264 +#: ../build/bin/conf_gen.h:2801 msgctxt "preferences" msgid "left" msgstr "izquierdo" -#: ../build/bin/conf_gen.h:2712 ../build/bin/preferences_gen.h:7269 -#: ../build/bin/preferences_gen.h:7288 +#: ../build/bin/conf_gen.h:2802 ../build/bin/preferences_gen.h:7620 msgctxt "preferences" msgid "right" msgstr "derecho" -#: ../build/bin/conf_gen.h:2720 ../build/bin/conf_gen.h:2757 +#: ../build/bin/conf_gen.h:2810 ../build/bin/conf_gen.h:2847 msgctxt "preferences" msgid "logarithmic" msgstr "Logarítmico" -#: ../build/bin/conf_gen.h:2721 ../build/bin/conf_gen.h:2758 +#: ../build/bin/conf_gen.h:2811 ../build/bin/conf_gen.h:2848 msgctxt "preferences" msgid "linear" msgstr "Lineal" -#: ../build/bin/conf_gen.h:2729 +#: ../build/bin/conf_gen.h:2819 msgctxt "preferences" msgid "horizontal" msgstr "horizontal" -#: ../build/bin/conf_gen.h:2730 +#: ../build/bin/conf_gen.h:2820 msgctxt "preferences" msgid "vertical" msgstr "vertical" -#: ../build/bin/conf_gen.h:2738 +#: ../build/bin/conf_gen.h:2828 msgctxt "preferences" msgid "overlaid" msgstr "Superpuesto" -#: ../build/bin/conf_gen.h:2739 +#: ../build/bin/conf_gen.h:2829 msgctxt "preferences" msgid "parade" msgstr "Canales paralelos" -#: ../build/bin/conf_gen.h:2747 +#: ../build/bin/conf_gen.h:2837 msgctxt "preferences" msgid "u*v*" msgstr "u*v*" -#: ../build/bin/conf_gen.h:2748 +#: ../build/bin/conf_gen.h:2838 msgctxt "preferences" msgid "AzBz" msgstr "AzBz" -#: ../build/bin/conf_gen.h:2749 +#: ../build/bin/conf_gen.h:2839 msgctxt "preferences" msgid "RYB" msgstr "RYB" -#: ../build/bin/conf_gen.h:2791 +#: ../build/bin/conf_gen.h:2881 msgctxt "preferences" msgid "monochromatic" msgstr "monocromático" -#: ../build/bin/conf_gen.h:2792 +#: ../build/bin/conf_gen.h:2882 msgctxt "preferences" msgid "analogous" msgstr "análogo" -#: ../build/bin/conf_gen.h:2793 +#: ../build/bin/conf_gen.h:2883 msgctxt "preferences" msgid "analogous complementary" msgstr "complementario análogo" -#: ../build/bin/conf_gen.h:2794 +#: ../build/bin/conf_gen.h:2884 msgctxt "preferences" msgid "complementary" msgstr "complementario" -#: ../build/bin/conf_gen.h:2795 +#: ../build/bin/conf_gen.h:2885 msgctxt "preferences" msgid "split complementary" msgstr "complementario adyacente" -#: ../build/bin/conf_gen.h:2796 +#: ../build/bin/conf_gen.h:2886 msgctxt "preferences" msgid "dyad" msgstr "diada" -#: ../build/bin/conf_gen.h:2797 +#: ../build/bin/conf_gen.h:2887 msgctxt "preferences" msgid "triad" msgstr "triada" -#: ../build/bin/conf_gen.h:2798 +#: ../build/bin/conf_gen.h:2888 msgctxt "preferences" msgid "tetrad" msgstr "tétrada" -#: ../build/bin/conf_gen.h:2799 +#: ../build/bin/conf_gen.h:2889 msgctxt "preferences" msgid "square" msgstr "cuadrado" -#: ../build/bin/conf_gen.h:2813 +#: ../build/bin/conf_gen.h:2903 msgctxt "preferences" msgid "normal" msgstr "normal" -#: ../build/bin/conf_gen.h:2815 +#: ../build/bin/conf_gen.h:2905 msgctxt "preferences" msgid "narrow" msgstr "Estrecho" -#: ../build/bin/conf_gen.h:2816 +#: ../build/bin/conf_gen.h:2906 msgctxt "preferences" msgid "line" msgstr "lineal" -#: ../build/bin/conf_gen.h:2956 +#: ../build/bin/conf_gen.h:3046 msgctxt "preferences" msgid "mm" msgstr "mm" -#: ../build/bin/conf_gen.h:2957 +#: ../build/bin/conf_gen.h:3047 msgctxt "preferences" msgid "cm" msgstr "cm" -#: ../build/bin/conf_gen.h:2958 +#: ../build/bin/conf_gen.h:3048 msgctxt "preferences" msgid "inch" msgstr "pulgada" -#: ../build/bin/conf_gen.h:3003 ../build/bin/preferences_gen.h:7324 -#: ../build/bin/preferences_gen.h:7353 +#: ../build/bin/conf_gen.h:3093 ../build/bin/preferences_gen.h:7655 msgctxt "preferences" msgid "all" msgstr "Todas" -#: ../build/bin/conf_gen.h:3004 ../build/bin/preferences_gen.h:7329 +#: ../build/bin/conf_gen.h:3094 msgctxt "preferences" msgid "xatom" msgstr "XAtom" -#: ../build/bin/conf_gen.h:3005 ../build/bin/preferences_gen.h:7334 +#: ../build/bin/conf_gen.h:3095 msgctxt "preferences" msgid "colord" msgstr "colord" -#: ../build/bin/conf_gen.h:3041 ../build/bin/preferences_gen.h:5562 -#: ../build/bin/preferences_gen.h:5596 +#: ../build/bin/conf_gen.h:3133 ../build/bin/preferences_gen.h:5959 msgctxt "preferences" msgid "scene-referred (filmic)" msgstr "Basado en la escena (película rgb)" -#: ../build/bin/conf_gen.h:3042 ../build/bin/preferences_gen.h:5567 +#: ../build/bin/conf_gen.h:3134 msgctxt "preferences" msgid "scene-referred (sigmoid)" msgstr "Basado en la escena (sigmoidal)" -#: ../build/bin/conf_gen.h:3043 ../build/bin/preferences_gen.h:5572 +#: ../build/bin/conf_gen.h:3135 msgctxt "preferences" msgid "display-referred (legacy)" msgstr "Basado en la pantalla (heredado)" -#: ../build/bin/conf_gen.h:3144 +#: ../build/bin/conf_gen.h:3230 msgid "camera time zone" msgstr "zona horaria en la cámara" -#: ../build/bin/conf_gen.h:3145 +#: ../build/bin/conf_gen.h:3231 msgid "" "most cameras don't store the time zone in EXIF. give the correct time zone " "so the GPX data can be correctly matched" @@ -776,214 +729,275 @@ "La mayoría de las cámaras no almacenan la zona horaria en los datos Exif. " "Indique la zona horaria correcta para que coincida con los datos GPX." -#: ../build/bin/conf_gen.h:3156 +#: ../build/bin/conf_gen.h:3242 msgctxt "preferences" msgid "no color" msgstr "Sin color" -#: ../build/bin/conf_gen.h:3157 +#: ../build/bin/conf_gen.h:3243 msgctxt "preferences" msgid "illuminant color" msgstr "Color del iluminante" -#: ../build/bin/conf_gen.h:3158 +#: ../build/bin/conf_gen.h:3244 msgctxt "preferences" msgid "effect emulation" msgstr "Emulación de efecto" -#: ../build/bin/conf_gen.h:3204 +#: ../build/bin/conf_gen.h:3290 msgctxt "preferences" msgid "list" msgstr "Lista" -#: ../build/bin/conf_gen.h:3205 +#: ../build/bin/conf_gen.h:3291 msgctxt "preferences" msgid "tabs" msgstr "Pestañas" -#: ../build/bin/conf_gen.h:3206 +#: ../build/bin/conf_gen.h:3292 msgctxt "preferences" msgid "columns" msgstr "Columnas" -#: ../build/bin/conf_gen.h:3215 ../build/bin/preferences_gen.h:5117 +#: ../build/bin/conf_gen.h:3301 msgctxt "preferences" msgid "active" msgstr "Dinámico" -#: ../build/bin/conf_gen.h:3216 ../build/bin/preferences_gen.h:5122 +#: ../build/bin/conf_gen.h:3302 msgctxt "preferences" msgid "dim" msgstr "Atenuado" -#: ../build/bin/conf_gen.h:3218 ../build/bin/preferences_gen.h:5132 +#: ../build/bin/conf_gen.h:3304 msgctxt "preferences" msgid "fade" msgstr "Desvanecido" -#: ../build/bin/conf_gen.h:3219 ../build/bin/preferences_gen.h:5137 +#: ../build/bin/conf_gen.h:3305 msgctxt "preferences" msgid "fit" msgstr "Ajustado" -#: ../build/bin/conf_gen.h:3220 ../build/bin/preferences_gen.h:5142 +#: ../build/bin/conf_gen.h:3306 msgctxt "preferences" msgid "smooth" msgstr "Fluido" -#: ../build/bin/conf_gen.h:3221 ../build/bin/preferences_gen.h:5147 +#: ../build/bin/conf_gen.h:3307 msgctxt "preferences" msgid "glide" msgstr "Adaptado" -#: ../build/bin/preferences_gen.h:81 ../build/bin/preferences_gen.h:3823 -#: ../build/bin/preferences_gen.h:3859 ../build/bin/preferences_gen.h:3895 -#: ../build/bin/preferences_gen.h:3931 ../build/bin/preferences_gen.h:3967 -#: ../build/bin/preferences_gen.h:4003 ../build/bin/preferences_gen.h:4039 -#: ../build/bin/preferences_gen.h:4083 ../build/bin/preferences_gen.h:4178 -#: ../build/bin/preferences_gen.h:4273 ../build/bin/preferences_gen.h:4313 -#: ../build/bin/preferences_gen.h:4356 ../build/bin/preferences_gen.h:4437 -#: ../build/bin/preferences_gen.h:4473 ../build/bin/preferences_gen.h:4510 -#: ../build/bin/preferences_gen.h:4553 ../build/bin/preferences_gen.h:4627 -#: ../build/bin/preferences_gen.h:4672 ../build/bin/preferences_gen.h:4708 -#: ../build/bin/preferences_gen.h:4778 ../build/bin/preferences_gen.h:4822 -#: ../build/bin/preferences_gen.h:4882 ../build/bin/preferences_gen.h:4918 -#: ../build/bin/preferences_gen.h:4954 ../build/bin/preferences_gen.h:4990 -#: ../build/bin/preferences_gen.h:5026 ../build/bin/preferences_gen.h:5062 -#: ../build/bin/preferences_gen.h:5098 ../build/bin/preferences_gen.h:5188 -#: ../build/bin/preferences_gen.h:5224 ../build/bin/preferences_gen.h:5260 -#: ../build/bin/preferences_gen.h:5334 ../build/bin/preferences_gen.h:5370 -#: ../build/bin/preferences_gen.h:5435 ../build/bin/preferences_gen.h:5505 -#: ../build/bin/preferences_gen.h:5548 ../build/bin/preferences_gen.h:5618 -#: ../build/bin/preferences_gen.h:5654 ../build/bin/preferences_gen.h:5690 -#: ../build/bin/preferences_gen.h:5734 ../build/bin/preferences_gen.h:5805 -#: ../build/bin/preferences_gen.h:5841 ../build/bin/preferences_gen.h:5877 -#: ../build/bin/preferences_gen.h:5913 ../build/bin/preferences_gen.h:5955 -#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6140 -#: ../build/bin/preferences_gen.h:6176 ../build/bin/preferences_gen.h:6212 -#: ../build/bin/preferences_gen.h:6248 ../build/bin/preferences_gen.h:6284 -#: ../build/bin/preferences_gen.h:6320 ../build/bin/preferences_gen.h:6356 -#: ../build/bin/preferences_gen.h:6392 ../build/bin/preferences_gen.h:6427 -#: ../build/bin/preferences_gen.h:6462 ../build/bin/preferences_gen.h:6498 -#: ../build/bin/preferences_gen.h:6542 ../build/bin/preferences_gen.h:6614 -#: ../build/bin/preferences_gen.h:6692 ../build/bin/preferences_gen.h:6767 -#: ../build/bin/preferences_gen.h:6820 ../build/bin/preferences_gen.h:6885 -#: ../build/bin/preferences_gen.h:6950 ../build/bin/preferences_gen.h:7024 -#: ../build/bin/preferences_gen.h:7060 ../build/bin/preferences_gen.h:7096 -#: ../build/bin/preferences_gen.h:7132 ../build/bin/preferences_gen.h:7168 -#: ../build/bin/preferences_gen.h:7204 ../build/bin/preferences_gen.h:7250 -#: ../build/bin/preferences_gen.h:7310 ../build/bin/preferences_gen.h:7375 -#: ../build/bin/preferences_gen.h:7429 ../build/bin/preferences_gen.h:7474 -#: ../build/bin/preferences_gen.h:7510 ../build/bin/preferences_gen.h:7546 -#: ../build/bin/preferences_gen.h:7582 ../build/bin/preferences_gen.h:7618 -#: ../build/bin/preferences_gen.h:7678 ../build/bin/preferences_gen.h:7722 -#: ../build/bin/preferences_gen.h:7766 ../build/bin/preferences_gen.h:7848 -#: ../build/bin/preferences_gen.h:7888 ../build/bin/preferences_gen.h:7928 -#: ../build/bin/preferences_gen.h:7964 ../build/bin/preferences_gen.h:8019 -#: ../build/bin/preferences_gen.h:8055 ../build/bin/preferences_gen.h:8115 -#: ../build/bin/preferences_gen.h:8161 ../build/bin/preferences_gen.h:8197 -#: ../build/bin/preferences_gen.h:8243 ../build/bin/preferences_gen.h:8303 -#: ../build/bin/preferences_gen.h:8355 ../build/bin/preferences_gen.h:8401 -#: ../build/bin/preferences_gen.h:8469 ../build/bin/preferences_gen.h:8516 +#: ../build/bin/preferences_gen.h:77 ../build/bin/preferences_gen.h:4306 +#: ../build/bin/preferences_gen.h:4345 ../build/bin/preferences_gen.h:4384 +#: ../build/bin/preferences_gen.h:4418 ../build/bin/preferences_gen.h:4489 +#: ../build/bin/preferences_gen.h:4523 ../build/bin/preferences_gen.h:4557 +#: ../build/bin/preferences_gen.h:4591 ../build/bin/preferences_gen.h:4625 +#: ../build/bin/preferences_gen.h:4659 ../build/bin/preferences_gen.h:4693 +#: ../build/bin/preferences_gen.h:4734 ../build/bin/preferences_gen.h:4769 +#: ../build/bin/preferences_gen.h:4804 ../build/bin/preferences_gen.h:4838 +#: ../build/bin/preferences_gen.h:4872 ../build/bin/preferences_gen.h:4907 +#: ../build/bin/preferences_gen.h:4941 ../build/bin/preferences_gen.h:4980 +#: ../build/bin/preferences_gen.h:5021 ../build/bin/preferences_gen.h:5094 +#: ../build/bin/preferences_gen.h:5128 ../build/bin/preferences_gen.h:5163 +#: ../build/bin/preferences_gen.h:5204 ../build/bin/preferences_gen.h:5238 +#: ../build/bin/preferences_gen.h:5282 ../build/bin/preferences_gen.h:5316 +#: ../build/bin/preferences_gen.h:5351 ../build/bin/preferences_gen.h:5392 +#: ../build/bin/preferences_gen.h:5427 ../build/bin/preferences_gen.h:5461 +#: ../build/bin/preferences_gen.h:5495 ../build/bin/preferences_gen.h:5529 +#: ../build/bin/preferences_gen.h:5563 ../build/bin/preferences_gen.h:5597 +#: ../build/bin/preferences_gen.h:5631 ../build/bin/preferences_gen.h:5666 +#: ../build/bin/preferences_gen.h:5700 ../build/bin/preferences_gen.h:5734 +#: ../build/bin/preferences_gen.h:5800 ../build/bin/preferences_gen.h:5834 +#: ../build/bin/preferences_gen.h:5869 ../build/bin/preferences_gen.h:5904 +#: ../build/bin/preferences_gen.h:5945 ../build/bin/preferences_gen.h:5980 +#: ../build/bin/preferences_gen.h:6014 ../build/bin/preferences_gen.h:6048 +#: ../build/bin/preferences_gen.h:6089 ../build/bin/preferences_gen.h:6125 +#: ../build/bin/preferences_gen.h:6166 ../build/bin/preferences_gen.h:6210 +#: ../build/bin/preferences_gen.h:6255 ../build/bin/preferences_gen.h:6306 +#: ../build/bin/preferences_gen.h:6350 ../build/bin/preferences_gen.h:6394 +#: ../build/bin/preferences_gen.h:6438 ../build/bin/preferences_gen.h:6482 +#: ../build/bin/preferences_gen.h:6526 ../build/bin/preferences_gen.h:6570 +#: ../build/bin/preferences_gen.h:6636 ../build/bin/preferences_gen.h:6670 +#: ../build/bin/preferences_gen.h:6704 ../build/bin/preferences_gen.h:6738 +#: ../build/bin/preferences_gen.h:6772 ../build/bin/preferences_gen.h:6806 +#: ../build/bin/preferences_gen.h:6840 ../build/bin/preferences_gen.h:6874 +#: ../build/bin/preferences_gen.h:6907 ../build/bin/preferences_gen.h:6940 +#: ../build/bin/preferences_gen.h:6974 ../build/bin/preferences_gen.h:7015 +#: ../build/bin/preferences_gen.h:7054 ../build/bin/preferences_gen.h:7125 +#: ../build/bin/preferences_gen.h:7160 ../build/bin/preferences_gen.h:7211 +#: ../build/bin/preferences_gen.h:7246 ../build/bin/preferences_gen.h:7281 +#: ../build/bin/preferences_gen.h:7325 ../build/bin/preferences_gen.h:7391 +#: ../build/bin/preferences_gen.h:7425 ../build/bin/preferences_gen.h:7459 +#: ../build/bin/preferences_gen.h:7493 ../build/bin/preferences_gen.h:7527 +#: ../build/bin/preferences_gen.h:7561 ../build/bin/preferences_gen.h:7606 +#: ../build/bin/preferences_gen.h:7641 ../build/bin/preferences_gen.h:7676 +#: ../build/bin/preferences_gen.h:7732 ../build/bin/preferences_gen.h:7773 +#: ../build/bin/preferences_gen.h:7807 ../build/bin/preferences_gen.h:7841 +#: ../build/bin/preferences_gen.h:7875 ../build/bin/preferences_gen.h:7909 +#: ../build/bin/preferences_gen.h:7944 ../build/bin/preferences_gen.h:7985 +#: ../build/bin/preferences_gen.h:8026 ../build/bin/preferences_gen.h:8086 +#: ../build/bin/preferences_gen.h:8120 ../build/bin/preferences_gen.h:8155 +#: ../build/bin/preferences_gen.h:8200 ../build/bin/preferences_gen.h:8234 +#: ../build/bin/preferences_gen.h:8279 ../build/bin/preferences_gen.h:8314 +#: ../build/bin/preferences_gen.h:8366 ../build/bin/preferences_gen.h:8411 +#: ../build/bin/preferences_gen.h:8481 ../build/bin/preferences_gen.h:8527 msgid "this setting has been modified" msgstr "Este ajuste se ha modificado" #. doesn't seem to work from gtkrc -#: ../build/bin/preferences_gen.h:3793 ../build/bin/preferences_gen.h:4407 -#: ../build/bin/preferences_gen.h:5304 ../build/bin/preferences_gen.h:6110 -#: ../build/bin/preferences_gen.h:6662 ../build/bin/preferences_gen.h:6994 -#: ../build/bin/preferences_gen.h:7818 ../src/gui/accelerators.c:2724 -#: ../src/gui/gtk.c:2580 ../src/gui/preferences.c:421 -#: ../src/gui/preferences.c:876 ../src/libs/modulegroups.c:3886 +#: ../build/bin/preferences_gen.h:4278 ../build/bin/preferences_gen.h:4461 +#: ../build/bin/preferences_gen.h:5066 ../build/bin/preferences_gen.h:5772 +#: ../build/bin/preferences_gen.h:6608 ../build/bin/preferences_gen.h:7097 +#: ../build/bin/preferences_gen.h:7363 ../src/gui/accelerators.c:2996 +#: ../src/gui/gtk.c:2641 ../src/gui/preferences.c:424 +#: ../src/gui/preferences.c:874 ../src/libs/modulegroups.c:3888 msgid "?" msgstr "¿?" -#: ../build/bin/preferences_gen.h:3806 ../build/bin/preferences_gen.h:4420 -#: ../build/bin/preferences_gen.h:6123 ../src/gui/preferences.c:270 -msgid "general" -msgstr "general" +#: ../build/bin/preferences_gen.h:4288 ../src/control/jobs/control_jobs.c:2352 +#: ../src/libs/import.c:173 +msgid "import" +msgstr "importar" -#: ../build/bin/preferences_gen.h:3826 -msgid "hide built-in presets for utility modules" -msgstr "Ocultar los preajustes integrados para los módulos de funcionalidad" +#: ../build/bin/preferences_gen.h:4290 +msgid "session options" +msgstr "opciones de la sesión" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4017 -#: ../build/bin/preferences_gen.h:4053 ../build/bin/preferences_gen.h:4156 -#: ../build/bin/preferences_gen.h:4251 ../build/bin/preferences_gen.h:4291 -#: ../build/bin/preferences_gen.h:4334 ../build/bin/preferences_gen.h:4377 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4531 ../build/bin/preferences_gen.h:4606 -#: ../build/bin/preferences_gen.h:4686 ../build/bin/preferences_gen.h:4756 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4860 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5040 ../build/bin/preferences_gen.h:5076 -#: ../build/bin/preferences_gen.h:5166 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5274 -#: ../build/bin/preferences_gen.h:5348 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5483 ../build/bin/preferences_gen.h:5525 -#: ../build/bin/preferences_gen.h:5596 ../build/bin/preferences_gen.h:5632 -#: ../build/bin/preferences_gen.h:5668 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5782 ../build/bin/preferences_gen.h:5819 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:5927 ../build/bin/preferences_gen.h:5998 -#: ../build/bin/preferences_gen.h:6074 ../build/bin/preferences_gen.h:6154 -#: ../build/bin/preferences_gen.h:6190 ../build/bin/preferences_gen.h:6226 -#: ../build/bin/preferences_gen.h:6262 ../build/bin/preferences_gen.h:6298 -#: ../build/bin/preferences_gen.h:6334 ../build/bin/preferences_gen.h:6370 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:6592 ../build/bin/preferences_gen.h:6632 -#: ../build/bin/preferences_gen.h:6745 ../build/bin/preferences_gen.h:6863 -#: ../build/bin/preferences_gen.h:6928 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7146 -#: ../build/bin/preferences_gen.h:7182 ../build/bin/preferences_gen.h:7288 -#: ../build/bin/preferences_gen.h:7353 ../build/bin/preferences_gen.h:7393 -#: ../build/bin/preferences_gen.h:7443 ../build/bin/preferences_gen.h:7488 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7656 -#: ../build/bin/preferences_gen.h:7692 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:7866 ../build/bin/preferences_gen.h:7906 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:7982 -#: ../build/bin/preferences_gen.h:8033 ../build/bin/preferences_gen.h:8093 -#: ../build/bin/preferences_gen.h:8175 ../build/bin/preferences_gen.h:8281 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4309 +msgid "base directory naming pattern" +msgstr "Directorio base para el patrón de nombres" + +#: ../build/bin/preferences_gen.h:4324 ../build/bin/preferences_gen.h:4363 +#: ../build/bin/preferences_gen.h:4397 ../build/bin/preferences_gen.h:4436 +#: ../build/bin/preferences_gen.h:4502 ../build/bin/preferences_gen.h:4536 +#: ../build/bin/preferences_gen.h:4570 ../build/bin/preferences_gen.h:4604 +#: ../build/bin/preferences_gen.h:4638 ../build/bin/preferences_gen.h:4672 +#: ../build/bin/preferences_gen.h:4706 ../build/bin/preferences_gen.h:4748 +#: ../build/bin/preferences_gen.h:4783 ../build/bin/preferences_gen.h:4817 +#: ../build/bin/preferences_gen.h:4851 ../build/bin/preferences_gen.h:4886 +#: ../build/bin/preferences_gen.h:4920 ../build/bin/preferences_gen.h:4959 +#: ../build/bin/preferences_gen.h:5000 ../build/bin/preferences_gen.h:5041 +#: ../build/bin/preferences_gen.h:5107 ../build/bin/preferences_gen.h:5141 +#: ../build/bin/preferences_gen.h:5183 ../build/bin/preferences_gen.h:5218 +#: ../build/bin/preferences_gen.h:5295 ../build/bin/preferences_gen.h:5330 +#: ../build/bin/preferences_gen.h:5364 ../build/bin/preferences_gen.h:5406 +#: ../build/bin/preferences_gen.h:5440 ../build/bin/preferences_gen.h:5474 +#: ../build/bin/preferences_gen.h:5508 ../build/bin/preferences_gen.h:5542 +#: ../build/bin/preferences_gen.h:5576 ../build/bin/preferences_gen.h:5610 +#: ../build/bin/preferences_gen.h:5645 ../build/bin/preferences_gen.h:5679 +#: ../build/bin/preferences_gen.h:5713 ../build/bin/preferences_gen.h:5747 +#: ../build/bin/preferences_gen.h:5813 ../build/bin/preferences_gen.h:5848 +#: ../build/bin/preferences_gen.h:5883 ../build/bin/preferences_gen.h:5923 +#: ../build/bin/preferences_gen.h:5959 ../build/bin/preferences_gen.h:5993 +#: ../build/bin/preferences_gen.h:6027 ../build/bin/preferences_gen.h:6061 +#: ../build/bin/preferences_gen.h:6103 ../build/bin/preferences_gen.h:6138 +#: ../build/bin/preferences_gen.h:6179 ../build/bin/preferences_gen.h:6224 +#: ../build/bin/preferences_gen.h:6268 ../build/bin/preferences_gen.h:6319 +#: ../build/bin/preferences_gen.h:6363 ../build/bin/preferences_gen.h:6407 +#: ../build/bin/preferences_gen.h:6451 ../build/bin/preferences_gen.h:6495 +#: ../build/bin/preferences_gen.h:6539 ../build/bin/preferences_gen.h:6583 +#: ../build/bin/preferences_gen.h:6649 ../build/bin/preferences_gen.h:6683 +#: ../build/bin/preferences_gen.h:6717 ../build/bin/preferences_gen.h:6751 +#: ../build/bin/preferences_gen.h:6785 ../build/bin/preferences_gen.h:6819 +#: ../build/bin/preferences_gen.h:6853 ../build/bin/preferences_gen.h:6887 +#: ../build/bin/preferences_gen.h:6920 ../build/bin/preferences_gen.h:6953 +#: ../build/bin/preferences_gen.h:6987 ../build/bin/preferences_gen.h:7033 +#: ../build/bin/preferences_gen.h:7072 ../build/bin/preferences_gen.h:7139 +#: ../build/bin/preferences_gen.h:7225 ../build/bin/preferences_gen.h:7260 +#: ../build/bin/preferences_gen.h:7338 ../build/bin/preferences_gen.h:7404 +#: ../build/bin/preferences_gen.h:7438 ../build/bin/preferences_gen.h:7472 +#: ../build/bin/preferences_gen.h:7506 ../build/bin/preferences_gen.h:7540 +#: ../build/bin/preferences_gen.h:7620 ../build/bin/preferences_gen.h:7655 +#: ../build/bin/preferences_gen.h:7694 ../build/bin/preferences_gen.h:7745 +#: ../build/bin/preferences_gen.h:7786 ../build/bin/preferences_gen.h:7820 +#: ../build/bin/preferences_gen.h:7854 ../build/bin/preferences_gen.h:7888 +#: ../build/bin/preferences_gen.h:7923 ../build/bin/preferences_gen.h:7957 +#: ../build/bin/preferences_gen.h:7998 ../build/bin/preferences_gen.h:8099 +#: ../build/bin/preferences_gen.h:8134 ../build/bin/preferences_gen.h:8213 +#: ../build/bin/preferences_gen.h:8293 ../build/bin/preferences_gen.h:8327 +#: ../build/bin/preferences_gen.h:8424 #, c-format msgid "double click to reset to `%s'" msgstr "Doble clic para restablecer a «%s»" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4053 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4686 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:5040 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5348 -#: ../build/bin/preferences_gen.h:5632 ../build/bin/preferences_gen.h:5668 -#: ../build/bin/preferences_gen.h:5819 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:6370 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7146 ../build/bin/preferences_gen.h:7443 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7692 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:8033 -#: ../build/bin/preferences_gen.h:8175 +#: ../build/bin/preferences_gen.h:4327 ../build/bin/preferences_gen.h:4366 +msgid "part of full import path for an import session" +msgstr "" +"Parte de la ruta de importación completa para una sesión de importación" + +#: ../build/bin/preferences_gen.h:4348 +msgid "sub directory naming pattern" +msgstr "Subdirectorio para el patrón de nombres" + +#: ../build/bin/preferences_gen.h:4387 +msgid "keep original filename" +msgstr "Mantener el nombre del archivo original" + +#: ../build/bin/preferences_gen.h:4397 ../build/bin/preferences_gen.h:4502 +#: ../build/bin/preferences_gen.h:4536 ../build/bin/preferences_gen.h:4570 +#: ../build/bin/preferences_gen.h:4604 ../build/bin/preferences_gen.h:4638 +#: ../build/bin/preferences_gen.h:4706 ../build/bin/preferences_gen.h:4851 +#: ../build/bin/preferences_gen.h:4920 ../build/bin/preferences_gen.h:5107 +#: ../build/bin/preferences_gen.h:5295 ../build/bin/preferences_gen.h:5440 +#: ../build/bin/preferences_gen.h:5576 ../build/bin/preferences_gen.h:5713 +#: ../build/bin/preferences_gen.h:5813 ../build/bin/preferences_gen.h:5993 +#: ../build/bin/preferences_gen.h:6027 ../build/bin/preferences_gen.h:6138 +#: ../build/bin/preferences_gen.h:6268 ../build/bin/preferences_gen.h:6451 +#: ../build/bin/preferences_gen.h:6495 ../build/bin/preferences_gen.h:6539 +#: ../build/bin/preferences_gen.h:6583 ../build/bin/preferences_gen.h:6853 +#: ../build/bin/preferences_gen.h:7338 ../build/bin/preferences_gen.h:7506 +#: ../build/bin/preferences_gen.h:7745 ../build/bin/preferences_gen.h:7820 +#: ../build/bin/preferences_gen.h:7854 ../build/bin/preferences_gen.h:7888 +#: ../build/bin/preferences_gen.h:7957 ../build/bin/preferences_gen.h:8099 +#: ../build/bin/preferences_gen.h:8213 msgctxt "preferences" msgid "FALSE" msgstr "FALSO" -#: ../build/bin/preferences_gen.h:3840 +#: ../build/bin/preferences_gen.h:4400 +msgid "" +"keep original filename instead of a pattern while importing from camera or " +"card" +msgstr "" +"Mantener el nombre de archivo original en lugar de un patrón al importar " +"desde la cámara o la tarjeta" + +#: ../build/bin/preferences_gen.h:4421 +msgid "file naming pattern" +msgstr "Patrón para nombrar archivos" + +#: ../build/bin/preferences_gen.h:4439 +msgid "file naming pattern used for a import session" +msgstr "Patrón de nombres utilizado para importar una sesión" + +#: ../build/bin/preferences_gen.h:4471 ../src/gui/gtk.c:1266 +#: ../src/gui/preferences.c:544 ../src/libs/tools/lighttable.c:66 +#: ../src/views/lighttable.c:91 +msgid "lighttable" +msgstr "mesa de luz" + +#: ../build/bin/preferences_gen.h:4473 ../build/bin/preferences_gen.h:5078 +#: ../build/bin/preferences_gen.h:6620 ../src/gui/preferences.c:270 +msgid "general" +msgstr "general" + +#: ../build/bin/preferences_gen.h:4492 +msgid "hide built-in presets for utility modules" +msgstr "Ocultar los preajustes integrados para los módulos de funcionalidad" + +#: ../build/bin/preferences_gen.h:4505 msgid "hides built-in presets of utility modules in presets menu." msgstr "" "Ocultar los preajustes integrados para los módulos de funcionalidad del menú " "de preajustes." -#: ../build/bin/preferences_gen.h:3862 +#: ../build/bin/preferences_gen.h:4526 msgid "use single-click in the collections module" msgstr "Utilizar la pulsación simple en el módulo de colección" -#: ../build/bin/preferences_gen.h:3876 +#: ../build/bin/preferences_gen.h:4539 msgid "" "check this option to use single-click to select items in the collections " "module. this will allow you to do range selections for date-time and numeric " @@ -993,22 +1007,22 @@ "colección. Como consecuencia, puede hacer rangos de selecciones por tiempo y " "con valores numéricos." -#: ../build/bin/preferences_gen.h:3898 +#: ../build/bin/preferences_gen.h:4560 msgid "expand a single utility module at a time" msgstr "Desplegar sólo un módulo a la vez en la mesa de luz" -#: ../build/bin/preferences_gen.h:3912 +#: ../build/bin/preferences_gen.h:4573 msgid "this option toggles the behavior of shift clicking in lighttable mode" msgstr "" "Esta opción alterna el comportamiento del Máyus+Clic en el modo de mesa de " "luz" -#: ../build/bin/preferences_gen.h:3934 +#: ../build/bin/preferences_gen.h:4594 msgid "scroll utility modules to the top when expanded" msgstr "" "Desplazar los módulos de funcionalidad a la parte superior al desplegarlos" -#: ../build/bin/preferences_gen.h:3948 ../build/bin/preferences_gen.h:5079 +#: ../build/bin/preferences_gen.h:4607 ../build/bin/preferences_gen.h:5613 msgid "" "when this option is enabled then darktable will try to scroll the module to " "the top of the visible list" @@ -1016,61 +1030,63 @@ "Cuando esta opción está marcada, darktable intentará desplazar el módulo a " "la parte superior de la lista visible" -#: ../build/bin/preferences_gen.h:3970 +#: ../build/bin/preferences_gen.h:4628 msgid "rating an image one star twice will not zero out the rating" msgstr "Puntuar una imagen dos veces con una estrella no anula el puntaje" -#: ../build/bin/preferences_gen.h:3984 +#: ../build/bin/preferences_gen.h:4641 msgid "" "defines whether rating an image one star twice will zero out star rating" msgstr "" "Determina si al puntuar una imagen dos veces con una estrella se elimina el " "puntaje (0 estrellas)" -#: ../build/bin/preferences_gen.h:4006 ../build/bin/preferences_gen.h:4675 +#: ../build/bin/preferences_gen.h:4662 ../build/bin/preferences_gen.h:5285 msgid "show scrollbars for central view" msgstr "Mostrar barras de desplazamiento para la vista central" -#: ../build/bin/preferences_gen.h:4017 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5076 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5274 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5927 -#: ../build/bin/preferences_gen.h:6154 ../build/bin/preferences_gen.h:6190 -#: ../build/bin/preferences_gen.h:6226 ../build/bin/preferences_gen.h:6262 -#: ../build/bin/preferences_gen.h:6298 ../build/bin/preferences_gen.h:6334 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7182 -#: ../build/bin/preferences_gen.h:7488 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4672 ../build/bin/preferences_gen.h:4817 +#: ../build/bin/preferences_gen.h:5141 ../build/bin/preferences_gen.h:5364 +#: ../build/bin/preferences_gen.h:5474 ../build/bin/preferences_gen.h:5508 +#: ../build/bin/preferences_gen.h:5542 ../build/bin/preferences_gen.h:5610 +#: ../build/bin/preferences_gen.h:5679 ../build/bin/preferences_gen.h:5747 +#: ../build/bin/preferences_gen.h:6061 ../build/bin/preferences_gen.h:6179 +#: ../build/bin/preferences_gen.h:6319 ../build/bin/preferences_gen.h:6363 +#: ../build/bin/preferences_gen.h:6407 ../build/bin/preferences_gen.h:6649 +#: ../build/bin/preferences_gen.h:6683 ../build/bin/preferences_gen.h:6717 +#: ../build/bin/preferences_gen.h:6751 ../build/bin/preferences_gen.h:6785 +#: ../build/bin/preferences_gen.h:6819 ../build/bin/preferences_gen.h:6887 +#: ../build/bin/preferences_gen.h:6920 ../build/bin/preferences_gen.h:6953 +#: ../build/bin/preferences_gen.h:6987 ../build/bin/preferences_gen.h:7404 +#: ../build/bin/preferences_gen.h:7438 ../build/bin/preferences_gen.h:7472 +#: ../build/bin/preferences_gen.h:7540 ../build/bin/preferences_gen.h:7786 +#: ../build/bin/preferences_gen.h:7998 ../build/bin/preferences_gen.h:8327 +#: ../build/bin/preferences_gen.h:8424 msgctxt "preferences" msgid "TRUE" msgstr "VERDADERO" -#: ../build/bin/preferences_gen.h:4020 ../build/bin/preferences_gen.h:4689 +#: ../build/bin/preferences_gen.h:4675 ../build/bin/preferences_gen.h:5298 msgid "defines whether scrollbars should be displayed" msgstr "Se define si las barras de desplazamiento deben ser mostradas" -#: ../build/bin/preferences_gen.h:4042 +#: ../build/bin/preferences_gen.h:4696 msgid "show image time with milliseconds" msgstr "Mostrar la hora con milisegundos" -#: ../build/bin/preferences_gen.h:4056 +#: ../build/bin/preferences_gen.h:4709 msgid "defines whether time should be displayed with milliseconds" msgstr "Determina si la hora se muestra con milisegundos." -#: ../build/bin/preferences_gen.h:4066 +#: ../build/bin/preferences_gen.h:4718 msgid "thumbnails" msgstr "miniaturas" -#: ../build/bin/preferences_gen.h:4086 +#: ../build/bin/preferences_gen.h:4737 msgid "use raw file instead of embedded JPEG from size" msgstr "Emplear el archivo RAW en lugar de la imagen JPEG incrustada" -#: ../build/bin/preferences_gen.h:4159 +#: ../build/bin/preferences_gen.h:4751 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "raw file instead of the embedded preview JPEG (better but slower).\n" @@ -1085,11 +1101,11 @@ "elija la opción *Siempre*\n" "(para más información, consulte el manual)." -#: ../build/bin/preferences_gen.h:4181 +#: ../build/bin/preferences_gen.h:4772 msgid "high quality processing from size" msgstr "Procesamiento de alta calidad a partir de el tamaño" -#: ../build/bin/preferences_gen.h:4254 +#: ../build/bin/preferences_gen.h:4786 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "the full quality rendering path (better but slower).\n" @@ -1104,11 +1120,85 @@ "elija la opción *Siempre*\n" "(para más información, consulte el manual)." -#: ../build/bin/preferences_gen.h:4276 +#: ../build/bin/preferences_gen.h:4807 +msgid "enable disk backend for thumbnail cache" +msgstr "Almacenar en disco una 2ª caché de miniaturas" + +#: ../build/bin/preferences_gen.h:4820 +msgid "" +"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want. light table " +"performance will be increased greatly when browsing a lot.\n" +"to generate all thumbnails of your entire collection offline, run 'darktable-" +"generate-cache'." +msgstr "" +"Si se activa, guarda las miniaturas en disco (.cache/darktable/) cuando se " +"eliminan de la memoria en caché.\n" +"Tome en cuenta que esto puede consumir mucha memoria (varios gigabytes por " +"imágenes de 20k), pero no tendrá que eliminar las miniaturas almacenadas en " +"caché.\n" +"Sin embargo, es seguro eliminarlas manualmente si lo desea. El desempeño de " +"la mesa de luz mejorará en gran medida cuando se navega mucho.\n" +"Para generar todas las miniaturas de su colección fuera de línea, ejecute " +"\"darktable-generate-cache\"." + +#: ../build/bin/preferences_gen.h:4841 +msgid "enable disk backend for full preview cache" +msgstr "Almacenar en disco una caché de las vistas previas completas" + +#: ../build/bin/preferences_gen.h:4854 +msgid "" +"if enabled, write full preview to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want.\n" +"light table performance will be increased greatly when zooming image in full " +"preview mode." +msgstr "" +"Si se habilita, guarda las miniaturas en el disco (.cache/darktable/) cuando " +"se eliminan de la memoria en caché.\n" +"Tome en cuenta que esto puede consumir mucha memoria (varios gigabytes por " +"imágenes de 20k), pero no tendrá que eliminar las miniaturas almacenadas en " +"caché.\n" +"Sin embargo, es seguro eliminarlas manualmente. El rendimiento de la mesa de " +"luz aumentará en gran medida al hacer zoom en la imagen en modo de vista " +"previa completa." + +#: ../build/bin/preferences_gen.h:4875 +msgid "generate thumbnails in background" +msgstr "Generar miniaturas en segundo plano" + +#: ../build/bin/preferences_gen.h:4889 +msgid "" +"if 'enable disk backend for thumbnail cache' is enabled thumbnails/mipmaps " +"up to the selected size are generated while user is inactive in lighttable." +msgstr "" +"Si \"Almacenar en disco una 2ª caché de miniaturas\" está habilitado, se " +"generarán miniaturas / mapas MIP del tamaño seleccionado mientras en la mesa " +"de luz haya inactividad." + +#: ../build/bin/preferences_gen.h:4910 +msgid "reset cached thumbnails" +msgstr "Recomponer miniaturas en caché" + +#: ../build/bin/preferences_gen.h:4923 +msgid "" +"force thumbnails to be regenerated by resetting the database. this may be " +"needed in case some thumbnails have been manually removed or corrupted." +msgstr "" +"Fuerza la regeneración de las miniaturas para restablecer la base de datos. " +"Esto puede ser necesario en caso de que algunas miniaturas se hayan " +"eliminado manualmente o se hayan corrompido." + +#: ../build/bin/preferences_gen.h:4944 msgid "delimiters for size categories" msgstr "Delimitadores de categorías de tamaño" -#: ../build/bin/preferences_gen.h:4294 +#: ../build/bin/preferences_gen.h:4962 msgid "" "size categories are used to be able to set different overlays and CSS values " "depending of the size of the thumbnail, separated by |.\n" @@ -1120,27 +1210,32 @@ "separadas por |. Por ejemplo, 120|400 indican 3 categorías de miniaturas: 0 " "px → 120 px, 120 px → 400 px y mayor a 400 px." -#: ../build/bin/preferences_gen.h:4316 +#: ../build/bin/preferences_gen.h:4983 msgid "pattern for the thumbnail extended overlay text" msgstr "Patrón para el texto superpuesto ampliado de la miniatura" -#: ../build/bin/preferences_gen.h:4337 ../build/bin/preferences_gen.h:4380 +#: ../build/bin/preferences_gen.h:5003 ../build/bin/preferences_gen.h:5044 msgid "see manual to know all the tags you can use." msgstr "" "Consulte el manual para conocer todas las etiquetas que puede utilizar." -#: ../build/bin/preferences_gen.h:4359 +#: ../build/bin/preferences_gen.h:5024 msgid "pattern for the thumbnail tooltip (empty to disable)" msgstr "" "Patrón para el mensaje emergente de la miniatura (dejar vacío para " "desactivar)" -#: ../build/bin/preferences_gen.h:4440 +#: ../build/bin/preferences_gen.h:5076 ../src/gui/gtk.c:1267 +#: ../src/gui/preferences.c:544 ../src/views/darkroom.c:94 +msgid "darkroom" +msgstr "cuarto oscuro" + +#: ../build/bin/preferences_gen.h:5097 msgid "scroll down to increase mask parameters" msgstr "" "Incrementar los parámetros de la máscara con desplazamiento hacia abajo" -#: ../build/bin/preferences_gen.h:4454 +#: ../build/bin/preferences_gen.h:5110 msgid "" "when using the mouse scroll wheel to change mask parameters, scroll down to " "increase the mask size, feather size, opacity, brush hardness and gradient " @@ -1154,11 +1249,11 @@ "De manera predefinida, los parámetros se incrementan con desplazamiento " "hacia arriba." -#: ../build/bin/preferences_gen.h:4476 +#: ../build/bin/preferences_gen.h:5131 msgid "middle mouse button zooms to 200%" msgstr "Ampliar 200% con el botón medio del ratón" -#: ../build/bin/preferences_gen.h:4491 +#: ../build/bin/preferences_gen.h:5145 #, no-c-format msgid "" "if enabled, the zoom level will cycle between 100%, 200% and fit to viewport " @@ -1170,32 +1265,32 @@ "ampliación actual y el 100%. Además, cualquier otro nivel de ampliación se " "podrá realizar con la tecla \"Ctrl\"." -#: ../build/bin/preferences_gen.h:4513 +#: ../build/bin/preferences_gen.h:5166 msgid "pattern for the image information line" msgstr "Disposición de la línea informativa de la imagen" -#: ../build/bin/preferences_gen.h:4534 +#: ../build/bin/preferences_gen.h:5186 msgid "see manual for a list of the tags you can use." msgstr "Consulte en el manual la lista de etiquetas que pueden utilizarse." -#: ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:5207 msgid "position of the image information line" msgstr "Posición de la línea informativa de la imagen" -#: ../build/bin/preferences_gen.h:4630 +#: ../build/bin/preferences_gen.h:5241 msgid "border around image in darkroom mode" msgstr "Ancho del borde alrededor de la imagen en el modo de cuarto oscuro" -#: ../build/bin/preferences_gen.h:4650 ../build/bin/preferences_gen.h:6790 -#: ../build/bin/preferences_gen.h:7228 ../build/bin/preferences_gen.h:7789 -#: ../build/bin/preferences_gen.h:8139 ../build/bin/preferences_gen.h:8221 -#: ../build/bin/preferences_gen.h:8379 ../build/bin/preferences_gen.h:8493 -#: ../build/bin/preferences_gen.h:8540 +#: ../build/bin/preferences_gen.h:5261 ../build/bin/preferences_gen.h:7183 +#: ../build/bin/preferences_gen.h:7304 ../build/bin/preferences_gen.h:7585 +#: ../build/bin/preferences_gen.h:8049 ../build/bin/preferences_gen.h:8179 +#: ../build/bin/preferences_gen.h:8258 ../build/bin/preferences_gen.h:8390 +#: ../build/bin/preferences_gen.h:8505 ../build/bin/preferences_gen.h:8551 #, c-format msgid "double click to reset to `%d'" msgstr "Doble clic para restablecer a «%d»" -#: ../build/bin/preferences_gen.h:4653 +#: ../build/bin/preferences_gen.h:5264 msgid "" "process the image in darkroom mode with a small border. set to 0 if you " "don't want any border." @@ -1203,21 +1298,21 @@ "Procesa la imagen en el modo de cuarto oscuro con un borde mas pequeño. " "Establezca 0 si no quiere ningún borde." -#: ../build/bin/preferences_gen.h:4711 +#: ../build/bin/preferences_gen.h:5319 msgid "reduce resolution of preview image" msgstr "Reducir la resolución de la imagen de previsualización" -#: ../build/bin/preferences_gen.h:4759 +#: ../build/bin/preferences_gen.h:5333 msgid "decrease to speed up preview rendering, may hinder accurate masking" msgstr "" "Con la reducción se acelera el procesado de la previsualización, aunque " "pudiera afectar la precisión de las máscaras" -#: ../build/bin/preferences_gen.h:4781 +#: ../build/bin/preferences_gen.h:5354 msgid "show loading screen between images" msgstr "Mostrar fondo de carga entre imágenes" -#: ../build/bin/preferences_gen.h:4795 +#: ../build/bin/preferences_gen.h:5367 msgid "" "show gray loading screen when navigating between images in the darkroom\n" "disable to just show a toast message" @@ -1226,15 +1321,15 @@ "a otra.\n" "Al desactivar, sólo aparecerá un mensaje de carga." -#: ../build/bin/preferences_gen.h:4805 +#: ../build/bin/preferences_gen.h:5376 msgid "modules" msgstr "módulos" -#: ../build/bin/preferences_gen.h:4825 +#: ../build/bin/preferences_gen.h:5395 msgid "display of individual color channels" msgstr "Mostrar canales individuales de color" -#: ../build/bin/preferences_gen.h:4863 +#: ../build/bin/preferences_gen.h:5409 msgid "" "defines how color channels are displayed when activated in the parametric " "masks feature." @@ -1242,11 +1337,11 @@ "Define cómo se muestran los canales de color al activar el módulo de " "máscaras paramétricas." -#: ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:5430 msgid "hide built-in presets for processing modules" msgstr "Ocultar los preajustes integrados para los módulos de revelado" -#: ../build/bin/preferences_gen.h:4899 +#: ../build/bin/preferences_gen.h:5443 msgid "" "hides built-in presets of processing modules in both presets and favourites " "menu." @@ -1254,26 +1349,26 @@ "Ocultar los preajustes integrados para los módulos de revelado del menú de " "preajustes y de favoritos." -#: ../build/bin/preferences_gen.h:4921 ../build/bin/preferences_gen.h:4935 +#: ../build/bin/preferences_gen.h:5464 ../build/bin/preferences_gen.h:5477 msgid "show the guides widget in modules UI" msgstr "" "Mostrar el componente de control de la retícula en los ajustes del módulo" -#: ../build/bin/preferences_gen.h:4957 +#: ../build/bin/preferences_gen.h:5498 msgid "expand a single processing module at a time" msgstr "Desplegar sólo un módulo de revelado a la vez" -#: ../build/bin/preferences_gen.h:4971 +#: ../build/bin/preferences_gen.h:5511 msgid "this option toggles the behavior of shift clicking in darkroom mode" msgstr "" "Esta opción alterna el funcionamiento de Mayús+Clic en el modo de cuarto " "oscuro" -#: ../build/bin/preferences_gen.h:4993 +#: ../build/bin/preferences_gen.h:5532 msgid "only collapse modules in current group" msgstr "Plegar sólo los módulos del grupo en curso" -#: ../build/bin/preferences_gen.h:5007 +#: ../build/bin/preferences_gen.h:5545 msgid "" "if only expanding a single module at a time, only collapse other modules in " "the current group - ignore modules in other groups" @@ -1281,27 +1376,27 @@ "Si se elige desplegar sólo un módulo a la vez, los módulos del mismo grupo " "se pliegan. No tiene efecto en módulos de otros grupos." -#: ../build/bin/preferences_gen.h:5029 +#: ../build/bin/preferences_gen.h:5566 msgid "expand the module when it is activated, and collapse it when disabled" msgstr "" "Expandir el módulo cuando está activado y contraer cuando está desactivado" -#: ../build/bin/preferences_gen.h:5043 +#: ../build/bin/preferences_gen.h:5579 msgid "" "this option allows to expand or collapse automatically the module when it is " "enabled or disabled." msgstr "" "Esta opción habilita la expansión o la contracción automática del módulo" -#: ../build/bin/preferences_gen.h:5065 +#: ../build/bin/preferences_gen.h:5600 msgid "scroll processing modules to the top when expanded" msgstr "Desplazar los módulos de revelado a la parte superior al desplegarlos" -#: ../build/bin/preferences_gen.h:5101 +#: ../build/bin/preferences_gen.h:5634 msgid "show right-side buttons in processing module headers" msgstr "Mostrar los botones derechos de control de los módulos de revelado" -#: ../build/bin/preferences_gen.h:5169 +#: ../build/bin/preferences_gen.h:5648 msgid "" "when the mouse is not over a module, the multi-instance, reset and preset " "buttons can be hidden:\n" @@ -1326,11 +1421,11 @@ "• «Fluido»: se ocultan según lo requiera cada módulo independientemente.\n" "• «Adaptado»: se va ocultando botón por botón según sea necesario." -#: ../build/bin/preferences_gen.h:5191 +#: ../build/bin/preferences_gen.h:5669 msgid "show mask indicator in module headers" msgstr "Mostrar el indicador de máscara en el módulo plegado" -#: ../build/bin/preferences_gen.h:5205 +#: ../build/bin/preferences_gen.h:5682 msgid "" "if enabled, an icon will be shown in the header of any processing modules " "that have a mask applied" @@ -1338,11 +1433,11 @@ "Al activarse, se mostrará un ícono al lado del nombre del módulo de revelado " "que tenga aplicada una máscara." -#: ../build/bin/preferences_gen.h:5227 +#: ../build/bin/preferences_gen.h:5703 msgid "prompt for name on addition of new instance" msgstr "Requerir el nombre del módulo nuevo inmediatamente al añadirlo" -#: ../build/bin/preferences_gen.h:5241 +#: ../build/bin/preferences_gen.h:5716 msgid "" "if enabled, a rename prompt will be present for each new module instance " "(either new instance or duplicate)" @@ -1350,11 +1445,11 @@ "Al activarse esta opción, aparecerá un campo de texto para introducir el " "nombre del módulo inmediatamente al ser creado uno nuevo o un duplicado" -#: ../build/bin/preferences_gen.h:5263 +#: ../build/bin/preferences_gen.h:5737 msgid "automatically update module name" msgstr "Actualizar automáticamente el nombre del módulo" -#: ../build/bin/preferences_gen.h:5277 +#: ../build/bin/preferences_gen.h:5750 msgid "" "if enabled, the module name will be automatically updated to match a preset " "name or a preset instance name if present." @@ -1363,24 +1458,28 @@ "coincida con un nombre de preajuste o un nombre de preajuste duplicado si " "existe." -#: ../build/bin/preferences_gen.h:5317 +#: ../build/bin/preferences_gen.h:5782 +msgid "processing" +msgstr "procesamiento" + +#: ../build/bin/preferences_gen.h:5784 msgid "image processing" msgstr "procesamiento de imagen" -#: ../build/bin/preferences_gen.h:5337 +#: ../build/bin/preferences_gen.h:5803 msgid "always use LittleCMS 2 to apply output color profile" msgstr "" "Utilizar siempre LittleCMS 2 para establecer el perfil de color de salida" -#: ../build/bin/preferences_gen.h:5351 +#: ../build/bin/preferences_gen.h:5816 msgid "this is slower than the default." msgstr "Es más lento que el valor por defecto." -#: ../build/bin/preferences_gen.h:5373 +#: ../build/bin/preferences_gen.h:5837 msgid "pixel interpolator (warp)" msgstr "Interpolador de pixel (deformaciones)" -#: ../build/bin/preferences_gen.h:5416 +#: ../build/bin/preferences_gen.h:5851 msgid "" "pixel interpolator used in modules for rotation, lens correction, liquify, " "cropping and final scaling (bilinear, bicubic, lanczos2)." @@ -1389,33 +1488,33 @@ "corrección de lente, licuar, recorte y escalado final (bilineal, bicúbico, " "Lanczos2)" -#: ../build/bin/preferences_gen.h:5438 +#: ../build/bin/preferences_gen.h:5872 msgid "pixel interpolator (scaling)" msgstr "Interpolador de pixel (escalado)" -#: ../build/bin/preferences_gen.h:5486 +#: ../build/bin/preferences_gen.h:5886 msgid "" "pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." msgstr "" "Indica el interpolador de pixel que será usado para el escalado (bilineal, " "bicúbico, Lanczos2, Lanczos3)" -#: ../build/bin/preferences_gen.h:5508 +#: ../build/bin/preferences_gen.h:5907 msgid "LUT 3D root folder" msgstr "Carpeta raíz de LUT 3D" -#: ../build/bin/preferences_gen.h:5513 ../src/control/jobs/control_jobs.c:1688 -#: ../src/control/jobs/control_jobs.c:1742 ../src/gui/preferences.c:1081 -#: ../src/gui/presets.c:419 ../src/imageio/storage/disk.c:122 -#: ../src/imageio/storage/disk.c:178 ../src/imageio/storage/gallery.c:109 -#: ../src/imageio/storage/gallery.c:163 ../src/imageio/storage/latex.c:108 -#: ../src/imageio/storage/latex.c:162 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/import.c:1664 ../src/libs/styles.c:391 +#: ../build/bin/preferences_gen.h:5913 ../src/control/jobs/control_jobs.c:1691 +#: ../src/control/jobs/control_jobs.c:1745 ../src/gui/preferences.c:1080 +#: ../src/gui/presets.c:421 ../src/imageio/storage/disk.c:197 +#: ../src/imageio/storage/disk.c:261 ../src/imageio/storage/gallery.c:149 +#: ../src/imageio/storage/gallery.c:213 ../src/imageio/storage/latex.c:145 +#: ../src/imageio/storage/latex.c:199 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1673 ../src/libs/styles.c:391 #: ../src/lua/preferences.c:668 msgid "select directory" msgstr "Seleccionar directorio" -#: ../build/bin/preferences_gen.h:5529 +#: ../build/bin/preferences_gen.h:5927 msgid "" "this folder (and sub-folders) contains LUT files used by LUT 3D module. " "(need a restart)." @@ -1423,11 +1522,11 @@ "Esta carpeta (y subcarpetas) contienen los archivos LUT utilizados por el " "módulo lut 3D. Es necesario reiniciar darktable." -#: ../build/bin/preferences_gen.h:5551 +#: ../build/bin/preferences_gen.h:5948 msgid "auto-apply pixel workflow defaults" msgstr "Flujo de trabajo por defecto" -#: ../build/bin/preferences_gen.h:5599 +#: ../build/bin/preferences_gen.h:5962 msgid "" "scene-referred workflow is based on linear modules and will auto-apply " "filmic or sigmoid, color calibration and exposure,\n" @@ -1441,19 +1540,19 @@ "activación automática de la Curva Base, Balance de Blancos y el orden de los " "módulos antiguo." -#: ../build/bin/preferences_gen.h:5621 +#: ../build/bin/preferences_gen.h:5983 msgid "auto-apply per camera basecurve presets" msgstr "" "Establecer automáticamente los preajustes de la curva base de la cámara" -#: ../build/bin/preferences_gen.h:5635 +#: ../build/bin/preferences_gen.h:5996 msgid "" "use the per-camera basecurve by default instead of the generic manufacturer " "one if there is one available (needs a restart).\n" "this option is taken into account when the \"auto-apply pixel workflow " "defaults\" is set to \"display-referred\".\n" -"to prevent auto-apply basecurve presets \"auto-apply pixel workflow defaults" -"\" should be set to \"none\"" +"to prevent auto-apply basecurve presets \"auto-apply pixel workflow " +"defaults\" should be set to \"none\"" msgstr "" "Por defecto, utilizar la curva base de la cámara correspondiente (si hay una " "disponible), en lugar de la genérica del fabricante (necesita reiniciarse).\n" @@ -1462,11 +1561,11 @@ "Para evitar la aplicación automática de la curva base, la opción de \"Flujo " "de trabajo por defecto\" deberá ser \"ninguno\"." -#: ../build/bin/preferences_gen.h:5657 +#: ../build/bin/preferences_gen.h:6017 msgid "detect monochrome previews" msgstr "Detectar miniaturas monocromáticas" -#: ../build/bin/preferences_gen.h:5671 +#: ../build/bin/preferences_gen.h:6030 msgid "" "many monochrome images can be identified via EXIF and preview data. beware: " "this slows down imports and reading of EXIF data" @@ -1475,11 +1574,11 @@ "Exif o de previsualización. Advertencia: esta opción ralentiza la " "importación y la lectura de los datos Exif." -#: ../build/bin/preferences_gen.h:5693 +#: ../build/bin/preferences_gen.h:6051 msgid "show warning messages" msgstr "Mostrar mensajes de aviso" -#: ../build/bin/preferences_gen.h:5707 +#: ../build/bin/preferences_gen.h:6064 msgid "" "display messages in modules to warn beginner users when non-standard and " "possibly harmful settings are used in the pipeline.\n" @@ -1493,15 +1592,15 @@ "ignorados si se sabe lo que se está haciendo. Al desmarcar esta opción, se " "mantendrán siempre ocultos." -#: ../build/bin/preferences_gen.h:5717 -msgid "CPU / GPU / memory" -msgstr "CPU / GPU / memoria" +#: ../build/bin/preferences_gen.h:6073 +msgid "CPU / memory" +msgstr "CPU / memoria" -#: ../build/bin/preferences_gen.h:5737 +#: ../build/bin/preferences_gen.h:6092 msgid "darktable resources" msgstr "Recursos de darktable" -#: ../build/bin/preferences_gen.h:5786 +#: ../build/bin/preferences_gen.h:6107 #, no-c-format msgid "" "defines how much darktable may take from your system resources:\n" @@ -1533,11 +1632,11 @@ "caídas inesperadas de rendimiento y excesiva lentitud del sistema. Use esta " "opción con prudencia (no se recomienda para uso en general)." -#: ../build/bin/preferences_gen.h:5808 +#: ../build/bin/preferences_gen.h:6128 msgid "prefer performance over quality" msgstr "Priorizar desempeño sobre calidad" -#: ../build/bin/preferences_gen.h:5822 +#: ../build/bin/preferences_gen.h:6141 msgid "" "if switched on, thumbnails and previews are rendered at lower quality but 4 " "times faster" @@ -1545,59 +1644,15 @@ "Al activarse, las miniaturas y previsualizaciones se generarán 4 veces más " "rápido pero con una calidad inferior." -#: ../build/bin/preferences_gen.h:5844 -msgid "enable disk backend for thumbnail cache" -msgstr "Almacenar en disco una 2ª caché de miniaturas" +#: ../build/bin/preferences_gen.h:6150 +msgid "OpenCL" +msgstr "OpenCL" -#: ../build/bin/preferences_gen.h:5858 -msgid "" -"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want. light table " -"performance will be increased greatly when browsing a lot.\n" -"to generate all thumbnails of your entire collection offline, run 'darktable-" -"generate-cache'." -msgstr "" -"Si se activa, guarda las miniaturas en disco (.cache/darktable/) cuando se " -"eliminan de la memoria en caché.\n" -"Tome en cuenta que esto puede consumir mucha memoria (varios gigabytes por " -"imágenes de 20k), pero no tendrá que eliminar las miniaturas almacenadas en " -"caché.\n" -"Sin embargo, es seguro eliminarlas manualmente si lo desea. El desempeño de " -"la mesa de luz mejorará en gran medida cuando se navega mucho.\n" -"Para generar todas las miniaturas de su colección fuera de línea, ejecute " -"\"darktable-generate-cache\"." - -#: ../build/bin/preferences_gen.h:5880 -msgid "enable disk backend for full preview cache" -msgstr "Almacenar en disco una caché de las vistas previas completas" - -#: ../build/bin/preferences_gen.h:5894 -msgid "" -"if enabled, write full preview to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want.\n" -"light table performance will be increased greatly when zooming image in full " -"preview mode." -msgstr "" -"Si se habilita, guarda las miniaturas en el disco (.cache/darktable/) cuando " -"se eliminan de la memoria en caché.\n" -"Tome en cuenta que esto puede consumir mucha memoria (varios gigabytes por " -"imágenes de 20k), pero no tendrá que eliminar las miniaturas almacenadas en " -"caché.\n" -"Sin embargo, es seguro eliminarlas manualmente. El rendimiento de la mesa de " -"luz aumentará en gran medida al hacer zoom en la imagen en modo de vista " -"previa completa." - -#: ../build/bin/preferences_gen.h:5916 +#: ../build/bin/preferences_gen.h:6169 msgid "activate OpenCL support" msgstr "Activar el soporte de OpenCL" -#: ../build/bin/preferences_gen.h:5930 +#: ../build/bin/preferences_gen.h:6182 msgid "" "if found, use OpenCL runtime on your system to speed up processing.\n" "can be switched on and off at any time." @@ -1606,23 +1661,32 @@ "disponible.\n" "Puede apagarlo en cualquier momento." -#: ../build/bin/preferences_gen.h:5931 ../build/bin/preferences_gen.h:6002 -#: ../build/bin/preferences_gen.h:6078 ../build/bin/preferences_gen.h:7397 +#: ../build/bin/preferences_gen.h:6186 ../build/bin/preferences_gen.h:6231 +#: ../build/bin/preferences_gen.h:6275 ../build/bin/preferences_gen.h:6326 +#: ../build/bin/preferences_gen.h:6370 ../build/bin/preferences_gen.h:6414 +#: ../build/bin/preferences_gen.h:6458 ../build/bin/preferences_gen.h:6502 +#: ../build/bin/preferences_gen.h:6546 ../build/bin/preferences_gen.h:7701 msgid "not available" msgstr "No disponible" -#: ../build/bin/preferences_gen.h:5934 ../build/bin/preferences_gen.h:5938 -#: ../build/bin/preferences_gen.h:6005 ../build/bin/preferences_gen.h:6009 -#: ../build/bin/preferences_gen.h:6081 ../build/bin/preferences_gen.h:6085 -#: ../build/bin/preferences_gen.h:7400 ../build/bin/preferences_gen.h:7404 +#: ../build/bin/preferences_gen.h:6188 ../build/bin/preferences_gen.h:6189 +#: ../build/bin/preferences_gen.h:6233 ../build/bin/preferences_gen.h:6234 +#: ../build/bin/preferences_gen.h:6277 ../build/bin/preferences_gen.h:6278 +#: ../build/bin/preferences_gen.h:6328 ../build/bin/preferences_gen.h:6329 +#: ../build/bin/preferences_gen.h:6372 ../build/bin/preferences_gen.h:6373 +#: ../build/bin/preferences_gen.h:6416 ../build/bin/preferences_gen.h:6417 +#: ../build/bin/preferences_gen.h:6460 ../build/bin/preferences_gen.h:6461 +#: ../build/bin/preferences_gen.h:6504 ../build/bin/preferences_gen.h:6505 +#: ../build/bin/preferences_gen.h:6548 ../build/bin/preferences_gen.h:6549 +#: ../build/bin/preferences_gen.h:7703 ../build/bin/preferences_gen.h:7704 msgid "not available on this system" msgstr "No disponible en este sistema" -#: ../build/bin/preferences_gen.h:5958 +#: ../build/bin/preferences_gen.h:6213 msgid "OpenCL scheduling profile" msgstr "Perfil de programación de OpenCL" -#: ../build/bin/preferences_gen.h:6001 +#: ../build/bin/preferences_gen.h:6227 msgid "" "defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled " "systems:\n" @@ -1641,56 +1705,130 @@ "• «Con GPU muy rápida»: ambas tareas se realizan secuencialmente en la misma " "GPU." -#: ../build/bin/preferences_gen.h:6029 -msgid "tune OpenCL performance" -msgstr "Configurar el rendimiento de OpenCL" - -#: ../build/bin/preferences_gen.h:6077 -msgid "" -"allows runtime tuning of OpenCL devices:\n" -" - 'memory size': uses a fixed headroom (400MB as default),\n" -" - 'memory transfer': tries a faster memory access mode (pinned memory) used " -"for tiling." -msgstr "" -"Posibilita ajustar los dispositivos OpenCL en tiempo de ejecución.\n" -"• «Tamaño de la memoria» utiliza un espacio libre fijo (400 MB de manera " -"predeterminada);\n" -"• «Transferencia de memoria» prueba un modo de acceso más rápido a la " -"memoria (memoria fijada) utilizado para el proceso por bandas." +#: ../build/bin/preferences_gen.h:6258 +msgid "use all device memory" +msgstr "Utilizar toda la memoria del dispositivo" + +#: ../build/bin/preferences_gen.h:6271 +msgid "" +"if enabled darktable will use all device memory except a safety margin " +"(headroom, default is 600MB)" +msgstr "" +"Si se activa, darktable utilizará toda la memoria del dispositivo excepto " +"por el margen de seguridad (predefinido en 600 MB)" + +#: ../build/bin/preferences_gen.h:6290 +msgid "OpenCL drivers" +msgstr "Controladores OpenCL" + +#: ../build/bin/preferences_gen.h:6309 +msgid "Intel GPU" +msgstr "GPU Intel" + +#: ../build/bin/preferences_gen.h:6322 +msgid "Intel(R) OpenCL Graphics for all supported platforms (vendor provided)" +msgstr "" +"OpenCL con tecnología de gráficos de Intel® para todas las plataformas " +"compatibles (proporcionado por el proveedor)" + +#: ../build/bin/preferences_gen.h:6353 +msgid "Nvidia CUDA" +msgstr "CUDA (Nvidia)" + +#: ../build/bin/preferences_gen.h:6366 +msgid "Nvidia CUDA based OpenCL (vendor provided)" +msgstr "OpenCL basado en CUDA de Nvidia (proporcionado por el proveedor)" + +#: ../build/bin/preferences_gen.h:6397 +msgid "AMD ROCm" +msgstr "ROCm (AMD)" -#: ../build/bin/preferences_gen.h:6143 +#: ../build/bin/preferences_gen.h:6410 +msgid "AMD Accelerated Parallel Processing (vendor provided)" +msgstr "" +"Procesamiento Paralelo Acelerado de AMD (proporcionado por el proveedor)" + +#: ../build/bin/preferences_gen.h:6441 +msgid "RustiCL" +msgstr "RustiCL" + +#: ../build/bin/preferences_gen.h:6454 +msgid "" +"RustiCL Mesa OpenCL, still unstable. if you want to use this, you should " +"disable the vendor driver" +msgstr "" +"El controlador RustiCL de OpenCL para Mesa OpenCL es aún inestable. Si elige " +"esta opción, deshabilite el controlador dado por el proveedor." + +#: ../build/bin/preferences_gen.h:6485 +msgid "Apple" +msgstr "Apple" + +#: ../build/bin/preferences_gen.h:6498 +msgid "Apple OpenCL (vendor provided)" +msgstr "OpenCL de Apple (proporcionado por el proveedor)" + +#: ../build/bin/preferences_gen.h:6529 +msgid "Microsoft OpenCLOn12" +msgstr "Microsoft OpenCLOn12" + +#: ../build/bin/preferences_gen.h:6542 +msgid "" +"Microsoft OpenCLOn12, only use this if the vendor provided driver does not " +"work or there is none provided." +msgstr "" +"Sólo utilice Microsoft OpenCLOn12 si no se ha proporcionado ningún " +"controlador o el proporcionado por el proveedor no funciona." + +#: ../build/bin/preferences_gen.h:6573 +msgid "other platforms" +msgstr "Otras plataformas" + +#: ../build/bin/preferences_gen.h:6586 +msgid "" +"if set, all unspecified platforms are accepted. only do this if no vendor " +"driver is available" +msgstr "" +"Si se establece, se aceptarán todas las plataformas no especificadas. Ocurre " +"sólo si no hay ningún controlador de proveedor disponible." + +#: ../build/bin/preferences_gen.h:6618 +msgid "security" +msgstr "seguridad" + +#: ../build/bin/preferences_gen.h:6639 msgid "ask before removing images from the library" msgstr "Preguntar antes de eliminar las imágenes de la fototeca" -#: ../build/bin/preferences_gen.h:6157 +#: ../build/bin/preferences_gen.h:6652 msgid "always ask the user before removing image information from the library" msgstr "" "Solicita siempre la confirmación al usuario antes de quitar cualquier " "información de la fototeca" -#: ../build/bin/preferences_gen.h:6179 +#: ../build/bin/preferences_gen.h:6673 msgid "ask before deleting images from disk" msgstr "Preguntar antes de eliminar las imágenes del disco" -#: ../build/bin/preferences_gen.h:6193 +#: ../build/bin/preferences_gen.h:6686 msgid "always ask the user before any image file is deleted" msgstr "" "Preguntar siempre antes de mover cualquier archivo de imagen.\n" "Preguntar siempre antes de borrar cualquier archivo de imagen." -#: ../build/bin/preferences_gen.h:6215 +#: ../build/bin/preferences_gen.h:6707 msgid "ask before discarding history stack" msgstr "Preguntar antes de descartar el historial de acciones" -#: ../build/bin/preferences_gen.h:6229 +#: ../build/bin/preferences_gen.h:6720 msgid "always ask the user before history stack is discarded on any image" msgstr "Preguntar siempre antes de descartar el historial de acciones." -#: ../build/bin/preferences_gen.h:6251 +#: ../build/bin/preferences_gen.h:6741 msgid "try to use trash when deleting images" msgstr "Al eliminar las imágenes, se opta enviarlas a la papelera" -#: ../build/bin/preferences_gen.h:6265 +#: ../build/bin/preferences_gen.h:6754 msgid "" "send files to trash instead of permanently deleting files on system that " "supports it" @@ -1698,27 +1836,27 @@ "Envía los archivos a la papelera en vez de borrarlos permanentemente en los " "sistemas que cuenten con esa opción" -#: ../build/bin/preferences_gen.h:6287 +#: ../build/bin/preferences_gen.h:6775 msgid "ask before moving images from film roll folder" msgstr "Preguntar antes de mover imágenes desde la carpeta del carrete" -#: ../build/bin/preferences_gen.h:6301 +#: ../build/bin/preferences_gen.h:6788 msgid "always ask the user before any image file is moved." msgstr "Preguntar siempre antes de mover cualquier archivo de imagen." -#: ../build/bin/preferences_gen.h:6323 +#: ../build/bin/preferences_gen.h:6809 msgid "ask before copying images to new film roll folder" msgstr "Preguntar antes de copiar imágenes a una nueva carpeta del carrete" -#: ../build/bin/preferences_gen.h:6337 +#: ../build/bin/preferences_gen.h:6822 msgid "always ask the user before any image file is copied." msgstr "Preguntar siempre antes de copiar cualquier archivo de imagen." -#: ../build/bin/preferences_gen.h:6359 +#: ../build/bin/preferences_gen.h:6843 msgid "ask before removing empty folders" msgstr "Preguntar antes de eliminar carpetas vacías" -#: ../build/bin/preferences_gen.h:6373 +#: ../build/bin/preferences_gen.h:6856 msgid "" "always ask the user before removing any empty folder. this can happen after " "moving or deleting images." @@ -1726,53 +1864,53 @@ "Preguntar siempre antes de eliminar cualquier carpeta vacía. Esto puede " "pasar después de mover o eliminar imágenes." -#: ../build/bin/preferences_gen.h:6395 +#: ../build/bin/preferences_gen.h:6877 msgid "ask before deleting a tag" msgstr "Preguntar antes de borrar una etiqueta" -#: ../build/bin/preferences_gen.h:6430 +#: ../build/bin/preferences_gen.h:6910 msgid "ask before deleting a style" msgstr "Preguntar antes de borrar un estilo" -#: ../build/bin/preferences_gen.h:6465 +#: ../build/bin/preferences_gen.h:6943 msgid "ask before deleting a preset" msgstr "Confirmar antes de borrar un preajuste" -#: ../build/bin/preferences_gen.h:6479 +#: ../build/bin/preferences_gen.h:6956 msgid "will ask for confirmation before deleting or overwriting a preset" msgstr "Se pedirá confirmación antes de borrar o sobrescribir un preajuste" -#: ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6977 msgid "ask before exporting in overwrite mode" msgstr "Preguntar antes de sobreescribir al exportar" -#: ../build/bin/preferences_gen.h:6515 +#: ../build/bin/preferences_gen.h:6990 msgid "will ask for confirmation before exporting files in overwrite mode" msgstr "" "Se pedirá confirmación antes de sobreescribir los archivos al exportar en " "esa modalidad" #. italic -#: ../build/bin/preferences_gen.h:6525 ../src/libs/tools/viewswitcher.c:148 +#: ../build/bin/preferences_gen.h:6999 ../src/libs/tools/viewswitcher.c:148 msgid "other" msgstr "otros" -#: ../build/bin/preferences_gen.h:6545 +#: ../build/bin/preferences_gen.h:7018 msgid "password storage backend to use" msgstr "Respaldo de almacenamiento de contraseñas" -#: ../build/bin/preferences_gen.h:6595 +#: ../build/bin/preferences_gen.h:7036 msgid "" "the storage backend for password storage: auto, none, libsecret, kwallet" msgstr "" "Interfaz para almacenamiento de claves: automático, ninguno, Libsecret, " "Kwallet" -#: ../build/bin/preferences_gen.h:6617 +#: ../build/bin/preferences_gen.h:7057 msgid "executable for playing audio files" msgstr "Programa para reproducir archivos de audio" -#: ../build/bin/preferences_gen.h:6635 +#: ../build/bin/preferences_gen.h:7075 msgid "" "this external program is used to play audio files some cameras record to " "keep notes for images" @@ -1780,15 +1918,19 @@ "Este programa externo es utilizado para reproducir archivos de audio que " "algunas cámaras graban para mantener notas de las imagenes" -#: ../build/bin/preferences_gen.h:6675 ../src/control/crawler.c:724 +#: ../build/bin/preferences_gen.h:7107 +msgid "storage" +msgstr "almacenamiento" + +#: ../build/bin/preferences_gen.h:7109 ../src/control/crawler.c:717 msgid "database" msgstr "base de datos" -#: ../build/bin/preferences_gen.h:6695 +#: ../build/bin/preferences_gen.h:7128 msgid "create database snapshot" msgstr "Crear instantánea de la base de datos" -#: ../build/bin/preferences_gen.h:6748 +#: ../build/bin/preferences_gen.h:7142 msgid "" "database snapshots are created right before closing darktable. options allow " "you to choose how often to make snapshots:\n" @@ -1809,11 +1951,11 @@ "• «Una vez al día»: Se crea 24 horas después de la última instantánea. \n" "• «Al cerrar»: Se crea con cada cierre de darktable." -#: ../build/bin/preferences_gen.h:6770 +#: ../build/bin/preferences_gen.h:7163 msgid "how many snapshots to keep" msgstr "Cantidad de instantáneas a conservar" -#: ../build/bin/preferences_gen.h:6793 +#: ../build/bin/preferences_gen.h:7186 msgid "" "after successfully creating snapshot, how many older snapshots to keep " "(excluding mandatory version update ones). enter -1 to keep all snapshots\n" @@ -1825,40 +1967,40 @@ "Intodroduzca -1 para almacenar todas. Tenga en cuenta sólo será necesaria la " "más reciente para hacer la restauración." -#: ../build/bin/preferences_gen.h:6803 ../src/control/crawler.c:723 -msgid "XMP" -msgstr "XMP" +#: ../build/bin/preferences_gen.h:7195 ../src/libs/copy_history.c:149 +msgid "XMP sidecar files" +msgstr "Archivos asociados XMP" -#: ../build/bin/preferences_gen.h:6823 -msgid "write sidecar file for each image" -msgstr "Generar un archivo asociado por cada imagen" +#: ../build/bin/preferences_gen.h:7214 +msgid "create XMP files" +msgstr "Crear archivos XMP" -#: ../build/bin/preferences_gen.h:6866 +#: ../build/bin/preferences_gen.h:7228 msgid "" -"the sidecar files hold information about all your development steps to allow " +"XMP sidecar files hold information about all your development steps to allow " "flawless re-importing of image files.\n" "\n" -"depending on the selected mode sidecar files will be written:\n" +"depending on the selected mode sidecar files will be created:\n" " - 'never'\n" " - 'on import': immediately after importing the image\n" -" - 'after edit': after any user change on the image." +" - 'after edit': after any user change on the image or adding tags." msgstr "" -"Los archivos asociados contienen toda la información sobre cada paso de " +"Los archivos asociados XMP contienen toda la información sobre cada paso de " "revelado, \n" "que en el caso de una reimportación de los archivos de imagen, esa " "información se conservaría.\n" "\n" -"Los archivos asociados se generarán o se escribirán de acuerdo a las " -"siguientes opciones:\n" +"Los archivos asociados se generarán de acuerdo a las siguientes opciones:\n" "• «Nunca»\n" "• «Al importar»: al instante de importar la imagen.\n" -"• «Después de editar»: después de cualquier modificación hecha a la imagen." +"• «Después de editar»: después de cualquier modificación hecha a la imagen o " +"al añadir cualquier etiqueta." -#: ../build/bin/preferences_gen.h:6888 +#: ../build/bin/preferences_gen.h:7249 msgid "store XMP tags in compressed format" msgstr "Guarda las etiquetas XMP en formato comprimido" -#: ../build/bin/preferences_gen.h:6931 +#: ../build/bin/preferences_gen.h:7263 msgid "" "entries in XMP tags can get rather large and may exceed the available space " "to store the history stack in output files.\n" @@ -1869,11 +2011,25 @@ "salida.\n" "Esta opción permite comprimir las etiquetas XMP para ahorrar espacio." -#: ../build/bin/preferences_gen.h:6953 +#: ../build/bin/preferences_gen.h:7284 +msgid "auto-save interval" +msgstr "Intervalo de tiempo para el guardado automático" + +#: ../build/bin/preferences_gen.h:7307 +msgid "" +"automatically save history while developing using the given interval (in " +"seconds); set to zero to disable auto-saving. auto-saving might be disabled " +"on slow drives." +msgstr "" +"Guarda automáticamente el historial durante el revelado según el intervalo " +"indicado en segundos. El valor cero sirve para desactivar el guardado " +"automático. En dispositivos lentos, puede estar inhabilitado." + +#: ../build/bin/preferences_gen.h:7328 msgid "look for updated XMP files on startup" msgstr "Buscar archivos XMP actualizados al iniciar" -#: ../build/bin/preferences_gen.h:6967 +#: ../build/bin/preferences_gen.h:7341 msgid "" "check file modification times of all XMP files on startup to check if any " "got updated in the meantime" @@ -1881,15 +2037,19 @@ "Examina las fechas de modificación de todos los archivos XMP al inicio para " "verificar si alguno fue actualizado en un lapso de tiempo" -#: ../build/bin/preferences_gen.h:7007 +#: ../build/bin/preferences_gen.h:7373 +msgid "miscellaneous" +msgstr "miscelánea" + +#: ../build/bin/preferences_gen.h:7375 msgid "interface" msgstr "interfaz" -#: ../build/bin/preferences_gen.h:7027 +#: ../build/bin/preferences_gen.h:7394 msgid "load default shortcuts at startup" msgstr "Restaurar los atajos predefinidos al iniciar" -#: ../build/bin/preferences_gen.h:7041 +#: ../build/bin/preferences_gen.h:7407 msgid "" "load default shortcuts before user settings. switch off to prevent deleted " "defaults returning" @@ -1898,32 +2058,32 @@ "Para evitar que los valores predefinidos borrados se reinstauren, desactive " "esta opción." -#: ../build/bin/preferences_gen.h:7063 +#: ../build/bin/preferences_gen.h:7428 msgid "scale slider step with min/max" msgstr "Variar el incremento del control deslizante con mín./máx." -#: ../build/bin/preferences_gen.h:7077 +#: ../build/bin/preferences_gen.h:7441 msgid "vary slider step size with min/max range" msgstr "" "Variar el incremento de los controles deslizantes según el rango mín./máx." -#: ../build/bin/preferences_gen.h:7099 +#: ../build/bin/preferences_gen.h:7462 msgid "sort built-in presets first" msgstr "Listar primero los preajustes incorporados" -#: ../build/bin/preferences_gen.h:7113 +#: ../build/bin/preferences_gen.h:7475 msgid "" "whether to show built-in presets first before user's presets in presets menu." msgstr "" "Mostrar primero los preajustes incorporados antes que los personalizados en " "el menú de preajustes." -#: ../build/bin/preferences_gen.h:7135 +#: ../build/bin/preferences_gen.h:7496 msgid "mouse wheel scrolls modules side panel by default" msgstr "" "Desplazar los módulos del panel lateral con la rueda del ratón por defecto" -#: ../build/bin/preferences_gen.h:7149 +#: ../build/bin/preferences_gen.h:7509 msgid "" "when enabled, use mouse wheel to scroll modules side panel. use ctrl+alt to " "use mouse wheel for data entry. when disabled, this behavior is reversed" @@ -1932,11 +2092,11 @@ "módulos del panel lateral. Use Ctrl+Alt para que con la rueda del ratón se " "introduzcan datos. Cuando está desactivado, este comportamiento se invierte." -#: ../build/bin/preferences_gen.h:7171 +#: ../build/bin/preferences_gen.h:7530 msgid "always show panels' scrollbars" msgstr "Mostrar siempre las barras de desplazamiento de los paneles" -#: ../build/bin/preferences_gen.h:7185 +#: ../build/bin/preferences_gen.h:7543 msgid "" "defines whether the panel scrollbars should be always visible or activated " "only depending on the content. (need a restart)" @@ -1944,11 +2104,11 @@ "Establece si las barras de desplazamiento del panel son permanentes o se " "activan en función del contenido. (Necesita reiniciarse)" -#: ../build/bin/preferences_gen.h:7207 +#: ../build/bin/preferences_gen.h:7564 msgid "duration of the UI transitions in ms" msgstr "Duración de las transiciones en la interfaz de usuario" -#: ../build/bin/preferences_gen.h:7231 +#: ../build/bin/preferences_gen.h:7588 msgid "" "how long the transitions take (in ms) for expanding or collapsing modules " "and other UI elements" @@ -1956,21 +2116,21 @@ "Duración de las transiciones en milisegundos al plegar o desplegar los " "módulos y de otros elementos de la interfaz." -#: ../build/bin/preferences_gen.h:7253 +#: ../build/bin/preferences_gen.h:7609 msgid "position of the scopes module" msgstr "Posición del monitor de gráficos" -#: ../build/bin/preferences_gen.h:7291 +#: ../build/bin/preferences_gen.h:7623 msgid "position the scopes at the top-left or top-right of the screen" msgstr "" "Cambia la posición del monitor de gráficos de la parte superior de la " "pantalla : a la izquierda o a la derecha" -#: ../build/bin/preferences_gen.h:7313 +#: ../build/bin/preferences_gen.h:7644 msgid "method to use for getting the display profile" msgstr "Método para obtener el perfil del monitor" -#: ../build/bin/preferences_gen.h:7356 +#: ../build/bin/preferences_gen.h:7658 msgid "" "this option allows to force a specific means of getting the current display " "profile.\n" @@ -1980,11 +2140,11 @@ "actual del monitor.\n" "Es útil cuando alguna de las alternativas muestre un resultado erróneo." -#: ../build/bin/preferences_gen.h:7378 +#: ../build/bin/preferences_gen.h:7679 msgid "order or exclude MIDI devices" msgstr "Ordenar o excluir dispositivos MIDI" -#: ../build/bin/preferences_gen.h:7396 +#: ../build/bin/preferences_gen.h:7697 msgid "" "comma-separated list of device name fragments that if matched load MIDI " "device at id given by location in list\n" @@ -1997,72 +2157,69 @@ "codificación y el número de mandos como «BeatStep:63:16»." #. tags -#: ../build/bin/preferences_gen.h:7412 ../src/develop/lightroom.c:1516 -#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:333 -#: ../src/libs/image.c:558 ../src/libs/metadata_view.c:162 +#: ../build/bin/preferences_gen.h:7716 ../src/develop/lightroom.c:1573 +#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:322 +#: ../src/libs/image.c:614 ../src/libs/metadata_view.c:166 msgid "tags" msgstr "etiquetas" -#: ../build/bin/preferences_gen.h:7432 +#: ../build/bin/preferences_gen.h:7735 msgid "omit hierarchy in simple tag lists" msgstr "Ignorar la jerarquía en listas de etiquetas simples" -#: ../build/bin/preferences_gen.h:7446 +#: ../build/bin/preferences_gen.h:7748 msgid "" -"when creating XMP file the hierarchical tags are also added as a simple " -"list\n" +"when creating an XMP sidecar file the hierarchical tags are also added as a " +"simple list\n" "of non-hierarchical ones to make them visible to some other programs.\n" "when this option is checked darktable will only include their last part\n" "and ignore the rest. so 'foo|bar|baz' will only add 'baz'." msgstr "" -"Cuando se crea el fichero XMP, las etiquetas jerárquicas se agregan también\n" -"como una lista sencilla sin jerarquía para que sea visible por otros " -"programas.\n" +"Cuando se crea un fichero asociado XMP, se agregan las etiquetas " +"jerárquicas\n" +"como una lista sencilla eliminando la jerarquía para que sean visibles por " +"otros programas.\n" "Si está marcada esta opción, darktable solo incluirá la última parte de la " "lista e\n" "ignorará el resto, por lo que \"foo|bar|baz\" solo añadirá \"baz\"." -#: ../build/bin/preferences_gen.h:7456 +#: ../build/bin/preferences_gen.h:7757 msgid "shortcuts with multiple instances" msgstr "atajos de teclado con varios duplicados del módulo" -#: ../build/bin/preferences_gen.h:7461 -msgid "" -"where multiple module instances are present, these preferences control rules " -"that are applied (in order) to decide which module instance shortcuts will " -"be applied to" -msgstr "" -"Cuando hay módulos duplicados, estas preferencias controlarán las reglas y " -"el orden para determinar a qué módulo se le aplicarán los atajos de teclado." - -#: ../build/bin/preferences_gen.h:7477 +#: ../build/bin/preferences_gen.h:7776 msgid "prefer focused instance" msgstr "Preferir los módulos en foco" -#: ../build/bin/preferences_gen.h:7491 +#: ../build/bin/preferences_gen.h:7789 msgid "" -"if an instance of the module has focus, apply shortcut to that instance\n" +"where multiple instances of a module are present, apply shortcuts to the " +"instance that has focus\n" +"if none are focused, the preferences below control rules that are followed " +"(in order) to decide which module instance shortcuts will be applied to.\n" "note: blending shortcuts always apply to the focused instance" msgstr "" -"Si existen módulos duplicados, se aplica el atajo al módulo que tiene el " -"foco.\n" -"Nota: los atajos de fusión siempre se aplican al módulo en foco." +"Cuando hay módulos duplicados, los atajos de teclado se aplican al módulo " +"que está en uso.\n" +"si no hay ninguno en uso, las siguientes preferencias controlarán las reglas " +"y el orden para determinar\n" +"a qué módulo se le aplicarán los atajos de teclado." -#: ../build/bin/preferences_gen.h:7513 +#: ../build/bin/preferences_gen.h:7810 msgid "prefer expanded instances" msgstr "Módulos desplegados" -#: ../build/bin/preferences_gen.h:7527 +#: ../build/bin/preferences_gen.h:7823 msgid "if instances of the module are expanded, ignore collapsed instances" msgstr "" "Si las instancias del módulo se despliegan, se ignoran las instancias " "plegadas" -#: ../build/bin/preferences_gen.h:7549 +#: ../build/bin/preferences_gen.h:7844 msgid "prefer enabled instances" msgstr "Módulos activados" -#: ../build/bin/preferences_gen.h:7563 +#: ../build/bin/preferences_gen.h:7857 msgid "" "after applying the above rule, if instances of the module are active, ignore " "inactive instances" @@ -2070,11 +2227,11 @@ "Después de aplicar la regla anterior, si hay duplicados del módulo activos, " "se ignorarán los inactivos" -#: ../build/bin/preferences_gen.h:7585 +#: ../build/bin/preferences_gen.h:7878 msgid "prefer unmasked instances" msgstr "Módulos sin máscaras" -#: ../build/bin/preferences_gen.h:7599 +#: ../build/bin/preferences_gen.h:7891 msgid "" "after applying the above rules, if instances of the module are unmasked, " "ignore masked instances" @@ -2082,11 +2239,11 @@ "Después de aplicar la regla anterior, si hay duplicados del módulo sin " "máscara, se ignorarán las que tienen máscara" -#: ../build/bin/preferences_gen.h:7621 +#: ../build/bin/preferences_gen.h:7912 msgid "selection order" msgstr "Elegir orden" -#: ../build/bin/preferences_gen.h:7659 +#: ../build/bin/preferences_gen.h:7926 msgid "" "after applying the above rules, apply the shortcut based on its position in " "the pixelpipe" @@ -2094,11 +2251,11 @@ "Después de aplicar la regla anterior, el atajo funcionará de acuerdo a la " "posición del módulo" -#: ../build/bin/preferences_gen.h:7681 +#: ../build/bin/preferences_gen.h:7947 msgid "allow visual assignment to specific instances" msgstr "Permitir la asignación visual a duplicados de módulo específicos" -#: ../build/bin/preferences_gen.h:7695 +#: ../build/bin/preferences_gen.h:7960 msgid "" "when multiple instances are present on an image this allows shortcuts to be " "visually assigned to those specific instances\n" @@ -2108,15 +2265,15 @@ "atajos específicos visualmente.\n" "De otra manera, los atajos serán asignados siempre al módulo preferido." -#: ../build/bin/preferences_gen.h:7705 +#: ../build/bin/preferences_gen.h:7969 msgid "map / geolocalization view" msgstr "mapa / geolocalización" -#: ../build/bin/preferences_gen.h:7725 +#: ../build/bin/preferences_gen.h:7988 msgid "pretty print the image location" msgstr "Formato comprensible de la ubicación de la imagen" -#: ../build/bin/preferences_gen.h:7739 +#: ../build/bin/preferences_gen.h:8001 msgid "" "show a more readable representation of the location in the image information " "module" @@ -2124,65 +2281,28 @@ "Mostrar una representación más clara de la ubicación de la imagen en el " "módulo de información" -#: ../build/bin/preferences_gen.h:7749 +#: ../build/bin/preferences_gen.h:8010 msgid "slideshow view" msgstr "diapositivas" -#: ../build/bin/preferences_gen.h:7769 +#: ../build/bin/preferences_gen.h:8029 msgid "waiting time between each picture in slideshow" msgstr "Tiempo de espera entre cada imagen en la presentación de diapositivas" -#: ../build/bin/preferences_gen.h:7831 -msgid "session options" -msgstr "opciones de la sesión" - -#: ../build/bin/preferences_gen.h:7851 -msgid "base directory naming pattern" -msgstr "Directorio base para el patrón de nombres" - -#: ../build/bin/preferences_gen.h:7869 ../build/bin/preferences_gen.h:7909 -msgid "part of full import path for an import session" -msgstr "" -"Parte de la ruta de importación completa para una sesión de importación" - -#: ../build/bin/preferences_gen.h:7891 -msgid "sub directory naming pattern" -msgstr "Subdirectorio para el patrón de nombres" - -#: ../build/bin/preferences_gen.h:7931 -msgid "keep original filename" -msgstr "Mantener el nombre del archivo original" - -#: ../build/bin/preferences_gen.h:7945 -msgid "" -"keep original filename instead of a pattern while importing from camera or " -"card" -msgstr "" -"Mantener el nombre de archivo original en lugar de un patrón al importar " -"desde la cámara o la tarjeta" - -#: ../build/bin/preferences_gen.h:7967 -msgid "file naming pattern" -msgstr "Patrón para nombrar archivos" - -#: ../build/bin/preferences_gen.h:7985 -msgid "file naming pattern used for a import session" -msgstr "Patrón de nombres utilizado para importar una sesión" - -#: ../build/bin/preferences_gen.h:8022 +#: ../build/bin/preferences_gen.h:8089 msgid "do not set the 'uncategorized' entry for tags" msgstr "No establecer la entrada «sin categoría» para las etiquetas" -#: ../build/bin/preferences_gen.h:8036 +#: ../build/bin/preferences_gen.h:8102 msgid "" "do not set the 'uncategorized' entry for tags which do not have children" msgstr "No establece la entrada «sin categoría» para las etiquetas sin hijos" -#: ../build/bin/preferences_gen.h:8058 +#: ../build/bin/preferences_gen.h:8123 msgid "tags case sensitivity" msgstr "Mayúsculas y minúsculas en las etiquetas" -#: ../build/bin/preferences_gen.h:8096 +#: ../build/bin/preferences_gen.h:8137 msgid "" "tags case sensitivity. without the Sqlite ICU extension, insensitivity works " "only for the 26 latin letters" @@ -2190,32 +2310,32 @@ "Diferenciar entre mayúsculas y minúsculas. Sin la extensión ICU en SQLite, y " "en el caso de ser indistinto, sólo funcionará el alfabeto latino (26 letras)." -#: ../build/bin/preferences_gen.h:8118 ../build/bin/preferences_gen.h:8358 +#: ../build/bin/preferences_gen.h:8158 ../build/bin/preferences_gen.h:8369 msgid "number of collections to be stored" msgstr "Número de colecciones para ser mostradas" -#: ../build/bin/preferences_gen.h:8142 ../build/bin/preferences_gen.h:8382 +#: ../build/bin/preferences_gen.h:8182 ../build/bin/preferences_gen.h:8393 msgid "the number of recent collections to store and show in this list" msgstr "" "Señala el número de colecciones recientes que se conservarán para ser " "mostradas en la lista" -#: ../build/bin/preferences_gen.h:8164 +#: ../build/bin/preferences_gen.h:8203 msgid "hide the history button and show a specific module instead" msgstr "" "Ocultar el botón del historial y en su lugar mostrar un módulo específico" -#: ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8216 msgid "hide the history button and show the recent collections module instead" msgstr "" "Ocultar el botón del historial y en su lugar mostrar el módulo de " "colecciones recientes" -#: ../build/bin/preferences_gen.h:8200 +#: ../build/bin/preferences_gen.h:8237 msgid "number of folder levels to show in lists" msgstr "Número de niveles de carpetas que se muestran en listas" -#: ../build/bin/preferences_gen.h:8224 +#: ../build/bin/preferences_gen.h:8261 msgid "" "the number of folder levels to show in film roll names, starting from the " "right" @@ -2223,19 +2343,19 @@ "Número de niveles de carpetas para mostrar en los nombres del carrete, " "comenzando por la derecha" -#: ../build/bin/preferences_gen.h:8246 +#: ../build/bin/preferences_gen.h:8282 msgid "sort film rolls by" msgstr "Ordenar los carretes por" -#: ../build/bin/preferences_gen.h:8284 +#: ../build/bin/preferences_gen.h:8296 msgid "sets the collections-list order for film rolls" msgstr "Establece el orden de la lista de colecciones para los carretes" -#: ../build/bin/preferences_gen.h:8306 +#: ../build/bin/preferences_gen.h:8317 msgid "sort collection descending" msgstr "Colección en orden descendente" -#: ../build/bin/preferences_gen.h:8320 +#: ../build/bin/preferences_gen.h:8330 msgid "" "sort the following collections in descending order: 'film roll' by folder, " "'folder', 'times' (e.g. 'capture date')" @@ -2244,11 +2364,11 @@ "carpeta, «carpeta»\n" " y «periodos» (por ejemplo: \"fecha de captura\")" -#: ../build/bin/preferences_gen.h:8404 +#: ../build/bin/preferences_gen.h:8414 msgid "prefer a history button in the collections module" msgstr "Optar por el botón del historial en el módulo de colecciones" -#: ../build/bin/preferences_gen.h:8418 +#: ../build/bin/preferences_gen.h:8427 msgid "" "hide this module and instead access collections history with a button in the " "collections module" @@ -2256,11 +2376,11 @@ "Ocultar este módulo y en su lugar acceder mediante un botón al historial de " "colecciones" -#: ../build/bin/preferences_gen.h:8472 +#: ../build/bin/preferences_gen.h:8484 msgid "suggested tags level of confidence" msgstr "Nivel de confianza para las palabras clave sugeridas" -#: ../build/bin/preferences_gen.h:8497 +#: ../build/bin/preferences_gen.h:8509 #, no-c-format msgid "" "level of confidence to include the tag in the suggestions list, 0: all " @@ -2272,11 +2392,11 @@ "coincidentes; 100: ninguna coincidencia, sólo para palabras clave recientes " "(más rápido)." -#: ../build/bin/preferences_gen.h:8519 +#: ../build/bin/preferences_gen.h:8530 msgid "number of recently attached tags" msgstr "número de etiquetas recién añadidas" -#: ../build/bin/preferences_gen.h:8543 +#: ../build/bin/preferences_gen.h:8554 msgid "" "number of recently attached tags which are included in the suggestions list. " "the value `-1' disables the recent list" @@ -2302,14 +2422,15 @@ #. focal length #: ../build/lib/darktable/plugins/introspection_ashift.c:148 #: ../build/lib/darktable/plugins/introspection_ashift.c:291 -#: ../src/common/collection.c:714 ../src/gui/preferences.c:844 -#: ../src/gui/presets.c:718 ../src/libs/camera.c:550 -#: ../src/libs/metadata_view.c:143 +#: ../src/common/collection.c:627 ../src/gui/preferences.c:842 +#: ../src/gui/presets.c:732 ../src/libs/camera.c:550 +#: ../src/libs/metadata_view.c:145 msgid "focal length" msgstr "longitud focal" #: ../build/lib/darktable/plugins/introspection_ashift.c:154 #: ../build/lib/darktable/plugins/introspection_ashift.c:295 +#: ../src/libs/metadata_view.c:147 msgid "crop factor" msgstr "factor de corte" @@ -2325,7 +2446,7 @@ #: ../build/lib/darktable/plugins/introspection_ashift.c:172 #: ../build/lib/darktable/plugins/introspection_ashift.c:307 -#: ../src/iop/lens.cc:3784 +#: ../src/iop/lens.cc:4438 msgid "lens model" msgstr "modelo de lente" @@ -2347,14 +2468,14 @@ #. DEVELOP_MASK_DISABLED #: ../build/lib/darktable/plugins/introspection_ashift.c:366 -#: ../build/lib/darktable/plugins/introspection_colorin.c:300 +#: ../build/lib/darktable/plugins/introspection_colorin.c:303 #: ../build/lib/darktable/plugins/introspection_highlights.c:310 #: ../build/lib/darktable/plugins/introspection_vignette.c:264 #: ../src/develop/blend_gui.c:153 ../src/develop/blend_gui.c:182 -#: ../src/develop/blend_gui.c:3410 ../src/gui/accelerators.c:130 -#: ../src/gui/accelerators.c:140 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/imageio/format/j2k.c:669 -#: ../src/libs/live_view.c:361 ../src/libs/masks.c:113 +#: ../src/develop/blend_gui.c:3429 ../src/gui/accelerators.c:148 +#: ../src/gui/accelerators.c:158 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/imageio/format/j2k.c:686 +#: ../src/libs/live_view.c:361 msgid "off" msgstr "inactivo" @@ -2378,7 +2499,7 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:146 #: ../build/lib/darktable/plugins/introspection_basecurve.c:239 -#: ../src/libs/metadata_view.c:142 +#: ../src/libs/metadata_view.c:144 msgid "exposure bias" msgstr "compensación" @@ -2398,16 +2519,16 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:262 #: ../build/lib/darktable/plugins/introspection_basicadj.c:249 #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:153 -#: ../build/lib/darktable/plugins/introspection_lens.cc:444 +#: ../build/lib/darktable/plugins/introspection_lens.cc:533 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:251 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:153 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:270 -#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2193 -#: ../src/iop/channelmixerrgb.c:4667 ../src/iop/clipping.c:1900 -#: ../src/iop/clipping.c:2093 ../src/iop/clipping.c:2108 -#: ../src/iop/retouch.c:463 ../src/libs/collect.c:1907 -#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1023 -#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:132 +#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2214 +#: ../src/iop/channelmixerrgb.c:4735 ../src/iop/clipping.c:1953 +#: ../src/iop/clipping.c:2146 ../src/iop/clipping.c:2161 +#: ../src/iop/retouch.c:507 ../src/libs/collect.c:2043 +#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1101 +#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:109 #: ../src/libs/live_view.c:311 ../src/libs/print_settings.c:2835 msgid "none" msgstr "ninguno" @@ -2425,7 +2546,7 @@ #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:252 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:154 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:271 -#: ../src/develop/blend_gui.c:2363 ../src/develop/blend_gui.c:2397 +#: ../src/develop/blend_gui.c:2379 ../src/develop/blend_gui.c:2413 msgid "luminance" msgstr "luminancia" @@ -2535,7 +2656,7 @@ #: ../build/lib/darktable/plugins/introspection_graduatednd.c:144 #: ../build/lib/darktable/plugins/introspection_watermark.c:136 #: ../build/lib/darktable/plugins/introspection_watermark.c:265 -#: ../src/iop/ashift.c:6112 ../src/libs/masks.c:108 +#: ../src/iop/ashift.c:6059 ../src/libs/masks.c:109 msgid "rotation" msgstr "rotación" @@ -2546,7 +2667,7 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:125 #: ../build/lib/darktable/plugins/introspection_blurs.c:202 -#: ../src/libs/masks.c:109 +#: ../src/libs/masks.c:110 msgid "curvature" msgstr "curvatura" @@ -2554,13 +2675,13 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:206 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:81 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:148 -#: ../src/iop/colorbalancergb.c:1968 +#: ../src/iop/colorbalancergb.c:2039 msgid "offset" msgstr "desplazamiento" #: ../build/lib/darktable/plugins/introspection_blurs.c:220 -#: ../src/common/collection.c:712 ../src/gui/preferences.c:828 -#: ../src/gui/presets.c:660 ../src/libs/metadata_view.c:139 +#: ../src/common/collection.c:625 ../src/gui/preferences.c:826 +#: ../src/gui/presets.c:674 ../src/libs/metadata_view.c:141 msgid "lens" msgstr "lente" @@ -2576,63 +2697,90 @@ msgid "gaussian" msgstr "gaussiano" -#: ../build/lib/darktable/plugins/introspection_borders.c:112 -#: ../build/lib/darktable/plugins/introspection_borders.c:253 -#: ../src/common/collection.c:722 ../src/libs/filtering.c:59 +#: ../build/lib/darktable/plugins/introspection_borders.c:122 +#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../src/common/collection.c:635 ../src/libs/filtering.c:59 msgid "aspect ratio" msgstr "proporción" #. // portrait / landscape -#: ../build/lib/darktable/plugins/introspection_borders.c:130 -#: ../build/lib/darktable/plugins/introspection_borders.c:265 +#: ../build/lib/darktable/plugins/introspection_borders.c:140 +#: ../build/lib/darktable/plugins/introspection_borders.c:281 #: ../src/iop/flip.c:75 ../src/libs/print_settings.c:2517 msgid "orientation" msgstr "orientación" -#: ../build/lib/darktable/plugins/introspection_borders.c:136 -#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../build/lib/darktable/plugins/introspection_borders.c:146 +#: ../build/lib/darktable/plugins/introspection_borders.c:285 msgid "border size" msgstr "tamaño del borde" -#: ../build/lib/darktable/plugins/introspection_borders.c:142 -#: ../build/lib/darktable/plugins/introspection_borders.c:273 +#: ../build/lib/darktable/plugins/introspection_borders.c:152 +#: ../build/lib/darktable/plugins/introspection_borders.c:289 msgid "horizontal offset" msgstr "desplazamiento horizontal" -#: ../build/lib/darktable/plugins/introspection_borders.c:160 -#: ../build/lib/darktable/plugins/introspection_borders.c:285 +#: ../build/lib/darktable/plugins/introspection_borders.c:170 +#: ../build/lib/darktable/plugins/introspection_borders.c:301 msgid "vertical offset" msgstr "desplazamiento vertical" -#: ../build/lib/darktable/plugins/introspection_borders.c:178 -#: ../build/lib/darktable/plugins/introspection_borders.c:297 +#: ../build/lib/darktable/plugins/introspection_borders.c:188 +#: ../build/lib/darktable/plugins/introspection_borders.c:313 msgid "frame line size" msgstr "tamaño del enmarcado" -#: ../build/lib/darktable/plugins/introspection_borders.c:184 -#: ../build/lib/darktable/plugins/introspection_borders.c:301 +#: ../build/lib/darktable/plugins/introspection_borders.c:194 +#: ../build/lib/darktable/plugins/introspection_borders.c:317 msgid "frame line offset" msgstr "desplazamiento de enmarcado" -#: ../build/lib/darktable/plugins/introspection_borders.c:327 -#: ../src/gui/preferences.c:849 ../src/iop/ashift.c:6291 -#: ../src/iop/basicadj.c:632 ../src/iop/flip.c:472 ../src/iop/flip.c:474 -#: ../src/iop/levels.c:641 ../src/iop/rgblevels.c:1050 +#: ../build/lib/darktable/plugins/introspection_borders.c:218 +#: ../build/lib/darktable/plugins/introspection_borders.c:333 +msgid "basis" +msgstr "criterio" + +#: ../build/lib/darktable/plugins/introspection_borders.c:347 +#: ../build/lib/darktable/plugins/introspection_borders.c:353 +#: ../src/gui/preferences.c:847 ../src/imageio/format/jpeg.c:604 +#: ../src/iop/ashift.c:6238 ../src/iop/basicadj.c:662 ../src/iop/flip.c:470 +#: ../src/iop/flip.c:472 ../src/iop/levels.c:657 ../src/iop/rgblevels.c:1105 msgid "auto" msgstr "auto" -#: ../build/lib/darktable/plugins/introspection_borders.c:328 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:309 +#: ../build/lib/darktable/plugins/introspection_borders.c:348 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:315 #: ../src/libs/filters/ratio.c:122 ../src/libs/print_settings.c:2519 msgid "portrait" msgstr "vertical" -#: ../build/lib/darktable/plugins/introspection_borders.c:329 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:305 +#: ../build/lib/darktable/plugins/introspection_borders.c:349 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:311 #: ../src/libs/filters/ratio.c:124 ../src/libs/print_settings.c:2519 msgid "landscape" msgstr "horizontal" +#: ../build/lib/darktable/plugins/introspection_borders.c:354 +#: ../src/iop/relight.c:275 ../src/libs/export.c:1223 +#: ../src/libs/metadata_view.c:151 ../src/libs/print_settings.c:2537 +msgid "width" +msgstr "anchura" + +#: ../build/lib/darktable/plugins/introspection_borders.c:355 +#: ../build/lib/darktable/plugins/introspection_watermark.c:326 +#: ../src/libs/export.c:1229 ../src/libs/metadata_view.c:152 +#: ../src/libs/print_settings.c:2541 +msgid "height" +msgstr "altura" + +#: ../build/lib/darktable/plugins/introspection_borders.c:356 +msgid "shorter" +msgstr "lado más corto" + +#: ../build/lib/darktable/plugins/introspection_borders.c:357 +msgid "longer" +msgstr "lado más largo" + #: ../build/lib/darktable/plugins/introspection_cacorrect.c:42 #: ../build/lib/darktable/plugins/introspection_cacorrect.c:91 msgid "avoid colorshift" @@ -2679,9 +2827,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:67 #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:132 -#: ../src/iop/atrous.c:1522 ../src/iop/bilateral.cc:350 ../src/iop/clahe.c:335 -#: ../src/iop/dither.c:760 ../src/iop/lowpass.c:584 ../src/iop/shadhi.c:675 -#: ../src/iop/sharpen.c:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:340 +#: ../build/lib/darktable/plugins/introspection_lens.cc:501 +#: ../src/iop/atrous.c:1636 ../src/iop/bilateral.cc:352 ../src/iop/clahe.c:337 +#: ../src/iop/dither.c:762 ../src/iop/lowpass.c:597 ../src/iop/shadhi.c:710 +#: ../src/iop/sharpen.c:435 msgid "radius" msgstr "radio" @@ -2689,9 +2839,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:136 #: ../build/lib/darktable/plugins/introspection_highlights.c:137 #: ../build/lib/darktable/plugins/introspection_highlights.c:240 -#: ../src/iop/bloom.c:376 ../src/iop/denoiseprofile.c:3818 -#: ../src/iop/grain.c:584 ../src/iop/hazeremoval.c:201 -#: ../src/iop/hotpixels.c:388 ../src/iop/nlmeans.c:460 ../src/iop/velvia.c:279 +#: ../build/lib/darktable/plugins/introspection_lens.cc:334 +#: ../build/lib/darktable/plugins/introspection_lens.cc:497 +#: ../src/iop/bloom.c:372 ../src/iop/denoiseprofile.c:3822 +#: ../src/iop/grain.c:602 ../src/iop/hazeremoval.c:203 +#: ../src/iop/hotpixels.c:467 ../src/iop/nlmeans.c:463 ../src/iop/velvia.c:288 msgid "strength" msgstr "intensidad" @@ -2706,41 +2858,41 @@ msgstr "aberración cromática muy acentuada" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:158 -#: ../src/common/collection.c:1507 ../src/common/color_vocabulary.c:232 -#: ../src/common/colorlabels.c:334 ../src/develop/blend_gui.c:2330 -#: ../src/develop/blend_gui.c:2378 ../src/develop/lightroom.c:834 -#: ../src/gui/gtk.c:3137 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:354 -#: ../src/iop/channelmixer.c:618 ../src/iop/channelmixer.c:628 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/colorzones.c:2263 -#: ../src/iop/temperature.c:1935 ../src/iop/temperature.c:2129 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:260 -#: ../src/libs/histogram.c:2397 +#: ../src/common/collection.c:1374 ../src/common/color_vocabulary.c:232 +#: ../src/common/colorlabels.c:333 ../src/develop/blend_gui.c:2346 +#: ../src/develop/blend_gui.c:2394 ../src/develop/lightroom.c:887 +#: ../src/gui/gtk.c:3183 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:356 +#: ../src/iop/channelmixer.c:637 ../src/iop/channelmixer.c:647 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/colorzones.c:2499 +#: ../src/iop/temperature.c:1912 ../src/iop/temperature.c:2094 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:260 +#: ../src/libs/histogram.c:2724 msgid "red" msgstr "rojo" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:159 -#: ../src/common/collection.c:1511 ../src/common/color_vocabulary.c:277 -#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2336 -#: ../src/develop/blend_gui.c:2384 ../src/develop/lightroom.c:838 -#: ../src/gui/gtk.c:3138 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:359 -#: ../src/iop/channelmixer.c:619 ../src/iop/channelmixer.c:634 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/colorzones.c:2266 -#: ../src/iop/temperature.c:1919 ../src/iop/temperature.c:1937 -#: ../src/iop/temperature.c:2130 ../src/libs/collect.c:1791 -#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2389 +#: ../src/common/collection.c:1378 ../src/common/color_vocabulary.c:277 +#: ../src/common/colorlabels.c:335 ../src/develop/blend_gui.c:2352 +#: ../src/develop/blend_gui.c:2400 ../src/develop/lightroom.c:891 +#: ../src/gui/gtk.c:3184 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:361 +#: ../src/iop/channelmixer.c:638 ../src/iop/channelmixer.c:653 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/colorzones.c:2502 +#: ../src/iop/temperature.c:1896 ../src/iop/temperature.c:1914 +#: ../src/iop/temperature.c:2095 ../src/libs/collect.c:1916 +#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2715 msgid "green" msgstr "verde" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:160 -#: ../src/common/collection.c:1513 ../src/common/color_vocabulary.c:324 -#: ../src/common/colorlabels.c:337 ../src/develop/blend_gui.c:2342 -#: ../src/develop/blend_gui.c:2390 ../src/develop/lightroom.c:840 -#: ../src/gui/gtk.c:3139 ../src/iop/bilateral.cc:364 -#: ../src/iop/channelmixer.c:620 ../src/iop/channelmixer.c:640 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/colorzones.c:2268 -#: ../src/iop/temperature.c:1939 ../src/iop/temperature.c:2131 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:263 -#: ../src/libs/histogram.c:2381 +#: ../src/common/collection.c:1380 ../src/common/color_vocabulary.c:324 +#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2358 +#: ../src/develop/blend_gui.c:2406 ../src/develop/lightroom.c:893 +#: ../src/gui/gtk.c:3185 ../src/iop/bilateral.cc:366 +#: ../src/iop/channelmixer.c:639 ../src/iop/channelmixer.c:659 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/colorzones.c:2504 +#: ../src/iop/temperature.c:1916 ../src/iop/temperature.c:2096 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:263 +#: ../src/libs/histogram.c:2706 msgid "blue" msgstr "azul" @@ -2983,7 +3135,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:303 #: ../build/lib/darktable/plugins/introspection_crop.c:61 #: ../build/lib/darktable/plugins/introspection_crop.c:134 -#: ../src/gui/gtk.c:1141 ../src/iop/atrous.c:1518 +#: ../src/gui/gtk.c:1234 ../src/iop/atrous.c:1632 msgid "left" msgstr "izquierdo" @@ -2991,7 +3143,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:307 #: ../build/lib/darktable/plugins/introspection_crop.c:67 #: ../build/lib/darktable/plugins/introspection_crop.c:138 -#: ../src/gui/accelerators.c:113 ../src/gui/gtk.c:1155 +#: ../src/gui/accelerators.c:131 ../src/gui/gtk.c:1240 msgid "top" msgstr "superior" @@ -2999,7 +3151,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:311 #: ../build/lib/darktable/plugins/introspection_crop.c:73 #: ../build/lib/darktable/plugins/introspection_crop.c:142 -#: ../src/gui/gtk.c:1148 ../src/iop/atrous.c:1517 +#: ../src/gui/gtk.c:1237 ../src/iop/atrous.c:1631 msgid "right" msgstr "derecho" @@ -3007,7 +3159,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:315 #: ../build/lib/darktable/plugins/introspection_crop.c:79 #: ../build/lib/darktable/plugins/introspection_crop.c:146 -#: ../src/gui/accelerators.c:114 ../src/gui/gtk.c:1162 +#: ../src/gui/accelerators.c:132 ../src/gui/gtk.c:1243 msgid "bottom" msgstr "inferior" @@ -3046,10 +3198,11 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:477 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:489 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:501 -#: ../src/develop/blend_gui.c:2356 ../src/develop/blend_gui.c:2404 -#: ../src/iop/atrous.c:1667 ../src/iop/channelmixerrgb.c:4457 -#: ../src/iop/channelmixerrgb.c:4573 ../src/iop/colorbalancergb.c:1895 -#: ../src/iop/colorzones.c:2402 ../src/iop/nlmeans.c:468 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 +#: ../src/develop/blend_gui.c:2372 ../src/develop/blend_gui.c:2420 +#: ../src/iop/atrous.c:1801 ../src/iop/channelmixerrgb.c:4525 +#: ../src/iop/channelmixerrgb.c:4641 ../src/iop/colorbalancergb.c:1966 +#: ../src/iop/colorzones.c:2645 ../src/iop/nlmeans.c:471 msgid "chroma" msgstr "crominancia" @@ -3069,11 +3222,11 @@ #: ../build/lib/darktable/plugins/introspection_splittoning.c:73 #: ../build/lib/darktable/plugins/introspection_splittoning.c:134 #: ../build/lib/darktable/plugins/introspection_splittoning.c:142 -#: ../src/develop/blend_gui.c:2315 ../src/develop/blend_gui.c:2349 -#: ../src/develop/blend_gui.c:2411 ../src/iop/channelmixer.c:615 -#: ../src/iop/channelmixerrgb.c:4450 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/colorbalance.c:2042 ../src/iop/colorize.c:330 -#: ../src/iop/colorreconstruction.c:1240 ../src/iop/colorzones.c:2403 +#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2365 +#: ../src/develop/blend_gui.c:2427 ../src/iop/channelmixer.c:634 +#: ../src/iop/channelmixerrgb.c:4518 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/colorbalance.c:2017 ../src/iop/colorize.c:343 +#: ../src/iop/colorreconstruction.c:1249 ../src/iop/colorzones.c:2646 msgid "hue" msgstr "tono" @@ -3100,9 +3253,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:569 #: ../build/lib/darktable/plugins/introspection_toneequal.c:156 #: ../build/lib/darktable/plugins/introspection_toneequal.c:297 -#: ../src/iop/bilat.c:469 ../src/iop/colorbalance.c:2099 -#: ../src/iop/negadoctor.c:915 ../src/iop/shadhi.c:671 -#: ../src/iop/splittoning.c:507 +#: ../src/iop/bilat.c:479 ../src/iop/colorbalance.c:2074 +#: ../src/iop/negadoctor.c:934 ../src/iop/shadhi.c:706 +#: ../src/iop/splittoning.c:503 msgid "shadows" msgstr "sombras" @@ -3114,9 +3267,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:561 #: ../build/lib/darktable/plugins/introspection_toneequal.c:180 #: ../build/lib/darktable/plugins/introspection_toneequal.c:313 -#: ../src/iop/bilat.c:463 ../src/iop/colorbalance.c:2101 -#: ../src/iop/monochrome.c:561 ../src/iop/shadhi.c:672 -#: ../src/iop/splittoning.c:514 +#: ../src/iop/bilat.c:473 ../src/iop/colorbalance.c:2076 +#: ../src/iop/monochrome.c:583 ../src/iop/shadhi.c:707 +#: ../src/iop/splittoning.c:510 msgid "highlights" msgstr "luces" @@ -3133,13 +3286,13 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:565 #: ../build/lib/darktable/plugins/introspection_toneequal.c:168 #: ../build/lib/darktable/plugins/introspection_toneequal.c:305 -#: ../src/iop/colorbalance.c:2100 +#: ../src/iop/colorbalance.c:2075 msgid "mid-tones" msgstr "tonos medios" #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:340 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:537 -#: ../src/iop/filmic.c:1576 +#: ../src/iop/filmic.c:1601 msgid "global saturation" msgstr "saturación general" @@ -3170,12 +3323,12 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:412 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:585 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:64 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:137 -#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:607 ../src/iop/bilat.c:458 -#: ../src/iop/colisa.c:304 ../src/iop/colorbalance.c:1947 -#: ../src/iop/colorbalance.c:1953 ../src/iop/filmic.c:1548 -#: ../src/iop/filmicrgb.c:4551 ../src/iop/lowpass.c:586 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:116 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:237 +#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:637 ../src/iop/bilat.c:468 +#: ../src/iop/colisa.c:298 ../src/iop/colorbalance.c:1922 +#: ../src/iop/colorbalance.c:1928 ../src/iop/filmic.c:1573 +#: ../src/iop/filmicrgb.c:4615 ../src/iop/lowpass.c:599 msgid "contrast" msgstr "contraste" @@ -3202,35 +3355,37 @@ msgid "blue-yellow contrast" msgstr "contraste azul/amarillo" -#: ../build/lib/darktable/plugins/introspection_colorin.c:148 -#: ../build/lib/darktable/plugins/introspection_colorin.c:231 +#: ../build/lib/darktable/plugins/introspection_colorin.c:150 +#: ../build/lib/darktable/plugins/introspection_colorin.c:233 msgid "gamut clipping" msgstr "recorte de gama" -#: ../build/lib/darktable/plugins/introspection_colorin.c:301 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:201 -#: ../src/common/colorspaces.c:1251 ../src/common/colorspaces.c:1484 +#: ../build/lib/darktable/plugins/introspection_colorin.c:304 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:312 +#: ../src/common/colorspaces.c:1410 ../src/common/colorspaces.c:1700 #: ../src/libs/print_settings.c:1356 msgid "sRGB" msgstr "sRGB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:302 -#: ../src/common/colorspaces.c:1260 ../src/common/colorspaces.c:1486 +#: ../build/lib/darktable/plugins/introspection_colorin.c:305 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:311 +#: ../src/common/colorspaces.c:1421 ../src/common/colorspaces.c:1702 #: ../src/libs/print_settings.c:1363 msgid "Adobe RGB (compatible)" msgstr "Adobe RGB (compatible)" -#: ../build/lib/darktable/plugins/introspection_colorin.c:303 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 -#: ../src/common/colorspaces.c:1265 ../src/common/colorspaces.c:1488 +#: ../build/lib/darktable/plugins/introspection_colorin.c:306 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 +#: ../src/common/colorspaces.c:1428 ../src/common/colorspaces.c:1704 msgid "linear Rec709 RGB" -msgstr "RGB lineal Rec. 709" +msgstr "RGB Rec. 709 lineal" -#: ../build/lib/darktable/plugins/introspection_colorin.c:304 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 -#: ../src/common/colorspaces.c:1274 ../src/common/colorspaces.c:1490 +#: ../build/lib/darktable/plugins/introspection_colorin.c:307 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:206 +#: ../src/common/colorspaces.c:1442 ../src/common/colorspaces.c:1706 msgid "linear Rec2020 RGB" -msgstr "RGB lineal Rec. 2020" +msgstr "RGB Rec. 2020 lineal" #: ../build/lib/darktable/plugins/introspection_colorize.c:65 #: ../build/lib/darktable/plugins/introspection_colorize.c:128 @@ -3256,7 +3411,7 @@ #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:127 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:45 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:92 -#: ../src/iop/shadhi.c:686 +#: ../src/iop/shadhi.c:721 msgid "spatial extent" msgstr "extensión espacial" @@ -3266,7 +3421,7 @@ msgstr "extensión de rango" #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:154 -#: ../src/iop/channelmixerrgb.c:4669 +#: ../src/iop/channelmixerrgb.c:4737 msgid "saturated colors" msgstr "colores saturados" @@ -3280,7 +3435,7 @@ #: ../build/lib/darktable/plugins/introspection_colorzones.c:233 #: ../build/lib/darktable/plugins/introspection_soften.c:66 #: ../build/lib/darktable/plugins/introspection_soften.c:121 -#: ../src/iop/atrous.c:1689 +#: ../src/iop/atrous.c:1835 msgid "mix" msgstr "mezcla" @@ -3290,33 +3445,17 @@ msgstr "modo de proceso" #: ../build/lib/darktable/plugins/introspection_colorzones.c:255 -#: ../src/develop/blend_gui.c:2294 ../src/iop/channelmixer.c:617 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/colorchecker.c:1448 -#: ../src/iop/colorize.c:349 ../src/iop/colorzones.c:2401 -#: ../src/iop/exposure.c:1239 +#: ../src/develop/blend_gui.c:2310 ../src/iop/channelmixer.c:636 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/colorchecker.c:1453 +#: ../src/iop/colorize.c:362 ../src/iop/colorzones.c:2644 +#: ../src/iop/exposure.c:1257 msgid "lightness" msgstr "luminosidad" -#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 -#: ../src/develop/blend_gui.c:2310 ../src/iop/basicadj.c:624 -#: ../src/iop/channelmixer.c:616 ../src/iop/colisa.c:306 -#: ../src/iop/colorbalance.c:2059 ../src/iop/colorbalancergb.c:1919 -#: ../src/iop/colorchecker.c:1483 ../src/iop/colorcontrast.c:90 -#: ../src/iop/colorcorrection.c:275 ../src/iop/colorize.c:343 -#: ../src/iop/lowpass.c:588 ../src/iop/soften.c:373 ../src/iop/velvia.c:84 -#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:971 -msgid "saturation" -msgstr "saturación" - #: ../build/lib/darktable/plugins/introspection_colorzones.c:267 -#: ../src/iop/atrous.c:1309 ../src/iop/atrous.c:1313 -#: ../src/iop/denoiseprofile.c:3527 ../src/iop/rawdenoise.c:755 +#: ../src/iop/atrous.c:1410 ../src/iop/atrous.c:1414 +#: ../src/iop/denoiseprofile.c:3531 ../src/iop/rawdenoise.c:771 +#: ../src/iop/sigmoid.c:292 msgid "smooth" msgstr "suavizado" @@ -3333,9 +3472,9 @@ #: ../build/lib/darktable/plugins/introspection_defringe.c:106 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:230 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:435 -#: ../src/iop/atrous.c:1572 ../src/iop/bloom.c:372 -#: ../src/iop/colorreconstruction.c:1236 ../src/iop/hotpixels.c:384 -#: ../src/iop/sharpen.c:449 +#: ../src/iop/atrous.c:1695 ../src/iop/bloom.c:368 +#: ../src/iop/colorreconstruction.c:1245 ../src/iop/hotpixels.c:463 +#: ../src/iop/sharpen.c:444 msgid "threshold" msgstr "umbral" @@ -3470,7 +3609,7 @@ #. history #: ../build/lib/darktable/plugins/introspection_demosaic.c:232 -#: ../src/common/collection.c:1526 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1394 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "basic" msgstr "básico" @@ -3543,12 +3682,9 @@ msgid "upgrade profiled transform" msgstr "Actualización del modelo" -#. -#. * Color mode combo box -#. #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:257 #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:388 -#: ../src/imageio/format/avif.c:786 ../src/libs/colorpicker.c:584 +#: ../src/libs/colorpicker.c:659 msgid "color mode" msgstr "modo de color" @@ -3573,7 +3709,7 @@ msgstr "calcular varianza" #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:410 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:266 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:292 msgid "RGB" msgstr "RGB" @@ -3584,7 +3720,7 @@ #. two more sharpness (standard & strong) #: ../build/lib/darktable/plugins/introspection_diffuse.c:123 #: ../build/lib/darktable/plugins/introspection_diffuse.c:248 -#: ../src/iop/atrous.c:1564 ../src/iop/diffuse.c:630 ../src/iop/highpass.c:381 +#: ../src/iop/atrous.c:1685 ../src/iop/diffuse.c:657 ../src/iop/highpass.c:376 msgid "sharpness" msgstr "enfoque" @@ -3729,7 +3865,7 @@ #: ../build/lib/darktable/plugins/introspection_exposure.c:85 #: ../build/lib/darktable/plugins/introspection_exposure.c:150 msgid "target level" -msgstr "nivel de objetivo" +msgstr "valor de referencia" #: ../build/lib/darktable/plugins/introspection_exposure.c:91 #: ../build/lib/darktable/plugins/introspection_exposure.c:154 @@ -3748,7 +3884,7 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:212 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:423 -#: ../src/iop/filmic.c:1489 +#: ../src/iop/filmic.c:1514 msgid "middle gray luminance" msgstr "luminancia del gris medio" @@ -3756,13 +3892,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:427 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:97 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:166 -#: ../src/iop/filmic.c:1514 +#: ../src/iop/filmic.c:1539 msgid "black relative exposure" msgstr "exposición negra relativa" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:224 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:431 -#: ../src/iop/filmic.c:1501 +#: ../src/iop/filmic.c:1526 msgid "white relative exposure" msgstr "exposición blanca relativa" @@ -3793,19 +3929,19 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:266 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:459 -#: ../src/iop/filmic.c:1646 +#: ../src/iop/filmic.c:1671 msgid "target middle gray" msgstr "gris medio de destino" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:272 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:463 -#: ../src/iop/filmic.c:1637 +#: ../src/iop/filmic.c:1662 msgid "target black luminance" msgstr "luminancia negra de destino" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:278 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:467 -#: ../src/iop/filmic.c:1655 +#: ../src/iop/filmic.c:1680 msgid "target white luminance" msgstr "luminancia blanca de destino" @@ -3813,13 +3949,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:471 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:69 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:140 -#: ../src/libs/masks.c:106 +#: ../src/libs/masks.c:107 msgid "hardness" msgstr "transición" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:302 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:483 -#: ../src/iop/filmic.c:1586 ../src/iop/filmicrgb.c:4729 +#: ../src/iop/filmic.c:1611 ../src/iop/filmicrgb.c:4793 msgid "extreme luminance saturation" msgstr "saturación de luminancia extrema" @@ -3890,11 +4026,11 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:549 #: ../build/lib/darktable/plugins/introspection_toneequal.c:371 -#: ../src/common/database.c:2785 ../src/common/variables.c:705 -#: ../src/develop/imageop_gui.c:209 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 +#: ../src/common/variables.c:714 ../src/develop/imageop_gui.c:209 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 msgid "no" msgstr "no" @@ -3996,9 +4132,25 @@ msgid "density" msgstr "densidad" +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 +#: ../src/develop/blend_gui.c:2326 ../src/iop/basicadj.c:654 +#: ../src/iop/channelmixer.c:635 ../src/iop/colisa.c:300 +#: ../src/iop/colorbalance.c:2034 ../src/iop/colorbalancergb.c:1990 +#: ../src/iop/colorchecker.c:1488 ../src/iop/colorcontrast.c:82 +#: ../src/iop/colorcorrection.c:268 ../src/iop/colorize.c:356 +#: ../src/iop/lowpass.c:601 ../src/iop/soften.c:368 ../src/iop/velvia.c:75 +#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:1058 +msgid "saturation" +msgstr "saturación" + #: ../build/lib/darktable/plugins/introspection_grain.c:58 #: ../build/lib/darktable/plugins/introspection_grain.c:117 -#: ../src/iop/bilat.c:450 +#: ../src/iop/bilat.c:460 msgid "coarseness" msgstr "ruido" @@ -4011,7 +4163,7 @@ #: ../build/lib/darktable/plugins/introspection_highlights.c:143 #: ../build/lib/darktable/plugins/introspection_highlights.c:244 -#: ../src/views/darkroom.c:2406 +#: ../src/views/darkroom.c:2245 msgid "clipping threshold" msgstr "umbral superior" @@ -4147,168 +4299,172 @@ msgid "detect by 3 neighbors" msgstr "detección por 3 pixeles cercanos" -#: ../build/lib/darktable/plugins/introspection_lens.cc:162 -#: ../build/lib/darktable/plugins/introspection_lens.cc:337 +#: ../build/lib/darktable/plugins/introspection_lens.cc:190 +#: ../build/lib/darktable/plugins/introspection_lens.cc:401 msgid "correction method" msgstr "modo de corrección" #. Page CORRECTIONS -#: ../build/lib/darktable/plugins/introspection_lens.cc:168 -#: ../build/lib/darktable/plugins/introspection_lens.cc:341 -#: ../src/iop/negadoctor.c:900 +#: ../build/lib/darktable/plugins/introspection_lens.cc:196 +#: ../build/lib/darktable/plugins/introspection_lens.cc:405 +#: ../src/iop/negadoctor.c:919 msgid "corrections" msgstr "correcciones" #. mode choice -#. Add check to control whether the style is to replace or append the current module -#: ../build/lib/darktable/plugins/introspection_lens.cc:174 -#: ../build/lib/darktable/plugins/introspection_lens.cc:345 +#: ../build/lib/darktable/plugins/introspection_lens.cc:202 +#: ../build/lib/darktable/plugins/introspection_lens.cc:409 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:128 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:219 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:51 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:118 -#: ../src/iop/bilat.c:428 ../src/iop/colorbalance.c:1909 -#: ../src/iop/denoiseprofile.c:3806 ../src/iop/exposure.c:1157 -#: ../src/iop/levels.c:684 ../src/iop/profile_gamma.c:668 -#: ../src/libs/copy_history.c:399 ../src/libs/export.c:1262 -#: ../src/libs/image.c:597 ../src/libs/print_settings.c:2875 -#: ../src/libs/styles.c:846 ../src/views/darkroom.c:2387 +#: ../src/develop/blend_gui.c:3546 ../src/iop/bilat.c:438 +#: ../src/iop/colorbalance.c:1884 ../src/iop/denoiseprofile.c:3810 +#: ../src/iop/exposure.c:1175 ../src/iop/levels.c:700 +#: ../src/iop/profile_gamma.c:682 ../src/libs/copy_history.c:399 +#: ../src/libs/export.c:1376 ../src/libs/image.c:666 +#: ../src/libs/print_settings.c:2875 ../src/libs/styles.c:850 +#: ../src/views/darkroom.c:2226 msgid "mode" msgstr "modo" -#: ../build/lib/darktable/plugins/introspection_lens.cc:210 -#: ../build/lib/darktable/plugins/introspection_lens.cc:369 -#: ../src/iop/lens.cc:3820 +#: ../build/lib/darktable/plugins/introspection_lens.cc:238 +#: ../build/lib/darktable/plugins/introspection_lens.cc:433 +#: ../src/iop/lens.cc:4474 msgid "target geometry" -msgstr "Geometría del objetivo" +msgstr "geometría del objetivo" -#: ../build/lib/darktable/plugins/introspection_lens.cc:240 -#: ../build/lib/darktable/plugins/introspection_lens.cc:389 +#: ../build/lib/darktable/plugins/introspection_lens.cc:268 +#: ../build/lib/darktable/plugins/introspection_lens.cc:453 msgid "TCA overwrite" msgstr "reemplazar ACT" -#: ../build/lib/darktable/plugins/introspection_lens.cc:246 -#: ../build/lib/darktable/plugins/introspection_lens.cc:393 +#: ../build/lib/darktable/plugins/introspection_lens.cc:274 +#: ../build/lib/darktable/plugins/introspection_lens.cc:298 +#: ../build/lib/darktable/plugins/introspection_lens.cc:457 +#: ../build/lib/darktable/plugins/introspection_lens.cc:473 msgid "TCA red" msgstr "ACT rojo" -#: ../build/lib/darktable/plugins/introspection_lens.cc:252 -#: ../build/lib/darktable/plugins/introspection_lens.cc:397 +#: ../build/lib/darktable/plugins/introspection_lens.cc:280 +#: ../build/lib/darktable/plugins/introspection_lens.cc:304 +#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:477 msgid "TCA blue" msgstr "ACT azul" -#: ../build/lib/darktable/plugins/introspection_lens.cc:258 -#: ../build/lib/darktable/plugins/introspection_lens.cc:401 -msgid "distortion fine-tune" -msgstr "ajuste de corrección de distorsión" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:264 -#: ../build/lib/darktable/plugins/introspection_lens.cc:405 -msgid "vignetting fine-tune" -msgstr "configuración del viñeteado" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:270 -#: ../build/lib/darktable/plugins/introspection_lens.cc:409 -msgid "TCA red fine-tune" -msgstr "optimizar ACT rojo" +#: ../build/lib/darktable/plugins/introspection_lens.cc:286 +#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +msgid "distortion" +msgstr "distorsión" -#: ../build/lib/darktable/plugins/introspection_lens.cc:276 -#: ../build/lib/darktable/plugins/introspection_lens.cc:413 -msgid "TCA blue fine-tune" -msgstr "optimizar ACT azul" +#: ../build/lib/darktable/plugins/introspection_lens.cc:292 +#: ../build/lib/darktable/plugins/introspection_lens.cc:469 +#: ../src/iop/vignette.c:114 +msgid "vignetting" +msgstr "viñeteado" -#: ../build/lib/darktable/plugins/introspection_lens.cc:282 -#: ../build/lib/darktable/plugins/introspection_lens.cc:417 +#: ../build/lib/darktable/plugins/introspection_lens.cc:310 +#: ../build/lib/darktable/plugins/introspection_lens.cc:481 msgid "scale fine-tune" msgstr "ajustar escala" -#: ../build/lib/darktable/plugins/introspection_lens.cc:294 -#: ../build/lib/darktable/plugins/introspection_lens.cc:425 +#: ../build/lib/darktable/plugins/introspection_lens.cc:322 +#: ../build/lib/darktable/plugins/introspection_lens.cc:489 msgid "image scale" msgstr "Escala de imagen" -#: ../build/lib/darktable/plugins/introspection_lens.cc:439 +#: ../build/lib/darktable/plugins/introspection_lens.cc:346 +#: ../build/lib/darktable/plugins/introspection_lens.cc:505 +msgid "steepness" +msgstr "gradiente" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:527 msgid "embedded metadata" msgstr "metadatos incluidos" -#: ../build/lib/darktable/plugins/introspection_lens.cc:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:528 msgid "Lensfun database" -msgstr "Base de datos de Lensfun" +msgstr "base de datos de Lensfun" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:529 +msgid "only manual vignette" +msgstr "sólo viñeteado manual" #. get nice text for bounds #. Side-border hide/show -#: ../build/lib/darktable/plugins/introspection_lens.cc:445 -#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2367 -#: ../src/gui/accelerators.c:2447 ../src/gui/gtk.c:1204 ../src/gui/gtk.c:3136 -#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3709 -#: ../src/iop/rawdenoise.c:893 ../src/libs/collect.c:3066 -#: ../src/libs/filtering.c:1459 ../src/libs/filters/colors.c:157 +#: ../build/lib/darktable/plugins/introspection_lens.cc:534 +#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2592 +#: ../src/gui/accelerators.c:2674 ../src/gui/gtk.c:1282 ../src/gui/gtk.c:3182 +#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3713 +#: ../src/iop/rawdenoise.c:909 ../src/libs/collect.c:3413 +#: ../src/libs/filtering.c:1521 ../src/libs/filters/colors.c:157 #: ../src/libs/filters/colors.c:265 ../src/libs/filters/rating.c:211 msgid "all" msgstr "todas" -#: ../build/lib/darktable/plugins/introspection_lens.cc:446 +#: ../build/lib/darktable/plugins/introspection_lens.cc:535 msgid "distortion & TCA" msgstr "distorsión y ACT" -#: ../build/lib/darktable/plugins/introspection_lens.cc:447 +#: ../build/lib/darktable/plugins/introspection_lens.cc:536 msgid "distortion & vignetting" msgstr "distorsión y viñeteado" -#: ../build/lib/darktable/plugins/introspection_lens.cc:448 +#: ../build/lib/darktable/plugins/introspection_lens.cc:537 msgid "TCA & vignetting" msgstr "ACT y viñeteado" -#: ../build/lib/darktable/plugins/introspection_lens.cc:449 +#: ../build/lib/darktable/plugins/introspection_lens.cc:538 msgid "only distortion" msgstr "sólo distorsión" -#: ../build/lib/darktable/plugins/introspection_lens.cc:450 +#: ../build/lib/darktable/plugins/introspection_lens.cc:539 msgid "only TCA" msgstr "sólo ACT" -#: ../build/lib/darktable/plugins/introspection_lens.cc:451 +#: ../build/lib/darktable/plugins/introspection_lens.cc:540 msgid "only vignetting" msgstr "sólo viñeteado" -#: ../build/lib/darktable/plugins/introspection_lens.cc:455 -#: ../src/libs/modulegroups.c:2318 +#: ../build/lib/darktable/plugins/introspection_lens.cc:544 +#: ../src/libs/modulegroups.c:2302 msgid "correct" msgstr "corrección" -#: ../build/lib/darktable/plugins/introspection_lens.cc:456 +#: ../build/lib/darktable/plugins/introspection_lens.cc:545 msgid "distort" msgstr "distorsión" -#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:550 msgid "rectilinear" msgstr "rectilínea" -#: ../build/lib/darktable/plugins/introspection_lens.cc:462 +#: ../build/lib/darktable/plugins/introspection_lens.cc:551 msgid "fisheye" msgstr "ojo de pez" -#: ../build/lib/darktable/plugins/introspection_lens.cc:463 +#: ../build/lib/darktable/plugins/introspection_lens.cc:552 msgid "panoramic" msgstr "panorámica" -#: ../build/lib/darktable/plugins/introspection_lens.cc:464 +#: ../build/lib/darktable/plugins/introspection_lens.cc:553 msgid "equirectangular" msgstr "equirrectangular" -#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +#: ../build/lib/darktable/plugins/introspection_lens.cc:554 msgid "orthographic" msgstr "ortográfica" -#: ../build/lib/darktable/plugins/introspection_lens.cc:466 +#: ../build/lib/darktable/plugins/introspection_lens.cc:555 msgid "stereographic" msgstr "estereográfica" -#: ../build/lib/darktable/plugins/introspection_lens.cc:467 +#: ../build/lib/darktable/plugins/introspection_lens.cc:556 msgid "equisolid angle" msgstr "ángulo sólido constante" -#: ../build/lib/darktable/plugins/introspection_lens.cc:468 +#: ../build/lib/darktable/plugins/introspection_lens.cc:557 msgid "Thoby fisheye" msgstr "ojo de pez Thoby" @@ -4318,8 +4474,8 @@ #. move left/right/up/down #: ../build/lib/darktable/plugins/introspection_liquify.c:429 -#: ../src/views/darkroom.c:2282 ../src/views/darkroom.c:2676 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:765 +#: ../src/views/darkroom.c:2121 ../src/views/darkroom.c:2522 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:765 #: ../src/views/lighttable.c:774 ../src/views/lighttable.c:1246 #: ../src/views/lighttable.c:1250 ../src/views/lighttable.c:1254 #: ../src/views/lighttable.c:1258 ../src/views/lighttable.c:1262 @@ -4331,8 +4487,8 @@ msgstr "linea" #: ../build/lib/darktable/plugins/introspection_liquify.c:431 -#: ../src/iop/basecurve.c:2186 ../src/iop/rgbcurve.c:1387 -#: ../src/iop/tonecurve.c:1149 +#: ../src/iop/basecurve.c:2207 ../src/iop/rgbcurve.c:1387 +#: ../src/iop/tonecurve.c:1171 msgid "curve" msgstr "curva" @@ -4368,28 +4524,33 @@ msgid "bilateral filter" msgstr "reducción de ruido (filtro bilateral)" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:76 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:163 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:77 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:164 msgid "application color space" msgstr "espacio de color de la aplicación" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 msgid "Adobe RGB" msgstr "Adobe RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 msgid "gamma Rec709 RGB" msgstr "RGB Rec. 709 gamma" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:209 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:207 +#: ../src/common/colorspaces.c:1486 ../src/common/colorspaces.c:1740 +msgid "linear ProPhoto RGB" +msgstr "ProPhoto RGB lineal" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 msgid "tetrahedral" msgstr "tetraedro" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:210 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:212 msgid "trilinear" msgstr "trilineal" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:213 msgid "pyramid" msgstr "piramidal" @@ -4410,7 +4571,7 @@ #: ../build/lib/darktable/plugins/introspection_negadoctor.c:144 #: ../build/lib/darktable/plugins/introspection_negadoctor.c:239 -#: ../src/iop/negadoctor.c:992 +#: ../src/iop/negadoctor.c:1011 msgid "paper grade (gamma)" msgstr "gramaje de papel (gamma)" @@ -4425,15 +4586,57 @@ msgstr "ajuste de exposición de la impresión" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:261 -#: ../src/iop/negadoctor.c:417 +#: ../src/iop/negadoctor.c:431 msgid "black and white film" msgstr "película blanco y negro" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:262 -#: ../src/iop/negadoctor.c:402 +#: ../src/iop/negadoctor.c:416 msgid "color film" msgstr "película de color" +#: ../build/lib/darktable/plugins/introspection_primaries.c:75 +#: ../build/lib/darktable/plugins/introspection_primaries.c:160 +#: ../src/iop/primaries.c:406 +msgid "tint hue" +msgstr "matiz del tinte" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:81 +#: ../build/lib/darktable/plugins/introspection_primaries.c:164 +#: ../src/iop/primaries.c:413 +msgid "tint purity" +msgstr "pureza del tinte" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:87 +#: ../build/lib/darktable/plugins/introspection_primaries.c:168 +msgid "red hue" +msgstr "matiz del rojo" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:93 +#: ../build/lib/darktable/plugins/introspection_primaries.c:172 +msgid "red purity" +msgstr "pureza del rojo" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:99 +#: ../build/lib/darktable/plugins/introspection_primaries.c:176 +msgid "green hue" +msgstr "matiz del verde" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:105 +#: ../build/lib/darktable/plugins/introspection_primaries.c:180 +msgid "green purity" +msgstr "pureza del verde" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:111 +#: ../build/lib/darktable/plugins/introspection_primaries.c:184 +msgid "blue hue" +msgstr "matiz del azul" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:117 +#: ../build/lib/darktable/plugins/introspection_primaries.c:188 +msgid "blue purity" +msgstr "pureza del azul" + #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:85 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:158 msgid "dynamic range" @@ -4446,7 +4649,7 @@ #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:103 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:170 -#: ../src/iop/filmic.c:1526 +#: ../src/iop/filmic.c:1551 msgid "safety factor" msgstr "factor de seguridad" @@ -4455,7 +4658,7 @@ msgstr "logarítmica" #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:185 -#: ../src/iop/profile_gamma.c:625 +#: ../src/iop/profile_gamma.c:639 msgid "gamma" msgstr "gamma" @@ -4493,7 +4696,7 @@ #: ../build/lib/darktable/plugins/introspection_rawprepare.c:106 #: ../build/lib/darktable/plugins/introspection_rawprepare.c:179 -#: ../src/iop/rawprepare.c:946 +#: ../src/iop/rawprepare.c:954 msgid "white point" msgstr "punto blanco" @@ -4509,9 +4712,9 @@ #. exposure #: ../build/lib/darktable/plugins/introspection_relight.c:43 #: ../build/lib/darktable/plugins/introspection_relight.c:98 -#: ../src/common/collection.c:720 ../src/gui/preferences.c:836 -#: ../src/gui/presets.c:684 ../src/iop/basicadj.c:598 ../src/iop/exposure.c:122 -#: ../src/iop/exposure.c:1117 ../src/libs/metadata_view.c:141 +#: ../src/common/collection.c:633 ../src/gui/preferences.c:834 +#: ../src/gui/presets.c:698 ../src/iop/basicadj.c:628 ../src/iop/exposure.c:122 +#: ../src/iop/exposure.c:1135 ../src/libs/metadata_view.c:143 msgid "exposure" msgstr "exposición" @@ -4522,9 +4725,9 @@ #: ../build/lib/darktable/plugins/introspection_retouch.c:285 #: ../build/lib/darktable/plugins/introspection_retouch.c:426 -#: ../src/iop/basicadj.c:620 ../src/iop/channelmixerrgb.c:4617 -#: ../src/iop/colisa.c:305 ../src/iop/lowpass.c:587 ../src/iop/soften.c:377 -#: ../src/iop/vignette.c:970 ../src/libs/history.c:963 +#: ../src/iop/basicadj.c:650 ../src/iop/channelmixerrgb.c:4685 +#: ../src/iop/colisa.c:299 ../src/iop/lowpass.c:600 ../src/iop/soften.c:372 +#: ../src/iop/vignette.c:1057 ../src/libs/history.c:963 msgid "brightness" msgstr "brillo" @@ -4534,7 +4737,7 @@ msgstr "max_iter" #: ../build/lib/darktable/plugins/introspection_retouch.c:444 -#: ../src/libs/metadata_view.c:329 +#: ../src/libs/metadata_view.c:333 msgid "unused" msgstr "sin usar" @@ -4547,12 +4750,12 @@ msgstr "saneado" #: ../build/lib/darktable/plugins/introspection_retouch.c:447 -#: ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2051 msgid "blur" msgstr "desenfoque" #: ../build/lib/darktable/plugins/introspection_retouch.c:448 -#: ../src/iop/retouch.c:1865 +#: ../src/iop/retouch.c:2049 msgid "fill" msgstr "relleno" @@ -4565,9 +4768,9 @@ msgstr "borrar" #: ../build/lib/darktable/plugins/introspection_retouch.c:458 -#: ../src/gui/presets.c:59 ../src/iop/watermark.c:1298 -#: ../src/libs/colorpicker.c:291 ../src/libs/image.c:612 -#: ../src/libs/modulegroups.c:2317 +#: ../src/gui/presets.c:61 ../src/iop/watermark.c:1346 +#: ../src/libs/colorpicker.c:320 ../src/libs/image.c:683 +#: ../src/libs/modulegroups.c:2301 msgid "color" msgstr "color" @@ -4603,45 +4806,93 @@ msgid "highlights color adjustment" msgstr "reconstrucción de luces" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:70 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:141 -#: ../src/gui/accelerators.c:85 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:122 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:241 +#: ../src/gui/accelerators.c:101 msgid "skew" msgstr "sesgo" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:76 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:145 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:128 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:245 msgid "target white" msgstr "blanco destino" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:82 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:149 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:134 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:249 msgid "target black" msgstr "negro destino" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:88 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:153 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:140 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:253 msgid "color processing" msgstr "tratamiento de color" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:94 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:157 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:146 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:257 msgid "preserve hue" msgstr "preservar tono" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:171 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:152 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:261 +msgid "red attenuation" +msgstr "atenuación del rojo" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:158 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:265 +msgid "red rotation" +msgstr "rotación del rojo" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:164 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:269 +msgid "green attenuation" +msgstr "atenuación del verde" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:170 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:273 +msgid "green rotation" +msgstr "rotación del verde" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:176 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:277 +msgid "blue attenuation" +msgstr "atenuación del azul" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:182 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:281 +msgid "blue rotation" +msgstr "rotación del azul" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:188 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:285 +msgid "recover purity" +msgstr "mejorar pureza" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:194 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:289 +msgid "base primaries" +msgstr "colores básicos primarios" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:303 msgid "per channel" msgstr "por canal" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:172 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:304 msgid "RGB ratio" msgstr "relación RGB" -#: ../build/lib/darktable/plugins/introspection_temperature.c:66 -#: ../build/lib/darktable/plugins/introspection_temperature.c:121 -#: ../src/iop/temperature.c:1941 -msgid "emerald" -msgstr "esmeralda" +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:308 +#: ../src/common/colorspaces.c:1377 ../src/common/colorspaces.c:1734 +msgid "work profile" +msgstr "perfil de trabajo" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:309 +msgid "Rec2020" +msgstr "Rec. 2020" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:310 +#: ../src/common/colorspaces.c:1750 +msgid "Display P3" +msgstr "Display P3" #: ../build/lib/darktable/plugins/introspection_tonecurve.c:135 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:232 @@ -4735,7 +4986,7 @@ #: ../build/lib/darktable/plugins/introspection_toneequal.c:374 msgid "averaged EIGF" -msgstr "FGIE promedio" +msgstr "FGIE promediado" #: ../build/lib/darktable/plugins/introspection_toneequal.c:375 msgid "EIGF" @@ -4763,13 +5014,13 @@ #: ../build/lib/darktable/plugins/introspection_tonemap.cc:39 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:88 -#: ../src/iop/rgbcurve.c:184 ../src/iop/tonecurve.c:539 +#: ../src/iop/rgbcurve.c:186 ../src/iop/tonecurve.c:560 msgid "contrast compression" msgstr "compresión del contraste" #: ../build/lib/darktable/plugins/introspection_vibrance.c:33 #: ../build/lib/darktable/plugins/introspection_vibrance.c:76 -#: ../src/iop/basicadj.c:627 ../src/iop/vibrance.c:67 +#: ../src/iop/basicadj.c:657 ../src/iop/vibrance.c:67 msgid "vibrance" msgstr "intensidad" @@ -4805,7 +5056,7 @@ #: ../build/lib/darktable/plugins/introspection_vignette.c:146 #: ../build/lib/darktable/plugins/introspection_vignette.c:237 -#: ../src/iop/vignette.c:978 +#: ../src/iop/vignette.c:1066 msgid "shape" msgstr "figura" @@ -4835,16 +5086,16 @@ #: ../build/lib/darktable/plugins/introspection_watermark.c:148 #: ../build/lib/darktable/plugins/introspection_watermark.c:273 msgid "scale marker to" -msgstr "marcador de escala a" +msgstr "referencia de escala" #: ../build/lib/darktable/plugins/introspection_watermark.c:154 #: ../build/lib/darktable/plugins/introspection_watermark.c:277 msgid "scale marker reference" -msgstr "referencia del marcador de escala" +msgstr "referente de la marca" #: ../build/lib/darktable/plugins/introspection_watermark.c:323 #: ../src/imageio/format/tiff.c:125 ../src/imageio/format/xcf.c:159 -#: ../src/iop/borders.c:947 +#: ../src/iop/borders.c:960 msgid "image" msgstr "imagen" @@ -4856,15 +5107,9 @@ msgid "smaller border" msgstr "borde corto" -#: ../build/lib/darktable/plugins/introspection_watermark.c:326 -#: ../src/libs/export.c:1135 ../src/libs/metadata_view.c:148 -#: ../src/libs/print_settings.c:2541 -msgid "height" -msgstr "altura" - #: ../build/lib/darktable/plugins/introspection_watermark.c:327 msgid "advanced options" -msgstr "Opciones avanzadas" +msgstr "opciones avanzadas" #: ../build/lib/darktable/plugins/introspection_watermark.c:331 msgid "image width" @@ -4884,29 +5129,29 @@ #: ../build/lib/darktable/plugins/introspection_watermark.c:338 msgid "marker width" -msgstr "ancho de la marca" +msgstr "anchura" #: ../build/lib/darktable/plugins/introspection_watermark.c:339 msgid "marker height" -msgstr "alto de la marca" +msgstr "altura" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:6 +#: ../build/bin/tools/darktable_authors.h:6 msgid "developers" msgstr "Desarrolladores:" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:11 +#: ../build/bin/tools/darktable_authors.h:11 msgid "translators" msgstr "Traductores:" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:16 +#: ../build/bin/tools/darktable_authors.h:16 msgid "contributors" msgstr "Colaboradores:" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:21 +#: ../build/bin/tools/darktable_authors.h:21 msgid "rawspeed contributors" msgstr "Colaboradores de RawSpeed:" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:26 +#: ../build/bin/tools/darktable_authors.h:26 msgid "integration contributors" msgstr "Colaboradores en la integración:" @@ -4974,90 +5219,104 @@ msgid "Print your images" msgstr "Imprimir las imágenes" -#: ../src/bauhaus/bauhaus.c:752 ../src/bauhaus/bauhaus.c:3689 +#: ../src/bauhaus/bauhaus.c:845 ../src/bauhaus/bauhaus.c:3957 msgid "sliders" msgstr "Control deslizante" -#: ../src/bauhaus/bauhaus.c:753 ../src/bauhaus/bauhaus.c:3694 +#: ../src/bauhaus/bauhaus.c:847 ../src/bauhaus/bauhaus.c:3962 msgid "dropdowns" msgstr "Lista deplegable" -#: ../src/bauhaus/bauhaus.c:754 ../src/bauhaus/bauhaus.c:3699 +#: ../src/bauhaus/bauhaus.c:849 ../src/bauhaus/bauhaus.c:3967 msgid "buttons" msgstr "botones" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button on" msgstr "botón activado" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button off" msgstr "botón desactivado" -#: ../src/bauhaus/bauhaus.c:3406 +#: ../src/bauhaus/bauhaus.c:3624 msgid "button pressed" msgstr "botón pulsado" -#: ../src/bauhaus/bauhaus.c:3623 +#: ../src/bauhaus/bauhaus.c:3862 msgid "not that many sliders" msgstr "No hay suficientes controles deslizantes" -#: ../src/bauhaus/bauhaus.c:3633 +#: ../src/bauhaus/bauhaus.c:3876 msgid "not that many dropdowns" msgstr "No hay suficientes listas deplegables" -#: ../src/bauhaus/bauhaus.c:3648 +#: ../src/bauhaus/bauhaus.c:3895 msgid "not that many buttons" msgstr "No hay suficientes botones" -#: ../src/bauhaus/bauhaus.c:3653 ../src/gui/accelerators.c:348 +#: ../src/bauhaus/bauhaus.c:3900 ../src/gui/accelerators.c:389 msgid "value" msgstr "valor" -#: ../src/bauhaus/bauhaus.c:3654 ../src/bauhaus/bauhaus.c:3660 -#: ../src/gui/accelerators.c:326 +#: ../src/bauhaus/bauhaus.c:3901 ../src/bauhaus/bauhaus.c:3907 +#: ../src/gui/accelerators.c:368 msgid "button" msgstr "botón" -#: ../src/bauhaus/bauhaus.c:3655 +#: ../src/bauhaus/bauhaus.c:3902 msgid "force" msgstr "fuerza" -#: ../src/bauhaus/bauhaus.c:3656 ../src/libs/navigation.c:187 -#: ../src/libs/navigation.c:199 +#: ../src/bauhaus/bauhaus.c:3903 ../src/libs/navigation.c:190 +#: ../src/libs/navigation.c:202 msgid "zoom" msgstr "ampliación" -#: ../src/bauhaus/bauhaus.c:3659 +#: ../src/bauhaus/bauhaus.c:3906 ../src/libs/select.c:40 msgid "selection" msgstr "Selección" -#: ../src/bauhaus/bauhaus.c:3678 +#: ../src/bauhaus/bauhaus.c:3946 msgid "slider" msgstr "Control deslizante" -#: ../src/bauhaus/bauhaus.c:3683 +#: ../src/bauhaus/bauhaus.c:3951 msgid "dropdown" msgstr "Lista deplegable" -#: ../src/chart/main.c:504 ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 ../src/gui/accelerators.c:2278 -#: ../src/gui/accelerators.c:2355 ../src/gui/accelerators.c:2407 -#: ../src/gui/accelerators.c:2435 ../src/gui/accelerators.c:2495 -#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1043 -#: ../src/gui/preferences.c:1082 ../src/gui/presets.c:420 -#: ../src/gui/presets.c:563 ../src/gui/styles_dialog.c:519 -#: ../src/imageio/storage/disk.c:123 ../src/imageio/storage/gallery.c:110 -#: ../src/imageio/storage/latex.c:109 ../src/iop/lut3d.c:1546 -#: ../src/libs/collect.c:408 ../src/libs/copy_history.c:115 -#: ../src/libs/geotagging.c:928 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/styles.c:392 ../src/libs/styles.c:527 -#: ../src/libs/tagging.c:2489 ../src/libs/tagging.c:2525 +#: ../src/chart/main.c:504 ../src/common/database.c:3372 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 ../src/gui/accelerators.c:2497 +#: ../src/gui/accelerators.c:2579 ../src/gui/accelerators.c:2632 +#: ../src/gui/accelerators.c:2661 ../src/gui/accelerators.c:2723 +#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1081 ../src/gui/presets.c:422 +#: ../src/gui/presets.c:565 ../src/gui/styles_dialog.c:526 +#: ../src/imageio/storage/disk.c:198 ../src/imageio/storage/gallery.c:150 +#: ../src/imageio/storage/latex.c:146 ../src/iop/lut3d.c:1560 +#: ../src/libs/collect.c:425 ../src/libs/collect.c:3242 +#: ../src/libs/copy_history.c:115 ../src/libs/export_metadata.c:276 +#: ../src/libs/geotagging.c:929 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1711 +#: ../src/libs/metadata.c:462 ../src/libs/metadata_view.c:1222 +#: ../src/libs/recentcollect.c:228 ../src/libs/modulegroups.c:3466 +#: ../src/libs/styles.c:392 ../src/libs/styles.c:439 ../src/libs/styles.c:529 +#: ../src/libs/styles.c:624 ../src/libs/tagging.c:1488 +#: ../src/libs/tagging.c:1579 ../src/libs/tagging.c:1670 +#: ../src/libs/tagging.c:1806 ../src/libs/tagging.c:2085 +#: ../src/libs/tagging.c:2520 ../src/libs/tagging.c:2556 +#: ../src/libs/tagging.c:3502 msgid "_cancel" msgstr "_cancelar" -#: ../src/chart/main.c:504 ../src/gui/preferences.c:1082 -#: ../src/gui/styles_dialog.c:520 ../src/libs/styles.c:392 +#: ../src/chart/main.c:504 ../src/gui/preferences.c:1081 +#: ../src/gui/styles_dialog.c:527 ../src/libs/collect.c:3243 +#: ../src/libs/export_metadata.c:277 ../src/libs/metadata.c:463 +#: ../src/libs/metadata_view.c:1223 ../src/libs/recentcollect.c:229 +#: ../src/libs/styles.c:392 ../src/libs/tagging.c:1671 +#: ../src/libs/tagging.c:1807 ../src/libs/tagging.c:2086 +#: ../src/libs/tagging.c:3503 msgid "_save" msgstr "_guardar" @@ -5071,65 +5330,65 @@ "promedio dE: %.02f\n" "máx. dE: %.02f" -#: ../src/cli/main.c:247 +#: ../src/cli/main.c:270 msgid "TODO: sorry, due to API restrictions we currently cannot set the BPP to" msgstr "" "Aún por realizar: Debido a restricciones de la interfaz de programación de " "aplicaciones, no es posible aún configurar los bits por pixeles." -#: ../src/cli/main.c:259 +#: ../src/cli/main.c:282 msgid "unknown option for --hq" msgstr "Opción desconocida para --hq" -#: ../src/cli/main.c:275 +#: ../src/cli/main.c:298 msgid "unknown option for --export_masks" msgstr "Opción desconocida para --export_masks" -#: ../src/cli/main.c:291 +#: ../src/cli/main.c:314 msgid "unknown option for --upscale" msgstr "Opción desconocida para --upscale" -#: ../src/cli/main.c:316 +#: ../src/cli/main.c:339 msgid "unknown option for --apply-custom-presets" msgstr "Opción desconocida para --apply-custom-presets" -#: ../src/cli/main.c:327 +#: ../src/cli/main.c:350 msgid "too long ext for --out-ext" msgstr "Extensión demasiado larga para --out-ext" -#: ../src/cli/main.c:344 +#: ../src/cli/main.c:367 #, c-format msgid "notice: input file or dir '%s' doesn't exist, skipping\n" msgstr "" "Aviso: el directorio «%s» o el archivo de entrada no existe; omitiendo...\n" -#: ../src/cli/main.c:353 +#: ../src/cli/main.c:376 #, c-format msgid "incorrect ICC type for --icc-type: '%s'\n" msgstr "Tipo de ICC incorrecto para --icc-type: «%s»\n" -#: ../src/cli/main.c:369 +#: ../src/cli/main.c:392 #, c-format msgid "notice: ICC file '%s' doesn't exist, skipping\n" msgstr "Aviso: el archivo ICC «%s» no existe; omitiendo...\n" -#: ../src/cli/main.c:378 +#: ../src/cli/main.c:401 #, c-format msgid "incorrect ICC intent for --icc-intent: '%s'\n" msgstr "Objetivo de ICC incorrecto para --icc-intent: «%s»\n" -#: ../src/cli/main.c:396 +#: ../src/cli/main.c:419 #, c-format msgid "warning: unknown option '%s'\n" msgstr "Advertencia: Opción desconocida «%s»\n" -#: ../src/cli/main.c:454 +#: ../src/cli/main.c:477 #, c-format msgid "error: input file and import opts specified! that's not supported!\n" msgstr "" "Error: se han especificado opciones de entrada e importación no admitidas\n" -#: ../src/cli/main.c:487 +#: ../src/cli/main.c:510 #, c-format msgid "" "notice: output location is a directory. assuming '%s/$(FILE_NAME).%s' output " @@ -5139,48 +5398,48 @@ "destino es un directorio." #. output file exists or there's output ext specified and it's same as file... -#: ../src/cli/main.c:502 +#: ../src/cli/main.c:525 msgid "output file already exists, it will get renamed" msgstr "El archivo de salida ya existe. Se procede a renombrarlo." #. one of inputs was a failure, no prob -#: ../src/cli/main.c:532 +#: ../src/cli/main.c:555 #, c-format msgid "error: can't open folder %s" msgstr "Error: no se puede abrir la carpeta %s" -#: ../src/cli/main.c:549 +#: ../src/cli/main.c:572 #, c-format msgid "error: can't open file %s" msgstr "Error: no se puede abrir el archivo %s" -#: ../src/cli/main.c:566 +#: ../src/cli/main.c:589 #, c-format msgid "no images to export, aborting\n" msgstr "No hay imágenes para exportar. Abortando la operación...\n" -#: ../src/cli/main.c:583 +#: ../src/cli/main.c:606 #, c-format msgid "error: can't open XMP file %s" msgstr "Error: no se puede abrir el archivo XMP %s" -#: ../src/cli/main.c:604 +#: ../src/cli/main.c:627 msgid "empty history stack" msgstr "borrar historial de acciones" #. too long ext, no point in wasting time -#: ../src/cli/main.c:616 +#: ../src/cli/main.c:639 #, c-format msgid "too long output file extension: %s\n" msgstr "Extensión de salida demasiado larga: %s\n" #. no ext or empty ext, no point in wasting time -#: ../src/cli/main.c:624 +#: ../src/cli/main.c:647 #, c-format msgid "no output file extension given\n" msgstr "No se ha indicado la extensión del archivo de salida\n" -#: ../src/cli/main.c:663 +#: ../src/cli/main.c:692 msgid "" "cannot find disk storage module. please check your installation, something " "seems to be broken." @@ -5188,18 +5447,18 @@ "No es posible encontrar el módulo de almacenamiento en disco. Pudiera " "haberse estropeado algo; revise la instalación." -#: ../src/cli/main.c:673 +#: ../src/cli/main.c:702 msgid "failed to get parameters from storage module, aborting export ..." msgstr "" "Falló al intentar obtener los parámetros del módulo de almacenamiento. " "Abortando la exportación..." -#: ../src/cli/main.c:689 +#: ../src/cli/main.c:718 #, c-format msgid "unknown extension '.%s'" msgstr "Extensión desconocida «.%s»" -#: ../src/cli/main.c:699 +#: ../src/cli/main.c:728 msgid "failed to get parameters from format module, aborting export ..." msgstr "" "Falló al intentar obtener los parámetros del módulo de formato. Abortando la " @@ -5250,204 +5509,210 @@ "La cámara «%s» en el puerto «%s» necesita volver a montarse.\n" "Asegúrese de que permita el acceso y que no este en otro modo de montaje." -#: ../src/common/collection.c:673 +#: ../src/common/collection.c:586 msgid "too much time to update aspect ratio for the collection" msgstr "" "Demora excesiva para actualizar la relación de aspecto para la colección" -#: ../src/common/collection.c:688 +#: ../src/common/collection.c:601 msgid "film roll" msgstr "carrete" -#: ../src/common/collection.c:690 +#: ../src/common/collection.c:603 msgid "folder" msgstr "carpeta" -#: ../src/common/collection.c:692 +#: ../src/common/collection.c:605 msgid "camera" msgstr "cámara" -#: ../src/common/collection.c:694 ../src/libs/export_metadata.c:189 -#: ../src/libs/tagging.c:3281 +#: ../src/common/collection.c:607 ../src/libs/export_metadata.c:176 +#: ../src/libs/tagging.c:3312 msgid "tag" msgstr "etiqueta" -#: ../src/common/collection.c:696 +#: ../src/common/collection.c:609 msgid "capture date" msgstr "fecha de captura" -#: ../src/common/collection.c:698 ../src/libs/filtering.c:61 +#: ../src/common/collection.c:611 ../src/libs/filtering.c:61 msgid "capture time" msgstr "fecha de captura" -#: ../src/common/collection.c:700 ../src/libs/filtering.c:62 +#: ../src/common/collection.c:613 ../src/libs/filtering.c:62 msgid "import time" msgstr "fecha de importación" -#: ../src/common/collection.c:702 ../src/libs/filtering.c:63 +#: ../src/common/collection.c:615 ../src/libs/filtering.c:63 msgid "modification time" msgstr "fecha de modificación" -#: ../src/common/collection.c:704 ../src/libs/filtering.c:64 +#: ../src/common/collection.c:617 ../src/libs/filtering.c:64 msgid "export time" msgstr "fecha de exportación" -#: ../src/common/collection.c:706 ../src/libs/filtering.c:65 +#: ../src/common/collection.c:619 ../src/libs/filtering.c:65 msgid "print time" msgstr "fecha (impresión)" -#: ../src/common/collection.c:708 ../src/libs/collect.c:3222 -#: ../src/libs/filtering.c:2163 ../src/libs/filtering.c:2183 +#: ../src/common/collection.c:621 ../src/libs/collect.c:3586 +#: ../src/libs/filtering.c:2237 ../src/libs/filtering.c:2257 #: ../src/libs/filters/history.c:153 ../src/libs/history.c:92 msgid "history" msgstr "historial" -#: ../src/common/collection.c:710 ../src/common/colorlabels.c:342 -#: ../src/develop/lightroom.c:1550 ../src/dtgtk/thumbnail.c:1560 +#: ../src/common/collection.c:623 ../src/common/colorlabels.c:341 +#: ../src/develop/lightroom.c:1607 ../src/dtgtk/thumbnail.c:1552 #: ../src/libs/filtering.c:68 ../src/libs/filters/colors.c:301 #: ../src/libs/filters/colors.c:312 ../src/libs/tools/colorlabels.c:93 msgid "color label" msgstr "marcas de color" #. iso -#: ../src/common/collection.c:716 ../src/gui/preferences.c:832 -#: ../src/gui/presets.c:666 ../src/libs/camera.c:558 -#: ../src/libs/metadata_view.c:145 +#: ../src/common/collection.c:629 ../src/gui/preferences.c:830 +#: ../src/gui/presets.c:680 ../src/libs/camera.c:558 +#: ../src/libs/metadata_view.c:149 msgid "ISO" msgstr "ISO" #. aperture -#: ../src/common/collection.c:718 ../src/gui/preferences.c:840 -#: ../src/gui/presets.c:701 ../src/libs/camera.c:545 ../src/libs/camera.c:547 -#: ../src/libs/metadata_view.c:140 +#: ../src/common/collection.c:631 ../src/gui/preferences.c:838 +#: ../src/gui/presets.c:715 ../src/libs/camera.c:545 ../src/libs/camera.c:547 +#: ../src/libs/metadata_view.c:142 msgid "aperture" msgstr "apertura" -#: ../src/common/collection.c:724 ../src/libs/filtering.c:57 -#: ../src/libs/filters/filename.c:364 ../src/libs/metadata_view.c:126 +#: ../src/common/collection.c:637 ../src/libs/filtering.c:57 +#: ../src/libs/filters/filename.c:369 ../src/libs/metadata_view.c:128 msgid "filename" msgstr "nombre" -#: ../src/common/collection.c:726 ../src/develop/lightroom.c:1541 +#: ../src/common/collection.c:639 ../src/develop/lightroom.c:1598 #: ../src/libs/geotagging.c:141 msgid "geotagging" msgstr "geoetiquetado" -#: ../src/common/collection.c:728 ../src/libs/filters/grouping.c:167 +#: ../src/common/collection.c:641 ../src/libs/filters/grouping.c:167 #: ../src/libs/tools/global_toolbox.c:394 msgid "grouping" msgstr "grupos" -#: ../src/common/collection.c:730 ../src/dtgtk/thumbnail.c:1575 -#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:129 -#: ../src/libs/metadata_view.c:336 +#: ../src/common/collection.c:643 ../src/dtgtk/thumbnail.c:1567 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:340 msgid "local copy" msgstr "copia local" -#: ../src/common/collection.c:732 ../src/gui/preferences.c:808 +#: ../src/common/collection.c:645 ../src/gui/preferences.c:806 msgid "module" msgstr "módulo" -#: ../src/common/collection.c:734 ../src/gui/hist_dialog.c:346 -#: ../src/gui/styles_dialog.c:722 ../src/gui/styles_dialog.c:771 +#: ../src/common/collection.c:647 ../src/gui/hist_dialog.c:346 +#: ../src/gui/styles_dialog.c:734 ../src/gui/styles_dialog.c:783 #: ../src/libs/filters/module_order.c:161 ../src/libs/ioporder.c:39 msgid "module order" msgstr "orden de módulo" -#: ../src/common/collection.c:736 +#: ../src/common/collection.c:649 msgid "range rating" msgstr "rango de valoración" -#: ../src/common/collection.c:738 ../src/common/ratings.c:322 -#: ../src/develop/lightroom.c:1525 ../src/libs/filtering.c:67 +#: ../src/common/collection.c:651 ../src/common/ratings.c:321 +#: ../src/develop/lightroom.c:1582 ../src/libs/filtering.c:67 #: ../src/libs/tools/ratings.c:110 msgid "rating" msgstr "valoración" -#: ../src/common/collection.c:740 +#: ../src/common/collection.c:653 msgid "search" msgstr "Buscar" -#: ../src/common/collection.c:1509 ../src/common/colorlabels.c:335 -#: ../src/develop/lightroom.c:836 ../src/gui/guides.c:732 -#: ../src/iop/colorzones.c:2265 ../src/iop/temperature.c:1925 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:261 +#: ../src/common/collection.c:1376 ../src/common/colorlabels.c:334 +#: ../src/develop/lightroom.c:889 ../src/gui/guides.c:732 +#: ../src/iop/colorzones.c:2501 ../src/iop/temperature.c:1902 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:261 msgid "yellow" msgstr "amarillo" -#: ../src/common/collection.c:1515 ../src/common/color_vocabulary.c:339 -#: ../src/common/colorlabels.c:338 ../src/iop/colorzones.c:2269 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:264 +#: ../src/common/collection.c:1382 ../src/common/color_vocabulary.c:339 +#: ../src/common/colorlabels.c:337 ../src/iop/colorzones.c:2505 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:264 msgid "purple" msgstr "púrpura" -#: ../src/common/collection.c:1532 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1400 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "auto applied" msgstr "aplicado automático" -#: ../src/common/collection.c:1536 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1406 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "altered" msgstr "alterado" -#: ../src/common/collection.c:1553 ../src/common/collection.c:1649 -#: ../src/libs/collect.c:1166 ../src/libs/collect.c:1330 -#: ../src/libs/collect.c:1354 ../src/libs/collect.c:1473 -#: ../src/libs/collect.c:2432 +#: ../src/common/collection.c:1424 ../src/common/collection.c:1535 +#: ../src/libs/collect.c:1242 ../src/libs/collect.c:1426 +#: ../src/libs/collect.c:1452 ../src/libs/collect.c:1592 +#: ../src/libs/collect.c:2662 msgid "not tagged" msgstr "sin etiquetar" -#: ../src/common/collection.c:1554 ../src/libs/collect.c:1354 +#: ../src/common/collection.c:1425 ../src/libs/collect.c:1452 #: ../src/libs/map_locations.c:742 msgid "tagged" msgstr "etiquetado" -#: ../src/common/collection.c:1555 +#: ../src/common/collection.c:1426 msgid "tagged*" msgstr "etiquetado*" #. local copy -#: ../src/common/collection.c:1588 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1460 ../src/libs/collect.c:1883 #: ../src/libs/filters/local_copy.c:38 msgid "not copied locally" msgstr "sin copia local" -#: ../src/common/collection.c:1592 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1465 ../src/libs/collect.c:1882 #: ../src/libs/filters/local_copy.c:38 msgid "copied locally" msgstr "copiar localmente" -#: ../src/common/collection.c:1974 ../src/libs/collect.c:1879 +#. if its undefined +#: ../src/common/collection.c:1507 ../src/common/collection.c:1619 +#: ../src/libs/collect.c:2209 ../src/libs/collect.c:2210 +msgid "unnamed" +msgstr "sin nombre" + +#: ../src/common/collection.c:1905 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:147 ../src/libs/filters/grouping.c:170 msgid "group leaders" msgstr "portadas de grupo" -#: ../src/common/collection.c:1978 ../src/libs/collect.c:1879 +#: ../src/common/collection.c:1909 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:150 ../src/libs/filters/grouping.c:170 msgid "group followers" msgstr "seguidores de grupo" -#: ../src/common/collection.c:2126 ../src/libs/collect.c:1959 +#: ../src/common/collection.c:2066 ../src/libs/collect.c:2100 msgid "not defined" msgstr "sin definir" -#: ../src/common/collection.c:2575 +#: ../src/common/collection.c:2521 #, c-format msgid "<b>%d</b> image (#<b>%d</b>) selected of <b>%d</b>" msgstr "<b>%d</b> imagen (#<b>%d</b>) seleccionada de <b>%d</b>" -#: ../src/common/collection.c:2582 +#: ../src/common/collection.c:2528 #, c-format msgid "<b>%d</b> image selected of <b>%d</b>" msgid_plural "<b>%d</b> images selected of <b>%d</b>" msgstr[0] "<b>%d</b> imagen seleccionada de <b>%d</b>" msgstr[1] "<b>%d</b> imágenes seleccionadas de <b>%d</b>" -#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2324 -#: ../src/develop/blend_gui.c:2372 ../src/gui/guides.c:729 -#: ../src/iop/channelmixerrgb.c:4620 ../src/iop/levels.c:671 -#: ../src/iop/rgblevels.c:937 ../src/iop/rgblevels.c:1032 +#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2340 +#: ../src/develop/blend_gui.c:2388 ../src/gui/guides.c:729 +#: ../src/iop/channelmixerrgb.c:4688 ../src/iop/levels.c:687 +#: ../src/iop/rgblevels.c:969 ../src/iop/rgblevels.c:1083 msgid "gray" msgstr "gris" @@ -5469,7 +5734,7 @@ #: ../src/common/color_vocabulary.c:96 msgid "African-American" -msgstr "Afroamericana" +msgstr "afroamericana" #: ../src/common/color_vocabulary.c:97 msgid "Mexican" @@ -5495,7 +5760,7 @@ #: ../src/common/color_vocabulary.c:202 #, c-format msgid "average %s skin tone\n" -msgstr "Tono de piel promedio %s\n" +msgstr "Tono de piel %s promedio\n" #. 0° - pinkish red #: ../src/common/color_vocabulary.c:222 @@ -5656,12 +5921,12 @@ msgstr "cian oscuro" #: ../src/common/color_vocabulary.c:297 ../src/common/color_vocabulary.c:317 -#: ../src/iop/colorzones.c:2267 +#: ../src/iop/colorzones.c:2503 msgid "aqua" msgstr "acua" #: ../src/common/color_vocabulary.c:298 ../src/gui/guides.c:733 -#: ../src/iop/temperature.c:1923 +#: ../src/iop/temperature.c:1900 msgid "cyan" msgstr "cian" @@ -5727,7 +5992,7 @@ msgstr "magenta oscuro" #: ../src/common/color_vocabulary.c:341 ../src/gui/guides.c:734 -#: ../src/iop/colorzones.c:2270 ../src/iop/temperature.c:1921 +#: ../src/iop/colorzones.c:2506 ../src/iop/temperature.c:1898 msgid "magenta" msgstr "magenta" @@ -5739,90 +6004,85 @@ msgid "color not found" msgstr "Color no encontrado" -#: ../src/common/colorlabels.c:310 +#: ../src/common/colorlabels.c:309 #, c-format msgid "colorlabels set to %s" msgstr "Marcas de color fijadas en %s" -#: ../src/common/colorlabels.c:312 +#: ../src/common/colorlabels.c:311 msgid "all colorlabels removed" msgstr "Se quitaron todas las marcas de color" -#: ../src/common/colorlabels.c:333 ../src/gui/accelerators.c:170 -#: ../src/libs/image.c:592 +#: ../src/common/colorlabels.c:332 ../src/gui/accelerators.c:188 +#: ../src/libs/image.c:660 msgid "clear" msgstr "eliminar" -#. init the category profile with NULL profile, the actual profile must be retrieved dynamically by the caller -#: ../src/common/colorspaces.c:1229 ../src/common/colorspaces.c:1518 -msgid "work profile" -msgstr "perfil de trabajo" - -#: ../src/common/colorspaces.c:1232 ../src/common/colorspaces.c:1514 -#: ../src/iop/colorout.c:885 +#: ../src/common/colorspaces.c:1382 ../src/common/colorspaces.c:1730 +#: ../src/iop/colorout.c:901 msgid "export profile" msgstr "perfil de exportación" -#: ../src/common/colorspaces.c:1236 ../src/common/colorspaces.c:1516 -#: ../src/views/darkroom.c:2542 +#: ../src/common/colorspaces.c:1387 ../src/common/colorspaces.c:1732 +#: ../src/views/darkroom.c:2383 msgid "softproof profile" msgstr "perfil (impresión)" -#: ../src/common/colorspaces.c:1242 ../src/common/colorspaces.c:1498 +#: ../src/common/colorspaces.c:1397 ../src/common/colorspaces.c:1714 msgid "system display profile" msgstr "perfil de pantalla del sistema" -#: ../src/common/colorspaces.c:1245 ../src/common/colorspaces.c:1520 +#: ../src/common/colorspaces.c:1402 ../src/common/colorspaces.c:1736 msgid "system display profile (second window)" msgstr "perfil de pantalla del sistema (2ª ventana)" -#: ../src/common/colorspaces.c:1255 +#: ../src/common/colorspaces.c:1415 msgid "sRGB (web-safe)" msgstr "sRGB (fiable para internet)" -#: ../src/common/colorspaces.c:1269 ../src/common/colorspaces.c:1522 +#: ../src/common/colorspaces.c:1435 ../src/common/colorspaces.c:1738 msgid "Rec709 RGB" msgstr "RGB Rec. 709" -#: ../src/common/colorspaces.c:1279 +#: ../src/common/colorspaces.c:1450 msgid "PQ Rec2020 RGB" msgstr " RGB Rec. 2020 PQ " -#: ../src/common/colorspaces.c:1284 +#: ../src/common/colorspaces.c:1458 msgid "HLG Rec2020 RGB" msgstr " RGB Rec. 2020 HLG" -#: ../src/common/colorspaces.c:1289 +#: ../src/common/colorspaces.c:1465 msgid "PQ P3 RGB" -msgstr "PQ P3 RGB" +msgstr "RGB P3 PQ" -#: ../src/common/colorspaces.c:1294 +#: ../src/common/colorspaces.c:1471 msgid "HLG P3 RGB" msgstr "RGB P3 HLG" -#: ../src/common/colorspaces.c:1299 ../src/common/colorspaces.c:1524 -msgid "linear ProPhoto RGB" -msgstr "ProPhoto lineal RGB" +#: ../src/common/colorspaces.c:1478 +msgid "Display P3 RGB" +msgstr "Display P3 RGB" -#: ../src/common/colorspaces.c:1304 ../src/common/colorspaces.c:1492 +#: ../src/common/colorspaces.c:1493 ../src/common/colorspaces.c:1708 msgid "linear XYZ" -msgstr "lineal XYZ" +msgstr "XYZ lineal" -#: ../src/common/colorspaces.c:1308 ../src/common/colorspaces.c:1494 -#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2000 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:267 +#: ../src/common/colorspaces.c:1500 ../src/common/colorspaces.c:1710 +#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2016 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:293 msgid "Lab" msgstr "Lab" -#: ../src/common/colorspaces.c:1313 ../src/common/colorspaces.c:1496 +#: ../src/common/colorspaces.c:1508 ../src/common/colorspaces.c:1712 msgid "linear infrared BGR" -msgstr "BGR lineal infrarrojo" +msgstr "BGR infrarrojo lineal" -#: ../src/common/colorspaces.c:1317 +#: ../src/common/colorspaces.c:1513 msgid "BRG (for testing)" msgstr "BRG (para pruebas)" -#: ../src/common/colorspaces.c:1409 +#: ../src/common/colorspaces.c:1619 #, c-format msgid "" "profile `%s' not usable as histogram profile. it has been replaced by sRGB!" @@ -5830,47 +6090,47 @@ "No es posible utilizar como perfil de histograma el perfil «%s». Se ha " "sustituido por sRGB." -#: ../src/common/colorspaces.c:1500 +#: ../src/common/colorspaces.c:1716 msgid "embedded ICC profile" msgstr "perfil ICC incrustado" -#: ../src/common/colorspaces.c:1502 +#: ../src/common/colorspaces.c:1718 msgid "embedded matrix" msgstr "matriz incrustada" -#: ../src/common/colorspaces.c:1504 +#: ../src/common/colorspaces.c:1720 msgid "standard color matrix" msgstr "matriz de color estándar" -#: ../src/common/colorspaces.c:1506 +#: ../src/common/colorspaces.c:1722 msgid "enhanced color matrix" msgstr "matriz de color mejorada" -#: ../src/common/colorspaces.c:1508 +#: ../src/common/colorspaces.c:1724 msgid "vendor color matrix" msgstr "matriz de color" -#: ../src/common/colorspaces.c:1510 +#: ../src/common/colorspaces.c:1726 msgid "alternate color matrix" msgstr "matriz de color alternativa" -#: ../src/common/colorspaces.c:1512 +#: ../src/common/colorspaces.c:1728 msgid "BRG (experimental)" msgstr "BRG (para pruebas)" -#: ../src/common/colorspaces.c:1526 +#: ../src/common/colorspaces.c:1742 msgid "PQ Rec2020" msgstr "Rec. 2020" -#: ../src/common/colorspaces.c:1528 +#: ../src/common/colorspaces.c:1744 msgid "HLG Rec2020" msgstr "Rec. 2020 HGL" -#: ../src/common/colorspaces.c:1530 +#: ../src/common/colorspaces.c:1746 msgid "PQ P3" msgstr "P3 PQ" -#: ../src/common/colorspaces.c:1532 +#: ../src/common/colorspaces.c:1748 msgid "HLG P3" msgstr "P3 HLG" @@ -5899,40 +6159,40 @@ msgid "printing `%s' on `%s'" msgstr "Imprimiendo imágen «%s» en «%s»" -#: ../src/common/darktable.c:250 +#: ../src/common/darktable.c:375 #, c-format msgid "found strange path `%s'" msgstr "Ruta desconocida encontrada «%s»" -#: ../src/common/darktable.c:265 +#: ../src/common/darktable.c:390 #, c-format msgid "error loading directory `%s'" msgstr "Error al cargar el directorio «%s»" -#: ../src/common/darktable.c:289 +#: ../src/common/darktable.c:414 #, c-format msgid "file `%s' has unknown format!" msgstr "El archivo «%s» tiene un formato desconocido" -#: ../src/common/darktable.c:302 ../src/control/jobs/control_jobs.c:2118 -#: ../src/control/jobs/control_jobs.c:2177 +#: ../src/common/darktable.c:427 ../src/control/jobs/control_jobs.c:2121 +#: ../src/control/jobs/control_jobs.c:2180 #, c-format msgid "error loading file `%s'" msgstr "Error al cargar el archivo «%s»" -#: ../src/common/darktable.c:1509 +#: ../src/common/darktable.c:1650 msgid "configuration information" msgstr "Información sobre la configuración" -#: ../src/common/darktable.c:1511 -msgid "show this information again" -msgstr "Mostrar de nuevo esta información" - -#: ../src/common/darktable.c:1511 -msgid "understood" -msgstr "Entendido" +#: ../src/common/darktable.c:1652 +msgid "_show this information again" +msgstr "_Mostrar de nuevo esta información" + +#: ../src/common/darktable.c:1652 +msgid "_understood" +msgstr "_Entendido" -#: ../src/common/darktable.c:1968 +#: ../src/common/darktable.c:2106 msgid "" "the RCD demosaicer has been defined as default instead of PPG because of " "better quality and performance." @@ -5940,13 +6200,13 @@ "El algoritmo de interpolación cromática RCD ha sustituido al algoritmo PPG " "como valor predeterminado, ya que tiene un mejor desempeño y mayor calidad." -#: ../src/common/darktable.c:1970 +#: ../src/common/darktable.c:2108 msgid "see preferences/darkroom/demosaicing for zoomed out darkroom mode" msgstr "" "Véase en preferencias -» cuarto oscuro -» Interpolación cromática usada para " "ampliar en el modo de cuarto oscuro" -#: ../src/common/darktable.c:1976 +#: ../src/common/darktable.c:2114 msgid "" "the user interface and the underlying internals for tuning darktable " "performance have changed." @@ -5954,7 +6214,7 @@ "La interfaz de usuario y los elementos internos relacionados para ajustar el " "rendimiento de darktable han cambiado." -#: ../src/common/darktable.c:1978 +#: ../src/common/darktable.c:2116 msgid "" "you won't find headroom and friends any longer, instead in preferences/" "processing use:" @@ -5962,15 +6222,15 @@ "Todos los elementos relacionados se han remplazado por las siguientes " "secciones ubicadas en preferencias/procesamiento:" -#: ../src/common/darktable.c:1980 +#: ../src/common/darktable.c:2118 msgid "1) darktable resources" msgstr "1) Recursos de darktable" -#: ../src/common/darktable.c:1982 +#: ../src/common/darktable.c:2120 msgid "2) tune OpenCL performance" msgstr "2) Configurar el rendimiento de OpenCL" -#: ../src/common/darktable.c:1989 +#: ../src/common/darktable.c:2127 msgid "" "some global config parameters relevant for OpenCL performance are not used " "any longer." @@ -5978,34 +6238,36 @@ "Algunos valores relevantes de configuración general para el rendimiento de " "OpenCL ya no se utilizan más." -#: ../src/common/darktable.c:1991 +#: ../src/common/darktable.c:2129 msgid "" -"instead you will find 'per device' data in 'cl_device_v4_canonical-name'. " +"instead you will find 'per device' data in 'cldevice_v5_canonical-name'. " "content is:" msgstr "" -"Sin embargo, encontrará los datos por dispositivo en \"cldevice_v4_canonical-" +"Sin embargo, encontrará los datos por dispositivo en \"cldevice_v5_canonical-" "name\". El contenido es :" -#: ../src/common/darktable.c:1993 ../src/common/darktable.c:2012 +#: ../src/common/darktable.c:2131 ../src/common/darktable.c:2150 +#: ../src/common/darktable.c:2165 msgid "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" msgstr "" -" \"avoid_atomics\" \"micro_nap\" \"pinned_memory\" \"roundupwd\" \"roundupht" -"\" \"eventhandles\" \"async\" \"disable\" \"magic\"" +" \"avoid_atomics\" \"micro_nap\" \"pinned_memory\" \"roundupwd\" " +"\"roundupht\" \"eventhandles\" \"async\" \"disable\" \"magic\" \"advantage\" " +"\"unified\"" -#: ../src/common/darktable.c:1995 ../src/common/darktable.c:2014 +#: ../src/common/darktable.c:2133 ../src/common/darktable.c:2152 msgid "you may tune as before except 'magic'" msgstr "Todos se pueden ajustar como antes, excepto por \"magic\"" -#: ../src/common/darktable.c:2001 +#: ../src/common/darktable.c:2139 msgid "" "your OpenCL compiler settings for all devices have been reset to default." msgstr "" "Los valores del compilador OpenCL para todos los dispositivos han sido " "reestablecidos." -#: ../src/common/darktable.c:2008 +#: ../src/common/darktable.c:2146 msgid "" "OpenCL global config parameters 'per device' data has been recreated with an " "updated name." @@ -6013,14 +6275,14 @@ "Los datos de los parámetros de configuración general de OpenCL «por " "dispositivo» se han recreado con un nombre actualizado." -#: ../src/common/darktable.c:2010 +#: ../src/common/darktable.c:2148 ../src/common/darktable.c:2163 msgid "" -"you will find 'per device' data in 'cl_device_v5_canonical-name'. content is:" +"you will find 'per device' data in 'cldevice_v5_canonical-name'. content is:" msgstr "" "Sin embargo, encontrará los datos «por dispositivo» en " "\"cldevice_v5_canonical-name\". El contenido es :" -#: ../src/common/darktable.c:2016 +#: ../src/common/darktable.c:2154 msgid "" "If you're using device names in 'opencl_device_priority' you should update " "them to the new names." @@ -6028,7 +6290,23 @@ "Si se usan nombres de dispositivos en «opencl_device_priority» deberían ser " "actualizados con los nuevos nombres." -#: ../src/common/database.c:2756 +#: ../src/common/darktable.c:2161 +msgid "" +"OpenCL 'per device' config data have been automatically extended by 'unified-" +"fraction'." +msgstr "" +"Los datos de configuración «por dispositivo» de OpenCL se han ampliado " +"automáticamente con \"unified-fraction\"." + +#: ../src/common/darktable.c:2172 +msgid "" +"OpenCL 'per device' compiler settings might have been updated.\n" +"\n" +msgstr "" +"Es posible que se haya actualizado la configuración del compilador OpenCL " +"«por dispositivo».\n" + +#: ../src/common/database.c:3350 #, c-format msgid "" "\n" @@ -6089,30 +6367,19 @@ "la base de datos.</i>\n" #. clang-format on -#: ../src/common/database.c:2777 +#: ../src/common/database.c:3371 msgid "error starting darktable" msgstr "Error al iniciar darktable" -#: ../src/common/database.c:2778 ../src/libs/collect.c:2915 -#: ../src/libs/export_metadata.c:288 ../src/libs/import.c:1702 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:227 ../src/libs/modulegroups.c:3464 -#: ../src/libs/styles.c:438 ../src/libs/styles.c:621 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3471 -msgid "cancel" -msgstr "Cancelar" - -#: ../src/common/database.c:2778 -msgid "delete database lock files" -msgstr "Borrar los archivos de bloqueo de las bases de datos" +#: ../src/common/database.c:3372 +msgid "_delete database lock files" +msgstr "_Borrar los archivos de bloqueo de las bases de datos" -#: ../src/common/database.c:2784 +#: ../src/common/database.c:3378 msgid "are you sure?" msgstr "Confirmar eliminación" -#: ../src/common/database.c:2785 +#: ../src/common/database.c:3379 msgid "" "\n" "do you really want to delete the lock files?\n" @@ -6120,20 +6387,19 @@ "\n" "¿Desea realmente eliminar los archivos de bloqueo?\n" -#: ../src/common/database.c:2785 ../src/common/variables.c:703 -#: ../src/develop/imageop_gui.c:210 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 -msgid "yes" -msgstr "sí" +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2597 +msgid "_no" +msgstr "_no" -#: ../src/common/database.c:2801 ../src/libs/export_metadata.c:164 -#: ../src/libs/geotagging.c:811 +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2596 +msgid "_yes" +msgstr "_sí" + +#: ../src/common/database.c:3395 msgid "done" msgstr "Hecho" -#: ../src/common/database.c:2802 +#: ../src/common/database.c:3396 msgid "" "\n" "successfully deleted the lock files.\n" @@ -6143,17 +6409,17 @@ "Se han eliminado con éxito los archivos de bloqueo.\n" "Puede reiniciar darktable ahora.\n" -#. the button to close the popup -#: ../src/common/database.c:2803 ../src/common/database.c:2810 -#: ../src/libs/filters/filename.c:452 -msgid "ok" -msgstr "aceptar" +#: ../src/common/database.c:3397 ../src/common/database.c:3404 +#: ../src/gui/accelerators.c:2580 ../src/gui/accelerators.c:2662 +#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:566 +msgid "_ok" +msgstr "_aceptar" -#: ../src/common/database.c:2806 +#: ../src/common/database.c:3400 msgid "error" msgstr "Error" -#: ../src/common/database.c:2807 +#: ../src/common/database.c:3401 #, c-format msgid "" "\n" @@ -6168,7 +6434,7 @@ "<i>library.db.lock</i>\n" "en la carpeta <a href=\"file:///%s\">%s</a>.\n" -#: ../src/common/database.c:2924 +#: ../src/common/database.c:3518 #, c-format msgid "" "the database lock file contains a pid that seems to be alive in your system: " @@ -6177,19 +6443,44 @@ "El archivo de bloqueo de la base de datos contiene un pid que parece estar " "aun activo en su sistema: %d" -#: ../src/common/database.c:2931 +#: ../src/common/database.c:3525 #, c-format msgid "the database lock file seems to be empty" msgstr "El archivo de bloqueo de la base de datos parece estar vacío" -#: ../src/common/database.c:2941 +#: ../src/common/database.c:3535 #, c-format msgid "error opening the database lock file for reading: %s" msgstr "" "Error al abrir el archivo de bloqueo de la base de datos para su lectura: %s" +#: ../src/common/database.c:3605 +#, c-format +msgid "" +"the database schema version of\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"is too new for this build of darktable (this means the database was created " +"or upgraded by a newer darktable version)\n" +msgstr "" +"La versión del esquema de base de datos de\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"es muy reciente para esta versión de darktable (lo que significa que la base " +"de datos fue creada o actualizada por una versión más nueva de darktable)\n" + +#: ../src/common/database.c:3612 +msgid "darktable - too new db version" +msgstr "darktable: versión de base de datos bastante reciente." + +#: ../src/common/database.c:3613 +msgid "_quit darktable" +msgstr "_Salir de darktable" + #. the database has to be upgraded, let's ask user -#: ../src/common/database.c:2978 +#: ../src/common/database.c:3628 #, c-format msgid "" "the database schema has to be upgraded for\n" @@ -6209,21 +6500,21 @@ "\n" "¿Desea continuar o salir ahora para hacer una copia de seguridad?\n" -#: ../src/common/database.c:2986 +#: ../src/common/database.c:3636 msgid "darktable - schema migration" msgstr "Migración de esquemas de darktable" -#: ../src/common/database.c:2987 ../src/common/database.c:3306 -#: ../src/common/database.c:3324 ../src/common/database.c:3491 -#: ../src/common/database.c:3509 -msgid "close darktable" -msgstr "Cerrar darktable" - -#: ../src/common/database.c:2987 -msgid "upgrade database" -msgstr "Actualizar la base de datos" +#: ../src/common/database.c:3637 ../src/common/database.c:3959 +#: ../src/common/database.c:3974 ../src/common/database.c:4142 +#: ../src/common/database.c:4157 +msgid "_close darktable" +msgstr "_Cerrar darktable" + +#: ../src/common/database.c:3637 +msgid "_upgrade database" +msgstr "_Actualizar la base de datos" -#: ../src/common/database.c:3286 ../src/common/database.c:3471 +#: ../src/common/database.c:3939 ../src/common/database.c:4122 #, c-format msgid "" "quick_check said:\n" @@ -6232,21 +6523,21 @@ "Mensaje de quick_check:\n" "%s \n" -#: ../src/common/database.c:3303 ../src/common/database.c:3321 -#: ../src/common/database.c:3488 ../src/common/database.c:3506 +#: ../src/common/database.c:3956 ../src/common/database.c:3971 +#: ../src/common/database.c:4139 ../src/common/database.c:4154 msgid "darktable - error opening database" msgstr "Error en darktable al abrir la base de datos" -#: ../src/common/database.c:3308 ../src/common/database.c:3493 -msgid "attempt restore" -msgstr "intentar restaurar" - -#: ../src/common/database.c:3310 ../src/common/database.c:3326 -#: ../src/common/database.c:3495 ../src/common/database.c:3511 -msgid "delete database" -msgstr "borrar base de datos" +#: ../src/common/database.c:3960 ../src/common/database.c:4143 +msgid "_attempt restore" +msgstr "_Intentar restaurar" + +#: ../src/common/database.c:3961 ../src/common/database.c:3975 +#: ../src/common/database.c:4144 ../src/common/database.c:4158 +msgid "_delete database" +msgstr "_Borrar base de datos" -#: ../src/common/database.c:3314 ../src/common/database.c:3499 +#: ../src/common/database.c:3964 ../src/common/database.c:4147 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup, attempt an automatic restore\n" @@ -6260,7 +6551,7 @@ "darktable.\n" "¿Cerrar darktable ahora?" -#: ../src/common/database.c:3330 ../src/common/database.c:3515 +#: ../src/common/database.c:3978 ../src/common/database.c:4161 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup or delete the corrupted database\n" @@ -6272,7 +6563,7 @@ "darktable.\n" "¿Cerrar darktable ahora?" -#: ../src/common/database.c:3337 ../src/common/database.c:3520 +#: ../src/common/database.c:3985 ../src/common/database.c:4166 #, c-format msgid "" "an error has occurred while trying to open the database from\n" @@ -6297,12 +6588,12 @@ "El filtro guiado rápido independiente de la exposición no pudo reservar " "memoria. Verifique la configuración de la RAM." -#: ../src/common/exif.cc:5200 +#: ../src/common/exif.cc:5482 #, c-format msgid "cannot read XMP file '%s': '%s'" msgstr "No se puede leer el archivo XMP «%s»: «%s»" -#: ../src/common/exif.cc:5258 +#: ../src/common/exif.cc:5540 #, c-format msgid "cannot write XMP file '%s': '%s'" msgstr "No se puede escribir en el archivo XMP «%s»: «%s»" @@ -6313,126 +6604,126 @@ "El filtro guiado rápido no pudo reservar memoria. Verifique la configuración " "de la RAM." -#: ../src/common/film.c:345 +#: ../src/common/film.c:356 msgid "do you want to remove this empty directory?" msgid_plural "do you want to remove these empty directories?" msgstr[0] "¿Eliminar este directorio vacío?" msgstr[1] "¿Eliminar estos directorios vacíos?" -#: ../src/common/film.c:352 +#: ../src/common/film.c:363 msgid "remove empty directory?" msgid_plural "remove empty directories?" msgstr[0] "¿Eliminar directorio vacío?" msgstr[1] "¿Eliminar directorios vacíos?" -#: ../src/common/film.c:371 ../src/gui/preferences.c:816 -#: ../src/gui/styles_dialog.c:548 ../src/libs/geotagging.c:829 -#: ../src/libs/import.c:1551 +#: ../src/common/film.c:383 ../src/gui/preferences.c:814 +#: ../src/gui/styles_dialog.c:556 ../src/libs/geotagging.c:830 +#: ../src/libs/import.c:1560 msgid "name" msgstr "nombre" -#: ../src/common/film.c:477 +#: ../src/common/film.c:492 msgid "" "cannot remove film roll having local copies with non accessible originals" msgstr "" "El carrete no se puede eliminar si tiene copias locales sin acceso a los " "originales" -#: ../src/common/history.c:840 +#: ../src/common/history.c:876 msgid "you need to copy history from an image before you paste it onto another" msgstr "Necesita copiar el historial de una imagen antes de pegarlo en otra" -#: ../src/common/image.c:325 +#: ../src/common/image.c:333 msgid "orphaned image" msgstr "imágenes huérfanas" -#: ../src/common/image.c:620 +#: ../src/common/image.c:629 #, c-format msgid "geo-location undone for %d image" msgid_plural "geo-location undone for %d images" msgstr[0] "Revertida la geolocalización para %d imagen" msgstr[1] "Revertida la geolocalización para %d imágenes" -#: ../src/common/image.c:622 +#: ../src/common/image.c:631 #, c-format msgid "geo-location re-applied to %d image" msgid_plural "geo-location re-applied to %d images" msgstr[0] "Se ha vuelto a fijar la geolocalización para %d imagen" msgstr[1] "Se ha vuelto a fijar la geolocalización para %d imágenes" -#: ../src/common/image.c:645 +#: ../src/common/image.c:654 #, c-format msgid "date/time undone for %d image" msgid_plural "date/time undone for %d images" msgstr[0] "Revertida la fecha/hora para %d imagen" msgstr[1] "Revertida la fecha/hora para %d imágenes" -#: ../src/common/image.c:647 +#: ../src/common/image.c:656 #, c-format msgid "date/time re-applied to %d image" msgid_plural "date/time re-applied to %d images" msgstr[0] "Se ha vuelto a fijar la fecha/hora para %d imagen" msgstr[1] "Se ha vuelto a fijar la fecha/hora para %d imágenes" -#: ../src/common/image.c:2188 +#: ../src/common/image.c:2260 #, c-format msgid "cannot access local copy `%s'" msgstr "No se puede acceder a la copia local «%s»" -#: ../src/common/image.c:2195 +#: ../src/common/image.c:2267 #, c-format msgid "cannot write local copy `%s'" msgstr "No se puede escribir la copia local «%s»" -#: ../src/common/image.c:2202 +#: ../src/common/image.c:2274 #, c-format msgid "error moving local copy `%s' -> `%s'" msgstr "Error al mover la copia local «%s» -> «%s»" -#: ../src/common/image.c:2219 +#: ../src/common/image.c:2291 #, c-format msgid "error moving `%s': file not found" msgstr "Error al mover «%s»: no se encuentra el archivo" -#: ../src/common/image.c:2229 +#: ../src/common/image.c:2301 #, c-format msgid "error moving `%s' -> `%s': file exists" msgstr "Error al mover «%s» -> «%s»: el archivo ya existe" -#: ../src/common/image.c:2233 +#: ../src/common/image.c:2305 #, c-format msgid "error moving `%s' -> `%s'" msgstr "Error al mover «%s» -> «%s»" -#: ../src/common/image.c:2562 +#: ../src/common/image.c:2634 msgid "cannot create local copy when the original file is not accessible." msgstr "" "La copia local no se puede crear cuando el archivo original no es accesible." -#: ../src/common/image.c:2576 +#: ../src/common/image.c:2648 msgid "cannot create local copy." msgstr "no se puede crear una copia local." -#: ../src/common/image.c:2656 ../src/control/jobs/control_jobs.c:777 +#: ../src/common/image.c:2728 ../src/control/jobs/control_jobs.c:777 msgid "cannot remove local copy when the original file is not accessible." msgstr "" "La copia local no se puede eliminar cuando el archivo original no es " "accesible." -#: ../src/common/image.c:2821 +#: ../src/common/image.c:2901 #, c-format msgid "%d local copy has been synchronized" msgid_plural "%d local copies have been synchronized" msgstr[0] "%d copia local ha sido sincronizada" msgstr[1] "%d copias locales han sido sincronizadas" -#: ../src/common/image.c:3022 +#: ../src/common/image.c:3102 msgid "<b>WARNING</b>: camera is missing samples!" msgstr "" "<b>ADVERTENCIA</b>: No existen muestras de referencia para el modelo de " "cámara." -#: ../src/common/image.c:3023 +#: ../src/common/image.c:3103 msgid "" "You must provide samples in <a href='https://raw.pixls.us/'>https://raw." "pixls.us/</a>" @@ -6440,7 +6731,7 @@ "Deberá facilitar las muestras en <a href='https://raw.pixls.us/'>https://raw." "pixls.us/</a>" -#: ../src/common/image.c:3024 +#: ../src/common/image.c:3104 #, c-format msgid "" "for `%s' `%s'\n" @@ -6450,83 +6741,84 @@ "tantas como sean posibles en diferentes formatos/compresiones/profundidades " "de bits." -#: ../src/common/image.c:3027 +#: ../src/common/image.c:3107 msgid "or the <b>RAW won't be readable</b> in next version." msgstr "" "ya que para la siguiente versión <b>el archivo en bruto (RAW) no podrá " "leerse</b>." -#: ../src/common/image.h:209 ../src/common/ratings.c:284 -#: ../src/libs/history.c:843 ../src/libs/snapshots.c:779 +#: ../src/common/image.h:217 ../src/common/ratings.c:283 +#: ../src/imageio/format/avif.c:114 ../src/libs/history.c:843 +#: ../src/libs/snapshots.c:837 msgid "unknown" msgstr "desconocido" #. EMPTY_FIELD -#: ../src/common/image.h:210 -msgid "tiff" +#: ../src/common/image.h:218 ../src/imageio/format/tiff.c:831 +msgid "TIFF" msgstr "TIFF" -#: ../src/common/image.h:211 -msgid "png" +#: ../src/common/image.h:219 ../src/imageio/format/png.c:599 +msgid "PNG" msgstr "PNG" -#: ../src/common/image.h:212 ../src/imageio/format/j2k.c:652 -msgid "j2k" -msgstr "J2K" +#: ../src/common/image.h:220 +msgid "JPEG 2000" +msgstr "JPEG 2000" -#: ../src/common/image.h:213 -msgid "jpeg" +#: ../src/common/image.h:221 +msgid "JPEG" msgstr "JPEG" -#: ../src/common/image.h:214 -msgid "exr" +#: ../src/common/image.h:222 +msgid "EXR" msgstr "EXR" -#: ../src/common/image.h:215 -msgid "rgbe" +#: ../src/common/image.h:223 +msgid "RGBE" msgstr "RGBE" -#: ../src/common/image.h:216 -msgid "pfm" +#: ../src/common/image.h:224 ../src/imageio/format/pfm.c:120 +msgid "PFM" msgstr "PFM" -#: ../src/common/image.h:217 +#: ../src/common/image.h:225 msgid "GraphicsMagick" msgstr "GraphicsMagick" -#: ../src/common/image.h:218 -msgid "rawspeed" +#: ../src/common/image.h:226 +msgid "RawSpeed" msgstr "RawSpeed" -#: ../src/common/image.h:219 -msgid "netpnm" -msgstr "Netpnm" +#: ../src/common/image.h:227 +msgid "Netpbm" +msgstr "Netpbm" -#: ../src/common/image.h:220 -msgid "avif" +#: ../src/common/image.h:228 ../src/imageio/format/avif.c:728 +msgid "AVIF" msgstr "AVIF" -#: ../src/common/image.h:221 +#: ../src/common/image.h:229 msgid "ImageMagick" msgstr "ImageMagick" -#: ../src/common/image.h:222 -msgid "heif" +#: ../src/common/image.h:230 +msgid "HEIF" msgstr "HEIF" -#: ../src/common/image.h:223 -msgid "libraw" +#: ../src/common/image.h:231 +msgid "LibRaw" msgstr "LibRaw" -#: ../src/common/image.h:224 -msgid "webp" +#: ../src/common/image.h:232 ../src/imageio/format/webp.c:380 +msgid "WebP" msgstr "WebP" -#: ../src/common/image.h:225 -msgid "jpeg xl" +#: ../src/common/image.h:233 ../src/imageio/format/jxl.c:482 +msgid "JPEG XL" msgstr "JPEG XL" -#: ../src/common/image.h:226 +#: ../src/common/image.h:234 msgid "QOI" msgstr "QOI" @@ -6560,7 +6852,7 @@ "La ruta de la sesión solicitada no se encuentra disponible. Asegúrese que el " "dispositivo esté montado." -#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:197 +#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:195 msgid "legacy" msgstr "heredado" @@ -6572,7 +6864,7 @@ msgid "v3.0 JPEG" msgstr "v3.0 JPEG" -#: ../src/common/iop_profile.c:1205 +#: ../src/common/iop_profile.c:1207 #, c-format msgid "" "darktable loads %s from\n" @@ -6596,13 +6888,13 @@ #. title #: ../src/common/metadata.c:48 ../src/imageio/format/pdf.c:574 -#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:169 -#: ../src/imageio/storage/gallery.c:170 ../src/imageio/storage/latex.c:169 -#: ../src/imageio/storage/piwigo.c:1058 ../src/libs/filtering.c:69 +#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:219 +#: ../src/imageio/storage/gallery.c:222 ../src/imageio/storage/latex.c:206 +#: ../src/imageio/storage/piwigo.c:1100 ../src/libs/filtering.c:69 msgid "title" msgstr "título" -#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:552 +#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:563 #: ../src/libs/filtering.c:70 msgid "description" msgstr "descripción" @@ -6620,11 +6912,11 @@ msgstr "versión" #: ../src/common/metadata.c:53 ../src/libs/live_view.c:319 -#: ../src/libs/metadata_view.c:124 +#: ../src/libs/metadata_view.c:126 msgid "image id" msgstr "imagen" -#: ../src/common/mipmap_cache.c:1065 ../src/imageio/imageio.c:787 +#: ../src/common/mipmap_cache.c:1070 ../src/imageio/imageio.c:799 #, c-format msgid "image `%s' is not available!" msgstr "La imagen «%s» no está disponible" @@ -6638,7 +6930,43 @@ msgid "noiseprofile file `%s' is not valid" msgstr "Archivo de perfil de ruido «%s» no es válido" -#: ../src/common/opencl.c:1376 +#: ../src/common/opencl.c:1165 +msgid "no working OpenCL library found" +msgstr "No se ha encontrado ninguna librería OpenCL que funcione." + +#: ../src/common/opencl.c:1185 +msgid "" +"platform detection failed. some possible causes:\n" +" - OpenCL ICD (ocl-icd) missing,\n" +" - previous OpenCL errors leading to blocked devices,\n" +" - power management problems,\n" +" - buggy drivers,\n" +" - no OpenCL driver installed." +msgstr "" +"Error en la detección de la plataforma. Posibles causas:\n" +" • OpenCL ICD (ocl-icd) ausente\n" +" • Errores previos de OpenCL que terminan en dispositivos bloqueados\n" +" • Problemas con la gestión de energía\n" +" • Controladores con errores\n" +" • Falta de algún controlador instalado de OpenCL" + +#: ../src/common/opencl.c:1277 +msgid "no devices found for unknown platform" +msgstr "No se han encontrado dispositivos para la plataforma desconocida." + +#: ../src/common/opencl.c:1323 +msgid "not enough memory for OpenCL devices" +msgstr "Memoria insuficiente para los dispositivos OpenCL." + +#: ../src/common/opencl.c:1358 +msgid "no OpenCL devices found" +msgstr "No se encontraron dispositivos OpenCL" + +#: ../src/common/opencl.c:1401 +msgid "no suitable OpenCL devices found" +msgstr "No se encontraron dispositivos OpenCL compatibles" + +#: ../src/common/opencl.c:1422 #, c-format msgid "" "OpenCL initializing problem:\n" @@ -6647,38 +6975,22 @@ "Problema al inicializar OpenCL:\n" "%s" -#: ../src/common/opencl.c:1439 -msgid "" -"due to a slow GPU hardware acceleration using OpenCL has been deactivated" -msgstr "" -"Derivado del lento comportamiento de la aceleración por hardware de la GPU, " -"OpenCl se ha desactivado." - -#: ../src/common/opencl.c:1449 -msgid "" -"multiple GPUs detected - OpenCL scheduling profile has been set accordingly" +#: ../src/common/opencl.c:1454 +msgid "OpenCL scheduling profile set to default, setup has changed" msgstr "" -"Se detectaron varias GPU: el perfil de control de OpenCL se ha reconfigurado " -"como consecuencia." +"Cambio en el perfil de control para OpenCL: se ha reajustado al predefinido." -# Ignorar advertencia: en el texto original GPU va en mayúsculas. -#: ../src/common/opencl.c:1462 -msgid "" -"very fast GPU detected - OpenCL scheduling profile has been set accordingly" -msgstr "" -"GPU muy veloz detectada: el perfil de control de OpenCL se ha configurado en " -"función de la misma." - -#: ../src/common/opencl.c:1471 -msgid "OpenCL scheduling profile set to default" -msgstr "El perfil de control para OpenCL se ha ajustado al predefinido." +#: ../src/common/opencl.c:2283 +#, c-format +msgid "building OpenCL program %s for %s" +msgstr "Generando %s programa de OpenCL para %s" -#: ../src/common/pdf.h:88 ../src/iop/lens.cc:3441 +#: ../src/common/pdf.h:88 ../src/iop/lens.cc:4071 #: ../src/libs/filters/focal.c:74 ../src/libs/print_settings.c:81 msgid "mm" msgstr "mm" -#: ../src/common/pdf.h:89 ../src/libs/export.c:520 ../src/libs/export.c:1145 +#: ../src/common/pdf.h:89 ../src/libs/export.c:555 ../src/libs/export.c:1241 #: ../src/libs/print_settings.c:81 msgid "cm" msgstr "cm" @@ -6691,7 +7003,7 @@ msgid "\"" msgstr "\"" -#: ../src/common/pdf.h:104 ../src/iop/borders.c:958 +#: ../src/common/pdf.h:104 ../src/iop/borders.c:971 msgid "A4" msgstr "A4" @@ -6730,66 +7042,65 @@ msgid "no images selected to apply rating" msgstr "No se ha seleccionado ninguna imagen para puntuar" -#: ../src/common/ratings.c:275 ../src/libs/metadata_view.c:351 +#: ../src/common/ratings.c:274 ../src/libs/metadata_view.c:355 msgid "image rejected" msgstr "imagen rechazada" -#: ../src/common/ratings.c:277 +#: ../src/common/ratings.c:276 msgid "image rated to 0 star" msgstr "Imagen puntuada con 0 estrellas" -#: ../src/common/ratings.c:279 +#: ../src/common/ratings.c:278 #, c-format msgid "image rated to %s" msgstr "Imagen puntuada con %s" -#: ../src/common/ratings.c:306 ../src/libs/select.c:39 -#: ../src/views/lighttable.c:766 +#: ../src/common/ratings.c:305 ../src/views/lighttable.c:766 msgid "select" msgstr "seleccionar" -#: ../src/common/ratings.c:307 +#: ../src/common/ratings.c:306 msgid "upgrade" msgstr "incrementar" -#: ../src/common/ratings.c:308 +#: ../src/common/ratings.c:307 msgid "downgrade" msgstr "decrementar" -#: ../src/common/ratings.c:312 +#: ../src/common/ratings.c:311 msgid "zero" msgstr "Cero" -#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:277 +#: ../src/common/ratings.c:312 ../src/libs/filters/rating_range.c:304 msgid "one" msgstr "Una" -#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:278 +#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:305 msgid "two" msgstr "Dos" -#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:279 +#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:306 msgid "three" msgstr "Tres" -#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:280 +#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:307 msgid "four" msgstr "Cuatro" -#: ../src/common/ratings.c:317 ../src/libs/filters/rating_range.c:281 +#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:308 msgid "five" msgstr "Cinco" -#: ../src/common/ratings.c:318 +#: ../src/common/ratings.c:317 msgid "reject" msgstr "Rechazar" -#: ../src/common/styles.c:244 +#: ../src/common/styles.c:243 #, c-format msgid "style with name '%s' already exists" msgstr "El estilo con nombre «%s» ya existe" -#: ../src/common/styles.c:270 ../src/common/styles.c:1776 +#: ../src/common/styles.c:270 ../src/common/styles.c:1783 #: ../src/libs/styles.c:54 msgid "styles" msgstr "estilos" @@ -6799,57 +7110,57 @@ msgid "style named '%s' successfully created" msgstr "El estilo nombrado «%s» ha sido creado correctamente" -#: ../src/common/styles.c:689 ../src/common/styles.c:719 -#: ../src/common/styles.c:759 ../src/dtgtk/culling.c:1097 +#: ../src/common/styles.c:688 ../src/common/styles.c:718 +#: ../src/common/styles.c:758 ../src/dtgtk/culling.c:1066 msgid "no image selected!" msgstr "Ninguna imagen ha sido seleccionada" -#: ../src/common/styles.c:693 +#: ../src/common/styles.c:692 #, c-format msgid "style %s successfully applied!" msgstr "El estilo %s fue aplicado correctamente" -#: ../src/common/styles.c:709 +#: ../src/common/styles.c:708 msgid "no images nor styles selected!" msgstr "Ninguna imagen ni estilo han sido seleccionados" -#: ../src/common/styles.c:714 +#: ../src/common/styles.c:713 msgid "no styles selected!" msgstr "Ningún estilo ha sido seleccionado" -#: ../src/common/styles.c:744 +#: ../src/common/styles.c:743 msgid "style successfully applied!" msgid_plural "styles successfully applied!" msgstr[0] "Estilo aplicado exitosamente" msgstr[1] "Estilos aplicados exitosamente" -#: ../src/common/styles.c:840 +#: ../src/common/styles.c:838 #, c-format msgid "module `%s' version mismatch: %d != %d" msgstr "La versión del módulo «%s» no coincide: %d != %d" -#: ../src/common/styles.c:1124 +#: ../src/common/styles.c:1125 #, c-format msgid "applied style `%s' on current image" msgstr "El estilo «%s» se ha aplicado en la imagen actual" -#: ../src/common/styles.c:1378 +#: ../src/common/styles.c:1383 #, c-format msgid "failed to overwrite style file for %s" msgstr "Falló al intentar sobrescribir el archivo del estilo para %s" -#: ../src/common/styles.c:1384 +#: ../src/common/styles.c:1389 #, c-format msgid "style file for %s exists" msgstr "Ya existe el archivo del estilo para %s" -#: ../src/common/styles.c:1667 +#: ../src/common/styles.c:1674 #, c-format msgid "style %s was successfully imported" msgstr "El estilo %s fue importado correctamente" #. Failed to open file, clean up. -#: ../src/common/styles.c:1711 +#: ../src/common/styles.c:1718 #, c-format msgid "could not read file `%s'" msgstr "No es posible leer el archivo «%s»" @@ -6862,10 +7173,18 @@ msgid "below sea level" msgstr "bajo el nivel del mar" -#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:880 +#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:907 msgid "m" msgstr "m" +#: ../src/common/variables.c:712 ../src/develop/imageop_gui.c:210 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "yes" +msgstr "sí" + #. Column 1 - "make" of the camera. #. * Column 2 - "model" (use the "make" and "model" as provided by DCRaw). #. * Column 3 - WB name. @@ -6878,7 +7197,7 @@ #. * #. * WB name is standardized to one of the following: #. "Sunlight" and other variation should be switched to this: -#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:323 +#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:320 msgid "daylight" msgstr "luz de día" @@ -6978,7 +7297,7 @@ msgid "underwater" msgstr "submarino" -#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2447 +#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2286 msgid "black & white" msgstr "blanco y negro" @@ -6998,86 +7317,86 @@ msgid "auto WB" msgstr "balance de blancos automático" -#: ../src/control/control.c:66 ../src/gui/accelerators.c:138 -#: ../src/views/darkroom.c:2162 +#: ../src/control/control.c:69 ../src/gui/accelerators.c:156 +#: ../src/views/darkroom.c:2029 msgid "hold" msgstr "mantener" -#: ../src/control/control.c:102 ../src/control/control.c:205 +#: ../src/control/control.c:108 ../src/control/control.c:214 msgid "modifiers" msgstr "modificador" -#: ../src/control/control.c:111 +#: ../src/control/control.c:117 msgctxt "accel" msgid "global" msgstr "opciones generales" -#: ../src/control/control.c:118 +#: ../src/control/control.c:124 msgctxt "accel" msgid "views" msgstr "vistas" -#: ../src/control/control.c:125 +#: ../src/control/control.c:131 msgctxt "accel" msgid "thumbtable" msgstr "mesa de trabajo" -#: ../src/control/control.c:132 +#: ../src/control/control.c:138 msgctxt "accel" msgid "utility modules" msgstr "módulos de funcionalidad" -#: ../src/control/control.c:139 +#: ../src/control/control.c:145 msgctxt "accel" msgid "format" msgstr "formato" -#: ../src/control/control.c:146 +#: ../src/control/control.c:152 msgctxt "accel" msgid "storage" msgstr "almacenamiento" -#: ../src/control/control.c:153 +#: ../src/control/control.c:159 msgctxt "accel" msgid "processing modules" msgstr "módulos de revelado" -#: ../src/control/control.c:160 +#: ../src/control/control.c:166 msgctxt "accel" msgid "<blending>" msgstr "<fusión>" -#: ../src/control/control.c:167 +#: ../src/control/control.c:173 msgctxt "accel" msgid "Lua scripts" msgstr "guiones de Lua" -#: ../src/control/control.c:174 +#: ../src/control/control.c:180 msgctxt "accel" msgid "fallbacks" msgstr "alternativas" -#: ../src/control/control.c:183 +#: ../src/control/control.c:189 msgctxt "accel" msgid "<focused>" msgstr "<enfocado>" -#: ../src/control/control.c:202 +#: ../src/control/control.c:209 msgid "show accels window" msgstr "Mostrar la ventana de atajos" # Traducción no literal: Se usa un mensaje con mejor sentido en español. -#: ../src/control/control.c:363 +#: ../src/control/control.c:371 msgid "working..." msgstr "Procesando..." -#: ../src/control/crawler.c:425 +#: ../src/control/crawler.c:418 #, c-format msgid "ERROR: %s NOT synced XMP → DB" msgstr "ERROR: %s sincronización FALLIDA. XMP → BD" -#: ../src/control/crawler.c:426 ../src/control/crawler.c:492 -#: ../src/control/crawler.c:561 +#: ../src/control/crawler.c:419 ../src/control/crawler.c:485 +#: ../src/control/crawler.c:554 msgid "" "ERROR: cannot write the database. the destination may be full, offline or " "read-only." @@ -7085,18 +7404,18 @@ "ERROR: La base de datos no pudo guardarse. Es posible que el destino no " "tenga espacio, esté desconectado o sea de sólo lectura." -#: ../src/control/crawler.c:433 +#: ../src/control/crawler.c:426 #, c-format msgid "SUCCESS: %s synced XMP → DB" msgstr "PROCESO EXITOSO: %s sincronizado. XMP → BD" -#: ../src/control/crawler.c:455 +#: ../src/control/crawler.c:448 #, c-format msgid "ERROR: %s NOT synced DB → XMP" msgstr "ERROR: %s sincronización FALLIDA. BD → XMP" -#: ../src/control/crawler.c:457 ../src/control/crawler.c:516 -#: ../src/control/crawler.c:582 +#: ../src/control/crawler.c:450 ../src/control/crawler.c:509 +#: ../src/control/crawler.c:575 #, c-format msgid "" "ERROR: cannot write %s \n" @@ -7106,129 +7425,133 @@ "Es posible que el destino no tenga espacio, esté desconectado o sea de sólo " "lectura." -#: ../src/control/crawler.c:463 +#: ../src/control/crawler.c:456 #, c-format msgid "SUCCESS: %s synced DB → XMP" msgstr "PROCESO EXITOSO: %s sincronizado. BD → XMP" -#: ../src/control/crawler.c:489 +#: ../src/control/crawler.c:482 #, c-format msgid "ERROR: %s NOT synced new (XMP) → old (DB)" msgstr "ERROR: %s sincronización FALLIDA. XMP (reciente) → BD (antiguo)" -#: ../src/control/crawler.c:499 +#: ../src/control/crawler.c:492 #, c-format msgid "SUCCESS: %s synced new (XMP) → old (DB)" msgstr "PROCESO EXITOSO: %s sincronizado. XMP (reciente) → BD (antiguo)" -#: ../src/control/crawler.c:513 +#: ../src/control/crawler.c:506 #, c-format msgid "ERROR: %s NOT synced new (DB) → old (XMP)" msgstr "ERROR: %s sincronización FALLIDA. BD (reciente) → XMP (antiguo)" -#: ../src/control/crawler.c:521 +#: ../src/control/crawler.c:514 #, c-format msgid "SUCCESS: %s synced new (DB) → old (XMP)" msgstr "PROCESO EXITOSO: %s sincronizado. BD (reciente) → XMP (antiguo)" -#: ../src/control/crawler.c:530 ../src/control/crawler.c:598 +#: ../src/control/crawler.c:523 ../src/control/crawler.c:591 #, c-format msgid "EXCEPTION: %s has inconsistent timestamps" msgstr "ANORMALIDAD: existen inconsistencias en la fecha/hora de %s" -#: ../src/control/crawler.c:558 +#: ../src/control/crawler.c:551 #, c-format msgid "ERROR: %s NOT synced old (XMP) → new (DB)" msgstr "ERROR: %s sincronización FALLIDA. XMP (antiguo) → BD (reciente)" -#: ../src/control/crawler.c:567 +#: ../src/control/crawler.c:560 #, c-format msgid "SUCCESS: %s synced old (XMP) → new (DB)" msgstr "PROCESO EXITOSO: %s sincronizado. XMP (antiguo) → BD (reciente)" -#: ../src/control/crawler.c:579 +#: ../src/control/crawler.c:572 #, c-format msgid "ERROR: %s NOT synced old (DB) → new (XMP)" msgstr "ERROR: %s sincronización FALLIDA. BD (antiguo) → XMP (reciente)" -#: ../src/control/crawler.c:588 +#: ../src/control/crawler.c:581 #, c-format msgid "SUCCESS: %s synced old (DB) → new (XMP)" msgstr "PROCESO EXITOSO: %s sincronizado. BD (antiguo) → XMP (reciente)" -#: ../src/control/crawler.c:670 +#: ../src/control/crawler.c:663 #, c-format msgid "%id %02dh %02dm %02ds" msgstr "%id %02dh %02dm %02ds" -#: ../src/control/crawler.c:740 ../src/imageio/storage/disk.c:168 -#: ../src/imageio/storage/gallery.c:154 ../src/imageio/storage/latex.c:153 -#: ../src/imageio/storage/latex.c:171 +#: ../src/control/crawler.c:716 +msgid "XMP" +msgstr "XMP" + +#: ../src/control/crawler.c:733 ../src/imageio/storage/disk.c:250 +#: ../src/imageio/storage/gallery.c:202 ../src/imageio/storage/latex.c:190 +#: ../src/imageio/storage/latex.c:208 msgid "path" msgstr "ruta" -#: ../src/control/crawler.c:749 +#: ../src/control/crawler.c:742 msgid "XMP timestamp" msgstr "fecha y hora del XMP" -#: ../src/control/crawler.c:754 +#: ../src/control/crawler.c:747 msgid "database timestamp" msgstr "fecha y hora de la base de datos" -#: ../src/control/crawler.c:759 +#: ../src/control/crawler.c:752 msgid "newest" msgstr "más reciente" -#: ../src/control/crawler.c:765 +#: ../src/control/crawler.c:758 msgid "time difference" msgstr "diferencia temporal" -#: ../src/control/crawler.c:777 +#: ../src/control/crawler.c:770 msgid "updated XMP sidecar files found" msgstr "Se encontraron archivos asociados XMP actualizados" -#: ../src/control/crawler.c:778 +#: ../src/control/crawler.c:771 msgid "_close" msgstr "_Cerrar" #. setup selection accelerators #. action-box -#: ../src/control/crawler.c:793 ../src/dtgtk/thumbtable.c:2578 -#: ../src/libs/import.c:1722 ../src/libs/select.c:135 +#: ../src/control/crawler.c:786 ../src/dtgtk/thumbtable.c:2755 +#: ../src/libs/import.c:1732 ../src/libs/select.c:136 msgid "select all" msgstr "seleccionar todo" -#: ../src/control/crawler.c:794 ../src/dtgtk/thumbtable.c:2580 -#: ../src/libs/import.c:1726 ../src/libs/select.c:139 +#: ../src/control/crawler.c:787 ../src/dtgtk/thumbtable.c:2757 +#: ../src/libs/import.c:1736 ../src/libs/select.c:140 msgid "select none" msgstr "deseleccionar todo" -#: ../src/control/crawler.c:795 ../src/dtgtk/thumbtable.c:2582 -#: ../src/libs/select.c:143 +#: ../src/control/crawler.c:788 ../src/dtgtk/thumbtable.c:2759 +#: ../src/libs/select.c:144 msgid "invert selection" msgstr "invertir selección" -#: ../src/control/crawler.c:807 +#: ../src/control/crawler.c:800 msgid "on the selection:" msgstr "En la selección:" -#: ../src/control/crawler.c:808 +#: ../src/control/crawler.c:801 msgid "keep the XMP edit" msgstr "Conservar la edición XMP" -#: ../src/control/crawler.c:809 +#: ../src/control/crawler.c:802 msgid "keep the database edit" msgstr "Conservar la edición en la base de datos" -#: ../src/control/crawler.c:810 +#: ../src/control/crawler.c:803 msgid "keep the newest edit" msgstr "Conservar la edición más reciente" -#: ../src/control/crawler.c:811 +#: ../src/control/crawler.c:804 msgid "keep the oldest edit" msgstr "Conservar la edición más antigua" -#: ../src/control/crawler.c:836 +#: ../src/control/crawler.c:829 msgid "synchronization log" msgstr "registro de sincronización" @@ -7258,6 +7581,10 @@ msgid "starting to import images from camera" msgstr "Comenzando a importar imágenes desde la cámara" +#: ../src/control/jobs/camera_jobs.c:302 +msgid "failed to import images from camera." +msgstr "Error al importar imágenes desde la cámara" + #: ../src/control/jobs/camera_jobs.c:309 #, c-format msgid "importing %d image from camera" @@ -7363,7 +7690,8 @@ msgid "_remove from library" msgstr "_Quitar solamente de la fototeca" -#: ../src/control/jobs/control_jobs.c:884 +#: ../src/control/jobs/control_jobs.c:884 ../src/libs/styles.c:440 +#: ../src/libs/styles.c:625 msgid "_skip" msgstr "_omitir" @@ -7461,42 +7789,42 @@ msgid "exporting %d / %d to %s" msgstr "Exportando %d / %d a %s" -#: ../src/control/jobs/control_jobs.c:1459 ../src/views/darkroom.c:800 +#: ../src/control/jobs/control_jobs.c:1451 ../src/views/darkroom.c:721 #: ../src/views/print.c:369 #, c-format msgid "image `%s' is currently unavailable" -msgstr "La imagen «%s» no esta disponible actualmente" +msgstr "La imagen «%s» actualmente no está disponible" -#: ../src/control/jobs/control_jobs.c:1551 +#: ../src/control/jobs/control_jobs.c:1554 msgid "merge HDR image" msgstr "Fusionar imagen HDR" -#: ../src/control/jobs/control_jobs.c:1565 +#: ../src/control/jobs/control_jobs.c:1568 msgid "duplicate images" msgstr "Duplicar imágenes" -#: ../src/control/jobs/control_jobs.c:1571 +#: ../src/control/jobs/control_jobs.c:1574 msgid "flip images" msgstr "Invertir imágenes" -#: ../src/control/jobs/control_jobs.c:1578 +#: ../src/control/jobs/control_jobs.c:1581 msgid "set monochrome images" msgstr "Marcar como imágenes monocromáticas" #. get all selected images now, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1585 +#: ../src/control/jobs/control_jobs.c:1588 msgid "remove images" msgstr "Eliminar imágenes" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove image?" msgstr "¿Desea quitar la imagen?" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove images?" msgstr "¿Eliminar las imágenes?" -#: ../src/control/jobs/control_jobs.c:1599 +#: ../src/control/jobs/control_jobs.c:1602 #, c-format msgid "" "do you really want to remove %d image from darktable\n" @@ -7512,21 +7840,21 @@ "(Sin eliminar los archivos del disco)" #. first get all selected images, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1614 -#: ../src/control/jobs/control_jobs.c:1647 +#: ../src/control/jobs/control_jobs.c:1617 +#: ../src/control/jobs/control_jobs.c:1650 msgid "delete images" msgstr "Borrar imágenes" -#: ../src/control/jobs/control_jobs.c:1630 -#: ../src/control/jobs/control_jobs.c:1660 +#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1663 msgid "delete image?" msgstr "¿Desea eliminar las imágenes?" -#: ../src/control/jobs/control_jobs.c:1630 +#: ../src/control/jobs/control_jobs.c:1633 msgid "delete images?" msgstr "¿Borrar las imágenes?" -#: ../src/control/jobs/control_jobs.c:1631 +#: ../src/control/jobs/control_jobs.c:1634 #, c-format msgid "" "do you really want to physically delete %d image\n" @@ -7541,14 +7869,14 @@ "¿En verdad desea borrar físicamente %d imágenes?\n" "(Si es posible, se usará la papelera)" -#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1636 #, c-format msgid "do you really want to physically delete %d image from disk?" msgid_plural "do you really want to physically delete %d images from disk?" msgstr[0] "¿En verdad desea borrar FÍSICAMENTE del disco %d imagen?" msgstr[1] "¿En verdad desea borrar FÍSICAMENTE del disco %d imágenes?" -#: ../src/control/jobs/control_jobs.c:1661 +#: ../src/control/jobs/control_jobs.c:1664 msgid "" "do you really want to physically delete selected image (using trash if " "possible)?" @@ -7556,26 +7884,26 @@ "¿Desea borrar físicamente la imagen seleccionada? (Se usará la papelera de " "ser posible)" -#: ../src/control/jobs/control_jobs.c:1662 +#: ../src/control/jobs/control_jobs.c:1665 msgid "do you really want to physically delete selected image from disk?" msgstr "¿Desea borrar FÍSICAMENTE del disco la imagen seleccionada?" -#: ../src/control/jobs/control_jobs.c:1677 +#: ../src/control/jobs/control_jobs.c:1680 msgid "move images" msgstr "Mover imágenes" -#: ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 msgid "_select as destination" msgstr "_seleccionar destino" -#: ../src/control/jobs/control_jobs.c:1708 +#: ../src/control/jobs/control_jobs.c:1711 msgid "move image?" msgid_plural "move images?" msgstr[0] "¿Mover las imágenes?" msgstr[1] "¿Mover las imágenes?" -#: ../src/control/jobs/control_jobs.c:1709 +#: ../src/control/jobs/control_jobs.c:1712 #, c-format msgid "" "do you really want to physically move %d image to %s?\n" @@ -7590,118 +7918,113 @@ "¿Desea mover físicamente %d imágenes a %s?\n" " (todos los duplicados se moverán en conjunto)" -#: ../src/control/jobs/control_jobs.c:1731 +#: ../src/control/jobs/control_jobs.c:1734 msgid "copy images" msgstr "Copiar imágenes" -#: ../src/control/jobs/control_jobs.c:1762 +#: ../src/control/jobs/control_jobs.c:1765 msgid "copy image?" msgid_plural "copy images?" msgstr[0] "¿Copiar imagen?" msgstr[1] "¿copiar imagenes?" -#: ../src/control/jobs/control_jobs.c:1763 +#: ../src/control/jobs/control_jobs.c:1766 #, c-format msgid "do you really want to physically copy %d image to %s?" msgid_plural "do you really want to physically copy %d images to %s?" msgstr[0] "¿Desea copiar de manera física %d imagen a %s ?" msgstr[1] "¿Desea copiar de manera física %d imágenes a %s ?" -#: ../src/control/jobs/control_jobs.c:1781 -#: ../src/control/jobs/control_jobs.c:1789 +#: ../src/control/jobs/control_jobs.c:1784 +#: ../src/control/jobs/control_jobs.c:1792 msgid "local copy images" msgstr "Copia local de las imágenes" -#: ../src/control/jobs/control_jobs.c:1796 ../src/libs/image.c:604 +#: ../src/control/jobs/control_jobs.c:1799 ../src/libs/image.c:674 msgid "refresh EXIF" msgstr "Actualizar Exif" -#: ../src/control/jobs/control_jobs.c:1860 +#: ../src/control/jobs/control_jobs.c:1863 #, c-format msgid "failed to get parameters from storage module `%s', aborting export.." msgstr "" "Hubo un fallo al obtener parámetros del modulo de almacenamiento «%s». " "Abortando la operación..." -#: ../src/control/jobs/control_jobs.c:1876 +#: ../src/control/jobs/control_jobs.c:1879 msgid "export images" msgstr "exportar imágenes" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "adding time offset to %d image" msgstr "Añadiendo intervalo de tiempo a %d imagen" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "setting date/time of %d image" msgstr "Fijando fecha/hora a %d imagen" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "adding time offset to %d images" msgstr "Añadiendo diferencia horaria a %d imagen" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "setting date/time of %d images" msgstr "Fijando fecha/hora a %d imágenes" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "added time offset to %d image" msgstr "Intervalo de tiempo añadido a %d imagen" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "set date/time of %d image" msgstr "Fijar fecha/hora a %d imagen" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "added time offset to %d images" msgstr "Diferencia horaria añadida a %d imagen" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "set date/time of %d images" msgstr "Fijar fecha/hora a %d imágenes" -#: ../src/control/jobs/control_jobs.c:2014 +#: ../src/control/jobs/control_jobs.c:2017 msgid "time offset" msgstr "diferencia horaria" -#: ../src/control/jobs/control_jobs.c:2042 ../src/libs/copy_history.c:414 +#: ../src/control/jobs/control_jobs.c:2045 ../src/libs/copy_history.c:414 msgid "write sidecar files" msgstr "" "escribir archivos se han encontrado archivos de sidecar del xmp actualizados" -#: ../src/control/jobs/control_jobs.c:2256 ../src/control/jobs/film_jobs.c:297 +#: ../src/control/jobs/control_jobs.c:2259 ../src/control/jobs/film_jobs.c:297 #, c-format msgid "importing %d image" msgid_plural "importing %d images" msgstr[0] "Importando %d imagen" msgstr[1] "Importando %d imágenes" -#: ../src/control/jobs/control_jobs.c:2292 +#: ../src/control/jobs/control_jobs.c:2295 #, c-format msgid "importing %d/%d image" msgid_plural "importing %d/%d images" msgstr[0] "Importando %d/%d imagen" msgstr[1] "Importando %d/%d imágenes" -#: ../src/control/jobs/control_jobs.c:2300 +#: ../src/control/jobs/control_jobs.c:2305 #, c-format msgid "imported %d image" msgid_plural "imported %d images" msgstr[0] "%d imagen importada" msgstr[1] "%d imágenes importadas" -#: ../src/control/jobs/control_jobs.c:2347 ../src/gui/preferences.c:530 -#: ../src/libs/import.c:172 -msgid "import" -msgstr "importar" - #: ../src/control/jobs/film_jobs.c:73 ../src/control/jobs/film_jobs.c:109 msgid "import images" msgstr "importar imágenes" @@ -7719,11 +8042,11 @@ msgid "import image" msgstr "importar imagen" -#: ../src/develop/blend.c:322 +#: ../src/develop/blend.c:315 msgid "detail mask blending error" msgstr "Error de mezcla de la máscara de detalle" -#: ../src/develop/blend.c:864 +#: ../src/develop/blend.c:904 msgid "detail mask CL blending problem" msgstr "Problema de mezcla en la máscara de detalle CL" @@ -7924,8 +8247,7 @@ msgid "reverse" msgstr "invertir" -#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:413 -#: ../src/libs/metadata.c:631 ../src/libs/metadata_view.c:1193 +#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:442 msgid "default" msgstr "por defecto" @@ -7933,35 +8255,35 @@ msgid "RAW" msgstr "imagen virgen" -#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2014 +#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2030 msgid "RGB (display)" msgstr "RGB (Pantalla)" -#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2027 +#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2043 msgid "RGB (scene)" msgstr "RGB (Escena)" #. DEVELOP_MASK_ENABLED -#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3419 +#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3438 msgid "uniformly" msgstr "uniformemente" -#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:3429 ../src/develop/imageop.c:2660 +#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:3448 ../src/develop/imageop.c:2669 msgid "drawn mask" msgstr "trazar máscara" -#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2512 -#: ../src/develop/blend_gui.c:3440 ../src/develop/imageop.c:2662 +#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2528 +#: ../src/develop/blend_gui.c:3459 ../src/develop/imageop.c:2671 msgid "parametric mask" msgstr "máscara paramétrica" -#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2951 -#: ../src/develop/blend_gui.c:3467 ../src/develop/imageop.c:2664 +#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2966 +#: ../src/develop/blend_gui.c:3486 ../src/develop/imageop.c:2673 msgid "raster mask" msgstr "máscara de matriz de pixeles" -#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3454 +#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3473 msgid "drawn & parametric mask" msgstr "trazar máscara paramétrica" @@ -7997,177 +8319,177 @@ msgid "input after blur" msgstr "entrada después del desenfoque" -#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:129 -#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/libs/live_view.c:362 +#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:157 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/libs/live_view.c:362 msgid "on" msgstr "activo" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "input" msgstr "entrada" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "output" msgstr "salida" -#: ../src/develop/blend_gui.c:995 +#: ../src/develop/blend_gui.c:998 msgid " (zoom)" msgstr "(ampliación)" -#: ../src/develop/blend_gui.c:1003 +#: ../src/develop/blend_gui.c:1006 msgid " (log)" msgstr " (registro)" -#: ../src/develop/blend_gui.c:1988 +#: ../src/develop/blend_gui.c:2004 msgid "reset to default blend colorspace" msgstr "restablecer el espacio de color de fusión predeterminada" -#: ../src/develop/blend_gui.c:2044 +#: ../src/develop/blend_gui.c:2060 msgid "reset and hide output channels" msgstr "reiniciar y ocultar canales de salida" -#: ../src/develop/blend_gui.c:2051 +#: ../src/develop/blend_gui.c:2067 msgid "show output channels" msgstr "mostrar canales de salida" -#: ../src/develop/blend_gui.c:2290 ../src/develop/blend_gui.c:2357 -#: ../src/iop/tonecurve.c:1134 +#: ../src/develop/blend_gui.c:2306 ../src/develop/blend_gui.c:2373 +#: ../src/iop/tonecurve.c:1156 msgid "L" msgstr "L" -#: ../src/develop/blend_gui.c:2290 +#: ../src/develop/blend_gui.c:2306 msgid "sliders for L channel" msgstr "Control deslizante para el canal L" -#: ../src/develop/blend_gui.c:2295 ../src/iop/tonecurve.c:1135 +#: ../src/develop/blend_gui.c:2311 ../src/iop/tonecurve.c:1157 msgid "a" msgstr "a" -#: ../src/develop/blend_gui.c:2295 +#: ../src/develop/blend_gui.c:2311 msgid "sliders for a channel" msgstr "Control deslizante para el canal a" -#: ../src/develop/blend_gui.c:2299 +#: ../src/develop/blend_gui.c:2315 msgid "green/red" msgstr "verde / rojo" -#: ../src/develop/blend_gui.c:2300 ../src/iop/tonecurve.c:1136 +#: ../src/develop/blend_gui.c:2316 ../src/iop/tonecurve.c:1158 msgid "b" msgstr "b" -#: ../src/develop/blend_gui.c:2300 +#: ../src/develop/blend_gui.c:2316 msgid "sliders for b channel" msgstr "Control deslizante para el canal b" -#: ../src/develop/blend_gui.c:2304 +#: ../src/develop/blend_gui.c:2320 msgid "blue/yellow" msgstr "azul / amarillo" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "C" msgstr "C" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "sliders for chroma channel (of LCh)" msgstr "Control deslizante del canal de crominancia (de LCh)" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "h" msgstr "h" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "sliders for hue channel (of LCh)" msgstr "Control deslizante del canal de tono (de LCh)" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "g" msgstr "g" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "sliders for gray value" msgstr "Control deslizante para el gris" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/denoiseprofile.c:3710 -#: ../src/iop/rawdenoise.c:894 ../src/iop/rgbcurve.c:1358 -#: ../src/iop/rgblevels.c:1003 ../src/libs/filters/colors.c:137 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/denoiseprofile.c:3714 +#: ../src/iop/rawdenoise.c:910 ../src/iop/rgbcurve.c:1358 +#: ../src/iop/rgblevels.c:1043 ../src/libs/filters/colors.c:137 msgid "R" msgstr "R" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 msgid "sliders for red channel" msgstr "Control deslizante del canal R" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/denoiseprofile.c:3711 -#: ../src/iop/rawdenoise.c:895 ../src/iop/rgbcurve.c:1359 -#: ../src/iop/rgblevels.c:1004 ../src/libs/filters/colors.c:143 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/denoiseprofile.c:3715 +#: ../src/iop/rawdenoise.c:911 ../src/iop/rgbcurve.c:1359 +#: ../src/iop/rgblevels.c:1044 ../src/libs/filters/colors.c:143 msgid "G" msgstr "G" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 msgid "sliders for green channel" msgstr "Control deslizante del canal G" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/denoiseprofile.c:3712 -#: ../src/iop/rawdenoise.c:896 ../src/iop/rgbcurve.c:1360 -#: ../src/iop/rgblevels.c:1005 ../src/libs/filters/colors.c:146 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/denoiseprofile.c:3716 +#: ../src/iop/rawdenoise.c:912 ../src/iop/rgbcurve.c:1360 +#: ../src/iop/rgblevels.c:1045 ../src/libs/filters/colors.c:146 msgid "B" msgstr "B" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 msgid "sliders for blue channel" msgstr "Control deslizante del canal B" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "H" msgstr "H" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "sliders for hue channel (of HSL)" msgstr "Control deslizante del canal de tono (de HSL)" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "S" msgstr "S" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "sliders for chroma channel (of HSL)" msgstr "Control deslizante del canal crominancia (de HSL)" -#: ../src/develop/blend_gui.c:2357 +#: ../src/develop/blend_gui.c:2373 msgid "sliders for value channel (of HSL)" msgstr "Control deslizante del canal de valor (de HSL)" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "Jz" msgstr "Jz" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "sliders for value channel (of JzCzhz)" msgstr "Control deslizante del canal de valor (de JzCzhz)" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "Cz" msgstr "Cz" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "sliders for chroma channel (of JzCzhz)" msgstr "Control deslizante del canal de crominancia (de JzCzhz)" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "hz" msgstr "hz" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "sliders for hue channel (of JzCzhz)" msgstr "Control deslizante del canal de tono (de JzCzhz)" -#: ../src/develop/blend_gui.c:2415 +#: ../src/develop/blend_gui.c:2431 msgid "" "adjustment based on input received by this module:\n" "* range defined by upper markers: blend fully\n" @@ -8179,7 +8501,7 @@ "* rango definido por marcadores inferiores: ningún tipo de mezcla\n" "* rango entre marcadores superiores/inferiores adyacentes: mezcla gradual" -#: ../src/develop/blend_gui.c:2419 +#: ../src/develop/blend_gui.c:2435 msgid "" "adjustment based on unblended output of this module:\n" "* range defined by upper markers: blend fully\n" @@ -8191,19 +8513,19 @@ "* rango definido por marcadores inferiores: no hay mezcla\n" "* rango entre marcadores superiores/inferiores adyacentes: mezcla gradual" -#: ../src/develop/blend_gui.c:2516 +#: ../src/develop/blend_gui.c:2532 msgid "reset blend mask settings" msgstr "Reiniciar los ajustes de la máscara de fusión" -#: ../src/develop/blend_gui.c:2527 ../src/iop/atrous.c:1665 -#: ../src/iop/colorzones.c:2399 ../src/iop/denoiseprofile.c:3707 -#: ../src/iop/rawdenoise.c:891 ../src/iop/rgbcurve.c:1357 -#: ../src/iop/rgblevels.c:1002 ../src/iop/tonecurve.c:1133 +#: ../src/develop/blend_gui.c:2543 ../src/iop/atrous.c:1797 +#: ../src/iop/colorzones.c:2641 ../src/iop/denoiseprofile.c:3711 +#: ../src/iop/rawdenoise.c:907 ../src/iop/rgbcurve.c:1357 +#: ../src/iop/rgblevels.c:1041 ../src/iop/tonecurve.c:1155 msgid "channel" msgstr "canal" -#: ../src/develop/blend_gui.c:2542 ../src/iop/colorzones.c:2413 -#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1142 +#: ../src/develop/blend_gui.c:2558 ../src/iop/colorzones.c:2660 +#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1164 msgid "" "pick GUI color from image\n" "ctrl+click or right-click to select an area" @@ -8211,12 +8533,12 @@ "Elegir el color desde la imagen.\n" "Pulse Ctrl+Clic o Clic Secundario para seleccionar un área." -#: ../src/develop/blend_gui.c:2545 ../src/iop/colorzones.c:2415 +#: ../src/develop/blend_gui.c:2561 ../src/iop/colorzones.c:2662 #: ../src/iop/rgbcurve.c:1369 msgid "show color" msgstr "mostrar color" -#: ../src/develop/blend_gui.c:2554 +#: ../src/develop/blend_gui.c:2570 msgid "" "set the range based on an area from the image\n" "drag to use the input image\n" @@ -8226,20 +8548,20 @@ "Arrastrar para usar la imagen de entrada\n" "Ctrl+Arrastre para usar la imagen de salida" -#: ../src/develop/blend_gui.c:2557 +#: ../src/develop/blend_gui.c:2573 msgid "set range" msgstr "fijar rango" -#: ../src/develop/blend_gui.c:2560 +#: ../src/develop/blend_gui.c:2576 msgid "invert all channel's polarities" msgstr "Invertir la polaridad de todos los canales" -#: ../src/develop/blend_gui.c:2584 +#: ../src/develop/blend_gui.c:2600 msgid "toggle polarity. best seen by enabling 'display mask'" msgstr "" "Alternar polaridad. Activar 'mostrar máscara' para una mejor visualización" -#: ../src/develop/blend_gui.c:2613 +#: ../src/develop/blend_gui.c:2629 msgid "" "double-click to reset.\n" "press 'a' to toggle available slider modes.\n" @@ -8251,170 +8573,206 @@ "Pulsar 'C' para cambiar la vista de los datos del canal.\n" "Pulsar 'M' para cambiar la vista de la máscara." -#: ../src/develop/blend_gui.c:2640 ../src/develop/blend_gui.c:3531 -#: ../src/iop/basicadj.c:600 ../src/iop/colorbalancergb.c:2090 -#: ../src/iop/exposure.c:1120 ../src/iop/exposure.c:1135 -#: ../src/iop/filmic.c:1503 ../src/iop/filmic.c:1516 ../src/iop/filmic.c:1558 -#: ../src/iop/filmicrgb.c:4440 ../src/iop/filmicrgb.c:4451 -#: ../src/iop/filmicrgb.c:4485 ../src/iop/filmicrgb.c:4495 -#: ../src/iop/graduatednd.c:1113 ../src/iop/negadoctor.c:1011 -#: ../src/iop/profile_gamma.c:643 ../src/iop/profile_gamma.c:649 -#: ../src/iop/relight.c:262 ../src/iop/soften.c:378 ../src/iop/toneequal.c:3326 -#: ../src/iop/toneequal.c:3329 ../src/iop/toneequal.c:3332 -#: ../src/iop/toneequal.c:3335 ../src/iop/toneequal.c:3338 -#: ../src/iop/toneequal.c:3341 ../src/iop/toneequal.c:3344 -#: ../src/iop/toneequal.c:3347 ../src/iop/toneequal.c:3350 -#: ../src/iop/toneequal.c:3472 ../src/iop/toneequal.c:3481 -#: ../src/iop/toneequal.c:3494 ../src/views/darkroom.c:2453 +#: ../src/develop/blend_gui.c:2656 ../src/develop/blend_gui.c:3577 +#: ../src/iop/basicadj.c:630 ../src/iop/colorbalancergb.c:2161 +#: ../src/iop/exposure.c:1138 ../src/iop/exposure.c:1153 +#: ../src/iop/filmic.c:1528 ../src/iop/filmic.c:1541 ../src/iop/filmic.c:1583 +#: ../src/iop/filmicrgb.c:4504 ../src/iop/filmicrgb.c:4515 +#: ../src/iop/filmicrgb.c:4549 ../src/iop/filmicrgb.c:4559 +#: ../src/iop/graduatednd.c:1082 ../src/iop/negadoctor.c:1030 +#: ../src/iop/profile_gamma.c:657 ../src/iop/profile_gamma.c:663 +#: ../src/iop/relight.c:258 ../src/iop/soften.c:373 ../src/iop/toneequal.c:3379 +#: ../src/iop/toneequal.c:3382 ../src/iop/toneequal.c:3385 +#: ../src/iop/toneequal.c:3388 ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3394 ../src/iop/toneequal.c:3397 +#: ../src/iop/toneequal.c:3400 ../src/iop/toneequal.c:3403 +#: ../src/iop/toneequal.c:3525 ../src/iop/toneequal.c:3534 +#: ../src/iop/toneequal.c:3547 ../src/views/darkroom.c:2292 msgid " EV" msgstr " EV" -#: ../src/develop/blend_gui.c:2642 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:2951 ../src/develop/blend_gui.c:3014 -#: ../src/develop/blend_gui.c:3499 ../src/develop/blend_gui.c:3529 -#: ../src/develop/blend_gui.c:3542 ../src/develop/blend_gui.c:3559 -#: ../src/develop/blend_gui.c:3583 ../src/develop/blend_gui.c:3593 -#: ../src/develop/blend_gui.c:3602 ../src/develop/blend_gui.c:3613 +#: ../src/develop/blend_gui.c:2658 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:2966 ../src/develop/blend_gui.c:3029 +#: ../src/develop/blend_gui.c:3545 ../src/develop/blend_gui.c:3575 +#: ../src/develop/blend_gui.c:3588 ../src/develop/blend_gui.c:3605 +#: ../src/develop/blend_gui.c:3629 ../src/develop/blend_gui.c:3641 +#: ../src/develop/blend_gui.c:3652 ../src/develop/blend_gui.c:3663 msgid "blend" msgstr "fusión" -#: ../src/develop/blend_gui.c:2642 +#: ../src/develop/blend_gui.c:2658 msgid "boost factor" msgstr "factor de intensidad" -#: ../src/develop/blend_gui.c:2645 +#: ../src/develop/blend_gui.c:2661 msgid "adjust the boost factor of the channel mask" msgstr "Adecúa el factor de intensidad de la máscara del canal" -#: ../src/develop/blend_gui.c:2682 +#: ../src/develop/blend_gui.c:2698 #, c-format msgid "%d shape used" msgid_plural "%d shapes used" msgstr[0] "%d figura usada" msgstr[1] "%d figuras usadas" -#: ../src/develop/blend_gui.c:2687 ../src/develop/blend_gui.c:2743 -#: ../src/develop/blend_gui.c:2831 ../src/develop/blend_gui.c:2952 +#: ../src/develop/blend_gui.c:2703 ../src/develop/blend_gui.c:2759 +#: ../src/develop/blend_gui.c:2847 ../src/develop/blend_gui.c:2967 msgid "no mask used" msgstr "sin utilizar" -#: ../src/develop/blend_gui.c:2751 +#: ../src/develop/blend_gui.c:2767 msgid "toggle polarity of drawn mask" msgstr "Alternar la polaridad de la máscara trazada" -#: ../src/develop/blend_gui.c:2760 +#: ../src/develop/blend_gui.c:2776 msgid "show and edit mask elements" msgstr "Mostrar y editar los elementos de la máscara" -#: ../src/develop/blend_gui.c:2761 +#: ../src/develop/blend_gui.c:2777 msgid "show and edit in restricted mode" msgstr "Muestra y edita las figuras en modo restringido" -#: ../src/develop/blend_gui.c:2768 ../src/libs/masks.c:998 -#: ../src/libs/masks.c:1816 ../src/libs/masks.c:1820 +#: ../src/develop/blend_gui.c:2784 ../src/libs/masks.c:1014 +#: ../src/libs/masks.c:1812 ../src/libs/masks.c:1816 msgid "add gradient" msgstr "Añadir gradiente" -#: ../src/develop/blend_gui.c:2769 +#: ../src/develop/blend_gui.c:2785 msgid "add multiple gradients" msgstr "Añadir varios gradientes" -#: ../src/develop/blend_gui.c:2776 ../src/iop/retouch.c:2238 -#: ../src/libs/masks.c:978 ../src/libs/masks.c:1852 ../src/libs/masks.c:1856 +#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2466 +#: ../src/libs/masks.c:994 ../src/libs/masks.c:1848 ../src/libs/masks.c:1852 msgid "add brush" msgstr "Trazar con pincel" -#: ../src/develop/blend_gui.c:2777 ../src/iop/retouch.c:2238 +#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2466 msgid "add multiple brush strokes" msgstr "Añadir varias pinceladas" -#: ../src/develop/blend_gui.c:2784 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 ../src/libs/masks.c:993 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1829 +#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 ../src/libs/masks.c:1009 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1825 msgid "add path" msgstr "Trazar ruta" -#: ../src/develop/blend_gui.c:2785 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 +#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 msgid "add multiple paths" msgstr "Añadir varias rutas" -#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 ../src/libs/masks.c:988 ../src/libs/masks.c:1834 -#: ../src/libs/masks.c:1838 +#: ../src/develop/blend_gui.c:2808 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 ../src/libs/masks.c:1004 ../src/libs/masks.c:1830 +#: ../src/libs/masks.c:1834 msgid "add ellipse" msgstr "Añadir elipse" -#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 +#: ../src/develop/blend_gui.c:2809 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 msgid "add multiple ellipses" msgstr "Añadir varias elipses" -#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 ../src/libs/masks.c:983 ../src/libs/masks.c:1843 -#: ../src/libs/masks.c:1847 +#: ../src/develop/blend_gui.c:2816 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 ../src/libs/masks.c:999 ../src/libs/masks.c:1839 +#: ../src/libs/masks.c:1843 msgid "add circle" msgstr "Añadir círculo" -#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 +#: ../src/develop/blend_gui.c:2817 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 msgid "add multiple circles" msgstr "Añadir varios círculos" -#: ../src/develop/blend_gui.c:2961 +#: ../src/develop/blend_gui.c:2976 msgid "toggle polarity of raster mask" msgstr "Alternar polaridad de la máscara de matriz de pixeles" -#: ../src/develop/blend_gui.c:3101 +#: ../src/develop/blend_gui.c:3119 msgid "normal & difference" msgstr "modos de diferencia y normal" -#: ../src/develop/blend_gui.c:3106 +#: ../src/develop/blend_gui.c:3124 msgid "lighten" msgstr "aclarar" -#: ../src/develop/blend_gui.c:3113 +#: ../src/develop/blend_gui.c:3131 msgid "darken" msgstr "oscurecer" -#: ../src/develop/blend_gui.c:3120 +#: ../src/develop/blend_gui.c:3138 msgid "contrast enhancing" msgstr "modos de mejora del contraste" -#: ../src/develop/blend_gui.c:3127 ../src/develop/blend_gui.c:3150 +#: ../src/develop/blend_gui.c:3145 ../src/develop/blend_gui.c:3168 msgid "color channel" msgstr "modos de canal de color" -#: ../src/develop/blend_gui.c:3138 ../src/develop/blend_gui.c:3153 +#: ../src/develop/blend_gui.c:3156 ../src/develop/blend_gui.c:3171 msgid "chromaticity & lightness" msgstr "modos de crominancia y luminosidad" -#: ../src/develop/blend_gui.c:3145 +#: ../src/develop/blend_gui.c:3163 msgid "normal & arithmetic" msgstr "modos aritméticos y normales" #. add deprecated blend mode -#: ../src/develop/blend_gui.c:3166 +#: ../src/develop/blend_gui.c:3184 msgid "deprecated" msgstr "modos obsoletos" -#: ../src/develop/blend_gui.c:3478 +#. should never happen: unknown blend mode +#: ../src/develop/blend_gui.c:3188 +#, c-format +msgid "unknown blend mode '%d' in module '%s'" +msgstr "Modo de fusión \"%d\" desconocido en el módulo \"%s\"" + +#: ../src/develop/blend_gui.c:3497 msgid "blending options" msgstr "Opciones de fusión" -#: ../src/develop/blend_gui.c:3500 ../src/libs/history.c:949 -msgid "blend mode" -msgstr "modo de fusión" +#: ../src/develop/blend_gui.c:3516 +msgid "blend mask" +msgstr "máscara de fusión" -#: ../src/develop/blend_gui.c:3503 +#: ../src/develop/blend_gui.c:3520 +msgid "display mask and/or color channel" +msgstr "mostrar la máscara o el canal de color" + +# y/o: Se desaconseja esta forma. En español "o" puede tener valor exclusivo (es decir, si se dan dos opciones solo puede ser una y no las dos a la vez) o inclusivo (puede ser solo una o podrían ser ambas). +#: ../src/develop/blend_gui.c:3525 +msgid "" +"display mask and/or color channel.\n" +"ctrl+click to display mask,\n" +"shift+click to display channel.\n" +"hover over parametric mask slider to select channel for display" +msgstr "" +"Mostrar la máscara o el canal de color.\n" +"Pulse Ctrl+Clic para mostrar la máscara.\n" +"Pulse Mayús+Clic para mostrar el canal.\n" +"Pase el cursor sobre el control deslizante de la máscara paramétrica para " +"seleccionar el canal de visualización." + +#: ../src/develop/blend_gui.c:3532 +msgid "temporarily switch off blend mask" +msgstr "desactivar temporalmente la máscara de fusión" + +#: ../src/develop/blend_gui.c:3537 +msgid "" +"temporarily switch off blend mask.\n" +"only for module in focus" +msgstr "" +"Desactivar la máscara de fusión temporalmente.\n" +"(Solo para el módulo en uso)." + +#: ../src/develop/blend_gui.c:3549 msgid "choose blending mode" msgstr "Elegir el modo de fusión" -#: ../src/develop/blend_gui.c:3513 +#: ../src/develop/blend_gui.c:3559 msgid "toggle blend order" msgstr "alternar el orden de fusión" -#: ../src/develop/blend_gui.c:3519 +#: ../src/develop/blend_gui.c:3565 msgid "" "toggle the blending order between the input and the output of the module,\n" "by default the output will be blended on top of the input,\n" @@ -8424,29 +8782,29 @@ "Por defecto, la salida se mezclará sobre la de entrada.\n" "El orden puede invertirse pulsando en el ícono (la entrada sobre la salida)." -#: ../src/develop/blend_gui.c:3530 ../src/libs/history.c:953 -msgid "blend fulcrum" -msgstr "punto de referencia de la fusión" +#: ../src/develop/blend_gui.c:3576 +msgid "fulcrum" +msgstr "punto de referencia" -#: ../src/develop/blend_gui.c:3534 +#: ../src/develop/blend_gui.c:3580 msgid "adjust the fulcrum used by some blending operations" msgstr "Adecúa el punto de referencia para algunas operaciones de fusión" #. Add opacity/scale sliders to table -#: ../src/develop/blend_gui.c:3542 ../src/iop/watermark.c:1314 -#: ../src/libs/masks.c:104 +#: ../src/develop/blend_gui.c:3588 ../src/iop/watermark.c:1362 +#: ../src/libs/masks.c:105 msgid "opacity" msgstr "opacidad" -#: ../src/develop/blend_gui.c:3546 +#: ../src/develop/blend_gui.c:3591 msgid "set the opacity of the blending" msgstr "Opacidad de la fusión" -#: ../src/develop/blend_gui.c:3550 ../src/libs/history.c:956 +#: ../src/develop/blend_gui.c:3596 ../src/libs/history.c:956 msgid "combine masks" msgstr "combinar máscaras" -#: ../src/develop/blend_gui.c:3552 +#: ../src/develop/blend_gui.c:3598 msgid "" "how to combine individual drawn mask and different channels of parametric " "mask" @@ -8454,11 +8812,11 @@ "Modo de combinar las máscaras individuales y los diferentes canales de la " "máscara paramétrica" -#: ../src/develop/blend_gui.c:3559 +#: ../src/develop/blend_gui.c:3605 msgid "details threshold" msgstr "umbral de detalles" -#: ../src/develop/blend_gui.c:3563 +#: ../src/develop/blend_gui.c:3609 msgid "" "adjust the threshold for the details mask (using raw data),\n" "positive values select areas with strong details,\n" @@ -8469,11 +8827,11 @@ "Los valores positivos seleccionan áreas con detalles marcados.\n" "Los valores negativos seleccionan áreas planas." -#: ../src/develop/blend_gui.c:3571 ../src/libs/history.c:959 +#: ../src/develop/blend_gui.c:3617 ../src/libs/history.c:959 msgid "feathering guide" msgstr "guía de difuminado" -#: ../src/develop/blend_gui.c:3574 +#: ../src/develop/blend_gui.c:3620 msgid "" "choose to guide mask by input or output image and\n" "choose to apply feathering before or after mask blur" @@ -8481,28 +8839,28 @@ "Elegir la máscara guía para la imagen de entrada o salida y\n" "optar por aplicar el difuminado antes o después del desenfoque de máscara." -#: ../src/develop/blend_gui.c:3583 ../src/libs/history.c:958 +#: ../src/develop/blend_gui.c:3629 ../src/libs/history.c:958 msgid "feathering radius" msgstr "radio de difuminado" -#: ../src/develop/blend_gui.c:3586 +#: ../src/develop/blend_gui.c:3632 msgid "spatial radius of feathering" msgstr "Extensión espacial del difuminado" -#: ../src/develop/blend_gui.c:3593 +#: ../src/develop/blend_gui.c:3641 msgid "blurring radius" msgstr "radio de desenfoque" -#: ../src/develop/blend_gui.c:3596 +#: ../src/develop/blend_gui.c:3644 msgid "radius for gaussian blur of blend mask" msgstr "Radio del desenfoque gaussiano de la máscara de fusión" -#: ../src/develop/blend_gui.c:3602 ../src/iop/retouch.c:2453 +#: ../src/develop/blend_gui.c:3652 ../src/iop/retouch.c:2738 #: ../src/libs/history.c:954 msgid "mask opacity" msgstr "opacidad de la máscara" -#: ../src/develop/blend_gui.c:3606 +#: ../src/develop/blend_gui.c:3656 msgid "" "shifts and tilts the tone curve of the blend mask to adjust its brightness\n" "without affecting fully transparent/fully opaque regions" @@ -8510,58 +8868,36 @@ "Oscila la curva de tono de la máscara de fusión para ajustar el brillo,\n" "sin afectar las regiones totalmente transparentes u opacas." -#: ../src/develop/blend_gui.c:3613 ../src/libs/history.c:962 +#: ../src/develop/blend_gui.c:3663 ../src/libs/history.c:962 msgid "mask contrast" msgstr "contraste de la máscara" -#: ../src/develop/blend_gui.c:3617 +#: ../src/develop/blend_gui.c:3667 msgid "" "gives the tone curve of the blend mask an s-like shape to adjust its contrast" msgstr "" "Moldea la curva de tono de la máscara de fusión a un estilo S para ajustar " "el contraste" -#: ../src/develop/blend_gui.c:3621 +#: ../src/develop/blend_gui.c:3671 msgid "mask refinement" msgstr "afinar máscara" -#: ../src/develop/blend_gui.c:3625 -msgid "display mask and/or color channel" -msgstr "mostrar la máscara o el canal de color" - -# y/o: Se desaconseja esta forma. En español "o" puede tener valor exclusivo (es decir, si se dan dos opciones solo puede ser una y no las dos a la vez) o inclusivo (puede ser solo una o podrían ser ambas). -#: ../src/develop/blend_gui.c:3630 +#: ../src/develop/develop.c:732 msgid "" -"display mask and/or color channel.\n" -"ctrl+click to display mask,\n" -"shift+click to display channel.\n" -"hover over parametric mask slider to select channel for display" +"autosaving history has been disabled for this session because of a slow " +"drive used" msgstr "" -"Mostrar la máscara o el canal de color.\n" -"Pulse Ctrl+Clic para mostrar la máscara.\n" -"Pulse Mayús+Clic para mostrar el canal.\n" -"Pase el cursor sobre el control deslizante de la máscara paramétrica para " -"seleccionar el canal de visualización." - -#: ../src/develop/blend_gui.c:3637 -msgid "temporarily switch off blend mask" -msgstr "desactivar temporalmente la máscara de fusión" +"Se ha desactivado el guardado automático del historial de esta sesión a " +"causa de la lentitud de la unidad utilizada" -#: ../src/develop/blend_gui.c:3642 -msgid "" -"temporarily switch off blend mask.\n" -"only for module in focus" -msgstr "" -"Desactivar temporalmente la máscara de fusión.\n" -"(Solo para el módulo enfocado)." - -#: ../src/develop/develop.c:2303 +#: ../src/develop/develop.c:2202 #, c-format msgid "%s: module `%s' version mismatch: %d != %d" msgstr "%s: módulo «%s» versión incoincidente: %d != %d" -#: ../src/develop/develop.c:2834 -msgid "module duplicate, can't move new instance after the base one\n" +#: ../src/develop/develop.c:3016 +msgid "duplicate module, can't move new instance after the base one\n" msgstr "" "Módulo duplicado: no es posible mover el duplicado después del módulo base.\n" @@ -8573,70 +8909,69 @@ msgid "duplicate instance" msgstr "duplicar módulo" -#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3739 -#: ../src/libs/masks.c:1152 +#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3772 +#: ../src/libs/masks.c:1146 msgid "move up" msgstr "subir" -#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3740 -#: ../src/libs/masks.c:1157 +#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3773 +#: ../src/libs/masks.c:1151 msgid "move down" msgstr "bajar" #. delete button label and tooltip will be updated based on trash pref -#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3742 -#: ../src/gui/accelerators.c:155 ../src/gui/presets.c:562 -#: ../src/libs/image.c:285 ../src/libs/image.c:480 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 +#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3775 +#: ../src/gui/accelerators.c:173 ../src/libs/image.c:303 +#: ../src/libs/image.c:513 msgid "delete" msgstr "borrar" -#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3743 -#: ../src/libs/modulegroups.c:3464 ../src/libs/modulegroups.c:3815 +#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3776 +#: ../src/libs/modulegroups.c:3817 msgid "rename" msgstr "renombrar" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched on" msgstr "«%s» está activado" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched off" msgstr "«%s» está desactivado" -#: ../src/develop/imageop.c:2654 +#: ../src/develop/imageop.c:2663 msgid "unknown mask" msgstr "máscara desconocida" -#: ../src/develop/imageop.c:2658 +#: ../src/develop/imageop.c:2667 msgid "drawn + parametric mask" msgstr "trazo + máscara paramétrica" -#: ../src/develop/imageop.c:2667 +#: ../src/develop/imageop.c:2676 #, c-format msgid "this module has a `%s'" msgstr "Este módulo contiene «%s» :" -#: ../src/develop/imageop.c:2672 +#: ../src/develop/imageop.c:2681 #, c-format msgid "taken from module %s" msgstr "Tomado del módulo %s" -#: ../src/develop/imageop.c:2677 +#: ../src/develop/imageop.c:2686 msgid "click to display (module must be activated first)" msgstr "Pulse para mostrar (el módulo tiene que estar activo)" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "purpose" msgstr "finalidad\t" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "process" msgstr "proceso" -#: ../src/develop/imageop.c:2906 +#: ../src/develop/imageop.c:2917 msgid "" "multiple instance actions\n" "right-click creates new instance" @@ -8644,7 +8979,7 @@ "Gestión de acciones para el módulo.\n" "Pulse el botón secundario para crear un módulo nuevo." -#: ../src/develop/imageop.c:2921 +#: ../src/develop/imageop.c:2932 msgid "" "reset parameters\n" "ctrl+click to reapply any automatic presets" @@ -8652,7 +8987,7 @@ "Reiniciar parámetros\n" "Ctrl+Clic para volver a aplicar cualquier preajuste automático" -#: ../src/develop/imageop.c:2933 +#: ../src/develop/imageop.c:2944 msgid "" "presets\n" "right-click to apply on new instance" @@ -8661,15 +8996,15 @@ "Pulse el botón secundario sobre el preajuste para establecerlo en un módulo " "nuevo" -#: ../src/develop/imageop.c:3183 ../src/develop/imageop.c:3205 +#: ../src/develop/imageop.c:3211 ../src/develop/imageop.c:3233 msgid "ERROR" msgstr "ERROR" -#: ../src/develop/imageop.c:3620 +#: ../src/develop/imageop.c:3639 msgid "unsupported input" msgstr "Entrada incompatible" -#: ../src/develop/imageop.c:3621 +#: ../src/develop/imageop.c:3640 msgid "" "you have placed this module at\n" "a position in the pipeline where\n" @@ -8681,49 +9016,49 @@ "debido a que el formato de los datos\n" "no corresponde a los requerimientos." -#: ../src/develop/imageop.c:3738 ../src/develop/imageop.c:3748 -#: ../src/gui/accelerators.c:151 ../src/libs/lib.c:1414 +#: ../src/develop/imageop.c:3771 ../src/develop/imageop.c:3781 +#: ../src/gui/accelerators.c:169 ../src/libs/lib.c:1415 msgid "show" msgstr "mostrar" -#: ../src/develop/imageop.c:3741 ../src/libs/modulegroups.c:3310 -#: ../src/libs/modulegroups.c:3436 ../src/libs/modulegroups.c:3817 -#: ../src/libs/tagging.c:3248 +#: ../src/develop/imageop.c:3774 ../src/libs/modulegroups.c:3315 +#: ../src/libs/modulegroups.c:3438 ../src/libs/modulegroups.c:3819 +#: ../src/libs/tagging.c:3279 msgid "new" msgstr "nueva" -#: ../src/develop/imageop.c:3744 ../src/libs/duplicate.c:405 -#: ../src/libs/image.c:495 ../src/libs/modulegroups.c:3813 +#: ../src/develop/imageop.c:3777 ../src/libs/duplicate.c:411 +#: ../src/libs/image.c:534 ../src/libs/modulegroups.c:3815 msgid "duplicate" msgstr "duplicar" -#: ../src/develop/imageop.c:3749 +#: ../src/develop/imageop.c:3782 msgid "enable" msgstr "habilitar" -#: ../src/develop/imageop.c:3750 ../src/gui/accelerators.c:167 +#: ../src/develop/imageop.c:3783 ../src/gui/accelerators.c:185 msgid "focus" msgstr "foco" -#: ../src/develop/imageop.c:3751 ../src/gui/accelerators.c:2617 +#: ../src/develop/imageop.c:3784 ../src/gui/accelerators.c:2874 msgid "instance" msgstr "módulo" -#: ../src/develop/imageop.c:3752 ../src/gui/accelerators.c:112 -#: ../src/gui/accelerators.c:122 ../src/gui/gtk.c:3009 ../src/gui/gtk.c:3056 -#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:603 -#: ../src/gui/styles_dialog.c:625 ../src/iop/atrous.c:1512 -#: ../src/libs/lib.c:1415 ../src/libs/modulegroups.c:3882 +#: ../src/develop/imageop.c:3785 ../src/gui/accelerators.c:130 +#: ../src/gui/accelerators.c:140 ../src/gui/gtk.c:3055 ../src/gui/gtk.c:3102 +#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:615 +#: ../src/gui/styles_dialog.c:637 ../src/iop/atrous.c:1626 +#: ../src/libs/lib.c:1416 ../src/libs/modulegroups.c:3884 msgid "reset" msgstr "restablecer" #. Adding the outer container -#: ../src/develop/imageop.c:3753 ../src/gui/preferences.c:798 -#: ../src/libs/lib.c:1416 +#: ../src/develop/imageop.c:3786 ../src/gui/preferences.c:796 +#: ../src/libs/lib.c:1417 msgid "presets" msgstr "preajustes" -#: ../src/develop/imageop.c:3773 +#: ../src/develop/imageop.c:3806 msgid "processing module" msgstr "módulo de revelado" @@ -8736,54 +9071,54 @@ "%s\n" "Ctrl+Clic para %s" -#: ../src/develop/lightroom.c:1083 +#: ../src/develop/lightroom.c:1137 msgid "cannot find Lightroom XMP!" msgstr "No se encuentra el XMP de Lightroom" -#: ../src/develop/lightroom.c:1115 ../src/develop/lightroom.c:1137 -#: ../src/develop/lightroom.c:1157 +#: ../src/develop/lightroom.c:1169 ../src/develop/lightroom.c:1191 +#: ../src/develop/lightroom.c:1211 #, c-format msgid "`%s' is not a Lightroom XMP!" msgstr "«%s» no es un XMP de Lightroom" -#: ../src/develop/lightroom.c:1556 +#: ../src/develop/lightroom.c:1613 #, c-format msgid "%s has been imported" msgid_plural "%s have been imported" msgstr[0] "%s ha sido importado" msgstr[1] "%s han sido importados" -#: ../src/develop/masks/brush.c:1356 ../src/develop/masks/brush.c:1410 +#: ../src/develop/masks/brush.c:1346 ../src/develop/masks/brush.c:1400 #, c-format msgid "hardness: %3.2f%%" msgstr "Dureza: %3.2f%%" -#: ../src/develop/masks/brush.c:1372 ../src/develop/masks/brush.c:1470 +#: ../src/develop/masks/brush.c:1362 ../src/develop/masks/brush.c:1460 #: ../src/develop/masks/circle.c:148 ../src/develop/masks/circle.c:193 #: ../src/develop/masks/ellipse.c:484 ../src/develop/masks/ellipse.c:546 -#: ../src/develop/masks/path.c:1273 +#: ../src/develop/masks/path.c:1255 #, c-format msgid "size: %3.2f%%" msgstr "Tamaño: %3.2f%%" -#: ../src/develop/masks/brush.c:3247 +#: ../src/develop/masks/brush.c:3191 msgid "[BRUSH] change size" msgstr "[PINCEL] ajustar tamaño" -#: ../src/develop/masks/brush.c:3249 +#: ../src/develop/masks/brush.c:3193 msgid "[BRUSH] change hardness" msgstr "[PINCEL] ajustar dureza" -#: ../src/develop/masks/brush.c:3251 +#: ../src/develop/masks/brush.c:3195 msgid "[BRUSH] change opacity" msgstr "[PINCEL] ajustar opacidad" -#: ../src/develop/masks/brush.c:3263 +#: ../src/develop/masks/brush.c:3207 #, c-format msgid "brush #%d" msgstr "pincel #%d" -#: ../src/develop/masks/brush.c:3276 +#: ../src/develop/masks/brush.c:3220 #, c-format msgid "" "<b>size</b>: scroll, <b>hardness</b>: shift+scroll\n" @@ -8792,35 +9127,35 @@ "<b>Tamaño</b>: Rueda del Ratón, <b>Dureza</b>: Mayús+Rueda del Ratón\n" "<b>Opacidad</b>: Ctrl+Rueda del Ratón (%d%%)" -#: ../src/develop/masks/brush.c:3279 +#: ../src/develop/masks/brush.c:3223 msgid "<b>size</b>: scroll" msgstr "<b>Tamaño</b>: Rueda del Ratón" #: ../src/develop/masks/circle.c:137 ../src/develop/masks/circle.c:181 #: ../src/develop/masks/ellipse.c:470 ../src/develop/masks/ellipse.c:531 -#: ../src/develop/masks/path.c:1205 +#: ../src/develop/masks/path.c:1187 #, c-format msgid "feather size: %3.2f%%" msgstr "Difuminado: %3.2f%%" -#: ../src/develop/masks/circle.c:1510 +#: ../src/develop/masks/circle.c:1462 msgid "[CIRCLE] change size" msgstr "[CÍRCULO] cambiar tamaño" -#: ../src/develop/masks/circle.c:1512 +#: ../src/develop/masks/circle.c:1464 msgid "[CIRCLE] change feather size" msgstr "[CÍRCULO] cambiar área de difuminado" -#: ../src/develop/masks/circle.c:1514 +#: ../src/develop/masks/circle.c:1466 msgid "[CIRCLE] change opacity" msgstr "[CÍRCULO] cambiar opacidad" -#: ../src/develop/masks/circle.c:1527 +#: ../src/develop/masks/circle.c:1479 #, c-format msgid "circle #%d" msgstr "círculo #%d" -#: ../src/develop/masks/circle.c:1538 ../src/develop/masks/path.c:3490 +#: ../src/develop/masks/circle.c:1490 ../src/develop/masks/path.c:3406 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8834,32 +9169,32 @@ msgid "rotation: %3.f°" msgstr "Rotación: %3.f°" -#: ../src/develop/masks/ellipse.c:2068 +#: ../src/develop/masks/ellipse.c:2015 msgid "[ELLIPSE] change size" msgstr "[ELIPSE] cambiar tamaño" -#: ../src/develop/masks/ellipse.c:2071 +#: ../src/develop/masks/ellipse.c:2018 msgid "[ELLIPSE] change feather size" msgstr "[ELIPSE] cambiar área de difuminado" -#: ../src/develop/masks/ellipse.c:2074 ../src/develop/masks/ellipse.c:2083 +#: ../src/develop/masks/ellipse.c:2021 ../src/develop/masks/ellipse.c:2030 msgid "[ELLIPSE] rotate shape" msgstr "[ELIPSE] rotar figura" -#: ../src/develop/masks/ellipse.c:2077 +#: ../src/develop/masks/ellipse.c:2024 msgid "[ELLIPSE] change opacity" msgstr "[ELIPSE] cambiar opacidad" -#: ../src/develop/masks/ellipse.c:2080 +#: ../src/develop/masks/ellipse.c:2027 msgid "[ELLIPSE] switch feathering mode" msgstr "[ELIPSE] cambiar el modo de difuminado" -#: ../src/develop/masks/ellipse.c:2090 +#: ../src/develop/masks/ellipse.c:2037 #, c-format msgid "ellipse #%d" msgstr "elipse #%d" -#: ../src/develop/masks/ellipse.c:2128 +#: ../src/develop/masks/ellipse.c:2075 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8869,16 +9204,16 @@ "<b>Rotación</b>: Ctrl+Mayús+Rueda del Ratón, <b>Opacidad</b>: Ctrl+Rueda del " "Ratón (%d%%)" -#: ../src/develop/masks/ellipse.c:2132 +#: ../src/develop/masks/ellipse.c:2079 msgid "<b>rotate</b>: ctrl+drag" msgstr "<b>Rotar</b>: Ctrl+Arrastre" -#: ../src/develop/masks/ellipse.c:2135 +#: ../src/develop/masks/ellipse.c:2082 #, c-format msgid "" "<b>feather mode</b>: shift+click, <b>rotate</b>: ctrl+drag\n" -"<b>size</b>: scroll, <b>feather size</b>: shift+scroll, <b>opacity</b>: ctrl" -"+scroll (%d%%)" +"<b>size</b>: scroll, <b>feather size</b>: shift+scroll, <b>opacity</b>: " +"ctrl+scroll (%d%%)" msgstr "" "<b>Modo de difuminado</b>: Mayús+Clic, <b>Rotación</b>: Ctrl+Arrastre\n" "<b>Tamaño</b>: Desplazamiento, <b>Difuminado</b>: Mayús+Desplazamiento, " @@ -8894,32 +9229,32 @@ msgid "curvature: %3.2f%%" msgstr "Curvatura: %3.2f%%" -#: ../src/develop/masks/gradient.c:1555 +#: ../src/develop/masks/gradient.c:1514 msgid "[GRADIENT on pivot] rotate shape" msgstr "[GRADIENTE en el pivote] rotar figura" -#: ../src/develop/masks/gradient.c:1557 +#: ../src/develop/masks/gradient.c:1516 msgid "[GRADIENT creation] set rotation" msgstr "[creación de GRADIENTE] fijar rotación" -#: ../src/develop/masks/gradient.c:1559 +#: ../src/develop/masks/gradient.c:1518 msgid "[GRADIENT] change curvature" msgstr "[GRADIENTE] cambiar curvatura" -#: ../src/develop/masks/gradient.c:1561 +#: ../src/develop/masks/gradient.c:1520 msgid "[GRADIENT] change compression" msgstr "[GRADIENTE] cambiar transición" -#: ../src/develop/masks/gradient.c:1563 +#: ../src/develop/masks/gradient.c:1522 msgid "[GRADIENT] change opacity" msgstr "[GRADIENTE] cambiar opacidad" -#: ../src/develop/masks/gradient.c:1576 +#: ../src/develop/masks/gradient.c:1535 #, c-format msgid "gradient #%d" msgstr "gradiente #%d" -#: ../src/develop/masks/gradient.c:1587 +#: ../src/develop/masks/gradient.c:1546 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8928,7 +9263,7 @@ "<b>Curvatura</b>: Rueda del Ratón, <b>Compresión</b>: Mayús+Rueda del Ratón\n" "<b>Rotación</b>: Clic+Arrastre, <b>Opacidad</b>: Ctrl+Rueda del Ratón (%d%%)" -#: ../src/develop/masks/gradient.c:1592 +#: ../src/develop/masks/gradient.c:1551 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8938,7 +9273,7 @@ "del Ratón\n" "<b>Opacidad</b>: Ctrl+Rueda del Ratón (%d%%)" -#: ../src/develop/masks/gradient.c:1595 +#: ../src/develop/masks/gradient.c:1554 msgid "<b>rotate</b>: drag" msgstr "<b>Rotar</b>: Arrastre" @@ -8946,84 +9281,84 @@ msgid "[SHAPE] remove shape" msgstr "[FIGURA] quitar figura" -#: ../src/develop/masks/masks.c:306 +#: ../src/develop/masks/masks.c:305 #, c-format msgid "group `%s'" msgstr "agrupar «%s»" -#: ../src/develop/masks/masks.c:423 +#: ../src/develop/masks/masks.c:422 #, c-format msgid "copy of `%s'" msgstr "copia de «%s»" -#: ../src/develop/masks/masks.c:984 +#: ../src/develop/masks/masks.c:985 #, c-format msgid "%s: mask version mismatch: %d != %d" msgstr "%s: no coincide la versión de máscara: %d != %d" -#: ../src/develop/masks/masks.c:1239 ../src/develop/masks/masks.c:1906 +#: ../src/develop/masks/masks.c:1230 ../src/develop/masks/masks.c:1881 #, c-format msgid "opacity: %.0f%%" msgstr "opacidad: %.0f%%" -#: ../src/develop/masks/masks.c:1650 ../src/libs/masks.c:1068 +#: ../src/develop/masks/masks.c:1625 ../src/libs/masks.c:1084 msgid "add existing shape" msgstr "Añadir una figura existente" -#: ../src/develop/masks/masks.c:1677 +#: ../src/develop/masks/masks.c:1652 msgid "use same shapes as" msgstr "Ocupar las mismas figuras de" -#: ../src/develop/masks/masks.c:1990 +#: ../src/develop/masks/masks.c:1965 msgid "masks can not contain themselves" msgstr "Las máscaras no pueden contenerse a sí mismas" -#: ../src/develop/masks/path.c:3433 +#: ../src/develop/masks/path.c:3349 msgid "[PATH creation] add a smooth node" msgstr "[creación de RUTA] añadir un nodo romo" -#: ../src/develop/masks/path.c:3435 +#: ../src/develop/masks/path.c:3351 msgid "[PATH creation] add a sharp node" msgstr "[creación de RUTA] agregar nodo angulado" -#: ../src/develop/masks/path.c:3437 +#: ../src/develop/masks/path.c:3353 msgid "[PATH creation] terminate path creation" msgstr "[creación de RUTA] finalizar la creación de la ruta" -#: ../src/develop/masks/path.c:3439 +#: ../src/develop/masks/path.c:3355 msgid "[PATH on node] switch between smooth/sharp node" msgstr "[RUTA en el nodo] alternar entre nodo romo o angulado" -#: ../src/develop/masks/path.c:3441 +#: ../src/develop/masks/path.c:3357 msgid "[PATH on node] remove the node" msgstr "[RUTA en el nodo] quitar el nodo" -#: ../src/develop/masks/path.c:3443 +#: ../src/develop/masks/path.c:3359 msgid "[PATH on feather] reset curvature" msgstr "[RUTA en el suavizado] restablecer curvatura" -#: ../src/develop/masks/path.c:3445 +#: ../src/develop/masks/path.c:3361 msgid "[PATH on segment] add node" msgstr "[RUTA en el segmento] añadir nodo" -#: ../src/develop/masks/path.c:3447 +#: ../src/develop/masks/path.c:3363 msgid "[PATH] change size" msgstr "[RUTA] ajustar tamaño" -#: ../src/develop/masks/path.c:3449 +#: ../src/develop/masks/path.c:3365 msgid "[PATH] change feather size" msgstr "[RUTA] ajustar dureza" -#: ../src/develop/masks/path.c:3451 +#: ../src/develop/masks/path.c:3367 msgid "[PATH] change opacity" msgstr "[RUTA] ajustar opacidad" -#: ../src/develop/masks/path.c:3463 +#: ../src/develop/masks/path.c:3379 #, c-format msgid "path #%d" msgstr "ruta #%d" -#: ../src/develop/masks/path.c:3473 +#: ../src/develop/masks/path.c:3389 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>cancel</b>: right-click" @@ -9031,7 +9366,7 @@ "<b>Añadir nodo</b>: Pulsar, <b>Añadir nodo angulado</b>: Ctrl+Clic\n" "<b>Cancelar</b>: Clic secundario" -#: ../src/develop/masks/path.c:3476 +#: ../src/develop/masks/path.c:3392 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>finish path</b>: right-click" @@ -9039,7 +9374,7 @@ "<b>Añadir nodo</b>: Pulsar, <b>Añadir nodo angulado</b>: Ctrl+Clic\n" "<b>Finalizar ruta</b>: Clic secundario" -#: ../src/develop/masks/path.c:3479 +#: ../src/develop/masks/path.c:3395 msgid "" "<b>move node</b>: drag, <b>remove node</b>: right-click\n" "<b>switch smooth/sharp mode</b>: ctrl+click" @@ -9047,7 +9382,7 @@ "<b>Mover nodo</b>: Arrastrar, <b>Eliminar nodo</b>: Clic secundario\n" "<b>Alternar modo (romo/angulado) </b>: Ctrl+Clic" -#: ../src/develop/masks/path.c:3483 +#: ../src/develop/masks/path.c:3399 msgid "" "<b>node curvature</b>: drag\n" "<b>reset curvature</b>: right-click" @@ -9055,7 +9390,7 @@ "<b>Curvatura del nodo</b>: Arrastrar\n" "<b>Reiniciar curvatura</b>: Clic secundario" -#: ../src/develop/masks/path.c:3487 +#: ../src/develop/masks/path.c:3403 msgid "" "<b>move segment</b>: drag\n" "<b>add node</b>: ctrl+click" @@ -9063,11 +9398,11 @@ "<b>Mover segmento</b>: Arrastrar\n" "<b>Añadir nodo</b>: Ctrl+Clic" -#: ../src/develop/pixelpipe_hb.c:500 +#: ../src/develop/pixelpipe_hb.c:486 msgid "enabled as required" msgstr "Habilitado por ser requerido" -#: ../src/develop/pixelpipe_hb.c:501 +#: ../src/develop/pixelpipe_hb.c:487 msgid "" "history had module disabled but it is required for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -9077,11 +9412,11 @@ "Probablemente ocurrió por aplicar un preajuste o estilo, o al copiar y pegar " "un historial." -#: ../src/develop/pixelpipe_hb.c:508 +#: ../src/develop/pixelpipe_hb.c:494 msgid "disabled as not appropriate" msgstr "Deshabilitado por no ser apto" -#: ../src/develop/pixelpipe_hb.c:509 +#: ../src/develop/pixelpipe_hb.c:495 msgid "" "history had module enabled but it is not allowed for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -9091,15 +9426,29 @@ "Probablemente ocurrió por aplicar un preajuste o estilo, o al copiar y pegar " "un historial." -#: ../src/develop/pixelpipe_hb.c:2705 +#: ../src/develop/pixelpipe_hb.c:2697 msgid "" -"darktable discovered problems with your OpenCL setup; disabling OpenCL for " -"this session!" -msgstr "" -"darktable ha descubierto un problema con la configuración OpenCL: desactive " -"OpenCL para esta sesión" +"OpenCL errors encountered; disabling OpenCL for this session! some possible " +"causes:\n" +" - OpenCL out of resources due to preference settings. please try with " +"defaults,\n" +" - buggy driver for some device. please run darktable with `-d opencl' to " +"identify,\n" +" - some drivers don't support needed number of events,\n" +" - too small headroom settings while using 'use all device memory'." +msgstr "" +"Se han encontrado errores para OpenCL, por lo que se recomienda " +"deshabilitarlo para esta sesión. Algunas posibles causas :\n" +" • Sin recursos disponibles para OpenCL debido a la configuración en " +"preferencias. Intente con valores predeterminados.\n" +" • Defectos en el controlador del dispositivo. Ejecute darktable con el " +"argumento '-d opencl' para identificar los errores.\n" +" • La cantidad de eventos solicitados no es admitida por los " +"controladores.\n" +" • Muy poco margen de espacio libre debido a la opción elegida «Utilizar " +"toda la memoria del dispositivo»." -#: ../src/develop/pixelpipe_hb.c:2853 +#: ../src/develop/pixelpipe_hb.c:2847 #, c-format msgid "" "module '%s' can't get raster mask from module\n" @@ -9110,30 +9459,32 @@ "«%s», ya que se procesa en una posición posterior en el orden de procesado.\n" "Se ha omitido la máscara de matriz de pixeles." -#: ../src/develop/tiling.c:820 ../src/develop/tiling.c:1173 +#: ../src/develop/tiling.c:819 ../src/develop/tiling.c:1172 #, c-format -msgid "tiling failed for module '%s'. output might be garbled." +msgid "" +"tiling failed for module '%s'. the output most likely will be OK, but you " +"might want to check." msgstr "" -"El proceso por bandas ha fallado para el módulo «%s». La salida podría ser " -"ilegible." +"El proceso por bandas ha fallado para el módulo «%s». Es muy probable que la " +"salida sea correcta, aunque quizá desee comprobarlo." -#: ../src/dtgtk/culling.c:254 +#: ../src/dtgtk/culling.c:223 msgid "you have reached the start of your selection" msgstr "Se ha llegado al inicio de la selección." -#: ../src/dtgtk/culling.c:263 +#: ../src/dtgtk/culling.c:232 msgid "you have reached the start of your collection" msgstr "Se ha llegado al inicio de la colección." -#: ../src/dtgtk/culling.c:310 +#: ../src/dtgtk/culling.c:279 msgid "you have reached the end of your selection" msgstr "Se ha llegado al final de la selección." -#: ../src/dtgtk/culling.c:337 +#: ../src/dtgtk/culling.c:306 msgid "you have reached the end of your collection" msgstr "Se ha llegado al final de la colección." -#: ../src/dtgtk/culling.c:446 +#: ../src/dtgtk/culling.c:415 #, c-format msgid "zooming is limited to %d images" msgstr "El zoom está limitado a %d imágenes." @@ -9230,7 +9581,7 @@ msgid "fixed" msgstr "fijo" -#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1493 +#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1498 msgid "relative" msgstr "relativo" @@ -9244,7 +9595,7 @@ msgstr "mín." #: ../src/dtgtk/range.c:630 ../src/dtgtk/range.c:1780 ../src/dtgtk/range.c:1831 -#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:282 +#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:309 msgid "max" msgstr "máx." @@ -9253,7 +9604,7 @@ msgstr "tipo de fecha" #. the date section -#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1505 msgid "date" msgstr "fecha" @@ -9278,7 +9629,7 @@ msgstr "días:" #. the time section -#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1505 msgid "time" msgstr "tiempo" @@ -9296,8 +9647,8 @@ msgstr "Establecer el valor para que siempre coincida con la fecha actual" #. apply button -#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:162 -#: ../src/libs/metadata.c:901 ../src/libs/styles.c:897 +#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:180 +#: ../src/libs/metadata.c:735 ../src/libs/styles.c:901 msgid "apply" msgstr "establecer" @@ -9331,40 +9682,40 @@ msgid "grouped images" msgstr "Imágenes agrupadas" -#: ../src/dtgtk/thumbnail.c:820 ../src/dtgtk/thumbnail.c:1635 -#: ../src/iop/ashift.c:6191 ../src/iop/ashift.c:6280 ../src/iop/ashift.c:6282 -#: ../src/iop/ashift.c:6284 ../src/libs/navigation.c:110 -#: ../src/libs/navigation.c:190 +#: ../src/dtgtk/thumbnail.c:818 ../src/dtgtk/thumbnail.c:1627 +#: ../src/iop/ashift.c:6138 ../src/iop/ashift.c:6227 ../src/iop/ashift.c:6229 +#: ../src/iop/ashift.c:6231 ../src/libs/navigation.c:111 +#: ../src/libs/navigation.c:193 msgid "fit" msgstr "normal" -#: ../src/dtgtk/thumbtable.c:1041 ../src/views/slideshow.c:421 +#: ../src/dtgtk/thumbtable.c:1139 ../src/views/slideshow.c:422 msgid "there are no images in this collection" msgstr "sin imágenes en la colección presente" -#: ../src/dtgtk/thumbtable.c:1048 +#: ../src/dtgtk/thumbtable.c:1146 msgid "if you have not imported any images yet" msgstr "si aún no se ha importado alguna imagen" -#: ../src/dtgtk/thumbtable.c:1052 +#: ../src/dtgtk/thumbtable.c:1150 msgid "you can do so in the import module" msgstr "puede hacerse con el módulo importar" -#: ../src/dtgtk/thumbtable.c:1061 +#: ../src/dtgtk/thumbtable.c:1159 msgid "try to relax the filter settings in the top panel" msgstr "pruebe con condiciones de filtro más flexibles, en el panel superior" -#: ../src/dtgtk/thumbtable.c:1072 +#: ../src/dtgtk/thumbtable.c:1170 msgid "or add images in the collections module in the left panel" msgstr "o añada imágenes con el módulo de colección en el panel izquierdo." -#: ../src/dtgtk/thumbtable.c:1338 +#: ../src/dtgtk/thumbtable.c:1455 msgid "" "you have changed the settings related to how thumbnails are generated.\n" msgstr "" "Ha cambiado la configuración relacionada con la generación de miniaturas.\n" -#: ../src/dtgtk/thumbtable.c:1341 +#: ../src/dtgtk/thumbtable.c:1458 msgid "" "all cached thumbnails need to be invalidated.\n" "\n" @@ -9372,7 +9723,7 @@ "Todas las miniaturas en caché deben ser invalidadas.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1345 +#: ../src/dtgtk/thumbtable.c:1462 #, c-format msgid "" "cached thumbnails starting from level %d need to be invalidated.\n" @@ -9381,7 +9732,7 @@ "Las miniaturas de la caché a partir del nivel %d deben ser invalidadas.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1350 +#: ../src/dtgtk/thumbtable.c:1467 #, c-format msgid "" "cached thumbnails below level %d need to be invalidated.\n" @@ -9390,7 +9741,7 @@ "Las miniaturas de la caché por debajo del nivel %d deben ser invalidadas.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1355 +#: ../src/dtgtk/thumbtable.c:1472 #, c-format msgid "" "cached thumbnails between level %d and %d need to be invalidated.\n" @@ -9399,48 +9750,48 @@ "Las miniaturas en caché entre el nivel %d y %d necesitan ser invalidadas.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1358 +#: ../src/dtgtk/thumbtable.c:1475 msgid "do you want to do that now?" msgstr "¿Desea ejecutar la acción en este momento?" -#: ../src/dtgtk/thumbtable.c:1360 +#: ../src/dtgtk/thumbtable.c:1477 msgid "cached thumbnails invalidation" msgstr "Invalidación de miniaturas en caché" #. setup history key accelerators -#: ../src/dtgtk/thumbtable.c:2561 +#: ../src/dtgtk/thumbtable.c:2738 msgid "copy history" msgstr "copiar historial" -#: ../src/dtgtk/thumbtable.c:2563 +#: ../src/dtgtk/thumbtable.c:2740 msgid "copy history parts" msgstr "copiar elementos del historial" -#: ../src/dtgtk/thumbtable.c:2565 +#: ../src/dtgtk/thumbtable.c:2742 msgid "paste history" msgstr "pegar historial" -#: ../src/dtgtk/thumbtable.c:2567 +#: ../src/dtgtk/thumbtable.c:2744 msgid "paste history parts" msgstr "pegar elementos del historial" -#: ../src/dtgtk/thumbtable.c:2569 ../src/libs/copy_history.c:394 +#: ../src/dtgtk/thumbtable.c:2746 ../src/libs/copy_history.c:394 msgid "discard history" msgstr "descartar historial de acciones" -#: ../src/dtgtk/thumbtable.c:2572 +#: ../src/dtgtk/thumbtable.c:2749 msgid "duplicate image" msgstr "Duplicar imagen" -#: ../src/dtgtk/thumbtable.c:2574 +#: ../src/dtgtk/thumbtable.c:2751 msgid "duplicate image virgin" msgstr "Duplicar imagen virgen" -#: ../src/dtgtk/thumbtable.c:2584 ../src/libs/select.c:147 +#: ../src/dtgtk/thumbtable.c:2761 ../src/libs/select.c:148 msgid "select film roll" msgstr "seleccionar carrete" -#: ../src/dtgtk/thumbtable.c:2586 ../src/libs/select.c:151 +#: ../src/dtgtk/thumbtable.c:2763 ../src/libs/select.c:152 msgid "select untouched" msgstr "seleccionar no editadas" @@ -9508,265 +9859,302 @@ msgid "creating complete lighttable thumbnail cache\n" msgstr "Creando toda la caché de miniaturas de la mesa de luz\n" -#: ../src/gui/accelerators.c:61 -msgid "active view" +#: ../src/gui/about.c:34 +#, c-format +msgid "copyright (c) the authors 2009-%s" +msgstr "© 2009-%s, derechos reservados a los autores" + +#: ../src/gui/about.c:39 +msgid "organize and develop images from digital cameras" +msgstr "Revele y organice las imágenes de cámaras digitales" + +#: ../src/gui/about.c:51 +msgid "all those of you that made previous releases possible" +msgstr "todos aquellos que hicieron posible las versiones previas." + +#: ../src/gui/about.c:56 +msgid "and..." +msgstr "y..." + +#: ../src/gui/about.c:59 +msgid "translator-credits" +msgstr "" +"Edgar De la Luz «EdgarLux» (2019-2024)\n" +"Tatica Leandro (2012-2017)\n" +"José Carlos García Sogo (2011-2014)\n" +"Roberto Quintero (2010-2011)\n" +"\n" +"Telegram: @darktablees" + +#: ../src/gui/accelerators.c:72 +msgid "in active view" msgstr "vista activa" -#: ../src/gui/accelerators.c:62 -msgid "other views" +#: ../src/gui/accelerators.c:73 +msgid "in other views" msgstr "otras vistas" -#: ../src/gui/accelerators.c:63 +#: ../src/gui/accelerators.c:74 msgid "fallbacks" msgstr "alternativas" -#: ../src/gui/accelerators.c:64 ../src/gui/accelerators.c:722 -#: ../src/gui/accelerators.c:2607 ../src/gui/accelerators.c:3470 -msgid "speed" -msgstr "velocidad" +#: ../src/gui/accelerators.c:75 +msgid "speed adjustments" +msgstr "ajustes rápidos" + +#: ../src/gui/accelerators.c:76 +msgid "disabled defaults" +msgstr "preajustes desactivados" -#: ../src/gui/accelerators.c:80 ../src/views/view.c:1202 +#: ../src/gui/accelerators.c:96 ../src/views/view.c:1361 msgid "scroll" msgstr "Desplazamiento" -#: ../src/gui/accelerators.c:81 +#: ../src/gui/accelerators.c:97 msgid "pan" msgstr "panorámica" -#: ../src/gui/accelerators.c:82 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6283 ../src/iop/clipping.c:1902 -#: ../src/iop/clipping.c:2094 ../src/iop/clipping.c:2110 -#: ../src/views/darkroom.c:2676 ../src/views/lighttable.c:1250 +#: ../src/gui/accelerators.c:98 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6230 ../src/iop/clipping.c:1955 +#: ../src/iop/clipping.c:2147 ../src/iop/clipping.c:2163 +#: ../src/views/darkroom.c:2522 ../src/views/lighttable.c:1250 msgid "horizontal" msgstr "horizontal" -#: ../src/gui/accelerators.c:83 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6281 ../src/iop/clipping.c:1901 -#: ../src/iop/clipping.c:2095 ../src/iop/clipping.c:2109 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:1254 +#: ../src/gui/accelerators.c:99 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6228 ../src/iop/clipping.c:1954 +#: ../src/iop/clipping.c:2148 ../src/iop/clipping.c:2162 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:1254 msgid "vertical" msgstr "vertical" -#: ../src/gui/accelerators.c:84 +#: ../src/gui/accelerators.c:100 msgid "diagonal" msgstr "diagonal" -#: ../src/gui/accelerators.c:86 +#: ../src/gui/accelerators.c:102 msgid "leftright" msgstr "izquierda/derecha" -#: ../src/gui/accelerators.c:87 +#: ../src/gui/accelerators.c:103 msgid "updown" msgstr "arriba/abajo" -#: ../src/gui/accelerators.c:88 +#: ../src/gui/accelerators.c:104 msgid "pgupdown" msgstr "Re. Pág. / Av. Pág." -#: ../src/gui/accelerators.c:96 ../src/views/view.c:1186 +#: ../src/gui/accelerators.c:112 ../src/views/view.c:1343 msgid "shift" msgstr "Mayús" -#: ../src/gui/accelerators.c:97 ../src/views/view.c:1187 +#: ../src/gui/accelerators.c:113 ../src/views/view.c:1345 msgid "ctrl" msgstr "Ctrl" -#: ../src/gui/accelerators.c:98 ../src/views/view.c:1188 +#: ../src/gui/accelerators.c:114 ../src/views/view.c:1347 msgid "alt" msgstr "Alt" -#: ../src/gui/accelerators.c:99 +#: ../src/gui/accelerators.c:115 msgid "cmd" msgstr "cmd" -#: ../src/gui/accelerators.c:100 +#: ../src/gui/accelerators.c:116 msgid "altgr" msgstr "Alt Gr" -#: ../src/gui/accelerators.c:109 ../src/gui/accelerators.c:156 -#: ../src/libs/tagging.c:1782 +#: ../src/gui/accelerators.c:127 ../src/gui/accelerators.c:174 +#: ../src/libs/tagging.c:1804 msgid "edit" msgstr "Modificar" -#: ../src/gui/accelerators.c:110 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "up" msgstr "arriba" -#: ../src/gui/accelerators.c:111 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:129 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "down" msgstr "abajo" -#: ../src/gui/accelerators.c:115 +#: ../src/gui/accelerators.c:133 msgid "set" msgstr "establecer" -#: ../src/gui/accelerators.c:119 +#: ../src/gui/accelerators.c:137 msgid "popup" msgstr "emerger" -#: ../src/gui/accelerators.c:120 ../src/gui/accelerators.c:153 -#: ../src/gui/gtk.c:3054 ../src/views/lighttable.c:760 +#: ../src/gui/accelerators.c:138 ../src/gui/accelerators.c:171 +#: ../src/gui/gtk.c:3100 ../src/views/lighttable.c:760 msgid "next" msgstr "siguiente" -#: ../src/gui/accelerators.c:121 ../src/gui/accelerators.c:152 -#: ../src/gui/gtk.c:3055 ../src/views/lighttable.c:761 +#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:170 +#: ../src/gui/gtk.c:3101 ../src/views/lighttable.c:761 msgid "previous" msgstr "anterior" -#: ../src/gui/accelerators.c:123 ../src/gui/accelerators.c:1462 +#: ../src/gui/accelerators.c:141 ../src/gui/accelerators.c:1598 msgid "last" msgstr "Fin" -#: ../src/gui/accelerators.c:124 ../src/gui/accelerators.c:1461 +#: ../src/gui/accelerators.c:142 ../src/gui/accelerators.c:1597 msgid "first" msgstr "Inicio" -#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:141 -#: ../src/gui/accelerators.c:314 ../src/libs/filters/rating_range.c:268 -#: ../src/libs/tagging.c:3119 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2419 ../src/views/darkroom.c:2648 +#: ../src/gui/accelerators.c:146 ../src/gui/accelerators.c:159 +#: ../src/gui/accelerators.c:356 ../src/libs/filters/rating_range.c:295 +#: ../src/libs/tagging.c:3150 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2258 ../src/views/darkroom.c:2494 msgid "toggle" msgstr "alternar" -#: ../src/gui/accelerators.c:131 +#: ../src/gui/accelerators.c:149 msgid "ctrl-toggle" msgstr "Ctrl+Alternar" -#: ../src/gui/accelerators.c:132 +#: ../src/gui/accelerators.c:150 msgid "ctrl-on" msgstr "Ctrl+Encendido" -#: ../src/gui/accelerators.c:133 +#: ../src/gui/accelerators.c:151 msgid "right-toggle" msgstr "clic secundario + alternar" -#: ../src/gui/accelerators.c:134 +#: ../src/gui/accelerators.c:152 msgid "right-on" msgstr "clic secundario + encender" -#: ../src/gui/accelerators.c:145 ../src/gui/gtk.c:3053 +#: ../src/gui/accelerators.c:163 ../src/gui/gtk.c:3099 msgid "activate" msgstr "activar" -#: ../src/gui/accelerators.c:146 +#: ../src/gui/accelerators.c:164 msgid "ctrl-activate" msgstr "Ctrl+Activar" -#: ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:165 msgid "right-activate" msgstr "Clic Secundario + Activar" -#: ../src/gui/accelerators.c:154 +#: ../src/gui/accelerators.c:172 msgid "store" msgstr "almacenamiento" -#: ../src/gui/accelerators.c:157 ../src/gui/styles_dialog.c:639 +#: ../src/gui/accelerators.c:175 ../src/gui/styles_dialog.c:651 msgid "update" msgstr "actualizar" -#: ../src/gui/accelerators.c:158 ../src/libs/tools/global_toolbox.c:60 +#: ../src/gui/accelerators.c:176 ../src/libs/tools/global_toolbox.c:60 #: ../src/libs/tools/global_toolbox.c:510 msgid "preferences" msgstr "preferencias" -#: ../src/gui/accelerators.c:163 +#: ../src/gui/accelerators.c:181 msgid "apply on new instance" msgstr "establecer en un nuevo módulo" -#: ../src/gui/accelerators.c:168 +#: ../src/gui/accelerators.c:186 msgid "start" msgstr "al principio" -#: ../src/gui/accelerators.c:169 +#: ../src/gui/accelerators.c:187 msgid "end" msgstr "al final" -#: ../src/gui/accelerators.c:332 +#: ../src/gui/accelerators.c:374 msgid "entry" msgstr "Ingreso de texto" -#: ../src/gui/accelerators.c:409 +#: ../src/gui/accelerators.c:450 msgid "combo effect not found" msgstr "No se ha encontrado el efecto combinado" -#: ../src/gui/accelerators.c:578 +#: ../src/gui/accelerators.c:627 msgid "(keypad)" msgstr "(panel de teclas)" -#: ../src/gui/accelerators.c:587 +#: ../src/gui/accelerators.c:636 msgid "tablet button" msgstr "botón de la tableta" -#: ../src/gui/accelerators.c:596 +#: ../src/gui/accelerators.c:645 msgid "unknown driver" msgstr "Controlador desconocido" -#: ../src/gui/accelerators.c:663 +#: ../src/gui/accelerators.c:718 msgid "long" msgstr "larga" -#: ../src/gui/accelerators.c:664 +#: ../src/gui/accelerators.c:719 msgid "double-press" msgstr "Doble pulsación" -#: ../src/gui/accelerators.c:665 +#: ../src/gui/accelerators.c:720 msgid "triple-press" msgstr "Triple pulsación " -#: ../src/gui/accelerators.c:666 +#: ../src/gui/accelerators.c:721 msgid "press" msgstr "Pulsación" -#: ../src/gui/accelerators.c:670 +#: ../src/gui/accelerators.c:725 msgctxt "accel" msgid "left" msgstr "margen izquierdo" -#: ../src/gui/accelerators.c:671 +#: ../src/gui/accelerators.c:726 msgctxt "accel" msgid "right" msgstr "margen derecho" -#: ../src/gui/accelerators.c:672 +#: ../src/gui/accelerators.c:727 msgctxt "accel" msgid "middle" msgstr "media" -#: ../src/gui/accelerators.c:673 +#: ../src/gui/accelerators.c:728 msgctxt "accel" msgid "long" msgstr "larga" -#: ../src/gui/accelerators.c:674 +#: ../src/gui/accelerators.c:729 msgctxt "accel" msgid "double-click" msgstr "Pulsación Doble" -#: ../src/gui/accelerators.c:675 +#: ../src/gui/accelerators.c:730 msgctxt "accel" msgid "triple-click" msgstr "Pulsación Triple" -#: ../src/gui/accelerators.c:676 +#: ../src/gui/accelerators.c:731 msgid "click" msgstr "pulsación" -#: ../src/gui/accelerators.c:704 +#: ../src/gui/accelerators.c:759 msgid "first instance" msgstr "primer módulo" -#: ../src/gui/accelerators.c:706 +#: ../src/gui/accelerators.c:761 msgid "last instance" msgstr "último módulo" -#: ../src/gui/accelerators.c:708 +#: ../src/gui/accelerators.c:763 msgid "relative instance" msgstr "módulo relativo" -#: ../src/gui/accelerators.c:867 +#: ../src/gui/accelerators.c:780 ../src/gui/accelerators.c:2864 +#: ../src/gui/accelerators.c:3811 +msgid "speed" +msgstr "velocidad" + +#: ../src/gui/accelerators.c:923 #, c-format msgid "" "Lua script command copied to clipboard:\n" @@ -9777,11 +10165,11 @@ "\n" "<tt>%s</tt>" -#: ../src/gui/accelerators.c:965 ../src/gui/accelerators.c:978 +#: ../src/gui/accelerators.c:1025 ../src/gui/accelerators.c:1044 msgid "start typing for incremental search" msgstr "Comenzar a escribir para la búsqueda dinámica." -#: ../src/gui/accelerators.c:966 +#: ../src/gui/accelerators.c:1028 msgid "" "\n" "press Delete to delete selected shortcut" @@ -9789,7 +10177,23 @@ "\n" "Pulse la tecla Retroceso para borrar el atajo seleccionado" -#: ../src/gui/accelerators.c:968 +#: ../src/gui/accelerators.c:1030 +msgid "" +"\n" +"press Delete to disable selected default shortcut" +msgstr "" +"\n" +"Pulse la tecla Retroceso para inhabilitar el atajo predeterminado" + +#: ../src/gui/accelerators.c:1031 +msgid "" +"\n" +"press Delete to restore selected default shortcut" +msgstr "" +"\n" +"Pulse la tecla Retroceso para habilitar el atajo predeterminado" + +#: ../src/gui/accelerators.c:1033 msgid "" "\n" "double-click to add new shortcut" @@ -9797,11 +10201,11 @@ "\n" "Para añadir un nuevo atajo, haga doble pulsación" -#: ../src/gui/accelerators.c:979 +#: ../src/gui/accelerators.c:1045 msgid "click to filter shortcuts list" msgstr "Pulse para filtrar la lista de atajos del teclado." -#: ../src/gui/accelerators.c:981 +#: ../src/gui/accelerators.c:1047 msgid "" "\n" "right click to show action of selected shortcut" @@ -9809,7 +10213,7 @@ "\n" "Pulsar botón secundario para mostrar la acción del atajo seleccionado" -#: ../src/gui/accelerators.c:984 +#: ../src/gui/accelerators.c:1050 msgid "" "\n" "double-click to define new shortcut" @@ -9817,11 +10221,11 @@ "\n" "Doble clic para definir el atajo nuevo" -#: ../src/gui/accelerators.c:1015 +#: ../src/gui/accelerators.c:1081 msgid "shift+alt+scroll to change height" -msgstr "Para cambiar la altura del visor: Ctrl+Alt+Desplazamiento" +msgstr "Para cambiar la altura del visor: Mayús+Alt+Desplazamiento" -#: ../src/gui/accelerators.c:1035 +#: ../src/gui/accelerators.c:1101 msgid "" "press keys with mouse click and scroll or move combinations to create a " "shortcut" @@ -9829,28 +10233,28 @@ "Pulsar las teclas con los botones del ratón y las combinaciones de " "desplazamiento o movimiento para crear un atajo" -#: ../src/gui/accelerators.c:1036 +#: ../src/gui/accelerators.c:1102 msgid "click to open shortcut configuration" msgstr "Pulse para abrir la configuración de los atajos de teclado" -#: ../src/gui/accelerators.c:1037 +#: ../src/gui/accelerators.c:1103 msgid "ctrl+click to add to quick access panel\n" msgstr "Ctrl+Clic para añadir un componente al panel de control modular\n" -#: ../src/gui/accelerators.c:1038 +#: ../src/gui/accelerators.c:1104 msgid "ctrl+click to remove from quick access panel\n" msgstr "Ctrl+Clic para quitar un componente del panel de control modular\n" -#: ../src/gui/accelerators.c:1039 +#: ../src/gui/accelerators.c:1105 msgid "scroll to change default speed" msgstr "" "Cambiar la velocidad predeterminada con desplazamiento o rueda del ratón" -#: ../src/gui/accelerators.c:1040 +#: ../src/gui/accelerators.c:1106 msgid "right click to exit mapping mode" msgstr "Haga doble pulsación para salir del modo de asignación" -#: ../src/gui/accelerators.c:1051 +#: ../src/gui/accelerators.c:1119 #, c-format msgid "" "%sright-click to type a specific value between <b>%s</b> and <b>%s</b>\n" @@ -9861,74 +10265,89 @@ "o mantenga pulsadas las teclas Ctrl+Mayús mientras arrastra para ignorar los " "límites suaves." -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "ctrl+v" msgstr "Ctrl+V" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "right long click" msgstr "Clic Secundario" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "to copy Lua command" msgstr "para copiar un comando Lua" -#: ../src/gui/accelerators.c:1344 +#: ../src/gui/accelerators.c:1451 msgid "shortcut for move exists with single effect" msgstr "Ya existe un atajo para mover con un solo efecto." -#: ../src/gui/accelerators.c:1345 +#: ../src/gui/accelerators.c:1452 +#, c-format +msgid "" +"%s\n" +"\n" +"(assign %s to %s)" +msgstr "" +"%s\n" +"\n" +"(%s asignado a %s)" + +#: ../src/gui/accelerators.c:1453 msgid "create separate shortcuts for up and down move?" msgstr "¿Crear atajos separados para los movimientos arriba/abajo?" -#: ../src/gui/accelerators.c:1368 +#: ../src/gui/accelerators.c:1479 #, c-format msgid "%s, speed reset" msgstr "%s, reinicio de velocidad" -#: ../src/gui/accelerators.c:1377 +#: ../src/gui/accelerators.c:1497 msgid "shortcut exists with different settings" msgstr "Existe un mismo atajo de teclado para diferentes configuraciones" -#: ../src/gui/accelerators.c:1378 +#: ../src/gui/accelerators.c:1498 msgid "reset the settings of the shortcut?" msgstr "¿Desea restablecer la configuración del atajo de teclado?" -#: ../src/gui/accelerators.c:1389 +#: ../src/gui/accelerators.c:1507 msgid "shortcut already exists" msgstr "El atajo del teclado ya existe" -#: ../src/gui/accelerators.c:1390 +#: ../src/gui/accelerators.c:1509 +msgid "disable this default shortcut?" +msgstr "¿Confirma la inhabilitación del atajo de teclado predeterminado?" + +#: ../src/gui/accelerators.c:1510 msgid "remove the shortcut?" msgstr "¿Confirma la eliminación del preajuste?" -#: ../src/gui/accelerators.c:1423 +#: ../src/gui/accelerators.c:1550 msgid "clashing shortcuts exist" msgstr "Se han encontrado conflictos en los atajos de teclado" -#: ../src/gui/accelerators.c:1424 +#: ../src/gui/accelerators.c:1551 msgid "remove these existing shortcuts?" msgstr "¿Desea eliminar estos atajos de teclado existentes?" #. or 3, but change char relative[] = "-2" to "-1" #. NUM_INSTANCES -#: ../src/gui/accelerators.c:1460 +#: ../src/gui/accelerators.c:1596 msgid "preferred" msgstr "favorito" -#: ../src/gui/accelerators.c:1463 +#: ../src/gui/accelerators.c:1599 msgid "second" msgstr "segundo" -#: ../src/gui/accelerators.c:1464 +#: ../src/gui/accelerators.c:1600 msgid "last but one" msgstr "penúltimo" -#: ../src/gui/accelerators.c:1610 ../src/gui/accelerators.c:1670 +#: ../src/gui/accelerators.c:1761 ../src/gui/accelerators.c:1826 msgid "(unchanged)" msgstr "(sin cambios)" -#: ../src/gui/accelerators.c:1776 +#: ../src/gui/accelerators.c:1941 msgid "" "define a shortcut by pressing a key, optionally combined with modifier keys " "(ctrl/shift/alt)\n" @@ -9953,39 +10372,48 @@ "\n" "Pulse con el botón secundario del ratón para cancelar." -#: ../src/gui/accelerators.c:1847 +#: ../src/gui/accelerators.c:2014 msgid "removing shortcut" msgstr "Eliminando atajo de teclado" -#: ../src/gui/accelerators.c:1848 +#: ../src/gui/accelerators.c:2016 +msgid "disable the selected default shortcut?" +msgstr "" +"¿Confirma la inhabilitación del atajo de teclado predeterminado seleccionado?" + +#: ../src/gui/accelerators.c:2017 +msgid "restore the selected default shortcut?" +msgstr "¿Desea rehabilitar la configuración del atajo de teclado seleccionado?" + +#: ../src/gui/accelerators.c:2018 msgid "remove the selected shortcut?" msgstr "¿Confirma la eliminación del atajo?" -#: ../src/gui/accelerators.c:1938 +#: ../src/gui/accelerators.c:2107 msgid "command" msgstr "comando" -#: ../src/gui/accelerators.c:1939 +#: ../src/gui/accelerators.c:2108 msgid "preset" msgstr "predefinido" -#: ../src/gui/accelerators.c:2272 +#: ../src/gui/accelerators.c:2491 msgid "restore shortcuts" msgstr "Restaurar atajos de teclado" -#: ../src/gui/accelerators.c:2275 +#: ../src/gui/accelerators.c:2494 msgid "_defaults" msgstr "_Predefinidos" -#: ../src/gui/accelerators.c:2276 +#: ../src/gui/accelerators.c:2495 msgid "_startup" msgstr "_Al principio" -#: ../src/gui/accelerators.c:2277 +#: ../src/gui/accelerators.c:2496 msgid "_edits" msgstr "_Antes del cambio" -#: ../src/gui/accelerators.c:2283 +#: ../src/gui/accelerators.c:2503 msgid "" "restore shortcuts from one of these states:\n" " - default\n" @@ -9997,7 +10425,7 @@ " • como al inicio\n" " • anteriores de la apertura de este diálogo\n" -#: ../src/gui/accelerators.c:2289 +#: ../src/gui/accelerators.c:2510 msgid "" "clear all newer shortcuts\n" "(instead of just restoring changed ones)" @@ -10005,22 +10433,17 @@ "Borrar todos los atajos nuevos\n" "(en lugar de sólo restaurar los modificados)" -#: ../src/gui/accelerators.c:2344 ../src/gui/preferences.c:906 +#: ../src/gui/accelerators.c:2567 ../src/gui/preferences.c:905 #: ../src/libs/tools/global_toolbox.c:494 -#: ../src/libs/tools/global_toolbox.c:645 +#: ../src/libs/tools/global_toolbox.c:652 msgid "shortcuts" msgstr "atajos de teclado" -#: ../src/gui/accelerators.c:2353 +#: ../src/gui/accelerators.c:2577 msgid "export shortcuts" msgstr "Exportar atajos de teclado" -#: ../src/gui/accelerators.c:2356 ../src/gui/accelerators.c:2436 -#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:564 -msgid "_ok" -msgstr "_aceptar" - -#: ../src/gui/accelerators.c:2361 +#: ../src/gui/accelerators.c:2586 msgid "" "export all shortcuts to a file\n" "or just for one selected device\n" @@ -10028,27 +10451,27 @@ "Exportar todos los atajos a un archivo\n" "o solo a un dispositivo seleccionado\n" -#: ../src/gui/accelerators.c:2368 ../src/gui/accelerators.c:2448 +#: ../src/gui/accelerators.c:2593 ../src/gui/accelerators.c:2675 msgid "keyboard" msgstr "teclado" -#: ../src/gui/accelerators.c:2380 +#: ../src/gui/accelerators.c:2605 msgid "device id" msgstr "Id. del dispositivo" -#: ../src/gui/accelerators.c:2406 +#: ../src/gui/accelerators.c:2631 msgid "select file to export" msgstr "Seleccione el archivo a exportar" -#: ../src/gui/accelerators.c:2407 ../src/libs/tagging.c:2525 +#: ../src/gui/accelerators.c:2632 ../src/libs/tagging.c:2556 msgid "_export" msgstr "_exportar" -#: ../src/gui/accelerators.c:2433 +#: ../src/gui/accelerators.c:2659 msgid "import shortcuts" msgstr "Importar atajos de teclado" -#: ../src/gui/accelerators.c:2441 +#: ../src/gui/accelerators.c:2668 msgid "" "import all shortcuts from a file\n" "or just for one selected device\n" @@ -10056,31 +10479,31 @@ "Importar todos los atajos desde un archivo\n" "o desde un dispositivo seleccionado\n" -#: ../src/gui/accelerators.c:2460 +#: ../src/gui/accelerators.c:2687 msgid "id in file" msgstr "id. desde el archivo" -#: ../src/gui/accelerators.c:2466 +#: ../src/gui/accelerators.c:2693 msgid "id when loaded" msgstr "id. cuando se cargue" -#: ../src/gui/accelerators.c:2470 +#: ../src/gui/accelerators.c:2697 msgid "clear device first" msgstr "Eliminar primero las asignaciones a los dispositivos" -#: ../src/gui/accelerators.c:2494 +#: ../src/gui/accelerators.c:2722 msgid "select file to import" msgstr "Seleccionar el archivo a importar" -#: ../src/gui/accelerators.c:2495 ../src/libs/tagging.c:2489 +#: ../src/gui/accelerators.c:2723 ../src/libs/tagging.c:2520 msgid "_import" msgstr "_importar" -#: ../src/gui/accelerators.c:2568 +#: ../src/gui/accelerators.c:2815 msgid "search shortcuts list" msgstr "Buscar en la lista de atajos" -#: ../src/gui/accelerators.c:2569 +#: ../src/gui/accelerators.c:2817 msgid "" "incrementally search the list of shortcuts\n" "press up or down keys to cycle through matches" @@ -10088,29 +10511,28 @@ "Búsqueda dinámica en la lista de accesos directos.\n" "Pulse las teclas arriba o abajo para recorrer las coincidencias." -#. Setting up the cell renderers -#: ../src/gui/accelerators.c:2583 ../src/views/view.c:1383 +#: ../src/gui/accelerators.c:2837 ../src/views/view.c:1554 msgid "shortcut" msgstr "atajo de teclado" -#: ../src/gui/accelerators.c:2585 ../src/gui/accelerators.c:2676 -#: ../src/views/view.c:1385 +#: ../src/gui/accelerators.c:2840 ../src/gui/accelerators.c:2942 +#: ../src/views/view.c:1556 msgid "action" msgstr "acción" -#: ../src/gui/accelerators.c:2594 +#: ../src/gui/accelerators.c:2850 msgid "element" msgstr "elemento" -#: ../src/gui/accelerators.c:2601 +#: ../src/gui/accelerators.c:2858 msgid "effect" msgstr "efecto" -#: ../src/gui/accelerators.c:2658 +#: ../src/gui/accelerators.c:2918 msgid "search actions list" msgstr "Buscar en la lista de acciones" -#: ../src/gui/accelerators.c:2659 +#: ../src/gui/accelerators.c:2920 msgid "" "incrementally search the list of actions\n" "press up or down keys to cycle through matches" @@ -10118,16 +10540,16 @@ "Búsqueda dinámica en la lista de acciones.\n" "Pulse las teclas arriba o abajo para recorrer las coincidencias." -#: ../src/gui/accelerators.c:2682 ../src/gui/guides.c:719 -#: ../src/libs/export_metadata.c:192 +#: ../src/gui/accelerators.c:2950 ../src/gui/guides.c:719 +#: ../src/libs/export_metadata.c:179 msgid "type" msgstr "tipo" -#: ../src/gui/accelerators.c:2717 +#: ../src/gui/accelerators.c:2988 msgid "enable fallbacks" msgstr "Habilitar alternativas" -#: ../src/gui/accelerators.c:2718 +#: ../src/gui/accelerators.c:2989 msgid "" "enables default meanings for additional buttons, modifiers or moves\n" "when used in combination with a base shortcut" @@ -10136,69 +10558,114 @@ "adicionales\n" "cuando se utiliza en combinación con un comando básico" -#: ../src/gui/accelerators.c:2725 +#: ../src/gui/accelerators.c:2997 msgid "open help page for shortcuts" msgstr "Abrir la página de ayuda para atajos de teclado" -#: ../src/gui/accelerators.c:2730 +#: ../src/gui/accelerators.c:3002 msgid "restore..." msgstr "Restaurar" -#: ../src/gui/accelerators.c:2731 +#: ../src/gui/accelerators.c:3003 msgid "restore default shortcuts or previous state" msgstr "Restaura los atajos predefinidos o a un estado anterior" -#: ../src/gui/accelerators.c:2735 ../src/libs/styles.c:883 -#: ../src/libs/tagging.c:3251 +#: ../src/gui/accelerators.c:3007 ../src/libs/styles.c:887 +#: ../src/libs/tagging.c:3282 msgid "import..." msgstr "Importar" -#: ../src/gui/accelerators.c:2736 +#: ../src/gui/accelerators.c:3008 msgid "fully or partially import shortcuts from file" msgstr "" "Importa de manera completa o parcial los atajos de teclado desde un archivo" -#: ../src/gui/accelerators.c:2740 ../src/libs/styles.c:890 -#: ../src/libs/tagging.c:3254 +#: ../src/gui/accelerators.c:3012 ../src/libs/styles.c:894 +#: ../src/libs/tagging.c:3285 msgid "export..." msgstr "Exportar" -#: ../src/gui/accelerators.c:2741 +#: ../src/gui/accelerators.c:3013 msgid "fully or partially export shortcuts to file" msgstr "" "Exporta de manera completa o parcial los atajos de teclado desde un archivo" -#: ../src/gui/accelerators.c:3139 +#: ../src/gui/accelerators.c:3021 +msgid "" +"the recommended way to assign shortcuts to visual elements is the <b>visual " +"shortcut mapping</b> mode.\n" +"this is switched on by toggling the <i>\"keyboard\"</i> button next to " +"preferences in the top panel. in this mode, clicking on a widget or area " +"will open this dialog with the appropriate selection for advanced " +"configuration.\n" +"\n" +"multiple shortcuts can be assigned to the same action. this is especially " +"useful if it has multiple <i>elements</i>, like the module buttons or the " +"colorpickers attached to sliders. however, with <i>fallbacks</i> enabled one " +"can use the same simple shortcuts and change their <i>element</i> or " +"<i>effect</i> by adding mouse clicks.\n" +"\n" +"<i>click <b> three times </b> to dismiss this notice permanently</i>" +msgstr "" +"La forma recomendada de asignar atajos a los elementos visuales es en el " +"modo <b>mapeo visual de atajos de teclado</b>.\n" +"Se activa pulsando el ícono de <i>\"teclado\"</i> al lado de preferencias en " +"la parte superior derecha del panel. Con este modo activo, se pulsa sobre " +"algún componente de control o un área. Se abrirá el cuadro de diálogo con la " +"selección adecuada de la configuración avanzada.\n" +"\n" +"Se pueden asignar varios atajos a la misma acción. Es bastante útil cuando " +"se tienen varios <i>elementos</i>, como los botones de los módulos o los " +"selectores de color de los controles deslizantes. Sin embargo, con la opción " +"<i>alternativas</i> activada se pueden utilizar los mismos atajos " +"individuales y cambiar el <i>elemento</i> o <i>efecto</i> añadiendo " +"pulsaciones del ratón.\n" +"\n" +"<i>Pulse <b> tres veces </b> para ocultar este aviso permanentemente</i>" + +#: ../src/gui/accelerators.c:3452 msgid "reinitialising input devices" msgstr "Reiniciar los dispositivos de entrada" -#: ../src/gui/accelerators.c:3342 +#: ../src/gui/accelerators.c:3594 +msgid "down move" +msgstr "movimiento hacia abajo" + +#: ../src/gui/accelerators.c:3594 +msgid "flip top/bottom first/last" +msgstr "invertir arriba/abajo primero/último" + +#: ../src/gui/accelerators.c:3679 msgid "fallback to move" msgstr "alternativa para moverse" -#: ../src/gui/accelerators.c:3578 +#: ../src/gui/accelerators.c:3921 #, c-format msgid "%s not assigned" msgstr "%s sin asignar" -#: ../src/gui/accelerators.c:3751 +#: ../src/gui/accelerators.c:4102 #, c-format msgid "%s assigned to %s" msgstr "%s asignado a %s" -#: ../src/gui/gtk.c:173 ../src/views/darkroom.c:4650 +#: ../src/gui/accelerators.c:4321 +msgid "short key press resets stuck keys" +msgstr "Una pulsación corta restablece las teclas bloqueadas" + +#: ../src/gui/gtk.c:175 ../src/views/darkroom.c:3861 msgid "darktable - darkroom preview" msgstr "darktable: vista previa del cuarto oscuro" -#: ../src/gui/gtk.c:184 +#: ../src/gui/gtk.c:186 msgid "tooltips off" msgstr "Descripción de herramienta emergente desactivado" -#: ../src/gui/gtk.c:186 +#: ../src/gui/gtk.c:188 msgid "tooltips on" msgstr "Descripción de herramienta emergente activado" -#: ../src/gui/gtk.c:191 +#: ../src/gui/gtk.c:193 msgid "" "tooltip visibility can only be toggled if compositing is enabled in your " "window manager" @@ -10206,184 +10673,217 @@ "La visibilidad de la información de las herramientas emergente sólo se puede " "activar o desactivar si la composición del gestor de ventanas está activada." -#: ../src/gui/gtk.c:814 +#: ../src/gui/gtk.c:809 msgid "closing darktable..." msgstr "Cerrando darktable..." -#: ../src/gui/gtk.c:1135 +#: ../src/gui/gtk.c:1032 +msgid "URL opened in web browser" +msgstr "URL abierta en el navegador" + +#: ../src/gui/gtk.c:1036 +msgid "error while opening URL in web browser" +msgstr "Error al abrir el enlace en el navegador" + +#. View menu +#: ../src/gui/gtk.c:1104 +msgctxt "menu" +msgid "Views" +msgstr "vistas" + +#: ../src/gui/gtk.c:1108 +msgctxt "menu" +msgid "lighttable" +msgstr "mesa de luz" + +#: ../src/gui/gtk.c:1109 +msgctxt "menu" +msgid "darkroom" +msgstr "cuarto oscuro" + +#: ../src/gui/gtk.c:1115 +msgctxt "menu" +msgid "slideshow" +msgstr "diapositivas" + +#: ../src/gui/gtk.c:1117 +msgctxt "menu" +msgid "map" +msgstr "mapa" + +#: ../src/gui/gtk.c:1119 +msgctxt "menu" +msgid "print" +msgstr "imprimir" + +#: ../src/gui/gtk.c:1121 +msgctxt "menu" +msgid "tethering" +msgstr "captura" + +#. Help menu +#: ../src/gui/gtk.c:1127 +msgctxt "menu" +msgid "Help" +msgstr "Ayuda" + +#: ../src/gui/gtk.c:1131 +msgctxt "menu" +msgid "darktable Manual" +msgstr "Manual de darktable" + +#: ../src/gui/gtk.c:1138 +msgctxt "menu" +msgid "darktable Homepage" +msgstr "Página principal de darktable" + +#: ../src/gui/gtk.c:1162 +msgctxt "menu" +msgid "Preferences" +msgstr "Preferencias" + +#: ../src/gui/gtk.c:1232 msgid "panels" msgstr "paneles" -#. an action that does nothing - used for overriding/removing default shortcuts -#: ../src/gui/gtk.c:1184 -msgid "no-op" -msgstr "sin opción" - -#: ../src/gui/gtk.c:1186 +#: ../src/gui/gtk.c:1264 msgid "switch views" msgstr "cambiar vistas" -#: ../src/gui/gtk.c:1187 ../src/views/tethering.c:102 +#: ../src/gui/gtk.c:1265 ../src/views/tethering.c:102 msgid "tethering" msgstr "captura" -#: ../src/gui/gtk.c:1188 ../src/gui/preferences.c:531 -#: ../src/gui/preferences.c:542 ../src/libs/tools/lighttable.c:66 -#: ../src/views/lighttable.c:91 -msgid "lighttable" -msgstr "mesa de luz" - -#: ../src/gui/gtk.c:1189 ../src/gui/preferences.c:532 -#: ../src/gui/preferences.c:542 ../src/views/darkroom.c:94 -msgid "darkroom" -msgstr "cuarto oscuro" - -#: ../src/gui/gtk.c:1190 ../src/views/map.c:197 +#: ../src/gui/gtk.c:1268 ../src/views/map.c:197 msgid "map" msgstr "mapa" -#: ../src/gui/gtk.c:1191 ../src/views/slideshow.c:389 +#: ../src/gui/gtk.c:1269 ../src/views/slideshow.c:390 msgid "slideshow" msgstr "diapositivas" #. Print button -#: ../src/gui/gtk.c:1192 ../src/libs/print_settings.c:2885 +#: ../src/gui/gtk.c:1270 ../src/libs/print_settings.c:2885 msgid "print" msgstr "imprimir" #. register ctrl-q to quit: -#: ../src/gui/gtk.c:1198 +#: ../src/gui/gtk.c:1276 msgid "quit" msgstr "Salir" #. Full-screen accelerator (no ESC handler here to enable quit-slideshow using ESC) -#: ../src/gui/gtk.c:1201 +#: ../src/gui/gtk.c:1279 msgid "fullscreen" msgstr "Pantalla completa" -#: ../src/gui/gtk.c:1205 +#: ../src/gui/gtk.c:1283 msgid "collapsing controls" msgstr "controles de pliegue" #. specific top/bottom toggles -#: ../src/gui/gtk.c:1207 +#: ../src/gui/gtk.c:1285 msgid "header" msgstr "Encabezado" -#: ../src/gui/gtk.c:1208 +#: ../src/gui/gtk.c:1286 msgid "filmstrip and timeline" msgstr "Tira de imágenes y línea del tiempo" -#: ../src/gui/gtk.c:1209 +#: ../src/gui/gtk.c:1287 msgid "top toolbar" msgstr "Barra de herramienta superior" -#: ../src/gui/gtk.c:1210 +#: ../src/gui/gtk.c:1288 msgid "bottom toolbar" msgstr "Barra de herramienta inferior" -#: ../src/gui/gtk.c:1211 +#: ../src/gui/gtk.c:1289 msgid "all top" msgstr "Paneles superiores" -#: ../src/gui/gtk.c:1212 +#: ../src/gui/gtk.c:1290 msgid "all bottom" msgstr "Paneles inferiores" -#: ../src/gui/gtk.c:1214 +#: ../src/gui/gtk.c:1292 msgid "toggle tooltip visibility" msgstr "Activar/desactivar descripción emergente" -#: ../src/gui/gtk.c:1215 +#: ../src/gui/gtk.c:1293 msgid "reinitialise input devices" msgstr "Reiniciar los dispositivos de entrada" -#: ../src/gui/gtk.c:1253 +#: ../src/gui/gtk.c:1331 msgid "toggle focus-peaking mode" msgstr "Modo de detección de máximo enfoque" #. toggle focus peaking everywhere -#: ../src/gui/gtk.c:1258 +#: ../src/gui/gtk.c:1336 msgid "toggle focus peaking" msgstr "activar o desactivar detección de máximo enfoque" -#: ../src/gui/gtk.c:1594 ../src/gui/gtk.c:3143 ../src/gui/gtk.c:3148 -#: ../src/gui/gtk.c:3153 ../src/gui/gtk.c:3158 +#: ../src/gui/gtk.c:1654 ../src/gui/gtk.c:3189 ../src/gui/gtk.c:3194 +#: ../src/gui/gtk.c:3199 ../src/gui/gtk.c:3204 msgid "tabs" msgstr "Pestañas" -#: ../src/gui/gtk.c:2535 -msgid "_yes" -msgstr "_sí" - -#: ../src/gui/gtk.c:2536 -msgid "_no" -msgstr "_no" - #. ask the user if darktable.org may be accessed -#: ../src/gui/gtk.c:2647 +#: ../src/gui/gtk.c:2707 msgid "access the online user manual?" msgstr "¿Desea acceder al manual de usuario en línea?" -#: ../src/gui/gtk.c:2648 +#: ../src/gui/gtk.c:2708 #, c-format msgid "do you want to access `%s'?" msgstr "¿Desea acceder a «%s»?" -#: ../src/gui/gtk.c:2717 -msgid "help url opened in web browser" -msgstr "URL de ayuda abierta en el navegador" - -#: ../src/gui/gtk.c:2721 -msgid "error while opening help url in web browser" -msgstr "Error al abrir el enlace de ayuda en el navegador" - -#: ../src/gui/gtk.c:2732 +#: ../src/gui/gtk.c:2778 msgid "there is no help available for this element" msgstr "Sin ayuda disponible para este elemento" #. font name can only use period as decimal separator #. but printf format strings use comma for some locales, so replace comma with period -#: ../src/gui/gtk.c:2752 +#: ../src/gui/gtk.c:2798 ../src/libs/metadata_view.c:762 #, c-format msgid "%.1f" msgstr "%.1f" -#: ../src/gui/gtk.c:2754 +#: ../src/gui/gtk.c:2800 #, c-format msgid "Sans %s" msgstr "Sans %s" -#: ../src/gui/gtk.c:3048 +#: ../src/gui/gtk.c:3094 msgid "does not contain pages" msgstr "No contiene páginas" -#: ../src/gui/gtk.c:3265 +#: ../src/gui/gtk.c:3313 #, c-format msgid "never show more than %d lines" msgstr "No mostrar más de %d líneas" -#: ../src/gui/gtkentry.c:172 +#: ../src/gui/gtkentry.c:173 msgid "$(ROLL.NAME) - roll of the input image" msgstr "$(ROLL.NAME) → carrete de la imagen de entrada" -#: ../src/gui/gtkentry.c:173 +#: ../src/gui/gtkentry.c:174 msgid "$(FILE.FOLDER) - folder containing the input image" msgstr "$(FILE.FOLDER) → carpeta de la imagen de entrada" -#: ../src/gui/gtkentry.c:174 +#: ../src/gui/gtkentry.c:175 msgid "$(FILE.NAME) - basename of the input image" msgstr "$(FILE.NAME) → nombre base de la imagen de entrada" -#: ../src/gui/gtkentry.c:175 +#: ../src/gui/gtkentry.c:176 msgid "$(FILE.EXTENSION) - extension of the input image" msgstr "$(FILE.EXTENSION) → extensión de la imagen de entrada" -#: ../src/gui/gtkentry.c:176 +#: ../src/gui/gtkentry.c:177 msgid "$(VERSION) - duplicate version" msgstr "$(VERSION) → duplicar versión" -#: ../src/gui/gtkentry.c:177 +#: ../src/gui/gtkentry.c:178 msgid "" "$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version " "exists" @@ -10391,115 +10891,115 @@ "$(VERSION.IF_MULTI) es similar a $(VERSION) sólo que queda con cadena nula " "si sólo existe una versión" -#: ../src/gui/gtkentry.c:178 +#: ../src/gui/gtkentry.c:179 msgid "$(VERSION.NAME) - version name from metadata" msgstr "$(VERSION.NAME) → nombre de la versión desde los metadatos" -#: ../src/gui/gtkentry.c:179 +#: ../src/gui/gtkentry.c:180 msgid "$(JOBCODE) - job code for import" msgstr "$(JOBCODE) → código de trabajo que se importa" -#: ../src/gui/gtkentry.c:180 +#: ../src/gui/gtkentry.c:181 msgid "$(SEQUENCE) - sequence number" msgstr "$(SEQUENCE) → número de secuencia" -#: ../src/gui/gtkentry.c:181 +#: ../src/gui/gtkentry.c:182 msgid "$(WIDTH.MAX) - maximum image export width" msgstr "$(MAX.WIDTH) → ancho máximo de exportación de la imagen" -#: ../src/gui/gtkentry.c:182 +#: ../src/gui/gtkentry.c:183 msgid "$(WIDTH.SENSOR) - image sensor width" msgstr "$(WIDTH.SENSOR) → anchura del sensor de imagen" -#: ../src/gui/gtkentry.c:183 +#: ../src/gui/gtkentry.c:184 msgid "$(WIDTH.RAW) - RAW image width" msgstr "$(WIDTH.RAW) → anchura de la imagen en bruto" -#: ../src/gui/gtkentry.c:184 +#: ../src/gui/gtkentry.c:185 msgid "$(WIDTH.CROP) - image width after crop" msgstr "$(WIDTH.CROP) → anchura de la imagen después del recorte" -#: ../src/gui/gtkentry.c:185 +#: ../src/gui/gtkentry.c:186 msgid "$(WIDTH.EXPORT) - exported image width" msgstr "$(WIDTH.EXPORT) → anchura de la imagen exportada" -#: ../src/gui/gtkentry.c:186 +#: ../src/gui/gtkentry.c:187 msgid "$(HEIGHT.MAX) - maximum image export height" msgstr "$(HEIGHT.MAX) → altura máxima de exportación de la imagen" -#: ../src/gui/gtkentry.c:187 +#: ../src/gui/gtkentry.c:188 msgid "$(HEIGHT.SENSOR) - image sensor height" msgstr "$(HEIGHT.SENSOR) → altura del sensor de imagen" -#: ../src/gui/gtkentry.c:188 +#: ../src/gui/gtkentry.c:189 msgid "$(HEIGHT.RAW) - RAW image height" msgstr "$(HEIGHT.RAW) → altura de la imagen en bruto" -#: ../src/gui/gtkentry.c:189 +#: ../src/gui/gtkentry.c:190 msgid "$(HEIGHT.CROP) - image height after crop" msgstr "$(HEIGHT.CROP) → altura máxima después del recorte" -#: ../src/gui/gtkentry.c:190 +#: ../src/gui/gtkentry.c:191 msgid "$(HEIGHT.EXPORT) - exported image height" msgstr "$(HEIGHT.EXPORT) → altura de la imagen exportada" -#: ../src/gui/gtkentry.c:191 +#: ../src/gui/gtkentry.c:192 msgid "$(YEAR) - year" msgstr "$(YEAR) → año" -#: ../src/gui/gtkentry.c:192 +#: ../src/gui/gtkentry.c:193 msgid "$(YEAR.SHORT) - year without century" msgstr "$(YEAR.SHORT) → año sin siglo" -#: ../src/gui/gtkentry.c:193 +#: ../src/gui/gtkentry.c:194 msgid "$(MONTH) - month" msgstr "$(MONTH) → mes" -#: ../src/gui/gtkentry.c:194 +#: ../src/gui/gtkentry.c:195 msgid "$(MONTH.SHORT) - abbreviated month name according to the current locale" msgstr "$(MONTH.SHORT) → nombre del mes abreviado según la localización actual" -#: ../src/gui/gtkentry.c:195 +#: ../src/gui/gtkentry.c:196 msgid "$(MONTH.LONG) - full month name according to the current locale" msgstr "$(MONTH.LONG) → nombre del mes según la localización actual" -#: ../src/gui/gtkentry.c:196 +#: ../src/gui/gtkentry.c:197 msgid "$(DAY) - day" msgstr "$(DAY) → día" -#: ../src/gui/gtkentry.c:197 +#: ../src/gui/gtkentry.c:198 msgid "$(HOUR) - hour" msgstr "$(HOUR) → hora" -#: ../src/gui/gtkentry.c:198 +#: ../src/gui/gtkentry.c:199 msgid "$(HOUR.AMPM) - hour, 12-hour clock" msgstr "$(HOUR.AMPM) → formato de 12 horas" -#: ../src/gui/gtkentry.c:199 +#: ../src/gui/gtkentry.c:200 msgid "$(MINUTE) - minute" msgstr "$(MINUTE) → minuto" -#: ../src/gui/gtkentry.c:200 +#: ../src/gui/gtkentry.c:201 msgid "$(SECOND) - second" msgstr "$(SECOND) → segundo" -#: ../src/gui/gtkentry.c:201 +#: ../src/gui/gtkentry.c:202 msgid "$(MSEC) - millisecond" msgstr "$(MSEC) → milisegundo" -#: ../src/gui/gtkentry.c:202 +#: ../src/gui/gtkentry.c:203 msgid "$(EXIF.YEAR) - EXIF year" msgstr "$(EXIF.YEAR) → año EXIF" -#: ../src/gui/gtkentry.c:203 +#: ../src/gui/gtkentry.c:204 msgid "$(EXIF.YEAR.SHORT) - EXIF year without century" msgstr "$(EXIF.YEAR.SHORT) → año Exif sin siglo" -#: ../src/gui/gtkentry.c:204 +#: ../src/gui/gtkentry.c:205 msgid "$(EXIF.MONTH) - EXIF month" msgstr "$(EXIF.MONTH) → mes Exif" -#: ../src/gui/gtkentry.c:205 +#: ../src/gui/gtkentry.c:206 msgid "" "$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current " "locale" @@ -10507,161 +11007,170 @@ "$(EXIF.MONTH.SHORT) → nombre del mes EXIF abreviado según la localización " "actual" -#: ../src/gui/gtkentry.c:206 +#: ../src/gui/gtkentry.c:207 msgid "" "$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" msgstr "$(EXIF.MONTH.LONG) → nombre del mes EXIF según la localización actual" -#: ../src/gui/gtkentry.c:207 +#: ../src/gui/gtkentry.c:208 msgid "$(EXIF.DAY) - EXIF day" msgstr "$(EXIF.DAY) → día Exif" -#: ../src/gui/gtkentry.c:208 +#: ../src/gui/gtkentry.c:209 msgid "$(EXIF.HOUR) - EXIF hour" msgstr "$(EXIF.HOUR) → hora Exif" -#: ../src/gui/gtkentry.c:209 +#: ../src/gui/gtkentry.c:210 msgid "$(EXIF.HOUR.AMPM) - EXIF hour, 12-hour clock" msgstr "$(EXIF.HOUR.AMPM) → hora Exif en formato de 12 horas" -#: ../src/gui/gtkentry.c:210 +#: ../src/gui/gtkentry.c:211 msgid "$(EXIF.MINUTE) - EXIF minute" msgstr "$(EXIF.MINUTE) → minuto Exif" -#: ../src/gui/gtkentry.c:211 +#: ../src/gui/gtkentry.c:212 msgid "$(EXIF.SECOND) - EXIF second" msgstr "$(EXIF.SECOND) → segundo Exif" -#: ../src/gui/gtkentry.c:212 +#: ../src/gui/gtkentry.c:213 msgid "$(EXIF.MSEC) - EXIF millisecond" msgstr "$(EXIF.MSEC) → milisegundo Exif" -#: ../src/gui/gtkentry.c:213 +#: ../src/gui/gtkentry.c:214 msgid "$(EXIF.ISO) - ISO value" msgstr "$(EXIF.ISO) → valor ISO" -#: ../src/gui/gtkentry.c:214 +#: ../src/gui/gtkentry.c:215 msgid "$(EXIF.EXPOSURE) - EXIF exposure" msgstr "$(EXIF.EXPOSURE) → exposición Exif" -#: ../src/gui/gtkentry.c:215 +#: ../src/gui/gtkentry.c:216 msgid "$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias" msgstr "$(EXIF.EXPOSURE.BIAS) → Compensación de exposición Exif" -#: ../src/gui/gtkentry.c:216 +#: ../src/gui/gtkentry.c:217 msgid "$(EXIF.APERTURE) - EXIF aperture" msgstr "$(EXIF.APERTURE) → apertura EXIF" -#: ../src/gui/gtkentry.c:217 +#: ../src/gui/gtkentry.c:218 +msgid "$(EXIF.CROP_FACTOR) - EXIF crop factor" +msgstr "$(EXIF.CROP_FACTOR) → factor de recorte en el EXIF" + +#: ../src/gui/gtkentry.c:219 msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" msgstr "$(EXIF.FOCAL.LENGTH) → longitud focal Exif" -#: ../src/gui/gtkentry.c:218 +#: ../src/gui/gtkentry.c:220 +msgid "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent focal length" +msgstr "" +"$(EXIF.FOCAL.LENGTH.EQUIV) → longitud focal equivalente a 35 mm del Exif" + +#: ../src/gui/gtkentry.c:221 msgid "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" msgstr "$(EXIF.FOCUS.DISTANCE) → distancia focal Exif" -#: ../src/gui/gtkentry.c:219 +#: ../src/gui/gtkentry.c:222 msgid "$(EXIF.MAKER) - camera maker" msgstr "$(EXIF.MAKER) → fabricante de la cámara" -#: ../src/gui/gtkentry.c:220 +#: ../src/gui/gtkentry.c:223 msgid "$(EXIF.MODEL) - camera model" msgstr "$(EXIF.MODEL) → modelo de la cámara" -#: ../src/gui/gtkentry.c:221 +#: ../src/gui/gtkentry.c:224 msgid "$(EXIF.LENS) - lens" msgstr "$(EXIF.LENS) → lentes" -#: ../src/gui/gtkentry.c:222 +#: ../src/gui/gtkentry.c:225 msgid "$(LONGITUDE) - longitude" msgstr "$(LONGITUDE) → longitud" -#: ../src/gui/gtkentry.c:223 +#: ../src/gui/gtkentry.c:226 msgid "$(LATITUDE) - latitude" msgstr "$(LATITUDE) → latitud" -#: ../src/gui/gtkentry.c:224 +#: ../src/gui/gtkentry.c:227 msgid "$(ELEVATION) - elevation" msgstr "$(ELEVATION) → elevación" -#: ../src/gui/gtkentry.c:225 +#: ../src/gui/gtkentry.c:228 msgid "$(STARS) - star rating as number (-1 for rejected)" msgstr "$(STARS) → puntuación en números ( -1 significa rechazada)" -#: ../src/gui/gtkentry.c:226 +#: ../src/gui/gtkentry.c:229 msgid "$(RATING.ICONS) - star/reject rating in icon form" msgstr "$(RATING.ICONS) →usar el estilo de ícono para puntuar/rechazar" -#: ../src/gui/gtkentry.c:227 +#: ../src/gui/gtkentry.c:230 msgid "$(LABELS) - color labels as text" msgstr "$(LABELS) → marcas de color como texto" -#: ../src/gui/gtkentry.c:228 +#: ../src/gui/gtkentry.c:231 msgid "$(LABELS.ICONS) - color labels as icons" msgstr "$(LABELS.ICONS) → marcas de color como íconos" -#: ../src/gui/gtkentry.c:229 +#: ../src/gui/gtkentry.c:232 msgid "$(ID) - image ID" msgstr "$(ID) → Id. de la imagen" -#: ../src/gui/gtkentry.c:230 +#: ../src/gui/gtkentry.c:233 msgid "$(TITLE) - title from metadata" msgstr "$(TITLE) → titulo de los metadatos" -#: ../src/gui/gtkentry.c:231 +#: ../src/gui/gtkentry.c:234 msgid "$(DESCRIPTION) - description from metadata" msgstr "$(DESCRIPTION) → descripción en los metadatos" -#: ../src/gui/gtkentry.c:232 +#: ../src/gui/gtkentry.c:235 msgid "$(CREATOR) - creator from metadata" msgstr "$(CREATOR) → autor de los metadatos" -#: ../src/gui/gtkentry.c:233 +#: ../src/gui/gtkentry.c:236 msgid "$(PUBLISHER) - publisher from metadata" msgstr "$(PUBLISHER) → editor de los metadatos" -#: ../src/gui/gtkentry.c:234 +#: ../src/gui/gtkentry.c:237 msgid "$(RIGHTS) - rights from metadata" msgstr "$(RIGHTS) → derechos de los metadatos" -#: ../src/gui/gtkentry.c:235 +#: ../src/gui/gtkentry.c:238 msgid "$(USERNAME) - login name" msgstr "$(USERNAME) → nombre de acceso" -#: ../src/gui/gtkentry.c:236 +#: ../src/gui/gtkentry.c:239 msgid "$(FOLDER.PICTURES) - pictures folder" msgstr "$(PICTURES.FOLDER) → carpeta de fotos" -#: ../src/gui/gtkentry.c:237 +#: ../src/gui/gtkentry.c:240 msgid "$(FOLDER.HOME) - home folder" msgstr "$(FOLDER.HOME) → carpeta home" -#: ../src/gui/gtkentry.c:238 +#: ../src/gui/gtkentry.c:241 msgid "$(FOLDER.DESKTOP) - desktop folder" msgstr "$(FOLDER.DESKTOP) → carpeta escritorio" -#: ../src/gui/gtkentry.c:239 +#: ../src/gui/gtkentry.c:242 msgid "$(OPENCL.ACTIVATED) - whether OpenCL is activated" msgstr "$(OPENCL.ACTIVATED) → determinar si OpenCL está activado" -#: ../src/gui/gtkentry.c:240 +#: ../src/gui/gtkentry.c:243 msgid "$(CATEGORY0(category)) - subtag of level 0 in hierarchical tags" msgstr "" "$(CATEGORY0(category)) → subetiqueta de nivel 0 en etiquetas jerárquicas" -#: ../src/gui/gtkentry.c:241 +#: ../src/gui/gtkentry.c:244 msgid "$(TAGS) - tags as set in metadata settings" msgstr "$(TAGS) → etiquetas establecidas en la configuración de metadatos" -#: ../src/gui/gtkentry.c:242 +#: ../src/gui/gtkentry.c:245 msgid "$(DARKTABLE.NAME) - darktable name" msgstr "$(DARKTABLE.NAME) → mencionar a darktable" -#: ../src/gui/gtkentry.c:243 +#: ../src/gui/gtkentry.c:246 msgid "$(DARKTABLE.VERSION) - current darktable version" msgstr "$(DARKTABLE.VERSION) → versión actual de darktable" -#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:255 +#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:248 msgid "grid" msgstr "rejilla" @@ -10731,11 +11240,11 @@ msgstr "Configuración general de la retícula" #: ../src/gui/guides.c:710 ../src/gui/guides.c:719 ../src/gui/guides.c:727 -#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2648 +#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2494 msgid "guide lines" msgstr "retícula" -#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2092 +#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2145 msgid "flip" msgstr "voltear" @@ -10751,8 +11260,8 @@ msgid "vertically" msgstr "verticalmente" -#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6285 ../src/iop/clipping.c:2096 -#: ../src/iop/colorbalance.c:1917 +#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6232 ../src/iop/clipping.c:2149 +#: ../src/iop/colorbalance.c:1892 msgid "both" msgstr "ambos" @@ -10801,26 +11310,26 @@ msgid "select parts to paste" msgstr "seleccionar ítems para pegar" -#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:517 +#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:524 msgid "select _all" msgstr "incluir _todos" -#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:518 +#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:525 msgid "select _none" msgstr "excluir _todos" -#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:593 -#: ../src/gui/styles_dialog.c:615 +#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:605 +#: ../src/gui/styles_dialog.c:627 msgid "include" msgstr "incluir" -#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:669 -#: ../src/gui/styles_dialog.c:675 +#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:681 +#: ../src/gui/styles_dialog.c:687 msgid "item" msgstr "ítem" -#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:682 -#: ../src/gui/styles_dialog.c:691 +#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:694 +#: ../src/gui/styles_dialog.c:703 msgid "mask" msgstr "máscaras" @@ -10875,11 +11384,11 @@ msgid "interface language" msgstr "Idioma de la interfaz" -#: ../src/gui/preferences.c:289 +#: ../src/gui/preferences.c:290 msgid "double-click to reset to the system language" msgstr "Doble clic para restablecer al idioma del sistema" -#: ../src/gui/preferences.c:291 +#: ../src/gui/preferences.c:292 msgid "" "set the language of the user interface. the system default is marked with an " "* (needs a restart)" @@ -10887,27 +11396,27 @@ "Configurar el idioma de la interfaz de usuario. El predeterminado está " "marcado con un * (necesita reiniciarse)" -#: ../src/gui/preferences.c:300 +#: ../src/gui/preferences.c:301 msgid "theme" msgstr "Tema" -#: ../src/gui/preferences.c:328 +#: ../src/gui/preferences.c:331 msgid "set the theme for the user interface" msgstr "Establezca el tema de la interfaz de usuario" -#: ../src/gui/preferences.c:341 ../src/gui/preferences.c:348 +#: ../src/gui/preferences.c:344 ../src/gui/preferences.c:351 msgid "use system font size" msgstr "Usar el tamaño de fuente del sistema" -#: ../src/gui/preferences.c:357 ../src/gui/preferences.c:364 +#: ../src/gui/preferences.c:360 ../src/gui/preferences.c:367 msgid "font size in points" msgstr "Tamaño de letra en puntos tipográficos" -#: ../src/gui/preferences.c:369 +#: ../src/gui/preferences.c:372 msgid "GUI controls and text DPI" msgstr "PPP de los controles y texto de la Interfaz Gráfica" -#: ../src/gui/preferences.c:376 +#: ../src/gui/preferences.c:379 msgid "" "adjust the global GUI resolution to rescale controls, buttons, labels, etc.\n" "increase for a magnified GUI, decrease to fit more content in window.\n" @@ -10924,79 +11433,63 @@ "Es necesario un reinicio del programa para aplicar los cambios." #. checkbox to allow user to modify theme with user.css -#: ../src/gui/preferences.c:385 +#: ../src/gui/preferences.c:388 msgid "modify selected theme with CSS tweaks below" msgstr "Modificar el tema seleccionado con el código CSS a continuación:" -#: ../src/gui/preferences.c:393 +#: ../src/gui/preferences.c:396 msgid "modify theme with CSS keyed below (saved to user.css)" msgstr "" "El tema se modifica con el código CSS introducido abajo (guardado en usuario." "css)" -#: ../src/gui/preferences.c:415 +#: ../src/gui/preferences.c:418 msgctxt "usercss" msgid "save CSS and apply" msgstr "guardar CSS y aplicar" -#: ../src/gui/preferences.c:420 +#: ../src/gui/preferences.c:423 msgid "click to save and apply the CSS tweaks entered in this editor" msgstr "Pulsar para guardar y aplicar los cambios CSS hechos en el editor" -#: ../src/gui/preferences.c:422 +#: ../src/gui/preferences.c:425 msgid "open help page for CSS tweaks" msgstr "Abrir la página de ayuda para los ajustes CSS" #. load default text with some pointers -#: ../src/gui/preferences.c:443 +#: ../src/gui/preferences.c:446 msgid "ERROR Loading user.css" msgstr "ERROR al cargar user.css" #. load default text -#: ../src/gui/preferences.c:452 +#: ../src/gui/preferences.c:455 msgid "Enter CSS theme tweaks here" msgstr "Incorpore las modificaciones al tema CSS aquí." -#: ../src/gui/preferences.c:488 +#: ../src/gui/preferences.c:491 msgid "darktable preferences" msgstr "Preferencias de darktable" -#: ../src/gui/preferences.c:533 -msgid "processing" -msgstr "procesamiento" - -#: ../src/gui/preferences.c:534 -msgid "security" -msgstr "seguridad" - -#: ../src/gui/preferences.c:535 -msgid "storage" -msgstr "almacenamiento" - -#: ../src/gui/preferences.c:536 -msgid "miscellaneous" -msgstr "miscelánea" - -#: ../src/gui/preferences.c:561 +#: ../src/gui/preferences.c:559 msgid "darktable needs to be restarted for settings to take effect" msgstr "Se necesita reiniciar darktable para que los cambios surtan efecto" #. exif -#: ../src/gui/preferences.c:820 ../src/gui/presets.c:644 -#: ../src/libs/metadata_view.c:137 +#: ../src/gui/preferences.c:818 ../src/gui/presets.c:658 +#: ../src/libs/metadata_view.c:139 msgid "model" msgstr "modelo" -#: ../src/gui/preferences.c:824 ../src/gui/presets.c:652 -#: ../src/libs/metadata_view.c:138 +#: ../src/gui/preferences.c:822 ../src/gui/presets.c:666 +#: ../src/libs/metadata_view.c:140 msgid "maker" msgstr "fabricante" -#: ../src/gui/preferences.c:861 +#: ../src/gui/preferences.c:859 msgid "search presets list" msgstr "Buscar en la lista de preajustes" -#: ../src/gui/preferences.c:862 +#: ../src/gui/preferences.c:860 msgid "" "incrementally search the list of presets\n" "press up or down keys to cycle through matches" @@ -11004,72 +11497,72 @@ "Búsqueda dinámica en la lista de preajutes.\n" "Pulse las teclas arriba o abajo para recorrer las coincidencias." -#: ../src/gui/preferences.c:868 +#: ../src/gui/preferences.c:866 msgctxt "preferences" msgid "import..." msgstr "importar..." -#: ../src/gui/preferences.c:872 +#: ../src/gui/preferences.c:870 msgctxt "preferences" msgid "export..." msgstr "Exportar..." -#: ../src/gui/preferences.c:1031 +#: ../src/gui/preferences.c:1030 #, c-format msgid "failed to import preset %s" msgstr "No se pudo importar el preajuste %s" -#: ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1041 msgid "select preset(s) to import" msgstr "Seleccionar preajuste(s) para importar" -#: ../src/gui/preferences.c:1043 ../src/libs/collect.c:408 -#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:929 -#: ../src/libs/import.c:1506 ../src/libs/import.c:1610 ../src/libs/styles.c:527 +#: ../src/gui/preferences.c:1042 ../src/libs/collect.c:425 +#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:930 +#: ../src/libs/import.c:1515 ../src/libs/import.c:1619 ../src/libs/styles.c:529 msgid "_open" msgstr "_abrir" -#: ../src/gui/preferences.c:1052 +#: ../src/gui/preferences.c:1051 msgid "darktable preset files" msgstr "archivos predefinidos de darktable" -#: ../src/gui/preferences.c:1057 ../src/iop/lut3d.c:1577 -#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:945 -#: ../src/libs/styles.c:541 +#: ../src/gui/preferences.c:1056 ../src/iop/lut3d.c:1591 +#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:946 +#: ../src/libs/styles.c:543 msgid "all files" msgstr "todos los archivos" -#: ../src/gui/presets.c:59 +#: ../src/gui/presets.c:61 msgid "non-raw" msgstr "imagen no en bruto" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:332 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:336 msgid "raw" msgstr "RAW" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:333 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:337 msgid "HDR" msgstr "HDR" -#: ../src/gui/presets.c:59 ../src/iop/monochrome.c:77 ../src/libs/image.c:608 -#: ../src/libs/metadata_view.c:339 +#: ../src/gui/presets.c:61 ../src/iop/monochrome.c:77 ../src/libs/image.c:679 +#: ../src/libs/metadata_view.c:343 msgid "monochrome" msgstr "monocromo" -#: ../src/gui/presets.c:151 +#: ../src/gui/presets.c:153 #, c-format msgid "preset `%s' is write-protected, can't delete!" msgstr "" "El ajuste predefinido «%s» está protegido contra escritura. No se puede " "eliminar." -#: ../src/gui/presets.c:157 ../src/gui/presets.c:461 ../src/libs/lib.c:238 -#: ../src/libs/modulegroups.c:3701 +#: ../src/gui/presets.c:159 ../src/gui/presets.c:463 ../src/libs/lib.c:238 +#: ../src/libs/modulegroups.c:3703 msgid "delete preset?" msgstr "¿Borrar este ajuste predefinido?" -#: ../src/gui/presets.c:158 ../src/gui/presets.c:462 ../src/libs/lib.c:239 -#: ../src/libs/modulegroups.c:3702 +#: ../src/gui/presets.c:160 ../src/gui/presets.c:464 ../src/libs/lib.c:239 +#: ../src/libs/modulegroups.c:3704 #, c-format msgid "do you really want to delete the preset `%s'?" msgstr "¿Desea borrar el ajuste predefinido «%s»?" @@ -11080,25 +11573,25 @@ #. clang-format on #. create a shortcut for the new entry #. then show edit dialog -#: ../src/gui/presets.c:200 ../src/gui/presets.c:1035 ../src/gui/presets.c:1038 -#: ../src/gui/presets.c:1041 ../src/libs/lib.c:188 ../src/libs/lib.c:205 +#: ../src/gui/presets.c:202 ../src/gui/presets.c:1033 ../src/gui/presets.c:1036 +#: ../src/gui/presets.c:1039 ../src/libs/lib.c:188 ../src/libs/lib.c:205 #: ../src/libs/lib.c:213 ../src/libs/lib.c:216 msgid "new preset" msgstr "nuevo preajuste" -#: ../src/gui/presets.c:207 +#: ../src/gui/presets.c:209 msgid "please give preset a name" msgstr "dé un nombre al preajuste" -#: ../src/gui/presets.c:212 +#: ../src/gui/presets.c:214 msgid "unnamed preset" msgstr "preajuste sin nombre" -#: ../src/gui/presets.c:241 +#: ../src/gui/presets.c:243 msgid "overwrite preset?" msgstr "¿sobreescribir el preajuste?" -#: ../src/gui/presets.c:242 +#: ../src/gui/presets.c:244 #, c-format msgid "" "preset `%s' already exists.\n" @@ -11107,38 +11600,43 @@ "El preajuste «%s» ya existe.\n" "¿Desea sobreescribirlo?" -#: ../src/gui/presets.c:420 ../src/imageio/storage/disk.c:123 -#: ../src/imageio/storage/gallery.c:110 ../src/imageio/storage/latex.c:109 +#: ../src/gui/presets.c:422 ../src/imageio/storage/disk.c:198 +#: ../src/imageio/storage/gallery.c:150 ../src/imageio/storage/latex.c:146 msgid "_select as output destination" msgstr "_seleccionar como destino de salida" -#: ../src/gui/presets.c:429 +#: ../src/gui/presets.c:431 #, c-format msgid "preset %s was successfully exported" msgstr "El preajuste %s fue exportado correctamente" -#: ../src/gui/presets.c:557 +#: ../src/gui/presets.c:559 #, c-format msgid "edit `%s' for module `%s'" msgstr "Editar «%s» para el módulo «%s»" -#: ../src/gui/presets.c:561 +#: ../src/gui/presets.c:563 msgid "_export..." msgstr "_exportar..." -#: ../src/gui/presets.c:585 +#: ../src/gui/presets.c:564 ../src/libs/tagging.c:1489 +#: ../src/libs/tagging.c:1580 +msgid "_delete" +msgstr "_borrar" + +#: ../src/gui/presets.c:588 msgid "name of the preset" msgstr "nombre del preajuste" -#: ../src/gui/presets.c:594 +#: ../src/gui/presets.c:597 msgid "description or further information" msgstr "Descripción o información adicional" -#: ../src/gui/presets.c:598 +#: ../src/gui/presets.c:601 msgid "reset all module parameters to their default values" -msgstr "Reinicializar todos los parámetros del móudulo a los valores iniciales" +msgstr "Reinicializar los valores de todos los parámetros del módulo" -#: ../src/gui/presets.c:601 +#: ../src/gui/presets.c:604 msgid "" "the parameters will be reset to their default values, which may be " "automatically set based on image metadata" @@ -11146,15 +11644,15 @@ "Los parámetros se restablecerán a sus valores iniciales, que pueden fijarse " "automáticamente en función de los metadatos de la imagen." -#: ../src/gui/presets.c:607 +#: ../src/gui/presets.c:610 msgid "auto apply this preset to matching images" msgstr "Establecer automáticamente este preajuste en imágenes coincidentes" -#: ../src/gui/presets.c:611 +#: ../src/gui/presets.c:614 msgid "only show this preset for matching images" msgstr "Mostrar este preajuste sólo para imágenes coincidentes" -#: ../src/gui/presets.c:613 +#: ../src/gui/presets.c:616 msgid "" "be very careful with this option. this might be the last time you see your " "preset." @@ -11162,26 +11660,26 @@ "Especial cuidado con esta opción. Puediera ser la última vez que vea el " "preajuste." -#: ../src/gui/presets.c:643 +#: ../src/gui/presets.c:657 #, no-c-format msgid "string to match model (use % as wildcard)" msgstr "cadena para coincidencia con modelo (use % como comodín)" -#: ../src/gui/presets.c:651 +#: ../src/gui/presets.c:665 #, no-c-format msgid "string to match maker (use % as wildcard)" msgstr "cadena para coincidencia con fabricante (use % como comodín)" -#: ../src/gui/presets.c:659 +#: ../src/gui/presets.c:673 #, no-c-format msgid "string to match lens (use % as wildcard)" msgstr "cadena para coincidencia de lente (use % as wildcard)" -#: ../src/gui/presets.c:669 +#: ../src/gui/presets.c:683 msgid "minimum ISO value" msgstr "valor Exif mínimo" -#: ../src/gui/presets.c:675 +#: ../src/gui/presets.c:689 msgid "" "maximum ISO value\n" "if left blank, it is equivalent to no upper limit" @@ -11189,73 +11687,73 @@ "Valor ISO máximo.\n" "Si se deja en blanco, equivale a no tener límite." -#: ../src/gui/presets.c:688 +#: ../src/gui/presets.c:702 msgid "minimum exposure time" msgstr "tiempo mínimo de exposición" -#: ../src/gui/presets.c:689 +#: ../src/gui/presets.c:703 msgid "maximum exposure time" msgstr "tiempo máximo de exposición" -#: ../src/gui/presets.c:705 +#: ../src/gui/presets.c:719 msgid "minimum aperture value" msgstr "valor de apertura mínimo" -#: ../src/gui/presets.c:706 +#: ../src/gui/presets.c:720 msgid "maximum aperture value" msgstr "valor de apertura máximo" -#: ../src/gui/presets.c:724 +#: ../src/gui/presets.c:738 msgid "minimum focal length" msgstr "mínima longitud focal" -#: ../src/gui/presets.c:725 +#: ../src/gui/presets.c:739 msgid "maximum focal length" msgstr "máxima longitud focal" #. raw/hdr/ldr/mono/color -#: ../src/gui/presets.c:733 ../src/imageio/format/j2k.c:650 +#: ../src/gui/presets.c:747 msgid "format" msgstr "formato" -#: ../src/gui/presets.c:738 +#: ../src/gui/presets.c:752 msgid "select image types you want this preset to be available for" msgstr "" "Elija los formatos de imagen para los que este preajuste estará disponible" -#: ../src/gui/presets.c:751 ../src/libs/filtering.c:1201 +#: ../src/gui/presets.c:765 ../src/libs/filtering.c:1263 msgid "and" msgstr " y " -#: ../src/gui/presets.c:795 ../src/gui/presets.c:847 +#: ../src/gui/presets.c:809 ../src/gui/presets.c:861 msgid "∞" msgstr "∞" -#: ../src/gui/presets.c:979 +#: ../src/gui/presets.c:977 #, c-format msgid "preset `%s' is write-protected! can't edit it!" msgstr "" "El ajuste predefinido «%s» está protegido contra escritura. No se puede " "editar." -#: ../src/gui/presets.c:1003 ../src/libs/lib.c:158 +#: ../src/gui/presets.c:1001 ../src/libs/lib.c:158 msgid "update preset?" msgstr "Actualizar preajuste" -#: ../src/gui/presets.c:1004 ../src/libs/lib.c:159 +#: ../src/gui/presets.c:1002 ../src/libs/lib.c:159 #, c-format msgid "do you really want to update the preset `%s'?" msgstr "¿Realmente desea actualizar el ajuste definido como «%s»?" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1131 msgid "(first)" msgstr "(primero)" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1131 msgid "(last)" msgstr "(último)" -#: ../src/gui/presets.c:1165 +#: ../src/gui/presets.c:1163 #, c-format msgid "" "preset %s\n" @@ -11264,63 +11762,63 @@ "preajuste %s\n" "%s" -#: ../src/gui/presets.c:1166 +#: ../src/gui/presets.c:1164 msgid "no presets" msgstr "Sin preajustes" -#: ../src/gui/presets.c:1199 ../src/iop/basecurve.c:528 -#: ../src/iop/basecurve.c:532 ../src/iop/basecurve.c:535 +#: ../src/gui/presets.c:1199 ../src/iop/basecurve.c:575 +#: ../src/iop/basecurve.c:579 ../src/iop/basecurve.c:582 msgid "display-referred default" msgstr "basado en la pantalla (predefinido)" -#: ../src/gui/presets.c:1201 ../src/iop/channelmixerrgb.c:332 -#: ../src/iop/channelmixerrgb.c:336 ../src/iop/channelmixerrgb.c:339 -#: ../src/iop/exposure.c:297 ../src/iop/exposure.c:301 -#: ../src/iop/exposure.c:304 ../src/iop/filmicrgb.c:3248 -#: ../src/iop/filmicrgb.c:3252 ../src/iop/filmicrgb.c:3255 -#: ../src/iop/sigmoid.c:134 ../src/iop/sigmoid.c:138 ../src/iop/sigmoid.c:141 +#: ../src/gui/presets.c:1201 ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:400 ../src/iop/channelmixerrgb.c:403 +#: ../src/iop/exposure.c:319 ../src/iop/exposure.c:323 +#: ../src/iop/exposure.c:326 ../src/iop/filmicrgb.c:3311 +#: ../src/iop/filmicrgb.c:3315 ../src/iop/filmicrgb.c:3318 +#: ../src/iop/sigmoid.c:240 ../src/iop/sigmoid.c:243 ../src/iop/sigmoid.c:245 msgid "scene-referred default" msgstr "basado en la escena (predefinido)" -#: ../src/gui/presets.c:1393 ../src/libs/modulegroups.c:3781 -#: ../src/libs/modulegroups.c:3790 +#: ../src/gui/presets.c:1405 ../src/libs/modulegroups.c:3783 +#: ../src/libs/modulegroups.c:3792 msgid "manage module layouts" msgstr "Gestionar la disposición de los módulos" -#: ../src/gui/presets.c:1402 +#: ../src/gui/presets.c:1414 msgid "manage quick presets" msgstr "Gestionar los preajustes rápidos" -#: ../src/gui/presets.c:1586 +#: ../src/gui/presets.c:1598 msgid "manage quick presets list..." msgstr "gestionar los preajustes rápidos..." -#: ../src/gui/presets.c:1727 +#: ../src/gui/presets.c:1739 msgid "(default)" msgstr "(por defecto)" -#: ../src/gui/presets.c:1754 +#: ../src/gui/presets.c:1766 msgid "disabled: wrong module version" msgstr "desactivado: versión errónea del módulo" -#: ../src/gui/presets.c:1776 ../src/libs/lib.c:551 +#: ../src/gui/presets.c:1788 ../src/libs/lib.c:551 msgid "edit this preset.." msgstr "editar este preajuste.." -#: ../src/gui/presets.c:1781 ../src/libs/lib.c:555 +#: ../src/gui/presets.c:1793 ../src/libs/lib.c:555 msgid "delete this preset" msgstr "borrar este preajuste" -#: ../src/gui/presets.c:1788 ../src/libs/lib.c:563 +#: ../src/gui/presets.c:1800 ../src/libs/lib.c:563 msgid "store new preset.." msgstr "almacenar nuevo preajuste.." -#: ../src/gui/presets.c:1796 ../src/libs/lib.c:576 +#: ../src/gui/presets.c:1808 ../src/libs/lib.c:576 msgid "update preset" msgstr "actualizar preajuste" #: ../src/gui/styles_dialog.c:221 ../src/libs/styles.c:437 -#: ../src/libs/styles.c:620 +#: ../src/libs/styles.c:622 msgid "overwrite style?" msgstr "¿Desea sobreescribir el estilo?" @@ -11346,41 +11844,41 @@ msgid "style %s was successfully saved" msgstr "El estilo %s fue correctamente guardado" -#: ../src/gui/styles_dialog.c:505 +#: ../src/gui/styles_dialog.c:512 msgid "edit style" msgstr "editar estilo" -#: ../src/gui/styles_dialog.c:506 +#: ../src/gui/styles_dialog.c:513 msgid "duplicate style" msgstr "duplicar estilo" -#: ../src/gui/styles_dialog.c:507 +#: ../src/gui/styles_dialog.c:514 msgid "creates a duplicate of the style before applying changes" msgstr "Crea un duplicado del estilo antes de efectuar los cambios" -#: ../src/gui/styles_dialog.c:511 +#: ../src/gui/styles_dialog.c:518 msgid "create new style" msgstr "crear un estilo nuevo" -#: ../src/gui/styles_dialog.c:549 +#: ../src/gui/styles_dialog.c:557 msgid "enter a name for the new style" msgstr "introduzca un nombre para el nuevo estilo" -#: ../src/gui/styles_dialog.c:554 +#: ../src/gui/styles_dialog.c:565 msgid "enter a description for the new style, this description is searchable" msgstr "" "Introduzca una descripción para el nuevo estilo. Esta descripción es " "localizable mediante una búsqueda." -#: ../src/gui/styles_dialog.c:593 +#: ../src/gui/styles_dialog.c:605 msgid "keep" msgstr "conservar" -#: ../src/gui/styles_dialog.c:820 +#: ../src/gui/styles_dialog.c:832 msgid "can't create style out of unaltered image" msgstr "No se puede crear el estilo de una imagen no editada" -#: ../src/imageio/imageio.c:804 +#: ../src/imageio/imageio.c:816 #, c-format msgid "" "failed to allocate memory for %s, please lower the threads used for export " @@ -11389,96 +11887,121 @@ "Hubo un fallo al reservar memoria para %s. Reduzca el número de hilos " "utilizados para exportar o instale más memoria." -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "thumbnail export" msgstr "exportar miniatura" -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "export" msgstr "exportar" -#: ../src/imageio/imageio.c:819 +#: ../src/imageio/imageio.c:831 #, c-format msgid "cannot find the style '%s' to apply during export." msgstr "" "No se pudo encontrar el estilo «%s» para aplicarlo durante la exportación." -#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:536 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/imageio_libraw.c:295 +msgid "" +"<span foreground='red'><b>WARNING</b></span>: camera is not fully supported!" +msgstr "" +"<span foreground='red'><b>¡ADVERTENCIA!</b></span>: la cámara no es " +"totalmente compatible." + +#: ../src/imageio/imageio_libraw.c:297 +#, c-format +msgid "" +"colors for `%s' could be misrepresented,\n" +"and edits might not be compatible with future versions." +msgstr "" +"Los colores de %s podrían estar representados erroneamente,\n" +"y las ediciones podrían no ser compatibles con versiones futuras." + +#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:641 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "8 bit" msgstr "8 bit" -#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:567 msgid "10 bit" msgstr "10 bits" -#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:567 msgid "12 bit" msgstr "12 bits" -#: ../src/imageio/format/avif.c:431 +#: ../src/imageio/format/avif.c:110 ../src/imageio/format/webp.c:416 +msgid "lossless" +msgstr "sin pérdida" + +#: ../src/imageio/format/avif.c:112 ../src/imageio/format/webp.c:416 +msgid "lossy" +msgstr "con pérdida" + +#: ../src/imageio/format/avif.c:463 msgid "invalid AVIF bit depth!" msgstr "Profundidad de bits AVIF no válida" -#: ../src/imageio/format/avif.c:694 -msgid "AVIF" -msgstr "AVIF" - #. Bit depth combo box -#: ../src/imageio/format/avif.c:766 ../src/imageio/format/exr.cc:565 -#: ../src/imageio/format/jxl.c:555 ../src/imageio/format/pdf.c:661 -#: ../src/imageio/format/png.c:534 ../src/imageio/format/tiff.c:843 +#: ../src/imageio/format/avif.c:800 ../src/imageio/format/exr.cc:601 +#: ../src/imageio/format/jxl.c:566 ../src/imageio/format/pdf.c:661 +#: ../src/imageio/format/png.c:639 ../src/imageio/format/tiff.c:900 #: ../src/imageio/format/xcf.c:354 msgid "bit depth" msgstr "profundidad de bit" -#: ../src/imageio/format/avif.c:779 +#: ../src/imageio/format/avif.c:813 msgid "color information stored in an image, higher is better" msgstr "" "La información de color que contiene una imagen. Cuanto más alto el valor, " "mayor información." -#: ../src/imageio/format/avif.c:787 +#. +#. * Color mode combo box +#. +#. shortfile option combo box +#: ../src/imageio/format/avif.c:820 ../src/imageio/format/tiff.c:944 +msgid "B&W as grayscale" +msgstr "B/N como escala de grises" + +#: ../src/imageio/format/avif.c:821 ../src/imageio/format/tiff.c:945 msgid "saving as grayscale will reduce the size for black & white images" msgstr "" "Guardar como \"escala de grises\" reducirá el tamaño de las imágenes en " "blanco y negro" -#: ../src/imageio/format/avif.c:789 -msgid "RGB colors" -msgstr "colores RGB" - -#: ../src/imageio/format/avif.c:789 -msgid "grayscale" -msgstr "escala de grises" - #. #. * Tiling combo box #. -#: ../src/imageio/format/avif.c:799 +#: ../src/imageio/format/avif.c:832 msgid "tiling" msgstr "proceso por bandas" -#: ../src/imageio/format/avif.c:800 +#: ../src/imageio/format/avif.c:833 msgid "" "tile an image into segments.\n" "\n" -"makes encoding faster. the impact on quality reduction is negligible, but " -"increases the file size." +"makes encoding faster, but increases the file size. the loss of image " +"quality is negligible." msgstr "" "Divide una imagen en segmentos.\n" "\n" "Hace que la codificación sea más rápida. La reducción en la calidad es " "insignificante, aunque aumenta el tamaño del archivo." -#: ../src/imageio/format/avif.c:817 ../src/imageio/format/webp.c:383 -msgid "compression type" -msgstr "tipo de compresión" +#. compression +#. Compression method combo box +#: ../src/imageio/format/avif.c:850 ../src/imageio/format/exr.cc:611 +#: ../src/imageio/format/pdf.c:676 ../src/imageio/format/png.c:653 +#: ../src/imageio/format/tiff.c:923 ../src/imageio/format/webp.c:414 +#: ../src/libs/masks.c:111 +msgid "compression" +msgstr "compresión" -#: ../src/imageio/format/avif.c:825 +#: ../src/imageio/format/avif.c:858 msgid "the compression for the image" msgstr "Compresión de la imagen" @@ -11487,37 +12010,31 @@ #. step #. default #. digits -#: ../src/imageio/format/avif.c:842 ../src/imageio/format/j2k.c:661 -#: ../src/imageio/format/jpeg.c:587 ../src/imageio/format/jxl.c:579 -#: ../src/imageio/format/webp.c:394 ../src/libs/camera.c:564 +#: ../src/imageio/format/avif.c:878 ../src/imageio/format/j2k.c:679 +#: ../src/imageio/format/jpeg.c:584 ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/webp.c:425 ../src/libs/camera.c:564 msgid "quality" msgstr "calidad" -#: ../src/imageio/format/avif.c:847 +#: ../src/imageio/format/avif.c:881 msgid "" "the quality of an image, less quality means fewer details.\n" "\n" -"the following applies only to lossy setting\n" +"pixel format is controlled by quality:\n" "\n" -"pixelformat based on quality:\n" -"\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" msgstr "" "Indica la calidad de la imagen. A menor calidad, un resultado con menos " "detalles.\n" "\n" -"Lo siguiente sólo se aplicará a la configuración\n" -"\n" -"con pérdida de formato de pixeles basada en la calidad:\n" +"el formato de píxel se controla mediante la calidad:\n" "\n" " 91% - 100% -> YUV444\n" " 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +" 5% - 80% -> YUV420" #: ../src/imageio/format/copy.c:109 ../src/libs/copy_history.c:370 -#: ../src/libs/image.c:583 +#: ../src/libs/image.c:647 msgid "copy" msgstr "copiar" @@ -11533,120 +12050,142 @@ msgid "the selected output profile doesn't work well with EXR" msgstr "El perfil de salida seleccionado no funciona bien con EXR" -#: ../src/imageio/format/exr.cc:540 +#: ../src/imageio/format/exr.cc:576 msgid "OpenEXR" msgstr "OpenEXR" -#: ../src/imageio/format/exr.cc:567 +#: ../src/imageio/format/exr.cc:603 msgid "16 bit (float)" msgstr "16 bits (flotante)" -#: ../src/imageio/format/exr.cc:567 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/format/exr.cc:603 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "32 bit (float)" msgstr "32 bit (flotante)" -#. compression -#. Compression method combo box -#: ../src/imageio/format/exr.cc:575 ../src/imageio/format/pdf.c:676 -#: ../src/imageio/format/png.c:548 ../src/imageio/format/tiff.c:866 -#: ../src/libs/masks.c:110 -msgid "compression" -msgstr "compresión" - -#: ../src/imageio/format/exr.cc:577 ../src/imageio/format/pdf.c:682 -#: ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/exr.cc:613 ../src/imageio/format/pdf.c:682 +#: ../src/imageio/format/tiff.c:924 msgid "uncompressed" msgstr "sin comprimir" -#: ../src/imageio/format/exr.cc:578 +#: ../src/imageio/format/exr.cc:614 msgid "RLE" msgstr "RLE" -#: ../src/imageio/format/exr.cc:579 +#: ../src/imageio/format/exr.cc:615 msgid "ZIPS" msgstr "ZIPS" -#: ../src/imageio/format/exr.cc:580 +#: ../src/imageio/format/exr.cc:616 msgid "ZIP" msgstr "ZIP" -#: ../src/imageio/format/exr.cc:581 +#: ../src/imageio/format/exr.cc:617 msgid "PIZ" msgstr "PIZ" -#: ../src/imageio/format/exr.cc:582 +#: ../src/imageio/format/exr.cc:618 msgid "PXR24" msgstr "PXR24" -#: ../src/imageio/format/exr.cc:583 +#: ../src/imageio/format/exr.cc:619 msgid "B44" msgstr "B44" -#: ../src/imageio/format/exr.cc:584 +#: ../src/imageio/format/exr.cc:620 msgid "B44A" msgstr "B44A" -#: ../src/imageio/format/exr.cc:585 +#: ../src/imageio/format/exr.cc:621 msgid "DWAA" msgstr "DWAA" -#: ../src/imageio/format/exr.cc:586 +#: ../src/imageio/format/exr.cc:622 msgid "DWAB" msgstr "DWAB" -#: ../src/imageio/format/j2k.c:618 +#: ../src/imageio/format/j2k.c:648 msgid "JPEG 2000 (12-bit)" msgstr "JPEG 2000 (12 bits)" -#: ../src/imageio/format/j2k.c:652 -msgid "jp2" -msgstr "jp2" - -#: ../src/imageio/format/j2k.c:667 +#: ../src/imageio/format/j2k.c:684 msgid "DCP mode" msgstr "Modo DCP" -#: ../src/imageio/format/j2k.c:670 +#: ../src/imageio/format/j2k.c:687 msgid "Cinema2K, 24FPS" msgstr "Cinema2K, 24FPS" -#: ../src/imageio/format/j2k.c:671 +#: ../src/imageio/format/j2k.c:688 msgid "Cinema2K, 48FPS" msgstr "Cinema2K, 48FPS" -#: ../src/imageio/format/j2k.c:672 +#: ../src/imageio/format/j2k.c:689 msgid "Cinema4K, 24FPS" msgstr "Cinema4K, 24FPS" -#: ../src/imageio/format/jpeg.c:564 +#: ../src/imageio/format/jpeg.c:546 msgid "JPEG (8-bit)" msgstr "JPEG (8 bits)" -#: ../src/imageio/format/jxl.c:471 -msgid "JPEG XL" -msgstr "JPEG XL" +#: ../src/imageio/format/jpeg.c:594 +msgid "chroma subsampling" +msgstr "submuestreo de color" + +#: ../src/imageio/format/jpeg.c:595 +msgid "" +"chroma subsampling setting for JPEG encoder.\n" +"auto - use subsampling determined by the quality value\n" +"4:4:4 - no chroma subsampling\n" +"4:4:0 - color sampling rate halved vertically\n" +"4:2:2 - color sampling rate halved horizontally\n" +"4:2:0 - color sampling rate halved horizontally and vertically" +msgstr "" +"Ajuste de submuestreo de crominancia para el codificador JPEG.\n" +"automático → utiliza el submuestreo determinado por el valor de calidad\n" +"4:4:4 → sin submuestreo de crominancia\n" +"4:4:0 → frecuencia de muestreo del color reducida a la mitad verticalmente\n" +"4:2:2 → frecuencia de muestreo del color reducida a la mitad " +"horizontalmente\n" +"4:2:0 → frecuencia de muestreo del color reducida a la mitad horizontal y " +"verticalmente" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:4" +msgstr "4:4:4" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:0" +msgstr "4:4:0" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:2" +msgstr "4:2:2" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:0" +msgstr "4:2:0" -#: ../src/imageio/format/jxl.c:556 ../src/imageio/format/pdf.c:81 -#: ../src/imageio/format/png.c:536 ../src/imageio/format/tiff.c:847 +#: ../src/imageio/format/jxl.c:567 ../src/imageio/format/pdf.c:81 +#: ../src/imageio/format/png.c:641 ../src/imageio/format/tiff.c:904 #: ../src/imageio/format/xcf.c:357 msgid "16 bit" msgstr "16 bit" #. Pixel format combo box -#: ../src/imageio/format/jxl.c:562 ../src/imageio/format/tiff.c:852 +#: ../src/imageio/format/jxl.c:573 ../src/imageio/format/tiff.c:909 msgid "pixel type" msgstr "tipo de pixel" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "unsigned integer" msgstr "Entero positivo" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "floating point" msgstr "Punto flotante" -#: ../src/imageio/format/jxl.c:580 +#: ../src/imageio/format/jxl.c:591 msgid "" "the quality of the output image\n" "0-29 = very lossy\n" @@ -11658,11 +12197,11 @@ "30-99 = comparable a la calidad de un JPEG\n" "100 = sin pérdida (profundidad de bits entera)" -#: ../src/imageio/format/jxl.c:589 +#: ../src/imageio/format/jxl.c:600 msgid "encoding color profile" msgstr "Codificación del perfil de color" -#: ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/jxl.c:601 msgid "" "the color profile used by the encoder\n" "permit internal XYB color space conversion for more efficient lossy " @@ -11676,20 +12215,20 @@ "o mantiene intacto el espacio de color original de la imagen (implícito para " "la compresión sin pérdidas)." -#: ../src/imageio/format/jxl.c:593 +#: ../src/imageio/format/jxl.c:604 msgid "internal" msgstr "Interno" -#: ../src/imageio/format/jxl.c:593 ../src/libs/duplicate.c:399 -#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:782 +#: ../src/imageio/format/jxl.c:604 ../src/libs/duplicate.c:405 +#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:840 msgid "original" msgstr "original" -#: ../src/imageio/format/jxl.c:607 +#: ../src/imageio/format/jxl.c:618 msgid "encoding effort" msgstr "potencia de codificación" -#: ../src/imageio/format/jxl.c:608 +#: ../src/imageio/format/jxl.c:619 msgid "" "the effort used to encode the image, higher efforts will have better results " "at the expense of longer encoding times" @@ -11697,11 +12236,11 @@ "La potencia con la que se codificará la imagen. Entre más potencia exista, " "se obtendrán mejores resultados a expensas del tiempo de codificación." -#: ../src/imageio/format/jxl.c:619 +#: ../src/imageio/format/jxl.c:630 msgid "decoding speed" msgstr "velocidad de decodificación" -#: ../src/imageio/format/jxl.c:620 +#: ../src/imageio/format/jxl.c:631 msgid "the preferred decoding speed with some sacrifice of quality" msgstr "" "La velocidad de descodificación preferible con cierto grado de pérdida de la " @@ -11715,9 +12254,9 @@ msgid "invalid border size, using 0" msgstr "tamaño de borde inválido, usando 0" -#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:316 -#: ../src/imageio/storage/email.c:137 ../src/imageio/storage/gallery.c:331 -#: ../src/imageio/storage/gallery.c:370 ../src/imageio/storage/piwigo.c:1202 +#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:460 +#: ../src/imageio/storage/email.c:187 ../src/imageio/storage/gallery.c:409 +#: ../src/imageio/storage/gallery.c:450 ../src/imageio/storage/piwigo.c:1245 #, c-format msgid "could not export to file `%s'!" msgstr "no se puede exportar el archivo %s" @@ -11771,8 +12310,8 @@ "Ejemplos: 10 mm, 1 in" #. dpi -#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1127 -#: ../src/libs/export.c:1150 +#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1218 +#: ../src/libs/export.c:1246 msgid "dpi" msgstr "ppp" @@ -11834,7 +12373,7 @@ "Sin comprimir: es rápido pero resulta en archivos grandes \n" "Deflación: es lento pero resulta en archivos pequeños" -#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:924 msgid "deflate" msgstr "deflación" @@ -11865,60 +12404,23 @@ msgid "debug" msgstr "depurar" -#: ../src/imageio/format/pfm.c:120 -msgid "PFM" -msgstr "PFM" - -#: ../src/imageio/format/png.c:493 -msgid "PNG" -msgstr "PNG" - #: ../src/imageio/format/ppm.c:111 msgid "PPM (16-bit)" msgstr "PPM (16 bits)" -#: ../src/imageio/format/tiff.c:228 -msgid "will export as a grayscale image" -msgstr "Se exportará como una imagen en escala de grises" - -#: ../src/imageio/format/tiff.c:774 -msgid "TIFF" -msgstr "TIFF" +#: ../src/imageio/format/tiff.c:246 +msgid "not a B&W image, will not export as grayscale" +msgstr "No es una imagen B/N por lo que no se exportará en escala de grises" -#: ../src/imageio/format/tiff.c:868 +#: ../src/imageio/format/tiff.c:925 msgid "deflate with predictor" msgstr "deflación con predicción" -#: ../src/imageio/format/tiff.c:878 +#: ../src/imageio/format/tiff.c:935 msgid "compression level" msgstr "nivel de compresión" -#. shortfile option combo box -#: ../src/imageio/format/tiff.c:887 -msgid "b&w image" -msgstr "imagen en b/n" - -#: ../src/imageio/format/tiff.c:888 -msgid "write RGB colors" -msgstr "colores rgb" - -#: ../src/imageio/format/tiff.c:888 -msgid "write grayscale" -msgstr "escala de grises" - -#: ../src/imageio/format/webp.c:349 -msgid "WebP" -msgstr "WebP" - -#: ../src/imageio/format/webp.c:385 -msgid "lossy" -msgstr "con pérdida" - -#: ../src/imageio/format/webp.c:385 -msgid "lossless" -msgstr "sin pérdida" - -#: ../src/imageio/format/webp.c:397 +#: ../src/imageio/format/webp.c:426 msgid "" "for lossy, 0 gives the smallest size and 100 the best quality.\n" "for lossless, 0 is the fastest but gives larger files compared\n" @@ -11929,11 +12431,11 @@ "Para la opción sin pérdida de calidad, 0 es la más rápida pero produce " "archivos más grandes comparado con el modo más lento a 100." -#: ../src/imageio/format/webp.c:407 +#: ../src/imageio/format/webp.c:436 msgid "image hint" msgstr "indicio de imagen" -#: ../src/imageio/format/webp.c:408 +#: ../src/imageio/format/webp.c:437 msgid "" "image characteristics hint for the underlying encoder.\n" "picture: digital picture, like portrait, inner shot\n" @@ -11945,15 +12447,15 @@ "Foto : fotografía de exteriores con iluminación natural.\n" "Gráfico : tono discreto de la imagen (gráfico, patrón, etc)." -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "picture" msgstr "imagen" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "photo" msgstr "foto" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "graphic" msgstr "gráfico" @@ -11961,12 +12463,12 @@ msgid "XCF" msgstr "XCF" -#: ../src/imageio/storage/disk.c:71 ../src/libs/export.c:1040 +#: ../src/imageio/storage/disk.c:74 ../src/libs/export.c:1119 msgid "file on disk" msgstr "archivo en disco" -#: ../src/imageio/storage/disk.c:169 ../src/imageio/storage/gallery.c:155 -#: ../src/imageio/storage/latex.c:154 +#: ../src/imageio/storage/disk.c:251 ../src/imageio/storage/gallery.c:204 +#: ../src/imageio/storage/latex.c:191 msgid "" "enter the path where to put exported images\n" "variables support bash like string manipulation\n" @@ -11977,53 +12479,63 @@ "Teclee '$(' para iniciar la autocompleción y desplegar la lista de las " "variables disponibles." -#: ../src/imageio/storage/disk.c:182 ../src/imageio/storage/piwigo.c:1079 +#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/piwigo.c:1122 msgid "on conflict" msgstr "en conflicto" -#: ../src/imageio/storage/disk.c:185 +#: ../src/imageio/storage/disk.c:268 msgid "create unique filename" msgstr "crear nombre único" #. DT_COPY_HISTORY_APPEND -#: ../src/imageio/storage/disk.c:186 ../src/imageio/storage/piwigo.c:1083 -#: ../src/libs/copy_history.c:404 ../src/libs/image.c:601 -#: ../src/libs/styles.c:440 ../src/libs/styles.c:623 ../src/libs/styles.c:850 +#: ../src/imageio/storage/disk.c:269 ../src/imageio/storage/piwigo.c:1126 +#: ../src/libs/copy_history.c:404 ../src/libs/image.c:670 +#: ../src/libs/styles.c:854 msgid "overwrite" msgstr "sobreescribir" -#: ../src/imageio/storage/disk.c:187 ../src/imageio/storage/piwigo.c:1081 -#: ../src/libs/styles.c:439 ../src/libs/styles.c:622 +#: ../src/imageio/storage/disk.c:270 +msgid "overwrite if changed" +msgstr "sobreescribir si se modifica" + +#: ../src/imageio/storage/disk.c:271 ../src/imageio/storage/piwigo.c:1124 msgid "skip" msgstr "omitir" -#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/gallery.c:253 -#: ../src/imageio/storage/latex.c:252 +#: ../src/imageio/storage/disk.c:371 ../src/imageio/storage/gallery.c:326 +#: ../src/imageio/storage/latex.c:289 #, c-format msgid "could not create directory `%s'!" msgstr "No se puede crear el directorio «%s»" -#: ../src/imageio/storage/disk.c:272 +#: ../src/imageio/storage/disk.c:382 #, c-format msgid "could not write to directory `%s'!" msgstr "No se puede escribir en el directorio «%s»" -#: ../src/imageio/storage/disk.c:302 +#: ../src/imageio/storage/disk.c:419 #, c-format msgid "%d/%d skipping `%s'" msgid_plural "%d/%d skipping `%s'" msgstr[0] "%d/%d omitiendo «%s»" msgstr[1] "%d/%d omitiendo «%s»" -#: ../src/imageio/storage/disk.c:321 ../src/imageio/storage/email.c:144 -#: ../src/imageio/storage/gallery.c:378 ../src/imageio/storage/latex.c:340 +#: ../src/imageio/storage/disk.c:441 +#, c-format +msgid "%d/%d skipping (not modified since export) `%s'" +msgid_plural "%d/%d skipping (not modified since export) `%s'" +msgstr[0] "%d/%d omitiendo (no modificado desde la exportación) «%s»" +msgstr[1] "%d/%d omitiendo (no modificados desde la exportación) «%s»" + +#: ../src/imageio/storage/disk.c:465 ../src/imageio/storage/email.c:194 +#: ../src/imageio/storage/gallery.c:458 ../src/imageio/storage/latex.c:377 #, c-format msgid "%d/%d exported to `%s'" msgid_plural "%d/%d exported to `%s'" msgstr[0] "%d/%d exportado a «%s»" msgstr[1] "%d/%d exportados a «%s»" -#: ../src/imageio/storage/disk.c:380 +#: ../src/imageio/storage/disk.c:530 msgid "" "you are going to export in overwrite mode, this will overwrite any existing " "images\n" @@ -12035,23 +12547,33 @@ "\n" "¿Realmente desea continuar?" -#: ../src/imageio/storage/email.c:52 +#: ../src/imageio/storage/email.c:57 msgid "send as email" msgstr "enviar como correo electrónico" -#: ../src/imageio/storage/email.c:198 +#. Unlikely in normal Windows installations, but let's notify the user if it happens +#: ../src/imageio/storage/email.c:265 +msgid "could not open mapi32.dll" +msgstr "No se pudo abrir mapi32.dll" + +#. Even more unlikely +#: ../src/imageio/storage/email.c:275 +msgid "could not get SendMail function" +msgstr "No se pudo obtener la función SendMail (enviar por correo)" + +#: ../src/imageio/storage/email.c:319 ../src/imageio/storage/email.c:409 msgid "images exported from darktable" msgstr "imágenes exportadas desde darktable" -#: ../src/imageio/storage/email.c:251 +#: ../src/imageio/storage/email.c:388 ../src/imageio/storage/email.c:467 msgid "could not launch email client!" msgstr "No se pudo abrir el cliente de correo" -#: ../src/imageio/storage/gallery.c:73 +#: ../src/imageio/storage/gallery.c:76 msgid "website gallery" msgstr "galería web" -#: ../src/imageio/storage/gallery.c:171 +#: ../src/imageio/storage/gallery.c:224 msgid "enter the title of the website" msgstr "introduzca el título de la página web" @@ -12059,150 +12581,149 @@ msgid "LaTeX book template" msgstr "plantilla de libro LaTeX" -#: ../src/imageio/storage/latex.c:172 +#: ../src/imageio/storage/latex.c:209 msgid "enter the title of the book" msgstr "Introduzca el título del libro" -#: ../src/imageio/storage/piwigo.c:522 +#: ../src/imageio/storage/piwigo.c:532 msgid "authenticated" msgstr "autentificado" -#: ../src/imageio/storage/piwigo.c:532 ../src/imageio/storage/piwigo.c:547 -#: ../src/imageio/storage/piwigo.c:559 +#: ../src/imageio/storage/piwigo.c:543 ../src/imageio/storage/piwigo.c:559 +#: ../src/imageio/storage/piwigo.c:572 msgid "not authenticated" msgstr "no autentificado" -#: ../src/imageio/storage/piwigo.c:538 +#: ../src/imageio/storage/piwigo.c:549 msgid "not authenticated, cannot reach server" msgstr "No autentificado; no se pudo conectar con el servidor" -#: ../src/imageio/storage/piwigo.c:587 ../src/imageio/storage/piwigo.c:675 +#: ../src/imageio/storage/piwigo.c:602 ../src/imageio/storage/piwigo.c:691 msgid "create new album" msgstr "crear álbum nuevo" -#: ../src/imageio/storage/piwigo.c:676 +#: ../src/imageio/storage/piwigo.c:692 msgid "---" msgstr "(---)" -#: ../src/imageio/storage/piwigo.c:721 +#: ../src/imageio/storage/piwigo.c:742 msgid "cannot refresh albums" msgstr "No se puedieron actualizar los álbumes" -#: ../src/imageio/storage/piwigo.c:929 +#: ../src/imageio/storage/piwigo.c:959 msgid "Piwigo" msgstr "Piwigo" -#: ../src/imageio/storage/piwigo.c:954 +#: ../src/imageio/storage/piwigo.c:985 msgid "accounts" msgstr "cuentas" -#: ../src/imageio/storage/piwigo.c:972 ../src/imageio/storage/piwigo.c:978 +#: ../src/imageio/storage/piwigo.c:1004 ../src/imageio/storage/piwigo.c:1013 msgid "server" msgstr "servidor" -#: ../src/imageio/storage/piwigo.c:974 ../src/imageio/storage/piwigo.c:989 +#: ../src/imageio/storage/piwigo.c:1007 msgid "" "the server name\n" "default protocol is https\n" -"specify http:// if non secure server" +"specify insecure protocol http:// explicitly if that protocol is required" msgstr "" "Nombre del servidor\n" -"El protocolo por defecto es https\n" -"Si no es un servidor seguro, especificar con http:// " +"El protocolo predeterminado es https\n" +"En caso de requerirlo, especificar el protocolo no seguro con http://" -#: ../src/imageio/storage/piwigo.c:987 ../src/imageio/storage/piwigo.c:993 +#: ../src/imageio/storage/piwigo.c:1023 ../src/imageio/storage/piwigo.c:1030 msgid "user" msgstr "usuario" -#: ../src/imageio/storage/piwigo.c:1000 ../src/imageio/storage/piwigo.c:1005 +#: ../src/imageio/storage/piwigo.c:1038 ../src/imageio/storage/piwigo.c:1043 msgid "password" msgstr "contraseña" #. login button -#: ../src/imageio/storage/piwigo.c:1010 +#: ../src/imageio/storage/piwigo.c:1048 msgid "login" msgstr "acceder" -#: ../src/imageio/storage/piwigo.c:1011 +#: ../src/imageio/storage/piwigo.c:1049 msgid "Piwigo login" msgstr "Iniciar sesión en Piwigo" #. permissions list -#: ../src/imageio/storage/piwigo.c:1025 +#: ../src/imageio/storage/piwigo.c:1065 msgid "visible to" msgstr "visible para" -#: ../src/imageio/storage/piwigo.c:1027 +#: ../src/imageio/storage/piwigo.c:1067 msgid "everyone" msgstr "todos" -#: ../src/imageio/storage/piwigo.c:1028 +#: ../src/imageio/storage/piwigo.c:1068 msgid "contacts" msgstr "hoja de contactos" -#: ../src/imageio/storage/piwigo.c:1029 +#: ../src/imageio/storage/piwigo.c:1069 msgid "friends" msgstr "amigos" -#: ../src/imageio/storage/piwigo.c:1030 +#: ../src/imageio/storage/piwigo.c:1070 msgid "family" msgstr "familia" -#: ../src/imageio/storage/piwigo.c:1031 +#: ../src/imageio/storage/piwigo.c:1071 msgid "you" msgstr "usted" #. Available albums -#: ../src/imageio/storage/piwigo.c:1038 +#: ../src/imageio/storage/piwigo.c:1078 msgid "album" msgstr "álbum" -#: ../src/imageio/storage/piwigo.c:1045 +#: ../src/imageio/storage/piwigo.c:1085 msgid "refresh album list" msgstr "Actualizar lista de álbumes" #. Album title -#: ../src/imageio/storage/piwigo.c:1063 +#: ../src/imageio/storage/piwigo.c:1105 msgid "new album" msgstr "álbum nuevo" -#. parent album list #. Available albums -#: ../src/imageio/storage/piwigo.c:1071 +#: ../src/imageio/storage/piwigo.c:1114 msgid "parent album" msgstr "álbum principal" -#: ../src/imageio/storage/piwigo.c:1075 +#: ../src/imageio/storage/piwigo.c:1118 msgid "click login button to start" msgstr "Para comenzar, pulse el botón acceder" -#: ../src/imageio/storage/piwigo.c:1080 +#: ../src/imageio/storage/piwigo.c:1123 msgid "don't check" msgstr "no verificar" -#: ../src/imageio/storage/piwigo.c:1082 +#: ../src/imageio/storage/piwigo.c:1125 msgid "update metadata" msgstr "actualizar metadatos" -#: ../src/imageio/storage/piwigo.c:1221 +#: ../src/imageio/storage/piwigo.c:1264 msgid "cannot create a new Piwigo album!" msgstr "No se pudo crear un álbum nuevo en Piwigo" -#: ../src/imageio/storage/piwigo.c:1240 +#: ../src/imageio/storage/piwigo.c:1283 msgid "could not update to Piwigo!" msgstr "No se pudo actualizar Piwigo" -#: ../src/imageio/storage/piwigo.c:1255 +#: ../src/imageio/storage/piwigo.c:1299 msgid "could not upload to Piwigo!" msgstr "No se pudo subir a Piwigo" -#: ../src/imageio/storage/piwigo.c:1284 +#: ../src/imageio/storage/piwigo.c:1328 #, c-format msgid "%d/%d skipped (already exists)" msgstr "%d/%d omitida (la imagen ya existe)" # piwigo es un servicio web para crear galerias de fotos -#: ../src/imageio/storage/piwigo.c:1290 +#: ../src/imageio/storage/piwigo.c:1334 #, c-format msgid "%d/%d exported to Piwigo webalbum" msgid_plural "%d/%d exported to Piwigo webalbum" @@ -12222,54 +12743,54 @@ msgstr "Rota o distorsiona la perspectiva" #: ../src/iop/ashift.c:131 ../src/iop/channelmixer.c:139 -#: ../src/iop/channelmixerrgb.c:232 ../src/iop/clipping.c:320 -#: ../src/iop/colorbalance.c:161 ../src/iop/colorbalancergb.c:185 +#: ../src/iop/channelmixerrgb.c:233 ../src/iop/clipping.c:363 +#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:185 #: ../src/iop/colorchecker.c:130 ../src/iop/colorcorrection.c:77 -#: ../src/iop/crop.c:144 ../src/iop/lut3d.c:141 +#: ../src/iop/crop.c:134 ../src/iop/lut3d.c:142 ../src/iop/primaries.c:80 msgid "corrective or creative" msgstr "Correctivo o creativo" -#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:148 -#: ../src/iop/bilateral.cc:101 ../src/iop/bilateral.cc:103 -#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:233 -#: ../src/iop/channelmixerrgb.c:235 ../src/iop/clipping.c:321 -#: ../src/iop/clipping.c:323 ../src/iop/colorbalancergb.c:186 -#: ../src/iop/colorin.c:136 ../src/iop/crop.c:145 ../src/iop/crop.c:147 -#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:728 -#: ../src/iop/denoiseprofile.c:730 ../src/iop/diffuse.c:146 +#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:174 +#: ../src/iop/bilateral.cc:103 ../src/iop/bilateral.cc:105 +#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:236 ../src/iop/clipping.c:364 +#: ../src/iop/clipping.c:366 ../src/iop/colorbalancergb.c:186 +#: ../src/iop/colorin.c:136 ../src/iop/crop.c:135 ../src/iop/crop.c:137 +#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:780 +#: ../src/iop/denoiseprofile.c:782 ../src/iop/diffuse.c:146 #: ../src/iop/diffuse.c:148 ../src/iop/exposure.c:132 ../src/iop/exposure.c:134 #: ../src/iop/flip.c:111 ../src/iop/flip.c:112 ../src/iop/hazeremoval.c:113 -#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:242 ../src/iop/lens.cc:244 -#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/retouch.c:210 -#: ../src/iop/retouch.c:212 ../src/iop/sigmoid.c:103 -#: ../src/iop/splittoning.c:104 ../src/iop/splittoning.c:106 -#: ../src/iop/spots.c:70 ../src/iop/spots.c:72 ../src/iop/toneequal.c:325 -#: ../src/iop/velvia.c:106 ../src/iop/velvia.c:108 +#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:263 ../src/iop/lens.cc:265 +#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/primaries.c:81 +#: ../src/iop/primaries.c:83 ../src/iop/retouch.c:210 ../src/iop/retouch.c:212 +#: ../src/iop/sigmoid.c:209 ../src/iop/splittoning.c:106 +#: ../src/iop/splittoning.c:108 ../src/iop/spots.c:70 ../src/iop/spots.c:72 +#: ../src/iop/toneequal.c:333 ../src/iop/velvia.c:99 ../src/iop/velvia.c:101 msgid "linear, RGB, scene-referred" msgstr "Lineal, RGB, basado en la escena" -#: ../src/iop/ashift.c:133 ../src/iop/borders.c:200 ../src/iop/clipping.c:322 -#: ../src/iop/crop.c:146 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 +#: ../src/iop/ashift.c:133 ../src/iop/borders.c:325 ../src/iop/clipping.c:365 +#: ../src/iop/crop.c:136 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 msgid "geometric, RGB" msgstr "Geométrico, RGB" -#: ../src/iop/ashift.c:2820 +#: ../src/iop/ashift.c:2866 msgid "automatic cropping failed" msgstr "El recorte automático falló" -#: ../src/iop/ashift.c:3234 ../src/iop/ashift.c:3286 ../src/iop/ashift.c:3334 +#: ../src/iop/ashift.c:3276 ../src/iop/ashift.c:3328 ../src/iop/ashift.c:3375 msgid "data pending - please repeat" msgstr "Datos pendientes: realizar de nuevo" -#: ../src/iop/ashift.c:3243 +#: ../src/iop/ashift.c:3285 msgid "could not detect structural data in image" msgstr "No se detectaron datos estructurales en la imagen" -#: ../src/iop/ashift.c:3255 +#: ../src/iop/ashift.c:3297 msgid "could not run outlier removal" msgstr "No se pudo ejecutar la eliminación" -#: ../src/iop/ashift.c:3434 +#: ../src/iop/ashift.c:3474 #, c-format msgid "" "not enough structure for automatic correction\n" @@ -12278,41 +12799,41 @@ "No hay suficiente estructura para la corrección automática\n" "Es necesario un mínimo de %d líneas en cada dirección relevante." -#: ../src/iop/ashift.c:3440 +#: ../src/iop/ashift.c:3480 msgid "automatic correction failed, please correct manually" msgstr "La corrección automática falló. Deberá corregir manualmente." -#: ../src/iop/ashift.c:5096 +#: ../src/iop/ashift.c:5077 #, c-format msgid "only %d lines can be saved in parameters" msgstr "Sólo %d líneas se pueden conservar en los parámetros." -#: ../src/iop/ashift.c:5201 +#: ../src/iop/ashift.c:5157 #, c-format -msgid "rotation adjusted by %3.1f° to %3.1f°" -msgstr "Ajuste de la rotación de %3.1f° a %3.1f°" +msgid "rotation adjusted by %3.2f° to %3.2f°" +msgstr "Ajuste de la rotación de %3.2f° a %3.2f°" -#: ../src/iop/ashift.c:5852 ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 -#: ../src/iop/ashift.c:5961 +#: ../src/iop/ashift.c:5797 ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 +#: ../src/iop/ashift.c:5906 #, c-format msgid "lens shift (%s)" msgstr "desplazamiento %s" -#: ../src/iop/ashift.c:6125 +#: ../src/iop/ashift.c:6072 msgid "manual perspective" msgstr "perspectiva (ajuste manual)" -#: ../src/iop/ashift.c:6170 +#: ../src/iop/ashift.c:6117 msgctxt "section" msgid "perspective" msgstr "perspectiva" -#: ../src/iop/ashift.c:6177 ../src/iop/ashift.c:6286 ../src/iop/ashift.c:6288 -#: ../src/iop/ashift.c:6290 +#: ../src/iop/ashift.c:6124 ../src/iop/ashift.c:6233 ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6237 msgid "structure" msgstr "estructura" -#: ../src/iop/ashift.c:6212 +#: ../src/iop/ashift.c:6159 msgid "" "rotate image\n" "right-click and drag to define a horizontal or vertical line by drawing on " @@ -12322,19 +12843,19 @@ "Pulse el botón secundario y arrastre para trazar una línea vertical u " "horizontal sobre la imagen." -#: ../src/iop/ashift.c:6215 ../src/iop/ashift.c:6217 +#: ../src/iop/ashift.c:6162 ../src/iop/ashift.c:6164 msgid "apply lens shift correction in one direction" msgstr "Efectúa la corrección del desplazamiento de lente en una dirección" -#: ../src/iop/ashift.c:6219 +#: ../src/iop/ashift.c:6166 msgid "shear the image along one diagonal" msgstr "Corta la imagen de acuerdo a la diagonal" -#: ../src/iop/ashift.c:6220 ../src/iop/clipping.c:2117 +#: ../src/iop/ashift.c:6167 ../src/iop/clipping.c:2170 msgid "automatically crop to avoid black edges" msgstr "Cortar automáticamente para evitar bordes negros" -#: ../src/iop/ashift.c:6221 +#: ../src/iop/ashift.c:6168 msgid "" "lens model of the perspective correction: generic or according to the focal " "length" @@ -12342,13 +12863,13 @@ "Modelo del lente de la corrección de perspectiva: genérico o en función de " "la distancia focal" -#: ../src/iop/ashift.c:6224 +#: ../src/iop/ashift.c:6171 msgid "focal length of the lens, default value set from EXIF data if available" msgstr "" "Distancia focal del lente. El valor predeterminado se fija a partir de los " "datos Exif (si están disponibles)." -#: ../src/iop/ashift.c:6227 +#: ../src/iop/ashift.c:6174 msgid "" "crop factor of the camera sensor, default value set from EXIF data if " "available, manual setting is often required" @@ -12357,7 +12878,7 @@ "valor desde los datos Exif si están disponibles. Por lo general, se requiere " "un ajuste manual." -#: ../src/iop/ashift.c:6231 +#: ../src/iop/ashift.c:6178 msgid "" "the level of lens dependent correction, set to maximum for full lens " "dependency, set to zero for the generic case" @@ -12365,13 +12886,13 @@ "Nivel de corrección en función de la lente. Se fija el valor máximo como " "corrrespondencia total de la lente. Se fija en cero para los genéricos." -#: ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6182 msgid "adjust aspect ratio of image by horizontal and vertical scaling" msgstr "" "Ajusta la relación de aspecto de la imagen mediante cambiar la escala " "horizontal y vertical" -#: ../src/iop/ashift.c:6237 +#: ../src/iop/ashift.c:6184 msgid "" "automatically correct for vertical perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12381,7 +12902,7 @@ "Ctrl+Clic para corregir solo la rotación\n" "Mayús+Clic para corregir el desplazamiento del lente" -#: ../src/iop/ashift.c:6241 +#: ../src/iop/ashift.c:6188 msgid "" "automatically correct for horizontal perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12391,7 +12912,7 @@ "Ctrl+Clic para solo corregir la rotación\n" "Mayús+Clic para solo corregir el desplazamiento del lente" -#: ../src/iop/ashift.c:6245 +#: ../src/iop/ashift.c:6192 msgid "" "automatically correct for vertical and horizontal perspective distortions, " "fitting rotation, lens shift in both directions, and shear\n" @@ -12406,7 +12927,7 @@ "Pulse Mayús+Clic para corregir solo el desplazamiento del lente.\n" "Pulse Ctrl+Mayús+Clic para ajustar la rotación y el desplazamiento del lente." -#: ../src/iop/ashift.c:6252 +#: ../src/iop/ashift.c:6199 msgid "" "automatically analyse line structure in image\n" "ctrl+click for an additional edge enhancement\n" @@ -12418,225 +12939,225 @@ "Mayús+Clic para mejoras adicionales en el detalle.\n" "Ctrl+Mayús+Clic para una combinación de ambos métodos." -#: ../src/iop/ashift.c:6257 +#: ../src/iop/ashift.c:6204 msgid "manually define perspective rectangle" msgstr "Se modifica manualmente el cuadro de perspectiva" -#: ../src/iop/ashift.c:6258 +#: ../src/iop/ashift.c:6205 msgid "manually draw structure lines" msgstr "Trazar manualmente las líneas de la estructura" -#: ../src/iop/ashift.c:6287 +#: ../src/iop/ashift.c:6234 msgid "rectangle" msgstr "cuadro" -#: ../src/iop/ashift.c:6289 +#: ../src/iop/ashift.c:6236 msgid "lines" msgstr "líneas" -#: ../src/iop/ashift.c:6323 ../src/iop/clipping.c:3343 +#: ../src/iop/ashift.c:6270 ../src/iop/clipping.c:3383 #, c-format msgid "[%s] define/rotate horizon" msgstr "[%s] definir o rotar horizonte" -#: ../src/iop/ashift.c:6326 +#: ../src/iop/ashift.c:6273 #, c-format msgid "[%s on segment] select segment" msgstr "[%s en el segmento] seleccionar segmento" -#: ../src/iop/ashift.c:6330 +#: ../src/iop/ashift.c:6277 #, c-format msgid "[%s on segment] unselect segment" msgstr "[%s en el segmento] anular selección de segmento" -#: ../src/iop/ashift.c:6334 +#: ../src/iop/ashift.c:6281 #, c-format msgid "[%s] select all segments from zone" msgstr "[%s] seleccionar todos los segmentos de la zona" -#: ../src/iop/ashift.c:6338 +#: ../src/iop/ashift.c:6285 #, c-format msgid "[%s] unselect all segments from zone" msgstr "[%s] anular la selección de todos los segmentos de la zona" -#: ../src/iop/atrous.c:123 ../src/iop/atrous.c:1638 +#: ../src/iop/atrous.c:122 ../src/iop/atrous.c:1770 msgid "contrast equalizer" msgstr "ecualizador de contraste" -#: ../src/iop/atrous.c:128 +#: ../src/iop/atrous.c:127 msgid "sharpness|acutance|local contrast" msgstr "enfoque|acutancia|contraste local" -#: ../src/iop/atrous.c:133 +#: ../src/iop/atrous.c:132 msgid "add or remove local contrast, sharpness, acutance" msgstr "Añade o disminuye contraste local, enfoque y acutancia" -#: ../src/iop/atrous.c:134 ../src/iop/bilateral.cc:100 ../src/iop/diffuse.c:145 +#: ../src/iop/atrous.c:133 ../src/iop/bilateral.cc:102 ../src/iop/diffuse.c:145 #: ../src/iop/exposure.c:131 ../src/iop/filmicrgb.c:352 #: ../src/iop/graduatednd.c:146 ../src/iop/negadoctor.c:146 -#: ../src/iop/rgbcurve.c:143 ../src/iop/rgblevels.c:123 ../src/iop/shadhi.c:197 -#: ../src/iop/sigmoid.c:102 ../src/iop/tonecurve.c:211 -#: ../src/iop/toneequal.c:324 +#: ../src/iop/rgbcurve.c:145 ../src/iop/rgblevels.c:125 ../src/iop/shadhi.c:144 +#: ../src/iop/sigmoid.c:209 ../src/iop/tonecurve.c:184 +#: ../src/iop/toneequal.c:332 msgid "corrective and creative" msgstr "Correctivo y creativo" -#: ../src/iop/atrous.c:135 ../src/iop/atrous.c:137 -#: ../src/iop/colorbalance.c:162 +#: ../src/iop/atrous.c:134 ../src/iop/atrous.c:136 +#: ../src/iop/colorbalance.c:164 msgid "linear, Lab, scene-referred" msgstr "Lineal, Lab, basado en la escena" -#: ../src/iop/atrous.c:136 ../src/iop/censorize.c:85 +#: ../src/iop/atrous.c:135 ../src/iop/censorize.c:85 #: ../src/iop/hazeremoval.c:114 msgid "frequential, RGB" msgstr "Frecuencial, RGB" -#: ../src/iop/atrous.c:727 +#: ../src/iop/atrous.c:799 msgctxt "eq_preset" msgid "coarse" msgstr "aspereza" -#: ../src/iop/atrous.c:742 +#: ../src/iop/atrous.c:815 msgid "denoise & sharpen" msgstr "reducción de ruido y enfoque" -#: ../src/iop/atrous.c:757 +#: ../src/iop/atrous.c:831 msgctxt "atrous" msgid "sharpen" msgstr "enfoque" -#: ../src/iop/atrous.c:772 +#: ../src/iop/atrous.c:847 msgid "denoise chroma" msgstr "reducción de ruido de crominancia" -#: ../src/iop/atrous.c:787 +#: ../src/iop/atrous.c:863 msgid "denoise" msgstr "reducción de ruido" -#: ../src/iop/atrous.c:803 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:421 +#: ../src/iop/atrous.c:880 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:448 msgid "bloom" msgstr "resplandor" -#: ../src/iop/atrous.c:818 ../src/iop/bilat.c:169 +#: ../src/iop/atrous.c:896 ../src/iop/bilat.c:186 msgid "clarity" msgstr "claridad" -#: ../src/iop/atrous.c:838 +#: ../src/iop/atrous.c:917 msgid "deblur: large blur, strength 3" msgstr "nitidez: desenfoque amplio, intensidad 3" -#: ../src/iop/atrous.c:855 +#: ../src/iop/atrous.c:935 msgid "deblur: medium blur, strength 3" msgstr "nitidez: desenfoque medio, intensidad 3" -#: ../src/iop/atrous.c:871 +#: ../src/iop/atrous.c:952 msgid "deblur: fine blur, strength 3" msgstr "nitidez: desenfoque ligero, intensidad 3" -#: ../src/iop/atrous.c:889 +#: ../src/iop/atrous.c:971 msgid "deblur: large blur, strength 2" msgstr "nitidez: desenfoque amplio, intensidad 2" -#: ../src/iop/atrous.c:906 +#: ../src/iop/atrous.c:989 msgid "deblur: medium blur, strength 2" msgstr "nitidez: desenfoque medio, intensidad 2" -#: ../src/iop/atrous.c:922 +#: ../src/iop/atrous.c:1006 msgid "deblur: fine blur, strength 2" msgstr "nitidez: desenfoque ligero, intensidad 2" -#: ../src/iop/atrous.c:940 +#: ../src/iop/atrous.c:1025 msgid "deblur: large blur, strength 1" msgstr "nitidez: desenfoque amplio, intensidad 1" -#: ../src/iop/atrous.c:957 +#: ../src/iop/atrous.c:1043 msgid "deblur: medium blur, strength 1" msgstr "nitidez: desenfoque medio, intensidad 1" -#: ../src/iop/atrous.c:973 +#: ../src/iop/atrous.c:1060 msgid "deblur: fine blur, strength 1" msgstr "nitidez: desenfoque ligero, intensidad 1" -#: ../src/iop/atrous.c:1289 ../src/iop/atrous.c:1525 -#: ../src/iop/denoiseprofile.c:3510 ../src/iop/rawdenoise.c:738 +#: ../src/iop/atrous.c:1390 ../src/iop/atrous.c:1639 +#: ../src/iop/denoiseprofile.c:3514 ../src/iop/rawdenoise.c:754 msgid "coarse" msgstr "detalles grandes" -#: ../src/iop/atrous.c:1296 ../src/iop/atrous.c:1526 -#: ../src/iop/denoiseprofile.c:3518 ../src/iop/rawdenoise.c:746 +#: ../src/iop/atrous.c:1397 ../src/iop/atrous.c:1640 +#: ../src/iop/denoiseprofile.c:3522 ../src/iop/rawdenoise.c:762 msgid "fine" msgstr "detalles pequeños" -#: ../src/iop/atrous.c:1308 +#: ../src/iop/atrous.c:1409 msgid "contrasty" msgstr "contrastado" -#: ../src/iop/atrous.c:1314 ../src/iop/denoiseprofile.c:3532 -#: ../src/iop/rawdenoise.c:760 +#: ../src/iop/atrous.c:1415 ../src/iop/denoiseprofile.c:3536 +#: ../src/iop/rawdenoise.c:776 msgid "noisy" msgstr "ruidoso" #. case atrous_s: -#: ../src/iop/atrous.c:1317 +#: ../src/iop/atrous.c:1418 msgid "bold" msgstr "vivo" -#: ../src/iop/atrous.c:1318 +#: ../src/iop/atrous.c:1419 msgid "dull" msgstr "apagado" -#: ../src/iop/atrous.c:1513 ../src/iop/atrous.c:1564 +#: ../src/iop/atrous.c:1627 ../src/iop/atrous.c:1685 msgid "boost" msgstr "potenciar" -#: ../src/iop/atrous.c:1514 +#: ../src/iop/atrous.c:1628 msgid "reduce" msgstr "reducir" -#: ../src/iop/atrous.c:1515 +#: ../src/iop/atrous.c:1629 msgid "raise" msgstr "elevar" -#: ../src/iop/atrous.c:1516 +#: ../src/iop/atrous.c:1630 msgid "lower" msgstr "bajar" -#: ../src/iop/atrous.c:1523 +#: ../src/iop/atrous.c:1637 msgid "coarsest" msgstr "más grandes" -#: ../src/iop/atrous.c:1524 +#: ../src/iop/atrous.c:1638 msgid "coarser" msgstr "los más grandes" -#: ../src/iop/atrous.c:1527 +#: ../src/iop/atrous.c:1641 msgid "finer" msgstr "más pequeños" -#: ../src/iop/atrous.c:1528 +#: ../src/iop/atrous.c:1642 msgid "finest" msgstr "los más pequeños" -#: ../src/iop/atrous.c:1586 ../src/libs/export.c:1143 ../src/libs/export.c:1158 +#: ../src/iop/atrous.c:1710 ../src/libs/export.c:1239 ../src/libs/export.c:1255 msgid "x" msgstr "x" -#: ../src/iop/atrous.c:1666 ../src/iop/nlmeans.c:465 +#: ../src/iop/atrous.c:1799 ../src/iop/nlmeans.c:468 msgid "luma" msgstr "luma" -#: ../src/iop/atrous.c:1666 +#: ../src/iop/atrous.c:1800 msgid "change lightness at each feature size" msgstr "Cambia la luminosidad en cada parte" -#: ../src/iop/atrous.c:1667 +#: ../src/iop/atrous.c:1802 msgid "change color saturation at each feature size" msgstr "Cambia la saturación de color en cada parte" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1804 msgid "edges" msgstr "bordes" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1805 msgid "" "change edge halos at each feature size\n" "only changes results of luma and chroma tabs" @@ -12645,97 +13166,97 @@ "Sólo tiene efecto si en las pestañas de luma y crominancia hay " "modificaciones." -#: ../src/iop/atrous.c:1679 ../src/iop/colorbalancergb.c:2058 -#: ../src/iop/colorzones.c:2473 ../src/iop/denoiseprofile.c:3743 -#: ../src/iop/filmicrgb.c:4407 ../src/iop/lowlight.c:823 -#: ../src/iop/rawdenoise.c:919 ../src/iop/toneequal.c:3371 +#: ../src/iop/atrous.c:1818 ../src/iop/colorbalancergb.c:2129 +#: ../src/iop/colorzones.c:2732 ../src/iop/denoiseprofile.c:3747 +#: ../src/iop/filmicrgb.c:4471 ../src/iop/lowlight.c:821 +#: ../src/iop/rawdenoise.c:935 ../src/iop/toneequal.c:3424 msgid "graph" msgstr "gráfico" -#: ../src/iop/atrous.c:1690 ../src/iop/colorzones.c:2470 +#: ../src/iop/atrous.c:1836 ../src/iop/colorzones.c:2729 msgid "make effect stronger or weaker" msgstr "Hacer más suave o más intenso el efecto" -#: ../src/iop/basecurve.c:213 +#: ../src/iop/basecurve.c:260 msgid "neutral" msgstr "neutral" -#: ../src/iop/basecurve.c:214 +#: ../src/iop/basecurve.c:261 msgid "canon eos like" msgstr "similar a Canon EOS" -#: ../src/iop/basecurve.c:215 +#: ../src/iop/basecurve.c:262 msgid "canon eos like alternate" msgstr "similar a Canon EOS (alternativo)" -#: ../src/iop/basecurve.c:216 +#: ../src/iop/basecurve.c:263 msgid "nikon like" msgstr "similar a Nikon" -#: ../src/iop/basecurve.c:217 +#: ../src/iop/basecurve.c:264 msgid "nikon like alternate" msgstr "similar a Nikon (alternativo)" -#: ../src/iop/basecurve.c:218 +#: ../src/iop/basecurve.c:265 msgid "sony alpha like" msgstr "similar a Sony Alpha" -#: ../src/iop/basecurve.c:219 +#: ../src/iop/basecurve.c:266 msgid "pentax like" msgstr "similar a Pentax" -#: ../src/iop/basecurve.c:220 +#: ../src/iop/basecurve.c:267 msgid "ricoh like" msgstr "similar a Ricoh" -#: ../src/iop/basecurve.c:221 +#: ../src/iop/basecurve.c:268 msgid "olympus like" msgstr "similar a Olympus" -#: ../src/iop/basecurve.c:222 +#: ../src/iop/basecurve.c:269 msgid "olympus like alternate" msgstr "similar a Olympus (alternativo)" -#: ../src/iop/basecurve.c:223 +#: ../src/iop/basecurve.c:270 msgid "panasonic like" msgstr "similar a Panasonic" -#: ../src/iop/basecurve.c:224 +#: ../src/iop/basecurve.c:271 msgid "leica like" msgstr "similar a Leica" -#: ../src/iop/basecurve.c:225 +#: ../src/iop/basecurve.c:272 msgid "kodak easyshare like" msgstr "similar a Kodak Easyshare" -#: ../src/iop/basecurve.c:226 +#: ../src/iop/basecurve.c:273 msgid "konica minolta like" msgstr "similar a Konica Minolta" -#: ../src/iop/basecurve.c:227 +#: ../src/iop/basecurve.c:274 msgid "samsung like" msgstr "similar a Samsung" -#: ../src/iop/basecurve.c:228 +#: ../src/iop/basecurve.c:275 msgid "fujifilm like" msgstr "similar a Fujifilm" -#: ../src/iop/basecurve.c:229 +#: ../src/iop/basecurve.c:276 msgid "nokia like" msgstr "similar a Nokia" #. clang-format off #. smoother cubic spline curve -#: ../src/iop/basecurve.c:284 ../src/iop/colorzones.c:2495 -#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1173 +#: ../src/iop/basecurve.c:331 ../src/iop/colorzones.c:2763 +#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1195 msgid "cubic spline" msgstr "curva segmentaria cúbica" -#: ../src/iop/basecurve.c:343 +#: ../src/iop/basecurve.c:390 msgid "base curve" msgstr "curva base" -#: ../src/iop/basecurve.c:350 +#: ../src/iop/basecurve.c:397 msgid "" "apply a view transform based on personal or camera manufacturer look,\n" "for corrective purposes, to prepare images for display" @@ -12743,67 +13264,67 @@ "Implementa un tratamiento al aspecto de la imagen con fines correctivos,\n" "basado en el estilo del fabricante de la cámara o personalizado" -#: ../src/iop/basecurve.c:352 ../src/iop/cacorrect.c:78 -#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:135 -#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:727 +#: ../src/iop/basecurve.c:399 ../src/iop/cacorrect.c:84 +#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:120 +#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:779 #: ../src/iop/flip.c:110 ../src/iop/hazeremoval.c:112 -#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:73 -#: ../src/iop/invert.c:119 ../src/iop/lens.cc:241 ../src/iop/nlmeans.c:95 -#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:130 -#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:94 ../src/iop/spots.c:69 -#: ../src/iop/temperature.c:212 +#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:75 +#: ../src/iop/invert.c:136 ../src/iop/lens.cc:262 ../src/iop/nlmeans.c:89 +#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:144 +#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:96 ../src/iop/spots.c:69 +#: ../src/iop/temperature.c:220 msgid "corrective" msgstr "Correctivo" -#: ../src/iop/basecurve.c:353 ../src/iop/channelmixer.c:140 -#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:142 +#: ../src/iop/basecurve.c:400 ../src/iop/channelmixer.c:140 +#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:143 #: ../src/iop/negadoctor.c:147 ../src/iop/profile_gamma.c:103 -#: ../src/iop/rgbcurve.c:144 ../src/iop/rgbcurve.c:146 -#: ../src/iop/rgblevels.c:124 ../src/iop/sigmoid.c:105 ../src/iop/soften.c:102 -#: ../src/iop/soften.c:104 +#: ../src/iop/rgbcurve.c:146 ../src/iop/rgbcurve.c:148 +#: ../src/iop/rgblevels.c:126 ../src/iop/sigmoid.c:210 ../src/iop/soften.c:104 +#: ../src/iop/soften.c:106 msgid "linear, RGB, display-referred" msgstr "Lineal, RGB, basado en la pantalla" -#: ../src/iop/basecurve.c:354 ../src/iop/basicadj.c:149 -#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:187 +#: ../src/iop/basecurve.c:401 ../src/iop/basicadj.c:175 +#: ../src/iop/colorbalance.c:165 ../src/iop/colorbalancergb.c:187 #: ../src/iop/dither.c:121 ../src/iop/filmicrgb.c:354 #: ../src/iop/graduatednd.c:148 ../src/iop/negadoctor.c:148 -#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:145 -#: ../src/iop/rgblevels.c:125 ../src/iop/sigmoid.c:104 -#: ../src/iop/vignette.c:161 ../src/iop/watermark.c:379 +#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:147 +#: ../src/iop/rgblevels.c:127 ../src/iop/sigmoid.c:210 +#: ../src/iop/vignette.c:122 ../src/iop/watermark.c:424 msgid "non-linear, RGB" msgstr "No lineal, RGB" -#: ../src/iop/basecurve.c:355 ../src/iop/dither.c:120 ../src/iop/dither.c:122 +#: ../src/iop/basecurve.c:402 ../src/iop/dither.c:120 ../src/iop/dither.c:122 #: ../src/iop/filmicrgb.c:355 ../src/iop/graduatednd.c:149 #: ../src/iop/negadoctor.c:149 ../src/iop/profile_gamma.c:105 -#: ../src/iop/rgblevels.c:126 ../src/iop/vignette.c:160 -#: ../src/iop/vignette.c:162 ../src/iop/watermark.c:378 -#: ../src/iop/watermark.c:380 +#: ../src/iop/rgblevels.c:128 ../src/iop/vignette.c:121 +#: ../src/iop/vignette.c:123 ../src/iop/watermark.c:423 +#: ../src/iop/watermark.c:425 msgid "non-linear, RGB, display-referred" msgstr "No lineal, RGB, basado en la pantalla" -#: ../src/iop/basecurve.c:2184 +#: ../src/iop/basecurve.c:2205 msgid "abscissa: input, ordinate: output. works on RGB channels" msgstr "" "La entrada corresponde al eje x; la salida al eje y. Opera sobre los canales " "RGB." -#: ../src/iop/basecurve.c:2190 ../src/iop/basicadj.c:612 -#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1072 -#: ../src/iop/tonecurve.c:1184 +#: ../src/iop/basecurve.c:2211 ../src/iop/basicadj.c:642 +#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1133 +#: ../src/iop/tonecurve.c:1206 msgid "method to preserve colors when applying contrast" msgstr "Método para preservar los colores al aplicar contraste" -#: ../src/iop/basecurve.c:2194 +#: ../src/iop/basecurve.c:2215 msgid "two exposures" msgstr "doble exposición" -#: ../src/iop/basecurve.c:2195 +#: ../src/iop/basecurve.c:2216 msgid "three exposures" msgstr "triple exposición" -#: ../src/iop/basecurve.c:2196 +#: ../src/iop/basecurve.c:2217 msgid "" "fuse this image stopped up/down a couple of times with itself, to compress " "high dynamic range. expose for the highlights before use." @@ -12811,11 +13332,11 @@ "La imagen se ha detenido al comprimir el rango dinámico amplio durante la " "fusión. Exponga a las luces antes de usarlo." -#: ../src/iop/basecurve.c:2201 +#: ../src/iop/basecurve.c:2222 msgid "how many stops to shift the individual exposures apart" msgstr "El número de pasos que hay entre cada exposición individual" -#: ../src/iop/basecurve.c:2210 +#: ../src/iop/basecurve.c:2231 msgid "" "whether to shift exposure up or down (-1: reduce highlight, +1: reduce " "shadows)" @@ -12823,42 +13344,41 @@ "Ajustar a mayor o menor exposición (-1: reduce las luces altas, +1: reduce " "las sombras)" -#: ../src/iop/basecurve.c:2215 ../src/iop/tonecurve.c:1187 +#: ../src/iop/basecurve.c:2236 ../src/iop/tonecurve.c:1209 msgid "scale for graph" msgstr "escala del gráfico" -#: ../src/iop/basicadj.c:136 +#: ../src/iop/basicadj.c:162 msgid "this module is deprecated. please use the quick access panel instead." msgstr "" "Este módulo ha quedado sin soporte. Se recomienda sustituirlo por el panel " "de control modular." -#: ../src/iop/basicadj.c:141 +#: ../src/iop/basicadj.c:167 msgid "basic adjustments" msgstr "ajustes básicos" -#: ../src/iop/basicadj.c:146 +#: ../src/iop/basicadj.c:172 msgid "apply usual image adjustments" msgstr "Emplea los ajustes de imagen más frecuentes" -#: ../src/iop/basicadj.c:147 ../src/iop/bilat.c:102 ../src/iop/bloom.c:81 -#: ../src/iop/blurs.c:93 ../src/iop/borders.c:198 ../src/iop/censorize.c:83 -#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:97 -#: ../src/iop/colorize.c:105 ../src/iop/colormapping.c:153 -#: ../src/iop/colorzones.c:145 ../src/iop/grain.c:434 ../src/iop/highpass.c:78 -#: ../src/iop/levels.c:138 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 -#: ../src/iop/lowpass.c:134 ../src/iop/monochrome.c:98 ../src/iop/soften.c:101 -#: ../src/iop/splittoning.c:103 ../src/iop/velvia.c:105 -#: ../src/iop/vibrance.c:95 ../src/iop/vignette.c:159 -#: ../src/iop/watermark.c:377 +#: ../src/iop/basicadj.c:173 ../src/iop/bilat.c:83 ../src/iop/bloom.c:81 +#: ../src/iop/blurs.c:93 ../src/iop/borders.c:323 ../src/iop/censorize.c:83 +#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:89 +#: ../src/iop/colorize.c:98 ../src/iop/colormapping.c:153 +#: ../src/iop/colorzones.c:146 ../src/iop/grain.c:450 ../src/iop/highpass.c:78 +#: ../src/iop/levels.c:140 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 +#: ../src/iop/lowpass.c:106 ../src/iop/monochrome.c:100 ../src/iop/soften.c:103 +#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:98 ../src/iop/vibrance.c:97 +#: ../src/iop/vignette.c:120 ../src/iop/watermark.c:422 msgid "creative" msgstr "Creativo" -#: ../src/iop/basicadj.c:150 ../src/iop/colorbalancergb.c:188 +#: ../src/iop/basicadj.c:176 ../src/iop/colorbalancergb.c:188 msgid "non-linear, RGB, scene-referred" msgstr "No lineal, RGB, basado en la escena" -#: ../src/iop/basicadj.c:593 +#: ../src/iop/basicadj.c:623 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -12870,39 +13390,39 @@ "Si está mal configurado, recortará los colores casi negros de la gama\n" "forzando los valores RGB a los negativos." -#: ../src/iop/basicadj.c:601 ../src/iop/exposure.c:1118 +#: ../src/iop/basicadj.c:631 ../src/iop/exposure.c:1136 msgid "adjust the exposure correction" msgstr "Ajusta la corrección de exposición" -#: ../src/iop/basicadj.c:605 +#: ../src/iop/basicadj.c:635 msgid "highlight compression adjustment" msgstr "Ajusta la compresión de las luces" -#: ../src/iop/basicadj.c:609 ../src/iop/colisa.c:308 +#: ../src/iop/basicadj.c:639 ../src/iop/colisa.c:302 msgid "contrast adjustment" msgstr "Ajusta el contraste" -#: ../src/iop/basicadj.c:617 +#: ../src/iop/basicadj.c:647 msgid "middle gray adjustment" msgstr "Ajusta el gris medio" -#: ../src/iop/basicadj.c:622 ../src/iop/colisa.c:309 +#: ../src/iop/basicadj.c:652 ../src/iop/colisa.c:303 msgid "brightness adjustment" msgstr "Ajusta el brillo" -#: ../src/iop/basicadj.c:625 +#: ../src/iop/basicadj.c:655 msgid "saturation adjustment" msgstr "Ajusta la saturación" -#: ../src/iop/basicadj.c:628 +#: ../src/iop/basicadj.c:658 msgid "vibrance adjustment" msgstr "Ajusta la intensidad" -#: ../src/iop/basicadj.c:632 +#: ../src/iop/basicadj.c:662 msgid "apply auto exposure based on the entire image" msgstr "Aplica la exposición automática basada en toda la imagen" -#: ../src/iop/basicadj.c:639 +#: ../src/iop/basicadj.c:669 msgid "" "apply auto exposure based on a region defined by the user\n" "click and drag to draw the area\n" @@ -12913,51 +13433,51 @@ "Pulse y arrastre para seleccionar el área\n" "Pulse el botón secundario para cancelar" -#: ../src/iop/basicadj.c:647 +#: ../src/iop/basicadj.c:677 msgid "clip" msgstr "recortar" -#: ../src/iop/basicadj.c:649 +#: ../src/iop/basicadj.c:679 msgid "adjusts clipping value for auto exposure calculation" msgstr "Ajusta el valor de recorte para el cálculo de la exposición automática" #. local contrast -#: ../src/iop/bilat.c:96 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:551 +#: ../src/iop/bilat.c:77 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:578 msgid "local contrast" msgstr "contraste local" -#: ../src/iop/bilat.c:101 +#: ../src/iop/bilat.c:82 msgid "manipulate local and global contrast separately" msgstr "Controlar por separado los contrastes local y general" -#: ../src/iop/bilat.c:103 ../src/iop/bilat.c:105 ../src/iop/bloom.c:82 +#: ../src/iop/bilat.c:84 ../src/iop/bilat.c:86 ../src/iop/bloom.c:82 #: ../src/iop/bloom.c:84 ../src/iop/colisa.c:91 ../src/iop/colisa.c:93 -#: ../src/iop/colorcontrast.c:98 ../src/iop/colorcontrast.c:100 +#: ../src/iop/colorcontrast.c:90 ../src/iop/colorcontrast.c:92 #: ../src/iop/colorcorrection.c:78 ../src/iop/colorcorrection.c:80 -#: ../src/iop/colorize.c:108 ../src/iop/colormapping.c:156 -#: ../src/iop/colorreconstruction.c:138 ../src/iop/colorzones.c:148 -#: ../src/iop/defringe.c:85 ../src/iop/grain.c:435 ../src/iop/grain.c:437 -#: ../src/iop/levels.c:141 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 -#: ../src/iop/monochrome.c:101 ../src/iop/nlmeans.c:96 ../src/iop/nlmeans.c:98 -#: ../src/iop/shadhi.c:200 ../src/iop/tonecurve.c:214 ../src/iop/vibrance.c:98 +#: ../src/iop/colorize.c:101 ../src/iop/colormapping.c:156 +#: ../src/iop/colorreconstruction.c:123 ../src/iop/colorzones.c:149 +#: ../src/iop/defringe.c:85 ../src/iop/grain.c:451 ../src/iop/grain.c:453 +#: ../src/iop/levels.c:143 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 +#: ../src/iop/monochrome.c:103 ../src/iop/nlmeans.c:90 ../src/iop/nlmeans.c:92 +#: ../src/iop/shadhi.c:147 ../src/iop/tonecurve.c:187 ../src/iop/vibrance.c:100 msgid "non-linear, Lab, display-referred" msgstr "No lineal, Lab, basado en la pantalla" -#: ../src/iop/bilat.c:104 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 -#: ../src/iop/colorcontrast.c:99 ../src/iop/colorcorrection.c:79 -#: ../src/iop/colorize.c:107 ../src/iop/colormapping.c:155 -#: ../src/iop/colorreconstruction.c:137 ../src/iop/colorzones.c:147 -#: ../src/iop/defringe.c:84 ../src/iop/grain.c:436 ../src/iop/levels.c:140 -#: ../src/iop/monochrome.c:100 ../src/iop/nlmeans.c:97 ../src/iop/shadhi.c:199 -#: ../src/iop/tonecurve.c:213 ../src/iop/vibrance.c:97 +#: ../src/iop/bilat.c:85 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 +#: ../src/iop/colorcontrast.c:91 ../src/iop/colorcorrection.c:79 +#: ../src/iop/colorize.c:100 ../src/iop/colormapping.c:155 +#: ../src/iop/colorreconstruction.c:122 ../src/iop/colorzones.c:148 +#: ../src/iop/defringe.c:84 ../src/iop/grain.c:452 ../src/iop/levels.c:142 +#: ../src/iop/monochrome.c:102 ../src/iop/nlmeans.c:91 ../src/iop/shadhi.c:146 +#: ../src/iop/tonecurve.c:186 ../src/iop/vibrance.c:99 msgid "non-linear, Lab" msgstr "No lineal, Lab" -#: ../src/iop/bilat.c:178 +#: ../src/iop/bilat.c:195 msgid "HDR local tone-mapping" msgstr "mapeo tonal local HDR" -#: ../src/iop/bilat.c:431 +#: ../src/iop/bilat.c:441 msgid "" "the filter used for local contrast enhancement. bilateral is faster but can " "lead to artifacts around edges for extreme settings." @@ -12965,33 +13485,33 @@ "Filtro usado para la mejora del contraste local. El bilateral es más rápido, " "pero puede derivar en anomalías alrededor de los bordes con ajustes extremos." -#: ../src/iop/bilat.c:435 ../src/iop/globaltonemap.c:635 +#: ../src/iop/bilat.c:445 ../src/iop/globaltonemap.c:668 msgid "detail" msgstr "detalle" -#: ../src/iop/bilat.c:438 +#: ../src/iop/bilat.c:448 msgid "changes the local contrast" msgstr "Cambia el contraste local" -#: ../src/iop/bilat.c:453 +#: ../src/iop/bilat.c:463 msgid "feature size of local details (spatial sigma of bilateral filter)" msgstr "" "Tamaño de los elementos de los detalles locales (sigma espacial del filtro " "bilateral)" -#: ../src/iop/bilat.c:461 +#: ../src/iop/bilat.c:471 msgid "L difference to detect edges (range sigma of bilateral filter)" msgstr "Diferencia L para detectar bordes (rango sigma del filtro bilateral)" -#: ../src/iop/bilat.c:467 +#: ../src/iop/bilat.c:477 msgid "changes the local contrast of highlights" msgstr "Cambia el contraste local de las luces" -#: ../src/iop/bilat.c:473 +#: ../src/iop/bilat.c:483 msgid "changes the local contrast of shadows" msgstr "Cambia el contraste local de las sombras" -#: ../src/iop/bilat.c:479 +#: ../src/iop/bilat.c:489 msgid "" "defines what counts as mid-tones. lower for better dynamic range compression " "(reduce shadow and highlight contrast), increase for more powerful local " @@ -13001,7 +13521,7 @@ "del rango dinámico (reduce las sombras y el contraste de las luces). " "Aumentar para obtener un contraste local más potente." -#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:396 +#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:423 msgid "surface blur" msgstr "difuminar textura" @@ -13009,24 +13529,24 @@ msgid "denoise (bilateral filter)" msgstr "reducción de ruido (filtro bilateral)" -#: ../src/iop/bilateral.cc:99 +#: ../src/iop/bilateral.cc:101 msgid "apply edge-aware surface blur to denoise or smoothen textures" msgstr "" "Aplica un difuminado en ciertas áreas al detectar los contornos para " "suavizar texturas o reducir el ruido" -#: ../src/iop/bilateral.cc:102 ../src/iop/blurs.c:93 -#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:729 -#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/soften.c:103 -#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:107 +#: ../src/iop/bilateral.cc:104 ../src/iop/blurs.c:93 +#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:781 +#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/primaries.c:82 +#: ../src/iop/soften.c:105 ../src/iop/splittoning.c:107 ../src/iop/velvia.c:100 msgid "linear, RGB" msgstr "Lineal, RGB" -#: ../src/iop/bilateral.cc:136 +#: ../src/iop/bilateral.cc:138 msgid "image too large" msgstr "Imagen demasiado grande" -#: ../src/iop/bilateral.cc:137 +#: ../src/iop/bilateral.cc:139 msgid "" "this module is unable to process\n" "images with more than 2 gigapixels.\n" @@ -13036,19 +13556,19 @@ "imágenes mayores a 2 Gigapixeles.\n" "Se ha omitido el procesado de imagen." -#: ../src/iop/bilateral.cc:351 +#: ../src/iop/bilateral.cc:353 msgid "spatial extent of the gaussian" msgstr "Extensión espacial gaussiano" -#: ../src/iop/bilateral.cc:355 +#: ../src/iop/bilateral.cc:357 msgid "how much to blur red" msgstr "Nivel de desenfoque del rojo" -#: ../src/iop/bilateral.cc:360 +#: ../src/iop/bilateral.cc:362 msgid "how much to blur green" msgstr "Nivel de desenfoque del verde" -#: ../src/iop/bilateral.cc:365 +#: ../src/iop/bilateral.cc:367 msgid "how much to blur blue" msgstr "Nivel de desenfoque del azul" @@ -13056,20 +13576,20 @@ msgid "apply Orton effect for a dreamy aetherical look" msgstr "Aplica el efecto Orton para un aspecto etéreo de ensueño" -#: ../src/iop/bloom.c:368 ../src/iop/soften.c:369 ../src/libs/camera.c:567 -#: ../src/libs/masks.c:105 +#: ../src/iop/bloom.c:364 ../src/iop/soften.c:364 ../src/libs/camera.c:567 +#: ../src/libs/masks.c:106 msgid "size" msgstr "tamaño" -#: ../src/iop/bloom.c:370 +#: ../src/iop/bloom.c:366 msgid "the size of bloom" msgstr "Tamaño del resplandor" -#: ../src/iop/bloom.c:374 +#: ../src/iop/bloom.c:370 msgid "the threshold of light" msgstr "Umbral de luz" -#: ../src/iop/bloom.c:378 +#: ../src/iop/bloom.c:374 msgid "the strength of bloom" msgstr "Intensidad del resplandor" @@ -13086,272 +13606,281 @@ msgstr "" "Emula el desenfoque de movimiento y ciertas propiedades físicas del diafragma" -#: ../src/iop/borders.c:187 +#: ../src/iop/borders.c:312 msgid "framing" msgstr "enmarcar" -#: ../src/iop/borders.c:192 +#: ../src/iop/borders.c:317 msgid "borders|enlarge canvas|expand canvas" msgstr "bordes|agrandar lienzo|expandir lienzo" -#: ../src/iop/borders.c:197 +#: ../src/iop/borders.c:322 msgid "add solid borders or margins around the picture" msgstr "Añade bordes sólidos o márgenes alrededor de la imagen" -#: ../src/iop/borders.c:199 ../src/iop/borders.c:201 ../src/iop/lut3d.c:144 +#: ../src/iop/borders.c:324 ../src/iop/borders.c:326 ../src/iop/lut3d.c:145 msgid "linear or non-linear, RGB, display-referred" msgstr "Lineal o no lineal, RGB, basado en la pantalla" -#: ../src/iop/borders.c:727 +#: ../src/iop/borders.c:737 msgid "15:10 postcard white" msgstr "postal blanca 10×15" -#: ../src/iop/borders.c:732 +#: ../src/iop/borders.c:742 msgid "15:10 postcard black" msgstr "postal negra 10×15" -#: ../src/iop/borders.c:942 -msgid "size of the border in percent of the full image" -msgstr "tamaño del borde en porcentaje de la imagen completa" +#: ../src/iop/borders.c:948 +msgid "which dimension to use for the size calculation" +msgstr "" +"Determina qué dimensión se utilizará como criterio para el cálculo del tamaño" -#: ../src/iop/borders.c:944 ../src/iop/clipping.c:2218 ../src/iop/crop.c:1224 +#: ../src/iop/borders.c:954 +msgid "size of the border in percent of the chosen basis" +msgstr "Tamaño del borde en porcentaje de la referencia elegida" + +#: ../src/iop/borders.c:956 ../src/iop/clipping.c:2271 ../src/iop/crop.c:1208 msgid "aspect" msgstr "relación de aspecto" -#: ../src/iop/borders.c:945 +#: ../src/iop/borders.c:957 msgid "" -"select the aspect ratio (right click on slider below to type your own w:h)" +"select the aspect ratio\n" +"(right click on slider below to type your own w:h)" msgstr "" -"Elegir la proporción o ingresarla manualmente con clic secundario (a:l)." +"Elegir la proporción\n" +"o ingresarla manualmente con clic secundario (a:l)." -#: ../src/iop/borders.c:948 +#: ../src/iop/borders.c:961 msgid "3:1" msgstr "3:1" -#: ../src/iop/borders.c:949 +#: ../src/iop/borders.c:962 msgid "95:33" msgstr "95:33" -#: ../src/iop/borders.c:950 +#: ../src/iop/borders.c:963 msgid "CinemaScope 2.39:1" msgstr "Cinemascopio 2.39:1" -#: ../src/iop/borders.c:951 +#: ../src/iop/borders.c:964 msgid "2:1" msgstr "2:1" -#: ../src/iop/borders.c:952 +#: ../src/iop/borders.c:965 msgid "16:9" msgstr "16:9" -#: ../src/iop/borders.c:953 -#| msgid "95:33" +#: ../src/iop/borders.c:966 msgid "5:3" msgstr "5:3" -#: ../src/iop/borders.c:954 +#: ../src/iop/borders.c:967 msgid "US Legal 8.5x14" msgstr "Oficio (EU) 8.5×14" -#: ../src/iop/borders.c:955 ../src/iop/clipping.c:2131 ../src/iop/crop.c:1128 +#: ../src/iop/borders.c:968 ../src/iop/clipping.c:2184 ../src/iop/crop.c:1112 msgid "golden cut" msgstr "proporción áurea" -#: ../src/iop/borders.c:956 -#| msgid "16:10, 8x5" +#: ../src/iop/borders.c:969 msgid "16:10" msgstr "16:10 (8×5)" -#: ../src/iop/borders.c:957 +#: ../src/iop/borders.c:970 msgid "3:2 (4x6, 10x15cm)" msgstr "3:2 (4×6, 10×15)" -#: ../src/iop/borders.c:959 +#: ../src/iop/borders.c:972 msgid "DIN" msgstr "DIN" -#: ../src/iop/borders.c:960 +#: ../src/iop/borders.c:973 msgid "7:5" msgstr "7:5" -#: ../src/iop/borders.c:961 +#: ../src/iop/borders.c:974 msgid "4:3" msgstr "4:3" -#: ../src/iop/borders.c:962 +#: ../src/iop/borders.c:975 msgid "US Letter 8.5x11" msgstr "Carta (US) 8.5×11" -#: ../src/iop/borders.c:963 +#: ../src/iop/borders.c:976 msgid "14:11" msgstr "14:11" -#: ../src/iop/borders.c:964 +#: ../src/iop/borders.c:977 msgid "5:4 (8x10)" msgstr "5:4 (8×10)" -#: ../src/iop/borders.c:965 ../src/iop/clipping.c:2121 ../src/iop/crop.c:1118 -#: ../src/libs/filtering.c:301 ../src/libs/filters/ratio.c:126 -#: ../src/libs/histogram.c:141 +#: ../src/iop/borders.c:978 ../src/iop/clipping.c:2174 ../src/iop/crop.c:1102 +#: ../src/libs/filtering.c:307 ../src/libs/filters/ratio.c:126 +#: ../src/libs/histogram.c:118 msgid "square" msgstr "cuadrado" -#: ../src/iop/borders.c:966 +#: ../src/iop/borders.c:979 msgid "constant border" msgstr "borde constante" -#: ../src/iop/borders.c:967 ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:980 ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "custom..." msgstr "personalizado..." -#: ../src/iop/borders.c:972 -msgid "set the custom aspect ratio (right click to enter number or w:h)" +#: ../src/iop/borders.c:984 +msgid "" +"set the custom aspect ratio\n" +"(right click to enter number or w:h)" msgstr "" -"Ingresar manualmente la proporción (a:l o con un número) pulsando el botón " -"secundario." +"Ingresar manualmente la proporción\n" +"pulsando el botón secundario (número o formato a:l)" -#: ../src/iop/borders.c:975 +#: ../src/iop/borders.c:989 msgid "aspect ratio orientation of the image with border" msgstr "orientación de la relación de aspecto de la imagen con bordes" -#: ../src/iop/borders.c:977 +#: ../src/iop/borders.c:991 msgid "horizontal position" msgstr "posición horizontal" -#: ../src/iop/borders.c:978 +#: ../src/iop/borders.c:992 msgid "" -"select the horizontal position ratio relative to top or right click and type " -"your own (y:h)" +"select the horizontal position ratio relative to top\n" +"(right click on slider below to type your own x:w)" msgstr "" "Elegir la proporción para la posición horizontal con respecto al borde " -"superior (y:l) o ingresarla manualmente con clic secundario." +"superior\n" +"o ingresarla manualmente con clic secundario (x:a) ." -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "center" msgstr "centro" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "1/3" msgstr "1/3" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "3/8" msgstr "3/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "5/8" msgstr "5/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "2/3" msgstr "2/3" -#: ../src/iop/borders.c:986 +#: ../src/iop/borders.c:1000 msgid "custom horizontal position" msgstr "Ajuste manual de la posición horizontal" -#: ../src/iop/borders.c:988 +#: ../src/iop/borders.c:1002 msgid "vertical position" msgstr "posición vertical" -#: ../src/iop/borders.c:989 +#: ../src/iop/borders.c:1003 msgid "" -"select the vertical position ratio relative to left or right click and type " -"your own (x:w)" +"select the vertical position ratio relative to left\n" +"(right click on slider below to type your own y:h)" msgstr "" "Elegir la proporción para la posición vertical con respecto al borde " -"izquierdo (x:l) o ingresarla manualmente con clic secundario." +"izquierdo\n" +"o ingresarla manualmente con clic secundario (y:l) ." -#: ../src/iop/borders.c:997 +#: ../src/iop/borders.c:1011 msgid "custom vertical position" msgstr "Ajuste manual de la posición vertical" -#: ../src/iop/borders.c:1002 +#: ../src/iop/borders.c:1017 msgid "size of the frame line in percent of min border width" msgstr "tamaño porcentual del borde" -#: ../src/iop/borders.c:1007 +#: ../src/iop/borders.c:1023 msgid "offset of the frame line beginning on picture side" msgstr "desplazamiento de la línea de marco en el lateral de la foto" -#: ../src/iop/borders.c:1014 ../src/iop/borders.c:1023 +#: ../src/iop/borders.c:1033 ../src/iop/borders.c:1044 msgid "border color" msgstr "color del borde" -#: ../src/iop/borders.c:1018 +#: ../src/iop/borders.c:1037 msgid "select border color" msgstr "seleccionar color del borde" -#: ../src/iop/borders.c:1022 +#: ../src/iop/borders.c:1043 msgid "pick border color from image" msgstr "seleccionar color del borde de la imagen" -#: ../src/iop/borders.c:1023 ../src/iop/borders.c:1036 -#: ../src/iop/colorzones.c:2415 ../src/iop/colorzones.c:2425 -#: ../src/iop/negadoctor.c:848 ../src/iop/negadoctor.c:915 -#: ../src/iop/negadoctor.c:953 ../src/iop/rgbcurve.c:1369 -#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1026 -#: ../src/iop/rgblevels.c:1032 ../src/iop/rgblevels.c:1038 +#: ../src/iop/borders.c:1044 ../src/iop/borders.c:1061 +#: ../src/iop/colorzones.c:2662 ../src/iop/colorzones.c:2677 +#: ../src/iop/negadoctor.c:867 ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:972 ../src/iop/rgbcurve.c:1369 +#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1075 +#: ../src/iop/rgblevels.c:1083 ../src/iop/rgblevels.c:1091 msgid "pickers" msgstr "cuentagotas" -#: ../src/iop/borders.c:1027 ../src/iop/borders.c:1036 +#: ../src/iop/borders.c:1049 ../src/iop/borders.c:1061 msgid "frame line color" msgstr "color del marco" -#: ../src/iop/borders.c:1031 +#: ../src/iop/borders.c:1054 msgid "select frame line color" msgstr "seleccionar color del marco" -#: ../src/iop/borders.c:1035 +#: ../src/iop/borders.c:1060 msgid "pick frame line color from image" msgstr "seleccionar color del marco de la imagen" #. make sure you put all your translatable strings into _() ! -#: ../src/iop/cacorrect.c:72 +#: ../src/iop/cacorrect.c:78 msgid "raw chromatic aberrations" msgstr "aberración cromática (raw)" -#: ../src/iop/cacorrect.c:77 +#: ../src/iop/cacorrect.c:83 msgid "correct chromatic aberrations for Bayer sensors" msgstr "Corrección de aberración cromática para sensores Bayer" -#: ../src/iop/cacorrect.c:79 ../src/iop/cacorrect.c:81 +#: ../src/iop/cacorrect.c:85 ../src/iop/cacorrect.c:87 #: ../src/iop/cacorrectrgb.c:171 ../src/iop/cacorrectrgb.c:173 #: ../src/iop/demosaic.c:294 ../src/iop/highlights.c:180 -#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:74 -#: ../src/iop/hotpixels.c:76 ../src/iop/rawdenoise.c:131 -#: ../src/iop/rawdenoise.c:133 ../src/iop/rawprepare.c:159 -#: ../src/iop/rawprepare.c:161 ../src/iop/temperature.c:213 -#: ../src/iop/temperature.c:215 +#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:76 +#: ../src/iop/hotpixels.c:78 ../src/iop/rawdenoise.c:145 +#: ../src/iop/rawdenoise.c:147 ../src/iop/rawprepare.c:175 +#: ../src/iop/rawprepare.c:177 ../src/iop/temperature.c:221 +#: ../src/iop/temperature.c:223 msgid "linear, raw, scene-referred" msgstr "Lineal, negativo digital, basado en la escena" -#: ../src/iop/cacorrect.c:80 ../src/iop/cacorrectrgb.c:172 -#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:121 -#: ../src/iop/rawdenoise.c:132 ../src/iop/rawprepare.c:160 -#: ../src/iop/temperature.c:214 +#: ../src/iop/cacorrect.c:86 ../src/iop/cacorrectrgb.c:172 +#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:138 +#: ../src/iop/rawdenoise.c:146 ../src/iop/rawprepare.c:176 +#: ../src/iop/temperature.c:222 msgid "linear, raw" msgstr "Lineal, negativo digital" -#: ../src/iop/cacorrect.c:1405 +#: ../src/iop/cacorrect.c:1424 msgid "iteration runs, default is twice" msgstr "" -"Cantidad de iteraciones que se ejecutan. El valor por defecto es \"dos veces" -"\"." +"Cantidad de iteraciones que se ejecutan. El valor por defecto es \"dos " +"veces\"." -#: ../src/iop/cacorrect.c:1408 +#: ../src/iop/cacorrect.c:1427 msgid "activate colorshift correction for blue & red channels" msgstr "" "Activar la corrección de la desviación de color para los canales azul y rojo" -#: ../src/iop/cacorrect.c:1415 +#: ../src/iop/cacorrect.c:1434 msgid "" "automatic chromatic aberration correction\n" -"only for Bayer raw files" +"only for Bayer raw files with 3 color channels" msgstr "" "Corrección automática de aberración cromática.\n" -"Funciona sólo con imágenes en bruto tipo Bayer." +"Funciona sólo con imágenes en bruto tipo Bayer con 3 canales de colores." #: ../src/iop/cacorrectrgb.c:164 ../src/iop/defringe.c:76 msgid "chromatic aberrations" @@ -13361,7 +13890,7 @@ msgid "correct chromatic aberrations" msgstr "Corrige las aberraciones cromáticas" -#: ../src/iop/cacorrectrgb.c:743 +#: ../src/iop/cacorrectrgb.c:745 msgid "" "channel used as a reference to\n" "correct the other channels.\n" @@ -13377,11 +13906,11 @@ "intente cambiar el canal guía si\n" "muestra anomalías." -#: ../src/iop/cacorrectrgb.c:750 +#: ../src/iop/cacorrectrgb.c:752 msgid "increase for stronger correction" msgstr "Incrementar para una corrección más intensa" -#: ../src/iop/cacorrectrgb.c:752 +#: ../src/iop/cacorrectrgb.c:754 msgid "" "balance between smoothing colors\n" "and preserving them.\n" @@ -13393,12 +13922,12 @@ "Los valores altos pueden llevar a un exceso de color\n" "y a la aparición de halos." -#: ../src/iop/cacorrectrgb.c:757 +#: ../src/iop/cacorrectrgb.c:759 msgctxt "section" msgid "advanced parameters" msgstr "configuración avanzada" -#: ../src/iop/cacorrectrgb.c:759 +#: ../src/iop/cacorrectrgb.c:761 msgid "" "correction mode to use.\n" "can help with multiple\n" @@ -13416,7 +13945,7 @@ "eficiente para corregir\n" "la aberración cromática azul." -#: ../src/iop/cacorrectrgb.c:767 +#: ../src/iop/cacorrectrgb.c:769 msgid "" "runs an iterative approach\n" "with several radii.\n" @@ -13453,35 +13982,35 @@ msgid "special, RGB, scene-referred" msgstr "Especial, RGB, basado en la escena" -#: ../src/iop/censorize.c:412 +#: ../src/iop/censorize.c:404 msgid "radius_1" msgstr "radio_1" -#: ../src/iop/censorize.c:414 +#: ../src/iop/censorize.c:406 msgid "pixelate" msgstr "pixelado" -#: ../src/iop/censorize.c:416 +#: ../src/iop/censorize.c:408 msgid "radius_2" msgstr "radio_2" -#: ../src/iop/censorize.c:418 +#: ../src/iop/censorize.c:410 msgid "noise" msgstr "ruido" -#: ../src/iop/censorize.c:420 +#: ../src/iop/censorize.c:412 msgid "radius of gaussian blur before pixellation" msgstr "Radio del desenfoque gaussiano antes de pixelar" -#: ../src/iop/censorize.c:421 +#: ../src/iop/censorize.c:413 msgid "radius of gaussian blur after pixellation" msgstr "Radio del desenfoque gaussiano después de pixelar" -#: ../src/iop/censorize.c:422 +#: ../src/iop/censorize.c:414 msgid "radius of the intermediate pixellation" msgstr "Radio del pixelado intermedio" -#: ../src/iop/censorize.c:423 +#: ../src/iop/censorize.c:415 msgid "amount of noise to add at the end" msgstr "Cantidad de ruido que se añade al final" @@ -13496,7 +14025,7 @@ "Este módulo ha quedado sin soporte. Se recomienda sustituirlo por el módulo " "calibración de color." -#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:229 +#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:230 msgid "" "perform color space corrections\n" "such as white balance, channels mixing\n" @@ -13506,169 +14035,169 @@ "el balance de blancos, la mezcla de canales\n" "y la conversión emulando la película monocromática" -#: ../src/iop/channelmixer.c:614 +#: ../src/iop/channelmixer.c:633 msgid "destination" msgstr "destino" -#: ../src/iop/channelmixer.c:621 +#: ../src/iop/channelmixer.c:640 msgctxt "channelmixer" msgid "gray" msgstr "gris" -#: ../src/iop/channelmixer.c:627 +#: ../src/iop/channelmixer.c:646 msgid "amount of red channel in the output channel" msgstr "Cantidad de rojo en el canal de salida" -#: ../src/iop/channelmixer.c:633 +#: ../src/iop/channelmixer.c:652 msgid "amount of green channel in the output channel" msgstr "Cantidad de verde en el canal de salida" -#: ../src/iop/channelmixer.c:639 +#: ../src/iop/channelmixer.c:658 msgid "amount of blue channel in the output channel" msgstr "Cantidad de azul en el canal de salida" -#: ../src/iop/channelmixer.c:655 ../src/iop/channelmixerrgb.c:524 +#: ../src/iop/channelmixer.c:674 ../src/iop/channelmixerrgb.c:588 msgid "swap R and B" msgstr "intercambiar R y B" -#: ../src/iop/channelmixer.c:661 ../src/iop/channelmixerrgb.c:498 +#: ../src/iop/channelmixer.c:680 ../src/iop/channelmixerrgb.c:562 msgid "swap G and B" msgstr "intercambiar G y B" -#: ../src/iop/channelmixer.c:667 +#: ../src/iop/channelmixer.c:686 msgid "color contrast boost" msgstr "incremento de contraste de color" -#: ../src/iop/channelmixer.c:673 +#: ../src/iop/channelmixer.c:692 msgid "color details boost" msgstr "incremento de detalles de color" -#: ../src/iop/channelmixer.c:679 +#: ../src/iop/channelmixer.c:698 msgid "color artifacts boost" msgstr "incremento de irregularidades de color" -#: ../src/iop/channelmixer.c:685 +#: ../src/iop/channelmixer.c:704 msgid "B/W luminance-based" msgstr "B/N basado en luminosidad" -#: ../src/iop/channelmixer.c:691 +#: ../src/iop/channelmixer.c:710 msgid "B/W artifacts boost" msgstr "B/N destacar objetos" -#: ../src/iop/channelmixer.c:697 +#: ../src/iop/channelmixer.c:716 msgid "B/W smooth skin" msgstr "B/N piel suave" -#: ../src/iop/channelmixer.c:703 +#: ../src/iop/channelmixer.c:722 msgid "B/W blue artifacts reduce" msgstr "B/N reduce objetos azules" -#: ../src/iop/channelmixer.c:710 +#: ../src/iop/channelmixer.c:729 msgid "B/W Ilford Delta 100-400" msgstr "B/N Ilford Delta 100-400" -#: ../src/iop/channelmixer.c:717 +#: ../src/iop/channelmixer.c:736 msgid "B/W Ilford Delta 3200" msgstr "B/N Ilford Delta 3200" -#: ../src/iop/channelmixer.c:724 +#: ../src/iop/channelmixer.c:743 msgid "B/W Ilford FP4" msgstr "B/N Ilford FP4" -#: ../src/iop/channelmixer.c:731 +#: ../src/iop/channelmixer.c:750 msgid "B/W Ilford HP5" msgstr "B/N Ilford HP5" -#: ../src/iop/channelmixer.c:738 +#: ../src/iop/channelmixer.c:757 msgid "B/W Ilford SFX" msgstr "B/N Ilford SFX" -#: ../src/iop/channelmixer.c:745 +#: ../src/iop/channelmixer.c:764 msgid "B/W Kodak T-Max 100" msgstr "B/N Kodak T-Max 100" -#: ../src/iop/channelmixer.c:752 +#: ../src/iop/channelmixer.c:771 msgid "B/W Kodak T-max 400" msgstr "B/N Kodak T-max 400" -#: ../src/iop/channelmixer.c:759 +#: ../src/iop/channelmixer.c:778 msgid "B/W Kodak Tri-X 400" msgstr "B/N Kodak Tri-X 400" -#: ../src/iop/channelmixerrgb.c:219 +#: ../src/iop/channelmixerrgb.c:220 msgid "color calibration" msgstr "calibración de color" -#: ../src/iop/channelmixerrgb.c:224 +#: ../src/iop/channelmixerrgb.c:225 msgid "channel mixer|white balance|monochrome" msgstr "mezclador de canal|balance de blancos|monocromo" -#: ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:235 msgid "linear, RGB or XYZ" msgstr "Lineal, RGB o XYZ" -#: ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:460 msgid "B&W: luminance-based" msgstr "B/N: basado en luminosidad" -#: ../src/iop/channelmixerrgb.c:431 +#: ../src/iop/channelmixerrgb.c:495 msgid "B&W: ILFORD HP5+" msgstr "B/N: ILFORD HP5+" -#: ../src/iop/channelmixerrgb.c:440 +#: ../src/iop/channelmixerrgb.c:504 msgid "B&W: ILFORD DELTA 100" msgstr "B/N: ILFORD DELTA 100" -#: ../src/iop/channelmixerrgb.c:450 +#: ../src/iop/channelmixerrgb.c:514 msgid "B&W: ILFORD DELTA 400 - 3200" msgstr "B/N: ILFORD DELTA 400-3200" -#: ../src/iop/channelmixerrgb.c:459 +#: ../src/iop/channelmixerrgb.c:523 msgid "B&W: ILFORD FP4+" msgstr "B/N: ILFORD FP4+" -#: ../src/iop/channelmixerrgb.c:468 +#: ../src/iop/channelmixerrgb.c:532 msgid "B&W: Fuji Acros 100" msgstr "B/N: Fuji Acros 100" -#: ../src/iop/channelmixerrgb.c:485 +#: ../src/iop/channelmixerrgb.c:549 msgid "basic channel mixer" msgstr "mezclador básico de canal" -#: ../src/iop/channelmixerrgb.c:511 +#: ../src/iop/channelmixerrgb.c:575 msgid "swap G and R" msgstr "intercambiar G y R" -#: ../src/iop/channelmixerrgb.c:1869 +#: ../src/iop/channelmixerrgb.c:1926 msgid "(daylight)" msgstr "(Luz de Día)" -#: ../src/iop/channelmixerrgb.c:1871 +#: ../src/iop/channelmixerrgb.c:1928 msgid "(black body)" msgstr "(Cuerpo Negro)" # ?anulado -#: ../src/iop/channelmixerrgb.c:1873 +#: ../src/iop/channelmixerrgb.c:1930 msgid "(invalid)" msgstr "(inválido)" -#: ../src/iop/channelmixerrgb.c:1877 ../src/iop/channelmixerrgb.c:1935 +#: ../src/iop/channelmixerrgb.c:1934 ../src/iop/channelmixerrgb.c:1992 msgid "very good" msgstr "Muy buena" -#: ../src/iop/channelmixerrgb.c:1879 ../src/iop/channelmixerrgb.c:1937 +#: ../src/iop/channelmixerrgb.c:1936 ../src/iop/channelmixerrgb.c:1994 msgid "good" msgstr "Buena" -#: ../src/iop/channelmixerrgb.c:1881 ../src/iop/channelmixerrgb.c:1939 +#: ../src/iop/channelmixerrgb.c:1938 ../src/iop/channelmixerrgb.c:1996 msgid "passable" msgstr "Admisible" -#: ../src/iop/channelmixerrgb.c:1883 ../src/iop/channelmixerrgb.c:1941 +#: ../src/iop/channelmixerrgb.c:1940 ../src/iop/channelmixerrgb.c:1998 msgid "bad" msgstr "Deficiente" -#: ../src/iop/channelmixerrgb.c:1890 +#: ../src/iop/channelmixerrgb.c:1947 #, c-format msgid "" "\n" @@ -13705,7 +14234,7 @@ "compensación de la exposición: \t%+.2f EV\n" "compensación del negro: \t%+.4f" -#: ../src/iop/channelmixerrgb.c:1946 +#: ../src/iop/channelmixerrgb.c:2003 #, c-format msgid "" "\n" @@ -13724,27 +14253,44 @@ "compensación de la exposición: \t%+.2f EV\n" "compensación del negro: \t%+.4f" -#: ../src/iop/channelmixerrgb.c:1978 +#: ../src/iop/channelmixerrgb.c:2054 msgid "double CAT applied" msgstr "ACT doblemente aplicado" -#: ../src/iop/channelmixerrgb.c:1979 +#: ../src/iop/channelmixerrgb.c:2055 msgid "" "you have 2 instances or more of color calibration,\n" -"all performing chromatic adaptation.\n" -"this can lead to inconsistencies, unless you\n" +"all providing chromatic adaptation.\n" +"this can lead to inconsistencies unless you\n" "use them with masks or know what you are doing." msgstr "" "Existe al menos un duplicado de calibración de color\n" -"realizando la adaptación cromática.\n" -"Esto que puede conducir a inconsistencias, a menos que\n" +"realizando la adaptación cromática,\n" +"lo que puede conducir a inconsistencias, a menos que\n" "se usen máscaras o sea de manera intencionada." -#: ../src/iop/channelmixerrgb.c:1991 +#: ../src/iop/channelmixerrgb.c:2071 +msgid "white balance applied twice" +msgstr "Balance de blancos aplicado dos veces" + +#: ../src/iop/channelmixerrgb.c:2072 +msgid "" +"the color calibration module is enabled and already provides\n" +"chromatic adaptation.\n" +"set the white balance here to camera reference (D65)\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"El módulo de calibración de color está activado\n" +"y realizando la adaptación cromática.\n" +"Ajuste el balance de blancos al punto de referencia de la cámara (D65) en " +"este módulo\n" +"o desactive la adaptación cromática en «calibración de color»." + +#: ../src/iop/channelmixerrgb.c:2080 msgid "white balance module error" msgstr "Error del módulo de balance de blancos" -#: ../src/iop/channelmixerrgb.c:1992 +#: ../src/iop/channelmixerrgb.c:2081 msgid "" "the white balance module is not using the camera\n" "reference illuminant, which will cause issues here\n" @@ -13757,20 +14303,49 @@ "iluminante\n" "o desactive la adaptación cromática en este módulo." -#: ../src/iop/channelmixerrgb.c:2083 +#: ../src/iop/channelmixerrgb.c:2095 ../src/iop/channelmixerrgb.c:2104 +msgid "white balance missing" +msgstr "El balance de blancos está ausente" + +#: ../src/iop/channelmixerrgb.c:2096 +msgid "" +"this module is not providing a valid reference illuminant\n" +"causing chromatic adaptation issues in color calibration.\n" +"enable this module and either set it to reference\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"Este módulo no está proporcionando un iluminante válido de referencia\n" +"causando conflictos en la adaptación cromática con la calibración de color.\n" +"Active este módulo y configure la referencia\n" +"o desactive la adaptación cromática en el módulo «calibración de color»." + +#: ../src/iop/channelmixerrgb.c:2105 +msgid "" +"the white balance module is not providing a valid reference\n" +"illuminant causing issues with chromatic adaptation here.\n" +"enable white balance and either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" +"El módulo de balance de blancos no está proporcionando\n" +"un iluminante válido de referencia causando conflictos con\n" +"la adaptación cromática. Active el balance de blancos y configure la " +"referencia\n" +"o desactive la adaptación cromática en este módulo." + +#: ../src/iop/channelmixerrgb.c:2196 msgid "auto-detection of white balance completed" msgstr "Detección del balance de blancos completa" -#: ../src/iop/channelmixerrgb.c:2236 +#: ../src/iop/channelmixerrgb.c:2346 msgid "channelmixerrgb works only on RGB input" msgstr "El mezclador de canal rgb sólo funciona con una entrada en RGB" -#: ../src/iop/channelmixerrgb.c:3621 +#: ../src/iop/channelmixerrgb.c:3692 #, c-format msgid "CCT: %.0f K (daylight)" msgstr "TCC: %.0f K (Luz de Día)" -#: ../src/iop/channelmixerrgb.c:3624 +#: ../src/iop/channelmixerrgb.c:3695 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a daylight spectrum,\n" @@ -13781,12 +14356,12 @@ "luz diurna.\n" "Por ende, su temperatura es fiable y correspondiente a un iluminante tipo D." -#: ../src/iop/channelmixerrgb.c:3630 +#: ../src/iop/channelmixerrgb.c:3701 #, c-format msgid "CCT: %.0f K (black body)" msgstr "TCC: %.0f K (Cuerpo Negro)" -#: ../src/iop/channelmixerrgb.c:3633 +#: ../src/iop/channelmixerrgb.c:3704 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a black body spectrum,\n" @@ -13798,12 +14373,12 @@ "Por ende, su temperatura es fiable y correspondiente a un iluminante " "Planckiano." -#: ../src/iop/channelmixerrgb.c:3639 +#: ../src/iop/channelmixerrgb.c:3710 #, c-format msgid "CCT: %.0f K (invalid)" msgstr "TCC: %.0f K (Correlación imprecisa)" -#: ../src/iop/channelmixerrgb.c:3642 +#: ../src/iop/channelmixerrgb.c:3713 msgid "" "approximated correlated color temperature.\n" "this illuminant cannot be accurately modeled by a daylight or black body " @@ -13817,12 +14392,12 @@ "Al no tener su temperatura una correspondencia fiable, se requiere emplear " "un iluminante personalizado." -#: ../src/iop/channelmixerrgb.c:3651 +#: ../src/iop/channelmixerrgb.c:3722 #, c-format msgid "CCT: undefined" msgstr "TCC: No definida" -#: ../src/iop/channelmixerrgb.c:3654 +#: ../src/iop/channelmixerrgb.c:3725 msgid "" "the approximated correlated color temperature\n" "cannot be computed at all so you need to use a custom illuminant." @@ -13830,16 +14405,16 @@ "La temperatura de color correlacionada aproximada\n" "no se puede calcular. Es necesario utilizar un iluminante personalizado." -#: ../src/iop/channelmixerrgb.c:3967 +#: ../src/iop/channelmixerrgb.c:4038 msgid "white balance successfully extracted from raw image" msgstr "El balance de blancos fue extraído con éxito de la imagen en bruto." #. We need to recompute only the full preview -#: ../src/iop/channelmixerrgb.c:3973 +#: ../src/iop/channelmixerrgb.c:4044 msgid "auto-detection of white balance started…" msgstr "Se ha iniciado la autodetección del balance de blancos..." -#: ../src/iop/channelmixerrgb.c:4078 +#: ../src/iop/channelmixerrgb.c:4149 msgid "" "color calibration: the sum of the gray channel parameters is zero, " "normalization will be disabled." @@ -13848,7 +14423,7 @@ "desactivará la normalización." #. Write report in GUI -#: ../src/iop/channelmixerrgb.c:4126 +#: ../src/iop/channelmixerrgb.c:4194 #, c-format msgid "" "L: \t%.1f %%\n" @@ -13859,27 +14434,27 @@ "h: \t%.1f °\n" "c: \t%.1f" -#: ../src/iop/channelmixerrgb.c:4394 ../src/iop/clipping.c:2087 -#: ../src/iop/colorbalancergb.c:1873 ../src/iop/filmicrgb.c:4419 -#: ../src/iop/negadoctor.c:829 ../src/iop/toneequal.c:3319 -#: ../src/libs/image.c:460 ../src/views/lighttable.c:1258 +#: ../src/iop/channelmixerrgb.c:4462 ../src/iop/clipping.c:2140 +#: ../src/iop/colorbalancergb.c:1944 ../src/iop/filmicrgb.c:4483 +#: ../src/iop/negadoctor.c:848 ../src/iop/toneequal.c:3372 +#: ../src/libs/image.c:490 ../src/views/lighttable.c:1258 msgid "page" msgstr "página" #. Page CAT -#: ../src/iop/channelmixerrgb.c:4397 +#: ../src/iop/channelmixerrgb.c:4465 msgid "CAT" msgstr "TAC" -#: ../src/iop/channelmixerrgb.c:4398 +#: ../src/iop/channelmixerrgb.c:4466 msgid "chromatic adaptation transform" msgstr "Transformación de Adaptación Cromática" -#: ../src/iop/channelmixerrgb.c:4400 +#: ../src/iop/channelmixerrgb.c:4468 msgid "adaptation" msgstr "adaptación" -#: ../src/iop/channelmixerrgb.c:4403 +#: ../src/iop/channelmixerrgb.c:4471 msgid "" "choose the method to adapt the illuminant\n" "and the colorspace in which the module works: \n" @@ -13903,7 +14478,7 @@ "• Ninguno: se inhabilita la adaptación y se opta por el procesado RGB por " "defecto." -#: ../src/iop/channelmixerrgb.c:4423 +#: ../src/iop/channelmixerrgb.c:4491 msgid "" "this is the color of the scene illuminant before chromatic adaptation\n" "this color will be turned into pure white by the adaptation." @@ -13911,27 +14486,27 @@ "Este es el color del iluminante antes de la adaptación cromática.\n" "Por la adaptación, el color se convertirá en blanco puro." -#: ../src/iop/channelmixerrgb.c:4431 +#: ../src/iop/channelmixerrgb.c:4499 msgid "picker" msgstr "cuentagotas" -#: ../src/iop/channelmixerrgb.c:4433 ../src/iop/temperature.c:2047 +#: ../src/iop/channelmixerrgb.c:4501 ../src/iop/temperature.c:2015 msgid "set white balance to detected from area" msgstr "Establece el balance de blancos correspondiente al área seleccionada" -#: ../src/iop/channelmixerrgb.c:4437 ../src/iop/negadoctor.c:953 +#: ../src/iop/channelmixerrgb.c:4505 ../src/iop/negadoctor.c:972 msgid "illuminant" msgstr "iluminante" -#: ../src/iop/channelmixerrgb.c:4443 ../src/iop/temperature.c:2107 +#: ../src/iop/channelmixerrgb.c:4511 ../src/iop/temperature.c:2072 msgid "temperature" msgstr "temperatura" -#: ../src/iop/channelmixerrgb.c:4474 -msgid "spot color mapping" -msgstr "mapeo de colores planos" +#: ../src/iop/channelmixerrgb.c:4542 +msgid "area color mapping" +msgstr "mapeo de color por área" -#: ../src/iop/channelmixerrgb.c:4480 +#: ../src/iop/channelmixerrgb.c:4548 msgid "" "define a target chromaticity (hue and chroma) for a particular region of the " "image (the control sample), which you then match against the same target " @@ -13945,17 +14520,17 @@ "puede ser una parte esencial del motivo principal o bien, de una superficie " "fija con iluminación constante a lo largo de la serie de imágenes." -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/channelmixerrgb.c:4502 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/channelmixerrgb.c:4573 +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/channelmixerrgb.c:4570 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/channelmixerrgb.c:4641 msgid "mapping" msgstr "mapeo" -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/exposure.c:1188 -msgid "spot mode" -msgstr "modo puntual" +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/exposure.c:1206 +msgid "area mode" +msgstr "modo de área" -#: ../src/iop/channelmixerrgb.c:4488 +#: ../src/iop/channelmixerrgb.c:4556 msgid "" "\"correction\" automatically adjust the illuminant\n" "such that the input color is mapped to the target.\n" @@ -13968,19 +14543,19 @@ "adaptado por el TAC\n" "y que pueda utilizarse para un muestreo de objetivo." -#: ../src/iop/channelmixerrgb.c:4493 ../src/iop/exposure.c:1194 +#: ../src/iop/channelmixerrgb.c:4561 ../src/iop/exposure.c:1212 msgid "correction" msgstr "corrección" -#: ../src/iop/channelmixerrgb.c:4494 ../src/iop/exposure.c:1195 +#: ../src/iop/channelmixerrgb.c:4562 ../src/iop/exposure.c:1213 msgid "measure" msgstr "medición" -#: ../src/iop/channelmixerrgb.c:4500 +#: ../src/iop/channelmixerrgb.c:4568 msgid "take channel mixing into account" msgstr "incluir al mezclador de canal" -#: ../src/iop/channelmixerrgb.c:4507 +#: ../src/iop/channelmixerrgb.c:4575 msgid "" "compute the target by taking the channel mixing into account.\n" "if disabled, only the CAT is considered." @@ -13988,16 +14563,16 @@ "Calcula el destino teniendo en cuenta el mezclador de canales.\n" "Al desactivar, sólo se tendrá en cuenta el TAC." -#: ../src/iop/channelmixerrgb.c:4519 ../src/iop/exposure.c:1202 +#: ../src/iop/channelmixerrgb.c:4587 ../src/iop/exposure.c:1220 msgctxt "section" msgid "input" msgstr "entrada" -#: ../src/iop/channelmixerrgb.c:4526 ../src/iop/exposure.c:1210 +#: ../src/iop/channelmixerrgb.c:4594 ../src/iop/exposure.c:1228 msgid "the input color that should be mapped to the target" msgstr "El color de entrada que debe ajustarse al destino" -#: ../src/iop/channelmixerrgb.c:4532 +#: ../src/iop/channelmixerrgb.c:4600 msgid "" "L: \tN/A\n" "h: \tN/A\n" @@ -14007,118 +14582,117 @@ "h: \tno corresponde\n" "c: \tno corresponde" -#: ../src/iop/channelmixerrgb.c:4535 ../src/iop/exposure.c:1218 +#: ../src/iop/channelmixerrgb.c:4603 ../src/iop/exposure.c:1236 msgid "these LCh coordinates are computed from CIE Lab 1976 coordinates" msgstr "" "Estas coordenadas LCh se calculan a partir de las coordenadas CIE Lab 1976" -#: ../src/iop/channelmixerrgb.c:4543 ../src/iop/exposure.c:1225 +#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/exposure.c:1243 msgctxt "section" msgid "target" msgstr "destino" -#: ../src/iop/channelmixerrgb.c:4550 +#: ../src/iop/channelmixerrgb.c:4618 msgid "the desired target color after mapping" msgstr "El color del destino deseado después del mapeo" -#: ../src/iop/channelmixerrgb.c:4589 +#: ../src/iop/channelmixerrgb.c:4657 msgid "input R" msgstr "R: entrada rojo" -#: ../src/iop/channelmixerrgb.c:4594 +#: ../src/iop/channelmixerrgb.c:4662 msgid "input G" msgstr "G: entrada verde" -#: ../src/iop/channelmixerrgb.c:4599 +#: ../src/iop/channelmixerrgb.c:4667 msgid "input B" msgstr "B: entrada azul" -#: ../src/iop/channelmixerrgb.c:4609 +#: ../src/iop/channelmixerrgb.c:4677 msgid "output R" msgstr "R: salida rojo" -#: ../src/iop/channelmixerrgb.c:4610 +#: ../src/iop/channelmixerrgb.c:4678 msgid "output G" msgstr "G: salida verde" -#: ../src/iop/channelmixerrgb.c:4611 +#: ../src/iop/channelmixerrgb.c:4679 msgid "output B" msgstr "B: salida azul" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "colorfulness" msgstr "coloración" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "output colorfulness" msgstr "coloración de salida" -#: ../src/iop/channelmixerrgb.c:4617 +#: ../src/iop/channelmixerrgb.c:4685 msgid "output brightness" msgstr "brillo de salida" -#: ../src/iop/channelmixerrgb.c:4620 +#: ../src/iop/channelmixerrgb.c:4688 msgid "output gray" msgstr "salida gris" -#: ../src/iop/channelmixerrgb.c:4635 +#: ../src/iop/channelmixerrgb.c:4703 msgid "calibrate with a color checker" msgstr "calibrar con una tarjeta de color" -#: ../src/iop/channelmixerrgb.c:4640 +#: ../src/iop/channelmixerrgb.c:4708 msgid "use a color checker target to autoset CAT and channels" msgstr "" "Utiliza una tarjeta de color para ajustar los canales y la TAC " "automáticamente" -#: ../src/iop/channelmixerrgb.c:4647 ../src/iop/channelmixerrgb.c:4660 -#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/channelmixerrgb.c:4696 -#: ../src/iop/channelmixerrgb.c:4705 ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4715 ../src/iop/channelmixerrgb.c:4728 +#: ../src/iop/channelmixerrgb.c:4746 ../src/iop/channelmixerrgb.c:4764 +#: ../src/iop/channelmixerrgb.c:4773 ../src/iop/channelmixerrgb.c:4781 msgid "calibrate" msgstr "calibrar" -#: ../src/iop/channelmixerrgb.c:4647 +#: ../src/iop/channelmixerrgb.c:4715 msgid "chart" msgstr "tarjeta" -#: ../src/iop/channelmixerrgb.c:4648 +#: ../src/iop/channelmixerrgb.c:4716 msgid "choose the vendor and the type of your chart" msgstr "Seleccione al fabricante y modelo de la tarjeta" -#: ../src/iop/channelmixerrgb.c:4650 +#: ../src/iop/channelmixerrgb.c:4718 msgid "Xrite ColorChecker 24 pre-2014" msgstr "Xrite ColorChecker 24 previo a 2014" -#: ../src/iop/channelmixerrgb.c:4651 +#: ../src/iop/channelmixerrgb.c:4719 msgid "Xrite ColorChecker 24 post-2014" msgstr "Xrite ColorChecker 24 posterior a 2014" -#: ../src/iop/channelmixerrgb.c:4652 +#: ../src/iop/channelmixerrgb.c:4720 msgid "Datacolor SpyderCheckr 24 pre-2018" msgstr "Datacolor SpyderCheckr 24 previo a 2018" -#: ../src/iop/channelmixerrgb.c:4653 +#: ../src/iop/channelmixerrgb.c:4721 msgid "Datacolor SpyderCheckr 24 post-2018" msgstr "Datacolor SpyderCheckr 24 posterior a 2018" -#: ../src/iop/channelmixerrgb.c:4654 +#: ../src/iop/channelmixerrgb.c:4722 msgid "Datacolor SpyderCheckr 48 pre-2018" msgstr "Datacolor SpyderCheckr 48 previo a 2018" -#: ../src/iop/channelmixerrgb.c:4655 +#: ../src/iop/channelmixerrgb.c:4723 msgid "Datacolor SpyderCheckr 48 post-2018" msgstr "Datacolor SpyderCheckr 48 posterior a 2018" -#: ../src/iop/channelmixerrgb.c:4656 -#| msgid "Datacolor SpyderCheckr 24 post-2018" +#: ../src/iop/channelmixerrgb.c:4724 msgid "Datacolor SpyderCheckr Photo" msgstr "Datacolor SpyderCheckr Photo" -#: ../src/iop/channelmixerrgb.c:4660 +#: ../src/iop/channelmixerrgb.c:4728 msgid "optimize for" msgstr "optimizado para" -#: ../src/iop/channelmixerrgb.c:4661 +#: ../src/iop/channelmixerrgb.c:4729 msgid "" "choose the colors that will be optimized with higher priority.\n" "neutral colors gives the lowest average delta E but a high maximum delta E\n" @@ -14136,35 +14710,35 @@ "El resto tienen comportamientos especiales diseñados para proteger ciertas " "tonalidades." -#: ../src/iop/channelmixerrgb.c:4668 +#: ../src/iop/channelmixerrgb.c:4736 msgid "neutral colors" msgstr "colores neutrales" -#: ../src/iop/channelmixerrgb.c:4670 +#: ../src/iop/channelmixerrgb.c:4738 msgid "skin and soil colors" msgstr "colores de piel y de la tierra" -#: ../src/iop/channelmixerrgb.c:4671 +#: ../src/iop/channelmixerrgb.c:4739 msgid "foliage colors" msgstr "colores de follaje" -#: ../src/iop/channelmixerrgb.c:4672 +#: ../src/iop/channelmixerrgb.c:4740 msgid "sky and water colors" msgstr "colores del cielo y del agua" -#: ../src/iop/channelmixerrgb.c:4673 +#: ../src/iop/channelmixerrgb.c:4741 msgid "average delta E" msgstr "∆E promedio" -#: ../src/iop/channelmixerrgb.c:4674 +#: ../src/iop/channelmixerrgb.c:4742 msgid "maximum delta E" msgstr "∆E máximo" -#: ../src/iop/channelmixerrgb.c:4678 +#: ../src/iop/channelmixerrgb.c:4746 msgid "patch scale" msgstr "escala de parches" -#: ../src/iop/channelmixerrgb.c:4681 +#: ../src/iop/channelmixerrgb.c:4749 msgid "" "reduce the radius of the patches to select the more or less central part.\n" "useful when the perspective correction is sloppy or\n" @@ -14174,31 +14748,31 @@ "Conveniente cuando la corrección de la perspectiva es imprecisa o\n" "cuando el marco proyecta una sombra en los bordes del parche." -#: ../src/iop/channelmixerrgb.c:4691 +#: ../src/iop/channelmixerrgb.c:4759 msgid "the delta E is using the CIE 2000 formula" msgstr "Delta E está usando la fórmula CIE 2000 (∆E00)" -#: ../src/iop/channelmixerrgb.c:4696 +#: ../src/iop/channelmixerrgb.c:4764 msgid "accept" msgstr "aceptar" -#: ../src/iop/channelmixerrgb.c:4702 +#: ../src/iop/channelmixerrgb.c:4770 msgid "accept the computed profile and set it in the module" msgstr "Aceptar el perfil calculado y fijarlo en el módulo" -#: ../src/iop/channelmixerrgb.c:4705 +#: ../src/iop/channelmixerrgb.c:4773 msgid "recompute" msgstr "recalcular" -#: ../src/iop/channelmixerrgb.c:4709 +#: ../src/iop/channelmixerrgb.c:4777 msgid "recompute the profile" msgstr "Recalcular el perfil" -#: ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4781 msgid "validate" msgstr "comprobar" -#: ../src/iop/channelmixerrgb.c:4717 +#: ../src/iop/channelmixerrgb.c:4785 msgid "check the output delta E" msgstr "Verificar la salida de ∆E" @@ -14216,19 +14790,19 @@ "Este módulo ha quedado sin soporte. Se recomienda sustituirlo por el nuevo " "módulo de contraste local." -#: ../src/iop/clahe.c:337 ../src/iop/sharpen.c:445 +#: ../src/iop/clahe.c:339 ../src/iop/sharpen.c:440 msgid "amount" msgstr "cantidad" -#: ../src/iop/clahe.c:346 +#: ../src/iop/clahe.c:348 msgid "size of features to preserve" msgstr "Tamaño de características a preservar" -#: ../src/iop/clahe.c:347 ../src/iop/nlmeans.c:464 +#: ../src/iop/clahe.c:349 ../src/iop/nlmeans.c:467 msgid "strength of the effect" msgstr "Fuerza del efecto" -#: ../src/iop/clipping.c:304 +#: ../src/iop/clipping.c:347 msgid "" "this module is deprecated. please use the crop, orientation and/or rotate " "and perspective modules instead." @@ -14236,148 +14810,148 @@ "Este módulo se ha vuelto obsoleto. Se recomienda sustituirlo por alguno de " "los siguientes módulos: «recortar», «orientación» o «rotación y perspectiva»." -#: ../src/iop/clipping.c:309 +#: ../src/iop/clipping.c:352 msgid "crop and rotate" msgstr "recortar y rotar" -#: ../src/iop/clipping.c:314 +#: ../src/iop/clipping.c:357 msgid "reframe|perspective|keystone|distortion" msgstr "reencuadre|perspectiva|trapezoidal|distorsión" -#: ../src/iop/clipping.c:319 +#: ../src/iop/clipping.c:362 msgid "change the framing and correct the perspective" msgstr "Cambia el encuadre y corrige la perspectiva" -#: ../src/iop/clipping.c:1394 ../src/iop/clipping.c:2120 ../src/iop/crop.c:517 -#: ../src/iop/crop.c:1117 +#: ../src/iop/clipping.c:1447 ../src/iop/clipping.c:2173 ../src/iop/crop.c:501 +#: ../src/iop/crop.c:1101 msgid "original image" msgstr "imagen original" -#: ../src/iop/clipping.c:1698 ../src/iop/crop.c:824 +#: ../src/iop/clipping.c:1751 ../src/iop/crop.c:808 msgid "invalid ratio format. it should be \"number:number\"" msgstr "" "Formato de proporción de aspecto no válido. Debería ser \"número:número\"" -#: ../src/iop/clipping.c:1714 ../src/iop/crop.c:840 +#: ../src/iop/clipping.c:1767 ../src/iop/crop.c:824 msgid "invalid ratio format. it should be a positive number" msgstr "" "Formato de proporción de aspecto inválido. Debería ser un número positivo." -#: ../src/iop/clipping.c:1903 ../src/iop/clipping.c:2111 +#: ../src/iop/clipping.c:1956 ../src/iop/clipping.c:2164 msgid "full" msgstr "lleno" -#: ../src/iop/clipping.c:1904 +#: ../src/iop/clipping.c:1957 msgid "old system" msgstr "sistema antiguo" -#: ../src/iop/clipping.c:1905 +#: ../src/iop/clipping.c:1958 msgid "correction applied" msgstr "corrección hecha" -#: ../src/iop/clipping.c:2089 +#: ../src/iop/clipping.c:2142 msgid "main" msgstr "principal" -#: ../src/iop/clipping.c:2098 +#: ../src/iop/clipping.c:2151 msgid "mirror image horizontally and/or vertically" msgstr "Espejar la imagen horizontal o verticalmente" -#: ../src/iop/clipping.c:2101 +#: ../src/iop/clipping.c:2154 msgid "angle" msgstr "ángulo" -#: ../src/iop/clipping.c:2104 +#: ../src/iop/clipping.c:2157 msgid "right-click and drag a line on the image to drag a straight line" msgstr "" "Forme un ángulo al trazar una línea con clic secundario + arrastre sobre la " "imagen" -#: ../src/iop/clipping.c:2107 +#: ../src/iop/clipping.c:2160 msgid "keystone" msgstr "perspectiva" -#: ../src/iop/clipping.c:2112 +#: ../src/iop/clipping.c:2165 msgid "set perspective correction for your image" msgstr "Seleccionar corrección de perspectiva para su imagen" -#: ../src/iop/clipping.c:2119 ../src/iop/crop.c:1116 +#: ../src/iop/clipping.c:2172 ../src/iop/crop.c:1100 msgid "freehand" msgstr "libre" -#: ../src/iop/clipping.c:2122 ../src/iop/crop.c:1119 +#: ../src/iop/clipping.c:2175 ../src/iop/crop.c:1103 msgid "10:8 in print" msgstr "10:8 en impresión" -#: ../src/iop/clipping.c:2123 ../src/iop/crop.c:1120 +#: ../src/iop/clipping.c:2176 ../src/iop/crop.c:1104 msgid "5:4, 4x5, 8x10" msgstr "5:4, 4×5, 8×10" -#: ../src/iop/clipping.c:2124 ../src/iop/crop.c:1121 +#: ../src/iop/clipping.c:2177 ../src/iop/crop.c:1105 msgid "11x14" msgstr "11x14" -#: ../src/iop/clipping.c:2125 ../src/iop/crop.c:1122 +#: ../src/iop/clipping.c:2178 ../src/iop/crop.c:1106 msgid "8.5x11, letter" msgstr "8.5×11, carta" -#: ../src/iop/clipping.c:2126 ../src/iop/crop.c:1123 +#: ../src/iop/clipping.c:2179 ../src/iop/crop.c:1107 msgid "4:3, VGA, TV" msgstr "4:3, VGA, TV" -#: ../src/iop/clipping.c:2127 ../src/iop/crop.c:1124 +#: ../src/iop/clipping.c:2180 ../src/iop/crop.c:1108 msgid "5x7" msgstr "5×7" -#: ../src/iop/clipping.c:2128 ../src/iop/crop.c:1125 +#: ../src/iop/clipping.c:2181 ../src/iop/crop.c:1109 msgid "ISO 216, DIN 476, A4" msgstr "ISO 216, DIN 476, A4" -#: ../src/iop/clipping.c:2129 ../src/iop/crop.c:1126 +#: ../src/iop/clipping.c:2182 ../src/iop/crop.c:1110 msgid "3:2, 4x6, 35mm" msgstr "3:2, 4×6, 35mm" -#: ../src/iop/clipping.c:2130 ../src/iop/crop.c:1127 +#: ../src/iop/clipping.c:2183 ../src/iop/crop.c:1111 msgid "16:10, 8x5" msgstr "16:10, 8×5" -#: ../src/iop/clipping.c:2132 ../src/iop/crop.c:1129 +#: ../src/iop/clipping.c:2185 ../src/iop/crop.c:1113 msgid "16:9, HDTV" msgstr "16:9, HDTV" -#: ../src/iop/clipping.c:2133 ../src/iop/crop.c:1130 +#: ../src/iop/clipping.c:2186 ../src/iop/crop.c:1114 msgid "widescreen" msgstr "pantalla ancha" -#: ../src/iop/clipping.c:2134 ../src/iop/crop.c:1131 +#: ../src/iop/clipping.c:2187 ../src/iop/crop.c:1115 msgid "2:1, univisium" msgstr "2:1, univisium" -#: ../src/iop/clipping.c:2135 ../src/iop/crop.c:1132 +#: ../src/iop/clipping.c:2188 ../src/iop/crop.c:1116 msgid "cinemascope" msgstr "cinemascopio" -#: ../src/iop/clipping.c:2136 ../src/iop/crop.c:1133 +#: ../src/iop/clipping.c:2189 ../src/iop/crop.c:1117 msgid "21:9" msgstr "21:9" -#: ../src/iop/clipping.c:2137 ../src/iop/crop.c:1134 +#: ../src/iop/clipping.c:2190 ../src/iop/crop.c:1118 msgid "anamorphic" msgstr "anamórfico" -#: ../src/iop/clipping.c:2138 ../src/iop/crop.c:1135 +#: ../src/iop/clipping.c:2191 ../src/iop/crop.c:1119 msgid "3:1, panorama" msgstr "3:1, panorámica" -#: ../src/iop/clipping.c:2170 ../src/iop/clipping.c:2182 ../src/iop/crop.c:1171 -#: ../src/iop/crop.c:1187 +#: ../src/iop/clipping.c:2223 ../src/iop/clipping.c:2235 ../src/iop/crop.c:1155 +#: ../src/iop/crop.c:1171 #, c-format msgid "invalid ratio format for `%s'. it should be \"number:number\"" msgstr "" "Formato de proporción de aspecto no válido para «%s». Debería ser \"número:" "número\"" -#: ../src/iop/clipping.c:2229 ../src/iop/crop.c:1238 +#: ../src/iop/clipping.c:2282 ../src/iop/crop.c:1222 msgid "" "set the aspect ratio\n" "the list is sorted: from most square to least square\n" @@ -14389,49 +14963,49 @@ "Para usar una relación de aspecto personalizada, despliegue la lista e " "introduzca un valor decimal o la relación en formato x:y" -#: ../src/iop/clipping.c:2236 ../src/iop/crop.c:1252 +#: ../src/iop/clipping.c:2289 ../src/iop/crop.c:1236 msgid "margins" msgstr "márgenes" -#: ../src/iop/clipping.c:2241 ../src/iop/crop.c:1262 +#: ../src/iop/clipping.c:2294 ../src/iop/crop.c:1246 msgid "the left margin cannot overlap with the right margin" msgstr "El margen izquierdo no puede superponerse con el margen derecho" -#: ../src/iop/clipping.c:2248 ../src/iop/crop.c:1270 +#: ../src/iop/clipping.c:2301 ../src/iop/crop.c:1254 msgid "the right margin cannot overlap with the left margin" msgstr "El margen derecho no puede superponerse con el margen izquierdo" -#: ../src/iop/clipping.c:2253 ../src/iop/crop.c:1276 +#: ../src/iop/clipping.c:2306 ../src/iop/crop.c:1260 msgid "the top margin cannot overlap with the bottom margin" msgstr "El margen superior no puede superponerse con el margen inferior" -#: ../src/iop/clipping.c:2260 ../src/iop/crop.c:1284 +#: ../src/iop/clipping.c:2313 ../src/iop/crop.c:1268 msgid "the bottom margin cannot overlap with the top margin" msgstr "El margen inferior no puede superponerse con el margen superior" -#: ../src/iop/clipping.c:3019 +#: ../src/iop/clipping.c:3059 msgid "<b>commit</b>: double-click, <b>straighten</b>: right-drag" msgstr "" "<b>Confirmar</b>: Pulsado Doble, <b>Enderezar</b>: Clic Secundario + Arrastre" -#: ../src/iop/clipping.c:3023 +#: ../src/iop/clipping.c:3063 msgid "" "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag\n" "<b>straighten</b>: right-drag" msgstr "" -"<b>Redimensionar</b>: Arrastre, <b>Conservar la proporción</b>: Mayús" -"+Arrastre\n" +"<b>Redimensionar</b>: Arrastre, <b>Conservar la proporción</b>: " +"Mayús+Arrastre\n" "<b>Enderezar</b>: Clic Secundario + Arrastre" -#: ../src/iop/clipping.c:3066 +#: ../src/iop/clipping.c:3104 msgid "<b>move control point</b>: drag" msgstr "<b>Mover el punto de control</b>: Arrastre" -#: ../src/iop/clipping.c:3071 +#: ../src/iop/clipping.c:3109 msgid "<b>move line</b>: drag, <b>toggle symmetry</b>: click ꝏ" msgstr "<b>Mover línea</b>: Arrastre, <b>Alternar simetría</b>: Pulsar ꝏ" -#: ../src/iop/clipping.c:3076 +#: ../src/iop/clipping.c:3114 msgid "" "<b>apply</b>: click <tt>ok</tt>, <b>toggle symmetry</b>: click ꝏ\n" "<b>move line/control point</b>: drag" @@ -14439,7 +15013,7 @@ "<b>Aplicar</b>: Pulsar <tt>OK</tt>, <b>Alternar simetría</b>: Pulsar ꝏ\n" "<b>Mover línea / punto de control</b>: Arrastre" -#: ../src/iop/clipping.c:3083 +#: ../src/iop/clipping.c:3121 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag\n" @@ -14449,12 +15023,12 @@ "horizontalmente</b>: Ctrl+Arrastre\n" "<b>Enderezar</b>: Clic Secundario + Arrastre, <b>Confirmar</b>: Pulsado doble" -#: ../src/iop/clipping.c:3340 ../src/iop/crop.c:1796 +#: ../src/iop/clipping.c:3380 ../src/iop/crop.c:1770 #, c-format msgid "[%s on borders] crop" msgstr "[%s en los bordes] recortar" -#: ../src/iop/clipping.c:3342 ../src/iop/crop.c:1798 +#: ../src/iop/clipping.c:3382 ../src/iop/crop.c:1772 #, c-format msgid "[%s on borders] crop keeping ratio" msgstr "[%s en los bordes] recortar manteniendo la proporción" @@ -14473,225 +15047,226 @@ msgid "adjust the look of the image" msgstr "Ajusta el aspecto de la imagen" -#: ../src/iop/colisa.c:310 +#: ../src/iop/colisa.c:304 msgid "color saturation adjustment" msgstr "Ajusta la saturación de color" -#: ../src/iop/colorbalance.c:150 +#: ../src/iop/colorbalance.c:152 msgid "color balance" msgstr "balance de color" -#: ../src/iop/colorbalance.c:155 +#: ../src/iop/colorbalance.c:157 msgid "lift gamma gain|cdl|color grading|contrast|saturation|hue" msgstr "" "realce gamma incremento|cdl|calibración de color|contraste|saturación|tono" -#: ../src/iop/colorbalance.c:160 +#: ../src/iop/colorbalance.c:162 msgid "shift colors selectively by luminance range" -msgstr "desplazar colores selectivamente por rango de luminancia" +msgstr "" +"Realiza una transición de colores por rango de luminancia de manera selectiva" -#: ../src/iop/colorbalance.c:164 +#: ../src/iop/colorbalance.c:166 msgid "non-linear, Lab, scene-referred" msgstr "No lineal, Lab, basado en la escena" #. these blobs were exported as dtstyle and copied from there: -#: ../src/iop/colorbalance.c:275 +#: ../src/iop/colorbalance.c:304 msgid "split-toning teal-orange (2nd instance)" msgstr "división de tono verde azulado (módulo 2º)" -#: ../src/iop/colorbalance.c:278 +#: ../src/iop/colorbalance.c:307 msgid "split-toning teal-orange (1st instance)" msgstr "división de tono verde azulado (módulo 1º)" -#: ../src/iop/colorbalance.c:282 +#: ../src/iop/colorbalance.c:311 msgid "generic film" -msgstr "pelicula genérica" +msgstr "película genérica" -#: ../src/iop/colorbalance.c:286 +#: ../src/iop/colorbalance.c:315 msgid "similar to Kodak Portra" msgstr "similar a Kodak Portra" -#: ../src/iop/colorbalance.c:290 +#: ../src/iop/colorbalance.c:319 msgid "similar to Kodak Ektar" msgstr "similar a Kodak Ektar" -#: ../src/iop/colorbalance.c:294 +#: ../src/iop/colorbalance.c:323 msgid "similar to Kodachrome" msgstr "similar a Kodachrome" -#: ../src/iop/colorbalance.c:990 +#: ../src/iop/colorbalance.c:964 msgid "optimize luma from patches" msgstr "optimizar la luminosidad a partir de parches" -#: ../src/iop/colorbalance.c:992 ../src/iop/colorbalance.c:2110 +#: ../src/iop/colorbalance.c:966 ../src/iop/colorbalance.c:2085 msgid "optimize luma" msgstr "optimizar luminosidad" -#: ../src/iop/colorbalance.c:996 +#: ../src/iop/colorbalance.c:970 msgid "neutralize colors from patches" msgstr "neutraliza los colores desde los parches" -#: ../src/iop/colorbalance.c:998 ../src/iop/colorbalance.c:2116 +#: ../src/iop/colorbalance.c:972 ../src/iop/colorbalance.c:2091 msgid "neutralize colors" msgstr "neutralizar los colores" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "offset" msgstr "translación" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "power" msgstr "potencia" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "slope" msgstr "pendiente" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "lift" msgstr "realce" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gamma" msgstr "gamma" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gain" msgstr "incremento" -#: ../src/iop/colorbalance.c:1787 +#: ../src/iop/colorbalance.c:1762 msgctxt "section" msgid "shadows: lift / offset" msgstr "Sombras: realce / translación" -#: ../src/iop/colorbalance.c:1788 +#: ../src/iop/colorbalance.c:1763 msgctxt "section" msgid "mid-tones: gamma / power" msgstr "Tonos medios: gamma / potencia" -#: ../src/iop/colorbalance.c:1789 +#: ../src/iop/colorbalance.c:1764 msgctxt "section" msgid "highlights: gain / slope" msgstr "Luces: incremento / pendiente" -#: ../src/iop/colorbalance.c:1813 +#: ../src/iop/colorbalance.c:1788 msgid "shadows / mid-tones / highlights" msgstr "sombras / tonos medios / luces" -#: ../src/iop/colorbalance.c:1910 ../src/iop/colorbalance.c:1919 +#: ../src/iop/colorbalance.c:1885 ../src/iop/colorbalance.c:1894 msgid "color-grading mapping method" msgstr "Método de mapeo de gradación de color" -#: ../src/iop/colorbalance.c:1914 +#: ../src/iop/colorbalance.c:1889 msgid "color control sliders" msgstr "controles deslizantes de color" -#: ../src/iop/colorbalance.c:1915 ../src/libs/colorpicker.c:51 +#: ../src/iop/colorbalance.c:1890 ../src/libs/colorpicker.c:51 msgid "HSL" msgstr "HSL" -#: ../src/iop/colorbalance.c:1916 +#: ../src/iop/colorbalance.c:1891 msgid "RGBL" msgstr "RGBL" -#: ../src/iop/colorbalance.c:1928 +#: ../src/iop/colorbalance.c:1903 msgctxt "section" msgid "master" msgstr "control principal" -#: ../src/iop/colorbalance.c:1934 +#: ../src/iop/colorbalance.c:1909 msgid "saturation correction before the color balance" msgstr "Corrección de saturación antes del balance de color" -#: ../src/iop/colorbalance.c:1940 +#: ../src/iop/colorbalance.c:1915 msgid "saturation correction after the color balance" msgstr "Corrección de saturación después del balance de color" -#: ../src/iop/colorbalance.c:1945 +#: ../src/iop/colorbalance.c:1920 msgid "adjust to match a neutral tone" msgstr "Ajustar para que coincida con un tono neutro" #. is set in _configure_slider_blocks -#: ../src/iop/colorbalance.c:2003 +#: ../src/iop/colorbalance.c:1978 msgid "click to cycle layout" msgstr "Pulse para cambiar la disposición de los elementos" -#: ../src/iop/colorbalance.c:2037 +#: ../src/iop/colorbalance.c:2012 msgid "factor" msgstr "factor" -#: ../src/iop/colorbalance.c:2051 +#: ../src/iop/colorbalance.c:2026 msgid "select the hue" msgstr "Seleccionar el tono" -#: ../src/iop/colorbalance.c:2063 +#: ../src/iop/colorbalance.c:2038 msgid "select the saturation" msgstr "Seleccionar la saturación" -#: ../src/iop/colorbalance.c:2082 +#: ../src/iop/colorbalance.c:2057 msgid "factor of lift/offset" msgstr "Factor de realce/translación" -#: ../src/iop/colorbalance.c:2083 +#: ../src/iop/colorbalance.c:2058 msgid "factor of red for lift/offset" msgstr "Factor de realce/translación en rojo" -#: ../src/iop/colorbalance.c:2084 +#: ../src/iop/colorbalance.c:2059 msgid "factor of green for lift/offset" msgstr "Factor de realce/translación en verde" -#: ../src/iop/colorbalance.c:2085 +#: ../src/iop/colorbalance.c:2060 msgid "factor of blue for lift/offset" msgstr "Factor de realce/translación en azul" -#: ../src/iop/colorbalance.c:2088 +#: ../src/iop/colorbalance.c:2063 msgid "factor of gamma/power" msgstr "Factor de gamma/potencia" -#: ../src/iop/colorbalance.c:2089 +#: ../src/iop/colorbalance.c:2064 msgid "factor of red for gamma/power" msgstr "Factor de gamma/potencia para rojo" -#: ../src/iop/colorbalance.c:2090 +#: ../src/iop/colorbalance.c:2065 msgid "factor of green for gamma/power" msgstr "Factor de gamma/potencia para verde" -#: ../src/iop/colorbalance.c:2091 +#: ../src/iop/colorbalance.c:2066 msgid "factor of blue for gamma/power" msgstr "Factor de gamma/potencia para azul" -#: ../src/iop/colorbalance.c:2094 +#: ../src/iop/colorbalance.c:2069 msgid "factor of gain/slope" msgstr "Factor de incremento/pendiente" -#: ../src/iop/colorbalance.c:2095 +#: ../src/iop/colorbalance.c:2070 msgid "factor of red for gain/slope" msgstr "Factor de incremento/pendiente del rojo" -#: ../src/iop/colorbalance.c:2096 +#: ../src/iop/colorbalance.c:2071 msgid "factor of green for gain/slope" msgstr "Factor de incremento/pendiente del verde" -#: ../src/iop/colorbalance.c:2097 +#: ../src/iop/colorbalance.c:2072 msgid "factor of blue for gain/slope" msgstr "Factor de incremento/pendiente del azul" -#: ../src/iop/colorbalance.c:2106 +#: ../src/iop/colorbalance.c:2081 msgctxt "section" msgid "auto optimizers" msgstr "optimizadores automáticos" -#: ../src/iop/colorbalance.c:2111 +#: ../src/iop/colorbalance.c:2086 msgid "fit the whole histogram and center the average luma" msgstr "Ajustar todo el histograma y centrar la luminancia media" -#: ../src/iop/colorbalance.c:2117 +#: ../src/iop/colorbalance.c:2092 msgid "optimize the RGB curves to remove color casts" msgstr "Optimizar las curvas RGB para eliminar los tonos de color" @@ -14715,89 +15290,89 @@ "Las herramientas de gradación de color emplean máscaras alfa\n" "para separar las sombras, los tonos medios y las luces." -#: ../src/iop/colorbalancergb.c:443 +#: ../src/iop/colorbalancergb.c:536 msgid "add basic colorfulness (legacy)" msgstr "añadir coloración básica (heredado)" -#: ../src/iop/colorbalancergb.c:452 +#: ../src/iop/colorbalancergb.c:545 msgid "basic colorfulness: natural skin" msgstr "añadir coloración básica: piel natural" -#: ../src/iop/colorbalancergb.c:458 +#: ../src/iop/colorbalancergb.c:551 msgid "basic colorfulness: vibrant colors" msgstr "añadir coloración básica: colores vivos" -#: ../src/iop/colorbalancergb.c:464 +#: ../src/iop/colorbalancergb.c:557 msgid "basic colorfulness: standard" msgstr "añadir coloración básica" -#: ../src/iop/colorbalancergb.c:937 +#: ../src/iop/colorbalancergb.c:1022 msgid "colorbalance works only on RGB input" msgstr "Balance de color sólo trabaja con una entrada RGB" -#: ../src/iop/colorbalancergb.c:1506 ../src/iop/colorzones.c:2164 -#: ../src/iop/retouch.c:1884 ../src/iop/toneequal.c:1966 +#: ../src/iop/colorbalancergb.c:1577 ../src/iop/colorzones.c:2394 +#: ../src/iop/retouch.c:2069 ../src/iop/toneequal.c:1996 msgid "cannot display masks when the blending mask is displayed" msgstr "" "No es posible activar esta opción mientras se estén mostrando las máscaras " "de fusión" #. Page master -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "master" msgstr "control principal" -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "global grading" msgstr "Gradación general de color" -#: ../src/iop/colorbalancergb.c:1880 +#: ../src/iop/colorbalancergb.c:1951 msgid "rotate all hues by an angle, at the same luminance" msgstr "Rotar las tonalidades mediante un ángulo, con la misma luminancia" -#: ../src/iop/colorbalancergb.c:1886 +#: ../src/iop/colorbalancergb.c:1957 msgid "increase colorfulness mostly on low-chroma colors" msgstr "Aumentar la coloración especialmente en los colores con croma bajo" -#: ../src/iop/colorbalancergb.c:1892 +#: ../src/iop/colorbalancergb.c:1963 msgid "increase the contrast at constant chromaticity" msgstr "Aumenta el contraste con una cromaticidad constante" -#: ../src/iop/colorbalancergb.c:1894 +#: ../src/iop/colorbalancergb.c:1965 msgctxt "section" msgid "linear chroma grading" msgstr "gradación lineal de color" -#: ../src/iop/colorbalancergb.c:1901 +#: ../src/iop/colorbalancergb.c:1972 msgid "increase colorfulness at same luminance globally" msgstr "Aumentar la coloración con la misma luminancia a nivel general" -#: ../src/iop/colorbalancergb.c:1906 +#: ../src/iop/colorbalancergb.c:1977 msgid "increase colorfulness at same luminance mostly in shadows" msgstr "" "Aumentar la coloración con la misma luminancia especialmente en las sombras" -#: ../src/iop/colorbalancergb.c:1911 +#: ../src/iop/colorbalancergb.c:1982 msgid "increase colorfulness at same luminance mostly in mid-tones" msgstr "" "Aumentar la coloración con la misma luminancia especialmente en tonos medios" -#: ../src/iop/colorbalancergb.c:1916 +#: ../src/iop/colorbalancergb.c:1987 msgid "increase colorfulness at same luminance mostly in highlights" msgstr "" "Aumentar la coloración con la misma luminancia especialmente en las luces" -#: ../src/iop/colorbalancergb.c:1918 +#: ../src/iop/colorbalancergb.c:1989 msgctxt "section" msgid "perceptual saturation grading" msgstr "gradación de saturación perceptiva" -#: ../src/iop/colorbalancergb.c:1924 +#: ../src/iop/colorbalancergb.c:1995 msgid "add or remove saturation by an absolute amount" msgstr "Añadir o quitar la saturación en función de una cantidad absoluta" -#: ../src/iop/colorbalancergb.c:1929 ../src/iop/colorbalancergb.c:1934 -#: ../src/iop/colorbalancergb.c:1939 +#: ../src/iop/colorbalancergb.c:2000 ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2010 msgid "" "increase or decrease saturation proportionally to the original pixel " "saturation" @@ -14805,21 +15380,21 @@ "Aumentar o disminuir la saturación proporcionalmente a la saturación " "original del pixel" -#: ../src/iop/colorbalancergb.c:1941 +#: ../src/iop/colorbalancergb.c:2012 msgctxt "section" msgid "perceptual brilliance grading" msgstr "gradación de la brillantez perceptiva" -#: ../src/iop/colorbalancergb.c:1942 +#: ../src/iop/colorbalancergb.c:2013 msgid "brilliance" msgstr "brillantez" -#: ../src/iop/colorbalancergb.c:1947 +#: ../src/iop/colorbalancergb.c:2018 msgid "add or remove brilliance by an absolute amount" msgstr "Añadir o quitar brillantez en función de una cantidad absoluta" -#: ../src/iop/colorbalancergb.c:1952 ../src/iop/colorbalancergb.c:1957 -#: ../src/iop/colorbalancergb.c:1962 +#: ../src/iop/colorbalancergb.c:2023 ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2033 msgid "" "increase or decrease brilliance proportionally to the original pixel " "brilliance" @@ -14828,159 +15403,159 @@ "original" #. Page 4-ways -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "4 ways" msgstr "4 escalas" -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "selective color grading" msgstr "Gradación de color modular" -#: ../src/iop/colorbalancergb.c:1967 +#: ../src/iop/colorbalancergb.c:2038 msgctxt "section" msgid "global offset" msgstr "translación general" -#: ../src/iop/colorbalancergb.c:1974 +#: ../src/iop/colorbalancergb.c:2045 msgid "global luminance offset" msgstr "Translada la luminancia total" -#: ../src/iop/colorbalancergb.c:1979 +#: ../src/iop/colorbalancergb.c:2050 msgid "hue of the global color offset" msgstr "Translada todo el tono del color" -#: ../src/iop/colorbalancergb.c:1985 +#: ../src/iop/colorbalancergb.c:2056 msgid "chroma of the global color offset" msgstr "Translada la cromaticidad total del color" -#: ../src/iop/colorbalancergb.c:1987 +#: ../src/iop/colorbalancergb.c:2058 msgctxt "section" msgid "shadows lift" msgstr "realce en las sombras" -#: ../src/iop/colorbalancergb.c:1988 +#: ../src/iop/colorbalancergb.c:2059 msgid "lift" msgstr "realce" -#: ../src/iop/colorbalancergb.c:1994 +#: ../src/iop/colorbalancergb.c:2065 msgid "luminance gain in shadows" msgstr "Incremento de luminancia en las sombras" -#: ../src/iop/colorbalancergb.c:1999 +#: ../src/iop/colorbalancergb.c:2070 msgid "hue of the color gain in shadows" msgstr "Tono del incremento de color en las sombras" -#: ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2076 msgid "chroma of the color gain in shadows" msgstr "Croma del incremento de color en las sombras" -#: ../src/iop/colorbalancergb.c:2007 +#: ../src/iop/colorbalancergb.c:2078 msgctxt "section" msgid "highlights gain" msgstr "incremento en las luces" -#: ../src/iop/colorbalancergb.c:2008 +#: ../src/iop/colorbalancergb.c:2079 msgid "gain" msgstr "incremento" -#: ../src/iop/colorbalancergb.c:2014 +#: ../src/iop/colorbalancergb.c:2085 msgid "luminance gain in highlights" msgstr "Incremento de luminancia en las luces" -#: ../src/iop/colorbalancergb.c:2019 +#: ../src/iop/colorbalancergb.c:2090 msgid "hue of the color gain in highlights" msgstr "Tono del incremento de color en las luces" -#: ../src/iop/colorbalancergb.c:2025 +#: ../src/iop/colorbalancergb.c:2096 msgid "chroma of the color gain in highlights" msgstr "Croma del incremento de color en las luces" -#: ../src/iop/colorbalancergb.c:2027 +#: ../src/iop/colorbalancergb.c:2098 msgctxt "section" msgid "power" msgstr "potencia" -#: ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2099 msgid "power" msgstr "potencia" -#: ../src/iop/colorbalancergb.c:2034 +#: ../src/iop/colorbalancergb.c:2105 msgid "luminance exponent in mid-tones" msgstr "Exponente de luminancia en tonos medios" -#: ../src/iop/colorbalancergb.c:2039 +#: ../src/iop/colorbalancergb.c:2110 msgid "hue of the color exponent in mid-tones" msgstr "Tono del exponente de color en tonos medios" -#: ../src/iop/colorbalancergb.c:2045 +#: ../src/iop/colorbalancergb.c:2116 msgid "chroma of the color exponent in mid-tones" msgstr "Croma del exponente de color en tonos medios" #. Page masks -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "masks" msgstr "máscaras" -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "isolate luminances" msgstr "Separa luminancias" -#: ../src/iop/colorbalancergb.c:2052 +#: ../src/iop/colorbalancergb.c:2123 msgid "choose in which uniform color space the saturation is computed" msgstr "Elegir en qué espacio de color uniforme se calcula la saturación" -#: ../src/iop/colorbalancergb.c:2054 +#: ../src/iop/colorbalancergb.c:2125 msgctxt "section" msgid "luminance ranges" msgstr "rangos de luminancia" -#: ../src/iop/colorbalancergb.c:2065 +#: ../src/iop/colorbalancergb.c:2136 msgid "weight of the shadows over the whole tonal range" msgstr "Ponderación de las sombras en toda la gama tonal" -#: ../src/iop/colorbalancergb.c:2073 +#: ../src/iop/colorbalancergb.c:2144 msgid "position of the middle-gray reference for masking" msgstr "Posición de la referencia al gris medio para el enmascaramiento" -#: ../src/iop/colorbalancergb.c:2081 +#: ../src/iop/colorbalancergb.c:2152 msgid "weights of highlights over the whole tonal range" msgstr "Ponderación de las luces en toda la gama tonal" -#: ../src/iop/colorbalancergb.c:2086 +#: ../src/iop/colorbalancergb.c:2157 msgctxt "section" msgid "threshold" msgstr "umbral" -#: ../src/iop/colorbalancergb.c:2091 +#: ../src/iop/colorbalancergb.c:2162 msgid "peak white luminance value used to normalize the power function" msgstr "" "Valor máximo de la luminancia blanca utilizado para normalizar la función de " "potencia" -#: ../src/iop/colorbalancergb.c:2097 +#: ../src/iop/colorbalancergb.c:2168 msgid "peak gray luminance value used to normalize the power function" msgstr "" "Valor máximo de la luminancia gris utilizado para normalizar la función de " "potencia" -#: ../src/iop/colorbalancergb.c:2099 +#: ../src/iop/colorbalancergb.c:2170 msgctxt "section" msgid "mask preview settings" msgstr "configuración de previsualización de la máscara" -#: ../src/iop/colorbalancergb.c:2102 +#: ../src/iop/colorbalancergb.c:2173 msgid "checkerboard color 1" msgstr "color de la cuadrícula 1" -#: ../src/iop/colorbalancergb.c:2105 ../src/iop/colorbalancergb.c:2114 +#: ../src/iop/colorbalancergb.c:2176 ../src/iop/colorbalancergb.c:2185 msgid "select color of the checkerboard from a swatch" msgstr "Selecciona el color de la cuadrícula a partir de una muestra" -#: ../src/iop/colorbalancergb.c:2111 +#: ../src/iop/colorbalancergb.c:2182 msgid "checkerboard color 2" msgstr "color de la cuadrícula 2" -#: ../src/iop/colorbalancergb.c:2121 +#: ../src/iop/colorbalancergb.c:2192 msgid "checkerboard size" msgstr "tamaño de la cuadrícula" @@ -14999,11 +15574,11 @@ "y aplica los ajustes correspondientes" #: ../src/iop/colorchecker.c:131 ../src/iop/colorchecker.c:133 -#: ../src/iop/colorize.c:106 ../src/iop/colormapping.c:154 -#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:136 -#: ../src/iop/colorzones.c:146 ../src/iop/defringe.c:83 ../src/iop/levels.c:139 -#: ../src/iop/monochrome.c:99 ../src/iop/shadhi.c:198 -#: ../src/iop/tonecurve.c:212 ../src/iop/vibrance.c:96 +#: ../src/iop/colorize.c:99 ../src/iop/colormapping.c:154 +#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:121 +#: ../src/iop/colorzones.c:147 ../src/iop/defringe.c:83 ../src/iop/levels.c:141 +#: ../src/iop/monochrome.c:101 ../src/iop/shadhi.c:145 +#: ../src/iop/tonecurve.c:185 ../src/iop/vibrance.c:98 msgid "linear or non-linear, Lab, display-referred" msgstr "Lineal o no lineal, Lab, basado en la pantalla" @@ -15011,40 +15586,40 @@ msgid "defined by profile, Lab" msgstr "Definido por el perfil, Lab" -#: ../src/iop/colorchecker.c:294 +#: ../src/iop/colorchecker.c:308 msgid "it8 skin tones" msgstr "it8 tonos de piel" -#: ../src/iop/colorchecker.c:310 +#: ../src/iop/colorchecker.c:324 msgid "Helmholtz/Kohlrausch monochrome" msgstr "Monocromático Helmholtz-Kohlrausch" -#: ../src/iop/colorchecker.c:327 +#: ../src/iop/colorchecker.c:341 msgid "Fuji Astia emulation" msgstr "Emulación de Fuji Astia" -#: ../src/iop/colorchecker.c:341 +#: ../src/iop/colorchecker.c:355 msgid "Fuji Classic Chrome emulation" msgstr "Emulación de Fuji Classic Chrome" -#: ../src/iop/colorchecker.c:355 +#: ../src/iop/colorchecker.c:369 msgid "Fuji Monochrome emulation" msgstr "Emulación de Fuji Monochrome" -#: ../src/iop/colorchecker.c:369 +#: ../src/iop/colorchecker.c:383 msgid "Fuji Provia emulation" msgstr "Emulación de Fuji Provia" -#: ../src/iop/colorchecker.c:383 +#: ../src/iop/colorchecker.c:397 msgid "Fuji Velvia emulation" msgstr "Emulación de Fuji Velvia" -#: ../src/iop/colorchecker.c:841 ../src/iop/colorchecker.c:1436 +#: ../src/iop/colorchecker.c:846 ../src/iop/colorchecker.c:1441 #, c-format msgid "patch #%d" msgstr "parche #%d" -#: ../src/iop/colorchecker.c:1283 +#: ../src/iop/colorchecker.c:1288 #, c-format msgid "" "(%2.2f %2.2f %2.2f)\n" @@ -15061,15 +15636,15 @@ "Pulsado secundario para borrarlo.\n" "Mayús+Clic para reemplazar el parche por el color de la selección." -#: ../src/iop/colorchecker.c:1431 +#: ../src/iop/colorchecker.c:1436 msgid "patch" msgstr "parche" -#: ../src/iop/colorchecker.c:1432 +#: ../src/iop/colorchecker.c:1437 msgid "color checker patch" msgstr "Número de parche de color" -#: ../src/iop/colorchecker.c:1446 +#: ../src/iop/colorchecker.c:1451 msgid "" "adjust target color Lab 'L' channel\n" "lower values darken target color while higher brighten it" @@ -15078,7 +15653,7 @@ "Con valores bajos, el color de destino se oscurece mientras que con los más " "altos se aclara." -#: ../src/iop/colorchecker.c:1454 +#: ../src/iop/colorchecker.c:1459 msgid "" "adjust target color Lab 'a' channel\n" "lower values shift target color towards greens while higher shift towards " @@ -15088,11 +15663,11 @@ "Con valores bajos, el color de destino se desplaza hacia los verdes, " "mientras que con los más altos se desplaza hacia los magentas." -#: ../src/iop/colorchecker.c:1457 +#: ../src/iop/colorchecker.c:1462 msgid "green-magenta offset" msgstr "contraste verde/magenta" -#: ../src/iop/colorchecker.c:1466 +#: ../src/iop/colorchecker.c:1471 msgid "" "adjust target color Lab 'b' channel\n" "lower values shift target color towards blues while higher shift towards " @@ -15102,11 +15677,11 @@ "Con valores bajos, el color de destino se desplaza hacia los azules, " "mientras que con los más altos se desplaza hacia los amarillos." -#: ../src/iop/colorchecker.c:1469 +#: ../src/iop/colorchecker.c:1474 msgid "blue-yellow offset" msgstr "contraste amarillo/azul" -#: ../src/iop/colorchecker.c:1478 +#: ../src/iop/colorchecker.c:1483 msgid "" "adjust target color saturation\n" "adjusts 'a' and 'b' channels of target color in Lab space simultaneously\n" @@ -15119,11 +15694,11 @@ "Con valores más bajos, se lleva hacia una menor saturación, mientras que con " "los más altos se lleva hacia una mayor saturación." -#: ../src/iop/colorchecker.c:1487 +#: ../src/iop/colorchecker.c:1492 msgid "target color" msgstr "color destino" -#: ../src/iop/colorchecker.c:1490 +#: ../src/iop/colorchecker.c:1495 msgid "" "control target color of the patches\n" "relative - target color is relative from the patch original color\n" @@ -15133,15 +15708,15 @@ "Relativo: el color de destino es relativo al color original del parche.\n" "Absoluto: el color de destino es un valor absoluto de Lab." -#: ../src/iop/colorchecker.c:1494 +#: ../src/iop/colorchecker.c:1499 msgid "absolute" msgstr "absoluto" -#: ../src/iop/colorcontrast.c:85 +#: ../src/iop/colorcontrast.c:77 msgid "color contrast" msgstr "contraste de color" -#: ../src/iop/colorcontrast.c:95 +#: ../src/iop/colorcontrast.c:87 msgid "" "increase saturation and separation between\n" "opposite colors" @@ -15149,7 +15724,7 @@ "Incrementa la separación y la saturación entre\n" "colores opuestos" -#: ../src/iop/colorcontrast.c:324 +#: ../src/iop/colorcontrast.c:330 msgid "" "steepness of the a* curve in Lab\n" "lower values desaturate greens and magenta while higher saturate them" @@ -15158,7 +15733,7 @@ "Controla la saturación en verde y magenta. Disminuya el valor para desaturar " "o incremente para el efecto contrario." -#: ../src/iop/colorcontrast.c:331 +#: ../src/iop/colorcontrast.c:337 msgid "" "steepness of the b* curve in Lab\n" "lower values desaturate blues and yellows while higher saturate them" @@ -15176,19 +15751,19 @@ msgstr "" "Corrige selectivamente el balance de blancos para los negros y los blancos" -#: ../src/iop/colorcorrection.c:107 +#: ../src/iop/colorcorrection.c:109 msgid "warm tone" msgstr "tono cálido" -#: ../src/iop/colorcorrection.c:115 +#: ../src/iop/colorcorrection.c:117 msgid "warming filter" msgstr "filtro de calentamiento" -#: ../src/iop/colorcorrection.c:123 +#: ../src/iop/colorcorrection.c:125 msgid "cooling filter" msgstr "filtro de enfriamiento" -#: ../src/iop/colorcorrection.c:257 +#: ../src/iop/colorcorrection.c:250 msgid "" "drag the line for split-toning. bright means highlights, dark means shadows. " "use mouse wheel to change saturation." @@ -15197,7 +15772,7 @@ "luces,el punto negro a las sombras. Use la rueda del ratón para cambiar la " "saturación." -#: ../src/iop/colorcorrection.c:276 +#: ../src/iop/colorcorrection.c:269 msgid "set the global saturation" msgstr "Define la saturación general" @@ -15214,7 +15789,7 @@ "al espacio de color de trabajo basado en perfiles de color " #: ../src/iop/colorin.c:133 ../src/iop/colorout.c:89 ../src/iop/demosaic.c:293 -#: ../src/iop/rawprepare.c:158 +#: ../src/iop/rawprepare.c:174 msgid "mandatory" msgstr "Forzoso" @@ -15222,7 +15797,7 @@ msgid "defined by profile" msgstr "Determinado por el perfil" -#: ../src/iop/colorin.c:542 +#: ../src/iop/colorin.c:582 #, c-format msgid "" "can't extract matrix from colorspace `%s', it will be replaced by Rec2020 " @@ -15231,26 +15806,26 @@ "No se puede extraer la matriz del espacio de color «%s», por lo que será " "reemplazada por RGB Rec. 2020" -#: ../src/iop/colorin.c:1424 +#: ../src/iop/colorin.c:1362 #, c-format msgid "`%s' color matrix not found!" msgstr "«%s» matriz de color no encontrada" -#: ../src/iop/colorin.c:1463 +#: ../src/iop/colorin.c:1401 msgid "input profile could not be generated!" msgstr "El perfil de entrada no puede ser generado" -#: ../src/iop/colorin.c:1560 +#: ../src/iop/colorin.c:1498 msgid "unsupported input profile has been replaced by linear Rec709 RGB!" msgstr "" -"El perfil de entrada está sin soporte y ha sido reemplazado por RGB lineal " -"Rec. 709" +"El perfil de entrada está sin soporte y ha sido reemplazado por RGB Rec. 709 " +"lineal" -#: ../src/iop/colorin.c:1844 +#: ../src/iop/colorin.c:1782 msgid "external ICC profiles" msgstr "Perfiles ICC externos" -#: ../src/iop/colorin.c:1889 +#: ../src/iop/colorin.c:1827 #, c-format msgid "" "embedded ICC profile properties:\n" @@ -15273,43 +15848,43 @@ "Derechos de autor: <b>%s</b>\n" "\n" -#: ../src/iop/colorin.c:2084 +#: ../src/iop/colorin.c:2022 msgid "input profile" msgstr "perfil de entrada" -#: ../src/iop/colorin.c:2088 +#: ../src/iop/colorin.c:2026 msgid "working profile" msgstr "definir un perfil" -#: ../src/iop/colorin.c:2097 +#: ../src/iop/colorin.c:2035 msgid "working ICC profiles" msgstr "perfiles ICC de trabajo" -#: ../src/iop/colorin.c:2109 +#: ../src/iop/colorin.c:2047 msgid "confine Lab values to gamut of RGB color space" -msgstr "limitar los valores Lab al gama del espacio de color RGB" +msgstr "Limitar los valores Lab a la gama del espacio de color RGB" -#: ../src/iop/colorize.c:84 +#: ../src/iop/colorize.c:75 msgid "colorize" msgstr "colorear" -#: ../src/iop/colorize.c:104 +#: ../src/iop/colorize.c:97 msgid "overlay a solid color on the image" msgstr "Solapa un color sólido sobre la imagen" -#: ../src/iop/colorize.c:341 ../src/iop/splittoning.c:485 +#: ../src/iop/colorize.c:354 ../src/iop/splittoning.c:481 msgid "select the hue tone" msgstr "Seleccionar el tono" -#: ../src/iop/colorize.c:347 +#: ../src/iop/colorize.c:360 msgid "select the saturation shadow tone" msgstr "Seleccionar el tono de saturación de las sombras" -#: ../src/iop/colorize.c:351 +#: ../src/iop/colorize.c:364 msgid "lightness of color" msgstr "luminosidad" -#: ../src/iop/colorize.c:355 +#: ../src/iop/colorize.c:368 msgid "mix value of source lightness" msgstr "Mezclar la luminosidad de las fuentes" @@ -15324,37 +15899,37 @@ "Transfiere la paleta de colores mediante el mapeo correspondiente\n" "de la imagen de origen a la de destino" -#: ../src/iop/colormapping.c:1030 +#: ../src/iop/colormapping.c:1019 msgid "source clusters:" msgstr "agrupaciones fuente:" -#: ../src/iop/colormapping.c:1036 +#: ../src/iop/colormapping.c:1025 msgid "target clusters:" msgstr "agrupaciones destino:" -#: ../src/iop/colormapping.c:1045 +#: ../src/iop/colormapping.c:1034 msgid "acquire as source" msgstr "imagen fuente" -#: ../src/iop/colormapping.c:1049 +#: ../src/iop/colormapping.c:1038 msgid "analyze this image as a source image" msgstr "Adquirir la imagen como imagen fuente" -#: ../src/iop/colormapping.c:1051 +#: ../src/iop/colormapping.c:1040 msgid "acquire as target" msgstr "imagen destino" -#: ../src/iop/colormapping.c:1055 +#: ../src/iop/colormapping.c:1044 msgid "analyze this image as a target image" msgstr "Adquirir la imagen como imagen destino" -#: ../src/iop/colormapping.c:1058 +#: ../src/iop/colormapping.c:1047 msgid "number of clusters to find in image. value change resets all clusters" msgstr "" "Número de cúmulos a extraer de una imagen. Los cambios en los valores " "reinician todos las agrupaciones." -#: ../src/iop/colormapping.c:1061 +#: ../src/iop/colormapping.c:1050 msgid "" "how clusters are mapped. low values: based on color proximity, high values: " "based on color dominance" @@ -15362,7 +15937,7 @@ "Modo de mapear los grupos. Valores bajos: basados en la proximidad del " "color. Valores altos: basados en el dominio del color" -#: ../src/iop/colormapping.c:1066 +#: ../src/iop/colormapping.c:1055 msgid "level of histogram equalization" msgstr "Grado de ecualización del histograma" @@ -15382,115 +15957,115 @@ msgid "non-linear, RGB or Lab, display-referred" msgstr "No lineal, RGB o Lab, basado en la pantalla" -#: ../src/iop/colorout.c:679 +#: ../src/iop/colorout.c:695 msgid "missing output profile has been replaced by sRGB!" msgstr "El perfil de salida que faltaba ha sido sustituido por sRGB" -#: ../src/iop/colorout.c:701 +#: ../src/iop/colorout.c:717 msgid "missing softproof profile has been replaced by sRGB!" msgstr "El perfil de pruebas que faltaba ha sido sustituido por sRGB" -#: ../src/iop/colorout.c:744 +#: ../src/iop/colorout.c:760 msgid "unsupported output profile has been replaced by sRGB!" msgstr "El perfil de salida no tiene soporte y se reemplazó por sRGB" -#: ../src/iop/colorout.c:869 +#: ../src/iop/colorout.c:885 msgid "output intent" msgstr "salida" -#: ../src/iop/colorout.c:870 +#: ../src/iop/colorout.c:886 msgid "rendering intent" msgstr "representación de color" -#: ../src/iop/colorout.c:872 ../src/libs/export.c:1246 +#: ../src/iop/colorout.c:888 ../src/libs/export.c:1358 #: ../src/libs/print_settings.c:2475 ../src/libs/print_settings.c:2824 -#: ../src/views/darkroom.c:2518 ../src/views/lighttable.c:1176 +#: ../src/views/darkroom.c:2359 ../src/views/lighttable.c:1176 msgid "perceptual" msgstr "perceptivo" -#: ../src/iop/colorout.c:873 ../src/libs/export.c:1247 +#: ../src/iop/colorout.c:889 ../src/libs/export.c:1359 #: ../src/libs/print_settings.c:2476 ../src/libs/print_settings.c:2825 -#: ../src/views/darkroom.c:2519 ../src/views/lighttable.c:1177 +#: ../src/views/darkroom.c:2360 ../src/views/lighttable.c:1177 msgid "relative colorimetric" msgstr "colorimétrico relativo" -#: ../src/iop/colorout.c:874 ../src/libs/export.c:1248 +#: ../src/iop/colorout.c:890 ../src/libs/export.c:1360 #: ../src/libs/print_settings.c:2477 ../src/libs/print_settings.c:2826 -#: ../src/views/darkroom.c:2520 ../src/views/lighttable.c:1178 +#: ../src/views/darkroom.c:2361 ../src/views/lighttable.c:1178 msgctxt "rendering intent" msgid "saturation" msgstr "saturación" -#: ../src/iop/colorout.c:875 ../src/libs/export.c:1249 +#: ../src/iop/colorout.c:891 ../src/libs/export.c:1361 #: ../src/libs/print_settings.c:2478 ../src/libs/print_settings.c:2827 -#: ../src/views/darkroom.c:2521 ../src/views/lighttable.c:1179 +#: ../src/views/darkroom.c:2362 ../src/views/lighttable.c:1179 msgid "absolute colorimetric" msgstr "colorimétrico absoluto" -#: ../src/iop/colorout.c:893 +#: ../src/iop/colorout.c:909 msgid "export ICC profiles" msgstr "Exportar perfiles ICC" -#: ../src/iop/colorreconstruction.c:129 +#: ../src/iop/colorreconstruction.c:114 msgid "color reconstruction" msgstr "reconstrucción de color" -#: ../src/iop/colorreconstruction.c:134 +#: ../src/iop/colorreconstruction.c:119 msgid "recover clipped highlights by propagating surrounding colors" msgstr "Recupera las luces recortadas esparciendo colores adyacentes" -#: ../src/iop/colorreconstruction.c:628 ../src/iop/colorreconstruction.c:1040 -#: ../src/iop/globaltonemap.c:193 ../src/iop/globaltonemap.c:362 -#: ../src/iop/hazeremoval.c:553 ../src/iop/hazeremoval.c:788 -#: ../src/iop/levels.c:336 +#: ../src/iop/colorreconstruction.c:647 ../src/iop/colorreconstruction.c:1053 +#: ../src/iop/globaltonemap.c:227 ../src/iop/globaltonemap.c:396 +#: ../src/iop/hazeremoval.c:541 ../src/iop/hazeremoval.c:776 +#: ../src/iop/levels.c:358 msgid "inconsistent output" msgstr "Salida inconsistente" -#: ../src/iop/colorreconstruction.c:666 +#: ../src/iop/colorreconstruction.c:685 msgid "module `color reconstruction' failed" msgstr "Ocurrió un fallo con el módulo «reconstrucción de color»" -#: ../src/iop/colorreconstruction.c:1237 +#: ../src/iop/colorreconstruction.c:1246 msgid "spatial" msgstr "extensión espacial" -#: ../src/iop/colorreconstruction.c:1238 +#: ../src/iop/colorreconstruction.c:1247 msgid "range" msgstr "rango" -#: ../src/iop/colorreconstruction.c:1239 +#: ../src/iop/colorreconstruction.c:1248 msgid "precedence" msgstr "prioridad" -#: ../src/iop/colorreconstruction.c:1255 +#: ../src/iop/colorreconstruction.c:1264 msgid "pixels with lightness values above this threshold are corrected" msgstr "" "Se corrigen los pixeles con valores de luminosidad por encima de este umbral" -#: ../src/iop/colorreconstruction.c:1256 +#: ../src/iop/colorreconstruction.c:1265 msgid "how far to look for replacement colors in spatial dimensions" msgstr "" "Límite de búsqueda de los colores de reemplazo en las dimensiones espaciales" -#: ../src/iop/colorreconstruction.c:1257 +#: ../src/iop/colorreconstruction.c:1266 msgid "how far to look for replacement colors in the luminance dimension" msgstr "" "Límite de búsqueda de los colores de reemplazo en la dimensión de luminancia" -#: ../src/iop/colorreconstruction.c:1258 +#: ../src/iop/colorreconstruction.c:1267 msgid "if and how to give precedence to specific replacement colors" msgstr "Nivel y modo de prioridad a los colores específicos de reemplazo" -#: ../src/iop/colorreconstruction.c:1259 +#: ../src/iop/colorreconstruction.c:1268 msgid "the hue tone which should be given precedence over other hue tones" msgstr "Elegir el tono que debería tener mayor prioridad sobre los demás" -#: ../src/iop/colorreconstruction.c:1261 ../src/iop/demosaic.c:1277 -#: ../src/iop/highlights.c:1168 +#: ../src/iop/colorreconstruction.c:1270 ../src/iop/demosaic.c:1324 +#: ../src/iop/highlights.c:1258 msgid "not applicable" msgstr "no es aplicable" -#: ../src/iop/colorreconstruction.c:1262 +#: ../src/iop/colorreconstruction.c:1271 msgid "no highlights reconstruction for monochrome images" msgstr "No se hay reconstrucción de luces para las imágenes monocromáticas" @@ -15504,7 +16079,7 @@ "Este módulo ha quedado sin soporte. Se recomienda sustituirlo por el módulo " "mapeo de color." -#: ../src/iop/colortransfer.c:439 +#: ../src/iop/colortransfer.c:441 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -15514,45 +16089,44 @@ "y solo está aquí, así que puede desactivarlo\n" "y moverse al nuevo módulo de mapeo de color." -#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2332 +#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2573 msgid "color zones" msgstr "zonas de color" -#: ../src/iop/colorzones.c:144 +#: ../src/iop/colorzones.c:145 msgid "selectively shift hues, chroma and lightness of pixels" msgstr "" "Cambia selectivamente las tonalidades, el croma y el brillo de los pixeles" -#: ../src/iop/colorzones.c:606 +#: ../src/iop/colorzones.c:684 msgid "B&W: with red" msgstr "B/N: con rojo" -#: ../src/iop/colorzones.c:629 -#| msgid "it8 skin tones" +#: ../src/iop/colorzones.c:707 msgid "B&W: with skin tones" msgstr "B/N: con tonos de piel" -#: ../src/iop/colorzones.c:652 +#: ../src/iop/colorzones.c:732 msgid "polarizing filter" msgstr "filtro polarizador" -#: ../src/iop/colorzones.c:673 +#: ../src/iop/colorzones.c:753 msgid "natural skin tones" msgstr "tonos de piel naturales" -#: ../src/iop/colorzones.c:704 +#: ../src/iop/colorzones.c:784 msgid "B&W: film" msgstr "B&W: película" -#: ../src/iop/colorzones.c:724 +#: ../src/iop/colorzones.c:804 msgid "HSL base setting" msgstr "configuración básica HSL" -#: ../src/iop/colorzones.c:2264 +#: ../src/iop/colorzones.c:2500 msgid "orange" msgstr "naranja" -#: ../src/iop/colorzones.c:2421 ../src/iop/rgbcurve.c:1375 +#: ../src/iop/colorzones.c:2673 ../src/iop/rgbcurve.c:1375 msgid "" "create a curve based on an area from the image\n" "drag to create a flat curve\n" @@ -15564,49 +16138,49 @@ "Use Ctrl+Arrastre para crear una curva positiva\n" "Use Mayús+Arrastre para crear una curva negativa" -#: ../src/iop/colorzones.c:2425 ../src/iop/rgbcurve.c:1379 +#: ../src/iop/colorzones.c:2677 ../src/iop/rgbcurve.c:1379 msgid "create curve" msgstr "crear curva" #. edit by area -#: ../src/iop/colorzones.c:2442 +#: ../src/iop/colorzones.c:2696 msgid "edit by area" msgstr "editar por área" -#: ../src/iop/colorzones.c:2447 +#: ../src/iop/colorzones.c:2702 msgid "edit the curve nodes by area" msgstr "Editar los nodos de la curva por área" -#: ../src/iop/colorzones.c:2454 +#: ../src/iop/colorzones.c:2710 msgid "display selection" msgstr "selección de visualización" -#: ../src/iop/colorzones.c:2463 +#: ../src/iop/colorzones.c:2722 msgid "choose selection criterion, will be the abscissa in the graph" msgstr "" "Elegir el criterio de selección, que corresponde a la abscisa en el gráfico" -#: ../src/iop/colorzones.c:2466 +#: ../src/iop/colorzones.c:2725 msgid "choose between a smoother or stronger effect" msgstr "Elegir entre un efecto más suave o más marcado." -#: ../src/iop/colorzones.c:2494 ../src/iop/rgbcurve.c:1410 -#: ../src/iop/tonecurve.c:1172 +#: ../src/iop/colorzones.c:2762 ../src/iop/rgbcurve.c:1410 +#: ../src/iop/tonecurve.c:1194 msgid "interpolation method" msgstr "interpolación" -#: ../src/iop/colorzones.c:2496 ../src/iop/rgbcurve.c:1412 -#: ../src/iop/tonecurve.c:1174 +#: ../src/iop/colorzones.c:2764 ../src/iop/rgbcurve.c:1412 +#: ../src/iop/tonecurve.c:1196 msgid "centripetal spline" msgstr "curva segmentaria centrípeta" -#: ../src/iop/colorzones.c:2497 ../src/iop/rgbcurve.c:1413 -#: ../src/iop/tonecurve.c:1175 +#: ../src/iop/colorzones.c:2765 ../src/iop/rgbcurve.c:1413 +#: ../src/iop/tonecurve.c:1197 msgid "monotonic spline" msgstr "curva segmentaria monótona" -#: ../src/iop/colorzones.c:2500 ../src/iop/rgbcurve.c:1416 -#: ../src/iop/tonecurve.c:1177 +#: ../src/iop/colorzones.c:2768 ../src/iop/rgbcurve.c:1416 +#: ../src/iop/tonecurve.c:1199 msgid "" "change this method if you see oscillations or cusps in the curve\n" "- cubic spline is better to produce smooth curves but oscillates when nodes " @@ -15625,25 +16199,25 @@ "• La monótona es mejor para la precisión de las funciones analíticas puras " "(logarítmica, gamma, exponencial)" -#: ../src/iop/crop.c:132 +#: ../src/iop/crop.c:122 msgid "crop" msgstr "recortar" -#: ../src/iop/crop.c:137 +#: ../src/iop/crop.c:127 msgid "reframe|distortion" msgstr "reencuadre|distorsión" -#: ../src/iop/crop.c:143 +#: ../src/iop/crop.c:133 msgid "change the framing" msgstr "Cambiar el encuadre" -#: ../src/iop/crop.c:1667 +#: ../src/iop/crop.c:1651 msgid "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag" msgstr "" -"<b>Redimensionar</b>: Arrastre, <b>Conservar la proporción</b>: Mayús" -"+Arrastre" +"<b>Redimensionar</b>: Arrastre, <b>Conservar la proporción</b>: " +"Mayús+Arrastre" -#: ../src/iop/crop.c:1676 +#: ../src/iop/crop.c:1660 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag" @@ -15667,7 +16241,7 @@ "Este módulo ha quedado sin soporte. Se recomienda sustituirlo por el módulo " "aberración cromática." -#: ../src/iop/defringe.c:415 +#: ../src/iop/defringe.c:417 msgid "" "method for color protection:\n" " - global average: fast, might show slightly wrong previews in high " @@ -15688,11 +16262,11 @@ "por lo que permite una mayor desaturación cuando sea requerido. \n" " • Estático (rápido): Usa sólo el umbral como límite estático." -#: ../src/iop/defringe.c:422 +#: ../src/iop/defringe.c:424 msgid "radius for detecting fringe" msgstr "Radio para detección de halos" -#: ../src/iop/defringe.c:425 +#: ../src/iop/defringe.c:427 msgid "threshold for defringe, higher values mean less defringing" msgstr "Umbral para reducir halos. Valores mayores indican menor reducción." @@ -15706,12 +16280,12 @@ "Reconstruye la imagen a partir de las muestras cromáticas obtenidas desde un " "sensor recubierto de un mosaico de filtros de color" -#: ../src/iop/demosaic.c:1086 +#: ../src/iop/demosaic.c:1133 #, c-format msgid "`%s' color matrix not found for 4bayer image!" msgstr "«%s» matriz de color no encontrada para imagen tipo Bayer" -#: ../src/iop/demosaic.c:1238 +#: ../src/iop/demosaic.c:1285 msgid "" "Bayer sensor demosaicing method, PPG and RCD are fast, AMaZE and LMMSE are " "slow.\n" @@ -15723,7 +16297,7 @@ "LMMSE es el más adecuado para imágenes con ISO alto.\n" "El tiempo de procesado se duplica con la interpolación cromática dual." -#: ../src/iop/demosaic.c:1242 +#: ../src/iop/demosaic.c:1289 msgid "" "X-Trans sensor demosaicing method, Markesteijn 3-pass and frequency domain " "chroma are slow.\n" @@ -15734,11 +16308,11 @@ "El tiempo de procesado se duplica con la interpolación cromática dual." # Demosaicing -> Algoritmo de interpolación cromática. -#: ../src/iop/demosaic.c:1248 +#: ../src/iop/demosaic.c:1295 msgid "Bayer4 sensor demosaicing methods." msgstr "métodos de interpolación cromática para el sensor Bayer4" -#: ../src/iop/demosaic.c:1252 +#: ../src/iop/demosaic.c:1299 msgid "" "threshold for edge-aware median.\n" "set to 0.0 to switch off\n" @@ -15748,7 +16322,7 @@ "Poner en 0.0 para desactivar.\n" "Poner en 1.0 para ignorar bordes." -#: ../src/iop/demosaic.c:1257 +#: ../src/iop/demosaic.c:1304 msgid "" "contrast threshold for dual demosaic.\n" "set to 0.0 for high frequency content\n" @@ -15760,7 +16334,7 @@ "El ajuste a 1.0 favorece las frecuencias bajas (planas).\n" "Para visualizar la máscara, pulse el control correspondiente." -#: ../src/iop/demosaic.c:1265 +#: ../src/iop/demosaic.c:1312 msgid "" "LMMSE refinement steps. the median steps average the output,\n" "refine adds some recalculation of red & blue channels" @@ -15771,55 +16345,55 @@ "y azul y se añanden." # Demosaicing -> Algoritmo de interpolación cromática. -#: ../src/iop/demosaic.c:1268 +#: ../src/iop/demosaic.c:1315 msgid "how many color smoothing median steps after demosaicing" msgstr "" "La cantidad de suavizado con medios pasos después de la interpolación " "cromática" -#: ../src/iop/demosaic.c:1271 +#: ../src/iop/demosaic.c:1318 msgid "green channels matching method" msgstr "Método de correspondencia para los canales verdes" -#: ../src/iop/demosaic.c:1278 +#: ../src/iop/demosaic.c:1325 msgid "demosaicing is only used for color raw images" msgstr "" "La interpolación cromática solo es\n" "necesaria para imágenes en bruto (RAW) a color." -#: ../src/iop/denoiseprofile.c:714 +#: ../src/iop/denoiseprofile.c:766 msgid "wavelets: chroma only" msgstr "ondículas: sólo croma" -#: ../src/iop/denoiseprofile.c:720 +#: ../src/iop/denoiseprofile.c:772 msgid "denoise (profiled)" msgstr "reducción de ruido (perfilado)" -#: ../src/iop/denoiseprofile.c:726 +#: ../src/iop/denoiseprofile.c:778 msgid "denoise using noise statistics profiled on sensors" msgstr "" "Realiza la reducción de ruido recurriendo a las estadísticas perfiladas en " "el sensor" -#: ../src/iop/denoiseprofile.c:2846 +#: ../src/iop/denoiseprofile.c:2850 #, c-format msgid "found match for ISO %d" msgstr "coincidencia encontrada para el ISO %d" -#: ../src/iop/denoiseprofile.c:2855 +#: ../src/iop/denoiseprofile.c:2859 #, c-format msgid "interpolated from ISO %d and %d" msgstr "interpolación del ISO %d y %d" -#: ../src/iop/denoiseprofile.c:3719 +#: ../src/iop/denoiseprofile.c:3723 msgid "Y0" msgstr "Y0" -#: ../src/iop/denoiseprofile.c:3720 +#: ../src/iop/denoiseprofile.c:3724 msgid "U0V0" msgstr "U0V0" -#: ../src/iop/denoiseprofile.c:3760 +#: ../src/iop/denoiseprofile.c:3764 msgid "" "use only with a perfectly\n" "uniform image if you want to\n" @@ -15829,36 +16403,36 @@ "uniforme si desea estimar \n" "la varianza del ruido." -#: ../src/iop/denoiseprofile.c:3766 +#: ../src/iop/denoiseprofile.c:3770 msgid "variance red: " msgstr "varianza del rojo: " -#: ../src/iop/denoiseprofile.c:3770 +#: ../src/iop/denoiseprofile.c:3774 msgid "variance computed on the red channel" msgstr "Varianza calculada para el canal rojo" -#: ../src/iop/denoiseprofile.c:3775 +#: ../src/iop/denoiseprofile.c:3779 msgid "variance green: " msgstr "varianza del verde: " -#: ../src/iop/denoiseprofile.c:3779 +#: ../src/iop/denoiseprofile.c:3783 msgid "variance computed on the green channel" msgstr "Varianza calculada para el canal verde" -#: ../src/iop/denoiseprofile.c:3784 +#: ../src/iop/denoiseprofile.c:3788 msgid "variance blue: " msgstr "varianza del azul: " -#: ../src/iop/denoiseprofile.c:3788 +#: ../src/iop/denoiseprofile.c:3792 msgid "variance computed on the blue channel" msgstr "Varianza calculada para el canal azul" -#: ../src/iop/denoiseprofile.c:3799 ../src/libs/export.c:1208 +#: ../src/iop/denoiseprofile.c:3803 ../src/libs/export.c:1320 #: ../src/libs/print_settings.c:2418 ../src/libs/print_settings.c:2774 msgid "profile" msgstr "perfil" -#: ../src/iop/denoiseprofile.c:3833 +#: ../src/iop/denoiseprofile.c:3837 msgid "" "adapt denoising according to the\n" "white balance coefficients.\n" @@ -15874,7 +16448,7 @@ "Deshabilitar si en un módulo previo del mismo\n" "se ha utilizado con el modo de fusión de color." -#: ../src/iop/denoiseprofile.c:3840 +#: ../src/iop/denoiseprofile.c:3844 msgid "" "fix bugs in Anscombe transform resulting\n" "in undersmoothing of the green channel in\n" @@ -15896,11 +16470,11 @@ "Habilitar esta opción cambiará la eliminación de ruido que se tiene.\n" "Una vez habilitado, no podrá volver al algoritmo anterior." -#: ../src/iop/denoiseprofile.c:3850 +#: ../src/iop/denoiseprofile.c:3854 msgid "profile used for variance stabilization" msgstr "Perfil utilizado para estabilizar la varianza" -#: ../src/iop/denoiseprofile.c:3852 +#: ../src/iop/denoiseprofile.c:3856 msgid "" "method used in the denoising core.\n" "non-local means works best for `lightness' blending,\n" @@ -15910,7 +16484,7 @@ "El método medias no locales funciona mejor para la mezcla de luminosidad y\n" "el de ondículas funciona mejor para la mezcla de color." -#: ../src/iop/denoiseprofile.c:3856 +#: ../src/iop/denoiseprofile.c:3860 msgid "" "color representation used within the algorithm.\n" "RGB keeps the RGB channels separated,\n" @@ -15922,7 +16496,7 @@ "mientras que Y0U0V0 combina los canales para\n" "reducir el ruido de croma y luma por separado." -#: ../src/iop/denoiseprofile.c:3861 +#: ../src/iop/denoiseprofile.c:3865 msgid "" "radius of the patches to match.\n" "increase for more sharpness on strong edges, and better denoising of smooth " @@ -15936,7 +16510,7 @@ "Si los detalles están demasiado suavizados, reduzca este valor o aumente el " "peso del pixel central." -#: ../src/iop/denoiseprofile.c:3867 +#: ../src/iop/denoiseprofile.c:3871 msgid "" "emergency use only: radius of the neighborhood to search patches in. " "increase for better denoising performance, but watch the long runtimes! " @@ -15947,7 +16521,7 @@ "en la eliminación de ruido a costa de un mayor tiempo de ejecución. " "Advertencia: los radios grandes pueden ser bastante lentos." -#: ../src/iop/denoiseprofile.c:3873 +#: ../src/iop/denoiseprofile.c:3877 msgid "" "scattering of the neighborhood to search patches in.\n" "increase for better coarse-grain noise reduction.\n" @@ -15957,7 +16531,7 @@ "Aumentar para mejorar la reducción de ruido de grano grueso.\n" "No afecta al tiempo de ejecución." -#: ../src/iop/denoiseprofile.c:3877 +#: ../src/iop/denoiseprofile.c:3881 msgid "" "increase the weight of the central pixel\n" "of the patch in the patch comparison.\n" @@ -15969,11 +16543,11 @@ "Útil para recuperar detalles cuando el tamaño del parche\n" "es bastante grande." -#: ../src/iop/denoiseprofile.c:3881 +#: ../src/iop/denoiseprofile.c:3885 msgid "finetune denoising strength" msgstr "Intensidad de la corrección para reducir el ruido" -#: ../src/iop/denoiseprofile.c:3883 +#: ../src/iop/denoiseprofile.c:3887 msgid "" "controls the way parameters are autoset\n" "increase if shadows are not denoised enough\n" @@ -15985,7 +16559,7 @@ "o si queda ruido de croma.\n" "Podría suceder si la imagen está subexpuesta." -#: ../src/iop/denoiseprofile.c:3888 +#: ../src/iop/denoiseprofile.c:3892 msgid "" "finetune shadows denoising.\n" "decrease to denoise more aggressively\n" @@ -15995,7 +16569,7 @@ "Disminuir para intensificar la reducción de ruido en\n" "las áreas oscuras de la imagen." -#: ../src/iop/denoiseprofile.c:3892 +#: ../src/iop/denoiseprofile.c:3896 msgid "" "correct color cast in shadows.\n" "decrease if shadows are too purple.\n" @@ -16005,7 +16579,7 @@ "Disminuir si las sombras son demasiado púrpuras.\n" "Aumentar si las sombras son demasiado verdes." -#: ../src/iop/denoiseprofile.c:3896 +#: ../src/iop/denoiseprofile.c:3900 msgid "" "upgrade the variance stabilizing algorithm.\n" "new algorithm extends the current one.\n" @@ -16039,68 +16613,68 @@ "reducir el desenfoque por el método de deconvolución ciega." #. deblurring presets -#: ../src/iop/diffuse.c:219 +#: ../src/iop/diffuse.c:246 msgid "lens deblur: soft" msgstr "nitidez de lente: sutil" -#: ../src/iop/diffuse.c:244 +#: ../src/iop/diffuse.c:271 msgid "lens deblur: medium" msgstr "nitidez de lente: moderado" -#: ../src/iop/diffuse.c:269 +#: ../src/iop/diffuse.c:296 msgid "lens deblur: hard" msgstr "nitidez de lente: notable" -#: ../src/iop/diffuse.c:295 +#: ../src/iop/diffuse.c:322 msgid "dehaze" msgstr "eliminar neblina" -#: ../src/iop/diffuse.c:321 +#: ../src/iop/diffuse.c:348 msgid "denoise: fine" msgstr "reducción de ruido: tenue" -#: ../src/iop/diffuse.c:346 +#: ../src/iop/diffuse.c:373 msgid "denoise: medium" msgstr "reducción de ruido: moderado" -#: ../src/iop/diffuse.c:371 +#: ../src/iop/diffuse.c:398 msgid "denoise: coarse" msgstr "reducción de ruido: intenso" -#: ../src/iop/diffuse.c:446 +#: ../src/iop/diffuse.c:473 msgid "sharpen demosaicing: no AA filter" msgstr "nitidez con interpolación cromática: sin filtro antiplegamiento" -#: ../src/iop/diffuse.c:472 +#: ../src/iop/diffuse.c:499 msgid "sharpen demosaicing: AA filter" msgstr "nitidez con interpolación cromática: con filtro antiplegamiento" -#: ../src/iop/diffuse.c:499 +#: ../src/iop/diffuse.c:526 msgid "simulate watercolor" msgstr "imitar a la acuarela" -#: ../src/iop/diffuse.c:524 +#: ../src/iop/diffuse.c:551 msgid "simulate line drawing" msgstr "imitar al dibujo con líneas" -#: ../src/iop/diffuse.c:576 +#: ../src/iop/diffuse.c:603 msgid "inpaint highlights" msgstr "reconstrucción de luces" #. fast presets for slow hardware -#: ../src/iop/diffuse.c:603 +#: ../src/iop/diffuse.c:630 msgid "sharpness: fast" msgstr "enfoque: acelerado" -#: ../src/iop/diffuse.c:655 +#: ../src/iop/diffuse.c:682 msgid "sharpness: strong" msgstr "enfoque: marcado" -#: ../src/iop/diffuse.c:680 +#: ../src/iop/diffuse.c:707 msgid "local contrast: fast" msgstr "contraste local: acelerado" -#: ../src/iop/diffuse.c:1391 ../src/iop/diffuse.c:1666 +#: ../src/iop/diffuse.c:1418 ../src/iop/diffuse.c:1693 msgid "diffuse/sharpen failed to allocate memory, check your RAM settings" msgstr "" "El módulo difuso/nítido no pudo reservar memoria, verifique la configuración " @@ -16108,13 +16682,13 @@ #. Additional parameters #. Camera settings -#: ../src/iop/diffuse.c:1782 ../src/iop/splittoning.c:537 +#: ../src/iop/diffuse.c:1797 ../src/iop/splittoning.c:533 #: ../src/libs/camera.c:486 msgctxt "section" msgid "properties" msgstr "propiedades" -#: ../src/iop/diffuse.c:1788 +#: ../src/iop/diffuse.c:1803 msgid "" "more iterations make the effect stronger but the module slower.\n" "this is analogous to giving more time to the diffusion reaction.\n" @@ -16127,7 +16701,7 @@ "Si la intención es aumentar la nitidez o reconstruir,\n" " se recomienda un mayor número iteraciones." -#: ../src/iop/diffuse.c:1797 +#: ../src/iop/diffuse.c:1812 msgid "" "main scale of the diffusion.\n" "zero makes diffusion act on the finest details more heavily.\n" @@ -16143,7 +16717,7 @@ "Para el desenfoque y la eliminación de ruido, se ajusta a cero.\n" "Incremente para actuar sobre el contraste local." -#: ../src/iop/diffuse.c:1807 +#: ../src/iop/diffuse.c:1822 msgid "" "width of the diffusion around the central radius.\n" "high values diffuse on a large band of radii.\n" @@ -16157,12 +16731,12 @@ "Si se va a eliminar el desenfoque,\n" "el radio debe ser aproximadamente la extensión del desenfoque de la lente." -#: ../src/iop/diffuse.c:1814 +#: ../src/iop/diffuse.c:1829 msgctxt "section" msgid "speed (sharpen ↔ diffuse)" msgstr "velocidad (nítido ↔ difuso)" -#: ../src/iop/diffuse.c:1821 +#: ../src/iop/diffuse.c:1836 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 1st order anisotropy (set below).\n" @@ -16178,7 +16752,7 @@ "Los valores positivos aumentan la dispersión y el desenfoque.\n" "El valor cero no tiene efecto." -#: ../src/iop/diffuse.c:1831 +#: ../src/iop/diffuse.c:1846 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 2nd order anisotropy (set below).\n" @@ -16194,7 +16768,7 @@ "Los valores positivos aumentan la dispersión y el desenfoque.\n" "El valor cero no tiene efecto." -#: ../src/iop/diffuse.c:1841 +#: ../src/iop/diffuse.c:1856 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 3rd order anisotropy (set below).\n" @@ -16210,7 +16784,7 @@ "Los valores positivos aumentan la dispersión y el desenfoque.\n" "El valor cero no tiene efecto." -#: ../src/iop/diffuse.c:1851 +#: ../src/iop/diffuse.c:1866 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 4th order anisotropy (set below).\n" @@ -16226,12 +16800,12 @@ "Los valores positivos aumentan la dispersión y el desenfoque.\n" "El valor cero no tiene efecto." -#: ../src/iop/diffuse.c:1857 +#: ../src/iop/diffuse.c:1872 msgctxt "section" msgid "direction" msgstr "dirección" -#: ../src/iop/diffuse.c:1864 +#: ../src/iop/diffuse.c:1879 msgid "" "direction of 1st order speed (set above).\n" "\n" @@ -16247,7 +16821,7 @@ "El valor cero hace que la dispersión sea igual en todas las direcciones " "(isotrópica)." -#: ../src/iop/diffuse.c:1873 +#: ../src/iop/diffuse.c:1888 msgid "" "direction of 2nd order speed (set above).\n" "\n" @@ -16263,7 +16837,7 @@ "El valor cero hace que la dispersión sea igual en todas las direcciones " "(isotrópica)." -#: ../src/iop/diffuse.c:1882 +#: ../src/iop/diffuse.c:1897 msgid "" "direction of 3rd order speed (set above).\n" "\n" @@ -16279,7 +16853,7 @@ "El valor cero hace que la dispersión sea igual en todas las direcciones " "(isotrópica)." -#: ../src/iop/diffuse.c:1891 +#: ../src/iop/diffuse.c:1906 msgid "" "direction of 4th order speed (set above).\n" "\n" @@ -16295,12 +16869,12 @@ "El valor cero hace que la dispersión sea igual en todas las direcciones " "(isotrópica)." -#: ../src/iop/diffuse.c:1897 +#: ../src/iop/diffuse.c:1912 msgctxt "section" msgid "edge management" msgstr "configuración de los bordes" -#: ../src/iop/diffuse.c:1904 +#: ../src/iop/diffuse.c:1919 msgid "" "increase or decrease the sharpness of the highest frequencies.\n" "can be used to keep details after blooming,\n" @@ -16310,7 +16884,7 @@ "Puede utilizarse para mantener los detalles después del resplandor.\n" "Para una nitidez autónoma, configure la velocidad con valores negativos." -#: ../src/iop/diffuse.c:1911 +#: ../src/iop/diffuse.c:1926 msgid "" "define the sensitivity of the variance penalty for edges.\n" "increase to exclude more edges from diffusion,\n" @@ -16320,7 +16894,7 @@ "Aumentar para excluir más bordes de la dispersión\n" "cuando se produzcan franjas de color o halos." -#: ../src/iop/diffuse.c:1918 +#: ../src/iop/diffuse.c:1933 msgid "" "define the variance threshold between edge amplification and penalty.\n" "decrease if you want pixels on smooth surfaces get a boost,\n" @@ -16332,12 +16906,12 @@ "Aumente si se produce ruido en las superficies lisas o si las zonas oscuras\n" "aparecen sobreenfocadas en comparación con las zonas claras." -#: ../src/iop/diffuse.c:1924 +#: ../src/iop/diffuse.c:1939 msgctxt "section" msgid "diffusion spatiality" msgstr "extensión espacial" -#: ../src/iop/diffuse.c:1931 +#: ../src/iop/diffuse.c:1946 msgid "" "luminance threshold for the mask.\n" "0. disables the luminance masking and applies the module on the whole " @@ -16357,8 +16931,8 @@ msgstr "tramado o posterizado" #: ../src/iop/dither.c:112 -msgid "dithering|posterization|reduce bit-depth" -msgstr "tramado|posterización|reducir profundidad de bit" +msgid "dithering|posterization|reduce bit depth" +msgstr "tramado|posterización|reducción de profundidad de bit" #: ../src/iop/dither.c:117 msgid "" @@ -16374,23 +16948,23 @@ msgstr "Correctivo y creativo" #. add the preset. -#: ../src/iop/dither.c:147 +#: ../src/iop/dither.c:149 msgid "dither" msgstr "trama" -#: ../src/iop/dither.c:759 +#: ../src/iop/dither.c:761 msgid "radius for blurring step" msgstr "Radio para un paso de desenfoque" -#: ../src/iop/dither.c:771 +#: ../src/iop/dither.c:773 msgid "the gradient range where to apply random dither" msgstr "Rango de gradiente donde se aplica el tramado aleatorio" -#: ../src/iop/dither.c:772 +#: ../src/iop/dither.c:774 msgid "gradient range" msgstr "rango de gradiente" -#: ../src/iop/dither.c:780 +#: ../src/iop/dither.c:782 msgid "damping level of random dither" msgstr "Nivel de atenuación del tramado aleatorio" @@ -16398,14 +16972,14 @@ msgid "legacy equalizer" msgstr "ecualizador (antiguo)" -#: ../src/iop/equalizer.c:110 +#: ../src/iop/equalizer.c:112 msgid "" "this module is deprecated. better use contrast equalizer module instead." msgstr "" "Este módulo ha quedado sin soporte. Se recomienda sustituirlo por el módulo " "ecualizador de contraste." -#: ../src/iop/equalizer.c:238 +#: ../src/iop/equalizer.c:240 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -16423,33 +16997,33 @@ "Cambia la exposición de la imagen usando un brillo sin afectar el color,\n" "similar a la configuración de ISO de la cámara" -#: ../src/iop/exposure.c:279 +#: ../src/iop/exposure.c:301 msgid "magic lantern defaults" msgstr "parámetros de la linterna mágica" -#: ../src/iop/exposure.c:351 ../src/iop/rawoverexposed.c:135 -#: ../src/iop/rawoverexposed.c:254 +#: ../src/iop/exposure.c:373 ../src/iop/rawoverexposed.c:137 +#: ../src/iop/rawoverexposed.c:256 #, c-format msgid "failed to get raw buffer from image `%s'" msgstr "No se pudo obtener el búfer en bruto de la imagen «%s»" -#: ../src/iop/exposure.c:629 +#: ../src/iop/exposure.c:647 #, no-c-format msgid "compensate camera exposure (%+.1f EV)" msgstr "compensar la exposición (%+.1f EV)" #. Write report in GUI -#: ../src/iop/exposure.c:813 +#: ../src/iop/exposure.c:831 #, c-format msgid "L : \t%.1f %%" msgstr "L : \t%.1f %%" -#: ../src/iop/exposure.c:945 ../src/libs/history.c:953 +#: ../src/iop/exposure.c:963 ../src/libs/history.c:953 #, c-format msgid "%.2f EV" msgstr "%.2f EV" -#: ../src/iop/exposure.c:1113 +#: ../src/iop/exposure.c:1131 msgid "" "automatically remove the camera exposure bias\n" "this is useful if you exposed the image to the right." @@ -16457,29 +17031,31 @@ "Elimina automáticamente el sesgo de exposición de la cámara.\n" "Es conveniente cuando la imagen se ha expuesto a la derecha." -#: ../src/iop/exposure.c:1132 +#: ../src/iop/exposure.c:1150 #, no-c-format msgid "where in the histogram to meter for deflicking. E.g. 50% is median" msgstr "" -"Punto en donde se medirá el histograma para eliminar el parpadeo (Ejemplo: " -"el 50% es mediano)" +"Determina la posición en el histograma que se utilizará para la compensación " +"automática de la exposición\n" +"(útil para ajustar la misma exposición en un conjunto de imágenes). Ejemplo: " +"el 50% es la mediana." -#: ../src/iop/exposure.c:1138 +#: ../src/iop/exposure.c:1156 msgid "" "where to place the exposure level for processed pics, EV below overexposure." msgstr "" -"El lugar del nivel de exposición en las fotos procesadas, debajo de la " -"sobreexposición EV." +"Establece el valor de exposición EV de referencia en relación al punto " +"blanco de la cámara." -#: ../src/iop/exposure.c:1142 +#: ../src/iop/exposure.c:1160 msgid "computed EC: " msgstr "compensación de exposición calculada: " -#: ../src/iop/exposure.c:1145 +#: ../src/iop/exposure.c:1163 msgid "what exposure correction has actually been used" msgstr "Las correcciones de exposición que se han utilizado realmente" -#: ../src/iop/exposure.c:1164 +#: ../src/iop/exposure.c:1182 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -16491,11 +17067,11 @@ "Si está mal configurado, recortará los colores casi negros de la gama \n" "empujando los valores RGB a negativos." -#: ../src/iop/exposure.c:1174 -msgid "spot exposure mapping" -msgstr "mapeo de la exposición puntual" +#: ../src/iop/exposure.c:1192 +msgid "area exposure mapping" +msgstr "mapeo de exposición por área" -#: ../src/iop/exposure.c:1180 +#: ../src/iop/exposure.c:1198 msgid "" "define a target brightness, in terms of exposure,\n" "for a selected region of the image (the control sample),\n" @@ -16513,7 +17089,7 @@ "de una superficie fija con iluminación constante a lo largo de la serie de " "imágenes." -#: ../src/iop/exposure.c:1189 +#: ../src/iop/exposure.c:1207 msgid "" "\"correction\" automatically adjust exposure\n" "such that the input lightness is mapped to the target.\n" @@ -16521,16 +17097,16 @@ "the exposure compensation and can be used to define a target." msgstr "" "La opción «corrección» ajusta automáticamente la exposición\n" -"de tal manera que la luminosidad de entrada coincida con en el destino.\n" +"de tal manera que la luminosidad de entrada coincida con la del destino.\n" "La opción «medición» simplemente presenta cómo un color de entrada es " "adaptado por el TAC\n" "y que pueda utilizarse para un muestreo de objetivo." -#: ../src/iop/exposure.c:1215 +#: ../src/iop/exposure.c:1233 msgid "L : \tN/A" msgstr "L : \tno corresponde" -#: ../src/iop/exposure.c:1233 +#: ../src/iop/exposure.c:1251 msgid "the desired target exposure after mapping" msgstr "La exposición del objetivo deseada después del mapeo" @@ -16540,54 +17116,54 @@ "Este módulo ha quedado sin soporte. Se recomienda sustituirlo por el módulo " "película rgb." -#: ../src/iop/filmic.c:304 +#: ../src/iop/filmic.c:333 msgid "09 EV (low-key)" msgstr "09 EV (clave baja)" -#: ../src/iop/filmic.c:312 +#: ../src/iop/filmic.c:341 msgid "10 EV (indoors)" msgstr "10 EV (interiores)" -#: ../src/iop/filmic.c:320 +#: ../src/iop/filmic.c:349 msgid "11 EV (dim outdoors)" msgstr "11 EV (atenuación en exteriores)" -#: ../src/iop/filmic.c:328 +#: ../src/iop/filmic.c:357 msgid "12 EV (outdoors)" msgstr "12 EV (exteriores)" -#: ../src/iop/filmic.c:336 +#: ../src/iop/filmic.c:365 msgid "13 EV (bright outdoors)" msgstr "13 EV (exteriores luminosos)" -#: ../src/iop/filmic.c:344 +#: ../src/iop/filmic.c:373 msgid "14 EV (backlighting)" msgstr "14 EV (retroiluminación)" -#: ../src/iop/filmic.c:352 +#: ../src/iop/filmic.c:381 msgid "15 EV (sunset)" msgstr "15 EV (puesta de sol)" -#: ../src/iop/filmic.c:360 +#: ../src/iop/filmic.c:389 msgid "16 EV (HDR)" msgstr "16 EV (HDR)" -#: ../src/iop/filmic.c:368 +#: ../src/iop/filmic.c:397 msgid "18 EV (HDR++)" msgstr "18 EV (HDR++)" -#: ../src/iop/filmic.c:1480 +#: ../src/iop/filmic.c:1505 msgid "read-only graph, use the parameters below to set the nodes" msgstr "" "Gráfico de solo lectura, utilice los siguientes parámetros para configurar " "los nodos" -#: ../src/iop/filmic.c:1484 +#: ../src/iop/filmic.c:1509 msgctxt "section" msgid "logarithmic shaper" msgstr "modelador logarítmico" -#: ../src/iop/filmic.c:1492 +#: ../src/iop/filmic.c:1517 msgid "" "adjust to match the average luminance of the subject.\n" "except in back-lighting situations, this should be around 18%." @@ -16596,7 +17172,7 @@ "Excepto en situaciones de retroiluminación, esto debería ser alrededor del " "18%." -#: ../src/iop/filmic.c:1504 ../src/iop/filmicrgb.c:4442 +#: ../src/iop/filmic.c:1529 ../src/iop/filmicrgb.c:4506 msgid "" "number of stops between middle gray and pure white.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16606,7 +17182,7 @@ "Es la lectura que un exposímetro mostraría en la escena.\n" "Ajustarlo para evitar el recorte de luces." -#: ../src/iop/filmic.c:1517 ../src/iop/filmicrgb.c:4453 +#: ../src/iop/filmic.c:1542 ../src/iop/filmicrgb.c:4517 msgid "" "number of stops between middle gray and pure black.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16618,20 +17194,20 @@ "Aumentar para obtener más contraste.\n" "Disminuir para recuperar más detalles en condiciones de poca luz." -#: ../src/iop/filmic.c:1529 +#: ../src/iop/filmic.c:1554 msgid "" -"enlarge or shrink the computed dynamic range.\n" +"increase or decrease the computed dynamic range.\n" "useful in conjunction with \"auto tune levels\"." msgstr "" "Aumentar o reducir el rango dinámico calculado.\n" "Útil en combinación con \"niveles automáticos\"." -#: ../src/iop/filmic.c:1535 ../src/iop/filmicrgb.c:4467 -#: ../src/iop/profile_gamma.c:659 +#: ../src/iop/filmic.c:1560 ../src/iop/filmicrgb.c:4531 +#: ../src/iop/profile_gamma.c:673 msgid "auto tune levels" msgstr "niveles automáticos" -#: ../src/iop/filmic.c:1538 +#: ../src/iop/filmic.c:1563 msgid "" "try to optimize the settings with some guessing.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16643,12 +17219,12 @@ "Funciona mejor para paisajes y fotos uniformemente iluminadas\n" "pero falla en las clave alta y clave baja." -#: ../src/iop/filmic.c:1543 +#: ../src/iop/filmic.c:1568 msgctxt "section" msgid "filmic S curve" msgstr "curva S de película" -#: ../src/iop/filmic.c:1550 ../src/iop/filmicrgb.c:4554 +#: ../src/iop/filmic.c:1575 ../src/iop/filmicrgb.c:4618 msgid "" "slope of the linear part of the curve\n" "affects mostly the mid-tones" @@ -16657,12 +17233,12 @@ "Afecta sobre todo a los tonos medios" #. geotagging -#: ../src/iop/filmic.c:1557 ../src/iop/filmicrgb.c:4563 -#: ../src/libs/metadata_view.c:157 +#: ../src/iop/filmic.c:1582 ../src/iop/filmicrgb.c:4627 +#: ../src/libs/metadata_view.c:161 msgid "latitude" msgstr "latitud" -#: ../src/iop/filmic.c:1560 +#: ../src/iop/filmic.c:1585 msgid "" "width of the linear domain in the middle of the curve.\n" "increase to get more contrast at the extreme luminances.\n" @@ -16672,11 +17248,11 @@ "Para obtener más contraste en las luminancias extremas.\n" "No tiene efecto en los tonos medios." -#: ../src/iop/filmic.c:1567 +#: ../src/iop/filmic.c:1592 msgid "shadows/highlights balance" msgstr "equilibrio entre sombras y luces" -#: ../src/iop/filmic.c:1570 ../src/iop/filmicrgb.c:4574 +#: ../src/iop/filmic.c:1595 ../src/iop/filmicrgb.c:4638 msgid "" "slides the latitude along the slope\n" "to give more room to shadows or highlights.\n" @@ -16688,7 +17264,7 @@ "Usarlo en caso de querer proteger los detalles \n" "en un extremo del histograma." -#: ../src/iop/filmic.c:1580 +#: ../src/iop/filmic.c:1605 msgid "" "desaturates the input of the module globally.\n" "you need to set this value below 100%\n" @@ -16698,7 +17274,7 @@ "Es necesario establecer este valor por debajo del 100% \n" "si la preservación de la crominancia está habilitada." -#: ../src/iop/filmic.c:1590 +#: ../src/iop/filmic.c:1615 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16709,42 +17285,42 @@ "Disminuir si las sombras o las luces o ambas están sobresaturadas." #. Add export intent combo -#: ../src/iop/filmic.c:1600 ../src/libs/export.c:1227 +#: ../src/iop/filmic.c:1625 ../src/libs/export.c:1339 #: ../src/libs/print_settings.c:2473 ../src/libs/print_settings.c:2820 -#: ../src/views/darkroom.c:2524 ../src/views/lighttable.c:1182 +#: ../src/views/darkroom.c:2365 ../src/views/lighttable.c:1182 msgid "intent" msgstr "propósito" -#: ../src/iop/filmic.c:1601 +#: ../src/iop/filmic.c:1626 msgid "contrasted" msgstr "contrastado" #. cubic spline -#: ../src/iop/filmic.c:1602 +#: ../src/iop/filmic.c:1627 msgid "faded" msgstr "difuminado" #. centripetal spline -#: ../src/iop/filmic.c:1603 ../src/iop/profile_gamma.c:621 +#: ../src/iop/filmic.c:1628 ../src/iop/profile_gamma.c:635 msgid "linear" msgstr "lineal" #. monotonic spline -#: ../src/iop/filmic.c:1604 +#: ../src/iop/filmic.c:1629 msgid "optimized" msgstr "optimizado" -#: ../src/iop/filmic.c:1606 +#: ../src/iop/filmic.c:1631 msgid "change this method if you see reversed contrast or faded blacks" msgstr "" "Cambiar el método si aparecen contrastes invertidos o negros difuminados" #. Preserve color -#: ../src/iop/filmic.c:1610 +#: ../src/iop/filmic.c:1635 msgid "preserve the chrominance" msgstr "preservar la crominancia" -#: ../src/iop/filmic.c:1612 +#: ../src/iop/filmic.c:1637 msgid "" "ensure the original color are preserved.\n" "may reinforce chromatic aberrations.\n" @@ -16754,12 +17330,12 @@ "Puede acentuar las aberraciones cromáticas. \n" "Es necesario ajustar manualmente la saturación cuando se utiliza este modo." -#: ../src/iop/filmic.c:1622 +#: ../src/iop/filmic.c:1647 msgctxt "section" msgid "destination/display" msgstr "destino/visualización" -#: ../src/iop/filmic.c:1640 ../src/iop/filmicrgb.c:4593 +#: ../src/iop/filmic.c:1665 ../src/iop/filmicrgb.c:4657 msgid "" "luminance of output pure black, this should be 0%\n" "except if you want a faded look" @@ -16767,7 +17343,7 @@ "La luminancia de salida negro puro, debería ser del 0%\n" "excepto si se desea lograr un aspecto difuminado" -#: ../src/iop/filmic.c:1649 ../src/iop/filmicrgb.c:4600 +#: ../src/iop/filmic.c:1674 ../src/iop/filmicrgb.c:4664 msgid "" "middle gray value of the target display or color space.\n" "you should never touch that unless you know what you are doing." @@ -16775,7 +17351,7 @@ "Valor gris medio de la pantalla de destino o espacio de color.\n" "Evitar modificarlo (a no ser que se sepa lo que se está haciendo)." -#: ../src/iop/filmic.c:1658 ../src/iop/filmicrgb.c:4607 +#: ../src/iop/filmic.c:1683 ../src/iop/filmicrgb.c:4671 msgid "" "luminance of output pure white, this should be 100%\n" "except if you want a faded look" @@ -16783,11 +17359,11 @@ "La luminancia de salida blanco puro debería ser del 100%\n" "excepto si se desea lograr un aspecto difuminado" -#: ../src/iop/filmic.c:1664 +#: ../src/iop/filmic.c:1689 msgid "target gamma" msgstr "gamma destino" -#: ../src/iop/filmic.c:1666 +#: ../src/iop/filmic.c:1691 msgid "" "power or gamma of the transfer function\n" "of the display or color space.\n" @@ -16816,7 +17392,7 @@ "recortes en sombras y luces, para mostrarse en pantallas con Rango Dinámico " "Estándar (SDR) o para impresión" -#: ../src/iop/filmicrgb.c:1310 +#: ../src/iop/filmicrgb.c:1365 msgid "" "filmic highlights reconstruction failed to allocate memory, check your RAM " "settings" @@ -16824,73 +17400,73 @@ "Hubo un fallo en reconstrucción de luces en película al reservar memoria, " "verifique la configuración de la RAM" -#: ../src/iop/filmicrgb.c:2301 +#: ../src/iop/filmicrgb.c:2369 msgid "filmic highlights reconstruction failed to allocate memory on GPU" msgstr "" "Hubo un fallo en reconstrucción de luces en película al reservar memoria en " "la GPU." -#: ../src/iop/filmicrgb.c:2419 +#: ../src/iop/filmicrgb.c:2487 msgid "filmic works only on RGB input" msgstr "Película sólo trabaja con una entrada RGB" -#: ../src/iop/filmicrgb.c:3484 +#: ../src/iop/filmicrgb.c:3548 msgid "look only" msgstr "vista general" -#: ../src/iop/filmicrgb.c:3486 +#: ../src/iop/filmicrgb.c:3550 msgid "look + mapping (lin)" msgstr "vista + mapeo (lin)" -#: ../src/iop/filmicrgb.c:3488 +#: ../src/iop/filmicrgb.c:3552 msgid "look + mapping (log)" msgstr "vista + mapeo (log)" -#: ../src/iop/filmicrgb.c:3490 +#: ../src/iop/filmicrgb.c:3554 msgid "dynamic range mapping" msgstr "mapeo del rango dinámico" -#: ../src/iop/filmicrgb.c:3857 +#: ../src/iop/filmicrgb.c:3921 #, c-format msgid "(%.0f %%)" msgstr "(%.0f %%)" -#: ../src/iop/filmicrgb.c:3873 +#: ../src/iop/filmicrgb.c:3937 #, no-c-format msgid "% display" msgstr "% de visualización" -#: ../src/iop/filmicrgb.c:3885 +#: ../src/iop/filmicrgb.c:3949 msgid "EV scene" msgstr "EV de escena " -#: ../src/iop/filmicrgb.c:3889 +#: ../src/iop/filmicrgb.c:3953 #, no-c-format msgid "% camera" msgstr "% en cámara" #. Page DISPLAY -#: ../src/iop/filmicrgb.c:3925 ../src/iop/filmicrgb.c:4587 +#: ../src/iop/filmicrgb.c:3989 ../src/iop/filmicrgb.c:4651 msgid "display" msgstr "pantalla" #. axis legend -#: ../src/iop/filmicrgb.c:3934 +#: ../src/iop/filmicrgb.c:3998 msgid "(%)" msgstr "(%)" #. Page SCENE -#: ../src/iop/filmicrgb.c:3943 ../src/iop/filmicrgb.c:4422 +#: ../src/iop/filmicrgb.c:4007 ../src/iop/filmicrgb.c:4486 msgid "scene" msgstr "escena" #. axis legend -#: ../src/iop/filmicrgb.c:3952 +#: ../src/iop/filmicrgb.c:4016 msgid "(EV)" msgstr "(EV)" #. we are over the graph area -#: ../src/iop/filmicrgb.c:4364 +#: ../src/iop/filmicrgb.c:4428 msgid "" "use the parameters below to set the nodes.\n" "the bright curve is the filmic tone mapping curve\n" @@ -16900,11 +17476,11 @@ "La curva clara corresponde al mapeo de tono de película.\n" "La curva oscura corresponde a la saturación." -#: ../src/iop/filmicrgb.c:4370 +#: ../src/iop/filmicrgb.c:4434 msgid "toggle axis labels and values display" msgstr "Mostrar los valores y etiquetas en los ejes" -#: ../src/iop/filmicrgb.c:4374 +#: ../src/iop/filmicrgb.c:4438 msgid "" "cycle through graph views.\n" "left click: cycle forward.\n" @@ -16916,7 +17492,7 @@ "Clic secundario: hacia atrás.\n" "Pulsación doble: restablece la vista." -#: ../src/iop/filmicrgb.c:4431 +#: ../src/iop/filmicrgb.c:4495 #, no-c-format msgid "" "adjust to match the average luminance of the image's subject.\n" @@ -16928,15 +17504,15 @@ "El valor aquí ingresado se reajustará para corresponder al 18.45%.\n" "Disminuya el valor para aumentar el brillo general." -#: ../src/iop/filmicrgb.c:4461 +#: ../src/iop/filmicrgb.c:4525 msgid "" -"symmetrically enlarge or shrink the computed dynamic range.\n" +"symmetrically increase or decrease the computed dynamic range.\n" "useful to give a safety margin to extreme luminances." msgstr "" "Ampliar o reducir simétricamente el rango dinámico calculado.\n" "Es útil para dar margen de seguridad a las luminancias extremas." -#: ../src/iop/filmicrgb.c:4468 +#: ../src/iop/filmicrgb.c:4532 msgid "" "try to optimize the settings with some statistical assumptions.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16953,16 +17529,16 @@ "por lo que es importante comprender esas estimaciones antes de usarlo." #. Page RECONSTRUCT -#: ../src/iop/filmicrgb.c:4477 +#: ../src/iop/filmicrgb.c:4541 msgid "reconstruct" msgstr "reconstruir" -#: ../src/iop/filmicrgb.c:4479 +#: ../src/iop/filmicrgb.c:4543 msgctxt "section" msgid "highlights clipping" msgstr "recorte de luces" -#: ../src/iop/filmicrgb.c:4487 +#: ../src/iop/filmicrgb.c:4551 msgid "" "set the exposure threshold upon which\n" "clipped highlights get reconstructed.\n" @@ -16979,7 +17555,7 @@ "Disminuir para abarcar un área mayor.\n" "Aumentar para excluir un área mayor." -#: ../src/iop/filmicrgb.c:4497 +#: ../src/iop/filmicrgb.c:4561 msgid "" "soften the transition between clipped highlights and valid pixels.\n" "decrease to make the transition harder and sharper,\n" @@ -16989,72 +17565,72 @@ "Disminuir para hacer la transición más drástica y nítida.\n" "Aumentar para hacer la transición más suave y difuminada." -#: ../src/iop/filmicrgb.c:4503 ../src/iop/filmicrgb.c:4504 +#: ../src/iop/filmicrgb.c:4567 ../src/iop/filmicrgb.c:4568 msgid "display highlight reconstruction mask" msgstr "mostrar la máscara de reconstrucción de luces" -#: ../src/iop/filmicrgb.c:4511 +#: ../src/iop/filmicrgb.c:4575 msgctxt "section" msgid "balance" msgstr "balance" -#: ../src/iop/filmicrgb.c:4518 +#: ../src/iop/filmicrgb.c:4582 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between inpainting a smooth color gradient,\n" +"inpainting a smooth color gradient\n" "or trying to recover the textured details.\n" "0% is an equal mix of both.\n" "increase if at least one RGB channel is not clipped.\n" "decrease if all RGB channels are clipped over large areas." msgstr "" "Determina cuál estrategia de reconstrucción potenciar:\n" -"restaurando con un suave gradiente de color\n" -"o tratando de recuperar la textura en los detalles.\n" +"restaurar con un gradiente suave de color\n" +"o tratar de recuperar la textura en los detalles.\n" "El 0% es una mezcla de ambos por igual.\n" "Aumentar si al menos un canal RGB no está recortado.\n" "Disminuir si todos los canales RGB están recortados en áreas amplias." -#: ../src/iop/filmicrgb.c:4529 +#: ../src/iop/filmicrgb.c:4593 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between blooming highlights like film does,\n" +"blooming highlights like film does\n" "or trying to recover sharp details.\n" "0% is an equal mix of both.\n" "increase if you want more details.\n" "decrease if you want more blur." msgstr "" "Determina qué estrategia de reconstrucción potenciar:\n" -"aumentando el resplandor en las luces como en el cine\n" -"o tratando de recuperar la nitidez en los detalles.\n" +"aumentar el resplandor en las luces como en el cine\n" +"o tratar de recuperar la nitidez en los detalles.\n" "El 0% es una mezcla de ambos por igual.\n" "Aumentar para obtener más detalles.\n" -"Disminuir para obtener más difuminado." +"Disminuir para obtener mayor difuminado." -#: ../src/iop/filmicrgb.c:4541 +#: ../src/iop/filmicrgb.c:4605 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between recovering monochromatic highlights,\n" +"recovering monochromatic highlights\n" "or trying to recover colorful highlights.\n" "0% is an equal mix of both.\n" "increase if you want more color.\n" "decrease if you see magenta or out-of-gamut highlights." msgstr "" "Determina cuál estrategia de reconstrucción potenciar:\n" -"recuperando de las luces monocromáticas\n" +"recuperar las luces monocromáticas\n" "o tratando de recuperar luces coloridas.\n" "El 0% es una mezcla de ambos por igual.\n" "Aumentar para obtener más color.\n" "Disminuir si en las luces aparece un tono magenta o fuera de gama." #. Page LOOK -#: ../src/iop/filmicrgb.c:4549 +#: ../src/iop/filmicrgb.c:4613 msgid "look" msgstr "apariencia" -#: ../src/iop/filmicrgb.c:4559 +#: ../src/iop/filmicrgb.c:4623 msgid "" "equivalent to paper grade in analog.\n" "increase to make highlights brighter and less compressed.\n" @@ -17064,7 +17640,7 @@ "Aumentar para que las luces sean más brillantes y con menor compresión.\n" "Disminuir para apagar las luces." -#: ../src/iop/filmicrgb.c:4567 +#: ../src/iop/filmicrgb.c:4631 msgid "" "width of the linear domain in the middle of the curve,\n" "increase to get more contrast and less desaturation at extreme luminances,\n" @@ -17078,7 +17654,7 @@ "latitud.\n" "No tiene ningún efecto en los tonos medios." -#: ../src/iop/filmicrgb.c:4582 ../src/iop/filmicrgb.c:4730 +#: ../src/iop/filmicrgb.c:4646 ../src/iop/filmicrgb.c:4794 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -17089,11 +17665,11 @@ "Aumentar si las sombras o las luces les falta saturación." #. Page OPTIONS -#: ../src/iop/filmicrgb.c:4611 +#: ../src/iop/filmicrgb.c:4675 msgid "options" msgstr "opciones" -#: ../src/iop/filmicrgb.c:4616 +#: ../src/iop/filmicrgb.c:4680 msgid "" "v3 is darktable 3.0 desaturation method, same as color balance.\n" "v4 is a newer desaturation method, based on spectral purity of light." @@ -17103,7 +17679,7 @@ "La v4 es un método de desaturación más reciente, basado en la pureza " "espectral de luz." -#: ../src/iop/filmicrgb.c:4620 +#: ../src/iop/filmicrgb.c:4684 msgid "" "ensure the original colors are preserved.\n" "may reinforce chromatic aberrations and chroma noise,\n" @@ -17113,7 +17689,7 @@ "Puede acentuar el ruido de croma y las aberraciones cromáticas, \n" "por lo que se recomienda corregir mediante otros módulos." -#: ../src/iop/filmicrgb.c:4629 +#: ../src/iop/filmicrgb.c:4693 msgid "" "choose the desired curvature of the filmic spline in highlights.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -17125,7 +17701,7 @@ "tonal.\n" "suave: usa una menor curvatura que resulta en una menor compresión tonal." -#: ../src/iop/filmicrgb.c:4634 +#: ../src/iop/filmicrgb.c:4698 msgid "" "choose the desired curvature of the filmic spline in shadows.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -17137,7 +17713,7 @@ "tonal.\n" "suave: usa una menor curvatura que resulta en una menor compresión tonal." -#: ../src/iop/filmicrgb.c:4641 +#: ../src/iop/filmicrgb.c:4705 #, no-c-format msgid "" "enable to input custom middle-gray values.\n" @@ -17151,7 +17727,7 @@ "exposición.\n" "Deshabilite para usar el gris medio estándar a 18.45%." -#: ../src/iop/filmicrgb.c:4648 +#: ../src/iop/filmicrgb.c:4712 msgid "" "enable to auto-set the look hardness depending on the scene white and black " "points.\n" @@ -17163,7 +17739,7 @@ "Esto mantiene idéntico el gris medio y mejora los ajustes rápidos.\n" "Si se desea ajustar manualmente, desactive." -#: ../src/iop/filmicrgb.c:4654 +#: ../src/iop/filmicrgb.c:4718 msgid "" "run extra passes of chromaticity reconstruction.\n" "more iterations means more color propagation from neighborhood.\n" @@ -17176,7 +17752,7 @@ "haciéndose más lento a favor de producir más luces neutras.\n" "También contribuye en corregir la ocurrencia de luces magentas difíciles." -#: ../src/iop/filmicrgb.c:4661 +#: ../src/iop/filmicrgb.c:4725 msgid "" "add statistical noise in reconstructed highlights.\n" "this avoids highlights to look too smooth\n" @@ -17188,7 +17764,7 @@ "las luces pueden verse muy suavizadas.\n" "El ruido añadido hará que se mezclen con el resto de la imagen," -#: ../src/iop/filmicrgb.c:4668 +#: ../src/iop/filmicrgb.c:4732 msgid "" "choose the statistical distribution of noise.\n" "this is useful to match natural sensor noise pattern." @@ -17196,11 +17772,11 @@ "Elija una distribución de probabilidad para el ruido.\n" "Es útil para hacerlo coincidir con el patrón natural del ruido del sensor." -#: ../src/iop/filmicrgb.c:4736 +#: ../src/iop/filmicrgb.c:4800 msgid "mid-tones saturation" msgstr "saturación en los tonos medios" -#: ../src/iop/filmicrgb.c:4737 +#: ../src/iop/filmicrgb.c:4801 msgid "" "desaturates the output of the module\n" "specifically at medium luminances.\n" @@ -17210,11 +17786,11 @@ "específicamente en luminancias medias.\n" "Aumentar si a los tonos medios les falta saturación." -#: ../src/iop/filmicrgb.c:4743 +#: ../src/iop/filmicrgb.c:4807 msgid "highlights saturation mix" msgstr "combinación de saturación en las luces" -#: ../src/iop/filmicrgb.c:4744 +#: ../src/iop/filmicrgb.c:4808 msgid "" "positive values ensure saturation is kept unchanged over the whole range.\n" "negative values bleach highlights at constant hue and luminance.\n" @@ -17239,39 +17815,39 @@ msgid "flip or rotate image by step of 90 degrees" msgstr "Se espeja la imagen o se rota en múltiplos de 90 grados" -#: ../src/iop/flip.c:477 +#: ../src/iop/flip.c:475 msgid "no rotation" msgstr "sin rotación" -#: ../src/iop/flip.c:481 ../src/iop/flip.c:624 +#: ../src/iop/flip.c:479 ../src/iop/flip.c:622 msgid "flip horizontally" msgstr "Espejar la imagen horizontalmente" -#: ../src/iop/flip.c:485 ../src/iop/flip.c:628 +#: ../src/iop/flip.c:483 ../src/iop/flip.c:626 msgid "flip vertically" msgstr "Espejar la imagen verticalmente" -#: ../src/iop/flip.c:489 +#: ../src/iop/flip.c:487 msgid "rotate by -90 degrees" msgstr "rotar -90°" -#: ../src/iop/flip.c:493 +#: ../src/iop/flip.c:491 msgid "rotate by 90 degrees" msgstr "rotar 90°" -#: ../src/iop/flip.c:497 +#: ../src/iop/flip.c:495 msgid "rotate by 180 degrees" msgstr "rotar 180°" -#: ../src/iop/flip.c:612 +#: ../src/iop/flip.c:610 msgid "transform" msgstr "modificar" -#: ../src/iop/flip.c:616 ../src/libs/live_view.c:293 +#: ../src/iop/flip.c:614 ../src/libs/live_view.c:293 msgid "rotate 90 degrees CCW" msgstr "Rotar 90° la imagen en sentido antihorario" -#: ../src/iop/flip.c:620 ../src/libs/live_view.c:294 +#: ../src/iop/flip.c:618 ../src/libs/live_view.c:294 msgid "rotate 90 degrees CW" msgstr "Rotar 90° la imagen en sentido horario" @@ -17290,15 +17866,15 @@ "Este módulo ha quedado sin soporte. Se recomienda sustituirlo por el módulo " "película rgb." -#: ../src/iop/globaltonemap.c:625 ../src/libs/filters/colors.c:259 +#: ../src/iop/globaltonemap.c:658 ../src/libs/filters/colors.c:259 msgid "operator" msgstr "operador" -#: ../src/iop/globaltonemap.c:626 +#: ../src/iop/globaltonemap.c:659 msgid "the global tonemap operator" msgstr "Operador general de mapeo tonal" -#: ../src/iop/globaltonemap.c:629 +#: ../src/iop/globaltonemap.c:662 msgid "" "the bias for tonemapper controls the linearity, the higher the more details " "in blacks" @@ -17306,7 +17882,7 @@ "El sesgo del mapeo tonal controla la linealidad: cuanto mayor sea, más " "detalles en los negros tendrá" -#: ../src/iop/globaltonemap.c:633 +#: ../src/iop/globaltonemap.c:666 msgid "the target light for tonemapper specified as cd/m2" msgstr "La luz destino para el mapeo tonal se especifica como cd/m²" @@ -17370,11 +17946,11 @@ msgid "simulate an optical graduated neutral density filter" msgstr "Simula un filtro de densidad neutra graduada" -#: ../src/iop/graduatednd.c:1114 +#: ../src/iop/graduatednd.c:1083 msgid "the density in EV for the filter" msgstr "La densidad del filtro en EV" -#: ../src/iop/graduatednd.c:1119 +#: ../src/iop/graduatednd.c:1088 #, no-c-format msgid "" "hardness of graduation:\n" @@ -17383,55 +17959,55 @@ "Transición de la gradación:\n" "0% = suave, 100% = intensa" -#: ../src/iop/graduatednd.c:1123 +#: ../src/iop/graduatednd.c:1092 msgid "rotation of filter -180 to 180 degrees" msgstr "Rotación del filtro de -180 a 180 grados" -#: ../src/iop/graduatednd.c:1136 +#: ../src/iop/graduatednd.c:1105 msgid "select the hue tone of filter" msgstr "Seleccionar el tono del filtro" -#: ../src/iop/graduatednd.c:1142 +#: ../src/iop/graduatednd.c:1111 msgid "select the saturation of filter" msgstr "Seleccionar la saturación del filtro" -#: ../src/iop/graduatednd.c:1153 +#: ../src/iop/graduatednd.c:1122 #, c-format msgid "[%s on nodes] change line rotation" msgstr "[%s en nodos] cambiar la rotación de la línea" -#: ../src/iop/graduatednd.c:1154 +#: ../src/iop/graduatednd.c:1123 #, c-format msgid "[%s on line] move line" msgstr "[%s sobre la línea] mover línea" -#: ../src/iop/graduatednd.c:1156 +#: ../src/iop/graduatednd.c:1125 #, c-format msgid "[%s on line] change density" msgstr "[%s sobre la línea] cambiar densidad" -#: ../src/iop/graduatednd.c:1158 +#: ../src/iop/graduatednd.c:1127 #, c-format msgid "[%s on line] change hardness" msgstr "[%s sobre la línea] cambiar transición" -#: ../src/iop/grain.c:428 +#: ../src/iop/grain.c:444 msgid "grain" msgstr "grano" -#: ../src/iop/grain.c:433 +#: ../src/iop/grain.c:449 msgid "simulate silver grains from film" msgstr "Realiza una imitación de los granos de haluro de plata" -#: ../src/iop/grain.c:582 +#: ../src/iop/grain.c:600 msgid "the grain size (~ISO of the film)" -msgstr "Tamaño del grano (~ISO de la pelicula)" +msgstr "Tamaño del grano (~ISO de la película)" -#: ../src/iop/grain.c:586 +#: ../src/iop/grain.c:604 msgid "the strength of applied grain" msgstr "Intensidad del ruido aplicado" -#: ../src/iop/grain.c:590 +#: ../src/iop/grain.c:608 msgid "" "amount of mid-tones bias from the photographic paper response modeling. the " "greater the bias, the more pronounced the fall off of the grain in shadows " @@ -17453,15 +18029,15 @@ msgid "remove fog and atmospheric hazing from pictures" msgstr "Elimina la neblina o bruma existente en la imagen" -#: ../src/iop/hazeremoval.c:202 +#: ../src/iop/hazeremoval.c:204 msgid "amount of haze reduction" msgstr "Proporción de reducción de neblina" -#: ../src/iop/hazeremoval.c:204 +#: ../src/iop/hazeremoval.c:206 msgid "distance" msgstr "distancia" -#: ../src/iop/hazeremoval.c:206 +#: ../src/iop/hazeremoval.c:208 msgid "limit haze removal up to a specific spatial depth" msgstr "" "Limitar la eliminación de la neblina hasta una profundidad espacial " @@ -17475,11 +18051,11 @@ msgid "avoid magenta highlights and try to recover highlights colors" msgstr "Intenta recuperar el color y evitar los tonos magentas en las luces" -#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:75 +#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:77 msgid "reconstruction, raw" msgstr "Reconstrucción, negativo digital" -#: ../src/iop/highlights.c:923 +#: ../src/iop/highlights.c:1004 msgid "" "highlights: mode not available for this type of image. falling back to " "inpaint opposed." @@ -17487,51 +18063,68 @@ "Luces: modo no disponible para este tipo de imagen. Volviendo a restauración " "contrapuesta." -#: ../src/iop/highlights.c:1101 +#: ../src/iop/highlights.c:1184 msgid "highlight reconstruction method" msgstr "Método de reconstrucción de luces" -#: ../src/iop/highlights.c:1106 +#: ../src/iop/highlights.c:1189 msgid "" "manually adjust the clipping threshold mostly used against magenta " -"highlights\n" -"the mask icon shows the clipped areas.\n" +"highlights.\n" "you might use this for tuning 'laplacian', 'inpaint opposed' or " "'segmentation' modes,\n" "especially if camera white point is incorrect." msgstr "" -"Ajustar manualmente el umbral de recorte contra las luces magenta.\n" -"El ícono de la máscara muestra el área recortada.\n" -"Se puede utilizar para refinar los modos «laplaciano», «restauración " -"contrapuesta» o «segmentación»,\n" -"especialmente si el punto blanco de la cámara es incorrecto." +"Ajusta manualmente el umbral de recorte contra las luces magenta.\n" +"Se puede utilizar para mejorar la precisión en los modos «laplaciano», " +"«restauración contrapuesta» y «segmentación»,\n" +"especialmente si el punto blanco de la cámara es incorrecto.\n" +"El ícono de la máscara muestra el área recortada." + +#: ../src/iop/highlights.c:1193 +msgid "" +"visualize clipped highlights in a false color representation.\n" +"the effective clipping level also depends on the reconstruction method." +msgstr "" +"Visualizar las luces recortadas representados con falso color.\n" +"El nivel de recorte efectivo también depende del método de reconstrucción." -#: ../src/iop/highlights.c:1117 +#: ../src/iop/highlights.c:1203 msgid "" "combine closely related clipped segments by morphological operations.\n" -"the mask button shows the exact positions of resulting segment borders." +"this often leads to improved color reconstruction for tiny segments before " +"dark background." msgstr "" -"Combinar segmentos recortados estrechamente relacionados mediante " -"operaciones morfológicas.\n" -"El botón de máscara muestra las posiciones exactas de los bordes de los " -"segmentos resultantes." +"Combina segmentos recortados estrechamente relacionados mediante operaciones " +"morfológicas,\n" +"lo que suele conducir a una mejor reconstrucción de color en segmentos " +"pequeños ante un fondo oscuro." + +#: ../src/iop/highlights.c:1206 +msgid "visualize the combined segments in a false color representation." +msgstr "Visualizar los segmentos combinados representados con falso color." -#: ../src/iop/highlights.c:1125 +#: ../src/iop/highlights.c:1213 msgid "" "select inpainting after segmentation analysis.\n" -"increase to favour candidates found in segmentation analysis, decrease for " -"opposed means inpainting.\n" -"the mask button shows segments that are considered to have a good candidate." +"increase to favor candidates found in segmentation analysis, decrease for " +"opposed means inpainting." msgstr "" "Selecciona la mejor coincidencia de color después del análisis de la " "segmentación.\n" "Incremente para priorizar el valor de referencia encontrado en el análisis " "de segmentación. Disminuya para priorizar los valores medios análogos de " -"restauración.\n" -"El botón de máscara muestra los segmentos que se consideran que tienen un " -"buenos valores de referencia." +"restauración." -#: ../src/iop/highlights.c:1136 +#: ../src/iop/highlights.c:1216 +msgid "" +"visualize segments that are considered to have a good candidate in a false " +"color representation." +msgstr "" +"Visualizar segmentos que se considera que tienen un buen candidato " +"representados con falso color." + +#: ../src/iop/highlights.c:1225 msgid "" "approximate lost data in regions with all photosites clipped, the effect " "depends on segment size and border gradients.\n" @@ -17553,18 +18146,17 @@ "líneas eléctricas) para que al reconstruir las luces se eviten los " "degradados." -#: ../src/iop/highlights.c:1142 -msgid "" -"set strength of rebuilding in regions with all photosites clipped.\n" -"the mask buttons shows the effect that is added to already reconstructed " -"data." +#: ../src/iop/highlights.c:1231 +msgid "set strength of rebuilding in regions with all photosites clipped." msgstr "" "Ajusta la intensidad de la reconstrucción en regiones con todos las " -"fotositos recortados.\n" -"El botón de máscara muestra el efecto que se añade a los datos ya " -"reconstruidos." +"fotositos recortados." -#: ../src/iop/highlights.c:1152 +#: ../src/iop/highlights.c:1233 +msgid "show the effect that is added to already reconstructed data." +msgstr "Presenta el efecto de reconstrucción que se añade a los datos." + +#: ../src/iop/highlights.c:1242 msgid "" "add noise to visually blend the reconstructed areas\n" "into the rest of the noisy image. useful at high ISO." @@ -17573,7 +18165,7 @@ "en el resto de la imagen ruidosa, lo que resulta muy útil cuando hay ISO " "alto." -#: ../src/iop/highlights.c:1156 +#: ../src/iop/highlights.c:1246 msgid "" "increase if magenta highlights don't get fully corrected\n" "each new iteration brings a performance penalty." @@ -17582,7 +18174,7 @@ "Tenga en cuenta que con cada nueva iteración, el rendimiento se verá " "afectado." -#: ../src/iop/highlights.c:1161 +#: ../src/iop/highlights.c:1251 msgid "" "increase if magenta highlights don't get fully corrected.\n" "this may produce non-smooth boundaries between valid and clipped regions." @@ -17591,7 +18183,7 @@ "teniendo en cuenta de que se puede provocar que las delimitaciones sean " "abruptas entre las regiones válidas y las recortadas." -#: ../src/iop/highlights.c:1165 +#: ../src/iop/highlights.c:1255 msgid "" "increase to correct larger clipped areas.\n" "large values bring huge performance penalties" @@ -17600,9 +18192,9 @@ "Entre más altos sean los valores, mayor será la penalización en el " "rendimiento." -#: ../src/iop/highlights.c:1169 -msgid "this module only works with non-monochrome RAW and sRAW" -msgstr "Este módulo sólo funciona con formatos RAW no monocromático y sRAW" +#: ../src/iop/highlights.c:1259 +msgid "this module does not work with monochrome RAW files" +msgstr "Este módulo no funciona con formatos RAW monocromáticos" #: ../src/iop/highpass.c:72 msgid "highpass" @@ -17612,51 +18204,51 @@ msgid "isolate high frequencies in the image" msgstr "Aisla la frecuencia alta de la imagen" -#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:135 +#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:107 msgid "linear or non-linear, Lab, scene-referred" msgstr "Lineal o no lineal, Lab, basado en la escena" -#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:136 ../src/iop/sharpen.c:96 +#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:108 ../src/iop/sharpen.c:98 msgid "frequential, Lab" msgstr "Frecuencial, Lab" -#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:137 +#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:109 msgid "special, Lab, scene-referred" msgstr "Especial, Lab, basado en la escena" -#: ../src/iop/highpass.c:383 +#: ../src/iop/highpass.c:378 msgid "the sharpness of highpass filter" msgstr "Enfoque del filtro paso alto" -#: ../src/iop/highpass.c:387 +#: ../src/iop/highpass.c:382 msgid "the contrast of highpass filter" msgstr "Contraste del filtro paso alto" -#: ../src/iop/hotpixels.c:67 +#: ../src/iop/hotpixels.c:69 msgid "hot pixels" msgstr "pixeles calientes" -#: ../src/iop/hotpixels.c:72 +#: ../src/iop/hotpixels.c:74 msgid "remove abnormally bright pixels by dampening them with neighbors" msgstr "" "Atenúa los pixeles brillantes anormales con base en los pixeles vecinos" -#: ../src/iop/hotpixels.c:363 +#: ../src/iop/hotpixels.c:442 #, c-format msgid "fixed %d pixel" msgid_plural "fixed %d pixels" msgstr[0] "corregido %d pixel" msgstr[1] "corregidos %d pixeles" -#: ../src/iop/hotpixels.c:386 +#: ../src/iop/hotpixels.c:465 msgid "lower threshold for hot pixel" msgstr "Umbral inferior de los pixeles calientes" -#: ../src/iop/hotpixels.c:390 +#: ../src/iop/hotpixels.c:469 msgid "strength of hot pixel correction" msgstr "Cantidad de corrección de pixeles calientes" -#: ../src/iop/hotpixels.c:406 +#: ../src/iop/hotpixels.c:485 msgid "" "hot pixel correction\n" "only works for raw images." @@ -17664,64 +18256,64 @@ "Corrección de pixeles calientes\n" "Sólo funciona con imágenes RAW." -#: ../src/iop/invert.c:92 ../src/iop/invert.c:427 +#: ../src/iop/invert.c:106 ../src/iop/invert.c:442 #, c-format msgid "`%s' color matrix not found for 4bayer image" msgstr "«%s» matriz de color no encontrada para imagen tipo Bayer" -#: ../src/iop/invert.c:108 +#: ../src/iop/invert.c:125 msgid "invert" msgstr "invertir" -#: ../src/iop/invert.c:113 +#: ../src/iop/invert.c:130 msgid "this module is deprecated. please use the negadoctor module instead." msgstr "" "Este módulo ha quedado sin soporte. Se recomienda sustituirlo por el módulo " "negatidóctor." -#: ../src/iop/invert.c:118 +#: ../src/iop/invert.c:135 msgid "invert film negatives" msgstr "invertir los negativos" -#: ../src/iop/invert.c:120 ../src/iop/invert.c:122 +#: ../src/iop/invert.c:137 ../src/iop/invert.c:139 msgid "linear, raw, display-referred" msgstr "Lineal, negativo digital, basado en la pantalla" #. Here we could provide more for monochrome special cases. As no monochrome camera #. has a bayer sensor we don't need g->RGB_to_CAM and g->CAM_to_RGB corrections -#: ../src/iop/invert.c:412 +#: ../src/iop/invert.c:427 msgid "brightness of film material" msgstr "brillo del material de la película" -#: ../src/iop/invert.c:416 +#: ../src/iop/invert.c:431 msgid "color of film material" msgstr "color de la película" -#: ../src/iop/invert.c:500 ../src/iop/negadoctor.c:847 +#: ../src/iop/invert.c:515 ../src/iop/negadoctor.c:866 msgid "pick color of film material from image" msgstr "Seleccionar el color del material de la película desde la imagen" -#: ../src/iop/invert.c:502 +#: ../src/iop/invert.c:517 msgid "select color of film material" msgstr "seleccionar color de la película" -#: ../src/iop/lens.cc:230 +#: ../src/iop/lens.cc:251 msgid "lens correction" msgstr "corrección de lente" -#: ../src/iop/lens.cc:235 +#: ../src/iop/lens.cc:256 msgid "vignette|chromatic aberrations|distortion" msgstr "viñeteado|aberración cromática|distorsión" -#: ../src/iop/lens.cc:240 +#: ../src/iop/lens.cc:261 msgid "correct lenses optical flaws" msgstr "Corrige los defectos ópticos de las lentes" -#: ../src/iop/lens.cc:243 +#: ../src/iop/lens.cc:264 msgid "geometric and reconstruction, RGB" msgstr "Geométrico y reconstrucción, RGB" -#: ../src/iop/lens.cc:3148 +#: ../src/iop/lens.cc:3773 #, c-format msgid "" "maker:\t\t%s\n" @@ -17734,7 +18326,7 @@ "Montura:\t\t%s\n" "Factor de recorte: %.1f" -#: ../src/iop/lens.cc:3396 +#: ../src/iop/lens.cc:4026 #, c-format msgid "" "maker:\t\t%s\n" @@ -17753,31 +18345,31 @@ "Tipo:\t\t\t%s\n" "Montura:\t\t%s" -#: ../src/iop/lens.cc:3442 +#: ../src/iop/lens.cc:4072 msgid "focal length (mm)" msgstr "Longitud focal (mm)" -#: ../src/iop/lens.cc:3468 +#: ../src/iop/lens.cc:4098 msgid "f/" msgstr "f/" -#: ../src/iop/lens.cc:3469 +#: ../src/iop/lens.cc:4099 msgid "f-number (aperture)" msgstr "Apertura de diafragma (número f)" -#: ../src/iop/lens.cc:3485 +#: ../src/iop/lens.cc:4115 msgid "d" msgstr "d" -#: ../src/iop/lens.cc:3486 +#: ../src/iop/lens.cc:4116 msgid "distance to subject" msgstr "Distancia al motivo principal" -#: ../src/iop/lens.cc:3645 +#: ../src/iop/lens.cc:4277 msgid "camera/lens not found" msgstr "Cámara u objetivo no encontrado." -#: ../src/iop/lens.cc:3646 +#: ../src/iop/lens.cc:4278 msgid "" "please select your lens manually\n" "you might also want to check if your Lensfun database is up-to-date\n" @@ -17787,46 +18379,51 @@ "También puede verificar si la base de datos de Lensfun está actualizada\n" "ejecutando lensfun_update_data." -#: ../src/iop/lens.cc:3769 +#: ../src/iop/lens.cc:4423 msgid "camera model" msgstr "modelo de cámara" -#: ../src/iop/lens.cc:3774 +#: ../src/iop/lens.cc:4428 msgid "find camera" msgstr "Buscar cámara" -#: ../src/iop/lens.cc:3789 +#: ../src/iop/lens.cc:4443 msgid "find lens" msgstr "Buscar lente" #. scale -#: ../src/iop/lens.cc:3823 ../src/iop/vignette.c:968 -#: ../src/iop/watermark.c:1324 ../src/libs/export.c:1165 +#: ../src/iop/lens.cc:4477 ../src/iop/vignette.c:1055 +#: ../src/iop/watermark.c:1372 ../src/libs/export.c:1264 msgid "scale" msgstr "escala" -#: ../src/iop/lens.cc:3828 +#: ../src/iop/lens.cc:4482 msgid "auto scale" msgstr "Autorredimensionar" -#: ../src/iop/lens.cc:3832 +#: ../src/iop/lens.cc:4484 +msgid "automatic scale to available image size due to Lensfun data" +msgstr "" +"Redimensión automática al tamaño de imagen disponible con base en la " +"información de Lensfun" + +#: ../src/iop/lens.cc:4488 msgid "correct distortions or apply them" msgstr "Corrige o añade distorsiones" -#: ../src/iop/lens.cc:3839 +#: ../src/iop/lens.cc:4495 msgid "transversal chromatic aberration red" msgstr "Aberración cromática transversal roja" -#: ../src/iop/lens.cc:3843 +#: ../src/iop/lens.cc:4499 msgid "transversal chromatic aberration blue" msgstr "Aberración cromática transversal azul" -#: ../src/iop/lens.cc:3849 -#| msgid "saturation algorithm" +#: ../src/iop/lens.cc:4509 msgid "use latest algorithm" msgstr "utilizar el algoritmo más reciente" -#: ../src/iop/lens.cc:3851 +#: ../src/iop/lens.cc:4511 msgid "" "you're using an old version of the algorithm.\n" "once enabled, you won't be able to\n" @@ -17836,98 +18433,151 @@ "Una vez activado, no se podrá\n" "revertir al algoritmo antiguo." -#: ../src/iop/lens.cc:3860 +#: ../src/iop/lens.cc:4521 +msgid "fine-tuning" +msgstr "afinar" + +#. DT_IOP_SECTION_FOR_PARAMS doesn't work in C++ so create section module manually +#: ../src/iop/lens.cc:4526 +msgid "fine-tune" +msgstr "ajustar precisión" + +#: ../src/iop/lens.cc:4532 msgid "tune the warp and chromatic aberration correction" msgstr "Ajusta la corrección de deformación y aberración cromática" -#: ../src/iop/lens.cc:3864 +#: ../src/iop/lens.cc:4536 msgid "tune the vignette correction" msgstr "Ajusta la corrección de viñeteado" -#: ../src/iop/lens.cc:3868 +#: ../src/iop/lens.cc:4540 msgid "tune the TCA red correction" msgstr "Ajusta la corrección de ACT en rojo" -#: ../src/iop/lens.cc:3872 +#: ../src/iop/lens.cc:4544 msgid "tune the TCA blue correction" msgstr "Ajusta la corrección de ACT en azul" -#: ../src/iop/lens.cc:3879 +#: ../src/iop/lens.cc:4551 msgid "image scaling" msgstr "escalado de imágenes" -#: ../src/iop/lens.cc:3891 +#: ../src/iop/lens.cc:4553 +msgid "automatic scale to available image size" +msgstr "Escala automática al tamaño de imagen disponible" + +#: ../src/iop/lens.cc:4561 +msgid "" +"select a correction mode either based on\n" +" a) data and algorithms provided by the Lensfun project\n" +" b) embedded metadata provided by the camera or software vendor" +msgstr "" +"Seleccionar un modo de corrección basado en:\n" +" a) La información y algoritmos proporcionados por el proyecto Lensfun\n" +" b) Los metadatos incrustados por la cámara o proporcionados por el " +"proveedor del software" + +#: ../src/iop/lens.cc:4568 msgid "which corrections to apply" msgstr "Correcciones que se aplicarán" -#: ../src/iop/lens.cc:3904 +#: ../src/iop/lens.cc:4574 msgid "corrections done: " msgstr "correcciones realizadas: " -#: ../src/iop/lens.cc:3906 +#: ../src/iop/lens.cc:4576 msgid "which corrections have actually been done" msgstr "Indica las correcciones que han sido realizadas" +#: ../src/iop/lens.cc:4595 +msgid "manual vignette correction" +msgstr "corrección manual de viñeteado" + +#: ../src/iop/lens.cc:4599 +msgid "additional manually controlled optical vignetting correction" +msgstr "Corrección óptica adicional del viñeteado configurado manualmente" + +#: ../src/iop/lens.cc:4602 +msgid "vignette" +msgstr "viñeteado" + +#: ../src/iop/lens.cc:4606 +msgid "amount of the applied optical vignetting correction" +msgstr "Intensidad del efecto de corrección de viñeteado óptico aplicada" + +#: ../src/iop/lens.cc:4608 +msgid "show applied optical vignette correction mask" +msgstr "Muestra la máscara de corrección de viñeteado óptico aplicada" + +#: ../src/iop/lens.cc:4618 +msgid "radius of uncorrected centre" +msgstr "Área central que no es modificada por la corrección." + +#: ../src/iop/lens.cc:4624 +msgid "steepness of the correction effect outside of radius" +msgstr "" +"Intensidad del efecto de corrección en el gradiente (área externa al radio)." + #: ../src/iop/levels.c:112 msgid "this module is deprecated. please use the RGB levels module instead." msgstr "" "Este módulo ha quedado sin soporte. Se recomienda sustituirlo por el módulo " "niveles RGB." -#: ../src/iop/levels.c:117 ../src/iop/levels.c:630 ../src/iop/rgblevels.c:984 -#: ../src/iop/rgblevels.c:1014 +#: ../src/iop/levels.c:117 ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1022 +#: ../src/iop/rgblevels.c:1056 msgid "levels" msgstr "niveles" -#: ../src/iop/levels.c:137 +#: ../src/iop/levels.c:139 msgid "adjust black, white and mid-gray points" msgstr "Ajusta los puntos negro, blanco y gris medio" -#: ../src/iop/levels.c:628 ../src/iop/rgblevels.c:1016 +#: ../src/iop/levels.c:644 ../src/iop/rgblevels.c:1059 msgid "" "drag handles to set black, gray, and white points. operates on L channel." msgstr "" "Arrastre las barras para establecer los puntos negro, gris y blanco. Opera " "en el canal L." -#: ../src/iop/levels.c:642 ../src/iop/rgblevels.c:1052 +#: ../src/iop/levels.c:658 ../src/iop/rgblevels.c:1108 msgid "apply auto levels" msgstr "Establecer niveles automáticos" -#: ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1027 +#: ../src/iop/levels.c:662 ../src/iop/rgblevels.c:1077 msgid "pick black point from image" msgstr "Seleccionar el punto negro de la imagen" -#: ../src/iop/levels.c:650 ../src/iop/rgblevels.c:1033 +#: ../src/iop/levels.c:666 ../src/iop/rgblevels.c:1085 msgid "pick medium gray point from image" msgstr "Seleccionar el punto gris medio de la imagen" -#: ../src/iop/levels.c:654 ../src/iop/rgblevels.c:1039 +#: ../src/iop/levels.c:670 ../src/iop/rgblevels.c:1093 msgid "pick white point from image" msgstr "Seleccionar el punto blanco de la imagen" -#: ../src/iop/levels.c:667 ../src/iop/rgblevels.c:936 -#: ../src/iop/rgblevels.c:1026 +#: ../src/iop/levels.c:683 ../src/iop/rgblevels.c:968 +#: ../src/iop/rgblevels.c:1075 msgid "black" msgstr "negro" # Porcentaje no se emplea en lugar de percentil -#: ../src/iop/levels.c:668 +#: ../src/iop/levels.c:684 msgid "black percentile" msgstr "percentil negro" # Porcentaje no se emplea en lugar de percentil -#: ../src/iop/levels.c:672 +#: ../src/iop/levels.c:688 msgid "gray percentile" msgstr "percentil gris" -#: ../src/iop/levels.c:675 ../src/iop/rgblevels.c:938 -#: ../src/iop/rgblevels.c:1038 +#: ../src/iop/levels.c:691 ../src/iop/rgblevels.c:970 +#: ../src/iop/rgblevels.c:1091 msgid "white" msgstr "blanco" # Porcentaje no se emplea en lugar de percentil -#: ../src/iop/levels.c:676 +#: ../src/iop/levels.c:692 msgid "white percentile" msgstr "percentil blanco" @@ -17939,41 +18589,41 @@ msgid "distort parts of the image" msgstr "Distorsiona áreas seleccionadas en la imagen" -#: ../src/iop/liquify.c:2933 +#: ../src/iop/liquify.c:2895 msgid "click to edit nodes" msgstr "Pulsar para editar nodos" -#: ../src/iop/liquify.c:3636 +#: ../src/iop/liquify.c:3599 msgid "" "<b>add point</b>: click and drag\n" -"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: ctrl" -"+scroll" +"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " +"ctrl+scroll" msgstr "" "<b>Añadir nodo</b>: Ctrl+Arrastre\n" "<b>Tamaño</b>: Desplazamiento, <b>Difuminado</b>: Mayús+Desplazamiento, " "<b>Dirección</b>: Ctrl+Desplazamiento" -#: ../src/iop/liquify.c:3639 +#: ../src/iop/liquify.c:3602 msgid "" "<b>add line</b>: click\n" -"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: ctrl" -"+scroll" +"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " +"ctrl+scroll" msgstr "" "<b>Añadir línea</b>: Pulsado\n" "<b>Tamaño</b>: Rueda del Ratón, <b>Opacidad</b>: Mayús+Rueda del Ratón, " "<b>Dirección</b>: Ctrl+Rueda del Ratón" -#: ../src/iop/liquify.c:3642 +#: ../src/iop/liquify.c:3605 msgid "" "<b>add curve</b>: click\n" -"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: ctrl" -"+scroll" +"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " +"ctrl+scroll" msgstr "" "<b>Añadir curva</b>: Pulsado\n" "<b>Tamaño</b>: Rueda del Ratón, <b>Opacidad</b>: Mayús+Rueda del Ratón, " "<b>Dirección</b>: Ctrl+Rueda del Ratón" -#: ../src/iop/liquify.c:3693 +#: ../src/iop/liquify.c:3656 msgid "" "use a tool to add warps\n" "<b>remove a warp</b>: right-click" @@ -17981,48 +18631,48 @@ "Utilice una herramienta para agregar deformaciones.\n" "Pulse Clic secundario para <b>eliminar una deformación</b>." -#: ../src/iop/liquify.c:3696 +#: ../src/iop/liquify.c:3659 msgid "warps|nodes count:" msgstr "deformaciones | número de nodos: " -#: ../src/iop/liquify.c:3705 +#: ../src/iop/liquify.c:3668 msgid "edit, add and delete nodes" msgstr "Editar, añadir y eliminar nodos" -#: ../src/iop/liquify.c:3710 ../src/iop/liquify.c:3716 -#: ../src/iop/liquify.c:3722 ../src/iop/retouch.c:2238 -#: ../src/iop/retouch.c:2242 ../src/iop/retouch.c:2246 -#: ../src/iop/retouch.c:2250 ../src/iop/spots.c:883 ../src/iop/spots.c:888 -#: ../src/iop/spots.c:893 ../src/libs/masks.c:1816 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1834 ../src/libs/masks.c:1843 ../src/libs/masks.c:1852 +#: ../src/iop/liquify.c:3673 ../src/iop/liquify.c:3679 +#: ../src/iop/liquify.c:3685 ../src/iop/retouch.c:2465 +#: ../src/iop/retouch.c:2471 ../src/iop/retouch.c:2476 +#: ../src/iop/retouch.c:2481 ../src/iop/spots.c:885 ../src/iop/spots.c:890 +#: ../src/iop/spots.c:895 ../src/libs/masks.c:1812 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1830 ../src/libs/masks.c:1839 ../src/libs/masks.c:1848 msgid "shapes" msgstr "figuras" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw curves" msgstr "Trazar curvas" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw multiple curves" msgstr "Trazar múltiples curvas" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw lines" msgstr "Trazar líneas" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw multiple lines" msgstr "Trazar múltiples líneas" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw points" msgstr "Marcar puntos" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw multiple points" msgstr "Marcar varios puntos" -#: ../src/iop/liquify.c:3729 +#: ../src/iop/liquify.c:3692 msgid "" "<b>add node</b>: ctrl+click - <b>remove path</b>: right click\n" "<b>toggle line/curve</b>: ctrl+alt+click" @@ -18030,7 +18680,7 @@ "<b>Añadir nodo</b>: Ctrl+Clic, <b>Eliminar ruta</b>: Clic secundario\n" "<b>Alternar modo (línea/curva) </b>: Ctrl+Alt+Clic" -#: ../src/iop/liquify.c:3732 +#: ../src/iop/liquify.c:3695 msgid "" "<b>move</b>: click and drag - <b>show/hide feathering controls</b>: click\n" "<b>autosmooth, cusp, smooth, symmetrical</b>: ctrl+click - <b>remove</b>: " @@ -18041,23 +18691,23 @@ "<b>Suavizado automático, cúspide, suavizado, simétrico</b>: Ctrl+Clic, " "<b>Eliminar</b>: Clic secundario" -#: ../src/iop/liquify.c:3736 ../src/iop/liquify.c:3738 +#: ../src/iop/liquify.c:3699 ../src/iop/liquify.c:3701 msgid "<b>shape of path</b>: drag" msgstr "<b>Forma de la ruta</b>: Arrastre" -#: ../src/iop/liquify.c:3740 +#: ../src/iop/liquify.c:3703 msgid "<b>radius</b>: drag" msgstr "<b>Radio</b>: Arrastre" -#: ../src/iop/liquify.c:3742 +#: ../src/iop/liquify.c:3705 msgid "<b>hardness (center)</b>: drag" msgstr "<b>Dureza (centro)</b>: Arrastre" -#: ../src/iop/liquify.c:3744 +#: ../src/iop/liquify.c:3707 msgid "<b>hardness (feather)</b>: drag" msgstr "<b>Dureza (difuminado)</b>: Arrastre" -#: ../src/iop/liquify.c:3746 +#: ../src/iop/liquify.c:3709 msgid "" "<b>strength</b>: drag\n" "<b>linear, grow, and shrink</b>: ctrl+click" @@ -18077,238 +18727,238 @@ msgid "linear, XYZ" msgstr "Lineal, XYZ" -#: ../src/iop/lowlight.c:341 +#: ../src/iop/lowlight.c:338 msgid "indoor bright" msgstr "interior brillante" -#: ../src/iop/lowlight.c:359 +#: ../src/iop/lowlight.c:356 msgid "indoor dim" msgstr "interior tenue" -#: ../src/iop/lowlight.c:377 +#: ../src/iop/lowlight.c:374 msgid "indoor dark" msgstr "interior oscuro" -#: ../src/iop/lowlight.c:395 +#: ../src/iop/lowlight.c:392 msgid "twilight" msgstr "amanecer" -#: ../src/iop/lowlight.c:413 +#: ../src/iop/lowlight.c:410 msgid "night street lit" msgstr "calle nocturna iluminada" -#: ../src/iop/lowlight.c:431 +#: ../src/iop/lowlight.c:428 msgid "night street" msgstr "calle nocturna" -#: ../src/iop/lowlight.c:449 +#: ../src/iop/lowlight.c:446 msgid "night street dark" msgstr "calle nocturna oscura" -#: ../src/iop/lowlight.c:468 +#: ../src/iop/lowlight.c:465 msgid "night" msgstr "noche" -#: ../src/iop/lowlight.c:641 +#: ../src/iop/lowlight.c:639 msgid "dark" msgstr "oscuridad" -#: ../src/iop/lowlight.c:649 +#: ../src/iop/lowlight.c:647 msgid "bright" msgstr "brillo" -#: ../src/iop/lowlight.c:658 +#: ../src/iop/lowlight.c:656 msgid "day vision" msgstr "visión diurna" -#: ../src/iop/lowlight.c:663 +#: ../src/iop/lowlight.c:661 msgid "night vision" msgstr "visión nocturna" -#: ../src/iop/lowlight.c:835 +#: ../src/iop/lowlight.c:833 msgid "blueness in shadows" msgstr "azul en las sombras" -#: ../src/iop/lowpass.c:128 +#: ../src/iop/lowpass.c:100 msgid "lowpass" msgstr "filtro paso bajo" -#: ../src/iop/lowpass.c:133 +#: ../src/iop/lowpass.c:105 msgid "isolate low frequencies in the image" msgstr "Aisla la frecuencia baja de la imagen" -#: ../src/iop/lowpass.c:565 +#: ../src/iop/lowpass.c:578 msgid "local contrast mask" msgstr "máscara de contraste local" -#: ../src/iop/lowpass.c:590 +#: ../src/iop/lowpass.c:603 msgid "radius of gaussian/bilateral blur" msgstr "Radio del desenfoque gaussiano/bilateral" -#: ../src/iop/lowpass.c:591 +#: ../src/iop/lowpass.c:604 msgid "contrast of lowpass filter" msgstr "contraste del filtro de paso bajo" -#: ../src/iop/lowpass.c:592 +#: ../src/iop/lowpass.c:605 msgid "brightness adjustment of lowpass filter" msgstr "ajuste del brillo del filtro del filtro paso bajo" -#: ../src/iop/lowpass.c:593 +#: ../src/iop/lowpass.c:606 msgid "color saturation of lowpass filter" msgstr "saturación del filtro de paso bajo" -#: ../src/iop/lowpass.c:594 +#: ../src/iop/lowpass.c:607 msgid "which filter to use for blurring" msgstr "Filtro que se usará para el desenfoque" -#: ../src/iop/lut3d.c:135 +#: ../src/iop/lut3d.c:136 msgid "LUT 3D" msgstr "lut 3D" -#: ../src/iop/lut3d.c:140 +#: ../src/iop/lut3d.c:141 msgid "perform color space corrections and apply look" msgstr "Realiza modificaciones en el espacio de color y aplica el estilo" -#: ../src/iop/lut3d.c:143 +#: ../src/iop/lut3d.c:144 msgid "defined by profile, RGB" msgstr "Definido por el perfil, RGB" -#: ../src/iop/lut3d.c:468 +#: ../src/iop/lut3d.c:486 msgid "error allocating buffer for gmz LUT" msgstr "Error al asignar búfer para LUT gmz" -#: ../src/iop/lut3d.c:494 +#: ../src/iop/lut3d.c:512 #, c-format msgid "invalid png file %s" msgstr "El archivo PNG %s es inválido" -#: ../src/iop/lut3d.c:502 +#: ../src/iop/lut3d.c:520 #, c-format -msgid "png bit-depth %d not supported" +msgid "png bit depth %d is not supported" msgstr "La profundidad de bits %d PNG no es compatible" -#: ../src/iop/lut3d.c:516 ../src/iop/lut3d.c:526 +#: ../src/iop/lut3d.c:534 ../src/iop/lut3d.c:544 #, c-format msgid "invalid level in png file %d %d" msgstr "Nivel inválido en el archivo PNG %d %d" -#: ../src/iop/lut3d.c:521 +#: ../src/iop/lut3d.c:539 msgid "this darktable build is not compatible with compressed CLUT" msgstr "" "Esta compilación de darktable no es compatible con la tabla de búsqueda de " "color comprimida (CLUT)" -#: ../src/iop/lut3d.c:538 ../src/iop/lut3d.c:788 +#: ../src/iop/lut3d.c:556 ../src/iop/lut3d.c:808 #, c-format msgid "error - LUT 3D size %d exceeds the maximum supported" msgstr "Error: el tamaño de LUT 3D %d excede el límite establecido" -#: ../src/iop/lut3d.c:550 +#: ../src/iop/lut3d.c:568 msgid "error allocating buffer for png LUT" msgstr "Error al asignar búfer para LUT PNG" -#: ../src/iop/lut3d.c:558 +#: ../src/iop/lut3d.c:576 #, c-format msgid "error - could not read png image %s" msgstr "Error: no se pudo leer la imagen PNG %s" -#: ../src/iop/lut3d.c:568 +#: ../src/iop/lut3d.c:586 msgid "error - allocating buffer for png LUT" msgstr "Error de asignación de búfer: LUT PNG" -#: ../src/iop/lut3d.c:743 +#: ../src/iop/lut3d.c:761 #, c-format msgid "error - invalid cube file: %s" msgstr "Error: archivo CUBE no válido %s" -#: ../src/iop/lut3d.c:757 -msgid "DOMAIN MIN <> 0.0 is not supported" -msgstr "DOMINIO MÍN <> 0.0 no es compatible" - -#: ../src/iop/lut3d.c:768 -msgid "DOMAIN MAX <> 1.0 is not supported" -msgstr "DOMINIO MÁX <> 0.0 no es compatible" +#: ../src/iop/lut3d.c:775 +msgid "DOMAIN MIN other than 0 is not supported" +msgstr "DOMINIO MÍN ≠ 0 no es compatible" + +#: ../src/iop/lut3d.c:787 +msgid "DOMAIN MAX other than 1 is not supported" +msgstr "DOMINIO MÁX ≠ 1 no es compatible" -#: ../src/iop/lut3d.c:777 +#: ../src/iop/lut3d.c:797 msgid "1D cube LUT is not supported" msgstr "El cubo LUT 1D no es compatible" -#: ../src/iop/lut3d.c:799 +#: ../src/iop/lut3d.c:819 msgid "error - allocating buffer for cube LUT" msgstr "Error de asignación de búfer: cubo LUT" -#: ../src/iop/lut3d.c:810 +#: ../src/iop/lut3d.c:830 msgid "error - cube LUT size is not defined" msgstr "Error: el tamaño del cubo LUT no está definido" -#: ../src/iop/lut3d.c:821 +#: ../src/iop/lut3d.c:841 #, c-format msgid "error - cube LUT invalid number line %d" msgstr "Error: el número de línea %d del cubo LUT no es válida" -#: ../src/iop/lut3d.c:837 +#: ../src/iop/lut3d.c:857 #, c-format msgid "error - cube LUT lines number %d is not correct, should be %d" msgstr "" "Error: el número de línea %d del cubo LUT no es válida, tendría que ser %d" -#: ../src/iop/lut3d.c:847 +#: ../src/iop/lut3d.c:867 #, c-format msgid "warning - cube LUT has %d values out of range [0,1]" msgstr "Advertencia: el cubo LUT %d tiene valores fuera del rango [0, 1]" -#: ../src/iop/lut3d.c:872 +#: ../src/iop/lut3d.c:892 #, c-format msgid "error - invalid 3dl file: %s" msgstr "Error: el archivo 3DL %s no es válido" -#: ../src/iop/lut3d.c:893 +#: ../src/iop/lut3d.c:913 #, c-format msgid "error - the maximum shaper LUT value %d is too low" msgstr "Error: el valor del modelador máximo LUT %d es demasiado bajo" -#: ../src/iop/lut3d.c:904 +#: ../src/iop/lut3d.c:924 msgid "error - allocating buffer for 3dl LUT" msgstr "Error de asignación de búfer: LUT 3DL" -#: ../src/iop/lut3d.c:917 +#: ../src/iop/lut3d.c:937 msgid "error - 3dl LUT size is not defined" msgstr "Error: el tamaño del cubo LUT 3DL no está definido" -#: ../src/iop/lut3d.c:945 +#: ../src/iop/lut3d.c:965 msgid "error - 3dl LUT lines number is not correct" msgstr "Error: el número de líneas del cubo LUT 3DL no es correcto" -#: ../src/iop/lut3d.c:961 +#: ../src/iop/lut3d.c:981 msgid "error - the maximum LUT value does not match any valid bit depth" msgstr "" "Error: el valor máximo LUT no coincide con ninguna profundidad de bit válida" -#: ../src/iop/lut3d.c:1539 +#: ../src/iop/lut3d.c:1553 msgid "LUT root folder not defined" msgstr "La carpeta raíz de LUT no está definida" -#: ../src/iop/lut3d.c:1545 +#: ../src/iop/lut3d.c:1559 msgid "select LUT file" msgstr "Seleccionar archivo LUT" -#: ../src/iop/lut3d.c:1546 +#: ../src/iop/lut3d.c:1560 msgid "_select" msgstr "seleccionar" -#: ../src/iop/lut3d.c:1566 +#: ../src/iop/lut3d.c:1580 msgid "hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" msgstr "Hald CLUT (PNG), LUT 3D (cubo) o LUT comprimida de G'MIC (gmz)" -#: ../src/iop/lut3d.c:1568 +#: ../src/iop/lut3d.c:1582 msgid "hald CLUT (png) or 3D LUT (cube or 3dl)" msgstr "Hald CLUT (PNG) o LUT 3D (cubo)" -#: ../src/iop/lut3d.c:1592 +#: ../src/iop/lut3d.c:1606 msgid "select file outside LUT root folder is not allowed" msgstr "No es posible seleccionar el archivo fuera de la carpeta raíz de LUT" -#: ../src/iop/lut3d.c:1663 +#: ../src/iop/lut3d.c:1677 msgid "" "select a png (haldclut), a cube, a 3dl or a gmz (compressed LUT) file " "CAUTION: 3D LUT folder must be set in preferences/processing before choosing " @@ -18318,7 +18968,7 @@ "ADVERTENCIA: antes de elegir el archivo, la carpeta LUT 3D se debe señalar " "en Preferencias→procesamiento→procesamiento de imagen.\"" -#: ../src/iop/lut3d.c:1667 +#: ../src/iop/lut3d.c:1681 msgid "" "select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be " "set in preferences/processing before choosing the LUT file" @@ -18327,7 +18977,7 @@ "el archivo, la carpeta LUT 3D se debe señalar en " "Preferencias→procesamiento→procesamiento de imagen." -#: ../src/iop/lut3d.c:1679 +#: ../src/iop/lut3d.c:1693 msgid "" "the file path (relative to LUT folder) is saved with image along with the " "LUT data if it's a compressed LUT (gmz)" @@ -18335,7 +18985,7 @@ "La ruta del archivo (relativa a la carpeta LUT) se guarda con la imagen " "junto con los datos LUT en el caso de ser una LUT comprimida (gmz)." -#: ../src/iop/lut3d.c:1682 +#: ../src/iop/lut3d.c:1696 msgid "" "the file path (relative to LUT folder) is saved with image (and not the LUT " "data themselves)" @@ -18343,47 +18993,47 @@ "La ruta del archivo (relativa a la carpeta LUT) se guarda con la imagen (y " "no los datos LUT en sí mismos)." -#: ../src/iop/lut3d.c:1691 +#: ../src/iop/lut3d.c:1705 msgid "enter LUT name" msgstr "Ingresar el nombre del LUT" -#: ../src/iop/lut3d.c:1712 +#: ../src/iop/lut3d.c:1726 msgid "select the LUT" msgstr "Seleccionar la Tabla de Búsqueda de Color" -#: ../src/iop/lut3d.c:1725 +#: ../src/iop/lut3d.c:1739 msgid "select the color space in which the LUT has to be applied" msgstr "Seleccionar el espacio de color en el que se debe aplicar el LUT" -#: ../src/iop/lut3d.c:1727 +#: ../src/iop/lut3d.c:1741 msgid "interpolation" msgstr "interpolación" -#: ../src/iop/lut3d.c:1728 +#: ../src/iop/lut3d.c:1742 msgid "select the interpolation method" msgstr "Eligir el método de interpolación" -#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:62 +#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:63 msgid "mask manager" msgstr "gestor de máscaras" -#: ../src/iop/monochrome.c:97 +#: ../src/iop/monochrome.c:99 msgid "quickly convert an image to black & white using a variable color filter" msgstr "" "Convierte fácilmente la imagen en blanco y negro usando un filtro de color " "variable" -#: ../src/iop/monochrome.c:127 +#: ../src/iop/monochrome.c:153 msgid "red filter" msgstr "filtro rojo" -#: ../src/iop/monochrome.c:546 +#: ../src/iop/monochrome.c:568 msgid "drag and scroll mouse wheel to adjust the virtual color filter" msgstr "" "Arrastrar y desplazar la rueda del ratón para ajustar el filtro de color " "virtual" -#: ../src/iop/monochrome.c:562 +#: ../src/iop/monochrome.c:584 msgid "how much to keep highlights" msgstr "cantidad de las luces a mantener" @@ -18400,35 +19050,35 @@ msgstr "" "Invierte los negativos de película escaneados y simula la impresión en papel" -#: ../src/iop/negadoctor.c:469 +#: ../src/iop/negadoctor.c:483 msgid "D min" msgstr "D. mín." -#: ../src/iop/negadoctor.c:475 ../src/iop/negadoctor.c:856 +#: ../src/iop/negadoctor.c:489 ../src/iop/negadoctor.c:875 msgid "D min red component" msgstr "D. mín. componente rojo" #. Page FILM PROPERTIES -#: ../src/iop/negadoctor.c:832 +#: ../src/iop/negadoctor.c:851 msgid "film properties" msgstr "propiedades" #. Dmin -#: ../src/iop/negadoctor.c:836 +#: ../src/iop/negadoctor.c:855 msgctxt "section" msgid "color of the film base" msgstr "color de la base" -#: ../src/iop/negadoctor.c:842 +#: ../src/iop/negadoctor.c:861 msgid "select color of film material from a swatch" msgstr "Seleccionar el color desde una muestra del material de la película" -#: ../src/iop/negadoctor.c:848 +#: ../src/iop/negadoctor.c:867 msgid "film material" msgstr "material de la película" -#: ../src/iop/negadoctor.c:857 ../src/iop/negadoctor.c:867 -#: ../src/iop/negadoctor.c:877 +#: ../src/iop/negadoctor.c:876 ../src/iop/negadoctor.c:886 +#: ../src/iop/negadoctor.c:896 msgid "" "adjust the color and shade of the film transparent base.\n" "this value depends on the film material, \n" @@ -18440,21 +19090,21 @@ "de los vapores químicos producidos durante el revelado de la película,\n" "y del balance de blancos del escáner." -#: ../src/iop/negadoctor.c:866 +#: ../src/iop/negadoctor.c:885 msgid "D min green component" msgstr "D. mín. componente verde" -#: ../src/iop/negadoctor.c:876 +#: ../src/iop/negadoctor.c:895 msgid "D min blue component" msgstr "D. mín. componente azul" #. D max and scanner bias -#: ../src/iop/negadoctor.c:884 +#: ../src/iop/negadoctor.c:903 msgctxt "section" msgid "dynamic range of the film" msgstr "rango dinámico de la película" -#: ../src/iop/negadoctor.c:888 +#: ../src/iop/negadoctor.c:907 msgid "" "maximum density of the film, corresponding to white after inversion.\n" "this value depends on the film specifications, the developing process,\n" @@ -18466,12 +19116,12 @@ "revelado,\n" "el rango dinámico de la escena y los ajustes de exposición del escáner." -#: ../src/iop/negadoctor.c:892 +#: ../src/iop/negadoctor.c:911 msgctxt "section" msgid "scanner exposure settings" msgstr "ajustes de exposición del escáner" -#: ../src/iop/negadoctor.c:896 +#: ../src/iop/negadoctor.c:915 msgid "" "correct the exposure of the scanner, for all RGB channels,\n" "before the inversion, so blacks are neither clipped or too pale." @@ -18481,25 +19131,25 @@ "para evitar que los negros no estén ni recortados ni pálidos." #. WB shadows -#: ../src/iop/negadoctor.c:903 +#: ../src/iop/negadoctor.c:922 msgctxt "section" msgid "shadows color cast" msgstr "dominante de color en las sombras" -#: ../src/iop/negadoctor.c:909 +#: ../src/iop/negadoctor.c:928 msgid "select color of shadows from a swatch" msgstr "seleccionar el color de las sombras desde una muestra" -#: ../src/iop/negadoctor.c:914 +#: ../src/iop/negadoctor.c:933 msgid "pick shadows color from image" msgstr "Elegir el color de las sombras desde una imagen" -#: ../src/iop/negadoctor.c:920 +#: ../src/iop/negadoctor.c:939 msgid "shadows red offset" msgstr "equilibrio de rojo en sombras" -#: ../src/iop/negadoctor.c:921 ../src/iop/negadoctor.c:928 -#: ../src/iop/negadoctor.c:935 +#: ../src/iop/negadoctor.c:940 ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:954 msgid "" "correct the color cast in shadows so blacks are\n" "truly achromatic. Setting this value before\n" @@ -18511,34 +19161,34 @@ "balance de blancos del iluminante de las luces ayudará\n" "a recuperar el balance de blancos general en casos difíciles\"." -#: ../src/iop/negadoctor.c:927 +#: ../src/iop/negadoctor.c:946 msgid "shadows green offset" msgstr "equilibrio de verde en sombras" -#: ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:953 msgid "shadows blue offset" msgstr "equilibrio de azul en sombras" #. WB highlights -#: ../src/iop/negadoctor.c:941 +#: ../src/iop/negadoctor.c:960 msgctxt "section" msgid "highlights white balance" msgstr "balance de blancos en las luces" -#: ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:966 msgid "select color of illuminant from a swatch" msgstr "seleccionar el color del iluminante desde una muestra" -#: ../src/iop/negadoctor.c:952 +#: ../src/iop/negadoctor.c:971 msgid "pick illuminant color from image" msgstr "Elegir el color del iluminante desde la imagen" -#: ../src/iop/negadoctor.c:958 +#: ../src/iop/negadoctor.c:977 msgid "illuminant red gain" msgstr "incremento del iluminante rojo" -#: ../src/iop/negadoctor.c:959 ../src/iop/negadoctor.c:966 -#: ../src/iop/negadoctor.c:973 +#: ../src/iop/negadoctor.c:978 ../src/iop/negadoctor.c:985 +#: ../src/iop/negadoctor.c:992 msgid "" "correct the color of the illuminant so whites are\n" "truly achromatic. Setting this value after\n" @@ -18550,26 +19200,26 @@ "dominante de color de las sombras ayudará a\n" "recuperar el balance de blancos general en casos difíciles." -#: ../src/iop/negadoctor.c:965 +#: ../src/iop/negadoctor.c:984 msgid "illuminant green gain" msgstr "incremento del iluminante verde" -#: ../src/iop/negadoctor.c:972 +#: ../src/iop/negadoctor.c:991 msgid "illuminant blue gain" msgstr "incremento del iluminante azul" #. Page PRINT PROPERTIES -#: ../src/iop/negadoctor.c:979 +#: ../src/iop/negadoctor.c:998 msgid "print properties" msgstr "impresión" #. print corrections -#: ../src/iop/negadoctor.c:982 +#: ../src/iop/negadoctor.c:1001 msgctxt "section" msgid "virtual paper properties" msgstr "propiedades del papel virtual" -#: ../src/iop/negadoctor.c:988 +#: ../src/iop/negadoctor.c:1007 msgid "" "correct the density of black after the inversion,\n" "to adjust the global contrast while avoiding clipping shadows." @@ -18577,7 +19227,7 @@ "Corrige la densidad del negro después de la inversión,\n" "para adecuar el contraste general mientras se evitan recortes en las sombras." -#: ../src/iop/negadoctor.c:993 +#: ../src/iop/negadoctor.c:1012 msgid "" "select the grade of the virtual paper, which is actually\n" "equivalent to applying a gamma. it compensates the film D max\n" @@ -18587,7 +19237,7 @@ "equivalente a la aplicación de gamma. Compensa la D. máx. de la película\n" "y recupera el contraste. Usa un gramaje alto para una alto valor en D. máx." -#: ../src/iop/negadoctor.c:1001 +#: ../src/iop/negadoctor.c:1020 msgid "" "gradually compress specular highlights past this value\n" "to avoid clipping while pushing the exposure for mid-tones.\n" @@ -18598,12 +19248,12 @@ "recorte .\n" "De cierta manera, se reproduce el comportamiento del papel mate." -#: ../src/iop/negadoctor.c:1005 +#: ../src/iop/negadoctor.c:1024 msgctxt "section" msgid "virtual print emulation" msgstr "emulación de impresión virtual" -#: ../src/iop/negadoctor.c:1012 +#: ../src/iop/negadoctor.c:1031 msgid "" "correct the printing exposure after inversion to adjust\n" "the global contrast and avoid clipping highlights." @@ -18611,55 +19261,87 @@ "Corregir la exposición de la impresión después de la inversión para ajustar\n" "el contraste general y evitar recortar las luces." -#: ../src/iop/negadoctor.c:1020 +#: ../src/iop/negadoctor.c:1039 msgid "toggle on or off the color controls" msgstr "Activa o desactiva los controles de color" -#: ../src/iop/nlmeans.c:84 +#: ../src/iop/nlmeans.c:78 msgid "astrophoto denoise" msgstr "reducción de ruido en astrofotografía" -#: ../src/iop/nlmeans.c:89 +#: ../src/iop/nlmeans.c:83 msgid "denoise (non-local means)" msgstr "reducción de ruido (medias no locales)" -#: ../src/iop/nlmeans.c:94 +#: ../src/iop/nlmeans.c:88 msgid "apply a poisson noise removal best suited for astrophotography" msgstr "" "Utiliza el método de Poisson para la reducción de ruido. Recomendado para " "astrofotografía" -#: ../src/iop/nlmeans.c:459 +#: ../src/iop/nlmeans.c:462 msgid "radius of the patches to match" msgstr "Radio de los parches para que coincida" -#: ../src/iop/nlmeans.c:467 +#: ../src/iop/nlmeans.c:470 msgid "how much to smooth brightness" msgstr "Grado de suavizado del brillo" -#: ../src/iop/nlmeans.c:470 +#: ../src/iop/nlmeans.c:473 msgid "how much to smooth colors" msgstr "Grado de suavizado de los colores" #. * let's fill the encapsulating widgets #. preview mode #. color scheme -#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2419 -#: ../src/views/darkroom.c:2437 ../src/views/darkroom.c:2444 -#: ../src/views/darkroom.c:2454 ../src/views/darkroom.c:2471 +#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2258 +#: ../src/views/darkroom.c:2276 ../src/views/darkroom.c:2283 +#: ../src/views/darkroom.c:2293 ../src/views/darkroom.c:2310 msgid "overexposed" msgstr "sobreexposición" -#: ../src/iop/overexposed.c:130 ../src/iop/overexposed.c:360 +#: ../src/iop/overexposed.c:123 ../src/iop/overexposed.c:352 msgid "module overexposed failed in buffer allocation" msgstr "" "Ocurrió un fallo en la asignación del búfer del módulo «sobreexposición»." -#: ../src/iop/overexposed.c:156 ../src/iop/overexposed.c:370 +#: ../src/iop/overexposed.c:149 ../src/iop/overexposed.c:362 msgid "module overexposed failed in color conversion" msgstr "" "Ocurrió un fallo en la conversión de color del módulo «sobreexposición»." +#: ../src/iop/primaries.c:74 +msgid "rgb primaries" +msgstr "colores primarios rgb" + +#: ../src/iop/primaries.c:79 +msgid "adjustment of the RGB color primaries for color grading" +msgstr "Reajustes en los colores primarios RGB para la gradación de color" + +#: ../src/iop/primaries.c:395 +msgid "shift red towards yellow or magenta" +msgstr "Desplazar el rojo hacia el magenta o el amarillo" + +#: ../src/iop/primaries.c:396 +msgid "red primary purity" +msgstr "Pureza del color primario rojo" + +#: ../src/iop/primaries.c:397 +msgid "shift green towards cyan or yellow" +msgstr "Desplazar el verde hacia el amarillo o el cian" + +#: ../src/iop/primaries.c:398 +msgid "green primary purity" +msgstr "Pureza del color primario verde" + +#: ../src/iop/primaries.c:399 +msgid "shift blue towards magenta or cyan" +msgstr "Desplazar el azul hacia el cian o el magenta" + +#: ../src/iop/primaries.c:400 +msgid "blue primary purity" +msgstr "Pureza del color primario azul" + #: ../src/iop/profile_gamma.c:96 msgid "unbreak input profile" msgstr "corregir perfil de entrada" @@ -18669,39 +19351,39 @@ msgstr "" "Corrige el perfil de color de entrada para ser aplicados en RGB no lineal" -#: ../src/iop/profile_gamma.c:136 +#: ../src/iop/profile_gamma.c:138 msgid "16 EV dynamic range (generic)" msgstr "16 EV Rango dinámico (genérico)" -#: ../src/iop/profile_gamma.c:142 +#: ../src/iop/profile_gamma.c:144 msgid "14 EV dynamic range (generic)" msgstr "14 EV Rango dinámico (genérico)" -#: ../src/iop/profile_gamma.c:148 +#: ../src/iop/profile_gamma.c:150 msgid "12 EV dynamic range (generic)" msgstr "12 EV Rango dinámico (genérico)" -#: ../src/iop/profile_gamma.c:154 +#: ../src/iop/profile_gamma.c:156 msgid "10 EV dynamic range (generic)" msgstr "10 EV Rango dinámico (genérico)" -#: ../src/iop/profile_gamma.c:160 +#: ../src/iop/profile_gamma.c:162 msgid "08 EV dynamic range (generic)" msgstr "08 EV Rango dinámico (genérico)" -#: ../src/iop/profile_gamma.c:623 +#: ../src/iop/profile_gamma.c:637 msgid "linear part" msgstr "parte lineal" -#: ../src/iop/profile_gamma.c:627 +#: ../src/iop/profile_gamma.c:641 msgid "gamma exponential factor" msgstr "factor exponencial gamma" -#: ../src/iop/profile_gamma.c:638 +#: ../src/iop/profile_gamma.c:652 msgid "adjust to match the average luma of the subject" msgstr "ajustar para que coincida con la luma media del sujeto" -#: ../src/iop/profile_gamma.c:644 +#: ../src/iop/profile_gamma.c:658 msgid "" "number of stops between middle gray and pure black\n" "this is a reading a light meter would give you on the scene" @@ -18709,7 +19391,7 @@ "Número de pasos entre el gris medio y el negro puro.\n" "Es la lectura que un exposímetro mostraría en la escena." -#: ../src/iop/profile_gamma.c:650 +#: ../src/iop/profile_gamma.c:664 msgid "" "number of stops between pure black and pure white\n" "this is a reading a light meter would give you on the scene" @@ -18717,36 +19399,36 @@ "Número de pasos entre el negro puro y el blanco puro.\n" "Es la lectura que un exposímetro mostraría en la escena." -#: ../src/iop/profile_gamma.c:652 +#: ../src/iop/profile_gamma.c:666 msgctxt "section" msgid "optimize automatically" msgstr "optimizar automáticamente" -#: ../src/iop/profile_gamma.c:656 +#: ../src/iop/profile_gamma.c:670 msgid "" -"enlarge or shrink the computed dynamic range\n" -"this is useful when noise perturbates the measurements" +"increase or decrease the computed dynamic range\n" +"this is useful when noise distorts the measurement" msgstr "" "Ampliar o reducir el rango dinámico calculado.\n" -"Es útil cuando el ruido perturba las mediciones" +"Es útil cuando el ruido perturba las mediciones." -#: ../src/iop/profile_gamma.c:660 +#: ../src/iop/profile_gamma.c:674 msgid "make an optimization with some guessing" msgstr "Optimizar con algunas estimaciones" -#: ../src/iop/profile_gamma.c:669 +#: ../src/iop/profile_gamma.c:683 msgid "tone mapping method" msgstr "método de mapeo de tonos" -#: ../src/iop/rawdenoise.c:124 +#: ../src/iop/rawdenoise.c:138 msgid "raw denoise" msgstr "reducción de ruido (raw)" -#: ../src/iop/rawdenoise.c:129 +#: ../src/iop/rawdenoise.c:143 msgid "denoise the raw picture early in the pipeline" msgstr "Reduce el ruido de la imagen en bruto al inicio del procesado" -#: ../src/iop/rawdenoise.c:939 +#: ../src/iop/rawdenoise.c:955 msgid "" "raw denoising\n" "only works for raw images." @@ -18756,9 +19438,9 @@ #. * let's fill the encapsulating widgets #. mode of operation -#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2387 ../src/views/darkroom.c:2393 -#: ../src/views/darkroom.c:2406 +#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2226 ../src/views/darkroom.c:2232 +#: ../src/views/darkroom.c:2245 msgid "raw overexposed" msgstr "archivo en bruto sobreexpuesto" @@ -18767,7 +19449,7 @@ msgid "raw black/white point" msgstr "punto negro / punto blanco" -#: ../src/iop/rawprepare.c:156 +#: ../src/iop/rawprepare.c:172 msgid "" "sets technical specificities of the raw sensor.\n" "touch with great care!" @@ -18776,63 +19458,63 @@ "\n" "Ajuste los valores con especial cuidado." -#: ../src/iop/rawprepare.c:168 +#: ../src/iop/rawprepare.c:184 msgid "passthrough" msgstr "directo" -#: ../src/iop/rawprepare.c:655 +#: ../src/iop/rawprepare.c:663 msgid "invalid crop parameters" msgstr "parámetros no válidos de recorte" -#: ../src/iop/rawprepare.c:656 +#: ../src/iop/rawprepare.c:664 msgid "" "please reset to defaults, update your preset or set to something correct" msgstr "" "Restablezca a los valores predeterminados, actualice el preajuste o " "configure correctamente." -#: ../src/iop/rawprepare.c:922 +#: ../src/iop/rawprepare.c:930 msgid "black level 0" msgstr "nivel de negro 0" -#: ../src/iop/rawprepare.c:923 +#: ../src/iop/rawprepare.c:931 msgid "black level 1" msgstr "nivel de negro 1" -#: ../src/iop/rawprepare.c:924 +#: ../src/iop/rawprepare.c:932 msgid "black level 2" msgstr "nivel de negro 2" -#: ../src/iop/rawprepare.c:925 +#: ../src/iop/rawprepare.c:933 msgid "black level 3" msgstr "nivel de negro 3" -#: ../src/iop/rawprepare.c:952 +#: ../src/iop/rawprepare.c:960 msgid "raw flat field correction to compensate for lens shading" msgstr "Corrección de campo plano para compensar el viñeteado del objetivo" -#: ../src/iop/rawprepare.c:957 +#: ../src/iop/rawprepare.c:965 msgctxt "section" msgid "crop" msgstr "recortar" -#: ../src/iop/rawprepare.c:960 +#: ../src/iop/rawprepare.c:968 msgid "crop left border" msgstr "cortar borde izquierdo" -#: ../src/iop/rawprepare.c:964 +#: ../src/iop/rawprepare.c:972 msgid "crop top border" msgstr "cortar borde superior" -#: ../src/iop/rawprepare.c:968 +#: ../src/iop/rawprepare.c:976 msgid "crop right border" msgstr "cortar borde derecho" -#: ../src/iop/rawprepare.c:972 +#: ../src/iop/rawprepare.c:980 msgid "crop bottom border" msgstr "cortar borde inferior" -#: ../src/iop/rawprepare.c:981 +#: ../src/iop/rawprepare.c:989 msgid "" "raw black/white point correction\n" "only works for the sensors that need it." @@ -18859,11 +19541,11 @@ "Este módulo ha quedado sin soporte. Se recomienda sustituirlo por el módulo " "ecualizador de tono." -#: ../src/iop/relight.c:263 +#: ../src/iop/relight.c:259 msgid "the fill-light in EV" msgstr "La luz de relleno en EV" -#: ../src/iop/relight.c:272 +#: ../src/iop/relight.c:268 msgid "" "select the center of fill-light\n" "ctrl+click to select an area" @@ -18871,16 +19553,11 @@ "Elegir el centro de la luz de relleno\n" "Ctrl+Clic para seleccionar un área" -#: ../src/iop/relight.c:276 +#: ../src/iop/relight.c:272 msgid "toggle tool for picking median lightness in image" msgstr "Activar herramienta para elegir la luz promedio de la imagen" -#: ../src/iop/relight.c:279 ../src/libs/export.c:1131 -#: ../src/libs/metadata_view.c:147 ../src/libs/print_settings.c:2537 -msgid "width" -msgstr "anchura" - -#: ../src/iop/relight.c:280 +#: ../src/iop/relight.c:276 msgid "width of fill-light area defined in zones" msgstr "Amplitud del área de luz de relleno delimitado por zonas" @@ -18902,29 +19579,29 @@ msgid "geometric and frequential, RGB" msgstr "Geométrico y frecuencial, RGB" -#: ../src/iop/retouch.c:1538 +#: ../src/iop/retouch.c:1689 msgid "cannot display scales when the blending mask is displayed" msgstr "No se puede mostrar las escalas cuando se muestra la máscara de fusión" -#: ../src/iop/retouch.c:1861 ../src/iop/retouch.c:1863 -#: ../src/iop/retouch.c:1865 ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2045 ../src/iop/retouch.c:2047 +#: ../src/iop/retouch.c:2049 ../src/iop/retouch.c:2051 #, c-format msgid "default tool changed to %s" msgstr "Herramienta por defecto cambiada a %s" -#: ../src/iop/retouch.c:1861 +#: ../src/iop/retouch.c:2045 msgid "cloning" msgstr "clonado" -#: ../src/iop/retouch.c:1863 +#: ../src/iop/retouch.c:2047 msgid "healing" msgstr "saneado" -#: ../src/iop/retouch.c:2226 +#: ../src/iop/retouch.c:2448 msgid "shapes:" msgstr "figuras" -#: ../src/iop/retouch.c:2230 +#: ../src/iop/retouch.c:2454 msgid "" "to add a shape select an algorithm and a shape type and click on the image.\n" "shapes are added to the current scale" @@ -18933,78 +19610,74 @@ "clic en la imagen.\n" "Las formas se añaden a la escala actual" -#. display & suppress masks -#. copy/paste shapes -#. display final image/current scale -#. auto-levels button -#: ../src/iop/retouch.c:2233 ../src/iop/retouch.c:2334 -#: ../src/iop/retouch.c:2339 ../src/iop/retouch.c:2347 -#: ../src/iop/retouch.c:2351 ../src/iop/retouch.c:2358 -#: ../src/iop/retouch.c:2392 +#: ../src/iop/retouch.c:2458 ../src/iop/retouch.c:2591 +#: ../src/iop/retouch.c:2597 ../src/iop/retouch.c:2606 +#: ../src/iop/retouch.c:2611 ../src/iop/retouch.c:2619 +#: ../src/iop/retouch.c:2664 msgid "editing" msgstr "Modificando" -#: ../src/iop/retouch.c:2233 +#: ../src/iop/retouch.c:2459 msgid "show and edit shapes on the current scale" msgstr "Muestra y edita las figuras en la escala actual" -#: ../src/iop/retouch.c:2234 +#: ../src/iop/retouch.c:2460 msgid "show and edit shapes in restricted mode" msgstr "Muestra y edita las figuras en modo restringido" -#: ../src/iop/retouch.c:2257 +#: ../src/iop/retouch.c:2489 msgid "algorithms:" msgstr "algoritmos:" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2498 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2510 msgid "tools" msgstr "herramientas" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2278 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2518 msgid "activate blur tool" msgstr "Activar la herramienta de desenfoque" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2493 ../src/iop/retouch.c:2499 +#: ../src/iop/retouch.c:2505 ../src/iop/retouch.c:2511 msgid "change algorithm for current form" msgstr "cambiar el algoritmo de la figura acual" -#: ../src/iop/retouch.c:2264 ../src/iop/retouch.c:2281 +#: ../src/iop/retouch.c:2498 ../src/iop/retouch.c:2521 msgid "activate fill tool" msgstr "Activar la herramienta de relleno" -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2284 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2524 msgid "activate cloning tool" msgstr "Activar la herramienta de clonado" -#: ../src/iop/retouch.c:2272 ../src/iop/retouch.c:2287 +#: ../src/iop/retouch.c:2510 ../src/iop/retouch.c:2527 msgid "activate healing tool" msgstr "Activar la herramienta de saneado" #. overwrite tooltip ourself to handle shift+click -#: ../src/iop/retouch.c:2276 +#: ../src/iop/retouch.c:2516 msgid "ctrl+click to change tool for current form" msgstr "" "Para cambiar el tipo de herramienta de la figura actual, pulse Ctrl+Clic" -#: ../src/iop/retouch.c:2277 +#: ../src/iop/retouch.c:2517 msgid "shift+click to set the tool as default" msgstr "Para definir la herramienta como predeterminada, pulse Mayús+Clic" -#: ../src/iop/retouch.c:2296 +#: ../src/iop/retouch.c:2537 msgid "scales:" msgstr "# escalas:" -#: ../src/iop/retouch.c:2301 +#: ../src/iop/retouch.c:2544 msgid "current:" msgstr "actual:" -#: ../src/iop/retouch.c:2306 +#: ../src/iop/retouch.c:2551 msgid "merge from:" msgstr "fusionar desde:" -#: ../src/iop/retouch.c:2314 +#: ../src/iop/retouch.c:2562 msgid "" "top slider adjusts where the merge scales start\n" "bottom slider adjusts the number of scales\n" @@ -19018,44 +19691,44 @@ "El círculo interno indica la escala en uso.\n" "La línea de color inferior indica la existencia de figuras en la escala." -#: ../src/iop/retouch.c:2334 +#: ../src/iop/retouch.c:2591 msgid "display masks" msgstr "Mostrar máscaras" -#: ../src/iop/retouch.c:2339 +#: ../src/iop/retouch.c:2597 msgid "temporarily switch off shapes" msgstr "Desactivar temporalmente las figuras" -#: ../src/iop/retouch.c:2347 +#: ../src/iop/retouch.c:2606 msgid "paste cut shapes to current scale" msgstr "Pegar las figuras cortadas en la escala actual" -#: ../src/iop/retouch.c:2351 +#: ../src/iop/retouch.c:2611 msgid "cut shapes from current scale" msgstr "Cortar figuras desde la escala actual" -#: ../src/iop/retouch.c:2358 +#: ../src/iop/retouch.c:2619 msgid "display wavelet scale" msgstr "Mostrar la escala de la ondícula" -#: ../src/iop/retouch.c:2366 +#: ../src/iop/retouch.c:2627 msgctxt "section" msgid "preview single scale" msgstr "vista previa de una escala" -#: ../src/iop/retouch.c:2377 +#: ../src/iop/retouch.c:2641 msgid "adjust preview levels" msgstr "ajustar los niveles de vista previa" -#: ../src/iop/retouch.c:2392 ../src/iop/rgblevels.c:1051 +#: ../src/iop/retouch.c:2664 ../src/iop/rgblevels.c:1106 msgid "auto levels" msgstr "niveles automáticos" -#: ../src/iop/retouch.c:2400 +#: ../src/iop/retouch.c:2672 msgid "shape selected:" msgstr "figura seleccionada:" -#: ../src/iop/retouch.c:2405 +#: ../src/iop/retouch.c:2678 msgid "" "click on a shape to select it,\n" "to unselect click on an empty space" @@ -19063,61 +19736,61 @@ "Pulse en una figura para seleccionarla.\n" "Para deseleccionar, pulse en un espacio vacío" -#: ../src/iop/retouch.c:2412 +#: ../src/iop/retouch.c:2687 msgid "erase the detail or fills with chosen color" msgstr "borrar el detalle o rellenar con el color elegido" -#: ../src/iop/retouch.c:2419 +#: ../src/iop/retouch.c:2697 msgid "fill color: " msgstr "color de relleno " -#: ../src/iop/retouch.c:2424 ../src/iop/retouch.c:2425 +#: ../src/iop/retouch.c:2702 ../src/iop/retouch.c:2703 msgid "select fill color" msgstr "seleccione el color de relleno" -#: ../src/iop/retouch.c:2430 +#: ../src/iop/retouch.c:2713 msgid "pick fill color from image" msgstr "elegir color de relleno de la imagen" -#: ../src/iop/retouch.c:2431 +#: ../src/iop/retouch.c:2714 msgid "pick fill color" msgstr "recolectar color de relleno" -#: ../src/iop/retouch.c:2439 +#: ../src/iop/retouch.c:2724 msgid "adjusts color brightness to fine-tune it. works with erase as well" msgstr "" "ajustes del brillo del color para afinarlo. funciona también con borrado" -#: ../src/iop/retouch.c:2445 +#: ../src/iop/retouch.c:2730 msgid "type for the blur algorithm" msgstr "tipo de algoritmo de desenfoque" -#: ../src/iop/retouch.c:2449 +#: ../src/iop/retouch.c:2734 msgid "radius of the selected blur type" msgstr "Radio del tipo de desenfoque seleccionado" -#: ../src/iop/retouch.c:2455 +#: ../src/iop/retouch.c:2741 msgid "set the opacity on the selected shape" msgstr "seleccionar la opacidad en la figura seleccionada" -#: ../src/iop/retouch.c:2461 +#: ../src/iop/retouch.c:2748 msgctxt "section" msgid "retouch tools" msgstr "herramienta de retoque" #. wavelet decompose -#: ../src/iop/retouch.c:2470 +#: ../src/iop/retouch.c:2757 msgctxt "section" msgid "wavelet decompose" msgstr "descomponer en ondículas" #. shapes -#: ../src/iop/retouch.c:2484 +#: ../src/iop/retouch.c:2771 msgctxt "section" msgid "shapes" msgstr "figuras" -#: ../src/iop/retouch.c:3589 ../src/iop/retouch.c:4427 +#: ../src/iop/retouch.c:3986 ../src/iop/retouch.c:4956 #, c-format msgid "max scale is %i for this image size" msgstr "La escala máxima es %i para este tamaño de imagen" @@ -19126,59 +19799,59 @@ msgid "rgb curve" msgstr "curva rgb" -#: ../src/iop/rgbcurve.c:142 +#: ../src/iop/rgbcurve.c:144 msgid "alter an image’s tones using curves in RGB color space" msgstr "Modifica los tonos de la imagen mediante curvas en el espacio RGB" -#: ../src/iop/rgbcurve.c:193 ../src/iop/tonecurve.c:548 +#: ../src/iop/rgbcurve.c:195 ../src/iop/tonecurve.c:569 msgid "gamma 1.0 (linear)" msgstr "gamma 1.0 (lineal)" -#: ../src/iop/rgbcurve.c:203 ../src/iop/tonecurve.c:558 +#: ../src/iop/rgbcurve.c:205 ../src/iop/tonecurve.c:579 msgid "contrast - med (linear)" msgstr "contraste medio (lineal)" -#: ../src/iop/rgbcurve.c:212 ../src/iop/tonecurve.c:567 +#: ../src/iop/rgbcurve.c:214 ../src/iop/tonecurve.c:588 msgid "contrast - high (linear)" msgstr "contraste alto (lineal)" -#: ../src/iop/rgbcurve.c:226 ../src/iop/tonecurve.c:579 +#: ../src/iop/rgbcurve.c:228 ../src/iop/tonecurve.c:600 msgid "contrast - med (gamma 2.2)" msgstr "contraste medio (gamma 2.2)" -#: ../src/iop/rgbcurve.c:239 ../src/iop/tonecurve.c:590 +#: ../src/iop/rgbcurve.c:241 ../src/iop/tonecurve.c:611 msgid "contrast - high (gamma 2.2)" msgstr "contraste alto (gamma 2.2)" -#: ../src/iop/rgbcurve.c:252 ../src/iop/tonecurve.c:603 +#: ../src/iop/rgbcurve.c:254 ../src/iop/tonecurve.c:624 msgid "gamma 2.0" msgstr "gamma 2.0" -#: ../src/iop/rgbcurve.c:258 ../src/iop/tonecurve.c:609 +#: ../src/iop/rgbcurve.c:260 ../src/iop/tonecurve.c:630 msgid "gamma 0.5" msgstr "gamma 0.5" -#: ../src/iop/rgbcurve.c:263 ../src/iop/tonecurve.c:614 +#: ../src/iop/rgbcurve.c:265 ../src/iop/tonecurve.c:635 msgid "logarithm (base 2)" msgstr "logarítmico (base 2)" -#: ../src/iop/rgbcurve.c:268 ../src/iop/tonecurve.c:619 +#: ../src/iop/rgbcurve.c:270 ../src/iop/tonecurve.c:640 msgid "exponential (base 2)" msgstr "exponencial (base 2)" -#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:999 +#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:1038 msgid "choose between linked and independent channels." msgstr "Elegir entre canales enlazados o independientes." -#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1003 +#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1043 msgid "curve nodes for r channel" msgstr "nodos de la curva para el canal R" -#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1004 +#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1044 msgid "curve nodes for g channel" msgstr "nodos de la curva para el canal G" -#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1005 +#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1045 msgid "curve nodes for b channel" msgstr "nodos de la curva para el canal B" @@ -19186,15 +19859,15 @@ msgid "rgb levels" msgstr "niveles rgb" -#: ../src/iop/rgblevels.c:122 +#: ../src/iop/rgblevels.c:124 msgid "adjust black, white and mid-gray points in RGB color space" msgstr "Ajusta los puntos negro, blanco y gris medio en espacio de color RGB" -#: ../src/iop/rgblevels.c:1056 +#: ../src/iop/rgblevels.c:1112 msgid "auto region" msgstr "región automática" -#: ../src/iop/rgblevels.c:1058 +#: ../src/iop/rgblevels.c:1115 msgid "" "apply auto levels based on a region defined by the user\n" "click and drag to draw the area\n" @@ -19210,7 +19883,7 @@ msgid "rotate pixels" msgstr "rotar pixeles" -#: ../src/iop/rotatepixels.c:97 ../src/iop/scalepixels.c:82 +#: ../src/iop/rotatepixels.c:99 ../src/iop/scalepixels.c:84 msgid "" "internal module to setup technical specificities of raw sensor.\n" "\n" @@ -19221,11 +19894,11 @@ "\n" "Evite modificar aquí los valores." -#: ../src/iop/rotatepixels.c:366 +#: ../src/iop/rotatepixels.c:381 msgid "automatic pixel rotation" msgstr "rotación automática de pixeles" -#: ../src/iop/rotatepixels.c:367 +#: ../src/iop/rotatepixels.c:382 msgid "" "automatic pixel rotation\n" "only works for the sensors that need it." @@ -19238,11 +19911,11 @@ msgid "scale pixels" msgstr "redimensionar pixeles" -#: ../src/iop/scalepixels.c:271 +#: ../src/iop/scalepixels.c:281 msgid "automatic pixel scaling" msgstr "escalado automático de pixeles" -#: ../src/iop/scalepixels.c:272 +#: ../src/iop/scalepixels.c:282 msgid "" "automatic pixel scaling\n" "only works for the sensors that need it." @@ -19250,11 +19923,11 @@ "La redimensión automática del pixel\n" "Funciona sólo para los sensores que lo requieran." -#: ../src/iop/shadhi.c:175 +#: ../src/iop/shadhi.c:120 msgid "shadows and highlights" msgstr "sombras y luces" -#: ../src/iop/shadhi.c:195 +#: ../src/iop/shadhi.c:142 msgid "" "modify the tonal range of the shadows and highlights\n" "of an image by enhancing local contrast." @@ -19262,27 +19935,27 @@ "Cambia la gama tonal de las sombras y las luces\n" "mediante el realce del contraste local" -#: ../src/iop/shadhi.c:676 ../src/iop/splittoning.c:548 +#: ../src/iop/shadhi.c:711 ../src/iop/splittoning.c:544 msgid "compress" msgstr "comprimir" -#: ../src/iop/shadhi.c:683 +#: ../src/iop/shadhi.c:718 msgid "correct shadows" msgstr "Corrección de sombras" -#: ../src/iop/shadhi.c:684 +#: ../src/iop/shadhi.c:719 msgid "correct highlights" msgstr "Corrección de luces" -#: ../src/iop/shadhi.c:685 +#: ../src/iop/shadhi.c:720 msgid "shift white point" msgstr "Mover punto blanco" -#: ../src/iop/shadhi.c:687 +#: ../src/iop/shadhi.c:722 msgid "filter to use for softening. bilateral avoids halos" msgstr "Filtro de suavizado. El bilateral evita los halos" -#: ../src/iop/shadhi.c:688 +#: ../src/iop/shadhi.c:723 msgid "" "compress the effect on shadows/highlights and\n" "preserve mid-tones" @@ -19290,11 +19963,11 @@ "Comprime el efecto en las sombras/luces\n" "preservando los tonos medios" -#: ../src/iop/shadhi.c:689 +#: ../src/iop/shadhi.c:724 msgid "adjust saturation of shadows" msgstr "Adecuar la saturación de sombras" -#: ../src/iop/shadhi.c:690 +#: ../src/iop/shadhi.c:725 msgid "adjust saturation of highlights" msgstr "Adecuar la saturación de luces" @@ -19303,46 +19976,46 @@ msgid "sharpen" msgstr "enfoque" -#: ../src/iop/sharpen.c:93 +#: ../src/iop/sharpen.c:95 msgid "sharpen the details in the image using a standard UnSharp Mask (USM)" msgstr "" "Aumenta la nitidez en los detalles utilizando una máscara de desenfoque" -#: ../src/iop/sharpen.c:95 +#: ../src/iop/sharpen.c:97 msgid "linear or non-linear, Lab, display or scene-referred" msgstr "Lineal o no lineal, Lab, basado en la escena o pantalla" -#: ../src/iop/sharpen.c:97 +#: ../src/iop/sharpen.c:99 msgid "quasi-linear, Lab, display or scene-referred" msgstr "Cuasilineal, Lab, basado en la escena o pantalla" #. add the preset. #. restrict to raw images -#: ../src/iop/sharpen.c:104 ../src/iop/sharpen.c:108 +#: ../src/iop/sharpen.c:106 ../src/iop/sharpen.c:110 msgid "sharpen" msgstr "enfoque" -#: ../src/iop/sharpen.c:443 +#: ../src/iop/sharpen.c:438 msgid "spatial extent of the unblurring" msgstr "Extensión espacial del enfoque" -#: ../src/iop/sharpen.c:447 +#: ../src/iop/sharpen.c:442 msgid "strength of the sharpen" msgstr "Fuerza del enfoque" -#: ../src/iop/sharpen.c:451 +#: ../src/iop/sharpen.c:446 msgid "threshold to activate sharpen" msgstr "Umbral para activar el enfoque" -#: ../src/iop/sigmoid.c:89 +#: ../src/iop/sigmoid.c:195 msgid "sigmoid" msgstr "sigmoidal" -#: ../src/iop/sigmoid.c:94 +#: ../src/iop/sigmoid.c:200 msgid "tone mapping|view transform|display transform" msgstr "mapeo de tonos|cambiar aspecto|cambiar visualización" -#: ../src/iop/sigmoid.c:99 +#: ../src/iop/sigmoid.c:206 msgid "" "apply a view transform to make a image displayable\n" "on a screen or print. uses a robust and smooth\n" @@ -19353,19 +20026,19 @@ "suave y\n" "consistente con métodos opcionales para preservar el color." -#: ../src/iop/sigmoid.c:155 +#: ../src/iop/sigmoid.c:258 msgid "neutral gray" msgstr "gris neutro" -#: ../src/iop/sigmoid.c:160 +#: ../src/iop/sigmoid.c:264 msgid "ACES 100-nit like" msgstr "similar a ACES 100 nits" -#: ../src/iop/sigmoid.c:165 +#: ../src/iop/sigmoid.c:270 msgid "Reinhard" msgstr "Reinhard" -#: ../src/iop/sigmoid.c:683 +#: ../src/iop/sigmoid.c:917 msgid "" "compression of the applied curve\n" "implicitly defines the supported input dynamic range" @@ -19373,7 +20046,7 @@ "Compresión de la curva utilizada.\n" "Define implícitamente el rango dinámico de entrada admitido." -#: ../src/iop/sigmoid.c:686 +#: ../src/iop/sigmoid.c:920 msgid "" "shift the compression towards shadows or highlights.\n" "negative values increase contrast in shadows.\n" @@ -19385,7 +20058,7 @@ "Los valores positivos aumentan el contraste en las luces.\n" "El extremo opuesto tendrá una reducción del contraste." -#: ../src/iop/sigmoid.c:695 +#: ../src/iop/sigmoid.c:929 msgid "" "optional correction of the hue twist introduced by\n" "the per-channel processing method." @@ -19393,15 +20066,55 @@ "Corrección opcional de la variación de tono introducida por\n" "el método de procesamiento por canal." -#: ../src/iop/sigmoid.c:702 +#: ../src/iop/sigmoid.c:936 ../src/iop/sigmoid.c:940 +msgid "primaries" +msgstr "colores primarios" + +#: ../src/iop/sigmoid.c:937 +msgid "set custom primaries" +msgstr "Configuraciones personalizadas de los colores primarios" + +#: ../src/iop/sigmoid.c:943 +msgid "primaries to use as the base for below adjustments" +msgstr "Colores primarios que se utilizarán como base para los ajustes debajo" + +#: ../src/iop/sigmoid.c:962 +msgid "attenuate the purity of the red primary" +msgstr "Atenúa la pureza del color primario rojo" + +#: ../src/iop/sigmoid.c:963 +msgid "rotate the red primary" +msgstr "Rota el color primario rojo" + +#: ../src/iop/sigmoid.c:964 +msgid "attenuate the purity of the green primary" +msgstr "Atenúa la pureza del color primario verde" + +#: ../src/iop/sigmoid.c:965 +msgid "rotate the green primary" +msgstr "Rota el color primario verde" + +#: ../src/iop/sigmoid.c:966 +msgid "attenuate the purity of the blue primary" +msgstr "Atenúa la pureza del color primario azul" + +#: ../src/iop/sigmoid.c:967 +msgid "rotate the blue primary" +msgstr "Rota el color primario azul" + +#: ../src/iop/sigmoid.c:974 +msgid "recover some of the original purity after the inset" +msgstr "Recupera parte de la pureza original tras la modificación" + +#: ../src/iop/sigmoid.c:978 msgid "display luminance" msgstr "luminancia del destino" -#: ../src/iop/sigmoid.c:706 +#: ../src/iop/sigmoid.c:979 msgid "set display black/white targets" msgstr "Fijar destinos de visualización en blanco y negro" -#: ../src/iop/sigmoid.c:714 +#: ../src/iop/sigmoid.c:987 msgid "" "the black luminance of the target display or print.\n" "can be used creatively for a faded look." @@ -19410,7 +20123,7 @@ "Puede utilizarse con intenciones creativas para obtener un aspecto " "difuminado." -#: ../src/iop/sigmoid.c:719 +#: ../src/iop/sigmoid.c:992 msgid "" "the white luminance of the target display or print.\n" "can be used creatively for a faded look or blowing out whites earlier." @@ -19423,23 +20136,23 @@ msgid "soften" msgstr "suavizar" -#: ../src/iop/soften.c:100 +#: ../src/iop/soften.c:102 msgid "create a softened image using the Orton effect" msgstr "Produce una imagen suavizada mediante el efecto Orton" -#: ../src/iop/soften.c:371 +#: ../src/iop/soften.c:366 msgid "the size of blur" msgstr "Extensión del difuminado" -#: ../src/iop/soften.c:375 +#: ../src/iop/soften.c:370 msgid "the saturation of blur" msgstr "Saturación del difuminado" -#: ../src/iop/soften.c:379 +#: ../src/iop/soften.c:374 msgid "the brightness of blur" msgstr "Brillo del difuminado" -#: ../src/iop/soften.c:383 +#: ../src/iop/soften.c:378 msgid "the mix of effect" msgstr "La intensidad del efecto" @@ -19447,7 +20160,7 @@ msgid "split-toning" msgstr "variaciones tonales" -#: ../src/iop/splittoning.c:101 +#: ../src/iop/splittoning.c:103 msgid "" "use two specific colors for shadows and highlights and\n" "create a linear toning effect between them up to a pivot." @@ -19455,49 +20168,49 @@ "Utiliza dos colores específicos para las sombras y las luces\n" "creando un gradiente lineal entre ellos" -#: ../src/iop/splittoning.c:118 +#: ../src/iop/splittoning.c:120 msgid "authentic sepia" msgstr "sepia auténtica" -#: ../src/iop/splittoning.c:127 +#: ../src/iop/splittoning.c:129 msgid "authentic cyanotype" msgstr "cianotipo auténtico" -#: ../src/iop/splittoning.c:136 +#: ../src/iop/splittoning.c:138 msgid "authentic platinotype" msgstr "platinotipo auténtico" -#: ../src/iop/splittoning.c:145 +#: ../src/iop/splittoning.c:147 msgid "chocolate brown" msgstr "marrón chocolate" -#: ../src/iop/splittoning.c:490 +#: ../src/iop/splittoning.c:486 msgid "select the saturation tone" msgstr "Seleccionar el tono de saturación" -#: ../src/iop/splittoning.c:494 +#: ../src/iop/splittoning.c:490 msgid "select tone color" msgstr "seleccionar tono de color" -#: ../src/iop/splittoning.c:524 +#: ../src/iop/splittoning.c:520 msgctxt "section" msgid "shadows" msgstr "sombras" -#: ../src/iop/splittoning.c:530 +#: ../src/iop/splittoning.c:526 msgctxt "section" msgid "highlights" msgstr "luces" -#: ../src/iop/splittoning.c:539 +#: ../src/iop/splittoning.c:535 msgid "balance" msgstr "balance" -#: ../src/iop/splittoning.c:546 +#: ../src/iop/splittoning.c:542 msgid "the balance of center of split-toning" msgstr "Equilibrio central en las variaciones tonales" -#: ../src/iop/splittoning.c:550 +#: ../src/iop/splittoning.c:546 msgid "" "compress the effect on highlights/shadows and\n" "preserve mid-tones" @@ -19523,17 +20236,17 @@ msgid "geometric, raw" msgstr "Geométrico, negativo digital" -#: ../src/iop/spots.c:226 +#: ../src/iop/spots.c:238 msgid "spot module is limited to 64 shapes. please add a new instance!" msgstr "" "El módulo eliminación de manchas está limitado a 64 figuras. Utilice un " "nuevo módulo." -#: ../src/iop/spots.c:872 +#: ../src/iop/spots.c:874 msgid "number of strokes:" msgstr "cantidad de figuras:" -#: ../src/iop/spots.c:876 +#: ../src/iop/spots.c:878 msgid "" "click on a shape and drag on canvas.\n" "use the mouse wheel to adjust size.\n" @@ -19543,133 +20256,120 @@ "Use la rueda del ratón para ajustar el tamaño.\n" "Con pulsado secundario se elimina la figura." -#: ../src/iop/spots.c:879 +#: ../src/iop/spots.c:881 msgid "show and edit shapes" msgstr "Mostrar y editar figuras" -#: ../src/iop/temperature.c:204 +#: ../src/iop/temperature.c:212 msgctxt "modulename" msgid "white balance" msgstr "balance de blancos" -#: ../src/iop/temperature.c:211 +#: ../src/iop/temperature.c:219 msgid "scale raw RGB channels to balance white and help demosaicing" msgstr "" "Procesa los canales RGB en bruto, favoreciendo a la interpolación cromática, " "para equilibrar los blancos" -#: ../src/iop/temperature.c:1149 -msgid "white balance applied twice" -msgstr "Balance de blancos aplicado dos veces" - -#: ../src/iop/temperature.c:1150 -msgid "" -"the color calibration module is enabled,\n" -"and performing chromatic adaptation.\n" -"set the white balance here to camera reference (D65)\n" -"or disable chromatic adaptation in color calibration." -msgstr "" -"El módulo de calibración de color está activado\n" -"y realizando la adaptación cromática.\n" -"Ajuste el balance de blancos al punto de referencia de la cámara (D65) en " -"este módulo\n" -"o desactive la adaptación cromática en calibración de color." - -#: ../src/iop/temperature.c:1430 +#: ../src/iop/temperature.c:1388 #, c-format msgid "`%s' color matrix not found for image" msgstr "«%s» matriz de color no encontrada para la imagen" -#: ../src/iop/temperature.c:1459 +#: ../src/iop/temperature.c:1418 #, c-format msgid "failed to read camera white balance information from `%s'!" msgstr "" "Error al leer la información de balance de blancos de la cámara desde «%s»" -#: ../src/iop/temperature.c:1631 +#: ../src/iop/temperature.c:1612 msgctxt "white balance" msgid "as shot" msgstr "acorde al disparo" #. old "spot", reason: describes exactly what'll happen -#: ../src/iop/temperature.c:1634 +#: ../src/iop/temperature.c:1615 msgctxt "white balance" msgid "from image area" msgstr "área de imagen" -#: ../src/iop/temperature.c:1635 +#: ../src/iop/temperature.c:1616 msgctxt "white balance" msgid "user modified" msgstr "ajuste manual" #. old "camera neutral", reason: better matches intent -#: ../src/iop/temperature.c:1637 +#: ../src/iop/temperature.c:1618 msgctxt "white balance" msgid "camera reference" msgstr "neutral" -#: ../src/iop/temperature.c:1920 ../src/iop/temperature.c:1938 +#: ../src/iop/temperature.c:1897 ../src/iop/temperature.c:1915 msgid "green channel coefficient" msgstr "Coeficiente del canal verde" -#: ../src/iop/temperature.c:1922 +#: ../src/iop/temperature.c:1899 msgid "magenta channel coefficient" msgstr "Coeficiente del canal magenta" -#: ../src/iop/temperature.c:1924 +#: ../src/iop/temperature.c:1901 msgid "cyan channel coefficient" msgstr "Coeficiente del canal cian" -#: ../src/iop/temperature.c:1926 +#: ../src/iop/temperature.c:1903 msgid "yellow channel coefficient" msgstr "Coeficiente del canal amarillo" -#: ../src/iop/temperature.c:1936 +#: ../src/iop/temperature.c:1913 msgid "red channel coefficient" msgstr "Coeficiente del canal rojo" -#: ../src/iop/temperature.c:1940 +#: ../src/iop/temperature.c:1917 msgid "blue channel coefficient" msgstr "Coeficiente del canal azul" -#: ../src/iop/temperature.c:1942 +#: ../src/iop/temperature.c:1918 +msgid "emerald" +msgstr "esmeralda" + +#: ../src/iop/temperature.c:1919 msgid "emerald channel coefficient" msgstr "Coeficiente del canal verde cian" #. relabel to settings to remove confusion between module presets #. and white balance settings -#: ../src/iop/temperature.c:2029 ../src/iop/temperature.c:2042 -#: ../src/iop/temperature.c:2049 ../src/iop/temperature.c:2055 -#: ../src/iop/temperature.c:2074 +#: ../src/iop/temperature.c:1997 ../src/iop/temperature.c:2010 +#: ../src/iop/temperature.c:2017 ../src/iop/temperature.c:2023 +#: ../src/iop/temperature.c:2042 msgid "settings" msgstr "configuración" -#: ../src/iop/temperature.c:2029 +#: ../src/iop/temperature.c:1997 msgid "as shot" msgstr "según la toma original" -#: ../src/iop/temperature.c:2032 +#: ../src/iop/temperature.c:2000 msgid "set white balance to as shot" msgstr "" "Establece el balance de blancos correspondiente a los parámetros del disparo" -#: ../src/iop/temperature.c:2042 +#: ../src/iop/temperature.c:2010 msgid "from image area" msgstr "desde un área de imagen" -#: ../src/iop/temperature.c:2049 +#: ../src/iop/temperature.c:2017 msgid "user modified" msgstr "ajuste manual" -#: ../src/iop/temperature.c:2052 +#: ../src/iop/temperature.c:2020 msgid "set white balance to user modified" msgstr "Establece el balance de blancos manualmente" -#: ../src/iop/temperature.c:2055 +#: ../src/iop/temperature.c:2023 msgid "camera reference" msgstr "neutral" -#: ../src/iop/temperature.c:2060 +#: ../src/iop/temperature.c:2028 msgid "" "set white balance to camera reference point\n" "in most cases it should be D65" @@ -19677,62 +20377,66 @@ "Ajusta el balance de blancos al punto de referencia de la cámara.\n" "Normalmente debería ser D65." -#: ../src/iop/temperature.c:2075 +#: ../src/iop/temperature.c:2043 msgid "choose white balance setting" msgstr "" "Elegir el tipo de ajuste para el balance de blancos\n" "o alguno de los predefinidos en la cámara" -#: ../src/iop/temperature.c:2080 +#: ../src/iop/temperature.c:2048 msgid "finetune" msgstr "afinar" -#: ../src/iop/temperature.c:2082 +#: ../src/iop/temperature.c:2050 msgid "fine tune camera's white balance setting" msgstr "" "Ajustar la precisión del balance de blancos predeterminado en\n" "grados de densidad de color microrrecíprocos (MIRED)" -#: ../src/iop/temperature.c:2093 +#: ../src/iop/temperature.c:2058 msgctxt "section" msgid "scene illuminant temp" msgstr "temperatura de la fuente de luz" -#: ../src/iop/temperature.c:2094 +#: ../src/iop/temperature.c:2059 msgid "click to cycle color mode on sliders" msgstr "Pulse para alternar los modos de color de los controles deslizantes" -#: ../src/iop/temperature.c:2108 +#: ../src/iop/temperature.c:2073 msgid "color temperature (in Kelvin)" msgstr "Temperatura de color en grados Kelvin" -#: ../src/iop/temperature.c:2114 +#: ../src/iop/temperature.c:2079 msgid "tint" msgstr "tinte" -#: ../src/iop/temperature.c:2117 +#: ../src/iop/temperature.c:2082 msgid "color tint of the image, from magenta (value < 1) to green (value > 1)" msgstr "" "Indica el tinte de color de la imagen: desde el magenta (valor < 1) hasta el " "verde (valor > 1)" -#: ../src/iop/temperature.c:2123 +#: ../src/iop/temperature.c:2088 msgid "channel coefficients" msgstr "coeficientes de canal" -#: ../src/iop/temperature.c:2158 +#: ../src/iop/temperature.c:2097 +msgid "various" +msgstr "distintos" + +#: ../src/iop/temperature.c:2123 msgid "white balance disabled for camera" msgstr "balance de blancos deshabilitado para la cámara" -#: ../src/iop/tonecurve.c:190 +#: ../src/iop/tonecurve.c:161 msgid "tone curve" msgstr "curva de tono" -#: ../src/iop/tonecurve.c:210 +#: ../src/iop/tonecurve.c:183 msgid "alter an image’s tones using curves" msgstr "Modifica los tonos de la imagen mediante curvas" -#: ../src/iop/tonecurve.c:1125 +#: ../src/iop/tonecurve.c:1147 msgid "" "if set to auto, a and b curves have no effect and are not displayed. chroma " "values (a and b) of each pixel are then adjusted based on L curve data. auto " @@ -19743,118 +20447,110 @@ "curva L. XYZ en modo automático, funcionará similarmente, pero los cambios " "de saturación serán en el espacio XYZ." -#: ../src/iop/tonecurve.c:1134 +#: ../src/iop/tonecurve.c:1156 msgid "tonecurve for L channel" msgstr "Curva para el canal L" -#: ../src/iop/tonecurve.c:1135 +#: ../src/iop/tonecurve.c:1157 msgid "tonecurve for a channel" msgstr "Curva para el canal a" -#: ../src/iop/tonecurve.c:1136 +#: ../src/iop/tonecurve.c:1158 msgid "tonecurve for b channel" msgstr "Curva para el canal b" -#: ../src/iop/tonecurve.c:1143 ../src/iop/watermark.c:1305 -#: ../src/libs/colorpicker.c:597 +#: ../src/iop/tonecurve.c:1165 ../src/iop/watermark.c:1353 +#: ../src/libs/colorpicker.c:675 msgid "pick color" msgstr "seleccionar color" -#: ../src/iop/toneequal.c:311 +#: ../src/iop/toneequal.c:319 msgid "tone equalizer" msgstr "ecualizador de tono" -#: ../src/iop/toneequal.c:316 +#: ../src/iop/toneequal.c:324 msgid "tone curve|tone mapping|relight|background light|shadows highlights" msgstr "curva de tono|mapeo de tonos|luz de relleno|luz de fondo|sombras luces" -#: ../src/iop/toneequal.c:323 +#: ../src/iop/toneequal.c:331 msgid "relight the scene as if the lighting was done directly on the scene" msgstr "Ilumina la escena como si se hubiera hecho directamente desde la toma" -#: ../src/iop/toneequal.c:326 +#: ../src/iop/toneequal.c:334 msgid "quasi-linear, RGB" msgstr "Cuasilineal, RGB" -#: ../src/iop/toneequal.c:327 +#: ../src/iop/toneequal.c:335 msgid "quasi-linear, RGB, scene-referred" msgstr "Cuasilineal, RGB, basado en la escena" -#: ../src/iop/toneequal.c:458 +#: ../src/iop/toneequal.c:489 msgid "simple tone curve" msgstr "curva de tono básico" -#: ../src/iop/toneequal.c:472 +#: ../src/iop/toneequal.c:503 msgid "mask blending: all purposes" msgstr "fusión de máscara: multiuso" -#: ../src/iop/toneequal.c:479 +#: ../src/iop/toneequal.c:510 msgid "mask blending: people with backlight" msgstr "fusión de máscara: sujetos a contraluz" -#: ../src/iop/toneequal.c:496 +#: ../src/iop/toneequal.c:527 msgid "compress shadows/highlights (EIGF): strong" msgstr "compresión de sombras/luces (FGIE): intensa" -#: ../src/iop/toneequal.c:501 +#: ../src/iop/toneequal.c:532 msgid "compress shadows/highlights (GF): strong" msgstr "compresión de sombras/luces (FG): intensa" -#: ../src/iop/toneequal.c:510 +#: ../src/iop/toneequal.c:541 msgid "compress shadows/highlights (EIGF): medium" msgstr "compresión de sombras/luces (FGIE): media" -#: ../src/iop/toneequal.c:515 +#: ../src/iop/toneequal.c:546 msgid "compress shadows/highlights (GF): medium" msgstr "compresión de sombras/luces (FG): media" -#: ../src/iop/toneequal.c:524 +#: ../src/iop/toneequal.c:555 msgid "compress shadows/highlights (EIGF): soft" msgstr "compresión de sombras/luces (FGIE): ligera" -#: ../src/iop/toneequal.c:529 +#: ../src/iop/toneequal.c:560 msgid "compress shadows/highlights (GF): soft" msgstr "compresión de sombras/luces (FG): ligera" -#: ../src/iop/toneequal.c:537 +#: ../src/iop/toneequal.c:568 msgid "contrast tone curve: soft" msgstr "curva de tono: contraste bajo" -#: ../src/iop/toneequal.c:542 +#: ../src/iop/toneequal.c:573 msgid "contrast tone curve: medium" msgstr "curva de tono: contraste medio" -#: ../src/iop/toneequal.c:547 +#: ../src/iop/toneequal.c:578 msgid "contrast tone curve: strong" msgstr "curva de tono: contraste alto" -#: ../src/iop/toneequal.c:570 +#: ../src/iop/toneequal.c:601 msgid "relight: fill-in" msgstr "iluminar: luz de relleno" -#: ../src/iop/toneequal.c:627 -msgid "" -"tone equalizer needs to be after distortion modules in the pipeline – " -"disabled" -msgstr "" -"El ecualizador de tono debe estar después de los módulos de distorsión en el " -"procesado: deshabilitado" - -#: ../src/iop/toneequal.c:1091 +#: ../src/iop/toneequal.c:1120 msgid "tone equalizer failed to allocate memory, check your RAM settings" msgstr "" "El ecualizador de tono no pudo reservar memoria, verifique la configuración " "de la RAM" -#: ../src/iop/toneequal.c:1795 ../src/iop/toneequal.c:2180 +#: ../src/iop/toneequal.c:1825 ../src/iop/toneequal.c:2196 msgid "the interpolation is unstable, decrease the curve smoothing" msgstr "La interpolación es inestable, disminuya el suavizado de la curva" -#: ../src/iop/toneequal.c:1830 ../src/iop/toneequal.c:1897 +#: ../src/iop/toneequal.c:1860 ../src/iop/toneequal.c:1927 msgid "wait for the preview to finish recomputing" msgstr "Espere a que la vista previa termine de recalcular" -#: ../src/iop/toneequal.c:2037 ../src/iop/toneequal.c:2587 +#: ../src/iop/toneequal.c:2069 ../src/iop/toneequal.c:2628 msgid "" "scroll over image to change tone exposure\n" "shift+scroll for large steps; ctrl+scroll for small steps" @@ -19863,91 +20559,91 @@ "Para incrementos grandes use Mayús+Desplazamiento; para incrementos pequeños " "Ctrl+Desplazamiento" -#: ../src/iop/toneequal.c:2185 +#: ../src/iop/toneequal.c:2201 msgid "some parameters are out-of-bounds" msgstr "Algunos parámetros están fuera de los límites" -#: ../src/iop/toneequal.c:2524 +#: ../src/iop/toneequal.c:2518 #, c-format msgid "%+.1f EV" msgstr "%+.1f EV" -#: ../src/iop/toneequal.c:3236 +#: ../src/iop/toneequal.c:3283 #, c-format msgid "[%s over image] change tone exposure" msgstr "[%s sobre la imagen] cambiar la exposición tonal" -#: ../src/iop/toneequal.c:3239 +#: ../src/iop/toneequal.c:3286 #, c-format msgid "[%s over image] change tone exposure in large steps" msgstr "" "[%s sobre la imagen] cambiar la exposición tonal en incrementos grandes" -#: ../src/iop/toneequal.c:3242 +#: ../src/iop/toneequal.c:3289 #, c-format msgid "[%s over image] change tone exposure in small steps" msgstr "" "[%s sobre la imagen] cambiar la exposición tonal en incrementos pequeños" #. Simple view -#: ../src/iop/toneequal.c:3323 ../src/iop/toneequal.c:3352 -#: ../src/iop/toneequal.c:3353 ../src/iop/toneequal.c:3354 -#: ../src/iop/toneequal.c:3355 ../src/iop/toneequal.c:3356 -#: ../src/iop/toneequal.c:3357 ../src/iop/toneequal.c:3358 -#: ../src/iop/toneequal.c:3359 ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3376 ../src/iop/toneequal.c:3405 +#: ../src/iop/toneequal.c:3406 ../src/iop/toneequal.c:3407 +#: ../src/iop/toneequal.c:3408 ../src/iop/toneequal.c:3409 +#: ../src/iop/toneequal.c:3410 ../src/iop/toneequal.c:3411 +#: ../src/iop/toneequal.c:3412 ../src/iop/toneequal.c:3413 msgid "simple" msgstr "sencillo" -#: ../src/iop/toneequal.c:3352 +#: ../src/iop/toneequal.c:3405 msgid "-8 EV" msgstr "-8 EV" -#: ../src/iop/toneequal.c:3353 +#: ../src/iop/toneequal.c:3406 msgid "-7 EV" msgstr "-7 EV" -#: ../src/iop/toneequal.c:3354 +#: ../src/iop/toneequal.c:3407 msgid "-6 EV" msgstr "-6 EV" -#: ../src/iop/toneequal.c:3355 +#: ../src/iop/toneequal.c:3408 msgid "-5 EV" msgstr "-5 EV" -#: ../src/iop/toneequal.c:3356 +#: ../src/iop/toneequal.c:3409 msgid "-4 EV" msgstr "-4 EV" -#: ../src/iop/toneequal.c:3357 +#: ../src/iop/toneequal.c:3410 msgid "-3 EV" msgstr "-3 EV" -#: ../src/iop/toneequal.c:3358 +#: ../src/iop/toneequal.c:3411 msgid "-2 EV" msgstr "-2 EV" -#: ../src/iop/toneequal.c:3359 +#: ../src/iop/toneequal.c:3412 msgid "-1 EV" msgstr "-1 EV" -#: ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3413 msgid "+0 EV" msgstr "+0 EV" #. Advanced view -#: ../src/iop/toneequal.c:3364 +#: ../src/iop/toneequal.c:3417 msgid "advanced" msgstr "avanzado" -#: ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3444 msgid "double-click to reset the curve" msgstr "Doble clic para restablecer la curva" -#: ../src/iop/toneequal.c:3395 +#: ../src/iop/toneequal.c:3448 msgid "curve smoothing" msgstr "suavizado de curva" -#: ../src/iop/toneequal.c:3398 +#: ../src/iop/toneequal.c:3451 msgid "" "positive values will produce more progressive tone transitions\n" "but the curve might become oscillatory in some settings.\n" @@ -19962,11 +20658,11 @@ "local." #. Masking options -#: ../src/iop/toneequal.c:3408 +#: ../src/iop/toneequal.c:3461 msgid "masking" msgstr "máscaras" -#: ../src/iop/toneequal.c:3413 +#: ../src/iop/toneequal.c:3466 msgid "" "preview the mask and chose the estimator that gives you the\n" "higher contrast between areas to dodge and areas to burn" @@ -19974,15 +20670,15 @@ "Previsualice la máscara y elija el estimador que le proporcione\n" "mayor contraste entre las áreas a aclarar y las áreas a oscurecer" -#: ../src/iop/toneequal.c:3416 +#: ../src/iop/toneequal.c:3469 msgid "details" msgstr "detalle" -#: ../src/iop/toneequal.c:3417 +#: ../src/iop/toneequal.c:3470 msgid "preserve details" msgstr "preservar los detalles" -#: ../src/iop/toneequal.c:3420 +#: ../src/iop/toneequal.c:3473 msgid "" "'no' affects global and local contrast (safe if you only add contrast)\n" "'guided filter' only affects global contrast and tries to preserve local " @@ -20006,7 +20702,7 @@ "a diferencia del filtro guiado, que suaviza menos las luces.\n" "«FGIE promediado»: es una media geométrica de los métodos «No» y «FGIE»." -#: ../src/iop/toneequal.c:3433 +#: ../src/iop/toneequal.c:3486 msgid "" "number of passes of guided filter to apply\n" "helps diffusing the edges of the filter at the expense of speed" @@ -20014,7 +20710,7 @@ "Número de pasadas del filtro guiado para aplicar\n" "Ayuda a difuminar los bordes del filtro a expensas de la velocidad" -#: ../src/iop/toneequal.c:3441 +#: ../src/iop/toneequal.c:3494 msgid "" "diameter of the blur in percent of the largest image size\n" "warning: big values of this parameter can make the darkroom\n" @@ -20026,7 +20722,7 @@ "oscuro \n" "sea mucho más lenta si se usa la reducción de ruido perfilado." -#: ../src/iop/toneequal.c:3449 +#: ../src/iop/toneequal.c:3502 msgid "" "precision of the feathering:\n" "higher values force the mask to follow edges more closely\n" @@ -20041,12 +20737,12 @@ "Con valores inferiores, se dan gradientes más lisos y un mejor suavizado,\n" "pero pueden surgir halos y darse bordes imprecisos." -#: ../src/iop/toneequal.c:3456 +#: ../src/iop/toneequal.c:3509 msgctxt "section" msgid "mask post-processing" msgstr "postprocesado de máscara" -#: ../src/iop/toneequal.c:3467 +#: ../src/iop/toneequal.c:3520 msgid "" "mask histogram span between the first and last deciles.\n" "the central line shows the average. orange bars appear at extrema if " @@ -20056,7 +20752,7 @@ "La línea central muestra el promedio. Aparecerán barras naranjas en los " "extremos si se produce un recorte." -#: ../src/iop/toneequal.c:3475 +#: ../src/iop/toneequal.c:3528 msgid "" "0 disables the quantization.\n" "higher values posterize the luminance mask to help the guiding\n" @@ -20068,7 +20764,7 @@ "Cuando se usan valores de difuminado altos, produce áreas lisas por " "segmentos " -#: ../src/iop/toneequal.c:3484 +#: ../src/iop/toneequal.c:3537 msgid "" "use this to slide the mask average exposure along channels\n" "for a better control of the exposure correction with the available nodes.\n" @@ -20080,7 +20776,7 @@ "disponibles.\n" "La varita mágica ajustará automáticamente la exposición promedio." -#: ../src/iop/toneequal.c:3497 +#: ../src/iop/toneequal.c:3550 msgid "" "use this to counter the averaging effect of the guided filter\n" "and dilate the mask contrast around -4EV\n" @@ -20094,7 +20790,7 @@ "Ofrece un mejor control sobre la corrección de exposición.\n" "La varita mágica ajustará automáticamente el contraste." -#: ../src/iop/toneequal.c:3520 ../src/iop/toneequal.c:3523 +#: ../src/iop/toneequal.c:3573 ../src/iop/toneequal.c:3576 msgid "display exposure mask" msgstr "mostrar la máscara de exposición" @@ -20110,22 +20806,22 @@ "Este módulo ha quedado sin soporte. Se recomienda sustituirlo por los " "módulos contraste local o ecualizador de tono." -#: ../src/iop/velvia.c:79 +#: ../src/iop/velvia.c:70 msgid "velvia" msgstr "velvia" -#: ../src/iop/velvia.c:104 +#: ../src/iop/velvia.c:97 msgid "" "resaturate giving more weight to blacks, whites and low-saturation pixels" msgstr "" "Incrementa la saturación en las sombras, las luces y pixeles levemente " "saturados" -#: ../src/iop/velvia.c:281 +#: ../src/iop/velvia.c:290 msgid "the strength of saturation boost" msgstr "Intensidad del realce de la saturación" -#: ../src/iop/velvia.c:284 +#: ../src/iop/velvia.c:293 msgid "how much to spare highlights and shadows" msgstr "Proporción de luces y sombras excluidas" @@ -20137,7 +20833,7 @@ "Este módulo ha quedado sin soporte. Se recomienda sustituirlo por el control " "intensidad en el módulo balance de color rgb." -#: ../src/iop/vibrance.c:93 +#: ../src/iop/vibrance.c:95 msgid "" "saturate and reduce the lightness of the most saturated pixels\n" "to make the colors more vivid." @@ -20145,56 +20841,52 @@ "Satura y reduce la luminosidad de los pixeles más saturados\n" "para hacer los colores más vívidos" -#: ../src/iop/vibrance.c:217 +#: ../src/iop/vibrance.c:211 msgid "the amount of vibrance" msgstr "Grado de intensidad" -#: ../src/iop/vignette.c:153 -msgid "vignetting" -msgstr "viñeteado" - -#: ../src/iop/vignette.c:158 +#: ../src/iop/vignette.c:119 msgid "simulate a lens fall-off close to edges" msgstr "Recrea el viñeteo periférico de los objetivos" -#: ../src/iop/vignette.c:940 +#: ../src/iop/vignette.c:1022 msgid "lomo" msgstr "lomo" -#: ../src/iop/vignette.c:974 +#: ../src/iop/vignette.c:1061 msgctxt "section" msgid "position / form" msgstr "posición / forma" -#: ../src/iop/vignette.c:981 +#: ../src/iop/vignette.c:1069 msgid "dithering" msgstr "tramado" -#: ../src/iop/vignette.c:992 +#: ../src/iop/vignette.c:1081 msgid "the radii scale of vignette for start of fall-off" msgstr "Dimensión del radio donde inicia el difuminado del efecto viñeta" -#: ../src/iop/vignette.c:993 +#: ../src/iop/vignette.c:1083 msgid "the radii scale of vignette for end of fall-off" msgstr "Dimensión del radio donde termina el difuminado del efecto viñeta" -#: ../src/iop/vignette.c:994 +#: ../src/iop/vignette.c:1084 msgid "strength of effect on brightness" msgstr "Intensidad del efecto en el brillo" -#: ../src/iop/vignette.c:995 +#: ../src/iop/vignette.c:1085 msgid "strength of effect on saturation" msgstr "Intensidad del efecto sobre la saturación" -#: ../src/iop/vignette.c:996 +#: ../src/iop/vignette.c:1086 msgid "horizontal offset of center of the effect" msgstr "Desplazamiento horizontal del centro del efecto" -#: ../src/iop/vignette.c:997 +#: ../src/iop/vignette.c:1087 msgid "vertical offset of center of the effect" msgstr "Desplazamiento vertical del centro del efecto" -#: ../src/iop/vignette.c:998 +#: ../src/iop/vignette.c:1090 msgid "" "shape factor\n" "0 produces a rectangle\n" @@ -20206,59 +20898,59 @@ "1 produce un círculo o una elipse\n" "2 produce un diamante" -#: ../src/iop/vignette.c:1000 +#: ../src/iop/vignette.c:1094 msgid "enable to have the ratio automatically follow the image size" msgstr "" "Activar para que la proporción siga automáticamente el tamaño de imagen" -#: ../src/iop/vignette.c:1001 +#: ../src/iop/vignette.c:1095 msgid "width-to-height ratio" msgstr "Factor de proporción entre la altura y la anchura" -#: ../src/iop/vignette.c:1002 +#: ../src/iop/vignette.c:1097 msgid "add some level of random noise to prevent banding" msgstr "Añadir cierto nivel de ruido aleatorio para prevenir bandas" -#: ../src/iop/vignette.c:1009 +#: ../src/iop/vignette.c:1105 #, c-format msgid "[%s on node] change vignette/feather size" msgstr "[%s en el nodo] cambiar el tamaño de viñeta/difuminado" -#: ../src/iop/vignette.c:1011 +#: ../src/iop/vignette.c:1108 #, c-format msgid "[%s on node] change vignette/feather size keeping ratio" msgstr "" "[%s en el nodo] cambiar el tamaño de viñeta/difuminado manteniendo la " "proporción" -#: ../src/iop/vignette.c:1013 +#: ../src/iop/vignette.c:1111 #, c-format msgid "[%s on center] move vignette" msgstr "[%s en el centro] mover viñeta" -#: ../src/iop/watermark.c:371 +#: ../src/iop/watermark.c:416 msgid "watermark" msgstr "marca de agua" -#: ../src/iop/watermark.c:376 +#: ../src/iop/watermark.c:421 msgid "overlay an SVG watermark like a signature on the picture" msgstr "Añade a la imagen una marca de agua con formato SVG" -#: ../src/iop/watermark.c:1258 +#: ../src/iop/watermark.c:1306 msgid "marker" msgstr "marca" -#: ../src/iop/watermark.c:1261 +#: ../src/iop/watermark.c:1309 #, c-format msgid "SVG watermarks in %s/watermarks or %s/watermarks" msgstr "Marcas de agua SVG en %s/watermarks o %s/watermarks" #. Simple text -#: ../src/iop/watermark.c:1271 ../src/iop/watermark.c:1272 +#: ../src/iop/watermark.c:1319 ../src/iop/watermark.c:1320 msgid "text" msgstr "texto" -#: ../src/iop/watermark.c:1273 +#: ../src/iop/watermark.c:1321 msgid "" "text string, tag:\n" "$(WATERMARK_TEXT)" @@ -20266,16 +20958,16 @@ "Cadena de texto, etiqueta:\n" "$(WATERMARK_TEXT)" -#: ../src/iop/watermark.c:1275 +#: ../src/iop/watermark.c:1323 msgid "content" msgstr "contenido" #. Text font -#: ../src/iop/watermark.c:1280 +#: ../src/iop/watermark.c:1328 msgid "font" msgstr "tipografía" -#: ../src/iop/watermark.c:1285 +#: ../src/iop/watermark.c:1333 msgid "" "text font, tags:\n" "$(WATERMARK_FONT_FAMILY)\n" @@ -20287,7 +20979,7 @@ "$(WATERMARK_FONT_STYLE)\n" "$(WATERMARK_FONT_WEIGHT)" -#: ../src/iop/watermark.c:1300 +#: ../src/iop/watermark.c:1348 msgid "" "watermark color, tag:\n" "$(WATERMARK_COLOR)" @@ -20295,60 +20987,66 @@ "Color de texto, etiqueta:\n" "$(WATERMARK_COLOR)" -#: ../src/iop/watermark.c:1302 +#: ../src/iop/watermark.c:1350 msgid "select watermark color" msgstr "Escoja el color de la marca de agua" -#: ../src/iop/watermark.c:1304 +#: ../src/iop/watermark.c:1352 msgid "pick color from image" msgstr "Seleccionar un color de la imagen" -#: ../src/iop/watermark.c:1317 +#: ../src/iop/watermark.c:1365 msgctxt "section" msgid "placement" msgstr "colocación" -#: ../src/iop/watermark.c:1330 +#: ../src/iop/watermark.c:1378 msgid "" -"scaling is done relative to this object\n" -"• image: fits marker into whole image\n" -"• larger border: fits larger marker border to larger image border\n" -"• smaller border: fits larger marker border to smaller image border\n" -"• height: fits marker height to image height, e.g. suitable for texts\n" -"• advanced options: activates two additional drop-down menus" +"choose how to scale the watermark\n" +"• image: scale watermark relative to whole image\n" +"• larger border: scale larger watermark border relative to larger image " +"border\n" +"• smaller border: scale larger watermark border relative to smaller image " +"border\n" +"• height: scale watermark height to image height\n" +"• advanced options: choose watermark and image dimensions independently" msgstr "" -"El escalado se hace en relación a este objeto\n" -"• imagen: ajusta el marcador a toda la imagen\n" +"Opciones para redimensionar la marca de agua:\n" +"• imagen: toma como referencia toda la imagen para redimensionar\n" "• borde más grande: ajusta el borde más grande del marcador al borde más " "grande de la imagen\n" "• borde más pequeño: ajusta el borde más grande del marcador al borde más " "pequeño de la imagen\n" -"• altura: ajusta la altura del marcador a la altura de la imagen (por " -"ejemplo para textos)\n" -"• opciones avanzadas: activa dos menús desplegables adicionales" - -#: ../src/iop/watermark.c:1339 -msgid "reference to which the marker should be scaled to" -msgstr "Referencia a la que debe escalarse el marcador" - -#: ../src/iop/watermark.c:1343 -msgid "length of the marker which is used as scaling reference" -msgstr "Longitud del marcador que se utiliza como referencia de escala" +"• altura: ajusta la altura del marcador a la altura de la imagen\n" +"• opciones avanzadas: elija independientemente las dimensiones de la marca " +"de agua y de la imagen" + +#: ../src/iop/watermark.c:1387 +msgid "reference image dimension against which to scale the watermark" +msgstr "" +"Dimensión de la imagen de referencia con respecto a la cual se va a escalar " +"la marca de agua" -#: ../src/iop/watermark.c:1347 ../src/libs/print_settings.c:2675 +#: ../src/iop/watermark.c:1391 +msgid "watermark dimension to scale" +msgstr "" +"Referente de la dimensión de la marca de agua con respecto a la cual se va a " +"escalar" + +#: ../src/iop/watermark.c:1395 ../src/libs/print_settings.c:2675 msgid "alignment" msgstr "alineación" #. Let's add some tooltips and hook up some signals... -#: ../src/iop/watermark.c:1368 +#: ../src/iop/watermark.c:1416 msgid "the opacity of the watermark" msgstr "Transparencia de la marca de agua" -#: ../src/iop/watermark.c:1369 +#: ../src/iop/watermark.c:1417 msgid "the scale of the watermark" msgstr "Dimensión de la marca de agua" -#: ../src/iop/watermark.c:1370 +#: ../src/iop/watermark.c:1418 msgid "the rotation of the watermark" msgstr "Grados de rotación de la marca de agua" @@ -20356,7 +21054,7 @@ msgid "zone system" msgstr "sistema de zonas" -#: ../src/iop/zonesystem.c:490 +#: ../src/iop/zonesystem.c:486 msgid "" "lightness zones\n" "use mouse scrollwheel to change the number of zones\n" @@ -20398,7 +21096,7 @@ msgid "camera control" msgstr "control de cámara" -#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2360 +#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2679 msgid "modes" msgstr "modos" @@ -20504,36 +21202,49 @@ msgid "WB" msgstr "Balance de blancos" -#: ../src/libs/collect.c:151 +#: ../src/libs/collect.c:164 msgid "collections" msgstr "colección" -#: ../src/libs/collect.c:407 +#: ../src/libs/collect.c:424 msgid "search filmroll" msgstr "buscar sesión" -#: ../src/libs/collect.c:490 +#: ../src/libs/collect.c:507 #, c-format msgid "problem selecting new path for the filmroll in %s" msgstr "problema seleccionando una nueva ruta para la sesión en %s" -#: ../src/libs/collect.c:553 +#: ../src/libs/collect.c:579 msgid "search filmroll..." msgstr "buscar sesión..." -#: ../src/libs/collect.c:557 +#: ../src/libs/collect.c:584 msgid "remove..." msgstr "eliminar..." -#: ../src/libs/collect.c:1225 +#: ../src/libs/collect.c:1310 msgid "uncategorized" msgstr "sin categoría" -#: ../src/libs/collect.c:2138 +#: ../src/libs/collect.c:2172 ../src/libs/filters/rating_range.c:120 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:151 +#: ../src/libs/filters/rating_range.c:302 +msgid "rejected" +msgstr "rechazado" + +#: ../src/libs/collect.c:2175 ../src/libs/filters/rating_range.c:122 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:303 +msgid "not rated" +msgstr "sin puntuar" + +#: ../src/libs/collect.c:2359 msgid "use <, <=, >, >=, <>, =, [;] as operators" msgstr "Utilice <, <=, >, >=, <>, =, [;] como operadores" -#: ../src/libs/collect.c:2142 +#: ../src/libs/collect.c:2363 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "star rating: 0-5\n" @@ -20543,7 +21254,7 @@ "Para puntuar imágenes: 0-5\n" "Para rechazar imágenes: -1" -#: ../src/libs/collect.c:2149 +#: ../src/libs/collect.c:2371 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)" @@ -20552,12 +21263,12 @@ "los formatos de fecha como: YYYY:MM:DD HH:MM:SS.SSS (solo el año es " "obligatorio)" -#: ../src/libs/collect.c:2156 +#: ../src/libs/collect.c:2378 #, no-c-format msgid "use `%' as wildcard and `,' to separate values" msgstr "Use '%' como comodín y ',' para separar los valores" -#: ../src/libs/collect.c:2162 +#: ../src/libs/collect.c:2385 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20570,7 +21281,7 @@ "Use Mayús+Clic para incluir solamente la jerarquía actual (sin sufijo).\n" "Use Ctrl+Clic para incluir solamente las subjerarquías (sufijo '|%')." -#: ../src/libs/collect.c:2174 +#: ../src/libs/collect.c:2398 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20583,7 +21294,7 @@ "Use Mayús+Clic para incluir solamente la ubicación actual (sin sufijo).\n" "Use Ctrl+Clic para incluir solamente las subregiones (sufijo '|%')." -#: ../src/libs/collect.c:2186 +#: ../src/libs/collect.c:2411 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20596,111 +21307,103 @@ "Use Mayús+Clic para incluir solamente la carpeta actual (sin sufijo).\n" "Use Ctrl+Clic para incluir solamente las subcarpetas (sufijo '|%')." -#: ../src/libs/collect.c:2197 +#: ../src/libs/collect.c:2422 #, no-c-format msgid "use `%' as wildcard" msgstr "Use '%' como comodín" -#: ../src/libs/collect.c:2263 ../src/libs/collect.c:2277 -#: ../src/libs/collect.c:2800 +#: ../src/libs/collect.c:2488 ../src/libs/collect.c:2502 +#: ../src/libs/collect.c:3111 msgid "clear this rule" msgstr "Eliminar esta regla" -#: ../src/libs/collect.c:2267 +#: ../src/libs/collect.c:2492 msgid "clear this rule or add new rules" msgstr "Eliminar esta regla o añadir nuevas reglas" -#: ../src/libs/collect.c:2806 +#: ../src/libs/collect.c:3117 msgid "narrow down search" msgstr "reducir la búsqueda" -#: ../src/libs/collect.c:2811 +#: ../src/libs/collect.c:3124 msgid "add more images" msgstr "añadir más imágenes" -#: ../src/libs/collect.c:2816 +#: ../src/libs/collect.c:3131 msgid "exclude images" msgstr "excluir imágenes" -#: ../src/libs/collect.c:2823 +#: ../src/libs/collect.c:3140 msgid "change to: and" msgstr "cambiar a: y" -#: ../src/libs/collect.c:2828 +#: ../src/libs/collect.c:3147 msgid "change to: or" msgstr "cambiar a: o" -#: ../src/libs/collect.c:2833 +#: ../src/libs/collect.c:3154 msgid "change to: except" msgstr "cambiar a: excepto" #. the different categories -#: ../src/libs/collect.c:2859 ../src/libs/filtering.c:857 -#: ../src/libs/filtering.c:924 ../src/libs/filtering.c:1558 -#: ../src/libs/filtering.c:1890 +#: ../src/libs/collect.c:3184 ../src/libs/filtering.c:883 +#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1620 +#: ../src/libs/filtering.c:1964 msgid "files" msgstr "archivos" -#: ../src/libs/collect.c:2864 ../src/libs/export_metadata.c:312 -#: ../src/libs/filtering.c:862 ../src/libs/filtering.c:929 -#: ../src/libs/filtering.c:1566 ../src/libs/filtering.c:1894 -#: ../src/libs/image.c:464 ../src/libs/image.c:574 ../src/libs/image.c:582 -#: ../src/libs/metadata.c:676 ../src/libs/metadata_view.c:1226 +#: ../src/libs/collect.c:3189 ../src/libs/export_metadata.c:301 +#: ../src/libs/filtering.c:888 ../src/libs/filtering.c:955 +#: ../src/libs/filtering.c:1628 ../src/libs/filtering.c:1968 +#: ../src/libs/image.c:495 ../src/libs/image.c:633 ../src/libs/image.c:645 +#: ../src/libs/metadata.c:509 ../src/libs/metadata_view.c:1256 msgid "metadata" msgstr "metadatos" -#: ../src/libs/collect.c:2883 ../src/libs/filtering.c:883 -#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1892 +#: ../src/libs/collect.c:3208 ../src/libs/filtering.c:909 +#: ../src/libs/filtering.c:976 ../src/libs/filtering.c:1966 msgid "times" msgstr "periodos" -#: ../src/libs/collect.c:2891 ../src/libs/filtering.c:891 -#: ../src/libs/filtering.c:958 ../src/libs/filtering.c:1590 +#: ../src/libs/collect.c:3216 ../src/libs/filtering.c:917 +#: ../src/libs/filtering.c:984 ../src/libs/filtering.c:1652 msgid "capture details" msgstr "detalles de la captura" -#: ../src/libs/collect.c:2900 ../src/libs/filtering.c:900 -#: ../src/libs/filtering.c:967 ../src/libs/filtering.c:1602 -#: ../src/libs/filtering.c:1896 ../src/libs/tools/darktable.c:65 +#: ../src/libs/collect.c:3225 ../src/libs/filtering.c:926 +#: ../src/libs/filtering.c:993 ../src/libs/filtering.c:1664 +#: ../src/libs/filtering.c:1970 ../src/libs/tools/darktable.c:61 msgid "darktable" msgstr "darktable" -#: ../src/libs/collect.c:2913 +#: ../src/libs/collect.c:3240 msgid "collections settings" msgstr "Parámetros de las colecciones" -#: ../src/libs/collect.c:2916 ../src/libs/export_metadata.c:288 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:228 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3472 -msgid "save" -msgstr "guardar" - -#: ../src/libs/collect.c:2936 ../src/libs/export.c:1046 -#: ../src/libs/metadata.c:779 ../src/libs/metadata_view.c:1306 -#: ../src/libs/recentcollect.c:293 ../src/libs/tagging.c:3494 +#: ../src/libs/collect.c:3267 ../src/libs/export.c:1126 +#: ../src/libs/metadata.c:615 ../src/libs/metadata_view.c:1339 +#: ../src/libs/recentcollect.c:295 ../src/libs/tagging.c:3526 msgid "preferences..." msgstr "preferencias" -#: ../src/libs/collect.c:3041 ../src/libs/filtering.c:1432 +#: ../src/libs/collect.c:3388 ../src/libs/filtering.c:1494 msgid "AND" msgstr "Y" -#: ../src/libs/collect.c:3046 ../src/libs/filtering.c:1437 +#: ../src/libs/collect.c:3393 ../src/libs/filtering.c:1499 msgid "OR" msgstr "O" #. case DT_LIB_COLLECT_MODE_AND_NOT: -#: ../src/libs/collect.c:3051 ../src/libs/filtering.c:1442 +#: ../src/libs/collect.c:3398 ../src/libs/filtering.c:1504 msgid "BUT NOT" msgstr "EXCEPTO" -#: ../src/libs/collect.c:3223 ../src/libs/filtering.c:2164 +#: ../src/libs/collect.c:3588 ../src/libs/filtering.c:2238 msgid "revert to a previous set of rules" msgstr "volver al conjunto de reglas previo" -#: ../src/libs/collect.c:3280 +#: ../src/libs/collect.c:3671 msgid "jump back to previous collection" msgstr "volver a la colección anterior" @@ -20724,7 +21427,7 @@ msgid "color picker" msgstr "cuentagotas" -#: ../src/libs/colorpicker.c:463 +#: ../src/libs/colorpicker.c:513 msgid "" "hover to highlight sample on canvas,\n" "click to lock sample,\n" @@ -20735,45 +21438,45 @@ "Pulse el botón secundario para cargar el área de muestra en el selector de " "color activo." -#: ../src/libs/colorpicker.c:561 ../src/libs/colorpicker.c:612 +#: ../src/libs/colorpicker.c:626 ../src/libs/colorpicker.c:693 msgid "click to (un)hide large color patch" msgstr "Pulse para mostrar/ocultar un parche grande de color" -#: ../src/libs/colorpicker.c:575 +#: ../src/libs/colorpicker.c:649 msgid "statistic" msgstr "estadística" -#: ../src/libs/colorpicker.c:576 +#: ../src/libs/colorpicker.c:650 msgid "select which statistic to show" msgstr "Seleccionar qué tipo de estadística mostrar" -#: ../src/libs/colorpicker.c:585 +#: ../src/libs/colorpicker.c:660 msgid "select which color mode to use" msgstr "Elegir el modo de color que se va a utilizar" -#: ../src/libs/colorpicker.c:594 +#: ../src/libs/colorpicker.c:671 msgid "" "turn on color picker\n" "ctrl+click or right-click to select an area" msgstr "" -"Activar el selector de color.\n" -"Pulse Ctrl+Clic o el botón secundario para seleccionar un área." +"Pulse para activar el selector de color puntual.\n" +"Para seleccionar un área, pulse con el botón secundario o con Ctrl+Clic." -#: ../src/libs/colorpicker.c:636 +#: ../src/libs/colorpicker.c:722 msgid "add sample" msgstr "Añadir muestra" #. Adding the live samples section -#: ../src/libs/colorpicker.c:640 +#: ../src/libs/colorpicker.c:727 msgctxt "section" msgid "live samples" msgstr "muestreo" -#: ../src/libs/colorpicker.c:648 +#: ../src/libs/colorpicker.c:738 msgid "display samples on image/vectorscope" msgstr "muestras visibles (imagen y vectorscopio)" -#: ../src/libs/colorpicker.c:657 +#: ../src/libs/colorpicker.c:749 msgid "restrict scope to selection" msgstr "limitar el gráfico a la selección" @@ -20785,10 +21488,6 @@ msgid "open sidecar file" msgstr "abrir archivo asociado" -#: ../src/libs/copy_history.c:149 -msgid "XMP sidecar files" -msgstr "Archivos asociados XMP" - #: ../src/libs/copy_history.c:166 #, c-format msgid "error loading file '%s'" @@ -20839,7 +21538,7 @@ msgid "choose which modules to paste to the target image(s)" msgstr "Pegar sólo la selección de módulos en el destino" -#: ../src/libs/copy_history.c:382 ../src/libs/image.c:588 +#: ../src/libs/copy_history.c:382 ../src/libs/image.c:655 msgid "paste" msgstr "pegar" @@ -20871,11 +21570,11 @@ "Descartar el historial de acciones de\n" "todas las imágenes seleccionadas" -#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:847 +#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:851 msgid "how to handle existing history" msgstr "Manera de gestionar al historial existente" -#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:850 +#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:854 msgid "append" msgstr "anexar" @@ -20897,89 +21596,96 @@ "Escribir el historial de acciones y las etiquetas\n" "en los archivos XMP asociados" -#: ../src/libs/duplicate.c:56 +#: ../src/libs/duplicate.c:60 msgid "duplicate manager" msgstr "administrador de duplicado" -#: ../src/libs/duplicate.c:401 +#: ../src/libs/duplicate.c:407 msgid "create a 'virgin' duplicate of the image without any development" msgstr "Crear un duplicado 'virgen' de la imagen (sin ningún revelado)" -#: ../src/libs/duplicate.c:406 +#: ../src/libs/duplicate.c:412 msgid "create a duplicate of the image with same history stack" msgstr "Crear un duplicado de la imagen con el mismo historial" -#. Export button -#: ../src/libs/export.c:153 ../src/libs/export.c:1281 +#: ../src/libs/export.c:160 msgid "export" msgstr "exportar" #: ../src/libs/export.c:306 +msgid "invalid format for export selected" +msgstr "Formato no válido para la exportación elegida" + +#: ../src/libs/export.c:311 +msgid "invalid storage for export selected" +msgstr "Almacenamiento no válido para la exportación elegida" + +#: ../src/libs/export.c:322 msgid "export to disk" msgstr "exportar al disco" -#: ../src/libs/export.c:485 +#: ../src/libs/export.c:516 #, c-format msgid "which is equal to %s × %s px" msgstr "Lo que equivale a %s × %s px" -#: ../src/libs/export.c:520 +#: ../src/libs/export.c:555 msgctxt "unit" msgid "in" msgstr "in" -#: ../src/libs/export.c:1060 +#: ../src/libs/export.c:1141 msgctxt "section" msgid "storage options" msgstr "opciones de almacenamiento" -#: ../src/libs/export.c:1064 +#: ../src/libs/export.c:1145 msgid "target storage" msgstr "guardar en" -#: ../src/libs/export.c:1086 +#: ../src/libs/export.c:1171 msgctxt "section" msgid "format options" msgstr "opciones de formato" -#: ../src/libs/export.c:1090 +#: ../src/libs/export.c:1175 msgid "file format" msgstr "formato de archivo" -#: ../src/libs/export.c:1107 +#: ../src/libs/export.c:1193 msgctxt "section" msgid "global options" msgstr "opciones generales" -#: ../src/libs/export.c:1110 +#: ../src/libs/export.c:1196 msgid "set size" msgstr "fijar tamaño" -#: ../src/libs/export.c:1111 +#: ../src/libs/export.c:1197 msgid "choose a method for setting the output size" msgstr "Elegir un método para establecer el tamaño de la salida" -#: ../src/libs/export.c:1114 +#: ../src/libs/export.c:1200 msgid "in pixels (for file)" msgstr "en pixeles (para archivo)" -#: ../src/libs/export.c:1115 +#: ../src/libs/export.c:1201 msgid "in cm (for print)" msgstr "en cm (para imprimir)" -#: ../src/libs/export.c:1116 +#: ../src/libs/export.c:1202 msgid "in inch (for print)" msgstr "en pulgadas (para imprimir)" -#: ../src/libs/export.c:1117 +#: ../src/libs/export.c:1203 msgid "by scale (for file)" msgstr "a escala (para archivo)" -#: ../src/libs/export.c:1119 +#: ../src/libs/export.c:1206 msgid "print width" msgstr "anchura de la impresión" -#: ../src/libs/export.c:1120 ../src/libs/export.c:1132 +#: ../src/libs/export.c:1208 ../src/libs/export.c:1225 msgid "" "maximum output width limit.\n" "click middle mouse button to reset to 0." @@ -20987,11 +21693,11 @@ "Límite máximo de la anchura en la salida.\n" "Pulse el botón central del ratón para restablecer a 0." -#: ../src/libs/export.c:1123 +#: ../src/libs/export.c:1212 msgid "print height" msgstr "altura de la impresión" -#: ../src/libs/export.c:1124 ../src/libs/export.c:1136 +#: ../src/libs/export.c:1214 ../src/libs/export.c:1231 msgid "" "maximum output height limit.\n" "click middle mouse button to reset to 0." @@ -20999,19 +21705,19 @@ "Límite máximo de la altura en la salida.\n" "Pulse el botón central del ratón para restablecer a 0." -#: ../src/libs/export.c:1128 +#: ../src/libs/export.c:1220 msgid "resolution in dot per inch" msgstr "Resolución en puntos por pulgada" -#: ../src/libs/export.c:1148 +#: ../src/libs/export.c:1244 msgid "@" msgstr "@" -#: ../src/libs/export.c:1161 ../src/libs/tools/global_toolbox.c:217 +#: ../src/libs/export.c:1258 ../src/libs/tools/global_toolbox.c:217 msgid "px" msgstr "px" -#: ../src/libs/export.c:1166 +#: ../src/libs/export.c:1266 msgid "" "it can be an integer, decimal number or simple fraction.\n" "zero or empty values are equal to 1.\n" @@ -21021,38 +21727,38 @@ "Dejar el valor de cero o el campo vacío, es equivalente a ingresar 1.\n" "Pulse el botón medio del ratón para restablecer a 1." -#: ../src/libs/export.c:1185 +#: ../src/libs/export.c:1292 msgid "allow upscaling" msgstr "permitir redimensionado" -#: ../src/libs/export.c:1191 +#: ../src/libs/export.c:1301 msgid "high quality resampling" msgstr "remuestreo de alta calidad" -#: ../src/libs/export.c:1192 +#: ../src/libs/export.c:1302 msgid "do high quality resampling during export" msgstr "Hacer un remuestreo de alta calidad durante la exportación" -#: ../src/libs/export.c:1198 +#: ../src/libs/export.c:1310 msgid "store masks" msgstr "guardar máscaras" -#: ../src/libs/export.c:1199 +#: ../src/libs/export.c:1311 msgid "store masks as layers in exported images. only works for some formats." msgstr "" "Almacena las máscaras como capas en las imágenes exportadas. Sólo funciona " "con algunos formatos." -#: ../src/libs/export.c:1210 ../src/libs/export.c:1245 +#: ../src/libs/export.c:1322 ../src/libs/export.c:1357 #: ../src/libs/print_settings.c:2777 ../src/libs/print_settings.c:2823 msgid "image settings" msgstr "configuración de la imagen" -#: ../src/libs/export.c:1220 ../src/libs/print_settings.c:2811 +#: ../src/libs/export.c:1332 ../src/libs/print_settings.c:2811 msgid "output ICC profiles" msgstr "perfiles ICC de salida" -#: ../src/libs/export.c:1228 +#: ../src/libs/export.c:1340 msgid "" "• perceptual: smoothly moves out-of-gamut colors into gamut, preserving " "gradations,\n" @@ -21091,44 +21797,53 @@ "Se utiliza principalmente para hacer pruebas de colores.\n" "(No apto para la fotografía)." -#: ../src/libs/export.c:1255 ../src/libs/print_settings.c:2833 +#: ../src/libs/export.c:1367 ../src/libs/print_settings.c:2833 msgid "style" msgstr "estilo" -#: ../src/libs/export.c:1258 +#: ../src/libs/export.c:1370 msgid "temporary style to use while exporting" msgstr "Estilo temporal para ser aplicado al exportar" -#: ../src/libs/export.c:1263 ../src/libs/print_settings.c:2876 +#: ../src/libs/export.c:1377 ../src/libs/print_settings.c:2876 msgid "" "whether the style items are appended to the history or replacing the history" msgstr "Los elementos del estilo se anexan al historial o se reemplazan" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "replace history" msgstr "reemplazar al historial" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "append history" msgstr "incorporar al historial" -#: ../src/libs/export.c:1282 +#: ../src/libs/export.c:1398 +msgctxt "actionbutton" +msgid "export" +msgstr "exportar" + +#: ../src/libs/export.c:1400 msgid "export with current settings" msgstr "Exportar con la configuración actual" -#: ../src/libs/export_metadata.c:163 +#: ../src/libs/export_metadata.c:148 msgid "select tag" msgstr "Elegir etiqueta" -#: ../src/libs/export_metadata.c:164 -msgid "add" -msgstr "Añadir" +#: ../src/libs/export_metadata.c:150 +msgid "_add" +msgstr "_añadir" + +#: ../src/libs/export_metadata.c:151 ../src/libs/geotagging.c:811 +msgid "_done" +msgstr "_Hecho" -#: ../src/libs/export_metadata.c:175 +#: ../src/libs/export_metadata.c:162 msgid "list filter" msgstr "filtro de lista" -#: ../src/libs/export_metadata.c:186 +#: ../src/libs/export_metadata.c:173 msgid "" "list of available tags. click 'add' button or double-click on tag to add the " "selected one" @@ -21136,32 +21851,32 @@ "Lista de etiquetas disponibles. Pulse el botón 'agregar' o doble pulsación " "en la etiqueta seleccionada para añadirla" -#: ../src/libs/export_metadata.c:287 +#: ../src/libs/export_metadata.c:274 msgid "edit metadata exportation" msgstr "Editar la exportación de metadatos" -#: ../src/libs/export_metadata.c:304 +#: ../src/libs/export_metadata.c:293 msgid "general settings" msgstr "Configuración general" -#: ../src/libs/export_metadata.c:309 +#: ../src/libs/export_metadata.c:298 msgid "EXIF data" msgstr "Datos Exif" -#: ../src/libs/export_metadata.c:310 +#: ../src/libs/export_metadata.c:299 msgid "export EXIF metadata" msgstr "Exportar metadatos Exif" -#: ../src/libs/export_metadata.c:313 +#: ../src/libs/export_metadata.c:302 msgid "export darktable XMP metadata (from metadata editor module)" msgstr "" "Exportar metadatos XMP de darktable (desde el módulo editor de metadatos)" -#: ../src/libs/export_metadata.c:323 +#: ../src/libs/export_metadata.c:312 msgid "only embedded" msgstr "solo incrustado" -#: ../src/libs/export_metadata.c:324 +#: ../src/libs/export_metadata.c:313 msgid "" "per default the interface sends some (limited) metadata beside the image to " "remote storage.\n" @@ -21177,39 +21892,39 @@ "Si el almacenamiento remoto no comprende los metadatos XMP de darktable, " "puede usar en su lugar metadatos calculados." -#: ../src/libs/export_metadata.c:330 ../src/libs/image.c:566 +#: ../src/libs/export_metadata.c:319 ../src/libs/image.c:623 msgid "geo tags" msgstr "geoetiquetas" -#: ../src/libs/export_metadata.c:331 +#: ../src/libs/export_metadata.c:320 msgid "export geo tags" msgstr "Exportar geoetiquetas" -#: ../src/libs/export_metadata.c:334 +#: ../src/libs/export_metadata.c:323 msgid "export tags (to Xmp.dc.Subject)" msgstr "Exportar etiquetas (a Xmp.dc.Subject)" -#: ../src/libs/export_metadata.c:342 +#: ../src/libs/export_metadata.c:331 msgid "private tags" msgstr "etiquetas privadas" -#: ../src/libs/export_metadata.c:343 +#: ../src/libs/export_metadata.c:332 msgid "export private tags" msgstr "Exportar etiquetas privadas" -#: ../src/libs/export_metadata.c:345 +#: ../src/libs/export_metadata.c:334 msgid "synonyms" msgstr "sinónimos" -#: ../src/libs/export_metadata.c:346 +#: ../src/libs/export_metadata.c:335 msgid "export tags synonyms" msgstr "Exportar las etiquetas que son sinónimos" -#: ../src/libs/export_metadata.c:348 +#: ../src/libs/export_metadata.c:337 msgid "omit hierarchy" msgstr "ignorar jerarquía" -#: ../src/libs/export_metadata.c:349 +#: ../src/libs/export_metadata.c:338 msgid "" "only the last part of the hierarchical tags is included. can be useful if " "categories are not used" @@ -21217,19 +21932,19 @@ "Solo se incluirá la última parte de las etiquetas jerárquicas. Puede ser " "útil si no se utilizan categorías." -#: ../src/libs/export_metadata.c:352 +#: ../src/libs/export_metadata.c:341 msgid "hierarchical tags" msgstr "etiquetas jerárquicas" -#: ../src/libs/export_metadata.c:353 +#: ../src/libs/export_metadata.c:342 msgid "export hierarchical tags (to Xmp.lr.Hierarchical Subject)" msgstr "Exportar etiquetas jerárquicas (a Xmp.lr.Hierarchical)" -#: ../src/libs/export_metadata.c:355 +#: ../src/libs/export_metadata.c:344 msgid "develop history" msgstr "historial de revelado" -#: ../src/libs/export_metadata.c:356 +#: ../src/libs/export_metadata.c:345 msgid "" "export darktable development data (recovery purpose in case of loss of " "database or XMP file)" @@ -21237,19 +21952,19 @@ "Exportar la información de revelado de darktable (si se pierde la base de " "datos o el archivo XMP, podría usarse para restauración)." -#: ../src/libs/export_metadata.c:363 +#: ../src/libs/export_metadata.c:352 msgid "per metadata settings" msgstr "Mediante la configuración de metadatos" -#: ../src/libs/export_metadata.c:376 +#: ../src/libs/export_metadata.c:364 msgid "redefined tag" msgstr "etiqueta redefinida" -#: ../src/libs/export_metadata.c:382 +#: ../src/libs/export_metadata.c:370 msgid "formula" msgstr "fórmula" -#: ../src/libs/export_metadata.c:385 +#: ../src/libs/export_metadata.c:373 msgid "" "list of calculated metadata\n" "click on '+' button to select and add new metadata\n" @@ -21274,15 +21989,15 @@ "Teclee '$(' para iniciar la autocompleción y desplegar la lista de las " "variables disponibles." -#: ../src/libs/export_metadata.c:442 +#: ../src/libs/export_metadata.c:430 msgid "add an output metadata tag" msgstr "Agregar etiqueta de metadatos de salida" -#: ../src/libs/export_metadata.c:447 +#: ../src/libs/export_metadata.c:435 msgid "delete metadata tag" msgstr "Eliminar etiqueta de los metadatos" -#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:128 +#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:130 msgid "full path" msgstr "ruta completa" @@ -21302,50 +22017,50 @@ msgid "shuffle" msgstr "aleatorio" -#: ../src/libs/filtering.c:263 +#: ../src/libs/filtering.c:269 msgid "collection filters" msgstr "filtros en la colección" -#: ../src/libs/filtering.c:296 +#: ../src/libs/filtering.c:302 msgid "initial setting" msgstr "configuración inicial" -#: ../src/libs/filtering.c:315 +#: ../src/libs/filtering.c:321 msgid "imported: last 24h" msgstr "importado: últimas 24 horas" -#: ../src/libs/filtering.c:320 +#: ../src/libs/filtering.c:326 msgid "imported: last 30 days" msgstr "importado: últimos 30 días" -#: ../src/libs/filtering.c:326 +#: ../src/libs/filtering.c:332 msgid "taken: last 24h" msgstr "capturado: últimas 24 horas" -#: ../src/libs/filtering.c:330 +#: ../src/libs/filtering.c:336 msgid "taken: last 30 days" msgstr "capturado: últimos 30 días" -#: ../src/libs/filtering.c:702 +#: ../src/libs/filtering.c:728 msgid "click or click&drag to select one or multiple values" msgstr "Pulse o Pulse&Arrastre para elegir varios elementos" -#: ../src/libs/filtering.c:703 +#: ../src/libs/filtering.c:729 msgid "right-click opens a menu to select the available values" msgstr "" "Con el clic secundario se despliega un menú para elegir entre los elementos " "disponibles" -#: ../src/libs/filtering.c:800 +#: ../src/libs/filtering.c:826 #, c-format msgid "you can't have more than %d rules" msgstr "No es posible tener más de %d reglas." -#: ../src/libs/filtering.c:922 ../src/libs/filtering.c:1556 +#: ../src/libs/filtering.c:948 ../src/libs/filtering.c:1618 msgid "rule property" msgstr "propiedades de la regla" -#: ../src/libs/filtering.c:987 +#: ../src/libs/filtering.c:1013 msgid "" "rule property\n" "this can't be changed as the rule is pinned to the toolbar" @@ -21353,12 +22068,12 @@ "Propiedad de la regla\n" "No puede cambiarse ya que la regla está anclada en la barra de herramientas" -#: ../src/libs/filtering.c:1035 +#: ../src/libs/filtering.c:1095 msgctxt "quickfilter" msgid "filter" msgstr "filtro" -#: ../src/libs/filtering.c:1062 +#: ../src/libs/filtering.c:1124 msgid "" "this rule is pinned to the top toolbar\n" "click to un-pin" @@ -21366,118 +22081,126 @@ "Esta regla está anclada en la barra de herramientas superior.\n" "Pulse para desanclar." -#: ../src/libs/filtering.c:1063 +#: ../src/libs/filtering.c:1125 msgid "you can't disable the rule as it is pinned to the toolbar" msgstr "" "No se puede desactivar la regla mientras esté anclada en la barra de " "herramientas" -#: ../src/libs/filtering.c:1064 +#: ../src/libs/filtering.c:1126 msgid "you can't remove the rule as it is pinned to the toolbar" msgstr "" "No se puede eliminar la regla mientras esté anclada en la barra de " "herramientas" -#: ../src/libs/filtering.c:1069 +#: ../src/libs/filtering.c:1131 msgid "click to pin this rule to the top toolbar" msgstr "Pulse para anclar esta regla en la barra de herramientas superior" -#: ../src/libs/filtering.c:1070 +#: ../src/libs/filtering.c:1132 msgid "remove this collect rule" msgstr "Eliminar esta regla para la colección" -#: ../src/libs/filtering.c:1072 +#: ../src/libs/filtering.c:1134 msgid "this rule is enabled" msgstr "Esta regla está activa" -#: ../src/libs/filtering.c:1074 +#: ../src/libs/filtering.c:1136 msgid "this rule is disabled" msgstr "Esta regla está inactiva" -#: ../src/libs/filtering.c:1202 +#: ../src/libs/filtering.c:1264 msgid "or" msgstr "o" -#: ../src/libs/filtering.c:1203 +#: ../src/libs/filtering.c:1265 msgid "and not" msgstr " y no" -#: ../src/libs/filtering.c:1205 +#: ../src/libs/filtering.c:1267 msgid "define how this rule should interact with the previous one" msgstr "Se define cómo debe interactuar esta regla con la anterior" -#: ../src/libs/filtering.c:1466 +#: ../src/libs/filtering.c:1528 msgid " (off)" msgstr " (desactivado)" -#: ../src/libs/filtering.c:1663 +#: ../src/libs/filtering.c:1725 msgid "you can't add more rules." msgstr "No es posible añadir más reglas." -#. fill the popover with all pinned rules -#: ../src/libs/filtering.c:1696 +#: ../src/libs/filtering.c:1759 msgid "shown filters" msgstr "filtros visibles" -#: ../src/libs/filtering.c:1711 +#: ../src/libs/filtering.c:1774 msgid "new filter" msgstr "filtro nuevo" -#: ../src/libs/filtering.c:1884 +#. the actions part of the popover +#: ../src/libs/filtering.c:1781 +msgid "actions" +msgstr "acciones" + +#: ../src/libs/filtering.c:1784 +msgid "reset quickfilters" +msgstr "reiniciar filtros rápidos" + +#: ../src/libs/filtering.c:1957 msgid "sort order" msgstr "orden de clasificación" -#: ../src/libs/filtering.c:1886 +#: ../src/libs/filtering.c:1960 msgid "determine the sort order of shown images" msgstr "Establece el orden en el que las imágenes serán mostradas" -#: ../src/libs/filtering.c:1906 +#: ../src/libs/filtering.c:1980 msgid "sort direction" msgstr "sentido" -#: ../src/libs/filtering.c:1911 +#: ../src/libs/filtering.c:1985 msgid "remove this sort order" msgstr "Quitar el orden de clasificación" -#: ../src/libs/filtering.c:1995 +#: ../src/libs/filtering.c:2069 #, c-format msgid "you can't have more than %d sort orders" msgstr "No es posible tener más de %d órdenes de clasificación." -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "DESC" msgstr "Descendente" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "ASC" msgstr "Ascendente" -#: ../src/libs/filtering.c:2160 +#: ../src/libs/filtering.c:2234 msgid "new rule" msgstr "nueva regla" -#: ../src/libs/filtering.c:2161 +#: ../src/libs/filtering.c:2235 msgid "append new rule to collect images" msgstr "Añadir una nueva regla para la colección de imágenes" -#: ../src/libs/filtering.c:2172 ../src/libs/tools/filter.c:116 +#: ../src/libs/filtering.c:2246 ../src/libs/tools/filter.c:116 msgid "sort by" msgstr "ordenar por" -#: ../src/libs/filtering.c:2180 +#: ../src/libs/filtering.c:2254 msgid "new sort" msgstr "nuevo ordenamiento" -#: ../src/libs/filtering.c:2181 +#: ../src/libs/filtering.c:2255 msgid "append new sort to order images" msgstr "Añadir una nueva clasificación para ordenar las imágenes" -#: ../src/libs/filtering.c:2184 +#: ../src/libs/filtering.c:2258 msgid "revert to a previous set of sort orders" msgstr "Revertir al conjunto de orden de clasificación previo" #. we change the tooltip of the reset button here, as we are sure the header is defined now -#: ../src/libs/filtering.c:2234 +#: ../src/libs/filtering.c:2308 msgid "" "reset\n" "ctrl+click to remove pinned rules too" @@ -21514,7 +22237,7 @@ #: ../src/libs/filters/grouping.c:167 ../src/libs/filters/history.c:153 #: ../src/libs/filters/local_copy.c:142 ../src/libs/filters/module_order.c:161 #: ../src/libs/filters/rating.c:199 ../src/libs/filters/rating.c:210 -#: ../src/libs/filters/rating_range.c:325 +#: ../src/libs/filters/rating_range.c:356 msgid "rules" msgstr "reglas" @@ -21528,7 +22251,7 @@ "Y (∩): imágenes que tienen todas las marcas de color seleccionadas.\n" "O (∪): imágenes con al menos una de las marcas de color seleccionadas." -#: ../src/libs/filters/filename.c:365 +#: ../src/libs/filters/filename.c:370 msgid "" "enter filename to search.\n" "multiple values can be separated by ','\n" @@ -21541,11 +22264,11 @@ "Pulse el botón secundario para obtener los nombres de los archivos " "existentes." -#: ../src/libs/filters/filename.c:376 +#: ../src/libs/filters/filename.c:381 msgid "extension" msgstr "extensión" -#: ../src/libs/filters/filename.c:377 +#: ../src/libs/filters/filename.c:382 msgid "" "enter extension to search with starting dot\n" "multiple values can be separated by ','\n" @@ -21559,7 +22282,7 @@ "\n" "Pulse el botón secundario para obtener las extensiones existentes." -#: ../src/libs/filters/filename.c:405 +#: ../src/libs/filters/filename.c:410 msgid "" "click to select filename\n" "ctrl+click to select multiple values" @@ -21567,7 +22290,7 @@ "Pulse para seleccionar el nombre del archivo.\n" "Use Ctrl+Clic para seleccionar varios elementos." -#: ../src/libs/filters/filename.c:432 +#: ../src/libs/filters/filename.c:437 msgid "" "click to select extension\n" "ctrl+click to select multiple values" @@ -21575,6 +22298,11 @@ "Pulse para seleccionar la extensión.\n" "Use Ctrl+Clic para seleccionar varios elementos." +#. the button to close the popup +#: ../src/libs/filters/filename.c:457 +msgid "ok" +msgstr "aceptar" + #: ../src/libs/filters/grouping.c:141 ../src/libs/filters/grouping.c:169 msgid "ungrouped images" msgstr "Imágenes desagrupadas" @@ -21586,8 +22314,8 @@ #. predefined selections #: ../src/libs/filters/grouping.c:169 ../src/libs/filters/history.c:38 #: ../src/libs/filters/local_copy.c:38 ../src/libs/filters/module_order.c:155 -#: ../src/libs/filters/rating_range.c:56 ../src/libs/filters/rating_range.c:72 -#: ../src/libs/filters/rating_range.c:109 ../src/libs/filters/ratio.c:68 +#: ../src/libs/filters/rating_range.c:59 ../src/libs/filters/rating_range.c:83 +#: ../src/libs/filters/rating_range.c:131 ../src/libs/filters/ratio.c:68 #: ../src/libs/filters/ratio.c:81 msgid "all images" msgstr "Todas las imágenes" @@ -21612,7 +22340,7 @@ msgid "filter by images rating" msgstr "filtrar por puntuación de imágenes" -#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:542 +#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:596 #: ../src/libs/tools/ratings.c:56 msgid "ratings" msgstr "valoraciones" @@ -21621,49 +22349,33 @@ msgid "unstarred only" msgstr "sin estrellas" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:60 -#: ../src/libs/filters/rating_range.c:75 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:65 +#: ../src/libs/filters/rating_range.c:89 msgid "rejected only" msgstr "sólo rechazadas" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:58 -#: ../src/libs/filters/rating_range.c:73 ../src/libs/filters/rating_range.c:138 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:62 +#: ../src/libs/filters/rating_range.c:86 ../src/libs/filters/rating_range.c:158 msgid "all except rejected" msgstr "todas excluyendo rechazadas" -#: ../src/libs/filters/rating_range.c:61 ../src/libs/filters/rating_range.c:76 +#: ../src/libs/filters/rating_range.c:67 ../src/libs/filters/rating_range.c:91 msgid "not rated only" msgstr "únicamente sin puntuar" -#: ../src/libs/filters/rating_range.c:99 ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:131 -#: ../src/libs/filters/rating_range.c:275 -msgid "rejected" -msgstr "rechazado" - -#: ../src/libs/filters/rating_range.c:101 -#: ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:276 -msgid "not rated" -msgstr "sin puntuar" - -#: ../src/libs/filters/rating_range.c:117 -msgid "only" -msgstr "únicamente" - -#: ../src/libs/filters/rating_range.c:269 +#: ../src/libs/filters/rating_range.c:296 msgid "better" msgstr "mejor" -#: ../src/libs/filters/rating_range.c:270 +#: ../src/libs/filters/rating_range.c:297 msgid "worse" msgstr "peor" -#: ../src/libs/filters/rating_range.c:271 +#: ../src/libs/filters/rating_range.c:298 msgid "cap" msgstr "límite máximo" -#: ../src/libs/filters/rating_range.c:286 +#: ../src/libs/filters/rating_range.c:313 msgid "rating filter" msgstr "filtro de puntuación" @@ -21702,7 +22414,7 @@ msgid "apply offset and geo-location" msgstr "establecer diferencia y geolocalización" -#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1910 +#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1914 msgid "apply geo-location" msgstr "establecer geolocalización" @@ -21715,49 +22427,49 @@ "correspondientes.\n" "Doble operación para deshacer: Ctrl+Z (dos veces)." -#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1911 +#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1915 msgid "apply geo-location to matching images" msgstr "Establecer geolocalización en imágenes coincidentes" -#: ../src/libs/geotagging.c:810 +#: ../src/libs/geotagging.c:809 msgid "GPX file track segments" msgstr "Segmentos de recorrido del archivo GPX" -#: ../src/libs/geotagging.c:830 ../src/libs/geotagging.c:1869 +#: ../src/libs/geotagging.c:831 ../src/libs/geotagging.c:1873 msgid "start time" msgstr "hora inicial" -#: ../src/libs/geotagging.c:831 +#: ../src/libs/geotagging.c:832 msgid "end time" msgstr "hora final" -#: ../src/libs/geotagging.c:832 ../src/libs/geotagging.c:1871 +#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1875 msgid "points" msgstr "lugares" -#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1873 -#: ../src/libs/image.c:463 +#: ../src/libs/geotagging.c:834 ../src/libs/geotagging.c:1877 +#: ../src/libs/image.c:494 msgid "images" msgstr "imagen" -#: ../src/libs/geotagging.c:926 +#: ../src/libs/geotagging.c:927 msgid "open GPX file" msgstr "Abrir archivo GPX" -#: ../src/libs/geotagging.c:927 ../src/libs/tools/lighttable.c:333 -#: ../src/libs/tools/lighttable.c:402 ../src/views/darkroom.c:2232 +#: ../src/libs/geotagging.c:928 ../src/libs/tools/lighttable.c:330 +#: ../src/libs/tools/lighttable.c:399 ../src/views/darkroom.c:2091 msgid "preview" msgstr "Vista previa" -#: ../src/libs/geotagging.c:940 +#: ../src/libs/geotagging.c:941 msgid "GPS data exchange format" msgstr "Formato de intercambio de datos GPS" -#: ../src/libs/geotagging.c:1739 +#: ../src/libs/geotagging.c:1743 msgid "date/time" msgstr "fecha/hora" -#: ../src/libs/geotagging.c:1740 +#: ../src/libs/geotagging.c:1744 msgid "" "enter the new date/time (YYYY:MM:DD hh:mm:ss[.sss])\n" "key in the new numbers or scroll over the cell" @@ -21765,41 +22477,41 @@ "Ingresar la nueva fecha/hora (YYYY:MM:DD hh:mm:ss[.sss])\n" "tecleando los números o usando la rueda del ratón sobre la celda." -#: ../src/libs/geotagging.c:1744 +#: ../src/libs/geotagging.c:1748 msgid "original date/time" msgstr "fecha/hora original" -#: ../src/libs/geotagging.c:1748 +#: ../src/libs/geotagging.c:1752 msgid "lock date/time offset value to apply it onto another selection" msgstr "" "Bloquea el valor de la diferencia de fecha/hora para usarlo en otra selección" -#: ../src/libs/geotagging.c:1752 +#: ../src/libs/geotagging.c:1756 msgid "date/time offset" msgstr "diferencia horaria" -#: ../src/libs/geotagging.c:1753 +#: ../src/libs/geotagging.c:1757 msgid "offset or difference ([-]dd hh:mm:ss[.sss])" msgstr "Diferencia horaria ([-]dd hh:mm:ss[.sss])" #. apply -#: ../src/libs/geotagging.c:1757 +#: ../src/libs/geotagging.c:1761 msgid "apply offset" msgstr "establecer diferencia" -#: ../src/libs/geotagging.c:1758 +#: ../src/libs/geotagging.c:1762 msgid "apply offset to selected images" msgstr "Establecer la diferencia horaria en las imágenes seleccionadas" -#: ../src/libs/geotagging.c:1761 +#: ../src/libs/geotagging.c:1765 msgid "apply date/time" msgstr "establecer fecha/hora" -#: ../src/libs/geotagging.c:1762 +#: ../src/libs/geotagging.c:1766 msgid "apply the same date/time to selected images" msgstr "establecer la misma fecha/hora en la selección" -#: ../src/libs/geotagging.c:1772 +#: ../src/libs/geotagging.c:1776 msgid "" "start typing to show a list of permitted values and select your timezone.\n" "press enter to confirm, so that the asterisk * disappears" @@ -21809,25 +22521,25 @@ "Para confirmar, pulse Entrar (así también desaparecerá el asterisco *)." #. gpx -#: ../src/libs/geotagging.c:1815 +#: ../src/libs/geotagging.c:1819 msgid "apply GPX track file..." msgstr "adjuntar archivo GPX de recorrido..." -#: ../src/libs/geotagging.c:1816 +#: ../src/libs/geotagging.c:1820 msgid "parses a GPX file and updates location of selected images" msgstr "" "Abrir archivo GPX y actualizar la ubicación de las imágenes seleccionadas" -#: ../src/libs/geotagging.c:1827 +#: ../src/libs/geotagging.c:1831 msgctxt "section" msgid "GPX file" msgstr "Archivo GPX" -#: ../src/libs/geotagging.c:1834 +#: ../src/libs/geotagging.c:1838 msgid "select a GPX track file..." msgstr "Selecciona archivo GPX de recorrido..." -#: ../src/libs/geotagging.c:1851 +#: ../src/libs/geotagging.c:1855 msgid "" "list of track segments in the GPX file, for each segment:\n" "- the start date/time in local time (LT)\n" @@ -21843,172 +22555,180 @@ "imágenes, la diferencia y zona horaria\n" "• más detalles al pasar el ratón sobre la hilera" -#: ../src/libs/geotagging.c:1890 +#: ../src/libs/geotagging.c:1894 msgid "preview images" msgstr "previsualizar imágenes" -#: ../src/libs/geotagging.c:1895 +#: ../src/libs/geotagging.c:1899 msgid "show on map matching images" msgstr "Muestra en el mapa las imágenes coincidentes" -#: ../src/libs/geotagging.c:1898 +#: ../src/libs/geotagging.c:1902 msgid "select images" msgstr "seleccionar imágenes" -#: ../src/libs/geotagging.c:1899 +#: ../src/libs/geotagging.c:1903 msgid "select matching images" msgstr "seleccionar imágenes coincidentes" -#: ../src/libs/geotagging.c:1907 +#: ../src/libs/geotagging.c:1911 msgid "number of matching images versus selected images" msgstr "Número de imágenes coincidentes frente a las imágenes seleccionadas" -#: ../src/libs/histogram.c:133 +#: ../src/libs/histogram.c:110 msgid "monochromatic" msgstr "monocromático" -#: ../src/libs/histogram.c:134 +#: ../src/libs/histogram.c:111 msgid "analogous" msgstr "análogo" -#: ../src/libs/histogram.c:135 +#: ../src/libs/histogram.c:112 msgid "analogous complementary" msgstr "complementario análogo" -#: ../src/libs/histogram.c:136 +#: ../src/libs/histogram.c:113 msgid "complementary" msgstr "complementario" -#: ../src/libs/histogram.c:137 +#: ../src/libs/histogram.c:114 msgid "split complementary" msgstr "complementario adyacente" -#: ../src/libs/histogram.c:138 +#: ../src/libs/histogram.c:115 msgid "dyad" msgstr "diada" -#: ../src/libs/histogram.c:139 +#: ../src/libs/histogram.c:116 msgid "triad" msgstr "triada" -#: ../src/libs/histogram.c:140 +#: ../src/libs/histogram.c:117 msgid "tetrad" msgstr "tétrada" -#: ../src/libs/histogram.c:146 +#: ../src/libs/histogram.c:123 msgid "vectorscope" msgstr "vectorscopio" -#: ../src/libs/histogram.c:147 +#: ../src/libs/histogram.c:124 msgid "waveform" msgstr "Oscilograma" -#: ../src/libs/histogram.c:148 +#: ../src/libs/histogram.c:125 msgid "RGB parade" msgstr "Canales paralelos RGB" -#: ../src/libs/histogram.c:149 ../src/libs/histogram.c:2309 +#: ../src/libs/histogram.c:126 ../src/libs/histogram.c:2622 msgid "histogram" msgstr "histograma" -#: ../src/libs/histogram.c:243 +#: ../src/libs/histogram.c:218 msgid "scopes" msgstr "monitor de gráficos" -#: ../src/libs/histogram.c:1542 +#: ../src/libs/histogram.c:757 +msgid "" +"unsupported vectorscope profile selected, it will be replaced with linear " +"Rec2020" +msgstr "" +"Perfil de vectorscopio incompatible. Se reemplazará por el perfil RGB Rec. " +"2020 lineal." + +#: ../src/libs/histogram.c:1715 msgid "scroll to coarse-rotate" msgstr "Desplazamiento para rotación rápida" -#: ../src/libs/histogram.c:1543 +#: ../src/libs/histogram.c:1716 msgid "ctrl+scroll to fine rotate" msgstr "Ctrl+Desplazamiento para rotar con precisión" -#: ../src/libs/histogram.c:1544 +#: ../src/libs/histogram.c:1717 msgid "shift+scroll to change width" msgstr "Para cambiar la anchura del visor: Mayús+Desplazamiento" -#: ../src/libs/histogram.c:1545 +#: ../src/libs/histogram.c:1718 msgid "alt+scroll to cycle" msgstr "Cambiar cíclicamente: Alt+Desplazamiento" -#: ../src/libs/histogram.c:1556 +#: ../src/libs/histogram.c:1732 msgid "drag to change black point" msgstr "Arrastrar para cambiar el punto negro" -#: ../src/libs/histogram.c:1557 ../src/libs/histogram.c:1564 +#: ../src/libs/histogram.c:1733 ../src/libs/histogram.c:1740 msgid "double-click resets" msgstr "Pulsación doble para reiniciar" -#: ../src/libs/histogram.c:1563 +#: ../src/libs/histogram.c:1739 msgid "drag to change exposure" msgstr "Arrastrar para cambiar la exposición" -#: ../src/libs/histogram.c:1725 ../src/libs/histogram.c:1765 +#: ../src/libs/histogram.c:1923 ../src/libs/histogram.c:1965 msgid "set scale to linear" msgstr "Cambiar histograma a escala lineal" -#: ../src/libs/histogram.c:1730 ../src/libs/histogram.c:1770 +#: ../src/libs/histogram.c:1928 ../src/libs/histogram.c:1970 msgid "set scale to logarithmic" msgstr "Cambiar histograma a escala logarítmica" -#: ../src/libs/histogram.c:1746 +#: ../src/libs/histogram.c:1946 msgid "set scope to vertical" msgstr "Cambiar visor a modo vertical" -#: ../src/libs/histogram.c:1751 +#: ../src/libs/histogram.c:1951 msgid "set scope to horizontal" msgstr "Cambiar visor a modo horizontal" -#: ../src/libs/histogram.c:1780 +#: ../src/libs/histogram.c:1980 msgid "set view to AzBz" msgstr "Visualizar en AzBz" -#: ../src/libs/histogram.c:1786 +#: ../src/libs/histogram.c:1986 msgid "set view to RYB" msgstr "Visualizar en RYB" -#: ../src/libs/histogram.c:1792 +#: ../src/libs/histogram.c:1992 msgid "set view to u*v*" msgstr "Visualizar en u*v*" -#: ../src/libs/histogram.c:2312 ../src/libs/histogram.c:2370 +#: ../src/libs/histogram.c:2625 ../src/libs/histogram.c:2691 msgid "cycle histogram modes" msgstr "modo cíclico del histograma" -#: ../src/libs/histogram.c:2316 ../src/libs/histogram.c:2371 +#: ../src/libs/histogram.c:2630 ../src/libs/histogram.c:2693 msgid "hide histogram" msgstr "ocultar histograma" -#: ../src/libs/histogram.c:2372 ../src/libs/histogram.c:2401 +#: ../src/libs/histogram.c:2696 ../src/libs/histogram.c:2729 msgid "switch histogram view" msgstr "cambiar modo de histograma" -#: ../src/libs/histogram.c:2379 +#: ../src/libs/histogram.c:2704 msgid "toggle blue channel" msgstr "alternar canal azul" -#: ../src/libs/histogram.c:2381 ../src/libs/histogram.c:2389 -#: ../src/libs/histogram.c:2397 +#: ../src/libs/histogram.c:2706 ../src/libs/histogram.c:2715 +#: ../src/libs/histogram.c:2724 msgid "toggle colors" msgstr "alternar colores" -#: ../src/libs/histogram.c:2387 +#: ../src/libs/histogram.c:2713 msgid "toggle green channel" msgstr "alternar canal verde" -#: ../src/libs/histogram.c:2395 +#: ../src/libs/histogram.c:2722 msgid "toggle red channel" msgstr "alternar canal rojo" -#: ../src/libs/histogram.c:2405 +#: ../src/libs/histogram.c:2734 msgid "cycle vectorscope types" msgstr "cambiar vistas del vectorscopio" -#: ../src/libs/histogram.c:2413 +#: ../src/libs/histogram.c:2745 msgid "color harmonies" msgstr "armonías de color" -#: ../src/libs/histogram.c:2425 +#: ../src/libs/histogram.c:2759 msgid "cycle color harmonies" msgstr "alternar armonías de color" @@ -22052,10 +22772,18 @@ msgid "mask mode" msgstr "modo de máscara" +#: ../src/libs/history.c:949 +msgid "blend mode" +msgstr "modo de fusión" + #: ../src/libs/history.c:951 msgid "blend operation" msgstr "operación de fusión" +#: ../src/libs/history.c:953 +msgid "blend fulcrum" +msgstr "punto de referencia de la fusión" + #: ../src/libs/history.c:961 msgid "mask blur" msgstr "máscara de desenfoque" @@ -22099,201 +22827,201 @@ msgid "parametric input mask:" msgstr "máscara paramétrica de entrada:" -#: ../src/libs/history.c:1323 +#: ../src/libs/history.c:1322 msgid "delete image's history?" msgstr "¿Borrar el historial de las imágenes?" -#: ../src/libs/history.c:1324 +#: ../src/libs/history.c:1323 msgid "do you really want to clear history of current image?" msgstr "¿Desea realmente descartar el historial de la imagen seleccionada?" -#: ../src/libs/image.c:72 -msgid "selected image[s]" -msgstr "operaciones en la selección" +#: ../src/libs/image.c:74 +msgid "actions on selection" +msgstr "acciones sobre la selección" -#: ../src/libs/image.c:284 +#: ../src/libs/image.c:302 msgid "delete (trash)" msgstr "eliminar (papelera)" -#: ../src/libs/image.c:287 +#: ../src/libs/image.c:305 msgid "physically delete from disk (using trash if possible)" msgstr "Eliminar físicamente del disco (se usará la papelera de ser posible)" -#: ../src/libs/image.c:288 +#: ../src/libs/image.c:306 msgid "physically delete from disk immediately" msgstr "Eliminar inmediatamente del disco" -#: ../src/libs/image.c:474 ../src/libs/modulegroups.c:3811 -#: ../src/libs/styles.c:876 +#: ../src/libs/image.c:506 ../src/libs/modulegroups.c:3813 +#: ../src/libs/styles.c:880 msgid "remove" msgstr "quitar" -#: ../src/libs/image.c:475 +#: ../src/libs/image.c:508 msgid "remove images from the image library, without deleting" msgstr "Quita imágenes de la fototeca sin borrarlas" -#: ../src/libs/image.c:483 +#: ../src/libs/image.c:517 msgid "move..." msgstr "mover..." -#: ../src/libs/image.c:484 +#: ../src/libs/image.c:519 msgid "move to other folder" msgstr "Mover a otra carpeta" -#: ../src/libs/image.c:487 +#: ../src/libs/image.c:522 msgid "copy..." msgstr "copiar..." -#: ../src/libs/image.c:488 +#: ../src/libs/image.c:524 msgid "copy to other folder" msgstr "Copiar a otra carpeta" -#: ../src/libs/image.c:491 +#: ../src/libs/image.c:528 msgid "create HDR" msgstr "crear HDR" -#: ../src/libs/image.c:492 +#: ../src/libs/image.c:530 msgid "create a high dynamic range image from selected shots" msgstr "" "Crear una imagen de rango dinámico amplio a partir de las imágenes " "seleccionadas" -#: ../src/libs/image.c:496 +#: ../src/libs/image.c:535 msgid "add a duplicate to the image library, including its history stack" msgstr "Añadir un duplicado a la fototeca, incluyendo el historial de acciones" -#: ../src/libs/image.c:502 ../src/libs/image.c:505 +#: ../src/libs/image.c:542 ../src/libs/image.c:547 msgid "rotate selected images 90 degrees CCW" msgstr "Rotar imágenes seleccionadas 90 grados en sentido antihorario" -#: ../src/libs/image.c:509 ../src/libs/image.c:512 +#: ../src/libs/image.c:553 ../src/libs/image.c:558 msgid "rotate selected images 90 degrees CW" msgstr "Rotar imágenes seleccionadas 90 grados en sentido horario" -#: ../src/libs/image.c:514 +#: ../src/libs/image.c:561 msgid "reset rotation" msgstr "restaurar rotación" -#: ../src/libs/image.c:515 +#: ../src/libs/image.c:563 msgid "reset rotation to EXIF data" msgstr "Restaurar rotación según los datos Exif" -#: ../src/libs/image.c:518 +#: ../src/libs/image.c:566 msgid "copy locally" msgstr "copiar localmente" -#: ../src/libs/image.c:519 +#: ../src/libs/image.c:568 msgid "copy the image locally" msgstr "Copiar la imagen localmente" -#: ../src/libs/image.c:522 +#: ../src/libs/image.c:572 msgid "resync local copy" msgstr "sincronizar copia local" -#: ../src/libs/image.c:523 +#: ../src/libs/image.c:574 msgid "synchronize the image's XMP and remove the local copy" msgstr "Sincronizar el XMP de la imagen y eliminar la copia local" -#: ../src/libs/image.c:526 +#: ../src/libs/image.c:578 msgctxt "selected images action" msgid "group" msgstr "agrupar" -#: ../src/libs/image.c:527 +#: ../src/libs/image.c:580 msgid "add selected images to expanded group or create a new one" msgstr "Agregar las imágenes seleccionadas al grupo actual o crear uno nuevo" -#: ../src/libs/image.c:531 +#: ../src/libs/image.c:584 msgid "ungroup" msgstr "desagrupar" -#: ../src/libs/image.c:532 +#: ../src/libs/image.c:586 msgid "remove selected images from the group" msgstr "Eliminar las imágenes seleccionadas del grupo" -#: ../src/libs/image.c:544 +#: ../src/libs/image.c:598 msgid "select ratings metadata" msgstr "Seleccionar los metadatos de las valoraciones" -#: ../src/libs/image.c:550 +#: ../src/libs/image.c:605 msgid "colors" msgstr "colores" -#: ../src/libs/image.c:552 +#: ../src/libs/image.c:607 msgid "select colors metadata" msgstr "Seleccionar los metadatos de los colores" -#: ../src/libs/image.c:560 +#: ../src/libs/image.c:616 msgid "select tags metadata" msgstr "Seleccionar los metadatos de las etiquetas" -#: ../src/libs/image.c:568 +#: ../src/libs/image.c:625 msgid "select geo tags metadata" msgstr "Seleccionar los metadatos de las geoetiquetas" -#: ../src/libs/image.c:576 +#: ../src/libs/image.c:636 msgid "select darktable metadata (from metadata editor module)" msgstr "" "Seleccionar metadatos de darktable (desde el módulo editor de metadatos)" -#: ../src/libs/image.c:584 +#: ../src/libs/image.c:649 msgid "set the selected image as source of metadata" msgstr "Fijar la imagen seleccionada como fuente de metadatos" -#: ../src/libs/image.c:589 +#: ../src/libs/image.c:656 msgid "paste selected metadata on selected images" msgstr "Pegar los metadatos elegidos en las imágenes seleccionadas" -#: ../src/libs/image.c:593 +#: ../src/libs/image.c:661 msgid "clear selected metadata on selected images" msgstr "Eliminar los metadatos elegidos de las imágenes seleccionadas" -#: ../src/libs/image.c:598 +#: ../src/libs/image.c:667 msgid "how to handle existing metadata" msgstr "Manera de gestionar los metadatos existentes" -#: ../src/libs/image.c:601 +#: ../src/libs/image.c:670 msgid "merge" msgstr "integrar" -#: ../src/libs/image.c:605 +#: ../src/libs/image.c:675 msgid "update image information to match changes to file" msgstr "" "Actualizar la información de la imagen para que coincida con los cambios del " "archivo" -#: ../src/libs/image.c:609 +#: ../src/libs/image.c:680 msgid "set selection as monochrome images and activate monochrome workflow" msgstr "" "Marcar la selección como imágenes monocromáticas y activar el flujo de " "trabajo monocromático" -#: ../src/libs/image.c:613 +#: ../src/libs/image.c:684 msgid "set selection as color images" msgstr "Marcar selección como imágenes a color" -#: ../src/libs/image.c:625 +#: ../src/libs/image.c:696 msgid "duplicate virgin" msgstr "duplicar imagen virgen" -#: ../src/libs/import.c:263 +#: ../src/libs/import.c:264 #, c-format msgid "device \"%s\" connected on port \"%s\"." msgstr "Dispositivo \"%s\" conectado en el puerto \"%s\"." -#: ../src/libs/import.c:273 ../src/libs/import.c:334 ../src/libs/import.c:1692 +#: ../src/libs/import.c:274 ../src/libs/import.c:335 ../src/libs/import.c:1701 msgid "copy & import from camera" msgstr "copiar e importar desde la cámara" -#: ../src/libs/import.c:284 ../src/libs/import.c:336 +#: ../src/libs/import.c:285 ../src/libs/import.c:337 msgid "tethered shoot" msgstr "captura" -#: ../src/libs/import.c:291 ../src/libs/import.c:337 +#: ../src/libs/import.c:292 ../src/libs/import.c:338 msgid "unmount camera" msgstr "desmontar cámara" -#: ../src/libs/import.c:312 +#: ../src/libs/import.c:313 msgid "" "camera is locked by another application\n" "make sure it is no longer mounted\n" @@ -22303,40 +23031,40 @@ "Asegúrese de que no se encuentre montada o\n" "salga de la aplicación de bloqueo." -#: ../src/libs/import.c:315 +#: ../src/libs/import.c:316 msgid "tethering and importing is disabled for this camera" msgstr "La captura y la importación están inhabilitadas en esta cámara" -#: ../src/libs/import.c:317 ../src/libs/import.c:335 +#: ../src/libs/import.c:318 ../src/libs/import.c:336 msgid "mount camera" msgstr "montar cámara" -#: ../src/libs/import.c:747 +#: ../src/libs/import.c:754 #, c-format msgid "%d image out of %d selected" msgid_plural "%d images out of %d selected" msgstr[0] "%d imagen seleccionada de %d" msgstr[1] "%d imágenes seleccionadas de %d" -#: ../src/libs/import.c:1039 +#: ../src/libs/import.c:1046 msgid "you can't delete the selected place" msgstr "No se puede borrar el lugar seleccionado" -#: ../src/libs/import.c:1153 +#: ../src/libs/import.c:1160 msgid "choose the root of the folder tree below" msgstr "Elija la raíz del árbol de carpetas siguiente" -#: ../src/libs/import.c:1156 +#: ../src/libs/import.c:1163 msgid "places" msgstr "lugares" -#: ../src/libs/import.c:1162 +#: ../src/libs/import.c:1169 msgid "restore all default places you have removed by right-click" msgstr "" "Restaura todos los lugares predeterminados que se hayan quitado pulsando el " "botón secundario" -#: ../src/libs/import.c:1167 +#: ../src/libs/import.c:1174 msgid "" "add a custom place\n" "\n" @@ -22346,81 +23074,109 @@ "\n" "Use el botón secundario para quitarlo." -#: ../src/libs/import.c:1174 +#: ../src/libs/import.c:1181 msgid "you can add custom places using the plus icon" msgstr "Se pueden añadir lugares mediante el ícono del signo +" -#: ../src/libs/import.c:1199 +#: ../src/libs/import.c:1206 msgid "select a folder to see the content" msgstr "Seleccione una carpeta para ver el contenido" -#: ../src/libs/import.c:1202 +#: ../src/libs/import.c:1209 msgid "folders" msgstr "carpetas" -#: ../src/libs/import.c:1272 +#: ../src/libs/import.c:1279 msgid "home" msgstr "home" -#: ../src/libs/import.c:1284 +#: ../src/libs/import.c:1291 msgid "pictures" msgstr "Imágenes" -#: ../src/libs/import.c:1548 +#: ../src/libs/import.c:1557 msgid "mark already imported pictures" msgstr "Marca las imágenes ya importadas" -#: ../src/libs/import.c:1562 +#: ../src/libs/import.c:1571 msgid "modified" msgstr "Modificado" -#: ../src/libs/import.c:1567 +#: ../src/libs/import.c:1576 msgid "file 'modified date/time', may be different from 'Exif date/time'" msgstr "" "El archivo \"fecha/hora de modificación\" podiera ser diferente de \"fecha/" "hora Exif\"" -#: ../src/libs/import.c:1579 +#: ../src/libs/import.c:1588 msgid "show/hide thumbnails" msgstr "Mostrar u ocultar miniaturas" -#: ../src/libs/import.c:1649 +#: ../src/libs/import.c:1658 msgid "naming rules" msgstr "reglas de nombrado" -#: ../src/libs/import.c:1690 +#: ../src/libs/import.c:1699 msgid "add to library" msgstr "añadir a la fototeca" -#: ../src/libs/import.c:1691 +#: ../src/libs/import.c:1700 msgid "copy & import" msgstr "Copiar e importar" -#: ../src/libs/import.c:1730 +#: ../src/libs/import.c:1740 msgid "select new" msgstr "seleccionar nuevas" -#: ../src/libs/import.c:1773 +#: ../src/libs/import.c:1783 msgid "please wait while prefetching the list of images from camera..." msgstr "Espere mientras se carga la lista de imágenes desde la cámara..." -#: ../src/libs/import.c:1907 +#: ../src/libs/import.c:1922 msgid "invalid override date/time format" msgstr "formato de fecha/hora no válido" -#: ../src/libs/import.c:2022 +#: ../src/libs/import.c:1986 +msgid "import base directory" +msgstr "Importar directorio base" + +#: ../src/libs/import.c:1987 +msgid "" +"before copying images to the darktable base directory make sure it is " +"defined as you prefer.\n" +"further information can be found in the darktable manual.\n" +"\n" +"inspect darktable preferences -> import.\n" +"check and possibly correct the 'base directory naming pattern'" +msgstr "" +"Antes de copiar imágenes al directorio base de darktable, asegúrese de que " +"está configurado adecuadamente.\n" +"Puede encontrar más información en el manual de darktable.\n" +"\n" +"Revise las preferencias de darktable -> importar.\n" +"Compruebe y configure en \"Directorio base para el patrón de nombres\"." + +#: ../src/libs/import.c:1991 +msgid "_come back & check" +msgstr "_Volver para verificar" + +#: ../src/libs/import.c:1991 +msgid "_understood & done" +msgstr "_Realizado y entendido" + +#: ../src/libs/import.c:2057 msgid "add to library..." msgstr "añadir a la fototeca" -#: ../src/libs/import.c:2023 +#: ../src/libs/import.c:2058 msgid "add existing images to the library" msgstr "Añadir imágenes existentes a la fototeca" -#: ../src/libs/import.c:2029 +#: ../src/libs/import.c:2064 msgid "copy & import..." msgstr "copiar e importar" -#: ../src/libs/import.c:2030 +#: ../src/libs/import.c:2065 msgid "" "copy and optionally rename images before adding them to the library\n" "patterns can be defined to rename the images and specify the destination " @@ -22432,15 +23188,15 @@ "carpetas de destino." #. collapsible section -#: ../src/libs/import.c:2053 +#: ../src/libs/import.c:2088 msgid "parameters" msgstr "parámetros" -#: ../src/libs/ioporder.c:204 +#: ../src/libs/ioporder.c:202 msgid "v3.0 for RAW input (default)" msgstr "v3.0 imagen en bruto (predefinido)" -#: ../src/libs/ioporder.c:210 +#: ../src/libs/ioporder.c:208 msgid "v3.0 for JPEG/non-RAW input" msgstr "v3.0 para JPEG o no en bruto" @@ -22456,11 +23212,11 @@ msgid "nothing to save" msgstr "Nada para guardar" -#: ../src/libs/lib.c:1105 +#: ../src/libs/lib.c:1106 msgid "show module" msgstr "Mostrar módulo" -#: ../src/libs/lib.c:1430 +#: ../src/libs/lib.c:1431 msgid "utility module" msgstr "módulo de funcionalidad" @@ -22694,167 +23450,109 @@ msgid "map settings" msgstr "configuración de mapa" -#: ../src/libs/map_settings.c:107 +#: ../src/libs/map_settings.c:89 msgid "map source" msgstr "procedencia del mapa" -#: ../src/libs/map_settings.c:112 +#: ../src/libs/map_settings.c:90 msgid "select the source of the map. some entries might not work" msgstr "Elegir la fuente del mapa. Algunas entradas podrían no funcionar" -#: ../src/libs/masks.c:107 +#: ../src/libs/masks.c:108 msgid "feather" msgstr "difuminado" -#: ../src/libs/masks.c:114 -msgid "hardness (relative)" -msgstr "Dureza (relativa)" - -#: ../src/libs/masks.c:115 -msgid "hardness (absolute)" -msgstr "Dureza (absoluta)" - -#: ../src/libs/masks.c:116 -msgid "opacity (relative)" -msgstr "Opacidad (relativa)" - -#: ../src/libs/masks.c:117 -msgid "opacity (absolute)" -msgstr "Opacidad (absoluta)" - -#: ../src/libs/masks.c:118 -msgid "brush size (relative)" -msgstr "Tamaño del pincel (relativo)" - -#: ../src/libs/masks.c:121 -msgid "low" -msgstr "Bajo" - -#: ../src/libs/masks.c:122 -msgid "medium" -msgstr "Medio" - -#: ../src/libs/masks.c:123 -msgid "high" -msgstr "Alto" - -#: ../src/libs/masks.c:381 +#: ../src/libs/masks.c:357 #, c-format msgid "group #%d" msgstr "agrupar #%d" -#: ../src/libs/masks.c:1081 +#: ../src/libs/masks.c:1097 msgid "duplicate this shape" msgstr "duplicar esta figura" -#: ../src/libs/masks.c:1085 +#: ../src/libs/masks.c:1101 msgid "delete this shape" msgstr "borrar esta figura" -#: ../src/libs/masks.c:1091 +#: ../src/libs/masks.c:1107 msgid "delete group" msgstr "borrar grupo" -#: ../src/libs/masks.c:1098 +#: ../src/libs/masks.c:1114 msgid "remove from group" msgstr "eliminar del grupo" -#: ../src/libs/masks.c:1106 +#: ../src/libs/masks.c:1122 msgid "group the forms" msgstr "agrupar figuras" -#: ../src/libs/masks.c:1114 +#: ../src/libs/masks.c:1130 msgid "use inverted shape" msgstr "usar figura inversa" -#: ../src/libs/masks.c:1121 +#: ../src/libs/masks.c:1134 msgid "mode: union" msgstr "modo: unión" -#: ../src/libs/masks.c:1127 +#: ../src/libs/masks.c:1136 msgid "mode: intersection" msgstr "modo: intersección" -#: ../src/libs/masks.c:1133 +#: ../src/libs/masks.c:1138 msgid "mode: difference" msgstr "modo: diferencia" -#: ../src/libs/masks.c:1139 +#: ../src/libs/masks.c:1140 msgid "mode: sum" msgstr "modo: suma" -#: ../src/libs/masks.c:1145 +#: ../src/libs/masks.c:1142 msgid "mode: exclusion" msgstr "modo: exclusión" -#: ../src/libs/masks.c:1164 +#: ../src/libs/masks.c:1158 msgid "cleanup unused shapes" msgstr "eliminar figuras no usadas" -#: ../src/libs/masks.c:1811 +#: ../src/libs/masks.c:1807 msgid "created shapes" msgstr "figuras creadas" -#: ../src/libs/masks.c:1904 ../src/libs/masks.c:1919 ../src/libs/masks.c:1939 -#: ../src/libs/masks.c:1955 +#: ../src/libs/masks.c:1900 ../src/libs/masks.c:1915 ../src/libs/masks.c:1929 +#: ../src/libs/masks.c:1933 msgid "properties" msgstr "propiedades" -#: ../src/libs/masks.c:1907 +#: ../src/libs/masks.c:1903 msgid "no shapes selected" msgstr "No hay figuras seleccionadas" -#: ../src/libs/masks.c:1940 +#: ../src/libs/masks.c:1929 msgid "pressure" msgstr "presión" -#: ../src/libs/masks.c:1941 -msgid "" -"pen pressure control for brush masks\n" -"'off': pressure reading ignored,\n" -"'hardness'/'opacity'/'brush size': pressure reading controls specified " -"attribute,\n" -"'absolute'/'relative': pressure reading is taken directly as attribute value " -"or multiplied with pre-defined setting." -msgstr "" -"Control de presión del lápiz para máscaras de pincel\n" -"• «apagado»: lectura de la presión ignorada\n" -"• «dureza/opacidad/tamaño del pincel»: Los controles de lectura de presión " -"especifican el atributo\n" -"• «absoluto/relativo»: la lectura de presión se toma directamente como valor " -"de atributo o se multiplica con los ajustes predefinidos." - -#: ../src/libs/masks.c:1956 +#: ../src/libs/masks.c:1933 msgid "smoothing" msgstr "suavizado" -#: ../src/libs/masks.c:1957 -msgid "" -"smoothing of brush strokes\n" -"stronger smoothing leads to fewer nodes and easier editing but with lower " -"control of accuracy." -msgstr "" -"Ajusta los niveles de suavizado de pinceladas.\n" -"Un mayor suavizado conlleva menos nodos y una edición más fácil pero con " -"menor control de precisión." - -#: ../src/libs/metadata.c:64 +#: ../src/libs/metadata.c:60 msgid "metadata editor" msgstr "editor de metadatos" -#: ../src/libs/metadata.c:206 ../src/libs/metadata.c:496 -msgid "<leave unchanged>" -msgstr "<no modificar>" - -#: ../src/libs/metadata.c:630 ../src/libs/metadata_view.c:1192 +#: ../src/libs/metadata.c:459 ../src/libs/metadata_view.c:1219 msgid "metadata settings" msgstr "Configuración de metadatos" -#: ../src/libs/metadata.c:683 ../src/libs/metadata_view.c:1237 +#: ../src/libs/metadata.c:461 ../src/libs/metadata_view.c:1221 +msgid "_default" +msgstr "_Predefinidos" + +#: ../src/libs/metadata.c:516 ../src/libs/metadata_view.c:1267 msgid "visible" msgstr "visible" -#: ../src/libs/metadata.c:688 +#: ../src/libs/metadata.c:524 msgid "" "tick if the corresponding metadata is of interest for you\n" "it will be visible from metadata editor, collection and import module\n" @@ -22865,12 +23563,12 @@ "importación.\n" "También serán exportados." -#: ../src/libs/metadata.c:693 ../src/libs/tagging.c:1683 -#: ../src/libs/tagging.c:1827 +#: ../src/libs/metadata.c:529 ../src/libs/tagging.c:1705 +#: ../src/libs/tagging.c:1854 msgid "private" msgstr "privado" -#: ../src/libs/metadata.c:698 +#: ../src/libs/metadata.c:534 msgid "" "tick if you want to keep this information private (not exported with images)" msgstr "" @@ -22878,7 +23576,7 @@ "exporta con las imágenes)" # Verificar en contexto -#: ../src/libs/metadata.c:857 +#: ../src/libs/metadata.c:691 msgid "" "metadata text\n" "ctrl+enter inserts a new line (caution, may not be compatible with standard " @@ -22895,170 +23593,182 @@ "En tal caso, con clic secundario se posibilita elegir una de ellas.\n" "Pulse Esc para salir de la ventana emergente." -#: ../src/libs/metadata.c:902 +#: ../src/libs/metadata.c:736 msgid "write metadata for selected images" msgstr "Establecer los metadatos en las imágenes seleccionadas" +#: ../src/libs/metadata.c:737 +msgid "cancel" +msgstr "Cancelar" + +#: ../src/libs/metadata.c:738 +msgid "ignore changed metadata" +msgstr "Omitir los metadatos modificados" + #. <title>\0<description>\0<rights>\0<creator>\0<publisher> -#: ../src/libs/metadata.c:958 +#: ../src/libs/metadata.c:793 msgid "CC BY" msgstr "CC BY" -#: ../src/libs/metadata.c:959 +#: ../src/libs/metadata.c:794 msgid "Creative Commons Attribution (CC BY)" msgstr "Creative Commons Atribución (CC BY)" -#: ../src/libs/metadata.c:960 +#: ../src/libs/metadata.c:795 msgid "CC BY-SA" msgstr "CC BY-SA" -#: ../src/libs/metadata.c:961 +#: ../src/libs/metadata.c:796 msgid "Creative Commons Attribution-ShareAlike (CC BY-SA)" msgstr "Creative Commons Atribución-Compartir Igual (CC BY-SA)" -#: ../src/libs/metadata.c:962 +#: ../src/libs/metadata.c:797 msgid "CC BY-ND" msgstr "CC BY-ND" -#: ../src/libs/metadata.c:963 +#: ../src/libs/metadata.c:798 msgid "Creative Commons Attribution-NoDerivs (CC BY-ND)" msgstr "Creative Commons Atribución-Sin Derivadas (CC BY-ND)" -#: ../src/libs/metadata.c:964 +#: ../src/libs/metadata.c:799 msgid "CC BY-NC" msgstr "CC BY-NC" -#: ../src/libs/metadata.c:965 +#: ../src/libs/metadata.c:800 msgid "Creative Commons Attribution-NonCommercial (CC BY-NC)" msgstr "Creative Commons Atribución-No Comercial (CC BY-NC)" -#: ../src/libs/metadata.c:966 +#: ../src/libs/metadata.c:801 msgid "CC BY-NC-SA" msgstr "CC BY-NC-SA" -#: ../src/libs/metadata.c:967 +#: ../src/libs/metadata.c:802 msgid "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" msgstr "Creative Commons Atribución-No Comercial-Compartir Igual (CC BY-NC-SA)" -#: ../src/libs/metadata.c:968 +#: ../src/libs/metadata.c:803 msgid "CC BY-NC-ND" msgstr "CC BY-NC-ND" -#: ../src/libs/metadata.c:969 +#: ../src/libs/metadata.c:804 msgid "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" msgstr "Creative Commons Atribución-No Comercial-Sin Derivadas (CC BY-NC-ND)" -#: ../src/libs/metadata.c:970 ../src/libs/metadata.c:971 +#: ../src/libs/metadata.c:805 ../src/libs/metadata.c:806 msgid "all rights reserved" msgstr "todos los derechos reservados" #. internal -#: ../src/libs/metadata_view.c:123 +#: ../src/libs/metadata_view.c:125 msgid "filmroll" msgstr "sesión" # Cámbio el orden de las palagras "grupo id" por la siguiente "id. grupo", ya que la primera proviene de "group id", en Español se pondría en el segundo caso, también le pongo "." a la abreviatura "id" para no confundirla con la acción de ir a un lugar -#: ../src/libs/metadata_view.c:125 +#: ../src/libs/metadata_view.c:127 msgid "group id" msgstr "id. grupo" -#: ../src/libs/metadata_view.c:127 +#: ../src/libs/metadata_view.c:129 msgid "version" msgstr "versión" -#: ../src/libs/metadata_view.c:130 +#: ../src/libs/metadata_view.c:132 msgid "import timestamp" msgstr "fecha (importado)" -#: ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:133 msgid "change timestamp" msgstr "fecha (edición)" -#: ../src/libs/metadata_view.c:132 +#: ../src/libs/metadata_view.c:134 msgid "export timestamp" msgstr "fecha (exportado)" -#: ../src/libs/metadata_view.c:133 +#: ../src/libs/metadata_view.c:135 msgid "print timestamp" msgstr "fecha (impresión)" -#: ../src/libs/metadata_view.c:134 +#: ../src/libs/metadata_view.c:136 msgid "flags" msgstr "banderas" -#: ../src/libs/metadata_view.c:144 +#: ../src/libs/metadata_view.c:146 +msgid "35mm equiv focal length" +msgstr "equiv. 35 mm (long. foc.)" + +#: ../src/libs/metadata_view.c:148 msgid "focus distance" msgstr "distancia focal" -#: ../src/libs/metadata_view.c:146 +#: ../src/libs/metadata_view.c:150 msgid "datetime" msgstr "fecha/hora" -#: ../src/libs/metadata_view.c:149 +#: ../src/libs/metadata_view.c:153 msgid "export width" msgstr "ancho (exportado)" -#: ../src/libs/metadata_view.c:150 +#: ../src/libs/metadata_view.c:154 msgid "export height" msgstr "alto (exportado)" -#: ../src/libs/metadata_view.c:158 +#: ../src/libs/metadata_view.c:162 msgid "longitude" msgstr "longitud" -#: ../src/libs/metadata_view.c:159 +#: ../src/libs/metadata_view.c:163 msgid "elevation" msgstr "elevación" -#: ../src/libs/metadata_view.c:163 +#: ../src/libs/metadata_view.c:167 msgid "categories" msgstr "categorías" -#: ../src/libs/metadata_view.c:170 +#: ../src/libs/metadata_view.c:174 msgid "image information" msgstr "información de la imagen" -#: ../src/libs/metadata_view.c:330 +#: ../src/libs/metadata_view.c:334 msgid "unused/deprecated" msgstr "sin usar/sin soporte" -#: ../src/libs/metadata_view.c:331 +#: ../src/libs/metadata_view.c:335 msgid "LDR" msgstr "LDR" -#: ../src/libs/metadata_view.c:334 +#: ../src/libs/metadata_view.c:338 msgid "marked for deletion" msgstr "marcado para ser eliminado" -#: ../src/libs/metadata_view.c:335 +#: ../src/libs/metadata_view.c:339 msgid "auto-applying presets applied" msgstr "ajustes automáticos establecidos" -#: ../src/libs/metadata_view.c:337 +#: ../src/libs/metadata_view.c:341 msgid "has .txt" msgstr "tiene .txt" -#: ../src/libs/metadata_view.c:338 +#: ../src/libs/metadata_view.c:342 msgid "has .wav" msgstr "tiene .wav" -#: ../src/libs/metadata_view.c:356 +#: ../src/libs/metadata_view.c:360 #, c-format msgid "image has %d star" msgid_plural "image has %d stars" msgstr[0] "La imagen tiene %d estrella" msgstr[1] "La imagen tiene %d estrellas" -#: ../src/libs/metadata_view.c:432 +#: ../src/libs/metadata_view.c:436 #, c-format msgid "loader: %s" msgstr "cargando: %s" -#: ../src/libs/metadata_view.c:623 +#: ../src/libs/metadata_view.c:626 msgid "<various values>" msgstr "<múltiples valores>" -#: ../src/libs/metadata_view.c:636 +#: ../src/libs/metadata_view.c:639 #, c-format msgid "" "double-click to jump to film roll\n" @@ -23067,32 +23777,28 @@ "Realice un doble clic para cambiar al carrete\n" "%s" -#: ../src/libs/metadata_view.c:728 +#: ../src/libs/metadata_view.c:731 #, c-format msgid "%+.2f EV" msgstr "%+.2f EV" -#: ../src/libs/metadata_view.c:735 -#, c-format -msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" -msgstr "%.1f mm (%.1f mm equivalente FC, recorte %.1f)" - -#: ../src/libs/metadata_view.c:740 +#: ../src/libs/metadata_view.c:737 ../src/libs/metadata_view.c:749 +#: ../src/libs/metadata_view.c:754 #, c-format msgid "%.1f mm" msgstr "%.1f mm" -#: ../src/libs/metadata_view.c:751 +#: ../src/libs/metadata_view.c:778 #, c-format msgid "infinity" msgstr "infinito" -#: ../src/libs/metadata_view.c:755 +#: ../src/libs/metadata_view.c:782 #, c-format msgid "%.2f m" msgstr "%.2f m" -#: ../src/libs/metadata_view.c:1232 +#: ../src/libs/metadata_view.c:1262 msgid "" "drag and drop one row at a time until you get the desired order\n" "untick to hide metadata which are not of interest for you\n" @@ -23102,7 +23808,7 @@ "Desmarque la casilla para ocultar los metadatos no deseados.\n" "Utilice los preajustes en caso de requerir una configuración diferente." -#: ../src/libs/metadata_view.c:1388 +#: ../src/libs/metadata_view.c:1423 msgid "jump to film roll" msgstr "cambiar al carrete" @@ -23127,7 +23833,7 @@ msgid "recent collections settings" msgstr "Preferencias de colecciones recientes" -#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1769 +#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1753 msgid "workflow: scene-referred" msgstr "flujo de trabajo: basado en la escena" @@ -23145,12 +23851,12 @@ #. FIXME don't check here if on/off is enabled, because it depends on image (reload_defaults) #. respond later to image changed signal -#: ../src/libs/modulegroups.c:306 ../src/libs/modulegroups.c:318 -#: ../src/libs/modulegroups.c:2427 ../src/libs/modulegroups.c:2429 +#: ../src/libs/modulegroups.c:307 ../src/libs/modulegroups.c:319 +#: ../src/libs/modulegroups.c:2411 ../src/libs/modulegroups.c:2413 msgid "on-off" msgstr "Control de activación" -#: ../src/libs/modulegroups.c:498 ../src/libs/modulegroups.c:501 +#: ../src/libs/modulegroups.c:501 ../src/libs/modulegroups.c:504 msgid "" "this quick access widget is disabled as there are multiple instances of this " "module present. Please use the full module to access this widget..." @@ -23159,159 +23865,159 @@ "elementos del mismo módulo. Para poder usar este componente, utilice el " "módulo respectivo." -#: ../src/libs/modulegroups.c:591 +#: ../src/libs/modulegroups.c:594 msgid "(some features may only be available in the full module interface)" msgstr "" "(Es posible que algunas funciones sólo estén disponibles en el módulo " "respectivo)" -#: ../src/libs/modulegroups.c:635 +#: ../src/libs/modulegroups.c:632 #, c-format msgid "go to the full version of the %s module" msgstr "Ir a la versión completa del módulo %s" -#: ../src/libs/modulegroups.c:1556 ../src/libs/modulegroups.c:1641 -#: ../src/libs/modulegroups.c:1677 ../src/libs/modulegroups.c:1727 -#: ../src/libs/modulegroups.c:1817 +#: ../src/libs/modulegroups.c:1538 ../src/libs/modulegroups.c:1624 +#: ../src/libs/modulegroups.c:1660 ../src/libs/modulegroups.c:1710 +#: ../src/libs/modulegroups.c:1801 msgctxt "modulegroup" msgid "base" msgstr "básico" -#: ../src/libs/modulegroups.c:1575 +#: ../src/libs/modulegroups.c:1557 msgctxt "modulegroup" msgid "tone" msgstr "tono" -#: ../src/libs/modulegroups.c:1584 ../src/libs/modulegroups.c:1691 -#: ../src/libs/modulegroups.c:1741 +#: ../src/libs/modulegroups.c:1566 ../src/libs/modulegroups.c:1674 +#: ../src/libs/modulegroups.c:1724 msgctxt "modulegroup" msgid "color" msgstr "color" -#: ../src/libs/modulegroups.c:1599 ../src/libs/modulegroups.c:1699 -#: ../src/libs/modulegroups.c:1746 +#: ../src/libs/modulegroups.c:1582 ../src/libs/modulegroups.c:1682 +#: ../src/libs/modulegroups.c:1730 msgctxt "modulegroup" msgid "correct" msgstr "corrección" -#: ../src/libs/modulegroups.c:1617 ../src/libs/modulegroups.c:1711 -#: ../src/libs/modulegroups.c:1758 ../src/libs/modulegroups.c:2321 +#: ../src/libs/modulegroups.c:1600 ../src/libs/modulegroups.c:1694 +#: ../src/libs/modulegroups.c:1742 ../src/libs/modulegroups.c:2305 msgctxt "modulegroup" msgid "effect" msgstr "efecto" -#: ../src/libs/modulegroups.c:1635 +#: ../src/libs/modulegroups.c:1618 msgid "modules: all" msgstr "módulos: todos" -#: ../src/libs/modulegroups.c:1656 +#: ../src/libs/modulegroups.c:1639 msgctxt "modulegroup" msgid "grading" msgstr "calibración de color" -#: ../src/libs/modulegroups.c:1664 ../src/libs/modulegroups.c:2325 +#: ../src/libs/modulegroups.c:1647 ../src/libs/modulegroups.c:2309 msgctxt "modulegroup" msgid "effects" msgstr "efectos" -#: ../src/libs/modulegroups.c:1672 +#: ../src/libs/modulegroups.c:1655 msgid "workflow: beginner" msgstr "flujo de trabajo: principiante" -#: ../src/libs/modulegroups.c:1721 +#: ../src/libs/modulegroups.c:1704 msgid "workflow: display-referred" msgstr "flujo de trabajo: basado en la pantalla" -#: ../src/libs/modulegroups.c:1773 +#: ../src/libs/modulegroups.c:1757 msgid "search only" msgstr "sólo búsqueda" -#: ../src/libs/modulegroups.c:1779 ../src/libs/modulegroups.c:2090 -#: ../src/libs/modulegroups.c:2599 +#: ../src/libs/modulegroups.c:1763 ../src/libs/modulegroups.c:2074 +#: ../src/libs/modulegroups.c:2583 msgctxt "modulegroup" msgid "deprecated" msgstr "obsoleto" -#: ../src/libs/modulegroups.c:1792 +#: ../src/libs/modulegroups.c:1776 msgid "previous config" msgstr "configuración previa" -#: ../src/libs/modulegroups.c:1793 +#: ../src/libs/modulegroups.c:1777 msgid "previous layout" msgstr "disposición previa" -#: ../src/libs/modulegroups.c:1797 +#: ../src/libs/modulegroups.c:1781 msgid "previous config with new layout" msgstr "configuración previa con la nueva disposición" -#: ../src/libs/modulegroups.c:1957 ../src/libs/modulegroups.c:2472 -#: ../src/libs/modulegroups.c:2484 +#: ../src/libs/modulegroups.c:1941 ../src/libs/modulegroups.c:2456 +#: ../src/libs/modulegroups.c:2468 msgid "remove this widget" msgstr "Quitar este elemento de control" -#: ../src/libs/modulegroups.c:2107 ../src/libs/modulegroups.c:2347 +#: ../src/libs/modulegroups.c:2091 ../src/libs/modulegroups.c:2331 msgid "remove this module" msgstr "Quitar este módulo" #. does it belong to recommended modules ? -#: ../src/libs/modulegroups.c:2316 +#: ../src/libs/modulegroups.c:2300 msgid "base" msgstr "básico" -#: ../src/libs/modulegroups.c:2319 +#: ../src/libs/modulegroups.c:2303 msgid "tone" msgstr "tono" -#: ../src/libs/modulegroups.c:2322 +#: ../src/libs/modulegroups.c:2306 msgid "technical" msgstr "técnico" -#: ../src/libs/modulegroups.c:2323 +#: ../src/libs/modulegroups.c:2307 msgid "grading" msgstr "calibración de color" -#: ../src/libs/modulegroups.c:2329 ../src/libs/modulegroups.c:2337 +#: ../src/libs/modulegroups.c:2313 ../src/libs/modulegroups.c:2321 msgid "add this module" msgstr "Añadir este módulo" #. show the submenu with all the modules -#: ../src/libs/modulegroups.c:2359 ../src/libs/modulegroups.c:2559 +#: ../src/libs/modulegroups.c:2343 ../src/libs/modulegroups.c:2543 msgid "all available modules" msgstr "todos los módulos disponibles" -#: ../src/libs/modulegroups.c:2367 +#: ../src/libs/modulegroups.c:2351 msgid "add module" msgstr "añadir módulo" -#: ../src/libs/modulegroups.c:2372 +#: ../src/libs/modulegroups.c:2356 msgid "remove module" msgstr "quitar módulo" -#: ../src/libs/modulegroups.c:2478 +#: ../src/libs/modulegroups.c:2462 msgid "header needed for other widgets" msgstr "Encabezado necesario para otros componentes de control" -#: ../src/libs/modulegroups.c:2494 ../src/libs/modulegroups.c:2501 +#: ../src/libs/modulegroups.c:2478 ../src/libs/modulegroups.c:2485 msgid "add this widget" msgstr "Añadir este elemento de control" -#: ../src/libs/modulegroups.c:2514 +#: ../src/libs/modulegroups.c:2498 msgid "currently invisible" msgstr "Actualmente invisible" -#: ../src/libs/modulegroups.c:2543 +#: ../src/libs/modulegroups.c:2527 msgid "add widget" msgstr "Añadir elemento de control" -#: ../src/libs/modulegroups.c:2548 +#: ../src/libs/modulegroups.c:2532 msgid "remove widget" msgstr "Quitar elemento de control" -#: ../src/libs/modulegroups.c:2653 +#: ../src/libs/modulegroups.c:2637 msgid "show all history modules" msgstr "mostrar todos los módulos del historial" -#: ../src/libs/modulegroups.c:2656 ../src/libs/modulegroups.c:3834 +#: ../src/libs/modulegroups.c:2640 ../src/libs/modulegroups.c:3836 msgid "" "show modules that are present in the history stack, regardless of whether or " "not they are currently enabled" @@ -23319,7 +24025,7 @@ "Mostrar los módulos que están presentes en historial de acciones, " "independientemente de si actualmente están o no habilitados" -#: ../src/libs/modulegroups.c:2747 ../src/libs/modulegroups.c:2816 +#: ../src/libs/modulegroups.c:2731 ../src/libs/modulegroups.c:2823 msgid "" "the following modules are deprecated because they have internal design " "mistakes that can't be corrected and alternative modules that correct them.\n" @@ -23330,19 +24036,19 @@ "sustitutos.\n" "Se desactivarán para nuevos revelados en la próxima versión." -#: ../src/libs/modulegroups.c:2775 ../src/libs/modulegroups.c:2776 +#: ../src/libs/modulegroups.c:2782 ../src/libs/modulegroups.c:2783 msgid "quick access panel" msgstr "Panel de control modular y acceso rápido" -#: ../src/libs/modulegroups.c:2786 +#: ../src/libs/modulegroups.c:2793 msgid "show only active modules" msgstr "Mostrar únicamente los módulos activos" -#: ../src/libs/modulegroups.c:2787 +#: ../src/libs/modulegroups.c:2794 msgid "active modules" msgstr "Módulos activo" -#: ../src/libs/modulegroups.c:2792 +#: ../src/libs/modulegroups.c:2799 msgid "" "presets\n" "ctrl+click to manage" @@ -23350,143 +24056,147 @@ "Preajustes\n" "Use Ctrl+Clic para gestionar" -#: ../src/libs/modulegroups.c:2798 +#: ../src/libs/modulegroups.c:2805 msgid "search modules" msgstr "buscar módulos" -#: ../src/libs/modulegroups.c:2799 +#: ../src/libs/modulegroups.c:2806 msgid "search modules by name or tag" msgstr "Buscar módulos por nombre o etiqueta" -#: ../src/libs/modulegroups.c:2809 +#: ../src/libs/modulegroups.c:2816 msgid "clear text" msgstr "Borrar texto" -#: ../src/libs/modulegroups.c:3051 +#: ../src/libs/modulegroups.c:3056 msgid "basic icon" msgstr "ícono de básico" -#: ../src/libs/modulegroups.c:3061 +#: ../src/libs/modulegroups.c:3066 msgid "active icon" msgstr "ícono de activos" -#: ../src/libs/modulegroups.c:3071 +#: ../src/libs/modulegroups.c:3076 msgid "color icon" msgstr "ícono de color" -#: ../src/libs/modulegroups.c:3081 +#: ../src/libs/modulegroups.c:3086 msgid "correct icon" msgstr "ícono de corrección" -#: ../src/libs/modulegroups.c:3091 +#: ../src/libs/modulegroups.c:3096 msgid "effect icon" msgstr "ícono de efecto" -#: ../src/libs/modulegroups.c:3101 +#: ../src/libs/modulegroups.c:3106 msgid "favorites icon" msgstr "ícono de favoritos" -#: ../src/libs/modulegroups.c:3111 +#: ../src/libs/modulegroups.c:3116 msgid "tone icon" msgstr "ícono de tono" -#: ../src/libs/modulegroups.c:3121 +#: ../src/libs/modulegroups.c:3126 msgid "grading icon" msgstr "ícono de calibración de color" -#: ../src/libs/modulegroups.c:3131 +#: ../src/libs/modulegroups.c:3136 msgid "technical icon" msgstr "ícono de técnico" -#: ../src/libs/modulegroups.c:3164 +#: ../src/libs/modulegroups.c:3169 msgid "quick access panel widgets" msgstr "Controles para el panel de control modular" -#: ../src/libs/modulegroups.c:3166 +#: ../src/libs/modulegroups.c:3171 msgid "quick access" msgstr "acceso rápido" -#: ../src/libs/modulegroups.c:3186 +#: ../src/libs/modulegroups.c:3191 msgid "add widget to the quick access panel" msgstr "Añade un componente al panel de control modular" -#: ../src/libs/modulegroups.c:3218 +#: ../src/libs/modulegroups.c:3223 msgid "group icon" msgstr "ícono de grupo" -#: ../src/libs/modulegroups.c:3227 +#: ../src/libs/modulegroups.c:3232 msgid "group name" msgstr "Nombre del grupo" -#: ../src/libs/modulegroups.c:3238 +#: ../src/libs/modulegroups.c:3243 msgid "remove group" msgstr "Eliminar grupo" -#: ../src/libs/modulegroups.c:3264 +#: ../src/libs/modulegroups.c:3269 msgid "move group to the left" msgstr "Se mueve el grupo a otra carpeta" -#: ../src/libs/modulegroups.c:3272 +#: ../src/libs/modulegroups.c:3277 msgid "add module to the group" msgstr "Añadir un módulo al grupo" -#: ../src/libs/modulegroups.c:3283 +#: ../src/libs/modulegroups.c:3288 msgid "move group to the right" msgstr "Se mueve el grupo a la derecha" -#: ../src/libs/modulegroups.c:3463 +#: ../src/libs/modulegroups.c:3464 msgid "rename preset" msgstr "Renombrar preajuste" -#: ../src/libs/modulegroups.c:3470 +#: ../src/libs/modulegroups.c:3467 +msgid "_rename" +msgstr "_renombrar" + +#: ../src/libs/modulegroups.c:3473 msgid "new preset name:" msgstr "Nuevo nombre del preajuste:" -#: ../src/libs/modulegroups.c:3471 +#: ../src/libs/modulegroups.c:3474 msgid "a preset with this name already exists!" msgstr "Ya existe un preajuste con el mismo nombre" -#: ../src/libs/modulegroups.c:3804 +#: ../src/libs/modulegroups.c:3806 msgid "preset: " msgstr "preajuste: " -#: ../src/libs/modulegroups.c:3811 +#: ../src/libs/modulegroups.c:3813 msgid "remove the preset" msgstr "eliminar el preajuste" -#: ../src/libs/modulegroups.c:3813 +#: ../src/libs/modulegroups.c:3815 msgid "duplicate the preset" msgstr "Duplicar el preajuste" -#: ../src/libs/modulegroups.c:3815 +#: ../src/libs/modulegroups.c:3817 msgid "rename the preset" msgstr "Renombrar el preajuste" -#: ../src/libs/modulegroups.c:3817 +#: ../src/libs/modulegroups.c:3819 msgid "create a new empty preset" msgstr "Crear un preajuste vacío nuevo" -#: ../src/libs/modulegroups.c:3825 +#: ../src/libs/modulegroups.c:3827 msgid "show search line" msgstr "mostrar búsqueda" -#: ../src/libs/modulegroups.c:3828 +#: ../src/libs/modulegroups.c:3830 msgid "show quick access panel" msgstr "Mostrar panel de control modular" -#: ../src/libs/modulegroups.c:3831 +#: ../src/libs/modulegroups.c:3833 msgid "show all history modules in active group" msgstr "mostrar todos los módulos del historial en el grupo activo" -#: ../src/libs/modulegroups.c:3843 +#: ../src/libs/modulegroups.c:3845 msgid "auto-apply this preset" msgstr "usar automáticamente este preajuste" -#: ../src/libs/modulegroups.c:3858 +#: ../src/libs/modulegroups.c:3860 msgid "module groups" msgstr "Agrupación de módulos" -#: ../src/libs/modulegroups.c:3875 +#: ../src/libs/modulegroups.c:3877 msgid "" "this is a built-in read-only preset. duplicate it if you want to make changes" msgstr "" @@ -23496,16 +24206,16 @@ msgid "navigation" msgstr "navegación" -#: ../src/libs/navigation.c:111 ../src/libs/navigation.c:191 +#: ../src/libs/navigation.c:112 ../src/libs/navigation.c:194 msgctxt "navigationbox" msgid "fill" msgstr "relleno" -#: ../src/libs/navigation.c:114 ../src/libs/navigation.c:189 +#: ../src/libs/navigation.c:115 ../src/libs/navigation.c:192 msgid "small" msgstr "pequeño" -#: ../src/libs/navigation.c:151 +#: ../src/libs/navigation.c:154 msgid "" "navigation\n" "click or drag to position zoomed area in center view" @@ -23513,35 +24223,35 @@ "Navegación\n" "Pulse o arrastre para colocar el área ampliada en la vista central." -#: ../src/libs/navigation.c:173 +#: ../src/libs/navigation.c:176 msgid "hide navigation thumbnail" msgstr "ocultar navegación de miniaturas" -#: ../src/libs/navigation.c:187 +#: ../src/libs/navigation.c:190 msgid "image zoom level" msgstr "nivel de zoom de la imagen" -#: ../src/libs/navigation.c:192 +#: ../src/libs/navigation.c:195 msgid "50%" msgstr "50%" -#: ../src/libs/navigation.c:193 +#: ../src/libs/navigation.c:196 msgid "100%" msgstr "100%" -#: ../src/libs/navigation.c:194 +#: ../src/libs/navigation.c:197 msgid "200%" msgstr "200%" -#: ../src/libs/navigation.c:195 +#: ../src/libs/navigation.c:198 msgid "400%" msgstr "400%" -#: ../src/libs/navigation.c:196 +#: ../src/libs/navigation.c:199 msgid "800%" msgstr "800%" -#: ../src/libs/navigation.c:197 +#: ../src/libs/navigation.c:200 msgid "1600%" msgstr "1600%" @@ -23787,15 +24497,15 @@ msgid "print with current settings" msgstr "Imprimir con la configuración actual" -#: ../src/libs/select.c:136 +#: ../src/libs/select.c:137 msgid "select all images in current collection" msgstr "Seleccionar todas las imágenes en la colección actual" -#: ../src/libs/select.c:140 +#: ../src/libs/select.c:141 msgid "clear selection" msgstr "Despejar selección" -#: ../src/libs/select.c:144 +#: ../src/libs/select.c:145 msgid "" "select unselected images\n" "in current collection" @@ -23803,7 +24513,7 @@ "Seleccionar las imágenes previamente no seleccionadas\n" "en la colección actual" -#: ../src/libs/select.c:148 +#: ../src/libs/select.c:149 msgid "" "select all images which are in the same\n" "film roll as the selected images" @@ -23811,7 +24521,7 @@ "Seleccionar todas las imágenes que pertenezcan al mismo\n" "carrete que las imágenes seleccionadas" -#: ../src/libs/select.c:152 +#: ../src/libs/select.c:153 msgid "" "select untouched images in\n" "current collection" @@ -23831,29 +24541,33 @@ msgid "create" msgstr "crear" -#: ../src/libs/snapshots.c:92 +#: ../src/libs/snapshots.c:88 msgid "snapshots" msgstr "instantáneas" -#: ../src/libs/snapshots.c:141 +#: ../src/libs/snapshots.c:137 msgctxt "snapshot sign" msgid "S" msgstr "S" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:662 +msgid "snapshots for removed image have been deleted" +msgstr "Las instantáneas de la imagen borrada han sido eliminadas." + +#: ../src/libs/snapshots.c:703 #, c-format msgid "↗ %s '%s'" msgstr "↗ %s «%s»" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:703 msgid "this snapshot was taken from" msgstr "Esta instantánea se tomó de" -#: ../src/libs/snapshots.c:663 +#: ../src/libs/snapshots.c:742 msgid "take snapshot" msgstr "crear instantánea" -#: ../src/libs/snapshots.c:665 +#: ../src/libs/snapshots.c:744 msgid "" "take snapshot to compare with another image or the same image at another " "stage of development" @@ -23861,7 +24575,7 @@ "Se crea una instantánea de la imagen en proceso para compararse con otro " "paso de revelado de la misma o incluso, con otra imagen." -#: ../src/libs/snapshots.c:734 +#: ../src/libs/snapshots.c:790 msgid "toggle last snapshot" msgstr "cambiar la última instantánea" @@ -23878,7 +24592,11 @@ msgstr[0] "¿Realmente desea eliminar el estilo %d?" msgstr[1] "¿Realmente desea eliminar los estilos %d?" -#: ../src/libs/styles.c:444 ../src/libs/styles.c:627 +#: ../src/libs/styles.c:441 ../src/libs/styles.c:626 +msgid "_overwrite" +msgstr "_sobreescribir" + +#: ../src/libs/styles.c:446 ../src/libs/styles.c:631 #, c-format msgid "" "style `%s' already exists.\n" @@ -23887,24 +24605,24 @@ "El estilo «%s» ya existe.\n" "¿Desea sobreescribirlo?\n" -#: ../src/libs/styles.c:446 ../src/libs/styles.c:629 +#: ../src/libs/styles.c:448 ../src/libs/styles.c:633 msgid "apply this option to all existing styles" msgstr "Establecer esta opción en todos los estilos existentes" -#: ../src/libs/styles.c:509 +#: ../src/libs/styles.c:511 #, c-format msgid "style %s was successfully exported" msgstr "El estilo %s fue importado correctamente" -#: ../src/libs/styles.c:526 +#: ../src/libs/styles.c:528 msgid "select style" msgstr "seleccionar estilo" -#: ../src/libs/styles.c:536 +#: ../src/libs/styles.c:538 msgid "darktable style files" msgstr "archivos de estilo darktable" -#: ../src/libs/styles.c:815 +#: ../src/libs/styles.c:819 msgid "" "available styles,\n" "double-click to apply" @@ -23912,77 +24630,77 @@ "Estilos disponibles: \n" "haga pulsación doble para aplicarlo." -#: ../src/libs/styles.c:824 ../src/libs/styles.c:825 +#: ../src/libs/styles.c:828 ../src/libs/styles.c:829 msgid "filter style names" msgstr "filtrar nombres de estilo" -#: ../src/libs/styles.c:837 +#: ../src/libs/styles.c:841 msgid "create duplicate" msgstr "crear duplicado" -#: ../src/libs/styles.c:844 +#: ../src/libs/styles.c:848 msgid "creates a duplicate of the image before applying style" msgstr "Crear un duplicado de la imagen antes de aplicar el estilo" -#: ../src/libs/styles.c:862 +#: ../src/libs/styles.c:866 msgid "create..." msgstr "crear..." -#: ../src/libs/styles.c:864 +#: ../src/libs/styles.c:868 msgid "create styles from history stack of selected images" msgstr "" "Crear estilos a partir del historial de acciones de las imágenes " "seleccionadas" -#: ../src/libs/styles.c:869 ../src/libs/tagging.c:2252 +#: ../src/libs/styles.c:873 ../src/libs/tagging.c:2283 msgid "edit..." msgstr "editar..." -#: ../src/libs/styles.c:871 +#: ../src/libs/styles.c:875 msgid "edit the selected styles in list above" msgstr "Edita los estilos seleccionados de la lista anterior" -#: ../src/libs/styles.c:878 +#: ../src/libs/styles.c:882 msgid "removes the selected styles in list above" msgstr "Elimina los estilos seleccionados de la lista anterior" -#: ../src/libs/styles.c:885 +#: ../src/libs/styles.c:889 msgid "import styles from a style files" msgstr "Importar los estilos desde un fichero de estilos" -#: ../src/libs/styles.c:892 +#: ../src/libs/styles.c:896 msgid "export the selected styles into a style files" msgstr "Exportar los estilos seleccionados a un fichero de estilos" -#: ../src/libs/styles.c:899 +#: ../src/libs/styles.c:903 msgid "apply the selected styles in list above to selected images" msgstr "" "Aplicar los estilos seleccionados de la lista anterior a las imágenes " "seleccionadas" -#: ../src/libs/tagging.c:105 +#: ../src/libs/tagging.c:109 msgid "tagging" msgstr "etiquetado" -#: ../src/libs/tagging.c:1255 +#: ../src/libs/tagging.c:1258 msgid "attach tag to all" msgstr "Añadir etiqueta a todas las imágenes" -#: ../src/libs/tagging.c:1263 ../src/libs/tagging.c:2225 +#: ../src/libs/tagging.c:1266 ../src/libs/tagging.c:2256 msgid "detach tag" msgstr "disociar etiqueta" -#: ../src/libs/tagging.c:1483 +#: ../src/libs/tagging.c:1486 msgid "delete tag?" msgstr "¿Borrar etiqueta?" -#: ../src/libs/tagging.c:1490 ../src/libs/tagging.c:1578 -#: ../src/libs/tagging.c:1789 ../src/libs/tagging.c:2063 +#: ../src/libs/tagging.c:1496 ../src/libs/tagging.c:1587 +#: ../src/libs/tagging.c:1814 ../src/libs/tagging.c:2093 #, c-format msgid "selected: %s" msgstr "Seleccionadas: %s " -#: ../src/libs/tagging.c:1497 +#: ../src/libs/tagging.c:1503 #, c-format msgid "" "do you really want to delete the tag `%s'?\n" @@ -23997,73 +24715,73 @@ "¿Desea borrar las etiqueta «%s»?\n" "%d imágenes tienen asignada esta etiqueta!" -#: ../src/libs/tagging.c:1531 +#: ../src/libs/tagging.c:1537 #, c-format msgid "tag %s removed" msgstr "Etiqueta %s eliminada" -#: ../src/libs/tagging.c:1571 +#: ../src/libs/tagging.c:1577 msgid "delete node?" msgstr "¿Desea eliminar el nodo?" -#: ../src/libs/tagging.c:1585 +#: ../src/libs/tagging.c:1594 #, c-format msgid "<u>%d</u> tag will be deleted" msgid_plural "<u>%d</u> tags will be deleted" msgstr[0] "<u>%d</u> etiqueta se eliminará." msgstr[1] "<u>%d</u> etiqueta se eliminarán." -#: ../src/libs/tagging.c:1590 ../src/libs/tagging.c:1801 -#: ../src/libs/tagging.c:2075 +#: ../src/libs/tagging.c:1599 ../src/libs/tagging.c:1826 +#: ../src/libs/tagging.c:2105 #, c-format msgid "<u>%d</u> image will be updated" msgid_plural "<u>%d</u> images will be updated" msgstr[0] "<u>%d</u> imagen se actualizará." msgstr[1] "<u>%d</u> imágenes se actualizarán." -#: ../src/libs/tagging.c:1616 +#: ../src/libs/tagging.c:1625 #, c-format msgid "%d tags removed" msgstr "%d etiquetas eliminadas" -#: ../src/libs/tagging.c:1652 +#: ../src/libs/tagging.c:1668 msgid "create tag" msgstr "Crear etiqueta" -#: ../src/libs/tagging.c:1662 ../src/libs/tagging.c:1809 +#: ../src/libs/tagging.c:1681 ../src/libs/tagging.c:1834 msgid "name: " msgstr "nombre:" -#: ../src/libs/tagging.c:1674 +#: ../src/libs/tagging.c:1696 #, c-format msgid "add to: \"%s\" " msgstr "añadir a: \"%s\" " -#: ../src/libs/tagging.c:1680 ../src/libs/tagging.c:1824 +#: ../src/libs/tagging.c:1702 ../src/libs/tagging.c:1851 msgid "category" msgstr "categoría" -#: ../src/libs/tagging.c:1689 ../src/libs/tagging.c:1833 +#: ../src/libs/tagging.c:1711 ../src/libs/tagging.c:1860 msgid "synonyms: " msgstr "sinónimos:" -#: ../src/libs/tagging.c:1706 ../src/libs/tagging.c:1855 -#: ../src/libs/tagging.c:2097 +#: ../src/libs/tagging.c:1728 ../src/libs/tagging.c:1882 +#: ../src/libs/tagging.c:2128 msgid "empty tag is not allowed, aborting" msgstr "No se permite una etiqueta en blanco. Abortando." -#: ../src/libs/tagging.c:1717 +#: ../src/libs/tagging.c:1739 msgid "tag name already exists. aborting." msgstr "El nombre de la etiqueta ya existe. Abortando." -#: ../src/libs/tagging.c:1796 ../src/libs/tagging.c:2070 +#: ../src/libs/tagging.c:1821 ../src/libs/tagging.c:2100 #, c-format msgid "<u>%d</u> tag will be updated" msgid_plural "<u>%d</u> tags will be updated" msgstr[0] "<u>%d</u> etiqueta se actualizará." msgstr[1] "<u>%d</u> etiquetas se actualizarán." -#: ../src/libs/tagging.c:1857 +#: ../src/libs/tagging.c:1884 msgid "" "'|' character is not allowed for renaming tag.\n" "to modify the hierarchy use rename path instead. Aborting." @@ -24071,100 +24789,100 @@ "El caracter '|' no se puede usar para renombrar una etiqueta.\n" "Use «cambiar ruta» para modificar la jerarquía. Abortando." -#: ../src/libs/tagging.c:1896 ../src/libs/tagging.c:2004 +#: ../src/libs/tagging.c:1923 ../src/libs/tagging.c:2031 #, c-format msgid "at least one new tag name (%s) already exists, aborting" msgstr "Al menos un nuevo nombre de etiqueta (% s) ya existe... abortando." -#: ../src/libs/tagging.c:2056 +#: ../src/libs/tagging.c:2083 msgid "change path" msgstr "Cambiar ruta" -#: ../src/libs/tagging.c:2099 +#: ../src/libs/tagging.c:2130 msgid "'|' misplaced, empty tag is not allowed, aborting" msgstr "'|' fuera de lugar. No se permite una etiqueta en blanco... abortando." -#: ../src/libs/tagging.c:2195 +#: ../src/libs/tagging.c:2226 #, c-format msgid "tag %s created" msgstr "Etiqueta %s creada" -#: ../src/libs/tagging.c:2221 +#: ../src/libs/tagging.c:2252 msgid "attach tag" msgstr "añadir etiqueta" -#: ../src/libs/tagging.c:2234 +#: ../src/libs/tagging.c:2265 msgid "create tag..." msgstr "crear etiqueta..." -#: ../src/libs/tagging.c:2240 +#: ../src/libs/tagging.c:2271 msgid "delete tag" msgstr "borrar etiqueta" -#: ../src/libs/tagging.c:2247 +#: ../src/libs/tagging.c:2278 msgid "delete node" msgstr "Nodo elimindado" -#: ../src/libs/tagging.c:2260 +#: ../src/libs/tagging.c:2291 msgid "change path..." msgstr "cambiar la ruta..." -#: ../src/libs/tagging.c:2270 +#: ../src/libs/tagging.c:2301 msgid "set as a tag" msgstr "marcar como una etiqueta" -#: ../src/libs/tagging.c:2281 +#: ../src/libs/tagging.c:2312 msgid "copy to entry" msgstr "copiar al campo de texto" -#: ../src/libs/tagging.c:2298 +#: ../src/libs/tagging.c:2329 msgid "go to tag collection" msgstr "ir a la colección de etiquetas" -#: ../src/libs/tagging.c:2304 +#: ../src/libs/tagging.c:2335 msgid "go back to work" msgstr "regresar al trabajo" -#: ../src/libs/tagging.c:2461 +#: ../src/libs/tagging.c:2492 #, c-format msgid "%s" msgstr "%s" -#: ../src/libs/tagging.c:2462 +#: ../src/libs/tagging.c:2493 msgid "(private)" msgstr "(privado)" -#: ../src/libs/tagging.c:2488 +#: ../src/libs/tagging.c:2519 msgid "select a keyword file" msgstr "Selecciona un archivo de palabras clave" -#: ../src/libs/tagging.c:2501 +#: ../src/libs/tagging.c:2532 msgid "error importing tags" msgstr "Error al importar etiquetas" -#: ../src/libs/tagging.c:2503 +#: ../src/libs/tagging.c:2534 #, c-format msgid "%zd tags imported" msgstr "%zd etiquetas importadas" -#: ../src/libs/tagging.c:2524 +#: ../src/libs/tagging.c:2555 msgid "select file to export to" msgstr "Seleccione el archivo para exportar" -#: ../src/libs/tagging.c:2538 +#: ../src/libs/tagging.c:2569 msgid "error exporting tags" msgstr "Error al exportar etiquetas" -#: ../src/libs/tagging.c:2540 +#: ../src/libs/tagging.c:2571 #, c-format msgid "%zd tags exported" msgstr "%zd etiquetas exportadas" -#: ../src/libs/tagging.c:2964 +#: ../src/libs/tagging.c:2995 msgid "drop to root" msgstr "volver a la raíz" -#: ../src/libs/tagging.c:3100 +#: ../src/libs/tagging.c:3131 msgid "" "attached tags\n" "press Delete or double-click to detach\n" @@ -24176,47 +24894,47 @@ "Pulse clic secundario para mostrar más opciones.\n" "Pulse Tab para tener el foco en el campo para el ingreso de texto." -#: ../src/libs/tagging.c:3111 +#: ../src/libs/tagging.c:3142 msgid "attach" msgstr "añadir" -#: ../src/libs/tagging.c:3112 +#: ../src/libs/tagging.c:3143 msgid "attach tag to all selected images" msgstr "Añadir etiqueta a todas las imágenes seleccionadas" -#: ../src/libs/tagging.c:3115 +#: ../src/libs/tagging.c:3146 msgid "detach" msgstr "disociar" -#: ../src/libs/tagging.c:3116 +#: ../src/libs/tagging.c:3147 msgid "detach tag from all selected images" msgstr "Disociar etiquetas de todas las imágenes seleccionadas" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "toggle list with / without hierarchy" msgstr "Conmutar lista (con jerarquía o sin jerarquía)" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "hide" msgstr "ocultar" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "toggle sort by name or by count" msgstr "Cambiar entre ordenar por nombre y ordenar por recuento" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "sort" msgstr "ordenar por" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "toggle show or not darktable tags" msgstr "Cambiar entre mostrar y ocultar etiquetas de darktable" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "dttags" msgstr "etiquetas dt" -#: ../src/libs/tagging.c:3149 +#: ../src/libs/tagging.c:3180 msgid "" "enter tag name\n" "press Enter to create a new tag and attach it on selected images\n" @@ -24229,11 +24947,11 @@ "Pulse Tab o la tecla Abajo para ir a la primera etiqueta coincidente.\n" "Pulse Mayús+Tab para seleccionar la primera etiqueta de usuario adjunta." -#: ../src/libs/tagging.c:3160 ../src/libs/tagging.c:3166 +#: ../src/libs/tagging.c:3191 ../src/libs/tagging.c:3197 msgid "clear entry" msgstr "Borrar texto" -#: ../src/libs/tagging.c:3213 +#: ../src/libs/tagging.c:3244 msgid "" "tag dictionary,\n" "Enter or double-click to attach selected tag on selected images\n" @@ -24253,7 +24971,7 @@ "Pulse Mayús+Tab para tener el foco para el ingreso de texto en el campo " "correspondiente." -#: ../src/libs/tagging.c:3248 +#: ../src/libs/tagging.c:3279 msgid "" "create a new tag with the\n" "name you entered" @@ -24261,42 +24979,42 @@ "Crear una nueva etiqueta con el\n" "nombre designado" -#: ../src/libs/tagging.c:3251 +#: ../src/libs/tagging.c:3282 msgid "import tags from a Lightroom keyword file" msgstr "Importar etiquetas desde el archivo Lightroom" -#: ../src/libs/tagging.c:3254 +#: ../src/libs/tagging.c:3285 msgid "export all tags to a Lightroom keyword file" msgstr "Exportar todas las etiquetas al archivo Lightroom" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "toggle list / tree view" msgstr "Conmutar vista (de lista o de árbol)" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "tree" msgstr "vista de árbol" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "toggle list with / without suggestion" msgstr "Cambiar entre lista con o sin sugerencia" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "suggestion" msgstr "sugerencia" -#: ../src/libs/tagging.c:3282 +#: ../src/libs/tagging.c:3313 msgid "redo last tag" msgstr "deshacer el último etiquetado" -#: ../src/libs/tagging.c:3365 +#: ../src/libs/tagging.c:3396 msgid "" "tag shortcut is not active with tag tree view. please switch to list view" msgstr "" "El acceso directo de la etiqueta no está activo con vista de árbol. Cambiar " "la vista de la lista" -#: ../src/libs/tagging.c:3469 +#: ../src/libs/tagging.c:3500 msgid "tagging settings" msgstr "configuración de etiquetado" @@ -24313,33 +25031,6 @@ msgid "toggle color label of selected images" msgstr "Poner/quitar marcas de color de las imágenes seleccionadas" -#: ../src/libs/tools/darktable.c:284 -#, c-format -msgid "copyright (c) the authors 2009-%s" -msgstr "© 2009-%s, derechos reservados a los autores" - -#: ../src/libs/tools/darktable.c:288 -msgid "organize and develop images from digital cameras" -msgstr "Revele y organice las imágenes de cámaras digitales" - -#: ../src/libs/tools/darktable.c:300 -msgid "all those of you that made previous releases possible" -msgstr "todos aquellos que hicieron posible las versiones previas." - -#: ../src/libs/tools/darktable.c:305 -msgid "and..." -msgstr "y..." - -#: ../src/libs/tools/darktable.c:307 -msgid "translator-credits" -msgstr "" -"Edgar De la Luz «EdgarLux» (2019-2023)\n" -"Tatica Leandro (2012-2017)\n" -"José Carlos García Sogo (2011-2014)\n" -"Roberto Quintero (2010-2011)\n" -"\n" -"Telegram: @darktablees" - #: ../src/libs/tools/filmstrip.c:45 msgid "filmstrip" msgstr "tira de imágenes" @@ -24663,35 +25354,35 @@ msgid "click to enter culling layout in dynamic mode." msgstr "Pulse para activar el modo dinámico de selección" -#: ../src/libs/tools/lighttable.c:368 +#: ../src/libs/tools/lighttable.c:365 msgid "toggle filemanager layout" msgstr "activar/desactivar modo gestor de archivos" -#: ../src/libs/tools/lighttable.c:371 +#: ../src/libs/tools/lighttable.c:368 msgid "click to enter filemanager layout." msgstr "Pulse para activar el modo gestor de archivos" -#: ../src/libs/tools/lighttable.c:377 +#: ../src/libs/tools/lighttable.c:374 msgid "toggle zoomable lighttable layout" msgstr "activar/desactivar mesa de luz con ampliación" -#: ../src/libs/tools/lighttable.c:380 +#: ../src/libs/tools/lighttable.c:377 msgid "click to enter zoomable lighttable layout." msgstr "Pulse para activar la mesa de luz con ampliación" -#: ../src/libs/tools/lighttable.c:386 +#: ../src/libs/tools/lighttable.c:383 msgid "toggle culling mode" msgstr "cambiar a modo de selección" -#: ../src/libs/tools/lighttable.c:394 +#: ../src/libs/tools/lighttable.c:391 msgid "toggle culling dynamic mode" msgstr "cambiar a modo dinámico de selección" -#: ../src/libs/tools/lighttable.c:441 +#: ../src/libs/tools/lighttable.c:438 msgid "toggle culling zoom mode" msgstr "cambiar a modo de ampliación de selección" -#: ../src/libs/tools/lighttable.c:443 +#: ../src/libs/tools/lighttable.c:440 msgid "exit current layout" msgstr "salir del modo de vista activo" @@ -24719,7 +25410,6 @@ #: ../src/libs/tools/midi.c:558 #, c-format -#| msgid "send as email" msgid "%s opened as midi%d" msgstr "%s abierto como MIDI %d" @@ -24777,7 +25467,7 @@ msgid "Lua options" msgstr "opciones de Lua" -#: ../src/views/darkroom.c:607 +#: ../src/views/darkroom.c:503 #, c-format msgid "" "darktable could not load `%s', switching to lighttable now.\n" @@ -24799,64 +25489,64 @@ "Si está seguro que el modelo es compatible, considere reportar el problema\n" "en https://github.com/darktable-org/darktable." -#: ../src/views/darkroom.c:625 +#: ../src/views/darkroom.c:521 #, c-format msgctxt "darkroom" msgid "loading `%s' ..." msgstr "Cargando «%s» ..." -#: ../src/views/darkroom.c:749 ../src/views/darkroom.c:2496 +#: ../src/views/darkroom.c:668 ../src/views/darkroom.c:2335 msgid "gamut check" msgstr "revisión de gama" -#: ../src/views/darkroom.c:749 +#: ../src/views/darkroom.c:668 msgid "soft proof" msgstr "prueba de impresión" #. fail :( -#: ../src/views/darkroom.c:787 ../src/views/print.c:356 +#: ../src/views/darkroom.c:708 ../src/views/print.c:356 msgid "no image to open!" msgstr "No hay ninguna imagen para abrir" -#: ../src/views/darkroom.c:1331 +#: ../src/views/darkroom.c:1232 msgid "no user-defined presets for favorite modules were found" msgstr "" "No se han encontrado preajustes definidos por el usuario para los módulos " "favoritos" -#: ../src/views/darkroom.c:1476 +#: ../src/views/darkroom.c:1377 msgid "no styles have been created yet" msgstr "No se han creado estilos aún" -#: ../src/views/darkroom.c:2331 ../src/views/darkroom.c:2332 +#: ../src/views/darkroom.c:2170 ../src/views/darkroom.c:2171 msgid "quick access to presets" msgstr "Acceso rápido a los preajustes" -#: ../src/views/darkroom.c:2340 +#: ../src/views/darkroom.c:2179 msgid "quick access to styles" msgstr "Acceso rápido a los estilos" -#: ../src/views/darkroom.c:2342 +#: ../src/views/darkroom.c:2181 msgid "quick access for applying any of your styles" msgstr "Acceso rápido para utilizar cualquiera de los estilos" -#: ../src/views/darkroom.c:2348 +#: ../src/views/darkroom.c:2187 msgid "second window" msgstr "2ª ventana" -#: ../src/views/darkroom.c:2351 +#: ../src/views/darkroom.c:2190 msgid "display a second darkroom image window" msgstr "Abrir en otra ventana la vista previa de la imagen del cuarto oscuro" -#: ../src/views/darkroom.c:2356 +#: ../src/views/darkroom.c:2195 msgid "color assessment" msgstr "evaluación del color" -#: ../src/views/darkroom.c:2359 +#: ../src/views/darkroom.c:2198 msgid "toggle ISO 12646 color assessment conditions" msgstr "Cambiar las condiciones de evaluación de color ISO 12646" -#: ../src/views/darkroom.c:2372 +#: ../src/views/darkroom.c:2211 msgid "" "toggle raw over exposed indication\n" "right click for options" @@ -24864,27 +25554,27 @@ "Activar el indicador de sobreexposición de la imagen virgen\n" "Pulse botón secundario para ver más opciones" -#: ../src/views/darkroom.c:2388 +#: ../src/views/darkroom.c:2227 msgid "select how to mark the clipped pixels" msgstr "seleccione como marcar los pixeles cortados" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with CFA color" msgstr "marcar con color CFA" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with solid color" msgstr "marcar con color sólido" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "false color" msgstr "color falso" -#: ../src/views/darkroom.c:2393 ../src/views/darkroom.c:2444 +#: ../src/views/darkroom.c:2232 ../src/views/darkroom.c:2283 msgid "color scheme" msgstr "esquema de color" -#: ../src/views/darkroom.c:2394 +#: ../src/views/darkroom.c:2233 msgid "" "select the solid color to indicate over exposure.\n" "will only be used if mode = mark with solid color" @@ -24892,27 +25582,27 @@ "Seleccione el color sólido para indicar sobreexposición.\n" "Solo será utilizado si el modo = esta marcado con un color sólido" -#: ../src/views/darkroom.c:2397 +#: ../src/views/darkroom.c:2236 msgctxt "solidcolor" msgid "red" msgstr "rojo" -#: ../src/views/darkroom.c:2398 +#: ../src/views/darkroom.c:2237 msgctxt "solidcolor" msgid "green" msgstr "verde" -#: ../src/views/darkroom.c:2399 +#: ../src/views/darkroom.c:2238 msgctxt "solidcolor" msgid "blue" msgstr "azul" -#: ../src/views/darkroom.c:2400 +#: ../src/views/darkroom.c:2239 msgctxt "solidcolor" msgid "black" msgstr "negro" -#: ../src/views/darkroom.c:2408 +#: ../src/views/darkroom.c:2247 msgid "" "threshold of what shall be considered overexposed\n" "1.0 - white level\n" @@ -24922,7 +25612,7 @@ "1.0 - nivel blanco\n" "0.0 - nivel negro" -#: ../src/views/darkroom.c:2422 +#: ../src/views/darkroom.c:2261 msgid "" "toggle clipping indication\n" "right click for options" @@ -24930,11 +25620,11 @@ "Activar el indicador de recorte de la imagen virgen en las luces/sombras.\n" "Pulse botón secundario para ver más opciones." -#: ../src/views/darkroom.c:2437 +#: ../src/views/darkroom.c:2276 msgid "clipping preview mode" msgstr "vista previa del recorte" -#: ../src/views/darkroom.c:2438 +#: ../src/views/darkroom.c:2277 msgid "" "select the metric you want to preview\n" "full gamut is the combination of all other modes" @@ -24942,39 +25632,39 @@ "Establece la métrica mostrada.\n" "\"Toda la gama\" es una combinación de todas las demás métricas." -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "full gamut" msgstr "Toda la gama" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "any RGB channel" msgstr "Cualquier canal RGB" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "luminance only" msgstr "Sólo luminancia" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "saturation only" msgstr "Sólo saturación" -#: ../src/views/darkroom.c:2445 +#: ../src/views/darkroom.c:2284 msgid "select colors to indicate clipping" msgstr "Selección de colores para indicar el recorte en las luces/sombras" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "red & blue" msgstr "rojo y azul" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "purple & green" msgstr "púrpura y verde" -#: ../src/views/darkroom.c:2454 +#: ../src/views/darkroom.c:2293 msgid "lower threshold" msgstr "umbral inferior" -#: ../src/views/darkroom.c:2455 +#: ../src/views/darkroom.c:2294 msgid "" "clipping threshold for the black point,\n" "in EV, relatively to white (0 EV).\n" @@ -24996,11 +25686,11 @@ "• Impresiones típicas en papel brillante en blanco y negro reproducen negro " "a -9.00 EV" -#: ../src/views/darkroom.c:2471 +#: ../src/views/darkroom.c:2310 msgid "upper threshold" msgstr "umbral superior" -#: ../src/views/darkroom.c:2473 +#: ../src/views/darkroom.c:2312 #, no-c-format msgid "" "clipping threshold for the white point.\n" @@ -25009,11 +25699,11 @@ "Umbral de recorte para el punto blanco.\n" "El 100% es el máximo de luminancia media." -#: ../src/views/darkroom.c:2485 +#: ../src/views/darkroom.c:2324 msgid "softproof" msgstr "prueba en pantalla" -#: ../src/views/darkroom.c:2488 +#: ../src/views/darkroom.c:2327 msgid "" "toggle softproofing\n" "right click for profile options" @@ -25021,7 +25711,7 @@ "Activar las pruebas en pantalla\n" "Pulse botón secundario para ver las opciones de perfil" -#: ../src/views/darkroom.c:2499 +#: ../src/views/darkroom.c:2338 msgid "" "toggle gamut checking\n" "right click for profile options" @@ -25029,46 +25719,56 @@ "Activar la revisión de gama\n" "Pulse botón secundario para ver las opciones del perfil" -#: ../src/views/darkroom.c:2524 ../src/views/darkroom.c:2526 -#: ../src/views/darkroom.c:2540 ../src/views/darkroom.c:2541 -#: ../src/views/darkroom.c:2542 ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2365 ../src/views/darkroom.c:2367 +#: ../src/views/darkroom.c:2381 ../src/views/darkroom.c:2382 +#: ../src/views/darkroom.c:2383 ../src/views/darkroom.c:2384 #: ../src/views/lighttable.c:1182 ../src/views/lighttable.c:1184 msgid "profiles" msgstr "perfiles" -#: ../src/views/darkroom.c:2526 ../src/views/lighttable.c:1184 +#: ../src/views/darkroom.c:2367 ../src/views/lighttable.c:1184 msgid "preview intent" msgstr "finalidad en la vista preliminar" -#: ../src/views/darkroom.c:2540 ../src/views/lighttable.c:1188 +#: ../src/views/darkroom.c:2381 ../src/views/lighttable.c:1188 msgid "display profile" msgstr "perfil (pantalla)" -#: ../src/views/darkroom.c:2541 ../src/views/lighttable.c:1191 +#: ../src/views/darkroom.c:2382 ../src/views/lighttable.c:1191 msgid "preview display profile" msgstr "vista previa del perfil (pantalla)" -#: ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2384 msgid "histogram profile" msgstr "perfil del histograma" -#: ../src/views/darkroom.c:2605 ../src/views/lighttable.c:1225 +#: ../src/views/darkroom.c:2391 +msgid "second preview window ISO 12646 color assessment" +msgstr "" +"Condiciones de evaluación de color ISO 12646 en la ventana de " +"previsualización" + +#: ../src/views/darkroom.c:2393 +msgid "color assessment second preview" +msgstr "Evaluación de color de la ventana de previsualización" + +#: ../src/views/darkroom.c:2452 ../src/views/lighttable.c:1225 msgid "display ICC profiles" msgstr "perfiles ICC de la pantalla" -#: ../src/views/darkroom.c:2609 ../src/views/lighttable.c:1229 +#: ../src/views/darkroom.c:2456 ../src/views/lighttable.c:1229 msgid "preview display ICC profiles" msgstr "vista previa del perfil ICC de la pantalla" -#: ../src/views/darkroom.c:2613 +#: ../src/views/darkroom.c:2460 msgid "softproof ICC profiles" msgstr "prueba de perfiles ICC" -#: ../src/views/darkroom.c:2617 +#: ../src/views/darkroom.c:2464 msgid "histogram and color picker ICC profiles" msgstr "histograma y selector de color de perfiles ICC" -#: ../src/views/darkroom.c:2651 +#: ../src/views/darkroom.c:2497 msgid "" "toggle guide lines\n" "right click for guides options" @@ -25077,137 +25777,137 @@ "Pulse botón secundario para ver las opciones disponibles." #. Fullscreen preview key -#: ../src/views/darkroom.c:2668 +#: ../src/views/darkroom.c:2514 msgid "full preview" msgstr "vista previa completa" #. add an option to allow skip mouse events while other overlays are consuming mouse actions -#: ../src/views/darkroom.c:2672 +#: ../src/views/darkroom.c:2518 msgid "force pan/zoom/rotate with mouse" msgstr "forzar alejar/acercar/rotar con el ratón" #. Zoom shortcuts -#: ../src/views/darkroom.c:2684 +#: ../src/views/darkroom.c:2530 msgid "zoom close-up" msgstr "ampliar imagen" #. zoom in/out #. zoom in/out/min/max -#: ../src/views/darkroom.c:2687 ../src/views/lighttable.c:1283 +#: ../src/views/darkroom.c:2533 ../src/views/lighttable.c:1283 msgid "zoom in" msgstr "acercar" -#: ../src/views/darkroom.c:2688 ../src/views/lighttable.c:1285 +#: ../src/views/darkroom.c:2534 ../src/views/lighttable.c:1285 msgid "zoom out" msgstr "alejar" #. Shortcut to skip images -#: ../src/views/darkroom.c:2691 +#: ../src/views/darkroom.c:2537 msgid "image forward" msgstr "imagen siguiente" -#: ../src/views/darkroom.c:2692 +#: ../src/views/darkroom.c:2538 msgid "image back" msgstr "imagen anterior" #. cycle overlay colors -#: ../src/views/darkroom.c:2695 +#: ../src/views/darkroom.c:2541 msgid "cycle overlay colors" msgstr "ciclo de superposición de colores" #. toggle visibility of drawn masks for current gui module -#: ../src/views/darkroom.c:2698 +#: ../src/views/darkroom.c:2544 msgid "show drawn masks" msgstr "mostrar máscaras trazadas" #. brush size +/- -#: ../src/views/darkroom.c:2701 +#: ../src/views/darkroom.c:2547 msgid "increase brush size" msgstr "aumentar tamaño del pincel" -#: ../src/views/darkroom.c:2702 +#: ../src/views/darkroom.c:2548 msgid "decrease brush size" msgstr "reducir tamaño del pincel" #. brush hardness +/- -#: ../src/views/darkroom.c:2705 +#: ../src/views/darkroom.c:2551 msgid "increase brush hardness" msgstr "incrementar dureza del pincel" -#: ../src/views/darkroom.c:2706 +#: ../src/views/darkroom.c:2552 msgid "decrease brush hardness" msgstr "reducir dureza del pincel" #. brush opacity +/- -#: ../src/views/darkroom.c:2709 +#: ../src/views/darkroom.c:2555 msgid "increase brush opacity" msgstr "incrementar opacidad del pincel" -#: ../src/views/darkroom.c:2710 +#: ../src/views/darkroom.c:2556 msgid "decrease brush opacity" msgstr "reducir opacidad del pincel" #. undo/redo -#: ../src/views/darkroom.c:2713 ../src/views/lighttable.c:1275 +#: ../src/views/darkroom.c:2559 ../src/views/lighttable.c:1275 #: ../src/views/map.c:2115 msgid "undo" msgstr "deshacer" -#: ../src/views/darkroom.c:2714 ../src/views/lighttable.c:1276 +#: ../src/views/darkroom.c:2560 ../src/views/lighttable.c:1276 #: ../src/views/map.c:2116 msgid "redo" msgstr "rehacer" #. change the precision for adjusting sliders with keyboard shortcuts -#: ../src/views/darkroom.c:2717 +#: ../src/views/darkroom.c:2563 msgid "change keyboard shortcut slider precision" msgstr "Cambiar la precisión del control deslizante con un atajo de teclado" -#: ../src/views/darkroom.c:3989 +#: ../src/views/darkroom.c:3565 msgid "keyboard shortcut slider precision: fine" msgstr "Precisión del control deslizante con el atajo de teclado: alta" -#: ../src/views/darkroom.c:3991 +#: ../src/views/darkroom.c:3567 msgid "keyboard shortcut slider precision: normal" msgstr "Precisión del control deslizante con el atajo de teclado: normal" -#: ../src/views/darkroom.c:3993 +#: ../src/views/darkroom.c:3569 msgid "keyboard shortcut slider precision: coarse" msgstr "Precisión del control deslizante con el atajo de teclado: baja" -#: ../src/views/darkroom.c:4009 +#: ../src/views/darkroom.c:3584 msgid "switch to lighttable" msgstr "cambiar a mesa de luz" -#: ../src/views/darkroom.c:4010 ../src/views/lighttable.c:882 +#: ../src/views/darkroom.c:3585 ../src/views/lighttable.c:882 msgid "zoom in the image" msgstr "ampliar la imagen" -#: ../src/views/darkroom.c:4011 +#: ../src/views/darkroom.c:3586 msgid "unbounded zoom in the image" msgstr "ampliar y reducir la vista de la imagen" -#: ../src/views/darkroom.c:4012 +#: ../src/views/darkroom.c:3587 msgid "zoom to 100% 200% and back" msgstr "ampliar a 100% y a 200% cíclicamente" -#: ../src/views/darkroom.c:4013 ../src/views/lighttable.c:885 +#: ../src/views/darkroom.c:3588 ../src/views/lighttable.c:885 msgid "pan a zoomed image" msgstr "Panorámica a imagen ampliada" -#: ../src/views/darkroom.c:4015 ../src/views/lighttable.c:927 +#: ../src/views/darkroom.c:3590 ../src/views/lighttable.c:927 msgid "[modules] expand module without closing others" msgstr "[módulos] desplegar el módulo sin cerrar los otros" -#: ../src/views/darkroom.c:4016 ../src/views/lighttable.c:928 +#: ../src/views/darkroom.c:3591 ../src/views/lighttable.c:928 msgid "[modules] expand module and close others" msgstr "[módulos] desplegar el módulo y plegar los demás" -#: ../src/views/darkroom.c:4018 +#: ../src/views/darkroom.c:3593 msgid "[modules] rename module" msgstr "[módulos] renombrar módulo" -#: ../src/views/darkroom.c:4020 +#: ../src/views/darkroom.c:3595 msgid "[modules] change module position in pipe" msgstr "[módulos] reordenar módulos (cambia el procesado)" @@ -25352,61 +26052,61 @@ msgid "print" msgstr "imprimir" -#: ../src/views/slideshow.c:353 +#: ../src/views/slideshow.c:355 msgid "end of images" msgstr "Fin de las diapositivas" -#: ../src/views/slideshow.c:374 +#: ../src/views/slideshow.c:376 msgid "end of images. press any key to return to lighttable mode" msgstr "" "Ha llegado al final. Pulse cualquier tecla para volver a la vista de mesa de " "luz." -#: ../src/views/slideshow.c:504 +#: ../src/views/slideshow.c:509 msgid "waiting to start slideshow" msgstr "Esperando para empezar la presentación de diapositivas" -#: ../src/views/slideshow.c:640 ../src/views/slideshow.c:661 -#: ../src/views/slideshow.c:669 +#: ../src/views/slideshow.c:678 ../src/views/slideshow.c:705 +#: ../src/views/slideshow.c:713 msgid "slideshow paused" msgstr "Presentación de diapositivas pausado" -#: ../src/views/slideshow.c:648 ../src/views/slideshow.c:655 +#: ../src/views/slideshow.c:686 ../src/views/slideshow.c:696 #, c-format msgid "slideshow delay set to %d second" msgid_plural "slideshow delay set to %d seconds" msgstr[0] "Intervalo entre diapositivas establecido en% d segundo" msgstr[1] "Intervalo entre diapositivas establecido en% d segundos" -#: ../src/views/slideshow.c:684 +#: ../src/views/slideshow.c:728 msgid "start and stop" msgstr "inicio y detención" -#: ../src/views/slideshow.c:685 +#: ../src/views/slideshow.c:730 msgid "exit slideshow" msgstr "salir de la presentación" -#: ../src/views/slideshow.c:688 +#: ../src/views/slideshow.c:734 msgid "slow down" msgstr "retardar" -#: ../src/views/slideshow.c:691 +#: ../src/views/slideshow.c:738 msgid "speed up" msgstr "acelerar" -#: ../src/views/slideshow.c:695 +#: ../src/views/slideshow.c:743 msgid "step forward" msgstr "avanzar" -#: ../src/views/slideshow.c:696 +#: ../src/views/slideshow.c:745 msgid "step back" msgstr "retroceder" -#: ../src/views/slideshow.c:702 +#: ../src/views/slideshow.c:753 msgid "go to next image" msgstr "pasar a la siguiente imagen" -#: ../src/views/slideshow.c:703 +#: ../src/views/slideshow.c:755 msgid "go to previous image" msgstr "retroceder a la imagen anterior" @@ -25419,54 +26119,298 @@ msgid "no camera with tethering support available for use..." msgstr "No se encuentra disponible ninguna cámara con soporte de captura" -#: ../src/views/view.c:1193 +#: ../src/views/view.c:1352 msgid "left click" msgstr "Clic" -#: ../src/views/view.c:1196 +#: ../src/views/view.c:1355 msgid "right click" msgstr "Clic Secundario" -#: ../src/views/view.c:1199 +#: ../src/views/view.c:1358 msgid "middle click" msgstr "Clic Medio" -#: ../src/views/view.c:1205 +#: ../src/views/view.c:1364 msgid "left double-click" msgstr "Pulsación Doble" -#: ../src/views/view.c:1208 +#: ../src/views/view.c:1367 msgid "right double-click" msgstr "Doble Clic Secundario" -#: ../src/views/view.c:1211 +#: ../src/views/view.c:1370 msgid "drag and drop" msgstr "Arrastrar y Soltar" -#: ../src/views/view.c:1214 +#: ../src/views/view.c:1373 msgid "left click+drag" msgstr "Clic+Arrastre" -#: ../src/views/view.c:1217 +#: ../src/views/view.c:1376 msgid "right click+drag" msgstr "Clic Secundario + Arrastre" -#: ../src/views/view.c:1237 +#: ../src/views/view.c:1398 msgid "darktable - accels window" msgstr "darktable: ventana de atajos" -#: ../src/views/view.c:1285 +#: ../src/views/view.c:1447 msgid "switch to a classic window which will stay open after key release" msgstr "" "Cambiar a la ventana clásica que permanecerá abierta después de soltar la " "tecla." #. we add the mouse actions too -#: ../src/views/view.c:1344 +#: ../src/views/view.c:1514 msgid "mouse actions" msgstr "acciones con el ratón" #~ msgctxt "preferences" +#~ msgid "nothing" +#~ msgstr "ninguno" + +#~ msgctxt "preferences" +#~ msgid "memory size" +#~ msgstr "tamaño de memoria" + +#~ msgctxt "preferences" +#~ msgid "memory transfer" +#~ msgstr "transferencia de memoria" + +#~ msgctxt "preferences" +#~ msgid "memory size and transfer" +#~ msgstr "tamaño y trasnferencia de memoria" + +#~ msgctxt "preferences" +#~ msgid "id" +#~ msgstr "id." + +#~ msgctxt "preferences" +#~ msgid "folder" +#~ msgstr "Carpeta" + +#~ msgid "" +#~ "when having raw+JPEG images together in one directory it makes no sense " +#~ "to import both. with this flag one can ignore all JPEGs found." +#~ msgstr "" +#~ "Cuando se tienen imágenes RAW+JPEG juntas en un directorio no tiene " +#~ "sentido importar ambas. Con esta marca se pueden ignorar todos los JPEG " +#~ "encontrados." + +#~ msgid "tune OpenCL performance" +#~ msgstr "Configurar el rendimiento de OpenCL" + +#~ msgid "" +#~ "allows runtime tuning of OpenCL devices:\n" +#~ " - 'memory size': uses a fixed headroom (400MB as default),\n" +#~ " - 'memory transfer': tries a faster memory access mode (pinned memory) " +#~ "used for tiling." +#~ msgstr "" +#~ "Posibilita ajustar los dispositivos OpenCL en tiempo de ejecución.\n" +#~ "• «Tamaño de la memoria» utiliza un espacio libre fijo (400 MB de manera " +#~ "predeterminada);\n" +#~ "• «Transferencia de memoria» prueba un modo de acceso más rápido a la " +#~ "memoria (memoria fijada) utilizado para el proceso por bandas." + +#~ msgid "write sidecar file for each image" +#~ msgstr "Generar un archivo asociado por cada imagen" + +#~ msgid "" +#~ "if an instance of the module has focus, apply shortcut to that instance\n" +#~ "note: blending shortcuts always apply to the focused instance" +#~ msgstr "" +#~ "Si existen módulos duplicados, se aplica el atajo al módulo que tiene el " +#~ "foco.\n" +#~ "Nota: los atajos de fusión siempre se aplican al módulo en foco." + +#~ msgid "distortion fine-tune" +#~ msgstr "ajuste de corrección de distorsión" + +#~ msgid "vignetting fine-tune" +#~ msgstr "configuración del viñeteado" + +#~ msgid "TCA red fine-tune" +#~ msgstr "optimizar ACT rojo" + +#~ msgid "TCA blue fine-tune" +#~ msgstr "optimizar ACT azul" + +#~ msgid "tiff" +#~ msgstr "TIFF" + +#~ msgid "png" +#~ msgstr "PNG" + +#~ msgid "j2k" +#~ msgstr "J2K" + +#~ msgid "jpeg" +#~ msgstr "JPEG" + +#~ msgid "exr" +#~ msgstr "EXR" + +#~ msgid "rgbe" +#~ msgstr "RGBE" + +#~ msgid "pfm" +#~ msgstr "PFM" + +#~ msgid "netpnm" +#~ msgstr "Netpnm" + +#~ msgid "avif" +#~ msgstr "AVIF" + +#~ msgid "heif" +#~ msgstr "HEIF" + +#~ msgid "libraw" +#~ msgstr "LibRaw" + +#~ msgid "webp" +#~ msgstr "WebP" + +#~ msgid "jpeg xl" +#~ msgstr "JPEG XL" + +#~ msgid "" +#~ "due to a slow GPU hardware acceleration using OpenCL has been deactivated" +#~ msgstr "" +#~ "Derivado del lento comportamiento de la aceleración por hardware de la " +#~ "GPU, OpenCl se ha desactivado." + +#~ msgid "" +#~ "multiple GPUs detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "Se detectaron varias GPU: el perfil de control de OpenCL se ha " +#~ "reconfigurado como consecuencia." + +# Ignorar advertencia: en el texto original GPU va en mayúsculas. +#~ msgid "" +#~ "very fast GPU detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "GPU muy veloz detectada: el perfil de control de OpenCL se ha configurado " +#~ "en función de la misma." + +#~ msgid "" +#~ "darktable discovered problems with your OpenCL setup; disabling OpenCL " +#~ "for this session!" +#~ msgstr "" +#~ "darktable ha descubierto un problema con la configuración OpenCL: " +#~ "desactive OpenCL para esta sesión" + +#~ msgid "no-op" +#~ msgstr "sin opción" + +#~ msgid "RGB colors" +#~ msgstr "colores RGB" + +#~ msgid "compression type" +#~ msgstr "tipo de compresión" + +#~ msgid "jp2" +#~ msgstr "jp2" + +#~ msgid "b&w image" +#~ msgstr "imagen en b/n" + +#~ msgid "write RGB colors" +#~ msgstr "colores rgb" + +#~ msgid "write grayscale" +#~ msgstr "escala de grises" + +#~ msgid "spot color mapping" +#~ msgstr "mapeo de colores planos" + +#~ msgid "spot mode" +#~ msgstr "modo puntual" + +#~ msgid "" +#~ "tone equalizer needs to be after distortion modules in the pipeline – " +#~ "disabled" +#~ msgstr "" +#~ "El ecualizador de tono debe estar después de los módulos de distorsión en " +#~ "el procesado: deshabilitado" + +#~ msgid "reference to which the marker should be scaled to" +#~ msgstr "Referencia a la que debe escalarse el marcador" + +#~ msgid "length of the marker which is used as scaling reference" +#~ msgstr "Longitud del marcador que se utiliza como referencia de escala" + +#~ msgid "save" +#~ msgstr "guardar" + +#~ msgid "add" +#~ msgstr "Añadir" + +#~ msgid "only" +#~ msgstr "únicamente" + +#~ msgid "selected image[s]" +#~ msgstr "operaciones en la selección" + +#~ msgid "hardness (relative)" +#~ msgstr "Dureza (relativa)" + +#~ msgid "hardness (absolute)" +#~ msgstr "Dureza (absoluta)" + +#~ msgid "opacity (relative)" +#~ msgstr "Opacidad (relativa)" + +#~ msgid "opacity (absolute)" +#~ msgstr "Opacidad (absoluta)" + +#~ msgid "brush size (relative)" +#~ msgstr "Tamaño del pincel (relativo)" + +#~ msgid "low" +#~ msgstr "Bajo" + +#~ msgid "medium" +#~ msgstr "Medio" + +#~ msgid "high" +#~ msgstr "Alto" + +#~ msgid "" +#~ "pen pressure control for brush masks\n" +#~ "'off': pressure reading ignored,\n" +#~ "'hardness'/'opacity'/'brush size': pressure reading controls specified " +#~ "attribute,\n" +#~ "'absolute'/'relative': pressure reading is taken directly as attribute " +#~ "value or multiplied with pre-defined setting." +#~ msgstr "" +#~ "Control de presión del lápiz para máscaras de pincel\n" +#~ "• «apagado»: lectura de la presión ignorada\n" +#~ "• «dureza/opacidad/tamaño del pincel»: Los controles de lectura de " +#~ "presión especifican el atributo\n" +#~ "• «absoluto/relativo»: la lectura de presión se toma directamente como " +#~ "valor de atributo o se multiplica con los ajustes predefinidos." + +#~ msgid "" +#~ "smoothing of brush strokes\n" +#~ "stronger smoothing leads to fewer nodes and easier editing but with lower " +#~ "control of accuracy." +#~ msgstr "" +#~ "Ajusta los niveles de suavizado de pinceladas.\n" +#~ "Un mayor suavizado conlleva menos nodos y una edición más fácil pero con " +#~ "menor control de precisión." + +#~ msgid "<leave unchanged>" +#~ msgstr "<no modificar>" + +#, c-format +#~ msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" +#~ msgstr "%.1f mm (%.1f mm equivalente FC, recorte %.1f)" + +#~ msgctxt "preferences" #~ msgid "always bilinear (fast)" #~ msgstr "Siempre bilineal (rápido)" @@ -25475,10 +26419,6 @@ #~ msgstr "Modo completo (posiblemente lento)" #~ msgctxt "preferences" -#~ msgid "rgb parade" -#~ msgstr "Canales paralelos RGB" - -#~ msgctxt "preferences" #~ msgid "modern" #~ msgstr "Moderno" @@ -25628,9 +26568,6 @@ #~ msgid "3:2" #~ msgstr "3:2" -#~ msgid "set the custom aspect ratio" -#~ msgstr "Establecer la relación de aspecto personalizada" - #~ msgid "raw CA correction supports only standard RGB Bayer filter arrays" #~ msgstr "" #~ "La corrección de aberración cromática en bruto sólo admite matrices de " @@ -25939,10 +26876,6 @@ #~ msgid "zoom fit" #~ msgstr "ampliar imagen a ventana" -#, fuzzy -#~ msgid "recovery" -#~ msgstr "superponer" - #~ msgid "no image selected !" #~ msgstr "No se ha seleccionado ninguna imagen." @@ -25982,9 +26915,6 @@ #~ msgid "xcf" #~ msgstr "XCF" -#~ msgid "actual selection" -#~ msgstr "Selección actual" - #~ msgid "ldr" #~ msgstr "LDR" @@ -26057,9 +26987,6 @@ #~ msgid "lift chroma" #~ msgstr "realce croma" -#~ msgid "lift hue" -#~ msgstr "realce tono" - #~ msgid "power luminance" #~ msgstr "potencia luminancia" @@ -26093,9 +27020,6 @@ #~ msgid "chroma highlights" #~ msgstr "croma luces" -#~ msgid "chroma global" -#~ msgstr "croma general" - #~ msgid "chroma mid-tones" #~ msgstr "croma tonos medios" @@ -26916,9 +27840,6 @@ #~ msgid "%.0f ISO" #~ msgstr "%.0f ISO" -#~ msgid "white balance settings" -#~ msgstr "configuración del balance de blancos" - #, c-format #~ msgid "%.0f mired" #~ msgstr "%.0f mired" @@ -27455,10 +28376,6 @@ #~ msgid "rotate" #~ msgstr "rotar" -#~ msgctxt "accel" -#~ msgid "replace metadata" -#~ msgstr "reemplazar metadatos" - #~ msgid "reset parameters" #~ msgstr "reiniciar parámetros" @@ -27925,9 +28842,6 @@ #~ msgid "insensitive" #~ msgstr "indistinto" -#~ msgid "export selected" -#~ msgstr "exportar selección" - #~ msgid "modify the spatial size of an images group on the map" #~ msgstr "Cambia la extensión espacial de un grupo de imágenes en el mapa" @@ -28029,9 +28943,6 @@ #~ "carpetas, las horas y las fechas pasen de las más recientes a las más " #~ "antiguas" -#~ msgid "color manage cached thumbnails" -#~ msgstr "Manejo de color de las miniaturas en caché" - #~ msgid "" #~ "if enabled, cached thumbnails will be color managed so that lighttable " #~ "and filmstrip can show correct colors. otherwise the results may look " @@ -29414,9 +30325,6 @@ #~ msgid "scan for devices" #~ msgstr "buscar dispositivos" -#~ msgid "no supported devices found" -#~ msgstr "no se encontraron dispositivos compatibles" - #~ msgid "scan for newly attached devices" #~ msgstr "Buscar nuevos dispositivos conectados" @@ -30496,9 +31404,6 @@ #~ "almacenadas; si no sabe como utilizar est, mantenga su configuración por " #~ "defecto." -#~ msgid "storage directory" -#~ msgstr "directorio de almacenamiento" - #~ msgid "directory structure" #~ msgstr "estructura de directorio" @@ -30949,9 +31854,6 @@ #~ msgid "blend hue (0 is same as clipping)" #~ msgstr "mezclar tono (0 es igual a recorte)" -#~ msgid "blend L" -#~ msgstr "mezcla L" - #~ msgid "blend C" #~ msgstr "mezcla C" @@ -31479,9 +32381,6 @@ #~ msgid "median filter before demosaicing" #~ msgstr "filtro mediano antes del demosaico" -#~ msgid "green equilibration" -#~ msgstr "equilibrado de verde" - #~ msgid "dcb enhance" #~ msgstr "mejora dcb" diff -Nru darktable-4.4.2/po/fi.po darktable-4.6.1/po/fi.po --- darktable-4.4.2/po/fi.po 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/po/fi.po 2024-02-16 17:31:09.000000000 +0000 @@ -2,8 +2,8 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-30 13:17+0300\n" -"PO-Revision-Date: 2023-06-30 16:18+0300\n" +"POT-Creation-Date: 2023-11-30 19:32+0100\n" +"PO-Revision-Date: 2023-12-07 19:21+0200\n" "Last-Translator: Marko Vertainen <marko.vertainen@iki.fi>\n" "Language-Team: Finnish (Finland)\n" "Language: fi_FI\n" @@ -12,273 +12,237 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Loco-Source-Locale: en_FI\n" -"X-Generator: Poedit 3.2.2\n" +"X-Generator: Poedit 3.4\n" "X-Loco-Parser: loco_parse_po\n" -#: ../build/bin/conf_gen.h:172 ../build/bin/preferences_gen.h:7632 +#: ../build/bin/conf_gen.h:174 msgctxt "preferences" msgid "first instance" msgstr "Ensimmäinen instanssi" -#: ../build/bin/conf_gen.h:173 ../build/bin/preferences_gen.h:7637 -#: ../build/bin/preferences_gen.h:7656 +#: ../build/bin/conf_gen.h:175 ../build/bin/preferences_gen.h:7922 msgctxt "preferences" msgid "last instance" msgstr "Viimeinen instanssi" -#: ../build/bin/conf_gen.h:240 ../build/bin/conf_gen.h:346 -#: ../build/bin/conf_gen.h:356 ../build/bin/conf_gen.h:1186 -#: ../build/bin/conf_gen.h:1202 ../build/bin/preferences_gen.h:4137 -#: ../build/bin/preferences_gen.h:4156 ../build/bin/preferences_gen.h:4232 -#: ../build/bin/preferences_gen.h:6706 ../build/bin/preferences_gen.h:6834 -#: ../build/bin/preferences_gen.h:6899 +#: ../build/bin/conf_gen.h:252 ../build/bin/conf_gen.h:352 +#: ../build/bin/conf_gen.h:362 ../build/bin/conf_gen.h:1239 +#: ../build/bin/conf_gen.h:1255 ../build/bin/conf_gen.h:1275 +#: ../build/bin/preferences_gen.h:4747 ../build/bin/preferences_gen.h:4885 msgctxt "preferences" msgid "never" msgstr "Ei koskaan" -#: ../build/bin/conf_gen.h:241 ../build/bin/preferences_gen.h:6711 +#: ../build/bin/conf_gen.h:253 msgctxt "preferences" msgid "once a month" msgstr "Kerran kuussa" -#: ../build/bin/conf_gen.h:242 ../build/bin/preferences_gen.h:6716 -#: ../build/bin/preferences_gen.h:6745 +#: ../build/bin/conf_gen.h:254 ../build/bin/preferences_gen.h:7138 msgctxt "preferences" msgid "once a week" msgstr "Kerran viikossa" -#: ../build/bin/conf_gen.h:243 ../build/bin/preferences_gen.h:6721 +#: ../build/bin/conf_gen.h:255 msgctxt "preferences" msgid "once a day" msgstr "Kerran päivässä" -#: ../build/bin/conf_gen.h:244 ../build/bin/preferences_gen.h:6726 +#: ../build/bin/conf_gen.h:256 msgctxt "preferences" msgid "on close" msgstr "Suljettaessa" -#: ../build/bin/conf_gen.h:280 ../build/bin/conf_gen.h:1179 -#: ../build/bin/conf_gen.h:1195 ../build/bin/preferences_gen.h:4102 -#: ../build/bin/preferences_gen.h:4197 ../build/bin/preferences_gen.h:5748 +#: ../build/bin/conf_gen.h:292 ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1248 ../build/bin/conf_gen.h:1276 msgctxt "preferences" msgid "small" msgstr "Pieni" -#: ../build/bin/conf_gen.h:281 ../build/bin/conf_gen.h:393 -#: ../build/bin/preferences_gen.h:5753 ../build/bin/preferences_gen.h:5782 -#: ../build/bin/preferences_gen.h:5969 ../build/bin/preferences_gen.h:5998 +#: ../build/bin/conf_gen.h:293 ../build/bin/conf_gen.h:405 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6223 msgctxt "preferences" msgid "default" msgstr "Oletus" -#: ../build/bin/conf_gen.h:282 ../build/bin/conf_gen.h:2814 -#: ../build/bin/preferences_gen.h:5758 +#: ../build/bin/conf_gen.h:294 ../build/bin/conf_gen.h:2904 msgctxt "preferences" msgid "large" msgstr "Suuri" -#: ../build/bin/conf_gen.h:283 ../build/bin/preferences_gen.h:5763 +#: ../build/bin/conf_gen.h:295 msgctxt "preferences" msgid "unrestricted" msgstr "Rajoittamaton" -#: ../build/bin/conf_gen.h:347 ../build/bin/preferences_gen.h:6839 +#: ../build/bin/conf_gen.h:353 msgctxt "preferences" msgid "after edit" msgstr "Muokkauksen jälkeen" -#: ../build/bin/conf_gen.h:348 ../build/bin/preferences_gen.h:6844 -#: ../build/bin/preferences_gen.h:6863 +#: ../build/bin/conf_gen.h:354 ../build/bin/preferences_gen.h:7224 msgctxt "preferences" msgid "on import" msgstr "Tuonnin yhteydessä" -#: ../build/bin/conf_gen.h:357 ../build/bin/conf_gen.h:1178 -#: ../build/bin/conf_gen.h:1194 ../build/bin/conf_gen.h:3214 -#: ../build/bin/preferences_gen.h:4097 ../build/bin/preferences_gen.h:4192 -#: ../build/bin/preferences_gen.h:5112 ../build/bin/preferences_gen.h:5166 -#: ../build/bin/preferences_gen.h:6904 +#: ../build/bin/conf_gen.h:363 ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1247 ../build/bin/conf_gen.h:3300 +#: ../build/bin/preferences_gen.h:5644 msgctxt "preferences" msgid "always" msgstr "Aina" -#: ../build/bin/conf_gen.h:358 ../build/bin/preferences_gen.h:6909 -#: ../build/bin/preferences_gen.h:6928 +#: ../build/bin/conf_gen.h:364 ../build/bin/preferences_gen.h:7259 msgctxt "preferences" msgid "only large entries" msgstr "Vain suuret tunnisteet" -#: ../build/bin/conf_gen.h:378 ../build/bin/preferences_gen.h:8069 +#: ../build/bin/conf_gen.h:390 msgctxt "preferences" msgid "sensitive" msgstr "Herkkyys" -#: ../build/bin/conf_gen.h:379 ../build/bin/preferences_gen.h:8074 -#: ../build/bin/preferences_gen.h:8093 +#: ../build/bin/conf_gen.h:391 ../build/bin/preferences_gen.h:8133 msgctxt "preferences" msgid "insensitive" msgstr "Ei merkitse" -#: ../build/bin/conf_gen.h:394 ../build/bin/preferences_gen.h:5974 +#: ../build/bin/conf_gen.h:406 msgctxt "preferences" msgid "multiple GPUs" msgstr "Useita näytönohjaimia" -#: ../build/bin/conf_gen.h:395 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/conf_gen.h:407 msgctxt "preferences" msgid "very fast GPU" msgstr "Erittäin nopea näytönohjain" -#: ../build/bin/conf_gen.h:403 ../build/bin/preferences_gen.h:6040 -#: ../build/bin/preferences_gen.h:6074 +#: ../build/bin/conf_gen.h:755 msgctxt "preferences" -msgid "nothing" -msgstr "Ei mitään" - -#: ../build/bin/conf_gen.h:404 ../build/bin/preferences_gen.h:6045 -msgctxt "preferences" -msgid "memory size" -msgstr "Muistin koko" - -#: ../build/bin/conf_gen.h:405 ../build/bin/preferences_gen.h:6050 -msgctxt "preferences" -msgid "memory transfer" -msgstr "Muistin siirto" - -#: ../build/bin/conf_gen.h:406 ../build/bin/preferences_gen.h:6055 -msgctxt "preferences" -msgid "memory size and transfer" -msgstr "Muistin koko ja siirto" - -#: ../build/bin/conf_gen.h:706 ../build/bin/preferences_gen.h:8257 -#: ../build/bin/preferences_gen.h:8281 -msgctxt "preferences" -msgid "id" -msgstr "Rullan numero" +msgid "import time" +msgstr "Tuonnin aika" -#: ../build/bin/conf_gen.h:707 ../build/bin/preferences_gen.h:8262 +#: ../build/bin/conf_gen.h:756 msgctxt "preferences" -msgid "folder" -msgstr "Hakemisto" +msgid "folder name" +msgstr "Hakemiston nimi" -#: ../build/bin/conf_gen.h:721 +#: ../build/bin/conf_gen.h:770 msgctxt "preferences" msgid "RGB" msgstr "RGB" -#: ../build/bin/conf_gen.h:722 +#: ../build/bin/conf_gen.h:771 msgctxt "preferences" msgid "Lab" msgstr "Lab" -#: ../build/bin/conf_gen.h:723 +#: ../build/bin/conf_gen.h:772 msgctxt "preferences" msgid "LCh" msgstr "LCh" -#: ../build/bin/conf_gen.h:724 +#: ../build/bin/conf_gen.h:773 msgctxt "preferences" msgid "HSL" msgstr "HSL" -#: ../build/bin/conf_gen.h:725 +#: ../build/bin/conf_gen.h:774 msgctxt "preferences" msgid "Hex" msgstr "Hex" -#: ../build/bin/conf_gen.h:726 ../build/bin/conf_gen.h:1830 -#: ../build/bin/conf_gen.h:2488 ../build/bin/conf_gen.h:2790 -#: ../build/bin/conf_gen.h:3044 ../build/bin/preferences_gen.h:5577 -#: ../build/bin/preferences_gen.h:6561 +#: ../build/bin/conf_gen.h:775 ../build/bin/conf_gen.h:1916 +#: ../build/bin/conf_gen.h:2578 ../build/bin/conf_gen.h:2880 +#: ../build/bin/conf_gen.h:3136 msgctxt "preferences" msgid "none" msgstr "Ei mitään" -#: ../build/bin/conf_gen.h:734 +#: ../build/bin/conf_gen.h:783 msgctxt "preferences" msgid "mean" msgstr "keskiarvo" -#: ../build/bin/conf_gen.h:735 +#: ../build/bin/conf_gen.h:784 msgctxt "preferences" msgid "min" msgstr "minimi" -#: ../build/bin/conf_gen.h:736 +#: ../build/bin/conf_gen.h:785 msgctxt "preferences" msgid "max" msgstr "maksimi" -#: ../build/bin/conf_gen.h:924 +#: ../build/bin/conf_gen.h:973 msgid "select only new pictures" msgstr "Valitse vain uudet kuvat" -#: ../build/bin/conf_gen.h:925 +#: ../build/bin/conf_gen.h:974 msgid "only select images that have not already been imported" msgstr "Valitse ainoastaan kuvat joita ei ole aiemmin tuotu." -#: ../build/bin/conf_gen.h:930 -msgid "ignore JPEG images" -msgstr "Ohita JPEG-tiedostot" +#: ../build/bin/conf_gen.h:979 +msgid "ignore non-raw images" +msgstr "Ohita kaikki muut kuin RAW-tiedostot" -#: ../build/bin/conf_gen.h:931 +#: ../build/bin/conf_gen.h:980 msgid "" -"when having raw+JPEG images together in one directory it makes no sense to " -"import both. with this flag one can ignore all JPEGs found." +"if enabled, only raw files will be allowed to import. non-raw files will not " +"be visible in the dialog and will not be imported." msgstr "" -"Jos samassa hakemistossa on raakakuvia ja JPEG-kuvia samalla nimellä, lisää " -"ainoastaan raakakuvat tietokantaan. Tämä valinta ohittaa kaikki JPEG-" -"tiedostot." +"Jos valittu, vain raakakuvatiedostojen tuonti on mahdollista. Muut kuin RAW-" +"tiedostot eivät näy valinnassa ja niitä ei tuoda darktableen." -#: ../build/bin/conf_gen.h:936 +#: ../build/bin/conf_gen.h:985 msgid "apply metadata" msgstr "Lisää metatiedot" -#: ../build/bin/conf_gen.h:937 +#: ../build/bin/conf_gen.h:986 msgid "apply some metadata to all newly imported images." msgstr "Lisää joitain metatietoja tuonnissa kaikkiin uusiin kuviin." -#: ../build/bin/conf_gen.h:942 +#: ../build/bin/conf_gen.h:991 msgid "recursive directory" msgstr "Hae alihakemistoista" -#: ../build/bin/conf_gen.h:943 +#: ../build/bin/conf_gen.h:992 msgid "recursive directory traversal when importing filmrolls" msgstr "Hae uusia kuvia myös alihakemistoista tuonnin yhteydessä." -#: ../build/bin/conf_gen.h:948 +#: ../build/bin/conf_gen.h:997 msgid "creator to be applied when importing" msgstr "Tuonnissa lisättävä tekijän nimi" -#: ../build/bin/conf_gen.h:954 +#: ../build/bin/conf_gen.h:1003 msgid "publisher to be applied when importing" msgstr "Tuonnissa lisättävä julkaisijan nimi" -#: ../build/bin/conf_gen.h:960 +#: ../build/bin/conf_gen.h:1009 msgid "rights to be applied when importing" msgstr "Tuonnissa lisättävä tekijänoikeuden huomautus" -#: ../build/bin/conf_gen.h:966 +#: ../build/bin/conf_gen.h:1015 msgid "comma separated tags to be applied when importing" msgstr "Tuonnissa lisättävät tunnisteet pilkulla eroteltuna" -#: ../build/bin/conf_gen.h:972 +#: ../build/bin/conf_gen.h:1021 msgid "import tags from XMP" msgstr "Tuo tunnisteet XMP-tiedostosta" -#: ../build/bin/conf_gen.h:998 +#: ../build/bin/conf_gen.h:1051 msgid "initial rating" msgstr "Lisättävä luokitus" -#: ../build/bin/conf_gen.h:999 +#: ../build/bin/conf_gen.h:1052 msgid "initial star rating for all images when importing a filmroll" msgstr "Filmirullaan tuonnissa oletuksena lisättävä luokitus kaikille kuville." -#: ../build/bin/conf_gen.h:1004 +#: ../build/bin/conf_gen.h:1057 msgid "ignore EXIF rating" msgstr "Ohita EXIF-luokittelu" -#: ../build/bin/conf_gen.h:1005 +#: ../build/bin/conf_gen.h:1058 msgid "" "ignore EXIF rating. if not set and EXIF rating is found, it overrides " "'initial rating'" @@ -286,19 +250,19 @@ "Ohita EXIF-luokittelu. Jos kuvassa on EXIF-luokittelu ja tätä ei ole " "valittuna, ohitetaan 'Lisättävä luokitus' valinnan asetus." -#: ../build/bin/conf_gen.h:1010 +#: ../build/bin/conf_gen.h:1063 msgid "import job" msgstr "Tuonnin työ" -#: ../build/bin/conf_gen.h:1011 +#: ../build/bin/conf_gen.h:1064 msgid "name of the import job" msgstr "Tuotavan työn nimi." -#: ../build/bin/conf_gen.h:1016 +#: ../build/bin/conf_gen.h:1069 msgid "override today's date" -msgstr "Ohita tämä päivä" +msgstr "Ohita nykyinen päivämäärä" -#: ../build/bin/conf_gen.h:1017 +#: ../build/bin/conf_gen.h:1070 msgid "" "type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override " "the current date/time used when expanding variables:\n" @@ -310,162 +274,159 @@ "$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS), $(MSEC).\n" "Muussa tapauksessa jätä tämä kenttä tyhjäksi." -#: ../build/bin/conf_gen.h:1022 +#: ../build/bin/conf_gen.h:1075 msgid "keep this window open" msgstr "Pidä tämä ikkuna avoinna" -#: ../build/bin/conf_gen.h:1023 +#: ../build/bin/conf_gen.h:1076 msgid "keep this window open to run several imports" msgstr "Pidä ikkuna avoinna useiden tuontien ajamiseksi." -#: ../build/bin/conf_gen.h:1180 ../build/bin/conf_gen.h:1196 -#: ../build/bin/preferences_gen.h:4107 ../build/bin/preferences_gen.h:4202 +#: ../build/bin/conf_gen.h:1233 ../build/bin/conf_gen.h:1249 +#: ../build/bin/conf_gen.h:1277 msgctxt "preferences" msgid "VGA" msgstr "VGA" -#: ../build/bin/conf_gen.h:1181 ../build/bin/conf_gen.h:1197 -#: ../build/bin/preferences_gen.h:4112 ../build/bin/preferences_gen.h:4207 -#: ../build/bin/preferences_gen.h:4251 +#: ../build/bin/conf_gen.h:1234 ../build/bin/conf_gen.h:1250 +#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4782 msgctxt "preferences" msgid "720p" msgstr "720p" -#: ../build/bin/conf_gen.h:1182 ../build/bin/conf_gen.h:1198 -#: ../build/bin/preferences_gen.h:4117 ../build/bin/preferences_gen.h:4212 +#: ../build/bin/conf_gen.h:1235 ../build/bin/conf_gen.h:1251 +#: ../build/bin/conf_gen.h:1279 msgctxt "preferences" msgid "1080p" msgstr "1080p" -#: ../build/bin/conf_gen.h:1183 ../build/bin/conf_gen.h:1199 -#: ../build/bin/preferences_gen.h:4122 ../build/bin/preferences_gen.h:4217 +#: ../build/bin/conf_gen.h:1236 ../build/bin/conf_gen.h:1252 +#: ../build/bin/conf_gen.h:1280 msgctxt "preferences" msgid "WQXGA" msgstr "WQXGA" -#: ../build/bin/conf_gen.h:1184 ../build/bin/conf_gen.h:1200 -#: ../build/bin/preferences_gen.h:4127 ../build/bin/preferences_gen.h:4222 +#: ../build/bin/conf_gen.h:1237 ../build/bin/conf_gen.h:1253 +#: ../build/bin/conf_gen.h:1281 msgctxt "preferences" msgid "4K" msgstr "4K" -#: ../build/bin/conf_gen.h:1185 ../build/bin/conf_gen.h:1201 -#: ../build/bin/preferences_gen.h:4132 ../build/bin/preferences_gen.h:4227 +#: ../build/bin/conf_gen.h:1238 ../build/bin/conf_gen.h:1254 +#: ../build/bin/conf_gen.h:1282 msgctxt "preferences" msgid "5K" msgstr "5K" -#: ../build/bin/conf_gen.h:1228 +#: ../build/bin/conf_gen.h:1314 msgctxt "preferences" msgid "off" msgstr "Pois käytöstä" -#: ../build/bin/conf_gen.h:1229 +#: ../build/bin/conf_gen.h:1315 msgctxt "preferences" msgid "hardness (relative)" msgstr "Kovuus (suhteellinen)" -#: ../build/bin/conf_gen.h:1230 +#: ../build/bin/conf_gen.h:1316 msgctxt "preferences" msgid "hardness (absolute)" msgstr "Kovuus (absoluuttinen)" -#: ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1317 msgctxt "preferences" msgid "opacity (relative)" msgstr "Läpinäkyvyys (suhteellinen)" -#: ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1318 msgctxt "preferences" msgid "opacity (absolute)" msgstr "Läpinäkyvyys (absoluuttinen)" -#: ../build/bin/conf_gen.h:1233 +#: ../build/bin/conf_gen.h:1319 msgctxt "preferences" msgid "brush size (relative)" msgstr "Siveltimen koko (suhteellinen)" -#: ../build/bin/conf_gen.h:1241 +#: ../build/bin/conf_gen.h:1327 msgctxt "preferences" msgid "low" msgstr "Matala" -#: ../build/bin/conf_gen.h:1242 +#: ../build/bin/conf_gen.h:1328 msgctxt "preferences" msgid "medium" msgstr "Keskimääräinen" -#: ../build/bin/conf_gen.h:1243 +#: ../build/bin/conf_gen.h:1329 msgctxt "preferences" msgid "high" msgstr "Korkea" -#: ../build/bin/conf_gen.h:1263 ../build/bin/preferences_gen.h:4836 -#: ../build/bin/preferences_gen.h:4860 +#: ../build/bin/conf_gen.h:1349 ../build/bin/preferences_gen.h:5405 msgctxt "preferences" msgid "false color" msgstr "Vääräväri" -#: ../build/bin/conf_gen.h:1264 ../build/bin/preferences_gen.h:4841 +#: ../build/bin/conf_gen.h:1350 msgctxt "preferences" msgid "grayscale" msgstr "Harmaasävy" -#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4567 +#: ../build/bin/conf_gen.h:1364 msgctxt "preferences" msgid "top left" msgstr "Vasen yläkulma" -#: ../build/bin/conf_gen.h:1279 ../build/bin/preferences_gen.h:4572 +#: ../build/bin/conf_gen.h:1365 msgctxt "preferences" msgid "top right" msgstr "Oikea yläkulma" -#: ../build/bin/conf_gen.h:1280 ../build/bin/preferences_gen.h:4577 +#: ../build/bin/conf_gen.h:1366 msgctxt "preferences" msgid "top center" msgstr "Ylhäällä" -#: ../build/bin/conf_gen.h:1281 ../build/bin/preferences_gen.h:4582 -#: ../build/bin/preferences_gen.h:4606 +#: ../build/bin/conf_gen.h:1367 ../build/bin/preferences_gen.h:5217 msgctxt "preferences" msgid "bottom" msgstr "Alhaalla" -#: ../build/bin/conf_gen.h:1282 ../build/bin/preferences_gen.h:4587 +#: ../build/bin/conf_gen.h:1368 msgctxt "preferences" msgid "hidden" msgstr "Piilotettu" -#: ../build/bin/conf_gen.h:1792 +#: ../build/bin/conf_gen.h:1878 msgid "show OSD" msgstr "Näytä ohjaimet" -#: ../build/bin/conf_gen.h:1793 +#: ../build/bin/conf_gen.h:1879 msgid "toggle the visibility of the map overlays" msgstr "Vaihda kartan ohjainten näkyvyys" -#: ../build/bin/conf_gen.h:1798 ../src/libs/map_settings.c:146 +#: ../build/bin/conf_gen.h:1884 ../src/libs/map_settings.c:119 msgid "filtered images" msgstr "Suodatetut kuvat" -#: ../build/bin/conf_gen.h:1799 +#: ../build/bin/conf_gen.h:1885 msgid "when set limit the images drawn to the current filmstrip" msgstr "Asetettuna, rajaa kartalle piirrettävät kuvat valittuun filminauhaan" -#: ../build/bin/conf_gen.h:1806 +#: ../build/bin/conf_gen.h:1892 msgid "max images" msgstr "Kuvia max" -#: ../build/bin/conf_gen.h:1807 +#: ../build/bin/conf_gen.h:1893 msgid "the maximum number of image thumbnails drawn on the map" msgstr "Maksimimäärä kartalle piirrettäviä esikatselukuvia" -#: ../build/bin/conf_gen.h:1814 +#: ../build/bin/conf_gen.h:1900 msgid "group size factor" msgstr "Ryhmän koon kerroin" -#: ../build/bin/conf_gen.h:1815 +#: ../build/bin/conf_gen.h:1901 msgid "" "increase or decrease the spatial size of images groups on the map. can " "influence the calculation time" @@ -473,31 +434,31 @@ "Lisää tai vähennä kuvaryhmien alueellista kokoa kartalla. Saattaa vaikuttaa " "käsittelyaikaan." -#: ../build/bin/conf_gen.h:1822 +#: ../build/bin/conf_gen.h:1908 msgid "min images per group" msgstr "Minimimäärä kuvia per ryhmä" -#: ../build/bin/conf_gen.h:1823 +#: ../build/bin/conf_gen.h:1909 msgid "" "the minimum number of images to set up an images group. can influence the " "calculation time." msgstr "Kuvaryhmän kuvien minimimäärä. Saattaa vaikuttaa käsittelyaikaan." -#: ../build/bin/conf_gen.h:1828 +#: ../build/bin/conf_gen.h:1914 msgctxt "preferences" msgid "thumbnail" msgstr "Esikatselukuva" -#: ../build/bin/conf_gen.h:1829 +#: ../build/bin/conf_gen.h:1915 msgctxt "preferences" msgid "count" msgstr "Määrä" -#: ../build/bin/conf_gen.h:1832 ../src/libs/map_settings.c:159 +#: ../build/bin/conf_gen.h:1918 msgid "thumbnail display" msgstr "Näytettävä esikatselukuva" -#: ../build/bin/conf_gen.h:1833 +#: ../build/bin/conf_gen.h:1919 msgid "" "three options are available: images thumbnails, only the count of images of " "the group or nothing" @@ -505,267 +466,258 @@ "Kolme vaihtoehtoa saatavilla: Kuvien esikatselukuvat, vain kuvien määrä tai " "ei mitään." -#: ../build/bin/conf_gen.h:1844 +#: ../build/bin/conf_gen.h:1930 msgid "max polygon points" msgstr "Monikulmiopisteet max" -#: ../build/bin/conf_gen.h:1845 +#: ../build/bin/conf_gen.h:1931 msgid "" "limit the number of points imported with polygon in find location module" msgstr "" "Rajoita monikulmioina tuotavien pisteiden määrää hae sijainti moduulissa" -#: ../build/bin/conf_gen.h:2135 ../build/bin/preferences_gen.h:4722 -#: ../build/bin/preferences_gen.h:4756 +#: ../build/bin/conf_gen.h:2221 ../build/bin/preferences_gen.h:5329 msgctxt "preferences" msgid "original" msgstr "Alkuperäinen" -#: ../build/bin/conf_gen.h:2136 ../build/bin/preferences_gen.h:4727 +#: ../build/bin/conf_gen.h:2222 msgctxt "preferences" msgid "to 1/2" msgstr "Puoleen" -#: ../build/bin/conf_gen.h:2137 ../build/bin/preferences_gen.h:4732 +#: ../build/bin/conf_gen.h:2223 msgctxt "preferences" msgid "to 1/3" msgstr "Kolmasosaan" -#: ../build/bin/conf_gen.h:2138 ../build/bin/preferences_gen.h:4737 +#: ../build/bin/conf_gen.h:2224 msgctxt "preferences" msgid "to 1/4" msgstr "Neljäsosaan" -#: ../build/bin/conf_gen.h:2152 ../build/bin/conf_gen.h:2162 -#: ../build/bin/preferences_gen.h:5384 ../build/bin/preferences_gen.h:5449 +#: ../build/bin/conf_gen.h:2244 ../build/bin/conf_gen.h:2254 msgctxt "preferences" msgid "bilinear" msgstr "bilineaarinen" -#: ../build/bin/conf_gen.h:2153 ../build/bin/conf_gen.h:2163 -#: ../build/bin/preferences_gen.h:5389 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5454 +#: ../build/bin/conf_gen.h:2245 ../build/bin/conf_gen.h:2255 +#: ../build/bin/preferences_gen.h:5847 msgctxt "preferences" msgid "bicubic" msgstr "bicubic" -#: ../build/bin/conf_gen.h:2154 ../build/bin/conf_gen.h:2164 -#: ../build/bin/preferences_gen.h:5394 ../build/bin/preferences_gen.h:5459 +#: ../build/bin/conf_gen.h:2246 ../build/bin/conf_gen.h:2256 msgctxt "preferences" msgid "lanczos2" msgstr "lanczos2" -#: ../build/bin/conf_gen.h:2165 ../build/bin/preferences_gen.h:5464 -#: ../build/bin/preferences_gen.h:5483 +#: ../build/bin/conf_gen.h:2257 ../build/bin/preferences_gen.h:5882 msgctxt "preferences" msgid "lanczos3" msgstr "lanczos3" -#: ../build/bin/conf_gen.h:2487 ../build/bin/conf_gen.h:3217 -#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:6556 -#: ../build/bin/preferences_gen.h:6592 +#: ../build/bin/conf_gen.h:2577 ../build/bin/conf_gen.h:3303 +#: ../build/bin/preferences_gen.h:7032 msgctxt "preferences" msgid "auto" msgstr "Automaattinen" -#: ../build/bin/conf_gen.h:2489 ../build/bin/preferences_gen.h:6566 +#: ../build/bin/conf_gen.h:2579 msgctxt "preferences" msgid "libsecret" msgstr "libsecret" -#: ../build/bin/conf_gen.h:2490 ../build/bin/preferences_gen.h:6572 +#: ../build/bin/conf_gen.h:2580 msgctxt "preferences" msgid "kwallet" msgstr "kwallet" -#: ../build/bin/conf_gen.h:2700 +#: ../build/bin/conf_gen.h:2790 msgctxt "preferences" msgid "vectorscope" msgstr "Vektorialue" -#: ../build/bin/conf_gen.h:2701 +#: ../build/bin/conf_gen.h:2791 msgctxt "preferences" msgid "waveform" msgstr "Aaltomuoto" -#: ../build/bin/conf_gen.h:2702 +#: ../build/bin/conf_gen.h:2792 msgctxt "preferences" msgid "RGB parade" msgstr "RGB-paraati" -#: ../build/bin/conf_gen.h:2703 +#: ../build/bin/conf_gen.h:2793 msgctxt "preferences" msgid "histogram" msgstr "Histogrammi" -#: ../build/bin/conf_gen.h:2711 ../build/bin/preferences_gen.h:7264 +#: ../build/bin/conf_gen.h:2801 msgctxt "preferences" msgid "left" msgstr "Vasen" -#: ../build/bin/conf_gen.h:2712 ../build/bin/preferences_gen.h:7269 -#: ../build/bin/preferences_gen.h:7288 +#: ../build/bin/conf_gen.h:2802 ../build/bin/preferences_gen.h:7619 msgctxt "preferences" msgid "right" msgstr "Oikea" -#: ../build/bin/conf_gen.h:2720 ../build/bin/conf_gen.h:2757 +#: ../build/bin/conf_gen.h:2810 ../build/bin/conf_gen.h:2847 msgctxt "preferences" msgid "logarithmic" msgstr "Logaritminen" -#: ../build/bin/conf_gen.h:2721 ../build/bin/conf_gen.h:2758 +#: ../build/bin/conf_gen.h:2811 ../build/bin/conf_gen.h:2848 msgctxt "preferences" msgid "linear" msgstr "Lineaarinen" -#: ../build/bin/conf_gen.h:2729 +#: ../build/bin/conf_gen.h:2819 msgctxt "preferences" msgid "horizontal" msgstr "Vaakasuunta" -#: ../build/bin/conf_gen.h:2730 +#: ../build/bin/conf_gen.h:2820 msgctxt "preferences" msgid "vertical" msgstr "Pystysuunta" -#: ../build/bin/conf_gen.h:2738 +#: ../build/bin/conf_gen.h:2828 msgctxt "preferences" msgid "overlaid" msgstr "Peitekuva" -#: ../build/bin/conf_gen.h:2739 +#: ../build/bin/conf_gen.h:2829 msgctxt "preferences" msgid "parade" msgstr "Paraati" -#: ../build/bin/conf_gen.h:2747 +#: ../build/bin/conf_gen.h:2837 msgctxt "preferences" msgid "u*v*" msgstr "u*v*" -#: ../build/bin/conf_gen.h:2748 +#: ../build/bin/conf_gen.h:2838 msgctxt "preferences" msgid "AzBz" msgstr "AzBz" -#: ../build/bin/conf_gen.h:2749 +#: ../build/bin/conf_gen.h:2839 msgctxt "preferences" msgid "RYB" msgstr "RYB" -#: ../build/bin/conf_gen.h:2791 +#: ../build/bin/conf_gen.h:2881 msgctxt "preferences" msgid "monochromatic" msgstr "Monokromaattinen" -#: ../build/bin/conf_gen.h:2792 +#: ../build/bin/conf_gen.h:2882 msgctxt "preferences" msgid "analogous" msgstr "Analoginen" -#: ../build/bin/conf_gen.h:2793 +#: ../build/bin/conf_gen.h:2883 msgctxt "preferences" msgid "analogous complementary" msgstr "Analoginen täydentävä" -#: ../build/bin/conf_gen.h:2794 +#: ../build/bin/conf_gen.h:2884 msgctxt "preferences" msgid "complementary" msgstr "Täydentävä" -#: ../build/bin/conf_gen.h:2795 +#: ../build/bin/conf_gen.h:2885 msgctxt "preferences" msgid "split complementary" msgstr "Halkaistu täydentävä" -#: ../build/bin/conf_gen.h:2796 +#: ../build/bin/conf_gen.h:2886 msgctxt "preferences" msgid "dyad" msgstr "Dyadi" -#: ../build/bin/conf_gen.h:2797 +#: ../build/bin/conf_gen.h:2887 msgctxt "preferences" msgid "triad" msgstr "Triadi" -#: ../build/bin/conf_gen.h:2798 +#: ../build/bin/conf_gen.h:2888 msgctxt "preferences" msgid "tetrad" msgstr "Tetradi" -#: ../build/bin/conf_gen.h:2799 +#: ../build/bin/conf_gen.h:2889 msgctxt "preferences" msgid "square" msgstr "Neliö" -#: ../build/bin/conf_gen.h:2813 +#: ../build/bin/conf_gen.h:2903 msgctxt "preferences" msgid "normal" msgstr "Normaali" -#: ../build/bin/conf_gen.h:2815 +#: ../build/bin/conf_gen.h:2905 msgctxt "preferences" msgid "narrow" msgstr "Kapea" -#: ../build/bin/conf_gen.h:2816 +#: ../build/bin/conf_gen.h:2906 msgctxt "preferences" msgid "line" msgstr "Viiva" -#: ../build/bin/conf_gen.h:2956 +#: ../build/bin/conf_gen.h:3046 msgctxt "preferences" msgid "mm" msgstr "mm" -#: ../build/bin/conf_gen.h:2957 +#: ../build/bin/conf_gen.h:3047 msgctxt "preferences" msgid "cm" msgstr "cm" -#: ../build/bin/conf_gen.h:2958 +#: ../build/bin/conf_gen.h:3048 msgctxt "preferences" msgid "inch" msgstr "tuumaa" -#: ../build/bin/conf_gen.h:3003 ../build/bin/preferences_gen.h:7324 -#: ../build/bin/preferences_gen.h:7353 +#: ../build/bin/conf_gen.h:3093 ../build/bin/preferences_gen.h:7654 msgctxt "preferences" msgid "all" msgstr "Kaikki" -#: ../build/bin/conf_gen.h:3004 ../build/bin/preferences_gen.h:7329 +#: ../build/bin/conf_gen.h:3094 msgctxt "preferences" msgid "xatom" msgstr "xatom" -#: ../build/bin/conf_gen.h:3005 ../build/bin/preferences_gen.h:7334 +#: ../build/bin/conf_gen.h:3095 msgctxt "preferences" msgid "colord" msgstr "colord" -#: ../build/bin/conf_gen.h:3041 ../build/bin/preferences_gen.h:5562 -#: ../build/bin/preferences_gen.h:5596 +#: ../build/bin/conf_gen.h:3133 ../build/bin/preferences_gen.h:5958 msgctxt "preferences" msgid "scene-referred (filmic)" msgstr "Näkymä-viitattu (Elävä kuva)" -#: ../build/bin/conf_gen.h:3042 ../build/bin/preferences_gen.h:5567 +#: ../build/bin/conf_gen.h:3134 msgctxt "preferences" msgid "scene-referred (sigmoid)" msgstr "Näkymä-viitattu (Sigmoid)" -#: ../build/bin/conf_gen.h:3043 ../build/bin/preferences_gen.h:5572 +#: ../build/bin/conf_gen.h:3135 msgctxt "preferences" msgid "display-referred (legacy)" msgstr "Näyttö-viitattu (vanha)" -#: ../build/bin/conf_gen.h:3144 +#: ../build/bin/conf_gen.h:3230 msgid "camera time zone" msgstr "Kameran aikavyöhyke" -#: ../build/bin/conf_gen.h:3145 +#: ../build/bin/conf_gen.h:3231 msgid "" "most cameras don't store the time zone in EXIF. give the correct time zone " "so the GPX data can be correctly matched" @@ -773,213 +725,273 @@ "Suurinosa kameroista ei tallenna aikavyöhykettä EXIF-tietoihin. Syötä oikea " "aikavyöhyke, jotta GPX-tiedot voidaan yhdistää oikein." -#: ../build/bin/conf_gen.h:3156 +#: ../build/bin/conf_gen.h:3242 msgctxt "preferences" msgid "no color" msgstr "Ei väriä" -#: ../build/bin/conf_gen.h:3157 +#: ../build/bin/conf_gen.h:3243 msgctxt "preferences" msgid "illuminant color" msgstr "Valaisun väri" -#: ../build/bin/conf_gen.h:3158 +#: ../build/bin/conf_gen.h:3244 msgctxt "preferences" msgid "effect emulation" msgstr "Asetuksen emulointi" -#: ../build/bin/conf_gen.h:3204 +#: ../build/bin/conf_gen.h:3290 msgctxt "preferences" msgid "list" msgstr "Lista" -#: ../build/bin/conf_gen.h:3205 +#: ../build/bin/conf_gen.h:3291 msgctxt "preferences" msgid "tabs" msgstr "Välilehti" -#: ../build/bin/conf_gen.h:3206 +#: ../build/bin/conf_gen.h:3292 msgctxt "preferences" msgid "columns" msgstr "Sarake" -#: ../build/bin/conf_gen.h:3215 ../build/bin/preferences_gen.h:5117 +#: ../build/bin/conf_gen.h:3301 msgctxt "preferences" msgid "active" msgstr "Aktiivinen" -#: ../build/bin/conf_gen.h:3216 ../build/bin/preferences_gen.h:5122 +#: ../build/bin/conf_gen.h:3302 msgctxt "preferences" msgid "dim" msgstr "Himmeä" -#: ../build/bin/conf_gen.h:3218 ../build/bin/preferences_gen.h:5132 +#: ../build/bin/conf_gen.h:3304 msgctxt "preferences" msgid "fade" msgstr "Häipyvät" -#: ../build/bin/conf_gen.h:3219 ../build/bin/preferences_gen.h:5137 +#: ../build/bin/conf_gen.h:3305 msgctxt "preferences" msgid "fit" msgstr "Sovita" -#: ../build/bin/conf_gen.h:3220 ../build/bin/preferences_gen.h:5142 +#: ../build/bin/conf_gen.h:3306 msgctxt "preferences" msgid "smooth" msgstr "Tasainen" -#: ../build/bin/conf_gen.h:3221 ../build/bin/preferences_gen.h:5147 +#: ../build/bin/conf_gen.h:3307 msgctxt "preferences" msgid "glide" msgstr "Liukuva" -#: ../build/bin/preferences_gen.h:81 ../build/bin/preferences_gen.h:3823 -#: ../build/bin/preferences_gen.h:3859 ../build/bin/preferences_gen.h:3895 -#: ../build/bin/preferences_gen.h:3931 ../build/bin/preferences_gen.h:3967 -#: ../build/bin/preferences_gen.h:4003 ../build/bin/preferences_gen.h:4039 -#: ../build/bin/preferences_gen.h:4083 ../build/bin/preferences_gen.h:4178 -#: ../build/bin/preferences_gen.h:4273 ../build/bin/preferences_gen.h:4313 -#: ../build/bin/preferences_gen.h:4356 ../build/bin/preferences_gen.h:4437 -#: ../build/bin/preferences_gen.h:4473 ../build/bin/preferences_gen.h:4510 -#: ../build/bin/preferences_gen.h:4553 ../build/bin/preferences_gen.h:4627 -#: ../build/bin/preferences_gen.h:4672 ../build/bin/preferences_gen.h:4708 -#: ../build/bin/preferences_gen.h:4778 ../build/bin/preferences_gen.h:4822 -#: ../build/bin/preferences_gen.h:4882 ../build/bin/preferences_gen.h:4918 -#: ../build/bin/preferences_gen.h:4954 ../build/bin/preferences_gen.h:4990 -#: ../build/bin/preferences_gen.h:5026 ../build/bin/preferences_gen.h:5062 -#: ../build/bin/preferences_gen.h:5098 ../build/bin/preferences_gen.h:5188 -#: ../build/bin/preferences_gen.h:5224 ../build/bin/preferences_gen.h:5260 -#: ../build/bin/preferences_gen.h:5334 ../build/bin/preferences_gen.h:5370 -#: ../build/bin/preferences_gen.h:5435 ../build/bin/preferences_gen.h:5505 -#: ../build/bin/preferences_gen.h:5548 ../build/bin/preferences_gen.h:5618 -#: ../build/bin/preferences_gen.h:5654 ../build/bin/preferences_gen.h:5690 -#: ../build/bin/preferences_gen.h:5734 ../build/bin/preferences_gen.h:5805 -#: ../build/bin/preferences_gen.h:5841 ../build/bin/preferences_gen.h:5877 -#: ../build/bin/preferences_gen.h:5913 ../build/bin/preferences_gen.h:5955 -#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6140 -#: ../build/bin/preferences_gen.h:6176 ../build/bin/preferences_gen.h:6212 -#: ../build/bin/preferences_gen.h:6248 ../build/bin/preferences_gen.h:6284 -#: ../build/bin/preferences_gen.h:6320 ../build/bin/preferences_gen.h:6356 -#: ../build/bin/preferences_gen.h:6392 ../build/bin/preferences_gen.h:6427 -#: ../build/bin/preferences_gen.h:6462 ../build/bin/preferences_gen.h:6498 -#: ../build/bin/preferences_gen.h:6542 ../build/bin/preferences_gen.h:6614 -#: ../build/bin/preferences_gen.h:6692 ../build/bin/preferences_gen.h:6767 -#: ../build/bin/preferences_gen.h:6820 ../build/bin/preferences_gen.h:6885 -#: ../build/bin/preferences_gen.h:6950 ../build/bin/preferences_gen.h:7024 -#: ../build/bin/preferences_gen.h:7060 ../build/bin/preferences_gen.h:7096 -#: ../build/bin/preferences_gen.h:7132 ../build/bin/preferences_gen.h:7168 -#: ../build/bin/preferences_gen.h:7204 ../build/bin/preferences_gen.h:7250 -#: ../build/bin/preferences_gen.h:7310 ../build/bin/preferences_gen.h:7375 -#: ../build/bin/preferences_gen.h:7429 ../build/bin/preferences_gen.h:7474 -#: ../build/bin/preferences_gen.h:7510 ../build/bin/preferences_gen.h:7546 -#: ../build/bin/preferences_gen.h:7582 ../build/bin/preferences_gen.h:7618 -#: ../build/bin/preferences_gen.h:7678 ../build/bin/preferences_gen.h:7722 -#: ../build/bin/preferences_gen.h:7766 ../build/bin/preferences_gen.h:7848 -#: ../build/bin/preferences_gen.h:7888 ../build/bin/preferences_gen.h:7928 -#: ../build/bin/preferences_gen.h:7964 ../build/bin/preferences_gen.h:8019 -#: ../build/bin/preferences_gen.h:8055 ../build/bin/preferences_gen.h:8115 -#: ../build/bin/preferences_gen.h:8161 ../build/bin/preferences_gen.h:8197 -#: ../build/bin/preferences_gen.h:8243 ../build/bin/preferences_gen.h:8303 -#: ../build/bin/preferences_gen.h:8355 ../build/bin/preferences_gen.h:8401 -#: ../build/bin/preferences_gen.h:8469 ../build/bin/preferences_gen.h:8516 +#: ../build/bin/preferences_gen.h:77 ../build/bin/preferences_gen.h:4305 +#: ../build/bin/preferences_gen.h:4344 ../build/bin/preferences_gen.h:4383 +#: ../build/bin/preferences_gen.h:4417 ../build/bin/preferences_gen.h:4488 +#: ../build/bin/preferences_gen.h:4522 ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:4590 ../build/bin/preferences_gen.h:4624 +#: ../build/bin/preferences_gen.h:4658 ../build/bin/preferences_gen.h:4692 +#: ../build/bin/preferences_gen.h:4733 ../build/bin/preferences_gen.h:4768 +#: ../build/bin/preferences_gen.h:4803 ../build/bin/preferences_gen.h:4837 +#: ../build/bin/preferences_gen.h:4871 ../build/bin/preferences_gen.h:4906 +#: ../build/bin/preferences_gen.h:4940 ../build/bin/preferences_gen.h:4979 +#: ../build/bin/preferences_gen.h:5020 ../build/bin/preferences_gen.h:5093 +#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:5162 +#: ../build/bin/preferences_gen.h:5203 ../build/bin/preferences_gen.h:5237 +#: ../build/bin/preferences_gen.h:5281 ../build/bin/preferences_gen.h:5315 +#: ../build/bin/preferences_gen.h:5350 ../build/bin/preferences_gen.h:5391 +#: ../build/bin/preferences_gen.h:5426 ../build/bin/preferences_gen.h:5460 +#: ../build/bin/preferences_gen.h:5494 ../build/bin/preferences_gen.h:5528 +#: ../build/bin/preferences_gen.h:5562 ../build/bin/preferences_gen.h:5596 +#: ../build/bin/preferences_gen.h:5630 ../build/bin/preferences_gen.h:5665 +#: ../build/bin/preferences_gen.h:5699 ../build/bin/preferences_gen.h:5733 +#: ../build/bin/preferences_gen.h:5799 ../build/bin/preferences_gen.h:5833 +#: ../build/bin/preferences_gen.h:5868 ../build/bin/preferences_gen.h:5903 +#: ../build/bin/preferences_gen.h:5944 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/preferences_gen.h:6013 ../build/bin/preferences_gen.h:6047 +#: ../build/bin/preferences_gen.h:6088 ../build/bin/preferences_gen.h:6124 +#: ../build/bin/preferences_gen.h:6165 ../build/bin/preferences_gen.h:6209 +#: ../build/bin/preferences_gen.h:6254 ../build/bin/preferences_gen.h:6305 +#: ../build/bin/preferences_gen.h:6349 ../build/bin/preferences_gen.h:6393 +#: ../build/bin/preferences_gen.h:6437 ../build/bin/preferences_gen.h:6481 +#: ../build/bin/preferences_gen.h:6525 ../build/bin/preferences_gen.h:6569 +#: ../build/bin/preferences_gen.h:6635 ../build/bin/preferences_gen.h:6669 +#: ../build/bin/preferences_gen.h:6703 ../build/bin/preferences_gen.h:6737 +#: ../build/bin/preferences_gen.h:6771 ../build/bin/preferences_gen.h:6805 +#: ../build/bin/preferences_gen.h:6839 ../build/bin/preferences_gen.h:6873 +#: ../build/bin/preferences_gen.h:6906 ../build/bin/preferences_gen.h:6939 +#: ../build/bin/preferences_gen.h:6973 ../build/bin/preferences_gen.h:7014 +#: ../build/bin/preferences_gen.h:7053 ../build/bin/preferences_gen.h:7124 +#: ../build/bin/preferences_gen.h:7159 ../build/bin/preferences_gen.h:7210 +#: ../build/bin/preferences_gen.h:7245 ../build/bin/preferences_gen.h:7280 +#: ../build/bin/preferences_gen.h:7324 ../build/bin/preferences_gen.h:7390 +#: ../build/bin/preferences_gen.h:7424 ../build/bin/preferences_gen.h:7458 +#: ../build/bin/preferences_gen.h:7492 ../build/bin/preferences_gen.h:7526 +#: ../build/bin/preferences_gen.h:7560 ../build/bin/preferences_gen.h:7605 +#: ../build/bin/preferences_gen.h:7640 ../build/bin/preferences_gen.h:7675 +#: ../build/bin/preferences_gen.h:7731 ../build/bin/preferences_gen.h:7772 +#: ../build/bin/preferences_gen.h:7806 ../build/bin/preferences_gen.h:7840 +#: ../build/bin/preferences_gen.h:7874 ../build/bin/preferences_gen.h:7908 +#: ../build/bin/preferences_gen.h:7943 ../build/bin/preferences_gen.h:7984 +#: ../build/bin/preferences_gen.h:8025 ../build/bin/preferences_gen.h:8085 +#: ../build/bin/preferences_gen.h:8119 ../build/bin/preferences_gen.h:8154 +#: ../build/bin/preferences_gen.h:8199 ../build/bin/preferences_gen.h:8233 +#: ../build/bin/preferences_gen.h:8278 ../build/bin/preferences_gen.h:8313 +#: ../build/bin/preferences_gen.h:8365 ../build/bin/preferences_gen.h:8410 +#: ../build/bin/preferences_gen.h:8480 ../build/bin/preferences_gen.h:8526 msgid "this setting has been modified" msgstr "Tätä asetusta on muokattu" #. doesn't seem to work from gtkrc -#: ../build/bin/preferences_gen.h:3793 ../build/bin/preferences_gen.h:4407 -#: ../build/bin/preferences_gen.h:5304 ../build/bin/preferences_gen.h:6110 -#: ../build/bin/preferences_gen.h:6662 ../build/bin/preferences_gen.h:6994 -#: ../build/bin/preferences_gen.h:7818 ../src/gui/accelerators.c:2724 -#: ../src/gui/gtk.c:2580 ../src/gui/preferences.c:421 -#: ../src/gui/preferences.c:876 ../src/libs/modulegroups.c:3886 +#: ../build/bin/preferences_gen.h:4277 ../build/bin/preferences_gen.h:4460 +#: ../build/bin/preferences_gen.h:5065 ../build/bin/preferences_gen.h:5771 +#: ../build/bin/preferences_gen.h:6607 ../build/bin/preferences_gen.h:7096 +#: ../build/bin/preferences_gen.h:7362 ../src/gui/accelerators.c:2996 +#: ../src/gui/gtk.c:2641 ../src/gui/preferences.c:424 +#: ../src/gui/preferences.c:874 ../src/libs/modulegroups.c:3888 msgid "?" msgstr "?" -#: ../build/bin/preferences_gen.h:3806 ../build/bin/preferences_gen.h:4420 -#: ../build/bin/preferences_gen.h:6123 ../src/gui/preferences.c:270 -msgid "general" -msgstr "Yleiset" +#: ../build/bin/preferences_gen.h:4287 ../src/control/jobs/control_jobs.c:2352 +#: ../src/libs/import.c:173 +msgid "import" +msgstr "Tuo" -#: ../build/bin/preferences_gen.h:3826 -msgid "hide built-in presets for utility modules" -msgstr "Piilota valopöydän moduulien sisäänrakennetut esiasetukset" +#: ../build/bin/preferences_gen.h:4289 +msgid "session options" +msgstr "Istunnon asetukset" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4017 -#: ../build/bin/preferences_gen.h:4053 ../build/bin/preferences_gen.h:4156 -#: ../build/bin/preferences_gen.h:4251 ../build/bin/preferences_gen.h:4291 -#: ../build/bin/preferences_gen.h:4334 ../build/bin/preferences_gen.h:4377 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4531 ../build/bin/preferences_gen.h:4606 -#: ../build/bin/preferences_gen.h:4686 ../build/bin/preferences_gen.h:4756 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4860 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5040 ../build/bin/preferences_gen.h:5076 -#: ../build/bin/preferences_gen.h:5166 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5274 -#: ../build/bin/preferences_gen.h:5348 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5483 ../build/bin/preferences_gen.h:5525 -#: ../build/bin/preferences_gen.h:5596 ../build/bin/preferences_gen.h:5632 -#: ../build/bin/preferences_gen.h:5668 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5782 ../build/bin/preferences_gen.h:5819 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:5927 ../build/bin/preferences_gen.h:5998 -#: ../build/bin/preferences_gen.h:6074 ../build/bin/preferences_gen.h:6154 -#: ../build/bin/preferences_gen.h:6190 ../build/bin/preferences_gen.h:6226 -#: ../build/bin/preferences_gen.h:6262 ../build/bin/preferences_gen.h:6298 -#: ../build/bin/preferences_gen.h:6334 ../build/bin/preferences_gen.h:6370 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:6592 ../build/bin/preferences_gen.h:6632 -#: ../build/bin/preferences_gen.h:6745 ../build/bin/preferences_gen.h:6863 -#: ../build/bin/preferences_gen.h:6928 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7146 -#: ../build/bin/preferences_gen.h:7182 ../build/bin/preferences_gen.h:7288 -#: ../build/bin/preferences_gen.h:7353 ../build/bin/preferences_gen.h:7393 -#: ../build/bin/preferences_gen.h:7443 ../build/bin/preferences_gen.h:7488 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7656 -#: ../build/bin/preferences_gen.h:7692 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:7866 ../build/bin/preferences_gen.h:7906 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:7982 -#: ../build/bin/preferences_gen.h:8033 ../build/bin/preferences_gen.h:8093 -#: ../build/bin/preferences_gen.h:8175 ../build/bin/preferences_gen.h:8281 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4308 +msgid "base directory naming pattern" +msgstr "Perushakemiston nimeämiskäytäntö" + +#: ../build/bin/preferences_gen.h:4323 ../build/bin/preferences_gen.h:4362 +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4435 +#: ../build/bin/preferences_gen.h:4501 ../build/bin/preferences_gen.h:4535 +#: ../build/bin/preferences_gen.h:4569 ../build/bin/preferences_gen.h:4603 +#: ../build/bin/preferences_gen.h:4637 ../build/bin/preferences_gen.h:4671 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4747 +#: ../build/bin/preferences_gen.h:4782 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:4850 ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:4958 +#: ../build/bin/preferences_gen.h:4999 ../build/bin/preferences_gen.h:5040 +#: ../build/bin/preferences_gen.h:5106 ../build/bin/preferences_gen.h:5140 +#: ../build/bin/preferences_gen.h:5182 ../build/bin/preferences_gen.h:5217 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5329 +#: ../build/bin/preferences_gen.h:5363 ../build/bin/preferences_gen.h:5405 +#: ../build/bin/preferences_gen.h:5439 ../build/bin/preferences_gen.h:5473 +#: ../build/bin/preferences_gen.h:5507 ../build/bin/preferences_gen.h:5541 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5644 ../build/bin/preferences_gen.h:5678 +#: ../build/bin/preferences_gen.h:5712 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5847 +#: ../build/bin/preferences_gen.h:5882 ../build/bin/preferences_gen.h:5922 +#: ../build/bin/preferences_gen.h:5958 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6060 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6178 ../build/bin/preferences_gen.h:6223 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6318 +#: ../build/bin/preferences_gen.h:6362 ../build/bin/preferences_gen.h:6406 +#: ../build/bin/preferences_gen.h:6450 ../build/bin/preferences_gen.h:6494 +#: ../build/bin/preferences_gen.h:6538 ../build/bin/preferences_gen.h:6582 +#: ../build/bin/preferences_gen.h:6648 ../build/bin/preferences_gen.h:6682 +#: ../build/bin/preferences_gen.h:6716 ../build/bin/preferences_gen.h:6750 +#: ../build/bin/preferences_gen.h:6784 ../build/bin/preferences_gen.h:6818 +#: ../build/bin/preferences_gen.h:6852 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7032 +#: ../build/bin/preferences_gen.h:7071 ../build/bin/preferences_gen.h:7138 +#: ../build/bin/preferences_gen.h:7224 ../build/bin/preferences_gen.h:7259 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7505 ../build/bin/preferences_gen.h:7539 +#: ../build/bin/preferences_gen.h:7619 ../build/bin/preferences_gen.h:7654 +#: ../build/bin/preferences_gen.h:7693 ../build/bin/preferences_gen.h:7744 +#: ../build/bin/preferences_gen.h:7785 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7922 ../build/bin/preferences_gen.h:7956 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8133 ../build/bin/preferences_gen.h:8212 +#: ../build/bin/preferences_gen.h:8292 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 #, c-format msgid "double click to reset to `%s'" msgstr "Kaksoisnapsauta palauttaaksesi arvoksi `%s'" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4053 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4686 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:5040 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5348 -#: ../build/bin/preferences_gen.h:5632 ../build/bin/preferences_gen.h:5668 -#: ../build/bin/preferences_gen.h:5819 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:6370 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7146 ../build/bin/preferences_gen.h:7443 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7692 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:8033 -#: ../build/bin/preferences_gen.h:8175 +#: ../build/bin/preferences_gen.h:4326 ../build/bin/preferences_gen.h:4365 +msgid "part of full import path for an import session" +msgstr "Täyden hakemistopolun osa kuvatuonnin istunnoissa." + +#: ../build/bin/preferences_gen.h:4347 +msgid "sub directory naming pattern" +msgstr "Alihakemistojen nimeämiskäytäntö" + +#: ../build/bin/preferences_gen.h:4386 +msgid "keep original filename" +msgstr "Säilytä alkuperäinen tiedostonimi" + +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4501 +#: ../build/bin/preferences_gen.h:4535 ../build/bin/preferences_gen.h:4569 +#: ../build/bin/preferences_gen.h:4603 ../build/bin/preferences_gen.h:4637 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4850 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:5106 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5439 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5712 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6450 +#: ../build/bin/preferences_gen.h:6494 ../build/bin/preferences_gen.h:6538 +#: ../build/bin/preferences_gen.h:6582 ../build/bin/preferences_gen.h:6852 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7505 +#: ../build/bin/preferences_gen.h:7744 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7956 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8212 msgctxt "preferences" msgid "FALSE" msgstr "EI VALITTU" -#: ../build/bin/preferences_gen.h:3840 +#: ../build/bin/preferences_gen.h:4399 +msgid "" +"keep original filename instead of a pattern while importing from camera or " +"card" +msgstr "" +"Säilytä alkuperäinen tiedostonimi, kun kuvia siirretään kamerasta tai " +"kortilta." + +#: ../build/bin/preferences_gen.h:4420 +msgid "file naming pattern" +msgstr "Tiedostojen nimeämiskäytäntö" + +#: ../build/bin/preferences_gen.h:4438 +msgid "file naming pattern used for a import session" +msgstr "Tuonnissa käytettävä tiedostojen nimeämiskäytäntö." + +#: ../build/bin/preferences_gen.h:4470 ../src/gui/gtk.c:1266 +#: ../src/gui/preferences.c:544 ../src/libs/tools/lighttable.c:66 +#: ../src/views/lighttable.c:91 +msgid "lighttable" +msgstr "Valopöytä" + +#: ../build/bin/preferences_gen.h:4472 ../build/bin/preferences_gen.h:5077 +#: ../build/bin/preferences_gen.h:6619 ../src/gui/preferences.c:270 +msgid "general" +msgstr "Yleiset" + +#: ../build/bin/preferences_gen.h:4491 +msgid "hide built-in presets for utility modules" +msgstr "Piilota valopöydän moduulien sisäänrakennetut esiasetukset" + +#: ../build/bin/preferences_gen.h:4504 msgid "hides built-in presets of utility modules in presets menu." msgstr "" "Piilottaa valopöydän moduulien sisäänrakennetut esiasetukset valikoista." -#: ../build/bin/preferences_gen.h:3862 +#: ../build/bin/preferences_gen.h:4525 msgid "use single-click in the collections module" msgstr "Käytä yhtä napsausta kokoelmat-moduulissa" -#: ../build/bin/preferences_gen.h:3876 +#: ../build/bin/preferences_gen.h:4538 msgid "" "check this option to use single-click to select items in the collections " "module. this will allow you to do range selections for date-time and numeric " @@ -989,20 +1001,20 @@ "kokoelmat-moduulissa. Tämä mahdollistaa joukon valinnan päivä-, aika- ja " "numeerisilla arvoilla." -#: ../build/bin/preferences_gen.h:3898 +#: ../build/bin/preferences_gen.h:4559 msgid "expand a single utility module at a time" msgstr "Laajenna yksittäinen valopöydän moduuli kerralla" -#: ../build/bin/preferences_gen.h:3912 +#: ../build/bin/preferences_gen.h:4572 msgid "this option toggles the behavior of shift clicking in lighttable mode" msgstr "" "Tämä asetus vaihtaa moduulien SHIFT+napsautuksen toimintatavan valopöydällä." -#: ../build/bin/preferences_gen.h:3934 +#: ../build/bin/preferences_gen.h:4593 msgid "scroll utility modules to the top when expanded" msgstr "Siirrä avattu moduuli ylös" -#: ../build/bin/preferences_gen.h:3948 ../build/bin/preferences_gen.h:5079 +#: ../build/bin/preferences_gen.h:4606 ../build/bin/preferences_gen.h:5612 msgid "" "when this option is enabled then darktable will try to scroll the module to " "the top of the visible list" @@ -1010,61 +1022,63 @@ "Tämän asetuksen ollessa päällä, Darktable pyrkii näyttämään avatun moduulin " "listan yläpäässä." -#: ../build/bin/preferences_gen.h:3970 +#: ../build/bin/preferences_gen.h:4627 msgid "rating an image one star twice will not zero out the rating" msgstr "" "Luokittelemalla kuva yhdellä tähdellä kahteen kertaan ei nollaa luokitusta" -#: ../build/bin/preferences_gen.h:3984 +#: ../build/bin/preferences_gen.h:4640 msgid "" "defines whether rating an image one star twice will zero out star rating" msgstr "" "Määrittää nollataanko kuvan luokitus antamalla sille yksi tähti kahdesti." -#: ../build/bin/preferences_gen.h:4006 ../build/bin/preferences_gen.h:4675 +#: ../build/bin/preferences_gen.h:4661 ../build/bin/preferences_gen.h:5284 msgid "show scrollbars for central view" msgstr "Näytä keskinäkymän vierityspalkit" -#: ../build/bin/preferences_gen.h:4017 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5076 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5274 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5927 -#: ../build/bin/preferences_gen.h:6154 ../build/bin/preferences_gen.h:6190 -#: ../build/bin/preferences_gen.h:6226 ../build/bin/preferences_gen.h:6262 -#: ../build/bin/preferences_gen.h:6298 ../build/bin/preferences_gen.h:6334 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7182 -#: ../build/bin/preferences_gen.h:7488 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4671 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:5140 ../build/bin/preferences_gen.h:5363 +#: ../build/bin/preferences_gen.h:5473 ../build/bin/preferences_gen.h:5507 +#: ../build/bin/preferences_gen.h:5541 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5678 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:6060 ../build/bin/preferences_gen.h:6178 +#: ../build/bin/preferences_gen.h:6318 ../build/bin/preferences_gen.h:6362 +#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6648 +#: ../build/bin/preferences_gen.h:6682 ../build/bin/preferences_gen.h:6716 +#: ../build/bin/preferences_gen.h:6750 ../build/bin/preferences_gen.h:6784 +#: ../build/bin/preferences_gen.h:6818 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7539 ../build/bin/preferences_gen.h:7785 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 msgctxt "preferences" msgid "TRUE" msgstr "VALITTU" -#: ../build/bin/preferences_gen.h:4020 ../build/bin/preferences_gen.h:4689 +#: ../build/bin/preferences_gen.h:4674 ../build/bin/preferences_gen.h:5297 msgid "defines whether scrollbars should be displayed" msgstr "Määrittää näytetäänkö vierityspalkit." -#: ../build/bin/preferences_gen.h:4042 +#: ../build/bin/preferences_gen.h:4695 msgid "show image time with milliseconds" msgstr "Näytä millisekunnit kuvan ajassa" -#: ../build/bin/preferences_gen.h:4056 +#: ../build/bin/preferences_gen.h:4708 msgid "defines whether time should be displayed with milliseconds" msgstr "Määrittää näytetäänkö aika millisekunneissa." -#: ../build/bin/preferences_gen.h:4066 +#: ../build/bin/preferences_gen.h:4717 msgid "thumbnails" msgstr "Esikatselukuvat" -#: ../build/bin/preferences_gen.h:4086 +#: ../build/bin/preferences_gen.h:4736 msgid "use raw file instead of embedded JPEG from size" msgstr "Luo esikatselukuvat raakakuvasta upotetun JPEG-kuvan sijaan" -#: ../build/bin/preferences_gen.h:4159 +#: ../build/bin/preferences_gen.h:4750 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "raw file instead of the embedded preview JPEG (better but slower).\n" @@ -1077,11 +1091,11 @@ "Jos haluat parhaan laadun esikatselukuvat valitse *Aina*.\n" "(Lisää kommentteja käyttöohjeessa)." -#: ../build/bin/preferences_gen.h:4181 +#: ../build/bin/preferences_gen.h:4771 msgid "high quality processing from size" msgstr "Korkeammalla laadulla käsitteleminen koosta" -#: ../build/bin/preferences_gen.h:4254 +#: ../build/bin/preferences_gen.h:4785 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "the full quality rendering path (better but slower).\n" @@ -1094,11 +1108,84 @@ "Jos haluat parhaan laadun esikatselukuvat valitse *Aina*.\n" "(Lisää kommentteja käyttöohjeessa)." -#: ../build/bin/preferences_gen.h:4276 +#: ../build/bin/preferences_gen.h:4806 +msgid "enable disk backend for thumbnail cache" +msgstr "Käytä massamuistia esikatselukuvien levylle tallennukseen" + +#: ../build/bin/preferences_gen.h:4819 +msgid "" +"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want. light table " +"performance will be increased greatly when browsing a lot.\n" +"to generate all thumbnails of your entire collection offline, run 'darktable-" +"generate-cache'." +msgstr "" +"Jos käytössä, esikatselukuvat tallennetaan massamuistiin (.cache/" +"darktable/), kun ne poistetaan RAM-välimuistista.\n" +"Tämä saattaa viedä paljon levytilaa (useita gigatavuja 20 000 valokuvalle). " +"Levylle tallennettuja esikatselukuvia\n" +"ei poisteta koskaan automaattisesti. Niiden käsin poistaminen on kuitenkin " +"turvallista. Valopöydän suorituskyky on suurilla\n" +"kuvamäärillä merkittävästi parempi tätä asetusta käytettäessä. Jos haluat " +"luoda kaikille kuvillesi esikatselukuvat,\n" +"aja 'darktable-generate-cache', kun darktable on suljettuna." + +#: ../build/bin/preferences_gen.h:4840 +msgid "enable disk backend for full preview cache" +msgstr "Käytä massamuistia täyden koon esikatselukuvien välimuistina" + +#: ../build/bin/preferences_gen.h:4853 +msgid "" +"if enabled, write full preview to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want.\n" +"light table performance will be increased greatly when zooming image in full " +"preview mode." +msgstr "" +"Jos käytössä, täyden tarkkuuden esikatselukuvat tallennetaan massamuistiin (." +"cache/darktable/), kun ne poistetaan RAM-välimuistista.\n" +"Tämä saattaa viedä paljon levytilaa (useita gigatavuja 20 000 valokuvalle). " +"Levylle tallennettuja esikatselukuvia ei poisteta koskaan automaattisesti.\n" +"Niiden käsin poistaminen on kuitenkin turvallista.\n" +"Valopöydän suorituskyky esikatselukuville on suurilla kuvamäärillä " +"merkittävästi parempi tätä asetusta käytettäessä." + +#: ../build/bin/preferences_gen.h:4874 +msgid "generate thumbnails in background" +msgstr "Luo esikatselukuvat taustalla" + +#: ../build/bin/preferences_gen.h:4888 +msgid "" +"if 'enable disk backend for thumbnail cache' is enabled thumbnails/mipmaps " +"up to the selected size are generated while user is inactive in lighttable." +msgstr "" +"Jos 'Käytä massamuistia esikatselukuvien levylle tallennukseen' on käytössä, " +"luodaan esikatselukuvat/mipmapsit valittuun kokoon, kun valopöytä on " +"aktiivisena ja käyttäjä ei tee mitään." + +#: ../build/bin/preferences_gen.h:4909 +msgid "reset cached thumbnails" +msgstr "Nollaa välimuistin esikatselukuvat" + +#: ../build/bin/preferences_gen.h:4922 +msgid "" +"force thumbnails to be regenerated by resetting the database. this may be " +"needed in case some thumbnails have been manually removed or corrupted." +msgstr "" +"Pakota esikatselukuvien uudelleen luonti nollaamalla tietokanta. Tämä " +"saattaa olla tarpeellista, jos jotkin esikatselukuvat on poistettu käsin tai " +"ne ovat korruptoituneet." + +#: ../build/bin/preferences_gen.h:4943 msgid "delimiters for size categories" msgstr "Erottimet koon kategorioille" -#: ../build/bin/preferences_gen.h:4294 +#: ../build/bin/preferences_gen.h:4961 msgid "" "size categories are used to be able to set different overlays and CSS values " "depending of the size of the thumbnail, separated by |.\n" @@ -1110,23 +1197,28 @@ "Esimerkiksi 120|400 tarkoittaa kolmea kategoriaa esikatselukuville: <120px, " "120-400px ja >400px." -#: ../build/bin/preferences_gen.h:4316 +#: ../build/bin/preferences_gen.h:4982 msgid "pattern for the thumbnail extended overlay text" msgstr "Esikatselukuvien laajennettujen kuvapeitteiden tiedot" -#: ../build/bin/preferences_gen.h:4337 ../build/bin/preferences_gen.h:4380 +#: ../build/bin/preferences_gen.h:5002 ../build/bin/preferences_gen.h:5043 msgid "see manual to know all the tags you can use." msgstr "Katso käyttöohjeesta kaikki käytettävissä olevat tunnisteet." -#: ../build/bin/preferences_gen.h:4359 +#: ../build/bin/preferences_gen.h:5023 msgid "pattern for the thumbnail tooltip (empty to disable)" msgstr "Esikatselukuvien työkaluvinkin tiedot (jos tyhjä, niin ei käytössä)" -#: ../build/bin/preferences_gen.h:4440 +#: ../build/bin/preferences_gen.h:5075 ../src/gui/gtk.c:1267 +#: ../src/gui/preferences.c:544 ../src/views/darkroom.c:94 +msgid "darkroom" +msgstr "Pimiö" + +#: ../build/bin/preferences_gen.h:5096 msgid "scroll down to increase mask parameters" msgstr "Pyöritä hiiren rullaa alaspäin lisätäksesi maskin arvoa" -#: ../build/bin/preferences_gen.h:4454 +#: ../build/bin/preferences_gen.h:5109 msgid "" "when using the mouse scroll wheel to change mask parameters, scroll down to " "increase the mask size, feather size, opacity, brush hardness and gradient " @@ -1139,11 +1231,11 @@ "kaarevuutta.\n" "Oletuksena rullan ylöspäin pyörittäminen lisää näiden parametrien arvoa." -#: ../build/bin/preferences_gen.h:4476 +#: ../build/bin/preferences_gen.h:5130 msgid "middle mouse button zooms to 200%" msgstr "Hiiren keskinapin painallus zoomaa 200%" -#: ../build/bin/preferences_gen.h:4491 +#: ../build/bin/preferences_gen.h:5144 #, no-c-format msgid "" "if enabled, the zoom level will cycle between 100%, 200% and fit to viewport " @@ -1155,33 +1247,33 @@ "sovituksen ja 100% välillä sekä 'CTRL'-nappia voidaan käyttää zoomauksen " "tason määrittämiseen." -#: ../build/bin/preferences_gen.h:4513 +#: ../build/bin/preferences_gen.h:5165 msgid "pattern for the image information line" msgstr "Kuvan tiedot-rivillä näytettävät tiedot" -#: ../build/bin/preferences_gen.h:4534 +#: ../build/bin/preferences_gen.h:5185 msgid "see manual for a list of the tags you can use." msgstr "Katso käyttöohjeesta kaikki käytettävissä olevat tunnisteet." -#: ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:5206 msgid "position of the image information line" msgstr "Kuvan tiedot-rivin sijainti" # kehys vai reuna? -#: ../build/bin/preferences_gen.h:4630 +#: ../build/bin/preferences_gen.h:5240 msgid "border around image in darkroom mode" msgstr "Kuvien kehyksen koko pimiötilassa" -#: ../build/bin/preferences_gen.h:4650 ../build/bin/preferences_gen.h:6790 -#: ../build/bin/preferences_gen.h:7228 ../build/bin/preferences_gen.h:7789 -#: ../build/bin/preferences_gen.h:8139 ../build/bin/preferences_gen.h:8221 -#: ../build/bin/preferences_gen.h:8379 ../build/bin/preferences_gen.h:8493 -#: ../build/bin/preferences_gen.h:8540 +#: ../build/bin/preferences_gen.h:5260 ../build/bin/preferences_gen.h:7182 +#: ../build/bin/preferences_gen.h:7303 ../build/bin/preferences_gen.h:7584 +#: ../build/bin/preferences_gen.h:8048 ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8257 ../build/bin/preferences_gen.h:8389 +#: ../build/bin/preferences_gen.h:8504 ../build/bin/preferences_gen.h:8550 #, c-format msgid "double click to reset to `%d'" msgstr "Kaksoisnapsauta palauttaaksesi arvoksi `%d'" -#: ../build/bin/preferences_gen.h:4653 +#: ../build/bin/preferences_gen.h:5263 msgid "" "process the image in darkroom mode with a small border. set to 0 if you " "don't want any border." @@ -1189,21 +1281,21 @@ "Pimiötila näyttää pienen kehyksen kuvan ympärillä. Aseta 0 jos et halua " "kehyksiä." -#: ../build/bin/preferences_gen.h:4711 +#: ../build/bin/preferences_gen.h:5318 msgid "reduce resolution of preview image" msgstr "Pienennä esikatselukuvan resoluutio" -#: ../build/bin/preferences_gen.h:4759 +#: ../build/bin/preferences_gen.h:5332 msgid "decrease to speed up preview rendering, may hinder accurate masking" msgstr "" "Pienennä kokoa esikatselukuvien esityksen nopeuttamiseksi. Saattaa vaikuttaa " "tarkkojen maskien tekoon." -#: ../build/bin/preferences_gen.h:4781 +#: ../build/bin/preferences_gen.h:5353 msgid "show loading screen between images" msgstr "Näytä latausnäyttö kuvien välissä" -#: ../build/bin/preferences_gen.h:4795 +#: ../build/bin/preferences_gen.h:5366 msgid "" "show gray loading screen when navigating between images in the darkroom\n" "disable to just show a toast message" @@ -1211,15 +1303,15 @@ "Näytä harmaa latausnäyttö pimiössä tapahtuvan kuvien selailun lomassa.\n" "Poista käytöstä näyttääksesi ainoastaan kuvakkeen." -#: ../build/bin/preferences_gen.h:4805 +#: ../build/bin/preferences_gen.h:5375 msgid "modules" msgstr "Moduulit" -#: ../build/bin/preferences_gen.h:4825 +#: ../build/bin/preferences_gen.h:5394 msgid "display of individual color channels" msgstr "Yksittäisten värikanavien näyttö" -#: ../build/bin/preferences_gen.h:4863 +#: ../build/bin/preferences_gen.h:5408 msgid "" "defines how color channels are displayed when activated in the parametric " "masks feature." @@ -1227,11 +1319,11 @@ "Määrittää kuinka aktivoidut värikanavat näytetään käytettäessä " "laskennallisia maskeja." -#: ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:5429 msgid "hide built-in presets for processing modules" msgstr "Piilota käsittelymoduulien sisäänrakennetut esiasetukset" -#: ../build/bin/preferences_gen.h:4899 +#: ../build/bin/preferences_gen.h:5442 msgid "" "hides built-in presets of processing modules in both presets and favourites " "menu." @@ -1239,24 +1331,24 @@ "Piilottaa käsittelymoduulien sisäänrakennetut esiasetukset valikoista ja " "suosikeista." -#: ../build/bin/preferences_gen.h:4921 ../build/bin/preferences_gen.h:4935 +#: ../build/bin/preferences_gen.h:5463 ../build/bin/preferences_gen.h:5476 msgid "show the guides widget in modules UI" -msgstr "Näytä apulinjojen pienoisohjelma moduuleissa." +msgstr "Näytä apulinjojen pienoisohjelma moduuleissa" -#: ../build/bin/preferences_gen.h:4957 +#: ../build/bin/preferences_gen.h:5497 msgid "expand a single processing module at a time" msgstr "Näytä yksittäinen käsittelymoduuli kerralla" -#: ../build/bin/preferences_gen.h:4971 +#: ../build/bin/preferences_gen.h:5510 msgid "this option toggles the behavior of shift clicking in darkroom mode" msgstr "" "Tämä asetus vaihtaa moduulien SHIFT+napsautuksen toimintatavan pimiössä." -#: ../build/bin/preferences_gen.h:4993 +#: ../build/bin/preferences_gen.h:5531 msgid "only collapse modules in current group" msgstr "Pienennä moduulit ainoastaan valitussa ryhmässä" -#: ../build/bin/preferences_gen.h:5007 +#: ../build/bin/preferences_gen.h:5544 msgid "" "if only expanding a single module at a time, only collapse other modules in " "the current group - ignore modules in other groups" @@ -1264,11 +1356,11 @@ "Näytettäessä vain yksi moduuli kerrallaan, pienennä muut moduulit ainoastaan " "nykyisessä ryhmässä. Muiden ryhmien moduuleja ei pienennetä." -#: ../build/bin/preferences_gen.h:5029 +#: ../build/bin/preferences_gen.h:5565 msgid "expand the module when it is activated, and collapse it when disabled" msgstr "Laajenna moduuli aktivoitaessa ja pienennä käytöstä poistettaessa" -#: ../build/bin/preferences_gen.h:5043 +#: ../build/bin/preferences_gen.h:5578 msgid "" "this option allows to expand or collapse automatically the module when it is " "enabled or disabled." @@ -1276,15 +1368,15 @@ "Tämä valinta mahdollistaa moduulin laajentamisen tai pienentämisen, kun se " "otetaan käyttöön tai poistetaan käytöstä." -#: ../build/bin/preferences_gen.h:5065 +#: ../build/bin/preferences_gen.h:5599 msgid "scroll processing modules to the top when expanded" msgstr "Siirrä avattu käsittelymoduuli ylös" -#: ../build/bin/preferences_gen.h:5101 +#: ../build/bin/preferences_gen.h:5633 msgid "show right-side buttons in processing module headers" msgstr "Näytä oikealla olevat kuvakkeet käsittelymoduulien otsikoissa" -#: ../build/bin/preferences_gen.h:5169 +#: ../build/bin/preferences_gen.h:5647 msgid "" "when the mouse is not over a module, the multi-instance, reset and preset " "buttons can be hidden:\n" @@ -1310,11 +1402,11 @@ " - 'Tasainen': häivytä kaikki kuvakkeet yhdessä otsikossa yhtäaikaisesti.\n" " - 'Liukuva': tarpeen vaatiessa, piilota vähitellen yksittäiset kuvakkeet." -#: ../build/bin/preferences_gen.h:5191 +#: ../build/bin/preferences_gen.h:5668 msgid "show mask indicator in module headers" msgstr "Näytä maskin kuvake moduulin otsikoissa" -#: ../build/bin/preferences_gen.h:5205 +#: ../build/bin/preferences_gen.h:5681 msgid "" "if enabled, an icon will be shown in the header of any processing modules " "that have a mask applied" @@ -1322,11 +1414,11 @@ "Jos valittu, näytetään kuvake jokaisen käsittelymoduulin otsikossa, jossa on " "maski käytössä." -#: ../build/bin/preferences_gen.h:5227 +#: ../build/bin/preferences_gen.h:5702 msgid "prompt for name on addition of new instance" msgstr "Kysy nimeä uudelle instanssille" -#: ../build/bin/preferences_gen.h:5241 +#: ../build/bin/preferences_gen.h:5715 msgid "" "if enabled, a rename prompt will be present for each new module instance " "(either new instance or duplicate)" @@ -1334,11 +1426,11 @@ "Jos valittu, näytetään ikkuna jossa jokaisen moduulin uudelle instanssille " "voidaan antaa uusi nimi. (uusi tai kahdennettu instanssi)." -#: ../build/bin/preferences_gen.h:5263 +#: ../build/bin/preferences_gen.h:5736 msgid "automatically update module name" msgstr "Päivitä moduulin nimi automaattisesti" -#: ../build/bin/preferences_gen.h:5277 +#: ../build/bin/preferences_gen.h:5749 msgid "" "if enabled, the module name will be automatically updated to match a preset " "name or a preset instance name if present." @@ -1347,23 +1439,27 @@ "esiasetuksen nimeä tai esiasetetun instanssin nimeä, jos sellainen on " "käytössä." -#: ../build/bin/preferences_gen.h:5317 +#: ../build/bin/preferences_gen.h:5781 +msgid "processing" +msgstr "Käsittely" + +#: ../build/bin/preferences_gen.h:5783 msgid "image processing" msgstr "Kuvan käsittely" -#: ../build/bin/preferences_gen.h:5337 +#: ../build/bin/preferences_gen.h:5802 msgid "always use LittleCMS 2 to apply output color profile" msgstr "Käytä aina LittleCMS 2:ta viennin väriprofiilille" -#: ../build/bin/preferences_gen.h:5351 +#: ../build/bin/preferences_gen.h:5815 msgid "this is slower than the default." msgstr "Tämä on hitaampi kuin oletustapa." -#: ../build/bin/preferences_gen.h:5373 +#: ../build/bin/preferences_gen.h:5836 msgid "pixel interpolator (warp)" msgstr "Pikselien interpolointi (vääristymät)" -#: ../build/bin/preferences_gen.h:5416 +#: ../build/bin/preferences_gen.h:5850 msgid "" "pixel interpolator used in modules for rotation, lens correction, liquify, " "cropping and final scaling (bilinear, bicubic, lanczos2)." @@ -1372,33 +1468,33 @@ "rajauksessa ja lopullisessa skaalauksessa käytettävä pikselien " "interpolointitapa (bilineaarinen, bicubic, lanczos2)." -#: ../build/bin/preferences_gen.h:5438 +#: ../build/bin/preferences_gen.h:5871 msgid "pixel interpolator (scaling)" msgstr "Pikselien interpolointi (skaalaus)" -#: ../build/bin/preferences_gen.h:5486 +#: ../build/bin/preferences_gen.h:5885 msgid "" "pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." msgstr "" "Kierrossa ja linssinkorjauksessa käytettävä pikselien interpolointitapa " "(bilineaarinen, bicubic, lanczos2, lancoz3)." -#: ../build/bin/preferences_gen.h:5508 +#: ../build/bin/preferences_gen.h:5906 msgid "LUT 3D root folder" msgstr "LUT 3D juurihakemisto" -#: ../build/bin/preferences_gen.h:5513 ../src/control/jobs/control_jobs.c:1688 -#: ../src/control/jobs/control_jobs.c:1742 ../src/gui/preferences.c:1081 -#: ../src/gui/presets.c:419 ../src/imageio/storage/disk.c:122 -#: ../src/imageio/storage/disk.c:178 ../src/imageio/storage/gallery.c:109 -#: ../src/imageio/storage/gallery.c:163 ../src/imageio/storage/latex.c:108 -#: ../src/imageio/storage/latex.c:162 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/import.c:1664 ../src/libs/styles.c:391 +#: ../build/bin/preferences_gen.h:5912 ../src/control/jobs/control_jobs.c:1691 +#: ../src/control/jobs/control_jobs.c:1745 ../src/gui/preferences.c:1080 +#: ../src/gui/presets.c:421 ../src/imageio/storage/disk.c:197 +#: ../src/imageio/storage/disk.c:261 ../src/imageio/storage/gallery.c:149 +#: ../src/imageio/storage/gallery.c:213 ../src/imageio/storage/latex.c:145 +#: ../src/imageio/storage/latex.c:199 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1673 ../src/libs/styles.c:391 #: ../src/lua/preferences.c:668 msgid "select directory" msgstr "Valitse hakemisto" -#: ../build/bin/preferences_gen.h:5529 +#: ../build/bin/preferences_gen.h:5926 msgid "" "this folder (and sub-folders) contains LUT files used by LUT 3D module. " "(need a restart)." @@ -1406,11 +1502,11 @@ "Tämä hakemisto (ja alihakemistot) sisältävät LUT 3D-moduulin käyttämät LUT-" "tiedostot. (Vaatii uudelleenkäynnistyksen)." -#: ../build/bin/preferences_gen.h:5551 +#: ../build/bin/preferences_gen.h:5947 msgid "auto-apply pixel workflow defaults" msgstr "Pikselityöskentelyn oletukset" -#: ../build/bin/preferences_gen.h:5599 +#: ../build/bin/preferences_gen.h:5961 msgid "" "scene-referred workflow is based on linear modules and will auto-apply " "filmic or sigmoid, color calibration and exposure,\n" @@ -1424,11 +1520,11 @@ "valkotasapaino ja perinteisten moduulien putkijärjestys käyttää sitä " "oletuksena." -#: ../build/bin/preferences_gen.h:5621 +#: ../build/bin/preferences_gen.h:5982 msgid "auto-apply per camera basecurve presets" msgstr "Ota oletuksena käyttöön kamerakohtainen perussävykäyräesiasetus" -#: ../build/bin/preferences_gen.h:5635 +#: ../build/bin/preferences_gen.h:5995 msgid "" "use the per-camera basecurve by default instead of the generic manufacturer " "one if there is one available (needs a restart).\n" @@ -1445,11 +1541,11 @@ "Estääksesi automaattisen perussävykäyräesiasetuksen asettamisen " "\"Pikselityöskentelyn oletukset\" tulee asettaa \"Ei mitään\" valintaan." -#: ../build/bin/preferences_gen.h:5657 +#: ../build/bin/preferences_gen.h:6016 msgid "detect monochrome previews" msgstr "Tunnista mustavalkoiset esikatselukuvat" -#: ../build/bin/preferences_gen.h:5671 +#: ../build/bin/preferences_gen.h:6029 msgid "" "many monochrome images can be identified via EXIF and preview data. beware: " "this slows down imports and reading of EXIF data" @@ -1457,11 +1553,11 @@ "Useat mustavalkoiset kuvat voidaan tunnistaa EXIF- ja esikatselukuvien " "tiedoista. Huomioi: tämä hidastaa kuvien tuontia ja EXIF-tietojen lukua." -#: ../build/bin/preferences_gen.h:5693 +#: ../build/bin/preferences_gen.h:6050 msgid "show warning messages" msgstr "Näytä varoitukset" -#: ../build/bin/preferences_gen.h:5707 +#: ../build/bin/preferences_gen.h:6063 msgid "" "display messages in modules to warn beginner users when non-standard and " "possibly harmful settings are used in the pipeline.\n" @@ -1474,15 +1570,15 @@ "niissä tilanteissa missä tiedät mitä olet tekemässä. \n" "Tämä valinta piilottaa nämä viestit." -#: ../build/bin/preferences_gen.h:5717 -msgid "CPU / GPU / memory" -msgstr "CPU / GPU / Muisti" +#: ../build/bin/preferences_gen.h:6072 +msgid "CPU / memory" +msgstr "CPU / muisti" -#: ../build/bin/preferences_gen.h:5737 +#: ../build/bin/preferences_gen.h:6091 msgid "darktable resources" msgstr "Darktablen resurssit" -#: ../build/bin/preferences_gen.h:5786 +#: ../build/bin/preferences_gen.h:6106 #, no-c-format msgid "" "defines how much darktable may take from your system resources:\n" @@ -1512,11 +1608,11 @@ "odottamattomiin suorituskyvyn laskuihin.\n" " Tätä ei suositella jatkuvaan käyttöön!" -#: ../build/bin/preferences_gen.h:5808 +#: ../build/bin/preferences_gen.h:6127 msgid "prefer performance over quality" msgstr "Parempi suorituskyky laadun kustannuksella" -#: ../build/bin/preferences_gen.h:5822 +#: ../build/bin/preferences_gen.h:6140 msgid "" "if switched on, thumbnails and previews are rendered at lower quality but 4 " "times faster" @@ -1524,60 +1620,15 @@ "Jos valittu, esikatselukuvat esitetään heikommalla laadulla. Suorituskyky on " "tällöin noin 4 kertaa nopeampi." -#: ../build/bin/preferences_gen.h:5844 -msgid "enable disk backend for thumbnail cache" -msgstr "" -"Käytä välimuistin taustapalvelua esikatselukuvien levylle tallennukseen" - -#: ../build/bin/preferences_gen.h:5858 -msgid "" -"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want. light table " -"performance will be increased greatly when browsing a lot.\n" -"to generate all thumbnails of your entire collection offline, run 'darktable-" -"generate-cache'." -msgstr "" -"Jos käytössä, esikatselukuvat tallennetaan kovalevylle (.cache/darktable/), " -"kun ne poistetaan RAM-välimuistista.\n" -"Tämä saattaa viedä paljon kovalevytilaa (useita gigatavuja 20 000 " -"valokuvalle). Kovalevylle tallennettuja esikatselukuvia\n" -"ei poisteta koskaan automaattisesti. Niiden käsin poistaminen on kuitenkin " -"turvallista. Valopöydän suorituskyky on suurilla\n" -"kuvamäärillä merkittävästi parempi tätä asetusta käytettäessä. Jos haluat " -"luoda kaikille kuvillesi esikatselukuvat,\n" -"aja 'darktable-generate-cache', kun darktable on suljettuna." - -#: ../build/bin/preferences_gen.h:5880 -msgid "enable disk backend for full preview cache" -msgstr "Käytä kovalevyä esikatselukuvien välimuistina" - -#: ../build/bin/preferences_gen.h:5894 -msgid "" -"if enabled, write full preview to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want.\n" -"light table performance will be increased greatly when zooming image in full " -"preview mode." -msgstr "" -"Jos käytössä, täyden tarkkuuden esikatselukuvat tallennetaan kovalevylle (." -"cache/darktable/), kun ne poistetaan RAM-välimuistista.\n" -"Tämä saattaa viedä paljon kovalevytilaa (useita gigatavuja 20 000 " -"valokuvalle). Kovalevylle tallennettuja esikatselukuviea ei poisteta koskaan " -"automaattisesti.\n" -"Niiden käsin poistaminen on kuitenkin turvallista.\n" -"Valopöydän suorituskyky esikatselukuville on suurilla kuvamäärillä " -"merkittävästi parempi tätä asetusta käytettäessä." +#: ../build/bin/preferences_gen.h:6149 +msgid "OpenCL" +msgstr "OpenCL" -#: ../build/bin/preferences_gen.h:5916 +#: ../build/bin/preferences_gen.h:6168 msgid "activate OpenCL support" msgstr "Käytä OpenCL:ää" -#: ../build/bin/preferences_gen.h:5930 +#: ../build/bin/preferences_gen.h:6181 msgid "" "if found, use OpenCL runtime on your system to speed up processing.\n" "can be switched on and off at any time." @@ -1585,23 +1636,32 @@ "Jos saatavissa, OpenCL:ää käytetään käsittelyn suorituskyvyn parantamiseen.\n" "Asetus voidaan ottaa käyttöön tai pois päältä milloin tahansa." -#: ../build/bin/preferences_gen.h:5931 ../build/bin/preferences_gen.h:6002 -#: ../build/bin/preferences_gen.h:6078 ../build/bin/preferences_gen.h:7397 +#: ../build/bin/preferences_gen.h:6185 ../build/bin/preferences_gen.h:6230 +#: ../build/bin/preferences_gen.h:6274 ../build/bin/preferences_gen.h:6325 +#: ../build/bin/preferences_gen.h:6369 ../build/bin/preferences_gen.h:6413 +#: ../build/bin/preferences_gen.h:6457 ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6545 ../build/bin/preferences_gen.h:7700 msgid "not available" msgstr "Ei saatavilla" -#: ../build/bin/preferences_gen.h:5934 ../build/bin/preferences_gen.h:5938 -#: ../build/bin/preferences_gen.h:6005 ../build/bin/preferences_gen.h:6009 -#: ../build/bin/preferences_gen.h:6081 ../build/bin/preferences_gen.h:6085 -#: ../build/bin/preferences_gen.h:7400 ../build/bin/preferences_gen.h:7404 +#: ../build/bin/preferences_gen.h:6187 ../build/bin/preferences_gen.h:6188 +#: ../build/bin/preferences_gen.h:6232 ../build/bin/preferences_gen.h:6233 +#: ../build/bin/preferences_gen.h:6276 ../build/bin/preferences_gen.h:6277 +#: ../build/bin/preferences_gen.h:6327 ../build/bin/preferences_gen.h:6328 +#: ../build/bin/preferences_gen.h:6371 ../build/bin/preferences_gen.h:6372 +#: ../build/bin/preferences_gen.h:6415 ../build/bin/preferences_gen.h:6416 +#: ../build/bin/preferences_gen.h:6459 ../build/bin/preferences_gen.h:6460 +#: ../build/bin/preferences_gen.h:6503 ../build/bin/preferences_gen.h:6504 +#: ../build/bin/preferences_gen.h:6547 ../build/bin/preferences_gen.h:6548 +#: ../build/bin/preferences_gen.h:7702 ../build/bin/preferences_gen.h:7703 msgid "not available on this system" msgstr "Ei saatavilla tässä järjestelmässä" -#: ../build/bin/preferences_gen.h:5958 +#: ../build/bin/preferences_gen.h:6212 msgid "OpenCL scheduling profile" msgstr "OpenCL:n ajoitusprofiili" -#: ../build/bin/preferences_gen.h:6001 +#: ../build/bin/preferences_gen.h:6226 msgid "" "defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled " "systems:\n" @@ -1620,53 +1680,127 @@ " - 'Erittäin nopea näytönohjain': molemmat pikselinkäsittelyt tehdään " "peräkkäin näytönohjaimella." -#: ../build/bin/preferences_gen.h:6029 -msgid "tune OpenCL performance" -msgstr "Säädä OpenCL suorituskykyä" +#: ../build/bin/preferences_gen.h:6257 +msgid "use all device memory" +msgstr "Käytä kaikki laitteen muisti" -#: ../build/bin/preferences_gen.h:6077 +#: ../build/bin/preferences_gen.h:6270 msgid "" -"allows runtime tuning of OpenCL devices:\n" -" - 'memory size': uses a fixed headroom (400MB as default),\n" -" - 'memory transfer': tries a faster memory access mode (pinned memory) used " -"for tiling." -msgstr "" -"Sallii ajonaikaisen OpenCL laitteiden hienosäädön:\n" -" - 'Muistin koko': käyttää kiinteää vapaata tilaa (oletuksena 400MT).\n" -" - 'Muistin siirto': yrittää nopeampaa muistin käsittelyn tilaa (Kiinnitetty " -"muisti) tiiletykseen." +"if enabled darktable will use all device memory except a safety margin " +"(headroom, default is 600MB)" +msgstr "" +"Jos käytössä, Darktable käyttää kaiken laitteen muistin paitsi " +"turvamarginaalin (vapaa tila, oletus on 600MT)." + +#: ../build/bin/preferences_gen.h:6289 +msgid "OpenCL drivers" +msgstr "OpenCL ajurit" + +#: ../build/bin/preferences_gen.h:6308 +msgid "Intel GPU" +msgstr "Intel GPU" + +#: ../build/bin/preferences_gen.h:6321 +msgid "Intel(R) OpenCL Graphics for all supported platforms (vendor provided)" +msgstr "" +"Intel(R) OpenCL grafiikka kaikille tuetuille alustoille (valmistajan " +"tuottama)." + +#: ../build/bin/preferences_gen.h:6352 +msgid "Nvidia CUDA" +msgstr "Nvidia CUDA" + +#: ../build/bin/preferences_gen.h:6365 +msgid "Nvidia CUDA based OpenCL (vendor provided)" +msgstr "Nvidia CUDA pohjainen OpenCL (valmistajan tuottama)." + +#: ../build/bin/preferences_gen.h:6396 +msgid "AMD ROCm" +msgstr "AMD ROCm" + +#: ../build/bin/preferences_gen.h:6409 +msgid "AMD Accelerated Parallel Processing (vendor provided)" +msgstr "AMD kiihdytetty rinnakkaisprosessointi (valmistajan tuottama)." + +#: ../build/bin/preferences_gen.h:6440 +msgid "RustiCL" +msgstr "RustiCL" + +#: ../build/bin/preferences_gen.h:6453 +msgid "" +"RustiCL Mesa OpenCL, still unstable. if you want to use this, you should " +"disable the vendor driver" +msgstr "" +"RustiCL Mesa OpenCL, vielä epävakaa. Jos haluat käyttää tätä, sinun tulee " +"poistaa valmistajan ajuri käytöstä." + +#: ../build/bin/preferences_gen.h:6484 +msgid "Apple" +msgstr "Apple" -#: ../build/bin/preferences_gen.h:6143 +#: ../build/bin/preferences_gen.h:6497 +msgid "Apple OpenCL (vendor provided)" +msgstr "Apple OpenCL (valmistajan tuottama)." + +#: ../build/bin/preferences_gen.h:6528 +msgid "Microsoft OpenCLOn12" +msgstr "Microsoft OpenCLOn12" + +#: ../build/bin/preferences_gen.h:6541 +msgid "" +"Microsoft OpenCLOn12, only use this if the vendor provided driver does not " +"work or there is none provided." +msgstr "" +"Microsoft OpenCLOn12, käytä tätä vain silloin, kun valmistajan tuottama " +"ajuri ei toimi tai sitä ei ole saatavilla." + +#: ../build/bin/preferences_gen.h:6572 +msgid "other platforms" +msgstr "Muut alustat" + +#: ../build/bin/preferences_gen.h:6585 +msgid "" +"if set, all unspecified platforms are accepted. only do this if no vendor " +"driver is available" +msgstr "" +"Jos asetettu, kaikki määrittämättömät alustat hyväksytään. Tee tämä vain " +"silloin, kun valmistajan ajuria ei ole saatavilla." + +#: ../build/bin/preferences_gen.h:6617 +msgid "security" +msgstr "Tietoturva" + +#: ../build/bin/preferences_gen.h:6638 msgid "ask before removing images from the library" msgstr "Varmista kuvien poisto kirjastosta" -#: ../build/bin/preferences_gen.h:6157 +#: ../build/bin/preferences_gen.h:6651 msgid "always ask the user before removing image information from the library" msgstr "Käyttäjältä kysytään aina varmistus ennen kuvan poistoa kirjastosta." -#: ../build/bin/preferences_gen.h:6179 +#: ../build/bin/preferences_gen.h:6672 msgid "ask before deleting images from disk" msgstr "Varmista kuvien poisto levyltä" -#: ../build/bin/preferences_gen.h:6193 +#: ../build/bin/preferences_gen.h:6685 msgid "always ask the user before any image file is deleted" msgstr "Käyttäjältä kysytään aina varmistus ennen kuvan poistoa." -#: ../build/bin/preferences_gen.h:6215 +#: ../build/bin/preferences_gen.h:6706 msgid "ask before discarding history stack" msgstr "Varmista kuvan muokkaushistorian tuhoaminen" -#: ../build/bin/preferences_gen.h:6229 +#: ../build/bin/preferences_gen.h:6719 msgid "always ask the user before history stack is discarded on any image" msgstr "" "Käyttäjältä kysytään aina varmistus ennen kuvan muokkaushistorian " "poistamista." -#: ../build/bin/preferences_gen.h:6251 +#: ../build/bin/preferences_gen.h:6740 msgid "try to use trash when deleting images" msgstr "Siirrä poistettavat kuvat roskakoriin" -#: ../build/bin/preferences_gen.h:6265 +#: ../build/bin/preferences_gen.h:6753 msgid "" "send files to trash instead of permanently deleting files on system that " "supports it" @@ -1674,27 +1808,27 @@ "Siirrä poistettavat kuvat roskakoriin niiden pysyvän tuhoamisen sijaan. " "Tuettu käyttöjärjestelmissä joissa on tuki roskakorille." -#: ../build/bin/preferences_gen.h:6287 +#: ../build/bin/preferences_gen.h:6774 msgid "ask before moving images from film roll folder" msgstr "Varmista kuvien siirto uuteen filmirullan hakemistoon" -#: ../build/bin/preferences_gen.h:6301 +#: ../build/bin/preferences_gen.h:6787 msgid "always ask the user before any image file is moved." msgstr "Käyttäjältä kysytään aina varmistus ennen kuvan siirtoa." -#: ../build/bin/preferences_gen.h:6323 +#: ../build/bin/preferences_gen.h:6808 msgid "ask before copying images to new film roll folder" msgstr "Varmista kuvien kopiointi uuteen filmirullan hakemistoon" -#: ../build/bin/preferences_gen.h:6337 +#: ../build/bin/preferences_gen.h:6821 msgid "always ask the user before any image file is copied." msgstr "Käyttäjältä kysytään aina varmistus ennen kuvan kopiointia." -#: ../build/bin/preferences_gen.h:6359 +#: ../build/bin/preferences_gen.h:6842 msgid "ask before removing empty folders" msgstr "Varmista tyhjien hakemistojen poisto" -#: ../build/bin/preferences_gen.h:6373 +#: ../build/bin/preferences_gen.h:6855 msgid "" "always ask the user before removing any empty folder. this can happen after " "moving or deleting images." @@ -1702,53 +1836,53 @@ "Käyttäjältä kysytään aina varmistus ennen tyhjän hakemiston poistoa. Tämä " "saattaa tapahtua kuvien siirron tai poiston jälkeen." -#: ../build/bin/preferences_gen.h:6395 +#: ../build/bin/preferences_gen.h:6876 msgid "ask before deleting a tag" msgstr "Varmista tunnisteen poisto" -#: ../build/bin/preferences_gen.h:6430 +#: ../build/bin/preferences_gen.h:6909 msgid "ask before deleting a style" msgstr "Varmista tyylin poisto" -#: ../build/bin/preferences_gen.h:6465 +#: ../build/bin/preferences_gen.h:6942 msgid "ask before deleting a preset" msgstr "Varmista esiasetuksen poisto" -#: ../build/bin/preferences_gen.h:6479 +#: ../build/bin/preferences_gen.h:6955 msgid "will ask for confirmation before deleting or overwriting a preset" msgstr "" "Käyttäjältä kysytään varmistus ennen esiasetuksen poistoa tai ylikirjoitusta." -#: ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6976 msgid "ask before exporting in overwrite mode" msgstr "Varmista ennen ylikirjoitustilassa vientiä" -#: ../build/bin/preferences_gen.h:6515 +#: ../build/bin/preferences_gen.h:6989 msgid "will ask for confirmation before exporting files in overwrite mode" msgstr "" "Käyttäjältä kysytään varmistus ennen kuvien vientiä ylikirjoitustilassa." #. italic -#: ../build/bin/preferences_gen.h:6525 ../src/libs/tools/viewswitcher.c:148 +#: ../build/bin/preferences_gen.h:6998 ../src/libs/tools/viewswitcher.c:148 msgid "other" msgstr "Muut" -#: ../build/bin/preferences_gen.h:6545 +#: ../build/bin/preferences_gen.h:7017 msgid "password storage backend to use" msgstr "Salasanojen tallennukseen käytettävä taustapalvelu" -#: ../build/bin/preferences_gen.h:6595 +#: ../build/bin/preferences_gen.h:7035 msgid "" "the storage backend for password storage: auto, none, libsecret, kwallet" msgstr "" "Salasanojen tallennukseen käytettävä taustapalvelu: automaattinen, ei " "mitään, libsecret, kwallet." -#: ../build/bin/preferences_gen.h:6617 +#: ../build/bin/preferences_gen.h:7056 msgid "executable for playing audio files" msgstr "Äänitiedostojen toisto-ohjelma" -#: ../build/bin/preferences_gen.h:6635 +#: ../build/bin/preferences_gen.h:7074 msgid "" "this external program is used to play audio files some cameras record to " "keep notes for images" @@ -1756,15 +1890,19 @@ "Ohjelma jota käytetään joihinkin kuvatiedostoihin lisättyjen " "ääniaputiedostojen toistamiseen." -#: ../build/bin/preferences_gen.h:6675 ../src/control/crawler.c:724 +#: ../build/bin/preferences_gen.h:7106 +msgid "storage" +msgstr "Tallennus" + +#: ../build/bin/preferences_gen.h:7108 ../src/control/crawler.c:717 msgid "database" msgstr "Tietokanta" -#: ../build/bin/preferences_gen.h:6695 +#: ../build/bin/preferences_gen.h:7127 msgid "create database snapshot" msgstr "Luo tietokannan vedos" -#: ../build/bin/preferences_gen.h:6748 +#: ../build/bin/preferences_gen.h:7141 msgid "" "database snapshots are created right before closing darktable. options allow " "you to choose how often to make snapshots:\n" @@ -1788,11 +1926,11 @@ "24 tuntia.\n" " - 'Suljettaessa': luodaan vedos aina, kun Darktable suljetaan." -#: ../build/bin/preferences_gen.h:6770 +#: ../build/bin/preferences_gen.h:7162 msgid "how many snapshots to keep" msgstr "Kuinka monta vedosta säilytetään" -#: ../build/bin/preferences_gen.h:6793 +#: ../build/bin/preferences_gen.h:7185 msgid "" "after successfully creating snapshot, how many older snapshots to keep " "(excluding mandatory version update ones). enter -1 to keep all snapshots\n" @@ -1805,37 +1943,38 @@ "Ota huomioon, että vedokset vievät jonkin verran levytilaa ja tarvitset " "ainoastaan viimeisimmän tietojen onnistuneeseen palautukseen." -#: ../build/bin/preferences_gen.h:6803 ../src/control/crawler.c:723 -msgid "XMP" -msgstr "XMP" +#: ../build/bin/preferences_gen.h:7194 ../src/libs/copy_history.c:149 +msgid "XMP sidecar files" +msgstr "XMP-aputiedostot" -#: ../build/bin/preferences_gen.h:6823 -msgid "write sidecar file for each image" -msgstr "Tallenna aputiedosto jokaiselle kuvalle" +#: ../build/bin/preferences_gen.h:7213 +msgid "create XMP files" +msgstr "Luo XMP-aputiedostot" -#: ../build/bin/preferences_gen.h:6866 +#: ../build/bin/preferences_gen.h:7227 msgid "" -"the sidecar files hold information about all your development steps to allow " +"XMP sidecar files hold information about all your development steps to allow " "flawless re-importing of image files.\n" "\n" -"depending on the selected mode sidecar files will be written:\n" +"depending on the selected mode sidecar files will be created:\n" " - 'never'\n" " - 'on import': immediately after importing the image\n" -" - 'after edit': after any user change on the image." +" - 'after edit': after any user change on the image or adding tags." msgstr "" -"Aputiedostot sisältävät tietoa kaikista muokkauksen vaiheista mahdollistaen " -"kuvatiedostojen virheettömän uudelleen tuonnin.\n" +"XMP aputiedostot sisältävät tietoa kaikista muokkauksen vaiheista " +"mahdollistaen kuvatiedostojen virheettömän uudelleen tuonnin.\n" "\n" -"Riippuen valitusta tavasta, aputiedostot tallennetaan:\n" +"Riippuen valitusta tavasta, aputiedostot luodaan:\n" " - 'Ei koskaan'\n" " - 'Tuonnin yhteydessä': välittömästi kuvan tuonnin jälkeen.\n" -" - 'Muokkauksen jälkeen': jokaisen kuvaan tehdyn muokkauksen jälkeen." +" - 'Muokkauksen jälkeen': jokaisen kuvaan tehdyn muokkauksen tai lisätyn " +"tunnisteen jälkeen." -#: ../build/bin/preferences_gen.h:6888 +#: ../build/bin/preferences_gen.h:7248 msgid "store XMP tags in compressed format" msgstr "Tallenna XMP-tunnisteet pakatussa muodossa" -#: ../build/bin/preferences_gen.h:6931 +#: ../build/bin/preferences_gen.h:7262 msgid "" "entries in XMP tags can get rather large and may exceed the available space " "to store the history stack in output files.\n" @@ -1846,11 +1985,26 @@ "kuvissa.\n" "Tämä asetus ottaa käyttöön XMP-tunnisteiden pakkauksen ja tilan säästön." -#: ../build/bin/preferences_gen.h:6953 +#: ../build/bin/preferences_gen.h:7283 +msgid "auto-save interval" +msgstr "Automaattisen tallennuksen aika" + +#: ../build/bin/preferences_gen.h:7306 +msgid "" +"automatically save history while developing using the given interval (in " +"seconds); set to zero to disable auto-saving. auto-saving might be disabled " +"on slow drives." +msgstr "" +"Tallenna historia automaattisesti kuvien käsittelyn aikana annetun aikavälin " +"mukaisesti (sekunneissa); Jos asetetaan nollaan, automaattinen tallennus ei " +"ole käytössä. Automaattinen tallennus saatetaan poistaa käytöstä hitailla " +"levyillä." + +#: ../build/bin/preferences_gen.h:7327 msgid "look for updated XMP files on startup" msgstr "Etsi päivittyneet XMP-aputiedostot käynnistäessä" -#: ../build/bin/preferences_gen.h:6967 +#: ../build/bin/preferences_gen.h:7340 msgid "" "check file modification times of all XMP files on startup to check if any " "got updated in the meantime" @@ -1858,15 +2012,19 @@ "Tarkista kaikkien XMP-aputiedostojen muokkausajat käynnistyksen yhteydessä " "muutosten varalta." -#: ../build/bin/preferences_gen.h:7007 +#: ../build/bin/preferences_gen.h:7372 +msgid "miscellaneous" +msgstr "Sekalaiset" + +#: ../build/bin/preferences_gen.h:7374 msgid "interface" msgstr "Käyttöliittymä" -#: ../build/bin/preferences_gen.h:7027 +#: ../build/bin/preferences_gen.h:7393 msgid "load default shortcuts at startup" msgstr "Lataa oletuspikavalinnat käynnistyksessä" -#: ../build/bin/preferences_gen.h:7041 +#: ../build/bin/preferences_gen.h:7406 msgid "" "load default shortcuts before user settings. switch off to prevent deleted " "defaults returning" @@ -1874,29 +2032,29 @@ "Lataa oletuspikavalinnat ennen käyttäjän asetuksia. Kytke pois estääksesi " "poistettujen oletusten palaaminen." -#: ../build/bin/preferences_gen.h:7063 +#: ../build/bin/preferences_gen.h:7427 msgid "scale slider step with min/max" msgstr "Muuta liukusäätimien askelta min/max arvoilla" -#: ../build/bin/preferences_gen.h:7077 +#: ../build/bin/preferences_gen.h:7440 msgid "vary slider step size with min/max range" msgstr "Muuttaa liukusäätimien askeleen kokoa min/max alueella." -#: ../build/bin/preferences_gen.h:7099 +#: ../build/bin/preferences_gen.h:7461 msgid "sort built-in presets first" msgstr "Lajittele sisäänrakennetut esiasetukset ensin" -#: ../build/bin/preferences_gen.h:7113 +#: ../build/bin/preferences_gen.h:7474 msgid "" "whether to show built-in presets first before user's presets in presets menu." msgstr "" "Näytetään sisäänrakennetut esiasetukset ennen käyttäjän luomia esiasetuksia." -#: ../build/bin/preferences_gen.h:7135 +#: ../build/bin/preferences_gen.h:7495 msgid "mouse wheel scrolls modules side panel by default" msgstr "Hiiren rulla vierittää moduulien sivupaneelia" -#: ../build/bin/preferences_gen.h:7149 +#: ../build/bin/preferences_gen.h:7508 msgid "" "when enabled, use mouse wheel to scroll modules side panel. use ctrl+alt to " "use mouse wheel for data entry. when disabled, this behavior is reversed" @@ -1905,11 +2063,11 @@ "CTRL+ALT ja hiiren rulla muuttaa moduulin asetuksia. Ei valittuna, toimii " "päinvastoin." -#: ../build/bin/preferences_gen.h:7171 +#: ../build/bin/preferences_gen.h:7529 msgid "always show panels' scrollbars" msgstr "Näytä aina paneelin vierityspalkki" -#: ../build/bin/preferences_gen.h:7185 +#: ../build/bin/preferences_gen.h:7542 msgid "" "defines whether the panel scrollbars should be always visible or activated " "only depending on the content. (need a restart)" @@ -1917,11 +2075,11 @@ "Määrittää näytetäänkö paneelin vierityspalkki aina vai ainoastaan sisällöstä " "riippuen. (Vaatii uudelleenkäynnistyksen)." -#: ../build/bin/preferences_gen.h:7207 +#: ../build/bin/preferences_gen.h:7563 msgid "duration of the UI transitions in ms" msgstr "Köyttöliittymän siirtymien kesto millisekunneissa" -#: ../build/bin/preferences_gen.h:7231 +#: ../build/bin/preferences_gen.h:7587 msgid "" "how long the transitions take (in ms) for expanding or collapsing modules " "and other UI elements" @@ -1929,21 +2087,21 @@ "Siirtymän kesto (millisekunneissa) laajennettaessa tai pienennettäessä " "moduuleita ja muita käyttöliittymän elementtejä." -#: ../build/bin/preferences_gen.h:7253 +#: ../build/bin/preferences_gen.h:7608 msgid "position of the scopes module" msgstr "Skaalat-moduulin sijainti" -#: ../build/bin/preferences_gen.h:7291 +#: ../build/bin/preferences_gen.h:7622 msgid "position the scopes at the top-left or top-right of the screen" msgstr "" "Skaalojen (mm. histogrammi) sijainti näytön oikeassa tai vasemmassa " "yläkulmassa." -#: ../build/bin/preferences_gen.h:7313 +#: ../build/bin/preferences_gen.h:7643 msgid "method to use for getting the display profile" msgstr "Näyttöprofiilin hakutapa" -#: ../build/bin/preferences_gen.h:7356 +#: ../build/bin/preferences_gen.h:7657 msgid "" "this option allows to force a specific means of getting the current display " "profile.\n" @@ -1953,11 +2111,11 @@ "asetukseen.\n" "Tästä voi olla hyötyä, jos joku vaihtoehtoinen tapa ei toimi oikein." -#: ../build/bin/preferences_gen.h:7378 +#: ../build/bin/preferences_gen.h:7678 msgid "order or exclude MIDI devices" msgstr "Järjestä tai rajaa ulos MIDI-laitteet" -#: ../build/bin/preferences_gen.h:7396 +#: ../build/bin/preferences_gen.h:7696 msgid "" "comma-separated list of device name fragments that if matched load MIDI " "device at id given by location in list\n" @@ -1970,72 +2128,70 @@ "ja nappien määrä kuten 'BeatStep:63:16'." #. tags -#: ../build/bin/preferences_gen.h:7412 ../src/develop/lightroom.c:1516 -#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:333 -#: ../src/libs/image.c:558 ../src/libs/metadata_view.c:162 +#: ../build/bin/preferences_gen.h:7715 ../src/develop/lightroom.c:1573 +#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:322 +#: ../src/libs/image.c:614 ../src/libs/metadata_view.c:166 msgid "tags" msgstr "Tunnisteet" -#: ../build/bin/preferences_gen.h:7432 +#: ../build/bin/preferences_gen.h:7734 msgid "omit hierarchy in simple tag lists" msgstr "Jätä hierarkia huomiotta yksinkertaisessa tunnisteluettelossa" -#: ../build/bin/preferences_gen.h:7446 +#: ../build/bin/preferences_gen.h:7747 msgid "" -"when creating XMP file the hierarchical tags are also added as a simple " -"list\n" +"when creating an XMP sidecar file the hierarchical tags are also added as a " +"simple list\n" "of non-hierarchical ones to make them visible to some other programs.\n" "when this option is checked darktable will only include their last part\n" "and ignore the rest. so 'foo|bar|baz' will only add 'baz'." msgstr "" -"XMP-tiedostoa luotaessa hierarkiset tunnisteet lisätään myös yksittäisinä,\n" +"XMP-aputiedostoa luotaessa hierarkiset tunnisteet lisätään myös " +"yksittäisinä,\n" "jotta muut ohjelmat tunnistaisivat ne. Kun tämä asetus on valittu,\n" "Darktable lisää ainoastaan viimeisen osan hierarkkisista tunnisteista ja\n" "jättää muut osat huomioimatta. Esimerkiksi 'foo|bar|baz' lisää ainoastaan " "'baz'-tunnisteen." -#: ../build/bin/preferences_gen.h:7456 +#: ../build/bin/preferences_gen.h:7756 msgid "shortcuts with multiple instances" msgstr "Useiden instanssien pikavalinnat" -#: ../build/bin/preferences_gen.h:7461 -msgid "" -"where multiple module instances are present, these preferences control rules " -"that are applied (in order) to decide which module instance shortcuts will " -"be applied to" -msgstr "" -"Kun moduulista on useita instansseja käytössä, niin näillä säännöillä " -"ohjataan mihin moduulin instanssiin pikavalinnat vaikuttavat " -"(järjestyksessä)." - -#: ../build/bin/preferences_gen.h:7477 +#: ../build/bin/preferences_gen.h:7775 msgid "prefer focused instance" msgstr "Suosi kohdistettuja instansseja" -#: ../build/bin/preferences_gen.h:7491 +#: ../build/bin/preferences_gen.h:7788 msgid "" -"if an instance of the module has focus, apply shortcut to that instance\n" +"where multiple instances of a module are present, apply shortcuts to the " +"instance that has focus\n" +"if none are focused, the preferences below control rules that are followed " +"(in order) to decide which module instance shortcuts will be applied to.\n" "note: blending shortcuts always apply to the focused instance" msgstr "" -"Jos kohdistus on moduulin instanssissa, aseta pikavalinta kyseiseen " -"instanssiin.\n" -"Huomioi: Yhdistämisen pikavalinnat asetetaan aina kohdistettuun instanssiin." +"Kun moduulista on useita instansseja käytössä, aseta pikavalinnat " +"instanssiin mikä on valittuna.\n" +"Jos mikään instanssi ei ole valittuna, niin ohjaussääntöjen alla olevia " +"sääntöjä noudatetaan (järjestyksessä) sen päättämiseen mihin instanssiin " +"pikavalinta vaikuttaa.\n" +"Huomioi: Yhdistämisen pikavalinnat vaikuttavat aina valittuna olevaan " +"instanssiin." -#: ../build/bin/preferences_gen.h:7513 +#: ../build/bin/preferences_gen.h:7809 msgid "prefer expanded instances" msgstr "Suosi laajennettuja instansseja" -#: ../build/bin/preferences_gen.h:7527 +#: ../build/bin/preferences_gen.h:7822 msgid "if instances of the module are expanded, ignore collapsed instances" msgstr "" "Jos moduulien instanssit on laajennettu, älä huomioi pienennettyjä " "instansseja." -#: ../build/bin/preferences_gen.h:7549 +#: ../build/bin/preferences_gen.h:7843 msgid "prefer enabled instances" msgstr "Suosi käytössä olevia instansseja" -#: ../build/bin/preferences_gen.h:7563 +#: ../build/bin/preferences_gen.h:7856 msgid "" "after applying the above rule, if instances of the module are active, ignore " "inactive instances" @@ -2043,11 +2199,11 @@ "Edellä aktivoitujen sääntöjen jälkeen, jos moduulin instanssit ovat " "aktiivisia, älä huomioi käytöstä poistettuja instansseja." -#: ../build/bin/preferences_gen.h:7585 +#: ../build/bin/preferences_gen.h:7877 msgid "prefer unmasked instances" msgstr "Suosi maskittomia instansseja" -#: ../build/bin/preferences_gen.h:7599 +#: ../build/bin/preferences_gen.h:7890 msgid "" "after applying the above rules, if instances of the module are unmasked, " "ignore masked instances" @@ -2055,11 +2211,11 @@ "Edellä aktivoitujen sääntöjen jälkeen, jos moduulin instansseilla ei ole " "maskeja, älä huomioi maskillisia instansseja." -#: ../build/bin/preferences_gen.h:7621 +#: ../build/bin/preferences_gen.h:7911 msgid "selection order" msgstr "Valintajärjestys" -#: ../build/bin/preferences_gen.h:7659 +#: ../build/bin/preferences_gen.h:7925 msgid "" "after applying the above rules, apply the shortcut based on its position in " "the pixelpipe" @@ -2067,11 +2223,11 @@ "Edellä aktivoitujen sääntöjen jälkeen, käytä oikotietä perustuen sen " "sijaintiin käsittelyjonossa." -#: ../build/bin/preferences_gen.h:7681 +#: ../build/bin/preferences_gen.h:7946 msgid "allow visual assignment to specific instances" msgstr "Salli visuaalinen asettamien tietyille instansseille" -#: ../build/bin/preferences_gen.h:7695 +#: ../build/bin/preferences_gen.h:7959 msgid "" "when multiple instances are present on an image this allows shortcuts to be " "visually assigned to those specific instances\n" @@ -2081,81 +2237,45 @@ "asettamisen valittuihin instansseihin.\n" "Muussa tapauksessa pikavalinnat vaikuttavat ensisijaiseen instanssiin." -#: ../build/bin/preferences_gen.h:7705 +#: ../build/bin/preferences_gen.h:7968 msgid "map / geolocalization view" msgstr "Kartta / Paikkatietojen näkymä" -#: ../build/bin/preferences_gen.h:7725 +#: ../build/bin/preferences_gen.h:7987 msgid "pretty print the image location" msgstr "Näytä kuvien sijaintitiedot luettavammassa muodossa" -#: ../build/bin/preferences_gen.h:7739 +#: ../build/bin/preferences_gen.h:8000 msgid "" "show a more readable representation of the location in the image information " "module" msgstr "" "Näytä kuvien sijaintitiedot luettavammassa muodossa kuvan tiedot -moduulissa." -#: ../build/bin/preferences_gen.h:7749 +#: ../build/bin/preferences_gen.h:8009 msgid "slideshow view" msgstr "Kuvasarja" -#: ../build/bin/preferences_gen.h:7769 +#: ../build/bin/preferences_gen.h:8028 msgid "waiting time between each picture in slideshow" msgstr "Kuvien vaihdon odotusaika kuvasarjassa" -#: ../build/bin/preferences_gen.h:7831 -msgid "session options" -msgstr "Istunnon asetukset" - -#: ../build/bin/preferences_gen.h:7851 -msgid "base directory naming pattern" -msgstr "Perushakemiston nimeämiskäytäntö" - -#: ../build/bin/preferences_gen.h:7869 ../build/bin/preferences_gen.h:7909 -msgid "part of full import path for an import session" -msgstr "Täyden hakemistopolun osa kuvatuonnin istunnoissa." - -#: ../build/bin/preferences_gen.h:7891 -msgid "sub directory naming pattern" -msgstr "Alihakemistojen nimeämiskäytäntö" - -#: ../build/bin/preferences_gen.h:7931 -msgid "keep original filename" -msgstr "Säilytä alkuperäinen tiedostonimi" - -#: ../build/bin/preferences_gen.h:7945 -msgid "" -"keep original filename instead of a pattern while importing from camera or " -"card" -msgstr "" -"Säilytä alkuperäinen tiedostonimi, kun kuvia siirretään kamerasta tai " -"kortilta." - -#: ../build/bin/preferences_gen.h:7967 -msgid "file naming pattern" -msgstr "Tiedostojen nimeämiskäytäntö" - -#: ../build/bin/preferences_gen.h:7985 -msgid "file naming pattern used for a import session" -msgstr "Tuonnissa käytettävä tiedostojen nimeämiskäytäntö." - -#: ../build/bin/preferences_gen.h:8022 +#: ../build/bin/preferences_gen.h:8088 msgid "do not set the 'uncategorized' entry for tags" msgstr "Älä aseta 'Luokittelematon' syötettä tunnisteille." -#: ../build/bin/preferences_gen.h:8036 +#: ../build/bin/preferences_gen.h:8101 msgid "" "do not set the 'uncategorized' entry for tags which do not have children" msgstr "" "Älä aseta 'Luokittelematon' syötettä tunnisteille, joilla ei ole " "alitunnisteita." -#: ../build/bin/preferences_gen.h:8058 +#: ../build/bin/preferences_gen.h:8122 msgid "tags case sensitivity" msgstr "Tunnisteen kirjainkoon merkitys" -#: ../build/bin/preferences_gen.h:8096 +#: ../build/bin/preferences_gen.h:8136 msgid "" "tags case sensitivity. without the Sqlite ICU extension, insensitivity works " "only for the 26 latin letters" @@ -2163,47 +2283,52 @@ "Tunnisteen kirjainkoon merkitys. Ilman SQLITE-tietokannan ICU-laajennosta, " "kirjainkoon merkitys toimii ainoastaan 26 Latin-merkistön kirjaimelle." -#: ../build/bin/preferences_gen.h:8118 ../build/bin/preferences_gen.h:8358 +#: ../build/bin/preferences_gen.h:8157 ../build/bin/preferences_gen.h:8368 msgid "number of collections to be stored" msgstr "Tallennettavien kokoelmien määrä" -#: ../build/bin/preferences_gen.h:8142 ../build/bin/preferences_gen.h:8382 +#: ../build/bin/preferences_gen.h:8181 ../build/bin/preferences_gen.h:8392 msgid "the number of recent collections to store and show in this list" msgstr "Listassa näytettävien ja tallennettavien edellisten kokoelmien määrä." -#: ../build/bin/preferences_gen.h:8164 +#: ../build/bin/preferences_gen.h:8202 msgid "hide the history button and show a specific module instead" msgstr "Piilota Historia-nappi ja näytä ainoastaan tietty moduuli sen sijaan" -#: ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8215 msgid "hide the history button and show the recent collections module instead" msgstr "" "Piilota Historia-nappi ja näytä edelliset kokokoelmat-moduuli sen sijaan" -#: ../build/bin/preferences_gen.h:8200 +#: ../build/bin/preferences_gen.h:8236 msgid "number of folder levels to show in lists" msgstr "Listassa näytettävien hakemistotasojen määrä" -#: ../build/bin/preferences_gen.h:8224 +#: ../build/bin/preferences_gen.h:8260 msgid "" "the number of folder levels to show in film roll names, starting from the " "right" msgstr "" "Filmirullien nimissä näytettävä hakemistotasojen määrä oikealta lähtien." -#: ../build/bin/preferences_gen.h:8246 +#: ../build/bin/preferences_gen.h:8281 msgid "sort film rolls by" msgstr "Filmirullien lajittelutapa" -#: ../build/bin/preferences_gen.h:8284 +#: ../build/bin/preferences_gen.h:8292 +msgctxt "preferences" +msgid "chronological" +msgstr "Kronologinen" + +#: ../build/bin/preferences_gen.h:8295 msgid "sets the collections-list order for film rolls" msgstr "Asettaa kokoelmien esitysjärjestyksen filmirullille." -#: ../build/bin/preferences_gen.h:8306 +#: ../build/bin/preferences_gen.h:8316 msgid "sort collection descending" msgstr "Kokoelman laskeva lajittelu" -#: ../build/bin/preferences_gen.h:8320 +#: ../build/bin/preferences_gen.h:8329 msgid "" "sort the following collections in descending order: 'film roll' by folder, " "'folder', 'times' (e.g. 'capture date')" @@ -2211,11 +2336,11 @@ "Lajittele seuraavat kokoelmat laskevassa järjestyksessä: 'filmirulla' " "hakemistonimi, 'hakemisto', 'ajat' (esim. 'kuvan päivä')." -#: ../build/bin/preferences_gen.h:8404 +#: ../build/bin/preferences_gen.h:8413 msgid "prefer a history button in the collections module" msgstr "Suosi Historia-nappia kokoelmat moduulissa" -#: ../build/bin/preferences_gen.h:8418 +#: ../build/bin/preferences_gen.h:8426 msgid "" "hide this module and instead access collections history with a button in the " "collections module" @@ -2223,11 +2348,11 @@ "Piilota tämä moduuli ja siirry kokoelmien historiaan kokoelmat-moduulin " "napista" -#: ../build/bin/preferences_gen.h:8472 +#: ../build/bin/preferences_gen.h:8483 msgid "suggested tags level of confidence" msgstr "Ehdotettujen tunnisteiden luottamuskerroin" -#: ../build/bin/preferences_gen.h:8497 +#: ../build/bin/preferences_gen.h:8508 #, no-c-format msgid "" "level of confidence to include the tag in the suggestions list, 0: all " @@ -2239,11 +2364,11 @@ "100: Vastaavia tunnisteita ei näytetä, näytetään vain viimeiaikaset " "(nopeampi)." -#: ../build/bin/preferences_gen.h:8519 +#: ../build/bin/preferences_gen.h:8529 msgid "number of recently attached tags" msgstr "Äskettäin käytettyjen tunnisteiden määrä." -#: ../build/bin/preferences_gen.h:8543 +#: ../build/bin/preferences_gen.h:8553 msgid "" "number of recently attached tags which are included in the suggestions list. " "the value `-1' disables the recent list" @@ -2269,14 +2394,15 @@ #. focal length #: ../build/lib/darktable/plugins/introspection_ashift.c:148 #: ../build/lib/darktable/plugins/introspection_ashift.c:291 -#: ../src/common/collection.c:714 ../src/gui/preferences.c:844 -#: ../src/gui/presets.c:718 ../src/libs/camera.c:550 -#: ../src/libs/metadata_view.c:143 +#: ../src/common/collection.c:627 ../src/gui/preferences.c:842 +#: ../src/gui/presets.c:721 ../src/libs/camera.c:550 +#: ../src/libs/metadata_view.c:145 msgid "focal length" msgstr "Polttoväli" #: ../build/lib/darktable/plugins/introspection_ashift.c:154 #: ../build/lib/darktable/plugins/introspection_ashift.c:295 +#: ../src/libs/metadata_view.c:147 msgid "crop factor" msgstr "Rajauskerroin" @@ -2292,7 +2418,7 @@ #: ../build/lib/darktable/plugins/introspection_ashift.c:172 #: ../build/lib/darktable/plugins/introspection_ashift.c:307 -#: ../src/iop/lens.cc:3891 +#: ../src/iop/lens.cc:4438 msgid "lens model" msgstr "Objektiivin malli" @@ -2314,14 +2440,14 @@ #. DEVELOP_MASK_DISABLED #: ../build/lib/darktable/plugins/introspection_ashift.c:366 -#: ../build/lib/darktable/plugins/introspection_colorin.c:300 +#: ../build/lib/darktable/plugins/introspection_colorin.c:303 #: ../build/lib/darktable/plugins/introspection_highlights.c:310 #: ../build/lib/darktable/plugins/introspection_vignette.c:264 #: ../src/develop/blend_gui.c:153 ../src/develop/blend_gui.c:182 -#: ../src/develop/blend_gui.c:3410 ../src/gui/accelerators.c:130 -#: ../src/gui/accelerators.c:140 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/imageio/format/j2k.c:669 -#: ../src/libs/live_view.c:361 ../src/libs/masks.c:113 +#: ../src/develop/blend_gui.c:3429 ../src/gui/accelerators.c:148 +#: ../src/gui/accelerators.c:158 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/imageio/format/j2k.c:686 +#: ../src/libs/live_view.c:361 msgid "off" msgstr "Pois käytöstä" @@ -2345,7 +2471,7 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:146 #: ../build/lib/darktable/plugins/introspection_basecurve.c:239 -#: ../src/libs/metadata_view.c:142 +#: ../src/libs/metadata_view.c:144 msgid "exposure bias" msgstr "Valotuksen korjaus" @@ -2365,16 +2491,16 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:262 #: ../build/lib/darktable/plugins/introspection_basicadj.c:249 #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:153 -#: ../build/lib/darktable/plugins/introspection_lens.cc:458 +#: ../build/lib/darktable/plugins/introspection_lens.cc:533 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:251 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:153 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:270 -#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2193 -#: ../src/iop/channelmixerrgb.c:4667 ../src/iop/clipping.c:1900 -#: ../src/iop/clipping.c:2093 ../src/iop/clipping.c:2108 -#: ../src/iop/retouch.c:463 ../src/libs/collect.c:1907 -#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1023 -#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:132 +#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2214 +#: ../src/iop/channelmixerrgb.c:4735 ../src/iop/clipping.c:1953 +#: ../src/iop/clipping.c:2146 ../src/iop/clipping.c:2161 +#: ../src/iop/retouch.c:507 ../src/libs/collect.c:2043 +#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1101 +#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:109 #: ../src/libs/live_view.c:311 ../src/libs/print_settings.c:2835 msgid "none" msgstr "Ei mitään" @@ -2392,7 +2518,7 @@ #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:252 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:154 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:271 -#: ../src/develop/blend_gui.c:2363 ../src/develop/blend_gui.c:2397 +#: ../src/develop/blend_gui.c:2379 ../src/develop/blend_gui.c:2413 msgid "luminance" msgstr "Kirkkaus" @@ -2502,7 +2628,7 @@ #: ../build/lib/darktable/plugins/introspection_graduatednd.c:144 #: ../build/lib/darktable/plugins/introspection_watermark.c:136 #: ../build/lib/darktable/plugins/introspection_watermark.c:265 -#: ../src/iop/ashift.c:6112 ../src/libs/masks.c:108 +#: ../src/iop/ashift.c:6059 ../src/libs/masks.c:109 msgid "rotation" msgstr "Kierto" @@ -2513,7 +2639,7 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:125 #: ../build/lib/darktable/plugins/introspection_blurs.c:202 -#: ../src/libs/masks.c:109 +#: ../src/libs/masks.c:110 msgid "curvature" msgstr "Kaarevuus" @@ -2521,13 +2647,13 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:206 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:81 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:148 -#: ../src/iop/colorbalancergb.c:1968 +#: ../src/iop/colorbalancergb.c:2039 msgid "offset" msgstr "Poikkeama" #: ../build/lib/darktable/plugins/introspection_blurs.c:220 -#: ../src/common/collection.c:712 ../src/gui/preferences.c:828 -#: ../src/gui/presets.c:660 ../src/libs/metadata_view.c:139 +#: ../src/common/collection.c:625 ../src/gui/preferences.c:826 +#: ../src/gui/presets.c:663 ../src/libs/metadata_view.c:141 msgid "lens" msgstr "Objektiivi" @@ -2543,63 +2669,90 @@ msgid "gaussian" msgstr "Gauss-sumennus" -#: ../build/lib/darktable/plugins/introspection_borders.c:112 -#: ../build/lib/darktable/plugins/introspection_borders.c:253 -#: ../src/common/collection.c:722 ../src/libs/filtering.c:59 +#: ../build/lib/darktable/plugins/introspection_borders.c:122 +#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../src/common/collection.c:635 ../src/libs/filtering.c:59 msgid "aspect ratio" msgstr "Kuvasuhde" #. // portrait / landscape -#: ../build/lib/darktable/plugins/introspection_borders.c:130 -#: ../build/lib/darktable/plugins/introspection_borders.c:265 +#: ../build/lib/darktable/plugins/introspection_borders.c:140 +#: ../build/lib/darktable/plugins/introspection_borders.c:281 #: ../src/iop/flip.c:75 ../src/libs/print_settings.c:2517 msgid "orientation" msgstr "Suunta" -#: ../build/lib/darktable/plugins/introspection_borders.c:136 -#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../build/lib/darktable/plugins/introspection_borders.c:146 +#: ../build/lib/darktable/plugins/introspection_borders.c:285 msgid "border size" msgstr "Kehyksen koko" -#: ../build/lib/darktable/plugins/introspection_borders.c:142 -#: ../build/lib/darktable/plugins/introspection_borders.c:273 +#: ../build/lib/darktable/plugins/introspection_borders.c:152 +#: ../build/lib/darktable/plugins/introspection_borders.c:289 msgid "horizontal offset" msgstr "Vaakasuuntainen poikkeama" -#: ../build/lib/darktable/plugins/introspection_borders.c:160 -#: ../build/lib/darktable/plugins/introspection_borders.c:285 +#: ../build/lib/darktable/plugins/introspection_borders.c:170 +#: ../build/lib/darktable/plugins/introspection_borders.c:301 msgid "vertical offset" msgstr "Pystysuuntainen poikkeama" -#: ../build/lib/darktable/plugins/introspection_borders.c:178 -#: ../build/lib/darktable/plugins/introspection_borders.c:297 +#: ../build/lib/darktable/plugins/introspection_borders.c:188 +#: ../build/lib/darktable/plugins/introspection_borders.c:313 msgid "frame line size" msgstr "Kehysviivan paksuus" -#: ../build/lib/darktable/plugins/introspection_borders.c:184 -#: ../build/lib/darktable/plugins/introspection_borders.c:301 +#: ../build/lib/darktable/plugins/introspection_borders.c:194 +#: ../build/lib/darktable/plugins/introspection_borders.c:317 msgid "frame line offset" msgstr "Kehysviivan siirto" -#: ../build/lib/darktable/plugins/introspection_borders.c:327 -#: ../src/gui/preferences.c:849 ../src/iop/ashift.c:6291 -#: ../src/iop/basicadj.c:632 ../src/iop/flip.c:472 ../src/iop/flip.c:474 -#: ../src/iop/levels.c:641 ../src/iop/rgblevels.c:1050 +#: ../build/lib/darktable/plugins/introspection_borders.c:218 +#: ../build/lib/darktable/plugins/introspection_borders.c:333 +msgid "basis" +msgstr "Perusta" + +#: ../build/lib/darktable/plugins/introspection_borders.c:347 +#: ../build/lib/darktable/plugins/introspection_borders.c:353 +#: ../src/gui/preferences.c:847 ../src/imageio/format/jpeg.c:604 +#: ../src/iop/ashift.c:6238 ../src/iop/basicadj.c:662 ../src/iop/flip.c:470 +#: ../src/iop/flip.c:472 ../src/iop/levels.c:657 ../src/iop/rgblevels.c:1105 msgid "auto" msgstr "Automaattinen" -#: ../build/lib/darktable/plugins/introspection_borders.c:328 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:309 +#: ../build/lib/darktable/plugins/introspection_borders.c:348 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:315 #: ../src/libs/filters/ratio.c:122 ../src/libs/print_settings.c:2519 msgid "portrait" msgstr "Pysty" -#: ../build/lib/darktable/plugins/introspection_borders.c:329 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:305 +#: ../build/lib/darktable/plugins/introspection_borders.c:349 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:311 #: ../src/libs/filters/ratio.c:124 ../src/libs/print_settings.c:2519 msgid "landscape" msgstr "Vaaka" +#: ../build/lib/darktable/plugins/introspection_borders.c:354 +#: ../src/iop/relight.c:275 ../src/libs/export.c:1223 +#: ../src/libs/metadata_view.c:151 ../src/libs/print_settings.c:2537 +msgid "width" +msgstr "Kuvan leveys" + +#: ../build/lib/darktable/plugins/introspection_borders.c:355 +#: ../build/lib/darktable/plugins/introspection_watermark.c:326 +#: ../src/libs/export.c:1229 ../src/libs/metadata_view.c:152 +#: ../src/libs/print_settings.c:2541 +msgid "height" +msgstr "Kuvan korkeus" + +#: ../build/lib/darktable/plugins/introspection_borders.c:356 +msgid "shorter" +msgstr "Lyhyempi" + +#: ../build/lib/darktable/plugins/introspection_borders.c:357 +msgid "longer" +msgstr "Pidempi" + #: ../build/lib/darktable/plugins/introspection_cacorrect.c:42 #: ../build/lib/darktable/plugins/introspection_cacorrect.c:91 msgid "avoid colorshift" @@ -2646,9 +2799,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:67 #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:132 -#: ../src/iop/atrous.c:1522 ../src/iop/bilateral.cc:350 ../src/iop/clahe.c:335 -#: ../src/iop/dither.c:760 ../src/iop/lowpass.c:584 ../src/iop/shadhi.c:675 -#: ../src/iop/sharpen.c:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:340 +#: ../build/lib/darktable/plugins/introspection_lens.cc:501 +#: ../src/iop/atrous.c:1636 ../src/iop/bilateral.cc:352 ../src/iop/clahe.c:337 +#: ../src/iop/dither.c:762 ../src/iop/lowpass.c:597 ../src/iop/shadhi.c:710 +#: ../src/iop/sharpen.c:435 msgid "radius" msgstr "Säde" @@ -2656,9 +2811,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:136 #: ../build/lib/darktable/plugins/introspection_highlights.c:137 #: ../build/lib/darktable/plugins/introspection_highlights.c:240 -#: ../src/iop/bloom.c:376 ../src/iop/denoiseprofile.c:3818 -#: ../src/iop/grain.c:584 ../src/iop/hazeremoval.c:201 -#: ../src/iop/hotpixels.c:388 ../src/iop/nlmeans.c:460 ../src/iop/velvia.c:279 +#: ../build/lib/darktable/plugins/introspection_lens.cc:334 +#: ../build/lib/darktable/plugins/introspection_lens.cc:497 +#: ../src/iop/bloom.c:372 ../src/iop/denoiseprofile.c:3822 +#: ../src/iop/grain.c:602 ../src/iop/hazeremoval.c:203 +#: ../src/iop/hotpixels.c:467 ../src/iop/nlmeans.c:463 ../src/iop/velvia.c:288 msgid "strength" msgstr "Voimakkuus" @@ -2673,41 +2830,41 @@ msgstr "Erittäin suuri värivirhe" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:158 -#: ../src/common/collection.c:1507 ../src/common/color_vocabulary.c:232 -#: ../src/common/colorlabels.c:334 ../src/develop/blend_gui.c:2330 -#: ../src/develop/blend_gui.c:2378 ../src/develop/lightroom.c:834 -#: ../src/gui/gtk.c:3137 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:354 -#: ../src/iop/channelmixer.c:618 ../src/iop/channelmixer.c:628 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/colorzones.c:2263 -#: ../src/iop/temperature.c:1938 ../src/iop/temperature.c:2133 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:260 -#: ../src/libs/histogram.c:2397 +#: ../src/common/collection.c:1374 ../src/common/color_vocabulary.c:232 +#: ../src/common/colorlabels.c:333 ../src/develop/blend_gui.c:2346 +#: ../src/develop/blend_gui.c:2394 ../src/develop/lightroom.c:887 +#: ../src/gui/gtk.c:3183 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:356 +#: ../src/iop/channelmixer.c:637 ../src/iop/channelmixer.c:647 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/colorzones.c:2499 +#: ../src/iop/temperature.c:1912 ../src/iop/temperature.c:2094 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:260 +#: ../src/libs/histogram.c:2724 msgid "red" msgstr "Punainen" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:159 -#: ../src/common/collection.c:1511 ../src/common/color_vocabulary.c:277 -#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2336 -#: ../src/develop/blend_gui.c:2384 ../src/develop/lightroom.c:838 -#: ../src/gui/gtk.c:3138 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:359 -#: ../src/iop/channelmixer.c:619 ../src/iop/channelmixer.c:634 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/colorzones.c:2266 -#: ../src/iop/temperature.c:1922 ../src/iop/temperature.c:1940 -#: ../src/iop/temperature.c:2134 ../src/libs/collect.c:1791 -#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2389 +#: ../src/common/collection.c:1378 ../src/common/color_vocabulary.c:277 +#: ../src/common/colorlabels.c:335 ../src/develop/blend_gui.c:2352 +#: ../src/develop/blend_gui.c:2400 ../src/develop/lightroom.c:891 +#: ../src/gui/gtk.c:3184 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:361 +#: ../src/iop/channelmixer.c:638 ../src/iop/channelmixer.c:653 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/colorzones.c:2502 +#: ../src/iop/temperature.c:1896 ../src/iop/temperature.c:1914 +#: ../src/iop/temperature.c:2095 ../src/libs/collect.c:1916 +#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2715 msgid "green" msgstr "Vihreä" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:160 -#: ../src/common/collection.c:1513 ../src/common/color_vocabulary.c:324 -#: ../src/common/colorlabels.c:337 ../src/develop/blend_gui.c:2342 -#: ../src/develop/blend_gui.c:2390 ../src/develop/lightroom.c:840 -#: ../src/gui/gtk.c:3139 ../src/iop/bilateral.cc:364 -#: ../src/iop/channelmixer.c:620 ../src/iop/channelmixer.c:640 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/colorzones.c:2268 -#: ../src/iop/temperature.c:1942 ../src/iop/temperature.c:2135 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:263 -#: ../src/libs/histogram.c:2381 +#: ../src/common/collection.c:1380 ../src/common/color_vocabulary.c:324 +#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2358 +#: ../src/develop/blend_gui.c:2406 ../src/develop/lightroom.c:893 +#: ../src/gui/gtk.c:3185 ../src/iop/bilateral.cc:366 +#: ../src/iop/channelmixer.c:639 ../src/iop/channelmixer.c:659 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/colorzones.c:2504 +#: ../src/iop/temperature.c:1916 ../src/iop/temperature.c:2096 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:263 +#: ../src/libs/histogram.c:2706 msgid "blue" msgstr "Sininen" @@ -2950,7 +3107,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:303 #: ../build/lib/darktable/plugins/introspection_crop.c:61 #: ../build/lib/darktable/plugins/introspection_crop.c:134 -#: ../src/gui/gtk.c:1141 ../src/iop/atrous.c:1518 +#: ../src/gui/gtk.c:1234 ../src/iop/atrous.c:1632 msgid "left" msgstr "Vasen" @@ -2958,7 +3115,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:307 #: ../build/lib/darktable/plugins/introspection_crop.c:67 #: ../build/lib/darktable/plugins/introspection_crop.c:138 -#: ../src/gui/accelerators.c:113 ../src/gui/gtk.c:1155 +#: ../src/gui/accelerators.c:131 ../src/gui/gtk.c:1240 msgid "top" msgstr "Ylin" @@ -2966,7 +3123,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:311 #: ../build/lib/darktable/plugins/introspection_crop.c:73 #: ../build/lib/darktable/plugins/introspection_crop.c:142 -#: ../src/gui/gtk.c:1148 ../src/iop/atrous.c:1517 +#: ../src/gui/gtk.c:1237 ../src/iop/atrous.c:1631 msgid "right" msgstr "Oikea" @@ -2974,7 +3131,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:315 #: ../build/lib/darktable/plugins/introspection_crop.c:79 #: ../build/lib/darktable/plugins/introspection_crop.c:146 -#: ../src/gui/accelerators.c:114 ../src/gui/gtk.c:1162 +#: ../src/gui/accelerators.c:132 ../src/gui/gtk.c:1243 msgid "bottom" msgstr "Alhaalla" @@ -3014,10 +3171,10 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:489 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:501 #: ../build/lib/darktable/plugins/introspection_colorzones.c:256 -#: ../src/develop/blend_gui.c:2356 ../src/develop/blend_gui.c:2404 -#: ../src/iop/atrous.c:1667 ../src/iop/channelmixerrgb.c:4457 -#: ../src/iop/channelmixerrgb.c:4573 ../src/iop/colorbalancergb.c:1895 -#: ../src/iop/colorzones.c:2402 ../src/iop/nlmeans.c:468 +#: ../src/develop/blend_gui.c:2372 ../src/develop/blend_gui.c:2420 +#: ../src/iop/atrous.c:1801 ../src/iop/channelmixerrgb.c:4525 +#: ../src/iop/channelmixerrgb.c:4641 ../src/iop/colorbalancergb.c:1966 +#: ../src/iop/colorzones.c:2645 ../src/iop/nlmeans.c:471 msgid "chroma" msgstr "Kroma" @@ -3037,11 +3194,11 @@ #: ../build/lib/darktable/plugins/introspection_splittoning.c:73 #: ../build/lib/darktable/plugins/introspection_splittoning.c:134 #: ../build/lib/darktable/plugins/introspection_splittoning.c:142 -#: ../src/develop/blend_gui.c:2315 ../src/develop/blend_gui.c:2349 -#: ../src/develop/blend_gui.c:2411 ../src/iop/channelmixer.c:615 -#: ../src/iop/channelmixerrgb.c:4450 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/colorbalance.c:2042 ../src/iop/colorize.c:330 -#: ../src/iop/colorreconstruction.c:1240 ../src/iop/colorzones.c:2403 +#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2365 +#: ../src/develop/blend_gui.c:2427 ../src/iop/channelmixer.c:634 +#: ../src/iop/channelmixerrgb.c:4518 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/colorbalance.c:2017 ../src/iop/colorize.c:343 +#: ../src/iop/colorreconstruction.c:1249 ../src/iop/colorzones.c:2646 msgid "hue" msgstr "Sävy" @@ -3068,9 +3225,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:569 #: ../build/lib/darktable/plugins/introspection_toneequal.c:156 #: ../build/lib/darktable/plugins/introspection_toneequal.c:297 -#: ../src/iop/bilat.c:469 ../src/iop/colorbalance.c:2099 -#: ../src/iop/negadoctor.c:915 ../src/iop/shadhi.c:671 -#: ../src/iop/splittoning.c:507 +#: ../src/iop/bilat.c:479 ../src/iop/colorbalance.c:2074 +#: ../src/iop/negadoctor.c:934 ../src/iop/shadhi.c:706 +#: ../src/iop/splittoning.c:503 msgid "shadows" msgstr "Varjot" @@ -3082,9 +3239,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:561 #: ../build/lib/darktable/plugins/introspection_toneequal.c:180 #: ../build/lib/darktable/plugins/introspection_toneequal.c:313 -#: ../src/iop/bilat.c:463 ../src/iop/colorbalance.c:2101 -#: ../src/iop/monochrome.c:561 ../src/iop/shadhi.c:672 -#: ../src/iop/splittoning.c:514 +#: ../src/iop/bilat.c:473 ../src/iop/colorbalance.c:2076 +#: ../src/iop/monochrome.c:583 ../src/iop/shadhi.c:707 +#: ../src/iop/splittoning.c:510 msgid "highlights" msgstr "Huippuvalot" @@ -3101,13 +3258,13 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:565 #: ../build/lib/darktable/plugins/introspection_toneequal.c:168 #: ../build/lib/darktable/plugins/introspection_toneequal.c:305 -#: ../src/iop/colorbalance.c:2100 +#: ../src/iop/colorbalance.c:2075 msgid "mid-tones" msgstr "Keskisävyt" #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:340 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:537 -#: ../src/iop/filmic.c:1576 +#: ../src/iop/filmic.c:1601 msgid "global saturation" msgstr "Yleinen värikylläisyys" @@ -3138,12 +3295,12 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:412 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:585 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:64 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:137 -#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:607 ../src/iop/bilat.c:458 -#: ../src/iop/colisa.c:304 ../src/iop/colorbalance.c:1947 -#: ../src/iop/colorbalance.c:1953 ../src/iop/filmic.c:1548 -#: ../src/iop/filmicrgb.c:4551 ../src/iop/lowpass.c:586 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:116 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:237 +#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:637 ../src/iop/bilat.c:468 +#: ../src/iop/colisa.c:298 ../src/iop/colorbalance.c:1922 +#: ../src/iop/colorbalance.c:1928 ../src/iop/filmic.c:1573 +#: ../src/iop/filmicrgb.c:4615 ../src/iop/lowpass.c:599 msgid "contrast" msgstr "Kontrasti" @@ -3170,33 +3327,35 @@ msgid "blue-yellow contrast" msgstr "Sininen-keltainen kontrasti" -#: ../build/lib/darktable/plugins/introspection_colorin.c:148 -#: ../build/lib/darktable/plugins/introspection_colorin.c:231 +#: ../build/lib/darktable/plugins/introspection_colorin.c:150 +#: ../build/lib/darktable/plugins/introspection_colorin.c:233 msgid "gamut clipping" msgstr "Sävyasteikon leikkaus" -#: ../build/lib/darktable/plugins/introspection_colorin.c:301 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:201 -#: ../src/common/colorspaces.c:1251 ../src/common/colorspaces.c:1484 +#: ../build/lib/darktable/plugins/introspection_colorin.c:304 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:312 +#: ../src/common/colorspaces.c:1410 ../src/common/colorspaces.c:1700 #: ../src/libs/print_settings.c:1356 msgid "sRGB" msgstr "sRGB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:302 -#: ../src/common/colorspaces.c:1260 ../src/common/colorspaces.c:1486 +#: ../build/lib/darktable/plugins/introspection_colorin.c:305 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:311 +#: ../src/common/colorspaces.c:1421 ../src/common/colorspaces.c:1702 #: ../src/libs/print_settings.c:1363 msgid "Adobe RGB (compatible)" msgstr "Adobe RGB (yhteensopiva)" -#: ../build/lib/darktable/plugins/introspection_colorin.c:303 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 -#: ../src/common/colorspaces.c:1265 ../src/common/colorspaces.c:1488 +#: ../build/lib/darktable/plugins/introspection_colorin.c:306 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 +#: ../src/common/colorspaces.c:1428 ../src/common/colorspaces.c:1704 msgid "linear Rec709 RGB" msgstr "Suoralinjainen Rec709 RGB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:304 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 -#: ../src/common/colorspaces.c:1274 ../src/common/colorspaces.c:1490 +#: ../build/lib/darktable/plugins/introspection_colorin.c:307 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:206 +#: ../src/common/colorspaces.c:1442 ../src/common/colorspaces.c:1706 msgid "linear Rec2020 RGB" msgstr "Suoralinjainen Rec2020 RGB" @@ -3224,7 +3383,7 @@ #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:127 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:45 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:92 -#: ../src/iop/shadhi.c:686 +#: ../src/iop/shadhi.c:721 msgid "spatial extent" msgstr "Alueellinen kattavuus" @@ -3234,7 +3393,7 @@ msgstr "Etäisyys" #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:154 -#: ../src/iop/channelmixerrgb.c:4669 +#: ../src/iop/channelmixerrgb.c:4737 msgid "saturated colors" msgstr "Kylläiset värit" @@ -3248,7 +3407,7 @@ #: ../build/lib/darktable/plugins/introspection_colorzones.c:233 #: ../build/lib/darktable/plugins/introspection_soften.c:66 #: ../build/lib/darktable/plugins/introspection_soften.c:121 -#: ../src/iop/atrous.c:1689 +#: ../src/iop/atrous.c:1835 msgid "mix" msgstr "Sekoitus" @@ -3258,16 +3417,17 @@ msgstr "Toimintatapa" #: ../build/lib/darktable/plugins/introspection_colorzones.c:255 -#: ../src/develop/blend_gui.c:2294 ../src/iop/channelmixer.c:617 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/colorchecker.c:1448 -#: ../src/iop/colorize.c:349 ../src/iop/colorzones.c:2401 -#: ../src/iop/exposure.c:1239 +#: ../src/develop/blend_gui.c:2310 ../src/iop/channelmixer.c:636 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/colorchecker.c:1453 +#: ../src/iop/colorize.c:362 ../src/iop/colorzones.c:2644 +#: ../src/iop/exposure.c:1257 msgid "lightness" msgstr "Vaaleus" #: ../build/lib/darktable/plugins/introspection_colorzones.c:267 -#: ../src/iop/atrous.c:1309 ../src/iop/atrous.c:1313 -#: ../src/iop/denoiseprofile.c:3527 ../src/iop/rawdenoise.c:755 +#: ../src/iop/atrous.c:1410 ../src/iop/atrous.c:1414 +#: ../src/iop/denoiseprofile.c:3531 ../src/iop/rawdenoise.c:771 +#: ../src/iop/sigmoid.c:292 msgid "smooth" msgstr "Tasainen" @@ -3284,9 +3444,9 @@ #: ../build/lib/darktable/plugins/introspection_defringe.c:106 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:230 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:435 -#: ../src/iop/atrous.c:1572 ../src/iop/bloom.c:372 -#: ../src/iop/colorreconstruction.c:1236 ../src/iop/hotpixels.c:384 -#: ../src/iop/sharpen.c:449 +#: ../src/iop/atrous.c:1695 ../src/iop/bloom.c:368 +#: ../src/iop/colorreconstruction.c:1245 ../src/iop/hotpixels.c:463 +#: ../src/iop/sharpen.c:444 msgid "threshold" msgstr "Kynnysarvo" @@ -3421,7 +3581,7 @@ #. history #: ../build/lib/darktable/plugins/introspection_demosaic.c:232 -#: ../src/common/collection.c:1526 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1394 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "basic" msgstr "Perus" @@ -3494,12 +3654,9 @@ msgid "upgrade profiled transform" msgstr "Päivitä profiloitu muunnos" -#. -#. * Color mode combo box -#. #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:257 #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:388 -#: ../src/imageio/format/avif.c:786 ../src/libs/colorpicker.c:584 +#: ../src/libs/colorpicker.c:659 msgid "color mode" msgstr "Väritila" @@ -3524,7 +3681,7 @@ msgstr "Laske vaihtelu" #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:410 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:266 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:292 msgid "RGB" msgstr "RGB" @@ -3535,9 +3692,9 @@ #. two more sharpness (standard & strong) #: ../build/lib/darktable/plugins/introspection_diffuse.c:123 #: ../build/lib/darktable/plugins/introspection_diffuse.c:248 -#: ../src/iop/atrous.c:1564 ../src/iop/diffuse.c:630 ../src/iop/highpass.c:381 +#: ../src/iop/atrous.c:1685 ../src/iop/diffuse.c:657 ../src/iop/highpass.c:376 msgid "sharpness" -msgstr "Terävyys" +msgstr "Terävöitys" #: ../build/lib/darktable/plugins/introspection_diffuse.c:129 #: ../build/lib/darktable/plugins/introspection_diffuse.c:252 @@ -3699,7 +3856,7 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:212 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:423 -#: ../src/iop/filmic.c:1489 +#: ../src/iop/filmic.c:1514 msgid "middle gray luminance" msgstr "Keskiharmaan kirkkaus" @@ -3707,13 +3864,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:427 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:97 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:166 -#: ../src/iop/filmic.c:1514 +#: ../src/iop/filmic.c:1539 msgid "black relative exposure" msgstr "Mustan suhteellinen valotus" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:224 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:431 -#: ../src/iop/filmic.c:1501 +#: ../src/iop/filmic.c:1526 msgid "white relative exposure" msgstr "Valkoisen suhteellinen valotus" @@ -3744,19 +3901,19 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:266 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:459 -#: ../src/iop/filmic.c:1646 +#: ../src/iop/filmic.c:1671 msgid "target middle gray" msgstr "Keskiharmaan kohde" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:272 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:463 -#: ../src/iop/filmic.c:1637 +#: ../src/iop/filmic.c:1662 msgid "target black luminance" msgstr "Mustan kirkkauden kohde" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:278 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:467 -#: ../src/iop/filmic.c:1655 +#: ../src/iop/filmic.c:1680 msgid "target white luminance" msgstr "Valkoisen kirkkauden kohde" @@ -3764,13 +3921,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:471 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:69 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:140 -#: ../src/libs/masks.c:106 +#: ../src/libs/masks.c:107 msgid "hardness" msgstr "Kovuus" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:302 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:483 -#: ../src/iop/filmic.c:1586 ../src/iop/filmicrgb.c:4729 +#: ../src/iop/filmic.c:1611 ../src/iop/filmicrgb.c:4793 msgid "extreme luminance saturation" msgstr "Äärimmäisen kirkkauden värikylläisyys" @@ -3841,11 +3998,11 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:549 #: ../build/lib/darktable/plugins/introspection_toneequal.c:371 -#: ../src/common/database.c:2785 ../src/common/variables.c:705 -#: ../src/develop/imageop_gui.c:209 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 +#: ../src/common/variables.c:714 ../src/develop/imageop_gui.c:209 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 msgid "no" msgstr "Ei" @@ -3953,19 +4110,19 @@ #: ../build/lib/darktable/plugins/introspection_splittoning.c:79 #: ../build/lib/darktable/plugins/introspection_splittoning.c:138 #: ../build/lib/darktable/plugins/introspection_splittoning.c:146 -#: ../src/develop/blend_gui.c:2310 ../src/iop/basicadj.c:624 -#: ../src/iop/channelmixer.c:616 ../src/iop/colisa.c:306 -#: ../src/iop/colorbalance.c:2059 ../src/iop/colorbalancergb.c:1919 -#: ../src/iop/colorchecker.c:1483 ../src/iop/colorcontrast.c:90 -#: ../src/iop/colorcorrection.c:275 ../src/iop/colorize.c:343 -#: ../src/iop/lowpass.c:588 ../src/iop/soften.c:373 ../src/iop/velvia.c:84 -#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:971 +#: ../src/develop/blend_gui.c:2326 ../src/iop/basicadj.c:654 +#: ../src/iop/channelmixer.c:635 ../src/iop/colisa.c:300 +#: ../src/iop/colorbalance.c:2034 ../src/iop/colorbalancergb.c:1990 +#: ../src/iop/colorchecker.c:1488 ../src/iop/colorcontrast.c:82 +#: ../src/iop/colorcorrection.c:268 ../src/iop/colorize.c:356 +#: ../src/iop/lowpass.c:601 ../src/iop/soften.c:368 ../src/iop/velvia.c:75 +#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:1058 msgid "saturation" msgstr "Värikylläisyys" #: ../build/lib/darktable/plugins/introspection_grain.c:58 #: ../build/lib/darktable/plugins/introspection_grain.c:117 -#: ../src/iop/bilat.c:450 +#: ../src/iop/bilat.c:460 msgid "coarseness" msgstr "Rakeisuus" @@ -3978,7 +4135,7 @@ #: ../build/lib/darktable/plugins/introspection_highlights.c:143 #: ../build/lib/darktable/plugins/introspection_highlights.c:244 -#: ../src/views/darkroom.c:2406 +#: ../src/views/darkroom.c:2245 msgid "clipping threshold" msgstr "Leikkauksen kynnysarvo" @@ -4114,168 +4271,172 @@ msgid "detect by 3 neighbors" msgstr "Tunnista kolmen naapurin mukaan" -#: ../build/lib/darktable/plugins/introspection_lens.cc:166 -#: ../build/lib/darktable/plugins/introspection_lens.cc:347 +#: ../build/lib/darktable/plugins/introspection_lens.cc:190 +#: ../build/lib/darktable/plugins/introspection_lens.cc:401 msgid "correction method" msgstr "Korjaustapa" #. Page CORRECTIONS -#: ../build/lib/darktable/plugins/introspection_lens.cc:172 -#: ../build/lib/darktable/plugins/introspection_lens.cc:351 -#: ../src/iop/negadoctor.c:900 +#: ../build/lib/darktable/plugins/introspection_lens.cc:196 +#: ../build/lib/darktable/plugins/introspection_lens.cc:405 +#: ../src/iop/negadoctor.c:919 msgid "corrections" msgstr "Korjaukset" #. mode choice -#. Add check to control whether the style is to replace or append the current module -#: ../build/lib/darktable/plugins/introspection_lens.cc:178 -#: ../build/lib/darktable/plugins/introspection_lens.cc:355 +#: ../build/lib/darktable/plugins/introspection_lens.cc:202 +#: ../build/lib/darktable/plugins/introspection_lens.cc:409 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:128 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:219 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:51 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:118 -#: ../src/iop/bilat.c:428 ../src/iop/colorbalance.c:1909 -#: ../src/iop/denoiseprofile.c:3806 ../src/iop/exposure.c:1157 -#: ../src/iop/levels.c:684 ../src/iop/profile_gamma.c:668 -#: ../src/libs/copy_history.c:399 ../src/libs/export.c:1262 -#: ../src/libs/image.c:597 ../src/libs/print_settings.c:2875 -#: ../src/libs/styles.c:846 ../src/views/darkroom.c:2387 +#: ../src/develop/blend_gui.c:3546 ../src/iop/bilat.c:438 +#: ../src/iop/colorbalance.c:1884 ../src/iop/denoiseprofile.c:3810 +#: ../src/iop/exposure.c:1175 ../src/iop/levels.c:700 +#: ../src/iop/profile_gamma.c:682 ../src/libs/copy_history.c:399 +#: ../src/libs/export.c:1376 ../src/libs/image.c:666 +#: ../src/libs/print_settings.c:2875 ../src/libs/styles.c:850 +#: ../src/views/darkroom.c:2226 msgid "mode" msgstr "Tila" -#: ../build/lib/darktable/plugins/introspection_lens.cc:214 -#: ../build/lib/darktable/plugins/introspection_lens.cc:379 -#: ../src/iop/lens.cc:3927 +#: ../build/lib/darktable/plugins/introspection_lens.cc:238 +#: ../build/lib/darktable/plugins/introspection_lens.cc:433 +#: ../src/iop/lens.cc:4474 msgid "target geometry" msgstr "Kohdegeometria" -#: ../build/lib/darktable/plugins/introspection_lens.cc:244 -#: ../build/lib/darktable/plugins/introspection_lens.cc:399 +#: ../build/lib/darktable/plugins/introspection_lens.cc:268 +#: ../build/lib/darktable/plugins/introspection_lens.cc:453 msgid "TCA overwrite" msgstr "Poikittaisen värivirheen ylikirjoitus" -#: ../build/lib/darktable/plugins/introspection_lens.cc:250 -#: ../build/lib/darktable/plugins/introspection_lens.cc:403 +#: ../build/lib/darktable/plugins/introspection_lens.cc:274 +#: ../build/lib/darktable/plugins/introspection_lens.cc:298 +#: ../build/lib/darktable/plugins/introspection_lens.cc:457 +#: ../build/lib/darktable/plugins/introspection_lens.cc:473 msgid "TCA red" msgstr "Poikittainen värivirhe punainen" -#: ../build/lib/darktable/plugins/introspection_lens.cc:256 -#: ../build/lib/darktable/plugins/introspection_lens.cc:407 +#: ../build/lib/darktable/plugins/introspection_lens.cc:280 +#: ../build/lib/darktable/plugins/introspection_lens.cc:304 +#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:477 msgid "TCA blue" msgstr "Poikittainen värivirhe sininen" -#: ../build/lib/darktable/plugins/introspection_lens.cc:262 -#: ../build/lib/darktable/plugins/introspection_lens.cc:411 -msgid "distortion fine-tune" -msgstr "Vääristymien hienosäätö" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:268 -#: ../build/lib/darktable/plugins/introspection_lens.cc:415 -msgid "vignetting fine-tune" -msgstr "Vinjetoinnin hienosäätö" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:274 -#: ../build/lib/darktable/plugins/introspection_lens.cc:419 -msgid "TCA red fine-tune" -msgstr "Poikittaisen punaisen värivirheen hienosäätö" +#: ../build/lib/darktable/plugins/introspection_lens.cc:286 +#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +msgid "distortion" +msgstr "Vääristymä" -#: ../build/lib/darktable/plugins/introspection_lens.cc:280 -#: ../build/lib/darktable/plugins/introspection_lens.cc:423 -msgid "TCA blue fine-tune" -msgstr "Poikittaisen sinisen värivirheen hienosäätö" +#: ../build/lib/darktable/plugins/introspection_lens.cc:292 +#: ../build/lib/darktable/plugins/introspection_lens.cc:469 +#: ../src/iop/vignette.c:114 +msgid "vignetting" +msgstr "Vinjetti" -#: ../build/lib/darktable/plugins/introspection_lens.cc:286 -#: ../build/lib/darktable/plugins/introspection_lens.cc:427 +#: ../build/lib/darktable/plugins/introspection_lens.cc:310 +#: ../build/lib/darktable/plugins/introspection_lens.cc:481 msgid "scale fine-tune" msgstr "Asteikon hienosäätö" -#: ../build/lib/darktable/plugins/introspection_lens.cc:298 -#: ../build/lib/darktable/plugins/introspection_lens.cc:435 +#: ../build/lib/darktable/plugins/introspection_lens.cc:322 +#: ../build/lib/darktable/plugins/introspection_lens.cc:489 msgid "image scale" msgstr "Kuvan asteikko" -#: ../build/lib/darktable/plugins/introspection_lens.cc:453 +#: ../build/lib/darktable/plugins/introspection_lens.cc:346 +#: ../build/lib/darktable/plugins/introspection_lens.cc:505 +msgid "steepness" +msgstr "Jyrkkyys" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:527 msgid "embedded metadata" msgstr "Upotettu metatieto" -#: ../build/lib/darktable/plugins/introspection_lens.cc:454 +#: ../build/lib/darktable/plugins/introspection_lens.cc:528 msgid "Lensfun database" msgstr "Lensfun-tietokanta" +#: ../build/lib/darktable/plugins/introspection_lens.cc:529 +msgid "only manual vignette" +msgstr "Vain käsin asetettu vinjetointi" + #. get nice text for bounds #. Side-border hide/show -#: ../build/lib/darktable/plugins/introspection_lens.cc:459 -#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2367 -#: ../src/gui/accelerators.c:2447 ../src/gui/gtk.c:1204 ../src/gui/gtk.c:3136 -#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3709 -#: ../src/iop/rawdenoise.c:893 ../src/libs/collect.c:3066 -#: ../src/libs/filtering.c:1459 ../src/libs/filters/colors.c:157 +#: ../build/lib/darktable/plugins/introspection_lens.cc:534 +#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2592 +#: ../src/gui/accelerators.c:2674 ../src/gui/gtk.c:1282 ../src/gui/gtk.c:3182 +#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3713 +#: ../src/iop/rawdenoise.c:909 ../src/libs/collect.c:3413 +#: ../src/libs/filtering.c:1521 ../src/libs/filters/colors.c:157 #: ../src/libs/filters/colors.c:265 ../src/libs/filters/rating.c:211 msgid "all" msgstr "Kaikki" -#: ../build/lib/darktable/plugins/introspection_lens.cc:460 +#: ../build/lib/darktable/plugins/introspection_lens.cc:535 msgid "distortion & TCA" msgstr "Vääristymät & poikittainen värivirhe" -#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:536 msgid "distortion & vignetting" msgstr "Vääristymät & vinjetointi" -#: ../build/lib/darktable/plugins/introspection_lens.cc:462 +#: ../build/lib/darktable/plugins/introspection_lens.cc:537 msgid "TCA & vignetting" msgstr "Poikittainen värivirhe & vinjetointi" -#: ../build/lib/darktable/plugins/introspection_lens.cc:463 +#: ../build/lib/darktable/plugins/introspection_lens.cc:538 msgid "only distortion" msgstr "Vain vääristymät" -#: ../build/lib/darktable/plugins/introspection_lens.cc:464 +#: ../build/lib/darktable/plugins/introspection_lens.cc:539 msgid "only TCA" msgstr "Vain poikittainen värivirhe" -#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +#: ../build/lib/darktable/plugins/introspection_lens.cc:540 msgid "only vignetting" msgstr "Vain vinjetointi" -#: ../build/lib/darktable/plugins/introspection_lens.cc:469 -#: ../src/libs/modulegroups.c:2318 +#: ../build/lib/darktable/plugins/introspection_lens.cc:544 +#: ../src/libs/modulegroups.c:2302 msgid "correct" msgstr "Korjaa" -#: ../build/lib/darktable/plugins/introspection_lens.cc:470 +#: ../build/lib/darktable/plugins/introspection_lens.cc:545 msgid "distort" msgstr "Vääristä" -#: ../build/lib/darktable/plugins/introspection_lens.cc:475 +#: ../build/lib/darktable/plugins/introspection_lens.cc:550 msgid "rectilinear" msgstr "Suoraviivainen" -#: ../build/lib/darktable/plugins/introspection_lens.cc:476 +#: ../build/lib/darktable/plugins/introspection_lens.cc:551 msgid "fisheye" msgstr "Kalansilmä" -#: ../build/lib/darktable/plugins/introspection_lens.cc:477 +#: ../build/lib/darktable/plugins/introspection_lens.cc:552 msgid "panoramic" msgstr "Panoraama" -#: ../build/lib/darktable/plugins/introspection_lens.cc:478 +#: ../build/lib/darktable/plugins/introspection_lens.cc:553 msgid "equirectangular" msgstr "Tasavälinen lieriöprojektio" -#: ../build/lib/darktable/plugins/introspection_lens.cc:479 +#: ../build/lib/darktable/plugins/introspection_lens.cc:554 msgid "orthographic" msgstr "Ortografinen" -#: ../build/lib/darktable/plugins/introspection_lens.cc:480 +#: ../build/lib/darktable/plugins/introspection_lens.cc:555 msgid "stereographic" msgstr "Stereografinen" -#: ../build/lib/darktable/plugins/introspection_lens.cc:481 +#: ../build/lib/darktable/plugins/introspection_lens.cc:556 msgid "equisolid angle" msgstr "Oikeapintainen tasoprojektio" -#: ../build/lib/darktable/plugins/introspection_lens.cc:482 +#: ../build/lib/darktable/plugins/introspection_lens.cc:557 msgid "Thoby fisheye" msgstr "Thobyn mallintama kalansilmäprojektio" @@ -4285,8 +4446,8 @@ #. move left/right/up/down #: ../build/lib/darktable/plugins/introspection_liquify.c:429 -#: ../src/views/darkroom.c:2282 ../src/views/darkroom.c:2676 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:765 +#: ../src/views/darkroom.c:2121 ../src/views/darkroom.c:2522 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:765 #: ../src/views/lighttable.c:774 ../src/views/lighttable.c:1246 #: ../src/views/lighttable.c:1250 ../src/views/lighttable.c:1254 #: ../src/views/lighttable.c:1258 ../src/views/lighttable.c:1262 @@ -4298,8 +4459,8 @@ msgstr "Viiva" #: ../build/lib/darktable/plugins/introspection_liquify.c:431 -#: ../src/iop/basecurve.c:2186 ../src/iop/rgbcurve.c:1387 -#: ../src/iop/tonecurve.c:1149 +#: ../src/iop/basecurve.c:2207 ../src/iop/rgbcurve.c:1387 +#: ../src/iop/tonecurve.c:1171 msgid "curve" msgstr "Käyrä" @@ -4335,28 +4496,33 @@ msgid "bilateral filter" msgstr "Kaksipuolinen suodin" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:76 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:163 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:77 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:164 msgid "application color space" msgstr "Sovelluksen väriavaruus" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 msgid "Adobe RGB" msgstr "Adobe RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 msgid "gamma Rec709 RGB" msgstr "Gamma Rec709 RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:209 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:207 +#: ../src/common/colorspaces.c:1486 ../src/common/colorspaces.c:1740 +msgid "linear ProPhoto RGB" +msgstr "Suoralinjainen ProPhoto RGB" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 msgid "tetrahedral" msgstr "Tetraedrinen" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:210 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:212 msgid "trilinear" msgstr "Trilineaarinen" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:213 msgid "pyramid" msgstr "Pyramidi" @@ -4377,7 +4543,7 @@ #: ../build/lib/darktable/plugins/introspection_negadoctor.c:144 #: ../build/lib/darktable/plugins/introspection_negadoctor.c:239 -#: ../src/iop/negadoctor.c:992 +#: ../src/iop/negadoctor.c:1011 msgid "paper grade (gamma)" msgstr "Paperin luokka (gamma)" @@ -4392,15 +4558,57 @@ msgstr "Tulosteen valotuksen korjaus" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:261 -#: ../src/iop/negadoctor.c:417 +#: ../src/iop/negadoctor.c:431 msgid "black and white film" msgstr "Mustavalkofilmi" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:262 -#: ../src/iop/negadoctor.c:402 +#: ../src/iop/negadoctor.c:416 msgid "color film" msgstr "Värifilmi" +#: ../build/lib/darktable/plugins/introspection_primaries.c:75 +#: ../build/lib/darktable/plugins/introspection_primaries.c:160 +#: ../src/iop/primaries.c:406 +msgid "tint hue" +msgstr "Sävyn sävy" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:81 +#: ../build/lib/darktable/plugins/introspection_primaries.c:164 +#: ../src/iop/primaries.c:413 +msgid "tint purity" +msgstr "Sävyn puhtaus" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:87 +#: ../build/lib/darktable/plugins/introspection_primaries.c:168 +msgid "red hue" +msgstr "Punaisen sävy" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:93 +#: ../build/lib/darktable/plugins/introspection_primaries.c:172 +msgid "red purity" +msgstr "Punaisen puhtaus" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:99 +#: ../build/lib/darktable/plugins/introspection_primaries.c:176 +msgid "green hue" +msgstr "Vihreän sävy" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:105 +#: ../build/lib/darktable/plugins/introspection_primaries.c:180 +msgid "green purity" +msgstr "Vihreän puhtaus" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:111 +#: ../build/lib/darktable/plugins/introspection_primaries.c:184 +msgid "blue hue" +msgstr "Sinisen sävy" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:117 +#: ../build/lib/darktable/plugins/introspection_primaries.c:188 +msgid "blue purity" +msgstr "Sinisen puhtaus" + #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:85 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:158 msgid "dynamic range" @@ -4413,7 +4621,7 @@ #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:103 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:170 -#: ../src/iop/filmic.c:1526 +#: ../src/iop/filmic.c:1551 msgid "safety factor" msgstr "Suojauksen kerroin" @@ -4422,7 +4630,7 @@ msgstr "Logaritminen" #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:185 -#: ../src/iop/profile_gamma.c:625 +#: ../src/iop/profile_gamma.c:639 msgid "gamma" msgstr "Gamma" @@ -4460,7 +4668,7 @@ #: ../build/lib/darktable/plugins/introspection_rawprepare.c:106 #: ../build/lib/darktable/plugins/introspection_rawprepare.c:179 -#: ../src/iop/rawprepare.c:946 +#: ../src/iop/rawprepare.c:954 msgid "white point" msgstr "Valkoinen piste" @@ -4476,9 +4684,9 @@ #. exposure #: ../build/lib/darktable/plugins/introspection_relight.c:43 #: ../build/lib/darktable/plugins/introspection_relight.c:98 -#: ../src/common/collection.c:720 ../src/gui/preferences.c:836 -#: ../src/gui/presets.c:684 ../src/iop/basicadj.c:598 ../src/iop/exposure.c:122 -#: ../src/iop/exposure.c:1117 ../src/libs/metadata_view.c:141 +#: ../src/common/collection.c:633 ../src/gui/preferences.c:834 +#: ../src/gui/presets.c:687 ../src/iop/basicadj.c:628 ../src/iop/exposure.c:122 +#: ../src/iop/exposure.c:1135 ../src/libs/metadata_view.c:143 msgid "exposure" msgstr "Valotus" @@ -4489,9 +4697,9 @@ #: ../build/lib/darktable/plugins/introspection_retouch.c:285 #: ../build/lib/darktable/plugins/introspection_retouch.c:426 -#: ../src/iop/basicadj.c:620 ../src/iop/channelmixerrgb.c:4617 -#: ../src/iop/colisa.c:305 ../src/iop/lowpass.c:587 ../src/iop/soften.c:377 -#: ../src/iop/vignette.c:970 ../src/libs/history.c:963 +#: ../src/iop/basicadj.c:650 ../src/iop/channelmixerrgb.c:4685 +#: ../src/iop/colisa.c:299 ../src/iop/lowpass.c:600 ../src/iop/soften.c:372 +#: ../src/iop/vignette.c:1057 ../src/libs/history.c:963 msgid "brightness" msgstr "Kirkkaus" @@ -4501,7 +4709,7 @@ msgstr "max_toisto" #: ../build/lib/darktable/plugins/introspection_retouch.c:444 -#: ../src/libs/metadata_view.c:329 +#: ../src/libs/metadata_view.c:333 msgid "unused" msgstr "Ei käytössä" @@ -4514,12 +4722,12 @@ msgstr "Paranna" #: ../build/lib/darktable/plugins/introspection_retouch.c:447 -#: ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2051 msgid "blur" msgstr "Sumenna" #: ../build/lib/darktable/plugins/introspection_retouch.c:448 -#: ../src/iop/retouch.c:1865 +#: ../src/iop/retouch.c:2049 msgid "fill" msgstr "Täytä" @@ -4532,9 +4740,9 @@ msgstr "Pyyhekumi" #: ../build/lib/darktable/plugins/introspection_retouch.c:458 -#: ../src/gui/presets.c:59 ../src/iop/watermark.c:1298 -#: ../src/libs/colorpicker.c:291 ../src/libs/image.c:612 -#: ../src/libs/modulegroups.c:2317 +#: ../src/gui/presets.c:61 ../src/iop/watermark.c:1346 +#: ../src/libs/colorpicker.c:320 ../src/libs/image.c:683 +#: ../src/libs/modulegroups.c:2301 msgid "color" msgstr "Väri" @@ -4570,45 +4778,93 @@ msgid "highlights color adjustment" msgstr "Huippuvalojen värinsäätö" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:70 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:141 -#: ../src/gui/accelerators.c:85 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:122 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:241 +#: ../src/gui/accelerators.c:101 msgid "skew" msgstr "Vinous" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:76 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:145 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:128 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:245 msgid "target white" msgstr "Valkoisen kohde" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:82 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:149 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:134 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:249 msgid "target black" msgstr "Mustan kohde" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:88 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:153 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:140 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:253 msgid "color processing" msgstr "Värien käsittely" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:94 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:157 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:146 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:257 msgid "preserve hue" msgstr "Säilytä sävy" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:171 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:152 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:261 +msgid "red attenuation" +msgstr "Punaisen vaimennus" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:158 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:265 +msgid "red rotation" +msgstr "Punaisen kierto" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:164 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:269 +msgid "green attenuation" +msgstr "Vihreän vaimennus" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:170 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:273 +msgid "green rotation" +msgstr "Vihreän kierto" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:176 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:277 +msgid "blue attenuation" +msgstr "Sinisen vaimennus" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:182 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:281 +msgid "blue rotation" +msgstr "Sinisen kierto" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:188 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:285 +msgid "recover purity" +msgstr "Palauta puhtaus" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:194 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:289 +msgid "base primaries" +msgstr "Perustan päävärit" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:303 msgid "per channel" msgstr "Kanavakohtainen" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:172 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:304 msgid "RGB ratio" msgstr "RGB suhde" -#: ../build/lib/darktable/plugins/introspection_temperature.c:66 -#: ../build/lib/darktable/plugins/introspection_temperature.c:121 -#: ../src/iop/temperature.c:1944 -msgid "emerald" -msgstr "Smaragdinvihreä" +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:308 +#: ../src/common/colorspaces.c:1377 ../src/common/colorspaces.c:1734 +msgid "work profile" +msgstr "Työskentelytilan väriprofiili" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:309 +msgid "Rec2020" +msgstr "Rec2020" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:310 +#: ../src/common/colorspaces.c:1750 +msgid "Display P3" +msgstr "Display P3" #: ../build/lib/darktable/plugins/introspection_tonecurve.c:135 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:232 @@ -4730,13 +4986,13 @@ #: ../build/lib/darktable/plugins/introspection_tonemap.cc:39 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:88 -#: ../src/iop/rgbcurve.c:184 ../src/iop/tonecurve.c:539 +#: ../src/iop/rgbcurve.c:186 ../src/iop/tonecurve.c:560 msgid "contrast compression" msgstr "Kontrastin litistys" #: ../build/lib/darktable/plugins/introspection_vibrance.c:33 #: ../build/lib/darktable/plugins/introspection_vibrance.c:76 -#: ../src/iop/basicadj.c:627 ../src/iop/vibrance.c:67 +#: ../src/iop/basicadj.c:657 ../src/iop/vibrance.c:67 msgid "vibrance" msgstr "Värikirkkaus" @@ -4772,7 +5028,7 @@ #: ../build/lib/darktable/plugins/introspection_vignette.c:146 #: ../build/lib/darktable/plugins/introspection_vignette.c:237 -#: ../src/iop/vignette.c:978 +#: ../src/iop/vignette.c:1066 msgid "shape" msgstr "Muoto" @@ -4797,21 +5053,21 @@ #: ../build/lib/darktable/plugins/introspection_watermark.c:142 #: ../build/lib/darktable/plugins/introspection_watermark.c:269 msgid "scale on" -msgstr "Skaalaaus" +msgstr "Skaalaus" #: ../build/lib/darktable/plugins/introspection_watermark.c:148 #: ../build/lib/darktable/plugins/introspection_watermark.c:273 msgid "scale marker to" -msgstr "Asteikon merkki" +msgstr "Leiman skaalaus" #: ../build/lib/darktable/plugins/introspection_watermark.c:154 #: ../build/lib/darktable/plugins/introspection_watermark.c:277 msgid "scale marker reference" -msgstr "Asteikon merkin viitearvo" +msgstr "Leiman skaalauksen viite" #: ../build/lib/darktable/plugins/introspection_watermark.c:323 #: ../src/imageio/format/tiff.c:125 ../src/imageio/format/xcf.c:159 -#: ../src/iop/borders.c:947 +#: ../src/iop/borders.c:960 msgid "image" msgstr "Kuva" @@ -4823,12 +5079,6 @@ msgid "smaller border" msgstr "Pienempi kehys" -#: ../build/lib/darktable/plugins/introspection_watermark.c:326 -#: ../src/libs/export.c:1135 ../src/libs/metadata_view.c:148 -#: ../src/libs/print_settings.c:2541 -msgid "height" -msgstr "Kuvan korkeus" - #: ../build/lib/darktable/plugins/introspection_watermark.c:327 msgid "advanced options" msgstr "Kehittyneet asetukset" @@ -4851,29 +5101,29 @@ #: ../build/lib/darktable/plugins/introspection_watermark.c:338 msgid "marker width" -msgstr "Merkin leveys" +msgstr "Leiman leveys" #: ../build/lib/darktable/plugins/introspection_watermark.c:339 msgid "marker height" -msgstr "Merkin korkeus" +msgstr "Leiman korkeus" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:6 +#: ../build/bin/tools/darktable_authors.h:6 msgid "developers" msgstr "Kehittäjät" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:11 +#: ../build/bin/tools/darktable_authors.h:11 msgid "translators" msgstr "Kääntäjät" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:16 +#: ../build/bin/tools/darktable_authors.h:16 msgid "contributors" msgstr "Avustajat" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:21 +#: ../build/bin/tools/darktable_authors.h:21 msgid "rawspeed contributors" msgstr "RawSpeed avustajat" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:26 +#: ../build/bin/tools/darktable_authors.h:26 msgid "integration contributors" msgstr "Integraation avustajat" @@ -4941,90 +5191,104 @@ msgid "Print your images" msgstr "Tulosta valokuvasi." -#: ../src/bauhaus/bauhaus.c:752 ../src/bauhaus/bauhaus.c:3689 +#: ../src/bauhaus/bauhaus.c:845 ../src/bauhaus/bauhaus.c:3957 msgid "sliders" msgstr "Liukusäätimet" -#: ../src/bauhaus/bauhaus.c:753 ../src/bauhaus/bauhaus.c:3694 +#: ../src/bauhaus/bauhaus.c:847 ../src/bauhaus/bauhaus.c:3962 msgid "dropdowns" msgstr "Pudotusvalikot" -#: ../src/bauhaus/bauhaus.c:754 ../src/bauhaus/bauhaus.c:3699 +#: ../src/bauhaus/bauhaus.c:849 ../src/bauhaus/bauhaus.c:3967 msgid "buttons" msgstr "Napit" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button on" msgstr "Nappi päällä" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button off" msgstr "Nappi pois" -#: ../src/bauhaus/bauhaus.c:3406 +#: ../src/bauhaus/bauhaus.c:3624 msgid "button pressed" msgstr "Nappia painettu" -#: ../src/bauhaus/bauhaus.c:3623 +#: ../src/bauhaus/bauhaus.c:3862 msgid "not that many sliders" msgstr "Ei niin monta likusäädintä" -#: ../src/bauhaus/bauhaus.c:3633 +#: ../src/bauhaus/bauhaus.c:3876 msgid "not that many dropdowns" msgstr "Ei niin monta pudostuvalikkoa" -#: ../src/bauhaus/bauhaus.c:3648 +#: ../src/bauhaus/bauhaus.c:3895 msgid "not that many buttons" msgstr "Ei niin monta nappia" -#: ../src/bauhaus/bauhaus.c:3653 ../src/gui/accelerators.c:348 +#: ../src/bauhaus/bauhaus.c:3900 ../src/gui/accelerators.c:389 msgid "value" msgstr "Arvo" -#: ../src/bauhaus/bauhaus.c:3654 ../src/bauhaus/bauhaus.c:3660 -#: ../src/gui/accelerators.c:326 +#: ../src/bauhaus/bauhaus.c:3901 ../src/bauhaus/bauhaus.c:3907 +#: ../src/gui/accelerators.c:368 msgid "button" msgstr "Nappi" -#: ../src/bauhaus/bauhaus.c:3655 +#: ../src/bauhaus/bauhaus.c:3902 msgid "force" -msgstr "Pakota." +msgstr "Voimakkuus" -#: ../src/bauhaus/bauhaus.c:3656 ../src/libs/navigation.c:187 -#: ../src/libs/navigation.c:199 +#: ../src/bauhaus/bauhaus.c:3903 ../src/libs/navigation.c:190 +#: ../src/libs/navigation.c:202 msgid "zoom" msgstr "zoom" -#: ../src/bauhaus/bauhaus.c:3659 +#: ../src/bauhaus/bauhaus.c:3906 ../src/libs/select.c:40 msgid "selection" msgstr "Valinta" -#: ../src/bauhaus/bauhaus.c:3678 +#: ../src/bauhaus/bauhaus.c:3946 msgid "slider" msgstr "Liukusäädin" -#: ../src/bauhaus/bauhaus.c:3683 +#: ../src/bauhaus/bauhaus.c:3951 msgid "dropdown" msgstr "Alasveto" -#: ../src/chart/main.c:504 ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 ../src/gui/accelerators.c:2278 -#: ../src/gui/accelerators.c:2355 ../src/gui/accelerators.c:2407 -#: ../src/gui/accelerators.c:2435 ../src/gui/accelerators.c:2495 -#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1043 -#: ../src/gui/preferences.c:1082 ../src/gui/presets.c:420 -#: ../src/gui/presets.c:563 ../src/gui/styles_dialog.c:519 -#: ../src/imageio/storage/disk.c:123 ../src/imageio/storage/gallery.c:110 -#: ../src/imageio/storage/latex.c:109 ../src/iop/lut3d.c:1546 -#: ../src/libs/collect.c:408 ../src/libs/copy_history.c:115 -#: ../src/libs/geotagging.c:928 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/styles.c:392 ../src/libs/styles.c:527 -#: ../src/libs/tagging.c:2489 ../src/libs/tagging.c:2525 +#: ../src/chart/main.c:504 ../src/common/database.c:3372 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 ../src/gui/accelerators.c:2497 +#: ../src/gui/accelerators.c:2579 ../src/gui/accelerators.c:2632 +#: ../src/gui/accelerators.c:2661 ../src/gui/accelerators.c:2723 +#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1081 ../src/gui/presets.c:422 +#: ../src/gui/presets.c:565 ../src/gui/styles_dialog.c:526 +#: ../src/imageio/storage/disk.c:198 ../src/imageio/storage/gallery.c:150 +#: ../src/imageio/storage/latex.c:146 ../src/iop/lut3d.c:1560 +#: ../src/libs/collect.c:425 ../src/libs/collect.c:3242 +#: ../src/libs/copy_history.c:115 ../src/libs/export_metadata.c:276 +#: ../src/libs/geotagging.c:929 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1711 +#: ../src/libs/metadata.c:462 ../src/libs/metadata_view.c:1222 +#: ../src/libs/recentcollect.c:228 ../src/libs/modulegroups.c:3466 +#: ../src/libs/styles.c:392 ../src/libs/styles.c:439 ../src/libs/styles.c:529 +#: ../src/libs/styles.c:624 ../src/libs/tagging.c:1488 +#: ../src/libs/tagging.c:1579 ../src/libs/tagging.c:1670 +#: ../src/libs/tagging.c:1806 ../src/libs/tagging.c:2085 +#: ../src/libs/tagging.c:2520 ../src/libs/tagging.c:2556 +#: ../src/libs/tagging.c:3502 msgid "_cancel" msgstr "_Peruuta" -#: ../src/chart/main.c:504 ../src/gui/preferences.c:1082 -#: ../src/gui/styles_dialog.c:520 ../src/libs/styles.c:392 +#: ../src/chart/main.c:504 ../src/gui/preferences.c:1081 +#: ../src/gui/styles_dialog.c:527 ../src/libs/collect.c:3243 +#: ../src/libs/export_metadata.c:277 ../src/libs/metadata.c:463 +#: ../src/libs/metadata_view.c:1223 ../src/libs/recentcollect.c:229 +#: ../src/libs/styles.c:392 ../src/libs/tagging.c:1671 +#: ../src/libs/tagging.c:1807 ../src/libs/tagging.c:2086 +#: ../src/libs/tagging.c:3503 msgid "_save" msgstr "_Tallenna" @@ -5038,65 +5302,65 @@ "Keskiarvo dE: %.02f\n" "Suurin dE: %.02f" -#: ../src/cli/main.c:247 +#: ../src/cli/main.c:270 msgid "TODO: sorry, due to API restrictions we currently cannot set the BPP to" msgstr "" "TODO: anteeksi, API-rajoitusten takia emme voi toistaiseksi asettaa BPP:tä " "arvoon" -#: ../src/cli/main.c:259 +#: ../src/cli/main.c:282 msgid "unknown option for --hq" msgstr "Tuntematon asetus --hq valinnassa" -#: ../src/cli/main.c:275 +#: ../src/cli/main.c:298 msgid "unknown option for --export_masks" msgstr "Tuntematon asetus --export_masks valinnassa" -#: ../src/cli/main.c:291 +#: ../src/cli/main.c:314 msgid "unknown option for --upscale" msgstr "Tuntematon asetus --upscale valinnassa" -#: ../src/cli/main.c:316 +#: ../src/cli/main.c:339 msgid "unknown option for --apply-custom-presets" msgstr "Tuntematon asetus --apply-custom-presets valinnassa" -#: ../src/cli/main.c:327 +#: ../src/cli/main.c:350 msgid "too long ext for --out-ext" msgstr "Liian pitkä ext valinnalle --out-ext" -#: ../src/cli/main.c:344 +#: ../src/cli/main.c:367 #, c-format msgid "notice: input file or dir '%s' doesn't exist, skipping\n" msgstr "Huomio: Tuonnin tiedostoa tai hakemistoa '%s' ei ole, ohitetaan\n" -#: ../src/cli/main.c:353 +#: ../src/cli/main.c:376 #, c-format msgid "incorrect ICC type for --icc-type: '%s'\n" msgstr "Virheellinen ICC-tyyppi valinnalle --icc-type: '%s'\n" -#: ../src/cli/main.c:369 +#: ../src/cli/main.c:392 #, c-format msgid "notice: ICC file '%s' doesn't exist, skipping\n" msgstr "Huomio: ICC-tiedostoa '%s' ei ole, ohitetaan\n" -#: ../src/cli/main.c:378 +#: ../src/cli/main.c:401 #, c-format msgid "incorrect ICC intent for --icc-intent: '%s'\n" msgstr "Virheellinen ICC-esitystapa valinnalle --icc-intent: '%s'\n" -#: ../src/cli/main.c:396 +#: ../src/cli/main.c:419 #, c-format msgid "warning: unknown option '%s'\n" msgstr "Varoitus: Tuntematon asetus '%s'\n" -#: ../src/cli/main.c:454 +#: ../src/cli/main.c:477 #, c-format msgid "error: input file and import opts specified! that's not supported!\n" msgstr "" "Virhe: Tuotava tiedosto ja tuonnin valintoja määritetty! Tämä ei ole " "tuettu!\n" -#: ../src/cli/main.c:487 +#: ../src/cli/main.c:510 #, c-format msgid "" "notice: output location is a directory. assuming '%s/$(FILE_NAME).%s' output " @@ -5106,48 +5370,48 @@ "viennin nimeämiskäytännöksi." #. output file exists or there's output ext specified and it's same as file... -#: ../src/cli/main.c:502 +#: ../src/cli/main.c:525 msgid "output file already exists, it will get renamed" msgstr "Tiedostonimi on jo olemassa, vietävä tiedosto nimetään uudelleen." #. one of inputs was a failure, no prob -#: ../src/cli/main.c:532 +#: ../src/cli/main.c:555 #, c-format msgid "error: can't open folder %s" msgstr "Virhe: Hakemiston %s avaus ei onnistu." -#: ../src/cli/main.c:549 +#: ../src/cli/main.c:572 #, c-format msgid "error: can't open file %s" msgstr "Virhe: Tiedoston %s avaus ei onnistu." -#: ../src/cli/main.c:566 +#: ../src/cli/main.c:589 #, c-format msgid "no images to export, aborting\n" msgstr "Ei vietäviä valokuvia, keskeytetään.\n" -#: ../src/cli/main.c:583 +#: ../src/cli/main.c:606 #, c-format msgid "error: can't open XMP file %s" msgstr "Virhe: XMP-tiedoston %s avaus ei onnistu." -#: ../src/cli/main.c:604 +#: ../src/cli/main.c:627 msgid "empty history stack" msgstr "Tyhjä muokkaushistoria." #. too long ext, no point in wasting time -#: ../src/cli/main.c:616 +#: ../src/cli/main.c:639 #, c-format msgid "too long output file extension: %s\n" msgstr "Liian pitkä vietävän tiedoston pääte: %s\n" #. no ext or empty ext, no point in wasting time -#: ../src/cli/main.c:624 +#: ../src/cli/main.c:647 #, c-format msgid "no output file extension given\n" msgstr "Vietävän tiedoston päätettä ei annettu\n" -#: ../src/cli/main.c:663 +#: ../src/cli/main.c:692 msgid "" "cannot find disk storage module. please check your installation, something " "seems to be broken." @@ -5155,18 +5419,18 @@ "Tiedostojen tallennusmoduulia ei löydy. Ole hyvä ja tarkista asennuksesi, " "jotain näyttäisi olevan rikki." -#: ../src/cli/main.c:673 +#: ../src/cli/main.c:702 msgid "failed to get parameters from storage module, aborting export ..." msgstr "" "Tiedostojen levylle tallennusmoduulin parametrien haku epäonnistui, " "keskeytetään vienti..." -#: ../src/cli/main.c:689 +#: ../src/cli/main.c:718 #, c-format msgid "unknown extension '.%s'" msgstr "Tuntematon tiedostopääte '.%s'." -#: ../src/cli/main.c:699 +#: ../src/cli/main.c:728 msgid "failed to get parameters from format module, aborting export ..." msgstr "Muoto-moduulin parametrien haku epäonnistui, keskeytetään vienti..." @@ -5213,203 +5477,209 @@ "Kamera `%s' liitännässä `%s' tulee yhdistää udelleen.\n" "Varmista, että se sallii yhteyden eikä sitä yhdistetä muutoin." -#: ../src/common/collection.c:673 +#: ../src/common/collection.c:586 msgid "too much time to update aspect ratio for the collection" msgstr "Kokoelman kuvasuhteen päivittäminen vie liian paljon aikaa." -#: ../src/common/collection.c:688 +#: ../src/common/collection.c:601 msgid "film roll" msgstr "Filmirulla" -#: ../src/common/collection.c:690 +#: ../src/common/collection.c:603 msgid "folder" msgstr "Hakemisto" -#: ../src/common/collection.c:692 +#: ../src/common/collection.c:605 msgid "camera" msgstr "Kamera" -#: ../src/common/collection.c:694 ../src/libs/export_metadata.c:189 -#: ../src/libs/tagging.c:3281 +#: ../src/common/collection.c:607 ../src/libs/export_metadata.c:176 +#: ../src/libs/tagging.c:3312 msgid "tag" msgstr "Tunniste" -#: ../src/common/collection.c:696 +#: ../src/common/collection.c:609 msgid "capture date" msgstr "Kuvan päivä" -#: ../src/common/collection.c:698 ../src/libs/filtering.c:61 +#: ../src/common/collection.c:611 ../src/libs/filtering.c:61 msgid "capture time" msgstr "Kuvan aika" -#: ../src/common/collection.c:700 ../src/libs/filtering.c:62 +#: ../src/common/collection.c:613 ../src/libs/filtering.c:62 msgid "import time" msgstr "Tuonnin aika" -#: ../src/common/collection.c:702 ../src/libs/filtering.c:63 +#: ../src/common/collection.c:615 ../src/libs/filtering.c:63 msgid "modification time" msgstr "Muokkauksen aika" -#: ../src/common/collection.c:704 ../src/libs/filtering.c:64 +#: ../src/common/collection.c:617 ../src/libs/filtering.c:64 msgid "export time" msgstr "Viennin aika" -#: ../src/common/collection.c:706 ../src/libs/filtering.c:65 +#: ../src/common/collection.c:619 ../src/libs/filtering.c:65 msgid "print time" msgstr "Tulostuksen aika" -#: ../src/common/collection.c:708 ../src/libs/collect.c:3222 -#: ../src/libs/filtering.c:2163 ../src/libs/filtering.c:2183 +#: ../src/common/collection.c:621 ../src/libs/collect.c:3586 +#: ../src/libs/filtering.c:2237 ../src/libs/filtering.c:2257 #: ../src/libs/filters/history.c:153 ../src/libs/history.c:92 msgid "history" msgstr "Historia" -#: ../src/common/collection.c:710 ../src/common/colorlabels.c:342 -#: ../src/develop/lightroom.c:1550 ../src/dtgtk/thumbnail.c:1560 +#: ../src/common/collection.c:623 ../src/common/colorlabels.c:341 +#: ../src/develop/lightroom.c:1607 ../src/dtgtk/thumbnail.c:1548 #: ../src/libs/filtering.c:68 ../src/libs/filters/colors.c:301 #: ../src/libs/filters/colors.c:312 ../src/libs/tools/colorlabels.c:93 msgid "color label" msgstr "Värileima" #. iso -#: ../src/common/collection.c:716 ../src/gui/preferences.c:832 -#: ../src/gui/presets.c:666 ../src/libs/camera.c:558 -#: ../src/libs/metadata_view.c:145 +#: ../src/common/collection.c:629 ../src/gui/preferences.c:830 +#: ../src/gui/presets.c:669 ../src/libs/camera.c:558 +#: ../src/libs/metadata_view.c:149 msgid "ISO" msgstr "ISO" #. aperture -#: ../src/common/collection.c:718 ../src/gui/preferences.c:840 -#: ../src/gui/presets.c:701 ../src/libs/camera.c:545 ../src/libs/camera.c:547 -#: ../src/libs/metadata_view.c:140 +#: ../src/common/collection.c:631 ../src/gui/preferences.c:838 +#: ../src/gui/presets.c:704 ../src/libs/camera.c:545 ../src/libs/camera.c:547 +#: ../src/libs/metadata_view.c:142 msgid "aperture" msgstr "Aukko" -#: ../src/common/collection.c:724 ../src/libs/filtering.c:57 -#: ../src/libs/filters/filename.c:364 ../src/libs/metadata_view.c:126 +#: ../src/common/collection.c:637 ../src/libs/filtering.c:57 +#: ../src/libs/filters/filename.c:369 ../src/libs/metadata_view.c:128 msgid "filename" msgstr "Tiedostonimi" -#: ../src/common/collection.c:726 ../src/develop/lightroom.c:1541 +#: ../src/common/collection.c:639 ../src/develop/lightroom.c:1598 #: ../src/libs/geotagging.c:141 msgid "geotagging" msgstr "Paikkatiedot" -#: ../src/common/collection.c:728 ../src/libs/filters/grouping.c:167 +#: ../src/common/collection.c:641 ../src/libs/filters/grouping.c:167 #: ../src/libs/tools/global_toolbox.c:394 msgid "grouping" msgstr "Ryhmitys" -#: ../src/common/collection.c:730 ../src/dtgtk/thumbnail.c:1575 -#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:129 -#: ../src/libs/metadata_view.c:336 +#: ../src/common/collection.c:643 ../src/dtgtk/thumbnail.c:1563 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:340 msgid "local copy" msgstr "Paikalliskopio" -#: ../src/common/collection.c:732 ../src/gui/preferences.c:808 +#: ../src/common/collection.c:645 ../src/gui/preferences.c:806 msgid "module" msgstr "Moduuli" -#: ../src/common/collection.c:734 ../src/gui/hist_dialog.c:346 -#: ../src/gui/styles_dialog.c:722 ../src/gui/styles_dialog.c:771 +#: ../src/common/collection.c:647 ../src/gui/hist_dialog.c:346 +#: ../src/gui/styles_dialog.c:734 ../src/gui/styles_dialog.c:783 #: ../src/libs/filters/module_order.c:161 ../src/libs/ioporder.c:39 msgid "module order" msgstr "Moduulien järjestys" -#: ../src/common/collection.c:736 +#: ../src/common/collection.c:649 msgid "range rating" msgstr "Alueen luokitus" -#: ../src/common/collection.c:738 ../src/common/ratings.c:322 -#: ../src/develop/lightroom.c:1525 ../src/libs/filtering.c:67 +#: ../src/common/collection.c:651 ../src/common/ratings.c:321 +#: ../src/develop/lightroom.c:1582 ../src/libs/filtering.c:67 #: ../src/libs/tools/ratings.c:110 msgid "rating" msgstr "Luokittelu" -#: ../src/common/collection.c:740 +#: ../src/common/collection.c:653 msgid "search" msgstr "Haku" -#: ../src/common/collection.c:1509 ../src/common/colorlabels.c:335 -#: ../src/develop/lightroom.c:836 ../src/gui/guides.c:732 -#: ../src/iop/colorzones.c:2265 ../src/iop/temperature.c:1928 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:261 +#: ../src/common/collection.c:1376 ../src/common/colorlabels.c:334 +#: ../src/develop/lightroom.c:889 ../src/gui/guides.c:732 +#: ../src/iop/colorzones.c:2501 ../src/iop/temperature.c:1902 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:261 msgid "yellow" msgstr "Keltainen" -#: ../src/common/collection.c:1515 ../src/common/color_vocabulary.c:339 -#: ../src/common/colorlabels.c:338 ../src/iop/colorzones.c:2269 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:264 +#: ../src/common/collection.c:1382 ../src/common/color_vocabulary.c:339 +#: ../src/common/colorlabels.c:337 ../src/iop/colorzones.c:2505 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:264 msgid "purple" msgstr "Purppura" -#: ../src/common/collection.c:1532 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1400 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "auto applied" msgstr "Automaattisesti käytöönotettu" -#: ../src/common/collection.c:1536 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1406 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "altered" msgstr "Muokattu" -#: ../src/common/collection.c:1553 ../src/common/collection.c:1649 -#: ../src/libs/collect.c:1166 ../src/libs/collect.c:1330 -#: ../src/libs/collect.c:1354 ../src/libs/collect.c:1473 -#: ../src/libs/collect.c:2432 +#: ../src/common/collection.c:1424 ../src/common/collection.c:1535 +#: ../src/libs/collect.c:1242 ../src/libs/collect.c:1426 +#: ../src/libs/collect.c:1452 ../src/libs/collect.c:1592 +#: ../src/libs/collect.c:2662 msgid "not tagged" msgstr "Ei sisällä paikkatietoja" -#: ../src/common/collection.c:1554 ../src/libs/collect.c:1354 +#: ../src/common/collection.c:1425 ../src/libs/collect.c:1452 #: ../src/libs/map_locations.c:742 msgid "tagged" msgstr "Sisältää paikkatiedot" -#: ../src/common/collection.c:1555 +#: ../src/common/collection.c:1426 msgid "tagged*" msgstr "Merkitty*" #. local copy -#: ../src/common/collection.c:1588 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1460 ../src/libs/collect.c:1883 #: ../src/libs/filters/local_copy.c:38 msgid "not copied locally" msgstr "Paikallista kopiota ei luotu" -#: ../src/common/collection.c:1592 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1465 ../src/libs/collect.c:1882 #: ../src/libs/filters/local_copy.c:38 msgid "copied locally" msgstr "Kopioitu paikallisesti" -#: ../src/common/collection.c:1974 ../src/libs/collect.c:1879 +#. if its undefined +#: ../src/common/collection.c:1507 ../src/common/collection.c:1619 +#: ../src/libs/collect.c:2209 ../src/libs/collect.c:2210 +msgid "unnamed" +msgstr "Nimeämätön" + +#: ../src/common/collection.c:1905 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:147 ../src/libs/filters/grouping.c:170 msgid "group leaders" msgstr "Ryhmänjohtaja" -#: ../src/common/collection.c:1978 ../src/libs/collect.c:1879 +#: ../src/common/collection.c:1909 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:150 ../src/libs/filters/grouping.c:170 msgid "group followers" msgstr "Ryhmän seuraajat" -#: ../src/common/collection.c:2126 ../src/libs/collect.c:1959 +#: ../src/common/collection.c:2066 ../src/libs/collect.c:2100 msgid "not defined" msgstr "Ei määritetty" -#: ../src/common/collection.c:2575 +#: ../src/common/collection.c:2521 #, c-format msgid "<b>%d</b> image (#<b>%d</b>) selected of <b>%d</b>" msgstr "<b>%d</b> (#<b>%d</b>) / <b>%d</b> kuva valittu" -#: ../src/common/collection.c:2582 +#: ../src/common/collection.c:2528 #, c-format msgid "<b>%d</b> image selected of <b>%d</b>" msgid_plural "<b>%d</b> images selected of <b>%d</b>" msgstr[0] "<b>%d</b> / <b>%d</b> kuva valittu" msgstr[1] "<b>%d</b> / <b>%d</b> kuvaa valittu" -#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2324 -#: ../src/develop/blend_gui.c:2372 ../src/gui/guides.c:729 -#: ../src/iop/channelmixerrgb.c:4620 ../src/iop/levels.c:671 -#: ../src/iop/rgblevels.c:937 ../src/iop/rgblevels.c:1032 +#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2340 +#: ../src/develop/blend_gui.c:2388 ../src/gui/guides.c:729 +#: ../src/iop/channelmixerrgb.c:4688 ../src/iop/levels.c:687 +#: ../src/iop/rgblevels.c:969 ../src/iop/rgblevels.c:1083 msgid "gray" msgstr "Harmaa" @@ -5618,12 +5888,12 @@ msgstr "Tumma syaani" #: ../src/common/color_vocabulary.c:297 ../src/common/color_vocabulary.c:317 -#: ../src/iop/colorzones.c:2267 +#: ../src/iop/colorzones.c:2503 msgid "aqua" msgstr "Aqua" #: ../src/common/color_vocabulary.c:298 ../src/gui/guides.c:733 -#: ../src/iop/temperature.c:1926 +#: ../src/iop/temperature.c:1900 msgid "cyan" msgstr "Syaani" @@ -5689,7 +5959,7 @@ msgstr "Tumma magenta" #: ../src/common/color_vocabulary.c:341 ../src/gui/guides.c:734 -#: ../src/iop/colorzones.c:2270 ../src/iop/temperature.c:1924 +#: ../src/iop/colorzones.c:2506 ../src/iop/temperature.c:1898 msgid "magenta" msgstr "Magenta" @@ -5701,90 +5971,85 @@ msgid "color not found" msgstr "Väriä ei löytynyt" -#: ../src/common/colorlabels.c:310 +#: ../src/common/colorlabels.c:309 #, c-format msgid "colorlabels set to %s" msgstr "Värileimat asetettu %s" -#: ../src/common/colorlabels.c:312 +#: ../src/common/colorlabels.c:311 msgid "all colorlabels removed" msgstr "Kaikki värileimat poistettu" -#: ../src/common/colorlabels.c:333 ../src/gui/accelerators.c:170 -#: ../src/libs/image.c:592 +#: ../src/common/colorlabels.c:332 ../src/gui/accelerators.c:188 +#: ../src/libs/image.c:660 msgid "clear" msgstr "Poista" -#. init the category profile with NULL profile, the actual profile must be retrieved dynamically by the caller -#: ../src/common/colorspaces.c:1229 ../src/common/colorspaces.c:1518 -msgid "work profile" -msgstr "Työskentelytilan väriprofiili" - -#: ../src/common/colorspaces.c:1232 ../src/common/colorspaces.c:1514 -#: ../src/iop/colorout.c:885 +#: ../src/common/colorspaces.c:1382 ../src/common/colorspaces.c:1730 +#: ../src/iop/colorout.c:901 msgid "export profile" msgstr "Viennin väriprofiili" -#: ../src/common/colorspaces.c:1236 ../src/common/colorspaces.c:1516 -#: ../src/views/darkroom.c:2542 +#: ../src/common/colorspaces.c:1387 ../src/common/colorspaces.c:1732 +#: ../src/views/darkroom.c:2383 msgid "softproof profile" msgstr "Vedoksen esikatselun profiili" -#: ../src/common/colorspaces.c:1242 ../src/common/colorspaces.c:1498 +#: ../src/common/colorspaces.c:1397 ../src/common/colorspaces.c:1714 msgid "system display profile" msgstr "Käyttöjärjestelmän profiili" -#: ../src/common/colorspaces.c:1245 ../src/common/colorspaces.c:1520 +#: ../src/common/colorspaces.c:1402 ../src/common/colorspaces.c:1736 msgid "system display profile (second window)" msgstr "Käyttöjärjestelmän profiili (toinen ikkuna)" -#: ../src/common/colorspaces.c:1255 +#: ../src/common/colorspaces.c:1415 msgid "sRGB (web-safe)" msgstr "sRGB (web-yhteensopiva)" -#: ../src/common/colorspaces.c:1269 ../src/common/colorspaces.c:1522 +#: ../src/common/colorspaces.c:1435 ../src/common/colorspaces.c:1738 msgid "Rec709 RGB" msgstr "Rec709 RGB" -#: ../src/common/colorspaces.c:1279 +#: ../src/common/colorspaces.c:1450 msgid "PQ Rec2020 RGB" msgstr "PQ Rec2020 RGB" -#: ../src/common/colorspaces.c:1284 +#: ../src/common/colorspaces.c:1458 msgid "HLG Rec2020 RGB" msgstr "HLG Rec2020 RGB" -#: ../src/common/colorspaces.c:1289 +#: ../src/common/colorspaces.c:1465 msgid "PQ P3 RGB" msgstr "PQ P3 RGB" -#: ../src/common/colorspaces.c:1294 +#: ../src/common/colorspaces.c:1471 msgid "HLG P3 RGB" msgstr "HLG P3 RGB" -#: ../src/common/colorspaces.c:1299 ../src/common/colorspaces.c:1524 -msgid "linear ProPhoto RGB" -msgstr "Suoralinjainen ProPhoto RGB" +#: ../src/common/colorspaces.c:1478 +msgid "Display P3 RGB" +msgstr "Display P3 RGB" -#: ../src/common/colorspaces.c:1304 ../src/common/colorspaces.c:1492 +#: ../src/common/colorspaces.c:1493 ../src/common/colorspaces.c:1708 msgid "linear XYZ" msgstr "Suoralinjainen XYZ" -#: ../src/common/colorspaces.c:1308 ../src/common/colorspaces.c:1494 -#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2000 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:267 +#: ../src/common/colorspaces.c:1500 ../src/common/colorspaces.c:1710 +#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2016 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:293 msgid "Lab" msgstr "Lab" -#: ../src/common/colorspaces.c:1313 ../src/common/colorspaces.c:1496 +#: ../src/common/colorspaces.c:1508 ../src/common/colorspaces.c:1712 msgid "linear infrared BGR" msgstr "Suoralinjainen infrapuna BGR" -#: ../src/common/colorspaces.c:1317 +#: ../src/common/colorspaces.c:1513 msgid "BRG (for testing)" msgstr "BRG (testaukseen)" -#: ../src/common/colorspaces.c:1409 +#: ../src/common/colorspaces.c:1619 #, c-format msgid "" "profile `%s' not usable as histogram profile. it has been replaced by sRGB!" @@ -5792,47 +6057,47 @@ "Profiili `%s' ei sovellu histogrammin profiiliksi. Se on korvattu sRGB-" "väriprofiililla!" -#: ../src/common/colorspaces.c:1500 +#: ../src/common/colorspaces.c:1716 msgid "embedded ICC profile" msgstr "Upotettu väriprofiili" -#: ../src/common/colorspaces.c:1502 +#: ../src/common/colorspaces.c:1718 msgid "embedded matrix" msgstr "Upotettu värimatriisi" -#: ../src/common/colorspaces.c:1504 +#: ../src/common/colorspaces.c:1720 msgid "standard color matrix" msgstr "Tavanomainen värimatriisi" -#: ../src/common/colorspaces.c:1506 +#: ../src/common/colorspaces.c:1722 msgid "enhanced color matrix" msgstr "Paranneltu värimatriisi" -#: ../src/common/colorspaces.c:1508 +#: ../src/common/colorspaces.c:1724 msgid "vendor color matrix" msgstr "Valmistajan värimatriisi" -#: ../src/common/colorspaces.c:1510 +#: ../src/common/colorspaces.c:1726 msgid "alternate color matrix" msgstr "Vaihtoehtoinen värimatriisi" -#: ../src/common/colorspaces.c:1512 +#: ../src/common/colorspaces.c:1728 msgid "BRG (experimental)" msgstr "BRG (kokeellinen)" -#: ../src/common/colorspaces.c:1526 +#: ../src/common/colorspaces.c:1742 msgid "PQ Rec2020" msgstr "PQ Rec2020" -#: ../src/common/colorspaces.c:1528 +#: ../src/common/colorspaces.c:1744 msgid "HLG Rec2020" msgstr "HLG Rec2020" -#: ../src/common/colorspaces.c:1530 +#: ../src/common/colorspaces.c:1746 msgid "PQ P3" msgstr "PQ P3" -#: ../src/common/colorspaces.c:1532 +#: ../src/common/colorspaces.c:1748 msgid "HLG P3" msgstr "HLG P3" @@ -5860,40 +6125,40 @@ msgid "printing `%s' on `%s'" msgstr "Tulostetaan kuva `%s' kohteessa `%s'" -#: ../src/common/darktable.c:250 +#: ../src/common/darktable.c:375 #, c-format msgid "found strange path `%s'" msgstr "Löydettiin outo polku `%s'." -#: ../src/common/darktable.c:265 +#: ../src/common/darktable.c:390 #, c-format msgid "error loading directory `%s'" msgstr "Virhe hakemiston `%s' latauksessa." -#: ../src/common/darktable.c:289 +#: ../src/common/darktable.c:414 #, c-format msgid "file `%s' has unknown format!" msgstr "Tiedoston `%s' muoto on tuntematon!" -#: ../src/common/darktable.c:302 ../src/control/jobs/control_jobs.c:2118 -#: ../src/control/jobs/control_jobs.c:2177 +#: ../src/common/darktable.c:427 ../src/control/jobs/control_jobs.c:2121 +#: ../src/control/jobs/control_jobs.c:2180 #, c-format msgid "error loading file `%s'" msgstr "Virhe tiedoston `%s' latauksessa." -#: ../src/common/darktable.c:1509 +#: ../src/common/darktable.c:1650 msgid "configuration information" msgstr "Tietoja konfiguraatiosta" -#: ../src/common/darktable.c:1511 -msgid "show this information again" -msgstr "Näytä tämä tieto uudestaan" - -#: ../src/common/darktable.c:1511 -msgid "understood" -msgstr "Asia ymmärretty" +#: ../src/common/darktable.c:1652 +msgid "_show this information again" +msgstr "_Näytä tämä tieto uudestaan" + +#: ../src/common/darktable.c:1652 +msgid "_understood" +msgstr "_Asia ymmärretty" -#: ../src/common/darktable.c:1968 +#: ../src/common/darktable.c:2106 msgid "" "the RCD demosaicer has been defined as default instead of PPG because of " "better quality and performance." @@ -5901,11 +6166,11 @@ "RCD mosaiikin palautusmenetelmä on asetettu oletukseksi PPG:n sijaan " "paremman laadun ja suorituskyvyn takia." -#: ../src/common/darktable.c:1970 +#: ../src/common/darktable.c:2108 msgid "see preferences/darkroom/demosaicing for zoomed out darkroom mode" msgstr "Katso Asetukset/Pimiö/Mosaiikin palautus pimiötilan pienoiskuville" -#: ../src/common/darktable.c:1976 +#: ../src/common/darktable.c:2114 msgid "" "the user interface and the underlying internals for tuning darktable " "performance have changed." @@ -5913,7 +6178,7 @@ "Käyttöliittymä ja järjestelmän suorituskykyyn vaikuttavat sisäiset asetukset " "ovat muuttuneet." -#: ../src/common/darktable.c:1978 +#: ../src/common/darktable.c:2116 msgid "" "you won't find headroom and friends any longer, instead in preferences/" "processing use:" @@ -5921,15 +6186,15 @@ "Et löydä enää kaikkia vanhoja suorituskyvyn asetuksia. Valitse Asetukset / " "Käsittely valikossa:" -#: ../src/common/darktable.c:1980 +#: ../src/common/darktable.c:2118 msgid "1) darktable resources" msgstr "1) Darktablen resurssit" -#: ../src/common/darktable.c:1982 +#: ../src/common/darktable.c:2120 msgid "2) tune OpenCL performance" msgstr "2) Säädä OpenCL suorituskykyä" -#: ../src/common/darktable.c:1989 +#: ../src/common/darktable.c:2127 msgid "" "some global config parameters relevant for OpenCL performance are not used " "any longer." @@ -5937,49 +6202,50 @@ "Jotkin OpenCL:n yleiseen suorituskykyyn liittyvät asetukset eivät ole enää " "käytössä." -#: ../src/common/darktable.c:1991 +#: ../src/common/darktable.c:2129 msgid "" -"instead you will find 'per device' data in 'cl_device_v4_canonical-name'. " +"instead you will find 'per device' data in 'cldevice_v5_canonical-name'. " "content is:" msgstr "" -"Niiden sijaan löydät 'per device' tiedot 'cl_device_v4_canonical-name' " -"paikasta. Sisältö on:" +"Niiden sijaan löydät 'laitekohtaiset' tiedot 'cldevice_v5_canonical-name' " +"sijainnista. Sisältö on:" -#: ../src/common/darktable.c:1993 ../src/common/darktable.c:2012 +#: ../src/common/darktable.c:2131 ../src/common/darktable.c:2150 +#: ../src/common/darktable.c:2165 msgid "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" msgstr "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" -#: ../src/common/darktable.c:1995 ../src/common/darktable.c:2014 +#: ../src/common/darktable.c:2133 ../src/common/darktable.c:2152 msgid "you may tune as before except 'magic'" msgstr "Voit säätää näitä kuten ennenkin, pois lukien 'magic' asetukset." -#: ../src/common/darktable.c:2001 +#: ../src/common/darktable.c:2139 msgid "" "your OpenCL compiler settings for all devices have been reset to default." msgstr "" "OpenCL kääntäjän asetukset kaikille laitteille on palautettu " "oletusasetuksiin." -#: ../src/common/darktable.c:2008 +#: ../src/common/darktable.c:2146 msgid "" "OpenCL global config parameters 'per device' data has been recreated with an " "updated name." msgstr "" -"OpenCL:n yleiset 'per laite' kohtaiset konfiguraation asetustiedot on luotu " +"OpenCL:n yleiset 'laitekohtaiset' konfiguraation asetustiedot on luotu " "päivitetyllä nimellä." -#: ../src/common/darktable.c:2010 +#: ../src/common/darktable.c:2148 ../src/common/darktable.c:2163 msgid "" -"you will find 'per device' data in 'cl_device_v5_canonical-name'. content is:" +"you will find 'per device' data in 'cldevice_v5_canonical-name'. content is:" msgstr "" -"Niiden sijaan löydät 'per device' tiedot 'cl_device_v5_canonical-name' " -"paikasta. Sisältö on:" +"Löydät 'laitekohtaiset' tiedot 'cldevice_v5_canonical-name' sijainnista. " +"Sisältö on:" -#: ../src/common/darktable.c:2016 +#: ../src/common/darktable.c:2154 msgid "" "If you're using device names in 'opencl_device_priority' you should update " "them to the new names." @@ -5987,7 +6253,23 @@ "Jos käytät laitenimiä 'opencl_device_priority' asetuksissa, sinun tulee " "päivittää ne vastaamaan uusia nimiä." -#: ../src/common/database.c:2756 +#: ../src/common/darktable.c:2161 +msgid "" +"OpenCL 'per device' config data have been automatically extended by 'unified-" +"fraction'." +msgstr "" +"OpenCL 'laitekohtainen' konfiguraatio on laajennettu 'yhtenäisen murto-osan' " +"toimesta automaattisesti." + +#: ../src/common/darktable.c:2172 +msgid "" +"OpenCL 'per device' compiler settings might have been updated.\n" +"\n" +msgstr "" +"OpenCL:n 'laitekohtaiset' kääntäjän asetukset on saatettu muuttaa.\n" +"\n" + +#: ../src/common/database.c:3350 #, c-format msgid "" "\n" @@ -6045,30 +6327,19 @@ " Saatat aiheuttaa merkittäviä epämääräisyyksiä kuvatietokantaasi.</i>\n" #. clang-format on -#: ../src/common/database.c:2777 +#: ../src/common/database.c:3371 msgid "error starting darktable" msgstr "Virhe Darktablen käynnistyksessä" -#: ../src/common/database.c:2778 ../src/libs/collect.c:2915 -#: ../src/libs/export_metadata.c:288 ../src/libs/import.c:1702 -#: ../src/libs/metadata.c:633 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:227 ../src/libs/modulegroups.c:3464 -#: ../src/libs/styles.c:438 ../src/libs/styles.c:621 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3471 -msgid "cancel" -msgstr "Peruuta" +#: ../src/common/database.c:3372 +msgid "_delete database lock files" +msgstr "_Poista tietokannan lukkotiedostot" -#: ../src/common/database.c:2778 -msgid "delete database lock files" -msgstr "Poista tietokannan lukkotiedostot" - -#: ../src/common/database.c:2784 +#: ../src/common/database.c:3378 msgid "are you sure?" msgstr "Oletko varma?" -#: ../src/common/database.c:2785 +#: ../src/common/database.c:3379 msgid "" "\n" "do you really want to delete the lock files?\n" @@ -6076,20 +6347,19 @@ "\n" "Haluatko varmasti poistaa lukko-tiedostot?\n" -#: ../src/common/database.c:2785 ../src/common/variables.c:703 -#: ../src/develop/imageop_gui.c:210 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 -msgid "yes" -msgstr "Kyllä" +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2597 +msgid "_no" +msgstr "_en" + +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2596 +msgid "_yes" +msgstr "_kyllä" -#: ../src/common/database.c:2801 ../src/libs/export_metadata.c:164 -#: ../src/libs/geotagging.c:811 +#: ../src/common/database.c:3395 msgid "done" msgstr "Valmis" -#: ../src/common/database.c:2802 +#: ../src/common/database.c:3396 msgid "" "\n" "successfully deleted the lock files.\n" @@ -6099,17 +6369,17 @@ "Poistettiin lukkotiedostot onnistuneesti\n" "Voit nyt käynnistää Darktablen uudestaan.\n" -#. the button to close the popup -#: ../src/common/database.c:2803 ../src/common/database.c:2810 -#: ../src/libs/filters/filename.c:452 -msgid "ok" -msgstr "OK" +#: ../src/common/database.c:3397 ../src/common/database.c:3404 +#: ../src/gui/accelerators.c:2580 ../src/gui/accelerators.c:2662 +#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:566 +msgid "_ok" +msgstr "_Ok" -#: ../src/common/database.c:2806 +#: ../src/common/database.c:3400 msgid "error" msgstr "Virhe" -#: ../src/common/database.c:2807 +#: ../src/common/database.c:3401 #, c-format msgid "" "\n" @@ -6123,7 +6393,7 @@ "Voit yrittää poistaa ne käsin <i>data.db.lock</i> ja <i>library.db.lock</i>\n" "hakemistosta <a href=\"file:///%s\">%s</a>.\n" -#: ../src/common/database.c:2924 +#: ../src/common/database.c:3518 #, c-format msgid "" "the database lock file contains a pid that seems to be alive in your system: " @@ -6132,18 +6402,43 @@ "Tietokannan lukkotiedosto sisältää prosessitunnisteen joka on käytössä " "järjestelmässäsi: %d" -#: ../src/common/database.c:2931 +#: ../src/common/database.c:3525 #, c-format msgid "the database lock file seems to be empty" msgstr "Tietokannan lukkotiedosto näyttäisi olevan tyhjä." -#: ../src/common/database.c:2941 +#: ../src/common/database.c:3535 #, c-format msgid "error opening the database lock file for reading: %s" msgstr "Virhe avattaessa tietokannan lukkotiedostoa: %s" +#: ../src/common/database.c:3605 +#, c-format +msgid "" +"the database schema version of\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"is too new for this build of darktable (this means the database was created " +"or upgraded by a newer darktable version)\n" +msgstr "" +"Tietokannen skeeman versio\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"on liian uusi käytössä olevalle darktablelle (tämä tarkoittaa sitä, että " +"tietokanta on luotu tai päivitetty uudemmalla darktablen versiolla)\n" + +#: ../src/common/database.c:3612 +msgid "darktable - too new db version" +msgstr "Darktable - liian uusi tietokannan versio" + +#: ../src/common/database.c:3613 +msgid "_quit darktable" +msgstr "_Lopeta Darktable" + #. the database has to be upgraded, let's ask user -#: ../src/common/database.c:2978 +#: ../src/common/database.c:3628 #, c-format msgid "" "the database schema has to be upgraded for\n" @@ -6162,21 +6457,21 @@ "\n" "Haluatko jatkaa vai lopettaa ja ottaa varmuuskopion?\n" -#: ../src/common/database.c:2986 +#: ../src/common/database.c:3636 msgid "darktable - schema migration" msgstr "Darktable - rakenteen migraatio" -#: ../src/common/database.c:2987 ../src/common/database.c:3306 -#: ../src/common/database.c:3324 ../src/common/database.c:3491 -#: ../src/common/database.c:3509 -msgid "close darktable" -msgstr "Sulje Darktable" - -#: ../src/common/database.c:2987 -msgid "upgrade database" -msgstr "Päivitä tietokanta" +#: ../src/common/database.c:3637 ../src/common/database.c:3959 +#: ../src/common/database.c:3974 ../src/common/database.c:4142 +#: ../src/common/database.c:4157 +msgid "_close darktable" +msgstr "_Sulje Darktable" + +#: ../src/common/database.c:3637 +msgid "_upgrade database" +msgstr "_Päivitä tietokanta" -#: ../src/common/database.c:3286 ../src/common/database.c:3471 +#: ../src/common/database.c:3939 ../src/common/database.c:4122 #, c-format msgid "" "quick_check said:\n" @@ -6185,21 +6480,21 @@ "pika_tarkastus sanoi:\n" "%s \n" -#: ../src/common/database.c:3303 ../src/common/database.c:3321 -#: ../src/common/database.c:3488 ../src/common/database.c:3506 +#: ../src/common/database.c:3956 ../src/common/database.c:3971 +#: ../src/common/database.c:4139 ../src/common/database.c:4154 msgid "darktable - error opening database" msgstr "Darktable - virhe tietokannan avaamisessa" -#: ../src/common/database.c:3308 ../src/common/database.c:3493 -msgid "attempt restore" -msgstr "Yritä palautusta" - -#: ../src/common/database.c:3310 ../src/common/database.c:3326 -#: ../src/common/database.c:3495 ../src/common/database.c:3511 -msgid "delete database" -msgstr "Poista tietokanta" +#: ../src/common/database.c:3960 ../src/common/database.c:4143 +msgid "_attempt restore" +msgstr "_Yritä palautusta" + +#: ../src/common/database.c:3961 ../src/common/database.c:3975 +#: ../src/common/database.c:4144 ../src/common/database.c:4158 +msgid "_delete database" +msgstr "_Poista tietokanta" -#: ../src/common/database.c:3314 ../src/common/database.c:3499 +#: ../src/common/database.c:3964 ../src/common/database.c:4147 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup, attempt an automatic restore\n" @@ -6211,7 +6506,7 @@ "viimeisimmästä tietokannan vedoksesta tai poistaaksesi\n" "korruptoituneen tietokannan luoden tyhjän tietokannan." -#: ../src/common/database.c:3330 ../src/common/database.c:3515 +#: ../src/common/database.c:3978 ../src/common/database.c:4161 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup or delete the corrupted database\n" @@ -6221,7 +6516,7 @@ "varmuuskopioista tai poistaaksesi korruptoituneen tietokannan\n" "luoden tyhjän tietokannan." -#: ../src/common/database.c:3337 ../src/common/database.c:3520 +#: ../src/common/database.c:3985 ../src/common/database.c:4166 #, c-format msgid "" "an error has occurred while trying to open the database from\n" @@ -6246,12 +6541,12 @@ "Nopea valotuksen itsenäinen ohjattu suodin ei saanut varattua muistia, " "tarkista RAM-muistin asetukset." -#: ../src/common/exif.cc:5184 +#: ../src/common/exif.cc:5482 #, c-format msgid "cannot read XMP file '%s': '%s'" msgstr "XMP-tiedoston luku ei onnistu '%s': '%s'" -#: ../src/common/exif.cc:5242 +#: ../src/common/exif.cc:5540 #, c-format msgid "cannot write XMP file '%s': '%s'" msgstr "XMP-tiedoston kirjoitus ei onnistu '%s': '%s'" @@ -6262,127 +6557,127 @@ "Nopea ohjattu suodin ei saanut varattua muistia, tarkista RAM-muistin " "asetukset." -#: ../src/common/film.c:345 +#: ../src/common/film.c:356 msgid "do you want to remove this empty directory?" msgid_plural "do you want to remove these empty directories?" msgstr[0] "Haluatko poistaa tämän tyhjän hakemiston?" msgstr[1] "Haluatko poistaa nämä tyhjät hakemistot?" -#: ../src/common/film.c:352 +#: ../src/common/film.c:363 msgid "remove empty directory?" msgid_plural "remove empty directories?" msgstr[0] "Poista tyhjä hakemisto?" msgstr[1] "Poista tyhjät hakemistot?" -#: ../src/common/film.c:371 ../src/gui/preferences.c:816 -#: ../src/gui/styles_dialog.c:548 ../src/libs/geotagging.c:829 -#: ../src/libs/import.c:1551 +#: ../src/common/film.c:383 ../src/gui/preferences.c:814 +#: ../src/gui/styles_dialog.c:556 ../src/libs/geotagging.c:830 +#: ../src/libs/import.c:1560 msgid "name" msgstr "Nimi" -#: ../src/common/film.c:477 +#: ../src/common/film.c:492 msgid "" "cannot remove film roll having local copies with non accessible originals" msgstr "" "Filmirullan poisto ei onnistu, koska siinä on kopioita alkuperäisistä " "kuvista joita ei voida avata." -#: ../src/common/history.c:840 +#: ../src/common/history.c:876 msgid "you need to copy history from an image before you paste it onto another" msgstr "" "Muokkaushistoria tulee kopioida kuvasta ennen kuin sen voi liittää toiseen " "kuvaan." -#: ../src/common/image.c:325 +#: ../src/common/image.c:333 msgid "orphaned image" msgstr "Orpo kuva" -#: ../src/common/image.c:620 +#: ../src/common/image.c:629 #, c-format msgid "geo-location undone for %d image" msgid_plural "geo-location undone for %d images" msgstr[0] "Paikkatietoja ei asetettu %d kuvaan." msgstr[1] "Paikkatietoja ei asetettu %d kuvaan." -#: ../src/common/image.c:622 +#: ../src/common/image.c:631 #, c-format msgid "geo-location re-applied to %d image" msgid_plural "geo-location re-applied to %d images" msgstr[0] "Paikkatiedot asetettiin uudelleen %d kuvaan." msgstr[1] "Paikkatiedot asetettiin uudelleen %d kuvaan." -#: ../src/common/image.c:645 +#: ../src/common/image.c:654 #, c-format msgid "date/time undone for %d image" msgid_plural "date/time undone for %d images" msgstr[0] "Päivää/aikaa ei asetettu %d kuvaan." msgstr[1] "Päivää/aikaa ei asetettu %d kuvaan." -#: ../src/common/image.c:647 +#: ../src/common/image.c:656 #, c-format msgid "date/time re-applied to %d image" msgid_plural "date/time re-applied to %d images" msgstr[0] "Päivä/aika asetettiin uudelleen %d kuvaan." msgstr[1] "Päivä/aika asetettiin uudelleen %d kuvaan." -#: ../src/common/image.c:2188 +#: ../src/common/image.c:2260 #, c-format msgid "cannot access local copy `%s'" msgstr "Paikallisen kopion luku ei onnistu `%s'" -#: ../src/common/image.c:2195 +#: ../src/common/image.c:2267 #, c-format msgid "cannot write local copy `%s'" msgstr "Paikallisen kopion tallennus ei onnistu `%s'" -#: ../src/common/image.c:2202 +#: ../src/common/image.c:2274 #, c-format msgid "error moving local copy `%s' -> `%s'" msgstr "Virhe paikallisen kopion siirrossa `%s' -> `%s'" -#: ../src/common/image.c:2219 +#: ../src/common/image.c:2291 #, c-format msgid "error moving `%s': file not found" msgstr "Virhe siirrettäessä tiedostoa `%s': tiedostoa ei löydy" -#: ../src/common/image.c:2229 +#: ../src/common/image.c:2301 #, c-format msgid "error moving `%s' -> `%s': file exists" msgstr "Virhe siirrettäessä tiedostoa `%s' -> `%s': tiedosto on olemassa" -#: ../src/common/image.c:2233 +#: ../src/common/image.c:2305 #, c-format msgid "error moving `%s' -> `%s'" msgstr "Virhe siirrettäessä `%s' -> `%s'" -#: ../src/common/image.c:2562 +#: ../src/common/image.c:2634 msgid "cannot create local copy when the original file is not accessible." msgstr "" "Paikallisen kopion luonti ei onnistu, kun alkuperäinen kuva ei ole " "saatavilla." -#: ../src/common/image.c:2576 +#: ../src/common/image.c:2648 msgid "cannot create local copy." msgstr "Paikallisen kopion luonti ei onnistu." -#: ../src/common/image.c:2656 ../src/control/jobs/control_jobs.c:777 +#: ../src/common/image.c:2728 ../src/control/jobs/control_jobs.c:777 msgid "cannot remove local copy when the original file is not accessible." msgstr "" "Paikallisen kopion poisto ei onnistu, kun alkuperäinen kuva ei ole " "saatavilla." -#: ../src/common/image.c:2821 +#: ../src/common/image.c:2901 #, c-format msgid "%d local copy has been synchronized" msgid_plural "%d local copies have been synchronized" msgstr[0] "%d paikallinen kopio synkronoitiin." msgstr[1] "%d paikallista kopiota synkronoitiin." -#: ../src/common/image.c:3022 +#: ../src/common/image.c:3102 msgid "<b>WARNING</b>: camera is missing samples!" msgstr "<b>VAROITUS</b>: Kameramallilta puuttuu näytteet!" -#: ../src/common/image.c:3023 +#: ../src/common/image.c:3103 msgid "" "You must provide samples in <a href='https://raw.pixls.us/'>https://raw." "pixls.us/</a>" @@ -6390,7 +6685,7 @@ "Sinun täytyy toimittaa näytekuvat sivustolle <a href='https://raw.pixls." "us/'>https://raw.pixls.us/</a>" -#: ../src/common/image.c:3024 +#: ../src/common/image.c:3104 #, c-format msgid "" "for `%s' `%s'\n" @@ -6399,81 +6694,82 @@ "sillä `%s' `%s'\n" "niin monessa muodossa/pakkauksella/bittisyvyydellä kuin mahdollista" -#: ../src/common/image.c:3027 +#: ../src/common/image.c:3107 msgid "or the <b>RAW won't be readable</b> in next version." msgstr "tai <b>raakakuvat eivät toimi</b> seuraavassa versiossa." -#: ../src/common/image.h:209 ../src/common/ratings.c:284 -#: ../src/libs/history.c:843 ../src/libs/snapshots.c:779 +#: ../src/common/image.h:217 ../src/common/ratings.c:283 +#: ../src/imageio/format/avif.c:114 ../src/libs/history.c:843 +#: ../src/libs/snapshots.c:837 msgid "unknown" msgstr "tuntematon" #. EMPTY_FIELD -#: ../src/common/image.h:210 -msgid "tiff" -msgstr "tiff" +#: ../src/common/image.h:218 ../src/imageio/format/tiff.c:831 +msgid "TIFF" +msgstr "TIFF" -#: ../src/common/image.h:211 -msgid "png" +#: ../src/common/image.h:219 ../src/imageio/format/png.c:599 +msgid "PNG" msgstr "PNG" -#: ../src/common/image.h:212 ../src/imageio/format/j2k.c:652 -msgid "j2k" -msgstr "j2k" - -#: ../src/common/image.h:213 -msgid "jpeg" -msgstr "jpeg" - -#: ../src/common/image.h:214 -msgid "exr" -msgstr "LiEXR" - -#: ../src/common/image.h:215 -msgid "rgbe" -msgstr "rgbe" - -#: ../src/common/image.h:216 -msgid "pfm" -msgstr "pfm" +#: ../src/common/image.h:220 +msgid "JPEG 2000" +msgstr "JPEG 2000" + +#: ../src/common/image.h:221 +msgid "JPEG" +msgstr "JPEG" + +#: ../src/common/image.h:222 +msgid "EXR" +msgstr "EXR" + +#: ../src/common/image.h:223 +msgid "RGBE" +msgstr "RGBE" + +#: ../src/common/image.h:224 ../src/imageio/format/pfm.c:120 +msgid "PFM" +msgstr "PFM" -#: ../src/common/image.h:217 +#: ../src/common/image.h:225 msgid "GraphicsMagick" msgstr "GraphicsMagick" -#: ../src/common/image.h:218 -msgid "rawspeed" -msgstr "rawspeed" - -#: ../src/common/image.h:219 -msgid "netpnm" -msgstr "Netpnm" +#: ../src/common/image.h:226 +msgid "RawSpeed" +msgstr "RawSpeed" -#: ../src/common/image.h:220 -msgid "avif" -msgstr "avif" +#: ../src/common/image.h:227 +msgid "Netpbm" +msgstr "Netpbm" -#: ../src/common/image.h:221 +#: ../src/common/image.h:228 ../src/imageio/format/avif.c:728 +msgid "AVIF" +msgstr "AVIF" + +#: ../src/common/image.h:229 msgid "ImageMagick" msgstr "ImageMagick" -#: ../src/common/image.h:222 -msgid "heif" +#: ../src/common/image.h:230 +msgid "HEIF" msgstr "HEIF" -#: ../src/common/image.h:223 -msgid "libraw" -msgstr "libraw" +#: ../src/common/image.h:231 +msgid "LibRaw" +msgstr "LibRaw" -#: ../src/common/image.h:224 -msgid "webp" -msgstr "webp" +#: ../src/common/image.h:232 ../src/imageio/format/webp.c:380 +msgid "WebP" +msgstr "WebP" -#: ../src/common/image.h:225 -msgid "jpeg xl" -msgstr "jpeg xl" +#: ../src/common/image.h:233 ../src/imageio/format/jxl.c:482 +msgid "JPEG XL" +msgstr "JPEG XL" -#: ../src/common/image.h:226 +#: ../src/common/image.h:234 msgid "QOI" msgstr "QOI" @@ -6505,7 +6801,7 @@ msgid "requested session path not available. device not mounted?" msgstr "Pyydetty istunnon polku ei ole saatavilla. Laitetta ei ole liitetty?" -#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:197 +#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:195 msgid "legacy" msgstr "Perinteinen" @@ -6517,7 +6813,7 @@ msgid "v3.0 JPEG" msgstr "v3.0 JPEG" -#: ../src/common/iop_profile.c:1205 +#: ../src/common/iop_profile.c:1207 #, c-format msgid "" "darktable loads %s from\n" @@ -6525,7 +6821,7 @@ "or, if this directory does not exist, from\n" "<b>%s</b>" msgstr "" -"darktable lataa %s sijainnista\n" +"Darktable lataa %s sijainnista\n" "<b>%s</b>\n" "tai, jos tätä hakemistoa ei ole, niin\n" "<b>%s</b>" @@ -6541,13 +6837,13 @@ #. title #: ../src/common/metadata.c:48 ../src/imageio/format/pdf.c:574 -#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:169 -#: ../src/imageio/storage/gallery.c:170 ../src/imageio/storage/latex.c:169 -#: ../src/imageio/storage/piwigo.c:1058 ../src/libs/filtering.c:69 +#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:219 +#: ../src/imageio/storage/gallery.c:222 ../src/imageio/storage/latex.c:206 +#: ../src/imageio/storage/piwigo.c:1091 ../src/libs/filtering.c:69 msgid "title" msgstr "Otsikko" -#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:552 +#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:563 #: ../src/libs/filtering.c:70 msgid "description" msgstr "Kuvaus" @@ -6565,11 +6861,11 @@ msgstr "Version nimi" #: ../src/common/metadata.c:53 ../src/libs/live_view.c:319 -#: ../src/libs/metadata_view.c:124 +#: ../src/libs/metadata_view.c:126 msgid "image id" msgstr "Kuvan numero" -#: ../src/common/mipmap_cache.c:1065 ../src/imageio/imageio.c:787 +#: ../src/common/mipmap_cache.c:1070 ../src/imageio/imageio.c:799 #, c-format msgid "image `%s' is not available!" msgstr "Kuva `%s' ei ole saatavilla!" @@ -6583,7 +6879,43 @@ msgid "noiseprofile file `%s' is not valid" msgstr "Kohinan profiilitiedosto `%s' on virheellinen." -#: ../src/common/opencl.c:1395 +#: ../src/common/opencl.c:1165 +msgid "no working OpenCL library found" +msgstr "Toimivaa OpenCL kirjastoa ei löydy" + +#: ../src/common/opencl.c:1185 +msgid "" +"platform detection failed. some possible causes:\n" +" - OpenCL ICD (ocl-icd) missing,\n" +" - previous OpenCL errors leading to blocked devices,\n" +" - power management problems,\n" +" - buggy drivers,\n" +" - no OpenCL driver installed." +msgstr "" +"Alustan tunnistus epäonnistui. Mahdollisia syitä:\n" +" - OpenCL ICD (ocl-icd) puuttuu,\n" +" - aiemmat OpenCL virheet aiheuttivat ajurien estämisen,\n" +" - virranhallinnan ongelmat,\n" +" - bugiset ajurit,\n" +" - OpenCL ajuria ei ole asennettu." + +#: ../src/common/opencl.c:1277 +msgid "no devices found for unknown platform" +msgstr "Laitteita ei löydy tuntemattomalle alustalle." + +#: ../src/common/opencl.c:1323 +msgid "not enough memory for OpenCL devices" +msgstr "Muistia ei ole riittävästi OpenCL laitteille." + +#: ../src/common/opencl.c:1358 +msgid "no OpenCL devices found" +msgstr "OpenCL laitteita ei löytynyt" + +#: ../src/common/opencl.c:1401 +msgid "no suitable OpenCL devices found" +msgstr "Sopivia OpenCL laitteita ei löytynyt" + +#: ../src/common/opencl.c:1422 #, c-format msgid "" "OpenCL initializing problem:\n" @@ -6592,37 +6924,21 @@ "OpenCL:n alustuksen ongelma:\n" "%s" -#: ../src/common/opencl.c:1458 -msgid "" -"due to a slow GPU hardware acceleration using OpenCL has been deactivated" -msgstr "" -"Johtuen hitaasta näytönohjaimesta, OpenCL-laitekiihdytys on otettu pois " -"käytöstä." - -#: ../src/common/opencl.c:1468 -msgid "" -"multiple GPUs detected - OpenCL scheduling profile has been set accordingly" -msgstr "" -"Useita näytönohjaimia tunnistettu - OpenCL-ajoitusprofiili asetettu sen " -"mukaisesti." - -#: ../src/common/opencl.c:1481 -msgid "" -"very fast GPU detected - OpenCL scheduling profile has been set accordingly" -msgstr "" -"Erittäin nopea näytönohjain tunnistettu - OpenCL-ajoitusprofiili asetettu " -"sen mukaisesti." +#: ../src/common/opencl.c:1454 +msgid "OpenCL scheduling profile set to default, setup has changed" +msgstr "OpenCL-ajoitusprofiili asetettiin oletukseksi. Asetukset on muutettu." -#: ../src/common/opencl.c:1490 -msgid "OpenCL scheduling profile set to default" -msgstr "Asetettiin OpenCL-ajoitusprofiili oletukseksi." +#: ../src/common/opencl.c:2283 +#, c-format +msgid "building OpenCL program %s for %s" +msgstr "Käännetään OpenCL ohjelmaa %s laitteelle %s" -#: ../src/common/pdf.h:88 ../src/iop/lens.cc:3539 +#: ../src/common/pdf.h:88 ../src/iop/lens.cc:4071 #: ../src/libs/filters/focal.c:74 ../src/libs/print_settings.c:81 msgid "mm" msgstr "mm" -#: ../src/common/pdf.h:89 ../src/libs/export.c:520 ../src/libs/export.c:1145 +#: ../src/common/pdf.h:89 ../src/libs/export.c:555 ../src/libs/export.c:1241 #: ../src/libs/print_settings.c:81 msgid "cm" msgstr "cm" @@ -6635,7 +6951,7 @@ msgid "\"" msgstr "\"" -#: ../src/common/pdf.h:104 ../src/iop/borders.c:958 +#: ../src/common/pdf.h:104 ../src/iop/borders.c:971 msgid "A4" msgstr "A4" @@ -6675,66 +6991,65 @@ msgid "no images selected to apply rating" msgstr "Kuvia ei ole valittu luokituksen asettamiseksi." -#: ../src/common/ratings.c:275 ../src/libs/metadata_view.c:351 +#: ../src/common/ratings.c:274 ../src/libs/metadata_view.c:355 msgid "image rejected" msgstr "Kuva on hylätty" -#: ../src/common/ratings.c:277 +#: ../src/common/ratings.c:276 msgid "image rated to 0 star" msgstr "Kuvalla annettua 0 tähteä" -#: ../src/common/ratings.c:279 +#: ../src/common/ratings.c:278 #, c-format msgid "image rated to %s" msgstr "Kuvalle annettu %s tähteä" -#: ../src/common/ratings.c:306 ../src/libs/select.c:39 -#: ../src/views/lighttable.c:766 +#: ../src/common/ratings.c:305 ../src/views/lighttable.c:766 msgid "select" msgstr "Kuvien valinta" -#: ../src/common/ratings.c:307 +#: ../src/common/ratings.c:306 msgid "upgrade" msgstr "Päivitä" -#: ../src/common/ratings.c:308 +#: ../src/common/ratings.c:307 msgid "downgrade" msgstr "Palauta aiempi" -#: ../src/common/ratings.c:312 +#: ../src/common/ratings.c:311 msgid "zero" msgstr "Nolla" -#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:277 +#: ../src/common/ratings.c:312 ../src/libs/filters/rating_range.c:304 msgid "one" msgstr "Yksi" -#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:278 +#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:305 msgid "two" msgstr "Kaksi" -#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:279 +#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:306 msgid "three" msgstr "Kolme" -#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:280 +#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:307 msgid "four" msgstr "Neljä" -#: ../src/common/ratings.c:317 ../src/libs/filters/rating_range.c:281 +#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:308 msgid "five" msgstr "Viisi" -#: ../src/common/ratings.c:318 +#: ../src/common/ratings.c:317 msgid "reject" msgstr "Hylkää" -#: ../src/common/styles.c:244 +#: ../src/common/styles.c:243 #, c-format msgid "style with name '%s' already exists" msgstr "Tyyli nimellä '%s' on jo olemassa." -#: ../src/common/styles.c:270 ../src/common/styles.c:1776 +#: ../src/common/styles.c:270 ../src/common/styles.c:1783 #: ../src/libs/styles.c:54 msgid "styles" msgstr "Tyylit" @@ -6744,57 +7059,57 @@ msgid "style named '%s' successfully created" msgstr "Tyyli nimellä '%s' luotiin onnistuneesti." -#: ../src/common/styles.c:689 ../src/common/styles.c:719 -#: ../src/common/styles.c:759 ../src/dtgtk/culling.c:1097 +#: ../src/common/styles.c:688 ../src/common/styles.c:718 +#: ../src/common/styles.c:758 ../src/dtgtk/culling.c:1066 msgid "no image selected!" msgstr "Kuvaa ei ole valittu!" -#: ../src/common/styles.c:693 +#: ../src/common/styles.c:692 #, c-format msgid "style %s successfully applied!" msgstr "Tyylin %s asetus onnistui!" -#: ../src/common/styles.c:709 +#: ../src/common/styles.c:708 msgid "no images nor styles selected!" msgstr "Kuvia tai tyylejä ei ole valittu!" -#: ../src/common/styles.c:714 +#: ../src/common/styles.c:713 msgid "no styles selected!" msgstr "Tyylejä ei ole valittu!" -#: ../src/common/styles.c:744 +#: ../src/common/styles.c:743 msgid "style successfully applied!" msgid_plural "styles successfully applied!" msgstr[0] "Tyylin asetus onnistui!" msgstr[1] "Tyylien asetus onnistui!" -#: ../src/common/styles.c:840 +#: ../src/common/styles.c:838 #, c-format msgid "module `%s' version mismatch: %d != %d" msgstr "Moduulin `%s' versiossa ristiriita: %d != %d" -#: ../src/common/styles.c:1124 +#: ../src/common/styles.c:1125 #, c-format msgid "applied style `%s' on current image" msgstr "Otettiin käyttöön tyyli `%s' valitussa kuvassa." -#: ../src/common/styles.c:1378 +#: ../src/common/styles.c:1383 #, c-format msgid "failed to overwrite style file for %s" msgstr "Tyylitiedoston ylikirjoitus epäonnistui kohteelle %s" -#: ../src/common/styles.c:1384 +#: ../src/common/styles.c:1389 #, c-format msgid "style file for %s exists" msgstr "Tyylitiedosto nimellä %s on jo olemassa." -#: ../src/common/styles.c:1667 +#: ../src/common/styles.c:1674 #, c-format msgid "style %s was successfully imported" msgstr "Tyyli nimellä %s tuotiin onnistuneesti." #. Failed to open file, clean up. -#: ../src/common/styles.c:1711 +#: ../src/common/styles.c:1718 #, c-format msgid "could not read file `%s'" msgstr "Tiedoston `%s' lukeminen ei onnistunut!" @@ -6807,10 +7122,18 @@ msgid "below sea level" msgstr "merenpinnan alapuolella" -#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:880 +#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:907 msgid "m" msgstr "metriä" +#: ../src/common/variables.c:712 ../src/develop/imageop_gui.c:210 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "yes" +msgstr "Kyllä" + #. Column 1 - "make" of the camera. #. * Column 2 - "model" (use the "make" and "model" as provided by DCRaw). #. * Column 3 - WB name. @@ -6823,7 +7146,7 @@ #. * #. * WB name is standardized to one of the following: #. "Sunlight" and other variation should be switched to this: -#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:323 +#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:320 msgid "daylight" msgstr "Päivänvalo" @@ -6923,7 +7246,7 @@ msgid "underwater" msgstr "Vedenalainen" -#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2447 +#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2286 msgid "black & white" msgstr "Mustavalkoinen" @@ -6943,85 +7266,85 @@ msgid "auto WB" msgstr "Automaattinen valkotasapaino" -#: ../src/control/control.c:66 ../src/gui/accelerators.c:138 -#: ../src/views/darkroom.c:2162 +#: ../src/control/control.c:69 ../src/gui/accelerators.c:156 +#: ../src/views/darkroom.c:2029 msgid "hold" msgstr "Pidä" -#: ../src/control/control.c:102 ../src/control/control.c:205 +#: ../src/control/control.c:108 ../src/control/control.c:214 msgid "modifiers" msgstr "Määritteet" -#: ../src/control/control.c:111 +#: ../src/control/control.c:117 msgctxt "accel" msgid "global" msgstr "Yleiset" -#: ../src/control/control.c:118 +#: ../src/control/control.c:124 msgctxt "accel" msgid "views" msgstr "Näkymät" -#: ../src/control/control.c:125 +#: ../src/control/control.c:131 msgctxt "accel" msgid "thumbtable" msgstr "Esikatselukuvat" -#: ../src/control/control.c:132 +#: ../src/control/control.c:138 msgctxt "accel" msgid "utility modules" msgstr "Valopöydän moduulit" -#: ../src/control/control.c:139 +#: ../src/control/control.c:145 msgctxt "accel" msgid "format" msgstr "Muoto" -#: ../src/control/control.c:146 +#: ../src/control/control.c:152 msgctxt "accel" msgid "storage" msgstr "Tallennuskohde" -#: ../src/control/control.c:153 +#: ../src/control/control.c:159 msgctxt "accel" msgid "processing modules" msgstr "Käsittelymoduulit" -#: ../src/control/control.c:160 +#: ../src/control/control.c:166 msgctxt "accel" msgid "<blending>" msgstr "<yhdistäminen>" -#: ../src/control/control.c:167 +#: ../src/control/control.c:173 msgctxt "accel" msgid "Lua scripts" msgstr "LUA-skriptit" -#: ../src/control/control.c:174 +#: ../src/control/control.c:180 msgctxt "accel" msgid "fallbacks" msgstr "Varmistukset" -#: ../src/control/control.c:183 +#: ../src/control/control.c:189 msgctxt "accel" msgid "<focused>" msgstr "<kohdistettu>" -#: ../src/control/control.c:202 +#: ../src/control/control.c:209 msgid "show accels window" msgstr "Näytä pikavalintojen ikkuna" -#: ../src/control/control.c:363 +#: ../src/control/control.c:371 msgid "working..." msgstr "Työstetään..." -#: ../src/control/crawler.c:425 +#: ../src/control/crawler.c:418 #, c-format msgid "ERROR: %s NOT synced XMP → DB" msgstr "VIRHE: %s EI synkronoitu XMP → DB" -#: ../src/control/crawler.c:426 ../src/control/crawler.c:492 -#: ../src/control/crawler.c:561 +#: ../src/control/crawler.c:419 ../src/control/crawler.c:485 +#: ../src/control/crawler.c:554 msgid "" "ERROR: cannot write the database. the destination may be full, offline or " "read-only." @@ -7029,18 +7352,18 @@ "VIRHE: Ei voida kirjoittaa tietokantaan. Kohde saattaa olla täynnä, pois " "verkosta tai vain luku-tilassa." -#: ../src/control/crawler.c:433 +#: ../src/control/crawler.c:426 #, c-format msgid "SUCCESS: %s synced XMP → DB" msgstr "ONNISTUI: %s synkronoitu XMP → DB" -#: ../src/control/crawler.c:455 +#: ../src/control/crawler.c:448 #, c-format msgid "ERROR: %s NOT synced DB → XMP" msgstr "VIRHE: %s Ei synkronoitu DB → XMP" -#: ../src/control/crawler.c:457 ../src/control/crawler.c:516 -#: ../src/control/crawler.c:582 +#: ../src/control/crawler.c:450 ../src/control/crawler.c:509 +#: ../src/control/crawler.c:575 #, c-format msgid "" "ERROR: cannot write %s \n" @@ -7049,129 +7372,133 @@ "VIRHE: Ei voida kirjoittaa %s \n" "Kohde saattaa olla täynnä, pois verkosta tai vain luku-tilassa." -#: ../src/control/crawler.c:463 +#: ../src/control/crawler.c:456 #, c-format msgid "SUCCESS: %s synced DB → XMP" msgstr "ONNISTUI: %s synkronoitu DB → XMP" -#: ../src/control/crawler.c:489 +#: ../src/control/crawler.c:482 #, c-format msgid "ERROR: %s NOT synced new (XMP) → old (DB)" msgstr "VIRHE: %s EI synkronoitu uudesta (XMP) → vanhaan (DB)" -#: ../src/control/crawler.c:499 +#: ../src/control/crawler.c:492 #, c-format msgid "SUCCESS: %s synced new (XMP) → old (DB)" msgstr "ONNISTUI: %s synkronoitu uudesta (XMP) → vanhaan (DB)" -#: ../src/control/crawler.c:513 +#: ../src/control/crawler.c:506 #, c-format msgid "ERROR: %s NOT synced new (DB) → old (XMP)" msgstr "VIRHE: %s EI synkronoitu uudesta (DB) → vanhaan (XMP)" -#: ../src/control/crawler.c:521 +#: ../src/control/crawler.c:514 #, c-format msgid "SUCCESS: %s synced new (DB) → old (XMP)" msgstr "ONNISTUI: %s synkronoitiin uudesta (DB) → vanhaan (XMP)" -#: ../src/control/crawler.c:530 ../src/control/crawler.c:598 +#: ../src/control/crawler.c:523 ../src/control/crawler.c:591 #, c-format msgid "EXCEPTION: %s has inconsistent timestamps" msgstr "POIKKEUS: %s sisältää ristiriitaiset aikaleimat" -#: ../src/control/crawler.c:558 +#: ../src/control/crawler.c:551 #, c-format msgid "ERROR: %s NOT synced old (XMP) → new (DB)" msgstr "VIRHE: %s EI synkronoitu vanhasta (XMP) → uuteen (DB)" -#: ../src/control/crawler.c:567 +#: ../src/control/crawler.c:560 #, c-format msgid "SUCCESS: %s synced old (XMP) → new (DB)" msgstr "ONNISTUI: %s synkronoitiin vanhasta (XMP) → uuteen (DB)" -#: ../src/control/crawler.c:579 +#: ../src/control/crawler.c:572 #, c-format msgid "ERROR: %s NOT synced old (DB) → new (XMP)" msgstr "VIRHE: %s EI synkronoitu vanhasta (DB) → uuteen (XMP)" -#: ../src/control/crawler.c:588 +#: ../src/control/crawler.c:581 #, c-format msgid "SUCCESS: %s synced old (DB) → new (XMP)" msgstr "ONNISTUI: %s synkronoitiin vanhasta (DB) → uuteen (XMP)" -#: ../src/control/crawler.c:670 +#: ../src/control/crawler.c:663 #, c-format msgid "%id %02dh %02dm %02ds" msgstr "%id %02dh %02dm %02ds" -#: ../src/control/crawler.c:740 ../src/imageio/storage/disk.c:168 -#: ../src/imageio/storage/gallery.c:154 ../src/imageio/storage/latex.c:153 -#: ../src/imageio/storage/latex.c:171 +#: ../src/control/crawler.c:716 +msgid "XMP" +msgstr "XMP" + +#: ../src/control/crawler.c:733 ../src/imageio/storage/disk.c:250 +#: ../src/imageio/storage/gallery.c:202 ../src/imageio/storage/latex.c:190 +#: ../src/imageio/storage/latex.c:208 msgid "path" msgstr "Polku" -#: ../src/control/crawler.c:749 +#: ../src/control/crawler.c:742 msgid "XMP timestamp" msgstr "XMP-aikaleima" -#: ../src/control/crawler.c:754 +#: ../src/control/crawler.c:747 msgid "database timestamp" msgstr "Tietokannan aikaleima" -#: ../src/control/crawler.c:759 +#: ../src/control/crawler.c:752 msgid "newest" msgstr "Uusin" -#: ../src/control/crawler.c:765 +#: ../src/control/crawler.c:758 msgid "time difference" msgstr "Ajan poikkeama" -#: ../src/control/crawler.c:777 +#: ../src/control/crawler.c:770 msgid "updated XMP sidecar files found" msgstr "Löytyi päivitettyjä XMP-aputiedostoja." -#: ../src/control/crawler.c:778 +#: ../src/control/crawler.c:771 msgid "_close" msgstr "_Sulje" #. setup selection accelerators #. action-box -#: ../src/control/crawler.c:793 ../src/dtgtk/thumbtable.c:2578 -#: ../src/libs/import.c:1722 ../src/libs/select.c:135 +#: ../src/control/crawler.c:786 ../src/dtgtk/thumbtable.c:2755 +#: ../src/libs/import.c:1732 ../src/libs/select.c:136 msgid "select all" msgstr "Valitse kaikki" -#: ../src/control/crawler.c:794 ../src/dtgtk/thumbtable.c:2580 -#: ../src/libs/import.c:1726 ../src/libs/select.c:139 +#: ../src/control/crawler.c:787 ../src/dtgtk/thumbtable.c:2757 +#: ../src/libs/import.c:1736 ../src/libs/select.c:140 msgid "select none" msgstr "Tyhjennä valinta" -#: ../src/control/crawler.c:795 ../src/dtgtk/thumbtable.c:2582 -#: ../src/libs/select.c:143 +#: ../src/control/crawler.c:788 ../src/dtgtk/thumbtable.c:2759 +#: ../src/libs/select.c:144 msgid "invert selection" msgstr "Käänteinen valinta" -#: ../src/control/crawler.c:807 +#: ../src/control/crawler.c:800 msgid "on the selection:" -msgstr "Valinnasta:" +msgstr "Valituista:" -#: ../src/control/crawler.c:808 +#: ../src/control/crawler.c:801 msgid "keep the XMP edit" -msgstr "Säilytä XMP:n muokkaus." +msgstr "Säilytä XMP:n versio" -#: ../src/control/crawler.c:809 +#: ../src/control/crawler.c:802 msgid "keep the database edit" -msgstr "Säilytä tietokannan muokkaus." +msgstr "Säilytä tietokannan versio" -#: ../src/control/crawler.c:810 +#: ../src/control/crawler.c:803 msgid "keep the newest edit" -msgstr "Säilytä uusin muokkaus." +msgstr "Säilytä uusin versio" -#: ../src/control/crawler.c:811 +#: ../src/control/crawler.c:804 msgid "keep the oldest edit" -msgstr "Säilytä vanhin muokkaus." +msgstr "Säilytä vanhin versio" -#: ../src/control/crawler.c:836 +#: ../src/control/crawler.c:829 msgid "synchronization log" msgstr "Synkronointiloki" @@ -7201,6 +7528,10 @@ msgid "starting to import images from camera" msgstr "Aloitetaan kuvien tuonti kamerasta." +#: ../src/control/jobs/camera_jobs.c:302 +msgid "failed to import images from camera." +msgstr "Kuvien tuonti kamerasta epäonnistui." + #: ../src/control/jobs/camera_jobs.c:309 #, c-format msgid "importing %d image from camera" @@ -7306,7 +7637,8 @@ msgid "_remove from library" msgstr "_Poista kuvakirjastosta" -#: ../src/control/jobs/control_jobs.c:884 +#: ../src/control/jobs/control_jobs.c:884 ../src/libs/styles.c:440 +#: ../src/libs/styles.c:625 msgid "_skip" msgstr "_Ohita" @@ -7404,42 +7736,42 @@ msgid "exporting %d / %d to %s" msgstr "Viedään %d / %d kohteeseen %s" -#: ../src/control/jobs/control_jobs.c:1459 ../src/views/darkroom.c:800 +#: ../src/control/jobs/control_jobs.c:1451 ../src/views/darkroom.c:721 #: ../src/views/print.c:369 #, c-format msgid "image `%s' is currently unavailable" msgstr "Kuva `%s' ei ole juuri nyt saatavilla." -#: ../src/control/jobs/control_jobs.c:1551 +#: ../src/control/jobs/control_jobs.c:1554 msgid "merge HDR image" msgstr "Luo HDR-kuva" -#: ../src/control/jobs/control_jobs.c:1565 +#: ../src/control/jobs/control_jobs.c:1568 msgid "duplicate images" msgstr "Kahdenna kuvat" -#: ../src/control/jobs/control_jobs.c:1571 +#: ../src/control/jobs/control_jobs.c:1574 msgid "flip images" msgstr "Käännä kuvat" -#: ../src/control/jobs/control_jobs.c:1578 +#: ../src/control/jobs/control_jobs.c:1581 msgid "set monochrome images" msgstr "Aseta mustavalkokuvat" #. get all selected images now, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1585 +#: ../src/control/jobs/control_jobs.c:1588 msgid "remove images" msgstr "Poista kuvat" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove image?" msgstr "Poista kuva?" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove images?" msgstr "Poista kuvat?" -#: ../src/control/jobs/control_jobs.c:1599 +#: ../src/control/jobs/control_jobs.c:1602 #, c-format msgid "" "do you really want to remove %d image from darktable\n" @@ -7449,27 +7781,27 @@ "(without deleting files on disk)?" msgstr[0] "" "Haluatko varmasti poistaa %d kuvan Darktablesta\n" -"(poistamatta kuvaa kovalevyltä)?" +"(poistamatta kuvaa levyltä)?" msgstr[1] "" "Haluatko varmasti poistaa %d kuvaa Darktablesta\n" -"(poistamatta kuvia kovalevyltä)?" +"(poistamatta kuvia levyltä)?" #. first get all selected images, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1614 -#: ../src/control/jobs/control_jobs.c:1647 +#: ../src/control/jobs/control_jobs.c:1617 +#: ../src/control/jobs/control_jobs.c:1650 msgid "delete images" msgstr "Poista kuvat" -#: ../src/control/jobs/control_jobs.c:1630 -#: ../src/control/jobs/control_jobs.c:1660 +#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1663 msgid "delete image?" msgstr "Poista kuva?" -#: ../src/control/jobs/control_jobs.c:1630 +#: ../src/control/jobs/control_jobs.c:1633 msgid "delete images?" msgstr "Poista kuvat?" -#: ../src/control/jobs/control_jobs.c:1631 +#: ../src/control/jobs/control_jobs.c:1634 #, c-format msgid "" "do you really want to physically delete %d image\n" @@ -7484,14 +7816,14 @@ "Haluatko varmasti poistaa %d kuvaa levyltä\n" "(käyttäen roskakoria, jos mahdollista)?" -#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1636 #, c-format msgid "do you really want to physically delete %d image from disk?" msgid_plural "do you really want to physically delete %d images from disk?" msgstr[0] "Haluatko varmasti poistaa %d kuvan levyltä?" msgstr[1] "Haluatko varmasti poistaa %d kuvaa levyltä?" -#: ../src/control/jobs/control_jobs.c:1661 +#: ../src/control/jobs/control_jobs.c:1664 msgid "" "do you really want to physically delete selected image (using trash if " "possible)?" @@ -7499,26 +7831,26 @@ "Haluatko varmasti poistaa valitun kuvan levyltä (käyttäen roskakoria, jos " "mahdollista)?" -#: ../src/control/jobs/control_jobs.c:1662 +#: ../src/control/jobs/control_jobs.c:1665 msgid "do you really want to physically delete selected image from disk?" msgstr "Haluatko varmasti poistaa valitun kuvan levyltä?" -#: ../src/control/jobs/control_jobs.c:1677 +#: ../src/control/jobs/control_jobs.c:1680 msgid "move images" msgstr "Siirrä kuvat" -#: ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 msgid "_select as destination" msgstr "_Valitse kohteeksi" -#: ../src/control/jobs/control_jobs.c:1708 +#: ../src/control/jobs/control_jobs.c:1711 msgid "move image?" msgid_plural "move images?" msgstr[0] "Siirrä kuva?" msgstr[1] "Siirrä kuvat?" -#: ../src/control/jobs/control_jobs.c:1709 +#: ../src/control/jobs/control_jobs.c:1712 #, c-format msgid "" "do you really want to physically move %d image to %s?\n" @@ -7533,116 +7865,111 @@ "Haluatko varmasti siirtää %d valittua kuvaa kohteeseen %s?\n" "(kaikki kopiot siirretään kuvan mukana)." -#: ../src/control/jobs/control_jobs.c:1731 +#: ../src/control/jobs/control_jobs.c:1734 msgid "copy images" msgstr "Kopioi kuvat" -#: ../src/control/jobs/control_jobs.c:1762 +#: ../src/control/jobs/control_jobs.c:1765 msgid "copy image?" msgid_plural "copy images?" msgstr[0] "Kopioi kuva?" msgstr[1] "Kopioi kuvat?" -#: ../src/control/jobs/control_jobs.c:1763 +#: ../src/control/jobs/control_jobs.c:1766 #, c-format msgid "do you really want to physically copy %d image to %s?" msgid_plural "do you really want to physically copy %d images to %s?" msgstr[0] "Haluatko varmasti kopioida %d valitun kuvan kohteeseen %s?" msgstr[1] "Haluatko varmasti kopioida %d valittua kuvaa kohteeseen %s?" -#: ../src/control/jobs/control_jobs.c:1781 -#: ../src/control/jobs/control_jobs.c:1789 +#: ../src/control/jobs/control_jobs.c:1784 +#: ../src/control/jobs/control_jobs.c:1792 msgid "local copy images" msgstr "Paikalliskopioidut kuvat" -#: ../src/control/jobs/control_jobs.c:1796 ../src/libs/image.c:604 +#: ../src/control/jobs/control_jobs.c:1799 ../src/libs/image.c:674 msgid "refresh EXIF" msgstr "Päivitä EXIF" -#: ../src/control/jobs/control_jobs.c:1860 +#: ../src/control/jobs/control_jobs.c:1863 #, c-format msgid "failed to get parameters from storage module `%s', aborting export.." msgstr "" "Tallennusmoduulin `%s' asetusten haku epäonnistui. Keskeytetään vienti.." -#: ../src/control/jobs/control_jobs.c:1876 +#: ../src/control/jobs/control_jobs.c:1879 msgid "export images" msgstr "Vie kuvia" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "adding time offset to %d image" msgstr "Lisätään ajan poikkeama %d kuvaan." -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "setting date/time of %d image" msgstr "Asetettiin päivä/aika %d kuvaan." -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "adding time offset to %d images" msgstr "Lisätään ajan poikkeama %d kuvaan." -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "setting date/time of %d images" msgstr "Asetettiin päivä/aika %d kuvaan." -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "added time offset to %d image" msgstr "Lisättiin ajan poikkeama %d kuvaan." -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "set date/time of %d image" msgstr "Aseta päivä/aika %d kuvaan." -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "added time offset to %d images" msgstr "Lisättiin ajan poikkeama %d kuvaan." -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "set date/time of %d images" msgstr "Aseta päivä/aika %d kuvaan." -#: ../src/control/jobs/control_jobs.c:2014 +#: ../src/control/jobs/control_jobs.c:2017 msgid "time offset" msgstr "Ajan poikkeama" -#: ../src/control/jobs/control_jobs.c:2042 ../src/libs/copy_history.c:414 +#: ../src/control/jobs/control_jobs.c:2045 ../src/libs/copy_history.c:414 msgid "write sidecar files" msgstr "Tallenna aputiedosto" -#: ../src/control/jobs/control_jobs.c:2256 ../src/control/jobs/film_jobs.c:297 +#: ../src/control/jobs/control_jobs.c:2259 ../src/control/jobs/film_jobs.c:297 #, c-format msgid "importing %d image" msgid_plural "importing %d images" msgstr[0] "Tuodaan %d kuva." msgstr[1] "Tuodaan %d kuvaa." -#: ../src/control/jobs/control_jobs.c:2292 +#: ../src/control/jobs/control_jobs.c:2295 #, c-format msgid "importing %d/%d image" msgid_plural "importing %d/%d images" msgstr[0] "Tuodaan %d/%d kuva" msgstr[1] "Tuodaan %d/%d kuvaa" -#: ../src/control/jobs/control_jobs.c:2300 +#: ../src/control/jobs/control_jobs.c:2305 #, c-format msgid "imported %d image" msgid_plural "imported %d images" msgstr[0] "Tuotiin %d kuva" msgstr[1] "Tuotiin %d kuvaa" -#: ../src/control/jobs/control_jobs.c:2347 ../src/gui/preferences.c:530 -#: ../src/libs/import.c:172 -msgid "import" -msgstr "Tuo" - #: ../src/control/jobs/film_jobs.c:73 ../src/control/jobs/film_jobs.c:109 msgid "import images" msgstr "Tuo kuvia" @@ -7660,11 +7987,11 @@ msgid "import image" msgstr "Tuo kuva" -#: ../src/develop/blend.c:322 +#: ../src/develop/blend.c:315 msgid "detail mask blending error" msgstr "Yksityiskohtaisen maskin yhdistämisen virhe." -#: ../src/develop/blend.c:864 +#: ../src/develop/blend.c:904 msgid "detail mask CL blending problem" msgstr "Yksityiskohtaisen maskin CL yhdistyksen ongelma." @@ -7865,8 +8192,7 @@ msgid "reverse" msgstr "Käänteinen" -#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:413 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1193 +#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:442 msgid "default" msgstr "Oletus" @@ -7874,35 +8200,35 @@ msgid "RAW" msgstr "RAW" -#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2014 +#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2030 msgid "RGB (display)" msgstr "RGB (näyttö)" -#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2027 +#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2043 msgid "RGB (scene)" msgstr "RGB (näkymä)" #. DEVELOP_MASK_ENABLED -#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3419 +#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3438 msgid "uniformly" msgstr "Yhtenäinen maski" -#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:3429 ../src/develop/imageop.c:2685 +#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:3448 ../src/develop/imageop.c:2669 msgid "drawn mask" msgstr "Piirretty maski" -#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2512 -#: ../src/develop/blend_gui.c:3440 ../src/develop/imageop.c:2687 +#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2528 +#: ../src/develop/blend_gui.c:3459 ../src/develop/imageop.c:2671 msgid "parametric mask" msgstr "Laskennallinen maski" -#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2951 -#: ../src/develop/blend_gui.c:3467 ../src/develop/imageop.c:2689 +#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2966 +#: ../src/develop/blend_gui.c:3486 ../src/develop/imageop.c:2673 msgid "raster mask" msgstr "Rasterimaski" -#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3454 +#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3473 msgid "drawn & parametric mask" msgstr "Piirretty & laskennallinen maski" @@ -7938,177 +8264,177 @@ msgid "input after blur" msgstr "Tulo sumennuksen jälkeen" -#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:129 -#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/libs/live_view.c:362 +#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:157 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/libs/live_view.c:362 msgid "on" msgstr "Päällä" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2814 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "input" msgstr "tulo" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2814 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "output" msgstr "lähtö" -#: ../src/develop/blend_gui.c:995 +#: ../src/develop/blend_gui.c:998 msgid " (zoom)" msgstr " (zoom)" -#: ../src/develop/blend_gui.c:1003 +#: ../src/develop/blend_gui.c:1006 msgid " (log)" msgstr " (log)" -#: ../src/develop/blend_gui.c:1988 +#: ../src/develop/blend_gui.c:2004 msgid "reset to default blend colorspace" msgstr "Palauta yhdistämisen oletusväriavaruus" -#: ../src/develop/blend_gui.c:2044 +#: ../src/develop/blend_gui.c:2060 msgid "reset and hide output channels" msgstr "Palauta ja piilota viennin kanavat" -#: ../src/develop/blend_gui.c:2051 +#: ../src/develop/blend_gui.c:2067 msgid "show output channels" msgstr "Näytä viennin kanavat" -#: ../src/develop/blend_gui.c:2290 ../src/develop/blend_gui.c:2357 -#: ../src/iop/tonecurve.c:1134 +#: ../src/develop/blend_gui.c:2306 ../src/develop/blend_gui.c:2373 +#: ../src/iop/tonecurve.c:1156 msgid "L" msgstr "L" -#: ../src/develop/blend_gui.c:2290 +#: ../src/develop/blend_gui.c:2306 msgid "sliders for L channel" msgstr "Liukusäätimet L-kanavalle" -#: ../src/develop/blend_gui.c:2295 ../src/iop/tonecurve.c:1135 +#: ../src/develop/blend_gui.c:2311 ../src/iop/tonecurve.c:1157 msgid "a" msgstr "a" -#: ../src/develop/blend_gui.c:2295 +#: ../src/develop/blend_gui.c:2311 msgid "sliders for a channel" msgstr "Liukusäätimet a-kanavalle" -#: ../src/develop/blend_gui.c:2299 +#: ../src/develop/blend_gui.c:2315 msgid "green/red" msgstr "Vihreä/punainen" -#: ../src/develop/blend_gui.c:2300 ../src/iop/tonecurve.c:1136 +#: ../src/develop/blend_gui.c:2316 ../src/iop/tonecurve.c:1158 msgid "b" msgstr "b" -#: ../src/develop/blend_gui.c:2300 +#: ../src/develop/blend_gui.c:2316 msgid "sliders for b channel" msgstr "Liukusäätimet b-kanavalle" -#: ../src/develop/blend_gui.c:2304 +#: ../src/develop/blend_gui.c:2320 msgid "blue/yellow" msgstr "Sininen/keltainen" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "C" msgstr "C" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "sliders for chroma channel (of LCh)" msgstr "Värikylläisyyden kanavan liukusäätimet (LCh)" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "h" msgstr "h" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "sliders for hue channel (of LCh)" msgstr "Värisävyn kanavan liukusäätimet (LCh)" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "g" msgstr "g" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "sliders for gray value" msgstr "Harmaan arvon liukusäätimet" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/denoiseprofile.c:3710 -#: ../src/iop/rawdenoise.c:894 ../src/iop/rgbcurve.c:1358 -#: ../src/iop/rgblevels.c:1003 ../src/libs/filters/colors.c:137 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/denoiseprofile.c:3714 +#: ../src/iop/rawdenoise.c:910 ../src/iop/rgbcurve.c:1358 +#: ../src/iop/rgblevels.c:1043 ../src/libs/filters/colors.c:137 msgid "R" msgstr "R" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 msgid "sliders for red channel" msgstr "Punaisen kanavan liukusäätimet" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/denoiseprofile.c:3711 -#: ../src/iop/rawdenoise.c:895 ../src/iop/rgbcurve.c:1359 -#: ../src/iop/rgblevels.c:1004 ../src/libs/filters/colors.c:143 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/denoiseprofile.c:3715 +#: ../src/iop/rawdenoise.c:911 ../src/iop/rgbcurve.c:1359 +#: ../src/iop/rgblevels.c:1044 ../src/libs/filters/colors.c:143 msgid "G" msgstr "G" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 msgid "sliders for green channel" msgstr "Vihreän kanavan liukusäätimet" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/denoiseprofile.c:3712 -#: ../src/iop/rawdenoise.c:896 ../src/iop/rgbcurve.c:1360 -#: ../src/iop/rgblevels.c:1005 ../src/libs/filters/colors.c:146 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/denoiseprofile.c:3716 +#: ../src/iop/rawdenoise.c:912 ../src/iop/rgbcurve.c:1360 +#: ../src/iop/rgblevels.c:1045 ../src/libs/filters/colors.c:146 msgid "B" msgstr "B" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 msgid "sliders for blue channel" msgstr "Sinisen kanavan liukusäätimet" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "H" msgstr "H" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "sliders for hue channel (of HSL)" msgstr "Värisävyn kanavan liukusäätimet (HSL)" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "S" msgstr "S" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "sliders for chroma channel (of HSL)" msgstr "Värikylläisyyden kanavan liukusäätimet (HSL)" -#: ../src/develop/blend_gui.c:2357 +#: ../src/develop/blend_gui.c:2373 msgid "sliders for value channel (of HSL)" msgstr "Valoisuuden kanavan liukusäätimet (HSL)" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "Jz" msgstr "Jz" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "sliders for value channel (of JzCzhz)" msgstr "Valoisuuden kanavan liukusäätimet (JzCzhz)" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "Cz" msgstr "Cz" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "sliders for chroma channel (of JzCzhz)" msgstr "Värikylläisyyden kanavan liukusäätimet (JzCzhz)" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "hz" msgstr "hz" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "sliders for hue channel (of JzCzhz)" msgstr "Värisävyn kanavan liukusäätimet (JzCzhz)" -#: ../src/develop/blend_gui.c:2415 +#: ../src/develop/blend_gui.c:2431 msgid "" "adjustment based on input received by this module:\n" "* range defined by upper markers: blend fully\n" @@ -8116,12 +8442,12 @@ "* range between adjacent upper/lower markers: blend gradually" msgstr "" "Moduulin syötteeseen perustuvat säädöt.\n" -"* Ylempään merkkiin perustuva toimintasäde: yhdistä täysin\n" -"* Alempaan merkkiin perustuva toimintasäde: älä yhdistä lainkaan\n" +"* Ylempään merkkiin perustuva toimintasäde: Yhdistä täysin\n" +"* Alempaan merkkiin perustuva toimintasäde: Älä yhdistä lainkaan\n" "* Ylemmän/alemman merkin läheisyyteen perustuva toimintasäde: yhdistä " "asteittain" -#: ../src/develop/blend_gui.c:2419 +#: ../src/develop/blend_gui.c:2435 msgid "" "adjustment based on unblended output of this module:\n" "* range defined by upper markers: blend fully\n" @@ -8134,19 +8460,19 @@ "* Ylemmän/alemman merkin läheisyyteen perustuva toimintasäde: Yhdistä " "asteittain" -#: ../src/develop/blend_gui.c:2516 +#: ../src/develop/blend_gui.c:2532 msgid "reset blend mask settings" msgstr "Palauta yhdistämisen maskin oletukset." -#: ../src/develop/blend_gui.c:2527 ../src/iop/atrous.c:1665 -#: ../src/iop/colorzones.c:2399 ../src/iop/denoiseprofile.c:3707 -#: ../src/iop/rawdenoise.c:891 ../src/iop/rgbcurve.c:1357 -#: ../src/iop/rgblevels.c:1002 ../src/iop/tonecurve.c:1133 +#: ../src/develop/blend_gui.c:2543 ../src/iop/atrous.c:1797 +#: ../src/iop/colorzones.c:2641 ../src/iop/denoiseprofile.c:3711 +#: ../src/iop/rawdenoise.c:907 ../src/iop/rgbcurve.c:1357 +#: ../src/iop/rgblevels.c:1041 ../src/iop/tonecurve.c:1155 msgid "channel" msgstr "Kanava" -#: ../src/develop/blend_gui.c:2542 ../src/iop/colorzones.c:2413 -#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1142 +#: ../src/develop/blend_gui.c:2558 ../src/iop/colorzones.c:2660 +#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1164 msgid "" "pick GUI color from image\n" "ctrl+click or right-click to select an area" @@ -8154,12 +8480,12 @@ "Valitse väri kuvasta.\n" "CTRL+napsaus tai oikea napsaus valitsee alueen." -#: ../src/develop/blend_gui.c:2545 ../src/iop/colorzones.c:2415 +#: ../src/develop/blend_gui.c:2561 ../src/iop/colorzones.c:2662 #: ../src/iop/rgbcurve.c:1369 msgid "show color" msgstr "Näytä väri" -#: ../src/develop/blend_gui.c:2554 +#: ../src/develop/blend_gui.c:2570 msgid "" "set the range based on an area from the image\n" "drag to use the input image\n" @@ -8169,19 +8495,19 @@ "Raahaa käyttääksesi alkuperäistä kuvaa.\n" "CTRL+raahaa käyttääksesi muokattua kuvaa." -#: ../src/develop/blend_gui.c:2557 +#: ../src/develop/blend_gui.c:2573 msgid "set range" msgstr "Aseta alue" -#: ../src/develop/blend_gui.c:2560 +#: ../src/develop/blend_gui.c:2576 msgid "invert all channel's polarities" msgstr "Vaihda kaikkien kanavien napaisuus." -#: ../src/develop/blend_gui.c:2584 +#: ../src/develop/blend_gui.c:2600 msgid "toggle polarity. best seen by enabling 'display mask'" msgstr "Vaihda napaisuus. Erottuu parhaiten, kun \"näytä maski\" on käytössä" -#: ../src/develop/blend_gui.c:2613 +#: ../src/develop/blend_gui.c:2629 msgid "" "double-click to reset.\n" "press 'a' to toggle available slider modes.\n" @@ -8193,170 +8519,205 @@ "Paina 'c' vaihtaaksesi kanavien tiedot.\n" "Paina 'm' vaihtaaksesi maskinäyttöön." -#: ../src/develop/blend_gui.c:2640 ../src/develop/blend_gui.c:3531 -#: ../src/iop/basicadj.c:600 ../src/iop/colorbalancergb.c:2090 -#: ../src/iop/exposure.c:1120 ../src/iop/exposure.c:1135 -#: ../src/iop/filmic.c:1503 ../src/iop/filmic.c:1516 ../src/iop/filmic.c:1558 -#: ../src/iop/filmicrgb.c:4440 ../src/iop/filmicrgb.c:4451 -#: ../src/iop/filmicrgb.c:4485 ../src/iop/filmicrgb.c:4495 -#: ../src/iop/graduatednd.c:1113 ../src/iop/negadoctor.c:1011 -#: ../src/iop/profile_gamma.c:643 ../src/iop/profile_gamma.c:649 -#: ../src/iop/relight.c:262 ../src/iop/soften.c:378 ../src/iop/toneequal.c:3326 -#: ../src/iop/toneequal.c:3329 ../src/iop/toneequal.c:3332 -#: ../src/iop/toneequal.c:3335 ../src/iop/toneequal.c:3338 -#: ../src/iop/toneequal.c:3341 ../src/iop/toneequal.c:3344 -#: ../src/iop/toneequal.c:3347 ../src/iop/toneequal.c:3350 -#: ../src/iop/toneequal.c:3472 ../src/iop/toneequal.c:3481 -#: ../src/iop/toneequal.c:3494 ../src/views/darkroom.c:2453 +#: ../src/develop/blend_gui.c:2656 ../src/develop/blend_gui.c:3577 +#: ../src/iop/basicadj.c:630 ../src/iop/colorbalancergb.c:2161 +#: ../src/iop/exposure.c:1138 ../src/iop/exposure.c:1153 +#: ../src/iop/filmic.c:1528 ../src/iop/filmic.c:1541 ../src/iop/filmic.c:1583 +#: ../src/iop/filmicrgb.c:4504 ../src/iop/filmicrgb.c:4515 +#: ../src/iop/filmicrgb.c:4549 ../src/iop/filmicrgb.c:4559 +#: ../src/iop/graduatednd.c:1082 ../src/iop/negadoctor.c:1030 +#: ../src/iop/profile_gamma.c:657 ../src/iop/profile_gamma.c:663 +#: ../src/iop/relight.c:258 ../src/iop/soften.c:373 ../src/iop/toneequal.c:3379 +#: ../src/iop/toneequal.c:3382 ../src/iop/toneequal.c:3385 +#: ../src/iop/toneequal.c:3388 ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3394 ../src/iop/toneequal.c:3397 +#: ../src/iop/toneequal.c:3400 ../src/iop/toneequal.c:3403 +#: ../src/iop/toneequal.c:3525 ../src/iop/toneequal.c:3534 +#: ../src/iop/toneequal.c:3547 ../src/views/darkroom.c:2292 msgid " EV" msgstr " EV" -#: ../src/develop/blend_gui.c:2642 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:2951 ../src/develop/blend_gui.c:3014 -#: ../src/develop/blend_gui.c:3499 ../src/develop/blend_gui.c:3529 -#: ../src/develop/blend_gui.c:3542 ../src/develop/blend_gui.c:3559 -#: ../src/develop/blend_gui.c:3583 ../src/develop/blend_gui.c:3593 -#: ../src/develop/blend_gui.c:3602 ../src/develop/blend_gui.c:3613 +#: ../src/develop/blend_gui.c:2658 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:2966 ../src/develop/blend_gui.c:3029 +#: ../src/develop/blend_gui.c:3545 ../src/develop/blend_gui.c:3575 +#: ../src/develop/blend_gui.c:3588 ../src/develop/blend_gui.c:3605 +#: ../src/develop/blend_gui.c:3629 ../src/develop/blend_gui.c:3641 +#: ../src/develop/blend_gui.c:3652 ../src/develop/blend_gui.c:3663 msgid "blend" msgstr "Yhdistä" -#: ../src/develop/blend_gui.c:2642 +#: ../src/develop/blend_gui.c:2658 msgid "boost factor" msgstr "Korostuksen kerroin" -#: ../src/develop/blend_gui.c:2645 +#: ../src/develop/blend_gui.c:2661 msgid "adjust the boost factor of the channel mask" msgstr "Muuta kanavamaskin korostuksen kerrointa." -#: ../src/develop/blend_gui.c:2682 +#: ../src/develop/blend_gui.c:2698 #, c-format msgid "%d shape used" msgid_plural "%d shapes used" msgstr[0] "%d muoto käytössä" msgstr[1] "%d muotoa käytössä" -#: ../src/develop/blend_gui.c:2687 ../src/develop/blend_gui.c:2743 -#: ../src/develop/blend_gui.c:2831 ../src/develop/blend_gui.c:2952 +#: ../src/develop/blend_gui.c:2703 ../src/develop/blend_gui.c:2759 +#: ../src/develop/blend_gui.c:2847 ../src/develop/blend_gui.c:2967 msgid "no mask used" msgstr "Maskia ei käytössä" -#: ../src/develop/blend_gui.c:2751 +#: ../src/develop/blend_gui.c:2767 msgid "toggle polarity of drawn mask" msgstr "Vaihda piirretyn maskin napaisuus" -#: ../src/develop/blend_gui.c:2760 +#: ../src/develop/blend_gui.c:2776 msgid "show and edit mask elements" msgstr "Näytä ja muokkaa maskin elementtejä." -#: ../src/develop/blend_gui.c:2761 +#: ../src/develop/blend_gui.c:2777 msgid "show and edit in restricted mode" msgstr "Näytä ja muokkaa rajoitetussa tilassa" -#: ../src/develop/blend_gui.c:2768 ../src/libs/masks.c:998 -#: ../src/libs/masks.c:1816 ../src/libs/masks.c:1820 +#: ../src/develop/blend_gui.c:2784 ../src/libs/masks.c:1014 +#: ../src/libs/masks.c:1812 ../src/libs/masks.c:1816 msgid "add gradient" msgstr "Lisää liukuväri" -#: ../src/develop/blend_gui.c:2769 +#: ../src/develop/blend_gui.c:2785 msgid "add multiple gradients" msgstr "lisää useita liukuvärejä" -#: ../src/develop/blend_gui.c:2776 ../src/iop/retouch.c:2238 -#: ../src/libs/masks.c:978 ../src/libs/masks.c:1852 ../src/libs/masks.c:1856 +#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2466 +#: ../src/libs/masks.c:994 ../src/libs/masks.c:1848 ../src/libs/masks.c:1852 msgid "add brush" msgstr "Lisää sivellin" -#: ../src/develop/blend_gui.c:2777 ../src/iop/retouch.c:2238 +#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2466 msgid "add multiple brush strokes" msgstr "lisää useita siveltimen vetoja" -#: ../src/develop/blend_gui.c:2784 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 ../src/libs/masks.c:993 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1829 +#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 ../src/libs/masks.c:1009 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1825 msgid "add path" msgstr "Lisää polku" -#: ../src/develop/blend_gui.c:2785 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 +#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 msgid "add multiple paths" msgstr "lisää useita polkuja" -#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 ../src/libs/masks.c:988 ../src/libs/masks.c:1834 -#: ../src/libs/masks.c:1838 +#: ../src/develop/blend_gui.c:2808 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 ../src/libs/masks.c:1004 ../src/libs/masks.c:1830 +#: ../src/libs/masks.c:1834 msgid "add ellipse" msgstr "Lisää ellipsi" -#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 +#: ../src/develop/blend_gui.c:2809 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 msgid "add multiple ellipses" msgstr "lisää useita ellipsejä" -#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 ../src/libs/masks.c:983 ../src/libs/masks.c:1843 -#: ../src/libs/masks.c:1847 +#: ../src/develop/blend_gui.c:2816 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 ../src/libs/masks.c:999 ../src/libs/masks.c:1839 +#: ../src/libs/masks.c:1843 msgid "add circle" msgstr "Lisää ympyrä" -#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 +#: ../src/develop/blend_gui.c:2817 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 msgid "add multiple circles" msgstr "lisää useita ympyröitä" -#: ../src/develop/blend_gui.c:2961 +#: ../src/develop/blend_gui.c:2976 msgid "toggle polarity of raster mask" msgstr "Vaihda rasterimaskin napaisuus." -#: ../src/develop/blend_gui.c:3101 +#: ../src/develop/blend_gui.c:3119 msgid "normal & difference" msgstr "Normaali & erottava" -#: ../src/develop/blend_gui.c:3106 +#: ../src/develop/blend_gui.c:3124 msgid "lighten" msgstr "Vaalentava" -#: ../src/develop/blend_gui.c:3113 +#: ../src/develop/blend_gui.c:3131 msgid "darken" msgstr "Tummentava" -#: ../src/develop/blend_gui.c:3120 +#: ../src/develop/blend_gui.c:3138 msgid "contrast enhancing" msgstr "Kontrastia korostava" -#: ../src/develop/blend_gui.c:3127 ../src/develop/blend_gui.c:3150 +#: ../src/develop/blend_gui.c:3145 ../src/develop/blend_gui.c:3168 msgid "color channel" msgstr "Värikanava" -#: ../src/develop/blend_gui.c:3138 ../src/develop/blend_gui.c:3153 +#: ../src/develop/blend_gui.c:3156 ../src/develop/blend_gui.c:3171 msgid "chromaticity & lightness" msgstr "Kromaattisuus & vaaleus" -#: ../src/develop/blend_gui.c:3145 +#: ../src/develop/blend_gui.c:3163 msgid "normal & arithmetic" msgstr "Normaali ja laskennallinen" #. add deprecated blend mode -#: ../src/develop/blend_gui.c:3166 +#: ../src/develop/blend_gui.c:3184 msgid "deprecated" msgstr "Vanhentunut" -#: ../src/develop/blend_gui.c:3478 +#. should never happen: unknown blend mode +#: ../src/develop/blend_gui.c:3188 +#, c-format +msgid "unknown blend mode '%d' in module '%s'" +msgstr "Tuntematon yhdistämisen tila '%d' moduulissa '%s'" + +#: ../src/develop/blend_gui.c:3497 msgid "blending options" msgstr "Yhdistämisen asetukset" -#: ../src/develop/blend_gui.c:3500 ../src/libs/history.c:949 -msgid "blend mode" -msgstr "Yhdistämisen tila" +#: ../src/develop/blend_gui.c:3516 +msgid "blend mask" +msgstr "Yhdistämisen maski" + +#: ../src/develop/blend_gui.c:3520 +msgid "display mask and/or color channel" +msgstr "Maskin ja/tai värikanavien näyttö" -#: ../src/develop/blend_gui.c:3503 +#: ../src/develop/blend_gui.c:3525 +msgid "" +"display mask and/or color channel.\n" +"ctrl+click to display mask,\n" +"shift+click to display channel.\n" +"hover over parametric mask slider to select channel for display" +msgstr "" +"Näytä maski ja/tai värikanava.\n" +"CTRL+napsaus näyttää maskin.\n" +"SHIFT+napsaus näyttää kanavan.\n" +"Pidä laskennallisen maskin liukusäätimien päällä valitaksesi näytettävän " +"kanavan." + +#: ../src/develop/blend_gui.c:3532 +msgid "temporarily switch off blend mask" +msgstr "Poista yhdistämisen maskin väliaikaisesti käytöstä" + +#: ../src/develop/blend_gui.c:3537 +msgid "" +"temporarily switch off blend mask.\n" +"only for module in focus" +msgstr "" +"Poista yhdistämisen maskin väliaikaisesti käytöstä.\n" +"Koskee ainoastaan valittua moduulia." + +#: ../src/develop/blend_gui.c:3549 msgid "choose blending mode" msgstr "Valitse yhdistämisen tila." -#: ../src/develop/blend_gui.c:3513 +#: ../src/develop/blend_gui.c:3559 msgid "toggle blend order" msgstr "Vaihda yhdistämisen järjestys" -#: ../src/develop/blend_gui.c:3519 +#: ../src/develop/blend_gui.c:3565 msgid "" "toggle the blending order between the input and the output of the module,\n" "by default the output will be blended on top of the input,\n" @@ -8366,39 +8727,39 @@ "Oletuksena lähtö yhdistetään tulon päälle.\n" "Järjestys voidaan kääntää napsauttamalla kuvaketta (tulo lähdön päällä)" -#: ../src/develop/blend_gui.c:3530 ../src/libs/history.c:953 -msgid "blend fulcrum" -msgstr "Yhdistämisen tukipiste" +#: ../src/develop/blend_gui.c:3576 +msgid "fulcrum" +msgstr "Tukipiste" -#: ../src/develop/blend_gui.c:3534 +#: ../src/develop/blend_gui.c:3580 msgid "adjust the fulcrum used by some blending operations" msgstr "Säädä joidenkin yhdistysoperaattoreiden käyttämää tukipistettä." #. Add opacity/scale sliders to table -#: ../src/develop/blend_gui.c:3542 ../src/iop/watermark.c:1314 -#: ../src/libs/masks.c:104 +#: ../src/develop/blend_gui.c:3588 ../src/iop/watermark.c:1362 +#: ../src/libs/masks.c:105 msgid "opacity" msgstr "Läpinäkyvyys" -#: ../src/develop/blend_gui.c:3546 +#: ../src/develop/blend_gui.c:3591 msgid "set the opacity of the blending" msgstr "Aseta yhdistämisen läpinäkyvyys." -#: ../src/develop/blend_gui.c:3550 ../src/libs/history.c:956 +#: ../src/develop/blend_gui.c:3596 ../src/libs/history.c:956 msgid "combine masks" msgstr "Yhdistä maskeja" -#: ../src/develop/blend_gui.c:3552 +#: ../src/develop/blend_gui.c:3598 msgid "" "how to combine individual drawn mask and different channels of parametric " "mask" msgstr "Värikanavien laskennallisten sekä piirrettyjen maskien yhdistelytapa." -#: ../src/develop/blend_gui.c:3559 +#: ../src/develop/blend_gui.c:3605 msgid "details threshold" msgstr "Yksityiskohtien kynnysarvo" -#: ../src/develop/blend_gui.c:3563 +#: ../src/develop/blend_gui.c:3609 msgid "" "adjust the threshold for the details mask (using raw data),\n" "positive values select areas with strong details,\n" @@ -8408,11 +8769,11 @@ "Positiiviset arvot valitsevat voimakkaiden yksityiskohtien alueet.\n" "Negatiiviset arvot valitsevat tasaiset alueet." -#: ../src/develop/blend_gui.c:3571 ../src/libs/history.c:959 +#: ../src/develop/blend_gui.c:3617 ../src/libs/history.c:959 msgid "feathering guide" msgstr "Häivytyksen ohjain" -#: ../src/develop/blend_gui.c:3574 +#: ../src/develop/blend_gui.c:3620 msgid "" "choose to guide mask by input or output image and\n" "choose to apply feathering before or after mask blur" @@ -8420,28 +8781,28 @@ "Valitse johtaaksesi maski alkuperäisestä- tai muokatusta kuvasta ja\n" "valitse tehdäänkö häivytys ennen vai jälkeen maskin häivytyksen." -#: ../src/develop/blend_gui.c:3583 ../src/libs/history.c:958 +#: ../src/develop/blend_gui.c:3629 ../src/libs/history.c:958 msgid "feathering radius" msgstr "Häivytyksen säde" -#: ../src/develop/blend_gui.c:3586 +#: ../src/develop/blend_gui.c:3632 msgid "spatial radius of feathering" msgstr "Häivytyksen säteen alueellinen kattavuus." -#: ../src/develop/blend_gui.c:3593 +#: ../src/develop/blend_gui.c:3641 msgid "blurring radius" msgstr "Sumennuksen säde" -#: ../src/develop/blend_gui.c:3596 +#: ../src/develop/blend_gui.c:3644 msgid "radius for gaussian blur of blend mask" -msgstr "Gauss-sumennuksen säde yhdistämisen maskile" +msgstr "Gauss-sumennuksen säde yhdistämisen maskille" -#: ../src/develop/blend_gui.c:3602 ../src/iop/retouch.c:2453 +#: ../src/develop/blend_gui.c:3652 ../src/iop/retouch.c:2738 #: ../src/libs/history.c:954 msgid "mask opacity" msgstr "Maskin läpinäkyvyys" -#: ../src/develop/blend_gui.c:3606 +#: ../src/develop/blend_gui.c:3656 msgid "" "shifts and tilts the tone curve of the blend mask to adjust its brightness\n" "without affecting fully transparent/fully opaque regions" @@ -8450,132 +8811,110 @@ "säätämiseksi\n" "muuttamatta täysin läpinäkyviä tai läpinäkymättömiä alueita." -#: ../src/develop/blend_gui.c:3613 ../src/libs/history.c:962 +#: ../src/develop/blend_gui.c:3663 ../src/libs/history.c:962 msgid "mask contrast" msgstr "Maskin kontrasti" -#: ../src/develop/blend_gui.c:3617 +#: ../src/develop/blend_gui.c:3667 msgid "" "gives the tone curve of the blend mask an s-like shape to adjust its contrast" msgstr "" "Muuttaa yhdistämisen maskin sävykäyrän S-muotoon kontrastin säätämiseksi." -#: ../src/develop/blend_gui.c:3621 +#: ../src/develop/blend_gui.c:3671 msgid "mask refinement" msgstr "Maskin hienosäätö" -#: ../src/develop/blend_gui.c:3625 -msgid "display mask and/or color channel" -msgstr "Maskin ja/tai värikanavien näyttö" - -#: ../src/develop/blend_gui.c:3630 -msgid "" -"display mask and/or color channel.\n" -"ctrl+click to display mask,\n" -"shift+click to display channel.\n" -"hover over parametric mask slider to select channel for display" -msgstr "" -"Näytä maski ja/tai värikanava.\n" -"CTRL+napsaus näyttää maskin.\n" -"SHIFT+napsaus näyttää kanavan.\n" -"Pidä laskennallisen maskin liukusäätimien päällä valitaksesi näytettävän " -"kanavan." - -#: ../src/develop/blend_gui.c:3637 -msgid "temporarily switch off blend mask" -msgstr "Poista yhdistämisen maskin väliaikaisesti käytöstä" - -#: ../src/develop/blend_gui.c:3642 +#: ../src/develop/develop.c:732 msgid "" -"temporarily switch off blend mask.\n" -"only for module in focus" +"autosaving history has been disabled for this session because of a slow " +"drive used" msgstr "" -"Poista yhdistämisen maskin väliaikaisesti käytöstä.\n" -"Koskee ainoastaan valittua moduulia." +"Historian automaattinen tallentaminen on poistettu käytöstä tälle " +"istunnolle, koska käytössä on hidas levy." -#: ../src/develop/develop.c:2311 +#: ../src/develop/develop.c:2202 #, c-format msgid "%s: module `%s' version mismatch: %d != %d" msgstr "%s: moduulin `%s' versioristiriita: %d != %d" -#: ../src/develop/develop.c:2842 -msgid "module duplicate, can't move new instance after the base one\n" +#: ../src/develop/develop.c:3016 +msgid "duplicate module, can't move new instance after the base one\n" msgstr "" -"Moduulin kahdentaja, ei voida siirtää uutta instanssia lähteenä toimivan " +"Moduulin kahdennus, uutta instanssia ei voi siirtää lähteenä toimivan " "jälkeen.\n" -#: ../src/develop/imageop.c:1036 +#: ../src/develop/imageop.c:1031 msgid "new instance" msgstr "Uusi instanssi" -#: ../src/develop/imageop.c:1042 +#: ../src/develop/imageop.c:1037 msgid "duplicate instance" msgstr "Kahdenna instanssi" -#: ../src/develop/imageop.c:1048 ../src/develop/imageop.c:3767 -#: ../src/libs/masks.c:1152 +#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3755 +#: ../src/libs/masks.c:1146 msgid "move up" msgstr "Siirrä ylös" -#: ../src/develop/imageop.c:1054 ../src/develop/imageop.c:3768 -#: ../src/libs/masks.c:1157 +#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3756 +#: ../src/libs/masks.c:1151 msgid "move down" msgstr "Siirrä alas" #. delete button label and tooltip will be updated based on trash pref -#: ../src/develop/imageop.c:1060 ../src/develop/imageop.c:3770 -#: ../src/gui/accelerators.c:155 ../src/gui/presets.c:562 -#: ../src/libs/image.c:285 ../src/libs/image.c:480 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 +#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3758 +#: ../src/gui/accelerators.c:173 ../src/libs/image.c:303 +#: ../src/libs/image.c:513 msgid "delete" msgstr "Poista" -#: ../src/develop/imageop.c:1067 ../src/develop/imageop.c:3771 -#: ../src/libs/modulegroups.c:3464 ../src/libs/modulegroups.c:3815 +#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3759 +#: ../src/libs/modulegroups.c:3817 msgid "rename" msgstr "Nimeä uudelleen" -#: ../src/develop/imageop.c:1135 ../src/develop/imageop.c:2978 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched on" msgstr "'%s' on käytössä." -#: ../src/develop/imageop.c:1135 ../src/develop/imageop.c:2978 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched off" msgstr "'%s' on pois käytöstä." -#: ../src/develop/imageop.c:2679 +#: ../src/develop/imageop.c:2663 msgid "unknown mask" msgstr "tuntematon maski" -#: ../src/develop/imageop.c:2683 +#: ../src/develop/imageop.c:2667 msgid "drawn + parametric mask" msgstr "Piirretty + laskennallinen maski" -#: ../src/develop/imageop.c:2692 +#: ../src/develop/imageop.c:2676 #, c-format msgid "this module has a `%s'" msgstr "Tässä moduulissa on `%s'" -#: ../src/develop/imageop.c:2697 +#: ../src/develop/imageop.c:2681 #, c-format msgid "taken from module %s" msgstr "Otettu moduulista %s" -#: ../src/develop/imageop.c:2702 +#: ../src/develop/imageop.c:2686 msgid "click to display (module must be activated first)" msgstr "Napsauta näyttääksesi (moduulin pitää olla ensin aktiivinen)." -#: ../src/develop/imageop.c:2814 +#: ../src/develop/imageop.c:2797 msgid "purpose" msgstr "tarkoitus" -#: ../src/develop/imageop.c:2814 +#: ../src/develop/imageop.c:2797 msgid "process" msgstr "toiminta" -#: ../src/develop/imageop.c:2934 +#: ../src/develop/imageop.c:2917 msgid "" "multiple instance actions\n" "right-click creates new instance" @@ -8583,7 +8922,7 @@ "Useiden instanssien toiminnot.\n" "Oikea napsaus luo uuden instanssin." -#: ../src/develop/imageop.c:2949 +#: ../src/develop/imageop.c:2932 msgid "" "reset parameters\n" "ctrl+click to reapply any automatic presets" @@ -8591,7 +8930,7 @@ "Palauta oletukset.\n" "CTRL+napsaus ottaa käyttöön automaattiset esiasetukset." -#: ../src/develop/imageop.c:2961 +#: ../src/develop/imageop.c:2944 msgid "" "presets\n" "right-click to apply on new instance" @@ -8599,15 +8938,15 @@ "Esiasetukset.\n" "Oikea napsaus asettaa uuteen instanssin." -#: ../src/develop/imageop.c:3211 ../src/develop/imageop.c:3233 +#: ../src/develop/imageop.c:3194 ../src/develop/imageop.c:3216 msgid "ERROR" msgstr "VIRHE" -#: ../src/develop/imageop.c:3648 +#: ../src/develop/imageop.c:3622 msgid "unsupported input" msgstr "Tukematon tulo" -#: ../src/develop/imageop.c:3649 +#: ../src/develop/imageop.c:3623 msgid "" "you have placed this module at\n" "a position in the pipeline where\n" @@ -8618,49 +8957,49 @@ "työskentelyputkessa sijaintiin jossa\n" "tiedon muoto ei vastaa vaatimuksia." -#: ../src/develop/imageop.c:3766 ../src/develop/imageop.c:3776 -#: ../src/gui/accelerators.c:151 ../src/libs/lib.c:1415 +#: ../src/develop/imageop.c:3754 ../src/develop/imageop.c:3764 +#: ../src/gui/accelerators.c:169 ../src/libs/lib.c:1415 msgid "show" msgstr "Näytä" -#: ../src/develop/imageop.c:3769 ../src/libs/modulegroups.c:3310 -#: ../src/libs/modulegroups.c:3436 ../src/libs/modulegroups.c:3817 -#: ../src/libs/tagging.c:3248 +#: ../src/develop/imageop.c:3757 ../src/libs/modulegroups.c:3315 +#: ../src/libs/modulegroups.c:3438 ../src/libs/modulegroups.c:3819 +#: ../src/libs/tagging.c:3279 msgid "new" msgstr "Uusi" -#: ../src/develop/imageop.c:3772 ../src/libs/duplicate.c:405 -#: ../src/libs/image.c:495 ../src/libs/modulegroups.c:3813 +#: ../src/develop/imageop.c:3760 ../src/libs/duplicate.c:411 +#: ../src/libs/image.c:534 ../src/libs/modulegroups.c:3815 msgid "duplicate" msgstr "Kahdenna" -#: ../src/develop/imageop.c:3777 +#: ../src/develop/imageop.c:3765 msgid "enable" msgstr "Aktivoi" -#: ../src/develop/imageop.c:3778 ../src/gui/accelerators.c:167 +#: ../src/develop/imageop.c:3766 ../src/gui/accelerators.c:185 msgid "focus" msgstr "Tarkennus" -#: ../src/develop/imageop.c:3779 ../src/gui/accelerators.c:2617 +#: ../src/develop/imageop.c:3767 ../src/gui/accelerators.c:2874 msgid "instance" msgstr "Instanssi" -#: ../src/develop/imageop.c:3780 ../src/gui/accelerators.c:112 -#: ../src/gui/accelerators.c:122 ../src/gui/gtk.c:3009 ../src/gui/gtk.c:3056 -#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:603 -#: ../src/gui/styles_dialog.c:625 ../src/iop/atrous.c:1512 -#: ../src/libs/lib.c:1416 ../src/libs/modulegroups.c:3882 +#: ../src/develop/imageop.c:3768 ../src/gui/accelerators.c:130 +#: ../src/gui/accelerators.c:140 ../src/gui/gtk.c:3055 ../src/gui/gtk.c:3102 +#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:615 +#: ../src/gui/styles_dialog.c:637 ../src/iop/atrous.c:1626 +#: ../src/libs/lib.c:1416 ../src/libs/modulegroups.c:3884 msgid "reset" msgstr "Palauta" #. Adding the outer container -#: ../src/develop/imageop.c:3781 ../src/gui/preferences.c:798 +#: ../src/develop/imageop.c:3769 ../src/gui/preferences.c:796 #: ../src/libs/lib.c:1417 msgid "presets" msgstr "Esiasetukset" -#: ../src/develop/imageop.c:3801 +#: ../src/develop/imageop.c:3789 msgid "processing module" msgstr "Käsittelymoduuli" @@ -8673,54 +9012,54 @@ "%s\n" "CTRL+Napsaus %s" -#: ../src/develop/lightroom.c:1083 +#: ../src/develop/lightroom.c:1137 msgid "cannot find Lightroom XMP!" msgstr "Lightroomin XMP-aputiedostoa ei löydy!" -#: ../src/develop/lightroom.c:1115 ../src/develop/lightroom.c:1137 -#: ../src/develop/lightroom.c:1157 +#: ../src/develop/lightroom.c:1169 ../src/develop/lightroom.c:1191 +#: ../src/develop/lightroom.c:1211 #, c-format msgid "`%s' is not a Lightroom XMP!" msgstr "`%s' ei ole Lightroom XMP-aputiedosto!" -#: ../src/develop/lightroom.c:1556 +#: ../src/develop/lightroom.c:1613 #, c-format msgid "%s has been imported" msgid_plural "%s have been imported" msgstr[0] "%s kuva tuotu." msgstr[1] "%s kuvaa tuotu." -#: ../src/develop/masks/brush.c:1356 ../src/develop/masks/brush.c:1410 +#: ../src/develop/masks/brush.c:1346 ../src/develop/masks/brush.c:1400 #, c-format msgid "hardness: %3.2f%%" msgstr "Kovuus: %3.2f%%" -#: ../src/develop/masks/brush.c:1372 ../src/develop/masks/brush.c:1470 +#: ../src/develop/masks/brush.c:1362 ../src/develop/masks/brush.c:1460 #: ../src/develop/masks/circle.c:148 ../src/develop/masks/circle.c:193 #: ../src/develop/masks/ellipse.c:484 ../src/develop/masks/ellipse.c:546 -#: ../src/develop/masks/path.c:1273 +#: ../src/develop/masks/path.c:1255 #, c-format msgid "size: %3.2f%%" msgstr "Koko: %3.2f%%" -#: ../src/develop/masks/brush.c:3247 +#: ../src/develop/masks/brush.c:3191 msgid "[BRUSH] change size" msgstr "[SIVELLIN] Muuta kokoa" -#: ../src/develop/masks/brush.c:3249 +#: ../src/develop/masks/brush.c:3193 msgid "[BRUSH] change hardness" msgstr "[SIVELLIN] Muuta kovuutta" -#: ../src/develop/masks/brush.c:3251 +#: ../src/develop/masks/brush.c:3195 msgid "[BRUSH] change opacity" msgstr "[SIVELLIN] Vähennä siveltimen läpinäkyvyyttä" -#: ../src/develop/masks/brush.c:3263 +#: ../src/develop/masks/brush.c:3207 #, c-format msgid "brush #%d" msgstr "Sivellin #%d" -#: ../src/develop/masks/brush.c:3276 +#: ../src/develop/masks/brush.c:3220 #, c-format msgid "" "<b>size</b>: scroll, <b>hardness</b>: shift+scroll\n" @@ -8729,35 +9068,35 @@ "<b>Koko</b>: rulla, <b>Kovuus</b>: SHIFT+rulla\n" "<b>Läpinäkyvyys</b>: CTRL+rulla (%d%%)" -#: ../src/develop/masks/brush.c:3279 +#: ../src/develop/masks/brush.c:3223 msgid "<b>size</b>: scroll" msgstr "<b>Koko</b>: rulla" #: ../src/develop/masks/circle.c:137 ../src/develop/masks/circle.c:181 #: ../src/develop/masks/ellipse.c:470 ../src/develop/masks/ellipse.c:531 -#: ../src/develop/masks/path.c:1205 +#: ../src/develop/masks/path.c:1187 #, c-format msgid "feather size: %3.2f%%" msgstr "Häivytyksen koko: %3.2f%%" -#: ../src/develop/masks/circle.c:1510 +#: ../src/develop/masks/circle.c:1462 msgid "[CIRCLE] change size" msgstr "[YMPYRÄ] Muuta kokoa" -#: ../src/develop/masks/circle.c:1512 +#: ../src/develop/masks/circle.c:1464 msgid "[CIRCLE] change feather size" msgstr "[YMPYRÄ] Muuta häivytyksen kokoa" -#: ../src/develop/masks/circle.c:1514 +#: ../src/develop/masks/circle.c:1466 msgid "[CIRCLE] change opacity" msgstr "[YMPYRÄ] Muuta läpinäkyvyyttä" -#: ../src/develop/masks/circle.c:1527 +#: ../src/develop/masks/circle.c:1479 #, c-format msgid "circle #%d" msgstr "Ympyrä #%d" -#: ../src/develop/masks/circle.c:1538 ../src/develop/masks/path.c:3490 +#: ../src/develop/masks/circle.c:1490 ../src/develop/masks/path.c:3406 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8771,32 +9110,32 @@ msgid "rotation: %3.f°" msgstr "Kierto: %3.f°" -#: ../src/develop/masks/ellipse.c:2068 +#: ../src/develop/masks/ellipse.c:2015 msgid "[ELLIPSE] change size" msgstr "[ELLIPSI] Muuta kokoa" -#: ../src/develop/masks/ellipse.c:2071 +#: ../src/develop/masks/ellipse.c:2018 msgid "[ELLIPSE] change feather size" msgstr "[ELLIPSI] Muuta häivytyksen kokoa" -#: ../src/develop/masks/ellipse.c:2074 ../src/develop/masks/ellipse.c:2083 +#: ../src/develop/masks/ellipse.c:2021 ../src/develop/masks/ellipse.c:2030 msgid "[ELLIPSE] rotate shape" msgstr "[ELLIPSI] Kierrä muotoa." -#: ../src/develop/masks/ellipse.c:2077 +#: ../src/develop/masks/ellipse.c:2024 msgid "[ELLIPSE] change opacity" msgstr "[ELLIPSI] Muuta läpinäkyvyyttä" -#: ../src/develop/masks/ellipse.c:2080 +#: ../src/develop/masks/ellipse.c:2027 msgid "[ELLIPSE] switch feathering mode" msgstr "[ELLIPSI] Vaihda häivytystilaa" -#: ../src/develop/masks/ellipse.c:2090 +#: ../src/develop/masks/ellipse.c:2037 #, c-format msgid "ellipse #%d" msgstr "Ellipsi #%d" -#: ../src/develop/masks/ellipse.c:2128 +#: ../src/develop/masks/ellipse.c:2075 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8805,11 +9144,11 @@ "<b>Koko</b>: rulla, <b>Häivytyksen koko</b>: SHIFT+rulla\n" "<b>Kierto</b>: CTRL+SHICT+rulla, <b>Läpinäkyvyys</b>: CTRL+rulla (%d%%)" -#: ../src/develop/masks/ellipse.c:2132 +#: ../src/develop/masks/ellipse.c:2079 msgid "<b>rotate</b>: ctrl+drag" msgstr "<b>Kierto</b>: CTRL+raahaus" -#: ../src/develop/masks/ellipse.c:2135 +#: ../src/develop/masks/ellipse.c:2082 #, c-format msgid "" "<b>feather mode</b>: shift+click, <b>rotate</b>: ctrl+drag\n" @@ -8830,32 +9169,32 @@ msgid "curvature: %3.2f%%" msgstr "Kaarevuus: %3.2f%%" -#: ../src/develop/masks/gradient.c:1555 +#: ../src/develop/masks/gradient.c:1514 msgid "[GRADIENT on pivot] rotate shape" msgstr "[LIUKUVÄRI käännössä] Kierrä muotoa." -#: ../src/develop/masks/gradient.c:1557 +#: ../src/develop/masks/gradient.c:1516 msgid "[GRADIENT creation] set rotation" msgstr "[LIUKUVÄRIN luonti] Aseta kierto." -#: ../src/develop/masks/gradient.c:1559 +#: ../src/develop/masks/gradient.c:1518 msgid "[GRADIENT] change curvature" msgstr "[LIUKUVÄRI] Muuta kaarevuutta." -#: ../src/develop/masks/gradient.c:1561 +#: ../src/develop/masks/gradient.c:1520 msgid "[GRADIENT] change compression" msgstr "[LIUKUVÄRI] Muuta pakkausta" -#: ../src/develop/masks/gradient.c:1563 +#: ../src/develop/masks/gradient.c:1522 msgid "[GRADIENT] change opacity" msgstr "[LIUKUVÄRI] Muuta läpinäkyvyyttä" -#: ../src/develop/masks/gradient.c:1576 +#: ../src/develop/masks/gradient.c:1535 #, c-format msgid "gradient #%d" msgstr "Liukuväri #%d" -#: ../src/develop/masks/gradient.c:1587 +#: ../src/develop/masks/gradient.c:1546 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8864,7 +9203,7 @@ "<b>Käyryys</b>: rulla, <b>Pakkaus</b>: SHIFT+rulla\n" "<b>Kierto</b>: Napsaus+raahaus, <b>Läpinäkyvyys</b>: CTRL+rulla (%d%%)" -#: ../src/develop/masks/gradient.c:1592 +#: ../src/develop/masks/gradient.c:1551 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8873,7 +9212,7 @@ "<b>Käyryys</b>: rulla, <b>Pakkaus</b>: SHIFT+rulla\n" "<b>Läpinäkyvyys</b>: CTRL+rulla (%d%%)" -#: ../src/develop/masks/gradient.c:1595 +#: ../src/develop/masks/gradient.c:1554 msgid "<b>rotate</b>: drag" msgstr "<b>Kierto</b>: raahaus" @@ -8881,84 +9220,84 @@ msgid "[SHAPE] remove shape" msgstr "[MUOTO] Poista muoto" -#: ../src/develop/masks/masks.c:306 +#: ../src/develop/masks/masks.c:305 #, c-format msgid "group `%s'" msgstr "Ryhmä `%s'" -#: ../src/develop/masks/masks.c:423 +#: ../src/develop/masks/masks.c:422 #, c-format msgid "copy of `%s'" msgstr "`%s' kopio" -#: ../src/develop/masks/masks.c:984 +#: ../src/develop/masks/masks.c:985 #, c-format msgid "%s: mask version mismatch: %d != %d" msgstr "%s: ristiriita maskin versiossa: %d != %d" -#: ../src/develop/masks/masks.c:1239 ../src/develop/masks/masks.c:1906 +#: ../src/develop/masks/masks.c:1230 ../src/develop/masks/masks.c:1881 #, c-format msgid "opacity: %.0f%%" msgstr "Läpinäkyvyys: %.0f%%" -#: ../src/develop/masks/masks.c:1650 ../src/libs/masks.c:1068 +#: ../src/develop/masks/masks.c:1625 ../src/libs/masks.c:1084 msgid "add existing shape" msgstr "Lisää valmis muoto" -#: ../src/develop/masks/masks.c:1677 +#: ../src/develop/masks/masks.c:1652 msgid "use same shapes as" msgstr "Käytä samaa muotoa kuin" -#: ../src/develop/masks/masks.c:1990 +#: ../src/develop/masks/masks.c:1965 msgid "masks can not contain themselves" msgstr "Maskit eivät voi sisältää itseään" -#: ../src/develop/masks/path.c:3433 +#: ../src/develop/masks/path.c:3349 msgid "[PATH creation] add a smooth node" msgstr "[POLKU luonti] Lisää tasainen solmupiste" -#: ../src/develop/masks/path.c:3435 +#: ../src/develop/masks/path.c:3351 msgid "[PATH creation] add a sharp node" msgstr "[POLKU luonti] Lisää terävä solmupiste." -#: ../src/develop/masks/path.c:3437 +#: ../src/develop/masks/path.c:3353 msgid "[PATH creation] terminate path creation" msgstr "[POLKU luonti] Päätä solmun luonti" -#: ../src/develop/masks/path.c:3439 +#: ../src/develop/masks/path.c:3355 msgid "[PATH on node] switch between smooth/sharp node" msgstr "[POLKU solmupisteessä] Vaihda tasaisen/terävän solmupisteen välillä" -#: ../src/develop/masks/path.c:3441 +#: ../src/develop/masks/path.c:3357 msgid "[PATH on node] remove the node" msgstr "[POLKU solmupisteessä] Poista solmupiste" -#: ../src/develop/masks/path.c:3443 +#: ../src/develop/masks/path.c:3359 msgid "[PATH on feather] reset curvature" msgstr "[POLKU häivytyksessä] Palauta kaarevuus" -#: ../src/develop/masks/path.c:3445 +#: ../src/develop/masks/path.c:3361 msgid "[PATH on segment] add node" msgstr "[POLKU lohkossa] Lisää solmupiste" -#: ../src/develop/masks/path.c:3447 +#: ../src/develop/masks/path.c:3363 msgid "[PATH] change size" msgstr "[POLKU] Muuta kokoa" -#: ../src/develop/masks/path.c:3449 +#: ../src/develop/masks/path.c:3365 msgid "[PATH] change feather size" msgstr "[POLKU] Muuta häivytyksen kokoa" -#: ../src/develop/masks/path.c:3451 +#: ../src/develop/masks/path.c:3367 msgid "[PATH] change opacity" msgstr "[POLKU] Muuta läpinäkyvyyttä" -#: ../src/develop/masks/path.c:3463 +#: ../src/develop/masks/path.c:3379 #, c-format msgid "path #%d" msgstr "Polku #%d" -#: ../src/develop/masks/path.c:3473 +#: ../src/develop/masks/path.c:3389 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>cancel</b>: right-click" @@ -8966,7 +9305,7 @@ "<b>Lisää solmu</b>: napsaus, <b>Lisää terävä solmu</b>: CTRL+napsaus\n" "<b>Peruuta</b>: oikea napsaus" -#: ../src/develop/masks/path.c:3476 +#: ../src/develop/masks/path.c:3392 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>finish path</b>: right-click" @@ -8974,7 +9313,7 @@ "<b>Lisää solmu</b>: napsaus, <b>Lisää terävä solmu</b>: CTRL+napsaus\n" "<b>Päätä polku</b>: oikea napsaus" -#: ../src/develop/masks/path.c:3479 +#: ../src/develop/masks/path.c:3395 msgid "" "<b>move node</b>: drag, <b>remove node</b>: right-click\n" "<b>switch smooth/sharp mode</b>: ctrl+click" @@ -8982,7 +9321,7 @@ "<b>Siirrä solmu</b>: raahaa, <b>Poista solmu</b>: oikea napsaus\n" "<b>Vaihda tasainen/terävä tila</b>: CTRL+napsaus" -#: ../src/develop/masks/path.c:3483 +#: ../src/develop/masks/path.c:3399 msgid "" "<b>node curvature</b>: drag\n" "<b>reset curvature</b>: right-click" @@ -8990,7 +9329,7 @@ "<b>Solmun käyryys</b>: raahaa\n" "<b>Palauta käyryys</b>: oikea napsaus" -#: ../src/develop/masks/path.c:3487 +#: ../src/develop/masks/path.c:3403 msgid "" "<b>move segment</b>: drag\n" "<b>add node</b>: ctrl+click" @@ -8998,11 +9337,11 @@ "<b>Siirrä lohko</b>: raahaa\n" "<b>Lisää solmu</b>: CTRL+napsaus" -#: ../src/develop/pixelpipe_hb.c:500 +#: ../src/develop/pixelpipe_hb.c:486 msgid "enabled as required" msgstr "Käytössä kuten vaadittu" -#: ../src/develop/pixelpipe_hb.c:501 +#: ../src/develop/pixelpipe_hb.c:487 msgid "" "history had module disabled but it is required for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -9012,11 +9351,11 @@ "Tämän on aiheuttanut luultavasti esiasetus, tyyli tai historian " "kopiointi&liittäminen." -#: ../src/develop/pixelpipe_hb.c:508 +#: ../src/develop/pixelpipe_hb.c:494 msgid "disabled as not appropriate" msgstr "Pois käytöstä, koska ei ole tarpeen" -#: ../src/develop/pixelpipe_hb.c:509 +#: ../src/develop/pixelpipe_hb.c:495 msgid "" "history had module enabled but it is not allowed for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -9026,15 +9365,28 @@ "Tämän on aiheuttanut luultavasti esiasetus, tyyli tai historian " "kopiointi&liittäminen." -#: ../src/develop/pixelpipe_hb.c:2705 +#: ../src/develop/pixelpipe_hb.c:2697 msgid "" -"darktable discovered problems with your OpenCL setup; disabling OpenCL for " -"this session!" -msgstr "" -"Darktable havaitsi ongelmia OpenCL-järjestelmässä; OpenCL otettu pois " -"käytöstä tässä istunnossa!" +"OpenCL errors encountered; disabling OpenCL for this session! some possible " +"causes:\n" +" - OpenCL out of resources due to preference settings. please try with " +"defaults,\n" +" - buggy driver for some device. please run darktable with `-d opencl' to " +"identify,\n" +" - some drivers don't support needed number of events,\n" +" - too small headroom settings while using 'use all device memory'." +msgstr "" +"OpenCL virheitä tapahtunut; poistetaan OpenCL käytöstä tälle istunnolle! " +"Mahdollisia syitä:\n" +" - OpenCL resurssit ei riitä muutettujen asetusten takia. Ole hyvä ja " +"kokeile oletusasetuksia,\n" +" - buginen ajuri jollekin laitteelle. Ole hyvä ja aja Darktable komennolla " +"`-d opencl' tunnistaaksesi laitteen,\n" +" - jotkin ajurit eivät tue tarvittavaa määrää tapahtumia,\n" +" - liian pieni vapaan tilan asetus, kun käytetään 'Käytä kaikki laitteen " +"muisti' asetusta." -#: ../src/develop/pixelpipe_hb.c:2853 +#: ../src/develop/pixelpipe_hb.c:2847 #, c-format msgid "" "module '%s' can't get raster mask from module\n" @@ -9045,28 +9397,32 @@ "'%s', koska sen käsittely tehdään myöhemmin pikseliputkessa.\n" "Rasterimaski jätetään huomioimatta." -#: ../src/develop/tiling.c:820 ../src/develop/tiling.c:1173 +#: ../src/develop/tiling.c:819 ../src/develop/tiling.c:1172 #, c-format -msgid "tiling failed for module '%s'. output might be garbled." -msgstr "Tiiletys epäonnistui moduulille '%s'. Ulostulo saattaa olla sotkua." +msgid "" +"tiling failed for module '%s'. the output most likely will be OK, but you " +"might want to check." +msgstr "" +"Tiiletys epäonnistui moduulille '%s'. Ulostulo on luultavasti OK, mutta " +"kannattaa varmistaa se." -#: ../src/dtgtk/culling.c:254 +#: ../src/dtgtk/culling.c:223 msgid "you have reached the start of your selection" msgstr "Saavutit valinnan alun" -#: ../src/dtgtk/culling.c:263 +#: ../src/dtgtk/culling.c:232 msgid "you have reached the start of your collection" msgstr "Saavutit kokoelman alun" -#: ../src/dtgtk/culling.c:310 +#: ../src/dtgtk/culling.c:279 msgid "you have reached the end of your selection" msgstr "Saavutit valinnan lopun" -#: ../src/dtgtk/culling.c:337 +#: ../src/dtgtk/culling.c:306 msgid "you have reached the end of your collection" msgstr "Saavutit kokoelman lopun" -#: ../src/dtgtk/culling.c:446 +#: ../src/dtgtk/culling.c:415 #, c-format msgid "zooming is limited to %d images" msgstr "Zoomaus rajoitettu %d kuvaan" @@ -9160,7 +9516,7 @@ msgid "fixed" msgstr "Kiinteä" -#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1493 +#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1498 msgid "relative" msgstr "Suhteellinen" @@ -9174,7 +9530,7 @@ msgstr "minimi" #: ../src/dtgtk/range.c:630 ../src/dtgtk/range.c:1780 ../src/dtgtk/range.c:1831 -#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:282 +#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:309 msgid "max" msgstr "maksimi" @@ -9183,7 +9539,7 @@ msgstr "Päivämäärän tyyppi" #. the date section -#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1505 msgid "date" msgstr "Päivämäärä" @@ -9208,7 +9564,7 @@ msgstr "Päiviä: " #. the time section -#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1505 msgid "time" msgstr "Aika" @@ -9226,8 +9582,8 @@ msgstr "Aseta arvo vastaamaan aina nykyistä päivää ja aikaa" #. apply button -#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:162 -#: ../src/libs/metadata.c:905 ../src/libs/styles.c:897 +#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:180 +#: ../src/libs/metadata.c:735 ../src/libs/styles.c:901 msgid "apply" msgstr "Aseta" @@ -9261,39 +9617,39 @@ msgid "grouped images" msgstr "Ryhmitetyt kuvat" -#: ../src/dtgtk/thumbnail.c:820 ../src/dtgtk/thumbnail.c:1635 -#: ../src/iop/ashift.c:6191 ../src/iop/ashift.c:6280 ../src/iop/ashift.c:6282 -#: ../src/iop/ashift.c:6284 ../src/libs/navigation.c:110 -#: ../src/libs/navigation.c:190 +#: ../src/dtgtk/thumbnail.c:814 ../src/dtgtk/thumbnail.c:1623 +#: ../src/iop/ashift.c:6138 ../src/iop/ashift.c:6227 ../src/iop/ashift.c:6229 +#: ../src/iop/ashift.c:6231 ../src/libs/navigation.c:111 +#: ../src/libs/navigation.c:193 msgid "fit" msgstr "Sovita" -#: ../src/dtgtk/thumbtable.c:1041 ../src/views/slideshow.c:421 +#: ../src/dtgtk/thumbtable.c:1139 ../src/views/slideshow.c:422 msgid "there are no images in this collection" msgstr "Tässä kokoelmassa ei ole valokuvia." -#: ../src/dtgtk/thumbtable.c:1048 +#: ../src/dtgtk/thumbtable.c:1146 msgid "if you have not imported any images yet" msgstr "Jos et ole vielä tuonut yhtään kuvaa," -#: ../src/dtgtk/thumbtable.c:1052 +#: ../src/dtgtk/thumbtable.c:1150 msgid "you can do so in the import module" msgstr "voit tehdä sen Tuo-moduulissa." -#: ../src/dtgtk/thumbtable.c:1061 +#: ../src/dtgtk/thumbtable.c:1159 msgid "try to relax the filter settings in the top panel" msgstr "Väljennä yläpaneelista suodatusta" -#: ../src/dtgtk/thumbtable.c:1072 +#: ../src/dtgtk/thumbtable.c:1170 msgid "or add images in the collections module in the left panel" msgstr "tai lisää kuvia vasemman paneelin Kokoelmat-moduulissa." -#: ../src/dtgtk/thumbtable.c:1338 +#: ../src/dtgtk/thumbtable.c:1455 msgid "" "you have changed the settings related to how thumbnails are generated.\n" msgstr "Olet muuttanut esikatselukuvien generointiin liittyviä asetuksia.\n" -#: ../src/dtgtk/thumbtable.c:1341 +#: ../src/dtgtk/thumbtable.c:1458 msgid "" "all cached thumbnails need to be invalidated.\n" "\n" @@ -9301,7 +9657,7 @@ "Kaikki välimuistissa olevat esikatselukuvat tulee hylätä.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1345 +#: ../src/dtgtk/thumbtable.c:1462 #, c-format msgid "" "cached thumbnails starting from level %d need to be invalidated.\n" @@ -9310,7 +9666,7 @@ "Välimuistissa olevat esikatselukuvat alkaen tasolta %d tulee hylätä.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1350 +#: ../src/dtgtk/thumbtable.c:1467 #, c-format msgid "" "cached thumbnails below level %d need to be invalidated.\n" @@ -9319,7 +9675,7 @@ "Välimuistissa tason %d alle olevat esikatselukuvat tulee hylätä.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1355 +#: ../src/dtgtk/thumbtable.c:1472 #, c-format msgid "" "cached thumbnails between level %d and %d need to be invalidated.\n" @@ -9329,48 +9685,48 @@ "hylätä.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1358 +#: ../src/dtgtk/thumbtable.c:1475 msgid "do you want to do that now?" msgstr "Haluatko tehdä sen nyt?" -#: ../src/dtgtk/thumbtable.c:1360 +#: ../src/dtgtk/thumbtable.c:1477 msgid "cached thumbnails invalidation" msgstr "Välimuistissa olleet esikatselukuvat hylätty." #. setup history key accelerators -#: ../src/dtgtk/thumbtable.c:2561 +#: ../src/dtgtk/thumbtable.c:2738 msgid "copy history" msgstr "Kopioi muokkaushistoria" -#: ../src/dtgtk/thumbtable.c:2563 +#: ../src/dtgtk/thumbtable.c:2740 msgid "copy history parts" msgstr "Kopioi muokkaushistorian osa" -#: ../src/dtgtk/thumbtable.c:2565 +#: ../src/dtgtk/thumbtable.c:2742 msgid "paste history" msgstr "Liitä muokkaushistoria" -#: ../src/dtgtk/thumbtable.c:2567 +#: ../src/dtgtk/thumbtable.c:2744 msgid "paste history parts" msgstr "Liitä muokkaushistorian osa" -#: ../src/dtgtk/thumbtable.c:2569 ../src/libs/copy_history.c:394 +#: ../src/dtgtk/thumbtable.c:2746 ../src/libs/copy_history.c:394 msgid "discard history" msgstr "Poista muokkaushistoria" -#: ../src/dtgtk/thumbtable.c:2572 +#: ../src/dtgtk/thumbtable.c:2749 msgid "duplicate image" msgstr "Kahdenna kuva" -#: ../src/dtgtk/thumbtable.c:2574 +#: ../src/dtgtk/thumbtable.c:2751 msgid "duplicate image virgin" msgstr "Kahdenna alkuperäinen kuva" -#: ../src/dtgtk/thumbtable.c:2584 ../src/libs/select.c:147 +#: ../src/dtgtk/thumbtable.c:2761 ../src/libs/select.c:148 msgid "select film roll" msgstr "Valitse filmirulla" -#: ../src/dtgtk/thumbtable.c:2586 ../src/libs/select.c:151 +#: ../src/dtgtk/thumbtable.c:2763 ../src/libs/select.c:152 msgid "select untouched" msgstr "Valitse käsittelemättömät" @@ -9441,265 +9797,296 @@ msgid "creating complete lighttable thumbnail cache\n" msgstr "Luodaan valopöydän esikatselukuville välimuistia\n" -#: ../src/gui/accelerators.c:61 -msgid "active view" -msgstr "Aktiivinen näkymä" - -#: ../src/gui/accelerators.c:62 -msgid "other views" -msgstr "Muut näkymät" +#: ../src/gui/about.c:34 +#, c-format +msgid "copyright (c) the authors 2009-%s" +msgstr "Copyright (c) tekijät 2009-%s" + +#: ../src/gui/about.c:39 +msgid "organize and develop images from digital cameras" +msgstr "Hallinnoi ja kehitä digitaalikameroilla otettuja valokuvia." + +#: ../src/gui/about.c:51 +msgid "all those of you that made previous releases possible" +msgstr "kaikki te jotka teitte edelliset julkaisut." + +#: ../src/gui/about.c:56 +msgid "and..." +msgstr "ja..." + +#: ../src/gui/about.c:59 +msgid "translator-credits" +msgstr "Marko Vertainen ja Janne Voutilainen" + +#: ../src/gui/accelerators.c:72 +msgid "in active view" +msgstr "Aktiivisessa näkymässä" + +#: ../src/gui/accelerators.c:73 +msgid "in other views" +msgstr "Muissa näkymissä" -#: ../src/gui/accelerators.c:63 +#: ../src/gui/accelerators.c:74 msgid "fallbacks" msgstr "Varmistukset" -#: ../src/gui/accelerators.c:64 ../src/gui/accelerators.c:722 -#: ../src/gui/accelerators.c:2607 ../src/gui/accelerators.c:3470 -msgid "speed" -msgstr "Nopeus" +#: ../src/gui/accelerators.c:75 +msgid "speed adjustments" +msgstr "Nopeuden säädöt" + +#: ../src/gui/accelerators.c:76 +msgid "disabled defaults" +msgstr "Käytöstä poistetut oletukset" -#: ../src/gui/accelerators.c:80 ../src/views/view.c:1202 +#: ../src/gui/accelerators.c:96 ../src/views/view.c:1361 msgid "scroll" msgstr "Rulla" -#: ../src/gui/accelerators.c:81 +#: ../src/gui/accelerators.c:97 msgid "pan" msgstr "Panoroi" -#: ../src/gui/accelerators.c:82 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6283 ../src/iop/clipping.c:1902 -#: ../src/iop/clipping.c:2094 ../src/iop/clipping.c:2110 -#: ../src/views/darkroom.c:2676 ../src/views/lighttable.c:1250 +#: ../src/gui/accelerators.c:98 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6230 ../src/iop/clipping.c:1955 +#: ../src/iop/clipping.c:2147 ../src/iop/clipping.c:2163 +#: ../src/views/darkroom.c:2522 ../src/views/lighttable.c:1250 msgid "horizontal" msgstr "Vaakasuunta" -#: ../src/gui/accelerators.c:83 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6281 ../src/iop/clipping.c:1901 -#: ../src/iop/clipping.c:2095 ../src/iop/clipping.c:2109 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:1254 +#: ../src/gui/accelerators.c:99 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6228 ../src/iop/clipping.c:1954 +#: ../src/iop/clipping.c:2148 ../src/iop/clipping.c:2162 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:1254 msgid "vertical" msgstr "Pystysuunta" -#: ../src/gui/accelerators.c:84 +#: ../src/gui/accelerators.c:100 msgid "diagonal" msgstr "Diagonaali" -#: ../src/gui/accelerators.c:86 +#: ../src/gui/accelerators.c:102 msgid "leftright" msgstr "vasen oikea" -#: ../src/gui/accelerators.c:87 +#: ../src/gui/accelerators.c:103 msgid "updown" msgstr "ylös alas" -#: ../src/gui/accelerators.c:88 +#: ../src/gui/accelerators.c:104 msgid "pgupdown" msgstr "pgup pgdn" -#: ../src/gui/accelerators.c:96 ../src/views/view.c:1186 +#: ../src/gui/accelerators.c:112 ../src/views/view.c:1343 msgid "shift" msgstr "shift" -#: ../src/gui/accelerators.c:97 ../src/views/view.c:1187 +#: ../src/gui/accelerators.c:113 ../src/views/view.c:1345 msgid "ctrl" msgstr "ctrl" -#: ../src/gui/accelerators.c:98 ../src/views/view.c:1188 +#: ../src/gui/accelerators.c:114 ../src/views/view.c:1347 msgid "alt" msgstr "alt" -#: ../src/gui/accelerators.c:99 +#: ../src/gui/accelerators.c:115 msgid "cmd" msgstr "Ccd" -#: ../src/gui/accelerators.c:100 +#: ../src/gui/accelerators.c:116 msgid "altgr" msgstr "altgr" -#: ../src/gui/accelerators.c:109 ../src/gui/accelerators.c:156 -#: ../src/libs/tagging.c:1782 +#: ../src/gui/accelerators.c:127 ../src/gui/accelerators.c:174 +#: ../src/libs/tagging.c:1804 msgid "edit" msgstr "Muokkaa" -#: ../src/gui/accelerators.c:110 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "up" msgstr "Ylös" -#: ../src/gui/accelerators.c:111 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:129 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "down" msgstr "Alas" -#: ../src/gui/accelerators.c:115 +#: ../src/gui/accelerators.c:133 msgid "set" msgstr "Aseta" -#: ../src/gui/accelerators.c:119 +#: ../src/gui/accelerators.c:137 msgid "popup" msgstr "Ponnahdusikkuna" -#: ../src/gui/accelerators.c:120 ../src/gui/accelerators.c:153 -#: ../src/gui/gtk.c:3054 ../src/views/lighttable.c:760 +#: ../src/gui/accelerators.c:138 ../src/gui/accelerators.c:171 +#: ../src/gui/gtk.c:3100 ../src/views/lighttable.c:760 msgid "next" msgstr "Seuraava" -#: ../src/gui/accelerators.c:121 ../src/gui/accelerators.c:152 -#: ../src/gui/gtk.c:3055 ../src/views/lighttable.c:761 +#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:170 +#: ../src/gui/gtk.c:3101 ../src/views/lighttable.c:761 msgid "previous" msgstr "Edellinen" -#: ../src/gui/accelerators.c:123 ../src/gui/accelerators.c:1462 +#: ../src/gui/accelerators.c:141 ../src/gui/accelerators.c:1598 msgid "last" msgstr "viimeinen" -#: ../src/gui/accelerators.c:124 ../src/gui/accelerators.c:1461 +#: ../src/gui/accelerators.c:142 ../src/gui/accelerators.c:1597 msgid "first" msgstr "ensimmäinen" -#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:141 -#: ../src/gui/accelerators.c:314 ../src/libs/filters/rating_range.c:268 -#: ../src/libs/tagging.c:3119 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2419 ../src/views/darkroom.c:2648 +#: ../src/gui/accelerators.c:146 ../src/gui/accelerators.c:159 +#: ../src/gui/accelerators.c:356 ../src/libs/filters/rating_range.c:295 +#: ../src/libs/tagging.c:3150 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2258 ../src/views/darkroom.c:2494 msgid "toggle" msgstr "Vaihda" -#: ../src/gui/accelerators.c:131 +#: ../src/gui/accelerators.c:149 msgid "ctrl-toggle" msgstr "Ctrl-Vaihda" -#: ../src/gui/accelerators.c:132 +#: ../src/gui/accelerators.c:150 msgid "ctrl-on" msgstr "ctrl-aktivoi" -#: ../src/gui/accelerators.c:133 +#: ../src/gui/accelerators.c:151 msgid "right-toggle" msgstr "Oikea-Vaihda" -#: ../src/gui/accelerators.c:134 +#: ../src/gui/accelerators.c:152 msgid "right-on" msgstr "Oikea-Päälle" -#: ../src/gui/accelerators.c:145 ../src/gui/gtk.c:3053 +#: ../src/gui/accelerators.c:163 ../src/gui/gtk.c:3099 msgid "activate" msgstr "Aktivoi" -#: ../src/gui/accelerators.c:146 +#: ../src/gui/accelerators.c:164 msgid "ctrl-activate" msgstr "Ctrl-Aktivoi" -#: ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:165 msgid "right-activate" msgstr "Oikea-Aktivoi" -#: ../src/gui/accelerators.c:154 +#: ../src/gui/accelerators.c:172 msgid "store" msgstr "Tallenna" -#: ../src/gui/accelerators.c:157 ../src/gui/styles_dialog.c:639 +#: ../src/gui/accelerators.c:175 ../src/gui/styles_dialog.c:651 msgid "update" msgstr "Päivitä" -#: ../src/gui/accelerators.c:158 ../src/libs/tools/global_toolbox.c:60 +#: ../src/gui/accelerators.c:176 ../src/libs/tools/global_toolbox.c:60 #: ../src/libs/tools/global_toolbox.c:510 msgid "preferences" msgstr "Asetukset" -#: ../src/gui/accelerators.c:163 +#: ../src/gui/accelerators.c:181 msgid "apply on new instance" msgstr "Käytä uuteen instanssiin" -#: ../src/gui/accelerators.c:168 +#: ../src/gui/accelerators.c:186 msgid "start" msgstr "Aloita" -#: ../src/gui/accelerators.c:169 +#: ../src/gui/accelerators.c:187 msgid "end" msgstr "Lopeta" -#: ../src/gui/accelerators.c:332 +#: ../src/gui/accelerators.c:374 msgid "entry" msgstr "Sisääntulo" -#: ../src/gui/accelerators.c:409 +#: ../src/gui/accelerators.c:450 msgid "combo effect not found" msgstr "Yhdistettyä vaikutusta ei löydy" -#: ../src/gui/accelerators.c:578 +#: ../src/gui/accelerators.c:627 msgid "(keypad)" msgstr "(numeronäppäimistö)" -#: ../src/gui/accelerators.c:587 +#: ../src/gui/accelerators.c:636 msgid "tablet button" msgstr "Tabletin nappi" -#: ../src/gui/accelerators.c:596 +#: ../src/gui/accelerators.c:645 msgid "unknown driver" msgstr "tuntematon ajuri" -#: ../src/gui/accelerators.c:663 +#: ../src/gui/accelerators.c:718 msgid "long" msgstr "Pitkä" -#: ../src/gui/accelerators.c:664 +#: ../src/gui/accelerators.c:719 msgid "double-press" msgstr "kaksoispainallus" -#: ../src/gui/accelerators.c:665 +#: ../src/gui/accelerators.c:720 msgid "triple-press" msgstr "kolmoispainallus" -#: ../src/gui/accelerators.c:666 +#: ../src/gui/accelerators.c:721 msgid "press" msgstr "Painallus" -#: ../src/gui/accelerators.c:670 +#: ../src/gui/accelerators.c:725 msgctxt "accel" msgid "left" msgstr "Vasen" -#: ../src/gui/accelerators.c:671 +#: ../src/gui/accelerators.c:726 msgctxt "accel" msgid "right" msgstr "Oikea" -#: ../src/gui/accelerators.c:672 +#: ../src/gui/accelerators.c:727 msgctxt "accel" msgid "middle" msgstr "Keski" -#: ../src/gui/accelerators.c:673 +#: ../src/gui/accelerators.c:728 msgctxt "accel" msgid "long" msgstr "Pitkä" -#: ../src/gui/accelerators.c:674 +#: ../src/gui/accelerators.c:729 msgctxt "accel" msgid "double-click" msgstr "Kaksoisnapsaus" -#: ../src/gui/accelerators.c:675 +#: ../src/gui/accelerators.c:730 msgctxt "accel" msgid "triple-click" msgstr "Kolmoisnapsaus" -#: ../src/gui/accelerators.c:676 +#: ../src/gui/accelerators.c:731 msgid "click" msgstr "Napsaus" -#: ../src/gui/accelerators.c:704 +#: ../src/gui/accelerators.c:759 msgid "first instance" msgstr "Ensimmäinen instanssi" -#: ../src/gui/accelerators.c:706 +#: ../src/gui/accelerators.c:761 msgid "last instance" msgstr "Viimeinen instanssi" -#: ../src/gui/accelerators.c:708 +#: ../src/gui/accelerators.c:763 msgid "relative instance" msgstr "Suhteellinen instanssi" -#: ../src/gui/accelerators.c:867 +#: ../src/gui/accelerators.c:780 ../src/gui/accelerators.c:2864 +#: ../src/gui/accelerators.c:3811 +msgid "speed" +msgstr "Nopeus" + +#: ../src/gui/accelerators.c:923 #, c-format msgid "" "Lua script command copied to clipboard:\n" @@ -9710,11 +10097,11 @@ "\n" "<tt>%s</tt>" -#: ../src/gui/accelerators.c:965 ../src/gui/accelerators.c:978 +#: ../src/gui/accelerators.c:1025 ../src/gui/accelerators.c:1044 msgid "start typing for incremental search" msgstr "Aloita kirjoitus lisääntyvän haun aloittamiseksi." -#: ../src/gui/accelerators.c:966 +#: ../src/gui/accelerators.c:1028 msgid "" "\n" "press Delete to delete selected shortcut" @@ -9722,7 +10109,23 @@ "\n" "Paina Delete poistaaksesi valitun pikavalinnan." -#: ../src/gui/accelerators.c:968 +#: ../src/gui/accelerators.c:1030 +msgid "" +"\n" +"press Delete to disable selected default shortcut" +msgstr "" +"\n" +"Paina Delete poistaaksesi oletuspikavalinnan." + +#: ../src/gui/accelerators.c:1031 +msgid "" +"\n" +"press Delete to restore selected default shortcut" +msgstr "" +"\n" +"Paina Delete palauttaaksesi valitun oletuspikavalinnan." + +#: ../src/gui/accelerators.c:1033 msgid "" "\n" "double-click to add new shortcut" @@ -9730,11 +10133,11 @@ "\n" "Kaksoisnapsauta lisätäksesi uuden pikavalinnan." -#: ../src/gui/accelerators.c:979 +#: ../src/gui/accelerators.c:1045 msgid "click to filter shortcuts list" msgstr "Napsauta pikavalintalistan suodattamiseksi." -#: ../src/gui/accelerators.c:981 +#: ../src/gui/accelerators.c:1047 msgid "" "\n" "right click to show action of selected shortcut" @@ -9742,7 +10145,7 @@ "\n" "Oikea napsaus näyttää valitun pikavalinnan toiminnot." -#: ../src/gui/accelerators.c:984 +#: ../src/gui/accelerators.c:1050 msgid "" "\n" "double-click to define new shortcut" @@ -9750,11 +10153,11 @@ "\n" "Kaksoisnapsauta määrittääksesi uusi pikavalinta" -#: ../src/gui/accelerators.c:1015 +#: ../src/gui/accelerators.c:1081 msgid "shift+alt+scroll to change height" msgstr "SHIFT+ALT+hiiren rulla muuttaa korkeutta." -#: ../src/gui/accelerators.c:1035 +#: ../src/gui/accelerators.c:1101 msgid "" "press keys with mouse click and scroll or move combinations to create a " "shortcut" @@ -9762,27 +10165,27 @@ "Paina näppäimiä hiiren napsauksella ja rullaa tai siirrä yhdistelmiä " "luodaksesi pikavalinnan." -#: ../src/gui/accelerators.c:1036 +#: ../src/gui/accelerators.c:1102 msgid "click to open shortcut configuration" msgstr "Napsauta avataksesi pikavalinnan hallintanäkymän." -#: ../src/gui/accelerators.c:1037 +#: ../src/gui/accelerators.c:1103 msgid "ctrl+click to add to quick access panel\n" msgstr "CTRL+napsaus lisää pikavalintapaneeliin\n" -#: ../src/gui/accelerators.c:1038 +#: ../src/gui/accelerators.c:1104 msgid "ctrl+click to remove from quick access panel\n" msgstr "CTRL+napsaus poistaa pikavalintapaneelista\n" -#: ../src/gui/accelerators.c:1039 +#: ../src/gui/accelerators.c:1105 msgid "scroll to change default speed" msgstr "Hiiren rulla muuttaa oletusnopeutta." -#: ../src/gui/accelerators.c:1040 +#: ../src/gui/accelerators.c:1106 msgid "right click to exit mapping mode" msgstr "Poistu kartoitustilasta oikealla napsauksella." -#: ../src/gui/accelerators.c:1051 +#: ../src/gui/accelerators.c:1119 #, c-format msgid "" "%sright-click to type a specific value between <b>%s</b> and <b>%s</b>\n" @@ -9792,74 +10195,89 @@ "tai pidä CTRL+SHIFT pohjassa kun raahaat hiirellä jättääksesi rajoitteet " "huomioimatta." -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "ctrl+v" msgstr "CTRL+v" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "right long click" msgstr "Oikea pitkä napsaus" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "to copy Lua command" msgstr "Kopioi LUA-komennoksi" -#: ../src/gui/accelerators.c:1344 +#: ../src/gui/accelerators.c:1451 msgid "shortcut for move exists with single effect" msgstr "Siirtymisen pikavalinnasta poistutaan yksittäisellä asetuksella" -#: ../src/gui/accelerators.c:1345 +#: ../src/gui/accelerators.c:1452 +#, c-format +msgid "" +"%s\n" +"\n" +"(assign %s to %s)" +msgstr "" +"%s\n" +"\n" +"(aseta %s arvoon %s)" + +#: ../src/gui/accelerators.c:1453 msgid "create separate shortcuts for up and down move?" msgstr "Luo erillinen pikavalinta ylös ja alas siirtymiselle?" -#: ../src/gui/accelerators.c:1368 +#: ../src/gui/accelerators.c:1479 #, c-format msgid "%s, speed reset" msgstr "%s, Nopeuden nollaus" -#: ../src/gui/accelerators.c:1377 +#: ../src/gui/accelerators.c:1497 msgid "shortcut exists with different settings" msgstr "Pikavalinnasta poistutaan toisella asetuksella" -#: ../src/gui/accelerators.c:1378 +#: ../src/gui/accelerators.c:1498 msgid "reset the settings of the shortcut?" msgstr "Palauta pikavalinnan asetukset?" -#: ../src/gui/accelerators.c:1389 +#: ../src/gui/accelerators.c:1507 msgid "shortcut already exists" msgstr "Pikavalinta on jo olemassa" -#: ../src/gui/accelerators.c:1390 +#: ../src/gui/accelerators.c:1509 +msgid "disable this default shortcut?" +msgstr "Poista tämä oletuspikavalinta käytöstä?" + +#: ../src/gui/accelerators.c:1510 msgid "remove the shortcut?" msgstr "Poista pikavalinta?" -#: ../src/gui/accelerators.c:1423 +#: ../src/gui/accelerators.c:1550 msgid "clashing shortcuts exist" msgstr "Samoja pikavalintoja käytössä" -#: ../src/gui/accelerators.c:1424 +#: ../src/gui/accelerators.c:1551 msgid "remove these existing shortcuts?" msgstr "Poista nämä olemassa olevat pikavalinnat?" #. or 3, but change char relative[] = "-2" to "-1" #. NUM_INSTANCES -#: ../src/gui/accelerators.c:1460 +#: ../src/gui/accelerators.c:1596 msgid "preferred" msgstr "Ensisijainen" -#: ../src/gui/accelerators.c:1463 +#: ../src/gui/accelerators.c:1599 msgid "second" msgstr "toinen" -#: ../src/gui/accelerators.c:1464 +#: ../src/gui/accelerators.c:1600 msgid "last but one" msgstr "toiseksiviimeinen" -#: ../src/gui/accelerators.c:1610 ../src/gui/accelerators.c:1670 +#: ../src/gui/accelerators.c:1761 ../src/gui/accelerators.c:1826 msgid "(unchanged)" msgstr "(ei muutettu)" -#: ../src/gui/accelerators.c:1776 +#: ../src/gui/accelerators.c:1941 msgid "" "define a shortcut by pressing a key, optionally combined with modifier keys " "(ctrl/shift/alt)\n" @@ -9885,39 +10303,47 @@ "\n" "Oikea napsaus peruuttaa." -#: ../src/gui/accelerators.c:1847 +#: ../src/gui/accelerators.c:2014 msgid "removing shortcut" msgstr "Poistetaan pikavalinta" -#: ../src/gui/accelerators.c:1848 +#: ../src/gui/accelerators.c:2016 +msgid "disable the selected default shortcut?" +msgstr "Poista valittu oletuspikavalinta käytöstä?" + +#: ../src/gui/accelerators.c:2017 +msgid "restore the selected default shortcut?" +msgstr "Palauta valittu oletuspikavalinta?" + +#: ../src/gui/accelerators.c:2018 msgid "remove the selected shortcut?" msgstr "Poista valitut pikavalinnat?" -#: ../src/gui/accelerators.c:1938 +#: ../src/gui/accelerators.c:2107 msgid "command" msgstr "Komento" -#: ../src/gui/accelerators.c:1939 +#: ../src/gui/accelerators.c:2108 msgid "preset" msgstr "Esiasetus" -#: ../src/gui/accelerators.c:2272 +#: ../src/gui/accelerators.c:2491 msgid "restore shortcuts" msgstr "Palauta pikavalinnat" -#: ../src/gui/accelerators.c:2275 +#: ../src/gui/accelerators.c:2494 msgid "_defaults" msgstr "_Oletukset" -#: ../src/gui/accelerators.c:2276 +#: ../src/gui/accelerators.c:2495 msgid "_startup" msgstr "_Käynnistys" -#: ../src/gui/accelerators.c:2277 +#: ../src/gui/accelerators.c:2496 msgid "_edits" msgstr "_Muokkaukset" -#: ../src/gui/accelerators.c:2283 +#: ../src/gui/accelerators.c:2503 msgid "" "restore shortcuts from one of these states:\n" " - default\n" @@ -9929,7 +10355,7 @@ " - Kuten käynnistyksessä\n" "- Kuten tämän valinnan avauksessa\n" -#: ../src/gui/accelerators.c:2289 +#: ../src/gui/accelerators.c:2510 msgid "" "clear all newer shortcuts\n" "(instead of just restoring changed ones)" @@ -9937,22 +10363,17 @@ "Tyhjennä kaikki uudemmat pikavalinnat\n" "(sen sijaan, että palautettaisiin muutetut)" -#: ../src/gui/accelerators.c:2344 ../src/gui/preferences.c:906 +#: ../src/gui/accelerators.c:2567 ../src/gui/preferences.c:905 #: ../src/libs/tools/global_toolbox.c:494 -#: ../src/libs/tools/global_toolbox.c:645 +#: ../src/libs/tools/global_toolbox.c:652 msgid "shortcuts" msgstr "Pikavalinnat" -#: ../src/gui/accelerators.c:2353 +#: ../src/gui/accelerators.c:2577 msgid "export shortcuts" msgstr "Vie pikavalinnat" -#: ../src/gui/accelerators.c:2356 ../src/gui/accelerators.c:2436 -#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:564 -msgid "_ok" -msgstr "_Ok" - -#: ../src/gui/accelerators.c:2361 +#: ../src/gui/accelerators.c:2586 msgid "" "export all shortcuts to a file\n" "or just for one selected device\n" @@ -9960,27 +10381,27 @@ "Vie kaikki tai vain valitun laitteen\n" "pikavalinnat tiedostoon\n" -#: ../src/gui/accelerators.c:2368 ../src/gui/accelerators.c:2448 +#: ../src/gui/accelerators.c:2593 ../src/gui/accelerators.c:2675 msgid "keyboard" msgstr "Näppäimistö" -#: ../src/gui/accelerators.c:2380 +#: ../src/gui/accelerators.c:2605 msgid "device id" msgstr "Laitetunniste" -#: ../src/gui/accelerators.c:2406 +#: ../src/gui/accelerators.c:2631 msgid "select file to export" msgstr "Valitse vietävä tiedosto" -#: ../src/gui/accelerators.c:2407 ../src/libs/tagging.c:2525 +#: ../src/gui/accelerators.c:2632 ../src/libs/tagging.c:2556 msgid "_export" msgstr "_Vienti" -#: ../src/gui/accelerators.c:2433 +#: ../src/gui/accelerators.c:2659 msgid "import shortcuts" msgstr "Tuo pikavalinnat" -#: ../src/gui/accelerators.c:2441 +#: ../src/gui/accelerators.c:2668 msgid "" "import all shortcuts from a file\n" "or just for one selected device\n" @@ -9988,31 +10409,31 @@ "Tuo kaikki tai vain valitun laitteen \n" "pikavalinnat tiedostosta\n" -#: ../src/gui/accelerators.c:2460 +#: ../src/gui/accelerators.c:2687 msgid "id in file" msgstr "tunniste tiedostossa" -#: ../src/gui/accelerators.c:2466 +#: ../src/gui/accelerators.c:2693 msgid "id when loaded" msgstr "Tunniste kun ladattu" -#: ../src/gui/accelerators.c:2470 +#: ../src/gui/accelerators.c:2697 msgid "clear device first" msgstr "Tyhjennä laite ensin" -#: ../src/gui/accelerators.c:2494 +#: ../src/gui/accelerators.c:2722 msgid "select file to import" msgstr "Valitse tuotava tiedosto" -#: ../src/gui/accelerators.c:2495 ../src/libs/tagging.c:2489 +#: ../src/gui/accelerators.c:2723 ../src/libs/tagging.c:2520 msgid "_import" msgstr "_Tuonti" -#: ../src/gui/accelerators.c:2568 +#: ../src/gui/accelerators.c:2815 msgid "search shortcuts list" msgstr "Etsi pikavalintoja" -#: ../src/gui/accelerators.c:2569 +#: ../src/gui/accelerators.c:2817 msgid "" "incrementally search the list of shortcuts\n" "press up or down keys to cycle through matches" @@ -10020,29 +10441,28 @@ "Kirjoittaessa lisääntyvä pikavalintojen haku.\n" "Paina ylös tai alas näppäimiä selataksesi tuloksia." -#. Setting up the cell renderers -#: ../src/gui/accelerators.c:2583 ../src/views/view.c:1383 +#: ../src/gui/accelerators.c:2837 ../src/views/view.c:1554 msgid "shortcut" msgstr "Pikavalinta" -#: ../src/gui/accelerators.c:2585 ../src/gui/accelerators.c:2676 -#: ../src/views/view.c:1385 +#: ../src/gui/accelerators.c:2840 ../src/gui/accelerators.c:2942 +#: ../src/views/view.c:1556 msgid "action" msgstr "Toiminto" -#: ../src/gui/accelerators.c:2594 +#: ../src/gui/accelerators.c:2850 msgid "element" msgstr "Elementti" -#: ../src/gui/accelerators.c:2601 +#: ../src/gui/accelerators.c:2858 msgid "effect" msgstr "Vaikutus" -#: ../src/gui/accelerators.c:2658 +#: ../src/gui/accelerators.c:2918 msgid "search actions list" msgstr "Etsi toimintoja" -#: ../src/gui/accelerators.c:2659 +#: ../src/gui/accelerators.c:2920 msgid "" "incrementally search the list of actions\n" "press up or down keys to cycle through matches" @@ -10050,16 +10470,16 @@ "Kirjoittaessa lisääntyvä toimintojen haku.\n" "Paina ylös tai alas näppäimiä selataksesi tuloksia." -#: ../src/gui/accelerators.c:2682 ../src/gui/guides.c:719 -#: ../src/libs/export_metadata.c:192 +#: ../src/gui/accelerators.c:2950 ../src/gui/guides.c:719 +#: ../src/libs/export_metadata.c:179 msgid "type" msgstr "Tyyppi" -#: ../src/gui/accelerators.c:2717 +#: ../src/gui/accelerators.c:2988 msgid "enable fallbacks" msgstr "Käytä varmistuksia" -#: ../src/gui/accelerators.c:2718 +#: ../src/gui/accelerators.c:2989 msgid "" "enables default meanings for additional buttons, modifiers or moves\n" "when used in combination with a base shortcut" @@ -10067,67 +10487,111 @@ "Ota käyttöön oletustoiminnot lisänapeille, muokkauksille tai siirroille,\n" "kun niitä käytetään yhdessä oletuspikavalintojen kanssa." -#: ../src/gui/accelerators.c:2725 +#: ../src/gui/accelerators.c:2997 msgid "open help page for shortcuts" msgstr "Avaa pikavalintojen ohje" -#: ../src/gui/accelerators.c:2730 +#: ../src/gui/accelerators.c:3002 msgid "restore..." msgstr "Palauta..." -#: ../src/gui/accelerators.c:2731 +#: ../src/gui/accelerators.c:3003 msgid "restore default shortcuts or previous state" msgstr "Palauta oletuspikavalinnat tai edellinen tila." -#: ../src/gui/accelerators.c:2735 ../src/libs/styles.c:883 -#: ../src/libs/tagging.c:3251 +#: ../src/gui/accelerators.c:3007 ../src/libs/styles.c:887 +#: ../src/libs/tagging.c:3282 msgid "import..." msgstr "Tuo..." -#: ../src/gui/accelerators.c:2736 +#: ../src/gui/accelerators.c:3008 msgid "fully or partially import shortcuts from file" msgstr "Tuo täysin tai osittain pikavalinnat tiedostosta." -#: ../src/gui/accelerators.c:2740 ../src/libs/styles.c:890 -#: ../src/libs/tagging.c:3254 +#: ../src/gui/accelerators.c:3012 ../src/libs/styles.c:894 +#: ../src/libs/tagging.c:3285 msgid "export..." msgstr "Vie..." -#: ../src/gui/accelerators.c:2741 +#: ../src/gui/accelerators.c:3013 msgid "fully or partially export shortcuts to file" msgstr "Vie täysin tai osittain pikavalinnat tiedostoon." -#: ../src/gui/accelerators.c:3139 +#: ../src/gui/accelerators.c:3021 +msgid "" +"the recommended way to assign shortcuts to visual elements is the <b>visual " +"shortcut mapping</b> mode.\n" +"this is switched on by toggling the <i>\"keyboard\"</i> button next to " +"preferences in the top panel. in this mode, clicking on a widget or area " +"will open this dialog with the appropriate selection for advanced " +"configuration.\n" +"\n" +"multiple shortcuts can be assigned to the same action. this is especially " +"useful if it has multiple <i>elements</i>, like the module buttons or the " +"colorpickers attached to sliders. however, with <i>fallbacks</i> enabled one " +"can use the same simple shortcuts and change their <i>element</i> or " +"<i>effect</i> by adding mouse clicks.\n" +"\n" +"<i>click <b> three times </b> to dismiss this notice permanently</i>" +msgstr "" +"Suositeltu tapa visuaalisten elementtien pikavalintojen määrittämiseen on " +"<b>visuaalisen pikakuvakekartoituksen</b> tila.\n" +"Tämä otetaan käyttöön valitsemalla <i>\"näppäimistö\"</i>-kuvake " +"yläpaneelista. Tässä tilassa pienoisohjelman tai alueen napsautus avaa tämän " +"valintaikkunan edistyneessä muokkaustilassa, juuri oikeasta kohdasta.\n" +"\n" +"Samaan toimintoon voidaan liittää useita pikavalintoja. Tämä on erittäin " +"käytännöllistä, jos toiminnolla on useita <i>elementtejä</i>, kuten moduulin " +"nappeja tai liukusäätimiin liittyviä värivalitsimia. Kuitenkin " +"<i>varmistusten</i> ollessa käytössä, samaa yksinkertaista pikavalintaa " +"voidaan käyttää <i>elementin</i> tai <i>vaikutuksen</i> muuttamiseen " +"lisäämällä hiiren napsautuksia.\n" +"\n" +"<i>Napsauta <b> kolme kertaa</b> poistaaksesi tämä ilmoitus pysyvästi</i>." + +#: ../src/gui/accelerators.c:3452 msgid "reinitialising input devices" msgstr "Alustetaan syöttölaitteet uudelleen" -#: ../src/gui/accelerators.c:3342 +#: ../src/gui/accelerators.c:3594 +msgid "down move" +msgstr "Alas siirto" + +#: ../src/gui/accelerators.c:3594 +msgid "flip top/bottom first/last" +msgstr "Käännä ylä/ala ensimmäinen/viimeinen" + +#: ../src/gui/accelerators.c:3679 msgid "fallback to move" msgstr "Varaliike" -#: ../src/gui/accelerators.c:3578 +#: ../src/gui/accelerators.c:3921 #, c-format msgid "%s not assigned" msgstr "%s ei asetettu" -#: ../src/gui/accelerators.c:3751 +#: ../src/gui/accelerators.c:4102 #, c-format msgid "%s assigned to %s" msgstr "%s asetettu arvoon %s" -#: ../src/gui/gtk.c:173 ../src/views/darkroom.c:4650 +#: ../src/gui/accelerators.c:4321 +msgid "short key press resets stuck keys" +msgstr "Lyhyt näppäimen painallus palauttaa kiinnitetyt näppäimet" + +#: ../src/gui/gtk.c:175 ../src/views/darkroom.c:3861 msgid "darktable - darkroom preview" msgstr "Darktable - Pimiön esikatselu" -#: ../src/gui/gtk.c:184 +#: ../src/gui/gtk.c:186 msgid "tooltips off" msgstr "Työkaluvinkit pois päältä" -#: ../src/gui/gtk.c:186 +#: ../src/gui/gtk.c:188 msgid "tooltips on" msgstr "Työkaluvinkit käytössä" -#: ../src/gui/gtk.c:191 +#: ../src/gui/gtk.c:193 msgid "" "tooltip visibility can only be toggled if compositing is enabled in your " "window manager" @@ -10135,184 +10599,217 @@ "Työkaluvinkin näkyvyys voidaan muuttaa, jos ikkunointiohjelman koosto-" "ohjelma on päällä." -#: ../src/gui/gtk.c:814 +#: ../src/gui/gtk.c:809 msgid "closing darktable..." msgstr "Suljetaan Darktable..." -#: ../src/gui/gtk.c:1135 +#: ../src/gui/gtk.c:1032 +msgid "URL opened in web browser" +msgstr "Ohje avataan selaimessa." + +#: ../src/gui/gtk.c:1036 +msgid "error while opening URL in web browser" +msgstr "Virhe avatessa ohjeen sivua selaimessa." + +#. View menu +#: ../src/gui/gtk.c:1104 +msgctxt "menu" +msgid "Views" +msgstr "Näkymät" + +#: ../src/gui/gtk.c:1108 +msgctxt "menu" +msgid "lighttable" +msgstr "Valopöytä" + +#: ../src/gui/gtk.c:1109 +msgctxt "menu" +msgid "darkroom" +msgstr "Pimiö" + +#: ../src/gui/gtk.c:1115 +msgctxt "menu" +msgid "slideshow" +msgstr "Kuvasarja" + +#: ../src/gui/gtk.c:1117 +msgctxt "menu" +msgid "map" +msgstr "Kartta" + +#: ../src/gui/gtk.c:1119 +msgctxt "menu" +msgid "print" +msgstr "Tulostus" + +#: ../src/gui/gtk.c:1121 +msgctxt "menu" +msgid "tethering" +msgstr "Liitetty kuvaus" + +#. Help menu +#: ../src/gui/gtk.c:1127 +msgctxt "menu" +msgid "Help" +msgstr "Ohje" + +#: ../src/gui/gtk.c:1131 +msgctxt "menu" +msgid "darktable Manual" +msgstr "Darktablen ohje" + +#: ../src/gui/gtk.c:1138 +msgctxt "menu" +msgid "darktable Homepage" +msgstr "Darktablen kotisivu" + +#: ../src/gui/gtk.c:1162 +msgctxt "menu" +msgid "Preferences" +msgstr "Asetukset" + +#: ../src/gui/gtk.c:1232 msgid "panels" msgstr "Paneelit" -#. an action that does nothing - used for overriding/removing default shortcuts -#: ../src/gui/gtk.c:1184 -msgid "no-op" -msgstr "Ei toimintoa" - -#: ../src/gui/gtk.c:1186 +#: ../src/gui/gtk.c:1264 msgid "switch views" msgstr "Vaihda näkymää" -#: ../src/gui/gtk.c:1187 ../src/views/tethering.c:102 +#: ../src/gui/gtk.c:1265 ../src/views/tethering.c:102 msgid "tethering" msgstr "Liitetty kuvaus" -#: ../src/gui/gtk.c:1188 ../src/gui/preferences.c:531 -#: ../src/gui/preferences.c:542 ../src/libs/tools/lighttable.c:66 -#: ../src/views/lighttable.c:91 -msgid "lighttable" -msgstr "Valopöytä" - -#: ../src/gui/gtk.c:1189 ../src/gui/preferences.c:532 -#: ../src/gui/preferences.c:542 ../src/views/darkroom.c:94 -msgid "darkroom" -msgstr "Pimiö" - -#: ../src/gui/gtk.c:1190 ../src/views/map.c:197 +#: ../src/gui/gtk.c:1268 ../src/views/map.c:197 msgid "map" msgstr "Kartta" -#: ../src/gui/gtk.c:1191 ../src/views/slideshow.c:389 +#: ../src/gui/gtk.c:1269 ../src/views/slideshow.c:390 msgid "slideshow" msgstr "Kuvasarja" #. Print button -#: ../src/gui/gtk.c:1192 ../src/libs/print_settings.c:2885 +#: ../src/gui/gtk.c:1270 ../src/libs/print_settings.c:2885 msgid "print" msgstr "Tulostus" #. register ctrl-q to quit: -#: ../src/gui/gtk.c:1198 +#: ../src/gui/gtk.c:1276 msgid "quit" msgstr "Lopeta" #. Full-screen accelerator (no ESC handler here to enable quit-slideshow using ESC) -#: ../src/gui/gtk.c:1201 +#: ../src/gui/gtk.c:1279 msgid "fullscreen" msgstr "Koko ruutu" -#: ../src/gui/gtk.c:1205 +#: ../src/gui/gtk.c:1283 msgid "collapsing controls" msgstr "Paneelin piilotuksen ohjaimet" #. specific top/bottom toggles -#: ../src/gui/gtk.c:1207 +#: ../src/gui/gtk.c:1285 msgid "header" msgstr "Otsikko" -#: ../src/gui/gtk.c:1208 +#: ../src/gui/gtk.c:1286 msgid "filmstrip and timeline" msgstr "Filminauha ja aikajana" -#: ../src/gui/gtk.c:1209 +#: ../src/gui/gtk.c:1287 msgid "top toolbar" msgstr "Ylälaidan työkalupalkki" -#: ../src/gui/gtk.c:1210 +#: ../src/gui/gtk.c:1288 msgid "bottom toolbar" msgstr "Alalaidan työkalupalkki" -#: ../src/gui/gtk.c:1211 +#: ../src/gui/gtk.c:1289 msgid "all top" msgstr "Kaikki ylhäällä" -#: ../src/gui/gtk.c:1212 +#: ../src/gui/gtk.c:1290 msgid "all bottom" msgstr "Kaikki alhaalla" -#: ../src/gui/gtk.c:1214 +#: ../src/gui/gtk.c:1292 msgid "toggle tooltip visibility" msgstr "Vaihda työkaluvinkin näkyvyyden tilaa" -#: ../src/gui/gtk.c:1215 +#: ../src/gui/gtk.c:1293 msgid "reinitialise input devices" msgstr "Syöttölaitteiden uudelleen alustus" -#: ../src/gui/gtk.c:1253 +#: ../src/gui/gtk.c:1331 msgid "toggle focus-peaking mode" msgstr "Vaihda tarkennuksen avustuksen tilaa." #. toggle focus peaking everywhere -#: ../src/gui/gtk.c:1258 +#: ../src/gui/gtk.c:1336 msgid "toggle focus peaking" msgstr "Tarkennuksen avustustila" -#: ../src/gui/gtk.c:1594 ../src/gui/gtk.c:3143 ../src/gui/gtk.c:3148 -#: ../src/gui/gtk.c:3153 ../src/gui/gtk.c:3158 +#: ../src/gui/gtk.c:1654 ../src/gui/gtk.c:3189 ../src/gui/gtk.c:3194 +#: ../src/gui/gtk.c:3199 ../src/gui/gtk.c:3204 msgid "tabs" msgstr "Välilehdet" -#: ../src/gui/gtk.c:2535 -msgid "_yes" -msgstr "_kyllä" - -#: ../src/gui/gtk.c:2536 -msgid "_no" -msgstr "_en" - #. ask the user if darktable.org may be accessed -#: ../src/gui/gtk.c:2647 +#: ../src/gui/gtk.c:2707 msgid "access the online user manual?" msgstr "Käytä verkossa olevaa käyttöohjetta?" -#: ../src/gui/gtk.c:2648 +#: ../src/gui/gtk.c:2708 #, c-format msgid "do you want to access `%s'?" msgstr "Haluatko varmasti avata `%s'?" -#: ../src/gui/gtk.c:2717 -msgid "help url opened in web browser" -msgstr "Ohjeen verkkosivu avattiin selaimessa." - -#: ../src/gui/gtk.c:2721 -msgid "error while opening help url in web browser" -msgstr "Virhe ohjeen verkkosivun selaimessa avaamisessa." - -#: ../src/gui/gtk.c:2732 +#: ../src/gui/gtk.c:2778 msgid "there is no help available for this element" msgstr "Ohjetta ei ole saatavissa tälle elementille." #. font name can only use period as decimal separator #. but printf format strings use comma for some locales, so replace comma with period -#: ../src/gui/gtk.c:2752 +#: ../src/gui/gtk.c:2798 ../src/libs/metadata_view.c:762 #, c-format msgid "%.1f" msgstr "%.1f" -#: ../src/gui/gtk.c:2754 +#: ../src/gui/gtk.c:2800 #, c-format msgid "Sans %s" msgstr "Sans %s" -#: ../src/gui/gtk.c:3048 +#: ../src/gui/gtk.c:3094 msgid "does not contain pages" msgstr "Ei sisällä sivuja" -#: ../src/gui/gtk.c:3265 +#: ../src/gui/gtk.c:3313 #, c-format msgid "never show more than %d lines" msgstr "Älä näytä enempää kuin %d viivaa" -#: ../src/gui/gtkentry.c:172 +#: ../src/gui/gtkentry.c:173 msgid "$(ROLL.NAME) - roll of the input image" msgstr "$(ROLL.NAME) - Alkuperäisen kuvan filmirullan nimi" -#: ../src/gui/gtkentry.c:173 +#: ../src/gui/gtkentry.c:174 msgid "$(FILE.FOLDER) - folder containing the input image" msgstr "$(FILE.FOLDER) - Alkuperäisen kuvan hakemiston nimi" -#: ../src/gui/gtkentry.c:174 +#: ../src/gui/gtkentry.c:175 msgid "$(FILE.NAME) - basename of the input image" msgstr "$(FILE.NAME) - Alkuperäisen kuvan nimi" -#: ../src/gui/gtkentry.c:175 +#: ../src/gui/gtkentry.c:176 msgid "$(FILE.EXTENSION) - extension of the input image" msgstr "$(FILE.EXTENSION) - Alkuperäisen kuvan tiedostopääte" -#: ../src/gui/gtkentry.c:176 +#: ../src/gui/gtkentry.c:177 msgid "$(VERSION) - duplicate version" msgstr "$(VERSION) - Kopion versio" -#: ../src/gui/gtkentry.c:177 +#: ../src/gui/gtkentry.c:178 msgid "" "$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version " "exists" @@ -10320,117 +10817,117 @@ "$(VERSION.IF_MULTI) - sama kuin $(VERSION) mutta tyhjä merkkijono jos vain " "yksi versio olemassa" -#: ../src/gui/gtkentry.c:178 +#: ../src/gui/gtkentry.c:179 msgid "$(VERSION.NAME) - version name from metadata" msgstr "$(VERSION.NAME) - Version nimi metatiedoista" -#: ../src/gui/gtkentry.c:179 +#: ../src/gui/gtkentry.c:180 msgid "$(JOBCODE) - job code for import" msgstr "$(JOBCODE) - Työn koodi tuontiin" -#: ../src/gui/gtkentry.c:180 +#: ../src/gui/gtkentry.c:181 msgid "$(SEQUENCE) - sequence number" msgstr "$(SEQUENCE) - Järjestysnumero" -#: ../src/gui/gtkentry.c:181 +#: ../src/gui/gtkentry.c:182 msgid "$(WIDTH.MAX) - maximum image export width" msgstr "$(WIDTH.MAX) - Suurin vietävän kuvan leveys" -#: ../src/gui/gtkentry.c:182 +#: ../src/gui/gtkentry.c:183 msgid "$(WIDTH.SENSOR) - image sensor width" msgstr "$(WIDTH.SENSOR) - Kuvakennon leveys" -#: ../src/gui/gtkentry.c:183 +#: ../src/gui/gtkentry.c:184 msgid "$(WIDTH.RAW) - RAW image width" msgstr "$(WIDTH.RAW) - Raakakuvan leveys" -#: ../src/gui/gtkentry.c:184 +#: ../src/gui/gtkentry.c:185 msgid "$(WIDTH.CROP) - image width after crop" msgstr "$(WIDTH.CROP) - Rajatun kuvan leveys" -#: ../src/gui/gtkentry.c:185 +#: ../src/gui/gtkentry.c:186 msgid "$(WIDTH.EXPORT) - exported image width" msgstr "$(WIDTH.EXPORT) - Viedyn kuvan leveys" -#: ../src/gui/gtkentry.c:186 +#: ../src/gui/gtkentry.c:187 msgid "$(HEIGHT.MAX) - maximum image export height" msgstr "$(HEIGHT.MAX) - Suurin vietävän kuvan korkeus" -#: ../src/gui/gtkentry.c:187 +#: ../src/gui/gtkentry.c:188 msgid "$(HEIGHT.SENSOR) - image sensor height" msgstr "$(HEIGHT.SENSOR) - Kuvakennon korkeus" -#: ../src/gui/gtkentry.c:188 +#: ../src/gui/gtkentry.c:189 msgid "$(HEIGHT.RAW) - RAW image height" msgstr "$(HEIGHT.RAW) - Raakakuvan korkeus" -#: ../src/gui/gtkentry.c:189 +#: ../src/gui/gtkentry.c:190 msgid "$(HEIGHT.CROP) - image height after crop" msgstr "$(HEIGHT.CROP) - Rajatun kuvan korkeus" -#: ../src/gui/gtkentry.c:190 +#: ../src/gui/gtkentry.c:191 msgid "$(HEIGHT.EXPORT) - exported image height" msgstr "$(HEIGHT.EXPORT) - Viedyn kuvan korkeus" -#: ../src/gui/gtkentry.c:191 +#: ../src/gui/gtkentry.c:192 msgid "$(YEAR) - year" msgstr "$(YEAR) - Vuosi (viennin hetkellä)" -#: ../src/gui/gtkentry.c:192 +#: ../src/gui/gtkentry.c:193 msgid "$(YEAR.SHORT) - year without century" msgstr "$(YEAR.SHORT) - Vuosi ilman vuosisataa" -#: ../src/gui/gtkentry.c:193 +#: ../src/gui/gtkentry.c:194 msgid "$(MONTH) - month" msgstr "$(MONTH) - Kuukausi (viennin hetkellä)" -#: ../src/gui/gtkentry.c:194 +#: ../src/gui/gtkentry.c:195 msgid "$(MONTH.SHORT) - abbreviated month name according to the current locale" msgstr "" "$(MONTH.SHORT) - Kuukauden lyhyt nimi perustuen nykyiseen kieliasetukseen" -#: ../src/gui/gtkentry.c:195 +#: ../src/gui/gtkentry.c:196 msgid "$(MONTH.LONG) - full month name according to the current locale" msgstr "" "$(MONTH.LONG) - Kuukauden koko nimi perustuen nykyiseen kieliasetukseen" -#: ../src/gui/gtkentry.c:196 +#: ../src/gui/gtkentry.c:197 msgid "$(DAY) - day" msgstr "$(DAY) - Päivä (viennin hetkellä)" -#: ../src/gui/gtkentry.c:197 +#: ../src/gui/gtkentry.c:198 msgid "$(HOUR) - hour" msgstr "$(HOUR) - Tunti (viennin hetkellä)" -#: ../src/gui/gtkentry.c:198 +#: ../src/gui/gtkentry.c:199 msgid "$(HOUR.AMPM) - hour, 12-hour clock" msgstr "$(HOUR.AMPM) - Tunti, 12-tunnin kello" -#: ../src/gui/gtkentry.c:199 +#: ../src/gui/gtkentry.c:200 msgid "$(MINUTE) - minute" msgstr "$(MINUTE) - Minuutti (viennin hetkellä)" -#: ../src/gui/gtkentry.c:200 +#: ../src/gui/gtkentry.c:201 msgid "$(SECOND) - second" msgstr "$(SECOND) - Sekunti (viennin hetkellä)" -#: ../src/gui/gtkentry.c:201 +#: ../src/gui/gtkentry.c:202 msgid "$(MSEC) - millisecond" msgstr "$(MSEC) - Millisekunti" -#: ../src/gui/gtkentry.c:202 +#: ../src/gui/gtkentry.c:203 msgid "$(EXIF.YEAR) - EXIF year" msgstr "$(EXIF.YEAR) - Vuosi (EXIF-tiedoista)" -#: ../src/gui/gtkentry.c:203 +#: ../src/gui/gtkentry.c:204 msgid "$(EXIF.YEAR.SHORT) - EXIF year without century" msgstr "$(EXIF.YEAR.SHORT) - Vuosi ilman vuosisataa (EXIF-tiedoista)" -#: ../src/gui/gtkentry.c:204 +#: ../src/gui/gtkentry.c:205 msgid "$(EXIF.MONTH) - EXIF month" msgstr "$(EXIF.MONTH) - Kuukausi (EXIF-tiedoista)" -#: ../src/gui/gtkentry.c:205 +#: ../src/gui/gtkentry.c:206 msgid "" "$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current " "locale" @@ -10438,162 +10935,170 @@ "$(EXIF.MONTH.SHORT) - Kuukauden lyhyt EXIF-tietojen nimi perustuen nykyiseen " "kieliasetukseen" -#: ../src/gui/gtkentry.c:206 +#: ../src/gui/gtkentry.c:207 msgid "" "$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" msgstr "" "$(EXIF.MONTH.LONG) - Kuukauden koko nimi perustuen nykyiseen kieliasetukseen" -#: ../src/gui/gtkentry.c:207 +#: ../src/gui/gtkentry.c:208 msgid "$(EXIF.DAY) - EXIF day" msgstr "$(EXIF.DAY) - Päivä (EXIF-tiedoista)" -#: ../src/gui/gtkentry.c:208 +#: ../src/gui/gtkentry.c:209 msgid "$(EXIF.HOUR) - EXIF hour" msgstr "$(EXIF.HOUR) - Tunti (EXIF-tiedoista)" -#: ../src/gui/gtkentry.c:209 +#: ../src/gui/gtkentry.c:210 msgid "$(EXIF.HOUR.AMPM) - EXIF hour, 12-hour clock" msgstr "$(EXIF.HOUR.AMPM) - Tunti, 12-tunnin kello (EXIF-tiedoista)" -#: ../src/gui/gtkentry.c:210 +#: ../src/gui/gtkentry.c:211 msgid "$(EXIF.MINUTE) - EXIF minute" msgstr "$(EXIF.MINUTE) - Minuutti (EXIF-tiedoista)" -#: ../src/gui/gtkentry.c:211 +#: ../src/gui/gtkentry.c:212 msgid "$(EXIF.SECOND) - EXIF second" msgstr "$(EXIF.SECOND) - Sekunti (EXIF-tiedoista)" -#: ../src/gui/gtkentry.c:212 +#: ../src/gui/gtkentry.c:213 msgid "$(EXIF.MSEC) - EXIF millisecond" msgstr "$(EXIF.MSEC) - Millisekunti (EXIF-tiedoista)" -#: ../src/gui/gtkentry.c:213 +#: ../src/gui/gtkentry.c:214 msgid "$(EXIF.ISO) - ISO value" msgstr "$(EXIF.ISO) - ISO-arvo (EXIF-tiedoista)" -#: ../src/gui/gtkentry.c:214 +#: ../src/gui/gtkentry.c:215 msgid "$(EXIF.EXPOSURE) - EXIF exposure" msgstr "$(EXIF.EXPOSURE) - Valotus (EXIF-tiedoista)" -#: ../src/gui/gtkentry.c:215 +#: ../src/gui/gtkentry.c:216 msgid "$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias" msgstr "$(EXIF.EXPOSURE.BIAS) - Valotuksen korjaus (EXIF-tiedoista)" -#: ../src/gui/gtkentry.c:216 +#: ../src/gui/gtkentry.c:217 msgid "$(EXIF.APERTURE) - EXIF aperture" msgstr "$(EXIF.APERTURE) - Aukko (EXIF-tiedoista)" -#: ../src/gui/gtkentry.c:217 +#: ../src/gui/gtkentry.c:218 +msgid "$(EXIF.CROP_FACTOR) - EXIF crop factor" +msgstr "$(EXIF.CROP_FACTOR) - EXIF kroppikerroin" + +#: ../src/gui/gtkentry.c:219 msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" msgstr "$(EXIF.FOCAL.LENGTH) - Polttoväli (EXIF-tiedoista)" -#: ../src/gui/gtkentry.c:218 +#: ../src/gui/gtkentry.c:220 +msgid "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent focal length" +msgstr "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35mm vastaava polttoväli" + +#: ../src/gui/gtkentry.c:221 msgid "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" msgstr "$(EXIF.FOCUS.DISTANCE) - Tarkennuksen etäisyys (EXIF-tiedoista)" -#: ../src/gui/gtkentry.c:219 +#: ../src/gui/gtkentry.c:222 msgid "$(EXIF.MAKER) - camera maker" msgstr "$(EXIF.MAKER) - Kameran valmistaja" -#: ../src/gui/gtkentry.c:220 +#: ../src/gui/gtkentry.c:223 msgid "$(EXIF.MODEL) - camera model" msgstr "$(EXIF.MODEL) - Kameran malli" -#: ../src/gui/gtkentry.c:221 +#: ../src/gui/gtkentry.c:224 msgid "$(EXIF.LENS) - lens" msgstr "$(EXIF.LENS) - Objektiivi" -#: ../src/gui/gtkentry.c:222 +#: ../src/gui/gtkentry.c:225 msgid "$(LONGITUDE) - longitude" msgstr "$(LONGITUDE) - Pituusaste" -#: ../src/gui/gtkentry.c:223 +#: ../src/gui/gtkentry.c:226 msgid "$(LATITUDE) - latitude" msgstr "$(LATITUDE) - Leveysaste" -#: ../src/gui/gtkentry.c:224 +#: ../src/gui/gtkentry.c:227 msgid "$(ELEVATION) - elevation" msgstr "$(ELEVATION) - Korkeus" -#: ../src/gui/gtkentry.c:225 +#: ../src/gui/gtkentry.c:228 msgid "$(STARS) - star rating as number (-1 for rejected)" msgstr "$(STARS) - Luokitus numerona (-1 hylätyille)" -#: ../src/gui/gtkentry.c:226 +#: ../src/gui/gtkentry.c:229 msgid "$(RATING.ICONS) - star/reject rating in icon form" msgstr "$(RATING.ICONS) - Luokittelu / hylätty arvio kuvakkeen muodossa" -#: ../src/gui/gtkentry.c:227 +#: ../src/gui/gtkentry.c:230 msgid "$(LABELS) - color labels as text" msgstr "$(LABELS) - Värileimat tekstinä" -#: ../src/gui/gtkentry.c:228 +#: ../src/gui/gtkentry.c:231 msgid "$(LABELS.ICONS) - color labels as icons" msgstr "$(LABELS.ICONS) - Värileimat kuvakkeina" -#: ../src/gui/gtkentry.c:229 +#: ../src/gui/gtkentry.c:232 msgid "$(ID) - image ID" msgstr "$(ID) - Kuvan tunniste" -#: ../src/gui/gtkentry.c:230 +#: ../src/gui/gtkentry.c:233 msgid "$(TITLE) - title from metadata" msgstr "$(TITLE) - Otsikko (metatiedoista)" -#: ../src/gui/gtkentry.c:231 +#: ../src/gui/gtkentry.c:234 msgid "$(DESCRIPTION) - description from metadata" msgstr "$(CREATOR) - Tekijä (metatiedoista)" -#: ../src/gui/gtkentry.c:232 +#: ../src/gui/gtkentry.c:235 msgid "$(CREATOR) - creator from metadata" msgstr "$(CREATOR) - Tekijä (metatiedoista)" -#: ../src/gui/gtkentry.c:233 +#: ../src/gui/gtkentry.c:236 msgid "$(PUBLISHER) - publisher from metadata" msgstr "$(PUBLISHER) - Julkaisija (metatiedoista)" -#: ../src/gui/gtkentry.c:234 +#: ../src/gui/gtkentry.c:237 msgid "$(RIGHTS) - rights from metadata" msgstr "$(RIGHTS) - Tekijänoikeudet (metatiedoista)" -#: ../src/gui/gtkentry.c:235 +#: ../src/gui/gtkentry.c:238 msgid "$(USERNAME) - login name" msgstr "$(USERNAME) - Käyttäjänimi" -#: ../src/gui/gtkentry.c:236 +#: ../src/gui/gtkentry.c:239 msgid "$(FOLDER.PICTURES) - pictures folder" msgstr "$(FOLDER.PICTURES) - Valokuvahakemisto" -#: ../src/gui/gtkentry.c:237 +#: ../src/gui/gtkentry.c:240 msgid "$(FOLDER.HOME) - home folder" msgstr "$(FOLDER.HOME) - Kotihakemisto" -#: ../src/gui/gtkentry.c:238 +#: ../src/gui/gtkentry.c:241 msgid "$(FOLDER.DESKTOP) - desktop folder" msgstr "$(FOLDER.DESKTOP) - Työpöytä" -#: ../src/gui/gtkentry.c:239 +#: ../src/gui/gtkentry.c:242 msgid "$(OPENCL.ACTIVATED) - whether OpenCL is activated" msgstr "$(OPENCL.ACTIVATED) - Onko OpenCL aktivoitu" -#: ../src/gui/gtkentry.c:240 +#: ../src/gui/gtkentry.c:243 msgid "$(CATEGORY0(category)) - subtag of level 0 in hierarchical tags" msgstr "" "$(CATEGORY0(category)) - Tason 0 alatunniste hierarkisissa tunnisteissa" -#: ../src/gui/gtkentry.c:241 +#: ../src/gui/gtkentry.c:244 msgid "$(TAGS) - tags as set in metadata settings" msgstr "$(TAGS) - Tunnisteet kuten metatietojen asetuksissa" -#: ../src/gui/gtkentry.c:242 +#: ../src/gui/gtkentry.c:245 msgid "$(DARKTABLE.NAME) - darktable name" msgstr "$(DARKTABLE.NAME) - Darktablen nimi" -#: ../src/gui/gtkentry.c:243 +#: ../src/gui/gtkentry.c:246 msgid "$(DARKTABLE.VERSION) - current darktable version" msgstr "$(DARKTABLE.VERSION) - Nykyinen Darktablen versio" -#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:255 +#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:248 msgid "grid" msgstr "Ruudukko" @@ -10663,11 +11168,11 @@ msgstr "Yleiset apulinjojen asetukset" #: ../src/gui/guides.c:710 ../src/gui/guides.c:719 ../src/gui/guides.c:727 -#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2648 +#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2494 msgid "guide lines" msgstr "Apulinjat" -#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2092 +#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2145 msgid "flip" msgstr "Käännä" @@ -10683,8 +11188,8 @@ msgid "vertically" msgstr "Pystysuunnassa" -#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6285 ../src/iop/clipping.c:2096 -#: ../src/iop/colorbalance.c:1917 +#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6232 ../src/iop/clipping.c:2149 +#: ../src/iop/colorbalance.c:1892 msgid "both" msgstr "Molemmat" @@ -10732,26 +11237,26 @@ msgid "select parts to paste" msgstr "Valitse liitettävät osat" -#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:517 +#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:524 msgid "select _all" msgstr "Valitse _kaikki" -#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:518 +#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:525 msgid "select _none" msgstr "Poista _valinnat" -#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:593 -#: ../src/gui/styles_dialog.c:615 +#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:605 +#: ../src/gui/styles_dialog.c:627 msgid "include" msgstr "Sisällytä" -#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:669 -#: ../src/gui/styles_dialog.c:675 +#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:681 +#: ../src/gui/styles_dialog.c:687 msgid "item" msgstr "Nimike" -#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:682 -#: ../src/gui/styles_dialog.c:691 +#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:694 +#: ../src/gui/styles_dialog.c:703 msgid "mask" msgstr "Maski" @@ -10805,11 +11310,11 @@ msgid "interface language" msgstr "Käyttöliittymän kieli" -#: ../src/gui/preferences.c:289 +#: ../src/gui/preferences.c:290 msgid "double-click to reset to the system language" msgstr "Kaksoisnapsauta palauttaaksesi käyttöjärjestelmän oletuskieli" -#: ../src/gui/preferences.c:291 +#: ../src/gui/preferences.c:292 msgid "" "set the language of the user interface. the system default is marked with an " "* (needs a restart)" @@ -10817,27 +11322,27 @@ "Asettaa käyttöliittymän kielen. Käyttöjärjestelmän oletuskieli on\n" "merkitty *-merkillä (vaatii uudelleenkäynnistyksen)." -#: ../src/gui/preferences.c:300 +#: ../src/gui/preferences.c:301 msgid "theme" msgstr "Teema" -#: ../src/gui/preferences.c:328 +#: ../src/gui/preferences.c:331 msgid "set the theme for the user interface" msgstr "Valitse käyttöliittymän teema." -#: ../src/gui/preferences.c:341 ../src/gui/preferences.c:348 +#: ../src/gui/preferences.c:344 ../src/gui/preferences.c:351 msgid "use system font size" msgstr "Käytä käyttöjärjestelmän fontin kokoa" -#: ../src/gui/preferences.c:357 ../src/gui/preferences.c:364 +#: ../src/gui/preferences.c:360 ../src/gui/preferences.c:367 msgid "font size in points" msgstr "Fontin koko" -#: ../src/gui/preferences.c:369 +#: ../src/gui/preferences.c:372 msgid "GUI controls and text DPI" msgstr "Käyttöliittymän nappien ja tekstin koko (DPI)" -#: ../src/gui/preferences.c:376 +#: ../src/gui/preferences.c:379 msgid "" "adjust the global GUI resolution to rescale controls, buttons, labels, etc.\n" "increase for a magnified GUI, decrease to fit more content in window.\n" @@ -10853,81 +11358,65 @@ "(vaatii uudelleenkäynnistyksen)." #. checkbox to allow user to modify theme with user.css -#: ../src/gui/preferences.c:385 +#: ../src/gui/preferences.c:388 msgid "modify selected theme with CSS tweaks below" msgstr "Muokkaa valittua teemaa CSS-muutoksilla" -#: ../src/gui/preferences.c:393 +#: ../src/gui/preferences.c:396 msgid "modify theme with CSS keyed below (saved to user.css)" msgstr "" "Muokkaa teemaa alla olevilla CSS-muutoksilla (tallennetaan user.css -" "tiedostoon)." -#: ../src/gui/preferences.c:415 +#: ../src/gui/preferences.c:418 msgctxt "usercss" msgid "save CSS and apply" msgstr "Tallenna CSS ja ota käyttöön" -#: ../src/gui/preferences.c:420 +#: ../src/gui/preferences.c:423 msgid "click to save and apply the CSS tweaks entered in this editor" msgstr "" "Napsauta tallentaaksesi ja ottaaksesi käyttöön tähän kenttään syötetyt CSS " "muokkaukset." -#: ../src/gui/preferences.c:422 +#: ../src/gui/preferences.c:425 msgid "open help page for CSS tweaks" msgstr "Avaa aloitussivu CSS muokkauksien tekoa varten" #. load default text with some pointers -#: ../src/gui/preferences.c:443 +#: ../src/gui/preferences.c:446 msgid "ERROR Loading user.css" msgstr "VIRHE ladattaessa user.css" #. load default text -#: ../src/gui/preferences.c:452 +#: ../src/gui/preferences.c:455 msgid "Enter CSS theme tweaks here" msgstr "Kirjoita teeman CSS-muutokset tähän" -#: ../src/gui/preferences.c:488 +#: ../src/gui/preferences.c:491 msgid "darktable preferences" msgstr "Darktablen asetukset" -#: ../src/gui/preferences.c:533 -msgid "processing" -msgstr "Käsittely" - -#: ../src/gui/preferences.c:534 -msgid "security" -msgstr "Tietoturva" - -#: ../src/gui/preferences.c:535 -msgid "storage" -msgstr "Tallennus" - -#: ../src/gui/preferences.c:536 -msgid "miscellaneous" -msgstr "Sekalaiset" - -#: ../src/gui/preferences.c:561 +#: ../src/gui/preferences.c:559 msgid "darktable needs to be restarted for settings to take effect" msgstr "Darktable täytyy käynnistää uudestaan asetusten käyttöön ottamiseksi." #. exif -#: ../src/gui/preferences.c:820 ../src/gui/presets.c:644 -#: ../src/libs/metadata_view.c:137 +#: ../src/gui/preferences.c:818 ../src/gui/presets.c:647 +#: ../src/libs/metadata_view.c:139 msgid "model" msgstr "Malli" -#: ../src/gui/preferences.c:824 ../src/gui/presets.c:652 -#: ../src/libs/metadata_view.c:138 +#: ../src/gui/preferences.c:822 ../src/gui/presets.c:655 +#: ../src/libs/metadata_view.c:140 msgid "maker" msgstr "Valmistaja" -#: ../src/gui/preferences.c:861 +#: ../src/gui/preferences.c:859 msgid "search presets list" msgstr "Etsi esiasetusten listasta" -#: ../src/gui/preferences.c:862 +#: ../src/gui/preferences.c:860 msgid "" "incrementally search the list of presets\n" "press up or down keys to cycle through matches" @@ -10935,70 +11424,70 @@ "Kirjoittaessa lisääntyvä esiasetusten haku.\n" "Paina ylös tai alas näppäimiä selataksesi tuloksia." -#: ../src/gui/preferences.c:868 +#: ../src/gui/preferences.c:866 msgctxt "preferences" msgid "import..." msgstr "Tuo..." -#: ../src/gui/preferences.c:872 +#: ../src/gui/preferences.c:870 msgctxt "preferences" msgid "export..." msgstr "Vie..." -#: ../src/gui/preferences.c:1031 +#: ../src/gui/preferences.c:1030 #, c-format msgid "failed to import preset %s" msgstr "Esiasetuksen %s tuonti epäonnistui" -#: ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1041 msgid "select preset(s) to import" msgstr "Valitse tuotavat esiasetukset" -#: ../src/gui/preferences.c:1043 ../src/libs/collect.c:408 -#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:929 -#: ../src/libs/import.c:1506 ../src/libs/import.c:1610 ../src/libs/styles.c:527 +#: ../src/gui/preferences.c:1042 ../src/libs/collect.c:425 +#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:930 +#: ../src/libs/import.c:1515 ../src/libs/import.c:1619 ../src/libs/styles.c:529 msgid "_open" msgstr "_Tuo" -#: ../src/gui/preferences.c:1052 +#: ../src/gui/preferences.c:1051 msgid "darktable preset files" msgstr "Darktablen esiasetukset" -#: ../src/gui/preferences.c:1057 ../src/iop/lut3d.c:1577 -#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:945 -#: ../src/libs/styles.c:541 +#: ../src/gui/preferences.c:1056 ../src/iop/lut3d.c:1591 +#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:946 +#: ../src/libs/styles.c:543 msgid "all files" msgstr "Kaikki tiedostot" -#: ../src/gui/presets.c:59 +#: ../src/gui/presets.c:61 msgid "non-raw" msgstr "Ei raakakuva" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:332 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:336 msgid "raw" msgstr "Raakakuva" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:333 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:337 msgid "HDR" msgstr "HDR" -#: ../src/gui/presets.c:59 ../src/iop/monochrome.c:77 ../src/libs/image.c:608 -#: ../src/libs/metadata_view.c:339 +#: ../src/gui/presets.c:61 ../src/iop/monochrome.c:77 ../src/libs/image.c:679 +#: ../src/libs/metadata_view.c:343 msgid "monochrome" msgstr "Mustavalkoinen" -#: ../src/gui/presets.c:151 +#: ../src/gui/presets.c:153 #, c-format msgid "preset `%s' is write-protected, can't delete!" msgstr "Esiasetus `%s' on kirjoitussuojattu, ei voida poistaa!" -#: ../src/gui/presets.c:157 ../src/gui/presets.c:461 ../src/libs/lib.c:238 -#: ../src/libs/modulegroups.c:3701 +#: ../src/gui/presets.c:159 ../src/gui/presets.c:463 ../src/libs/lib.c:238 +#: ../src/libs/modulegroups.c:3703 msgid "delete preset?" msgstr "Poista esiasetus?" -#: ../src/gui/presets.c:158 ../src/gui/presets.c:462 ../src/libs/lib.c:239 -#: ../src/libs/modulegroups.c:3702 +#: ../src/gui/presets.c:160 ../src/gui/presets.c:464 ../src/libs/lib.c:239 +#: ../src/libs/modulegroups.c:3704 #, c-format msgid "do you really want to delete the preset `%s'?" msgstr "Haluatko varmasti poistaa esiasetuksen `%s'?" @@ -11009,25 +11498,25 @@ #. clang-format on #. create a shortcut for the new entry #. then show edit dialog -#: ../src/gui/presets.c:200 ../src/gui/presets.c:1035 ../src/gui/presets.c:1038 -#: ../src/gui/presets.c:1041 ../src/libs/lib.c:188 ../src/libs/lib.c:205 +#: ../src/gui/presets.c:202 ../src/gui/presets.c:1022 ../src/gui/presets.c:1025 +#: ../src/gui/presets.c:1028 ../src/libs/lib.c:188 ../src/libs/lib.c:205 #: ../src/libs/lib.c:213 ../src/libs/lib.c:216 msgid "new preset" msgstr "Uusi esiasetus" -#: ../src/gui/presets.c:207 +#: ../src/gui/presets.c:209 msgid "please give preset a name" msgstr "Anna esiasetukselle nimi" -#: ../src/gui/presets.c:212 +#: ../src/gui/presets.c:214 msgid "unnamed preset" msgstr "Nimeämätön esiasetus" -#: ../src/gui/presets.c:241 +#: ../src/gui/presets.c:243 msgid "overwrite preset?" msgstr "Ylikirjoita esiasetus?" -#: ../src/gui/presets.c:242 +#: ../src/gui/presets.c:244 #, c-format msgid "" "preset `%s' already exists.\n" @@ -11036,38 +11525,43 @@ "Esiasetus `%s' on jo olemassa.\n" "Haluatko ylikirjoittaa esiasetuksen?" -#: ../src/gui/presets.c:420 ../src/imageio/storage/disk.c:123 -#: ../src/imageio/storage/gallery.c:110 ../src/imageio/storage/latex.c:109 +#: ../src/gui/presets.c:422 ../src/imageio/storage/disk.c:198 +#: ../src/imageio/storage/gallery.c:150 ../src/imageio/storage/latex.c:146 msgid "_select as output destination" msgstr "_Valitse viennin kohteeksi" -#: ../src/gui/presets.c:429 +#: ../src/gui/presets.c:431 #, c-format msgid "preset %s was successfully exported" msgstr "Esiasetus %s vietiin onnistuneesti" -#: ../src/gui/presets.c:557 +#: ../src/gui/presets.c:559 #, c-format msgid "edit `%s' for module `%s'" msgstr "Muokkaa `%s' moduulille `%s'" -#: ../src/gui/presets.c:561 +#: ../src/gui/presets.c:563 msgid "_export..." msgstr "_Vie..." -#: ../src/gui/presets.c:585 +#: ../src/gui/presets.c:564 ../src/libs/tagging.c:1489 +#: ../src/libs/tagging.c:1580 +msgid "_delete" +msgstr "_Poista" + +#: ../src/gui/presets.c:588 msgid "name of the preset" msgstr "Esiasetuksen nimi" -#: ../src/gui/presets.c:594 +#: ../src/gui/presets.c:597 msgid "description or further information" msgstr "Kuvaus tai lisätietoja" -#: ../src/gui/presets.c:598 +#: ../src/gui/presets.c:601 msgid "reset all module parameters to their default values" msgstr "Palauta kaikki moduulin asetukset oletusarvoihin" -#: ../src/gui/presets.c:601 +#: ../src/gui/presets.c:604 msgid "" "the parameters will be reset to their default values, which may be " "automatically set based on image metadata" @@ -11075,15 +11569,15 @@ "Parametrit palautetaan oletusasetuksiin, joka saattaa perustua " "automaattisesti kuvan metatietoihin." -#: ../src/gui/presets.c:607 +#: ../src/gui/presets.c:610 msgid "auto apply this preset to matching images" msgstr "Käytä tätä esiasetusta automaattisesti vastaaville kuville" -#: ../src/gui/presets.c:611 +#: ../src/gui/presets.c:614 msgid "only show this preset for matching images" msgstr "Näytä tämä esiasetus ainoastaan vastaaville kuville" -#: ../src/gui/presets.c:613 +#: ../src/gui/presets.c:616 msgid "" "be very careful with this option. this might be the last time you see your " "preset." @@ -11091,26 +11585,26 @@ "Ole erittäin varovainen tämän asetuksen kanssa. Tämä saattaa olla viimeinen " "kerta, kun näet esiasetuksesi." -#: ../src/gui/presets.c:643 +#: ../src/gui/presets.c:646 #, no-c-format msgid "string to match model (use % as wildcard)" msgstr "Kameran merkki (käytä %-merkkiä jokerina)" -#: ../src/gui/presets.c:651 +#: ../src/gui/presets.c:654 #, no-c-format msgid "string to match maker (use % as wildcard)" msgstr "Kameran malli (käytä %-merkkiä jokerina)" -#: ../src/gui/presets.c:659 +#: ../src/gui/presets.c:662 #, no-c-format msgid "string to match lens (use % as wildcard)" msgstr "Objektiivin nimi (käytä %-merkkiä jokerina)" -#: ../src/gui/presets.c:669 +#: ../src/gui/presets.c:672 msgid "minimum ISO value" msgstr "Pienin herkkyysarvo" -#: ../src/gui/presets.c:675 +#: ../src/gui/presets.c:678 msgid "" "maximum ISO value\n" "if left blank, it is equivalent to no upper limit" @@ -11118,70 +11612,70 @@ "Maksimi ISO-arvo.\n" "Tyhjä valinta tarkoittaa, ettei ylärajaa ole asetettu." -#: ../src/gui/presets.c:688 +#: ../src/gui/presets.c:691 msgid "minimum exposure time" msgstr "Pienin valotusaika" -#: ../src/gui/presets.c:689 +#: ../src/gui/presets.c:692 msgid "maximum exposure time" msgstr "Suurin valotusaika" -#: ../src/gui/presets.c:705 +#: ../src/gui/presets.c:708 msgid "minimum aperture value" msgstr "Pienin aukon arvo" -#: ../src/gui/presets.c:706 +#: ../src/gui/presets.c:709 msgid "maximum aperture value" msgstr "Suurin aukon arvo" -#: ../src/gui/presets.c:724 +#: ../src/gui/presets.c:727 msgid "minimum focal length" msgstr "Pienin polttoväli (mm)" -#: ../src/gui/presets.c:725 +#: ../src/gui/presets.c:728 msgid "maximum focal length" msgstr "Suurin polttoväli (mm)" #. raw/hdr/ldr/mono/color -#: ../src/gui/presets.c:733 ../src/imageio/format/j2k.c:650 +#: ../src/gui/presets.c:736 msgid "format" msgstr "Muoto" -#: ../src/gui/presets.c:738 +#: ../src/gui/presets.c:741 msgid "select image types you want this preset to be available for" msgstr "Valitse kuvatyypit joilla tämän esiasetuksen käyttö on mahdollista" -#: ../src/gui/presets.c:751 ../src/libs/filtering.c:1201 +#: ../src/gui/presets.c:754 ../src/libs/filtering.c:1263 msgid "and" msgstr "ja" -#: ../src/gui/presets.c:795 ../src/gui/presets.c:847 +#: ../src/gui/presets.c:798 ../src/gui/presets.c:850 msgid "∞" msgstr "∞" -#: ../src/gui/presets.c:979 +#: ../src/gui/presets.c:966 #, c-format msgid "preset `%s' is write-protected! can't edit it!" msgstr "Esiasetus `%s' on kirjoitussuojattu! Sen muokkaus ei onnistu!" -#: ../src/gui/presets.c:1003 ../src/libs/lib.c:158 +#: ../src/gui/presets.c:990 ../src/libs/lib.c:158 msgid "update preset?" msgstr "Päivitä esiasetus?" -#: ../src/gui/presets.c:1004 ../src/libs/lib.c:159 +#: ../src/gui/presets.c:991 ../src/libs/lib.c:159 #, c-format msgid "do you really want to update the preset `%s'?" msgstr "Haluatko varmasti päivittää esiasetuksen `%s'?" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(first)" msgstr "(ensimmäinen)" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(last)" msgstr "(viimeinen)" -#: ../src/gui/presets.c:1165 +#: ../src/gui/presets.c:1152 #, c-format msgid "" "preset %s\n" @@ -11190,63 +11684,63 @@ "Esiasetus %s\n" "%s" -#: ../src/gui/presets.c:1166 +#: ../src/gui/presets.c:1153 msgid "no presets" msgstr "Ei esiasetuksia" -#: ../src/gui/presets.c:1199 ../src/iop/basecurve.c:528 -#: ../src/iop/basecurve.c:532 ../src/iop/basecurve.c:535 +#: ../src/gui/presets.c:1188 ../src/iop/basecurve.c:575 +#: ../src/iop/basecurve.c:579 ../src/iop/basecurve.c:582 msgid "display-referred default" msgstr "Näyttö-viitattu oletus" -#: ../src/gui/presets.c:1201 ../src/iop/channelmixerrgb.c:332 -#: ../src/iop/channelmixerrgb.c:336 ../src/iop/channelmixerrgb.c:339 -#: ../src/iop/exposure.c:297 ../src/iop/exposure.c:301 -#: ../src/iop/exposure.c:304 ../src/iop/filmicrgb.c:3248 -#: ../src/iop/filmicrgb.c:3252 ../src/iop/filmicrgb.c:3255 -#: ../src/iop/sigmoid.c:134 ../src/iop/sigmoid.c:138 ../src/iop/sigmoid.c:141 +#: ../src/gui/presets.c:1190 ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:400 ../src/iop/channelmixerrgb.c:403 +#: ../src/iop/exposure.c:319 ../src/iop/exposure.c:323 +#: ../src/iop/exposure.c:326 ../src/iop/filmicrgb.c:3311 +#: ../src/iop/filmicrgb.c:3315 ../src/iop/filmicrgb.c:3318 +#: ../src/iop/sigmoid.c:240 ../src/iop/sigmoid.c:243 ../src/iop/sigmoid.c:245 msgid "scene-referred default" msgstr "Näkymä-viitattu oletus" -#: ../src/gui/presets.c:1393 ../src/libs/modulegroups.c:3781 -#: ../src/libs/modulegroups.c:3790 +#: ../src/gui/presets.c:1394 ../src/libs/modulegroups.c:3783 +#: ../src/libs/modulegroups.c:3792 msgid "manage module layouts" msgstr "Muuta moduulien asettelua" -#: ../src/gui/presets.c:1402 +#: ../src/gui/presets.c:1403 msgid "manage quick presets" msgstr "Hallitse valmiita esiasetuksia" -#: ../src/gui/presets.c:1586 +#: ../src/gui/presets.c:1587 msgid "manage quick presets list..." msgstr "Hallitse valmiiden esiasetusten listaa..." -#: ../src/gui/presets.c:1727 +#: ../src/gui/presets.c:1728 msgid "(default)" msgstr "(oletus)" -#: ../src/gui/presets.c:1754 +#: ../src/gui/presets.c:1755 msgid "disabled: wrong module version" msgstr "Pois käytöstä: väärä moduulin versio" -#: ../src/gui/presets.c:1776 ../src/libs/lib.c:551 +#: ../src/gui/presets.c:1777 ../src/libs/lib.c:551 msgid "edit this preset.." msgstr "Muokkaa tätä esiasetusta.." -#: ../src/gui/presets.c:1781 ../src/libs/lib.c:555 +#: ../src/gui/presets.c:1782 ../src/libs/lib.c:555 msgid "delete this preset" msgstr "Poista tämä esiasetus" -#: ../src/gui/presets.c:1788 ../src/libs/lib.c:563 +#: ../src/gui/presets.c:1789 ../src/libs/lib.c:563 msgid "store new preset.." msgstr "Tallenna uusi esiasetus.." -#: ../src/gui/presets.c:1796 ../src/libs/lib.c:576 +#: ../src/gui/presets.c:1797 ../src/libs/lib.c:576 msgid "update preset" msgstr "Päivitä esiasetus" #: ../src/gui/styles_dialog.c:221 ../src/libs/styles.c:437 -#: ../src/libs/styles.c:620 +#: ../src/libs/styles.c:622 msgid "overwrite style?" msgstr "Ylikirjoita tyyli?" @@ -11272,39 +11766,39 @@ msgid "style %s was successfully saved" msgstr "Tyylin %s tallennus onnistui" -#: ../src/gui/styles_dialog.c:505 +#: ../src/gui/styles_dialog.c:512 msgid "edit style" msgstr "Muokkaa tyyliä" -#: ../src/gui/styles_dialog.c:506 +#: ../src/gui/styles_dialog.c:513 msgid "duplicate style" msgstr "Kahdenna tyyli" -#: ../src/gui/styles_dialog.c:507 +#: ../src/gui/styles_dialog.c:514 msgid "creates a duplicate of the style before applying changes" msgstr "Tyylistä luodaan kopio ennen muutosten tallentamista." -#: ../src/gui/styles_dialog.c:511 +#: ../src/gui/styles_dialog.c:518 msgid "create new style" msgstr "Luo uusi tyyli" -#: ../src/gui/styles_dialog.c:549 +#: ../src/gui/styles_dialog.c:557 msgid "enter a name for the new style" msgstr "Nimeä uusi tyyli." -#: ../src/gui/styles_dialog.c:554 +#: ../src/gui/styles_dialog.c:565 msgid "enter a description for the new style, this description is searchable" msgstr "Kuvaile uusi tyyli. Kuvaus on haettavissa." -#: ../src/gui/styles_dialog.c:593 +#: ../src/gui/styles_dialog.c:605 msgid "keep" msgstr "Pidä" -#: ../src/gui/styles_dialog.c:820 +#: ../src/gui/styles_dialog.c:832 msgid "can't create style out of unaltered image" msgstr "Ei voi luoda tyyliä muokkaamattomasta kuvasta." -#: ../src/imageio/imageio.c:804 +#: ../src/imageio/imageio.c:816 #, c-format msgid "" "failed to allocate memory for %s, please lower the threads used for export " @@ -11313,91 +11807,115 @@ "%s muistin varaus epäonnistui. Vähennä viennissä käytettävien säikeiden " "määrää tai hanki tietokoneeseesi lisää muistia." -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "thumbnail export" msgstr "Esikatselukuvien vienti" -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "export" msgstr "Vie" -#: ../src/imageio/imageio.c:819 +#: ../src/imageio/imageio.c:831 #, c-format msgid "cannot find the style '%s' to apply during export." msgstr "Tyyliä '%s' ei löydy lisättäväksi viennin yhteydessä." -#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:536 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/imageio_libraw.c:295 +msgid "" +"<span foreground='red'><b>WARNING</b></span>: camera is not fully supported!" +msgstr "" +"<span foreground='red'><b>VAROITUS</b></span>: kamera ei ole täysin tuettu!" + +#: ../src/imageio/imageio_libraw.c:297 +#, c-format +msgid "" +"colors for `%s' could be misrepresented,\n" +"and edits might not be compatible with future versions." +msgstr "" +"`%s' värit voidaan tulkita väärin,\n" +"ja muokkaukset eivät välttämättä ole yhteensopivia uusilla versioilla." + +#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:641 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "8 bit" msgstr "8-bittinen" -#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:567 msgid "10 bit" msgstr "10 bit" -#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:567 msgid "12 bit" msgstr "12 bit" -#: ../src/imageio/format/avif.c:431 +#: ../src/imageio/format/avif.c:110 ../src/imageio/format/webp.c:416 +msgid "lossless" +msgstr "häviötön" + +#: ../src/imageio/format/avif.c:112 ../src/imageio/format/webp.c:416 +msgid "lossy" +msgstr "häviöllinen" + +#: ../src/imageio/format/avif.c:463 msgid "invalid AVIF bit depth!" msgstr "Epäkelpo AVIF bittisyvyys!" -#: ../src/imageio/format/avif.c:694 -msgid "AVIF" -msgstr "AVIF" - #. Bit depth combo box -#: ../src/imageio/format/avif.c:766 ../src/imageio/format/exr.cc:565 -#: ../src/imageio/format/jxl.c:555 ../src/imageio/format/pdf.c:661 -#: ../src/imageio/format/png.c:534 ../src/imageio/format/tiff.c:843 +#: ../src/imageio/format/avif.c:800 ../src/imageio/format/exr.cc:601 +#: ../src/imageio/format/jxl.c:566 ../src/imageio/format/pdf.c:661 +#: ../src/imageio/format/png.c:639 ../src/imageio/format/tiff.c:900 #: ../src/imageio/format/xcf.c:354 msgid "bit depth" msgstr "Värisyvyys" -#: ../src/imageio/format/avif.c:779 +#: ../src/imageio/format/avif.c:813 msgid "color information stored in an image, higher is better" msgstr "Väritiedot tallennettu kuvaan, korkeampi on parempi" -#: ../src/imageio/format/avif.c:787 +#. +#. * Color mode combo box +#. +#. shortfile option combo box +#: ../src/imageio/format/avif.c:820 ../src/imageio/format/tiff.c:944 +msgid "B&W as grayscale" +msgstr "Mustavalkoinen kuten harmaasävy" + +#: ../src/imageio/format/avif.c:821 ../src/imageio/format/tiff.c:945 msgid "saving as grayscale will reduce the size for black & white images" msgstr "Harmaasävykuvana tallentaminen pienentää mustavalkokuvien kokoa." -#: ../src/imageio/format/avif.c:789 -msgid "RGB colors" -msgstr "RGB värit" - -#: ../src/imageio/format/avif.c:789 -msgid "grayscale" -msgstr "Harmaasävy" - #. #. * Tiling combo box #. -#: ../src/imageio/format/avif.c:799 +#: ../src/imageio/format/avif.c:832 msgid "tiling" msgstr "tiiletys" -#: ../src/imageio/format/avif.c:800 +#: ../src/imageio/format/avif.c:833 msgid "" "tile an image into segments.\n" "\n" -"makes encoding faster. the impact on quality reduction is negligible, but " -"increases the file size." +"makes encoding faster, but increases the file size. the loss of image " +"quality is negligible." msgstr "" "Tiiletä kuva osioihin.\n" "\n" -"Tekee koodauksen nopeammaksi. Vaikutus laatuun on huomaamaton, mutta kuvan " -"koko kasvaa." +"Tekee koodauksen nopeammaksi kasvattamalla tiedoston kokoa. Vaikutus " +"kuvanlaatuun on huomaamaton." -#: ../src/imageio/format/avif.c:817 ../src/imageio/format/webp.c:383 -msgid "compression type" -msgstr "Kuvanpakkauksen tyyppi" +#. compression +#. Compression method combo box +#: ../src/imageio/format/avif.c:850 ../src/imageio/format/exr.cc:611 +#: ../src/imageio/format/pdf.c:676 ../src/imageio/format/png.c:653 +#: ../src/imageio/format/tiff.c:923 ../src/imageio/format/webp.c:414 +#: ../src/libs/masks.c:111 +msgid "compression" +msgstr "Pakkaus" -#: ../src/imageio/format/avif.c:825 +#: ../src/imageio/format/avif.c:858 msgid "the compression for the image" msgstr "Kuvan pakkauksen taso" @@ -11406,36 +11924,28 @@ #. step #. default #. digits -#: ../src/imageio/format/avif.c:842 ../src/imageio/format/j2k.c:661 -#: ../src/imageio/format/jpeg.c:443 ../src/imageio/format/jxl.c:579 -#: ../src/imageio/format/webp.c:394 ../src/libs/camera.c:564 +#: ../src/imageio/format/avif.c:878 ../src/imageio/format/j2k.c:679 +#: ../src/imageio/format/jpeg.c:584 ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/webp.c:425 ../src/libs/camera.c:564 msgid "quality" msgstr "Laatu" -#: ../src/imageio/format/avif.c:847 +#: ../src/imageio/format/avif.c:881 msgid "" "the quality of an image, less quality means fewer details.\n" "\n" -"the following applies only to lossy setting\n" +"pixel format is controlled by quality:\n" "\n" -"pixelformat based on quality:\n" -"\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" msgstr "" "Kuvanlaatu, heikompi laatu tarkoittaa vähäisempiä yksityiskohtia.\n" "\n" -"Seuraavat koskevat ainoastaan häviöllisiä asetuksia.\n" -"\n" -"Laatuun perustuva pikselimuoto:\n" +"Laatu ohjaa pikselimuotoa:\n" "\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" #: ../src/imageio/format/copy.c:109 ../src/libs/copy_history.c:370 -#: ../src/libs/image.c:583 +#: ../src/libs/image.c:647 msgid "copy" msgstr "Kopioi" @@ -11451,120 +11961,141 @@ msgid "the selected output profile doesn't work well with EXR" msgstr "Valittu viennin profiili ei toimi hyvin EXR-tiedostoille." -#: ../src/imageio/format/exr.cc:540 +#: ../src/imageio/format/exr.cc:576 msgid "OpenEXR" msgstr "OpenEXR" -#: ../src/imageio/format/exr.cc:567 +#: ../src/imageio/format/exr.cc:603 msgid "16 bit (float)" msgstr "16-bittinen (liukuluku)" -#: ../src/imageio/format/exr.cc:567 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/format/exr.cc:603 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "32 bit (float)" msgstr "32-bittinen (liukuluku)" -#. compression -#. Compression method combo box -#: ../src/imageio/format/exr.cc:575 ../src/imageio/format/pdf.c:676 -#: ../src/imageio/format/png.c:548 ../src/imageio/format/tiff.c:866 -#: ../src/libs/masks.c:110 -msgid "compression" -msgstr "Pakkaus" - -#: ../src/imageio/format/exr.cc:577 ../src/imageio/format/pdf.c:682 -#: ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/exr.cc:613 ../src/imageio/format/pdf.c:682 +#: ../src/imageio/format/tiff.c:924 msgid "uncompressed" msgstr "Pakkaamaton" -#: ../src/imageio/format/exr.cc:578 +#: ../src/imageio/format/exr.cc:614 msgid "RLE" msgstr "RLE" -#: ../src/imageio/format/exr.cc:579 +#: ../src/imageio/format/exr.cc:615 msgid "ZIPS" msgstr "ZIPS" -#: ../src/imageio/format/exr.cc:580 +#: ../src/imageio/format/exr.cc:616 msgid "ZIP" msgstr "ZIP" -#: ../src/imageio/format/exr.cc:581 +#: ../src/imageio/format/exr.cc:617 msgid "PIZ" msgstr "PIZ" -#: ../src/imageio/format/exr.cc:582 +#: ../src/imageio/format/exr.cc:618 msgid "PXR24" msgstr "PXR24" -#: ../src/imageio/format/exr.cc:583 +#: ../src/imageio/format/exr.cc:619 msgid "B44" msgstr "B44" -#: ../src/imageio/format/exr.cc:584 +#: ../src/imageio/format/exr.cc:620 msgid "B44A" msgstr "B44A" -#: ../src/imageio/format/exr.cc:585 +#: ../src/imageio/format/exr.cc:621 msgid "DWAA" msgstr "DWAA" -#: ../src/imageio/format/exr.cc:586 +#: ../src/imageio/format/exr.cc:622 msgid "DWAB" msgstr "DWAB" -#: ../src/imageio/format/j2k.c:618 +#: ../src/imageio/format/j2k.c:648 msgid "JPEG 2000 (12-bit)" msgstr "JPEG 2000 (12-bit)" -#: ../src/imageio/format/j2k.c:652 -msgid "jp2" -msgstr "jp2" - -#: ../src/imageio/format/j2k.c:667 +#: ../src/imageio/format/j2k.c:684 msgid "DCP mode" msgstr "DCP-tila" -#: ../src/imageio/format/j2k.c:670 +#: ../src/imageio/format/j2k.c:687 msgid "Cinema2K, 24FPS" msgstr "Cinema2K, 24 Hz" -#: ../src/imageio/format/j2k.c:671 +#: ../src/imageio/format/j2k.c:688 msgid "Cinema2K, 48FPS" msgstr "Cinema2K, 48 Hz" -#: ../src/imageio/format/j2k.c:672 +#: ../src/imageio/format/j2k.c:689 msgid "Cinema4K, 24FPS" msgstr "Cinema4K, 24 Hz" -#: ../src/imageio/format/jpeg.c:420 +#: ../src/imageio/format/jpeg.c:546 msgid "JPEG (8-bit)" msgstr "JPEG (8-bit)" -#: ../src/imageio/format/jxl.c:471 -msgid "JPEG XL" -msgstr "JPEG XL" +#: ../src/imageio/format/jpeg.c:594 +msgid "chroma subsampling" +msgstr "Kroman alinäytteistys" + +#: ../src/imageio/format/jpeg.c:595 +msgid "" +"chroma subsampling setting for JPEG encoder.\n" +"auto - use subsampling determined by the quality value\n" +"4:4:4 - no chroma subsampling\n" +"4:4:0 - color sampling rate halved vertically\n" +"4:2:2 - color sampling rate halved horizontally\n" +"4:2:0 - color sampling rate halved horizontally and vertically" +msgstr "" +"Kroman alinäytteistyksen asetus JPEG kooderille.\n" +"Automaattinen - Käytä tallennuksen laadun perusteella määritettävää " +"alinäytteistystä\n" +"4:4:4 - kroman alinäytteistys ei käytössä\n" +"4:4:0 - värien näytteistys puolitettu pystysuunnassa\n" +"4:2:2 - värien näytteistys puolitettu vaakasuunnassa\n" +"4:2:0 - värien näytteistys puolitettu vaaka- ja pystysuunnassa" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:4" +msgstr "4:4:4" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:0" +msgstr "4:4:0" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:2" +msgstr "4:2:2" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:0" +msgstr "4:2:0" -#: ../src/imageio/format/jxl.c:556 ../src/imageio/format/pdf.c:81 -#: ../src/imageio/format/png.c:536 ../src/imageio/format/tiff.c:847 +#: ../src/imageio/format/jxl.c:567 ../src/imageio/format/pdf.c:81 +#: ../src/imageio/format/png.c:641 ../src/imageio/format/tiff.c:904 #: ../src/imageio/format/xcf.c:357 msgid "16 bit" msgstr "16-bittinen" #. Pixel format combo box -#: ../src/imageio/format/jxl.c:562 ../src/imageio/format/tiff.c:852 +#: ../src/imageio/format/jxl.c:573 ../src/imageio/format/tiff.c:909 msgid "pixel type" msgstr "Pikselin tyyppi" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "unsigned integer" msgstr "Etumerkitön kokonaisluku" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "floating point" msgstr "Liukuluku" -#: ../src/imageio/format/jxl.c:580 +#: ../src/imageio/format/jxl.c:591 msgid "" "the quality of the output image\n" "0-29 = very lossy\n" @@ -11576,11 +12107,11 @@ "30-99 = verrattavissa JPEG-laatuun.\n" "100 = häviötön (ainoastaan kokonaisluvun bittisyvyys)." -#: ../src/imageio/format/jxl.c:589 +#: ../src/imageio/format/jxl.c:600 msgid "encoding color profile" msgstr "Koodauksen väriprofiili" -#: ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/jxl.c:601 msgid "" "the color profile used by the encoder\n" "permit internal XYB color space conversion for more efficient lossy " @@ -11594,20 +12125,20 @@ "tai jatka ilman muunnosta säilyttääksesi alkuperäinen kuvan väriavaruus " "(tarkoittaa häviötöntä)." -#: ../src/imageio/format/jxl.c:593 +#: ../src/imageio/format/jxl.c:604 msgid "internal" msgstr "Sisäinen" -#: ../src/imageio/format/jxl.c:593 ../src/libs/duplicate.c:399 -#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:782 +#: ../src/imageio/format/jxl.c:604 ../src/libs/duplicate.c:405 +#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:840 msgid "original" msgstr "Alkuperäinen" -#: ../src/imageio/format/jxl.c:607 +#: ../src/imageio/format/jxl.c:618 msgid "encoding effort" msgstr "Koodauksen menetelmä" -#: ../src/imageio/format/jxl.c:608 +#: ../src/imageio/format/jxl.c:619 msgid "" "the effort used to encode the image, higher efforts will have better results " "at the expense of longer encoding times" @@ -11615,11 +12146,11 @@ "Kuvan koodauksen menetelmä, korkeammat menetelmät antavat paremman tuloksen, " "mutta suoritus kestää pidempään." -#: ../src/imageio/format/jxl.c:619 +#: ../src/imageio/format/jxl.c:630 msgid "decoding speed" msgstr "Purkamisen nopeus" -#: ../src/imageio/format/jxl.c:620 +#: ../src/imageio/format/jxl.c:631 msgid "the preferred decoding speed with some sacrifice of quality" msgstr "Laadun kustannuksella tapahtuva purkamisen nopeuden menetelmä." @@ -11631,9 +12162,9 @@ msgid "invalid border size, using 0" msgstr "Virheellinen reunuksen koko, käytetään 0:aa." -#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:316 -#: ../src/imageio/storage/email.c:137 ../src/imageio/storage/gallery.c:331 -#: ../src/imageio/storage/gallery.c:370 ../src/imageio/storage/piwigo.c:1202 +#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:460 +#: ../src/imageio/storage/email.c:187 ../src/imageio/storage/gallery.c:409 +#: ../src/imageio/storage/gallery.c:450 ../src/imageio/storage/piwigo.c:1236 #, c-format msgid "could not export to file `%s'!" msgstr "Vienti tiedostoon `%s' ei onnistunut!" @@ -11688,8 +12219,8 @@ "Esimerkiksi: 10 mm, 1 tuuma" #. dpi -#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1127 -#: ../src/libs/export.c:1150 +#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1218 +#: ../src/libs/export.c:1246 msgid "dpi" msgstr "pistetiheys" @@ -11732,7 +12263,7 @@ #. embedded icc profile yes|no #: ../src/imageio/format/pdf.c:651 msgid "embed ICC profiles" -msgstr "Upotettu ICC-väriprofiili" +msgstr "Upotettut ICC-väriprofiilit" #: ../src/imageio/format/pdf.c:652 msgid "images can be tagged with their ICC profile" @@ -11752,7 +12283,7 @@ "Pakkaamaton: nopea, tuottaa isot tiedostot.\n" "Kutistus: hidas, tuottaa pienemmät tiedostot." -#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:924 msgid "deflate" msgstr "Kutistus" @@ -11783,60 +12314,23 @@ msgid "debug" msgstr "Debug" -#: ../src/imageio/format/pfm.c:120 -msgid "PFM" -msgstr "PFM" - -#: ../src/imageio/format/png.c:493 -msgid "PNG" -msgstr "PNG" - #: ../src/imageio/format/ppm.c:111 msgid "PPM (16-bit)" msgstr "PPM (16-bit)" -#: ../src/imageio/format/tiff.c:228 -msgid "will export as a grayscale image" -msgstr "Vie kuvan harmaasävykyvana" - -#: ../src/imageio/format/tiff.c:774 -msgid "TIFF" -msgstr "TIFF" +#: ../src/imageio/format/tiff.c:246 +msgid "not a B&W image, will not export as grayscale" +msgstr "Ei mustavalkokuva, ei viedä harmaasävykyvana" -#: ../src/imageio/format/tiff.c:868 +#: ../src/imageio/format/tiff.c:925 msgid "deflate with predictor" msgstr "Ennustava kutistus" -#: ../src/imageio/format/tiff.c:878 +#: ../src/imageio/format/tiff.c:935 msgid "compression level" msgstr "Pakkauksen taso" -#. shortfile option combo box -#: ../src/imageio/format/tiff.c:887 -msgid "b&w image" -msgstr "Mustavalkoinen kuva" - -#: ../src/imageio/format/tiff.c:888 -msgid "write RGB colors" -msgstr "Kirjoita RGB-värit" - -#: ../src/imageio/format/tiff.c:888 -msgid "write grayscale" -msgstr "Kirjoita harmaasävyt" - -#: ../src/imageio/format/webp.c:349 -msgid "WebP" -msgstr "WebP" - -#: ../src/imageio/format/webp.c:385 -msgid "lossy" -msgstr "häviöllinen" - -#: ../src/imageio/format/webp.c:385 -msgid "lossless" -msgstr "häviötön" - -#: ../src/imageio/format/webp.c:397 +#: ../src/imageio/format/webp.c:426 msgid "" "for lossy, 0 gives the smallest size and 100 the best quality.\n" "for lossless, 0 is the fastest but gives larger files compared\n" @@ -11846,11 +12340,11 @@ "Häviöttömälle, 0 on nopein mutta tuottaa suurempia tiedostoja\n" "verrattuna 100, joka on hitain." -#: ../src/imageio/format/webp.c:407 +#: ../src/imageio/format/webp.c:436 msgid "image hint" msgstr "Kuvan tyyppi" -#: ../src/imageio/format/webp.c:408 +#: ../src/imageio/format/webp.c:437 msgid "" "image characteristics hint for the underlying encoder.\n" "picture: digital picture, like portrait, inner shot\n" @@ -11862,15 +12356,15 @@ "Valokuva: Luonnollisessa valossa otettu kuva.\n" "Grafiikka: Värieroteltu kuva (graafi, kartta jne.)." -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "picture" msgstr "Kuva" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "photo" msgstr "Valokuva" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "graphic" msgstr "Grafiikka" @@ -11878,12 +12372,12 @@ msgid "XCF" msgstr "XCF" -#: ../src/imageio/storage/disk.c:71 ../src/libs/export.c:1040 +#: ../src/imageio/storage/disk.c:74 ../src/libs/export.c:1119 msgid "file on disk" msgstr "Tiedosto levylle" -#: ../src/imageio/storage/disk.c:169 ../src/imageio/storage/gallery.c:155 -#: ../src/imageio/storage/latex.c:154 +#: ../src/imageio/storage/disk.c:251 ../src/imageio/storage/gallery.c:204 +#: ../src/imageio/storage/latex.c:191 msgid "" "enter the path where to put exported images\n" "variables support bash like string manipulation\n" @@ -11895,53 +12389,63 @@ "automaattisen täydennyksen ja nähdäksesi\n" "tuettujen muuttujien listan." -#: ../src/imageio/storage/disk.c:182 ../src/imageio/storage/piwigo.c:1079 +#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/piwigo.c:1113 msgid "on conflict" msgstr "Ristiriitatapauksissa" -#: ../src/imageio/storage/disk.c:185 +#: ../src/imageio/storage/disk.c:268 msgid "create unique filename" msgstr "Luo uniikki tiedostonimi" #. DT_COPY_HISTORY_APPEND -#: ../src/imageio/storage/disk.c:186 ../src/imageio/storage/piwigo.c:1083 -#: ../src/libs/copy_history.c:404 ../src/libs/image.c:601 -#: ../src/libs/styles.c:440 ../src/libs/styles.c:623 ../src/libs/styles.c:850 +#: ../src/imageio/storage/disk.c:269 ../src/imageio/storage/piwigo.c:1117 +#: ../src/libs/copy_history.c:404 ../src/libs/image.c:670 +#: ../src/libs/styles.c:854 msgid "overwrite" msgstr "Ylikirjoita" -#: ../src/imageio/storage/disk.c:187 ../src/imageio/storage/piwigo.c:1081 -#: ../src/libs/styles.c:439 ../src/libs/styles.c:622 +#: ../src/imageio/storage/disk.c:270 +msgid "overwrite if changed" +msgstr "Ylikirjoita jos muutettu" + +#: ../src/imageio/storage/disk.c:271 ../src/imageio/storage/piwigo.c:1115 msgid "skip" msgstr "Ohita" -#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/gallery.c:253 -#: ../src/imageio/storage/latex.c:252 +#: ../src/imageio/storage/disk.c:371 ../src/imageio/storage/gallery.c:326 +#: ../src/imageio/storage/latex.c:289 #, c-format msgid "could not create directory `%s'!" msgstr "Hakemiston `%s' luonti ei onnistunut!" -#: ../src/imageio/storage/disk.c:272 +#: ../src/imageio/storage/disk.c:382 #, c-format msgid "could not write to directory `%s'!" msgstr "Hakemistoon `%s' kirjoittaminen epäonnistui!" -#: ../src/imageio/storage/disk.c:302 +#: ../src/imageio/storage/disk.c:419 #, c-format msgid "%d/%d skipping `%s'" msgid_plural "%d/%d skipping `%s'" msgstr[0] "%d/%d ohitetaan `%s'" msgstr[1] "%d/%d ohitetaan `%s'" -#: ../src/imageio/storage/disk.c:321 ../src/imageio/storage/email.c:144 -#: ../src/imageio/storage/gallery.c:378 ../src/imageio/storage/latex.c:340 +#: ../src/imageio/storage/disk.c:441 +#, c-format +msgid "%d/%d skipping (not modified since export) `%s'" +msgid_plural "%d/%d skipping (not modified since export) `%s'" +msgstr[0] "%d/%d ohitetaan (ei muokattu viennin jälkeen) `%s'" +msgstr[1] "%d/%d ohitetaan (ei muokattu viennin jälkeen) `%s'" + +#: ../src/imageio/storage/disk.c:465 ../src/imageio/storage/email.c:194 +#: ../src/imageio/storage/gallery.c:458 ../src/imageio/storage/latex.c:377 #, c-format msgid "%d/%d exported to `%s'" msgid_plural "%d/%d exported to `%s'" msgstr[0] "%d/%d vietiin kohteeseen `%s'." msgstr[1] "%d/%d vietiin kohteeseen `%s'" -#: ../src/imageio/storage/disk.c:380 +#: ../src/imageio/storage/disk.c:530 msgid "" "you are going to export in overwrite mode, this will overwrite any existing " "images\n" @@ -11953,23 +12457,33 @@ "\n" "Haluatko varmasti jatkaa?" -#: ../src/imageio/storage/email.c:52 +#: ../src/imageio/storage/email.c:57 msgid "send as email" msgstr "Lähetä sähköpostilla" -#: ../src/imageio/storage/email.c:198 +#. Unlikely in normal Windows installations, but let's notify the user if it happens +#: ../src/imageio/storage/email.c:265 +msgid "could not open mapi32.dll" +msgstr "mapi32.dll avaaminen ei onnistunut." + +#. Even more unlikely +#: ../src/imageio/storage/email.c:275 +msgid "could not get SendMail function" +msgstr "SendMail funktion kutsu ei onnistunut." + +#: ../src/imageio/storage/email.c:319 ../src/imageio/storage/email.c:409 msgid "images exported from darktable" msgstr "Darktablesta viedyt kuvat" -#: ../src/imageio/storage/email.c:251 +#: ../src/imageio/storage/email.c:388 ../src/imageio/storage/email.c:467 msgid "could not launch email client!" msgstr "Sähköpostiohjelman käynnistys ei onnistunut!" -#: ../src/imageio/storage/gallery.c:73 +#: ../src/imageio/storage/gallery.c:76 msgid "website gallery" msgstr "Verkkogalleria" -#: ../src/imageio/storage/gallery.c:171 +#: ../src/imageio/storage/gallery.c:224 msgid "enter the title of the website" msgstr "Syötä verkkosivun otsikko" @@ -11977,150 +12491,150 @@ msgid "LaTeX book template" msgstr "LaTeX-kirjan mallitiedosto" -#: ../src/imageio/storage/latex.c:172 +#: ../src/imageio/storage/latex.c:209 msgid "enter the title of the book" msgstr "Anna kirjan nimi" -#: ../src/imageio/storage/piwigo.c:522 +#: ../src/imageio/storage/piwigo.c:525 msgid "authenticated" msgstr "Tunnistautunut" -#: ../src/imageio/storage/piwigo.c:532 ../src/imageio/storage/piwigo.c:547 -#: ../src/imageio/storage/piwigo.c:559 +#: ../src/imageio/storage/piwigo.c:536 ../src/imageio/storage/piwigo.c:552 +#: ../src/imageio/storage/piwigo.c:565 msgid "not authenticated" msgstr "Ei tunnistauduttu" -#: ../src/imageio/storage/piwigo.c:538 +#: ../src/imageio/storage/piwigo.c:542 msgid "not authenticated, cannot reach server" msgstr "Ei tunnistauduttu, palvelimeen ei saada yhteyttä." -#: ../src/imageio/storage/piwigo.c:587 ../src/imageio/storage/piwigo.c:675 +#: ../src/imageio/storage/piwigo.c:595 ../src/imageio/storage/piwigo.c:684 msgid "create new album" msgstr "Luo uusi albumi" -#: ../src/imageio/storage/piwigo.c:676 +#: ../src/imageio/storage/piwigo.c:685 msgid "---" msgstr "---" -#: ../src/imageio/storage/piwigo.c:721 +#: ../src/imageio/storage/piwigo.c:735 msgid "cannot refresh albums" msgstr "Ei voida päivittää albumeita." -#: ../src/imageio/storage/piwigo.c:929 +#: ../src/imageio/storage/piwigo.c:950 msgid "Piwigo" msgstr "Piwigo" -#: ../src/imageio/storage/piwigo.c:954 +#: ../src/imageio/storage/piwigo.c:976 msgid "accounts" msgstr "Tilit" -#: ../src/imageio/storage/piwigo.c:972 ../src/imageio/storage/piwigo.c:978 +#: ../src/imageio/storage/piwigo.c:995 ../src/imageio/storage/piwigo.c:1004 msgid "server" msgstr "Palvelin" -#: ../src/imageio/storage/piwigo.c:974 ../src/imageio/storage/piwigo.c:989 +#: ../src/imageio/storage/piwigo.c:998 msgid "" "the server name\n" "default protocol is https\n" -"specify http:// if non secure server" +"specify insecure protocol http:// explicitly if that protocol is required" msgstr "" "Palvelimen nimi\n" "Oletusprotokolla on https\n" -"Jos palvelin ei ole turvallinen, käytä http://" +"Määritä turvaton protokolla http:// eksplisiittisesti, jos kyseinen " +"protokolla on vaadittu." -#: ../src/imageio/storage/piwigo.c:987 ../src/imageio/storage/piwigo.c:993 +#: ../src/imageio/storage/piwigo.c:1014 ../src/imageio/storage/piwigo.c:1021 msgid "user" msgstr "Käyttäjänimi" -#: ../src/imageio/storage/piwigo.c:1000 ../src/imageio/storage/piwigo.c:1005 +#: ../src/imageio/storage/piwigo.c:1029 ../src/imageio/storage/piwigo.c:1034 msgid "password" msgstr "Salasana" #. login button -#: ../src/imageio/storage/piwigo.c:1010 +#: ../src/imageio/storage/piwigo.c:1039 msgid "login" msgstr "Kirjaudu" -#: ../src/imageio/storage/piwigo.c:1011 +#: ../src/imageio/storage/piwigo.c:1040 msgid "Piwigo login" msgstr "Piwigo kirjautuminen" #. permissions list -#: ../src/imageio/storage/piwigo.c:1025 +#: ../src/imageio/storage/piwigo.c:1056 msgid "visible to" msgstr "Näkyvyys" -#: ../src/imageio/storage/piwigo.c:1027 +#: ../src/imageio/storage/piwigo.c:1058 msgid "everyone" msgstr "Kaikki" # tai "pinnakkaiset", sama kuin filmille aikoinaan: koko rulla vedostettiin ilman suurennusta samalle paperille ikään kuin esikatselukuviksi -#: ../src/imageio/storage/piwigo.c:1028 +#: ../src/imageio/storage/piwigo.c:1059 msgid "contacts" msgstr "Yhteystiedot" -#: ../src/imageio/storage/piwigo.c:1029 +#: ../src/imageio/storage/piwigo.c:1060 msgid "friends" msgstr "Ystävät" -#: ../src/imageio/storage/piwigo.c:1030 +#: ../src/imageio/storage/piwigo.c:1061 msgid "family" msgstr "Perhe" -#: ../src/imageio/storage/piwigo.c:1031 +#: ../src/imageio/storage/piwigo.c:1062 msgid "you" msgstr "Sinä" #. Available albums -#: ../src/imageio/storage/piwigo.c:1038 +#: ../src/imageio/storage/piwigo.c:1069 msgid "album" msgstr "Albumi" -#: ../src/imageio/storage/piwigo.c:1045 +#: ../src/imageio/storage/piwigo.c:1076 msgid "refresh album list" msgstr "Päivitä albumilista" #. Album title -#: ../src/imageio/storage/piwigo.c:1063 +#: ../src/imageio/storage/piwigo.c:1096 msgid "new album" msgstr "Uusi albumi" -#. parent album list #. Available albums -#: ../src/imageio/storage/piwigo.c:1071 +#: ../src/imageio/storage/piwigo.c:1105 msgid "parent album" msgstr "Vanhempi albumi" -#: ../src/imageio/storage/piwigo.c:1075 +#: ../src/imageio/storage/piwigo.c:1109 msgid "click login button to start" msgstr "Napsauta kirjaudu-nappia aloittaaksesi" -#: ../src/imageio/storage/piwigo.c:1080 +#: ../src/imageio/storage/piwigo.c:1114 msgid "don't check" msgstr "Älä varmista" -#: ../src/imageio/storage/piwigo.c:1082 +#: ../src/imageio/storage/piwigo.c:1116 msgid "update metadata" msgstr "Päivitä metatiedot" -#: ../src/imageio/storage/piwigo.c:1221 +#: ../src/imageio/storage/piwigo.c:1255 msgid "cannot create a new Piwigo album!" msgstr "Uuden Piwigo-albumin luonti epäonnistui!" -#: ../src/imageio/storage/piwigo.c:1240 +#: ../src/imageio/storage/piwigo.c:1274 msgid "could not update to Piwigo!" msgstr "Piwigoon päivitys epäonnistui!" -#: ../src/imageio/storage/piwigo.c:1255 +#: ../src/imageio/storage/piwigo.c:1290 msgid "could not upload to Piwigo!" msgstr "Kuvien vienti Piwigoon epäonnistui!" -#: ../src/imageio/storage/piwigo.c:1284 +#: ../src/imageio/storage/piwigo.c:1319 #, c-format msgid "%d/%d skipped (already exists)" msgstr "%d/%d ohitettu (on jo olemassa)" -#: ../src/imageio/storage/piwigo.c:1290 +#: ../src/imageio/storage/piwigo.c:1325 #, c-format msgid "%d/%d exported to Piwigo webalbum" msgid_plural "%d/%d exported to Piwigo webalbum" @@ -12140,54 +12654,54 @@ msgstr "Kierrä tai vääristä perspektiiviä" #: ../src/iop/ashift.c:131 ../src/iop/channelmixer.c:139 -#: ../src/iop/channelmixerrgb.c:232 ../src/iop/clipping.c:320 -#: ../src/iop/colorbalance.c:161 ../src/iop/colorbalancergb.c:185 +#: ../src/iop/channelmixerrgb.c:233 ../src/iop/clipping.c:363 +#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:185 #: ../src/iop/colorchecker.c:130 ../src/iop/colorcorrection.c:77 -#: ../src/iop/crop.c:144 ../src/iop/lut3d.c:141 +#: ../src/iop/crop.c:134 ../src/iop/lut3d.c:142 ../src/iop/primaries.c:80 msgid "corrective or creative" msgstr "Korjaava tai luova" -#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:148 -#: ../src/iop/bilateral.cc:101 ../src/iop/bilateral.cc:103 -#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:233 -#: ../src/iop/channelmixerrgb.c:235 ../src/iop/clipping.c:321 -#: ../src/iop/clipping.c:323 ../src/iop/colorbalancergb.c:186 -#: ../src/iop/colorin.c:136 ../src/iop/crop.c:145 ../src/iop/crop.c:147 -#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:728 -#: ../src/iop/denoiseprofile.c:730 ../src/iop/diffuse.c:146 +#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:174 +#: ../src/iop/bilateral.cc:103 ../src/iop/bilateral.cc:105 +#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:236 ../src/iop/clipping.c:364 +#: ../src/iop/clipping.c:366 ../src/iop/colorbalancergb.c:186 +#: ../src/iop/colorin.c:136 ../src/iop/crop.c:135 ../src/iop/crop.c:137 +#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:780 +#: ../src/iop/denoiseprofile.c:782 ../src/iop/diffuse.c:146 #: ../src/iop/diffuse.c:148 ../src/iop/exposure.c:132 ../src/iop/exposure.c:134 #: ../src/iop/flip.c:111 ../src/iop/flip.c:112 ../src/iop/hazeremoval.c:113 -#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:244 ../src/iop/lens.cc:246 -#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/retouch.c:210 -#: ../src/iop/retouch.c:212 ../src/iop/sigmoid.c:103 -#: ../src/iop/splittoning.c:104 ../src/iop/splittoning.c:106 -#: ../src/iop/spots.c:70 ../src/iop/spots.c:72 ../src/iop/toneequal.c:325 -#: ../src/iop/velvia.c:106 ../src/iop/velvia.c:108 +#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:263 ../src/iop/lens.cc:265 +#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/primaries.c:81 +#: ../src/iop/primaries.c:83 ../src/iop/retouch.c:210 ../src/iop/retouch.c:212 +#: ../src/iop/sigmoid.c:209 ../src/iop/splittoning.c:106 +#: ../src/iop/splittoning.c:108 ../src/iop/spots.c:70 ../src/iop/spots.c:72 +#: ../src/iop/toneequal.c:333 ../src/iop/velvia.c:99 ../src/iop/velvia.c:101 msgid "linear, RGB, scene-referred" msgstr "Suoralinjainen, RGB, Näkymä-viitattu" -#: ../src/iop/ashift.c:133 ../src/iop/borders.c:200 ../src/iop/clipping.c:322 -#: ../src/iop/crop.c:146 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 +#: ../src/iop/ashift.c:133 ../src/iop/borders.c:325 ../src/iop/clipping.c:365 +#: ../src/iop/crop.c:136 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 msgid "geometric, RGB" msgstr "Geometrinen, RGB" -#: ../src/iop/ashift.c:2820 +#: ../src/iop/ashift.c:2866 msgid "automatic cropping failed" msgstr "Automaattinen rajaus epäonnistui" -#: ../src/iop/ashift.c:3234 ../src/iop/ashift.c:3286 ../src/iop/ashift.c:3334 +#: ../src/iop/ashift.c:3276 ../src/iop/ashift.c:3328 ../src/iop/ashift.c:3375 msgid "data pending - please repeat" msgstr "Tietoja ratkaisematta - ole hyvä ja toista" -#: ../src/iop/ashift.c:3243 +#: ../src/iop/ashift.c:3285 msgid "could not detect structural data in image" msgstr "Kuvasta ei tunnistettu rakenteellisia tietoja." -#: ../src/iop/ashift.c:3255 +#: ../src/iop/ashift.c:3297 msgid "could not run outlier removal" msgstr "Poikkeavien arvojen poisto ei onnistunut." -#: ../src/iop/ashift.c:3434 +#: ../src/iop/ashift.c:3474 #, c-format msgid "" "not enough structure for automatic correction\n" @@ -12196,41 +12710,41 @@ "Ei riittävästi selkeitä rakenteita automaattikorjauksen\n" "minimimäärälle %d linjoja jokaisessa tarvittavassa suunnassa." -#: ../src/iop/ashift.c:3440 +#: ../src/iop/ashift.c:3480 msgid "automatic correction failed, please correct manually" msgstr "Automaattinen korjaus epäonnistui, ole hyvä ja tee korjaus käsin." -#: ../src/iop/ashift.c:5096 +#: ../src/iop/ashift.c:5077 #, c-format msgid "only %d lines can be saved in parameters" msgstr "Vain %d linjaa voidaan tallentaa parametriksi." -#: ../src/iop/ashift.c:5201 +#: ../src/iop/ashift.c:5157 #, c-format -msgid "rotation adjusted by %3.1f° to %3.1f°" -msgstr "Kiertoa säädetty %3.1f° -> %3.1f°" +msgid "rotation adjusted by %3.2f° to %3.2f°" +msgstr "Kiertoa säädetty %3.2f° -> %3.2f°" -#: ../src/iop/ashift.c:5852 ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 -#: ../src/iop/ashift.c:5961 +#: ../src/iop/ashift.c:5797 ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 +#: ../src/iop/ashift.c:5906 #, c-format msgid "lens shift (%s)" msgstr "Objektiivin siirto (%s)" -#: ../src/iop/ashift.c:6125 +#: ../src/iop/ashift.c:6072 msgid "manual perspective" msgstr "Manuaalinen perspektiivi" -#: ../src/iop/ashift.c:6170 +#: ../src/iop/ashift.c:6117 msgctxt "section" msgid "perspective" msgstr "Perspektiivi" -#: ../src/iop/ashift.c:6177 ../src/iop/ashift.c:6286 ../src/iop/ashift.c:6288 -#: ../src/iop/ashift.c:6290 +#: ../src/iop/ashift.c:6124 ../src/iop/ashift.c:6233 ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6237 msgid "structure" msgstr "Rakenne" -#: ../src/iop/ashift.c:6212 +#: ../src/iop/ashift.c:6159 msgid "" "rotate image\n" "right-click and drag to define a horizontal or vertical line by drawing on " @@ -12240,31 +12754,31 @@ "Oikea napsaus ja raahaus määrittää vaaka- tai pystysuuntaisen linjan " "piirtämisen kuvaan." -#: ../src/iop/ashift.c:6215 ../src/iop/ashift.c:6217 +#: ../src/iop/ashift.c:6162 ../src/iop/ashift.c:6164 msgid "apply lens shift correction in one direction" msgstr "Tee objektiivinkorjaus yhdessä suunnassa." -#: ../src/iop/ashift.c:6219 +#: ../src/iop/ashift.c:6166 msgid "shear the image along one diagonal" msgstr "Leikkaa kuvaa lävistäjän suuntaisesti." -#: ../src/iop/ashift.c:6220 ../src/iop/clipping.c:2117 +#: ../src/iop/ashift.c:6167 ../src/iop/clipping.c:2170 msgid "automatically crop to avoid black edges" msgstr "Rajaa kuvaa automaattisesti mustien reunojen välttämiseksi." -#: ../src/iop/ashift.c:6221 +#: ../src/iop/ashift.c:6168 msgid "" "lens model of the perspective correction: generic or according to the focal " "length" msgstr "" "Objektiivin perspektiivikorjaus: yleismallinen vai polttovälin mukainen." -#: ../src/iop/ashift.c:6224 +#: ../src/iop/ashift.c:6171 msgid "focal length of the lens, default value set from EXIF data if available" msgstr "" "Objektiivin polttoväli, oletuksena käytetään EXIF-tiedoissa olevaa arvoa." -#: ../src/iop/ashift.c:6227 +#: ../src/iop/ashift.c:6174 msgid "" "crop factor of the camera sensor, default value set from EXIF data if " "available, manual setting is often required" @@ -12272,7 +12786,7 @@ "Kameran kuvakennon rajauskerroin, oletuksena käytetään EXIF-tiedoissa olevaa " "arvoa, vaatii usein käsinasetuksen." -#: ../src/iop/ashift.c:6231 +#: ../src/iop/ashift.c:6178 msgid "" "the level of lens dependent correction, set to maximum for full lens " "dependency, set to zero for the generic case" @@ -12280,11 +12794,11 @@ "Objektiivikorjauksen taso; täydellä arvolla korjaus on täysin " "objektiivikohtainen, nollilla taas täysin yleisluontoinen." -#: ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6182 msgid "adjust aspect ratio of image by horizontal and vertical scaling" msgstr "Muuta kuvasuhdetta vaaka- ja pystysuuntaisella skaalauksella." -#: ../src/iop/ashift.c:6237 +#: ../src/iop/ashift.c:6184 msgid "" "automatically correct for vertical perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12294,7 +12808,7 @@ "CTRL+napsaus sovittaa ainoastaan kierron.\n" "SHIFT+napsaus sovittaa ainoastaan linssin siirron." -#: ../src/iop/ashift.c:6241 +#: ../src/iop/ashift.c:6188 msgid "" "automatically correct for horizontal perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12304,7 +12818,7 @@ "CTRL+napsaus sovittaa ainoastaan kierron.\n" "SHIFT+napsaus sovittaa ainoastaan linssin siirron." -#: ../src/iop/ashift.c:6245 +#: ../src/iop/ashift.c:6192 msgid "" "automatically correct for vertical and horizontal perspective distortions, " "fitting rotation, lens shift in both directions, and shear\n" @@ -12318,7 +12832,7 @@ "SHIFT+napsaus sovittaa ainoastaan linssin siirron.\n" "CTRL+SHIFT+napsaus sovittaa ainoastaan kierron ja linssin siirron." -#: ../src/iop/ashift.c:6252 +#: ../src/iop/ashift.c:6199 msgid "" "automatically analyse line structure in image\n" "ctrl+click for an additional edge enhancement\n" @@ -12330,226 +12844,226 @@ "SHIFT+napsaus ylimääräinen yksityiskohtien tunnistus.\n" "CTRL+SHIFT+napsaus molempien tapojen yhdistelmä." -#: ../src/iop/ashift.c:6257 +#: ../src/iop/ashift.c:6204 msgid "manually define perspective rectangle" msgstr "Määritä manuaalisesti perspektiivin suorakulmio" -#: ../src/iop/ashift.c:6258 +#: ../src/iop/ashift.c:6205 msgid "manually draw structure lines" msgstr "Piirrä käsin rakenteelliset viivat" -#: ../src/iop/ashift.c:6287 +#: ../src/iop/ashift.c:6234 msgid "rectangle" msgstr "Suorakulmio" -#: ../src/iop/ashift.c:6289 +#: ../src/iop/ashift.c:6236 msgid "lines" msgstr "Viivat" -#: ../src/iop/ashift.c:6323 ../src/iop/clipping.c:3343 +#: ../src/iop/ashift.c:6270 ../src/iop/clipping.c:3383 #, c-format msgid "[%s] define/rotate horizon" msgstr "[%s] Määritä / kierrä horisontti" -#: ../src/iop/ashift.c:6326 +#: ../src/iop/ashift.c:6273 #, c-format msgid "[%s on segment] select segment" msgstr "[%s lohkossa] Valitse lohko" -#: ../src/iop/ashift.c:6330 +#: ../src/iop/ashift.c:6277 #, c-format msgid "[%s on segment] unselect segment" msgstr "[%s lohkossa] peruuta lohkon valinta" -#: ../src/iop/ashift.c:6334 +#: ../src/iop/ashift.c:6281 #, c-format msgid "[%s] select all segments from zone" msgstr "[%s] valitse kaikki lohkot alueelta" -#: ../src/iop/ashift.c:6338 +#: ../src/iop/ashift.c:6285 #, c-format msgid "[%s] unselect all segments from zone" msgstr "[%s] peruuta kaikkien lohkojen valinta alueelta" -#: ../src/iop/atrous.c:123 ../src/iop/atrous.c:1638 +#: ../src/iop/atrous.c:122 ../src/iop/atrous.c:1770 msgid "contrast equalizer" msgstr "Kontrastin taajuuskorjain" -#: ../src/iop/atrous.c:128 +#: ../src/iop/atrous.c:127 msgid "sharpness|acutance|local contrast" msgstr "Terävöitys|Akutanssi|Paikallinen kontrasti" -#: ../src/iop/atrous.c:133 +#: ../src/iop/atrous.c:132 msgid "add or remove local contrast, sharpness, acutance" msgstr "" "Lisää tai vähennä kuvan paikallista kontrastia, terävyyttä ja akutanssia" -#: ../src/iop/atrous.c:134 ../src/iop/bilateral.cc:100 ../src/iop/diffuse.c:145 +#: ../src/iop/atrous.c:133 ../src/iop/bilateral.cc:102 ../src/iop/diffuse.c:145 #: ../src/iop/exposure.c:131 ../src/iop/filmicrgb.c:352 #: ../src/iop/graduatednd.c:146 ../src/iop/negadoctor.c:146 -#: ../src/iop/rgbcurve.c:143 ../src/iop/rgblevels.c:123 ../src/iop/shadhi.c:197 -#: ../src/iop/sigmoid.c:102 ../src/iop/tonecurve.c:211 -#: ../src/iop/toneequal.c:324 +#: ../src/iop/rgbcurve.c:145 ../src/iop/rgblevels.c:125 ../src/iop/shadhi.c:144 +#: ../src/iop/sigmoid.c:209 ../src/iop/tonecurve.c:184 +#: ../src/iop/toneequal.c:332 msgid "corrective and creative" msgstr "Korjaava ja luova" -#: ../src/iop/atrous.c:135 ../src/iop/atrous.c:137 -#: ../src/iop/colorbalance.c:162 +#: ../src/iop/atrous.c:134 ../src/iop/atrous.c:136 +#: ../src/iop/colorbalance.c:164 msgid "linear, Lab, scene-referred" msgstr "Suoralinjainen, Lab, Näkymä-viitattu" -#: ../src/iop/atrous.c:136 ../src/iop/censorize.c:85 +#: ../src/iop/atrous.c:135 ../src/iop/censorize.c:85 #: ../src/iop/hazeremoval.c:114 msgid "frequential, RGB" msgstr "Taajuudellinen, RGB" -#: ../src/iop/atrous.c:727 +#: ../src/iop/atrous.c:799 msgctxt "eq_preset" msgid "coarse" msgstr "Lisää karkeutta" -#: ../src/iop/atrous.c:742 +#: ../src/iop/atrous.c:815 msgid "denoise & sharpen" msgstr "Kohinanpoisto ja terävöitys" -#: ../src/iop/atrous.c:757 +#: ../src/iop/atrous.c:831 msgctxt "atrous" msgid "sharpen" msgstr "Terävöitys" -#: ../src/iop/atrous.c:772 +#: ../src/iop/atrous.c:847 msgid "denoise chroma" msgstr "Värikohinan poisto" -#: ../src/iop/atrous.c:787 +#: ../src/iop/atrous.c:863 msgid "denoise" msgstr "Kohinanpoisto" -#: ../src/iop/atrous.c:803 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:421 +#: ../src/iop/atrous.c:880 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:448 msgid "bloom" msgstr "Lisää hehkua" -#: ../src/iop/atrous.c:818 ../src/iop/bilat.c:169 +#: ../src/iop/atrous.c:896 ../src/iop/bilat.c:186 msgid "clarity" msgstr "Selkeys" -#: ../src/iop/atrous.c:838 +#: ../src/iop/atrous.c:917 msgid "deblur: large blur, strength 3" msgstr "Sumennuksen vähennys: suuri sumennus, voimakkuus 3" -#: ../src/iop/atrous.c:855 +#: ../src/iop/atrous.c:935 msgid "deblur: medium blur, strength 3" msgstr "Sumennuksen vähennys: keskikokoinen sumennus, voimakkuus 3" -#: ../src/iop/atrous.c:871 +#: ../src/iop/atrous.c:952 msgid "deblur: fine blur, strength 3" msgstr "Sumennuksen vähennys: hieno sumennus, voimakkuus 3" -#: ../src/iop/atrous.c:889 +#: ../src/iop/atrous.c:971 msgid "deblur: large blur, strength 2" msgstr "Sumennuksen vähennys: suuri sumennus, voimakkuus 2" -#: ../src/iop/atrous.c:906 +#: ../src/iop/atrous.c:989 msgid "deblur: medium blur, strength 2" msgstr "Sumennuksen vähennys: keskikokoinen sumennus, voimakkuus 2" -#: ../src/iop/atrous.c:922 +#: ../src/iop/atrous.c:1006 msgid "deblur: fine blur, strength 2" msgstr "Sumennuksen vähennys: hieno sumennus, voimakkuus 2" -#: ../src/iop/atrous.c:940 +#: ../src/iop/atrous.c:1025 msgid "deblur: large blur, strength 1" msgstr "Sumennuksen vähennys: suuri sumennus, voimakkuus 1" -#: ../src/iop/atrous.c:957 +#: ../src/iop/atrous.c:1043 msgid "deblur: medium blur, strength 1" msgstr "Sumennuksen vähennys: keskikokoinen sumennus, voimakkuus 1" -#: ../src/iop/atrous.c:973 +#: ../src/iop/atrous.c:1060 msgid "deblur: fine blur, strength 1" msgstr "Sumennuksen vähennys: hieno sumennus, voimakkuus 1" -#: ../src/iop/atrous.c:1289 ../src/iop/atrous.c:1525 -#: ../src/iop/denoiseprofile.c:3510 ../src/iop/rawdenoise.c:738 +#: ../src/iop/atrous.c:1390 ../src/iop/atrous.c:1639 +#: ../src/iop/denoiseprofile.c:3514 ../src/iop/rawdenoise.c:754 msgid "coarse" msgstr "Karkea" -#: ../src/iop/atrous.c:1296 ../src/iop/atrous.c:1526 -#: ../src/iop/denoiseprofile.c:3518 ../src/iop/rawdenoise.c:746 +#: ../src/iop/atrous.c:1397 ../src/iop/atrous.c:1640 +#: ../src/iop/denoiseprofile.c:3522 ../src/iop/rawdenoise.c:762 msgid "fine" msgstr "Hieno" -#: ../src/iop/atrous.c:1308 +#: ../src/iop/atrous.c:1409 msgid "contrasty" msgstr "Kontrastikas" -#: ../src/iop/atrous.c:1314 ../src/iop/denoiseprofile.c:3532 -#: ../src/iop/rawdenoise.c:760 +#: ../src/iop/atrous.c:1415 ../src/iop/denoiseprofile.c:3536 +#: ../src/iop/rawdenoise.c:776 msgid "noisy" msgstr "Kohinainen" #. case atrous_s: -#: ../src/iop/atrous.c:1317 +#: ../src/iop/atrous.c:1418 msgid "bold" msgstr "Voimakas" -#: ../src/iop/atrous.c:1318 +#: ../src/iop/atrous.c:1419 msgid "dull" msgstr "Himmeä" -#: ../src/iop/atrous.c:1513 ../src/iop/atrous.c:1564 +#: ../src/iop/atrous.c:1627 ../src/iop/atrous.c:1685 msgid "boost" msgstr "Korosta" -#: ../src/iop/atrous.c:1514 +#: ../src/iop/atrous.c:1628 msgid "reduce" msgstr "Vähennä" -#: ../src/iop/atrous.c:1515 +#: ../src/iop/atrous.c:1629 msgid "raise" msgstr "Korota" -#: ../src/iop/atrous.c:1516 +#: ../src/iop/atrous.c:1630 msgid "lower" msgstr "Matalampi" -#: ../src/iop/atrous.c:1523 +#: ../src/iop/atrous.c:1637 msgid "coarsest" msgstr "Karkein" -#: ../src/iop/atrous.c:1524 +#: ../src/iop/atrous.c:1638 msgid "coarser" msgstr "Karkeaampi" -#: ../src/iop/atrous.c:1527 +#: ../src/iop/atrous.c:1641 msgid "finer" msgstr "Hienompi" -#: ../src/iop/atrous.c:1528 +#: ../src/iop/atrous.c:1642 msgid "finest" msgstr "Hienoin" -#: ../src/iop/atrous.c:1586 ../src/libs/export.c:1143 ../src/libs/export.c:1158 +#: ../src/iop/atrous.c:1710 ../src/libs/export.c:1239 ../src/libs/export.c:1255 msgid "x" msgstr "X" -#: ../src/iop/atrous.c:1666 ../src/iop/nlmeans.c:465 +#: ../src/iop/atrous.c:1799 ../src/iop/nlmeans.c:468 msgid "luma" msgstr "Luma" -#: ../src/iop/atrous.c:1666 +#: ../src/iop/atrous.c:1800 msgid "change lightness at each feature size" msgstr "Muuta kaikenkokoisten yksityiskohtien vaaleutta." -#: ../src/iop/atrous.c:1667 +#: ../src/iop/atrous.c:1802 msgid "change color saturation at each feature size" msgstr "Muuta värikylläisyyttä kaiken kokoisille yksityiskohdille" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1804 msgid "edges" msgstr "Reunat" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1805 msgid "" "change edge halos at each feature size\n" "only changes results of luma and chroma tabs" @@ -12557,97 +13071,97 @@ "Muuta kaikenkokoisten yksityiskohtien reunahaloja.\n" "Vaikuttaa ainoastaan luma- ja kroma-välilehtien tuloksiin." -#: ../src/iop/atrous.c:1679 ../src/iop/colorbalancergb.c:2058 -#: ../src/iop/colorzones.c:2473 ../src/iop/denoiseprofile.c:3743 -#: ../src/iop/filmicrgb.c:4407 ../src/iop/lowlight.c:823 -#: ../src/iop/rawdenoise.c:919 ../src/iop/toneequal.c:3371 +#: ../src/iop/atrous.c:1818 ../src/iop/colorbalancergb.c:2129 +#: ../src/iop/colorzones.c:2732 ../src/iop/denoiseprofile.c:3747 +#: ../src/iop/filmicrgb.c:4471 ../src/iop/lowlight.c:821 +#: ../src/iop/rawdenoise.c:935 ../src/iop/toneequal.c:3424 msgid "graph" msgstr "Graafi" -#: ../src/iop/atrous.c:1690 ../src/iop/colorzones.c:2470 +#: ../src/iop/atrous.c:1836 ../src/iop/colorzones.c:2729 msgid "make effect stronger or weaker" msgstr "Voimista tai heikennä tehostetta." -#: ../src/iop/basecurve.c:213 +#: ../src/iop/basecurve.c:260 msgid "neutral" msgstr "Neutraali" -#: ../src/iop/basecurve.c:214 +#: ../src/iop/basecurve.c:261 msgid "canon eos like" msgstr "Canon EOS kaltainen" -#: ../src/iop/basecurve.c:215 +#: ../src/iop/basecurve.c:262 msgid "canon eos like alternate" msgstr "Canon EOS kaltaisen vaihtoehto" -#: ../src/iop/basecurve.c:216 +#: ../src/iop/basecurve.c:263 msgid "nikon like" msgstr "Nikonin kaltainen" -#: ../src/iop/basecurve.c:217 +#: ../src/iop/basecurve.c:264 msgid "nikon like alternate" msgstr "Nikonin kaltaisen vaihtoehto" -#: ../src/iop/basecurve.c:218 +#: ../src/iop/basecurve.c:265 msgid "sony alpha like" msgstr "Sony Alphan kaltainen" -#: ../src/iop/basecurve.c:219 +#: ../src/iop/basecurve.c:266 msgid "pentax like" msgstr "Pentaxin kaltainen" -#: ../src/iop/basecurve.c:220 +#: ../src/iop/basecurve.c:267 msgid "ricoh like" msgstr "Ricohin kaltainen" -#: ../src/iop/basecurve.c:221 +#: ../src/iop/basecurve.c:268 msgid "olympus like" msgstr "Olympuksen kaltainen" -#: ../src/iop/basecurve.c:222 +#: ../src/iop/basecurve.c:269 msgid "olympus like alternate" msgstr "Olympuksen kaltaisen vaihtoehto" -#: ../src/iop/basecurve.c:223 +#: ../src/iop/basecurve.c:270 msgid "panasonic like" msgstr "Panasonicin kaltainen" -#: ../src/iop/basecurve.c:224 +#: ../src/iop/basecurve.c:271 msgid "leica like" msgstr "Leican kaltainen" -#: ../src/iop/basecurve.c:225 +#: ../src/iop/basecurve.c:272 msgid "kodak easyshare like" msgstr "Kodak Easysharen kaltainen" -#: ../src/iop/basecurve.c:226 +#: ../src/iop/basecurve.c:273 msgid "konica minolta like" msgstr "Konica-Minoltan kaltainen" -#: ../src/iop/basecurve.c:227 +#: ../src/iop/basecurve.c:274 msgid "samsung like" msgstr "Samsungin kaltainen" -#: ../src/iop/basecurve.c:228 +#: ../src/iop/basecurve.c:275 msgid "fujifilm like" msgstr "Fujifilmin kaltainen" -#: ../src/iop/basecurve.c:229 +#: ../src/iop/basecurve.c:276 msgid "nokia like" msgstr "Nokian kaltainen" #. clang-format off #. smoother cubic spline curve -#: ../src/iop/basecurve.c:284 ../src/iop/colorzones.c:2495 -#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1173 +#: ../src/iop/basecurve.c:331 ../src/iop/colorzones.c:2763 +#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1195 msgid "cubic spline" msgstr "Kuutiosplini" -#: ../src/iop/basecurve.c:343 +#: ../src/iop/basecurve.c:390 msgid "base curve" msgstr "Perussävykäyrä" -#: ../src/iop/basecurve.c:350 +#: ../src/iop/basecurve.c:397 msgid "" "apply a view transform based on personal or camera manufacturer look,\n" "for corrective purposes, to prepare images for display" @@ -12657,65 +13171,65 @@ "Tarkoitettu korjaaviin toimenpiteisiin tai kuvan valmistamiseen näyttöä " "varten" -#: ../src/iop/basecurve.c:352 ../src/iop/cacorrect.c:78 -#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:135 -#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:727 +#: ../src/iop/basecurve.c:399 ../src/iop/cacorrect.c:84 +#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:120 +#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:779 #: ../src/iop/flip.c:110 ../src/iop/hazeremoval.c:112 -#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:73 -#: ../src/iop/invert.c:119 ../src/iop/lens.cc:243 ../src/iop/nlmeans.c:95 -#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:130 -#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:94 ../src/iop/spots.c:69 -#: ../src/iop/temperature.c:212 +#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:75 +#: ../src/iop/invert.c:136 ../src/iop/lens.cc:262 ../src/iop/nlmeans.c:89 +#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:144 +#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:96 ../src/iop/spots.c:69 +#: ../src/iop/temperature.c:220 msgid "corrective" msgstr "Korjaava" -#: ../src/iop/basecurve.c:353 ../src/iop/channelmixer.c:140 -#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:142 +#: ../src/iop/basecurve.c:400 ../src/iop/channelmixer.c:140 +#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:143 #: ../src/iop/negadoctor.c:147 ../src/iop/profile_gamma.c:103 -#: ../src/iop/rgbcurve.c:144 ../src/iop/rgbcurve.c:146 -#: ../src/iop/rgblevels.c:124 ../src/iop/sigmoid.c:105 ../src/iop/soften.c:102 -#: ../src/iop/soften.c:104 +#: ../src/iop/rgbcurve.c:146 ../src/iop/rgbcurve.c:148 +#: ../src/iop/rgblevels.c:126 ../src/iop/sigmoid.c:210 ../src/iop/soften.c:104 +#: ../src/iop/soften.c:106 msgid "linear, RGB, display-referred" msgstr "Suoralinjainen, RGB, Näyttö-viitattu" -#: ../src/iop/basecurve.c:354 ../src/iop/basicadj.c:149 -#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:187 +#: ../src/iop/basecurve.c:401 ../src/iop/basicadj.c:175 +#: ../src/iop/colorbalance.c:165 ../src/iop/colorbalancergb.c:187 #: ../src/iop/dither.c:121 ../src/iop/filmicrgb.c:354 #: ../src/iop/graduatednd.c:148 ../src/iop/negadoctor.c:148 -#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:145 -#: ../src/iop/rgblevels.c:125 ../src/iop/sigmoid.c:104 -#: ../src/iop/vignette.c:161 ../src/iop/watermark.c:379 +#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:147 +#: ../src/iop/rgblevels.c:127 ../src/iop/sigmoid.c:210 +#: ../src/iop/vignette.c:122 ../src/iop/watermark.c:424 msgid "non-linear, RGB" msgstr "Epälineaarinen, RGB" -#: ../src/iop/basecurve.c:355 ../src/iop/dither.c:120 ../src/iop/dither.c:122 +#: ../src/iop/basecurve.c:402 ../src/iop/dither.c:120 ../src/iop/dither.c:122 #: ../src/iop/filmicrgb.c:355 ../src/iop/graduatednd.c:149 #: ../src/iop/negadoctor.c:149 ../src/iop/profile_gamma.c:105 -#: ../src/iop/rgblevels.c:126 ../src/iop/vignette.c:160 -#: ../src/iop/vignette.c:162 ../src/iop/watermark.c:378 -#: ../src/iop/watermark.c:380 +#: ../src/iop/rgblevels.c:128 ../src/iop/vignette.c:121 +#: ../src/iop/vignette.c:123 ../src/iop/watermark.c:423 +#: ../src/iop/watermark.c:425 msgid "non-linear, RGB, display-referred" msgstr "Epälineaarinen, RGB, Näyttö-viitattu" -#: ../src/iop/basecurve.c:2184 +#: ../src/iop/basecurve.c:2205 msgid "abscissa: input, ordinate: output. works on RGB channels" msgstr "Vaaka-akseli: sisään, pystyakseli: ulos. Suoritetaan RGB-kanaville." -#: ../src/iop/basecurve.c:2190 ../src/iop/basicadj.c:612 -#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1072 -#: ../src/iop/tonecurve.c:1184 +#: ../src/iop/basecurve.c:2211 ../src/iop/basicadj.c:642 +#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1133 +#: ../src/iop/tonecurve.c:1206 msgid "method to preserve colors when applying contrast" msgstr "Kontrastin lisäyksessä käytettävä värin säilytyksen menetelmä." -#: ../src/iop/basecurve.c:2194 +#: ../src/iop/basecurve.c:2215 msgid "two exposures" msgstr "Kaksi valotusta" -#: ../src/iop/basecurve.c:2195 +#: ../src/iop/basecurve.c:2216 msgid "three exposures" msgstr "Kolme valotusta" -#: ../src/iop/basecurve.c:2196 +#: ../src/iop/basecurve.c:2217 msgid "" "fuse this image stopped up/down a couple of times with itself, to compress " "high dynamic range. expose for the highlights before use." @@ -12724,11 +13238,11 @@ "kerran yli- ja alivalotettuna. Kuvatessa kannattaa valottaa huippuvalojen " "mukaan." -#: ../src/iop/basecurve.c:2201 +#: ../src/iop/basecurve.c:2222 msgid "how many stops to shift the individual exposures apart" msgstr "Haarukoitujen kuvien valotusero." -#: ../src/iop/basecurve.c:2210 +#: ../src/iop/basecurve.c:2231 msgid "" "whether to shift exposure up or down (-1: reduce highlight, +1: reduce " "shadows)" @@ -12736,42 +13250,41 @@ "Siirretäänkö valotusta ylös vai alas (-1: vähentää huippuvaloja, +1: " "vähentää varjoja)." -#: ../src/iop/basecurve.c:2215 ../src/iop/tonecurve.c:1187 +#: ../src/iop/basecurve.c:2236 ../src/iop/tonecurve.c:1209 msgid "scale for graph" msgstr "Graafin asteikko" -#: ../src/iop/basicadj.c:136 +#: ../src/iop/basicadj.c:162 msgid "this module is deprecated. please use the quick access panel instead." msgstr "" "Tämä moduuli on vanhentunut. Kannattaa käyttää pikavalintapaneelia tämän " "sijaan." -#: ../src/iop/basicadj.c:141 +#: ../src/iop/basicadj.c:167 msgid "basic adjustments" msgstr "Perussäädöt" -#: ../src/iop/basicadj.c:146 +#: ../src/iop/basicadj.c:172 msgid "apply usual image adjustments" msgstr "Yleiset kuvan säädöt" -#: ../src/iop/basicadj.c:147 ../src/iop/bilat.c:102 ../src/iop/bloom.c:81 -#: ../src/iop/blurs.c:93 ../src/iop/borders.c:198 ../src/iop/censorize.c:83 -#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:97 -#: ../src/iop/colorize.c:105 ../src/iop/colormapping.c:153 -#: ../src/iop/colorzones.c:145 ../src/iop/grain.c:434 ../src/iop/highpass.c:78 -#: ../src/iop/levels.c:138 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 -#: ../src/iop/lowpass.c:134 ../src/iop/monochrome.c:98 ../src/iop/soften.c:101 -#: ../src/iop/splittoning.c:103 ../src/iop/velvia.c:105 -#: ../src/iop/vibrance.c:95 ../src/iop/vignette.c:159 -#: ../src/iop/watermark.c:377 +#: ../src/iop/basicadj.c:173 ../src/iop/bilat.c:83 ../src/iop/bloom.c:81 +#: ../src/iop/blurs.c:93 ../src/iop/borders.c:323 ../src/iop/censorize.c:83 +#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:89 +#: ../src/iop/colorize.c:98 ../src/iop/colormapping.c:153 +#: ../src/iop/colorzones.c:146 ../src/iop/grain.c:450 ../src/iop/highpass.c:78 +#: ../src/iop/levels.c:140 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 +#: ../src/iop/lowpass.c:106 ../src/iop/monochrome.c:100 ../src/iop/soften.c:103 +#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:98 ../src/iop/vibrance.c:97 +#: ../src/iop/vignette.c:120 ../src/iop/watermark.c:422 msgid "creative" msgstr "Luova" -#: ../src/iop/basicadj.c:150 ../src/iop/colorbalancergb.c:188 +#: ../src/iop/basicadj.c:176 ../src/iop/colorbalancergb.c:188 msgid "non-linear, RGB, scene-referred" msgstr "Epälineaarinen, RGB, Näkymä-viitattu" -#: ../src/iop/basicadj.c:593 +#: ../src/iop/basicadj.c:623 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -12783,39 +13296,39 @@ "Huonoilla arvoilla leikataan mustan lähellä oleva värit\n" "sävyasteikon ulkopuolelle siirtämällä RGB-arvot negatiivisiksi." -#: ../src/iop/basicadj.c:601 ../src/iop/exposure.c:1118 +#: ../src/iop/basicadj.c:631 ../src/iop/exposure.c:1136 msgid "adjust the exposure correction" msgstr "Säädä valotuksen korjausta." -#: ../src/iop/basicadj.c:605 +#: ../src/iop/basicadj.c:635 msgid "highlight compression adjustment" msgstr "Huippuvalojen palautuksen säätö." -#: ../src/iop/basicadj.c:609 ../src/iop/colisa.c:308 +#: ../src/iop/basicadj.c:639 ../src/iop/colisa.c:302 msgid "contrast adjustment" msgstr "Kontrastin säätö." -#: ../src/iop/basicadj.c:617 +#: ../src/iop/basicadj.c:647 msgid "middle gray adjustment" msgstr "Keskiharmaan säätö." -#: ../src/iop/basicadj.c:622 ../src/iop/colisa.c:309 +#: ../src/iop/basicadj.c:652 ../src/iop/colisa.c:303 msgid "brightness adjustment" msgstr "Kirkkauden säätö." -#: ../src/iop/basicadj.c:625 +#: ../src/iop/basicadj.c:655 msgid "saturation adjustment" msgstr "Värikylläisyyden säätö." -#: ../src/iop/basicadj.c:628 +#: ../src/iop/basicadj.c:658 msgid "vibrance adjustment" msgstr "Värikirkkauden säätö." -#: ../src/iop/basicadj.c:632 +#: ../src/iop/basicadj.c:662 msgid "apply auto exposure based on the entire image" msgstr "Aseta valotus automaattisesti perustuen koko kuvan alaan." -#: ../src/iop/basicadj.c:639 +#: ../src/iop/basicadj.c:669 msgid "" "apply auto exposure based on a region defined by the user\n" "click and drag to draw the area\n" @@ -12825,52 +13338,52 @@ "Napsauta ja raahaa piirtääksesi alueen.\n" "Oikea napsaus peruuttaa asetuksen." -#: ../src/iop/basicadj.c:647 +#: ../src/iop/basicadj.c:677 msgid "clip" msgstr "Leikkaus" -#: ../src/iop/basicadj.c:649 +#: ../src/iop/basicadj.c:679 msgid "adjusts clipping value for auto exposure calculation" msgstr "" "Säädä automaattisen valotuksen laskennassa käytettävää leikkauksen arvoa." #. local contrast -#: ../src/iop/bilat.c:96 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:551 +#: ../src/iop/bilat.c:77 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:578 msgid "local contrast" msgstr "Paikallinen kontrasti" -#: ../src/iop/bilat.c:101 +#: ../src/iop/bilat.c:82 msgid "manipulate local and global contrast separately" msgstr "Muuta kuvan paikallista ja yleistä kontrastia erikseen" -#: ../src/iop/bilat.c:103 ../src/iop/bilat.c:105 ../src/iop/bloom.c:82 +#: ../src/iop/bilat.c:84 ../src/iop/bilat.c:86 ../src/iop/bloom.c:82 #: ../src/iop/bloom.c:84 ../src/iop/colisa.c:91 ../src/iop/colisa.c:93 -#: ../src/iop/colorcontrast.c:98 ../src/iop/colorcontrast.c:100 +#: ../src/iop/colorcontrast.c:90 ../src/iop/colorcontrast.c:92 #: ../src/iop/colorcorrection.c:78 ../src/iop/colorcorrection.c:80 -#: ../src/iop/colorize.c:108 ../src/iop/colormapping.c:156 -#: ../src/iop/colorreconstruction.c:138 ../src/iop/colorzones.c:148 -#: ../src/iop/defringe.c:85 ../src/iop/grain.c:435 ../src/iop/grain.c:437 -#: ../src/iop/levels.c:141 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 -#: ../src/iop/monochrome.c:101 ../src/iop/nlmeans.c:96 ../src/iop/nlmeans.c:98 -#: ../src/iop/shadhi.c:200 ../src/iop/tonecurve.c:214 ../src/iop/vibrance.c:98 +#: ../src/iop/colorize.c:101 ../src/iop/colormapping.c:156 +#: ../src/iop/colorreconstruction.c:123 ../src/iop/colorzones.c:149 +#: ../src/iop/defringe.c:85 ../src/iop/grain.c:451 ../src/iop/grain.c:453 +#: ../src/iop/levels.c:143 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 +#: ../src/iop/monochrome.c:103 ../src/iop/nlmeans.c:90 ../src/iop/nlmeans.c:92 +#: ../src/iop/shadhi.c:147 ../src/iop/tonecurve.c:187 ../src/iop/vibrance.c:100 msgid "non-linear, Lab, display-referred" msgstr "Epälineaarinen, Lab, Näyttö-viitattu" -#: ../src/iop/bilat.c:104 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 -#: ../src/iop/colorcontrast.c:99 ../src/iop/colorcorrection.c:79 -#: ../src/iop/colorize.c:107 ../src/iop/colormapping.c:155 -#: ../src/iop/colorreconstruction.c:137 ../src/iop/colorzones.c:147 -#: ../src/iop/defringe.c:84 ../src/iop/grain.c:436 ../src/iop/levels.c:140 -#: ../src/iop/monochrome.c:100 ../src/iop/nlmeans.c:97 ../src/iop/shadhi.c:199 -#: ../src/iop/tonecurve.c:213 ../src/iop/vibrance.c:97 +#: ../src/iop/bilat.c:85 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 +#: ../src/iop/colorcontrast.c:91 ../src/iop/colorcorrection.c:79 +#: ../src/iop/colorize.c:100 ../src/iop/colormapping.c:155 +#: ../src/iop/colorreconstruction.c:122 ../src/iop/colorzones.c:148 +#: ../src/iop/defringe.c:84 ../src/iop/grain.c:452 ../src/iop/levels.c:142 +#: ../src/iop/monochrome.c:102 ../src/iop/nlmeans.c:91 ../src/iop/shadhi.c:146 +#: ../src/iop/tonecurve.c:186 ../src/iop/vibrance.c:99 msgid "non-linear, Lab" msgstr "Epälineaarinen, Lab" -#: ../src/iop/bilat.c:178 +#: ../src/iop/bilat.c:195 msgid "HDR local tone-mapping" msgstr "HDR paikallinen sävykartoitus" -#: ../src/iop/bilat.c:431 +#: ../src/iop/bilat.c:441 msgid "" "the filter used for local contrast enhancement. bilateral is faster but can " "lead to artifacts around edges for extreme settings." @@ -12878,35 +13391,35 @@ "Paikallista kontrastia kohentava suodin. Kaksipuolinen suodatus on nopeampi, " "mutta se voi aiheuttaa ääriasetuksilla häiriöitä reunoissa." -#: ../src/iop/bilat.c:435 ../src/iop/globaltonemap.c:635 +#: ../src/iop/bilat.c:445 ../src/iop/globaltonemap.c:668 msgid "detail" msgstr "Yksityiskohdat" -#: ../src/iop/bilat.c:438 +#: ../src/iop/bilat.c:448 msgid "changes the local contrast" msgstr "Muuttaa paikallista kontrastia." -#: ../src/iop/bilat.c:453 +#: ../src/iop/bilat.c:463 msgid "feature size of local details (spatial sigma of bilateral filter)" msgstr "" "Korostettavien yksityiskohtien koko (kaksipuolisen suotimen avaruudellinen " "keskihajonta)." -#: ../src/iop/bilat.c:461 +#: ../src/iop/bilat.c:471 msgid "L difference to detect edges (range sigma of bilateral filter)" msgstr "" "Reunantunnistukseen käytettävä ero L-kanavassa (kaksipuolisen suotimen " "etäisyyden keskihajonta)" -#: ../src/iop/bilat.c:467 +#: ../src/iop/bilat.c:477 msgid "changes the local contrast of highlights" msgstr "Muuttaa huippuvalojen paikallista kontrastia." -#: ../src/iop/bilat.c:473 +#: ../src/iop/bilat.c:483 msgid "changes the local contrast of shadows" msgstr "Muuttaa varjojen paikallista kontrastia." -#: ../src/iop/bilat.c:479 +#: ../src/iop/bilat.c:489 msgid "" "defines what counts as mid-tones. lower for better dynamic range compression " "(reduce shadow and highlight contrast), increase for more powerful local " @@ -12916,7 +13429,7 @@ "alueen litistystä (vähentää varjojen ja huippuvalojen kontrastia). Suurempi " "arvo tarkoittaa suurempaa paikallista kontrastia." -#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:396 +#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:423 msgid "surface blur" msgstr "Pinnan sumennus" @@ -12924,24 +13437,24 @@ msgid "denoise (bilateral filter)" msgstr "Kohinanpoisto (kaksipuolinen suodin)" -#: ../src/iop/bilateral.cc:99 +#: ../src/iop/bilateral.cc:101 msgid "apply edge-aware surface blur to denoise or smoothen textures" msgstr "" "Käytä reunat tunnistavaa pintojen sumennusta kohinan tai tekstuurin " "tasoitukseen" -#: ../src/iop/bilateral.cc:102 ../src/iop/blurs.c:93 -#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:729 -#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/soften.c:103 -#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:107 +#: ../src/iop/bilateral.cc:104 ../src/iop/blurs.c:93 +#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:781 +#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/primaries.c:82 +#: ../src/iop/soften.c:105 ../src/iop/splittoning.c:107 ../src/iop/velvia.c:100 msgid "linear, RGB" msgstr "Suoralinjainen, RGB" -#: ../src/iop/bilateral.cc:136 +#: ../src/iop/bilateral.cc:138 msgid "image too large" msgstr "Liian suuri kuva" -#: ../src/iop/bilateral.cc:137 +#: ../src/iop/bilateral.cc:139 msgid "" "this module is unable to process\n" "images with more than 2 gigapixels.\n" @@ -12951,19 +13464,19 @@ "yli 2 gigapikselin kuvia. Käsittely\n" "on ohitettu." -#: ../src/iop/bilateral.cc:351 +#: ../src/iop/bilateral.cc:353 msgid "spatial extent of the gaussian" msgstr "Gauss-sumennuksen alueellinen kattavuus." -#: ../src/iop/bilateral.cc:355 +#: ../src/iop/bilateral.cc:357 msgid "how much to blur red" msgstr "Punaisen sumennuksen määrä." -#: ../src/iop/bilateral.cc:360 +#: ../src/iop/bilateral.cc:362 msgid "how much to blur green" msgstr "Vihreän sumennuksen määrä." -#: ../src/iop/bilateral.cc:365 +#: ../src/iop/bilateral.cc:367 msgid "how much to blur blue" msgstr "Sinisen sumennuksen määrä." @@ -12971,20 +13484,20 @@ msgid "apply Orton effect for a dreamy aetherical look" msgstr "Lisää Orton-tehoste unisen ja eteerisen kuvan luomiseksi" -#: ../src/iop/bloom.c:368 ../src/iop/soften.c:369 ../src/libs/camera.c:567 -#: ../src/libs/masks.c:105 +#: ../src/iop/bloom.c:364 ../src/iop/soften.c:364 ../src/libs/camera.c:567 +#: ../src/libs/masks.c:106 msgid "size" msgstr "Koko" -#: ../src/iop/bloom.c:370 +#: ../src/iop/bloom.c:366 msgid "the size of bloom" msgstr "Hehkun koko." -#: ../src/iop/bloom.c:374 +#: ../src/iop/bloom.c:370 msgid "the threshold of light" msgstr "Kirkkauden kynnysarvo." -#: ../src/iop/bloom.c:378 +#: ../src/iop/bloom.c:374 msgid "the strength of bloom" msgstr "Hehkun voimakkuus." @@ -13000,268 +13513,275 @@ msgid "simulate physically-accurate lens and motion blurs" msgstr "Simuloi fyysisesti tarkan linssin ja liikkeen sumennusta" -#: ../src/iop/borders.c:187 +#: ../src/iop/borders.c:312 msgid "framing" msgstr "Kehys" -#: ../src/iop/borders.c:192 +#: ../src/iop/borders.c:317 msgid "borders|enlarge canvas|expand canvas" msgstr "Rajat|Suurenna kanvaasia|Laajenna kanvaasia" -#: ../src/iop/borders.c:197 +#: ../src/iop/borders.c:322 msgid "add solid borders or margins around the picture" msgstr "Lisää kuvaan kiinteät reunat tai marginaalit" -#: ../src/iop/borders.c:199 ../src/iop/borders.c:201 ../src/iop/lut3d.c:144 +#: ../src/iop/borders.c:324 ../src/iop/borders.c:326 ../src/iop/lut3d.c:145 msgid "linear or non-linear, RGB, display-referred" msgstr "Suoralinjainen tai epälineaarinen, RGB, Näyttö-viitattu" -#: ../src/iop/borders.c:727 +#: ../src/iop/borders.c:737 msgid "15:10 postcard white" msgstr "15:10 postikortin valkoinen" -#: ../src/iop/borders.c:732 +#: ../src/iop/borders.c:742 msgid "15:10 postcard black" msgstr "15:10 postikortin musta" -#: ../src/iop/borders.c:942 -msgid "size of the border in percent of the full image" -msgstr "Kehyksen prosentuaalinen koko suhteessa kuvan kokoon." +#: ../src/iop/borders.c:948 +msgid "which dimension to use for the size calculation" +msgstr "Koon laskennassa käytettävä ulottuvuus." + +#: ../src/iop/borders.c:954 +msgid "size of the border in percent of the chosen basis" +msgstr "Kehyksen prosentuaalinen koko suhteessa valittuun perustaan." -#: ../src/iop/borders.c:944 ../src/iop/clipping.c:2218 ../src/iop/crop.c:1224 +#: ../src/iop/borders.c:956 ../src/iop/clipping.c:2271 ../src/iop/crop.c:1208 msgid "aspect" msgstr "Kuvasuhde" -#: ../src/iop/borders.c:945 +#: ../src/iop/borders.c:957 msgid "" -"select the aspect ratio (right click on slider below to type your own w:h)" +"select the aspect ratio\n" +"(right click on slider below to type your own w:h)" msgstr "" -"Valitse kuvasuhde (napsauta hiiren oikealla napilla liukusäädintä ja syötä " -"oma l:k)." +"Valitse kuvasuhde\n" +"(napsauta hiiren oikealla napilla liukusäädintä ja syötä oma l:k)." -#: ../src/iop/borders.c:948 +#: ../src/iop/borders.c:961 msgid "3:1" msgstr "3:1" -#: ../src/iop/borders.c:949 +#: ../src/iop/borders.c:962 msgid "95:33" msgstr "95:33" -#: ../src/iop/borders.c:950 +#: ../src/iop/borders.c:963 msgid "CinemaScope 2.39:1" msgstr "CinemaScope 2.39:1" -#: ../src/iop/borders.c:951 +#: ../src/iop/borders.c:964 msgid "2:1" msgstr "2:1" -#: ../src/iop/borders.c:952 +#: ../src/iop/borders.c:965 msgid "16:9" msgstr "16:9" -#: ../src/iop/borders.c:953 +#: ../src/iop/borders.c:966 msgid "5:3" msgstr "5:3" -#: ../src/iop/borders.c:954 +#: ../src/iop/borders.c:967 msgid "US Legal 8.5x14" msgstr "US Legal 8.5x14" -#: ../src/iop/borders.c:955 ../src/iop/clipping.c:2131 ../src/iop/crop.c:1128 +#: ../src/iop/borders.c:968 ../src/iop/clipping.c:2184 ../src/iop/crop.c:1112 msgid "golden cut" msgstr "Kultainen leikkaus" -#: ../src/iop/borders.c:956 +#: ../src/iop/borders.c:969 msgid "16:10" msgstr "16:10" -#: ../src/iop/borders.c:957 +#: ../src/iop/borders.c:970 msgid "3:2 (4x6, 10x15cm)" msgstr "3:2 (4x6, 10x15cm)" -#: ../src/iop/borders.c:959 +#: ../src/iop/borders.c:972 msgid "DIN" msgstr "DIN" -#: ../src/iop/borders.c:960 +#: ../src/iop/borders.c:973 msgid "7:5" msgstr "7:5" -#: ../src/iop/borders.c:961 +#: ../src/iop/borders.c:974 msgid "4:3" msgstr "4:3" -#: ../src/iop/borders.c:962 +#: ../src/iop/borders.c:975 msgid "US Letter 8.5x11" msgstr "US Letter 8.5x11" -#: ../src/iop/borders.c:963 +#: ../src/iop/borders.c:976 msgid "14:11" msgstr "14:11" -#: ../src/iop/borders.c:964 +#: ../src/iop/borders.c:977 msgid "5:4 (8x10)" msgstr "5:4 (8x10)" -#: ../src/iop/borders.c:965 ../src/iop/clipping.c:2121 ../src/iop/crop.c:1118 -#: ../src/libs/filtering.c:301 ../src/libs/filters/ratio.c:126 -#: ../src/libs/histogram.c:141 +#: ../src/iop/borders.c:978 ../src/iop/clipping.c:2174 ../src/iop/crop.c:1102 +#: ../src/libs/filtering.c:307 ../src/libs/filters/ratio.c:126 +#: ../src/libs/histogram.c:118 msgid "square" msgstr "Neliö" -#: ../src/iop/borders.c:966 +#: ../src/iop/borders.c:979 msgid "constant border" msgstr "Tasainen reuna" -#: ../src/iop/borders.c:967 ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:980 ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "custom..." msgstr "Mukautettu..." -#: ../src/iop/borders.c:972 -msgid "set the custom aspect ratio (right click to enter number or w:h)" +#: ../src/iop/borders.c:984 +msgid "" +"set the custom aspect ratio\n" +"(right click to enter number or w:h)" msgstr "" -"Aseta valinnainen kuvasuhde (napsauta hiiren oikealla napilla ja syötä oma " -"numero tai l:k)." +"Aseta valinnainen kuvasuhde\n" +"(napsauta hiiren oikealla napilla ja syötä oma numero tai l:k)." -#: ../src/iop/borders.c:975 +#: ../src/iop/borders.c:989 msgid "aspect ratio orientation of the image with border" msgstr "Kehyksellisten kuvien kuvasuhteen suunta." -#: ../src/iop/borders.c:977 +#: ../src/iop/borders.c:991 msgid "horizontal position" msgstr "Vaakasuuntainen sijainti" -#: ../src/iop/borders.c:978 +#: ../src/iop/borders.c:992 msgid "" -"select the horizontal position ratio relative to top or right click and type " -"your own (y:h)" +"select the horizontal position ratio relative to top\n" +"(right click on slider below to type your own x:w)" msgstr "" -"Valitse vaakasuuntainen sijainti suhteessa yläreunaan tai napsauta hiiren " -"oikealla napilla ja syötä oma (y:k)." +"Valitse vaakasuuntainen sijainti suhteessa yläreunaan\n" +"(napsauta hiiren oikealla napilla ja syötä oma x:l)." -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "center" msgstr "Keskikohta" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "1/3" msgstr "1/3" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "3/8" msgstr "3/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "5/8" msgstr "5/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "2/3" msgstr "2/3" -#: ../src/iop/borders.c:986 +#: ../src/iop/borders.c:1000 msgid "custom horizontal position" msgstr "Mukautettu vaakasuuntainen sijainti." -#: ../src/iop/borders.c:988 +#: ../src/iop/borders.c:1002 msgid "vertical position" msgstr "Pystysuuntainen sijainti" -#: ../src/iop/borders.c:989 +#: ../src/iop/borders.c:1003 msgid "" -"select the vertical position ratio relative to left or right click and type " -"your own (x:w)" +"select the vertical position ratio relative to left\n" +"(right click on slider below to type your own y:h)" msgstr "" -"Valitse pystysuuntainen sijainti suhteessa yläreunaan tai napsauta hiiren " -"oikealla napilla ja syötä oma (x:l)." +"Valitse pystysuuntainen sijainti suhteessa vasempaan reunaan\n" +"(napsauta hiiren oikealla napilla ja syötä oma y:l)." -#: ../src/iop/borders.c:997 +#: ../src/iop/borders.c:1011 msgid "custom vertical position" msgstr "Mukautettu pystysuuntainen sijainti" -#: ../src/iop/borders.c:1002 +#: ../src/iop/borders.c:1017 msgid "size of the frame line in percent of min border width" msgstr "Kehysviivan prosentuaalinen koko suhteessa reunan minimileveyteen." -#: ../src/iop/borders.c:1007 +#: ../src/iop/borders.c:1023 msgid "offset of the frame line beginning on picture side" msgstr "Kehysviivan siirto suhteessa kuvan reunaan." -#: ../src/iop/borders.c:1014 ../src/iop/borders.c:1023 +#: ../src/iop/borders.c:1033 ../src/iop/borders.c:1044 msgid "border color" msgstr "Kehyksen väri" -#: ../src/iop/borders.c:1018 +#: ../src/iop/borders.c:1037 msgid "select border color" msgstr "Valitse kehyksen väri" -#: ../src/iop/borders.c:1022 +#: ../src/iop/borders.c:1043 msgid "pick border color from image" msgstr "Valitse kehyksen väri kuvasta." -#: ../src/iop/borders.c:1023 ../src/iop/borders.c:1036 -#: ../src/iop/colorzones.c:2415 ../src/iop/colorzones.c:2425 -#: ../src/iop/negadoctor.c:848 ../src/iop/negadoctor.c:915 -#: ../src/iop/negadoctor.c:953 ../src/iop/rgbcurve.c:1369 -#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1026 -#: ../src/iop/rgblevels.c:1032 ../src/iop/rgblevels.c:1038 +#: ../src/iop/borders.c:1044 ../src/iop/borders.c:1061 +#: ../src/iop/colorzones.c:2662 ../src/iop/colorzones.c:2677 +#: ../src/iop/negadoctor.c:867 ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:972 ../src/iop/rgbcurve.c:1369 +#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1075 +#: ../src/iop/rgblevels.c:1083 ../src/iop/rgblevels.c:1091 msgid "pickers" msgstr "Valitsimet" -#: ../src/iop/borders.c:1027 ../src/iop/borders.c:1036 +#: ../src/iop/borders.c:1049 ../src/iop/borders.c:1061 msgid "frame line color" msgstr "Reunaviivan väri" -#: ../src/iop/borders.c:1031 +#: ../src/iop/borders.c:1054 msgid "select frame line color" msgstr "Valitse reunaviivan väri" -#: ../src/iop/borders.c:1035 +#: ../src/iop/borders.c:1060 msgid "pick frame line color from image" msgstr "Valitse kehysviivan väri kuvasta." #. make sure you put all your translatable strings into _() ! -#: ../src/iop/cacorrect.c:72 +#: ../src/iop/cacorrect.c:78 msgid "raw chromatic aberrations" msgstr "Raakakuvan värivirheet" -#: ../src/iop/cacorrect.c:77 +#: ../src/iop/cacorrect.c:83 msgid "correct chromatic aberrations for Bayer sensors" msgstr "Korjaa värivirheet Bayer-tyyppisiltä kuvakennoilta" -#: ../src/iop/cacorrect.c:79 ../src/iop/cacorrect.c:81 +#: ../src/iop/cacorrect.c:85 ../src/iop/cacorrect.c:87 #: ../src/iop/cacorrectrgb.c:171 ../src/iop/cacorrectrgb.c:173 #: ../src/iop/demosaic.c:294 ../src/iop/highlights.c:180 -#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:74 -#: ../src/iop/hotpixels.c:76 ../src/iop/rawdenoise.c:131 -#: ../src/iop/rawdenoise.c:133 ../src/iop/rawprepare.c:159 -#: ../src/iop/rawprepare.c:161 ../src/iop/temperature.c:213 -#: ../src/iop/temperature.c:215 +#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:76 +#: ../src/iop/hotpixels.c:78 ../src/iop/rawdenoise.c:145 +#: ../src/iop/rawdenoise.c:147 ../src/iop/rawprepare.c:175 +#: ../src/iop/rawprepare.c:177 ../src/iop/temperature.c:221 +#: ../src/iop/temperature.c:223 msgid "linear, raw, scene-referred" msgstr "Suoralinjainen, RAW, Näkymä-viitattu" -#: ../src/iop/cacorrect.c:80 ../src/iop/cacorrectrgb.c:172 -#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:121 -#: ../src/iop/rawdenoise.c:132 ../src/iop/rawprepare.c:160 -#: ../src/iop/temperature.c:214 +#: ../src/iop/cacorrect.c:86 ../src/iop/cacorrectrgb.c:172 +#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:138 +#: ../src/iop/rawdenoise.c:146 ../src/iop/rawprepare.c:176 +#: ../src/iop/temperature.c:222 msgid "linear, raw" msgstr "Suoralinjainen, RAW" -#: ../src/iop/cacorrect.c:1416 +#: ../src/iop/cacorrect.c:1424 msgid "iteration runs, default is twice" msgstr "Korjauskerrat, oletus on kahdesti." -#: ../src/iop/cacorrect.c:1419 +#: ../src/iop/cacorrect.c:1427 msgid "activate colorshift correction for blue & red channels" msgstr "Aktivoi värisiirtymän korjauksen siniselle ja punaiselle kanavalle." -#: ../src/iop/cacorrect.c:1426 +#: ../src/iop/cacorrect.c:1434 msgid "" "automatic chromatic aberration correction\n" -"only for Bayer raw files" +"only for Bayer raw files with 3 color channels" msgstr "" -"Automaattinen värivirheen korjaus toimii\n" -"ainoastaan Bayer-kennotyypin raakakuville." +"Automaattinen värivirheen korjaus toimii ainoastaan\n" +"3 värikanavaa sisältäville Bayer-kennotyypin raakakuville." #: ../src/iop/cacorrectrgb.c:164 ../src/iop/defringe.c:76 msgid "chromatic aberrations" @@ -13271,7 +13791,7 @@ msgid "correct chromatic aberrations" msgstr "Korjaa värivirheet" -#: ../src/iop/cacorrectrgb.c:743 +#: ../src/iop/cacorrectrgb.c:745 msgid "" "channel used as a reference to\n" "correct the other channels.\n" @@ -13287,11 +13807,11 @@ "Kokeile toista ohjauskanavaa,\n" "jos kuvaan tulee virheitä." -#: ../src/iop/cacorrectrgb.c:750 +#: ../src/iop/cacorrectrgb.c:752 msgid "increase for stronger correction" -msgstr "Kasvata arvoa korjauksen voimakkuuden lisäämiseksi" +msgstr "Kasvata arvoa korjauksen voimakkuuden lisäämiseksi." -#: ../src/iop/cacorrectrgb.c:752 +#: ../src/iop/cacorrectrgb.c:754 msgid "" "balance between smoothing colors\n" "and preserving them.\n" @@ -13303,12 +13823,12 @@ "Suuret arvot voivat johtaa ylikuvaamiseen\n" "ja reunojen vuotamiseen." -#: ../src/iop/cacorrectrgb.c:757 +#: ../src/iop/cacorrectrgb.c:759 msgctxt "section" msgid "advanced parameters" msgstr "Kehittyneet asetukset" -#: ../src/iop/cacorrectrgb.c:759 +#: ../src/iop/cacorrectrgb.c:761 msgid "" "correction mode to use.\n" "can help with multiple\n" @@ -13325,7 +13845,7 @@ "Tummennus on erityisen tehokas\n" "keino korjata sinisiä värivirheitä." -#: ../src/iop/cacorrectrgb.c:767 +#: ../src/iop/cacorrectrgb.c:769 msgid "" "runs an iterative approach\n" "with several radii.\n" @@ -13359,35 +13879,35 @@ msgid "special, RGB, scene-referred" msgstr "Erityinen, RGB, Näkymä-viitattu" -#: ../src/iop/censorize.c:412 +#: ../src/iop/censorize.c:404 msgid "radius_1" msgstr "Säde_1" -#: ../src/iop/censorize.c:414 +#: ../src/iop/censorize.c:406 msgid "pixelate" msgstr "Pikselöi" -#: ../src/iop/censorize.c:416 +#: ../src/iop/censorize.c:408 msgid "radius_2" msgstr "Säde_2" -#: ../src/iop/censorize.c:418 +#: ../src/iop/censorize.c:410 msgid "noise" msgstr "Kohina" -#: ../src/iop/censorize.c:420 +#: ../src/iop/censorize.c:412 msgid "radius of gaussian blur before pixellation" msgstr "Gauss-sumennuksen säde ennen pikselöintiä." -#: ../src/iop/censorize.c:421 +#: ../src/iop/censorize.c:413 msgid "radius of gaussian blur after pixellation" msgstr "Gauss-sumennuksen säde pikselöinnin jälkeen." -#: ../src/iop/censorize.c:422 +#: ../src/iop/censorize.c:414 msgid "radius of the intermediate pixellation" msgstr "Keskitason pikselöinnin säde." -#: ../src/iop/censorize.c:423 +#: ../src/iop/censorize.c:415 msgid "amount of noise to add at the end" msgstr "Lopussa lisättävän kohinan määrä." @@ -13402,7 +13922,7 @@ "Tämä moduuli on vanhentunut. Kannattaa käyttää värinkalibrointi-moduulia " "tämän sijaan." -#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:229 +#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:230 msgid "" "perform color space corrections\n" "such as white balance, channels mixing\n" @@ -13411,168 +13931,168 @@ "Suorita kuvan väriavaruuden korjauksia kuten valkotasapaino, kanavien " "sekoitus ja mustavalkoisen filmin emulointi" -#: ../src/iop/channelmixer.c:614 +#: ../src/iop/channelmixer.c:633 msgid "destination" msgstr "Kohde" -#: ../src/iop/channelmixer.c:621 +#: ../src/iop/channelmixer.c:640 msgctxt "channelmixer" msgid "gray" msgstr "Harmaasävy" -#: ../src/iop/channelmixer.c:627 +#: ../src/iop/channelmixer.c:646 msgid "amount of red channel in the output channel" msgstr "Punaisen värikanavan määrä antokanavassa." -#: ../src/iop/channelmixer.c:633 +#: ../src/iop/channelmixer.c:652 msgid "amount of green channel in the output channel" msgstr "Vihreän värikanavan määrä antokanavassa." -#: ../src/iop/channelmixer.c:639 +#: ../src/iop/channelmixer.c:658 msgid "amount of blue channel in the output channel" msgstr "Sinisen värikanavan määrä antokanavassa." -#: ../src/iop/channelmixer.c:655 ../src/iop/channelmixerrgb.c:524 +#: ../src/iop/channelmixer.c:674 ../src/iop/channelmixerrgb.c:588 msgid "swap R and B" msgstr "Vaihda punainen ja sininen värikanava" -#: ../src/iop/channelmixer.c:661 ../src/iop/channelmixerrgb.c:498 +#: ../src/iop/channelmixer.c:680 ../src/iop/channelmixerrgb.c:562 msgid "swap G and B" msgstr "Vaihda vihreä ja sininen värikanava" -#: ../src/iop/channelmixer.c:667 +#: ../src/iop/channelmixer.c:686 msgid "color contrast boost" msgstr "Värikontrastin korostus" -#: ../src/iop/channelmixer.c:673 +#: ../src/iop/channelmixer.c:692 msgid "color details boost" msgstr "Väriyksityiskohtien korostus" -#: ../src/iop/channelmixer.c:679 +#: ../src/iop/channelmixer.c:698 msgid "color artifacts boost" msgstr "Värihäiriöiden korostus" -#: ../src/iop/channelmixer.c:685 +#: ../src/iop/channelmixer.c:704 msgid "B/W luminance-based" msgstr "Mustavalkoinen kirkkaus-pohjainen" -#: ../src/iop/channelmixer.c:691 +#: ../src/iop/channelmixer.c:710 msgid "B/W artifacts boost" msgstr "Mustavalkoröpelöisyyden korostus" -#: ../src/iop/channelmixer.c:697 +#: ../src/iop/channelmixer.c:716 msgid "B/W smooth skin" msgstr "Mustavalkoinen ihonpehmennys" -#: ../src/iop/channelmixer.c:703 +#: ../src/iop/channelmixer.c:722 msgid "B/W blue artifacts reduce" msgstr "Mustavalkokuvien siniröpelöisyyden vähennys" -#: ../src/iop/channelmixer.c:710 +#: ../src/iop/channelmixer.c:729 msgid "B/W Ilford Delta 100-400" msgstr "Mustavalkoinen Ilford Delta 100-400" -#: ../src/iop/channelmixer.c:717 +#: ../src/iop/channelmixer.c:736 msgid "B/W Ilford Delta 3200" msgstr "Mustavalkoinen Ilford Delta 3200" -#: ../src/iop/channelmixer.c:724 +#: ../src/iop/channelmixer.c:743 msgid "B/W Ilford FP4" msgstr "Mustavalkoinen Ilford FP4" -#: ../src/iop/channelmixer.c:731 +#: ../src/iop/channelmixer.c:750 msgid "B/W Ilford HP5" msgstr "Mustavalkoinen Ilford HP5" -#: ../src/iop/channelmixer.c:738 +#: ../src/iop/channelmixer.c:757 msgid "B/W Ilford SFX" msgstr "Mustavalkoinen Ilford SFX" -#: ../src/iop/channelmixer.c:745 +#: ../src/iop/channelmixer.c:764 msgid "B/W Kodak T-Max 100" msgstr "Mustavalkoinen Kodak T-Max 100" -#: ../src/iop/channelmixer.c:752 +#: ../src/iop/channelmixer.c:771 msgid "B/W Kodak T-max 400" msgstr "Mustavalkoinen Kodak T-max 400" -#: ../src/iop/channelmixer.c:759 +#: ../src/iop/channelmixer.c:778 msgid "B/W Kodak Tri-X 400" msgstr "Mustavalkoinen Kodak Tri-X 400" -#: ../src/iop/channelmixerrgb.c:219 +#: ../src/iop/channelmixerrgb.c:220 msgid "color calibration" msgstr "Värinkalibrointi" -#: ../src/iop/channelmixerrgb.c:224 +#: ../src/iop/channelmixerrgb.c:225 msgid "channel mixer|white balance|monochrome" msgstr "Värikanavien sekoitin|Valkotasapaino|Mustavalkoinen" -#: ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:235 msgid "linear, RGB or XYZ" msgstr "Suoralinjainen, RGB tai XYZ" -#: ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:460 msgid "B&W: luminance-based" msgstr "Mustavalkoinen: kirkkaus-pohjainen" -#: ../src/iop/channelmixerrgb.c:431 +#: ../src/iop/channelmixerrgb.c:495 msgid "B&W: ILFORD HP5+" msgstr "Mustavalkoinen: ILFORD HP5+" -#: ../src/iop/channelmixerrgb.c:440 +#: ../src/iop/channelmixerrgb.c:504 msgid "B&W: ILFORD DELTA 100" msgstr "Mustavalkoinen: ILFORD DELTA 100" -#: ../src/iop/channelmixerrgb.c:450 +#: ../src/iop/channelmixerrgb.c:514 msgid "B&W: ILFORD DELTA 400 - 3200" msgstr "Mustavalkoinen: ILFORD DELTA 400 - 3200" -#: ../src/iop/channelmixerrgb.c:459 +#: ../src/iop/channelmixerrgb.c:523 msgid "B&W: ILFORD FP4+" msgstr "Mustavalkoinen: ILFORD FP4+" -#: ../src/iop/channelmixerrgb.c:468 +#: ../src/iop/channelmixerrgb.c:532 msgid "B&W: Fuji Acros 100" msgstr "Mustavalkoinen: Fuji Acros 100" -#: ../src/iop/channelmixerrgb.c:485 +#: ../src/iop/channelmixerrgb.c:549 msgid "basic channel mixer" msgstr "Normaali värikanavien sekoitin" -#: ../src/iop/channelmixerrgb.c:511 +#: ../src/iop/channelmixerrgb.c:575 msgid "swap G and R" msgstr "Vaihda vihreä ja punainen värikanava" -#: ../src/iop/channelmixerrgb.c:1869 +#: ../src/iop/channelmixerrgb.c:1926 msgid "(daylight)" msgstr "(päivänvalo)" -#: ../src/iop/channelmixerrgb.c:1871 +#: ../src/iop/channelmixerrgb.c:1928 msgid "(black body)" msgstr "(musta kappale)" -#: ../src/iop/channelmixerrgb.c:1873 +#: ../src/iop/channelmixerrgb.c:1930 msgid "(invalid)" msgstr "(epäkelpo)" -#: ../src/iop/channelmixerrgb.c:1877 ../src/iop/channelmixerrgb.c:1935 +#: ../src/iop/channelmixerrgb.c:1934 ../src/iop/channelmixerrgb.c:1992 msgid "very good" msgstr "Erittäin hyvä" -#: ../src/iop/channelmixerrgb.c:1879 ../src/iop/channelmixerrgb.c:1937 +#: ../src/iop/channelmixerrgb.c:1936 ../src/iop/channelmixerrgb.c:1994 msgid "good" msgstr "Hyvä" -#: ../src/iop/channelmixerrgb.c:1881 ../src/iop/channelmixerrgb.c:1939 +#: ../src/iop/channelmixerrgb.c:1938 ../src/iop/channelmixerrgb.c:1996 msgid "passable" msgstr "kelvollinen" -#: ../src/iop/channelmixerrgb.c:1883 ../src/iop/channelmixerrgb.c:1941 +#: ../src/iop/channelmixerrgb.c:1940 ../src/iop/channelmixerrgb.c:1998 msgid "bad" msgstr "huono" -#: ../src/iop/channelmixerrgb.c:1890 +#: ../src/iop/channelmixerrgb.c:1947 #, c-format msgid "" "\n" @@ -13609,7 +14129,7 @@ "valotuksen korjaus: \t%+.2f EV\n" "mustan poikkeama: \t%+.4f" -#: ../src/iop/channelmixerrgb.c:1946 +#: ../src/iop/channelmixerrgb.c:2003 #, c-format msgid "" "\n" @@ -13628,27 +14148,43 @@ "valotuksen korjaus: \t%+.2f EV\n" "mustan poikkeama: \t%+.4f" -#: ../src/iop/channelmixerrgb.c:1978 +#: ../src/iop/channelmixerrgb.c:2054 msgid "double CAT applied" msgstr "Kaksinkertainen CAT käytössä" -#: ../src/iop/channelmixerrgb.c:1979 +#: ../src/iop/channelmixerrgb.c:2055 msgid "" "you have 2 instances or more of color calibration,\n" -"all performing chromatic adaptation.\n" -"this can lead to inconsistencies, unless you\n" +"all providing chromatic adaptation.\n" +"this can lead to inconsistencies unless you\n" "use them with masks or know what you are doing." msgstr "" "Sinulla on kaksi tai useampia instansseja värinkalibroinnille.\n" -"Jokainen instanssi tekee värien sovituksen.\n" +"Jokainen instanssi tuottaa värien sovituksen.\n" "Tämä saattaa johtaa epäjohdonmukaiseen lopputulokseen,\n" "ellet käytä niitä maskien kanssa tai tiedä mitä olet tekemässä." -#: ../src/iop/channelmixerrgb.c:1991 +#: ../src/iop/channelmixerrgb.c:2071 +msgid "white balance applied twice" +msgstr "Valkotasapaino asetettu kahteen kertaan" + +#: ../src/iop/channelmixerrgb.c:2072 +msgid "" +"the color calibration module is enabled and already provides\n" +"chromatic adaptation.\n" +"set the white balance here to camera reference (D65)\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"Värinkalibrointi-moduuli on jo käytössä\n" +"ja se tekee värien sovituksen.\n" +"Aseta tässä valkotasapaino kameran viittaamaksi (D65)\n" +"tai poista värien sovitus käytöstä värikalibrointi-moduulissa." + +#: ../src/iop/channelmixerrgb.c:2080 msgid "white balance module error" msgstr "Valkotasapaino-moduulin virhe" -#: ../src/iop/channelmixerrgb.c:1992 +#: ../src/iop/channelmixerrgb.c:2081 msgid "" "the white balance module is not using the camera\n" "reference illuminant, which will cause issues here\n" @@ -13660,20 +14196,48 @@ "Muuta asetus viitearvoon tai ota värien sovitus pois\n" "käytöstä tässä." -#: ../src/iop/channelmixerrgb.c:2083 +#: ../src/iop/channelmixerrgb.c:2095 ../src/iop/channelmixerrgb.c:2104 +msgid "white balance missing" +msgstr "Valkotasapaino puuttuu" + +#: ../src/iop/channelmixerrgb.c:2096 +msgid "" +"this module is not providing a valid reference illuminant\n" +"causing chromatic adaptation issues in color calibration.\n" +"enable this module and either set it to reference\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"Tämä moduuli ei tuota kelvollista oletusvalaisua\n" +"aiheuttaen ongelmia värien sovitukselle.\n" +"Ota tämä moduuli käyttöön ja aseta se joko oletukselle\n" +"tai poista värien sovitus käytöstä värinkalibrointi-moduulissa." + +#: ../src/iop/channelmixerrgb.c:2105 +msgid "" +"the white balance module is not providing a valid reference\n" +"illuminant causing issues with chromatic adaptation here.\n" +"enable white balance and either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" +"Valkotasapaino-moduuli ei tuota kameran oletus-\n" +"valaisua aiheuttaen ongelmia värien sovitukselle.\n" +"Ota valkotasapaino-moduuli käyttöön ja aseta se oletukselle\n" +"tai poista värien sovitus käytöstä täällä." + +#: ../src/iop/channelmixerrgb.c:2196 msgid "auto-detection of white balance completed" msgstr "Valkotasapainon automaattinen tunnistus valmis." -#: ../src/iop/channelmixerrgb.c:2236 +#: ../src/iop/channelmixerrgb.c:2346 msgid "channelmixerrgb works only on RGB input" msgstr "RGB-kanavasekoitin toimii ainoastaan RGB-tulolla." -#: ../src/iop/channelmixerrgb.c:3621 +#: ../src/iop/channelmixerrgb.c:3692 #, c-format msgid "CCT: %.0f K (daylight)" msgstr "CCT: %.0f K (päivänvalo)" -#: ../src/iop/channelmixerrgb.c:3624 +#: ../src/iop/channelmixerrgb.c:3695 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a daylight spectrum,\n" @@ -13683,12 +14247,12 @@ "Tämä valaisu voidaan mallintaa tarkasti päivänvalon osalta,\n" "joten sen lämpötila on merkitsevää ja mielekästä D valaisulla." -#: ../src/iop/channelmixerrgb.c:3630 +#: ../src/iop/channelmixerrgb.c:3701 #, c-format msgid "CCT: %.0f K (black body)" msgstr "CCT: %.0f K (musta kohde)" -#: ../src/iop/channelmixerrgb.c:3633 +#: ../src/iop/channelmixerrgb.c:3704 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a black body spectrum,\n" @@ -13698,12 +14262,12 @@ "Tämä valaisu voidaan mallintaa tarkasti mustan kappaleen osalta,\n" "joten sen lämpötila on merkitsevää ja mielekästä Planckian valaisulla." -#: ../src/iop/channelmixerrgb.c:3639 +#: ../src/iop/channelmixerrgb.c:3710 #, c-format msgid "CCT: %.0f K (invalid)" msgstr "CCT: %.0f K (epäkelpo)" -#: ../src/iop/channelmixerrgb.c:3642 +#: ../src/iop/channelmixerrgb.c:3713 msgid "" "approximated correlated color temperature.\n" "this illuminant cannot be accurately modeled by a daylight or black body " @@ -13717,12 +14281,12 @@ "joten sen lämpötila ei ole merkitsevää tai mielekästä ja sinun tulee käyttää " "mukautettua valaisua." -#: ../src/iop/channelmixerrgb.c:3651 +#: ../src/iop/channelmixerrgb.c:3722 #, c-format msgid "CCT: undefined" msgstr "CCT: määrittämätön" -#: ../src/iop/channelmixerrgb.c:3654 +#: ../src/iop/channelmixerrgb.c:3725 msgid "" "the approximated correlated color temperature\n" "cannot be computed at all so you need to use a custom illuminant." @@ -13730,16 +14294,16 @@ "Arvioitua ja korreloitua värin lämpötilaa\n" "ei voida laskea lainkaan, joten sinun täytyy käyttää mukautettua valaisua." -#: ../src/iop/channelmixerrgb.c:3967 +#: ../src/iop/channelmixerrgb.c:4038 msgid "white balance successfully extracted from raw image" msgstr "Valkotasapaino poimittiin onnistuneesti RAW-kuvasta." #. We need to recompute only the full preview -#: ../src/iop/channelmixerrgb.c:3973 +#: ../src/iop/channelmixerrgb.c:4044 msgid "auto-detection of white balance started…" msgstr "Valkotasapainon automaattinen tunnistus aloitettu..." -#: ../src/iop/channelmixerrgb.c:4078 +#: ../src/iop/channelmixerrgb.c:4149 msgid "" "color calibration: the sum of the gray channel parameters is zero, " "normalization will be disabled." @@ -13748,7 +14312,7 @@ "poistettu käytöstä." #. Write report in GUI -#: ../src/iop/channelmixerrgb.c:4126 +#: ../src/iop/channelmixerrgb.c:4194 #, c-format msgid "" "L: \t%.1f %%\n" @@ -13759,27 +14323,27 @@ "h: \t%.1f °\n" "c: \t%.1f" -#: ../src/iop/channelmixerrgb.c:4394 ../src/iop/clipping.c:2087 -#: ../src/iop/colorbalancergb.c:1873 ../src/iop/filmicrgb.c:4419 -#: ../src/iop/negadoctor.c:829 ../src/iop/toneequal.c:3319 -#: ../src/libs/image.c:460 ../src/views/lighttable.c:1258 +#: ../src/iop/channelmixerrgb.c:4462 ../src/iop/clipping.c:2140 +#: ../src/iop/colorbalancergb.c:1944 ../src/iop/filmicrgb.c:4483 +#: ../src/iop/negadoctor.c:848 ../src/iop/toneequal.c:3372 +#: ../src/libs/image.c:490 ../src/views/lighttable.c:1258 msgid "page" msgstr "Sivu" #. Page CAT -#: ../src/iop/channelmixerrgb.c:4397 +#: ../src/iop/channelmixerrgb.c:4465 msgid "CAT" msgstr "CAT" -#: ../src/iop/channelmixerrgb.c:4398 +#: ../src/iop/channelmixerrgb.c:4466 msgid "chromatic adaptation transform" msgstr "Värien sovituksen muunnos" -#: ../src/iop/channelmixerrgb.c:4400 +#: ../src/iop/channelmixerrgb.c:4468 msgid "adaptation" msgstr "Sovitus" -#: ../src/iop/channelmixerrgb.c:4403 +#: ../src/iop/channelmixerrgb.c:4471 msgid "" "choose the method to adapt the illuminant\n" "and the colorspace in which the module works: \n" @@ -13800,7 +14364,7 @@ "• Ei mitään - poistaa käytöstä kaikki sovitukset ja käyttää " "työskentelyputken RGB-avaruutta." -#: ../src/iop/channelmixerrgb.c:4423 +#: ../src/iop/channelmixerrgb.c:4491 msgid "" "this is the color of the scene illuminant before chromatic adaptation\n" "this color will be turned into pure white by the adaptation." @@ -13808,27 +14372,27 @@ "Tämä on näkymän valaisun väri ennen värien sovitusta.\n" "Sovitus muuttaa tämän värin puhtaan valkoiseksi." -#: ../src/iop/channelmixerrgb.c:4431 +#: ../src/iop/channelmixerrgb.c:4499 msgid "picker" msgstr "Valitsin" -#: ../src/iop/channelmixerrgb.c:4433 ../src/iop/temperature.c:2050 +#: ../src/iop/channelmixerrgb.c:4501 ../src/iop/temperature.c:2015 msgid "set white balance to detected from area" msgstr "Valitse alueesta tunnistettu valkotasapaino." -#: ../src/iop/channelmixerrgb.c:4437 ../src/iop/negadoctor.c:953 +#: ../src/iop/channelmixerrgb.c:4505 ../src/iop/negadoctor.c:972 msgid "illuminant" msgstr "Valaisu" -#: ../src/iop/channelmixerrgb.c:4443 ../src/iop/temperature.c:2111 +#: ../src/iop/channelmixerrgb.c:4511 ../src/iop/temperature.c:2072 msgid "temperature" msgstr "Värilämpötila" -#: ../src/iop/channelmixerrgb.c:4474 -msgid "spot color mapping" -msgstr "Väripisteen kartoitus" +#: ../src/iop/channelmixerrgb.c:4542 +msgid "area color mapping" +msgstr "Alueen värin kartoitus" -#: ../src/iop/channelmixerrgb.c:4480 +#: ../src/iop/channelmixerrgb.c:4548 msgid "" "define a target chromaticity (hue and chroma) for a particular region of the " "image (the control sample), which you then match against the same target " @@ -13842,17 +14406,17 @@ "kuvan aihetta tai joku liikkumaton ja tasaisesti valaistu pinta sarjassa " "kuvia." -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/channelmixerrgb.c:4502 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/channelmixerrgb.c:4573 +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/channelmixerrgb.c:4570 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/channelmixerrgb.c:4641 msgid "mapping" msgstr "Kartoitus" -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/exposure.c:1188 -msgid "spot mode" -msgstr "Pistetila" +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/exposure.c:1206 +msgid "area mode" +msgstr "Alueen tila" -#: ../src/iop/channelmixerrgb.c:4488 +#: ../src/iop/channelmixerrgb.c:4556 msgid "" "\"correction\" automatically adjust the illuminant\n" "such that the input color is mapped to the target.\n" @@ -13864,19 +14428,19 @@ "\"Mittaus\" näyttää kuinka CAT kartoittaa tulon värin\n" "ja sitä voidaan käyttää kohteen näytteenä." -#: ../src/iop/channelmixerrgb.c:4493 ../src/iop/exposure.c:1194 +#: ../src/iop/channelmixerrgb.c:4561 ../src/iop/exposure.c:1212 msgid "correction" msgstr "Korjaus" -#: ../src/iop/channelmixerrgb.c:4494 ../src/iop/exposure.c:1195 +#: ../src/iop/channelmixerrgb.c:4562 ../src/iop/exposure.c:1213 msgid "measure" msgstr "Mittaus" -#: ../src/iop/channelmixerrgb.c:4500 +#: ../src/iop/channelmixerrgb.c:4568 msgid "take channel mixing into account" msgstr "Ota kanavan sekoitus huomioon" -#: ../src/iop/channelmixerrgb.c:4507 +#: ../src/iop/channelmixerrgb.c:4575 msgid "" "compute the target by taking the channel mixing into account.\n" "if disabled, only the CAT is considered." @@ -13884,16 +14448,16 @@ "Laske kohde ottamalla kanavan sekoitus huomioon.\n" "Jos poistettu käytöstä, huomioidaan ainoastaan CAT." -#: ../src/iop/channelmixerrgb.c:4519 ../src/iop/exposure.c:1202 +#: ../src/iop/channelmixerrgb.c:4587 ../src/iop/exposure.c:1220 msgctxt "section" msgid "input" msgstr "tulo" -#: ../src/iop/channelmixerrgb.c:4526 ../src/iop/exposure.c:1210 +#: ../src/iop/channelmixerrgb.c:4594 ../src/iop/exposure.c:1228 msgid "the input color that should be mapped to the target" msgstr "Tulon väri joka tulisi kartoittaa kohteeseen" -#: ../src/iop/channelmixerrgb.c:4532 +#: ../src/iop/channelmixerrgb.c:4600 msgid "" "L: \tN/A\n" "h: \tN/A\n" @@ -13903,114 +14467,114 @@ "h: \tN/A\n" "c: \tN/A" -#: ../src/iop/channelmixerrgb.c:4535 ../src/iop/exposure.c:1218 +#: ../src/iop/channelmixerrgb.c:4603 ../src/iop/exposure.c:1236 msgid "these LCh coordinates are computed from CIE Lab 1976 coordinates" msgstr "Nämä LCh koordinaatit on laskettu CIE Lab 1976 koordinaateista" -#: ../src/iop/channelmixerrgb.c:4543 ../src/iop/exposure.c:1225 +#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/exposure.c:1243 msgctxt "section" msgid "target" msgstr "kohde" -#: ../src/iop/channelmixerrgb.c:4550 +#: ../src/iop/channelmixerrgb.c:4618 msgid "the desired target color after mapping" msgstr "Kartoituksen jälkeen haluttu kohdeväri" -#: ../src/iop/channelmixerrgb.c:4589 +#: ../src/iop/channelmixerrgb.c:4657 msgid "input R" -msgstr "Tulo R" +msgstr "Punaisen tulo" -#: ../src/iop/channelmixerrgb.c:4594 +#: ../src/iop/channelmixerrgb.c:4662 msgid "input G" -msgstr "Tulo G" +msgstr "Vihreän tulo" -#: ../src/iop/channelmixerrgb.c:4599 +#: ../src/iop/channelmixerrgb.c:4667 msgid "input B" -msgstr "Tulo B" +msgstr "Sinisen tulo" -#: ../src/iop/channelmixerrgb.c:4609 +#: ../src/iop/channelmixerrgb.c:4677 msgid "output R" -msgstr "Lähtö R" +msgstr "Punaisen lähtö" -#: ../src/iop/channelmixerrgb.c:4610 +#: ../src/iop/channelmixerrgb.c:4678 msgid "output G" -msgstr "Lähtö G" +msgstr "Vihreän lähtö" -#: ../src/iop/channelmixerrgb.c:4611 +#: ../src/iop/channelmixerrgb.c:4679 msgid "output B" -msgstr "Lähtö B" +msgstr "Sinisen lähtö" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "colorfulness" msgstr "Värikkyys" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "output colorfulness" -msgstr "Lähtö värikkyys" +msgstr "Lähdön värikkyys" -#: ../src/iop/channelmixerrgb.c:4617 +#: ../src/iop/channelmixerrgb.c:4685 msgid "output brightness" -msgstr "Lähtö kirkkaus" +msgstr "Lähdön kirkkaus" -#: ../src/iop/channelmixerrgb.c:4620 +#: ../src/iop/channelmixerrgb.c:4688 msgid "output gray" -msgstr "Lähtö harmaus" +msgstr "Lähdön harmaus" -#: ../src/iop/channelmixerrgb.c:4635 +#: ../src/iop/channelmixerrgb.c:4703 msgid "calibrate with a color checker" msgstr "Kalibroi värikortilla" -#: ../src/iop/channelmixerrgb.c:4640 +#: ../src/iop/channelmixerrgb.c:4708 msgid "use a color checker target to autoset CAT and channels" msgstr "Käytä värikorttia CAT:n ja kanavien automaattiseen asettamiseen." -#: ../src/iop/channelmixerrgb.c:4647 ../src/iop/channelmixerrgb.c:4660 -#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/channelmixerrgb.c:4696 -#: ../src/iop/channelmixerrgb.c:4705 ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4715 ../src/iop/channelmixerrgb.c:4728 +#: ../src/iop/channelmixerrgb.c:4746 ../src/iop/channelmixerrgb.c:4764 +#: ../src/iop/channelmixerrgb.c:4773 ../src/iop/channelmixerrgb.c:4781 msgid "calibrate" msgstr "Kalibroi" -#: ../src/iop/channelmixerrgb.c:4647 +#: ../src/iop/channelmixerrgb.c:4715 msgid "chart" msgstr "Värikortti" -#: ../src/iop/channelmixerrgb.c:4648 +#: ../src/iop/channelmixerrgb.c:4716 msgid "choose the vendor and the type of your chart" msgstr "Valitse valistaja ja värikortin tyyppi" -#: ../src/iop/channelmixerrgb.c:4650 +#: ../src/iop/channelmixerrgb.c:4718 msgid "Xrite ColorChecker 24 pre-2014" msgstr "Xrite ColorChecker 24 ennen-2014" -#: ../src/iop/channelmixerrgb.c:4651 +#: ../src/iop/channelmixerrgb.c:4719 msgid "Xrite ColorChecker 24 post-2014" msgstr "Xrite ColorChecker 24 jälkeen-2014" -#: ../src/iop/channelmixerrgb.c:4652 +#: ../src/iop/channelmixerrgb.c:4720 msgid "Datacolor SpyderCheckr 24 pre-2018" msgstr "Datacolor SpyderCheckr 24 ennen-2018" -#: ../src/iop/channelmixerrgb.c:4653 +#: ../src/iop/channelmixerrgb.c:4721 msgid "Datacolor SpyderCheckr 24 post-2018" msgstr "Datacolor SpyderCheckr 24 jälkeen-2018" -#: ../src/iop/channelmixerrgb.c:4654 +#: ../src/iop/channelmixerrgb.c:4722 msgid "Datacolor SpyderCheckr 48 pre-2018" msgstr "Datacolor SpyderCheckr 48 ennen-2018" -#: ../src/iop/channelmixerrgb.c:4655 +#: ../src/iop/channelmixerrgb.c:4723 msgid "Datacolor SpyderCheckr 48 post-2018" msgstr "Datacolor SpyderCheckr 48 jälkeen-2018" -#: ../src/iop/channelmixerrgb.c:4656 +#: ../src/iop/channelmixerrgb.c:4724 msgid "Datacolor SpyderCheckr Photo" msgstr "Datacolor SpyderCheckr Photo" -#: ../src/iop/channelmixerrgb.c:4660 +#: ../src/iop/channelmixerrgb.c:4728 msgid "optimize for" msgstr "Optimoitu" -#: ../src/iop/channelmixerrgb.c:4661 +#: ../src/iop/channelmixerrgb.c:4729 msgid "" "choose the colors that will be optimized with higher priority.\n" "neutral colors gives the lowest average delta E but a high maximum delta E\n" @@ -14027,35 +14591,35 @@ "Ei mitään on kompromissi molempien väliltä.\n" "Muut ovat erityisiä tapoja joidenkin sävyjen suojelemiseen." -#: ../src/iop/channelmixerrgb.c:4668 +#: ../src/iop/channelmixerrgb.c:4736 msgid "neutral colors" msgstr "Neutraalit värit" -#: ../src/iop/channelmixerrgb.c:4670 +#: ../src/iop/channelmixerrgb.c:4738 msgid "skin and soil colors" msgstr "Ihon ja näppyjen värit" -#: ../src/iop/channelmixerrgb.c:4671 +#: ../src/iop/channelmixerrgb.c:4739 msgid "foliage colors" msgstr "Kasvillisuuden värit" -#: ../src/iop/channelmixerrgb.c:4672 +#: ../src/iop/channelmixerrgb.c:4740 msgid "sky and water colors" msgstr "Taivaan ja veden värit" -#: ../src/iop/channelmixerrgb.c:4673 +#: ../src/iop/channelmixerrgb.c:4741 msgid "average delta E" msgstr "Keskiarvo delta E" -#: ../src/iop/channelmixerrgb.c:4674 +#: ../src/iop/channelmixerrgb.c:4742 msgid "maximum delta E" msgstr "Maksimi delta E" -#: ../src/iop/channelmixerrgb.c:4678 +#: ../src/iop/channelmixerrgb.c:4746 msgid "patch scale" msgstr "Paikan asteikko" -#: ../src/iop/channelmixerrgb.c:4681 +#: ../src/iop/channelmixerrgb.c:4749 msgid "" "reduce the radius of the patches to select the more or less central part.\n" "useful when the perspective correction is sloppy or\n" @@ -14065,31 +14629,31 @@ "Hyödyllinen kun perspektiivin korjaus on heikko tai\n" "paikkojen kehys aiheuttaa varjon paikkojen reunalle." -#: ../src/iop/channelmixerrgb.c:4691 +#: ../src/iop/channelmixerrgb.c:4759 msgid "the delta E is using the CIE 2000 formula" msgstr "Delta E käyttää CIE 2000 kaavaa." -#: ../src/iop/channelmixerrgb.c:4696 +#: ../src/iop/channelmixerrgb.c:4764 msgid "accept" msgstr "Hyväksy" -#: ../src/iop/channelmixerrgb.c:4702 +#: ../src/iop/channelmixerrgb.c:4770 msgid "accept the computed profile and set it in the module" msgstr "Hyväksy laskettu profiili ja aseta se moduuliin." -#: ../src/iop/channelmixerrgb.c:4705 +#: ../src/iop/channelmixerrgb.c:4773 msgid "recompute" msgstr "Laske uudelleen" -#: ../src/iop/channelmixerrgb.c:4709 +#: ../src/iop/channelmixerrgb.c:4777 msgid "recompute the profile" msgstr "Laske profiili uudestaan" -#: ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4781 msgid "validate" msgstr "Vahvista" -#: ../src/iop/channelmixerrgb.c:4717 +#: ../src/iop/channelmixerrgb.c:4785 msgid "check the output delta E" msgstr "Tarkista delta E ulostulo" @@ -14107,19 +14671,19 @@ "Tämä moduuli on vanhentunut. Kannattaa käyttää uutta Paikallinen kontrasti-" "moduulia tämän sijaan." -#: ../src/iop/clahe.c:337 ../src/iop/sharpen.c:445 +#: ../src/iop/clahe.c:339 ../src/iop/sharpen.c:440 msgid "amount" msgstr "Määrä" -#: ../src/iop/clahe.c:346 +#: ../src/iop/clahe.c:348 msgid "size of features to preserve" msgstr "Säilytettävien yksityiskohtien koko." -#: ../src/iop/clahe.c:347 ../src/iop/nlmeans.c:464 +#: ../src/iop/clahe.c:349 ../src/iop/nlmeans.c:467 msgid "strength of the effect" msgstr "Säädön voimakkuus." -#: ../src/iop/clipping.c:304 +#: ../src/iop/clipping.c:347 msgid "" "this module is deprecated. please use the crop, orientation and/or rotate " "and perspective modules instead." @@ -14127,144 +14691,144 @@ "Tämä moduuli on vanhentunut. Kannattaa käyttää Rajaa, Suunta ja/tai Kierto " "ja perspektiivi-moduulia tämän sijaan." -#: ../src/iop/clipping.c:309 +#: ../src/iop/clipping.c:352 msgid "crop and rotate" msgstr "Rajaa ja kierrä" -#: ../src/iop/clipping.c:314 +#: ../src/iop/clipping.c:357 msgid "reframe|perspective|keystone|distortion" msgstr "Uudelleen sommittelu|Perspektiivi|Perspektiivivinouma|Vääristymä" -#: ../src/iop/clipping.c:319 +#: ../src/iop/clipping.c:362 msgid "change the framing and correct the perspective" msgstr "Muuta sommittelua ja korjaa kuvan perspektiivi" -#: ../src/iop/clipping.c:1394 ../src/iop/clipping.c:2120 ../src/iop/crop.c:517 -#: ../src/iop/crop.c:1117 +#: ../src/iop/clipping.c:1447 ../src/iop/clipping.c:2173 ../src/iop/crop.c:501 +#: ../src/iop/crop.c:1101 msgid "original image" msgstr "Alkuperäinen kuva" -#: ../src/iop/clipping.c:1698 ../src/iop/crop.c:824 +#: ../src/iop/clipping.c:1751 ../src/iop/crop.c:808 msgid "invalid ratio format. it should be \"number:number\"" msgstr "Virheellinen kuvasuhde. Kuvasuhteen tulee olla \"numero:numero\"." -#: ../src/iop/clipping.c:1714 ../src/iop/crop.c:840 +#: ../src/iop/clipping.c:1767 ../src/iop/crop.c:824 msgid "invalid ratio format. it should be a positive number" msgstr "Virheellinen kuvasuhde. Kuvasuhteen tulee olla positiivinen numero." -#: ../src/iop/clipping.c:1903 ../src/iop/clipping.c:2111 +#: ../src/iop/clipping.c:1956 ../src/iop/clipping.c:2164 msgid "full" msgstr "Täysi" -#: ../src/iop/clipping.c:1904 +#: ../src/iop/clipping.c:1957 msgid "old system" msgstr "Vanha järjestelmä" -#: ../src/iop/clipping.c:1905 +#: ../src/iop/clipping.c:1958 msgid "correction applied" msgstr "Korjaustiedot lisätty" -#: ../src/iop/clipping.c:2089 +#: ../src/iop/clipping.c:2142 msgid "main" msgstr "Pää" -#: ../src/iop/clipping.c:2098 +#: ../src/iop/clipping.c:2151 msgid "mirror image horizontally and/or vertically" msgstr "Peilaa kuva pysty- ja/tai vaaka-akselin ympäri." -#: ../src/iop/clipping.c:2101 +#: ../src/iop/clipping.c:2154 msgid "angle" msgstr "Kulma" -#: ../src/iop/clipping.c:2104 +#: ../src/iop/clipping.c:2157 msgid "right-click and drag a line on the image to drag a straight line" msgstr "" "Suoran viivan piirtämiseksi paina hiiren oikeaa nappia ja raahaa kursoria " "viivaa pitkin." -#: ../src/iop/clipping.c:2107 +#: ../src/iop/clipping.c:2160 msgid "keystone" msgstr "Perspektiivivinouma" -#: ../src/iop/clipping.c:2112 +#: ../src/iop/clipping.c:2165 msgid "set perspective correction for your image" msgstr "Määritä kuvan perspektiivinkorjaus." -#: ../src/iop/clipping.c:2119 ../src/iop/crop.c:1116 +#: ../src/iop/clipping.c:2172 ../src/iop/crop.c:1100 msgid "freehand" msgstr "Vapaa käsi" -#: ../src/iop/clipping.c:2122 ../src/iop/crop.c:1119 +#: ../src/iop/clipping.c:2175 ../src/iop/crop.c:1103 msgid "10:8 in print" msgstr "10:8 tuloste" -#: ../src/iop/clipping.c:2123 ../src/iop/crop.c:1120 +#: ../src/iop/clipping.c:2176 ../src/iop/crop.c:1104 msgid "5:4, 4x5, 8x10" msgstr "5:4, 4x5, 8x10" -#: ../src/iop/clipping.c:2124 ../src/iop/crop.c:1121 +#: ../src/iop/clipping.c:2177 ../src/iop/crop.c:1105 msgid "11x14" msgstr "11x14" -#: ../src/iop/clipping.c:2125 ../src/iop/crop.c:1122 +#: ../src/iop/clipping.c:2178 ../src/iop/crop.c:1106 msgid "8.5x11, letter" msgstr "8.5x11, letter" -#: ../src/iop/clipping.c:2126 ../src/iop/crop.c:1123 +#: ../src/iop/clipping.c:2179 ../src/iop/crop.c:1107 msgid "4:3, VGA, TV" msgstr "4:3, VGA, TV" -#: ../src/iop/clipping.c:2127 ../src/iop/crop.c:1124 +#: ../src/iop/clipping.c:2180 ../src/iop/crop.c:1108 msgid "5x7" msgstr "5x7" -#: ../src/iop/clipping.c:2128 ../src/iop/crop.c:1125 +#: ../src/iop/clipping.c:2181 ../src/iop/crop.c:1109 msgid "ISO 216, DIN 476, A4" msgstr "ISO 216, DIN 476, A4" -#: ../src/iop/clipping.c:2129 ../src/iop/crop.c:1126 +#: ../src/iop/clipping.c:2182 ../src/iop/crop.c:1110 msgid "3:2, 4x6, 35mm" msgstr "3:2, 4x6, 35mm" -#: ../src/iop/clipping.c:2130 ../src/iop/crop.c:1127 +#: ../src/iop/clipping.c:2183 ../src/iop/crop.c:1111 msgid "16:10, 8x5" msgstr "16:10, 8x5" -#: ../src/iop/clipping.c:2132 ../src/iop/crop.c:1129 +#: ../src/iop/clipping.c:2185 ../src/iop/crop.c:1113 msgid "16:9, HDTV" msgstr "16:9, HDTV" -#: ../src/iop/clipping.c:2133 ../src/iop/crop.c:1130 +#: ../src/iop/clipping.c:2186 ../src/iop/crop.c:1114 msgid "widescreen" msgstr "Laajakuva" -#: ../src/iop/clipping.c:2134 ../src/iop/crop.c:1131 +#: ../src/iop/clipping.c:2187 ../src/iop/crop.c:1115 msgid "2:1, univisium" msgstr "2:1, univisium" -#: ../src/iop/clipping.c:2135 ../src/iop/crop.c:1132 +#: ../src/iop/clipping.c:2188 ../src/iop/crop.c:1116 msgid "cinemascope" msgstr "Cinemascope" -#: ../src/iop/clipping.c:2136 ../src/iop/crop.c:1133 +#: ../src/iop/clipping.c:2189 ../src/iop/crop.c:1117 msgid "21:9" msgstr "21:9" -#: ../src/iop/clipping.c:2137 ../src/iop/crop.c:1134 +#: ../src/iop/clipping.c:2190 ../src/iop/crop.c:1118 msgid "anamorphic" msgstr "Anamorphinen" -#: ../src/iop/clipping.c:2138 ../src/iop/crop.c:1135 +#: ../src/iop/clipping.c:2191 ../src/iop/crop.c:1119 msgid "3:1, panorama" msgstr "3:1, panoraama" -#: ../src/iop/clipping.c:2170 ../src/iop/clipping.c:2182 ../src/iop/crop.c:1171 -#: ../src/iop/crop.c:1187 +#: ../src/iop/clipping.c:2223 ../src/iop/clipping.c:2235 ../src/iop/crop.c:1155 +#: ../src/iop/crop.c:1171 #, c-format msgid "invalid ratio format for `%s'. it should be \"number:number\"" msgstr "Virheellinen kuvasuhde `%s'. Kuvasuhteen tulee olla \"numero:numero\"." -#: ../src/iop/clipping.c:2229 ../src/iop/crop.c:1238 +#: ../src/iop/clipping.c:2282 ../src/iop/crop.c:1222 msgid "" "set the aspect ratio\n" "the list is sorted: from most square to least square\n" @@ -14276,31 +14840,31 @@ "Syötä oma kuvasuhde avaamalla laatikko ja antamalla suhde muodossa x:y tai " "desimaalina." -#: ../src/iop/clipping.c:2236 ../src/iop/crop.c:1252 +#: ../src/iop/clipping.c:2289 ../src/iop/crop.c:1236 msgid "margins" msgstr "Marginaalit" -#: ../src/iop/clipping.c:2241 ../src/iop/crop.c:1262 +#: ../src/iop/clipping.c:2294 ../src/iop/crop.c:1246 msgid "the left margin cannot overlap with the right margin" msgstr "Vasen marginaali ei voi mennä oikean marginaalin kanssa päällekkäin." -#: ../src/iop/clipping.c:2248 ../src/iop/crop.c:1270 +#: ../src/iop/clipping.c:2301 ../src/iop/crop.c:1254 msgid "the right margin cannot overlap with the left margin" msgstr "Oikea marginaali ei voi mennä vasemman marginaalin kanssa päällekkäin." -#: ../src/iop/clipping.c:2253 ../src/iop/crop.c:1276 +#: ../src/iop/clipping.c:2306 ../src/iop/crop.c:1260 msgid "the top margin cannot overlap with the bottom margin" msgstr "Ylämarginaali ei voi mennä alamarginaalin kanssa päällekkäin." -#: ../src/iop/clipping.c:2260 ../src/iop/crop.c:1284 +#: ../src/iop/clipping.c:2313 ../src/iop/crop.c:1268 msgid "the bottom margin cannot overlap with the top margin" msgstr "Alamarginaali ei voi mennä ylämarginaalin kanssa päällekkäin." -#: ../src/iop/clipping.c:3019 +#: ../src/iop/clipping.c:3059 msgid "<b>commit</b>: double-click, <b>straighten</b>: right-drag" msgstr "<b>Toteuta</b>: kaksoisnapsauta, <b>Suorista</b>: oikea-raahaa" -#: ../src/iop/clipping.c:3023 +#: ../src/iop/clipping.c:3063 msgid "" "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag\n" "<b>straighten</b>: right-drag" @@ -14308,15 +14872,15 @@ "<b>Muuta kokoa</b>: raahaa, <b>Säilytä kuvasuhde</b>: SHIFT+raahaus\n" "<b>Suorista</b>: oikea raahaus" -#: ../src/iop/clipping.c:3066 +#: ../src/iop/clipping.c:3104 msgid "<b>move control point</b>: drag" msgstr "<b>Siirrä ohjauspiste</b>: raahaa" -#: ../src/iop/clipping.c:3071 +#: ../src/iop/clipping.c:3109 msgid "<b>move line</b>: drag, <b>toggle symmetry</b>: click ꝏ" msgstr "<b>Siirrä viiva</b>: raahaa, <b>Vaihda symmetria</b>: napsauta ꝏ" -#: ../src/iop/clipping.c:3076 +#: ../src/iop/clipping.c:3114 msgid "" "<b>apply</b>: click <tt>ok</tt>, <b>toggle symmetry</b>: click ꝏ\n" "<b>move line/control point</b>: drag" @@ -14324,7 +14888,7 @@ "<b>Käytä</b>: napsaus <tt>ok</tt>, <b>Vaihda symmetria</b>: napsauta ꝏ</tt>\n" "<b>Siirrä viiva/ohjauspiste</b>: raahaa" -#: ../src/iop/clipping.c:3083 +#: ../src/iop/clipping.c:3121 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag\n" @@ -14334,12 +14898,12 @@ "vaakasuunnassa</b>: CTRL+raahaa\n" "<b>Suorista</b>: oikea-raahaa, <b>Toteuta</b>: kaksoisnapsauta" -#: ../src/iop/clipping.c:3340 ../src/iop/crop.c:1803 +#: ../src/iop/clipping.c:3380 ../src/iop/crop.c:1770 #, c-format msgid "[%s on borders] crop" msgstr "[%s reunoilla] Rajaa" -#: ../src/iop/clipping.c:3342 ../src/iop/crop.c:1805 +#: ../src/iop/clipping.c:3382 ../src/iop/crop.c:1772 #, c-format msgid "[%s on borders] crop keeping ratio" msgstr "[%s reunoilla] Rajaa säilyttäen kuvasuhde" @@ -14358,225 +14922,225 @@ msgid "adjust the look of the image" msgstr "Muuta kuvan näyttävyyttä" -#: ../src/iop/colisa.c:310 +#: ../src/iop/colisa.c:304 msgid "color saturation adjustment" msgstr "Värikylläisyyden säätö." -#: ../src/iop/colorbalance.c:150 +#: ../src/iop/colorbalance.c:152 msgid "color balance" msgstr "Väritasapaino" -#: ../src/iop/colorbalance.c:155 +#: ../src/iop/colorbalance.c:157 msgid "lift gamma gain|cdl|color grading|contrast|saturation|hue" msgstr "" "Gamman vahvistuksen nosto|CDL|Värimäärittely|Kontrasti|Värikylläisyys|Sävy" -#: ../src/iop/colorbalance.c:160 +#: ../src/iop/colorbalance.c:162 msgid "shift colors selectively by luminance range" msgstr "Vaihda värejä valikoivasti kirkkaalla alueella" -#: ../src/iop/colorbalance.c:164 +#: ../src/iop/colorbalance.c:166 msgid "non-linear, Lab, scene-referred" msgstr "Epälineaarinen, Lab, Näkymä-viitattu" #. these blobs were exported as dtstyle and copied from there: -#: ../src/iop/colorbalance.c:275 +#: ../src/iop/colorbalance.c:304 msgid "split-toning teal-orange (2nd instance)" msgstr "Jakosävytys tumma-oranssi (2. instanssi)" -#: ../src/iop/colorbalance.c:278 +#: ../src/iop/colorbalance.c:307 msgid "split-toning teal-orange (1st instance)" msgstr "Jakosävytys tumma-oranssi (1. instanssi)" -#: ../src/iop/colorbalance.c:282 +#: ../src/iop/colorbalance.c:311 msgid "generic film" msgstr "Yleinen filmi" -#: ../src/iop/colorbalance.c:286 +#: ../src/iop/colorbalance.c:315 msgid "similar to Kodak Portra" msgstr "Kodak Portra kaltainen" -#: ../src/iop/colorbalance.c:290 +#: ../src/iop/colorbalance.c:319 msgid "similar to Kodak Ektar" msgstr "Kodak Ektar kaltainen" -#: ../src/iop/colorbalance.c:294 +#: ../src/iop/colorbalance.c:323 msgid "similar to Kodachrome" msgstr "Kodachrome kaltainen" -#: ../src/iop/colorbalance.c:990 +#: ../src/iop/colorbalance.c:964 msgid "optimize luma from patches" msgstr "Optimoi luma näytepaikoista" -#: ../src/iop/colorbalance.c:992 ../src/iop/colorbalance.c:2110 +#: ../src/iop/colorbalance.c:966 ../src/iop/colorbalance.c:2085 msgid "optimize luma" msgstr "Optimoi luma" -#: ../src/iop/colorbalance.c:996 +#: ../src/iop/colorbalance.c:970 msgid "neutralize colors from patches" msgstr "Tasoita värit perustuen paikkoihin" -#: ../src/iop/colorbalance.c:998 ../src/iop/colorbalance.c:2116 +#: ../src/iop/colorbalance.c:972 ../src/iop/colorbalance.c:2091 msgid "neutralize colors" msgstr "Tasoita värit" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "offset" msgstr "Poikkeama" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "power" msgstr "Teho" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "slope" msgstr "Kallistus" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "lift" msgstr "Nosto" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gamma" msgstr "Gamma" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gain" msgstr "Vahvistus" -#: ../src/iop/colorbalance.c:1787 +#: ../src/iop/colorbalance.c:1762 msgctxt "section" msgid "shadows: lift / offset" msgstr "Varjot: nosto / poikkeama" -#: ../src/iop/colorbalance.c:1788 +#: ../src/iop/colorbalance.c:1763 msgctxt "section" msgid "mid-tones: gamma / power" msgstr "Keskisävyt: gamma / teho" -#: ../src/iop/colorbalance.c:1789 +#: ../src/iop/colorbalance.c:1764 msgctxt "section" msgid "highlights: gain / slope" msgstr "Huippuvalot: vahvistus / kallistus" -#: ../src/iop/colorbalance.c:1813 +#: ../src/iop/colorbalance.c:1788 msgid "shadows / mid-tones / highlights" msgstr "Varjot / Keskisävyt / Huippuvalot" -#: ../src/iop/colorbalance.c:1910 ../src/iop/colorbalance.c:1919 +#: ../src/iop/colorbalance.c:1885 ../src/iop/colorbalance.c:1894 msgid "color-grading mapping method" msgstr "Värimäärittelyn kartoitusmenetelmä" -#: ../src/iop/colorbalance.c:1914 +#: ../src/iop/colorbalance.c:1889 msgid "color control sliders" msgstr "Värinsäädön liukusäätimet" -#: ../src/iop/colorbalance.c:1915 ../src/libs/colorpicker.c:51 +#: ../src/iop/colorbalance.c:1890 ../src/libs/colorpicker.c:51 msgid "HSL" msgstr "HSL" -#: ../src/iop/colorbalance.c:1916 +#: ../src/iop/colorbalance.c:1891 msgid "RGBL" msgstr "RGBL" -#: ../src/iop/colorbalance.c:1928 +#: ../src/iop/colorbalance.c:1903 msgctxt "section" msgid "master" msgstr "Alkuperäinen" -#: ../src/iop/colorbalance.c:1934 +#: ../src/iop/colorbalance.c:1909 msgid "saturation correction before the color balance" msgstr "Värikylläisyyden korjaus ennen väritasapainoa." -#: ../src/iop/colorbalance.c:1940 +#: ../src/iop/colorbalance.c:1915 msgid "saturation correction after the color balance" msgstr "Väritasapainon korjaus ennen värikylläisyyttä." -#: ../src/iop/colorbalance.c:1945 +#: ../src/iop/colorbalance.c:1920 msgid "adjust to match a neutral tone" msgstr "Säädä vastaamaan neutraalia sävyä." #. is set in _configure_slider_blocks -#: ../src/iop/colorbalance.c:2003 +#: ../src/iop/colorbalance.c:1978 msgid "click to cycle layout" msgstr "Napsauta vaihtaaksesi liukusäätimien asettelua." -#: ../src/iop/colorbalance.c:2037 +#: ../src/iop/colorbalance.c:2012 msgid "factor" msgstr "Kerroin" -#: ../src/iop/colorbalance.c:2051 +#: ../src/iop/colorbalance.c:2026 msgid "select the hue" msgstr "Valitse värisävy." -#: ../src/iop/colorbalance.c:2063 +#: ../src/iop/colorbalance.c:2038 msgid "select the saturation" msgstr "Valitse värikylläisyys." -#: ../src/iop/colorbalance.c:2082 +#: ../src/iop/colorbalance.c:2057 msgid "factor of lift/offset" msgstr "Kerroin nostolle / poikkeamalle." -#: ../src/iop/colorbalance.c:2083 +#: ../src/iop/colorbalance.c:2058 msgid "factor of red for lift/offset" msgstr "Punaisen kerroin nostolle / poikkeamalle." -#: ../src/iop/colorbalance.c:2084 +#: ../src/iop/colorbalance.c:2059 msgid "factor of green for lift/offset" msgstr "Vihreän kerroin nostolle / poikkeamalle." -#: ../src/iop/colorbalance.c:2085 +#: ../src/iop/colorbalance.c:2060 msgid "factor of blue for lift/offset" msgstr "Sinisen kerroin nostolle / poikkeamalle." -#: ../src/iop/colorbalance.c:2088 +#: ../src/iop/colorbalance.c:2063 msgid "factor of gamma/power" msgstr "Kerroin gammalle / teholle." -#: ../src/iop/colorbalance.c:2089 +#: ../src/iop/colorbalance.c:2064 msgid "factor of red for gamma/power" msgstr "Punaisen kerroin gammalle / teholle." -#: ../src/iop/colorbalance.c:2090 +#: ../src/iop/colorbalance.c:2065 msgid "factor of green for gamma/power" msgstr "Vihreän kerroin gammalle / teholle." -#: ../src/iop/colorbalance.c:2091 +#: ../src/iop/colorbalance.c:2066 msgid "factor of blue for gamma/power" msgstr "Sinisen kerroin gammalle / teholle." -#: ../src/iop/colorbalance.c:2094 +#: ../src/iop/colorbalance.c:2069 msgid "factor of gain/slope" msgstr "Kerroin vahvistukselle / kallistukselle." -#: ../src/iop/colorbalance.c:2095 +#: ../src/iop/colorbalance.c:2070 msgid "factor of red for gain/slope" msgstr "Punaisen kerroin vahvistukselle / kallistukselle." -#: ../src/iop/colorbalance.c:2096 +#: ../src/iop/colorbalance.c:2071 msgid "factor of green for gain/slope" msgstr "Vihreän kerroin vahvistukselle / kallistukselle." -#: ../src/iop/colorbalance.c:2097 +#: ../src/iop/colorbalance.c:2072 msgid "factor of blue for gain/slope" msgstr "Sinisen kerroin vahvistukselle / kallistukselle." -#: ../src/iop/colorbalance.c:2106 +#: ../src/iop/colorbalance.c:2081 msgctxt "section" msgid "auto optimizers" msgstr "Automaattiset optimoijat" -#: ../src/iop/colorbalance.c:2111 +#: ../src/iop/colorbalance.c:2086 msgid "fit the whole histogram and center the average luma" msgstr "Sovita koko histogrammi ja keskitä luma keskiarvoon." -#: ../src/iop/colorbalance.c:2117 +#: ../src/iop/colorbalance.c:2092 msgid "optimize the RGB curves to remove color casts" msgstr "Optimoi RGB-käyrät poistaaksesi värivääristymiä." @@ -14597,87 +15161,87 @@ "color grading tools using alpha masks to separate\n" "shadows, mid-tones and highlights" msgstr "" -"Värimäärittelyn työkalut jotka käyttävät alpha maskeja\n" +"Värimäärittelyn työkalut jotka käyttävät alfamaskeja\n" "erottamaan varjot, keskisävyt ja huippuvalot." -#: ../src/iop/colorbalancergb.c:443 +#: ../src/iop/colorbalancergb.c:536 msgid "add basic colorfulness (legacy)" msgstr "Lisää perusvärikkyys (vanha)" -#: ../src/iop/colorbalancergb.c:452 +#: ../src/iop/colorbalancergb.c:545 msgid "basic colorfulness: natural skin" msgstr "Perusvärikkyys: luonnollinen iho" -#: ../src/iop/colorbalancergb.c:458 +#: ../src/iop/colorbalancergb.c:551 msgid "basic colorfulness: vibrant colors" msgstr "Perusvärikkyys: eloisat värit" -#: ../src/iop/colorbalancergb.c:464 +#: ../src/iop/colorbalancergb.c:557 msgid "basic colorfulness: standard" msgstr "Perusvärikkyys: standardi" -#: ../src/iop/colorbalancergb.c:937 +#: ../src/iop/colorbalancergb.c:1022 msgid "colorbalance works only on RGB input" msgstr "Väritasapaino toimii ainoastaan RGB-tulolla." -#: ../src/iop/colorbalancergb.c:1506 ../src/iop/colorzones.c:2164 -#: ../src/iop/retouch.c:1884 ../src/iop/toneequal.c:1966 +#: ../src/iop/colorbalancergb.c:1577 ../src/iop/colorzones.c:2394 +#: ../src/iop/retouch.c:2069 ../src/iop/toneequal.c:1996 msgid "cannot display masks when the blending mask is displayed" msgstr "Maskien näyttö ei onnistu, kun yhdistämisen maski on käytössä." #. Page master -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "master" msgstr "Alkuperäinen" -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "global grading" msgstr "Yleinen värimäärittely" -#: ../src/iop/colorbalancergb.c:1880 +#: ../src/iop/colorbalancergb.c:1951 msgid "rotate all hues by an angle, at the same luminance" msgstr "Kierrä saman kirkkauden kaikkien sävyjen kulmaa." -#: ../src/iop/colorbalancergb.c:1886 +#: ../src/iop/colorbalancergb.c:1957 msgid "increase colorfulness mostly on low-chroma colors" msgstr "Lisää matalan kroman värien värikkyyttä." -#: ../src/iop/colorbalancergb.c:1892 +#: ../src/iop/colorbalancergb.c:1963 msgid "increase the contrast at constant chromaticity" msgstr "Lisää jatkuvan kromaattisuuden kontrastia." -#: ../src/iop/colorbalancergb.c:1894 +#: ../src/iop/colorbalancergb.c:1965 msgctxt "section" msgid "linear chroma grading" msgstr "Suoralinjainen kroman värimäärittely" -#: ../src/iop/colorbalancergb.c:1901 +#: ../src/iop/colorbalancergb.c:1972 msgid "increase colorfulness at same luminance globally" msgstr "Lisää saman kirkkauden yleistä värikkyyttä." -#: ../src/iop/colorbalancergb.c:1906 +#: ../src/iop/colorbalancergb.c:1977 msgid "increase colorfulness at same luminance mostly in shadows" msgstr "Lisää lähinnä saman kirkkauden varjojen värikkyyttä." -#: ../src/iop/colorbalancergb.c:1911 +#: ../src/iop/colorbalancergb.c:1982 msgid "increase colorfulness at same luminance mostly in mid-tones" msgstr "Lisää lähinnä saman kirkkauden keskisävyjen värikkyyttä." -#: ../src/iop/colorbalancergb.c:1916 +#: ../src/iop/colorbalancergb.c:1987 msgid "increase colorfulness at same luminance mostly in highlights" msgstr "Lisää lähinnä saman kirkkauden huippuvalojen värikkyyttä." -#: ../src/iop/colorbalancergb.c:1918 +#: ../src/iop/colorbalancergb.c:1989 msgctxt "section" msgid "perceptual saturation grading" msgstr "Aistiperustainen värikylläisyyden määrittely" -#: ../src/iop/colorbalancergb.c:1924 +#: ../src/iop/colorbalancergb.c:1995 msgid "add or remove saturation by an absolute amount" msgstr "Lisää tai poista värikylläisyyttä absoluuttisella määrällä." -#: ../src/iop/colorbalancergb.c:1929 ../src/iop/colorbalancergb.c:1934 -#: ../src/iop/colorbalancergb.c:1939 +#: ../src/iop/colorbalancergb.c:2000 ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2010 msgid "" "increase or decrease saturation proportionally to the original pixel " "saturation" @@ -14685,184 +15249,184 @@ "Lisää tai vähennä värikylläisyyttä suhteessa pikselin alkuperäiseen " "värikylläisyyteen." -#: ../src/iop/colorbalancergb.c:1941 +#: ../src/iop/colorbalancergb.c:2012 msgctxt "section" msgid "perceptual brilliance grading" msgstr "Aistiperustainen loiston värimäärittely" -#: ../src/iop/colorbalancergb.c:1942 +#: ../src/iop/colorbalancergb.c:2013 msgid "brilliance" msgstr "Loisto" -#: ../src/iop/colorbalancergb.c:1947 +#: ../src/iop/colorbalancergb.c:2018 msgid "add or remove brilliance by an absolute amount" msgstr "Lisää tai poista loistoa absoluuttisella määrällä." -#: ../src/iop/colorbalancergb.c:1952 ../src/iop/colorbalancergb.c:1957 -#: ../src/iop/colorbalancergb.c:1962 +#: ../src/iop/colorbalancergb.c:2023 ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2033 msgid "" "increase or decrease brilliance proportionally to the original pixel " "brilliance" msgstr "Lisää tai vähennä loistoa suhteessa pikselin alkuperäiseen loistoon." #. Page 4-ways -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "4 ways" msgstr "4 tapaa" -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "selective color grading" msgstr "Valikoiva värimäärittely" -#: ../src/iop/colorbalancergb.c:1967 +#: ../src/iop/colorbalancergb.c:2038 msgctxt "section" msgid "global offset" msgstr "Yleinen poikkeama" -#: ../src/iop/colorbalancergb.c:1974 +#: ../src/iop/colorbalancergb.c:2045 msgid "global luminance offset" msgstr "Yleinen kirkkauden poikkeama." -#: ../src/iop/colorbalancergb.c:1979 +#: ../src/iop/colorbalancergb.c:2050 msgid "hue of the global color offset" msgstr "Yleisen väripoikkeaman sävy." -#: ../src/iop/colorbalancergb.c:1985 +#: ../src/iop/colorbalancergb.c:2056 msgid "chroma of the global color offset" msgstr "Yleisen väripoikkeaman kroma." -#: ../src/iop/colorbalancergb.c:1987 +#: ../src/iop/colorbalancergb.c:2058 msgctxt "section" msgid "shadows lift" msgstr "Varjojen nosto" -#: ../src/iop/colorbalancergb.c:1988 +#: ../src/iop/colorbalancergb.c:2059 msgid "lift" msgstr "Nosto" -#: ../src/iop/colorbalancergb.c:1994 +#: ../src/iop/colorbalancergb.c:2065 msgid "luminance gain in shadows" msgstr "Varjojen kirkkauden vahvistus." -#: ../src/iop/colorbalancergb.c:1999 +#: ../src/iop/colorbalancergb.c:2070 msgid "hue of the color gain in shadows" msgstr "Varjojen värivahvistuksen sävy." -#: ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2076 msgid "chroma of the color gain in shadows" msgstr "Varjojen värivahvistuksen kroma." -#: ../src/iop/colorbalancergb.c:2007 +#: ../src/iop/colorbalancergb.c:2078 msgctxt "section" msgid "highlights gain" msgstr "Huippuvalojen vahvistus" -#: ../src/iop/colorbalancergb.c:2008 +#: ../src/iop/colorbalancergb.c:2079 msgid "gain" msgstr "Vahvistus" -#: ../src/iop/colorbalancergb.c:2014 +#: ../src/iop/colorbalancergb.c:2085 msgid "luminance gain in highlights" msgstr "Huippuvalojen kirkkauden vahvistus." -#: ../src/iop/colorbalancergb.c:2019 +#: ../src/iop/colorbalancergb.c:2090 msgid "hue of the color gain in highlights" msgstr "Huippuvalojen värivahvistuksen sävy." -#: ../src/iop/colorbalancergb.c:2025 +#: ../src/iop/colorbalancergb.c:2096 msgid "chroma of the color gain in highlights" msgstr "Huippuvalojen värivahvistuksen kroma." -#: ../src/iop/colorbalancergb.c:2027 +#: ../src/iop/colorbalancergb.c:2098 msgctxt "section" msgid "power" msgstr "Teho" -#: ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2099 msgid "power" msgstr "Teho" -#: ../src/iop/colorbalancergb.c:2034 +#: ../src/iop/colorbalancergb.c:2105 msgid "luminance exponent in mid-tones" msgstr "Keskisävyjen kirkkauden exponentti." -#: ../src/iop/colorbalancergb.c:2039 +#: ../src/iop/colorbalancergb.c:2110 msgid "hue of the color exponent in mid-tones" msgstr "Keskisävyjen väriexponentin sävy." -#: ../src/iop/colorbalancergb.c:2045 +#: ../src/iop/colorbalancergb.c:2116 msgid "chroma of the color exponent in mid-tones" msgstr "Keskisävyjen väriexponentin kroma." #. Page masks -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "masks" msgstr "Maskit" -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "isolate luminances" msgstr "Eristä kirkkaus" -#: ../src/iop/colorbalancergb.c:2052 +#: ../src/iop/colorbalancergb.c:2123 msgid "choose in which uniform color space the saturation is computed" msgstr "Valitse missä yhtenäisessä väriavaruudessa värikylläisyys lasketaan" -#: ../src/iop/colorbalancergb.c:2054 +#: ../src/iop/colorbalancergb.c:2125 msgctxt "section" msgid "luminance ranges" msgstr "Kirkkauden kantama" -#: ../src/iop/colorbalancergb.c:2065 +#: ../src/iop/colorbalancergb.c:2136 msgid "weight of the shadows over the whole tonal range" msgstr "Varjojen paino koko kuvan sävyalueella." -#: ../src/iop/colorbalancergb.c:2073 +#: ../src/iop/colorbalancergb.c:2144 msgid "position of the middle-gray reference for masking" msgstr "Keskiharmaan sijainnin viite maskia varten." -#: ../src/iop/colorbalancergb.c:2081 +#: ../src/iop/colorbalancergb.c:2152 msgid "weights of highlights over the whole tonal range" msgstr "Huippuvalojen paino koko kuvan sävyalueella." -#: ../src/iop/colorbalancergb.c:2086 +#: ../src/iop/colorbalancergb.c:2157 msgctxt "section" msgid "threshold" msgstr "Kynnysarvo" -#: ../src/iop/colorbalancergb.c:2091 +#: ../src/iop/colorbalancergb.c:2162 msgid "peak white luminance value used to normalize the power function" msgstr "" "Valkoisen kirkkauden huippukohtaa käytetään teho-asetuksen normalisointiin." -#: ../src/iop/colorbalancergb.c:2097 +#: ../src/iop/colorbalancergb.c:2168 msgid "peak gray luminance value used to normalize the power function" msgstr "" "Harmaan kirkkauden huippukohtaa käytetään teho-asetuksen normalisointiin." -#: ../src/iop/colorbalancergb.c:2099 +#: ../src/iop/colorbalancergb.c:2170 msgctxt "section" msgid "mask preview settings" msgstr "Maskin esikatselun asetukset" -#: ../src/iop/colorbalancergb.c:2102 +#: ../src/iop/colorbalancergb.c:2173 msgid "checkerboard color 1" msgstr "Tarkastuskortin väri 1" -#: ../src/iop/colorbalancergb.c:2105 ../src/iop/colorbalancergb.c:2114 +#: ../src/iop/colorbalancergb.c:2176 ../src/iop/colorbalancergb.c:2185 msgid "select color of the checkerboard from a swatch" msgstr "Valitse tarkastuskortin väri mallista." -#: ../src/iop/colorbalancergb.c:2111 +#: ../src/iop/colorbalancergb.c:2182 msgid "checkerboard color 2" msgstr "Tarkastuskortin väri 2" -#: ../src/iop/colorbalancergb.c:2121 +#: ../src/iop/colorbalancergb.c:2192 msgid "checkerboard size" msgstr "Tarkastuskortin koko" #: ../src/iop/colorchecker.c:118 msgid "color look up table" -msgstr "Värin hakutaulukko" +msgstr "Värien hakutaulukko (LUT)" #: ../src/iop/colorchecker.c:123 msgid "profile|lut|color grading" @@ -14873,11 +15437,11 @@ msgstr "Suorita väriavaruuden korjauksia ja käytä tyylejä" #: ../src/iop/colorchecker.c:131 ../src/iop/colorchecker.c:133 -#: ../src/iop/colorize.c:106 ../src/iop/colormapping.c:154 -#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:136 -#: ../src/iop/colorzones.c:146 ../src/iop/defringe.c:83 ../src/iop/levels.c:139 -#: ../src/iop/monochrome.c:99 ../src/iop/shadhi.c:198 -#: ../src/iop/tonecurve.c:212 ../src/iop/vibrance.c:96 +#: ../src/iop/colorize.c:99 ../src/iop/colormapping.c:154 +#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:121 +#: ../src/iop/colorzones.c:147 ../src/iop/defringe.c:83 ../src/iop/levels.c:141 +#: ../src/iop/monochrome.c:101 ../src/iop/shadhi.c:145 +#: ../src/iop/tonecurve.c:185 ../src/iop/vibrance.c:98 msgid "linear or non-linear, Lab, display-referred" msgstr "Suoralinjainen tai epälineaarinen, Lab, Näyttö-viitattu" @@ -14885,40 +15449,40 @@ msgid "defined by profile, Lab" msgstr "Profiilin määrittämä, Lab" -#: ../src/iop/colorchecker.c:294 +#: ../src/iop/colorchecker.c:308 msgid "it8 skin tones" msgstr "IT8 ihonvärit" -#: ../src/iop/colorchecker.c:310 +#: ../src/iop/colorchecker.c:324 msgid "Helmholtz/Kohlrausch monochrome" msgstr "Helmholtz / Kohlrausch mustavalkoinen" -#: ../src/iop/colorchecker.c:327 +#: ../src/iop/colorchecker.c:341 msgid "Fuji Astia emulation" msgstr "Fuji Astia jäljittely" -#: ../src/iop/colorchecker.c:341 +#: ../src/iop/colorchecker.c:355 msgid "Fuji Classic Chrome emulation" msgstr "Fuji Classic Chrome jäljittely" -#: ../src/iop/colorchecker.c:355 +#: ../src/iop/colorchecker.c:369 msgid "Fuji Monochrome emulation" msgstr "Fuji Monochrome jäljittely" -#: ../src/iop/colorchecker.c:369 +#: ../src/iop/colorchecker.c:383 msgid "Fuji Provia emulation" msgstr "Fuji Provia jäljittely" -#: ../src/iop/colorchecker.c:383 +#: ../src/iop/colorchecker.c:397 msgid "Fuji Velvia emulation" msgstr "Fuji Velvia jäljittely" -#: ../src/iop/colorchecker.c:841 ../src/iop/colorchecker.c:1436 +#: ../src/iop/colorchecker.c:846 ../src/iop/colorchecker.c:1441 #, c-format msgid "patch #%d" msgstr "Paikka #%d" -#: ../src/iop/colorchecker.c:1283 +#: ../src/iop/colorchecker.c:1288 #, c-format msgid "" "(%2.2f %2.2f %2.2f)\n" @@ -14935,15 +15499,15 @@ "Oikea napsaus poistaa paikan.\n" "SHIFT+napsaus korvaa värin valinnassa paikan." -#: ../src/iop/colorchecker.c:1431 +#: ../src/iop/colorchecker.c:1436 msgid "patch" msgstr "Paikka" -#: ../src/iop/colorchecker.c:1432 +#: ../src/iop/colorchecker.c:1437 msgid "color checker patch" msgstr "Värikortin paikka" -#: ../src/iop/colorchecker.c:1446 +#: ../src/iop/colorchecker.c:1451 msgid "" "adjust target color Lab 'L' channel\n" "lower values darken target color while higher brighten it" @@ -14951,7 +15515,7 @@ "Muuta Lab L-kanavan kohdeväriä\n" "Alhaiset arvot tummentavat ja korkeat kirkastavat väriä." -#: ../src/iop/colorchecker.c:1454 +#: ../src/iop/colorchecker.c:1459 msgid "" "adjust target color Lab 'a' channel\n" "lower values shift target color towards greens while higher shift towards " @@ -14960,11 +15524,11 @@ "Muuta Lab a-kanavan kohdeväriä\n" "Alhaiset arvot muuttavat kohdevärin vihreään ja korkeat magentaan." -#: ../src/iop/colorchecker.c:1457 +#: ../src/iop/colorchecker.c:1462 msgid "green-magenta offset" msgstr "Vihreä-magenta poikkeama" -#: ../src/iop/colorchecker.c:1466 +#: ../src/iop/colorchecker.c:1471 msgid "" "adjust target color Lab 'b' channel\n" "lower values shift target color towards blues while higher shift towards " @@ -14973,11 +15537,11 @@ "Muuta Lab b-kanavan kohdeväriä\n" "Alhaiset arvot muuttavat kohdevärin siniseen ja korkeat keltaiseen." -#: ../src/iop/colorchecker.c:1469 +#: ../src/iop/colorchecker.c:1474 msgid "blue-yellow offset" msgstr "Sininen-keltainen poikkeama" -#: ../src/iop/colorchecker.c:1478 +#: ../src/iop/colorchecker.c:1483 msgid "" "adjust target color saturation\n" "adjusts 'a' and 'b' channels of target color in Lab space simultaneously\n" @@ -14988,11 +15552,11 @@ "Muuta kohdevärin a- ja b-kanavaa Lab-avaruudessa yhtäaikaisesti.\n" "Alhaiset arvot vähentävät ja korkeat lisäävät värikylläisyyttä." -#: ../src/iop/colorchecker.c:1487 +#: ../src/iop/colorchecker.c:1492 msgid "target color" msgstr "Kohdeväri" -#: ../src/iop/colorchecker.c:1490 +#: ../src/iop/colorchecker.c:1495 msgid "" "control target color of the patches\n" "relative - target color is relative from the patch original color\n" @@ -15002,21 +15566,21 @@ "Suhteellinen - kohdeväri on suhteessa paikan alkuperäiseen väriin.\n" "Absoluuttinen- kohdeväri on absoluuttinen Lab-arvoon." -#: ../src/iop/colorchecker.c:1494 +#: ../src/iop/colorchecker.c:1499 msgid "absolute" msgstr "Absoluuttinen" -#: ../src/iop/colorcontrast.c:85 +#: ../src/iop/colorcontrast.c:77 msgid "color contrast" msgstr "Värikontrasti" -#: ../src/iop/colorcontrast.c:95 +#: ../src/iop/colorcontrast.c:87 msgid "" "increase saturation and separation between\n" "opposite colors" msgstr "Lisää kuvan värikylläisyyttä ja vastakkaisten värien erottelua" -#: ../src/iop/colorcontrast.c:324 +#: ../src/iop/colorcontrast.c:330 msgid "" "steepness of the a* curve in Lab\n" "lower values desaturate greens and magenta while higher saturate them" @@ -15025,7 +15589,7 @@ "Matalat arvot vähentävät vihreän ja magentan värikylläisyyttä,\n" "kun taas korkeat arvot korostavat niitä." -#: ../src/iop/colorcontrast.c:331 +#: ../src/iop/colorcontrast.c:337 msgid "" "steepness of the b* curve in Lab\n" "lower values desaturate blues and yellows while higher saturate them" @@ -15042,19 +15606,19 @@ msgid "correct white balance selectively for blacks and whites" msgstr "Korjaa valikoidusti kuvan tummien ja vaaleiden osien valkotasapainoa" -#: ../src/iop/colorcorrection.c:107 +#: ../src/iop/colorcorrection.c:109 msgid "warm tone" msgstr "Lämmin sävy" -#: ../src/iop/colorcorrection.c:115 +#: ../src/iop/colorcorrection.c:117 msgid "warming filter" msgstr "Lämmittävä suodin" -#: ../src/iop/colorcorrection.c:123 +#: ../src/iop/colorcorrection.c:125 msgid "cooling filter" msgstr "Viilentävä suodin" -#: ../src/iop/colorcorrection.c:257 +#: ../src/iop/colorcorrection.c:250 msgid "" "drag the line for split-toning. bright means highlights, dark means shadows. " "use mouse wheel to change saturation." @@ -15062,7 +15626,7 @@ "Raahaa viiva jakosävytykselle. Kirkas tarkoittaa huippuvaloja, tumma " "varjoja. Käytä hiiren rullaa muuttamaan värikylläisyyttä." -#: ../src/iop/colorcorrection.c:276 +#: ../src/iop/colorcorrection.c:269 msgid "set the global saturation" msgstr "Aseta yleinen värikylläisyys." @@ -15079,7 +15643,7 @@ "käyttäen väriprofiileja RGB-arvojen uudelleenkuvaamisessa" #: ../src/iop/colorin.c:133 ../src/iop/colorout.c:89 ../src/iop/demosaic.c:293 -#: ../src/iop/rawprepare.c:158 +#: ../src/iop/rawprepare.c:174 msgid "mandatory" msgstr "Pakollinen" @@ -15087,7 +15651,7 @@ msgid "defined by profile" msgstr "Profiilin määrittämä" -#: ../src/iop/colorin.c:542 +#: ../src/iop/colorin.c:582 #, c-format msgid "" "can't extract matrix from colorspace `%s', it will be replaced by Rec2020 " @@ -15096,26 +15660,26 @@ "Ei saada otettua matriisia väriavaruudesta `%s', se korvataan Rec2020 RGB:" "llä!" -#: ../src/iop/colorin.c:1424 +#: ../src/iop/colorin.c:1362 #, c-format msgid "`%s' color matrix not found!" msgstr "`%s' värimatriisia ei löytynyt!" -#: ../src/iop/colorin.c:1463 +#: ../src/iop/colorin.c:1401 msgid "input profile could not be generated!" msgstr "Tuonnin väriprofiilia ei voitu luoda!" -#: ../src/iop/colorin.c:1560 +#: ../src/iop/colorin.c:1498 msgid "unsupported input profile has been replaced by linear Rec709 RGB!" msgstr "" "Tukematon tuonnin väriprofiili on korvattu suoralinjaisella Rec709 RGB-" "väriprofiililla!" -#: ../src/iop/colorin.c:1844 +#: ../src/iop/colorin.c:1782 msgid "external ICC profiles" -msgstr "Ulkoiset ICC-väriprofiilit" +msgstr "ulkoiset ICC-väriprofiilit" -#: ../src/iop/colorin.c:1889 +#: ../src/iop/colorin.c:1827 #, c-format msgid "" "embedded ICC profile properties:\n" @@ -15138,43 +15702,43 @@ "Tekijänoikeus: <b>%s</b>\n" "\n" -#: ../src/iop/colorin.c:2084 +#: ../src/iop/colorin.c:2022 msgid "input profile" msgstr "Tuonnin väriprofiili" -#: ../src/iop/colorin.c:2088 +#: ../src/iop/colorin.c:2026 msgid "working profile" msgstr "Työskentelytilan väriprofiili" -#: ../src/iop/colorin.c:2097 +#: ../src/iop/colorin.c:2035 msgid "working ICC profiles" -msgstr "Työskentelytilan ICC-väriprofiilit" +msgstr "työskentelytilan ICC-väriprofiilit" -#: ../src/iop/colorin.c:2109 +#: ../src/iop/colorin.c:2047 msgid "confine Lab values to gamut of RGB color space" msgstr "Rajoita Lab-arvot RGB-sävyasteikkoon." -#: ../src/iop/colorize.c:84 +#: ../src/iop/colorize.c:75 msgid "colorize" msgstr "Väritys" -#: ../src/iop/colorize.c:104 +#: ../src/iop/colorize.c:97 msgid "overlay a solid color on the image" msgstr "Aseta kuvan päälle kiinteävärinen peittokuva" -#: ../src/iop/colorize.c:341 ../src/iop/splittoning.c:485 +#: ../src/iop/colorize.c:354 ../src/iop/splittoning.c:481 msgid "select the hue tone" msgstr "Valitse sävyn värivivahde." -#: ../src/iop/colorize.c:347 +#: ../src/iop/colorize.c:360 msgid "select the saturation shadow tone" msgstr "Valitse varjojen värikylläisyys." -#: ../src/iop/colorize.c:351 +#: ../src/iop/colorize.c:364 msgid "lightness of color" msgstr "Värin vaaleus." -#: ../src/iop/colorize.c:355 +#: ../src/iop/colorize.c:368 msgid "mix value of source lightness" msgstr "Lähteen vaaleuden sekoituksen arvo." @@ -15187,35 +15751,35 @@ "transfer a color palette and tonal repartition from one image to another" msgstr "Siirrä kuvan väripaletti ja sävyalueen uudelleen jako toiseen kuvaan" -#: ../src/iop/colormapping.c:1030 +#: ../src/iop/colormapping.c:1019 msgid "source clusters:" msgstr "Lähderyhmät:" -#: ../src/iop/colormapping.c:1036 +#: ../src/iop/colormapping.c:1025 msgid "target clusters:" msgstr "Kohderyhmät:" -#: ../src/iop/colormapping.c:1045 +#: ../src/iop/colormapping.c:1034 msgid "acquire as source" msgstr "Poimi lähdekuvaksi" -#: ../src/iop/colormapping.c:1049 +#: ../src/iop/colormapping.c:1038 msgid "analyze this image as a source image" msgstr "Analysoi tämä kuva lähdekuvaksi." -#: ../src/iop/colormapping.c:1051 +#: ../src/iop/colormapping.c:1040 msgid "acquire as target" msgstr "Poimi kohdekuvaksi" -#: ../src/iop/colormapping.c:1055 +#: ../src/iop/colormapping.c:1044 msgid "analyze this image as a target image" msgstr "Analysoi tämä kuva kohdekuvaksi." -#: ../src/iop/colormapping.c:1058 +#: ../src/iop/colormapping.c:1047 msgid "number of clusters to find in image. value change resets all clusters" msgstr "Kuvasta etsittävien ryhmien määrä. Arvon muutos nollaa kaikki ryhmät." -#: ../src/iop/colormapping.c:1061 +#: ../src/iop/colormapping.c:1050 msgid "" "how clusters are mapped. low values: based on color proximity, high values: " "based on color dominance" @@ -15223,7 +15787,7 @@ "Ryhmien etsintä. Pienellä arvolla etsintä perustuu värin läheisyyteen. " "Suurella arvolla etsintä perustuu värin hallitsevuuteen." -#: ../src/iop/colormapping.c:1066 +#: ../src/iop/colormapping.c:1055 msgid "level of histogram equalization" msgstr "Histogrammin tasauksen voimakkuus" @@ -15243,115 +15807,115 @@ msgid "non-linear, RGB or Lab, display-referred" msgstr "Epälineaarinen, RGB tai Lab, Näyttö-viitattu" -#: ../src/iop/colorout.c:679 +#: ../src/iop/colorout.c:695 msgid "missing output profile has been replaced by sRGB!" msgstr "Puuttuva vientiväriprofiili on korvattu sRGB-väriprofiililla!" -#: ../src/iop/colorout.c:701 +#: ../src/iop/colorout.c:717 msgid "missing softproof profile has been replaced by sRGB!" msgstr "" "Vedoksen esikatselun puuttuva väriprofiili on korvattu sRGB-väriprofiililla!" -#: ../src/iop/colorout.c:744 +#: ../src/iop/colorout.c:760 msgid "unsupported output profile has been replaced by sRGB!" msgstr "Tukematon viennin väriprofiili on korvattu sRGB-väriprofiililla!" -#: ../src/iop/colorout.c:869 +#: ../src/iop/colorout.c:885 msgid "output intent" msgstr "Ulostulon muunnosasetukset" -#: ../src/iop/colorout.c:870 +#: ../src/iop/colorout.c:886 msgid "rendering intent" msgstr "Muodostusmenetelmä" -#: ../src/iop/colorout.c:872 ../src/libs/export.c:1246 +#: ../src/iop/colorout.c:888 ../src/libs/export.c:1358 #: ../src/libs/print_settings.c:2475 ../src/libs/print_settings.c:2824 -#: ../src/views/darkroom.c:2518 ../src/views/lighttable.c:1176 +#: ../src/views/darkroom.c:2359 ../src/views/lighttable.c:1176 msgid "perceptual" msgstr "Aistiperustainen" -#: ../src/iop/colorout.c:873 ../src/libs/export.c:1247 +#: ../src/iop/colorout.c:889 ../src/libs/export.c:1359 #: ../src/libs/print_settings.c:2476 ../src/libs/print_settings.c:2825 -#: ../src/views/darkroom.c:2519 ../src/views/lighttable.c:1177 +#: ../src/views/darkroom.c:2360 ../src/views/lighttable.c:1177 msgid "relative colorimetric" msgstr "Suhteellinen kolorimetrinen" -#: ../src/iop/colorout.c:874 ../src/libs/export.c:1248 +#: ../src/iop/colorout.c:890 ../src/libs/export.c:1360 #: ../src/libs/print_settings.c:2477 ../src/libs/print_settings.c:2826 -#: ../src/views/darkroom.c:2520 ../src/views/lighttable.c:1178 +#: ../src/views/darkroom.c:2361 ../src/views/lighttable.c:1178 msgctxt "rendering intent" msgid "saturation" msgstr "Värikylläisyyteen perustuva" -#: ../src/iop/colorout.c:875 ../src/libs/export.c:1249 +#: ../src/iop/colorout.c:891 ../src/libs/export.c:1361 #: ../src/libs/print_settings.c:2478 ../src/libs/print_settings.c:2827 -#: ../src/views/darkroom.c:2521 ../src/views/lighttable.c:1179 +#: ../src/views/darkroom.c:2362 ../src/views/lighttable.c:1179 msgid "absolute colorimetric" msgstr "Absoluuttinen kolorimetrinen" -#: ../src/iop/colorout.c:893 +#: ../src/iop/colorout.c:909 msgid "export ICC profiles" -msgstr "Vie ICC-väriprofiilit" +msgstr "viennin ICC-väriprofiilit" -#: ../src/iop/colorreconstruction.c:129 +#: ../src/iop/colorreconstruction.c:114 msgid "color reconstruction" msgstr "Värin palautusmenetelmä" -#: ../src/iop/colorreconstruction.c:134 +#: ../src/iop/colorreconstruction.c:119 msgid "recover clipped highlights by propagating surrounding colors" msgstr "Palauta leikkaantuneet huippuvalot ympäröivien pikseleiden väreistä" -#: ../src/iop/colorreconstruction.c:628 ../src/iop/colorreconstruction.c:1040 -#: ../src/iop/globaltonemap.c:193 ../src/iop/globaltonemap.c:362 -#: ../src/iop/hazeremoval.c:553 ../src/iop/hazeremoval.c:788 -#: ../src/iop/levels.c:336 +#: ../src/iop/colorreconstruction.c:647 ../src/iop/colorreconstruction.c:1053 +#: ../src/iop/globaltonemap.c:227 ../src/iop/globaltonemap.c:396 +#: ../src/iop/hazeremoval.c:541 ../src/iop/hazeremoval.c:776 +#: ../src/iop/levels.c:358 msgid "inconsistent output" msgstr "Epäjohdonmukainen ulostulo" -#: ../src/iop/colorreconstruction.c:666 +#: ../src/iop/colorreconstruction.c:685 msgid "module `color reconstruction' failed" msgstr "`Värin palautusmenetelmä' -moduulin suoritus epäonnistui." -#: ../src/iop/colorreconstruction.c:1237 +#: ../src/iop/colorreconstruction.c:1246 msgid "spatial" msgstr "Alueellinen" -#: ../src/iop/colorreconstruction.c:1238 +#: ../src/iop/colorreconstruction.c:1247 msgid "range" msgstr "Alue" -#: ../src/iop/colorreconstruction.c:1239 +#: ../src/iop/colorreconstruction.c:1248 msgid "precedence" msgstr "Etusija" -#: ../src/iop/colorreconstruction.c:1255 +#: ../src/iop/colorreconstruction.c:1264 msgid "pixels with lightness values above this threshold are corrected" msgstr "Tätä arvoa kirkkaammat pikselit korjataan." -#: ../src/iop/colorreconstruction.c:1256 +#: ../src/iop/colorreconstruction.c:1265 msgid "how far to look for replacement colors in spatial dimensions" msgstr "Kuinka kaukaa alueesta etsitään korvaavia värejä." -#: ../src/iop/colorreconstruction.c:1257 +#: ../src/iop/colorreconstruction.c:1266 msgid "how far to look for replacement colors in the luminance dimension" msgstr "Kuinka kaukaa kirkkaudesta korvaavia värejä etsitään." -#: ../src/iop/colorreconstruction.c:1258 +#: ../src/iop/colorreconstruction.c:1267 msgid "if and how to give precedence to specific replacement colors" msgstr "Korvaavien värien etusijaisuus." -#: ../src/iop/colorreconstruction.c:1259 +#: ../src/iop/colorreconstruction.c:1268 msgid "the hue tone which should be given precedence over other hue tones" msgstr "" "Sävyn värivivahde jolle annetaan etusija muihin sävyn värivivahteisiin " "verrattuna." -#: ../src/iop/colorreconstruction.c:1261 ../src/iop/demosaic.c:1277 -#: ../src/iop/highlights.c:1179 +#: ../src/iop/colorreconstruction.c:1270 ../src/iop/demosaic.c:1324 +#: ../src/iop/highlights.c:1258 msgid "not applicable" msgstr "Ei sovelleta" -#: ../src/iop/colorreconstruction.c:1262 +#: ../src/iop/colorreconstruction.c:1271 msgid "no highlights reconstruction for monochrome images" msgstr "Ei huippuvalojen palautusta mustavalkoisille kuville." @@ -15365,7 +15929,7 @@ "Tämä moduuli on vanhentunut. Kannattaa käyttää värin kartoitus-moduulia " "tämän sijaan." -#: ../src/iop/colortransfer.c:439 +#: ../src/iop/colortransfer.c:441 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -15375,44 +15939,44 @@ "ja se on näkyvissä ainoastaan, jotta voit kytkeä sen pois päältä\n" "ja siirtyä käyttämään uutta värinkartoitusmoduulia." -#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2332 +#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2573 msgid "color zones" msgstr "Värialue" -#: ../src/iop/colorzones.c:144 +#: ../src/iop/colorzones.c:145 msgid "selectively shift hues, chroma and lightness of pixels" msgstr "" "Muuta valikoidusti kuvan pikseleiden sävyjä, värikylläisyyttä ja kirkkautta" -#: ../src/iop/colorzones.c:606 +#: ../src/iop/colorzones.c:684 msgid "B&W: with red" msgstr "Mustavalkoinen: punaisella" -#: ../src/iop/colorzones.c:629 +#: ../src/iop/colorzones.c:707 msgid "B&W: with skin tones" msgstr "Mustavalkoinen: ihonvärit" -#: ../src/iop/colorzones.c:652 +#: ../src/iop/colorzones.c:732 msgid "polarizing filter" msgstr "Polarisaatiosuodin" -#: ../src/iop/colorzones.c:673 +#: ../src/iop/colorzones.c:753 msgid "natural skin tones" msgstr "Luonnolliset ihonsävyt" -#: ../src/iop/colorzones.c:704 +#: ../src/iop/colorzones.c:784 msgid "B&W: film" msgstr "Mustavalkoinen: filmi" -#: ../src/iop/colorzones.c:724 +#: ../src/iop/colorzones.c:804 msgid "HSL base setting" msgstr "HSL-oletusasetukset" -#: ../src/iop/colorzones.c:2264 +#: ../src/iop/colorzones.c:2500 msgid "orange" msgstr "Oranssi" -#: ../src/iop/colorzones.c:2421 ../src/iop/rgbcurve.c:1375 +#: ../src/iop/colorzones.c:2673 ../src/iop/rgbcurve.c:1375 msgid "" "create a curve based on an area from the image\n" "drag to create a flat curve\n" @@ -15424,48 +15988,48 @@ "CTRL+raahaus luo positiivisen käyrän.\n" "SHIFT+raahaus luo negatiivisen käyrän." -#: ../src/iop/colorzones.c:2425 ../src/iop/rgbcurve.c:1379 +#: ../src/iop/colorzones.c:2677 ../src/iop/rgbcurve.c:1379 msgid "create curve" msgstr "Luo käyrä" #. edit by area -#: ../src/iop/colorzones.c:2442 +#: ../src/iop/colorzones.c:2696 msgid "edit by area" msgstr "Muokkaa alueena" -#: ../src/iop/colorzones.c:2447 +#: ../src/iop/colorzones.c:2702 msgid "edit the curve nodes by area" msgstr "Muokkaa käyrän solmuja alueena." -#: ../src/iop/colorzones.c:2454 +#: ../src/iop/colorzones.c:2710 msgid "display selection" msgstr "Esikatselu." -#: ../src/iop/colorzones.c:2463 +#: ../src/iop/colorzones.c:2722 msgid "choose selection criterion, will be the abscissa in the graph" msgstr "Aseta valintakriteeri, tulee kuvaajan vaaka-akseliksi." -#: ../src/iop/colorzones.c:2466 +#: ../src/iop/colorzones.c:2725 msgid "choose between a smoother or stronger effect" msgstr "Valitse joko tasainen tai voimakas vaikutus." -#: ../src/iop/colorzones.c:2494 ../src/iop/rgbcurve.c:1410 -#: ../src/iop/tonecurve.c:1172 +#: ../src/iop/colorzones.c:2762 ../src/iop/rgbcurve.c:1410 +#: ../src/iop/tonecurve.c:1194 msgid "interpolation method" msgstr "Interpolointitapa" -#: ../src/iop/colorzones.c:2496 ../src/iop/rgbcurve.c:1412 -#: ../src/iop/tonecurve.c:1174 +#: ../src/iop/colorzones.c:2764 ../src/iop/rgbcurve.c:1412 +#: ../src/iop/tonecurve.c:1196 msgid "centripetal spline" msgstr "Keskihakuinensplini" -#: ../src/iop/colorzones.c:2497 ../src/iop/rgbcurve.c:1413 -#: ../src/iop/tonecurve.c:1175 +#: ../src/iop/colorzones.c:2765 ../src/iop/rgbcurve.c:1413 +#: ../src/iop/tonecurve.c:1197 msgid "monotonic spline" msgstr "Monotoninensplini" -#: ../src/iop/colorzones.c:2500 ../src/iop/rgbcurve.c:1416 -#: ../src/iop/tonecurve.c:1177 +#: ../src/iop/colorzones.c:2768 ../src/iop/rgbcurve.c:1416 +#: ../src/iop/tonecurve.c:1199 msgid "" "change this method if you see oscillations or cusps in the curve\n" "- cubic spline is better to produce smooth curves but oscillates when nodes " @@ -15483,23 +16047,23 @@ "- Monotoninensplini tuottaa paremman tarkkuuden puhtaasti analyyttisille " "toimille (log, gamma, exp)." -#: ../src/iop/crop.c:132 +#: ../src/iop/crop.c:122 msgid "crop" msgstr "Rajaa" -#: ../src/iop/crop.c:137 +#: ../src/iop/crop.c:127 msgid "reframe|distortion" msgstr "Uudelleen sommittelu|Vääristymä" -#: ../src/iop/crop.c:143 +#: ../src/iop/crop.c:133 msgid "change the framing" msgstr "Muuta sommittelua" -#: ../src/iop/crop.c:1674 +#: ../src/iop/crop.c:1651 msgid "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag" msgstr "<b>Muuta kokoa</b>: raahaa, <b>Säilytä kuvasuhde</b>: SHIFT+raahaa" -#: ../src/iop/crop.c:1683 +#: ../src/iop/crop.c:1660 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag" @@ -15523,7 +16087,7 @@ "Tämä moduuli on vanhentunut. Kannattaa käyttää värikorjaus-moduulia tämän " "sijaan." -#: ../src/iop/defringe.c:415 +#: ../src/iop/defringe.c:417 msgid "" "method for color protection:\n" " - global average: fast, might show slightly wrong previews in high " @@ -15544,11 +16108,11 @@ " - Muuttumaton: nopea, ainoastaan kynnysarvoa käytetään muuttumattomana " "rajana." -#: ../src/iop/defringe.c:422 +#: ../src/iop/defringe.c:424 msgid "radius for detecting fringe" msgstr "Värivirhetunnistuksen säde" -#: ../src/iop/defringe.c:425 +#: ../src/iop/defringe.c:427 msgid "threshold for defringe, higher values mean less defringing" msgstr "Värivirhekorjauksen kynnysarvo, korkeampi arvo vähentää värivirheitä." @@ -15561,12 +16125,12 @@ msgstr "" "Palauta täydet RGB-pikselit kuvakennon värisuotimen matriisin lukemista" -#: ../src/iop/demosaic.c:1086 +#: ../src/iop/demosaic.c:1133 #, c-format msgid "`%s' color matrix not found for 4bayer image!" msgstr "`%s' värimatriisia ei löytynyt 4Bayer-kuvalle!" -#: ../src/iop/demosaic.c:1238 +#: ../src/iop/demosaic.c:1285 msgid "" "Bayer sensor demosaicing method, PPG and RCD are fast, AMaZE and LMMSE are " "slow.\n" @@ -15578,7 +16142,7 @@ "LMMSE soveltuu korkean ISO herkkyyden kuville.\n" "Mosaiikin kaksoispalausmenetelmät kaksinkertaistavat käsittelyajan." -#: ../src/iop/demosaic.c:1242 +#: ../src/iop/demosaic.c:1289 msgid "" "X-Trans sensor demosaicing method, Markesteijn 3-pass and frequency domain " "chroma are slow.\n" @@ -15588,11 +16152,11 @@ "taajuusalan kroma ovat hitaita.\n" "Mosaiikin kaksoispalausmenetelmät kaksinkertaistavat käsittelyajan." -#: ../src/iop/demosaic.c:1248 +#: ../src/iop/demosaic.c:1295 msgid "Bayer4 sensor demosaicing methods." msgstr "Bayer4 kennon mosaiikin palautusmenetelmät." -#: ../src/iop/demosaic.c:1252 +#: ../src/iop/demosaic.c:1299 msgid "" "threshold for edge-aware median.\n" "set to 0.0 to switch off\n" @@ -15602,7 +16166,7 @@ "Aseta 0.0 kytkeäksesi pois päältä.\n" "Aseta 1.0 jättääksesi reunat huomioimatta." -#: ../src/iop/demosaic.c:1257 +#: ../src/iop/demosaic.c:1304 msgid "" "contrast threshold for dual demosaic.\n" "set to 0.0 for high frequency content\n" @@ -15614,7 +16178,7 @@ "Aseta 1.0 tasaiselle sisällölle.\n" "Vaihda tila maskin visualisoimiseksi." -#: ../src/iop/demosaic.c:1265 +#: ../src/iop/demosaic.c:1312 msgid "" "LMMSE refinement steps. the median steps average the output,\n" "refine adds some recalculation of red & blue channels" @@ -15622,49 +16186,49 @@ "LMMSE:n hienosäädön askeleet. Mediaaniaskel keskiarvoistaa lähdön,\n" "hienosäätö lisää punaisen ja sinisen kanavan uudelleenlaskentaa." -#: ../src/iop/demosaic.c:1268 +#: ../src/iop/demosaic.c:1315 msgid "how many color smoothing median steps after demosaicing" msgstr "Värivirheiden tasoituskerrat mosaiikinpalautuksen jälkeen." -#: ../src/iop/demosaic.c:1271 +#: ../src/iop/demosaic.c:1318 msgid "green channels matching method" msgstr "Vihreiden kanavien kohdistustapa." -#: ../src/iop/demosaic.c:1278 +#: ../src/iop/demosaic.c:1325 msgid "demosaicing is only used for color raw images" msgstr "Mosaiikin palautus tarvitaan ainoastaan värillisille raakakuville." -#: ../src/iop/denoiseprofile.c:714 +#: ../src/iop/denoiseprofile.c:766 msgid "wavelets: chroma only" msgstr "Aallokkeet: vain kroma" -#: ../src/iop/denoiseprofile.c:720 +#: ../src/iop/denoiseprofile.c:772 msgid "denoise (profiled)" msgstr "Kohinanpoisto (profiloitu)" -#: ../src/iop/denoiseprofile.c:726 +#: ../src/iop/denoiseprofile.c:778 msgid "denoise using noise statistics profiled on sensors" msgstr "Poista kuvasta kohinaa käyttäen kuvakennon tilastollista profiilia" -#: ../src/iop/denoiseprofile.c:2846 +#: ../src/iop/denoiseprofile.c:2850 #, c-format msgid "found match for ISO %d" msgstr "Löydettiin ISO %d vastaavuus" -#: ../src/iop/denoiseprofile.c:2855 +#: ../src/iop/denoiseprofile.c:2859 #, c-format msgid "interpolated from ISO %d and %d" msgstr "Interpoloitiin ISO-arvosta %d ja %d" -#: ../src/iop/denoiseprofile.c:3719 +#: ../src/iop/denoiseprofile.c:3723 msgid "Y0" msgstr "Y0" -#: ../src/iop/denoiseprofile.c:3720 +#: ../src/iop/denoiseprofile.c:3724 msgid "U0V0" msgstr "U0V0" -#: ../src/iop/denoiseprofile.c:3760 +#: ../src/iop/denoiseprofile.c:3764 msgid "" "use only with a perfectly\n" "uniform image if you want to\n" @@ -15674,36 +16238,36 @@ "yhtenäiselle kuvalle, jos haluat\n" "arvioida kohinan vaihtelu." -#: ../src/iop/denoiseprofile.c:3766 +#: ../src/iop/denoiseprofile.c:3770 msgid "variance red: " msgstr "Punaisen vaihtelu: " -#: ../src/iop/denoiseprofile.c:3770 +#: ../src/iop/denoiseprofile.c:3774 msgid "variance computed on the red channel" msgstr "Punaisesta kanavasta laskettu vaihtelu" -#: ../src/iop/denoiseprofile.c:3775 +#: ../src/iop/denoiseprofile.c:3779 msgid "variance green: " msgstr "Vihreän vaihtelu: " -#: ../src/iop/denoiseprofile.c:3779 +#: ../src/iop/denoiseprofile.c:3783 msgid "variance computed on the green channel" msgstr "Vihreästä kanavasta laskettu vaihtelu" -#: ../src/iop/denoiseprofile.c:3784 +#: ../src/iop/denoiseprofile.c:3788 msgid "variance blue: " msgstr "Sinisen vaihtelu: " -#: ../src/iop/denoiseprofile.c:3788 +#: ../src/iop/denoiseprofile.c:3792 msgid "variance computed on the blue channel" msgstr "Sinisestä kanavasta laskettu vaihtelu" -#: ../src/iop/denoiseprofile.c:3799 ../src/libs/export.c:1208 +#: ../src/iop/denoiseprofile.c:3803 ../src/libs/export.c:1320 #: ../src/libs/print_settings.c:2418 ../src/libs/print_settings.c:2774 msgid "profile" msgstr "Profiili" -#: ../src/iop/denoiseprofile.c:3833 +#: ../src/iop/denoiseprofile.c:3837 msgid "" "adapt denoising according to the\n" "white balance coefficients.\n" @@ -15718,7 +16282,7 @@ "Valinta tulisi poistaa, jos aiemmassa instanssissa on\n" "käytetty värin yhdistämisen tilaa." -#: ../src/iop/denoiseprofile.c:3840 +#: ../src/iop/denoiseprofile.c:3844 msgid "" "fix bugs in Anscombe transform resulting\n" "in undersmoothing of the green channel in\n" @@ -15739,11 +16303,11 @@ "käyttöönotto muuttaa kohinanpoistoa. Kun asetus on käytössä\n" "et voi palata takaisin vanhaan algoritmiin." -#: ../src/iop/denoiseprofile.c:3850 +#: ../src/iop/denoiseprofile.c:3854 msgid "profile used for variance stabilization" msgstr "Vaihtelun tasaamiseen käytetty profiili." -#: ../src/iop/denoiseprofile.c:3852 +#: ../src/iop/denoiseprofile.c:3856 msgid "" "method used in the denoising core.\n" "non-local means works best for `lightness' blending,\n" @@ -15753,7 +16317,7 @@ "Epäpaikallinen keskiarvo toimii parhaiten `vaaleuden' yhdistykselle.\n" "Aallokkeet toimii parhaiten 'värin' yhdistykselle." -#: ../src/iop/denoiseprofile.c:3856 +#: ../src/iop/denoiseprofile.c:3860 msgid "" "color representation used within the algorithm.\n" "RGB keeps the RGB channels separated,\n" @@ -15765,7 +16329,7 @@ "kun Y0U0V0 yhdistää kanavat kroman ja\n" "luman erilliseen kohinan poistoon." -#: ../src/iop/denoiseprofile.c:3861 +#: ../src/iop/denoiseprofile.c:3865 msgid "" "radius of the patches to match.\n" "increase for more sharpness on strong edges, and better denoising of smooth " @@ -15779,7 +16343,7 @@ "Jos yksityiskohdat ovat liian tasaisia, vähennä arvoa tai suurenna " "yksityiskohtien liukusäätimen arvoa." -#: ../src/iop/denoiseprofile.c:3867 +#: ../src/iop/denoiseprofile.c:3871 msgid "" "emergency use only: radius of the neighborhood to search patches in. " "increase for better denoising performance, but watch the long runtimes! " @@ -15790,7 +16354,7 @@ "pidempään! Suuren toimintasäteen käyttö kestää erittäin pitkään. Sinua on " "varoitettu!" -#: ../src/iop/denoiseprofile.c:3873 +#: ../src/iop/denoiseprofile.c:3877 msgid "" "scattering of the neighborhood to search patches in.\n" "increase for better coarse-grain noise reduction.\n" @@ -15800,7 +16364,7 @@ "Kasvata arvoa vähentääksesi karkearakeista kohinaa.\n" "Ei vaikuta suorituskykyyn." -#: ../src/iop/denoiseprofile.c:3877 +#: ../src/iop/denoiseprofile.c:3881 msgid "" "increase the weight of the central pixel\n" "of the patch in the patch comparison.\n" @@ -15812,11 +16376,11 @@ "yksityiskohtien palauttamiseksi, kun\n" "käytetään suurempaa paikan kokoa." -#: ../src/iop/denoiseprofile.c:3881 +#: ../src/iop/denoiseprofile.c:3885 msgid "finetune denoising strength" msgstr "Hienosäädä kohinanpoiston voimakkuutta." -#: ../src/iop/denoiseprofile.c:3883 +#: ../src/iop/denoiseprofile.c:3887 msgid "" "controls the way parameters are autoset\n" "increase if shadows are not denoised enough\n" @@ -15828,7 +16392,7 @@ "kohinaa tai värikohina on häiritsevää.\n" "Tämä saattaa johtua kuvan alivalotuksesta." -#: ../src/iop/denoiseprofile.c:3888 +#: ../src/iop/denoiseprofile.c:3892 msgid "" "finetune shadows denoising.\n" "decrease to denoise more aggressively\n" @@ -15838,7 +16402,7 @@ "Vähennä arvoa voimakkaamman kohinanpoiston\n" "saavuttamiseksi kuvan tummilla alueilla." -#: ../src/iop/denoiseprofile.c:3892 +#: ../src/iop/denoiseprofile.c:3896 msgid "" "correct color cast in shadows.\n" "decrease if shadows are too purple.\n" @@ -15848,7 +16412,7 @@ "Vähennä arvoa, jos varjot ovat liian purppurat.\n" "Suurenna arvoa, jos varjot ovat liian vihreät." -#: ../src/iop/denoiseprofile.c:3896 +#: ../src/iop/denoiseprofile.c:3900 msgid "" "upgrade the variance stabilizing algorithm.\n" "new algorithm extends the current one.\n" @@ -15881,68 +16445,68 @@ "dekonvoluutiolla." #. deblurring presets -#: ../src/iop/diffuse.c:219 +#: ../src/iop/diffuse.c:246 msgid "lens deblur: soft" msgstr "Linssin sumennuksen poisto: pehmeä" -#: ../src/iop/diffuse.c:244 +#: ../src/iop/diffuse.c:271 msgid "lens deblur: medium" msgstr "Linssin sumennuksen poisto: keskiverto" -#: ../src/iop/diffuse.c:269 +#: ../src/iop/diffuse.c:296 msgid "lens deblur: hard" msgstr "Linssin sumennuksen poisto: kova" -#: ../src/iop/diffuse.c:295 +#: ../src/iop/diffuse.c:322 msgid "dehaze" msgstr "Udun poisto" -#: ../src/iop/diffuse.c:321 +#: ../src/iop/diffuse.c:348 msgid "denoise: fine" msgstr "Kohinanpoisto: hieno" -#: ../src/iop/diffuse.c:346 +#: ../src/iop/diffuse.c:373 msgid "denoise: medium" msgstr "Kohinanpoisto: keskiverto" -#: ../src/iop/diffuse.c:371 +#: ../src/iop/diffuse.c:398 msgid "denoise: coarse" msgstr "Kohinanpoisto: karkea" -#: ../src/iop/diffuse.c:446 +#: ../src/iop/diffuse.c:473 msgid "sharpen demosaicing: no AA filter" msgstr "Terävöitä mosaiikin palautus: ei AA suodinta" -#: ../src/iop/diffuse.c:472 +#: ../src/iop/diffuse.c:499 msgid "sharpen demosaicing: AA filter" msgstr "Terävöitä mosaiikin palautus: AA suodin" -#: ../src/iop/diffuse.c:499 +#: ../src/iop/diffuse.c:526 msgid "simulate watercolor" msgstr "Simuloi vesiväriä" -#: ../src/iop/diffuse.c:524 +#: ../src/iop/diffuse.c:551 msgid "simulate line drawing" msgstr "Simuloi viivapiirosta" -#: ../src/iop/diffuse.c:576 +#: ../src/iop/diffuse.c:603 msgid "inpaint highlights" msgstr "Maalaa huippuvalot" #. fast presets for slow hardware -#: ../src/iop/diffuse.c:603 +#: ../src/iop/diffuse.c:630 msgid "sharpness: fast" msgstr "Terävöitys: nopea" -#: ../src/iop/diffuse.c:655 +#: ../src/iop/diffuse.c:682 msgid "sharpness: strong" msgstr "Terävöitys: voimakas" -#: ../src/iop/diffuse.c:680 +#: ../src/iop/diffuse.c:707 msgid "local contrast: fast" msgstr "Paikallinen kontrasti: nopea" -#: ../src/iop/diffuse.c:1391 ../src/iop/diffuse.c:1666 +#: ../src/iop/diffuse.c:1418 ../src/iop/diffuse.c:1693 msgid "diffuse/sharpen failed to allocate memory, check your RAM settings" msgstr "" "Hajotus/terävöitys ei saanut varattua muistia, tarkista RAM-muistin " @@ -15950,13 +16514,13 @@ #. Additional parameters #. Camera settings -#: ../src/iop/diffuse.c:1782 ../src/iop/splittoning.c:537 +#: ../src/iop/diffuse.c:1797 ../src/iop/splittoning.c:533 #: ../src/libs/camera.c:486 msgctxt "section" msgid "properties" msgstr "Ominaisuudet" -#: ../src/iop/diffuse.c:1788 +#: ../src/iop/diffuse.c:1803 msgid "" "more iterations make the effect stronger but the module slower.\n" "this is analogous to giving more time to the diffusion reaction.\n" @@ -15968,7 +16532,7 @@ "Jos suunnittelet terävöitystä tai maalausta,\n" "useat toistot auttavat uudelleenmuodostamisessa." -#: ../src/iop/diffuse.c:1797 +#: ../src/iop/diffuse.c:1812 msgid "" "main scale of the diffusion.\n" "zero makes diffusion act on the finest details more heavily.\n" @@ -15982,7 +16546,7 @@ "Aseta nollaksi terävöitykseen ja kohinanpoistoon.\n" "Vaikuttaaksesi paikalliseen kontrastiin lisää arvoa." -#: ../src/iop/diffuse.c:1807 +#: ../src/iop/diffuse.c:1822 msgid "" "width of the diffusion around the central radius.\n" "high values diffuse on a large band of radii.\n" @@ -15996,12 +16560,12 @@ "Terävöityksessä säteen tulisi olla objektiivin\n" "sumennuksen leveyden kokoinen." -#: ../src/iop/diffuse.c:1814 +#: ../src/iop/diffuse.c:1829 msgctxt "section" msgid "speed (sharpen ↔ diffuse)" msgstr "Nopeus (terävöitä ↔ hajota)" -#: ../src/iop/diffuse.c:1821 +#: ../src/iop/diffuse.c:1836 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 1st order anisotropy (set below).\n" @@ -16017,7 +16581,7 @@ "positiiviset hajottavat ja sumentavat,\n" "nolla ei tee mitään." -#: ../src/iop/diffuse.c:1831 +#: ../src/iop/diffuse.c:1846 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 2nd order anisotropy (set below).\n" @@ -16033,7 +16597,7 @@ "positiiviset hajottavat ja sumentavat,\n" "nolla ei tee mitään." -#: ../src/iop/diffuse.c:1841 +#: ../src/iop/diffuse.c:1856 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 3rd order anisotropy (set below).\n" @@ -16049,7 +16613,7 @@ "positiiviset hajottavat ja sumentavat,\n" "nolla ei tee mitään." -#: ../src/iop/diffuse.c:1851 +#: ../src/iop/diffuse.c:1866 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 4th order anisotropy (set below).\n" @@ -16065,12 +16629,12 @@ "positiiviset hajottavat ja sumentavat,\n" "nolla ei tee mitään." -#: ../src/iop/diffuse.c:1857 +#: ../src/iop/diffuse.c:1872 msgctxt "section" msgid "direction" msgstr "Suunta" -#: ../src/iop/diffuse.c:1864 +#: ../src/iop/diffuse.c:1879 msgid "" "direction of 1st order speed (set above).\n" "\n" @@ -16084,7 +16648,7 @@ "Positiiviset arvot välttävät reunoja (valaistuksen samanarvonkäyriä).\n" "Nolla vaikuttaa molempiin saman verran (isotrooppinen)." -#: ../src/iop/diffuse.c:1873 +#: ../src/iop/diffuse.c:1888 msgid "" "direction of 2nd order speed (set above).\n" "\n" @@ -16098,7 +16662,7 @@ "Positiiviset arvot välttävät reunoja (valaistuksen samanarvonkäyriä).\n" "Nolla vaikuttaa molempiin saman verran (isotrooppinen)." -#: ../src/iop/diffuse.c:1882 +#: ../src/iop/diffuse.c:1897 msgid "" "direction of 3rd order speed (set above).\n" "\n" @@ -16112,7 +16676,7 @@ "Positiiviset arvot välttävät reunoja (valaistuksen samanarvonkäyriä).\n" "Nolla vaikuttaa molempiin saman verran (isotrooppinen)." -#: ../src/iop/diffuse.c:1891 +#: ../src/iop/diffuse.c:1906 msgid "" "direction of 4th order speed (set above).\n" "\n" @@ -16126,12 +16690,12 @@ "Positiiviset arvot välttävät reunoja (valaistuksen samanarvonkäyriä).\n" "Nolla vaikuttaa molempiin saman verran (isotrooppinen)." -#: ../src/iop/diffuse.c:1897 +#: ../src/iop/diffuse.c:1912 msgctxt "section" msgid "edge management" msgstr "Reunojen hallinta" -#: ../src/iop/diffuse.c:1904 +#: ../src/iop/diffuse.c:1919 msgid "" "increase or decrease the sharpness of the highest frequencies.\n" "can be used to keep details after blooming,\n" @@ -16141,7 +16705,7 @@ "Voidaan käyttää yksityiskohtien säilytykseen hehkun lisäämisen jälkeen.\n" "Pelkkään terävöitykseen aseta nopeus negatiivisiin arvoihin." -#: ../src/iop/diffuse.c:1911 +#: ../src/iop/diffuse.c:1926 msgid "" "define the sensitivity of the variance penalty for edges.\n" "increase to exclude more edges from diffusion,\n" @@ -16151,7 +16715,7 @@ "Lisää arvoa sulkeaksesi enemmän reunoja pois hajotuksesta,\n" "jos reunoille ilmestyy virheitä tai haloja." -#: ../src/iop/diffuse.c:1918 +#: ../src/iop/diffuse.c:1933 msgid "" "define the variance threshold between edge amplification and penalty.\n" "decrease if you want pixels on smooth surfaces get a boost,\n" @@ -16163,12 +16727,12 @@ "Lisää arvoa, jos näet lisääntynyttä kohinaa tasaisilla pinnoilla tai\n" "tummat alueet näyttävät yliteräviltä kirkkaisiin verrattuna." -#: ../src/iop/diffuse.c:1924 +#: ../src/iop/diffuse.c:1939 msgctxt "section" msgid "diffusion spatiality" msgstr "Hajotuksen alueellisuus" -#: ../src/iop/diffuse.c:1931 +#: ../src/iop/diffuse.c:1946 msgid "" "luminance threshold for the mask.\n" "0. disables the luminance masking and applies the module on the whole " @@ -16187,7 +16751,7 @@ msgstr "Ditheröi tai porrasta" #: ../src/iop/dither.c:112 -msgid "dithering|posterization|reduce bit-depth" +msgid "dithering|posterization|reduce bit depth" msgstr "Ditheröinti|Porrastus|Vähennä bittisyvyyttä" #: ../src/iop/dither.c:117 @@ -16203,23 +16767,23 @@ msgstr "Korjaava, luova" #. add the preset. -#: ../src/iop/dither.c:147 +#: ../src/iop/dither.c:149 msgid "dither" msgstr "Ditheröi" -#: ../src/iop/dither.c:759 +#: ../src/iop/dither.c:761 msgid "radius for blurring step" msgstr "Sumennussäteen askeleen koko" -#: ../src/iop/dither.c:771 +#: ../src/iop/dither.c:773 msgid "the gradient range where to apply random dither" msgstr "Ditheröinnin liukuvärien alue." -#: ../src/iop/dither.c:772 +#: ../src/iop/dither.c:774 msgid "gradient range" msgstr "Liukuvärien alue" -#: ../src/iop/dither.c:780 +#: ../src/iop/dither.c:782 msgid "damping level of random dither" msgstr "Vaimennuksen taso satunnaiselle ditheröinnille." @@ -16227,14 +16791,14 @@ msgid "legacy equalizer" msgstr "Perinteinen taajuuskorjain" -#: ../src/iop/equalizer.c:110 +#: ../src/iop/equalizer.c:112 msgid "" "this module is deprecated. better use contrast equalizer module instead." msgstr "" "Tämä moduuli on vanhentunut. Kannattaa käyttää kontrastin taajuuskorjaus-" "moduulia tämän sijaan." -#: ../src/iop/equalizer.c:238 +#: ../src/iop/equalizer.c:240 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -16254,33 +16818,33 @@ "Tämä käyttää värien säilymisen kannalta turvallista kirkastuksen\n" "menetelmää ja se vastaa kutakuinkin ISO-arvon kasvattamista" -#: ../src/iop/exposure.c:279 +#: ../src/iop/exposure.c:301 msgid "magic lantern defaults" msgstr "Magic Lanternin oletukset" -#: ../src/iop/exposure.c:351 ../src/iop/rawoverexposed.c:135 -#: ../src/iop/rawoverexposed.c:254 +#: ../src/iop/exposure.c:373 ../src/iop/rawoverexposed.c:137 +#: ../src/iop/rawoverexposed.c:256 #, c-format msgid "failed to get raw buffer from image `%s'" msgstr "Kuvan `%s' pikseliarvojen tuonti epäonnistui" -#: ../src/iop/exposure.c:629 +#: ../src/iop/exposure.c:647 #, no-c-format msgid "compensate camera exposure (%+.1f EV)" msgstr "Kameran valotuksen kompensaatio (%+.1f EV)" #. Write report in GUI -#: ../src/iop/exposure.c:813 +#: ../src/iop/exposure.c:831 #, c-format msgid "L : \t%.1f %%" msgstr "L : \t%.1f %%" -#: ../src/iop/exposure.c:945 ../src/libs/history.c:953 +#: ../src/iop/exposure.c:963 ../src/libs/history.c:953 #, c-format msgid "%.2f EV" msgstr "%.2f Aukkoa" -#: ../src/iop/exposure.c:1113 +#: ../src/iop/exposure.c:1131 msgid "" "automatically remove the camera exposure bias\n" "this is useful if you exposed the image to the right." @@ -16288,29 +16852,29 @@ "Poista automaattisesti kameran valotuksen vinouma.\n" "Tämän on hyödyllistä, jos valotat kuvasi huippuvalojen mukaan." -#: ../src/iop/exposure.c:1132 +#: ../src/iop/exposure.c:1150 #, no-c-format msgid "where in the histogram to meter for deflicking. E.g. 50% is median" msgstr "" "Mistä kohtaa sävyaluetta välkynnänpoisto mitataan. Esimerkiksi 50% on " "mediaani." -#: ../src/iop/exposure.c:1138 +#: ../src/iop/exposure.c:1156 msgid "" "where to place the exposure level for processed pics, EV below overexposure." msgstr "" "Mihin käsiteltyjen kuvien valotuksen taso asetetaan, aukko alle " "ylivalotuksen." -#: ../src/iop/exposure.c:1142 +#: ../src/iop/exposure.c:1160 msgid "computed EC: " msgstr "Laskettu valotuksen korjaus:" -#: ../src/iop/exposure.c:1145 +#: ../src/iop/exposure.c:1163 msgid "what exposure correction has actually been used" msgstr "Mitä valotuksen korjausta on käytetty" -#: ../src/iop/exposure.c:1164 +#: ../src/iop/exposure.c:1182 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -16322,11 +16886,11 @@ "Huonoilla arvoilla leikataan lähes mustat värit sävyasteikon\n" "ulkopuolelle, siirtämällä RGB-arvot negatiivisiksi." -#: ../src/iop/exposure.c:1174 -msgid "spot exposure mapping" -msgstr "Pistevalotuksen kartoitus" +#: ../src/iop/exposure.c:1192 +msgid "area exposure mapping" +msgstr "Alueen valotuksen kartoitus" -#: ../src/iop/exposure.c:1180 +#: ../src/iop/exposure.c:1198 msgid "" "define a target brightness, in terms of exposure,\n" "for a selected region of the image (the control sample),\n" @@ -16342,7 +16906,7 @@ "kriittinen osa kuvan aihetta tai joku liikkumaton\n" "ja tasaisesti valaistu pinta sarjassa kuvia." -#: ../src/iop/exposure.c:1189 +#: ../src/iop/exposure.c:1207 msgid "" "\"correction\" automatically adjust exposure\n" "such that the input lightness is mapped to the target.\n" @@ -16354,11 +16918,11 @@ "\"Mittaus\" näyttää kuinka valotuksen korjaus kartoittaa tulon värin\n" "ja sitä voidaan käyttää kohteen määrittämiseksi." -#: ../src/iop/exposure.c:1215 +#: ../src/iop/exposure.c:1233 msgid "L : \tN/A" msgstr "L : \tN/A" -#: ../src/iop/exposure.c:1233 +#: ../src/iop/exposure.c:1251 msgid "the desired target exposure after mapping" msgstr "Kartoituksen jälkeen haluttu kohteen valotus" @@ -16368,53 +16932,53 @@ "Tämä moduuli on vanhentunut. Kannattaa käyttää Elävä RGB-kuva moduulia tämän " "sijaan." -#: ../src/iop/filmic.c:304 +#: ../src/iop/filmic.c:333 msgid "09 EV (low-key)" msgstr "09-aukon dynaaminen alue (low-key)" -#: ../src/iop/filmic.c:312 +#: ../src/iop/filmic.c:341 msgid "10 EV (indoors)" msgstr "10-aukon dynaaminen alue (sisätilat)" -#: ../src/iop/filmic.c:320 +#: ../src/iop/filmic.c:349 msgid "11 EV (dim outdoors)" msgstr "11-aukon dynaaminen alue (himmeä ulkotila)" -#: ../src/iop/filmic.c:328 +#: ../src/iop/filmic.c:357 msgid "12 EV (outdoors)" msgstr "12-aukon dynaaminen alue (ulkotilat)" -#: ../src/iop/filmic.c:336 +#: ../src/iop/filmic.c:365 msgid "13 EV (bright outdoors)" msgstr "13-aukon dynaaminen alue (kirkas ulkotila)" -#: ../src/iop/filmic.c:344 +#: ../src/iop/filmic.c:373 msgid "14 EV (backlighting)" msgstr "14-aukon dynaaminen alue (vastavalo)" -#: ../src/iop/filmic.c:352 +#: ../src/iop/filmic.c:381 msgid "15 EV (sunset)" msgstr "15-aukon dynaaminen alue (auringonlasku)" -#: ../src/iop/filmic.c:360 +#: ../src/iop/filmic.c:389 msgid "16 EV (HDR)" msgstr "16-aukon dynaaminen alue (HDR)" -#: ../src/iop/filmic.c:368 +#: ../src/iop/filmic.c:397 msgid "18 EV (HDR++)" msgstr "18-aukon dynaaminen alue (HDR++)" -#: ../src/iop/filmic.c:1480 +#: ../src/iop/filmic.c:1505 msgid "read-only graph, use the parameters below to set the nodes" msgstr "" "Kirjoitussuojattu graafi, käytä alla olevia asetuksia solmujen asettamiseksi." -#: ../src/iop/filmic.c:1484 +#: ../src/iop/filmic.c:1509 msgctxt "section" msgid "logarithmic shaper" msgstr "Logaritminen muotoilija" -#: ../src/iop/filmic.c:1492 +#: ../src/iop/filmic.c:1517 msgid "" "adjust to match the average luminance of the subject.\n" "except in back-lighting situations, this should be around 18%." @@ -16422,7 +16986,7 @@ "Säädä vastaamaan kohteen kirkkauden keskiarvoa.\n" "Vastavalokuvat on poikkeus, yleensä tämän tulee olla noin 18%." -#: ../src/iop/filmic.c:1504 ../src/iop/filmicrgb.c:4442 +#: ../src/iop/filmic.c:1529 ../src/iop/filmicrgb.c:4506 msgid "" "number of stops between middle gray and pure white.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16432,7 +16996,7 @@ "Valotusmittari antaisi tämän lukeman tapahtumapaikalla.\n" "Säädä siten, että huippuvalojen leikkaantuminen vältetään." -#: ../src/iop/filmic.c:1517 ../src/iop/filmicrgb.c:4453 +#: ../src/iop/filmic.c:1542 ../src/iop/filmicrgb.c:4517 msgid "" "number of stops between middle gray and pure black.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16444,20 +17008,20 @@ "Kasvata arvoa kontrastin lisäämiseksi.\n" "Vähennä arvoa yksityiskohtien palauttamiseksi tummilla alueilla." -#: ../src/iop/filmic.c:1529 +#: ../src/iop/filmic.c:1554 msgid "" -"enlarge or shrink the computed dynamic range.\n" +"increase or decrease the computed dynamic range.\n" "useful in conjunction with \"auto tune levels\"." msgstr "" -"Laajenna tai kutista laskettua dynaamista aluetta.\n" +"Lisää tai vähennä laskettua dynaamista aluetta.\n" "Hyödyllinen käytettäessä \"muuta tasot automaattisesti\" -valintaa." -#: ../src/iop/filmic.c:1535 ../src/iop/filmicrgb.c:4467 -#: ../src/iop/profile_gamma.c:659 +#: ../src/iop/filmic.c:1560 ../src/iop/filmicrgb.c:4531 +#: ../src/iop/profile_gamma.c:673 msgid "auto tune levels" msgstr "Aseta tasot automaattisesti" -#: ../src/iop/filmic.c:1538 +#: ../src/iop/filmic.c:1563 msgid "" "try to optimize the settings with some guessing.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16469,12 +17033,12 @@ "Toimii paremmin maisemakuville ja tasaisesti valastuille kuville.\n" "Ei toimi high-key ja low-key kuville." -#: ../src/iop/filmic.c:1543 +#: ../src/iop/filmic.c:1568 msgctxt "section" msgid "filmic S curve" msgstr "Elävä kuva S-käyrä" -#: ../src/iop/filmic.c:1550 ../src/iop/filmicrgb.c:4554 +#: ../src/iop/filmic.c:1575 ../src/iop/filmicrgb.c:4618 msgid "" "slope of the linear part of the curve\n" "affects mostly the mid-tones" @@ -16483,12 +17047,12 @@ "Vaikuttaa lähinnä keskisävyihin." #. geotagging -#: ../src/iop/filmic.c:1557 ../src/iop/filmicrgb.c:4563 -#: ../src/libs/metadata_view.c:157 +#: ../src/iop/filmic.c:1582 ../src/iop/filmicrgb.c:4627 +#: ../src/libs/metadata_view.c:161 msgid "latitude" msgstr "Leveysaste" -#: ../src/iop/filmic.c:1560 +#: ../src/iop/filmic.c:1585 msgid "" "width of the linear domain in the middle of the curve.\n" "increase to get more contrast at the extreme luminances.\n" @@ -16498,11 +17062,11 @@ "Kasvata arvoa kontrastin lisäämiseksi äärimmäisillä kirkkauksilla.\n" "Tällä ei ole vaikutusta keskisävyihin." -#: ../src/iop/filmic.c:1567 +#: ../src/iop/filmic.c:1592 msgid "shadows/highlights balance" msgstr "Varjojen/huippuvalojen tasapaino" -#: ../src/iop/filmic.c:1570 ../src/iop/filmicrgb.c:4574 +#: ../src/iop/filmic.c:1595 ../src/iop/filmicrgb.c:4638 msgid "" "slides the latitude along the slope\n" "to give more room to shadows or highlights.\n" @@ -16514,7 +17078,7 @@ "Käytä tätä suojataksesi yksityiskohtia histogrammin\n" "toisessa ääripäässä." -#: ../src/iop/filmic.c:1580 +#: ../src/iop/filmic.c:1605 msgid "" "desaturates the input of the module globally.\n" "you need to set this value below 100%\n" @@ -16524,7 +17088,7 @@ "Tämän arvon tulee olla alle 100%, jos värikkyyden\n" "säilytys on käytössä." -#: ../src/iop/filmic.c:1590 +#: ../src/iop/filmic.c:1615 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16535,41 +17099,41 @@ "pienentäminen vähentää varjojen ja huippuvalojen kylläisyyttä." #. Add export intent combo -#: ../src/iop/filmic.c:1600 ../src/libs/export.c:1227 +#: ../src/iop/filmic.c:1625 ../src/libs/export.c:1339 #: ../src/libs/print_settings.c:2473 ../src/libs/print_settings.c:2820 -#: ../src/views/darkroom.c:2524 ../src/views/lighttable.c:1182 +#: ../src/views/darkroom.c:2365 ../src/views/lighttable.c:1182 msgid "intent" msgstr "Menetelmä" -#: ../src/iop/filmic.c:1601 +#: ../src/iop/filmic.c:1626 msgid "contrasted" msgstr "Kontrastoitu" #. cubic spline -#: ../src/iop/filmic.c:1602 +#: ../src/iop/filmic.c:1627 msgid "faded" msgstr "Haalea" #. centripetal spline -#: ../src/iop/filmic.c:1603 ../src/iop/profile_gamma.c:621 +#: ../src/iop/filmic.c:1628 ../src/iop/profile_gamma.c:635 msgid "linear" msgstr "Lineaarinen" #. monotonic spline -#: ../src/iop/filmic.c:1604 +#: ../src/iop/filmic.c:1629 msgid "optimized" msgstr "Optimoitu" -#: ../src/iop/filmic.c:1606 +#: ../src/iop/filmic.c:1631 msgid "change this method if you see reversed contrast or faded blacks" msgstr "Muuta tätä, jos näet käännetyn kontrastin tai haaleat mustat." #. Preserve color -#: ../src/iop/filmic.c:1610 +#: ../src/iop/filmic.c:1635 msgid "preserve the chrominance" msgstr "Säilytä värikkyys" -#: ../src/iop/filmic.c:1612 +#: ../src/iop/filmic.c:1637 msgid "" "ensure the original color are preserved.\n" "may reinforce chromatic aberrations.\n" @@ -16579,12 +17143,12 @@ "Saattaa lisätä värivirheitä.\n" "Värikylläisyys tulee asettaa käsin tätä tilaa käytettäessä." -#: ../src/iop/filmic.c:1622 +#: ../src/iop/filmic.c:1647 msgctxt "section" msgid "destination/display" msgstr "Kohde/näyttö" -#: ../src/iop/filmic.c:1640 ../src/iop/filmicrgb.c:4593 +#: ../src/iop/filmic.c:1665 ../src/iop/filmicrgb.c:4657 msgid "" "luminance of output pure black, this should be 0%\n" "except if you want a faded look" @@ -16592,7 +17156,7 @@ "Puhtaan mustan lähdön kirkkaus. Tämän tulee olla 0%\n" "paitsi, jos haluat haalean kuvan." -#: ../src/iop/filmic.c:1649 ../src/iop/filmicrgb.c:4600 +#: ../src/iop/filmic.c:1674 ../src/iop/filmicrgb.c:4664 msgid "" "middle gray value of the target display or color space.\n" "you should never touch that unless you know what you are doing." @@ -16600,7 +17164,7 @@ "Kohdenäytön tai väriavaruuden keskiharmaan arvo.\n" "Tähän asetukseen ei pitäisi olla mitään tarvetta koskea." -#: ../src/iop/filmic.c:1658 ../src/iop/filmicrgb.c:4607 +#: ../src/iop/filmic.c:1683 ../src/iop/filmicrgb.c:4671 msgid "" "luminance of output pure white, this should be 100%\n" "except if you want a faded look" @@ -16608,11 +17172,11 @@ "Puhtaan valkoisen lähdön kirkkaus. Tämän tulee olla 100%\n" "paitsi, jos haluat haalean kuvan." -#: ../src/iop/filmic.c:1664 +#: ../src/iop/filmic.c:1689 msgid "target gamma" msgstr "Gamman kohde" -#: ../src/iop/filmic.c:1666 +#: ../src/iop/filmic.c:1691 msgid "" "power or gamma of the transfer function\n" "of the display or color space.\n" @@ -16642,7 +17206,7 @@ "estäen\n" "värien leikkaantumisen kuvaa rikkomattomalla tavalla" -#: ../src/iop/filmicrgb.c:1310 +#: ../src/iop/filmicrgb.c:1365 msgid "" "filmic highlights reconstruction failed to allocate memory, check your RAM " "settings" @@ -16650,73 +17214,73 @@ "Elävän kuvan kirkkaiden alueiden palautus ei saanut varattua riittävästi " "keskusmuistia, tarkista RAM-asetukset." -#: ../src/iop/filmicrgb.c:2301 +#: ../src/iop/filmicrgb.c:2369 msgid "filmic highlights reconstruction failed to allocate memory on GPU" msgstr "" "Elävän kuvan kirkkaiden alueiden palautus ei saanut varattua näytönohjaimen " "muistia." -#: ../src/iop/filmicrgb.c:2419 +#: ../src/iop/filmicrgb.c:2487 msgid "filmic works only on RGB input" msgstr "Elävä kuva toimii ainoastaan RGB-tulolla." -#: ../src/iop/filmicrgb.c:3484 +#: ../src/iop/filmicrgb.c:3548 msgid "look only" msgstr "Vain ulkoasu" -#: ../src/iop/filmicrgb.c:3486 +#: ../src/iop/filmicrgb.c:3550 msgid "look + mapping (lin)" msgstr "Ulkoasu + kartoitus (lin)" -#: ../src/iop/filmicrgb.c:3488 +#: ../src/iop/filmicrgb.c:3552 msgid "look + mapping (log)" msgstr "Ulkoasu + kartoitus (log)" -#: ../src/iop/filmicrgb.c:3490 +#: ../src/iop/filmicrgb.c:3554 msgid "dynamic range mapping" msgstr "Dynaamisen alueen kartoitus" -#: ../src/iop/filmicrgb.c:3857 +#: ../src/iop/filmicrgb.c:3921 #, c-format msgid "(%.0f %%)" msgstr "(%.0f %%)" -#: ../src/iop/filmicrgb.c:3873 +#: ../src/iop/filmicrgb.c:3937 #, no-c-format msgid "% display" msgstr "% näytöstä" -#: ../src/iop/filmicrgb.c:3885 +#: ../src/iop/filmicrgb.c:3949 msgid "EV scene" msgstr "Näkymä aukoissa" -#: ../src/iop/filmicrgb.c:3889 +#: ../src/iop/filmicrgb.c:3953 #, no-c-format msgid "% camera" msgstr "% kamerasta" #. Page DISPLAY -#: ../src/iop/filmicrgb.c:3925 ../src/iop/filmicrgb.c:4587 +#: ../src/iop/filmicrgb.c:3989 ../src/iop/filmicrgb.c:4651 msgid "display" msgstr "Näyttö" #. axis legend -#: ../src/iop/filmicrgb.c:3934 +#: ../src/iop/filmicrgb.c:3998 msgid "(%)" msgstr "(%)" #. Page SCENE -#: ../src/iop/filmicrgb.c:3943 ../src/iop/filmicrgb.c:4422 +#: ../src/iop/filmicrgb.c:4007 ../src/iop/filmicrgb.c:4486 msgid "scene" msgstr "Näkymä" #. axis legend -#: ../src/iop/filmicrgb.c:3952 +#: ../src/iop/filmicrgb.c:4016 msgid "(EV)" msgstr "(Aukkoa)" #. we are over the graph area -#: ../src/iop/filmicrgb.c:4364 +#: ../src/iop/filmicrgb.c:4428 msgid "" "use the parameters below to set the nodes.\n" "the bright curve is the filmic tone mapping curve\n" @@ -16726,11 +17290,11 @@ "Kirkas käyrä on elävän kuvan sävyjen kartoituksen käyrä.\n" "Tumma käyrä on värikylläisyyden vähentämisen käyrä." -#: ../src/iop/filmicrgb.c:4370 +#: ../src/iop/filmicrgb.c:4434 msgid "toggle axis labels and values display" msgstr "Näytä tai piilota akseleiden nimet ja arvot." -#: ../src/iop/filmicrgb.c:4374 +#: ../src/iop/filmicrgb.c:4438 msgid "" "cycle through graph views.\n" "left click: cycle forward.\n" @@ -16742,7 +17306,7 @@ "Oikea napsaus: Selaa taaksepäin.\n" "Kaksoisnapsaus: Palauta ulkoasu-näkymään." -#: ../src/iop/filmicrgb.c:4431 +#: ../src/iop/filmicrgb.c:4495 #, no-c-format msgid "" "adjust to match the average luminance of the image's subject.\n" @@ -16753,15 +17317,15 @@ "Syötetty arvo sovitetaan 18.45% arvoon.\n" "Vähennä arvoa lisätäksesi yleistä kirkkautta." -#: ../src/iop/filmicrgb.c:4461 +#: ../src/iop/filmicrgb.c:4525 msgid "" -"symmetrically enlarge or shrink the computed dynamic range.\n" +"symmetrically increase or decrease the computed dynamic range.\n" "useful to give a safety margin to extreme luminances." msgstr "" -"Laajenna tai kutista laskettua dynaamista aluetta symmetrisesti.\n" +"Lisää tai vähennä dynaamista aluetta symmetrisesti.\n" "Hyödyllinen kirkkauden ääripäiden turvarajojen asettamiseksi." -#: ../src/iop/filmicrgb.c:4468 +#: ../src/iop/filmicrgb.c:4532 msgid "" "try to optimize the settings with some statistical assumptions.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16778,16 +17342,16 @@ "Varmista, että ymmärrät oletukset ennen ominaisuuden käyttöä." #. Page RECONSTRUCT -#: ../src/iop/filmicrgb.c:4477 +#: ../src/iop/filmicrgb.c:4541 msgid "reconstruct" msgstr "Palautus" -#: ../src/iop/filmicrgb.c:4479 +#: ../src/iop/filmicrgb.c:4543 msgctxt "section" msgid "highlights clipping" msgstr "Huippuvalojen leikkaus" -#: ../src/iop/filmicrgb.c:4487 +#: ../src/iop/filmicrgb.c:4551 msgid "" "set the exposure threshold upon which\n" "clipped highlights get reconstructed.\n" @@ -16802,7 +17366,7 @@ "Vähennä arvoa laajentaaksesi aluetta.\n" "Suurenna arvoa supistaaksesi aluetta." -#: ../src/iop/filmicrgb.c:4497 +#: ../src/iop/filmicrgb.c:4561 msgid "" "soften the transition between clipped highlights and valid pixels.\n" "decrease to make the transition harder and sharper,\n" @@ -16812,72 +17376,72 @@ "Vähennä arvoa tehdäksesi siirtymästä kovemman ja terävämmän.\n" "Suurenna arvoa tehdäksesi siirtymästä pehmeämmän ja sumeamman." -#: ../src/iop/filmicrgb.c:4503 ../src/iop/filmicrgb.c:4504 +#: ../src/iop/filmicrgb.c:4567 ../src/iop/filmicrgb.c:4568 msgid "display highlight reconstruction mask" msgstr "Näytä huippuvalojen palautuksen maski" -#: ../src/iop/filmicrgb.c:4511 +#: ../src/iop/filmicrgb.c:4575 msgctxt "section" msgid "balance" msgstr "Tasapaino" -#: ../src/iop/filmicrgb.c:4518 +#: ../src/iop/filmicrgb.c:4582 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between inpainting a smooth color gradient,\n" +"inpainting a smooth color gradient\n" "or trying to recover the textured details.\n" "0% is an equal mix of both.\n" "increase if at least one RGB channel is not clipped.\n" "decrease if all RGB channels are clipped over large areas." msgstr "" "Päätä mitä palautusmenetelmää suositaan.\n" -"Vaihtoehdot ovat tasaisen väriliun maalaus\n" +"Tasaisen väriliun maalaus\n" "tai tekstuurien yksityiskohtien palauttamisen yritys.\n" "0% suosii molempia yhtä paljon.\n" "Suurenna arvoa jos vähintään yksi värikanava ei ole leikkautunut.\n" "Pienennä arvoa jos kaikki värikanavat ovat leikkautuneet suurilla alueilla." -#: ../src/iop/filmicrgb.c:4529 +#: ../src/iop/filmicrgb.c:4593 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between blooming highlights like film does,\n" +"blooming highlights like film does\n" "or trying to recover sharp details.\n" "0% is an equal mix of both.\n" "increase if you want more details.\n" "decrease if you want more blur." msgstr "" "Päätä mitä palautusmenetelmää suositaan.\n" -"Vaihtoehdot ovat filmin kaltaisten hehkuvien huippuvalojen\n" +"Filmin kaltaisten hehkuvien huippuvalojen\n" "tai terävien yksityiskohtien palauttamisen yritys.\n" "0% suosii molempia yhtä paljon.\n" "Suurenna arvoa jos haluat enemmän yksityiskohtia.\n" "Pienennä arvoa jos haluat sumeamman kuvan." -#: ../src/iop/filmicrgb.c:4541 +#: ../src/iop/filmicrgb.c:4605 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between recovering monochromatic highlights,\n" +"recovering monochromatic highlights\n" "or trying to recover colorful highlights.\n" "0% is an equal mix of both.\n" "increase if you want more color.\n" "decrease if you see magenta or out-of-gamut highlights." msgstr "" "Päätä mitä palautusmenetelmää suositaan.\n" -"Vaihtoehdot ovat mustavalkoisten huippuvalojen\n" +"Mustavalkoisten huippuvalojen\n" "tai värikkäiden huippuvalojen palauttamisen yritys.\n" "0% suosii molempia yhtä paljon.\n" "Suurenna arvoa jos haluat enemmän värejä.\n" "Pienennä arvoa jos näet magentoja tai sävyasteikon ulkopuolisia huippuvaloja." #. Page LOOK -#: ../src/iop/filmicrgb.c:4549 +#: ../src/iop/filmicrgb.c:4613 msgid "look" msgstr "Ulkoasu" -#: ../src/iop/filmicrgb.c:4559 +#: ../src/iop/filmicrgb.c:4623 msgid "" "equivalent to paper grade in analog.\n" "increase to make highlights brighter and less compressed.\n" @@ -16887,7 +17451,7 @@ "Suurenna arvoa huippuvalojen kirkastamiseksi.\n" "Vähennä arvoa huippuvalojen latistamiseksi." -#: ../src/iop/filmicrgb.c:4567 +#: ../src/iop/filmicrgb.c:4631 msgid "" "width of the linear domain in the middle of the curve,\n" "increase to get more contrast and less desaturation at extreme luminances,\n" @@ -16901,7 +17465,7 @@ "leveysalueella.\n" "Tällä ei ole vaikutusta keskisävyihin." -#: ../src/iop/filmicrgb.c:4582 ../src/iop/filmicrgb.c:4730 +#: ../src/iop/filmicrgb.c:4646 ../src/iop/filmicrgb.c:4794 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16912,11 +17476,11 @@ "jos varjojen ja/tai huippuvalojen kylläisyys ei ole riittävä." #. Page OPTIONS -#: ../src/iop/filmicrgb.c:4611 +#: ../src/iop/filmicrgb.c:4675 msgid "options" msgstr "Asetukset" -#: ../src/iop/filmicrgb.c:4616 +#: ../src/iop/filmicrgb.c:4680 msgid "" "v3 is darktable 3.0 desaturation method, same as color balance.\n" "v4 is a newer desaturation method, based on spectral purity of light." @@ -16926,7 +17490,7 @@ "v4 on uudempi värikylläisyyden muuttamisen menetelmä ja se perustuu valon " "spektrin puhtauteen." -#: ../src/iop/filmicrgb.c:4620 +#: ../src/iop/filmicrgb.c:4684 msgid "" "ensure the original colors are preserved.\n" "may reinforce chromatic aberrations and chroma noise,\n" @@ -16936,7 +17500,7 @@ "Saattaa lisätä värivirheitä ja värikohinaa, joten\n" "varmista että ne on korjattu muualla." -#: ../src/iop/filmicrgb.c:4629 +#: ../src/iop/filmicrgb.c:4693 msgid "" "choose the desired curvature of the filmic spline in highlights.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -16946,7 +17510,7 @@ "Kova käyttää korkeaa kaarevuutta tuottaen suuremman sävyalueen pakkauksen.\n" "Pehmeä käyttää matalaa kaarevuutta tuottaen pienemmän sävyalueen pakkauksen." -#: ../src/iop/filmicrgb.c:4634 +#: ../src/iop/filmicrgb.c:4698 msgid "" "choose the desired curvature of the filmic spline in shadows.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -16956,7 +17520,7 @@ "Kova käyttää korkeaa kaarevuutta tuottaen suuremman sävyalueen pakkauksen.\n" "Pehmeä käyttää matalaa kaarevuutta tuottaen pienemmän sävyalueen pakkauksen." -#: ../src/iop/filmicrgb.c:4641 +#: ../src/iop/filmicrgb.c:4705 #, no-c-format msgid "" "enable to input custom middle-gray values.\n" @@ -16969,7 +17533,7 @@ "Suositeltu tapa korjata yleinen valoisuus on käyttää valotus-moduulia.\n" "Poista käytöstä käyttääksesi oletuksena 18.45% keskiharmaata." -#: ../src/iop/filmicrgb.c:4648 +#: ../src/iop/filmicrgb.c:4712 msgid "" "enable to auto-set the look hardness depending on the scene white and black " "points.\n" @@ -16982,7 +17546,7 @@ "säätöä.\n" "Poista käytöstä ja haluat säätää kovuuden käsin." -#: ../src/iop/filmicrgb.c:4654 +#: ../src/iop/filmicrgb.c:4718 msgid "" "run extra passes of chromaticity reconstruction.\n" "more iterations means more color propagation from neighborhood.\n" @@ -16994,7 +17558,7 @@ "Palautus on hitaampaa ja tuloksena on tasaisemmat kuvan huippuvalot.\n" "Saattaa auttaa myös vaikeiden magentojen huippuvalojen tapauksissa." -#: ../src/iop/filmicrgb.c:4661 +#: ../src/iop/filmicrgb.c:4725 msgid "" "add statistical noise in reconstructed highlights.\n" "this avoids highlights to look too smooth\n" @@ -17006,7 +17570,7 @@ "kun kuvassa muutoinkin kohinaa. Palautetut huippuvalot\n" "sulautuvat tällöin paremmin kuvaan." -#: ../src/iop/filmicrgb.c:4668 +#: ../src/iop/filmicrgb.c:4732 msgid "" "choose the statistical distribution of noise.\n" "this is useful to match natural sensor noise pattern." @@ -17014,11 +17578,11 @@ "Valitse kohinan luonnissa käytettävä tilastollinen menetelmä.\n" "Tämän avulla kohinan saa vastaamaan paremmin kennon tuottamaa kohinaa." -#: ../src/iop/filmicrgb.c:4736 +#: ../src/iop/filmicrgb.c:4800 msgid "mid-tones saturation" msgstr "Keskisävyjen värikylläisyys" -#: ../src/iop/filmicrgb.c:4737 +#: ../src/iop/filmicrgb.c:4801 msgid "" "desaturates the output of the module\n" "specifically at medium luminances.\n" @@ -17028,11 +17592,11 @@ "keskimääräisillä kirkkauksilla. Suurenna arvoa,\n" "jos varjojen ja/tai huippuvalojen kylläisyys ei ole riittävä." -#: ../src/iop/filmicrgb.c:4743 +#: ../src/iop/filmicrgb.c:4807 msgid "highlights saturation mix" msgstr "Huippuvalojen kylläisyyden sekoitus" -#: ../src/iop/filmicrgb.c:4744 +#: ../src/iop/filmicrgb.c:4808 msgid "" "positive values ensure saturation is kept unchanged over the whole range.\n" "negative values bleach highlights at constant hue and luminance.\n" @@ -17056,39 +17620,39 @@ msgid "flip or rotate image by step of 90 degrees" msgstr "Käännä tai kierrä kuvaa 90° askelilla" -#: ../src/iop/flip.c:477 +#: ../src/iop/flip.c:475 msgid "no rotation" msgstr "Ei kiertoa" -#: ../src/iop/flip.c:481 ../src/iop/flip.c:624 +#: ../src/iop/flip.c:479 ../src/iop/flip.c:622 msgid "flip horizontally" msgstr "Käännä vaakasuunnassa" -#: ../src/iop/flip.c:485 ../src/iop/flip.c:628 +#: ../src/iop/flip.c:483 ../src/iop/flip.c:626 msgid "flip vertically" msgstr "Käännä pystysuunnassa" -#: ../src/iop/flip.c:489 +#: ../src/iop/flip.c:487 msgid "rotate by -90 degrees" msgstr "Kierrä -90°" -#: ../src/iop/flip.c:493 +#: ../src/iop/flip.c:491 msgid "rotate by 90 degrees" msgstr "Kierrä +90°" -#: ../src/iop/flip.c:497 +#: ../src/iop/flip.c:495 msgid "rotate by 180 degrees" msgstr "Kierrä 180°" -#: ../src/iop/flip.c:612 +#: ../src/iop/flip.c:610 msgid "transform" msgstr "Muunna" -#: ../src/iop/flip.c:616 ../src/libs/live_view.c:293 +#: ../src/iop/flip.c:614 ../src/libs/live_view.c:293 msgid "rotate 90 degrees CCW" msgstr "Kierrä 90° vastapäivään." -#: ../src/iop/flip.c:620 ../src/libs/live_view.c:294 +#: ../src/iop/flip.c:618 ../src/libs/live_view.c:294 msgid "rotate 90 degrees CW" msgstr "Kierrä 90° myötäpäivään." @@ -17107,15 +17671,15 @@ "Tämä moduuli on vanhentunut. Kannattaa käyttää Elävä RGB-kuva moduulia tämän " "sijaan." -#: ../src/iop/globaltonemap.c:625 ../src/libs/filters/colors.c:259 +#: ../src/iop/globaltonemap.c:658 ../src/libs/filters/colors.c:259 msgid "operator" msgstr "Operaattori" -#: ../src/iop/globaltonemap.c:626 +#: ../src/iop/globaltonemap.c:659 msgid "the global tonemap operator" msgstr "Yleisen sävykartoituksen operaattori." -#: ../src/iop/globaltonemap.c:629 +#: ../src/iop/globaltonemap.c:662 msgid "" "the bias for tonemapper controls the linearity, the higher the more details " "in blacks" @@ -17123,7 +17687,7 @@ "Vinouma säätää sävykartoituksen lineaarisuutta. Korkeampi arvo tuottaa " "enemmän yksityiskohtia tummilla varjoalueilla." -#: ../src/iop/globaltonemap.c:633 +#: ../src/iop/globaltonemap.c:666 msgid "the target light for tonemapper specified as cd/m2" msgstr "Sävykartoituksen kohdekirkkaus, yksikkönä cd/m2." @@ -17187,11 +17751,11 @@ msgid "simulate an optical graduated neutral density filter" msgstr "Simuloi optista puoliharmaasuodinta" -#: ../src/iop/graduatednd.c:1114 +#: ../src/iop/graduatednd.c:1083 msgid "the density in EV for the filter" msgstr "Suotimen tummuus aukkoina." -#: ../src/iop/graduatednd.c:1119 +#: ../src/iop/graduatednd.c:1088 #, no-c-format msgid "" "hardness of graduation:\n" @@ -17200,55 +17764,55 @@ "Puoliharmaasuotimen kovuus:\n" "0% = pehmeä, 100% = kova" -#: ../src/iop/graduatednd.c:1123 +#: ../src/iop/graduatednd.c:1092 msgid "rotation of filter -180 to 180 degrees" msgstr "Suotimen kierto ±180°." -#: ../src/iop/graduatednd.c:1136 +#: ../src/iop/graduatednd.c:1105 msgid "select the hue tone of filter" msgstr "Valitse suotimen sävyn värivivahde." -#: ../src/iop/graduatednd.c:1142 +#: ../src/iop/graduatednd.c:1111 msgid "select the saturation of filter" msgstr "Valitse suotimen värikylläisyys." -#: ../src/iop/graduatednd.c:1153 +#: ../src/iop/graduatednd.c:1122 #, c-format msgid "[%s on nodes] change line rotation" msgstr "[%s solmupisteessä] Muuta viivan kiertoa" -#: ../src/iop/graduatednd.c:1154 +#: ../src/iop/graduatednd.c:1123 #, c-format msgid "[%s on line] move line" msgstr "[%s viivassa] Siirrä viivaa" -#: ../src/iop/graduatednd.c:1156 +#: ../src/iop/graduatednd.c:1125 #, c-format msgid "[%s on line] change density" msgstr "[%s viivassa] Muuta leveyttä" -#: ../src/iop/graduatednd.c:1158 +#: ../src/iop/graduatednd.c:1127 #, c-format msgid "[%s on line] change hardness" msgstr "[%s viivassa] Muuta kovuutta" -#: ../src/iop/grain.c:428 +#: ../src/iop/grain.c:444 msgid "grain" msgstr "Rae" -#: ../src/iop/grain.c:433 +#: ../src/iop/grain.c:449 msgid "simulate silver grains from film" msgstr "Simuloi filmin hopearakeita" -#: ../src/iop/grain.c:582 +#: ../src/iop/grain.c:600 msgid "the grain size (~ISO of the film)" msgstr "Rakeen koko (vastaa noin filmin ISO-arvoa)." -#: ../src/iop/grain.c:586 +#: ../src/iop/grain.c:604 msgid "the strength of applied grain" msgstr "Käytetyn rakeen voimakkuus." -#: ../src/iop/grain.c:590 +#: ../src/iop/grain.c:608 msgid "" "amount of mid-tones bias from the photographic paper response modeling. the " "greater the bias, the more pronounced the fall off of the grain in shadows " @@ -17269,15 +17833,15 @@ msgid "remove fog and atmospheric hazing from pictures" msgstr "Poista kuvasta sumu ja ilmakehän utuisuus" -#: ../src/iop/hazeremoval.c:202 +#: ../src/iop/hazeremoval.c:204 msgid "amount of haze reduction" msgstr "Utuisuuden vähennyksen määrä." -#: ../src/iop/hazeremoval.c:204 +#: ../src/iop/hazeremoval.c:206 msgid "distance" msgstr "Etäisyys" -#: ../src/iop/hazeremoval.c:206 +#: ../src/iop/hazeremoval.c:208 msgid "limit haze removal up to a specific spatial depth" msgstr "Rajoita utuisuuden poisto tiettyyn alueelliseen syvyyteen." @@ -17291,11 +17855,11 @@ "Vähennä kuvasta magentoja huippuvaloja ja yritä palauttaa huippuvalojen " "oikeat värit" -#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:75 +#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:77 msgid "reconstruction, raw" msgstr "Korjaava, RAW" -#: ../src/iop/highlights.c:934 +#: ../src/iop/highlights.c:1004 msgid "" "highlights: mode not available for this type of image. falling back to " "inpaint opposed." @@ -17303,48 +17867,66 @@ "Huippuvalot: Tila ei ole saatavilla tämän tyyppiselle kuvalle. Käytetään " "vastakohtien maalausta sen sijaan." -#: ../src/iop/highlights.c:1112 +#: ../src/iop/highlights.c:1184 msgid "highlight reconstruction method" msgstr "Huippuvalojen palautuksen menetelmä." -#: ../src/iop/highlights.c:1117 +#: ../src/iop/highlights.c:1189 msgid "" "manually adjust the clipping threshold mostly used against magenta " -"highlights\n" -"the mask icon shows the clipped areas.\n" +"highlights.\n" "you might use this for tuning 'laplacian', 'inpaint opposed' or " "'segmentation' modes,\n" "especially if camera white point is incorrect." msgstr "" "Leikkauksen kynnysarvon käsisäätö, jota käytetään yleensä magentojen " "huippuvalojen korjaamiseen.\n" -"Maski-kuvake näyttää leikkautuvan alueen.\n" -"Tätä voidaan käyttää hienosäätämään Laplace-, Maalaa vastakohdat- tai " -"Segmentaatiotiloja\n" +"Tätä voidaan käyttää hienosäätämään 'Laplace', 'Maalaa vastakohdat' tai " +"'Segmentaatio' tiloja,\n" "erityisesti silloin, kun kameran valkoinen piste on asetettu väärin." -#: ../src/iop/highlights.c:1128 +#: ../src/iop/highlights.c:1193 +msgid "" +"visualize clipped highlights in a false color representation.\n" +"the effective clipping level also depends on the reconstruction method." +msgstr "" +"Visualisoi leikaantuneet huippuvalot vääräväriä käyttävällä esitystavalla.\n" +"Tehokas leikkauksen taso riippuu myös palautuksen menetelmästä." + +#: ../src/iop/highlights.c:1203 msgid "" "combine closely related clipped segments by morphological operations.\n" -"the mask button shows the exact positions of resulting segment borders." +"this often leads to improved color reconstruction for tiny segments before " +"dark background." msgstr "" "Yhdistä toisiaan lähellä olevat leikkautuneet alueet morfologisilla " "operaatioilla.\n" -"Maski-nappi näyttää tuloksena täsmälliset alueen rajat." +"Tämä johtaa usein pimeän taustan edessä olevien pienten alueiden parempaan " +"värien palautukseen." + +#: ../src/iop/highlights.c:1206 +msgid "visualize the combined segments in a false color representation." +msgstr "Visualisoi yhdistetyt alueet vääräväriä käyttävällä esitystavalla." -#: ../src/iop/highlights.c:1136 +#: ../src/iop/highlights.c:1213 msgid "" "select inpainting after segmentation analysis.\n" -"increase to favour candidates found in segmentation analysis, decrease for " -"opposed means inpainting.\n" -"the mask button shows segments that are considered to have a good candidate." +"increase to favor candidates found in segmentation analysis, decrease for " +"opposed means inpainting." msgstr "" "Valitse maalaus segmentointiin perustuvan analyysin jälkeen.\n" "Lisää arvoa suosiaksesi segmentaatioanalyysissä löydettyjä ehdokkaita, " -"vähennä keskimääräisten vastakohtien maalaamiseksi.\n" -"Maski-nappi näyttää segmentit, jotka on arvioitu hyviksi ehdokkaiksi." +"vähennä keskimääräisten vastakohtien maalaamiseksi." -#: ../src/iop/highlights.c:1147 +#: ../src/iop/highlights.c:1216 +msgid "" +"visualize segments that are considered to have a good candidate in a false " +"color representation." +msgstr "" +"Visualisoi alueet joita pidetään hyvinä ehdokkaina vääräväriä käyttävälle " +"esitystavalle." + +#: ../src/iop/highlights.c:1225 msgid "" "approximate lost data in regions with all photosites clipped, the effect " "depends on segment size and border gradients.\n" @@ -17364,18 +17946,17 @@ "Tasaiset tilat ohittavat kapeat leikkaantumattomat rakenteet (kuten " "sähkölinjat), säilyttää palautetut huippuvalot ja välttää liukuvärejä." -#: ../src/iop/highlights.c:1153 -msgid "" -"set strength of rebuilding in regions with all photosites clipped.\n" -"the mask buttons shows the effect that is added to already reconstructed " -"data." -msgstr "" -"Aseta jälleenrakennuksen voimakkuus alueille joissa kaikki senselit ovat " -"leikkaantuneet.\n" -"Maski-nappi näyttää vaikutuksen joka on lisätty jo uudelleen rakennetulle " -"tiedolle." +#: ../src/iop/highlights.c:1231 +msgid "set strength of rebuilding in regions with all photosites clipped." +msgstr "" +"Aseta uudelleenrakennuksen voimakkuus kaikille alueille joilla jokainen " +"senseli on leikkautunut." -#: ../src/iop/highlights.c:1163 +#: ../src/iop/highlights.c:1233 +msgid "show the effect that is added to already reconstructed data." +msgstr "Näytä vaikutus joka on lisätty aiemmin palautetulle tiedolle." + +#: ../src/iop/highlights.c:1242 msgid "" "add noise to visually blend the reconstructed areas\n" "into the rest of the noisy image. useful at high ISO." @@ -17383,7 +17964,7 @@ "Lisää kohinaa palautettujen alueiden visuaaliseen yhdistämiseen\n" "muuhun kuvan kohinaan. Käyttökelpoinen suuren ISO-herkkyyden kuville." -#: ../src/iop/highlights.c:1167 +#: ../src/iop/highlights.c:1246 msgid "" "increase if magenta highlights don't get fully corrected\n" "each new iteration brings a performance penalty." @@ -17391,7 +17972,7 @@ "Lisää, jos magentat huippuvalot eivät korjaannu täysin.\n" "Jokainen uusi iteraatio vaatii lisää laskentatehoa." -#: ../src/iop/highlights.c:1172 +#: ../src/iop/highlights.c:1251 msgid "" "increase if magenta highlights don't get fully corrected.\n" "this may produce non-smooth boundaries between valid and clipped regions." @@ -17399,7 +17980,7 @@ "Lisää, jos magentat huippuvalot eivät korjaannu täysin.\n" "Tämä saattaa lisätä epätasaisia rajoja leikkautuvan alueen reunoille." -#: ../src/iop/highlights.c:1176 +#: ../src/iop/highlights.c:1255 msgid "" "increase to correct larger clipped areas.\n" "large values bring huge performance penalties" @@ -17407,10 +17988,9 @@ "Lisää korjataksesi laajoja leikkautuneita alueita.\n" "Suuret arvot vaativat erittäin paljon laskentatehoa." -#: ../src/iop/highlights.c:1180 -msgid "this module only works with non-monochrome RAW and sRAW" -msgstr "" -"Tämä moduuli toimii ainoastaan ei-mustavalkoisilla RAW ja sRAW tiedostoilla." +#: ../src/iop/highlights.c:1259 +msgid "this module does not work with monochrome RAW files" +msgstr "Tämä moduuli ei toimi mustavalkoisilla RAW-tiedostoilla." #: ../src/iop/highpass.c:72 msgid "highpass" @@ -17420,52 +18000,52 @@ msgid "isolate high frequencies in the image" msgstr "Eristä korkeat taajuudet kuvasta" -#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:135 +#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:107 msgid "linear or non-linear, Lab, scene-referred" msgstr "Suoralinjainen tai epälineaarinen, Lab, Näkymä-viitattu" -#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:136 ../src/iop/sharpen.c:96 +#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:108 ../src/iop/sharpen.c:98 msgid "frequential, Lab" msgstr "Taajuudellinen, Lab" -#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:137 +#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:109 msgid "special, Lab, scene-referred" msgstr "Erityinen, Lab, Näkymä-viitattu" -#: ../src/iop/highpass.c:383 +#: ../src/iop/highpass.c:378 msgid "the sharpness of highpass filter" msgstr "Ylipäästösuotimen terävyys." -#: ../src/iop/highpass.c:387 +#: ../src/iop/highpass.c:382 msgid "the contrast of highpass filter" msgstr "Ylipäästösuotimen kontrasti." -#: ../src/iop/hotpixels.c:67 +#: ../src/iop/hotpixels.c:69 msgid "hot pixels" msgstr "Kuumat pikselit" -#: ../src/iop/hotpixels.c:72 +#: ../src/iop/hotpixels.c:74 msgid "remove abnormally bright pixels by dampening them with neighbors" msgstr "" "Poista epätavallisen kirkkaat pikselit vaimentamalla niitä " "naapuripikseleiden kanssa" -#: ../src/iop/hotpixels.c:363 +#: ../src/iop/hotpixels.c:442 #, c-format msgid "fixed %d pixel" msgid_plural "fixed %d pixels" msgstr[0] "Korjattiin %d pikseli" msgstr[1] "Korjattiin %d pikseliä" -#: ../src/iop/hotpixels.c:386 +#: ../src/iop/hotpixels.c:465 msgid "lower threshold for hot pixel" msgstr "Kuumien pikselien alempi kynnysarvo." -#: ../src/iop/hotpixels.c:390 +#: ../src/iop/hotpixels.c:469 msgid "strength of hot pixel correction" msgstr "Kuumien pikselien korjauksen voimakkuus." -#: ../src/iop/hotpixels.c:406 +#: ../src/iop/hotpixels.c:485 msgid "" "hot pixel correction\n" "only works for raw images." @@ -17473,64 +18053,64 @@ "Kuumien pikselien korjaus toimii\n" "ainoastaan raakakuville." -#: ../src/iop/invert.c:92 ../src/iop/invert.c:427 +#: ../src/iop/invert.c:106 ../src/iop/invert.c:442 #, c-format msgid "`%s' color matrix not found for 4bayer image" msgstr "`%s' värimatriisia ei löytynyt 4Bayer-kuvalle." -#: ../src/iop/invert.c:108 +#: ../src/iop/invert.c:125 msgid "invert" msgstr "Käännä värit" -#: ../src/iop/invert.c:113 +#: ../src/iop/invert.c:130 msgid "this module is deprecated. please use the negadoctor module instead." msgstr "" "Tämä moduuli on vanhentunut. Kannattaa käyttää negatohtori-moduulia tämän " "sijaan." -#: ../src/iop/invert.c:118 +#: ../src/iop/invert.c:135 msgid "invert film negatives" msgstr "Käännä filminegatiiveja" -#: ../src/iop/invert.c:120 ../src/iop/invert.c:122 +#: ../src/iop/invert.c:137 ../src/iop/invert.c:139 msgid "linear, raw, display-referred" msgstr "Suoralinjainen, RAW, Näyttö-viitattu" #. Here we could provide more for monochrome special cases. As no monochrome camera #. has a bayer sensor we don't need g->RGB_to_CAM and g->CAM_to_RGB corrections -#: ../src/iop/invert.c:412 +#: ../src/iop/invert.c:427 msgid "brightness of film material" msgstr "Filmimateriaalin kirkkaus" -#: ../src/iop/invert.c:416 +#: ../src/iop/invert.c:431 msgid "color of film material" msgstr "Filmimateriaalin väri" -#: ../src/iop/invert.c:500 ../src/iop/negadoctor.c:847 +#: ../src/iop/invert.c:515 ../src/iop/negadoctor.c:866 msgid "pick color of film material from image" msgstr "Valitse filmimateriaalin väri kuvasta." -#: ../src/iop/invert.c:502 +#: ../src/iop/invert.c:517 msgid "select color of film material" msgstr "Valitse filmi-materiaalin väri." -#: ../src/iop/lens.cc:232 +#: ../src/iop/lens.cc:251 msgid "lens correction" msgstr "Objektiivin virheiden korjaus" -#: ../src/iop/lens.cc:237 +#: ../src/iop/lens.cc:256 msgid "vignette|chromatic aberrations|distortion" msgstr "Vinjetti|Värivirhe|Vääristymä" -#: ../src/iop/lens.cc:242 +#: ../src/iop/lens.cc:261 msgid "correct lenses optical flaws" msgstr "Korjaa objektiivin linssien virheitä" -#: ../src/iop/lens.cc:245 +#: ../src/iop/lens.cc:264 msgid "geometric and reconstruction, RGB" msgstr "Geometrinen ja palautus, RGB" -#: ../src/iop/lens.cc:3241 +#: ../src/iop/lens.cc:3773 #, c-format msgid "" "maker:\t\t%s\n" @@ -17543,7 +18123,7 @@ "Kiinnitys:\t\t%s\n" "Rajauskerroin:\t%.1f" -#: ../src/iop/lens.cc:3494 +#: ../src/iop/lens.cc:4026 #, c-format msgid "" "maker:\t\t%s\n" @@ -17562,31 +18142,31 @@ "Tyyppi:\t\t%s\n" "Kiinnitys:\t%s" -#: ../src/iop/lens.cc:3540 +#: ../src/iop/lens.cc:4072 msgid "focal length (mm)" msgstr "Polttoväli (mm)." -#: ../src/iop/lens.cc:3566 +#: ../src/iop/lens.cc:4098 msgid "f/" msgstr "aukko" -#: ../src/iop/lens.cc:3567 +#: ../src/iop/lens.cc:4099 msgid "f-number (aperture)" msgstr "f-luku (aukko)" -#: ../src/iop/lens.cc:3583 +#: ../src/iop/lens.cc:4115 msgid "d" msgstr "etäisyys" -#: ../src/iop/lens.cc:3584 +#: ../src/iop/lens.cc:4116 msgid "distance to subject" msgstr "Etäisyys kohteeseen." -#: ../src/iop/lens.cc:3745 +#: ../src/iop/lens.cc:4277 msgid "camera/lens not found" msgstr "Kameraa/objektiivia ei löydy" -#: ../src/iop/lens.cc:3746 +#: ../src/iop/lens.cc:4278 msgid "" "please select your lens manually\n" "you might also want to check if your Lensfun database is up-to-date\n" @@ -17596,45 +18176,50 @@ "Voit varmistaa lensfun tietokantasi ajantasaisuuden\n" "ajamalla komennon lensfun_update_data." -#: ../src/iop/lens.cc:3876 +#: ../src/iop/lens.cc:4423 msgid "camera model" msgstr "Kameran malli" -#: ../src/iop/lens.cc:3881 +#: ../src/iop/lens.cc:4428 msgid "find camera" msgstr "Etsi kamera" -#: ../src/iop/lens.cc:3896 +#: ../src/iop/lens.cc:4443 msgid "find lens" msgstr "Etsi objektiivi" #. scale -#: ../src/iop/lens.cc:3930 ../src/iop/vignette.c:968 -#: ../src/iop/watermark.c:1324 ../src/libs/export.c:1165 +#: ../src/iop/lens.cc:4477 ../src/iop/vignette.c:1055 +#: ../src/iop/watermark.c:1372 ../src/libs/export.c:1264 msgid "scale" -msgstr "Asteikko" +msgstr "Mittakaava" -#: ../src/iop/lens.cc:3935 +#: ../src/iop/lens.cc:4482 msgid "auto scale" msgstr "Automaattinen koko" -#: ../src/iop/lens.cc:3939 +#: ../src/iop/lens.cc:4484 +msgid "automatic scale to available image size due to Lensfun data" +msgstr "" +"Automaattinen skaalaus käytetylle kuvan koolle perustuen Lensfunin tietoihin" + +#: ../src/iop/lens.cc:4488 msgid "correct distortions or apply them" msgstr "Korjaa vääristymät tai ota ne käyttöön." -#: ../src/iop/lens.cc:3946 +#: ../src/iop/lens.cc:4495 msgid "transversal chromatic aberration red" msgstr "Poikittainen värivirhe punainen." -#: ../src/iop/lens.cc:3950 +#: ../src/iop/lens.cc:4499 msgid "transversal chromatic aberration blue" msgstr "Poikittainen värivirhe sininen." -#: ../src/iop/lens.cc:3956 +#: ../src/iop/lens.cc:4509 msgid "use latest algorithm" msgstr "Käytä viimeisintä algoritmiä" -#: ../src/iop/lens.cc:3958 +#: ../src/iop/lens.cc:4511 msgid "" "you're using an old version of the algorithm.\n" "once enabled, you won't be able to\n" @@ -17644,96 +18229,147 @@ "Aktivoinnin jälkeen et voi palata\n" "takaisin vanhaan algoritmiin." -#: ../src/iop/lens.cc:3967 +#: ../src/iop/lens.cc:4521 +msgid "fine-tuning" +msgstr "Hienosäätö" + +#. DT_IOP_SECTION_FOR_PARAMS doesn't work in C++ so create section module manually +#: ../src/iop/lens.cc:4526 +msgid "fine-tune" +msgstr "Hienosäädä" + +#: ../src/iop/lens.cc:4532 msgid "tune the warp and chromatic aberration correction" msgstr "Säädä vääristymin ja värivirheen korjausta." -#: ../src/iop/lens.cc:3971 +#: ../src/iop/lens.cc:4536 msgid "tune the vignette correction" msgstr "Säädä vinjetoinnin korjausta." -#: ../src/iop/lens.cc:3975 +#: ../src/iop/lens.cc:4540 msgid "tune the TCA red correction" msgstr "Säädä poikittaisen punaisen värivirheen korjausta." -#: ../src/iop/lens.cc:3979 +#: ../src/iop/lens.cc:4544 msgid "tune the TCA blue correction" msgstr "Säädä poikittaisen sinisen värivirheen korjausta." -#: ../src/iop/lens.cc:3986 +#: ../src/iop/lens.cc:4551 msgid "image scaling" msgstr "Kuvan skaalaus" -#: ../src/iop/lens.cc:3998 +#: ../src/iop/lens.cc:4553 +msgid "automatic scale to available image size" +msgstr "Automaattinen skaalaus saatavilla olevalle kuvakoolle." + +#: ../src/iop/lens.cc:4561 +msgid "" +"select a correction mode either based on\n" +" a) data and algorithms provided by the Lensfun project\n" +" b) embedded metadata provided by the camera or software vendor" +msgstr "" +"Valitse korjauksen tila joka perustuu joko\n" +" a) Lensfun projektin tuottamaan tietoon ja algoritmeihin\n" +" b) Kameran tai ohjelmiston valmistajan kuvaan lisäämiin metatietoihin" + +#: ../src/iop/lens.cc:4568 msgid "which corrections to apply" msgstr "Mitä korjauksia käytetään." -#: ../src/iop/lens.cc:4011 +#: ../src/iop/lens.cc:4574 msgid "corrections done: " msgstr "Tehdyt korjaukset: " -#: ../src/iop/lens.cc:4013 +#: ../src/iop/lens.cc:4576 msgid "which corrections have actually been done" msgstr "Mitkä korjaukset on tehty." +#: ../src/iop/lens.cc:4595 +msgid "manual vignette correction" +msgstr "Manuaalinen vinjetoinnin korjaus" + +#: ../src/iop/lens.cc:4599 +msgid "additional manually controlled optical vignetting correction" +msgstr "Ylimääräinen manuaalisesti hallittava optinen vinjetoinnin korjaus" + +#: ../src/iop/lens.cc:4602 +msgid "vignette" +msgstr "Vinjetti" + +#: ../src/iop/lens.cc:4606 +msgid "amount of the applied optical vignetting correction" +msgstr "Optisen vinjetoinnin korjauksen määrä" + +#: ../src/iop/lens.cc:4608 +msgid "show applied optical vignette correction mask" +msgstr "Näytä käytössä oleva optisen vinjetoinnin korjauksen maski" + +#: ../src/iop/lens.cc:4618 +msgid "radius of uncorrected centre" +msgstr "Keskikohdan säde jota ei korjata" + +#: ../src/iop/lens.cc:4624 +msgid "steepness of the correction effect outside of radius" +msgstr "Säteen ulkopuoisen korjauksen vaikutuksen jyrkkyys" + #: ../src/iop/levels.c:112 msgid "this module is deprecated. please use the RGB levels module instead." msgstr "" "Tämä moduuli on vanhentunut. Kannattaa käyttää RGB-tasot moduulia tämän " "sijaan." -#: ../src/iop/levels.c:117 ../src/iop/levels.c:630 ../src/iop/rgblevels.c:984 -#: ../src/iop/rgblevels.c:1014 +#: ../src/iop/levels.c:117 ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1022 +#: ../src/iop/rgblevels.c:1056 msgid "levels" msgstr "Tasot" # ??? -#: ../src/iop/levels.c:137 +#: ../src/iop/levels.c:139 msgid "adjust black, white and mid-gray points" msgstr "Säädä kuvan mustaa, valkoista ja keskiharmaata pistettä" -#: ../src/iop/levels.c:628 ../src/iop/rgblevels.c:1016 +#: ../src/iop/levels.c:644 ../src/iop/rgblevels.c:1059 msgid "" "drag handles to set black, gray, and white points. operates on L channel." msgstr "" "Raahaa palkkeja asettaaksesi musta, harmaa ja valkoinen piste. Säädöt " "vaikuttavat L-kanavaan." -#: ../src/iop/levels.c:642 ../src/iop/rgblevels.c:1052 +#: ../src/iop/levels.c:658 ../src/iop/rgblevels.c:1108 msgid "apply auto levels" msgstr "Aseta automaattiset tasot." -#: ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1027 +#: ../src/iop/levels.c:662 ../src/iop/rgblevels.c:1077 msgid "pick black point from image" msgstr "Valitse musta piste kuvasta." -#: ../src/iop/levels.c:650 ../src/iop/rgblevels.c:1033 +#: ../src/iop/levels.c:666 ../src/iop/rgblevels.c:1085 msgid "pick medium gray point from image" msgstr "Valitse harmaa piste kuvasta." -#: ../src/iop/levels.c:654 ../src/iop/rgblevels.c:1039 +#: ../src/iop/levels.c:670 ../src/iop/rgblevels.c:1093 msgid "pick white point from image" msgstr "Valitse valkoinen piste kuvasta." -#: ../src/iop/levels.c:667 ../src/iop/rgblevels.c:936 -#: ../src/iop/rgblevels.c:1026 +#: ../src/iop/levels.c:683 ../src/iop/rgblevels.c:968 +#: ../src/iop/rgblevels.c:1075 msgid "black" msgstr "Musta" -#: ../src/iop/levels.c:668 +#: ../src/iop/levels.c:684 msgid "black percentile" msgstr "Mustan osuus." -#: ../src/iop/levels.c:672 +#: ../src/iop/levels.c:688 msgid "gray percentile" msgstr "Harmaan osuus." -#: ../src/iop/levels.c:675 ../src/iop/rgblevels.c:938 -#: ../src/iop/rgblevels.c:1038 +#: ../src/iop/levels.c:691 ../src/iop/rgblevels.c:970 +#: ../src/iop/rgblevels.c:1091 msgid "white" msgstr "Valkoinen" -#: ../src/iop/levels.c:676 +#: ../src/iop/levels.c:692 msgid "white percentile" msgstr "Valkoisen osuus." @@ -17745,11 +18381,11 @@ msgid "distort parts of the image" msgstr "Vääristä kuvan osia" -#: ../src/iop/liquify.c:2932 +#: ../src/iop/liquify.c:2895 msgid "click to edit nodes" msgstr "Napsauta muokataksesi solmupisteitä." -#: ../src/iop/liquify.c:3635 +#: ../src/iop/liquify.c:3599 msgid "" "<b>add point</b>: click and drag\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17759,7 +18395,7 @@ "<b>Koko</b>: rulla - <b>Voimakkuus</b>: SHIFT+rulla - <b>Suunta</b>: " "CTRL+rulla" -#: ../src/iop/liquify.c:3638 +#: ../src/iop/liquify.c:3602 msgid "" "<b>add line</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17769,7 +18405,7 @@ "<b>Koko</b>: rulla - <b>Voimakkuus</b>: SHIFT+rulla - <b>Suunta</b>: " "CTRL+rulla" -#: ../src/iop/liquify.c:3641 +#: ../src/iop/liquify.c:3605 msgid "" "<b>add curve</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17779,7 +18415,7 @@ "<b>Koko</b>: rulla - <b>Voimakkuus</b>: SHIFT+rulla - <b>Suunta</b>: " "CTRL+rulla" -#: ../src/iop/liquify.c:3692 +#: ../src/iop/liquify.c:3656 msgid "" "use a tool to add warps\n" "<b>remove a warp</b>: right-click" @@ -17787,48 +18423,48 @@ "Käytä työkalua lisätäksesi vääristymiä.\n" "<b>Poista vääristymä</b>: Oikea napsaus" -#: ../src/iop/liquify.c:3695 +#: ../src/iop/liquify.c:3659 msgid "warps|nodes count:" msgstr "Vääristymät|Solmujen määrä:" -#: ../src/iop/liquify.c:3704 +#: ../src/iop/liquify.c:3668 msgid "edit, add and delete nodes" msgstr "Muokkaa, lisää ja poista solmupisteitä." -#: ../src/iop/liquify.c:3709 ../src/iop/liquify.c:3715 -#: ../src/iop/liquify.c:3721 ../src/iop/retouch.c:2238 -#: ../src/iop/retouch.c:2242 ../src/iop/retouch.c:2246 -#: ../src/iop/retouch.c:2250 ../src/iop/spots.c:883 ../src/iop/spots.c:888 -#: ../src/iop/spots.c:893 ../src/libs/masks.c:1816 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1834 ../src/libs/masks.c:1843 ../src/libs/masks.c:1852 +#: ../src/iop/liquify.c:3673 ../src/iop/liquify.c:3679 +#: ../src/iop/liquify.c:3685 ../src/iop/retouch.c:2465 +#: ../src/iop/retouch.c:2471 ../src/iop/retouch.c:2476 +#: ../src/iop/retouch.c:2481 ../src/iop/spots.c:885 ../src/iop/spots.c:890 +#: ../src/iop/spots.c:895 ../src/libs/masks.c:1812 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1830 ../src/libs/masks.c:1839 ../src/libs/masks.c:1848 msgid "shapes" msgstr "Muodot" -#: ../src/iop/liquify.c:3710 +#: ../src/iop/liquify.c:3674 msgid "draw curves" msgstr "Piirrä käyriä" -#: ../src/iop/liquify.c:3710 +#: ../src/iop/liquify.c:3674 msgid "draw multiple curves" msgstr "Piirrä useita käyriä" -#: ../src/iop/liquify.c:3716 +#: ../src/iop/liquify.c:3680 msgid "draw lines" msgstr "Piirrä viivoja" -#: ../src/iop/liquify.c:3716 +#: ../src/iop/liquify.c:3680 msgid "draw multiple lines" msgstr "Piirrä useita viivoja" -#: ../src/iop/liquify.c:3722 +#: ../src/iop/liquify.c:3686 msgid "draw points" msgstr "Piirrä pisteitä" -#: ../src/iop/liquify.c:3722 +#: ../src/iop/liquify.c:3686 msgid "draw multiple points" msgstr "Piirrä useita pisteitä" -#: ../src/iop/liquify.c:3728 +#: ../src/iop/liquify.c:3692 msgid "" "<b>add node</b>: ctrl+click - <b>remove path</b>: right click\n" "<b>toggle line/curve</b>: ctrl+alt+click" @@ -17836,7 +18472,7 @@ "<b>Lisää solmu</b>: CTRL+napsaus - <b>Poista polku</b>: oikea napsaus\n" "<b>Vaihda viiva/käyrä</b>: CTRL+ALT+napsaus" -#: ../src/iop/liquify.c:3731 +#: ../src/iop/liquify.c:3695 msgid "" "<b>move</b>: click and drag - <b>show/hide feathering controls</b>: click\n" "<b>autosmooth, cusp, smooth, symmetrical</b>: ctrl+click - <b>remove</b>: " @@ -17847,23 +18483,23 @@ "<b>Tasoita automaattisesti, kärjet, tasoita, symmetrisesti</b>: CTRL+napsaus " "- <b>Poista</b>: oikea napsaus" -#: ../src/iop/liquify.c:3735 ../src/iop/liquify.c:3737 +#: ../src/iop/liquify.c:3699 ../src/iop/liquify.c:3701 msgid "<b>shape of path</b>: drag" msgstr "<b>Polun muoto</b>: raahaus" -#: ../src/iop/liquify.c:3739 +#: ../src/iop/liquify.c:3703 msgid "<b>radius</b>: drag" msgstr "<b>Säde</b>: raahaus" -#: ../src/iop/liquify.c:3741 +#: ../src/iop/liquify.c:3705 msgid "<b>hardness (center)</b>: drag" msgstr "<b>Kovuus (keskellä)</b>: raahaus" -#: ../src/iop/liquify.c:3743 +#: ../src/iop/liquify.c:3707 msgid "<b>hardness (feather)</b>: drag" msgstr "<b>Kovuus (häivytys)</b>: raahaus" -#: ../src/iop/liquify.c:3745 +#: ../src/iop/liquify.c:3709 msgid "" "<b>strength</b>: drag\n" "<b>linear, grow, and shrink</b>: ctrl+click" @@ -17883,237 +18519,237 @@ msgid "linear, XYZ" msgstr "Suoralinjainen, XYZ" -#: ../src/iop/lowlight.c:341 +#: ../src/iop/lowlight.c:338 msgid "indoor bright" msgstr "Sisätila, kirkas" -#: ../src/iop/lowlight.c:359 +#: ../src/iop/lowlight.c:356 msgid "indoor dim" msgstr "Sisätila, himmeä" -#: ../src/iop/lowlight.c:377 +#: ../src/iop/lowlight.c:374 msgid "indoor dark" msgstr "Sisätila, pimeä" -#: ../src/iop/lowlight.c:395 +#: ../src/iop/lowlight.c:392 msgid "twilight" msgstr "Hämärä" -#: ../src/iop/lowlight.c:413 +#: ../src/iop/lowlight.c:410 msgid "night street lit" msgstr "Öinen katu, valaistu" -#: ../src/iop/lowlight.c:431 +#: ../src/iop/lowlight.c:428 msgid "night street" msgstr "Öinen katu" -#: ../src/iop/lowlight.c:449 +#: ../src/iop/lowlight.c:446 msgid "night street dark" msgstr "Öinen katu, pimeä" -#: ../src/iop/lowlight.c:468 +#: ../src/iop/lowlight.c:465 msgid "night" msgstr "Yö" -#: ../src/iop/lowlight.c:641 +#: ../src/iop/lowlight.c:639 msgid "dark" msgstr "pimeä" -#: ../src/iop/lowlight.c:649 +#: ../src/iop/lowlight.c:647 msgid "bright" msgstr "kirkas" -#: ../src/iop/lowlight.c:658 +#: ../src/iop/lowlight.c:656 msgid "day vision" msgstr "päivänäkö" -#: ../src/iop/lowlight.c:663 +#: ../src/iop/lowlight.c:661 msgid "night vision" msgstr "yönäkö" -#: ../src/iop/lowlight.c:835 +#: ../src/iop/lowlight.c:833 msgid "blueness in shadows" msgstr "Varjojen sinisyys." -#: ../src/iop/lowpass.c:128 +#: ../src/iop/lowpass.c:100 msgid "lowpass" msgstr "Alipäästösuodin" -#: ../src/iop/lowpass.c:133 +#: ../src/iop/lowpass.c:105 msgid "isolate low frequencies in the image" msgstr "Eristä matalat taajuudet kuvasta" -#: ../src/iop/lowpass.c:565 +#: ../src/iop/lowpass.c:578 msgid "local contrast mask" msgstr "Paikallisen kontrastin maski" -#: ../src/iop/lowpass.c:590 +#: ../src/iop/lowpass.c:603 msgid "radius of gaussian/bilateral blur" msgstr "Gauss-sumennuksen tai kaksipuolisen sumennuksen säde." -#: ../src/iop/lowpass.c:591 +#: ../src/iop/lowpass.c:604 msgid "contrast of lowpass filter" msgstr "Alipäästösuotimen kontrastin säätö." -#: ../src/iop/lowpass.c:592 +#: ../src/iop/lowpass.c:605 msgid "brightness adjustment of lowpass filter" msgstr "Alipäästösuotimen kirkkauden säätö." -#: ../src/iop/lowpass.c:593 +#: ../src/iop/lowpass.c:606 msgid "color saturation of lowpass filter" msgstr "Alipäästösuotimen värikylläisyyden säätö." -#: ../src/iop/lowpass.c:594 +#: ../src/iop/lowpass.c:607 msgid "which filter to use for blurring" msgstr "Sumennukseen käytettävä suodin." -#: ../src/iop/lut3d.c:135 +#: ../src/iop/lut3d.c:136 msgid "LUT 3D" msgstr "LUT 3D" -#: ../src/iop/lut3d.c:140 +#: ../src/iop/lut3d.c:141 msgid "perform color space corrections and apply look" msgstr "" "Tee kuvaan väriavaruuden korjauksia ja käytä ulkoasuja kuvan värien " "muuttamiseen" -#: ../src/iop/lut3d.c:143 +#: ../src/iop/lut3d.c:144 msgid "defined by profile, RGB" msgstr "Profiilin määrittämä, RGB" -#: ../src/iop/lut3d.c:468 +#: ../src/iop/lut3d.c:486 msgid "error allocating buffer for gmz LUT" msgstr "Virhe GMZ LUT:n puskurin varauksessa." -#: ../src/iop/lut3d.c:494 +#: ../src/iop/lut3d.c:512 #, c-format msgid "invalid png file %s" msgstr "Virheellinen PNG-tiedosto %s" -#: ../src/iop/lut3d.c:502 +#: ../src/iop/lut3d.c:520 #, c-format -msgid "png bit-depth %d not supported" -msgstr "PNG-tiedoston värisyvyys %d ei ole tuettu" +msgid "png bit depth %d is not supported" +msgstr "PNG-tiedoston bittisyvyys %d ei ole tuettu" -#: ../src/iop/lut3d.c:516 ../src/iop/lut3d.c:526 +#: ../src/iop/lut3d.c:534 ../src/iop/lut3d.c:544 #, c-format msgid "invalid level in png file %d %d" msgstr "Virheellinen taso PNG-tiedostossa %d %d" -#: ../src/iop/lut3d.c:521 +#: ../src/iop/lut3d.c:539 msgid "this darktable build is not compatible with compressed CLUT" msgstr "Tämä Darktablen versio ei tue pakattua CLUT-muotoa." -#: ../src/iop/lut3d.c:538 ../src/iop/lut3d.c:788 +#: ../src/iop/lut3d.c:556 ../src/iop/lut3d.c:808 #, c-format msgid "error - LUT 3D size %d exceeds the maximum supported" msgstr "Virhe - LUT 3D:n koko %d ylittää tuetun maksimiarvon" -#: ../src/iop/lut3d.c:550 +#: ../src/iop/lut3d.c:568 msgid "error allocating buffer for png LUT" msgstr "Virhe PNG LUT:n puskurin varauksessa." -#: ../src/iop/lut3d.c:558 +#: ../src/iop/lut3d.c:576 #, c-format msgid "error - could not read png image %s" msgstr "Virhe - ei voitu lukea PNG-tiedostoa %s" -#: ../src/iop/lut3d.c:568 +#: ../src/iop/lut3d.c:586 msgid "error - allocating buffer for png LUT" msgstr "Virhe - PNG LUT:n puskurin varaus ei onnistunut." -#: ../src/iop/lut3d.c:743 +#: ../src/iop/lut3d.c:761 #, c-format msgid "error - invalid cube file: %s" msgstr "Virhe - virheellinen cube-tiedosto: %s" -#: ../src/iop/lut3d.c:757 -msgid "DOMAIN MIN <> 0.0 is not supported" -msgstr "DOMAIN MIN <> 0.0 ei ole tuettu" - -#: ../src/iop/lut3d.c:768 -msgid "DOMAIN MAX <> 1.0 is not supported" -msgstr "DOMAIN MAX <> 1.0 ei ole tuettu" +#: ../src/iop/lut3d.c:775 +msgid "DOMAIN MIN other than 0 is not supported" +msgstr "DOMAIN MIN muu kuin 0 ei ole tuettu" + +#: ../src/iop/lut3d.c:787 +msgid "DOMAIN MAX other than 1 is not supported" +msgstr "DOMAIN MAX muu kuin 1 ei ole tuettu" -#: ../src/iop/lut3d.c:777 +#: ../src/iop/lut3d.c:797 msgid "1D cube LUT is not supported" msgstr "1D cube LUT ei ole tuettu." -#: ../src/iop/lut3d.c:799 +#: ../src/iop/lut3d.c:819 msgid "error - allocating buffer for cube LUT" msgstr "Virhe - cube LUT:n puskurin varaus epäonnistui." -#: ../src/iop/lut3d.c:810 +#: ../src/iop/lut3d.c:830 msgid "error - cube LUT size is not defined" msgstr "Virhe - cube LUT:n kokoa ei ole määritetty." -#: ../src/iop/lut3d.c:821 +#: ../src/iop/lut3d.c:841 #, c-format msgid "error - cube LUT invalid number line %d" msgstr "Virhe - cube LUT:n virheellinen viivan numero %d" -#: ../src/iop/lut3d.c:837 +#: ../src/iop/lut3d.c:857 #, c-format msgid "error - cube LUT lines number %d is not correct, should be %d" msgstr "Virhe - cube LUT:n viivojen numero %d ei ole oikea, tulisi olla %d" -#: ../src/iop/lut3d.c:847 +#: ../src/iop/lut3d.c:867 #, c-format msgid "warning - cube LUT has %d values out of range [0,1]" msgstr "Varoitus - cube LUT %d sisältää alueen ulkopuolisia arvoja [0,1]" -#: ../src/iop/lut3d.c:872 +#: ../src/iop/lut3d.c:892 #, c-format msgid "error - invalid 3dl file: %s" msgstr "Virhe: Virheellinen 3DL-tiedosto: %s" -#: ../src/iop/lut3d.c:893 +#: ../src/iop/lut3d.c:913 #, c-format msgid "error - the maximum shaper LUT value %d is too low" msgstr "Virhe - muotoilijan maksimi arvo %d on liian matala." -#: ../src/iop/lut3d.c:904 +#: ../src/iop/lut3d.c:924 msgid "error - allocating buffer for 3dl LUT" msgstr "Virhe - 3dl LUT:n puskurin varaus ei onnistunut." -#: ../src/iop/lut3d.c:917 +#: ../src/iop/lut3d.c:937 msgid "error - 3dl LUT size is not defined" msgstr "Virhe - 3dl LUT:n kokoa ei ole määritetty." -#: ../src/iop/lut3d.c:945 +#: ../src/iop/lut3d.c:965 msgid "error - 3dl LUT lines number is not correct" msgstr "Virhe - 3dl LUT:n rivinumero on väärä." -#: ../src/iop/lut3d.c:961 +#: ../src/iop/lut3d.c:981 msgid "error - the maximum LUT value does not match any valid bit depth" msgstr "Virhe - LUT:n maksimiarvo ei vastaa mitään tuettua värisyvyyttä." -#: ../src/iop/lut3d.c:1539 +#: ../src/iop/lut3d.c:1553 msgid "LUT root folder not defined" msgstr "LUT:ien juurihakemistoa ei ole määritetty" -#: ../src/iop/lut3d.c:1545 +#: ../src/iop/lut3d.c:1559 msgid "select LUT file" msgstr "Valitse LUT-tiedosto" -#: ../src/iop/lut3d.c:1546 +#: ../src/iop/lut3d.c:1560 msgid "_select" msgstr "_Valitse" -#: ../src/iop/lut3d.c:1566 +#: ../src/iop/lut3d.c:1580 msgid "hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" msgstr "Hald CLUT (PNG), 3D LUT (cube tai 3DL) tai G'Mic pakattu LUT (GMZ)" -#: ../src/iop/lut3d.c:1568 +#: ../src/iop/lut3d.c:1582 msgid "hald CLUT (png) or 3D LUT (cube or 3dl)" msgstr "Hald CLUT (PNG) tai 3D LUT (cube tai 3DL)" -#: ../src/iop/lut3d.c:1592 +#: ../src/iop/lut3d.c:1606 msgid "select file outside LUT root folder is not allowed" msgstr "" "Tiedoston valitseminen LUT:ien juurihakemiston ulkopuolelta ei ole sallittu." -#: ../src/iop/lut3d.c:1663 +#: ../src/iop/lut3d.c:1677 msgid "" "select a png (haldclut), a cube, a 3dl or a gmz (compressed LUT) file " "CAUTION: 3D LUT folder must be set in preferences/processing before choosing " @@ -18123,7 +18759,7 @@ "3D LUT hakemisto tulee asettaa Asetukset / Käsittely-valikossa ennen LUT-" "tiedoston valintaa." -#: ../src/iop/lut3d.c:1667 +#: ../src/iop/lut3d.c:1681 msgid "" "select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be " "set in preferences/processing before choosing the LUT file" @@ -18131,7 +18767,7 @@ "Valitse PNG (haldclut), cube tai 3DL-tiedosto. VAROITUS: 3D LUT hakemisto " "tulee asettaa Asetukset / Käsittely-valikossa ennen LUT-tiedoston valintaa." -#: ../src/iop/lut3d.c:1679 +#: ../src/iop/lut3d.c:1693 msgid "" "the file path (relative to LUT folder) is saved with image along with the " "LUT data if it's a compressed LUT (gmz)" @@ -18139,7 +18775,7 @@ "Tiedoston polku (suhteellinen LUT-tiedostojen hakemistoon) tallennetaan " "kuvan mukana LUT:n kanssa, jos se ei ole pakattu LUT (GMZ)" -#: ../src/iop/lut3d.c:1682 +#: ../src/iop/lut3d.c:1696 msgid "" "the file path (relative to LUT folder) is saved with image (and not the LUT " "data themselves)" @@ -18147,43 +18783,43 @@ "Tiedoston polku (suhteellinen LUT-tiedostojen hakemistoon) tallennetaan " "kuvan mukana (ilman varsinaista LUT-tietoa)." -#: ../src/iop/lut3d.c:1691 +#: ../src/iop/lut3d.c:1705 msgid "enter LUT name" msgstr "Syötä LUT:n nimi" -#: ../src/iop/lut3d.c:1712 +#: ../src/iop/lut3d.c:1726 msgid "select the LUT" msgstr "Valitse LUT" -#: ../src/iop/lut3d.c:1725 +#: ../src/iop/lut3d.c:1739 msgid "select the color space in which the LUT has to be applied" msgstr "Valitse väriavaruus missä LUT otetaan käyttöön." -#: ../src/iop/lut3d.c:1727 +#: ../src/iop/lut3d.c:1741 msgid "interpolation" msgstr "Interpolointitapa" -#: ../src/iop/lut3d.c:1728 +#: ../src/iop/lut3d.c:1742 msgid "select the interpolation method" msgstr "Valitse interpolointitapa." -#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:62 +#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:63 msgid "mask manager" msgstr "Maskien hallinta" -#: ../src/iop/monochrome.c:97 +#: ../src/iop/monochrome.c:99 msgid "quickly convert an image to black & white using a variable color filter" msgstr "Muunna kuva nopeasti mustavalkoiseksi käyttäen muuttuvaa värisuodinta" -#: ../src/iop/monochrome.c:127 +#: ../src/iop/monochrome.c:153 msgid "red filter" msgstr "Punasuodin" -#: ../src/iop/monochrome.c:546 +#: ../src/iop/monochrome.c:568 msgid "drag and scroll mouse wheel to adjust the virtual color filter" msgstr "Raahaa ja käytä hiiren rullaa säätääksesi virtuaalista värisuodinta." -#: ../src/iop/monochrome.c:562 +#: ../src/iop/monochrome.c:584 msgid "how much to keep highlights" msgstr "Huippuvalojen säilytyksen määrä." @@ -18199,35 +18835,35 @@ msgid "invert film negative scans and simulate printing on paper" msgstr "Käännä skannatut filminegatiivit ja simuloi kuvan tulostusta paperille" -#: ../src/iop/negadoctor.c:469 +#: ../src/iop/negadoctor.c:483 msgid "D min" msgstr "D min" -#: ../src/iop/negadoctor.c:475 ../src/iop/negadoctor.c:856 +#: ../src/iop/negadoctor.c:489 ../src/iop/negadoctor.c:875 msgid "D min red component" msgstr "D min punainen komponentti" #. Page FILM PROPERTIES -#: ../src/iop/negadoctor.c:832 +#: ../src/iop/negadoctor.c:851 msgid "film properties" msgstr "Filmin ominaisuudet" #. Dmin -#: ../src/iop/negadoctor.c:836 +#: ../src/iop/negadoctor.c:855 msgctxt "section" msgid "color of the film base" msgstr "Filmin pohjan väri" -#: ../src/iop/negadoctor.c:842 +#: ../src/iop/negadoctor.c:861 msgid "select color of film material from a swatch" msgstr "Valitse filmi-materiaalin väri mallista." -#: ../src/iop/negadoctor.c:848 +#: ../src/iop/negadoctor.c:867 msgid "film material" msgstr "Filmin materiaali" -#: ../src/iop/negadoctor.c:857 ../src/iop/negadoctor.c:867 -#: ../src/iop/negadoctor.c:877 +#: ../src/iop/negadoctor.c:876 ../src/iop/negadoctor.c:886 +#: ../src/iop/negadoctor.c:896 msgid "" "adjust the color and shade of the film transparent base.\n" "this value depends on the film material, \n" @@ -18239,21 +18875,21 @@ "kehittämisen aikaisesta kemiallisesta sumusta\n" "ja skannerin valkotasapainosta." -#: ../src/iop/negadoctor.c:866 +#: ../src/iop/negadoctor.c:885 msgid "D min green component" msgstr "D min vihreä komponentti" -#: ../src/iop/negadoctor.c:876 +#: ../src/iop/negadoctor.c:895 msgid "D min blue component" msgstr "D min sininen komponentti" #. D max and scanner bias -#: ../src/iop/negadoctor.c:884 +#: ../src/iop/negadoctor.c:903 msgctxt "section" msgid "dynamic range of the film" msgstr "Filmin dynaaminen alue" -#: ../src/iop/negadoctor.c:888 +#: ../src/iop/negadoctor.c:907 msgid "" "maximum density of the film, corresponding to white after inversion.\n" "this value depends on the film specifications, the developing process,\n" @@ -18263,12 +18899,12 @@ "Tämä arvo riippuu filmin tyypistä, kehitysprosessista, näkymän\n" "dynaamisesta alueesta ja skannerin valotuksen asetuksista." -#: ../src/iop/negadoctor.c:892 +#: ../src/iop/negadoctor.c:911 msgctxt "section" msgid "scanner exposure settings" msgstr "Skannerin valotuksen asetus" -#: ../src/iop/negadoctor.c:896 +#: ../src/iop/negadoctor.c:915 msgid "" "correct the exposure of the scanner, for all RGB channels,\n" "before the inversion, so blacks are neither clipped or too pale." @@ -18277,25 +18913,25 @@ "käännöstä siten, että musta ei leikkaudu tai näytä kalpealta." #. WB shadows -#: ../src/iop/negadoctor.c:903 +#: ../src/iop/negadoctor.c:922 msgctxt "section" msgid "shadows color cast" msgstr "Varjojen värivirhe" -#: ../src/iop/negadoctor.c:909 +#: ../src/iop/negadoctor.c:928 msgid "select color of shadows from a swatch" msgstr "Valitse varjojen väri mallista." -#: ../src/iop/negadoctor.c:914 +#: ../src/iop/negadoctor.c:933 msgid "pick shadows color from image" msgstr "Valitse varjojen väri kuvasta" -#: ../src/iop/negadoctor.c:920 +#: ../src/iop/negadoctor.c:939 msgid "shadows red offset" msgstr "Punaisten varjojen poikkeama" -#: ../src/iop/negadoctor.c:921 ../src/iop/negadoctor.c:928 -#: ../src/iop/negadoctor.c:935 +#: ../src/iop/negadoctor.c:940 ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:954 msgid "" "correct the color cast in shadows so blacks are\n" "truly achromatic. Setting this value before\n" @@ -18307,34 +18943,34 @@ "huippuvalojen valaisun valkotasapainoa auttaa\n" "palauttamaan yleisen valkotasapainon vaikeissa tapauksissa." -#: ../src/iop/negadoctor.c:927 +#: ../src/iop/negadoctor.c:946 msgid "shadows green offset" msgstr "Vihreiden varjojen poikkeama" -#: ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:953 msgid "shadows blue offset" msgstr "Sinisten varjojen poikkeama" #. WB highlights -#: ../src/iop/negadoctor.c:941 +#: ../src/iop/negadoctor.c:960 msgctxt "section" msgid "highlights white balance" msgstr "Huippuvalojen valkotasapaino" -#: ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:966 msgid "select color of illuminant from a swatch" msgstr "Valitse valaistuksen väri mallista." -#: ../src/iop/negadoctor.c:952 +#: ../src/iop/negadoctor.c:971 msgid "pick illuminant color from image" msgstr "Valitse valaistuksen väri kuvasta." -#: ../src/iop/negadoctor.c:958 +#: ../src/iop/negadoctor.c:977 msgid "illuminant red gain" msgstr "Valaisun punainen vahvistus" -#: ../src/iop/negadoctor.c:959 ../src/iop/negadoctor.c:966 -#: ../src/iop/negadoctor.c:973 +#: ../src/iop/negadoctor.c:978 ../src/iop/negadoctor.c:985 +#: ../src/iop/negadoctor.c:992 msgid "" "correct the color of the illuminant so whites are\n" "truly achromatic. Setting this value after\n" @@ -18346,26 +18982,26 @@ "varjojen värivääristymän korjauksen jälkeen auttaa\n" "palauttamaan yleisen valkotasapainon vaikeissa tapauksissa." -#: ../src/iop/negadoctor.c:965 +#: ../src/iop/negadoctor.c:984 msgid "illuminant green gain" msgstr "Valaisun vihreä vahvistus" -#: ../src/iop/negadoctor.c:972 +#: ../src/iop/negadoctor.c:991 msgid "illuminant blue gain" msgstr "Valaisun sininen vahvistus" #. Page PRINT PROPERTIES -#: ../src/iop/negadoctor.c:979 +#: ../src/iop/negadoctor.c:998 msgid "print properties" msgstr "Tulosteen ominaisuudet" #. print corrections -#: ../src/iop/negadoctor.c:982 +#: ../src/iop/negadoctor.c:1001 msgctxt "section" msgid "virtual paper properties" msgstr "Virtuaalisen paperin ominaisuudet" -#: ../src/iop/negadoctor.c:988 +#: ../src/iop/negadoctor.c:1007 msgid "" "correct the density of black after the inversion,\n" "to adjust the global contrast while avoiding clipping shadows." @@ -18373,7 +19009,7 @@ "Korjaa käännöksen jälkeistä yleistä kontrastia mustan\n" "tiheyden osalta varjojen leikkauksen estämiseksi." -#: ../src/iop/negadoctor.c:993 +#: ../src/iop/negadoctor.c:1012 msgid "" "select the grade of the virtual paper, which is actually\n" "equivalent to applying a gamma. it compensates the film D max\n" @@ -18383,7 +19019,7 @@ "gamman asetusta. Asetus kompensoi filmin D max arvoa\n" "ja palauttaa kontrastin. Käytä korkeaa luokkaa korkealla D max arvolle." -#: ../src/iop/negadoctor.c:1001 +#: ../src/iop/negadoctor.c:1020 msgid "" "gradually compress specular highlights past this value\n" "to avoid clipping while pushing the exposure for mid-tones.\n" @@ -18393,12 +19029,12 @@ "välttääksesi leikkaantumisen, kun muutetaan keskisävyjen\n" "valotusta. Vastaa kutakuinkin matta-paperin käyttäytymistä." -#: ../src/iop/negadoctor.c:1005 +#: ../src/iop/negadoctor.c:1024 msgctxt "section" msgid "virtual print emulation" msgstr "Virtuaalisen tulosteen jäljittely" -#: ../src/iop/negadoctor.c:1012 +#: ../src/iop/negadoctor.c:1031 msgid "" "correct the printing exposure after inversion to adjust\n" "the global contrast and avoid clipping highlights." @@ -18406,53 +19042,85 @@ "Korjaa käännöksen jälkeistä yleistä kontrastia tulosteen\n" "valotuksen osalta huippuvalojen leikkauksen estämiseksi." -#: ../src/iop/negadoctor.c:1020 +#: ../src/iop/negadoctor.c:1039 msgid "toggle on or off the color controls" msgstr "Vaihda värin valitsimet päälle / pois" -#: ../src/iop/nlmeans.c:84 +#: ../src/iop/nlmeans.c:78 msgid "astrophoto denoise" msgstr "Tähtivalokuvan kohinanpoisto" -#: ../src/iop/nlmeans.c:89 +#: ../src/iop/nlmeans.c:83 msgid "denoise (non-local means)" msgstr "Kohinanpoisto (epäpaikalliset keskiarvot)" -#: ../src/iop/nlmeans.c:94 +#: ../src/iop/nlmeans.c:88 msgid "apply a poisson noise removal best suited for astrophotography" msgstr "" "Käytä kuvaan erityisesti tähtivalokuville soveltuvaa Poisson-jakauman " "mukaista kohinan poistoa" -#: ../src/iop/nlmeans.c:459 +#: ../src/iop/nlmeans.c:462 msgid "radius of the patches to match" msgstr "Paikanhaun säde" -#: ../src/iop/nlmeans.c:467 +#: ../src/iop/nlmeans.c:470 msgid "how much to smooth brightness" msgstr "Kirkkauden tasoituksen voimakkuus." -#: ../src/iop/nlmeans.c:470 +#: ../src/iop/nlmeans.c:473 msgid "how much to smooth colors" msgstr "Värien tasoituksen voimakkuus." #. * let's fill the encapsulating widgets #. preview mode #. color scheme -#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2419 -#: ../src/views/darkroom.c:2437 ../src/views/darkroom.c:2444 -#: ../src/views/darkroom.c:2454 ../src/views/darkroom.c:2471 +#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2258 +#: ../src/views/darkroom.c:2276 ../src/views/darkroom.c:2283 +#: ../src/views/darkroom.c:2293 ../src/views/darkroom.c:2310 msgid "overexposed" msgstr "Ylivalottunut" -#: ../src/iop/overexposed.c:130 ../src/iop/overexposed.c:360 +#: ../src/iop/overexposed.c:123 ../src/iop/overexposed.c:352 msgid "module overexposed failed in buffer allocation" msgstr "Ylivalottunut moduuli epäonnistui puskurin varauksessa" -#: ../src/iop/overexposed.c:156 ../src/iop/overexposed.c:370 +#: ../src/iop/overexposed.c:149 ../src/iop/overexposed.c:362 msgid "module overexposed failed in color conversion" msgstr "Ylivalottunut moduuli epäonnistui värien muunnoksessa" +#: ../src/iop/primaries.c:74 +msgid "rgb primaries" +msgstr "Ensisijaiset RGB-värit" + +#: ../src/iop/primaries.c:79 +msgid "adjustment of the RGB color primaries for color grading" +msgstr "RGB-värien ensisijaisen värimäärittelyn säätö" + +#: ../src/iop/primaries.c:395 +msgid "shift red towards yellow or magenta" +msgstr "Muuta punaista kohti keltaista tai magentaa." + +#: ../src/iop/primaries.c:396 +msgid "red primary purity" +msgstr "Punaisen ensisijainen puhtaus." + +#: ../src/iop/primaries.c:397 +msgid "shift green towards cyan or yellow" +msgstr "Muuta vihreää kohti syaania tai keltaista." + +#: ../src/iop/primaries.c:398 +msgid "green primary purity" +msgstr "Vihreän ensisijainen puhtaus." + +#: ../src/iop/primaries.c:399 +msgid "shift blue towards magenta or cyan" +msgstr "Muta sinistä kohti magentaa tai syaania." + +#: ../src/iop/primaries.c:400 +msgid "blue primary purity" +msgstr "Sinisen ensisijainen puhtaus." + #: ../src/iop/profile_gamma.c:96 msgid "unbreak input profile" msgstr "Tuonnin väriprofiilin korjaus" @@ -18463,39 +19131,39 @@ "Korjaa tuonnin väriprofiilit jotka on tarkoitettu epälineaarisen RGB:n " "käyttöön" -#: ../src/iop/profile_gamma.c:136 +#: ../src/iop/profile_gamma.c:138 msgid "16 EV dynamic range (generic)" msgstr "16-aukon dynaaminen alue (yleinen)" -#: ../src/iop/profile_gamma.c:142 +#: ../src/iop/profile_gamma.c:144 msgid "14 EV dynamic range (generic)" msgstr "14-aukon dynaaminen alue (yleinen)" -#: ../src/iop/profile_gamma.c:148 +#: ../src/iop/profile_gamma.c:150 msgid "12 EV dynamic range (generic)" msgstr "12-aukon dynaaminen alue (yleinen)" -#: ../src/iop/profile_gamma.c:154 +#: ../src/iop/profile_gamma.c:156 msgid "10 EV dynamic range (generic)" msgstr "10-aukon dynaaminen alue (yleinen)" -#: ../src/iop/profile_gamma.c:160 +#: ../src/iop/profile_gamma.c:162 msgid "08 EV dynamic range (generic)" msgstr "08-aukon dynaaminen alue (yleinen)" -#: ../src/iop/profile_gamma.c:623 +#: ../src/iop/profile_gamma.c:637 msgid "linear part" msgstr "Suoralinjainen osa." -#: ../src/iop/profile_gamma.c:627 +#: ../src/iop/profile_gamma.c:641 msgid "gamma exponential factor" msgstr "Gamman eksponentti." -#: ../src/iop/profile_gamma.c:638 +#: ../src/iop/profile_gamma.c:652 msgid "adjust to match the average luma of the subject" msgstr "Säädä vastaamaan kohteen luman keskiarvoa." -#: ../src/iop/profile_gamma.c:644 +#: ../src/iop/profile_gamma.c:658 msgid "" "number of stops between middle gray and pure black\n" "this is a reading a light meter would give you on the scene" @@ -18503,7 +19171,7 @@ "Keskiharmaan ja puhtaan mustan väli aukkoina.\n" "Valotusmittari antaisi tämän lukeman tapahtumapaikalla." -#: ../src/iop/profile_gamma.c:650 +#: ../src/iop/profile_gamma.c:664 msgid "" "number of stops between pure black and pure white\n" "this is a reading a light meter would give you on the scene" @@ -18511,36 +19179,36 @@ "Puhtaan mustan ja puhtaan valkoisen väli aukkoina.\n" "Valotusmittari antaisi tämän lukeman tapahtumapaikalla." -#: ../src/iop/profile_gamma.c:652 +#: ../src/iop/profile_gamma.c:666 msgctxt "section" msgid "optimize automatically" msgstr "Optimoi automaattisesti" -#: ../src/iop/profile_gamma.c:656 +#: ../src/iop/profile_gamma.c:670 msgid "" -"enlarge or shrink the computed dynamic range\n" -"this is useful when noise perturbates the measurements" +"increase or decrease the computed dynamic range\n" +"this is useful when noise distorts the measurement" msgstr "" -"Laajena tai kutista laskettua dynaamista aluetta.\n" +"Lisää tai vähennä laskettua dynaamista aluetta.\n" "Tämä on hyödyllistä, kun kohina häiritsee mittausta." -#: ../src/iop/profile_gamma.c:660 +#: ../src/iop/profile_gamma.c:674 msgid "make an optimization with some guessing" msgstr "Tee optimointi parhaan arvauksen mukaan." -#: ../src/iop/profile_gamma.c:669 +#: ../src/iop/profile_gamma.c:683 msgid "tone mapping method" msgstr "Sävyjen kartoitusmenetelmä" -#: ../src/iop/rawdenoise.c:124 +#: ../src/iop/rawdenoise.c:138 msgid "raw denoise" msgstr "Raakakuvan kohinanpoisto" -#: ../src/iop/rawdenoise.c:129 +#: ../src/iop/rawdenoise.c:143 msgid "denoise the raw picture early in the pipeline" msgstr "Poista raakakuvan kohinaa työskentelyputken alussa" -#: ../src/iop/rawdenoise.c:939 +#: ../src/iop/rawdenoise.c:955 msgid "" "raw denoising\n" "only works for raw images." @@ -18550,9 +19218,9 @@ #. * let's fill the encapsulating widgets #. mode of operation -#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2387 ../src/views/darkroom.c:2393 -#: ../src/views/darkroom.c:2406 +#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2226 ../src/views/darkroom.c:2232 +#: ../src/views/darkroom.c:2245 msgid "raw overexposed" msgstr "Ylivalottunut raakakuva" @@ -18561,7 +19229,7 @@ msgid "raw black/white point" msgstr "Raakakuvan musta/valkoinen piste" -#: ../src/iop/rawprepare.c:156 +#: ../src/iop/rawprepare.c:172 msgid "" "sets technical specificities of the raw sensor.\n" "touch with great care!" @@ -18569,63 +19237,63 @@ "Asettaa kuvakennon tekniset yksityiskohdat.\n" "Muuta erittäin suurella varovaisuudella!" -#: ../src/iop/rawprepare.c:168 +#: ../src/iop/rawprepare.c:184 msgid "passthrough" msgstr "Läpipäästö" -#: ../src/iop/rawprepare.c:655 +#: ../src/iop/rawprepare.c:663 msgid "invalid crop parameters" msgstr "Virheelliset rajauksen asetukset" -#: ../src/iop/rawprepare.c:656 +#: ../src/iop/rawprepare.c:664 msgid "" "please reset to defaults, update your preset or set to something correct" msgstr "" "Ole hyvä ja palauta oletukset, päivitä esiasetuksesi tai aseta oikeaan " "arvoon." -#: ../src/iop/rawprepare.c:922 +#: ../src/iop/rawprepare.c:930 msgid "black level 0" msgstr "Mustan taso 0" -#: ../src/iop/rawprepare.c:923 +#: ../src/iop/rawprepare.c:931 msgid "black level 1" msgstr "Mustan taso 1" -#: ../src/iop/rawprepare.c:924 +#: ../src/iop/rawprepare.c:932 msgid "black level 2" msgstr "Mustan taso 2" -#: ../src/iop/rawprepare.c:925 +#: ../src/iop/rawprepare.c:933 msgid "black level 3" msgstr "Mustan taso 3" -#: ../src/iop/rawprepare.c:952 +#: ../src/iop/rawprepare.c:960 msgid "raw flat field correction to compensate for lens shading" msgstr "Raakakuvan tasoituskorjaus kompensoi objektiivin tummuvia nurkkia." -#: ../src/iop/rawprepare.c:957 +#: ../src/iop/rawprepare.c:965 msgctxt "section" msgid "crop" msgstr "Rajaa" -#: ../src/iop/rawprepare.c:960 +#: ../src/iop/rawprepare.c:968 msgid "crop left border" msgstr "Rajaa vasen reuna" -#: ../src/iop/rawprepare.c:964 +#: ../src/iop/rawprepare.c:972 msgid "crop top border" msgstr "Rajaa yläreuna" -#: ../src/iop/rawprepare.c:968 +#: ../src/iop/rawprepare.c:976 msgid "crop right border" msgstr "Rajaa oikea reuna" -#: ../src/iop/rawprepare.c:972 +#: ../src/iop/rawprepare.c:980 msgid "crop bottom border" msgstr "Rajaa alareuna" -#: ../src/iop/rawprepare.c:981 +#: ../src/iop/rawprepare.c:989 msgid "" "raw black/white point correction\n" "only works for the sensors that need it." @@ -18653,11 +19321,11 @@ "Tämä moduuli on vanhentunut. Kannattaa käyttää sävyjen taajuuskorjaus-" "moduulia tämän sijaan." -#: ../src/iop/relight.c:263 +#: ../src/iop/relight.c:259 msgid "the fill-light in EV" msgstr "Täyttövalon määrä aukkoina." -#: ../src/iop/relight.c:272 +#: ../src/iop/relight.c:268 msgid "" "select the center of fill-light\n" "ctrl+click to select an area" @@ -18665,16 +19333,11 @@ "Valitse lisävalotuksen keskikohta.\n" "CTRL+napsaus valitsee alueen." -#: ../src/iop/relight.c:276 +#: ../src/iop/relight.c:272 msgid "toggle tool for picking median lightness in image" msgstr "Vaihda työkalua kuvan keskimmäisen vaaleuden valitsemiseen" -#: ../src/iop/relight.c:279 ../src/libs/export.c:1131 -#: ../src/libs/metadata_view.c:147 ../src/libs/print_settings.c:2537 -msgid "width" -msgstr "Kuvan leveys" - -#: ../src/iop/relight.c:280 +#: ../src/iop/relight.c:276 msgid "width of fill-light area defined in zones" msgstr "Vyöhykkeillä määritetty vaalean alueen leveys." @@ -18694,29 +19357,29 @@ msgid "geometric and frequential, RGB" msgstr "Geometrinen ja taajuudellinen, RGB" -#: ../src/iop/retouch.c:1538 +#: ../src/iop/retouch.c:1689 msgid "cannot display scales when the blending mask is displayed" msgstr "Asteikon näyttö ei onnistu, kun yhdistämisen maski on käytössä." -#: ../src/iop/retouch.c:1861 ../src/iop/retouch.c:1863 -#: ../src/iop/retouch.c:1865 ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2045 ../src/iop/retouch.c:2047 +#: ../src/iop/retouch.c:2049 ../src/iop/retouch.c:2051 #, c-format msgid "default tool changed to %s" msgstr "Vaihdettiin oletustyökaluksi %s" -#: ../src/iop/retouch.c:1861 +#: ../src/iop/retouch.c:2045 msgid "cloning" msgstr "Kloonaus" -#: ../src/iop/retouch.c:1863 +#: ../src/iop/retouch.c:2047 msgid "healing" msgstr "Parannus" -#: ../src/iop/retouch.c:2226 +#: ../src/iop/retouch.c:2448 msgid "shapes:" msgstr "Muodot:" -#: ../src/iop/retouch.c:2230 +#: ../src/iop/retouch.c:2454 msgid "" "to add a shape select an algorithm and a shape type and click on the image.\n" "shapes are added to the current scale" @@ -18725,77 +19388,73 @@ "kuvaa.\n" "Muodot lisätään nykyiseen asteikkoon." -#. display & suppress masks -#. copy/paste shapes -#. display final image/current scale -#. auto-levels button -#: ../src/iop/retouch.c:2233 ../src/iop/retouch.c:2334 -#: ../src/iop/retouch.c:2339 ../src/iop/retouch.c:2347 -#: ../src/iop/retouch.c:2351 ../src/iop/retouch.c:2358 -#: ../src/iop/retouch.c:2392 +#: ../src/iop/retouch.c:2458 ../src/iop/retouch.c:2591 +#: ../src/iop/retouch.c:2597 ../src/iop/retouch.c:2606 +#: ../src/iop/retouch.c:2611 ../src/iop/retouch.c:2619 +#: ../src/iop/retouch.c:2664 msgid "editing" msgstr "Muokkaus" -#: ../src/iop/retouch.c:2233 +#: ../src/iop/retouch.c:2459 msgid "show and edit shapes on the current scale" msgstr "Näytä ja muokkaa muotoja nykyisellä asteikolla" -#: ../src/iop/retouch.c:2234 +#: ../src/iop/retouch.c:2460 msgid "show and edit shapes in restricted mode" msgstr "Näytä ja muokkaa muotoja rajoitetussa tilassa" -#: ../src/iop/retouch.c:2257 +#: ../src/iop/retouch.c:2489 msgid "algorithms:" msgstr "Algoritmit:" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2498 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2510 msgid "tools" msgstr "Työkalut" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2278 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2518 msgid "activate blur tool" msgstr "Aktivoi sumennustyökalu." -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2493 ../src/iop/retouch.c:2499 +#: ../src/iop/retouch.c:2505 ../src/iop/retouch.c:2511 msgid "change algorithm for current form" msgstr "Muuta valitun muodon algoritmia." -#: ../src/iop/retouch.c:2264 ../src/iop/retouch.c:2281 +#: ../src/iop/retouch.c:2498 ../src/iop/retouch.c:2521 msgid "activate fill tool" msgstr "Aktivoi täyttötyökalu." -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2284 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2524 msgid "activate cloning tool" msgstr "Aktivoi kloonaustyökalu." -#: ../src/iop/retouch.c:2272 ../src/iop/retouch.c:2287 +#: ../src/iop/retouch.c:2510 ../src/iop/retouch.c:2527 msgid "activate healing tool" msgstr "Aktivoi parannustyökalu." #. overwrite tooltip ourself to handle shift+click -#: ../src/iop/retouch.c:2276 +#: ../src/iop/retouch.c:2516 msgid "ctrl+click to change tool for current form" msgstr "CTRL+napsaus valitsee työkalun." -#: ../src/iop/retouch.c:2277 +#: ../src/iop/retouch.c:2517 msgid "shift+click to set the tool as default" msgstr "SHIFT+napsaus asettaa työkalun oletukseksi." -#: ../src/iop/retouch.c:2296 +#: ../src/iop/retouch.c:2537 msgid "scales:" msgstr "Asteikot:" -#: ../src/iop/retouch.c:2301 +#: ../src/iop/retouch.c:2544 msgid "current:" msgstr "Nykyinen:" -#: ../src/iop/retouch.c:2306 +#: ../src/iop/retouch.c:2551 msgid "merge from:" msgstr "Yhdistä kohteesta:" -#: ../src/iop/retouch.c:2314 +#: ../src/iop/retouch.c:2562 msgid "" "top slider adjusts where the merge scales start\n" "bottom slider adjusts the number of scales\n" @@ -18809,44 +19468,44 @@ "Ylempi viiva näyttää, että asteikko näkyy nykyisellä zoomauksen tasolla.\n" "Alempi viiva näyttää, että asteikolla on muotoja." -#: ../src/iop/retouch.c:2334 +#: ../src/iop/retouch.c:2591 msgid "display masks" msgstr "Näytä maskit" -#: ../src/iop/retouch.c:2339 +#: ../src/iop/retouch.c:2597 msgid "temporarily switch off shapes" msgstr "Ota muodot väliaikaisesti pois käytöstä" -#: ../src/iop/retouch.c:2347 +#: ../src/iop/retouch.c:2606 msgid "paste cut shapes to current scale" msgstr "Liitä leikatut muodot nykyiseen asteikkoon" -#: ../src/iop/retouch.c:2351 +#: ../src/iop/retouch.c:2611 msgid "cut shapes from current scale" msgstr "Leikkaa muodot nykyisestä asteikosta" -#: ../src/iop/retouch.c:2358 +#: ../src/iop/retouch.c:2619 msgid "display wavelet scale" msgstr "Näytä aallokeasteikko" -#: ../src/iop/retouch.c:2366 +#: ../src/iop/retouch.c:2627 msgctxt "section" msgid "preview single scale" msgstr "Yksittäisen asteikon esikatselu" -#: ../src/iop/retouch.c:2377 +#: ../src/iop/retouch.c:2641 msgid "adjust preview levels" msgstr "Muuta esikatselun tasot" -#: ../src/iop/retouch.c:2392 ../src/iop/rgblevels.c:1051 +#: ../src/iop/retouch.c:2664 ../src/iop/rgblevels.c:1106 msgid "auto levels" msgstr "Automaattiset tasot" -#: ../src/iop/retouch.c:2400 +#: ../src/iop/retouch.c:2672 msgid "shape selected:" msgstr "Valittu muoto: " -#: ../src/iop/retouch.c:2405 +#: ../src/iop/retouch.c:2678 msgid "" "click on a shape to select it,\n" "to unselect click on an empty space" @@ -18854,61 +19513,61 @@ "Napsauta muotoa valitaksesi sen.\n" "Peru valinta napsauttamalla tyhjää tilaa." -#: ../src/iop/retouch.c:2412 +#: ../src/iop/retouch.c:2687 msgid "erase the detail or fills with chosen color" msgstr "Pyyhi yksityiskohtia tai täytä valitulla värillä." -#: ../src/iop/retouch.c:2419 +#: ../src/iop/retouch.c:2697 msgid "fill color: " msgstr "Täytön väri: " -#: ../src/iop/retouch.c:2424 ../src/iop/retouch.c:2425 +#: ../src/iop/retouch.c:2702 ../src/iop/retouch.c:2703 msgid "select fill color" msgstr "Valitse täytössä käytettävä väri" -#: ../src/iop/retouch.c:2430 +#: ../src/iop/retouch.c:2713 msgid "pick fill color from image" msgstr "Valitse täytössä käytettävä väri kuvasta." -#: ../src/iop/retouch.c:2431 +#: ../src/iop/retouch.c:2714 msgid "pick fill color" msgstr "Valitse täytön väri" -#: ../src/iop/retouch.c:2439 +#: ../src/iop/retouch.c:2724 msgid "adjusts color brightness to fine-tune it. works with erase as well" msgstr "" "Säädä värin kirkkautta hienosäätääksesi sitä. Toimii myös pyyhekumilla." -#: ../src/iop/retouch.c:2445 +#: ../src/iop/retouch.c:2730 msgid "type for the blur algorithm" msgstr "Sumennukseen käytettävä algoritmi" -#: ../src/iop/retouch.c:2449 +#: ../src/iop/retouch.c:2734 msgid "radius of the selected blur type" msgstr "Valitun sumennustavan säde" -#: ../src/iop/retouch.c:2455 +#: ../src/iop/retouch.c:2741 msgid "set the opacity on the selected shape" msgstr "Aseta valitun muodon läpinäkyvyys" -#: ../src/iop/retouch.c:2461 +#: ../src/iop/retouch.c:2748 msgctxt "section" msgid "retouch tools" msgstr "Retusointityökalut" #. wavelet decompose -#: ../src/iop/retouch.c:2470 +#: ../src/iop/retouch.c:2757 msgctxt "section" msgid "wavelet decompose" msgstr "Aallokehajotus" #. shapes -#: ../src/iop/retouch.c:2484 +#: ../src/iop/retouch.c:2771 msgctxt "section" msgid "shapes" msgstr "Muodot" -#: ../src/iop/retouch.c:3589 ../src/iop/retouch.c:4427 +#: ../src/iop/retouch.c:3986 ../src/iop/retouch.c:4956 #, c-format msgid "max scale is %i for this image size" msgstr "Maksimiarvo on %i tälle kuvakoolle." @@ -18917,59 +19576,59 @@ msgid "rgb curve" msgstr "RGB-käyrä" -#: ../src/iop/rgbcurve.c:142 +#: ../src/iop/rgbcurve.c:144 msgid "alter an image’s tones using curves in RGB color space" msgstr "Muuta kuvan sävyjä käyttämällä käyriä RGB-väriavaruudessa" -#: ../src/iop/rgbcurve.c:193 ../src/iop/tonecurve.c:548 +#: ../src/iop/rgbcurve.c:195 ../src/iop/tonecurve.c:569 msgid "gamma 1.0 (linear)" msgstr "Gamma 1.0 (lineaarinen)" -#: ../src/iop/rgbcurve.c:203 ../src/iop/tonecurve.c:558 +#: ../src/iop/rgbcurve.c:205 ../src/iop/tonecurve.c:579 msgid "contrast - med (linear)" msgstr "Kontrasti - keski (lineaarinen)" -#: ../src/iop/rgbcurve.c:212 ../src/iop/tonecurve.c:567 +#: ../src/iop/rgbcurve.c:214 ../src/iop/tonecurve.c:588 msgid "contrast - high (linear)" msgstr "Kontrasti - suuri (lineaarinen)" -#: ../src/iop/rgbcurve.c:226 ../src/iop/tonecurve.c:579 +#: ../src/iop/rgbcurve.c:228 ../src/iop/tonecurve.c:600 msgid "contrast - med (gamma 2.2)" msgstr "Kontrasti - keski (gamma 2.2)" -#: ../src/iop/rgbcurve.c:239 ../src/iop/tonecurve.c:590 +#: ../src/iop/rgbcurve.c:241 ../src/iop/tonecurve.c:611 msgid "contrast - high (gamma 2.2)" msgstr "Kontrasti - suuri (gamma 2.2)" -#: ../src/iop/rgbcurve.c:252 ../src/iop/tonecurve.c:603 +#: ../src/iop/rgbcurve.c:254 ../src/iop/tonecurve.c:624 msgid "gamma 2.0" msgstr "Gamma 2.0" -#: ../src/iop/rgbcurve.c:258 ../src/iop/tonecurve.c:609 +#: ../src/iop/rgbcurve.c:260 ../src/iop/tonecurve.c:630 msgid "gamma 0.5" msgstr "Gamma 0.5" -#: ../src/iop/rgbcurve.c:263 ../src/iop/tonecurve.c:614 +#: ../src/iop/rgbcurve.c:265 ../src/iop/tonecurve.c:635 msgid "logarithm (base 2)" msgstr "Logaritminen (kantaluku 2)" -#: ../src/iop/rgbcurve.c:268 ../src/iop/tonecurve.c:619 +#: ../src/iop/rgbcurve.c:270 ../src/iop/tonecurve.c:640 msgid "exponential (base 2)" msgstr "Eksponentiaalinen (kantaluku 2)" -#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:999 +#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:1038 msgid "choose between linked and independent channels." msgstr "Valitse joko yhdistetyt tai itsenäiset kanavat." -#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1003 +#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1043 msgid "curve nodes for r channel" msgstr "Käyrän solmut R-kanavalle" -#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1004 +#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1044 msgid "curve nodes for g channel" msgstr "Käyrän solmut G-kanavalle" -#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1005 +#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1045 msgid "curve nodes for b channel" msgstr "Käyrän solmut B-kanavalle" @@ -18977,16 +19636,16 @@ msgid "rgb levels" msgstr "RGB-tasot" -#: ../src/iop/rgblevels.c:122 +#: ../src/iop/rgblevels.c:124 msgid "adjust black, white and mid-gray points in RGB color space" msgstr "" "Säädä kuvan mustaa, valkoista ja keskiharmaata pistettä RGB-väriavaruudessa" -#: ../src/iop/rgblevels.c:1056 +#: ../src/iop/rgblevels.c:1112 msgid "auto region" msgstr "Automaattinen alue" -#: ../src/iop/rgblevels.c:1058 +#: ../src/iop/rgblevels.c:1115 msgid "" "apply auto levels based on a region defined by the user\n" "click and drag to draw the area\n" @@ -19001,7 +19660,7 @@ msgid "rotate pixels" msgstr "Pikselien kierto" -#: ../src/iop/rotatepixels.c:97 ../src/iop/scalepixels.c:82 +#: ../src/iop/rotatepixels.c:99 ../src/iop/scalepixels.c:84 msgid "" "internal module to setup technical specificities of raw sensor.\n" "\n" @@ -19011,11 +19670,11 @@ "\n" "Sinun ei tulisi muuttaa näitä arvoja!" -#: ../src/iop/rotatepixels.c:366 +#: ../src/iop/rotatepixels.c:381 msgid "automatic pixel rotation" msgstr "Automaattinen pikselien kierto" -#: ../src/iop/rotatepixels.c:367 +#: ../src/iop/rotatepixels.c:382 msgid "" "automatic pixel rotation\n" "only works for the sensors that need it." @@ -19028,11 +19687,11 @@ msgid "scale pixels" msgstr "Pikselien skaalaus" -#: ../src/iop/scalepixels.c:274 +#: ../src/iop/scalepixels.c:281 msgid "automatic pixel scaling" msgstr "Automaattinen pikselien skaalaus" -#: ../src/iop/scalepixels.c:275 +#: ../src/iop/scalepixels.c:282 msgid "" "automatic pixel scaling\n" "only works for the sensors that need it." @@ -19040,11 +19699,11 @@ "Automaattinen pikselien skaalaus\n" "käytettävissä ainoastaan korjausta tarvitsevilla kuvakennoilla." -#: ../src/iop/shadhi.c:175 +#: ../src/iop/shadhi.c:120 msgid "shadows and highlights" msgstr "Varjot ja huippuvalot" -#: ../src/iop/shadhi.c:195 +#: ../src/iop/shadhi.c:142 msgid "" "modify the tonal range of the shadows and highlights\n" "of an image by enhancing local contrast." @@ -19052,27 +19711,27 @@ "Muokkaa kuvan varjojen ja huippuvalojen sävyaluetta\n" "korostamalla paikallista kontrastia" -#: ../src/iop/shadhi.c:676 ../src/iop/splittoning.c:548 +#: ../src/iop/shadhi.c:711 ../src/iop/splittoning.c:544 msgid "compress" msgstr "Pakkaus" -#: ../src/iop/shadhi.c:683 +#: ../src/iop/shadhi.c:718 msgid "correct shadows" msgstr "Varjojen korjaus." -#: ../src/iop/shadhi.c:684 +#: ../src/iop/shadhi.c:719 msgid "correct highlights" msgstr "Huippuvalojen korjaus." -#: ../src/iop/shadhi.c:685 +#: ../src/iop/shadhi.c:720 msgid "shift white point" msgstr "Muuta valkoista pistettä." -#: ../src/iop/shadhi.c:687 +#: ../src/iop/shadhi.c:722 msgid "filter to use for softening. bilateral avoids halos" msgstr "Pehmennyssuodin. Kaksipuolinen suodin lieventää haloja." -#: ../src/iop/shadhi.c:688 +#: ../src/iop/shadhi.c:723 msgid "" "compress the effect on shadows/highlights and\n" "preserve mid-tones" @@ -19080,11 +19739,11 @@ "Pakkaa varjojen ja huippuvalojen tehoa sekä\n" "säilytä keskisävyt." -#: ../src/iop/shadhi.c:689 +#: ../src/iop/shadhi.c:724 msgid "adjust saturation of shadows" msgstr "Säädä varjojen värikylläisyyttä." -#: ../src/iop/shadhi.c:690 +#: ../src/iop/shadhi.c:725 msgid "adjust saturation of highlights" msgstr "Säädä huippuvalojen värikylläisyyttä." @@ -19093,47 +19752,47 @@ msgid "sharpen" msgstr "Terävöitys" -#: ../src/iop/sharpen.c:93 +#: ../src/iop/sharpen.c:95 msgid "sharpen the details in the image using a standard UnSharp Mask (USM)" msgstr "" "Terävöitä kuvan yksityiskohdat perinteisellä epäterävät maskit menetelmällä " "(USM)" -#: ../src/iop/sharpen.c:95 +#: ../src/iop/sharpen.c:97 msgid "linear or non-linear, Lab, display or scene-referred" msgstr "Suoralinjainen tai epälineaarinen, Lab, Näyttö tai Näkymä-viitattu" -#: ../src/iop/sharpen.c:97 +#: ../src/iop/sharpen.c:99 msgid "quasi-linear, Lab, display or scene-referred" msgstr "Näennäislineaarinen, Lab, Näyttö tai Näkymä-viitattu" #. add the preset. #. restrict to raw images -#: ../src/iop/sharpen.c:104 ../src/iop/sharpen.c:108 +#: ../src/iop/sharpen.c:106 ../src/iop/sharpen.c:110 msgid "sharpen" msgstr "Terävöinti" -#: ../src/iop/sharpen.c:443 +#: ../src/iop/sharpen.c:438 msgid "spatial extent of the unblurring" msgstr "Sumennuksen poiston alueellinen kattavuus." -#: ../src/iop/sharpen.c:447 +#: ../src/iop/sharpen.c:442 msgid "strength of the sharpen" msgstr "Terävöityksen voimakkuus." -#: ../src/iop/sharpen.c:451 +#: ../src/iop/sharpen.c:446 msgid "threshold to activate sharpen" msgstr "Terävöityksen kynnysarvo." -#: ../src/iop/sigmoid.c:89 +#: ../src/iop/sigmoid.c:195 msgid "sigmoid" msgstr "Sigmoid" -#: ../src/iop/sigmoid.c:94 +#: ../src/iop/sigmoid.c:200 msgid "tone mapping|view transform|display transform" msgstr "Sävyjen kartoitus|Näkymän muunnos|Näytön muunnos" -#: ../src/iop/sigmoid.c:99 +#: ../src/iop/sigmoid.c:206 msgid "" "apply a view transform to make a image displayable\n" "on a screen or print. uses a robust and smooth\n" @@ -19143,19 +19802,19 @@ "tai tulosteessa kelvolliseksi. Käyttää varmatoimista ja tasaista\n" "sävykäyrää valittavissa olevilla värin säilytysmenetelmillä." -#: ../src/iop/sigmoid.c:155 +#: ../src/iop/sigmoid.c:258 msgid "neutral gray" msgstr "Neutraali harmaa" -#: ../src/iop/sigmoid.c:160 +#: ../src/iop/sigmoid.c:264 msgid "ACES 100-nit like" msgstr "ACES 100-nits kaltainen" -#: ../src/iop/sigmoid.c:165 +#: ../src/iop/sigmoid.c:270 msgid "Reinhard" msgstr "Reinhard" -#: ../src/iop/sigmoid.c:683 +#: ../src/iop/sigmoid.c:917 msgid "" "compression of the applied curve\n" "implicitly defines the supported input dynamic range" @@ -19163,7 +19822,7 @@ "Käytettävän käyrän pakkaus.\n" "Määrittää implisiittisesti tuetun tulon dynaamisen alueen." -#: ../src/iop/sigmoid.c:686 +#: ../src/iop/sigmoid.c:920 msgid "" "shift the compression towards shadows or highlights.\n" "negative values increase contrast in shadows.\n" @@ -19175,7 +19834,7 @@ "Positiiviset arvot lisäävät huippuvalojen kontrastia.\n" "Vastakkaisessa päässä kontrasti vähenee." -#: ../src/iop/sigmoid.c:695 +#: ../src/iop/sigmoid.c:929 msgid "" "optional correction of the hue twist introduced by\n" "the per-channel processing method." @@ -19183,15 +19842,55 @@ "Valinnainen sävyn kierteen korjaus, joka aiheutuu\n" "kanavakohtaisesta käsittelytavasta." -#: ../src/iop/sigmoid.c:702 +#: ../src/iop/sigmoid.c:936 ../src/iop/sigmoid.c:940 +msgid "primaries" +msgstr "Ensisijaiset värit" + +#: ../src/iop/sigmoid.c:937 +msgid "set custom primaries" +msgstr "Aseta mukautetut ensisijaiset värit." + +#: ../src/iop/sigmoid.c:943 +msgid "primaries to use as the base for below adjustments" +msgstr "Perustana käytettävät päävärit alla oleville säädöille." + +#: ../src/iop/sigmoid.c:962 +msgid "attenuate the purity of the red primary" +msgstr "Vaimenna punaisen päävärin puhtautta." + +#: ../src/iop/sigmoid.c:963 +msgid "rotate the red primary" +msgstr "Kierrä punainen pääväri." + +#: ../src/iop/sigmoid.c:964 +msgid "attenuate the purity of the green primary" +msgstr "Vaimenna vihreän päävärin puhtautta." + +#: ../src/iop/sigmoid.c:965 +msgid "rotate the green primary" +msgstr "Kierrä vihreä pääväri." + +#: ../src/iop/sigmoid.c:966 +msgid "attenuate the purity of the blue primary" +msgstr "Vaimenna sinisen päävärin puhtautta." + +#: ../src/iop/sigmoid.c:967 +msgid "rotate the blue primary" +msgstr "Kierrä sininen pääväri." + +#: ../src/iop/sigmoid.c:974 +msgid "recover some of the original purity after the inset" +msgstr "Palauta jotain alkuperäisestä puhtaudesta liitteen jälkeen." + +#: ../src/iop/sigmoid.c:978 msgid "display luminance" msgstr "Näytön kirkkaus" -#: ../src/iop/sigmoid.c:706 +#: ../src/iop/sigmoid.c:979 msgid "set display black/white targets" msgstr "Aseta näytön mustan/valkoisen kohteet" -#: ../src/iop/sigmoid.c:714 +#: ../src/iop/sigmoid.c:987 msgid "" "the black luminance of the target display or print.\n" "can be used creatively for a faded look." @@ -19199,7 +19898,7 @@ "Kohdenäytön tai tulosteen mustan kirkkaus.\n" "Voidaan käyttää luovasti haalistuneen kuvan saamiseksi." -#: ../src/iop/sigmoid.c:719 +#: ../src/iop/sigmoid.c:992 msgid "" "the white luminance of the target display or print.\n" "can be used creatively for a faded look or blowing out whites earlier." @@ -19212,23 +19911,23 @@ msgid "soften" msgstr "Pehmennys" -#: ../src/iop/soften.c:100 +#: ../src/iop/soften.c:102 msgid "create a softened image using the Orton effect" msgstr "Tee pehmennetty kuva käyttäen Orton-tehostetta" -#: ../src/iop/soften.c:371 +#: ../src/iop/soften.c:366 msgid "the size of blur" msgstr "Sumennuksen koko." -#: ../src/iop/soften.c:375 +#: ../src/iop/soften.c:370 msgid "the saturation of blur" msgstr "Sumennuksen värikylläisyys." -#: ../src/iop/soften.c:379 +#: ../src/iop/soften.c:374 msgid "the brightness of blur" msgstr "Sumennuksen kirkkaus." -#: ../src/iop/soften.c:383 +#: ../src/iop/soften.c:378 msgid "the mix of effect" msgstr "Tehosteen sekoitus." @@ -19236,7 +19935,7 @@ msgid "split-toning" msgstr "Jakosävytys" -#: ../src/iop/splittoning.c:101 +#: ../src/iop/splittoning.c:103 msgid "" "use two specific colors for shadows and highlights and\n" "create a linear toning effect between them up to a pivot." @@ -19244,49 +19943,49 @@ "Käytä kahta väriä varjoille ja huippuvaloille sekä\n" "luo suoralinjainen sävytys niiden väliselle käännölle" -#: ../src/iop/splittoning.c:118 +#: ../src/iop/splittoning.c:120 msgid "authentic sepia" msgstr "Aito seepiavedos" -#: ../src/iop/splittoning.c:127 +#: ../src/iop/splittoning.c:129 msgid "authentic cyanotype" msgstr "Aito sinikopiovedos" -#: ../src/iop/splittoning.c:136 +#: ../src/iop/splittoning.c:138 msgid "authentic platinotype" msgstr "Aito platinavedos" -#: ../src/iop/splittoning.c:145 +#: ../src/iop/splittoning.c:147 msgid "chocolate brown" msgstr "Suklaanruskea" -#: ../src/iop/splittoning.c:490 +#: ../src/iop/splittoning.c:486 msgid "select the saturation tone" msgstr "Valitse värikylläisyyden värivivahde." -#: ../src/iop/splittoning.c:494 +#: ../src/iop/splittoning.c:490 msgid "select tone color" msgstr "Valitse värivivahteen väri" -#: ../src/iop/splittoning.c:524 +#: ../src/iop/splittoning.c:520 msgctxt "section" msgid "shadows" msgstr "Varjot" -#: ../src/iop/splittoning.c:530 +#: ../src/iop/splittoning.c:526 msgctxt "section" msgid "highlights" msgstr "Huippuvalot" -#: ../src/iop/splittoning.c:539 +#: ../src/iop/splittoning.c:535 msgid "balance" msgstr "Tasapaino" -#: ../src/iop/splittoning.c:546 +#: ../src/iop/splittoning.c:542 msgid "the balance of center of split-toning" msgstr "Jakosävytyksen keskikohdan tasapaino." -#: ../src/iop/splittoning.c:550 +#: ../src/iop/splittoning.c:546 msgid "" "compress the effect on highlights/shadows and\n" "preserve mid-tones" @@ -19312,17 +20011,17 @@ msgid "geometric, raw" msgstr "Geometrinen, RAW" -#: ../src/iop/spots.c:226 +#: ../src/iop/spots.c:238 msgid "spot module is limited to 64 shapes. please add a new instance!" msgstr "" "Täplienpoisto-moduulin muotojen maksimimäärä on 64. Ole hyvä ja lisää uusi " "instanssi!" -#: ../src/iop/spots.c:872 +#: ../src/iop/spots.c:874 msgid "number of strokes:" msgstr "Korjausten määrä:" -#: ../src/iop/spots.c:876 +#: ../src/iop/spots.c:878 msgid "" "click on a shape and drag on canvas.\n" "use the mouse wheel to adjust size.\n" @@ -19332,130 +20031,118 @@ "Käytä hiiren rullaa koon muuttamiseen.\n" "Oikea napsaus poistaa muodon." -#: ../src/iop/spots.c:879 +#: ../src/iop/spots.c:881 msgid "show and edit shapes" msgstr "Näytä ja muokkaa muotoja." -#: ../src/iop/temperature.c:204 +#: ../src/iop/temperature.c:212 msgctxt "modulename" msgid "white balance" msgstr "Valkotasapaino" -#: ../src/iop/temperature.c:211 +#: ../src/iop/temperature.c:219 msgid "scale raw RGB channels to balance white and help demosaicing" msgstr "" "Skaalaa RAW-kuvan RGB-kanavat valkoisen tasapainottamiseksi ja mosaiikin " "palautuksen helpottamiseksi" -#: ../src/iop/temperature.c:1149 -msgid "white balance applied twice" -msgstr "Valkotasapaino asetettu kahteen kertaan" - -#: ../src/iop/temperature.c:1150 -msgid "" -"the color calibration module is enabled,\n" -"and performing chromatic adaptation.\n" -"set the white balance here to camera reference (D65)\n" -"or disable chromatic adaptation in color calibration." -msgstr "" -"Värinkalibrointi-moduuli on käytössä\n" -"ja se tekee värien sovituksen.\n" -"Aseta tässä valkotasapaino kameran viittaamaksi (D65)\n" -"tai poista värien sovitus käytöstä värikalibrointi-moduulissa." - -#: ../src/iop/temperature.c:1430 +#: ../src/iop/temperature.c:1388 #, c-format msgid "`%s' color matrix not found for image" msgstr "`%s' värimatriisia ei löytynyt kuvalle." -#: ../src/iop/temperature.c:1459 +#: ../src/iop/temperature.c:1418 #, c-format msgid "failed to read camera white balance information from `%s'!" msgstr "Kameran valkotasapainon lukeminen lähteestä `%s' epäonnistui!" -#: ../src/iop/temperature.c:1634 +#: ../src/iop/temperature.c:1612 msgctxt "white balance" msgid "as shot" msgstr "Kuvausasetus" #. old "spot", reason: describes exactly what'll happen -#: ../src/iop/temperature.c:1637 +#: ../src/iop/temperature.c:1615 msgctxt "white balance" msgid "from image area" msgstr "Kuvan alue" -#: ../src/iop/temperature.c:1638 +#: ../src/iop/temperature.c:1616 msgctxt "white balance" msgid "user modified" msgstr "Käyttäjän muokkaama" #. old "camera neutral", reason: better matches intent -#: ../src/iop/temperature.c:1640 +#: ../src/iop/temperature.c:1618 msgctxt "white balance" msgid "camera reference" msgstr "Kameran viitearvo" -#: ../src/iop/temperature.c:1923 ../src/iop/temperature.c:1941 +#: ../src/iop/temperature.c:1897 ../src/iop/temperature.c:1915 msgid "green channel coefficient" msgstr "Vihreän kanavan kerroin" -#: ../src/iop/temperature.c:1925 +#: ../src/iop/temperature.c:1899 msgid "magenta channel coefficient" msgstr "Magentan kanavan kerroin" -#: ../src/iop/temperature.c:1927 +#: ../src/iop/temperature.c:1901 msgid "cyan channel coefficient" msgstr "Syaanin kanavan kerroin" -#: ../src/iop/temperature.c:1929 +#: ../src/iop/temperature.c:1903 msgid "yellow channel coefficient" msgstr "Keltaisen kanavan kerroin" -#: ../src/iop/temperature.c:1939 +#: ../src/iop/temperature.c:1913 msgid "red channel coefficient" msgstr "Punaisen kanavan kerroin" -#: ../src/iop/temperature.c:1943 +#: ../src/iop/temperature.c:1917 msgid "blue channel coefficient" msgstr "Sinisen kanavan kerroin" -#: ../src/iop/temperature.c:1945 +#: ../src/iop/temperature.c:1918 +msgid "emerald" +msgstr "Smaragdinvihreä" + +#: ../src/iop/temperature.c:1919 msgid "emerald channel coefficient" msgstr "Smaragdin kanavan kerroin" #. relabel to settings to remove confusion between module presets #. and white balance settings -#: ../src/iop/temperature.c:2032 ../src/iop/temperature.c:2045 -#: ../src/iop/temperature.c:2052 ../src/iop/temperature.c:2058 -#: ../src/iop/temperature.c:2077 +#: ../src/iop/temperature.c:1997 ../src/iop/temperature.c:2010 +#: ../src/iop/temperature.c:2017 ../src/iop/temperature.c:2023 +#: ../src/iop/temperature.c:2042 msgid "settings" msgstr "Asetukset" -#: ../src/iop/temperature.c:2032 +#: ../src/iop/temperature.c:1997 msgid "as shot" msgstr "Kuvausasetus" -#: ../src/iop/temperature.c:2035 +#: ../src/iop/temperature.c:2000 msgid "set white balance to as shot" msgstr "Aseta valkotasapaino kuvausasetukseen." -#: ../src/iop/temperature.c:2045 +#: ../src/iop/temperature.c:2010 msgid "from image area" msgstr "Kuvan alueesta" -#: ../src/iop/temperature.c:2052 +#: ../src/iop/temperature.c:2017 msgid "user modified" msgstr "Käyttäjän muokkaama" -#: ../src/iop/temperature.c:2055 +#: ../src/iop/temperature.c:2020 msgid "set white balance to user modified" msgstr "Aseta valkotasapaino käyttäjän muokkaamaan asetukseen." -#: ../src/iop/temperature.c:2058 +#: ../src/iop/temperature.c:2023 msgid "camera reference" msgstr "Kameran viitearvo" -#: ../src/iop/temperature.c:2063 +#: ../src/iop/temperature.c:2028 msgid "" "set white balance to camera reference point\n" "in most cases it should be D65" @@ -19463,56 +20150,60 @@ "Aseta valkotasapaino kameran viitearvoon.\n" "Yleensä sen pitäisi olla D65." -#: ../src/iop/temperature.c:2078 +#: ../src/iop/temperature.c:2043 msgid "choose white balance setting" msgstr "Valitse valkotasapainon asetus." -#: ../src/iop/temperature.c:2083 +#: ../src/iop/temperature.c:2048 msgid "finetune" msgstr "Hienosäätö" -#: ../src/iop/temperature.c:2085 +#: ../src/iop/temperature.c:2050 msgid "fine tune camera's white balance setting" msgstr "Hienosäädä kameran valkotasapainon asetusta." -#: ../src/iop/temperature.c:2097 +#: ../src/iop/temperature.c:2058 msgctxt "section" msgid "scene illuminant temp" msgstr "Näkymän valaisun lämpötila" -#: ../src/iop/temperature.c:2098 +#: ../src/iop/temperature.c:2059 msgid "click to cycle color mode on sliders" msgstr "Napsauta vaihtaaksesi liukusäätimien väritilaa." -#: ../src/iop/temperature.c:2112 +#: ../src/iop/temperature.c:2073 msgid "color temperature (in Kelvin)" msgstr "Värilämpötila (Kelvin-asteikolla)" -#: ../src/iop/temperature.c:2118 +#: ../src/iop/temperature.c:2079 msgid "tint" msgstr "Sävy" -#: ../src/iop/temperature.c:2121 +#: ../src/iop/temperature.c:2082 msgid "color tint of the image, from magenta (value < 1) to green (value > 1)" msgstr "Kuvan värien sävy, magentasta (arvo <1) vihreään (arvo > 1)." -#: ../src/iop/temperature.c:2127 +#: ../src/iop/temperature.c:2088 msgid "channel coefficients" msgstr "Kanavien kertoimet" -#: ../src/iop/temperature.c:2162 +#: ../src/iop/temperature.c:2097 +msgid "various" +msgstr "Monta" + +#: ../src/iop/temperature.c:2123 msgid "white balance disabled for camera" msgstr "Kameran valkotasapaino otettu pois käytöstä" -#: ../src/iop/tonecurve.c:190 +#: ../src/iop/tonecurve.c:161 msgid "tone curve" msgstr "Sävykäyrä" -#: ../src/iop/tonecurve.c:210 +#: ../src/iop/tonecurve.c:183 msgid "alter an image’s tones using curves" msgstr "Muuta kuvan sävyjä käyrien avulla" -#: ../src/iop/tonecurve.c:1125 +#: ../src/iop/tonecurve.c:1147 msgid "" "if set to auto, a and b curves have no effect and are not displayed. chroma " "values (a and b) of each pixel are then adjusted based on L curve data. auto " @@ -19523,120 +20214,112 @@ "käyrän tietoihin. Automaattinen XYZ on vastaava, mutta se asettaa " "värikylläisyyden muutokset XYZ-avaruudessa." -#: ../src/iop/tonecurve.c:1134 +#: ../src/iop/tonecurve.c:1156 msgid "tonecurve for L channel" msgstr "Sävykäyrä L-kanavalle." -#: ../src/iop/tonecurve.c:1135 +#: ../src/iop/tonecurve.c:1157 msgid "tonecurve for a channel" msgstr "Sävykäyrä a-kanavalle." -#: ../src/iop/tonecurve.c:1136 +#: ../src/iop/tonecurve.c:1158 msgid "tonecurve for b channel" msgstr "Sävykäyrä b-kanavalle." -#: ../src/iop/tonecurve.c:1143 ../src/iop/watermark.c:1305 -#: ../src/libs/colorpicker.c:597 +#: ../src/iop/tonecurve.c:1165 ../src/iop/watermark.c:1353 +#: ../src/libs/colorpicker.c:675 msgid "pick color" msgstr "Valitse väri" -#: ../src/iop/toneequal.c:311 +#: ../src/iop/toneequal.c:319 msgid "tone equalizer" msgstr "Sävyjen taajuuskorjaus" -#: ../src/iop/toneequal.c:316 +#: ../src/iop/toneequal.c:324 msgid "tone curve|tone mapping|relight|background light|shadows highlights" msgstr "" "Sävykäyrä|Sävyn kartoitus|Uudelleen valaisu|Taustan valo|Varjot huippuvalot" -#: ../src/iop/toneequal.c:323 +#: ../src/iop/toneequal.c:331 msgid "relight the scene as if the lighting was done directly on the scene" msgstr "" "Valaise näkymä uudestaan aivan kuten valaisu olisi tehty suoraan näkymään" -#: ../src/iop/toneequal.c:326 +#: ../src/iop/toneequal.c:334 msgid "quasi-linear, RGB" msgstr "Näennäislineaarinen, RGB" -#: ../src/iop/toneequal.c:327 +#: ../src/iop/toneequal.c:335 msgid "quasi-linear, RGB, scene-referred" msgstr "Näennäislineaarinen, RGB, Näkymä-viitattu" -#: ../src/iop/toneequal.c:458 +#: ../src/iop/toneequal.c:489 msgid "simple tone curve" msgstr "Yksinkertainen sävykäyrä" -#: ../src/iop/toneequal.c:472 +#: ../src/iop/toneequal.c:503 msgid "mask blending: all purposes" msgstr "Maskin yhdistys: kaikki tarkoitukset" -#: ../src/iop/toneequal.c:479 +#: ../src/iop/toneequal.c:510 msgid "mask blending: people with backlight" msgstr "Maskin yhdistys: ihmiset vastavalossa" -#: ../src/iop/toneequal.c:496 +#: ../src/iop/toneequal.c:527 msgid "compress shadows/highlights (EIGF): strong" msgstr "Pakkaa varjot/huippuvalot (EIGF): voimakas" -#: ../src/iop/toneequal.c:501 +#: ../src/iop/toneequal.c:532 msgid "compress shadows/highlights (GF): strong" msgstr "Pakkaa varjot/huippuvalot (GF): voimakas" -#: ../src/iop/toneequal.c:510 +#: ../src/iop/toneequal.c:541 msgid "compress shadows/highlights (EIGF): medium" msgstr "Pakkaa varjot/huippuvalot (EIGF): keskimääräinen" -#: ../src/iop/toneequal.c:515 +#: ../src/iop/toneequal.c:546 msgid "compress shadows/highlights (GF): medium" msgstr "Pakkaa varjot/huippuvalot (GF): keskimääräinen" -#: ../src/iop/toneequal.c:524 +#: ../src/iop/toneequal.c:555 msgid "compress shadows/highlights (EIGF): soft" msgstr "Pakkaa varjot/huippuvalot (EIGF): pehmeä" -#: ../src/iop/toneequal.c:529 +#: ../src/iop/toneequal.c:560 msgid "compress shadows/highlights (GF): soft" msgstr "Pakkaa varjot/huippuvalot (GF): pehmeä" -#: ../src/iop/toneequal.c:537 +#: ../src/iop/toneequal.c:568 msgid "contrast tone curve: soft" msgstr "Kontrastin sävykäyrä: pehmeä" -#: ../src/iop/toneequal.c:542 +#: ../src/iop/toneequal.c:573 msgid "contrast tone curve: medium" msgstr "Kontrastin sävykäyrä: keskimääräinen" -#: ../src/iop/toneequal.c:547 +#: ../src/iop/toneequal.c:578 msgid "contrast tone curve: strong" msgstr "Kontrastin sävykäyrä: voimakas" -#: ../src/iop/toneequal.c:570 +#: ../src/iop/toneequal.c:601 msgid "relight: fill-in" msgstr "Udelleen valaisu: täytevalo" -#: ../src/iop/toneequal.c:627 -msgid "" -"tone equalizer needs to be after distortion modules in the pipeline – " -"disabled" -msgstr "" -"Sävyjen taajuuskorjaimen tulee olla vääristävien moduulien jälkeen " -"työskentelyputkessa – poistettu käytöstä" - -#: ../src/iop/toneequal.c:1091 +#: ../src/iop/toneequal.c:1120 msgid "tone equalizer failed to allocate memory, check your RAM settings" msgstr "" "Sävyjen taajuuskorjain ei saanut varattua muistia, tarkista RAM-muistin " "asetukset." -#: ../src/iop/toneequal.c:1795 ../src/iop/toneequal.c:2180 +#: ../src/iop/toneequal.c:1825 ../src/iop/toneequal.c:2196 msgid "the interpolation is unstable, decrease the curve smoothing" msgstr "Interpolointi on epävakaa, vähennä käyrän tasoitusta." -#: ../src/iop/toneequal.c:1830 ../src/iop/toneequal.c:1897 +#: ../src/iop/toneequal.c:1860 ../src/iop/toneequal.c:1927 msgid "wait for the preview to finish recomputing" msgstr "Odota esikatselun uudelleen laskennan valmistumista" -#: ../src/iop/toneequal.c:2037 ../src/iop/toneequal.c:2587 +#: ../src/iop/toneequal.c:2069 ../src/iop/toneequal.c:2628 msgid "" "scroll over image to change tone exposure\n" "shift+scroll for large steps; ctrl+scroll for small steps" @@ -19645,89 +20328,89 @@ "SHIFT+hiiren rulla muuttaa suurin askelin, CTRL+hiiren rulla muuttaa pienin " "askelin." -#: ../src/iop/toneequal.c:2185 +#: ../src/iop/toneequal.c:2201 msgid "some parameters are out-of-bounds" msgstr "Jotkin asetukset ovat rajojen ulkopuolella" -#: ../src/iop/toneequal.c:2524 +#: ../src/iop/toneequal.c:2518 #, c-format msgid "%+.1f EV" msgstr "%+.1f Aukkoa" -#: ../src/iop/toneequal.c:3236 +#: ../src/iop/toneequal.c:3283 #, c-format msgid "[%s over image] change tone exposure" msgstr "[%s kuvan päällä] Muuta sävyjen valotusta" -#: ../src/iop/toneequal.c:3239 +#: ../src/iop/toneequal.c:3286 #, c-format msgid "[%s over image] change tone exposure in large steps" msgstr "[%s kuvan päällä] Muuta sävyjen valotusta suurin askelin" -#: ../src/iop/toneequal.c:3242 +#: ../src/iop/toneequal.c:3289 #, c-format msgid "[%s over image] change tone exposure in small steps" msgstr "[%s kuvan päällä] Muuta sävyjen valotusta pienin askelin" #. Simple view -#: ../src/iop/toneequal.c:3323 ../src/iop/toneequal.c:3352 -#: ../src/iop/toneequal.c:3353 ../src/iop/toneequal.c:3354 -#: ../src/iop/toneequal.c:3355 ../src/iop/toneequal.c:3356 -#: ../src/iop/toneequal.c:3357 ../src/iop/toneequal.c:3358 -#: ../src/iop/toneequal.c:3359 ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3376 ../src/iop/toneequal.c:3405 +#: ../src/iop/toneequal.c:3406 ../src/iop/toneequal.c:3407 +#: ../src/iop/toneequal.c:3408 ../src/iop/toneequal.c:3409 +#: ../src/iop/toneequal.c:3410 ../src/iop/toneequal.c:3411 +#: ../src/iop/toneequal.c:3412 ../src/iop/toneequal.c:3413 msgid "simple" msgstr "Yksinkertainen" -#: ../src/iop/toneequal.c:3352 +#: ../src/iop/toneequal.c:3405 msgid "-8 EV" msgstr "-8 Aukkoa" -#: ../src/iop/toneequal.c:3353 +#: ../src/iop/toneequal.c:3406 msgid "-7 EV" msgstr "-7 Aukkoa" -#: ../src/iop/toneequal.c:3354 +#: ../src/iop/toneequal.c:3407 msgid "-6 EV" msgstr "-6 Aukkoa" -#: ../src/iop/toneequal.c:3355 +#: ../src/iop/toneequal.c:3408 msgid "-5 EV" msgstr "-5 Aukkoa" -#: ../src/iop/toneequal.c:3356 +#: ../src/iop/toneequal.c:3409 msgid "-4 EV" msgstr "-4 Aukkoa" -#: ../src/iop/toneequal.c:3357 +#: ../src/iop/toneequal.c:3410 msgid "-3 EV" msgstr "-3 Aukkoa" -#: ../src/iop/toneequal.c:3358 +#: ../src/iop/toneequal.c:3411 msgid "-2 EV" msgstr "-2 Aukkoa" -#: ../src/iop/toneequal.c:3359 +#: ../src/iop/toneequal.c:3412 msgid "-1 EV" msgstr "-1 Aukkoa" -#: ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3413 msgid "+0 EV" msgstr "+0 Aukkoa" #. Advanced view -#: ../src/iop/toneequal.c:3364 +#: ../src/iop/toneequal.c:3417 msgid "advanced" msgstr "Kehittynyt" -#: ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3444 msgid "double-click to reset the curve" msgstr "Kaksoisnapsauta palauttaaksesi oletuskäyrä." -#: ../src/iop/toneequal.c:3395 +#: ../src/iop/toneequal.c:3448 msgid "curve smoothing" msgstr "Käyrän tasoitus" -#: ../src/iop/toneequal.c:3398 +#: ../src/iop/toneequal.c:3451 msgid "" "positive values will produce more progressive tone transitions\n" "but the curve might become oscillatory in some settings.\n" @@ -19742,11 +20425,11 @@ "saattaa heikentyä." #. Masking options -#: ../src/iop/toneequal.c:3408 +#: ../src/iop/toneequal.c:3461 msgid "masking" msgstr "Maskaus" -#: ../src/iop/toneequal.c:3413 +#: ../src/iop/toneequal.c:3466 msgid "" "preview the mask and chose the estimator that gives you the\n" "higher contrast between areas to dodge and areas to burn" @@ -19754,15 +20437,15 @@ "Esikatsele maskia ja valitse arvioija joka antaa sinulle paremman\n" "kontrastin kuvan tummentamiseen ja vaalentamiseen." -#: ../src/iop/toneequal.c:3416 +#: ../src/iop/toneequal.c:3469 msgid "details" msgstr "Yksityiskohdat" -#: ../src/iop/toneequal.c:3417 +#: ../src/iop/toneequal.c:3470 msgid "preserve details" msgstr "Säilytä yksityiskohdat" -#: ../src/iop/toneequal.c:3420 +#: ../src/iop/toneequal.c:3473 msgid "" "'no' affects global and local contrast (safe if you only add contrast)\n" "'guided filter' only affects global contrast and tries to preserve local " @@ -19787,7 +20470,7 @@ "'Keskiarvoistettu EIGF' on geometrinen keskiarvo 'ei' ja 'valotus-itsenäinen " "ohjattu suodin' menetelmistä." -#: ../src/iop/toneequal.c:3433 +#: ../src/iop/toneequal.c:3486 msgid "" "number of passes of guided filter to apply\n" "helps diffusing the edges of the filter at the expense of speed" @@ -19795,7 +20478,7 @@ "Ohjatun suotimen suorituskerrat.\n" "Tuottaa nopeuden kustannuksella tasaisemmat suotimen reunat." -#: ../src/iop/toneequal.c:3441 +#: ../src/iop/toneequal.c:3494 msgid "" "diameter of the blur in percent of the largest image size\n" "warning: big values of this parameter can make the darkroom\n" @@ -19805,7 +20488,7 @@ "Varoitus: Tämän asetuksen suuret arvot saattavat hidastaa merkittävästi\n" "pimiötä, jos profiloitu kohinanpoisto on käytössä." -#: ../src/iop/toneequal.c:3449 +#: ../src/iop/toneequal.c:3502 msgid "" "precision of the feathering:\n" "higher values force the mask to follow edges more closely\n" @@ -19819,12 +20502,12 @@ "Pienemmät arvot antava tasaisemmat liukuvärit ja paremman\n" "tasoituksen, mutta reunoille saattaa tulla haloja ja epätarkkuutta." -#: ../src/iop/toneequal.c:3456 +#: ../src/iop/toneequal.c:3509 msgctxt "section" msgid "mask post-processing" msgstr "Maskin jälkikäsittely" -#: ../src/iop/toneequal.c:3467 +#: ../src/iop/toneequal.c:3520 msgid "" "mask histogram span between the first and last deciles.\n" "the central line shows the average. orange bars appear at extrema if " @@ -19834,7 +20517,7 @@ "Keskilinja näyttää keskiarvon. Oranssi palkki ilmestyy äärilaitoihin, jos " "sävyt leikkautuvat." -#: ../src/iop/toneequal.c:3475 +#: ../src/iop/toneequal.c:3528 msgid "" "0 disables the quantization.\n" "higher values posterize the luminance mask to help the guiding\n" @@ -19844,7 +20527,7 @@ "Korkeammat arvot porrastavat kirkkauden maskin, joka auttaa ohjaamaan\n" "palakohtaisesti tasaisia alueita, kun käytetään suuria häivytyksen arvoja." -#: ../src/iop/toneequal.c:3484 +#: ../src/iop/toneequal.c:3537 msgid "" "use this to slide the mask average exposure along channels\n" "for a better control of the exposure correction with the available nodes.\n" @@ -19854,7 +20537,7 @@ "paremman valotuksen hallinnan saavuttamiseksi käytettävillä solmupisteillä.\n" "Taikasauva säätää automaattisesti keskiarvoista valotusta." -#: ../src/iop/toneequal.c:3497 +#: ../src/iop/toneequal.c:3550 msgid "" "use this to counter the averaging effect of the guided filter\n" "and dilate the mask contrast around -4EV\n" @@ -19868,7 +20551,7 @@ "muiden kanavien yli paremman valotuksen korjauksen saavuttamiseksi.\n" "Taikasauva säätää automaattisesti kontrastin." -#: ../src/iop/toneequal.c:3520 ../src/iop/toneequal.c:3523 +#: ../src/iop/toneequal.c:3573 ../src/iop/toneequal.c:3576 msgid "display exposure mask" msgstr "Näytä valotuksen maski" @@ -19884,22 +20567,22 @@ "Tämä moduuli on vanhentunut. Kannattaa käyttää Paikallinen kontrasti- tai " "Sävyjen taajuuskorjaus-moduulia tämän sijaan." -#: ../src/iop/velvia.c:79 +#: ../src/iop/velvia.c:70 msgid "velvia" msgstr "Velvia" -#: ../src/iop/velvia.c:104 +#: ../src/iop/velvia.c:97 msgid "" "resaturate giving more weight to blacks, whites and low-saturation pixels" msgstr "" "Muuta kuvan värien kylläisyyttä antamalla mustille, valkoisille ja haaleille " "pikseleille enemmän painoa" -#: ../src/iop/velvia.c:281 +#: ../src/iop/velvia.c:290 msgid "the strength of saturation boost" msgstr "Värikylläisyyden korostuksen voimakkuus." -#: ../src/iop/velvia.c:284 +#: ../src/iop/velvia.c:293 msgid "how much to spare highlights and shadows" msgstr "Huippuvalojen ja varjojen säästön määrä." @@ -19911,7 +20594,7 @@ "Tämä moduuli on vanhentunut. Kannattaa käyttää värikirkkauden liukusäädintä " "Väritasapaino RGB-modulissa tämän sijaan." -#: ../src/iop/vibrance.c:93 +#: ../src/iop/vibrance.c:95 msgid "" "saturate and reduce the lightness of the most saturated pixels\n" "to make the colors more vivid." @@ -19919,56 +20602,52 @@ "Korosta kuvan värejä ja vähennä kaikkein kirkkaimpien pikseleiden\n" "valoisuutta tehdäksesi värit eloisammiksi" -#: ../src/iop/vibrance.c:217 +#: ../src/iop/vibrance.c:211 msgid "the amount of vibrance" msgstr "Värikirkkauden määrä." -#: ../src/iop/vignette.c:153 -msgid "vignetting" -msgstr "Vinjetti" - -#: ../src/iop/vignette.c:158 +#: ../src/iop/vignette.c:119 msgid "simulate a lens fall-off close to edges" msgstr "Simuloi objektiivin aiheuttamaa reunojen tummumista" -#: ../src/iop/vignette.c:940 +#: ../src/iop/vignette.c:1022 msgid "lomo" msgstr "Lomo" -#: ../src/iop/vignette.c:974 +#: ../src/iop/vignette.c:1061 msgctxt "section" msgid "position / form" msgstr "Sijainti / Muoto" -#: ../src/iop/vignette.c:981 +#: ../src/iop/vignette.c:1069 msgid "dithering" msgstr "Ditheröinti" -#: ../src/iop/vignette.c:992 +#: ../src/iop/vignette.c:1081 msgid "the radii scale of vignette for start of fall-off" msgstr "Vinjetoinnin kirkkaan puolen säde." -#: ../src/iop/vignette.c:993 +#: ../src/iop/vignette.c:1083 msgid "the radii scale of vignette for end of fall-off" msgstr "Vinjetoinnin tumman puolen säde." -#: ../src/iop/vignette.c:994 +#: ../src/iop/vignette.c:1084 msgid "strength of effect on brightness" msgstr "Säädön voimakkuuden vaikutus kirkkauteen." -#: ../src/iop/vignette.c:995 +#: ../src/iop/vignette.c:1085 msgid "strength of effect on saturation" msgstr "Säädön voimakkuuden vaikutus värikylläisyyteen." -#: ../src/iop/vignette.c:996 +#: ../src/iop/vignette.c:1086 msgid "horizontal offset of center of the effect" msgstr "Säädön keskikohdan vaakapoikkeama." -#: ../src/iop/vignette.c:997 +#: ../src/iop/vignette.c:1087 msgid "vertical offset of center of the effect" msgstr "Säädön pystysuuntaisen keskikohdan poikkeama." -#: ../src/iop/vignette.c:998 +#: ../src/iop/vignette.c:1090 msgid "" "shape factor\n" "0 produces a rectangle\n" @@ -19980,57 +20659,57 @@ "1 tuottaa ympyrän tai ellipsin\n" "2 tuottaa timanttikuvion" -#: ../src/iop/vignette.c:1000 +#: ../src/iop/vignette.c:1094 msgid "enable to have the ratio automatically follow the image size" msgstr "Aseta häivytyksen suhde automaattisesti kuvasuhteen mukaiseksi." -#: ../src/iop/vignette.c:1001 +#: ../src/iop/vignette.c:1095 msgid "width-to-height ratio" msgstr "Kuvasuhde." -#: ../src/iop/vignette.c:1002 +#: ../src/iop/vignette.c:1097 msgid "add some level of random noise to prevent banding" msgstr "Lisää hieman satunnaista kohinaa estämään kuvan juovitusta." -#: ../src/iop/vignette.c:1009 +#: ../src/iop/vignette.c:1105 #, c-format msgid "[%s on node] change vignette/feather size" msgstr "[%s solmussa] Muuta vinjetoinnin / häivytyksen kokoa" -#: ../src/iop/vignette.c:1011 +#: ../src/iop/vignette.c:1108 #, c-format msgid "[%s on node] change vignette/feather size keeping ratio" msgstr "" "[%s solmussa] Muuta vinjetoinnin / häivytyksen kokoa säilyttäen kuvasuhteen" -#: ../src/iop/vignette.c:1013 +#: ../src/iop/vignette.c:1111 #, c-format msgid "[%s on center] move vignette" msgstr "[%s keskellä] Siirrä vinjetointia" -#: ../src/iop/watermark.c:371 +#: ../src/iop/watermark.c:416 msgid "watermark" msgstr "Vesileima" -#: ../src/iop/watermark.c:376 +#: ../src/iop/watermark.c:421 msgid "overlay an SVG watermark like a signature on the picture" msgstr "Lisää SVG-vesileima kuvan päälle" -#: ../src/iop/watermark.c:1258 +#: ../src/iop/watermark.c:1306 msgid "marker" msgstr "Tyyppi" -#: ../src/iop/watermark.c:1261 +#: ../src/iop/watermark.c:1309 #, c-format msgid "SVG watermarks in %s/watermarks or %s/watermarks" msgstr "SVG-vesileimat hakemistossa %s/watermarks tai %s/watermarks" #. Simple text -#: ../src/iop/watermark.c:1271 ../src/iop/watermark.c:1272 +#: ../src/iop/watermark.c:1319 ../src/iop/watermark.c:1320 msgid "text" msgstr "Teksti" -#: ../src/iop/watermark.c:1273 +#: ../src/iop/watermark.c:1321 msgid "" "text string, tag:\n" "$(WATERMARK_TEXT)" @@ -20038,16 +20717,16 @@ "Teksti, tunniste:\n" "$(WATERMARK_TEXT)" -#: ../src/iop/watermark.c:1275 +#: ../src/iop/watermark.c:1323 msgid "content" msgstr "Sisältö" #. Text font -#: ../src/iop/watermark.c:1280 +#: ../src/iop/watermark.c:1328 msgid "font" msgstr "Fontti" -#: ../src/iop/watermark.c:1285 +#: ../src/iop/watermark.c:1333 msgid "" "text font, tags:\n" "$(WATERMARK_FONT_FAMILY)\n" @@ -20059,7 +20738,7 @@ "$(WATERMARK_FONT_STYLE)\n" "$(WATERMARK_FONT_WEIGHT)" -#: ../src/iop/watermark.c:1300 +#: ../src/iop/watermark.c:1348 msgid "" "watermark color, tag:\n" "$(WATERMARK_COLOR)" @@ -20067,60 +20746,61 @@ "Vesileiman väri, tunniste:\n" "$(WATERMARK_COLOR)" -#: ../src/iop/watermark.c:1302 +#: ../src/iop/watermark.c:1350 msgid "select watermark color" msgstr "Valitse vesileiman väri" -#: ../src/iop/watermark.c:1304 +#: ../src/iop/watermark.c:1352 msgid "pick color from image" msgstr "Valitse väri kuvasta." -#: ../src/iop/watermark.c:1317 +#: ../src/iop/watermark.c:1365 msgctxt "section" msgid "placement" msgstr "Sijoitus" -#: ../src/iop/watermark.c:1330 +#: ../src/iop/watermark.c:1378 msgid "" -"scaling is done relative to this object\n" -"• image: fits marker into whole image\n" -"• larger border: fits larger marker border to larger image border\n" -"• smaller border: fits larger marker border to smaller image border\n" -"• height: fits marker height to image height, e.g. suitable for texts\n" -"• advanced options: activates two additional drop-down menus" -msgstr "" -"Skaalaus toteutetaan suhteessa tähän kappaleeseen:\n" -"• Kuva: Sovittaa merkin koko kuvaan.\n" -"• Suurempi kehys: Sovittaa suuremman merkin rajan suuremman kuvan " -"kehykseen.\n" -"• Pienempi kehys: Sovittaa suuremman merkin rajan pienemmän kuvan " -"kehykseen.\n" -"•Korkeus: Sovittaa merkin korkeuden kuvan korkeudeksi, soveltuu esim. " -"tekstille.\n" -"• Kehittyneet asetukset: Aktivoi kaksi ylimääräistä vetovalikkoa." - -#: ../src/iop/watermark.c:1339 -msgid "reference to which the marker should be scaled to" -msgstr "Viittaus mihin merkin merkki tulisi skaalata" - -#: ../src/iop/watermark.c:1343 -msgid "length of the marker which is used as scaling reference" -msgstr "Merkin pituus jota käytetään skaalauksen viitteenä" +"choose how to scale the watermark\n" +"• image: scale watermark relative to whole image\n" +"• larger border: scale larger watermark border relative to larger image " +"border\n" +"• smaller border: scale larger watermark border relative to smaller image " +"border\n" +"• height: scale watermark height to image height\n" +"• advanced options: choose watermark and image dimensions independently" +msgstr "" +"Valitse miten vesileima skaalataan:\n" +"• Kuva: Sovita vesileima suhteessa koko kuvaan.\n" +"• Suurempi kehys: Sovita vesileiman pidempi reuna suhteessa kuvan pidempään " +"reunaan.\n" +"• Pienempi kehys: Sovita vesileiman pidempi reuna suhteessa kuvan lyhyempään " +"reunaan.\n" +"• Korkeus: Sovita vesileiman korkeus kuvan korkeuteen.\n" +"• Kehittyneet asetukset: Valitse vesileiman ja kuvan suhteet erikseen." + +#: ../src/iop/watermark.c:1387 +msgid "reference image dimension against which to scale the watermark" +msgstr "Viitekuvan suhde jota vasten vesileima sovitetaan." + +#: ../src/iop/watermark.c:1391 +msgid "watermark dimension to scale" +msgstr "Vesileiman sovitus kuvasuhteeseen." -#: ../src/iop/watermark.c:1347 ../src/libs/print_settings.c:2675 +#: ../src/iop/watermark.c:1395 ../src/libs/print_settings.c:2675 msgid "alignment" msgstr "Kohdistus" #. Let's add some tooltips and hook up some signals... -#: ../src/iop/watermark.c:1368 +#: ../src/iop/watermark.c:1416 msgid "the opacity of the watermark" msgstr "Vesileiman läpinäkyvyys." -#: ../src/iop/watermark.c:1369 +#: ../src/iop/watermark.c:1417 msgid "the scale of the watermark" msgstr "Vesileiman koko." -#: ../src/iop/watermark.c:1370 +#: ../src/iop/watermark.c:1418 msgid "the rotation of the watermark" msgstr "Vesileiman kierto." @@ -20128,7 +20808,7 @@ msgid "zone system" msgstr "Vyöhykejärjestelmä" -#: ../src/iop/zonesystem.c:490 +#: ../src/iop/zonesystem.c:486 msgid "" "lightness zones\n" "use mouse scrollwheel to change the number of zones\n" @@ -20170,7 +20850,7 @@ msgid "camera control" msgstr "Kameran ohjaus" -#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2360 +#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2679 msgid "modes" msgstr "Tilat" @@ -20277,36 +20957,49 @@ msgid "WB" msgstr "Valkotasapaino" -#: ../src/libs/collect.c:151 +#: ../src/libs/collect.c:164 msgid "collections" msgstr "Kokoelmat" -#: ../src/libs/collect.c:407 +#: ../src/libs/collect.c:424 msgid "search filmroll" msgstr "Etsi filmirulla" -#: ../src/libs/collect.c:490 +#: ../src/libs/collect.c:507 #, c-format msgid "problem selecting new path for the filmroll in %s" msgstr "Ongelma filmirullan %s hakemistopolun valinnassa." -#: ../src/libs/collect.c:553 +#: ../src/libs/collect.c:579 msgid "search filmroll..." msgstr "Etsi filmirulla..." -#: ../src/libs/collect.c:557 +#: ../src/libs/collect.c:584 msgid "remove..." msgstr "Poista" -#: ../src/libs/collect.c:1225 +#: ../src/libs/collect.c:1310 msgid "uncategorized" msgstr "Luokittelematon" -#: ../src/libs/collect.c:2138 +#: ../src/libs/collect.c:2172 ../src/libs/filters/rating_range.c:120 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:151 +#: ../src/libs/filters/rating_range.c:302 +msgid "rejected" +msgstr "hylätyt" + +#: ../src/libs/collect.c:2175 ../src/libs/filters/rating_range.c:122 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:303 +msgid "not rated" +msgstr "arvioimattomat" + +#: ../src/libs/collect.c:2359 msgid "use <, <=, >, >=, <>, =, [;] as operators" msgstr "Käytä <, <=, >, >=, <>, =, [;] -merkkejä operaattoreina." -#: ../src/libs/collect.c:2142 +#: ../src/libs/collect.c:2363 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "star rating: 0-5\n" @@ -20316,7 +21009,7 @@ "Luokitus: 0-5\n" "Hylätyt kuvat: -1" -#: ../src/libs/collect.c:2149 +#: ../src/libs/collect.c:2371 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)" @@ -20324,12 +21017,12 @@ "Käytä <, <=, >, >=, <>, =, [;] -merkkejä operaattoreina.\n" "Syötä ajankohta muodossa: YYYY:MM:DD hh:mm:ss.sss (vain vuosi on pakollinen)" -#: ../src/libs/collect.c:2156 +#: ../src/libs/collect.c:2378 #, no-c-format msgid "use `%' as wildcard and `,' to separate values" msgstr "Käytä `%' -merkkiä jokerina ja `,' arvojen erottimena" -#: ../src/libs/collect.c:2162 +#: ../src/libs/collect.c:2385 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20342,7 +21035,7 @@ "SHIFT+napsaus sisällyttääksesi vain nykyisen hierarkian (ei jälkiliitettä).\n" "CTRL+napsaus sisällyttääksesi vain alihierarkiat (jälkiliite `|%')." -#: ../src/libs/collect.c:2174 +#: ../src/libs/collect.c:2398 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20355,7 +21048,7 @@ "SHIFT+napsaus sisällyttääksesi vain nykyisen sijainnin (ei jälkiliitettä).\n" "CTRL+napsaus sisällyttääksesi vain alisijainnin (jälkiliite `|%')." -#: ../src/libs/collect.c:2186 +#: ../src/libs/collect.c:2411 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20368,111 +21061,103 @@ "SHIFT+napsaus sisällyttääksesi vain nykyisen hakemiston (ei jälkiliitettä).\n" "CTRL+napsaus sisällyttääksesi vain alihakemistot (jälkiliite `|%')." -#: ../src/libs/collect.c:2197 +#: ../src/libs/collect.c:2422 #, no-c-format msgid "use `%' as wildcard" msgstr "Käytä `%' -merkkiä jokerina" -#: ../src/libs/collect.c:2263 ../src/libs/collect.c:2277 -#: ../src/libs/collect.c:2800 +#: ../src/libs/collect.c:2488 ../src/libs/collect.c:2502 +#: ../src/libs/collect.c:3111 msgid "clear this rule" msgstr "Poista tämä sääntö" -#: ../src/libs/collect.c:2267 +#: ../src/libs/collect.c:2492 msgid "clear this rule or add new rules" msgstr "Poista tämä sääntö tai lisää uusia sääntöjä" -#: ../src/libs/collect.c:2806 +#: ../src/libs/collect.c:3117 msgid "narrow down search" msgstr "Tarkenna hakua" -#: ../src/libs/collect.c:2811 +#: ../src/libs/collect.c:3124 msgid "add more images" msgstr "Lisää kuvia" -#: ../src/libs/collect.c:2816 +#: ../src/libs/collect.c:3131 msgid "exclude images" msgstr "Jätä pois kuvia" -#: ../src/libs/collect.c:2823 +#: ../src/libs/collect.c:3140 msgid "change to: and" msgstr "Vaihda: JA-valinnaksi" -#: ../src/libs/collect.c:2828 +#: ../src/libs/collect.c:3147 msgid "change to: or" msgstr "Vaihda: TAI-valinnaksi" -#: ../src/libs/collect.c:2833 +#: ../src/libs/collect.c:3154 msgid "change to: except" msgstr "Vaihda: PAITSI-valinnaksi" #. the different categories -#: ../src/libs/collect.c:2859 ../src/libs/filtering.c:857 -#: ../src/libs/filtering.c:924 ../src/libs/filtering.c:1558 -#: ../src/libs/filtering.c:1890 +#: ../src/libs/collect.c:3184 ../src/libs/filtering.c:883 +#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1620 +#: ../src/libs/filtering.c:1964 msgid "files" msgstr "Tiedostot" -#: ../src/libs/collect.c:2864 ../src/libs/export_metadata.c:312 -#: ../src/libs/filtering.c:862 ../src/libs/filtering.c:929 -#: ../src/libs/filtering.c:1566 ../src/libs/filtering.c:1894 -#: ../src/libs/image.c:464 ../src/libs/image.c:574 ../src/libs/image.c:582 -#: ../src/libs/metadata.c:677 ../src/libs/metadata_view.c:1226 +#: ../src/libs/collect.c:3189 ../src/libs/export_metadata.c:301 +#: ../src/libs/filtering.c:888 ../src/libs/filtering.c:955 +#: ../src/libs/filtering.c:1628 ../src/libs/filtering.c:1968 +#: ../src/libs/image.c:495 ../src/libs/image.c:633 ../src/libs/image.c:645 +#: ../src/libs/metadata.c:509 ../src/libs/metadata_view.c:1256 msgid "metadata" msgstr "Metatiedot" -#: ../src/libs/collect.c:2883 ../src/libs/filtering.c:883 -#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1892 +#: ../src/libs/collect.c:3208 ../src/libs/filtering.c:909 +#: ../src/libs/filtering.c:976 ../src/libs/filtering.c:1966 msgid "times" msgstr "Ajankohdat" -#: ../src/libs/collect.c:2891 ../src/libs/filtering.c:891 -#: ../src/libs/filtering.c:958 ../src/libs/filtering.c:1590 +#: ../src/libs/collect.c:3216 ../src/libs/filtering.c:917 +#: ../src/libs/filtering.c:984 ../src/libs/filtering.c:1652 msgid "capture details" msgstr "Kuvan tiedot" -#: ../src/libs/collect.c:2900 ../src/libs/filtering.c:900 -#: ../src/libs/filtering.c:967 ../src/libs/filtering.c:1602 -#: ../src/libs/filtering.c:1896 ../src/libs/tools/darktable.c:65 +#: ../src/libs/collect.c:3225 ../src/libs/filtering.c:926 +#: ../src/libs/filtering.c:993 ../src/libs/filtering.c:1664 +#: ../src/libs/filtering.c:1970 ../src/libs/tools/darktable.c:61 msgid "darktable" msgstr "Darktable" -#: ../src/libs/collect.c:2913 +#: ../src/libs/collect.c:3240 msgid "collections settings" msgstr "Kokoelmien asetukset" -#: ../src/libs/collect.c:2916 ../src/libs/export_metadata.c:288 -#: ../src/libs/metadata.c:633 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:228 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3472 -msgid "save" -msgstr "Tallenna" - -#: ../src/libs/collect.c:2936 ../src/libs/export.c:1046 -#: ../src/libs/metadata.c:780 ../src/libs/metadata_view.c:1306 -#: ../src/libs/recentcollect.c:293 ../src/libs/tagging.c:3494 +#: ../src/libs/collect.c:3267 ../src/libs/export.c:1126 +#: ../src/libs/metadata.c:615 ../src/libs/metadata_view.c:1339 +#: ../src/libs/recentcollect.c:295 ../src/libs/tagging.c:3526 msgid "preferences..." msgstr "Asetukset..." -#: ../src/libs/collect.c:3041 ../src/libs/filtering.c:1432 +#: ../src/libs/collect.c:3388 ../src/libs/filtering.c:1494 msgid "AND" msgstr "JA" -#: ../src/libs/collect.c:3046 ../src/libs/filtering.c:1437 +#: ../src/libs/collect.c:3393 ../src/libs/filtering.c:1499 msgid "OR" msgstr "TAI" #. case DT_LIB_COLLECT_MODE_AND_NOT: -#: ../src/libs/collect.c:3051 ../src/libs/filtering.c:1442 +#: ../src/libs/collect.c:3398 ../src/libs/filtering.c:1504 msgid "BUT NOT" msgstr "EI" -#: ../src/libs/collect.c:3223 ../src/libs/filtering.c:2164 +#: ../src/libs/collect.c:3588 ../src/libs/filtering.c:2238 msgid "revert to a previous set of rules" msgstr "Palaa aiempiin keräyksen sääntöihin." -#: ../src/libs/collect.c:3280 +#: ../src/libs/collect.c:3671 msgid "jump back to previous collection" msgstr "Siirry takaisin edelliseen kokoelmaan" @@ -20496,7 +21181,7 @@ msgid "color picker" msgstr "Värivalitsin" -#: ../src/libs/colorpicker.c:463 +#: ../src/libs/colorpicker.c:513 msgid "" "hover to highlight sample on canvas,\n" "click to lock sample,\n" @@ -20506,23 +21191,23 @@ "Napsauta lukitaksesi näyteen.\n" "Oikea napsaus lataa näytealueen aktiiviseen värinvalitsimeen." -#: ../src/libs/colorpicker.c:561 ../src/libs/colorpicker.c:612 +#: ../src/libs/colorpicker.c:626 ../src/libs/colorpicker.c:693 msgid "click to (un)hide large color patch" msgstr "Napsauta näyttääksesi tai piilottaaksesi suuri väripaikka." -#: ../src/libs/colorpicker.c:575 +#: ../src/libs/colorpicker.c:649 msgid "statistic" msgstr "Tilastollinen" -#: ../src/libs/colorpicker.c:576 +#: ../src/libs/colorpicker.c:650 msgid "select which statistic to show" msgstr "Valitse mikä tilasto näytetään" -#: ../src/libs/colorpicker.c:585 +#: ../src/libs/colorpicker.c:660 msgid "select which color mode to use" msgstr "Valitse mitä väritilaa käytetään" -#: ../src/libs/colorpicker.c:594 +#: ../src/libs/colorpicker.c:671 msgid "" "turn on color picker\n" "ctrl+click or right-click to select an area" @@ -20530,21 +21215,21 @@ "Valitse väri kuvasta.\n" "CTRL+napsaus tai oikea napsaus valitsee alueen." -#: ../src/libs/colorpicker.c:636 +#: ../src/libs/colorpicker.c:722 msgid "add sample" msgstr "Lisää näyte" #. Adding the live samples section -#: ../src/libs/colorpicker.c:640 +#: ../src/libs/colorpicker.c:727 msgctxt "section" msgid "live samples" msgstr "Käytössä olevat näytteet" -#: ../src/libs/colorpicker.c:648 +#: ../src/libs/colorpicker.c:738 msgid "display samples on image/vectorscope" msgstr "Näytä näytteet kuvassa/vektorialueessa" -#: ../src/libs/colorpicker.c:657 +#: ../src/libs/colorpicker.c:749 msgid "restrict scope to selection" msgstr "Rajoita alue valintaan" @@ -20556,10 +21241,6 @@ msgid "open sidecar file" msgstr "Avaa aputiedosto" -#: ../src/libs/copy_history.c:149 -msgid "XMP sidecar files" -msgstr "XMP-aputiedostot" - #: ../src/libs/copy_history.c:166 #, c-format msgid "error loading file '%s'" @@ -20589,7 +21270,7 @@ #: ../src/libs/copy_history.c:365 msgid "choose which modules to copy from the source image" -msgstr "Valitse kuvasta kopioitava muokkaushistoria" +msgstr "Valitse kuvasta kopioitava muokkaushistoria." #: ../src/libs/copy_history.c:371 msgid "" @@ -20605,9 +21286,9 @@ #: ../src/libs/copy_history.c:377 msgid "choose which modules to paste to the target image(s)" -msgstr "Valitse kuvaan/kuviin liitettävä muokkaushistoria" +msgstr "Valitse kuvaan/kuviin liitettävä muokkaushistoria." -#: ../src/libs/copy_history.c:382 ../src/libs/image.c:588 +#: ../src/libs/copy_history.c:382 ../src/libs/image.c:655 msgid "paste" msgstr "Liitä" @@ -20639,11 +21320,11 @@ "Poista valittujen kuvien\n" "muokkaushistoria." -#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:847 +#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:851 msgid "how to handle existing history" msgstr "Olemassa olevan muokkaushistorian käsittelytapa." -#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:850 +#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:854 msgid "append" msgstr "Lisää" @@ -20663,89 +21344,96 @@ msgid "write history stack and tags to XMP sidecar files" msgstr "Tallenna muokkaushistoria ja tunnisteet XMP-aputiedostoon." -#: ../src/libs/duplicate.c:56 +#: ../src/libs/duplicate.c:60 msgid "duplicate manager" msgstr "Kahdennettujen kuvien hallinta" -#: ../src/libs/duplicate.c:401 +#: ../src/libs/duplicate.c:407 msgid "create a 'virgin' duplicate of the image without any development" msgstr "Luo ilman muokkaushistoriaa oleva kopioi kuvasta." -#: ../src/libs/duplicate.c:406 +#: ../src/libs/duplicate.c:412 msgid "create a duplicate of the image with same history stack" msgstr "Luo muokkaushistorian sisältävä kopio kuvasta." -#. Export button -#: ../src/libs/export.c:153 ../src/libs/export.c:1281 +#: ../src/libs/export.c:160 msgid "export" msgstr "Vie" #: ../src/libs/export.c:306 +msgid "invalid format for export selected" +msgstr "Viennille valittu epäkelpo kuvamuoto" + +#: ../src/libs/export.c:311 +msgid "invalid storage for export selected" +msgstr "Viennille valittu epäkelpo tallennustila" + +#: ../src/libs/export.c:322 msgid "export to disk" msgstr "Vie levylle" -#: ../src/libs/export.c:485 +#: ../src/libs/export.c:516 #, c-format msgid "which is equal to %s × %s px" msgstr "Mikä vastaa %s × %s px" -#: ../src/libs/export.c:520 +#: ../src/libs/export.c:555 msgctxt "unit" msgid "in" msgstr "in" -#: ../src/libs/export.c:1060 +#: ../src/libs/export.c:1141 msgctxt "section" msgid "storage options" msgstr "Tallennuksen asetukset" -#: ../src/libs/export.c:1064 +#: ../src/libs/export.c:1145 msgid "target storage" msgstr "Tallennuskohde" -#: ../src/libs/export.c:1086 +#: ../src/libs/export.c:1171 msgctxt "section" msgid "format options" msgstr "Tiedoston asetukset" -#: ../src/libs/export.c:1090 +#: ../src/libs/export.c:1175 msgid "file format" msgstr "Tiedostomuoto" -#: ../src/libs/export.c:1107 +#: ../src/libs/export.c:1193 msgctxt "section" msgid "global options" msgstr "Yleiset asetukset" -#: ../src/libs/export.c:1110 +#: ../src/libs/export.c:1196 msgid "set size" msgstr "Aseta koko" -#: ../src/libs/export.c:1111 +#: ../src/libs/export.c:1197 msgid "choose a method for setting the output size" msgstr "Valitse menetelmä vietävän kuvan koolle" -#: ../src/libs/export.c:1114 +#: ../src/libs/export.c:1200 msgid "in pixels (for file)" msgstr "Pikseleissä (tiedostolle)" -#: ../src/libs/export.c:1115 +#: ../src/libs/export.c:1201 msgid "in cm (for print)" msgstr "Senttimetreissä (tulosteelle)" -#: ../src/libs/export.c:1116 +#: ../src/libs/export.c:1202 msgid "in inch (for print)" msgstr "Tuumissa (tulosteelle)" -#: ../src/libs/export.c:1117 +#: ../src/libs/export.c:1203 msgid "by scale (for file)" msgstr "Mittakaavassa (tiedostolle)" -#: ../src/libs/export.c:1119 +#: ../src/libs/export.c:1206 msgid "print width" msgstr "Tulosteen leveys" -#: ../src/libs/export.c:1120 ../src/libs/export.c:1132 +#: ../src/libs/export.c:1208 ../src/libs/export.c:1225 msgid "" "maximum output width limit.\n" "click middle mouse button to reset to 0." @@ -20753,11 +21441,11 @@ "Viennin suurimman leveyden rajoitin.\n" "Napsauta hiiren keskinappia palauttaaksesi arvoksi 0." -#: ../src/libs/export.c:1123 +#: ../src/libs/export.c:1212 msgid "print height" msgstr "Tulosteen korkeus" -#: ../src/libs/export.c:1124 ../src/libs/export.c:1136 +#: ../src/libs/export.c:1214 ../src/libs/export.c:1231 msgid "" "maximum output height limit.\n" "click middle mouse button to reset to 0." @@ -20765,19 +21453,19 @@ "Viennin suurimman korkeuden rajoitin.\n" "Napsauta hiiren keskinappia palauttaaksesi arvoksi 0." -#: ../src/libs/export.c:1128 +#: ../src/libs/export.c:1220 msgid "resolution in dot per inch" msgstr "Resoluutio pisteinä per tuuma" -#: ../src/libs/export.c:1148 +#: ../src/libs/export.c:1244 msgid "@" msgstr "@" -#: ../src/libs/export.c:1161 ../src/libs/tools/global_toolbox.c:217 +#: ../src/libs/export.c:1258 ../src/libs/tools/global_toolbox.c:217 msgid "px" msgstr "px" -#: ../src/libs/export.c:1166 +#: ../src/libs/export.c:1266 msgid "" "it can be an integer, decimal number or simple fraction.\n" "zero or empty values are equal to 1.\n" @@ -20787,38 +21475,38 @@ "Nolla tai tyhjä arvo on vastaava kuin 1.\n" "Napsauta hiiren keskinappia palauttaaksesi arvoksi 1." -#: ../src/libs/export.c:1185 +#: ../src/libs/export.c:1292 msgid "allow upscaling" msgstr "Salli suurentaminen" -#: ../src/libs/export.c:1191 +#: ../src/libs/export.c:1301 msgid "high quality resampling" msgstr "Korkealaatuinen uudelleennäytteistäminen" -#: ../src/libs/export.c:1192 +#: ../src/libs/export.c:1302 msgid "do high quality resampling during export" msgstr "Suorita korkean laadun uudelleen näytteistäminen kuvien viennissä" -#: ../src/libs/export.c:1198 +#: ../src/libs/export.c:1310 msgid "store masks" msgstr "Tallenna maskit" -#: ../src/libs/export.c:1199 +#: ../src/libs/export.c:1311 msgid "store masks as layers in exported images. only works for some formats." msgstr "" "Tallenna maskit tasoina vietäviin kuviin. Toimii ainoastaan joillekin " "kuvatyypeille." -#: ../src/libs/export.c:1210 ../src/libs/export.c:1245 +#: ../src/libs/export.c:1322 ../src/libs/export.c:1357 #: ../src/libs/print_settings.c:2777 ../src/libs/print_settings.c:2823 msgid "image settings" msgstr "Lähdekuvan asetukset" -#: ../src/libs/export.c:1220 ../src/libs/print_settings.c:2811 +#: ../src/libs/export.c:1332 ../src/libs/print_settings.c:2811 msgid "output ICC profiles" -msgstr "Viennin ICC-väriprofiili" +msgstr "viennin ICC-väriprofiilit" -#: ../src/libs/export.c:1228 +#: ../src/libs/export.c:1340 msgid "" "• perceptual: smoothly moves out-of-gamut colors into gamut, preserving " "gradations,\n" @@ -20857,46 +21545,55 @@ "tarkastukseen\n" "(ei sovellu valokuvaukseen)." -#: ../src/libs/export.c:1255 ../src/libs/print_settings.c:2833 +#: ../src/libs/export.c:1367 ../src/libs/print_settings.c:2833 msgid "style" msgstr "Tyyli" -#: ../src/libs/export.c:1258 +#: ../src/libs/export.c:1370 msgid "temporary style to use while exporting" msgstr "Viennissä käytettävä väliaikainen tyyli." -#: ../src/libs/export.c:1263 ../src/libs/print_settings.c:2876 +#: ../src/libs/export.c:1377 ../src/libs/print_settings.c:2876 msgid "" "whether the style items are appended to the history or replacing the history" msgstr "" "Lisätäänkö tyylin tiedot kuvaan tehtyjen muokkausten päälle vai korvataanko " "kuvaan tehdyt muokkaukset tyylin tiedoilla." -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "replace history" msgstr "Korvaa muokkaushistoria" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "append history" msgstr "Lisää muokkaushistoria" -#: ../src/libs/export.c:1282 +#: ../src/libs/export.c:1398 +msgctxt "actionbutton" +msgid "export" +msgstr "Vie" + +#: ../src/libs/export.c:1400 msgid "export with current settings" msgstr "Vie valituilla asetuksilla." -#: ../src/libs/export_metadata.c:163 +#: ../src/libs/export_metadata.c:148 msgid "select tag" msgstr "Valitse tunniste" -#: ../src/libs/export_metadata.c:164 -msgid "add" -msgstr "Lisää" +#: ../src/libs/export_metadata.c:150 +msgid "_add" +msgstr "_lisää" + +#: ../src/libs/export_metadata.c:151 ../src/libs/geotagging.c:811 +msgid "_done" +msgstr "_Valmis" -#: ../src/libs/export_metadata.c:175 +#: ../src/libs/export_metadata.c:162 msgid "list filter" msgstr "Listaa suodin" -#: ../src/libs/export_metadata.c:186 +#: ../src/libs/export_metadata.c:173 msgid "" "list of available tags. click 'add' button or double-click on tag to add the " "selected one" @@ -20904,31 +21601,31 @@ "Käytettävissä olevien tunnisteiden lista. Napsauta 'lisää'-painiketta tai " "kaksoisnapsaauta tunnistetta lisätäksesi sen." -#: ../src/libs/export_metadata.c:287 +#: ../src/libs/export_metadata.c:274 msgid "edit metadata exportation" msgstr "Viennin metatietojen muokkain" -#: ../src/libs/export_metadata.c:304 +#: ../src/libs/export_metadata.c:293 msgid "general settings" msgstr "Yleiset asetukset" -#: ../src/libs/export_metadata.c:309 +#: ../src/libs/export_metadata.c:298 msgid "EXIF data" msgstr "EXIF-tiedot" -#: ../src/libs/export_metadata.c:310 +#: ../src/libs/export_metadata.c:299 msgid "export EXIF metadata" msgstr "Vie EXIF-metatiedot." -#: ../src/libs/export_metadata.c:313 +#: ../src/libs/export_metadata.c:302 msgid "export darktable XMP metadata (from metadata editor module)" msgstr "Vie Darktablen XMP-metatiedot (metatietojen muokkaus -moduulista)" -#: ../src/libs/export_metadata.c:323 +#: ../src/libs/export_metadata.c:312 msgid "only embedded" msgstr "Vain upotettu" -#: ../src/libs/export_metadata.c:324 +#: ../src/libs/export_metadata.c:313 msgid "" "per default the interface sends some (limited) metadata beside the image to " "remote storage.\n" @@ -20944,39 +21641,39 @@ "Jos etätallennustila ei ymmärrä Darktable XMP-metatietoja, voit käyttää " "laskettuja metatietoja tämän sijaan." -#: ../src/libs/export_metadata.c:330 ../src/libs/image.c:566 +#: ../src/libs/export_metadata.c:319 ../src/libs/image.c:623 msgid "geo tags" msgstr "Sijantitiedot" -#: ../src/libs/export_metadata.c:331 +#: ../src/libs/export_metadata.c:320 msgid "export geo tags" msgstr "Vie sijaintitiedot." -#: ../src/libs/export_metadata.c:334 +#: ../src/libs/export_metadata.c:323 msgid "export tags (to Xmp.dc.Subject)" msgstr "Vie tunnisteet (kenttään XMP.dc.Subject)" -#: ../src/libs/export_metadata.c:342 +#: ../src/libs/export_metadata.c:331 msgid "private tags" msgstr "Yksityiset tunnisteet" -#: ../src/libs/export_metadata.c:343 +#: ../src/libs/export_metadata.c:332 msgid "export private tags" msgstr "Vie yksityiset tunnisteet." -#: ../src/libs/export_metadata.c:345 +#: ../src/libs/export_metadata.c:334 msgid "synonyms" msgstr "Synonyymit" -#: ../src/libs/export_metadata.c:346 +#: ../src/libs/export_metadata.c:335 msgid "export tags synonyms" msgstr "Vie tunnisteiden synonyymit." -#: ../src/libs/export_metadata.c:348 +#: ../src/libs/export_metadata.c:337 msgid "omit hierarchy" msgstr "Jätä hierarkia pois" -#: ../src/libs/export_metadata.c:349 +#: ../src/libs/export_metadata.c:338 msgid "" "only the last part of the hierarchical tags is included. can be useful if " "categories are not used" @@ -20984,19 +21681,19 @@ "Ainoastaan hierarkkisten tunnisteiden viimeinen osa viedään. Voi olla " "hyödyllinen, jos kategoriat eivät ole käytössä." -#: ../src/libs/export_metadata.c:352 +#: ../src/libs/export_metadata.c:341 msgid "hierarchical tags" msgstr "Hierarkkiset tunnisteet" -#: ../src/libs/export_metadata.c:353 +#: ../src/libs/export_metadata.c:342 msgid "export hierarchical tags (to Xmp.lr.Hierarchical Subject)" msgstr "Vie hierarkkiset tunnisteet (Xmp.lr.Hierarkinen Aihe)" -#: ../src/libs/export_metadata.c:355 +#: ../src/libs/export_metadata.c:344 msgid "develop history" msgstr "Muokkaushistoria" -#: ../src/libs/export_metadata.c:356 +#: ../src/libs/export_metadata.c:345 msgid "" "export darktable development data (recovery purpose in case of loss of " "database or XMP file)" @@ -21004,19 +21701,19 @@ "Vie Darktablen muokkaustiedot (palautus tarkoituksiin, jos tietokanta tai " "XMP-tiedosto tuhoutuu)." -#: ../src/libs/export_metadata.c:363 +#: ../src/libs/export_metadata.c:352 msgid "per metadata settings" msgstr "Metatiedon asetukset" -#: ../src/libs/export_metadata.c:376 +#: ../src/libs/export_metadata.c:364 msgid "redefined tag" msgstr "Muutettava tunniste" -#: ../src/libs/export_metadata.c:382 +#: ../src/libs/export_metadata.c:370 msgid "formula" msgstr "Kaava" -#: ../src/libs/export_metadata.c:385 +#: ../src/libs/export_metadata.c:373 msgid "" "list of calculated metadata\n" "click on '+' button to select and add new metadata\n" @@ -21039,15 +21736,15 @@ "Kirjoita '$(' aktivoidaksesi automaattisen täydennyksen ja nähdäksesi " "tuettujen muuttujien listan." -#: ../src/libs/export_metadata.c:442 +#: ../src/libs/export_metadata.c:430 msgid "add an output metadata tag" msgstr "Lisää vietävän metatiedon tunniste." -#: ../src/libs/export_metadata.c:447 +#: ../src/libs/export_metadata.c:435 msgid "delete metadata tag" msgstr "Poista metatiedon tunniste." -#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:128 +#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:130 msgid "full path" msgstr "Hakemistopolku" @@ -21067,48 +21764,48 @@ msgid "shuffle" msgstr "Satunnainen" -#: ../src/libs/filtering.c:263 +#: ../src/libs/filtering.c:269 msgid "collection filters" msgstr "Kokoelman suodattimet" -#: ../src/libs/filtering.c:296 +#: ../src/libs/filtering.c:302 msgid "initial setting" msgstr "Alustava asetus" -#: ../src/libs/filtering.c:315 +#: ../src/libs/filtering.c:321 msgid "imported: last 24h" msgstr "Tuotu: edelliset 24h" -#: ../src/libs/filtering.c:320 +#: ../src/libs/filtering.c:326 msgid "imported: last 30 days" msgstr "Tuotu: edelliset 30 päivää" -#: ../src/libs/filtering.c:326 +#: ../src/libs/filtering.c:332 msgid "taken: last 24h" msgstr "Otettu: edelliset 24h" -#: ../src/libs/filtering.c:330 +#: ../src/libs/filtering.c:336 msgid "taken: last 30 days" msgstr "Otettu: edelliset 30 päivää" -#: ../src/libs/filtering.c:702 +#: ../src/libs/filtering.c:728 msgid "click or click&drag to select one or multiple values" msgstr "Napsauta tai napsauta&raahaa valitaksesi useita arvoja." -#: ../src/libs/filtering.c:703 +#: ../src/libs/filtering.c:729 msgid "right-click opens a menu to select the available values" msgstr "Oikea-napsaus avaa valikon saatavilla olevista arvoista" -#: ../src/libs/filtering.c:800 +#: ../src/libs/filtering.c:826 #, c-format msgid "you can't have more than %d rules" msgstr "Käytössä ei voi olla enempää kuin %d sääntöä." -#: ../src/libs/filtering.c:922 ../src/libs/filtering.c:1556 +#: ../src/libs/filtering.c:948 ../src/libs/filtering.c:1618 msgid "rule property" msgstr "Säännön ominaisuus" -#: ../src/libs/filtering.c:987 +#: ../src/libs/filtering.c:1013 msgid "" "rule property\n" "this can't be changed as the rule is pinned to the toolbar" @@ -21116,12 +21813,12 @@ "Säännön ominaisuus.\n" "Tätä ei voi muuttaa, koska sääntö on kiinnitetty työkalupalkkiin." -#: ../src/libs/filtering.c:1035 +#: ../src/libs/filtering.c:1095 msgctxt "quickfilter" msgid "filter" msgstr "Suodatin" -#: ../src/libs/filtering.c:1062 +#: ../src/libs/filtering.c:1124 msgid "" "this rule is pinned to the top toolbar\n" "click to un-pin" @@ -21129,115 +21826,123 @@ "Tämä sääntö on kiinnitetty ylälaidan työkalupalkkiin.\n" "Napsauta irroitaaksesi." -#: ../src/libs/filtering.c:1063 +#: ../src/libs/filtering.c:1125 msgid "you can't disable the rule as it is pinned to the toolbar" msgstr "" "Et voi poistaa sääntöä käytöstä, koska se on kiinnitetty työkalupalkkiin." -#: ../src/libs/filtering.c:1064 +#: ../src/libs/filtering.c:1126 msgid "you can't remove the rule as it is pinned to the toolbar" msgstr "Et voi poistaa sääntöä, koska se on kiinnitetty työkalupalkkiin." -#: ../src/libs/filtering.c:1069 +#: ../src/libs/filtering.c:1131 msgid "click to pin this rule to the top toolbar" msgstr "Napsauta kiinnittääksesi sääntö ylälaidan työkalupalkkiin." -#: ../src/libs/filtering.c:1070 +#: ../src/libs/filtering.c:1132 msgid "remove this collect rule" msgstr "Poista tämä keräyksen sääntö." -#: ../src/libs/filtering.c:1072 +#: ../src/libs/filtering.c:1134 msgid "this rule is enabled" msgstr "Tämä sääntö on käytössä." -#: ../src/libs/filtering.c:1074 +#: ../src/libs/filtering.c:1136 msgid "this rule is disabled" msgstr "Tämä sääntö ei ole käytössä." -#: ../src/libs/filtering.c:1202 +#: ../src/libs/filtering.c:1264 msgid "or" msgstr "tai" -#: ../src/libs/filtering.c:1203 +#: ../src/libs/filtering.c:1265 msgid "and not" msgstr "ei" -#: ../src/libs/filtering.c:1205 +#: ../src/libs/filtering.c:1267 msgid "define how this rule should interact with the previous one" msgstr "Määrittele kuinka tämä sääntö toimii yhdessä aiempien kanssa." -#: ../src/libs/filtering.c:1466 +#: ../src/libs/filtering.c:1528 msgid " (off)" msgstr " (off)" -#: ../src/libs/filtering.c:1663 +#: ../src/libs/filtering.c:1725 msgid "you can't add more rules." msgstr "Et voi lisätä enempää sääntöjä." -#. fill the popover with all pinned rules -#: ../src/libs/filtering.c:1696 +#: ../src/libs/filtering.c:1759 msgid "shown filters" msgstr "Näytettävät suodattimet" -#: ../src/libs/filtering.c:1711 +#: ../src/libs/filtering.c:1774 msgid "new filter" msgstr "Uusi suodatin" -#: ../src/libs/filtering.c:1884 +#. the actions part of the popover +#: ../src/libs/filtering.c:1781 +msgid "actions" +msgstr "Toiminnot" + +#: ../src/libs/filtering.c:1784 +msgid "reset quickfilters" +msgstr "Nollaa pikasuodattimet" + +#: ../src/libs/filtering.c:1957 msgid "sort order" msgstr "Lajittelun järjestys" -#: ../src/libs/filtering.c:1886 +#: ../src/libs/filtering.c:1960 msgid "determine the sort order of shown images" msgstr "Määritä näyttävien kuvien esitysjärjestys." -#: ../src/libs/filtering.c:1906 +#: ../src/libs/filtering.c:1980 msgid "sort direction" msgstr "Lajittelun suunta" -#: ../src/libs/filtering.c:1911 +#: ../src/libs/filtering.c:1985 msgid "remove this sort order" msgstr "Poista tämä lajittelusääntö" -#: ../src/libs/filtering.c:1995 +#: ../src/libs/filtering.c:2069 #, c-format msgid "you can't have more than %d sort orders" msgstr "Käytössä ei voi olla enempää kuin %d lajittelujärjestystä." -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "DESC" msgstr "DESC" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "ASC" msgstr "ASC" -#: ../src/libs/filtering.c:2160 +#: ../src/libs/filtering.c:2234 msgid "new rule" msgstr "Uusi sääntö" -#: ../src/libs/filtering.c:2161 +#: ../src/libs/filtering.c:2235 msgid "append new rule to collect images" msgstr "Aseta uusi sääntö kuvien keräämiseksi." -#: ../src/libs/filtering.c:2172 ../src/libs/tools/filter.c:116 +#: ../src/libs/filtering.c:2246 ../src/libs/tools/filter.c:116 msgid "sort by" msgstr "Lajittelu" -#: ../src/libs/filtering.c:2180 +#: ../src/libs/filtering.c:2254 msgid "new sort" msgstr "Uusi lajittelu" -#: ../src/libs/filtering.c:2181 +#: ../src/libs/filtering.c:2255 msgid "append new sort to order images" msgstr "Aseta uusi lajittelu kuville." -#: ../src/libs/filtering.c:2184 +#: ../src/libs/filtering.c:2258 msgid "revert to a previous set of sort orders" msgstr "Palaa aiempiin lajittelun sääntöihin." #. we change the tooltip of the reset button here, as we are sure the header is defined now -#: ../src/libs/filtering.c:2234 +#: ../src/libs/filtering.c:2308 msgid "" "reset\n" "ctrl+click to remove pinned rules too" @@ -21274,7 +21979,7 @@ #: ../src/libs/filters/grouping.c:167 ../src/libs/filters/history.c:153 #: ../src/libs/filters/local_copy.c:142 ../src/libs/filters/module_order.c:161 #: ../src/libs/filters/rating.c:199 ../src/libs/filters/rating.c:210 -#: ../src/libs/filters/rating_range.c:325 +#: ../src/libs/filters/rating_range.c:356 msgid "rules" msgstr "Säännöt" @@ -21288,7 +21993,7 @@ "Ja (∩): Kuvat joilla kaikki valitut värileimat.\n" "Tai (∪): Kuvat joilla vähintään yksi valituista värileimoista." -#: ../src/libs/filters/filename.c:365 +#: ../src/libs/filters/filename.c:370 msgid "" "enter filename to search.\n" "multiple values can be separated by ','\n" @@ -21300,11 +22005,11 @@ "\n" "Oikea napsaus antaa olemassa olevat tiedostonimet." -#: ../src/libs/filters/filename.c:376 +#: ../src/libs/filters/filename.c:381 msgid "extension" msgstr "Laajennus" -#: ../src/libs/filters/filename.c:377 +#: ../src/libs/filters/filename.c:382 msgid "" "enter extension to search with starting dot\n" "multiple values can be separated by ','\n" @@ -21318,7 +22023,7 @@ "\n" "Oikea napsaus antaa olemassa olevat laajennukset." -#: ../src/libs/filters/filename.c:405 +#: ../src/libs/filters/filename.c:410 msgid "" "click to select filename\n" "ctrl+click to select multiple values" @@ -21326,7 +22031,7 @@ "Napsaus valitsee tiedostonimen.\n" "CTRL+napsaus valitsee useita arvoja." -#: ../src/libs/filters/filename.c:432 +#: ../src/libs/filters/filename.c:437 msgid "" "click to select extension\n" "ctrl+click to select multiple values" @@ -21334,6 +22039,11 @@ "Napsaus valitsee laajennuksen.\n" "CTRL+napsaus valitsee useita arvoja." +#. the button to close the popup +#: ../src/libs/filters/filename.c:457 +msgid "ok" +msgstr "OK" + #: ../src/libs/filters/grouping.c:141 ../src/libs/filters/grouping.c:169 msgid "ungrouped images" msgstr "Ryhmittämättömät kuvat" @@ -21345,8 +22055,8 @@ #. predefined selections #: ../src/libs/filters/grouping.c:169 ../src/libs/filters/history.c:38 #: ../src/libs/filters/local_copy.c:38 ../src/libs/filters/module_order.c:155 -#: ../src/libs/filters/rating_range.c:56 ../src/libs/filters/rating_range.c:72 -#: ../src/libs/filters/rating_range.c:109 ../src/libs/filters/ratio.c:68 +#: ../src/libs/filters/rating_range.c:59 ../src/libs/filters/rating_range.c:83 +#: ../src/libs/filters/rating_range.c:131 ../src/libs/filters/ratio.c:68 #: ../src/libs/filters/ratio.c:81 msgid "all images" msgstr "Kaikki kuvat" @@ -21371,7 +22081,7 @@ msgid "filter by images rating" msgstr "Suodata kuvan luokittelun mukaan" -#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:542 +#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:596 #: ../src/libs/tools/ratings.c:56 msgid "ratings" msgstr "Luokitukset" @@ -21380,49 +22090,33 @@ msgid "unstarred only" msgstr "Luokittelemattomat" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:60 -#: ../src/libs/filters/rating_range.c:75 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:65 +#: ../src/libs/filters/rating_range.c:89 msgid "rejected only" msgstr "Hylätyt" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:58 -#: ../src/libs/filters/rating_range.c:73 ../src/libs/filters/rating_range.c:138 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:62 +#: ../src/libs/filters/rating_range.c:86 ../src/libs/filters/rating_range.c:158 msgid "all except rejected" msgstr "Kaikki muut paitsi hylätyt" -#: ../src/libs/filters/rating_range.c:61 ../src/libs/filters/rating_range.c:76 +#: ../src/libs/filters/rating_range.c:67 ../src/libs/filters/rating_range.c:91 msgid "not rated only" msgstr "Luokittelemattomat" -#: ../src/libs/filters/rating_range.c:99 ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:131 -#: ../src/libs/filters/rating_range.c:275 -msgid "rejected" -msgstr "hylätyt" - -#: ../src/libs/filters/rating_range.c:101 -#: ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:276 -msgid "not rated" -msgstr "arvioimattomat" - -#: ../src/libs/filters/rating_range.c:117 -msgid "only" -msgstr "vain" - -#: ../src/libs/filters/rating_range.c:269 +#: ../src/libs/filters/rating_range.c:296 msgid "better" msgstr "Parempi" -#: ../src/libs/filters/rating_range.c:270 +#: ../src/libs/filters/rating_range.c:297 msgid "worse" msgstr "Huonompi" -#: ../src/libs/filters/rating_range.c:271 +#: ../src/libs/filters/rating_range.c:298 msgid "cap" msgstr "Rajoitus" -#: ../src/libs/filters/rating_range.c:286 +#: ../src/libs/filters/rating_range.c:313 msgid "rating filter" msgstr "Luokittelun suodin" @@ -21460,7 +22154,7 @@ msgid "apply offset and geo-location" msgstr "Aseta poikkeama ja paikkatieto" -#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1910 +#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1914 msgid "apply geo-location" msgstr "Aseta paikkatietodot" @@ -21472,49 +22166,49 @@ "Aseta poikkeama ja paikkatiedot vastaaviin kuviin.\n" "Kaksoistoiminto: Kaksi kertaa CTRL+Z kumoaa muutokset." -#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1911 +#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1915 msgid "apply geo-location to matching images" msgstr "Aseta paikkatiedot reittiä vastaaviin kuviin." -#: ../src/libs/geotagging.c:810 +#: ../src/libs/geotagging.c:809 msgid "GPX file track segments" msgstr "GPX-tiedoston reitin segmentit" -#: ../src/libs/geotagging.c:830 ../src/libs/geotagging.c:1869 +#: ../src/libs/geotagging.c:831 ../src/libs/geotagging.c:1873 msgid "start time" msgstr "Aika alussa" -#: ../src/libs/geotagging.c:831 +#: ../src/libs/geotagging.c:832 msgid "end time" msgstr "Aika lopussa" -#: ../src/libs/geotagging.c:832 ../src/libs/geotagging.c:1871 +#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1875 msgid "points" msgstr "Pisteet" -#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1873 -#: ../src/libs/image.c:463 +#: ../src/libs/geotagging.c:834 ../src/libs/geotagging.c:1877 +#: ../src/libs/image.c:494 msgid "images" msgstr "Kuvat" -#: ../src/libs/geotagging.c:926 +#: ../src/libs/geotagging.c:927 msgid "open GPX file" msgstr "Avaa GPX-tiedosto" -#: ../src/libs/geotagging.c:927 ../src/libs/tools/lighttable.c:330 -#: ../src/libs/tools/lighttable.c:399 ../src/views/darkroom.c:2232 +#: ../src/libs/geotagging.c:928 ../src/libs/tools/lighttable.c:330 +#: ../src/libs/tools/lighttable.c:399 ../src/views/darkroom.c:2091 msgid "preview" msgstr "Esikatselu" -#: ../src/libs/geotagging.c:940 +#: ../src/libs/geotagging.c:941 msgid "GPS data exchange format" msgstr "GPS-tietojen vaihtotiedosto" -#: ../src/libs/geotagging.c:1739 +#: ../src/libs/geotagging.c:1743 msgid "date/time" msgstr "Päivä/aika" -#: ../src/libs/geotagging.c:1740 +#: ../src/libs/geotagging.c:1744 msgid "" "enter the new date/time (YYYY:MM:DD hh:mm:ss[.sss])\n" "key in the new numbers or scroll over the cell" @@ -21522,41 +22216,41 @@ "Anna uusi päivä/aika (YYYY:MM:DD hh:mm:ss[.sss])\n" "Syötä numeroilla tai käytä hiiren rullaa solun päällä." -#: ../src/libs/geotagging.c:1744 +#: ../src/libs/geotagging.c:1748 msgid "original date/time" msgstr "Alkuperäinen päivä/aika" -#: ../src/libs/geotagging.c:1748 +#: ../src/libs/geotagging.c:1752 msgid "lock date/time offset value to apply it onto another selection" msgstr "" "Lukitse päivän/ajan poikkeaman arvo käyttääksesi sitä toisessa valinnassa." -#: ../src/libs/geotagging.c:1752 +#: ../src/libs/geotagging.c:1756 msgid "date/time offset" msgstr "Päivän/ajan poikkeama" -#: ../src/libs/geotagging.c:1753 +#: ../src/libs/geotagging.c:1757 msgid "offset or difference ([-]dd hh:mm:ss[.sss])" msgstr "Poikkeama tai ero ([-]dd hh:mm:ss[.sss])." #. apply -#: ../src/libs/geotagging.c:1757 +#: ../src/libs/geotagging.c:1761 msgid "apply offset" msgstr "Aseta poikkeama" -#: ../src/libs/geotagging.c:1758 +#: ../src/libs/geotagging.c:1762 msgid "apply offset to selected images" msgstr "Aseta ajan poikkeama valittuihin kuviin." -#: ../src/libs/geotagging.c:1761 +#: ../src/libs/geotagging.c:1765 msgid "apply date/time" msgstr "Aseta päivä/aika" -#: ../src/libs/geotagging.c:1762 +#: ../src/libs/geotagging.c:1766 msgid "apply the same date/time to selected images" msgstr "Aseta sama päivä/aika valittuihin kuviin." -#: ../src/libs/geotagging.c:1772 +#: ../src/libs/geotagging.c:1776 msgid "" "start typing to show a list of permitted values and select your timezone.\n" "press enter to confirm, so that the asterisk * disappears" @@ -21566,24 +22260,24 @@ "Paina Enter vahvistaaksesi valinnan jotta jokerimerkki * häviää." #. gpx -#: ../src/libs/geotagging.c:1815 +#: ../src/libs/geotagging.c:1819 msgid "apply GPX track file..." msgstr "Käytä GPX-reittitiedostoa..." -#: ../src/libs/geotagging.c:1816 +#: ../src/libs/geotagging.c:1820 msgid "parses a GPX file and updates location of selected images" msgstr "Lukee GPX-tiedoston ja päivittää sijainnin valittuihin kuviin." -#: ../src/libs/geotagging.c:1827 +#: ../src/libs/geotagging.c:1831 msgctxt "section" msgid "GPX file" msgstr "GPX-tiedosto" -#: ../src/libs/geotagging.c:1834 +#: ../src/libs/geotagging.c:1838 msgid "select a GPX track file..." msgstr "Valitse GPX-reittitiedosto..." -#: ../src/libs/geotagging.c:1851 +#: ../src/libs/geotagging.c:1855 msgid "" "list of track segments in the GPX file, for each segment:\n" "- the start date/time in local time (LT)\n" @@ -21599,172 +22293,180 @@ "aikavyöhykkeeseen\n" "- saat tarkempia tietoja viemällä hiiren rivin päälle" -#: ../src/libs/geotagging.c:1890 +#: ../src/libs/geotagging.c:1894 msgid "preview images" msgstr "Näytä kuvat" -#: ../src/libs/geotagging.c:1895 +#: ../src/libs/geotagging.c:1899 msgid "show on map matching images" msgstr "Näytä kartalla reittiä vastaavat kuvat." -#: ../src/libs/geotagging.c:1898 +#: ../src/libs/geotagging.c:1902 msgid "select images" msgstr "Valitse kuvat" -#: ../src/libs/geotagging.c:1899 +#: ../src/libs/geotagging.c:1903 msgid "select matching images" msgstr "Valitse reittiä vastaavat kuvat." -#: ../src/libs/geotagging.c:1907 +#: ../src/libs/geotagging.c:1911 msgid "number of matching images versus selected images" msgstr "Vastaavien kuvien määrä vs valitut kuvat" -#: ../src/libs/histogram.c:133 +#: ../src/libs/histogram.c:110 msgid "monochromatic" msgstr "Monokromaattinen" -#: ../src/libs/histogram.c:134 +#: ../src/libs/histogram.c:111 msgid "analogous" msgstr "Analoginen" -#: ../src/libs/histogram.c:135 +#: ../src/libs/histogram.c:112 msgid "analogous complementary" msgstr "Analoginen täydentävä" -#: ../src/libs/histogram.c:136 +#: ../src/libs/histogram.c:113 msgid "complementary" msgstr "Täydentävä" -#: ../src/libs/histogram.c:137 +#: ../src/libs/histogram.c:114 msgid "split complementary" msgstr "Halkaistu täydentävä" -#: ../src/libs/histogram.c:138 +#: ../src/libs/histogram.c:115 msgid "dyad" msgstr "Dyadi" -#: ../src/libs/histogram.c:139 +#: ../src/libs/histogram.c:116 msgid "triad" msgstr "Triadi" -#: ../src/libs/histogram.c:140 +#: ../src/libs/histogram.c:117 msgid "tetrad" msgstr "Tetradi" -#: ../src/libs/histogram.c:146 +#: ../src/libs/histogram.c:123 msgid "vectorscope" msgstr "Vektorialue" -#: ../src/libs/histogram.c:147 +#: ../src/libs/histogram.c:124 msgid "waveform" msgstr "Aaltomuoto" -#: ../src/libs/histogram.c:148 +#: ../src/libs/histogram.c:125 msgid "RGB parade" msgstr "RGB-paraati" -#: ../src/libs/histogram.c:149 ../src/libs/histogram.c:2309 +#: ../src/libs/histogram.c:126 ../src/libs/histogram.c:2622 msgid "histogram" msgstr "Histogrammi" -#: ../src/libs/histogram.c:243 +#: ../src/libs/histogram.c:218 msgid "scopes" msgstr "Skaalat" -#: ../src/libs/histogram.c:1542 +#: ../src/libs/histogram.c:757 +msgid "" +"unsupported vectorscope profile selected, it will be replaced with linear " +"Rec2020" +msgstr "" +"Vektorialueen profiili ei ole tuettu, korvataan lineaarisella Rec2020 " +"profiililla." + +#: ../src/libs/histogram.c:1715 msgid "scroll to coarse-rotate" msgstr "Hiiren rulla kiertää karkeasti." -#: ../src/libs/histogram.c:1543 +#: ../src/libs/histogram.c:1716 msgid "ctrl+scroll to fine rotate" msgstr "CTRL+hiiren rulla kiertää tarkasti." -#: ../src/libs/histogram.c:1544 +#: ../src/libs/histogram.c:1717 msgid "shift+scroll to change width" msgstr "SHIFT+hiiren rulla muuttaa leveyttä." -#: ../src/libs/histogram.c:1545 +#: ../src/libs/histogram.c:1718 msgid "alt+scroll to cycle" msgstr "ALT+hiiren rulla vaihtaa kuvien välillä." -#: ../src/libs/histogram.c:1556 +#: ../src/libs/histogram.c:1732 msgid "drag to change black point" msgstr "Raahaa mustan pisteen muuttamiseksi." -#: ../src/libs/histogram.c:1557 ../src/libs/histogram.c:1564 +#: ../src/libs/histogram.c:1733 ../src/libs/histogram.c:1740 msgid "double-click resets" msgstr "Kaksoisnapsautus palauttaa oletusasetukset." -#: ../src/libs/histogram.c:1563 +#: ../src/libs/histogram.c:1739 msgid "drag to change exposure" msgstr "Raahaa muuttaaksesi valotusta." -#: ../src/libs/histogram.c:1725 ../src/libs/histogram.c:1765 +#: ../src/libs/histogram.c:1923 ../src/libs/histogram.c:1965 msgid "set scale to linear" msgstr "Aseta asteikko lineaariseksi." -#: ../src/libs/histogram.c:1730 ../src/libs/histogram.c:1770 +#: ../src/libs/histogram.c:1928 ../src/libs/histogram.c:1970 msgid "set scale to logarithmic" msgstr "Aseta asteikko logaritmiseksi." -#: ../src/libs/histogram.c:1746 +#: ../src/libs/histogram.c:1946 msgid "set scope to vertical" msgstr "Aseta alue pystysuuntaiseksi" -#: ../src/libs/histogram.c:1751 +#: ../src/libs/histogram.c:1951 msgid "set scope to horizontal" msgstr "Aseta alue vaakasuuntaiseksi" -#: ../src/libs/histogram.c:1780 +#: ../src/libs/histogram.c:1980 msgid "set view to AzBz" msgstr "Aseta näkymäksi AzBz" -#: ../src/libs/histogram.c:1786 +#: ../src/libs/histogram.c:1986 msgid "set view to RYB" msgstr "Aseta näkymäksi RYB" -#: ../src/libs/histogram.c:1792 +#: ../src/libs/histogram.c:1992 msgid "set view to u*v*" msgstr "Aseta näkymäksi u*v*" -#: ../src/libs/histogram.c:2312 ../src/libs/histogram.c:2370 +#: ../src/libs/histogram.c:2625 ../src/libs/histogram.c:2691 msgid "cycle histogram modes" msgstr "Kierrätä histogrammin tiloja" -#: ../src/libs/histogram.c:2316 ../src/libs/histogram.c:2371 +#: ../src/libs/histogram.c:2630 ../src/libs/histogram.c:2693 msgid "hide histogram" msgstr "Piilota histogrammi" -#: ../src/libs/histogram.c:2372 ../src/libs/histogram.c:2401 +#: ../src/libs/histogram.c:2696 ../src/libs/histogram.c:2729 msgid "switch histogram view" msgstr "Vaihda histogramminäkymään." -#: ../src/libs/histogram.c:2379 +#: ../src/libs/histogram.c:2704 msgid "toggle blue channel" msgstr "Näytä tai piilota sininen kanava." -#: ../src/libs/histogram.c:2381 ../src/libs/histogram.c:2389 -#: ../src/libs/histogram.c:2397 +#: ../src/libs/histogram.c:2706 ../src/libs/histogram.c:2715 +#: ../src/libs/histogram.c:2724 msgid "toggle colors" msgstr "Vaihda värit." -#: ../src/libs/histogram.c:2387 +#: ../src/libs/histogram.c:2713 msgid "toggle green channel" msgstr "Näytä tai piilota vihreä kanava." -#: ../src/libs/histogram.c:2395 +#: ../src/libs/histogram.c:2722 msgid "toggle red channel" msgstr "Näytä tai piilota punainen kanava." -#: ../src/libs/histogram.c:2405 +#: ../src/libs/histogram.c:2734 msgid "cycle vectorscope types" msgstr "Vaihda vektorialueen tyyppiä." -#: ../src/libs/histogram.c:2413 +#: ../src/libs/histogram.c:2745 msgid "color harmonies" msgstr "Väriharmoniat" -#: ../src/libs/histogram.c:2425 +#: ../src/libs/histogram.c:2759 msgid "cycle color harmonies" msgstr "Vaihda väriharmonioita." @@ -21808,10 +22510,18 @@ msgid "mask mode" msgstr "Maskin tila" +#: ../src/libs/history.c:949 +msgid "blend mode" +msgstr "Yhdistämisen tila" + #: ../src/libs/history.c:951 msgid "blend operation" msgstr "Yhdistämisen toiminto" +#: ../src/libs/history.c:953 +msgid "blend fulcrum" +msgstr "Yhdistämisen tukipiste" + #: ../src/libs/history.c:961 msgid "mask blur" msgstr "Maskin sumennus" @@ -21855,199 +22565,199 @@ msgid "parametric input mask:" msgstr "Laskennallinen tuonnin maski:" -#: ../src/libs/history.c:1323 +#: ../src/libs/history.c:1322 msgid "delete image's history?" msgstr "Poista kuvien muokkaushistoria?" -#: ../src/libs/history.c:1324 +#: ../src/libs/history.c:1323 msgid "do you really want to clear history of current image?" msgstr "Haluatko varmasti poistaa valitun kuvan historian?" -#: ../src/libs/image.c:72 -msgid "selected image[s]" -msgstr "Valitut kuvat" +#: ../src/libs/image.c:74 +msgid "actions on selection" +msgstr "Toiminnot valinnalle" -#: ../src/libs/image.c:284 +#: ../src/libs/image.c:302 msgid "delete (trash)" msgstr "Poista (roskakori)" -#: ../src/libs/image.c:287 +#: ../src/libs/image.c:305 msgid "physically delete from disk (using trash if possible)" msgstr "Poista levyltä (käyttäen roskakoria, jos mahdollista)." -#: ../src/libs/image.c:288 +#: ../src/libs/image.c:306 msgid "physically delete from disk immediately" msgstr "Poista levyltä lopullisesti" -#: ../src/libs/image.c:474 ../src/libs/modulegroups.c:3811 -#: ../src/libs/styles.c:876 +#: ../src/libs/image.c:506 ../src/libs/modulegroups.c:3813 +#: ../src/libs/styles.c:880 msgid "remove" msgstr "Poista" -#: ../src/libs/image.c:475 +#: ../src/libs/image.c:508 msgid "remove images from the image library, without deleting" msgstr "Poista kuvat kuvakirjastosta, poistamatta niitä levyltä." -#: ../src/libs/image.c:483 +#: ../src/libs/image.c:517 msgid "move..." msgstr "Siirrä" -#: ../src/libs/image.c:484 +#: ../src/libs/image.c:519 msgid "move to other folder" msgstr "Siirrä valitut kuvat toiseen hakemistoon." -#: ../src/libs/image.c:487 +#: ../src/libs/image.c:522 msgid "copy..." msgstr "Kopioi..." -#: ../src/libs/image.c:488 +#: ../src/libs/image.c:524 msgid "copy to other folder" msgstr "Kopioi valitut kuvat toiseen hakemistoon." -#: ../src/libs/image.c:491 +#: ../src/libs/image.c:528 msgid "create HDR" msgstr "Luo HDR-kuva" # entä "monivalotus (HDR)" -#: ../src/libs/image.c:492 +#: ../src/libs/image.c:530 msgid "create a high dynamic range image from selected shots" msgstr "Luo valituista kuvista suuren dynamiikan kuva (HDR)." -#: ../src/libs/image.c:496 +#: ../src/libs/image.c:535 msgid "add a duplicate to the image library, including its history stack" msgstr "Lisää muokkaushistorian sisältävä kopio kirjastoon." -#: ../src/libs/image.c:502 ../src/libs/image.c:505 +#: ../src/libs/image.c:542 ../src/libs/image.c:547 msgid "rotate selected images 90 degrees CCW" msgstr "Kierrä valittuja kuvia 90° vastapäivään." -#: ../src/libs/image.c:509 ../src/libs/image.c:512 +#: ../src/libs/image.c:553 ../src/libs/image.c:558 msgid "rotate selected images 90 degrees CW" msgstr "Kierrä valittuja kuvia 90° myötäpäivään." -#: ../src/libs/image.c:514 +#: ../src/libs/image.c:561 msgid "reset rotation" msgstr "Palauta suunta" -#: ../src/libs/image.c:515 +#: ../src/libs/image.c:563 msgid "reset rotation to EXIF data" msgstr "Palauta valittujen kuvien asento EXIF-tietojen mukaiseksi." -#: ../src/libs/image.c:518 +#: ../src/libs/image.c:566 msgid "copy locally" msgstr "Luo paikallinen kopio" -#: ../src/libs/image.c:519 +#: ../src/libs/image.c:568 msgid "copy the image locally" msgstr "Kopioi kuva paikallisesti." -#: ../src/libs/image.c:522 +#: ../src/libs/image.c:572 msgid "resync local copy" msgstr "Synkronoi paikallinen kopio uudestaan" -#: ../src/libs/image.c:523 +#: ../src/libs/image.c:574 msgid "synchronize the image's XMP and remove the local copy" msgstr "" "Synkronoi valittujen kuvien paikallisen version aputiedostojen (XMP) tiedot " "alkuperäisiin kuviin ja poistaa kuvien paikalliset kopiot." -#: ../src/libs/image.c:526 +#: ../src/libs/image.c:578 msgctxt "selected images action" msgid "group" msgstr "Ryhmitä" -#: ../src/libs/image.c:527 +#: ../src/libs/image.c:580 msgid "add selected images to expanded group or create a new one" msgstr "Lisää valitut kuvat laajennettuun ryhmään tai luo niille uusi ryhmä." -#: ../src/libs/image.c:531 +#: ../src/libs/image.c:584 msgid "ungroup" msgstr "Pura ryhmitys" -#: ../src/libs/image.c:532 +#: ../src/libs/image.c:586 msgid "remove selected images from the group" msgstr "Poista valitut kuvat ryhmästä." -#: ../src/libs/image.c:544 +#: ../src/libs/image.c:598 msgid "select ratings metadata" -msgstr "Valitse luokitukset metatieto" +msgstr "Valitse luokitukset metatieto." -#: ../src/libs/image.c:550 +#: ../src/libs/image.c:605 msgid "colors" msgstr "Värit" -#: ../src/libs/image.c:552 +#: ../src/libs/image.c:607 msgid "select colors metadata" -msgstr "Valitse värit metatieto" +msgstr "Valitse värit metatieto." -#: ../src/libs/image.c:560 +#: ../src/libs/image.c:616 msgid "select tags metadata" -msgstr "Valitse tunnisteet metatieto" +msgstr "Valitse tunnisteet metatieto." -#: ../src/libs/image.c:568 +#: ../src/libs/image.c:625 msgid "select geo tags metadata" -msgstr "Valitse sijaintitiedot metatieto" +msgstr "Valitse sijaintitiedot metatieto." -#: ../src/libs/image.c:576 +#: ../src/libs/image.c:636 msgid "select darktable metadata (from metadata editor module)" -msgstr "Valitse Darktablen metatieto (metatietojen muokkaus -moduulista)" +msgstr "Valitse Darktablen metatieto (metatietojen muokkaus -moduulista)." -#: ../src/libs/image.c:584 +#: ../src/libs/image.c:649 msgid "set the selected image as source of metadata" -msgstr "Aseta valittu kuva metatietojen lähteeksi" +msgstr "Aseta valittu kuva metatietojen lähteeksi." -#: ../src/libs/image.c:589 +#: ../src/libs/image.c:656 msgid "paste selected metadata on selected images" msgstr "Kirjoita valitut metatiedot valittuihin kuviin." -#: ../src/libs/image.c:593 +#: ../src/libs/image.c:661 msgid "clear selected metadata on selected images" msgstr "Poista valitut metatiedot valituista kuvista." -#: ../src/libs/image.c:598 +#: ../src/libs/image.c:667 msgid "how to handle existing metadata" msgstr "Olemassa olevan metatiedon käsittelytapa." -#: ../src/libs/image.c:601 +#: ../src/libs/image.c:670 msgid "merge" msgstr "Yhdistä" -#: ../src/libs/image.c:605 +#: ../src/libs/image.c:675 msgid "update image information to match changes to file" msgstr "Päivitä kuvan muuttuneet tiedot tiedostoon." -#: ../src/libs/image.c:609 +#: ../src/libs/image.c:680 msgid "set selection as monochrome images and activate monochrome workflow" msgstr "" "Aseta valinta mustavalkoisille kuville ja aktivoi mustavalkoinen " "työskentelytila." -#: ../src/libs/image.c:613 +#: ../src/libs/image.c:684 msgid "set selection as color images" msgstr "Määritä valinta värikuviksi" -#: ../src/libs/image.c:625 +#: ../src/libs/image.c:696 msgid "duplicate virgin" msgstr "Kahdenna alkuperäinen kuva" -#: ../src/libs/import.c:263 +#: ../src/libs/import.c:264 #, c-format msgid "device \"%s\" connected on port \"%s\"." msgstr "Laite \"%s\" liitetty porttiin \"%s\"." -#: ../src/libs/import.c:273 ../src/libs/import.c:334 ../src/libs/import.c:1692 +#: ../src/libs/import.c:274 ../src/libs/import.c:335 ../src/libs/import.c:1701 msgid "copy & import from camera" msgstr "Kopioi ja tuo kamerasta" -#: ../src/libs/import.c:284 ../src/libs/import.c:336 +#: ../src/libs/import.c:285 ../src/libs/import.c:337 msgid "tethered shoot" msgstr "Liitetty kuvaaminen" -#: ../src/libs/import.c:291 ../src/libs/import.c:337 +#: ../src/libs/import.c:292 ../src/libs/import.c:338 msgid "unmount camera" msgstr "Irrota kamera" -#: ../src/libs/import.c:312 +#: ../src/libs/import.c:313 msgid "" "camera is locked by another application\n" "make sure it is no longer mounted\n" @@ -22057,38 +22767,38 @@ "Varmista että se ei ole enää käytössä\n" "tai sulje kameran varannut ohjelma." -#: ../src/libs/import.c:315 +#: ../src/libs/import.c:316 msgid "tethering and importing is disabled for this camera" msgstr "Tämän kameran liitetty kuvaus ja kuvien tuonti on poistettu käytöstä." -#: ../src/libs/import.c:317 ../src/libs/import.c:335 +#: ../src/libs/import.c:318 ../src/libs/import.c:336 msgid "mount camera" msgstr "Liitä kamera" -#: ../src/libs/import.c:747 +#: ../src/libs/import.c:754 #, c-format msgid "%d image out of %d selected" msgid_plural "%d images out of %d selected" msgstr[0] "%d / %d kuvaa valittu" msgstr[1] "%d / %d kuvaa valittu" -#: ../src/libs/import.c:1039 +#: ../src/libs/import.c:1046 msgid "you can't delete the selected place" msgstr "Et voi poistaa valittua sijaintia" -#: ../src/libs/import.c:1153 +#: ../src/libs/import.c:1160 msgid "choose the root of the folder tree below" msgstr "Valitse hakemistopuun alku alta" -#: ../src/libs/import.c:1156 +#: ../src/libs/import.c:1163 msgid "places" msgstr "Sijainnit" -#: ../src/libs/import.c:1162 +#: ../src/libs/import.c:1169 msgid "restore all default places you have removed by right-click" msgstr "Palauta oikealla napilla poistetut oletussijainnit" -#: ../src/libs/import.c:1167 +#: ../src/libs/import.c:1174 msgid "" "add a custom place\n" "\n" @@ -22098,80 +22808,109 @@ "\n" "Oikea napsaus poistaa sijainnin" -#: ../src/libs/import.c:1174 +#: ../src/libs/import.c:1181 msgid "you can add custom places using the plus icon" msgstr "Voit lisätä omia sijainteja plus-kuvakkeesta" -#: ../src/libs/import.c:1199 +#: ../src/libs/import.c:1206 msgid "select a folder to see the content" msgstr "Valitse hakemisto nähdäksesi sisällön" -#: ../src/libs/import.c:1202 +#: ../src/libs/import.c:1209 msgid "folders" msgstr "Hakemistot" -#: ../src/libs/import.c:1272 +#: ../src/libs/import.c:1279 msgid "home" msgstr "Kotihakemisto" -#: ../src/libs/import.c:1284 +#: ../src/libs/import.c:1291 msgid "pictures" msgstr "Kuvahakemistot" -#: ../src/libs/import.c:1548 +#: ../src/libs/import.c:1557 msgid "mark already imported pictures" msgstr "Tuotujen kuvien merkki." -#: ../src/libs/import.c:1562 +#: ../src/libs/import.c:1571 msgid "modified" msgstr "Muokattu" -#: ../src/libs/import.c:1567 +#: ../src/libs/import.c:1576 msgid "file 'modified date/time', may be different from 'Exif date/time'" msgstr "" -"Tiedoston 'muokattu päivä/aika' saattaa erota 'EXIF päivä/aika' tiedosta" +"Tiedoston 'muokattu päivä/aika' saattaa erota 'EXIF-tietojen päivä/aika' " +"tiedosta" -#: ../src/libs/import.c:1579 +#: ../src/libs/import.c:1588 msgid "show/hide thumbnails" msgstr "Näytä/piilota esikatselukuvat." -#: ../src/libs/import.c:1649 +#: ../src/libs/import.c:1658 msgid "naming rules" msgstr "Nimeämisen säännöt" -#: ../src/libs/import.c:1690 +#: ../src/libs/import.c:1699 msgid "add to library" msgstr "Lisää kirjastoon" -#: ../src/libs/import.c:1691 +#: ../src/libs/import.c:1700 msgid "copy & import" msgstr "Kopioi ja tuo" -#: ../src/libs/import.c:1730 +#: ../src/libs/import.c:1740 msgid "select new" msgstr "Valitse uudet" -#: ../src/libs/import.c:1773 +#: ../src/libs/import.c:1783 msgid "please wait while prefetching the list of images from camera..." msgstr "Ole hyvä ja odota. Kamerasta haetaan esikatselukuvia..." -#: ../src/libs/import.c:1907 +#: ../src/libs/import.c:1922 msgid "invalid override date/time format" msgstr "Epäkelpo, ohita päivän/ajan muoto" -#: ../src/libs/import.c:2022 +#: ../src/libs/import.c:1986 +msgid "import base directory" +msgstr "Tuonnin perushakemisto" + +#: ../src/libs/import.c:1987 +msgid "" +"before copying images to the darktable base directory make sure it is " +"defined as you prefer.\n" +"further information can be found in the darktable manual.\n" +"\n" +"inspect darktable preferences -> import.\n" +"check and possibly correct the 'base directory naming pattern'" +msgstr "" +"Varmista ennen kuvien kopiointia Darktablen perushakemistoon, että se on " +"määritetty siten kuin haluat.\n" +"Lisätietoja tästä on saatavissa Darktablen ohjekirjassa.\n" +"\n" +"Tutki Darktablen Asetukset -> Tuo.\n" +"Tarkista ja tarvittaessa korjaa 'Perushakemiston nimeämiskäytäntö'." + +#: ../src/libs/import.c:1991 +msgid "_come back & check" +msgstr "_Tule takaisin & tarkista" + +#: ../src/libs/import.c:1991 +msgid "_understood & done" +msgstr "_Asia ymmärretty & toteuta" + +#: ../src/libs/import.c:2057 msgid "add to library..." msgstr "Lisää kirjastoon..." -#: ../src/libs/import.c:2023 +#: ../src/libs/import.c:2058 msgid "add existing images to the library" msgstr "Lisää levyllä olevat kuvat kirjastoon." -#: ../src/libs/import.c:2029 +#: ../src/libs/import.c:2064 msgid "copy & import..." msgstr "Kopioi ja tuo..." -#: ../src/libs/import.c:2030 +#: ../src/libs/import.c:2065 msgid "" "copy and optionally rename images before adding them to the library\n" "patterns can be defined to rename the images and specify the destination " @@ -22182,15 +22921,15 @@ "Kaavoilla voidaan määritellä nimeämiskäytännöt sekä kohdehakemistot." #. collapsible section -#: ../src/libs/import.c:2053 +#: ../src/libs/import.c:2088 msgid "parameters" msgstr "Parametrit" -#: ../src/libs/ioporder.c:204 +#: ../src/libs/ioporder.c:202 msgid "v3.0 for RAW input (default)" msgstr "v3.0 raakakuvien tulolle (oletus)" -#: ../src/libs/ioporder.c:210 +#: ../src/libs/ioporder.c:208 msgid "v3.0 for JPEG/non-RAW input" msgstr "v3.0 JPEG/ei raakakuvien tulolle" @@ -22442,168 +23181,110 @@ msgid "map settings" msgstr "Kartan asetukset" -#: ../src/libs/map_settings.c:107 +#: ../src/libs/map_settings.c:89 msgid "map source" msgstr "Karttapalvelu" -#: ../src/libs/map_settings.c:112 +#: ../src/libs/map_settings.c:90 msgid "select the source of the map. some entries might not work" msgstr "" "Valitse karttapalvelu. Osa karttapalveluista ei välttämättä toimi oikein." -#: ../src/libs/masks.c:107 +#: ../src/libs/masks.c:108 msgid "feather" msgstr "Häivytys" -#: ../src/libs/masks.c:114 -msgid "hardness (relative)" -msgstr "Kovuus (suhteellinen)" - -#: ../src/libs/masks.c:115 -msgid "hardness (absolute)" -msgstr "Kovuus (absoluuttinen)" - -#: ../src/libs/masks.c:116 -msgid "opacity (relative)" -msgstr "Läpinäkyvyys (suhteellinen)" - -#: ../src/libs/masks.c:117 -msgid "opacity (absolute)" -msgstr "Läpinäkyvyys (absoluuttinen)" - -#: ../src/libs/masks.c:118 -msgid "brush size (relative)" -msgstr "Siveltimen koko (suhteellinen)" - -#: ../src/libs/masks.c:121 -msgid "low" -msgstr "Matala" - -#: ../src/libs/masks.c:122 -msgid "medium" -msgstr "Keskimääräinen" - -#: ../src/libs/masks.c:123 -msgid "high" -msgstr "Korkea" - -#: ../src/libs/masks.c:381 +#: ../src/libs/masks.c:357 #, c-format msgid "group #%d" msgstr "Ryhmä #%d" -#: ../src/libs/masks.c:1081 +#: ../src/libs/masks.c:1097 msgid "duplicate this shape" msgstr "Kahdenna tämä muoto" -#: ../src/libs/masks.c:1085 +#: ../src/libs/masks.c:1101 msgid "delete this shape" msgstr "Poista tämä muoto" -#: ../src/libs/masks.c:1091 +#: ../src/libs/masks.c:1107 msgid "delete group" msgstr "Poista ryhmä" -#: ../src/libs/masks.c:1098 +#: ../src/libs/masks.c:1114 msgid "remove from group" msgstr "Poista ryhmästä" -#: ../src/libs/masks.c:1106 +#: ../src/libs/masks.c:1122 msgid "group the forms" msgstr "Ryhmitä muodot" -#: ../src/libs/masks.c:1114 +#: ../src/libs/masks.c:1130 msgid "use inverted shape" msgstr "Käytä käänteistä muotoa" -#: ../src/libs/masks.c:1121 +#: ../src/libs/masks.c:1134 msgid "mode: union" msgstr "Tila: yhdiste" -#: ../src/libs/masks.c:1127 +#: ../src/libs/masks.c:1136 msgid "mode: intersection" msgstr "Tila: leikkaus" -#: ../src/libs/masks.c:1133 +#: ../src/libs/masks.c:1138 msgid "mode: difference" msgstr "Tila: ero" -#: ../src/libs/masks.c:1139 +#: ../src/libs/masks.c:1140 msgid "mode: sum" msgstr "Tila: summa" -#: ../src/libs/masks.c:1145 +#: ../src/libs/masks.c:1142 msgid "mode: exclusion" msgstr "Tila: poissulku" -#: ../src/libs/masks.c:1164 +#: ../src/libs/masks.c:1158 msgid "cleanup unused shapes" msgstr "Poista käyttämättömät muodot" -#: ../src/libs/masks.c:1811 +#: ../src/libs/masks.c:1807 msgid "created shapes" msgstr "Luodut muodot" -#: ../src/libs/masks.c:1904 ../src/libs/masks.c:1919 ../src/libs/masks.c:1939 -#: ../src/libs/masks.c:1955 +#: ../src/libs/masks.c:1900 ../src/libs/masks.c:1915 ../src/libs/masks.c:1929 +#: ../src/libs/masks.c:1933 msgid "properties" msgstr "Ominaisuudet" -#: ../src/libs/masks.c:1907 +#: ../src/libs/masks.c:1903 msgid "no shapes selected" msgstr "Muotoja ei valittu" -#: ../src/libs/masks.c:1940 +#: ../src/libs/masks.c:1929 msgid "pressure" msgstr "Paine" -#: ../src/libs/masks.c:1941 -msgid "" -"pen pressure control for brush masks\n" -"'off': pressure reading ignored,\n" -"'hardness'/'opacity'/'brush size': pressure reading controls specified " -"attribute,\n" -"'absolute'/'relative': pressure reading is taken directly as attribute value " -"or multiplied with pre-defined setting." -msgstr "" -"Kynän paineen asetukset sivellinmaskille.\n" -"'pois käytöstä': Paineentunnistus pois käytöstä,\n" -"'kovuus'/'läpinäkyvyys'/'siveltimen koko': Paineentunnistus ohjaa valittua " -"arvoa\n" -"'absoluuttinen'/'suhteellinen': paineentunnistuksen lukemaa käytetään " -"suoraan tai se kerrotaan esimääritetyllä asetuksella." - -#: ../src/libs/masks.c:1956 +#: ../src/libs/masks.c:1933 msgid "smoothing" msgstr "Tasoitus" -#: ../src/libs/masks.c:1957 -msgid "" -"smoothing of brush strokes\n" -"stronger smoothing leads to fewer nodes and easier editing but with lower " -"control of accuracy." -msgstr "" -"Siveltimen vetojen tasoitus.\n" -"Suuri tasoitus pienentää siveltimen vedon pistemäärää ja on helpompi " -"hallita, mutta antaa heikomman tarkkuuden hallinnan." - -#: ../src/libs/metadata.c:64 +#: ../src/libs/metadata.c:60 msgid "metadata editor" msgstr "Metatietojen muokkain" -#: ../src/libs/metadata.c:206 ../src/libs/metadata.c:496 -msgid "<leave unchanged>" -msgstr "<jätä muuttumattomaksi>" - -#: ../src/libs/metadata.c:631 ../src/libs/metadata_view.c:1192 +#: ../src/libs/metadata.c:459 ../src/libs/metadata_view.c:1219 msgid "metadata settings" msgstr "Metatiedon asetukset" -#: ../src/libs/metadata.c:684 ../src/libs/metadata_view.c:1237 +#: ../src/libs/metadata.c:461 ../src/libs/metadata_view.c:1221 +msgid "_default" +msgstr "_Oletus" + +#: ../src/libs/metadata.c:516 ../src/libs/metadata_view.c:1267 msgid "visible" msgstr "Näkyvä" -#: ../src/libs/metadata.c:689 +#: ../src/libs/metadata.c:524 msgid "" "tick if the corresponding metadata is of interest for you\n" "it will be visible from metadata editor, collection and import module\n" @@ -22614,19 +23295,19 @@ "moduulissa\n" "lisäksi se asetetaan myös vietäviin kuviin." -#: ../src/libs/metadata.c:694 ../src/libs/tagging.c:1683 -#: ../src/libs/tagging.c:1827 +#: ../src/libs/metadata.c:529 ../src/libs/tagging.c:1705 +#: ../src/libs/tagging.c:1854 msgid "private" msgstr "Yksityinen" -#: ../src/libs/metadata.c:699 +#: ../src/libs/metadata.c:534 msgid "" "tick if you want to keep this information private (not exported with images)" msgstr "" "Valitse, jos haluat pitää kenttää vastaavan tiedon yksityisenä.\n" "Tietoa ei viedä kuviin." -#: ../src/libs/metadata.c:861 +#: ../src/libs/metadata.c:691 msgid "" "metadata text\n" "ctrl+enter inserts a new line (caution, may not be compatible with standard " @@ -22643,169 +23324,181 @@ "siinä tapauksessa oikea napsaus antaa mahdollisuuden valita niistä yhden.\n" "Paina ESC-näppäintä poistuaksesi ponnahdusikkunasta." -#: ../src/libs/metadata.c:906 +#: ../src/libs/metadata.c:736 msgid "write metadata for selected images" msgstr "Aseta metatiedot valittuihin kuviin." +#: ../src/libs/metadata.c:737 +msgid "cancel" +msgstr "Peruuta" + +#: ../src/libs/metadata.c:738 +msgid "ignore changed metadata" +msgstr "Älä huomioi muuttunutta metatietoa." + #. <title>\0<description>\0<rights>\0<creator>\0<publisher> -#: ../src/libs/metadata.c:965 +#: ../src/libs/metadata.c:793 msgid "CC BY" msgstr "CC BY" -#: ../src/libs/metadata.c:966 +#: ../src/libs/metadata.c:794 msgid "Creative Commons Attribution (CC BY)" msgstr "Creative Commons Nimeä (CC BY)" -#: ../src/libs/metadata.c:967 +#: ../src/libs/metadata.c:795 msgid "CC BY-SA" msgstr "CC BY-SA" -#: ../src/libs/metadata.c:968 +#: ../src/libs/metadata.c:796 msgid "Creative Commons Attribution-ShareAlike (CC BY-SA)" msgstr "Creative Commons Nimeä-JaaSamoin (CC BY-SA)" -#: ../src/libs/metadata.c:969 +#: ../src/libs/metadata.c:797 msgid "CC BY-ND" msgstr "CC BY-ND" -#: ../src/libs/metadata.c:970 +#: ../src/libs/metadata.c:798 msgid "Creative Commons Attribution-NoDerivs (CC BY-ND)" msgstr "Creative Commons Nimeä-EiMuutoksia (CC BY-ND)" -#: ../src/libs/metadata.c:971 +#: ../src/libs/metadata.c:799 msgid "CC BY-NC" msgstr "CC BY-NC" -#: ../src/libs/metadata.c:972 +#: ../src/libs/metadata.c:800 msgid "Creative Commons Attribution-NonCommercial (CC BY-NC)" msgstr "Creative Commons Nimeä-EiKaupallinen (CC BY-NC)" -#: ../src/libs/metadata.c:973 +#: ../src/libs/metadata.c:801 msgid "CC BY-NC-SA" msgstr "CC BY-NC-SA" -#: ../src/libs/metadata.c:974 +#: ../src/libs/metadata.c:802 msgid "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" msgstr "Creative Commons Nimeä-EiKaupallinen-JaaSamoin (CC BY-NC-SA)" -#: ../src/libs/metadata.c:975 +#: ../src/libs/metadata.c:803 msgid "CC BY-NC-ND" msgstr "CC BY-NC-ND" -#: ../src/libs/metadata.c:976 +#: ../src/libs/metadata.c:804 msgid "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" msgstr "Creative Commons Nimeä-EiKaupallinen-EiMuutoksia (CC BY-NC-ND)" -#: ../src/libs/metadata.c:977 ../src/libs/metadata.c:978 +#: ../src/libs/metadata.c:805 ../src/libs/metadata.c:806 msgid "all rights reserved" msgstr "Kaikki oikeudet pidätetään" #. internal -#: ../src/libs/metadata_view.c:123 +#: ../src/libs/metadata_view.c:125 msgid "filmroll" msgstr "Filmirulla" -#: ../src/libs/metadata_view.c:125 +#: ../src/libs/metadata_view.c:127 msgid "group id" msgstr "Ryhmän tunniste" -#: ../src/libs/metadata_view.c:127 +#: ../src/libs/metadata_view.c:129 msgid "version" msgstr "Versio" -#: ../src/libs/metadata_view.c:130 +#: ../src/libs/metadata_view.c:132 msgid "import timestamp" msgstr "Tuonnin aikaleima" -#: ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:133 msgid "change timestamp" msgstr "Muutoksen aikaleima" -#: ../src/libs/metadata_view.c:132 +#: ../src/libs/metadata_view.c:134 msgid "export timestamp" msgstr "Viennin aikaleima" -#: ../src/libs/metadata_view.c:133 +#: ../src/libs/metadata_view.c:135 msgid "print timestamp" msgstr "Tulostuksen aikaleima" -#: ../src/libs/metadata_view.c:134 +#: ../src/libs/metadata_view.c:136 msgid "flags" msgstr "Liput" -#: ../src/libs/metadata_view.c:144 +#: ../src/libs/metadata_view.c:146 +msgid "35mm equiv focal length" +msgstr "35mm vastaava polttoväli" + +#: ../src/libs/metadata_view.c:148 msgid "focus distance" msgstr "Tarkennusetäisyys" -#: ../src/libs/metadata_view.c:146 +#: ../src/libs/metadata_view.c:150 msgid "datetime" msgstr "Päivämäärä ja aika" -#: ../src/libs/metadata_view.c:149 +#: ../src/libs/metadata_view.c:153 msgid "export width" msgstr "Viennin leveys" -#: ../src/libs/metadata_view.c:150 +#: ../src/libs/metadata_view.c:154 msgid "export height" msgstr "Viennin korkeus" -#: ../src/libs/metadata_view.c:158 +#: ../src/libs/metadata_view.c:162 msgid "longitude" msgstr "Pituusaste" -#: ../src/libs/metadata_view.c:159 +#: ../src/libs/metadata_view.c:163 msgid "elevation" msgstr "Korkeus" -#: ../src/libs/metadata_view.c:163 +#: ../src/libs/metadata_view.c:167 msgid "categories" msgstr "Kategoriat" -#: ../src/libs/metadata_view.c:170 +#: ../src/libs/metadata_view.c:174 msgid "image information" msgstr "Kuvan tiedot" -#: ../src/libs/metadata_view.c:330 +#: ../src/libs/metadata_view.c:334 msgid "unused/deprecated" msgstr "Ei käytössä/vanhentunut" -#: ../src/libs/metadata_view.c:331 +#: ../src/libs/metadata_view.c:335 msgid "LDR" msgstr "LDR" -#: ../src/libs/metadata_view.c:334 +#: ../src/libs/metadata_view.c:338 msgid "marked for deletion" msgstr "Kuva on merkitty poistettavaksi" -#: ../src/libs/metadata_view.c:335 +#: ../src/libs/metadata_view.c:339 msgid "auto-applying presets applied" msgstr "Automaattiset esiasetukset käytössä" -#: ../src/libs/metadata_view.c:337 +#: ../src/libs/metadata_view.c:341 msgid "has .txt" msgstr "Sisältää .txt" -#: ../src/libs/metadata_view.c:338 +#: ../src/libs/metadata_view.c:342 msgid "has .wav" msgstr "Sisältää .wav" -#: ../src/libs/metadata_view.c:356 +#: ../src/libs/metadata_view.c:360 #, c-format msgid "image has %d star" msgid_plural "image has %d stars" msgstr[0] "Kuvalla on %d tähti" msgstr[1] "Kuvalla on %d tähteä" -#: ../src/libs/metadata_view.c:432 +#: ../src/libs/metadata_view.c:436 #, c-format msgid "loader: %s" msgstr "Latausohjelma: %s" -#: ../src/libs/metadata_view.c:623 +#: ../src/libs/metadata_view.c:626 msgid "<various values>" msgstr "<usetia arvoja>" -#: ../src/libs/metadata_view.c:636 +#: ../src/libs/metadata_view.c:639 #, c-format msgid "" "double-click to jump to film roll\n" @@ -22814,32 +23507,28 @@ "Kaksoisnapsauta siirtyäksesi filmirullaan\n" "%s." -#: ../src/libs/metadata_view.c:728 +#: ../src/libs/metadata_view.c:731 #, c-format msgid "%+.2f EV" msgstr "%+.2f Aukkoa" -#: ../src/libs/metadata_view.c:735 -#, c-format -msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" -msgstr "%.1f mm (%.1f mm FF vastaava, kroppi %.1f)" - -#: ../src/libs/metadata_view.c:740 +#: ../src/libs/metadata_view.c:737 ../src/libs/metadata_view.c:749 +#: ../src/libs/metadata_view.c:754 #, c-format msgid "%.1f mm" msgstr "%.1f mm" -#: ../src/libs/metadata_view.c:751 +#: ../src/libs/metadata_view.c:778 #, c-format msgid "infinity" msgstr "Ääretön" -#: ../src/libs/metadata_view.c:755 +#: ../src/libs/metadata_view.c:782 #, c-format msgid "%.2f m" msgstr "%.2f m" -#: ../src/libs/metadata_view.c:1232 +#: ../src/libs/metadata_view.c:1262 msgid "" "drag and drop one row at a time until you get the desired order\n" "untick to hide metadata which are not of interest for you\n" @@ -22849,7 +23538,7 @@ "Poista valinnat metatietoilta jotka eivät kiinnosta sinua.\n" "Jos muita asetuksia tarvitaan, käytä esiasetuksia." -#: ../src/libs/metadata_view.c:1390 +#: ../src/libs/metadata_view.c:1423 msgid "jump to film roll" msgstr "Siirry filmirullaan" @@ -22874,7 +23563,7 @@ msgid "recent collections settings" msgstr "Edellisten kokoelmien asetukset" -#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1769 +#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1753 msgid "workflow: scene-referred" msgstr "Työnkulku: Näkymä-viitattu" @@ -22892,12 +23581,12 @@ #. FIXME don't check here if on/off is enabled, because it depends on image (reload_defaults) #. respond later to image changed signal -#: ../src/libs/modulegroups.c:306 ../src/libs/modulegroups.c:318 -#: ../src/libs/modulegroups.c:2427 ../src/libs/modulegroups.c:2429 +#: ../src/libs/modulegroups.c:307 ../src/libs/modulegroups.c:319 +#: ../src/libs/modulegroups.c:2411 ../src/libs/modulegroups.c:2413 msgid "on-off" msgstr "ON-OFF" -#: ../src/libs/modulegroups.c:498 ../src/libs/modulegroups.c:501 +#: ../src/libs/modulegroups.c:501 ../src/libs/modulegroups.c:504 msgid "" "this quick access widget is disabled as there are multiple instances of this " "module present. Please use the full module to access this widget..." @@ -22906,166 +23595,166 @@ "useita instansseja käytössä. Avaa moduuli tämän pienoisohjelman " "käyttämiseksi..." -#: ../src/libs/modulegroups.c:591 +#: ../src/libs/modulegroups.c:594 msgid "(some features may only be available in the full module interface)" msgstr "" "(osa ominaisuuksista saattaa olla saatavilla vain täydessä moduulin " "käyttöliittymässä)" -#: ../src/libs/modulegroups.c:635 +#: ../src/libs/modulegroups.c:632 #, c-format msgid "go to the full version of the %s module" msgstr "Siirry moduulin %s täyteen käyttöliittymään." -#: ../src/libs/modulegroups.c:1556 ../src/libs/modulegroups.c:1641 -#: ../src/libs/modulegroups.c:1677 ../src/libs/modulegroups.c:1727 -#: ../src/libs/modulegroups.c:1817 +#: ../src/libs/modulegroups.c:1538 ../src/libs/modulegroups.c:1624 +#: ../src/libs/modulegroups.c:1660 ../src/libs/modulegroups.c:1710 +#: ../src/libs/modulegroups.c:1801 msgctxt "modulegroup" msgid "base" msgstr "Yleinen" -#: ../src/libs/modulegroups.c:1575 +#: ../src/libs/modulegroups.c:1557 msgctxt "modulegroup" msgid "tone" msgstr "Sävy" -#: ../src/libs/modulegroups.c:1584 ../src/libs/modulegroups.c:1691 -#: ../src/libs/modulegroups.c:1741 +#: ../src/libs/modulegroups.c:1566 ../src/libs/modulegroups.c:1674 +#: ../src/libs/modulegroups.c:1724 msgctxt "modulegroup" msgid "color" msgstr "Väri" -#: ../src/libs/modulegroups.c:1599 ../src/libs/modulegroups.c:1699 -#: ../src/libs/modulegroups.c:1746 +#: ../src/libs/modulegroups.c:1582 ../src/libs/modulegroups.c:1682 +#: ../src/libs/modulegroups.c:1730 msgctxt "modulegroup" msgid "correct" msgstr "Korjaus" -#: ../src/libs/modulegroups.c:1617 ../src/libs/modulegroups.c:1711 -#: ../src/libs/modulegroups.c:1758 ../src/libs/modulegroups.c:2321 +#: ../src/libs/modulegroups.c:1600 ../src/libs/modulegroups.c:1694 +#: ../src/libs/modulegroups.c:1742 ../src/libs/modulegroups.c:2305 msgctxt "modulegroup" msgid "effect" msgstr "Tehoste" -#: ../src/libs/modulegroups.c:1635 +#: ../src/libs/modulegroups.c:1618 msgid "modules: all" msgstr "Moduulit: Kaikki" -#: ../src/libs/modulegroups.c:1656 +#: ../src/libs/modulegroups.c:1639 msgctxt "modulegroup" msgid "grading" msgstr "Värimäärittely" -#: ../src/libs/modulegroups.c:1664 ../src/libs/modulegroups.c:2325 +#: ../src/libs/modulegroups.c:1647 ../src/libs/modulegroups.c:2309 msgctxt "modulegroup" msgid "effects" msgstr "Tehosteet" -#: ../src/libs/modulegroups.c:1672 +#: ../src/libs/modulegroups.c:1655 msgid "workflow: beginner" msgstr "Työnkulku: Aloittelija" -#: ../src/libs/modulegroups.c:1721 +#: ../src/libs/modulegroups.c:1704 msgid "workflow: display-referred" msgstr "Työnkulku: Näyttö-viitattu" -#: ../src/libs/modulegroups.c:1773 +#: ../src/libs/modulegroups.c:1757 msgid "search only" msgstr "Vain haku" -#: ../src/libs/modulegroups.c:1779 ../src/libs/modulegroups.c:2090 -#: ../src/libs/modulegroups.c:2599 +#: ../src/libs/modulegroups.c:1763 ../src/libs/modulegroups.c:2074 +#: ../src/libs/modulegroups.c:2583 msgctxt "modulegroup" msgid "deprecated" msgstr "Vanhentuneet" -#: ../src/libs/modulegroups.c:1792 +#: ../src/libs/modulegroups.c:1776 msgid "previous config" msgstr "Edellinen asetus" -#: ../src/libs/modulegroups.c:1793 +#: ../src/libs/modulegroups.c:1777 msgid "previous layout" msgstr "Edellinen asettelu" -#: ../src/libs/modulegroups.c:1797 +#: ../src/libs/modulegroups.c:1781 msgid "previous config with new layout" msgstr "Edellinen konfiguraatio uudella asettelulla" -#: ../src/libs/modulegroups.c:1957 ../src/libs/modulegroups.c:2472 -#: ../src/libs/modulegroups.c:2484 +#: ../src/libs/modulegroups.c:1941 ../src/libs/modulegroups.c:2456 +#: ../src/libs/modulegroups.c:2468 msgid "remove this widget" msgstr "Poista tämä pienoisohjelma" -#: ../src/libs/modulegroups.c:2107 ../src/libs/modulegroups.c:2347 +#: ../src/libs/modulegroups.c:2091 ../src/libs/modulegroups.c:2331 msgid "remove this module" msgstr "Poista tämä moduuli" #. does it belong to recommended modules ? -#: ../src/libs/modulegroups.c:2316 +#: ../src/libs/modulegroups.c:2300 msgid "base" msgstr "Yleinen" -#: ../src/libs/modulegroups.c:2319 +#: ../src/libs/modulegroups.c:2303 msgid "tone" msgstr "Sävy" -#: ../src/libs/modulegroups.c:2322 +#: ../src/libs/modulegroups.c:2306 msgid "technical" msgstr "Tekniset" -#: ../src/libs/modulegroups.c:2323 +#: ../src/libs/modulegroups.c:2307 msgid "grading" msgstr "Värimäärittely" -#: ../src/libs/modulegroups.c:2329 ../src/libs/modulegroups.c:2337 +#: ../src/libs/modulegroups.c:2313 ../src/libs/modulegroups.c:2321 msgid "add this module" msgstr "Lisää tämä moduuli" #. show the submenu with all the modules -#: ../src/libs/modulegroups.c:2359 ../src/libs/modulegroups.c:2559 +#: ../src/libs/modulegroups.c:2343 ../src/libs/modulegroups.c:2543 msgid "all available modules" msgstr "Kaikki käytettävissä olevat moduulit" -#: ../src/libs/modulegroups.c:2367 +#: ../src/libs/modulegroups.c:2351 msgid "add module" msgstr "Lisää moduuli" -#: ../src/libs/modulegroups.c:2372 +#: ../src/libs/modulegroups.c:2356 msgid "remove module" msgstr "Poista moduuli" -#: ../src/libs/modulegroups.c:2478 +#: ../src/libs/modulegroups.c:2462 msgid "header needed for other widgets" msgstr "Otsikko tarvitaan muille pienoisohjelmille" -#: ../src/libs/modulegroups.c:2494 ../src/libs/modulegroups.c:2501 +#: ../src/libs/modulegroups.c:2478 ../src/libs/modulegroups.c:2485 msgid "add this widget" msgstr "Lisää tämä pienoisohjelma" -#: ../src/libs/modulegroups.c:2514 +#: ../src/libs/modulegroups.c:2498 msgid "currently invisible" msgstr "Nyt ei näkyvissä" -#: ../src/libs/modulegroups.c:2543 +#: ../src/libs/modulegroups.c:2527 msgid "add widget" msgstr "Lisää pienoisohjelma" -#: ../src/libs/modulegroups.c:2548 +#: ../src/libs/modulegroups.c:2532 msgid "remove widget" msgstr "Poista pienoisohjelma" -#: ../src/libs/modulegroups.c:2653 +#: ../src/libs/modulegroups.c:2637 msgid "show all history modules" msgstr "Näytä kaikki historian moduulit" -#: ../src/libs/modulegroups.c:2656 ../src/libs/modulegroups.c:3834 +#: ../src/libs/modulegroups.c:2640 ../src/libs/modulegroups.c:3836 msgid "" "show modules that are present in the history stack, regardless of whether or " "not they are currently enabled" msgstr "" "Näytä muokkaushistoriassa olevat moduulit, vaikka ne eivät olisi käytössä." -#: ../src/libs/modulegroups.c:2747 ../src/libs/modulegroups.c:2816 +#: ../src/libs/modulegroups.c:2731 ../src/libs/modulegroups.c:2823 msgid "" "the following modules are deprecated because they have internal design " "mistakes that can't be corrected and alternative modules that correct them.\n" @@ -23077,19 +23766,19 @@ "Vanhentuneiden moduulien käyttö muokkauksiin estetään seuraavassa " "julkaisussa." -#: ../src/libs/modulegroups.c:2775 ../src/libs/modulegroups.c:2776 +#: ../src/libs/modulegroups.c:2782 ../src/libs/modulegroups.c:2783 msgid "quick access panel" msgstr "Pikavalintapaneeli" -#: ../src/libs/modulegroups.c:2786 +#: ../src/libs/modulegroups.c:2793 msgid "show only active modules" msgstr "Näytä ainoastaan aktiiviset moduulit" -#: ../src/libs/modulegroups.c:2787 +#: ../src/libs/modulegroups.c:2794 msgid "active modules" msgstr "Aktiiviset moduulit" -#: ../src/libs/modulegroups.c:2792 +#: ../src/libs/modulegroups.c:2799 msgid "" "presets\n" "ctrl+click to manage" @@ -23097,143 +23786,147 @@ "Esiasetukset\n" "CTRL+napsaus muokkaa" -#: ../src/libs/modulegroups.c:2798 +#: ../src/libs/modulegroups.c:2805 msgid "search modules" msgstr "Hae moduuleja" -#: ../src/libs/modulegroups.c:2799 +#: ../src/libs/modulegroups.c:2806 msgid "search modules by name or tag" msgstr "Hae moduuleja nimellä tai tunnisteella" -#: ../src/libs/modulegroups.c:2809 +#: ../src/libs/modulegroups.c:2816 msgid "clear text" msgstr "Tyhjennä teksti" -#: ../src/libs/modulegroups.c:3051 +#: ../src/libs/modulegroups.c:3056 msgid "basic icon" msgstr "Peruskuvake" -#: ../src/libs/modulegroups.c:3061 +#: ../src/libs/modulegroups.c:3066 msgid "active icon" msgstr "Aktiivisten moduulien kuvake" -#: ../src/libs/modulegroups.c:3071 +#: ../src/libs/modulegroups.c:3076 msgid "color icon" msgstr "Värikuvake" -#: ../src/libs/modulegroups.c:3081 +#: ../src/libs/modulegroups.c:3086 msgid "correct icon" msgstr "Korjauskuvake" -#: ../src/libs/modulegroups.c:3091 +#: ../src/libs/modulegroups.c:3096 msgid "effect icon" msgstr "Tehostekuvake" -#: ../src/libs/modulegroups.c:3101 +#: ../src/libs/modulegroups.c:3106 msgid "favorites icon" msgstr "Suosikkien kuvake" -#: ../src/libs/modulegroups.c:3111 +#: ../src/libs/modulegroups.c:3116 msgid "tone icon" msgstr "Sävykuvake" -#: ../src/libs/modulegroups.c:3121 +#: ../src/libs/modulegroups.c:3126 msgid "grading icon" msgstr "Värimäärittelyn kuvake" -#: ../src/libs/modulegroups.c:3131 +#: ../src/libs/modulegroups.c:3136 msgid "technical icon" msgstr "Tekninenkuvake" -#: ../src/libs/modulegroups.c:3164 +#: ../src/libs/modulegroups.c:3169 msgid "quick access panel widgets" msgstr "Pikavalintapaneelin pienoisohjelmat" -#: ../src/libs/modulegroups.c:3166 +#: ../src/libs/modulegroups.c:3171 msgid "quick access" msgstr "Pikavalinnat" -#: ../src/libs/modulegroups.c:3186 +#: ../src/libs/modulegroups.c:3191 msgid "add widget to the quick access panel" msgstr "Lisää pienoisohjelma pikavalintapaneeliin" -#: ../src/libs/modulegroups.c:3218 +#: ../src/libs/modulegroups.c:3223 msgid "group icon" msgstr "Ryhmän kuvake" -#: ../src/libs/modulegroups.c:3227 +#: ../src/libs/modulegroups.c:3232 msgid "group name" msgstr "Ryhmän nimi" -#: ../src/libs/modulegroups.c:3238 +#: ../src/libs/modulegroups.c:3243 msgid "remove group" msgstr "Poista ryhmä" -#: ../src/libs/modulegroups.c:3264 +#: ../src/libs/modulegroups.c:3269 msgid "move group to the left" msgstr "Siirrä ryhmä vasemmalle" -#: ../src/libs/modulegroups.c:3272 +#: ../src/libs/modulegroups.c:3277 msgid "add module to the group" msgstr "Lisää moduuli ryhmään" -#: ../src/libs/modulegroups.c:3283 +#: ../src/libs/modulegroups.c:3288 msgid "move group to the right" msgstr "Siirrä ryhmä oikealle" -#: ../src/libs/modulegroups.c:3463 +#: ../src/libs/modulegroups.c:3464 msgid "rename preset" msgstr "Nimeä esiasetus uudelleen" -#: ../src/libs/modulegroups.c:3470 +#: ../src/libs/modulegroups.c:3467 +msgid "_rename" +msgstr "_Nimeä uudelleen" + +#: ../src/libs/modulegroups.c:3473 msgid "new preset name:" msgstr "Esiasetuksen uusi nimi:" -#: ../src/libs/modulegroups.c:3471 +#: ../src/libs/modulegroups.c:3474 msgid "a preset with this name already exists!" msgstr "Esiasetus tällä nimellä on jo olemassa!" -#: ../src/libs/modulegroups.c:3804 +#: ../src/libs/modulegroups.c:3806 msgid "preset: " msgstr "Esiasetus: " -#: ../src/libs/modulegroups.c:3811 +#: ../src/libs/modulegroups.c:3813 msgid "remove the preset" msgstr "Poista esiasetus" -#: ../src/libs/modulegroups.c:3813 +#: ../src/libs/modulegroups.c:3815 msgid "duplicate the preset" msgstr "Kahdenna esiasetus" -#: ../src/libs/modulegroups.c:3815 +#: ../src/libs/modulegroups.c:3817 msgid "rename the preset" msgstr "Nimeä esiasetus uudelleen" -#: ../src/libs/modulegroups.c:3817 +#: ../src/libs/modulegroups.c:3819 msgid "create a new empty preset" msgstr "Luo uusi tyhjä esiasetus" -#: ../src/libs/modulegroups.c:3825 +#: ../src/libs/modulegroups.c:3827 msgid "show search line" msgstr "Näytä haun teksti" -#: ../src/libs/modulegroups.c:3828 +#: ../src/libs/modulegroups.c:3830 msgid "show quick access panel" msgstr "Näytä pikavalintapaneeli" -#: ../src/libs/modulegroups.c:3831 +#: ../src/libs/modulegroups.c:3833 msgid "show all history modules in active group" msgstr "Näytä kaikki historian moduulit aktiivisessa ryhmässä" -#: ../src/libs/modulegroups.c:3843 +#: ../src/libs/modulegroups.c:3845 msgid "auto-apply this preset" msgstr "Ota tämä esiasetus automaattisesti käyttöön" -#: ../src/libs/modulegroups.c:3858 +#: ../src/libs/modulegroups.c:3860 msgid "module groups" msgstr "Moduuliryhmät" -#: ../src/libs/modulegroups.c:3875 +#: ../src/libs/modulegroups.c:3877 msgid "" "this is a built-in read-only preset. duplicate it if you want to make changes" msgstr "" @@ -23244,16 +23937,16 @@ msgid "navigation" msgstr "Navigointi" -#: ../src/libs/navigation.c:111 ../src/libs/navigation.c:191 +#: ../src/libs/navigation.c:112 ../src/libs/navigation.c:194 msgctxt "navigationbox" msgid "fill" msgstr "Täytä" -#: ../src/libs/navigation.c:114 ../src/libs/navigation.c:189 +#: ../src/libs/navigation.c:115 ../src/libs/navigation.c:192 msgid "small" msgstr "pieni" -#: ../src/libs/navigation.c:151 +#: ../src/libs/navigation.c:154 msgid "" "navigation\n" "click or drag to position zoomed area in center view" @@ -23261,35 +23954,35 @@ "Navigointi.\n" "Napsauta tai raahaa zoomattu alue näkymän keskelle." -#: ../src/libs/navigation.c:173 +#: ../src/libs/navigation.c:176 msgid "hide navigation thumbnail" msgstr "Piilota navigoinnin esikatselu" -#: ../src/libs/navigation.c:187 +#: ../src/libs/navigation.c:190 msgid "image zoom level" msgstr "Kuvan zoomauksen taso" -#: ../src/libs/navigation.c:192 +#: ../src/libs/navigation.c:195 msgid "50%" msgstr "50%" -#: ../src/libs/navigation.c:193 +#: ../src/libs/navigation.c:196 msgid "100%" msgstr "100%" -#: ../src/libs/navigation.c:194 +#: ../src/libs/navigation.c:197 msgid "200%" msgstr "200%" -#: ../src/libs/navigation.c:195 +#: ../src/libs/navigation.c:198 msgid "400%" msgstr "400%" -#: ../src/libs/navigation.c:196 +#: ../src/libs/navigation.c:199 msgid "800%" msgstr "800%" -#: ../src/libs/navigation.c:197 +#: ../src/libs/navigation.c:200 msgid "1600%" msgstr "1600%" @@ -23369,7 +24062,7 @@ #: ../src/libs/print_settings.c:2463 msgid "printer ICC profiles" -msgstr "Tulostimen ICC-väriprofiilit" +msgstr "tulostimen ICC-väriprofiilit" #: ../src/libs/print_settings.c:2484 msgid "black point compensation" @@ -23533,15 +24226,15 @@ msgid "print with current settings" msgstr "Tulosta nykyisillä asetuksilla" -#: ../src/libs/select.c:136 +#: ../src/libs/select.c:137 msgid "select all images in current collection" msgstr "Valitse kaikki kuvat kokoelmasta." -#: ../src/libs/select.c:140 +#: ../src/libs/select.c:141 msgid "clear selection" msgstr "Tyhjennä valinnat." -#: ../src/libs/select.c:144 +#: ../src/libs/select.c:145 msgid "" "select unselected images\n" "in current collection" @@ -23549,7 +24242,7 @@ "Valitse ainoastaan kuvat mitkä eivät\n" "ole valittuna nykyisestä kokoelmasta." -#: ../src/libs/select.c:148 +#: ../src/libs/select.c:149 msgid "" "select all images which are in the same\n" "film roll as the selected images" @@ -23557,7 +24250,7 @@ "Valitse kaikki kuvat mitkä ovat samassa\n" "filmirullassa kuin valitut kuvat." -#: ../src/libs/select.c:152 +#: ../src/libs/select.c:153 msgid "" "select untouched images in\n" "current collection" @@ -23577,29 +24270,33 @@ msgid "create" msgstr "Luo" -#: ../src/libs/snapshots.c:92 +#: ../src/libs/snapshots.c:88 msgid "snapshots" msgstr "Vedokset" -#: ../src/libs/snapshots.c:141 +#: ../src/libs/snapshots.c:137 msgctxt "snapshot sign" msgid "S" msgstr "S" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:662 +msgid "snapshots for removed image have been deleted" +msgstr "Poistetun kuvan vedokset on poistettu" + +#: ../src/libs/snapshots.c:703 #, c-format msgid "↗ %s '%s'" msgstr "↗ %s '%s'" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:703 msgid "this snapshot was taken from" msgstr "Tämä vedos otetiin" -#: ../src/libs/snapshots.c:663 +#: ../src/libs/snapshots.c:742 msgid "take snapshot" msgstr "Ota vedos" -#: ../src/libs/snapshots.c:665 +#: ../src/libs/snapshots.c:744 msgid "" "take snapshot to compare with another image or the same image at another " "stage of development" @@ -23607,7 +24304,7 @@ "Ota vedos vertaillaksesi sitä toisiin kuviin tai saman kuvan toiseen " "versioon." -#: ../src/libs/snapshots.c:734 +#: ../src/libs/snapshots.c:790 msgid "toggle last snapshot" msgstr "Vaihda edelliseen vedokseen" @@ -23624,7 +24321,11 @@ msgstr[0] "Haluatko varmasti poistaa %d tyylin?" msgstr[1] "Haluatko varmasti poistaa %d tyyliä?" -#: ../src/libs/styles.c:444 ../src/libs/styles.c:627 +#: ../src/libs/styles.c:441 ../src/libs/styles.c:626 +msgid "_overwrite" +msgstr "_Ylikirjoita" + +#: ../src/libs/styles.c:446 ../src/libs/styles.c:631 #, c-format msgid "" "style `%s' already exists.\n" @@ -23633,24 +24334,24 @@ "Tyyli `%s' on jo olemassa.\n" "Haluatko ylikirjoittaa aiemman tyylin?\n" -#: ../src/libs/styles.c:446 ../src/libs/styles.c:629 +#: ../src/libs/styles.c:448 ../src/libs/styles.c:633 msgid "apply this option to all existing styles" msgstr "Käytä tätä asetusta kaikille olemassa oleville tyyleille." -#: ../src/libs/styles.c:509 +#: ../src/libs/styles.c:511 #, c-format msgid "style %s was successfully exported" msgstr "Tyyli %s vietiin onnistuneesti" -#: ../src/libs/styles.c:526 +#: ../src/libs/styles.c:528 msgid "select style" msgstr "Valitse tyyli" -#: ../src/libs/styles.c:536 +#: ../src/libs/styles.c:538 msgid "darktable style files" msgstr "Darktablen tyylitiedostot" -#: ../src/libs/styles.c:815 +#: ../src/libs/styles.c:819 msgid "" "available styles,\n" "double-click to apply" @@ -23658,73 +24359,73 @@ "Kaksoisnapsauta tyylin nimeä\n" "ottaaksesi sen käyttöön." -#: ../src/libs/styles.c:824 ../src/libs/styles.c:825 +#: ../src/libs/styles.c:828 ../src/libs/styles.c:829 msgid "filter style names" msgstr "Suodata tyylin nimet" -#: ../src/libs/styles.c:837 +#: ../src/libs/styles.c:841 msgid "create duplicate" msgstr "Luo kuvasta kopio" -#: ../src/libs/styles.c:844 +#: ../src/libs/styles.c:848 msgid "creates a duplicate of the image before applying style" msgstr "Luo kopio kuvasta ennen tyylin käyttöönottoa." -#: ../src/libs/styles.c:862 +#: ../src/libs/styles.c:866 msgid "create..." msgstr "Luo..." -#: ../src/libs/styles.c:864 +#: ../src/libs/styles.c:868 msgid "create styles from history stack of selected images" msgstr "Luo uusi tyyli valittujen kuvien muokkaushistoriasta." -#: ../src/libs/styles.c:869 ../src/libs/tagging.c:2252 +#: ../src/libs/styles.c:873 ../src/libs/tagging.c:2283 msgid "edit..." msgstr "Muokkaa" -#: ../src/libs/styles.c:871 +#: ../src/libs/styles.c:875 msgid "edit the selected styles in list above" msgstr "Muokkaa listalta valittuja tyylejä." -#: ../src/libs/styles.c:878 +#: ../src/libs/styles.c:882 msgid "removes the selected styles in list above" msgstr "Poistaa listalta valitut tyylit." -#: ../src/libs/styles.c:885 +#: ../src/libs/styles.c:889 msgid "import styles from a style files" msgstr "Tuo tyylit tiedostoista." -#: ../src/libs/styles.c:892 +#: ../src/libs/styles.c:896 msgid "export the selected styles into a style files" msgstr "Vie valitut tyylit tiedostoon." -#: ../src/libs/styles.c:899 +#: ../src/libs/styles.c:903 msgid "apply the selected styles in list above to selected images" msgstr "Aseta listalta valitut tyylit valittuihin kuviin." -#: ../src/libs/tagging.c:105 +#: ../src/libs/tagging.c:109 msgid "tagging" msgstr "Tunnisteet" -#: ../src/libs/tagging.c:1255 +#: ../src/libs/tagging.c:1258 msgid "attach tag to all" msgstr "Liitä tunniste kaikkiin" -#: ../src/libs/tagging.c:1263 ../src/libs/tagging.c:2225 +#: ../src/libs/tagging.c:1266 ../src/libs/tagging.c:2256 msgid "detach tag" msgstr "Irrota tunniste" -#: ../src/libs/tagging.c:1483 +#: ../src/libs/tagging.c:1486 msgid "delete tag?" msgstr "Poista tunniste?" -#: ../src/libs/tagging.c:1490 ../src/libs/tagging.c:1578 -#: ../src/libs/tagging.c:1789 ../src/libs/tagging.c:2063 +#: ../src/libs/tagging.c:1496 ../src/libs/tagging.c:1587 +#: ../src/libs/tagging.c:1814 ../src/libs/tagging.c:2093 #, c-format msgid "selected: %s" msgstr "Valittu: %s" -#: ../src/libs/tagging.c:1497 +#: ../src/libs/tagging.c:1503 #, c-format msgid "" "do you really want to delete the tag `%s'?\n" @@ -23739,73 +24440,73 @@ "Haluatko varmasti poistaa tunnisteen `%s'?\n" "%d kuvaa sisältää tunnisteen!" -#: ../src/libs/tagging.c:1531 +#: ../src/libs/tagging.c:1537 #, c-format msgid "tag %s removed" msgstr "Tunniste %s poistettu" -#: ../src/libs/tagging.c:1571 +#: ../src/libs/tagging.c:1577 msgid "delete node?" msgstr "Poista solmu?" -#: ../src/libs/tagging.c:1585 +#: ../src/libs/tagging.c:1594 #, c-format msgid "<u>%d</u> tag will be deleted" msgid_plural "<u>%d</u> tags will be deleted" msgstr[0] "<u>%d</u> tunniste poistetaan." msgstr[1] "<u>%d</u> tunnistetta poistetaan." -#: ../src/libs/tagging.c:1590 ../src/libs/tagging.c:1801 -#: ../src/libs/tagging.c:2075 +#: ../src/libs/tagging.c:1599 ../src/libs/tagging.c:1826 +#: ../src/libs/tagging.c:2105 #, c-format msgid "<u>%d</u> image will be updated" msgid_plural "<u>%d</u> images will be updated" msgstr[0] "<u>%d</u> kuva päivitetään." msgstr[1] "<u>%d</u> kuvaa päivitetään." -#: ../src/libs/tagging.c:1616 +#: ../src/libs/tagging.c:1625 #, c-format msgid "%d tags removed" msgstr "%d tunnistetta tuotu." -#: ../src/libs/tagging.c:1652 +#: ../src/libs/tagging.c:1668 msgid "create tag" msgstr "Luo tunniste" -#: ../src/libs/tagging.c:1662 ../src/libs/tagging.c:1809 +#: ../src/libs/tagging.c:1681 ../src/libs/tagging.c:1834 msgid "name: " msgstr "Nimi:" -#: ../src/libs/tagging.c:1674 +#: ../src/libs/tagging.c:1696 #, c-format msgid "add to: \"%s\" " msgstr "Lisää kohteeseen: \"%s\" " -#: ../src/libs/tagging.c:1680 ../src/libs/tagging.c:1824 +#: ../src/libs/tagging.c:1702 ../src/libs/tagging.c:1851 msgid "category" msgstr "Kategoria" -#: ../src/libs/tagging.c:1689 ../src/libs/tagging.c:1833 +#: ../src/libs/tagging.c:1711 ../src/libs/tagging.c:1860 msgid "synonyms: " msgstr "Synonyymit: " -#: ../src/libs/tagging.c:1706 ../src/libs/tagging.c:1855 -#: ../src/libs/tagging.c:2097 +#: ../src/libs/tagging.c:1728 ../src/libs/tagging.c:1882 +#: ../src/libs/tagging.c:2128 msgid "empty tag is not allowed, aborting" msgstr "Tyhjä tunniste ei ole sallittua, keskeytetään" -#: ../src/libs/tagging.c:1717 +#: ../src/libs/tagging.c:1739 msgid "tag name already exists. aborting." msgstr "Tunnisteen nimi on jo olemassa, keskeytetään." -#: ../src/libs/tagging.c:1796 ../src/libs/tagging.c:2070 +#: ../src/libs/tagging.c:1821 ../src/libs/tagging.c:2100 #, c-format msgid "<u>%d</u> tag will be updated" msgid_plural "<u>%d</u> tags will be updated" msgstr[0] "<u>%d</u> tunniste päivitetään." msgstr[1] "<u>%d</u> tunnistetta päivitetään." -#: ../src/libs/tagging.c:1857 +#: ../src/libs/tagging.c:1884 msgid "" "'|' character is not allowed for renaming tag.\n" "to modify the hierarchy use rename path instead. Aborting." @@ -23813,100 +24514,100 @@ "'|' -merkki ei ole sallittu tunnisteiden uudelleen nimeämisessä.\n" "Muokataksesi hierarkiaa, nimeä polku uudestaan. Keskeytetään." -#: ../src/libs/tagging.c:1896 ../src/libs/tagging.c:2004 +#: ../src/libs/tagging.c:1923 ../src/libs/tagging.c:2031 #, c-format msgid "at least one new tag name (%s) already exists, aborting" msgstr "Vähintään yksi uusi tunnisteen nimi (%s) on jo olemassa, keskeytetään" -#: ../src/libs/tagging.c:2056 +#: ../src/libs/tagging.c:2083 msgid "change path" msgstr "Muuta polku" -#: ../src/libs/tagging.c:2099 +#: ../src/libs/tagging.c:2130 msgid "'|' misplaced, empty tag is not allowed, aborting" msgstr "'|' väärässä paikassa, tyhjä tunniste ei ole sallittu, keskeytetään." -#: ../src/libs/tagging.c:2195 +#: ../src/libs/tagging.c:2226 #, c-format msgid "tag %s created" msgstr "Tunniste %s luotu" -#: ../src/libs/tagging.c:2221 +#: ../src/libs/tagging.c:2252 msgid "attach tag" msgstr "Liitä tunniste" -#: ../src/libs/tagging.c:2234 +#: ../src/libs/tagging.c:2265 msgid "create tag..." msgstr "Luo tunniste..." -#: ../src/libs/tagging.c:2240 +#: ../src/libs/tagging.c:2271 msgid "delete tag" msgstr "Poista tunniste" -#: ../src/libs/tagging.c:2247 +#: ../src/libs/tagging.c:2278 msgid "delete node" msgstr "Poista solmu" -#: ../src/libs/tagging.c:2260 +#: ../src/libs/tagging.c:2291 msgid "change path..." msgstr "Muuta polku..." -#: ../src/libs/tagging.c:2270 +#: ../src/libs/tagging.c:2301 msgid "set as a tag" msgstr "Aseta tunnisteeksi" -#: ../src/libs/tagging.c:2281 +#: ../src/libs/tagging.c:2312 msgid "copy to entry" msgstr "Kopioi merkintään" -#: ../src/libs/tagging.c:2298 +#: ../src/libs/tagging.c:2329 msgid "go to tag collection" msgstr "Siirry tunnisteiden kokoelmaan" -#: ../src/libs/tagging.c:2304 +#: ../src/libs/tagging.c:2335 msgid "go back to work" msgstr "Siirry takaisin työhön" -#: ../src/libs/tagging.c:2461 +#: ../src/libs/tagging.c:2492 #, c-format msgid "%s" msgstr "%s" -#: ../src/libs/tagging.c:2462 +#: ../src/libs/tagging.c:2493 msgid "(private)" msgstr "(yksityinen)" -#: ../src/libs/tagging.c:2488 +#: ../src/libs/tagging.c:2519 msgid "select a keyword file" msgstr "Valitse avainsanatiedosto" -#: ../src/libs/tagging.c:2501 +#: ../src/libs/tagging.c:2532 msgid "error importing tags" msgstr "Virhe tunnisteiden tuonnissa" -#: ../src/libs/tagging.c:2503 +#: ../src/libs/tagging.c:2534 #, c-format msgid "%zd tags imported" msgstr "%zd tunnistetta tuotu." -#: ../src/libs/tagging.c:2524 +#: ../src/libs/tagging.c:2555 msgid "select file to export to" msgstr "Valitse vietävä tiedosto" -#: ../src/libs/tagging.c:2538 +#: ../src/libs/tagging.c:2569 msgid "error exporting tags" msgstr "Virhe tunnisteiden viennissä" -#: ../src/libs/tagging.c:2540 +#: ../src/libs/tagging.c:2571 #, c-format msgid "%zd tags exported" msgstr "%zd tunnistetta viety." -#: ../src/libs/tagging.c:2964 +#: ../src/libs/tagging.c:2995 msgid "drop to root" msgstr "Siirry juureen" -#: ../src/libs/tagging.c:3100 +#: ../src/libs/tagging.c:3131 msgid "" "attached tags\n" "press Delete or double-click to detach\n" @@ -23918,47 +24619,47 @@ "Oikea napsaus näyttää muut tunnisteen toiminnot.\n" "Tab siirtää kohdistuksen syötekenttään." -#: ../src/libs/tagging.c:3111 +#: ../src/libs/tagging.c:3142 msgid "attach" msgstr "Liitä" -#: ../src/libs/tagging.c:3112 +#: ../src/libs/tagging.c:3143 msgid "attach tag to all selected images" msgstr "Liitä tunniste valittuihin kuviin." -#: ../src/libs/tagging.c:3115 +#: ../src/libs/tagging.c:3146 msgid "detach" msgstr "Irrota" -#: ../src/libs/tagging.c:3116 +#: ../src/libs/tagging.c:3147 msgid "detach tag from all selected images" msgstr "Poista tunniste valituista kuvista." -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "toggle list with / without hierarchy" msgstr "Valitse näytetäänkö listan tunnisteiden hierarkia." -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "hide" msgstr "Piilota" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "toggle sort by name or by count" msgstr "Valitse lajittelu nimeen tai määrään perustuvaksi." -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "sort" msgstr "Lajittele" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "toggle show or not darktable tags" msgstr "Valitse näytetäänkö Darktablen tunnisteet." -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "dttags" msgstr "Darktablen tunnisteet" -#: ../src/libs/tagging.c:3149 +#: ../src/libs/tagging.c:3180 msgid "" "enter tag name\n" "press Enter to create a new tag and attach it on selected images\n" @@ -23973,11 +24674,11 @@ "Paina SHIFT+Tabulaattori valitaksesi ensimmäisen käyttäjän liittämistä " "tunnisteista." -#: ../src/libs/tagging.c:3160 ../src/libs/tagging.c:3166 +#: ../src/libs/tagging.c:3191 ../src/libs/tagging.c:3197 msgid "clear entry" msgstr "Poista syöte" -#: ../src/libs/tagging.c:3213 +#: ../src/libs/tagging.c:3244 msgid "" "tag dictionary,\n" "Enter or double-click to attach selected tag on selected images\n" @@ -23993,7 +24694,7 @@ "Oikea napsaus näyttää muut tunnisteen toiminnot.\n" "SHIFT+Tabulaattori siirtää kohdistuksen syötekenttään." -#: ../src/libs/tagging.c:3248 +#: ../src/libs/tagging.c:3279 msgid "" "create a new tag with the\n" "name you entered" @@ -24001,42 +24702,42 @@ "Luo uusi tunniste\n" "syöttämälläsi nimellä." -#: ../src/libs/tagging.c:3251 +#: ../src/libs/tagging.c:3282 msgid "import tags from a Lightroom keyword file" msgstr "Tuo tunnisteet Lightroomin avainsanatiedostosta." -#: ../src/libs/tagging.c:3254 +#: ../src/libs/tagging.c:3285 msgid "export all tags to a Lightroom keyword file" msgstr "Vie kaikki tunnisteet Lightroomin avainsanatiedostoon." -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "toggle list / tree view" msgstr "Näytä luettelona tai hakemistopuuna." -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "tree" msgstr "Puu" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "toggle list with / without suggestion" msgstr "Valitse näytetäänkö ehdotukset." -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "suggestion" msgstr "Ehdotukset" -#: ../src/libs/tagging.c:3282 +#: ../src/libs/tagging.c:3313 msgid "redo last tag" msgstr "Toista edellinen tunniste" -#: ../src/libs/tagging.c:3365 +#: ../src/libs/tagging.c:3396 msgid "" "tag shortcut is not active with tag tree view. please switch to list view" msgstr "" "Tunnisteen pikavalinta ei ole aktiivinen tunnisteiden puu-näkymässä. Ole " "hyvä ja vaihda lista-näkymään." -#: ../src/libs/tagging.c:3469 +#: ../src/libs/tagging.c:3500 msgid "tagging settings" msgstr "Tunnisteiden asetukset" @@ -24053,27 +24754,6 @@ msgid "toggle color label of selected images" msgstr "Vaihda valittujen kuvien värileima" -#: ../src/libs/tools/darktable.c:284 -#, c-format -msgid "copyright (c) the authors 2009-%s" -msgstr "Copyright (c) tekijät 2009-%s" - -#: ../src/libs/tools/darktable.c:288 -msgid "organize and develop images from digital cameras" -msgstr "Hallinnoi ja kehitä digitaalikameroilla otettuja valokuvia." - -#: ../src/libs/tools/darktable.c:300 -msgid "all those of you that made previous releases possible" -msgstr "kaikki te jotka teitte edelliset julkaisut." - -#: ../src/libs/tools/darktable.c:305 -msgid "and..." -msgstr "ja..." - -#: ../src/libs/tools/darktable.c:307 -msgid "translator-credits" -msgstr "Marko Vertainen ja Janne Voutilainen" - #: ../src/libs/tools/filmstrip.c:45 msgid "filmstrip" msgstr "Filminauha" @@ -24504,7 +25184,7 @@ msgid "Lua options" msgstr "LUA:n asetukset" -#: ../src/views/darkroom.c:607 +#: ../src/views/darkroom.c:503 #, c-format msgid "" "darktable could not load `%s', switching to lighttable now.\n" @@ -24526,62 +25206,62 @@ "avaamista osoitteessa:\n" "https://github.com/darktable-org/darktable" -#: ../src/views/darkroom.c:625 +#: ../src/views/darkroom.c:521 #, c-format msgctxt "darkroom" msgid "loading `%s' ..." msgstr "Ladataan `%s' ..." -#: ../src/views/darkroom.c:749 ../src/views/darkroom.c:2496 +#: ../src/views/darkroom.c:668 ../src/views/darkroom.c:2335 msgid "gamut check" msgstr "Sävyasteikon tarkastus" -#: ../src/views/darkroom.c:749 +#: ../src/views/darkroom.c:668 msgid "soft proof" msgstr "Vedoksen esikatselu" #. fail :( -#: ../src/views/darkroom.c:787 ../src/views/print.c:356 +#: ../src/views/darkroom.c:708 ../src/views/print.c:356 msgid "no image to open!" msgstr "Avattavaa kuvaa ei ole valittu!" -#: ../src/views/darkroom.c:1331 +#: ../src/views/darkroom.c:1232 msgid "no user-defined presets for favorite modules were found" msgstr "Käyttäjän määrittämiä suosikkimoduuleiden esiasetuksia ei löytynyt." -#: ../src/views/darkroom.c:1476 +#: ../src/views/darkroom.c:1377 msgid "no styles have been created yet" msgstr "Tyylejä ei ole vielä luotu." -#: ../src/views/darkroom.c:2331 ../src/views/darkroom.c:2332 +#: ../src/views/darkroom.c:2170 ../src/views/darkroom.c:2171 msgid "quick access to presets" msgstr "Pikavalinta esiasetuksiin." -#: ../src/views/darkroom.c:2340 +#: ../src/views/darkroom.c:2179 msgid "quick access to styles" msgstr "Pikavalinta tyyleihin." -#: ../src/views/darkroom.c:2342 +#: ../src/views/darkroom.c:2181 msgid "quick access for applying any of your styles" msgstr "Pikavalinta tyylien käyttöönottoon." -#: ../src/views/darkroom.c:2348 +#: ../src/views/darkroom.c:2187 msgid "second window" msgstr "Toinen ikkuna" -#: ../src/views/darkroom.c:2351 +#: ../src/views/darkroom.c:2190 msgid "display a second darkroom image window" msgstr "Näytä toinen pimiön kuva-ikkuna." -#: ../src/views/darkroom.c:2356 +#: ../src/views/darkroom.c:2195 msgid "color assessment" msgstr "Värin arviointi" -#: ../src/views/darkroom.c:2359 +#: ../src/views/darkroom.c:2198 msgid "toggle ISO 12646 color assessment conditions" msgstr "Vaihda ISO 12646 värien arvioinnin tilaa." -#: ../src/views/darkroom.c:2372 +#: ../src/views/darkroom.c:2211 msgid "" "toggle raw over exposed indication\n" "right click for options" @@ -24589,27 +25269,27 @@ "Raakakuvan ylivalotuksen ilmaisu päälle tai pois.\n" "Asetukset valittavissa hiiren oikealla napilla." -#: ../src/views/darkroom.c:2388 +#: ../src/views/darkroom.c:2227 msgid "select how to mark the clipped pixels" msgstr "Valitse kuinka leikkaantuneet pikselit ilmaistaan." -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with CFA color" msgstr "Kennon pikseliverkon väri" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with solid color" msgstr "Kiinteä väri" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "false color" msgstr "Vääräväri" -#: ../src/views/darkroom.c:2393 ../src/views/darkroom.c:2444 +#: ../src/views/darkroom.c:2232 ../src/views/darkroom.c:2283 msgid "color scheme" msgstr "Ilmaisun väri" -#: ../src/views/darkroom.c:2394 +#: ../src/views/darkroom.c:2233 msgid "" "select the solid color to indicate over exposure.\n" "will only be used if mode = mark with solid color" @@ -24617,27 +25297,27 @@ "Valitse ylivalotuksen ilmaisuun käytettävä väri.\n" "Käytetään kun tila = Kiinteä väri." -#: ../src/views/darkroom.c:2397 +#: ../src/views/darkroom.c:2236 msgctxt "solidcolor" msgid "red" msgstr "Punainen" -#: ../src/views/darkroom.c:2398 +#: ../src/views/darkroom.c:2237 msgctxt "solidcolor" msgid "green" msgstr "Vihreä" -#: ../src/views/darkroom.c:2399 +#: ../src/views/darkroom.c:2238 msgctxt "solidcolor" msgid "blue" msgstr "Sininen" -#: ../src/views/darkroom.c:2400 +#: ../src/views/darkroom.c:2239 msgctxt "solidcolor" msgid "black" msgstr "Musta" -#: ../src/views/darkroom.c:2408 +#: ../src/views/darkroom.c:2247 msgid "" "threshold of what shall be considered overexposed\n" "1.0 - white level\n" @@ -24647,7 +25327,7 @@ "1.0 - valkoisen taso\n" "0.0 - mustan taso" -#: ../src/views/darkroom.c:2422 +#: ../src/views/darkroom.c:2261 msgid "" "toggle clipping indication\n" "right click for options" @@ -24655,11 +25335,11 @@ "Ylivalotuksen ilmaisu päälle tai pois.\n" "Asetukset valittavissa hiiren oikealla napilla." -#: ../src/views/darkroom.c:2437 +#: ../src/views/darkroom.c:2276 msgid "clipping preview mode" msgstr "Leikkauksen tila" -#: ../src/views/darkroom.c:2438 +#: ../src/views/darkroom.c:2277 msgid "" "select the metric you want to preview\n" "full gamut is the combination of all other modes" @@ -24667,39 +25347,39 @@ "Valitse esikatseltava metriikka.\n" "Täysi sävyasteikko on kaikkien tilojen yhdistelmä." -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "full gamut" msgstr "Täysi sävyasteikko" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "any RGB channel" msgstr "Mikä tahansa RGB-kanava" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "luminance only" msgstr "Vain kirkkaus" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "saturation only" msgstr "Vain värikylläisyys" -#: ../src/views/darkroom.c:2445 +#: ../src/views/darkroom.c:2284 msgid "select colors to indicate clipping" msgstr "Valitse ylivalotuksen ja alivalotuksen ilmaisuun käytettävät värit." -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "red & blue" msgstr "Punainen ja sininen" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "purple & green" msgstr "Purppura ja vihreä" -#: ../src/views/darkroom.c:2454 +#: ../src/views/darkroom.c:2293 msgid "lower threshold" msgstr "Alempi kynnysarvo" -#: ../src/views/darkroom.c:2455 +#: ../src/views/darkroom.c:2294 msgid "" "clipping threshold for the black point,\n" "in EV, relatively to white (0 EV).\n" @@ -24721,11 +25401,11 @@ "Tyypillinen mustavalkotuloste kiiltävälle paperille tuottaa mustat -9.00 " "aukolla." -#: ../src/views/darkroom.c:2471 +#: ../src/views/darkroom.c:2310 msgid "upper threshold" msgstr "Ylempi kynnysarvo" -#: ../src/views/darkroom.c:2473 +#: ../src/views/darkroom.c:2312 #, no-c-format msgid "" "clipping threshold for the white point.\n" @@ -24734,11 +25414,11 @@ "Valkoisen pisteen leikkauksen kynnysarvo.\n" "100% on huipun kirkkaus." -#: ../src/views/darkroom.c:2485 +#: ../src/views/darkroom.c:2324 msgid "softproof" msgstr "Vedoksen esikatselu" -#: ../src/views/darkroom.c:2488 +#: ../src/views/darkroom.c:2327 msgid "" "toggle softproofing\n" "right click for profile options" @@ -24746,7 +25426,7 @@ "Vedoksen esikatselu päälle tai pois.\n" "Profiili valittavissa hiiren oikealla napilla." -#: ../src/views/darkroom.c:2499 +#: ../src/views/darkroom.c:2338 msgid "" "toggle gamut checking\n" "right click for profile options" @@ -24754,46 +25434,54 @@ "Sävyasteikon tarkastus päälle tai pois.\n" "Profiili valittavissa hiiren oikealla napilla." -#: ../src/views/darkroom.c:2524 ../src/views/darkroom.c:2526 -#: ../src/views/darkroom.c:2540 ../src/views/darkroom.c:2541 -#: ../src/views/darkroom.c:2542 ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2365 ../src/views/darkroom.c:2367 +#: ../src/views/darkroom.c:2381 ../src/views/darkroom.c:2382 +#: ../src/views/darkroom.c:2383 ../src/views/darkroom.c:2384 #: ../src/views/lighttable.c:1182 ../src/views/lighttable.c:1184 msgid "profiles" msgstr "Profiilit" -#: ../src/views/darkroom.c:2526 ../src/views/lighttable.c:1184 +#: ../src/views/darkroom.c:2367 ../src/views/lighttable.c:1184 msgid "preview intent" msgstr "Esikatselun menetelmä" -#: ../src/views/darkroom.c:2540 ../src/views/lighttable.c:1188 +#: ../src/views/darkroom.c:2381 ../src/views/lighttable.c:1188 msgid "display profile" msgstr "Näytön profiili" -#: ../src/views/darkroom.c:2541 ../src/views/lighttable.c:1191 +#: ../src/views/darkroom.c:2382 ../src/views/lighttable.c:1191 msgid "preview display profile" msgstr "Esikatselunäytön profiili" -#: ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2384 msgid "histogram profile" msgstr "Histogrammin profiili" -#: ../src/views/darkroom.c:2605 ../src/views/lighttable.c:1225 +#: ../src/views/darkroom.c:2391 +msgid "second preview window ISO 12646 color assessment" +msgstr "Toisen esikatseluikkunan ISO 12646 värien arvioinnin tila." + +#: ../src/views/darkroom.c:2393 +msgid "color assessment second preview" +msgstr "Toisen esikatselun värin arviointi" + +#: ../src/views/darkroom.c:2452 ../src/views/lighttable.c:1225 msgid "display ICC profiles" -msgstr "Näytön ICC-väriprofiilit" +msgstr "näytön ICC-väriprofiilit" -#: ../src/views/darkroom.c:2609 ../src/views/lighttable.c:1229 +#: ../src/views/darkroom.c:2456 ../src/views/lighttable.c:1229 msgid "preview display ICC profiles" -msgstr "Esikatselunäytön ICC-väriprofiilit" +msgstr "esikatselunäytön ICC-väriprofiilit" -#: ../src/views/darkroom.c:2613 +#: ../src/views/darkroom.c:2460 msgid "softproof ICC profiles" -msgstr "Vedoksen esikatselun ICC-väriprofiilit" +msgstr "vedoksen esikatselun ICC-väriprofiilit" -#: ../src/views/darkroom.c:2617 +#: ../src/views/darkroom.c:2464 msgid "histogram and color picker ICC profiles" -msgstr "Histogrammin ja värivalitsimen ICC-väriprofiilit" +msgstr "histogrammin ja värivalitsimen ICC-väriprofiilit" -#: ../src/views/darkroom.c:2651 +#: ../src/views/darkroom.c:2497 msgid "" "toggle guide lines\n" "right click for guides options" @@ -24802,137 +25490,137 @@ "Apulinjojen asetukset valittavissa hiiren oikealla napilla." #. Fullscreen preview key -#: ../src/views/darkroom.c:2668 +#: ../src/views/darkroom.c:2514 msgid "full preview" msgstr "Koko ruudun esikatselu" #. add an option to allow skip mouse events while other overlays are consuming mouse actions -#: ../src/views/darkroom.c:2672 +#: ../src/views/darkroom.c:2518 msgid "force pan/zoom/rotate with mouse" msgstr "Pakota kuvan panorointi, zoomaus ja kierto hiirellä" #. Zoom shortcuts -#: ../src/views/darkroom.c:2684 +#: ../src/views/darkroom.c:2530 msgid "zoom close-up" msgstr "Suurenna" #. zoom in/out #. zoom in/out/min/max -#: ../src/views/darkroom.c:2687 ../src/views/lighttable.c:1283 +#: ../src/views/darkroom.c:2533 ../src/views/lighttable.c:1283 msgid "zoom in" msgstr "Suurenna" -#: ../src/views/darkroom.c:2688 ../src/views/lighttable.c:1285 +#: ../src/views/darkroom.c:2534 ../src/views/lighttable.c:1285 msgid "zoom out" msgstr "Pienennä" #. Shortcut to skip images -#: ../src/views/darkroom.c:2691 +#: ../src/views/darkroom.c:2537 msgid "image forward" msgstr "Seuraava kuva" -#: ../src/views/darkroom.c:2692 +#: ../src/views/darkroom.c:2538 msgid "image back" msgstr "Edellinen kuva" #. cycle overlay colors -#: ../src/views/darkroom.c:2695 +#: ../src/views/darkroom.c:2541 msgid "cycle overlay colors" msgstr "Valitse kuvapeitteen väri" #. toggle visibility of drawn masks for current gui module -#: ../src/views/darkroom.c:2698 +#: ../src/views/darkroom.c:2544 msgid "show drawn masks" msgstr "Näytä piirretty maski" #. brush size +/- -#: ../src/views/darkroom.c:2701 +#: ../src/views/darkroom.c:2547 msgid "increase brush size" msgstr "Suurenna siveltimen kokoa" -#: ../src/views/darkroom.c:2702 +#: ../src/views/darkroom.c:2548 msgid "decrease brush size" msgstr "Pienennä siveltimen kokoa" #. brush hardness +/- -#: ../src/views/darkroom.c:2705 +#: ../src/views/darkroom.c:2551 msgid "increase brush hardness" msgstr "Lisää siveltimen kovuutta" -#: ../src/views/darkroom.c:2706 +#: ../src/views/darkroom.c:2552 msgid "decrease brush hardness" msgstr "Vähennä siveltimen kovuutta" #. brush opacity +/- -#: ../src/views/darkroom.c:2709 +#: ../src/views/darkroom.c:2555 msgid "increase brush opacity" msgstr "Lisää siveltimen läpinäkyvyyttä" -#: ../src/views/darkroom.c:2710 +#: ../src/views/darkroom.c:2556 msgid "decrease brush opacity" msgstr "Vähennä siveltimen läpinäkyvyyttä" #. undo/redo -#: ../src/views/darkroom.c:2713 ../src/views/lighttable.c:1275 +#: ../src/views/darkroom.c:2559 ../src/views/lighttable.c:1275 #: ../src/views/map.c:2115 msgid "undo" msgstr "Kumoa" -#: ../src/views/darkroom.c:2714 ../src/views/lighttable.c:1276 +#: ../src/views/darkroom.c:2560 ../src/views/lighttable.c:1276 #: ../src/views/map.c:2116 msgid "redo" msgstr "Tee uudelleen" #. change the precision for adjusting sliders with keyboard shortcuts -#: ../src/views/darkroom.c:2717 +#: ../src/views/darkroom.c:2563 msgid "change keyboard shortcut slider precision" msgstr "Muuta näppäimistön pikavalintojen liukukytkimen tarkkuutta" -#: ../src/views/darkroom.c:3989 +#: ../src/views/darkroom.c:3565 msgid "keyboard shortcut slider precision: fine" msgstr "Näppäimistön pikavalintakytkimen tarkkuus: hieno" -#: ../src/views/darkroom.c:3991 +#: ../src/views/darkroom.c:3567 msgid "keyboard shortcut slider precision: normal" msgstr "Näppäimistön pikavalintakytkimen tarkkuus: normaali" -#: ../src/views/darkroom.c:3993 +#: ../src/views/darkroom.c:3569 msgid "keyboard shortcut slider precision: coarse" msgstr "Näppäimistön pikavalintakytkimen tarkkuus: karkea" -#: ../src/views/darkroom.c:4009 +#: ../src/views/darkroom.c:3584 msgid "switch to lighttable" msgstr "Vaihda valopöytään" -#: ../src/views/darkroom.c:4010 ../src/views/lighttable.c:882 +#: ../src/views/darkroom.c:3585 ../src/views/lighttable.c:882 msgid "zoom in the image" msgstr "Suurenna kuvaa" -#: ../src/views/darkroom.c:4011 +#: ../src/views/darkroom.c:3586 msgid "unbounded zoom in the image" msgstr "Rajaton zoomaus kuvassa" -#: ../src/views/darkroom.c:4012 +#: ../src/views/darkroom.c:3587 msgid "zoom to 100% 200% and back" msgstr "Lähennä 100% / 200% ja takaisin" -#: ../src/views/darkroom.c:4013 ../src/views/lighttable.c:885 +#: ../src/views/darkroom.c:3588 ../src/views/lighttable.c:885 msgid "pan a zoomed image" msgstr "Panoroi lähennetyn kuvan sisällä" -#: ../src/views/darkroom.c:4015 ../src/views/lighttable.c:927 +#: ../src/views/darkroom.c:3590 ../src/views/lighttable.c:927 msgid "[modules] expand module without closing others" msgstr "[Moduulit] Laajenna moduuli pienentämättä muita" -#: ../src/views/darkroom.c:4016 ../src/views/lighttable.c:928 +#: ../src/views/darkroom.c:3591 ../src/views/lighttable.c:928 msgid "[modules] expand module and close others" msgstr "[Moduulit] Laajenna moduuli ja sulje muut" -#: ../src/views/darkroom.c:4018 +#: ../src/views/darkroom.c:3593 msgid "[modules] rename module" msgstr "[Moduulit] Muuta moduulin nimeä" -#: ../src/views/darkroom.c:4020 +#: ../src/views/darkroom.c:3595 msgid "[modules] change module position in pipe" msgstr "[Moduulit] Muuta moduulin sijaintia työskentelyputkessa" @@ -25077,59 +25765,59 @@ msgid "print" msgstr "Tulostus" -#: ../src/views/slideshow.c:353 +#: ../src/views/slideshow.c:355 msgid "end of images" msgstr "Kuvien loppu" -#: ../src/views/slideshow.c:374 +#: ../src/views/slideshow.c:376 msgid "end of images. press any key to return to lighttable mode" msgstr "Viimeinen kuva. Mikä tahansa näppäin palauttaa valopöydälle." -#: ../src/views/slideshow.c:504 +#: ../src/views/slideshow.c:509 msgid "waiting to start slideshow" msgstr "Odotetaan kuvasarjan aloitusta" -#: ../src/views/slideshow.c:640 ../src/views/slideshow.c:661 -#: ../src/views/slideshow.c:669 +#: ../src/views/slideshow.c:678 ../src/views/slideshow.c:705 +#: ../src/views/slideshow.c:713 msgid "slideshow paused" msgstr "Kuvasarja pysäytetty" -#: ../src/views/slideshow.c:648 ../src/views/slideshow.c:655 +#: ../src/views/slideshow.c:686 ../src/views/slideshow.c:696 #, c-format msgid "slideshow delay set to %d second" msgid_plural "slideshow delay set to %d seconds" msgstr[0] "Kuvasarjan viipeeksi asetettu %d sekunti." msgstr[1] "Kuvasarjan viipeeksi asetettu %d sekuntia." -#: ../src/views/slideshow.c:684 +#: ../src/views/slideshow.c:728 msgid "start and stop" msgstr "Käynnistä ja lopeta" -#: ../src/views/slideshow.c:685 +#: ../src/views/slideshow.c:730 msgid "exit slideshow" msgstr "Poistu kuvasarjasta" -#: ../src/views/slideshow.c:688 +#: ../src/views/slideshow.c:734 msgid "slow down" msgstr "Hidasta" -#: ../src/views/slideshow.c:691 +#: ../src/views/slideshow.c:738 msgid "speed up" msgstr "Kiihdytä" -#: ../src/views/slideshow.c:695 +#: ../src/views/slideshow.c:743 msgid "step forward" msgstr "Askel eteen" -#: ../src/views/slideshow.c:696 +#: ../src/views/slideshow.c:745 msgid "step back" msgstr "Askel takaisin" -#: ../src/views/slideshow.c:702 +#: ../src/views/slideshow.c:753 msgid "go to next image" msgstr "Siirry seuraavaan kuvaan" -#: ../src/views/slideshow.c:703 +#: ../src/views/slideshow.c:755 msgid "go to previous image" msgstr "Siirry edelliseen kuvaan" @@ -25142,52 +25830,347 @@ msgid "no camera with tethering support available for use..." msgstr "Liitettyä kuvausta tukevaa kameraa ei ole saatavilla..." -#: ../src/views/view.c:1193 +#: ../src/views/view.c:1352 msgid "left click" msgstr "Vasen napsaus" -#: ../src/views/view.c:1196 +#: ../src/views/view.c:1355 msgid "right click" msgstr "Oikea napsaus" -#: ../src/views/view.c:1199 +#: ../src/views/view.c:1358 msgid "middle click" msgstr "Keskinapin napsaus" -#: ../src/views/view.c:1205 +#: ../src/views/view.c:1364 msgid "left double-click" msgstr "Vasen kaksoisnapsaus" -#: ../src/views/view.c:1208 +#: ../src/views/view.c:1367 msgid "right double-click" msgstr "Oikea kaksoisnapsaus" -#: ../src/views/view.c:1211 +#: ../src/views/view.c:1370 msgid "drag and drop" msgstr "Raahaa ja vapauta" -#: ../src/views/view.c:1214 +#: ../src/views/view.c:1373 msgid "left click+drag" msgstr "Vasen napsaus+Raahaus" -#: ../src/views/view.c:1217 +#: ../src/views/view.c:1376 msgid "right click+drag" msgstr "Oikea napsaus+Raahaus" -#: ../src/views/view.c:1237 +#: ../src/views/view.c:1398 msgid "darktable - accels window" msgstr "Darktable - esiasetusikkuna" -#: ../src/views/view.c:1285 +#: ../src/views/view.c:1447 msgid "switch to a classic window which will stay open after key release" msgstr "" "Vaihda klassiseen ikkunaan joka pysyy auki näppäimen vapautuksen jälkeen." #. we add the mouse actions too -#: ../src/views/view.c:1344 +#: ../src/views/view.c:1514 msgid "mouse actions" msgstr "Hiiren toiminnat" +#~ msgid "" +#~ "when having raw+JPEG images together in one directory it makes no sense " +#~ "to import both. with this flag one can ignore all JPEGs found." +#~ msgstr "" +#~ "Jos samassa hakemistossa on raakakuvia ja JPEG-kuvia samalla nimellä, " +#~ "lisää ainoastaan raakakuvat tietokantaan. Tämä valinta ohittaa kaikki " +#~ "JPEG-tiedostot." + +#~ msgid "save history while developing" +#~ msgstr "Tallenna historia kehityksen aikana" + +#~ msgid "longest" +#~ msgstr "Pisin" + +#~ msgid "b&w as grayscale" +#~ msgstr "MV kuten harmaasävy" + +#~ msgid "spot color mapping" +#~ msgstr "Väripisteen kartoitus" + +#~ msgid "spot mode" +#~ msgstr "Pistetila" + +#~ msgid "" +#~ "tone equalizer needs to be after distortion modules in the pipeline – " +#~ "disabled" +#~ msgstr "" +#~ "Sävyjen taajuuskorjaimen tulee olla vääristävien moduulien jälkeen " +#~ "työskentelyputkessa – poistettu käytöstä" + +#~ msgid "selected image[s]" +#~ msgstr "Valitut kuvat" + +#~ msgid "red inset" +#~ msgstr "Punaisen upote" + +#~ msgid "green inset" +#~ msgstr "Vihreän upote" + +#~ msgid "blue inset" +#~ msgstr "Sinisen upote" + +#~ msgid "red primary inset" +#~ msgstr "Punaisen ensisijainen upote." + +#~ msgid "red primary rotation" +#~ msgstr "Punaisen ensisijainen kierto." + +#~ msgid "green primary inset" +#~ msgstr "Vihreän ensisijainen upote." + +#~ msgid "green primary rotation" +#~ msgstr "Vihreän ensisijainen kierto." + +#~ msgid "blue primary inset" +#~ msgstr "Sinisen ensisijainen upote." + +#~ msgid "blue primary rotation" +#~ msgstr "Sinisen ensisijainen kierto." + +#~ msgid "red primary hue" +#~ msgstr "Punaisen ensisijainen sävy." + +#~ msgctxt "preferences" +#~ msgid "nothing" +#~ msgstr "Ei mitään" + +#~ msgctxt "preferences" +#~ msgid "memory size" +#~ msgstr "Muistin koko" + +#~ msgctxt "preferences" +#~ msgid "memory transfer" +#~ msgstr "Muistin siirto" + +#~ msgctxt "preferences" +#~ msgid "memory size and transfer" +#~ msgstr "Muistin koko ja siirto" + +#~ msgctxt "preferences" +#~ msgid "id" +#~ msgstr "Rullan numero" + +#~ msgctxt "preferences" +#~ msgid "folder" +#~ msgstr "Hakemisto" + +#~ msgid "tune OpenCL performance" +#~ msgstr "Säädä OpenCL suorituskykyä" + +#~ msgid "" +#~ "allows runtime tuning of OpenCL devices:\n" +#~ " - 'memory size': uses a fixed headroom (400MB as default),\n" +#~ " - 'memory transfer': tries a faster memory access mode (pinned memory) " +#~ "used for tiling." +#~ msgstr "" +#~ "Sallii ajonaikaisen OpenCL laitteiden hienosäädön:\n" +#~ " - 'Muistin koko': käyttää kiinteää vapaata tilaa (oletuksena 400MT).\n" +#~ " - 'Muistin siirto': yrittää nopeampaa muistin käsittelyn tilaa " +#~ "(Kiinnitetty muisti) tiiletykseen." + +#~ msgid "write sidecar file for each image" +#~ msgstr "Tallenna aputiedosto jokaiselle kuvalle" + +#~ msgid "" +#~ "if an instance of the module has focus, apply shortcut to that instance\n" +#~ "note: blending shortcuts always apply to the focused instance" +#~ msgstr "" +#~ "Jos kohdistus on moduulin instanssissa, aseta pikavalinta kyseiseen " +#~ "instanssiin.\n" +#~ "Huomioi: Yhdistämisen pikavalinnat asetetaan aina kohdistettuun " +#~ "instanssiin." + +#~ msgid "tiff" +#~ msgstr "tiff" + +#~ msgid "png" +#~ msgstr "PNG" + +#~ msgid "j2k" +#~ msgstr "j2k" + +#~ msgid "jpeg" +#~ msgstr "jpeg" + +#~ msgid "exr" +#~ msgstr "LiEXR" + +#~ msgid "rgbe" +#~ msgstr "rgbe" + +#~ msgid "pfm" +#~ msgstr "pfm" + +#~ msgid "netpnm" +#~ msgstr "Netpnm" + +#~ msgid "avif" +#~ msgstr "avif" + +#~ msgid "heif" +#~ msgstr "HEIF" + +#~ msgid "libraw" +#~ msgstr "libraw" + +#~ msgid "webp" +#~ msgstr "webp" + +#~ msgid "jpeg xl" +#~ msgstr "jpeg xl" + +#~ msgid "" +#~ "due to a slow GPU hardware acceleration using OpenCL has been deactivated" +#~ msgstr "" +#~ "Johtuen hitaasta näytönohjaimesta, OpenCL-laitekiihdytys on otettu pois " +#~ "käytöstä." + +#~ msgid "" +#~ "multiple GPUs detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "Useita näytönohjaimia tunnistettu - OpenCL-ajoitusprofiili asetettu sen " +#~ "mukaisesti." + +#~ msgid "" +#~ "very fast GPU detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "Erittäin nopea näytönohjain tunnistettu - OpenCL-ajoitusprofiili asetettu " +#~ "sen mukaisesti." + +#~ msgid "" +#~ "darktable discovered problems with your OpenCL setup; disabling OpenCL " +#~ "for this session!" +#~ msgstr "" +#~ "Darktable havaitsi ongelmia OpenCL-järjestelmässä; OpenCL otettu pois " +#~ "käytöstä tässä istunnossa!" + +#~ msgid "click to dismiss this notice permanently" +#~ msgstr "Napsauta ohjeen poistamiseksi pysyvästi." + +#~ msgid "RGB colors" +#~ msgstr "RGB värit" + +#~ msgid "compression type" +#~ msgstr "Kuvanpakkauksen tyyppi" + +#~ msgid "jp2" +#~ msgstr "jp2" + +#~ msgid "b&w image" +#~ msgstr "Mustavalkoinen kuva" + +#~ msgid "write RGB colors" +#~ msgstr "Kirjoita RGB-värit" + +#~ msgid "write grayscale" +#~ msgstr "Kirjoita harmaasävyt" + +#~ msgid "" +#~ "set strength of rebuilding in regions with all photosites clipped.\n" +#~ "the mask buttons shows the effect that is added to already reconstructed " +#~ "data." +#~ msgstr "" +#~ "Aseta jälleenrakennuksen voimakkuus alueille joissa kaikki senselit ovat " +#~ "leikkaantuneet.\n" +#~ "Maski-nappi näyttää vaikutuksen joka on lisätty jo uudelleen rakennetulle " +#~ "tiedolle." + +#~ msgid "save" +#~ msgstr "Tallenna" + +#~ msgid "add" +#~ msgstr "Lisää" + +#~ msgid "only" +#~ msgstr "vain" + +#~ msgid "hardness (relative)" +#~ msgstr "Kovuus (suhteellinen)" + +#~ msgid "hardness (absolute)" +#~ msgstr "Kovuus (absoluuttinen)" + +#~ msgid "opacity (relative)" +#~ msgstr "Läpinäkyvyys (suhteellinen)" + +#~ msgid "opacity (absolute)" +#~ msgstr "Läpinäkyvyys (absoluuttinen)" + +#~ msgid "brush size (relative)" +#~ msgstr "Siveltimen koko (suhteellinen)" + +#~ msgid "low" +#~ msgstr "Matala" + +#~ msgid "medium" +#~ msgstr "Keskimääräinen" + +#~ msgid "high" +#~ msgstr "Korkea" + +#~ msgid "" +#~ "pen pressure control for brush masks\n" +#~ "'off': pressure reading ignored,\n" +#~ "'hardness'/'opacity'/'brush size': pressure reading controls specified " +#~ "attribute,\n" +#~ "'absolute'/'relative': pressure reading is taken directly as attribute " +#~ "value or multiplied with pre-defined setting." +#~ msgstr "" +#~ "Kynän paineen asetukset sivellinmaskille.\n" +#~ "'pois käytöstä': Paineentunnistus pois käytöstä,\n" +#~ "'kovuus'/'läpinäkyvyys'/'siveltimen koko': Paineentunnistus ohjaa " +#~ "valittua arvoa\n" +#~ "'absoluuttinen'/'suhteellinen': paineentunnistuksen lukemaa käytetään " +#~ "suoraan tai se kerrotaan esimääritetyllä asetuksella." + +#~ msgid "" +#~ "smoothing of brush strokes\n" +#~ "stronger smoothing leads to fewer nodes and easier editing but with lower " +#~ "control of accuracy." +#~ msgstr "" +#~ "Siveltimen vetojen tasoitus.\n" +#~ "Suuri tasoitus pienentää siveltimen vedon pistemäärää ja on helpompi " +#~ "hallita, mutta antaa heikomman tarkkuuden hallinnan." + +#~ msgid "distortion fine-tune" +#~ msgstr "Vääristymien hienosäätö" + +#~ msgid "vignetting fine-tune" +#~ msgstr "Vinjetoinnin hienosäätö" + +#~ msgid "TCA red fine-tune" +#~ msgstr "Poikittaisen punaisen värivirheen hienosäätö" + +#~ msgid "TCA blue fine-tune" +#~ msgstr "Poikittaisen sinisen värivirheen hienosäätö" + +#~ msgid "no-op" +#~ msgstr "Ei toimintoa" + +#~ msgid "<leave unchanged>" +#~ msgstr "<jätä muuttumattomaksi>" + +#~ msgid "reference to which the marker should be scaled to" +#~ msgstr "Viittaus mihin merkin merkki tulisi skaalata" + +#~ msgid "length of the marker which is used as scaling reference" +#~ msgstr "Merkin pituus jota käytetään skaalauksen viitteenä" + +#, c-format +#~ msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" +#~ msgstr "%.1f mm (%.1f mm FF vastaava, kroppi %.1f)" + #~ msgctxt "preferences" #~ msgid "always bilinear (fast)" #~ msgstr "Aina bilineaarinen (nopea)" @@ -25197,10 +26180,6 @@ #~ msgstr "Täysi (mahdollisesti hidas)" #~ msgctxt "preferences" -#~ msgid "rgb parade" -#~ msgstr "RGB-paraati" - -#~ msgctxt "preferences" #~ msgid "modern" #~ msgstr "Moderni" @@ -25347,9 +26326,6 @@ #~ msgid "3:2" #~ msgstr "3:2" -#~ msgid "set the custom aspect ratio" -#~ msgstr "Aseta mukautettu kuvasuhde." - #~ msgid "raw CA correction supports only standard RGB Bayer filter arrays" #~ msgstr "" #~ "Raakakuvan värivirheiden korjaus tukee ainoastaan normaaleja RGB Bayer " @@ -25698,9 +26674,6 @@ #~ "Pirstoutumisen raja-arvo jonka yli mentäessä kysytään tai suoritetaan " #~ "automaattinen tietokannan huolto." -#~ msgid "recovery" -#~ msgstr "Palautus" - #~ msgid "click later to be asked on next startup" #~ msgstr "" #~ "Napsauta myöhemmin, jos haluat kysyttävän uudestaan, kun Darktable " @@ -25781,12 +26754,6 @@ #~ msgid "xcf" #~ msgstr "XCF" -#~ msgid "" -#~ "set strength of reconstruction in regions with all photosites clipped" -#~ msgstr "" -#~ "Aseta uudelleenrakennuksen voimakkuus kaikille alueille joilla jokainen " -#~ "senseli on leikkautunut." - #~ msgid "no embedded metadata and lensfun disabled" #~ msgstr "Ei upotettua metatietoa ja Lensfun poistettu käytöstä" @@ -25797,9 +26764,6 @@ #~ "Upotettu objektiivin korjauksen metatieto ei ole saatavilla\n" #~ "ja Darkatable on käännetty ilman Lensfun tukea." -#~ msgid "actual selection" -#~ msgstr "Varsinainen valinta" - #~ msgid "ldr" #~ msgstr "LDR" @@ -25888,9 +26852,6 @@ #~ msgid "lift chroma" #~ msgstr "Nosta kromaa" -#~ msgid "lift hue" -#~ msgstr "Sävyn nosto" - #~ msgid "power luminance" #~ msgstr "Kirkkauden teho" @@ -25924,9 +26885,6 @@ #~ msgid "chroma highlights" #~ msgstr "Huippuvalojen kroma" -#~ msgid "chroma global" -#~ msgstr "Yleinen kroma" - #~ msgid "chroma mid-tones" #~ msgstr "Keskisävyjen kroma" @@ -26289,9 +27247,6 @@ #~ msgid "grey" #~ msgstr "Harmaa" -#~ msgid "white balance settings" -#~ msgstr "Valkotasapainon asetus" - #~ msgid "%.0f mired" #~ msgstr "%.0f mired" @@ -26795,9 +27750,6 @@ #~ msgid "lighttable + darkroom" #~ msgstr "Valopöytä + pimiö" -#~ msgid "color manage cached thumbnails" -#~ msgstr "Käytä värihallintaa välimuistissa oleville esikatselukuville" - #~ msgid "" #~ "if enabled, cached thumbnails will be color managed so that lighttable " #~ "and filmstrip can show correct colors. otherwise the results may look " @@ -27502,9 +28454,6 @@ #~ msgid "blue vs yellow" #~ msgstr "Sininen vs keltainen" -#~ msgid "green vs magenta" -#~ msgstr "Vihreä vs magenta" - #~ msgid "steepness of the a* curve in Lab" #~ msgstr "a*-kurvin jyrkkyys Lab-tilassa." @@ -28170,9 +29119,6 @@ #~ msgid "existing duplicates" #~ msgstr "Olemassa olevat kopiot" -#~ msgid "export selected" -#~ msgstr "Vie valitut" - #~ msgid "" #~ "maximum output width\n" #~ "set to 0 for no scaling" @@ -28242,9 +29188,6 @@ #~ msgid "import folder" #~ msgstr "Tuo hakemisto" -#~ msgid "no supported devices found" -#~ msgstr "Tuettuja laitteita ei löytynyt" - #~ msgid "import options" #~ msgstr "Tuonnin asetukset" @@ -28821,10 +29764,6 @@ #~ "Käytä `*' -merkintää sisällyttääksesi kaikki sijainnit ja alisijainnit " #~ "(SHIFT+napsaus)." -#~ msgctxt "accel" -#~ msgid "replace metadata" -#~ msgstr "Korvaa metatiedot" - #, fuzzy #~| msgctxt "preferences" #~| msgid "folder" diff -Nru darktable-4.4.2/po/fr.po darktable-4.6.1/po/fr.po --- darktable-4.4.2/po/fr.po 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/po/fr.po 2024-02-16 17:31:09.000000000 +0000 @@ -2,8 +2,8 @@ msgstr "" "Project-Id-Version: darktable 3.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-31 13:24+0200\n" -"PO-Revision-Date: 2023-05-31 13:27+0200\n" +"POT-Creation-Date: 2023-11-30 19:32+0100\n" +"PO-Revision-Date: 2023-11-30 19:33+0100\n" "Last-Translator: Pascal Obry <pascal@obry.net>\n" "Language-Team: \n" "Language: fr_FR\n" @@ -11,277 +11,241 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 3.3.1\n" +"X-Generator: Poedit 3.4.1\n" -#: ../build/bin/conf_gen.h:172 ../build/bin/preferences_gen.h:7632 +#: ../build/bin/conf_gen.h:174 msgctxt "preferences" msgid "first instance" msgstr "Première instance" # "duplicate" traduit par "cloner" avec une bulle d'explication utilisant le terme de "copie virtuelle", dans le sens que l’image n'est pas physiquement dupliquée -#: ../build/bin/conf_gen.h:173 ../build/bin/preferences_gen.h:7637 -#: ../build/bin/preferences_gen.h:7656 +#: ../build/bin/conf_gen.h:175 ../build/bin/preferences_gen.h:7922 msgctxt "preferences" msgid "last instance" msgstr "Dernière instance" -#: ../build/bin/conf_gen.h:240 ../build/bin/conf_gen.h:346 -#: ../build/bin/conf_gen.h:356 ../build/bin/conf_gen.h:1186 -#: ../build/bin/conf_gen.h:1202 ../build/bin/preferences_gen.h:4137 -#: ../build/bin/preferences_gen.h:4156 ../build/bin/preferences_gen.h:4232 -#: ../build/bin/preferences_gen.h:6706 ../build/bin/preferences_gen.h:6834 -#: ../build/bin/preferences_gen.h:6899 +#: ../build/bin/conf_gen.h:252 ../build/bin/conf_gen.h:352 +#: ../build/bin/conf_gen.h:362 ../build/bin/conf_gen.h:1239 +#: ../build/bin/conf_gen.h:1255 ../build/bin/conf_gen.h:1275 +#: ../build/bin/preferences_gen.h:4747 ../build/bin/preferences_gen.h:4885 msgctxt "preferences" msgid "never" msgstr "Jamais" -#: ../build/bin/conf_gen.h:241 ../build/bin/preferences_gen.h:6711 +#: ../build/bin/conf_gen.h:253 msgctxt "preferences" msgid "once a month" msgstr "Une fois par mois" -#: ../build/bin/conf_gen.h:242 ../build/bin/preferences_gen.h:6716 -#: ../build/bin/preferences_gen.h:6745 +#: ../build/bin/conf_gen.h:254 ../build/bin/preferences_gen.h:7138 msgctxt "preferences" msgid "once a week" msgstr "Une fois par semaine" -#: ../build/bin/conf_gen.h:243 ../build/bin/preferences_gen.h:6721 +#: ../build/bin/conf_gen.h:255 msgctxt "preferences" msgid "once a day" msgstr "Une fois par jour" -#: ../build/bin/conf_gen.h:244 ../build/bin/preferences_gen.h:6726 +#: ../build/bin/conf_gen.h:256 msgctxt "preferences" msgid "on close" msgstr "À la fermeture" -#: ../build/bin/conf_gen.h:280 ../build/bin/conf_gen.h:1179 -#: ../build/bin/conf_gen.h:1195 ../build/bin/preferences_gen.h:4102 -#: ../build/bin/preferences_gen.h:4197 ../build/bin/preferences_gen.h:5748 +#: ../build/bin/conf_gen.h:292 ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1248 ../build/bin/conf_gen.h:1276 msgctxt "preferences" msgid "small" msgstr "Faibles" -#: ../build/bin/conf_gen.h:281 ../build/bin/conf_gen.h:393 -#: ../build/bin/preferences_gen.h:5753 ../build/bin/preferences_gen.h:5782 -#: ../build/bin/preferences_gen.h:5969 ../build/bin/preferences_gen.h:5998 +#: ../build/bin/conf_gen.h:293 ../build/bin/conf_gen.h:405 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6223 msgctxt "preferences" msgid "default" msgstr "Défaut" -#: ../build/bin/conf_gen.h:282 ../build/bin/conf_gen.h:2814 -#: ../build/bin/preferences_gen.h:5758 +#: ../build/bin/conf_gen.h:294 ../build/bin/conf_gen.h:2904 msgctxt "preferences" msgid "large" msgstr "Importantes" -#: ../build/bin/conf_gen.h:283 ../build/bin/preferences_gen.h:5763 +#: ../build/bin/conf_gen.h:295 msgctxt "preferences" msgid "unrestricted" msgstr "Sans restriction" -#: ../build/bin/conf_gen.h:347 ../build/bin/preferences_gen.h:6839 +#: ../build/bin/conf_gen.h:353 msgctxt "preferences" msgid "after edit" msgstr "Après édition" -#: ../build/bin/conf_gen.h:348 ../build/bin/preferences_gen.h:6844 -#: ../build/bin/preferences_gen.h:6863 +#: ../build/bin/conf_gen.h:354 ../build/bin/preferences_gen.h:7224 msgctxt "preferences" msgid "on import" msgstr "À l’importation" -#: ../build/bin/conf_gen.h:357 ../build/bin/conf_gen.h:1178 -#: ../build/bin/conf_gen.h:1194 ../build/bin/conf_gen.h:3214 -#: ../build/bin/preferences_gen.h:4097 ../build/bin/preferences_gen.h:4192 -#: ../build/bin/preferences_gen.h:5112 ../build/bin/preferences_gen.h:5166 -#: ../build/bin/preferences_gen.h:6904 +#: ../build/bin/conf_gen.h:363 ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1247 ../build/bin/conf_gen.h:3300 +#: ../build/bin/preferences_gen.h:5644 msgctxt "preferences" msgid "always" msgstr "Toujours" -#: ../build/bin/conf_gen.h:358 ../build/bin/preferences_gen.h:6909 -#: ../build/bin/preferences_gen.h:6928 +#: ../build/bin/conf_gen.h:364 ../build/bin/preferences_gen.h:7259 msgctxt "preferences" msgid "only large entries" msgstr "Seulement les grands" -#: ../build/bin/conf_gen.h:378 ../build/bin/preferences_gen.h:8069 +#: ../build/bin/conf_gen.h:390 msgctxt "preferences" msgid "sensitive" msgstr "Sensible" -#: ../build/bin/conf_gen.h:379 ../build/bin/preferences_gen.h:8074 -#: ../build/bin/preferences_gen.h:8093 +#: ../build/bin/conf_gen.h:391 ../build/bin/preferences_gen.h:8133 msgctxt "preferences" msgid "insensitive" msgstr "Insensible" -#: ../build/bin/conf_gen.h:394 ../build/bin/preferences_gen.h:5974 +#: ../build/bin/conf_gen.h:406 msgctxt "preferences" msgid "multiple GPUs" msgstr "GPU multiples" -#: ../build/bin/conf_gen.h:395 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/conf_gen.h:407 msgctxt "preferences" msgid "very fast GPU" msgstr "GPU très rapide" -#: ../build/bin/conf_gen.h:403 ../build/bin/preferences_gen.h:6040 -#: ../build/bin/preferences_gen.h:6074 +#: ../build/bin/conf_gen.h:755 msgctxt "preferences" -msgid "nothing" -msgstr "Rien" - -#: ../build/bin/conf_gen.h:404 ../build/bin/preferences_gen.h:6045 -msgctxt "preferences" -msgid "memory size" -msgstr "Taille mémoire" - -#: ../build/bin/conf_gen.h:405 ../build/bin/preferences_gen.h:6050 -msgctxt "preferences" -msgid "memory transfer" -msgstr "Transfert mémoire" - -#: ../build/bin/conf_gen.h:406 ../build/bin/preferences_gen.h:6055 -msgctxt "preferences" -msgid "memory size and transfer" -msgstr "Taille et transfert mémoire" - -#: ../build/bin/conf_gen.h:706 ../build/bin/preferences_gen.h:8257 -#: ../build/bin/preferences_gen.h:8281 -msgctxt "preferences" -msgid "id" -msgstr "Numéro" +msgid "import time" +msgstr "Date d’importation" -#: ../build/bin/conf_gen.h:707 ../build/bin/preferences_gen.h:8262 +#: ../build/bin/conf_gen.h:756 msgctxt "preferences" -msgid "folder" -msgstr "Dossier" +msgid "folder name" +msgstr "Nom de dossier" -#: ../build/bin/conf_gen.h:721 +#: ../build/bin/conf_gen.h:770 msgctxt "preferences" msgid "RGB" msgstr "RVB" -#: ../build/bin/conf_gen.h:722 +#: ../build/bin/conf_gen.h:771 msgctxt "preferences" msgid "Lab" msgstr "Lab" -#: ../build/bin/conf_gen.h:723 +#: ../build/bin/conf_gen.h:772 msgctxt "preferences" msgid "LCh" msgstr "LCh" -#: ../build/bin/conf_gen.h:724 +#: ../build/bin/conf_gen.h:773 msgctxt "preferences" msgid "HSL" msgstr "TSL" -#: ../build/bin/conf_gen.h:725 +#: ../build/bin/conf_gen.h:774 msgctxt "preferences" msgid "Hex" msgstr "Hex" -#: ../build/bin/conf_gen.h:726 ../build/bin/conf_gen.h:1830 -#: ../build/bin/conf_gen.h:2488 ../build/bin/conf_gen.h:2790 -#: ../build/bin/conf_gen.h:3044 ../build/bin/preferences_gen.h:5577 -#: ../build/bin/preferences_gen.h:6561 +#: ../build/bin/conf_gen.h:775 ../build/bin/conf_gen.h:1916 +#: ../build/bin/conf_gen.h:2578 ../build/bin/conf_gen.h:2880 +#: ../build/bin/conf_gen.h:3136 msgctxt "preferences" msgid "none" msgstr "Aucun" -#: ../build/bin/conf_gen.h:734 +#: ../build/bin/conf_gen.h:783 msgctxt "preferences" msgid "mean" msgstr "Moyenne" -#: ../build/bin/conf_gen.h:735 +#: ../build/bin/conf_gen.h:784 msgctxt "preferences" msgid "min" msgstr "Min" -#: ../build/bin/conf_gen.h:736 +#: ../build/bin/conf_gen.h:785 msgctxt "preferences" msgid "max" msgstr "Max" -#: ../build/bin/conf_gen.h:924 +#: ../build/bin/conf_gen.h:973 msgid "select only new pictures" msgstr "Sélectionner seulement les nouvelles images" -#: ../build/bin/conf_gen.h:925 +#: ../build/bin/conf_gen.h:974 msgid "only select images that have not already been imported" msgstr "Sélectionne seulement les images qui n’ont pas déjà été importées" -#: ../build/bin/conf_gen.h:930 -msgid "ignore JPEG images" -msgstr "Ignorer les fichiers JPEG" +#: ../build/bin/conf_gen.h:979 +msgid "ignore non-raw images" +msgstr "Ignorer les fichiers non-raw" -#: ../build/bin/conf_gen.h:931 +#: ../build/bin/conf_gen.h:980 msgid "" -"when having raw+JPEG images together in one directory it makes no sense to " -"import both. with this flag one can ignore all JPEGs found." +"if enabled, only raw files will be allowed to import. non-raw files will not " +"be visible in the dialog and will not be imported." msgstr "" -"Lorsque des images RAW et JPEG sont présentes ensemble dans un dossier, cela " -"n’a pas de sens d’importer les deux. En activant cette option les fichiers " -"JPEG sont ignorés." +"If activé seulement les fichiers raw seront importés. Les autres fichiers ne " +"seront pas visibles dans le dialogue et ne seront pas importés." -#: ../build/bin/conf_gen.h:936 +#: ../build/bin/conf_gen.h:985 msgid "apply metadata" msgstr "Appliquer les métadonnées" # "Applique" au présent -#: ../build/bin/conf_gen.h:937 +#: ../build/bin/conf_gen.h:986 msgid "apply some metadata to all newly imported images." msgstr "" "Applique des métadonnées\n" "à toutes les images nouvellement importées." -#: ../build/bin/conf_gen.h:942 +#: ../build/bin/conf_gen.h:991 msgid "recursive directory" msgstr "Récursivement" -#: ../build/bin/conf_gen.h:943 +#: ../build/bin/conf_gen.h:992 msgid "recursive directory traversal when importing filmrolls" msgstr "Importer les dossiers de manière récursive" -#: ../build/bin/conf_gen.h:948 +#: ../build/bin/conf_gen.h:997 msgid "creator to be applied when importing" msgstr "Auteur par défaut lors de l’importation" -#: ../build/bin/conf_gen.h:954 +#: ../build/bin/conf_gen.h:1003 msgid "publisher to be applied when importing" msgstr "Diffuseur par défaut lors de l’importation" -#: ../build/bin/conf_gen.h:960 +#: ../build/bin/conf_gen.h:1009 msgid "rights to be applied when importing" msgstr "Droits par défaut lors de l’importation" -#: ../build/bin/conf_gen.h:966 +#: ../build/bin/conf_gen.h:1015 msgid "comma separated tags to be applied when importing" msgstr "Mots-clés séparés par des virgules à appliquer à l’importation" -#: ../build/bin/conf_gen.h:972 +#: ../build/bin/conf_gen.h:1021 msgid "import tags from XMP" msgstr "Importer les mots-clés depuis un fichier XMP" -#: ../build/bin/conf_gen.h:998 +#: ../build/bin/conf_gen.h:1051 msgid "initial rating" msgstr "Notation initiale" -#: ../build/bin/conf_gen.h:999 +#: ../build/bin/conf_gen.h:1052 msgid "initial star rating for all images when importing a filmroll" msgstr "Étoile(s) attribuée(s) lors de l’importation" -#: ../build/bin/conf_gen.h:1004 +#: ../build/bin/conf_gen.h:1057 msgid "ignore EXIF rating" msgstr "Ignorer la notation EXIF" # "Ignore" au présent -#: ../build/bin/conf_gen.h:1005 +#: ../build/bin/conf_gen.h:1058 msgid "" "ignore EXIF rating. if not set and EXIF rating is found, it overrides " "'initial rating'" @@ -290,19 +254,19 @@ "Si non positionnée et qu’une notation EXIF est trouvée, celle-ci remplace la " "notation initiale." -#: ../build/bin/conf_gen.h:1010 +#: ../build/bin/conf_gen.h:1063 msgid "import job" msgstr "Nom d’importation" -#: ../build/bin/conf_gen.h:1011 +#: ../build/bin/conf_gen.h:1064 msgid "name of the import job" msgstr "Nom de l’importation" -#: ../build/bin/conf_gen.h:1016 +#: ../build/bin/conf_gen.h:1069 msgid "override today's date" msgstr "Surcharger la date d’aujourd’hui" -#: ../build/bin/conf_gen.h:1017 +#: ../build/bin/conf_gen.h:1070 msgid "" "type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override " "the current date/time used when expanding variables:\n" @@ -314,162 +278,159 @@ "$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS), $(MSEC).\n" "Laisser vide sinon." -#: ../build/bin/conf_gen.h:1022 +#: ../build/bin/conf_gen.h:1075 msgid "keep this window open" msgstr "Garder cette fenêtre ouverte" -#: ../build/bin/conf_gen.h:1023 +#: ../build/bin/conf_gen.h:1076 msgid "keep this window open to run several imports" msgstr "Garder cette fenêtre ouverte pour effectuer plusieurs importations" -#: ../build/bin/conf_gen.h:1180 ../build/bin/conf_gen.h:1196 -#: ../build/bin/preferences_gen.h:4107 ../build/bin/preferences_gen.h:4202 +#: ../build/bin/conf_gen.h:1233 ../build/bin/conf_gen.h:1249 +#: ../build/bin/conf_gen.h:1277 msgctxt "preferences" msgid "VGA" msgstr "VGA" -#: ../build/bin/conf_gen.h:1181 ../build/bin/conf_gen.h:1197 -#: ../build/bin/preferences_gen.h:4112 ../build/bin/preferences_gen.h:4207 -#: ../build/bin/preferences_gen.h:4251 +#: ../build/bin/conf_gen.h:1234 ../build/bin/conf_gen.h:1250 +#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4782 msgctxt "preferences" msgid "720p" msgstr "720p" -#: ../build/bin/conf_gen.h:1182 ../build/bin/conf_gen.h:1198 -#: ../build/bin/preferences_gen.h:4117 ../build/bin/preferences_gen.h:4212 +#: ../build/bin/conf_gen.h:1235 ../build/bin/conf_gen.h:1251 +#: ../build/bin/conf_gen.h:1279 msgctxt "preferences" msgid "1080p" msgstr "1080p" -#: ../build/bin/conf_gen.h:1183 ../build/bin/conf_gen.h:1199 -#: ../build/bin/preferences_gen.h:4122 ../build/bin/preferences_gen.h:4217 +#: ../build/bin/conf_gen.h:1236 ../build/bin/conf_gen.h:1252 +#: ../build/bin/conf_gen.h:1280 msgctxt "preferences" msgid "WQXGA" msgstr "WQXGA" -#: ../build/bin/conf_gen.h:1184 ../build/bin/conf_gen.h:1200 -#: ../build/bin/preferences_gen.h:4127 ../build/bin/preferences_gen.h:4222 +#: ../build/bin/conf_gen.h:1237 ../build/bin/conf_gen.h:1253 +#: ../build/bin/conf_gen.h:1281 msgctxt "preferences" msgid "4K" msgstr "4K" -#: ../build/bin/conf_gen.h:1185 ../build/bin/conf_gen.h:1201 -#: ../build/bin/preferences_gen.h:4132 ../build/bin/preferences_gen.h:4227 +#: ../build/bin/conf_gen.h:1238 ../build/bin/conf_gen.h:1254 +#: ../build/bin/conf_gen.h:1282 msgctxt "preferences" msgid "5K" msgstr "5K" -#: ../build/bin/conf_gen.h:1228 +#: ../build/bin/conf_gen.h:1314 msgctxt "preferences" msgid "off" msgstr "Désactivé(e)" -#: ../build/bin/conf_gen.h:1229 +#: ../build/bin/conf_gen.h:1315 msgctxt "preferences" msgid "hardness (relative)" msgstr "Dureté (relative)" -#: ../build/bin/conf_gen.h:1230 +#: ../build/bin/conf_gen.h:1316 msgctxt "preferences" msgid "hardness (absolute)" msgstr "Dureté (absolue)" -#: ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1317 msgctxt "preferences" msgid "opacity (relative)" msgstr "Opacité (relative)" -#: ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1318 msgctxt "preferences" msgid "opacity (absolute)" msgstr "Opacité (absolue)" -#: ../build/bin/conf_gen.h:1233 +#: ../build/bin/conf_gen.h:1319 msgctxt "preferences" msgid "brush size (relative)" msgstr "Taille du pinceau (relative)" -#: ../build/bin/conf_gen.h:1241 +#: ../build/bin/conf_gen.h:1327 msgctxt "preferences" msgid "low" msgstr "Bas" -#: ../build/bin/conf_gen.h:1242 +#: ../build/bin/conf_gen.h:1328 msgctxt "preferences" msgid "medium" msgstr "Moyen" -#: ../build/bin/conf_gen.h:1243 +#: ../build/bin/conf_gen.h:1329 msgctxt "preferences" msgid "high" msgstr "Haut" -#: ../build/bin/conf_gen.h:1263 ../build/bin/preferences_gen.h:4836 -#: ../build/bin/preferences_gen.h:4860 +#: ../build/bin/conf_gen.h:1349 ../build/bin/preferences_gen.h:5405 msgctxt "preferences" msgid "false color" msgstr "Fausses couleurs" -#: ../build/bin/conf_gen.h:1264 ../build/bin/preferences_gen.h:4841 +#: ../build/bin/conf_gen.h:1350 msgctxt "preferences" msgid "grayscale" msgstr "Échelle de gris" -#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4567 +#: ../build/bin/conf_gen.h:1364 msgctxt "preferences" msgid "top left" msgstr "Haut / gauche" -#: ../build/bin/conf_gen.h:1279 ../build/bin/preferences_gen.h:4572 +#: ../build/bin/conf_gen.h:1365 msgctxt "preferences" msgid "top right" msgstr "Haut / droite" -#: ../build/bin/conf_gen.h:1280 ../build/bin/preferences_gen.h:4577 +#: ../build/bin/conf_gen.h:1366 msgctxt "preferences" msgid "top center" msgstr "Haut / centre" -#: ../build/bin/conf_gen.h:1281 ../build/bin/preferences_gen.h:4582 -#: ../build/bin/preferences_gen.h:4606 +#: ../build/bin/conf_gen.h:1367 ../build/bin/preferences_gen.h:5217 msgctxt "preferences" msgid "bottom" msgstr "Bas" -#: ../build/bin/conf_gen.h:1282 ../build/bin/preferences_gen.h:4587 +#: ../build/bin/conf_gen.h:1368 msgctxt "preferences" msgid "hidden" msgstr "Caché" -#: ../build/bin/conf_gen.h:1792 +#: ../build/bin/conf_gen.h:1878 msgid "show OSD" msgstr "Afficher les contrôles" -#: ../build/bin/conf_gen.h:1793 +#: ../build/bin/conf_gen.h:1879 msgid "toggle the visibility of the map overlays" msgstr "Basculer les surimpressions de la carte" -#: ../build/bin/conf_gen.h:1798 ../src/libs/map_settings.c:146 +#: ../build/bin/conf_gen.h:1884 ../src/libs/map_settings.c:119 msgid "filtered images" msgstr "Images filtrées" -#: ../build/bin/conf_gen.h:1799 +#: ../build/bin/conf_gen.h:1885 msgid "when set limit the images drawn to the current filmstrip" msgstr "Lorsque activée, limite les images affichées à celles du bandeau" -#: ../build/bin/conf_gen.h:1806 +#: ../build/bin/conf_gen.h:1892 msgid "max images" msgstr "Max images" -#: ../build/bin/conf_gen.h:1807 +#: ../build/bin/conf_gen.h:1893 msgid "the maximum number of image thumbnails drawn on the map" msgstr "Nombre maximum d’images affichées sur la carte" -#: ../build/bin/conf_gen.h:1814 +#: ../build/bin/conf_gen.h:1900 msgid "group size factor" msgstr "Facteur de taille d’un groupe" -#: ../build/bin/conf_gen.h:1815 +#: ../build/bin/conf_gen.h:1901 msgid "" "increase or decrease the spatial size of images groups on the map. can " "influence the calculation time" @@ -477,11 +438,11 @@ "Augmente ou diminue la zone spatiale d’un groupe d’images sur la carte. Peut " "influencer le temps de calcul." -#: ../build/bin/conf_gen.h:1822 +#: ../build/bin/conf_gen.h:1908 msgid "min images per group" msgstr "Nombre minimum d’images par groupe" -#: ../build/bin/conf_gen.h:1823 +#: ../build/bin/conf_gen.h:1909 msgid "" "the minimum number of images to set up an images group. can influence the " "calculation time." @@ -489,21 +450,21 @@ "Le nombre minimum d’images pour créer un groupe. Peut influencer le temps de " "calcul." -#: ../build/bin/conf_gen.h:1828 +#: ../build/bin/conf_gen.h:1914 msgctxt "preferences" msgid "thumbnail" msgstr "Miniature" -#: ../build/bin/conf_gen.h:1829 +#: ../build/bin/conf_gen.h:1915 msgctxt "preferences" msgid "count" msgstr "Nombre" -#: ../build/bin/conf_gen.h:1832 ../src/libs/map_settings.c:159 +#: ../build/bin/conf_gen.h:1918 msgid "thumbnail display" msgstr "Affichage miniatures" -#: ../build/bin/conf_gen.h:1833 +#: ../build/bin/conf_gen.h:1919 msgid "" "three options are available: images thumbnails, only the count of images of " "the group or nothing" @@ -511,267 +472,258 @@ "Trois options disponibles : les miniatures, seulement le nombre d’images ou " "rien" -#: ../build/bin/conf_gen.h:1844 +#: ../build/bin/conf_gen.h:1930 msgid "max polygon points" msgstr "Nombre maximum de points des polygones" -#: ../build/bin/conf_gen.h:1845 +#: ../build/bin/conf_gen.h:1931 msgid "" "limit the number of points imported with polygon in find location module" msgstr "" "La limite de points de polygone importés depuis le module « Trouver un lieu »" -#: ../build/bin/conf_gen.h:2135 ../build/bin/preferences_gen.h:4722 -#: ../build/bin/preferences_gen.h:4756 +#: ../build/bin/conf_gen.h:2221 ../build/bin/preferences_gen.h:5329 msgctxt "preferences" msgid "original" msgstr "Originale" -#: ../build/bin/conf_gen.h:2136 ../build/bin/preferences_gen.h:4727 +#: ../build/bin/conf_gen.h:2222 msgctxt "preferences" msgid "to 1/2" msgstr "1/2" -#: ../build/bin/conf_gen.h:2137 ../build/bin/preferences_gen.h:4732 +#: ../build/bin/conf_gen.h:2223 msgctxt "preferences" msgid "to 1/3" msgstr "1/3" -#: ../build/bin/conf_gen.h:2138 ../build/bin/preferences_gen.h:4737 +#: ../build/bin/conf_gen.h:2224 msgctxt "preferences" msgid "to 1/4" msgstr "1/4" -#: ../build/bin/conf_gen.h:2152 ../build/bin/conf_gen.h:2162 -#: ../build/bin/preferences_gen.h:5384 ../build/bin/preferences_gen.h:5449 +#: ../build/bin/conf_gen.h:2244 ../build/bin/conf_gen.h:2254 msgctxt "preferences" msgid "bilinear" msgstr "Bilinéaire" -#: ../build/bin/conf_gen.h:2153 ../build/bin/conf_gen.h:2163 -#: ../build/bin/preferences_gen.h:5389 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5454 +#: ../build/bin/conf_gen.h:2245 ../build/bin/conf_gen.h:2255 +#: ../build/bin/preferences_gen.h:5847 msgctxt "preferences" msgid "bicubic" msgstr "Bicubique" -#: ../build/bin/conf_gen.h:2154 ../build/bin/conf_gen.h:2164 -#: ../build/bin/preferences_gen.h:5394 ../build/bin/preferences_gen.h:5459 +#: ../build/bin/conf_gen.h:2246 ../build/bin/conf_gen.h:2256 msgctxt "preferences" msgid "lanczos2" msgstr "Lanczos2" -#: ../build/bin/conf_gen.h:2165 ../build/bin/preferences_gen.h:5464 -#: ../build/bin/preferences_gen.h:5483 +#: ../build/bin/conf_gen.h:2257 ../build/bin/preferences_gen.h:5882 msgctxt "preferences" msgid "lanczos3" msgstr "Lanczos3" -#: ../build/bin/conf_gen.h:2487 ../build/bin/conf_gen.h:3217 -#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:6556 -#: ../build/bin/preferences_gen.h:6592 +#: ../build/bin/conf_gen.h:2577 ../build/bin/conf_gen.h:3303 +#: ../build/bin/preferences_gen.h:7032 msgctxt "preferences" msgid "auto" msgstr "Automatique" -#: ../build/bin/conf_gen.h:2489 ../build/bin/preferences_gen.h:6566 +#: ../build/bin/conf_gen.h:2579 msgctxt "preferences" msgid "libsecret" msgstr "libsecret" -#: ../build/bin/conf_gen.h:2490 ../build/bin/preferences_gen.h:6572 +#: ../build/bin/conf_gen.h:2580 msgctxt "preferences" msgid "kwallet" msgstr "kwallet" -#: ../build/bin/conf_gen.h:2700 +#: ../build/bin/conf_gen.h:2790 msgctxt "preferences" msgid "vectorscope" msgstr "Vectorscope" -#: ../build/bin/conf_gen.h:2701 +#: ../build/bin/conf_gen.h:2791 msgctxt "preferences" msgid "waveform" msgstr "Forme d’onde" -#: ../build/bin/conf_gen.h:2702 +#: ../build/bin/conf_gen.h:2792 msgctxt "preferences" msgid "RGB parade" msgstr "Parade RVB" -#: ../build/bin/conf_gen.h:2703 +#: ../build/bin/conf_gen.h:2793 msgctxt "preferences" msgid "histogram" msgstr "Histogramme" -#: ../build/bin/conf_gen.h:2711 ../build/bin/preferences_gen.h:7264 +#: ../build/bin/conf_gen.h:2801 msgctxt "preferences" msgid "left" msgstr "Gauche" -#: ../build/bin/conf_gen.h:2712 ../build/bin/preferences_gen.h:7269 -#: ../build/bin/preferences_gen.h:7288 +#: ../build/bin/conf_gen.h:2802 ../build/bin/preferences_gen.h:7619 msgctxt "preferences" msgid "right" msgstr "Droite" -#: ../build/bin/conf_gen.h:2720 ../build/bin/conf_gen.h:2757 +#: ../build/bin/conf_gen.h:2810 ../build/bin/conf_gen.h:2847 msgctxt "preferences" msgid "logarithmic" msgstr "Logarithmique" -#: ../build/bin/conf_gen.h:2721 ../build/bin/conf_gen.h:2758 +#: ../build/bin/conf_gen.h:2811 ../build/bin/conf_gen.h:2848 msgctxt "preferences" msgid "linear" msgstr "Linéaire" -#: ../build/bin/conf_gen.h:2729 +#: ../build/bin/conf_gen.h:2819 msgctxt "preferences" msgid "horizontal" msgstr "Horizontal" -#: ../build/bin/conf_gen.h:2730 +#: ../build/bin/conf_gen.h:2820 msgctxt "preferences" msgid "vertical" msgstr "Vertical" -#: ../build/bin/conf_gen.h:2738 +#: ../build/bin/conf_gen.h:2828 msgctxt "preferences" msgid "overlaid" msgstr "Superposer" -#: ../build/bin/conf_gen.h:2739 +#: ../build/bin/conf_gen.h:2829 msgctxt "preferences" msgid "parade" msgstr "Parade" -#: ../build/bin/conf_gen.h:2747 +#: ../build/bin/conf_gen.h:2837 msgctxt "preferences" msgid "u*v*" msgstr "U*v*" -#: ../build/bin/conf_gen.h:2748 +#: ../build/bin/conf_gen.h:2838 msgctxt "preferences" msgid "AzBz" msgstr "AzBz" -#: ../build/bin/conf_gen.h:2749 +#: ../build/bin/conf_gen.h:2839 msgctxt "preferences" msgid "RYB" msgstr "RJB" -#: ../build/bin/conf_gen.h:2791 +#: ../build/bin/conf_gen.h:2881 msgctxt "preferences" msgid "monochromatic" msgstr "Monochromatique" -#: ../build/bin/conf_gen.h:2792 +#: ../build/bin/conf_gen.h:2882 msgctxt "preferences" msgid "analogous" msgstr "Analogue" -#: ../build/bin/conf_gen.h:2793 +#: ../build/bin/conf_gen.h:2883 msgctxt "preferences" msgid "analogous complementary" msgstr "Complémentaire analogue" -#: ../build/bin/conf_gen.h:2794 +#: ../build/bin/conf_gen.h:2884 msgctxt "preferences" msgid "complementary" msgstr "Complémentaire" -#: ../build/bin/conf_gen.h:2795 +#: ../build/bin/conf_gen.h:2885 msgctxt "preferences" msgid "split complementary" msgstr "Complémentaire divisé" -#: ../build/bin/conf_gen.h:2796 +#: ../build/bin/conf_gen.h:2886 msgctxt "preferences" msgid "dyad" msgstr "Dyade" -#: ../build/bin/conf_gen.h:2797 +#: ../build/bin/conf_gen.h:2887 msgctxt "preferences" msgid "triad" msgstr "Triade" -#: ../build/bin/conf_gen.h:2798 +#: ../build/bin/conf_gen.h:2888 msgctxt "preferences" msgid "tetrad" msgstr "Tétrade" -#: ../build/bin/conf_gen.h:2799 +#: ../build/bin/conf_gen.h:2889 msgctxt "preferences" msgid "square" msgstr "Carré" -#: ../build/bin/conf_gen.h:2813 +#: ../build/bin/conf_gen.h:2903 msgctxt "preferences" msgid "normal" msgstr "Normal" -#: ../build/bin/conf_gen.h:2815 +#: ../build/bin/conf_gen.h:2905 msgctxt "preferences" msgid "narrow" msgstr "Étroit" -#: ../build/bin/conf_gen.h:2816 +#: ../build/bin/conf_gen.h:2906 msgctxt "preferences" msgid "line" msgstr "Ligne" -#: ../build/bin/conf_gen.h:2956 +#: ../build/bin/conf_gen.h:3046 msgctxt "preferences" msgid "mm" msgstr "mm" -#: ../build/bin/conf_gen.h:2957 +#: ../build/bin/conf_gen.h:3047 msgctxt "preferences" msgid "cm" msgstr "cm" -#: ../build/bin/conf_gen.h:2958 +#: ../build/bin/conf_gen.h:3048 msgctxt "preferences" msgid "inch" msgstr "pouce" -#: ../build/bin/conf_gen.h:3003 ../build/bin/preferences_gen.h:7324 -#: ../build/bin/preferences_gen.h:7353 +#: ../build/bin/conf_gen.h:3093 ../build/bin/preferences_gen.h:7654 msgctxt "preferences" msgid "all" msgstr "Tout" -#: ../build/bin/conf_gen.h:3004 ../build/bin/preferences_gen.h:7329 +#: ../build/bin/conf_gen.h:3094 msgctxt "preferences" msgid "xatom" msgstr "xatom" -#: ../build/bin/conf_gen.h:3005 ../build/bin/preferences_gen.h:7334 +#: ../build/bin/conf_gen.h:3095 msgctxt "preferences" msgid "colord" msgstr "colord" -#: ../build/bin/conf_gen.h:3041 ../build/bin/preferences_gen.h:5562 -#: ../build/bin/preferences_gen.h:5596 +#: ../build/bin/conf_gen.h:3133 ../build/bin/preferences_gen.h:5958 msgctxt "preferences" msgid "scene-referred (filmic)" msgstr "Relatif à la scène (Filmique RVB)" -#: ../build/bin/conf_gen.h:3042 ../build/bin/preferences_gen.h:5567 +#: ../build/bin/conf_gen.h:3134 msgctxt "preferences" msgid "scene-referred (sigmoid)" -msgstr "Relatif à la scène (Sigmoid)" +msgstr "Relatif à la scène (Sigmoïde)" -#: ../build/bin/conf_gen.h:3043 ../build/bin/preferences_gen.h:5572 +#: ../build/bin/conf_gen.h:3135 msgctxt "preferences" msgid "display-referred (legacy)" msgstr "Relatif à l’affichage (ancien)" -#: ../build/bin/conf_gen.h:3144 +#: ../build/bin/conf_gen.h:3230 msgid "camera time zone" msgstr "Fuseau horaire du boîtier" -#: ../build/bin/conf_gen.h:3145 +#: ../build/bin/conf_gen.h:3231 msgid "" "most cameras don't store the time zone in EXIF. give the correct time zone " "so the GPX data can be correctly matched" @@ -780,214 +732,274 @@ "données EXIF.\n" "En donnant le fuseau correct, les données GPX pourront être recalées." -#: ../build/bin/conf_gen.h:3156 +#: ../build/bin/conf_gen.h:3242 msgctxt "preferences" msgid "no color" msgstr "Sans couleur" -#: ../build/bin/conf_gen.h:3157 +#: ../build/bin/conf_gen.h:3243 msgctxt "preferences" msgid "illuminant color" msgstr "Couleur de l’illuminant" -#: ../build/bin/conf_gen.h:3158 +#: ../build/bin/conf_gen.h:3244 msgctxt "preferences" msgid "effect emulation" msgstr "Effet d’émulation" -#: ../build/bin/conf_gen.h:3204 +#: ../build/bin/conf_gen.h:3290 msgctxt "preferences" msgid "list" msgstr "Liste" -#: ../build/bin/conf_gen.h:3205 +#: ../build/bin/conf_gen.h:3291 msgctxt "preferences" msgid "tabs" msgstr "Onglets" -#: ../build/bin/conf_gen.h:3206 +#: ../build/bin/conf_gen.h:3292 msgctxt "preferences" msgid "columns" msgstr "Colonnes" -#: ../build/bin/conf_gen.h:3215 ../build/bin/preferences_gen.h:5117 +#: ../build/bin/conf_gen.h:3301 msgctxt "preferences" msgid "active" msgstr "Actif" -#: ../build/bin/conf_gen.h:3216 ../build/bin/preferences_gen.h:5122 +#: ../build/bin/conf_gen.h:3302 msgctxt "preferences" msgid "dim" msgstr "Atténué" -#: ../build/bin/conf_gen.h:3218 ../build/bin/preferences_gen.h:5132 +#: ../build/bin/conf_gen.h:3304 msgctxt "preferences" msgid "fade" msgstr "Estompé" -#: ../build/bin/conf_gen.h:3219 ../build/bin/preferences_gen.h:5137 +#: ../build/bin/conf_gen.h:3305 msgctxt "preferences" msgid "fit" msgstr "Ajusté" -#: ../build/bin/conf_gen.h:3220 ../build/bin/preferences_gen.h:5142 +#: ../build/bin/conf_gen.h:3306 msgctxt "preferences" msgid "smooth" msgstr "Doux" -#: ../build/bin/conf_gen.h:3221 ../build/bin/preferences_gen.h:5147 +#: ../build/bin/conf_gen.h:3307 msgctxt "preferences" msgid "glide" msgstr "Glisser" -#: ../build/bin/preferences_gen.h:81 ../build/bin/preferences_gen.h:3823 -#: ../build/bin/preferences_gen.h:3859 ../build/bin/preferences_gen.h:3895 -#: ../build/bin/preferences_gen.h:3931 ../build/bin/preferences_gen.h:3967 -#: ../build/bin/preferences_gen.h:4003 ../build/bin/preferences_gen.h:4039 -#: ../build/bin/preferences_gen.h:4083 ../build/bin/preferences_gen.h:4178 -#: ../build/bin/preferences_gen.h:4273 ../build/bin/preferences_gen.h:4313 -#: ../build/bin/preferences_gen.h:4356 ../build/bin/preferences_gen.h:4437 -#: ../build/bin/preferences_gen.h:4473 ../build/bin/preferences_gen.h:4510 -#: ../build/bin/preferences_gen.h:4553 ../build/bin/preferences_gen.h:4627 -#: ../build/bin/preferences_gen.h:4672 ../build/bin/preferences_gen.h:4708 -#: ../build/bin/preferences_gen.h:4778 ../build/bin/preferences_gen.h:4822 -#: ../build/bin/preferences_gen.h:4882 ../build/bin/preferences_gen.h:4918 -#: ../build/bin/preferences_gen.h:4954 ../build/bin/preferences_gen.h:4990 -#: ../build/bin/preferences_gen.h:5026 ../build/bin/preferences_gen.h:5062 -#: ../build/bin/preferences_gen.h:5098 ../build/bin/preferences_gen.h:5188 -#: ../build/bin/preferences_gen.h:5224 ../build/bin/preferences_gen.h:5260 -#: ../build/bin/preferences_gen.h:5334 ../build/bin/preferences_gen.h:5370 -#: ../build/bin/preferences_gen.h:5435 ../build/bin/preferences_gen.h:5505 -#: ../build/bin/preferences_gen.h:5548 ../build/bin/preferences_gen.h:5618 -#: ../build/bin/preferences_gen.h:5654 ../build/bin/preferences_gen.h:5690 -#: ../build/bin/preferences_gen.h:5734 ../build/bin/preferences_gen.h:5805 -#: ../build/bin/preferences_gen.h:5841 ../build/bin/preferences_gen.h:5877 -#: ../build/bin/preferences_gen.h:5913 ../build/bin/preferences_gen.h:5955 -#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6140 -#: ../build/bin/preferences_gen.h:6176 ../build/bin/preferences_gen.h:6212 -#: ../build/bin/preferences_gen.h:6248 ../build/bin/preferences_gen.h:6284 -#: ../build/bin/preferences_gen.h:6320 ../build/bin/preferences_gen.h:6356 -#: ../build/bin/preferences_gen.h:6392 ../build/bin/preferences_gen.h:6427 -#: ../build/bin/preferences_gen.h:6462 ../build/bin/preferences_gen.h:6498 -#: ../build/bin/preferences_gen.h:6542 ../build/bin/preferences_gen.h:6614 -#: ../build/bin/preferences_gen.h:6692 ../build/bin/preferences_gen.h:6767 -#: ../build/bin/preferences_gen.h:6820 ../build/bin/preferences_gen.h:6885 -#: ../build/bin/preferences_gen.h:6950 ../build/bin/preferences_gen.h:7024 -#: ../build/bin/preferences_gen.h:7060 ../build/bin/preferences_gen.h:7096 -#: ../build/bin/preferences_gen.h:7132 ../build/bin/preferences_gen.h:7168 -#: ../build/bin/preferences_gen.h:7204 ../build/bin/preferences_gen.h:7250 -#: ../build/bin/preferences_gen.h:7310 ../build/bin/preferences_gen.h:7375 -#: ../build/bin/preferences_gen.h:7429 ../build/bin/preferences_gen.h:7474 -#: ../build/bin/preferences_gen.h:7510 ../build/bin/preferences_gen.h:7546 -#: ../build/bin/preferences_gen.h:7582 ../build/bin/preferences_gen.h:7618 -#: ../build/bin/preferences_gen.h:7678 ../build/bin/preferences_gen.h:7722 -#: ../build/bin/preferences_gen.h:7766 ../build/bin/preferences_gen.h:7848 -#: ../build/bin/preferences_gen.h:7888 ../build/bin/preferences_gen.h:7928 -#: ../build/bin/preferences_gen.h:7964 ../build/bin/preferences_gen.h:8019 -#: ../build/bin/preferences_gen.h:8055 ../build/bin/preferences_gen.h:8115 -#: ../build/bin/preferences_gen.h:8161 ../build/bin/preferences_gen.h:8197 -#: ../build/bin/preferences_gen.h:8243 ../build/bin/preferences_gen.h:8303 -#: ../build/bin/preferences_gen.h:8355 ../build/bin/preferences_gen.h:8401 -#: ../build/bin/preferences_gen.h:8469 ../build/bin/preferences_gen.h:8516 +#: ../build/bin/preferences_gen.h:77 ../build/bin/preferences_gen.h:4305 +#: ../build/bin/preferences_gen.h:4344 ../build/bin/preferences_gen.h:4383 +#: ../build/bin/preferences_gen.h:4417 ../build/bin/preferences_gen.h:4488 +#: ../build/bin/preferences_gen.h:4522 ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:4590 ../build/bin/preferences_gen.h:4624 +#: ../build/bin/preferences_gen.h:4658 ../build/bin/preferences_gen.h:4692 +#: ../build/bin/preferences_gen.h:4733 ../build/bin/preferences_gen.h:4768 +#: ../build/bin/preferences_gen.h:4803 ../build/bin/preferences_gen.h:4837 +#: ../build/bin/preferences_gen.h:4871 ../build/bin/preferences_gen.h:4906 +#: ../build/bin/preferences_gen.h:4940 ../build/bin/preferences_gen.h:4979 +#: ../build/bin/preferences_gen.h:5020 ../build/bin/preferences_gen.h:5093 +#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:5162 +#: ../build/bin/preferences_gen.h:5203 ../build/bin/preferences_gen.h:5237 +#: ../build/bin/preferences_gen.h:5281 ../build/bin/preferences_gen.h:5315 +#: ../build/bin/preferences_gen.h:5350 ../build/bin/preferences_gen.h:5391 +#: ../build/bin/preferences_gen.h:5426 ../build/bin/preferences_gen.h:5460 +#: ../build/bin/preferences_gen.h:5494 ../build/bin/preferences_gen.h:5528 +#: ../build/bin/preferences_gen.h:5562 ../build/bin/preferences_gen.h:5596 +#: ../build/bin/preferences_gen.h:5630 ../build/bin/preferences_gen.h:5665 +#: ../build/bin/preferences_gen.h:5699 ../build/bin/preferences_gen.h:5733 +#: ../build/bin/preferences_gen.h:5799 ../build/bin/preferences_gen.h:5833 +#: ../build/bin/preferences_gen.h:5868 ../build/bin/preferences_gen.h:5903 +#: ../build/bin/preferences_gen.h:5944 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/preferences_gen.h:6013 ../build/bin/preferences_gen.h:6047 +#: ../build/bin/preferences_gen.h:6088 ../build/bin/preferences_gen.h:6124 +#: ../build/bin/preferences_gen.h:6165 ../build/bin/preferences_gen.h:6209 +#: ../build/bin/preferences_gen.h:6254 ../build/bin/preferences_gen.h:6305 +#: ../build/bin/preferences_gen.h:6349 ../build/bin/preferences_gen.h:6393 +#: ../build/bin/preferences_gen.h:6437 ../build/bin/preferences_gen.h:6481 +#: ../build/bin/preferences_gen.h:6525 ../build/bin/preferences_gen.h:6569 +#: ../build/bin/preferences_gen.h:6635 ../build/bin/preferences_gen.h:6669 +#: ../build/bin/preferences_gen.h:6703 ../build/bin/preferences_gen.h:6737 +#: ../build/bin/preferences_gen.h:6771 ../build/bin/preferences_gen.h:6805 +#: ../build/bin/preferences_gen.h:6839 ../build/bin/preferences_gen.h:6873 +#: ../build/bin/preferences_gen.h:6906 ../build/bin/preferences_gen.h:6939 +#: ../build/bin/preferences_gen.h:6973 ../build/bin/preferences_gen.h:7014 +#: ../build/bin/preferences_gen.h:7053 ../build/bin/preferences_gen.h:7124 +#: ../build/bin/preferences_gen.h:7159 ../build/bin/preferences_gen.h:7210 +#: ../build/bin/preferences_gen.h:7245 ../build/bin/preferences_gen.h:7280 +#: ../build/bin/preferences_gen.h:7324 ../build/bin/preferences_gen.h:7390 +#: ../build/bin/preferences_gen.h:7424 ../build/bin/preferences_gen.h:7458 +#: ../build/bin/preferences_gen.h:7492 ../build/bin/preferences_gen.h:7526 +#: ../build/bin/preferences_gen.h:7560 ../build/bin/preferences_gen.h:7605 +#: ../build/bin/preferences_gen.h:7640 ../build/bin/preferences_gen.h:7675 +#: ../build/bin/preferences_gen.h:7731 ../build/bin/preferences_gen.h:7772 +#: ../build/bin/preferences_gen.h:7806 ../build/bin/preferences_gen.h:7840 +#: ../build/bin/preferences_gen.h:7874 ../build/bin/preferences_gen.h:7908 +#: ../build/bin/preferences_gen.h:7943 ../build/bin/preferences_gen.h:7984 +#: ../build/bin/preferences_gen.h:8025 ../build/bin/preferences_gen.h:8085 +#: ../build/bin/preferences_gen.h:8119 ../build/bin/preferences_gen.h:8154 +#: ../build/bin/preferences_gen.h:8199 ../build/bin/preferences_gen.h:8233 +#: ../build/bin/preferences_gen.h:8278 ../build/bin/preferences_gen.h:8313 +#: ../build/bin/preferences_gen.h:8365 ../build/bin/preferences_gen.h:8410 +#: ../build/bin/preferences_gen.h:8480 ../build/bin/preferences_gen.h:8526 msgid "this setting has been modified" msgstr "Ce paramètre a été modifié" #. doesn't seem to work from gtkrc -#: ../build/bin/preferences_gen.h:3793 ../build/bin/preferences_gen.h:4407 -#: ../build/bin/preferences_gen.h:5304 ../build/bin/preferences_gen.h:6110 -#: ../build/bin/preferences_gen.h:6662 ../build/bin/preferences_gen.h:6994 -#: ../build/bin/preferences_gen.h:7818 ../src/gui/accelerators.c:2724 -#: ../src/gui/gtk.c:2580 ../src/gui/preferences.c:421 -#: ../src/gui/preferences.c:876 ../src/libs/modulegroups.c:3886 +#: ../build/bin/preferences_gen.h:4277 ../build/bin/preferences_gen.h:4460 +#: ../build/bin/preferences_gen.h:5065 ../build/bin/preferences_gen.h:5771 +#: ../build/bin/preferences_gen.h:6607 ../build/bin/preferences_gen.h:7096 +#: ../build/bin/preferences_gen.h:7362 ../src/gui/accelerators.c:2996 +#: ../src/gui/gtk.c:2641 ../src/gui/preferences.c:424 +#: ../src/gui/preferences.c:874 ../src/libs/modulegroups.c:3888 msgid "?" msgstr "?" -#: ../build/bin/preferences_gen.h:3806 ../build/bin/preferences_gen.h:4420 -#: ../build/bin/preferences_gen.h:6123 ../src/gui/preferences.c:270 -msgid "general" -msgstr "Général" +#: ../build/bin/preferences_gen.h:4287 ../src/control/jobs/control_jobs.c:2352 +#: ../src/libs/import.c:173 +msgid "import" +msgstr "Importer" -#: ../build/bin/preferences_gen.h:3826 -msgid "hide built-in presets for utility modules" -msgstr "Cacher les préréglages internes des modules utilitaires" +#: ../build/bin/preferences_gen.h:4289 +msgid "session options" +msgstr "Options de session" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4017 -#: ../build/bin/preferences_gen.h:4053 ../build/bin/preferences_gen.h:4156 -#: ../build/bin/preferences_gen.h:4251 ../build/bin/preferences_gen.h:4291 -#: ../build/bin/preferences_gen.h:4334 ../build/bin/preferences_gen.h:4377 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4531 ../build/bin/preferences_gen.h:4606 -#: ../build/bin/preferences_gen.h:4686 ../build/bin/preferences_gen.h:4756 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4860 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5040 ../build/bin/preferences_gen.h:5076 -#: ../build/bin/preferences_gen.h:5166 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5274 -#: ../build/bin/preferences_gen.h:5348 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5483 ../build/bin/preferences_gen.h:5525 -#: ../build/bin/preferences_gen.h:5596 ../build/bin/preferences_gen.h:5632 -#: ../build/bin/preferences_gen.h:5668 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5782 ../build/bin/preferences_gen.h:5819 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:5927 ../build/bin/preferences_gen.h:5998 -#: ../build/bin/preferences_gen.h:6074 ../build/bin/preferences_gen.h:6154 -#: ../build/bin/preferences_gen.h:6190 ../build/bin/preferences_gen.h:6226 -#: ../build/bin/preferences_gen.h:6262 ../build/bin/preferences_gen.h:6298 -#: ../build/bin/preferences_gen.h:6334 ../build/bin/preferences_gen.h:6370 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:6592 ../build/bin/preferences_gen.h:6632 -#: ../build/bin/preferences_gen.h:6745 ../build/bin/preferences_gen.h:6863 -#: ../build/bin/preferences_gen.h:6928 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7146 -#: ../build/bin/preferences_gen.h:7182 ../build/bin/preferences_gen.h:7288 -#: ../build/bin/preferences_gen.h:7353 ../build/bin/preferences_gen.h:7393 -#: ../build/bin/preferences_gen.h:7443 ../build/bin/preferences_gen.h:7488 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7656 -#: ../build/bin/preferences_gen.h:7692 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:7866 ../build/bin/preferences_gen.h:7906 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:7982 -#: ../build/bin/preferences_gen.h:8033 ../build/bin/preferences_gen.h:8093 -#: ../build/bin/preferences_gen.h:8175 ../build/bin/preferences_gen.h:8281 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4308 +msgid "base directory naming pattern" +msgstr "Nommage du répertoire de base" + +#: ../build/bin/preferences_gen.h:4323 ../build/bin/preferences_gen.h:4362 +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4435 +#: ../build/bin/preferences_gen.h:4501 ../build/bin/preferences_gen.h:4535 +#: ../build/bin/preferences_gen.h:4569 ../build/bin/preferences_gen.h:4603 +#: ../build/bin/preferences_gen.h:4637 ../build/bin/preferences_gen.h:4671 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4747 +#: ../build/bin/preferences_gen.h:4782 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:4850 ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:4958 +#: ../build/bin/preferences_gen.h:4999 ../build/bin/preferences_gen.h:5040 +#: ../build/bin/preferences_gen.h:5106 ../build/bin/preferences_gen.h:5140 +#: ../build/bin/preferences_gen.h:5182 ../build/bin/preferences_gen.h:5217 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5329 +#: ../build/bin/preferences_gen.h:5363 ../build/bin/preferences_gen.h:5405 +#: ../build/bin/preferences_gen.h:5439 ../build/bin/preferences_gen.h:5473 +#: ../build/bin/preferences_gen.h:5507 ../build/bin/preferences_gen.h:5541 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5644 ../build/bin/preferences_gen.h:5678 +#: ../build/bin/preferences_gen.h:5712 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5847 +#: ../build/bin/preferences_gen.h:5882 ../build/bin/preferences_gen.h:5922 +#: ../build/bin/preferences_gen.h:5958 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6060 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6178 ../build/bin/preferences_gen.h:6223 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6318 +#: ../build/bin/preferences_gen.h:6362 ../build/bin/preferences_gen.h:6406 +#: ../build/bin/preferences_gen.h:6450 ../build/bin/preferences_gen.h:6494 +#: ../build/bin/preferences_gen.h:6538 ../build/bin/preferences_gen.h:6582 +#: ../build/bin/preferences_gen.h:6648 ../build/bin/preferences_gen.h:6682 +#: ../build/bin/preferences_gen.h:6716 ../build/bin/preferences_gen.h:6750 +#: ../build/bin/preferences_gen.h:6784 ../build/bin/preferences_gen.h:6818 +#: ../build/bin/preferences_gen.h:6852 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7032 +#: ../build/bin/preferences_gen.h:7071 ../build/bin/preferences_gen.h:7138 +#: ../build/bin/preferences_gen.h:7224 ../build/bin/preferences_gen.h:7259 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7505 ../build/bin/preferences_gen.h:7539 +#: ../build/bin/preferences_gen.h:7619 ../build/bin/preferences_gen.h:7654 +#: ../build/bin/preferences_gen.h:7693 ../build/bin/preferences_gen.h:7744 +#: ../build/bin/preferences_gen.h:7785 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7922 ../build/bin/preferences_gen.h:7956 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8133 ../build/bin/preferences_gen.h:8212 +#: ../build/bin/preferences_gen.h:8292 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 #, c-format msgid "double click to reset to `%s'" msgstr "Double clic pour réinitialiser à « %s »" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4053 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4686 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:5040 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5348 -#: ../build/bin/preferences_gen.h:5632 ../build/bin/preferences_gen.h:5668 -#: ../build/bin/preferences_gen.h:5819 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:6370 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7146 ../build/bin/preferences_gen.h:7443 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7692 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:8033 -#: ../build/bin/preferences_gen.h:8175 +#: ../build/bin/preferences_gen.h:4326 ../build/bin/preferences_gen.h:4365 +msgid "part of full import path for an import session" +msgstr "Partie du chemin complet pour la session d’importation" + +#: ../build/bin/preferences_gen.h:4347 +msgid "sub directory naming pattern" +msgstr "Nommage du sous-répertoire" + +#: ../build/bin/preferences_gen.h:4386 +msgid "keep original filename" +msgstr "Garder le nom d’origine" + +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4501 +#: ../build/bin/preferences_gen.h:4535 ../build/bin/preferences_gen.h:4569 +#: ../build/bin/preferences_gen.h:4603 ../build/bin/preferences_gen.h:4637 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4850 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:5106 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5439 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5712 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6450 +#: ../build/bin/preferences_gen.h:6494 ../build/bin/preferences_gen.h:6538 +#: ../build/bin/preferences_gen.h:6582 ../build/bin/preferences_gen.h:6852 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7505 +#: ../build/bin/preferences_gen.h:7744 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7956 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8212 msgctxt "preferences" msgid "FALSE" msgstr "FAUX" -#: ../build/bin/preferences_gen.h:3840 +#: ../build/bin/preferences_gen.h:4399 +msgid "" +"keep original filename instead of a pattern while importing from camera or " +"card" +msgstr "" +"Conserve le nom d’origine des fichiers au lieu d’appliquer le patron\n" +"lors de l’importation depuis un appareil photo ou une carte mémoire" + +#: ../build/bin/preferences_gen.h:4420 +msgid "file naming pattern" +msgstr "Nommage des fichiers" + +#: ../build/bin/preferences_gen.h:4438 +msgid "file naming pattern used for a import session" +msgstr "Nommage des fichiers pour la session d’importation" + +#: ../build/bin/preferences_gen.h:4470 ../src/gui/gtk.c:1266 +#: ../src/gui/preferences.c:544 ../src/libs/tools/lighttable.c:66 +#: ../src/views/lighttable.c:91 +msgid "lighttable" +msgstr "Table lumineuse" + +#: ../build/bin/preferences_gen.h:4472 ../build/bin/preferences_gen.h:5077 +#: ../build/bin/preferences_gen.h:6619 ../src/gui/preferences.c:270 +msgid "general" +msgstr "Général" + +#: ../build/bin/preferences_gen.h:4491 +msgid "hide built-in presets for utility modules" +msgstr "Cacher les préréglages internes des modules utilitaires" + +#: ../build/bin/preferences_gen.h:4504 msgid "hides built-in presets of utility modules in presets menu." msgstr "" "Cache les préréglages internes des modules utilitaires dans leurs menus des " "préréglages." -#: ../build/bin/preferences_gen.h:3862 +#: ../build/bin/preferences_gen.h:4525 msgid "use single-click in the collections module" msgstr "Utiliser un seul clic dans le module « Collections »" -#: ../build/bin/preferences_gen.h:3876 +#: ../build/bin/preferences_gen.h:4538 msgid "" "check this option to use single-click to select items in the collections " "module. this will allow you to do range selections for date-time and numeric " @@ -997,20 +1009,20 @@ "Cela permet aussi de sélectionner des étendues de dates et de valeurs " "numériques." -#: ../build/bin/preferences_gen.h:3898 +#: ../build/bin/preferences_gen.h:4559 msgid "expand a single utility module at a time" msgstr "Déplier un seul module utilitaire de la table lumineuse à la fois" -#: ../build/bin/preferences_gen.h:3912 +#: ../build/bin/preferences_gen.h:4572 msgid "this option toggles the behavior of shift clicking in lighttable mode" msgstr "Change le comportement du Maj+clic dans la table lumineuse" -#: ../build/bin/preferences_gen.h:3934 +#: ../build/bin/preferences_gen.h:4593 msgid "scroll utility modules to the top when expanded" msgstr "" "Repositionner les modules utilitaires en haut lorsque qu’ils sont dépliés" -#: ../build/bin/preferences_gen.h:3948 ../build/bin/preferences_gen.h:5079 +#: ../build/bin/preferences_gen.h:4606 ../build/bin/preferences_gen.h:5612 msgid "" "when this option is enabled then darktable will try to scroll the module to " "the top of the visible list" @@ -1018,59 +1030,61 @@ "Si activé darktable essaiera de positionner le module pour qu’il soit " "entièrement visible" -#: ../build/bin/preferences_gen.h:3970 +#: ../build/bin/preferences_gen.h:4627 msgid "rating an image one star twice will not zero out the rating" msgstr "Appliquer une étoile deux fois à une image ne la supprimera pas" -#: ../build/bin/preferences_gen.h:3984 +#: ../build/bin/preferences_gen.h:4640 msgid "" "defines whether rating an image one star twice will zero out star rating" msgstr "Définit si appliquer une étoile deux fois réinitialise la notation" -#: ../build/bin/preferences_gen.h:4006 ../build/bin/preferences_gen.h:4675 +#: ../build/bin/preferences_gen.h:4661 ../build/bin/preferences_gen.h:5284 msgid "show scrollbars for central view" msgstr "Afficher les barres de défilement dans la vue centrale" -#: ../build/bin/preferences_gen.h:4017 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5076 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5274 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5927 -#: ../build/bin/preferences_gen.h:6154 ../build/bin/preferences_gen.h:6190 -#: ../build/bin/preferences_gen.h:6226 ../build/bin/preferences_gen.h:6262 -#: ../build/bin/preferences_gen.h:6298 ../build/bin/preferences_gen.h:6334 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7182 -#: ../build/bin/preferences_gen.h:7488 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4671 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:5140 ../build/bin/preferences_gen.h:5363 +#: ../build/bin/preferences_gen.h:5473 ../build/bin/preferences_gen.h:5507 +#: ../build/bin/preferences_gen.h:5541 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5678 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:6060 ../build/bin/preferences_gen.h:6178 +#: ../build/bin/preferences_gen.h:6318 ../build/bin/preferences_gen.h:6362 +#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6648 +#: ../build/bin/preferences_gen.h:6682 ../build/bin/preferences_gen.h:6716 +#: ../build/bin/preferences_gen.h:6750 ../build/bin/preferences_gen.h:6784 +#: ../build/bin/preferences_gen.h:6818 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7539 ../build/bin/preferences_gen.h:7785 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 msgctxt "preferences" msgid "TRUE" msgstr "VRAI" -#: ../build/bin/preferences_gen.h:4020 ../build/bin/preferences_gen.h:4689 +#: ../build/bin/preferences_gen.h:4674 ../build/bin/preferences_gen.h:5297 msgid "defines whether scrollbars should be displayed" msgstr "Définit si les barres de défilement doivent apparaître" -#: ../build/bin/preferences_gen.h:4042 +#: ../build/bin/preferences_gen.h:4695 msgid "show image time with milliseconds" msgstr "Afficher les millisecondes des heures des images" -#: ../build/bin/preferences_gen.h:4056 +#: ../build/bin/preferences_gen.h:4708 msgid "defines whether time should be displayed with milliseconds" msgstr "Définit si les heures sont à afficher avec les millisecondes" -#: ../build/bin/preferences_gen.h:4066 +#: ../build/bin/preferences_gen.h:4717 msgid "thumbnails" msgstr "Miniatures" -#: ../build/bin/preferences_gen.h:4086 +#: ../build/bin/preferences_gen.h:4736 msgid "use raw file instead of embedded JPEG from size" msgstr "Utiliser le RAW à la place du JPEG embarqué à partir de la taille" -#: ../build/bin/preferences_gen.h:4159 +#: ../build/bin/preferences_gen.h:4750 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "raw file instead of the embedded preview JPEG (better but slower).\n" @@ -1086,11 +1100,11 @@ "« Toujours »\n" "doit être sélectionnée (plus de détails dans le manuel)." -#: ../build/bin/preferences_gen.h:4181 +#: ../build/bin/preferences_gen.h:4771 msgid "high quality processing from size" msgstr "Développement de haute qualité à partir de la taille" -#: ../build/bin/preferences_gen.h:4254 +#: ../build/bin/preferences_gen.h:4785 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "the full quality rendering path (better but slower).\n" @@ -1105,11 +1119,86 @@ "« Toujours »\n" "doit être sélectionnée (plus de détails dans le manuel)." -#: ../build/bin/preferences_gen.h:4276 +#: ../build/bin/preferences_gen.h:4806 +msgid "enable disk backend for thumbnail cache" +msgstr "Utiliser le disque pour le cache des miniatures" + +#: ../build/bin/preferences_gen.h:4819 +msgid "" +"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want. light table " +"performance will be increased greatly when browsing a lot.\n" +"to generate all thumbnails of your entire collection offline, run 'darktable-" +"generate-cache'." +msgstr "" +"Si activé écrit les miniatures sur le disque (~/.cache/darktable/ sous " +"Linux) lorsque supprimées\n" +"de la mémoire. Cela peut prendre beaucoup de place (plusieurs gigaoctets " +"pour 20 000 images)\n" +"et ne supprime jamais les miniatures du cache. Il est possible cependant de " +"les effacer manuellement\n" +"si désiré. La table lumineuse sera beaucoup plus fluide lors de navigations " +"importantes.\n" +"Pour générer toutes les miniatures de toutes les collections hors ligne " +"exécuter « darktable-generate-cache »." + +#: ../build/bin/preferences_gen.h:4840 +msgid "enable disk backend for full preview cache" +msgstr "Utiliser le disque pour le cache des prévisualisations en plein écran" + +#: ../build/bin/preferences_gen.h:4853 +msgid "" +"if enabled, write full preview to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want.\n" +"light table performance will be increased greatly when zooming image in full " +"preview mode." +msgstr "" +"Si activé écrit les prévisualisation plein écran sur le disque\n" +"(~/.cache/darktable/ sous Linux) lorsque supprimées de la mémoire.\n" +"Cela peut prendre beaucoup de place (plusieurs gigaoctets pour 20 000 " +"images)\n" +"et ne supprime jamais les miniatures du cache. Il est possible cependant\n" +"de les effacer manuellement si désiré. La table lumineuse sera beaucoup " +"plus\n" +"fluide lors du zoom plein écran de prévisualisation d’une image." + +#: ../build/bin/preferences_gen.h:4874 +msgid "generate thumbnails in background" +msgstr "Générer les miniatures en tâche de fond" + +#: ../build/bin/preferences_gen.h:4888 +msgid "" +"if 'enable disk backend for thumbnail cache' is enabled thumbnails/mipmaps " +"up to the selected size are generated while user is inactive in lighttable." +msgstr "" +"Si « Utiliser le disque pour le cache des miniatures » est activée alors les " +"miniatures jusqu'à la taille sélectionnée sont générées lors d'inactivité " +"sur la table lumineuse." + +#: ../build/bin/preferences_gen.h:4909 +msgid "reset cached thumbnails" +msgstr "Réinitialiser le cache des miniatures" + +#: ../build/bin/preferences_gen.h:4922 +msgid "" +"force thumbnails to be regenerated by resetting the database. this may be " +"needed in case some thumbnails have been manually removed or corrupted." +msgstr "" +"Forcer la régénération des miniatures en réinitialisant la base de données. " +"Ceci peut être nécessaire dans le cas où des miniatures ont été supprimé " +"manuellement ou corrompu." + +#: ../build/bin/preferences_gen.h:4943 msgid "delimiters for size categories" msgstr "Catégories de taille des miniatures" -#: ../build/bin/preferences_gen.h:4294 +#: ../build/bin/preferences_gen.h:4961 msgid "" "size categories are used to be able to set different overlays and CSS values " "depending of the size of the thumbnail, separated by |.\n" @@ -1123,23 +1212,28 @@ "Par exemple « 120|400 » définit trois catégories de tailles : < 120 px, " "120-400 px et > 400 px." -#: ../build/bin/preferences_gen.h:4316 +#: ../build/bin/preferences_gen.h:4982 msgid "pattern for the thumbnail extended overlay text" msgstr "Patron pour les surimpressions des miniatures" -#: ../build/bin/preferences_gen.h:4337 ../build/bin/preferences_gen.h:4380 +#: ../build/bin/preferences_gen.h:5002 ../build/bin/preferences_gen.h:5043 msgid "see manual to know all the tags you can use." msgstr "Voir le manuel pour connaître toutes les étiquettes utilisables." -#: ../build/bin/preferences_gen.h:4359 +#: ../build/bin/preferences_gen.h:5023 msgid "pattern for the thumbnail tooltip (empty to disable)" msgstr "Patron pour les info-bulles des miniatures (vide pour désactiver)" -#: ../build/bin/preferences_gen.h:4440 +#: ../build/bin/preferences_gen.h:5075 ../src/gui/gtk.c:1267 +#: ../src/gui/preferences.c:544 ../src/views/darkroom.c:94 +msgid "darkroom" +msgstr "Chambre noire" + +#: ../build/bin/preferences_gen.h:5096 msgid "scroll down to increase mask parameters" msgstr "Molette vers le bas pour augmenter les attributs des masques" -#: ../build/bin/preferences_gen.h:4454 +#: ../build/bin/preferences_gen.h:5109 msgid "" "when using the mouse scroll wheel to change mask parameters, scroll down to " "increase the mask size, feather size, opacity, brush hardness and gradient " @@ -1152,11 +1246,11 @@ "dureté du pinceau\n" "et la courbe du dégradé. Par défaut la molette vers le haut a le même effet." -#: ../build/bin/preferences_gen.h:4476 +#: ../build/bin/preferences_gen.h:5130 msgid "middle mouse button zooms to 200%" msgstr "Bouton du milieu de la souris zoom à 200%" -#: ../build/bin/preferences_gen.h:4491 +#: ../build/bin/preferences_gen.h:5144 #, no-c-format msgid "" "if enabled, the zoom level will cycle between 100%, 200% and fit to viewport " @@ -1168,32 +1262,32 @@ "Si désactivé, le zoom passera du zoom ajusté à 100% et l'utilisation de Ctrl " "est nécessaire pour avoir le plein contrôle du niveau de zoom." -#: ../build/bin/preferences_gen.h:4513 +#: ../build/bin/preferences_gen.h:5165 msgid "pattern for the image information line" msgstr "Format de la ligne d’information sur l’image" -#: ../build/bin/preferences_gen.h:4534 +#: ../build/bin/preferences_gen.h:5185 msgid "see manual for a list of the tags you can use." msgstr "Voir le manuel pour connaître toutes les étiquettes utilisables" -#: ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:5206 msgid "position of the image information line" msgstr "Position de la ligne d’information de l’image" -#: ../build/bin/preferences_gen.h:4630 +#: ../build/bin/preferences_gen.h:5240 msgid "border around image in darkroom mode" msgstr "Bordure autour de l’image dans la chambre noire" -#: ../build/bin/preferences_gen.h:4650 ../build/bin/preferences_gen.h:6790 -#: ../build/bin/preferences_gen.h:7228 ../build/bin/preferences_gen.h:7789 -#: ../build/bin/preferences_gen.h:8139 ../build/bin/preferences_gen.h:8221 -#: ../build/bin/preferences_gen.h:8379 ../build/bin/preferences_gen.h:8493 -#: ../build/bin/preferences_gen.h:8540 +#: ../build/bin/preferences_gen.h:5260 ../build/bin/preferences_gen.h:7182 +#: ../build/bin/preferences_gen.h:7303 ../build/bin/preferences_gen.h:7584 +#: ../build/bin/preferences_gen.h:8048 ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8257 ../build/bin/preferences_gen.h:8389 +#: ../build/bin/preferences_gen.h:8504 ../build/bin/preferences_gen.h:8550 #, c-format msgid "double click to reset to `%d'" msgstr "Double clic pour réinitialiser à « %d »" -#: ../build/bin/preferences_gen.h:4653 +#: ../build/bin/preferences_gen.h:5263 msgid "" "process the image in darkroom mode with a small border. set to 0 if you " "don't want any border." @@ -1201,21 +1295,21 @@ "Affiche l’image dans la chambre noire avec une petite bordure.\n" "Positionner à 0 pour la supprimer." -#: ../build/bin/preferences_gen.h:4711 +#: ../build/bin/preferences_gen.h:5318 msgid "reduce resolution of preview image" msgstr "Réduire la résolution de la prévisualisation" -#: ../build/bin/preferences_gen.h:4759 +#: ../build/bin/preferences_gen.h:5332 msgid "decrease to speed up preview rendering, may hinder accurate masking" msgstr "" "Diminuer pour accélérer le rendu de la prévisualisation, peut diminuer la " "précision des masques." -#: ../build/bin/preferences_gen.h:4781 +#: ../build/bin/preferences_gen.h:5353 msgid "show loading screen between images" msgstr "Afficher l’écran de chargement entre les images" -#: ../build/bin/preferences_gen.h:4795 +#: ../build/bin/preferences_gen.h:5366 msgid "" "show gray loading screen when navigating between images in the darkroom\n" "disable to just show a toast message" @@ -1224,15 +1318,15 @@ "de la chambre noire.\n" "Désactiver pour afficher uniquement un message." -#: ../build/bin/preferences_gen.h:4805 +#: ../build/bin/preferences_gen.h:5375 msgid "modules" msgstr "Modules" -#: ../build/bin/preferences_gen.h:4825 +#: ../build/bin/preferences_gen.h:5394 msgid "display of individual color channels" msgstr "Affichage des canaux de couleur individuels" -#: ../build/bin/preferences_gen.h:4863 +#: ../build/bin/preferences_gen.h:5408 msgid "" "defines how color channels are displayed when activated in the parametric " "masks feature." @@ -1240,11 +1334,11 @@ "Définit comment les canaux de couleur sont affichés lorsque activés dans les " "masques paramétriques." -#: ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:5429 msgid "hide built-in presets for processing modules" msgstr "Cacher les préréglages internes des modules de développement" -#: ../build/bin/preferences_gen.h:4899 +#: ../build/bin/preferences_gen.h:5442 msgid "" "hides built-in presets of processing modules in both presets and favourites " "menu." @@ -1252,23 +1346,23 @@ "Cache les préréglages internes des modules de développement,\n" "dans les menus des préréglages et les favoris." -#: ../build/bin/preferences_gen.h:4921 ../build/bin/preferences_gen.h:4935 +#: ../build/bin/preferences_gen.h:5463 ../build/bin/preferences_gen.h:5476 msgid "show the guides widget in modules UI" msgstr "Afficher le contrôle des guides dans l’interface des modules" -#: ../build/bin/preferences_gen.h:4957 +#: ../build/bin/preferences_gen.h:5497 msgid "expand a single processing module at a time" msgstr "Déplier un seul module de développement à la fois" -#: ../build/bin/preferences_gen.h:4971 +#: ../build/bin/preferences_gen.h:5510 msgid "this option toggles the behavior of shift clicking in darkroom mode" msgstr "Inverse le comportement du Maj+clic de la chambre noire" -#: ../build/bin/preferences_gen.h:4993 +#: ../build/bin/preferences_gen.h:5531 msgid "only collapse modules in current group" msgstr "Replier les modules du groupe actuel seulement" -#: ../build/bin/preferences_gen.h:5007 +#: ../build/bin/preferences_gen.h:5544 msgid "" "if only expanding a single module at a time, only collapse other modules in " "the current group - ignore modules in other groups" @@ -1276,11 +1370,11 @@ "Si un seul module doit être développé, replie seulement les modules\n" "dans le groupe actuel et ignore les modules des autres groupes." -#: ../build/bin/preferences_gen.h:5029 +#: ../build/bin/preferences_gen.h:5565 msgid "expand the module when it is activated, and collapse it when disabled" msgstr "Développer le module lorsqu’activé, et réduire lorsque désactivé" -#: ../build/bin/preferences_gen.h:5043 +#: ../build/bin/preferences_gen.h:5578 msgid "" "this option allows to expand or collapse automatically the module when it is " "enabled or disabled." @@ -1288,16 +1382,16 @@ "Développe ou réduit automatiquement un module lorsqu’il est activé ou " "désactivé" -#: ../build/bin/preferences_gen.h:5065 +#: ../build/bin/preferences_gen.h:5599 msgid "scroll processing modules to the top when expanded" msgstr "" "Repositionner les modules de développement en haut lorsqu’ils sont dépliés" -#: ../build/bin/preferences_gen.h:5101 +#: ../build/bin/preferences_gen.h:5633 msgid "show right-side buttons in processing module headers" msgstr "Afficher les boutons d’entête des modules de développement" -#: ../build/bin/preferences_gen.h:5169 +#: ../build/bin/preferences_gen.h:5647 msgid "" "when the mouse is not over a module, the multi-instance, reset and preset " "buttons can be hidden:\n" @@ -1323,11 +1417,11 @@ " • Doux – atténue tous les boutons d’un module simultanément\n" " • Glisser – cache progressivement les boutons lorsque nécessaire" -#: ../build/bin/preferences_gen.h:5191 +#: ../build/bin/preferences_gen.h:5668 msgid "show mask indicator in module headers" msgstr "Afficher la présence de masques dans l’entête des modules" -#: ../build/bin/preferences_gen.h:5205 +#: ../build/bin/preferences_gen.h:5681 msgid "" "if enabled, an icon will be shown in the header of any processing modules " "that have a mask applied" @@ -1335,11 +1429,11 @@ "Si activé une icône est affichée dans l’entête des modules de traitement " "ayant des masques" -#: ../build/bin/preferences_gen.h:5227 +#: ../build/bin/preferences_gen.h:5702 msgid "prompt for name on addition of new instance" msgstr "Activer l’édition du nom lors de l’ajout d’une nouvelle instance" -#: ../build/bin/preferences_gen.h:5241 +#: ../build/bin/preferences_gen.h:5715 msgid "" "if enabled, a rename prompt will be present for each new module instance " "(either new instance or duplicate)" @@ -1347,11 +1441,11 @@ "La zone de saisie du nom de l’instance est activée lors de la création d’une " "instance, nouvelle ou copiée" -#: ../build/bin/preferences_gen.h:5263 +#: ../build/bin/preferences_gen.h:5736 msgid "automatically update module name" msgstr "Mise à jour automatique du nom du module" -#: ../build/bin/preferences_gen.h:5277 +#: ../build/bin/preferences_gen.h:5749 msgid "" "if enabled, the module name will be automatically updated to match a preset " "name or a preset instance name if present." @@ -1359,23 +1453,27 @@ "Si activé, le nom du module sera automatiquement ajusté pour correspondre au " "nom du module ou au nom du préréglage si présent." -#: ../build/bin/preferences_gen.h:5317 +#: ../build/bin/preferences_gen.h:5781 +msgid "processing" +msgstr "Traitement" + +#: ../build/bin/preferences_gen.h:5783 msgid "image processing" msgstr "Traitement de l’image" -#: ../build/bin/preferences_gen.h:5337 +#: ../build/bin/preferences_gen.h:5802 msgid "always use LittleCMS 2 to apply output color profile" msgstr "Toujours utiliser LittleCMS 2 pour le profil couleur de sortie" -#: ../build/bin/preferences_gen.h:5351 +#: ../build/bin/preferences_gen.h:5815 msgid "this is slower than the default." msgstr "Plus lent que l’option par défaut." -#: ../build/bin/preferences_gen.h:5373 +#: ../build/bin/preferences_gen.h:5836 msgid "pixel interpolator (warp)" msgstr "Interpolation des pixels (déformation)" -#: ../build/bin/preferences_gen.h:5416 +#: ../build/bin/preferences_gen.h:5850 msgid "" "pixel interpolator used in modules for rotation, lens correction, liquify, " "cropping and final scaling (bilinear, bicubic, lanczos2)." @@ -1384,33 +1482,33 @@ "liquéfier,\n" "recadrer et la mise à l’échelle finale (Bilinéaire, Bicubique, Lanczos2)." -#: ../build/bin/preferences_gen.h:5438 +#: ../build/bin/preferences_gen.h:5871 msgid "pixel interpolator (scaling)" msgstr "Interpolation des pixels (mise à l’échelle)" -#: ../build/bin/preferences_gen.h:5486 +#: ../build/bin/preferences_gen.h:5885 msgid "" "pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." msgstr "" "Algorithme utilisé pour la mise à l’échelle (Bilinéaire, Bicubique, " "Lanczos2, Lanczos3)" -#: ../build/bin/preferences_gen.h:5508 +#: ../build/bin/preferences_gen.h:5906 msgid "LUT 3D root folder" msgstr "Répertoire 3D LUT racine" -#: ../build/bin/preferences_gen.h:5513 ../src/control/jobs/control_jobs.c:1688 -#: ../src/control/jobs/control_jobs.c:1742 ../src/gui/preferences.c:1081 -#: ../src/gui/presets.c:419 ../src/imageio/storage/disk.c:122 -#: ../src/imageio/storage/disk.c:178 ../src/imageio/storage/gallery.c:109 -#: ../src/imageio/storage/gallery.c:163 ../src/imageio/storage/latex.c:108 -#: ../src/imageio/storage/latex.c:162 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/import.c:1664 ../src/libs/styles.c:391 +#: ../build/bin/preferences_gen.h:5912 ../src/control/jobs/control_jobs.c:1691 +#: ../src/control/jobs/control_jobs.c:1745 ../src/gui/preferences.c:1080 +#: ../src/gui/presets.c:421 ../src/imageio/storage/disk.c:197 +#: ../src/imageio/storage/disk.c:261 ../src/imageio/storage/gallery.c:149 +#: ../src/imageio/storage/gallery.c:213 ../src/imageio/storage/latex.c:145 +#: ../src/imageio/storage/latex.c:199 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1673 ../src/libs/styles.c:391 #: ../src/lua/preferences.c:668 msgid "select directory" msgstr "Sélectionner un répertoire" -#: ../build/bin/preferences_gen.h:5529 +#: ../build/bin/preferences_gen.h:5926 msgid "" "this folder (and sub-folders) contains LUT files used by LUT 3D module. " "(need a restart)." @@ -1419,11 +1517,11 @@ "par le module\n" "3D LUT (nécessite un redémarrage)." -#: ../build/bin/preferences_gen.h:5551 +#: ../build/bin/preferences_gen.h:5947 msgid "auto-apply pixel workflow defaults" msgstr "Flux de travail par défaut" -#: ../build/bin/preferences_gen.h:5599 +#: ../build/bin/preferences_gen.h:5961 msgid "" "scene-referred workflow is based on linear modules and will auto-apply " "filmic or sigmoid, color calibration and exposure,\n" @@ -1432,18 +1530,18 @@ msgstr "" "Le flux de travail « Relatif à la scène » est basé sur des modules linéaires " "et activera automatiquement\n" -"les modules« Filmique RVB» ou « Sigmoid », « Calibration des couleurs » et " +"les modules « Filmique RVB » ou « Sigmoïde », « Calibration des couleurs » et " "« Exposition ».\n" "Le flux de travail « Relatif à l’affichage » est basé sur des modules Lab et " "activera automatiquement\n" "le module « Courbe de base » et l’ancien ordre des modules." -#: ../build/bin/preferences_gen.h:5621 +#: ../build/bin/preferences_gen.h:5982 msgid "auto-apply per camera basecurve presets" msgstr "" "Appliquer automatiquement le préréglage de la courbe de base du boîtier" -#: ../build/bin/preferences_gen.h:5635 +#: ../build/bin/preferences_gen.h:5995 msgid "" "use the per-camera basecurve by default instead of the generic manufacturer " "one if there is one available (needs a restart).\n" @@ -1459,11 +1557,11 @@ "Pour ne pas utiliser de courbe de base par défaut, cette même option doit " "être positionnée à « Aucun »." -#: ../build/bin/preferences_gen.h:5657 +#: ../build/bin/preferences_gen.h:6016 msgid "detect monochrome previews" msgstr "Détecter les miniatures monochromes" -#: ../build/bin/preferences_gen.h:5671 +#: ../build/bin/preferences_gen.h:6029 msgid "" "many monochrome images can be identified via EXIF and preview data. beware: " "this slows down imports and reading of EXIF data" @@ -1473,11 +1571,11 @@ "Attention, cela réduit les performances lors de l’importation et la lecture " "des données EXIF." -#: ../build/bin/preferences_gen.h:5693 +#: ../build/bin/preferences_gen.h:6050 msgid "show warning messages" msgstr "Montrer les messages d’alerte" -#: ../build/bin/preferences_gen.h:5707 +#: ../build/bin/preferences_gen.h:6063 msgid "" "display messages in modules to warn beginner users when non-standard and " "possibly harmful settings are used in the pipeline.\n" @@ -1490,15 +1588,15 @@ "Ces messages peuvent être des faux positifs et doivent être ignorés si l’on " "sait ce qu’on fait." -#: ../build/bin/preferences_gen.h:5717 -msgid "CPU / GPU / memory" -msgstr "CPU / GPU / Mémoire" +#: ../build/bin/preferences_gen.h:6072 +msgid "CPU / memory" +msgstr "CPU / Mémoire" -#: ../build/bin/preferences_gen.h:5737 +#: ../build/bin/preferences_gen.h:6091 msgid "darktable resources" msgstr "Ressources de darktable" -#: ../build/bin/preferences_gen.h:5786 +#: ../build/bin/preferences_gen.h:6106 #, no-c-format msgid "" "defines how much darktable may take from your system resources:\n" @@ -1530,11 +1628,11 @@ "de la partition d’échange. À utiliser avec prudence, non recommandé par " "défaut" -#: ../build/bin/preferences_gen.h:5808 +#: ../build/bin/preferences_gen.h:6127 msgid "prefer performance over quality" msgstr "Favoriser la performance par rapport à la qualité" -#: ../build/bin/preferences_gen.h:5822 +#: ../build/bin/preferences_gen.h:6140 msgid "" "if switched on, thumbnails and previews are rendered at lower quality but 4 " "times faster" @@ -1542,60 +1640,15 @@ "Si activé les miniatures et prévisualisations sont générées en basse qualité " "mais 4 fois plus rapidement" -#: ../build/bin/preferences_gen.h:5844 -msgid "enable disk backend for thumbnail cache" -msgstr "Utiliser le disque pour le cache des miniatures" - -#: ../build/bin/preferences_gen.h:5858 -msgid "" -"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want. light table " -"performance will be increased greatly when browsing a lot.\n" -"to generate all thumbnails of your entire collection offline, run 'darktable-" -"generate-cache'." -msgstr "" -"Si activé écrit les miniatures sur le disque (~/.cache/darktable/ sous " -"Linux) lorsque supprimées\n" -"de la mémoire. Cela peut prendre beaucoup de place (plusieurs gigaoctets " -"pour 20 000 images)\n" -"et ne supprime jamais les miniatures du cache. Il est possible cependant de " -"les effacer manuellement\n" -"si désiré. La table lumineuse sera beaucoup plus fluide lors de navigations " -"importantes.\n" -"Pour générer toutes les miniatures de toutes les collections hors ligne " -"exécuter « darktable-generate-cache »." - -#: ../build/bin/preferences_gen.h:5880 -msgid "enable disk backend for full preview cache" -msgstr "Utiliser le disque pour le cache des prévisualisations en plein écran" - -#: ../build/bin/preferences_gen.h:5894 -msgid "" -"if enabled, write full preview to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want.\n" -"light table performance will be increased greatly when zooming image in full " -"preview mode." -msgstr "" -"Si activé écrit les prévisualisation plein écran sur le disque\n" -"(~/.cache/darktable/ sous Linux) lorsque supprimées de la mémoire.\n" -"Cela peut prendre beaucoup de place (plusieurs gigaoctets pour 20 000 " -"images)\n" -"et ne supprime jamais les miniatures du cache. Il est possible cependant\n" -"de les effacer manuellement si désiré. La table lumineuse sera beaucoup " -"plus\n" -"fluide lors du zoom plein écran de prévisualisation d’une image." +#: ../build/bin/preferences_gen.h:6149 +msgid "OpenCL" +msgstr "OpenCL" -#: ../build/bin/preferences_gen.h:5916 +#: ../build/bin/preferences_gen.h:6168 msgid "activate OpenCL support" msgstr "Activer le support d’OpenCL" -#: ../build/bin/preferences_gen.h:5930 +#: ../build/bin/preferences_gen.h:6181 msgid "" "if found, use OpenCL runtime on your system to speed up processing.\n" "can be switched on and off at any time." @@ -1603,23 +1656,32 @@ "Si OpenCL est présent, darktable l’utilise pour améliorer les performances.\n" "Peut être modifié à tout moment." -#: ../build/bin/preferences_gen.h:5931 ../build/bin/preferences_gen.h:6002 -#: ../build/bin/preferences_gen.h:6078 ../build/bin/preferences_gen.h:7397 +#: ../build/bin/preferences_gen.h:6185 ../build/bin/preferences_gen.h:6230 +#: ../build/bin/preferences_gen.h:6274 ../build/bin/preferences_gen.h:6325 +#: ../build/bin/preferences_gen.h:6369 ../build/bin/preferences_gen.h:6413 +#: ../build/bin/preferences_gen.h:6457 ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6545 ../build/bin/preferences_gen.h:7700 msgid "not available" msgstr "Non disponible" -#: ../build/bin/preferences_gen.h:5934 ../build/bin/preferences_gen.h:5938 -#: ../build/bin/preferences_gen.h:6005 ../build/bin/preferences_gen.h:6009 -#: ../build/bin/preferences_gen.h:6081 ../build/bin/preferences_gen.h:6085 -#: ../build/bin/preferences_gen.h:7400 ../build/bin/preferences_gen.h:7404 +#: ../build/bin/preferences_gen.h:6187 ../build/bin/preferences_gen.h:6188 +#: ../build/bin/preferences_gen.h:6232 ../build/bin/preferences_gen.h:6233 +#: ../build/bin/preferences_gen.h:6276 ../build/bin/preferences_gen.h:6277 +#: ../build/bin/preferences_gen.h:6327 ../build/bin/preferences_gen.h:6328 +#: ../build/bin/preferences_gen.h:6371 ../build/bin/preferences_gen.h:6372 +#: ../build/bin/preferences_gen.h:6415 ../build/bin/preferences_gen.h:6416 +#: ../build/bin/preferences_gen.h:6459 ../build/bin/preferences_gen.h:6460 +#: ../build/bin/preferences_gen.h:6503 ../build/bin/preferences_gen.h:6504 +#: ../build/bin/preferences_gen.h:6547 ../build/bin/preferences_gen.h:6548 +#: ../build/bin/preferences_gen.h:7702 ../build/bin/preferences_gen.h:7703 msgid "not available on this system" msgstr "Non disponible sur ce système" -#: ../build/bin/preferences_gen.h:5958 +#: ../build/bin/preferences_gen.h:6212 msgid "OpenCL scheduling profile" msgstr "Profil de planification d’OpenCL" -#: ../build/bin/preferences_gen.h:6001 +#: ../build/bin/preferences_gen.h:6226 msgid "" "defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled " "systems:\n" @@ -1638,53 +1700,127 @@ " • GPU très rapide – utilise le GPU séquentiellement pour l’image et la " "prévisualisation" -#: ../build/bin/preferences_gen.h:6029 -msgid "tune OpenCL performance" -msgstr "Optimiser les performances d’OpenCL" +#: ../build/bin/preferences_gen.h:6257 +msgid "use all device memory" +msgstr "Utiliser toute la mémoire du périphérique" + +#: ../build/bin/preferences_gen.h:6270 +msgid "" +"if enabled darktable will use all device memory except a safety margin " +"(headroom, default is 600MB)" +msgstr "" +"Si activé, darktable utilisera toute la mémoire du périphérique sauf une " +"marge de sécurité (headroom, par défaut 600Mo)" + +#: ../build/bin/preferences_gen.h:6289 +msgid "OpenCL drivers" +msgstr "Pilotes OpenCL" + +#: ../build/bin/preferences_gen.h:6308 +msgid "Intel GPU" +msgstr "Intel GPU" + +#: ../build/bin/preferences_gen.h:6321 +msgid "Intel(R) OpenCL Graphics for all supported platforms (vendor provided)" +msgstr "" +"Intel(R) OpenCL Graphics pour toutes les plateformes supportées (fourni par " +"constructeur)" + +#: ../build/bin/preferences_gen.h:6352 +msgid "Nvidia CUDA" +msgstr "Nvidia CUDA" + +#: ../build/bin/preferences_gen.h:6365 +msgid "Nvidia CUDA based OpenCL (vendor provided)" +msgstr "Nvidia OpenCL avec CUDA (fourni par constructeur)" -#: ../build/bin/preferences_gen.h:6077 +#: ../build/bin/preferences_gen.h:6396 +msgid "AMD ROCm" +msgstr "AMD ROCm" + +#: ../build/bin/preferences_gen.h:6409 +msgid "AMD Accelerated Parallel Processing (vendor provided)" +msgstr "AMD Accelerated Parallel Processing (fourni par constructeur)" + +#: ../build/bin/preferences_gen.h:6440 +msgid "RustiCL" +msgstr "RustiCL" + +#: ../build/bin/preferences_gen.h:6453 +msgid "" +"RustiCL Mesa OpenCL, still unstable. if you want to use this, you should " +"disable the vendor driver" +msgstr "" +"RustiCL OpenCL sur Mesa, encore instable. Si vous souhaitez utiliser ce " +"pilote vous devez désactiver le pilote du vendeur" + +#: ../build/bin/preferences_gen.h:6484 +msgid "Apple" +msgstr "Apple" + +#: ../build/bin/preferences_gen.h:6497 +msgid "Apple OpenCL (vendor provided)" +msgstr "Apple OpenCL (fourni par constructeur)" + +#: ../build/bin/preferences_gen.h:6528 +msgid "Microsoft OpenCLOn12" +msgstr "Microsoft OpenCLOn12" + +#: ../build/bin/preferences_gen.h:6541 msgid "" -"allows runtime tuning of OpenCL devices:\n" -" - 'memory size': uses a fixed headroom (400MB as default),\n" -" - 'memory transfer': tries a faster memory access mode (pinned memory) used " -"for tiling." -msgstr "" -"Permet d’optimiser les périphériques OpenCL lors de l’exécution :\n" -" • Taille mémoire – utilise 400 Mo de mémoire de marge\n" -" • Transfert mémoire – tente un accès plus rapide à la mémoire (mémoire " -"épinglée) utilisée pour le tuilage" +"Microsoft OpenCLOn12, only use this if the vendor provided driver does not " +"work or there is none provided." +msgstr "" +"Microsoft OpenCLOn12, à utiliser seulement si le pilote constructeur ne " +"fonctionne pas où si aucun pilote n'est fourni." + +#: ../build/bin/preferences_gen.h:6572 +msgid "other platforms" +msgstr "Autres plateformes" -#: ../build/bin/preferences_gen.h:6143 +#: ../build/bin/preferences_gen.h:6585 +msgid "" +"if set, all unspecified platforms are accepted. only do this if no vendor " +"driver is available" +msgstr "" +"Si défini, toutes les plateformes non spécifiées sont acceptées. À activer " +"seulement si aucun pilote constructeur n'est disponible." + +#: ../build/bin/preferences_gen.h:6617 +msgid "security" +msgstr "Sécurité" + +#: ../build/bin/preferences_gen.h:6638 msgid "ask before removing images from the library" msgstr "Demander avant d’enlever des images de la bibliothèque" -#: ../build/bin/preferences_gen.h:6157 +#: ../build/bin/preferences_gen.h:6651 msgid "always ask the user before removing image information from the library" msgstr "" "Toujours demander avant d’enlever de la bibliothèque les informations sur " "l’image" -#: ../build/bin/preferences_gen.h:6179 +#: ../build/bin/preferences_gen.h:6672 msgid "ask before deleting images from disk" msgstr "Demander avant de supprimer les images du disque" -#: ../build/bin/preferences_gen.h:6193 +#: ../build/bin/preferences_gen.h:6685 msgid "always ask the user before any image file is deleted" msgstr "Toujours demander avant de supprimer une image" -#: ../build/bin/preferences_gen.h:6215 +#: ../build/bin/preferences_gen.h:6706 msgid "ask before discarding history stack" msgstr "Demander avant de supprimer l’historique" -#: ../build/bin/preferences_gen.h:6229 +#: ../build/bin/preferences_gen.h:6719 msgid "always ask the user before history stack is discarded on any image" msgstr "Toujours demander avant de supprimer l’historique" -#: ../build/bin/preferences_gen.h:6251 +#: ../build/bin/preferences_gen.h:6740 msgid "try to use trash when deleting images" msgstr "Essayer d’utiliser la poubelle lors de l’effacement des images" -#: ../build/bin/preferences_gen.h:6265 +#: ../build/bin/preferences_gen.h:6753 msgid "" "send files to trash instead of permanently deleting files on system that " "supports it" @@ -1692,27 +1828,27 @@ "Déplace les fichiers vers la poubelle au lieu de les supprimer " "définitivement sur les systèmes qui le permettent" -#: ../build/bin/preferences_gen.h:6287 +#: ../build/bin/preferences_gen.h:6774 msgid "ask before moving images from film roll folder" msgstr "Demander avant de déplacer des images vers un autre dossier" -#: ../build/bin/preferences_gen.h:6301 +#: ../build/bin/preferences_gen.h:6787 msgid "always ask the user before any image file is moved." msgstr "Toujours demander avant de déplacer une image" -#: ../build/bin/preferences_gen.h:6323 +#: ../build/bin/preferences_gen.h:6808 msgid "ask before copying images to new film roll folder" msgstr "Demander avant de copier des images vers un nouveau dossier" -#: ../build/bin/preferences_gen.h:6337 +#: ../build/bin/preferences_gen.h:6821 msgid "always ask the user before any image file is copied." msgstr "Toujours demander avant de copier une image" -#: ../build/bin/preferences_gen.h:6359 +#: ../build/bin/preferences_gen.h:6842 msgid "ask before removing empty folders" msgstr "Demander avant de retirer des répertoires vides" -#: ../build/bin/preferences_gen.h:6373 +#: ../build/bin/preferences_gen.h:6855 msgid "" "always ask the user before removing any empty folder. this can happen after " "moving or deleting images." @@ -1720,54 +1856,54 @@ "Toujours demander avant de supprimer un répertoire vide.\n" "Ceci peut arriver lors du déplacement ou de la suppression d’images." -#: ../build/bin/preferences_gen.h:6395 +#: ../build/bin/preferences_gen.h:6876 msgid "ask before deleting a tag" msgstr "Demander avant de supprimer un mot-clé" -#: ../build/bin/preferences_gen.h:6430 +#: ../build/bin/preferences_gen.h:6909 msgid "ask before deleting a style" msgstr "Demander avant de supprimer un style" -#: ../build/bin/preferences_gen.h:6465 +#: ../build/bin/preferences_gen.h:6942 msgid "ask before deleting a preset" msgstr "Demander avant de supprimer un préréglage" -#: ../build/bin/preferences_gen.h:6479 +#: ../build/bin/preferences_gen.h:6955 msgid "will ask for confirmation before deleting or overwriting a preset" msgstr "" "Demandera une confirmation avant de supprimer ou de mettre à jour un " "préréglage" -#: ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6976 msgid "ask before exporting in overwrite mode" msgstr "Demander avant d’exporter en mode écrasement" -#: ../build/bin/preferences_gen.h:6515 +#: ../build/bin/preferences_gen.h:6989 msgid "will ask for confirmation before exporting files in overwrite mode" msgstr "" "Demandera une confirmation avant d’exporter des fichiers en mode écrasement" #. italic -#: ../build/bin/preferences_gen.h:6525 ../src/libs/tools/viewswitcher.c:148 +#: ../build/bin/preferences_gen.h:6998 ../src/libs/tools/viewswitcher.c:148 msgid "other" msgstr "Autre" -#: ../build/bin/preferences_gen.h:6545 +#: ../build/bin/preferences_gen.h:7017 msgid "password storage backend to use" msgstr "Stockage à utiliser pour les mots de passe" -#: ../build/bin/preferences_gen.h:6595 +#: ../build/bin/preferences_gen.h:7035 msgid "" "the storage backend for password storage: auto, none, libsecret, kwallet" msgstr "" "Interface pour trousseau de mots de passe : automatique, aucun, libsecret, " "kwallet" -#: ../build/bin/preferences_gen.h:6617 +#: ../build/bin/preferences_gen.h:7056 msgid "executable for playing audio files" msgstr "Exécutable pour jouer les fichiers audio" -#: ../build/bin/preferences_gen.h:6635 +#: ../build/bin/preferences_gen.h:7074 msgid "" "this external program is used to play audio files some cameras record to " "keep notes for images" @@ -1775,15 +1911,19 @@ "Application externe utilisée pour jouer les annotations audio enregistrées " "par certains boîtiers" -#: ../build/bin/preferences_gen.h:6675 ../src/control/crawler.c:724 +#: ../build/bin/preferences_gen.h:7106 +msgid "storage" +msgstr "Stockage" + +#: ../build/bin/preferences_gen.h:7108 ../src/control/crawler.c:717 msgid "database" msgstr "Base de données" -#: ../build/bin/preferences_gen.h:6695 +#: ../build/bin/preferences_gen.h:7127 msgid "create database snapshot" msgstr "Faire une sauvegarde de la base de données" -#: ../build/bin/preferences_gen.h:6748 +#: ../build/bin/preferences_gen.h:7141 msgid "" "database snapshots are created right before closing darktable. options allow " "you to choose how often to make snapshots:\n" @@ -1808,11 +1948,11 @@ "précédente,\n" " • À la fermeture – fait une sauvegarde à chaque fermeture de darktable" -#: ../build/bin/preferences_gen.h:6770 +#: ../build/bin/preferences_gen.h:7162 msgid "how many snapshots to keep" msgstr "Nombre de sauvegardes à conserver" -#: ../build/bin/preferences_gen.h:6793 +#: ../build/bin/preferences_gen.h:7185 msgid "" "after successfully creating snapshot, how many older snapshots to keep " "(excluding mandatory version update ones). enter -1 to keep all snapshots\n" @@ -1825,36 +1965,37 @@ "Remarque : les sauvegardes prennent de la place sur le disque\n" "et seule la dernière est nécessaire comme point de restauration." -#: ../build/bin/preferences_gen.h:6803 ../src/control/crawler.c:723 -msgid "XMP" -msgstr "XMP" +#: ../build/bin/preferences_gen.h:7194 ../src/libs/copy_history.c:149 +msgid "XMP sidecar files" +msgstr "Fichiers XMP" -#: ../build/bin/preferences_gen.h:6823 -msgid "write sidecar file for each image" -msgstr "Écrire un fichier XMP redondant pour chaque image" +#: ../build/bin/preferences_gen.h:7213 +msgid "create XMP files" +msgstr "Créer les fichiers XMP" -#: ../build/bin/preferences_gen.h:6866 +#: ../build/bin/preferences_gen.h:7227 msgid "" -"the sidecar files hold information about all your development steps to allow " +"XMP sidecar files hold information about all your development steps to allow " "flawless re-importing of image files.\n" "\n" -"depending on the selected mode sidecar files will be written:\n" +"depending on the selected mode sidecar files will be created:\n" " - 'never'\n" " - 'on import': immediately after importing the image\n" -" - 'after edit': after any user change on the image." +" - 'after edit': after any user change on the image or adding tags." msgstr "" "Les fichiers XMP contiennent les informations sur l’ensemble des étapes\n" "de développement pour permettre de réimporter parfaitement les images.\n" -"En fonction du mode sélectionné, les fichiers XMP sont écrits :\n" +"En fonction du mode sélectionné, les fichiers XMP sont créés :\n" " • Jamais\n" " • À l’importation – immédiatement après l’importation de l’image\n" -" • Après édition – après toute modification de l’image" +" • Après édition – après toute modification de l’image ou l'ajout de mots-" +"clés" -#: ../build/bin/preferences_gen.h:6888 +#: ../build/bin/preferences_gen.h:7248 msgid "store XMP tags in compressed format" msgstr "Enregistrer les mots-clés XMP avec un format compressé" -#: ../build/bin/preferences_gen.h:6931 +#: ../build/bin/preferences_gen.h:7262 msgid "" "entries in XMP tags can get rather large and may exceed the available space " "to store the history stack in output files.\n" @@ -1864,11 +2005,25 @@ "disponible dans le fichier pour enregistrer les données de développement.\n" "Cette option permet de compresser les mots-clés XMP pour gagner de la place." -#: ../build/bin/preferences_gen.h:6953 +#: ../build/bin/preferences_gen.h:7283 +msgid "auto-save interval" +msgstr "Intervalle pour la sauvegarde automatique" + +#: ../build/bin/preferences_gen.h:7306 +msgid "" +"automatically save history while developing using the given interval (in " +"seconds); set to zero to disable auto-saving. auto-saving might be disabled " +"on slow drives." +msgstr "" +"Sauvegarder périodiquement l'historique pendant le développement (intervalle " +"en seconde), si positionné à zéro la sauvegarde automatique est désactivée. " +"La sauvegarde automatique peut être désactivé pour les disques lents." + +#: ../build/bin/preferences_gen.h:7327 msgid "look for updated XMP files on startup" msgstr "Vérifier les fichiers XMP modifiés au démarrage" -#: ../build/bin/preferences_gen.h:6967 +#: ../build/bin/preferences_gen.h:7340 msgid "" "check file modification times of all XMP files on startup to check if any " "got updated in the meantime" @@ -1876,15 +2031,19 @@ "Récupère la date de modification de tous les fichiers XMP au démarrage\n" "pour vérifier ceux qui ont été modifiés depuis la dernière session." -#: ../build/bin/preferences_gen.h:7007 +#: ../build/bin/preferences_gen.h:7372 +msgid "miscellaneous" +msgstr "Divers" + +#: ../build/bin/preferences_gen.h:7374 msgid "interface" msgstr "Interface" -#: ../build/bin/preferences_gen.h:7027 +#: ../build/bin/preferences_gen.h:7393 msgid "load default shortcuts at startup" msgstr "Charger les raccourcis par défaut au démarrage" -#: ../build/bin/preferences_gen.h:7041 +#: ../build/bin/preferences_gen.h:7406 msgid "" "load default shortcuts before user settings. switch off to prevent deleted " "defaults returning" @@ -1892,19 +2051,19 @@ "Charge les raccourcis par défaut avant ceux de l’utilisateur.\n" "Désactiver pour éviter que les raccourcis par défaut supprimés ne reviennent." -#: ../build/bin/preferences_gen.h:7063 +#: ../build/bin/preferences_gen.h:7427 msgid "scale slider step with min/max" msgstr "Échelonner l’incrément des réglettes avec min/max" -#: ../build/bin/preferences_gen.h:7077 +#: ../build/bin/preferences_gen.h:7440 msgid "vary slider step size with min/max range" msgstr "Fait varier l’incrément des réglettes d’après l’étendue min/max" -#: ../build/bin/preferences_gen.h:7099 +#: ../build/bin/preferences_gen.h:7461 msgid "sort built-in presets first" msgstr "Trier les préréglages internes en premier" -#: ../build/bin/preferences_gen.h:7113 +#: ../build/bin/preferences_gen.h:7474 msgid "" "whether to show built-in presets first before user's presets in presets menu." msgstr "" @@ -1912,11 +2071,11 @@ "l’utilisateur\n" "dans le menu des préréglages." -#: ../build/bin/preferences_gen.h:7135 +#: ../build/bin/preferences_gen.h:7495 msgid "mouse wheel scrolls modules side panel by default" msgstr "Déplacement dans les panneaux latéraux avec la molette" -#: ../build/bin/preferences_gen.h:7149 +#: ../build/bin/preferences_gen.h:7508 msgid "" "when enabled, use mouse wheel to scroll modules side panel. use ctrl+alt to " "use mouse wheel for data entry. when disabled, this behavior is reversed" @@ -1927,11 +2086,11 @@ "Lorsque désactivé seul l’ascenseur des panneaux répond à la molette\n" "et les valeurs peuvent être changées directement sans Ctrl+Alt." -#: ../build/bin/preferences_gen.h:7171 +#: ../build/bin/preferences_gen.h:7529 msgid "always show panels' scrollbars" msgstr "Toujours montrer les ascenseurs des panneaux" -#: ../build/bin/preferences_gen.h:7185 +#: ../build/bin/preferences_gen.h:7542 msgid "" "defines whether the panel scrollbars should be always visible or activated " "only depending on the content. (need a restart)" @@ -1939,11 +2098,11 @@ "Définit si les ascenseurs des panneaux latéraux sont toujours visibles\n" "ou seulement lorsque nécessaire (nécessite un redémarrage)." -#: ../build/bin/preferences_gen.h:7207 +#: ../build/bin/preferences_gen.h:7563 msgid "duration of the UI transitions in ms" msgstr "Temps en ms de transition de l’interface" -#: ../build/bin/preferences_gen.h:7231 +#: ../build/bin/preferences_gen.h:7587 msgid "" "how long the transitions take (in ms) for expanding or collapsing modules " "and other UI elements" @@ -1951,19 +2110,19 @@ "Temps la transition (en millisecondes) pour développer ou replier\n" "les modules et autres éléments de l’interface." -#: ../build/bin/preferences_gen.h:7253 +#: ../build/bin/preferences_gen.h:7608 msgid "position of the scopes module" msgstr "Position du module Scopes" -#: ../build/bin/preferences_gen.h:7291 +#: ../build/bin/preferences_gen.h:7622 msgid "position the scopes at the top-left or top-right of the screen" msgstr "Position du module « Scopes » en haut à gauche ou à droite de l’écran" -#: ../build/bin/preferences_gen.h:7313 +#: ../build/bin/preferences_gen.h:7643 msgid "method to use for getting the display profile" msgstr "Méthode à utiliser pour récupérer le profil d’affichage" -#: ../build/bin/preferences_gen.h:7356 +#: ../build/bin/preferences_gen.h:7657 msgid "" "this option allows to force a specific means of getting the current display " "profile.\n" @@ -1973,11 +2132,11 @@ "d’affichage,\n" "ce qui est utile lorsque l’une des solutions donne de mauvais résultats." -#: ../build/bin/preferences_gen.h:7378 +#: ../build/bin/preferences_gen.h:7678 msgid "order or exclude MIDI devices" msgstr "Trier ou exclure les périphériques MIDI" -#: ../build/bin/preferences_gen.h:7396 +#: ../build/bin/preferences_gen.h:7696 msgid "" "comma-separated list of device name fragments that if matched load MIDI " "device at id given by location in list\n" @@ -1993,20 +2152,20 @@ "« BeatStep:63:16 »." #. tags -#: ../build/bin/preferences_gen.h:7412 ../src/develop/lightroom.c:1516 -#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:333 -#: ../src/libs/image.c:558 ../src/libs/metadata_view.c:162 +#: ../build/bin/preferences_gen.h:7715 ../src/develop/lightroom.c:1573 +#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:322 +#: ../src/libs/image.c:614 ../src/libs/metadata_view.c:166 msgid "tags" msgstr "Mots-clés" -#: ../build/bin/preferences_gen.h:7432 +#: ../build/bin/preferences_gen.h:7734 msgid "omit hierarchy in simple tag lists" msgstr "Ignorer la hiérarchie des mots-clés" -#: ../build/bin/preferences_gen.h:7446 +#: ../build/bin/preferences_gen.h:7747 msgid "" -"when creating XMP file the hierarchical tags are also added as a simple " -"list\n" +"when creating an XMP sidecar file the hierarchical tags are also added as a " +"simple list\n" "of non-hierarchical ones to make them visible to some other programs.\n" "when this option is checked darktable will only include their last part\n" "and ignore the rest. so 'foo|bar|baz' will only add 'baz'." @@ -2020,47 +2179,43 @@ "et ignorera le reste, ainsi « faune|insecte|syrphe » ajoutera uniquement « " "syrphe »." -#: ../build/bin/preferences_gen.h:7456 +#: ../build/bin/preferences_gen.h:7756 msgid "shortcuts with multiple instances" msgstr "Raccourcis avec instances multiples" -#: ../build/bin/preferences_gen.h:7461 -msgid "" -"where multiple module instances are present, these preferences control rules " -"that are applied (in order) to decide which module instance shortcuts will " -"be applied to" -msgstr "" -"Lorsque plusieurs instances d’un module sont présentes, cette préférence " -"permet de contrôler\n" -"l’ordre des règles pour le choix de l’instance qui recevra les raccourcis " -"claviers." - -#: ../build/bin/preferences_gen.h:7477 +#: ../build/bin/preferences_gen.h:7775 msgid "prefer focused instance" msgstr "Préférence aux instances ayant le focus" -#: ../build/bin/preferences_gen.h:7491 +#: ../build/bin/preferences_gen.h:7788 msgid "" -"if an instance of the module has focus, apply shortcut to that instance\n" +"where multiple instances of a module are present, apply shortcuts to the " +"instance that has focus\n" +"if none are focused, the preferences below control rules that are followed " +"(in order) to decide which module instance shortcuts will be applied to.\n" "note: blending shortcuts always apply to the focused instance" msgstr "" -"Si une instance de module a le focus, lui appliquer le raccourci.\n" -"Note : les raccourcis de fusion sont toujours appliqués à l’instance ayant " +"Lorsque plusieurs instances d’un module sont présentes, le raccourci est " +"appliqué à l'instance qui a le focus.\n" +"Si aucune n'a le focus, les préférences ci-dessous contrôlent les règles qui " +"seront appliquées (dans l'ordre) pour\n" +"décider quelle instance du module recevra le raccourci clavier.\n" +"Note : les raccourcis de fusion sont toujours appliqués à l'instance qui a " "le focus." -#: ../build/bin/preferences_gen.h:7513 +#: ../build/bin/preferences_gen.h:7809 msgid "prefer expanded instances" msgstr "Préférence aux instances développées" -#: ../build/bin/preferences_gen.h:7527 +#: ../build/bin/preferences_gen.h:7822 msgid "if instances of the module are expanded, ignore collapsed instances" msgstr "Ignore les instances repliées si des instances sont dépliées" -#: ../build/bin/preferences_gen.h:7549 +#: ../build/bin/preferences_gen.h:7843 msgid "prefer enabled instances" msgstr "Préférence aux instances actives" -#: ../build/bin/preferences_gen.h:7563 +#: ../build/bin/preferences_gen.h:7856 msgid "" "after applying the above rule, if instances of the module are active, ignore " "inactive instances" @@ -2069,11 +2224,11 @@ "actives,\n" "ignore les instances non actives." -#: ../build/bin/preferences_gen.h:7585 +#: ../build/bin/preferences_gen.h:7877 msgid "prefer unmasked instances" msgstr "Préférence aux instances visibles" -#: ../build/bin/preferences_gen.h:7599 +#: ../build/bin/preferences_gen.h:7890 msgid "" "after applying the above rules, if instances of the module are unmasked, " "ignore masked instances" @@ -2082,11 +2237,11 @@ "visibles,\n" "ignore les instances cachées." -#: ../build/bin/preferences_gen.h:7621 +#: ../build/bin/preferences_gen.h:7911 msgid "selection order" msgstr "Ordre de sélection" -#: ../build/bin/preferences_gen.h:7659 +#: ../build/bin/preferences_gen.h:7925 msgid "" "after applying the above rules, apply the shortcut based on its position in " "the pixelpipe" @@ -2094,11 +2249,11 @@ "Après application de la règle ci-dessus, appliquer le raccourci en fonction " "de l’ordre du module" -#: ../build/bin/preferences_gen.h:7681 +#: ../build/bin/preferences_gen.h:7946 msgid "allow visual assignment to specific instances" msgstr "Permettre d’assigner un raccourci à une instance spécifique" -#: ../build/bin/preferences_gen.h:7695 +#: ../build/bin/preferences_gen.h:7959 msgid "" "when multiple instances are present on an image this allows shortcuts to be " "visually assigned to those specific instances\n" @@ -2108,15 +2263,15 @@ "lorsque plusieurs instances d’un module sont présentes.\n" "Sinon les raccourcis sont toujours assignés à l’instance préférée." -#: ../build/bin/preferences_gen.h:7705 +#: ../build/bin/preferences_gen.h:7968 msgid "map / geolocalization view" msgstr "Vue carte / géolocalisation" -#: ../build/bin/preferences_gen.h:7725 +#: ../build/bin/preferences_gen.h:7987 msgid "pretty print the image location" msgstr "Affichage plus clair de la localisation d’image" -#: ../build/bin/preferences_gen.h:7739 +#: ../build/bin/preferences_gen.h:8000 msgid "" "show a more readable representation of the location in the image information " "module" @@ -2124,66 +2279,30 @@ "Affiche une représentation plus lisible de la localisation dans le module " "« Informations de l’image »." -#: ../build/bin/preferences_gen.h:7749 +#: ../build/bin/preferences_gen.h:8009 msgid "slideshow view" msgstr "Vue diaporama" -#: ../build/bin/preferences_gen.h:7769 +#: ../build/bin/preferences_gen.h:8028 msgid "waiting time between each picture in slideshow" msgstr "Temporisation entre chaque image du diaporama (s)" -#: ../build/bin/preferences_gen.h:7831 -msgid "session options" -msgstr "Options de session" - -#: ../build/bin/preferences_gen.h:7851 -msgid "base directory naming pattern" -msgstr "Nommage du répertoire de base" - -#: ../build/bin/preferences_gen.h:7869 ../build/bin/preferences_gen.h:7909 -msgid "part of full import path for an import session" -msgstr "Partie du chemin complet pour la session d’importation" - -#: ../build/bin/preferences_gen.h:7891 -msgid "sub directory naming pattern" -msgstr "Nommage du sous-répertoire" - -#: ../build/bin/preferences_gen.h:7931 -msgid "keep original filename" -msgstr "Garder le nom d’origine" - -#: ../build/bin/preferences_gen.h:7945 -msgid "" -"keep original filename instead of a pattern while importing from camera or " -"card" -msgstr "" -"Conserve le nom d’origine des fichiers au lieu d’appliquer le patron\n" -"lors de l’importation depuis un appareil photo ou une carte mémoire" - -#: ../build/bin/preferences_gen.h:7967 -msgid "file naming pattern" -msgstr "Nommage des fichiers" - -#: ../build/bin/preferences_gen.h:7985 -msgid "file naming pattern used for a import session" -msgstr "Nommage des fichiers pour la session d’importation" - -#: ../build/bin/preferences_gen.h:8022 +#: ../build/bin/preferences_gen.h:8088 msgid "do not set the 'uncategorized' entry for tags" msgstr "Ne pas utiliser le groupe « Sans catégorie » pour les mots-clés" -#: ../build/bin/preferences_gen.h:8036 +#: ../build/bin/preferences_gen.h:8101 msgid "" "do not set the 'uncategorized' entry for tags which do not have children" msgstr "" "Ne pas utiliser le groupe « Sans catégorie »\n" "pour les mots-clés n’ayant pas d’enfants" -#: ../build/bin/preferences_gen.h:8058 +#: ../build/bin/preferences_gen.h:8122 msgid "tags case sensitivity" msgstr "Sensibilité à la casse" -#: ../build/bin/preferences_gen.h:8096 +#: ../build/bin/preferences_gen.h:8136 msgid "" "tags case sensitivity. without the Sqlite ICU extension, insensitivity works " "only for the 26 latin letters" @@ -2192,31 +2311,31 @@ "l’insensibilité à la casse ne fonctionne que pour les 26 lettres\n" "latines non accentuées" -#: ../build/bin/preferences_gen.h:8118 ../build/bin/preferences_gen.h:8358 +#: ../build/bin/preferences_gen.h:8157 ../build/bin/preferences_gen.h:8368 msgid "number of collections to be stored" msgstr "Nombre de collections à conserver" -#: ../build/bin/preferences_gen.h:8142 ../build/bin/preferences_gen.h:8382 +#: ../build/bin/preferences_gen.h:8181 ../build/bin/preferences_gen.h:8392 msgid "the number of recent collections to store and show in this list" msgstr "" "Le nombre de collections récentes à enregistrer et afficher dans la liste" -#: ../build/bin/preferences_gen.h:8164 +#: ../build/bin/preferences_gen.h:8202 msgid "hide the history button and show a specific module instead" msgstr "" "Cache le bouton d’historique et affiche un module spécifique à la place" -#: ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8215 msgid "hide the history button and show the recent collections module instead" msgstr "" "Cache le bouton d’historique et affiche le module des collections récentes à " "la place" -#: ../build/bin/preferences_gen.h:8200 +#: ../build/bin/preferences_gen.h:8236 msgid "number of folder levels to show in lists" msgstr "Nombre de niveaux de dossiers à afficher" -#: ../build/bin/preferences_gen.h:8224 +#: ../build/bin/preferences_gen.h:8260 msgid "" "the number of folder levels to show in film roll names, starting from the " "right" @@ -2224,19 +2343,24 @@ "Nombre de niveaux de dossier à afficher dans les noms,\n" "en partant de la droite" -#: ../build/bin/preferences_gen.h:8246 +#: ../build/bin/preferences_gen.h:8281 msgid "sort film rolls by" msgstr "Trier les pellicules par" -#: ../build/bin/preferences_gen.h:8284 +#: ../build/bin/preferences_gen.h:8292 +msgctxt "preferences" +msgid "chronological" +msgstr "Chronologique" + +#: ../build/bin/preferences_gen.h:8295 msgid "sets the collections-list order for film rolls" msgstr "Définit l’ordre de tri pour la collection sur les pellicules" -#: ../build/bin/preferences_gen.h:8306 +#: ../build/bin/preferences_gen.h:8316 msgid "sort collection descending" msgstr "Tri descendant des collections" -#: ../build/bin/preferences_gen.h:8320 +#: ../build/bin/preferences_gen.h:8329 msgid "" "sort the following collections in descending order: 'film roll' by folder, " "'folder', 'times' (e.g. 'capture date')" @@ -2245,11 +2369,11 @@ "« pellicule » par dossier, « dossier », « heures »\n" "(par exemple « date de capture »)." -#: ../build/bin/preferences_gen.h:8404 +#: ../build/bin/preferences_gen.h:8413 msgid "prefer a history button in the collections module" msgstr "Préférer un bouton d’historique dans le module des collections" -#: ../build/bin/preferences_gen.h:8418 +#: ../build/bin/preferences_gen.h:8426 msgid "" "hide this module and instead access collections history with a button in the " "collections module" @@ -2257,11 +2381,11 @@ "Cacher ce module et accéder à l’historique avec un bouton dans le module des " "collections" -#: ../build/bin/preferences_gen.h:8472 +#: ../build/bin/preferences_gen.h:8483 msgid "suggested tags level of confidence" msgstr "Niveau de confiance pour les mots-clés suggérés" -#: ../build/bin/preferences_gen.h:8497 +#: ../build/bin/preferences_gen.h:8508 #, no-c-format msgid "" "level of confidence to include the tag in the suggestions list, 0: all " @@ -2272,11 +2396,11 @@ "tous les mots-clés associés, 99 : mots-clés correspondants à 99 %, 100 : " "aucun mot-clé correspondant, seuls les mots-clés récents (plus rapide)." -#: ../build/bin/preferences_gen.h:8519 +#: ../build/bin/preferences_gen.h:8529 msgid "number of recently attached tags" msgstr "Nombre de mots-clés récemment attachés" -#: ../build/bin/preferences_gen.h:8543 +#: ../build/bin/preferences_gen.h:8553 msgid "" "number of recently attached tags which are included in the suggestions list. " "the value `-1' disables the recent list" @@ -2303,14 +2427,15 @@ #. focal length #: ../build/lib/darktable/plugins/introspection_ashift.c:148 #: ../build/lib/darktable/plugins/introspection_ashift.c:291 -#: ../src/common/collection.c:714 ../src/gui/preferences.c:844 -#: ../src/gui/presets.c:718 ../src/libs/camera.c:550 -#: ../src/libs/metadata_view.c:143 +#: ../src/common/collection.c:627 ../src/gui/preferences.c:842 +#: ../src/gui/presets.c:721 ../src/libs/camera.c:550 +#: ../src/libs/metadata_view.c:145 msgid "focal length" msgstr "Longueur focale" #: ../build/lib/darktable/plugins/introspection_ashift.c:154 #: ../build/lib/darktable/plugins/introspection_ashift.c:295 +#: ../src/libs/metadata_view.c:147 msgid "crop factor" msgstr "Facteur de cadrage" @@ -2326,7 +2451,7 @@ #: ../build/lib/darktable/plugins/introspection_ashift.c:172 #: ../build/lib/darktable/plugins/introspection_ashift.c:307 -#: ../src/iop/lens.cc:3784 +#: ../src/iop/lens.cc:4438 msgid "lens model" msgstr "Modèle d’objectif" @@ -2348,14 +2473,14 @@ #. DEVELOP_MASK_DISABLED #: ../build/lib/darktable/plugins/introspection_ashift.c:366 -#: ../build/lib/darktable/plugins/introspection_colorin.c:300 +#: ../build/lib/darktable/plugins/introspection_colorin.c:303 #: ../build/lib/darktable/plugins/introspection_highlights.c:310 #: ../build/lib/darktable/plugins/introspection_vignette.c:264 #: ../src/develop/blend_gui.c:153 ../src/develop/blend_gui.c:182 -#: ../src/develop/blend_gui.c:3410 ../src/gui/accelerators.c:130 -#: ../src/gui/accelerators.c:140 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/imageio/format/j2k.c:669 -#: ../src/libs/live_view.c:361 ../src/libs/masks.c:113 +#: ../src/develop/blend_gui.c:3429 ../src/gui/accelerators.c:148 +#: ../src/gui/accelerators.c:158 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/imageio/format/j2k.c:686 +#: ../src/libs/live_view.c:361 msgid "off" msgstr "Désactivé(e)" @@ -2379,7 +2504,7 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:146 #: ../build/lib/darktable/plugins/introspection_basecurve.c:239 -#: ../src/libs/metadata_view.c:142 +#: ../src/libs/metadata_view.c:144 msgid "exposure bias" msgstr "Biais d’exposition" @@ -2399,16 +2524,16 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:262 #: ../build/lib/darktable/plugins/introspection_basicadj.c:249 #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:153 -#: ../build/lib/darktable/plugins/introspection_lens.cc:444 +#: ../build/lib/darktable/plugins/introspection_lens.cc:533 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:251 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:153 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:270 -#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2193 -#: ../src/iop/channelmixerrgb.c:4667 ../src/iop/clipping.c:1900 -#: ../src/iop/clipping.c:2093 ../src/iop/clipping.c:2108 -#: ../src/iop/retouch.c:463 ../src/libs/collect.c:1907 -#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1023 -#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:132 +#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2214 +#: ../src/iop/channelmixerrgb.c:4735 ../src/iop/clipping.c:1953 +#: ../src/iop/clipping.c:2146 ../src/iop/clipping.c:2161 +#: ../src/iop/retouch.c:507 ../src/libs/collect.c:2043 +#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1101 +#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:109 #: ../src/libs/live_view.c:311 ../src/libs/print_settings.c:2835 msgid "none" msgstr "Sans" @@ -2426,7 +2551,7 @@ #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:252 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:154 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:271 -#: ../src/develop/blend_gui.c:2363 ../src/develop/blend_gui.c:2397 +#: ../src/develop/blend_gui.c:2379 ../src/develop/blend_gui.c:2413 msgid "luminance" msgstr "Luminance" @@ -2536,7 +2661,7 @@ #: ../build/lib/darktable/plugins/introspection_graduatednd.c:144 #: ../build/lib/darktable/plugins/introspection_watermark.c:136 #: ../build/lib/darktable/plugins/introspection_watermark.c:265 -#: ../src/iop/ashift.c:6112 ../src/libs/masks.c:108 +#: ../src/iop/ashift.c:6059 ../src/libs/masks.c:109 msgid "rotation" msgstr "Rotation" @@ -2547,7 +2672,7 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:125 #: ../build/lib/darktable/plugins/introspection_blurs.c:202 -#: ../src/libs/masks.c:109 +#: ../src/libs/masks.c:110 msgid "curvature" msgstr "Courbure" @@ -2555,13 +2680,13 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:206 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:81 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:148 -#: ../src/iop/colorbalancergb.c:1968 +#: ../src/iop/colorbalancergb.c:2039 msgid "offset" msgstr "Décalage" #: ../build/lib/darktable/plugins/introspection_blurs.c:220 -#: ../src/common/collection.c:712 ../src/gui/preferences.c:828 -#: ../src/gui/presets.c:660 ../src/libs/metadata_view.c:139 +#: ../src/common/collection.c:625 ../src/gui/preferences.c:826 +#: ../src/gui/presets.c:663 ../src/libs/metadata_view.c:141 msgid "lens" msgstr "Objectif" @@ -2577,63 +2702,90 @@ msgid "gaussian" msgstr "Gaussien" -#: ../build/lib/darktable/plugins/introspection_borders.c:112 -#: ../build/lib/darktable/plugins/introspection_borders.c:253 -#: ../src/common/collection.c:722 ../src/libs/filtering.c:59 +#: ../build/lib/darktable/plugins/introspection_borders.c:122 +#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../src/common/collection.c:635 ../src/libs/filtering.c:59 msgid "aspect ratio" msgstr "Ratio d’aspect" #. // portrait / landscape -#: ../build/lib/darktable/plugins/introspection_borders.c:130 -#: ../build/lib/darktable/plugins/introspection_borders.c:265 +#: ../build/lib/darktable/plugins/introspection_borders.c:140 +#: ../build/lib/darktable/plugins/introspection_borders.c:281 #: ../src/iop/flip.c:75 ../src/libs/print_settings.c:2517 msgid "orientation" msgstr "Orientation" -#: ../build/lib/darktable/plugins/introspection_borders.c:136 -#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../build/lib/darktable/plugins/introspection_borders.c:146 +#: ../build/lib/darktable/plugins/introspection_borders.c:285 msgid "border size" msgstr "Taille du cadre" -#: ../build/lib/darktable/plugins/introspection_borders.c:142 -#: ../build/lib/darktable/plugins/introspection_borders.c:273 +#: ../build/lib/darktable/plugins/introspection_borders.c:152 +#: ../build/lib/darktable/plugins/introspection_borders.c:289 msgid "horizontal offset" msgstr "Décalage horizontal" -#: ../build/lib/darktable/plugins/introspection_borders.c:160 -#: ../build/lib/darktable/plugins/introspection_borders.c:285 +#: ../build/lib/darktable/plugins/introspection_borders.c:170 +#: ../build/lib/darktable/plugins/introspection_borders.c:301 msgid "vertical offset" msgstr "Décalage vertical" -#: ../build/lib/darktable/plugins/introspection_borders.c:178 -#: ../build/lib/darktable/plugins/introspection_borders.c:297 +#: ../build/lib/darktable/plugins/introspection_borders.c:188 +#: ../build/lib/darktable/plugins/introspection_borders.c:313 msgid "frame line size" msgstr "Taille du cadre interne" -#: ../build/lib/darktable/plugins/introspection_borders.c:184 -#: ../build/lib/darktable/plugins/introspection_borders.c:301 +#: ../build/lib/darktable/plugins/introspection_borders.c:194 +#: ../build/lib/darktable/plugins/introspection_borders.c:317 msgid "frame line offset" msgstr "Décalage du cadre interne" -#: ../build/lib/darktable/plugins/introspection_borders.c:327 -#: ../src/gui/preferences.c:849 ../src/iop/ashift.c:6291 -#: ../src/iop/basicadj.c:632 ../src/iop/flip.c:472 ../src/iop/flip.c:474 -#: ../src/iop/levels.c:641 ../src/iop/rgblevels.c:1050 +#: ../build/lib/darktable/plugins/introspection_borders.c:218 +#: ../build/lib/darktable/plugins/introspection_borders.c:333 +msgid "basis" +msgstr "Base" + +#: ../build/lib/darktable/plugins/introspection_borders.c:347 +#: ../build/lib/darktable/plugins/introspection_borders.c:353 +#: ../src/gui/preferences.c:847 ../src/imageio/format/jpeg.c:604 +#: ../src/iop/ashift.c:6238 ../src/iop/basicadj.c:662 ../src/iop/flip.c:470 +#: ../src/iop/flip.c:472 ../src/iop/levels.c:657 ../src/iop/rgblevels.c:1105 msgid "auto" msgstr "Auto" -#: ../build/lib/darktable/plugins/introspection_borders.c:328 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:309 +#: ../build/lib/darktable/plugins/introspection_borders.c:348 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:315 #: ../src/libs/filters/ratio.c:122 ../src/libs/print_settings.c:2519 msgid "portrait" msgstr "Portrait" -#: ../build/lib/darktable/plugins/introspection_borders.c:329 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:305 +#: ../build/lib/darktable/plugins/introspection_borders.c:349 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:311 #: ../src/libs/filters/ratio.c:124 ../src/libs/print_settings.c:2519 msgid "landscape" msgstr "Paysage" +#: ../build/lib/darktable/plugins/introspection_borders.c:354 +#: ../src/iop/relight.c:275 ../src/libs/export.c:1223 +#: ../src/libs/metadata_view.c:151 ../src/libs/print_settings.c:2537 +msgid "width" +msgstr "Largeur" + +#: ../build/lib/darktable/plugins/introspection_borders.c:355 +#: ../build/lib/darktable/plugins/introspection_watermark.c:326 +#: ../src/libs/export.c:1229 ../src/libs/metadata_view.c:152 +#: ../src/libs/print_settings.c:2541 +msgid "height" +msgstr "Hauteur" + +#: ../build/lib/darktable/plugins/introspection_borders.c:356 +msgid "shorter" +msgstr "Plus court" + +#: ../build/lib/darktable/plugins/introspection_borders.c:357 +msgid "longer" +msgstr "Plus long" + #: ../build/lib/darktable/plugins/introspection_cacorrect.c:42 #: ../build/lib/darktable/plugins/introspection_cacorrect.c:91 msgid "avoid colorshift" @@ -2680,9 +2832,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:67 #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:132 -#: ../src/iop/atrous.c:1522 ../src/iop/bilateral.cc:350 ../src/iop/clahe.c:335 -#: ../src/iop/dither.c:760 ../src/iop/lowpass.c:584 ../src/iop/shadhi.c:675 -#: ../src/iop/sharpen.c:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:340 +#: ../build/lib/darktable/plugins/introspection_lens.cc:501 +#: ../src/iop/atrous.c:1636 ../src/iop/bilateral.cc:352 ../src/iop/clahe.c:337 +#: ../src/iop/dither.c:762 ../src/iop/lowpass.c:597 ../src/iop/shadhi.c:710 +#: ../src/iop/sharpen.c:435 msgid "radius" msgstr "Rayon" @@ -2690,9 +2844,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:136 #: ../build/lib/darktable/plugins/introspection_highlights.c:137 #: ../build/lib/darktable/plugins/introspection_highlights.c:240 -#: ../src/iop/bloom.c:376 ../src/iop/denoiseprofile.c:3818 -#: ../src/iop/grain.c:584 ../src/iop/hazeremoval.c:201 -#: ../src/iop/hotpixels.c:388 ../src/iop/nlmeans.c:460 ../src/iop/velvia.c:279 +#: ../build/lib/darktable/plugins/introspection_lens.cc:334 +#: ../build/lib/darktable/plugins/introspection_lens.cc:497 +#: ../src/iop/bloom.c:372 ../src/iop/denoiseprofile.c:3822 +#: ../src/iop/grain.c:602 ../src/iop/hazeremoval.c:203 +#: ../src/iop/hotpixels.c:467 ../src/iop/nlmeans.c:463 ../src/iop/velvia.c:288 msgid "strength" msgstr "Force" @@ -2707,41 +2863,41 @@ msgstr "Aberrations chromatiques importantes" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:158 -#: ../src/common/collection.c:1507 ../src/common/color_vocabulary.c:232 -#: ../src/common/colorlabels.c:334 ../src/develop/blend_gui.c:2330 -#: ../src/develop/blend_gui.c:2378 ../src/develop/lightroom.c:834 -#: ../src/gui/gtk.c:3137 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:354 -#: ../src/iop/channelmixer.c:618 ../src/iop/channelmixer.c:628 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/colorzones.c:2263 -#: ../src/iop/temperature.c:1935 ../src/iop/temperature.c:2129 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:260 -#: ../src/libs/histogram.c:2397 +#: ../src/common/collection.c:1374 ../src/common/color_vocabulary.c:232 +#: ../src/common/colorlabels.c:333 ../src/develop/blend_gui.c:2346 +#: ../src/develop/blend_gui.c:2394 ../src/develop/lightroom.c:887 +#: ../src/gui/gtk.c:3183 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:356 +#: ../src/iop/channelmixer.c:637 ../src/iop/channelmixer.c:647 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/colorzones.c:2499 +#: ../src/iop/temperature.c:1912 ../src/iop/temperature.c:2094 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:260 +#: ../src/libs/histogram.c:2724 msgid "red" msgstr "Rouge" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:159 -#: ../src/common/collection.c:1511 ../src/common/color_vocabulary.c:277 -#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2336 -#: ../src/develop/blend_gui.c:2384 ../src/develop/lightroom.c:838 -#: ../src/gui/gtk.c:3138 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:359 -#: ../src/iop/channelmixer.c:619 ../src/iop/channelmixer.c:634 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/colorzones.c:2266 -#: ../src/iop/temperature.c:1919 ../src/iop/temperature.c:1937 -#: ../src/iop/temperature.c:2130 ../src/libs/collect.c:1791 -#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2389 +#: ../src/common/collection.c:1378 ../src/common/color_vocabulary.c:277 +#: ../src/common/colorlabels.c:335 ../src/develop/blend_gui.c:2352 +#: ../src/develop/blend_gui.c:2400 ../src/develop/lightroom.c:891 +#: ../src/gui/gtk.c:3184 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:361 +#: ../src/iop/channelmixer.c:638 ../src/iop/channelmixer.c:653 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/colorzones.c:2502 +#: ../src/iop/temperature.c:1896 ../src/iop/temperature.c:1914 +#: ../src/iop/temperature.c:2095 ../src/libs/collect.c:1916 +#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2715 msgid "green" msgstr "Vert" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:160 -#: ../src/common/collection.c:1513 ../src/common/color_vocabulary.c:324 -#: ../src/common/colorlabels.c:337 ../src/develop/blend_gui.c:2342 -#: ../src/develop/blend_gui.c:2390 ../src/develop/lightroom.c:840 -#: ../src/gui/gtk.c:3139 ../src/iop/bilateral.cc:364 -#: ../src/iop/channelmixer.c:620 ../src/iop/channelmixer.c:640 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/colorzones.c:2268 -#: ../src/iop/temperature.c:1939 ../src/iop/temperature.c:2131 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:263 -#: ../src/libs/histogram.c:2381 +#: ../src/common/collection.c:1380 ../src/common/color_vocabulary.c:324 +#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2358 +#: ../src/develop/blend_gui.c:2406 ../src/develop/lightroom.c:893 +#: ../src/gui/gtk.c:3185 ../src/iop/bilateral.cc:366 +#: ../src/iop/channelmixer.c:639 ../src/iop/channelmixer.c:659 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/colorzones.c:2504 +#: ../src/iop/temperature.c:1916 ../src/iop/temperature.c:2096 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:263 +#: ../src/libs/histogram.c:2706 msgid "blue" msgstr "Bleu" @@ -2984,7 +3140,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:303 #: ../build/lib/darktable/plugins/introspection_crop.c:61 #: ../build/lib/darktable/plugins/introspection_crop.c:134 -#: ../src/gui/gtk.c:1141 ../src/iop/atrous.c:1518 +#: ../src/gui/gtk.c:1234 ../src/iop/atrous.c:1632 msgid "left" msgstr "Gauche" @@ -2992,7 +3148,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:307 #: ../build/lib/darktable/plugins/introspection_crop.c:67 #: ../build/lib/darktable/plugins/introspection_crop.c:138 -#: ../src/gui/accelerators.c:113 ../src/gui/gtk.c:1155 +#: ../src/gui/accelerators.c:131 ../src/gui/gtk.c:1240 msgid "top" msgstr "Haut" @@ -3000,7 +3156,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:311 #: ../build/lib/darktable/plugins/introspection_crop.c:73 #: ../build/lib/darktable/plugins/introspection_crop.c:142 -#: ../src/gui/gtk.c:1148 ../src/iop/atrous.c:1517 +#: ../src/gui/gtk.c:1237 ../src/iop/atrous.c:1631 msgid "right" msgstr "Droite" @@ -3008,7 +3164,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:315 #: ../build/lib/darktable/plugins/introspection_crop.c:79 #: ../build/lib/darktable/plugins/introspection_crop.c:146 -#: ../src/gui/accelerators.c:114 ../src/gui/gtk.c:1162 +#: ../src/gui/accelerators.c:132 ../src/gui/gtk.c:1243 msgid "bottom" msgstr "Bas" @@ -3047,10 +3203,11 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:477 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:489 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:501 -#: ../src/develop/blend_gui.c:2356 ../src/develop/blend_gui.c:2404 -#: ../src/iop/atrous.c:1667 ../src/iop/channelmixerrgb.c:4457 -#: ../src/iop/channelmixerrgb.c:4573 ../src/iop/colorbalancergb.c:1895 -#: ../src/iop/colorzones.c:2402 ../src/iop/nlmeans.c:468 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 +#: ../src/develop/blend_gui.c:2372 ../src/develop/blend_gui.c:2420 +#: ../src/iop/atrous.c:1801 ../src/iop/channelmixerrgb.c:4525 +#: ../src/iop/channelmixerrgb.c:4641 ../src/iop/colorbalancergb.c:1966 +#: ../src/iop/colorzones.c:2645 ../src/iop/nlmeans.c:471 msgid "chroma" msgstr "Chroma" @@ -3070,11 +3227,11 @@ #: ../build/lib/darktable/plugins/introspection_splittoning.c:73 #: ../build/lib/darktable/plugins/introspection_splittoning.c:134 #: ../build/lib/darktable/plugins/introspection_splittoning.c:142 -#: ../src/develop/blend_gui.c:2315 ../src/develop/blend_gui.c:2349 -#: ../src/develop/blend_gui.c:2411 ../src/iop/channelmixer.c:615 -#: ../src/iop/channelmixerrgb.c:4450 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/colorbalance.c:2042 ../src/iop/colorize.c:330 -#: ../src/iop/colorreconstruction.c:1240 ../src/iop/colorzones.c:2403 +#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2365 +#: ../src/develop/blend_gui.c:2427 ../src/iop/channelmixer.c:634 +#: ../src/iop/channelmixerrgb.c:4518 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/colorbalance.c:2017 ../src/iop/colorize.c:343 +#: ../src/iop/colorreconstruction.c:1249 ../src/iop/colorzones.c:2646 msgid "hue" msgstr "Teinte" @@ -3101,9 +3258,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:569 #: ../build/lib/darktable/plugins/introspection_toneequal.c:156 #: ../build/lib/darktable/plugins/introspection_toneequal.c:297 -#: ../src/iop/bilat.c:469 ../src/iop/colorbalance.c:2099 -#: ../src/iop/negadoctor.c:915 ../src/iop/shadhi.c:671 -#: ../src/iop/splittoning.c:507 +#: ../src/iop/bilat.c:479 ../src/iop/colorbalance.c:2074 +#: ../src/iop/negadoctor.c:934 ../src/iop/shadhi.c:706 +#: ../src/iop/splittoning.c:503 msgid "shadows" msgstr "Ombres" @@ -3115,9 +3272,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:561 #: ../build/lib/darktable/plugins/introspection_toneequal.c:180 #: ../build/lib/darktable/plugins/introspection_toneequal.c:313 -#: ../src/iop/bilat.c:463 ../src/iop/colorbalance.c:2101 -#: ../src/iop/monochrome.c:561 ../src/iop/shadhi.c:672 -#: ../src/iop/splittoning.c:514 +#: ../src/iop/bilat.c:473 ../src/iop/colorbalance.c:2076 +#: ../src/iop/monochrome.c:583 ../src/iop/shadhi.c:707 +#: ../src/iop/splittoning.c:510 msgid "highlights" msgstr "Hautes lumières" @@ -3134,13 +3291,13 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:565 #: ../build/lib/darktable/plugins/introspection_toneequal.c:168 #: ../build/lib/darktable/plugins/introspection_toneequal.c:305 -#: ../src/iop/colorbalance.c:2100 +#: ../src/iop/colorbalance.c:2075 msgid "mid-tones" msgstr "Tons moyens" #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:340 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:537 -#: ../src/iop/filmic.c:1576 +#: ../src/iop/filmic.c:1601 msgid "global saturation" msgstr "Saturation globale" @@ -3171,12 +3328,12 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:412 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:585 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:64 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:137 -#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:607 ../src/iop/bilat.c:458 -#: ../src/iop/colisa.c:304 ../src/iop/colorbalance.c:1947 -#: ../src/iop/colorbalance.c:1953 ../src/iop/filmic.c:1548 -#: ../src/iop/filmicrgb.c:4551 ../src/iop/lowpass.c:586 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:116 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:237 +#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:637 ../src/iop/bilat.c:468 +#: ../src/iop/colisa.c:298 ../src/iop/colorbalance.c:1922 +#: ../src/iop/colorbalance.c:1928 ../src/iop/filmic.c:1573 +#: ../src/iop/filmicrgb.c:4615 ../src/iop/lowpass.c:599 msgid "contrast" msgstr "Contraste" @@ -3203,33 +3360,35 @@ msgid "blue-yellow contrast" msgstr "Contraste bleu ↔ jaune" -#: ../build/lib/darktable/plugins/introspection_colorin.c:148 -#: ../build/lib/darktable/plugins/introspection_colorin.c:231 +#: ../build/lib/darktable/plugins/introspection_colorin.c:150 +#: ../build/lib/darktable/plugins/introspection_colorin.c:233 msgid "gamut clipping" msgstr "Troncature du gamut" -#: ../build/lib/darktable/plugins/introspection_colorin.c:301 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:201 -#: ../src/common/colorspaces.c:1251 ../src/common/colorspaces.c:1484 +#: ../build/lib/darktable/plugins/introspection_colorin.c:304 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:312 +#: ../src/common/colorspaces.c:1410 ../src/common/colorspaces.c:1700 #: ../src/libs/print_settings.c:1356 msgid "sRGB" msgstr "sRVB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:302 -#: ../src/common/colorspaces.c:1260 ../src/common/colorspaces.c:1486 +#: ../build/lib/darktable/plugins/introspection_colorin.c:305 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:311 +#: ../src/common/colorspaces.c:1421 ../src/common/colorspaces.c:1702 #: ../src/libs/print_settings.c:1363 msgid "Adobe RGB (compatible)" msgstr "Adobe RVB (compatible)" -#: ../build/lib/darktable/plugins/introspection_colorin.c:303 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 -#: ../src/common/colorspaces.c:1265 ../src/common/colorspaces.c:1488 +#: ../build/lib/darktable/plugins/introspection_colorin.c:306 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 +#: ../src/common/colorspaces.c:1428 ../src/common/colorspaces.c:1704 msgid "linear Rec709 RGB" msgstr "RVB Rec709 linéaire" -#: ../build/lib/darktable/plugins/introspection_colorin.c:304 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 -#: ../src/common/colorspaces.c:1274 ../src/common/colorspaces.c:1490 +#: ../build/lib/darktable/plugins/introspection_colorin.c:307 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:206 +#: ../src/common/colorspaces.c:1442 ../src/common/colorspaces.c:1706 msgid "linear Rec2020 RGB" msgstr "RVB Rec2020 linéaire" @@ -3257,7 +3416,7 @@ #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:127 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:45 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:92 -#: ../src/iop/shadhi.c:686 +#: ../src/iop/shadhi.c:721 msgid "spatial extent" msgstr "Étendue spatiale" @@ -3267,7 +3426,7 @@ msgstr "Étendue de luminance" #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:154 -#: ../src/iop/channelmixerrgb.c:4669 +#: ../src/iop/channelmixerrgb.c:4737 msgid "saturated colors" msgstr "Couleurs saturées" @@ -3281,7 +3440,7 @@ #: ../build/lib/darktable/plugins/introspection_colorzones.c:233 #: ../build/lib/darktable/plugins/introspection_soften.c:66 #: ../build/lib/darktable/plugins/introspection_soften.c:121 -#: ../src/iop/atrous.c:1689 +#: ../src/iop/atrous.c:1835 msgid "mix" msgstr "Fusion" @@ -3291,33 +3450,17 @@ msgstr "Mode" #: ../build/lib/darktable/plugins/introspection_colorzones.c:255 -#: ../src/develop/blend_gui.c:2294 ../src/iop/channelmixer.c:617 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/colorchecker.c:1448 -#: ../src/iop/colorize.c:349 ../src/iop/colorzones.c:2401 -#: ../src/iop/exposure.c:1239 +#: ../src/develop/blend_gui.c:2310 ../src/iop/channelmixer.c:636 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/colorchecker.c:1453 +#: ../src/iop/colorize.c:362 ../src/iop/colorzones.c:2644 +#: ../src/iop/exposure.c:1257 msgid "lightness" msgstr "Clarté" -#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 -#: ../src/develop/blend_gui.c:2310 ../src/iop/basicadj.c:624 -#: ../src/iop/channelmixer.c:616 ../src/iop/colisa.c:306 -#: ../src/iop/colorbalance.c:2059 ../src/iop/colorbalancergb.c:1919 -#: ../src/iop/colorchecker.c:1483 ../src/iop/colorcontrast.c:90 -#: ../src/iop/colorcorrection.c:275 ../src/iop/colorize.c:343 -#: ../src/iop/lowpass.c:588 ../src/iop/soften.c:373 ../src/iop/velvia.c:84 -#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:971 -msgid "saturation" -msgstr "Saturation" - #: ../build/lib/darktable/plugins/introspection_colorzones.c:267 -#: ../src/iop/atrous.c:1309 ../src/iop/atrous.c:1313 -#: ../src/iop/denoiseprofile.c:3527 ../src/iop/rawdenoise.c:755 +#: ../src/iop/atrous.c:1410 ../src/iop/atrous.c:1414 +#: ../src/iop/denoiseprofile.c:3531 ../src/iop/rawdenoise.c:771 +#: ../src/iop/sigmoid.c:292 msgid "smooth" msgstr "Doux" @@ -3334,9 +3477,9 @@ #: ../build/lib/darktable/plugins/introspection_defringe.c:106 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:230 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:435 -#: ../src/iop/atrous.c:1572 ../src/iop/bloom.c:372 -#: ../src/iop/colorreconstruction.c:1236 ../src/iop/hotpixels.c:384 -#: ../src/iop/sharpen.c:449 +#: ../src/iop/atrous.c:1695 ../src/iop/bloom.c:368 +#: ../src/iop/colorreconstruction.c:1245 ../src/iop/hotpixels.c:463 +#: ../src/iop/sharpen.c:444 msgid "threshold" msgstr "Seuil" @@ -3473,7 +3616,7 @@ #. history #: ../build/lib/darktable/plugins/introspection_demosaic.c:232 -#: ../src/common/collection.c:1526 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1394 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "basic" msgstr "Basique" @@ -3546,12 +3689,9 @@ msgid "upgrade profiled transform" msgstr "Mise à niveau du modèle" -#. -#. * Color mode combo box -#. #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:257 #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:388 -#: ../src/imageio/format/avif.c:786 ../src/libs/colorpicker.c:584 +#: ../src/libs/colorpicker.c:659 msgid "color mode" msgstr "Mode de couleur" @@ -3576,7 +3716,7 @@ msgstr "Calcule la variance" #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:410 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:266 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:292 msgid "RGB" msgstr "RVB" @@ -3587,7 +3727,7 @@ #. two more sharpness (standard & strong) #: ../build/lib/darktable/plugins/introspection_diffuse.c:123 #: ../build/lib/darktable/plugins/introspection_diffuse.c:248 -#: ../src/iop/atrous.c:1564 ../src/iop/diffuse.c:630 ../src/iop/highpass.c:381 +#: ../src/iop/atrous.c:1685 ../src/iop/diffuse.c:657 ../src/iop/highpass.c:376 msgid "sharpness" msgstr "Netteté" @@ -3751,7 +3891,7 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:212 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:423 -#: ../src/iop/filmic.c:1489 +#: ../src/iop/filmic.c:1514 msgid "middle gray luminance" msgstr "Luminance du gris moyen" @@ -3759,13 +3899,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:427 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:97 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:166 -#: ../src/iop/filmic.c:1514 +#: ../src/iop/filmic.c:1539 msgid "black relative exposure" msgstr "Exposition relative du noir" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:224 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:431 -#: ../src/iop/filmic.c:1501 +#: ../src/iop/filmic.c:1526 msgid "white relative exposure" msgstr "Exposition relative du blanc" @@ -3796,19 +3936,19 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:266 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:459 -#: ../src/iop/filmic.c:1646 +#: ../src/iop/filmic.c:1671 msgid "target middle gray" msgstr "Gris moyen cible" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:272 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:463 -#: ../src/iop/filmic.c:1637 +#: ../src/iop/filmic.c:1662 msgid "target black luminance" msgstr "Luminance du noir cible" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:278 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:467 -#: ../src/iop/filmic.c:1655 +#: ../src/iop/filmic.c:1680 msgid "target white luminance" msgstr "Luminance du blanc cible" @@ -3816,13 +3956,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:471 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:69 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:140 -#: ../src/libs/masks.c:106 +#: ../src/libs/masks.c:107 msgid "hardness" msgstr "Dureté" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:302 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:483 -#: ../src/iop/filmic.c:1586 ../src/iop/filmicrgb.c:4729 +#: ../src/iop/filmic.c:1611 ../src/iop/filmicrgb.c:4793 msgid "extreme luminance saturation" msgstr "Saturation des luminances extrêmes" @@ -3893,11 +4033,11 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:549 #: ../build/lib/darktable/plugins/introspection_toneequal.c:371 -#: ../src/common/database.c:2785 ../src/common/variables.c:705 -#: ../src/develop/imageop_gui.c:209 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 +#: ../src/common/variables.c:714 ../src/develop/imageop_gui.c:209 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 msgid "no" msgstr "Non" @@ -3999,9 +4139,25 @@ msgid "density" msgstr "Densité" +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 +#: ../src/develop/blend_gui.c:2326 ../src/iop/basicadj.c:654 +#: ../src/iop/channelmixer.c:635 ../src/iop/colisa.c:300 +#: ../src/iop/colorbalance.c:2034 ../src/iop/colorbalancergb.c:1990 +#: ../src/iop/colorchecker.c:1488 ../src/iop/colorcontrast.c:82 +#: ../src/iop/colorcorrection.c:268 ../src/iop/colorize.c:356 +#: ../src/iop/lowpass.c:601 ../src/iop/soften.c:368 ../src/iop/velvia.c:75 +#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:1058 +msgid "saturation" +msgstr "Saturation" + #: ../build/lib/darktable/plugins/introspection_grain.c:58 #: ../build/lib/darktable/plugins/introspection_grain.c:117 -#: ../src/iop/bilat.c:450 +#: ../src/iop/bilat.c:460 msgid "coarseness" msgstr "Granularité" @@ -4014,7 +4170,7 @@ #: ../build/lib/darktable/plugins/introspection_highlights.c:143 #: ../build/lib/darktable/plugins/introspection_highlights.c:244 -#: ../src/views/darkroom.c:2406 +#: ../src/views/darkroom.c:2245 msgid "clipping threshold" msgstr "Seuil de troncature" @@ -4150,168 +4306,172 @@ msgid "detect by 3 neighbors" msgstr "Détection par 3 voisins" -#: ../build/lib/darktable/plugins/introspection_lens.cc:162 -#: ../build/lib/darktable/plugins/introspection_lens.cc:337 +#: ../build/lib/darktable/plugins/introspection_lens.cc:190 +#: ../build/lib/darktable/plugins/introspection_lens.cc:401 msgid "correction method" msgstr "Mode de correction" #. Page CORRECTIONS -#: ../build/lib/darktable/plugins/introspection_lens.cc:168 -#: ../build/lib/darktable/plugins/introspection_lens.cc:341 -#: ../src/iop/negadoctor.c:900 +#: ../build/lib/darktable/plugins/introspection_lens.cc:196 +#: ../build/lib/darktable/plugins/introspection_lens.cc:405 +#: ../src/iop/negadoctor.c:919 msgid "corrections" msgstr "Corrections" #. mode choice -#. Add check to control whether the style is to replace or append the current module -#: ../build/lib/darktable/plugins/introspection_lens.cc:174 -#: ../build/lib/darktable/plugins/introspection_lens.cc:345 +#: ../build/lib/darktable/plugins/introspection_lens.cc:202 +#: ../build/lib/darktable/plugins/introspection_lens.cc:409 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:128 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:219 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:51 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:118 -#: ../src/iop/bilat.c:428 ../src/iop/colorbalance.c:1909 -#: ../src/iop/denoiseprofile.c:3806 ../src/iop/exposure.c:1157 -#: ../src/iop/levels.c:684 ../src/iop/profile_gamma.c:668 -#: ../src/libs/copy_history.c:399 ../src/libs/export.c:1262 -#: ../src/libs/image.c:597 ../src/libs/print_settings.c:2875 -#: ../src/libs/styles.c:846 ../src/views/darkroom.c:2387 +#: ../src/develop/blend_gui.c:3546 ../src/iop/bilat.c:438 +#: ../src/iop/colorbalance.c:1884 ../src/iop/denoiseprofile.c:3810 +#: ../src/iop/exposure.c:1175 ../src/iop/levels.c:700 +#: ../src/iop/profile_gamma.c:682 ../src/libs/copy_history.c:399 +#: ../src/libs/export.c:1376 ../src/libs/image.c:666 +#: ../src/libs/print_settings.c:2875 ../src/libs/styles.c:850 +#: ../src/views/darkroom.c:2226 msgid "mode" msgstr "Mode" -#: ../build/lib/darktable/plugins/introspection_lens.cc:210 -#: ../build/lib/darktable/plugins/introspection_lens.cc:369 -#: ../src/iop/lens.cc:3820 +#: ../build/lib/darktable/plugins/introspection_lens.cc:238 +#: ../build/lib/darktable/plugins/introspection_lens.cc:433 +#: ../src/iop/lens.cc:4474 msgid "target geometry" msgstr "Géométrie des images (distorsion)" -#: ../build/lib/darktable/plugins/introspection_lens.cc:240 -#: ../build/lib/darktable/plugins/introspection_lens.cc:389 +#: ../build/lib/darktable/plugins/introspection_lens.cc:268 +#: ../build/lib/darktable/plugins/introspection_lens.cc:453 msgid "TCA overwrite" msgstr "Remplacer AC" -#: ../build/lib/darktable/plugins/introspection_lens.cc:246 -#: ../build/lib/darktable/plugins/introspection_lens.cc:393 +#: ../build/lib/darktable/plugins/introspection_lens.cc:274 +#: ../build/lib/darktable/plugins/introspection_lens.cc:298 +#: ../build/lib/darktable/plugins/introspection_lens.cc:457 +#: ../build/lib/darktable/plugins/introspection_lens.cc:473 msgid "TCA red" msgstr "AC rouge" -#: ../build/lib/darktable/plugins/introspection_lens.cc:252 -#: ../build/lib/darktable/plugins/introspection_lens.cc:397 +#: ../build/lib/darktable/plugins/introspection_lens.cc:280 +#: ../build/lib/darktable/plugins/introspection_lens.cc:304 +#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:477 msgid "TCA blue" msgstr "AC bleu" -#: ../build/lib/darktable/plugins/introspection_lens.cc:258 -#: ../build/lib/darktable/plugins/introspection_lens.cc:401 -msgid "distortion fine-tune" -msgstr "Réglage précis de la distorsion" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:264 -#: ../build/lib/darktable/plugins/introspection_lens.cc:405 -msgid "vignetting fine-tune" -msgstr "Réglage précis du vignetage" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:270 -#: ../build/lib/darktable/plugins/introspection_lens.cc:409 -msgid "TCA red fine-tune" -msgstr "Ajustement fin du rouge AC" +#: ../build/lib/darktable/plugins/introspection_lens.cc:286 +#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +msgid "distortion" +msgstr "Déformation" -#: ../build/lib/darktable/plugins/introspection_lens.cc:276 -#: ../build/lib/darktable/plugins/introspection_lens.cc:413 -msgid "TCA blue fine-tune" -msgstr "Ajustement fin du bleu AC" +#: ../build/lib/darktable/plugins/introspection_lens.cc:292 +#: ../build/lib/darktable/plugins/introspection_lens.cc:469 +#: ../src/iop/vignette.c:114 +msgid "vignetting" +msgstr "Vignetage" -#: ../build/lib/darktable/plugins/introspection_lens.cc:282 -#: ../build/lib/darktable/plugins/introspection_lens.cc:417 +#: ../build/lib/darktable/plugins/introspection_lens.cc:310 +#: ../build/lib/darktable/plugins/introspection_lens.cc:481 msgid "scale fine-tune" msgstr "Ajustement fin de l’échelle" -#: ../build/lib/darktable/plugins/introspection_lens.cc:294 -#: ../build/lib/darktable/plugins/introspection_lens.cc:425 +#: ../build/lib/darktable/plugins/introspection_lens.cc:322 +#: ../build/lib/darktable/plugins/introspection_lens.cc:489 msgid "image scale" msgstr "Échelle de l'image" -#: ../build/lib/darktable/plugins/introspection_lens.cc:439 +#: ../build/lib/darktable/plugins/introspection_lens.cc:346 +#: ../build/lib/darktable/plugins/introspection_lens.cc:505 +msgid "steepness" +msgstr "Déclivité" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:527 msgid "embedded metadata" msgstr "Métadonnées intégrées" -#: ../build/lib/darktable/plugins/introspection_lens.cc:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:528 msgid "Lensfun database" msgstr "Base de données Lensfun" +#: ../build/lib/darktable/plugins/introspection_lens.cc:529 +msgid "only manual vignette" +msgstr "Vignettage manuel seulement" + #. get nice text for bounds #. Side-border hide/show -#: ../build/lib/darktable/plugins/introspection_lens.cc:445 -#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2367 -#: ../src/gui/accelerators.c:2447 ../src/gui/gtk.c:1204 ../src/gui/gtk.c:3136 -#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3709 -#: ../src/iop/rawdenoise.c:893 ../src/libs/collect.c:3066 -#: ../src/libs/filtering.c:1459 ../src/libs/filters/colors.c:157 +#: ../build/lib/darktable/plugins/introspection_lens.cc:534 +#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2592 +#: ../src/gui/accelerators.c:2674 ../src/gui/gtk.c:1282 ../src/gui/gtk.c:3182 +#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3713 +#: ../src/iop/rawdenoise.c:909 ../src/libs/collect.c:3413 +#: ../src/libs/filtering.c:1521 ../src/libs/filters/colors.c:157 #: ../src/libs/filters/colors.c:265 ../src/libs/filters/rating.c:211 msgid "all" msgstr "Tout" -#: ../build/lib/darktable/plugins/introspection_lens.cc:446 +#: ../build/lib/darktable/plugins/introspection_lens.cc:535 msgid "distortion & TCA" msgstr "Distorsion et chromatisme" -#: ../build/lib/darktable/plugins/introspection_lens.cc:447 +#: ../build/lib/darktable/plugins/introspection_lens.cc:536 msgid "distortion & vignetting" msgstr "Distorsion et vignettage" -#: ../build/lib/darktable/plugins/introspection_lens.cc:448 +#: ../build/lib/darktable/plugins/introspection_lens.cc:537 msgid "TCA & vignetting" msgstr "Chromatisme et vignettage" -#: ../build/lib/darktable/plugins/introspection_lens.cc:449 +#: ../build/lib/darktable/plugins/introspection_lens.cc:538 msgid "only distortion" msgstr "Distorsion seulement" -#: ../build/lib/darktable/plugins/introspection_lens.cc:450 +#: ../build/lib/darktable/plugins/introspection_lens.cc:539 msgid "only TCA" msgstr "Chromatisme seulement" -#: ../build/lib/darktable/plugins/introspection_lens.cc:451 +#: ../build/lib/darktable/plugins/introspection_lens.cc:540 msgid "only vignetting" msgstr "Vignettage seulement" -#: ../build/lib/darktable/plugins/introspection_lens.cc:455 -#: ../src/libs/modulegroups.c:2318 +#: ../build/lib/darktable/plugins/introspection_lens.cc:544 +#: ../src/libs/modulegroups.c:2302 msgid "correct" msgstr "Retouche" -#: ../build/lib/darktable/plugins/introspection_lens.cc:456 +#: ../build/lib/darktable/plugins/introspection_lens.cc:545 msgid "distort" msgstr "Déforme" -#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:550 msgid "rectilinear" msgstr "Rectilinéaire" -#: ../build/lib/darktable/plugins/introspection_lens.cc:462 +#: ../build/lib/darktable/plugins/introspection_lens.cc:551 msgid "fisheye" msgstr "Fisheye" -#: ../build/lib/darktable/plugins/introspection_lens.cc:463 +#: ../build/lib/darktable/plugins/introspection_lens.cc:552 msgid "panoramic" msgstr "Panoramique" -#: ../build/lib/darktable/plugins/introspection_lens.cc:464 +#: ../build/lib/darktable/plugins/introspection_lens.cc:553 msgid "equirectangular" msgstr "Équi-rectangulaire" -#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +#: ../build/lib/darktable/plugins/introspection_lens.cc:554 msgid "orthographic" msgstr "Orthographique" -#: ../build/lib/darktable/plugins/introspection_lens.cc:466 +#: ../build/lib/darktable/plugins/introspection_lens.cc:555 msgid "stereographic" msgstr "Stéréographique" -#: ../build/lib/darktable/plugins/introspection_lens.cc:467 +#: ../build/lib/darktable/plugins/introspection_lens.cc:556 msgid "equisolid angle" msgstr "Angle solide constant" -#: ../build/lib/darktable/plugins/introspection_lens.cc:468 +#: ../build/lib/darktable/plugins/introspection_lens.cc:557 msgid "Thoby fisheye" msgstr "Fisheye Thoby" @@ -4322,8 +4482,8 @@ # lorsque l’action n’engendre pas de suppression physique, on emploie le terme "enlever" #. move left/right/up/down #: ../build/lib/darktable/plugins/introspection_liquify.c:429 -#: ../src/views/darkroom.c:2282 ../src/views/darkroom.c:2676 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:765 +#: ../src/views/darkroom.c:2121 ../src/views/darkroom.c:2522 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:765 #: ../src/views/lighttable.c:774 ../src/views/lighttable.c:1246 #: ../src/views/lighttable.c:1250 ../src/views/lighttable.c:1254 #: ../src/views/lighttable.c:1258 ../src/views/lighttable.c:1262 @@ -4335,8 +4495,8 @@ msgstr "Ligne" #: ../build/lib/darktable/plugins/introspection_liquify.c:431 -#: ../src/iop/basecurve.c:2186 ../src/iop/rgbcurve.c:1387 -#: ../src/iop/tonecurve.c:1149 +#: ../src/iop/basecurve.c:2207 ../src/iop/rgbcurve.c:1387 +#: ../src/iop/tonecurve.c:1171 msgid "curve" msgstr "Courbe" @@ -4372,28 +4532,33 @@ msgid "bilateral filter" msgstr "Filtre bilatéral" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:76 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:163 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:77 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:164 msgid "application color space" msgstr "Espace de couleur" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 msgid "Adobe RGB" msgstr "Adobe RVB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 msgid "gamma Rec709 RGB" msgstr "RVB Rec709 gamma" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:209 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:207 +#: ../src/common/colorspaces.c:1486 ../src/common/colorspaces.c:1740 +msgid "linear ProPhoto RGB" +msgstr "ProPhoto RVB linéaire" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 msgid "tetrahedral" msgstr "Tétraédrique" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:210 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:212 msgid "trilinear" msgstr "Trilinéaire" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:213 msgid "pyramid" msgstr "Pyramide" @@ -4414,7 +4579,7 @@ #: ../build/lib/darktable/plugins/introspection_negadoctor.c:144 #: ../build/lib/darktable/plugins/introspection_negadoctor.c:239 -#: ../src/iop/negadoctor.c:992 +#: ../src/iop/negadoctor.c:1011 msgid "paper grade (gamma)" msgstr "Grade (gamma)" @@ -4429,15 +4594,57 @@ msgstr "Ajustement exposition" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:261 -#: ../src/iop/negadoctor.c:417 +#: ../src/iop/negadoctor.c:431 msgid "black and white film" msgstr "Film noir & blanc" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:262 -#: ../src/iop/negadoctor.c:402 +#: ../src/iop/negadoctor.c:416 msgid "color film" msgstr "Film couleur" +#: ../build/lib/darktable/plugins/introspection_primaries.c:75 +#: ../build/lib/darktable/plugins/introspection_primaries.c:160 +#: ../src/iop/primaries.c:406 +msgid "tint hue" +msgstr "Teinte couleur" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:81 +#: ../build/lib/darktable/plugins/introspection_primaries.c:164 +#: ../src/iop/primaries.c:413 +msgid "tint purity" +msgstr "Pureté de la teinte" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:87 +#: ../build/lib/darktable/plugins/introspection_primaries.c:168 +msgid "red hue" +msgstr "Teinte rouge" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:93 +#: ../build/lib/darktable/plugins/introspection_primaries.c:172 +msgid "red purity" +msgstr "Pureté du rouge" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:99 +#: ../build/lib/darktable/plugins/introspection_primaries.c:176 +msgid "green hue" +msgstr "Teinte verte" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:105 +#: ../build/lib/darktable/plugins/introspection_primaries.c:180 +msgid "green purity" +msgstr "Pureté du vert" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:111 +#: ../build/lib/darktable/plugins/introspection_primaries.c:184 +msgid "blue hue" +msgstr "Teinte bleue" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:117 +#: ../build/lib/darktable/plugins/introspection_primaries.c:188 +msgid "blue purity" +msgstr "Pureté du bleu" + #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:85 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:158 msgid "dynamic range" @@ -4450,7 +4657,7 @@ #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:103 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:170 -#: ../src/iop/filmic.c:1526 +#: ../src/iop/filmic.c:1551 msgid "safety factor" msgstr "Facteur de sécurité" @@ -4459,7 +4666,7 @@ msgstr "Logarithmique" #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:185 -#: ../src/iop/profile_gamma.c:625 +#: ../src/iop/profile_gamma.c:639 msgid "gamma" msgstr "Gamma" @@ -4497,7 +4704,7 @@ #: ../build/lib/darktable/plugins/introspection_rawprepare.c:106 #: ../build/lib/darktable/plugins/introspection_rawprepare.c:179 -#: ../src/iop/rawprepare.c:946 +#: ../src/iop/rawprepare.c:954 msgid "white point" msgstr "Point blanc" @@ -4513,9 +4720,9 @@ #. exposure #: ../build/lib/darktable/plugins/introspection_relight.c:43 #: ../build/lib/darktable/plugins/introspection_relight.c:98 -#: ../src/common/collection.c:720 ../src/gui/preferences.c:836 -#: ../src/gui/presets.c:684 ../src/iop/basicadj.c:598 ../src/iop/exposure.c:122 -#: ../src/iop/exposure.c:1117 ../src/libs/metadata_view.c:141 +#: ../src/common/collection.c:633 ../src/gui/preferences.c:834 +#: ../src/gui/presets.c:687 ../src/iop/basicadj.c:628 ../src/iop/exposure.c:122 +#: ../src/iop/exposure.c:1135 ../src/libs/metadata_view.c:143 msgid "exposure" msgstr "Exposition" @@ -4526,9 +4733,9 @@ #: ../build/lib/darktable/plugins/introspection_retouch.c:285 #: ../build/lib/darktable/plugins/introspection_retouch.c:426 -#: ../src/iop/basicadj.c:620 ../src/iop/channelmixerrgb.c:4617 -#: ../src/iop/colisa.c:305 ../src/iop/lowpass.c:587 ../src/iop/soften.c:377 -#: ../src/iop/vignette.c:970 ../src/libs/history.c:963 +#: ../src/iop/basicadj.c:650 ../src/iop/channelmixerrgb.c:4685 +#: ../src/iop/colisa.c:299 ../src/iop/lowpass.c:600 ../src/iop/soften.c:372 +#: ../src/iop/vignette.c:1057 ../src/libs/history.c:963 msgid "brightness" msgstr "Luminosité" @@ -4538,7 +4745,7 @@ msgstr "max_iter" #: ../build/lib/darktable/plugins/introspection_retouch.c:444 -#: ../src/libs/metadata_view.c:329 +#: ../src/libs/metadata_view.c:333 msgid "unused" msgstr "Non utilisé" @@ -4551,12 +4758,12 @@ msgstr "Corriger" #: ../build/lib/darktable/plugins/introspection_retouch.c:447 -#: ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2051 msgid "blur" msgstr "Flouter" #: ../build/lib/darktable/plugins/introspection_retouch.c:448 -#: ../src/iop/retouch.c:1865 +#: ../src/iop/retouch.c:2049 msgid "fill" msgstr "Colorer" @@ -4569,9 +4776,9 @@ msgstr "Effacer" #: ../build/lib/darktable/plugins/introspection_retouch.c:458 -#: ../src/gui/presets.c:59 ../src/iop/watermark.c:1298 -#: ../src/libs/colorpicker.c:291 ../src/libs/image.c:612 -#: ../src/libs/modulegroups.c:2317 +#: ../src/gui/presets.c:61 ../src/iop/watermark.c:1346 +#: ../src/libs/colorpicker.c:320 ../src/libs/image.c:683 +#: ../src/libs/modulegroups.c:2301 msgid "color" msgstr "Couleur" @@ -4607,45 +4814,93 @@ msgid "highlights color adjustment" msgstr "Saturation des hautes lumières" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:70 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:141 -#: ../src/gui/accelerators.c:85 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:122 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:241 +#: ../src/gui/accelerators.c:101 msgid "skew" msgstr "Incliner" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:76 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:145 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:128 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:245 msgid "target white" msgstr "Blanc cible" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:82 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:149 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:134 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:249 msgid "target black" msgstr "Noir cible" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:88 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:153 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:140 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:253 msgid "color processing" msgstr "Traitement de la couleur" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:94 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:157 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:146 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:257 msgid "preserve hue" msgstr "Préserver la teinte" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:171 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:152 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:261 +msgid "red attenuation" +msgstr "Atténuation du rouge" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:158 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:265 +msgid "red rotation" +msgstr "Rotation du rouge" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:164 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:269 +msgid "green attenuation" +msgstr "Atténuation du vert" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:170 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:273 +msgid "green rotation" +msgstr "Rotation du vert" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:176 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:277 +msgid "blue attenuation" +msgstr "Atténuation du bleu" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:182 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:281 +msgid "blue rotation" +msgstr "Rotation du bleu" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:188 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:285 +msgid "recover purity" +msgstr "Recouvre la pureté" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:194 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:289 +msgid "base primaries" +msgstr "Primaires de base" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:303 msgid "per channel" msgstr "Par canal" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:172 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:304 msgid "RGB ratio" msgstr "Ratio RVB" -#: ../build/lib/darktable/plugins/introspection_temperature.c:66 -#: ../build/lib/darktable/plugins/introspection_temperature.c:121 -#: ../src/iop/temperature.c:1941 -msgid "emerald" -msgstr "Émeraude" +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:308 +#: ../src/common/colorspaces.c:1377 ../src/common/colorspaces.c:1734 +msgid "work profile" +msgstr "Profil de travail" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:309 +msgid "Rec2020" +msgstr "Rec2020" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:310 +#: ../src/common/colorspaces.c:1750 +msgid "Display P3" +msgstr "P3 Affichage" #: ../build/lib/darktable/plugins/introspection_tonecurve.c:135 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:232 @@ -4767,13 +5022,13 @@ #: ../build/lib/darktable/plugins/introspection_tonemap.cc:39 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:88 -#: ../src/iop/rgbcurve.c:184 ../src/iop/tonecurve.c:539 +#: ../src/iop/rgbcurve.c:186 ../src/iop/tonecurve.c:560 msgid "contrast compression" msgstr "Compression du contraste" #: ../build/lib/darktable/plugins/introspection_vibrance.c:33 #: ../build/lib/darktable/plugins/introspection_vibrance.c:76 -#: ../src/iop/basicadj.c:627 ../src/iop/vibrance.c:67 +#: ../src/iop/basicadj.c:657 ../src/iop/vibrance.c:67 msgid "vibrance" msgstr "Vibrance" @@ -4809,7 +5064,7 @@ #: ../build/lib/darktable/plugins/introspection_vignette.c:146 #: ../build/lib/darktable/plugins/introspection_vignette.c:237 -#: ../src/iop/vignette.c:978 +#: ../src/iop/vignette.c:1066 msgid "shape" msgstr "Forme" @@ -4848,7 +5103,7 @@ #: ../build/lib/darktable/plugins/introspection_watermark.c:323 #: ../src/imageio/format/tiff.c:125 ../src/imageio/format/xcf.c:159 -#: ../src/iop/borders.c:947 +#: ../src/iop/borders.c:960 msgid "image" msgstr "Image" @@ -4860,12 +5115,6 @@ msgid "smaller border" msgstr "Petit côté" -#: ../build/lib/darktable/plugins/introspection_watermark.c:326 -#: ../src/libs/export.c:1135 ../src/libs/metadata_view.c:148 -#: ../src/libs/print_settings.c:2541 -msgid "height" -msgstr "Hauteur" - #: ../build/lib/darktable/plugins/introspection_watermark.c:327 msgid "advanced options" msgstr "Options avancées" @@ -4894,23 +5143,23 @@ msgid "marker height" msgstr "Hauteur filigrane" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:6 +#: ../build/bin/tools/darktable_authors.h:6 msgid "developers" msgstr "Développeurs" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:11 +#: ../build/bin/tools/darktable_authors.h:11 msgid "translators" msgstr "Traducteurs" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:16 +#: ../build/bin/tools/darktable_authors.h:16 msgid "contributors" msgstr "Contributeurs" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:21 +#: ../build/bin/tools/darktable_authors.h:21 msgid "rawspeed contributors" msgstr "Contributeurs rawspeed" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:26 +#: ../build/bin/tools/darktable_authors.h:26 msgid "integration contributors" msgstr "Contributeurs intégration" @@ -4977,90 +5226,104 @@ msgid "Print your images" msgstr "Imprimer les images" -#: ../src/bauhaus/bauhaus.c:752 ../src/bauhaus/bauhaus.c:3689 +#: ../src/bauhaus/bauhaus.c:845 ../src/bauhaus/bauhaus.c:3957 msgid "sliders" msgstr "Réglettes" -#: ../src/bauhaus/bauhaus.c:753 ../src/bauhaus/bauhaus.c:3694 +#: ../src/bauhaus/bauhaus.c:847 ../src/bauhaus/bauhaus.c:3962 msgid "dropdowns" msgstr "Menus déroulants" -#: ../src/bauhaus/bauhaus.c:754 ../src/bauhaus/bauhaus.c:3699 +#: ../src/bauhaus/bauhaus.c:849 ../src/bauhaus/bauhaus.c:3967 msgid "buttons" msgstr "Boutons" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button on" msgstr "Bouton actif" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button off" msgstr "Bouton inactif" -#: ../src/bauhaus/bauhaus.c:3406 +#: ../src/bauhaus/bauhaus.c:3624 msgid "button pressed" msgstr "Bouton appuyé" -#: ../src/bauhaus/bauhaus.c:3623 +#: ../src/bauhaus/bauhaus.c:3862 msgid "not that many sliders" msgstr "Pas tant de réglettes" -#: ../src/bauhaus/bauhaus.c:3633 +#: ../src/bauhaus/bauhaus.c:3876 msgid "not that many dropdowns" msgstr "Pas tant de menus déroulants" -#: ../src/bauhaus/bauhaus.c:3648 +#: ../src/bauhaus/bauhaus.c:3895 msgid "not that many buttons" msgstr "Pas tant de boutons" -#: ../src/bauhaus/bauhaus.c:3653 ../src/gui/accelerators.c:348 +#: ../src/bauhaus/bauhaus.c:3900 ../src/gui/accelerators.c:389 msgid "value" msgstr "Valeur" -#: ../src/bauhaus/bauhaus.c:3654 ../src/bauhaus/bauhaus.c:3660 -#: ../src/gui/accelerators.c:326 +#: ../src/bauhaus/bauhaus.c:3901 ../src/bauhaus/bauhaus.c:3907 +#: ../src/gui/accelerators.c:368 msgid "button" msgstr "Bouton" -#: ../src/bauhaus/bauhaus.c:3655 +#: ../src/bauhaus/bauhaus.c:3902 msgid "force" msgstr "Force" -#: ../src/bauhaus/bauhaus.c:3656 ../src/libs/navigation.c:187 -#: ../src/libs/navigation.c:199 +#: ../src/bauhaus/bauhaus.c:3903 ../src/libs/navigation.c:190 +#: ../src/libs/navigation.c:202 msgid "zoom" msgstr "Zoom" -#: ../src/bauhaus/bauhaus.c:3659 +#: ../src/bauhaus/bauhaus.c:3906 ../src/libs/select.c:40 msgid "selection" msgstr "Sélection" -#: ../src/bauhaus/bauhaus.c:3678 +#: ../src/bauhaus/bauhaus.c:3946 msgid "slider" msgstr "Réglette" -#: ../src/bauhaus/bauhaus.c:3683 +#: ../src/bauhaus/bauhaus.c:3951 msgid "dropdown" msgstr "Menu déroulant" -#: ../src/chart/main.c:504 ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 ../src/gui/accelerators.c:2278 -#: ../src/gui/accelerators.c:2355 ../src/gui/accelerators.c:2407 -#: ../src/gui/accelerators.c:2435 ../src/gui/accelerators.c:2495 -#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1043 -#: ../src/gui/preferences.c:1082 ../src/gui/presets.c:420 -#: ../src/gui/presets.c:563 ../src/gui/styles_dialog.c:519 -#: ../src/imageio/storage/disk.c:123 ../src/imageio/storage/gallery.c:110 -#: ../src/imageio/storage/latex.c:109 ../src/iop/lut3d.c:1546 -#: ../src/libs/collect.c:408 ../src/libs/copy_history.c:115 -#: ../src/libs/geotagging.c:928 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/styles.c:392 ../src/libs/styles.c:527 -#: ../src/libs/tagging.c:2489 ../src/libs/tagging.c:2525 +#: ../src/chart/main.c:504 ../src/common/database.c:3372 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 ../src/gui/accelerators.c:2497 +#: ../src/gui/accelerators.c:2579 ../src/gui/accelerators.c:2632 +#: ../src/gui/accelerators.c:2661 ../src/gui/accelerators.c:2723 +#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1081 ../src/gui/presets.c:422 +#: ../src/gui/presets.c:565 ../src/gui/styles_dialog.c:526 +#: ../src/imageio/storage/disk.c:198 ../src/imageio/storage/gallery.c:150 +#: ../src/imageio/storage/latex.c:146 ../src/iop/lut3d.c:1560 +#: ../src/libs/collect.c:425 ../src/libs/collect.c:3242 +#: ../src/libs/copy_history.c:115 ../src/libs/export_metadata.c:276 +#: ../src/libs/geotagging.c:929 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1711 +#: ../src/libs/metadata.c:462 ../src/libs/metadata_view.c:1222 +#: ../src/libs/recentcollect.c:228 ../src/libs/modulegroups.c:3466 +#: ../src/libs/styles.c:392 ../src/libs/styles.c:439 ../src/libs/styles.c:529 +#: ../src/libs/styles.c:624 ../src/libs/tagging.c:1488 +#: ../src/libs/tagging.c:1579 ../src/libs/tagging.c:1670 +#: ../src/libs/tagging.c:1806 ../src/libs/tagging.c:2085 +#: ../src/libs/tagging.c:2520 ../src/libs/tagging.c:2556 +#: ../src/libs/tagging.c:3502 msgid "_cancel" msgstr "_Annuler" -#: ../src/chart/main.c:504 ../src/gui/preferences.c:1082 -#: ../src/gui/styles_dialog.c:520 ../src/libs/styles.c:392 +#: ../src/chart/main.c:504 ../src/gui/preferences.c:1081 +#: ../src/gui/styles_dialog.c:527 ../src/libs/collect.c:3243 +#: ../src/libs/export_metadata.c:277 ../src/libs/metadata.c:463 +#: ../src/libs/metadata_view.c:1223 ../src/libs/recentcollect.c:229 +#: ../src/libs/styles.c:392 ../src/libs/tagging.c:1671 +#: ../src/libs/tagging.c:1807 ../src/libs/tagging.c:2086 +#: ../src/libs/tagging.c:3503 msgid "_save" msgstr "_Enregistrer" @@ -5074,65 +5337,65 @@ "ΔE moyen : %.02f\n" "ΔE max : %.02f" -#: ../src/cli/main.c:247 +#: ../src/cli/main.c:270 msgid "TODO: sorry, due to API restrictions we currently cannot set the BPP to" msgstr "" "TODO : désolé, en raison de restrictions de l’interface de programmation, il " "n’est pas possible de régler le BPP à" -#: ../src/cli/main.c:259 +#: ../src/cli/main.c:282 msgid "unknown option for --hq" msgstr "Option inconnue pour --hq" -#: ../src/cli/main.c:275 +#: ../src/cli/main.c:298 msgid "unknown option for --export_masks" msgstr "Option inconnue pour --export_masks" -#: ../src/cli/main.c:291 +#: ../src/cli/main.c:314 msgid "unknown option for --upscale" msgstr "Option inconnue pour --upscale" -#: ../src/cli/main.c:316 +#: ../src/cli/main.c:339 msgid "unknown option for --apply-custom-presets" msgstr "Option inconnue pour --apply-custom-presets" -#: ../src/cli/main.c:327 +#: ../src/cli/main.c:350 msgid "too long ext for --out-ext" msgstr "Extension trop longue pour --out-ext" -#: ../src/cli/main.c:344 +#: ../src/cli/main.c:367 #, c-format msgid "notice: input file or dir '%s' doesn't exist, skipping\n" msgstr "Information : le fichier ou répertoire « %s » n’existe pas\n" -#: ../src/cli/main.c:353 +#: ../src/cli/main.c:376 #, c-format msgid "incorrect ICC type for --icc-type: '%s'\n" msgstr "Type ICC invalide pour --icc-type « %s »\n" -#: ../src/cli/main.c:369 +#: ../src/cli/main.c:392 #, c-format msgid "notice: ICC file '%s' doesn't exist, skipping\n" msgstr "Information : le fichier ICC « %s » n’existe pas, ignore\n" -#: ../src/cli/main.c:378 +#: ../src/cli/main.c:401 #, c-format msgid "incorrect ICC intent for --icc-intent: '%s'\n" msgstr "Intention ICC invalide pour --icc-intent « %s »\n" -#: ../src/cli/main.c:396 +#: ../src/cli/main.c:419 #, c-format msgid "warning: unknown option '%s'\n" msgstr "Attention : option inconnue « %s »\n" -#: ../src/cli/main.c:454 +#: ../src/cli/main.c:477 #, c-format msgid "error: input file and import opts specified! that's not supported!\n" msgstr "" "Fichier en entrée et options d’importation spécifiés, cela n’est pas " "permis.\n" -#: ../src/cli/main.c:487 +#: ../src/cli/main.c:510 #, c-format msgid "" "notice: output location is a directory. assuming '%s/$(FILE_NAME).%s' output " @@ -5142,49 +5405,49 @@ "sortie « %s/$(FILE_NAME).%s » est utilisé" #. output file exists or there's output ext specified and it's same as file... -#: ../src/cli/main.c:502 +#: ../src/cli/main.c:525 msgid "output file already exists, it will get renamed" msgstr "Ficher de sortie existant, il va être renommé" #. one of inputs was a failure, no prob -#: ../src/cli/main.c:532 +#: ../src/cli/main.c:555 #, c-format msgid "error: can't open folder %s" msgstr "Erreur : impossible d’ouvrir le répertoire « %s »" -#: ../src/cli/main.c:549 +#: ../src/cli/main.c:572 #, c-format msgid "error: can't open file %s" msgstr "Erreur : impossible d’ouvrir le fichier « %s »" -#: ../src/cli/main.c:566 +#: ../src/cli/main.c:589 #, c-format msgid "no images to export, aborting\n" msgstr "Aucune image à exporter, annulation\n" -#: ../src/cli/main.c:583 +#: ../src/cli/main.c:606 #, c-format msgid "error: can't open XMP file %s" msgstr "Erreur : impossible d’ouvrir le fichier XMP « %s »" # dans le contexte de la table lumineuse, "history stack" se traduit par "développement" -#: ../src/cli/main.c:604 +#: ../src/cli/main.c:627 msgid "empty history stack" msgstr "Réinitialiser le développement" #. too long ext, no point in wasting time -#: ../src/cli/main.c:616 +#: ../src/cli/main.c:639 #, c-format msgid "too long output file extension: %s\n" msgstr "Extension du nom du fichier de sortie trop longue : « %s »\n" #. no ext or empty ext, no point in wasting time -#: ../src/cli/main.c:624 +#: ../src/cli/main.c:647 #, c-format msgid "no output file extension given\n" msgstr "Pas d’extension de fichier spécifiée\n" -#: ../src/cli/main.c:663 +#: ../src/cli/main.c:692 msgid "" "cannot find disk storage module. please check your installation, something " "seems to be broken." @@ -5192,18 +5455,18 @@ "Impossible de trouver le module d’export vers le disque, vérifier " "l’installation de darktable." -#: ../src/cli/main.c:673 +#: ../src/cli/main.c:702 msgid "failed to get parameters from storage module, aborting export ..." msgstr "" "Impossible d’obtenir les paramètres du module de stockage, exportation " "abandonnée." -#: ../src/cli/main.c:689 +#: ../src/cli/main.c:718 #, c-format msgid "unknown extension '.%s'" msgstr "Extension inconnue « .%s »" -#: ../src/cli/main.c:699 +#: ../src/cli/main.c:728 msgid "failed to get parameters from format module, aborting export ..." msgstr "" "Impossible d’obtenir les paramètres du module de format, exportation " @@ -5254,203 +5517,209 @@ "L’appareil photo « %s » sur le port « %s » doit être remonté,\n" "s’assurer qu’il autorise l’accès et qu’il n’est pas monté par ailleurs." -#: ../src/common/collection.c:673 +#: ../src/common/collection.c:586 msgid "too much time to update aspect ratio for the collection" msgstr "Trop de temps pour mettre à jour l’aspect pour la collection" -#: ../src/common/collection.c:688 +#: ../src/common/collection.c:601 msgid "film roll" msgstr "Pellicule" -#: ../src/common/collection.c:690 +#: ../src/common/collection.c:603 msgid "folder" msgstr "Dossier" -#: ../src/common/collection.c:692 +#: ../src/common/collection.c:605 msgid "camera" msgstr "Boîtier" -#: ../src/common/collection.c:694 ../src/libs/export_metadata.c:189 -#: ../src/libs/tagging.c:3281 +#: ../src/common/collection.c:607 ../src/libs/export_metadata.c:176 +#: ../src/libs/tagging.c:3312 msgid "tag" msgstr "Mot-clé" -#: ../src/common/collection.c:696 +#: ../src/common/collection.c:609 msgid "capture date" msgstr "Date de capture" -#: ../src/common/collection.c:698 ../src/libs/filtering.c:61 +#: ../src/common/collection.c:611 ../src/libs/filtering.c:61 msgid "capture time" msgstr "Heure de capture" -#: ../src/common/collection.c:700 ../src/libs/filtering.c:62 +#: ../src/common/collection.c:613 ../src/libs/filtering.c:62 msgid "import time" msgstr "Date d’importation" -#: ../src/common/collection.c:702 ../src/libs/filtering.c:63 +#: ../src/common/collection.c:615 ../src/libs/filtering.c:63 msgid "modification time" msgstr "Date de modification" -#: ../src/common/collection.c:704 ../src/libs/filtering.c:64 +#: ../src/common/collection.c:617 ../src/libs/filtering.c:64 msgid "export time" msgstr "Date d’exportation" -#: ../src/common/collection.c:706 ../src/libs/filtering.c:65 +#: ../src/common/collection.c:619 ../src/libs/filtering.c:65 msgid "print time" msgstr "Date d’impression" -#: ../src/common/collection.c:708 ../src/libs/collect.c:3222 -#: ../src/libs/filtering.c:2163 ../src/libs/filtering.c:2183 +#: ../src/common/collection.c:621 ../src/libs/collect.c:3586 +#: ../src/libs/filtering.c:2237 ../src/libs/filtering.c:2257 #: ../src/libs/filters/history.c:153 ../src/libs/history.c:92 msgid "history" msgstr "Historique" -#: ../src/common/collection.c:710 ../src/common/colorlabels.c:342 -#: ../src/develop/lightroom.c:1550 ../src/dtgtk/thumbnail.c:1560 +#: ../src/common/collection.c:623 ../src/common/colorlabels.c:341 +#: ../src/develop/lightroom.c:1607 ../src/dtgtk/thumbnail.c:1548 #: ../src/libs/filtering.c:68 ../src/libs/filters/colors.c:301 #: ../src/libs/filters/colors.c:312 ../src/libs/tools/colorlabels.c:93 msgid "color label" msgstr "Label couleur" #. iso -#: ../src/common/collection.c:716 ../src/gui/preferences.c:832 -#: ../src/gui/presets.c:666 ../src/libs/camera.c:558 -#: ../src/libs/metadata_view.c:145 +#: ../src/common/collection.c:629 ../src/gui/preferences.c:830 +#: ../src/gui/presets.c:669 ../src/libs/camera.c:558 +#: ../src/libs/metadata_view.c:149 msgid "ISO" msgstr "ISO" #. aperture -#: ../src/common/collection.c:718 ../src/gui/preferences.c:840 -#: ../src/gui/presets.c:701 ../src/libs/camera.c:545 ../src/libs/camera.c:547 -#: ../src/libs/metadata_view.c:140 +#: ../src/common/collection.c:631 ../src/gui/preferences.c:838 +#: ../src/gui/presets.c:704 ../src/libs/camera.c:545 ../src/libs/camera.c:547 +#: ../src/libs/metadata_view.c:142 msgid "aperture" msgstr "Ouverture" -#: ../src/common/collection.c:724 ../src/libs/filtering.c:57 -#: ../src/libs/filters/filename.c:364 ../src/libs/metadata_view.c:126 +#: ../src/common/collection.c:637 ../src/libs/filtering.c:57 +#: ../src/libs/filters/filename.c:369 ../src/libs/metadata_view.c:128 msgid "filename" msgstr "Nom de fichier" -#: ../src/common/collection.c:726 ../src/develop/lightroom.c:1541 +#: ../src/common/collection.c:639 ../src/develop/lightroom.c:1598 #: ../src/libs/geotagging.c:141 msgid "geotagging" msgstr "Géolocalisation" -#: ../src/common/collection.c:728 ../src/libs/filters/grouping.c:167 +#: ../src/common/collection.c:641 ../src/libs/filters/grouping.c:167 #: ../src/libs/tools/global_toolbox.c:394 msgid "grouping" msgstr "Groupe" -#: ../src/common/collection.c:730 ../src/dtgtk/thumbnail.c:1575 -#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:129 -#: ../src/libs/metadata_view.c:336 +#: ../src/common/collection.c:643 ../src/dtgtk/thumbnail.c:1563 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:340 msgid "local copy" msgstr "Copie locale" -#: ../src/common/collection.c:732 ../src/gui/preferences.c:808 +#: ../src/common/collection.c:645 ../src/gui/preferences.c:806 msgid "module" msgstr "Module" -#: ../src/common/collection.c:734 ../src/gui/hist_dialog.c:346 -#: ../src/gui/styles_dialog.c:722 ../src/gui/styles_dialog.c:771 +#: ../src/common/collection.c:647 ../src/gui/hist_dialog.c:346 +#: ../src/gui/styles_dialog.c:734 ../src/gui/styles_dialog.c:783 #: ../src/libs/filters/module_order.c:161 ../src/libs/ioporder.c:39 msgid "module order" msgstr "Ordre des modules" -#: ../src/common/collection.c:736 +#: ../src/common/collection.c:649 msgid "range rating" msgstr "Intervalle de notation" -#: ../src/common/collection.c:738 ../src/common/ratings.c:322 -#: ../src/develop/lightroom.c:1525 ../src/libs/filtering.c:67 +#: ../src/common/collection.c:651 ../src/common/ratings.c:321 +#: ../src/develop/lightroom.c:1582 ../src/libs/filtering.c:67 #: ../src/libs/tools/ratings.c:110 msgid "rating" msgstr "Étoile" -#: ../src/common/collection.c:740 +#: ../src/common/collection.c:653 msgid "search" msgstr "Rechercher" -#: ../src/common/collection.c:1509 ../src/common/colorlabels.c:335 -#: ../src/develop/lightroom.c:836 ../src/gui/guides.c:732 -#: ../src/iop/colorzones.c:2265 ../src/iop/temperature.c:1925 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:261 +#: ../src/common/collection.c:1376 ../src/common/colorlabels.c:334 +#: ../src/develop/lightroom.c:889 ../src/gui/guides.c:732 +#: ../src/iop/colorzones.c:2501 ../src/iop/temperature.c:1902 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:261 msgid "yellow" msgstr "Jaune" -#: ../src/common/collection.c:1515 ../src/common/color_vocabulary.c:339 -#: ../src/common/colorlabels.c:338 ../src/iop/colorzones.c:2269 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:264 +#: ../src/common/collection.c:1382 ../src/common/color_vocabulary.c:339 +#: ../src/common/colorlabels.c:337 ../src/iop/colorzones.c:2505 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:264 msgid "purple" msgstr "Violet" -#: ../src/common/collection.c:1532 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1400 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "auto applied" msgstr "Appliqué automatiquement" -#: ../src/common/collection.c:1536 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1406 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "altered" msgstr "Développées" -#: ../src/common/collection.c:1553 ../src/common/collection.c:1649 -#: ../src/libs/collect.c:1166 ../src/libs/collect.c:1330 -#: ../src/libs/collect.c:1354 ../src/libs/collect.c:1473 -#: ../src/libs/collect.c:2432 +#: ../src/common/collection.c:1424 ../src/common/collection.c:1535 +#: ../src/libs/collect.c:1242 ../src/libs/collect.c:1426 +#: ../src/libs/collect.c:1452 ../src/libs/collect.c:1592 +#: ../src/libs/collect.c:2662 msgid "not tagged" msgstr "Non positionnée" -#: ../src/common/collection.c:1554 ../src/libs/collect.c:1354 +#: ../src/common/collection.c:1425 ../src/libs/collect.c:1452 #: ../src/libs/map_locations.c:742 msgid "tagged" msgstr "Positionnée" -#: ../src/common/collection.c:1555 +#: ../src/common/collection.c:1426 msgid "tagged*" msgstr "Positionnée*" #. local copy -#: ../src/common/collection.c:1588 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1460 ../src/libs/collect.c:1883 #: ../src/libs/filters/local_copy.c:38 msgid "not copied locally" msgstr "Non copiée localement" -#: ../src/common/collection.c:1592 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1465 ../src/libs/collect.c:1882 #: ../src/libs/filters/local_copy.c:38 msgid "copied locally" msgstr "Copiée localement" -#: ../src/common/collection.c:1974 ../src/libs/collect.c:1879 +#. if its undefined +#: ../src/common/collection.c:1507 ../src/common/collection.c:1619 +#: ../src/libs/collect.c:2209 ../src/libs/collect.c:2210 +msgid "unnamed" +msgstr "Sans nom" + +#: ../src/common/collection.c:1905 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:147 ../src/libs/filters/grouping.c:170 msgid "group leaders" msgstr "Tête de groupe" -#: ../src/common/collection.c:1978 ../src/libs/collect.c:1879 +#: ../src/common/collection.c:1909 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:150 ../src/libs/filters/grouping.c:170 msgid "group followers" msgstr "Membres du groupe" -#: ../src/common/collection.c:2126 ../src/libs/collect.c:1959 +#: ../src/common/collection.c:2066 ../src/libs/collect.c:2100 msgid "not defined" msgstr "Non défini" -#: ../src/common/collection.c:2575 +#: ../src/common/collection.c:2521 #, c-format msgid "<b>%d</b> image (#<b>%d</b>) selected of <b>%d</b>" msgstr "<b>%d</b> image (#<b>%d</b>) sélectionnée parmi <b>%d</b>" -#: ../src/common/collection.c:2582 +#: ../src/common/collection.c:2528 #, c-format msgid "<b>%d</b> image selected of <b>%d</b>" msgid_plural "<b>%d</b> images selected of <b>%d</b>" msgstr[0] "<b>%d</b> image sélectionnée parmi <b>%d</b>" msgstr[1] "<b>%d</b> images sélectionnées parmi <b>%d</b>" -#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2324 -#: ../src/develop/blend_gui.c:2372 ../src/gui/guides.c:729 -#: ../src/iop/channelmixerrgb.c:4620 ../src/iop/levels.c:671 -#: ../src/iop/rgblevels.c:937 ../src/iop/rgblevels.c:1032 +#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2340 +#: ../src/develop/blend_gui.c:2388 ../src/gui/guides.c:729 +#: ../src/iop/channelmixerrgb.c:4688 ../src/iop/levels.c:687 +#: ../src/iop/rgblevels.c:969 ../src/iop/rgblevels.c:1083 msgid "gray" msgstr "Gris" @@ -5660,12 +5929,12 @@ msgstr "Cyan foncé" #: ../src/common/color_vocabulary.c:297 ../src/common/color_vocabulary.c:317 -#: ../src/iop/colorzones.c:2267 +#: ../src/iop/colorzones.c:2503 msgid "aqua" msgstr "Aqua" #: ../src/common/color_vocabulary.c:298 ../src/gui/guides.c:733 -#: ../src/iop/temperature.c:1923 +#: ../src/iop/temperature.c:1900 msgid "cyan" msgstr "Cyan" @@ -5731,7 +6000,7 @@ msgstr "Magenta foncé" #: ../src/common/color_vocabulary.c:341 ../src/gui/guides.c:734 -#: ../src/iop/colorzones.c:2270 ../src/iop/temperature.c:1921 +#: ../src/iop/colorzones.c:2506 ../src/iop/temperature.c:1898 msgid "magenta" msgstr "Magenta" @@ -5743,137 +6012,132 @@ msgid "color not found" msgstr "Couleur non trouvée" -#: ../src/common/colorlabels.c:310 +#: ../src/common/colorlabels.c:309 #, c-format msgid "colorlabels set to %s" msgstr "Labels de couleur positionnés à « %s »" -#: ../src/common/colorlabels.c:312 +#: ../src/common/colorlabels.c:311 msgid "all colorlabels removed" msgstr "Tous les labels de couleur sont supprimés" -#: ../src/common/colorlabels.c:333 ../src/gui/accelerators.c:170 -#: ../src/libs/image.c:592 +#: ../src/common/colorlabels.c:332 ../src/gui/accelerators.c:188 +#: ../src/libs/image.c:660 msgid "clear" msgstr "Effacer" -#. init the category profile with NULL profile, the actual profile must be retrieved dynamically by the caller -#: ../src/common/colorspaces.c:1229 ../src/common/colorspaces.c:1518 -msgid "work profile" -msgstr "Profil de travail" - -#: ../src/common/colorspaces.c:1232 ../src/common/colorspaces.c:1514 -#: ../src/iop/colorout.c:885 +#: ../src/common/colorspaces.c:1382 ../src/common/colorspaces.c:1730 +#: ../src/iop/colorout.c:901 msgid "export profile" msgstr "Profil d’exportation" -#: ../src/common/colorspaces.c:1236 ../src/common/colorspaces.c:1516 -#: ../src/views/darkroom.c:2542 +#: ../src/common/colorspaces.c:1387 ../src/common/colorspaces.c:1732 +#: ../src/views/darkroom.c:2383 msgid "softproof profile" msgstr "Épreuvage écran" -#: ../src/common/colorspaces.c:1242 ../src/common/colorspaces.c:1498 +#: ../src/common/colorspaces.c:1397 ../src/common/colorspaces.c:1714 msgid "system display profile" msgstr "Système" -#: ../src/common/colorspaces.c:1245 ../src/common/colorspaces.c:1520 +#: ../src/common/colorspaces.c:1402 ../src/common/colorspaces.c:1736 msgid "system display profile (second window)" -msgstr "Système (2e fenêtre)" +msgstr "Système (seconde fenêtre)" -#: ../src/common/colorspaces.c:1255 +#: ../src/common/colorspaces.c:1415 msgid "sRGB (web-safe)" msgstr "sRVB (web)" -#: ../src/common/colorspaces.c:1269 ../src/common/colorspaces.c:1522 +#: ../src/common/colorspaces.c:1435 ../src/common/colorspaces.c:1738 msgid "Rec709 RGB" msgstr "Rec709 RVB" -#: ../src/common/colorspaces.c:1279 +#: ../src/common/colorspaces.c:1450 msgid "PQ Rec2020 RGB" msgstr "Rec2020 PQ RVB" -#: ../src/common/colorspaces.c:1284 +#: ../src/common/colorspaces.c:1458 msgid "HLG Rec2020 RGB" msgstr "Rec2020 HLG RVB" -#: ../src/common/colorspaces.c:1289 +#: ../src/common/colorspaces.c:1465 msgid "PQ P3 RGB" msgstr "P3 PQ RVB" -#: ../src/common/colorspaces.c:1294 +#: ../src/common/colorspaces.c:1471 msgid "HLG P3 RGB" msgstr "P3 HLG RVB" -#: ../src/common/colorspaces.c:1299 ../src/common/colorspaces.c:1524 -msgid "linear ProPhoto RGB" -msgstr "ProPhoto RVB linéaire" +#: ../src/common/colorspaces.c:1478 +msgid "Display P3 RGB" +msgstr "P3 Affichage RVB" -#: ../src/common/colorspaces.c:1304 ../src/common/colorspaces.c:1492 +#: ../src/common/colorspaces.c:1493 ../src/common/colorspaces.c:1708 msgid "linear XYZ" msgstr "XYZ linéaire" -#: ../src/common/colorspaces.c:1308 ../src/common/colorspaces.c:1494 -#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2000 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:267 +#: ../src/common/colorspaces.c:1500 ../src/common/colorspaces.c:1710 +#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2016 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:293 msgid "Lab" msgstr "Lab" -#: ../src/common/colorspaces.c:1313 ../src/common/colorspaces.c:1496 +#: ../src/common/colorspaces.c:1508 ../src/common/colorspaces.c:1712 msgid "linear infrared BGR" msgstr "Infrarouge linéaire BVR" -#: ../src/common/colorspaces.c:1317 +#: ../src/common/colorspaces.c:1513 msgid "BRG (for testing)" msgstr "BRV (pour test)" -#: ../src/common/colorspaces.c:1409 +#: ../src/common/colorspaces.c:1619 #, c-format msgid "" "profile `%s' not usable as histogram profile. it has been replaced by sRGB!" msgstr "" "Profil de sortie « %s » non approprié pour l’histogramme, remplacé par sRVB." -#: ../src/common/colorspaces.c:1500 +#: ../src/common/colorspaces.c:1716 msgid "embedded ICC profile" msgstr "Profil ICC intégré" -#: ../src/common/colorspaces.c:1502 +#: ../src/common/colorspaces.c:1718 msgid "embedded matrix" msgstr "Matrice intégrée" -#: ../src/common/colorspaces.c:1504 +#: ../src/common/colorspaces.c:1720 msgid "standard color matrix" msgstr "Matrice de couleur standard" -#: ../src/common/colorspaces.c:1506 +#: ../src/common/colorspaces.c:1722 msgid "enhanced color matrix" msgstr "Matrice de couleur améliorée" -#: ../src/common/colorspaces.c:1508 +#: ../src/common/colorspaces.c:1724 msgid "vendor color matrix" msgstr "Matrice de couleur du vendeur" -#: ../src/common/colorspaces.c:1510 +#: ../src/common/colorspaces.c:1726 msgid "alternate color matrix" msgstr "Alternative à la matrice de couleurs" -#: ../src/common/colorspaces.c:1512 +#: ../src/common/colorspaces.c:1728 msgid "BRG (experimental)" msgstr "BRV (expérimental)" -#: ../src/common/colorspaces.c:1526 +#: ../src/common/colorspaces.c:1742 msgid "PQ Rec2020" msgstr "Rec2020 PQ" -#: ../src/common/colorspaces.c:1528 +#: ../src/common/colorspaces.c:1744 msgid "HLG Rec2020" msgstr "Rec2020 HLG" -#: ../src/common/colorspaces.c:1530 +#: ../src/common/colorspaces.c:1746 msgid "PQ P3" msgstr "P3 PQ" -#: ../src/common/colorspaces.c:1532 +#: ../src/common/colorspaces.c:1748 msgid "HLG P3" msgstr "P3 HLG" @@ -5902,40 +6166,40 @@ msgid "printing `%s' on `%s'" msgstr "Impression de l’image « %s » sur « %s »" -#: ../src/common/darktable.c:250 +#: ../src/common/darktable.c:375 #, c-format msgid "found strange path `%s'" msgstr "Chemin étrange trouvé : « %s »" -#: ../src/common/darktable.c:265 +#: ../src/common/darktable.c:390 #, c-format msgid "error loading directory `%s'" msgstr "Erreur de chargement du dossier « %s »" -#: ../src/common/darktable.c:289 +#: ../src/common/darktable.c:414 #, c-format msgid "file `%s' has unknown format!" msgstr "Le fichier « %s » possède un format inconnu." -#: ../src/common/darktable.c:302 ../src/control/jobs/control_jobs.c:2118 -#: ../src/control/jobs/control_jobs.c:2177 +#: ../src/common/darktable.c:427 ../src/control/jobs/control_jobs.c:2121 +#: ../src/control/jobs/control_jobs.c:2180 #, c-format msgid "error loading file `%s'" msgstr "Erreur de chargement du fichier « %s »" -#: ../src/common/darktable.c:1509 +#: ../src/common/darktable.c:1650 msgid "configuration information" msgstr "Informations de configuration" -#: ../src/common/darktable.c:1511 -msgid "show this information again" -msgstr "Montrer encore cette information" - -#: ../src/common/darktable.c:1511 -msgid "understood" -msgstr "Entendu" +#: ../src/common/darktable.c:1652 +msgid "_show this information again" +msgstr "_Montrer encore cette information" + +#: ../src/common/darktable.c:1652 +msgid "_understood" +msgstr "_Entendu" -#: ../src/common/darktable.c:1968 +#: ../src/common/darktable.c:2106 msgid "" "the RCD demosaicer has been defined as default instead of PPG because of " "better quality and performance." @@ -5943,13 +6207,13 @@ "Le dématriçage RCD a été défini par défaut à la place de PPG car il est plus " "performant et de meilleure qualité." -#: ../src/common/darktable.c:1970 +#: ../src/common/darktable.c:2108 msgid "see preferences/darkroom/demosaicing for zoomed out darkroom mode" msgstr "" "Voir dans les préférences de la chambre noire, la « Méthode de dématriçage " "pour la vue en chambre noire »" -#: ../src/common/darktable.c:1976 +#: ../src/common/darktable.c:2114 msgid "" "the user interface and the underlying internals for tuning darktable " "performance have changed." @@ -5957,7 +6221,7 @@ "L’interface utilisateur et les options internes pour optimiser les " "performance ont changé." -#: ../src/common/darktable.c:1978 +#: ../src/common/darktable.c:2116 msgid "" "you won't find headroom and friends any longer, instead in preferences/" "processing use:" @@ -5965,15 +6229,15 @@ "Plus de « headroom » et autres maintenant, utiliser à la place dans les " "préférences de traitement :" -#: ../src/common/darktable.c:1980 +#: ../src/common/darktable.c:2118 msgid "1) darktable resources" msgstr "1) ressources darktable" -#: ../src/common/darktable.c:1982 +#: ../src/common/darktable.c:2120 msgid "2) tune OpenCL performance" msgstr "2) optimiser les performances d’OpenCL" -#: ../src/common/darktable.c:1989 +#: ../src/common/darktable.c:2127 msgid "" "some global config parameters relevant for OpenCL performance are not used " "any longer." @@ -5981,34 +6245,36 @@ "Certains paramètres de configuration globale pour la performance d’OpenCL ne " "sont plus utilisés." -#: ../src/common/darktable.c:1991 +#: ../src/common/darktable.c:2129 msgid "" -"instead you will find 'per device' data in 'cl_device_v4_canonical-name'. " +"instead you will find 'per device' data in 'cldevice_v5_canonical-name'. " "content is:" msgstr "" "À la place les données par périphérique se trouvent dans " -"« cldevice_v4_canonical-name ». Le contenu en est :" +"« cldevice_v5_canonical-name ». Le contenu en est :" -#: ../src/common/darktable.c:1993 ../src/common/darktable.c:2012 +#: ../src/common/darktable.c:2131 ../src/common/darktable.c:2150 +#: ../src/common/darktable.c:2165 msgid "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" msgstr "" -"« Avoid_atomics » « micro_nap » « pinned_memory » « roundupwd » " -"« roundupht » « eventhandles » « async » « disable » « magic »" +"« avoid_atomics » « micro_nap » « pinned_memory » « roundupwd » " +"« roundupht » « eventhandles » « async » « disable » « magic » " +"« advantage » « unified »" -#: ../src/common/darktable.c:1995 ../src/common/darktable.c:2014 +#: ../src/common/darktable.c:2133 ../src/common/darktable.c:2152 msgid "you may tune as before except 'magic'" msgstr "La configuration est inchangée sauf pour « magic »" -#: ../src/common/darktable.c:2001 +#: ../src/common/darktable.c:2139 msgid "" "your OpenCL compiler settings for all devices have been reset to default." msgstr "" "Les paramètres du compilateur OpenCL pour toutes les cartes ont été " "réinitialisés." -#: ../src/common/darktable.c:2008 +#: ../src/common/darktable.c:2146 msgid "" "OpenCL global config parameters 'per device' data has been recreated with an " "updated name." @@ -6016,14 +6282,14 @@ "Le paramètre global de configuration OpenCL « par périphérique » a été " "récréé avec des noms mis à jour." -#: ../src/common/darktable.c:2010 +#: ../src/common/darktable.c:2148 ../src/common/darktable.c:2163 msgid "" -"you will find 'per device' data in 'cl_device_v5_canonical-name'. content is:" +"you will find 'per device' data in 'cldevice_v5_canonical-name'. content is:" msgstr "" "Les données « par périphérique » se trouvent dans « cldevice_v5_canonical-" "name ». Le contenu en est :" -#: ../src/common/darktable.c:2016 +#: ../src/common/darktable.c:2154 msgid "" "If you're using device names in 'opencl_device_priority' you should update " "them to the new names." @@ -6031,8 +6297,25 @@ "Si vous utilisez les noms de périphérique « opencl_device_priority » vous " "devez les mettre à jour avec les nouveaux noms." +#: ../src/common/darktable.c:2161 +msgid "" +"OpenCL 'per device' config data have been automatically extended by 'unified-" +"fraction'." +msgstr "" +"La configuration « par-périphérique » OpenCL a été automatiquement étendue " +"avec « unified-fraction »" + +#: ../src/common/darktable.c:2172 +msgid "" +"OpenCL 'per device' compiler settings might have been updated.\n" +"\n" +msgstr "" +"Les paramètres par périphériques du compilateur OpenCL pourraient avoir été " +"changés.\n" +"\n" + # dialogue très modifié et ajout d'un 1er message -#: ../src/common/database.c:2756 +#: ../src/common/database.c:3350 #, c-format msgid "" "\n" @@ -6097,30 +6380,19 @@ "\n" #. clang-format on -#: ../src/common/database.c:2777 +#: ../src/common/database.c:3371 msgid "error starting darktable" msgstr "Erreur de lancement de darktable" -#: ../src/common/database.c:2778 ../src/libs/collect.c:2915 -#: ../src/libs/export_metadata.c:288 ../src/libs/import.c:1702 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:227 ../src/libs/modulegroups.c:3464 -#: ../src/libs/styles.c:438 ../src/libs/styles.c:621 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3471 -msgid "cancel" -msgstr "Annuler" - -#: ../src/common/database.c:2778 -msgid "delete database lock files" -msgstr "Supprimer les verrous de la base de données" +#: ../src/common/database.c:3372 +msgid "_delete database lock files" +msgstr "_Supprimer les verrous de la base de données" -#: ../src/common/database.c:2784 +#: ../src/common/database.c:3378 msgid "are you sure?" msgstr "Est-ce certain ?" -#: ../src/common/database.c:2785 +#: ../src/common/database.c:3379 msgid "" "\n" "do you really want to delete the lock files?\n" @@ -6128,20 +6400,19 @@ "\n" "Réellement supprimer les fichiers verrous ?\n" -#: ../src/common/database.c:2785 ../src/common/variables.c:703 -#: ../src/develop/imageop_gui.c:210 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 -msgid "yes" -msgstr "Oui" +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2597 +msgid "_no" +msgstr "_Non" -#: ../src/common/database.c:2801 ../src/libs/export_metadata.c:164 -#: ../src/libs/geotagging.c:811 +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2596 +msgid "_yes" +msgstr "_Oui" + +#: ../src/common/database.c:3395 msgid "done" msgstr "Terminé" -#: ../src/common/database.c:2802 +#: ../src/common/database.c:3396 msgid "" "\n" "successfully deleted the lock files.\n" @@ -6151,17 +6422,17 @@ "Suppression des fichiers verrous réussie,\n" "darktable doit être redémarré.\n" -#. the button to close the popup -#: ../src/common/database.c:2803 ../src/common/database.c:2810 -#: ../src/libs/filters/filename.c:452 -msgid "ok" -msgstr "Ok" +#: ../src/common/database.c:3397 ../src/common/database.c:3404 +#: ../src/gui/accelerators.c:2580 ../src/gui/accelerators.c:2662 +#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:566 +msgid "_ok" +msgstr "_Ok" -#: ../src/common/database.c:2806 +#: ../src/common/database.c:3400 msgid "error" msgstr "Erreur" -#: ../src/common/database.c:2807 +#: ../src/common/database.c:3401 #, c-format msgid "" "\n" @@ -6175,7 +6446,7 @@ "Supprimer les fichiers <i>data.db.lock</i> et <i>library.db.lock</i> \n" "dans le répertoire <a href=\"file:///%s\">%s</a>. \n" -#: ../src/common/database.c:2924 +#: ../src/common/database.c:3518 #, c-format msgid "" "the database lock file contains a pid that seems to be alive in your system: " @@ -6184,20 +6455,46 @@ "Le fichier de verrouillage de la base de données contient un numéro de " "processus actif sur le système (%d)" -#: ../src/common/database.c:2931 +#: ../src/common/database.c:3525 #, c-format msgid "the database lock file seems to be empty" msgstr "Le fichier de verrouillage de la base de données semble être vide" -#: ../src/common/database.c:2941 +#: ../src/common/database.c:3535 #, c-format msgid "error opening the database lock file for reading: %s" msgstr "" "Erreur lors de la lecture du fichier de verrouillage de la base de données : " "« %s »" +#: ../src/common/database.c:3605 +#, c-format +msgid "" +"the database schema version of\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"is too new for this build of darktable (this means the database was created " +"or upgraded by a newer darktable version)\n" +msgstr "" +"La version du schéma de la base de données\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"est trop récente pour cette version de darktable\n" +"(cela signifie que la base de données a été créée ou mise à jour pas une " +"version plus récente de darktable.\n" + +#: ../src/common/database.c:3612 +msgid "darktable - too new db version" +msgstr "darktable - Base de données trop récente" + +#: ../src/common/database.c:3613 +msgid "_quit darktable" +msgstr "_Quitter darktable" + #. the database has to be upgraded, let's ask user -#: ../src/common/database.c:2978 +#: ../src/common/database.c:3628 #, c-format msgid "" "the database schema has to be upgraded for\n" @@ -6216,21 +6513,21 @@ "\n" "Continuer ou quitter pour effectuer une sauvegarde.\n" -#: ../src/common/database.c:2986 +#: ../src/common/database.c:3636 msgid "darktable - schema migration" msgstr "darktable - Migration de la base de données" -#: ../src/common/database.c:2987 ../src/common/database.c:3306 -#: ../src/common/database.c:3324 ../src/common/database.c:3491 -#: ../src/common/database.c:3509 -msgid "close darktable" -msgstr "Quitter darktable" - -#: ../src/common/database.c:2987 -msgid "upgrade database" -msgstr "Mise à jour de la base de données" +#: ../src/common/database.c:3637 ../src/common/database.c:3959 +#: ../src/common/database.c:3974 ../src/common/database.c:4142 +#: ../src/common/database.c:4157 +msgid "_close darktable" +msgstr "_Quitter darktable" + +#: ../src/common/database.c:3637 +msgid "_upgrade database" +msgstr "_Mise à jour de la base de données" -#: ../src/common/database.c:3286 ../src/common/database.c:3471 +#: ../src/common/database.c:3939 ../src/common/database.c:4122 #, c-format msgid "" "quick_check said:\n" @@ -6240,21 +6537,21 @@ "« %s »\n" "\n" -#: ../src/common/database.c:3303 ../src/common/database.c:3321 -#: ../src/common/database.c:3488 ../src/common/database.c:3506 +#: ../src/common/database.c:3956 ../src/common/database.c:3971 +#: ../src/common/database.c:4139 ../src/common/database.c:4154 msgid "darktable - error opening database" msgstr "darktable - Erreur lors de l’ouverture de la base de données" -#: ../src/common/database.c:3308 ../src/common/database.c:3493 -msgid "attempt restore" -msgstr "Essayer de restaurer" - -#: ../src/common/database.c:3310 ../src/common/database.c:3326 -#: ../src/common/database.c:3495 ../src/common/database.c:3511 -msgid "delete database" -msgstr "Effacer la base de données" +#: ../src/common/database.c:3960 ../src/common/database.c:4143 +msgid "_attempt restore" +msgstr "_Essayer de restaurer" + +#: ../src/common/database.c:3961 ../src/common/database.c:3975 +#: ../src/common/database.c:4144 ../src/common/database.c:4158 +msgid "_delete database" +msgstr "_Effacer la base de données" -#: ../src/common/database.c:3314 ../src/common/database.c:3499 +#: ../src/common/database.c:3964 ../src/common/database.c:4147 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup, attempt an automatic restore\n" @@ -6267,7 +6564,7 @@ "récente\n" " • Ou supprimer la base corrompue et redémarrer avec une nouvelle base ?" -#: ../src/common/database.c:3330 ../src/common/database.c:3515 +#: ../src/common/database.c:3978 ../src/common/database.c:4161 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup or delete the corrupted database\n" @@ -6277,7 +6574,7 @@ "la base de données depuis une sauvegarde, ou supprimer la base corrompue\n" "et redémarrer avec une nouvelle base ?" -#: ../src/common/database.c:3337 ../src/common/database.c:3520 +#: ../src/common/database.c:3985 ../src/common/database.c:4166 #, c-format msgid "" "an error has occurred while trying to open the database from\n" @@ -6303,12 +6600,12 @@ "Le filtre guidé indépendant de l’exposition a échoué lors de l’allocation de " "mémoire, vérifier les préférences de la RAM" -#: ../src/common/exif.cc:5200 +#: ../src/common/exif.cc:5482 #, c-format msgid "cannot read XMP file '%s': '%s'" msgstr "Impossible de lire le fichier XMP « %s » : « %s »" -#: ../src/common/exif.cc:5258 +#: ../src/common/exif.cc:5540 #, c-format msgid "cannot write XMP file '%s': '%s'" msgstr "Impossible d’écrire le fichier XMP « %s » : « %s »" @@ -6319,128 +6616,128 @@ msgstr "" "Le filtre guidé n’a pas assez de mémoire, vérifier la configuration de la RAM" -#: ../src/common/film.c:345 +#: ../src/common/film.c:356 msgid "do you want to remove this empty directory?" msgid_plural "do you want to remove these empty directories?" msgstr[0] "Supprimer ce répertoire vide ?" msgstr[1] "Supprimer ces répertoires vides ?" -#: ../src/common/film.c:352 +#: ../src/common/film.c:363 msgid "remove empty directory?" msgid_plural "remove empty directories?" msgstr[0] "Supprimer le répertoire vide ?" msgstr[1] "Supprimer les répertoires vides ?" -#: ../src/common/film.c:371 ../src/gui/preferences.c:816 -#: ../src/gui/styles_dialog.c:548 ../src/libs/geotagging.c:829 -#: ../src/libs/import.c:1551 +#: ../src/common/film.c:383 ../src/gui/preferences.c:814 +#: ../src/gui/styles_dialog.c:556 ../src/libs/geotagging.c:830 +#: ../src/libs/import.c:1560 msgid "name" msgstr "Nom" -#: ../src/common/film.c:477 +#: ../src/common/film.c:492 msgid "" "cannot remove film roll having local copies with non accessible originals" msgstr "" "Impossible de supprimer un film comprenant des copies locales dont les " "originaux ne sont pas accessibles" -#: ../src/common/history.c:840 +#: ../src/common/history.c:876 msgid "you need to copy history from an image before you paste it onto another" msgstr "" "Il est nécessaire de copier le développement d’une image avant de le coller " "sur une autre" -#: ../src/common/image.c:325 +#: ../src/common/image.c:333 msgid "orphaned image" msgstr "Image orpheline" -#: ../src/common/image.c:620 +#: ../src/common/image.c:629 #, c-format msgid "geo-location undone for %d image" msgid_plural "geo-location undone for %d images" msgstr[0] "Géolocalisation annulée pour %d image" msgstr[1] "Géolocalisation annulée pour %d images" -#: ../src/common/image.c:622 +#: ../src/common/image.c:631 #, c-format msgid "geo-location re-applied to %d image" msgid_plural "geo-location re-applied to %d images" msgstr[0] "Géolocalisation réappliquée à %d image" msgstr[1] "Géolocalisation réappliquée à %d images" -#: ../src/common/image.c:645 +#: ../src/common/image.c:654 #, c-format msgid "date/time undone for %d image" msgid_plural "date/time undone for %d images" msgstr[0] "Data/heure annulée pour %d image" msgstr[1] "Data/heure annulée pour %d images" -#: ../src/common/image.c:647 +#: ../src/common/image.c:656 #, c-format msgid "date/time re-applied to %d image" msgid_plural "date/time re-applied to %d images" msgstr[0] "Data/heure réappliquée à %d image" msgstr[1] "Data/heure réappliquée à %d images" -#: ../src/common/image.c:2188 +#: ../src/common/image.c:2260 #, c-format msgid "cannot access local copy `%s'" msgstr "Accès à la copie locale « %s » impossible" -#: ../src/common/image.c:2195 +#: ../src/common/image.c:2267 #, c-format msgid "cannot write local copy `%s'" msgstr "Création de la copie locale « %s » impossible" -#: ../src/common/image.c:2202 +#: ../src/common/image.c:2274 #, c-format msgid "error moving local copy `%s' -> `%s'" msgstr "Erreur lors du déplacement de la copie locale de « %s » vers « %s »" -#: ../src/common/image.c:2219 +#: ../src/common/image.c:2291 #, c-format msgid "error moving `%s': file not found" msgstr "Erreur de déplacement « %s » : le fichier n’existe pas" -#: ../src/common/image.c:2229 +#: ../src/common/image.c:2301 #, c-format msgid "error moving `%s' -> `%s': file exists" msgstr "Erreur de déplacement de « %s » vers « %s » : le fichier existe" -#: ../src/common/image.c:2233 +#: ../src/common/image.c:2305 #, c-format msgid "error moving `%s' -> `%s'" msgstr "Erreur lors du déplacement de « %s » vers « %s »" -#: ../src/common/image.c:2562 +#: ../src/common/image.c:2634 msgid "cannot create local copy when the original file is not accessible." msgstr "" "Impossible de créer une copie locale lorsque l’original n’est pas accessible." -#: ../src/common/image.c:2576 +#: ../src/common/image.c:2648 msgid "cannot create local copy." msgstr "Copie locale impossible." -#: ../src/common/image.c:2656 ../src/control/jobs/control_jobs.c:777 +#: ../src/common/image.c:2728 ../src/control/jobs/control_jobs.c:777 msgid "cannot remove local copy when the original file is not accessible." msgstr "" "Impossible de supprimer une copie locale lorsque l’original n’est pas " "accessible." -#: ../src/common/image.c:2821 +#: ../src/common/image.c:2901 #, c-format msgid "%d local copy has been synchronized" msgid_plural "%d local copies have been synchronized" msgstr[0] "%d copie locale a été synchronisée" msgstr[1] "%d copies locales ont été synchronisées" -#: ../src/common/image.c:3022 +#: ../src/common/image.c:3102 msgid "<b>WARNING</b>: camera is missing samples!" msgstr "<b>Attention</b>, échantillons manquants pour le boîtier." # semble être la suite de la phrase précédente, # minuscule initiale -#: ../src/common/image.c:3023 +#: ../src/common/image.c:3103 msgid "" "You must provide samples in <a href='https://raw.pixls.us/'>https://raw." "pixls.us/</a>" @@ -6450,7 +6747,7 @@ # semble être la suite de la phrase précédente, # minuscule initiale et virgule finale -#: ../src/common/image.c:3024 +#: ../src/common/image.c:3104 #, c-format msgid "" "for `%s' `%s'\n" @@ -6461,90 +6758,83 @@ # semble être la suite et fin de la phrase précédente, # minuscule initiale et point final -#: ../src/common/image.c:3027 +#: ../src/common/image.c:3107 msgid "or the <b>RAW won't be readable</b> in next version." msgstr "" "sinon le fichier RAW <b>ne sera plus lisible</b> dans la prochaine version." -#: ../src/common/image.h:209 ../src/common/ratings.c:284 -#: ../src/libs/history.c:843 ../src/libs/snapshots.c:779 +#: ../src/common/image.h:217 ../src/common/ratings.c:283 +#: ../src/imageio/format/avif.c:114 ../src/libs/history.c:843 +#: ../src/libs/snapshots.c:837 msgid "unknown" msgstr "Inconnu" -# Capitalisation ? #. EMPTY_FIELD -#: ../src/common/image.h:210 -msgid "tiff" -msgstr "Tiff" +#: ../src/common/image.h:218 ../src/imageio/format/tiff.c:831 +msgid "TIFF" +msgstr "TIFF" -# Capitalisation ? -#: ../src/common/image.h:211 -msgid "png" -msgstr "Png" +#: ../src/common/image.h:219 ../src/imageio/format/png.c:599 +msgid "PNG" +msgstr "PNG" -# Capitalisation ? -#: ../src/common/image.h:212 ../src/imageio/format/j2k.c:652 -msgid "j2k" -msgstr "J2k" +#: ../src/common/image.h:220 +msgid "JPEG 2000" +msgstr "JPEG 2000" -# Capitalisation ? -#: ../src/common/image.h:213 -msgid "jpeg" -msgstr "Jpeg" +#: ../src/common/image.h:221 +msgid "JPEG" +msgstr "JPEG" -# Capitalisation ? -#: ../src/common/image.h:214 -msgid "exr" -msgstr "Exr" +#: ../src/common/image.h:222 +msgid "EXR" +msgstr "EXR" -# Capitalisation ? -#: ../src/common/image.h:215 -msgid "rgbe" -msgstr "Rgbe" +#: ../src/common/image.h:223 +msgid "RGBE" +msgstr "RGBE" -# Capitalisation ? -#: ../src/common/image.h:216 -msgid "pfm" -msgstr "Pfm" +#: ../src/common/image.h:224 ../src/imageio/format/pfm.c:120 +msgid "PFM" +msgstr "PFM" -#: ../src/common/image.h:217 +#: ../src/common/image.h:225 msgid "GraphicsMagick" msgstr "GraphicsMagick" -#: ../src/common/image.h:218 -msgid "rawspeed" -msgstr "rawspeed" +#: ../src/common/image.h:226 +msgid "RawSpeed" +msgstr "RawSpeed" -# Capitalisation ? -#: ../src/common/image.h:219 -msgid "netpnm" -msgstr "Netpnm" +#: ../src/common/image.h:227 +msgid "Netpbm" +msgstr "Netpbm" -#: ../src/common/image.h:220 -msgid "avif" +#: ../src/common/image.h:228 ../src/imageio/format/avif.c:728 +msgid "AVIF" msgstr "AVIF" -#: ../src/common/image.h:221 +#: ../src/common/image.h:229 msgid "ImageMagick" msgstr "ImageMagick" -#: ../src/common/image.h:222 -msgid "heif" +#: ../src/common/image.h:230 +msgid "HEIF" msgstr "HEIF" -#: ../src/common/image.h:223 -msgid "libraw" +#: ../src/common/image.h:231 +msgid "LibRaw" msgstr "LibRaw" -#: ../src/common/image.h:224 -msgid "webp" -msgstr "Webp" +#: ../src/common/image.h:232 ../src/imageio/format/webp.c:380 +msgid "WebP" +msgstr "WebP" -#: ../src/common/image.h:225 -msgid "jpeg xl" +#: ../src/common/image.h:233 ../src/imageio/format/jxl.c:482 +msgid "JPEG XL" msgstr "JPEG XL" -#: ../src/common/image.h:226 +#: ../src/common/image.h:234 msgid "QOI" msgstr "QOI" @@ -6576,7 +6866,7 @@ "Le chemin demandé pour la session n’est pas accessible. L’appareil n’est pas " "monté ?" -#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:197 +#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:195 msgid "legacy" msgstr "Originel" @@ -6588,7 +6878,7 @@ msgid "v3.0 JPEG" msgstr "V3.0 JPEG" -#: ../src/common/iop_profile.c:1205 +#: ../src/common/iop_profile.c:1207 #, c-format msgid "" "darktable loads %s from\n" @@ -6612,13 +6902,13 @@ #. title #: ../src/common/metadata.c:48 ../src/imageio/format/pdf.c:574 -#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:169 -#: ../src/imageio/storage/gallery.c:170 ../src/imageio/storage/latex.c:169 -#: ../src/imageio/storage/piwigo.c:1058 ../src/libs/filtering.c:69 +#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:219 +#: ../src/imageio/storage/gallery.c:222 ../src/imageio/storage/latex.c:206 +#: ../src/imageio/storage/piwigo.c:1091 ../src/libs/filtering.c:69 msgid "title" msgstr "Titre" -#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:552 +#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:563 #: ../src/libs/filtering.c:70 msgid "description" msgstr "Description" @@ -6636,11 +6926,11 @@ msgstr "Nom de version" #: ../src/common/metadata.c:53 ../src/libs/live_view.c:319 -#: ../src/libs/metadata_view.c:124 +#: ../src/libs/metadata_view.c:126 msgid "image id" msgstr "Numéro" -#: ../src/common/mipmap_cache.c:1065 ../src/imageio/imageio.c:787 +#: ../src/common/mipmap_cache.c:1070 ../src/imageio/imageio.c:799 #, c-format msgid "image `%s' is not available!" msgstr "Image « %s » non disponible" @@ -6654,7 +6944,43 @@ msgid "noiseprofile file `%s' is not valid" msgstr "Le profil de gestion du bruit « %s » n’est pas valide" -#: ../src/common/opencl.c:1376 +#: ../src/common/opencl.c:1165 +msgid "no working OpenCL library found" +msgstr "pas de bibliothèque OpenCL fonctionnelle trouvée" + +#: ../src/common/opencl.c:1185 +msgid "" +"platform detection failed. some possible causes:\n" +" - OpenCL ICD (ocl-icd) missing,\n" +" - previous OpenCL errors leading to blocked devices,\n" +" - power management problems,\n" +" - buggy drivers,\n" +" - no OpenCL driver installed." +msgstr "" +"Détection de la plateforme impossible. Quelques causes possibles :\n" +" • OpenCL ICD (ocl-icd) manquant,\n" +" • Périphériques bloqués après une erreur OpenCL survenue précédemment,\n" +" • Problème de gestion de l'alimentation,\n" +" • Pilotes bugués,\n" +" • Aucun pilote OpenCL installé." + +#: ../src/common/opencl.c:1277 +msgid "no devices found for unknown platform" +msgstr "Pas de périphérique trouvé pour la plateforme non connue" + +#: ../src/common/opencl.c:1323 +msgid "not enough memory for OpenCL devices" +msgstr "Pas assez de mémoire pour les périphériques OpenCL" + +#: ../src/common/opencl.c:1358 +msgid "no OpenCL devices found" +msgstr "Aucun périphérique OpenCL trouvé" + +#: ../src/common/opencl.c:1401 +msgid "no suitable OpenCL devices found" +msgstr "Aucun périphérique OpenCL adéquat trouvé" + +#: ../src/common/opencl.c:1422 #, c-format msgid "" "OpenCL initializing problem:\n" @@ -6663,35 +6989,23 @@ "Problème d'initialisation OpenCL :\n" "%s" -#: ../src/common/opencl.c:1439 -msgid "" -"due to a slow GPU hardware acceleration using OpenCL has been deactivated" -msgstr "L’accélération matérielle d’OpenCL est lente et a donc été désactivée" - -#: ../src/common/opencl.c:1449 -msgid "" -"multiple GPUs detected - OpenCL scheduling profile has been set accordingly" -msgstr "" -"GPU multiples détectés, la planification OpenCL a été positionnée en " -"conséquence" - -#: ../src/common/opencl.c:1462 -msgid "" -"very fast GPU detected - OpenCL scheduling profile has been set accordingly" +#: ../src/common/opencl.c:1454 +msgid "OpenCL scheduling profile set to default, setup has changed" msgstr "" -"GPU très rapide détecté, la planification OpenCL a été positionnée en " -"conséquence" +"Profil de planification d’OpenCL par défaut positionné, l'environnement a " +"changé" -#: ../src/common/opencl.c:1471 -msgid "OpenCL scheduling profile set to default" -msgstr "Profil de planification d’OpenCL par défaut positionné" +#: ../src/common/opencl.c:2283 +#, c-format +msgid "building OpenCL program %s for %s" +msgstr "Compilation du programme OpenCL « %s » pour « %s »" -#: ../src/common/pdf.h:88 ../src/iop/lens.cc:3441 +#: ../src/common/pdf.h:88 ../src/iop/lens.cc:4071 #: ../src/libs/filters/focal.c:74 ../src/libs/print_settings.c:81 msgid "mm" msgstr "mm" -#: ../src/common/pdf.h:89 ../src/libs/export.c:520 ../src/libs/export.c:1145 +#: ../src/common/pdf.h:89 ../src/libs/export.c:555 ../src/libs/export.c:1241 #: ../src/libs/print_settings.c:81 msgid "cm" msgstr "cm" @@ -6704,7 +7018,7 @@ msgid "\"" msgstr "\"" -#: ../src/common/pdf.h:104 ../src/iop/borders.c:958 +#: ../src/common/pdf.h:104 ../src/iop/borders.c:971 msgid "A4" msgstr "A4" @@ -6742,66 +7056,65 @@ msgid "no images selected to apply rating" msgstr "Pas d’images sélectionnées pour appliquer les étoiles" -#: ../src/common/ratings.c:275 ../src/libs/metadata_view.c:351 +#: ../src/common/ratings.c:274 ../src/libs/metadata_view.c:355 msgid "image rejected" msgstr "Image rejetée" -#: ../src/common/ratings.c:277 +#: ../src/common/ratings.c:276 msgid "image rated to 0 star" msgstr "Image notée à 0 étoile" -#: ../src/common/ratings.c:279 +#: ../src/common/ratings.c:278 #, c-format msgid "image rated to %s" msgstr "Image notée à « %s »" -#: ../src/common/ratings.c:306 ../src/libs/select.c:39 -#: ../src/views/lighttable.c:766 +#: ../src/common/ratings.c:305 ../src/views/lighttable.c:766 msgid "select" msgstr "Sélection" -#: ../src/common/ratings.c:307 +#: ../src/common/ratings.c:306 msgid "upgrade" msgstr "Surclasser" -#: ../src/common/ratings.c:308 +#: ../src/common/ratings.c:307 msgid "downgrade" msgstr "Déclasser" -#: ../src/common/ratings.c:312 +#: ../src/common/ratings.c:311 msgid "zero" msgstr "Zéro" -#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:277 +#: ../src/common/ratings.c:312 ../src/libs/filters/rating_range.c:304 msgid "one" msgstr "Un" -#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:278 +#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:305 msgid "two" msgstr "Deux" -#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:279 +#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:306 msgid "three" msgstr "Trois" -#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:280 +#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:307 msgid "four" msgstr "Quatre" -#: ../src/common/ratings.c:317 ../src/libs/filters/rating_range.c:281 +#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:308 msgid "five" msgstr "Cinq" -#: ../src/common/ratings.c:318 +#: ../src/common/ratings.c:317 msgid "reject" msgstr "Rejeter" -#: ../src/common/styles.c:244 +#: ../src/common/styles.c:243 #, c-format msgid "style with name '%s' already exists" msgstr "Le style « %s » existe déjà" -#: ../src/common/styles.c:270 ../src/common/styles.c:1776 +#: ../src/common/styles.c:270 ../src/common/styles.c:1783 #: ../src/libs/styles.c:54 msgid "styles" msgstr "Styles" @@ -6811,57 +7124,57 @@ msgid "style named '%s' successfully created" msgstr "Le style « %s » a été créé" -#: ../src/common/styles.c:689 ../src/common/styles.c:719 -#: ../src/common/styles.c:759 ../src/dtgtk/culling.c:1097 +#: ../src/common/styles.c:688 ../src/common/styles.c:718 +#: ../src/common/styles.c:758 ../src/dtgtk/culling.c:1066 msgid "no image selected!" msgstr "Aucune image sélectionnée." -#: ../src/common/styles.c:693 +#: ../src/common/styles.c:692 #, c-format msgid "style %s successfully applied!" msgstr "Le style « %s » a été appliqué." -#: ../src/common/styles.c:709 +#: ../src/common/styles.c:708 msgid "no images nor styles selected!" msgstr "Pas d’image ou de style sélectionné." -#: ../src/common/styles.c:714 +#: ../src/common/styles.c:713 msgid "no styles selected!" msgstr "Pas de style sélectionné." -#: ../src/common/styles.c:744 +#: ../src/common/styles.c:743 msgid "style successfully applied!" msgid_plural "styles successfully applied!" msgstr[0] "Le style a été appliqué." msgstr[1] "Les styles ont été appliqués." -#: ../src/common/styles.c:840 +#: ../src/common/styles.c:838 #, c-format msgid "module `%s' version mismatch: %d != %d" msgstr "Module « %s », version non cohérente : %d != %d" -#: ../src/common/styles.c:1124 +#: ../src/common/styles.c:1125 #, c-format msgid "applied style `%s' on current image" msgstr "Le style « %s » est appliqué à l’image actuelle" -#: ../src/common/styles.c:1378 +#: ../src/common/styles.c:1383 #, c-format msgid "failed to overwrite style file for %s" msgstr "Impossible de remplacer le style « %s »" -#: ../src/common/styles.c:1384 +#: ../src/common/styles.c:1389 #, c-format msgid "style file for %s exists" msgstr "Le fichier du style « %s » existe déjà" -#: ../src/common/styles.c:1667 +#: ../src/common/styles.c:1674 #, c-format msgid "style %s was successfully imported" msgstr "Le style « %s » a été importé" #. Failed to open file, clean up. -#: ../src/common/styles.c:1711 +#: ../src/common/styles.c:1718 #, c-format msgid "could not read file `%s'" msgstr "Impossible de lire le fichier « %s »" @@ -6874,10 +7187,18 @@ msgid "below sea level" msgstr "Sous le niveau de la mer" -#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:880 +#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:907 msgid "m" msgstr "M" +#: ../src/common/variables.c:712 ../src/develop/imageop_gui.c:210 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "yes" +msgstr "Oui" + #. Column 1 - "make" of the camera. #. * Column 2 - "model" (use the "make" and "model" as provided by DCRaw). #. * Column 3 - WB name. @@ -6890,7 +7211,7 @@ #. * #. * WB name is standardized to one of the following: #. "Sunlight" and other variation should be switched to this: -#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:323 +#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:320 msgid "daylight" msgstr "Lumière du jour" @@ -6990,7 +7311,7 @@ msgid "underwater" msgstr "Sous l’eau" -#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2447 +#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2286 msgid "black & white" msgstr "Noir et blanc" @@ -7010,79 +7331,79 @@ msgid "auto WB" msgstr "BdB automatique" -#: ../src/control/control.c:66 ../src/gui/accelerators.c:138 -#: ../src/views/darkroom.c:2162 +#: ../src/control/control.c:69 ../src/gui/accelerators.c:156 +#: ../src/views/darkroom.c:2029 msgid "hold" msgstr "Maintenir" -#: ../src/control/control.c:102 ../src/control/control.c:205 +#: ../src/control/control.c:108 ../src/control/control.c:214 msgid "modifiers" msgstr "Modificateur" -#: ../src/control/control.c:111 +#: ../src/control/control.c:117 msgctxt "accel" msgid "global" msgstr "Options globales" -#: ../src/control/control.c:118 +#: ../src/control/control.c:124 msgctxt "accel" msgid "views" msgstr "Vues" -#: ../src/control/control.c:125 +#: ../src/control/control.c:131 msgctxt "accel" msgid "thumbtable" msgstr "Tableau des miniatures" -#: ../src/control/control.c:132 +#: ../src/control/control.c:138 msgctxt "accel" msgid "utility modules" msgstr "Modules utilitaires" -#: ../src/control/control.c:139 +#: ../src/control/control.c:145 msgctxt "accel" msgid "format" msgstr "Format" -#: ../src/control/control.c:146 +#: ../src/control/control.c:152 msgctxt "accel" msgid "storage" msgstr "Stockage" -#: ../src/control/control.c:153 +#: ../src/control/control.c:159 msgctxt "accel" msgid "processing modules" msgstr "Modules de traitement" -#: ../src/control/control.c:160 +#: ../src/control/control.c:166 msgctxt "accel" msgid "<blending>" msgstr "<fusion>" -#: ../src/control/control.c:167 +#: ../src/control/control.c:173 msgctxt "accel" msgid "Lua scripts" msgstr "Scripts Lua" -#: ../src/control/control.c:174 +#: ../src/control/control.c:180 msgctxt "accel" msgid "fallbacks" msgstr "Replis" -#: ../src/control/control.c:183 +#: ../src/control/control.c:189 msgctxt "accel" msgid "<focused>" msgstr "<focus>" -#: ../src/control/control.c:202 +#: ../src/control/control.c:209 msgid "show accels window" msgstr "Afficher la fenêtre des raccourcis" -#: ../src/control/control.c:363 +#: ../src/control/control.c:371 msgid "working..." msgstr "En cours…" -#: ../src/control/crawler.c:425 +#: ../src/control/crawler.c:418 #, c-format msgid "ERROR: %s NOT synced XMP → DB" msgstr "" @@ -7090,8 +7411,8 @@ "données\n" "pour « %s »." -#: ../src/control/crawler.c:426 ../src/control/crawler.c:492 -#: ../src/control/crawler.c:561 +#: ../src/control/crawler.c:419 ../src/control/crawler.c:485 +#: ../src/control/crawler.c:554 msgid "" "ERROR: cannot write the database. the destination may be full, offline or " "read-only." @@ -7099,18 +7420,18 @@ "<b>Erreur</b> : impossible d’écrire dans la base de données. La destination " "est peut être pleine, hors ligne ou en lecture seule." -#: ../src/control/crawler.c:433 +#: ../src/control/crawler.c:426 #, c-format msgid "SUCCESS: %s synced XMP → DB" msgstr "<b>Succès</b> : « %s » synchronisé XMP → DB" -#: ../src/control/crawler.c:455 +#: ../src/control/crawler.c:448 #, c-format msgid "ERROR: %s NOT synced DB → XMP" msgstr "<b>Erreur</b> : « %s » NON synchronisé DB → XMP" -#: ../src/control/crawler.c:457 ../src/control/crawler.c:516 -#: ../src/control/crawler.c:582 +#: ../src/control/crawler.c:450 ../src/control/crawler.c:509 +#: ../src/control/crawler.c:575 #, c-format msgid "" "ERROR: cannot write %s \n" @@ -7119,129 +7440,133 @@ "<b>Erreur</b> : impossible d’écrire « %s ».\n" "La destination est peut être pleine, hors ligne ou en lecture seule." -#: ../src/control/crawler.c:463 +#: ../src/control/crawler.c:456 #, c-format msgid "SUCCESS: %s synced DB → XMP" msgstr "<b>Succès</b> : « %s » synchronisé DB → XMP" -#: ../src/control/crawler.c:489 +#: ../src/control/crawler.c:482 #, c-format msgid "ERROR: %s NOT synced new (XMP) → old (DB)" msgstr "<b>Erreur</b> : « %s » NON synchronisé nouveau (XMP) → ancien (DB)" -#: ../src/control/crawler.c:499 +#: ../src/control/crawler.c:492 #, c-format msgid "SUCCESS: %s synced new (XMP) → old (DB)" msgstr "<b>Succès</b> : « %s » synchronisé nouveau (XMP) → ancien (DB)" -#: ../src/control/crawler.c:513 +#: ../src/control/crawler.c:506 #, c-format msgid "ERROR: %s NOT synced new (DB) → old (XMP)" msgstr "<b>Erreur</b> : « %s » NON synchronisé nouveau (DB) → ancien (XMP)" -#: ../src/control/crawler.c:521 +#: ../src/control/crawler.c:514 #, c-format msgid "SUCCESS: %s synced new (DB) → old (XMP)" msgstr "<b>Succès</b> : « %s » synchronisé nouveau (DB) → ancien (XMP)" -#: ../src/control/crawler.c:530 ../src/control/crawler.c:598 +#: ../src/control/crawler.c:523 ../src/control/crawler.c:591 #, c-format msgid "EXCEPTION: %s has inconsistent timestamps" msgstr "<b>Exception</b> : « %s » a un horodatage incohérent" -#: ../src/control/crawler.c:558 +#: ../src/control/crawler.c:551 #, c-format msgid "ERROR: %s NOT synced old (XMP) → new (DB)" msgstr "<b>Erreur</b> : « %s » NON synchronisé ancien (XMP) → nouveau (DB)" -#: ../src/control/crawler.c:567 +#: ../src/control/crawler.c:560 #, c-format msgid "SUCCESS: %s synced old (XMP) → new (DB)" msgstr "<b>Succès</b> : « %s » synchronisé ancien (XMP) → nouveau (DB)" -#: ../src/control/crawler.c:579 +#: ../src/control/crawler.c:572 #, c-format msgid "ERROR: %s NOT synced old (DB) → new (XMP)" msgstr "<b>Erreur</b> : « %s » NON synchronisé ancien (DB) → nouveau (XMP)" -#: ../src/control/crawler.c:588 +#: ../src/control/crawler.c:581 #, c-format msgid "SUCCESS: %s synced old (DB) → new (XMP)" msgstr "<b>Succès</b> : « %s » synchronisé ancien (DB) → nouveau (XMP)" -#: ../src/control/crawler.c:670 +#: ../src/control/crawler.c:663 #, c-format msgid "%id %02dh %02dm %02ds" msgstr "%ij %02dh %02dm %02ds" -#: ../src/control/crawler.c:740 ../src/imageio/storage/disk.c:168 -#: ../src/imageio/storage/gallery.c:154 ../src/imageio/storage/latex.c:153 -#: ../src/imageio/storage/latex.c:171 +#: ../src/control/crawler.c:716 +msgid "XMP" +msgstr "XMP" + +#: ../src/control/crawler.c:733 ../src/imageio/storage/disk.c:250 +#: ../src/imageio/storage/gallery.c:202 ../src/imageio/storage/latex.c:190 +#: ../src/imageio/storage/latex.c:208 msgid "path" msgstr "Chemin" -#: ../src/control/crawler.c:749 +#: ../src/control/crawler.c:742 msgid "XMP timestamp" msgstr "Horodatage XMP" -#: ../src/control/crawler.c:754 +#: ../src/control/crawler.c:747 msgid "database timestamp" msgstr "Horodatage de la base de données" -#: ../src/control/crawler.c:759 +#: ../src/control/crawler.c:752 msgid "newest" msgstr "Plus récent" -#: ../src/control/crawler.c:765 +#: ../src/control/crawler.c:758 msgid "time difference" msgstr "Différence horaire" -#: ../src/control/crawler.c:777 +#: ../src/control/crawler.c:770 msgid "updated XMP sidecar files found" msgstr "Versions modifiées de fichiers XMP trouvées" -#: ../src/control/crawler.c:778 +#: ../src/control/crawler.c:771 msgid "_close" msgstr "_Fermer" #. setup selection accelerators #. action-box -#: ../src/control/crawler.c:793 ../src/dtgtk/thumbtable.c:2578 -#: ../src/libs/import.c:1722 ../src/libs/select.c:135 +#: ../src/control/crawler.c:786 ../src/dtgtk/thumbtable.c:2755 +#: ../src/libs/import.c:1732 ../src/libs/select.c:136 msgid "select all" msgstr "Tout sélectionner" -#: ../src/control/crawler.c:794 ../src/dtgtk/thumbtable.c:2580 -#: ../src/libs/import.c:1726 ../src/libs/select.c:139 +#: ../src/control/crawler.c:787 ../src/dtgtk/thumbtable.c:2757 +#: ../src/libs/import.c:1736 ../src/libs/select.c:140 msgid "select none" msgstr "Ne rien sélectionner" -#: ../src/control/crawler.c:795 ../src/dtgtk/thumbtable.c:2582 -#: ../src/libs/select.c:143 +#: ../src/control/crawler.c:788 ../src/dtgtk/thumbtable.c:2759 +#: ../src/libs/select.c:144 msgid "invert selection" msgstr "Inverser" -#: ../src/control/crawler.c:807 +#: ../src/control/crawler.c:800 msgid "on the selection:" msgstr "Sur la sélection :" -#: ../src/control/crawler.c:808 +#: ../src/control/crawler.c:801 msgid "keep the XMP edit" msgstr "Garder le développement XMP" -#: ../src/control/crawler.c:809 +#: ../src/control/crawler.c:802 msgid "keep the database edit" msgstr "Garder l’édition de la base de données" -#: ../src/control/crawler.c:810 +#: ../src/control/crawler.c:803 msgid "keep the newest edit" msgstr "Garder le plus récent développement" -#: ../src/control/crawler.c:811 +#: ../src/control/crawler.c:804 msgid "keep the oldest edit" msgstr "Garder le plus ancien développement" -#: ../src/control/crawler.c:836 +#: ../src/control/crawler.c:829 msgid "synchronization log" msgstr "Journal de synchronisation" @@ -7271,6 +7596,10 @@ msgid "starting to import images from camera" msgstr "Début de l’importation d’images depuis le boîtier" +#: ../src/control/jobs/camera_jobs.c:302 +msgid "failed to import images from camera." +msgstr "Erreur lors de l'importation d'images depuis l'appareil photo." + #: ../src/control/jobs/camera_jobs.c:309 #, c-format msgid "importing %d image from camera" @@ -7378,7 +7707,8 @@ msgid "_remove from library" msgstr "_Enlève de la bibliothèque" -#: ../src/control/jobs/control_jobs.c:884 +#: ../src/control/jobs/control_jobs.c:884 ../src/libs/styles.c:440 +#: ../src/libs/styles.c:625 msgid "_skip" msgstr "_Sauter" @@ -7476,42 +7806,42 @@ msgid "exporting %d / %d to %s" msgstr "Exportation %d / %d vers « %s »" -#: ../src/control/jobs/control_jobs.c:1459 ../src/views/darkroom.c:800 +#: ../src/control/jobs/control_jobs.c:1451 ../src/views/darkroom.c:721 #: ../src/views/print.c:369 #, c-format msgid "image `%s' is currently unavailable" msgstr "L’image « %s » n’est pas disponible actuellement" -#: ../src/control/jobs/control_jobs.c:1551 +#: ../src/control/jobs/control_jobs.c:1554 msgid "merge HDR image" msgstr "Fusion HDR d’images" -#: ../src/control/jobs/control_jobs.c:1565 +#: ../src/control/jobs/control_jobs.c:1568 msgid "duplicate images" msgstr "Cloner les images" -#: ../src/control/jobs/control_jobs.c:1571 +#: ../src/control/jobs/control_jobs.c:1574 msgid "flip images" msgstr "Retourner les images" -#: ../src/control/jobs/control_jobs.c:1578 +#: ../src/control/jobs/control_jobs.c:1581 msgid "set monochrome images" msgstr "Définit comme images monochromes" #. get all selected images now, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1585 +#: ../src/control/jobs/control_jobs.c:1588 msgid "remove images" msgstr "Enlever les images" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove image?" msgstr "Enlever l’image ?" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove images?" msgstr "Enlever les images ?" -#: ../src/control/jobs/control_jobs.c:1599 +#: ../src/control/jobs/control_jobs.c:1602 #, c-format msgid "" "do you really want to remove %d image from darktable\n" @@ -7527,21 +7857,21 @@ "(sans supprimer les fichiers du disque) ?" #. first get all selected images, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1614 -#: ../src/control/jobs/control_jobs.c:1647 +#: ../src/control/jobs/control_jobs.c:1617 +#: ../src/control/jobs/control_jobs.c:1650 msgid "delete images" msgstr "Supprimer les images" -#: ../src/control/jobs/control_jobs.c:1630 -#: ../src/control/jobs/control_jobs.c:1660 +#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1663 msgid "delete image?" msgstr "Supprimer l’image ?" -#: ../src/control/jobs/control_jobs.c:1630 +#: ../src/control/jobs/control_jobs.c:1633 msgid "delete images?" msgstr "Supprimer les images ?" -#: ../src/control/jobs/control_jobs.c:1631 +#: ../src/control/jobs/control_jobs.c:1634 #, c-format msgid "" "do you really want to physically delete %d image\n" @@ -7556,14 +7886,14 @@ "Supprimer définitivement %d images\n" "(en utilisant la poubelle si possible) ?" -#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1636 #, c-format msgid "do you really want to physically delete %d image from disk?" msgid_plural "do you really want to physically delete %d images from disk?" msgstr[0] "Supprimer définitivement %d image ?" msgstr[1] "Êtes-vous sûr de vouloir supprimer définitivement %d images ?" -#: ../src/control/jobs/control_jobs.c:1661 +#: ../src/control/jobs/control_jobs.c:1664 msgid "" "do you really want to physically delete selected image (using trash if " "possible)?" @@ -7571,26 +7901,26 @@ "Supprimer définitivement l’image sélectionnée (en utilisant la poubelle si " "possible) ?" -#: ../src/control/jobs/control_jobs.c:1662 +#: ../src/control/jobs/control_jobs.c:1665 msgid "do you really want to physically delete selected image from disk?" msgstr "Supprimer définitivement les images sélectionnées ?" -#: ../src/control/jobs/control_jobs.c:1677 +#: ../src/control/jobs/control_jobs.c:1680 msgid "move images" msgstr "Déplacer les images" -#: ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 msgid "_select as destination" msgstr "_Sélectionner comme destination" -#: ../src/control/jobs/control_jobs.c:1708 +#: ../src/control/jobs/control_jobs.c:1711 msgid "move image?" msgid_plural "move images?" msgstr[0] "Déplacer l’image ?" msgstr[1] "Déplacer les images ?" -#: ../src/control/jobs/control_jobs.c:1709 +#: ../src/control/jobs/control_jobs.c:1712 #, c-format msgid "" "do you really want to physically move %d image to %s?\n" @@ -7605,117 +7935,112 @@ "Déplacer %d images vers « %s » ?\n" "(les clones seront également déplacés)" -#: ../src/control/jobs/control_jobs.c:1731 +#: ../src/control/jobs/control_jobs.c:1734 msgid "copy images" msgstr "Copier les images" -#: ../src/control/jobs/control_jobs.c:1762 +#: ../src/control/jobs/control_jobs.c:1765 msgid "copy image?" msgid_plural "copy images?" msgstr[0] "Copier l’image ?" msgstr[1] "Copier les images ?" -#: ../src/control/jobs/control_jobs.c:1763 +#: ../src/control/jobs/control_jobs.c:1766 #, c-format msgid "do you really want to physically copy %d image to %s?" msgid_plural "do you really want to physically copy %d images to %s?" msgstr[0] "Copier %d image vers « %s » ?" msgstr[1] "Copier %d images vers « %s » ?" -#: ../src/control/jobs/control_jobs.c:1781 -#: ../src/control/jobs/control_jobs.c:1789 +#: ../src/control/jobs/control_jobs.c:1784 +#: ../src/control/jobs/control_jobs.c:1792 msgid "local copy images" msgstr "Copie locale d’images" -#: ../src/control/jobs/control_jobs.c:1796 ../src/libs/image.c:604 +#: ../src/control/jobs/control_jobs.c:1799 ../src/libs/image.c:674 msgid "refresh EXIF" msgstr "Rafraîchir les données EXIF" -#: ../src/control/jobs/control_jobs.c:1860 +#: ../src/control/jobs/control_jobs.c:1863 #, c-format msgid "failed to get parameters from storage module `%s', aborting export.." msgstr "" "Impossible d’obtenir les paramètres du module de stockage « %s », " "exportation abandonnée." -#: ../src/control/jobs/control_jobs.c:1876 +#: ../src/control/jobs/control_jobs.c:1879 msgid "export images" msgstr "Exporter les images" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "adding time offset to %d image" msgstr "Ajout du décalage horaire à %d image" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "setting date/time of %d image" msgstr "Définit date/heure de %d image" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "adding time offset to %d images" msgstr "Ajout du décalage horaire à %d images" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "setting date/time of %d images" msgstr "Définit date/heure de %d images" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "added time offset to %d image" msgstr "Décalage horaire ajouté à %d image" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "set date/time of %d image" msgstr "Date/heure définie pour %d image" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "added time offset to %d images" msgstr "Décalage horaire ajouté à %d image" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "set date/time of %d images" msgstr "Date/heure définie pour %d images" -#: ../src/control/jobs/control_jobs.c:2014 +#: ../src/control/jobs/control_jobs.c:2017 msgid "time offset" msgstr "Décalage" -#: ../src/control/jobs/control_jobs.c:2042 ../src/libs/copy_history.c:414 +#: ../src/control/jobs/control_jobs.c:2045 ../src/libs/copy_history.c:414 msgid "write sidecar files" msgstr "Sauver en XMP" -#: ../src/control/jobs/control_jobs.c:2256 ../src/control/jobs/film_jobs.c:297 +#: ../src/control/jobs/control_jobs.c:2259 ../src/control/jobs/film_jobs.c:297 #, c-format msgid "importing %d image" msgid_plural "importing %d images" msgstr[0] "Importation de %d image" msgstr[1] "Importation de %d images" -#: ../src/control/jobs/control_jobs.c:2292 +#: ../src/control/jobs/control_jobs.c:2295 #, c-format msgid "importing %d/%d image" msgid_plural "importing %d/%d images" msgstr[0] "Importation de %d/%d image" msgstr[1] "Importation de %d/%d images" -#: ../src/control/jobs/control_jobs.c:2300 +#: ../src/control/jobs/control_jobs.c:2305 #, c-format msgid "imported %d image" msgid_plural "imported %d images" msgstr[0] "%d image importé" msgstr[1] "%d images importées" -#: ../src/control/jobs/control_jobs.c:2347 ../src/gui/preferences.c:530 -#: ../src/libs/import.c:172 -msgid "import" -msgstr "Importer" - #: ../src/control/jobs/film_jobs.c:73 ../src/control/jobs/film_jobs.c:109 msgid "import images" msgstr "Importer les images" @@ -7733,11 +8058,11 @@ msgid "import image" msgstr "Importer une image" -#: ../src/develop/blend.c:322 +#: ../src/develop/blend.c:315 msgid "detail mask blending error" msgstr "Erreur de fusion du masque de détail" -#: ../src/develop/blend.c:864 +#: ../src/develop/blend.c:904 msgid "detail mask CL blending problem" msgstr "Erreur de fusion du masque CL de détail" @@ -7938,8 +8263,7 @@ msgid "reverse" msgstr "Inverser" -#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:413 -#: ../src/libs/metadata.c:631 ../src/libs/metadata_view.c:1193 +#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:442 msgid "default" msgstr "Défaut" @@ -7947,35 +8271,35 @@ msgid "RAW" msgstr "RAW" -#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2014 +#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2030 msgid "RGB (display)" msgstr "RVB (affichage)" -#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2027 +#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2043 msgid "RGB (scene)" msgstr "RVB (scène)" #. DEVELOP_MASK_ENABLED -#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3419 +#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3438 msgid "uniformly" msgstr "Uniforme" -#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:3429 ../src/develop/imageop.c:2660 +#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:3448 ../src/develop/imageop.c:2669 msgid "drawn mask" msgstr "Masque dessiné" -#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2512 -#: ../src/develop/blend_gui.c:3440 ../src/develop/imageop.c:2662 +#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2528 +#: ../src/develop/blend_gui.c:3459 ../src/develop/imageop.c:2671 msgid "parametric mask" msgstr "Masque paramétrique" -#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2951 -#: ../src/develop/blend_gui.c:3467 ../src/develop/imageop.c:2664 +#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2966 +#: ../src/develop/blend_gui.c:3486 ../src/develop/imageop.c:2673 msgid "raster mask" msgstr "Masque raster" -#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3454 +#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3473 msgid "drawn & parametric mask" msgstr "Masque dessiné et paramétrique" @@ -8011,179 +8335,179 @@ msgid "input after blur" msgstr "Entrée après le flou" -#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:129 -#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/libs/live_view.c:362 +#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:157 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/libs/live_view.c:362 msgid "on" msgstr "Activé(e)" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "input" msgstr "Entrée" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "output" msgstr "Sortie" -#: ../src/develop/blend_gui.c:995 +#: ../src/develop/blend_gui.c:998 msgid " (zoom)" msgstr " (zoom)" -#: ../src/develop/blend_gui.c:1003 +#: ../src/develop/blend_gui.c:1006 msgid " (log)" msgstr " (log)" -#: ../src/develop/blend_gui.c:1988 +#: ../src/develop/blend_gui.c:2004 msgid "reset to default blend colorspace" msgstr "Sélectionne l’espace de couleur de fusion par défaut" -#: ../src/develop/blend_gui.c:2044 +#: ../src/develop/blend_gui.c:2060 msgid "reset and hide output channels" msgstr "Réinitialiser et cacher le canal de sortie" -#: ../src/develop/blend_gui.c:2051 +#: ../src/develop/blend_gui.c:2067 msgid "show output channels" msgstr "Afficher le canal de sortie" -#: ../src/develop/blend_gui.c:2290 ../src/develop/blend_gui.c:2357 -#: ../src/iop/tonecurve.c:1134 +#: ../src/develop/blend_gui.c:2306 ../src/develop/blend_gui.c:2373 +#: ../src/iop/tonecurve.c:1156 msgid "L" msgstr "L" -#: ../src/develop/blend_gui.c:2290 +#: ../src/develop/blend_gui.c:2306 msgid "sliders for L channel" msgstr "Conditions de fusion sur le canal « L »" # Probablement Lab, mis en minuscule -#: ../src/develop/blend_gui.c:2295 ../src/iop/tonecurve.c:1135 +#: ../src/develop/blend_gui.c:2311 ../src/iop/tonecurve.c:1157 msgid "a" msgstr "a" -#: ../src/develop/blend_gui.c:2295 +#: ../src/develop/blend_gui.c:2311 msgid "sliders for a channel" msgstr "Conditions de fusion sur le canal « a »" -#: ../src/develop/blend_gui.c:2299 +#: ../src/develop/blend_gui.c:2315 msgid "green/red" msgstr "Vert/rouge" # Probablement Lab, mis en minuscule -#: ../src/develop/blend_gui.c:2300 ../src/iop/tonecurve.c:1136 +#: ../src/develop/blend_gui.c:2316 ../src/iop/tonecurve.c:1158 msgid "b" msgstr "b" -#: ../src/develop/blend_gui.c:2300 +#: ../src/develop/blend_gui.c:2316 msgid "sliders for b channel" msgstr "Conditions de fusion sur le canal « b »" -#: ../src/develop/blend_gui.c:2304 +#: ../src/develop/blend_gui.c:2320 msgid "blue/yellow" msgstr "Bleu/jaune" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "C" msgstr "C" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "sliders for chroma channel (of LCh)" msgstr "Conditions de fusion sur le canal chroma « C » (de LCh)" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "h" msgstr "H" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "sliders for hue channel (of LCh)" msgstr "Conditions de fusion sur le canal de teinte « h » (de LCh)" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "g" msgstr "G" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "sliders for gray value" msgstr "Conditions de fusion sur le canal gris" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/denoiseprofile.c:3710 -#: ../src/iop/rawdenoise.c:894 ../src/iop/rgbcurve.c:1358 -#: ../src/iop/rgblevels.c:1003 ../src/libs/filters/colors.c:137 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/denoiseprofile.c:3714 +#: ../src/iop/rawdenoise.c:910 ../src/iop/rgbcurve.c:1358 +#: ../src/iop/rgblevels.c:1043 ../src/libs/filters/colors.c:137 msgid "R" msgstr "R" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 msgid "sliders for red channel" msgstr "Conditions de fusion sur le canal rouge" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/denoiseprofile.c:3711 -#: ../src/iop/rawdenoise.c:895 ../src/iop/rgbcurve.c:1359 -#: ../src/iop/rgblevels.c:1004 ../src/libs/filters/colors.c:143 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/denoiseprofile.c:3715 +#: ../src/iop/rawdenoise.c:911 ../src/iop/rgbcurve.c:1359 +#: ../src/iop/rgblevels.c:1044 ../src/libs/filters/colors.c:143 msgid "G" msgstr "V" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 msgid "sliders for green channel" msgstr "Conditions de fusion sur le canal vert" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/denoiseprofile.c:3712 -#: ../src/iop/rawdenoise.c:896 ../src/iop/rgbcurve.c:1360 -#: ../src/iop/rgblevels.c:1005 ../src/libs/filters/colors.c:146 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/denoiseprofile.c:3716 +#: ../src/iop/rawdenoise.c:912 ../src/iop/rgbcurve.c:1360 +#: ../src/iop/rgblevels.c:1045 ../src/libs/filters/colors.c:146 msgid "B" msgstr "B" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 msgid "sliders for blue channel" msgstr "Conditions de fusion sur le canal bleu" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "H" msgstr "H" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "sliders for hue channel (of HSL)" msgstr "Conditions de fusion sur le canal de teinte (de TSL)" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "S" msgstr "S" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "sliders for chroma channel (of HSL)" msgstr "Conditions de fusion sur le canal de saturation (de TSL)" -#: ../src/develop/blend_gui.c:2357 +#: ../src/develop/blend_gui.c:2373 msgid "sliders for value channel (of HSL)" msgstr "Conditions de fusion sur le canal de valeur « L » (de TSL)" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "Jz" msgstr "Jz" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "sliders for value channel (of JzCzhz)" msgstr "Conditions de fusion sur le canal valeur (de JzCzhz)" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "Cz" msgstr "Cz" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "sliders for chroma channel (of JzCzhz)" msgstr "Conditions de fusion sur le canal chroma (de JzCzhz)" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "hz" msgstr "Hz" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "sliders for hue channel (of JzCzhz)" msgstr "Conditions de fusion sur le canal teinte (de JzCzhz)" -#: ../src/develop/blend_gui.c:2415 +#: ../src/develop/blend_gui.c:2431 msgid "" "adjustment based on input received by this module:\n" "* range defined by upper markers: blend fully\n" @@ -8198,7 +8522,7 @@ " • Intervalle entre deux marqueurs adjacents interne/externe : fusion " "progressive." -#: ../src/develop/blend_gui.c:2419 +#: ../src/develop/blend_gui.c:2435 msgid "" "adjustment based on unblended output of this module:\n" "* range defined by upper markers: blend fully\n" @@ -8213,19 +8537,19 @@ " • Intervalle entre 2 marqueurs adjacents interne/externe : fusion " "progressive." -#: ../src/develop/blend_gui.c:2516 +#: ../src/develop/blend_gui.c:2532 msgid "reset blend mask settings" msgstr "Réinitialise les paramètres de fusion conditionnelle" -#: ../src/develop/blend_gui.c:2527 ../src/iop/atrous.c:1665 -#: ../src/iop/colorzones.c:2399 ../src/iop/denoiseprofile.c:3707 -#: ../src/iop/rawdenoise.c:891 ../src/iop/rgbcurve.c:1357 -#: ../src/iop/rgblevels.c:1002 ../src/iop/tonecurve.c:1133 +#: ../src/develop/blend_gui.c:2543 ../src/iop/atrous.c:1797 +#: ../src/iop/colorzones.c:2641 ../src/iop/denoiseprofile.c:3711 +#: ../src/iop/rawdenoise.c:907 ../src/iop/rgbcurve.c:1357 +#: ../src/iop/rgblevels.c:1041 ../src/iop/tonecurve.c:1155 msgid "channel" msgstr "Canal" -#: ../src/develop/blend_gui.c:2542 ../src/iop/colorzones.c:2413 -#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1142 +#: ../src/develop/blend_gui.c:2558 ../src/iop/colorzones.c:2660 +#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1164 msgid "" "pick GUI color from image\n" "ctrl+click or right-click to select an area" @@ -8233,12 +8557,12 @@ "Choisit une couleur dans l’image,\n" "Ctrl+clic ou clic droit pour sélectionner une zone." -#: ../src/develop/blend_gui.c:2545 ../src/iop/colorzones.c:2415 +#: ../src/develop/blend_gui.c:2561 ../src/iop/colorzones.c:2662 #: ../src/iop/rgbcurve.c:1369 msgid "show color" msgstr "Montrer couleur" -#: ../src/develop/blend_gui.c:2554 +#: ../src/develop/blend_gui.c:2570 msgid "" "set the range based on an area from the image\n" "drag to use the input image\n" @@ -8248,19 +8572,19 @@ " • Clic – utiliser l’image en entrée\n" " • Ctrl+clic – utiliser l’image en sortie" -#: ../src/develop/blend_gui.c:2557 +#: ../src/develop/blend_gui.c:2573 msgid "set range" msgstr "Définit l'étendu" -#: ../src/develop/blend_gui.c:2560 +#: ../src/develop/blend_gui.c:2576 msgid "invert all channel's polarities" msgstr "Inverser les polarités de tous les canaux" -#: ../src/develop/blend_gui.c:2584 +#: ../src/develop/blend_gui.c:2600 msgid "toggle polarity. best seen by enabling 'display mask'" msgstr "Inverse la polarité. Mieux vu en activant « Afficher le masque »" -#: ../src/develop/blend_gui.c:2613 +#: ../src/develop/blend_gui.c:2629 msgid "" "double-click to reset.\n" "press 'a' to toggle available slider modes.\n" @@ -8268,176 +8592,211 @@ "press 'm' to toggle mask view." msgstr "" "Double clic pour réinitialiser. Saisir :\n" -"• a – Changer le mode d’édition,\n" -"• c – afficher les données du canal,\n" -"• m – afficher le masque." - -#: ../src/develop/blend_gui.c:2640 ../src/develop/blend_gui.c:3531 -#: ../src/iop/basicadj.c:600 ../src/iop/colorbalancergb.c:2090 -#: ../src/iop/exposure.c:1120 ../src/iop/exposure.c:1135 -#: ../src/iop/filmic.c:1503 ../src/iop/filmic.c:1516 ../src/iop/filmic.c:1558 -#: ../src/iop/filmicrgb.c:4440 ../src/iop/filmicrgb.c:4451 -#: ../src/iop/filmicrgb.c:4485 ../src/iop/filmicrgb.c:4495 -#: ../src/iop/graduatednd.c:1113 ../src/iop/negadoctor.c:1011 -#: ../src/iop/profile_gamma.c:643 ../src/iop/profile_gamma.c:649 -#: ../src/iop/relight.c:262 ../src/iop/soften.c:378 ../src/iop/toneequal.c:3326 -#: ../src/iop/toneequal.c:3329 ../src/iop/toneequal.c:3332 -#: ../src/iop/toneequal.c:3335 ../src/iop/toneequal.c:3338 -#: ../src/iop/toneequal.c:3341 ../src/iop/toneequal.c:3344 -#: ../src/iop/toneequal.c:3347 ../src/iop/toneequal.c:3350 -#: ../src/iop/toneequal.c:3472 ../src/iop/toneequal.c:3481 -#: ../src/iop/toneequal.c:3494 ../src/views/darkroom.c:2453 +" • a – Changer le mode d’édition,\n" +" • c – afficher les données du canal,\n" +" • m – afficher le masque." + +#: ../src/develop/blend_gui.c:2656 ../src/develop/blend_gui.c:3577 +#: ../src/iop/basicadj.c:630 ../src/iop/colorbalancergb.c:2161 +#: ../src/iop/exposure.c:1138 ../src/iop/exposure.c:1153 +#: ../src/iop/filmic.c:1528 ../src/iop/filmic.c:1541 ../src/iop/filmic.c:1583 +#: ../src/iop/filmicrgb.c:4504 ../src/iop/filmicrgb.c:4515 +#: ../src/iop/filmicrgb.c:4549 ../src/iop/filmicrgb.c:4559 +#: ../src/iop/graduatednd.c:1082 ../src/iop/negadoctor.c:1030 +#: ../src/iop/profile_gamma.c:657 ../src/iop/profile_gamma.c:663 +#: ../src/iop/relight.c:258 ../src/iop/soften.c:373 ../src/iop/toneequal.c:3379 +#: ../src/iop/toneequal.c:3382 ../src/iop/toneequal.c:3385 +#: ../src/iop/toneequal.c:3388 ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3394 ../src/iop/toneequal.c:3397 +#: ../src/iop/toneequal.c:3400 ../src/iop/toneequal.c:3403 +#: ../src/iop/toneequal.c:3525 ../src/iop/toneequal.c:3534 +#: ../src/iop/toneequal.c:3547 ../src/views/darkroom.c:2292 msgid " EV" msgstr " IL" -#: ../src/develop/blend_gui.c:2642 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:2951 ../src/develop/blend_gui.c:3014 -#: ../src/develop/blend_gui.c:3499 ../src/develop/blend_gui.c:3529 -#: ../src/develop/blend_gui.c:3542 ../src/develop/blend_gui.c:3559 -#: ../src/develop/blend_gui.c:3583 ../src/develop/blend_gui.c:3593 -#: ../src/develop/blend_gui.c:3602 ../src/develop/blend_gui.c:3613 +#: ../src/develop/blend_gui.c:2658 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:2966 ../src/develop/blend_gui.c:3029 +#: ../src/develop/blend_gui.c:3545 ../src/develop/blend_gui.c:3575 +#: ../src/develop/blend_gui.c:3588 ../src/develop/blend_gui.c:3605 +#: ../src/develop/blend_gui.c:3629 ../src/develop/blend_gui.c:3641 +#: ../src/develop/blend_gui.c:3652 ../src/develop/blend_gui.c:3663 msgid "blend" msgstr "Fusion" -#: ../src/develop/blend_gui.c:2642 +#: ../src/develop/blend_gui.c:2658 msgid "boost factor" msgstr "Facteur de renforcement" -#: ../src/develop/blend_gui.c:2645 +#: ../src/develop/blend_gui.c:2661 msgid "adjust the boost factor of the channel mask" msgstr "Ajuster le facteur de renforcement du masque" -#: ../src/develop/blend_gui.c:2682 +#: ../src/develop/blend_gui.c:2698 #, c-format msgid "%d shape used" msgid_plural "%d shapes used" msgstr[0] "%d forme utilisée" msgstr[1] "%d formes utilisées" -#: ../src/develop/blend_gui.c:2687 ../src/develop/blend_gui.c:2743 -#: ../src/develop/blend_gui.c:2831 ../src/develop/blend_gui.c:2952 +#: ../src/develop/blend_gui.c:2703 ../src/develop/blend_gui.c:2759 +#: ../src/develop/blend_gui.c:2847 ../src/develop/blend_gui.c:2967 msgid "no mask used" msgstr "Aucun utilisé" -#: ../src/develop/blend_gui.c:2751 +#: ../src/develop/blend_gui.c:2767 msgid "toggle polarity of drawn mask" msgstr "Inverser la polarité du masque dessiné" # infinitifs requis "Montrer et éditer" -#: ../src/develop/blend_gui.c:2760 +#: ../src/develop/blend_gui.c:2776 msgid "show and edit mask elements" msgstr "Montrer et éditer les éléments d’un masque" # infinitifs requis "Montrer et éditer" -#: ../src/develop/blend_gui.c:2761 +#: ../src/develop/blend_gui.c:2777 msgid "show and edit in restricted mode" msgstr "Montrer et éditer en mode restreint" -#: ../src/develop/blend_gui.c:2768 ../src/libs/masks.c:998 -#: ../src/libs/masks.c:1816 ../src/libs/masks.c:1820 +#: ../src/develop/blend_gui.c:2784 ../src/libs/masks.c:1014 +#: ../src/libs/masks.c:1812 ../src/libs/masks.c:1816 msgid "add gradient" msgstr "Ajouter un dégradé" -#: ../src/develop/blend_gui.c:2769 +#: ../src/develop/blend_gui.c:2785 msgid "add multiple gradients" msgstr "ajouter plusieurs dégradés" -#: ../src/develop/blend_gui.c:2776 ../src/iop/retouch.c:2238 -#: ../src/libs/masks.c:978 ../src/libs/masks.c:1852 ../src/libs/masks.c:1856 +#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2466 +#: ../src/libs/masks.c:994 ../src/libs/masks.c:1848 ../src/libs/masks.c:1852 msgid "add brush" msgstr "Ajouter une forme au pinceau" -#: ../src/develop/blend_gui.c:2777 ../src/iop/retouch.c:2238 +#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2466 msgid "add multiple brush strokes" msgstr "ajouter plusieurs coups de pinceau" -#: ../src/develop/blend_gui.c:2784 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 ../src/libs/masks.c:993 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1829 +#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 ../src/libs/masks.c:1009 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1825 msgid "add path" msgstr "Ajouter un chemin" -#: ../src/develop/blend_gui.c:2785 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 +#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 msgid "add multiple paths" msgstr "ajouter plusieurs chemins" -#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 ../src/libs/masks.c:988 ../src/libs/masks.c:1834 -#: ../src/libs/masks.c:1838 +#: ../src/develop/blend_gui.c:2808 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 ../src/libs/masks.c:1004 ../src/libs/masks.c:1830 +#: ../src/libs/masks.c:1834 msgid "add ellipse" msgstr "Ajouter une ellipse" -#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 +#: ../src/develop/blend_gui.c:2809 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 msgid "add multiple ellipses" msgstr "ajouter plusieurs ellipses" -#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 ../src/libs/masks.c:983 ../src/libs/masks.c:1843 -#: ../src/libs/masks.c:1847 +#: ../src/develop/blend_gui.c:2816 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 ../src/libs/masks.c:999 ../src/libs/masks.c:1839 +#: ../src/libs/masks.c:1843 msgid "add circle" msgstr "Ajouter un cercle" -#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 +#: ../src/develop/blend_gui.c:2817 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 msgid "add multiple circles" msgstr "ajouter plusieurs cercles" -#: ../src/develop/blend_gui.c:2961 +#: ../src/develop/blend_gui.c:2976 msgid "toggle polarity of raster mask" msgstr "Inverser la polarité du masque raster" -#: ../src/develop/blend_gui.c:3101 +#: ../src/develop/blend_gui.c:3119 msgid "normal & difference" msgstr "Normaux & différences" -#: ../src/develop/blend_gui.c:3106 +#: ../src/develop/blend_gui.c:3124 msgid "lighten" msgstr "Éclaircir" -#: ../src/develop/blend_gui.c:3113 +#: ../src/develop/blend_gui.c:3131 msgid "darken" msgstr "Assombrir" -#: ../src/develop/blend_gui.c:3120 +#: ../src/develop/blend_gui.c:3138 msgid "contrast enhancing" msgstr "Renforcement du contraste" -#: ../src/develop/blend_gui.c:3127 ../src/develop/blend_gui.c:3150 +#: ../src/develop/blend_gui.c:3145 ../src/develop/blend_gui.c:3168 msgid "color channel" msgstr "Mode canal de couleur" -#: ../src/develop/blend_gui.c:3138 ../src/develop/blend_gui.c:3153 +#: ../src/develop/blend_gui.c:3156 ../src/develop/blend_gui.c:3171 msgid "chromaticity & lightness" msgstr "Chrominance & luminance" -#: ../src/develop/blend_gui.c:3145 +#: ../src/develop/blend_gui.c:3163 msgid "normal & arithmetic" msgstr "Normaux & arithmétiques" #. add deprecated blend mode -#: ../src/develop/blend_gui.c:3166 +#: ../src/develop/blend_gui.c:3184 msgid "deprecated" msgstr "Déprécié" -#: ../src/develop/blend_gui.c:3478 +#. should never happen: unknown blend mode +#: ../src/develop/blend_gui.c:3188 +#, c-format +msgid "unknown blend mode '%d' in module '%s'" +msgstr "Mode de fusion « %d » non reconnu dans le module « %s »" + +#: ../src/develop/blend_gui.c:3497 msgid "blending options" msgstr "Options de fusion" -#: ../src/develop/blend_gui.c:3500 ../src/libs/history.c:949 -msgid "blend mode" -msgstr "Mode de fusion" +#: ../src/develop/blend_gui.c:3516 +msgid "blend mask" +msgstr "Masque de fusion" + +#: ../src/develop/blend_gui.c:3520 +msgid "display mask and/or color channel" +msgstr "Afficher les masques et/ou les canaux de couleur" + +#: ../src/develop/blend_gui.c:3525 +msgid "" +"display mask and/or color channel.\n" +"ctrl+click to display mask,\n" +"shift+click to display channel.\n" +"hover over parametric mask slider to select channel for display" +msgstr "" +"Affiche les masques et/ou le canal de couleur.\n" +" • Ctrl+clic – afficher le masque\n" +" • Maj+clic – afficher le canal\n" +"Survoler la réglette du masque paramétrique pour sélectionner le canal à " +"afficher." + +#: ../src/develop/blend_gui.c:3532 +msgid "temporarily switch off blend mask" +msgstr "Désactiver temporairement le masque de fusion" -#: ../src/develop/blend_gui.c:3503 +#: ../src/develop/blend_gui.c:3537 +msgid "" +"temporarily switch off blend mask.\n" +"only for module in focus" +msgstr "" +"Désactive temporairement le masque de fusion.\n" +"Uniquement pour le module actif." + +#: ../src/develop/blend_gui.c:3549 msgid "choose blending mode" msgstr "Choisir le mode de fusion" -#: ../src/develop/blend_gui.c:3513 +#: ../src/develop/blend_gui.c:3559 msgid "toggle blend order" msgstr "Inverser l’ordre de fusion" -#: ../src/develop/blend_gui.c:3519 +#: ../src/develop/blend_gui.c:3565 msgid "" "toggle the blending order between the input and the output of the module,\n" "by default the output will be blended on top of the input,\n" @@ -8448,29 +8807,29 @@ "l’ordre peut être inversé en cliquant sur l’icône\n" "(entrée au-dessus de la sortie)." -#: ../src/develop/blend_gui.c:3530 ../src/libs/history.c:953 -msgid "blend fulcrum" -msgstr "Pivot de fusion" +#: ../src/develop/blend_gui.c:3576 +msgid "fulcrum" +msgstr "Pivot" -#: ../src/develop/blend_gui.c:3534 +#: ../src/develop/blend_gui.c:3580 msgid "adjust the fulcrum used by some blending operations" msgstr "Ajuste le pivot utilisé par quelques opérations de fusion" #. Add opacity/scale sliders to table -#: ../src/develop/blend_gui.c:3542 ../src/iop/watermark.c:1314 -#: ../src/libs/masks.c:104 +#: ../src/develop/blend_gui.c:3588 ../src/iop/watermark.c:1362 +#: ../src/libs/masks.c:105 msgid "opacity" msgstr "Opacité" -#: ../src/develop/blend_gui.c:3546 +#: ../src/develop/blend_gui.c:3591 msgid "set the opacity of the blending" msgstr "Fixer l’opacité de la fusion" -#: ../src/develop/blend_gui.c:3550 ../src/libs/history.c:956 +#: ../src/develop/blend_gui.c:3596 ../src/libs/history.c:956 msgid "combine masks" msgstr "Combinaison des masques" -#: ../src/develop/blend_gui.c:3552 +#: ../src/develop/blend_gui.c:3598 msgid "" "how to combine individual drawn mask and different channels of parametric " "mask" @@ -8478,11 +8837,11 @@ "Comment combiner le masque dessiné et les différents canaux du masque " "paramétrique" -#: ../src/develop/blend_gui.c:3559 +#: ../src/develop/blend_gui.c:3605 msgid "details threshold" msgstr "Seuil des détails" -#: ../src/develop/blend_gui.c:3563 +#: ../src/develop/blend_gui.c:3609 msgid "" "adjust the threshold for the details mask (using raw data),\n" "positive values select areas with strong details,\n" @@ -8493,11 +8852,11 @@ "importants\n" " • Les valeurs négatives sélectionnent les zone plates, sans détail" -#: ../src/develop/blend_gui.c:3571 ../src/libs/history.c:959 +#: ../src/develop/blend_gui.c:3617 ../src/libs/history.c:959 msgid "feathering guide" msgstr "Guide de raffinement" -#: ../src/develop/blend_gui.c:3574 +#: ../src/develop/blend_gui.c:3620 msgid "" "choose to guide mask by input or output image and\n" "choose to apply feathering before or after mask blur" @@ -8505,28 +8864,28 @@ "Permet de guider le masque depuis l’image d’entrée ou de sortie\n" "et de choisir d’appliquer le raffinement avant ou après le flou." -#: ../src/develop/blend_gui.c:3583 ../src/libs/history.c:958 +#: ../src/develop/blend_gui.c:3629 ../src/libs/history.c:958 msgid "feathering radius" msgstr "Rayon du raffinement" -#: ../src/develop/blend_gui.c:3586 +#: ../src/develop/blend_gui.c:3632 msgid "spatial radius of feathering" msgstr "Extension spatiale du raffinement" -#: ../src/develop/blend_gui.c:3593 +#: ../src/develop/blend_gui.c:3641 msgid "blurring radius" msgstr "Rayon du flou" -#: ../src/develop/blend_gui.c:3596 +#: ../src/develop/blend_gui.c:3644 msgid "radius for gaussian blur of blend mask" msgstr "Rayon du flou gaussien du masque de fusion" -#: ../src/develop/blend_gui.c:3602 ../src/iop/retouch.c:2453 +#: ../src/develop/blend_gui.c:3652 ../src/iop/retouch.c:2738 #: ../src/libs/history.c:954 msgid "mask opacity" msgstr "Opacité du masque" -#: ../src/develop/blend_gui.c:3606 +#: ../src/develop/blend_gui.c:3656 msgid "" "shifts and tilts the tone curve of the blend mask to adjust its brightness\n" "without affecting fully transparent/fully opaque regions" @@ -8535,57 +8894,36 @@ "luminosité\n" "sans affecter les régions complètement transparentes ou opaques." -#: ../src/develop/blend_gui.c:3613 ../src/libs/history.c:962 +#: ../src/develop/blend_gui.c:3663 ../src/libs/history.c:962 msgid "mask contrast" msgstr "Contraste du masque" -#: ../src/develop/blend_gui.c:3617 +#: ../src/develop/blend_gui.c:3667 msgid "" "gives the tone curve of the blend mask an s-like shape to adjust its contrast" msgstr "" "Donne à la courbe de tonalités du masque de fusion une forme en S\n" "pour ajuster son contraste." -#: ../src/develop/blend_gui.c:3621 +#: ../src/develop/blend_gui.c:3671 msgid "mask refinement" msgstr "Amélioration du masque" -#: ../src/develop/blend_gui.c:3625 -msgid "display mask and/or color channel" -msgstr "Afficher les masques et/ou les canaux de couleur" - -#: ../src/develop/blend_gui.c:3630 -msgid "" -"display mask and/or color channel.\n" -"ctrl+click to display mask,\n" -"shift+click to display channel.\n" -"hover over parametric mask slider to select channel for display" -msgstr "" -"Affiche les masques et/ou le canal de couleur.\n" -" • Ctrl+clic – afficher le masque\n" -" • Maj+clic – afficher le canal\n" -"Survoler la réglette du masque paramétrique pour sélectionner le canal à " -"afficher." - -#: ../src/develop/blend_gui.c:3637 -msgid "temporarily switch off blend mask" -msgstr "Désactiver temporairement le masque de fusion" - -#: ../src/develop/blend_gui.c:3642 +#: ../src/develop/develop.c:732 msgid "" -"temporarily switch off blend mask.\n" -"only for module in focus" +"autosaving history has been disabled for this session because of a slow " +"drive used" msgstr "" -"Désactive temporairement le masque de fusion.\n" -"Uniquement pour le module actif." +"La sauvegarde automatique a été désactivé pour cette session car un disque " +"lent est utilisé" -#: ../src/develop/develop.c:2303 +#: ../src/develop/develop.c:2202 #, c-format msgid "%s: module `%s' version mismatch: %d != %d" msgstr "%s : Module « %s » version non cohérente : %d != %d" -#: ../src/develop/develop.c:2834 -msgid "module duplicate, can't move new instance after the base one\n" +#: ../src/develop/develop.c:3016 +msgid "duplicate module, can't move new instance after the base one\n" msgstr "" "Duplication de module, impossible de déplacer la nouvelle instance après " "celle de base.\n" @@ -8600,70 +8938,69 @@ msgstr "Cloner l’instance" # lorsque l’action n’engendre pas de suppression physique, on emploie le terme "enlever" -#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3739 -#: ../src/libs/masks.c:1152 +#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3755 +#: ../src/libs/masks.c:1146 msgid "move up" msgstr "Monter" -#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3740 -#: ../src/libs/masks.c:1157 +#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3756 +#: ../src/libs/masks.c:1151 msgid "move down" msgstr "Descendre" #. delete button label and tooltip will be updated based on trash pref -#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3742 -#: ../src/gui/accelerators.c:155 ../src/gui/presets.c:562 -#: ../src/libs/image.c:285 ../src/libs/image.c:480 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 +#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3758 +#: ../src/gui/accelerators.c:173 ../src/libs/image.c:303 +#: ../src/libs/image.c:513 msgid "delete" msgstr "Supprimer" -#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3743 -#: ../src/libs/modulegroups.c:3464 ../src/libs/modulegroups.c:3815 +#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3759 +#: ../src/libs/modulegroups.c:3817 msgid "rename" msgstr "Renommer" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched on" msgstr "« %s » est activé" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched off" msgstr "« %s » est désactivé" -#: ../src/develop/imageop.c:2654 +#: ../src/develop/imageop.c:2663 msgid "unknown mask" msgstr "Masque inconnu" -#: ../src/develop/imageop.c:2658 +#: ../src/develop/imageop.c:2667 msgid "drawn + parametric mask" msgstr "Masques dessiné et paramétrique" -#: ../src/develop/imageop.c:2667 +#: ../src/develop/imageop.c:2676 #, c-format msgid "this module has a `%s'" msgstr "Ce module a un « %s »" -#: ../src/develop/imageop.c:2672 +#: ../src/develop/imageop.c:2681 #, c-format msgid "taken from module %s" msgstr "Récupéré depuis le module « %s »" -#: ../src/develop/imageop.c:2677 +#: ../src/develop/imageop.c:2686 msgid "click to display (module must be activated first)" msgstr "Cliquer pour afficher (le module doit être activé)" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "purpose" msgstr "Objectif" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "process" msgstr "Traitement" -#: ../src/develop/imageop.c:2906 +#: ../src/develop/imageop.c:2917 msgid "" "multiple instance actions\n" "right-click creates new instance" @@ -8671,7 +9008,7 @@ "Instances multiples,\n" "clic droit pour créer une nouvelle instance." -#: ../src/develop/imageop.c:2921 +#: ../src/develop/imageop.c:2932 msgid "" "reset parameters\n" "ctrl+click to reapply any automatic presets" @@ -8679,7 +9016,7 @@ "Réinitialiser les paramètres,\n" "Ctrl+clic pour réappliquer les préréglages automatiques." -#: ../src/develop/imageop.c:2933 +#: ../src/develop/imageop.c:2944 msgid "" "presets\n" "right-click to apply on new instance" @@ -8687,15 +9024,15 @@ "Préréglages,\n" "clic droit pour appliquer sur une nouvelle instance." -#: ../src/develop/imageop.c:3183 ../src/develop/imageop.c:3205 +#: ../src/develop/imageop.c:3194 ../src/develop/imageop.c:3216 msgid "ERROR" msgstr "ERREUR" -#: ../src/develop/imageop.c:3620 +#: ../src/develop/imageop.c:3622 msgid "unsupported input" msgstr "Entrée non supportée" -#: ../src/develop/imageop.c:3621 +#: ../src/develop/imageop.c:3623 msgid "" "you have placed this module at\n" "a position in the pipeline where\n" @@ -8706,50 +9043,50 @@ "dans le pipeline où le format de données\n" "ne satisfait pas les prérequis." -#: ../src/develop/imageop.c:3738 ../src/develop/imageop.c:3748 -#: ../src/gui/accelerators.c:151 ../src/libs/lib.c:1414 +#: ../src/develop/imageop.c:3754 ../src/develop/imageop.c:3764 +#: ../src/gui/accelerators.c:169 ../src/libs/lib.c:1415 msgid "show" msgstr "Afficher" -#: ../src/develop/imageop.c:3741 ../src/libs/modulegroups.c:3310 -#: ../src/libs/modulegroups.c:3436 ../src/libs/modulegroups.c:3817 -#: ../src/libs/tagging.c:3248 +#: ../src/develop/imageop.c:3757 ../src/libs/modulegroups.c:3315 +#: ../src/libs/modulegroups.c:3438 ../src/libs/modulegroups.c:3819 +#: ../src/libs/tagging.c:3279 msgid "new" msgstr "Nouveau" # "duplicate" traduit par "cloner" avec une bulle d'explication utilisant le terme de "copie virtuelle", dans le sens que l’image n'est pas physiquement dupliquée -#: ../src/develop/imageop.c:3744 ../src/libs/duplicate.c:405 -#: ../src/libs/image.c:495 ../src/libs/modulegroups.c:3813 +#: ../src/develop/imageop.c:3760 ../src/libs/duplicate.c:411 +#: ../src/libs/image.c:534 ../src/libs/modulegroups.c:3815 msgid "duplicate" msgstr "Cloner" -#: ../src/develop/imageop.c:3749 +#: ../src/develop/imageop.c:3765 msgid "enable" msgstr "Activer" -#: ../src/develop/imageop.c:3750 ../src/gui/accelerators.c:167 +#: ../src/develop/imageop.c:3766 ../src/gui/accelerators.c:185 msgid "focus" msgstr "Focus" -#: ../src/develop/imageop.c:3751 ../src/gui/accelerators.c:2617 +#: ../src/develop/imageop.c:3767 ../src/gui/accelerators.c:2874 msgid "instance" msgstr "Instance" -#: ../src/develop/imageop.c:3752 ../src/gui/accelerators.c:112 -#: ../src/gui/accelerators.c:122 ../src/gui/gtk.c:3009 ../src/gui/gtk.c:3056 -#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:603 -#: ../src/gui/styles_dialog.c:625 ../src/iop/atrous.c:1512 -#: ../src/libs/lib.c:1415 ../src/libs/modulegroups.c:3882 +#: ../src/develop/imageop.c:3768 ../src/gui/accelerators.c:130 +#: ../src/gui/accelerators.c:140 ../src/gui/gtk.c:3055 ../src/gui/gtk.c:3102 +#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:615 +#: ../src/gui/styles_dialog.c:637 ../src/iop/atrous.c:1626 +#: ../src/libs/lib.c:1416 ../src/libs/modulegroups.c:3884 msgid "reset" msgstr "Réinitialiser" #. Adding the outer container -#: ../src/develop/imageop.c:3753 ../src/gui/preferences.c:798 -#: ../src/libs/lib.c:1416 +#: ../src/develop/imageop.c:3769 ../src/gui/preferences.c:796 +#: ../src/libs/lib.c:1417 msgid "presets" msgstr "Préréglages" -#: ../src/develop/imageop.c:3773 +#: ../src/develop/imageop.c:3789 msgid "processing module" msgstr "Module de traitement" @@ -8762,54 +9099,54 @@ "%s\n" "Ctrl+clic pour %s" -#: ../src/develop/lightroom.c:1083 +#: ../src/develop/lightroom.c:1137 msgid "cannot find Lightroom XMP!" msgstr "Impossible de trouver un XMP venant de Lightroom !" -#: ../src/develop/lightroom.c:1115 ../src/develop/lightroom.c:1137 -#: ../src/develop/lightroom.c:1157 +#: ../src/develop/lightroom.c:1169 ../src/develop/lightroom.c:1191 +#: ../src/develop/lightroom.c:1211 #, c-format msgid "`%s' is not a Lightroom XMP!" msgstr "« %s » N’est pas un fichier XMP de Lightroom" -#: ../src/develop/lightroom.c:1556 +#: ../src/develop/lightroom.c:1613 #, c-format msgid "%s has been imported" msgid_plural "%s have been imported" msgstr[0] "%s a été importé" msgstr[1] "%s ont été importés" -#: ../src/develop/masks/brush.c:1356 ../src/develop/masks/brush.c:1410 +#: ../src/develop/masks/brush.c:1346 ../src/develop/masks/brush.c:1400 #, c-format msgid "hardness: %3.2f%%" msgstr "Dureté : %3.2f%%" -#: ../src/develop/masks/brush.c:1372 ../src/develop/masks/brush.c:1470 +#: ../src/develop/masks/brush.c:1362 ../src/develop/masks/brush.c:1460 #: ../src/develop/masks/circle.c:148 ../src/develop/masks/circle.c:193 #: ../src/develop/masks/ellipse.c:484 ../src/develop/masks/ellipse.c:546 -#: ../src/develop/masks/path.c:1273 +#: ../src/develop/masks/path.c:1255 #, c-format msgid "size: %3.2f%%" msgstr "Taille : %3.2f%%" -#: ../src/develop/masks/brush.c:3247 +#: ../src/develop/masks/brush.c:3191 msgid "[BRUSH] change size" msgstr "[PINCEAU] Changer la taille" -#: ../src/develop/masks/brush.c:3249 +#: ../src/develop/masks/brush.c:3193 msgid "[BRUSH] change hardness" msgstr "[PINCEAU] Changer la dureté" -#: ../src/develop/masks/brush.c:3251 +#: ../src/develop/masks/brush.c:3195 msgid "[BRUSH] change opacity" msgstr "[PINCEAU] Changer l’opacité" -#: ../src/develop/masks/brush.c:3263 +#: ../src/develop/masks/brush.c:3207 #, c-format msgid "brush #%d" msgstr "Pinceau #%d" -#: ../src/develop/masks/brush.c:3276 +#: ../src/develop/masks/brush.c:3220 #, c-format msgid "" "<b>size</b>: scroll, <b>hardness</b>: shift+scroll\n" @@ -8818,35 +9155,35 @@ "<b>Taille</b> : molette • <b>Dureté</b> : Maj+molette\n" "<b>Opacité</b> : Ctrl+molette (%d%%)" -#: ../src/develop/masks/brush.c:3279 +#: ../src/develop/masks/brush.c:3223 msgid "<b>size</b>: scroll" msgstr "<b>Taille</b> : défiler" #: ../src/develop/masks/circle.c:137 ../src/develop/masks/circle.c:181 #: ../src/develop/masks/ellipse.c:470 ../src/develop/masks/ellipse.c:531 -#: ../src/develop/masks/path.c:1205 +#: ../src/develop/masks/path.c:1187 #, c-format msgid "feather size: %3.2f%%" msgstr "Adoucissement : %3.2f%%" -#: ../src/develop/masks/circle.c:1510 +#: ../src/develop/masks/circle.c:1462 msgid "[CIRCLE] change size" msgstr "[CERCLE] Changer la taille" -#: ../src/develop/masks/circle.c:1512 +#: ../src/develop/masks/circle.c:1464 msgid "[CIRCLE] change feather size" msgstr "[CERCLE] Changer la taille d’adoucissement" -#: ../src/develop/masks/circle.c:1514 +#: ../src/develop/masks/circle.c:1466 msgid "[CIRCLE] change opacity" msgstr "[CERCLE] Changer l’opacité" -#: ../src/develop/masks/circle.c:1527 +#: ../src/develop/masks/circle.c:1479 #, c-format msgid "circle #%d" msgstr "Cercle #%d" -#: ../src/develop/masks/circle.c:1538 ../src/develop/masks/path.c:3490 +#: ../src/develop/masks/circle.c:1490 ../src/develop/masks/path.c:3406 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8860,32 +9197,32 @@ msgid "rotation: %3.f°" msgstr "Rotation : %3.f°" -#: ../src/develop/masks/ellipse.c:2068 +#: ../src/develop/masks/ellipse.c:2015 msgid "[ELLIPSE] change size" msgstr "[ELLIPSE] Changer la taille" -#: ../src/develop/masks/ellipse.c:2071 +#: ../src/develop/masks/ellipse.c:2018 msgid "[ELLIPSE] change feather size" msgstr "[ELLIPSE] Changer la taille d’adoucissement" -#: ../src/develop/masks/ellipse.c:2074 ../src/develop/masks/ellipse.c:2083 +#: ../src/develop/masks/ellipse.c:2021 ../src/develop/masks/ellipse.c:2030 msgid "[ELLIPSE] rotate shape" msgstr "[ELLIPSE] Tourner la forme" -#: ../src/develop/masks/ellipse.c:2077 +#: ../src/develop/masks/ellipse.c:2024 msgid "[ELLIPSE] change opacity" msgstr "[ELLIPSE] Changer l’opacité" -#: ../src/develop/masks/ellipse.c:2080 +#: ../src/develop/masks/ellipse.c:2027 msgid "[ELLIPSE] switch feathering mode" msgstr "[ELLIPSE] Changer le mode d’adoucissement" -#: ../src/develop/masks/ellipse.c:2090 +#: ../src/develop/masks/ellipse.c:2037 #, c-format msgid "ellipse #%d" msgstr "Ellipse #%d" -#: ../src/develop/masks/ellipse.c:2128 +#: ../src/develop/masks/ellipse.c:2075 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8894,11 +9231,11 @@ "<b>Taille</b> : molette • <b>Taille d’adoucissement</b> : Maj+molette\n" "<b>Rotation</b> : Ctrl+Maj+molette • <b>Opacité</b> : Ctrl+molette (%d%%)." -#: ../src/develop/masks/ellipse.c:2132 +#: ../src/develop/masks/ellipse.c:2079 msgid "<b>rotate</b>: ctrl+drag" msgstr "<b>Tourner</b> : Ctrl+déplacer" -#: ../src/develop/masks/ellipse.c:2135 +#: ../src/develop/masks/ellipse.c:2082 #, c-format msgid "" "<b>feather mode</b>: shift+click, <b>rotate</b>: ctrl+drag\n" @@ -8919,32 +9256,32 @@ msgid "curvature: %3.2f%%" msgstr "Courbure : %3.2f%%" -#: ../src/develop/masks/gradient.c:1555 +#: ../src/develop/masks/gradient.c:1514 msgid "[GRADIENT on pivot] rotate shape" msgstr "[DÉGRADÉ sur pivot] Tourner la forme" -#: ../src/develop/masks/gradient.c:1557 +#: ../src/develop/masks/gradient.c:1516 msgid "[GRADIENT creation] set rotation" msgstr "[DÉGRADÉ création] Terminer la création" -#: ../src/develop/masks/gradient.c:1559 +#: ../src/develop/masks/gradient.c:1518 msgid "[GRADIENT] change curvature" msgstr "[DÉGRADÉ] Changer la courbure" -#: ../src/develop/masks/gradient.c:1561 +#: ../src/develop/masks/gradient.c:1520 msgid "[GRADIENT] change compression" msgstr "[DÉGRADÉ] Changer la compression" -#: ../src/develop/masks/gradient.c:1563 +#: ../src/develop/masks/gradient.c:1522 msgid "[GRADIENT] change opacity" msgstr "[DÉGRADÉ] Changer l’opacité" -#: ../src/develop/masks/gradient.c:1576 +#: ../src/develop/masks/gradient.c:1535 #, c-format msgid "gradient #%d" msgstr "Dégradé #%d" -#: ../src/develop/masks/gradient.c:1587 +#: ../src/develop/masks/gradient.c:1546 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8953,7 +9290,7 @@ "<b>Courbe</b> : molette • <b>Compression</b> : Maj+molette\n" "<b>Orientation</b> : Clic+déplacer • <b>Opacité</b> : Ctrl+molette (%d%%)" -#: ../src/develop/masks/gradient.c:1592 +#: ../src/develop/masks/gradient.c:1551 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8962,7 +9299,7 @@ "<b>Courbe</b> : molette • <b>Compression</b> : Maj+molette\n" "<b>Opacité</b> : Ctrl+molette (%d%%)" -#: ../src/develop/masks/gradient.c:1595 +#: ../src/develop/masks/gradient.c:1554 msgid "<b>rotate</b>: drag" msgstr "<b>Tourner</b> : déplacer" @@ -8970,84 +9307,84 @@ msgid "[SHAPE] remove shape" msgstr "[FORME] Supprimer la forme" -#: ../src/develop/masks/masks.c:306 +#: ../src/develop/masks/masks.c:305 #, c-format msgid "group `%s'" msgstr "Groupe « %s »" -#: ../src/develop/masks/masks.c:423 +#: ../src/develop/masks/masks.c:422 #, c-format msgid "copy of `%s'" msgstr "Copie de « %s »" -#: ../src/develop/masks/masks.c:984 +#: ../src/develop/masks/masks.c:985 #, c-format msgid "%s: mask version mismatch: %d != %d" msgstr "%s : version non cohérente du masque : %d != %d" -#: ../src/develop/masks/masks.c:1239 ../src/develop/masks/masks.c:1906 +#: ../src/develop/masks/masks.c:1230 ../src/develop/masks/masks.c:1881 #, c-format msgid "opacity: %.0f%%" msgstr "Opacité : %.0f%%" -#: ../src/develop/masks/masks.c:1650 ../src/libs/masks.c:1068 +#: ../src/develop/masks/masks.c:1625 ../src/libs/masks.c:1084 msgid "add existing shape" msgstr "Ajouter un masque existant" -#: ../src/develop/masks/masks.c:1677 +#: ../src/develop/masks/masks.c:1652 msgid "use same shapes as" msgstr "Utiliser les mêmes masques que" -#: ../src/develop/masks/masks.c:1990 +#: ../src/develop/masks/masks.c:1965 msgid "masks can not contain themselves" msgstr "Les masques ne peuvent pas se contenir eux-mêmes" -#: ../src/develop/masks/path.c:3433 +#: ../src/develop/masks/path.c:3349 msgid "[PATH creation] add a smooth node" msgstr "[CHEMIN création] Ajouter un nœud doux" -#: ../src/develop/masks/path.c:3435 +#: ../src/develop/masks/path.c:3351 msgid "[PATH creation] add a sharp node" msgstr "[CHEMIN création] Ajouter un nœud dur" -#: ../src/develop/masks/path.c:3437 +#: ../src/develop/masks/path.c:3353 msgid "[PATH creation] terminate path creation" msgstr "[CHEMIN création] Terminer la création" -#: ../src/develop/masks/path.c:3439 +#: ../src/develop/masks/path.c:3355 msgid "[PATH on node] switch between smooth/sharp node" msgstr "[CHEMIN sur nœud] Changer le nœud doux/dur" -#: ../src/develop/masks/path.c:3441 +#: ../src/develop/masks/path.c:3357 msgid "[PATH on node] remove the node" msgstr "[CHEMIN sur nœud] Supprimer le nœud" -#: ../src/develop/masks/path.c:3443 +#: ../src/develop/masks/path.c:3359 msgid "[PATH on feather] reset curvature" msgstr "[CHEMIN sur adoucissement] Réinitialiser la courbure" -#: ../src/develop/masks/path.c:3445 +#: ../src/develop/masks/path.c:3361 msgid "[PATH on segment] add node" msgstr "[CHEMIN sur segment] Ajouter un nœud" -#: ../src/develop/masks/path.c:3447 +#: ../src/develop/masks/path.c:3363 msgid "[PATH] change size" msgstr "[CHEMIN] Changer la taille" -#: ../src/develop/masks/path.c:3449 +#: ../src/develop/masks/path.c:3365 msgid "[PATH] change feather size" msgstr "[CHEMIN] Changer la taille de l’adoucissement" -#: ../src/develop/masks/path.c:3451 +#: ../src/develop/masks/path.c:3367 msgid "[PATH] change opacity" msgstr "[CHEMIN] Changer l’opacité" -#: ../src/develop/masks/path.c:3463 +#: ../src/develop/masks/path.c:3379 #, c-format msgid "path #%d" msgstr "Chemin #%d" -#: ../src/develop/masks/path.c:3473 +#: ../src/develop/masks/path.c:3389 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>cancel</b>: right-click" @@ -9055,7 +9392,7 @@ "<b>Ajouter un nœud</b> : clic • <b>Ajouter un nœud dur</b> : Ctrl+clic\n" "<b>Annuler</b> : clic droit" -#: ../src/develop/masks/path.c:3476 +#: ../src/develop/masks/path.c:3392 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>finish path</b>: right-click" @@ -9063,7 +9400,7 @@ "<b>Ajouter un nœud</b> : clic • <b>Ajouter un nœud dur</b> : Ctrl+clic\n" "<b>Terminer le chemin</b> : clic droit" -#: ../src/develop/masks/path.c:3479 +#: ../src/develop/masks/path.c:3395 msgid "" "<b>move node</b>: drag, <b>remove node</b>: right-click\n" "<b>switch smooth/sharp mode</b>: ctrl+click" @@ -9071,7 +9408,7 @@ "<b>Déplacer un nœud</b> : déplacer • <b>Supprimer un nœud</b> : clic droit\n" "<b>Passer au mode doux ou dur</b> : Ctrl+clic" -#: ../src/develop/masks/path.c:3483 +#: ../src/develop/masks/path.c:3399 msgid "" "<b>node curvature</b>: drag\n" "<b>reset curvature</b>: right-click" @@ -9079,7 +9416,7 @@ "<b>Courbe du nœud</b> : déplacer\n" "<b>Réinitialiser la courbe</b> : clic droit" -#: ../src/develop/masks/path.c:3487 +#: ../src/develop/masks/path.c:3403 msgid "" "<b>move segment</b>: drag\n" "<b>add node</b>: ctrl+click" @@ -9087,11 +9424,11 @@ "<b>Déplacer le segment</b> : déplacer\n" "<b>Ajouter un nœud</b> : Ctrl+clic" -#: ../src/develop/pixelpipe_hb.c:500 +#: ../src/develop/pixelpipe_hb.c:486 msgid "enabled as required" msgstr "Activé car requis" -#: ../src/develop/pixelpipe_hb.c:501 +#: ../src/develop/pixelpipe_hb.c:487 msgid "" "history had module disabled but it is required for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -9100,11 +9437,11 @@ "Probablement introduit en appliquant un préréglage, un style ou un copier/" "coller d’historique." -#: ../src/develop/pixelpipe_hb.c:508 +#: ../src/develop/pixelpipe_hb.c:494 msgid "disabled as not appropriate" msgstr "Désactivé car non approprié" -#: ../src/develop/pixelpipe_hb.c:509 +#: ../src/develop/pixelpipe_hb.c:495 msgid "" "history had module enabled but it is not allowed for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -9113,15 +9450,28 @@ "Probablement introduit en appliquant un préréglage, un style ou un copier/" "coller d’historique." -#: ../src/develop/pixelpipe_hb.c:2705 +#: ../src/develop/pixelpipe_hb.c:2697 msgid "" -"darktable discovered problems with your OpenCL setup; disabling OpenCL for " -"this session!" -msgstr "" -"darktable a rencontré des problèmes avec la configuration d’OpenCL qui sera " -"désactivé pour cette session." +"OpenCL errors encountered; disabling OpenCL for this session! some possible " +"causes:\n" +" - OpenCL out of resources due to preference settings. please try with " +"defaults,\n" +" - buggy driver for some device. please run darktable with `-d opencl' to " +"identify,\n" +" - some drivers don't support needed number of events,\n" +" - too small headroom settings while using 'use all device memory'." +msgstr "" +"Erreur rencontré dans l'OpenCL; désactivé pour cette session ! Quelques " +"causes possibles :\n" +" • Pas assez de ressources OpenCL à cause des préférences choisies. Tester " +"avec les valeurs par défaut,\n" +" • Pilote bugué sur certains périphériques. Exécuter darktable avec l'option " +"« -d opencl » pour plus d'information,\n" +" • Certains pilotes ne supportent pas le nombre d'événements nécessaires,\n" +" • Le « headroom » est trop petit lorsque l'option « Utiliser toute la " +"mémoire du périphérique » est positionnée." -#: ../src/develop/pixelpipe_hb.c:2853 +#: ../src/develop/pixelpipe_hb.c:2847 #, c-format msgid "" "module '%s' can't get raster mask from module\n" @@ -9132,30 +9482,32 @@ " « %s » car il est calculé plus tard dans l’enchaînement des modules.\n" "Le masque raster est ignoré." -#: ../src/develop/tiling.c:820 ../src/develop/tiling.c:1173 +#: ../src/develop/tiling.c:819 ../src/develop/tiling.c:1172 #, c-format -msgid "tiling failed for module '%s'. output might be garbled." +msgid "" +"tiling failed for module '%s'. the output most likely will be OK, but you " +"might want to check." msgstr "" "Tuilage impossible pour le module « %s ». La sortie est probablement " -"corrompue." +"correcte, mais vous devriez vérifier." -#: ../src/dtgtk/culling.c:254 +#: ../src/dtgtk/culling.c:223 msgid "you have reached the start of your selection" msgstr "Début de la sélection atteinte" -#: ../src/dtgtk/culling.c:263 +#: ../src/dtgtk/culling.c:232 msgid "you have reached the start of your collection" msgstr "Début de la collection atteinte" -#: ../src/dtgtk/culling.c:310 +#: ../src/dtgtk/culling.c:279 msgid "you have reached the end of your selection" msgstr "Fin de la sélection atteinte" -#: ../src/dtgtk/culling.c:337 +#: ../src/dtgtk/culling.c:306 msgid "you have reached the end of your collection" msgstr "Fin de la collection atteinte" -#: ../src/dtgtk/culling.c:446 +#: ../src/dtgtk/culling.c:415 #, c-format msgid "zooming is limited to %d images" msgstr "Le zoom est limité à %d images" @@ -9248,7 +9600,7 @@ msgid "fixed" msgstr "Fixée" -#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1493 +#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1498 msgid "relative" msgstr "Relative" @@ -9263,7 +9615,7 @@ msgstr "Min" #: ../src/dtgtk/range.c:630 ../src/dtgtk/range.c:1780 ../src/dtgtk/range.c:1831 -#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:282 +#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:309 msgid "max" msgstr "Max" @@ -9272,7 +9624,7 @@ msgstr "Type de date" #. the date section -#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1505 msgid "date" msgstr "Date" @@ -9297,7 +9649,7 @@ msgstr "Jours : " #. the time section -#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1505 msgid "time" msgstr "Date/heure" @@ -9315,8 +9667,8 @@ msgstr "Définit la valeur pour toujours correspondre à la date/heure actuelle" #. apply button -#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:162 -#: ../src/libs/metadata.c:901 ../src/libs/styles.c:897 +#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:180 +#: ../src/libs/metadata.c:735 ../src/libs/styles.c:901 msgid "apply" msgstr "Appliquer" @@ -9350,43 +9702,43 @@ msgid "grouped images" msgstr "Images groupées" -#: ../src/dtgtk/thumbnail.c:820 ../src/dtgtk/thumbnail.c:1635 -#: ../src/iop/ashift.c:6191 ../src/iop/ashift.c:6280 ../src/iop/ashift.c:6282 -#: ../src/iop/ashift.c:6284 ../src/libs/navigation.c:110 -#: ../src/libs/navigation.c:190 +#: ../src/dtgtk/thumbnail.c:814 ../src/dtgtk/thumbnail.c:1623 +#: ../src/iop/ashift.c:6138 ../src/iop/ashift.c:6227 ../src/iop/ashift.c:6229 +#: ../src/iop/ashift.c:6231 ../src/libs/navigation.c:111 +#: ../src/libs/navigation.c:193 msgid "fit" msgstr "Ajusté" -#: ../src/dtgtk/thumbtable.c:1041 ../src/views/slideshow.c:421 +#: ../src/dtgtk/thumbtable.c:1139 ../src/views/slideshow.c:422 msgid "there are no images in this collection" msgstr "Il n’y a pas d’images dans cette collection" -#: ../src/dtgtk/thumbtable.c:1048 +#: ../src/dtgtk/thumbtable.c:1146 msgid "if you have not imported any images yet" msgstr "S’il n’y a pas encore d’images importées" # suite le la phrase précédente ? minuscule initiale ? -#: ../src/dtgtk/thumbtable.c:1052 +#: ../src/dtgtk/thumbtable.c:1150 msgid "you can do so in the import module" msgstr "Utiliser le module « Importer »" # suite le la phrase précédente ? minuscule initiale ? -#: ../src/dtgtk/thumbtable.c:1061 +#: ../src/dtgtk/thumbtable.c:1159 msgid "try to relax the filter settings in the top panel" msgstr "Élargir le filtre de notation dans le panneau supérieur" # suite le la phrase précédente ? minuscule initiale ? -#: ../src/dtgtk/thumbtable.c:1072 +#: ../src/dtgtk/thumbtable.c:1170 msgid "or add images in the collections module in the left panel" msgstr "Ou ajouter des images dans le module « Collections » à gauche" -#: ../src/dtgtk/thumbtable.c:1338 +#: ../src/dtgtk/thumbtable.c:1455 msgid "" "you have changed the settings related to how thumbnails are generated.\n" msgstr "" "Les paramètres contrôlant la génération des miniatures ont été changés\n" -#: ../src/dtgtk/thumbtable.c:1341 +#: ../src/dtgtk/thumbtable.c:1458 msgid "" "all cached thumbnails need to be invalidated.\n" "\n" @@ -9394,7 +9746,7 @@ "Toutes les miniatures doivent être invalidées.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1345 +#: ../src/dtgtk/thumbtable.c:1462 #, c-format msgid "" "cached thumbnails starting from level %d need to be invalidated.\n" @@ -9403,7 +9755,7 @@ "Les miniatures du cache à partir du niveau %d doivent être invalidées.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1350 +#: ../src/dtgtk/thumbtable.c:1467 #, c-format msgid "" "cached thumbnails below level %d need to be invalidated.\n" @@ -9412,7 +9764,7 @@ "Les miniatures du cache en dessous du niveau %d doivent être invalidées.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1355 +#: ../src/dtgtk/thumbtable.c:1472 #, c-format msgid "" "cached thumbnails between level %d and %d need to be invalidated.\n" @@ -9421,49 +9773,49 @@ "Les miniatures du cache entre les niveaux %d et %d doivent être invalidées.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1358 +#: ../src/dtgtk/thumbtable.c:1475 msgid "do you want to do that now?" msgstr "Faire cela maintenant ?" -#: ../src/dtgtk/thumbtable.c:1360 +#: ../src/dtgtk/thumbtable.c:1477 msgid "cached thumbnails invalidation" msgstr "Invalidation du cache des miniatures" #. setup history key accelerators -#: ../src/dtgtk/thumbtable.c:2561 +#: ../src/dtgtk/thumbtable.c:2738 msgid "copy history" msgstr "Copier le développement" -#: ../src/dtgtk/thumbtable.c:2563 +#: ../src/dtgtk/thumbtable.c:2740 msgid "copy history parts" msgstr "Copier une partie du développement" -#: ../src/dtgtk/thumbtable.c:2565 +#: ../src/dtgtk/thumbtable.c:2742 msgid "paste history" msgstr "Coller l’historique" -#: ../src/dtgtk/thumbtable.c:2567 +#: ../src/dtgtk/thumbtable.c:2744 msgid "paste history parts" msgstr "Coller l’historique en partie" -#: ../src/dtgtk/thumbtable.c:2569 ../src/libs/copy_history.c:394 +#: ../src/dtgtk/thumbtable.c:2746 ../src/libs/copy_history.c:394 msgid "discard history" msgstr "Supprimer" -#: ../src/dtgtk/thumbtable.c:2572 +#: ../src/dtgtk/thumbtable.c:2749 msgid "duplicate image" msgstr "Cloner l’image" -#: ../src/dtgtk/thumbtable.c:2574 +#: ../src/dtgtk/thumbtable.c:2751 msgid "duplicate image virgin" msgstr "Cloner l’image vierge" # choisit ? -#: ../src/dtgtk/thumbtable.c:2584 ../src/libs/select.c:147 +#: ../src/dtgtk/thumbtable.c:2761 ../src/libs/select.c:148 msgid "select film roll" msgstr "Choisir le dossier" -#: ../src/dtgtk/thumbtable.c:2586 ../src/libs/select.c:151 +#: ../src/dtgtk/thumbtable.c:2763 ../src/libs/select.c:152 msgid "select untouched" msgstr "Non développées" @@ -9535,269 +9887,307 @@ msgstr "" "Création de toutes les miniatures pour le cache de la table lumineuse\n" -#: ../src/gui/accelerators.c:61 -msgid "active view" -msgstr "Vue active" - -#: ../src/gui/accelerators.c:62 -msgid "other views" -msgstr "Autres vues" +#: ../src/gui/about.c:34 +#, c-format +msgid "copyright (c) the authors 2009-%s" +msgstr "Copyright © les auteurs 2009-%s" + +#: ../src/gui/about.c:39 +msgid "organize and develop images from digital cameras" +msgstr "Organiser et développer les images d’un boîtier numérique" + +#: ../src/gui/about.c:51 +msgid "all those of you that made previous releases possible" +msgstr "tous ceux qui ont participé aux versions précédentes" + +#: ../src/gui/about.c:56 +msgid "and..." +msgstr "et…" -#: ../src/gui/accelerators.c:63 +#: ../src/gui/about.c:59 +msgid "translator-credits" +msgstr "" +"Pascal Obry\n" +"\n" +"Versions précédentes :\n" +"Nicolas Auffray\n" +"Olivier Tribout\n" +"Sébastien Delcoigne\n" +"Nicolas Carlier" + +#: ../src/gui/accelerators.c:72 +msgid "in active view" +msgstr "Dans la vue active" + +#: ../src/gui/accelerators.c:73 +msgid "in other views" +msgstr "Dans d'autres vues" + +#: ../src/gui/accelerators.c:74 msgid "fallbacks" msgstr "Replis" -#: ../src/gui/accelerators.c:64 ../src/gui/accelerators.c:722 -#: ../src/gui/accelerators.c:2607 ../src/gui/accelerators.c:3470 -msgid "speed" -msgstr "Vitesse" +#: ../src/gui/accelerators.c:75 +msgid "speed adjustments" +msgstr "Ajustements de vitesse" + +#: ../src/gui/accelerators.c:76 +msgid "disabled defaults" +msgstr "Défauts désactivés" -#: ../src/gui/accelerators.c:80 ../src/views/view.c:1202 +#: ../src/gui/accelerators.c:96 ../src/views/view.c:1361 msgid "scroll" msgstr "Molette" -#: ../src/gui/accelerators.c:81 +#: ../src/gui/accelerators.c:97 msgid "pan" msgstr "Déplacer" -#: ../src/gui/accelerators.c:82 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6283 ../src/iop/clipping.c:1902 -#: ../src/iop/clipping.c:2094 ../src/iop/clipping.c:2110 -#: ../src/views/darkroom.c:2676 ../src/views/lighttable.c:1250 +#: ../src/gui/accelerators.c:98 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6230 ../src/iop/clipping.c:1955 +#: ../src/iop/clipping.c:2147 ../src/iop/clipping.c:2163 +#: ../src/views/darkroom.c:2522 ../src/views/lighttable.c:1250 msgid "horizontal" msgstr "Horizontale" -#: ../src/gui/accelerators.c:83 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6281 ../src/iop/clipping.c:1901 -#: ../src/iop/clipping.c:2095 ../src/iop/clipping.c:2109 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:1254 +#: ../src/gui/accelerators.c:99 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6228 ../src/iop/clipping.c:1954 +#: ../src/iop/clipping.c:2148 ../src/iop/clipping.c:2162 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:1254 msgid "vertical" msgstr "Verticale" -#: ../src/gui/accelerators.c:84 +#: ../src/gui/accelerators.c:100 msgid "diagonal" msgstr "Diagonale" -#: ../src/gui/accelerators.c:86 +#: ../src/gui/accelerators.c:102 msgid "leftright" msgstr "Gauche-droite" -#: ../src/gui/accelerators.c:87 +#: ../src/gui/accelerators.c:103 msgid "updown" msgstr "Haut-bas" -#: ../src/gui/accelerators.c:88 +#: ../src/gui/accelerators.c:104 msgid "pgupdown" msgstr "Page-haut-bas" -#: ../src/gui/accelerators.c:96 ../src/views/view.c:1186 +#: ../src/gui/accelerators.c:112 ../src/views/view.c:1343 msgid "shift" msgstr "Maj" -#: ../src/gui/accelerators.c:97 ../src/views/view.c:1187 +#: ../src/gui/accelerators.c:113 ../src/views/view.c:1345 msgid "ctrl" msgstr "Ctrl" -#: ../src/gui/accelerators.c:98 ../src/views/view.c:1188 +#: ../src/gui/accelerators.c:114 ../src/views/view.c:1347 msgid "alt" msgstr "Alt" -#: ../src/gui/accelerators.c:99 +#: ../src/gui/accelerators.c:115 msgid "cmd" msgstr "Cmd" -#: ../src/gui/accelerators.c:100 +#: ../src/gui/accelerators.c:116 msgid "altgr" msgstr "AltGr" -#: ../src/gui/accelerators.c:109 ../src/gui/accelerators.c:156 -#: ../src/libs/tagging.c:1782 +#: ../src/gui/accelerators.c:127 ../src/gui/accelerators.c:174 +#: ../src/libs/tagging.c:1804 msgid "edit" msgstr "Modifier" -#: ../src/gui/accelerators.c:110 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "up" msgstr "Monter" -#: ../src/gui/accelerators.c:111 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:129 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "down" msgstr "Descendre" -#: ../src/gui/accelerators.c:115 +#: ../src/gui/accelerators.c:133 msgid "set" msgstr "Définir" -#: ../src/gui/accelerators.c:119 +#: ../src/gui/accelerators.c:137 msgid "popup" msgstr "Popup" -#: ../src/gui/accelerators.c:120 ../src/gui/accelerators.c:153 -#: ../src/gui/gtk.c:3054 ../src/views/lighttable.c:760 +#: ../src/gui/accelerators.c:138 ../src/gui/accelerators.c:171 +#: ../src/gui/gtk.c:3100 ../src/views/lighttable.c:760 msgid "next" msgstr "Suivant" -#: ../src/gui/accelerators.c:121 ../src/gui/accelerators.c:152 -#: ../src/gui/gtk.c:3055 ../src/views/lighttable.c:761 +#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:170 +#: ../src/gui/gtk.c:3101 ../src/views/lighttable.c:761 msgid "previous" msgstr "Précédent" -#: ../src/gui/accelerators.c:123 ../src/gui/accelerators.c:1462 +#: ../src/gui/accelerators.c:141 ../src/gui/accelerators.c:1598 msgid "last" msgstr "Dernier" -#: ../src/gui/accelerators.c:124 ../src/gui/accelerators.c:1461 +#: ../src/gui/accelerators.c:142 ../src/gui/accelerators.c:1597 msgid "first" msgstr "Premier" -#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:141 -#: ../src/gui/accelerators.c:314 ../src/libs/filters/rating_range.c:268 -#: ../src/libs/tagging.c:3119 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2419 ../src/views/darkroom.c:2648 +#: ../src/gui/accelerators.c:146 ../src/gui/accelerators.c:159 +#: ../src/gui/accelerators.c:356 ../src/libs/filters/rating_range.c:295 +#: ../src/libs/tagging.c:3150 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2258 ../src/views/darkroom.c:2494 msgid "toggle" msgstr "Basculer" -#: ../src/gui/accelerators.c:131 +#: ../src/gui/accelerators.c:149 msgid "ctrl-toggle" msgstr "Ctrl+inverser" -#: ../src/gui/accelerators.c:132 +#: ../src/gui/accelerators.c:150 msgid "ctrl-on" msgstr "Ctrl-sur" -#: ../src/gui/accelerators.c:133 +#: ../src/gui/accelerators.c:151 msgid "right-toggle" msgstr "Inverser-droit" -#: ../src/gui/accelerators.c:134 +#: ../src/gui/accelerators.c:152 msgid "right-on" msgstr "Sur-droit" -#: ../src/gui/accelerators.c:145 ../src/gui/gtk.c:3053 +#: ../src/gui/accelerators.c:163 ../src/gui/gtk.c:3099 msgid "activate" msgstr "Activer" -#: ../src/gui/accelerators.c:146 +#: ../src/gui/accelerators.c:164 msgid "ctrl-activate" msgstr "Ctrl-activer" -#: ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:165 msgid "right-activate" msgstr "Droite-activer" -#: ../src/gui/accelerators.c:154 +#: ../src/gui/accelerators.c:172 msgid "store" msgstr "Stocker" -#: ../src/gui/accelerators.c:157 ../src/gui/styles_dialog.c:639 +#: ../src/gui/accelerators.c:175 ../src/gui/styles_dialog.c:651 msgid "update" msgstr "Modifier" -#: ../src/gui/accelerators.c:158 ../src/libs/tools/global_toolbox.c:60 +#: ../src/gui/accelerators.c:176 ../src/libs/tools/global_toolbox.c:60 #: ../src/libs/tools/global_toolbox.c:510 msgid "preferences" msgstr "Préférences" # sur une nouvelle instance, sur la nouvelle instance ? -#: ../src/gui/accelerators.c:163 +#: ../src/gui/accelerators.c:181 msgid "apply on new instance" msgstr "Appliquer sur une nouvelle instance" -#: ../src/gui/accelerators.c:168 +#: ../src/gui/accelerators.c:186 msgid "start" msgstr "Début" -#: ../src/gui/accelerators.c:169 +#: ../src/gui/accelerators.c:187 msgid "end" msgstr "Fin" -#: ../src/gui/accelerators.c:332 +#: ../src/gui/accelerators.c:374 msgid "entry" msgstr "Zone de saisie" -#: ../src/gui/accelerators.c:409 +#: ../src/gui/accelerators.c:450 msgid "combo effect not found" msgstr "Action « combobox » non trouvée" -#: ../src/gui/accelerators.c:578 +#: ../src/gui/accelerators.c:627 msgid "(keypad)" msgstr "(Pavé numérique)" # "duplicate" traduit par "cloner" avec une bulle d'explication utilisant le terme de "copie virtuelle", dans le sens que l’image n'est pas physiquement dupliquée -#: ../src/gui/accelerators.c:587 +#: ../src/gui/accelerators.c:636 msgid "tablet button" msgstr "Bouton de la tablette" -#: ../src/gui/accelerators.c:596 +#: ../src/gui/accelerators.c:645 msgid "unknown driver" msgstr "Pilote inconnu" -#: ../src/gui/accelerators.c:663 +#: ../src/gui/accelerators.c:718 msgid "long" msgstr "Long" -#: ../src/gui/accelerators.c:664 +#: ../src/gui/accelerators.c:719 msgid "double-press" msgstr "Double pression" -#: ../src/gui/accelerators.c:665 +#: ../src/gui/accelerators.c:720 msgid "triple-press" msgstr "Triple pression" -#: ../src/gui/accelerators.c:666 +#: ../src/gui/accelerators.c:721 msgid "press" msgstr "Presser" -#: ../src/gui/accelerators.c:670 +#: ../src/gui/accelerators.c:725 msgctxt "accel" msgid "left" msgstr "Gauche" -#: ../src/gui/accelerators.c:671 +#: ../src/gui/accelerators.c:726 msgctxt "accel" msgid "right" msgstr "Droite" -#: ../src/gui/accelerators.c:672 +#: ../src/gui/accelerators.c:727 msgctxt "accel" msgid "middle" msgstr "Milieu" -#: ../src/gui/accelerators.c:673 +#: ../src/gui/accelerators.c:728 msgctxt "accel" msgid "long" msgstr "Long" -#: ../src/gui/accelerators.c:674 +#: ../src/gui/accelerators.c:729 msgctxt "accel" msgid "double-click" msgstr "Double clic" -#: ../src/gui/accelerators.c:675 +#: ../src/gui/accelerators.c:730 msgctxt "accel" msgid "triple-click" msgstr "Triple clic" -#: ../src/gui/accelerators.c:676 +#: ../src/gui/accelerators.c:731 msgid "click" msgstr "Clic" -#: ../src/gui/accelerators.c:704 +#: ../src/gui/accelerators.c:759 msgid "first instance" msgstr "Première instance" # "duplicate" traduit par "cloner" avec une bulle d'explication utilisant le terme de "copie virtuelle", dans le sens que l’image n'est pas physiquement dupliquée -#: ../src/gui/accelerators.c:706 +#: ../src/gui/accelerators.c:761 msgid "last instance" msgstr "Dernière instance" # "duplicate" traduit par "cloner" avec une bulle d'explication utilisant le terme de "copie virtuelle", dans le sens que l’image n'est pas physiquement dupliquée -#: ../src/gui/accelerators.c:708 +#: ../src/gui/accelerators.c:763 msgid "relative instance" msgstr "Instance relative" -#: ../src/gui/accelerators.c:867 +#: ../src/gui/accelerators.c:780 ../src/gui/accelerators.c:2864 +#: ../src/gui/accelerators.c:3811 +msgid "speed" +msgstr "Vitesse" + +#: ../src/gui/accelerators.c:923 #, c-format msgid "" "Lua script command copied to clipboard:\n" @@ -9808,11 +10198,11 @@ "\n" "<tt>%s</tt>" -#: ../src/gui/accelerators.c:965 ../src/gui/accelerators.c:978 +#: ../src/gui/accelerators.c:1025 ../src/gui/accelerators.c:1044 msgid "start typing for incremental search" msgstr "Commencer la saisie pour lancer la recherche incrémentale" -#: ../src/gui/accelerators.c:966 +#: ../src/gui/accelerators.c:1028 msgid "" "\n" "press Delete to delete selected shortcut" @@ -9820,7 +10210,23 @@ "\n" "Touche Delete pour supprimer le raccourci sélectionné" -#: ../src/gui/accelerators.c:968 +#: ../src/gui/accelerators.c:1030 +msgid "" +"\n" +"press Delete to disable selected default shortcut" +msgstr "" +"\n" +"Touche Delete pour désactiver le raccourci par défaut sélectionné" + +#: ../src/gui/accelerators.c:1031 +msgid "" +"\n" +"press Delete to restore selected default shortcut" +msgstr "" +"\n" +"Touche Delete pour restaurer le raccourci par défaut sélectionné" + +#: ../src/gui/accelerators.c:1033 msgid "" "\n" "double-click to add new shortcut" @@ -9828,11 +10234,11 @@ "\n" "Double clic pour ajouter un nouveau raccourci" -#: ../src/gui/accelerators.c:979 +#: ../src/gui/accelerators.c:1045 msgid "click to filter shortcuts list" msgstr "Cliquer pour filtrer la liste des raccourcis" -#: ../src/gui/accelerators.c:981 +#: ../src/gui/accelerators.c:1047 msgid "" "\n" "right click to show action of selected shortcut" @@ -9840,7 +10246,7 @@ "\n" "Clic droit pour montrer l’action du raccourci sélectionné" -#: ../src/gui/accelerators.c:984 +#: ../src/gui/accelerators.c:1050 msgid "" "\n" "double-click to define new shortcut" @@ -9850,11 +10256,11 @@ # bulle d'aide de l'histogramme, et aussi très souvent dans les modules # => pas de " • " initial -#: ../src/gui/accelerators.c:1015 +#: ../src/gui/accelerators.c:1081 msgid "shift+alt+scroll to change height" msgstr "Maj+Alt+molette pour changer la hauteur" -#: ../src/gui/accelerators.c:1035 +#: ../src/gui/accelerators.c:1101 msgid "" "press keys with mouse click and scroll or move combinations to create a " "shortcut" @@ -9864,31 +10270,31 @@ # 1re ligne de la liste dans la bulle d'aide de l'icône de définition # des raccourcis lorsqu'activée -#: ../src/gui/accelerators.c:1036 +#: ../src/gui/accelerators.c:1102 msgid "click to open shortcut configuration" msgstr " • Cliquer pour ouvrir le panneau de configuration des raccourcis" -#: ../src/gui/accelerators.c:1037 +#: ../src/gui/accelerators.c:1103 msgid "ctrl+click to add to quick access panel\n" msgstr "Ctrl+clic pour ajouter au panneau d’accès rapide\n" -#: ../src/gui/accelerators.c:1038 +#: ../src/gui/accelerators.c:1104 msgid "ctrl+click to remove from quick access panel\n" msgstr "Ctrl+clic pour supprimer du panneau d’accès rapide\n" # 2e ligne de la liste dans la bulle d'aide de l'icône de définition # des raccourcis lorsqu'activée -#: ../src/gui/accelerators.c:1039 +#: ../src/gui/accelerators.c:1105 msgid "scroll to change default speed" msgstr " • Molette pour changer la vitesse" # 3e ligne de la liste dans la bulle d'aide de l'icône de définition # des raccourcis lorsqu'activée -#: ../src/gui/accelerators.c:1040 +#: ../src/gui/accelerators.c:1106 msgid "right click to exit mapping mode" msgstr " • Clic droit pour quitter le mode enregistrement" -#: ../src/gui/accelerators.c:1051 +#: ../src/gui/accelerators.c:1119 #, c-format msgid "" "%sright-click to type a specific value between <b>%s</b> and <b>%s</b>\n" @@ -9897,77 +10303,92 @@ "%sclic droit pour définir une valeur entre <b>%s</b> et <b>%s</b>\n" "ou maintenir Ctrl+Shift lors du déplacement pour ignorer les limites souples." -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "ctrl+v" msgstr "Ctrl+V" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "right long click" msgstr "Clic droit long" # minuscule initiale -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "to copy Lua command" msgstr "pour copier la commande Lua" -#: ../src/gui/accelerators.c:1344 +#: ../src/gui/accelerators.c:1451 msgid "shortcut for move exists with single effect" msgstr "Un raccourci pour le mouvement existe avec un effet unique" -#: ../src/gui/accelerators.c:1345 +#: ../src/gui/accelerators.c:1452 +#, c-format +msgid "" +"%s\n" +"\n" +"(assign %s to %s)" +msgstr "" +"« %s »\n" +"\n" +"(assigner « %s » à « %s »)" + +#: ../src/gui/accelerators.c:1453 msgid "create separate shortcuts for up and down move?" msgstr "" "Créer des raccourcis différents pour les mouvements monter et descendre ?" -#: ../src/gui/accelerators.c:1368 +#: ../src/gui/accelerators.c:1479 #, c-format msgid "%s, speed reset" msgstr "%s, réinitialise la vitesse" -#: ../src/gui/accelerators.c:1377 +#: ../src/gui/accelerators.c:1497 msgid "shortcut exists with different settings" msgstr "Le raccourci existe avec des paramètres différents" -#: ../src/gui/accelerators.c:1378 +#: ../src/gui/accelerators.c:1498 msgid "reset the settings of the shortcut?" msgstr "Réinitialiser les paramètres du raccourci ?" -#: ../src/gui/accelerators.c:1389 +#: ../src/gui/accelerators.c:1507 msgid "shortcut already exists" msgstr "Le raccourci existe déjà" -#: ../src/gui/accelerators.c:1390 +#: ../src/gui/accelerators.c:1509 +msgid "disable this default shortcut?" +msgstr "Désactiver ce raccourci par défaut ?" + +#: ../src/gui/accelerators.c:1510 msgid "remove the shortcut?" msgstr "Supprimer le raccourci ?" -#: ../src/gui/accelerators.c:1423 +#: ../src/gui/accelerators.c:1550 msgid "clashing shortcuts exist" msgstr "Il y a des raccourcis conflictuels" -#: ../src/gui/accelerators.c:1424 +#: ../src/gui/accelerators.c:1551 msgid "remove these existing shortcuts?" msgstr "Éliminer ces raccourcis existants ?" #. or 3, but change char relative[] = "-2" to "-1" #. NUM_INSTANCES -#: ../src/gui/accelerators.c:1460 +#: ../src/gui/accelerators.c:1596 msgid "preferred" msgstr "Préféré" -#: ../src/gui/accelerators.c:1463 +#: ../src/gui/accelerators.c:1599 msgid "second" msgstr "Second" # "duplicate" traduit par "cloner" avec une bulle d'explication utilisant le terme de "copie virtuelle", dans le sens que l’image n'est pas physiquement dupliquée -#: ../src/gui/accelerators.c:1464 +#: ../src/gui/accelerators.c:1600 msgid "last but one" msgstr "Pénultième" -#: ../src/gui/accelerators.c:1610 ../src/gui/accelerators.c:1670 +#: ../src/gui/accelerators.c:1761 ../src/gui/accelerators.c:1826 msgid "(unchanged)" msgstr "(Non modifié)" -#: ../src/gui/accelerators.c:1776 +#: ../src/gui/accelerators.c:1941 msgid "" "define a shortcut by pressing a key, optionally combined with modifier keys " "(ctrl/shift/alt)\n" @@ -9993,39 +10414,47 @@ "\n" "Clic droit pour annuler." -#: ../src/gui/accelerators.c:1847 +#: ../src/gui/accelerators.c:2014 msgid "removing shortcut" msgstr "Suppression du raccourci" -#: ../src/gui/accelerators.c:1848 +#: ../src/gui/accelerators.c:2016 +msgid "disable the selected default shortcut?" +msgstr "Désactiver le raccourci par défaut sélectionné ?" + +#: ../src/gui/accelerators.c:2017 +msgid "restore the selected default shortcut?" +msgstr "Restaurer le raccourci par défaut sélectionné ?" + +#: ../src/gui/accelerators.c:2018 msgid "remove the selected shortcut?" msgstr "Supprimer le raccourci sélectionné ?" -#: ../src/gui/accelerators.c:1938 +#: ../src/gui/accelerators.c:2107 msgid "command" msgstr "Commande" -#: ../src/gui/accelerators.c:1939 +#: ../src/gui/accelerators.c:2108 msgid "preset" msgstr "Préréglage" -#: ../src/gui/accelerators.c:2272 +#: ../src/gui/accelerators.c:2491 msgid "restore shortcuts" msgstr "Restauration du raccourci" -#: ../src/gui/accelerators.c:2275 +#: ../src/gui/accelerators.c:2494 msgid "_defaults" msgstr "_Défaut" -#: ../src/gui/accelerators.c:2276 +#: ../src/gui/accelerators.c:2495 msgid "_startup" msgstr "_Démarrage" -#: ../src/gui/accelerators.c:2277 +#: ../src/gui/accelerators.c:2496 msgid "_edits" msgstr "_Avant modif" -#: ../src/gui/accelerators.c:2283 +#: ../src/gui/accelerators.c:2503 msgid "" "restore shortcuts from one of these states:\n" " - default\n" @@ -10037,7 +10466,7 @@ " • Comme au démarrage\n" " • Comme avant l’ouverture de ce dialogue\n" -#: ../src/gui/accelerators.c:2289 +#: ../src/gui/accelerators.c:2510 msgid "" "clear all newer shortcuts\n" "(instead of just restoring changed ones)" @@ -10045,22 +10474,17 @@ "Effacer tous les raccourcis récents\n" "au lieu de restaurer ceux qui ont été modifiés." -#: ../src/gui/accelerators.c:2344 ../src/gui/preferences.c:906 +#: ../src/gui/accelerators.c:2567 ../src/gui/preferences.c:905 #: ../src/libs/tools/global_toolbox.c:494 -#: ../src/libs/tools/global_toolbox.c:645 +#: ../src/libs/tools/global_toolbox.c:652 msgid "shortcuts" msgstr "Raccourcis" -#: ../src/gui/accelerators.c:2353 +#: ../src/gui/accelerators.c:2577 msgid "export shortcuts" msgstr "Exporter les raccourcis" -#: ../src/gui/accelerators.c:2356 ../src/gui/accelerators.c:2436 -#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:564 -msgid "_ok" -msgstr "_Ok" - -#: ../src/gui/accelerators.c:2361 +#: ../src/gui/accelerators.c:2586 msgid "" "export all shortcuts to a file\n" "or just for one selected device\n" @@ -10068,27 +10492,27 @@ "Exporter tous les raccourcis dans un fichier\n" "ou seulement pour un périphérique sélectionné.\n" -#: ../src/gui/accelerators.c:2368 ../src/gui/accelerators.c:2448 +#: ../src/gui/accelerators.c:2593 ../src/gui/accelerators.c:2675 msgid "keyboard" msgstr "Clavier" -#: ../src/gui/accelerators.c:2380 +#: ../src/gui/accelerators.c:2605 msgid "device id" msgstr "Id du périphérique" -#: ../src/gui/accelerators.c:2406 +#: ../src/gui/accelerators.c:2631 msgid "select file to export" msgstr "Sélectionne le fichier à exporter" -#: ../src/gui/accelerators.c:2407 ../src/libs/tagging.c:2525 +#: ../src/gui/accelerators.c:2632 ../src/libs/tagging.c:2556 msgid "_export" msgstr "_Exporter" -#: ../src/gui/accelerators.c:2433 +#: ../src/gui/accelerators.c:2659 msgid "import shortcuts" msgstr "Importer des raccourcis" -#: ../src/gui/accelerators.c:2441 +#: ../src/gui/accelerators.c:2668 msgid "" "import all shortcuts from a file\n" "or just for one selected device\n" @@ -10096,31 +10520,31 @@ "Importer tous les raccourcis du fichier,\n" "ou seulement pour un périphérique sélectionné.\n" -#: ../src/gui/accelerators.c:2460 +#: ../src/gui/accelerators.c:2687 msgid "id in file" msgstr "Id dans le fichier" -#: ../src/gui/accelerators.c:2466 +#: ../src/gui/accelerators.c:2693 msgid "id when loaded" msgstr "Id lorsque chargé" -#: ../src/gui/accelerators.c:2470 +#: ../src/gui/accelerators.c:2697 msgid "clear device first" msgstr "Effacer d’abord les raccourcis du périphérique" -#: ../src/gui/accelerators.c:2494 +#: ../src/gui/accelerators.c:2722 msgid "select file to import" msgstr "Sélectionner le fichier à importer" -#: ../src/gui/accelerators.c:2495 ../src/libs/tagging.c:2489 +#: ../src/gui/accelerators.c:2723 ../src/libs/tagging.c:2520 msgid "_import" msgstr "_Importer" -#: ../src/gui/accelerators.c:2568 +#: ../src/gui/accelerators.c:2815 msgid "search shortcuts list" msgstr "Chercher dans la liste des raccourcis" -#: ../src/gui/accelerators.c:2569 +#: ../src/gui/accelerators.c:2817 msgid "" "incrementally search the list of shortcuts\n" "press up or down keys to cycle through matches" @@ -10128,29 +10552,28 @@ "Recherche incrémentale dans la liste des raccourcis,\n" "appuyer les touches haut ou bas pour parcourir la sélection." -#. Setting up the cell renderers -#: ../src/gui/accelerators.c:2583 ../src/views/view.c:1383 +#: ../src/gui/accelerators.c:2837 ../src/views/view.c:1554 msgid "shortcut" msgstr "Raccourci" -#: ../src/gui/accelerators.c:2585 ../src/gui/accelerators.c:2676 -#: ../src/views/view.c:1385 +#: ../src/gui/accelerators.c:2840 ../src/gui/accelerators.c:2942 +#: ../src/views/view.c:1556 msgid "action" msgstr "Action" -#: ../src/gui/accelerators.c:2594 +#: ../src/gui/accelerators.c:2850 msgid "element" msgstr "Élément" -#: ../src/gui/accelerators.c:2601 +#: ../src/gui/accelerators.c:2858 msgid "effect" msgstr "Effets" -#: ../src/gui/accelerators.c:2658 +#: ../src/gui/accelerators.c:2918 msgid "search actions list" msgstr "Chercher dans la liste d’actions" -#: ../src/gui/accelerators.c:2659 +#: ../src/gui/accelerators.c:2920 msgid "" "incrementally search the list of actions\n" "press up or down keys to cycle through matches" @@ -10158,16 +10581,16 @@ "Recherche incrémentale dans la liste des actions,\n" "appuyer les touches haut ou bas pour parcourir la sélection." -#: ../src/gui/accelerators.c:2682 ../src/gui/guides.c:719 -#: ../src/libs/export_metadata.c:192 +#: ../src/gui/accelerators.c:2950 ../src/gui/guides.c:719 +#: ../src/libs/export_metadata.c:179 msgid "type" msgstr "Type" -#: ../src/gui/accelerators.c:2717 +#: ../src/gui/accelerators.c:2988 msgid "enable fallbacks" msgstr "Activer les replis" -#: ../src/gui/accelerators.c:2718 +#: ../src/gui/accelerators.c:2989 msgid "" "enables default meanings for additional buttons, modifiers or moves\n" "when used in combination with a base shortcut" @@ -10176,68 +10599,115 @@ "additionnels,\n" "lorsque utilisé avec un raccourci de base." -#: ../src/gui/accelerators.c:2725 +#: ../src/gui/accelerators.c:2997 msgid "open help page for shortcuts" msgstr "Ouvre la page d'aide pour les raccourcis" # lorsque l’action n’engendre pas de suppression physique, on emploie le terme "enlever" -#: ../src/gui/accelerators.c:2730 +#: ../src/gui/accelerators.c:3002 msgid "restore..." msgstr "Restaurer…" -#: ../src/gui/accelerators.c:2731 +#: ../src/gui/accelerators.c:3003 msgid "restore default shortcuts or previous state" msgstr "Restaurer les raccourcis par défaut ou leur état précédent" -#: ../src/gui/accelerators.c:2735 ../src/libs/styles.c:883 -#: ../src/libs/tagging.c:3251 +#: ../src/gui/accelerators.c:3007 ../src/libs/styles.c:887 +#: ../src/libs/tagging.c:3282 msgid "import..." msgstr "Importer…" -#: ../src/gui/accelerators.c:2736 +#: ../src/gui/accelerators.c:3008 msgid "fully or partially import shortcuts from file" msgstr "Importer tout ou partiellement les raccourcis" -#: ../src/gui/accelerators.c:2740 ../src/libs/styles.c:890 -#: ../src/libs/tagging.c:3254 +#: ../src/gui/accelerators.c:3012 ../src/libs/styles.c:894 +#: ../src/libs/tagging.c:3285 msgid "export..." msgstr "Exporter…" -#: ../src/gui/accelerators.c:2741 +#: ../src/gui/accelerators.c:3013 msgid "fully or partially export shortcuts to file" msgstr "Exporter tout ou partiellement les raccourcis" -#: ../src/gui/accelerators.c:3139 +#: ../src/gui/accelerators.c:3021 +msgid "" +"the recommended way to assign shortcuts to visual elements is the <b>visual " +"shortcut mapping</b> mode.\n" +"this is switched on by toggling the <i>\"keyboard\"</i> button next to " +"preferences in the top panel. in this mode, clicking on a widget or area " +"will open this dialog with the appropriate selection for advanced " +"configuration.\n" +"\n" +"multiple shortcuts can be assigned to the same action. this is especially " +"useful if it has multiple <i>elements</i>, like the module buttons or the " +"colorpickers attached to sliders. however, with <i>fallbacks</i> enabled one " +"can use the same simple shortcuts and change their <i>element</i> or " +"<i>effect</i> by adding mouse clicks.\n" +"\n" +"<i>click <b> three times </b> to dismiss this notice permanently</i>" +msgstr "" +"La méthode recommandée pour assigner un raccourci à un élément visuel est le " +"mode <b>mappage visuel de raccourci</b>.\n" +"Cela est activé en cliquant sur le bouton <i>\"clavier\"</i> à coté des " +"préférences dans le panneau haut. Dans ce mode, cliquer sur un widget ou une " +"zone ouvrira cette fenêtre de dialogue avec la sélection approprié pour la " +"configuration avancée.\n" +"\n" +"Plusieurs raccourcis peuvent être assignés à la même action. Cela est " +"particulièrement utile si il a plusieurs <i>éléments</i>, comme les boutons " +"des modules ou les pipette de sélection de couleur attachées aux réglettes, " +"avec les <i>replis</i> activés il est possible d'utiliser les mêmes " +"raccourcis simples et de changer leur <i>élément</i> ou <i>effet</i> en " +"ajoutant des Clics souris.\n" +"\n" +"<i>Cliquer <b>trois fois</b> pour supprimer définitivement cette " +"notification.</i>" + +#: ../src/gui/accelerators.c:3452 msgid "reinitialising input devices" msgstr "Réinitialise les périphériques d’entrée" -#: ../src/gui/accelerators.c:3342 +# lorsque l’action n’engendre pas de suppression physique, on emploie le terme "enlever" +#: ../src/gui/accelerators.c:3594 +msgid "down move" +msgstr "Mouvement vers le bas" + +#: ../src/gui/accelerators.c:3594 +msgid "flip top/bottom first/last" +msgstr "Intervertir haut/bas premier/dernier" + +#: ../src/gui/accelerators.c:3679 msgid "fallback to move" msgstr "Repli à déplacer" -#: ../src/gui/accelerators.c:3578 +#: ../src/gui/accelerators.c:3921 #, c-format msgid "%s not assigned" msgstr "« %s » n’est pas assigné" -#: ../src/gui/accelerators.c:3751 +#: ../src/gui/accelerators.c:4102 #, c-format msgid "%s assigned to %s" msgstr "« %s » est assigné à « %s »" -#: ../src/gui/gtk.c:173 ../src/views/darkroom.c:4650 +#: ../src/gui/accelerators.c:4321 +msgid "short key press resets stuck keys" +msgstr "Une pression courte réinitialise les touches bloquées" + +#: ../src/gui/gtk.c:175 ../src/views/darkroom.c:3861 msgid "darktable - darkroom preview" msgstr "darktable - prévisualisation en chambre noire" -#: ../src/gui/gtk.c:184 +#: ../src/gui/gtk.c:186 msgid "tooltips off" msgstr "Info-bulles désactivées" -#: ../src/gui/gtk.c:186 +#: ../src/gui/gtk.c:188 msgid "tooltips on" msgstr "Info-bulles activées" -#: ../src/gui/gtk.c:191 +#: ../src/gui/gtk.c:193 msgid "" "tooltip visibility can only be toggled if compositing is enabled in your " "window manager" @@ -10245,184 +10715,217 @@ "La visibilité des info-bulles peut être changée seulement si le gestionnaire " "de fenêtres supporte la composition" -#: ../src/gui/gtk.c:814 +#: ../src/gui/gtk.c:809 msgid "closing darktable..." msgstr "Quitter darktable…" -#: ../src/gui/gtk.c:1135 +#: ../src/gui/gtk.c:1032 +msgid "URL opened in web browser" +msgstr "Page ouverte dans le navigateur" + +#: ../src/gui/gtk.c:1036 +msgid "error while opening URL in web browser" +msgstr "Erreur lors de l’ouverture d'une page dans le navigateur" + +#. View menu +#: ../src/gui/gtk.c:1104 +msgctxt "menu" +msgid "Views" +msgstr "Vues" + +#: ../src/gui/gtk.c:1108 +msgctxt "menu" +msgid "lighttable" +msgstr "Table lumineuse" + +#: ../src/gui/gtk.c:1109 +msgctxt "menu" +msgid "darkroom" +msgstr "Chambre noire" + +#: ../src/gui/gtk.c:1115 +msgctxt "menu" +msgid "slideshow" +msgstr "Diaporama" + +#: ../src/gui/gtk.c:1117 +msgctxt "menu" +msgid "map" +msgstr "Carte" + +#: ../src/gui/gtk.c:1119 +msgctxt "menu" +msgid "print" +msgstr "Impression" + +#: ../src/gui/gtk.c:1121 +msgctxt "menu" +msgid "tethering" +msgstr "Capture" + +#. Help menu +#: ../src/gui/gtk.c:1127 +msgctxt "menu" +msgid "Help" +msgstr "Aide" + +#: ../src/gui/gtk.c:1131 +msgctxt "menu" +msgid "darktable Manual" +msgstr "Manuel darktable" + +#: ../src/gui/gtk.c:1138 +msgctxt "menu" +msgid "darktable Homepage" +msgstr "Page d'accueil de darktable" + +#: ../src/gui/gtk.c:1162 +msgctxt "menu" +msgid "Preferences" +msgstr "Préférences" + +#: ../src/gui/gtk.c:1232 msgid "panels" msgstr "Panneaux" -#. an action that does nothing - used for overriding/removing default shortcuts -#: ../src/gui/gtk.c:1184 -msgid "no-op" -msgstr "Sans action" - -#: ../src/gui/gtk.c:1186 +#: ../src/gui/gtk.c:1264 msgid "switch views" msgstr "Changer de vue/carte" -#: ../src/gui/gtk.c:1187 ../src/views/tethering.c:102 +#: ../src/gui/gtk.c:1265 ../src/views/tethering.c:102 msgid "tethering" msgstr "Capture" -#: ../src/gui/gtk.c:1188 ../src/gui/preferences.c:531 -#: ../src/gui/preferences.c:542 ../src/libs/tools/lighttable.c:66 -#: ../src/views/lighttable.c:91 -msgid "lighttable" -msgstr "Table lumineuse" - -#: ../src/gui/gtk.c:1189 ../src/gui/preferences.c:532 -#: ../src/gui/preferences.c:542 ../src/views/darkroom.c:94 -msgid "darkroom" -msgstr "Chambre noire" - -#: ../src/gui/gtk.c:1190 ../src/views/map.c:197 +#: ../src/gui/gtk.c:1268 ../src/views/map.c:197 msgid "map" msgstr "Carte" -#: ../src/gui/gtk.c:1191 ../src/views/slideshow.c:389 +#: ../src/gui/gtk.c:1269 ../src/views/slideshow.c:390 msgid "slideshow" msgstr "Diaporama" #. Print button -#: ../src/gui/gtk.c:1192 ../src/libs/print_settings.c:2885 +#: ../src/gui/gtk.c:1270 ../src/libs/print_settings.c:2885 msgid "print" msgstr "Impression" #. register ctrl-q to quit: -#: ../src/gui/gtk.c:1198 +#: ../src/gui/gtk.c:1276 msgid "quit" msgstr "Quitter" #. Full-screen accelerator (no ESC handler here to enable quit-slideshow using ESC) -#: ../src/gui/gtk.c:1201 +#: ../src/gui/gtk.c:1279 msgid "fullscreen" msgstr "Plein écran" -#: ../src/gui/gtk.c:1205 +#: ../src/gui/gtk.c:1283 msgid "collapsing controls" msgstr "Contrôles de repli" #. specific top/bottom toggles -#: ../src/gui/gtk.c:1207 +#: ../src/gui/gtk.c:1285 msgid "header" msgstr "Tête de groupe" -#: ../src/gui/gtk.c:1208 +#: ../src/gui/gtk.c:1286 msgid "filmstrip and timeline" msgstr "Bandeau et chronologie" -#: ../src/gui/gtk.c:1209 +#: ../src/gui/gtk.c:1287 msgid "top toolbar" msgstr "Barre d’outil haute" -#: ../src/gui/gtk.c:1210 +#: ../src/gui/gtk.c:1288 msgid "bottom toolbar" msgstr "Barre d’outil basse" -#: ../src/gui/gtk.c:1211 +#: ../src/gui/gtk.c:1289 msgid "all top" msgstr "Haut tous" -#: ../src/gui/gtk.c:1212 +#: ../src/gui/gtk.c:1290 msgid "all bottom" msgstr "Bas tous" -#: ../src/gui/gtk.c:1214 +#: ../src/gui/gtk.c:1292 msgid "toggle tooltip visibility" msgstr "Basculer les info-bulles" -#: ../src/gui/gtk.c:1215 +#: ../src/gui/gtk.c:1293 msgid "reinitialise input devices" msgstr "Réinitialise les périphériques d’entrée" -#: ../src/gui/gtk.c:1253 +#: ../src/gui/gtk.c:1331 msgid "toggle focus-peaking mode" msgstr "Basculer le mode zones nettes" #. toggle focus peaking everywhere -#: ../src/gui/gtk.c:1258 +#: ../src/gui/gtk.c:1336 msgid "toggle focus peaking" msgstr "Basculer les zones nettes" -#: ../src/gui/gtk.c:1594 ../src/gui/gtk.c:3143 ../src/gui/gtk.c:3148 -#: ../src/gui/gtk.c:3153 ../src/gui/gtk.c:3158 +#: ../src/gui/gtk.c:1654 ../src/gui/gtk.c:3189 ../src/gui/gtk.c:3194 +#: ../src/gui/gtk.c:3199 ../src/gui/gtk.c:3204 msgid "tabs" msgstr "Tabs" -#: ../src/gui/gtk.c:2535 -msgid "_yes" -msgstr "_Oui" - -#: ../src/gui/gtk.c:2536 -msgid "_no" -msgstr "_Non" - #. ask the user if darktable.org may be accessed -#: ../src/gui/gtk.c:2647 +#: ../src/gui/gtk.c:2707 msgid "access the online user manual?" msgstr "Accéder au manuel utilisateur en ligne ?" -#: ../src/gui/gtk.c:2648 +#: ../src/gui/gtk.c:2708 #, c-format msgid "do you want to access `%s'?" msgstr "Accéder à « %s » ?" -#: ../src/gui/gtk.c:2717 -msgid "help url opened in web browser" -msgstr "Aide ouverte dans le navigateur" - -#: ../src/gui/gtk.c:2721 -msgid "error while opening help url in web browser" -msgstr "Erreur lors de l’ouverture de l’aide dans le navigateur" - -#: ../src/gui/gtk.c:2732 +#: ../src/gui/gtk.c:2778 msgid "there is no help available for this element" msgstr "Aucune aide disponible pour cet élément" #. font name can only use period as decimal separator #. but printf format strings use comma for some locales, so replace comma with period -#: ../src/gui/gtk.c:2752 +#: ../src/gui/gtk.c:2798 ../src/libs/metadata_view.c:762 #, c-format msgid "%.1f" msgstr "%.1f" -#: ../src/gui/gtk.c:2754 +#: ../src/gui/gtk.c:2800 #, c-format msgid "Sans %s" msgstr "Sans %s" -#: ../src/gui/gtk.c:3048 +#: ../src/gui/gtk.c:3094 msgid "does not contain pages" msgstr "Ne contient pas de pages" -#: ../src/gui/gtk.c:3265 +#: ../src/gui/gtk.c:3313 #, c-format msgid "never show more than %d lines" msgstr "Ne pas montrer plus de %d lignes" -#: ../src/gui/gtkentry.c:172 +#: ../src/gui/gtkentry.c:173 msgid "$(ROLL.NAME) - roll of the input image" msgstr "$(ROLL.NAME) - Nom du dossier" -#: ../src/gui/gtkentry.c:173 +#: ../src/gui/gtkentry.c:174 msgid "$(FILE.FOLDER) - folder containing the input image" msgstr "$(FILE.FOLDER) - Chemin du dossier de l’image d’origine" -#: ../src/gui/gtkentry.c:174 +#: ../src/gui/gtkentry.c:175 msgid "$(FILE.NAME) - basename of the input image" msgstr "$(FILE.NAME) - Nom de base de l’image d’origine" -#: ../src/gui/gtkentry.c:175 +#: ../src/gui/gtkentry.c:176 msgid "$(FILE.EXTENSION) - extension of the input image" msgstr "$(FILE.EXTENSION) - Extension du fichier d’origine" -#: ../src/gui/gtkentry.c:176 +#: ../src/gui/gtkentry.c:177 msgid "$(VERSION) - duplicate version" msgstr "$(VERSION) - Version copie virtuelle" -#: ../src/gui/gtkentry.c:177 +#: ../src/gui/gtkentry.c:178 msgid "" "$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version " "exists" @@ -10430,275 +10933,283 @@ "$(VERSION.IF_MULTI) - Comme $(VERSION) mais égal à chaîne vide si une seule " "version existe" -#: ../src/gui/gtkentry.c:178 +#: ../src/gui/gtkentry.c:179 msgid "$(VERSION.NAME) - version name from metadata" msgstr "$(VERSION.NAME) - Nom de version dans les métadonnées" -#: ../src/gui/gtkentry.c:179 +#: ../src/gui/gtkentry.c:180 msgid "$(JOBCODE) - job code for import" msgstr "$(JOBCODE) - Numéro de tâche pour l'importation" -#: ../src/gui/gtkentry.c:180 +#: ../src/gui/gtkentry.c:181 msgid "$(SEQUENCE) - sequence number" msgstr "$(SEQUENCE) - Nombre séquentiel" -#: ../src/gui/gtkentry.c:181 +#: ../src/gui/gtkentry.c:182 msgid "$(WIDTH.MAX) - maximum image export width" msgstr "$(WIDTH.MAX) - Largeur maximum de l’image exportée" -#: ../src/gui/gtkentry.c:182 +#: ../src/gui/gtkentry.c:183 msgid "$(WIDTH.SENSOR) - image sensor width" msgstr "$(WIDTH.SENSOR) - Largeur de l'image du capteur" -#: ../src/gui/gtkentry.c:183 +#: ../src/gui/gtkentry.c:184 msgid "$(WIDTH.RAW) - RAW image width" msgstr "$(WIDTH.RAW) - Largeur de l’image RAW" -#: ../src/gui/gtkentry.c:184 +#: ../src/gui/gtkentry.c:185 msgid "$(WIDTH.CROP) - image width after crop" msgstr "$(WIDTH.CROP) - Largeur de l’image après recadrage" -#: ../src/gui/gtkentry.c:185 +#: ../src/gui/gtkentry.c:186 msgid "$(WIDTH.EXPORT) - exported image width" msgstr "$(WIDTH.EXPORT) - Largeur de l’image exportée" -#: ../src/gui/gtkentry.c:186 +#: ../src/gui/gtkentry.c:187 msgid "$(HEIGHT.MAX) - maximum image export height" msgstr "$(HEIGHT.MAX) - Hauteur maximum de l’image exportée" -#: ../src/gui/gtkentry.c:187 +#: ../src/gui/gtkentry.c:188 msgid "$(HEIGHT.SENSOR) - image sensor height" msgstr "$(HEIGHT.SENSOR) - Hauteur de l’image du capteur" -#: ../src/gui/gtkentry.c:188 +#: ../src/gui/gtkentry.c:189 msgid "$(HEIGHT.RAW) - RAW image height" msgstr "$(HEIGHT.RAW) - Hauteur de l’image RAW" -#: ../src/gui/gtkentry.c:189 +#: ../src/gui/gtkentry.c:190 msgid "$(HEIGHT.CROP) - image height after crop" msgstr "$(HEIGHT.CROP) - Hauteur de l’image après recadrage" -#: ../src/gui/gtkentry.c:190 +#: ../src/gui/gtkentry.c:191 msgid "$(HEIGHT.EXPORT) - exported image height" msgstr "$(HEIGHT.EXPORT) - Hauteur de l’image exportée" -#: ../src/gui/gtkentry.c:191 +#: ../src/gui/gtkentry.c:192 msgid "$(YEAR) - year" msgstr "$(YEAR) - Année" -#: ../src/gui/gtkentry.c:192 +#: ../src/gui/gtkentry.c:193 msgid "$(YEAR.SHORT) - year without century" msgstr "$(YEAR.SHORT) - Année sans le siècle" -#: ../src/gui/gtkentry.c:193 +#: ../src/gui/gtkentry.c:194 msgid "$(MONTH) - month" msgstr "$(MONTH) - Mois" -#: ../src/gui/gtkentry.c:194 +#: ../src/gui/gtkentry.c:195 msgid "$(MONTH.SHORT) - abbreviated month name according to the current locale" msgstr "$(MONTH.SHORT) - Abréviation du nom du mois" -#: ../src/gui/gtkentry.c:195 +#: ../src/gui/gtkentry.c:196 msgid "$(MONTH.LONG) - full month name according to the current locale" msgstr "$(MONTH.LONG) - Nom du mois" -#: ../src/gui/gtkentry.c:196 +#: ../src/gui/gtkentry.c:197 msgid "$(DAY) - day" msgstr "$(DAY) - Jour" -#: ../src/gui/gtkentry.c:197 +#: ../src/gui/gtkentry.c:198 msgid "$(HOUR) - hour" msgstr "$(HOUR) - Heure" -#: ../src/gui/gtkentry.c:198 +#: ../src/gui/gtkentry.c:199 msgid "$(HOUR.AMPM) - hour, 12-hour clock" msgstr "$(HOUR.AMPM) - Heure au format 12 heures" -#: ../src/gui/gtkentry.c:199 +#: ../src/gui/gtkentry.c:200 msgid "$(MINUTE) - minute" msgstr "$(MINUTE) - Minutes" -#: ../src/gui/gtkentry.c:200 +#: ../src/gui/gtkentry.c:201 msgid "$(SECOND) - second" msgstr "$(SECOND) - Secondes" -#: ../src/gui/gtkentry.c:201 +#: ../src/gui/gtkentry.c:202 msgid "$(MSEC) - millisecond" msgstr "$(MSEC) - Millisecondes" -#: ../src/gui/gtkentry.c:202 +#: ../src/gui/gtkentry.c:203 msgid "$(EXIF.YEAR) - EXIF year" msgstr "$(EXIF.YEAR) - Année EXIF" -#: ../src/gui/gtkentry.c:203 +#: ../src/gui/gtkentry.c:204 msgid "$(EXIF.YEAR.SHORT) - EXIF year without century" msgstr "$(EXIF.YEAR.SHORT) - Année EXIF sans le siècle" -#: ../src/gui/gtkentry.c:204 +#: ../src/gui/gtkentry.c:205 msgid "$(EXIF.MONTH) - EXIF month" msgstr "$(EXIF.MONTH) - Mois EXIF" -#: ../src/gui/gtkentry.c:205 +#: ../src/gui/gtkentry.c:206 msgid "" "$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current " "locale" msgstr "$(EXIF.MONTH.SHORT) - Abréviation du nom du mois EXIF" -#: ../src/gui/gtkentry.c:206 +#: ../src/gui/gtkentry.c:207 msgid "" "$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" msgstr "$(EXIF.MONTH.LONG) - Nom du mois de l’EXIF" -#: ../src/gui/gtkentry.c:207 +#: ../src/gui/gtkentry.c:208 msgid "$(EXIF.DAY) - EXIF day" msgstr "$(EXIF.DAY) - Jour EXIF" -#: ../src/gui/gtkentry.c:208 +#: ../src/gui/gtkentry.c:209 msgid "$(EXIF.HOUR) - EXIF hour" msgstr "$(EXIF.HOUR) - Heure EXIF" -#: ../src/gui/gtkentry.c:209 +#: ../src/gui/gtkentry.c:210 msgid "$(EXIF.HOUR.AMPM) - EXIF hour, 12-hour clock" msgstr "$(EXIF.HOUR.AMPM) - Heure EXIF au format de 12 heures" -#: ../src/gui/gtkentry.c:210 +#: ../src/gui/gtkentry.c:211 msgid "$(EXIF.MINUTE) - EXIF minute" msgstr "$(EXIF.MINUTE) - Minutes EXIF" -#: ../src/gui/gtkentry.c:211 +#: ../src/gui/gtkentry.c:212 msgid "$(EXIF.SECOND) - EXIF second" msgstr "$(EXIF.SECOND) - Secondes EXIF" -#: ../src/gui/gtkentry.c:212 +#: ../src/gui/gtkentry.c:213 msgid "$(EXIF.MSEC) - EXIF millisecond" msgstr "$(EXIF.MSEC) - Millisecondes EXIF" -#: ../src/gui/gtkentry.c:213 +#: ../src/gui/gtkentry.c:214 msgid "$(EXIF.ISO) - ISO value" msgstr "$(EXIF.ISO) - Valeur ISO EXIF" -#: ../src/gui/gtkentry.c:214 +#: ../src/gui/gtkentry.c:215 msgid "$(EXIF.EXPOSURE) - EXIF exposure" msgstr "$(EXIF.EXPOSURE) - Exposition EXIF" -#: ../src/gui/gtkentry.c:215 +#: ../src/gui/gtkentry.c:216 msgid "$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias" msgstr "$(EXIF.EXPOSURE.BIAS) - Compensation d’exposition EXIF" -#: ../src/gui/gtkentry.c:216 +#: ../src/gui/gtkentry.c:217 msgid "$(EXIF.APERTURE) - EXIF aperture" msgstr "$(EXIF.APERTURE) - Ouverture EXIF" -#: ../src/gui/gtkentry.c:217 +#: ../src/gui/gtkentry.c:218 +msgid "$(EXIF.CROP_FACTOR) - EXIF crop factor" +msgstr "$(EXIF.CROP_FACTOR) - Facteur de recadrage EXIF" + +#: ../src/gui/gtkentry.c:219 msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" msgstr "$(EXIF.FOCAL.LENGTH) - Longueur focale EXIF" -#: ../src/gui/gtkentry.c:218 +#: ../src/gui/gtkentry.c:220 +msgid "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent focal length" +msgstr "$(EXIF.FOCAL.LENGTH.EQUIV) - Longueur focale équivalente 35mm EXIF" + +#: ../src/gui/gtkentry.c:221 msgid "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" msgstr "$(EXIF.FOCUS.DISTANCE) - Distance de mise au point EXIF" -#: ../src/gui/gtkentry.c:219 +#: ../src/gui/gtkentry.c:222 msgid "$(EXIF.MAKER) - camera maker" msgstr "$(EXIF.MAKER) - Fabriquant du boîtier EXIF" -#: ../src/gui/gtkentry.c:220 +#: ../src/gui/gtkentry.c:223 msgid "$(EXIF.MODEL) - camera model" msgstr "$(EXIF.MODEL) - Modèle de boîtier EXIF" -#: ../src/gui/gtkentry.c:221 +#: ../src/gui/gtkentry.c:224 msgid "$(EXIF.LENS) - lens" msgstr "$(EXIF.LENS) - Objectif EXIF" -#: ../src/gui/gtkentry.c:222 +#: ../src/gui/gtkentry.c:225 msgid "$(LONGITUDE) - longitude" msgstr "$(LONGITUDE) - Longitude" -#: ../src/gui/gtkentry.c:223 +#: ../src/gui/gtkentry.c:226 msgid "$(LATITUDE) - latitude" msgstr "$(LATITUDE) - Latitude" -#: ../src/gui/gtkentry.c:224 +#: ../src/gui/gtkentry.c:227 msgid "$(ELEVATION) - elevation" msgstr "$(ELEVATION) - Élévation" -#: ../src/gui/gtkentry.c:225 +#: ../src/gui/gtkentry.c:228 msgid "$(STARS) - star rating as number (-1 for rejected)" msgstr "$(STARS) - Notation avec un nombre (–1 pour rejeter)" -#: ../src/gui/gtkentry.c:226 +#: ../src/gui/gtkentry.c:229 msgid "$(RATING.ICONS) - star/reject rating in icon form" msgstr "$(RATING.ICONS) - Notation étoile ou rejeter en icônes" -#: ../src/gui/gtkentry.c:227 +#: ../src/gui/gtkentry.c:230 msgid "$(LABELS) - color labels as text" msgstr "$(LABELS) - Labels de couleur en noms" -#: ../src/gui/gtkentry.c:228 +#: ../src/gui/gtkentry.c:231 msgid "$(LABELS.ICONS) - color labels as icons" msgstr "$(LABELS.ICONS) - Labels de couleur en icônes" -#: ../src/gui/gtkentry.c:229 +#: ../src/gui/gtkentry.c:232 msgid "$(ID) - image ID" msgstr "$(ID) - Numéro d’image" -#: ../src/gui/gtkentry.c:230 +#: ../src/gui/gtkentry.c:233 msgid "$(TITLE) - title from metadata" msgstr "$(TITLE) - Titre des métadonnées" -#: ../src/gui/gtkentry.c:231 +#: ../src/gui/gtkentry.c:234 msgid "$(DESCRIPTION) - description from metadata" msgstr "$(DESCRIPTION) - Description des métadonnées" -#: ../src/gui/gtkentry.c:232 +#: ../src/gui/gtkentry.c:235 msgid "$(CREATOR) - creator from metadata" msgstr "$(CREATOR) - Auteur des métadonnées" -#: ../src/gui/gtkentry.c:233 +#: ../src/gui/gtkentry.c:236 msgid "$(PUBLISHER) - publisher from metadata" msgstr "$(PUBLISHER) - Diffuseur des métadonnées" -#: ../src/gui/gtkentry.c:234 +#: ../src/gui/gtkentry.c:237 msgid "$(RIGHTS) - rights from metadata" msgstr "$(RIGHTS) - Droits des métadonnées" -#: ../src/gui/gtkentry.c:235 +#: ../src/gui/gtkentry.c:238 msgid "$(USERNAME) - login name" msgstr "$(USERNAME) - Nom d’utilisateur" -#: ../src/gui/gtkentry.c:236 +#: ../src/gui/gtkentry.c:239 msgid "$(FOLDER.PICTURES) - pictures folder" msgstr "$(FOLDER.PICTURES) - Répertoire des images" -#: ../src/gui/gtkentry.c:237 +#: ../src/gui/gtkentry.c:240 msgid "$(FOLDER.HOME) - home folder" msgstr "$(FOLDER.HOME) - Dossier personnel" -#: ../src/gui/gtkentry.c:238 +#: ../src/gui/gtkentry.c:241 msgid "$(FOLDER.DESKTOP) - desktop folder" msgstr "$(FOLDER.DESKTOP) - Dossier du bureau" -#: ../src/gui/gtkentry.c:239 +#: ../src/gui/gtkentry.c:242 msgid "$(OPENCL.ACTIVATED) - whether OpenCL is activated" msgstr "$(OPENCL.ACTIVATED) - Activation d’OpenCL" -#: ../src/gui/gtkentry.c:240 +#: ../src/gui/gtkentry.c:243 msgid "$(CATEGORY0(category)) - subtag of level 0 in hierarchical tags" msgstr "" "$(CATEGORY(category)) - Sous-mot-clé de niveau 0 des mots-clés hiérarchiques" -#: ../src/gui/gtkentry.c:241 +#: ../src/gui/gtkentry.c:244 msgid "$(TAGS) - tags as set in metadata settings" msgstr "$(TAGS) - mots-clés des métadonnées" -#: ../src/gui/gtkentry.c:242 +#: ../src/gui/gtkentry.c:245 msgid "$(DARKTABLE.NAME) - darktable name" msgstr "$(DARKTABLE.NAME) - Nom darktable" -#: ../src/gui/gtkentry.c:243 +#: ../src/gui/gtkentry.c:246 msgid "$(DARKTABLE.VERSION) - current darktable version" msgstr "$(DARKTABLE.VERSION) - Version de darktable" -#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:255 +#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:248 msgid "grid" msgstr "Grille" @@ -10768,11 +11279,11 @@ msgstr "Paramètres globaux des guides" #: ../src/gui/guides.c:710 ../src/gui/guides.c:719 ../src/gui/guides.c:727 -#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2648 +#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2494 msgid "guide lines" msgstr "Lignes-guide" -#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2092 +#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2145 msgid "flip" msgstr "Symétrie en miroir" @@ -10788,8 +11299,8 @@ msgid "vertically" msgstr "Verticale" -#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6285 ../src/iop/clipping.c:2096 -#: ../src/iop/colorbalance.c:1917 +#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6232 ../src/iop/clipping.c:2149 +#: ../src/iop/colorbalance.c:1892 msgid "both" msgstr "Les deux" @@ -10836,26 +11347,26 @@ msgid "select parts to paste" msgstr "Sélectionner les modules à coller" -#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:517 +#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:524 msgid "select _all" msgstr "_Tout sélectionner" -#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:518 +#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:525 msgid "select _none" msgstr "_Rien sélectionner" -#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:593 -#: ../src/gui/styles_dialog.c:615 +#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:605 +#: ../src/gui/styles_dialog.c:627 msgid "include" msgstr "Inclure" -#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:669 -#: ../src/gui/styles_dialog.c:675 +#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:681 +#: ../src/gui/styles_dialog.c:687 msgid "item" msgstr "Élément" -#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:682 -#: ../src/gui/styles_dialog.c:691 +#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:694 +#: ../src/gui/styles_dialog.c:703 msgid "mask" msgstr "Masque" @@ -10910,11 +11421,11 @@ msgid "interface language" msgstr "Langue de l’interface" -#: ../src/gui/preferences.c:289 +#: ../src/gui/preferences.c:290 msgid "double-click to reset to the system language" msgstr "Double clic pour réinitialiser à la langue du système" -#: ../src/gui/preferences.c:291 +#: ../src/gui/preferences.c:292 msgid "" "set the language of the user interface. the system default is marked with an " "* (needs a restart)" @@ -10922,27 +11433,27 @@ "Règle la langue de l’interface utilisateur (nécessite un redémarrage).\n" "La langue système par défaut est marquée d’une *." -#: ../src/gui/preferences.c:300 +#: ../src/gui/preferences.c:301 msgid "theme" msgstr "Thème" -#: ../src/gui/preferences.c:328 +#: ../src/gui/preferences.c:331 msgid "set the theme for the user interface" msgstr "Définit le thème de l’interface utilisateur" -#: ../src/gui/preferences.c:341 ../src/gui/preferences.c:348 +#: ../src/gui/preferences.c:344 ../src/gui/preferences.c:351 msgid "use system font size" msgstr "Utilisation de la police système" -#: ../src/gui/preferences.c:357 ../src/gui/preferences.c:364 +#: ../src/gui/preferences.c:360 ../src/gui/preferences.c:367 msgid "font size in points" msgstr "Taille de la police en points" -#: ../src/gui/preferences.c:369 +#: ../src/gui/preferences.c:372 msgid "GUI controls and text DPI" msgstr "Contrôles de l’IU et DPI du texte" -#: ../src/gui/preferences.c:376 +#: ../src/gui/preferences.c:379 msgid "" "adjust the global GUI resolution to rescale controls, buttons, labels, etc.\n" "increase for a magnified GUI, decrease to fit more content in window.\n" @@ -10959,81 +11470,65 @@ "qui est de 96 DPI la plupart du temps." #. checkbox to allow user to modify theme with user.css -#: ../src/gui/preferences.c:385 +#: ../src/gui/preferences.c:388 msgid "modify selected theme with CSS tweaks below" msgstr "Modifier le thème via les ajustements CSS ci-dessous" -#: ../src/gui/preferences.c:393 +#: ../src/gui/preferences.c:396 msgid "modify theme with CSS keyed below (saved to user.css)" msgstr "" "Modifie le thème avec le code CSS entré ci-dessous,\n" "(sauvegardé dans user.css)" # espaces en début et fin pour des marges dans le bouton -#: ../src/gui/preferences.c:415 +#: ../src/gui/preferences.c:418 msgctxt "usercss" msgid "save CSS and apply" msgstr " Sauvegarder et appliquer " -#: ../src/gui/preferences.c:420 +#: ../src/gui/preferences.c:423 msgid "click to save and apply the CSS tweaks entered in this editor" msgstr "" "Sauvegarder et appliquer les modifications CSS entrées dans cet éditeur" -#: ../src/gui/preferences.c:422 +#: ../src/gui/preferences.c:425 msgid "open help page for CSS tweaks" msgstr "Ouvre la page d'aide pour les ajustements CSS" #. load default text with some pointers -#: ../src/gui/preferences.c:443 +#: ../src/gui/preferences.c:446 msgid "ERROR Loading user.css" msgstr "Erreur lors du chargement de user.css" #. load default text -#: ../src/gui/preferences.c:452 +#: ../src/gui/preferences.c:455 msgid "Enter CSS theme tweaks here" msgstr "Entrer ici les modifications CSS du thème" -#: ../src/gui/preferences.c:488 +#: ../src/gui/preferences.c:491 msgid "darktable preferences" msgstr "Préférences" -#: ../src/gui/preferences.c:533 -msgid "processing" -msgstr "Traitement" - -#: ../src/gui/preferences.c:534 -msgid "security" -msgstr "Sécurité" - -#: ../src/gui/preferences.c:535 -msgid "storage" -msgstr "Stockage" - -#: ../src/gui/preferences.c:536 -msgid "miscellaneous" -msgstr "Divers" - -#: ../src/gui/preferences.c:561 +#: ../src/gui/preferences.c:559 msgid "darktable needs to be restarted for settings to take effect" msgstr "darktable doit être redémarré pour prendre en compte les changements" #. exif -#: ../src/gui/preferences.c:820 ../src/gui/presets.c:644 -#: ../src/libs/metadata_view.c:137 +#: ../src/gui/preferences.c:818 ../src/gui/presets.c:647 +#: ../src/libs/metadata_view.c:139 msgid "model" msgstr "Modèle" -#: ../src/gui/preferences.c:824 ../src/gui/presets.c:652 -#: ../src/libs/metadata_view.c:138 +#: ../src/gui/preferences.c:822 ../src/gui/presets.c:655 +#: ../src/libs/metadata_view.c:140 msgid "maker" msgstr "Fabricant" -#: ../src/gui/preferences.c:861 +#: ../src/gui/preferences.c:859 msgid "search presets list" msgstr "Chercher dans la liste des raccourcis" -#: ../src/gui/preferences.c:862 +#: ../src/gui/preferences.c:860 msgid "" "incrementally search the list of presets\n" "press up or down keys to cycle through matches" @@ -11041,70 +11536,70 @@ "Recherche incrémentale dans la liste des raccourcis.\n" "Appuyer les touches Haut ou Bas pour parcourir la sélection." -#: ../src/gui/preferences.c:868 +#: ../src/gui/preferences.c:866 msgctxt "preferences" msgid "import..." msgstr "Importer" -#: ../src/gui/preferences.c:872 +#: ../src/gui/preferences.c:870 msgctxt "preferences" msgid "export..." msgstr "Exporter" -#: ../src/gui/preferences.c:1031 +#: ../src/gui/preferences.c:1030 #, c-format msgid "failed to import preset %s" msgstr "Échec d’importation du préréglage « %s »" -#: ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1041 msgid "select preset(s) to import" msgstr "Sélectionne le(s) préréglage(s) à importer" -#: ../src/gui/preferences.c:1043 ../src/libs/collect.c:408 -#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:929 -#: ../src/libs/import.c:1506 ../src/libs/import.c:1610 ../src/libs/styles.c:527 +#: ../src/gui/preferences.c:1042 ../src/libs/collect.c:425 +#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:930 +#: ../src/libs/import.c:1515 ../src/libs/import.c:1619 ../src/libs/styles.c:529 msgid "_open" msgstr "_Ouvrir" -#: ../src/gui/preferences.c:1052 +#: ../src/gui/preferences.c:1051 msgid "darktable preset files" msgstr "Fichiers de préréglage" -#: ../src/gui/preferences.c:1057 ../src/iop/lut3d.c:1577 -#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:945 -#: ../src/libs/styles.c:541 +#: ../src/gui/preferences.c:1056 ../src/iop/lut3d.c:1591 +#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:946 +#: ../src/libs/styles.c:543 msgid "all files" msgstr "Tous les fichiers" -#: ../src/gui/presets.c:59 +#: ../src/gui/presets.c:61 msgid "non-raw" msgstr "Non RAW" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:332 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:336 msgid "raw" msgstr "RAW" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:333 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:337 msgid "HDR" msgstr "HDR" -#: ../src/gui/presets.c:59 ../src/iop/monochrome.c:77 ../src/libs/image.c:608 -#: ../src/libs/metadata_view.c:339 +#: ../src/gui/presets.c:61 ../src/iop/monochrome.c:77 ../src/libs/image.c:679 +#: ../src/libs/metadata_view.c:343 msgid "monochrome" msgstr "Monochrome" -#: ../src/gui/presets.c:151 +#: ../src/gui/presets.c:153 #, c-format msgid "preset `%s' is write-protected, can't delete!" msgstr "Le préréglage « %s » est protégé et ne peut être supprimé" -#: ../src/gui/presets.c:157 ../src/gui/presets.c:461 ../src/libs/lib.c:238 -#: ../src/libs/modulegroups.c:3701 +#: ../src/gui/presets.c:159 ../src/gui/presets.c:463 ../src/libs/lib.c:238 +#: ../src/libs/modulegroups.c:3703 msgid "delete preset?" msgstr "Supprimer ce préréglage ?" -#: ../src/gui/presets.c:158 ../src/gui/presets.c:462 ../src/libs/lib.c:239 -#: ../src/libs/modulegroups.c:3702 +#: ../src/gui/presets.c:160 ../src/gui/presets.c:464 ../src/libs/lib.c:239 +#: ../src/libs/modulegroups.c:3704 #, c-format msgid "do you really want to delete the preset `%s'?" msgstr "Réellement supprimer le préréglage « %s » ?" @@ -11115,25 +11610,25 @@ #. clang-format on #. create a shortcut for the new entry #. then show edit dialog -#: ../src/gui/presets.c:200 ../src/gui/presets.c:1035 ../src/gui/presets.c:1038 -#: ../src/gui/presets.c:1041 ../src/libs/lib.c:188 ../src/libs/lib.c:205 +#: ../src/gui/presets.c:202 ../src/gui/presets.c:1022 ../src/gui/presets.c:1025 +#: ../src/gui/presets.c:1028 ../src/libs/lib.c:188 ../src/libs/lib.c:205 #: ../src/libs/lib.c:213 ../src/libs/lib.c:216 msgid "new preset" msgstr "Nouveau préréglage" -#: ../src/gui/presets.c:207 +#: ../src/gui/presets.c:209 msgid "please give preset a name" msgstr "Merci de donner un nom au préréglage" -#: ../src/gui/presets.c:212 +#: ../src/gui/presets.c:214 msgid "unnamed preset" msgstr "Préréglage sans nom" -#: ../src/gui/presets.c:241 +#: ../src/gui/presets.c:243 msgid "overwrite preset?" msgstr "Remplacer ce préréglage ?" -#: ../src/gui/presets.c:242 +#: ../src/gui/presets.c:244 #, c-format msgid "" "preset `%s' already exists.\n" @@ -11142,38 +11637,43 @@ "Le préréglage « %s » existe déjà.\n" "Le remplacer ?" -#: ../src/gui/presets.c:420 ../src/imageio/storage/disk.c:123 -#: ../src/imageio/storage/gallery.c:110 ../src/imageio/storage/latex.c:109 +#: ../src/gui/presets.c:422 ../src/imageio/storage/disk.c:198 +#: ../src/imageio/storage/gallery.c:150 ../src/imageio/storage/latex.c:146 msgid "_select as output destination" msgstr "_Sélectionner comme destination de sortie" -#: ../src/gui/presets.c:429 +#: ../src/gui/presets.c:431 #, c-format msgid "preset %s was successfully exported" msgstr "Le préréglage « %s » a été exporté" -#: ../src/gui/presets.c:557 +#: ../src/gui/presets.c:559 #, c-format msgid "edit `%s' for module `%s'" msgstr "Éditer « %s » pour le module « %s »" -#: ../src/gui/presets.c:561 +#: ../src/gui/presets.c:563 msgid "_export..." msgstr "_Exporter…" -#: ../src/gui/presets.c:585 +#: ../src/gui/presets.c:564 ../src/libs/tagging.c:1489 +#: ../src/libs/tagging.c:1580 +msgid "_delete" +msgstr "_Supprimer" + +#: ../src/gui/presets.c:588 msgid "name of the preset" msgstr "Nom du préréglage" -#: ../src/gui/presets.c:594 +#: ../src/gui/presets.c:597 msgid "description or further information" msgstr "Description ou informations complémentaires" -#: ../src/gui/presets.c:598 +#: ../src/gui/presets.c:601 msgid "reset all module parameters to their default values" msgstr "Réinitialiser les paramètres des modules à leurs valeurs par défaut" -#: ../src/gui/presets.c:601 +#: ../src/gui/presets.c:604 msgid "" "the parameters will be reset to their default values, which may be " "automatically set based on image metadata" @@ -11181,15 +11681,15 @@ "Les paramètres des modules seront réinitialisés à leurs valeurs par défaut,\n" "qui peuvent être basées sur les métadonnées de l’image." -#: ../src/gui/presets.c:607 +#: ../src/gui/presets.c:610 msgid "auto apply this preset to matching images" msgstr "Appliquer automatiquement ce préréglage aux images correspondantes" -#: ../src/gui/presets.c:611 +#: ../src/gui/presets.c:614 msgid "only show this preset for matching images" msgstr "N’afficher ce préréglage qu’aux images correspondantes" -#: ../src/gui/presets.c:613 +#: ../src/gui/presets.c:616 msgid "" "be very careful with this option. this might be the last time you see your " "preset." @@ -11197,26 +11697,26 @@ "Être vigilant avec cette option, qui pourrait supprimer définitivement le " "préréglage." -#: ../src/gui/presets.c:643 +#: ../src/gui/presets.c:646 #, no-c-format msgid "string to match model (use % as wildcard)" msgstr "Nom du modèle (utiliser « % » comme joker)" -#: ../src/gui/presets.c:651 +#: ../src/gui/presets.c:654 #, no-c-format msgid "string to match maker (use % as wildcard)" msgstr "Nom du fabricant (utiliser « % » comme joker)" -#: ../src/gui/presets.c:659 +#: ../src/gui/presets.c:662 #, no-c-format msgid "string to match lens (use % as wildcard)" msgstr "Nom de l’objectif (utiliser « % » comme joker)" -#: ../src/gui/presets.c:669 +#: ../src/gui/presets.c:672 msgid "minimum ISO value" msgstr "Valeur d’ISO minimale" -#: ../src/gui/presets.c:675 +#: ../src/gui/presets.c:678 msgid "" "maximum ISO value\n" "if left blank, it is equivalent to no upper limit" @@ -11224,71 +11724,71 @@ "valeur ISO maximal\n" "laisser vide pour sans limite haute" -#: ../src/gui/presets.c:688 +#: ../src/gui/presets.c:691 msgid "minimum exposure time" msgstr "Temps d’exposition minimum" -#: ../src/gui/presets.c:689 +#: ../src/gui/presets.c:692 msgid "maximum exposure time" msgstr "Temps d’exposition maximum" -#: ../src/gui/presets.c:705 +#: ../src/gui/presets.c:708 msgid "minimum aperture value" msgstr "Valeur d’ouverture minimale" -#: ../src/gui/presets.c:706 +#: ../src/gui/presets.c:709 msgid "maximum aperture value" msgstr "Valeur d’ouverture maximale" -#: ../src/gui/presets.c:724 +#: ../src/gui/presets.c:727 msgid "minimum focal length" msgstr "Longueur focale minimale" -#: ../src/gui/presets.c:725 +#: ../src/gui/presets.c:728 msgid "maximum focal length" msgstr "Longueur focale maximale" #. raw/hdr/ldr/mono/color -#: ../src/gui/presets.c:733 ../src/imageio/format/j2k.c:650 +#: ../src/gui/presets.c:736 msgid "format" msgstr "Format" -#: ../src/gui/presets.c:738 +#: ../src/gui/presets.c:741 msgid "select image types you want this preset to be available for" msgstr "" "Sélectionner les types d’images pour lesquels ce préréglage doit être proposé" -#: ../src/gui/presets.c:751 ../src/libs/filtering.c:1201 +#: ../src/gui/presets.c:754 ../src/libs/filtering.c:1263 msgid "and" msgstr "et" -#: ../src/gui/presets.c:795 ../src/gui/presets.c:847 +#: ../src/gui/presets.c:798 ../src/gui/presets.c:850 msgid "∞" msgstr "∞" -#: ../src/gui/presets.c:979 +#: ../src/gui/presets.c:966 #, c-format msgid "preset `%s' is write-protected! can't edit it!" msgstr "Le préréglage « %s » est protégé et ne peut être édité" -#: ../src/gui/presets.c:1003 ../src/libs/lib.c:158 +#: ../src/gui/presets.c:990 ../src/libs/lib.c:158 msgid "update preset?" msgstr "Mettre à jour le préréglage ?" -#: ../src/gui/presets.c:1004 ../src/libs/lib.c:159 +#: ../src/gui/presets.c:991 ../src/libs/lib.c:159 #, c-format msgid "do you really want to update the preset `%s'?" msgstr "Réellement mettre à jour le préréglage « %s » ?" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(first)" msgstr "(premier)" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(last)" msgstr "(dernier)" -#: ../src/gui/presets.c:1165 +#: ../src/gui/presets.c:1152 #, c-format msgid "" "preset %s\n" @@ -11297,63 +11797,63 @@ "Préréglage « %s »\n" "%s" -#: ../src/gui/presets.c:1166 +#: ../src/gui/presets.c:1153 msgid "no presets" msgstr "Pas de préréglage" -#: ../src/gui/presets.c:1199 ../src/iop/basecurve.c:528 -#: ../src/iop/basecurve.c:532 ../src/iop/basecurve.c:535 +#: ../src/gui/presets.c:1188 ../src/iop/basecurve.c:575 +#: ../src/iop/basecurve.c:579 ../src/iop/basecurve.c:582 msgid "display-referred default" msgstr "Relatif à l’affichage" -#: ../src/gui/presets.c:1201 ../src/iop/channelmixerrgb.c:332 -#: ../src/iop/channelmixerrgb.c:336 ../src/iop/channelmixerrgb.c:339 -#: ../src/iop/exposure.c:297 ../src/iop/exposure.c:301 -#: ../src/iop/exposure.c:304 ../src/iop/filmicrgb.c:3248 -#: ../src/iop/filmicrgb.c:3252 ../src/iop/filmicrgb.c:3255 -#: ../src/iop/sigmoid.c:134 ../src/iop/sigmoid.c:138 ../src/iop/sigmoid.c:141 +#: ../src/gui/presets.c:1190 ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:400 ../src/iop/channelmixerrgb.c:403 +#: ../src/iop/exposure.c:319 ../src/iop/exposure.c:323 +#: ../src/iop/exposure.c:326 ../src/iop/filmicrgb.c:3311 +#: ../src/iop/filmicrgb.c:3315 ../src/iop/filmicrgb.c:3318 +#: ../src/iop/sigmoid.c:240 ../src/iop/sigmoid.c:243 ../src/iop/sigmoid.c:245 msgid "scene-referred default" msgstr "Défaut pour « relatif à la scène »" -#: ../src/gui/presets.c:1393 ../src/libs/modulegroups.c:3781 -#: ../src/libs/modulegroups.c:3790 +#: ../src/gui/presets.c:1394 ../src/libs/modulegroups.c:3783 +#: ../src/libs/modulegroups.c:3792 msgid "manage module layouts" msgstr "Gérer les dispositions de modules" -#: ../src/gui/presets.c:1402 +#: ../src/gui/presets.c:1403 msgid "manage quick presets" msgstr "Gérer les préréglages" -#: ../src/gui/presets.c:1586 +#: ../src/gui/presets.c:1587 msgid "manage quick presets list..." msgstr "Gérer la liste des préréglages…" -#: ../src/gui/presets.c:1727 +#: ../src/gui/presets.c:1728 msgid "(default)" msgstr "(défaut)" -#: ../src/gui/presets.c:1754 +#: ../src/gui/presets.c:1755 msgid "disabled: wrong module version" msgstr "Désactivé, la version du module n’est pas cohérente" -#: ../src/gui/presets.c:1776 ../src/libs/lib.c:551 +#: ../src/gui/presets.c:1777 ../src/libs/lib.c:551 msgid "edit this preset.." msgstr "Modifier ce préréglage" -#: ../src/gui/presets.c:1781 ../src/libs/lib.c:555 +#: ../src/gui/presets.c:1782 ../src/libs/lib.c:555 msgid "delete this preset" msgstr "Supprimer ce préréglage" -#: ../src/gui/presets.c:1788 ../src/libs/lib.c:563 +#: ../src/gui/presets.c:1789 ../src/libs/lib.c:563 msgid "store new preset.." msgstr "Nouveau préréglage" -#: ../src/gui/presets.c:1796 ../src/libs/lib.c:576 +#: ../src/gui/presets.c:1797 ../src/libs/lib.c:576 msgid "update preset" msgstr "Mettre à jour le préréglage" #: ../src/gui/styles_dialog.c:221 ../src/libs/styles.c:437 -#: ../src/libs/styles.c:620 +#: ../src/libs/styles.c:622 msgid "overwrite style?" msgstr "Remplacer le style ?" @@ -11379,41 +11879,41 @@ msgid "style %s was successfully saved" msgstr "Le style « %s » a été sauvegardé" -#: ../src/gui/styles_dialog.c:505 +#: ../src/gui/styles_dialog.c:512 msgid "edit style" msgstr "Modifier le style" # "duplicate" traduit par "cloner" avec une bulle d'explication utilisant le terme de "copie virtuelle", dans le sens que l’image n'est pas physiquement dupliquée -#: ../src/gui/styles_dialog.c:506 +#: ../src/gui/styles_dialog.c:513 msgid "duplicate style" msgstr "Cloner le style" -#: ../src/gui/styles_dialog.c:507 +#: ../src/gui/styles_dialog.c:514 msgid "creates a duplicate of the style before applying changes" msgstr "Duplique le style avant d’appliquer les changements" -#: ../src/gui/styles_dialog.c:511 +#: ../src/gui/styles_dialog.c:518 msgid "create new style" msgstr "Nouveau style" -#: ../src/gui/styles_dialog.c:549 +#: ../src/gui/styles_dialog.c:557 msgid "enter a name for the new style" msgstr "Entrer un nom pour le style" -#: ../src/gui/styles_dialog.c:554 +#: ../src/gui/styles_dialog.c:565 msgid "enter a description for the new style, this description is searchable" msgstr "Entrer une description pour le nouveau style, qui peut être recherchée" -#: ../src/gui/styles_dialog.c:593 +#: ../src/gui/styles_dialog.c:605 msgid "keep" msgstr "Garder" -#: ../src/gui/styles_dialog.c:820 +#: ../src/gui/styles_dialog.c:832 msgid "can't create style out of unaltered image" msgstr "Impossible de créer un style depuis une image non développée" # Il n'y a plus de préférence du nombre de theads -#: ../src/imageio/imageio.c:804 +#: ../src/imageio/imageio.c:816 #, c-format msgid "" "failed to allocate memory for %s, please lower the threads used for export " @@ -11422,96 +11922,121 @@ "Échec de l’allocation de mémoire pour « %s », merci de diminuer le nombre de " "fils utilisés pour l’exportation ou d’acheter de la mémoire." -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "thumbnail export" msgstr "L’aperçu" -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "export" msgstr "L’image" -#: ../src/imageio/imageio.c:819 +#: ../src/imageio/imageio.c:831 #, c-format msgid "cannot find the style '%s' to apply during export." msgstr "" "Impossible de trouver le style « %s » à appliquer pendant l’exportation" -#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:536 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/imageio_libraw.c:295 +msgid "" +"<span foreground='red'><b>WARNING</b></span>: camera is not fully supported!" +msgstr "" +"<span foreground='red'><b>ATTENTION</b></span> : boîtier non complètement " +"supporté" + +#: ../src/imageio/imageio_libraw.c:297 +#, c-format +msgid "" +"colors for `%s' could be misrepresented,\n" +"and edits might not be compatible with future versions." +msgstr "" +"Les couleurs pour « %s » pourraient ne pas être correctement représentées,\n" +"et le développement pas compatible avec les versions ultérieures." + +#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:641 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "8 bit" msgstr "8 bits" -#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:567 msgid "10 bit" msgstr "10 bits" -#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:567 msgid "12 bit" msgstr "12 bits" -#: ../src/imageio/format/avif.c:431 +#: ../src/imageio/format/avif.c:110 ../src/imageio/format/webp.c:416 +msgid "lossless" +msgstr "Sans perte" + +#: ../src/imageio/format/avif.c:112 ../src/imageio/format/webp.c:416 +msgid "lossy" +msgstr "Avec perte" + +#: ../src/imageio/format/avif.c:463 msgid "invalid AVIF bit depth!" msgstr "Nombre de bits AVIF invalide" -#: ../src/imageio/format/avif.c:694 -msgid "AVIF" -msgstr "AVIF" - #. Bit depth combo box -#: ../src/imageio/format/avif.c:766 ../src/imageio/format/exr.cc:565 -#: ../src/imageio/format/jxl.c:555 ../src/imageio/format/pdf.c:661 -#: ../src/imageio/format/png.c:534 ../src/imageio/format/tiff.c:843 +#: ../src/imageio/format/avif.c:800 ../src/imageio/format/exr.cc:601 +#: ../src/imageio/format/jxl.c:566 ../src/imageio/format/pdf.c:661 +#: ../src/imageio/format/png.c:639 ../src/imageio/format/tiff.c:900 #: ../src/imageio/format/xcf.c:354 msgid "bit depth" msgstr "Bits" # en anglais "information" peut être un pluriel implicite, comme ici probablement -#: ../src/imageio/format/avif.c:779 +#: ../src/imageio/format/avif.c:813 msgid "color information stored in an image, higher is better" msgstr "" "Informations de couleur stockées dans l’image,\n" "mieux lorsque élevé" -#: ../src/imageio/format/avif.c:787 +#. +#. * Color mode combo box +#. +#. shortfile option combo box +#: ../src/imageio/format/avif.c:820 ../src/imageio/format/tiff.c:944 +msgid "B&W as grayscale" +msgstr "N&B en échelle de gris" + +#: ../src/imageio/format/avif.c:821 ../src/imageio/format/tiff.c:945 msgid "saving as grayscale will reduce the size for black & white images" msgstr "" "Enregistrer en échelle de gris réduira la taille des images noir & blanc" -#: ../src/imageio/format/avif.c:789 -msgid "RGB colors" -msgstr "Couleurs RVB" - -#: ../src/imageio/format/avif.c:789 -msgid "grayscale" -msgstr "Échelle de gris" - #. #. * Tiling combo box #. -#: ../src/imageio/format/avif.c:799 +#: ../src/imageio/format/avif.c:832 msgid "tiling" msgstr "Tuilage" -#: ../src/imageio/format/avif.c:800 +#: ../src/imageio/format/avif.c:833 msgid "" "tile an image into segments.\n" "\n" -"makes encoding faster. the impact on quality reduction is negligible, but " -"increases the file size." +"makes encoding faster, but increases the file size. the loss of image " +"quality is negligible." msgstr "" "Tuilage de l’image en segments.\n" "\n" -"Permet un encode plus rapide. L’impact sur la qualité est négligeable mais " -"accroît la taille du fichier." +"Permet un encode plus rapide, mais accroît la taille du fichier. L’impact " +"sur la qualité est négligeable." -#: ../src/imageio/format/avif.c:817 ../src/imageio/format/webp.c:383 -msgid "compression type" -msgstr "Type de compression" +#. compression +#. Compression method combo box +#: ../src/imageio/format/avif.c:850 ../src/imageio/format/exr.cc:611 +#: ../src/imageio/format/pdf.c:676 ../src/imageio/format/png.c:653 +#: ../src/imageio/format/tiff.c:923 ../src/imageio/format/webp.c:414 +#: ../src/libs/masks.c:111 +msgid "compression" +msgstr "Dégradé" -#: ../src/imageio/format/avif.c:825 +#: ../src/imageio/format/avif.c:858 msgid "the compression for the image" msgstr "Compression de l’images" @@ -11520,32 +12045,30 @@ #. step #. default #. digits -#: ../src/imageio/format/avif.c:842 ../src/imageio/format/j2k.c:661 -#: ../src/imageio/format/jpeg.c:587 ../src/imageio/format/jxl.c:579 -#: ../src/imageio/format/webp.c:394 ../src/libs/camera.c:564 +#: ../src/imageio/format/avif.c:878 ../src/imageio/format/j2k.c:679 +#: ../src/imageio/format/jpeg.c:584 ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/webp.c:425 ../src/libs/camera.c:564 msgid "quality" msgstr "Qualité" -#: ../src/imageio/format/avif.c:847 +#: ../src/imageio/format/avif.c:881 msgid "" "the quality of an image, less quality means fewer details.\n" "\n" -"the following applies only to lossy setting\n" -"\n" -"pixelformat based on quality:\n" +"pixel format is controlled by quality:\n" "\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" msgstr "" "La qualité de l’image, une qualité basse signifie moins de détails.\n" -"Ce qui suit ne s’applique qu’aux paramètres avec perte. Qualités :\n" -" • 91 à 100 % → YUV444\n" -" • 81 à 90 % → YUV422\n" -" • 5 à 80 % → YUV420\n" +"\n" +"Le format des pixels est contrôlé par la qualité :\n" +"\n" +" • 91 à 100 → YUV444\n" +" • 81 à 90 → YUV422\n" +" • 5 à 80 → YUV420" #: ../src/imageio/format/copy.c:109 ../src/libs/copy_history.c:370 -#: ../src/libs/image.c:583 +#: ../src/libs/image.c:647 msgid "copy" msgstr "Copier" @@ -11561,120 +12084,141 @@ msgid "the selected output profile doesn't work well with EXR" msgstr "Le profil de sortie choisi ne fonctionne pas bien avec EXR" -#: ../src/imageio/format/exr.cc:540 +#: ../src/imageio/format/exr.cc:576 msgid "OpenEXR" msgstr "OpenEXR" -#: ../src/imageio/format/exr.cc:567 +#: ../src/imageio/format/exr.cc:603 msgid "16 bit (float)" msgstr "16 bits (flottant)" -#: ../src/imageio/format/exr.cc:567 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/format/exr.cc:603 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "32 bit (float)" msgstr "32 bits (flottant)" -#. compression -#. Compression method combo box -#: ../src/imageio/format/exr.cc:575 ../src/imageio/format/pdf.c:676 -#: ../src/imageio/format/png.c:548 ../src/imageio/format/tiff.c:866 -#: ../src/libs/masks.c:110 -msgid "compression" -msgstr "Dégradé" - -#: ../src/imageio/format/exr.cc:577 ../src/imageio/format/pdf.c:682 -#: ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/exr.cc:613 ../src/imageio/format/pdf.c:682 +#: ../src/imageio/format/tiff.c:924 msgid "uncompressed" msgstr "Non compressé" -#: ../src/imageio/format/exr.cc:578 +#: ../src/imageio/format/exr.cc:614 msgid "RLE" msgstr "RLE" -#: ../src/imageio/format/exr.cc:579 +#: ../src/imageio/format/exr.cc:615 msgid "ZIPS" msgstr "ZIPS" -#: ../src/imageio/format/exr.cc:580 +#: ../src/imageio/format/exr.cc:616 msgid "ZIP" msgstr "ZIP" -#: ../src/imageio/format/exr.cc:581 +#: ../src/imageio/format/exr.cc:617 msgid "PIZ" msgstr "PIZ" -#: ../src/imageio/format/exr.cc:582 +#: ../src/imageio/format/exr.cc:618 msgid "PXR24" msgstr "PXR24" -#: ../src/imageio/format/exr.cc:583 +#: ../src/imageio/format/exr.cc:619 msgid "B44" msgstr "B44" -#: ../src/imageio/format/exr.cc:584 +#: ../src/imageio/format/exr.cc:620 msgid "B44A" msgstr "B44A" -#: ../src/imageio/format/exr.cc:585 +#: ../src/imageio/format/exr.cc:621 msgid "DWAA" msgstr "DWAA" -#: ../src/imageio/format/exr.cc:586 +#: ../src/imageio/format/exr.cc:622 msgid "DWAB" msgstr "DWAB" -#: ../src/imageio/format/j2k.c:618 +#: ../src/imageio/format/j2k.c:648 msgid "JPEG 2000 (12-bit)" msgstr "JPEG 2000 (12 bits)" -#: ../src/imageio/format/j2k.c:652 -msgid "jp2" -msgstr "JP2" - -#: ../src/imageio/format/j2k.c:667 +#: ../src/imageio/format/j2k.c:684 msgid "DCP mode" msgstr "Mode DCP" -#: ../src/imageio/format/j2k.c:670 +#: ../src/imageio/format/j2k.c:687 msgid "Cinema2K, 24FPS" msgstr "Cinema2K, 24 ips" -#: ../src/imageio/format/j2k.c:671 +#: ../src/imageio/format/j2k.c:688 msgid "Cinema2K, 48FPS" msgstr "Cinema2K, 48 ips" -#: ../src/imageio/format/j2k.c:672 +#: ../src/imageio/format/j2k.c:689 msgid "Cinema4K, 24FPS" msgstr "Cinema4K, 24 ips" -#: ../src/imageio/format/jpeg.c:564 +#: ../src/imageio/format/jpeg.c:546 msgid "JPEG (8-bit)" msgstr "JPEG (8 bits)" -#: ../src/imageio/format/jxl.c:471 -msgid "JPEG XL" -msgstr "JPEG XL" +#: ../src/imageio/format/jpeg.c:594 +msgid "chroma subsampling" +msgstr "Sous-échantillonnage chroma" + +#: ../src/imageio/format/jpeg.c:595 +msgid "" +"chroma subsampling setting for JPEG encoder.\n" +"auto - use subsampling determined by the quality value\n" +"4:4:4 - no chroma subsampling\n" +"4:4:0 - color sampling rate halved vertically\n" +"4:2:2 - color sampling rate halved horizontally\n" +"4:2:0 - color sampling rate halved horizontally and vertically" +msgstr "" +"Sous-échantillonnage de la chrominance pour l'encodeur JPEG.\n" +" • Auto : Le sous-échantillonnage est déterminé par la valeur de la qualité\n" +" • 4:4:4 : Pas de sous-échantillonnage\n" +" • 4:4:O : Échantillonnage couleur réduit de moité verticalement\n" +" • 4:2:2 : Échantillonnage couleur réduit de moité horizontalement\n" +" • 4:2:0 : Échantillonnage couleur réduit de moité horizontalement et " +"verticalement" -#: ../src/imageio/format/jxl.c:556 ../src/imageio/format/pdf.c:81 -#: ../src/imageio/format/png.c:536 ../src/imageio/format/tiff.c:847 +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:4" +msgstr "4:4:4" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:0" +msgstr "4:4:0" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:2" +msgstr "4:2:2" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:0" +msgstr "4:2:0" + +#: ../src/imageio/format/jxl.c:567 ../src/imageio/format/pdf.c:81 +#: ../src/imageio/format/png.c:641 ../src/imageio/format/tiff.c:904 #: ../src/imageio/format/xcf.c:357 msgid "16 bit" msgstr "16 bits" #. Pixel format combo box -#: ../src/imageio/format/jxl.c:562 ../src/imageio/format/tiff.c:852 +#: ../src/imageio/format/jxl.c:573 ../src/imageio/format/tiff.c:909 msgid "pixel type" msgstr "Type de pixel" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "unsigned integer" msgstr "Entier non signé" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "floating point" msgstr "Flottant" -#: ../src/imageio/format/jxl.c:580 +#: ../src/imageio/format/jxl.c:591 msgid "" "the quality of the output image\n" "0-29 = very lossy\n" @@ -11686,11 +12230,11 @@ " • 30 → 99 % – comparable à la qualité JPEG\n" " • 100 % – sans perte (bits entiers uniquement)" -#: ../src/imageio/format/jxl.c:589 +#: ../src/imageio/format/jxl.c:600 msgid "encoding color profile" msgstr "Profil de couleur d’encodage" -#: ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/jxl.c:601 msgid "" "the color profile used by the encoder\n" "permit internal XYB color space conversion for more efficient lossy " @@ -11704,20 +12248,20 @@ "ou ne permet pas de conversion pour conserver l’espace de couleur de l’image " "originale (forcé pour le mode sans perte)." -#: ../src/imageio/format/jxl.c:593 +#: ../src/imageio/format/jxl.c:604 msgid "internal" msgstr "Interne" -#: ../src/imageio/format/jxl.c:593 ../src/libs/duplicate.c:399 -#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:782 +#: ../src/imageio/format/jxl.c:604 ../src/libs/duplicate.c:405 +#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:840 msgid "original" msgstr "Original" -#: ../src/imageio/format/jxl.c:607 +#: ../src/imageio/format/jxl.c:618 msgid "encoding effort" msgstr "Effort d’encodage" -#: ../src/imageio/format/jxl.c:608 +#: ../src/imageio/format/jxl.c:619 msgid "" "the effort used to encode the image, higher efforts will have better results " "at the expense of longer encoding times" @@ -11726,11 +12270,11 @@ "donnera de meilleurs résultats mais demandera un temps d’encodage plus " "important." -#: ../src/imageio/format/jxl.c:619 +#: ../src/imageio/format/jxl.c:630 msgid "decoding speed" msgstr "Vitesse de décodage" -#: ../src/imageio/format/jxl.c:620 +#: ../src/imageio/format/jxl.c:631 msgid "the preferred decoding speed with some sacrifice of quality" msgstr "La vitesse de décodage préférée avec perte de qualité" @@ -11742,9 +12286,9 @@ msgid "invalid border size, using 0" msgstr "Taille des bords non valide, 0 est utilisé" -#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:316 -#: ../src/imageio/storage/email.c:137 ../src/imageio/storage/gallery.c:331 -#: ../src/imageio/storage/gallery.c:370 ../src/imageio/storage/piwigo.c:1202 +#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:460 +#: ../src/imageio/storage/email.c:187 ../src/imageio/storage/gallery.c:409 +#: ../src/imageio/storage/gallery.c:450 ../src/imageio/storage/piwigo.c:1236 #, c-format msgid "could not export to file `%s'!" msgstr "Impossible d’exporter le fichier « %s »" @@ -11799,8 +12343,8 @@ "Exemples : 10 mm, 1 pouce." #. dpi -#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1127 -#: ../src/libs/export.c:1150 +#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1218 +#: ../src/libs/export.c:1246 msgid "dpi" msgstr "DPI" @@ -11863,7 +12407,7 @@ " • Compressée – taille réduite mais plus lent" # deflate traduit par compression, bof ? -#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:924 msgid "deflate" msgstr "Compression" @@ -11894,60 +12438,23 @@ msgid "debug" msgstr "Débogage" -#: ../src/imageio/format/pfm.c:120 -msgid "PFM" -msgstr "PFM" - -#: ../src/imageio/format/png.c:493 -msgid "PNG" -msgstr "PNG" - #: ../src/imageio/format/ppm.c:111 msgid "PPM (16-bit)" msgstr "PPM (16 bits)" -#: ../src/imageio/format/tiff.c:228 -msgid "will export as a grayscale image" -msgstr "Exportera l’image en échelle de gris" +#: ../src/imageio/format/tiff.c:246 +msgid "not a B&W image, will not export as grayscale" +msgstr "L'image n'est pas N&B, ne sera pas exportée en échelle de gris" -#: ../src/imageio/format/tiff.c:774 -msgid "TIFF" -msgstr "TIFF" - -#: ../src/imageio/format/tiff.c:868 +#: ../src/imageio/format/tiff.c:925 msgid "deflate with predictor" msgstr "Compression avec prédiction" -#: ../src/imageio/format/tiff.c:878 +#: ../src/imageio/format/tiff.c:935 msgid "compression level" msgstr "Niveau de compression" -#. shortfile option combo box -#: ../src/imageio/format/tiff.c:887 -msgid "b&w image" -msgstr "Image N & B" - -#: ../src/imageio/format/tiff.c:888 -msgid "write RGB colors" -msgstr "Couleurs RVB" - -#: ../src/imageio/format/tiff.c:888 -msgid "write grayscale" -msgstr "Échelle de gris" - -#: ../src/imageio/format/webp.c:349 -msgid "WebP" -msgstr "WebP" - -#: ../src/imageio/format/webp.c:385 -msgid "lossy" -msgstr "Avec perte" - -#: ../src/imageio/format/webp.c:385 -msgid "lossless" -msgstr "Sans perte" - -#: ../src/imageio/format/webp.c:397 +#: ../src/imageio/format/webp.c:426 msgid "" "for lossy, 0 gives the smallest size and 100 the best quality.\n" "for lossless, 0 is the fastest but gives larger files compared\n" @@ -11957,11 +12464,11 @@ "• Sans perte – 0 est le plus rapide mais donne des fichiers plus gros\n" "en comparaison au mode lent 100." -#: ../src/imageio/format/webp.c:407 +#: ../src/imageio/format/webp.c:436 msgid "image hint" msgstr "Type d’image" -#: ../src/imageio/format/webp.c:408 +#: ../src/imageio/format/webp.c:437 msgid "" "image characteristics hint for the underlying encoder.\n" "picture: digital picture, like portrait, inner shot\n" @@ -11973,15 +12480,15 @@ " • Photo – photo d’extérieur, avec lumière naturelle\n" " • Graphique – image avec des couleurs uniformes (schéma, etc.)" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "picture" msgstr "Image" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "photo" msgstr "Photo" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "graphic" msgstr "Graphique" @@ -11989,12 +12496,12 @@ msgid "XCF" msgstr "XCF" -#: ../src/imageio/storage/disk.c:71 ../src/libs/export.c:1040 +#: ../src/imageio/storage/disk.c:74 ../src/libs/export.c:1119 msgid "file on disk" msgstr "Fichier sur le disque" -#: ../src/imageio/storage/disk.c:169 ../src/imageio/storage/gallery.c:155 -#: ../src/imageio/storage/latex.c:154 +#: ../src/imageio/storage/disk.c:251 ../src/imageio/storage/gallery.c:204 +#: ../src/imageio/storage/latex.c:191 msgid "" "enter the path where to put exported images\n" "variables support bash like string manipulation\n" @@ -12004,53 +12511,63 @@ "Les variables supportent les substitutions comme le shell bash.\n" "Taper « $( » pour activer la complétion et voir la liste des variables." -#: ../src/imageio/storage/disk.c:182 ../src/imageio/storage/piwigo.c:1079 +#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/piwigo.c:1113 msgid "on conflict" msgstr "Sur conflit" -#: ../src/imageio/storage/disk.c:185 +#: ../src/imageio/storage/disk.c:268 msgid "create unique filename" msgstr "Créer un fichier unique" #. DT_COPY_HISTORY_APPEND -#: ../src/imageio/storage/disk.c:186 ../src/imageio/storage/piwigo.c:1083 -#: ../src/libs/copy_history.c:404 ../src/libs/image.c:601 -#: ../src/libs/styles.c:440 ../src/libs/styles.c:623 ../src/libs/styles.c:850 +#: ../src/imageio/storage/disk.c:269 ../src/imageio/storage/piwigo.c:1117 +#: ../src/libs/copy_history.c:404 ../src/libs/image.c:670 +#: ../src/libs/styles.c:854 msgid "overwrite" msgstr "Écraser" -#: ../src/imageio/storage/disk.c:187 ../src/imageio/storage/piwigo.c:1081 -#: ../src/libs/styles.c:439 ../src/libs/styles.c:622 +#: ../src/imageio/storage/disk.c:270 +msgid "overwrite if changed" +msgstr "Écraser si modifié" + +#: ../src/imageio/storage/disk.c:271 ../src/imageio/storage/piwigo.c:1115 msgid "skip" msgstr "Sauter" -#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/gallery.c:253 -#: ../src/imageio/storage/latex.c:252 +#: ../src/imageio/storage/disk.c:371 ../src/imageio/storage/gallery.c:326 +#: ../src/imageio/storage/latex.c:289 #, c-format msgid "could not create directory `%s'!" msgstr "Impossible de créer le dossier « %s »" -#: ../src/imageio/storage/disk.c:272 +#: ../src/imageio/storage/disk.c:382 #, c-format msgid "could not write to directory `%s'!" msgstr "Impossible d’écrire dans le répertoire « %s »" -#: ../src/imageio/storage/disk.c:302 +#: ../src/imageio/storage/disk.c:419 #, c-format msgid "%d/%d skipping `%s'" msgid_plural "%d/%d skipping `%s'" msgstr[0] "%d/%d, « %s » sauté" msgstr[1] "%d/%d, « %s » sautés" -#: ../src/imageio/storage/disk.c:321 ../src/imageio/storage/email.c:144 -#: ../src/imageio/storage/gallery.c:378 ../src/imageio/storage/latex.c:340 +#: ../src/imageio/storage/disk.c:441 +#, c-format +msgid "%d/%d skipping (not modified since export) `%s'" +msgid_plural "%d/%d skipping (not modified since export) `%s'" +msgstr[0] "%d/%d sauter (non modifié depuis la dernière exportation) « %s »" +msgstr[1] "%d/%d sauter (non modifié depuis la dernière exportation) « %s »" + +#: ../src/imageio/storage/disk.c:465 ../src/imageio/storage/email.c:194 +#: ../src/imageio/storage/gallery.c:458 ../src/imageio/storage/latex.c:377 #, c-format msgid "%d/%d exported to `%s'" msgid_plural "%d/%d exported to `%s'" msgstr[0] "%d/%d exportée vers « %s »" msgstr[1] "%d/%d exportées vers « %s »" -#: ../src/imageio/storage/disk.c:380 +#: ../src/imageio/storage/disk.c:530 msgid "" "you are going to export in overwrite mode, this will overwrite any existing " "images\n" @@ -12062,23 +12579,33 @@ "\n" "Continuer ?" -#: ../src/imageio/storage/email.c:52 +#: ../src/imageio/storage/email.c:57 msgid "send as email" msgstr "Envoyer par e-mail" -#: ../src/imageio/storage/email.c:198 +#. Unlikely in normal Windows installations, but let's notify the user if it happens +#: ../src/imageio/storage/email.c:265 +msgid "could not open mapi32.dll" +msgstr "Impossible d'ouvrir « mapi32.dll »" + +#. Even more unlikely +#: ../src/imageio/storage/email.c:275 +msgid "could not get SendMail function" +msgstr "Impossible de trouver la fonction « SendMail »." + +#: ../src/imageio/storage/email.c:319 ../src/imageio/storage/email.c:409 msgid "images exported from darktable" msgstr "Images exportées depuis darktable" -#: ../src/imageio/storage/email.c:251 +#: ../src/imageio/storage/email.c:388 ../src/imageio/storage/email.c:467 msgid "could not launch email client!" msgstr "Impossible de lancer le client de messagerie." -#: ../src/imageio/storage/gallery.c:73 +#: ../src/imageio/storage/gallery.c:76 msgid "website gallery" msgstr "Galerie web" -#: ../src/imageio/storage/gallery.c:171 +#: ../src/imageio/storage/gallery.c:224 msgid "enter the title of the website" msgstr "Entrer un nom pour le site" @@ -12086,149 +12613,148 @@ msgid "LaTeX book template" msgstr "Modèle de livre LaTeX" -#: ../src/imageio/storage/latex.c:172 +#: ../src/imageio/storage/latex.c:209 msgid "enter the title of the book" msgstr "Entrer le titre du livre" -#: ../src/imageio/storage/piwigo.c:522 +#: ../src/imageio/storage/piwigo.c:525 msgid "authenticated" msgstr "Authentifié" -#: ../src/imageio/storage/piwigo.c:532 ../src/imageio/storage/piwigo.c:547 -#: ../src/imageio/storage/piwigo.c:559 +#: ../src/imageio/storage/piwigo.c:536 ../src/imageio/storage/piwigo.c:552 +#: ../src/imageio/storage/piwigo.c:565 msgid "not authenticated" msgstr "Non authentifié" -#: ../src/imageio/storage/piwigo.c:538 +#: ../src/imageio/storage/piwigo.c:542 msgid "not authenticated, cannot reach server" msgstr "Non authentifié, impossible de contacter le serveur" -#: ../src/imageio/storage/piwigo.c:587 ../src/imageio/storage/piwigo.c:675 +#: ../src/imageio/storage/piwigo.c:595 ../src/imageio/storage/piwigo.c:684 msgid "create new album" msgstr "Créer un nouvel album" -#: ../src/imageio/storage/piwigo.c:676 +#: ../src/imageio/storage/piwigo.c:685 msgid "---" msgstr "---" -#: ../src/imageio/storage/piwigo.c:721 +#: ../src/imageio/storage/piwigo.c:735 msgid "cannot refresh albums" msgstr "Impossible de rafraîchir la liste d’albums" -#: ../src/imageio/storage/piwigo.c:929 +#: ../src/imageio/storage/piwigo.c:950 msgid "Piwigo" msgstr "Piwigo" -#: ../src/imageio/storage/piwigo.c:954 +#: ../src/imageio/storage/piwigo.c:976 msgid "accounts" msgstr "Compte" -#: ../src/imageio/storage/piwigo.c:972 ../src/imageio/storage/piwigo.c:978 +#: ../src/imageio/storage/piwigo.c:995 ../src/imageio/storage/piwigo.c:1004 msgid "server" msgstr "Serveur" -#: ../src/imageio/storage/piwigo.c:974 ../src/imageio/storage/piwigo.c:989 +#: ../src/imageio/storage/piwigo.c:998 msgid "" "the server name\n" "default protocol is https\n" -"specify http:// if non secure server" +"specify insecure protocol http:// explicitly if that protocol is required" msgstr "" "Le nom du serveur.\n" "Le protocole par défaut est « https »,\n" -"utiliser « http » si le serveur n’est pas sécurisé." +"utiliser le protocole non sécurisé « http » si ce protocole est requis" -#: ../src/imageio/storage/piwigo.c:987 ../src/imageio/storage/piwigo.c:993 +#: ../src/imageio/storage/piwigo.c:1014 ../src/imageio/storage/piwigo.c:1021 msgid "user" msgstr "Utilisateur" -#: ../src/imageio/storage/piwigo.c:1000 ../src/imageio/storage/piwigo.c:1005 +#: ../src/imageio/storage/piwigo.c:1029 ../src/imageio/storage/piwigo.c:1034 msgid "password" msgstr "Mot de passe" #. login button -#: ../src/imageio/storage/piwigo.c:1010 +#: ../src/imageio/storage/piwigo.c:1039 msgid "login" msgstr "Connexion" -#: ../src/imageio/storage/piwigo.c:1011 +#: ../src/imageio/storage/piwigo.c:1040 msgid "Piwigo login" msgstr "Login" #. permissions list -#: ../src/imageio/storage/piwigo.c:1025 +#: ../src/imageio/storage/piwigo.c:1056 msgid "visible to" msgstr "Visible par" -#: ../src/imageio/storage/piwigo.c:1027 +#: ../src/imageio/storage/piwigo.c:1058 msgid "everyone" msgstr "Tout le monde" -#: ../src/imageio/storage/piwigo.c:1028 +#: ../src/imageio/storage/piwigo.c:1059 msgid "contacts" msgstr "Contacts" -#: ../src/imageio/storage/piwigo.c:1029 +#: ../src/imageio/storage/piwigo.c:1060 msgid "friends" msgstr "Amis" -#: ../src/imageio/storage/piwigo.c:1030 +#: ../src/imageio/storage/piwigo.c:1061 msgid "family" msgstr "Famille" -#: ../src/imageio/storage/piwigo.c:1031 +#: ../src/imageio/storage/piwigo.c:1062 msgid "you" msgstr "Vous" #. Available albums -#: ../src/imageio/storage/piwigo.c:1038 +#: ../src/imageio/storage/piwigo.c:1069 msgid "album" msgstr "Album" -#: ../src/imageio/storage/piwigo.c:1045 +#: ../src/imageio/storage/piwigo.c:1076 msgid "refresh album list" msgstr "Rafraîchir la liste d’albums" #. Album title -#: ../src/imageio/storage/piwigo.c:1063 +#: ../src/imageio/storage/piwigo.c:1096 msgid "new album" msgstr "Nouvel album" -#. parent album list #. Available albums -#: ../src/imageio/storage/piwigo.c:1071 +#: ../src/imageio/storage/piwigo.c:1105 msgid "parent album" msgstr "Album parent" -#: ../src/imageio/storage/piwigo.c:1075 +#: ../src/imageio/storage/piwigo.c:1109 msgid "click login button to start" msgstr "Appuyer sur connexion pour commencer" -#: ../src/imageio/storage/piwigo.c:1080 +#: ../src/imageio/storage/piwigo.c:1114 msgid "don't check" msgstr "Ne pas vérifier" -#: ../src/imageio/storage/piwigo.c:1082 +#: ../src/imageio/storage/piwigo.c:1116 msgid "update metadata" msgstr "Mise à jour des métadonnées" -#: ../src/imageio/storage/piwigo.c:1221 +#: ../src/imageio/storage/piwigo.c:1255 msgid "cannot create a new Piwigo album!" msgstr "Impossible de créer un nouvel album Piwigo !" -#: ../src/imageio/storage/piwigo.c:1240 +#: ../src/imageio/storage/piwigo.c:1274 msgid "could not update to Piwigo!" msgstr "Impossible de mettre Piwigo à jour !" -#: ../src/imageio/storage/piwigo.c:1255 +#: ../src/imageio/storage/piwigo.c:1290 msgid "could not upload to Piwigo!" msgstr "Impossible d’exporter sur Piwigo !" -#: ../src/imageio/storage/piwigo.c:1284 +#: ../src/imageio/storage/piwigo.c:1319 #, c-format msgid "%d/%d skipped (already exists)" msgstr "%d/%d ignorée (existe déjà)" -#: ../src/imageio/storage/piwigo.c:1290 +#: ../src/imageio/storage/piwigo.c:1325 #, c-format msgid "%d/%d exported to Piwigo webalbum" msgid_plural "%d/%d exported to Piwigo webalbum" @@ -12248,54 +12774,54 @@ msgstr "Tourne l’image ou déforme la perspective" #: ../src/iop/ashift.c:131 ../src/iop/channelmixer.c:139 -#: ../src/iop/channelmixerrgb.c:232 ../src/iop/clipping.c:320 -#: ../src/iop/colorbalance.c:161 ../src/iop/colorbalancergb.c:185 +#: ../src/iop/channelmixerrgb.c:233 ../src/iop/clipping.c:363 +#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:185 #: ../src/iop/colorchecker.c:130 ../src/iop/colorcorrection.c:77 -#: ../src/iop/crop.c:144 ../src/iop/lut3d.c:141 +#: ../src/iop/crop.c:134 ../src/iop/lut3d.c:142 ../src/iop/primaries.c:80 msgid "corrective or creative" msgstr "Correctif ou créatif" -#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:148 -#: ../src/iop/bilateral.cc:101 ../src/iop/bilateral.cc:103 -#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:233 -#: ../src/iop/channelmixerrgb.c:235 ../src/iop/clipping.c:321 -#: ../src/iop/clipping.c:323 ../src/iop/colorbalancergb.c:186 -#: ../src/iop/colorin.c:136 ../src/iop/crop.c:145 ../src/iop/crop.c:147 -#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:728 -#: ../src/iop/denoiseprofile.c:730 ../src/iop/diffuse.c:146 +#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:174 +#: ../src/iop/bilateral.cc:103 ../src/iop/bilateral.cc:105 +#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:236 ../src/iop/clipping.c:364 +#: ../src/iop/clipping.c:366 ../src/iop/colorbalancergb.c:186 +#: ../src/iop/colorin.c:136 ../src/iop/crop.c:135 ../src/iop/crop.c:137 +#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:780 +#: ../src/iop/denoiseprofile.c:782 ../src/iop/diffuse.c:146 #: ../src/iop/diffuse.c:148 ../src/iop/exposure.c:132 ../src/iop/exposure.c:134 #: ../src/iop/flip.c:111 ../src/iop/flip.c:112 ../src/iop/hazeremoval.c:113 -#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:242 ../src/iop/lens.cc:244 -#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/retouch.c:210 -#: ../src/iop/retouch.c:212 ../src/iop/sigmoid.c:103 -#: ../src/iop/splittoning.c:104 ../src/iop/splittoning.c:106 -#: ../src/iop/spots.c:70 ../src/iop/spots.c:72 ../src/iop/toneequal.c:325 -#: ../src/iop/velvia.c:106 ../src/iop/velvia.c:108 +#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:263 ../src/iop/lens.cc:265 +#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/primaries.c:81 +#: ../src/iop/primaries.c:83 ../src/iop/retouch.c:210 ../src/iop/retouch.c:212 +#: ../src/iop/sigmoid.c:209 ../src/iop/splittoning.c:106 +#: ../src/iop/splittoning.c:108 ../src/iop/spots.c:70 ../src/iop/spots.c:72 +#: ../src/iop/toneequal.c:333 ../src/iop/velvia.c:99 ../src/iop/velvia.c:101 msgid "linear, RGB, scene-referred" msgstr "Relatif à la scène, linéaire, RVB" -#: ../src/iop/ashift.c:133 ../src/iop/borders.c:200 ../src/iop/clipping.c:322 -#: ../src/iop/crop.c:146 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 +#: ../src/iop/ashift.c:133 ../src/iop/borders.c:325 ../src/iop/clipping.c:365 +#: ../src/iop/crop.c:136 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 msgid "geometric, RGB" msgstr "Géométrique, RVB" -#: ../src/iop/ashift.c:2820 +#: ../src/iop/ashift.c:2866 msgid "automatic cropping failed" msgstr "Recadrage automatique impossible" -#: ../src/iop/ashift.c:3234 ../src/iop/ashift.c:3286 ../src/iop/ashift.c:3334 +#: ../src/iop/ashift.c:3276 ../src/iop/ashift.c:3328 ../src/iop/ashift.c:3375 msgid "data pending - please repeat" msgstr "Données en attente, merci de recommencer" -#: ../src/iop/ashift.c:3243 +#: ../src/iop/ashift.c:3285 msgid "could not detect structural data in image" msgstr "Impossible de détecter des structures dans l’image" -#: ../src/iop/ashift.c:3255 +#: ../src/iop/ashift.c:3297 msgid "could not run outlier removal" msgstr "Impossible de supprimer les lignes de contrôle" -#: ../src/iop/ashift.c:3434 +#: ../src/iop/ashift.c:3474 #, c-format msgid "" "not enough structure for automatic correction\n" @@ -12304,41 +12830,41 @@ "Trop peu de structures pour une correction automatique,\n" "il faut %d lignes au moins dans chaque direction pertinente." -#: ../src/iop/ashift.c:3440 +#: ../src/iop/ashift.c:3480 msgid "automatic correction failed, please correct manually" msgstr "Correction automatique impossible, merci de corriger manuellement" -#: ../src/iop/ashift.c:5096 +#: ../src/iop/ashift.c:5077 #, c-format msgid "only %d lines can be saved in parameters" msgstr "Uniquement %d lignes peuvent être sauvegardées dans les paramètres" -#: ../src/iop/ashift.c:5201 +#: ../src/iop/ashift.c:5157 #, c-format -msgid "rotation adjusted by %3.1f° to %3.1f°" -msgstr "Rotation ajustée par %3.1f° à %3.1f°" +msgid "rotation adjusted by %3.2f° to %3.2f°" +msgstr "Rotation ajustée de %3.2f° à %3.2f°" -#: ../src/iop/ashift.c:5852 ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 -#: ../src/iop/ashift.c:5961 +#: ../src/iop/ashift.c:5797 ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 +#: ../src/iop/ashift.c:5906 #, c-format msgid "lens shift (%s)" msgstr "Correction d’objectif (%s)" -#: ../src/iop/ashift.c:6125 +#: ../src/iop/ashift.c:6072 msgid "manual perspective" msgstr "Perspective manuelle" -#: ../src/iop/ashift.c:6170 +#: ../src/iop/ashift.c:6117 msgctxt "section" msgid "perspective" msgstr "Perspective" -#: ../src/iop/ashift.c:6177 ../src/iop/ashift.c:6286 ../src/iop/ashift.c:6288 -#: ../src/iop/ashift.c:6290 +#: ../src/iop/ashift.c:6124 ../src/iop/ashift.c:6233 ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6237 msgid "structure" msgstr "Structure" -#: ../src/iop/ashift.c:6212 +#: ../src/iop/ashift.c:6159 msgid "" "rotate image\n" "right-click and drag to define a horizontal or vertical line by drawing on " @@ -12347,19 +12873,19 @@ "Degrés de rotation.\n" "Si sur l’image : clic droit et déplacer pour définir un angle de rotation." -#: ../src/iop/ashift.c:6215 ../src/iop/ashift.c:6217 +#: ../src/iop/ashift.c:6162 ../src/iop/ashift.c:6164 msgid "apply lens shift correction in one direction" msgstr "Applique la correction d’objectif dans une direction" -#: ../src/iop/ashift.c:6219 +#: ../src/iop/ashift.c:6166 msgid "shear the image along one diagonal" msgstr "Cisaillement de l’image selon une diagonale" -#: ../src/iop/ashift.c:6220 ../src/iop/clipping.c:2117 +#: ../src/iop/ashift.c:6167 ../src/iop/clipping.c:2170 msgid "automatically crop to avoid black edges" msgstr "Recadrage automatique pour éviter les bords noirs" -#: ../src/iop/ashift.c:6221 +#: ../src/iop/ashift.c:6168 msgid "" "lens model of the perspective correction: generic or according to the focal " "length" @@ -12367,13 +12893,13 @@ "Modèle d’objectif pour la correction de perspective : générique ou fonction " "de la longueur focale" -#: ../src/iop/ashift.c:6224 +#: ../src/iop/ashift.c:6171 msgid "focal length of the lens, default value set from EXIF data if available" msgstr "" "Longueur focale de l’objectif, valeur par défaut depuis les EXIF si " "disponible" -#: ../src/iop/ashift.c:6227 +#: ../src/iop/ashift.c:6174 msgid "" "crop factor of the camera sensor, default value set from EXIF data if " "available, manual setting is often required" @@ -12382,7 +12908,7 @@ "EXIF\n" "si disponible, un positionnement manuel est souvent nécessaire." -#: ../src/iop/ashift.c:6231 +#: ../src/iop/ashift.c:6178 msgid "" "the level of lens dependent correction, set to maximum for full lens " "dependency, set to zero for the generic case" @@ -12390,13 +12916,13 @@ "Le niveau de correction dépendant de l’objectif, positionner au maximum pour " "une dépendance totale, à zéro pour un modèle générique" -#: ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6182 msgid "adjust aspect ratio of image by horizontal and vertical scaling" msgstr "" "Ajuste les dimensions de l’image en redimensionnant horizontalement et " "verticalement" -#: ../src/iop/ashift.c:6237 +#: ../src/iop/ashift.c:6184 msgid "" "automatically correct for vertical perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12406,7 +12932,7 @@ " • Ctrl+clic – correction de rotation seulement\n" " • Maj+clic – correction de distorsion uniquement" -#: ../src/iop/ashift.c:6241 +#: ../src/iop/ashift.c:6188 msgid "" "automatically correct for horizontal perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12416,7 +12942,7 @@ " • Ctrl+clic – correction de rotation seulement\n" " • Maj+clic – correction de distorsion uniquement" -#: ../src/iop/ashift.c:6245 +#: ../src/iop/ashift.c:6192 msgid "" "automatically correct for vertical and horizontal perspective distortions, " "fitting rotation, lens shift in both directions, and shear\n" @@ -12432,7 +12958,7 @@ " • Maj+clic – correction de l’alignement uniquement\n" " • Ctrl+Maj+clic –correction de rotation et d’alignement d’objectif" -#: ../src/iop/ashift.c:6252 +#: ../src/iop/ashift.c:6199 msgid "" "automatically analyse line structure in image\n" "ctrl+click for an additional edge enhancement\n" @@ -12444,225 +12970,225 @@ " • Maj+clic – amélioration des détails accrue\n" " • Ctrl+Maj+clic – combinaison des deux méthodes" -#: ../src/iop/ashift.c:6257 +#: ../src/iop/ashift.c:6204 msgid "manually define perspective rectangle" msgstr "Définir manuellement un rectangle de perspective" -#: ../src/iop/ashift.c:6258 +#: ../src/iop/ashift.c:6205 msgid "manually draw structure lines" msgstr "Dessiner manuellement les lignes de structure" -#: ../src/iop/ashift.c:6287 +#: ../src/iop/ashift.c:6234 msgid "rectangle" msgstr "Rectangle" -#: ../src/iop/ashift.c:6289 +#: ../src/iop/ashift.c:6236 msgid "lines" msgstr "Lignes" -#: ../src/iop/ashift.c:6323 ../src/iop/clipping.c:3343 +#: ../src/iop/ashift.c:6270 ../src/iop/clipping.c:3383 #, c-format msgid "[%s] define/rotate horizon" msgstr "[%s] définir/orienter l’horizon" -#: ../src/iop/ashift.c:6326 +#: ../src/iop/ashift.c:6273 #, c-format msgid "[%s on segment] select segment" msgstr "[%s sur segment] Sélectionner un segment" -#: ../src/iop/ashift.c:6330 +#: ../src/iop/ashift.c:6277 #, c-format msgid "[%s on segment] unselect segment" msgstr "[%s sur segment] Désélectionner le segment" -#: ../src/iop/ashift.c:6334 +#: ../src/iop/ashift.c:6281 #, c-format msgid "[%s] select all segments from zone" msgstr "[%s] Sélectionner tous les segments de la zone" -#: ../src/iop/ashift.c:6338 +#: ../src/iop/ashift.c:6285 #, c-format msgid "[%s] unselect all segments from zone" msgstr "[%s] Désélectionner tous les segments de la zone" -#: ../src/iop/atrous.c:123 ../src/iop/atrous.c:1638 +#: ../src/iop/atrous.c:122 ../src/iop/atrous.c:1770 msgid "contrast equalizer" msgstr "Égaliseur de contraste" -#: ../src/iop/atrous.c:128 +#: ../src/iop/atrous.c:127 msgid "sharpness|acutance|local contrast" msgstr "netteté|acutance|contraste local" -#: ../src/iop/atrous.c:133 +#: ../src/iop/atrous.c:132 msgid "add or remove local contrast, sharpness, acutance" msgstr "Ajoute ou supprime du contraste local, de la netteté, de l’acutance" -#: ../src/iop/atrous.c:134 ../src/iop/bilateral.cc:100 ../src/iop/diffuse.c:145 +#: ../src/iop/atrous.c:133 ../src/iop/bilateral.cc:102 ../src/iop/diffuse.c:145 #: ../src/iop/exposure.c:131 ../src/iop/filmicrgb.c:352 #: ../src/iop/graduatednd.c:146 ../src/iop/negadoctor.c:146 -#: ../src/iop/rgbcurve.c:143 ../src/iop/rgblevels.c:123 ../src/iop/shadhi.c:197 -#: ../src/iop/sigmoid.c:102 ../src/iop/tonecurve.c:211 -#: ../src/iop/toneequal.c:324 +#: ../src/iop/rgbcurve.c:145 ../src/iop/rgblevels.c:125 ../src/iop/shadhi.c:144 +#: ../src/iop/sigmoid.c:209 ../src/iop/tonecurve.c:184 +#: ../src/iop/toneequal.c:332 msgid "corrective and creative" msgstr "Correctif et créatif" -#: ../src/iop/atrous.c:135 ../src/iop/atrous.c:137 -#: ../src/iop/colorbalance.c:162 +#: ../src/iop/atrous.c:134 ../src/iop/atrous.c:136 +#: ../src/iop/colorbalance.c:164 msgid "linear, Lab, scene-referred" msgstr "Relatif à la scène, linéaire, Lab" -#: ../src/iop/atrous.c:136 ../src/iop/censorize.c:85 +#: ../src/iop/atrous.c:135 ../src/iop/censorize.c:85 #: ../src/iop/hazeremoval.c:114 msgid "frequential, RGB" msgstr "Fréquentiel, RVB" -#: ../src/iop/atrous.c:727 +#: ../src/iop/atrous.c:799 msgctxt "eq_preset" msgid "coarse" msgstr "Global" -#: ../src/iop/atrous.c:742 +#: ../src/iop/atrous.c:815 msgid "denoise & sharpen" msgstr "Réduction du bruit et accentuation" -#: ../src/iop/atrous.c:757 +#: ../src/iop/atrous.c:831 msgctxt "atrous" msgid "sharpen" msgstr "Renforcer la netteté" -#: ../src/iop/atrous.c:772 +#: ../src/iop/atrous.c:847 msgid "denoise chroma" msgstr "Réduction du bruit chromatique" -#: ../src/iop/atrous.c:787 +#: ../src/iop/atrous.c:863 msgid "denoise" msgstr "Réduction du bruit" -#: ../src/iop/atrous.c:803 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:421 +#: ../src/iop/atrous.c:880 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:448 msgid "bloom" msgstr "Lumière d’arrière-plan" -#: ../src/iop/atrous.c:818 ../src/iop/bilat.c:169 +#: ../src/iop/atrous.c:896 ../src/iop/bilat.c:186 msgid "clarity" msgstr "Clarté" -#: ../src/iop/atrous.c:838 +#: ../src/iop/atrous.c:917 msgid "deblur: large blur, strength 3" msgstr "Défloutage large, force 3" -#: ../src/iop/atrous.c:855 +#: ../src/iop/atrous.c:935 msgid "deblur: medium blur, strength 3" msgstr "Défloutage moyen, force 3" -#: ../src/iop/atrous.c:871 +#: ../src/iop/atrous.c:952 msgid "deblur: fine blur, strength 3" msgstr "Défloutage fin, force 3" -#: ../src/iop/atrous.c:889 +#: ../src/iop/atrous.c:971 msgid "deblur: large blur, strength 2" msgstr "Défloutage large, force 2" -#: ../src/iop/atrous.c:906 +#: ../src/iop/atrous.c:989 msgid "deblur: medium blur, strength 2" msgstr "Défloutage moyen, force 2" -#: ../src/iop/atrous.c:922 +#: ../src/iop/atrous.c:1006 msgid "deblur: fine blur, strength 2" msgstr "Défloutage fin, force 2" -#: ../src/iop/atrous.c:940 +#: ../src/iop/atrous.c:1025 msgid "deblur: large blur, strength 1" msgstr "Défloutage large, force 1" -#: ../src/iop/atrous.c:957 +#: ../src/iop/atrous.c:1043 msgid "deblur: medium blur, strength 1" msgstr "Défloutage moyen, force 1" -#: ../src/iop/atrous.c:973 +#: ../src/iop/atrous.c:1060 msgid "deblur: fine blur, strength 1" msgstr "Défloutage fin, force 1" -#: ../src/iop/atrous.c:1289 ../src/iop/atrous.c:1525 -#: ../src/iop/denoiseprofile.c:3510 ../src/iop/rawdenoise.c:738 +#: ../src/iop/atrous.c:1390 ../src/iop/atrous.c:1639 +#: ../src/iop/denoiseprofile.c:3514 ../src/iop/rawdenoise.c:754 msgid "coarse" msgstr "Global" -#: ../src/iop/atrous.c:1296 ../src/iop/atrous.c:1526 -#: ../src/iop/denoiseprofile.c:3518 ../src/iop/rawdenoise.c:746 +#: ../src/iop/atrous.c:1397 ../src/iop/atrous.c:1640 +#: ../src/iop/denoiseprofile.c:3522 ../src/iop/rawdenoise.c:762 msgid "fine" msgstr "Détail" -#: ../src/iop/atrous.c:1308 +#: ../src/iop/atrous.c:1409 msgid "contrasty" msgstr "Contrasté" -#: ../src/iop/atrous.c:1314 ../src/iop/denoiseprofile.c:3532 -#: ../src/iop/rawdenoise.c:760 +#: ../src/iop/atrous.c:1415 ../src/iop/denoiseprofile.c:3536 +#: ../src/iop/rawdenoise.c:776 msgid "noisy" msgstr "Bruité" #. case atrous_s: -#: ../src/iop/atrous.c:1317 +#: ../src/iop/atrous.c:1418 msgid "bold" msgstr "Net" -#: ../src/iop/atrous.c:1318 +#: ../src/iop/atrous.c:1419 msgid "dull" msgstr "Flou" -#: ../src/iop/atrous.c:1513 ../src/iop/atrous.c:1564 +#: ../src/iop/atrous.c:1627 ../src/iop/atrous.c:1685 msgid "boost" msgstr "Augmenter" -#: ../src/iop/atrous.c:1514 +#: ../src/iop/atrous.c:1628 msgid "reduce" msgstr "Réduire" -#: ../src/iop/atrous.c:1515 +#: ../src/iop/atrous.c:1629 msgid "raise" msgstr "Élever" -#: ../src/iop/atrous.c:1516 +#: ../src/iop/atrous.c:1630 msgid "lower" msgstr "Abaisser" -#: ../src/iop/atrous.c:1523 +#: ../src/iop/atrous.c:1637 msgid "coarsest" msgstr "Plus grossier" -#: ../src/iop/atrous.c:1524 +#: ../src/iop/atrous.c:1638 msgid "coarser" msgstr "Grossier" -#: ../src/iop/atrous.c:1527 +#: ../src/iop/atrous.c:1641 msgid "finer" msgstr "Fin" -#: ../src/iop/atrous.c:1528 +#: ../src/iop/atrous.c:1642 msgid "finest" msgstr "Plus fin" -#: ../src/iop/atrous.c:1586 ../src/libs/export.c:1143 ../src/libs/export.c:1158 +#: ../src/iop/atrous.c:1710 ../src/libs/export.c:1239 ../src/libs/export.c:1255 msgid "x" msgstr "x" -#: ../src/iop/atrous.c:1666 ../src/iop/nlmeans.c:465 +#: ../src/iop/atrous.c:1799 ../src/iop/nlmeans.c:468 msgid "luma" msgstr "Luma" -#: ../src/iop/atrous.c:1666 +#: ../src/iop/atrous.c:1800 msgid "change lightness at each feature size" msgstr "Change la luminosité pour chaque taille" -#: ../src/iop/atrous.c:1667 +#: ../src/iop/atrous.c:1802 msgid "change color saturation at each feature size" msgstr "Change la saturation pour chaque taille" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1804 msgid "edges" msgstr "Contours" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1805 msgid "" "change edge halos at each feature size\n" "only changes results of luma and chroma tabs" @@ -12670,97 +13196,97 @@ "Change les halos de contour à chaque niveau de détail,\n" "uniquement dans les résultats des sections Luma et Chroma." -#: ../src/iop/atrous.c:1679 ../src/iop/colorbalancergb.c:2058 -#: ../src/iop/colorzones.c:2473 ../src/iop/denoiseprofile.c:3743 -#: ../src/iop/filmicrgb.c:4407 ../src/iop/lowlight.c:823 -#: ../src/iop/rawdenoise.c:919 ../src/iop/toneequal.c:3371 +#: ../src/iop/atrous.c:1818 ../src/iop/colorbalancergb.c:2129 +#: ../src/iop/colorzones.c:2732 ../src/iop/denoiseprofile.c:3747 +#: ../src/iop/filmicrgb.c:4471 ../src/iop/lowlight.c:821 +#: ../src/iop/rawdenoise.c:935 ../src/iop/toneequal.c:3424 msgid "graph" msgstr "Graphique" -#: ../src/iop/atrous.c:1690 ../src/iop/colorzones.c:2470 +#: ../src/iop/atrous.c:1836 ../src/iop/colorzones.c:2729 msgid "make effect stronger or weaker" msgstr "Rend l’effet plus fort ou plus faible" -#: ../src/iop/basecurve.c:213 +#: ../src/iop/basecurve.c:260 msgid "neutral" msgstr "Neutre" -#: ../src/iop/basecurve.c:214 +#: ../src/iop/basecurve.c:261 msgid "canon eos like" msgstr "Similaire au Canon eos" -#: ../src/iop/basecurve.c:215 +#: ../src/iop/basecurve.c:262 msgid "canon eos like alternate" msgstr "Alternative à similaire au Canon eos" -#: ../src/iop/basecurve.c:216 +#: ../src/iop/basecurve.c:263 msgid "nikon like" msgstr "Similaire à Nikon" -#: ../src/iop/basecurve.c:217 +#: ../src/iop/basecurve.c:264 msgid "nikon like alternate" msgstr "Alternative à similaire à Nikon" -#: ../src/iop/basecurve.c:218 +#: ../src/iop/basecurve.c:265 msgid "sony alpha like" msgstr "Similaire aux Sony alpha" -#: ../src/iop/basecurve.c:219 +#: ../src/iop/basecurve.c:266 msgid "pentax like" msgstr "Similaire aux Pentax" -#: ../src/iop/basecurve.c:220 +#: ../src/iop/basecurve.c:267 msgid "ricoh like" msgstr "Similaire aux Ricoh" -#: ../src/iop/basecurve.c:221 +#: ../src/iop/basecurve.c:268 msgid "olympus like" msgstr "Similaire aux Olympus" -#: ../src/iop/basecurve.c:222 +#: ../src/iop/basecurve.c:269 msgid "olympus like alternate" msgstr "Alternative à similaire aux Olympus" -#: ../src/iop/basecurve.c:223 +#: ../src/iop/basecurve.c:270 msgid "panasonic like" msgstr "Similaire aux Panasonic" -#: ../src/iop/basecurve.c:224 +#: ../src/iop/basecurve.c:271 msgid "leica like" msgstr "Similaire aux Leica" -#: ../src/iop/basecurve.c:225 +#: ../src/iop/basecurve.c:272 msgid "kodak easyshare like" msgstr "Similaire au Kodak Easyshare" -#: ../src/iop/basecurve.c:226 +#: ../src/iop/basecurve.c:273 msgid "konica minolta like" msgstr "Similaire aux Konica et Minolta" -#: ../src/iop/basecurve.c:227 +#: ../src/iop/basecurve.c:274 msgid "samsung like" msgstr "Similaire aux Samsung" -#: ../src/iop/basecurve.c:228 +#: ../src/iop/basecurve.c:275 msgid "fujifilm like" msgstr "Similaire au Fujifilm" -#: ../src/iop/basecurve.c:229 +#: ../src/iop/basecurve.c:276 msgid "nokia like" msgstr "Similaire aux Nokia" #. clang-format off #. smoother cubic spline curve -#: ../src/iop/basecurve.c:284 ../src/iop/colorzones.c:2495 -#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1173 +#: ../src/iop/basecurve.c:331 ../src/iop/colorzones.c:2763 +#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1195 msgid "cubic spline" msgstr "Spline cubique" -#: ../src/iop/basecurve.c:343 +#: ../src/iop/basecurve.c:390 msgid "base curve" msgstr "Courbe de base" -#: ../src/iop/basecurve.c:350 +#: ../src/iop/basecurve.c:397 msgid "" "apply a view transform based on personal or camera manufacturer look,\n" "for corrective purposes, to prepare images for display" @@ -12770,69 +13296,69 @@ "Travaille en RVB, prend préférablement une entrée RVB linéaire,\n" "retourne du RVB non linéaire." -#: ../src/iop/basecurve.c:352 ../src/iop/cacorrect.c:78 -#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:135 -#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:727 +#: ../src/iop/basecurve.c:399 ../src/iop/cacorrect.c:84 +#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:120 +#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:779 #: ../src/iop/flip.c:110 ../src/iop/hazeremoval.c:112 -#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:73 -#: ../src/iop/invert.c:119 ../src/iop/lens.cc:241 ../src/iop/nlmeans.c:95 -#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:130 -#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:94 ../src/iop/spots.c:69 -#: ../src/iop/temperature.c:212 +#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:75 +#: ../src/iop/invert.c:136 ../src/iop/lens.cc:262 ../src/iop/nlmeans.c:89 +#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:144 +#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:96 ../src/iop/spots.c:69 +#: ../src/iop/temperature.c:220 msgid "corrective" msgstr "Correctif" -#: ../src/iop/basecurve.c:353 ../src/iop/channelmixer.c:140 -#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:142 +#: ../src/iop/basecurve.c:400 ../src/iop/channelmixer.c:140 +#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:143 #: ../src/iop/negadoctor.c:147 ../src/iop/profile_gamma.c:103 -#: ../src/iop/rgbcurve.c:144 ../src/iop/rgbcurve.c:146 -#: ../src/iop/rgblevels.c:124 ../src/iop/sigmoid.c:105 ../src/iop/soften.c:102 -#: ../src/iop/soften.c:104 +#: ../src/iop/rgbcurve.c:146 ../src/iop/rgbcurve.c:148 +#: ../src/iop/rgblevels.c:126 ../src/iop/sigmoid.c:210 ../src/iop/soften.c:104 +#: ../src/iop/soften.c:106 msgid "linear, RGB, display-referred" msgstr "Relatif à l’affichage, linéaire, RVB" -#: ../src/iop/basecurve.c:354 ../src/iop/basicadj.c:149 -#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:187 +#: ../src/iop/basecurve.c:401 ../src/iop/basicadj.c:175 +#: ../src/iop/colorbalance.c:165 ../src/iop/colorbalancergb.c:187 #: ../src/iop/dither.c:121 ../src/iop/filmicrgb.c:354 #: ../src/iop/graduatednd.c:148 ../src/iop/negadoctor.c:148 -#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:145 -#: ../src/iop/rgblevels.c:125 ../src/iop/sigmoid.c:104 -#: ../src/iop/vignette.c:161 ../src/iop/watermark.c:379 +#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:147 +#: ../src/iop/rgblevels.c:127 ../src/iop/sigmoid.c:210 +#: ../src/iop/vignette.c:122 ../src/iop/watermark.c:424 msgid "non-linear, RGB" msgstr "non-linéaire, RVB" -#: ../src/iop/basecurve.c:355 ../src/iop/dither.c:120 ../src/iop/dither.c:122 +#: ../src/iop/basecurve.c:402 ../src/iop/dither.c:120 ../src/iop/dither.c:122 #: ../src/iop/filmicrgb.c:355 ../src/iop/graduatednd.c:149 #: ../src/iop/negadoctor.c:149 ../src/iop/profile_gamma.c:105 -#: ../src/iop/rgblevels.c:126 ../src/iop/vignette.c:160 -#: ../src/iop/vignette.c:162 ../src/iop/watermark.c:378 -#: ../src/iop/watermark.c:380 +#: ../src/iop/rgblevels.c:128 ../src/iop/vignette.c:121 +#: ../src/iop/vignette.c:123 ../src/iop/watermark.c:423 +#: ../src/iop/watermark.c:425 msgid "non-linear, RGB, display-referred" msgstr "Relatif à l’affichage, non-linéaire, RVB" -#: ../src/iop/basecurve.c:2184 +#: ../src/iop/basecurve.c:2205 msgid "abscissa: input, ordinate: output. works on RGB channels" msgstr "" " • Abscisse : entrée\n" " • Ordonnée : sortie\n" "Fonctionne sur les canaux RVB." -#: ../src/iop/basecurve.c:2190 ../src/iop/basicadj.c:612 -#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1072 -#: ../src/iop/tonecurve.c:1184 +#: ../src/iop/basecurve.c:2211 ../src/iop/basicadj.c:642 +#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1133 +#: ../src/iop/tonecurve.c:1206 msgid "method to preserve colors when applying contrast" msgstr "" "Méthode pour préserver les couleurs lors de la modification du contraste" -#: ../src/iop/basecurve.c:2194 +#: ../src/iop/basecurve.c:2215 msgid "two exposures" msgstr "Deux expositions" -#: ../src/iop/basecurve.c:2195 +#: ../src/iop/basecurve.c:2216 msgid "three exposures" msgstr "Trois expositions" -#: ../src/iop/basecurve.c:2196 +#: ../src/iop/basecurve.c:2217 msgid "" "fuse this image stopped up/down a couple of times with itself, to compress " "high dynamic range. expose for the highlights before use." @@ -12842,11 +13368,11 @@ "pour compresser l’étendue dynamique.\n" "Exposer pour les hautes lumières avant utilisation." -#: ../src/iop/basecurve.c:2201 +#: ../src/iop/basecurve.c:2222 msgid "how many stops to shift the individual exposures apart" msgstr "Nombre d’ILs de décalage entre les différentes expositions" -#: ../src/iop/basecurve.c:2210 +#: ../src/iop/basecurve.c:2231 msgid "" "whether to shift exposure up or down (-1: reduce highlight, +1: reduce " "shadows)" @@ -12854,40 +13380,39 @@ "Pour décaler l’exposition positivement ou négativement :\n" "—1 : réduire les hautes lumières, +1 : réduire les ombres." -#: ../src/iop/basecurve.c:2215 ../src/iop/tonecurve.c:1187 +#: ../src/iop/basecurve.c:2236 ../src/iop/tonecurve.c:1209 msgid "scale for graph" msgstr "Échelle du graphe" -#: ../src/iop/basicadj.c:136 +#: ../src/iop/basicadj.c:162 msgid "this module is deprecated. please use the quick access panel instead." msgstr "Ce module est déprécié, utiliser le panneau d’accès rapide." -#: ../src/iop/basicadj.c:141 +#: ../src/iop/basicadj.c:167 msgid "basic adjustments" msgstr "Ajustement de base" -#: ../src/iop/basicadj.c:146 +#: ../src/iop/basicadj.c:172 msgid "apply usual image adjustments" msgstr "Appliquer les ajustements habituels de l’image" -#: ../src/iop/basicadj.c:147 ../src/iop/bilat.c:102 ../src/iop/bloom.c:81 -#: ../src/iop/blurs.c:93 ../src/iop/borders.c:198 ../src/iop/censorize.c:83 -#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:97 -#: ../src/iop/colorize.c:105 ../src/iop/colormapping.c:153 -#: ../src/iop/colorzones.c:145 ../src/iop/grain.c:434 ../src/iop/highpass.c:78 -#: ../src/iop/levels.c:138 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 -#: ../src/iop/lowpass.c:134 ../src/iop/monochrome.c:98 ../src/iop/soften.c:101 -#: ../src/iop/splittoning.c:103 ../src/iop/velvia.c:105 -#: ../src/iop/vibrance.c:95 ../src/iop/vignette.c:159 -#: ../src/iop/watermark.c:377 +#: ../src/iop/basicadj.c:173 ../src/iop/bilat.c:83 ../src/iop/bloom.c:81 +#: ../src/iop/blurs.c:93 ../src/iop/borders.c:323 ../src/iop/censorize.c:83 +#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:89 +#: ../src/iop/colorize.c:98 ../src/iop/colormapping.c:153 +#: ../src/iop/colorzones.c:146 ../src/iop/grain.c:450 ../src/iop/highpass.c:78 +#: ../src/iop/levels.c:140 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 +#: ../src/iop/lowpass.c:106 ../src/iop/monochrome.c:100 ../src/iop/soften.c:103 +#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:98 ../src/iop/vibrance.c:97 +#: ../src/iop/vignette.c:120 ../src/iop/watermark.c:422 msgid "creative" msgstr "Créatif" -#: ../src/iop/basicadj.c:150 ../src/iop/colorbalancergb.c:188 +#: ../src/iop/basicadj.c:176 ../src/iop/colorbalancergb.c:188 msgid "non-linear, RGB, scene-referred" msgstr "Relatif à la scène, non-linéaire, RVB" -#: ../src/iop/basicadj.c:593 +#: ../src/iop/basicadj.c:623 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -12899,39 +13424,39 @@ "car si mal ajusté les couleurs très sombres hors gamut seront tronquées\n" "en poussant les valeurs RVB négativement." -#: ../src/iop/basicadj.c:601 ../src/iop/exposure.c:1118 +#: ../src/iop/basicadj.c:631 ../src/iop/exposure.c:1136 msgid "adjust the exposure correction" msgstr "Ajuste la correction d’exposition" -#: ../src/iop/basicadj.c:605 +#: ../src/iop/basicadj.c:635 msgid "highlight compression adjustment" msgstr "Ajustement de la compression des hautes lumières" -#: ../src/iop/basicadj.c:609 ../src/iop/colisa.c:308 +#: ../src/iop/basicadj.c:639 ../src/iop/colisa.c:302 msgid "contrast adjustment" msgstr "Ajustement du contraste" -#: ../src/iop/basicadj.c:617 +#: ../src/iop/basicadj.c:647 msgid "middle gray adjustment" msgstr "Ajustement du gris moyen" -#: ../src/iop/basicadj.c:622 ../src/iop/colisa.c:309 +#: ../src/iop/basicadj.c:652 ../src/iop/colisa.c:303 msgid "brightness adjustment" msgstr "Ajustement de la luminosité" -#: ../src/iop/basicadj.c:625 +#: ../src/iop/basicadj.c:655 msgid "saturation adjustment" msgstr "Ajustement de la saturation" -#: ../src/iop/basicadj.c:628 +#: ../src/iop/basicadj.c:658 msgid "vibrance adjustment" msgstr "Ajustement de la vibrance" -#: ../src/iop/basicadj.c:632 +#: ../src/iop/basicadj.c:662 msgid "apply auto exposure based on the entire image" msgstr "Applique une exposition automatique en fonction de l’image complète" -#: ../src/iop/basicadj.c:639 +#: ../src/iop/basicadj.c:669 msgid "" "apply auto exposure based on a region defined by the user\n" "click and drag to draw the area\n" @@ -12941,51 +13466,51 @@ " • Clic et déplacer pour sélectionner la zone\n" " • Clic droit pour annuler" -#: ../src/iop/basicadj.c:647 +#: ../src/iop/basicadj.c:677 msgid "clip" msgstr "Tronquer" -#: ../src/iop/basicadj.c:649 +#: ../src/iop/basicadj.c:679 msgid "adjusts clipping value for auto exposure calculation" msgstr "Ajuste les valeurs seuils pour le calcul automatique de l’exposition" #. local contrast -#: ../src/iop/bilat.c:96 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:551 +#: ../src/iop/bilat.c:77 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:578 msgid "local contrast" msgstr "Contraste local" -#: ../src/iop/bilat.c:101 +#: ../src/iop/bilat.c:82 msgid "manipulate local and global contrast separately" msgstr "Manipule séparément le contraste local et global" -#: ../src/iop/bilat.c:103 ../src/iop/bilat.c:105 ../src/iop/bloom.c:82 +#: ../src/iop/bilat.c:84 ../src/iop/bilat.c:86 ../src/iop/bloom.c:82 #: ../src/iop/bloom.c:84 ../src/iop/colisa.c:91 ../src/iop/colisa.c:93 -#: ../src/iop/colorcontrast.c:98 ../src/iop/colorcontrast.c:100 +#: ../src/iop/colorcontrast.c:90 ../src/iop/colorcontrast.c:92 #: ../src/iop/colorcorrection.c:78 ../src/iop/colorcorrection.c:80 -#: ../src/iop/colorize.c:108 ../src/iop/colormapping.c:156 -#: ../src/iop/colorreconstruction.c:138 ../src/iop/colorzones.c:148 -#: ../src/iop/defringe.c:85 ../src/iop/grain.c:435 ../src/iop/grain.c:437 -#: ../src/iop/levels.c:141 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 -#: ../src/iop/monochrome.c:101 ../src/iop/nlmeans.c:96 ../src/iop/nlmeans.c:98 -#: ../src/iop/shadhi.c:200 ../src/iop/tonecurve.c:214 ../src/iop/vibrance.c:98 +#: ../src/iop/colorize.c:101 ../src/iop/colormapping.c:156 +#: ../src/iop/colorreconstruction.c:123 ../src/iop/colorzones.c:149 +#: ../src/iop/defringe.c:85 ../src/iop/grain.c:451 ../src/iop/grain.c:453 +#: ../src/iop/levels.c:143 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 +#: ../src/iop/monochrome.c:103 ../src/iop/nlmeans.c:90 ../src/iop/nlmeans.c:92 +#: ../src/iop/shadhi.c:147 ../src/iop/tonecurve.c:187 ../src/iop/vibrance.c:100 msgid "non-linear, Lab, display-referred" msgstr "Relatif à l’affichage, non-linéaire, Lab" -#: ../src/iop/bilat.c:104 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 -#: ../src/iop/colorcontrast.c:99 ../src/iop/colorcorrection.c:79 -#: ../src/iop/colorize.c:107 ../src/iop/colormapping.c:155 -#: ../src/iop/colorreconstruction.c:137 ../src/iop/colorzones.c:147 -#: ../src/iop/defringe.c:84 ../src/iop/grain.c:436 ../src/iop/levels.c:140 -#: ../src/iop/monochrome.c:100 ../src/iop/nlmeans.c:97 ../src/iop/shadhi.c:199 -#: ../src/iop/tonecurve.c:213 ../src/iop/vibrance.c:97 +#: ../src/iop/bilat.c:85 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 +#: ../src/iop/colorcontrast.c:91 ../src/iop/colorcorrection.c:79 +#: ../src/iop/colorize.c:100 ../src/iop/colormapping.c:155 +#: ../src/iop/colorreconstruction.c:122 ../src/iop/colorzones.c:148 +#: ../src/iop/defringe.c:84 ../src/iop/grain.c:452 ../src/iop/levels.c:142 +#: ../src/iop/monochrome.c:102 ../src/iop/nlmeans.c:91 ../src/iop/shadhi.c:146 +#: ../src/iop/tonecurve.c:186 ../src/iop/vibrance.c:99 msgid "non-linear, Lab" msgstr "Non-linéaire, Lab" -#: ../src/iop/bilat.c:178 +#: ../src/iop/bilat.c:195 msgid "HDR local tone-mapping" msgstr "Mappage tonal local HDR" -#: ../src/iop/bilat.c:431 +#: ../src/iop/bilat.c:441 msgid "" "the filter used for local contrast enhancement. bilateral is faster but can " "lead to artifacts around edges for extreme settings." @@ -12994,32 +13519,32 @@ "Bilatéral est plus rapide mais peut faire apparaître\n" "des artefacts au niveau des bords." -#: ../src/iop/bilat.c:435 ../src/iop/globaltonemap.c:635 +#: ../src/iop/bilat.c:445 ../src/iop/globaltonemap.c:668 msgid "detail" msgstr "Détail" -#: ../src/iop/bilat.c:438 +#: ../src/iop/bilat.c:448 msgid "changes the local contrast" msgstr "Change le contraste local" -#: ../src/iop/bilat.c:453 +#: ../src/iop/bilat.c:463 msgid "feature size of local details (spatial sigma of bilateral filter)" msgstr "Taille des détails locaux (sigma spatial du filtre bilatéral)" -#: ../src/iop/bilat.c:461 +#: ../src/iop/bilat.c:471 msgid "L difference to detect edges (range sigma of bilateral filter)" msgstr "" "Différence L pour la détection des bords (étendue sigma du filtre bilatéral)" -#: ../src/iop/bilat.c:467 +#: ../src/iop/bilat.c:477 msgid "changes the local contrast of highlights" msgstr "Change le contraste local des hautes lumières" -#: ../src/iop/bilat.c:473 +#: ../src/iop/bilat.c:483 msgid "changes the local contrast of shadows" msgstr "Change le contraste local des ombres" -#: ../src/iop/bilat.c:479 +#: ../src/iop/bilat.c:489 msgid "" "defines what counts as mid-tones. lower for better dynamic range compression " "(reduce shadow and highlight contrast), increase for more powerful local " @@ -13030,7 +13555,7 @@ "(réduit le contraste des ombres et hautes lumières),\n" "augmenter pour un contraste local plus puissant." -#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:396 +#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:423 msgid "surface blur" msgstr "Flou de surface" @@ -13038,24 +13563,24 @@ msgid "denoise (bilateral filter)" msgstr "Réduction bruit (bilatéral)" -#: ../src/iop/bilateral.cc:99 +#: ../src/iop/bilateral.cc:101 msgid "apply edge-aware surface blur to denoise or smoothen textures" msgstr "" "Applique un flou de surface sensible aux contours\n" "pour débruiter ou lisser les textures." -#: ../src/iop/bilateral.cc:102 ../src/iop/blurs.c:93 -#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:729 -#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/soften.c:103 -#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:107 +#: ../src/iop/bilateral.cc:104 ../src/iop/blurs.c:93 +#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:781 +#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/primaries.c:82 +#: ../src/iop/soften.c:105 ../src/iop/splittoning.c:107 ../src/iop/velvia.c:100 msgid "linear, RGB" msgstr "Linéaire, RVB" -#: ../src/iop/bilateral.cc:136 +#: ../src/iop/bilateral.cc:138 msgid "image too large" msgstr "Image trop grande" -#: ../src/iop/bilateral.cc:137 +#: ../src/iop/bilateral.cc:139 msgid "" "this module is unable to process\n" "images with more than 2 gigapixels.\n" @@ -13064,19 +13589,19 @@ "Ce module n’a pas pu allouer toute la mémoire nécessaire à son traitement,\n" "il a été ignoré en tout ou partie." -#: ../src/iop/bilateral.cc:351 +#: ../src/iop/bilateral.cc:353 msgid "spatial extent of the gaussian" msgstr "Extension spatiale du flou gaussien" -#: ../src/iop/bilateral.cc:355 +#: ../src/iop/bilateral.cc:357 msgid "how much to blur red" msgstr "Force du flou pour le rouge" -#: ../src/iop/bilateral.cc:360 +#: ../src/iop/bilateral.cc:362 msgid "how much to blur green" msgstr "Force du flou pour le vert" -#: ../src/iop/bilateral.cc:365 +#: ../src/iop/bilateral.cc:367 msgid "how much to blur blue" msgstr "Force du flou pour le bleu" @@ -13084,20 +13609,20 @@ msgid "apply Orton effect for a dreamy aetherical look" msgstr "Applique l’effet Orton pour un aspect vaporeux et onirique" -#: ../src/iop/bloom.c:368 ../src/iop/soften.c:369 ../src/libs/camera.c:567 -#: ../src/libs/masks.c:105 +#: ../src/iop/bloom.c:364 ../src/iop/soften.c:364 ../src/libs/camera.c:567 +#: ../src/libs/masks.c:106 msgid "size" msgstr "Taille" -#: ../src/iop/bloom.c:370 +#: ../src/iop/bloom.c:366 msgid "the size of bloom" msgstr "Taille de la lumière d’arrière-plan" -#: ../src/iop/bloom.c:374 +#: ../src/iop/bloom.c:370 msgid "the threshold of light" msgstr "Seuil de lumière" -#: ../src/iop/bloom.c:378 +#: ../src/iop/bloom.c:374 msgid "the strength of bloom" msgstr "Force de la lumière d’arrière-plan" @@ -13113,272 +13638,280 @@ msgid "simulate physically-accurate lens and motion blurs" msgstr "Simule des flous d’objectif, de mouvement ou gaussien" -#: ../src/iop/borders.c:187 +#: ../src/iop/borders.c:312 msgid "framing" msgstr "Cadre décoratif" -#: ../src/iop/borders.c:192 +#: ../src/iop/borders.c:317 msgid "borders|enlarge canvas|expand canvas" msgstr "bordures|agrandir canevas|étendre canevas" -#: ../src/iop/borders.c:197 +#: ../src/iop/borders.c:322 msgid "add solid borders or margins around the picture" msgstr "Ajoute des bordures pleines ou des marges autour de l’image" -#: ../src/iop/borders.c:199 ../src/iop/borders.c:201 ../src/iop/lut3d.c:144 +#: ../src/iop/borders.c:324 ../src/iop/borders.c:326 ../src/iop/lut3d.c:145 msgid "linear or non-linear, RGB, display-referred" msgstr "Relatif à l’affichage, linéaire ou non-linéaire, RVB" -#: ../src/iop/borders.c:727 +#: ../src/iop/borders.c:737 msgid "15:10 postcard white" msgstr "15 x 10 blanc" -#: ../src/iop/borders.c:732 +#: ../src/iop/borders.c:742 msgid "15:10 postcard black" msgstr "15 x 10 noir" -#: ../src/iop/borders.c:942 -msgid "size of the border in percent of the full image" -msgstr "Taille du cadre en pourcentage de l’image" +#: ../src/iop/borders.c:948 +msgid "which dimension to use for the size calculation" +msgstr "Quelle dimension utiliser pour le calcul de la taille" -#: ../src/iop/borders.c:944 ../src/iop/clipping.c:2218 ../src/iop/crop.c:1224 +#: ../src/iop/borders.c:954 +msgid "size of the border in percent of the chosen basis" +msgstr "Taille du cadre en pourcentage de la base choisie" + +#: ../src/iop/borders.c:956 ../src/iop/clipping.c:2271 ../src/iop/crop.c:1208 msgid "aspect" msgstr "Aspect" -#: ../src/iop/borders.c:945 +#: ../src/iop/borders.c:957 msgid "" -"select the aspect ratio (right click on slider below to type your own w:h)" +"select the aspect ratio\n" +"(right click on slider below to type your own w:h)" msgstr "" "Sélectionner les proportions\n" -"(Clic droit sur la réglette pour entrer des dimensions personnalisées L:H)." +"(Clic droit sur la réglette pour entrer des dimensions personnalisées L:H)" -#: ../src/iop/borders.c:948 +#: ../src/iop/borders.c:961 msgid "3:1" msgstr "3:1" -#: ../src/iop/borders.c:949 +#: ../src/iop/borders.c:962 msgid "95:33" msgstr "95:33" -#: ../src/iop/borders.c:950 +#: ../src/iop/borders.c:963 msgid "CinemaScope 2.39:1" msgstr "Cinémascope 2.39:1" -#: ../src/iop/borders.c:951 +#: ../src/iop/borders.c:964 msgid "2:1" msgstr "2:1" -#: ../src/iop/borders.c:952 +#: ../src/iop/borders.c:965 msgid "16:9" msgstr "16:9" -#: ../src/iop/borders.c:953 +#: ../src/iop/borders.c:966 msgid "5:3" msgstr "5:3" -#: ../src/iop/borders.c:954 +#: ../src/iop/borders.c:967 msgid "US Legal 8.5x14" msgstr "US Legal 8.5x14" -#: ../src/iop/borders.c:955 ../src/iop/clipping.c:2131 ../src/iop/crop.c:1128 +#: ../src/iop/borders.c:968 ../src/iop/clipping.c:2184 ../src/iop/crop.c:1112 msgid "golden cut" msgstr "Rapport d’or" -#: ../src/iop/borders.c:956 +#: ../src/iop/borders.c:969 msgid "16:10" msgstr "16:10" -#: ../src/iop/borders.c:957 +#: ../src/iop/borders.c:970 msgid "3:2 (4x6, 10x15cm)" msgstr "3:2 (4x6, 10x15cm)" -#: ../src/iop/borders.c:959 +#: ../src/iop/borders.c:972 msgid "DIN" msgstr "DIN" -#: ../src/iop/borders.c:960 +#: ../src/iop/borders.c:973 msgid "7:5" msgstr "7:5" -#: ../src/iop/borders.c:961 +#: ../src/iop/borders.c:974 msgid "4:3" msgstr "4:3" -#: ../src/iop/borders.c:962 +#: ../src/iop/borders.c:975 msgid "US Letter 8.5x11" msgstr "US Letter 8.5x11" -#: ../src/iop/borders.c:963 +#: ../src/iop/borders.c:976 msgid "14:11" msgstr "14:11" -#: ../src/iop/borders.c:964 +#: ../src/iop/borders.c:977 msgid "5:4 (8x10)" msgstr "5:4 (8x10)" -#: ../src/iop/borders.c:965 ../src/iop/clipping.c:2121 ../src/iop/crop.c:1118 -#: ../src/libs/filtering.c:301 ../src/libs/filters/ratio.c:126 -#: ../src/libs/histogram.c:141 +#: ../src/iop/borders.c:978 ../src/iop/clipping.c:2174 ../src/iop/crop.c:1102 +#: ../src/libs/filtering.c:307 ../src/libs/filters/ratio.c:126 +#: ../src/libs/histogram.c:118 msgid "square" msgstr "Carré" -#: ../src/iop/borders.c:966 +#: ../src/iop/borders.c:979 msgid "constant border" msgstr "Cadre constant" -#: ../src/iop/borders.c:967 ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:980 ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "custom..." msgstr "Personnalisé…" -#: ../src/iop/borders.c:972 -msgid "set the custom aspect ratio (right click to enter number or w:h)" +#: ../src/iop/borders.c:984 +msgid "" +"set the custom aspect ratio\n" +"(right click to enter number or w:h)" msgstr "" -"Sélectionner les proportions\n" -"(Clic droit pour entrer une dimension L:H)." +"Définit les proportions personnalisées\n" +"(Clic droit pour entrer une dimension L:H)" -#: ../src/iop/borders.c:975 +#: ../src/iop/borders.c:989 msgid "aspect ratio orientation of the image with border" msgstr "Orientation de l’image avec le cadre" -#: ../src/iop/borders.c:977 +#: ../src/iop/borders.c:991 msgid "horizontal position" msgstr "Position horizontale" -#: ../src/iop/borders.c:978 +#: ../src/iop/borders.c:992 msgid "" -"select the horizontal position ratio relative to top or right click and type " -"your own (y:h)" +"select the horizontal position ratio relative to top\n" +"(right click on slider below to type your own x:w)" msgstr "" "Sélectionne la position horizontale par rapport au côté supérieur\n" -"ou permet par clic droit d’entrer des dimensions personnalisées (Y:H)." +"(Clic droit pour entrer des dimensions personnalisées X:L)" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "center" msgstr "Centré" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "1/3" msgstr "1/3" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "3/8" msgstr "3/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "5/8" msgstr "5/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "2/3" msgstr "2/3" -#: ../src/iop/borders.c:986 +#: ../src/iop/borders.c:1000 msgid "custom horizontal position" msgstr "Position horizontale personnalisée" -#: ../src/iop/borders.c:988 +#: ../src/iop/borders.c:1002 msgid "vertical position" msgstr "Position verticale" -#: ../src/iop/borders.c:989 +#: ../src/iop/borders.c:1003 msgid "" -"select the vertical position ratio relative to left or right click and type " -"your own (x:w)" +"select the vertical position ratio relative to left\n" +"(right click on slider below to type your own y:h)" msgstr "" -"Sélectionne la position horizontale par rapport au côté supérieur\n" -"ou permet par clic droit d’entrer des dimensions personnalisées (X:L)." +"Sélectionne la position verticale par rapport au côté gauche\n" +"(Clic droit pour entrer des dimensions personnalisées Y:H)" -#: ../src/iop/borders.c:997 +#: ../src/iop/borders.c:1011 msgid "custom vertical position" msgstr "Position verticale personnalisée" -#: ../src/iop/borders.c:1002 +#: ../src/iop/borders.c:1017 msgid "size of the frame line in percent of min border width" msgstr "Taille du cadre interne en pourcentage de l’image" -#: ../src/iop/borders.c:1007 +#: ../src/iop/borders.c:1023 msgid "offset of the frame line beginning on picture side" msgstr "Décalage du cadre interne à partir du côté de l’image" -#: ../src/iop/borders.c:1014 ../src/iop/borders.c:1023 +#: ../src/iop/borders.c:1033 ../src/iop/borders.c:1044 msgid "border color" msgstr "Couleur de la bordure" -#: ../src/iop/borders.c:1018 +#: ../src/iop/borders.c:1037 msgid "select border color" msgstr "Sélectionne la couleur de la bordure" -#: ../src/iop/borders.c:1022 +#: ../src/iop/borders.c:1043 msgid "pick border color from image" msgstr "Choisir la couleur de la bordure dans l’image" -#: ../src/iop/borders.c:1023 ../src/iop/borders.c:1036 -#: ../src/iop/colorzones.c:2415 ../src/iop/colorzones.c:2425 -#: ../src/iop/negadoctor.c:848 ../src/iop/negadoctor.c:915 -#: ../src/iop/negadoctor.c:953 ../src/iop/rgbcurve.c:1369 -#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1026 -#: ../src/iop/rgblevels.c:1032 ../src/iop/rgblevels.c:1038 +#: ../src/iop/borders.c:1044 ../src/iop/borders.c:1061 +#: ../src/iop/colorzones.c:2662 ../src/iop/colorzones.c:2677 +#: ../src/iop/negadoctor.c:867 ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:972 ../src/iop/rgbcurve.c:1369 +#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1075 +#: ../src/iop/rgblevels.c:1083 ../src/iop/rgblevels.c:1091 msgid "pickers" msgstr "Pipettes" -#: ../src/iop/borders.c:1027 ../src/iop/borders.c:1036 +#: ../src/iop/borders.c:1049 ../src/iop/borders.c:1061 msgid "frame line color" msgstr "Couleur du cadre interne" -#: ../src/iop/borders.c:1031 +#: ../src/iop/borders.c:1054 msgid "select frame line color" msgstr "Sélectionne la couleur du cadre" -#: ../src/iop/borders.c:1035 +#: ../src/iop/borders.c:1060 msgid "pick frame line color from image" msgstr "Choisir la couleur du cadre interne dans l’image" #. make sure you put all your translatable strings into _() ! -#: ../src/iop/cacorrect.c:72 +#: ../src/iop/cacorrect.c:78 msgid "raw chromatic aberrations" msgstr "Aberrations chromatiques RAW" -#: ../src/iop/cacorrect.c:77 +#: ../src/iop/cacorrect.c:83 msgid "correct chromatic aberrations for Bayer sensors" msgstr "" "Correction automatique des\n" "aberrations chromatiques,\n" "uniquement pour les capteur de Bayer." -#: ../src/iop/cacorrect.c:79 ../src/iop/cacorrect.c:81 +#: ../src/iop/cacorrect.c:85 ../src/iop/cacorrect.c:87 #: ../src/iop/cacorrectrgb.c:171 ../src/iop/cacorrectrgb.c:173 #: ../src/iop/demosaic.c:294 ../src/iop/highlights.c:180 -#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:74 -#: ../src/iop/hotpixels.c:76 ../src/iop/rawdenoise.c:131 -#: ../src/iop/rawdenoise.c:133 ../src/iop/rawprepare.c:159 -#: ../src/iop/rawprepare.c:161 ../src/iop/temperature.c:213 -#: ../src/iop/temperature.c:215 +#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:76 +#: ../src/iop/hotpixels.c:78 ../src/iop/rawdenoise.c:145 +#: ../src/iop/rawdenoise.c:147 ../src/iop/rawprepare.c:175 +#: ../src/iop/rawprepare.c:177 ../src/iop/temperature.c:221 +#: ../src/iop/temperature.c:223 msgid "linear, raw, scene-referred" msgstr "Relatif à la scène, linéaire, RAW" -#: ../src/iop/cacorrect.c:80 ../src/iop/cacorrectrgb.c:172 -#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:121 -#: ../src/iop/rawdenoise.c:132 ../src/iop/rawprepare.c:160 -#: ../src/iop/temperature.c:214 +#: ../src/iop/cacorrect.c:86 ../src/iop/cacorrectrgb.c:172 +#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:138 +#: ../src/iop/rawdenoise.c:146 ../src/iop/rawprepare.c:176 +#: ../src/iop/temperature.c:222 msgid "linear, raw" msgstr "Linéaire, RAW" -#: ../src/iop/cacorrect.c:1405 +#: ../src/iop/cacorrect.c:1424 msgid "iteration runs, default is twice" msgstr "Nombre d’itérations, deux par défaut" -#: ../src/iop/cacorrect.c:1408 +#: ../src/iop/cacorrect.c:1427 msgid "activate colorshift correction for blue & red channels" msgstr "" "Activer la correction des dérives colorées pour les canaux bleu et rouge" -#: ../src/iop/cacorrect.c:1415 +#: ../src/iop/cacorrect.c:1434 msgid "" "automatic chromatic aberration correction\n" -"only for Bayer raw files" +"only for Bayer raw files with 3 color channels" msgstr "" "Correction automatique des aberrations chromatiques,\n" -"uniquement pour les images RAW avec capteur de Bayer." +"uniquement pour les images raw avec capteur de Bayer ayant 3 canaux de " +"couleur" #: ../src/iop/cacorrectrgb.c:164 ../src/iop/defringe.c:76 msgid "chromatic aberrations" @@ -13388,7 +13921,7 @@ msgid "correct chromatic aberrations" msgstr "Corrige les aberrations chromatiques" -#: ../src/iop/cacorrectrgb.c:743 +#: ../src/iop/cacorrectrgb.c:745 msgid "" "channel used as a reference to\n" "correct the other channels.\n" @@ -13401,11 +13934,11 @@ "Utiliser le canal le plus net si certains canaux sont flous,\n" "et changer le guide de canal sil y a des artefacts." -#: ../src/iop/cacorrectrgb.c:750 +#: ../src/iop/cacorrectrgb.c:752 msgid "increase for stronger correction" msgstr "Augmenter pour des aberrations chromatiques importantes" -#: ../src/iop/cacorrectrgb.c:752 +#: ../src/iop/cacorrectrgb.c:754 msgid "" "balance between smoothing colors\n" "and preserving them.\n" @@ -13415,12 +13948,12 @@ "Balance entre lisser ou préserver les couleurs.\n" "Les hautes valeurs peuvent entraîner des sur-expositions et des halos." -#: ../src/iop/cacorrectrgb.c:757 +#: ../src/iop/cacorrectrgb.c:759 msgctxt "section" msgid "advanced parameters" msgstr "Paramètres avancés" -#: ../src/iop/cacorrectrgb.c:759 +#: ../src/iop/cacorrectrgb.c:761 msgid "" "correction mode to use.\n" "can help with multiple\n" @@ -13435,7 +13968,7 @@ "très endommagées. « Assombrir seulement » est particulièrement efficace\n" "pour corriger les aberrations chromatiques bleues." -#: ../src/iop/cacorrectrgb.c:767 +#: ../src/iop/cacorrectrgb.c:769 msgid "" "runs an iterative approach\n" "with several radii.\n" @@ -13469,35 +14002,35 @@ msgid "special, RGB, scene-referred" msgstr "Relatif à la scène, spécial, RGB" -#: ../src/iop/censorize.c:412 +#: ../src/iop/censorize.c:404 msgid "radius_1" msgstr "Rayon_1" -#: ../src/iop/censorize.c:414 +#: ../src/iop/censorize.c:406 msgid "pixelate" msgstr "Pixeliser" -#: ../src/iop/censorize.c:416 +#: ../src/iop/censorize.c:408 msgid "radius_2" msgstr "Rayon_2" -#: ../src/iop/censorize.c:418 +#: ../src/iop/censorize.c:410 msgid "noise" msgstr "Bruit" -#: ../src/iop/censorize.c:420 +#: ../src/iop/censorize.c:412 msgid "radius of gaussian blur before pixellation" msgstr "Rayon du flou gaussien avant la pixellisation" -#: ../src/iop/censorize.c:421 +#: ../src/iop/censorize.c:413 msgid "radius of gaussian blur after pixellation" msgstr "Rayon du flou gaussien après la pixellisation" -#: ../src/iop/censorize.c:422 +#: ../src/iop/censorize.c:414 msgid "radius of the intermediate pixellation" msgstr "Rayon de la pixellisation intermédiaire" -#: ../src/iop/censorize.c:423 +#: ../src/iop/censorize.c:415 msgid "amount of noise to add at the end" msgstr "Quantité de bruit à ajouter à la fin" @@ -13511,7 +14044,7 @@ msgstr "" "Ce module est déprécié, utiliser « Calibration des couleurs » à la place." -#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:229 +#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:230 msgid "" "perform color space corrections\n" "such as white balance, channels mixing\n" @@ -13521,168 +14054,168 @@ "telles que la balance des blancs, le mélange des canaux,\n" "et fait des conversions en monochrome simulant la pellicule" -#: ../src/iop/channelmixer.c:614 +#: ../src/iop/channelmixer.c:633 msgid "destination" msgstr "Canal de destination" -#: ../src/iop/channelmixer.c:621 +#: ../src/iop/channelmixer.c:640 msgctxt "channelmixer" msgid "gray" msgstr "Gris" -#: ../src/iop/channelmixer.c:627 +#: ../src/iop/channelmixer.c:646 msgid "amount of red channel in the output channel" msgstr "Quantité du canal rouge dans le canal de destination" -#: ../src/iop/channelmixer.c:633 +#: ../src/iop/channelmixer.c:652 msgid "amount of green channel in the output channel" msgstr "Quantité du canal vert dans le canal de destination" -#: ../src/iop/channelmixer.c:639 +#: ../src/iop/channelmixer.c:658 msgid "amount of blue channel in the output channel" msgstr "Quantité du canal bleu dans le canal de destination" -#: ../src/iop/channelmixer.c:655 ../src/iop/channelmixerrgb.c:524 +#: ../src/iop/channelmixer.c:674 ../src/iop/channelmixerrgb.c:588 msgid "swap R and B" msgstr "Échanger R et B" -#: ../src/iop/channelmixer.c:661 ../src/iop/channelmixerrgb.c:498 +#: ../src/iop/channelmixer.c:680 ../src/iop/channelmixerrgb.c:562 msgid "swap G and B" msgstr "Échanger V et B" -#: ../src/iop/channelmixer.c:667 +#: ../src/iop/channelmixer.c:686 msgid "color contrast boost" msgstr "Renforce le contraste de couleur" -#: ../src/iop/channelmixer.c:673 +#: ../src/iop/channelmixer.c:692 msgid "color details boost" msgstr "Renforcer les détails de couleur" -#: ../src/iop/channelmixer.c:679 +#: ../src/iop/channelmixer.c:698 msgid "color artifacts boost" msgstr "Renforcer les objets de couleur" -#: ../src/iop/channelmixer.c:685 +#: ../src/iop/channelmixer.c:704 msgid "B/W luminance-based" msgstr "N&B basée sur la luminance" -#: ../src/iop/channelmixer.c:691 +#: ../src/iop/channelmixer.c:710 msgid "B/W artifacts boost" msgstr "N&B et renforcement des objets" -#: ../src/iop/channelmixer.c:697 +#: ../src/iop/channelmixer.c:716 msgid "B/W smooth skin" msgstr "N&B et peau lisse" -#: ../src/iop/channelmixer.c:703 +#: ../src/iop/channelmixer.c:722 msgid "B/W blue artifacts reduce" msgstr "N&B et réduction des objets bleus" -#: ../src/iop/channelmixer.c:710 +#: ../src/iop/channelmixer.c:729 msgid "B/W Ilford Delta 100-400" msgstr "N&B Ilford Delta 100 – 400" -#: ../src/iop/channelmixer.c:717 +#: ../src/iop/channelmixer.c:736 msgid "B/W Ilford Delta 3200" msgstr "N&B Ilford Delta 3200" -#: ../src/iop/channelmixer.c:724 +#: ../src/iop/channelmixer.c:743 msgid "B/W Ilford FP4" msgstr "N&B Ilford FP4" -#: ../src/iop/channelmixer.c:731 +#: ../src/iop/channelmixer.c:750 msgid "B/W Ilford HP5" msgstr "N&B Ilford HP5" -#: ../src/iop/channelmixer.c:738 +#: ../src/iop/channelmixer.c:757 msgid "B/W Ilford SFX" msgstr "N&B Ilford SFX" -#: ../src/iop/channelmixer.c:745 +#: ../src/iop/channelmixer.c:764 msgid "B/W Kodak T-Max 100" msgstr "N&B Kodak T-Max 100" -#: ../src/iop/channelmixer.c:752 +#: ../src/iop/channelmixer.c:771 msgid "B/W Kodak T-max 400" msgstr "N&B Kodak T-Max 400" -#: ../src/iop/channelmixer.c:759 +#: ../src/iop/channelmixer.c:778 msgid "B/W Kodak Tri-X 400" msgstr "N&B Kodak Tri-X 400" -#: ../src/iop/channelmixerrgb.c:219 +#: ../src/iop/channelmixerrgb.c:220 msgid "color calibration" msgstr "Calibration des couleurs" -#: ../src/iop/channelmixerrgb.c:224 +#: ../src/iop/channelmixerrgb.c:225 msgid "channel mixer|white balance|monochrome" msgstr "mixeur de canaux|balance des blancs|monochrome" -#: ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:235 msgid "linear, RGB or XYZ" msgstr "Linéaire, RVB ou XYZ" -#: ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:460 msgid "B&W: luminance-based" msgstr "N&B : basée sur la luminance" -#: ../src/iop/channelmixerrgb.c:431 +#: ../src/iop/channelmixerrgb.c:495 msgid "B&W: ILFORD HP5+" msgstr "N&B : Ilford HP5+" -#: ../src/iop/channelmixerrgb.c:440 +#: ../src/iop/channelmixerrgb.c:504 msgid "B&W: ILFORD DELTA 100" msgstr "N&B : Ilford Delta 100" -#: ../src/iop/channelmixerrgb.c:450 +#: ../src/iop/channelmixerrgb.c:514 msgid "B&W: ILFORD DELTA 400 - 3200" msgstr "N&B : Ilford Delta 400 - 3200" -#: ../src/iop/channelmixerrgb.c:459 +#: ../src/iop/channelmixerrgb.c:523 msgid "B&W: ILFORD FP4+" msgstr "N&B : Ilford FP4+" -#: ../src/iop/channelmixerrgb.c:468 +#: ../src/iop/channelmixerrgb.c:532 msgid "B&W: Fuji Acros 100" msgstr "N&B : Fuji Acros 100" -#: ../src/iop/channelmixerrgb.c:485 +#: ../src/iop/channelmixerrgb.c:549 msgid "basic channel mixer" msgstr "Mixeur de canaux de base" -#: ../src/iop/channelmixerrgb.c:511 +#: ../src/iop/channelmixerrgb.c:575 msgid "swap G and R" msgstr "Échanger V et R" -#: ../src/iop/channelmixerrgb.c:1869 +#: ../src/iop/channelmixerrgb.c:1926 msgid "(daylight)" msgstr "(lumière du jour)" -#: ../src/iop/channelmixerrgb.c:1871 +#: ../src/iop/channelmixerrgb.c:1928 msgid "(black body)" msgstr "(corps noir)" -#: ../src/iop/channelmixerrgb.c:1873 +#: ../src/iop/channelmixerrgb.c:1930 msgid "(invalid)" msgstr "(invalide)" -#: ../src/iop/channelmixerrgb.c:1877 ../src/iop/channelmixerrgb.c:1935 +#: ../src/iop/channelmixerrgb.c:1934 ../src/iop/channelmixerrgb.c:1992 msgid "very good" msgstr "Très bon" -#: ../src/iop/channelmixerrgb.c:1879 ../src/iop/channelmixerrgb.c:1937 +#: ../src/iop/channelmixerrgb.c:1936 ../src/iop/channelmixerrgb.c:1994 msgid "good" msgstr "Bon" -#: ../src/iop/channelmixerrgb.c:1881 ../src/iop/channelmixerrgb.c:1939 +#: ../src/iop/channelmixerrgb.c:1938 ../src/iop/channelmixerrgb.c:1996 msgid "passable" msgstr "Passable" -#: ../src/iop/channelmixerrgb.c:1883 ../src/iop/channelmixerrgb.c:1941 +#: ../src/iop/channelmixerrgb.c:1940 ../src/iop/channelmixerrgb.c:1998 msgid "bad" msgstr "Mauvais" -#: ../src/iop/channelmixerrgb.c:1890 +#: ../src/iop/channelmixerrgb.c:1947 #, c-format msgid "" "\n" @@ -13719,7 +14252,7 @@ "Compensation d’exposition : \t%+.2f IL\n" "Décalage du noir : \t\t\t%+.4f" -#: ../src/iop/channelmixerrgb.c:1946 +#: ../src/iop/channelmixerrgb.c:2003 #, c-format msgid "" "\n" @@ -13738,27 +14271,44 @@ "Compensation d’exposition : \t%+.2f IL\n" "Décalage du noir : \t\t\t%+.4f" -#: ../src/iop/channelmixerrgb.c:1978 +#: ../src/iop/channelmixerrgb.c:2054 msgid "double CAT applied" msgstr "CAT appliquée en double" -#: ../src/iop/channelmixerrgb.c:1979 +#: ../src/iop/channelmixerrgb.c:2055 msgid "" "you have 2 instances or more of color calibration,\n" -"all performing chromatic adaptation.\n" -"this can lead to inconsistencies, unless you\n" +"all providing chromatic adaptation.\n" +"this can lead to inconsistencies unless you\n" "use them with masks or know what you are doing." msgstr "" "Il y a deux instances ou plus du module « Calibration des couleurs »,\n" -"appliquant chacune une adaptation chromatique.\n" +"toutes proposant une adaptation chromatique.\n" "Cela peut entraîner des incohérences, sauf si elles sont utilisées\n" "avec des masques et en connaissance de cause." -#: ../src/iop/channelmixerrgb.c:1991 +#: ../src/iop/channelmixerrgb.c:2071 +msgid "white balance applied twice" +msgstr "Balance des blancs appliquée deux fois" + +#: ../src/iop/channelmixerrgb.c:2072 +msgid "" +"the color calibration module is enabled and already provides\n" +"chromatic adaptation.\n" +"set the white balance here to camera reference (D65)\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"Le module de « Calibration des couleurs » est activé\n" +"et effectue déjà une adaptation chromatique.\n" +"Positionner la balance des blancs ici sur la référence de boîtier (D65)\n" +"ou désactiver l’adaptation chromatique du module « Calibration des " +"couleurs »." + +#: ../src/iop/channelmixerrgb.c:2080 msgid "white balance module error" msgstr "Erreur du module « Balance des blancs »" -#: ../src/iop/channelmixerrgb.c:1992 +#: ../src/iop/channelmixerrgb.c:2081 msgid "" "the white balance module is not using the camera\n" "reference illuminant, which will cause issues here\n" @@ -13769,20 +14319,50 @@ "du boîtier, cela entraînera des problèmes d’adaptation chromatique.\n" "Choisir le neutre du boîtier ou désactiver ceadaptation chromatique." -#: ../src/iop/channelmixerrgb.c:2083 +#: ../src/iop/channelmixerrgb.c:2095 ../src/iop/channelmixerrgb.c:2104 +msgid "white balance missing" +msgstr "Balance des blancs manquante" + +#: ../src/iop/channelmixerrgb.c:2096 +msgid "" +"this module is not providing a valid reference illuminant\n" +"causing chromatic adaptation issues in color calibration.\n" +"enable this module and either set it to reference\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"Ce module ne fourni pas un point de référence d'illuminant valide " +"entraînant\n" +"des problèmes dans l'adaptation chromatique de « Calibration des " +"couleurs ».\n" +"Activer ce module et le définir comme référence\n" +"ou désactiver l'adaptation chromatique de « Calibration des couleurs »." + +#: ../src/iop/channelmixerrgb.c:2105 +msgid "" +"the white balance module is not providing a valid reference\n" +"illuminant causing issues with chromatic adaptation here.\n" +"enable white balance and either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" +"Le module « Balance des blancs » ne fourni pas une référence neutre\n" +"d'illuminant entraînant des problèmes d’adaptation chromatique ici.\n" +"Activer le module « Balance des blancs » et soit le définir comme référence\n" +"ou désactiver l'adaptation chromatique ici." + +#: ../src/iop/channelmixerrgb.c:2196 msgid "auto-detection of white balance completed" msgstr "Détection automatique de la balance des blancs terminée" -#: ../src/iop/channelmixerrgb.c:2236 +#: ../src/iop/channelmixerrgb.c:2346 msgid "channelmixerrgb works only on RGB input" msgstr "« Calibration des couleurs » ne marche qu’avec une entrée RVB" -#: ../src/iop/channelmixerrgb.c:3621 +#: ../src/iop/channelmixerrgb.c:3692 #, c-format msgid "CCT: %.0f K (daylight)" msgstr "CCT : %.0f K (lumière du jour)" -#: ../src/iop/channelmixerrgb.c:3624 +#: ../src/iop/channelmixerrgb.c:3695 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a daylight spectrum,\n" @@ -13793,12 +14373,12 @@ "du jour,\n" "donc sa température est pertinente et significative avec un illuminant D." -#: ../src/iop/channelmixerrgb.c:3630 +#: ../src/iop/channelmixerrgb.c:3701 #, c-format msgid "CCT: %.0f K (black body)" msgstr "CCT : %.0f K (corps noir)" -#: ../src/iop/channelmixerrgb.c:3633 +#: ../src/iop/channelmixerrgb.c:3704 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a black body spectrum,\n" @@ -13810,12 +14390,12 @@ "donc sa température est pertinente et significative avec un illuminant " "planckien." -#: ../src/iop/channelmixerrgb.c:3639 +#: ../src/iop/channelmixerrgb.c:3710 #, c-format msgid "CCT: %.0f K (invalid)" msgstr "CCT : %.0f K (invalide)" -#: ../src/iop/channelmixerrgb.c:3642 +#: ../src/iop/channelmixerrgb.c:3713 msgid "" "approximated correlated color temperature.\n" "this illuminant cannot be accurately modeled by a daylight or black body " @@ -13829,12 +14409,12 @@ "donc sa température n’est ni pertinente ni significative et il faut utiliser " "un illuminant personnalisé." -#: ../src/iop/channelmixerrgb.c:3651 +#: ../src/iop/channelmixerrgb.c:3722 #, c-format msgid "CCT: undefined" msgstr "CCT : non défini" -#: ../src/iop/channelmixerrgb.c:3654 +#: ../src/iop/channelmixerrgb.c:3725 msgid "" "the approximated correlated color temperature\n" "cannot be computed at all so you need to use a custom illuminant." @@ -13842,16 +14422,16 @@ "La température de couleur proximale approchée\n" "ne peut être estimée, utiliser un illuminant personnalisé." -#: ../src/iop/channelmixerrgb.c:3967 +#: ../src/iop/channelmixerrgb.c:4038 msgid "white balance successfully extracted from raw image" msgstr "La balance des blancs a été extraite de l’image RAW avec succès" #. We need to recompute only the full preview -#: ../src/iop/channelmixerrgb.c:3973 +#: ../src/iop/channelmixerrgb.c:4044 msgid "auto-detection of white balance started…" msgstr "L’auto-détection de la balance des blancs a démarré…" -#: ../src/iop/channelmixerrgb.c:4078 +#: ../src/iop/channelmixerrgb.c:4149 msgid "" "color calibration: the sum of the gray channel parameters is zero, " "normalization will be disabled." @@ -13860,7 +14440,7 @@ "la normalisation va être désactivée." #. Write report in GUI -#: ../src/iop/channelmixerrgb.c:4126 +#: ../src/iop/channelmixerrgb.c:4194 #, c-format msgid "" "L: \t%.1f %%\n" @@ -13871,27 +14451,27 @@ "h : \t%.1f °\n" "c : \t%.1f" -#: ../src/iop/channelmixerrgb.c:4394 ../src/iop/clipping.c:2087 -#: ../src/iop/colorbalancergb.c:1873 ../src/iop/filmicrgb.c:4419 -#: ../src/iop/negadoctor.c:829 ../src/iop/toneequal.c:3319 -#: ../src/libs/image.c:460 ../src/views/lighttable.c:1258 +#: ../src/iop/channelmixerrgb.c:4462 ../src/iop/clipping.c:2140 +#: ../src/iop/colorbalancergb.c:1944 ../src/iop/filmicrgb.c:4483 +#: ../src/iop/negadoctor.c:848 ../src/iop/toneequal.c:3372 +#: ../src/libs/image.c:490 ../src/views/lighttable.c:1258 msgid "page" msgstr "Page" #. Page CAT -#: ../src/iop/channelmixerrgb.c:4397 +#: ../src/iop/channelmixerrgb.c:4465 msgid "CAT" msgstr "CAT" -#: ../src/iop/channelmixerrgb.c:4398 +#: ../src/iop/channelmixerrgb.c:4466 msgid "chromatic adaptation transform" msgstr "Transformation d’adaptation chromatique" -#: ../src/iop/channelmixerrgb.c:4400 +#: ../src/iop/channelmixerrgb.c:4468 msgid "adaptation" msgstr "Adaptation" -#: ../src/iop/channelmixerrgb.c:4403 +#: ../src/iop/channelmixerrgb.c:4471 msgid "" "choose the method to adapt the illuminant\n" "and the colorspace in which the module works: \n" @@ -13913,7 +14493,7 @@ " • Aucun désactive toute adaptation et utilise l’espace RVB de travail du " "pipeline." -#: ../src/iop/channelmixerrgb.c:4423 +#: ../src/iop/channelmixerrgb.c:4491 msgid "" "this is the color of the scene illuminant before chromatic adaptation\n" "this color will be turned into pure white by the adaptation." @@ -13921,27 +14501,27 @@ "Couleur de l’illuminant de la scène avant l’adaptation chromatique,\n" "elle sera transformée en blanc pur par l’adaptation." -#: ../src/iop/channelmixerrgb.c:4431 +#: ../src/iop/channelmixerrgb.c:4499 msgid "picker" msgstr "Pipette" -#: ../src/iop/channelmixerrgb.c:4433 ../src/iop/temperature.c:2047 +#: ../src/iop/channelmixerrgb.c:4501 ../src/iop/temperature.c:2015 msgid "set white balance to detected from area" msgstr "Choisir la balance des blancs depuis une zone" -#: ../src/iop/channelmixerrgb.c:4437 ../src/iop/negadoctor.c:953 +#: ../src/iop/channelmixerrgb.c:4505 ../src/iop/negadoctor.c:972 msgid "illuminant" msgstr "Illuminant" -#: ../src/iop/channelmixerrgb.c:4443 ../src/iop/temperature.c:2107 +#: ../src/iop/channelmixerrgb.c:4511 ../src/iop/temperature.c:2072 msgid "temperature" msgstr "Température" -#: ../src/iop/channelmixerrgb.c:4474 -msgid "spot color mapping" -msgstr "Mappage des couleurs" +#: ../src/iop/channelmixerrgb.c:4542 +msgid "area color mapping" +msgstr "Mappage zone de couleurs" -#: ../src/iop/channelmixerrgb.c:4480 +#: ../src/iop/channelmixerrgb.c:4548 msgid "" "define a target chromaticity (hue and chroma) for a particular region of the " "image (the control sample), which you then match against the same target " @@ -13957,17 +14537,17 @@ "essentielle du sujet,\n" "ou une surface immobile et éclairée de manière constante dans les images." -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/channelmixerrgb.c:4502 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/channelmixerrgb.c:4573 +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/channelmixerrgb.c:4570 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/channelmixerrgb.c:4641 msgid "mapping" msgstr "Mappage" -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/exposure.c:1188 -msgid "spot mode" -msgstr "Mode ponctuel" +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/exposure.c:1206 +msgid "area mode" +msgstr "Mode de la zone" -#: ../src/iop/channelmixerrgb.c:4488 +#: ../src/iop/channelmixerrgb.c:4556 msgid "" "\"correction\" automatically adjust the illuminant\n" "such that the input color is mapped to the target.\n" @@ -13980,19 +14560,19 @@ "CAT,\n" "et peut être utilisée pour échantillonner la cible" -#: ../src/iop/channelmixerrgb.c:4493 ../src/iop/exposure.c:1194 +#: ../src/iop/channelmixerrgb.c:4561 ../src/iop/exposure.c:1212 msgid "correction" msgstr "Correction" -#: ../src/iop/channelmixerrgb.c:4494 ../src/iop/exposure.c:1195 +#: ../src/iop/channelmixerrgb.c:4562 ../src/iop/exposure.c:1213 msgid "measure" msgstr "Mesure" -#: ../src/iop/channelmixerrgb.c:4500 +#: ../src/iop/channelmixerrgb.c:4568 msgid "take channel mixing into account" msgstr "Prendre en compte le mixeur de canaux" -#: ../src/iop/channelmixerrgb.c:4507 +#: ../src/iop/channelmixerrgb.c:4575 msgid "" "compute the target by taking the channel mixing into account.\n" "if disabled, only the CAT is considered." @@ -14000,16 +14580,16 @@ "Calcule la cible en utilisant le mixage des canaux en cours.\n" "Si désactivé seul le CAT est considéré." -#: ../src/iop/channelmixerrgb.c:4519 ../src/iop/exposure.c:1202 +#: ../src/iop/channelmixerrgb.c:4587 ../src/iop/exposure.c:1220 msgctxt "section" msgid "input" msgstr "Entrée" -#: ../src/iop/channelmixerrgb.c:4526 ../src/iop/exposure.c:1210 +#: ../src/iop/channelmixerrgb.c:4594 ../src/iop/exposure.c:1228 msgid "the input color that should be mapped to the target" msgstr "La couleur d’entrée à mapper sur la cible" -#: ../src/iop/channelmixerrgb.c:4532 +#: ../src/iop/channelmixerrgb.c:4600 msgid "" "L: \tN/A\n" "h: \tN/A\n" @@ -14019,114 +14599,114 @@ "h : \tN/A\n" "c : \tN/A" -#: ../src/iop/channelmixerrgb.c:4535 ../src/iop/exposure.c:1218 +#: ../src/iop/channelmixerrgb.c:4603 ../src/iop/exposure.c:1236 msgid "these LCh coordinates are computed from CIE Lab 1976 coordinates" msgstr "Ces coordonnés LCh sont calculés depuis les coordonnés CIE Lab 1976" -#: ../src/iop/channelmixerrgb.c:4543 ../src/iop/exposure.c:1225 +#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/exposure.c:1243 msgctxt "section" msgid "target" msgstr "Cible" -#: ../src/iop/channelmixerrgb.c:4550 +#: ../src/iop/channelmixerrgb.c:4618 msgid "the desired target color after mapping" msgstr "La cible recherchée après le mappage de l’exposition" -#: ../src/iop/channelmixerrgb.c:4589 +#: ../src/iop/channelmixerrgb.c:4657 msgid "input R" msgstr "R en entrée" -#: ../src/iop/channelmixerrgb.c:4594 +#: ../src/iop/channelmixerrgb.c:4662 msgid "input G" msgstr "V en entrée" -#: ../src/iop/channelmixerrgb.c:4599 +#: ../src/iop/channelmixerrgb.c:4667 msgid "input B" msgstr "B en entrée" -#: ../src/iop/channelmixerrgb.c:4609 +#: ../src/iop/channelmixerrgb.c:4677 msgid "output R" msgstr "R en sortie" -#: ../src/iop/channelmixerrgb.c:4610 +#: ../src/iop/channelmixerrgb.c:4678 msgid "output G" msgstr "V en sortie" -#: ../src/iop/channelmixerrgb.c:4611 +#: ../src/iop/channelmixerrgb.c:4679 msgid "output B" msgstr "B en sortie" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "colorfulness" msgstr "Saturation" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "output colorfulness" msgstr "Saturation de la sortie" -#: ../src/iop/channelmixerrgb.c:4617 +#: ../src/iop/channelmixerrgb.c:4685 msgid "output brightness" msgstr "Luminosité de la sortie" -#: ../src/iop/channelmixerrgb.c:4620 +#: ../src/iop/channelmixerrgb.c:4688 msgid "output gray" msgstr "Gris en sortie" -#: ../src/iop/channelmixerrgb.c:4635 +#: ../src/iop/channelmixerrgb.c:4703 msgid "calibrate with a color checker" msgstr "Calibrer avec une charte couleur" -#: ../src/iop/channelmixerrgb.c:4640 +#: ../src/iop/channelmixerrgb.c:4708 msgid "use a color checker target to autoset CAT and channels" msgstr "Utiliser une charte couleur pour régler la CAT et les canaux" -#: ../src/iop/channelmixerrgb.c:4647 ../src/iop/channelmixerrgb.c:4660 -#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/channelmixerrgb.c:4696 -#: ../src/iop/channelmixerrgb.c:4705 ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4715 ../src/iop/channelmixerrgb.c:4728 +#: ../src/iop/channelmixerrgb.c:4746 ../src/iop/channelmixerrgb.c:4764 +#: ../src/iop/channelmixerrgb.c:4773 ../src/iop/channelmixerrgb.c:4781 msgid "calibrate" msgstr "Calibrer" -#: ../src/iop/channelmixerrgb.c:4647 +#: ../src/iop/channelmixerrgb.c:4715 msgid "chart" msgstr "Charte" -#: ../src/iop/channelmixerrgb.c:4648 +#: ../src/iop/channelmixerrgb.c:4716 msgid "choose the vendor and the type of your chart" msgstr "Choisir le fabricant et le modèle de la charte" -#: ../src/iop/channelmixerrgb.c:4650 +#: ../src/iop/channelmixerrgb.c:4718 msgid "Xrite ColorChecker 24 pre-2014" msgstr "Xrite ColorChecker 24 (avant 2014)" -#: ../src/iop/channelmixerrgb.c:4651 +#: ../src/iop/channelmixerrgb.c:4719 msgid "Xrite ColorChecker 24 post-2014" msgstr "Xrite ColorChecker 24 (après 2014)" -#: ../src/iop/channelmixerrgb.c:4652 +#: ../src/iop/channelmixerrgb.c:4720 msgid "Datacolor SpyderCheckr 24 pre-2018" msgstr "Datacolor SpyderCheckr 24 (avant 2018)" -#: ../src/iop/channelmixerrgb.c:4653 +#: ../src/iop/channelmixerrgb.c:4721 msgid "Datacolor SpyderCheckr 24 post-2018" msgstr "Datacolor SpyderCheckr 24 (après 2018)" -#: ../src/iop/channelmixerrgb.c:4654 +#: ../src/iop/channelmixerrgb.c:4722 msgid "Datacolor SpyderCheckr 48 pre-2018" msgstr "Datacolor SpyderCheckr 48 (avant 2018)" -#: ../src/iop/channelmixerrgb.c:4655 +#: ../src/iop/channelmixerrgb.c:4723 msgid "Datacolor SpyderCheckr 48 post-2018" msgstr "Datacolor SpyderCheckr 48 (après 2018)" -#: ../src/iop/channelmixerrgb.c:4656 +#: ../src/iop/channelmixerrgb.c:4724 msgid "Datacolor SpyderCheckr Photo" msgstr "Datacolor SpyderCheckr Photo" -#: ../src/iop/channelmixerrgb.c:4660 +#: ../src/iop/channelmixerrgb.c:4728 msgid "optimize for" msgstr "Optimisé pour" -#: ../src/iop/channelmixerrgb.c:4661 +#: ../src/iop/channelmixerrgb.c:4729 msgid "" "choose the colors that will be optimized with higher priority.\n" "neutral colors gives the lowest average delta E but a high maximum delta E\n" @@ -14143,35 +14723,35 @@ " • « Sans » est un compromis entre les deux.\n" "Les autres choix visent à protéger certaines teintes." -#: ../src/iop/channelmixerrgb.c:4668 +#: ../src/iop/channelmixerrgb.c:4736 msgid "neutral colors" msgstr "Couleurs neutres" -#: ../src/iop/channelmixerrgb.c:4670 +#: ../src/iop/channelmixerrgb.c:4738 msgid "skin and soil colors" msgstr "Couleurs de peau et de terres" -#: ../src/iop/channelmixerrgb.c:4671 +#: ../src/iop/channelmixerrgb.c:4739 msgid "foliage colors" msgstr "Couleurs du feuillage" -#: ../src/iop/channelmixerrgb.c:4672 +#: ../src/iop/channelmixerrgb.c:4740 msgid "sky and water colors" msgstr "Couleurs du ciel et de l’eau" -#: ../src/iop/channelmixerrgb.c:4673 +#: ../src/iop/channelmixerrgb.c:4741 msgid "average delta E" msgstr "Delta E moyen" -#: ../src/iop/channelmixerrgb.c:4674 +#: ../src/iop/channelmixerrgb.c:4742 msgid "maximum delta E" msgstr "Delta E maximum" -#: ../src/iop/channelmixerrgb.c:4678 +#: ../src/iop/channelmixerrgb.c:4746 msgid "patch scale" msgstr "Échelle du patch" -#: ../src/iop/channelmixerrgb.c:4681 +#: ../src/iop/channelmixerrgb.c:4749 msgid "" "reduce the radius of the patches to select the more or less central part.\n" "useful when the perspective correction is sloppy or\n" @@ -14181,31 +14761,31 @@ "Utile lorsque la correction de la perspective est grossière\n" "ou que le cadre des patchs projette une ombre sur les bords du patch." -#: ../src/iop/channelmixerrgb.c:4691 +#: ../src/iop/channelmixerrgb.c:4759 msgid "the delta E is using the CIE 2000 formula" msgstr "Le delta E utilise la formule CIE 2000" -#: ../src/iop/channelmixerrgb.c:4696 +#: ../src/iop/channelmixerrgb.c:4764 msgid "accept" msgstr "Accepter" -#: ../src/iop/channelmixerrgb.c:4702 +#: ../src/iop/channelmixerrgb.c:4770 msgid "accept the computed profile and set it in the module" msgstr "Accepter le profil calculé et le régler dans le module" -#: ../src/iop/channelmixerrgb.c:4705 +#: ../src/iop/channelmixerrgb.c:4773 msgid "recompute" msgstr "Recalculer" -#: ../src/iop/channelmixerrgb.c:4709 +#: ../src/iop/channelmixerrgb.c:4777 msgid "recompute the profile" msgstr "Recalculer le profil" -#: ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4781 msgid "validate" msgstr "Valider" -#: ../src/iop/channelmixerrgb.c:4717 +#: ../src/iop/channelmixerrgb.c:4785 msgid "check the output delta E" msgstr "Vérifier le delta E de sortie" @@ -14221,19 +14801,19 @@ "this module is deprecated. better use new local contrast module instead." msgstr "Ce module est déprécié, utiliser « Contraste local » à la place." -#: ../src/iop/clahe.c:337 ../src/iop/sharpen.c:445 +#: ../src/iop/clahe.c:339 ../src/iop/sharpen.c:440 msgid "amount" msgstr "Quantité" -#: ../src/iop/clahe.c:346 +#: ../src/iop/clahe.c:348 msgid "size of features to preserve" msgstr "Taille des caractéristiques à préserver" -#: ../src/iop/clahe.c:347 ../src/iop/nlmeans.c:464 +#: ../src/iop/clahe.c:349 ../src/iop/nlmeans.c:467 msgid "strength of the effect" msgstr "Force de l’effet" -#: ../src/iop/clipping.c:304 +#: ../src/iop/clipping.c:347 msgid "" "this module is deprecated. please use the crop, orientation and/or rotate " "and perspective modules instead." @@ -14241,143 +14821,143 @@ "Ce module est déprécié, utiliser plutôt « Recadrer », « Orientation » et/ou\n" "« Rotation et perspective »." -#: ../src/iop/clipping.c:309 +#: ../src/iop/clipping.c:352 msgid "crop and rotate" msgstr "Recadrer et Pivoter" -#: ../src/iop/clipping.c:314 +#: ../src/iop/clipping.c:357 msgid "reframe|perspective|keystone|distortion" msgstr "recadrer|perspective|correction trapézoïdale|déformation" -#: ../src/iop/clipping.c:319 +#: ../src/iop/clipping.c:362 msgid "change the framing and correct the perspective" msgstr "Modifier le cadrage et corriger la perspective" -#: ../src/iop/clipping.c:1394 ../src/iop/clipping.c:2120 ../src/iop/crop.c:517 -#: ../src/iop/crop.c:1117 +#: ../src/iop/clipping.c:1447 ../src/iop/clipping.c:2173 ../src/iop/crop.c:501 +#: ../src/iop/crop.c:1101 msgid "original image" msgstr "Image" -#: ../src/iop/clipping.c:1698 ../src/iop/crop.c:824 +#: ../src/iop/clipping.c:1751 ../src/iop/crop.c:808 msgid "invalid ratio format. it should be \"number:number\"" msgstr "Format de dimension non reconnu. Il devrait être « nombre:nombre »." -#: ../src/iop/clipping.c:1714 ../src/iop/crop.c:840 +#: ../src/iop/clipping.c:1767 ../src/iop/crop.c:824 msgid "invalid ratio format. it should be a positive number" msgstr "Format de dimension non reconnu. Il doit être un nombre positif." -#: ../src/iop/clipping.c:1903 ../src/iop/clipping.c:2111 +#: ../src/iop/clipping.c:1956 ../src/iop/clipping.c:2164 msgid "full" msgstr "Les deux" -#: ../src/iop/clipping.c:1904 +#: ../src/iop/clipping.c:1957 msgid "old system" msgstr "Système précédent" -#: ../src/iop/clipping.c:1905 +#: ../src/iop/clipping.c:1958 msgid "correction applied" msgstr "Correction appliquée" -#: ../src/iop/clipping.c:2089 +#: ../src/iop/clipping.c:2142 msgid "main" msgstr "Principal" -#: ../src/iop/clipping.c:2098 +#: ../src/iop/clipping.c:2151 msgid "mirror image horizontally and/or vertically" msgstr "Retourne l’image horizontalement et/ou horizontalement" -#: ../src/iop/clipping.c:2101 +#: ../src/iop/clipping.c:2154 msgid "angle" msgstr "Rotation" -#: ../src/iop/clipping.c:2104 +#: ../src/iop/clipping.c:2157 msgid "right-click and drag a line on the image to drag a straight line" msgstr "Clic droit et tracer une ligne sur l’image pour indiquer l’horizontale" -#: ../src/iop/clipping.c:2107 +#: ../src/iop/clipping.c:2160 msgid "keystone" msgstr "Perspective" -#: ../src/iop/clipping.c:2112 +#: ../src/iop/clipping.c:2165 msgid "set perspective correction for your image" msgstr "Règle la correction de perspective" -#: ../src/iop/clipping.c:2119 ../src/iop/crop.c:1116 +#: ../src/iop/clipping.c:2172 ../src/iop/crop.c:1100 msgid "freehand" msgstr "Libre" -#: ../src/iop/clipping.c:2122 ../src/iop/crop.c:1119 +#: ../src/iop/clipping.c:2175 ../src/iop/crop.c:1103 msgid "10:8 in print" msgstr "10:8 in print" -#: ../src/iop/clipping.c:2123 ../src/iop/crop.c:1120 +#: ../src/iop/clipping.c:2176 ../src/iop/crop.c:1104 msgid "5:4, 4x5, 8x10" msgstr "5:4, 4 x 5, 8 x 10" -#: ../src/iop/clipping.c:2124 ../src/iop/crop.c:1121 +#: ../src/iop/clipping.c:2177 ../src/iop/crop.c:1105 msgid "11x14" msgstr "11 x 14" -#: ../src/iop/clipping.c:2125 ../src/iop/crop.c:1122 +#: ../src/iop/clipping.c:2178 ../src/iop/crop.c:1106 msgid "8.5x11, letter" msgstr "8.5 x 11, letter" -#: ../src/iop/clipping.c:2126 ../src/iop/crop.c:1123 +#: ../src/iop/clipping.c:2179 ../src/iop/crop.c:1107 msgid "4:3, VGA, TV" msgstr "4:3, VGA, TV" -#: ../src/iop/clipping.c:2127 ../src/iop/crop.c:1124 +#: ../src/iop/clipping.c:2180 ../src/iop/crop.c:1108 msgid "5x7" msgstr "5 x 7" -#: ../src/iop/clipping.c:2128 ../src/iop/crop.c:1125 +#: ../src/iop/clipping.c:2181 ../src/iop/crop.c:1109 msgid "ISO 216, DIN 476, A4" msgstr "ISO 216, DIN 476, A4" -#: ../src/iop/clipping.c:2129 ../src/iop/crop.c:1126 +#: ../src/iop/clipping.c:2182 ../src/iop/crop.c:1110 msgid "3:2, 4x6, 35mm" msgstr "3:2, 4 x 6, 35 mm" -#: ../src/iop/clipping.c:2130 ../src/iop/crop.c:1127 +#: ../src/iop/clipping.c:2183 ../src/iop/crop.c:1111 msgid "16:10, 8x5" msgstr "16:10, 8 x 5" -#: ../src/iop/clipping.c:2132 ../src/iop/crop.c:1129 +#: ../src/iop/clipping.c:2185 ../src/iop/crop.c:1113 msgid "16:9, HDTV" msgstr "16:9, HDTV" -#: ../src/iop/clipping.c:2133 ../src/iop/crop.c:1130 +#: ../src/iop/clipping.c:2186 ../src/iop/crop.c:1114 msgid "widescreen" msgstr "Panoramique" -#: ../src/iop/clipping.c:2134 ../src/iop/crop.c:1131 +#: ../src/iop/clipping.c:2187 ../src/iop/crop.c:1115 msgid "2:1, univisium" msgstr "2:1, univisium" -#: ../src/iop/clipping.c:2135 ../src/iop/crop.c:1132 +#: ../src/iop/clipping.c:2188 ../src/iop/crop.c:1116 msgid "cinemascope" msgstr "Cinémascope" -#: ../src/iop/clipping.c:2136 ../src/iop/crop.c:1133 +#: ../src/iop/clipping.c:2189 ../src/iop/crop.c:1117 msgid "21:9" msgstr "21:9" -#: ../src/iop/clipping.c:2137 ../src/iop/crop.c:1134 +#: ../src/iop/clipping.c:2190 ../src/iop/crop.c:1118 msgid "anamorphic" msgstr "Anamorphique" -#: ../src/iop/clipping.c:2138 ../src/iop/crop.c:1135 +#: ../src/iop/clipping.c:2191 ../src/iop/crop.c:1119 msgid "3:1, panorama" msgstr "3:1, panorama" -#: ../src/iop/clipping.c:2170 ../src/iop/clipping.c:2182 ../src/iop/crop.c:1171 -#: ../src/iop/crop.c:1187 +#: ../src/iop/clipping.c:2223 ../src/iop/clipping.c:2235 ../src/iop/crop.c:1155 +#: ../src/iop/crop.c:1171 #, c-format msgid "invalid ratio format for `%s'. it should be \"number:number\"" msgstr "" "Format de dimensions non reconnu « %s », il devrait être « nombre:nombre »" -#: ../src/iop/clipping.c:2229 ../src/iop/crop.c:1238 +#: ../src/iop/clipping.c:2282 ../src/iop/crop.c:1222 msgid "" "set the aspect ratio\n" "the list is sorted: from most square to least square\n" @@ -14390,31 +14970,31 @@ "proportion\n" "au format X:Y ou en décimal." -#: ../src/iop/clipping.c:2236 ../src/iop/crop.c:1252 +#: ../src/iop/clipping.c:2289 ../src/iop/crop.c:1236 msgid "margins" msgstr "Marges" -#: ../src/iop/clipping.c:2241 ../src/iop/crop.c:1262 +#: ../src/iop/clipping.c:2294 ../src/iop/crop.c:1246 msgid "the left margin cannot overlap with the right margin" msgstr "La marge gauche ne peut pas dépasser la marge droite" -#: ../src/iop/clipping.c:2248 ../src/iop/crop.c:1270 +#: ../src/iop/clipping.c:2301 ../src/iop/crop.c:1254 msgid "the right margin cannot overlap with the left margin" msgstr "La marge droite ne peut pas dépasser la marge gauche" -#: ../src/iop/clipping.c:2253 ../src/iop/crop.c:1276 +#: ../src/iop/clipping.c:2306 ../src/iop/crop.c:1260 msgid "the top margin cannot overlap with the bottom margin" msgstr "La marge haute ne peut pas dépasser la marge basse" -#: ../src/iop/clipping.c:2260 ../src/iop/crop.c:1284 +#: ../src/iop/clipping.c:2313 ../src/iop/crop.c:1268 msgid "the bottom margin cannot overlap with the top margin" msgstr "La marge basse ne peut pas dépasser la marge haute" -#: ../src/iop/clipping.c:3019 +#: ../src/iop/clipping.c:3059 msgid "<b>commit</b>: double-click, <b>straighten</b>: right-drag" msgstr "<b>Finaliser</b> : double clic • <b>Redresser</b> : glisser droit" -#: ../src/iop/clipping.c:3023 +#: ../src/iop/clipping.c:3063 msgid "" "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag\n" "<b>straighten</b>: right-drag" @@ -14423,16 +15003,16 @@ "Maj+glisser\n" "<b>Redresser</b> : glisser droit" -#: ../src/iop/clipping.c:3066 +#: ../src/iop/clipping.c:3104 msgid "<b>move control point</b>: drag" msgstr "<b>Déplacer le point de contrôle</b> : glisser" -#: ../src/iop/clipping.c:3071 +#: ../src/iop/clipping.c:3109 msgid "<b>move line</b>: drag, <b>toggle symmetry</b>: click ꝏ" msgstr "" "<b>Déplacer les lignes</b> : glisser • <b>Modifier la symétrie</b> : clic ꝏ" -#: ../src/iop/clipping.c:3076 +#: ../src/iop/clipping.c:3114 msgid "" "<b>apply</b>: click <tt>ok</tt>, <b>toggle symmetry</b>: click ꝏ\n" "<b>move line/control point</b>: drag" @@ -14440,7 +15020,7 @@ "<b>Appliquer</b> : clic <tt>ok</tt> • <b>Modifier la symétrie</b> : clic ꝏ\n" "<b>Déplacer ligne/point de contrôle</b> : glisser" -#: ../src/iop/clipping.c:3083 +#: ../src/iop/clipping.c:3121 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag\n" @@ -14450,12 +15030,12 @@ "<b>déplacer horizontalement</b> : Ctrl+glisser\n" "<b>Redresser</b> : glisser droit • <b>Finaliser</b> : double clic" -#: ../src/iop/clipping.c:3340 ../src/iop/crop.c:1796 +#: ../src/iop/clipping.c:3380 ../src/iop/crop.c:1770 #, c-format msgid "[%s on borders] crop" msgstr "[%s sur les bords] Recadrer" -#: ../src/iop/clipping.c:3342 ../src/iop/crop.c:1798 +#: ../src/iop/clipping.c:3382 ../src/iop/crop.c:1772 #, c-format msgid "[%s on borders] crop keeping ratio" msgstr "[%s sur les bords] Recadrer avec ratio" @@ -14473,225 +15053,225 @@ msgid "adjust the look of the image" msgstr "Ajuste l’aspect de l’image" -#: ../src/iop/colisa.c:310 +#: ../src/iop/colisa.c:304 msgid "color saturation adjustment" msgstr "Ajustement de la saturation" -#: ../src/iop/colorbalance.c:150 +#: ../src/iop/colorbalance.c:152 msgid "color balance" msgstr "Balance de couleur" -#: ../src/iop/colorbalance.c:155 +#: ../src/iop/colorbalance.c:157 msgid "lift gamma gain|cdl|color grading|contrast|saturation|hue" msgstr "" "lift gamma gain|cdl|étalonnage des couleurs|contraste|saturation|tonalité" -#: ../src/iop/colorbalance.c:160 +#: ../src/iop/colorbalance.c:162 msgid "shift colors selectively by luminance range" msgstr "Décale les couleurs en fonction de la luminance" -#: ../src/iop/colorbalance.c:164 +#: ../src/iop/colorbalance.c:166 msgid "non-linear, Lab, scene-referred" msgstr "Relatif à la scène, non-linéaire, Lab" #. these blobs were exported as dtstyle and copied from there: -#: ../src/iop/colorbalance.c:275 +#: ../src/iop/colorbalance.c:304 msgid "split-toning teal-orange (2nd instance)" msgstr "Virage partiel bleu-sarcelle/orange (2e instance)" -#: ../src/iop/colorbalance.c:278 +#: ../src/iop/colorbalance.c:307 msgid "split-toning teal-orange (1st instance)" msgstr "Virage partiel bleu-sarcelle/orange (1re instance)" -#: ../src/iop/colorbalance.c:282 +#: ../src/iop/colorbalance.c:311 msgid "generic film" msgstr "Générique" -#: ../src/iop/colorbalance.c:286 +#: ../src/iop/colorbalance.c:315 msgid "similar to Kodak Portra" msgstr "Similaire à Kodak Portra" -#: ../src/iop/colorbalance.c:290 +#: ../src/iop/colorbalance.c:319 msgid "similar to Kodak Ektar" msgstr "Similaire à Kodak Ektar" -#: ../src/iop/colorbalance.c:294 +#: ../src/iop/colorbalance.c:323 msgid "similar to Kodachrome" msgstr "Similaire à Kodachrome" -#: ../src/iop/colorbalance.c:990 +#: ../src/iop/colorbalance.c:964 msgid "optimize luma from patches" msgstr "Optimiser la luma à partir des patchs" -#: ../src/iop/colorbalance.c:992 ../src/iop/colorbalance.c:2110 +#: ../src/iop/colorbalance.c:966 ../src/iop/colorbalance.c:2085 msgid "optimize luma" msgstr "Optimiser la luma" -#: ../src/iop/colorbalance.c:996 +#: ../src/iop/colorbalance.c:970 msgid "neutralize colors from patches" msgstr "Neutraliser les couleurs à partir des patchs" -#: ../src/iop/colorbalance.c:998 ../src/iop/colorbalance.c:2116 +#: ../src/iop/colorbalance.c:972 ../src/iop/colorbalance.c:2091 msgid "neutralize colors" msgstr "Neutraliser les couleurs" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "offset" msgstr "Offset" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "power" msgstr "Power" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "slope" msgstr "Slope" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "lift" msgstr "Lift" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gamma" msgstr "Gamma" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gain" msgstr "Gain" -#: ../src/iop/colorbalance.c:1787 +#: ../src/iop/colorbalance.c:1762 msgctxt "section" msgid "shadows: lift / offset" msgstr "Ombres : Lift / Offset" -#: ../src/iop/colorbalance.c:1788 +#: ../src/iop/colorbalance.c:1763 msgctxt "section" msgid "mid-tones: gamma / power" msgstr "Tons moyens : Gamma / Puissance" -#: ../src/iop/colorbalance.c:1789 +#: ../src/iop/colorbalance.c:1764 msgctxt "section" msgid "highlights: gain / slope" msgstr "Hautes lumières : Gain / Slope" -#: ../src/iop/colorbalance.c:1813 +#: ../src/iop/colorbalance.c:1788 msgid "shadows / mid-tones / highlights" msgstr "Ombres / tons moyens / hautes lumières" -#: ../src/iop/colorbalance.c:1910 ../src/iop/colorbalance.c:1919 +#: ../src/iop/colorbalance.c:1885 ../src/iop/colorbalance.c:1894 msgid "color-grading mapping method" msgstr "Méthode d’ajustement des couleurs" -#: ../src/iop/colorbalance.c:1914 +#: ../src/iop/colorbalance.c:1889 msgid "color control sliders" msgstr "Contrôle des couleurs" -#: ../src/iop/colorbalance.c:1915 ../src/libs/colorpicker.c:51 +#: ../src/iop/colorbalance.c:1890 ../src/libs/colorpicker.c:51 msgid "HSL" msgstr "TSL" -#: ../src/iop/colorbalance.c:1916 +#: ../src/iop/colorbalance.c:1891 msgid "RGBL" msgstr "RVBL" -#: ../src/iop/colorbalance.c:1928 +#: ../src/iop/colorbalance.c:1903 msgctxt "section" msgid "master" msgstr "Maître" -#: ../src/iop/colorbalance.c:1934 +#: ../src/iop/colorbalance.c:1909 msgid "saturation correction before the color balance" msgstr "Correction de la saturation avant la balance des couleurs" -#: ../src/iop/colorbalance.c:1940 +#: ../src/iop/colorbalance.c:1915 msgid "saturation correction after the color balance" msgstr "Correction de la saturation après la balance des couleurs" -#: ../src/iop/colorbalance.c:1945 +#: ../src/iop/colorbalance.c:1920 msgid "adjust to match a neutral tone" msgstr "Ajustement des tons neutres" #. is set in _configure_slider_blocks -#: ../src/iop/colorbalance.c:2003 +#: ../src/iop/colorbalance.c:1978 msgid "click to cycle layout" msgstr "Cliquer pour parcourir les dispositions" -#: ../src/iop/colorbalance.c:2037 +#: ../src/iop/colorbalance.c:2012 msgid "factor" msgstr "Facteur" -#: ../src/iop/colorbalance.c:2051 +#: ../src/iop/colorbalance.c:2026 msgid "select the hue" msgstr "Sélectionne la teinte" -#: ../src/iop/colorbalance.c:2063 +#: ../src/iop/colorbalance.c:2038 msgid "select the saturation" msgstr "Sélectionne la saturation" -#: ../src/iop/colorbalance.c:2082 +#: ../src/iop/colorbalance.c:2057 msgid "factor of lift/offset" msgstr "Facteur de lift/offset" -#: ../src/iop/colorbalance.c:2083 +#: ../src/iop/colorbalance.c:2058 msgid "factor of red for lift/offset" msgstr "Facteur rouge du lift/offset" -#: ../src/iop/colorbalance.c:2084 +#: ../src/iop/colorbalance.c:2059 msgid "factor of green for lift/offset" msgstr "Facteur vert du lift/offset" -#: ../src/iop/colorbalance.c:2085 +#: ../src/iop/colorbalance.c:2060 msgid "factor of blue for lift/offset" msgstr "Facteur bleu du lift/offset" -#: ../src/iop/colorbalance.c:2088 +#: ../src/iop/colorbalance.c:2063 msgid "factor of gamma/power" msgstr "Facteur gamma/power" -#: ../src/iop/colorbalance.c:2089 +#: ../src/iop/colorbalance.c:2064 msgid "factor of red for gamma/power" msgstr "Facteur rouge du gamma/power" -#: ../src/iop/colorbalance.c:2090 +#: ../src/iop/colorbalance.c:2065 msgid "factor of green for gamma/power" msgstr "Facteur vert du gamma/power" -#: ../src/iop/colorbalance.c:2091 +#: ../src/iop/colorbalance.c:2066 msgid "factor of blue for gamma/power" msgstr "Facteur bleu du gamma/power" -#: ../src/iop/colorbalance.c:2094 +#: ../src/iop/colorbalance.c:2069 msgid "factor of gain/slope" msgstr "Facteur du gain/slope" -#: ../src/iop/colorbalance.c:2095 +#: ../src/iop/colorbalance.c:2070 msgid "factor of red for gain/slope" msgstr "Facteur rouge du gain/slope" -#: ../src/iop/colorbalance.c:2096 +#: ../src/iop/colorbalance.c:2071 msgid "factor of green for gain/slope" msgstr "Facteur vert du gain/slope" -#: ../src/iop/colorbalance.c:2097 +#: ../src/iop/colorbalance.c:2072 msgid "factor of blue for gain/slope" msgstr "Facteur bleu du gain/slope" -#: ../src/iop/colorbalance.c:2106 +#: ../src/iop/colorbalance.c:2081 msgctxt "section" msgid "auto optimizers" msgstr "Optimiseurs automatiques" -#: ../src/iop/colorbalance.c:2111 +#: ../src/iop/colorbalance.c:2086 msgid "fit the whole histogram and center the average luma" msgstr "Ajuste l’histogramme et centre la luminosité moyenne" -#: ../src/iop/colorbalance.c:2117 +#: ../src/iop/colorbalance.c:2092 msgid "optimize the RGB curves to remove color casts" msgstr "Optimise les courbes RVB et supprime les dérives de couleur" @@ -14715,93 +15295,93 @@ "Étalonnage des couleurs en utilisant un masque pour séparer\n" "les ombres, les tons moyens et les hautes lumières." -#: ../src/iop/colorbalancergb.c:443 +#: ../src/iop/colorbalancergb.c:536 msgid "add basic colorfulness (legacy)" msgstr "Ajoute la couleur de base (originel)" -#: ../src/iop/colorbalancergb.c:452 +#: ../src/iop/colorbalancergb.c:545 msgid "basic colorfulness: natural skin" msgstr "Couleur de base : peau naturelle" -#: ../src/iop/colorbalancergb.c:458 +#: ../src/iop/colorbalancergb.c:551 msgid "basic colorfulness: vibrant colors" msgstr "Couleur de base : couleurs vibrantes" -#: ../src/iop/colorbalancergb.c:464 +#: ../src/iop/colorbalancergb.c:557 msgid "basic colorfulness: standard" msgstr "Couleur de base : standard" -#: ../src/iop/colorbalancergb.c:937 +#: ../src/iop/colorbalancergb.c:1022 msgid "colorbalance works only on RGB input" msgstr "La balance des couleurs ne marche qu’avec une entrée RVB" -#: ../src/iop/colorbalancergb.c:1506 ../src/iop/colorzones.c:2164 -#: ../src/iop/retouch.c:1884 ../src/iop/toneequal.c:1966 +#: ../src/iop/colorbalancergb.c:1577 ../src/iop/colorzones.c:2394 +#: ../src/iop/retouch.c:2069 ../src/iop/toneequal.c:1996 msgid "cannot display masks when the blending mask is displayed" msgstr "" "Impossible d’afficher les masques lorsque les masques de fusion sont affichés" #. Page master -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "master" msgstr "Maître" -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "global grading" msgstr "Gradation globale" -#: ../src/iop/colorbalancergb.c:1880 +#: ../src/iop/colorbalancergb.c:1951 msgid "rotate all hues by an angle, at the same luminance" msgstr "Faire pivoter toutes les teintes d’un angle, à la même luminance" -#: ../src/iop/colorbalancergb.c:1886 +#: ../src/iop/colorbalancergb.c:1957 msgid "increase colorfulness mostly on low-chroma colors" msgstr "" "Augmenter la richesse des couleurs principalement pour celles avec peu de " "chroma" -#: ../src/iop/colorbalancergb.c:1892 +#: ../src/iop/colorbalancergb.c:1963 msgid "increase the contrast at constant chromaticity" msgstr "Augmenter le contraste à chromaticité constante" -#: ../src/iop/colorbalancergb.c:1894 +#: ../src/iop/colorbalancergb.c:1965 msgctxt "section" msgid "linear chroma grading" msgstr "Gradation de chroma linéaire" -#: ../src/iop/colorbalancergb.c:1901 +#: ../src/iop/colorbalancergb.c:1972 msgid "increase colorfulness at same luminance globally" msgstr "Augmenter globalement la richesse de couleur à luminance égale" -#: ../src/iop/colorbalancergb.c:1906 +#: ../src/iop/colorbalancergb.c:1977 msgid "increase colorfulness at same luminance mostly in shadows" msgstr "" "Augmenter la richesse de couleur à luminance égale principalement dans les " "ombres" -#: ../src/iop/colorbalancergb.c:1911 +#: ../src/iop/colorbalancergb.c:1982 msgid "increase colorfulness at same luminance mostly in mid-tones" msgstr "" "Augmenter la richesse de couleur à luminance égale principalement dans les " "tons moyens" -#: ../src/iop/colorbalancergb.c:1916 +#: ../src/iop/colorbalancergb.c:1987 msgid "increase colorfulness at same luminance mostly in highlights" msgstr "" "Augmenter la richesse de couleur à luminance égale principalement dans les " "hautes lumières" -#: ../src/iop/colorbalancergb.c:1918 +#: ../src/iop/colorbalancergb.c:1989 msgctxt "section" msgid "perceptual saturation grading" msgstr "Gradation de saturation perceptuelle" -#: ../src/iop/colorbalancergb.c:1924 +#: ../src/iop/colorbalancergb.c:1995 msgid "add or remove saturation by an absolute amount" msgstr "Augmenter ou réduire la saturation d’une quantité absolue" -#: ../src/iop/colorbalancergb.c:1929 ../src/iop/colorbalancergb.c:1934 -#: ../src/iop/colorbalancergb.c:1939 +#: ../src/iop/colorbalancergb.c:2000 ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2010 msgid "" "increase or decrease saturation proportionally to the original pixel " "saturation" @@ -14809,21 +15389,21 @@ "Augmenter ou réduire la saturation proportionnellement à la saturation des " "pixels d’origine" -#: ../src/iop/colorbalancergb.c:1941 +#: ../src/iop/colorbalancergb.c:2012 msgctxt "section" msgid "perceptual brilliance grading" msgstr "Gradation de brillance perceptuelle" -#: ../src/iop/colorbalancergb.c:1942 +#: ../src/iop/colorbalancergb.c:2013 msgid "brilliance" msgstr "Brillance" -#: ../src/iop/colorbalancergb.c:1947 +#: ../src/iop/colorbalancergb.c:2018 msgid "add or remove brilliance by an absolute amount" msgstr "Ajouter ou supprimer de la brillance d’une quantité absolue" -#: ../src/iop/colorbalancergb.c:1952 ../src/iop/colorbalancergb.c:1957 -#: ../src/iop/colorbalancergb.c:1962 +#: ../src/iop/colorbalancergb.c:2023 ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2033 msgid "" "increase or decrease brilliance proportionally to the original pixel " "brilliance" @@ -14832,161 +15412,161 @@ "pixels d’origine" #. Page 4-ways -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "4 ways" msgstr "4 voies" -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "selective color grading" msgstr "Gradation sélective des couleurs" -#: ../src/iop/colorbalancergb.c:1967 +#: ../src/iop/colorbalancergb.c:2038 msgctxt "section" msgid "global offset" msgstr "Décalage global" -#: ../src/iop/colorbalancergb.c:1974 +#: ../src/iop/colorbalancergb.c:2045 msgid "global luminance offset" msgstr "Décalage global de luminance" -#: ../src/iop/colorbalancergb.c:1979 +#: ../src/iop/colorbalancergb.c:2050 msgid "hue of the global color offset" msgstr "Teinte du décalage de couleur global" -#: ../src/iop/colorbalancergb.c:1985 +#: ../src/iop/colorbalancergb.c:2056 msgid "chroma of the global color offset" msgstr "Chroma du décalage de couleur global" -#: ../src/iop/colorbalancergb.c:1987 +#: ../src/iop/colorbalancergb.c:2058 msgctxt "section" msgid "shadows lift" msgstr "Lift des ombres" -#: ../src/iop/colorbalancergb.c:1988 +#: ../src/iop/colorbalancergb.c:2059 msgid "lift" msgstr "Lift" -#: ../src/iop/colorbalancergb.c:1994 +#: ../src/iop/colorbalancergb.c:2065 msgid "luminance gain in shadows" msgstr "Gain de luminance dans les ombres" -#: ../src/iop/colorbalancergb.c:1999 +#: ../src/iop/colorbalancergb.c:2070 msgid "hue of the color gain in shadows" msgstr "Teinte du gain de couleur dans les ombres" -#: ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2076 msgid "chroma of the color gain in shadows" msgstr "Chroma du gain de couleur dans les ombres" -#: ../src/iop/colorbalancergb.c:2007 +#: ../src/iop/colorbalancergb.c:2078 msgctxt "section" msgid "highlights gain" msgstr "Gain des hautes lumières" -#: ../src/iop/colorbalancergb.c:2008 +#: ../src/iop/colorbalancergb.c:2079 msgid "gain" msgstr "Gain" -#: ../src/iop/colorbalancergb.c:2014 +#: ../src/iop/colorbalancergb.c:2085 msgid "luminance gain in highlights" msgstr "Gain de luminance dans les hautes lumières" -#: ../src/iop/colorbalancergb.c:2019 +#: ../src/iop/colorbalancergb.c:2090 msgid "hue of the color gain in highlights" msgstr "Teinte du gain de couleur dans les hautes lumières" -#: ../src/iop/colorbalancergb.c:2025 +#: ../src/iop/colorbalancergb.c:2096 msgid "chroma of the color gain in highlights" msgstr "Chroma du gain de couleur dans les hautes lumières" -#: ../src/iop/colorbalancergb.c:2027 +#: ../src/iop/colorbalancergb.c:2098 msgctxt "section" msgid "power" msgstr "Puissance" -#: ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2099 msgid "power" msgstr "Puissance" -#: ../src/iop/colorbalancergb.c:2034 +#: ../src/iop/colorbalancergb.c:2105 msgid "luminance exponent in mid-tones" msgstr "Exposant de luminance dans les tons moyens" -#: ../src/iop/colorbalancergb.c:2039 +#: ../src/iop/colorbalancergb.c:2110 msgid "hue of the color exponent in mid-tones" msgstr "Teinte de l’exposant de couleur dans les tons moyens" -#: ../src/iop/colorbalancergb.c:2045 +#: ../src/iop/colorbalancergb.c:2116 msgid "chroma of the color exponent in mid-tones" msgstr "Chroma de l’exposant de couleur dans les tons moyens" #. Page masks -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "masks" msgstr "Masques" # "duplicate" traduit par "cloner" avec une bulle d'explication utilisant le terme de "copie virtuelle", dans le sens que l’image n'est pas physiquement dupliquée -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "isolate luminances" msgstr "Isoler les luminances" -#: ../src/iop/colorbalancergb.c:2052 +#: ../src/iop/colorbalancergb.c:2123 msgid "choose in which uniform color space the saturation is computed" msgstr "" "Choisit dans quel espace de couleur uniforme la saturation est calculée" -#: ../src/iop/colorbalancergb.c:2054 +#: ../src/iop/colorbalancergb.c:2125 msgctxt "section" msgid "luminance ranges" msgstr "Étendues de luminance" -#: ../src/iop/colorbalancergb.c:2065 +#: ../src/iop/colorbalancergb.c:2136 msgid "weight of the shadows over the whole tonal range" msgstr "Poids des ombres sur l’ensemble de la gamme tonale" -#: ../src/iop/colorbalancergb.c:2073 +#: ../src/iop/colorbalancergb.c:2144 msgid "position of the middle-gray reference for masking" msgstr "Position du gris moyen de référence pour le masque" -#: ../src/iop/colorbalancergb.c:2081 +#: ../src/iop/colorbalancergb.c:2152 msgid "weights of highlights over the whole tonal range" msgstr "Poids des hautes lumières sur l’ensemble de la gamme tonale" -#: ../src/iop/colorbalancergb.c:2086 +#: ../src/iop/colorbalancergb.c:2157 msgctxt "section" msgid "threshold" msgstr "Seuil" -#: ../src/iop/colorbalancergb.c:2091 +#: ../src/iop/colorbalancergb.c:2162 msgid "peak white luminance value used to normalize the power function" msgstr "" "Valeur pic de la luminance du blanc utilisée pour normaliser la fonction " "puissance" -#: ../src/iop/colorbalancergb.c:2097 +#: ../src/iop/colorbalancergb.c:2168 msgid "peak gray luminance value used to normalize the power function" msgstr "" "Valeur pic de la luminance du gris utilisée pour normaliser la fonction " "puissance" -#: ../src/iop/colorbalancergb.c:2099 +#: ../src/iop/colorbalancergb.c:2170 msgctxt "section" msgid "mask preview settings" msgstr "Paramètres de prévisualisation du masque" -#: ../src/iop/colorbalancergb.c:2102 +#: ../src/iop/colorbalancergb.c:2173 msgid "checkerboard color 1" msgstr "Couleur 1 du damier" -#: ../src/iop/colorbalancergb.c:2105 ../src/iop/colorbalancergb.c:2114 +#: ../src/iop/colorbalancergb.c:2176 ../src/iop/colorbalancergb.c:2185 msgid "select color of the checkerboard from a swatch" msgstr "Sélectionne la couleur du damier depuis un nuancier" -#: ../src/iop/colorbalancergb.c:2111 +#: ../src/iop/colorbalancergb.c:2182 msgid "checkerboard color 2" msgstr "Couleur 2 du damier" -#: ../src/iop/colorbalancergb.c:2121 +#: ../src/iop/colorbalancergb.c:2192 msgid "checkerboard size" msgstr "Taille du damier" @@ -15004,11 +15584,11 @@ "Effectue des corrections de l’espace colorimétrique et applique un style" #: ../src/iop/colorchecker.c:131 ../src/iop/colorchecker.c:133 -#: ../src/iop/colorize.c:106 ../src/iop/colormapping.c:154 -#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:136 -#: ../src/iop/colorzones.c:146 ../src/iop/defringe.c:83 ../src/iop/levels.c:139 -#: ../src/iop/monochrome.c:99 ../src/iop/shadhi.c:198 -#: ../src/iop/tonecurve.c:212 ../src/iop/vibrance.c:96 +#: ../src/iop/colorize.c:99 ../src/iop/colormapping.c:154 +#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:121 +#: ../src/iop/colorzones.c:147 ../src/iop/defringe.c:83 ../src/iop/levels.c:141 +#: ../src/iop/monochrome.c:101 ../src/iop/shadhi.c:145 +#: ../src/iop/tonecurve.c:185 ../src/iop/vibrance.c:98 msgid "linear or non-linear, Lab, display-referred" msgstr "Relatif à l’affichage, linéaire ou non-linéaire, Lab" @@ -15016,40 +15596,40 @@ msgid "defined by profile, Lab" msgstr "Défini par profil, Lab" -#: ../src/iop/colorchecker.c:294 +#: ../src/iop/colorchecker.c:308 msgid "it8 skin tones" msgstr "It8 tons chairs" -#: ../src/iop/colorchecker.c:310 +#: ../src/iop/colorchecker.c:324 msgid "Helmholtz/Kohlrausch monochrome" msgstr "Monochrome Helmholtz/Kohlrausch" -#: ../src/iop/colorchecker.c:327 +#: ../src/iop/colorchecker.c:341 msgid "Fuji Astia emulation" msgstr "Simulation du Fuji Astia" -#: ../src/iop/colorchecker.c:341 +#: ../src/iop/colorchecker.c:355 msgid "Fuji Classic Chrome emulation" msgstr "Simulation du Fuji Classic Chrome" -#: ../src/iop/colorchecker.c:355 +#: ../src/iop/colorchecker.c:369 msgid "Fuji Monochrome emulation" msgstr "Simulation du Fuji Monochrome" -#: ../src/iop/colorchecker.c:369 +#: ../src/iop/colorchecker.c:383 msgid "Fuji Provia emulation" msgstr "Simulation du Fuji Provia" -#: ../src/iop/colorchecker.c:383 +#: ../src/iop/colorchecker.c:397 msgid "Fuji Velvia emulation" msgstr "Simulation du Fuji Velvia" -#: ../src/iop/colorchecker.c:841 ../src/iop/colorchecker.c:1436 +#: ../src/iop/colorchecker.c:846 ../src/iop/colorchecker.c:1441 #, c-format msgid "patch #%d" msgstr "Pastille #%d" -#: ../src/iop/colorchecker.c:1283 +#: ../src/iop/colorchecker.c:1288 #, c-format msgid "" "(%2.2f %2.2f %2.2f)\n" @@ -15066,15 +15646,15 @@ " • Clic droit pour supprimer une pastille,\n" " • Maj+clic avec la pipette pour remplacer une pastille." -#: ../src/iop/colorchecker.c:1431 +#: ../src/iop/colorchecker.c:1436 msgid "patch" msgstr "Pastille" -#: ../src/iop/colorchecker.c:1432 +#: ../src/iop/colorchecker.c:1437 msgid "color checker patch" msgstr "Choix de la pastille" -#: ../src/iop/colorchecker.c:1446 +#: ../src/iop/colorchecker.c:1451 msgid "" "adjust target color Lab 'L' channel\n" "lower values darken target color while higher brighten it" @@ -15082,7 +15662,7 @@ "Ajuste le canal Lab « L » de la couleur cible,\n" "diminuer la valeur assombrit la couleur, une valeur plus haute l’éclaircit." -#: ../src/iop/colorchecker.c:1454 +#: ../src/iop/colorchecker.c:1459 msgid "" "adjust target color Lab 'a' channel\n" "lower values shift target color towards greens while higher shift towards " @@ -15092,11 +15672,11 @@ "diminuer la valeur décale la couleur vers les verts, l’augmenter la décale " "vers les magentas." -#: ../src/iop/colorchecker.c:1457 +#: ../src/iop/colorchecker.c:1462 msgid "green-magenta offset" msgstr "Décalage vert ↔ magenta" -#: ../src/iop/colorchecker.c:1466 +#: ../src/iop/colorchecker.c:1471 msgid "" "adjust target color Lab 'b' channel\n" "lower values shift target color towards blues while higher shift towards " @@ -15106,11 +15686,11 @@ "diminuer la valeur décale la couleur vers les bleus, l’augmenter la décale " "vers les jaunes." -#: ../src/iop/colorchecker.c:1469 +#: ../src/iop/colorchecker.c:1474 msgid "blue-yellow offset" msgstr "Décalage bleu ↔ jaune" -#: ../src/iop/colorchecker.c:1478 +#: ../src/iop/colorchecker.c:1483 msgid "" "adjust target color saturation\n" "adjusts 'a' and 'b' channels of target color in Lab space simultaneously\n" @@ -15123,11 +15703,11 @@ "Diminuer les valeurs pour moins de saturation, les augmenter pour ajouter de " "la saturation." -#: ../src/iop/colorchecker.c:1487 +#: ../src/iop/colorchecker.c:1492 msgid "target color" msgstr "Couleur cible" -#: ../src/iop/colorchecker.c:1490 +#: ../src/iop/colorchecker.c:1495 msgid "" "control target color of the patches\n" "relative - target color is relative from the patch original color\n" @@ -15138,21 +15718,21 @@ "pastille\n" " • Absolue – la couleur cible est une valeur Lab absolue" -#: ../src/iop/colorchecker.c:1494 +#: ../src/iop/colorchecker.c:1499 msgid "absolute" msgstr "Absolue" -#: ../src/iop/colorcontrast.c:85 +#: ../src/iop/colorcontrast.c:77 msgid "color contrast" msgstr "Contraste de couleur" -#: ../src/iop/colorcontrast.c:95 +#: ../src/iop/colorcontrast.c:87 msgid "" "increase saturation and separation between\n" "opposite colors" msgstr "Augmente la saturation et la séparation entre des couleurs opposées" -#: ../src/iop/colorcontrast.c:324 +#: ../src/iop/colorcontrast.c:330 msgid "" "steepness of the a* curve in Lab\n" "lower values desaturate greens and magenta while higher saturate them" @@ -15161,7 +15741,7 @@ "Diminuer la valeur pour désaturer les verts et magentas, augmenter pour les " "saturer." -#: ../src/iop/colorcontrast.c:331 +#: ../src/iop/colorcontrast.c:337 msgid "" "steepness of the b* curve in Lab\n" "lower values desaturate blues and yellows while higher saturate them" @@ -15178,19 +15758,19 @@ msgid "correct white balance selectively for blacks and whites" msgstr "Corrige la balance des blancs séparément pour les noirs et les blancs" -#: ../src/iop/colorcorrection.c:107 +#: ../src/iop/colorcorrection.c:109 msgid "warm tone" msgstr "Ton chaud" -#: ../src/iop/colorcorrection.c:115 +#: ../src/iop/colorcorrection.c:117 msgid "warming filter" msgstr "Filtre chaud" -#: ../src/iop/colorcorrection.c:123 +#: ../src/iop/colorcorrection.c:125 msgid "cooling filter" msgstr "Filtre froid" -#: ../src/iop/colorcorrection.c:257 +#: ../src/iop/colorcorrection.c:250 msgid "" "drag the line for split-toning. bright means highlights, dark means shadows. " "use mouse wheel to change saturation." @@ -15200,7 +15780,7 @@ " • Point noir : ombres\n" "Défiler à la souris pour changer la saturation." -#: ../src/iop/colorcorrection.c:276 +#: ../src/iop/colorcorrection.c:269 msgid "set the global saturation" msgstr "Règle la saturation globale" @@ -15217,7 +15797,7 @@ "en utilisant les profils de couleur pour redéfinir les valeurs RVB." #: ../src/iop/colorin.c:133 ../src/iop/colorout.c:89 ../src/iop/demosaic.c:293 -#: ../src/iop/rawprepare.c:158 +#: ../src/iop/rawprepare.c:174 msgid "mandatory" msgstr "Obligatoire" @@ -15225,7 +15805,7 @@ msgid "defined by profile" msgstr "Défini par le profil" -#: ../src/iop/colorin.c:542 +#: ../src/iop/colorin.c:582 #, c-format msgid "" "can't extract matrix from colorspace `%s', it will be replaced by Rec2020 " @@ -15234,24 +15814,24 @@ "Impossible d’extraire la matrice depuis l’espace « %s », il sera remplacé " "par Rec2020 RVB." -#: ../src/iop/colorin.c:1424 +#: ../src/iop/colorin.c:1362 #, c-format msgid "`%s' color matrix not found!" msgstr "Matrice de couleurs « %s » non trouvée" -#: ../src/iop/colorin.c:1463 +#: ../src/iop/colorin.c:1401 msgid "input profile could not be generated!" msgstr "Impossible de générer le profil d’entrée." -#: ../src/iop/colorin.c:1560 +#: ../src/iop/colorin.c:1498 msgid "unsupported input profile has been replaced by linear Rec709 RGB!" msgstr "Profil d’entrée non supporté, remplacé par linéaire RVB Rec709." -#: ../src/iop/colorin.c:1844 +#: ../src/iop/colorin.c:1782 msgid "external ICC profiles" msgstr "profils ICC externes" -#: ../src/iop/colorin.c:1889 +#: ../src/iop/colorin.c:1827 #, c-format msgid "" "embedded ICC profile properties:\n" @@ -15274,43 +15854,43 @@ "Copyright : <b>%s</b>\n" "\n" -#: ../src/iop/colorin.c:2084 +#: ../src/iop/colorin.c:2022 msgid "input profile" msgstr "Profil d’entrée" -#: ../src/iop/colorin.c:2088 +#: ../src/iop/colorin.c:2026 msgid "working profile" msgstr "Profil de travail" -#: ../src/iop/colorin.c:2097 +#: ../src/iop/colorin.c:2035 msgid "working ICC profiles" msgstr "Profils ICC de travail" -#: ../src/iop/colorin.c:2109 +#: ../src/iop/colorin.c:2047 msgid "confine Lab values to gamut of RGB color space" msgstr "Cantonne les valeurs Lab au gamut de l’espace RVB" -#: ../src/iop/colorize.c:84 +#: ../src/iop/colorize.c:75 msgid "colorize" msgstr "Coloriser" -#: ../src/iop/colorize.c:104 +#: ../src/iop/colorize.c:97 msgid "overlay a solid color on the image" msgstr "Superpose une couleur à l’image" -#: ../src/iop/colorize.c:341 ../src/iop/splittoning.c:485 +#: ../src/iop/colorize.c:354 ../src/iop/splittoning.c:481 msgid "select the hue tone" msgstr "Sélectionne la teinte" -#: ../src/iop/colorize.c:347 +#: ../src/iop/colorize.c:360 msgid "select the saturation shadow tone" msgstr "Sélectionne la saturation des ombres" -#: ../src/iop/colorize.c:351 +#: ../src/iop/colorize.c:364 msgid "lightness of color" msgstr "Clarté de la couleur" -#: ../src/iop/colorize.c:355 +#: ../src/iop/colorize.c:368 msgid "mix value of source lightness" msgstr "Mélange des sources de clarté" @@ -15325,37 +15905,37 @@ "Transfère une palette de couleurs et une répartition tonale d’une image à " "l’autre" -#: ../src/iop/colormapping.c:1030 +#: ../src/iop/colormapping.c:1019 msgid "source clusters:" msgstr "Groupes sources :" -#: ../src/iop/colormapping.c:1036 +#: ../src/iop/colormapping.c:1025 msgid "target clusters:" msgstr "Groupes cibles :" -#: ../src/iop/colormapping.c:1045 +#: ../src/iop/colormapping.c:1034 msgid "acquire as source" msgstr "Acquérir la source" -#: ../src/iop/colormapping.c:1049 +#: ../src/iop/colormapping.c:1038 msgid "analyze this image as a source image" msgstr "Analyser cette image comme source" -#: ../src/iop/colormapping.c:1051 +#: ../src/iop/colormapping.c:1040 msgid "acquire as target" msgstr "Acquérir la cible" -#: ../src/iop/colormapping.c:1055 +#: ../src/iop/colormapping.c:1044 msgid "analyze this image as a target image" msgstr "Analyser cette image comme cible" -#: ../src/iop/colormapping.c:1058 +#: ../src/iop/colormapping.c:1047 msgid "number of clusters to find in image. value change resets all clusters" msgstr "" "Nombre de groupes à trouver dans cette image.\n" "Réinitialise tous les groupes lors d’un changement de valeur." -#: ../src/iop/colormapping.c:1061 +#: ../src/iop/colormapping.c:1050 msgid "" "how clusters are mapped. low values: based on color proximity, high values: " "based on color dominance" @@ -15364,7 +15944,7 @@ " • Faible valeur : fonction de la proximité des couleurs\n" " • Valeur élevée : fonction de la dominante des couleurs" -#: ../src/iop/colormapping.c:1066 +#: ../src/iop/colormapping.c:1055 msgid "level of histogram equalization" msgstr "Niveau d’égalisation de l’histogramme" @@ -15385,117 +15965,117 @@ msgid "non-linear, RGB or Lab, display-referred" msgstr "Relatif à l’affichage, non-linéaire, RVB" -#: ../src/iop/colorout.c:679 +#: ../src/iop/colorout.c:695 msgid "missing output profile has been replaced by sRGB!" msgstr "Profil de sortie non trouvé, remplacé par sRVB." -#: ../src/iop/colorout.c:701 +#: ../src/iop/colorout.c:717 msgid "missing softproof profile has been replaced by sRGB!" msgstr "Profil d’épreuvage non trouvé, remplacé par sRVB." -#: ../src/iop/colorout.c:744 +#: ../src/iop/colorout.c:760 msgid "unsupported output profile has been replaced by sRGB!" msgstr "Profil de sortie non supporté, remplacé par sRVB." -#: ../src/iop/colorout.c:869 +#: ../src/iop/colorout.c:885 msgid "output intent" msgstr "Rendu (sortie)" -#: ../src/iop/colorout.c:870 +#: ../src/iop/colorout.c:886 msgid "rendering intent" msgstr "" "Mode de rendu.\n" "Définit comment les couleurs hors gamut sont reproduites,\n" "« Perceptif » est adapté à la photographie." -#: ../src/iop/colorout.c:872 ../src/libs/export.c:1246 +#: ../src/iop/colorout.c:888 ../src/libs/export.c:1358 #: ../src/libs/print_settings.c:2475 ../src/libs/print_settings.c:2824 -#: ../src/views/darkroom.c:2518 ../src/views/lighttable.c:1176 +#: ../src/views/darkroom.c:2359 ../src/views/lighttable.c:1176 msgid "perceptual" msgstr "Perceptif" -#: ../src/iop/colorout.c:873 ../src/libs/export.c:1247 +#: ../src/iop/colorout.c:889 ../src/libs/export.c:1359 #: ../src/libs/print_settings.c:2476 ../src/libs/print_settings.c:2825 -#: ../src/views/darkroom.c:2519 ../src/views/lighttable.c:1177 +#: ../src/views/darkroom.c:2360 ../src/views/lighttable.c:1177 msgid "relative colorimetric" msgstr "Colorimétrie relative" -#: ../src/iop/colorout.c:874 ../src/libs/export.c:1248 +#: ../src/iop/colorout.c:890 ../src/libs/export.c:1360 #: ../src/libs/print_settings.c:2477 ../src/libs/print_settings.c:2826 -#: ../src/views/darkroom.c:2520 ../src/views/lighttable.c:1178 +#: ../src/views/darkroom.c:2361 ../src/views/lighttable.c:1178 msgctxt "rendering intent" msgid "saturation" msgstr "Saturation" -#: ../src/iop/colorout.c:875 ../src/libs/export.c:1249 +#: ../src/iop/colorout.c:891 ../src/libs/export.c:1361 #: ../src/libs/print_settings.c:2478 ../src/libs/print_settings.c:2827 -#: ../src/views/darkroom.c:2521 ../src/views/lighttable.c:1179 +#: ../src/views/darkroom.c:2362 ../src/views/lighttable.c:1179 msgid "absolute colorimetric" msgstr "Colorimétrie absolue" -#: ../src/iop/colorout.c:893 +#: ../src/iop/colorout.c:909 msgid "export ICC profiles" msgstr "Profils ICC d’exportation" -#: ../src/iop/colorreconstruction.c:129 +#: ../src/iop/colorreconstruction.c:114 msgid "color reconstruction" msgstr "Reconstruction des couleurs" -#: ../src/iop/colorreconstruction.c:134 +#: ../src/iop/colorreconstruction.c:119 msgid "recover clipped highlights by propagating surrounding colors" msgstr "" "Récupère les hautes lumières écrêtées\n" "par propagation des couleurs environnantes" -#: ../src/iop/colorreconstruction.c:628 ../src/iop/colorreconstruction.c:1040 -#: ../src/iop/globaltonemap.c:193 ../src/iop/globaltonemap.c:362 -#: ../src/iop/hazeremoval.c:553 ../src/iop/hazeremoval.c:788 -#: ../src/iop/levels.c:336 +#: ../src/iop/colorreconstruction.c:647 ../src/iop/colorreconstruction.c:1053 +#: ../src/iop/globaltonemap.c:227 ../src/iop/globaltonemap.c:396 +#: ../src/iop/hazeremoval.c:541 ../src/iop/hazeremoval.c:776 +#: ../src/iop/levels.c:358 msgid "inconsistent output" msgstr "Résultat incohérent" -#: ../src/iop/colorreconstruction.c:666 +#: ../src/iop/colorreconstruction.c:685 msgid "module `color reconstruction' failed" msgstr "Échec du module « Correction de perspective »" -#: ../src/iop/colorreconstruction.c:1237 +#: ../src/iop/colorreconstruction.c:1246 msgid "spatial" msgstr "Spatial" -#: ../src/iop/colorreconstruction.c:1238 +#: ../src/iop/colorreconstruction.c:1247 msgid "range" msgstr "Étendu" -#: ../src/iop/colorreconstruction.c:1239 +#: ../src/iop/colorreconstruction.c:1248 msgid "precedence" msgstr "Priorité" -#: ../src/iop/colorreconstruction.c:1255 +#: ../src/iop/colorreconstruction.c:1264 msgid "pixels with lightness values above this threshold are corrected" msgstr "Seuil de clarté au-dessus duquel les pixels sont affectés" -#: ../src/iop/colorreconstruction.c:1256 +#: ../src/iop/colorreconstruction.c:1265 msgid "how far to look for replacement colors in spatial dimensions" msgstr "Distance spatiale pour la recherche des couleurs de remplacement" -#: ../src/iop/colorreconstruction.c:1257 +#: ../src/iop/colorreconstruction.c:1266 msgid "how far to look for replacement colors in the luminance dimension" msgstr "Distance de clarté pour la recherche des couleurs de remplacement" -#: ../src/iop/colorreconstruction.c:1258 +#: ../src/iop/colorreconstruction.c:1267 msgid "if and how to give precedence to specific replacement colors" msgstr "Priorité à des couleurs de remplacement spécifiques" -#: ../src/iop/colorreconstruction.c:1259 +#: ../src/iop/colorreconstruction.c:1268 msgid "the hue tone which should be given precedence over other hue tones" msgstr "Teinte à laquelle on donne priorité sur les autres" -#: ../src/iop/colorreconstruction.c:1261 ../src/iop/demosaic.c:1277 -#: ../src/iop/highlights.c:1168 +#: ../src/iop/colorreconstruction.c:1270 ../src/iop/demosaic.c:1324 +#: ../src/iop/highlights.c:1258 msgid "not applicable" msgstr "Non applicable" -#: ../src/iop/colorreconstruction.c:1262 +#: ../src/iop/colorreconstruction.c:1271 msgid "no highlights reconstruction for monochrome images" msgstr "Pas de reconstruction des hautes lumières pour les images monochromes" @@ -15507,7 +16087,7 @@ msgid "this module is deprecated. better use color mapping module instead." msgstr "Ce module est déprécié, utiliser « Mappage des couleurs » à la place." -#: ../src/iop/colortransfer.c:439 +#: ../src/iop/colortransfer.c:441 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -15517,44 +16097,44 @@ "désactiviez\n" "et utilisiez le nouveau module « Mappage des couleurs »." -#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2332 +#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2573 msgid "color zones" msgstr "Zones de couleurs" -#: ../src/iop/colorzones.c:144 +#: ../src/iop/colorzones.c:145 msgid "selectively shift hues, chroma and lightness of pixels" msgstr "" "Modifie sélectivement les teintes, le chroma et la luminosité des pixels" -#: ../src/iop/colorzones.c:606 +#: ../src/iop/colorzones.c:684 msgid "B&W: with red" msgstr "N&B : avec rouge" -#: ../src/iop/colorzones.c:629 +#: ../src/iop/colorzones.c:707 msgid "B&W: with skin tones" msgstr "N&B : avec tons chairs" -#: ../src/iop/colorzones.c:652 +#: ../src/iop/colorzones.c:732 msgid "polarizing filter" msgstr "Filtre polarisant" -#: ../src/iop/colorzones.c:673 +#: ../src/iop/colorzones.c:753 msgid "natural skin tones" msgstr "Tons chair naturels" -#: ../src/iop/colorzones.c:704 +#: ../src/iop/colorzones.c:784 msgid "B&W: film" msgstr "N&B : film" -#: ../src/iop/colorzones.c:724 +#: ../src/iop/colorzones.c:804 msgid "HSL base setting" msgstr "TSL neutre" -#: ../src/iop/colorzones.c:2264 +#: ../src/iop/colorzones.c:2500 msgid "orange" msgstr "Orange" -#: ../src/iop/colorzones.c:2421 ../src/iop/rgbcurve.c:1375 +#: ../src/iop/colorzones.c:2673 ../src/iop/rgbcurve.c:1375 msgid "" "create a curve based on an area from the image\n" "drag to create a flat curve\n" @@ -15566,48 +16146,48 @@ " • Ctrl+clic – créer une courbe positive\n" " • Maj+clic – créer une courbe négative" -#: ../src/iop/colorzones.c:2425 ../src/iop/rgbcurve.c:1379 +#: ../src/iop/colorzones.c:2677 ../src/iop/rgbcurve.c:1379 msgid "create curve" msgstr "Créer courbe" #. edit by area -#: ../src/iop/colorzones.c:2442 +#: ../src/iop/colorzones.c:2696 msgid "edit by area" msgstr "Éditer par zone" -#: ../src/iop/colorzones.c:2447 +#: ../src/iop/colorzones.c:2702 msgid "edit the curve nodes by area" msgstr "Édition de la courbe par zone" -#: ../src/iop/colorzones.c:2454 +#: ../src/iop/colorzones.c:2710 msgid "display selection" msgstr "Afficher la sélection" -#: ../src/iop/colorzones.c:2463 +#: ../src/iop/colorzones.c:2722 msgid "choose selection criterion, will be the abscissa in the graph" msgstr "Critère de sélection, correspond à l’abscisse du graphique" -#: ../src/iop/colorzones.c:2466 +#: ../src/iop/colorzones.c:2725 msgid "choose between a smoother or stronger effect" msgstr "Choisir entre un effet prononcé ou plus doux" -#: ../src/iop/colorzones.c:2494 ../src/iop/rgbcurve.c:1410 -#: ../src/iop/tonecurve.c:1172 +#: ../src/iop/colorzones.c:2762 ../src/iop/rgbcurve.c:1410 +#: ../src/iop/tonecurve.c:1194 msgid "interpolation method" msgstr "Interpolation" -#: ../src/iop/colorzones.c:2496 ../src/iop/rgbcurve.c:1412 -#: ../src/iop/tonecurve.c:1174 +#: ../src/iop/colorzones.c:2764 ../src/iop/rgbcurve.c:1412 +#: ../src/iop/tonecurve.c:1196 msgid "centripetal spline" msgstr "Spline centripète" -#: ../src/iop/colorzones.c:2497 ../src/iop/rgbcurve.c:1413 -#: ../src/iop/tonecurve.c:1175 +#: ../src/iop/colorzones.c:2765 ../src/iop/rgbcurve.c:1413 +#: ../src/iop/tonecurve.c:1197 msgid "monotonic spline" msgstr "Spline monotone" -#: ../src/iop/colorzones.c:2500 ../src/iop/rgbcurve.c:1416 -#: ../src/iop/tonecurve.c:1177 +#: ../src/iop/colorzones.c:2768 ../src/iop/rgbcurve.c:1416 +#: ../src/iop/tonecurve.c:1199 msgid "" "change this method if you see oscillations or cusps in the curve\n" "- cubic spline is better to produce smooth curves but oscillates when nodes " @@ -15627,24 +16207,24 @@ " • Spline monotone – donne une meilleure précision sur les fonctions\n" "mathématiques analytiques (log, gamma, exp)" -#: ../src/iop/crop.c:132 +#: ../src/iop/crop.c:122 msgid "crop" msgstr "Recadrer" -#: ../src/iop/crop.c:137 +#: ../src/iop/crop.c:127 msgid "reframe|distortion" msgstr "recadrer|rogner|distorsion" -#: ../src/iop/crop.c:143 +#: ../src/iop/crop.c:133 msgid "change the framing" msgstr "Change le cadrage" -#: ../src/iop/crop.c:1667 +#: ../src/iop/crop.c:1651 msgid "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag" msgstr "" "<b>Retailler</b> : glisser • <b>Conserver les proportions</b> : Maj+glisser" -#: ../src/iop/crop.c:1676 +#: ../src/iop/crop.c:1660 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag" @@ -15667,7 +16247,7 @@ msgstr "" "Ce module est déprécié, utiliser « Aberrations chromatiques » à la place." -#: ../src/iop/defringe.c:415 +#: ../src/iop/defringe.c:417 msgid "" "method for color protection:\n" " - global average: fast, might show slightly wrong previews in high " @@ -15687,11 +16267,11 @@ "plus de désaturation là où c’est nécessaire\n" " • Statique – rapide, utilise seulement le seuil comme limite statique" -#: ../src/iop/defringe.c:422 +#: ../src/iop/defringe.c:424 msgid "radius for detecting fringe" msgstr "Rayon pour la détection de la frange" -#: ../src/iop/defringe.c:425 +#: ../src/iop/defringe.c:427 msgid "threshold for defringe, higher values mean less defringing" msgstr "" "Seuil pour la détection de la frange, valeurs plus grandes pour moins de " @@ -15707,12 +16287,12 @@ "Reconstruit des pixels RVB complets\n" "à partir de la lecture d’un capteur à grille de filtres colorés." -#: ../src/iop/demosaic.c:1086 +#: ../src/iop/demosaic.c:1133 #, c-format msgid "`%s' color matrix not found for 4bayer image!" msgstr "Matrice de couleurs « %s » non trouvée pour une image de Bayer" -#: ../src/iop/demosaic.c:1238 +#: ../src/iop/demosaic.c:1285 msgid "" "Bayer sensor demosaicing method, PPG and RCD are fast, AMaZE and LMMSE are " "slow.\n" @@ -15725,7 +16305,7 @@ " • LMMSE est adapté aux images à haut ISO\n" "Un double dématriçage double le temps de traitement." -#: ../src/iop/demosaic.c:1242 +#: ../src/iop/demosaic.c:1289 msgid "" "X-Trans sensor demosaicing method, Markesteijn 3-pass and frequency domain " "chroma are slow.\n" @@ -15735,11 +16315,11 @@ "Markesteijn 3 passes et chroma domaine fréquentiel sont lents.\n" "Un double dématriçage double le temps de traitement." -#: ../src/iop/demosaic.c:1248 +#: ../src/iop/demosaic.c:1295 msgid "Bayer4 sensor demosaicing methods." msgstr "Méthode de dématriçage pour les capteurs de Bayer." -#: ../src/iop/demosaic.c:1252 +#: ../src/iop/demosaic.c:1299 msgid "" "threshold for edge-aware median.\n" "set to 0.0 to switch off\n" @@ -15748,7 +16328,7 @@ "Seuil pour une passe médiane supplémentaire.\n" "Indiquer « 0.0 » pour désactiver, « 1.0 » pour ignorer les bords." -#: ../src/iop/demosaic.c:1257 +#: ../src/iop/demosaic.c:1304 msgid "" "contrast threshold for dual demosaic.\n" "set to 0.0 for high frequency content\n" @@ -15760,7 +16340,7 @@ "pour favoriser\n" "les basses fréquences (aplats)." -#: ../src/iop/demosaic.c:1265 +#: ../src/iop/demosaic.c:1312 msgid "" "LMMSE refinement steps. the median steps average the output,\n" "refine adds some recalculation of red & blue channels" @@ -15769,49 +16349,49 @@ "Le pas « Médian » fait la moyenne de la sortie, le pas « Raffinement »\n" "ajoute un nouveau calcul des canaux rouges et bleus." -#: ../src/iop/demosaic.c:1268 +#: ../src/iop/demosaic.c:1315 msgid "how many color smoothing median steps after demosaicing" msgstr "Nombre de passes pour le lissage de couleur après le dématriçage" -#: ../src/iop/demosaic.c:1271 +#: ../src/iop/demosaic.c:1318 msgid "green channels matching method" msgstr "Méthode de calcul des verts" -#: ../src/iop/demosaic.c:1278 +#: ../src/iop/demosaic.c:1325 msgid "demosaicing is only used for color raw images" msgstr "« Dématriçage » est uniquement utilisé pour les images RAW" -#: ../src/iop/denoiseprofile.c:714 +#: ../src/iop/denoiseprofile.c:766 msgid "wavelets: chroma only" msgstr "Ondelettes : seulement la chroma" -#: ../src/iop/denoiseprofile.c:720 +#: ../src/iop/denoiseprofile.c:772 msgid "denoise (profiled)" msgstr "Réduction du bruit (profil)" -#: ../src/iop/denoiseprofile.c:726 +#: ../src/iop/denoiseprofile.c:778 msgid "denoise using noise statistics profiled on sensors" msgstr "Débruite en utilisant les statistiques de bruit profilées des capteurs" -#: ../src/iop/denoiseprofile.c:2846 +#: ../src/iop/denoiseprofile.c:2850 #, c-format msgid "found match for ISO %d" msgstr "Profil pour ISO %d trouvé" -#: ../src/iop/denoiseprofile.c:2855 +#: ../src/iop/denoiseprofile.c:2859 #, c-format msgid "interpolated from ISO %d and %d" msgstr "Interpolé depuis ISO %d et %d" -#: ../src/iop/denoiseprofile.c:3719 +#: ../src/iop/denoiseprofile.c:3723 msgid "Y0" msgstr "Y0" -#: ../src/iop/denoiseprofile.c:3720 +#: ../src/iop/denoiseprofile.c:3724 msgid "U0V0" msgstr "U0V0" -#: ../src/iop/denoiseprofile.c:3760 +#: ../src/iop/denoiseprofile.c:3764 msgid "" "use only with a perfectly\n" "uniform image if you want to\n" @@ -15821,36 +16401,36 @@ "complètement uniforme pour estimer\n" "la variance du bruit." -#: ../src/iop/denoiseprofile.c:3766 +#: ../src/iop/denoiseprofile.c:3770 msgid "variance red: " msgstr "Variance rouge : " -#: ../src/iop/denoiseprofile.c:3770 +#: ../src/iop/denoiseprofile.c:3774 msgid "variance computed on the red channel" msgstr "La variance calculée sur le canal rouge" -#: ../src/iop/denoiseprofile.c:3775 +#: ../src/iop/denoiseprofile.c:3779 msgid "variance green: " msgstr "Variance vert : " -#: ../src/iop/denoiseprofile.c:3779 +#: ../src/iop/denoiseprofile.c:3783 msgid "variance computed on the green channel" msgstr "La variance calculée sur le canal vert" -#: ../src/iop/denoiseprofile.c:3784 +#: ../src/iop/denoiseprofile.c:3788 msgid "variance blue: " msgstr "Variance bleue : " -#: ../src/iop/denoiseprofile.c:3788 +#: ../src/iop/denoiseprofile.c:3792 msgid "variance computed on the blue channel" msgstr "La variance calculée sur le canal bleu" -#: ../src/iop/denoiseprofile.c:3799 ../src/libs/export.c:1208 +#: ../src/iop/denoiseprofile.c:3803 ../src/libs/export.c:1320 #: ../src/libs/print_settings.c:2418 ../src/libs/print_settings.c:2774 msgid "profile" msgstr "Profil" -#: ../src/iop/denoiseprofile.c:3833 +#: ../src/iop/denoiseprofile.c:3837 msgid "" "adapt denoising according to the\n" "white balance coefficients.\n" @@ -15865,7 +16445,7 @@ "Devrait être désactivé si une instance précédente a été utilisée\n" "avec le mode de fusion sur la couleur." -#: ../src/iop/denoiseprofile.c:3840 +#: ../src/iop/denoiseprofile.c:3844 msgid "" "fix bugs in Anscombe transform resulting\n" "in undersmoothing of the green channel in\n" @@ -15887,11 +16467,11 @@ "En activant cette option le traitement est changé, une fois activé\n" "il ne sera plus possible de revenir à l'ancien algorithme." -#: ../src/iop/denoiseprofile.c:3850 +#: ../src/iop/denoiseprofile.c:3854 msgid "profile used for variance stabilization" msgstr "Profil utilisé pour la stabilisation de variance" -#: ../src/iop/denoiseprofile.c:3852 +#: ../src/iop/denoiseprofile.c:3856 msgid "" "method used in the denoising core.\n" "non-local means works best for `lightness' blending,\n" @@ -15902,7 +16482,7 @@ "« Luminosité »,\n" "« Ondelettes » fonctionne mieux avec le mode de fusion « Couleur »." -#: ../src/iop/denoiseprofile.c:3856 +#: ../src/iop/denoiseprofile.c:3860 msgid "" "color representation used within the algorithm.\n" "RGB keeps the RGB channels separated,\n" @@ -15913,7 +16493,7 @@ "RVB garde les canaux RVB séparés alors que Y0U0V0 combine ceux-ci\n" "pour une suppression différenciée des bruits de chrominance et de luminance." -#: ../src/iop/denoiseprofile.c:3861 +#: ../src/iop/denoiseprofile.c:3865 msgid "" "radius of the patches to match.\n" "increase for more sharpness on strong edges, and better denoising of smooth " @@ -15927,7 +16507,7 @@ "Si les détails sont trop lissés, réduire cette valeur ou augmenter le poids " "du pixel central." -#: ../src/iop/denoiseprofile.c:3867 +#: ../src/iop/denoiseprofile.c:3871 msgid "" "emergency use only: radius of the neighborhood to search patches in. " "increase for better denoising performance, but watch the long runtimes! " @@ -15937,7 +16517,7 @@ "meilleure suppression du bruit au détriment de la performance qui peut très " "vite devenir très pénalisante." -#: ../src/iop/denoiseprofile.c:3873 +#: ../src/iop/denoiseprofile.c:3877 msgid "" "scattering of the neighborhood to search patches in.\n" "increase for better coarse-grain noise reduction.\n" @@ -15947,7 +16527,7 @@ "Augmenter pour traiter un grain grossier.\n" "N’affecte pas le temps d’exécution." -#: ../src/iop/denoiseprofile.c:3877 +#: ../src/iop/denoiseprofile.c:3881 msgid "" "increase the weight of the central pixel\n" "of the patch in the patch comparison.\n" @@ -15958,11 +16538,11 @@ "du patch lors de la comparaison des patchs.\n" "Utile pour retrouver des détails lorsque la taille des patchs est importante." -#: ../src/iop/denoiseprofile.c:3881 +#: ../src/iop/denoiseprofile.c:3885 msgid "finetune denoising strength" msgstr "Réglage fin de la force de réduction" -#: ../src/iop/denoiseprofile.c:3883 +#: ../src/iop/denoiseprofile.c:3887 msgid "" "controls the way parameters are autoset\n" "increase if shadows are not denoised enough\n" @@ -15974,7 +16554,7 @@ "ou si le bruit de chrominance persiste.\n" "Cela peut arriver si l’image est sous-exposée." -#: ../src/iop/denoiseprofile.c:3888 +#: ../src/iop/denoiseprofile.c:3892 msgid "" "finetune shadows denoising.\n" "decrease to denoise more aggressively\n" @@ -15983,7 +16563,7 @@ "Contrôle finement la réduction du bruit dans les ombres,\n" "diminuer pour réduire le bruit plus agressivement dans les zones sombres." -#: ../src/iop/denoiseprofile.c:3892 +#: ../src/iop/denoiseprofile.c:3896 msgid "" "correct color cast in shadows.\n" "decrease if shadows are too purple.\n" @@ -15993,7 +16573,7 @@ "Diminuer si les ombres sont trop violettes,\n" "augmenter si elles sont trop vertes." -#: ../src/iop/denoiseprofile.c:3896 +#: ../src/iop/denoiseprofile.c:3900 msgid "" "upgrade the variance stabilizing algorithm.\n" "new algorithm extends the current one.\n" @@ -16027,68 +16607,68 @@ "ou supprimer le flou en utilisant une déconvolution aveugle." #. deblurring presets -#: ../src/iop/diffuse.c:219 +#: ../src/iop/diffuse.c:246 msgid "lens deblur: soft" msgstr "Correction du flou d’objectif : léger" -#: ../src/iop/diffuse.c:244 +#: ../src/iop/diffuse.c:271 msgid "lens deblur: medium" msgstr "Correction du flou d’objectif : moyen" -#: ../src/iop/diffuse.c:269 +#: ../src/iop/diffuse.c:296 msgid "lens deblur: hard" msgstr "Correction du flou d’objectif : fort" -#: ../src/iop/diffuse.c:295 +#: ../src/iop/diffuse.c:322 msgid "dehaze" msgstr "Suppression de la brume" -#: ../src/iop/diffuse.c:321 +#: ../src/iop/diffuse.c:348 msgid "denoise: fine" msgstr "Débruitage : léger" -#: ../src/iop/diffuse.c:346 +#: ../src/iop/diffuse.c:373 msgid "denoise: medium" msgstr "Débruitage : moyen" -#: ../src/iop/diffuse.c:371 +#: ../src/iop/diffuse.c:398 msgid "denoise: coarse" msgstr "Débruitage : fort" -#: ../src/iop/diffuse.c:446 +#: ../src/iop/diffuse.c:473 msgid "sharpen demosaicing: no AA filter" msgstr "Netteté du dématriçage : sans filtre AA" -#: ../src/iop/diffuse.c:472 +#: ../src/iop/diffuse.c:499 msgid "sharpen demosaicing: AA filter" msgstr "Netteté du dématriçage : filtre AA" -#: ../src/iop/diffuse.c:499 +#: ../src/iop/diffuse.c:526 msgid "simulate watercolor" msgstr "Simuler l’aquarelle" -#: ../src/iop/diffuse.c:524 +#: ../src/iop/diffuse.c:551 msgid "simulate line drawing" msgstr "Simuler le dessin au trait" -#: ../src/iop/diffuse.c:576 +#: ../src/iop/diffuse.c:603 msgid "inpaint highlights" msgstr "Remplir les hautes lumières" #. fast presets for slow hardware -#: ../src/iop/diffuse.c:603 +#: ../src/iop/diffuse.c:630 msgid "sharpness: fast" msgstr "Netteté : rapide" -#: ../src/iop/diffuse.c:655 +#: ../src/iop/diffuse.c:682 msgid "sharpness: strong" msgstr "Netteté : forte" -#: ../src/iop/diffuse.c:680 +#: ../src/iop/diffuse.c:707 msgid "local contrast: fast" msgstr "Contraste local : rapide" -#: ../src/iop/diffuse.c:1391 ../src/iop/diffuse.c:1666 +#: ../src/iop/diffuse.c:1418 ../src/iop/diffuse.c:1693 msgid "diffuse/sharpen failed to allocate memory, check your RAM settings" msgstr "" "« Diffusion ou netteté » n’a pas assez de mémoire, vérifier les paramètres " @@ -16096,13 +16676,13 @@ #. Additional parameters #. Camera settings -#: ../src/iop/diffuse.c:1782 ../src/iop/splittoning.c:537 +#: ../src/iop/diffuse.c:1797 ../src/iop/splittoning.c:533 #: ../src/libs/camera.c:486 msgctxt "section" msgid "properties" msgstr "Paramètres" -#: ../src/iop/diffuse.c:1788 +#: ../src/iop/diffuse.c:1803 msgid "" "more iterations make the effect stronger but the module slower.\n" "this is analogous to giving more time to the diffusion reaction.\n" @@ -16113,7 +16693,7 @@ "Ceci est similaire à laisser plus de temps à la réaction de diffusion.\n" "Pour la netteté ou la reconstruction, plus d’itérations peuvent aider." -#: ../src/iop/diffuse.c:1797 +#: ../src/iop/diffuse.c:1812 msgid "" "main scale of the diffusion.\n" "zero makes diffusion act on the finest details more heavily.\n" @@ -16127,7 +16707,7 @@ "Pour déflouter et débruiter régler à zéro, augmenter pour opérer sur le " "contraste local." -#: ../src/iop/diffuse.c:1807 +#: ../src/iop/diffuse.c:1822 msgid "" "width of the diffusion around the central radius.\n" "high values diffuse on a large band of radii.\n" @@ -16141,12 +16721,12 @@ "Pour le défloutage, le rayon devrait être de la largeur du flou d’objectif " "environ." -#: ../src/iop/diffuse.c:1814 +#: ../src/iop/diffuse.c:1829 msgctxt "section" msgid "speed (sharpen ↔ diffuse)" msgstr "Vitesse (netteté ↔ diffusion)" -#: ../src/iop/diffuse.c:1821 +#: ../src/iop/diffuse.c:1836 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 1st order anisotropy (set below).\n" @@ -16162,7 +16742,7 @@ "augmentent la diffusion\n" "et le flou. Ne fait rien si mis à zéro." -#: ../src/iop/diffuse.c:1831 +#: ../src/iop/diffuse.c:1846 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 2nd order anisotropy (set below).\n" @@ -16178,7 +16758,7 @@ "augmentent la diffusion\n" "et le flou. Ne fait rien si mis à zéro." -#: ../src/iop/diffuse.c:1841 +#: ../src/iop/diffuse.c:1856 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 3rd order anisotropy (set below).\n" @@ -16187,14 +16767,14 @@ "positive values diffuse and blur, \n" "zero does nothing." msgstr "" -"Vitesse de diffusion des couches des ondelettes basse fréquence dans la " +"Vitesse de diffusion des couches des ondelettes haute fréquence dans la " "direction\n" "du 3e ordre anisotropique (positionnée ci-dessous).\n" "Les valeurs négatives augmentent la netteté, les valeurs positives " "augmentent la diffusion\n" "et le flou. Ne fait rien si mis à zéro." -#: ../src/iop/diffuse.c:1851 +#: ../src/iop/diffuse.c:1866 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 4th order anisotropy (set below).\n" @@ -16203,19 +16783,19 @@ "positive values diffuse and blur, \n" "zero does nothing." msgstr "" -"Vitesse de diffusion des couches des ondelettes basse fréquence dans la " +"Vitesse de diffusion des couches des ondelettes haute fréquence dans la " "direction\n" "du 4e ordre anisotropique (positionnée ci-dessous).\n" "Les valeurs négatives augmentent la netteté, les valeurs positives " "augmentent la diffusion\n" "et le flou. Ne fait rien si mis à zéro." -#: ../src/iop/diffuse.c:1857 +#: ../src/iop/diffuse.c:1872 msgctxt "section" msgid "direction" msgstr "Direction" -#: ../src/iop/diffuse.c:1864 +#: ../src/iop/diffuse.c:1879 msgid "" "direction of 1st order speed (set above).\n" "\n" @@ -16229,7 +16809,7 @@ "évitent les bords (isophotes), zéro affecte les deux de manière égale " "(isotropique)." -#: ../src/iop/diffuse.c:1873 +#: ../src/iop/diffuse.c:1888 msgid "" "direction of 2nd order speed (set above).\n" "\n" @@ -16243,7 +16823,7 @@ "évitent les bords (isophotes), zéro affecte les deux de manière égale " "(isotropique)." -#: ../src/iop/diffuse.c:1882 +#: ../src/iop/diffuse.c:1897 msgid "" "direction of 3rd order speed (set above).\n" "\n" @@ -16257,7 +16837,7 @@ "évitent les bords (isophotes), zéro affecte les deux de manière égale " "(isotropique)." -#: ../src/iop/diffuse.c:1891 +#: ../src/iop/diffuse.c:1906 msgid "" "direction of 4th order speed (set above).\n" "\n" @@ -16271,12 +16851,12 @@ "évitent les bords (isophotes), zéro affecte les deux de manière égale " "(isotropique)." -#: ../src/iop/diffuse.c:1897 +#: ../src/iop/diffuse.c:1912 msgctxt "section" msgid "edge management" msgstr "Gestion des bords" -#: ../src/iop/diffuse.c:1904 +#: ../src/iop/diffuse.c:1919 msgid "" "increase or decrease the sharpness of the highest frequencies.\n" "can be used to keep details after blooming,\n" @@ -16287,7 +16867,7 @@ "diffusion.\n" "Pour une netteté autonome utiliser une vitesse négative." -#: ../src/iop/diffuse.c:1911 +#: ../src/iop/diffuse.c:1926 msgid "" "define the sensitivity of the variance penalty for edges.\n" "increase to exclude more edges from diffusion,\n" @@ -16297,7 +16877,7 @@ "Augmenter pour exclure plus de bords de la diffusion,\n" "si des franges ou des halos apparaissent." -#: ../src/iop/diffuse.c:1918 +#: ../src/iop/diffuse.c:1933 msgid "" "define the variance threshold between edge amplification and penalty.\n" "decrease if you want pixels on smooth surfaces get a boost,\n" @@ -16311,12 +16891,12 @@ "sombres\n" "semblent trop accentuées par rapport aux zones claires." -#: ../src/iop/diffuse.c:1924 +#: ../src/iop/diffuse.c:1939 msgctxt "section" msgid "diffusion spatiality" msgstr "Spatialité de la diffusion" -#: ../src/iop/diffuse.c:1931 +#: ../src/iop/diffuse.c:1946 msgid "" "luminance threshold for the mask.\n" "0. disables the luminance masking and applies the module on the whole " @@ -16336,7 +16916,7 @@ msgstr "Homogénéiser ou postériser" #: ../src/iop/dither.c:112 -msgid "dithering|posterization|reduce bit-depth" +msgid "dithering|posterization|reduce bit depth" msgstr "homogénéiser|postériser|réduire profondeur de bit" #: ../src/iop/dither.c:117 @@ -16352,23 +16932,23 @@ msgstr "Correctif et créatif" #. add the preset. -#: ../src/iop/dither.c:147 +#: ../src/iop/dither.c:149 msgid "dither" msgstr "Homogénéiser" -#: ../src/iop/dither.c:759 +#: ../src/iop/dither.c:761 msgid "radius for blurring step" msgstr "Rayon du flou" -#: ../src/iop/dither.c:771 +#: ../src/iop/dither.c:773 msgid "the gradient range where to apply random dither" msgstr "Gradient de la zone à homogénéiser" -#: ../src/iop/dither.c:772 +#: ../src/iop/dither.c:774 msgid "gradient range" msgstr "Gradient" -#: ../src/iop/dither.c:780 +#: ../src/iop/dither.c:782 msgid "damping level of random dither" msgstr "Amortissement pour l’homogénéisation aléatoire" @@ -16376,13 +16956,13 @@ msgid "legacy equalizer" msgstr "Égaliseur (ancien)" -#: ../src/iop/equalizer.c:110 +#: ../src/iop/equalizer.c:112 msgid "" "this module is deprecated. better use contrast equalizer module instead." msgstr "" "Ce module est déprécié, utiliser « Égaliseur de contraste » à la place." -#: ../src/iop/equalizer.c:238 +#: ../src/iop/equalizer.c:240 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -16401,33 +16981,33 @@ "en utilisant un éclaircissement sans danger pour les couleurs.\n" "Semblable à une augmentation d’ISO." -#: ../src/iop/exposure.c:279 +#: ../src/iop/exposure.c:301 msgid "magic lantern defaults" msgstr "Défauts de magic lantern" -#: ../src/iop/exposure.c:351 ../src/iop/rawoverexposed.c:135 -#: ../src/iop/rawoverexposed.c:254 +#: ../src/iop/exposure.c:373 ../src/iop/rawoverexposed.c:137 +#: ../src/iop/rawoverexposed.c:256 #, c-format msgid "failed to get raw buffer from image `%s'" msgstr "Échec de l’allocation de mémoire pour l’image « %s »" -#: ../src/iop/exposure.c:629 +#: ../src/iop/exposure.c:647 #, no-c-format msgid "compensate camera exposure (%+.1f EV)" msgstr "Compenser l’exposition du boîtier (%+.1f IL)" #. Write report in GUI -#: ../src/iop/exposure.c:813 +#: ../src/iop/exposure.c:831 #, c-format msgid "L : \t%.1f %%" msgstr "L : \t%.1f %%" -#: ../src/iop/exposure.c:945 ../src/libs/history.c:953 +#: ../src/iop/exposure.c:963 ../src/libs/history.c:953 #, c-format msgid "%.2f EV" msgstr "%.2f IL" -#: ../src/iop/exposure.c:1113 +#: ../src/iop/exposure.c:1131 msgid "" "automatically remove the camera exposure bias\n" "this is useful if you exposed the image to the right." @@ -16435,29 +17015,29 @@ "Supprime la compensation d’exposition du boîtier automatiquement,\n" "utile lors d’une exposition à droite de l’image." -#: ../src/iop/exposure.c:1132 +#: ../src/iop/exposure.c:1150 #, no-c-format msgid "where in the histogram to meter for deflicking. E.g. 50% is median" msgstr "" "Où mesurer dans l’histogramme pour le deflicking, par exemple 50 % est la " "valeur médiane" -#: ../src/iop/exposure.c:1138 +#: ../src/iop/exposure.c:1156 msgid "" "where to place the exposure level for processed pics, EV below overexposure." msgstr "" "Où placer le niveau d’exposition de l’image développée, IL en dessous de la " "surexposition" -#: ../src/iop/exposure.c:1142 +#: ../src/iop/exposure.c:1160 msgid "computed EC: " msgstr "CE calculée : " -#: ../src/iop/exposure.c:1145 +#: ../src/iop/exposure.c:1163 msgid "what exposure correction has actually been used" msgstr "La correction d’exposition réellement utilisée" -#: ../src/iop/exposure.c:1164 +#: ../src/iop/exposure.c:1182 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -16470,11 +17050,11 @@ "tronquées\n" "en poussant les valeurs RVB négativement." -#: ../src/iop/exposure.c:1174 -msgid "spot exposure mapping" -msgstr "Mappage de l’exposition" +#: ../src/iop/exposure.c:1192 +msgid "area exposure mapping" +msgstr "Mappage zone d’exposition" -#: ../src/iop/exposure.c:1180 +#: ../src/iop/exposure.c:1198 msgid "" "define a target brightness, in terms of exposure,\n" "for a selected region of the image (the control sample),\n" @@ -16490,7 +17070,7 @@ "soit une surface immobile et éclairée de manière constante sur une série " "d’images." -#: ../src/iop/exposure.c:1189 +#: ../src/iop/exposure.c:1207 msgid "" "\"correction\" automatically adjust exposure\n" "such that the input lightness is mapped to the target.\n" @@ -16502,11 +17082,11 @@ " • Mesure – montre simplement comment une couleur d’entrée est mappée\n" "par la compensation d’exposition, et peut être utilisé pour définir la cible." -#: ../src/iop/exposure.c:1215 +#: ../src/iop/exposure.c:1233 msgid "L : \tN/A" msgstr "L : \tN/A" -#: ../src/iop/exposure.c:1233 +#: ../src/iop/exposure.c:1251 msgid "the desired target exposure after mapping" msgstr "La cible recherchée après le mappage de l’exposition" @@ -16514,54 +17094,54 @@ msgid "this module is deprecated. better use filmic rgb module instead." msgstr "Ce module est déprécié, utiliser « Filmique RVB » à la place." -#: ../src/iop/filmic.c:304 +#: ../src/iop/filmic.c:333 msgid "09 EV (low-key)" msgstr "09 IL (clair-obscur)" -#: ../src/iop/filmic.c:312 +#: ../src/iop/filmic.c:341 msgid "10 EV (indoors)" msgstr "10 IL (intérieur)" -#: ../src/iop/filmic.c:320 +#: ../src/iop/filmic.c:349 msgid "11 EV (dim outdoors)" msgstr "11 IL (extérieur sombre)" -#: ../src/iop/filmic.c:328 +#: ../src/iop/filmic.c:357 msgid "12 EV (outdoors)" msgstr "12 IL (extérieur)" -#: ../src/iop/filmic.c:336 +#: ../src/iop/filmic.c:365 msgid "13 EV (bright outdoors)" msgstr "13 IL (extérieur lumineux)" -#: ../src/iop/filmic.c:344 +#: ../src/iop/filmic.c:373 msgid "14 EV (backlighting)" msgstr "14 IL (contre-jour)" -#: ../src/iop/filmic.c:352 +#: ../src/iop/filmic.c:381 msgid "15 EV (sunset)" msgstr "15 IL (coucher de soleil)" -#: ../src/iop/filmic.c:360 +#: ../src/iop/filmic.c:389 msgid "16 EV (HDR)" msgstr "16 IL (HDR)" -#: ../src/iop/filmic.c:368 +#: ../src/iop/filmic.c:397 msgid "18 EV (HDR++)" msgstr "18 IL (HDR++)" -#: ../src/iop/filmic.c:1480 +#: ../src/iop/filmic.c:1505 msgid "read-only graph, use the parameters below to set the nodes" msgstr "" "Graphe non interactif, utiliser les paramètres ci-dessous pour modifier les " "nœuds" -#: ../src/iop/filmic.c:1484 +#: ../src/iop/filmic.c:1509 msgctxt "section" msgid "logarithmic shaper" msgstr "Transformation logarithmique" -#: ../src/iop/filmic.c:1492 +#: ../src/iop/filmic.c:1517 msgid "" "adjust to match the average luminance of the subject.\n" "except in back-lighting situations, this should be around 18%." @@ -16569,7 +17149,7 @@ "Ajuster pour correspondre à la luminance moyenne du sujet.\n" "Sauf pour les scènes sombres, cette valeur devrait être proche de 18 %." -#: ../src/iop/filmic.c:1504 ../src/iop/filmicrgb.c:4442 +#: ../src/iop/filmic.c:1529 ../src/iop/filmicrgb.c:4506 msgid "" "number of stops between middle gray and pure white.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16579,7 +17159,7 @@ "C’est la valeur que donnerait un posemètre sur la scène.\n" "Ajuster pour éviter de tronquer les hautes lumières." -#: ../src/iop/filmic.c:1517 ../src/iop/filmicrgb.c:4453 +#: ../src/iop/filmic.c:1542 ../src/iop/filmicrgb.c:4517 msgid "" "number of stops between middle gray and pure black.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16591,20 +17171,20 @@ "Augmenter pour avoir plus de contraste.\n" "Diminuer pour récupérer des détails dans les basses lumières." -#: ../src/iop/filmic.c:1529 +#: ../src/iop/filmic.c:1554 msgid "" -"enlarge or shrink the computed dynamic range.\n" +"increase or decrease the computed dynamic range.\n" "useful in conjunction with \"auto tune levels\"." msgstr "" -"Élargir ou rétrécir la plage dynamique calculée.\n" +"Augmente ou diminue la plage dynamique calculée.\n" "Ceci est utile avec l’utilisation des « Niveaux automatiques »." -#: ../src/iop/filmic.c:1535 ../src/iop/filmicrgb.c:4467 -#: ../src/iop/profile_gamma.c:659 +#: ../src/iop/filmic.c:1560 ../src/iop/filmicrgb.c:4531 +#: ../src/iop/profile_gamma.c:673 msgid "auto tune levels" msgstr "Niveaux automatiques" -#: ../src/iop/filmic.c:1538 +#: ../src/iop/filmic.c:1563 msgid "" "try to optimize the settings with some guessing.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16616,12 +17196,12 @@ "Marche mieux sur les paysages et images exposées uniformément\n" "et donnera de mauvais résultat sur des clairs-obscurs et high-key." -#: ../src/iop/filmic.c:1543 +#: ../src/iop/filmic.c:1568 msgctxt "section" msgid "filmic S curve" msgstr "Courbe filmique en S" -#: ../src/iop/filmic.c:1550 ../src/iop/filmicrgb.c:4554 +#: ../src/iop/filmic.c:1575 ../src/iop/filmicrgb.c:4618 msgid "" "slope of the linear part of the curve\n" "affects mostly the mid-tones" @@ -16630,12 +17210,12 @@ "touche principalement les tons moyens" #. geotagging -#: ../src/iop/filmic.c:1557 ../src/iop/filmicrgb.c:4563 -#: ../src/libs/metadata_view.c:157 +#: ../src/iop/filmic.c:1582 ../src/iop/filmicrgb.c:4627 +#: ../src/libs/metadata_view.c:161 msgid "latitude" msgstr "Latitude" -#: ../src/iop/filmic.c:1560 +#: ../src/iop/filmic.c:1585 msgid "" "width of the linear domain in the middle of the curve.\n" "increase to get more contrast at the extreme luminances.\n" @@ -16645,11 +17225,11 @@ "Augmenter pour obtenir plus de contraste dans les luminances extrêmes.\n" "Ce réglage n’a aucun effet dans les tons moyens." -#: ../src/iop/filmic.c:1567 +#: ../src/iop/filmic.c:1592 msgid "shadows/highlights balance" msgstr "Balance ombres/hautes lumières" -#: ../src/iop/filmic.c:1570 ../src/iop/filmicrgb.c:4574 +#: ../src/iop/filmic.c:1595 ../src/iop/filmicrgb.c:4638 msgid "" "slides the latitude along the slope\n" "to give more room to shadows or highlights.\n" @@ -16660,7 +17240,7 @@ "aux ombres ou hautes lumières.\n" "À utiliser pour protéger les détails aux extrémités de l’histogramme." -#: ../src/iop/filmic.c:1580 +#: ../src/iop/filmic.c:1605 msgid "" "desaturates the input of the module globally.\n" "you need to set this value below 100%\n" @@ -16670,7 +17250,7 @@ "La valeur doit être en dessous de 100 %\n" "si la conservation de la chrominance est activée." -#: ../src/iop/filmic.c:1590 +#: ../src/iop/filmic.c:1615 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16681,42 +17261,42 @@ "Diminuer si les ombres et/ou les hautes lumières sont sur-saturés." #. Add export intent combo -#: ../src/iop/filmic.c:1600 ../src/libs/export.c:1227 +#: ../src/iop/filmic.c:1625 ../src/libs/export.c:1339 #: ../src/libs/print_settings.c:2473 ../src/libs/print_settings.c:2820 -#: ../src/views/darkroom.c:2524 ../src/views/lighttable.c:1182 +#: ../src/views/darkroom.c:2365 ../src/views/lighttable.c:1182 msgid "intent" msgstr "Rendu" -#: ../src/iop/filmic.c:1601 +#: ../src/iop/filmic.c:1626 msgid "contrasted" msgstr "Contrasté" #. cubic spline -#: ../src/iop/filmic.c:1602 +#: ../src/iop/filmic.c:1627 msgid "faded" msgstr "Délavé" #. centripetal spline -#: ../src/iop/filmic.c:1603 ../src/iop/profile_gamma.c:621 +#: ../src/iop/filmic.c:1628 ../src/iop/profile_gamma.c:635 msgid "linear" msgstr "Linéaire" #. monotonic spline -#: ../src/iop/filmic.c:1604 +#: ../src/iop/filmic.c:1629 msgid "optimized" msgstr "Optimisé" -#: ../src/iop/filmic.c:1606 +#: ../src/iop/filmic.c:1631 msgid "change this method if you see reversed contrast or faded blacks" msgstr "" "Changer la méthode si des contrastes inversés ou des noirs fades apparaissent" #. Preserve color -#: ../src/iop/filmic.c:1610 +#: ../src/iop/filmic.c:1635 msgid "preserve the chrominance" msgstr "Préserver la couleur" -#: ../src/iop/filmic.c:1612 +#: ../src/iop/filmic.c:1637 msgid "" "ensure the original color are preserved.\n" "may reinforce chromatic aberrations.\n" @@ -16727,12 +17307,12 @@ "chromatiques,\n" "il est nécessaire d’ajuster manuellement la saturation dans ce mode." -#: ../src/iop/filmic.c:1622 +#: ../src/iop/filmic.c:1647 msgctxt "section" msgid "destination/display" msgstr "Destination / Affichage" -#: ../src/iop/filmic.c:1640 ../src/iop/filmicrgb.c:4593 +#: ../src/iop/filmic.c:1665 ../src/iop/filmicrgb.c:4657 msgid "" "luminance of output pure black, this should be 0%\n" "except if you want a faded look" @@ -16740,7 +17320,7 @@ "Luminance du noir pur de sortie, devrait être à 0 %\n" "sauf pour obtenir des tons fades." -#: ../src/iop/filmic.c:1649 ../src/iop/filmicrgb.c:4600 +#: ../src/iop/filmic.c:1674 ../src/iop/filmicrgb.c:4664 msgid "" "middle gray value of the target display or color space.\n" "you should never touch that unless you know what you are doing." @@ -16748,7 +17328,7 @@ "Valeur du gris moyen de la cible de sortie ou de l’espace de couleur.\n" "Ne jamais modifier sauf en connaissance de cause." -#: ../src/iop/filmic.c:1658 ../src/iop/filmicrgb.c:4607 +#: ../src/iop/filmic.c:1683 ../src/iop/filmicrgb.c:4671 msgid "" "luminance of output pure white, this should be 100%\n" "except if you want a faded look" @@ -16756,11 +17336,11 @@ "Luminance du blanc pur de sortie, devrait être à 100 %\n" "sauf pour obtenir des tons fades." -#: ../src/iop/filmic.c:1664 +#: ../src/iop/filmic.c:1689 msgid "target gamma" msgstr "Gamma cible" -#: ../src/iop/filmic.c:1666 +#: ../src/iop/filmic.c:1691 msgid "" "power or gamma of the transfer function\n" "of the display or color space.\n" @@ -16789,7 +17369,7 @@ "scène\n" "pour affichage sur écran SDR et tirages sur papier" -#: ../src/iop/filmicrgb.c:1310 +#: ../src/iop/filmicrgb.c:1365 msgid "" "filmic highlights reconstruction failed to allocate memory, check your RAM " "settings" @@ -16797,73 +17377,73 @@ "Le reconstruction des hautes lumières de filmique n’a pas assez de mémoire, " "vérifier les paramètres de la RAM" -#: ../src/iop/filmicrgb.c:2301 +#: ../src/iop/filmicrgb.c:2369 msgid "filmic highlights reconstruction failed to allocate memory on GPU" msgstr "" "Le reconstruction des hautes lumières de « Filmique RVB » n’a pas assez de " "mémoire GPU" -#: ../src/iop/filmicrgb.c:2419 +#: ../src/iop/filmicrgb.c:2487 msgid "filmic works only on RGB input" msgstr "« Filmique RVB » ne marche qu’avec une entrée RVB" -#: ../src/iop/filmicrgb.c:3484 +#: ../src/iop/filmicrgb.c:3548 msgid "look only" msgstr "Look uniquement" -#: ../src/iop/filmicrgb.c:3486 +#: ../src/iop/filmicrgb.c:3550 msgid "look + mapping (lin)" msgstr "Look + mappage (lin)" -#: ../src/iop/filmicrgb.c:3488 +#: ../src/iop/filmicrgb.c:3552 msgid "look + mapping (log)" msgstr "Look + mappage (log)" -#: ../src/iop/filmicrgb.c:3490 +#: ../src/iop/filmicrgb.c:3554 msgid "dynamic range mapping" msgstr "Mappage de plage dynamique" -#: ../src/iop/filmicrgb.c:3857 +#: ../src/iop/filmicrgb.c:3921 #, c-format msgid "(%.0f %%)" msgstr "(%.0f %%)" -#: ../src/iop/filmicrgb.c:3873 +#: ../src/iop/filmicrgb.c:3937 #, no-c-format msgid "% display" msgstr "% Affichage" -#: ../src/iop/filmicrgb.c:3885 +#: ../src/iop/filmicrgb.c:3949 msgid "EV scene" msgstr "IL scène" -#: ../src/iop/filmicrgb.c:3889 +#: ../src/iop/filmicrgb.c:3953 #, no-c-format msgid "% camera" msgstr "% Boîtier" #. Page DISPLAY -#: ../src/iop/filmicrgb.c:3925 ../src/iop/filmicrgb.c:4587 +#: ../src/iop/filmicrgb.c:3989 ../src/iop/filmicrgb.c:4651 msgid "display" msgstr "Affichage" #. axis legend -#: ../src/iop/filmicrgb.c:3934 +#: ../src/iop/filmicrgb.c:3998 msgid "(%)" msgstr "(%)" #. Page SCENE -#: ../src/iop/filmicrgb.c:3943 ../src/iop/filmicrgb.c:4422 +#: ../src/iop/filmicrgb.c:4007 ../src/iop/filmicrgb.c:4486 msgid "scene" msgstr "Scène" #. axis legend -#: ../src/iop/filmicrgb.c:3952 +#: ../src/iop/filmicrgb.c:4016 msgid "(EV)" msgstr "(IL)" #. we are over the graph area -#: ../src/iop/filmicrgb.c:4364 +#: ../src/iop/filmicrgb.c:4428 msgid "" "use the parameters below to set the nodes.\n" "the bright curve is the filmic tone mapping curve\n" @@ -16873,11 +17453,11 @@ "La courbe claire représente le mappage des tonalités,\n" "la courbe sombre représente la désaturation." -#: ../src/iop/filmicrgb.c:4370 +#: ../src/iop/filmicrgb.c:4434 msgid "toggle axis labels and values display" msgstr "Basculer les légendes des axes" -#: ../src/iop/filmicrgb.c:4374 +#: ../src/iop/filmicrgb.c:4438 msgid "" "cycle through graph views.\n" "left click: cycle forward.\n" @@ -16889,7 +17469,7 @@ " • Clic droit pour la vue précédente\n" " • Double clic pour réinitialiser la vue" -#: ../src/iop/filmicrgb.c:4431 +#: ../src/iop/filmicrgb.c:4495 #, no-c-format msgid "" "adjust to match the average luminance of the image's subject.\n" @@ -16900,15 +17480,15 @@ "La valeur entrée sera réglée pour correspondre à 18.45 %,\n" "Diminuer pour augmenter la luminosité globale." -#: ../src/iop/filmicrgb.c:4461 +#: ../src/iop/filmicrgb.c:4525 msgid "" -"symmetrically enlarge or shrink the computed dynamic range.\n" +"symmetrically increase or decrease the computed dynamic range.\n" "useful to give a safety margin to extreme luminances." msgstr "" -"Élargir ou rétrécir la plage dynamique calculée.\n" +"Augmente ou diminue la plage dynamique calculée.\n" "Ceci est utile pour donner une marge de sécurité aux luminances extrêmes." -#: ../src/iop/filmicrgb.c:4468 +#: ../src/iop/filmicrgb.c:4532 msgid "" "try to optimize the settings with some statistical assumptions.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16925,16 +17505,16 @@ "S’assurer de bien comprendre l’analyse avant de l’utiliser." #. Page RECONSTRUCT -#: ../src/iop/filmicrgb.c:4477 +#: ../src/iop/filmicrgb.c:4541 msgid "reconstruct" msgstr "Reconstruire" -#: ../src/iop/filmicrgb.c:4479 +#: ../src/iop/filmicrgb.c:4543 msgctxt "section" msgid "highlights clipping" msgstr "Hautes lumières tronquées" -#: ../src/iop/filmicrgb.c:4487 +#: ../src/iop/filmicrgb.c:4551 msgid "" "set the exposure threshold upon which\n" "clipped highlights get reconstructed.\n" @@ -16948,7 +17528,7 @@ "0 IL signifie que le seuil est le même que le point blanc de la scène.\n" "Diminuer pour inclure plus de zones, augmenter pour en exclure plus." -#: ../src/iop/filmicrgb.c:4497 +#: ../src/iop/filmicrgb.c:4561 msgid "" "soften the transition between clipped highlights and valid pixels.\n" "decrease to make the transition harder and sharper,\n" @@ -16959,20 +17539,20 @@ "Diminuer pour une transition plus tranchée et dure,\n" "augmenter pour une transition plus douce et floutée." -#: ../src/iop/filmicrgb.c:4503 ../src/iop/filmicrgb.c:4504 +#: ../src/iop/filmicrgb.c:4567 ../src/iop/filmicrgb.c:4568 msgid "display highlight reconstruction mask" msgstr "Afficher le masque de reconstruction" -#: ../src/iop/filmicrgb.c:4511 +#: ../src/iop/filmicrgb.c:4575 msgctxt "section" msgid "balance" msgstr "Répartition" -#: ../src/iop/filmicrgb.c:4518 +#: ../src/iop/filmicrgb.c:4582 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between inpainting a smooth color gradient,\n" +"inpainting a smooth color gradient\n" "or trying to recover the textured details.\n" "0% is an equal mix of both.\n" "increase if at least one RGB channel is not clipped.\n" @@ -16985,11 +17565,11 @@ "n’est pas tronqué, diminuer si tous les canaux RVB sont tronqués sur une " "large zone." -#: ../src/iop/filmicrgb.c:4529 +#: ../src/iop/filmicrgb.c:4593 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between blooming highlights like film does,\n" +"blooming highlights like film does\n" "or trying to recover sharp details.\n" "0% is an equal mix of both.\n" "increase if you want more details.\n" @@ -17001,11 +17581,11 @@ "0 % est une moyenne équilibrée des deux. Augmenter pour plus de détails,\n" "diminuer pour plus de flou." -#: ../src/iop/filmicrgb.c:4541 +#: ../src/iop/filmicrgb.c:4605 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between recovering monochromatic highlights,\n" +"recovering monochromatic highlights\n" "or trying to recover colorful highlights.\n" "0% is an equal mix of both.\n" "increase if you want more color.\n" @@ -17018,11 +17598,11 @@ "diminuer pour éviter les hautes lumières magentas ou hors gamut." #. Page LOOK -#: ../src/iop/filmicrgb.c:4549 +#: ../src/iop/filmicrgb.c:4613 msgid "look" msgstr "Look" -#: ../src/iop/filmicrgb.c:4559 +#: ../src/iop/filmicrgb.c:4623 msgid "" "equivalent to paper grade in analog.\n" "increase to make highlights brighter and less compressed.\n" @@ -17033,7 +17613,7 @@ "compressées,\n" "diminuer pour contenir les hautes lumières." -#: ../src/iop/filmicrgb.c:4567 +#: ../src/iop/filmicrgb.c:4631 msgid "" "width of the linear domain in the middle of the curve,\n" "increase to get more contrast and less desaturation at extreme luminances,\n" @@ -17047,7 +17627,7 @@ "latitude.\n" "Ce réglage n’a pas d’effet sur les tons moyens." -#: ../src/iop/filmicrgb.c:4582 ../src/iop/filmicrgb.c:4730 +#: ../src/iop/filmicrgb.c:4646 ../src/iop/filmicrgb.c:4794 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -17058,11 +17638,11 @@ "Augmenter si les ombres et/ou les hautes lumières sont sous-saturées." #. Page OPTIONS -#: ../src/iop/filmicrgb.c:4611 +#: ../src/iop/filmicrgb.c:4675 msgid "options" msgstr "Options" -#: ../src/iop/filmicrgb.c:4616 +#: ../src/iop/filmicrgb.c:4680 msgid "" "v3 is darktable 3.0 desaturation method, same as color balance.\n" "v4 is a newer desaturation method, based on spectral purity of light." @@ -17072,7 +17652,7 @@ " • V4 est la nouvelle méthode de désaturation basée sur la pureté du spectre " "de la lumière." -#: ../src/iop/filmicrgb.c:4620 +#: ../src/iop/filmicrgb.c:4684 msgid "" "ensure the original colors are preserved.\n" "may reinforce chromatic aberrations and chroma noise,\n" @@ -17082,7 +17662,7 @@ "Peut renforcer les aberrations chromatiques et le bruit chromatique,\n" "il est nécessaire de s’assurer qu’ils sont correctement corrigés auparavant." -#: ../src/iop/filmicrgb.c:4629 +#: ../src/iop/filmicrgb.c:4693 msgid "" "choose the desired curvature of the filmic spline in highlights.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -17092,7 +17672,7 @@ " • Dur pour une compression tonale plus importante\n" " • Doux pour une compression tonale plus faible" -#: ../src/iop/filmicrgb.c:4634 +#: ../src/iop/filmicrgb.c:4698 msgid "" "choose the desired curvature of the filmic spline in shadows.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -17102,7 +17682,7 @@ " • Dur pour une compression tonale plus importante\n" " • Doux pour une compression tonale plus faible" -#: ../src/iop/filmicrgb.c:4641 +#: ../src/iop/filmicrgb.c:4705 #, no-c-format msgid "" "enable to input custom middle-gray values.\n" @@ -17115,7 +17695,7 @@ "« Exposition ».\n" "Désactiver pour utiliser un gris moyen standard de 18.45 %." -#: ../src/iop/filmicrgb.c:4648 +#: ../src/iop/filmicrgb.c:4712 msgid "" "enable to auto-set the look hardness depending on the scene white and black " "points.\n" @@ -17127,7 +17707,7 @@ "Cela ne modifie pas le gris moyen et améliore les réglages rapides.\n" "Désactiver pour contrôler manuellement." -#: ../src/iop/filmicrgb.c:4654 +#: ../src/iop/filmicrgb.c:4718 msgid "" "run extra passes of chromaticity reconstruction.\n" "more iterations means more color propagation from neighborhood.\n" @@ -17141,7 +17721,7 @@ "aussi\n" "dans les cas difficiles de hautes lumières magentas." -#: ../src/iop/filmicrgb.c:4661 +#: ../src/iop/filmicrgb.c:4725 msgid "" "add statistical noise in reconstructed highlights.\n" "this avoids highlights to look too smooth\n" @@ -17152,7 +17732,7 @@ "Cela évite des hautes lumières lisses quand l’image est un peu bruitée,\n" "les hautes lumières se fondent alors mieux avec le reste de l’image." -#: ../src/iop/filmicrgb.c:4668 +#: ../src/iop/filmicrgb.c:4732 msgid "" "choose the statistical distribution of noise.\n" "this is useful to match natural sensor noise pattern." @@ -17160,11 +17740,11 @@ "Sélectionner la distribution statistique du bruit,\n" "pour ressembler au bruit naturel du capteur." -#: ../src/iop/filmicrgb.c:4736 +#: ../src/iop/filmicrgb.c:4800 msgid "mid-tones saturation" msgstr "Saturation des tons moyens" -#: ../src/iop/filmicrgb.c:4737 +#: ../src/iop/filmicrgb.c:4801 msgid "" "desaturates the output of the module\n" "specifically at medium luminances.\n" @@ -17174,11 +17754,11 @@ "plus particulièrement aux luminances moyennes.\n" "Augmenter si les tons moyens sont sous-saturés." -#: ../src/iop/filmicrgb.c:4743 +#: ../src/iop/filmicrgb.c:4807 msgid "highlights saturation mix" msgstr "Saturation des hautes lumières" -#: ../src/iop/filmicrgb.c:4744 +#: ../src/iop/filmicrgb.c:4808 msgid "" "positive values ensure saturation is kept unchanged over the whole range.\n" "negative values bleach highlights at constant hue and luminance.\n" @@ -17202,39 +17782,39 @@ msgid "flip or rotate image by step of 90 degrees" msgstr "Inverse ou tourne l’image par pas de 90 degrés" -#: ../src/iop/flip.c:477 +#: ../src/iop/flip.c:475 msgid "no rotation" msgstr "Pas de rotation" -#: ../src/iop/flip.c:481 ../src/iop/flip.c:624 +#: ../src/iop/flip.c:479 ../src/iop/flip.c:622 msgid "flip horizontally" msgstr "Retourne horizontalement" -#: ../src/iop/flip.c:485 ../src/iop/flip.c:628 +#: ../src/iop/flip.c:483 ../src/iop/flip.c:626 msgid "flip vertically" msgstr "Retourne verticalement" -#: ../src/iop/flip.c:489 +#: ../src/iop/flip.c:487 msgid "rotate by -90 degrees" msgstr "Rotation de –90 degrés" -#: ../src/iop/flip.c:493 +#: ../src/iop/flip.c:491 msgid "rotate by 90 degrees" msgstr "Rotation de 90 degrés" -#: ../src/iop/flip.c:497 +#: ../src/iop/flip.c:495 msgid "rotate by 180 degrees" msgstr "Rotation de 180 degrés" -#: ../src/iop/flip.c:612 +#: ../src/iop/flip.c:610 msgid "transform" msgstr "Transformation" -#: ../src/iop/flip.c:616 ../src/libs/live_view.c:293 +#: ../src/iop/flip.c:614 ../src/libs/live_view.c:293 msgid "rotate 90 degrees CCW" msgstr "Tourne de 90 degrés (sens anti-horaire)" -#: ../src/iop/flip.c:620 ../src/libs/live_view.c:294 +#: ../src/iop/flip.c:618 ../src/libs/live_view.c:294 msgid "rotate 90 degrees CW" msgstr "Tourne de 90 degrés (sens horaire)" @@ -17251,15 +17831,15 @@ msgid "this module is deprecated. please use the filmic rgb module instead." msgstr "Ce module est déprécié, utiliser « Filmique RVB » à la place." -#: ../src/iop/globaltonemap.c:625 ../src/libs/filters/colors.c:259 +#: ../src/iop/globaltonemap.c:658 ../src/libs/filters/colors.c:259 msgid "operator" msgstr "Opérateur" -#: ../src/iop/globaltonemap.c:626 +#: ../src/iop/globaltonemap.c:659 msgid "the global tonemap operator" msgstr "Opérateur de mappage global des tonalités" -#: ../src/iop/globaltonemap.c:629 +#: ../src/iop/globaltonemap.c:662 msgid "" "the bias for tonemapper controls the linearity, the higher the more details " "in blacks" @@ -17267,7 +17847,7 @@ "Contrôle la linéarité, plus le biais est élevé plus les détails sont " "importants dans les ombres" -#: ../src/iop/globaltonemap.c:633 +#: ../src/iop/globaltonemap.c:666 msgid "the target light for tonemapper specified as cd/m2" msgstr "Cible de luminosité spécifiée en cd/m2" @@ -17325,17 +17905,17 @@ #: ../src/iop/graduatednd.c:140 msgid "graduated density" -msgstr "Filtre dégradé" +msgstr "Filtre gradué" #: ../src/iop/graduatednd.c:145 msgid "simulate an optical graduated neutral density filter" msgstr "Simule un filtre optique à densité neutre graduée" -#: ../src/iop/graduatednd.c:1114 +#: ../src/iop/graduatednd.c:1083 msgid "the density in EV for the filter" msgstr "Densité du filtre en IL" -#: ../src/iop/graduatednd.c:1119 +#: ../src/iop/graduatednd.c:1088 #, no-c-format msgid "" "hardness of graduation:\n" @@ -17345,55 +17925,55 @@ " • 0 % – doux\n" " • 100 % – dur" -#: ../src/iop/graduatednd.c:1123 +#: ../src/iop/graduatednd.c:1092 msgid "rotation of filter -180 to 180 degrees" msgstr "Rotation du filtre de –180 à +180 degrés" -#: ../src/iop/graduatednd.c:1136 +#: ../src/iop/graduatednd.c:1105 msgid "select the hue tone of filter" msgstr "Teinte du filtre" -#: ../src/iop/graduatednd.c:1142 +#: ../src/iop/graduatednd.c:1111 msgid "select the saturation of filter" msgstr "Saturation du filtre" -#: ../src/iop/graduatednd.c:1153 +#: ../src/iop/graduatednd.c:1122 #, c-format msgid "[%s on nodes] change line rotation" msgstr "[%s sur nœuds ] Changer l’orientation de la ligne" -#: ../src/iop/graduatednd.c:1154 +#: ../src/iop/graduatednd.c:1123 #, c-format msgid "[%s on line] move line" msgstr "[%s sur ligne] Déplacer la ligne" -#: ../src/iop/graduatednd.c:1156 +#: ../src/iop/graduatednd.c:1125 #, c-format msgid "[%s on line] change density" msgstr "[%s sur ligne] Changer la densité" -#: ../src/iop/graduatednd.c:1158 +#: ../src/iop/graduatednd.c:1127 #, c-format msgid "[%s on line] change hardness" msgstr "[%s sur ligne] Changer la dureté" -#: ../src/iop/grain.c:428 +#: ../src/iop/grain.c:444 msgid "grain" msgstr "Grain" -#: ../src/iop/grain.c:433 +#: ../src/iop/grain.c:449 msgid "simulate silver grains from film" msgstr "Simule des grains argentés à partir d’un film" -#: ../src/iop/grain.c:582 +#: ../src/iop/grain.c:600 msgid "the grain size (~ISO of the film)" msgstr "Taille du grain (~ ISO du film)" -#: ../src/iop/grain.c:586 +#: ../src/iop/grain.c:604 msgid "the strength of applied grain" msgstr "Force du grain à appliquer" -#: ../src/iop/grain.c:590 +#: ../src/iop/grain.c:608 msgid "" "amount of mid-tones bias from the photographic paper response modeling. the " "greater the bias, the more pronounced the fall off of the grain in shadows " @@ -17416,15 +17996,15 @@ msgid "remove fog and atmospheric hazing from pictures" msgstr "Supprime le brouillard et la brume atmosphérique" -#: ../src/iop/hazeremoval.c:202 +#: ../src/iop/hazeremoval.c:204 msgid "amount of haze reduction" msgstr "Force de réduction de la brume" -#: ../src/iop/hazeremoval.c:204 +#: ../src/iop/hazeremoval.c:206 msgid "distance" msgstr "Distance" -#: ../src/iop/hazeremoval.c:206 +#: ../src/iop/hazeremoval.c:208 msgid "limit haze removal up to a specific spatial depth" msgstr "Limiter la profondeur spatiale de suppression de la brume" @@ -17438,11 +18018,11 @@ "Évite les hautes lumières magentas\n" "et essaie de recouvrer les couleurs des hautes lumières" -#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:75 +#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:77 msgid "reconstruction, raw" msgstr "Reconstruire, RAW" -#: ../src/iop/highlights.c:923 +#: ../src/iop/highlights.c:1004 msgid "" "highlights: mode not available for this type of image. falling back to " "inpaint opposed." @@ -17450,48 +18030,69 @@ "Reconstruction des hautes lumières : mode non disponible pour ce type " "d’image. Repli sur « Peinture opposée »." -#: ../src/iop/highlights.c:1101 +#: ../src/iop/highlights.c:1184 msgid "highlight reconstruction method" msgstr "Méthode de reconstruction des hautes lumières" -#: ../src/iop/highlights.c:1106 +#: ../src/iop/highlights.c:1189 msgid "" "manually adjust the clipping threshold mostly used against magenta " -"highlights\n" -"the mask icon shows the clipped areas.\n" +"highlights.\n" "you might use this for tuning 'laplacian', 'inpaint opposed' or " "'segmentation' modes,\n" "especially if camera white point is incorrect." msgstr "" "Ajuste le seuil de troncature pour éviter les hautes lumières magentas.\n" -"L’icône « masque » montre les zones tronquées, l’utiliser pour régler les " -"modes\n" -"« Laplaciens guidés », « Peinture opposée » et « Par segmentation »,\n" -"surtout si le point blanc du boîtier est incorrect." +"Vous pouvez utiliser cela pour contrôler finement les modes « Laplaciens " +"guidés », \n" +"« Peinture opposée » et « Par segmentation » surtout si le point blanc du " +"boîtier est incorrect." + +#: ../src/iop/highlights.c:1193 +msgid "" +"visualize clipped highlights in a false color representation.\n" +"the effective clipping level also depends on the reconstruction method." +msgstr "" +"Visualise les hautes lumières tronquées avec une représentation en fausse " +"couleur.\n" +"Le niveau de troncature effectif dépend aussi de la méthode de " +"reconstruction." -#: ../src/iop/highlights.c:1117 +#: ../src/iop/highlights.c:1203 msgid "" "combine closely related clipped segments by morphological operations.\n" -"the mask button shows the exact positions of resulting segment borders." +"this often leads to improved color reconstruction for tiny segments before " +"dark background." msgstr "" "Combiner des segments écrêtés proches par des opérations morphologiques.\n" -"L’icône « masque » montre les positions exactes des bords des segments " -"résultants." +"Cela améliore souvent la reconstruction des couleurs pour les petits " +"segments avant un arrière plan sombre." + +#: ../src/iop/highlights.c:1206 +msgid "visualize the combined segments in a false color representation." +msgstr "" +"Visualise les segments combinés avec une représentation en fausse couleur." -#: ../src/iop/highlights.c:1125 +#: ../src/iop/highlights.c:1213 msgid "" "select inpainting after segmentation analysis.\n" -"increase to favour candidates found in segmentation analysis, decrease for " -"opposed means inpainting.\n" -"the mask button shows segments that are considered to have a good candidate." +"increase to favor candidates found in segmentation analysis, decrease for " +"opposed means inpainting." msgstr "" "À utiliser après l’analyse de la segmentation.\n" "Augmenter pour favoriser les candidats trouvés dans l’analyse de " -"segmentation.\n" -"L’icône « masque » montre les segments qui sont considérés comme bon " -"candidats." +"segmentation,\n" +"diminuer pour une effet opposé." + +#: ../src/iop/highlights.c:1216 +msgid "" +"visualize segments that are considered to have a good candidate in a false " +"color representation." +msgstr "" +"Visualise les segments considérés comme bons candidats avec une " +"représentation en fausse couleur." -#: ../src/iop/highlights.c:1136 +#: ../src/iop/highlights.c:1225 msgid "" "approximate lost data in regions with all photosites clipped, the effect " "depends on segment size and border gradients.\n" @@ -17515,17 +18116,17 @@ "reconstruites\n" "et éviter les dégradés." -#: ../src/iop/highlights.c:1142 -msgid "" -"set strength of rebuilding in regions with all photosites clipped.\n" -"the mask buttons shows the effect that is added to already reconstructed " -"data." +#: ../src/iop/highlights.c:1231 +msgid "set strength of rebuilding in regions with all photosites clipped." msgstr "" -"Définit la force de reconstruction dans les régions ayant tous les " -"photosites tronqués.\n" -"L’icône « masque » montre l’effet ajouté au données déjà reconstruites." +"Défini la force de reconstruction pour les régions avec tous les photosites " +"tronqués." + +#: ../src/iop/highlights.c:1233 +msgid "show the effect that is added to already reconstructed data." +msgstr "Montre l'effet qui est ajouté aux données déjà reconstruites." -#: ../src/iop/highlights.c:1152 +#: ../src/iop/highlights.c:1242 msgid "" "add noise to visually blend the reconstructed areas\n" "into the rest of the noisy image. useful at high ISO." @@ -17533,7 +18134,7 @@ "Ajoute du bruit pour fusionner visuellement les zones reconstruites\n" "dans le reste de l’image bruitées. Utile pour les hauts ISO." -#: ../src/iop/highlights.c:1156 +#: ../src/iop/highlights.c:1246 msgid "" "increase if magenta highlights don't get fully corrected\n" "each new iteration brings a performance penalty." @@ -17541,7 +18142,7 @@ "Augmenter si le magenta des hautes lumières n’est pas complètement corrigé.\n" "Chaque nouvelle itération ajoute une pénalité de temps." -#: ../src/iop/highlights.c:1161 +#: ../src/iop/highlights.c:1251 msgid "" "increase if magenta highlights don't get fully corrected.\n" "this may produce non-smooth boundaries between valid and clipped regions." @@ -17550,7 +18151,7 @@ "Cela peut produire des délimitations tranchées entre les régions valides et " "tronquées." -#: ../src/iop/highlights.c:1165 +#: ../src/iop/highlights.c:1255 msgid "" "increase to correct larger clipped areas.\n" "large values bring huge performance penalties" @@ -17558,9 +18159,9 @@ "Augmenter pour corriger les larges zones tronquées.\n" "Les grandes valeurs pénalisent fortement les performances." -#: ../src/iop/highlights.c:1169 -msgid "this module only works with non-monochrome RAW and sRAW" -msgstr "Ce module ne fonctionne que pour les RAW et sRAW non monochrome" +#: ../src/iop/highlights.c:1259 +msgid "this module does not work with monochrome RAW files" +msgstr "Ce module ne fonctionne pas avec les fichiers RAW monochromes" #: ../src/iop/highpass.c:72 msgid "highpass" @@ -17570,52 +18171,52 @@ msgid "isolate high frequencies in the image" msgstr "Isole les hautes fréquences de l’image" -#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:135 +#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:107 msgid "linear or non-linear, Lab, scene-referred" msgstr "Relatif à la scène, linéaire ou non-linéaire, Lab" -#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:136 ../src/iop/sharpen.c:96 +#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:108 ../src/iop/sharpen.c:98 msgid "frequential, Lab" msgstr "Fréquentiel, Lab" -#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:137 +#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:109 msgid "special, Lab, scene-referred" msgstr "Relatif à la scène, spécial, Lab" -#: ../src/iop/highpass.c:383 +#: ../src/iop/highpass.c:378 msgid "the sharpness of highpass filter" msgstr "Netteté du filtre passe-haut" -#: ../src/iop/highpass.c:387 +#: ../src/iop/highpass.c:382 msgid "the contrast of highpass filter" msgstr "Contraste du filtre passe-haut" -#: ../src/iop/hotpixels.c:67 +#: ../src/iop/hotpixels.c:69 msgid "hot pixels" msgstr "Pixels chauds" -#: ../src/iop/hotpixels.c:72 +#: ../src/iop/hotpixels.c:74 msgid "remove abnormally bright pixels by dampening them with neighbors" msgstr "" "Supprime les pixels anormalement lumineux en les amortissant avec leur " "voisins" -#: ../src/iop/hotpixels.c:363 +#: ../src/iop/hotpixels.c:442 #, c-format msgid "fixed %d pixel" msgid_plural "fixed %d pixels" msgstr[0] "%d pixel corrigé" msgstr[1] "%d pixels corrigés" -#: ../src/iop/hotpixels.c:386 +#: ../src/iop/hotpixels.c:465 msgid "lower threshold for hot pixel" msgstr "Seuil bas pour les pixels chauds" -#: ../src/iop/hotpixels.c:390 +#: ../src/iop/hotpixels.c:469 msgid "strength of hot pixel correction" msgstr "Force de la correction des pixels chauds" -#: ../src/iop/hotpixels.c:406 +#: ../src/iop/hotpixels.c:485 msgid "" "hot pixel correction\n" "only works for raw images." @@ -17623,62 +18224,62 @@ "Suppression des pixels chauds\n" "uniquement pour les images RAW." -#: ../src/iop/invert.c:92 ../src/iop/invert.c:427 +#: ../src/iop/invert.c:106 ../src/iop/invert.c:442 #, c-format msgid "`%s' color matrix not found for 4bayer image" msgstr "Matrice de couleur « %s » non trouvée pour une image de Bayer" -#: ../src/iop/invert.c:108 +#: ../src/iop/invert.c:125 msgid "invert" msgstr "Inverser" -#: ../src/iop/invert.c:113 +#: ../src/iop/invert.c:130 msgid "this module is deprecated. please use the negadoctor module instead." msgstr "Ce module est déprécié, utiliser « Docteur néga » à la place." -#: ../src/iop/invert.c:118 +#: ../src/iop/invert.c:135 msgid "invert film negatives" msgstr "Inverser les négatifs de films" -#: ../src/iop/invert.c:120 ../src/iop/invert.c:122 +#: ../src/iop/invert.c:137 ../src/iop/invert.c:139 msgid "linear, raw, display-referred" msgstr "Relatif à l’affichage, linéaire, RAW" #. Here we could provide more for monochrome special cases. As no monochrome camera #. has a bayer sensor we don't need g->RGB_to_CAM and g->CAM_to_RGB corrections -#: ../src/iop/invert.c:412 +#: ../src/iop/invert.c:427 msgid "brightness of film material" msgstr "Luminance du film" -#: ../src/iop/invert.c:416 +#: ../src/iop/invert.c:431 msgid "color of film material" msgstr "Couleur du film" -#: ../src/iop/invert.c:500 ../src/iop/negadoctor.c:847 +#: ../src/iop/invert.c:515 ../src/iop/negadoctor.c:866 msgid "pick color of film material from image" msgstr "Choisir la couleur du film dans l’image" -#: ../src/iop/invert.c:502 +#: ../src/iop/invert.c:517 msgid "select color of film material" msgstr "Sélectionne la couleur du film" -#: ../src/iop/lens.cc:230 +#: ../src/iop/lens.cc:251 msgid "lens correction" msgstr "Correction des objectifs" -#: ../src/iop/lens.cc:235 +#: ../src/iop/lens.cc:256 msgid "vignette|chromatic aberrations|distortion" msgstr "vignette|aberrations chromatiques|distorsion" -#: ../src/iop/lens.cc:240 +#: ../src/iop/lens.cc:261 msgid "correct lenses optical flaws" msgstr "Corrige les défauts optiques des objectifs" -#: ../src/iop/lens.cc:243 +#: ../src/iop/lens.cc:264 msgid "geometric and reconstruction, RGB" msgstr "Géométrique et reconstruction, RVB" -#: ../src/iop/lens.cc:3148 +#: ../src/iop/lens.cc:3773 #, c-format msgid "" "maker:\t\t%s\n" @@ -17691,7 +18292,7 @@ "Monture : %s\n" "Conv. focale : %.1f" -#: ../src/iop/lens.cc:3396 +#: ../src/iop/lens.cc:4026 #, c-format msgid "" "maker:\t\t%s\n" @@ -17710,31 +18311,31 @@ "Type : %s\n" "Montures : %s" -#: ../src/iop/lens.cc:3442 +#: ../src/iop/lens.cc:4072 msgid "focal length (mm)" msgstr "Longueur focale (mm)" -#: ../src/iop/lens.cc:3468 +#: ../src/iop/lens.cc:4098 msgid "f/" msgstr "F/" -#: ../src/iop/lens.cc:3469 +#: ../src/iop/lens.cc:4099 msgid "f-number (aperture)" msgstr "Ouverture" -#: ../src/iop/lens.cc:3485 +#: ../src/iop/lens.cc:4115 msgid "d" msgstr "D" -#: ../src/iop/lens.cc:3486 +#: ../src/iop/lens.cc:4116 msgid "distance to subject" msgstr "Distance au sujet" -#: ../src/iop/lens.cc:3645 +#: ../src/iop/lens.cc:4277 msgid "camera/lens not found" msgstr "Boîtier ou objectif introuvable" -#: ../src/iop/lens.cc:3646 +#: ../src/iop/lens.cc:4278 msgid "" "please select your lens manually\n" "you might also want to check if your Lensfun database is up-to-date\n" @@ -17744,45 +18345,51 @@ "Pour vérifier que la base de données des objectifs est à jour, \n" "exécuter « lensfun-update-data »." -#: ../src/iop/lens.cc:3769 +#: ../src/iop/lens.cc:4423 msgid "camera model" msgstr "Modèle de boîtier" -#: ../src/iop/lens.cc:3774 +#: ../src/iop/lens.cc:4428 msgid "find camera" msgstr "Boîtier" -#: ../src/iop/lens.cc:3789 +#: ../src/iop/lens.cc:4443 msgid "find lens" msgstr "Objectif" #. scale -#: ../src/iop/lens.cc:3823 ../src/iop/vignette.c:968 -#: ../src/iop/watermark.c:1324 ../src/libs/export.c:1165 +#: ../src/iop/lens.cc:4477 ../src/iop/vignette.c:1055 +#: ../src/iop/watermark.c:1372 ../src/libs/export.c:1264 msgid "scale" msgstr "Échelle" -#: ../src/iop/lens.cc:3828 +#: ../src/iop/lens.cc:4482 msgid "auto scale" msgstr "Échelle automatique" -#: ../src/iop/lens.cc:3832 +#: ../src/iop/lens.cc:4484 +msgid "automatic scale to available image size due to Lensfun data" +msgstr "" +"Échelle automatique en fonction de la taille de l'image après l'application " +"des données Lensfun" + +#: ../src/iop/lens.cc:4488 msgid "correct distortions or apply them" msgstr "Corrige ou applique des distorsions" -#: ../src/iop/lens.cc:3839 +#: ../src/iop/lens.cc:4495 msgid "transversal chromatic aberration red" msgstr "Aberrations chromatiques transversales rouges" -#: ../src/iop/lens.cc:3843 +#: ../src/iop/lens.cc:4499 msgid "transversal chromatic aberration blue" msgstr "Aberrations chromatiques transversales bleues" -#: ../src/iop/lens.cc:3849 +#: ../src/iop/lens.cc:4509 msgid "use latest algorithm" msgstr "Utiliser le dernier algorithme" -#: ../src/iop/lens.cc:3851 +#: ../src/iop/lens.cc:4511 msgid "" "you're using an old version of the algorithm.\n" "once enabled, you won't be able to\n" @@ -17792,93 +18399,145 @@ "Lorsque activé il ne sera plus possible de revenir à\n" "l'ancien algorithme." -#: ../src/iop/lens.cc:3860 +#: ../src/iop/lens.cc:4521 +msgid "fine-tuning" +msgstr "Ajustement fin" + +#. DT_IOP_SECTION_FOR_PARAMS doesn't work in C++ so create section module manually +#: ../src/iop/lens.cc:4526 +msgid "fine-tune" +msgstr "Ajuste finement" + +#: ../src/iop/lens.cc:4532 msgid "tune the warp and chromatic aberration correction" msgstr "Correction des déformations et de l’aberration chromatique" -#: ../src/iop/lens.cc:3864 +#: ../src/iop/lens.cc:4536 msgid "tune the vignette correction" msgstr "Ajuste la correction de vignette" -#: ../src/iop/lens.cc:3868 +#: ../src/iop/lens.cc:4540 msgid "tune the TCA red correction" msgstr "Ajuste la correction du rouge de l'AC" -#: ../src/iop/lens.cc:3872 +#: ../src/iop/lens.cc:4544 msgid "tune the TCA blue correction" msgstr "Ajuste la correction du bleu de l'AC" -#: ../src/iop/lens.cc:3879 +#: ../src/iop/lens.cc:4551 msgid "image scaling" msgstr "Mise l'échelle de l'image" -#: ../src/iop/lens.cc:3891 +#: ../src/iop/lens.cc:4553 +msgid "automatic scale to available image size" +msgstr "Échelle automatique en fonction de la taille de l'image possible" + +#: ../src/iop/lens.cc:4561 +msgid "" +"select a correction mode either based on\n" +" a) data and algorithms provided by the Lensfun project\n" +" b) embedded metadata provided by the camera or software vendor" +msgstr "" +"Sélectionner le mode de correction basé sur :\n" +" • Les données et algorithmes proposés par le projet Lensfun\n" +" • Les données embarquées proposées par le vendeur ou le logiciel de " +"l'appareil photo" + +#: ../src/iop/lens.cc:4568 msgid "which corrections to apply" msgstr "Sélectionne les types de correction à effectuer" -#: ../src/iop/lens.cc:3904 +#: ../src/iop/lens.cc:4574 msgid "corrections done: " msgstr "Corrections effectuées : " -#: ../src/iop/lens.cc:3906 +#: ../src/iop/lens.cc:4576 msgid "which corrections have actually been done" msgstr "Corrections réellement effectuées" +#: ../src/iop/lens.cc:4595 +msgid "manual vignette correction" +msgstr "Correction de vignette manuelle" + +#: ../src/iop/lens.cc:4599 +msgid "additional manually controlled optical vignetting correction" +msgstr "Correction manuelle supplémentaire de la vignette" + +#: ../src/iop/lens.cc:4602 +msgid "vignette" +msgstr "Vignetage" + +#: ../src/iop/lens.cc:4606 +msgid "amount of the applied optical vignetting correction" +msgstr "Quantité de la correction de la vignette appliquée" + +#: ../src/iop/lens.cc:4608 +msgid "show applied optical vignette correction mask" +msgstr "Montre le masque de correction de la vignette optique appliquée" + +#: ../src/iop/lens.cc:4618 +msgid "radius of uncorrected centre" +msgstr "Rayon de la zone non corrigée" + +#: ../src/iop/lens.cc:4624 +msgid "steepness of the correction effect outside of radius" +msgstr "Déclivité de la correction effectuée au delà du rayon" + #: ../src/iop/levels.c:112 msgid "this module is deprecated. please use the RGB levels module instead." msgstr "Ce module est déprécié, utiliser « Niveau RVB » à la place." -#: ../src/iop/levels.c:117 ../src/iop/levels.c:630 ../src/iop/rgblevels.c:984 -#: ../src/iop/rgblevels.c:1014 +#: ../src/iop/levels.c:117 ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1022 +#: ../src/iop/rgblevels.c:1056 msgid "levels" msgstr "Niveaux" -#: ../src/iop/levels.c:137 +#: ../src/iop/levels.c:139 msgid "adjust black, white and mid-gray points" msgstr "Ajuste les points noir, blanc et gris moyen" -#: ../src/iop/levels.c:628 ../src/iop/rgblevels.c:1016 +#: ../src/iop/levels.c:644 ../src/iop/rgblevels.c:1059 msgid "" "drag handles to set black, gray, and white points. operates on L channel." msgstr "" "Déplacer les barres pour régler les points noir, gris et blanc. Agit sur le " "canal L." -#: ../src/iop/levels.c:642 ../src/iop/rgblevels.c:1052 +#: ../src/iop/levels.c:658 ../src/iop/rgblevels.c:1108 msgid "apply auto levels" msgstr "Niveaux automatiques" -#: ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1027 +#: ../src/iop/levels.c:662 ../src/iop/rgblevels.c:1077 msgid "pick black point from image" msgstr "Choisir le point noir dans l’image" -#: ../src/iop/levels.c:650 ../src/iop/rgblevels.c:1033 +#: ../src/iop/levels.c:666 ../src/iop/rgblevels.c:1085 msgid "pick medium gray point from image" msgstr "Choisir le point gris dans l’image" -#: ../src/iop/levels.c:654 ../src/iop/rgblevels.c:1039 +#: ../src/iop/levels.c:670 ../src/iop/rgblevels.c:1093 msgid "pick white point from image" msgstr "Choisir le point blanc dans l’image" -#: ../src/iop/levels.c:667 ../src/iop/rgblevels.c:936 -#: ../src/iop/rgblevels.c:1026 +#: ../src/iop/levels.c:683 ../src/iop/rgblevels.c:968 +#: ../src/iop/rgblevels.c:1075 msgid "black" msgstr "Noir" -#: ../src/iop/levels.c:668 +#: ../src/iop/levels.c:684 msgid "black percentile" msgstr "Centile des noirs" -#: ../src/iop/levels.c:672 +#: ../src/iop/levels.c:688 msgid "gray percentile" msgstr "Centile des gris" -#: ../src/iop/levels.c:675 ../src/iop/rgblevels.c:938 -#: ../src/iop/rgblevels.c:1038 +#: ../src/iop/levels.c:691 ../src/iop/rgblevels.c:970 +#: ../src/iop/rgblevels.c:1091 msgid "white" msgstr "Blanc" -#: ../src/iop/levels.c:676 +#: ../src/iop/levels.c:692 msgid "white percentile" msgstr "Centile des blancs" @@ -17890,11 +18549,11 @@ msgid "distort parts of the image" msgstr "Déforme des parties de l’image" -#: ../src/iop/liquify.c:2933 +#: ../src/iop/liquify.c:2895 msgid "click to edit nodes" msgstr "Cliquer pour éditer les points" -#: ../src/iop/liquify.c:3636 +#: ../src/iop/liquify.c:3599 msgid "" "<b>add point</b>: click and drag\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17904,7 +18563,7 @@ "<b>Taille</b> : défiler • <b>Force</b> : Maj+défiler • <b>Direction</b> :" "Ctrl+défiler" -#: ../src/iop/liquify.c:3639 +#: ../src/iop/liquify.c:3602 msgid "" "<b>add line</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17914,7 +18573,7 @@ "<b>Taille</b> : défiler • <b>Force</b> : Maj+défiler • <b>Direction</b> :" "Ctrl+défiler" -#: ../src/iop/liquify.c:3642 +#: ../src/iop/liquify.c:3605 msgid "" "<b>add curve</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17924,7 +18583,7 @@ "<b>Taille</b> : défiler • <b>Force</b> : Maj+défiler • <b>Direction</b> :" "Ctrl+défiler" -#: ../src/iop/liquify.c:3693 +#: ../src/iop/liquify.c:3656 msgid "" "use a tool to add warps\n" "<b>remove a warp</b>: right-click" @@ -17932,50 +18591,50 @@ "Utiliser un outil pour ajouter une forme.\n" "<b>Supprimer une forme</b> : Clic droit" -#: ../src/iop/liquify.c:3696 +#: ../src/iop/liquify.c:3659 msgid "warps|nodes count:" msgstr "Nombres de formes|points : " -#: ../src/iop/liquify.c:3705 +#: ../src/iop/liquify.c:3668 msgid "edit, add and delete nodes" msgstr "" "Outil point\n" "Éditer et supprimer des points" -#: ../src/iop/liquify.c:3710 ../src/iop/liquify.c:3716 -#: ../src/iop/liquify.c:3722 ../src/iop/retouch.c:2238 -#: ../src/iop/retouch.c:2242 ../src/iop/retouch.c:2246 -#: ../src/iop/retouch.c:2250 ../src/iop/spots.c:883 ../src/iop/spots.c:888 -#: ../src/iop/spots.c:893 ../src/libs/masks.c:1816 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1834 ../src/libs/masks.c:1843 ../src/libs/masks.c:1852 +#: ../src/iop/liquify.c:3673 ../src/iop/liquify.c:3679 +#: ../src/iop/liquify.c:3685 ../src/iop/retouch.c:2465 +#: ../src/iop/retouch.c:2471 ../src/iop/retouch.c:2476 +#: ../src/iop/retouch.c:2481 ../src/iop/spots.c:885 ../src/iop/spots.c:890 +#: ../src/iop/spots.c:895 ../src/libs/masks.c:1812 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1830 ../src/libs/masks.c:1839 ../src/libs/masks.c:1848 msgid "shapes" msgstr "Formes" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw curves" msgstr "Dessiner des courbes" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw multiple curves" msgstr "dessiner plusieurs courbes" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw lines" msgstr "Dessiner des lignes" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw multiple lines" msgstr "dessiner plusieurs lignes" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw points" msgstr "Dessiner des points" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw multiple points" msgstr "dessiner plusieurs points" -#: ../src/iop/liquify.c:3729 +#: ../src/iop/liquify.c:3692 msgid "" "<b>add node</b>: ctrl+click - <b>remove path</b>: right click\n" "<b>toggle line/curve</b>: ctrl+alt+click" @@ -17984,7 +18643,7 @@ "droit\n" "<b>Basculer entre ligne et courbe</b> : Ctrl+Alt+clic" -#: ../src/iop/liquify.c:3732 +#: ../src/iop/liquify.c:3695 msgid "" "<b>move</b>: click and drag - <b>show/hide feathering controls</b>: click\n" "<b>autosmooth, cusp, smooth, symmetrical</b>: ctrl+click - <b>remove</b>: " @@ -17995,23 +18654,23 @@ "<b>Automatique, parabolique, lissé et symétrique</b> : Ctrl+clic • " "<b>Supprimer</b> : Clic droit" -#: ../src/iop/liquify.c:3736 ../src/iop/liquify.c:3738 +#: ../src/iop/liquify.c:3699 ../src/iop/liquify.c:3701 msgid "<b>shape of path</b>: drag" msgstr "<b>Changer le chemin</b> : déplacer" -#: ../src/iop/liquify.c:3740 +#: ../src/iop/liquify.c:3703 msgid "<b>radius</b>: drag" msgstr "<b>Rayon</b> : déplacer" -#: ../src/iop/liquify.c:3742 +#: ../src/iop/liquify.c:3705 msgid "<b>hardness (center)</b>: drag" msgstr "<b>Dureté (centre)</b> : déplacer" -#: ../src/iop/liquify.c:3744 +#: ../src/iop/liquify.c:3707 msgid "<b>hardness (feather)</b>: drag" msgstr "<b>Dureté (adoucissement)</b> : déplacer" -#: ../src/iop/liquify.c:3746 +#: ../src/iop/liquify.c:3709 msgid "" "<b>strength</b>: drag\n" "<b>linear, grow, and shrink</b>: ctrl+click" @@ -18031,239 +18690,239 @@ msgid "linear, XYZ" msgstr "Linéaire, XYZ" -#: ../src/iop/lowlight.c:341 +#: ../src/iop/lowlight.c:338 msgid "indoor bright" msgstr "Intérieur clair" -#: ../src/iop/lowlight.c:359 +#: ../src/iop/lowlight.c:356 msgid "indoor dim" msgstr "Intérieur" -#: ../src/iop/lowlight.c:377 +#: ../src/iop/lowlight.c:374 msgid "indoor dark" msgstr "Intérieur sombre" -#: ../src/iop/lowlight.c:395 +#: ../src/iop/lowlight.c:392 msgid "twilight" msgstr "Crépuscule" -#: ../src/iop/lowlight.c:413 +#: ../src/iop/lowlight.c:410 msgid "night street lit" msgstr "Rue nocturne claire" -#: ../src/iop/lowlight.c:431 +#: ../src/iop/lowlight.c:428 msgid "night street" msgstr "Rue nocturne" -#: ../src/iop/lowlight.c:449 +#: ../src/iop/lowlight.c:446 msgid "night street dark" msgstr "Rue nocturne sombre" -#: ../src/iop/lowlight.c:468 +#: ../src/iop/lowlight.c:465 msgid "night" msgstr "Nuit" -#: ../src/iop/lowlight.c:641 +#: ../src/iop/lowlight.c:639 msgid "dark" msgstr "Foncé" -#: ../src/iop/lowlight.c:649 +#: ../src/iop/lowlight.c:647 msgid "bright" msgstr "Clair" -#: ../src/iop/lowlight.c:658 +#: ../src/iop/lowlight.c:656 msgid "day vision" msgstr "Vision de jour" -#: ../src/iop/lowlight.c:663 +#: ../src/iop/lowlight.c:661 msgid "night vision" msgstr "Vision de nuit" -#: ../src/iop/lowlight.c:835 +#: ../src/iop/lowlight.c:833 msgid "blueness in shadows" msgstr "Teinte bleutée des ombres" -#: ../src/iop/lowpass.c:128 +#: ../src/iop/lowpass.c:100 msgid "lowpass" msgstr "Filtre passe-bas" -#: ../src/iop/lowpass.c:133 +#: ../src/iop/lowpass.c:105 msgid "isolate low frequencies in the image" msgstr "Isole les basses fréquences de l’image" -#: ../src/iop/lowpass.c:565 +#: ../src/iop/lowpass.c:578 msgid "local contrast mask" msgstr "Masque de contraste local" -#: ../src/iop/lowpass.c:590 +#: ../src/iop/lowpass.c:603 msgid "radius of gaussian/bilateral blur" msgstr "Rayon du flou gaussien/bilatéral" -#: ../src/iop/lowpass.c:591 +#: ../src/iop/lowpass.c:604 msgid "contrast of lowpass filter" msgstr "Contraste du filtre passe-bas" -#: ../src/iop/lowpass.c:592 +#: ../src/iop/lowpass.c:605 msgid "brightness adjustment of lowpass filter" msgstr "Luminosité du filtre passe-bas" -#: ../src/iop/lowpass.c:593 +#: ../src/iop/lowpass.c:606 msgid "color saturation of lowpass filter" msgstr "Saturation des couleurs du filtre passe-bas" -#: ../src/iop/lowpass.c:594 +#: ../src/iop/lowpass.c:607 msgid "which filter to use for blurring" msgstr "Choix du filtre d’adoucissement" -#: ../src/iop/lut3d.c:135 +#: ../src/iop/lut3d.c:136 msgid "LUT 3D" msgstr "3D LUT" -#: ../src/iop/lut3d.c:140 +#: ../src/iop/lut3d.c:141 msgid "perform color space corrections and apply look" msgstr "" "Effectue des corrections de l’espace colorimétrique et applique un style" -#: ../src/iop/lut3d.c:143 +#: ../src/iop/lut3d.c:144 msgid "defined by profile, RGB" msgstr "Défini par le profil, RVB" -#: ../src/iop/lut3d.c:468 +#: ../src/iop/lut3d.c:486 msgid "error allocating buffer for gmz LUT" msgstr "Erreur - impossible d’allouer de la mémoire pour le GMIC LUT" -#: ../src/iop/lut3d.c:494 +#: ../src/iop/lut3d.c:512 #, c-format msgid "invalid png file %s" msgstr "Fichier PNG non valide « %s »" -#: ../src/iop/lut3d.c:502 +#: ../src/iop/lut3d.c:520 #, c-format -msgid "png bit-depth %d not supported" +msgid "png bit depth %d is not supported" msgstr "PNG %d bits non supportés" -#: ../src/iop/lut3d.c:516 ../src/iop/lut3d.c:526 +#: ../src/iop/lut3d.c:534 ../src/iop/lut3d.c:544 #, c-format msgid "invalid level in png file %d %d" msgstr "Niveaux invalides dans le fichier PNG %d %d" -#: ../src/iop/lut3d.c:521 +#: ../src/iop/lut3d.c:539 msgid "this darktable build is not compatible with compressed CLUT" msgstr "Cette version de darktable n’a pas le support des LUT compressées" -#: ../src/iop/lut3d.c:538 ../src/iop/lut3d.c:788 +#: ../src/iop/lut3d.c:556 ../src/iop/lut3d.c:808 #, c-format msgid "error - LUT 3D size %d exceeds the maximum supported" msgstr "Erreur - La taille 3D LUT de %d dépasse le maximum possible" -#: ../src/iop/lut3d.c:550 +#: ../src/iop/lut3d.c:568 msgid "error allocating buffer for png LUT" msgstr "Erreur - Impossible d’allouer la mémoire pour le PNG LUT" -#: ../src/iop/lut3d.c:558 +#: ../src/iop/lut3d.c:576 #, c-format msgid "error - could not read png image %s" msgstr "Erreur - Impossible de lire l’image PNG « %s »" -#: ../src/iop/lut3d.c:568 +#: ../src/iop/lut3d.c:586 msgid "error - allocating buffer for png LUT" msgstr "Erreur - Impossible d’allouer la mémoire pour le PNG LUT" -#: ../src/iop/lut3d.c:743 +#: ../src/iop/lut3d.c:761 #, c-format msgid "error - invalid cube file: %s" msgstr "Erreur : Fichier cube invalide « %s »" -#: ../src/iop/lut3d.c:757 -msgid "DOMAIN MIN <> 0.0 is not supported" -msgstr "DOMAIN MIN <> 0.0 non supporté" - -#: ../src/iop/lut3d.c:768 -msgid "DOMAIN MAX <> 1.0 is not supported" -msgstr "DOMAIN MAX <> 1.0 non supporté" +#: ../src/iop/lut3d.c:775 +msgid "DOMAIN MIN other than 0 is not supported" +msgstr "DOMAIN MIN différent de 0 non supporté" + +#: ../src/iop/lut3d.c:787 +msgid "DOMAIN MAX other than 1 is not supported" +msgstr "DOMAIN MAX différent de 1 non supporté" -#: ../src/iop/lut3d.c:777 +#: ../src/iop/lut3d.c:797 msgid "1D cube LUT is not supported" msgstr "1D LUT cube non supporté" -#: ../src/iop/lut3d.c:799 +#: ../src/iop/lut3d.c:819 msgid "error - allocating buffer for cube LUT" msgstr "Erreur - Impossible d’allouer de la mémoire pour le cube LUT" -#: ../src/iop/lut3d.c:810 +#: ../src/iop/lut3d.c:830 msgid "error - cube LUT size is not defined" msgstr "Erreur - Taille de LUT cube indéfinie" -#: ../src/iop/lut3d.c:821 +#: ../src/iop/lut3d.c:841 #, c-format msgid "error - cube LUT invalid number line %d" msgstr "Erreur - Nombre de lignes du LUT cube non valide %d" -#: ../src/iop/lut3d.c:837 +#: ../src/iop/lut3d.c:857 #, c-format msgid "error - cube LUT lines number %d is not correct, should be %d" msgstr "Erreur - Nombre (%d) de lignes du LUT cube non valide, devrait être %d" -#: ../src/iop/lut3d.c:847 +#: ../src/iop/lut3d.c:867 #, c-format msgid "warning - cube LUT has %d values out of range [0,1]" msgstr "Attention - LUT cube a %d valeurs hors de la plage [0,1]" -#: ../src/iop/lut3d.c:872 +#: ../src/iop/lut3d.c:892 #, c-format msgid "error - invalid 3dl file: %s" msgstr "Erreur : Fichier 3DL invalide « %s »" -#: ../src/iop/lut3d.c:893 +#: ../src/iop/lut3d.c:913 #, c-format msgid "error - the maximum shaper LUT value %d is too low" msgstr "" "Erreur - La valeur maximum pour la table de transformation LUT %d est trop " "petite." -#: ../src/iop/lut3d.c:904 +#: ../src/iop/lut3d.c:924 msgid "error - allocating buffer for 3dl LUT" msgstr "Erreur - Impossible d’allouer de la mémoire pour le LUT 3dl" -#: ../src/iop/lut3d.c:917 +#: ../src/iop/lut3d.c:937 msgid "error - 3dl LUT size is not defined" msgstr "Erreur - Taille LUT 3DL non définie" -#: ../src/iop/lut3d.c:945 +#: ../src/iop/lut3d.c:965 msgid "error - 3dl LUT lines number is not correct" msgstr "Erreur - Nombre de lignes du LUT 3DL non valide" -#: ../src/iop/lut3d.c:961 +#: ../src/iop/lut3d.c:981 msgid "error - the maximum LUT value does not match any valid bit depth" msgstr "" "Erreur - La valeur LUT maximum ne correspond à aucune taille de bit valide" -#: ../src/iop/lut3d.c:1539 +#: ../src/iop/lut3d.c:1553 msgid "LUT root folder not defined" msgstr "Répertoire racine des fichiers LUT non défini" -#: ../src/iop/lut3d.c:1545 +#: ../src/iop/lut3d.c:1559 msgid "select LUT file" msgstr "Sélectionner un fichier" -#: ../src/iop/lut3d.c:1546 +#: ../src/iop/lut3d.c:1560 msgid "_select" msgstr "Sélection" -#: ../src/iop/lut3d.c:1566 +#: ../src/iop/lut3d.c:1580 msgid "hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" msgstr "Hald CLUT (PNG), 3D LUT (Cube ou 3DL) ou GMIC LUT compressée (gmz)" -#: ../src/iop/lut3d.c:1568 +#: ../src/iop/lut3d.c:1582 msgid "hald CLUT (png) or 3D LUT (cube or 3dl)" msgstr "Hald CLUT (PNG) ou 3D LUT (Cube ou 3DL)" -#: ../src/iop/lut3d.c:1592 +#: ../src/iop/lut3d.c:1606 msgid "select file outside LUT root folder is not allowed" msgstr "" "La sélection d’un fichier en dehors du répertoire des LUTs n'est pas possible" -#: ../src/iop/lut3d.c:1663 +#: ../src/iop/lut3d.c:1677 msgid "" "select a png (haldclut), a cube, a 3dl or a gmz (compressed LUT) file " "CAUTION: 3D LUT folder must be set in preferences/processing before choosing " @@ -18274,7 +18933,7 @@ "« Traitement »\n" "des préférences avant de choisir un fichier." -#: ../src/iop/lut3d.c:1667 +#: ../src/iop/lut3d.c:1681 msgid "" "select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be " "set in preferences/processing before choosing the LUT file" @@ -18284,7 +18943,7 @@ "« Traitement »\n" "des préférences avant de choisir un fichier LUT." -#: ../src/iop/lut3d.c:1679 +#: ../src/iop/lut3d.c:1693 msgid "" "the file path (relative to LUT folder) is saved with image along with the " "LUT data if it's a compressed LUT (gmz)" @@ -18292,7 +18951,7 @@ "Le chemin (relatif au répertoire LUT) est sauvé avec l’image\n" "ainsi que les données LUT pour les LUT compressées (gmz)" -#: ../src/iop/lut3d.c:1682 +#: ../src/iop/lut3d.c:1696 msgid "" "the file path (relative to LUT folder) is saved with image (and not the LUT " "data themselves)" @@ -18300,47 +18959,47 @@ "Le chemin (relatif au répertoire LUT) est sauvé avec l’image (et non avec " "les données LUT elles-mêmes)" -#: ../src/iop/lut3d.c:1691 +#: ../src/iop/lut3d.c:1705 msgid "enter LUT name" msgstr "Entrer le nom LUT" -#: ../src/iop/lut3d.c:1712 +#: ../src/iop/lut3d.c:1726 msgid "select the LUT" msgstr "Sélectionner la LUT" -#: ../src/iop/lut3d.c:1725 +#: ../src/iop/lut3d.c:1739 msgid "select the color space in which the LUT has to be applied" msgstr "Sélectionner l’espace de couleur où la LUT sera appliquée" -#: ../src/iop/lut3d.c:1727 +#: ../src/iop/lut3d.c:1741 msgid "interpolation" msgstr "Interpolation" -#: ../src/iop/lut3d.c:1728 +#: ../src/iop/lut3d.c:1742 msgid "select the interpolation method" msgstr "Sélectionner la méthode d’interpolation" -#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:62 +#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:63 msgid "mask manager" msgstr "Gestion des masques" -#: ../src/iop/monochrome.c:97 +#: ../src/iop/monochrome.c:99 msgid "quickly convert an image to black & white using a variable color filter" msgstr "" "Convertit rapidement une image noir & blanc en utilisant un filtre coloré " "variable" -#: ../src/iop/monochrome.c:127 +#: ../src/iop/monochrome.c:153 msgid "red filter" msgstr "Filtre rouge" -#: ../src/iop/monochrome.c:546 +#: ../src/iop/monochrome.c:568 msgid "drag and scroll mouse wheel to adjust the virtual color filter" msgstr "" "Glisser et défiler à la souris pour modifier\n" "le filtre virtuel de couleurs." -#: ../src/iop/monochrome.c:562 +#: ../src/iop/monochrome.c:584 msgid "how much to keep highlights" msgstr "Conserver les hautes lumières" @@ -18356,35 +19015,35 @@ msgid "invert film negative scans and simulate printing on paper" msgstr "Inverse les scans de négatifs et simule l’impression sur papier" -#: ../src/iop/negadoctor.c:469 +#: ../src/iop/negadoctor.c:483 msgid "D min" msgstr "Dmin" -#: ../src/iop/negadoctor.c:475 ../src/iop/negadoctor.c:856 +#: ../src/iop/negadoctor.c:489 ../src/iop/negadoctor.c:875 msgid "D min red component" msgstr "Dmin du composant rouge" #. Page FILM PROPERTIES -#: ../src/iop/negadoctor.c:832 +#: ../src/iop/negadoctor.c:851 msgid "film properties" msgstr "Film" #. Dmin -#: ../src/iop/negadoctor.c:836 +#: ../src/iop/negadoctor.c:855 msgctxt "section" msgid "color of the film base" msgstr "Couleur du support du film" -#: ../src/iop/negadoctor.c:842 +#: ../src/iop/negadoctor.c:861 msgid "select color of film material from a swatch" msgstr "Sélectionne la couleur du film depuis un nuancier" -#: ../src/iop/negadoctor.c:848 +#: ../src/iop/negadoctor.c:867 msgid "film material" msgstr "Matériau du film" -#: ../src/iop/negadoctor.c:857 ../src/iop/negadoctor.c:867 -#: ../src/iop/negadoctor.c:877 +#: ../src/iop/negadoctor.c:876 ../src/iop/negadoctor.c:886 +#: ../src/iop/negadoctor.c:896 msgid "" "adjust the color and shade of the film transparent base.\n" "this value depends on the film material, \n" @@ -18396,21 +19055,21 @@ "des fumées chimiques produites pendant le développement,\n" "et de la balance des blancs du scanner." -#: ../src/iop/negadoctor.c:866 +#: ../src/iop/negadoctor.c:885 msgid "D min green component" msgstr "Dmin du composant vert" -#: ../src/iop/negadoctor.c:876 +#: ../src/iop/negadoctor.c:895 msgid "D min blue component" msgstr "Dmin du composant bleu" #. D max and scanner bias -#: ../src/iop/negadoctor.c:884 +#: ../src/iop/negadoctor.c:903 msgctxt "section" msgid "dynamic range of the film" msgstr "Plage dynamique du film" -#: ../src/iop/negadoctor.c:888 +#: ../src/iop/negadoctor.c:907 msgid "" "maximum density of the film, corresponding to white after inversion.\n" "this value depends on the film specifications, the developing process,\n" @@ -18421,12 +19080,12 @@ "développement,\n" "de l’étendue dynamique de la scène et du paramètre d’exposition du scanner." -#: ../src/iop/negadoctor.c:892 +#: ../src/iop/negadoctor.c:911 msgctxt "section" msgid "scanner exposure settings" msgstr "Paramètres de l’exposition du scanner" -#: ../src/iop/negadoctor.c:896 +#: ../src/iop/negadoctor.c:915 msgid "" "correct the exposure of the scanner, for all RGB channels,\n" "before the inversion, so blacks are neither clipped or too pale." @@ -18435,25 +19094,25 @@ "avant l’inversion, pour des noirs ni tronqués ni trop pâles." #. WB shadows -#: ../src/iop/negadoctor.c:903 +#: ../src/iop/negadoctor.c:922 msgctxt "section" msgid "shadows color cast" msgstr "Dérive de couleur des ombres" -#: ../src/iop/negadoctor.c:909 +#: ../src/iop/negadoctor.c:928 msgid "select color of shadows from a swatch" msgstr "Sélectionne la couleur des ombres depuis un nuancier" -#: ../src/iop/negadoctor.c:914 +#: ../src/iop/negadoctor.c:933 msgid "pick shadows color from image" msgstr "Choisir la couleur des ombres depuis l’image" -#: ../src/iop/negadoctor.c:920 +#: ../src/iop/negadoctor.c:939 msgid "shadows red offset" msgstr "Offset rouge des ombres" -#: ../src/iop/negadoctor.c:921 ../src/iop/negadoctor.c:928 -#: ../src/iop/negadoctor.c:935 +#: ../src/iop/negadoctor.c:940 ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:954 msgid "" "correct the color cast in shadows so blacks are\n" "truly achromatic. Setting this value before\n" @@ -18466,34 +19125,34 @@ "l’illuminant\n" "aidera à récupérer la balance des blancs globale dans les cas difficiles." -#: ../src/iop/negadoctor.c:927 +#: ../src/iop/negadoctor.c:946 msgid "shadows green offset" msgstr "Offset vert des ombres" -#: ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:953 msgid "shadows blue offset" msgstr "Offset bleu des ombres" #. WB highlights -#: ../src/iop/negadoctor.c:941 +#: ../src/iop/negadoctor.c:960 msgctxt "section" msgid "highlights white balance" msgstr "Balance des blancs des hautes lumières" -#: ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:966 msgid "select color of illuminant from a swatch" msgstr "Sélectionne la couleur de l’illuminant depuis un nuancier" -#: ../src/iop/negadoctor.c:952 +#: ../src/iop/negadoctor.c:971 msgid "pick illuminant color from image" msgstr "Choisir la couleur de l’illuminant depuis l’image" -#: ../src/iop/negadoctor.c:958 +#: ../src/iop/negadoctor.c:977 msgid "illuminant red gain" msgstr "Gain rouge l’illuminant" -#: ../src/iop/negadoctor.c:959 ../src/iop/negadoctor.c:966 -#: ../src/iop/negadoctor.c:973 +#: ../src/iop/negadoctor.c:978 ../src/iop/negadoctor.c:985 +#: ../src/iop/negadoctor.c:992 msgid "" "correct the color of the illuminant so whites are\n" "truly achromatic. Setting this value after\n" @@ -18506,26 +19165,26 @@ "récupérer\n" "la balance des blancs globale dans les cas difficiles." -#: ../src/iop/negadoctor.c:965 +#: ../src/iop/negadoctor.c:984 msgid "illuminant green gain" msgstr "Gain vert de l’illuminant" -#: ../src/iop/negadoctor.c:972 +#: ../src/iop/negadoctor.c:991 msgid "illuminant blue gain" msgstr "Gain bleu de l’illuminant" #. Page PRINT PROPERTIES -#: ../src/iop/negadoctor.c:979 +#: ../src/iop/negadoctor.c:998 msgid "print properties" msgstr "Impression" #. print corrections -#: ../src/iop/negadoctor.c:982 +#: ../src/iop/negadoctor.c:1001 msgctxt "section" msgid "virtual paper properties" msgstr "Paramètres du papier virtuel" -#: ../src/iop/negadoctor.c:988 +#: ../src/iop/negadoctor.c:1007 msgid "" "correct the density of black after the inversion,\n" "to adjust the global contrast while avoiding clipping shadows." @@ -18533,7 +19192,7 @@ "Corrige la densité des noirs après l’inversion,\n" "pour ajuster le contraste global tout en évitant de tronquer les ombres." -#: ../src/iop/negadoctor.c:993 +#: ../src/iop/negadoctor.c:1012 msgid "" "select the grade of the virtual paper, which is actually\n" "equivalent to applying a gamma. it compensates the film D max\n" @@ -18543,7 +19202,7 @@ "à appliquer un gamma. Cela compense la Dmax du film\n" "et récupère le contraste. Utiliser un grade élevé pour une Dmax importante." -#: ../src/iop/negadoctor.c:1001 +#: ../src/iop/negadoctor.c:1020 msgid "" "gradually compress specular highlights past this value\n" "to avoid clipping while pushing the exposure for mid-tones.\n" @@ -18554,12 +19213,12 @@ "moyens.\n" "Cela reproduit en quelque sorte le comportement d’un papier mat." -#: ../src/iop/negadoctor.c:1005 +#: ../src/iop/negadoctor.c:1024 msgctxt "section" msgid "virtual print emulation" msgstr "Simulation d’une impression virtuelle" -#: ../src/iop/negadoctor.c:1012 +#: ../src/iop/negadoctor.c:1031 msgid "" "correct the printing exposure after inversion to adjust\n" "the global contrast and avoid clipping highlights." @@ -18567,56 +19226,88 @@ "Corrige l’exposition d’impression après l’inversion, pour ajuster\n" "le contraste global et éviter de tronquer les hautes lumières." -#: ../src/iop/negadoctor.c:1020 +#: ../src/iop/negadoctor.c:1039 msgid "toggle on or off the color controls" msgstr "Basculer les contrôles des couleurs" -#: ../src/iop/nlmeans.c:84 +#: ../src/iop/nlmeans.c:78 msgid "astrophoto denoise" msgstr "Réduction du bruit photo astro" -#: ../src/iop/nlmeans.c:89 +#: ../src/iop/nlmeans.c:83 msgid "denoise (non-local means)" msgstr "Réduction du bruit (moy. non-locales)" -#: ../src/iop/nlmeans.c:94 +#: ../src/iop/nlmeans.c:88 msgid "apply a poisson noise removal best suited for astrophotography" msgstr "" "Applique la méthode d’élimination du bruit poisson,\n" "mieux adaptée à l’astrophotographie." -#: ../src/iop/nlmeans.c:459 +#: ../src/iop/nlmeans.c:462 msgid "radius of the patches to match" msgstr "Rayon des éléments à identifier" -#: ../src/iop/nlmeans.c:467 +#: ../src/iop/nlmeans.c:470 msgid "how much to smooth brightness" msgstr "Force du flou pour la luminosité" -#: ../src/iop/nlmeans.c:470 +#: ../src/iop/nlmeans.c:473 msgid "how much to smooth colors" msgstr "Force du flou pour les couleurs" #. * let's fill the encapsulating widgets #. preview mode #. color scheme -#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2419 -#: ../src/views/darkroom.c:2437 ../src/views/darkroom.c:2444 -#: ../src/views/darkroom.c:2454 ../src/views/darkroom.c:2471 +#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2258 +#: ../src/views/darkroom.c:2276 ../src/views/darkroom.c:2283 +#: ../src/views/darkroom.c:2293 ../src/views/darkroom.c:2310 msgid "overexposed" msgstr "Sur-exposition" # quel est le module surexposition ? -#: ../src/iop/overexposed.c:130 ../src/iop/overexposed.c:360 +#: ../src/iop/overexposed.c:123 ../src/iop/overexposed.c:352 msgid "module overexposed failed in buffer allocation" msgstr "" "Le module sur-exposition a échoué lors de l’allocation de la mémoire tampon" # quel est le module surexposition ? -#: ../src/iop/overexposed.c:156 ../src/iop/overexposed.c:370 +#: ../src/iop/overexposed.c:149 ../src/iop/overexposed.c:362 msgid "module overexposed failed in color conversion" msgstr "Le module sur-exposition a échoué dans la conversion des couleurs" +#: ../src/iop/primaries.c:74 +msgid "rgb primaries" +msgstr "Primaires RVB" + +#: ../src/iop/primaries.c:79 +msgid "adjustment of the RGB color primaries for color grading" +msgstr "Ajustement des couleurs primaires RVB pour la graduation de couleur" + +#: ../src/iop/primaries.c:395 +msgid "shift red towards yellow or magenta" +msgstr "décale le rouge vers le jaune ou le magenta" + +#: ../src/iop/primaries.c:396 +msgid "red primary purity" +msgstr "Pureté du rouge primaire" + +#: ../src/iop/primaries.c:397 +msgid "shift green towards cyan or yellow" +msgstr "décale le vert vers le cyan ou le jaune" + +#: ../src/iop/primaries.c:398 +msgid "green primary purity" +msgstr "Pureté du vert primaire" + +#: ../src/iop/primaries.c:399 +msgid "shift blue towards magenta or cyan" +msgstr "décale le bleu vers le magenta ou le cyan" + +#: ../src/iop/primaries.c:400 +msgid "blue primary purity" +msgstr "Pureté du bleu primaire" + #: ../src/iop/profile_gamma.c:96 msgid "unbreak input profile" msgstr "Correction du profil d’entrée" @@ -18627,39 +19318,39 @@ "Corrige les profils d’entrée destinés à être appliqués sur du RVB non-" "linéaire" -#: ../src/iop/profile_gamma.c:136 +#: ../src/iop/profile_gamma.c:138 msgid "16 EV dynamic range (generic)" msgstr "Plage dynamique de 16 IL (générique)" -#: ../src/iop/profile_gamma.c:142 +#: ../src/iop/profile_gamma.c:144 msgid "14 EV dynamic range (generic)" msgstr "Plage dynamique de 14 IL (générique)" -#: ../src/iop/profile_gamma.c:148 +#: ../src/iop/profile_gamma.c:150 msgid "12 EV dynamic range (generic)" msgstr "Plage dynamique de 12 IL (générique)" -#: ../src/iop/profile_gamma.c:154 +#: ../src/iop/profile_gamma.c:156 msgid "10 EV dynamic range (generic)" msgstr "Plage dynamique de 10 IL (générique)" -#: ../src/iop/profile_gamma.c:160 +#: ../src/iop/profile_gamma.c:162 msgid "08 EV dynamic range (generic)" msgstr "Plage dynamique de 8 IL (générique)" -#: ../src/iop/profile_gamma.c:623 +#: ../src/iop/profile_gamma.c:637 msgid "linear part" msgstr "Linéaire" -#: ../src/iop/profile_gamma.c:627 +#: ../src/iop/profile_gamma.c:641 msgid "gamma exponential factor" msgstr "Facteur exponentiel gamma" -#: ../src/iop/profile_gamma.c:638 +#: ../src/iop/profile_gamma.c:652 msgid "adjust to match the average luma of the subject" msgstr "Ajuster pour faire correspondre à la luma moyenne du sujet" -#: ../src/iop/profile_gamma.c:644 +#: ../src/iop/profile_gamma.c:658 msgid "" "number of stops between middle gray and pure black\n" "this is a reading a light meter would give you on the scene" @@ -18667,7 +19358,7 @@ "Nombre d’ILs entre le gris moyen et le noir pur,\n" "ce qui est la valeur que donnerait un posemètre sur la scène." -#: ../src/iop/profile_gamma.c:650 +#: ../src/iop/profile_gamma.c:664 msgid "" "number of stops between pure black and pure white\n" "this is a reading a light meter would give you on the scene" @@ -18675,36 +19366,36 @@ "Nombre d’ILs entre le noir pur et le blanc pur,\n" "ce qui est la valeur que donnerait un posemètre sur la scène." -#: ../src/iop/profile_gamma.c:652 +#: ../src/iop/profile_gamma.c:666 msgctxt "section" msgid "optimize automatically" msgstr "Optimiser automatiquement" -#: ../src/iop/profile_gamma.c:656 +#: ../src/iop/profile_gamma.c:670 msgid "" -"enlarge or shrink the computed dynamic range\n" -"this is useful when noise perturbates the measurements" +"increase or decrease the computed dynamic range\n" +"this is useful when noise distorts the measurement" msgstr "" -"Élargir ou rétrécir la plage dynamique calculée.\n" +"Augmente ou diminue la plage dynamique calculée.\n" "Ceci est utile lorsque du bruit perturbe les mesures." -#: ../src/iop/profile_gamma.c:660 +#: ../src/iop/profile_gamma.c:674 msgid "make an optimization with some guessing" msgstr "Faire une optimisation basée sur des suppositions" -#: ../src/iop/profile_gamma.c:669 +#: ../src/iop/profile_gamma.c:683 msgid "tone mapping method" msgstr "Méthode de mappage des tonalités" -#: ../src/iop/rawdenoise.c:124 +#: ../src/iop/rawdenoise.c:138 msgid "raw denoise" msgstr "Réduction du bruit RAW" -#: ../src/iop/rawdenoise.c:129 +#: ../src/iop/rawdenoise.c:143 msgid "denoise the raw picture early in the pipeline" msgstr "Débruite l’image RAW tôt dans la chaîne de traitement" -#: ../src/iop/rawdenoise.c:939 +#: ../src/iop/rawdenoise.c:955 msgid "" "raw denoising\n" "only works for raw images." @@ -18714,9 +19405,9 @@ #. * let's fill the encapsulating widgets #. mode of operation -#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2387 ../src/views/darkroom.c:2393 -#: ../src/views/darkroom.c:2406 +#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2226 ../src/views/darkroom.c:2232 +#: ../src/views/darkroom.c:2245 msgid "raw overexposed" msgstr "Sur-exposition RAW" @@ -18725,7 +19416,7 @@ msgid "raw black/white point" msgstr "Point noir/blanc RAW" -#: ../src/iop/rawprepare.c:156 +#: ../src/iop/rawprepare.c:172 msgid "" "sets technical specificities of the raw sensor.\n" "touch with great care!" @@ -18733,63 +19424,63 @@ "Définit les informations techniques du capteur,\n" "ne pas changer les valeurs." -#: ../src/iop/rawprepare.c:168 +#: ../src/iop/rawprepare.c:184 msgid "passthrough" msgstr "Passer" -#: ../src/iop/rawprepare.c:655 +#: ../src/iop/rawprepare.c:663 msgid "invalid crop parameters" msgstr "Paramètres de recadrage invalides" -#: ../src/iop/rawprepare.c:656 +#: ../src/iop/rawprepare.c:664 msgid "" "please reset to defaults, update your preset or set to something correct" msgstr "" "Merci de réinitialiser, de mettre à jour les préréglages ou de définir des " "valeurs correctes" -#: ../src/iop/rawprepare.c:922 +#: ../src/iop/rawprepare.c:930 msgid "black level 0" msgstr "Niveau de noir 0" -#: ../src/iop/rawprepare.c:923 +#: ../src/iop/rawprepare.c:931 msgid "black level 1" msgstr "Niveau de noir 1" -#: ../src/iop/rawprepare.c:924 +#: ../src/iop/rawprepare.c:932 msgid "black level 2" msgstr "Niveau de noir 2" -#: ../src/iop/rawprepare.c:925 +#: ../src/iop/rawprepare.c:933 msgid "black level 3" msgstr "Niveau de noir 3" -#: ../src/iop/rawprepare.c:952 +#: ../src/iop/rawprepare.c:960 msgid "raw flat field correction to compensate for lens shading" msgstr "Correction de non-uniformité pour compenser les ombrages des objectifs" -#: ../src/iop/rawprepare.c:957 +#: ../src/iop/rawprepare.c:965 msgctxt "section" msgid "crop" msgstr "Recadrer" -#: ../src/iop/rawprepare.c:960 +#: ../src/iop/rawprepare.c:968 msgid "crop left border" msgstr "Rogner depuis le bord gauche" -#: ../src/iop/rawprepare.c:964 +#: ../src/iop/rawprepare.c:972 msgid "crop top border" msgstr "Rogner depuis le bord haut" -#: ../src/iop/rawprepare.c:968 +#: ../src/iop/rawprepare.c:976 msgid "crop right border" msgstr "Rogner depuis le bord droit" -#: ../src/iop/rawprepare.c:972 +#: ../src/iop/rawprepare.c:980 msgid "crop bottom border" msgstr "Rogner depuis le bord bas" -#: ../src/iop/rawprepare.c:981 +#: ../src/iop/rawprepare.c:989 msgid "" "raw black/white point correction\n" "only works for the sensors that need it." @@ -18814,11 +19505,11 @@ "this module is deprecated. please use the tone equalizer module instead." msgstr "Ce module est déprécié, utiliser « Égaliseur de tons » à la place." -#: ../src/iop/relight.c:263 +#: ../src/iop/relight.c:259 msgid "the fill-light in EV" msgstr "Lumière d’appoint en IL" -#: ../src/iop/relight.c:272 +#: ../src/iop/relight.c:268 msgid "" "select the center of fill-light\n" "ctrl+click to select an area" @@ -18826,18 +19517,13 @@ "Sélectionner le centre de la lumière,\n" "Ctrl+clic pour sélectionner une zone." -#: ../src/iop/relight.c:276 +#: ../src/iop/relight.c:272 msgid "toggle tool for picking median lightness in image" msgstr "" "Basculer l’outil pour récupérer la\n" "lumière moyenne d’une zone de l’image." -#: ../src/iop/relight.c:279 ../src/libs/export.c:1131 -#: ../src/libs/metadata_view.c:147 ../src/libs/print_settings.c:2537 -msgid "width" -msgstr "Largeur" - -#: ../src/iop/relight.c:280 +#: ../src/iop/relight.c:276 msgid "width of fill-light area defined in zones" msgstr "Zones affectées par la lumière d’appoint" @@ -18859,31 +19545,31 @@ msgid "geometric and frequential, RGB" msgstr "Géométrique et fréquentiel, RVB" -#: ../src/iop/retouch.c:1538 +#: ../src/iop/retouch.c:1689 msgid "cannot display scales when the blending mask is displayed" msgstr "" "Impossible d’afficher les échelles de décomposition en ondelettes lorsque " "les masques de fusion sont affichés" -#: ../src/iop/retouch.c:1861 ../src/iop/retouch.c:1863 -#: ../src/iop/retouch.c:1865 ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2045 ../src/iop/retouch.c:2047 +#: ../src/iop/retouch.c:2049 ../src/iop/retouch.c:2051 #, c-format msgid "default tool changed to %s" msgstr "Outil par défaut changé pour %s" -#: ../src/iop/retouch.c:1861 +#: ../src/iop/retouch.c:2045 msgid "cloning" msgstr "Cloner" -#: ../src/iop/retouch.c:1863 +#: ../src/iop/retouch.c:2047 msgid "healing" msgstr "Corriger" -#: ../src/iop/retouch.c:2226 +#: ../src/iop/retouch.c:2448 msgid "shapes:" msgstr "Formes :" -#: ../src/iop/retouch.c:2230 +#: ../src/iop/retouch.c:2454 msgid "" "to add a shape select an algorithm and a shape type and click on the image.\n" "shapes are added to the current scale" @@ -18892,78 +19578,74 @@ "sur l’image.\n" "Les formes sont ajoutées sur l’échelle de décomposition actuelle." -#. display & suppress masks -#. copy/paste shapes -#. display final image/current scale -#. auto-levels button -#: ../src/iop/retouch.c:2233 ../src/iop/retouch.c:2334 -#: ../src/iop/retouch.c:2339 ../src/iop/retouch.c:2347 -#: ../src/iop/retouch.c:2351 ../src/iop/retouch.c:2358 -#: ../src/iop/retouch.c:2392 +#: ../src/iop/retouch.c:2458 ../src/iop/retouch.c:2591 +#: ../src/iop/retouch.c:2597 ../src/iop/retouch.c:2606 +#: ../src/iop/retouch.c:2611 ../src/iop/retouch.c:2619 +#: ../src/iop/retouch.c:2664 msgid "editing" msgstr "Édition" -#: ../src/iop/retouch.c:2233 +#: ../src/iop/retouch.c:2459 msgid "show and edit shapes on the current scale" msgstr "Montre et édite les formes de l’échelle actuelle" # infinitifs requis, et minucule initiale -#: ../src/iop/retouch.c:2234 +#: ../src/iop/retouch.c:2460 msgid "show and edit shapes in restricted mode" msgstr "montrer et éditer les formes en mode restreint" -#: ../src/iop/retouch.c:2257 +#: ../src/iop/retouch.c:2489 msgid "algorithms:" msgstr "Algorithmes :" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2498 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2510 msgid "tools" msgstr "Outils" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2278 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2518 msgid "activate blur tool" msgstr "Outil de flou" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2493 ../src/iop/retouch.c:2499 +#: ../src/iop/retouch.c:2505 ../src/iop/retouch.c:2511 msgid "change algorithm for current form" msgstr "Changer l’algorithme pour la forme courante" -#: ../src/iop/retouch.c:2264 ../src/iop/retouch.c:2281 +#: ../src/iop/retouch.c:2498 ../src/iop/retouch.c:2521 msgid "activate fill tool" msgstr "Outil de remplissage" -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2284 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2524 msgid "activate cloning tool" msgstr "Outil de copie" -#: ../src/iop/retouch.c:2272 ../src/iop/retouch.c:2287 +#: ../src/iop/retouch.c:2510 ../src/iop/retouch.c:2527 msgid "activate healing tool" msgstr "Outil de correction" #. overwrite tooltip ourself to handle shift+click -#: ../src/iop/retouch.c:2276 +#: ../src/iop/retouch.c:2516 msgid "ctrl+click to change tool for current form" msgstr "Ctrl+clic pour changer l’outil de la forme courante" -#: ../src/iop/retouch.c:2277 +#: ../src/iop/retouch.c:2517 msgid "shift+click to set the tool as default" msgstr "Maj+clic pour changer l’outil par défaut" -#: ../src/iop/retouch.c:2296 +#: ../src/iop/retouch.c:2537 msgid "scales:" msgstr "Échelles :" -#: ../src/iop/retouch.c:2301 +#: ../src/iop/retouch.c:2544 msgid "current:" msgstr "Actuelle :" -#: ../src/iop/retouch.c:2306 +#: ../src/iop/retouch.c:2551 msgid "merge from:" msgstr "Fusion depuis :" -#: ../src/iop/retouch.c:2314 +#: ../src/iop/retouch.c:2562 msgid "" "top slider adjusts where the merge scales start\n" "bottom slider adjusts the number of scales\n" @@ -18978,44 +19660,44 @@ "actuel.\n" "Les échelles comportant des formes sont soulignées." -#: ../src/iop/retouch.c:2334 +#: ../src/iop/retouch.c:2591 msgid "display masks" msgstr "Affiche les masques" -#: ../src/iop/retouch.c:2339 +#: ../src/iop/retouch.c:2597 msgid "temporarily switch off shapes" msgstr "Désactive les formes temporairement" -#: ../src/iop/retouch.c:2347 +#: ../src/iop/retouch.c:2606 msgid "paste cut shapes to current scale" msgstr "Coller les formes sur l’échelle de décomposition actuelle" -#: ../src/iop/retouch.c:2351 +#: ../src/iop/retouch.c:2611 msgid "cut shapes from current scale" msgstr "Couper les formes de l’échelle de décomposition actuelle" -#: ../src/iop/retouch.c:2358 +#: ../src/iop/retouch.c:2619 msgid "display wavelet scale" msgstr "Affiche une seule échelle de la décomposition" -#: ../src/iop/retouch.c:2366 +#: ../src/iop/retouch.c:2627 msgctxt "section" msgid "preview single scale" msgstr "Prévisualisation d’une seule échelle" -#: ../src/iop/retouch.c:2377 +#: ../src/iop/retouch.c:2641 msgid "adjust preview levels" msgstr "Ajuste les niveaux de prévisualisation" -#: ../src/iop/retouch.c:2392 ../src/iop/rgblevels.c:1051 +#: ../src/iop/retouch.c:2664 ../src/iop/rgblevels.c:1106 msgid "auto levels" msgstr "Niveaux automatiques" -#: ../src/iop/retouch.c:2400 +#: ../src/iop/retouch.c:2672 msgid "shape selected:" msgstr "Forme sélectionnée :" -#: ../src/iop/retouch.c:2405 +#: ../src/iop/retouch.c:2678 msgid "" "click on a shape to select it,\n" "to unselect click on an empty space" @@ -19023,61 +19705,61 @@ "Cliquer sur la forme pour la sélectionner,\n" "pour désélectionner cliquer en dehors d’elle." -#: ../src/iop/retouch.c:2412 +#: ../src/iop/retouch.c:2687 msgid "erase the detail or fills with chosen color" msgstr "Efface les détails ou remplit avec la couleur choisie" -#: ../src/iop/retouch.c:2419 +#: ../src/iop/retouch.c:2697 msgid "fill color: " msgstr "Couleur : " -#: ../src/iop/retouch.c:2424 ../src/iop/retouch.c:2425 +#: ../src/iop/retouch.c:2702 ../src/iop/retouch.c:2703 msgid "select fill color" msgstr "Sélectionner la couleur de remplissage" -#: ../src/iop/retouch.c:2430 +#: ../src/iop/retouch.c:2713 msgid "pick fill color from image" msgstr "Choisir une couleur dans l’image" -#: ../src/iop/retouch.c:2431 +#: ../src/iop/retouch.c:2714 msgid "pick fill color" msgstr "Sélectionner une couleur de remplissage" -#: ../src/iop/retouch.c:2439 +#: ../src/iop/retouch.c:2724 msgid "adjusts color brightness to fine-tune it. works with erase as well" msgstr "" "Ajuste la luminosité de la couleur. Marche aussi avec le mode d’effacement." -#: ../src/iop/retouch.c:2445 +#: ../src/iop/retouch.c:2730 msgid "type for the blur algorithm" msgstr "Type d’algorithme de flou" -#: ../src/iop/retouch.c:2449 +#: ../src/iop/retouch.c:2734 msgid "radius of the selected blur type" msgstr "Rayon du flou sélectionné" -#: ../src/iop/retouch.c:2455 +#: ../src/iop/retouch.c:2741 msgid "set the opacity on the selected shape" msgstr "Fixer l’opacité de la forme sélectionnée" -#: ../src/iop/retouch.c:2461 +#: ../src/iop/retouch.c:2748 msgctxt "section" msgid "retouch tools" msgstr "Outils de retouche" #. wavelet decompose -#: ../src/iop/retouch.c:2470 +#: ../src/iop/retouch.c:2757 msgctxt "section" msgid "wavelet decompose" msgstr "Décomposition en ondelettes" #. shapes -#: ../src/iop/retouch.c:2484 +#: ../src/iop/retouch.c:2771 msgctxt "section" msgid "shapes" msgstr "Formes" -#: ../src/iop/retouch.c:3589 ../src/iop/retouch.c:4427 +#: ../src/iop/retouch.c:3986 ../src/iop/retouch.c:4956 #, c-format msgid "max scale is %i for this image size" msgstr "L’échelle maximum est de %i pour la taille de cette image" @@ -19086,60 +19768,60 @@ msgid "rgb curve" msgstr "Courbe RVB" -#: ../src/iop/rgbcurve.c:142 +#: ../src/iop/rgbcurve.c:144 msgid "alter an image’s tones using curves in RGB color space" msgstr "" "Altère les tonalités d’une image à l’aide d’une courbe dans l’espace RVB" -#: ../src/iop/rgbcurve.c:193 ../src/iop/tonecurve.c:548 +#: ../src/iop/rgbcurve.c:195 ../src/iop/tonecurve.c:569 msgid "gamma 1.0 (linear)" msgstr "Gamma 1.0 (linéaire)" -#: ../src/iop/rgbcurve.c:203 ../src/iop/tonecurve.c:558 +#: ../src/iop/rgbcurve.c:205 ../src/iop/tonecurve.c:579 msgid "contrast - med (linear)" msgstr "Contrasté - moyen (linéaire)" -#: ../src/iop/rgbcurve.c:212 ../src/iop/tonecurve.c:567 +#: ../src/iop/rgbcurve.c:214 ../src/iop/tonecurve.c:588 msgid "contrast - high (linear)" msgstr "Contraste - haut (linéaire)" -#: ../src/iop/rgbcurve.c:226 ../src/iop/tonecurve.c:579 +#: ../src/iop/rgbcurve.c:228 ../src/iop/tonecurve.c:600 msgid "contrast - med (gamma 2.2)" msgstr "Contraste - moyen (gamma 2.2)" -#: ../src/iop/rgbcurve.c:239 ../src/iop/tonecurve.c:590 +#: ../src/iop/rgbcurve.c:241 ../src/iop/tonecurve.c:611 msgid "contrast - high (gamma 2.2)" msgstr "Contraste - haut (gamma 2.2)" -#: ../src/iop/rgbcurve.c:252 ../src/iop/tonecurve.c:603 +#: ../src/iop/rgbcurve.c:254 ../src/iop/tonecurve.c:624 msgid "gamma 2.0" msgstr "Gamma 2.0" -#: ../src/iop/rgbcurve.c:258 ../src/iop/tonecurve.c:609 +#: ../src/iop/rgbcurve.c:260 ../src/iop/tonecurve.c:630 msgid "gamma 0.5" msgstr "Gamma 0.5" -#: ../src/iop/rgbcurve.c:263 ../src/iop/tonecurve.c:614 +#: ../src/iop/rgbcurve.c:265 ../src/iop/tonecurve.c:635 msgid "logarithm (base 2)" msgstr "Logarithmique (base 2)" -#: ../src/iop/rgbcurve.c:268 ../src/iop/tonecurve.c:619 +#: ../src/iop/rgbcurve.c:270 ../src/iop/tonecurve.c:640 msgid "exponential (base 2)" msgstr "Exponentielle (base 2)" -#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:999 +#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:1038 msgid "choose between linked and independent channels." msgstr "Choisir entre les canaux indépendants ou liés" -#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1003 +#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1043 msgid "curve nodes for r channel" msgstr "Point de contrôle pour le canal R" -#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1004 +#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1044 msgid "curve nodes for g channel" msgstr "Point de contrôle pour le canal V" -#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1005 +#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1045 msgid "curve nodes for b channel" msgstr "Point de contrôle pour le canal B" @@ -19147,16 +19829,16 @@ msgid "rgb levels" msgstr "Niveaux RVB" -#: ../src/iop/rgblevels.c:122 +#: ../src/iop/rgblevels.c:124 msgid "adjust black, white and mid-gray points in RGB color space" msgstr "" "Ajuste les points noir, blanc et gris moyen dans l’espace de couleur RVB" -#: ../src/iop/rgblevels.c:1056 +#: ../src/iop/rgblevels.c:1112 msgid "auto region" msgstr "Région automatique" -#: ../src/iop/rgblevels.c:1058 +#: ../src/iop/rgblevels.c:1115 msgid "" "apply auto levels based on a region defined by the user\n" "click and drag to draw the area\n" @@ -19171,7 +19853,7 @@ msgid "rotate pixels" msgstr "Rotation des pixels" -#: ../src/iop/rotatepixels.c:97 ../src/iop/scalepixels.c:82 +#: ../src/iop/rotatepixels.c:99 ../src/iop/scalepixels.c:84 msgid "" "internal module to setup technical specificities of raw sensor.\n" "\n" @@ -19180,11 +19862,11 @@ "Module interne spécifiant des informations techniques du capteur,\n" "ne pas changer les valeurs." -#: ../src/iop/rotatepixels.c:366 +#: ../src/iop/rotatepixels.c:381 msgid "automatic pixel rotation" msgstr "Rotation automatique des pixels" -#: ../src/iop/rotatepixels.c:367 +#: ../src/iop/rotatepixels.c:382 msgid "" "automatic pixel rotation\n" "only works for the sensors that need it." @@ -19197,11 +19879,11 @@ msgid "scale pixels" msgstr "Mise à l’échelle des pixels" -#: ../src/iop/scalepixels.c:271 +#: ../src/iop/scalepixels.c:281 msgid "automatic pixel scaling" msgstr "Mise à l’échelle automatique des pixels" -#: ../src/iop/scalepixels.c:272 +#: ../src/iop/scalepixels.c:282 msgid "" "automatic pixel scaling\n" "only works for the sensors that need it." @@ -19209,11 +19891,11 @@ "Mise à l’échelle automatique des pixels\n" "seulement pour les capteurs le nécessitant." -#: ../src/iop/shadhi.c:175 +#: ../src/iop/shadhi.c:120 msgid "shadows and highlights" msgstr "Ombres et hautes lumières" -#: ../src/iop/shadhi.c:195 +#: ../src/iop/shadhi.c:142 msgid "" "modify the tonal range of the shadows and highlights\n" "of an image by enhancing local contrast." @@ -19221,27 +19903,27 @@ "Modifie l’étendue tonale des ombres et hautes lumières\n" "en renforçant le contraste local." -#: ../src/iop/shadhi.c:676 ../src/iop/splittoning.c:548 +#: ../src/iop/shadhi.c:711 ../src/iop/splittoning.c:544 msgid "compress" msgstr "Seuil" -#: ../src/iop/shadhi.c:683 +#: ../src/iop/shadhi.c:718 msgid "correct shadows" msgstr "Corrige les ombres" -#: ../src/iop/shadhi.c:684 +#: ../src/iop/shadhi.c:719 msgid "correct highlights" msgstr "Corrige les hautes lumières" -#: ../src/iop/shadhi.c:685 +#: ../src/iop/shadhi.c:720 msgid "shift white point" msgstr "Décalage du point blanc" -#: ../src/iop/shadhi.c:687 +#: ../src/iop/shadhi.c:722 msgid "filter to use for softening. bilateral avoids halos" msgstr "Filtre à utiliser pour adoucir. Bilatéral évite les halos." -#: ../src/iop/shadhi.c:688 +#: ../src/iop/shadhi.c:723 msgid "" "compress the effect on shadows/highlights and\n" "preserve mid-tones" @@ -19249,11 +19931,11 @@ "Pourcentage de luminosité\n" "non affecté par la correction" -#: ../src/iop/shadhi.c:689 +#: ../src/iop/shadhi.c:724 msgid "adjust saturation of shadows" msgstr "Ajuste la saturation des ombres" -#: ../src/iop/shadhi.c:690 +#: ../src/iop/shadhi.c:725 msgid "adjust saturation of highlights" msgstr "Ajuste la saturation des hautes lumières" @@ -19262,47 +19944,47 @@ msgid "sharpen" msgstr "Renforcer la netteté" -#: ../src/iop/sharpen.c:93 +#: ../src/iop/sharpen.c:95 msgid "sharpen the details in the image using a standard UnSharp Mask (USM)" msgstr "" "Ajoute de la netteté aux détails de l’image en utilisant un UnSharp Mask " "(USM)" -#: ../src/iop/sharpen.c:95 +#: ../src/iop/sharpen.c:97 msgid "linear or non-linear, Lab, display or scene-referred" msgstr "Linéaire ou non-linéaire, Lab, relatif à l’affichage ou à la scène" -#: ../src/iop/sharpen.c:97 +#: ../src/iop/sharpen.c:99 msgid "quasi-linear, Lab, display or scene-referred" msgstr "Quasi-linéaire, Lab, relatif à l’affichage ou à la scène" #. add the preset. #. restrict to raw images -#: ../src/iop/sharpen.c:104 ../src/iop/sharpen.c:108 +#: ../src/iop/sharpen.c:106 ../src/iop/sharpen.c:110 msgid "sharpen" msgstr "Renforcer la netteté" -#: ../src/iop/sharpen.c:443 +#: ../src/iop/sharpen.c:438 msgid "spatial extent of the unblurring" msgstr "Extension spatiale du défloutage" -#: ../src/iop/sharpen.c:447 +#: ../src/iop/sharpen.c:442 msgid "strength of the sharpen" msgstr "Force du renforcement" -#: ../src/iop/sharpen.c:451 +#: ../src/iop/sharpen.c:446 msgid "threshold to activate sharpen" msgstr "Seuil d’activation du renforcement" -#: ../src/iop/sigmoid.c:89 +#: ../src/iop/sigmoid.c:195 msgid "sigmoid" -msgstr "Sigmoid" +msgstr "Sigmoïde" -#: ../src/iop/sigmoid.c:94 +#: ../src/iop/sigmoid.c:200 msgid "tone mapping|view transform|display transform" msgstr "mappage tonal|transformation affichage" -#: ../src/iop/sigmoid.c:99 +#: ../src/iop/sigmoid.c:206 msgid "" "apply a view transform to make a image displayable\n" "on a screen or print. uses a robust and smooth\n" @@ -19313,19 +19995,19 @@ "sur un écran ou un papier. Utilise une courbe de tonalités douce et robuste\n" "avec un mode optionnel de préservation de la couleur." -#: ../src/iop/sigmoid.c:155 +#: ../src/iop/sigmoid.c:258 msgid "neutral gray" msgstr "Gris neutre" -#: ../src/iop/sigmoid.c:160 +#: ../src/iop/sigmoid.c:264 msgid "ACES 100-nit like" msgstr "Comme ACES 100 nit" -#: ../src/iop/sigmoid.c:165 +#: ../src/iop/sigmoid.c:270 msgid "Reinhard" msgstr "Reinhard" -#: ../src/iop/sigmoid.c:683 +#: ../src/iop/sigmoid.c:917 msgid "" "compression of the applied curve\n" "implicitly defines the supported input dynamic range" @@ -19333,7 +20015,7 @@ "Compression de la courbe à appliquer.\n" "Définit implicitement l’étendue dynamique en entrée." -#: ../src/iop/sigmoid.c:686 +#: ../src/iop/sigmoid.c:920 msgid "" "shift the compression towards shadows or highlights.\n" "negative values increase contrast in shadows.\n" @@ -19345,7 +20027,7 @@ " • Les valeurs positives augmentent le contraste dans les hautes lumières.\n" "Le coté opposé se voit perdre en contraste." -#: ../src/iop/sigmoid.c:695 +#: ../src/iop/sigmoid.c:929 msgid "" "optional correction of the hue twist introduced by\n" "the per-channel processing method." @@ -19353,16 +20035,56 @@ "Correction optionnelle du décalage de teinte introduit\n" "par la méthode de traitement par canal." +#: ../src/iop/sigmoid.c:936 ../src/iop/sigmoid.c:940 +msgid "primaries" +msgstr "Primaires" + +#: ../src/iop/sigmoid.c:937 +msgid "set custom primaries" +msgstr "Définit des primaires personnalisées" + +#: ../src/iop/sigmoid.c:943 +msgid "primaries to use as the base for below adjustments" +msgstr "Couleurs primaires à utiliser comme base des ajustements ci-dessous" + +#: ../src/iop/sigmoid.c:962 +msgid "attenuate the purity of the red primary" +msgstr "Atténue la pureté du rouge primaire" + +#: ../src/iop/sigmoid.c:963 +msgid "rotate the red primary" +msgstr "Rotation du rouge primaire" + +#: ../src/iop/sigmoid.c:964 +msgid "attenuate the purity of the green primary" +msgstr "Atténue la pureté du vert primaire" + +#: ../src/iop/sigmoid.c:965 +msgid "rotate the green primary" +msgstr "Rotation du vert primaire" + +#: ../src/iop/sigmoid.c:966 +msgid "attenuate the purity of the blue primary" +msgstr "Atténue la pureté du bleu primaire" + +#: ../src/iop/sigmoid.c:967 +msgid "rotate the blue primary" +msgstr "Rotation du bleu primaire" + +#: ../src/iop/sigmoid.c:974 +msgid "recover some of the original purity after the inset" +msgstr "Recouvre un peu de la pureté originelle après l'atténuation" + # "duplicate" traduit par "cloner" avec une bulle d’explication utilisant le terme de "copie virtuelle", dans le sens que l'image n’est pas physiquement dupliquée -#: ../src/iop/sigmoid.c:702 +#: ../src/iop/sigmoid.c:978 msgid "display luminance" msgstr "Luminance de l’affichage" -#: ../src/iop/sigmoid.c:706 +#: ../src/iop/sigmoid.c:979 msgid "set display black/white targets" msgstr "Définit le noir/blanc cible de l’affichage" -#: ../src/iop/sigmoid.c:714 +#: ../src/iop/sigmoid.c:987 msgid "" "the black luminance of the target display or print.\n" "can be used creatively for a faded look." @@ -19370,7 +20092,7 @@ "Le niveau de luminance du noir de la cible d’affichage ou d’impression.\n" "Peut être utilisé pour un rendu créatif délavé." -#: ../src/iop/sigmoid.c:719 +#: ../src/iop/sigmoid.c:992 msgid "" "the white luminance of the target display or print.\n" "can be used creatively for a faded look or blowing out whites earlier." @@ -19383,23 +20105,23 @@ msgid "soften" msgstr "Effet Orton (adoucir)" -#: ../src/iop/soften.c:100 +#: ../src/iop/soften.c:102 msgid "create a softened image using the Orton effect" msgstr "Crée une image adoucie en utilisant l’effet Orton" -#: ../src/iop/soften.c:371 +#: ../src/iop/soften.c:366 msgid "the size of blur" msgstr "Taille du flou" -#: ../src/iop/soften.c:375 +#: ../src/iop/soften.c:370 msgid "the saturation of blur" msgstr "Saturation du flou" -#: ../src/iop/soften.c:379 +#: ../src/iop/soften.c:374 msgid "the brightness of blur" msgstr "Luminosité du flou" -#: ../src/iop/soften.c:383 +#: ../src/iop/soften.c:378 msgid "the mix of effect" msgstr "Mélange des réglages" @@ -19407,7 +20129,7 @@ msgid "split-toning" msgstr "Virage partiel" -#: ../src/iop/splittoning.c:101 +#: ../src/iop/splittoning.c:103 msgid "" "use two specific colors for shadows and highlights and\n" "create a linear toning effect between them up to a pivot." @@ -19416,51 +20138,51 @@ "et crée un dégradé linéaire entres elles jusqu’à un pivot." # enlevé "authentique" qui ne signigie rien -#: ../src/iop/splittoning.c:118 +#: ../src/iop/splittoning.c:120 msgid "authentic sepia" msgstr "Sépia" # enlevé "authentique" qui ne signigie rien -#: ../src/iop/splittoning.c:127 +#: ../src/iop/splittoning.c:129 msgid "authentic cyanotype" msgstr "Cyanotype" # enlevé "authentique" qui ne signigie rien -#: ../src/iop/splittoning.c:136 +#: ../src/iop/splittoning.c:138 msgid "authentic platinotype" msgstr "Platinotype" -#: ../src/iop/splittoning.c:145 +#: ../src/iop/splittoning.c:147 msgid "chocolate brown" msgstr "Marron chocolat" -#: ../src/iop/splittoning.c:490 +#: ../src/iop/splittoning.c:486 msgid "select the saturation tone" msgstr "Sélectionne la saturation" -#: ../src/iop/splittoning.c:494 +#: ../src/iop/splittoning.c:490 msgid "select tone color" msgstr "Sélectionne la couleur" -#: ../src/iop/splittoning.c:524 +#: ../src/iop/splittoning.c:520 msgctxt "section" msgid "shadows" msgstr "Ombres" -#: ../src/iop/splittoning.c:530 +#: ../src/iop/splittoning.c:526 msgctxt "section" msgid "highlights" msgstr "Hautes lumières" -#: ../src/iop/splittoning.c:539 +#: ../src/iop/splittoning.c:535 msgid "balance" msgstr "Répartition" -#: ../src/iop/splittoning.c:546 +#: ../src/iop/splittoning.c:542 msgid "the balance of center of split-toning" msgstr "Centre de répartition du virage partiel" -#: ../src/iop/splittoning.c:550 +#: ../src/iop/splittoning.c:546 msgid "" "compress the effect on highlights/shadows and\n" "preserve mid-tones" @@ -19484,17 +20206,17 @@ msgid "geometric, raw" msgstr "Géométrique, RAW" -#: ../src/iop/spots.c:226 +#: ../src/iop/spots.c:238 msgid "spot module is limited to 64 shapes. please add a new instance!" msgstr "" "Le module « Correction des taches » est limité à 64 formes, merci d’utiliser " "une nouvelle instance." -#: ../src/iop/spots.c:872 +#: ../src/iop/spots.c:874 msgid "number of strokes:" msgstr "Nombre de corrections :" -#: ../src/iop/spots.c:876 +#: ../src/iop/spots.c:878 msgid "" "click on a shape and drag on canvas.\n" "use the mouse wheel to adjust size.\n" @@ -19504,134 +20226,121 @@ "Défiler à la souris pour ajuster la taille.\n" "Clic droit pour supprimer." -#: ../src/iop/spots.c:879 +#: ../src/iop/spots.c:881 msgid "show and edit shapes" msgstr "Montre et édite les formes" -#: ../src/iop/temperature.c:204 +#: ../src/iop/temperature.c:212 msgctxt "modulename" msgid "white balance" msgstr "Balance des blancs" -#: ../src/iop/temperature.c:211 +#: ../src/iop/temperature.c:219 msgid "scale raw RGB channels to balance white and help demosaicing" msgstr "" "Met à l’échelle les canaux RVB bruts\n" "pour équilibrer les blancs et aider au dématriçage." -#: ../src/iop/temperature.c:1149 -msgid "white balance applied twice" -msgstr "Balance des blancs appliquée deux fois" - -#: ../src/iop/temperature.c:1150 -msgid "" -"the color calibration module is enabled,\n" -"and performing chromatic adaptation.\n" -"set the white balance here to camera reference (D65)\n" -"or disable chromatic adaptation in color calibration." -msgstr "" -"Le module de calibration des couleurs est activé\n" -"et effectue une adaptation chromatique.\n" -"Positionner la balance des blancs ici sur la référence de boîtier (D65)\n" -"ou désactiver l’adaptation chromatique du module « Calibration des " -"couleurs »." - -#: ../src/iop/temperature.c:1430 +#: ../src/iop/temperature.c:1388 #, c-format msgid "`%s' color matrix not found for image" msgstr "Matrice de couleurs « %s » non trouvée pour l’image" -#: ../src/iop/temperature.c:1459 +#: ../src/iop/temperature.c:1418 #, c-format msgid "failed to read camera white balance information from `%s'!" msgstr "Impossible de récupérer la balance des blancs du boîtier pour « %s »" -#: ../src/iop/temperature.c:1631 +#: ../src/iop/temperature.c:1612 msgctxt "white balance" msgid "as shot" msgstr "Boîtier" #. old "spot", reason: describes exactly what'll happen -#: ../src/iop/temperature.c:1634 +#: ../src/iop/temperature.c:1615 msgctxt "white balance" msgid "from image area" msgstr "Depuis une zone de l’image" -#: ../src/iop/temperature.c:1635 +#: ../src/iop/temperature.c:1616 msgctxt "white balance" msgid "user modified" msgstr "Manuel" #. old "camera neutral", reason: better matches intent -#: ../src/iop/temperature.c:1637 +#: ../src/iop/temperature.c:1618 msgctxt "white balance" msgid "camera reference" msgstr "Neutre boîtier" -#: ../src/iop/temperature.c:1920 ../src/iop/temperature.c:1938 +#: ../src/iop/temperature.c:1897 ../src/iop/temperature.c:1915 msgid "green channel coefficient" msgstr "Coefficient du canal vert" -#: ../src/iop/temperature.c:1922 +#: ../src/iop/temperature.c:1899 msgid "magenta channel coefficient" msgstr "Coefficient du canal magenta" -#: ../src/iop/temperature.c:1924 +#: ../src/iop/temperature.c:1901 msgid "cyan channel coefficient" msgstr "Coefficient du canal cyan" -#: ../src/iop/temperature.c:1926 +#: ../src/iop/temperature.c:1903 msgid "yellow channel coefficient" msgstr "Coefficient du canal jaune" -#: ../src/iop/temperature.c:1936 +#: ../src/iop/temperature.c:1913 msgid "red channel coefficient" msgstr "Coefficient du canal rouge" -#: ../src/iop/temperature.c:1940 +#: ../src/iop/temperature.c:1917 msgid "blue channel coefficient" msgstr "Coefficient du canal bleu" -#: ../src/iop/temperature.c:1942 +#: ../src/iop/temperature.c:1918 +msgid "emerald" +msgstr "Émeraude" + +#: ../src/iop/temperature.c:1919 msgid "emerald channel coefficient" msgstr "Coefficient du canal émeraude" #. relabel to settings to remove confusion between module presets #. and white balance settings -#: ../src/iop/temperature.c:2029 ../src/iop/temperature.c:2042 -#: ../src/iop/temperature.c:2049 ../src/iop/temperature.c:2055 -#: ../src/iop/temperature.c:2074 +#: ../src/iop/temperature.c:1997 ../src/iop/temperature.c:2010 +#: ../src/iop/temperature.c:2017 ../src/iop/temperature.c:2023 +#: ../src/iop/temperature.c:2042 msgid "settings" msgstr "Paramètres" -#: ../src/iop/temperature.c:2029 +#: ../src/iop/temperature.c:1997 msgid "as shot" msgstr "Boîtier" # infinitif -#: ../src/iop/temperature.c:2032 +#: ../src/iop/temperature.c:2000 msgid "set white balance to as shot" msgstr "Choisit la balance des blancs du boîtier" -#: ../src/iop/temperature.c:2042 +#: ../src/iop/temperature.c:2010 msgid "from image area" msgstr "Depuis une zone de l’image" -#: ../src/iop/temperature.c:2049 +#: ../src/iop/temperature.c:2017 msgid "user modified" msgstr "Manuel" # infinitif -#: ../src/iop/temperature.c:2052 +#: ../src/iop/temperature.c:2020 msgid "set white balance to user modified" msgstr "Choisit la balance des blancs utilisateur" -#: ../src/iop/temperature.c:2055 +#: ../src/iop/temperature.c:2023 msgid "camera reference" msgstr "Neutre boîtier" # 3e personne -#: ../src/iop/temperature.c:2060 +#: ../src/iop/temperature.c:2028 msgid "" "set white balance to camera reference point\n" "in most cases it should be D65" @@ -19639,58 +20348,62 @@ "Positionne la balance des couleurs sur le point de référence du boîtier,\n" "D65 dans la plupart des cas." -#: ../src/iop/temperature.c:2075 +#: ../src/iop/temperature.c:2043 msgid "choose white balance setting" msgstr "Choisir un paramètre de balance des blancs" -#: ../src/iop/temperature.c:2080 +#: ../src/iop/temperature.c:2048 msgid "finetune" msgstr "Ajustement" -#: ../src/iop/temperature.c:2082 +#: ../src/iop/temperature.c:2050 msgid "fine tune camera's white balance setting" msgstr "Ajustement fin de la balance des blancs" -#: ../src/iop/temperature.c:2093 +#: ../src/iop/temperature.c:2058 msgctxt "section" msgid "scene illuminant temp" msgstr "Température de l’illuminant de scène" -#: ../src/iop/temperature.c:2094 +#: ../src/iop/temperature.c:2059 msgid "click to cycle color mode on sliders" msgstr "Clic pour changer le mode des contrôles" -#: ../src/iop/temperature.c:2108 +#: ../src/iop/temperature.c:2073 msgid "color temperature (in Kelvin)" msgstr "Température de couleur (°K)" -#: ../src/iop/temperature.c:2114 +#: ../src/iop/temperature.c:2079 msgid "tint" msgstr "Teinte" -#: ../src/iop/temperature.c:2117 +#: ../src/iop/temperature.c:2082 msgid "color tint of the image, from magenta (value < 1) to green (value > 1)" msgstr "" "Teinte de la couleur de l’image, du magenta (valeur < 1) au vert (valeur > 1)" -#: ../src/iop/temperature.c:2123 +#: ../src/iop/temperature.c:2088 msgid "channel coefficients" msgstr "Coefficients des canaux" -#: ../src/iop/temperature.c:2158 +#: ../src/iop/temperature.c:2097 +msgid "various" +msgstr "Divers" + +#: ../src/iop/temperature.c:2123 msgid "white balance disabled for camera" msgstr "Balance des blancs désactivée pour le boîtier" -#: ../src/iop/tonecurve.c:190 +#: ../src/iop/tonecurve.c:161 msgid "tone curve" msgstr "Courbe des tonalités" -#: ../src/iop/tonecurve.c:210 +#: ../src/iop/tonecurve.c:183 msgid "alter an image’s tones using curves" msgstr "Altère les tonalités d’une image à l’aide d’une courbe" # "auto" n'est pas dans le menu des espaces de couleur -#: ../src/iop/tonecurve.c:1125 +#: ../src/iop/tonecurve.c:1147 msgid "" "if set to auto, a and b curves have no effect and are not displayed. chroma " "values (a and b) of each pixel are then adjusted based on L curve data. auto " @@ -19701,119 +20414,112 @@ "L.\n" "Auto XYZ est similaire mais applique la saturation dans l’espace XYZ." -#: ../src/iop/tonecurve.c:1134 +#: ../src/iop/tonecurve.c:1156 msgid "tonecurve for L channel" msgstr "Courbe des tonalités pour le canal « L »" -#: ../src/iop/tonecurve.c:1135 +#: ../src/iop/tonecurve.c:1157 msgid "tonecurve for a channel" msgstr "Courbe des tonalités pour le canal « a »" -#: ../src/iop/tonecurve.c:1136 +#: ../src/iop/tonecurve.c:1158 msgid "tonecurve for b channel" msgstr "Courbe des tonalités pour le canal « b »" -#: ../src/iop/tonecurve.c:1143 ../src/iop/watermark.c:1305 -#: ../src/libs/colorpicker.c:597 +#: ../src/iop/tonecurve.c:1165 ../src/iop/watermark.c:1353 +#: ../src/libs/colorpicker.c:675 msgid "pick color" msgstr "Sélectionner une couleur" -#: ../src/iop/toneequal.c:311 +#: ../src/iop/toneequal.c:319 msgid "tone equalizer" msgstr "Égaliseur de tons" -#: ../src/iop/toneequal.c:316 +#: ../src/iop/toneequal.c:324 msgid "tone curve|tone mapping|relight|background light|shadows highlights" msgstr "" "courbe de tonalités|mappage des tonalités|ré-éclairer|rallumer|lumière " "d’arrière-plan|ombres et hautes lumières" -#: ../src/iop/toneequal.c:323 +#: ../src/iop/toneequal.c:331 msgid "relight the scene as if the lighting was done directly on the scene" msgstr "Rééclaire comme si la lumière était directement sur la scène" -#: ../src/iop/toneequal.c:326 +#: ../src/iop/toneequal.c:334 msgid "quasi-linear, RGB" msgstr "Quasi-linéaire, RVB" -#: ../src/iop/toneequal.c:327 +#: ../src/iop/toneequal.c:335 msgid "quasi-linear, RGB, scene-referred" msgstr "Relatif à la scène, quasi-linéaire, RVB" -#: ../src/iop/toneequal.c:458 +#: ../src/iop/toneequal.c:489 msgid "simple tone curve" msgstr "Simple courbe des tonalités" -#: ../src/iop/toneequal.c:472 +#: ../src/iop/toneequal.c:503 msgid "mask blending: all purposes" msgstr "Fusion du masque : tous usages" -#: ../src/iop/toneequal.c:479 +#: ../src/iop/toneequal.c:510 msgid "mask blending: people with backlight" msgstr "Fusion du masque : sujets à contre-jour" -#: ../src/iop/toneequal.c:496 +#: ../src/iop/toneequal.c:527 msgid "compress shadows/highlights (EIGF): strong" msgstr "Compresser les ombres/hautes lumières (EIGF) : fort" -#: ../src/iop/toneequal.c:501 +#: ../src/iop/toneequal.c:532 msgid "compress shadows/highlights (GF): strong" msgstr "Compresser les ombres/hautes lumières (GF) : fort" -#: ../src/iop/toneequal.c:510 +#: ../src/iop/toneequal.c:541 msgid "compress shadows/highlights (EIGF): medium" msgstr "Compresser les ombres/hautes lumières (EIGF) : moyen" -#: ../src/iop/toneequal.c:515 +#: ../src/iop/toneequal.c:546 msgid "compress shadows/highlights (GF): medium" msgstr "Compresser les ombres/hautes lumières (GF) : moyen" -#: ../src/iop/toneequal.c:524 +#: ../src/iop/toneequal.c:555 msgid "compress shadows/highlights (EIGF): soft" msgstr "Compresser les ombres/hautes lumières (EIGF) : léger" -#: ../src/iop/toneequal.c:529 +#: ../src/iop/toneequal.c:560 msgid "compress shadows/highlights (GF): soft" msgstr "Compresser les ombres/hautes lumières (GF) : léger" -#: ../src/iop/toneequal.c:537 +#: ../src/iop/toneequal.c:568 msgid "contrast tone curve: soft" msgstr "Courbe des tons contrastée : léger" -#: ../src/iop/toneequal.c:542 +#: ../src/iop/toneequal.c:573 msgid "contrast tone curve: medium" msgstr "Courbe des tons contrastée : moyen" -#: ../src/iop/toneequal.c:547 +#: ../src/iop/toneequal.c:578 msgid "contrast tone curve: strong" msgstr "Courbe des tons contrastée : fort" -#: ../src/iop/toneequal.c:570 +#: ../src/iop/toneequal.c:601 msgid "relight: fill-in" msgstr "Rééclairer : lumière de remplissage" -#: ../src/iop/toneequal.c:627 -msgid "" -"tone equalizer needs to be after distortion modules in the pipeline – " -"disabled" -msgstr "" -"L’égaliseur de tons doit être après les modules de distorsion - désactivé" - -#: ../src/iop/toneequal.c:1091 +#: ../src/iop/toneequal.c:1120 msgid "tone equalizer failed to allocate memory, check your RAM settings" msgstr "" "L’égaliseur de ton n’a pas assez de mémoire, vérifier les paramètres de la " "RAM" -#: ../src/iop/toneequal.c:1795 ../src/iop/toneequal.c:2180 +#: ../src/iop/toneequal.c:1825 ../src/iop/toneequal.c:2196 msgid "the interpolation is unstable, decrease the curve smoothing" msgstr "L’interpolation est instable, diminuer le lissage de la courbe" -#: ../src/iop/toneequal.c:1830 ../src/iop/toneequal.c:1897 +#: ../src/iop/toneequal.c:1860 ../src/iop/toneequal.c:1927 msgid "wait for the preview to finish recomputing" msgstr "Attendre que la prévisualisation soit mise à jour" -#: ../src/iop/toneequal.c:2037 ../src/iop/toneequal.c:2587 +#: ../src/iop/toneequal.c:2069 ../src/iop/toneequal.c:2628 msgid "" "scroll over image to change tone exposure\n" "shift+scroll for large steps; ctrl+scroll for small steps" @@ -19822,89 +20528,89 @@ "Maj+défiler pour un changement grossier • Ctrl+défiler pour un changement " "précis." -#: ../src/iop/toneequal.c:2185 +#: ../src/iop/toneequal.c:2201 msgid "some parameters are out-of-bounds" msgstr "Certains paramètres sont hors limites" -#: ../src/iop/toneequal.c:2524 +#: ../src/iop/toneequal.c:2518 #, c-format msgid "%+.1f EV" msgstr "%+.1f IL" -#: ../src/iop/toneequal.c:3236 +#: ../src/iop/toneequal.c:3283 #, c-format msgid "[%s over image] change tone exposure" msgstr "[%s sur l’image] Changer l’exposition du ton" -#: ../src/iop/toneequal.c:3239 +#: ../src/iop/toneequal.c:3286 #, c-format msgid "[%s over image] change tone exposure in large steps" msgstr "[%s sur l’image] Changer l’exposition du ton (grossièrement)" -#: ../src/iop/toneequal.c:3242 +#: ../src/iop/toneequal.c:3289 #, c-format msgid "[%s over image] change tone exposure in small steps" msgstr "[%s sur l’image] Changer l’exposition du ton (finement)" #. Simple view -#: ../src/iop/toneequal.c:3323 ../src/iop/toneequal.c:3352 -#: ../src/iop/toneequal.c:3353 ../src/iop/toneequal.c:3354 -#: ../src/iop/toneequal.c:3355 ../src/iop/toneequal.c:3356 -#: ../src/iop/toneequal.c:3357 ../src/iop/toneequal.c:3358 -#: ../src/iop/toneequal.c:3359 ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3376 ../src/iop/toneequal.c:3405 +#: ../src/iop/toneequal.c:3406 ../src/iop/toneequal.c:3407 +#: ../src/iop/toneequal.c:3408 ../src/iop/toneequal.c:3409 +#: ../src/iop/toneequal.c:3410 ../src/iop/toneequal.c:3411 +#: ../src/iop/toneequal.c:3412 ../src/iop/toneequal.c:3413 msgid "simple" msgstr "Simple" -#: ../src/iop/toneequal.c:3352 +#: ../src/iop/toneequal.c:3405 msgid "-8 EV" msgstr "–8 IL" -#: ../src/iop/toneequal.c:3353 +#: ../src/iop/toneequal.c:3406 msgid "-7 EV" msgstr "–7 IL" -#: ../src/iop/toneequal.c:3354 +#: ../src/iop/toneequal.c:3407 msgid "-6 EV" msgstr "–6 IL" -#: ../src/iop/toneequal.c:3355 +#: ../src/iop/toneequal.c:3408 msgid "-5 EV" msgstr "–5 IL" -#: ../src/iop/toneequal.c:3356 +#: ../src/iop/toneequal.c:3409 msgid "-4 EV" msgstr "–4 IL" -#: ../src/iop/toneequal.c:3357 +#: ../src/iop/toneequal.c:3410 msgid "-3 EV" msgstr "–3 IL" -#: ../src/iop/toneequal.c:3358 +#: ../src/iop/toneequal.c:3411 msgid "-2 EV" msgstr "–2 IL" -#: ../src/iop/toneequal.c:3359 +#: ../src/iop/toneequal.c:3412 msgid "-1 EV" msgstr "–1 IL" -#: ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3413 msgid "+0 EV" msgstr "+0 IL" #. Advanced view -#: ../src/iop/toneequal.c:3364 +#: ../src/iop/toneequal.c:3417 msgid "advanced" msgstr "Avancé" -#: ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3444 msgid "double-click to reset the curve" msgstr "Double clic pour réinitialiser la courbe" -#: ../src/iop/toneequal.c:3395 +#: ../src/iop/toneequal.c:3448 msgid "curve smoothing" msgstr "Lissage de la courbe" -#: ../src/iop/toneequal.c:3398 +#: ../src/iop/toneequal.c:3451 msgid "" "positive values will produce more progressive tone transitions\n" "but the curve might become oscillatory in some settings.\n" @@ -19919,11 +20625,11 @@ "endommagé." #. Masking options -#: ../src/iop/toneequal.c:3408 +#: ../src/iop/toneequal.c:3461 msgid "masking" msgstr "Masque" -#: ../src/iop/toneequal.c:3413 +#: ../src/iop/toneequal.c:3466 msgid "" "preview the mask and chose the estimator that gives you the\n" "higher contrast between areas to dodge and areas to burn" @@ -19931,15 +20637,15 @@ "Prévisualiser le masque et choisir l’estimateur donnant le contraste\n" "le plus important entre les zones à éclaircir et celles à assombrir." -#: ../src/iop/toneequal.c:3416 +#: ../src/iop/toneequal.c:3469 msgid "details" msgstr "Détails" -#: ../src/iop/toneequal.c:3417 +#: ../src/iop/toneequal.c:3470 msgid "preserve details" msgstr "Préserver les détails" -#: ../src/iop/toneequal.c:3420 +#: ../src/iop/toneequal.c:3473 msgid "" "'no' affects global and local contrast (safe if you only add contrast)\n" "'guided filter' only affects global contrast and tries to preserve local " @@ -19964,7 +20670,7 @@ "lumières)\n" " • Moyenne EIGF – une moyenne géométrique des méthodes « Non » et « EIGF »" -#: ../src/iop/toneequal.c:3433 +#: ../src/iop/toneequal.c:3486 msgid "" "number of passes of guided filter to apply\n" "helps diffusing the edges of the filter at the expense of speed" @@ -19972,7 +20678,7 @@ "Nombre de passes du filtre guidé à appliquer,\n" "aide à diffuser les bords du filtre mais dégrade les performances." -#: ../src/iop/toneequal.c:3441 +#: ../src/iop/toneequal.c:3494 msgid "" "diameter of the blur in percent of the largest image size\n" "warning: big values of this parameter can make the darkroom\n" @@ -19983,7 +20689,7 @@ "la prévisualisation si le module de réduction du bruit par profil est " "utilisé." -#: ../src/iop/toneequal.c:3449 +#: ../src/iop/toneequal.c:3502 msgid "" "precision of the feathering:\n" "higher values force the mask to follow edges more closely\n" @@ -19999,12 +20705,12 @@ "adoucissement\n" "mais peuvent créer des bords peu précis et des halos." -#: ../src/iop/toneequal.c:3456 +#: ../src/iop/toneequal.c:3509 msgctxt "section" msgid "mask post-processing" msgstr "Masque de post-traitement" -#: ../src/iop/toneequal.c:3467 +#: ../src/iop/toneequal.c:3520 msgid "" "mask histogram span between the first and last deciles.\n" "the central line shows the average. orange bars appear at extrema if " @@ -20014,7 +20720,7 @@ "La ligne centrale montre la moyenne. Des barres oranges apparaissent aux " "extrémités si troncature." -#: ../src/iop/toneequal.c:3475 +#: ../src/iop/toneequal.c:3528 msgid "" "0 disables the quantization.\n" "higher values posterize the luminance mask to help the guiding\n" @@ -20025,7 +20731,7 @@ "à produire des zones plus lisses lors de l’utilisation de grandes valeurs de " "raffinement." -#: ../src/iop/toneequal.c:3484 +#: ../src/iop/toneequal.c:3537 msgid "" "use this to slide the mask average exposure along channels\n" "for a better control of the exposure correction with the available nodes.\n" @@ -20037,7 +20743,7 @@ "disponibles.\n" "La baguette magique ajustera automatiquement l’exposition moyenne." -#: ../src/iop/toneequal.c:3497 +#: ../src/iop/toneequal.c:3550 msgid "" "use this to counter the averaging effect of the guided filter\n" "and dilate the mask contrast around -4EV\n" @@ -20051,7 +20757,7 @@ "pour un meilleur contrôle de la correction d’exposition.\n" "La baguette magique ajustera automatiquement le contraste." -#: ../src/iop/toneequal.c:3520 ../src/iop/toneequal.c:3523 +#: ../src/iop/toneequal.c:3573 ../src/iop/toneequal.c:3576 msgid "display exposure mask" msgstr "Affiche le masque d’exposition" @@ -20067,22 +20773,22 @@ "Ce module est déprécié, utiliser « Égaliseur de tons » ou « Contraste " "local » à la place." -#: ../src/iop/velvia.c:79 +#: ../src/iop/velvia.c:70 msgid "velvia" msgstr "Velvia" -#: ../src/iop/velvia.c:104 +#: ../src/iop/velvia.c:97 msgid "" "resaturate giving more weight to blacks, whites and low-saturation pixels" msgstr "" "Resature en donnant plus de poids au noirs, blancs\n" "et pixels faiblement saturés" -#: ../src/iop/velvia.c:281 +#: ../src/iop/velvia.c:290 msgid "the strength of saturation boost" msgstr "Force de la saturation" -#: ../src/iop/velvia.c:284 +#: ../src/iop/velvia.c:293 msgid "how much to spare highlights and shadows" msgstr "Répartit l’effet entre les ombres et les hautes lumières" @@ -20095,7 +20801,7 @@ "Ce module est déprécié, utiliser le contrôle « Vibrance globale » du module " "« Balance de couleur RVB »." -#: ../src/iop/vibrance.c:93 +#: ../src/iop/vibrance.c:95 msgid "" "saturate and reduce the lightness of the most saturated pixels\n" "to make the colors more vivid." @@ -20103,56 +20809,52 @@ "Sature et réduit la luminosité des pixels les plus saturés\n" "pour rendre les couleurs plus vives." -#: ../src/iop/vibrance.c:217 +#: ../src/iop/vibrance.c:211 msgid "the amount of vibrance" msgstr "Quantité de vibrance" -#: ../src/iop/vignette.c:153 -msgid "vignetting" -msgstr "Vignetage" - -#: ../src/iop/vignette.c:158 +#: ../src/iop/vignette.c:119 msgid "simulate a lens fall-off close to edges" msgstr "Simule la perte de lumière proche des bords d’un objectif" -#: ../src/iop/vignette.c:940 +#: ../src/iop/vignette.c:1022 msgid "lomo" msgstr "Lomo" -#: ../src/iop/vignette.c:974 +#: ../src/iop/vignette.c:1061 msgctxt "section" msgid "position / form" msgstr "Position / Forme" -#: ../src/iop/vignette.c:981 +#: ../src/iop/vignette.c:1069 msgid "dithering" msgstr "Homogénéisation" -#: ../src/iop/vignette.c:992 +#: ../src/iop/vignette.c:1081 msgid "the radii scale of vignette for start of fall-off" msgstr "Rayon de début du dégradé" -#: ../src/iop/vignette.c:993 +#: ../src/iop/vignette.c:1083 msgid "the radii scale of vignette for end of fall-off" msgstr "Progressivité du dégradé" -#: ../src/iop/vignette.c:994 +#: ../src/iop/vignette.c:1084 msgid "strength of effect on brightness" msgstr "Force de l’effet sur la luminosité" -#: ../src/iop/vignette.c:995 +#: ../src/iop/vignette.c:1085 msgid "strength of effect on saturation" msgstr "Force de l’effet sur la saturation" -#: ../src/iop/vignette.c:996 +#: ../src/iop/vignette.c:1086 msgid "horizontal offset of center of the effect" msgstr "Décalage horizontal du centre" -#: ../src/iop/vignette.c:997 +#: ../src/iop/vignette.c:1087 msgid "vertical offset of center of the effect" msgstr "Décalage vertical du centre" -#: ../src/iop/vignette.c:998 +#: ../src/iop/vignette.c:1090 msgid "" "shape factor\n" "0 produces a rectangle\n" @@ -20164,48 +20866,48 @@ " • 1 – cercle ou ellipse\n" " • 2 – losange" -#: ../src/iop/vignette.c:1000 +#: ../src/iop/vignette.c:1094 msgid "enable to have the ratio automatically follow the image size" msgstr "" "Règle le ratio hauteur/largeur pour qu’il soit identique à la taille de " "l’image" -#: ../src/iop/vignette.c:1001 +#: ../src/iop/vignette.c:1095 msgid "width-to-height ratio" msgstr "Ratio entre la largeur et la hauteur" -#: ../src/iop/vignette.c:1002 +#: ../src/iop/vignette.c:1097 msgid "add some level of random noise to prevent banding" msgstr "Ajoute du bruit aléatoire pour éviter l’apparition de bandes" -#: ../src/iop/vignette.c:1009 +#: ../src/iop/vignette.c:1105 #, c-format msgid "[%s on node] change vignette/feather size" msgstr "[%s sur nœud ] Changer la miniature/l’adoucissement" -#: ../src/iop/vignette.c:1011 +#: ../src/iop/vignette.c:1108 #, c-format msgid "[%s on node] change vignette/feather size keeping ratio" msgstr "[%s sur nœud] Changer la miniature/taille dégradé et garde le ratio" -#: ../src/iop/vignette.c:1013 +#: ../src/iop/vignette.c:1111 #, c-format msgid "[%s on center] move vignette" msgstr "[%s au centre] Déplacer la vignette" -#: ../src/iop/watermark.c:371 +#: ../src/iop/watermark.c:416 msgid "watermark" msgstr "Filigrane" -#: ../src/iop/watermark.c:376 +#: ../src/iop/watermark.c:421 msgid "overlay an SVG watermark like a signature on the picture" msgstr "Superpose un filigrane SVG, une signature par exemple" -#: ../src/iop/watermark.c:1258 +#: ../src/iop/watermark.c:1306 msgid "marker" msgstr "Fichier" -#: ../src/iop/watermark.c:1261 +#: ../src/iop/watermark.c:1309 #, c-format msgid "SVG watermarks in %s/watermarks or %s/watermarks" msgstr "" @@ -20213,11 +20915,11 @@ "ou « %s/watermarks »" #. Simple text -#: ../src/iop/watermark.c:1271 ../src/iop/watermark.c:1272 +#: ../src/iop/watermark.c:1319 ../src/iop/watermark.c:1320 msgid "text" msgstr "Texte" -#: ../src/iop/watermark.c:1273 +#: ../src/iop/watermark.c:1321 msgid "" "text string, tag:\n" "$(WATERMARK_TEXT)" @@ -20225,16 +20927,16 @@ "Texte, variable :\n" "$(WATERMARK_TEXT)" -#: ../src/iop/watermark.c:1275 +#: ../src/iop/watermark.c:1323 msgid "content" msgstr "Contenu" #. Text font -#: ../src/iop/watermark.c:1280 +#: ../src/iop/watermark.c:1328 msgid "font" msgstr "Police" -#: ../src/iop/watermark.c:1285 +#: ../src/iop/watermark.c:1333 msgid "" "text font, tags:\n" "$(WATERMARK_FONT_FAMILY)\n" @@ -20246,7 +20948,7 @@ "$(WATERMARK_FONT_STYLE)\n" "$(WATERMARK_FONT_WEIGHT)" -#: ../src/iop/watermark.c:1300 +#: ../src/iop/watermark.c:1348 msgid "" "watermark color, tag:\n" "$(WATERMARK_COLOR)" @@ -20254,60 +20956,64 @@ "Couleur du filigrane, variable :\n" "$(WATERMARK_COLOR)" -#: ../src/iop/watermark.c:1302 +#: ../src/iop/watermark.c:1350 msgid "select watermark color" msgstr "Sélectionne la couleur du filigrane" -#: ../src/iop/watermark.c:1304 +#: ../src/iop/watermark.c:1352 msgid "pick color from image" msgstr "Choisit une couleur dans l’image" -#: ../src/iop/watermark.c:1317 +#: ../src/iop/watermark.c:1365 msgctxt "section" msgid "placement" msgstr "Placement" -#: ../src/iop/watermark.c:1330 +#: ../src/iop/watermark.c:1378 msgid "" -"scaling is done relative to this object\n" -"• image: fits marker into whole image\n" -"• larger border: fits larger marker border to larger image border\n" -"• smaller border: fits larger marker border to smaller image border\n" -"• height: fits marker height to image height, e.g. suitable for texts\n" -"• advanced options: activates two additional drop-down menus" -msgstr "" -"L'échelle est faite par rapport à ce choix:\n" -"• Image – Ajuste le filigrane sur l'image complète\n" -"• Grand coté – Ajuste le plus grand coté du filigrane sur le plus grand coté " -"de l'image\n" -"• Petit coté – Ajuste le plus grand coté du filigrane sur le plus petit coté " -"de l'image\n" -"• Hauteur – Ajuste la hauteur du filigrane sur la hauteur de l'image, i.e. " -"adapté aux textes\n" -"• Options avancées – Active deux menus additionnels" - -#: ../src/iop/watermark.c:1339 -msgid "reference to which the marker should be scaled to" -msgstr "La référence à utiliser pour l'échelle du filigrane" - -#: ../src/iop/watermark.c:1343 -msgid "length of the marker which is used as scaling reference" -msgstr "La dimension du filigrane utilisée comme échelle de référence" +"choose how to scale the watermark\n" +"• image: scale watermark relative to whole image\n" +"• larger border: scale larger watermark border relative to larger image " +"border\n" +"• smaller border: scale larger watermark border relative to smaller image " +"border\n" +"• height: scale watermark height to image height\n" +"• advanced options: choose watermark and image dimensions independently" +msgstr "" +"Définit comment la taille du filigrane est calculée :\n" +" • Image – Ajuste le filigrane sur l'image complète\n" +" • Grand coté – Ajuste le plus grand coté du filigrane sur le plus grand " +"coté de l'image\n" +" • Petit coté – Ajuste le plus grand coté du filigrane sur le plus petit " +"coté de l'image\n" +" • Hauteur – Ajuste la hauteur du filigrane sur la hauteur de l'image,\n" +" • Options avancées – Permet de choisir les dimensions de l'image et du " +"filigrane indépendamment" + +#: ../src/iop/watermark.c:1387 +msgid "reference image dimension against which to scale the watermark" +msgstr "" +"la dimension de référence de l'image à partir de laquelle mettre le " +"filigrane à l'échelle" + +#: ../src/iop/watermark.c:1391 +msgid "watermark dimension to scale" +msgstr "dimension du filigrane à mettre à l'échelle" -#: ../src/iop/watermark.c:1347 ../src/libs/print_settings.c:2675 +#: ../src/iop/watermark.c:1395 ../src/libs/print_settings.c:2675 msgid "alignment" msgstr "Alignement" #. Let's add some tooltips and hook up some signals... -#: ../src/iop/watermark.c:1368 +#: ../src/iop/watermark.c:1416 msgid "the opacity of the watermark" msgstr "Opacité du filigrane" -#: ../src/iop/watermark.c:1369 +#: ../src/iop/watermark.c:1417 msgid "the scale of the watermark" msgstr "Taille du filigrane" -#: ../src/iop/watermark.c:1370 +#: ../src/iop/watermark.c:1418 msgid "the rotation of the watermark" msgstr "La rotation du filigrane" @@ -20315,7 +21021,7 @@ msgid "zone system" msgstr "Zones" -#: ../src/iop/zonesystem.c:490 +#: ../src/iop/zonesystem.c:486 msgid "" "lightness zones\n" "use mouse scrollwheel to change the number of zones\n" @@ -20357,7 +21063,7 @@ msgid "camera control" msgstr "Pilotage du boîtier" -#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2360 +#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2679 msgid "modes" msgstr "Modes" @@ -20463,39 +21169,52 @@ msgid "WB" msgstr "BdB" -#: ../src/libs/collect.c:151 +#: ../src/libs/collect.c:164 msgid "collections" msgstr "Collections" -#: ../src/libs/collect.c:407 +#: ../src/libs/collect.c:424 msgid "search filmroll" msgstr "Rechercher une pellicule" -#: ../src/libs/collect.c:490 +#: ../src/libs/collect.c:507 #, c-format msgid "problem selecting new path for the filmroll in %s" msgstr "" "Problème lors de la sélection d’un nouveau chemin pour la pellicule située " "dans %s" -#: ../src/libs/collect.c:553 +#: ../src/libs/collect.c:579 msgid "search filmroll..." msgstr "Rechercher une pellicule" # lorsque l’action n’engendre pas de suppression physique, on emploie le terme "enlever" -#: ../src/libs/collect.c:557 +#: ../src/libs/collect.c:584 msgid "remove..." msgstr "Enlever" -#: ../src/libs/collect.c:1225 +#: ../src/libs/collect.c:1310 msgid "uncategorized" msgstr "Sans catégorie" -#: ../src/libs/collect.c:2138 +#: ../src/libs/collect.c:2172 ../src/libs/filters/rating_range.c:120 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:151 +#: ../src/libs/filters/rating_range.c:302 +msgid "rejected" +msgstr "Rejeté" + +#: ../src/libs/collect.c:2175 ../src/libs/filters/rating_range.c:122 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:303 +msgid "not rated" +msgstr "Sans note" + +#: ../src/libs/collect.c:2359 msgid "use <, <=, >, >=, <>, =, [;] as operators" msgstr "Utiliser <, ≤, >, ≥, <>, =, [;] comme opérateurs" -#: ../src/libs/collect.c:2142 +#: ../src/libs/collect.c:2363 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "star rating: 0-5\n" @@ -20505,7 +21224,7 @@ "Étoiles : 0-5\n" "Images rejetées : –1" -#: ../src/libs/collect.c:2149 +#: ../src/libs/collect.c:2371 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)" @@ -20514,12 +21233,12 @@ "Entrer les dates au format «  aaaa:mm:jj hh:mm:ss.sss » (seule l’année est " "requise)." -#: ../src/libs/collect.c:2156 +#: ../src/libs/collect.c:2378 #, no-c-format msgid "use `%' as wildcard and `,' to separate values" msgstr "Utiliser « % » en caractère joker et « , » pour séparer les valeurs" -#: ../src/libs/collect.c:2162 +#: ../src/libs/collect.c:2385 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20533,7 +21252,7 @@ " • Maj+clic pour inclure seulement la hiérarchie courante (sans suffixe),\n" " • Ctrl+clic pour inclure les sous-hiérarchies seulement (suffixe « |% »)." -#: ../src/libs/collect.c:2174 +#: ../src/libs/collect.c:2398 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20547,7 +21266,7 @@ " • Maj+clic pour inclure seulement l’emplacement courant (sans suffixe),\n" " • Ctrl+clic pour inclure les sous-emplacements seulement (suffixe « |% »)." -#: ../src/libs/collect.c:2186 +#: ../src/libs/collect.c:2411 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20561,111 +21280,103 @@ " • Maj+clic pour inclure seulement le dossiercourant (sans suffixe),\n" " • Ctrl+clic pour inclure les sous-dossiers seulement (suffixe « |% »)." -#: ../src/libs/collect.c:2197 +#: ../src/libs/collect.c:2422 #, no-c-format msgid "use `%' as wildcard" msgstr "Utiliser « % » en caractère joker" -#: ../src/libs/collect.c:2263 ../src/libs/collect.c:2277 -#: ../src/libs/collect.c:2800 +#: ../src/libs/collect.c:2488 ../src/libs/collect.c:2502 +#: ../src/libs/collect.c:3111 msgid "clear this rule" msgstr "Supprimer cette condition" -#: ../src/libs/collect.c:2267 +#: ../src/libs/collect.c:2492 msgid "clear this rule or add new rules" msgstr "Supprimer cette condition ou en ajouter une nouvelle" -#: ../src/libs/collect.c:2806 +#: ../src/libs/collect.c:3117 msgid "narrow down search" msgstr "Affiner la recherche" -#: ../src/libs/collect.c:2811 +#: ../src/libs/collect.c:3124 msgid "add more images" msgstr "Inclure des images" -#: ../src/libs/collect.c:2816 +#: ../src/libs/collect.c:3131 msgid "exclude images" msgstr "Exclure des images" -#: ../src/libs/collect.c:2823 +#: ../src/libs/collect.c:3140 msgid "change to: and" msgstr "Changer en « et »" -#: ../src/libs/collect.c:2828 +#: ../src/libs/collect.c:3147 msgid "change to: or" msgstr "Changer en « ou »" -#: ../src/libs/collect.c:2833 +#: ../src/libs/collect.c:3154 msgid "change to: except" msgstr "Changer en « sauf »" #. the different categories -#: ../src/libs/collect.c:2859 ../src/libs/filtering.c:857 -#: ../src/libs/filtering.c:924 ../src/libs/filtering.c:1558 -#: ../src/libs/filtering.c:1890 +#: ../src/libs/collect.c:3184 ../src/libs/filtering.c:883 +#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1620 +#: ../src/libs/filtering.c:1964 msgid "files" msgstr "Fichiers" -#: ../src/libs/collect.c:2864 ../src/libs/export_metadata.c:312 -#: ../src/libs/filtering.c:862 ../src/libs/filtering.c:929 -#: ../src/libs/filtering.c:1566 ../src/libs/filtering.c:1894 -#: ../src/libs/image.c:464 ../src/libs/image.c:574 ../src/libs/image.c:582 -#: ../src/libs/metadata.c:676 ../src/libs/metadata_view.c:1226 +#: ../src/libs/collect.c:3189 ../src/libs/export_metadata.c:301 +#: ../src/libs/filtering.c:888 ../src/libs/filtering.c:955 +#: ../src/libs/filtering.c:1628 ../src/libs/filtering.c:1968 +#: ../src/libs/image.c:495 ../src/libs/image.c:633 ../src/libs/image.c:645 +#: ../src/libs/metadata.c:509 ../src/libs/metadata_view.c:1256 msgid "metadata" msgstr "Métadonnées" -#: ../src/libs/collect.c:2883 ../src/libs/filtering.c:883 -#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1892 +#: ../src/libs/collect.c:3208 ../src/libs/filtering.c:909 +#: ../src/libs/filtering.c:976 ../src/libs/filtering.c:1966 msgid "times" msgstr "Dates" -#: ../src/libs/collect.c:2891 ../src/libs/filtering.c:891 -#: ../src/libs/filtering.c:958 ../src/libs/filtering.c:1590 +#: ../src/libs/collect.c:3216 ../src/libs/filtering.c:917 +#: ../src/libs/filtering.c:984 ../src/libs/filtering.c:1652 msgid "capture details" msgstr "Détails de prise de vue" -#: ../src/libs/collect.c:2900 ../src/libs/filtering.c:900 -#: ../src/libs/filtering.c:967 ../src/libs/filtering.c:1602 -#: ../src/libs/filtering.c:1896 ../src/libs/tools/darktable.c:65 +#: ../src/libs/collect.c:3225 ../src/libs/filtering.c:926 +#: ../src/libs/filtering.c:993 ../src/libs/filtering.c:1664 +#: ../src/libs/filtering.c:1970 ../src/libs/tools/darktable.c:61 msgid "darktable" msgstr "darktable" -#: ../src/libs/collect.c:2913 +#: ../src/libs/collect.c:3240 msgid "collections settings" msgstr "Préférences des collections" -#: ../src/libs/collect.c:2916 ../src/libs/export_metadata.c:288 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:228 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3472 -msgid "save" -msgstr "Enregistrer" - -#: ../src/libs/collect.c:2936 ../src/libs/export.c:1046 -#: ../src/libs/metadata.c:779 ../src/libs/metadata_view.c:1306 -#: ../src/libs/recentcollect.c:293 ../src/libs/tagging.c:3494 +#: ../src/libs/collect.c:3267 ../src/libs/export.c:1126 +#: ../src/libs/metadata.c:615 ../src/libs/metadata_view.c:1339 +#: ../src/libs/recentcollect.c:295 ../src/libs/tagging.c:3526 msgid "preferences..." msgstr "Préférences…" -#: ../src/libs/collect.c:3041 ../src/libs/filtering.c:1432 +#: ../src/libs/collect.c:3388 ../src/libs/filtering.c:1494 msgid "AND" msgstr "ET" -#: ../src/libs/collect.c:3046 ../src/libs/filtering.c:1437 +#: ../src/libs/collect.c:3393 ../src/libs/filtering.c:1499 msgid "OR" msgstr "OU" #. case DT_LIB_COLLECT_MODE_AND_NOT: -#: ../src/libs/collect.c:3051 ../src/libs/filtering.c:1442 +#: ../src/libs/collect.c:3398 ../src/libs/filtering.c:1504 msgid "BUT NOT" msgstr "SAUF" -#: ../src/libs/collect.c:3223 ../src/libs/filtering.c:2164 +#: ../src/libs/collect.c:3588 ../src/libs/filtering.c:2238 msgid "revert to a previous set of rules" msgstr "Basculer vers une règle précédente" -#: ../src/libs/collect.c:3280 +#: ../src/libs/collect.c:3671 msgid "jump back to previous collection" msgstr "Aller à la collection précédente" @@ -20689,7 +21400,7 @@ msgid "color picker" msgstr "Pipette de couleur" -#: ../src/libs/colorpicker.c:463 +#: ../src/libs/colorpicker.c:513 msgid "" "hover to highlight sample on canvas,\n" "click to lock sample,\n" @@ -20699,23 +21410,23 @@ " • Cliquer pour verrouiller l’échantillon,\n" " • Clic droit pour charger l’échantillon dans la zone active de la pipette." -#: ../src/libs/colorpicker.c:561 ../src/libs/colorpicker.c:612 +#: ../src/libs/colorpicker.c:626 ../src/libs/colorpicker.c:693 msgid "click to (un)hide large color patch" msgstr "Cacher/montrer le grand patch de couleur" -#: ../src/libs/colorpicker.c:575 +#: ../src/libs/colorpicker.c:649 msgid "statistic" msgstr "Statistique" -#: ../src/libs/colorpicker.c:576 +#: ../src/libs/colorpicker.c:650 msgid "select which statistic to show" msgstr "Sélectionner les statistiques à afficher" -#: ../src/libs/colorpicker.c:585 +#: ../src/libs/colorpicker.c:660 msgid "select which color mode to use" msgstr "Sélectionner le mode de couleur à utiliser" -#: ../src/libs/colorpicker.c:594 +#: ../src/libs/colorpicker.c:671 msgid "" "turn on color picker\n" "ctrl+click or right-click to select an area" @@ -20723,21 +21434,21 @@ "Active la pipette de couleur.\n" "Ctrl+clic ou clic droit pour sélectionner une zone." -#: ../src/libs/colorpicker.c:636 +#: ../src/libs/colorpicker.c:722 msgid "add sample" msgstr "Ajouter un échantillon" #. Adding the live samples section -#: ../src/libs/colorpicker.c:640 +#: ../src/libs/colorpicker.c:727 msgctxt "section" msgid "live samples" msgstr "Échantillons en temps réel" -#: ../src/libs/colorpicker.c:648 +#: ../src/libs/colorpicker.c:738 msgid "display samples on image/vectorscope" msgstr "Afficher sur l’image/vectorscope" -#: ../src/libs/colorpicker.c:657 +#: ../src/libs/colorpicker.c:749 msgid "restrict scope to selection" msgstr "Restreindre le scope à la sélection" @@ -20750,10 +21461,6 @@ msgid "open sidecar file" msgstr "Ouvrir un fichier XMP" -#: ../src/libs/copy_history.c:149 -msgid "XMP sidecar files" -msgstr "Fichiers XMP" - #: ../src/libs/copy_history.c:166 #, c-format msgid "error loading file '%s'" @@ -20801,7 +21508,7 @@ msgid "choose which modules to paste to the target image(s)" msgstr "Choisir les modules à coller aux images cibles" -#: ../src/libs/copy_history.c:382 ../src/libs/image.c:588 +#: ../src/libs/copy_history.c:382 ../src/libs/image.c:655 msgid "paste" msgstr "Coller" @@ -20833,11 +21540,11 @@ "Supprimer l’historique de développement\n" "des images sélectionnées." -#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:847 +#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:851 msgid "how to handle existing history" msgstr "Gestion des développements pré-existants" -#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:850 +#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:854 msgid "append" msgstr "Empiler" @@ -20859,89 +21566,96 @@ "Écrit le développement et les mots-clés\n" "dans un fichier attaché XMP." -#: ../src/libs/duplicate.c:56 +#: ../src/libs/duplicate.c:60 msgid "duplicate manager" msgstr "Gestion des clones" -#: ../src/libs/duplicate.c:401 +#: ../src/libs/duplicate.c:407 msgid "create a 'virgin' duplicate of the image without any development" msgstr "Créer un clone vierge, sans aucune étape de développement" -#: ../src/libs/duplicate.c:406 +#: ../src/libs/duplicate.c:412 msgid "create a duplicate of the image with same history stack" msgstr "Créer un clone ayant le même historique" -#. Export button -#: ../src/libs/export.c:153 ../src/libs/export.c:1281 +#: ../src/libs/export.c:160 msgid "export" msgstr "Exporter" #: ../src/libs/export.c:306 +msgid "invalid format for export selected" +msgstr "Format invalide pour l'export sélectionné" + +#: ../src/libs/export.c:311 +msgid "invalid storage for export selected" +msgstr "Stockage invalide pour l'export sélectionné" + +#: ../src/libs/export.c:322 msgid "export to disk" msgstr "Exportation sur disque" -#: ../src/libs/export.c:485 +#: ../src/libs/export.c:516 #, c-format msgid "which is equal to %s × %s px" msgstr "Est équivalent à %s x %s px" -#: ../src/libs/export.c:520 +#: ../src/libs/export.c:555 msgctxt "unit" msgid "in" msgstr "\"" -#: ../src/libs/export.c:1060 +#: ../src/libs/export.c:1141 msgctxt "section" msgid "storage options" msgstr "Options d’enregistrement" -#: ../src/libs/export.c:1064 +#: ../src/libs/export.c:1145 msgid "target storage" msgstr "Stockage cible" -#: ../src/libs/export.c:1086 +#: ../src/libs/export.c:1171 msgctxt "section" msgid "format options" msgstr "Options de format" -#: ../src/libs/export.c:1090 +#: ../src/libs/export.c:1175 msgid "file format" msgstr "Format de fichier" -#: ../src/libs/export.c:1107 +#: ../src/libs/export.c:1193 msgctxt "section" msgid "global options" msgstr "Options globales" -#: ../src/libs/export.c:1110 +#: ../src/libs/export.c:1196 msgid "set size" msgstr "Taille" -#: ../src/libs/export.c:1111 +#: ../src/libs/export.c:1197 msgid "choose a method for setting the output size" msgstr "Choisir une méthode pour exprimer la taille du fichier de sortie" -#: ../src/libs/export.c:1114 +#: ../src/libs/export.c:1200 msgid "in pixels (for file)" msgstr "En pixels (pour un fichier)" -#: ../src/libs/export.c:1115 +#: ../src/libs/export.c:1201 msgid "in cm (for print)" msgstr "En cm (pour impression)" -#: ../src/libs/export.c:1116 +#: ../src/libs/export.c:1202 msgid "in inch (for print)" msgstr "En pouce (pour impression)" -#: ../src/libs/export.c:1117 +#: ../src/libs/export.c:1203 msgid "by scale (for file)" msgstr "Par facteur (pour un fichier)" -#: ../src/libs/export.c:1119 +#: ../src/libs/export.c:1206 msgid "print width" msgstr "Largeur d’impression" -#: ../src/libs/export.c:1120 ../src/libs/export.c:1132 +#: ../src/libs/export.c:1208 ../src/libs/export.c:1225 msgid "" "maximum output width limit.\n" "click middle mouse button to reset to 0." @@ -20949,11 +21663,11 @@ "Largeur maximum du fichier de sortie.\n" "Clic milieu pour réinitialiser à 0." -#: ../src/libs/export.c:1123 +#: ../src/libs/export.c:1212 msgid "print height" msgstr "Hauteur d’impression" -#: ../src/libs/export.c:1124 ../src/libs/export.c:1136 +#: ../src/libs/export.c:1214 ../src/libs/export.c:1231 msgid "" "maximum output height limit.\n" "click middle mouse button to reset to 0." @@ -20961,19 +21675,19 @@ "Hauteur maximum du fichier de sortie.\n" "Clic milieu pour réinitialiser à 0." -#: ../src/libs/export.c:1128 +#: ../src/libs/export.c:1220 msgid "resolution in dot per inch" msgstr "Résolution en points par pouce" -#: ../src/libs/export.c:1148 +#: ../src/libs/export.c:1244 msgid "@" msgstr "@" -#: ../src/libs/export.c:1161 ../src/libs/tools/global_toolbox.c:217 +#: ../src/libs/export.c:1258 ../src/libs/tools/global_toolbox.c:217 msgid "px" msgstr "px" -#: ../src/libs/export.c:1166 +#: ../src/libs/export.c:1266 msgid "" "it can be an integer, decimal number or simple fraction.\n" "zero or empty values are equal to 1.\n" @@ -20983,38 +21697,38 @@ " • Zéro ou sans valeur est équivalent à 1,\n" " • Clic milieu pour réinitialiser à 1." -#: ../src/libs/export.c:1185 +#: ../src/libs/export.c:1292 msgid "allow upscaling" msgstr "Autorise l’agrandissement" -#: ../src/libs/export.c:1191 +#: ../src/libs/export.c:1301 msgid "high quality resampling" msgstr "Échantillonnage de haute qualité" -#: ../src/libs/export.c:1192 +#: ../src/libs/export.c:1302 msgid "do high quality resampling during export" msgstr "Ré-échantillonnage de haute qualité lors de l’exportation" -#: ../src/libs/export.c:1198 +#: ../src/libs/export.c:1310 msgid "store masks" msgstr "Enregistre les masques" -#: ../src/libs/export.c:1199 +#: ../src/libs/export.c:1311 msgid "store masks as layers in exported images. only works for some formats." msgstr "" "Enregistre les masques comme couches dans les images exportées,\n" "uniquement pour certains formats." -#: ../src/libs/export.c:1210 ../src/libs/export.c:1245 +#: ../src/libs/export.c:1322 ../src/libs/export.c:1357 #: ../src/libs/print_settings.c:2777 ../src/libs/print_settings.c:2823 msgid "image settings" msgstr "Paramètres d’image" -#: ../src/libs/export.c:1220 ../src/libs/print_settings.c:2811 +#: ../src/libs/export.c:1332 ../src/libs/print_settings.c:2811 msgid "output ICC profiles" msgstr "profils ICC de sortie" -#: ../src/libs/export.c:1228 +#: ../src/libs/export.c:1340 msgid "" "• perceptual: smoothly moves out-of-gamut colors into gamut, preserving " "gradations,\n" @@ -21049,52 +21763,61 @@ "préservant la saturation\n" "(non adapté à la photographie).\n" "\n" -"• Colorimétrie absolue – adapte le point blanc de l’image au point blanc du " +" • Colorimétrie absolue – adapte le point blanc de l’image au point blanc du " "support de destination\n" "et ne rien faire d’autre. Principalement utilisé lors de l’épreuvage des " "couleurs\n" "(non adapté à la photographie)." -#: ../src/libs/export.c:1255 ../src/libs/print_settings.c:2833 +#: ../src/libs/export.c:1367 ../src/libs/print_settings.c:2833 msgid "style" msgstr "Style" -#: ../src/libs/export.c:1258 +#: ../src/libs/export.c:1370 msgid "temporary style to use while exporting" msgstr "Style temporaire à utiliser à l’exportation" -#: ../src/libs/export.c:1263 ../src/libs/print_settings.c:2876 +#: ../src/libs/export.c:1377 ../src/libs/print_settings.c:2876 msgid "" "whether the style items are appended to the history or replacing the history" msgstr "" "Définit si les éléments du style sont à ajouter à l’historique\n" "ou remplace ce dernier" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "replace history" msgstr "Remplacer l’historique" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "append history" msgstr "Ajouter à l’historique" -#: ../src/libs/export.c:1282 +#: ../src/libs/export.c:1398 +msgctxt "actionbutton" +msgid "export" +msgstr "Exporter" + +#: ../src/libs/export.c:1400 msgid "export with current settings" msgstr "Exporte avec les réglages actuels" -#: ../src/libs/export_metadata.c:163 +#: ../src/libs/export_metadata.c:148 msgid "select tag" msgstr "Sélectionner un mot-clé" -#: ../src/libs/export_metadata.c:164 -msgid "add" -msgstr "Ajouter" +#: ../src/libs/export_metadata.c:150 +msgid "_add" +msgstr "_Ajouter" + +#: ../src/libs/export_metadata.c:151 ../src/libs/geotagging.c:811 +msgid "_done" +msgstr "_Terminé" -#: ../src/libs/export_metadata.c:175 +#: ../src/libs/export_metadata.c:162 msgid "list filter" msgstr "Filtrer la liste" -#: ../src/libs/export_metadata.c:186 +#: ../src/libs/export_metadata.c:173 msgid "" "list of available tags. click 'add' button or double-click on tag to add the " "selected one" @@ -21102,31 +21825,31 @@ "Liste des mots-clés disponibles. Cliquer sur « ajouter » ou double cliquer " "sur un mot-clé pour l’ajouter." -#: ../src/libs/export_metadata.c:287 +#: ../src/libs/export_metadata.c:274 msgid "edit metadata exportation" msgstr "Modification de l’exportation des métadonnées" -#: ../src/libs/export_metadata.c:304 +#: ../src/libs/export_metadata.c:293 msgid "general settings" msgstr "Paramètres généraux" -#: ../src/libs/export_metadata.c:309 +#: ../src/libs/export_metadata.c:298 msgid "EXIF data" -msgstr "Donnée EXIF" +msgstr "Données EXIF" -#: ../src/libs/export_metadata.c:310 +#: ../src/libs/export_metadata.c:299 msgid "export EXIF metadata" msgstr "Exporter les métadonnées EXIF" -#: ../src/libs/export_metadata.c:313 +#: ../src/libs/export_metadata.c:302 msgid "export darktable XMP metadata (from metadata editor module)" msgstr "Exporter les métadonnées XMP (depuis l’éditeur de métadonnées)" -#: ../src/libs/export_metadata.c:323 +#: ../src/libs/export_metadata.c:312 msgid "only embedded" msgstr "Seulement embarqué" -#: ../src/libs/export_metadata.c:324 +#: ../src/libs/export_metadata.c:313 msgid "" "per default the interface sends some (limited) metadata beside the image to " "remote storage.\n" @@ -21142,39 +21865,39 @@ "Si le stockage distant ne supporte pas les métadonnées XMP de darktable, il " "est possible de les définir." -#: ../src/libs/export_metadata.c:330 ../src/libs/image.c:566 +#: ../src/libs/export_metadata.c:319 ../src/libs/image.c:623 msgid "geo tags" msgstr "Géolocalisation" -#: ../src/libs/export_metadata.c:331 +#: ../src/libs/export_metadata.c:320 msgid "export geo tags" msgstr "Exporter les données de géolocalisation" -#: ../src/libs/export_metadata.c:334 +#: ../src/libs/export_metadata.c:323 msgid "export tags (to Xmp.dc.Subject)" msgstr "Exporter les mots-clés (vers Xmp.dc.Subject)" -#: ../src/libs/export_metadata.c:342 +#: ../src/libs/export_metadata.c:331 msgid "private tags" msgstr "Mots-clés privés" -#: ../src/libs/export_metadata.c:343 +#: ../src/libs/export_metadata.c:332 msgid "export private tags" msgstr "Exporter les mots-clés privés" -#: ../src/libs/export_metadata.c:345 +#: ../src/libs/export_metadata.c:334 msgid "synonyms" msgstr "Synonymes" -#: ../src/libs/export_metadata.c:346 +#: ../src/libs/export_metadata.c:335 msgid "export tags synonyms" msgstr "Exporter les synonymes" -#: ../src/libs/export_metadata.c:348 +#: ../src/libs/export_metadata.c:337 msgid "omit hierarchy" msgstr "Omet la hiérarchie" -#: ../src/libs/export_metadata.c:349 +#: ../src/libs/export_metadata.c:338 msgid "" "only the last part of the hierarchical tags is included. can be useful if " "categories are not used" @@ -21182,20 +21905,20 @@ "Seule la dernière partie des mots-clés hiérarchiques est incluse, utile si " "les catégories ne sont pas utilisées." -#: ../src/libs/export_metadata.c:352 +#: ../src/libs/export_metadata.c:341 msgid "hierarchical tags" msgstr "Mots-clés hiérarchiques" -#: ../src/libs/export_metadata.c:353 +#: ../src/libs/export_metadata.c:342 msgid "export hierarchical tags (to Xmp.lr.Hierarchical Subject)" msgstr "" "Exporter les mots-clés hiérarchiques (vers Xmp.lt.Hierarchical Subject)" -#: ../src/libs/export_metadata.c:355 +#: ../src/libs/export_metadata.c:344 msgid "develop history" msgstr "Historique" -#: ../src/libs/export_metadata.c:356 +#: ../src/libs/export_metadata.c:345 msgid "" "export darktable development data (recovery purpose in case of loss of " "database or XMP file)" @@ -21203,19 +21926,19 @@ "Exporter l’historique de développement de darktable (pour récupérer un " "développement en cas de perte des XMP et de la base de données)." -#: ../src/libs/export_metadata.c:363 +#: ../src/libs/export_metadata.c:352 msgid "per metadata settings" msgstr "Configuration par métadonnée" -#: ../src/libs/export_metadata.c:376 +#: ../src/libs/export_metadata.c:364 msgid "redefined tag" msgstr "Mot-clé redéfini" -#: ../src/libs/export_metadata.c:382 +#: ../src/libs/export_metadata.c:370 msgid "formula" msgstr "Formule" -#: ../src/libs/export_metadata.c:385 +#: ../src/libs/export_metadata.c:373 msgid "" "list of calculated metadata\n" "click on '+' button to select and add new metadata\n" @@ -21239,15 +21962,15 @@ "Cliquer sur une cellule pour éditer.\n" "Taper « $( » pour activer la complétion et voir la liste des variables." -#: ../src/libs/export_metadata.c:442 +#: ../src/libs/export_metadata.c:430 msgid "add an output metadata tag" msgstr "Ajoute une métadonnée à l’exportation" -#: ../src/libs/export_metadata.c:447 +#: ../src/libs/export_metadata.c:435 msgid "delete metadata tag" msgstr "Supprime la métadonnée sélectionnée" -#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:128 +#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:130 msgid "full path" msgstr "Chemin complet" @@ -21267,51 +21990,51 @@ msgid "shuffle" msgstr "Mélangé" -#: ../src/libs/filtering.c:263 +#: ../src/libs/filtering.c:269 msgid "collection filters" msgstr "Filtres de collection" -#: ../src/libs/filtering.c:296 +#: ../src/libs/filtering.c:302 msgid "initial setting" msgstr "Paramètres initiaux" -#: ../src/libs/filtering.c:315 +#: ../src/libs/filtering.c:321 msgid "imported: last 24h" msgstr "Importées dans les dernières 24 h" -#: ../src/libs/filtering.c:320 +#: ../src/libs/filtering.c:326 msgid "imported: last 30 days" msgstr "Importées dans les 30 derniers jours" -#: ../src/libs/filtering.c:326 +#: ../src/libs/filtering.c:332 msgid "taken: last 24h" msgstr "Prises dans les dernières 24 h" -#: ../src/libs/filtering.c:330 +#: ../src/libs/filtering.c:336 msgid "taken: last 30 days" msgstr "Prises dans les 30 derniers jours" # commence par ' • ' car fait partie d'une liste -#: ../src/libs/filtering.c:702 +#: ../src/libs/filtering.c:728 msgid "click or click&drag to select one or multiple values" msgstr " • Clic ou clic+déplacer pour sélectionner une ou plusieurs valeurs" # commence par ' • ' car fait partie de la liste ci-dessus -#: ../src/libs/filtering.c:703 +#: ../src/libs/filtering.c:729 msgid "right-click opens a menu to select the available values" msgstr "" " • Clic droit pour ouvrir un menu afin de sélectionner une valeur disponible" -#: ../src/libs/filtering.c:800 +#: ../src/libs/filtering.c:826 #, c-format msgid "you can't have more than %d rules" msgstr "On ne peut créer plus de %d règles" -#: ../src/libs/filtering.c:922 ../src/libs/filtering.c:1556 +#: ../src/libs/filtering.c:948 ../src/libs/filtering.c:1618 msgid "rule property" msgstr "Propriété de la règle" -#: ../src/libs/filtering.c:987 +#: ../src/libs/filtering.c:1013 msgid "" "rule property\n" "this can't be changed as the rule is pinned to the toolbar" @@ -21319,12 +22042,12 @@ "Cette propriété ne peut être changée\n" "car la règle est épinglée dans la barre supérieure." -#: ../src/libs/filtering.c:1035 +#: ../src/libs/filtering.c:1095 msgctxt "quickfilter" msgid "filter" msgstr "Filtrer" -#: ../src/libs/filtering.c:1062 +#: ../src/libs/filtering.c:1124 msgid "" "this rule is pinned to the top toolbar\n" "click to un-pin" @@ -21332,114 +22055,122 @@ "Cette règle est épinglé dans la barre supérieure,\n" "cliquer pour la libérer." -#: ../src/libs/filtering.c:1063 +#: ../src/libs/filtering.c:1125 msgid "you can't disable the rule as it is pinned to the toolbar" msgstr "Impossible de désactiver une règle épinglée dans la barre supérieure" -#: ../src/libs/filtering.c:1064 +#: ../src/libs/filtering.c:1126 msgid "you can't remove the rule as it is pinned to the toolbar" msgstr "Impossible de supprimer une règle épinglée dans la barre supérieure" -#: ../src/libs/filtering.c:1069 +#: ../src/libs/filtering.c:1131 msgid "click to pin this rule to the top toolbar" msgstr "Épingler dans la barre supérieure" -#: ../src/libs/filtering.c:1070 +#: ../src/libs/filtering.c:1132 msgid "remove this collect rule" msgstr "Supprimer cette règle de collection" -#: ../src/libs/filtering.c:1072 +#: ../src/libs/filtering.c:1134 msgid "this rule is enabled" msgstr "Cette règle est activée" -#: ../src/libs/filtering.c:1074 +#: ../src/libs/filtering.c:1136 msgid "this rule is disabled" msgstr "Cette règle est désactivée" -#: ../src/libs/filtering.c:1202 +#: ../src/libs/filtering.c:1264 msgid "or" msgstr "ou" -#: ../src/libs/filtering.c:1203 +#: ../src/libs/filtering.c:1265 msgid "and not" msgstr "sauf" -#: ../src/libs/filtering.c:1205 +#: ../src/libs/filtering.c:1267 msgid "define how this rule should interact with the previous one" msgstr "Définit comment cette règle interagit avec la précédente" -#: ../src/libs/filtering.c:1466 +#: ../src/libs/filtering.c:1528 msgid " (off)" msgstr "(désactivé)" -#: ../src/libs/filtering.c:1663 +#: ../src/libs/filtering.c:1725 msgid "you can't add more rules." msgstr "On ne peut créer plus de règles" -#. fill the popover with all pinned rules -#: ../src/libs/filtering.c:1696 +#: ../src/libs/filtering.c:1759 msgid "shown filters" msgstr "Filtres affichés" -#: ../src/libs/filtering.c:1711 +#: ../src/libs/filtering.c:1774 msgid "new filter" msgstr "Nouveau filtre" -#: ../src/libs/filtering.c:1884 +#. the actions part of the popover +#: ../src/libs/filtering.c:1781 +msgid "actions" +msgstr "Actions" + +#: ../src/libs/filtering.c:1784 +msgid "reset quickfilters" +msgstr "Réinitialiser les filtres rapides" + +#: ../src/libs/filtering.c:1957 msgid "sort order" msgstr "Ordre de tri" -#: ../src/libs/filtering.c:1886 +#: ../src/libs/filtering.c:1960 msgid "determine the sort order of shown images" msgstr "Spécifie l’ordre de tri des images affichées" -#: ../src/libs/filtering.c:1906 +#: ../src/libs/filtering.c:1980 msgid "sort direction" msgstr "Direction du tri" -#: ../src/libs/filtering.c:1911 +#: ../src/libs/filtering.c:1985 msgid "remove this sort order" msgstr "Supprimer ce tri" -#: ../src/libs/filtering.c:1995 +#: ../src/libs/filtering.c:2069 #, c-format msgid "you can't have more than %d sort orders" msgstr "On ne peut créer plus de %d ordres de tri" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "DESC" msgstr "DES" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "ASC" msgstr "ASC" -#: ../src/libs/filtering.c:2160 +#: ../src/libs/filtering.c:2234 msgid "new rule" msgstr "Nouvelle règle" -#: ../src/libs/filtering.c:2161 +#: ../src/libs/filtering.c:2235 msgid "append new rule to collect images" msgstr "Appliquer une nouvelle règle pour collecter des images" -#: ../src/libs/filtering.c:2172 ../src/libs/tools/filter.c:116 +#: ../src/libs/filtering.c:2246 ../src/libs/tools/filter.c:116 msgid "sort by" msgstr "Trier par" -#: ../src/libs/filtering.c:2180 +#: ../src/libs/filtering.c:2254 msgid "new sort" msgstr "Nouveau tri" -#: ../src/libs/filtering.c:2181 +#: ../src/libs/filtering.c:2255 msgid "append new sort to order images" msgstr "Ajouter un nouveau tri pour ordonner les images" -#: ../src/libs/filtering.c:2184 +#: ../src/libs/filtering.c:2258 msgid "revert to a previous set of sort orders" msgstr "Basculer vers un tri précédent" #. we change the tooltip of the reset button here, as we are sure the header is defined now -#: ../src/libs/filtering.c:2234 +#: ../src/libs/filtering.c:2308 msgid "" "reset\n" "ctrl+click to remove pinned rules too" @@ -21476,7 +22207,7 @@ #: ../src/libs/filters/grouping.c:167 ../src/libs/filters/history.c:153 #: ../src/libs/filters/local_copy.c:142 ../src/libs/filters/module_order.c:161 #: ../src/libs/filters/rating.c:199 ../src/libs/filters/rating.c:210 -#: ../src/libs/filters/rating_range.c:325 +#: ../src/libs/filters/rating_range.c:356 msgid "rules" msgstr "Règles" @@ -21490,7 +22221,7 @@ " • « et » (∩) : images ayant tous les labels de couleur sélectionnés,\n" " • « ou » (∪) : images ayant au moins un des labels de couleur sélectionnés." -#: ../src/libs/filters/filename.c:365 +#: ../src/libs/filters/filename.c:370 msgid "" "enter filename to search.\n" "multiple values can be separated by ','\n" @@ -21502,11 +22233,11 @@ "\n" "Clic droit pour lister les noms de fichier existants." -#: ../src/libs/filters/filename.c:376 +#: ../src/libs/filters/filename.c:381 msgid "extension" msgstr "Extension" -#: ../src/libs/filters/filename.c:377 +#: ../src/libs/filters/filename.c:382 msgid "" "enter extension to search with starting dot\n" "multiple values can be separated by ','\n" @@ -21520,7 +22251,7 @@ "\n" "Clic droit pour lister les extensions existantes." -#: ../src/libs/filters/filename.c:405 +#: ../src/libs/filters/filename.c:410 msgid "" "click to select filename\n" "ctrl+click to select multiple values" @@ -21528,7 +22259,7 @@ " • Clic pour sélectionner le nom de fichier,\n" " • Ctrl+clic pour sélectionner plusieurs valeurs." -#: ../src/libs/filters/filename.c:432 +#: ../src/libs/filters/filename.c:437 msgid "" "click to select extension\n" "ctrl+click to select multiple values" @@ -21536,6 +22267,11 @@ " • Clic pour sélectionner l’extension,\n" " • Ctrl+clic pour sélectionner plusieurs valeurs." +#. the button to close the popup +#: ../src/libs/filters/filename.c:457 +msgid "ok" +msgstr "Ok" + #: ../src/libs/filters/grouping.c:141 ../src/libs/filters/grouping.c:169 msgid "ungrouped images" msgstr "Images non groupées" @@ -21547,8 +22283,8 @@ #. predefined selections #: ../src/libs/filters/grouping.c:169 ../src/libs/filters/history.c:38 #: ../src/libs/filters/local_copy.c:38 ../src/libs/filters/module_order.c:155 -#: ../src/libs/filters/rating_range.c:56 ../src/libs/filters/rating_range.c:72 -#: ../src/libs/filters/rating_range.c:109 ../src/libs/filters/ratio.c:68 +#: ../src/libs/filters/rating_range.c:59 ../src/libs/filters/rating_range.c:83 +#: ../src/libs/filters/rating_range.c:131 ../src/libs/filters/ratio.c:68 #: ../src/libs/filters/ratio.c:81 msgid "all images" msgstr "Toutes les images" @@ -21574,7 +22310,7 @@ msgid "filter by images rating" msgstr "Filtrer par nombre d’étoiles" -#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:542 +#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:596 #: ../src/libs/tools/ratings.c:56 msgid "ratings" msgstr "Étoiles" @@ -21583,49 +22319,33 @@ msgid "unstarred only" msgstr "Seulement sans étoile" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:60 -#: ../src/libs/filters/rating_range.c:75 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:65 +#: ../src/libs/filters/rating_range.c:89 msgid "rejected only" msgstr "Rejetées" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:58 -#: ../src/libs/filters/rating_range.c:73 ../src/libs/filters/rating_range.c:138 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:62 +#: ../src/libs/filters/rating_range.c:86 ../src/libs/filters/rating_range.c:158 msgid "all except rejected" msgstr "Tout sauf rejetées" -#: ../src/libs/filters/rating_range.c:61 ../src/libs/filters/rating_range.c:76 +#: ../src/libs/filters/rating_range.c:67 ../src/libs/filters/rating_range.c:91 msgid "not rated only" msgstr "Seulement sans note" -#: ../src/libs/filters/rating_range.c:99 ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:131 -#: ../src/libs/filters/rating_range.c:275 -msgid "rejected" -msgstr "Rejeter" - -#: ../src/libs/filters/rating_range.c:101 -#: ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:276 -msgid "not rated" -msgstr "Sans note" - -#: ../src/libs/filters/rating_range.c:117 -msgid "only" -msgstr "seulement" - -#: ../src/libs/filters/rating_range.c:269 +#: ../src/libs/filters/rating_range.c:296 msgid "better" msgstr "Meilleur" -#: ../src/libs/filters/rating_range.c:270 +#: ../src/libs/filters/rating_range.c:297 msgid "worse" msgstr "Moins bon" -#: ../src/libs/filters/rating_range.c:271 +#: ../src/libs/filters/rating_range.c:298 msgid "cap" msgstr "Limite haute" -#: ../src/libs/filters/rating_range.c:286 +#: ../src/libs/filters/rating_range.c:313 msgid "rating filter" msgstr "Filtre de notation" @@ -21663,7 +22383,7 @@ msgid "apply offset and geo-location" msgstr "Appliquer un décalage et une géolocalisation" -#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1910 +#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1914 msgid "apply geo-location" msgstr "Applique la géolocalisation" @@ -21675,49 +22395,49 @@ "Applique un décalage et une géolocalisation aux images sélectionnées.\n" "Deux opérations : faire deux Ctrl+Z pour défaire." -#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1911 +#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1915 msgid "apply geo-location to matching images" msgstr "Appliquer la géolocalisation aux images sélectionnées" -#: ../src/libs/geotagging.c:810 +#: ../src/libs/geotagging.c:809 msgid "GPX file track segments" msgstr "Segments de piste de fichiers GPX" -#: ../src/libs/geotagging.c:830 ../src/libs/geotagging.c:1869 +#: ../src/libs/geotagging.c:831 ../src/libs/geotagging.c:1873 msgid "start time" msgstr "Heure de début" -#: ../src/libs/geotagging.c:831 +#: ../src/libs/geotagging.c:832 msgid "end time" msgstr "Heure de fin" -#: ../src/libs/geotagging.c:832 ../src/libs/geotagging.c:1871 +#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1875 msgid "points" msgstr "Points" -#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1873 -#: ../src/libs/image.c:463 +#: ../src/libs/geotagging.c:834 ../src/libs/geotagging.c:1877 +#: ../src/libs/image.c:494 msgid "images" msgstr "Images" -#: ../src/libs/geotagging.c:926 +#: ../src/libs/geotagging.c:927 msgid "open GPX file" msgstr "Ouvrir un fichier GPX" -#: ../src/libs/geotagging.c:927 ../src/libs/tools/lighttable.c:333 -#: ../src/libs/tools/lighttable.c:402 ../src/views/darkroom.c:2232 +#: ../src/libs/geotagging.c:928 ../src/libs/tools/lighttable.c:330 +#: ../src/libs/tools/lighttable.c:399 ../src/views/darkroom.c:2091 msgid "preview" msgstr "Aperçu" -#: ../src/libs/geotagging.c:940 +#: ../src/libs/geotagging.c:941 msgid "GPS data exchange format" msgstr "Format d’échange de données GPS" -#: ../src/libs/geotagging.c:1739 +#: ../src/libs/geotagging.c:1743 msgid "date/time" msgstr "Date/heure" -#: ../src/libs/geotagging.c:1740 +#: ../src/libs/geotagging.c:1744 msgid "" "enter the new date/time (YYYY:MM:DD hh:mm:ss[.sss])\n" "key in the new numbers or scroll over the cell" @@ -21725,40 +22445,40 @@ "Entrer la nouvelle date/heure (aaaa:mm:jj hh:mm:ss[.sss])\n" "ou utiliser la molette sur les cellules." -#: ../src/libs/geotagging.c:1744 +#: ../src/libs/geotagging.c:1748 msgid "original date/time" msgstr "Date/heure originale" -#: ../src/libs/geotagging.c:1748 +#: ../src/libs/geotagging.c:1752 msgid "lock date/time offset value to apply it onto another selection" msgstr "Bloquer le décalage horaire pour l’appliquer à une autre sélection" -#: ../src/libs/geotagging.c:1752 +#: ../src/libs/geotagging.c:1756 msgid "date/time offset" msgstr "Décalage de date/heure" -#: ../src/libs/geotagging.c:1753 +#: ../src/libs/geotagging.c:1757 msgid "offset or difference ([-]dd hh:mm:ss[.sss])" msgstr "Décalage ou différence ([-]dd hh:mm:ss[.sss])" #. apply -#: ../src/libs/geotagging.c:1757 +#: ../src/libs/geotagging.c:1761 msgid "apply offset" msgstr "Appliquer le décalage" -#: ../src/libs/geotagging.c:1758 +#: ../src/libs/geotagging.c:1762 msgid "apply offset to selected images" msgstr "Appliquer le décalage aux images sélectionnées" -#: ../src/libs/geotagging.c:1761 +#: ../src/libs/geotagging.c:1765 msgid "apply date/time" msgstr "Appliquer la date/heure" -#: ../src/libs/geotagging.c:1762 +#: ../src/libs/geotagging.c:1766 msgid "apply the same date/time to selected images" msgstr "Appliquer la même date/heure aux images sélectionnées" -#: ../src/libs/geotagging.c:1772 +#: ../src/libs/geotagging.c:1776 msgid "" "start typing to show a list of permitted values and select your timezone.\n" "press enter to confirm, so that the asterisk * disappears" @@ -21769,25 +22489,25 @@ # "un ficher" ou "le fichier" ? #. gpx -#: ../src/libs/geotagging.c:1815 +#: ../src/libs/geotagging.c:1819 msgid "apply GPX track file..." msgstr "Appliquer un ficher GPX…" -#: ../src/libs/geotagging.c:1816 +#: ../src/libs/geotagging.c:1820 msgid "parses a GPX file and updates location of selected images" msgstr "" "Lit un fichier GPX et met à jour la localisation des images sélectionnées" -#: ../src/libs/geotagging.c:1827 +#: ../src/libs/geotagging.c:1831 msgctxt "section" msgid "GPX file" msgstr "Fichier GPX" -#: ../src/libs/geotagging.c:1834 +#: ../src/libs/geotagging.c:1838 msgid "select a GPX track file..." msgstr "Sélectionner un ficher GPX…" -#: ../src/libs/geotagging.c:1851 +#: ../src/libs/geotagging.c:1855 msgid "" "list of track segments in the GPX file, for each segment:\n" "- the start date/time in local time (LT)\n" @@ -21803,175 +22523,183 @@ "décalage et du fuseau horaire des images.\n" "Informations plus détaillées en survolant la ligne." -#: ../src/libs/geotagging.c:1890 +#: ../src/libs/geotagging.c:1894 msgid "preview images" msgstr "Prévisualiser les images" -#: ../src/libs/geotagging.c:1895 +#: ../src/libs/geotagging.c:1899 msgid "show on map matching images" msgstr "Afficher sur la carte les images correspondantes" -#: ../src/libs/geotagging.c:1898 +#: ../src/libs/geotagging.c:1902 msgid "select images" msgstr "Sélectionner des images" -#: ../src/libs/geotagging.c:1899 +#: ../src/libs/geotagging.c:1903 msgid "select matching images" msgstr "Sélectionne les images correspondantes" -#: ../src/libs/geotagging.c:1907 +#: ../src/libs/geotagging.c:1911 msgid "number of matching images versus selected images" msgstr "Nombre d’images par rapport aux images sélectionnées" -#: ../src/libs/histogram.c:133 +#: ../src/libs/histogram.c:110 msgid "monochromatic" msgstr "Monochromatique" -#: ../src/libs/histogram.c:134 +#: ../src/libs/histogram.c:111 msgid "analogous" msgstr "Analogue" -#: ../src/libs/histogram.c:135 +#: ../src/libs/histogram.c:112 msgid "analogous complementary" msgstr "Complémentaire analogue" -#: ../src/libs/histogram.c:136 +#: ../src/libs/histogram.c:113 msgid "complementary" msgstr "Complémentaire" -#: ../src/libs/histogram.c:137 +#: ../src/libs/histogram.c:114 msgid "split complementary" msgstr "Complémentaire divisé" -#: ../src/libs/histogram.c:138 +#: ../src/libs/histogram.c:115 msgid "dyad" msgstr "Dyade" -#: ../src/libs/histogram.c:139 +#: ../src/libs/histogram.c:116 msgid "triad" msgstr "Triade" -#: ../src/libs/histogram.c:140 +#: ../src/libs/histogram.c:117 msgid "tetrad" msgstr "Tétrade" -#: ../src/libs/histogram.c:146 +#: ../src/libs/histogram.c:123 msgid "vectorscope" msgstr "Vectorscope" -#: ../src/libs/histogram.c:147 +#: ../src/libs/histogram.c:124 msgid "waveform" msgstr "Forme d’onde" -#: ../src/libs/histogram.c:148 +#: ../src/libs/histogram.c:125 msgid "RGB parade" msgstr "Parade RVB" -#: ../src/libs/histogram.c:149 ../src/libs/histogram.c:2309 +#: ../src/libs/histogram.c:126 ../src/libs/histogram.c:2622 msgid "histogram" msgstr "Histogramme" -#: ../src/libs/histogram.c:243 +#: ../src/libs/histogram.c:218 msgid "scopes" msgstr "Scopes" -#: ../src/libs/histogram.c:1542 +#: ../src/libs/histogram.c:757 +msgid "" +"unsupported vectorscope profile selected, it will be replaced with linear " +"Rec2020" +msgstr "" +"Profil vectorscope sélectionné non supporté, remplacé par linéaire RVB " +"Rec2020" + +#: ../src/libs/histogram.c:1715 msgid "scroll to coarse-rotate" msgstr "Molette pour pivoter" -#: ../src/libs/histogram.c:1543 +#: ../src/libs/histogram.c:1716 msgid "ctrl+scroll to fine rotate" msgstr "Ctrl+molette pour pivoter finement" -#: ../src/libs/histogram.c:1544 +#: ../src/libs/histogram.c:1717 msgid "shift+scroll to change width" -msgstr "Ctrl+molette pour changer la largeur" +msgstr "Maj+molette pour changer la largeur" -#: ../src/libs/histogram.c:1545 +#: ../src/libs/histogram.c:1718 msgid "alt+scroll to cycle" msgstr "Alt+molette pour parcourir" # bulle d'aide de l'histogramme, item de liste mais pas de " • " initial -#: ../src/libs/histogram.c:1556 +#: ../src/libs/histogram.c:1732 msgid "drag to change black point" msgstr "Glisser pour changer le point noir" # bulle d'aide de l'histogramme, item de liste mais pas de " • " initial -#: ../src/libs/histogram.c:1557 ../src/libs/histogram.c:1564 +#: ../src/libs/histogram.c:1733 ../src/libs/histogram.c:1740 msgid "double-click resets" msgstr "Double clic pour réinitialiser" # bulle d'aide de l'histogramme, item de liste mais pas de " • " initial -#: ../src/libs/histogram.c:1563 +#: ../src/libs/histogram.c:1739 msgid "drag to change exposure" msgstr "Glisser pour changer l’exposition" -#: ../src/libs/histogram.c:1725 ../src/libs/histogram.c:1765 +#: ../src/libs/histogram.c:1923 ../src/libs/histogram.c:1965 msgid "set scale to linear" msgstr "Afficher en mode linéaire" -#: ../src/libs/histogram.c:1730 ../src/libs/histogram.c:1770 +#: ../src/libs/histogram.c:1928 ../src/libs/histogram.c:1970 msgid "set scale to logarithmic" msgstr "Afficher en mode logarithmique" -#: ../src/libs/histogram.c:1746 +#: ../src/libs/histogram.c:1946 msgid "set scope to vertical" msgstr "Afficher verticalement" -#: ../src/libs/histogram.c:1751 +#: ../src/libs/histogram.c:1951 msgid "set scope to horizontal" msgstr "Afficher horizontalement" -#: ../src/libs/histogram.c:1780 +#: ../src/libs/histogram.c:1980 msgid "set view to AzBz" msgstr "Afficher en mode AzBz" -#: ../src/libs/histogram.c:1786 +#: ../src/libs/histogram.c:1986 msgid "set view to RYB" msgstr "Afficher en mode RJB" -#: ../src/libs/histogram.c:1792 +#: ../src/libs/histogram.c:1992 msgid "set view to u*v*" msgstr "Afficher en mode u*v*" -#: ../src/libs/histogram.c:2312 ../src/libs/histogram.c:2370 +#: ../src/libs/histogram.c:2625 ../src/libs/histogram.c:2691 msgid "cycle histogram modes" msgstr "Cycler sur les modes de l’histogramme" -#: ../src/libs/histogram.c:2316 ../src/libs/histogram.c:2371 +#: ../src/libs/histogram.c:2630 ../src/libs/histogram.c:2693 msgid "hide histogram" msgstr "Cacher l’histogramme" -#: ../src/libs/histogram.c:2372 ../src/libs/histogram.c:2401 +#: ../src/libs/histogram.c:2696 ../src/libs/histogram.c:2729 msgid "switch histogram view" msgstr "Changer le mode de l’histogramme" -#: ../src/libs/histogram.c:2379 +#: ../src/libs/histogram.c:2704 msgid "toggle blue channel" msgstr "Basculer le canal bleu" -#: ../src/libs/histogram.c:2381 ../src/libs/histogram.c:2389 -#: ../src/libs/histogram.c:2397 +#: ../src/libs/histogram.c:2706 ../src/libs/histogram.c:2715 +#: ../src/libs/histogram.c:2724 msgid "toggle colors" msgstr "Basculer les couleurs" -#: ../src/libs/histogram.c:2387 +#: ../src/libs/histogram.c:2713 msgid "toggle green channel" msgstr "Basculer le canal vert" -#: ../src/libs/histogram.c:2395 +#: ../src/libs/histogram.c:2722 msgid "toggle red channel" msgstr "Basculer le canal rouge" -#: ../src/libs/histogram.c:2405 +#: ../src/libs/histogram.c:2734 msgid "cycle vectorscope types" msgstr "Parcourir les modes du vectorscope" -#: ../src/libs/histogram.c:2413 +#: ../src/libs/histogram.c:2745 msgid "color harmonies" msgstr "Harmonies des couleurs" -#: ../src/libs/histogram.c:2425 +#: ../src/libs/histogram.c:2759 msgid "cycle color harmonies" msgstr "Parcourir les harmonie des couleurs" @@ -22015,10 +22743,18 @@ msgid "mask mode" msgstr "Mode du masque" +#: ../src/libs/history.c:949 +msgid "blend mode" +msgstr "Mode de fusion" + #: ../src/libs/history.c:951 msgid "blend operation" msgstr "Opération de fusion" +#: ../src/libs/history.c:953 +msgid "blend fulcrum" +msgstr "Pivot de fusion" + #: ../src/libs/history.c:961 msgid "mask blur" msgstr "Floutage du masque" @@ -22062,207 +22798,207 @@ msgid "parametric input mask:" msgstr "Entrée du masque paramétrique :" -#: ../src/libs/history.c:1323 +#: ../src/libs/history.c:1322 msgid "delete image's history?" msgstr "Supprimer l’historique de l’image ?" -#: ../src/libs/history.c:1324 +#: ../src/libs/history.c:1323 msgid "do you really want to clear history of current image?" msgstr "Supprimer l’historique de l’image courante ?" -#: ../src/libs/image.c:72 -msgid "selected image[s]" -msgstr "Images sélectionnées" +#: ../src/libs/image.c:74 +msgid "actions on selection" +msgstr "Actions sur la sélection" -#: ../src/libs/image.c:284 +#: ../src/libs/image.c:302 msgid "delete (trash)" msgstr "Supprimer (poubelle)" -#: ../src/libs/image.c:287 +#: ../src/libs/image.c:305 msgid "physically delete from disk (using trash if possible)" msgstr "" "Supprimer physiquement du disque \n" "en utilisant la poubelle si possible." -#: ../src/libs/image.c:288 +#: ../src/libs/image.c:306 msgid "physically delete from disk immediately" msgstr "Supprimer physiquement du disque" # lorsque l’action n’engendre pas de suppression physique, on emploie le terme "enlever" -#: ../src/libs/image.c:474 ../src/libs/modulegroups.c:3811 -#: ../src/libs/styles.c:876 +#: ../src/libs/image.c:506 ../src/libs/modulegroups.c:3813 +#: ../src/libs/styles.c:880 msgid "remove" msgstr "Enlever" -#: ../src/libs/image.c:475 +#: ../src/libs/image.c:508 msgid "remove images from the image library, without deleting" msgstr "Supprimer les images de la bibliothèque sans les effacer" # lorsque l’action n’engendre pas de suppression physique, on emploie le terme "enlever" -#: ../src/libs/image.c:483 +#: ../src/libs/image.c:517 msgid "move..." msgstr "Déplacer…" -#: ../src/libs/image.c:484 +#: ../src/libs/image.c:519 msgid "move to other folder" msgstr "Déplacer vers un autre dossier" -#: ../src/libs/image.c:487 +#: ../src/libs/image.c:522 msgid "copy..." msgstr "Copier…" -#: ../src/libs/image.c:488 +#: ../src/libs/image.c:524 msgid "copy to other folder" msgstr "Copier vers un autre dossier" -#: ../src/libs/image.c:491 +#: ../src/libs/image.c:528 msgid "create HDR" msgstr "Créer HDR" -#: ../src/libs/image.c:492 +#: ../src/libs/image.c:530 msgid "create a high dynamic range image from selected shots" msgstr "" "Créer une image à grande dynamique\n" "à partir des photos sélectionnées." -#: ../src/libs/image.c:496 +#: ../src/libs/image.c:535 msgid "add a duplicate to the image library, including its history stack" msgstr "" "Ajouter une copie virtuelle à la bibliothèque\n" "incluant l’historique de développement." -#: ../src/libs/image.c:502 ../src/libs/image.c:505 +#: ../src/libs/image.c:542 ../src/libs/image.c:547 msgid "rotate selected images 90 degrees CCW" msgstr "Tourne de 90 degrés (sens anti-horaire)" -#: ../src/libs/image.c:509 ../src/libs/image.c:512 +#: ../src/libs/image.c:553 ../src/libs/image.c:558 msgid "rotate selected images 90 degrees CW" msgstr "Tourne de 90 degrés (sens horaire)" -#: ../src/libs/image.c:514 +#: ../src/libs/image.c:561 msgid "reset rotation" msgstr "Réinitialiser" -#: ../src/libs/image.c:515 +#: ../src/libs/image.c:563 msgid "reset rotation to EXIF data" msgstr "" "Réinitialise l’orientation\n" "à la valeur EXIF" -#: ../src/libs/image.c:518 +#: ../src/libs/image.c:566 msgid "copy locally" msgstr "Copier localement" -#: ../src/libs/image.c:519 +#: ../src/libs/image.c:568 msgid "copy the image locally" msgstr "Copie l’image localement" -#: ../src/libs/image.c:522 +#: ../src/libs/image.c:572 msgid "resync local copy" msgstr "Resync copie locale" -#: ../src/libs/image.c:523 +#: ../src/libs/image.c:574 msgid "synchronize the image's XMP and remove the local copy" msgstr "Synchronise le fichier XMP de l’image et supprime la copie locale" -#: ../src/libs/image.c:526 +#: ../src/libs/image.c:578 msgctxt "selected images action" msgid "group" msgstr "Grouper" -#: ../src/libs/image.c:527 +#: ../src/libs/image.c:580 msgid "add selected images to expanded group or create a new one" msgstr "" "Ajoute les images sélectionnées au groupe actuel\n" "ou à un nouveau groupe." -#: ../src/libs/image.c:531 +#: ../src/libs/image.c:584 msgid "ungroup" msgstr "Dégrouper" -#: ../src/libs/image.c:532 +#: ../src/libs/image.c:586 msgid "remove selected images from the group" msgstr "Enlève du groupe les images sélectionnées" -#: ../src/libs/image.c:544 +#: ../src/libs/image.c:598 msgid "select ratings metadata" msgstr "Sélectionner les métadonnées : étoiles" -#: ../src/libs/image.c:550 +#: ../src/libs/image.c:605 msgid "colors" msgstr "Couleurs" -#: ../src/libs/image.c:552 +#: ../src/libs/image.c:607 msgid "select colors metadata" msgstr "Sélectionner les métadonnées : couleurs" -#: ../src/libs/image.c:560 +#: ../src/libs/image.c:616 msgid "select tags metadata" msgstr "Sélectionner les métadonnées : mots-clés" -#: ../src/libs/image.c:568 +#: ../src/libs/image.c:625 msgid "select geo tags metadata" msgstr "Sélectionner les métadonnées : géolocalisation" -#: ../src/libs/image.c:576 +#: ../src/libs/image.c:636 msgid "select darktable metadata (from metadata editor module)" msgstr "Sélectionner les métadonnées du module d’édition des métadonnées" -#: ../src/libs/image.c:584 +#: ../src/libs/image.c:649 msgid "set the selected image as source of metadata" msgstr "Copier les métadonnées de l’image sélectionnée" -#: ../src/libs/image.c:589 +#: ../src/libs/image.c:656 msgid "paste selected metadata on selected images" msgstr "Coller les métadonnées sur les images sélectionnées" -#: ../src/libs/image.c:593 +#: ../src/libs/image.c:661 msgid "clear selected metadata on selected images" msgstr "Effacer les métadonnées des images sélectionnées" -#: ../src/libs/image.c:598 +#: ../src/libs/image.c:667 msgid "how to handle existing metadata" msgstr "Gestion des métadonnées existantes" -#: ../src/libs/image.c:601 +#: ../src/libs/image.c:670 msgid "merge" msgstr "Fusionner" -#: ../src/libs/image.c:605 +#: ../src/libs/image.c:675 msgid "update image information to match changes to file" msgstr "Mise à jour des informations de l’image depuis le fichier" -#: ../src/libs/image.c:609 +#: ../src/libs/image.c:680 msgid "set selection as monochrome images and activate monochrome workflow" msgstr "" "Définit la sélection comme images monochromes et active le flux monochrome" -#: ../src/libs/image.c:613 +#: ../src/libs/image.c:684 msgid "set selection as color images" msgstr "Définit la sélection comme images couleur" -#: ../src/libs/image.c:625 +#: ../src/libs/image.c:696 msgid "duplicate virgin" msgstr "Cloner l’image vierge" -#: ../src/libs/import.c:263 +#: ../src/libs/import.c:264 #, c-format msgid "device \"%s\" connected on port \"%s\"." msgstr "Appareil « %s » connecté sur le port « %s »." -#: ../src/libs/import.c:273 ../src/libs/import.c:334 ../src/libs/import.c:1692 +#: ../src/libs/import.c:274 ../src/libs/import.c:335 ../src/libs/import.c:1701 msgid "copy & import from camera" msgstr "Copier & importer depuis le boîtier" -#: ../src/libs/import.c:284 ../src/libs/import.c:336 +#: ../src/libs/import.c:285 ../src/libs/import.c:337 msgid "tethered shoot" msgstr "Commander le boîtier" -#: ../src/libs/import.c:291 ../src/libs/import.c:337 +#: ../src/libs/import.c:292 ../src/libs/import.c:338 msgid "unmount camera" msgstr "Démonter le boîtier" -#: ../src/libs/import.c:312 +#: ../src/libs/import.c:313 msgid "" "camera is locked by another application\n" "make sure it is no longer mounted\n" @@ -22271,40 +23007,40 @@ "L’appareil photo est bloqué par une autre application.\n" "S’assurer qu’il n’est plus monté ou quitter l’application le bloquant." -#: ../src/libs/import.c:315 +#: ../src/libs/import.c:316 msgid "tethering and importing is disabled for this camera" msgstr "La capture et l’importation sont désactivées pour ce boîtier" -#: ../src/libs/import.c:317 ../src/libs/import.c:335 +#: ../src/libs/import.c:318 ../src/libs/import.c:336 msgid "mount camera" msgstr "Monter le boîtier" -#: ../src/libs/import.c:747 +#: ../src/libs/import.c:754 #, c-format msgid "%d image out of %d selected" msgid_plural "%d images out of %d selected" msgstr[0] "%d image sélectionnée parmi %d" msgstr[1] "%d images sélectionnées parmi %d" -#: ../src/libs/import.c:1039 +#: ../src/libs/import.c:1046 msgid "you can't delete the selected place" msgstr "Impossible de supprimer l’emplacement actuellement sélectionné" -#: ../src/libs/import.c:1153 +#: ../src/libs/import.c:1160 msgid "choose the root of the folder tree below" msgstr "Choisir la racine des répertoires ci-dessous" -#: ../src/libs/import.c:1156 +#: ../src/libs/import.c:1163 msgid "places" msgstr "Emplacements" -#: ../src/libs/import.c:1162 +#: ../src/libs/import.c:1169 msgid "restore all default places you have removed by right-click" msgstr "" "Restaurer tous les emplacements par défaut qui ont été supprimés avec un " "clic droit" -#: ../src/libs/import.c:1167 +#: ../src/libs/import.c:1174 msgid "" "add a custom place\n" "\n" @@ -22313,81 +23049,110 @@ "Ajouter un emplacement personnalisé.\n" "Clic droit pour supprimer un emplacement." -#: ../src/libs/import.c:1174 +#: ../src/libs/import.c:1181 msgid "you can add custom places using the plus icon" msgstr "Ajouter des emplacements personnalisés en cliquant sur l’icône" -#: ../src/libs/import.c:1199 +#: ../src/libs/import.c:1206 msgid "select a folder to see the content" msgstr "Sélectionner un dossier pour voir son contenu" -#: ../src/libs/import.c:1202 +#: ../src/libs/import.c:1209 msgid "folders" msgstr "Dossiers" -#: ../src/libs/import.c:1272 +#: ../src/libs/import.c:1279 msgid "home" msgstr "Dossier personnel" -#: ../src/libs/import.c:1284 +#: ../src/libs/import.c:1291 msgid "pictures" msgstr "Images" -#: ../src/libs/import.c:1548 +#: ../src/libs/import.c:1557 msgid "mark already imported pictures" msgstr "Indique les images déjà importées" -#: ../src/libs/import.c:1562 +#: ../src/libs/import.c:1571 msgid "modified" msgstr "Modifié" -#: ../src/libs/import.c:1567 +#: ../src/libs/import.c:1576 msgid "file 'modified date/time', may be different from 'Exif date/time'" msgstr "" "Les date et heure de modification du fichier peuvent être différentes de " "celles de l’EXIF." -#: ../src/libs/import.c:1579 +#: ../src/libs/import.c:1588 msgid "show/hide thumbnails" msgstr "Montrer/cacher les miniatures" -#: ../src/libs/import.c:1649 +#: ../src/libs/import.c:1658 msgid "naming rules" msgstr "Règles de nommage" -#: ../src/libs/import.c:1690 +#: ../src/libs/import.c:1699 msgid "add to library" msgstr "Ajouter à la bibliothèque" -#: ../src/libs/import.c:1691 +#: ../src/libs/import.c:1700 msgid "copy & import" msgstr "Copier & importer" -#: ../src/libs/import.c:1730 +#: ../src/libs/import.c:1740 msgid "select new" msgstr "Sélectionner nouveaux" -#: ../src/libs/import.c:1773 +#: ../src/libs/import.c:1783 msgid "please wait while prefetching the list of images from camera..." msgstr "Merci de patienter pendant la récupération des images du boîtier…" -#: ../src/libs/import.c:1907 +#: ../src/libs/import.c:1922 msgid "invalid override date/time format" msgstr "Format de surcharge date/heure invalide" -#: ../src/libs/import.c:2022 +#: ../src/libs/import.c:1986 +msgid "import base directory" +msgstr "Répertoire de base d'importation" + +#: ../src/libs/import.c:1987 +msgid "" +"before copying images to the darktable base directory make sure it is " +"defined as you prefer.\n" +"further information can be found in the darktable manual.\n" +"\n" +"inspect darktable preferences -> import.\n" +"check and possibly correct the 'base directory naming pattern'" +msgstr "" +"Avant de copier des images dans le répertoire de base de darktable assurez " +"vous qu'il est défini selon vos préférences.\n" +"De plus amples informations peuvent être trouvée dans le manuel de " +"darktable.\n" +"\n" +"Vérifiez les préférences dans la section « Importer ».\n" +"Et ajustez si nécessaire la valeur de « Nommage du répertoire de base »." + +#: ../src/libs/import.c:1991 +msgid "_come back & check" +msgstr "_Revenir et vérifier" + +#: ../src/libs/import.c:1991 +msgid "_understood & done" +msgstr "_Entendu et fait" + +#: ../src/libs/import.c:2057 msgid "add to library..." msgstr "Ajouter à la bibliothèque…" -#: ../src/libs/import.c:2023 +#: ../src/libs/import.c:2058 msgid "add existing images to the library" msgstr "Ajoute des images à la bibliothèque" -#: ../src/libs/import.c:2029 +#: ../src/libs/import.c:2064 msgid "copy & import..." msgstr "Copier & importer…" -#: ../src/libs/import.c:2030 +#: ../src/libs/import.c:2065 msgid "" "copy and optionally rename images before adding them to the library\n" "patterns can be defined to rename the images and specify the destination " @@ -22399,15 +23164,15 @@ "destination." #. collapsible section -#: ../src/libs/import.c:2053 +#: ../src/libs/import.c:2088 msgid "parameters" msgstr "Paramètres" -#: ../src/libs/ioporder.c:204 +#: ../src/libs/ioporder.c:202 msgid "v3.0 for RAW input (default)" msgstr "V3.0 pour les RAW (défaut)" -#: ../src/libs/ioporder.c:210 +#: ../src/libs/ioporder.c:208 msgid "v3.0 for JPEG/non-RAW input" msgstr "V3.0 pour JPEG/non-RAW" @@ -22423,11 +23188,11 @@ msgid "nothing to save" msgstr "Rien à sauvegarder" -#: ../src/libs/lib.c:1105 +#: ../src/libs/lib.c:1106 msgid "show module" msgstr "Afficher le module" -#: ../src/libs/lib.c:1430 +#: ../src/libs/lib.c:1431 msgid "utility module" msgstr "Module utilitaire" @@ -22660,167 +23425,110 @@ msgid "map settings" msgstr "Paramètres de la carte" -#: ../src/libs/map_settings.c:107 +#: ../src/libs/map_settings.c:89 msgid "map source" msgstr "Source" -#: ../src/libs/map_settings.c:112 +#: ../src/libs/map_settings.c:90 msgid "select the source of the map. some entries might not work" msgstr "" "Sélectionne l’origine de la carte. Certaines peuvent ne pas fonctionner." -#: ../src/libs/masks.c:107 +#: ../src/libs/masks.c:108 msgid "feather" msgstr "Adoucissement" -#: ../src/libs/masks.c:114 -msgid "hardness (relative)" -msgstr "Dureté (relative)" - -#: ../src/libs/masks.c:115 -msgid "hardness (absolute)" -msgstr "Dureté (absolue)" - -#: ../src/libs/masks.c:116 -msgid "opacity (relative)" -msgstr "Opacité (relative)" - -#: ../src/libs/masks.c:117 -msgid "opacity (absolute)" -msgstr "Opacité (absolue)" - -#: ../src/libs/masks.c:118 -msgid "brush size (relative)" -msgstr "Taille du pinceau (relative)" - -#: ../src/libs/masks.c:121 -msgid "low" -msgstr "Bas" - -#: ../src/libs/masks.c:122 -msgid "medium" -msgstr "Moyen" - -#: ../src/libs/masks.c:123 -msgid "high" -msgstr "Haut" - -#: ../src/libs/masks.c:381 +#: ../src/libs/masks.c:357 #, c-format msgid "group #%d" msgstr "Groupe #%d" -#: ../src/libs/masks.c:1081 +#: ../src/libs/masks.c:1097 msgid "duplicate this shape" msgstr "Dupliquer cette forme" -#: ../src/libs/masks.c:1085 +#: ../src/libs/masks.c:1101 msgid "delete this shape" msgstr "Supprimer cette forme" -#: ../src/libs/masks.c:1091 +#: ../src/libs/masks.c:1107 msgid "delete group" msgstr "Supprimer le groupe" -#: ../src/libs/masks.c:1098 +#: ../src/libs/masks.c:1114 msgid "remove from group" msgstr "Enlever du groupe" -#: ../src/libs/masks.c:1106 +#: ../src/libs/masks.c:1122 msgid "group the forms" msgstr "Grouper les formes" -#: ../src/libs/masks.c:1114 +#: ../src/libs/masks.c:1130 msgid "use inverted shape" msgstr "Inverser la forme" -#: ../src/libs/masks.c:1121 +#: ../src/libs/masks.c:1134 msgid "mode: union" msgstr "Mode : union" -#: ../src/libs/masks.c:1127 +#: ../src/libs/masks.c:1136 msgid "mode: intersection" msgstr "Mode : intersection" -#: ../src/libs/masks.c:1133 +#: ../src/libs/masks.c:1138 msgid "mode: difference" msgstr "Mode : différence" -#: ../src/libs/masks.c:1139 +#: ../src/libs/masks.c:1140 msgid "mode: sum" msgstr "Mode : addition" -#: ../src/libs/masks.c:1145 +#: ../src/libs/masks.c:1142 msgid "mode: exclusion" msgstr "Mode : exclusion" -#: ../src/libs/masks.c:1164 +#: ../src/libs/masks.c:1158 msgid "cleanup unused shapes" msgstr "Supprimer les formes non utilisées" -#: ../src/libs/masks.c:1811 +#: ../src/libs/masks.c:1807 msgid "created shapes" msgstr "Formes existantes" -#: ../src/libs/masks.c:1904 ../src/libs/masks.c:1919 ../src/libs/masks.c:1939 -#: ../src/libs/masks.c:1955 +#: ../src/libs/masks.c:1900 ../src/libs/masks.c:1915 ../src/libs/masks.c:1929 +#: ../src/libs/masks.c:1933 msgid "properties" msgstr "Paramètres" -#: ../src/libs/masks.c:1907 +#: ../src/libs/masks.c:1903 msgid "no shapes selected" msgstr "Aucune forme sélectionnée" -#: ../src/libs/masks.c:1940 +#: ../src/libs/masks.c:1929 msgid "pressure" msgstr "Pression" -#: ../src/libs/masks.c:1941 -msgid "" -"pen pressure control for brush masks\n" -"'off': pressure reading ignored,\n" -"'hardness'/'opacity'/'brush size': pressure reading controls specified " -"attribute,\n" -"'absolute'/'relative': pressure reading is taken directly as attribute value " -"or multiplied with pre-defined setting." -msgstr "" -"Contrôle de la pression du pinceau\n" -" • Désactivé – la pression est ignorée\n" -" • Dureté ou opacité ou taille du pinceau – elle contrôle l’attribut " -"spécifié\n" -" • Absolue ou relative – elle est directement utilisée comme valeur de " -"l’attribut ou multipliée avec la valeur prédéfinie." - -#: ../src/libs/masks.c:1956 +#: ../src/libs/masks.c:1933 msgid "smoothing" msgstr "Lissage" -#: ../src/libs/masks.c:1957 -msgid "" -"smoothing of brush strokes\n" -"stronger smoothing leads to fewer nodes and easier editing but with lower " -"control of accuracy." -msgstr "" -"Définit le niveau de lissage du pinceau. Un lissage plus fort crée\n" -"moins de nœuds et sera plus facile à éditer, mais sera moins précis." - -#: ../src/libs/metadata.c:64 +#: ../src/libs/metadata.c:60 msgid "metadata editor" msgstr "Éditeur de métadonnées" -#: ../src/libs/metadata.c:206 ../src/libs/metadata.c:496 -msgid "<leave unchanged>" -msgstr "<laisser non modifié>" - -#: ../src/libs/metadata.c:630 ../src/libs/metadata_view.c:1192 +#: ../src/libs/metadata.c:459 ../src/libs/metadata_view.c:1219 msgid "metadata settings" msgstr "Configuration des métadonnées" -#: ../src/libs/metadata.c:683 ../src/libs/metadata_view.c:1237 +#: ../src/libs/metadata.c:461 ../src/libs/metadata_view.c:1221 +msgid "_default" +msgstr "_Défaut" + +#: ../src/libs/metadata.c:516 ../src/libs/metadata_view.c:1267 msgid "visible" msgstr "Visible" -#: ../src/libs/metadata.c:688 +#: ../src/libs/metadata.c:524 msgid "" "tick if the corresponding metadata is of interest for you\n" "it will be visible from metadata editor, collection and import module\n" @@ -22831,19 +23539,19 @@ "collecte et d’importation,\n" "et seront également exportées." -#: ../src/libs/metadata.c:693 ../src/libs/tagging.c:1683 -#: ../src/libs/tagging.c:1827 +#: ../src/libs/metadata.c:529 ../src/libs/tagging.c:1705 +#: ../src/libs/tagging.c:1854 msgid "private" msgstr "Privée" -#: ../src/libs/metadata.c:698 +#: ../src/libs/metadata.c:534 msgid "" "tick if you want to keep this information private (not exported with images)" msgstr "" "Sélectionner si vous voulez garder cette information privée (non exportée " "avec les images)" -#: ../src/libs/metadata.c:857 +#: ../src/libs/metadata.c:691 msgid "" "metadata text\n" "ctrl+enter inserts a new line (caution, may not be compatible with standard " @@ -22859,183 +23567,195 @@ "dans ce cas, un clic droit donne la possibilité de choisir l’une d’elles.\n" "Touche Échap pour quitter le dialogue." -#: ../src/libs/metadata.c:902 +#: ../src/libs/metadata.c:736 msgid "write metadata for selected images" msgstr "" "Écrire les métadonnées\n" "des images sélectionnées." +#: ../src/libs/metadata.c:737 +msgid "cancel" +msgstr "Annuler" + +#: ../src/libs/metadata.c:738 +msgid "ignore changed metadata" +msgstr "Ignorer les métadonnées modifiées" + #. <title>\0<description>\0<rights>\0<creator>\0<publisher> -#: ../src/libs/metadata.c:958 +#: ../src/libs/metadata.c:793 msgid "CC BY" msgstr "CC BY" -#: ../src/libs/metadata.c:959 +#: ../src/libs/metadata.c:794 msgid "Creative Commons Attribution (CC BY)" msgstr "Creative Commons Paternité (CC-BY)" -#: ../src/libs/metadata.c:960 +#: ../src/libs/metadata.c:795 msgid "CC BY-SA" msgstr "CC BY-SA" -#: ../src/libs/metadata.c:961 +#: ../src/libs/metadata.c:796 msgid "Creative Commons Attribution-ShareAlike (CC BY-SA)" msgstr "" "Creative Commons Paternité,\n" "partage des conditions initiales à l’identique (CC-BY-SA)" -#: ../src/libs/metadata.c:962 +#: ../src/libs/metadata.c:797 msgid "CC BY-ND" msgstr "CC BY-ND" -#: ../src/libs/metadata.c:963 +#: ../src/libs/metadata.c:798 msgid "Creative Commons Attribution-NoDerivs (CC BY-ND)" msgstr "" "Creative Commons Paternité,\n" "pas de modification (CC-BY-ND)." -#: ../src/libs/metadata.c:964 +#: ../src/libs/metadata.c:799 msgid "CC BY-NC" msgstr "CC BY-NC" -#: ../src/libs/metadata.c:965 +#: ../src/libs/metadata.c:800 msgid "Creative Commons Attribution-NonCommercial (CC BY-NC)" msgstr "" "Creative Commons Paternité,\n" "pas d’utilisation commerciale (CC-BY-NC)." -#: ../src/libs/metadata.c:966 +#: ../src/libs/metadata.c:801 msgid "CC BY-NC-SA" msgstr "CC BY-NC-SA" -#: ../src/libs/metadata.c:967 +#: ../src/libs/metadata.c:802 msgid "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" msgstr "" "Creative Commons Paternité,\n" "pas d’utilisation commerciale\n" "et partage des conditions initiales à l’identique (CC-BY-NC-SA)." -#: ../src/libs/metadata.c:968 +#: ../src/libs/metadata.c:803 msgid "CC BY-NC-ND" msgstr "CC BY-NC-ND" -#: ../src/libs/metadata.c:969 +#: ../src/libs/metadata.c:804 msgid "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" msgstr "" "Creative Commons Paternité,\n" "pas d’utilisation commerciale\n" "et pas de modification (CC-BY-NC-ND)." -#: ../src/libs/metadata.c:970 ../src/libs/metadata.c:971 +#: ../src/libs/metadata.c:805 ../src/libs/metadata.c:806 msgid "all rights reserved" msgstr "Tous droits réservés" #. internal -#: ../src/libs/metadata_view.c:123 +#: ../src/libs/metadata_view.c:125 msgid "filmroll" msgstr "Pellicule" -#: ../src/libs/metadata_view.c:125 +#: ../src/libs/metadata_view.c:127 msgid "group id" msgstr "Numéro groupe" -#: ../src/libs/metadata_view.c:127 +#: ../src/libs/metadata_view.c:129 msgid "version" msgstr "Version" -#: ../src/libs/metadata_view.c:130 +#: ../src/libs/metadata_view.c:132 msgid "import timestamp" msgstr "Date importation" -#: ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:133 msgid "change timestamp" msgstr "Date changement" -#: ../src/libs/metadata_view.c:132 +#: ../src/libs/metadata_view.c:134 msgid "export timestamp" msgstr "Date exportation" -#: ../src/libs/metadata_view.c:133 +#: ../src/libs/metadata_view.c:135 msgid "print timestamp" msgstr "Date impression" -#: ../src/libs/metadata_view.c:134 +#: ../src/libs/metadata_view.c:136 msgid "flags" msgstr "États" -#: ../src/libs/metadata_view.c:144 +#: ../src/libs/metadata_view.c:146 +msgid "35mm equiv focal length" +msgstr "Longueur focale équiv 35mm" + +#: ../src/libs/metadata_view.c:148 msgid "focus distance" msgstr "Mise au point" -#: ../src/libs/metadata_view.c:146 +#: ../src/libs/metadata_view.c:150 msgid "datetime" msgstr "Date/Heure" -#: ../src/libs/metadata_view.c:149 +#: ../src/libs/metadata_view.c:153 msgid "export width" msgstr "Largeur recadrée" -#: ../src/libs/metadata_view.c:150 +#: ../src/libs/metadata_view.c:154 msgid "export height" msgstr "Hauteur recadrée" -#: ../src/libs/metadata_view.c:158 +#: ../src/libs/metadata_view.c:162 msgid "longitude" msgstr "Longitude" -#: ../src/libs/metadata_view.c:159 +#: ../src/libs/metadata_view.c:163 msgid "elevation" msgstr "Élévation" -#: ../src/libs/metadata_view.c:163 +#: ../src/libs/metadata_view.c:167 msgid "categories" msgstr "Catégories" -#: ../src/libs/metadata_view.c:170 +#: ../src/libs/metadata_view.c:174 msgid "image information" msgstr "Informations de l’image" -#: ../src/libs/metadata_view.c:330 +#: ../src/libs/metadata_view.c:334 msgid "unused/deprecated" msgstr "Non utilisé/déprécié" -#: ../src/libs/metadata_view.c:331 +#: ../src/libs/metadata_view.c:335 msgid "LDR" msgstr "LDR" -#: ../src/libs/metadata_view.c:334 +#: ../src/libs/metadata_view.c:338 msgid "marked for deletion" msgstr "Marqué pour suppression" -#: ../src/libs/metadata_view.c:335 +#: ../src/libs/metadata_view.c:339 msgid "auto-applying presets applied" msgstr "Préréglage automatique appliqué" -#: ../src/libs/metadata_view.c:337 +#: ../src/libs/metadata_view.c:341 msgid "has .txt" msgstr "Fichier .txt associé" -#: ../src/libs/metadata_view.c:338 +#: ../src/libs/metadata_view.c:342 msgid "has .wav" msgstr "Fichier .wav associé" -#: ../src/libs/metadata_view.c:356 +#: ../src/libs/metadata_view.c:360 #, c-format msgid "image has %d star" msgid_plural "image has %d stars" msgstr[0] "L’image a %d étoile" msgstr[1] "L’image a %d étoiles" -#: ../src/libs/metadata_view.c:432 +#: ../src/libs/metadata_view.c:436 #, c-format msgid "loader: %s" msgstr "Chargement : %s" -#: ../src/libs/metadata_view.c:623 +#: ../src/libs/metadata_view.c:626 msgid "<various values>" msgstr "<valeurs diverses>" -#: ../src/libs/metadata_view.c:636 +#: ../src/libs/metadata_view.c:639 #, c-format msgid "" "double-click to jump to film roll\n" @@ -23044,32 +23764,28 @@ "Double clic pour aller à la pellicule\n" "%s." -#: ../src/libs/metadata_view.c:728 +#: ../src/libs/metadata_view.c:731 #, c-format msgid "%+.2f EV" msgstr "%+.2f IL" -#: ../src/libs/metadata_view.c:735 -#, c-format -msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" -msgstr "%.1f mm (%.1f mm FF, facteur %.1f)" - -#: ../src/libs/metadata_view.c:740 +#: ../src/libs/metadata_view.c:737 ../src/libs/metadata_view.c:749 +#: ../src/libs/metadata_view.c:754 #, c-format msgid "%.1f mm" msgstr "%.1f mm" -#: ../src/libs/metadata_view.c:751 +#: ../src/libs/metadata_view.c:778 #, c-format msgid "infinity" msgstr "Infini" -#: ../src/libs/metadata_view.c:755 +#: ../src/libs/metadata_view.c:782 #, c-format msgid "%.2f m" msgstr "%.2f M" -#: ../src/libs/metadata_view.c:1232 +#: ../src/libs/metadata_view.c:1262 msgid "" "drag and drop one row at a time until you get the desired order\n" "untick to hide metadata which are not of interest for you\n" @@ -23079,7 +23795,7 @@ " • Décocher pour masquer les métadonnées non voulues.\n" "Si des réglages différents sont nécessaires utiliser les préréglages." -#: ../src/libs/metadata_view.c:1388 +#: ../src/libs/metadata_view.c:1423 msgid "jump to film roll" msgstr "Aller à la pellicule" @@ -23104,7 +23820,7 @@ msgid "recent collections settings" msgstr "Préférences des collections récentes" -#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1769 +#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1753 msgid "workflow: scene-referred" msgstr "Flux de travail : relatif à la scène" @@ -23122,12 +23838,12 @@ #. FIXME don't check here if on/off is enabled, because it depends on image (reload_defaults) #. respond later to image changed signal -#: ../src/libs/modulegroups.c:306 ../src/libs/modulegroups.c:318 -#: ../src/libs/modulegroups.c:2427 ../src/libs/modulegroups.c:2429 +#: ../src/libs/modulegroups.c:307 ../src/libs/modulegroups.c:319 +#: ../src/libs/modulegroups.c:2411 ../src/libs/modulegroups.c:2413 msgid "on-off" msgstr "On/Off" -#: ../src/libs/modulegroups.c:498 ../src/libs/modulegroups.c:501 +#: ../src/libs/modulegroups.c:501 ../src/libs/modulegroups.c:504 msgid "" "this quick access widget is disabled as there are multiple instances of this " "module present. Please use the full module to access this widget..." @@ -23136,158 +23852,158 @@ "ce module.\n" "Utiliser le module à l’origine de l’instance." -#: ../src/libs/modulegroups.c:591 +#: ../src/libs/modulegroups.c:594 msgid "(some features may only be available in the full module interface)" msgstr "" "(Certaines fonctionnalités ne sont disponibles que dans le module complet.)" -#: ../src/libs/modulegroups.c:635 +#: ../src/libs/modulegroups.c:632 #, c-format msgid "go to the full version of the %s module" msgstr "Aller au module complet « %s »" -#: ../src/libs/modulegroups.c:1556 ../src/libs/modulegroups.c:1641 -#: ../src/libs/modulegroups.c:1677 ../src/libs/modulegroups.c:1727 -#: ../src/libs/modulegroups.c:1817 +#: ../src/libs/modulegroups.c:1538 ../src/libs/modulegroups.c:1624 +#: ../src/libs/modulegroups.c:1660 ../src/libs/modulegroups.c:1710 +#: ../src/libs/modulegroups.c:1801 msgctxt "modulegroup" msgid "base" msgstr "Base" -#: ../src/libs/modulegroups.c:1575 +#: ../src/libs/modulegroups.c:1557 msgctxt "modulegroup" msgid "tone" msgstr "Tonalité" -#: ../src/libs/modulegroups.c:1584 ../src/libs/modulegroups.c:1691 -#: ../src/libs/modulegroups.c:1741 +#: ../src/libs/modulegroups.c:1566 ../src/libs/modulegroups.c:1674 +#: ../src/libs/modulegroups.c:1724 msgctxt "modulegroup" msgid "color" msgstr "Couleur" -#: ../src/libs/modulegroups.c:1599 ../src/libs/modulegroups.c:1699 -#: ../src/libs/modulegroups.c:1746 +#: ../src/libs/modulegroups.c:1582 ../src/libs/modulegroups.c:1682 +#: ../src/libs/modulegroups.c:1730 msgctxt "modulegroup" msgid "correct" msgstr "Retouche" -#: ../src/libs/modulegroups.c:1617 ../src/libs/modulegroups.c:1711 -#: ../src/libs/modulegroups.c:1758 ../src/libs/modulegroups.c:2321 +#: ../src/libs/modulegroups.c:1600 ../src/libs/modulegroups.c:1694 +#: ../src/libs/modulegroups.c:1742 ../src/libs/modulegroups.c:2305 msgctxt "modulegroup" msgid "effect" msgstr "Effet" -#: ../src/libs/modulegroups.c:1635 +#: ../src/libs/modulegroups.c:1618 msgid "modules: all" msgstr "Modules : Tous" -#: ../src/libs/modulegroups.c:1656 +#: ../src/libs/modulegroups.c:1639 msgctxt "modulegroup" msgid "grading" msgstr "Étalonnage de couleur" -#: ../src/libs/modulegroups.c:1664 ../src/libs/modulegroups.c:2325 +#: ../src/libs/modulegroups.c:1647 ../src/libs/modulegroups.c:2309 msgctxt "modulegroup" msgid "effects" msgstr "Effets" -#: ../src/libs/modulegroups.c:1672 +#: ../src/libs/modulegroups.c:1655 msgid "workflow: beginner" msgstr "Flux de travail : débutant" -#: ../src/libs/modulegroups.c:1721 +#: ../src/libs/modulegroups.c:1704 msgid "workflow: display-referred" msgstr "Flux de travail : relatif à l’affichage" -#: ../src/libs/modulegroups.c:1773 +#: ../src/libs/modulegroups.c:1757 msgid "search only" msgstr "Chercher seulement" -#: ../src/libs/modulegroups.c:1779 ../src/libs/modulegroups.c:2090 -#: ../src/libs/modulegroups.c:2599 +#: ../src/libs/modulegroups.c:1763 ../src/libs/modulegroups.c:2074 +#: ../src/libs/modulegroups.c:2583 msgctxt "modulegroup" msgid "deprecated" msgstr "Déprécié" -#: ../src/libs/modulegroups.c:1792 +#: ../src/libs/modulegroups.c:1776 msgid "previous config" msgstr "Configuration précédente" -#: ../src/libs/modulegroups.c:1793 +#: ../src/libs/modulegroups.c:1777 msgid "previous layout" msgstr "Disposition précédente" -#: ../src/libs/modulegroups.c:1797 +#: ../src/libs/modulegroups.c:1781 msgid "previous config with new layout" msgstr "Configuration précédente avec une nouvelle disposition" -#: ../src/libs/modulegroups.c:1957 ../src/libs/modulegroups.c:2472 -#: ../src/libs/modulegroups.c:2484 +#: ../src/libs/modulegroups.c:1941 ../src/libs/modulegroups.c:2456 +#: ../src/libs/modulegroups.c:2468 msgid "remove this widget" msgstr "Supprimer ce contrôle" -#: ../src/libs/modulegroups.c:2107 ../src/libs/modulegroups.c:2347 +#: ../src/libs/modulegroups.c:2091 ../src/libs/modulegroups.c:2331 msgid "remove this module" msgstr "Supprimer ce module" #. does it belong to recommended modules ? -#: ../src/libs/modulegroups.c:2316 +#: ../src/libs/modulegroups.c:2300 msgid "base" msgstr "Base" -#: ../src/libs/modulegroups.c:2319 +#: ../src/libs/modulegroups.c:2303 msgid "tone" msgstr "Tonalité" -#: ../src/libs/modulegroups.c:2322 +#: ../src/libs/modulegroups.c:2306 msgid "technical" msgstr "Technique" -#: ../src/libs/modulegroups.c:2323 +#: ../src/libs/modulegroups.c:2307 msgid "grading" msgstr "Étalonnage des couleurs" -#: ../src/libs/modulegroups.c:2329 ../src/libs/modulegroups.c:2337 +#: ../src/libs/modulegroups.c:2313 ../src/libs/modulegroups.c:2321 msgid "add this module" msgstr "Ajouter ce module" #. show the submenu with all the modules -#: ../src/libs/modulegroups.c:2359 ../src/libs/modulegroups.c:2559 +#: ../src/libs/modulegroups.c:2343 ../src/libs/modulegroups.c:2543 msgid "all available modules" msgstr "Tous les modules disponibles" -#: ../src/libs/modulegroups.c:2367 +#: ../src/libs/modulegroups.c:2351 msgid "add module" msgstr "Ajouter un module" -#: ../src/libs/modulegroups.c:2372 +#: ../src/libs/modulegroups.c:2356 msgid "remove module" msgstr "Supprimer un module" -#: ../src/libs/modulegroups.c:2478 +#: ../src/libs/modulegroups.c:2462 msgid "header needed for other widgets" msgstr "Entête nécessaire pour les autres contrôles" -#: ../src/libs/modulegroups.c:2494 ../src/libs/modulegroups.c:2501 +#: ../src/libs/modulegroups.c:2478 ../src/libs/modulegroups.c:2485 msgid "add this widget" msgstr "Ajouter ce contrôle" -#: ../src/libs/modulegroups.c:2514 +#: ../src/libs/modulegroups.c:2498 msgid "currently invisible" msgstr "Actuellement invisible" -#: ../src/libs/modulegroups.c:2543 +#: ../src/libs/modulegroups.c:2527 msgid "add widget" msgstr "Ajouter un contrôle" -#: ../src/libs/modulegroups.c:2548 +#: ../src/libs/modulegroups.c:2532 msgid "remove widget" msgstr "Supprimer un contrôle" -#: ../src/libs/modulegroups.c:2653 +#: ../src/libs/modulegroups.c:2637 msgid "show all history modules" msgstr "Afficher tous les modules de l’historique" -#: ../src/libs/modulegroups.c:2656 ../src/libs/modulegroups.c:3834 +#: ../src/libs/modulegroups.c:2640 ../src/libs/modulegroups.c:3836 msgid "" "show modules that are present in the history stack, regardless of whether or " "not they are currently enabled" @@ -23295,7 +24011,7 @@ "Affiche les modules présents dans l’historique qu’ils soient ou non " "actuellement activés" -#: ../src/libs/modulegroups.c:2747 ../src/libs/modulegroups.c:2816 +#: ../src/libs/modulegroups.c:2731 ../src/libs/modulegroups.c:2823 msgid "" "the following modules are deprecated because they have internal design " "mistakes that can't be corrected and alternative modules that correct them.\n" @@ -23307,19 +24023,19 @@ "Ils ne seront plus disponibles pour les nouveaux développements dans la " "prochaine version." -#: ../src/libs/modulegroups.c:2775 ../src/libs/modulegroups.c:2776 +#: ../src/libs/modulegroups.c:2782 ../src/libs/modulegroups.c:2783 msgid "quick access panel" msgstr "Panneau d’accès rapide" -#: ../src/libs/modulegroups.c:2786 +#: ../src/libs/modulegroups.c:2793 msgid "show only active modules" msgstr "Afficher seulement les modules actifs" -#: ../src/libs/modulegroups.c:2787 +#: ../src/libs/modulegroups.c:2794 msgid "active modules" msgstr "Modules actifs" -#: ../src/libs/modulegroups.c:2792 +#: ../src/libs/modulegroups.c:2799 msgid "" "presets\n" "ctrl+click to manage" @@ -23327,143 +24043,147 @@ "Préréglages\n" "Ctrl+clic pour gérer." -#: ../src/libs/modulegroups.c:2798 +#: ../src/libs/modulegroups.c:2805 msgid "search modules" msgstr "Rechercher dans les modules" -#: ../src/libs/modulegroups.c:2799 +#: ../src/libs/modulegroups.c:2806 msgid "search modules by name or tag" msgstr "Rechercher les modules par nom ou mots-clés" -#: ../src/libs/modulegroups.c:2809 +#: ../src/libs/modulegroups.c:2816 msgid "clear text" msgstr "Effacer le texte" -#: ../src/libs/modulegroups.c:3051 +#: ../src/libs/modulegroups.c:3056 msgid "basic icon" msgstr "Icône base" -#: ../src/libs/modulegroups.c:3061 +#: ../src/libs/modulegroups.c:3066 msgid "active icon" msgstr "Icône actif" -#: ../src/libs/modulegroups.c:3071 +#: ../src/libs/modulegroups.c:3076 msgid "color icon" msgstr "Icône couleur" -#: ../src/libs/modulegroups.c:3081 +#: ../src/libs/modulegroups.c:3086 msgid "correct icon" msgstr "Icône correction" -#: ../src/libs/modulegroups.c:3091 +#: ../src/libs/modulegroups.c:3096 msgid "effect icon" msgstr "Icône effet" -#: ../src/libs/modulegroups.c:3101 +#: ../src/libs/modulegroups.c:3106 msgid "favorites icon" msgstr "Icône favoris" -#: ../src/libs/modulegroups.c:3111 +#: ../src/libs/modulegroups.c:3116 msgid "tone icon" msgstr "Icône tonalités" -#: ../src/libs/modulegroups.c:3121 +#: ../src/libs/modulegroups.c:3126 msgid "grading icon" msgstr "Icône étalonnage" -#: ../src/libs/modulegroups.c:3131 +#: ../src/libs/modulegroups.c:3136 msgid "technical icon" msgstr "Icône technique" -#: ../src/libs/modulegroups.c:3164 +#: ../src/libs/modulegroups.c:3169 msgid "quick access panel widgets" msgstr "Panneau d’accès rapide aux contrôles" -#: ../src/libs/modulegroups.c:3166 +#: ../src/libs/modulegroups.c:3171 msgid "quick access" msgstr "Accès rapide" -#: ../src/libs/modulegroups.c:3186 +#: ../src/libs/modulegroups.c:3191 msgid "add widget to the quick access panel" msgstr "Ajouter un contrôle au module d’accès rapide" -#: ../src/libs/modulegroups.c:3218 +#: ../src/libs/modulegroups.c:3223 msgid "group icon" msgstr "Icône groupe" -#: ../src/libs/modulegroups.c:3227 +#: ../src/libs/modulegroups.c:3232 msgid "group name" msgstr "Nom du groupe" -#: ../src/libs/modulegroups.c:3238 +#: ../src/libs/modulegroups.c:3243 msgid "remove group" msgstr "Supprimer le groupe" -#: ../src/libs/modulegroups.c:3264 +#: ../src/libs/modulegroups.c:3269 msgid "move group to the left" msgstr "Déplace le groupe vers la gauche" -#: ../src/libs/modulegroups.c:3272 +#: ../src/libs/modulegroups.c:3277 msgid "add module to the group" msgstr "Ajouter un module au groupe" -#: ../src/libs/modulegroups.c:3283 +#: ../src/libs/modulegroups.c:3288 msgid "move group to the right" msgstr "Déplace le groupe vers la droite" -#: ../src/libs/modulegroups.c:3463 +#: ../src/libs/modulegroups.c:3464 msgid "rename preset" msgstr "Renommer ce préréglage" -#: ../src/libs/modulegroups.c:3470 +#: ../src/libs/modulegroups.c:3467 +msgid "_rename" +msgstr "_Renommer" + +#: ../src/libs/modulegroups.c:3473 msgid "new preset name:" msgstr "Nom du préréglage :" -#: ../src/libs/modulegroups.c:3471 +#: ../src/libs/modulegroups.c:3474 msgid "a preset with this name already exists!" msgstr "Un préréglage avec ce nom existe déjà." -#: ../src/libs/modulegroups.c:3804 +#: ../src/libs/modulegroups.c:3806 msgid "preset: " msgstr "Préréglage : " -#: ../src/libs/modulegroups.c:3811 +#: ../src/libs/modulegroups.c:3813 msgid "remove the preset" msgstr "Supprimer ce préréglage" -#: ../src/libs/modulegroups.c:3813 +#: ../src/libs/modulegroups.c:3815 msgid "duplicate the preset" msgstr "Dupliquer ce préréglage" -#: ../src/libs/modulegroups.c:3815 +#: ../src/libs/modulegroups.c:3817 msgid "rename the preset" msgstr "Renommer ce préréglage" -#: ../src/libs/modulegroups.c:3817 +#: ../src/libs/modulegroups.c:3819 msgid "create a new empty preset" msgstr "Créer un nouveau préréglage vierge" -#: ../src/libs/modulegroups.c:3825 +#: ../src/libs/modulegroups.c:3827 msgid "show search line" msgstr "Montrer la zone de recherche" -#: ../src/libs/modulegroups.c:3828 +#: ../src/libs/modulegroups.c:3830 msgid "show quick access panel" msgstr "Afficher le panneau d’accès rapide" -#: ../src/libs/modulegroups.c:3831 +#: ../src/libs/modulegroups.c:3833 msgid "show all history modules in active group" msgstr "Afficher tous les modules de l’historique dans le groupe actif" -#: ../src/libs/modulegroups.c:3843 +#: ../src/libs/modulegroups.c:3845 msgid "auto-apply this preset" msgstr "Appliquer automatiquement ce préréglage" -#: ../src/libs/modulegroups.c:3858 +#: ../src/libs/modulegroups.c:3860 msgid "module groups" msgstr "Groupes de modules" -#: ../src/libs/modulegroups.c:3875 +#: ../src/libs/modulegroups.c:3877 msgid "" "this is a built-in read-only preset. duplicate it if you want to make changes" msgstr "" @@ -23473,16 +24193,16 @@ msgid "navigation" msgstr "Navigation" -#: ../src/libs/navigation.c:111 ../src/libs/navigation.c:191 +#: ../src/libs/navigation.c:112 ../src/libs/navigation.c:194 msgctxt "navigationbox" msgid "fill" msgstr "Rempli" -#: ../src/libs/navigation.c:114 ../src/libs/navigation.c:189 +#: ../src/libs/navigation.c:115 ../src/libs/navigation.c:192 msgid "small" msgstr "Petit" -#: ../src/libs/navigation.c:151 +#: ../src/libs/navigation.c:154 msgid "" "navigation\n" "click or drag to position zoomed area in center view" @@ -23490,35 +24210,35 @@ "Navigation\n" "Cliquer ou déplacer pour positionner la zone dans la vue centrale." -#: ../src/libs/navigation.c:173 +#: ../src/libs/navigation.c:176 msgid "hide navigation thumbnail" msgstr "Basculer la miniature de navigation" -#: ../src/libs/navigation.c:187 +#: ../src/libs/navigation.c:190 msgid "image zoom level" msgstr "Niveau de zoom de l’image" -#: ../src/libs/navigation.c:192 +#: ../src/libs/navigation.c:195 msgid "50%" msgstr "50 %" -#: ../src/libs/navigation.c:193 +#: ../src/libs/navigation.c:196 msgid "100%" msgstr "100 %" -#: ../src/libs/navigation.c:194 +#: ../src/libs/navigation.c:197 msgid "200%" msgstr "200 %" -#: ../src/libs/navigation.c:195 +#: ../src/libs/navigation.c:198 msgid "400%" msgstr "400 %" -#: ../src/libs/navigation.c:196 +#: ../src/libs/navigation.c:199 msgid "800%" msgstr "800 %" -#: ../src/libs/navigation.c:197 +#: ../src/libs/navigation.c:200 msgid "1600%" msgstr "1600 %" @@ -23765,15 +24485,15 @@ msgid "print with current settings" msgstr "Imprime avec les réglages actuels" -#: ../src/libs/select.c:136 +#: ../src/libs/select.c:137 msgid "select all images in current collection" msgstr "Sélectionne toutes les images de la collection actuelle" -#: ../src/libs/select.c:140 +#: ../src/libs/select.c:141 msgid "clear selection" msgstr "Aucune sélection" -#: ../src/libs/select.c:144 +#: ../src/libs/select.c:145 msgid "" "select unselected images\n" "in current collection" @@ -23781,7 +24501,7 @@ "Sélectionne les images non sélectionnées\n" "dans la collection actuelle." -#: ../src/libs/select.c:148 +#: ../src/libs/select.c:149 msgid "" "select all images which are in the same\n" "film roll as the selected images" @@ -23789,7 +24509,7 @@ "Sélectionne toutes les images \n" "d’un même dossier." -#: ../src/libs/select.c:152 +#: ../src/libs/select.c:153 msgid "" "select untouched images in\n" "current collection" @@ -23809,29 +24529,33 @@ msgid "create" msgstr "Créer" -#: ../src/libs/snapshots.c:92 +#: ../src/libs/snapshots.c:88 msgid "snapshots" msgstr "Instantanés" -#: ../src/libs/snapshots.c:141 +#: ../src/libs/snapshots.c:137 msgctxt "snapshot sign" msgid "S" msgstr "S" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:662 +msgid "snapshots for removed image have been deleted" +msgstr "Les instantanés pour les images supprimées ont été enlévé" + +#: ../src/libs/snapshots.c:703 #, c-format msgid "↗ %s '%s'" msgstr "↗ %s « %s »" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:703 msgid "this snapshot was taken from" msgstr "Cet instantané a été pris depuis" -#: ../src/libs/snapshots.c:663 +#: ../src/libs/snapshots.c:742 msgid "take snapshot" msgstr "Prendre un instantané" -#: ../src/libs/snapshots.c:665 +#: ../src/libs/snapshots.c:744 msgid "" "take snapshot to compare with another image or the same image at another " "stage of development" @@ -23839,7 +24563,7 @@ "Prend un instantané pour le comparer avec une autre image\n" "ou avec la même à une autre étape du développement." -#: ../src/libs/snapshots.c:734 +#: ../src/libs/snapshots.c:790 msgid "toggle last snapshot" msgstr "Basculer le dernier instantané" @@ -23856,31 +24580,35 @@ msgstr[0] "Enlever %d style ?" msgstr[1] "Enlever %d styles ?" -#: ../src/libs/styles.c:444 ../src/libs/styles.c:627 +#: ../src/libs/styles.c:441 ../src/libs/styles.c:626 +msgid "_overwrite" +msgstr "_Écraser" + +#: ../src/libs/styles.c:446 ../src/libs/styles.c:631 #, c-format msgid "" "style `%s' already exists.\n" "do you want to overwrite existing style?\n" msgstr "Le style « %s » existe déjà, le remplacer ?\n" -#: ../src/libs/styles.c:446 ../src/libs/styles.c:629 +#: ../src/libs/styles.c:448 ../src/libs/styles.c:633 msgid "apply this option to all existing styles" msgstr "Appliquer ce choix à tous les styles" -#: ../src/libs/styles.c:509 +#: ../src/libs/styles.c:511 #, c-format msgid "style %s was successfully exported" msgstr "Le style « %s » a été exporté" -#: ../src/libs/styles.c:526 +#: ../src/libs/styles.c:528 msgid "select style" msgstr "Sélectionner le style" -#: ../src/libs/styles.c:536 +#: ../src/libs/styles.c:538 msgid "darktable style files" msgstr "Fichiers de style" -#: ../src/libs/styles.c:815 +#: ../src/libs/styles.c:819 msgid "" "available styles,\n" "double-click to apply" @@ -23888,76 +24616,76 @@ "Styles disponibles, \n" "double clic pour appliquer." -#: ../src/libs/styles.c:824 ../src/libs/styles.c:825 +#: ../src/libs/styles.c:828 ../src/libs/styles.c:829 msgid "filter style names" msgstr "Filtrer les styles" -#: ../src/libs/styles.c:837 +#: ../src/libs/styles.c:841 msgid "create duplicate" msgstr "Cloner l’image et appliquer le style" -#: ../src/libs/styles.c:844 +#: ../src/libs/styles.c:848 msgid "creates a duplicate of the image before applying style" msgstr "Crée une image virtuelle avant d’appliquer le style" -#: ../src/libs/styles.c:862 +#: ../src/libs/styles.c:866 msgid "create..." msgstr "Créer…" -#: ../src/libs/styles.c:864 +#: ../src/libs/styles.c:868 msgid "create styles from history stack of selected images" msgstr "Créer des styles à partir des images sélectionnées" -#: ../src/libs/styles.c:869 ../src/libs/tagging.c:2252 +#: ../src/libs/styles.c:873 ../src/libs/tagging.c:2283 msgid "edit..." msgstr "Éditer…" -#: ../src/libs/styles.c:871 +#: ../src/libs/styles.c:875 msgid "edit the selected styles in list above" msgstr "Modifie les styles sélectionnés dans la liste ci-dessus" -#: ../src/libs/styles.c:878 +#: ../src/libs/styles.c:882 msgid "removes the selected styles in list above" msgstr "Enlève les styles sélectionnés dans la liste ci-dessus" -#: ../src/libs/styles.c:885 +#: ../src/libs/styles.c:889 msgid "import styles from a style files" msgstr "Importer des styles depuis des fichiers" -#: ../src/libs/styles.c:892 +#: ../src/libs/styles.c:896 msgid "export the selected styles into a style files" msgstr "Exporter les styles sélectionnés dans un fichier de styles" -#: ../src/libs/styles.c:899 +#: ../src/libs/styles.c:903 msgid "apply the selected styles in list above to selected images" msgstr "" "Appliquer aux images sélectionnées les styles choisis dans la liste ci-dessus" -#: ../src/libs/tagging.c:105 +#: ../src/libs/tagging.c:109 msgid "tagging" msgstr "Mots-clés" -#: ../src/libs/tagging.c:1255 +#: ../src/libs/tagging.c:1258 msgid "attach tag to all" msgstr "" "Attache le mot-clé\n" "à toutes les images sélectionnées." -#: ../src/libs/tagging.c:1263 ../src/libs/tagging.c:2225 +#: ../src/libs/tagging.c:1266 ../src/libs/tagging.c:2256 msgid "detach tag" msgstr "Détacher le mot-clé" -#: ../src/libs/tagging.c:1483 +#: ../src/libs/tagging.c:1486 msgid "delete tag?" msgstr "Supprimer le mot-clé ?" -#: ../src/libs/tagging.c:1490 ../src/libs/tagging.c:1578 -#: ../src/libs/tagging.c:1789 ../src/libs/tagging.c:2063 +#: ../src/libs/tagging.c:1496 ../src/libs/tagging.c:1587 +#: ../src/libs/tagging.c:1814 ../src/libs/tagging.c:2093 #, c-format msgid "selected: %s" msgstr "Sélectionné : « %s »" -#: ../src/libs/tagging.c:1497 +#: ../src/libs/tagging.c:1503 #, c-format msgid "" "do you really want to delete the tag `%s'?\n" @@ -23973,73 +24701,73 @@ "Il est assigné à %d images." # lorsque l’action n’engendre pas de suppression physique, on emploie le terme "enlever" -#: ../src/libs/tagging.c:1531 +#: ../src/libs/tagging.c:1537 #, c-format msgid "tag %s removed" msgstr "Mot-clé « %s » supprimé" -#: ../src/libs/tagging.c:1571 +#: ../src/libs/tagging.c:1577 msgid "delete node?" msgstr "Effacer le nœud ?" -#: ../src/libs/tagging.c:1585 +#: ../src/libs/tagging.c:1594 #, c-format msgid "<u>%d</u> tag will be deleted" msgid_plural "<u>%d</u> tags will be deleted" msgstr[0] "<u>%d</u> mot-clé sera supprimé" msgstr[1] "<u>%d</u> mots-clés seront supprimés" -#: ../src/libs/tagging.c:1590 ../src/libs/tagging.c:1801 -#: ../src/libs/tagging.c:2075 +#: ../src/libs/tagging.c:1599 ../src/libs/tagging.c:1826 +#: ../src/libs/tagging.c:2105 #, c-format msgid "<u>%d</u> image will be updated" msgid_plural "<u>%d</u> images will be updated" msgstr[0] "<u>%d</u> image sera mise à jour" msgstr[1] "<u>%d</u> images seront mises à jour" -#: ../src/libs/tagging.c:1616 +#: ../src/libs/tagging.c:1625 #, c-format msgid "%d tags removed" msgstr "%d mots-clés supprimés" -#: ../src/libs/tagging.c:1652 +#: ../src/libs/tagging.c:1668 msgid "create tag" msgstr "Créer un mot-clé" -#: ../src/libs/tagging.c:1662 ../src/libs/tagging.c:1809 +#: ../src/libs/tagging.c:1681 ../src/libs/tagging.c:1834 msgid "name: " msgstr "Nom : " -#: ../src/libs/tagging.c:1674 +#: ../src/libs/tagging.c:1696 #, c-format msgid "add to: \"%s\" " msgstr "Ajouter à « %s » " -#: ../src/libs/tagging.c:1680 ../src/libs/tagging.c:1824 +#: ../src/libs/tagging.c:1702 ../src/libs/tagging.c:1851 msgid "category" msgstr "Catégorie" -#: ../src/libs/tagging.c:1689 ../src/libs/tagging.c:1833 +#: ../src/libs/tagging.c:1711 ../src/libs/tagging.c:1860 msgid "synonyms: " msgstr "Synonymes : " -#: ../src/libs/tagging.c:1706 ../src/libs/tagging.c:1855 -#: ../src/libs/tagging.c:2097 +#: ../src/libs/tagging.c:1728 ../src/libs/tagging.c:1882 +#: ../src/libs/tagging.c:2128 msgid "empty tag is not allowed, aborting" msgstr "Mot-clé vide interdit, annulation." -#: ../src/libs/tagging.c:1717 +#: ../src/libs/tagging.c:1739 msgid "tag name already exists. aborting." msgstr "Le mot-clé existe déjà, annulation." -#: ../src/libs/tagging.c:1796 ../src/libs/tagging.c:2070 +#: ../src/libs/tagging.c:1821 ../src/libs/tagging.c:2100 #, c-format msgid "<u>%d</u> tag will be updated" msgid_plural "<u>%d</u> tags will be updated" msgstr[0] "<u>%d</u> mot-clé sera mis à jour" msgstr[1] "<u>%d</u> mots-clés seront mis à jour" -#: ../src/libs/tagging.c:1857 +#: ../src/libs/tagging.c:1884 msgid "" "'|' character is not allowed for renaming tag.\n" "to modify the hierarchy use rename path instead. Aborting." @@ -24047,101 +24775,101 @@ "« | » n’est pas utilisable dans le nom d’un mot-clé,\n" "pour modifier une hiérarchie utiliser l’action « Renommer le chemin »." -#: ../src/libs/tagging.c:1896 ../src/libs/tagging.c:2004 +#: ../src/libs/tagging.c:1923 ../src/libs/tagging.c:2031 #, c-format msgid "at least one new tag name (%s) already exists, aborting" msgstr "Au moins un nouveau mot-clé (%s) existe déjà, annulation." -#: ../src/libs/tagging.c:2056 +#: ../src/libs/tagging.c:2083 msgid "change path" msgstr "Changer le chemin" -#: ../src/libs/tagging.c:2099 +#: ../src/libs/tagging.c:2130 msgid "'|' misplaced, empty tag is not allowed, aborting" msgstr "« | » mal placé, un mot-clé vide est interdit, annulation" # lorsque l’action n’engendre pas de suppression physique, on emploie le terme "enlever" -#: ../src/libs/tagging.c:2195 +#: ../src/libs/tagging.c:2226 #, c-format msgid "tag %s created" msgstr "Mot-clé « %s » créé" -#: ../src/libs/tagging.c:2221 +#: ../src/libs/tagging.c:2252 msgid "attach tag" msgstr "Attacher le mot-clé" -#: ../src/libs/tagging.c:2234 +#: ../src/libs/tagging.c:2265 msgid "create tag..." msgstr "Créer un mot-clé…" -#: ../src/libs/tagging.c:2240 +#: ../src/libs/tagging.c:2271 msgid "delete tag" msgstr "Supprimer un mot-clé" -#: ../src/libs/tagging.c:2247 +#: ../src/libs/tagging.c:2278 msgid "delete node" msgstr "Supprimer le nœud" -#: ../src/libs/tagging.c:2260 +#: ../src/libs/tagging.c:2291 msgid "change path..." msgstr "Changer le chemin…" -#: ../src/libs/tagging.c:2270 +#: ../src/libs/tagging.c:2301 msgid "set as a tag" msgstr "Défini comme mot-clé" -#: ../src/libs/tagging.c:2281 +#: ../src/libs/tagging.c:2312 msgid "copy to entry" msgstr "Copier dans le champ de saisie" -#: ../src/libs/tagging.c:2298 +#: ../src/libs/tagging.c:2329 msgid "go to tag collection" msgstr "Aller à la collection liée au mot-clé" -#: ../src/libs/tagging.c:2304 +#: ../src/libs/tagging.c:2335 msgid "go back to work" msgstr "Retourner au module des mots-clés" -#: ../src/libs/tagging.c:2461 +#: ../src/libs/tagging.c:2492 #, c-format msgid "%s" msgstr "%s" -#: ../src/libs/tagging.c:2462 +#: ../src/libs/tagging.c:2493 msgid "(private)" msgstr "(privé)" -#: ../src/libs/tagging.c:2488 +#: ../src/libs/tagging.c:2519 msgid "select a keyword file" msgstr "Sélectionner un fichier de mot-clés" -#: ../src/libs/tagging.c:2501 +#: ../src/libs/tagging.c:2532 msgid "error importing tags" msgstr "Erreur lors de l’importation de mots-clés" -#: ../src/libs/tagging.c:2503 +#: ../src/libs/tagging.c:2534 #, c-format msgid "%zd tags imported" msgstr "« %zd » mots-clés importés" -#: ../src/libs/tagging.c:2524 +#: ../src/libs/tagging.c:2555 msgid "select file to export to" msgstr "Sélectionne le fichier pour l’exportation" -#: ../src/libs/tagging.c:2538 +#: ../src/libs/tagging.c:2569 msgid "error exporting tags" msgstr "Erreur lors de l’exportation de mots-clés" -#: ../src/libs/tagging.c:2540 +#: ../src/libs/tagging.c:2571 #, c-format msgid "%zd tags exported" msgstr "« %zd » mots-clés exportés" -#: ../src/libs/tagging.c:2964 +#: ../src/libs/tagging.c:2995 msgid "drop to root" msgstr "Replacer à la racine" -#: ../src/libs/tagging.c:3100 +#: ../src/libs/tagging.c:3131 msgid "" "attached tags\n" "press Delete or double-click to detach\n" @@ -24153,47 +24881,47 @@ " • Clic droit pour afficher le menu des actions du mot-clé sélectionné,\n" " • Touche Tab pour donner le focus à la zone d’entrée." -#: ../src/libs/tagging.c:3111 +#: ../src/libs/tagging.c:3142 msgid "attach" msgstr "Attacher" -#: ../src/libs/tagging.c:3112 +#: ../src/libs/tagging.c:3143 msgid "attach tag to all selected images" msgstr "Attacher le mot-clé aux images sélectionnées" -#: ../src/libs/tagging.c:3115 +#: ../src/libs/tagging.c:3146 msgid "detach" msgstr "Détacher" -#: ../src/libs/tagging.c:3116 +#: ../src/libs/tagging.c:3147 msgid "detach tag from all selected images" msgstr "Détacher le mot-clé des images sélectionnées" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "toggle list with / without hierarchy" msgstr "Basculer la liste hiérarchique" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "hide" msgstr "Cacher" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "toggle sort by name or by count" msgstr "Changer le classement par nom ou par nombre" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "sort" msgstr "Trier" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "toggle show or not darktable tags" msgstr "Basculer l’affichage des mots-clés spécifiques à darktable" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "dttags" msgstr "Dttags" -#: ../src/libs/tagging.c:3149 +#: ../src/libs/tagging.c:3180 msgid "" "enter tag name\n" "press Enter to create a new tag and attach it on selected images\n" @@ -24205,11 +24933,11 @@ " • Touches Tab ou Bas pour aller vers le premier mot-clé affiché,\n" " • Maj+Tab pour sélectionner le premier mot-clé utilisateur attaché." -#: ../src/libs/tagging.c:3160 ../src/libs/tagging.c:3166 +#: ../src/libs/tagging.c:3191 ../src/libs/tagging.c:3197 msgid "clear entry" msgstr "Effacer le texte" -#: ../src/libs/tagging.c:3213 +#: ../src/libs/tagging.c:3244 msgid "" "tag dictionary,\n" "Enter or double-click to attach selected tag on selected images\n" @@ -24226,48 +24954,48 @@ " • Clic droit pour les autres actions sur le mot-clé sélectionné,\n" " • Maj+Tab pour donner le focus à la zone de saisie." -#: ../src/libs/tagging.c:3248 +#: ../src/libs/tagging.c:3279 msgid "" "create a new tag with the\n" "name you entered" msgstr "Créer un nouveau mot-clé à partir de la saisie" -#: ../src/libs/tagging.c:3251 +#: ../src/libs/tagging.c:3282 msgid "import tags from a Lightroom keyword file" msgstr "Importer des mots-clés depuis un fichier de mots-clés Lightroom" -#: ../src/libs/tagging.c:3254 +#: ../src/libs/tagging.c:3285 msgid "export all tags to a Lightroom keyword file" msgstr "Exporter tous les mots-clés dans un fichier de mots-clés Lightroom" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "toggle list / tree view" msgstr "Changer la vue liste / arbre" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "tree" msgstr "Arbre" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "toggle list with / without suggestion" -msgstr "Basculer les suggestions" +msgstr "Afficher la liste avec / sans les suggestions" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "suggestion" msgstr "Suggestion" -#: ../src/libs/tagging.c:3282 +#: ../src/libs/tagging.c:3313 msgid "redo last tag" msgstr "Ré-appliquer le mot-clé" -#: ../src/libs/tagging.c:3365 +#: ../src/libs/tagging.c:3396 msgid "" "tag shortcut is not active with tag tree view. please switch to list view" msgstr "" "Le raccourci de mots-clés n’est pas actif lorsque la vue est arborescente, " "changer pour la vue en liste." -#: ../src/libs/tagging.c:3469 +#: ../src/libs/tagging.c:3500 msgid "tagging settings" msgstr "Paramètres des mots-clés" @@ -24284,34 +25012,6 @@ msgid "toggle color label of selected images" msgstr "Basculer le label de couleur des images sélectionnées" -#: ../src/libs/tools/darktable.c:284 -#, c-format -msgid "copyright (c) the authors 2009-%s" -msgstr "Copyright © les auteurs 2009-%s" - -#: ../src/libs/tools/darktable.c:288 -msgid "organize and develop images from digital cameras" -msgstr "Organiser et développer les images d’un boîtier numérique" - -#: ../src/libs/tools/darktable.c:300 -msgid "all those of you that made previous releases possible" -msgstr "tous ceux qui ont participé aux versions précédentes" - -#: ../src/libs/tools/darktable.c:305 -msgid "and..." -msgstr "et…" - -#: ../src/libs/tools/darktable.c:307 -msgid "translator-credits" -msgstr "" -"Pascal Obry\n" -"\n" -"Versions précédentes :\n" -"Nicolas Auffray\n" -"Olivier Tribout\n" -"Sébastien Delcoigne\n" -"Nicolas Carlier" - #: ../src/libs/tools/filmstrip.c:45 msgid "filmstrip" msgstr "Bandeau" @@ -24631,35 +25331,35 @@ msgid "click to enter culling layout in dynamic mode." msgstr "Vue sélection en mode dynamique" -#: ../src/libs/tools/lighttable.c:368 +#: ../src/libs/tools/lighttable.c:365 msgid "toggle filemanager layout" msgstr "Basculer la vue navigateur de fichiers" -#: ../src/libs/tools/lighttable.c:371 +#: ../src/libs/tools/lighttable.c:368 msgid "click to enter filemanager layout." msgstr "Vue navigateur de fichiers" -#: ../src/libs/tools/lighttable.c:377 +#: ../src/libs/tools/lighttable.c:374 msgid "toggle zoomable lighttable layout" msgstr "Basculer la vue table lumineuse zoomable" -#: ../src/libs/tools/lighttable.c:380 +#: ../src/libs/tools/lighttable.c:377 msgid "click to enter zoomable lighttable layout." msgstr "Vue table lumineuse zoomable" -#: ../src/libs/tools/lighttable.c:386 +#: ../src/libs/tools/lighttable.c:383 msgid "toggle culling mode" msgstr "Basculer le mode tri/sélection" -#: ../src/libs/tools/lighttable.c:394 +#: ../src/libs/tools/lighttable.c:391 msgid "toggle culling dynamic mode" msgstr "Basculer le mode sélection dynamique" -#: ../src/libs/tools/lighttable.c:441 +#: ../src/libs/tools/lighttable.c:438 msgid "toggle culling zoom mode" msgstr "Basculer le mode sélection zoomé" -#: ../src/libs/tools/lighttable.c:443 +#: ../src/libs/tools/lighttable.c:440 msgid "exit current layout" msgstr "Quitter la vue courante" @@ -24742,7 +25442,7 @@ msgid "Lua options" msgstr "Options Lua" -#: ../src/views/darkroom.c:607 +#: ../src/views/darkroom.c:503 #, c-format msgid "" "darktable could not load `%s', switching to lighttable now.\n" @@ -24763,62 +25463,62 @@ "Si l’appareil figure dans la liste, merci d’ouvrir un ticket\n" "sur https://github.com/darktable-org/darktable" -#: ../src/views/darkroom.c:625 +#: ../src/views/darkroom.c:521 #, c-format msgctxt "darkroom" msgid "loading `%s' ..." msgstr "Chargement de « %s »…" -#: ../src/views/darkroom.c:749 ../src/views/darkroom.c:2496 +#: ../src/views/darkroom.c:668 ../src/views/darkroom.c:2335 msgid "gamut check" msgstr "Vérification de gamut" -#: ../src/views/darkroom.c:749 +#: ../src/views/darkroom.c:668 msgid "soft proof" msgstr "Épreuvage" #. fail :( -#: ../src/views/darkroom.c:787 ../src/views/print.c:356 +#: ../src/views/darkroom.c:708 ../src/views/print.c:356 msgid "no image to open!" msgstr "Aucune image à ouvrir." -#: ../src/views/darkroom.c:1331 +#: ../src/views/darkroom.c:1232 msgid "no user-defined presets for favorite modules were found" msgstr "Pas de préréglage trouvé pour les modules favoris" -#: ../src/views/darkroom.c:1476 +#: ../src/views/darkroom.c:1377 msgid "no styles have been created yet" msgstr "Aucun style disponible" -#: ../src/views/darkroom.c:2331 ../src/views/darkroom.c:2332 +#: ../src/views/darkroom.c:2170 ../src/views/darkroom.c:2171 msgid "quick access to presets" msgstr "Accès rapide aux préréglages" -#: ../src/views/darkroom.c:2340 +#: ../src/views/darkroom.c:2179 msgid "quick access to styles" msgstr "Accès rapide aux styles" -#: ../src/views/darkroom.c:2342 +#: ../src/views/darkroom.c:2181 msgid "quick access for applying any of your styles" msgstr "Accès rapide aux styles" -#: ../src/views/darkroom.c:2348 +#: ../src/views/darkroom.c:2187 msgid "second window" msgstr "Seconde fenêtre" -#: ../src/views/darkroom.c:2351 +#: ../src/views/darkroom.c:2190 msgid "display a second darkroom image window" msgstr "Activer l’affichage secondaire de la chambre noire" -#: ../src/views/darkroom.c:2356 +#: ../src/views/darkroom.c:2195 msgid "color assessment" msgstr "Évaluation des couleurs" -#: ../src/views/darkroom.c:2359 +#: ../src/views/darkroom.c:2198 msgid "toggle ISO 12646 color assessment conditions" msgstr "Basculer les conditions d’évaluation des couleurs ISO 12646" -#: ../src/views/darkroom.c:2372 +#: ../src/views/darkroom.c:2211 msgid "" "toggle raw over exposed indication\n" "right click for options" @@ -24826,27 +25526,27 @@ "Basculer les zones sur/sous-exposées RAW.\n" "Clic droit pour les options." -#: ../src/views/darkroom.c:2388 +#: ../src/views/darkroom.c:2227 msgid "select how to mark the clipped pixels" msgstr "Sélectionner comment marquer les pixels tronqués" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with CFA color" msgstr "Marquer les couleurs CFA" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with solid color" msgstr "Marquer avec une couleur unie" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "false color" msgstr "Fausses couleurs" -#: ../src/views/darkroom.c:2393 ../src/views/darkroom.c:2444 +#: ../src/views/darkroom.c:2232 ../src/views/darkroom.c:2283 msgid "color scheme" msgstr "Schéma de couleur" -#: ../src/views/darkroom.c:2394 +#: ../src/views/darkroom.c:2233 msgid "" "select the solid color to indicate over exposure.\n" "will only be used if mode = mark with solid color" @@ -24854,27 +25554,27 @@ "Sélectionner la couleur pour marquer les sur-expositions.\n" "À utiliser uniquement si le mode est « marquer avec une couleur unie »." -#: ../src/views/darkroom.c:2397 +#: ../src/views/darkroom.c:2236 msgctxt "solidcolor" msgid "red" msgstr "Rouge" -#: ../src/views/darkroom.c:2398 +#: ../src/views/darkroom.c:2237 msgctxt "solidcolor" msgid "green" msgstr "Vert" -#: ../src/views/darkroom.c:2399 +#: ../src/views/darkroom.c:2238 msgctxt "solidcolor" msgid "blue" msgstr "Bleu" -#: ../src/views/darkroom.c:2400 +#: ../src/views/darkroom.c:2239 msgctxt "solidcolor" msgid "black" msgstr "Noir" -#: ../src/views/darkroom.c:2408 +#: ../src/views/darkroom.c:2247 msgid "" "threshold of what shall be considered overexposed\n" "1.0 - white level\n" @@ -24884,7 +25584,7 @@ "1.0 : niveau du blanc\n" "0.0 : niveau du noir" -#: ../src/views/darkroom.c:2422 +#: ../src/views/darkroom.c:2261 msgid "" "toggle clipping indication\n" "right click for options" @@ -24892,11 +25592,11 @@ "Basculer les zones tronquées.\n" "Clic droit pour les options." -#: ../src/views/darkroom.c:2437 +#: ../src/views/darkroom.c:2276 msgid "clipping preview mode" msgstr "Seuil de troncature" -#: ../src/views/darkroom.c:2438 +#: ../src/views/darkroom.c:2277 msgid "" "select the metric you want to preview\n" "full gamut is the combination of all other modes" @@ -24904,39 +25604,39 @@ "Sélectionne le mode de prévisualisation.\n" "« Gamut complet » est la combinaison de tous les autres modes." -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "full gamut" msgstr "Gamut complet" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "any RGB channel" msgstr "Un canal RVB" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "luminance only" msgstr "Luminance seulement" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "saturation only" msgstr "Saturation seulement" -#: ../src/views/darkroom.c:2445 +#: ../src/views/darkroom.c:2284 msgid "select colors to indicate clipping" msgstr "Sélectionne les couleurs indiquant le troncature" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "red & blue" msgstr "Rouge et bleu" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "purple & green" msgstr "Violet et vert" -#: ../src/views/darkroom.c:2454 +#: ../src/views/darkroom.c:2293 msgid "lower threshold" msgstr "Seuil bas" -#: ../src/views/darkroom.c:2455 +#: ../src/views/darkroom.c:2294 msgid "" "clipping threshold for the black point,\n" "in EV, relatively to white (0 EV).\n" @@ -24955,11 +25655,11 @@ " • Un papier couleur brillant produit des noirs à –8.00 IL,\n" " • Un papier noir et blanc brillant produit des noirs à –9.00 IL." -#: ../src/views/darkroom.c:2471 +#: ../src/views/darkroom.c:2310 msgid "upper threshold" msgstr "Seuil haut" -#: ../src/views/darkroom.c:2473 +#: ../src/views/darkroom.c:2312 #, no-c-format msgid "" "clipping threshold for the white point.\n" @@ -24968,11 +25668,11 @@ "Seuil de troncature du point blanc.\n" "100 % est la luminance moyenne de crête." -#: ../src/views/darkroom.c:2485 +#: ../src/views/darkroom.c:2324 msgid "softproof" msgstr "Épreuvage" -#: ../src/views/darkroom.c:2488 +#: ../src/views/darkroom.c:2327 msgid "" "toggle softproofing\n" "right click for profile options" @@ -24980,7 +25680,7 @@ "Basculer l’épreuvage écran,\n" "Clic droit pour les options de profil." -#: ../src/views/darkroom.c:2499 +#: ../src/views/darkroom.c:2338 msgid "" "toggle gamut checking\n" "right click for profile options" @@ -24988,47 +25688,55 @@ "Basculer la vérification de gamut,\n" "Clic droit pour les options de profil." -#: ../src/views/darkroom.c:2524 ../src/views/darkroom.c:2526 -#: ../src/views/darkroom.c:2540 ../src/views/darkroom.c:2541 -#: ../src/views/darkroom.c:2542 ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2365 ../src/views/darkroom.c:2367 +#: ../src/views/darkroom.c:2381 ../src/views/darkroom.c:2382 +#: ../src/views/darkroom.c:2383 ../src/views/darkroom.c:2384 #: ../src/views/lighttable.c:1182 ../src/views/lighttable.c:1184 msgid "profiles" msgstr "Profils" # "Rendu" plutôt que "Prévisualiser l’intention", càd idem que l'écran primaire -#: ../src/views/darkroom.c:2526 ../src/views/lighttable.c:1184 +#: ../src/views/darkroom.c:2367 ../src/views/lighttable.c:1184 msgid "preview intent" msgstr "Rendu" -#: ../src/views/darkroom.c:2540 ../src/views/lighttable.c:1188 +#: ../src/views/darkroom.c:2381 ../src/views/lighttable.c:1188 msgid "display profile" msgstr "Profil (écran primaire)" -#: ../src/views/darkroom.c:2541 ../src/views/lighttable.c:1191 +#: ../src/views/darkroom.c:2382 ../src/views/lighttable.c:1191 msgid "preview display profile" msgstr "Profil (écran secondaire)" -#: ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2384 msgid "histogram profile" msgstr "Profil de l’histogramme" -#: ../src/views/darkroom.c:2605 ../src/views/lighttable.c:1225 +#: ../src/views/darkroom.c:2391 +msgid "second preview window ISO 12646 color assessment" +msgstr "Évaluation des couleurs ISO 12646 pour la seconde fenêtre" + +#: ../src/views/darkroom.c:2393 +msgid "color assessment second preview" +msgstr "Évaluation des couleurs pour la seconde fenêtre" + +#: ../src/views/darkroom.c:2452 ../src/views/lighttable.c:1225 msgid "display ICC profiles" msgstr "profils ICC d'affichage" -#: ../src/views/darkroom.c:2609 ../src/views/lighttable.c:1229 +#: ../src/views/darkroom.c:2456 ../src/views/lighttable.c:1229 msgid "preview display ICC profiles" msgstr "profils ICC de prévisualisation" -#: ../src/views/darkroom.c:2613 +#: ../src/views/darkroom.c:2460 msgid "softproof ICC profiles" msgstr "profiles ICC d'épreuvage" -#: ../src/views/darkroom.c:2617 +#: ../src/views/darkroom.c:2464 msgid "histogram and color picker ICC profiles" msgstr "profils ICC de l’histogramme et la pipette" -#: ../src/views/darkroom.c:2651 +#: ../src/views/darkroom.c:2497 msgid "" "toggle guide lines\n" "right click for guides options" @@ -25037,137 +25745,137 @@ "Clic droit pour les options des guides." #. Fullscreen preview key -#: ../src/views/darkroom.c:2668 +#: ../src/views/darkroom.c:2514 msgid "full preview" msgstr "Aperçu complet" #. add an option to allow skip mouse events while other overlays are consuming mouse actions -#: ../src/views/darkroom.c:2672 +#: ../src/views/darkroom.c:2518 msgid "force pan/zoom/rotate with mouse" msgstr "Forcer déplacer/zoomer/tourner avec la souris" #. Zoom shortcuts -#: ../src/views/darkroom.c:2684 +#: ../src/views/darkroom.c:2530 msgid "zoom close-up" msgstr "Zoom en gros plan" #. zoom in/out #. zoom in/out/min/max -#: ../src/views/darkroom.c:2687 ../src/views/lighttable.c:1283 +#: ../src/views/darkroom.c:2533 ../src/views/lighttable.c:1283 msgid "zoom in" msgstr "Zoom" -#: ../src/views/darkroom.c:2688 ../src/views/lighttable.c:1285 +#: ../src/views/darkroom.c:2534 ../src/views/lighttable.c:1285 msgid "zoom out" msgstr "Dézoom" #. Shortcut to skip images -#: ../src/views/darkroom.c:2691 +#: ../src/views/darkroom.c:2537 msgid "image forward" msgstr "Image suivante" -#: ../src/views/darkroom.c:2692 +#: ../src/views/darkroom.c:2538 msgid "image back" msgstr "Image précédente" #. cycle overlay colors -#: ../src/views/darkroom.c:2695 +#: ../src/views/darkroom.c:2541 msgid "cycle overlay colors" msgstr "Changer la couleur des superpositions" #. toggle visibility of drawn masks for current gui module -#: ../src/views/darkroom.c:2698 +#: ../src/views/darkroom.c:2544 msgid "show drawn masks" msgstr "Afficher les masques dessinés" #. brush size +/- -#: ../src/views/darkroom.c:2701 +#: ../src/views/darkroom.c:2547 msgid "increase brush size" msgstr "Augmenter la taille du pinceau" -#: ../src/views/darkroom.c:2702 +#: ../src/views/darkroom.c:2548 msgid "decrease brush size" msgstr "Diminuer la taille du pinceau" #. brush hardness +/- -#: ../src/views/darkroom.c:2705 +#: ../src/views/darkroom.c:2551 msgid "increase brush hardness" msgstr "Augmenter la dureté du pinceau" -#: ../src/views/darkroom.c:2706 +#: ../src/views/darkroom.c:2552 msgid "decrease brush hardness" msgstr "Diminuer la dureté du pinceau" #. brush opacity +/- -#: ../src/views/darkroom.c:2709 +#: ../src/views/darkroom.c:2555 msgid "increase brush opacity" msgstr "Augmenter la luminosité du pinceau" -#: ../src/views/darkroom.c:2710 +#: ../src/views/darkroom.c:2556 msgid "decrease brush opacity" msgstr "Diminuer la luminosité du pinceau" #. undo/redo -#: ../src/views/darkroom.c:2713 ../src/views/lighttable.c:1275 +#: ../src/views/darkroom.c:2559 ../src/views/lighttable.c:1275 #: ../src/views/map.c:2115 msgid "undo" msgstr "Défaire" -#: ../src/views/darkroom.c:2714 ../src/views/lighttable.c:1276 +#: ../src/views/darkroom.c:2560 ../src/views/lighttable.c:1276 #: ../src/views/map.c:2116 msgid "redo" msgstr "Refaire" #. change the precision for adjusting sliders with keyboard shortcuts -#: ../src/views/darkroom.c:2717 +#: ../src/views/darkroom.c:2563 msgid "change keyboard shortcut slider precision" msgstr "Changer la précision des raccourcis clavier des réglettes" -#: ../src/views/darkroom.c:3989 +#: ../src/views/darkroom.c:3565 msgid "keyboard shortcut slider precision: fine" msgstr "Précision des raccourcis clavier des réglettes : fine" -#: ../src/views/darkroom.c:3991 +#: ../src/views/darkroom.c:3567 msgid "keyboard shortcut slider precision: normal" msgstr "Précision des raccourcis clavier des réglettes : standard" -#: ../src/views/darkroom.c:3993 +#: ../src/views/darkroom.c:3569 msgid "keyboard shortcut slider precision: coarse" msgstr "Précision des raccourcis clavier des réglettes : grossière" -#: ../src/views/darkroom.c:4009 +#: ../src/views/darkroom.c:3584 msgid "switch to lighttable" msgstr "Passer à la table lumineuse" -#: ../src/views/darkroom.c:4010 ../src/views/lighttable.c:882 +#: ../src/views/darkroom.c:3585 ../src/views/lighttable.c:882 msgid "zoom in the image" msgstr "Zoom dans l’image" -#: ../src/views/darkroom.c:4011 +#: ../src/views/darkroom.c:3586 msgid "unbounded zoom in the image" msgstr "Zoom sans limites dans l’image" -#: ../src/views/darkroom.c:4012 +#: ../src/views/darkroom.c:3587 msgid "zoom to 100% 200% and back" msgstr "Zoom à 100 % et 200 % en cyclant" -#: ../src/views/darkroom.c:4013 ../src/views/lighttable.c:885 +#: ../src/views/darkroom.c:3588 ../src/views/lighttable.c:885 msgid "pan a zoomed image" msgstr "Déplacer ou zoomer l’image" -#: ../src/views/darkroom.c:4015 ../src/views/lighttable.c:927 +#: ../src/views/darkroom.c:3590 ../src/views/lighttable.c:927 msgid "[modules] expand module without closing others" msgstr "[modules] Déplie le module sans replier les autres" -#: ../src/views/darkroom.c:4016 ../src/views/lighttable.c:928 +#: ../src/views/darkroom.c:3591 ../src/views/lighttable.c:928 msgid "[modules] expand module and close others" msgstr "[modules] Déplie le module et replie les autres" -#: ../src/views/darkroom.c:4018 +#: ../src/views/darkroom.c:3593 msgid "[modules] rename module" msgstr "[modules] Renommer le module" -#: ../src/views/darkroom.c:4020 +#: ../src/views/darkroom.c:3595 msgid "[modules] change module position in pipe" msgstr "[modules] Change la position du module dans le flux" @@ -25312,60 +26020,60 @@ msgid "print" msgstr "Impression" -#: ../src/views/slideshow.c:353 +#: ../src/views/slideshow.c:355 msgid "end of images" msgstr "Fin des images" -#: ../src/views/slideshow.c:374 +#: ../src/views/slideshow.c:376 msgid "end of images. press any key to return to lighttable mode" msgstr "" "Fin des images, appuyez sur une touche pour revenir à la table lumineuse." -#: ../src/views/slideshow.c:504 +#: ../src/views/slideshow.c:509 msgid "waiting to start slideshow" msgstr "Le diaporama est prêt à être lancé" -#: ../src/views/slideshow.c:640 ../src/views/slideshow.c:661 -#: ../src/views/slideshow.c:669 +#: ../src/views/slideshow.c:678 ../src/views/slideshow.c:705 +#: ../src/views/slideshow.c:713 msgid "slideshow paused" msgstr "Diaporama en pause" -#: ../src/views/slideshow.c:648 ../src/views/slideshow.c:655 +#: ../src/views/slideshow.c:686 ../src/views/slideshow.c:696 #, c-format msgid "slideshow delay set to %d second" msgid_plural "slideshow delay set to %d seconds" msgstr[0] "Temporisation du diaporama ajustée à %d seconde" msgstr[1] "Temporisation du diaporama ajustée à %d secondes" -#: ../src/views/slideshow.c:684 +#: ../src/views/slideshow.c:728 msgid "start and stop" msgstr "Marche et arrêt" -#: ../src/views/slideshow.c:685 +#: ../src/views/slideshow.c:730 msgid "exit slideshow" msgstr "Quitter le diaporama" -#: ../src/views/slideshow.c:688 +#: ../src/views/slideshow.c:734 msgid "slow down" msgstr "Ralentir" -#: ../src/views/slideshow.c:691 +#: ../src/views/slideshow.c:738 msgid "speed up" msgstr "Accélérer" -#: ../src/views/slideshow.c:695 +#: ../src/views/slideshow.c:743 msgid "step forward" msgstr "Image suivante" -#: ../src/views/slideshow.c:696 +#: ../src/views/slideshow.c:745 msgid "step back" msgstr "Image précédente" -#: ../src/views/slideshow.c:702 +#: ../src/views/slideshow.c:753 msgid "go to next image" msgstr "Passe au fichier suivant" -#: ../src/views/slideshow.c:703 +#: ../src/views/slideshow.c:755 msgid "go to previous image" msgstr "Passer à l’image précédente" @@ -25378,51 +26086,356 @@ msgid "no camera with tethering support available for use..." msgstr "Aucun boîtier n’est disponible pour la capture" -#: ../src/views/view.c:1193 +#: ../src/views/view.c:1352 msgid "left click" msgstr "Clic gauche" -#: ../src/views/view.c:1196 +#: ../src/views/view.c:1355 msgid "right click" msgstr "Clic droit" -#: ../src/views/view.c:1199 +#: ../src/views/view.c:1358 msgid "middle click" msgstr "Clic milieu" -#: ../src/views/view.c:1205 +#: ../src/views/view.c:1364 msgid "left double-click" msgstr "Double clic gauche" -#: ../src/views/view.c:1208 +#: ../src/views/view.c:1367 msgid "right double-click" msgstr "Double clic droit" -#: ../src/views/view.c:1211 +#: ../src/views/view.c:1370 msgid "drag and drop" msgstr "Déplacer & déposer" -#: ../src/views/view.c:1214 +#: ../src/views/view.c:1373 msgid "left click+drag" msgstr "Clic gauche+déplacer" -#: ../src/views/view.c:1217 +#: ../src/views/view.c:1376 msgid "right click+drag" msgstr "Clic droit+déplacer" -#: ../src/views/view.c:1237 +#: ../src/views/view.c:1398 msgid "darktable - accels window" msgstr "darktable - fenêtre des raccourcis" -#: ../src/views/view.c:1285 +#: ../src/views/view.c:1447 msgid "switch to a classic window which will stay open after key release" msgstr "Créer une fenêtre flottante persistante" #. we add the mouse actions too -#: ../src/views/view.c:1344 +#: ../src/views/view.c:1514 msgid "mouse actions" msgstr "Actions de la souris" +#~ msgid "selected image[s]" +#~ msgstr "Images sélectionnées" + +#~ msgid "spot color mapping" +#~ msgstr "Mappage des couleurs" + +#~ msgid "spot mode" +#~ msgstr "Mode ponctuel" + +#~ msgid "save history while developing" +#~ msgstr "Sauvegarder l'historique lors du développement" + +#~ msgid "longest" +#~ msgstr "Plus grand" + +#~ msgid "" +#~ "when having raw+JPEG images together in one directory it makes no sense " +#~ "to import both. with this flag one can ignore all JPEGs found." +#~ msgstr "" +#~ "Lorsque des images RAW et JPEG sont présentes ensemble dans un dossier, " +#~ "cela n’a pas de sens d’importer les deux. En activant cette option les " +#~ "fichiers JPEG sont ignorés." + +#~ msgid "b&w as grayscale" +#~ msgstr "N&B en échelle de gris" + +#~ msgid "" +#~ "tone equalizer needs to be after distortion modules in the pipeline – " +#~ "disabled" +#~ msgstr "" +#~ "L’égaliseur de tons doit être après les modules de distorsion - désactivé" + +#~ msgid "red inset" +#~ msgstr "Incrustation rouge" + +#~ msgid "green inset" +#~ msgstr "Incrustation verte" + +#~ msgid "blue inset" +#~ msgstr "Incrustation bleu" + +#~ msgid "red primary inset" +#~ msgstr "Incrustation du rouge primaire" + +#~ msgid "red primary rotation" +#~ msgstr "Rotation du rouge primaire" + +#~ msgid "green primary inset" +#~ msgstr "Incrustation du vert primaire" + +#~ msgid "green primary rotation" +#~ msgstr "Rotation du vert primaire" + +#~ msgid "blue primary inset" +#~ msgstr "Incrustation du bleu primaire" + +#~ msgid "blue primary rotation" +#~ msgstr "Rotation du bleu primaire" + +#~ msgid "red primary hue" +#~ msgstr "Teinte du rouge primaire" + +#~ msgctxt "preferences" +#~ msgid "4k" +#~ msgstr "4k" + +#~ msgid "only" +#~ msgstr "seulement" + +#~ msgctxt "preferences" +#~ msgid "id" +#~ msgstr "Numéro" + +#~ msgctxt "preferences" +#~ msgid "folder" +#~ msgstr "Dossier" + +#~ msgid "" +#~ "if an instance of the module has focus, apply shortcut to that instance\n" +#~ "note: blending shortcuts always apply to the focused instance" +#~ msgstr "" +#~ "Si une instance de module a le focus, lui appliquer le raccourci.\n" +#~ "Note : les raccourcis de fusion sont toujours appliqués à l’instance " +#~ "ayant le focus." + +#~ msgid "click to dismiss this notice permanently" +#~ msgstr "Clic pour ignorer définitivement cette notification" + +#~ msgid "hardness (relative)" +#~ msgstr "Dureté (relative)" + +#~ msgid "hardness (absolute)" +#~ msgstr "Dureté (absolue)" + +#~ msgid "opacity (relative)" +#~ msgstr "Opacité (relative)" + +#~ msgid "opacity (absolute)" +#~ msgstr "Opacité (absolue)" + +#~ msgid "brush size (relative)" +#~ msgstr "Taille du pinceau (relative)" + +#~ msgid "low" +#~ msgstr "Bas" + +#~ msgid "medium" +#~ msgstr "Moyen" + +#~ msgid "high" +#~ msgstr "Haut" + +#~ msgid "" +#~ "pen pressure control for brush masks\n" +#~ "'off': pressure reading ignored,\n" +#~ "'hardness'/'opacity'/'brush size': pressure reading controls specified " +#~ "attribute,\n" +#~ "'absolute'/'relative': pressure reading is taken directly as attribute " +#~ "value or multiplied with pre-defined setting." +#~ msgstr "" +#~ "Contrôle de la pression du pinceau\n" +#~ " • Désactivé – la pression est ignorée\n" +#~ " • Dureté ou opacité ou taille du pinceau – elle contrôle l’attribut " +#~ "spécifié\n" +#~ " • Absolue ou relative – elle est directement utilisée comme valeur de " +#~ "l’attribut ou multipliée avec la valeur prédéfinie." + +#~ msgid "" +#~ "smoothing of brush strokes\n" +#~ "stronger smoothing leads to fewer nodes and easier editing but with lower " +#~ "control of accuracy." +#~ msgstr "" +#~ "Définit le niveau de lissage du pinceau. Un lissage plus fort crée\n" +#~ "moins de nœuds et sera plus facile à éditer, mais sera moins précis." + +#~ msgid "" +#~ "set strength of rebuilding in regions with all photosites clipped.\n" +#~ "the mask buttons shows the effect that is added to already reconstructed " +#~ "data." +#~ msgstr "" +#~ "Définit la force de reconstruction dans les régions ayant tous les " +#~ "photosites tronqués.\n" +#~ "L’icône « masque » montre l’effet ajouté au données déjà reconstruites." + +#~ msgid "" +#~ "darktable discovered problems with your OpenCL setup; disabling OpenCL " +#~ "for this session!" +#~ msgstr "" +#~ "darktable a rencontré des problèmes avec la configuration d’OpenCL qui " +#~ "sera désactivé pour cette session." + +#~ msgid "RGB colors" +#~ msgstr "Couleurs RVB" + +#~ msgid "compression type" +#~ msgstr "Type de compression" + +#~ msgid "b&w image" +#~ msgstr "Image N & B" + +#~ msgid "write RGB colors" +#~ msgstr "Couleurs RVB" + +#~ msgid "write grayscale" +#~ msgstr "Échelle de gris" + +# Capitalisation ? +#~ msgid "tiff" +#~ msgstr "Tiff" + +# Capitalisation ? +#~ msgid "png" +#~ msgstr "Png" + +# Capitalisation ? +#~ msgid "j2k" +#~ msgstr "J2k" + +# Capitalisation ? +#~ msgid "jpeg" +#~ msgstr "Jpeg" + +# Capitalisation ? +#~ msgid "exr" +#~ msgstr "Exr" + +# Capitalisation ? +#~ msgid "rgbe" +#~ msgstr "Rgbe" + +# Capitalisation ? +#~ msgid "pfm" +#~ msgstr "Pfm" + +# Capitalisation ? +#~ msgid "netpnm" +#~ msgstr "Netpnm" + +#~ msgid "avif" +#~ msgstr "AVIF" + +#~ msgid "heif" +#~ msgstr "HEIF" + +#~ msgid "libraw" +#~ msgstr "LibRaw" + +#~ msgid "webp" +#~ msgstr "Webp" + +#~ msgid "jpeg xl" +#~ msgstr "JPEG XL" + +#~ msgid "save" +#~ msgstr "Enregistrer" + +#~ msgid "add" +#~ msgstr "Ajouter" + +#~ msgid "write sidecar file for each image" +#~ msgstr "Écrire un fichier XMP redondant pour chaque image" + +#~ msgctxt "preferences" +#~ msgid "nothing" +#~ msgstr "Rien" + +#~ msgctxt "preferences" +#~ msgid "memory size" +#~ msgstr "Taille mémoire" + +#~ msgctxt "preferences" +#~ msgid "memory transfer" +#~ msgstr "Transfert mémoire" + +#~ msgctxt "preferences" +#~ msgid "memory size and transfer" +#~ msgstr "Taille et transfert mémoire" + +#~ msgid "tune OpenCL performance" +#~ msgstr "Optimiser les performances d’OpenCL" + +#~ msgid "" +#~ "allows runtime tuning of OpenCL devices:\n" +#~ " - 'memory size': uses a fixed headroom (400MB as default),\n" +#~ " - 'memory transfer': tries a faster memory access mode (pinned memory) " +#~ "used for tiling." +#~ msgstr "" +#~ "Permet d’optimiser les périphériques OpenCL lors de l’exécution :\n" +#~ " • Taille mémoire – utilise 400 Mo de mémoire de marge\n" +#~ " • Transfert mémoire – tente un accès plus rapide à la mémoire (mémoire " +#~ "épinglée) utilisée pour le tuilage" + +#~ msgid "" +#~ "due to a slow GPU hardware acceleration using OpenCL has been deactivated" +#~ msgstr "" +#~ "L’accélération matérielle d’OpenCL est lente et a donc été désactivée" + +#~ msgid "" +#~ "multiple GPUs detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "GPU multiples détectés, la planification OpenCL a été positionnée en " +#~ "conséquence" + +#~ msgid "" +#~ "very fast GPU detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "GPU très rapide détecté, la planification OpenCL a été positionnée en " +#~ "conséquence" + +#~ msgid "jp2" +#~ msgstr "JP2" + +#~ msgid "no-op" +#~ msgstr "Sans action" + +#~ msgid "distortion fine-tune" +#~ msgstr "Réglage précis de la distorsion" + +#~ msgid "vignetting fine-tune" +#~ msgstr "Réglage précis du vignetage" + +#~ msgid "TCA red fine-tune" +#~ msgstr "Ajustement fin du rouge AC" + +#~ msgid "TCA blue fine-tune" +#~ msgstr "Ajustement fin du bleu AC" + +#~ msgid "linear Prophoto RGB" +#~ msgstr "ProPhoto RVB linéaire" + +#~ msgid "<leave unchanged>" +#~ msgstr "<laisser non modifié>" + +#~ msgid "reference to which the marker should be scaled to" +#~ msgstr "La référence à utiliser pour l'échelle du filigrane" + +#~ msgid "length of the marker which is used as scaling reference" +#~ msgstr "La dimension du filigrane utilisée comme échelle de référence" + +#, c-format +#~ msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" +#~ msgstr "%.1f mm (%.1f mm FF, facteur %.1f)" + #~ msgid "_yes, physically delete" #~ msgstr "_Oui, supprime du disque" @@ -25496,9 +26509,6 @@ #~ msgid "stop process" #~ msgstr "Arrête l’effacement" -#~ msgid "set the custom aspect ratio" -#~ msgstr "Rapport d’aspect personnalisé" - #~ msgid "legacy flag. set for all new images" #~ msgstr "Ancien état, positionné pour toute nouvelle image" @@ -25512,9 +26522,6 @@ #~ msgid "rgb colors" #~ msgstr "Couleurs RVB" -#~ msgid "rgb parade" -#~ msgstr "Parade RVB" - #~ msgid "rotate 90 degrees ccw" #~ msgstr "Tourne de 90 degrés (sens anti-horaire)" @@ -26081,21 +27088,12 @@ #~ "Métadonnées intégrées de correction d’objectif non disponibles\n" #~ "et darktable est compilé sans lensfun " -#~ msgid "actual selection" -#~ msgstr "Sélection actuelle" - #~ msgid "allow to pan & zoom while editing masks" #~ msgstr "Recadrer et zoomer pendant l’édition des masques" #~ msgid "recovery" #~ msgstr "Récupération" -#~ msgid "" -#~ "set strength of reconstruction in regions with all photosites clipped" -#~ msgstr "" -#~ "Défini la force de reconstruction pour les régions avec tous les canaux " -#~ "tronqués" - #~ msgctxt "preferences" #~ msgid "on startup" #~ msgstr "Au démarrage" @@ -26245,9 +27243,6 @@ #~ msgid "lift chroma" #~ msgstr "Lift saturation" -#~ msgid "lift hue" -#~ msgstr "Teinte lift" - #~ msgid "power luminance" #~ msgstr "Puissance luminance" @@ -26281,9 +27276,6 @@ #~ msgid "chroma highlights" #~ msgstr "Chroma hautes lumières" -#~ msgid "chroma global" -#~ msgstr "Chroma globale" - #~ msgid "chroma mid-tones" #~ msgstr "Chroma des tons moyens" @@ -27034,9 +28026,6 @@ #~ msgid "crop settings" #~ msgstr "Paramètres de recadrage" -#~ msgid "white balance settings" -#~ msgstr "Paramètres balance des blancs" - #~ msgid "position" #~ msgstr "Position" @@ -27700,10 +28689,6 @@ #~ msgid "rotate" #~ msgstr "Rotation" -#~ msgctxt "accel" -#~ msgid "replace metadata" -#~ msgstr "Remplacer métadonnées" - #~ msgid "reset parameters" #~ msgstr "Réinitialiser les paramètres" @@ -28201,9 +29186,6 @@ #~ msgid "insensitive" #~ msgstr "Insensible" -#~ msgid "export selected" -#~ msgstr "Exporter sélection" - #~ msgid "modify the spatial size of an images group on the map" #~ msgstr "Modifie l’étendue spatiale d’un groupe d’images sur la carte" @@ -28317,9 +29299,6 @@ #~ "Change l’ordre par défaut des collections par dossier, heure et date pour " #~ "aller du plus récent au plus ancien." -#~ msgid "color manage cached thumbnails" -#~ msgstr "Miniatures avec gestion de la couleur" - #~ msgid "" #~ "if enabled, cached thumbnails will be color managed so that lighttable " #~ "and filmstrip can show correct colors. otherwise the results may look " @@ -29729,9 +30708,6 @@ #~ msgid "scan for devices" #~ msgstr "Rechercher un appareil" -#~ msgid "no supported devices found" -#~ msgstr "Aucun appareil supporté n’a été détecté" - #~ msgid "scan for newly attached devices" #~ msgstr "Recherche des appareils branchés récemment" @@ -31326,9 +32302,6 @@ #~ "renommage des images sauvegardées et importées ; en cas de doute, laisser " #~ "les valeurs par défaut." -#~ msgid "storage directory" -#~ msgstr "Répertoire de stockage" - #~ msgid "directory structure" #~ msgstr "Structure du dossier" @@ -31804,9 +32777,6 @@ #~ "Mélange la teinte\n" #~ "(0 revient à tronquer)" -#~ msgid "blend L" -#~ msgstr "Luminance" - #~ msgid "blend C" #~ msgstr "Chromaticité" @@ -32114,9 +33084,6 @@ #~ "Abscisse : entrée, ordonnée : sortie \n" #~ "fonctionne sur le canal L" -#~ msgid "how many threads to use in background" -#~ msgstr "Combien de fils utiliser en tâche de fond" - #~ msgid "image cache file" #~ msgstr "Fichier de cache image" diff -Nru darktable-4.4.2/po/he.po darktable-4.6.1/po/he.po --- darktable-4.4.2/po/he.po 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/po/he.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,29049 +0,0 @@ -# DARKTABLE HEBREW TRANSLATION. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as darktable. -# FIRST AUTHOR <sbraitbart@gmail.com>, 2016. -# -msgid "" -msgstr "" -"Project-Id-Version: darktable hebrew translation\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-11 10:12+0300\n" -"PO-Revision-Date: 2023-06-13 13:06+0300\n" -"Last-Translator: Shlomi Alon-Braitbart <shlomi@librem.one>\n" -"Language-Team: \n" -"Language: he_IL\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 3.2.2\n" - -#: ../build/bin/conf_gen.h:172 ../build/bin/preferences_gen.h:7632 -msgctxt "preferences" -msgid "first instance" -msgstr "מופע ראשון" - -#: ../build/bin/conf_gen.h:173 ../build/bin/preferences_gen.h:7637 -#: ../build/bin/preferences_gen.h:7656 -msgctxt "preferences" -msgid "last instance" -msgstr "מופע אחרון" - -#: ../build/bin/conf_gen.h:240 ../build/bin/conf_gen.h:346 -#: ../build/bin/conf_gen.h:356 ../build/bin/conf_gen.h:1186 -#: ../build/bin/conf_gen.h:1202 ../build/bin/preferences_gen.h:4137 -#: ../build/bin/preferences_gen.h:4156 ../build/bin/preferences_gen.h:4232 -#: ../build/bin/preferences_gen.h:6706 ../build/bin/preferences_gen.h:6834 -#: ../build/bin/preferences_gen.h:6899 -msgctxt "preferences" -msgid "never" -msgstr "אף פעם" - -#: ../build/bin/conf_gen.h:241 ../build/bin/preferences_gen.h:6711 -msgctxt "preferences" -msgid "once a month" -msgstr "פעם בחודש" - -#: ../build/bin/conf_gen.h:242 ../build/bin/preferences_gen.h:6716 -#: ../build/bin/preferences_gen.h:6745 -msgctxt "preferences" -msgid "once a week" -msgstr "פעם בשבוע" - -#: ../build/bin/conf_gen.h:243 ../build/bin/preferences_gen.h:6721 -msgctxt "preferences" -msgid "once a day" -msgstr "פעם ביום" - -#: ../build/bin/conf_gen.h:244 ../build/bin/preferences_gen.h:6726 -msgctxt "preferences" -msgid "on close" -msgstr "בסגירה" - -#: ../build/bin/conf_gen.h:280 ../build/bin/conf_gen.h:1179 -#: ../build/bin/conf_gen.h:1195 ../build/bin/preferences_gen.h:4102 -#: ../build/bin/preferences_gen.h:4197 ../build/bin/preferences_gen.h:5748 -msgctxt "preferences" -msgid "small" -msgstr "קטן" - -#: ../build/bin/conf_gen.h:281 ../build/bin/conf_gen.h:393 -#: ../build/bin/preferences_gen.h:5753 ../build/bin/preferences_gen.h:5782 -#: ../build/bin/preferences_gen.h:5969 ../build/bin/preferences_gen.h:5998 -msgctxt "preferences" -msgid "default" -msgstr "ברירת מחדל" - -#: ../build/bin/conf_gen.h:282 ../build/bin/conf_gen.h:2814 -#: ../build/bin/preferences_gen.h:5758 -msgctxt "preferences" -msgid "large" -msgstr "גדול" - -#: ../build/bin/conf_gen.h:283 ../build/bin/preferences_gen.h:5763 -msgctxt "preferences" -msgid "unrestricted" -msgstr "בלתי מוגבל" - -#: ../build/bin/conf_gen.h:347 ../build/bin/preferences_gen.h:6839 -msgctxt "preferences" -msgid "after edit" -msgstr "לאחר עריכה" - -#: ../build/bin/conf_gen.h:348 ../build/bin/preferences_gen.h:6844 -#: ../build/bin/preferences_gen.h:6863 -msgctxt "preferences" -msgid "on import" -msgstr "בייבוא" - -#: ../build/bin/conf_gen.h:357 ../build/bin/conf_gen.h:1178 -#: ../build/bin/conf_gen.h:1194 ../build/bin/conf_gen.h:3214 -#: ../build/bin/preferences_gen.h:4097 ../build/bin/preferences_gen.h:4192 -#: ../build/bin/preferences_gen.h:5112 ../build/bin/preferences_gen.h:5166 -#: ../build/bin/preferences_gen.h:6904 -msgctxt "preferences" -msgid "always" -msgstr "תמיד" - -#: ../build/bin/conf_gen.h:358 ../build/bin/preferences_gen.h:6909 -#: ../build/bin/preferences_gen.h:6928 -msgctxt "preferences" -msgid "only large entries" -msgstr "רק ערכים גדולים" - -#: ../build/bin/conf_gen.h:378 ../build/bin/preferences_gen.h:8069 -msgctxt "preferences" -msgid "sensitive" -msgstr "רגיש" - -#: ../build/bin/conf_gen.h:379 ../build/bin/preferences_gen.h:8074 -#: ../build/bin/preferences_gen.h:8093 -msgctxt "preferences" -msgid "insensitive" -msgstr "לא רגיש" - -#: ../build/bin/conf_gen.h:394 ../build/bin/preferences_gen.h:5974 -msgctxt "preferences" -msgid "multiple GPUs" -msgstr "מעבדים גראפיים (GPU) מרובים" - -#: ../build/bin/conf_gen.h:395 ../build/bin/preferences_gen.h:5979 -msgctxt "preferences" -msgid "very fast GPU" -msgstr "מעבד גראפי (GPU) מהיר מאד" - -#: ../build/bin/conf_gen.h:403 ../build/bin/preferences_gen.h:6040 -#: ../build/bin/preferences_gen.h:6074 -msgctxt "preferences" -msgid "nothing" -msgstr "כלום" - -#: ../build/bin/conf_gen.h:404 ../build/bin/preferences_gen.h:6045 -msgctxt "preferences" -msgid "memory size" -msgstr "גודל זיכרון" - -#: ../build/bin/conf_gen.h:405 ../build/bin/preferences_gen.h:6050 -msgctxt "preferences" -msgid "memory transfer" -msgstr "העברת זיכרון" - -#: ../build/bin/conf_gen.h:406 ../build/bin/preferences_gen.h:6055 -msgctxt "preferences" -msgid "memory size and transfer" -msgstr "גודל זיכרון והעברה" - -#: ../build/bin/conf_gen.h:706 ../build/bin/preferences_gen.h:8257 -#: ../build/bin/preferences_gen.h:8281 -msgctxt "preferences" -msgid "id" -msgstr "מזהה" - -#: ../build/bin/conf_gen.h:707 ../build/bin/preferences_gen.h:8262 -msgctxt "preferences" -msgid "folder" -msgstr "תיקיה" - -#: ../build/bin/conf_gen.h:721 -msgctxt "preferences" -msgid "RGB" -msgstr "RGB" - -#: ../build/bin/conf_gen.h:722 -msgctxt "preferences" -msgid "Lab" -msgstr "Lab" - -#: ../build/bin/conf_gen.h:723 -msgctxt "preferences" -msgid "LCh" -msgstr "LCh" - -#: ../build/bin/conf_gen.h:724 -msgctxt "preferences" -msgid "HSL" -msgstr "HSL" - -#: ../build/bin/conf_gen.h:725 -msgctxt "preferences" -msgid "Hex" -msgstr "Hex" - -#: ../build/bin/conf_gen.h:726 ../build/bin/conf_gen.h:1830 -#: ../build/bin/conf_gen.h:2488 ../build/bin/conf_gen.h:2790 -#: ../build/bin/conf_gen.h:3044 ../build/bin/preferences_gen.h:5577 -#: ../build/bin/preferences_gen.h:6561 -msgctxt "preferences" -msgid "none" -msgstr "ללא" - -#: ../build/bin/conf_gen.h:734 -msgctxt "preferences" -msgid "mean" -msgstr "ממוצע" - -#: ../build/bin/conf_gen.h:735 -msgctxt "preferences" -msgid "min" -msgstr "מינימום" - -#: ../build/bin/conf_gen.h:736 -msgctxt "preferences" -msgid "max" -msgstr "מקסימום" - -#: ../build/bin/conf_gen.h:924 -msgid "select only new pictures" -msgstr "בחר רק תמונות חדשות" - -#: ../build/bin/conf_gen.h:925 -msgid "only select images that have not already been imported" -msgstr "בחר רק תמונות שלא יובאו" - -#: ../build/bin/conf_gen.h:930 -msgid "ignore JPEG images" -msgstr "התעלם מקבצי JPEG" - -#: ../build/bin/conf_gen.h:931 -msgid "" -"when having raw+JPEG images together in one directory it makes no sense to " -"import both. with this flag one can ignore all JPEGs found." -msgstr "" -"כאשר תיקיה מכילה קבצי raw+JPEG ביחד אין היגיון לייבא את שניהם. עם סימון זה " -"ניתן להתעלם מכל קבצי ה JPEG שנמצאו." - -#: ../build/bin/conf_gen.h:936 -msgid "apply metadata" -msgstr "יישם מטא-נתונים" - -#: ../build/bin/conf_gen.h:937 -msgid "apply some metadata to all newly imported images." -msgstr "יישם חלק מהמטא-נתונים לכל התמונות החדשות שמיובאות." - -#: ../build/bin/conf_gen.h:942 -msgid "recursive directory" -msgstr "תיקיה רקורסיבית" - -#: ../build/bin/conf_gen.h:943 -msgid "recursive directory traversal when importing filmrolls" -msgstr "חצייה רקורסיבית של תיקיות בעת ייבוא גלילי פילם" - -#: ../build/bin/conf_gen.h:948 -msgid "creator to be applied when importing" -msgstr "הכנסת היוצר בעת ייבוא" - -#: ../build/bin/conf_gen.h:954 -msgid "publisher to be applied when importing" -msgstr "הכנסת המפרסם בעת ייבוא" - -#: ../build/bin/conf_gen.h:960 -msgid "rights to be applied when importing" -msgstr "הכנסת זכויות בעת ייבוא" - -#: ../build/bin/conf_gen.h:966 -msgid "comma separated tags to be applied when importing" -msgstr "הכנס תגיות מופרדות בפסיק בעת ייבוא" - -#: ../build/bin/conf_gen.h:972 -msgid "import tags from XMP" -msgstr "ייבא תגיות מקובץ XMP" - -#: ../build/bin/conf_gen.h:998 -msgid "initial rating" -msgstr "דירוג ראשוני" - -#: ../build/bin/conf_gen.h:999 -msgid "initial star rating for all images when importing a filmroll" -msgstr "דירוג כוכבים ראשוני עבור כל התמונות בעת ייבוא גליל פילם" - -#: ../build/bin/conf_gen.h:1004 -msgid "ignore EXIF rating" -msgstr "התעלם מדירוג EXIF" - -#: ../build/bin/conf_gen.h:1005 -msgid "" -"ignore EXIF rating. if not set and EXIF rating is found, it overrides " -"'initial rating'" -msgstr "" -"התעלם מדירוג EXIF. אם לא נבחר וקיים דירוג EXIF, הוא גובר על 'דירוג ראשוני'" - -#: ../build/bin/conf_gen.h:1010 -msgid "import job" -msgstr "עבודת ייבוא" - -#: ../build/bin/conf_gen.h:1011 -msgid "name of the import job" -msgstr "שם עבודת הייבוא" - -#: ../build/bin/conf_gen.h:1016 -msgid "override today's date" -msgstr "עקוף את התאריך של היום" - -#: ../build/bin/conf_gen.h:1017 -msgid "" -"type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override " -"the current date/time used when expanding variables:\n" -"$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS), $(MSEC).\n" -"let the field empty otherwise" -msgstr "" -"type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override " -"the current date/time used when expanding variables:\n" -"$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS), $(MSEC).\n" -"let the field empty otherwise" - -#: ../build/bin/conf_gen.h:1022 -msgid "keep this window open" -msgstr "השאר חלון זה פתוח" - -#: ../build/bin/conf_gen.h:1023 -msgid "keep this window open to run several imports" -msgstr "השאר חלון זה פתוח על מנת להפעיל מספר הרצות ייבוא" - -#: ../build/bin/conf_gen.h:1180 ../build/bin/conf_gen.h:1196 -#: ../build/bin/preferences_gen.h:4107 ../build/bin/preferences_gen.h:4202 -msgctxt "preferences" -msgid "VGA" -msgstr "VGA" - -#: ../build/bin/conf_gen.h:1181 ../build/bin/conf_gen.h:1197 -#: ../build/bin/preferences_gen.h:4112 ../build/bin/preferences_gen.h:4207 -#: ../build/bin/preferences_gen.h:4251 -msgctxt "preferences" -msgid "720p" -msgstr "720p" - -#: ../build/bin/conf_gen.h:1182 ../build/bin/conf_gen.h:1198 -#: ../build/bin/preferences_gen.h:4117 ../build/bin/preferences_gen.h:4212 -msgctxt "preferences" -msgid "1080p" -msgstr "1080p" - -#: ../build/bin/conf_gen.h:1183 ../build/bin/conf_gen.h:1199 -#: ../build/bin/preferences_gen.h:4122 ../build/bin/preferences_gen.h:4217 -msgctxt "preferences" -msgid "WQXGA" -msgstr "WQXGA" - -#: ../build/bin/conf_gen.h:1184 ../build/bin/conf_gen.h:1200 -#: ../build/bin/preferences_gen.h:4127 ../build/bin/preferences_gen.h:4222 -msgctxt "preferences" -msgid "4K" -msgstr "4K" - -#: ../build/bin/conf_gen.h:1185 ../build/bin/conf_gen.h:1201 -#: ../build/bin/preferences_gen.h:4132 ../build/bin/preferences_gen.h:4227 -msgctxt "preferences" -msgid "5K" -msgstr "5K" - -#: ../build/bin/conf_gen.h:1228 -msgctxt "preferences" -msgid "off" -msgstr "כבוי" - -#: ../build/bin/conf_gen.h:1229 -msgctxt "preferences" -msgid "hardness (relative)" -msgstr "קשיחות (יחסי)" - -#: ../build/bin/conf_gen.h:1230 -msgctxt "preferences" -msgid "hardness (absolute)" -msgstr "קשיחות (אבסולוטי)" - -#: ../build/bin/conf_gen.h:1231 -msgctxt "preferences" -msgid "opacity (relative)" -msgstr "אטימות (יחסי)" - -#: ../build/bin/conf_gen.h:1232 -msgctxt "preferences" -msgid "opacity (absolute)" -msgstr "אטימות (אבסולוטי)" - -#: ../build/bin/conf_gen.h:1233 -msgctxt "preferences" -msgid "brush size (relative)" -msgstr "גודל מכחול (יחסי)" - -#: ../build/bin/conf_gen.h:1241 -msgctxt "preferences" -msgid "low" -msgstr "נמוך" - -#: ../build/bin/conf_gen.h:1242 -msgctxt "preferences" -msgid "medium" -msgstr "בינוני" - -#: ../build/bin/conf_gen.h:1243 -msgctxt "preferences" -msgid "high" -msgstr "גבוהה" - -#: ../build/bin/conf_gen.h:1263 ../build/bin/preferences_gen.h:4836 -#: ../build/bin/preferences_gen.h:4860 -msgctxt "preferences" -msgid "false color" -msgstr "צבע לא נכון" - -#: ../build/bin/conf_gen.h:1264 ../build/bin/preferences_gen.h:4841 -msgctxt "preferences" -msgid "grayscale" -msgstr "סקאלת אפור" - -#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4567 -msgctxt "preferences" -msgid "top left" -msgstr "שמאלי עליון" - -#: ../build/bin/conf_gen.h:1279 ../build/bin/preferences_gen.h:4572 -msgctxt "preferences" -msgid "top right" -msgstr "ימני עליון" - -#: ../build/bin/conf_gen.h:1280 ../build/bin/preferences_gen.h:4577 -msgctxt "preferences" -msgid "top center" -msgstr "מרכזי עליון" - -#: ../build/bin/conf_gen.h:1281 ../build/bin/preferences_gen.h:4582 -#: ../build/bin/preferences_gen.h:4606 -msgctxt "preferences" -msgid "bottom" -msgstr "תחתית" - -#: ../build/bin/conf_gen.h:1282 ../build/bin/preferences_gen.h:4587 -msgctxt "preferences" -msgid "hidden" -msgstr "חבוי" - -#: ../build/bin/conf_gen.h:1792 -msgid "show OSD" -msgstr "הראה OSD" - -#: ../build/bin/conf_gen.h:1793 -msgid "toggle the visibility of the map overlays" -msgstr "מתג נראות של תכסיות מפה" - -#: ../build/bin/conf_gen.h:1798 ../src/libs/map_settings.c:146 -msgid "filtered images" -msgstr "תמונות מסוננות" - -#: ../build/bin/conf_gen.h:1799 -msgid "when set limit the images drawn to the current filmstrip" -msgstr "כאשר מסומן הגבל את התמונות המצוירות על גליל הפילם הנוכחי" - -#: ../build/bin/conf_gen.h:1806 -msgid "max images" -msgstr "מקסימום תמונות" - -#: ../build/bin/conf_gen.h:1807 -msgid "the maximum number of image thumbnails drawn on the map" -msgstr "מספר מרבי של תמונות ממוזערות המוצגות על המפה" - -#: ../build/bin/conf_gen.h:1814 -msgid "group size factor" -msgstr "מקדם גודל לקבוצה" - -#: ../build/bin/conf_gen.h:1815 -msgid "" -"increase or decrease the spatial size of images groups on the map. can " -"influence the calculation time" -msgstr "" -"הגבר או הפחת את הגודל המרחבי של קבוצות תמונות על המפה. יכול להשפיע על זמן " -"החישוב" - -#: ../build/bin/conf_gen.h:1822 -msgid "min images per group" -msgstr "מינימום תמונות לקבוצה" - -#: ../build/bin/conf_gen.h:1823 -msgid "" -"the minimum number of images to set up an images group. can influence the " -"calculation time." -msgstr "" -"המספר המינימלי של תמונות לייסוד קבוצת תמונות. יכול להשפיע על זמן החישוב." - -#: ../build/bin/conf_gen.h:1828 -msgctxt "preferences" -msgid "thumbnail" -msgstr "תמונה ממוזערת" - -#: ../build/bin/conf_gen.h:1829 -msgctxt "preferences" -msgid "count" -msgstr "ספירה" - -#: ../build/bin/conf_gen.h:1832 ../src/libs/map_settings.c:159 -msgid "thumbnail display" -msgstr "תצוגת תמונה ממוזערת" - -#: ../build/bin/conf_gen.h:1833 -msgid "" -"three options are available: images thumbnails, only the count of images of " -"the group or nothing" -msgstr "שלוש אפשרויות קיימות: תמונות ממוזערות, רק מספר התמונות בקבוצה או כלום" - -#: ../build/bin/conf_gen.h:1844 -msgid "max polygon points" -msgstr "מקסימום נקודות פוליגון" - -#: ../build/bin/conf_gen.h:1845 -msgid "" -"limit the number of points imported with polygon in find location module" -msgstr "הגבל את מספר הנקודות המיובאות עם פוליגון במודול מצא מיקום" - -#: ../build/bin/conf_gen.h:2135 ../build/bin/preferences_gen.h:4722 -#: ../build/bin/preferences_gen.h:4756 -msgctxt "preferences" -msgid "original" -msgstr "מקור" - -#: ../build/bin/conf_gen.h:2136 ../build/bin/preferences_gen.h:4727 -msgctxt "preferences" -msgid "to 1/2" -msgstr "ל 1/2" - -#: ../build/bin/conf_gen.h:2137 ../build/bin/preferences_gen.h:4732 -msgctxt "preferences" -msgid "to 1/3" -msgstr "ל 1/3" - -#: ../build/bin/conf_gen.h:2138 ../build/bin/preferences_gen.h:4737 -msgctxt "preferences" -msgid "to 1/4" -msgstr "ל 1/4" - -#: ../build/bin/conf_gen.h:2152 ../build/bin/conf_gen.h:2162 -#: ../build/bin/preferences_gen.h:5384 ../build/bin/preferences_gen.h:5449 -msgctxt "preferences" -msgid "bilinear" -msgstr "bilinear" - -#: ../build/bin/conf_gen.h:2153 ../build/bin/conf_gen.h:2163 -#: ../build/bin/preferences_gen.h:5389 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5454 -msgctxt "preferences" -msgid "bicubic" -msgstr "bicubic" - -#: ../build/bin/conf_gen.h:2154 ../build/bin/conf_gen.h:2164 -#: ../build/bin/preferences_gen.h:5394 ../build/bin/preferences_gen.h:5459 -msgctxt "preferences" -msgid "lanczos2" -msgstr "lanczos2" - -#: ../build/bin/conf_gen.h:2165 ../build/bin/preferences_gen.h:5464 -#: ../build/bin/preferences_gen.h:5483 -msgctxt "preferences" -msgid "lanczos3" -msgstr "lanczos3" - -#: ../build/bin/conf_gen.h:2487 ../build/bin/conf_gen.h:3217 -#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:6556 -#: ../build/bin/preferences_gen.h:6592 -msgctxt "preferences" -msgid "auto" -msgstr "אוטו'" - -#: ../build/bin/conf_gen.h:2489 ../build/bin/preferences_gen.h:6566 -msgctxt "preferences" -msgid "libsecret" -msgstr "libsecret" - -#: ../build/bin/conf_gen.h:2490 ../build/bin/preferences_gen.h:6572 -msgctxt "preferences" -msgid "kwallet" -msgstr "kwallet" - -#: ../build/bin/conf_gen.h:2700 -msgctxt "preferences" -msgid "vectorscope" -msgstr "ווקטור סקופ" - -#: ../build/bin/conf_gen.h:2701 -msgctxt "preferences" -msgid "waveform" -msgstr "צורת גל" - -#: ../build/bin/conf_gen.h:2702 -msgctxt "preferences" -msgid "RGB parade" -msgstr "RGB parade" - -#: ../build/bin/conf_gen.h:2703 -msgctxt "preferences" -msgid "histogram" -msgstr "היסטוגרמה" - -#: ../build/bin/conf_gen.h:2711 ../build/bin/preferences_gen.h:7264 -msgctxt "preferences" -msgid "left" -msgstr "שמאל" - -#: ../build/bin/conf_gen.h:2712 ../build/bin/preferences_gen.h:7269 -#: ../build/bin/preferences_gen.h:7288 -msgctxt "preferences" -msgid "right" -msgstr "ימין" - -#: ../build/bin/conf_gen.h:2720 ../build/bin/conf_gen.h:2757 -msgctxt "preferences" -msgid "logarithmic" -msgstr "לוגריתמי" - -#: ../build/bin/conf_gen.h:2721 ../build/bin/conf_gen.h:2758 -msgctxt "preferences" -msgid "linear" -msgstr "לינארי" - -#: ../build/bin/conf_gen.h:2729 -msgctxt "preferences" -msgid "horizontal" -msgstr "אופקי" - -#: ../build/bin/conf_gen.h:2730 -msgctxt "preferences" -msgid "vertical" -msgstr "אנכי" - -#: ../build/bin/conf_gen.h:2738 -msgctxt "preferences" -msgid "overlaid" -msgstr "מצופה" - -#: ../build/bin/conf_gen.h:2739 -msgctxt "preferences" -msgid "parade" -msgstr "מצעד" - -#: ../build/bin/conf_gen.h:2747 -msgctxt "preferences" -msgid "u*v*" -msgstr "u*v*" - -#: ../build/bin/conf_gen.h:2748 -msgctxt "preferences" -msgid "AzBz" -msgstr "AzBz" - -#: ../build/bin/conf_gen.h:2749 -msgctxt "preferences" -msgid "RYB" -msgstr "RGB" - -#: ../build/bin/conf_gen.h:2791 -msgctxt "preferences" -msgid "monochromatic" -msgstr "מונוכרומטי" - -#: ../build/bin/conf_gen.h:2792 -msgctxt "preferences" -msgid "analogous" -msgstr "משלים קרוב" - -#: ../build/bin/conf_gen.h:2793 -msgctxt "preferences" -msgid "analogous complementary" -msgstr "צבעים סמוכים" - -#: ../build/bin/conf_gen.h:2794 -msgctxt "preferences" -msgid "complementary" -msgstr "משלים" - -#: ../build/bin/conf_gen.h:2795 -msgctxt "preferences" -msgid "split complementary" -msgstr "צבעים נגדיים" - -#: ../build/bin/conf_gen.h:2796 -msgctxt "preferences" -msgid "dyad" -msgstr "זוג" - -#: ../build/bin/conf_gen.h:2797 -msgctxt "preferences" -msgid "triad" -msgstr "שלשה" - -#: ../build/bin/conf_gen.h:2798 -msgctxt "preferences" -msgid "tetrad" -msgstr "טטרהדרלי" - -#: ../build/bin/conf_gen.h:2799 -msgctxt "preferences" -msgid "square" -msgstr "ריבוע" - -#: ../build/bin/conf_gen.h:2813 -msgctxt "preferences" -msgid "normal" -msgstr "רגיל" - -#: ../build/bin/conf_gen.h:2815 -msgctxt "preferences" -msgid "narrow" -msgstr "צר" - -#: ../build/bin/conf_gen.h:2816 -msgctxt "preferences" -msgid "line" -msgstr "קו" - -#: ../build/bin/conf_gen.h:2956 -msgctxt "preferences" -msgid "mm" -msgstr "מ\"מ" - -#: ../build/bin/conf_gen.h:2957 -msgctxt "preferences" -msgid "cm" -msgstr "ס\"מ" - -#: ../build/bin/conf_gen.h:2958 -msgctxt "preferences" -msgid "inch" -msgstr "אינצ'" - -#: ../build/bin/conf_gen.h:3003 ../build/bin/preferences_gen.h:7324 -#: ../build/bin/preferences_gen.h:7353 -msgctxt "preferences" -msgid "all" -msgstr "הכל" - -#: ../build/bin/conf_gen.h:3004 ../build/bin/preferences_gen.h:7329 -msgctxt "preferences" -msgid "xatom" -msgstr "דופי" - -#: ../build/bin/conf_gen.h:3005 ../build/bin/preferences_gen.h:7334 -msgctxt "preferences" -msgid "colord" -msgstr "צבוע" - -#: ../build/bin/conf_gen.h:3041 ../build/bin/preferences_gen.h:5562 -#: ../build/bin/preferences_gen.h:5596 -msgctxt "preferences" -msgid "scene-referred (filmic)" -msgstr "מוכוון סצנה (filmic)" - -#: ../build/bin/conf_gen.h:3042 ../build/bin/preferences_gen.h:5567 -msgctxt "preferences" -msgid "scene-referred (sigmoid)" -msgstr "מוכוון סצנה (sigmoid)" - -#: ../build/bin/conf_gen.h:3043 ../build/bin/preferences_gen.h:5572 -msgctxt "preferences" -msgid "display-referred (legacy)" -msgstr "מוכוון תצוגה (legacy)" - -#: ../build/bin/conf_gen.h:3144 -msgid "camera time zone" -msgstr "אזור זמן של המצלמה" - -#: ../build/bin/conf_gen.h:3145 -msgid "" -"most cameras don't store the time zone in EXIF. give the correct time zone " -"so the GPX data can be correctly matched" -msgstr "" -"רוב המצלמות לא מאחסנות את אזור הזמן ב EXIF. ספק את אזור הזמן הנכון כדי " -"שנתוני ה GPX יוכלו לספק התאמה נכונה" - -#: ../build/bin/conf_gen.h:3156 -msgctxt "preferences" -msgid "no color" -msgstr "אין צבע" - -#: ../build/bin/conf_gen.h:3157 -msgctxt "preferences" -msgid "illuminant color" -msgstr "צבע מקור האור" - -#: ../build/bin/conf_gen.h:3158 -msgctxt "preferences" -msgid "effect emulation" -msgstr "אמולציית אפקט" - -#: ../build/bin/conf_gen.h:3204 -msgctxt "preferences" -msgid "list" -msgstr "רשימה" - -#: ../build/bin/conf_gen.h:3205 -msgctxt "preferences" -msgid "tabs" -msgstr "כרטיסיות" - -#: ../build/bin/conf_gen.h:3206 -msgctxt "preferences" -msgid "columns" -msgstr "עמודות" - -#: ../build/bin/conf_gen.h:3215 ../build/bin/preferences_gen.h:5117 -msgctxt "preferences" -msgid "active" -msgstr "פעיל" - -#: ../build/bin/conf_gen.h:3216 ../build/bin/preferences_gen.h:5122 -msgctxt "preferences" -msgid "dim" -msgstr "עמום" - -#: ../build/bin/conf_gen.h:3218 ../build/bin/preferences_gen.h:5132 -msgctxt "preferences" -msgid "fade" -msgstr "דועך" - -#: ../build/bin/conf_gen.h:3219 ../build/bin/preferences_gen.h:5137 -msgctxt "preferences" -msgid "fit" -msgstr "התאם" - -#: ../build/bin/conf_gen.h:3220 ../build/bin/preferences_gen.h:5142 -msgctxt "preferences" -msgid "smooth" -msgstr "החלק" - -#: ../build/bin/conf_gen.h:3221 ../build/bin/preferences_gen.h:5147 -msgctxt "preferences" -msgid "glide" -msgstr "גלוש" - -#: ../build/bin/preferences_gen.h:81 ../build/bin/preferences_gen.h:3823 -#: ../build/bin/preferences_gen.h:3859 ../build/bin/preferences_gen.h:3895 -#: ../build/bin/preferences_gen.h:3931 ../build/bin/preferences_gen.h:3967 -#: ../build/bin/preferences_gen.h:4003 ../build/bin/preferences_gen.h:4039 -#: ../build/bin/preferences_gen.h:4083 ../build/bin/preferences_gen.h:4178 -#: ../build/bin/preferences_gen.h:4273 ../build/bin/preferences_gen.h:4313 -#: ../build/bin/preferences_gen.h:4356 ../build/bin/preferences_gen.h:4437 -#: ../build/bin/preferences_gen.h:4473 ../build/bin/preferences_gen.h:4510 -#: ../build/bin/preferences_gen.h:4553 ../build/bin/preferences_gen.h:4627 -#: ../build/bin/preferences_gen.h:4672 ../build/bin/preferences_gen.h:4708 -#: ../build/bin/preferences_gen.h:4778 ../build/bin/preferences_gen.h:4822 -#: ../build/bin/preferences_gen.h:4882 ../build/bin/preferences_gen.h:4918 -#: ../build/bin/preferences_gen.h:4954 ../build/bin/preferences_gen.h:4990 -#: ../build/bin/preferences_gen.h:5026 ../build/bin/preferences_gen.h:5062 -#: ../build/bin/preferences_gen.h:5098 ../build/bin/preferences_gen.h:5188 -#: ../build/bin/preferences_gen.h:5224 ../build/bin/preferences_gen.h:5260 -#: ../build/bin/preferences_gen.h:5334 ../build/bin/preferences_gen.h:5370 -#: ../build/bin/preferences_gen.h:5435 ../build/bin/preferences_gen.h:5505 -#: ../build/bin/preferences_gen.h:5548 ../build/bin/preferences_gen.h:5618 -#: ../build/bin/preferences_gen.h:5654 ../build/bin/preferences_gen.h:5690 -#: ../build/bin/preferences_gen.h:5734 ../build/bin/preferences_gen.h:5805 -#: ../build/bin/preferences_gen.h:5841 ../build/bin/preferences_gen.h:5877 -#: ../build/bin/preferences_gen.h:5913 ../build/bin/preferences_gen.h:5955 -#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6140 -#: ../build/bin/preferences_gen.h:6176 ../build/bin/preferences_gen.h:6212 -#: ../build/bin/preferences_gen.h:6248 ../build/bin/preferences_gen.h:6284 -#: ../build/bin/preferences_gen.h:6320 ../build/bin/preferences_gen.h:6356 -#: ../build/bin/preferences_gen.h:6392 ../build/bin/preferences_gen.h:6427 -#: ../build/bin/preferences_gen.h:6462 ../build/bin/preferences_gen.h:6498 -#: ../build/bin/preferences_gen.h:6542 ../build/bin/preferences_gen.h:6614 -#: ../build/bin/preferences_gen.h:6692 ../build/bin/preferences_gen.h:6767 -#: ../build/bin/preferences_gen.h:6820 ../build/bin/preferences_gen.h:6885 -#: ../build/bin/preferences_gen.h:6950 ../build/bin/preferences_gen.h:7024 -#: ../build/bin/preferences_gen.h:7060 ../build/bin/preferences_gen.h:7096 -#: ../build/bin/preferences_gen.h:7132 ../build/bin/preferences_gen.h:7168 -#: ../build/bin/preferences_gen.h:7204 ../build/bin/preferences_gen.h:7250 -#: ../build/bin/preferences_gen.h:7310 ../build/bin/preferences_gen.h:7375 -#: ../build/bin/preferences_gen.h:7429 ../build/bin/preferences_gen.h:7474 -#: ../build/bin/preferences_gen.h:7510 ../build/bin/preferences_gen.h:7546 -#: ../build/bin/preferences_gen.h:7582 ../build/bin/preferences_gen.h:7618 -#: ../build/bin/preferences_gen.h:7678 ../build/bin/preferences_gen.h:7722 -#: ../build/bin/preferences_gen.h:7766 ../build/bin/preferences_gen.h:7848 -#: ../build/bin/preferences_gen.h:7888 ../build/bin/preferences_gen.h:7928 -#: ../build/bin/preferences_gen.h:7964 ../build/bin/preferences_gen.h:8019 -#: ../build/bin/preferences_gen.h:8055 ../build/bin/preferences_gen.h:8115 -#: ../build/bin/preferences_gen.h:8161 ../build/bin/preferences_gen.h:8197 -#: ../build/bin/preferences_gen.h:8243 ../build/bin/preferences_gen.h:8303 -#: ../build/bin/preferences_gen.h:8355 ../build/bin/preferences_gen.h:8401 -#: ../build/bin/preferences_gen.h:8469 ../build/bin/preferences_gen.h:8516 -msgid "this setting has been modified" -msgstr "הגדרה זו שונתה" - -#. doesn't seem to work from gtkrc -#: ../build/bin/preferences_gen.h:3793 ../build/bin/preferences_gen.h:4407 -#: ../build/bin/preferences_gen.h:5304 ../build/bin/preferences_gen.h:6110 -#: ../build/bin/preferences_gen.h:6662 ../build/bin/preferences_gen.h:6994 -#: ../build/bin/preferences_gen.h:7818 ../src/gui/accelerators.c:2724 -#: ../src/gui/gtk.c:2580 ../src/gui/preferences.c:421 -#: ../src/gui/preferences.c:876 ../src/libs/modulegroups.c:3886 -msgid "?" -msgstr "?" - -#: ../build/bin/preferences_gen.h:3806 ../build/bin/preferences_gen.h:4420 -#: ../build/bin/preferences_gen.h:6123 ../src/gui/preferences.c:270 -msgid "general" -msgstr "כללי" - -#: ../build/bin/preferences_gen.h:3826 -msgid "hide built-in presets for utility modules" -msgstr "החבא פריסטים מוטמעים עבור מודולי שירות" - -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4017 -#: ../build/bin/preferences_gen.h:4053 ../build/bin/preferences_gen.h:4156 -#: ../build/bin/preferences_gen.h:4251 ../build/bin/preferences_gen.h:4291 -#: ../build/bin/preferences_gen.h:4334 ../build/bin/preferences_gen.h:4377 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4531 ../build/bin/preferences_gen.h:4606 -#: ../build/bin/preferences_gen.h:4686 ../build/bin/preferences_gen.h:4756 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4860 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5040 ../build/bin/preferences_gen.h:5076 -#: ../build/bin/preferences_gen.h:5166 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5274 -#: ../build/bin/preferences_gen.h:5348 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5483 ../build/bin/preferences_gen.h:5525 -#: ../build/bin/preferences_gen.h:5596 ../build/bin/preferences_gen.h:5632 -#: ../build/bin/preferences_gen.h:5668 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5782 ../build/bin/preferences_gen.h:5819 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:5927 ../build/bin/preferences_gen.h:5998 -#: ../build/bin/preferences_gen.h:6074 ../build/bin/preferences_gen.h:6154 -#: ../build/bin/preferences_gen.h:6190 ../build/bin/preferences_gen.h:6226 -#: ../build/bin/preferences_gen.h:6262 ../build/bin/preferences_gen.h:6298 -#: ../build/bin/preferences_gen.h:6334 ../build/bin/preferences_gen.h:6370 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:6592 ../build/bin/preferences_gen.h:6632 -#: ../build/bin/preferences_gen.h:6745 ../build/bin/preferences_gen.h:6863 -#: ../build/bin/preferences_gen.h:6928 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7146 -#: ../build/bin/preferences_gen.h:7182 ../build/bin/preferences_gen.h:7288 -#: ../build/bin/preferences_gen.h:7353 ../build/bin/preferences_gen.h:7393 -#: ../build/bin/preferences_gen.h:7443 ../build/bin/preferences_gen.h:7488 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7656 -#: ../build/bin/preferences_gen.h:7692 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:7866 ../build/bin/preferences_gen.h:7906 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:7982 -#: ../build/bin/preferences_gen.h:8033 ../build/bin/preferences_gen.h:8093 -#: ../build/bin/preferences_gen.h:8175 ../build/bin/preferences_gen.h:8281 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 -#, c-format -msgid "double click to reset to `%s'" -msgstr "לחיצה כפולה לאתחל ל `%s'" - -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4053 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4686 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:5040 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5348 -#: ../build/bin/preferences_gen.h:5632 ../build/bin/preferences_gen.h:5668 -#: ../build/bin/preferences_gen.h:5819 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:6370 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7146 ../build/bin/preferences_gen.h:7443 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7692 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:8033 -#: ../build/bin/preferences_gen.h:8175 -msgctxt "preferences" -msgid "FALSE" -msgstr "מנוטרל" - -#: ../build/bin/preferences_gen.h:3840 -msgid "hides built-in presets of utility modules in presets menu." -msgstr "מחביא פריסטים מוטבעים של מודולי שירות בתפריט הפריסטים." - -#: ../build/bin/preferences_gen.h:3862 -msgid "use single-click in the collections module" -msgstr "השתמש בקליק בודד במודול האוספים" - -#: ../build/bin/preferences_gen.h:3876 -msgid "" -"check this option to use single-click to select items in the collections " -"module. this will allow you to do range selections for date-time and numeric " -"values." -msgstr "" -"בחר אפשרות זו על מנת להשתמש בקליק יחיד לבחירת פריטים במודול האוספים. מאפשר " -"בחירת טווח עבור תאריכים וערכים נומריים." - -#: ../build/bin/preferences_gen.h:3898 -msgid "expand a single utility module at a time" -msgstr "הרחב מודול שירות אחד בלבד בכל עת" - -#: ../build/bin/preferences_gen.h:3912 -msgid "this option toggles the behavior of shift clicking in lighttable mode" -msgstr "אפשרות זו ממתגת את התנהגות ההקלקה עם shift במצב שולחן אור" - -#: ../build/bin/preferences_gen.h:3934 -msgid "scroll utility modules to the top when expanded" -msgstr "גלול מודולי שירות מעלה כאשר מורחב" - -#: ../build/bin/preferences_gen.h:3948 ../build/bin/preferences_gen.h:5079 -msgid "" -"when this option is enabled then darktable will try to scroll the module to " -"the top of the visible list" -msgstr "" -"כאשר אפשרות זו מופעלת darktable תנסה לגלול את המודול לראש הרשימה הנראית" - -#: ../build/bin/preferences_gen.h:3970 -msgid "rating an image one star twice will not zero out the rating" -msgstr "דירוג תמונה בכוכב אחד פעמיים לא יאפס את הדירוג" - -#: ../build/bin/preferences_gen.h:3984 -msgid "" -"defines whether rating an image one star twice will zero out star rating" -msgstr "מגדיר באם דירוג תמונה בכוכב אחד פעמיים יאפס את הדירוג" - -#: ../build/bin/preferences_gen.h:4006 ../build/bin/preferences_gen.h:4675 -msgid "show scrollbars for central view" -msgstr "הראה פסי גלילה במבט המרכזי" - -#: ../build/bin/preferences_gen.h:4017 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5076 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5274 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5927 -#: ../build/bin/preferences_gen.h:6154 ../build/bin/preferences_gen.h:6190 -#: ../build/bin/preferences_gen.h:6226 ../build/bin/preferences_gen.h:6262 -#: ../build/bin/preferences_gen.h:6298 ../build/bin/preferences_gen.h:6334 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7182 -#: ../build/bin/preferences_gen.h:7488 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 -msgctxt "preferences" -msgid "TRUE" -msgstr "הפעל" - -#: ../build/bin/preferences_gen.h:4020 ../build/bin/preferences_gen.h:4689 -msgid "defines whether scrollbars should be displayed" -msgstr "מגדיר באם פסי הגלילה יוצגו" - -#: ../build/bin/preferences_gen.h:4042 -msgid "show image time with milliseconds" -msgstr "הצג זמן תמונה עם מילי שניות" - -#: ../build/bin/preferences_gen.h:4056 -msgid "defines whether time should be displayed with milliseconds" -msgstr "מגדיר באם זמן יוצג עם מילישניות" - -#: ../build/bin/preferences_gen.h:4066 -msgid "thumbnails" -msgstr "תמונות ממוזערות" - -#: ../build/bin/preferences_gen.h:4086 -msgid "use raw file instead of embedded JPEG from size" -msgstr "השתמש בקבצי raw במקום JPEG מוטמע מגודל" - -#: ../build/bin/preferences_gen.h:4159 -msgid "" -"if the thumbnail size is greater than this value, it will be processed using " -"raw file instead of the embedded preview JPEG (better but slower).\n" -"if you want all thumbnails and pre-rendered images in best quality you " -"should choose the *always* option.\n" -"(more comments in the manual)" -msgstr "" -"אם גודל התמונה הממוזערת גדול מערך זה, היא תעובד מקבצי ה raw במקום התצוגה " -"המקדימה המוטמעת ב JPEG (איכותי אך איטי יותר).\n" -"אם ברצונך שכל התמונות הממוזערות והמקדימות יהיו באיכות הגבוהה ביותר עלייך " -"לבחור באפשרות *always*.\n" -"(הערות נוספות במדריך למשתמש)" - -#: ../build/bin/preferences_gen.h:4181 -msgid "high quality processing from size" -msgstr "עיבוד באיכות גבוהה מתוך גודל" - -#: ../build/bin/preferences_gen.h:4254 -msgid "" -"if the thumbnail size is greater than this value, it will be processed using " -"the full quality rendering path (better but slower).\n" -"if you want all thumbnails and pre-rendered images in best quality you " -"should choose the *always* option.\n" -"(more comments in the manual)" -msgstr "" -"אם גודל התמונה הממוזערת גדול מערך זה, הוא יעובד במסלול איכות מלא (איכותי " -"יותר אך איטי יותר).\n" -"אם ברצונך את התמונות הממוזערות והתצוגות המקדימות באיכות מלאה עליך לבחור " -"באפשרות *always*.\n" -"(הערות נוספות במדריך למשתמש)" - -#: ../build/bin/preferences_gen.h:4276 -msgid "delimiters for size categories" -msgstr "תוחמים לקטגוריות גדלים" - -#: ../build/bin/preferences_gen.h:4294 -msgid "" -"size categories are used to be able to set different overlays and CSS values " -"depending of the size of the thumbnail, separated by |.\n" -"for example, 120|400 means 3 categories of thumbnails: <120px, 120-400px, " -">400px" -msgstr "" -"קטגוריות גדלים משמשות לקביעת כיסויים שונים וערכי css כתלות בגודל התצוגה " -"הממוזערת, מופרד ע\"י |. \n" -"למשל, 120|400 משמעותו 3 קטגוריות של תמונות ממוזערות : 0px->120px, 120px-" -">400px ו >400px" - -#: ../build/bin/preferences_gen.h:4316 -msgid "pattern for the thumbnail extended overlay text" -msgstr "תבנית עבור כיסוי טקסט מורחב של התמונה הממוזערת" - -#: ../build/bin/preferences_gen.h:4337 ../build/bin/preferences_gen.h:4380 -msgid "see manual to know all the tags you can use." -msgstr "ראה מדריך למשתמש לפירוט כל התגים הניתנים לשימוש." - -#: ../build/bin/preferences_gen.h:4359 -msgid "pattern for the thumbnail tooltip (empty to disable)" -msgstr "תבנית עבור חלונית המידע של התמונה הממוזערת (ריק לנטרול)" - -#: ../build/bin/preferences_gen.h:4440 -msgid "scroll down to increase mask parameters" -msgstr "גלול מטה להגביר פרמטרי מסיכה" - -#: ../build/bin/preferences_gen.h:4454 -msgid "" -"when using the mouse scroll wheel to change mask parameters, scroll down to " -"increase the mask size, feather size, opacity, brush hardness and gradient " -"curvature\n" -"by default scrolling up increases these parameters" -msgstr "" -"כאשר משתמשים בגלגל העכבר לשינוי פרמטרי מסיכה, גלול מטה להעלות גודל מסיכה, " -"גודל נוצה, אטימות, קשיות מברשת ועקמומיות גרדיאנט\n" -"כברירת מחדל גלילה מעלה מגדילה פרמטרים אלו" - -#: ../build/bin/preferences_gen.h:4476 -msgid "middle mouse button zooms to 200%" -msgstr "כפתור עכבר אמצעי מגדיל ל 200%" - -#: ../build/bin/preferences_gen.h:4491 -#, no-c-format -msgid "" -"if enabled, the zoom level will cycle between 100%, 200% and fit to viewport " -"on middle mouse clicks. if disabled, it will toggle between viewport size " -"and 100%, and the 'ctrl' key can be used to control the zoom level." -msgstr "" -"באם מאופשר, רמת ההגדלה תתחלף בין 100%, ל200% ותותאם לתצוגה בלחיצת כפתור עכבר " -"אמצעי. אם מנוטרל, תתחלף בין גודל התצוגה לבין 100%, וכפתור ה 'ctrl' ישמש " -"לשליטה ברמת ההגדלה." - -#: ../build/bin/preferences_gen.h:4513 -msgid "pattern for the image information line" -msgstr "תבנית לשורת קו האינפורמציה של התמונה" - -#: ../build/bin/preferences_gen.h:4534 -msgid "see manual for a list of the tags you can use." -msgstr "ראה מדריך למשתמש לרשימה של כל התגים הניתנים לשימוש." - -#: ../build/bin/preferences_gen.h:4556 -msgid "position of the image information line" -msgstr "מיקום קו נתוני התמונה" - -#: ../build/bin/preferences_gen.h:4630 -msgid "border around image in darkroom mode" -msgstr "גבולות סביב התמונה במצב חדר חושך" - -#: ../build/bin/preferences_gen.h:4650 ../build/bin/preferences_gen.h:6790 -#: ../build/bin/preferences_gen.h:7228 ../build/bin/preferences_gen.h:7789 -#: ../build/bin/preferences_gen.h:8139 ../build/bin/preferences_gen.h:8221 -#: ../build/bin/preferences_gen.h:8379 ../build/bin/preferences_gen.h:8493 -#: ../build/bin/preferences_gen.h:8540 -#, c-format -msgid "double click to reset to `%d'" -msgstr "לחיצה כפולה לאתחל ל `%d'" - -#: ../build/bin/preferences_gen.h:4653 -msgid "" -"process the image in darkroom mode with a small border. set to 0 if you " -"don't want any border." -msgstr "" -"עבד את התמונה במצב חדר חושך עם מסגרת צרה. קבע ל 0 אם אינך מעוניין במסגרת כלל." - -#: ../build/bin/preferences_gen.h:4711 -msgid "reduce resolution of preview image" -msgstr "הפחת רזולוציה של תמונה מקדימה" - -#: ../build/bin/preferences_gen.h:4759 -msgid "decrease to speed up preview rendering, may hinder accurate masking" -msgstr "הפחת לזרוז הפקת תצוגה מקדימה, עלול לגרום לחוסר דיוק במיסוך" - -#: ../build/bin/preferences_gen.h:4781 -msgid "show loading screen between images" -msgstr "הצג מסך טעינה בין התמונות" - -#: ../build/bin/preferences_gen.h:4795 -msgid "" -"show gray loading screen when navigating between images in the darkroom\n" -"disable to just show a toast message" -msgstr "" -"הצג מסך טעינה אפור כאשר מנווטים בין התמונות בחדר החושך\n" -"נטרל להצגת הודעת טוסט בלבד" - -#: ../build/bin/preferences_gen.h:4805 -msgid "modules" -msgstr "מודולים" - -#: ../build/bin/preferences_gen.h:4825 -msgid "display of individual color channels" -msgstr "הצגה של ערוצי צבע בודדים" - -#: ../build/bin/preferences_gen.h:4863 -msgid "" -"defines how color channels are displayed when activated in the parametric " -"masks feature." -msgstr "" -"מגדיר את הצורה בה מוצגים ערוצי הצבע כאשר מופעלים בתכונת המסיכה הפרמטרית." - -#: ../build/bin/preferences_gen.h:4885 -msgid "hide built-in presets for processing modules" -msgstr "החבא פריסטים מוטמעים עבור מודולי עיבוד" - -#: ../build/bin/preferences_gen.h:4899 -msgid "" -"hides built-in presets of processing modules in both presets and favourites " -"menu." -msgstr "מחביא פריסטים מוטבעים של מודולי עיבוד בתפריטי פריסט ומועדפים גם יחד." - -#: ../build/bin/preferences_gen.h:4921 ../build/bin/preferences_gen.h:4935 -msgid "show the guides widget in modules UI" -msgstr "הצג את ווידג'ט המנחים בממשק המודולים" - -#: ../build/bin/preferences_gen.h:4957 -msgid "expand a single processing module at a time" -msgstr "הרחב מודול עיבוד אחד בלבד בכל עת" - -#: ../build/bin/preferences_gen.h:4971 -msgid "this option toggles the behavior of shift clicking in darkroom mode" -msgstr "אפשרות זו ממתגת את התנהגות ההקלקה עם shift במצב חדר חושך" - -#: ../build/bin/preferences_gen.h:4993 -msgid "only collapse modules in current group" -msgstr "כנס מודולים בקבוצה הנוכחית בלבד" - -#: ../build/bin/preferences_gen.h:5007 -msgid "" -"if only expanding a single module at a time, only collapse other modules in " -"the current group - ignore modules in other groups" -msgstr "" -"אם רק מרחיב מודול אחד בכל פעם, כנס רק את יתר המודולים בקבוצה הנוכחית - התעלם " -"ממודולים בקבוצות אחרות" - -#: ../build/bin/preferences_gen.h:5029 -msgid "expand the module when it is activated, and collapse it when disabled" -msgstr "הרחב את המודול כאשר פעיל, וצמצמו כשמנוטרל" - -#: ../build/bin/preferences_gen.h:5043 -msgid "" -"this option allows to expand or collapse automatically the module when it is " -"enabled or disabled." -msgstr "" -"אופציה זו מאפשרת להרחיב או לצמצם מודולים אוטומטית כאשר הם מופעלים או " -"מנוטרלים." - -#: ../build/bin/preferences_gen.h:5065 -msgid "scroll processing modules to the top when expanded" -msgstr "גלול מודולי עיבוד למעלה כאשר מורחב" - -#: ../build/bin/preferences_gen.h:5101 -msgid "show right-side buttons in processing module headers" -msgstr "הצג כפתורים ימניים בכותרות מודולי העיבוד" - -#: ../build/bin/preferences_gen.h:5169 -msgid "" -"when the mouse is not over a module, the multi-instance, reset and preset " -"buttons can be hidden:\n" -" - 'always': always show all buttons,\n" -" - 'active': only show the buttons when the mouse is over the module,\n" -" - 'dim': buttons are dimmed when mouse is away,\n" -" - 'auto': hide the buttons when the panel is narrow,\n" -" - 'fade': fade out all buttons when panel narrows,\n" -" - 'fit': hide all the buttons if the module name doesn't fit,\n" -" - 'smooth': fade out all buttons in one header simultaneously,\n" -" - 'glide': gradually hide individual buttons as needed" -msgstr "" -"כאשר העכבר אינו מעל מודול, כפתורי ה ריבוי-שלבים, אתחול ופריסט ניתנים " -"להחבאה:\n" -"- 'תמיד' - תמיד הראה את כל הכפתורים,\n" -"- 'פעיל' - הראה כפתורים רק כאשר העכבר מעל המודול,\n" -"- 'מעומעם' - כפתורים מעומעמים כאשר העכבר מרוחק,\n" -"- 'אוטו' - החבא כפתורים כאשר הפנל צר,\n" -"- 'דהוי' - העלמות הדרגתית של הכפתורים כאשר הפנל מוצר,\n" -"- 'מותאם' - החבא את כל הכפתורים אם שם המודול לא נכנס,\n" -"- 'חלק' - העלמות הדרגתית של כל הכפתורים בכותרת אחת בו זמנית,\n" -"- 'גלוש' - החבא בהדרגה כפתורים בודדים לפי הצורך" - -#: ../build/bin/preferences_gen.h:5191 -msgid "show mask indicator in module headers" -msgstr "הצג סמני מסיכה בכותרות המודולים" - -#: ../build/bin/preferences_gen.h:5205 -msgid "" -"if enabled, an icon will be shown in the header of any processing modules " -"that have a mask applied" -msgstr "אם מאופשר, תוצג צלמית בכותרת של כל מודול עיבוד בו מיושמת מסיכה" - -#: ../build/bin/preferences_gen.h:5227 -msgid "prompt for name on addition of new instance" -msgstr "בקש שם בהוספת שלב חדש" - -#: ../build/bin/preferences_gen.h:5241 -msgid "" -"if enabled, a rename prompt will be present for each new module instance " -"(either new instance or duplicate)" -msgstr "" -"אם מאופשר, תופיע התראה על שינוי שם עבור כל שלב במודול (בשלב חדש או משוכפל)" - -#: ../build/bin/preferences_gen.h:5263 -msgid "automatically update module name" -msgstr "עדכן שם מודול אוטומטית" - -#: ../build/bin/preferences_gen.h:5277 -msgid "" -"if enabled, the module name will be automatically updated to match a preset " -"name or a preset instance name if present." -msgstr "" -"באם מאופשר, שם המודול יתעדכן אוטומטית כך שיתאים לשם הנוכחי אם קיים של הפריסט." - -#: ../build/bin/preferences_gen.h:5317 -msgid "image processing" -msgstr "עיבוד תמונה" - -#: ../build/bin/preferences_gen.h:5337 -msgid "always use LittleCMS 2 to apply output color profile" -msgstr "השתמש תמיד ב LittleCMS 2 ליישום פרופיל צבע לפלט" - -#: ../build/bin/preferences_gen.h:5351 -msgid "this is slower than the default." -msgstr "זה איטי יותר מברירת המחדל." - -#: ../build/bin/preferences_gen.h:5373 -msgid "pixel interpolator (warp)" -msgstr "פיקסל אינטרפולטור (עיוות)" - -#: ../build/bin/preferences_gen.h:5416 -msgid "" -"pixel interpolator used in modules for rotation, lens correction, liquify, " -"cropping and final scaling (bilinear, bicubic, lanczos2)." -msgstr "" -"פיקסל אינטרפולטור שישמש בסיבוב, תיקון עדשה, ניזול, חיתוך, והגדלה סופית " -"(bilinear, bicubic, lanczos2)." - -#: ../build/bin/preferences_gen.h:5438 -msgid "pixel interpolator (scaling)" -msgstr "פיקסל אינטרפולטור (הגדלה)" - -#: ../build/bin/preferences_gen.h:5486 -msgid "" -"pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." -msgstr "" -"פיקסל אינטרפולטור שישמש בהגדלה (bilinear, bicubic, lanczos2, lanczos3)." - -#: ../build/bin/preferences_gen.h:5508 -msgid "LUT 3D root folder" -msgstr "תיקיית שורש של LUT 3D" - -#: ../build/bin/preferences_gen.h:5513 ../src/control/jobs/control_jobs.c:1688 -#: ../src/control/jobs/control_jobs.c:1742 ../src/gui/preferences.c:1081 -#: ../src/gui/presets.c:419 ../src/imageio/storage/disk.c:122 -#: ../src/imageio/storage/disk.c:178 ../src/imageio/storage/gallery.c:109 -#: ../src/imageio/storage/gallery.c:163 ../src/imageio/storage/latex.c:108 -#: ../src/imageio/storage/latex.c:162 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/import.c:1664 ../src/libs/styles.c:391 -#: ../src/lua/preferences.c:668 -msgid "select directory" -msgstr "בחר תיקיה" - -#: ../build/bin/preferences_gen.h:5529 -msgid "" -"this folder (and sub-folders) contains LUT files used by LUT 3D module. " -"(need a restart)." -msgstr "" -"תיקיה זו (ותת התיקיות שבה) מכילה קבצי LUT בהם נעשה שימוש על ידי מודולי LUT " -"3D. (מצריך אתחול)." - -#: ../build/bin/preferences_gen.h:5551 -msgid "auto-apply pixel workflow defaults" -msgstr "יישם אוטומטית ברירות מחדל על מהלך עיבוד פיקסל" - -#: ../build/bin/preferences_gen.h:5599 -msgid "" -"scene-referred workflow is based on linear modules and will auto-apply " -"filmic or sigmoid, color calibration and exposure,\n" -"display-referred workflow is based on Lab modules and will auto-apply base " -"curve, white balance and the legacy module pipe order." -msgstr "" -"זרימת עבודה מיוחס-סצנה מבוססת על מודולים לינארים וייושם אוטומטית על filmic " -"או sigmoid, כיול צבע וחשיפה,\n" -"זרימת עבודה מיוחס-תצוגה מבוסס על מודולי Lab ויישם אוטומטית עקום בסיס, איזון " -"לבן ואת סדר הפעולות בצנרת מודול מורשת." - -#: ../build/bin/preferences_gen.h:5621 -msgid "auto-apply per camera basecurve presets" -msgstr "יישום אוטומטי לעקום הבסיס המוגדר מראש עבור כל מצלמה" - -#: ../build/bin/preferences_gen.h:5635 -msgid "" -"use the per-camera basecurve by default instead of the generic manufacturer " -"one if there is one available (needs a restart).\n" -"this option is taken into account when the \"auto-apply pixel workflow " -"defaults\" is set to \"display-referred\".\n" -"to prevent auto-apply basecurve presets \"auto-apply pixel workflow " -"defaults\" should be set to \"none\"" -msgstr "" -"השתמש בעקום הבסיס הייחודי למצלמה כברירת מחדל במקום העקום הגנרי של היצרן אם " -"יש כזה בנמצא (מצריך אתחול).\n" -"אפשרות זו נלקחת בחשבון כאשר \"יישם אוטומטית ברירות מחדל על מהלך עיבוד " -"פיקסל\" מכוון ל \"מוכוון תצוגה\".\n" -"למניעת יישום אוטומטי של הגדרות עקום הבסיס אפשרות \"יישם אוטומטית ברירות מחדל " -"על מהלך עיבוד פיקסל\" צריכה להיות מכוונת ל \"אף אחד\"" - -#: ../build/bin/preferences_gen.h:5657 -msgid "detect monochrome previews" -msgstr "גלה תצוגות מקדימות חד צבעיות" - -#: ../build/bin/preferences_gen.h:5671 -msgid "" -"many monochrome images can be identified via EXIF and preview data. beware: " -"this slows down imports and reading of EXIF data" -msgstr "" -"תמונות חד צבעיות רבות ניתנות לזיהוי דרך נתוני ה EXIF והתצוגה המקדימה. שים " -"לב: מאט ייבוא וקריאה של נתוני EXIF" - -#: ../build/bin/preferences_gen.h:5693 -msgid "show warning messages" -msgstr "הצג הודעות התראה" - -#: ../build/bin/preferences_gen.h:5707 -msgid "" -"display messages in modules to warn beginner users when non-standard and " -"possibly harmful settings are used in the pipeline.\n" -"these messages can be false-positive and should be disregarded if you know " -"what you are doing. this option will hide them all the time." -msgstr "" -"הצג הודעות במודולים להזהיר משתמשים מתחילים כאשר הגדרות לא סטנדרטיות או בעלות " -"פוטנציאל מזיק נמצאות בסדר הפעולות.\n" -"הודעות אלו עלולות להתריע לשווא ויש להתעלם מהן אם אם את יודעת מה את עושה. " -"אפשרות זו תחביא אותן כל הזמן." - -#: ../build/bin/preferences_gen.h:5717 -msgid "CPU / GPU / memory" -msgstr "CPU / GPU / memory" - -#: ../build/bin/preferences_gen.h:5737 -msgid "darktable resources" -msgstr "משאבי darktable" - -#: ../build/bin/preferences_gen.h:5786 -#, no-c-format -msgid "" -"defines how much darktable may take from your system resources:\n" -" - 'default': darktable takes ~50% of your systems resources and gives " -"darktable enough to be still performant.\n" -" - 'small': should be used if you are simultaneously running applications " -"taking large parts of your systems memory or OpenCL/GL applications like " -"games or Hugin.\n" -" - 'large': is the best option if you are mainly using darktable and want it " -"to take most of your systems resources for performance.\n" -" - 'unrestricted': should only be used for developing extremely large images " -"as darktable will take all of your systems resources\n" -" and thus might lead to swapping and unexpected performance drops.\n" -" use with caution and not recommended for general use!" -msgstr "" -"מגדיר את כמות המשאבים ש darktable מורשה לצרוך מהמערכת:\n" -"- 'ברירת מחדל': darktable צורך כ 50% ממשאבי המערכת ומאפשר מספיק משאבים " -"לביצועים עקביים.\n" -"- 'מעט': לשימוש באם בעת ובעונה אחת רצות על המערכת אפליקציות אחרות הדורשות " -"נתח זיכרון מערכת משמעותי או אפליקציות OpenCL/GL כגון משחקים.\n" -"- 'הרבה': זו האפשרות הטובה ביותר אם darktable הוא השימוש העיקרי ויש אפשרות " -"להקצות את מירב משאבי המערכת לשם ביצועים.\n" -"- 'בלתי מוגבל': לשימוש אך ורק בפיתוח של תמונות גדולות במיוחד כיוון darktable " -"יצרוך את כל משאבי המערכת \n" -" ועלול לגרום לירידה משמעותית בביצועים. \n" -" להשתמש בזהירות ולא מומלץ לשימוש כללי!" - -#: ../build/bin/preferences_gen.h:5808 -msgid "prefer performance over quality" -msgstr "העדף ביצועי מהירות על איכות" - -#: ../build/bin/preferences_gen.h:5822 -msgid "" -"if switched on, thumbnails and previews are rendered at lower quality but 4 " -"times faster" -msgstr "" -"אם מופעל, תצוגות מקדימות ותמונות ממוזערות מיוצרות באיכות נמוכה יותר אבל פי 4 " -"יותר מהר" - -#: ../build/bin/preferences_gen.h:5844 -msgid "enable disk backend for thumbnail cache" -msgstr "הפעל שימוש בדיסק לצורך מטמון תמונות ממוזערות" - -#: ../build/bin/preferences_gen.h:5858 -msgid "" -"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want. light table " -"performance will be increased greatly when browsing a lot.\n" -"to generate all thumbnails of your entire collection offline, run 'darktable-" -"generate-cache'." -msgstr "" -"אם מופעל, כתוב תמונות ממוזערות לדיסק (.cache/darktable/) כאשר מתפנות מזיכרון " -"המטמון. \n" -"שים לב שהדבר עלול לצרוך זכרון רב ( מספר גיגה בייטים ל 20k תמונות) ותמונות " -"ממוזערות אלה לעולם לא יימחקו. \n" -"אולם בטוח למחוק תמונות אלה ידנית. ביצועי שולחן האור ישתפרו מאד בדפדוף " -"מרובה. \n" -"על מנת ליצור את כל התמונות הממוזערות שבאוסף הרץ 'darktable-generate-cache'." - -#: ../build/bin/preferences_gen.h:5880 -msgid "enable disk backend for full preview cache" -msgstr "הפעל שימוש בדיסק לצורך מטמון תמונות תצוגה מקדימה" - -#: ../build/bin/preferences_gen.h:5894 -msgid "" -"if enabled, write full preview to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want.\n" -"light table performance will be increased greatly when zooming image in full " -"preview mode." -msgstr "" -"אם מופעל, כתוב תמונות ממוזערות לדיסק (cache/darktable.) כאשר מתפנות מזיכרון " -"המטמון. \n" -"שים לב שהדבר עלול לצרוך זכרון רב ( מספר גיגה בייטים ל 20k תמונות) ותמונות " -"ממוזערות אלה לעולם לא יימחקו. \n" -"בטוח למחוק תמונות אלה ידנית כרצונך. \n" -"ביצועי שולחן האור ישתפרו מאד בהגדלת תמונה במצב תצוגה מקדימה מלאה." - -#: ../build/bin/preferences_gen.h:5916 -msgid "activate OpenCL support" -msgstr "הפעל תמיכה ב OpenCL" - -#: ../build/bin/preferences_gen.h:5930 -msgid "" -"if found, use OpenCL runtime on your system to speed up processing.\n" -"can be switched on and off at any time." -msgstr "" -"אם ניתן, השתמש ב OpenCL על מערכת זו לשיפור זמן העיבוד. \n" -"ניתן להדליק ולכבות בכל עת." - -#: ../build/bin/preferences_gen.h:5931 ../build/bin/preferences_gen.h:6002 -#: ../build/bin/preferences_gen.h:6078 ../build/bin/preferences_gen.h:7397 -msgid "not available" -msgstr "לא זמין" - -#: ../build/bin/preferences_gen.h:5934 ../build/bin/preferences_gen.h:5938 -#: ../build/bin/preferences_gen.h:6005 ../build/bin/preferences_gen.h:6009 -#: ../build/bin/preferences_gen.h:6081 ../build/bin/preferences_gen.h:6085 -#: ../build/bin/preferences_gen.h:7400 ../build/bin/preferences_gen.h:7404 -msgid "not available on this system" -msgstr "לא זמין על מערכת זו" - -#: ../build/bin/preferences_gen.h:5958 -msgid "OpenCL scheduling profile" -msgstr "פרופיל התזמון של OpenCL" - -#: ../build/bin/preferences_gen.h:6001 -msgid "" -"defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled " -"systems:\n" -" - 'default': GPU processes full and CPU processes preview pipe (adaptable " -"by config parameters),\n" -" - 'multiple GPUs': process both pixelpipes in parallel on two different " -"GPUs,\n" -" - 'very fast GPU': process both pixelpipes sequentially on the GPU." -msgstr "" -"מגדיר את הדרך בה הצגה מקדימה ומשימות pixelpipe מלא מתוזמנות במערכת עם OpenCL " -"מופעל: \n" -"- 'ברירת המחדל' : GPU מטפל במלא ו CPU בתצוגה המקדימה (ניתן להתאמה ע\"י " -"פרמטרי קונפיגורציה), \n" -"- 'מרובים GPU' : מטפל בשני ה pixelpipes במקביל כל אחד ב GPU נפרד, \n" -"- 'מהיר מאד GPU' : מטפל בשני ה pixelpipes באופן טורי על אותו GPU." - -#: ../build/bin/preferences_gen.h:6029 -msgid "tune OpenCL performance" -msgstr "כוונן ביצועי OpenCL" - -#: ../build/bin/preferences_gen.h:6077 -msgid "" -"allows runtime tuning of OpenCL devices:\n" -" - 'memory size': uses a fixed headroom (400MB as default),\n" -" - 'memory transfer': tries a faster memory access mode (pinned memory) used " -"for tiling." -msgstr "" -"מאפשר כוונון בזמן ריצה של התקני OpenCL: \n" -"- 'גודל זיכרון' משתמש במרווח קבוע (400MB כברירת מחדל), \n" -"- 'העברת זיכרון' מנסה מצב מהיר יותר של גישה לזיכרון (זיכרון נעוץ) בו נעשה " -"שימוש באירוח (tiling)." - -#: ../build/bin/preferences_gen.h:6143 -msgid "ask before removing images from the library" -msgstr "בקש אישור לפני הסרת תמונות מהספרייה" - -#: ../build/bin/preferences_gen.h:6157 -msgid "always ask the user before removing image information from the library" -msgstr "תמיד בקש אישור מהמשתמש לפני הסרת תמונה מהספרייה" - -#: ../build/bin/preferences_gen.h:6179 -msgid "ask before deleting images from disk" -msgstr "בקש אישור לפני מחיקת תמונות מהכונן" - -#: ../build/bin/preferences_gen.h:6193 -msgid "always ask the user before any image file is deleted" -msgstr "תמיד בקש אישור מהמשתמש לפני מחקה של כל תמונה" - -#: ../build/bin/preferences_gen.h:6215 -msgid "ask before discarding history stack" -msgstr "בקש אישור לפני זריקת מחסנית היסטוריה" - -#: ../build/bin/preferences_gen.h:6229 -msgid "always ask the user before history stack is discarded on any image" -msgstr "" -"תמיד בקש אישור מהמשתמש לפני כל זריקה של מחסנית היסטוריה עבור תמונה כלשהי" - -#: ../build/bin/preferences_gen.h:6251 -msgid "try to use trash when deleting images" -msgstr "נסה להשתמש בסל המחזור במחיקת תמונות" - -#: ../build/bin/preferences_gen.h:6265 -msgid "" -"send files to trash instead of permanently deleting files on system that " -"supports it" -msgstr "שלח קבצים לסל המחזור במקום למחקם לחלוטין במערכות התומכות בכך" - -#: ../build/bin/preferences_gen.h:6287 -msgid "ask before moving images from film roll folder" -msgstr "בקש אישור לפני העברת תמונות מגליל הפילם" - -#: ../build/bin/preferences_gen.h:6301 -msgid "always ask the user before any image file is moved." -msgstr "תמיד בקש אישור מהמשתמש לפני העברה של כל תמונה." - -#: ../build/bin/preferences_gen.h:6323 -msgid "ask before copying images to new film roll folder" -msgstr "בקש אישור לפני העתקה של תמונות לתיקיית גליל פילם חדש" - -#: ../build/bin/preferences_gen.h:6337 -msgid "always ask the user before any image file is copied." -msgstr "תמיד בקש אישור מהמשתמש לפני העתקה של קובץ תמונה כלשהו." - -#: ../build/bin/preferences_gen.h:6359 -msgid "ask before removing empty folders" -msgstr "בקש אישור לפני הסרה של תיקיות ריקות" - -#: ../build/bin/preferences_gen.h:6373 -msgid "" -"always ask the user before removing any empty folder. this can happen after " -"moving or deleting images." -msgstr "" -"תמיד שאל את המשתמש לפני הסרת כל תיקיה ריקה. מצב כזה יתכן לאחר העברת או מחיקת " -"תמונות." - -#: ../build/bin/preferences_gen.h:6395 -msgid "ask before deleting a tag" -msgstr "בקש אישור לפני מחיקת תג" - -#: ../build/bin/preferences_gen.h:6430 -msgid "ask before deleting a style" -msgstr "בקש אישור לפני מחיקת תג" - -#: ../build/bin/preferences_gen.h:6465 -msgid "ask before deleting a preset" -msgstr "בקש אישור לפני מחיקת פריסט" - -#: ../build/bin/preferences_gen.h:6479 -msgid "will ask for confirmation before deleting or overwriting a preset" -msgstr "יתבקש אשרור לפני מחיקת או דריסת פריסט" - -#: ../build/bin/preferences_gen.h:6501 -msgid "ask before exporting in overwrite mode" -msgstr "בקש אישור לפני ייצוא במצב שכתוב" - -#: ../build/bin/preferences_gen.h:6515 -msgid "will ask for confirmation before exporting files in overwrite mode" -msgstr "יתבקש אשרור לפני ייצוא קבצים במצב שכתוב" - -#. italic -#: ../build/bin/preferences_gen.h:6525 ../src/libs/tools/viewswitcher.c:148 -msgid "other" -msgstr "אחר" - -#: ../build/bin/preferences_gen.h:6545 -msgid "password storage backend to use" -msgstr "תשתית אחסון ססמאות בה להשתמש" - -#: ../build/bin/preferences_gen.h:6595 -msgid "" -"the storage backend for password storage: auto, none, libsecret, kwallet" -msgstr "תשתית אחסון ססמאות: אוטומטי, ללא, libsecret, kwallet, gnome keyring" - -#: ../build/bin/preferences_gen.h:6617 -msgid "executable for playing audio files" -msgstr "קובץ ריצה לניגון קבצי שמע" - -#: ../build/bin/preferences_gen.h:6635 -msgid "" -"this external program is used to play audio files some cameras record to " -"keep notes for images" -msgstr "" -"תוכנה חיצונית זו משמשת לניגון קבצי שמע בהם מצלמות מסוימות משתמשות להקלטת " -"הערות על תמונות" - -#: ../build/bin/preferences_gen.h:6675 ../src/control/crawler.c:724 -msgid "database" -msgstr "מסד נתונים" - -#: ../build/bin/preferences_gen.h:6695 -msgid "create database snapshot" -msgstr "צלם מסד נתונים" - -#: ../build/bin/preferences_gen.h:6748 -msgid "" -"database snapshots are created right before closing darktable. options allow " -"you to choose how often to make snapshots:\n" -" - 'never': simply don't do snapshots. that way the only snapshots done are " -"mandatory version-upgrade snapshots\n" -" - 'once a month': create snapshot if a month has passed since last " -"snapshot\n" -" - 'once a week': create snapshot if 7 days had passed since last snapshot\n" -" - 'once a day': create snapshot if over 24h passed since last snapshot\n" -" - 'on close': create snapshot every time darktable is closed" -msgstr "" -"צילומי מסד הנתונים נלקחים בסגירת darktable. האפשרויות מאפשרות לבחור באיזו " -"תדירות לשמור צילום:\n" -"- 'אף פעם': פשוט לא לצלם. באופן זה נלקחים רק צילומי חובה בזמן שדרוג גרסה\n" -"- 'חודשי': צלם אם חלף חודש מהצילום הקודם\n" -"- 'שבועי': צלם אם חלף שבוע מהצילום הקודם\n" -"- 'יומי': צלם אם חלפו 24 שעות מהצילום הקודם\n" -"- 'בסגירה': צלם בכל פעם ש darktable נסגרת" - -#: ../build/bin/preferences_gen.h:6770 -msgid "how many snapshots to keep" -msgstr "מספר תמונות לשמור" - -#: ../build/bin/preferences_gen.h:6793 -msgid "" -"after successfully creating snapshot, how many older snapshots to keep " -"(excluding mandatory version update ones). enter -1 to keep all snapshots\n" -"keep in mind that snapshots do take some space and you only need the most " -"recent one for successful restore" -msgstr "" -"לאחר יצירת צילום מצב, כמה צילומים קודמים לשמור (להוציא צילומים מחויבים " -"משדרוג). הקש 1 לשמירת כל הצילומים\n" -"זכור שצילומים צורכים מקום בדיסק ושנדרש רק הצילום המעודכן ביותר לשחזור מוצלח" - -#: ../build/bin/preferences_gen.h:6803 ../src/control/crawler.c:723 -msgid "XMP" -msgstr "XMP" - -#: ../build/bin/preferences_gen.h:6823 -msgid "write sidecar file for each image" -msgstr "כתוב קובץ נלווה לכל תמונה" - -#: ../build/bin/preferences_gen.h:6866 -msgid "" -"the sidecar files hold information about all your development steps to allow " -"flawless re-importing of image files.\n" -"\n" -"depending on the selected mode sidecar files will be written:\n" -" - 'never'\n" -" - 'on import': immediately after importing the image\n" -" - 'after edit': after any user change on the image." -msgstr "" -"הקבצים הנלווים מכילים מידע על שלבי פיתוח התמונה על מנת לאפשר ייבוא מחדש נטול " -"תקלות של קבצי תמונה.\n" -"\n" -"כתלות במצב הנבחר קבצים נלווים יכתבו:\n" -"- לעולם לא\n" -"- ביבוא: מיד לאחר יבוא התמונה\n" -"- לאחר עריכה: לאחר שינוי כלשהו שנערך בתמונה." - -#: ../build/bin/preferences_gen.h:6888 -msgid "store XMP tags in compressed format" -msgstr "שמור תגיות XMP בפורמט דחוס" - -#: ../build/bin/preferences_gen.h:6931 -msgid "" -"entries in XMP tags can get rather large and may exceed the available space " -"to store the history stack in output files.\n" -"this option allows XMP tags to be compressed and save space." -msgstr "" -"ערכים בתגיות XMP עלולים להיות גדולים למדי ולחרוג מהנפח הזמין לשמירת " -"ההיסטוריה בקובץ הפלט. \n" -"אפשרות זו מתירה לתגיות ה XMP להידחס ולחסוך מקום." - -#: ../build/bin/preferences_gen.h:6953 -msgid "look for updated XMP files on startup" -msgstr "חפש קבצי XMP מעודכנים בעלייה" - -#: ../build/bin/preferences_gen.h:6967 -msgid "" -"check file modification times of all XMP files on startup to check if any " -"got updated in the meantime" -msgstr "בדוק זמני עדכון עבור כל קבצי XMP בעליה בכדי לבדוק אם עודכנו בינתיים" - -#: ../build/bin/preferences_gen.h:7007 -msgid "interface" -msgstr "ממשק" - -#: ../build/bin/preferences_gen.h:7027 -msgid "load default shortcuts at startup" -msgstr "טען קיצורי ברירת מחדל באתחול" - -#: ../build/bin/preferences_gen.h:7041 -msgid "" -"load default shortcuts before user settings. switch off to prevent deleted " -"defaults returning" -msgstr "" -"טען קיצורי ברירת מחדל לפני הגדרות משתמש. כבה למניעת חזרתם של הגדרות שנמחקו" - -#: ../build/bin/preferences_gen.h:7063 -msgid "scale slider step with min/max" -msgstr "התאם יחידת צעד סליידר עם מינ\\מקס" - -#: ../build/bin/preferences_gen.h:7077 -msgid "vary slider step size with min/max range" -msgstr "שנה גודל צעד של סליידר בהתאמה לטווח מינ\\מקס" - -#: ../build/bin/preferences_gen.h:7099 -msgid "sort built-in presets first" -msgstr "סדר פריסטים מוטמעים קודם" - -#: ../build/bin/preferences_gen.h:7113 -msgid "" -"whether to show built-in presets first before user's presets in presets menu." -msgstr "" -"באם להציג פריסטים מוטמעים קודם לפני כאלה שהוגדרו ע\"י המשתמש בתפריט הפריסטים." - -#: ../build/bin/preferences_gen.h:7135 -msgid "mouse wheel scrolls modules side panel by default" -msgstr "גלגלת העכבר גוללת פאנל צידי של מודולים כברירת מחדל" - -#: ../build/bin/preferences_gen.h:7149 -msgid "" -"when enabled, use mouse wheel to scroll modules side panel. use ctrl+alt to " -"use mouse wheel for data entry. when disabled, this behavior is reversed" -msgstr "" -"כאשר מופעל, השתמש בגלגלת העכבר לגלול פאנל צידי של מודולים. ctrl+alt להכנסת " -"נתונים בעזרת גלגלת העכבר. כאשר מנוטרל, התנהגות זו הפוכה" - -#: ../build/bin/preferences_gen.h:7171 -msgid "always show panels' scrollbars" -msgstr "תמיד הצג את פסי הגלילה של הפאנלים" - -#: ../build/bin/preferences_gen.h:7185 -msgid "" -"defines whether the panel scrollbars should be always visible or activated " -"only depending on the content. (need a restart)" -msgstr "מגדיר באם פסי הגלילה של הפאנל יוצגו תמיד או כתלות בתוכן. (מצריך אתחול)" - -#: ../build/bin/preferences_gen.h:7207 -msgid "duration of the UI transitions in ms" -msgstr "זמן מעברי ממשק משתמש במילישניות" - -#: ../build/bin/preferences_gen.h:7231 -msgid "" -"how long the transitions take (in ms) for expanding or collapsing modules " -"and other UI elements" -msgstr "" -"כמה זמן המעבר לוקח (ב ms) בפריסה או צמצום של מודולים ואלמנטים אחרים בממשק " -"משתמש" - -#: ../build/bin/preferences_gen.h:7253 -msgid "position of the scopes module" -msgstr "מיקום מודולי נתוני התמונה" - -#: ../build/bin/preferences_gen.h:7291 -msgid "position the scopes at the top-left or top-right of the screen" -msgstr "מקם את הסקופים בחלק השמאלי העליון או הימני עליון של המסך" - -#: ../build/bin/preferences_gen.h:7313 -msgid "method to use for getting the display profile" -msgstr "שיטה לשימוש עבור קבלת פרופיל התצוגה" - -#: ../build/bin/preferences_gen.h:7356 -msgid "" -"this option allows to force a specific means of getting the current display " -"profile.\n" -"this is useful when one alternative gives wrong results" -msgstr "" -"אפשרות זו מאפשרת לאלץ דרך מסוימת לקבל את פרופיל התצוגה הנוכחי. \n" -"דבר זה שימושי כאשר אחת דרכים מספקת תוצאות לא נכונות" - -#: ../build/bin/preferences_gen.h:7378 -msgid "order or exclude MIDI devices" -msgstr "סדר או הפעל התקני MIDI" - -#: ../build/bin/preferences_gen.h:7396 -msgid "" -"comma-separated list of device name fragments that if matched load MIDI " -"device at id given by location in list\n" -"or if preceded by '-' prevent matching devices from loading. add encoding " -"and number of knobs like 'BeatStep:63:16'" -msgstr "" -"רשימה מופרדת פסיקים של חלקי שמות התקנים שבמידה ומתאימה טוענת התקן MIDI ב id " -"שניתן ע\"י המיקום ברשימה\n" -"או במידה ומוקדם ב '-' מונע מהתקנים תואמים להיטען. הוסף קידוד ומספר כפתורים " -"כגון 'BeatStep:63:16'" - -#. tags -#: ../build/bin/preferences_gen.h:7412 ../src/develop/lightroom.c:1516 -#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:333 -#: ../src/libs/image.c:558 ../src/libs/metadata_view.c:162 -msgid "tags" -msgstr "תגיות" - -#: ../build/bin/preferences_gen.h:7432 -msgid "omit hierarchy in simple tag lists" -msgstr "השמט היררכיה ברשימות תיוג פשוטות" - -#: ../build/bin/preferences_gen.h:7446 -msgid "" -"when creating XMP file the hierarchical tags are also added as a simple " -"list\n" -"of non-hierarchical ones to make them visible to some other programs.\n" -"when this option is checked darktable will only include their last part\n" -"and ignore the rest. so 'foo|bar|baz' will only add 'baz'." -msgstr "" -"כאשר יוצרים קובץ XMP התגים ההיררכים נוספים גם הם כרשימה פשוטה \n" -"של תגיות לא היררכיות על מנת שתוכנות אחרות יוכלו לראותן. \n" -"כאשר אפשרות זו מסומנת darktable יכלול רק את חלקן האחרון \n" -"ויתעלם מהיתר. כך ש 'foo|bar|baz' יוסיף רק את 'baz'." - -#: ../build/bin/preferences_gen.h:7456 -msgid "shortcuts with multiple instances" -msgstr "קיצורי מקלדת עם פעולות מרובות" - -#: ../build/bin/preferences_gen.h:7461 -msgid "" -"where multiple module instances are present, these preferences control rules " -"that are applied (in order) to decide which module instance shortcuts will " -"be applied to" -msgstr "" -"כאשר קיימים שלבים מרובים במודול, העדפות אלה שולטות על כללים המיושמים (לפי " -"סדר) על מנת להחליט לאיזה שלב במודול יקושרו קיצורי המקלדת" - -#: ../build/bin/preferences_gen.h:7477 -msgid "prefer focused instance" -msgstr "העדף שלבים בפוקוס" - -#: ../build/bin/preferences_gen.h:7491 -msgid "" -"if an instance of the module has focus, apply shortcut to that instance\n" -"note: blending shortcuts always apply to the focused instance" -msgstr "" -"אם יש פוקוס על מופע מודול, צור קיצור לאותו מופע\n" -"הערה: קיצורי ערבוב תמיד מתייחסים למופע בפוקוס" - -#: ../build/bin/preferences_gen.h:7513 -msgid "prefer expanded instances" -msgstr "העדף שלבים מורחבים" - -#: ../build/bin/preferences_gen.h:7527 -msgid "if instances of the module are expanded, ignore collapsed instances" -msgstr "אם שלבי המודול מורחבים, התעלם משלבים מצומצמים" - -#: ../build/bin/preferences_gen.h:7549 -msgid "prefer enabled instances" -msgstr "העדף שלבים מאופשרים" - -#: ../build/bin/preferences_gen.h:7563 -msgid "" -"after applying the above rule, if instances of the module are active, ignore " -"inactive instances" -msgstr "אחרי יישום הכללים למעלה, אם שלבי המודול פעילים, התעלם משלבים לא פעילים" - -#: ../build/bin/preferences_gen.h:7585 -msgid "prefer unmasked instances" -msgstr "העדף שלבים לא ממוסכים" - -#: ../build/bin/preferences_gen.h:7599 -msgid "" -"after applying the above rules, if instances of the module are unmasked, " -"ignore masked instances" -msgstr "" -"אחרי יישום הכללים למעלה, אם שלבי המודול לא ממוסכים, התעלם משלבים ממוסכים" - -#: ../build/bin/preferences_gen.h:7621 -msgid "selection order" -msgstr "סדר בחירה" - -#: ../build/bin/preferences_gen.h:7659 -msgid "" -"after applying the above rules, apply the shortcut based on its position in " -"the pixelpipe" -msgstr "" -"אחרי יישום הכללים למעלה, יישם את הקיצור המבוסס על מיקומו בצנרת הפיקסל " -"(pixelpipe)" - -#: ../build/bin/preferences_gen.h:7681 -msgid "allow visual assignment to specific instances" -msgstr "התר הקצאה ויזואלית לשלבים מסוימים" - -#: ../build/bin/preferences_gen.h:7695 -msgid "" -"when multiple instances are present on an image this allows shortcuts to be " -"visually assigned to those specific instances\n" -"otherwise shortcuts will always be assigned to the preferred instance" -msgstr "" -"כאשר קיימים שלבים מרובים בתמונה זה מאפשר הקצאה ויזואלית של קיצורי דרך לשלבים " -"ספציפיים\n" -"אחרת קיצורי דרך תמיד יוקצו לשלבים מועדפים" - -#: ../build/bin/preferences_gen.h:7705 -msgid "map / geolocalization view" -msgstr "מבט מפה / גיאולוקליזציה" - -#: ../build/bin/preferences_gen.h:7725 -msgid "pretty print the image location" -msgstr "הדפסה מסוגננת של מיקום הצילום" - -#: ../build/bin/preferences_gen.h:7739 -msgid "" -"show a more readable representation of the location in the image information " -"module" -msgstr "הראה הצגה קריאה יותר של המיקום במודול מידע על התמונה" - -#: ../build/bin/preferences_gen.h:7749 -msgid "slideshow view" -msgstr "מבט מצגת" - -#: ../build/bin/preferences_gen.h:7769 -msgid "waiting time between each picture in slideshow" -msgstr "זמן המתנה בין תמונות במצגת השקופיות" - -#: ../build/bin/preferences_gen.h:7831 -msgid "session options" -msgstr "אפשרויות מושב" - -#: ../build/bin/preferences_gen.h:7851 -msgid "base directory naming pattern" -msgstr "תבנית יצירת שם עבור תיקיית הבסיס" - -# !!! I think there is a error here. Doesn't make sense !!! -#: ../build/bin/preferences_gen.h:7869 ../build/bin/preferences_gen.h:7909 -msgid "part of full import path for an import session" -msgstr "חלק מתוך הנתיב המלא לייבוא מושב" - -#: ../build/bin/preferences_gen.h:7891 -msgid "sub directory naming pattern" -msgstr "תבנית נתינת שם לתיקיות משנה" - -#: ../build/bin/preferences_gen.h:7931 -msgid "keep original filename" -msgstr "שמור שם קובץ מקורי" - -#: ../build/bin/preferences_gen.h:7945 -msgid "" -"keep original filename instead of a pattern while importing from camera or " -"card" -msgstr "שמור על שם הקובץ המקורי במקום תבנית בייבוא ממצלמה או כרטיס זכרון" - -#: ../build/bin/preferences_gen.h:7967 -msgid "file naming pattern" -msgstr "תבנית נתינת שם לקובץ" - -#: ../build/bin/preferences_gen.h:7985 -msgid "file naming pattern used for a import session" -msgstr "תבנית נתינת שם המשמשת לייבוא מושב" - -#: ../build/bin/preferences_gen.h:8022 -msgid "do not set the 'uncategorized' entry for tags" -msgstr "אל תקבע את שדה 'uncategorized' לתגיות" - -#: ../build/bin/preferences_gen.h:8036 -msgid "" -"do not set the 'uncategorized' entry for tags which do not have children" -msgstr "אל תקבע את שדה 'uncategorized' לתגיות ללא ילדים" - -#: ../build/bin/preferences_gen.h:8058 -msgid "tags case sensitivity" -msgstr "רגישות לאותיות גדולות או קטנות בתגיות" - -#: ../build/bin/preferences_gen.h:8096 -msgid "" -"tags case sensitivity. without the Sqlite ICU extension, insensitivity works " -"only for the 26 latin letters" -msgstr "" -"רגישות לאותיות גדולות או קטנות בתגיות. ללא הרחבת ICU ל Sqlite, חוסר רגישות " -"עובד רק עבור 26 האותיות הלטיניות" - -#: ../build/bin/preferences_gen.h:8118 ../build/bin/preferences_gen.h:8358 -msgid "number of collections to be stored" -msgstr "מספר האוספים לשמירה" - -#: ../build/bin/preferences_gen.h:8142 ../build/bin/preferences_gen.h:8382 -msgid "the number of recent collections to store and show in this list" -msgstr "מספר אוספים אחרונים לשמירה והצגה ברשימה זו" - -#: ../build/bin/preferences_gen.h:8164 -msgid "hide the history button and show a specific module instead" -msgstr "החבא את כפתור ההיסטוריה והצג מודול ספציפי במקום" - -#: ../build/bin/preferences_gen.h:8178 -msgid "hide the history button and show the recent collections module instead" -msgstr "החבא את כפתור ההיסטוריה והצג את אוסף המודולים האחרונים במקום" - -#: ../build/bin/preferences_gen.h:8200 -msgid "number of folder levels to show in lists" -msgstr "מספר רמות להצגת תת תיקיות ברשימות" - -#: ../build/bin/preferences_gen.h:8224 -msgid "" -"the number of folder levels to show in film roll names, starting from the " -"right" -msgstr "מספר רמות להצגת תת תיקיות בשמות של גלילי פילם, החל מימין" - -#: ../build/bin/preferences_gen.h:8246 -msgid "sort film rolls by" -msgstr "סדר גליל פילם לפי" - -#: ../build/bin/preferences_gen.h:8284 -msgid "sets the collections-list order for film rolls" -msgstr "קובע את סדר רשימת-האוספים עבור גלילי פילם" - -#: ../build/bin/preferences_gen.h:8306 -msgid "sort collection descending" -msgstr "סדר אוסף בסדר יורד" - -#: ../build/bin/preferences_gen.h:8320 -msgid "" -"sort the following collections in descending order: 'film roll' by folder, " -"'folder', 'times' (e.g. 'capture date')" -msgstr "" -"סדר את האוסף הבא בסדר יורד: 'גליל פילם' לפי תיקיה, 'תיקיה', 'זמנים' (לדוגמה " -"'תאריך צילום')" - -#: ../build/bin/preferences_gen.h:8404 -msgid "prefer a history button in the collections module" -msgstr "העדף כפתור היסטוריה במודול האוספים" - -#: ../build/bin/preferences_gen.h:8418 -msgid "" -"hide this module and instead access collections history with a button in the " -"collections module" -msgstr "החבא מודול זה ובמקום גש להיסטוריית האוספים עם כפתור במודול האוספים" - -#: ../build/bin/preferences_gen.h:8472 -msgid "suggested tags level of confidence" -msgstr "רמת סמך של תגיות מוצעות" - -#: ../build/bin/preferences_gen.h:8497 -#, no-c-format -msgid "" -"level of confidence to include the tag in the suggestions list, 0: all " -"associated tags, 99: 99% matching associated tags, 100: no matching tag to " -"show only recent tags (faster)" -msgstr "" -"רמת סמך להכללת תגית ברשימת ההצעות, 0: כל התגיות הקשורות, 99: 99% התאמה מתוך " -"התגיות הקשורות, 100: אין תגיות תואמות להצגה רק תגיות אחרונות (מהיר יותר)" - -#: ../build/bin/preferences_gen.h:8519 -msgid "number of recently attached tags" -msgstr "מספר תגיות שהוצמדו לאחרונה" - -#: ../build/bin/preferences_gen.h:8543 -msgid "" -"number of recently attached tags which are included in the suggestions list. " -"the value `-1' disables the recent list" -msgstr "" -"מספר התגיות שהוצמדו לאחרונה הכלולות ברשימת ההצעות. הערך `-1' מנטרל את רשימת " -"האחרונות" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:130 -#: ../build/lib/darktable/plugins/introspection_ashift.c:279 -msgid "lens shift (vertical)" -msgstr "הסחת עדשה (אנכית)" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:136 -#: ../build/lib/darktable/plugins/introspection_ashift.c:283 -msgid "lens shift (horizontal)" -msgstr "הסחת עדשה (אופקית)" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:142 -#: ../build/lib/darktable/plugins/introspection_ashift.c:287 -msgid "shear" -msgstr "גזור" - -#. focal length -#: ../build/lib/darktable/plugins/introspection_ashift.c:148 -#: ../build/lib/darktable/plugins/introspection_ashift.c:291 -#: ../src/common/collection.c:714 ../src/gui/preferences.c:844 -#: ../src/gui/presets.c:718 ../src/libs/camera.c:550 -#: ../src/libs/metadata_view.c:143 -msgid "focal length" -msgstr "אורך מוקד" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:154 -#: ../build/lib/darktable/plugins/introspection_ashift.c:295 -msgid "crop factor" -msgstr "מקדם חיתוך" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:160 -#: ../build/lib/darktable/plugins/introspection_ashift.c:299 -msgid "lens dependence" -msgstr "תלות בעדשה" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:166 -#: ../build/lib/darktable/plugins/introspection_ashift.c:303 -msgid "aspect adjust" -msgstr "כיוון הבט" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:172 -#: ../build/lib/darktable/plugins/introspection_ashift.c:307 -#: ../src/iop/lens.cc:3784 -msgid "lens model" -msgstr "מודל עדשה" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:178 -#: ../build/lib/darktable/plugins/introspection_ashift.c:311 -#: ../build/lib/darktable/plugins/introspection_clipping.c:244 -#: ../build/lib/darktable/plugins/introspection_clipping.c:371 -msgid "automatic cropping" -msgstr "חיתוך אוטומטי" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:361 -#: ../build/lib/darktable/plugins/introspection_highlights.c:311 -msgid "generic" -msgstr "כללי" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:362 -msgid "specific" -msgstr "מסויים" - -#. DEVELOP_MASK_DISABLED -#: ../build/lib/darktable/plugins/introspection_ashift.c:366 -#: ../build/lib/darktable/plugins/introspection_colorin.c:300 -#: ../build/lib/darktable/plugins/introspection_highlights.c:310 -#: ../build/lib/darktable/plugins/introspection_vignette.c:264 -#: ../src/develop/blend_gui.c:153 ../src/develop/blend_gui.c:182 -#: ../src/develop/blend_gui.c:3410 ../src/gui/accelerators.c:130 -#: ../src/gui/accelerators.c:140 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/imageio/format/j2k.c:669 -#: ../src/libs/live_view.c:361 ../src/libs/masks.c:113 -msgid "off" -msgstr "כבוי" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:367 -msgid "largest area" -msgstr "שטח גדול ביותר" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:368 -msgid "original format" -msgstr "פורמט מקורי" - -#: ../build/lib/darktable/plugins/introspection_basecurve.c:134 -#: ../build/lib/darktable/plugins/introspection_basecurve.c:231 -msgid "fusion" -msgstr "מיזוג" - -#: ../build/lib/darktable/plugins/introspection_basecurve.c:140 -#: ../build/lib/darktable/plugins/introspection_basecurve.c:235 -msgid "exposure shift" -msgstr "הסחת חשיפה" - -#: ../build/lib/darktable/plugins/introspection_basecurve.c:146 -#: ../build/lib/darktable/plugins/introspection_basecurve.c:239 -#: ../src/libs/metadata_view.c:142 -msgid "exposure bias" -msgstr "הטיית חשיפה" - -#: ../build/lib/darktable/plugins/introspection_basecurve.c:152 -#: ../build/lib/darktable/plugins/introspection_basecurve.c:243 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:122 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:215 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:140 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:227 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:57 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:122 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:153 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:244 -msgid "preserve colors" -msgstr "שמר צבעים" - -#: ../build/lib/darktable/plugins/introspection_basecurve.c:262 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:249 -#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:153 -#: ../build/lib/darktable/plugins/introspection_lens.cc:444 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:251 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:153 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:270 -#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2193 -#: ../src/iop/channelmixerrgb.c:4667 ../src/iop/clipping.c:1900 -#: ../src/iop/clipping.c:2093 ../src/iop/clipping.c:2108 -#: ../src/iop/retouch.c:463 ../src/libs/collect.c:1907 -#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1023 -#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:132 -#: ../src/libs/live_view.c:311 ../src/libs/print_settings.c:2835 -msgid "none" -msgstr "ללא" - -#: ../build/lib/darktable/plugins/introspection_basecurve.c:263 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:250 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:226 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:244 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:262 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:280 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:461 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:473 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:485 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:497 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:252 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:154 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:271 -#: ../src/develop/blend_gui.c:2363 ../src/develop/blend_gui.c:2397 -msgid "luminance" -msgstr "לומיננס" - -#: ../build/lib/darktable/plugins/introspection_basecurve.c:264 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:251 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:550 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:253 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:155 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:272 -msgid "max RGB" -msgstr "max RGB" - -#: ../build/lib/darktable/plugins/introspection_basecurve.c:265 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:252 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:254 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:156 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:273 -msgid "average RGB" -msgstr "ממוצע RGB" - -#: ../build/lib/darktable/plugins/introspection_basecurve.c:266 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:253 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:255 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:157 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:274 -msgid "sum RGB" -msgstr "סכום RGB" - -#: ../build/lib/darktable/plugins/introspection_basecurve.c:267 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:254 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:256 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:158 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:275 -msgid "norm RGB" -msgstr "נורמה RGB" - -#: ../build/lib/darktable/plugins/introspection_basecurve.c:268 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:255 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:257 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:159 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:276 -msgid "basic power" -msgstr "עצמה בסיסית" - -#: ../build/lib/darktable/plugins/introspection_basicadj.c:92 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:195 -#: ../build/lib/darktable/plugins/introspection_exposure.c:67 -#: ../build/lib/darktable/plugins/introspection_exposure.c:138 -msgid "black level correction" -msgstr "תיקון רמת שחור" - -#: ../build/lib/darktable/plugins/introspection_basicadj.c:104 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:203 -msgid "highlight compression" -msgstr "דחיסת פרטים בהירים" - -#: ../build/lib/darktable/plugins/introspection_basicadj.c:128 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:219 -msgid "middle gray" -msgstr "אפור בינוני" - -#: ../build/lib/darktable/plugins/introspection_bilat.c:78 -#: ../build/lib/darktable/plugins/introspection_bilat.c:137 -msgid "midtone range" -msgstr "טווח טונים בינוניים" - -#: ../build/lib/darktable/plugins/introspection_bilat.c:151 -msgid "bilateral grid" -msgstr "רשת בילטרלית" - -#: ../build/lib/darktable/plugins/introspection_bilat.c:152 -msgid "local laplacian filter" -msgstr "פילטר לפלסיין מקומי" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:83 -#: ../build/lib/darktable/plugins/introspection_blurs.c:174 -#: ../build/lib/darktable/plugins/introspection_retouch.c:255 -#: ../build/lib/darktable/plugins/introspection_retouch.c:406 -msgid "blur type" -msgstr "סוג טשטוש" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:89 -#: ../build/lib/darktable/plugins/introspection_blurs.c:178 -#: ../build/lib/darktable/plugins/introspection_retouch.c:261 -#: ../build/lib/darktable/plugins/introspection_retouch.c:410 -msgid "blur radius" -msgstr "רדיוס טשטוש" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:95 -#: ../build/lib/darktable/plugins/introspection_blurs.c:182 -msgid "diaphragm blades" -msgstr "עלי צמצם" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:101 -#: ../build/lib/darktable/plugins/introspection_blurs.c:186 -msgid "concavity" -msgstr "קערוריות" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:107 -#: ../build/lib/darktable/plugins/introspection_blurs.c:190 -msgid "linearity" -msgstr "לינאריות" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:113 -#: ../build/lib/darktable/plugins/introspection_blurs.c:194 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:75 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:144 -#: ../build/lib/darktable/plugins/introspection_watermark.c:136 -#: ../build/lib/darktable/plugins/introspection_watermark.c:265 -#: ../src/iop/ashift.c:6112 ../src/libs/masks.c:108 -msgid "rotation" -msgstr "סיבוב" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:119 -#: ../build/lib/darktable/plugins/introspection_blurs.c:198 -msgid "direction" -msgstr "כיוון" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:125 -#: ../build/lib/darktable/plugins/introspection_blurs.c:202 -#: ../src/libs/masks.c:109 -msgid "curvature" -msgstr "עקמומיות" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:131 -#: ../build/lib/darktable/plugins/introspection_blurs.c:206 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:81 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:148 -#: ../src/iop/colorbalancergb.c:1968 -msgid "offset" -msgstr "הסחה" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:220 -#: ../src/common/collection.c:712 ../src/gui/preferences.c:828 -#: ../src/gui/presets.c:660 ../src/libs/metadata_view.c:139 -msgid "lens" -msgstr "עדשה" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:221 -msgid "motion" -msgstr "תנועה" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:222 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:567 -#: ../build/lib/darktable/plugins/introspection_lowpass.c:189 -#: ../build/lib/darktable/plugins/introspection_retouch.c:452 -#: ../build/lib/darktable/plugins/introspection_shadhi.c:267 -msgid "gaussian" -msgstr "גאוסיין" - -#: ../build/lib/darktable/plugins/introspection_borders.c:112 -#: ../build/lib/darktable/plugins/introspection_borders.c:253 -#: ../src/common/collection.c:722 ../src/libs/filtering.c:59 -msgid "aspect ratio" -msgstr "יחס רוחב גובה" - -#. // portrait / landscape -#: ../build/lib/darktable/plugins/introspection_borders.c:130 -#: ../build/lib/darktable/plugins/introspection_borders.c:265 -#: ../src/iop/flip.c:75 ../src/libs/print_settings.c:2517 -msgid "orientation" -msgstr "אוריינטציה" - -#: ../build/lib/darktable/plugins/introspection_borders.c:136 -#: ../build/lib/darktable/plugins/introspection_borders.c:269 -msgid "border size" -msgstr "עובי מסגרת" - -#: ../build/lib/darktable/plugins/introspection_borders.c:142 -#: ../build/lib/darktable/plugins/introspection_borders.c:273 -msgid "horizontal offset" -msgstr "הסחה אופקית" - -#: ../build/lib/darktable/plugins/introspection_borders.c:160 -#: ../build/lib/darktable/plugins/introspection_borders.c:285 -msgid "vertical offset" -msgstr "הסחה אנכית" - -#: ../build/lib/darktable/plugins/introspection_borders.c:178 -#: ../build/lib/darktable/plugins/introspection_borders.c:297 -msgid "frame line size" -msgstr "גודל קו המסגרת" - -#: ../build/lib/darktable/plugins/introspection_borders.c:184 -#: ../build/lib/darktable/plugins/introspection_borders.c:301 -msgid "frame line offset" -msgstr "הסחה לקו המסגרת" - -#: ../build/lib/darktable/plugins/introspection_borders.c:327 -#: ../src/gui/preferences.c:849 ../src/iop/ashift.c:6291 -#: ../src/iop/basicadj.c:632 ../src/iop/flip.c:472 ../src/iop/flip.c:474 -#: ../src/iop/levels.c:641 ../src/iop/rgblevels.c:1050 -msgid "auto" -msgstr "אוטו'" - -#: ../build/lib/darktable/plugins/introspection_borders.c:328 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:309 -#: ../src/libs/filters/ratio.c:122 ../src/libs/print_settings.c:2519 -msgid "portrait" -msgstr "עומד" - -#: ../build/lib/darktable/plugins/introspection_borders.c:329 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:305 -#: ../src/libs/filters/ratio.c:124 ../src/libs/print_settings.c:2519 -msgid "landscape" -msgstr "שוכב" - -#: ../build/lib/darktable/plugins/introspection_cacorrect.c:42 -#: ../build/lib/darktable/plugins/introspection_cacorrect.c:91 -msgid "avoid colorshift" -msgstr "הימנע מהסחת צבע" - -#: ../build/lib/darktable/plugins/introspection_cacorrect.c:48 -#: ../build/lib/darktable/plugins/introspection_cacorrect.c:95 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:117 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:244 -#: ../build/lib/darktable/plugins/introspection_highlights.c:155 -#: ../build/lib/darktable/plugins/introspection_highlights.c:252 -msgid "iterations" -msgstr "איטרציות" - -#: ../build/lib/darktable/plugins/introspection_cacorrect.c:109 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:205 -msgid "once" -msgstr "פעם אחת" - -#: ../build/lib/darktable/plugins/introspection_cacorrect.c:110 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:206 -msgid "twice" -msgstr "פעמיים" - -#: ../build/lib/darktable/plugins/introspection_cacorrect.c:111 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:207 -msgid "three times" -msgstr "שלוש פעמים" - -#: ../build/lib/darktable/plugins/introspection_cacorrect.c:112 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:208 -msgid "four times" -msgstr "ארבע פעמים" - -#: ../build/lib/darktable/plugins/introspection_cacorrect.c:113 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:209 -msgid "five times" -msgstr "חמש פעמים" - -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:61 -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:128 -msgid "guide" -msgstr "מנחה" - -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:67 -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:132 -#: ../src/iop/atrous.c:1522 ../src/iop/bilateral.cc:350 ../src/iop/clahe.c:335 -#: ../src/iop/dither.c:760 ../src/iop/lowpass.c:584 ../src/iop/shadhi.c:675 -#: ../src/iop/sharpen.c:440 -msgid "radius" -msgstr "רדיוס" - -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:73 -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:136 -#: ../build/lib/darktable/plugins/introspection_highlights.c:137 -#: ../build/lib/darktable/plugins/introspection_highlights.c:240 -#: ../src/iop/bloom.c:376 ../src/iop/denoiseprofile.c:3818 -#: ../src/iop/grain.c:584 ../src/iop/hazeremoval.c:201 -#: ../src/iop/hotpixels.c:388 ../src/iop/nlmeans.c:460 ../src/iop/velvia.c:279 -msgid "strength" -msgstr "חוזק" - -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:79 -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:140 -msgid "correction mode" -msgstr "מצב תיקון" - -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:85 -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:144 -msgid "very large chromatic aberration" -msgstr "אברציות כרומטיות גדולות במיוחד" - -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:158 -#: ../src/common/collection.c:1507 ../src/common/color_vocabulary.c:232 -#: ../src/common/colorlabels.c:334 ../src/develop/blend_gui.c:2330 -#: ../src/develop/blend_gui.c:2378 ../src/develop/lightroom.c:834 -#: ../src/gui/gtk.c:3137 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:354 -#: ../src/iop/channelmixer.c:618 ../src/iop/channelmixer.c:628 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/colorzones.c:2263 -#: ../src/iop/temperature.c:1938 ../src/iop/temperature.c:2133 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:260 -#: ../src/libs/histogram.c:2397 -msgid "red" -msgstr "אדום" - -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:159 -#: ../src/common/collection.c:1511 ../src/common/color_vocabulary.c:277 -#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2336 -#: ../src/develop/blend_gui.c:2384 ../src/develop/lightroom.c:838 -#: ../src/gui/gtk.c:3138 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:359 -#: ../src/iop/channelmixer.c:619 ../src/iop/channelmixer.c:634 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/colorzones.c:2266 -#: ../src/iop/temperature.c:1922 ../src/iop/temperature.c:1940 -#: ../src/iop/temperature.c:2134 ../src/libs/collect.c:1791 -#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2389 -msgid "green" -msgstr "ירוק" - -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:160 -#: ../src/common/collection.c:1513 ../src/common/color_vocabulary.c:324 -#: ../src/common/colorlabels.c:337 ../src/develop/blend_gui.c:2342 -#: ../src/develop/blend_gui.c:2390 ../src/develop/lightroom.c:840 -#: ../src/gui/gtk.c:3139 ../src/iop/bilateral.cc:364 -#: ../src/iop/channelmixer.c:620 ../src/iop/channelmixer.c:640 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/colorzones.c:2268 -#: ../src/iop/temperature.c:1942 ../src/iop/temperature.c:2135 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:263 -#: ../src/libs/histogram.c:2381 -msgid "blue" -msgstr "כחול" - -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:164 -msgid "standard" -msgstr "סטנדרטי" - -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:165 -msgid "darken only" -msgstr "החשך בלבד" - -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:166 -msgid "brighten only" -msgstr "האר בלבד" - -#: ../build/lib/darktable/plugins/introspection_censorize.c:51 -#: ../build/lib/darktable/plugins/introspection_censorize.c:112 -msgid "input blur radius" -msgstr "רדיוס טשטוש קלט" - -#: ../build/lib/darktable/plugins/introspection_censorize.c:57 -#: ../build/lib/darktable/plugins/introspection_censorize.c:116 -msgid "pixellation radius" -msgstr "רדיוס פיקסליזציה" - -#: ../build/lib/darktable/plugins/introspection_censorize.c:63 -#: ../build/lib/darktable/plugins/introspection_censorize.c:120 -msgid "output blur radius" -msgstr "רדיוס טשטוש פלט" - -#: ../build/lib/darktable/plugins/introspection_censorize.c:69 -#: ../build/lib/darktable/plugins/introspection_censorize.c:124 -#: ../build/lib/darktable/plugins/introspection_highlights.c:149 -#: ../build/lib/darktable/plugins/introspection_highlights.c:248 -msgid "noise level" -msgstr "רמת רעש" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:252 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:258 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:264 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:270 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:276 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:282 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:433 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:437 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:441 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:445 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:449 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:453 -msgid "normalize channels" -msgstr "נרמל ערוצים" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:294 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:461 -msgid "F source" -msgstr "F מקור" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:300 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:465 -msgid "LED source" -msgstr "LED מקור" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:330 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:485 -msgid "gamut compression" -msgstr "דחיסת מכלול הצבע" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:336 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:489 -msgid "clip negative RGB from gamut" -msgstr "חתוך ערכי RGB שליליים ממכלול הצבע" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:342 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:493 -msgid "saturation algorithm" -msgstr "אלגוריתם רוויה" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:507 -msgid "same as pipeline (D50)" -msgstr "כמו ב pipeline (D50)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:508 -msgid "A (incandescent)" -msgstr "A (נורת להט)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:509 -msgid "D (daylight)" -msgstr "D (אור יום)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:510 -msgid "E (equi-energy)" -msgstr "E (שווה-אנרגיה)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:511 -msgid "F (fluorescent)" -msgstr "F (פלוריסנט)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:512 -msgid "LED (LED light)" -msgstr "LED (LED תאורת)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:513 -msgid "Planckian (black body)" -msgstr "פלאנק (גוף שחור)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:514 -#: ../src/common/iop_order.c:59 -msgid "custom" -msgstr "מותאם" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:515 -msgid "(AI) detect from image surfaces..." -msgstr "גלה מתוך המשטחים בתמונה (AI)..." - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:516 -msgid "(AI) detect from image edges..." -msgstr "גלה מתוך הקצוות בתמונה (AI)..." - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:517 -msgid "as shot in camera" -msgstr "כפי שצולם במצלמה" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:522 -msgid "F1 (Daylight 6430 K) – medium CRI" -msgstr "F1 (Daylight 6430 K) – medium CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:523 -msgid "F2 (Cool White 4230 K) – medium CRI" -msgstr "F2 (Cool White 4230 K) – medium CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:524 -msgid "F3 (White 3450 K) – medium CRI" -msgstr "F3 (White 3450 K) – medium CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:525 -msgid "F4 (Warm White 2940 K) – medium CRI" -msgstr "F4 (Warm White 2940 K) – medium CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:526 -msgid "F5 (Daylight 6350 K) – medium CRI" -msgstr "F5 (Daylight 6350 K) – medium CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:527 -msgid "F6 (Lite White 4150 K) – medium CRI" -msgstr "F6 (Lite White 4150 K) – medium CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:528 -msgid "F7 (D65 simulator 6500 K) – high CRI" -msgstr "F7 (D65 simulator 6500 K) – high CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:529 -msgid "F8 (D50 simulator 5000 K) – high CRI" -msgstr "F8 (D50 simulator 5000 K) – high CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:530 -msgid "F9 (Cool White Deluxe 4150 K) – high CRI" -msgstr "F9 (Cool White Deluxe 4150 K) – high CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:531 -msgid "F10 (Tuned RGB 5000 K) – low CRI" -msgstr "F10 (Tuned RGB 5000 K) – low CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:532 -msgid "F11 (Tuned RGB 4000 K) – low CRI" -msgstr "F11 (Tuned RGB 4000 K) – low CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:533 -msgid "F12 (Tuned RGB 3000 K) – low CRI" -msgstr "F12 (Tuned RGB 3000 K) – low CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:538 -msgid "B1 (Blue 2733 K)" -msgstr "B1 (Blue 2733 K)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:539 -msgid "B2 (Blue 2998 K)" -msgstr "B2 (Blue 2998 K)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:540 -msgid "B3 (Blue 4103 K)" -msgstr "B3 (Blue 4103 K)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:541 -msgid "B4 (Blue 5109 K)" -msgstr "B4 (Blue 5109 K)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:542 -msgid "B5 (Blue 6598 K)" -msgstr "B5 (Blue 6598 K)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:543 -msgid "BH1 (Blue-Red hybrid 2851 K)" -msgstr "BH1 (Blue-Red hybrid 2851 K)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:544 -msgid "RGB1 (RGB 2840 K)" -msgstr "RGB1 (RGB 2840 K)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:545 -msgid "V1 (Violet 2724 K)" -msgstr "V1 (Violet 2724 K)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:546 -msgid "V2 (Violet 4070 K)" -msgstr "V2 (Violet 4070 K)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:551 -msgid "linear Bradford (ICC v4)" -msgstr "linear Bradford (ICC v4)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:552 -msgid "CAT16 (CIECAM16)" -msgstr "CAT16 (CIECAM16)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:553 -msgid "non-linear Bradford" -msgstr "לא לינארי Bradford" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:554 -msgid "XYZ" -msgstr "XYZ" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:555 -msgid "none (bypass)" -msgstr "ריק (מעקף)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:560 -msgid "version 1 (2020)" -msgstr "גרסה 1 (2020)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:561 -msgid "version 2 (2021)" -msgstr "גרסה 2 (2021)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:562 -msgid "version 3 (Apr 2021)" -msgstr "גרסה 3 (אפריל 2021)" - -#: ../build/lib/darktable/plugins/introspection_clipping.c:142 -#: ../build/lib/darktable/plugins/introspection_clipping.c:303 -#: ../build/lib/darktable/plugins/introspection_crop.c:61 -#: ../build/lib/darktable/plugins/introspection_crop.c:134 -#: ../src/gui/gtk.c:1141 ../src/iop/atrous.c:1518 -msgid "left" -msgstr "שמאלי" - -#: ../build/lib/darktable/plugins/introspection_clipping.c:148 -#: ../build/lib/darktable/plugins/introspection_clipping.c:307 -#: ../build/lib/darktable/plugins/introspection_crop.c:67 -#: ../build/lib/darktable/plugins/introspection_crop.c:138 -#: ../src/gui/accelerators.c:113 ../src/gui/gtk.c:1155 -msgid "top" -msgstr "עליון" - -#: ../build/lib/darktable/plugins/introspection_clipping.c:154 -#: ../build/lib/darktable/plugins/introspection_clipping.c:311 -#: ../build/lib/darktable/plugins/introspection_crop.c:73 -#: ../build/lib/darktable/plugins/introspection_crop.c:142 -#: ../src/gui/gtk.c:1148 ../src/iop/atrous.c:1517 -msgid "right" -msgstr "ימין" - -#: ../build/lib/darktable/plugins/introspection_clipping.c:160 -#: ../build/lib/darktable/plugins/introspection_clipping.c:315 -#: ../build/lib/darktable/plugins/introspection_crop.c:79 -#: ../build/lib/darktable/plugins/introspection_crop.c:146 -#: ../src/gui/accelerators.c:114 ../src/gui/gtk.c:1162 -msgid "bottom" -msgstr "תחתון" - -#: ../build/lib/darktable/plugins/introspection_colorbalance.c:114 -#: ../build/lib/darktable/plugins/introspection_colorbalance.c:203 -msgid "input saturation" -msgstr "רווית קלט" - -#: ../build/lib/darktable/plugins/introspection_colorbalance.c:126 -#: ../build/lib/darktable/plugins/introspection_colorbalance.c:211 -msgid "contrast fulcrum" -msgstr "ניגודיות נקודת סמך" - -#: ../build/lib/darktable/plugins/introspection_colorbalance.c:132 -#: ../build/lib/darktable/plugins/introspection_colorbalance.c:215 -msgid "output saturation" -msgstr "רווית פלט" - -#: ../build/lib/darktable/plugins/introspection_colorbalance.c:229 -msgid "lift, gamma, gain (ProPhoto RGB)" -msgstr "הרם, גאמה, הגבר (ProPhotoRGB)" - -#: ../build/lib/darktable/plugins/introspection_colorbalance.c:230 -msgid "slope, offset, power (ProPhoto RGB)" -msgstr "שיפוע, הסחה, חזקה (ProPhotoRGB)" - -#: ../build/lib/darktable/plugins/introspection_colorbalance.c:231 -msgid "lift, gamma, gain (sRGB)" -msgstr "הרם, גאמה, הגבר (sRGB)" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:232 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:250 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:268 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:286 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:465 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:477 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:489 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:501 -#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 -#: ../src/develop/blend_gui.c:2356 ../src/develop/blend_gui.c:2404 -#: ../src/iop/atrous.c:1667 ../src/iop/channelmixerrgb.c:4457 -#: ../src/iop/channelmixerrgb.c:4573 ../src/iop/colorbalancergb.c:1895 -#: ../src/iop/colorzones.c:2402 ../src/iop/nlmeans.c:468 -msgid "chroma" -msgstr "כרומה" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:238 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:256 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:274 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:292 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:469 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:481 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:493 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:505 -#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:155 -#: ../build/lib/darktable/plugins/introspection_colorzones.c:257 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:87 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:152 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:61 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:73 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:134 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:142 -#: ../src/develop/blend_gui.c:2315 ../src/develop/blend_gui.c:2349 -#: ../src/develop/blend_gui.c:2411 ../src/iop/channelmixer.c:615 -#: ../src/iop/channelmixerrgb.c:4450 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/colorbalance.c:2042 ../src/iop/colorize.c:330 -#: ../src/iop/colorreconstruction.c:1240 ../src/iop/colorzones.c:2403 -msgid "hue" -msgstr "גוון" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:298 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:509 -msgid "shadows fall-off" -msgstr "נפילה בצללים" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:304 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:513 -msgid "white fulcrum" -msgstr "נקודת סמך לבן" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:310 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:517 -msgid "highlights fall-off" -msgstr "דעיכת פרטים בהירים" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:316 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:358 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:388 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:521 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:549 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:569 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:156 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:297 -#: ../src/iop/bilat.c:469 ../src/iop/colorbalance.c:2099 -#: ../src/iop/negadoctor.c:915 ../src/iop/shadhi.c:671 -#: ../src/iop/splittoning.c:507 -msgid "shadows" -msgstr "צללים" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:322 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:346 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:376 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:525 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:541 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:561 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:180 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:313 -#: ../src/iop/bilat.c:463 ../src/iop/colorbalance.c:2101 -#: ../src/iop/monochrome.c:561 ../src/iop/shadhi.c:672 -#: ../src/iop/splittoning.c:514 -msgid "highlights" -msgstr "פרטים בהירים" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:328 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:529 -msgid "global chroma" -msgstr "כרומה גלובלית" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:334 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:352 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:382 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:533 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:545 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:565 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:168 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:305 -#: ../src/iop/colorbalance.c:2100 -msgid "mid-tones" -msgstr "טונים-בינוניים" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:340 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:537 -#: ../src/iop/filmic.c:1576 -msgid "global saturation" -msgstr "רוויה גלובלית" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:364 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:553 -msgid "hue shift" -msgstr "הסחת גוון" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:370 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:557 -msgid "global brilliance" -msgstr "ברק גלובלי" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:394 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:573 -msgid "mask middle-gray fulcrum" -msgstr "מסיכת נקודת משען לאפור-אמצעי" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:400 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:577 -msgid "global vibrance" -msgstr "וויברנס גלובלי" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:406 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:581 -msgid "contrast gray fulcrum" -msgstr "ניגודיות נקודת סמך אפור" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:412 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:585 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:64 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:137 -#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:607 ../src/iop/bilat.c:458 -#: ../src/iop/colisa.c:304 ../src/iop/colorbalance.c:1947 -#: ../src/iop/colorbalance.c:1953 ../src/iop/filmic.c:1548 -#: ../src/iop/filmicrgb.c:4551 ../src/iop/lowpass.c:586 -msgid "contrast" -msgstr "ניגודיות" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:418 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:589 -msgid "saturation formula" -msgstr "נוסחת רוויה" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:603 -msgid "JzAzBz (2021)" -msgstr "JzAzBz (2021)" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:604 -msgid "darktable UCS (2022)" -msgstr "darktable UCS (2022)" - -#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:54 -#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:121 -msgid "green-magenta contrast" -msgstr "ניגודיות ירוק מול מג'נטה" - -#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:66 -#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:129 -msgid "blue-yellow contrast" -msgstr "ניגודיות כחול-צהוב" - -#: ../build/lib/darktable/plugins/introspection_colorin.c:148 -#: ../build/lib/darktable/plugins/introspection_colorin.c:231 -msgid "gamut clipping" -msgstr "חיתוך מכלול צבע" - -#: ../build/lib/darktable/plugins/introspection_colorin.c:301 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:201 -#: ../src/common/colorspaces.c:1251 ../src/common/colorspaces.c:1484 -#: ../src/libs/print_settings.c:1356 -msgid "sRGB" -msgstr "sRGB" - -#: ../build/lib/darktable/plugins/introspection_colorin.c:302 -#: ../src/common/colorspaces.c:1260 ../src/common/colorspaces.c:1486 -#: ../src/libs/print_settings.c:1363 -msgid "Adobe RGB (compatible)" -msgstr "Adobe RGB (תואם)" - -#: ../build/lib/darktable/plugins/introspection_colorin.c:303 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 -#: ../src/common/colorspaces.c:1265 ../src/common/colorspaces.c:1488 -msgid "linear Rec709 RGB" -msgstr "linear Rec709 RGB" - -#: ../build/lib/darktable/plugins/introspection_colorin.c:304 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 -#: ../src/common/colorspaces.c:1274 ../src/common/colorspaces.c:1490 -msgid "linear Rec2020 RGB" -msgstr "linear Rec2020 RGB" - -#: ../build/lib/darktable/plugins/introspection_colorize.c:65 -#: ../build/lib/darktable/plugins/introspection_colorize.c:128 -msgid "source mix" -msgstr "ערבב מקור" - -#: ../build/lib/darktable/plugins/introspection_colormapping.c:94 -#: ../build/lib/darktable/plugins/introspection_colormapping.c:249 -msgid "number of clusters" -msgstr "מספר אשכולות" - -#: ../build/lib/darktable/plugins/introspection_colormapping.c:100 -#: ../build/lib/darktable/plugins/introspection_colormapping.c:253 -msgid "color dominance" -msgstr "דומיננטיות צבע" - -#: ../build/lib/darktable/plugins/introspection_colormapping.c:106 -#: ../build/lib/darktable/plugins/introspection_colormapping.c:257 -msgid "histogram equalization" -msgstr "איזון היסטוגרמה" - -#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:62 -#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:127 -#: ../build/lib/darktable/plugins/introspection_tonemap.cc:45 -#: ../build/lib/darktable/plugins/introspection_tonemap.cc:92 -#: ../src/iop/shadhi.c:686 -msgid "spatial extent" -msgstr "היקף מרחבי" - -#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:68 -#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:131 -msgid "range extent" -msgstr "היקף טווח" - -#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:154 -#: ../src/iop/channelmixerrgb.c:4669 -msgid "saturated colors" -msgstr "צבעים רוויים" - -#: ../build/lib/darktable/plugins/introspection_colorzones.c:78 -#: ../build/lib/darktable/plugins/introspection_colorzones.c:193 -msgid "select by" -msgstr "בחר לפי" - -#. mix slider -#: ../build/lib/darktable/plugins/introspection_colorzones.c:138 -#: ../build/lib/darktable/plugins/introspection_colorzones.c:233 -#: ../build/lib/darktable/plugins/introspection_soften.c:66 -#: ../build/lib/darktable/plugins/introspection_soften.c:121 -#: ../src/iop/atrous.c:1689 -msgid "mix" -msgstr "ערבב" - -#: ../build/lib/darktable/plugins/introspection_colorzones.c:144 -#: ../build/lib/darktable/plugins/introspection_colorzones.c:237 -msgid "process mode" -msgstr "מצב עיבוד" - -#: ../build/lib/darktable/plugins/introspection_colorzones.c:255 -#: ../src/develop/blend_gui.c:2294 ../src/iop/channelmixer.c:617 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/colorchecker.c:1448 -#: ../src/iop/colorize.c:349 ../src/iop/colorzones.c:2401 -#: ../src/iop/exposure.c:1239 -msgid "lightness" -msgstr "בהירות" - -#: ../build/lib/darktable/plugins/introspection_colorzones.c:267 -#: ../src/iop/atrous.c:1309 ../src/iop/atrous.c:1313 -#: ../src/iop/denoiseprofile.c:3527 ../src/iop/rawdenoise.c:755 -msgid "smooth" -msgstr "חלק" - -#: ../build/lib/darktable/plugins/introspection_colorzones.c:268 -msgid "strong" -msgstr "חזק" - -#: ../build/lib/darktable/plugins/introspection_defringe.c:47 -#: ../build/lib/darktable/plugins/introspection_defringe.c:102 -msgid "edge detection radius" -msgstr "רדיוס גילוי קצוות" - -#: ../build/lib/darktable/plugins/introspection_defringe.c:53 -#: ../build/lib/darktable/plugins/introspection_defringe.c:106 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:230 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:435 -#: ../src/iop/atrous.c:1572 ../src/iop/bloom.c:372 -#: ../src/iop/colorreconstruction.c:1236 ../src/iop/hotpixels.c:384 -#: ../src/iop/sharpen.c:449 -msgid "threshold" -msgstr "סף" - -#: ../build/lib/darktable/plugins/introspection_defringe.c:59 -#: ../build/lib/darktable/plugins/introspection_defringe.c:110 -msgid "operation mode" -msgstr "מצב עבודה" - -#: ../build/lib/darktable/plugins/introspection_defringe.c:124 -msgid "global average (fast)" -msgstr "ממוצע גלובלי (מהיר)" - -#: ../build/lib/darktable/plugins/introspection_defringe.c:125 -msgid "local average (slow)" -msgstr "ממוצע מקומי (איטי)" - -#: ../build/lib/darktable/plugins/introspection_defringe.c:126 -msgid "static threshold (fast)" -msgstr "סף קבוע (מהיר)" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:90 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:163 -msgid "match greens" -msgstr "התאם ירוקים" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:96 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:167 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:141 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:260 -msgid "edge threshold" -msgstr "סף קצה" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:102 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:171 -msgid "color smoothing" -msgstr "החלקת צבע" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:108 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:175 -#: ../build/lib/darktable/plugins/introspection_dither.c:73 -#: ../build/lib/darktable/plugins/introspection_dither.c:152 -#: ../build/lib/darktable/plugins/introspection_highlights.c:119 -#: ../build/lib/darktable/plugins/introspection_highlights.c:228 -msgid "method" -msgstr "שיטה" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:114 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:179 -msgid "LMMSE refine" -msgstr "זקק LMMSE" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:120 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:183 -msgid "dual threshold" -msgstr "סף כפול" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:197 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:204 -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:197 -msgid "disabled" -msgstr "מנוטרל" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:198 -msgid "local average" -msgstr "ממוצע מקומי" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:199 -msgid "full average" -msgstr "ממוצע מלא" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:200 -msgid "full and local average" -msgstr "ממוצע מלא ומקומי" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:213 -msgid "PPG" -msgstr "PPG" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:214 -msgid "AMaZE" -msgstr "AMaZE" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:215 -msgid "VNG4" -msgstr "VNG4" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:216 -msgid "RCD" -msgstr "RCD" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:217 -msgid "LMMSE" -msgstr "LMMSE" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:218 -msgid "RCD + VNG4" -msgstr "RCD + VNG4" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:219 -msgid "AMaZE + VNG4" -msgstr "AMaZE + VNG4" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:220 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:227 -msgid "passthrough (monochrome)" -msgstr "עבור דרך (מונוכרום)" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:221 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:228 -msgid "photosite color (debug)" -msgstr "photosite color (debug)" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:222 -msgid "VNG" -msgstr "VNG" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:223 -msgid "Markesteijn 1-pass" -msgstr "Markesteijn 1-pass" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:224 -msgid "Markesteijn 3-pass" -msgstr "Markesteijn 3-pass" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:225 -msgid "frequency domain chroma" -msgstr "כרומה במישור התדר" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:226 -msgid "Markesteijn 3-pass + VNG" -msgstr "Markesteijn 3-pass + VNG" - -#. history -#: ../build/lib/darktable/plugins/introspection_demosaic.c:232 -#: ../src/common/collection.c:1526 ../src/libs/collect.c:1745 -#: ../src/libs/filters/history.c:38 -msgid "basic" -msgstr "בסיסי" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:233 -msgid "median" -msgstr "חציון" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:234 -msgid "3x median" -msgstr "חציון x3" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:235 -msgid "refine & medians" -msgstr "עידון & תיכונים" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:236 -msgid "2x refine + medians" -msgstr "2x עידון + תיכונים" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:125 -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:300 -#: ../build/lib/darktable/plugins/introspection_nlmeans.c:48 -#: ../build/lib/darktable/plugins/introspection_nlmeans.c:109 -msgid "patch size" -msgstr "גודל טלאי" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:131 -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:304 -msgid "search radius" -msgstr "רדיוס חיפוש" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:143 -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:312 -msgid "preserve shadows" -msgstr "שמר צללים" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:149 -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:316 -msgid "bias correction" -msgstr "תיקון הסחה" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:155 -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:320 -msgid "scattering" -msgstr "פיזור" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:161 -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:324 -msgid "central pixel weight" -msgstr "משקל פיקסל מרכזי" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:167 -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:328 -msgid "adjust autoset parameters" -msgstr "כוונן פרמטרים אוטומטיים" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:239 -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:376 -msgid "whitebalance-adaptive transform" -msgstr "הטמרת איזון לבן אדפטיבי" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:245 -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:380 -msgid "fix various bugs in algorithm" -msgstr "תקן באגים שונים באלגוריתם" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:251 -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:384 -msgid "upgrade profiled transform" -msgstr "שדרג התמרה עם פרופיל" - -#. -#. * Color mode combo box -#. -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:257 -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:388 -#: ../src/imageio/format/avif.c:786 ../src/libs/colorpicker.c:584 -msgid "color mode" -msgstr "מצב צבע" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:402 -msgid "non-local means" -msgstr "non-local means" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:403 -msgid "non-local means auto" -msgstr "non-local means auto" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:404 -msgid "wavelets" -msgstr "wavelets" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:405 -msgid "wavelets auto" -msgstr "wavelets auto" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:406 -msgid "compute variance" -msgstr "חשב שונות" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:410 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:266 -msgid "RGB" -msgstr "RGB" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:411 -msgid "Y0U0V0" -msgstr "Y0U0V0" - -#. two more sharpness (standard & strong) -#: ../build/lib/darktable/plugins/introspection_diffuse.c:123 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:248 -#: ../src/iop/atrous.c:1564 ../src/iop/diffuse.c:630 ../src/iop/highpass.c:381 -msgid "sharpness" -msgstr "חדות" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:129 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:252 -msgid "radius span" -msgstr "טווח רדיוס" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:135 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:256 -msgid "edge sensitivity" -msgstr "רגישות לקצוות" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:147 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:264 -msgid "1st order anisotropy" -msgstr "אנאיזוטרופיה מסדר ראשון" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:153 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:268 -msgid "2nd order anisotropy" -msgstr "אנאיזוטרופיה מסדר שני" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:159 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:272 -msgid "3rd order anisotropy" -msgstr "אנאיזוטרופיה מסדר 3" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:165 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:276 -msgid "4th order anisotropy" -msgstr "אנאיזוטרופיה מסדר 4" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:171 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:280 -msgid "luminance masking threshold" -msgstr "סף מיסוך לומיננס" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:177 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:284 -msgid "1st order speed" -msgstr "מהירות מסדר ראשון" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:183 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:288 -msgid "2nd order speed" -msgstr "מהירות מסדר שני" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:189 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:292 -msgid "3rd order speed" -msgstr "מהירות מסדר 3" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:195 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:296 -msgid "4th order speed" -msgstr "מהירות מסדר רביעי" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:201 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:300 -msgid "central radius" -msgstr "רדיוס מרכזי" - -#: ../build/lib/darktable/plugins/introspection_dither.c:103 -#: ../build/lib/darktable/plugins/introspection_dither.c:172 -msgid "damping" -msgstr "שיכוך" - -#: ../build/lib/darktable/plugins/introspection_dither.c:190 -msgid "random" -msgstr "אקראי" - -#: ../build/lib/darktable/plugins/introspection_dither.c:191 -msgid "Floyd-Steinberg 1-bit B&W" -msgstr "Floyd-Steinberg 1-bit B&W" - -#: ../build/lib/darktable/plugins/introspection_dither.c:192 -msgid "Floyd-Steinberg 1-bit RGB" -msgstr "Floyd-Steinberg 1-bit RGB" - -#: ../build/lib/darktable/plugins/introspection_dither.c:193 -msgid "Floyd-Steinberg 2-bit gray" -msgstr "Floyd-Steinberg 2-bit gray" - -#: ../build/lib/darktable/plugins/introspection_dither.c:194 -msgid "Floyd-Steinberg 2-bit RGB" -msgstr "Floyd-Steinberg 2-bit RGB" - -#: ../build/lib/darktable/plugins/introspection_dither.c:195 -msgid "Floyd-Steinberg 4-bit gray" -msgstr "Floyd-Steinberg 4-bit gray" - -#: ../build/lib/darktable/plugins/introspection_dither.c:196 -msgid "Floyd-Steinberg 4-bit RGB" -msgstr "Floyd-Steinberg 4-bit RGB" - -#: ../build/lib/darktable/plugins/introspection_dither.c:197 -msgid "Floyd-Steinberg 8-bit RGB" -msgstr "Floyd-Steinberg 8-bit RGB" - -#: ../build/lib/darktable/plugins/introspection_dither.c:198 -msgid "Floyd-Steinberg 16-bit RGB" -msgstr "Floyd-Steinberg 16-bit RGB" - -#: ../build/lib/darktable/plugins/introspection_dither.c:199 -msgid "Floyd-Steinberg auto" -msgstr "Floyd-Steinberg auto" - -#: ../build/lib/darktable/plugins/introspection_dither.c:200 -msgid "posterize 2 levels per channel" -msgstr "פוסטריזציה 2 רמות לערוץ" - -#: ../build/lib/darktable/plugins/introspection_dither.c:201 -msgid "posterize 3 levels per channel" -msgstr "פוסטריזציה 3 רמות לערוץ" - -#: ../build/lib/darktable/plugins/introspection_dither.c:202 -msgid "posterize 4 levels per channel" -msgstr "פוסטריזציה 4 רמות לערוץ" - -#: ../build/lib/darktable/plugins/introspection_dither.c:203 -msgid "posterize 5 levels per channel" -msgstr "פוסטריזציה 5 רמות לערוץ" - -#: ../build/lib/darktable/plugins/introspection_dither.c:204 -msgid "posterize 6 levels per channel" -msgstr "פוסטריזציה 6 רמות לערוץ" - -#: ../build/lib/darktable/plugins/introspection_dither.c:205 -msgid "posterize 7 levels per channel" -msgstr "פוסטריזציה 7 רמות לערוץ" - -#: ../build/lib/darktable/plugins/introspection_dither.c:206 -msgid "posterize 8 levels per channel" -msgstr "פוסטריזציה 8 רמות לערוץ" - -#: ../build/lib/darktable/plugins/introspection_exposure.c:79 -#: ../build/lib/darktable/plugins/introspection_exposure.c:146 -msgid "percentile" -msgstr "אחוזון" - -#: ../build/lib/darktable/plugins/introspection_exposure.c:85 -#: ../build/lib/darktable/plugins/introspection_exposure.c:150 -msgid "target level" -msgstr "רמת יעד" - -#: ../build/lib/darktable/plugins/introspection_exposure.c:91 -#: ../build/lib/darktable/plugins/introspection_exposure.c:154 -msgid "compensate exposure bias" -msgstr "פצה הסחת חשיפה" - -#: ../build/lib/darktable/plugins/introspection_exposure.c:168 -#: ../build/lib/darktable/plugins/introspection_levels.c:160 -msgid "manual" -msgstr "ידני" - -#: ../build/lib/darktable/plugins/introspection_exposure.c:169 -#: ../build/lib/darktable/plugins/introspection_levels.c:161 -msgid "automatic" -msgstr "אוטומטי" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:212 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:423 -#: ../src/iop/filmic.c:1489 -msgid "middle gray luminance" -msgstr "לומיננס של אפור בינוני" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:218 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:427 -#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:97 -#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:166 -#: ../src/iop/filmic.c:1514 -msgid "black relative exposure" -msgstr "חשיפה יחסית לשחור" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:224 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:431 -#: ../src/iop/filmic.c:1501 -msgid "white relative exposure" -msgstr "חשיפה יחסית ללבן" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:236 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:439 -msgid "transition" -msgstr "מעבר" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:242 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:443 -msgid "bloom ↔ reconstruct" -msgstr "פריחה ↔ שחזר" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:248 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:447 -msgid "gray ↔ colorful details" -msgstr "אפור ↔ פרטים צבעוניים" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:254 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:451 -msgid "structure ↔ texture" -msgstr "מבנה ↔ טקסטורה" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:260 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:455 -msgid "dynamic range scaling" -msgstr "שינוי גודל תחום דינאמי" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:266 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:459 -#: ../src/iop/filmic.c:1646 -msgid "target middle gray" -msgstr "יעד רמות אפור בינוניות" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:272 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:463 -#: ../src/iop/filmic.c:1637 -msgid "target black luminance" -msgstr "בהירות מטרה של שחור" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:278 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:467 -#: ../src/iop/filmic.c:1655 -msgid "target white luminance" -msgstr "יעד לומיננס לבן" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:284 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:471 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:69 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:140 -#: ../src/libs/masks.c:106 -msgid "hardness" -msgstr "קשיות" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:302 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:483 -#: ../src/iop/filmic.c:1586 ../src/iop/filmicrgb.c:4729 -msgid "extreme luminance saturation" -msgstr "רווית לומיננס קיצוני" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:308 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:487 -msgid "shadows ↔ highlights balance" -msgstr "איזון צללים ↔ בהירים" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:314 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:491 -msgid "add noise in highlights" -msgstr "הוסף רעש לפרטים בהירים" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:320 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:495 -msgid "preserve chrominance" -msgstr "שמר chrominance" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:326 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:499 -msgid "color science" -msgstr "מדע צבע" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:332 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:503 -msgid "auto adjust hardness" -msgstr "כוונון קשיחות אוטומטית" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:338 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:507 -msgid "use custom middle-gray values" -msgstr "השתמש בערכי אפור בינוני מותאמים אישית" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:344 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:511 -msgid "iterations of high-quality reconstruction" -msgstr "חזרות של שחזור באיכות גבוהה" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:350 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:515 -msgid "type of noise" -msgstr "סוג רעש" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:356 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:519 -msgid "contrast in shadows" -msgstr "קונטרסט בצללים" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:362 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:523 -msgid "contrast in highlights" -msgstr "קונטרסט בבהירים" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:368 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:527 -msgid "compensate output ICC profile black point" -msgstr "פצה נקודת שחור לפרופיל ICC פלט" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:374 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:531 -msgid "spline handling" -msgstr "טיפול בקו חצוי" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:380 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:535 -msgid "enable highlight reconstruction" -msgstr "אפשר שחזור פרטים בהירים" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:549 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:371 -#: ../src/common/database.c:2785 ../src/common/variables.c:705 -#: ../src/develop/imageop_gui.c:209 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 -msgid "no" -msgstr "לא" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:551 -msgid "luminance Y" -msgstr "לומיננס Y" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:552 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:384 -msgid "RGB power norm" -msgstr "RGB power norm" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:553 -msgid "RGB euclidean norm (legacy)" -msgstr "נורמה אוקלידית RGB (ישן)" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:554 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:383 -msgid "RGB euclidean norm" -msgstr "נורמה אוקלידית RGB" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:558 -msgid "v3 (2019)" -msgstr "v3 (2019)" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:559 -msgid "v4 (2020)" -msgstr "v4 (2020)" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:560 -msgid "v5 (2021)" -msgstr "v5 (2021)" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:561 -msgid "v6 (2022)" -msgstr "v6 (2022)" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:562 -msgid "v7 (2023)" -msgstr "v7 (2023)" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:566 -msgid "uniform" -msgstr "באופן אחיד" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:568 -msgid "poissonian" -msgstr "פואסוני" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:572 -msgid "hard" -msgstr "קשה" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:573 -msgid "soft" -msgstr "רך" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:574 -msgid "safe" -msgstr "בטוח" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:578 -msgid "v1 (2019)" -msgstr "v1 (2019)" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:579 -msgid "v2 (2020)" -msgstr "v2 (2020)" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:580 -msgid "v3 (2021)" -msgstr "v3 (2021)" - -#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:60 -#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:125 -msgid "bias" -msgstr "הטייה" - -#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:66 -#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:129 -msgid "target" -msgstr "יעד" - -#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:151 -msgid "reinhard" -msgstr "reinhard" - -#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:152 -#: ../src/iop/filmic.c:162 -msgid "filmic" -msgstr "filmic" - -#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:153 -msgid "drago" -msgstr "drago" - -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:63 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:136 -msgid "density" -msgstr "צפיפות" - -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 -#: ../src/develop/blend_gui.c:2310 ../src/iop/basicadj.c:624 -#: ../src/iop/channelmixer.c:616 ../src/iop/colisa.c:306 -#: ../src/iop/colorbalance.c:2059 ../src/iop/colorbalancergb.c:1919 -#: ../src/iop/colorchecker.c:1483 ../src/iop/colorcontrast.c:90 -#: ../src/iop/colorcorrection.c:275 ../src/iop/colorize.c:343 -#: ../src/iop/lowpass.c:588 ../src/iop/soften.c:373 ../src/iop/velvia.c:84 -#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:971 -msgid "saturation" -msgstr "רוויה" - -#: ../build/lib/darktable/plugins/introspection_grain.c:58 -#: ../build/lib/darktable/plugins/introspection_grain.c:117 -#: ../src/iop/bilat.c:450 -msgid "coarseness" -msgstr "חספוס" - -#: ../build/lib/darktable/plugins/introspection_grain.c:70 -#: ../build/lib/darktable/plugins/introspection_grain.c:125 -#: ../build/lib/darktable/plugins/introspection_velvia.c:44 -#: ../build/lib/darktable/plugins/introspection_velvia.c:91 -msgid "mid-tones bias" -msgstr "הסחה של טונים בינוניים" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:143 -#: ../build/lib/darktable/plugins/introspection_highlights.c:244 -#: ../src/views/darkroom.c:2406 -msgid "clipping threshold" -msgstr "סף חיתוך" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:161 -#: ../build/lib/darktable/plugins/introspection_highlights.c:256 -msgid "diameter of reconstruction" -msgstr "קוטר שחזור" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:167 -#: ../build/lib/darktable/plugins/introspection_highlights.c:260 -msgid "candidating" -msgstr "עריכת מועמדים" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:173 -#: ../build/lib/darktable/plugins/introspection_highlights.c:264 -msgid "combine" -msgstr "שלב" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:179 -#: ../build/lib/darktable/plugins/introspection_highlights.c:268 -msgid "rebuild" -msgstr "בנה מחדש" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:185 -#: ../build/lib/darktable/plugins/introspection_highlights.c:272 -msgid "inpaint a flat color" -msgstr "inpaint a flat color" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:286 -msgid "inpaint opposed" -msgstr "inpaint opposed" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:287 -msgid "reconstruct in LCh" -msgstr "שחזר ב LCh" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:288 -msgid "clip highlights" -msgstr "חתוך פרטים בהירים" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:289 -msgid "segmentation based" -msgstr "מבוסס סגמנטציה" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:290 -msgid "guided laplacians" -msgstr "לפלאסיאנים מונחים" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:291 -msgid "reconstruct color" -msgstr "שחזר צבע" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:295 -msgid "2 px" -msgstr "2 px" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:296 -msgid "4 px" -msgstr "4 px" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:297 -msgid "8 px" -msgstr "8 px" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:298 -msgid "16 px" -msgstr "16 px" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:299 -msgid "32 px" -msgstr "32 px" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:300 -msgid "64 px" -msgstr "64 px" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:301 -msgid "128 px (slow)" -msgstr "128 px (איטי)" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:302 -msgid "256 px (slow)" -msgstr "256 px (איטי)" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:303 -msgid "512 px (very slow)" -msgstr "512 px (מאד איטי)" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:304 -msgid "1024 px (very slow)" -msgstr "1024 px (מאד איטי)" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:305 -msgid "2048 px (insanely slow)" -msgstr "2048 px (איטי בטירוף)" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:306 -msgid "4096 px (insanely slow)" -msgstr "4096 px (איטי בטירוף)" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:312 -msgid "flat generic" -msgstr "כללי שטוח" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:313 -msgid "small segments" -msgstr "מקטעים קטנים" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:314 -msgid "large segments" -msgstr "מקטעים גדולים" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:315 -msgid "flat small segments" -msgstr "מקטעים קטנים ושטוחים" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:316 -msgid "flat large segments" -msgstr "מקטעים שטוחים גדולים" - -#: ../build/lib/darktable/plugins/introspection_highpass.c:44 -#: ../build/lib/darktable/plugins/introspection_highpass.c:91 -msgid "contrast boost" -msgstr "דחיפה לניגודיות" - -#: ../build/lib/darktable/plugins/introspection_hotpixels.c:59 -#: ../build/lib/darktable/plugins/introspection_hotpixels.c:116 -msgid "mark fixed pixels" -msgstr "סמן פיקסלים מתוקנים" - -#: ../build/lib/darktable/plugins/introspection_hotpixels.c:65 -#: ../build/lib/darktable/plugins/introspection_hotpixels.c:120 -msgid "detect by 3 neighbors" -msgstr "גלה על ידי שימוש ב 3 שכנים" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:162 -#: ../build/lib/darktable/plugins/introspection_lens.cc:337 -msgid "correction method" -msgstr "שיטת תיקון" - -#. Page CORRECTIONS -#: ../build/lib/darktable/plugins/introspection_lens.cc:168 -#: ../build/lib/darktable/plugins/introspection_lens.cc:341 -#: ../src/iop/negadoctor.c:900 -msgid "corrections" -msgstr "תיקונים" - -#. mode choice -#. Add check to control whether the style is to replace or append the current module -#: ../build/lib/darktable/plugins/introspection_lens.cc:174 -#: ../build/lib/darktable/plugins/introspection_lens.cc:345 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:128 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:219 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:51 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:118 -#: ../src/iop/bilat.c:428 ../src/iop/colorbalance.c:1909 -#: ../src/iop/denoiseprofile.c:3806 ../src/iop/exposure.c:1157 -#: ../src/iop/levels.c:684 ../src/iop/profile_gamma.c:668 -#: ../src/libs/copy_history.c:399 ../src/libs/export.c:1262 -#: ../src/libs/image.c:597 ../src/libs/print_settings.c:2875 -#: ../src/libs/styles.c:846 ../src/views/darkroom.c:2387 -msgid "mode" -msgstr "מצב" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:210 -#: ../build/lib/darktable/plugins/introspection_lens.cc:369 -#: ../src/iop/lens.cc:3820 -msgid "target geometry" -msgstr "גיאומטריית יעד" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:240 -#: ../build/lib/darktable/plugins/introspection_lens.cc:389 -msgid "TCA overwrite" -msgstr "שכתוב TCA" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:246 -#: ../build/lib/darktable/plugins/introspection_lens.cc:393 -msgid "TCA red" -msgstr "אדום TCA" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:252 -#: ../build/lib/darktable/plugins/introspection_lens.cc:397 -msgid "TCA blue" -msgstr "כחול TCA" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:258 -#: ../build/lib/darktable/plugins/introspection_lens.cc:401 -msgid "distortion fine-tune" -msgstr "כוונון דיסטורציה" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:264 -#: ../build/lib/darktable/plugins/introspection_lens.cc:405 -msgid "vignetting fine-tune" -msgstr "כוונון-עדין הצללה" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:270 -#: ../build/lib/darktable/plugins/introspection_lens.cc:409 -msgid "TCA red fine-tune" -msgstr "כוונון עדין TCA אדום" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:276 -#: ../build/lib/darktable/plugins/introspection_lens.cc:413 -msgid "TCA blue fine-tune" -msgstr "כוונון עדין TCA כחול" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:282 -#: ../build/lib/darktable/plugins/introspection_lens.cc:417 -msgid "scale fine-tune" -msgstr "כוונון עדין להגדלה" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:294 -#: ../build/lib/darktable/plugins/introspection_lens.cc:425 -msgid "image scale" -msgstr "הגדלה של תמונה" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:439 -msgid "embedded metadata" -msgstr "מטה-נתונים מובנים" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:440 -msgid "Lensfun database" -msgstr "מסד נתונים Lensfun" - -#. get nice text for bounds -#. Side-border hide/show -#: ../build/lib/darktable/plugins/introspection_lens.cc:445 -#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2367 -#: ../src/gui/accelerators.c:2447 ../src/gui/gtk.c:1204 ../src/gui/gtk.c:3136 -#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3709 -#: ../src/iop/rawdenoise.c:893 ../src/libs/collect.c:3066 -#: ../src/libs/filtering.c:1459 ../src/libs/filters/colors.c:157 -#: ../src/libs/filters/colors.c:265 ../src/libs/filters/rating.c:211 -msgid "all" -msgstr "הכל" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:446 -msgid "distortion & TCA" -msgstr "דיסטורציה & TCA" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:447 -msgid "distortion & vignetting" -msgstr "דיסטורציה והצללה" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:448 -msgid "TCA & vignetting" -msgstr "הצללה ו TCA" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:449 -msgid "only distortion" -msgstr "רק דיסטורציה" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:450 -msgid "only TCA" -msgstr "רק TCA" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:451 -msgid "only vignetting" -msgstr "רק הצללה" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:455 -#: ../src/libs/modulegroups.c:2318 -msgid "correct" -msgstr "תקן" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:456 -msgid "distort" -msgstr "עוות" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:461 -msgid "rectilinear" -msgstr "מלבן" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:462 -msgid "fisheye" -msgstr "עין הדג" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:463 -msgid "panoramic" -msgstr "פנורמי" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:464 -msgid "equirectangular" -msgstr "צילינדרי" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:465 -msgid "orthographic" -msgstr "אורטוגרפי" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:466 -msgid "stereographic" -msgstr "סטריאוגרפי" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:467 -msgid "equisolid angle" -msgstr "זווית מרחבית אחידה" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:468 -msgid "Thoby fisheye" -msgstr "עין הדג Thoby" - -#: ../build/lib/darktable/plugins/introspection_liquify.c:428 -msgid "invalidated" -msgstr "לא חוקי" - -#. move left/right/up/down -#: ../build/lib/darktable/plugins/introspection_liquify.c:429 -#: ../src/views/darkroom.c:2282 ../src/views/darkroom.c:2676 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:765 -#: ../src/views/lighttable.c:774 ../src/views/lighttable.c:1246 -#: ../src/views/lighttable.c:1250 ../src/views/lighttable.c:1254 -#: ../src/views/lighttable.c:1258 ../src/views/lighttable.c:1262 -msgid "move" -msgstr "העבר" - -#: ../build/lib/darktable/plugins/introspection_liquify.c:430 -msgid "line" -msgstr "קו" - -#: ../build/lib/darktable/plugins/introspection_liquify.c:431 -#: ../src/iop/basecurve.c:2186 ../src/iop/rgbcurve.c:1387 -#: ../src/iop/tonecurve.c:1149 -msgid "curve" -msgstr "עקום" - -#: ../build/lib/darktable/plugins/introspection_lowlight.c:43 -#: ../build/lib/darktable/plugins/introspection_lowlight.c:110 -msgid "blue shift" -msgstr "הסחה לכחול" - -#: ../build/lib/darktable/plugins/introspection_lowpass.c:96 -#: ../build/lib/darktable/plugins/introspection_lowpass.c:165 -#: ../build/lib/darktable/plugins/introspection_shadhi.c:160 -#: ../build/lib/darktable/plugins/introspection_shadhi.c:247 -msgid "soften with" -msgstr "רכך עם" - -#: ../build/lib/darktable/plugins/introspection_lowpass.c:183 -#: ../build/lib/darktable/plugins/introspection_shadhi.c:261 -msgid "order 0" -msgstr "סדר 0" - -#: ../build/lib/darktable/plugins/introspection_lowpass.c:184 -#: ../build/lib/darktable/plugins/introspection_shadhi.c:262 -msgid "order 1" -msgstr "סדר 1" - -#: ../build/lib/darktable/plugins/introspection_lowpass.c:185 -#: ../build/lib/darktable/plugins/introspection_shadhi.c:263 -msgid "order 2" -msgstr "סדר 2" - -#: ../build/lib/darktable/plugins/introspection_lowpass.c:190 -#: ../build/lib/darktable/plugins/introspection_shadhi.c:268 -msgid "bilateral filter" -msgstr "פילטר בילטרלי" - -#: ../build/lib/darktable/plugins/introspection_lut3d.c:76 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:163 -msgid "application color space" -msgstr "מרחב צבע לאפליקציה" - -#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 -msgid "Adobe RGB" -msgstr "Adobe RGB" - -#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 -msgid "gamma Rec709 RGB" -msgstr "gamma Rec709 RGB" - -#: ../build/lib/darktable/plugins/introspection_lut3d.c:209 -msgid "tetrahedral" -msgstr "טטרהדרלי" - -#: ../build/lib/darktable/plugins/introspection_lut3d.c:210 -msgid "trilinear" -msgstr "טרילינארי" - -#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 -msgid "pyramid" -msgstr "פירמידה" - -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:84 -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:199 -msgid "film stock" -msgstr "סוג פילם" - -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:132 -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:231 -msgid "scan exposure bias" -msgstr "הסחת חשיפה לסורק" - -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:138 -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:235 -msgid "paper black (density correction)" -msgstr "רמת שחור של הניר (תיקון צפיפות)" - -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:144 -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:239 -#: ../src/iop/negadoctor.c:992 -msgid "paper grade (gamma)" -msgstr "דרגת ניר (גאמה)" - -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:150 -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:243 -msgid "paper gloss (specular highlights)" -msgstr "ברק הניר (פרטים בהירים מבריקים)" - -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:156 -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:247 -msgid "print exposure adjustment" -msgstr "כוונון בהירות הדפסה" - -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:261 -#: ../src/iop/negadoctor.c:417 -msgid "black and white film" -msgstr "פילם שחור לבן" - -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:262 -#: ../src/iop/negadoctor.c:402 -msgid "color film" -msgstr "פילם צבעוני" - -#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:85 -#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:158 -msgid "dynamic range" -msgstr "תחום דינאמי" - -#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:91 -#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:162 -msgid "middle gray luma" -msgstr "לומה לאפור בינוני" - -#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:103 -#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:170 -#: ../src/iop/filmic.c:1526 -msgid "safety factor" -msgstr "מקדם ביטחון" - -#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:184 -msgid "logarithmic" -msgstr "לוגריתמית" - -#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:185 -#: ../src/iop/profile_gamma.c:625 -msgid "gamma" -msgstr "גאמא" - -#: ../build/lib/darktable/plugins/introspection_rawdenoise.c:43 -#: ../build/lib/darktable/plugins/introspection_rawdenoise.c:122 -msgid "noise threshold" -msgstr "סף רעש" - -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:70 -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:155 -msgid "crop left" -msgstr "חתוך משמאל" - -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:76 -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:159 -msgid "crop top" -msgstr "חתוך מלמעלה" - -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:82 -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:163 -msgid "crop right" -msgstr "חתוך ימין" - -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:88 -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:167 -msgid "crop bottom" -msgstr "חתוך מהתחתית" - -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:94 -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:100 -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:171 -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:175 -msgid "black level" -msgstr "רמת שחור" - -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:106 -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:179 -#: ../src/iop/rawprepare.c:946 -msgid "white point" -msgstr "נקודת לבן" - -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:112 -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:183 -msgid "flat field correction" -msgstr "תיקון אחידות שדה" - -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:198 -msgid "embedded GainMap" -msgstr "embedded GainMap" - -#. exposure -#: ../build/lib/darktable/plugins/introspection_relight.c:43 -#: ../build/lib/darktable/plugins/introspection_relight.c:98 -#: ../src/common/collection.c:720 ../src/gui/preferences.c:836 -#: ../src/gui/presets.c:684 ../src/iop/basicadj.c:598 ../src/iop/exposure.c:122 -#: ../src/iop/exposure.c:1117 ../src/libs/metadata_view.c:141 -msgid "exposure" -msgstr "חשיפה" - -#: ../build/lib/darktable/plugins/introspection_retouch.c:267 -#: ../build/lib/darktable/plugins/introspection_retouch.c:414 -msgid "fill mode" -msgstr "מצב מילוי" - -#: ../build/lib/darktable/plugins/introspection_retouch.c:285 -#: ../build/lib/darktable/plugins/introspection_retouch.c:426 -#: ../src/iop/basicadj.c:620 ../src/iop/channelmixerrgb.c:4617 -#: ../src/iop/colisa.c:305 ../src/iop/lowpass.c:587 ../src/iop/soften.c:377 -#: ../src/iop/vignette.c:970 ../src/libs/history.c:963 -msgid "brightness" -msgstr "בהירות" - -#: ../build/lib/darktable/plugins/introspection_retouch.c:291 -#: ../build/lib/darktable/plugins/introspection_retouch.c:430 -msgid "max_iter" -msgstr "max_iter" - -#: ../build/lib/darktable/plugins/introspection_retouch.c:444 -#: ../src/libs/metadata_view.c:329 -msgid "unused" -msgstr "לא בשימוש" - -#: ../build/lib/darktable/plugins/introspection_retouch.c:445 -msgid "clone" -msgstr "שכפל" - -#: ../build/lib/darktable/plugins/introspection_retouch.c:446 -msgid "heal" -msgstr "הברא" - -#: ../build/lib/darktable/plugins/introspection_retouch.c:447 -#: ../src/iop/retouch.c:1867 -msgid "blur" -msgstr "טשטוש" - -#: ../build/lib/darktable/plugins/introspection_retouch.c:448 -#: ../src/iop/retouch.c:1865 -msgid "fill" -msgstr "מילוי" - -#: ../build/lib/darktable/plugins/introspection_retouch.c:453 -msgid "bilateral" -msgstr "בילטרלי" - -#: ../build/lib/darktable/plugins/introspection_retouch.c:457 -msgid "erase" -msgstr "מחק" - -#: ../build/lib/darktable/plugins/introspection_retouch.c:458 -#: ../src/gui/presets.c:59 ../src/iop/watermark.c:1298 -#: ../src/libs/colorpicker.c:291 ../src/libs/image.c:612 -#: ../src/libs/modulegroups.c:2317 -msgid "color" -msgstr "צבע" - -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:134 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:223 -#: ../src/iop/rgbcurve.c:1423 -msgid "compensate middle gray" -msgstr "פצה אפור אמצעי" - -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:246 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:148 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:266 -msgid "RGB, linked channels" -msgstr "RGB, ערוצים מקושרים" - -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:247 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:149 -msgid "RGB, independent channels" -msgstr "RGB, ערוצים בלתי תלויים" - -#: ../build/lib/darktable/plugins/introspection_shadhi.c:112 -#: ../build/lib/darktable/plugins/introspection_shadhi.c:215 -msgid "white point adjustment" -msgstr "כוונון נקודת לבן" - -#: ../build/lib/darktable/plugins/introspection_shadhi.c:136 -#: ../build/lib/darktable/plugins/introspection_shadhi.c:231 -msgid "shadows color adjustment" -msgstr "כוונון צבע בצללים" - -#: ../build/lib/darktable/plugins/introspection_shadhi.c:142 -#: ../build/lib/darktable/plugins/introspection_shadhi.c:235 -msgid "highlights color adjustment" -msgstr "כוונון צבע בפרטים הבהירים" - -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:70 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:141 -#: ../src/gui/accelerators.c:85 -msgid "skew" -msgstr "נטיה" - -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:76 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:145 -msgid "target white" -msgstr "יעד לבן" - -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:82 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:149 -msgid "target black" -msgstr "בהירות מטרה של שחור" - -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:88 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:153 -msgid "color processing" -msgstr "עיבוד צבע" - -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:94 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:157 -msgid "preserve hue" -msgstr "שמר גוון" - -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:171 -msgid "per channel" -msgstr "לערוץ" - -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:172 -msgid "RGB ratio" -msgstr "יחס RGB" - -#: ../build/lib/darktable/plugins/introspection_temperature.c:66 -#: ../build/lib/darktable/plugins/introspection_temperature.c:121 -#: ../src/iop/temperature.c:1944 -msgid "emerald" -msgstr "אזמרגד" - -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:135 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:232 -msgid "color space" -msgstr "מרחב צבע" - -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:263 -msgid "Lab, linked channels" -msgstr "ערוצים מקושרים, Lab" - -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:264 -msgid "Lab, independent channels" -msgstr "Lab, ערוצים בלתי תלוים" - -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:265 -msgid "XYZ, linked channels" -msgstr "ערוצים מקושרים, XYZ" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:144 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:289 -msgid "blacks" -msgstr "שחורים" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:150 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:293 -msgid "deep shadows" -msgstr "צללים עמוקים" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:162 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:301 -msgid "light shadows" -msgstr "צללים קלים" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:174 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:309 -msgid "dark highlights" -msgstr "עיקר הכהים" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:186 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:317 -msgid "whites" -msgstr "לבנים" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:192 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:321 -msgid "speculars" -msgstr "מבריקים" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:198 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:325 -msgid "smoothing diameter" -msgstr "קוטר החלקה" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:210 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:333 -msgid "edges refinement/feathering" -msgstr "עידון/נוצה לקצוות" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:216 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:337 -msgid "mask quantization" -msgstr "קוונטיזצית מסיכה" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:222 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:341 -msgid "mask contrast compensation" -msgstr "דחיסת ניגודיות של מסיכה" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:228 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:345 -msgid "mask exposure compensation" -msgstr "מסך פיצוי חשיפה" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:240 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:353 -msgid "luminance estimator" -msgstr "מעריך לומיננס" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:246 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:357 -msgid "filter diffusion" -msgstr "דיפוזיית פילטר" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:372 -msgid "averaged guided filter" -msgstr "פילטר מונחה ממוצע" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:373 -msgid "guided filter" -msgstr "פילטר מונחה" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:374 -msgid "averaged EIGF" -msgstr "ממוצע EIGF" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:375 -msgid "EIGF" -msgstr "EIGF" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:379 -msgid "RGB average" -msgstr "RGB ממוצע" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:380 -msgid "HSL lightness" -msgstr "תאורת HSV" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:381 -msgid "HSV value / RGB max" -msgstr "HSV ערך / RGB מקסימלי" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:382 -msgid "RGB sum" -msgstr "סכום RGB" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:385 -msgid "RGB geometric mean" -msgstr "ממוצע גיאומטרי RGB" - -#: ../build/lib/darktable/plugins/introspection_tonemap.cc:39 -#: ../build/lib/darktable/plugins/introspection_tonemap.cc:88 -#: ../src/iop/rgbcurve.c:184 ../src/iop/tonecurve.c:539 -msgid "contrast compression" -msgstr "דחיסת ניגודיות" - -#: ../build/lib/darktable/plugins/introspection_vibrance.c:33 -#: ../build/lib/darktable/plugins/introspection_vibrance.c:76 -#: ../src/iop/basicadj.c:627 ../src/iop/vibrance.c:67 -msgid "vibrance" -msgstr "וויברנס" - -#: ../build/lib/darktable/plugins/introspection_vignette.c:92 -#: ../build/lib/darktable/plugins/introspection_vignette.c:201 -msgid "fall-off start" -msgstr "התחלת ירידה" - -#: ../build/lib/darktable/plugins/introspection_vignette.c:98 -#: ../build/lib/darktable/plugins/introspection_vignette.c:205 -msgid "fall-off radius" -msgstr "רדיוס ירידה" - -#: ../build/lib/darktable/plugins/introspection_vignette.c:116 -#: ../build/lib/darktable/plugins/introspection_vignette.c:217 -msgid "horizontal center" -msgstr "מרכז אופקי" - -#: ../build/lib/darktable/plugins/introspection_vignette.c:122 -#: ../build/lib/darktable/plugins/introspection_vignette.c:221 -msgid "vertical center" -msgstr "מרכז אנכי" - -#: ../build/lib/darktable/plugins/introspection_vignette.c:134 -#: ../build/lib/darktable/plugins/introspection_vignette.c:229 -msgid "automatic ratio" -msgstr "יחס אוטומטי" - -#: ../build/lib/darktable/plugins/introspection_vignette.c:140 -#: ../build/lib/darktable/plugins/introspection_vignette.c:233 -msgid "width/height ratio" -msgstr "יחס רוחב/גובה" - -#: ../build/lib/darktable/plugins/introspection_vignette.c:146 -#: ../build/lib/darktable/plugins/introspection_vignette.c:237 -#: ../src/iop/vignette.c:978 -msgid "shape" -msgstr "צורה" - -#: ../build/lib/darktable/plugins/introspection_vignette.c:265 -msgid "8-bit output" -msgstr "פלט 8 ביט" - -#: ../build/lib/darktable/plugins/introspection_vignette.c:266 -msgid "16-bit output" -msgstr "פלט 16 ביט" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:118 -#: ../build/lib/darktable/plugins/introspection_watermark.c:253 -msgid "x offset" -msgstr "הסחה ב x" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:124 -#: ../build/lib/darktable/plugins/introspection_watermark.c:257 -msgid "y offset" -msgstr "הסחה ב y" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:142 -#: ../build/lib/darktable/plugins/introspection_watermark.c:269 -msgid "scale on" -msgstr "משקול דלוק" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:148 -#: ../build/lib/darktable/plugins/introspection_watermark.c:273 -msgid "scale marker to" -msgstr "הגדלה סמן ל" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:154 -#: ../build/lib/darktable/plugins/introspection_watermark.c:277 -msgid "scale marker reference" -msgstr "שנה גודל סמן רפרנס" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:323 -#: ../src/imageio/format/tiff.c:125 ../src/imageio/format/xcf.c:159 -#: ../src/iop/borders.c:947 -msgid "image" -msgstr "תמונה" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:324 -msgid "larger border" -msgstr "מסגרת גדולה יותר" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:325 -msgid "smaller border" -msgstr "מסגרת קטנה יותר" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:326 -#: ../src/libs/export.c:1135 ../src/libs/metadata_view.c:148 -#: ../src/libs/print_settings.c:2541 -msgid "height" -msgstr "גובה" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:327 -msgid "advanced options" -msgstr "אפשרויות מתקדמות" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:331 -msgid "image width" -msgstr "רוחב תמונה" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:332 -msgid "image height" -msgstr "גובה תמונה" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:333 -msgid "larger image border" -msgstr "מסגרת גדולה יותר" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:334 -msgid "smaller image border" -msgstr "מסגרת קטנה יותר" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:338 -msgid "marker width" -msgstr "רוחב סמן" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:339 -msgid "marker height" -msgstr "גובה סמן" - -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:6 -msgid "developers" -msgstr "מפתחים" - -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:11 -msgid "translators" -msgstr "מתרגמים" - -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:16 -msgid "contributors" -msgstr "תורמים" - -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:21 -msgid "rawspeed contributors" -msgstr "תורמים ל rawspeed" - -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:26 -msgid "integration contributors" -msgstr "תורמים לאינטגרציה" - -#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:1 -#: ../data/org.darktable.darktable.desktop.in.h:1 -msgid "Virtual Lighttable and Darkroom" -msgstr "שולחן אור וחדר חושך וירטואלי" - -#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:2 -#: ../data/org.darktable.darktable.appdata.xml.in.h:1 -#: ../data/org.darktable.darktable.desktop.in.h:2 -msgid "Organize and develop images from digital cameras" -msgstr "ארגן ופתח תמונות ממצלמות דיגיטליות" - -#. TRANSLATORS: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! -#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:4 -#: ../data/org.darktable.darktable.desktop.in.h:4 -msgid "graphics;photography;raw;" -msgstr "גרפיקה;צילום;raw;" - -#: ../data/org.darktable.darktable.appdata.xml.in.h:2 -msgid "" -"darktable manages your digital negatives in a database and lets you view " -"them through a lighttable. It also enables you to develop raw images and " -"enhance them in a darkroom." -msgstr "" -"התכנה darktable מנהלת את תשלילים הדיגיטליים שלך במסד נתונים ומאפשרת לך לצפות " -"בהם מאמצעות שולחן אור. היא גם מאפשרת לך לפתח קבצי raw ולשפר אותם בחדר חושך." - -#: ../data/org.darktable.darktable.appdata.xml.in.h:3 -msgid "" -"Other modes besides lighttable and darkroom are a map for geotagging, " -"tethering, print and a slideshow." -msgstr "" -"מצבי עבודה נוספים מעבר לשולחן אור וחדר חושך כוללים מפה לצורך תיוג גאוגרפי, " -"קשירה, הדפסה, והקרנת שקופיות." - -#: ../data/org.darktable.darktable.appdata.xml.in.h:4 -msgid "" -"darktable supports most modern cameras' raw formats, and does all of its " -"processing at very high precision." -msgstr "" -"התוכנה darktable תומכת ברב פורמטי ה raw של המצלמות המודרניות, ומבצעת את כל " -"העיבוד בדיוק גבוהה מאד." - -#: ../data/org.darktable.darktable.appdata.xml.in.h:5 -msgid "Virtual light table, showing a collection" -msgstr "שולחן אור ווירטואלי, מראה אוסף" - -#: ../data/org.darktable.darktable.appdata.xml.in.h:6 -msgid "Virtual dark room with an opened image" -msgstr "חדר חושך ווירטואלי עם תמונה פתוחה" - -#: ../data/org.darktable.darktable.appdata.xml.in.h:7 -msgid "Virtual dark room, sharpening an image" -msgstr "חדר חושך ווירטואלי, חידוד תמונה" - -#: ../data/org.darktable.darktable.appdata.xml.in.h:8 -msgid "Show images on a map" -msgstr "הצג תמונות על מפה" - -#: ../data/org.darktable.darktable.appdata.xml.in.h:9 -msgid "Print your images" -msgstr "הדפס תמונותיך" - -#: ../src/bauhaus/bauhaus.c:752 ../src/bauhaus/bauhaus.c:3689 -msgid "sliders" -msgstr "סליידרים" - -#: ../src/bauhaus/bauhaus.c:753 ../src/bauhaus/bauhaus.c:3694 -msgid "dropdowns" -msgstr "נמשך מטה" - -#: ../src/bauhaus/bauhaus.c:754 ../src/bauhaus/bauhaus.c:3699 -msgid "buttons" -msgstr "כפתורים" - -#: ../src/bauhaus/bauhaus.c:3405 -msgid "button on" -msgstr "כפתור דלוק" - -#: ../src/bauhaus/bauhaus.c:3405 -msgid "button off" -msgstr "כפתור כבוי" - -#: ../src/bauhaus/bauhaus.c:3406 -msgid "button pressed" -msgstr "כפתור לחוץ" - -#: ../src/bauhaus/bauhaus.c:3623 -msgid "not that many sliders" -msgstr "לא כלכך הרבה סליידרים" - -#: ../src/bauhaus/bauhaus.c:3633 -msgid "not that many dropdowns" -msgstr "לא כלכך הרבה תפריטים נופלים" - -#: ../src/bauhaus/bauhaus.c:3648 -msgid "not that many buttons" -msgstr "לא כלכך הרבה כפתורים" - -#: ../src/bauhaus/bauhaus.c:3653 ../src/gui/accelerators.c:348 -msgid "value" -msgstr "ערך" - -#: ../src/bauhaus/bauhaus.c:3654 ../src/bauhaus/bauhaus.c:3660 -#: ../src/gui/accelerators.c:326 -msgid "button" -msgstr "כפתור" - -#: ../src/bauhaus/bauhaus.c:3655 -msgid "force" -msgstr "עצמה" - -#: ../src/bauhaus/bauhaus.c:3656 ../src/libs/navigation.c:187 -#: ../src/libs/navigation.c:199 -msgid "zoom" -msgstr "(זום)" - -#: ../src/bauhaus/bauhaus.c:3659 -msgid "selection" -msgstr "בחירה" - -#: ../src/bauhaus/bauhaus.c:3678 -msgid "slider" -msgstr "מכוון" - -#: ../src/bauhaus/bauhaus.c:3683 -msgid "dropdown" -msgstr "נמשך מטה" - -#: ../src/chart/main.c:504 ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 ../src/gui/accelerators.c:2278 -#: ../src/gui/accelerators.c:2355 ../src/gui/accelerators.c:2407 -#: ../src/gui/accelerators.c:2435 ../src/gui/accelerators.c:2495 -#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1043 -#: ../src/gui/preferences.c:1082 ../src/gui/presets.c:420 -#: ../src/gui/presets.c:563 ../src/gui/styles_dialog.c:519 -#: ../src/imageio/storage/disk.c:123 ../src/imageio/storage/gallery.c:110 -#: ../src/imageio/storage/latex.c:109 ../src/iop/lut3d.c:1546 -#: ../src/libs/collect.c:408 ../src/libs/copy_history.c:115 -#: ../src/libs/geotagging.c:928 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/styles.c:392 ../src/libs/styles.c:527 -#: ../src/libs/tagging.c:2489 ../src/libs/tagging.c:2525 -msgid "_cancel" -msgstr "_בטל" - -#: ../src/chart/main.c:504 ../src/gui/preferences.c:1082 -#: ../src/gui/styles_dialog.c:520 ../src/libs/styles.c:392 -msgid "_save" -msgstr "_שמירה" - -#. TODO: is the rank interesting, too? -#: ../src/chart/main.c:1064 -#, c-format -msgid "" -"average dE: %.02f\n" -"max dE: %.02f" -msgstr "" -"ממוצע dE: %.02f\n" -"מקסימום dE: %.02f" - -#: ../src/cli/main.c:247 -msgid "TODO: sorry, due to API restrictions we currently cannot set the BPP to" -msgstr "" -"TODO: sorry, due to API restrictions we currently cannot set the BPP to" - -#: ../src/cli/main.c:259 -msgid "unknown option for --hq" -msgstr "אפשרות לא ידועה עבור hq--" - -#: ../src/cli/main.c:275 -msgid "unknown option for --export_masks" -msgstr "אפשרות לא ידועה עבור --export_masks" - -#: ../src/cli/main.c:291 -msgid "unknown option for --upscale" -msgstr "אפשרות לא ידועה עבור upscale--" - -#: ../src/cli/main.c:316 -msgid "unknown option for --apply-custom-presets" -msgstr "אפשרות לא ידועה עבור --apply-custom-presets" - -#: ../src/cli/main.c:327 -msgid "too long ext for --out-ext" -msgstr "too long ext for --out-ext" - -#: ../src/cli/main.c:344 -#, c-format -msgid "notice: input file or dir '%s' doesn't exist, skipping\n" -msgstr "שים לב: קובץ קלט או תיקיה '%s' לא קיימת, מדלג\n" - -#: ../src/cli/main.c:353 -#, c-format -msgid "incorrect ICC type for --icc-type: '%s'\n" -msgstr "incorrect ICC type for --icc-type: '%s'\n" - -#: ../src/cli/main.c:369 -#, c-format -msgid "notice: ICC file '%s' doesn't exist, skipping\n" -msgstr "שים לב: קובץ ICC לא קיים '%s', מדלג\n" - -#: ../src/cli/main.c:378 -#, c-format -msgid "incorrect ICC intent for --icc-intent: '%s'\n" -msgstr "incorrect ICC intent for --icc-intent: '%s'\n" - -#: ../src/cli/main.c:396 -#, c-format -msgid "warning: unknown option '%s'\n" -msgstr "אזהרה: אפשרות לא ידועה '.%s'\n" - -#: ../src/cli/main.c:454 -#, c-format -msgid "error: input file and import opts specified! that's not supported!\n" -msgstr "שגיאה: קובץ קלט ואפשרויות ייבוא מוגדרות! זה לא נתמך!\n" - -#: ../src/cli/main.c:487 -#, c-format -msgid "" -"notice: output location is a directory. assuming '%s/$(FILE_NAME).%s' output " -"pattern" -msgstr "שים לב: מיקום פלט הוא תיקיה. בהנחת תבנית '%s/$(FILE_NAME).%s'" - -#. output file exists or there's output ext specified and it's same as file... -#: ../src/cli/main.c:502 -msgid "output file already exists, it will get renamed" -msgstr "קובץ פלט קיים, שמו ישונה" - -#. one of inputs was a failure, no prob -#: ../src/cli/main.c:532 -#, c-format -msgid "error: can't open folder %s" -msgstr "שגיאה: לא יכול לפתוח תיקיה %s" - -#: ../src/cli/main.c:549 -#, c-format -msgid "error: can't open file %s" -msgstr "שגיאה: לא יכול לפתוח קובץ %s" - -#: ../src/cli/main.c:566 -#, c-format -msgid "no images to export, aborting\n" -msgstr "אין תמונות לייצוא, מבטל\n" - -#: ../src/cli/main.c:583 -#, c-format -msgid "error: can't open XMP file %s" -msgstr "שגיאה: לא יכול לפתוח XMP קובץ %s" - -#: ../src/cli/main.c:604 -msgid "empty history stack" -msgstr "מחסנית ההיסטוריה ריקה" - -#. too long ext, no point in wasting time -#: ../src/cli/main.c:616 -#, c-format -msgid "too long output file extension: %s\n" -msgstr "סיומת קובץ פלט ארוכה מדי: %s\n" - -#. no ext or empty ext, no point in wasting time -#: ../src/cli/main.c:624 -#, c-format -msgid "no output file extension given\n" -msgstr "לא ניתנה לקובץ פלט סיומת\n" - -#: ../src/cli/main.c:663 -msgid "" -"cannot find disk storage module. please check your installation, something " -"seems to be broken." -msgstr "מודול אחסון לא נמצא. אנה בדוק את ההתקנה, משהו כנראה שבור." - -#: ../src/cli/main.c:673 -msgid "failed to get parameters from storage module, aborting export ..." -msgstr "קבלת פרמטרים ממודול האחסון נכשלה, מבטל ייצוא ..." - -#: ../src/cli/main.c:689 -#, c-format -msgid "unknown extension '.%s'" -msgstr "סיומת לא ידועה '.%s'" - -#: ../src/cli/main.c:699 -msgid "failed to get parameters from format module, aborting export ..." -msgstr "קבלת פרמטרים ממודול העיצוב, מבטל ייצוא ..." - -#: ../src/common/camera_control.c:190 -#, c-format -msgid "" -"camera `%s' on port `%s' error %s\n" -"\n" -"make sure your camera allows access and is not mounted otherwise" -msgstr "" -"מצלמה `%s' בפורט `%s' שגיאה %s\n" -"\n" -"וודא שהמצלמה מרשה גישה ולא מוגדרת ככונן" - -#: ../src/common/camera_control.c:892 -#, c-format -msgid "" -"failed to initialize `%s' on port `%s', likely causes are: locked by another " -"application, no access to devices etc" -msgstr "" -"נכשל באתחול `%s' בפורט `%s', סיבות סבירות: נעול ע\"י אפליקציה אחרת, אין גישה " -"להתקנים וכו'" - -#: ../src/common/camera_control.c:905 -#, c-format -msgid "" -"`%s' on port `%s' is not interesting because it supports neither tethering " -"nor import" -msgstr "התקן `%s' בפורט `%s' לא מעניין כיוון שאיו תומך בקישוריות או ייבוא" - -#: ../src/common/camera_control.c:959 -#, c-format -msgid "camera `%s' on port `%s' disconnected while mounted" -msgstr "מצלמה `%s' בפורט `%s' מנותקת כאשר מוגדרת ככונן" - -#: ../src/common/camera_control.c:967 -#, c-format -msgid "" -"camera `%s' on port `%s' needs to be remounted\n" -"make sure it allows access and is not mounted otherwise" -msgstr "" -"מצלמה `%s' בפורט `%s' נזקקת לגדרה מחדש ככונן\n" -"וודא שיש הרשאת גישה ושלא מוגדרת ככונן אחרת" - -#: ../src/common/collection.c:673 -msgid "too much time to update aspect ratio for the collection" -msgstr "זמן רב מדי לעדכון יחס רוחב גובה של האוסף" - -#: ../src/common/collection.c:688 -msgid "film roll" -msgstr "גליל פילם" - -#: ../src/common/collection.c:690 -msgid "folder" -msgstr "תיקיה" - -#: ../src/common/collection.c:692 -msgid "camera" -msgstr "מצלמה" - -#: ../src/common/collection.c:694 ../src/libs/export_metadata.c:189 -#: ../src/libs/tagging.c:3281 -msgid "tag" -msgstr "תג" - -#: ../src/common/collection.c:696 -msgid "capture date" -msgstr "זמן רכישה" - -#: ../src/common/collection.c:698 ../src/libs/filtering.c:61 -msgid "capture time" -msgstr "זמן רכישה" - -#: ../src/common/collection.c:700 ../src/libs/filtering.c:62 -msgid "import time" -msgstr "זמן ייבוא" - -#: ../src/common/collection.c:702 ../src/libs/filtering.c:63 -msgid "modification time" -msgstr "זמן שינוי" - -#: ../src/common/collection.c:704 ../src/libs/filtering.c:64 -msgid "export time" -msgstr "זמן ייצוא" - -#: ../src/common/collection.c:706 ../src/libs/filtering.c:65 -msgid "print time" -msgstr "הדפס זמן" - -#: ../src/common/collection.c:708 ../src/libs/collect.c:3222 -#: ../src/libs/filtering.c:2163 ../src/libs/filtering.c:2183 -#: ../src/libs/filters/history.c:153 ../src/libs/history.c:92 -msgid "history" -msgstr "היסטוריה" - -#: ../src/common/collection.c:710 ../src/common/colorlabels.c:342 -#: ../src/develop/lightroom.c:1550 ../src/dtgtk/thumbnail.c:1560 -#: ../src/libs/filtering.c:68 ../src/libs/filters/colors.c:301 -#: ../src/libs/filters/colors.c:312 ../src/libs/tools/colorlabels.c:93 -msgid "color label" -msgstr "תווית צבע" - -#. iso -#: ../src/common/collection.c:716 ../src/gui/preferences.c:832 -#: ../src/gui/presets.c:666 ../src/libs/camera.c:558 -#: ../src/libs/metadata_view.c:145 -msgid "ISO" -msgstr "ISO" - -#. aperture -#: ../src/common/collection.c:718 ../src/gui/preferences.c:840 -#: ../src/gui/presets.c:701 ../src/libs/camera.c:545 ../src/libs/camera.c:547 -#: ../src/libs/metadata_view.c:140 -msgid "aperture" -msgstr "מפתח" - -#: ../src/common/collection.c:724 ../src/libs/filtering.c:57 -#: ../src/libs/filters/filename.c:364 ../src/libs/metadata_view.c:126 -msgid "filename" -msgstr "שם קובץ" - -#: ../src/common/collection.c:726 ../src/develop/lightroom.c:1541 -#: ../src/libs/geotagging.c:141 -msgid "geotagging" -msgstr "גאו-תגיות" - -#: ../src/common/collection.c:728 ../src/libs/filters/grouping.c:167 -#: ../src/libs/tools/global_toolbox.c:394 -msgid "grouping" -msgstr "קיבוץ" - -#: ../src/common/collection.c:730 ../src/dtgtk/thumbnail.c:1575 -#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:129 -#: ../src/libs/metadata_view.c:336 -msgid "local copy" -msgstr "עותק מקומי" - -#: ../src/common/collection.c:732 ../src/gui/preferences.c:808 -msgid "module" -msgstr "מודול" - -#: ../src/common/collection.c:734 ../src/gui/hist_dialog.c:346 -#: ../src/gui/styles_dialog.c:722 ../src/gui/styles_dialog.c:771 -#: ../src/libs/filters/module_order.c:161 ../src/libs/ioporder.c:39 -msgid "module order" -msgstr "סדר מודולים" - -#: ../src/common/collection.c:736 -msgid "range rating" -msgstr "דירוג טווח" - -#: ../src/common/collection.c:738 ../src/common/ratings.c:322 -#: ../src/develop/lightroom.c:1525 ../src/libs/filtering.c:67 -#: ../src/libs/tools/ratings.c:110 -msgid "rating" -msgstr "דירוג" - -#: ../src/common/collection.c:740 -msgid "search" -msgstr "חיפוש" - -#: ../src/common/collection.c:1509 ../src/common/colorlabels.c:335 -#: ../src/develop/lightroom.c:836 ../src/gui/guides.c:732 -#: ../src/iop/colorzones.c:2265 ../src/iop/temperature.c:1928 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:261 -msgid "yellow" -msgstr "צהוב" - -#: ../src/common/collection.c:1515 ../src/common/color_vocabulary.c:339 -#: ../src/common/colorlabels.c:338 ../src/iop/colorzones.c:2269 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:264 -msgid "purple" -msgstr "סגול" - -#: ../src/common/collection.c:1532 ../src/libs/collect.c:1745 -#: ../src/libs/filters/history.c:38 -msgid "auto applied" -msgstr "מיושם אוטומטית" - -#: ../src/common/collection.c:1536 ../src/libs/collect.c:1745 -#: ../src/libs/filters/history.c:38 -msgid "altered" -msgstr "שונה" - -#: ../src/common/collection.c:1553 ../src/common/collection.c:1649 -#: ../src/libs/collect.c:1166 ../src/libs/collect.c:1330 -#: ../src/libs/collect.c:1354 ../src/libs/collect.c:1473 -#: ../src/libs/collect.c:2432 -msgid "not tagged" -msgstr "לא תויגו" - -#: ../src/common/collection.c:1554 ../src/libs/collect.c:1354 -#: ../src/libs/map_locations.c:742 -msgid "tagged" -msgstr "תויג" - -#: ../src/common/collection.c:1555 -msgid "tagged*" -msgstr "תויג*" - -#. local copy -#: ../src/common/collection.c:1588 ../src/libs/collect.c:1759 -#: ../src/libs/filters/local_copy.c:38 -msgid "not copied locally" -msgstr "לא עותק מקומי" - -#: ../src/common/collection.c:1592 ../src/libs/collect.c:1759 -#: ../src/libs/filters/local_copy.c:38 -msgid "copied locally" -msgstr "הועתק מקומית" - -#: ../src/common/collection.c:1974 ../src/libs/collect.c:1879 -#: ../src/libs/filters/grouping.c:147 ../src/libs/filters/grouping.c:170 -msgid "group leaders" -msgstr "מובילי קבוצה" - -#: ../src/common/collection.c:1978 ../src/libs/collect.c:1879 -#: ../src/libs/filters/grouping.c:150 ../src/libs/filters/grouping.c:170 -msgid "group followers" -msgstr "עוקבי הקבוצה" - -#: ../src/common/collection.c:2126 ../src/libs/collect.c:1959 -msgid "not defined" -msgstr "לא מוגדר" - -#: ../src/common/collection.c:2575 -#, c-format -msgid "<b>%d</b> image (#<b>%d</b>) selected of <b>%d</b>" -msgstr "<b>%d</b> תמונה (#<b>%d</b>) נבחרה מתוך <b>%d</b>" - -#: ../src/common/collection.c:2582 -#, c-format -msgid "<b>%d</b> image selected of <b>%d</b>" -msgid_plural "<b>%d</b> images selected of <b>%d</b>" -msgstr[0] "<b>%d</b> תמונה נבחרה מתוך <b>%d</b>" -msgstr[1] "<b>%d</b>תמונות נבחרה מתוך <b>%d</b>" - -#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2324 -#: ../src/develop/blend_gui.c:2372 ../src/gui/guides.c:729 -#: ../src/iop/channelmixerrgb.c:4620 ../src/iop/levels.c:671 -#: ../src/iop/rgblevels.c:937 ../src/iop/rgblevels.c:1032 -msgid "gray" -msgstr "אפור" - -#: ../src/common/color_vocabulary.c:92 -msgid "Chinese" -msgstr "סינית" - -#: ../src/common/color_vocabulary.c:93 -msgid "Thai" -msgstr "תאילנדי" - -#: ../src/common/color_vocabulary.c:94 -msgid "Kurdish" -msgstr "כורדי" - -#: ../src/common/color_vocabulary.c:95 -msgid "Caucasian" -msgstr "אדם לבן" - -#: ../src/common/color_vocabulary.c:96 -msgid "African-American" -msgstr "אפרו-אמריקאי" - -#: ../src/common/color_vocabulary.c:97 -msgid "Mexican" -msgstr "מקסיקני" - -#: ../src/common/color_vocabulary.c:100 ../src/common/color_vocabulary.c:105 -#: ../src/common/color_vocabulary.c:110 ../src/common/color_vocabulary.c:115 -msgid "forearm" -msgstr "אמת היד" - -#: ../src/common/color_vocabulary.c:120 ../src/common/color_vocabulary.c:125 -#: ../src/common/color_vocabulary.c:130 ../src/common/color_vocabulary.c:135 -#: ../src/common/color_vocabulary.c:140 ../src/common/color_vocabulary.c:145 -msgid "forehead" -msgstr "מצח" - -#: ../src/common/color_vocabulary.c:150 ../src/common/color_vocabulary.c:155 -#: ../src/common/color_vocabulary.c:160 ../src/common/color_vocabulary.c:165 -#: ../src/common/color_vocabulary.c:170 ../src/common/color_vocabulary.c:175 -msgid "cheek" -msgstr "לחי" - -#: ../src/common/color_vocabulary.c:202 -#, c-format -msgid "average %s skin tone\n" -msgstr "ממוצע %s גוון עור\n" - -#. 0° - pinkish red -#: ../src/common/color_vocabulary.c:222 -msgid "deep purple" -msgstr "סגול עמוק" - -#. L = 10 % -#: ../src/common/color_vocabulary.c:223 -msgid "fuchsia" -msgstr "פוקסיה" - -#. L = 30 % -#: ../src/common/color_vocabulary.c:224 -msgid "medium magenta" -msgstr "מג'נטה בינוני" - -#. L = 50 % -#: ../src/common/color_vocabulary.c:225 -msgid "violet pink" -msgstr "ורוד סגול" - -#. L = 70 % -#: ../src/common/color_vocabulary.c:226 -msgid "plum violet" -msgstr "סגול שזיף" - -#. 24° - red -#: ../src/common/color_vocabulary.c:231 -msgid "dark red" -msgstr "אדום כהה" - -#: ../src/common/color_vocabulary.c:233 -msgid "crimson" -msgstr "ארגמן" - -#: ../src/common/color_vocabulary.c:234 -msgid "salmon" -msgstr "סלמון" - -#: ../src/common/color_vocabulary.c:235 -msgid "pink" -msgstr "ורוד" - -#. 48° - orangy red -#: ../src/common/color_vocabulary.c:240 -msgid "maroon" -msgstr "אדום סגול כהה" - -#: ../src/common/color_vocabulary.c:241 -msgid "dark orange red" -msgstr "כתום אדום כהה" - -#: ../src/common/color_vocabulary.c:242 -msgid "orange red" -msgstr "כתום אדום" - -#: ../src/common/color_vocabulary.c:243 -msgid "coral" -msgstr "אלמוג" - -#: ../src/common/color_vocabulary.c:244 ../src/common/color_vocabulary.c:261 -msgid "khaki" -msgstr "חקי" - -#. 72° - orange -#: ../src/common/color_vocabulary.c:249 -msgid "brown" -msgstr "חום" - -#: ../src/common/color_vocabulary.c:250 -msgid "chocolate" -msgstr "שוקולד" - -#: ../src/common/color_vocabulary.c:251 -msgid "dark gold" -msgstr "זהב כהה" - -#: ../src/common/color_vocabulary.c:252 -msgid "gold" -msgstr "זהב" - -#: ../src/common/color_vocabulary.c:253 -msgid "sandy brown" -msgstr "חום חול" - -#. 96° - yellow olive -#. 120° - green -#. 144° - blueish green -#: ../src/common/color_vocabulary.c:258 ../src/common/color_vocabulary.c:267 -#: ../src/common/color_vocabulary.c:276 -msgid "dark green" -msgstr "ירוק כהה" - -#: ../src/common/color_vocabulary.c:259 -msgid "dark olive green" -msgstr "ירוק זית כהה" - -#: ../src/common/color_vocabulary.c:260 -msgid "olive" -msgstr "זית" - -#: ../src/common/color_vocabulary.c:262 -msgid "beige" -msgstr "בז'" - -#: ../src/common/color_vocabulary.c:268 ../src/common/color_vocabulary.c:278 -msgid "forest green" -msgstr "ירוק יער" - -#: ../src/common/color_vocabulary.c:269 -msgid "olive drab" -msgstr "גוון ירוק זית" - -#: ../src/common/color_vocabulary.c:270 -msgid "yellow green" -msgstr "צהוב ירוק" - -#: ../src/common/color_vocabulary.c:271 ../src/common/color_vocabulary.c:280 -msgid "pale green" -msgstr "ירוק חיוור" - -#: ../src/common/color_vocabulary.c:279 -msgid "lime green" -msgstr "ירוק ליים" - -#. 168° - greenish cyian -#: ../src/common/color_vocabulary.c:285 -msgid "dark sea green" -msgstr "ירוק ים כהה" - -#: ../src/common/color_vocabulary.c:286 -msgid "sea green" -msgstr "ירוק ים" - -#: ../src/common/color_vocabulary.c:287 ../src/common/color_vocabulary.c:304 -msgid "teal" -msgstr "ירוק כחול" - -#: ../src/common/color_vocabulary.c:288 -msgid "light sea green" -msgstr "ירוק ים בהיר" - -#: ../src/common/color_vocabulary.c:289 -msgid "turquoise" -msgstr "טורקיז" - -#. 192° - cyan -#: ../src/common/color_vocabulary.c:294 -msgid "dark slate gray" -msgstr "אפור לוח כהה" - -#: ../src/common/color_vocabulary.c:295 -msgid "light slate gray" -msgstr "אפור לוח בהיר" - -#: ../src/common/color_vocabulary.c:296 ../src/common/color_vocabulary.c:305 -msgid "dark cyan" -msgstr "סיאן כהה" - -#: ../src/common/color_vocabulary.c:297 ../src/common/color_vocabulary.c:317 -#: ../src/iop/colorzones.c:2267 -msgid "aqua" -msgstr "aqua" - -#: ../src/common/color_vocabulary.c:298 ../src/gui/guides.c:733 -#: ../src/iop/temperature.c:1926 -msgid "cyan" -msgstr "ציאן" - -#. 216° - medium blue -#: ../src/common/color_vocabulary.c:303 -msgid "navy blue" -msgstr "כחול חיל הים" - -#: ../src/common/color_vocabulary.c:306 ../src/common/color_vocabulary.c:316 -msgid "deep sky blue" -msgstr "כחול שמיים עמוק" - -#: ../src/common/color_vocabulary.c:307 -msgid "aquamarine blue" -msgstr "כחול אקוומרין" - -#. 240° - blue and 264° - bluer than blue -#. these are collapsed because CIE Lab 1976 sucks for blues -#. 288° - more blue -#: ../src/common/color_vocabulary.c:313 ../src/common/color_vocabulary.c:322 -msgid "dark blue" -msgstr "כחול כהה" - -#: ../src/common/color_vocabulary.c:314 ../src/common/color_vocabulary.c:323 -msgid "medium blue" -msgstr "כחול בינוני" - -#: ../src/common/color_vocabulary.c:315 -msgid "azure blue" -msgstr "כחול אזור" - -#: ../src/common/color_vocabulary.c:325 -msgid "light sky blue" -msgstr "כחול שמיים בהיר" - -#: ../src/common/color_vocabulary.c:326 -msgid "light blue" -msgstr "כחול בהיר" - -#. 312° - violet -#: ../src/common/color_vocabulary.c:331 -msgid "indigo" -msgstr "אינדיגו" - -#: ../src/common/color_vocabulary.c:332 -msgid "dark violet" -msgstr "סגול כהה" - -#: ../src/common/color_vocabulary.c:333 -msgid "blue violet" -msgstr "סגול כחול" - -#: ../src/common/color_vocabulary.c:334 ../src/common/color_vocabulary.c:342 -msgid "violet" -msgstr "סגול" - -#: ../src/common/color_vocabulary.c:335 -msgid "plum" -msgstr "שזיף" - -#: ../src/common/color_vocabulary.c:340 -msgid "dark magenta" -msgstr "מג'נטה כהה" - -#: ../src/common/color_vocabulary.c:341 ../src/gui/guides.c:734 -#: ../src/iop/colorzones.c:2270 ../src/iop/temperature.c:1924 -msgid "magenta" -msgstr "מג'נטה" - -#: ../src/common/color_vocabulary.c:343 -msgid "lavender" -msgstr "לבנדר" - -#: ../src/common/color_vocabulary.c:346 -msgid "color not found" -msgstr "צבע לא נמצא" - -#: ../src/common/colorlabels.c:310 -#, c-format -msgid "colorlabels set to %s" -msgstr "תוויות צבע נקבעו ל %s" - -#: ../src/common/colorlabels.c:312 -msgid "all colorlabels removed" -msgstr "כל תוויות הצבע הוסרו" - -#: ../src/common/colorlabels.c:333 ../src/gui/accelerators.c:170 -#: ../src/libs/image.c:592 -msgid "clear" -msgstr "נקה" - -#. init the category profile with NULL profile, the actual profile must be retrieved dynamically by the caller -#: ../src/common/colorspaces.c:1229 ../src/common/colorspaces.c:1518 -msgid "work profile" -msgstr "פרופיל עבודה" - -#: ../src/common/colorspaces.c:1232 ../src/common/colorspaces.c:1514 -#: ../src/iop/colorout.c:885 -msgid "export profile" -msgstr "פרופיל פלט" - -#: ../src/common/colorspaces.c:1236 ../src/common/colorspaces.c:1516 -#: ../src/views/darkroom.c:2542 -msgid "softproof profile" -msgstr "פרופיל סימולציית הדפסה" - -#: ../src/common/colorspaces.c:1242 ../src/common/colorspaces.c:1498 -msgid "system display profile" -msgstr "פרופיל תצוגת מערכת" - -#: ../src/common/colorspaces.c:1245 ../src/common/colorspaces.c:1520 -msgid "system display profile (second window)" -msgstr "פרופיל תצוגת מערכת (חלון שני)" - -#: ../src/common/colorspaces.c:1255 -msgid "sRGB (web-safe)" -msgstr "sRGB (web-safe)" - -#: ../src/common/colorspaces.c:1269 ../src/common/colorspaces.c:1522 -msgid "Rec709 RGB" -msgstr "Rec709 RGB" - -#: ../src/common/colorspaces.c:1279 -msgid "PQ Rec2020 RGB" -msgstr "PQ Rec2020 RGB" - -#: ../src/common/colorspaces.c:1284 -msgid "HLG Rec2020 RGB" -msgstr "HLG Rec2020 RGB" - -#: ../src/common/colorspaces.c:1289 -msgid "PQ P3 RGB" -msgstr "PQ P3 RGB" - -#: ../src/common/colorspaces.c:1294 -msgid "HLG P3 RGB" -msgstr "HLG P3 RGB" - -#: ../src/common/colorspaces.c:1299 ../src/common/colorspaces.c:1524 -msgid "linear ProPhoto RGB" -msgstr "linear ProPhoto RGB" - -#: ../src/common/colorspaces.c:1304 ../src/common/colorspaces.c:1492 -msgid "linear XYZ" -msgstr "linear XYZ" - -#: ../src/common/colorspaces.c:1308 ../src/common/colorspaces.c:1494 -#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2000 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:267 -msgid "Lab" -msgstr "מעבדה" - -#: ../src/common/colorspaces.c:1313 ../src/common/colorspaces.c:1496 -msgid "linear infrared BGR" -msgstr "לינארי אנפרא אדום BGR" - -#: ../src/common/colorspaces.c:1317 -msgid "BRG (for testing)" -msgstr "BRG (לבדיקה)" - -#: ../src/common/colorspaces.c:1409 -#, c-format -msgid "" -"profile `%s' not usable as histogram profile. it has been replaced by sRGB!" -msgstr "פרופיל `%s' לא קביל כפרופיל היסטוגרמה. הוא הוחלף ע\"י sRGB!" - -#: ../src/common/colorspaces.c:1500 -msgid "embedded ICC profile" -msgstr "פרופיל ICC מוטמע" - -#: ../src/common/colorspaces.c:1502 -msgid "embedded matrix" -msgstr "מטריצה מובנית" - -#: ../src/common/colorspaces.c:1504 -msgid "standard color matrix" -msgstr "מטריצת צבע סטנדרטי" - -#: ../src/common/colorspaces.c:1506 -msgid "enhanced color matrix" -msgstr "מטריצת צבע משופרת" - -#: ../src/common/colorspaces.c:1508 -msgid "vendor color matrix" -msgstr "מטריצת צבע של היצרן" - -#: ../src/common/colorspaces.c:1510 -msgid "alternate color matrix" -msgstr "מטריצת צבע חלופית" - -#: ../src/common/colorspaces.c:1512 -msgid "BRG (experimental)" -msgstr "BRG (נסיוני)" - -#: ../src/common/colorspaces.c:1526 -msgid "PQ Rec2020" -msgstr "PQ Rec2020" - -#: ../src/common/colorspaces.c:1528 -msgid "HLG Rec2020" -msgstr "HLG Rec2020" - -#: ../src/common/colorspaces.c:1530 -msgid "PQ P3" -msgstr "PQ P3" - -#: ../src/common/colorspaces.c:1532 -msgid "HLG P3" -msgstr "HLG P3" - -#: ../src/common/cups_print.c:420 -#, c-format -msgid "file `%s' to print not found for image %d on `%s'" -msgstr "קובץ '%s' להדפסה לא נמצא עבור תמונה %d על '%s'" - -#: ../src/common/cups_print.c:439 -msgid "failed to create temporary file for printing options" -msgstr "הניסיון לייצר קובץ זמני עבור אפשרויות הדפסה נכשל" - -#: ../src/common/cups_print.c:508 -#, c-format -msgid "printing on `%s' cancelled" -msgstr "הדפסה על '%s' בוטלה" - -#: ../src/common/cups_print.c:572 -#, c-format -msgid "error while printing `%s' on `%s'" -msgstr "שגיאה בהדפסת תמונה '%s' על '%s'" - -#: ../src/common/cups_print.c:574 -#, c-format -msgid "printing `%s' on `%s'" -msgstr "מדפיס תמונה '%s' על '%s'" - -#: ../src/common/darktable.c:250 -#, c-format -msgid "found strange path `%s'" -msgstr "נמצא שם נתיב משונה '%s'" - -#: ../src/common/darktable.c:265 -#, c-format -msgid "error loading directory `%s'" -msgstr "שגיאה בהעלאת תיקיה '%s'" - -#: ../src/common/darktable.c:289 -#, c-format -msgid "file `%s' has unknown format!" -msgstr "לקובץ '%s' פורמט לא ידוע!" - -#: ../src/common/darktable.c:302 ../src/control/jobs/control_jobs.c:2118 -#: ../src/control/jobs/control_jobs.c:2177 -#, c-format -msgid "error loading file `%s'" -msgstr "שגיאה בהעלאת קובץ '%s'" - -#: ../src/common/darktable.c:1509 -msgid "configuration information" -msgstr "מידע על הקונפיגורציה" - -#: ../src/common/darktable.c:1511 -msgid "show this information again" -msgstr "הראה מידע זה שוב" - -#: ../src/common/darktable.c:1511 -msgid "understood" -msgstr "מובן" - -#: ../src/common/darktable.c:1968 -msgid "" -"the RCD demosaicer has been defined as default instead of PPG because of " -"better quality and performance." -msgstr "ה RCD demosaicer הוגדר כברירת מחדל במקום PPG מסיבות של איכות וביצועים." - -#: ../src/common/darktable.c:1970 -msgid "see preferences/darkroom/demosaicing for zoomed out darkroom mode" -msgstr "ראה העדפות/חדר חושך/demosaicing עבור מצב חדר חושך מורחק" - -#: ../src/common/darktable.c:1976 -msgid "" -"the user interface and the underlying internals for tuning darktable " -"performance have changed." -msgstr "ממשק המשתמש ורכיבים פנימיים לכוונון ביצועי darktable השתנו." - -#: ../src/common/darktable.c:1978 -msgid "" -"you won't find headroom and friends any longer, instead in preferences/" -"processing use:" -msgstr "לא תמצא יותר מרווח ראש וחברים, במקום בהעדפות/עיבוד השתמש ב:" - -#: ../src/common/darktable.c:1980 -msgid "1) darktable resources" -msgstr "1) משאבי darktable" - -#: ../src/common/darktable.c:1982 -msgid "2) tune OpenCL performance" -msgstr "2) כוונן ביצועי OpenCL" - -#: ../src/common/darktable.c:1989 -msgid "" -"some global config parameters relevant for OpenCL performance are not used " -"any longer." -msgstr "" -"ערכים גלובליים מסוימים הרלוונטים לכוונן ביצועי OpenCL אינם בשימוש יותר." - -#: ../src/common/darktable.c:1991 -msgid "" -"instead you will find 'per device' data in 'cl_device_v4_canonical-name'. " -"content is:" -msgstr "במקום תמצא 'להתקן' ב 'cl_device_v4_canonical-name'. התוכן:" - -#: ../src/common/darktable.c:1993 ../src/common/darktable.c:2012 -msgid "" -" 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" -msgstr "" -" 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" - -#: ../src/common/darktable.c:1995 ../src/common/darktable.c:2014 -msgid "you may tune as before except 'magic'" -msgstr "אפשר לכוונן כבעבר למעט 'magic'" - -#: ../src/common/darktable.c:2001 -msgid "" -"your OpenCL compiler settings for all devices have been reset to default." -msgstr "הגדרות המהדר של OpenCL עבור כל ההתקנים אותחלו לברירת המחדל." - -#: ../src/common/darktable.c:2008 -msgid "" -"OpenCL global config parameters 'per device' data has been recreated with an " -"updated name." -msgstr "" -"פרמטרי קונפיגורציה גלובלים של OpenCL 'לכל התקן' נוצרו מחדש עם שם מעודכן." - -#: ../src/common/darktable.c:2010 -msgid "" -"you will find 'per device' data in 'cl_device_v5_canonical-name'. content is:" -msgstr "תמצא נתונים 'per device' ב 'cl_device_v5_canonical-name'. התוכן הוא:" - -#: ../src/common/darktable.c:2016 -msgid "" -"If you're using device names in 'opencl_device_priority' you should update " -"them to the new names." -msgstr "" -"אם הנך משתמש בשמות התקן ב 'opencl_device_priority' עליך לעדכנם בשמות החדשים." - -#: ../src/common/database.c:2756 -#, c-format -msgid "" -"\n" -" Sorry, darktable could not be started (database is locked)\n" -"\n" -" How to solve this problem?\n" -"\n" -" 1 - If another darktable instance is already open, \n" -" click cancel and either use that instance or close it before " -"attempting to rerun darktable \n" -" (process ID <i><b>%d</b></i> created the database locks)\n" -"\n" -" 2 - If you can't find a running instance of darktable, try restarting your " -"session or your computer. \n" -" This will close all running programs and hopefully close the databases " -"correctly. \n" -"\n" -" 3 - If you have done this or are certain that no other instances of " -"darktable are running, \n" -" this probably means that the last instance was ended abnormally. \n" -" Click on the \"delete database lock files\" button to remove the files " -"<i>data.db.lock</i> and <i>library.db.lock</i>. \n" -"\n" -"\n" -" <i><u>Caution!</u> Do not delete these files without first undertaking " -"the above checks, \n" -" otherwise you risk generating serious inconsistencies in your database." -"</i>\n" -msgstr "" -"\n" -" סליחה, לא ניתן לפתוח את darktable (מסד הנתונים נעול)\n" -"\n" -" איך לפתור את הבעיה?\n" -"\n" -" 1 - אם darktable כבר פתוח במקום אחר, \n" -" לחץ על cancel והשתמש בתוכנה הפתוחה או סגור אותה לפני הרצה מחדש של " -"darktable \n" -" (process ID <i><b>%d</b></i> יצר את נעילת מסד הנתונים)\n" -"\n" -" 2 - אם לא ניתן למצוא darktable פתוח במקום אחר נסה לאתחל את המושב או " -"המחשב. \n" -" זה יסגור את כל התוכנות הפתוחות ובתקווה יסגור את מסד הנתונים באופן " -"מסודר. \n" -"\n" -" 3 - אם כבר ביצעת את הכתוב למעלה או בטוח ש darktable לא פתוח במקום אחר, \n" -" המשמעות היא שכנראה ההפעלה הקודמת הופסקה בצורה לא נורמלית. \n" -" לחץעל \"מחק קבצי נעילת מסד נתונים\" להסרת הקבצים <i>data.db.lock</i> " -"and <i>library.db.lock</i>. \n" -"\n" -"\n" -" <i><u>זהירות!</u> אל תמחק את הקבצים לפני ביצוע הבדיקות למעלה, \n" -" אחרת אתה מסתכן ביצירת חוסר עקביות במסד הנתונים.</i>\n" - -#. clang-format on -#: ../src/common/database.c:2777 -msgid "error starting darktable" -msgstr "שגיאה בפתיחת darktable" - -#: ../src/common/database.c:2778 ../src/libs/collect.c:2915 -#: ../src/libs/export_metadata.c:288 ../src/libs/import.c:1702 -#: ../src/libs/metadata.c:633 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:227 ../src/libs/modulegroups.c:3464 -#: ../src/libs/styles.c:438 ../src/libs/styles.c:621 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3471 -msgid "cancel" -msgstr "בטל" - -#: ../src/common/database.c:2778 -msgid "delete database lock files" -msgstr "מחק את קבצי נעילת מסד הנתונים" - -#: ../src/common/database.c:2784 -msgid "are you sure?" -msgstr "אתה בטוח?" - -#: ../src/common/database.c:2785 -msgid "" -"\n" -"do you really want to delete the lock files?\n" -msgstr "" -"\n" -"האם את בטוחה שברצונך למחוק את קבצי הנעילה?\n" - -#: ../src/common/database.c:2785 ../src/common/variables.c:703 -#: ../src/develop/imageop_gui.c:210 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 -msgid "yes" -msgstr "כן" - -#: ../src/common/database.c:2801 ../src/libs/export_metadata.c:164 -#: ../src/libs/geotagging.c:811 -msgid "done" -msgstr "בוצע" - -#: ../src/common/database.c:2802 -msgid "" -"\n" -"successfully deleted the lock files.\n" -"you can now restart darktable\n" -msgstr "" -"\n" -"קבצי הנעילה נמחקו בהצלחה.\n" -"ניתן לפתוח מחדש את darktable\n" - -#. the button to close the popup -#: ../src/common/database.c:2803 ../src/common/database.c:2810 -#: ../src/libs/filters/filename.c:452 -msgid "ok" -msgstr "ok" - -#: ../src/common/database.c:2806 -msgid "error" -msgstr "שגיאה" - -#: ../src/common/database.c:2807 -#, c-format -msgid "" -"\n" -"at least one file could not be removed.\n" -"you may try to manually delete the files <i>data.db.lock</i> and <i>library." -"db.lock</i>\n" -"in folder <a href=\"file:///%s\">%s</a>.\n" -msgstr "" -"\n" -"לפחות קובץ אחד לא הוסר.\n" -"אתה יכול לנסות למחוק ידנית את הקבצים <i>data.db.lock</i> and <i>library.db." -"lock</i>\n" -"בתיקייה <a href=\"file:///%s\">%s</a>.\n" - -#: ../src/common/database.c:2924 -#, c-format -msgid "" -"the database lock file contains a pid that seems to be alive in your system: " -"%d" -msgstr "קובץ הנעילה (lock file) של מסד הנתונים מכיל pid שנראה חי במערכת: %d" - -#: ../src/common/database.c:2931 -#, c-format -msgid "the database lock file seems to be empty" -msgstr "קובץ הנעילה (lock file) של מסד הנתונים נראה ריק" - -#: ../src/common/database.c:2941 -#, c-format -msgid "error opening the database lock file for reading: %s" -msgstr "שגיאה במהלך פתיחת קובץ הנעילה (lock file) של מסד הנתונים לקריאה: %s" - -#. the database has to be upgraded, let's ask user -#: ../src/common/database.c:2978 -#, c-format -msgid "" -"the database schema has to be upgraded for\n" -"\n" -"<span style='italic'>%s</span>\n" -"\n" -"this might take a long time in case of a large database\n" -"\n" -"do you want to proceed or quit now to do a backup\n" -msgstr "" -"הסכמה של מסד הנתונים חייבת להשתדרג עבור\n" -"\n" -"<span style=\"italic\">%s</span>\n" -"\n" -"פעולה זו עשויה להמשך זמן רב עבור מסד נתונים גדול\n" -"\n" -"האם ברצונך להמשיך או לוותר עכשיו על מנת לבצע גיבוי\n" - -#: ../src/common/database.c:2986 -msgid "darktable - schema migration" -msgstr "darktable - הגירת סכימה" - -#: ../src/common/database.c:2987 ../src/common/database.c:3306 -#: ../src/common/database.c:3324 ../src/common/database.c:3491 -#: ../src/common/database.c:3509 -msgid "close darktable" -msgstr "סגור את darktable" - -#: ../src/common/database.c:2987 -msgid "upgrade database" -msgstr "שדרוג מסד נתונים" - -#: ../src/common/database.c:3286 ../src/common/database.c:3471 -#, c-format -msgid "" -"quick_check said:\n" -"%s \n" -msgstr "" -"quick_check said:\n" -"%s \n" - -#: ../src/common/database.c:3303 ../src/common/database.c:3321 -#: ../src/common/database.c:3488 ../src/common/database.c:3506 -msgid "darktable - error opening database" -msgstr "שגיאה בפתיחת מסד נתונים - darktable" - -#: ../src/common/database.c:3308 ../src/common/database.c:3493 -msgid "attempt restore" -msgstr "נסה שחזור" - -#: ../src/common/database.c:3310 ../src/common/database.c:3326 -#: ../src/common/database.c:3495 ../src/common/database.c:3511 -msgid "delete database" -msgstr "מחק מסד נתונים" - -#: ../src/common/database.c:3314 ../src/common/database.c:3499 -msgid "" -"do you want to close darktable now to manually restore\n" -"the database from a backup, attempt an automatic restore\n" -"from the most recent snapshot or delete the corrupted database\n" -"and start with a new one?" -msgstr "" -"האם ברצונך לסגור את darktable כעת על מנת לשחזר\n" -"את מסד הנתונים מגיבוי, לנסות שחזור אוטומטי\n" -"מקובץ צילום המצב האחרון או למחוק את מסד הנתונים התקול\n" -"ולהתחיל עם קובץ חדש?" - -#: ../src/common/database.c:3330 ../src/common/database.c:3515 -msgid "" -"do you want to close darktable now to manually restore\n" -"the database from a backup or delete the corrupted database\n" -"and start with a new one?" -msgstr "" -"האם ברצונך לסגור את darktable כעת לצורך שחזור ידני\n" -"של מסד הנתונים מגיבוי או למחוק את מסד הנתונים התקול\n" -"ולהתחיל עם קובץ חדש?" - -#: ../src/common/database.c:3337 ../src/common/database.c:3520 -#, c-format -msgid "" -"an error has occurred while trying to open the database from\n" -"\n" -"<span style='italic'>%s</span>\n" -"\n" -"it seems that the database is corrupted.\n" -"%s%s" -msgstr "" -"ארעה שגיאה במהלך ניסיון פתיחת מסד הנתונים מ\n" -"\n" -"<span style=\"italic\">%s</span>\n" -"\n" -"נראה שמסד הנתונים אינו תקין.\n" -"%s%s" - -#: ../src/common/eigf.h:288 -msgid "" -"fast exposure independent guided filter failed to allocate memory, check " -"your RAM settings" -msgstr "" -"פילטר חשיפה מהירה בלתי תלוי מונחה כשל בהקצאת זיכרון, בדוק את הגדרות ה RAM" - -#: ../src/common/exif.cc:5186 -#, c-format -msgid "cannot read XMP file '%s': '%s'" -msgstr "לא יכול לקרוא קובץ XMP '%s': '%s'" - -#: ../src/common/exif.cc:5244 -#, c-format -msgid "cannot write XMP file '%s': '%s'" -msgstr "לא יכול לכתוב קובץ XMP '%s': '%s'" - -#: ../src/common/fast_guided_filter.h:316 -msgid "fast guided filter failed to allocate memory, check your RAM settings" -msgstr "פילטר מונחה מהיר כשל בהקצאת זיכרון, בדוק את הגדרות ה RAM" - -#: ../src/common/film.c:345 -msgid "do you want to remove this empty directory?" -msgid_plural "do you want to remove these empty directories?" -msgstr[0] "האם באמת ברצונך להסיר ספריה ריקה זו?" -msgstr[1] "האם באמת ברצונך להסיר ספריות ריקות אלו?" - -#: ../src/common/film.c:352 -msgid "remove empty directory?" -msgid_plural "remove empty directories?" -msgstr[0] "הסר ספריה ריקה?" -msgstr[1] "הסר ספריות ריקות?" - -#: ../src/common/film.c:371 ../src/gui/preferences.c:816 -#: ../src/gui/styles_dialog.c:548 ../src/libs/geotagging.c:829 -#: ../src/libs/import.c:1551 -msgid "name" -msgstr "שם" - -#: ../src/common/film.c:477 -msgid "" -"cannot remove film roll having local copies with non accessible originals" -msgstr "לא ניתן להסיר גליל פילם המכיל קבצים מקומיים ללא קבצי מקור זמינים" - -#: ../src/common/history.c:840 -msgid "you need to copy history from an image before you paste it onto another" -msgstr "צריך ראשית להעתיק את ההיסטוריה מהקובץ לפני הדבקתו לאחר" - -#: ../src/common/image.c:325 -msgid "orphaned image" -msgstr "תמונה יתומה" - -#: ../src/common/image.c:620 -#, c-format -msgid "geo-location undone for %d image" -msgid_plural "geo-location undone for %d images" -msgstr[0] "גיאו-מיקום בוטל עבור תמונה %d" -msgstr[1] "גיאו-מיקום בוטל עבור %d תמונות" - -#: ../src/common/image.c:622 -#, c-format -msgid "geo-location re-applied to %d image" -msgid_plural "geo-location re-applied to %d images" -msgstr[0] "גיאו-מיקום יושם מחדש לתמונה %d" -msgstr[1] "גיאו-מיקום יושם מחדש ל %d תמונות" - -#: ../src/common/image.c:645 -#, c-format -msgid "date/time undone for %d image" -msgid_plural "date/time undone for %d images" -msgstr[0] "תאריך/זמן בוטל לתמונה %d" -msgstr[1] "תאריך/זמן בוטל לתמונות %d" - -#: ../src/common/image.c:647 -#, c-format -msgid "date/time re-applied to %d image" -msgid_plural "date/time re-applied to %d images" -msgstr[0] "תאריך/זמן יושם מחדש לתמונה %d" -msgstr[1] "תאריך/זמן יושם מחדש לתמונות %d" - -#: ../src/common/image.c:2188 -#, c-format -msgid "cannot access local copy `%s'" -msgstr "אין אפשרות גישה לעותק מקומי `%s'" - -#: ../src/common/image.c:2195 -#, c-format -msgid "cannot write local copy `%s'" -msgstr "אין אפשרות לכתוב עותק מקומי `%s'" - -#: ../src/common/image.c:2202 -#, c-format -msgid "error moving local copy `%s' -> `%s'" -msgstr "שגיאה בהעברת עותק מקומי `%s' -> `%s'" - -#: ../src/common/image.c:2219 -#, c-format -msgid "error moving `%s': file not found" -msgstr "שגיאה בהעברת '%s': קובץ לא נמצא" - -#: ../src/common/image.c:2229 -#, c-format -msgid "error moving `%s' -> `%s': file exists" -msgstr "שגיאה בהעברת `%s' -> `%s': הקובץ קיים" - -#: ../src/common/image.c:2233 -#, c-format -msgid "error moving `%s' -> `%s'" -msgstr "שגיאת העברה `%s' -> `%s'" - -#: ../src/common/image.c:2562 -msgid "cannot create local copy when the original file is not accessible." -msgstr "אין אפשרות ליצור עותק מקומי כאשר קובץ המקור אינו זמין." - -#: ../src/common/image.c:2576 -msgid "cannot create local copy." -msgstr "אין אפשרות ליצור עותק מקומי." - -#: ../src/common/image.c:2656 ../src/control/jobs/control_jobs.c:777 -msgid "cannot remove local copy when the original file is not accessible." -msgstr "לא ניתן להסיר עותק מקומי כאשר ה קובץ המקורי אינו זמין." - -#: ../src/common/image.c:2821 -#, c-format -msgid "%d local copy has been synchronized" -msgid_plural "%d local copies have been synchronized" -msgstr[0] "%d עותק מקומי סונכרן" -msgstr[1] "%d עותקים מקומיים סונכרנו" - -#: ../src/common/image.c:3022 -msgid "<b>WARNING</b>: camera is missing samples!" -msgstr "<b>הזהרה</b>: המצלמה חסרה דוגמאות!" - -#: ../src/common/image.c:3023 -msgid "" -"You must provide samples in <a href='https://raw.pixls.us/'>https://raw." -"pixls.us/</a>" -msgstr "" -"חובה לספק דוגמאות ב <a href='https://raw.pixls.us/'>https://raw.pixls.us/</a>" - -#: ../src/common/image.c:3024 -#, c-format -msgid "" -"for `%s' `%s'\n" -"in as many format/compression/bit depths as possible" -msgstr "" -"עבור `%s' `%s'\n" -"במגוון גדול ככל האפשר של פורמטים/דחיסה/טווח דינמי(bit depths)" - -#: ../src/common/image.c:3027 -msgid "or the <b>RAW won't be readable</b> in next version." -msgstr "או ש <b>RAW יהיה בלתי קריא</b> בגרסה הבאה." - -#: ../src/common/image.h:209 ../src/common/ratings.c:284 -#: ../src/libs/history.c:843 ../src/libs/snapshots.c:779 -msgid "unknown" -msgstr "לא ידוע" - -#. EMPTY_FIELD -#: ../src/common/image.h:210 -msgid "tiff" -msgstr "tiff" - -#: ../src/common/image.h:211 -msgid "png" -msgstr "png" - -#: ../src/common/image.h:212 ../src/imageio/format/j2k.c:652 -msgid "j2k" -msgstr "j2k" - -#: ../src/common/image.h:213 -msgid "jpeg" -msgstr "jpeg" - -#: ../src/common/image.h:214 -msgid "exr" -msgstr "exr" - -#: ../src/common/image.h:215 -msgid "rgbe" -msgstr "rgbe" - -#: ../src/common/image.h:216 -msgid "pfm" -msgstr "pfm" - -#: ../src/common/image.h:217 -msgid "GraphicsMagick" -msgstr "GraphicsMagick" - -#: ../src/common/image.h:218 -msgid "rawspeed" -msgstr "rawspeed" - -#: ../src/common/image.h:219 -msgid "netpnm" -msgstr "netpnm" - -#: ../src/common/image.h:220 -msgid "avif" -msgstr "avif" - -#: ../src/common/image.h:221 -msgid "ImageMagick" -msgstr "ImageMagick" - -#: ../src/common/image.h:222 -msgid "heif" -msgstr "heif" - -#: ../src/common/image.h:223 -msgid "libraw" -msgstr "libraw" - -#: ../src/common/image.h:224 -msgid "webp" -msgstr "webp" - -#: ../src/common/image.h:225 -msgid "jpeg xl" -msgstr "jpeg xl" - -#: ../src/common/image.h:226 -msgid "QOI" -msgstr "QOI" - -#: ../src/common/imagebuf.c:132 -msgid "insufficient memory" -msgstr "זיכרון בלתי מספיק" - -#: ../src/common/imagebuf.c:133 -msgid "" -"this module was unable to allocate\n" -"all of the memory required to process\n" -"the image. some or all processing\n" -"has been skipped." -msgstr "" -"מודול זה לא הצליח לאתר\n" -"את כמות הזיכרון הנדרשת לעיבוד\n" -"התמונה. חלק או כל העיבוד\n" -"לא יתבצע." - -#: ../src/common/import_session.c:308 -msgid "" -"couldn't expand to a unique filename for session, please check your import " -"session settings." -msgstr "לא ניתן להתרחב לשם קובץ יחיד עבור המושב, אנה בדוק הגדרות ייבוא מושב." - -#: ../src/common/import_session.c:401 -msgid "requested session path not available. device not mounted?" -msgstr "נתיב המושב המבוקש לא זמין. התקן לא מוגדר ככונן?" - -#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:197 -msgid "legacy" -msgstr "מורשת" - -#: ../src/common/iop_order.c:61 -msgid "v3.0 RAW" -msgstr "v3.0 RAW" - -#: ../src/common/iop_order.c:62 -msgid "v3.0 JPEG" -msgstr "v3.0 JPEG" - -#: ../src/common/iop_profile.c:1205 -#, c-format -msgid "" -"darktable loads %s from\n" -"<b>%s</b>\n" -"or, if this directory does not exist, from\n" -"<b>%s</b>" -msgstr "" -"darktable טוען %s מתוך\n" -"<b>%s</b>\n" -"או אם התיקיה לא קיימת, מתוך\n" -"<b>%s</b>" - -#. clang-format off -#: ../src/common/metadata.c:46 -msgid "creator" -msgstr "יוצר" - -#: ../src/common/metadata.c:47 -msgid "publisher" -msgstr "מפרסם" - -#. title -#: ../src/common/metadata.c:48 ../src/imageio/format/pdf.c:574 -#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:169 -#: ../src/imageio/storage/gallery.c:170 ../src/imageio/storage/latex.c:169 -#: ../src/imageio/storage/piwigo.c:1058 ../src/libs/filtering.c:69 -msgid "title" -msgstr "כותרת" - -#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:552 -#: ../src/libs/filtering.c:70 -msgid "description" -msgstr "תאור" - -#: ../src/common/metadata.c:50 -msgid "rights" -msgstr "זכויות" - -#: ../src/common/metadata.c:51 -msgid "notes" -msgstr "הערות" - -#: ../src/common/metadata.c:52 -msgid "version name" -msgstr "שם גרסה" - -#: ../src/common/metadata.c:53 ../src/libs/live_view.c:319 -#: ../src/libs/metadata_view.c:124 -msgid "image id" -msgstr "מזהה תמונה" - -#: ../src/common/mipmap_cache.c:1065 ../src/imageio/imageio.c:787 -#, c-format -msgid "image `%s' is not available!" -msgstr "תמונה '%s' לא זמינה!" - -#: ../src/common/noiseprofiles.c:26 -msgid "generic poissonian" -msgstr "פואסוני פשוט" - -#: ../src/common/noiseprofiles.c:61 -#, c-format -msgid "noiseprofile file `%s' is not valid" -msgstr "קובץ פרופיל צבע `%s' אינו חוקי" - -#: ../src/common/opencl.c:1376 -#, c-format -msgid "" -"OpenCL initializing problem:\n" -"%s" -msgstr "" -"בעיה באתחול OpenCL:\n" -"%s" - -#: ../src/common/opencl.c:1439 -msgid "" -"due to a slow GPU hardware acceleration using OpenCL has been deactivated" -msgstr "בשל חומרת GPU חלשה האצה בחומרה OpenCL נוטרלה" - -#: ../src/common/opencl.c:1449 -msgid "" -"multiple GPUs detected - OpenCL scheduling profile has been set accordingly" -msgstr "נתגלו כרטיסים גרפיים מרובים - פרופיל התזמון של OpenCL הוגדר בהתאם" - -#: ../src/common/opencl.c:1462 -msgid "" -"very fast GPU detected - OpenCL scheduling profile has been set accordingly" -msgstr "נתגלה כרטיס גרפי מהיר מאד - פרופיל התזמון של OpenCL הוגדר בהתאם" - -#: ../src/common/opencl.c:1471 -msgid "OpenCL scheduling profile set to default" -msgstr "פרופיל התזמון של OpenCL הוגדר לברירת המחדל" - -#: ../src/common/pdf.h:88 ../src/iop/lens.cc:3441 -#: ../src/libs/filters/focal.c:74 ../src/libs/print_settings.c:81 -msgid "mm" -msgstr "מ\"מ" - -#: ../src/common/pdf.h:89 ../src/libs/export.c:520 ../src/libs/export.c:1145 -#: ../src/libs/print_settings.c:81 -msgid "cm" -msgstr "ס\"מ" - -#: ../src/common/pdf.h:90 ../src/libs/print_settings.c:81 -msgid "inch" -msgstr "אינצ'" - -#: ../src/common/pdf.h:91 -msgid "\"" -msgstr "\"" - -#: ../src/common/pdf.h:104 ../src/iop/borders.c:958 -msgid "A4" -msgstr "A4" - -#: ../src/common/pdf.h:105 -msgid "A3" -msgstr "A3" - -#: ../src/common/pdf.h:106 -msgid "Letter" -msgstr "Letter" - -#: ../src/common/pdf.h:107 -msgid "Legal" -msgstr "Legal" - -#: ../src/common/pwstorage/pwstorage.c:85 -msgid "GNOME Keyring backend is no longer supported. configure a different one" -msgstr "תשתית GNOME Keyring אינה נתמכת עוד. הגדר אחרת" - -#: ../src/common/ratings.c:172 -#, c-format -msgid "rejecting %d image" -msgid_plural "rejecting %d images" -msgstr[0] "תמונה %d נדחתה" -msgstr[1] "תמונות %d נדחו" - -#: ../src/common/ratings.c:174 -#, c-format -msgid "applying rating %d to %d image" -msgid_plural "applying rating %d to %d images" -msgstr[0] "מיישם דירוג %d לתמונה %d" -msgstr[1] "מיישם דירוג %d לתמונות %d" - -#: ../src/common/ratings.c:221 -msgid "no images selected to apply rating" -msgstr "לא נבחרו תמונות לדירוג" - -#: ../src/common/ratings.c:275 ../src/libs/metadata_view.c:351 -msgid "image rejected" -msgstr "תמונה נדחתה" - -#: ../src/common/ratings.c:277 -msgid "image rated to 0 star" -msgstr "תמונה דורגה 0 כוכבים" - -#: ../src/common/ratings.c:279 -#, c-format -msgid "image rated to %s" -msgstr "תמונה דורגה ל %s" - -#: ../src/common/ratings.c:306 ../src/libs/select.c:39 -#: ../src/views/lighttable.c:766 -msgid "select" -msgstr "בחר" - -#: ../src/common/ratings.c:307 -msgid "upgrade" -msgstr "שדרג" - -#: ../src/common/ratings.c:308 -msgid "downgrade" -msgstr "שנמוך" - -#: ../src/common/ratings.c:312 -msgid "zero" -msgstr "אפס" - -#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:277 -msgid "one" -msgstr "אחד" - -#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:278 -msgid "two" -msgstr "שניים" - -#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:279 -msgid "three" -msgstr "שלוש" - -#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:280 -msgid "four" -msgstr "ארבע" - -#: ../src/common/ratings.c:317 ../src/libs/filters/rating_range.c:281 -msgid "five" -msgstr "חמש" - -#: ../src/common/ratings.c:318 -msgid "reject" -msgstr "דחה" - -#: ../src/common/styles.c:244 -#, c-format -msgid "style with name '%s' already exists" -msgstr "סגנון בשם '%s' כבר קיים" - -#: ../src/common/styles.c:270 ../src/common/styles.c:1776 -#: ../src/libs/styles.c:54 -msgid "styles" -msgstr "סגנונות" - -#: ../src/common/styles.c:548 ../src/gui/styles_dialog.c:239 -#, c-format -msgid "style named '%s' successfully created" -msgstr "סגנון בשם '%s' נוצר בהצלחה" - -#: ../src/common/styles.c:689 ../src/common/styles.c:719 -#: ../src/common/styles.c:759 ../src/dtgtk/culling.c:1097 -msgid "no image selected!" -msgstr "לא נבחרו תמונות!" - -#: ../src/common/styles.c:693 -#, c-format -msgid "style %s successfully applied!" -msgstr "סגנון %s נשמר בהצלחה!" - -#: ../src/common/styles.c:709 -msgid "no images nor styles selected!" -msgstr "לא נבחרו תמונות או סגנונות!" - -#: ../src/common/styles.c:714 -msgid "no styles selected!" -msgstr "לא נבחרו סגנונות!" - -#: ../src/common/styles.c:744 -msgid "style successfully applied!" -msgid_plural "styles successfully applied!" -msgstr[0] "סגנון %s יושם בהצלחה!" -msgstr[1] "סגנונות %s יושמו בהצלחה!" - -#: ../src/common/styles.c:840 -#, c-format -msgid "module `%s' version mismatch: %d != %d" -msgstr "מודול `%s' חוסר התאמה בגרסאות: %d != %d" - -#: ../src/common/styles.c:1124 -#, c-format -msgid "applied style `%s' on current image" -msgstr "סגנון `%s' יושם על התמונה הנוכחית" - -#: ../src/common/styles.c:1378 -#, c-format -msgid "failed to overwrite style file for %s" -msgstr "הניסיון לדרוס קובץ סגנון כשל עבור %s" - -#: ../src/common/styles.c:1384 -#, c-format -msgid "style file for %s exists" -msgstr "קובץ סגנון עבור %s קיים" - -#: ../src/common/styles.c:1667 -#, c-format -msgid "style %s was successfully imported" -msgstr "סגנון %s יובא בהצלחה" - -#. Failed to open file, clean up. -#: ../src/common/styles.c:1711 -#, c-format -msgid "could not read file `%s'" -msgstr "לא ניתן לקרוא קובץ `%s'" - -#: ../src/common/utility.c:505 -msgid "above sea level" -msgstr "מעל גובה פני הים" - -#: ../src/common/utility.c:506 -msgid "below sea level" -msgstr "מתחת גובה פני הים" - -#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:880 -msgid "m" -msgstr "מ'" - -#. Column 1 - "make" of the camera. -#. * Column 2 - "model" (use the "make" and "model" as provided by DCRaw). -#. * Column 3 - WB name. -#. * Column 4 - Fine tuning. MUST be in increasing order. 0 for no fine tuning. -#. * It is enough to give only the extreme values, the other values -#. * will be interpolated. -#. * Column 5 - Channel multipliers. -#. * -#. * Minolta's ALPHA and MAXXUM models are treated as the Dynax model. -#. * -#. * WB name is standardized to one of the following: -#. "Sunlight" and other variation should be switched to this: -#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:323 -msgid "daylight" -msgstr "אור יום" - -#. Probably same as above: -#: ../src/common/wb_presets.c:44 -msgid "direct sunlight" -msgstr "אור שמש ישיר" - -#: ../src/common/wb_presets.c:45 -msgid "cloudy" -msgstr "מעונן" - -#. "Shadows" should be switched to this: -#: ../src/common/wb_presets.c:47 -msgid "shade" -msgstr "מוצל" - -#: ../src/common/wb_presets.c:48 -msgid "incandescent" -msgstr "נורת להט" - -#: ../src/common/wb_presets.c:49 -msgid "incandescent warm" -msgstr "נורת להט חם" - -#. Same as "Incandescent": -#: ../src/common/wb_presets.c:51 -msgid "tungsten" -msgstr "טונגסטן" - -#: ../src/common/wb_presets.c:52 -msgid "fluorescent" -msgstr "פלוריסנט" - -#. In Canon cameras and some newer Nikon cameras: -#: ../src/common/wb_presets.c:54 -msgid "fluorescent high" -msgstr "פלוריסנט חזק" - -#: ../src/common/wb_presets.c:55 -msgid "cool white fluorescent" -msgstr "פלוריסנט לבן קר" - -#: ../src/common/wb_presets.c:56 -msgid "warm white fluorescent" -msgstr "פלוריסנט לבן חם" - -#: ../src/common/wb_presets.c:57 -msgid "daylight fluorescent" -msgstr "פלוריסנט אור יום" - -#: ../src/common/wb_presets.c:58 -msgid "neutral fluorescent" -msgstr "פלוריסנט ניטראלי" - -#: ../src/common/wb_presets.c:59 -msgid "white fluorescent" -msgstr "פלוריסנט לבן" - -#. In some newer Nikon cameras: -#: ../src/common/wb_presets.c:61 -msgid "sodium-vapor fluorescent" -msgstr "פלוריסנט אדי סודיום" - -#: ../src/common/wb_presets.c:62 -msgid "day white fluorescent" -msgstr "פלוריסנט אור יום" - -#: ../src/common/wb_presets.c:63 -msgid "high temp. mercury-vapor fluorescent" -msgstr "חום גבוהה. פלורסנט אדי כספית" - -#. found in Nikon Coolpix P1000 -#: ../src/common/wb_presets.c:65 -msgid "high temp. mercury-vapor" -msgstr "חום גבוהה. אדי כספית" - -#. On Some Panasonic -#: ../src/common/wb_presets.c:67 -msgid "D55" -msgstr "D55" - -#: ../src/common/wb_presets.c:69 -msgid "flash" -msgstr "מבזק" - -#. For Olympus with no real "Flash" preset: -#: ../src/common/wb_presets.c:71 -msgid "flash (auto mode)" -msgstr "מבזק (מצב אוטו')" - -#: ../src/common/wb_presets.c:72 -msgid "evening sun" -msgstr "שמש בין ערביים" - -#: ../src/common/wb_presets.c:73 -msgid "underwater" -msgstr "מתחת למים" - -#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2447 -msgid "black & white" -msgstr "שחור לבן" - -#: ../src/common/wb_presets.c:76 -msgid "spot WB" -msgstr "איזון לבן (WB) נקודתי" - -#: ../src/common/wb_presets.c:77 -msgid "manual WB" -msgstr "איזון לבן (WB) ידני" - -#: ../src/common/wb_presets.c:78 -msgid "camera WB" -msgstr "איזון לבן (WB) מצלמה" - -#: ../src/common/wb_presets.c:79 -msgid "auto WB" -msgstr "איזון לבן (WB) אוטו'" - -#: ../src/control/control.c:66 ../src/gui/accelerators.c:138 -#: ../src/views/darkroom.c:2162 -msgid "hold" -msgstr "החזק" - -#: ../src/control/control.c:102 ../src/control/control.c:205 -msgid "modifiers" -msgstr "משנים" - -#: ../src/control/control.c:111 -msgctxt "accel" -msgid "global" -msgstr "גלובלי" - -#: ../src/control/control.c:118 -msgctxt "accel" -msgid "views" -msgstr "תצוגות" - -#: ../src/control/control.c:125 -msgctxt "accel" -msgid "thumbtable" -msgstr "תמונה ממוזערת" - -#: ../src/control/control.c:132 -msgctxt "accel" -msgid "utility modules" -msgstr "מודולי שירות" - -#: ../src/control/control.c:139 -msgctxt "accel" -msgid "format" -msgstr "פורמט" - -#: ../src/control/control.c:146 -msgctxt "accel" -msgid "storage" -msgstr "אחסון" - -#: ../src/control/control.c:153 -msgctxt "accel" -msgid "processing modules" -msgstr "מודולי עיבוד" - -#: ../src/control/control.c:160 -msgctxt "accel" -msgid "<blending>" -msgstr "<blending>" - -#: ../src/control/control.c:167 -msgctxt "accel" -msgid "Lua scripts" -msgstr "סקריפטים lua" - -#: ../src/control/control.c:174 -msgctxt "accel" -msgid "fallbacks" -msgstr "ברירות מחדל" - -#: ../src/control/control.c:183 -msgctxt "accel" -msgid "<focused>" -msgstr "<focused>" - -#: ../src/control/control.c:202 -msgid "show accels window" -msgstr "הצג חלון האצות" - -#: ../src/control/control.c:363 -msgid "working..." -msgstr "עובד..." - -#: ../src/control/crawler.c:425 -#, c-format -msgid "ERROR: %s NOT synced XMP → DB" -msgstr "ERROR: %s NOT synced XMP → DB" - -#: ../src/control/crawler.c:426 ../src/control/crawler.c:492 -#: ../src/control/crawler.c:561 -msgid "" -"ERROR: cannot write the database. the destination may be full, offline or " -"read-only." -msgstr "" -"שגיאה: לא ניתן לכתוב למסד הנתונים. ייתכן שהיעד מלא, לא מכוון או לקריאה בלבד." - -#: ../src/control/crawler.c:433 -#, c-format -msgid "SUCCESS: %s synced XMP → DB" -msgstr "SUCCESS: %s synced XMP → DB" - -#: ../src/control/crawler.c:455 -#, c-format -msgid "ERROR: %s NOT synced DB → XMP" -msgstr "ERROR: %s NOT synced DB → XMP" - -#: ../src/control/crawler.c:457 ../src/control/crawler.c:516 -#: ../src/control/crawler.c:582 -#, c-format -msgid "" -"ERROR: cannot write %s \n" -"the destination may be full, offline or read-only." -msgstr "" -"שגיאה: לא ניתן לכתוב %s\n" -"ייתכן שהיעד מלא, לא מכוון או לקריאה בלבד." - -#: ../src/control/crawler.c:463 -#, c-format -msgid "SUCCESS: %s synced DB → XMP" -msgstr "SUCCESS: %s synced DB → XMP" - -#: ../src/control/crawler.c:489 -#, c-format -msgid "ERROR: %s NOT synced new (XMP) → old (DB)" -msgstr "ERROR: %s NOT synced new (XMP) → old (DB)" - -#: ../src/control/crawler.c:499 -#, c-format -msgid "SUCCESS: %s synced new (XMP) → old (DB)" -msgstr "SUCCESS: %s synced new (XMP) → old (DB)" - -#: ../src/control/crawler.c:513 -#, c-format -msgid "ERROR: %s NOT synced new (DB) → old (XMP)" -msgstr "ERROR: %s NOT synced new (DB) → old (XMP)" - -#: ../src/control/crawler.c:521 -#, c-format -msgid "SUCCESS: %s synced new (DB) → old (XMP)" -msgstr "SUCCESS: %s synced new (DB) → old (XMP)" - -#: ../src/control/crawler.c:530 ../src/control/crawler.c:598 -#, c-format -msgid "EXCEPTION: %s has inconsistent timestamps" -msgstr "EXCEPTION: %s has inconsistent timestamps" - -#: ../src/control/crawler.c:558 -#, c-format -msgid "ERROR: %s NOT synced old (XMP) → new (DB)" -msgstr "ERROR: %s NOT synced old (XMP) → new (DB)" - -#: ../src/control/crawler.c:567 -#, c-format -msgid "SUCCESS: %s synced old (XMP) → new (DB)" -msgstr "SUCCESS: %s synced old (XMP) → new (DB)" - -#: ../src/control/crawler.c:579 -#, c-format -msgid "ERROR: %s NOT synced old (DB) → new (XMP)" -msgstr "ERROR: %s NOT synced old (DB) → new (XMP)" - -#: ../src/control/crawler.c:588 -#, c-format -msgid "SUCCESS: %s synced old (DB) → new (XMP)" -msgstr "SUCCESS: %s synced old (DB) → new (XMP)" - -#: ../src/control/crawler.c:670 -#, c-format -msgid "%id %02dh %02dm %02ds" -msgstr "%id %02dh %02dm %02ds" - -#: ../src/control/crawler.c:740 ../src/imageio/storage/disk.c:168 -#: ../src/imageio/storage/gallery.c:154 ../src/imageio/storage/latex.c:153 -#: ../src/imageio/storage/latex.c:171 -msgid "path" -msgstr "נתיב" - -#: ../src/control/crawler.c:749 -msgid "XMP timestamp" -msgstr "חותם זמן של XMP" - -#: ../src/control/crawler.c:754 -msgid "database timestamp" -msgstr "חותם זמן של מסד הנתונים" - -#: ../src/control/crawler.c:759 -msgid "newest" -msgstr "חדש ביותר" - -#: ../src/control/crawler.c:765 -msgid "time difference" -msgstr "הפרש זמן" - -#: ../src/control/crawler.c:777 -msgid "updated XMP sidecar files found" -msgstr "קובץ XMP נלווה מעודכן נמצא" - -#: ../src/control/crawler.c:778 -msgid "_close" -msgstr "_סגור" - -#. setup selection accelerators -#. action-box -#: ../src/control/crawler.c:793 ../src/dtgtk/thumbtable.c:2578 -#: ../src/libs/import.c:1722 ../src/libs/select.c:135 -msgid "select all" -msgstr "בחר הכל" - -#: ../src/control/crawler.c:794 ../src/dtgtk/thumbtable.c:2580 -#: ../src/libs/import.c:1726 ../src/libs/select.c:139 -msgid "select none" -msgstr "בחר כלום" - -#: ../src/control/crawler.c:795 ../src/dtgtk/thumbtable.c:2582 -#: ../src/libs/select.c:143 -msgid "invert selection" -msgstr "הפוך בחירה" - -#: ../src/control/crawler.c:807 -msgid "on the selection:" -msgstr "על הבחירה:" - -#: ../src/control/crawler.c:808 -msgid "keep the XMP edit" -msgstr "שמור עריכת XMP" - -#: ../src/control/crawler.c:809 -msgid "keep the database edit" -msgstr "שמור את עריכת מסד נתונים" - -#: ../src/control/crawler.c:810 -msgid "keep the newest edit" -msgstr "שמור את העריכה החדשה ביותר" - -#: ../src/control/crawler.c:811 -msgid "keep the oldest edit" -msgstr "שמור את העריכה הישנה ביותר" - -#: ../src/control/crawler.c:836 -msgid "synchronization log" -msgstr "יומן סנכרון" - -#: ../src/control/jobs/camera_jobs.c:80 -#, c-format -msgid "capturing %d image" -msgid_plural "capturing %d images" -msgstr[0] "רוכש %d תמונה" -msgstr[1] "רוכש %d תמונות" - -#: ../src/control/jobs/camera_jobs.c:114 -msgid "please set your camera to manual mode first!" -msgstr "נא העבר ראשית את המצלמה למצב ידני!" - -#: ../src/control/jobs/camera_jobs.c:211 -msgid "capture images" -msgstr "רכוש תמונות" - -#: ../src/control/jobs/camera_jobs.c:245 -#, c-format -msgid "%d/%d imported to %s" -msgid_plural "%d/%d imported to %s" -msgstr[0] "יובאו %d/%d ל %s" -msgstr[1] "יובאו %d/%d ל %s" - -#: ../src/control/jobs/camera_jobs.c:298 -msgid "starting to import images from camera" -msgstr "מתחיל לייבא תמונות ממצלמה" - -#: ../src/control/jobs/camera_jobs.c:309 -#, c-format -msgid "importing %d image from camera" -msgid_plural "importing %d images from camera" -msgstr[0] "מייבא תמונה %d ממצלמה" -msgstr[1] "מייבא תמונות %d ממצלמה" - -#: ../src/control/jobs/camera_jobs.c:369 -msgid "import images from camera" -msgstr "ייבא תמונות ממצלמה" - -#: ../src/control/jobs/control_jobs.c:145 -msgid "failed to create film roll for destination directory, aborting move.." -msgstr "יצירת גליל פילם לתיקיית היעד נכשלה, מבטל העברה." - -#: ../src/control/jobs/control_jobs.c:388 -msgid "exposure bracketing only works on raw images." -msgstr "מצב חשיפות מרובות עובד רק עם תמונות raw." - -#: ../src/control/jobs/control_jobs.c:395 -msgid "images have to be of same size and orientation!" -msgstr "תמונות חייבות להיות בעלות גודל ואורינטציה זהים!" - -#: ../src/control/jobs/control_jobs.c:490 -#, c-format -msgid "merging %d image" -msgid_plural "merging %d images" -msgstr[0] "ממזג תמונה %d" -msgstr[1] "ממזג תמונות %d" - -#: ../src/control/jobs/control_jobs.c:561 -#, c-format -msgid "wrote merged HDR `%s'" -msgstr "מיזוג HDR נכתב '%s'" - -#: ../src/control/jobs/control_jobs.c:593 -#, c-format -msgid "duplicating %d image" -msgid_plural "duplicating %d images" -msgstr[0] "משכפל תמונה %d" -msgstr[1] "משכפל תמונות %d" - -#: ../src/control/jobs/control_jobs.c:634 -#, c-format -msgid "flipping %d image" -msgid_plural "flipping %d images" -msgstr[0] "הופך תמונה %d" -msgstr[1] "הופך תמונות %d" - -#: ../src/control/jobs/control_jobs.c:665 -#, c-format -msgid "set %d color image" -msgid_plural "setting %d color images" -msgstr[0] "הגדר %d תמונה צבעונית" -msgstr[1] "הגדר %d תמונות צבעוניות" - -#: ../src/control/jobs/control_jobs.c:667 -#, c-format -msgid "set %d monochrome image" -msgid_plural "setting %d monochrome images" -msgstr[0] "הגדר %d תמונה מונוכרומטית" -msgstr[1] "הגדר %d תמונות מונוכרומטיות" - -#: ../src/control/jobs/control_jobs.c:753 -#, c-format -msgid "removing %d image" -msgid_plural "removing %d images" -msgstr[0] "מסיר תמונה %d" -msgstr[1] "מסיר תמונות %d" - -#: ../src/control/jobs/control_jobs.c:860 -#, c-format -msgid "" -"could not send %s to trash%s\n" -"%s\n" -"\n" -" do you want to delete the file from disk without using trash?" -msgstr "" -"שליחת %s לסל המחזור נכשלה%s\n" -"%s\n" -"\n" -" האם ברצונך למחוק את הקובץ מבלי לשלוח לסל המחזור?" - -#: ../src/control/jobs/control_jobs.c:861 -#, c-format -msgid "" -"could not delete from disk %s%s\n" -"%s" -msgstr "" -"לא ניתן למחוק מהדיסק %s%s\n" -"%s" - -#: ../src/control/jobs/control_jobs.c:869 -msgid "_apply to all" -msgstr "_יישם להכל" - -#: ../src/control/jobs/control_jobs.c:877 -msgid "_delete permanently" -msgstr "_מחק לתמיד" - -#: ../src/control/jobs/control_jobs.c:878 -#: ../src/control/jobs/control_jobs.c:882 -msgid "_remove from library" -msgstr "_הסר מספריית התמונות" - -#: ../src/control/jobs/control_jobs.c:884 -msgid "_skip" -msgstr "_דלג" - -#: ../src/control/jobs/control_jobs.c:885 -msgid "abort" -msgstr "בטל" - -#: ../src/control/jobs/control_jobs.c:891 -msgid "trashing error" -msgstr "שגיאה בשליחה לסל המחזור" - -#: ../src/control/jobs/control_jobs.c:892 -msgid "deletion error" -msgstr "שגיאה במחיקה" - -#: ../src/control/jobs/control_jobs.c:1039 -#, c-format -msgid "trashing %d image" -msgid_plural "trashing %d images" -msgstr[0] "שולח לסל המחזור תמונה %d" -msgstr[1] "שולח לסל המחזור תמונות %d" - -#: ../src/control/jobs/control_jobs.c:1041 -#, c-format -msgid "deleting %d image" -msgid_plural "deleting %d images" -msgstr[0] "מוחק תמונה %d" -msgstr[1] "מוחק תמונות %d" - -#: ../src/control/jobs/control_jobs.c:1177 -msgid "failed to parse GPX file" -msgstr "ניתוח קובץ GPX כשל" - -#: ../src/control/jobs/control_jobs.c:1224 -#, c-format -msgid "applied matched GPX location onto %d image" -msgid_plural "applied matched GPX location onto %d images" -msgstr[0] "מיקום GPX תואם יושם לתמונה %d" -msgstr[1] "מיקום GPX תואם יושם לתמונות %d" - -#: ../src/control/jobs/control_jobs.c:1241 -#, c-format -msgid "moving %d image" -msgstr "מעביר תמונה %d" - -#: ../src/control/jobs/control_jobs.c:1242 -#, c-format -msgid "moving %d images" -msgstr "מעביר תמונות %d" - -#: ../src/control/jobs/control_jobs.c:1247 -#, c-format -msgid "copying %d image" -msgstr "מעתיק תמונה %d" - -#: ../src/control/jobs/control_jobs.c:1248 -#, c-format -msgid "copying %d images" -msgstr "מעביר תמונות %d" - -#: ../src/control/jobs/control_jobs.c:1263 -#, c-format -msgid "creating local copy of %d image" -msgid_plural "creating local copies of %d images" -msgstr[0] "יוצר עותק מקומי של תמונה %d" -msgstr[1] "יוצר עותקים מקומיים של תמונות %d" - -#: ../src/control/jobs/control_jobs.c:1266 -#, c-format -msgid "removing local copy of %d image" -msgid_plural "removing local copies of %d images" -msgstr[0] "מסיר עותק מקומי של תמונה %d" -msgstr[1] "מסיר עותקים מקומיים של תמונות %d" - -#: ../src/control/jobs/control_jobs.c:1313 -#, c-format -msgid "refreshing info for %d image" -msgid_plural "refreshing info for %d images" -msgstr[0] "מרענן נתונים עבור תמונה %d" -msgstr[1] "מרענן נתונים עבור תמונות %d" - -#: ../src/control/jobs/control_jobs.c:1398 -#, c-format -msgid "exporting %d image.." -msgid_plural "exporting %d images.." -msgstr[0] "מייצא %d תמונה.." -msgstr[1] "מייצא %d תמונות.." - -#: ../src/control/jobs/control_jobs.c:1400 -msgid "no image to export" -msgstr "אין תמונה לייצוא" - -#: ../src/control/jobs/control_jobs.c:1438 -#, c-format -msgid "exporting %d / %d to %s" -msgstr "מייצא %d / %d ל %s" - -#: ../src/control/jobs/control_jobs.c:1459 ../src/views/darkroom.c:800 -#: ../src/views/print.c:369 -#, c-format -msgid "image `%s' is currently unavailable" -msgstr "תמונה `%s' אינה זמינה כרגע" - -#: ../src/control/jobs/control_jobs.c:1551 -msgid "merge HDR image" -msgstr "אחד תמונת HDR" - -#: ../src/control/jobs/control_jobs.c:1565 -msgid "duplicate images" -msgstr "שכפל תמונות" - -#: ../src/control/jobs/control_jobs.c:1571 -msgid "flip images" -msgstr "הפוך תמונות" - -#: ../src/control/jobs/control_jobs.c:1578 -msgid "set monochrome images" -msgstr "הגדר תמונות מונוכרומטיות" - -#. get all selected images now, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1585 -msgid "remove images" -msgstr "הסר תמונות" - -#: ../src/control/jobs/control_jobs.c:1598 -msgid "remove image?" -msgstr "הסר תמונה?" - -#: ../src/control/jobs/control_jobs.c:1598 -msgid "remove images?" -msgstr "הסר תמונות?" - -#: ../src/control/jobs/control_jobs.c:1599 -#, c-format -msgid "" -"do you really want to remove %d image from darktable\n" -"(without deleting file on disk)?" -msgid_plural "" -"do you really want to remove %d images from darktable\n" -"(without deleting files on disk)?" -msgstr[0] "" -"האם אתה באמת מעוניין להסיר תמונה נבחרת %d מ darktable?\n" -"(מבלי למחוק את הקובץ מהכונן)?" -msgstr[1] "" -"האם אתה באמת מעוניין להסיר תמונות נבחרות %d מ darktable?\n" -"(מבלי למחוק את הקובצים מהכונן)?" - -#. first get all selected images, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1614 -#: ../src/control/jobs/control_jobs.c:1647 -msgid "delete images" -msgstr "מחק תמונות" - -#: ../src/control/jobs/control_jobs.c:1630 -#: ../src/control/jobs/control_jobs.c:1660 -msgid "delete image?" -msgstr "מחק תמונה?" - -#: ../src/control/jobs/control_jobs.c:1630 -msgid "delete images?" -msgstr "מחק תמונות?" - -#: ../src/control/jobs/control_jobs.c:1631 -#, c-format -msgid "" -"do you really want to physically delete %d image\n" -"(using trash if possible)?" -msgid_plural "" -"do you really want to physically delete %d images\n" -"(using trash if possible)?" -msgstr[0] "" -"האם אתה באמת מעוניין למחוק פיסית תמונה נבחרת %d ?\n" -"(ע\"י שימוש בסל המחזור אם אפשר)?" -msgstr[1] "" -"האם אתה באמת מעוניין למחוק פיסית תמונות נבחרות %d ?\n" -"(ע\"י שימוש בסל המחזור אם אפשר)?" - -#: ../src/control/jobs/control_jobs.c:1633 -#, c-format -msgid "do you really want to physically delete %d image from disk?" -msgid_plural "do you really want to physically delete %d images from disk?" -msgstr[0] "האם אתה באמת מעוניין למחוק פיסית תמונה נבחרת %d מהדיסק?" -msgstr[1] "האם אתה באמת מעוניין למחוק פיסית תמונות נבחרות %d מהדיסק?" - -#: ../src/control/jobs/control_jobs.c:1661 -msgid "" -"do you really want to physically delete selected image (using trash if " -"possible)?" -msgstr "האם אתה באמת מעוניין למחוק פיסית תמונה נבחרת (לסל המחזור אם אפשר)?" - -#: ../src/control/jobs/control_jobs.c:1662 -msgid "do you really want to physically delete selected image from disk?" -msgstr "האם אתה באמת מעוניין למחוק פיסית תמונה נבחרת %d מהדיסק?" - -#: ../src/control/jobs/control_jobs.c:1677 -msgid "move images" -msgstr "העבר תמונות" - -#: ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 -msgid "_select as destination" -msgstr "_בחר כיעד" - -#: ../src/control/jobs/control_jobs.c:1708 -msgid "move image?" -msgid_plural "move images?" -msgstr[0] "העבר תמונה?" -msgstr[1] "העבר תמונות?" - -#: ../src/control/jobs/control_jobs.c:1709 -#, c-format -msgid "" -"do you really want to physically move %d image to %s?\n" -"(all duplicates will be moved along)" -msgid_plural "" -"do you really want to physically move %d images to %s?\n" -"(all duplicates will be moved along)" -msgstr[0] "" -"האם באמת ברצונך להעביר פיסית את התמונה הנבחרת %d ל %s?\n" -"(כל ההעתקים יועברו גם)" -msgstr[1] "" -"האם באמת ברצונך להעביר פיסית %d תמונות נבחרות ל %s?\n" -"(כל ההעתקים יועברו גם)" - -#: ../src/control/jobs/control_jobs.c:1731 -msgid "copy images" -msgstr "העתק תמונות" - -#: ../src/control/jobs/control_jobs.c:1762 -msgid "copy image?" -msgid_plural "copy images?" -msgstr[0] "העתק תמונה?" -msgstr[1] "העתק תמונות?" - -#: ../src/control/jobs/control_jobs.c:1763 -#, c-format -msgid "do you really want to physically copy %d image to %s?" -msgid_plural "do you really want to physically copy %d images to %s?" -msgstr[0] "האם אתה באמת מעוניין להעתיק פיסית את התמונה הנבחרת %d אל %s?" -msgstr[1] "האם אתה באמת מעוניין להעתיק פיסית את התמונות הנבחרות %d אל %s?" - -#: ../src/control/jobs/control_jobs.c:1781 -#: ../src/control/jobs/control_jobs.c:1789 -msgid "local copy images" -msgstr "תמונות עם עותק מקומי" - -#: ../src/control/jobs/control_jobs.c:1796 ../src/libs/image.c:604 -msgid "refresh EXIF" -msgstr "רענן EXIF" - -#: ../src/control/jobs/control_jobs.c:1860 -#, c-format -msgid "failed to get parameters from storage module `%s', aborting export.." -msgstr "הבאת הפרמטרים ממודול האחסון `%s' כשלה, מבטל ייצוא.." - -#: ../src/control/jobs/control_jobs.c:1876 -msgid "export images" -msgstr "ייצא תמונות" - -#: ../src/control/jobs/control_jobs.c:1926 -#, c-format -msgid "adding time offset to %d image" -msgstr "מוסיף הסחה בתאריך/זמן לתמונה %d" - -#: ../src/control/jobs/control_jobs.c:1926 -#, c-format -msgid "setting date/time of %d image" -msgstr "קובע תאריך/זמן לתמונה %d" - -#: ../src/control/jobs/control_jobs.c:1927 -#, c-format -msgid "adding time offset to %d images" -msgstr "מוסיף הסחה בזמן לתמונות %d" - -#: ../src/control/jobs/control_jobs.c:1927 -#, c-format -msgid "setting date/time of %d images" -msgstr "קובע תאריך/זמן לתמונה %d" - -#: ../src/control/jobs/control_jobs.c:1972 -#, c-format -msgid "added time offset to %d image" -msgstr "התווספה הסחה בזמן לתמונה %d" - -#: ../src/control/jobs/control_jobs.c:1972 -#, c-format -msgid "set date/time of %d image" -msgstr "קבע תאריך/זמן לתמונה %d" - -#: ../src/control/jobs/control_jobs.c:1973 -#, c-format -msgid "added time offset to %d images" -msgstr "התווספה הסחה בזמן לתמונות %d" - -#: ../src/control/jobs/control_jobs.c:1973 -#, c-format -msgid "set date/time of %d images" -msgstr "קבע תאריך/זמן של תמונות %d" - -#: ../src/control/jobs/control_jobs.c:2014 -msgid "time offset" -msgstr "הסחת זמן" - -#: ../src/control/jobs/control_jobs.c:2042 ../src/libs/copy_history.c:414 -msgid "write sidecar files" -msgstr "כתוב קובץ נלווה" - -#: ../src/control/jobs/control_jobs.c:2256 ../src/control/jobs/film_jobs.c:297 -#, c-format -msgid "importing %d image" -msgid_plural "importing %d images" -msgstr[0] "מייבא תמונה %d" -msgstr[1] "מייבא תמונות %d" - -#: ../src/control/jobs/control_jobs.c:2292 -#, c-format -msgid "importing %d/%d image" -msgid_plural "importing %d/%d images" -msgstr[0] "מייבא תמונה %d/%d" -msgstr[1] "מייבא תמונות %d/%d" - -#: ../src/control/jobs/control_jobs.c:2300 -#, c-format -msgid "imported %d image" -msgid_plural "imported %d images" -msgstr[0] "יובאה תמונה %d" -msgstr[1] "יובאו %d תמונות" - -#: ../src/control/jobs/control_jobs.c:2347 ../src/gui/preferences.c:530 -#: ../src/libs/import.c:172 -msgid "import" -msgstr "ייבא" - -#: ../src/control/jobs/film_jobs.c:73 ../src/control/jobs/film_jobs.c:109 -msgid "import images" -msgstr "ייבא תמונות" - -#: ../src/control/jobs/film_jobs.c:239 -msgid "no supported images were found to be imported" -msgstr "לא נמצאו תמונות בפורמט נתמך לייבוא" - -#: ../src/control/jobs/image_jobs.c:76 -#, c-format -msgid "importing image %s" -msgstr "מייבא תמונה %s" - -#: ../src/control/jobs/image_jobs.c:110 -msgid "import image" -msgstr "ייבא תמונה" - -#: ../src/develop/blend.c:322 -msgid "detail mask blending error" -msgstr "שגיאת ערבוב במסיכת פרטים" - -#: ../src/develop/blend.c:864 -msgid "detail mask CL blending problem" -msgstr "בעיה בערבוב CL מסיכת פרטים" - -#: ../src/develop/blend_gui.c:47 ../src/libs/live_view.c:335 -msgctxt "blendmode" -msgid "normal" -msgstr "רגיל" - -#: ../src/develop/blend_gui.c:49 -msgctxt "blendmode" -msgid "average" -msgstr "ממוצע" - -#: ../src/develop/blend_gui.c:51 ../src/libs/live_view.c:348 -msgctxt "blendmode" -msgid "difference" -msgstr "הפרש" - -#: ../src/develop/blend_gui.c:54 -msgctxt "blendmode" -msgid "normal bounded" -msgstr "רגיל מוגבל" - -#: ../src/develop/blend_gui.c:56 ../src/libs/live_view.c:343 -msgctxt "blendmode" -msgid "lighten" -msgstr "האר" - -#: ../src/develop/blend_gui.c:58 ../src/libs/live_view.c:342 -msgctxt "blendmode" -msgid "darken" -msgstr "החשך" - -#: ../src/develop/blend_gui.c:60 ../src/libs/live_view.c:340 -msgctxt "blendmode" -msgid "screen" -msgstr "מסך" - -#: ../src/develop/blend_gui.c:63 ../src/libs/live_view.c:339 -msgctxt "blendmode" -msgid "multiply" -msgstr "הכפל" - -#: ../src/develop/blend_gui.c:65 -msgctxt "blendmode" -msgid "divide" -msgstr "חלק" - -#: ../src/develop/blend_gui.c:67 -msgctxt "blendmode" -msgid "addition" -msgstr "הוספה" - -#: ../src/develop/blend_gui.c:69 -msgctxt "blendmode" -msgid "subtract" -msgstr "החסרה" - -#: ../src/develop/blend_gui.c:71 -msgctxt "blendmode" -msgid "geometric mean" -msgstr "ממוצע גיאומטרי" - -#: ../src/develop/blend_gui.c:73 -msgctxt "blendmode" -msgid "harmonic mean" -msgstr "ממוצע הרמוני" - -#: ../src/develop/blend_gui.c:76 ../src/libs/live_view.c:341 -msgctxt "blendmode" -msgid "overlay" -msgstr "תכסית" - -#: ../src/develop/blend_gui.c:78 -msgctxt "blendmode" -msgid "softlight" -msgstr "תאורה רכה" - -#: ../src/develop/blend_gui.c:80 -msgctxt "blendmode" -msgid "hardlight" -msgstr "תאורה קשה" - -#: ../src/develop/blend_gui.c:82 -msgctxt "blendmode" -msgid "vividlight" -msgstr "תאורה חיה" - -#: ../src/develop/blend_gui.c:84 -msgctxt "blendmode" -msgid "linearlight" -msgstr "תאורה לינארית" - -#: ../src/develop/blend_gui.c:86 -msgctxt "blendmode" -msgid "pinlight" -msgstr "pinlight" - -#: ../src/develop/blend_gui.c:89 -msgctxt "blendmode" -msgid "lightness" -msgstr "תאורה" - -#: ../src/develop/blend_gui.c:91 -msgctxt "blendmode" -msgid "chromaticity" -msgstr "כרומטיות" - -#: ../src/develop/blend_gui.c:94 -msgctxt "blendmode" -msgid "Lab lightness" -msgstr "תאורת מעבדה" - -#: ../src/develop/blend_gui.c:96 -msgctxt "blendmode" -msgid "Lab a-channel" -msgstr "ערוץ-a ב Lab" - -#: ../src/develop/blend_gui.c:98 -msgctxt "blendmode" -msgid "Lab b-channel" -msgstr "ערוץ-b ב Lab" - -#: ../src/develop/blend_gui.c:100 -msgctxt "blendmode" -msgid "Lab color" -msgstr "צבע מעבדה" - -#: ../src/develop/blend_gui.c:103 -msgctxt "blendmode" -msgid "RGB red channel" -msgstr "ערוץ אדום ב RGB" - -#: ../src/develop/blend_gui.c:105 -msgctxt "blendmode" -msgid "RGB green channel" -msgstr "ערוץ ירוק ב RGB" - -#: ../src/develop/blend_gui.c:107 -msgctxt "blendmode" -msgid "RGB blue channel" -msgstr "ערוץ כחול ב RGB" - -#: ../src/develop/blend_gui.c:109 -msgctxt "blendmode" -msgid "HSV value" -msgstr "ערך HSV" - -#: ../src/develop/blend_gui.c:111 -msgctxt "blendmode" -msgid "HSV color" -msgstr "צבע HSV" - -#: ../src/develop/blend_gui.c:114 -msgctxt "blendmode" -msgid "hue" -msgstr "גוון" - -#: ../src/develop/blend_gui.c:116 -msgctxt "blendmode" -msgid "color" -msgstr "צבע" - -#: ../src/develop/blend_gui.c:118 -msgctxt "blendmode" -msgid "coloradjustment" -msgstr "כוונון צבע" - -#. * deprecated blend modes: make them available as legacy -#. * history stacks might want them -#: ../src/develop/blend_gui.c:124 -msgctxt "blendmode" -msgid "difference (deprecated)" -msgstr "הפרש (לא מומלץ)" - -#: ../src/develop/blend_gui.c:126 -msgctxt "blendmode" -msgid "subtract inverse (deprecated)" -msgstr "החסר הופכי (מוצא משימוש)" - -#: ../src/develop/blend_gui.c:128 -msgctxt "blendmode" -msgid "divide inverse (deprecated)" -msgstr "חלק הופכי (מוצא משימוש)" - -#: ../src/develop/blend_gui.c:130 -msgctxt "blendmode" -msgid "Lab L-channel (deprecated)" -msgstr "Lab L-channel (deprecated)" - -#: ../src/develop/blend_gui.c:135 -msgctxt "blendoperation" -msgid "normal" -msgstr "רגיל" - -#: ../src/develop/blend_gui.c:136 -msgctxt "blendoperation" -msgid "reverse" -msgstr "הפוך" - -#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:413 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1193 -msgid "default" -msgstr "ברירת מחדל" - -#: ../src/develop/blend_gui.c:142 -msgid "RAW" -msgstr "RAW" - -#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2014 -msgid "RGB (display)" -msgstr "RGB (תצוגה)" - -#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2027 -msgid "RGB (scene)" -msgstr "RGB (סצנה)" - -#. DEVELOP_MASK_ENABLED -#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3419 -msgid "uniformly" -msgstr "באופן אחיד" - -#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:3429 ../src/develop/imageop.c:2676 -msgid "drawn mask" -msgstr "מסיכה מצויירת" - -#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2512 -#: ../src/develop/blend_gui.c:3440 ../src/develop/imageop.c:2678 -msgid "parametric mask" -msgstr "מסיכה פרמטרית" - -#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2951 -#: ../src/develop/blend_gui.c:3467 ../src/develop/imageop.c:2680 -msgid "raster mask" -msgstr "מסיכת רסטר" - -#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3454 -msgid "drawn & parametric mask" -msgstr "מצויר עם מסיכה פרמטרית" - -#: ../src/develop/blend_gui.c:168 -msgid "exclusive" -msgstr "לא כולל" - -#: ../src/develop/blend_gui.c:169 -msgid "inclusive" -msgstr "כולל" - -#: ../src/develop/blend_gui.c:170 -msgid "exclusive & inverted" -msgstr "לא כולל ומהופך" - -#: ../src/develop/blend_gui.c:171 -msgid "inclusive & inverted" -msgstr "כולל ומהופך" - -#: ../src/develop/blend_gui.c:175 -msgid "output before blur" -msgstr "פלט לפני טשטוש" - -#: ../src/develop/blend_gui.c:176 -msgid "input before blur" -msgstr "קלט לפני טשטוש" - -#: ../src/develop/blend_gui.c:177 -msgid "output after blur" -msgstr "פלט אחרי טשטוש" - -#: ../src/develop/blend_gui.c:178 -msgid "input after blur" -msgstr "קלט אחרי טשטוש" - -#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:129 -#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/libs/live_view.c:362 -msgid "on" -msgstr "דלוק" - -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2805 -msgid "input" -msgstr "קלט" - -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2805 -msgid "output" -msgstr "פלט" - -#: ../src/develop/blend_gui.c:995 -msgid " (zoom)" -msgstr " (זום)" - -#: ../src/develop/blend_gui.c:1003 -msgid " (log)" -msgstr " (יומן)" - -#: ../src/develop/blend_gui.c:1988 -msgid "reset to default blend colorspace" -msgstr "אתחל לברירת המחדל של ערבב מרחב צבע" - -#: ../src/develop/blend_gui.c:2044 -msgid "reset and hide output channels" -msgstr "אתחל והחבא ערוצי פלט" - -#: ../src/develop/blend_gui.c:2051 -msgid "show output channels" -msgstr "הצג ערוצי צבע" - -#: ../src/develop/blend_gui.c:2290 ../src/develop/blend_gui.c:2357 -#: ../src/iop/tonecurve.c:1134 -msgid "L" -msgstr "L" - -#: ../src/develop/blend_gui.c:2290 -msgid "sliders for L channel" -msgstr "זחיחים לערוץ L" - -#: ../src/develop/blend_gui.c:2295 ../src/iop/tonecurve.c:1135 -msgid "a" -msgstr "a" - -#: ../src/develop/blend_gui.c:2295 -msgid "sliders for a channel" -msgstr "זחיחים לערוץ a" - -#: ../src/develop/blend_gui.c:2299 -msgid "green/red" -msgstr "ירוק/אדום" - -#: ../src/develop/blend_gui.c:2300 ../src/iop/tonecurve.c:1136 -msgid "b" -msgstr "b" - -#: ../src/develop/blend_gui.c:2300 -msgid "sliders for b channel" -msgstr "זחיחים לערוץ b" - -#: ../src/develop/blend_gui.c:2304 -msgid "blue/yellow" -msgstr "כחול/צהוב" - -#: ../src/develop/blend_gui.c:2305 -msgid "C" -msgstr "C" - -#: ../src/develop/blend_gui.c:2305 -msgid "sliders for chroma channel (of LCh)" -msgstr "זחיחים לערוץ הכרומה (של LCh)" - -#: ../src/develop/blend_gui.c:2311 -msgid "h" -msgstr "h" - -#: ../src/develop/blend_gui.c:2311 -msgid "sliders for hue channel (of LCh)" -msgstr "זחיחים לערוץ הגוון (של LCh)" - -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 -msgid "g" -msgstr "g" - -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 -msgid "sliders for gray value" -msgstr "זחיחים לרמת אפור" - -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/denoiseprofile.c:3710 -#: ../src/iop/rawdenoise.c:894 ../src/iop/rgbcurve.c:1358 -#: ../src/iop/rgblevels.c:1003 ../src/libs/filters/colors.c:137 -msgid "R" -msgstr "R" - -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 -msgid "sliders for red channel" -msgstr "זחיחים לערוץ האדום" - -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/denoiseprofile.c:3711 -#: ../src/iop/rawdenoise.c:895 ../src/iop/rgbcurve.c:1359 -#: ../src/iop/rgblevels.c:1004 ../src/libs/filters/colors.c:143 -msgid "G" -msgstr "G" - -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 -msgid "sliders for green channel" -msgstr "זחיחים לערוץ הירוק" - -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/denoiseprofile.c:3712 -#: ../src/iop/rawdenoise.c:896 ../src/iop/rgbcurve.c:1360 -#: ../src/iop/rgblevels.c:1005 ../src/libs/filters/colors.c:146 -msgid "B" -msgstr "B" - -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 -msgid "sliders for blue channel" -msgstr "זחיחים לערוץ הכחול" - -#: ../src/develop/blend_gui.c:2343 -msgid "H" -msgstr "H" - -#: ../src/develop/blend_gui.c:2343 -msgid "sliders for hue channel (of HSL)" -msgstr "זחיחים לערוץ הגוון (של HSL)" - -#: ../src/develop/blend_gui.c:2350 -msgid "S" -msgstr "S" - -#: ../src/develop/blend_gui.c:2350 -msgid "sliders for chroma channel (of HSL)" -msgstr "זחיחים לערוץ הכרומה (של HCL)" - -#: ../src/develop/blend_gui.c:2357 -msgid "sliders for value channel (of HSL)" -msgstr "זחיחים לערוץ הערך (של HSL)" - -#: ../src/develop/blend_gui.c:2391 -msgid "Jz" -msgstr "Jz" - -#: ../src/develop/blend_gui.c:2391 -msgid "sliders for value channel (of JzCzhz)" -msgstr "מחוונים לערוץ הערך (של JzCzhz)" - -#: ../src/develop/blend_gui.c:2398 -msgid "Cz" -msgstr "Cz" - -#: ../src/develop/blend_gui.c:2398 -msgid "sliders for chroma channel (of JzCzhz)" -msgstr "מחוונים לערוץ הכרומה (של JzCzhz)" - -#: ../src/develop/blend_gui.c:2405 -msgid "hz" -msgstr "hz" - -#: ../src/develop/blend_gui.c:2405 -msgid "sliders for hue channel (of JzCzhz)" -msgstr "מחוונים לערוץ הגוון (של JzCzhz)" - -#: ../src/develop/blend_gui.c:2415 -msgid "" -"adjustment based on input received by this module:\n" -"* range defined by upper markers: blend fully\n" -"* range defined by lower markers: do not blend at all\n" -"* range between adjacent upper/lower markers: blend gradually" -msgstr "" -"כוונון מבוסס על קלט התקבל על ידי המודול הנוכחי:\n" -"* טווח הוגדר על ידי סמנים עליונים: ערבב באופן מלא\n" -"* טווח הוגדר על ידי סמנים תחתונים: אל תערבב כלל\n" -"* טווח בין סמנים סמוכים עליון/תחתון: ערבב בהדרגה" - -#: ../src/develop/blend_gui.c:2419 -msgid "" -"adjustment based on unblended output of this module:\n" -"* range defined by upper markers: blend fully\n" -"* range defined by lower markers: do not blend at all\n" -"* range between adjacent upper/lower markers: blend gradually" -msgstr "" -"כוונון מבוסס על פלט לא מעורבב של המודול הנוכחי:\n" -"* טווח הוגדר על ידי סמנים עליונים: ערבב באופן מלא\n" -"* טווח הוגדר על ידי סמנים תחתונים: אל תערבב כלל\n" -"* טווח בין סמנים סמוכים עליון/תחתון: ערבב בהדרגה" - -#: ../src/develop/blend_gui.c:2516 -msgid "reset blend mask settings" -msgstr "אתחל הגדרות של מסיכת ערבוב" - -#: ../src/develop/blend_gui.c:2527 ../src/iop/atrous.c:1665 -#: ../src/iop/colorzones.c:2399 ../src/iop/denoiseprofile.c:3707 -#: ../src/iop/rawdenoise.c:891 ../src/iop/rgbcurve.c:1357 -#: ../src/iop/rgblevels.c:1002 ../src/iop/tonecurve.c:1133 -msgid "channel" -msgstr "ערוץ" - -#: ../src/develop/blend_gui.c:2542 ../src/iop/colorzones.c:2413 -#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1142 -msgid "" -"pick GUI color from image\n" -"ctrl+click or right-click to select an area" -msgstr "" -"בחר צבע לממשק מהתמונה\n" -"קליק+ctrl או קליק ימני לבחירת אזור" - -#: ../src/develop/blend_gui.c:2545 ../src/iop/colorzones.c:2415 -#: ../src/iop/rgbcurve.c:1369 -msgid "show color" -msgstr "הראה צבע" - -#: ../src/develop/blend_gui.c:2554 -msgid "" -"set the range based on an area from the image\n" -"drag to use the input image\n" -"ctrl+drag to use the output image" -msgstr "" -"קבע את הטווח בהתבסס על שטח מהתמונה\n" -"גרור להשתמש בתמונת הקלט\n" -"גרור+ctrl להשתמש בתמונת הפלט" - -#: ../src/develop/blend_gui.c:2557 -msgid "set range" -msgstr "קבע טווח" - -#: ../src/develop/blend_gui.c:2560 -msgid "invert all channel's polarities" -msgstr "הפוך קוטביות של כל הערוצים" - -#: ../src/develop/blend_gui.c:2584 -msgid "toggle polarity. best seen by enabling 'display mask'" -msgstr "מתג קוטביות. נראה מיטבית על ידי אפשור 'הצג מסיכה'" - -#: ../src/develop/blend_gui.c:2613 -msgid "" -"double-click to reset.\n" -"press 'a' to toggle available slider modes.\n" -"press 'c' to toggle view of channel data.\n" -"press 'm' to toggle mask view." -msgstr "" -"קליק כפול לאיפוס.\n" -"לחץ 'a' לעבור בין מצבי מחוון אפשריים.\n" -"לחץ 'c' להחלפת מצב תצוגת נתוני ערוץ.\n" -"לחץ 'm' להחלפת מצב תצוגת מסיכה." - -#: ../src/develop/blend_gui.c:2640 ../src/develop/blend_gui.c:3531 -#: ../src/iop/basicadj.c:600 ../src/iop/colorbalancergb.c:2090 -#: ../src/iop/exposure.c:1120 ../src/iop/exposure.c:1135 -#: ../src/iop/filmic.c:1503 ../src/iop/filmic.c:1516 ../src/iop/filmic.c:1558 -#: ../src/iop/filmicrgb.c:4440 ../src/iop/filmicrgb.c:4451 -#: ../src/iop/filmicrgb.c:4485 ../src/iop/filmicrgb.c:4495 -#: ../src/iop/graduatednd.c:1113 ../src/iop/negadoctor.c:1011 -#: ../src/iop/profile_gamma.c:643 ../src/iop/profile_gamma.c:649 -#: ../src/iop/relight.c:262 ../src/iop/soften.c:378 ../src/iop/toneequal.c:3326 -#: ../src/iop/toneequal.c:3329 ../src/iop/toneequal.c:3332 -#: ../src/iop/toneequal.c:3335 ../src/iop/toneequal.c:3338 -#: ../src/iop/toneequal.c:3341 ../src/iop/toneequal.c:3344 -#: ../src/iop/toneequal.c:3347 ../src/iop/toneequal.c:3350 -#: ../src/iop/toneequal.c:3472 ../src/iop/toneequal.c:3481 -#: ../src/iop/toneequal.c:3494 ../src/views/darkroom.c:2453 -msgid " EV" -msgstr " EV" - -#: ../src/develop/blend_gui.c:2642 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:2951 ../src/develop/blend_gui.c:3014 -#: ../src/develop/blend_gui.c:3499 ../src/develop/blend_gui.c:3529 -#: ../src/develop/blend_gui.c:3542 ../src/develop/blend_gui.c:3559 -#: ../src/develop/blend_gui.c:3583 ../src/develop/blend_gui.c:3593 -#: ../src/develop/blend_gui.c:3602 ../src/develop/blend_gui.c:3613 -msgid "blend" -msgstr "ערבב" - -#: ../src/develop/blend_gui.c:2642 -msgid "boost factor" -msgstr "מקדם הגברה" - -#: ../src/develop/blend_gui.c:2645 -msgid "adjust the boost factor of the channel mask" -msgstr "כוונן את מקדם ההגבר של מסיכת הערוץ" - -#: ../src/develop/blend_gui.c:2682 -#, c-format -msgid "%d shape used" -msgid_plural "%d shapes used" -msgstr[0] "נעשה שימוש בצורה %d" -msgstr[1] "נעשה שימוש בצורות %d" - -#: ../src/develop/blend_gui.c:2687 ../src/develop/blend_gui.c:2743 -#: ../src/develop/blend_gui.c:2831 ../src/develop/blend_gui.c:2952 -msgid "no mask used" -msgstr "לא נעשה שימוש במסיכה" - -#: ../src/develop/blend_gui.c:2751 -msgid "toggle polarity of drawn mask" -msgstr "מתג קוטביות של המסיכה המצוירת" - -#: ../src/develop/blend_gui.c:2760 -msgid "show and edit mask elements" -msgstr "הצג וערוך אלמנטים במסיכה" - -#: ../src/develop/blend_gui.c:2761 -msgid "show and edit in restricted mode" -msgstr "הצג וערוך במצב מוגבל" - -#: ../src/develop/blend_gui.c:2768 ../src/libs/masks.c:998 -#: ../src/libs/masks.c:1816 ../src/libs/masks.c:1820 -msgid "add gradient" -msgstr "הוסף גרדיאנט" - -#: ../src/develop/blend_gui.c:2769 -msgid "add multiple gradients" -msgstr "הוסף גרדיאנטים מרובים" - -#: ../src/develop/blend_gui.c:2776 ../src/iop/retouch.c:2238 -#: ../src/libs/masks.c:978 ../src/libs/masks.c:1852 ../src/libs/masks.c:1856 -msgid "add brush" -msgstr "הוסף מברשת" - -#: ../src/develop/blend_gui.c:2777 ../src/iop/retouch.c:2238 -msgid "add multiple brush strokes" -msgstr "הוסף נגיעות מכחול מרובות" - -#: ../src/develop/blend_gui.c:2784 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 ../src/libs/masks.c:993 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1829 -msgid "add path" -msgstr "הוסף נתיב" - -#: ../src/develop/blend_gui.c:2785 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 -msgid "add multiple paths" -msgstr "הוסף נתיבים מרובים" - -#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 ../src/libs/masks.c:988 ../src/libs/masks.c:1834 -#: ../src/libs/masks.c:1838 -msgid "add ellipse" -msgstr "הוסף אליפסה" - -#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 -msgid "add multiple ellipses" -msgstr "הוסף אליפסות מרובות" - -#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 ../src/libs/masks.c:983 ../src/libs/masks.c:1843 -#: ../src/libs/masks.c:1847 -msgid "add circle" -msgstr "הוסף מעגל" - -#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 -msgid "add multiple circles" -msgstr "הוסף מעגלים מרובים" - -#: ../src/develop/blend_gui.c:2961 -msgid "toggle polarity of raster mask" -msgstr "מתג קוטביות של מסיכת רסטר" - -#: ../src/develop/blend_gui.c:3101 -msgid "normal & difference" -msgstr "רגיל ו הבדל" - -#: ../src/develop/blend_gui.c:3106 -msgid "lighten" -msgstr "הבהר" - -#: ../src/develop/blend_gui.c:3113 -msgid "darken" -msgstr "הכהה" - -#: ../src/develop/blend_gui.c:3120 -msgid "contrast enhancing" -msgstr "הגברת קונטרסט" - -#: ../src/develop/blend_gui.c:3127 ../src/develop/blend_gui.c:3150 -msgid "color channel" -msgstr "ערוצי צבע" - -#: ../src/develop/blend_gui.c:3138 ../src/develop/blend_gui.c:3153 -msgid "chromaticity & lightness" -msgstr "צבעוניות ובהירות" - -#: ../src/develop/blend_gui.c:3145 -msgid "normal & arithmetic" -msgstr "רגיל ואריטמטי" - -#. add deprecated blend mode -#: ../src/develop/blend_gui.c:3166 -msgid "deprecated" -msgstr "מוצאים משימוש" - -#: ../src/develop/blend_gui.c:3478 -msgid "blending options" -msgstr "אפשרויות ערבוב" - -#: ../src/develop/blend_gui.c:3500 ../src/libs/history.c:949 -msgid "blend mode" -msgstr "מצב ערבוב" - -#: ../src/develop/blend_gui.c:3503 -msgid "choose blending mode" -msgstr "בחר מצב ערבוב" - -#: ../src/develop/blend_gui.c:3513 -msgid "toggle blend order" -msgstr "מתג סדר ערבוב" - -#: ../src/develop/blend_gui.c:3519 -msgid "" -"toggle the blending order between the input and the output of the module,\n" -"by default the output will be blended on top of the input,\n" -"order can be reversed by clicking on the icon (input on top of output)" -msgstr "" -"מתג את סדר הערבוב בין הקלט לפלט של המודול,\n" -"כברירת מחדל הפלט משמש מעל הקלט,\n" -"ניתן להחליף את הסדר ע\"י לחיצה על הצלמית (קלט מעל פלט)" - -#: ../src/develop/blend_gui.c:3530 ../src/libs/history.c:953 -msgid "blend fulcrum" -msgstr "מזג נקודת סמך" - -#: ../src/develop/blend_gui.c:3534 -msgid "adjust the fulcrum used by some blending operations" -msgstr "כוונן נקודת סמך המשמשת מספר פעולות ערבוב" - -#. Add opacity/scale sliders to table -#: ../src/develop/blend_gui.c:3542 ../src/iop/watermark.c:1314 -#: ../src/libs/masks.c:104 -msgid "opacity" -msgstr "אטימות" - -#: ../src/develop/blend_gui.c:3546 -msgid "set the opacity of the blending" -msgstr "קבע את אטימות הערבוב" - -#: ../src/develop/blend_gui.c:3550 ../src/libs/history.c:956 -msgid "combine masks" -msgstr "שלב מסיכות" - -#: ../src/develop/blend_gui.c:3552 -msgid "" -"how to combine individual drawn mask and different channels of parametric " -"mask" -msgstr "איך לשלב מסיכה מצוירת מסוימת עם ערוצים שונים של מסיכה פרמטרית" - -#: ../src/develop/blend_gui.c:3559 -msgid "details threshold" -msgstr "סף פרטים" - -#: ../src/develop/blend_gui.c:3563 -msgid "" -"adjust the threshold for the details mask (using raw data),\n" -"positive values select areas with strong details,\n" -"negative values select flat areas" -msgstr "" -"כוונן את הסף עבור מסיכת הפרטים (עושה שימוש בנתונים גולמיים),\n" -"ערכים חיוביים בוחרים אזורים עם פרטים חזקים,\n" -"ערכים שליליים בוחרים אזורים שטחיים" - -#: ../src/develop/blend_gui.c:3571 ../src/libs/history.c:959 -msgid "feathering guide" -msgstr "מוביל הנוצה" - -#: ../src/develop/blend_gui.c:3574 -msgid "" -"choose to guide mask by input or output image and\n" -"choose to apply feathering before or after mask blur" -msgstr "" -"בחר להנחות מסיכה ע\"י תמונת הקלט או הפלט\n" -"ו בחר ליישום נוצה לפני או אחרי טשטוש מסיכה" - -#: ../src/develop/blend_gui.c:3583 ../src/libs/history.c:958 -msgid "feathering radius" -msgstr "רדיוס הנוצה" - -#: ../src/develop/blend_gui.c:3586 -msgid "spatial radius of feathering" -msgstr "רדיוס מרחבי של הנוצה" - -#: ../src/develop/blend_gui.c:3593 -msgid "blurring radius" -msgstr "רדיוס טשטוש" - -#: ../src/develop/blend_gui.c:3596 -msgid "radius for gaussian blur of blend mask" -msgstr "רדיוס עבור מריחה גאוסית של מסיכת ערבוב" - -#: ../src/develop/blend_gui.c:3602 ../src/iop/retouch.c:2453 -#: ../src/libs/history.c:954 -msgid "mask opacity" -msgstr "אטימות מסיכה" - -#: ../src/develop/blend_gui.c:3606 -msgid "" -"shifts and tilts the tone curve of the blend mask to adjust its brightness\n" -"without affecting fully transparent/fully opaque regions" -msgstr "" -"מסיח ומטה את את עקומת הטון של מסיכת הערבוב על מנת לכוונן את בהירותה \n" -"מבלי להשפיע על אזורים שקופים / אטומים במלואם" - -#: ../src/develop/blend_gui.c:3613 ../src/libs/history.c:962 -msgid "mask contrast" -msgstr "ניגודיות מסיכה" - -#: ../src/develop/blend_gui.c:3617 -msgid "" -"gives the tone curve of the blend mask an s-like shape to adjust its contrast" -msgstr "מעניק לעקום הטון של מסיכת הערבוב צורת s לכוונון הקונטרסט" - -#: ../src/develop/blend_gui.c:3621 -msgid "mask refinement" -msgstr "כוונון מסיכה עדין" - -#: ../src/develop/blend_gui.c:3625 -msgid "display mask and/or color channel" -msgstr "הצג מסיכה ו/או ערוץ צבע" - -#: ../src/develop/blend_gui.c:3630 -msgid "" -"display mask and/or color channel.\n" -"ctrl+click to display mask,\n" -"shift+click to display channel.\n" -"hover over parametric mask slider to select channel for display" -msgstr "" -"הצג מסיכה ו/או ערוץ צבע. \n" -"קליק+ctrl להצגת מסיכה, \n" -"קליק+shift להצגת ערוץ. \n" -"רחף מעל הזחיח של המסיכה הפרמטרית לבחירת ערוץ להצגה" - -#: ../src/develop/blend_gui.c:3637 -msgid "temporarily switch off blend mask" -msgstr "כבה מסיכת ערבוב באופן זמני" - -#: ../src/develop/blend_gui.c:3642 -msgid "" -"temporarily switch off blend mask.\n" -"only for module in focus" -msgstr "" -"כבה זמנית מסיכת ערבוב. \n" -"רק עבור המודול בפוקוס" - -#: ../src/develop/develop.c:2303 -#, c-format -msgid "%s: module `%s' version mismatch: %d != %d" -msgstr "%s: module `%s' version mismatch: %d != %d" - -#: ../src/develop/develop.c:2834 -msgid "module duplicate, can't move new instance after the base one\n" -msgstr "העתק של מודול, לא ניתן להעביר מופע חדש אחרי מופע הבסיס\n" - -#: ../src/develop/imageop.c:1031 -msgid "new instance" -msgstr "שלב חדש" - -#: ../src/develop/imageop.c:1037 -msgid "duplicate instance" -msgstr "שכפל שלב" - -#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3755 -#: ../src/libs/masks.c:1152 -msgid "move up" -msgstr "הזז מעלה" - -#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3756 -#: ../src/libs/masks.c:1157 -msgid "move down" -msgstr "הזז מטה" - -#. delete button label and tooltip will be updated based on trash pref -#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3758 -#: ../src/gui/accelerators.c:155 ../src/gui/presets.c:562 -#: ../src/libs/image.c:285 ../src/libs/image.c:480 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 -msgid "delete" -msgstr "מחק" - -#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3759 -#: ../src/libs/modulegroups.c:3464 ../src/libs/modulegroups.c:3815 -msgid "rename" -msgstr "שנה שם" - -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2966 -#, c-format -msgid "'%s' is switched on" -msgstr "'%s' דלוק" - -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2966 -#, c-format -msgid "'%s' is switched off" -msgstr "'%s' כבוי" - -#: ../src/develop/imageop.c:2670 -msgid "unknown mask" -msgstr "מסיכה לא ידועה" - -#: ../src/develop/imageop.c:2674 -msgid "drawn + parametric mask" -msgstr "מצויר + מסיכה פרמטרית" - -#: ../src/develop/imageop.c:2683 -#, c-format -msgid "this module has a `%s'" -msgstr "למודול זה יש `%s'" - -#: ../src/develop/imageop.c:2688 -#, c-format -msgid "taken from module %s" -msgstr "נלקח ממודול %s" - -#: ../src/develop/imageop.c:2693 -msgid "click to display (module must be activated first)" -msgstr "לחץ להצגה (יש להפעיל את המודול קודם)" - -#: ../src/develop/imageop.c:2805 -msgid "purpose" -msgstr "תכלית" - -#: ../src/develop/imageop.c:2805 -msgid "process" -msgstr "תהליך" - -#: ../src/develop/imageop.c:2922 -msgid "" -"multiple instance actions\n" -"right-click creates new instance" -msgstr "" -"פעולות של שלבים מרובים\n" -"קליק-ימני יוצר שלב חדש" - -#: ../src/develop/imageop.c:2937 -msgid "" -"reset parameters\n" -"ctrl+click to reapply any automatic presets" -msgstr "" -"אתחול פרמטרים\n" -"ליישום מחדש של פריסט אוטומטי כלשהו ctrl+click" - -#: ../src/develop/imageop.c:2949 -msgid "" -"presets\n" -"right-click to apply on new instance" -msgstr "" -"פריסטים\n" -"קליק-ימני ליישום על שלב חדש" - -#: ../src/develop/imageop.c:3199 ../src/develop/imageop.c:3221 -msgid "ERROR" -msgstr "שגיאה" - -#: ../src/develop/imageop.c:3636 -msgid "unsupported input" -msgstr "קלט לא נתמך" - -#: ../src/develop/imageop.c:3637 -msgid "" -"you have placed this module at\n" -"a position in the pipeline where\n" -"the data format does not match\n" -"its requirements." -msgstr "" -"מיקמת את המודול במיקום\n" -"בסדר הפעולות בו פורמט\n" -"הנתונים אינו מתאים לדרישות." - -#: ../src/develop/imageop.c:3754 ../src/develop/imageop.c:3764 -#: ../src/gui/accelerators.c:151 ../src/libs/lib.c:1415 -msgid "show" -msgstr "הראה" - -#: ../src/develop/imageop.c:3757 ../src/libs/modulegroups.c:3310 -#: ../src/libs/modulegroups.c:3436 ../src/libs/modulegroups.c:3817 -#: ../src/libs/tagging.c:3248 -msgid "new" -msgstr "חדש" - -#: ../src/develop/imageop.c:3760 ../src/libs/duplicate.c:405 -#: ../src/libs/image.c:495 ../src/libs/modulegroups.c:3813 -msgid "duplicate" -msgstr "שכפל" - -#: ../src/develop/imageop.c:3765 -msgid "enable" -msgstr "אפשר" - -#: ../src/develop/imageop.c:3766 ../src/gui/accelerators.c:167 -msgid "focus" -msgstr "פוקוס" - -#: ../src/develop/imageop.c:3767 ../src/gui/accelerators.c:2617 -msgid "instance" -msgstr "שלב" - -#: ../src/develop/imageop.c:3768 ../src/gui/accelerators.c:112 -#: ../src/gui/accelerators.c:122 ../src/gui/gtk.c:3009 ../src/gui/gtk.c:3056 -#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:603 -#: ../src/gui/styles_dialog.c:625 ../src/iop/atrous.c:1512 -#: ../src/libs/lib.c:1416 ../src/libs/modulegroups.c:3882 -msgid "reset" -msgstr "אתחל" - -#. Adding the outer container -#: ../src/develop/imageop.c:3769 ../src/gui/preferences.c:798 -#: ../src/libs/lib.c:1417 -msgid "presets" -msgstr "פריסטים" - -#: ../src/develop/imageop.c:3789 -msgid "processing module" -msgstr "מודול עיבוד" - -#: ../src/develop/imageop_gui.c:293 -#, c-format -msgid "" -"%s\n" -"ctrl+click to %s" -msgstr "" -"%s\n" -"ctrl+click to %s" - -#: ../src/develop/lightroom.c:1083 -msgid "cannot find Lightroom XMP!" -msgstr "לא נמצא XMP של Lightroom!" - -#: ../src/develop/lightroom.c:1115 ../src/develop/lightroom.c:1137 -#: ../src/develop/lightroom.c:1157 -#, c-format -msgid "`%s' is not a Lightroom XMP!" -msgstr "שג' `%s' לא קובץ XMP של Lightroom!" - -#: ../src/develop/lightroom.c:1556 -#, c-format -msgid "%s has been imported" -msgid_plural "%s have been imported" -msgstr[0] "יובא %s" -msgstr[1] "יובא %s" - -#: ../src/develop/masks/brush.c:1356 ../src/develop/masks/brush.c:1410 -#, c-format -msgid "hardness: %3.2f%%" -msgstr "קשיות: %3.2f%%" - -#: ../src/develop/masks/brush.c:1372 ../src/develop/masks/brush.c:1470 -#: ../src/develop/masks/circle.c:148 ../src/develop/masks/circle.c:193 -#: ../src/develop/masks/ellipse.c:484 ../src/develop/masks/ellipse.c:546 -#: ../src/develop/masks/path.c:1273 -#, c-format -msgid "size: %3.2f%%" -msgstr "גודל: %3.2f%%" - -#: ../src/develop/masks/brush.c:3247 -msgid "[BRUSH] change size" -msgstr "[BRUSH] שנה גודל" - -#: ../src/develop/masks/brush.c:3249 -msgid "[BRUSH] change hardness" -msgstr "[BRUSH] שנה קשיחות" - -#: ../src/develop/masks/brush.c:3251 -msgid "[BRUSH] change opacity" -msgstr "[BRUSH] שנה אטימות" - -#: ../src/develop/masks/brush.c:3263 -#, c-format -msgid "brush #%d" -msgstr "מברשת #%d" - -#: ../src/develop/masks/brush.c:3276 -#, c-format -msgid "" -"<b>size</b>: scroll, <b>hardness</b>: shift+scroll\n" -"<b>opacity</b>: ctrl+scroll (%d%%)" -msgstr "" -"<b>גודל</b>: גלול, <b>קושיות</b>: shift+גלול\n" -"<b>אטימות</b>: ctrl+גלול (%d%%)" - -#: ../src/develop/masks/brush.c:3279 -msgid "<b>size</b>: scroll" -msgstr "<b>גודל</b>: גלול" - -#: ../src/develop/masks/circle.c:137 ../src/develop/masks/circle.c:181 -#: ../src/develop/masks/ellipse.c:470 ../src/develop/masks/ellipse.c:531 -#: ../src/develop/masks/path.c:1205 -#, c-format -msgid "feather size: %3.2f%%" -msgstr "גודל נוצה: %3.2f%%" - -#: ../src/develop/masks/circle.c:1510 -msgid "[CIRCLE] change size" -msgstr "[CIRCLE] שנה גודל" - -#: ../src/develop/masks/circle.c:1512 -msgid "[CIRCLE] change feather size" -msgstr "[CIRCLE] שנה גודל נוצה" - -#: ../src/develop/masks/circle.c:1514 -msgid "[CIRCLE] change opacity" -msgstr "[CIRCLE] שנה אטימות" - -#: ../src/develop/masks/circle.c:1527 -#, c-format -msgid "circle #%d" -msgstr "מעגל #%d" - -#: ../src/develop/masks/circle.c:1538 ../src/develop/masks/path.c:3490 -#, c-format -msgid "" -"<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" -"<b>opacity</b>: ctrl+scroll (%d%%)" -msgstr "" -"<b>גודל</b>: גלול, <b>גודל נוצה</b>: shift+גלול\n" -"<b>אטימות</b>: ctrl+גלול (%d%%)" - -#: ../src/develop/masks/ellipse.c:456 ../src/develop/masks/ellipse.c:515 -#, c-format -msgid "rotation: %3.f°" -msgstr "סיבוב: %3.f°" - -#: ../src/develop/masks/ellipse.c:2068 -msgid "[ELLIPSE] change size" -msgstr "[ELLIPSE] שנה גודל" - -#: ../src/develop/masks/ellipse.c:2071 -msgid "[ELLIPSE] change feather size" -msgstr "[ELLIPSE] שנה גודל נוצה" - -#: ../src/develop/masks/ellipse.c:2074 ../src/develop/masks/ellipse.c:2083 -msgid "[ELLIPSE] rotate shape" -msgstr "[ELLIPSE] סובב צורה" - -#: ../src/develop/masks/ellipse.c:2077 -msgid "[ELLIPSE] change opacity" -msgstr "[ELLIPSE] שנה אטימות" - -#: ../src/develop/masks/ellipse.c:2080 -msgid "[ELLIPSE] switch feathering mode" -msgstr "[ELLIPSE] החלף מצב נוצה" - -#: ../src/develop/masks/ellipse.c:2090 -#, c-format -msgid "ellipse #%d" -msgstr "אליפסה #%d" - -#: ../src/develop/masks/ellipse.c:2128 -#, c-format -msgid "" -"<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" -"<b>rotation</b>: ctrl+shift+scroll, <b>opacity</b>: ctrl+scroll (%d%%)" -msgstr "" -"<b>גודל</b>: גלול, <b>גודל נוצה</b>: shift+גלול\n" -"<b>סיבוב</b>: ctrl+shift+גלול, <b>אטימות</b>: ctrl+גלול (%d%%)" - -#: ../src/develop/masks/ellipse.c:2132 -msgid "<b>rotate</b>: ctrl+drag" -msgstr "<b>סיבוב</b>: ctrl+גרור" - -#: ../src/develop/masks/ellipse.c:2135 -#, c-format -msgid "" -"<b>feather mode</b>: shift+click, <b>rotate</b>: ctrl+drag\n" -"<b>size</b>: scroll, <b>feather size</b>: shift+scroll, <b>opacity</b>: " -"ctrl+scroll (%d%%)" -msgstr "" -"<b>מצב נוצה</b>: shift+קליק, <b>סיבוב</b>: ctrl+גרור\n" -"<b>גודל</b>: גלול, <b>גודל נוצה</b>: shift+גלול, <b>אטימות</b>: ctrl+גלול " -"(%d%%)" - -#: ../src/develop/masks/gradient.c:131 ../src/develop/masks/gradient.c:175 -#, c-format -msgid "compression: %3.2f%%" -msgstr "דחיסה: %3.2f%%" - -#: ../src/develop/masks/gradient.c:143 ../src/develop/masks/gradient.c:186 -#, c-format -msgid "curvature: %3.2f%%" -msgstr "עקמומיות: %3.2f%%" - -#: ../src/develop/masks/gradient.c:1555 -msgid "[GRADIENT on pivot] rotate shape" -msgstr "[GRADIENT on pivot] סובב צורה" - -#: ../src/develop/masks/gradient.c:1557 -msgid "[GRADIENT creation] set rotation" -msgstr "[GRADIENT creation] קבע סיבוב" - -#: ../src/develop/masks/gradient.c:1559 -msgid "[GRADIENT] change curvature" -msgstr "[GRADIENT] שנה עקמומיות" - -#: ../src/develop/masks/gradient.c:1561 -msgid "[GRADIENT] change compression" -msgstr "[GRADIENT] שנה דחיסה" - -#: ../src/develop/masks/gradient.c:1563 -msgid "[GRADIENT] change opacity" -msgstr "[GRADIENT] שנה אטימות" - -#: ../src/develop/masks/gradient.c:1576 -#, c-format -msgid "gradient #%d" -msgstr "גרדיאנט #%d" - -#: ../src/develop/masks/gradient.c:1587 -#, c-format -msgid "" -"<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" -"<b>rotation</b>: click+drag, <b>opacity</b>: ctrl+scroll (%d%%)" -msgstr "" -"<b>עקמומיות</b>: גלול, <b>דחיסה</b>: shift+גלול\n" -"<b>סיבוב</b>: click+גרור, <b>אטימות</b>: ctrl+גלול (%d%%)" - -#: ../src/develop/masks/gradient.c:1592 -#, c-format -msgid "" -"<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" -"<b>opacity</b>: ctrl+scroll (%d%%)" -msgstr "" -"<b>עקמומיות</b>: גלול, <b>דחיסה</b>: shift+גלול\n" -"<b>אטימות</b>: ctrl+גלול (%d%%)" - -#: ../src/develop/masks/gradient.c:1595 -msgid "<b>rotate</b>: drag" -msgstr "<b>סיבוב</b>: גרור" - -#: ../src/develop/masks/masks.c:139 -msgid "[SHAPE] remove shape" -msgstr "[SHAPE] הסר צורה" - -#: ../src/develop/masks/masks.c:306 -#, c-format -msgid "group `%s'" -msgstr "קבוצה `%s'" - -#: ../src/develop/masks/masks.c:423 -#, c-format -msgid "copy of `%s'" -msgstr "העתק של `%s'" - -#: ../src/develop/masks/masks.c:984 -#, c-format -msgid "%s: mask version mismatch: %d != %d" -msgstr "%s: mask version mismatch: %d != %d" - -#: ../src/develop/masks/masks.c:1239 ../src/develop/masks/masks.c:1906 -#, c-format -msgid "opacity: %.0f%%" -msgstr "אטימות: %.0f%%" - -#: ../src/develop/masks/masks.c:1650 ../src/libs/masks.c:1068 -msgid "add existing shape" -msgstr "הוסף צורה קיימת" - -#: ../src/develop/masks/masks.c:1677 -msgid "use same shapes as" -msgstr "השתמש בצורה זהה ל" - -#: ../src/develop/masks/masks.c:1990 -msgid "masks can not contain themselves" -msgstr "מסיכות אינן יכולות להכיל את עצמן" - -#: ../src/develop/masks/path.c:3433 -msgid "[PATH creation] add a smooth node" -msgstr "[PATH creation] הוסף צומת חלק" - -#: ../src/develop/masks/path.c:3435 -msgid "[PATH creation] add a sharp node" -msgstr "[PATH creation] הוסף צומת חדות" - -#: ../src/develop/masks/path.c:3437 -msgid "[PATH creation] terminate path creation" -msgstr "[PATH creation] עצור יצירת נתיב" - -#: ../src/develop/masks/path.c:3439 -msgid "[PATH on node] switch between smooth/sharp node" -msgstr "[PATH on node] החלף בין צמתים חלק/חדות" - -#: ../src/develop/masks/path.c:3441 -msgid "[PATH on node] remove the node" -msgstr "[PATH on node] הסר את הצומת" - -#: ../src/develop/masks/path.c:3443 -msgid "[PATH on feather] reset curvature" -msgstr "[PATH on feather] אתחל עקמומיות" - -#: ../src/develop/masks/path.c:3445 -msgid "[PATH on segment] add node" -msgstr "[PATH on segment] הוסף צומת" - -#: ../src/develop/masks/path.c:3447 -msgid "[PATH] change size" -msgstr "[PATH] שנה גודל" - -#: ../src/develop/masks/path.c:3449 -msgid "[PATH] change feather size" -msgstr "[PATH] שנה גודל נוצה" - -#: ../src/develop/masks/path.c:3451 -msgid "[PATH] change opacity" -msgstr "[PATH] שנה אטימות" - -#: ../src/develop/masks/path.c:3463 -#, c-format -msgid "path #%d" -msgstr "נתיב #%d" - -#: ../src/develop/masks/path.c:3473 -msgid "" -"<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" -"<b>cancel</b>: right-click" -msgstr "" -"<b>הוסף צומת</b>: קליק, <b>הוסף צומת חידוד</b>:ctrl+קליק\n" -"<b>בטל</b>:קליק-ימני" - -#: ../src/develop/masks/path.c:3476 -msgid "" -"<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" -"<b>finish path</b>: right-click" -msgstr "" -"<b>הוסף צומת</b>: קליק, <b>הוסף צומת חידוד</b>:ctrl+קליק\n" -"<b>נתיב סיום</b>: קליק-ימני" - -#: ../src/develop/masks/path.c:3479 -msgid "" -"<b>move node</b>: drag, <b>remove node</b>: right-click\n" -"<b>switch smooth/sharp mode</b>: ctrl+click" -msgstr "" -"<b>מצב הזזה</b>: גרור, <b>הסר צומת</b>: קליק-ימני\n" -"<b>החלף מצבי החלקה/חידוד</b>: ctrl+קליק" - -#: ../src/develop/masks/path.c:3483 -msgid "" -"<b>node curvature</b>: drag\n" -"<b>reset curvature</b>: right-click" -msgstr "" -"<b>עקמומיות צומת</b>: גרור\n" -"<b>אתחל עקמומיות</b>: קליק-ימני" - -#: ../src/develop/masks/path.c:3487 -msgid "" -"<b>move segment</b>: drag\n" -"<b>add node</b>: ctrl+click" -msgstr "" -"<b>הזז מקטע</b>: גרור\n" -"<b>הוסף תומת</b>: ctrl+קליק" - -#: ../src/develop/pixelpipe_hb.c:500 -msgid "enabled as required" -msgstr "מופעל כנדרש" - -#: ../src/develop/pixelpipe_hb.c:501 -msgid "" -"history had module disabled but it is required for this type of image.\n" -"likely introduced by applying a preset, style or history copy&paste" -msgstr "" -"ההיסטוריה נטרלה את המודול אבל זה נדרש עבור תמונה מסוג זה.\n" -"ככל הנראה נגרם ע\"י יישום פריסט, סגנון או העתקה והדבקת היסטוריה" - -#: ../src/develop/pixelpipe_hb.c:508 -msgid "disabled as not appropriate" -msgstr "מנוטרל כלא ראוי" - -#: ../src/develop/pixelpipe_hb.c:509 -msgid "" -"history had module enabled but it is not allowed for this type of image.\n" -"likely introduced by applying a preset, style or history copy&paste" -msgstr "" -"ההיסטוריה נטרלה את המודול אבל זה לא מורשה עבור תמונה מסוג זה.\n" -"ככל הנראה נגרם ע\"י יישום פריסט, סגנון או העתקה והדבקת היסטוריה" - -#: ../src/develop/pixelpipe_hb.c:2705 -msgid "" -"darktable discovered problems with your OpenCL setup; disabling OpenCL for " -"this session!" -msgstr "" -"התוכנה darktable זיהתה בעיה עם ההתקנה של OpenCL; מנטרל OpenCL למושב הנוכחי!" - -#: ../src/develop/pixelpipe_hb.c:2853 -#, c-format -msgid "" -"module '%s' can't get raster mask from module\n" -"'%s' as that is processed later in the pixel pipe.\n" -"raster mask is ignored." -msgstr "" -"מודול '%s' לא יכול לקבל מסיכת רסטר ממודול\n" -"'%s' כיוון שזה מעובד מאוחר יותר בשרשרת.\n" -"מתעלם ממסיכת רסטר." - -#: ../src/develop/tiling.c:820 ../src/develop/tiling.c:1173 -#, c-format -msgid "tiling failed for module '%s'. output might be garbled." -msgstr "ריצוף נכשל עבור מודול '%s'. פלט עלול להיות שגוי." - -#: ../src/dtgtk/culling.c:254 -msgid "you have reached the start of your selection" -msgstr "הגעת לתחילת המבחר" - -#: ../src/dtgtk/culling.c:263 -msgid "you have reached the start of your collection" -msgstr "הגעת לתחילת המבחר" - -#: ../src/dtgtk/culling.c:310 -msgid "you have reached the end of your selection" -msgstr "הגעת לסוף האוסף" - -#: ../src/dtgtk/culling.c:337 -msgid "you have reached the end of your collection" -msgstr "הגעת לסוף האוסף" - -#: ../src/dtgtk/culling.c:446 -#, c-format -msgid "zooming is limited to %d images" -msgstr "יכולת לביצוע זום מוגבלת ל %d תמונות" - -#: ../src/dtgtk/range.c:214 ../src/dtgtk/range.c:219 -msgid "invalid" -msgstr "לא חוקי" - -#: ../src/dtgtk/range.c:327 -#, c-format -msgid "year %s" -msgstr "שנה %s" - -#: ../src/dtgtk/range.c:405 -msgid "" -"enter the minimal value\n" -"use 'min' if no bound\n" -"right-click to select from existing values" -msgstr "" -"הכנס ערך מינימלי\n" -"השתמש ב 'min' אם לא תחום\n" -"קליק-ימני לבחירה מתוך ערכים קיימים" - -#: ../src/dtgtk/range.c:411 -msgid "" -"enter the maximal value\n" -"use 'max' if no bound\n" -"right-click to select from existing values" -msgstr "" -"הכנס ערך מקסימלי\n" -"השתמש ב 'max' אם לא תחום\n" -"קליק-ימני לבחירה מתוך ערכים קיימים" - -#: ../src/dtgtk/range.c:417 -msgid "" -"enter the value\n" -"right-click to select from existing values" -msgstr "" -"הכנס ערך \n" -"קליק-ימני לבחירה מתוך ערכים קיימים" - -#: ../src/dtgtk/range.c:422 -msgid "" -"enter the minimal date\n" -"in the form YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)\n" -"use 'min' if no bound\n" -"use '-' prefix for relative date\n" -"right-click to select from calendar or existing values" -msgstr "" -"הכנס תאריך מוקדם ביותר \n" -"בפורמט YYYY:MM:DD hh:mm:ss.sss (רק השנה חובה)\n" -"השתמש ב 'min' אם לא תחום\n" -"השתמש ב '-' לתאריך יחסי\n" -"קליק-ימני לבחירה מתוך ערכים קיימים" - -#: ../src/dtgtk/range.c:430 -msgid "" -"enter the maximal date\n" -"in the form YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)\n" -"use 'max' if no bound\n" -"'now' keyword is handled\n" -"use '-' prefix for relative date\n" -"right-click to select from calendar or existing values" -msgstr "" -"הכנס תאריך מאוחר ביותר \n" -"בפורמט YYYY:MM:DD hh:mm:ss.sss (רק השנה חובה)\n" -"השתמש ב 'max' אם לא תחום\n" -"השתמש ב '-' לתאריך יחסי\n" -"קליק-ימני לבחירה מתוך ערכים קיימים" - -#: ../src/dtgtk/range.c:439 -msgid "" -"enter the date\n" -"in the form YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)\n" -"right-click to select from calendar or existing values" -msgstr "" -"הכנס תאריך\n" -"בפורמט YYYY:MM:DD hh:mm:ss.sss (רק השנה חובה)\n" -"קליק-ימני לבחירה מתוך ערכים קיימים" - -#: ../src/dtgtk/range.c:461 -msgid "date-time interval to subtract from the max value" -msgstr "תאריך-זמן להחסרה מהערך המקסימלי" - -#: ../src/dtgtk/range.c:465 -msgid "date-time interval to add to the min value" -msgstr "תאריך-זמן להוספה לערך המינימלי" - -#: ../src/dtgtk/range.c:486 -msgid "fixed" -msgstr "קבוע" - -#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1493 -msgid "relative" -msgstr "יחסי" - -#: ../src/dtgtk/range.c:577 -msgid "selected" -msgstr "נבחר" - -#: ../src/dtgtk/range.c:624 ../src/dtgtk/range.c:1768 ../src/dtgtk/range.c:1819 -#: ../src/libs/colorpicker.c:53 -msgid "min" -msgstr "מינימום" - -#: ../src/dtgtk/range.c:630 ../src/dtgtk/range.c:1780 ../src/dtgtk/range.c:1831 -#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:282 -msgid "max" -msgstr "מקסימום" - -#: ../src/dtgtk/range.c:944 -msgid "date type" -msgstr "סוג תאריך" - -#. the date section -#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1501 -msgid "date" -msgstr "תאריך" - -#: ../src/dtgtk/range.c:962 ../src/dtgtk/range.c:1028 -msgid "" -"click to select date\n" -"double-click to use the date directly" -msgstr "" -"קליק פשוט לבחירת תאריך\n" -"קליק כפול לשימוש בתאריך ישירות" - -#: ../src/dtgtk/range.c:973 -msgid "years: " -msgstr "שנים: " - -#: ../src/dtgtk/range.c:981 -msgid "months: " -msgstr "חודשים: " - -#: ../src/dtgtk/range.c:989 -msgid "days: " -msgstr "ימים: " - -#. the time section -#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1501 -msgid "time" -msgstr "זמן" - -#: ../src/dtgtk/range.c:1049 -msgid "current date: " -msgstr "תאריך נוכחי: " - -#: ../src/dtgtk/range.c:1053 ../src/dtgtk/range.c:1787 -#: ../src/dtgtk/range.c:1838 -msgid "now" -msgstr "עכשיו" - -#: ../src/dtgtk/range.c:1055 -msgid "set the value to always match current datetime" -msgstr "קבע את הערך כך שתמיד יתאים לתאריך-זמן הנוכחי" - -#. apply button -#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:162 -#: ../src/libs/metadata.c:905 ../src/libs/styles.c:897 -msgid "apply" -msgstr "יישם" - -#: ../src/dtgtk/range.c:1059 -msgid "set the range bound with this value" -msgstr "קבע את גבולות הטווח עם ערך זה" - -#: ../src/dtgtk/resetlabel.c:59 -msgid "double-click to reset" -msgstr "דאבל-קליק לאתחול" - -#: ../src/dtgtk/thumbnail.c:142 ../src/dtgtk/thumbnail.c:175 -msgid "current" -msgstr "נוכחי" - -#: ../src/dtgtk/thumbnail.c:142 ../src/dtgtk/thumbnail.c:151 -msgid "leader" -msgstr "מוביל" - -#: ../src/dtgtk/thumbnail.c:150 -msgid "" -"\n" -"click here to set this image as group leader\n" -msgstr "" -"\n" -"הקלק לקביעת תמונה זו כמובילת קבוצה\n" - -#. and the number of grouped images -#: ../src/dtgtk/thumbnail.c:187 ../src/libs/filters/grouping.c:144 -#: ../src/libs/filters/grouping.c:169 -msgid "grouped images" -msgstr "תמונות מקובצות" - -#: ../src/dtgtk/thumbnail.c:820 ../src/dtgtk/thumbnail.c:1635 -#: ../src/iop/ashift.c:6191 ../src/iop/ashift.c:6280 ../src/iop/ashift.c:6282 -#: ../src/iop/ashift.c:6284 ../src/libs/navigation.c:110 -#: ../src/libs/navigation.c:190 -msgid "fit" -msgstr "התאם" - -#: ../src/dtgtk/thumbtable.c:1041 ../src/views/slideshow.c:421 -msgid "there are no images in this collection" -msgstr "אין תמונות באוסף זה" - -#: ../src/dtgtk/thumbtable.c:1048 -msgid "if you have not imported any images yet" -msgstr "אם לא ייבאת תמונות עדיין" - -#: ../src/dtgtk/thumbtable.c:1052 -msgid "you can do so in the import module" -msgstr "תוכל לעשות כך במודול הייבוא" - -#: ../src/dtgtk/thumbtable.c:1061 -msgid "try to relax the filter settings in the top panel" -msgstr "נסה לשחרר את הגדרות הפילטר בפאנל העליון" - -#: ../src/dtgtk/thumbtable.c:1072 -msgid "or add images in the collections module in the left panel" -msgstr "או הוסף תמונות במודול האיסוף בפאנל השמאלי" - -#: ../src/dtgtk/thumbtable.c:1338 -msgid "" -"you have changed the settings related to how thumbnails are generated.\n" -msgstr "שינית שת ההגדרות הקשורות לאופן בו תמונות ממוזערות מיוצרות.\n" - -#: ../src/dtgtk/thumbtable.c:1341 -msgid "" -"all cached thumbnails need to be invalidated.\n" -"\n" -msgstr "" -"יש לבטל כל התמונות הממוזערות שבזיכרון.\n" -"\n" - -#: ../src/dtgtk/thumbtable.c:1345 -#, c-format -msgid "" -"cached thumbnails starting from level %d need to be invalidated.\n" -"\n" -msgstr "" -"תמונות ממוזערות בזיכרון החל מרמה %d צריכות להתבטל.\n" -"\n" - -#: ../src/dtgtk/thumbtable.c:1350 -#, c-format -msgid "" -"cached thumbnails below level %d need to be invalidated.\n" -"\n" -msgstr "" -"תמונות ממוזערות בזיכרון מתחת לרמה %d צריכות להתבטל.\n" -"\n" - -#: ../src/dtgtk/thumbtable.c:1355 -#, c-format -msgid "" -"cached thumbnails between level %d and %d need to be invalidated.\n" -"\n" -msgstr "" -"תמונות ממוזערות בזיכרון בין הרמות %d ו %d צריכות להתבטל.\n" -"\n" - -#: ../src/dtgtk/thumbtable.c:1358 -msgid "do you want to do that now?" -msgstr "האם ברצונך לעשות זאת כעת?" - -#: ../src/dtgtk/thumbtable.c:1360 -msgid "cached thumbnails invalidation" -msgstr "ביטול תמונות ממוזערות בזיכרון" - -#. setup history key accelerators -#: ../src/dtgtk/thumbtable.c:2561 -msgid "copy history" -msgstr "העתק היסטוריה" - -#: ../src/dtgtk/thumbtable.c:2563 -msgid "copy history parts" -msgstr "העתק חלקי היסטוריה" - -#: ../src/dtgtk/thumbtable.c:2565 -msgid "paste history" -msgstr "הדבק היסטוריה" - -#: ../src/dtgtk/thumbtable.c:2567 -msgid "paste history parts" -msgstr "הדבק חלקי היסטוריה" - -#: ../src/dtgtk/thumbtable.c:2569 ../src/libs/copy_history.c:394 -msgid "discard history" -msgstr "השלך היסטוריה" - -#: ../src/dtgtk/thumbtable.c:2572 -msgid "duplicate image" -msgstr "שכפל תמונה" - -#: ../src/dtgtk/thumbtable.c:2574 -msgid "duplicate image virgin" -msgstr "שכפל תמונה טהורה" - -#: ../src/dtgtk/thumbtable.c:2584 ../src/libs/select.c:147 -msgid "select film roll" -msgstr "בחר גליל פילם" - -#: ../src/dtgtk/thumbtable.c:2586 ../src/libs/select.c:151 -msgid "select untouched" -msgstr "בחר שלא נערכו" - -#: ../src/generate-cache/main.c:50 -#, c-format -msgid "creating cache directories\n" -msgstr "יוצר מחיצות מטמון\n" - -#: ../src/generate-cache/main.c:56 -#, c-format -msgid "creating cache directory '%s'\n" -msgstr "יוצר מחיצת מטמון '%s'\n" - -#: ../src/generate-cache/main.c:59 -#, c-format -msgid "could not create directory '%s'!\n" -msgstr "יצירת תיקיה '%s' נכשלה!\n" - -#: ../src/generate-cache/main.c:83 -#, c-format -msgid "warning: no images are matching the requested image id range\n" -msgstr "אזהרה: אף תמונה לא תואמת את זהות התמונה המבוקשת\n" - -#: ../src/generate-cache/main.c:86 -#, c-format -msgid "warning: did you want to swap these boundaries?\n" -msgstr "אזהרה: האם רצית להחליף גבולות אלה?\n" - -#: ../src/generate-cache/main.c:227 -#, c-format -msgid "" -"warning: disk backend for thumbnail cache is disabled (cache_disk_backend)\n" -"if you want to pre-generate thumbnails and for darktable to use them, you " -"need to enable disk backend for thumbnail cache\n" -"no thumbnails to be generated, done.\n" -msgstr "" -"אזהרה: שימוש בדיסק כמטמון לתמונות ממוזערות (cache_disk_backend) מנוטרל \n" -"אם ברצונך לייצר מבעוד מועד תמונות ממוזערות כך ש darktable יוכל להשתמש בהם, " -"עליך לאפשר שימוש בדיסק כמטמון עבור תמונות ממוזערות\n" -"תמונות ממוזערות לא ייוצרו, נעשה.\n" - -#: ../src/generate-cache/main.c:238 -#, c-format -msgid "" -"warning: disk backend for full preview cache is disabled " -"(cache_disk_backend_full)\n" -"if you want to pre-generate full previews and for darktable to use them, you " -"need to enable disk backend for full preview cache\n" -"no full previews to be generated, done.\n" -msgstr "" -"אזהרה: שימוש בדיסק כמטמון לתצוגה מקדימה (cache_disk_backend_full) מנוטרל \n" -"אם ברצונך לייצר מבעוד מועד תמונות לתצוגה מקדימה כך ש darktable יוכל להשתמש " -"בהם, עליך לאפשר שימוש בדיסק כמטמון עבור תמונות תצוגה מקדימה\n" -"לא ייווצרו תמונות לתצוגה מקדימה, נעשה\n" - -#: ../src/generate-cache/main.c:248 -#, c-format -msgid "error: ensure that min_mip <= max_mip\n" -msgstr "שגיאה: וודא ש min_mip <= max_mip\n" - -#: ../src/generate-cache/main.c:253 -#, c-format -msgid "creating complete lighttable thumbnail cache\n" -msgstr "יוצר מטמון מלא של תמונות ממוזערות עבור שולחן אור\n" - -#: ../src/gui/accelerators.c:61 -msgid "active view" -msgstr "תצוגה פעילה" - -#: ../src/gui/accelerators.c:62 -msgid "other views" -msgstr "תצוגות אחרות" - -#: ../src/gui/accelerators.c:63 -msgid "fallbacks" -msgstr "ברירות מחדל" - -#: ../src/gui/accelerators.c:64 ../src/gui/accelerators.c:722 -#: ../src/gui/accelerators.c:2607 ../src/gui/accelerators.c:3470 -msgid "speed" -msgstr "מהירות" - -#: ../src/gui/accelerators.c:80 ../src/views/view.c:1202 -msgid "scroll" -msgstr "גלול" - -#: ../src/gui/accelerators.c:81 -msgid "pan" -msgstr "pan" - -#: ../src/gui/accelerators.c:82 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6283 ../src/iop/clipping.c:1902 -#: ../src/iop/clipping.c:2094 ../src/iop/clipping.c:2110 -#: ../src/views/darkroom.c:2676 ../src/views/lighttable.c:1250 -msgid "horizontal" -msgstr "אופקי" - -#: ../src/gui/accelerators.c:83 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6281 ../src/iop/clipping.c:1901 -#: ../src/iop/clipping.c:2095 ../src/iop/clipping.c:2109 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:1254 -msgid "vertical" -msgstr "אנכי" - -#: ../src/gui/accelerators.c:84 -msgid "diagonal" -msgstr "אלכסון" - -#: ../src/gui/accelerators.c:86 -msgid "leftright" -msgstr "שמאלימין" - -#: ../src/gui/accelerators.c:87 -msgid "updown" -msgstr "updown" - -#: ../src/gui/accelerators.c:88 -msgid "pgupdown" -msgstr "pgupdown" - -#: ../src/gui/accelerators.c:96 ../src/views/view.c:1186 -msgid "shift" -msgstr "הסחת" - -#: ../src/gui/accelerators.c:97 ../src/views/view.c:1187 -msgid "ctrl" -msgstr "ctrl" - -#: ../src/gui/accelerators.c:98 ../src/views/view.c:1188 -msgid "alt" -msgstr "alt" - -#: ../src/gui/accelerators.c:99 -msgid "cmd" -msgstr "cmd" - -#: ../src/gui/accelerators.c:100 -msgid "altgr" -msgstr "altgr" - -#: ../src/gui/accelerators.c:109 ../src/gui/accelerators.c:156 -#: ../src/libs/tagging.c:1782 -msgid "edit" -msgstr "ערוך" - -#: ../src/gui/accelerators.c:110 ../src/gui/accelerators.c:682 -msgid "up" -msgstr "up" - -#: ../src/gui/accelerators.c:111 ../src/gui/accelerators.c:682 -msgid "down" -msgstr "מטה" - -#: ../src/gui/accelerators.c:115 -msgid "set" -msgstr "קבע" - -#: ../src/gui/accelerators.c:119 -msgid "popup" -msgstr "popup" - -#: ../src/gui/accelerators.c:120 ../src/gui/accelerators.c:153 -#: ../src/gui/gtk.c:3054 ../src/views/lighttable.c:760 -msgid "next" -msgstr "הבא" - -#: ../src/gui/accelerators.c:121 ../src/gui/accelerators.c:152 -#: ../src/gui/gtk.c:3055 ../src/views/lighttable.c:761 -msgid "previous" -msgstr "קודם" - -#: ../src/gui/accelerators.c:123 ../src/gui/accelerators.c:1462 -msgid "last" -msgstr "אחרון" - -#: ../src/gui/accelerators.c:124 ../src/gui/accelerators.c:1461 -msgid "first" -msgstr "first" - -#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:141 -#: ../src/gui/accelerators.c:314 ../src/libs/filters/rating_range.c:268 -#: ../src/libs/tagging.c:3119 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2419 ../src/views/darkroom.c:2648 -msgid "toggle" -msgstr "מתג" - -#: ../src/gui/accelerators.c:131 -msgid "ctrl-toggle" -msgstr "ctrl-toggle" - -#: ../src/gui/accelerators.c:132 -msgid "ctrl-on" -msgstr "ctrl-on" - -#: ../src/gui/accelerators.c:133 -msgid "right-toggle" -msgstr "מתג-ימין" - -#: ../src/gui/accelerators.c:134 -msgid "right-on" -msgstr "ימין-דלוק" - -#: ../src/gui/accelerators.c:145 ../src/gui/gtk.c:3053 -msgid "activate" -msgstr "הפעל" - -#: ../src/gui/accelerators.c:146 -msgid "ctrl-activate" -msgstr "הפעל-ctrl" - -#: ../src/gui/accelerators.c:147 -msgid "right-activate" -msgstr "right-activate" - -#: ../src/gui/accelerators.c:154 -msgid "store" -msgstr "אחסון" - -#: ../src/gui/accelerators.c:157 ../src/gui/styles_dialog.c:639 -msgid "update" -msgstr "עדכן" - -#: ../src/gui/accelerators.c:158 ../src/libs/tools/global_toolbox.c:60 -#: ../src/libs/tools/global_toolbox.c:510 -msgid "preferences" -msgstr "העדפות" - -#: ../src/gui/accelerators.c:163 -msgid "apply on new instance" -msgstr "יישם שלב חדש" - -#: ../src/gui/accelerators.c:168 -msgid "start" -msgstr "התחל" - -#: ../src/gui/accelerators.c:169 -msgid "end" -msgstr "סוף" - -#: ../src/gui/accelerators.c:332 -msgid "entry" -msgstr "ערך" - -#: ../src/gui/accelerators.c:409 -msgid "combo effect not found" -msgstr "צבע משולב לא נמצא" - -#: ../src/gui/accelerators.c:578 -msgid "(keypad)" -msgstr "(keypad)" - -#: ../src/gui/accelerators.c:587 -msgid "tablet button" -msgstr "כפתור טאבלט" - -#: ../src/gui/accelerators.c:596 -msgid "unknown driver" -msgstr "דרייבר לא ידוע" - -#: ../src/gui/accelerators.c:663 -msgid "long" -msgstr "ארוך" - -#: ../src/gui/accelerators.c:664 -msgid "double-press" -msgstr "double-press" - -#: ../src/gui/accelerators.c:665 -msgid "triple-press" -msgstr "triple-press" - -#: ../src/gui/accelerators.c:666 -msgid "press" -msgstr "press" - -#: ../src/gui/accelerators.c:670 -msgctxt "accel" -msgid "left" -msgstr "שמאל" - -#: ../src/gui/accelerators.c:671 -msgctxt "accel" -msgid "right" -msgstr "ימין" - -#: ../src/gui/accelerators.c:672 -msgctxt "accel" -msgid "middle" -msgstr "אמצע" - -#: ../src/gui/accelerators.c:673 -msgctxt "accel" -msgid "long" -msgstr "ארוך" - -#: ../src/gui/accelerators.c:674 -msgctxt "accel" -msgid "double-click" -msgstr "קליק-כפול" - -#: ../src/gui/accelerators.c:675 -msgctxt "accel" -msgid "triple-click" -msgstr "קליק-משולש ימני" - -#: ../src/gui/accelerators.c:676 -msgid "click" -msgstr "קליק" - -#: ../src/gui/accelerators.c:704 -msgid "first instance" -msgstr "שלב ראשון" - -#: ../src/gui/accelerators.c:706 -msgid "last instance" -msgstr "שלב אחרון" - -#: ../src/gui/accelerators.c:708 -msgid "relative instance" -msgstr "שלב יחסי" - -#: ../src/gui/accelerators.c:867 -#, c-format -msgid "" -"Lua script command copied to clipboard:\n" -"\n" -"<tt>%s</tt>" -msgstr "" -"פקודת Lua הועתקה לזיכרון:\n" -"\n" -"<tt>%s</tt>" - -#: ../src/gui/accelerators.c:965 ../src/gui/accelerators.c:978 -msgid "start typing for incremental search" -msgstr "התחל להקליד לחיפוש אינקרמנטלי" - -#: ../src/gui/accelerators.c:966 -msgid "" -"\n" -"press Delete to delete selected shortcut" -msgstr "" -"\n" -"לחץ על Delete למחיקת את הקיצור הנבחר" - -#: ../src/gui/accelerators.c:968 -msgid "" -"\n" -"double-click to add new shortcut" -msgstr "" -"\n" -"דאבל-קליק להוספת קיצור חדש" - -#: ../src/gui/accelerators.c:979 -msgid "click to filter shortcuts list" -msgstr "הקלק לסינון רשימת קיצורים" - -#: ../src/gui/accelerators.c:981 -msgid "" -"\n" -"right click to show action of selected shortcut" -msgstr "" -"\n" -"קליק ימני להצגת הפעולה של קיצור הדרך הנבחר" - -#: ../src/gui/accelerators.c:984 -msgid "" -"\n" -"double-click to define new shortcut" -msgstr "" -"\n" -"הקלקה כפולה להגדרת קיצורים חדשים" - -#: ../src/gui/accelerators.c:1015 -msgid "shift+alt+scroll to change height" -msgstr "גלול+shift+alt לשינוי גובה" - -#: ../src/gui/accelerators.c:1035 -msgid "" -"press keys with mouse click and scroll or move combinations to create a " -"shortcut" -msgstr "לחץ על קומבינציות מקשים עם קליק עכבר וגלול או הזז לייצר קיצור" - -#: ../src/gui/accelerators.c:1036 -msgid "click to open shortcut configuration" -msgstr "הקלק לפתיחת קונפיגורציות קיצורים" - -#: ../src/gui/accelerators.c:1037 -msgid "ctrl+click to add to quick access panel\n" -msgstr "לחץ ctrl+קליק לגישה מהירה לפאנל\n" - -#: ../src/gui/accelerators.c:1038 -msgid "ctrl+click to remove from quick access panel\n" -msgstr "קליק+ctrl להסרה מפאנל הגישה המהירה\n" - -#: ../src/gui/accelerators.c:1039 -msgid "scroll to change default speed" -msgstr "גלול לשינוי מהירות ברירת מחדל" - -#: ../src/gui/accelerators.c:1040 -msgid "right click to exit mapping mode" -msgstr "קליק-ימין ליציאה ממצב מיפוי" - -#: ../src/gui/accelerators.c:1051 -#, c-format -msgid "" -"%sright-click to type a specific value between <b>%s</b> and <b>%s</b>\n" -"or hold ctrl+shift while dragging to ignore soft limits." -msgstr "" -"%sright-click to type a specific value between <b>%s</b> and <b>%s</b>\n" -"or hold ctrl+shift while dragging to ignore soft limits." - -#: ../src/gui/accelerators.c:1112 -msgid "ctrl+v" -msgstr "ctrl+v" - -#: ../src/gui/accelerators.c:1112 -msgid "right long click" -msgstr "קליק ימני ארוך" - -#: ../src/gui/accelerators.c:1112 -msgid "to copy Lua command" -msgstr "להעתקת פקודת Lua" - -#: ../src/gui/accelerators.c:1344 -msgid "shortcut for move exists with single effect" -msgstr "קיצור עבור הזזה קיים עם אפקט בודד" - -#: ../src/gui/accelerators.c:1345 -msgid "create separate shortcuts for up and down move?" -msgstr "צור קיצורים נפרדים עבור הזזה מעלה ומטה?" - -#: ../src/gui/accelerators.c:1368 -#, c-format -msgid "%s, speed reset" -msgstr "%s, אתחול מהירות" - -#: ../src/gui/accelerators.c:1377 -msgid "shortcut exists with different settings" -msgstr "קיצור קיים עם הגדרות שונות" - -#: ../src/gui/accelerators.c:1378 -msgid "reset the settings of the shortcut?" -msgstr "אתחל את הגדרות הקיצור?" - -#: ../src/gui/accelerators.c:1389 -msgid "shortcut already exists" -msgstr "קיצור כבר קיים" - -#: ../src/gui/accelerators.c:1390 -msgid "remove the shortcut?" -msgstr "הסר את הקיצור?" - -#: ../src/gui/accelerators.c:1423 -msgid "clashing shortcuts exist" -msgstr "קיימים קיצורים מתנגשים" - -#: ../src/gui/accelerators.c:1424 -msgid "remove these existing shortcuts?" -msgstr "הסר את הקיצורים הקיימים האלה?" - -#. or 3, but change char relative[] = "-2" to "-1" -#. NUM_INSTANCES -#: ../src/gui/accelerators.c:1460 -msgid "preferred" -msgstr "מועדף" - -#: ../src/gui/accelerators.c:1463 -msgid "second" -msgstr "שני" - -#: ../src/gui/accelerators.c:1464 -msgid "last but one" -msgstr "אחרון למעט אחד" - -#: ../src/gui/accelerators.c:1610 ../src/gui/accelerators.c:1670 -msgid "(unchanged)" -msgstr "(unchanged)" - -#: ../src/gui/accelerators.c:1776 -msgid "" -"define a shortcut by pressing a key, optionally combined with modifier keys " -"(ctrl/shift/alt)\n" -"a key can be double or triple pressed, with a long last press\n" -"while the key is held, a combination of mouse buttons can be (double/triple/" -"long) clicked\n" -"still holding the key (and modifiers and/or buttons) a scroll or mouse move " -"can be added\n" -"connected devices can send keys or moves using their physical controllers\n" -"\n" -"right-click to cancel" -msgstr "" -"הגדר קיצור על ידי לחיצה על מקש, אופציונלית בשילוב עם מקש שינוי (ctrl/shift/" -"alt)\n" -"ניתן ללחוץ על מקש פעמיים או שלוש, עם לחיצה אחרונה ארוכה\n" -"כאשר מקש מוחזק, שילוב של לחיצות עכבר (לחיצה כפולה/משולשת/ארוכה) אפשרי\n" -"תוך כדי החזקת מקש (בשילוב מקש שינוי ו/או כפתורי עכבר) ניתן להוסיף גלילה או " -"הזזת עכבר\n" -"אביזרים מחוברים יכולים לשלוח מקשים או הזזות על ידי הבקרים הפיסיים שלהם\n" -"\n" -"קליק ימני לביטול" - -#: ../src/gui/accelerators.c:1847 -msgid "removing shortcut" -msgstr "הסרת קיצור דרך" - -#: ../src/gui/accelerators.c:1848 -msgid "remove the selected shortcut?" -msgstr "מחק את הקיצור הנבחר?" - -#: ../src/gui/accelerators.c:1938 -msgid "command" -msgstr "פקודה" - -#: ../src/gui/accelerators.c:1939 -msgid "preset" -msgstr "פריסט" - -#: ../src/gui/accelerators.c:2272 -msgid "restore shortcuts" -msgstr "שחזור קיצורי דרך" - -#: ../src/gui/accelerators.c:2275 -msgid "_defaults" -msgstr "_defaults" - -#: ../src/gui/accelerators.c:2276 -msgid "_startup" -msgstr "_startup" - -#: ../src/gui/accelerators.c:2277 -msgid "_edits" -msgstr "_edits" - -#: ../src/gui/accelerators.c:2283 -msgid "" -"restore shortcuts from one of these states:\n" -" - default\n" -" - as at startup\n" -" - as when opening this dialog\n" -msgstr "" -"אחזר קיצורים מתוך אחד המצבים:\n" -" - ברירת מחדל\n" -" - כמו באתחול\n" -" - כמו בפתיחת תיבת שיח זו\n" - -#: ../src/gui/accelerators.c:2289 -msgid "" -"clear all newer shortcuts\n" -"(instead of just restoring changed ones)" -msgstr "" -"נקה את כל הקיצורים החדשים יותר\n" -"(במקום לאחזר רק כאלה ששונו)" - -#: ../src/gui/accelerators.c:2344 ../src/gui/preferences.c:906 -#: ../src/libs/tools/global_toolbox.c:494 -#: ../src/libs/tools/global_toolbox.c:645 -msgid "shortcuts" -msgstr "קיצורי דרך" - -#: ../src/gui/accelerators.c:2353 -msgid "export shortcuts" -msgstr "ייצוא קיצורי דרך" - -#: ../src/gui/accelerators.c:2356 ../src/gui/accelerators.c:2436 -#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:564 -msgid "_ok" -msgstr "_אוקיי" - -#: ../src/gui/accelerators.c:2361 -msgid "" -"export all shortcuts to a file\n" -"or just for one selected device\n" -msgstr "" -"ייצא את כל הקיצורים לקובץ\n" -"או רק עבור התקן נבחר\n" - -#: ../src/gui/accelerators.c:2368 ../src/gui/accelerators.c:2448 -msgid "keyboard" -msgstr "מקלדת" - -#: ../src/gui/accelerators.c:2380 -msgid "device id" -msgstr "מזהה התקן" - -#: ../src/gui/accelerators.c:2406 -msgid "select file to export" -msgstr "בחר קובץ לייצוא" - -#: ../src/gui/accelerators.c:2407 ../src/libs/tagging.c:2525 -msgid "_export" -msgstr "_ייצא" - -#: ../src/gui/accelerators.c:2433 -msgid "import shortcuts" -msgstr "ייבוא קיצורי דרך" - -#: ../src/gui/accelerators.c:2441 -msgid "" -"import all shortcuts from a file\n" -"or just for one selected device\n" -msgstr "" -"ייבא את כל הקיצורים מקובץ\n" -"או רק עבור התקן נבחר\n" - -#: ../src/gui/accelerators.c:2460 -msgid "id in file" -msgstr "מזהה בקובץ" - -#: ../src/gui/accelerators.c:2466 -msgid "id when loaded" -msgstr "מזהה בזמן טעינה" - -#: ../src/gui/accelerators.c:2470 -msgid "clear device first" -msgstr "נקה התקנים קודם" - -#: ../src/gui/accelerators.c:2494 -msgid "select file to import" -msgstr "בחר קובץ לייבוא" - -#: ../src/gui/accelerators.c:2495 ../src/libs/tagging.c:2489 -msgid "_import" -msgstr "_ייבא" - -#: ../src/gui/accelerators.c:2568 -msgid "search shortcuts list" -msgstr "חפש ברשימת הקיצורים" - -#: ../src/gui/accelerators.c:2569 -msgid "" -"incrementally search the list of shortcuts\n" -"press up or down keys to cycle through matches" -msgstr "" -"חפש חלקית ברשימת הקיצורים\n" -"לחץ על מקשי המעלה מטה לגלול את התוצאות" - -#. Setting up the cell renderers -#: ../src/gui/accelerators.c:2583 ../src/views/view.c:1383 -msgid "shortcut" -msgstr "קיצור דרך" - -#: ../src/gui/accelerators.c:2585 ../src/gui/accelerators.c:2676 -#: ../src/views/view.c:1385 -msgid "action" -msgstr "פעולה" - -#: ../src/gui/accelerators.c:2594 -msgid "element" -msgstr "אלמנט" - -#: ../src/gui/accelerators.c:2601 -msgid "effect" -msgstr "אפקט" - -#: ../src/gui/accelerators.c:2658 -msgid "search actions list" -msgstr "חפש ברשימת הפעולות" - -#: ../src/gui/accelerators.c:2659 -msgid "" -"incrementally search the list of actions\n" -"press up or down keys to cycle through matches" -msgstr "" -"חפש חלקית ברשימת הפעולות\n" -"לחץ על מקשי המעלה מטה לגלול את התוצאות" - -#: ../src/gui/accelerators.c:2682 ../src/gui/guides.c:719 -#: ../src/libs/export_metadata.c:192 -msgid "type" -msgstr "סוג" - -#: ../src/gui/accelerators.c:2717 -msgid "enable fallbacks" -msgstr "אפשר עתודות" - -#: ../src/gui/accelerators.c:2718 -msgid "" -"enables default meanings for additional buttons, modifiers or moves\n" -"when used in combination with a base shortcut" -msgstr "" -"מאפשר משמעויות ברירת מחדל עבור כפתורים נוספים, משני ייעוד או הזזות\n" -"כאשר בשימוש בשילוב עם קיצורי בסיס" - -#: ../src/gui/accelerators.c:2725 -msgid "open help page for shortcuts" -msgstr "פתח דף עזרה לקיצורי דרך" - -#: ../src/gui/accelerators.c:2730 -msgid "restore..." -msgstr "שחזר..." - -#: ../src/gui/accelerators.c:2731 -msgid "restore default shortcuts or previous state" -msgstr "אחזר קיצורי ברירת מחדל או מצב קודם" - -#: ../src/gui/accelerators.c:2735 ../src/libs/styles.c:883 -#: ../src/libs/tagging.c:3251 -msgid "import..." -msgstr "ייבא..." - -#: ../src/gui/accelerators.c:2736 -msgid "fully or partially import shortcuts from file" -msgstr "ייבא קיצורים חלקית או באופן מלא מקובץ" - -#: ../src/gui/accelerators.c:2740 ../src/libs/styles.c:890 -#: ../src/libs/tagging.c:3254 -msgid "export..." -msgstr "ייצא..." - -#: ../src/gui/accelerators.c:2741 -msgid "fully or partially export shortcuts to file" -msgstr "ייצא קיצורים חלקית או באופן מלא לקובץ" - -#: ../src/gui/accelerators.c:3139 -msgid "reinitialising input devices" -msgstr "מאתחל מחדש התקני קלט" - -#: ../src/gui/accelerators.c:3342 -msgid "fallback to move" -msgstr "לברירת מחדל תזוזה" - -#: ../src/gui/accelerators.c:3578 -#, c-format -msgid "%s not assigned" -msgstr "לא תויגו %s" - -#: ../src/gui/accelerators.c:3751 -#, c-format -msgid "%s assigned to %s" -msgstr "%s assigned to %s" - -#: ../src/gui/gtk.c:173 ../src/views/darkroom.c:4650 -msgid "darktable - darkroom preview" -msgstr "darktable - תצוגה מקדימה של חדר חושך" - -#: ../src/gui/gtk.c:184 -msgid "tooltips off" -msgstr "כבה חלוניות מידע" - -#: ../src/gui/gtk.c:186 -msgid "tooltips on" -msgstr "הדלק חלוניות מידע" - -#: ../src/gui/gtk.c:191 -msgid "" -"tooltip visibility can only be toggled if compositing is enabled in your " -"window manager" -msgstr "" -"ניתן לשלוט בכיבוי והדלקה של חלוניות מידע רק אם compositing מאופשר במנהל " -"החלונות" - -#: ../src/gui/gtk.c:814 -msgid "closing darktable..." -msgstr "סוגר את darktable..." - -#: ../src/gui/gtk.c:1135 -msgid "panels" -msgstr "פאנלים" - -#. an action that does nothing - used for overriding/removing default shortcuts -#: ../src/gui/gtk.c:1184 -msgid "no-op" -msgstr "no-op" - -#: ../src/gui/gtk.c:1186 -msgid "switch views" -msgstr "החלף מבטים" - -#: ../src/gui/gtk.c:1187 ../src/views/tethering.c:102 -msgid "tethering" -msgstr "קשירה" - -#: ../src/gui/gtk.c:1188 ../src/gui/preferences.c:531 -#: ../src/gui/preferences.c:542 ../src/libs/tools/lighttable.c:66 -#: ../src/views/lighttable.c:91 -msgid "lighttable" -msgstr "שולחן אור" - -#: ../src/gui/gtk.c:1189 ../src/gui/preferences.c:532 -#: ../src/gui/preferences.c:542 ../src/views/darkroom.c:94 -msgid "darkroom" -msgstr "חדר חושך" - -#: ../src/gui/gtk.c:1190 ../src/views/map.c:197 -msgid "map" -msgstr "מפה" - -#: ../src/gui/gtk.c:1191 ../src/views/slideshow.c:389 -msgid "slideshow" -msgstr "מצגת שקופיות" - -#. Print button -#: ../src/gui/gtk.c:1192 ../src/libs/print_settings.c:2885 -msgid "print" -msgstr "הדפס" - -#. register ctrl-q to quit: -#: ../src/gui/gtk.c:1198 -msgid "quit" -msgstr "עזוב" - -#. Full-screen accelerator (no ESC handler here to enable quit-slideshow using ESC) -#: ../src/gui/gtk.c:1201 -msgid "fullscreen" -msgstr "מסך מלא" - -#: ../src/gui/gtk.c:1205 -msgid "collapsing controls" -msgstr "מתג בקרי מתקפלים" - -#. specific top/bottom toggles -#: ../src/gui/gtk.c:1207 -msgid "header" -msgstr "מוביל" - -#: ../src/gui/gtk.c:1208 -msgid "filmstrip and timeline" -msgstr "רצועת פילם וקו זמן" - -#: ../src/gui/gtk.c:1209 -msgid "top toolbar" -msgstr "סרגל כלים עליון" - -#: ../src/gui/gtk.c:1210 -msgid "bottom toolbar" -msgstr "סרגל כלים תחתון" - -#: ../src/gui/gtk.c:1211 -msgid "all top" -msgstr "הכל עליון" - -#: ../src/gui/gtk.c:1212 -msgid "all bottom" -msgstr "הכל תחתון" - -#: ../src/gui/gtk.c:1214 -msgid "toggle tooltip visibility" -msgstr "מתג חלוניות מידע" - -#: ../src/gui/gtk.c:1215 -msgid "reinitialise input devices" -msgstr "אתחל מחדש התקני קלט" - -#: ../src/gui/gtk.c:1253 -msgid "toggle focus-peaking mode" -msgstr "מתג שיא פוקוס" - -#. toggle focus peaking everywhere -#: ../src/gui/gtk.c:1258 -msgid "toggle focus peaking" -msgstr "מתג שיא פוקוס" - -#: ../src/gui/gtk.c:1594 ../src/gui/gtk.c:3143 ../src/gui/gtk.c:3148 -#: ../src/gui/gtk.c:3153 ../src/gui/gtk.c:3158 -msgid "tabs" -msgstr "כרטיסיות" - -#: ../src/gui/gtk.c:2535 -msgid "_yes" -msgstr "_כן" - -#: ../src/gui/gtk.c:2536 -msgid "_no" -msgstr "_לא" - -#. ask the user if darktable.org may be accessed -#: ../src/gui/gtk.c:2647 -msgid "access the online user manual?" -msgstr "פתח את המדריך למשתמש המכוון?" - -#: ../src/gui/gtk.c:2648 -#, c-format -msgid "do you want to access `%s'?" -msgstr "האם ברצונך לגשת ל `%s'?" - -#: ../src/gui/gtk.c:2717 -msgid "help url opened in web browser" -msgstr "כתובת url לעזרה נפתחה בדפדפן" - -#: ../src/gui/gtk.c:2721 -msgid "error while opening help url in web browser" -msgstr "שגיאה בפתיחת כתובת url לעזרה בדפדפן" - -#: ../src/gui/gtk.c:2732 -msgid "there is no help available for this element" -msgstr "אין עזרה זמינה עבור אלמנט זה" - -#. font name can only use period as decimal separator -#. but printf format strings use comma for some locales, so replace comma with period -#: ../src/gui/gtk.c:2752 -#, c-format -msgid "%.1f" -msgstr "%.1f" - -#: ../src/gui/gtk.c:2754 -#, c-format -msgid "Sans %s" -msgstr "Sans %s" - -#: ../src/gui/gtk.c:3048 -msgid "does not contain pages" -msgstr "לא כולל דפים" - -#: ../src/gui/gtk.c:3265 -#, c-format -msgid "never show more than %d lines" -msgstr "לעולם אל תציג יותר מ %d קווים" - -#: ../src/gui/gtkentry.c:172 -msgid "$(ROLL.NAME) - roll of the input image" -msgstr "גליל תמונת הקלט - (ROLL.NAME)$" - -#: ../src/gui/gtkentry.c:173 -msgid "$(FILE.FOLDER) - folder containing the input image" -msgstr "תיקיה המכילה את תמונת הקלט - (FILE.FOLDER)$" - -#: ../src/gui/gtkentry.c:174 -msgid "$(FILE.NAME) - basename of the input image" -msgstr "שם הבסיס של תמונת הקלט - (FILE.NAME)$" - -#: ../src/gui/gtkentry.c:175 -msgid "$(FILE.EXTENSION) - extension of the input image" -msgstr "סיומת שם הקובץ של תמונת הקלט - (FILE.EXTENSION))$" - -#: ../src/gui/gtkentry.c:176 -msgid "$(VERSION) - duplicate version" -msgstr "גרסה משוכפלת - (VERSION)$" - -#: ../src/gui/gtkentry.c:177 -msgid "" -"$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version " -"exists" -msgstr "" -"$(VERSION.IF_MULTI) - כמו $(VERSION) רק עם מחרוזת ריקה בהינתן גרסה אחת בלבד" - -#: ../src/gui/gtkentry.c:178 -msgid "$(VERSION.NAME) - version name from metadata" -msgstr "$(VERSION.NAME) - שם גרסה מתוך מטה נתונים" - -#: ../src/gui/gtkentry.c:179 -msgid "$(JOBCODE) - job code for import" -msgstr "$(JOBCODE) - קוד פעולה לייבוא" - -#: ../src/gui/gtkentry.c:180 -msgid "$(SEQUENCE) - sequence number" -msgstr "סדרה מספר - (SEQUENCE)$" - -#: ../src/gui/gtkentry.c:181 -msgid "$(WIDTH.MAX) - maximum image export width" -msgstr "$(WIDTH.MAX) - רוחב ייצוא תמונה מירבי" - -#: ../src/gui/gtkentry.c:182 -msgid "$(WIDTH.SENSOR) - image sensor width" -msgstr "$(WIDTH.SENSOR) - רוחב חיישן" - -#: ../src/gui/gtkentry.c:183 -msgid "$(WIDTH.RAW) - RAW image width" -msgstr "$(WIDTH.RAW) - RAW רוחב תמונה" - -#: ../src/gui/gtkentry.c:184 -msgid "$(WIDTH.CROP) - image width after crop" -msgstr "$(WIDTH.CROP) - רוחב תמונה לאחר חיתוך" - -#: ../src/gui/gtkentry.c:185 -msgid "$(WIDTH.EXPORT) - exported image width" -msgstr "$(WIDTH.EXPORT) - רוחב תמונה לייצוא" - -#: ../src/gui/gtkentry.c:186 -msgid "$(HEIGHT.MAX) - maximum image export height" -msgstr "$(HEIGHT.MAX) - גובה ייצוא תמונה מירבי" - -#: ../src/gui/gtkentry.c:187 -msgid "$(HEIGHT.SENSOR) - image sensor height" -msgstr "$(HEIGHT.SENSOR) - גובה חיישן" - -#: ../src/gui/gtkentry.c:188 -msgid "$(HEIGHT.RAW) - RAW image height" -msgstr "$(HEIGHT.RAW) - RAW גובה תמונה" - -#: ../src/gui/gtkentry.c:189 -msgid "$(HEIGHT.CROP) - image height after crop" -msgstr "$(HEIGHT.CROP) - גובה תמונה לאחר חיתוך" - -#: ../src/gui/gtkentry.c:190 -msgid "$(HEIGHT.EXPORT) - exported image height" -msgstr "$(HEIGHT.EXPORT) - גובה תמונה לייצוא" - -#: ../src/gui/gtkentry.c:191 -msgid "$(YEAR) - year" -msgstr "שנה - (YEAR)$" - -#: ../src/gui/gtkentry.c:192 -msgid "$(YEAR.SHORT) - year without century" -msgstr "$(YEAR.SHORT) - שנה ללא מאה" - -#: ../src/gui/gtkentry.c:193 -msgid "$(MONTH) - month" -msgstr "חודש - (MONTH)$" - -#: ../src/gui/gtkentry.c:194 -msgid "$(MONTH.SHORT) - abbreviated month name according to the current locale" -msgstr "$(MONTH.SHORT) - קיצור לחודש בהתאם ללוקליזציה הנוכחית" - -#: ../src/gui/gtkentry.c:195 -msgid "$(MONTH.LONG) - full month name according to the current locale" -msgstr "$(MONTH.LONG) - שם חודש מלא לפי לוקליזציה נוכחית" - -#: ../src/gui/gtkentry.c:196 -msgid "$(DAY) - day" -msgstr "יום - (DAY)$" - -#: ../src/gui/gtkentry.c:197 -msgid "$(HOUR) - hour" -msgstr "שעה - (HOUR)$" - -#: ../src/gui/gtkentry.c:198 -msgid "$(HOUR.AMPM) - hour, 12-hour clock" -msgstr "$(HOUR.AMPM) - שעה, לפי שעון 12 שעות" - -#: ../src/gui/gtkentry.c:199 -msgid "$(MINUTE) - minute" -msgstr "דקה - (MINUTE)$" - -#: ../src/gui/gtkentry.c:200 -msgid "$(SECOND) - second" -msgstr "שניה - (SECOND)$" - -#: ../src/gui/gtkentry.c:201 -msgid "$(MSEC) - millisecond" -msgstr "מילי שניה - (MSEC)$" - -#: ../src/gui/gtkentry.c:202 -msgid "$(EXIF.YEAR) - EXIF year" -msgstr "מתוך EXIF שנה - (EXIF.YEAR)$" - -#: ../src/gui/gtkentry.c:203 -msgid "$(EXIF.YEAR.SHORT) - EXIF year without century" -msgstr "מתוך EXIF שנה ללא מאה - (EXIF.YEAR.SHORT))$" - -#: ../src/gui/gtkentry.c:204 -msgid "$(EXIF.MONTH) - EXIF month" -msgstr "מתוך EXIF חודש - (EXIF.MONTH)$" - -#: ../src/gui/gtkentry.c:205 -msgid "" -"$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current " -"locale" -msgstr "$(EXIF.MONTH.SHORT) - שם חודש מוקצר ב EXIF בהתאם ללוקליזציה נוכחית" - -#: ../src/gui/gtkentry.c:206 -msgid "" -"$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" -msgstr "$(EXIF.MONTH.LONG) - שם חודש מלא ב EXIF בהתאם ללוקליזציה נוכחית" - -#: ../src/gui/gtkentry.c:207 -msgid "$(EXIF.DAY) - EXIF day" -msgstr "מתוך EXIF יום - (EXIF.DAY)$" - -#: ../src/gui/gtkentry.c:208 -msgid "$(EXIF.HOUR) - EXIF hour" -msgstr "מתוך EXIF שעה - (EXIF.HOUR)$" - -#: ../src/gui/gtkentry.c:209 -msgid "$(EXIF.HOUR.AMPM) - EXIF hour, 12-hour clock" -msgstr "מתוך EXIF שעה, שעון 12 שעות - (EXIF.HOUR.AMPM)$" - -#: ../src/gui/gtkentry.c:210 -msgid "$(EXIF.MINUTE) - EXIF minute" -msgstr "מתוך EXIF דקה - (EXIF.MINUTE)$" - -#: ../src/gui/gtkentry.c:211 -msgid "$(EXIF.SECOND) - EXIF second" -msgstr "מתוך EXIF שניה - (EXIF.SECOND)$" - -#: ../src/gui/gtkentry.c:212 -msgid "$(EXIF.MSEC) - EXIF millisecond" -msgstr "מתוך EXIF שניה - (EXIF.MSEC)$" - -#: ../src/gui/gtkentry.c:213 -msgid "$(EXIF.ISO) - ISO value" -msgstr "ערך ISO - (EXIF.ISO)$" - -#: ../src/gui/gtkentry.c:214 -msgid "$(EXIF.EXPOSURE) - EXIF exposure" -msgstr "$(EXIF.EXPOSURE) - EXIF חשיפה" - -#: ../src/gui/gtkentry.c:215 -msgid "$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias" -msgstr "מתוך EXIF הסחת חשיפה - $(EXIF.EXPOSURE.BIAS)" - -#: ../src/gui/gtkentry.c:216 -msgid "$(EXIF.APERTURE) - EXIF aperture" -msgstr "מתוך EXIF מפתח - $(EXIF.APERTURE)" - -#: ../src/gui/gtkentry.c:217 -msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" -msgstr "מתוך EXIF אורך מוקד - $(EXIF.FOCAL.LENGTH)" - -#: ../src/gui/gtkentry.c:218 -msgid "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" -msgstr "מתוך EXIF מרחק מוקד - $(EXIF.FOCUS.DISTANCE)" - -#: ../src/gui/gtkentry.c:219 -msgid "$(EXIF.MAKER) - camera maker" -msgstr "יצרן מצלמה - (EXIF.MAKER)$" - -#: ../src/gui/gtkentry.c:220 -msgid "$(EXIF.MODEL) - camera model" -msgstr "מודל מצלמה - (EXIF.MODEL)$" - -#: ../src/gui/gtkentry.c:221 -msgid "$(EXIF.LENS) - lens" -msgstr "עדשה - $(EXIF.LENS)" - -#: ../src/gui/gtkentry.c:222 -msgid "$(LONGITUDE) - longitude" -msgstr "קו אורך - $(LONGITUDE)" - -#: ../src/gui/gtkentry.c:223 -msgid "$(LATITUDE) - latitude" -msgstr "קו רוחב - $(LATITUDE)" - -#: ../src/gui/gtkentry.c:224 -msgid "$(ELEVATION) - elevation" -msgstr "$(ELEVATION) - גובה" - -#: ../src/gui/gtkentry.c:225 -msgid "$(STARS) - star rating as number (-1 for rejected)" -msgstr "דירוג כוכבים כמספר (1- לדחיה) - (STARS)$" - -#: ../src/gui/gtkentry.c:226 -msgid "$(RATING.ICONS) - star/reject rating in icon form" -msgstr "$(RATING.ICONS) - דרג/דחה דירוג בצורת אייקון" - -#: ../src/gui/gtkentry.c:227 -msgid "$(LABELS) - color labels as text" -msgstr "תוויות צבע כטקסט - (LABELS)$" - -#: ../src/gui/gtkentry.c:228 -msgid "$(LABELS.ICONS) - color labels as icons" -msgstr "תוויות צבע כאייקונים - (LABELS.ICONS)$" - -#: ../src/gui/gtkentry.c:229 -msgid "$(ID) - image ID" -msgstr "$(ID) - זיהוי תמונה" - -#: ../src/gui/gtkentry.c:230 -msgid "$(TITLE) - title from metadata" -msgstr "כותרת מתוך מטא-נתונים - (TITLE)$" - -#: ../src/gui/gtkentry.c:231 -msgid "$(DESCRIPTION) - description from metadata" -msgstr "$(DESCRIPTION) - תיאור מתוך מטה נתונים" - -#: ../src/gui/gtkentry.c:232 -msgid "$(CREATOR) - creator from metadata" -msgstr "יוצר מתוך מטא-נתונים - $(CREATOR)" - -#: ../src/gui/gtkentry.c:233 -msgid "$(PUBLISHER) - publisher from metadata" -msgstr "מוציא לאור מתוך מטא-נתונים - $(PUBLISHER)" - -#: ../src/gui/gtkentry.c:234 -msgid "$(RIGHTS) - rights from metadata" -msgstr "זכויות מתוך מטא-נתונים - $(RIGHTS)" - -#: ../src/gui/gtkentry.c:235 -msgid "$(USERNAME) - login name" -msgstr "$(USERNAME) - שם לוג אין" - -#: ../src/gui/gtkentry.c:236 -msgid "$(FOLDER.PICTURES) - pictures folder" -msgstr "תיקיית תמונות - (FOLDER.PICTURES)$" - -#: ../src/gui/gtkentry.c:237 -msgid "$(FOLDER.HOME) - home folder" -msgstr "תיקיית הבית - (FOLDER.HOME)$" - -#: ../src/gui/gtkentry.c:238 -msgid "$(FOLDER.DESKTOP) - desktop folder" -msgstr "תיקיית שולחן עבודה - (FOLDER.DESKTOP)$" - -#: ../src/gui/gtkentry.c:239 -msgid "$(OPENCL.ACTIVATED) - whether OpenCL is activated" -msgstr "$(OPENCL.ACTIVATED) - האם OpenCL מופעל" - -#: ../src/gui/gtkentry.c:240 -msgid "$(CATEGORY0(category)) - subtag of level 0 in hierarchical tags" -msgstr "$(CATEGORY0(category)) - תת תג ברמה 0 בתגי היררכיות" - -#: ../src/gui/gtkentry.c:241 -msgid "$(TAGS) - tags as set in metadata settings" -msgstr "$(TAGS) - תגיות כפי שנקבעו בהגדרות המטה נתונים" - -#: ../src/gui/gtkentry.c:242 -msgid "$(DARKTABLE.NAME) - darktable name" -msgstr "$(DARKTABLE.NAME) - darktable שם" - -#: ../src/gui/gtkentry.c:243 -msgid "$(DARKTABLE.VERSION) - current darktable version" -msgstr "גרסת darktable נוכחית - (DARKTABLE.VERSION)$" - -#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:255 -msgid "grid" -msgstr "רשת" - -#: ../src/gui/guides.c:31 -msgid "rules of thirds" -msgstr "חוק השלישים" - -#: ../src/gui/guides.c:32 -msgid "metering" -msgstr "מדידה" - -#: ../src/gui/guides.c:33 -msgid "perspective" -msgstr "פרספקטיבה" - -#: ../src/gui/guides.c:34 -msgid "diagonal method" -msgstr "שיטת אלכסון" - -#: ../src/gui/guides.c:35 -msgid "harmonious triangles" -msgstr "משולשים הרמוניים" - -#: ../src/gui/guides.c:36 -msgid "golden sections" -msgstr "חתכי זהב" - -#: ../src/gui/guides.c:37 -msgid "golden spiral" -msgstr "ספירלת זהב" - -#: ../src/gui/guides.c:38 -msgid "golden spiral sections" -msgstr "חתכי זהב ספירליים" - -#: ../src/gui/guides.c:39 -msgid "golden mean (all guides)" -msgstr "ממוצע הזהב (כל המדריכים)" - -#: ../src/gui/guides.c:218 -msgid "horizontal lines" -msgstr "קווים אופקיים" - -#: ../src/gui/guides.c:219 -msgid "number of horizontal guide lines" -msgstr "מספר קווים מנחים אופקיים" - -#: ../src/gui/guides.c:228 -msgid "vertical lines" -msgstr "קווים אנכיים" - -#: ../src/gui/guides.c:229 -msgid "number of vertical guide lines" -msgstr "מספר קווים מנחים אנכיים" - -#: ../src/gui/guides.c:238 -msgid "subdivisions" -msgstr "תת חלוקות" - -#: ../src/gui/guides.c:239 -msgid "number of subdivisions per grid rectangle" -msgstr "מספר תת חלוקות למלבן ברשת" - -#. title -#: ../src/gui/guides.c:700 -msgid "global guide overlay settings" -msgstr "הגדרות כלליות למנחי תכסית גלובליים" - -#: ../src/gui/guides.c:710 ../src/gui/guides.c:719 ../src/gui/guides.c:727 -#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2648 -msgid "guide lines" -msgstr "קווים מנחים" - -#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2092 -msgid "flip" -msgstr "הפוך" - -#: ../src/gui/guides.c:710 -msgid "flip guides" -msgstr "הפוך קווים מנחים" - -#: ../src/gui/guides.c:713 -msgid "horizontally" -msgstr "אופקי" - -#: ../src/gui/guides.c:714 -msgid "vertically" -msgstr "אנכי" - -#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6285 ../src/iop/clipping.c:2096 -#: ../src/iop/colorbalance.c:1917 -msgid "both" -msgstr "שניהם" - -#: ../src/gui/guides.c:720 -msgid "setup guide lines" -msgstr "התקנה קווים מנחים" - -#: ../src/gui/guides.c:727 -msgid "overlay color" -msgstr "צבע ציפוי" - -#: ../src/gui/guides.c:727 -msgid "set overlay color" -msgstr "קבע צבע ציפוי" - -#: ../src/gui/guides.c:741 -msgid "" -"set the contrast between the lightest and darkest part of the guide overlays" -msgstr "קבע את הקונטרסט בין החלקים הבהירים ביותר לכהים ביותר בתכסית המנחים" - -#: ../src/gui/guides.c:847 ../src/gui/guides.c:893 -msgid "show guides" -msgstr "הראה מדריכים" - -#: ../src/gui/guides.c:902 -msgid "show guide overlay when this module has focus" -msgstr "הצג תכסית מנחים כאשר מודול זה בפוקוס" - -#: ../src/gui/guides.c:904 -msgid "" -"change global guide settings\n" -"note that these settings are applied globally and will impact any module " -"that shows guide overlays" -msgstr "" -"שנה הגדרות גלובליות של מנחים\n" -"שים לב שהגדרות אלה מיושמות גלובלית וישפיעו על כל מודול שמכיל תכסית של קווים " -"מנחים" - -#: ../src/gui/hist_dialog.c:222 -msgid "select parts to copy" -msgstr "בחר חלקים להעתקה" - -#: ../src/gui/hist_dialog.c:222 -msgid "select parts to paste" -msgstr "בחר חלקים להדבקה" - -#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:517 -msgid "select _all" -msgstr "בחר _הכל" - -#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:518 -msgid "select _none" -msgstr "בחר _כלום" - -#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:593 -#: ../src/gui/styles_dialog.c:615 -msgid "include" -msgstr "הכלל" - -#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:669 -#: ../src/gui/styles_dialog.c:675 -msgid "item" -msgstr "פריט" - -#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:682 -#: ../src/gui/styles_dialog.c:691 -msgid "mask" -msgstr "מסיכה" - -#: ../src/gui/hist_dialog.c:360 -msgid "can't copy history out of unaltered image" -msgstr "לא ניתן להעתיק היסטוריה מתוך תמונה שלא שונתה" - -#. grid headers -#: ../src/gui/import_metadata.c:417 -msgid "metadata presets" -msgstr "פריסטים של מטא-נתונים" - -#: ../src/gui/import_metadata.c:420 -msgid "" -"metadata to be applied per default\n" -"double-click on a label to clear the corresponding entry\n" -"double-click on 'preset' to clear all entries" -msgstr "" -"מטה נתונים ליישום כברירת מחדל\n" -"קליק-כפול על התווית לניקוי השדה התואם\n" -"קליק-כפול על 'פריסט' לניקוי כל השדות" - -#: ../src/gui/import_metadata.c:430 -msgid "from XMP" -msgstr "מתוך XMP" - -#: ../src/gui/import_metadata.c:433 -msgid "" -"selected metadata are imported from image and override the default value.\n" -"this drives also the 'look for updated XMP files' and 'load sidecar file' " -"actions.\n" -"CAUTION: not selected metadata are cleaned up when XMP file is updated." -msgstr "" -"מטה נתונים נבחרים מיובאים מהתמונה ודורסים את ערך ברירת המחדל.\n" -"זה מניע גם את פעולות 'חפש קובץ XMP מעודכן' ו 'טען קובץ מלווה'.\n" -"זהירות: מטה נתונים שאינם נבחרו מנוקים כאשר קובץ ה XMP מעודכן." - -#. tags -#: ../src/gui/import_metadata.c:469 -msgid "tag presets" -msgstr "פריסט תגית" - -#: ../src/gui/import_metadata.c:483 -msgid "comma separated list of tags" -msgstr "רשימה מופרדת בפסיק של תגיות" - -#. language -#: ../src/gui/preferences.c:274 -msgid "interface language" -msgstr "שפת ממשק" - -#: ../src/gui/preferences.c:289 -msgid "double-click to reset to the system language" -msgstr "לחיצה כפולה לאתחל לשפת המערכת" - -#: ../src/gui/preferences.c:291 -msgid "" -"set the language of the user interface. the system default is marked with an " -"* (needs a restart)" -msgstr "קבע את שפת הממשק. ברירת המחדל של המערכת מסומנת ב * (דורש אתחול)" - -#: ../src/gui/preferences.c:300 -msgid "theme" -msgstr "ערכת תצוגה" - -#: ../src/gui/preferences.c:328 -msgid "set the theme for the user interface" -msgstr "קבע את ערכת התצוגה לממשק המשתמש" - -#: ../src/gui/preferences.c:341 ../src/gui/preferences.c:348 -msgid "use system font size" -msgstr "השתמש בגודל גופן מערכת" - -#: ../src/gui/preferences.c:357 ../src/gui/preferences.c:364 -msgid "font size in points" -msgstr "גודל גופן בנקודות" - -#: ../src/gui/preferences.c:369 -msgid "GUI controls and text DPI" -msgstr "פקדי ממשק משתמש רזולוציית טקסט (DPI)" - -#: ../src/gui/preferences.c:376 -msgid "" -"adjust the global GUI resolution to rescale controls, buttons, labels, etc.\n" -"increase for a magnified GUI, decrease to fit more content in window.\n" -"set to -1 to use the system-defined global resolution.\n" -"default is 96 DPI on most systems.\n" -"(needs a restart)." -msgstr "" -"התאם את רזולוציית ממשק המשתמש להתאמת גודל פקדים, כפתורים, תוויות, וכו'.\n" -"הגדל לממשק משתמש מוגדל, והקטן להכנסת יותר תוכן לחלון.\n" -"קבע ל -1 על מנת להשתמש ברזולוציית ברירת המחדל של המערכת.\n" -"ברירת המחדל היא 96 DPI על רב המערכות.\n" -"(מצריך אתחול)." - -#. checkbox to allow user to modify theme with user.css -#: ../src/gui/preferences.c:385 -msgid "modify selected theme with CSS tweaks below" -msgstr "שנה ערכת תצוגה נבחרת עם כוונוני CSS למטה" - -#: ../src/gui/preferences.c:393 -msgid "modify theme with CSS keyed below (saved to user.css)" -msgstr "שנה ערכות תצוגה עם כוונוני CSS למטה" - -#: ../src/gui/preferences.c:415 -msgctxt "usercss" -msgid "save CSS and apply" -msgstr "שמור CSS ויישם" - -#: ../src/gui/preferences.c:420 -msgid "click to save and apply the CSS tweaks entered in this editor" -msgstr "לחץ לשמירה ויישום של כוונוני CSS שהוכנסו בעורך זה" - -#: ../src/gui/preferences.c:422 -msgid "open help page for CSS tweaks" -msgstr "פתח דף עזרה לכוונון CSS" - -#. load default text with some pointers -#: ../src/gui/preferences.c:443 -msgid "ERROR Loading user.css" -msgstr "שגיאה בטעינת user.css" - -#. load default text -#: ../src/gui/preferences.c:452 -msgid "Enter CSS theme tweaks here" -msgstr "הכנס כוונוני ערכת תצוגה CSS כאן" - -#: ../src/gui/preferences.c:488 -msgid "darktable preferences" -msgstr "העדפות darktable" - -#: ../src/gui/preferences.c:533 -msgid "processing" -msgstr "מעבד" - -#: ../src/gui/preferences.c:534 -msgid "security" -msgstr "ביטחון" - -#: ../src/gui/preferences.c:535 -msgid "storage" -msgstr "אחסון" - -#: ../src/gui/preferences.c:536 -msgid "miscellaneous" -msgstr "שונות" - -#: ../src/gui/preferences.c:561 -msgid "darktable needs to be restarted for settings to take effect" -msgstr "נדרש אתחול של darktable על מנת שההגדרות יכנסו לתוקף" - -#. exif -#: ../src/gui/preferences.c:820 ../src/gui/presets.c:644 -#: ../src/libs/metadata_view.c:137 -msgid "model" -msgstr "מודל" - -#: ../src/gui/preferences.c:824 ../src/gui/presets.c:652 -#: ../src/libs/metadata_view.c:138 -msgid "maker" -msgstr "יצרן" - -#: ../src/gui/preferences.c:861 -msgid "search presets list" -msgstr "חפש ברשימת פריסטים" - -#: ../src/gui/preferences.c:862 -msgid "" -"incrementally search the list of presets\n" -"press up or down keys to cycle through matches" -msgstr "" -"חפש חלקית ברשימת הפריסטים\n" -"לחץ על מקשי מעלה מטה לגלול את התוצאות" - -#: ../src/gui/preferences.c:868 -msgctxt "preferences" -msgid "import..." -msgstr "ייבא." - -#: ../src/gui/preferences.c:872 -msgctxt "preferences" -msgid "export..." -msgstr "ייצא..." - -#: ../src/gui/preferences.c:1031 -#, c-format -msgid "failed to import preset %s" -msgstr "ייבוא פריסט %s נכשל" - -#: ../src/gui/preferences.c:1042 -msgid "select preset(s) to import" -msgstr "בחר פריסט(ים) לייבוא" - -#: ../src/gui/preferences.c:1043 ../src/libs/collect.c:408 -#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:929 -#: ../src/libs/import.c:1506 ../src/libs/import.c:1610 ../src/libs/styles.c:527 -msgid "_open" -msgstr "_פתיחה" - -#: ../src/gui/preferences.c:1052 -msgid "darktable preset files" -msgstr "קבצי פריסטים של darktable" - -#: ../src/gui/preferences.c:1057 ../src/iop/lut3d.c:1577 -#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:945 -#: ../src/libs/styles.c:541 -msgid "all files" -msgstr "כל הקבצים" - -#: ../src/gui/presets.c:59 -msgid "non-raw" -msgstr "non-raw" - -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:332 -msgid "raw" -msgstr "raw" - -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:333 -msgid "HDR" -msgstr "HDR" - -#: ../src/gui/presets.c:59 ../src/iop/monochrome.c:77 ../src/libs/image.c:608 -#: ../src/libs/metadata_view.c:339 -msgid "monochrome" -msgstr "שחור לבן" - -#: ../src/gui/presets.c:151 -#, c-format -msgid "preset `%s' is write-protected, can't delete!" -msgstr "פריסט `%s' מוגן כתיבה, לא ניתן למחוק!" - -#: ../src/gui/presets.c:157 ../src/gui/presets.c:461 ../src/libs/lib.c:238 -#: ../src/libs/modulegroups.c:3701 -msgid "delete preset?" -msgstr "מחק פריסט?" - -#: ../src/gui/presets.c:158 ../src/gui/presets.c:462 ../src/libs/lib.c:239 -#: ../src/libs/modulegroups.c:3702 -#, c-format -msgid "do you really want to delete the preset `%s'?" -msgstr "האם את/ה בטוח/ה שברצונך למחוק את פריסט `%s'?" - -#. add new preset -#. create a shortcut for the new entry -#. then show edit dialog -#. clang-format on -#. create a shortcut for the new entry -#. then show edit dialog -#: ../src/gui/presets.c:200 ../src/gui/presets.c:1035 ../src/gui/presets.c:1038 -#: ../src/gui/presets.c:1041 ../src/libs/lib.c:188 ../src/libs/lib.c:205 -#: ../src/libs/lib.c:213 ../src/libs/lib.c:216 -msgid "new preset" -msgstr "פריסט חדש" - -#: ../src/gui/presets.c:207 -msgid "please give preset a name" -msgstr "אנא תן/י שם לפריסט" - -#: ../src/gui/presets.c:212 -msgid "unnamed preset" -msgstr "פריסט ללא שם" - -#: ../src/gui/presets.c:241 -msgid "overwrite preset?" -msgstr "דרוס פריסט?" - -#: ../src/gui/presets.c:242 -#, c-format -msgid "" -"preset `%s' already exists.\n" -"do you want to overwrite?" -msgstr "" -"פריסט `%s' כבר קיים.\n" -"האם ברצונך לדרוס?" - -#: ../src/gui/presets.c:420 ../src/imageio/storage/disk.c:123 -#: ../src/imageio/storage/gallery.c:110 ../src/imageio/storage/latex.c:109 -msgid "_select as output destination" -msgstr "_בחר כיעד לפלט" - -#: ../src/gui/presets.c:429 -#, c-format -msgid "preset %s was successfully exported" -msgstr "פריסט %s יוצא בהצלחה" - -#: ../src/gui/presets.c:557 -#, c-format -msgid "edit `%s' for module `%s'" -msgstr "ערוך `%s' עבור מודול `%s'" - -#: ../src/gui/presets.c:561 -msgid "_export..." -msgstr "_ייצא..." - -#: ../src/gui/presets.c:585 -msgid "name of the preset" -msgstr "שם הפריסט" - -#: ../src/gui/presets.c:594 -msgid "description or further information" -msgstr "תיאור או מידע נוסף" - -#: ../src/gui/presets.c:598 -msgid "reset all module parameters to their default values" -msgstr "אתחל את הפרמרטרים של המודול לערכי ברירת המחדל" - -#: ../src/gui/presets.c:601 -msgid "" -"the parameters will be reset to their default values, which may be " -"automatically set based on image metadata" -msgstr "" -"הפרמטרים יאותחלו לערכי ברירת המחדל שלהם, שעשויים להיקבע אוטומטית בהתבסס על " -"נתוני המטא של התמונה" - -#: ../src/gui/presets.c:607 -msgid "auto apply this preset to matching images" -msgstr "יישם אוטומטית פריסט זה עבור תמונות תואמות" - -#: ../src/gui/presets.c:611 -msgid "only show this preset for matching images" -msgstr "הצג פריסט זה רק עבור תמונות תואמות" - -#: ../src/gui/presets.c:613 -msgid "" -"be very careful with this option. this might be the last time you see your " -"preset." -msgstr "" -"משנה זהירות עם אפשרות זו. זו עשויה להיות הפעם האחרונה בה תראי/ה את ההגדרה " -"שלך." - -#: ../src/gui/presets.c:643 -#, no-c-format -msgid "string to match model (use % as wildcard)" -msgstr "שרשרת להתאים לדגם (השתמש ב % כ wildcard)" - -#: ../src/gui/presets.c:651 -#, no-c-format -msgid "string to match maker (use % as wildcard)" -msgstr "שרשרת להתאים ליצרן (השתמש ב % כ wildcard)" - -#: ../src/gui/presets.c:659 -#, no-c-format -msgid "string to match lens (use % as wildcard)" -msgstr "שרשרת להתאים לעדשה (השתמש ב % כ wildcard)" - -#: ../src/gui/presets.c:669 -msgid "minimum ISO value" -msgstr "ערך ISO מינימלי" - -#: ../src/gui/presets.c:675 -msgid "" -"maximum ISO value\n" -"if left blank, it is equivalent to no upper limit" -msgstr "" -"ערך ISO מירבי\n" -"אם נשאר ריק, משמע ללא גבול עליון" - -#: ../src/gui/presets.c:688 -msgid "minimum exposure time" -msgstr "זמן חשיפה מינימלי" - -#: ../src/gui/presets.c:689 -msgid "maximum exposure time" -msgstr "זמן חשיפה מקסימלי" - -#: ../src/gui/presets.c:705 -msgid "minimum aperture value" -msgstr "ערך מפתח מינימלי" - -#: ../src/gui/presets.c:706 -msgid "maximum aperture value" -msgstr "ערך מפתח מקסימלי" - -#: ../src/gui/presets.c:724 -msgid "minimum focal length" -msgstr "מרחק מוקד מינימלי" - -#: ../src/gui/presets.c:725 -msgid "maximum focal length" -msgstr "מרחק מוקד מקסימלי" - -#. raw/hdr/ldr/mono/color -#: ../src/gui/presets.c:733 ../src/imageio/format/j2k.c:650 -msgid "format" -msgstr "פורמט" - -#: ../src/gui/presets.c:738 -msgid "select image types you want this preset to be available for" -msgstr "בחר את סוג התמונות שפריסט זה יהיה זמין עבורן" - -#: ../src/gui/presets.c:751 ../src/libs/filtering.c:1201 -msgid "and" -msgstr "גם" - -#: ../src/gui/presets.c:795 ../src/gui/presets.c:847 -msgid "∞" -msgstr "∞" - -#: ../src/gui/presets.c:979 -#, c-format -msgid "preset `%s' is write-protected! can't edit it!" -msgstr "פריסט `%s' מוגן כתיבה, לא ניתן לערוך!" - -#: ../src/gui/presets.c:1003 ../src/libs/lib.c:158 -msgid "update preset?" -msgstr "עדכן פריסט?" - -#: ../src/gui/presets.c:1004 ../src/libs/lib.c:159 -#, c-format -msgid "do you really want to update the preset `%s'?" -msgstr "האם אתה בטוח שברצונך לעדכן את פריסט `%s'?" - -#: ../src/gui/presets.c:1133 -msgid "(first)" -msgstr "(first)" - -#: ../src/gui/presets.c:1133 -msgid "(last)" -msgstr "(אחרון)" - -#: ../src/gui/presets.c:1165 -#, c-format -msgid "" -"preset %s\n" -"%s" -msgstr "" -"פריסט %s\n" -"%s" - -#: ../src/gui/presets.c:1166 -msgid "no presets" -msgstr "אין פריסטים" - -#: ../src/gui/presets.c:1199 ../src/iop/basecurve.c:528 -#: ../src/iop/basecurve.c:532 ../src/iop/basecurve.c:535 -msgid "display-referred default" -msgstr "ברירת מחדל מיוחס-תצוגה" - -#: ../src/gui/presets.c:1201 ../src/iop/channelmixerrgb.c:332 -#: ../src/iop/channelmixerrgb.c:336 ../src/iop/channelmixerrgb.c:339 -#: ../src/iop/exposure.c:297 ../src/iop/exposure.c:301 -#: ../src/iop/exposure.c:304 ../src/iop/filmicrgb.c:3248 -#: ../src/iop/filmicrgb.c:3252 ../src/iop/filmicrgb.c:3255 -#: ../src/iop/sigmoid.c:134 ../src/iop/sigmoid.c:138 ../src/iop/sigmoid.c:141 -msgid "scene-referred default" -msgstr "ברירת מחדל מוכוון סצנה" - -#: ../src/gui/presets.c:1393 ../src/libs/modulegroups.c:3781 -#: ../src/libs/modulegroups.c:3790 -msgid "manage module layouts" -msgstr "נהל סידור מודולים" - -#: ../src/gui/presets.c:1402 -msgid "manage quick presets" -msgstr "נהל פריסטים מהירים" - -#: ../src/gui/presets.c:1586 -msgid "manage quick presets list..." -msgstr "נהל רשימת פריסטים מהירה..." - -#: ../src/gui/presets.c:1727 -msgid "(default)" -msgstr "(ברירת מחדל)" - -#: ../src/gui/presets.c:1754 -msgid "disabled: wrong module version" -msgstr "מנוטרל: גרסת מודול לא נכונה" - -#: ../src/gui/presets.c:1776 ../src/libs/lib.c:551 -msgid "edit this preset.." -msgstr "ערוך פריסט זה.." - -#: ../src/gui/presets.c:1781 ../src/libs/lib.c:555 -msgid "delete this preset" -msgstr "מחק פריסט זה" - -#: ../src/gui/presets.c:1788 ../src/libs/lib.c:563 -msgid "store new preset.." -msgstr "שמור פריסט חדש.." - -#: ../src/gui/presets.c:1796 ../src/libs/lib.c:576 -msgid "update preset" -msgstr "עדכן פריסט" - -#: ../src/gui/styles_dialog.c:221 ../src/libs/styles.c:437 -#: ../src/libs/styles.c:620 -msgid "overwrite style?" -msgstr "דרוס סיגנון?" - -#: ../src/gui/styles_dialog.c:222 -#, c-format -msgid "" -"style `%s' already exists.\n" -"do you want to overwrite?" -msgstr "" -"סגנון `%s' כבר קיים.\n" -"האם ברצונך לדרוס?" - -#: ../src/gui/styles_dialog.c:251 ../src/gui/styles_dialog.c:323 -msgid "please give style a name" -msgstr "אנא תן/י שם לסגנון" - -#: ../src/gui/styles_dialog.c:255 ../src/gui/styles_dialog.c:327 -msgid "unnamed style" -msgstr "סגנון ללא שם" - -#: ../src/gui/styles_dialog.c:312 -#, c-format -msgid "style %s was successfully saved" -msgstr "סגנון %s נשמר בהצלחה" - -#: ../src/gui/styles_dialog.c:505 -msgid "edit style" -msgstr "ערוך סגנון" - -#: ../src/gui/styles_dialog.c:506 -msgid "duplicate style" -msgstr "שכפל סגנון" - -#: ../src/gui/styles_dialog.c:507 -msgid "creates a duplicate of the style before applying changes" -msgstr "יוצר העתק של הסגנון לפני החלת השינויים" - -#: ../src/gui/styles_dialog.c:511 -msgid "create new style" -msgstr "צור סגנון חדש" - -#: ../src/gui/styles_dialog.c:549 -msgid "enter a name for the new style" -msgstr "הכנס שם עבור הסגנון החדש" - -#: ../src/gui/styles_dialog.c:554 -msgid "enter a description for the new style, this description is searchable" -msgstr "הכנס תיאור עבור הסגנון החדש, תיאור זה בר חיפוש" - -#: ../src/gui/styles_dialog.c:593 -msgid "keep" -msgstr "שמור" - -#: ../src/gui/styles_dialog.c:820 -msgid "can't create style out of unaltered image" -msgstr "לא ניתן ליצור סגנון מתוך תמונה שלא שונתה" - -#: ../src/imageio/imageio.c:804 -#, c-format -msgid "" -"failed to allocate memory for %s, please lower the threads used for export " -"or buy more memory." -msgstr "" -"הקצאת זיכרון עבור %s כשלה, אנה הקטן את כמות הסיבים (threads) המשמשים לייצוא " -"או הוסף זיכרון למחשב." - -#: ../src/imageio/imageio.c:806 -msgctxt "noun" -msgid "thumbnail export" -msgstr "ייצוא תמונות ממוזערות" - -#: ../src/imageio/imageio.c:806 -msgctxt "noun" -msgid "export" -msgstr "ייצוא" - -#: ../src/imageio/imageio.c:819 -#, c-format -msgid "cannot find the style '%s' to apply during export." -msgstr "לא נמצא סגנון '%s' ליישום בעת ייצוא." - -#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:536 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 -msgid "8 bit" -msgstr "8 bit" - -#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:556 -msgid "10 bit" -msgstr "10 bit" - -#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:556 -msgid "12 bit" -msgstr "12 bit" - -#: ../src/imageio/format/avif.c:431 -msgid "invalid AVIF bit depth!" -msgstr "עומק צבע לא תקין עבור AVIF!" - -#: ../src/imageio/format/avif.c:694 -msgid "AVIF" -msgstr "AVIF" - -#. Bit depth combo box -#: ../src/imageio/format/avif.c:766 ../src/imageio/format/exr.cc:565 -#: ../src/imageio/format/jxl.c:555 ../src/imageio/format/pdf.c:661 -#: ../src/imageio/format/png.c:534 ../src/imageio/format/tiff.c:843 -#: ../src/imageio/format/xcf.c:354 -msgid "bit depth" -msgstr "עומק צבע בביטים" - -#: ../src/imageio/format/avif.c:779 -msgid "color information stored in an image, higher is better" -msgstr "אינפורמציית צבע השמורה בתמונה, גבוהה טוב יותר" - -#: ../src/imageio/format/avif.c:787 -msgid "saving as grayscale will reduce the size for black & white images" -msgstr "שמירה בגווני אפור יפחית את הגודל עבור תמונות שחור לבן" - -#: ../src/imageio/format/avif.c:789 -msgid "RGB colors" -msgstr "צבעי RGB" - -#: ../src/imageio/format/avif.c:789 -msgid "grayscale" -msgstr "סקאלת אפור" - -#. -#. * Tiling combo box -#. -#: ../src/imageio/format/avif.c:799 -msgid "tiling" -msgstr "ריצוף" - -#: ../src/imageio/format/avif.c:800 -msgid "" -"tile an image into segments.\n" -"\n" -"makes encoding faster. the impact on quality reduction is negligible, but " -"increases the file size." -msgstr "" -"רצף תמונה לחלקים.\n" -"\n" -"גורם לקידוד מהיר יותר. ההשפעה על איכות התמונה זניחה, אך גודל הקובץ גדל." - -#: ../src/imageio/format/avif.c:817 ../src/imageio/format/webp.c:383 -msgid "compression type" -msgstr "סוג דחיסה" - -#: ../src/imageio/format/avif.c:825 -msgid "the compression for the image" -msgstr "רמת הדחיסה לתמונה" - -#. min -#. max -#. step -#. default -#. digits -#: ../src/imageio/format/avif.c:842 ../src/imageio/format/j2k.c:661 -#: ../src/imageio/format/jpeg.c:443 ../src/imageio/format/jxl.c:579 -#: ../src/imageio/format/webp.c:394 ../src/libs/camera.c:564 -msgid "quality" -msgstr "איכות" - -#: ../src/imageio/format/avif.c:847 -msgid "" -"the quality of an image, less quality means fewer details.\n" -"\n" -"the following applies only to lossy setting\n" -"\n" -"pixelformat based on quality:\n" -"\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" -msgstr "" -"איכות התמונה, איכות נמוכה יותר משמעותה פחות פרטים.\n" -"\n" -"הדברים הבאים רלוונטיים רק להגדרות דחיסה המאבדות איכות\n" -"\n" -"פורמט פיקסל מבוסס על איכות:\n" -"\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" - -#: ../src/imageio/format/copy.c:109 ../src/libs/copy_history.c:370 -#: ../src/libs/image.c:583 -msgid "copy" -msgstr "העתק" - -#: ../src/imageio/format/copy.c:124 -msgid "" -"do a 1:1 copy of the selected files.\n" -"the global options below do not apply!" -msgstr "" -"צור עותק 1:1 של הקבצים הנבחרים.\n" -"האפשרויות הגלובליות למטה לא יחולו!" - -#: ../src/imageio/format/exr.cc:217 -msgid "the selected output profile doesn't work well with EXR" -msgstr "פרופיל הייצוא הנבחר לא עובד היטב עם EXR" - -#: ../src/imageio/format/exr.cc:540 -msgid "OpenEXR" -msgstr "OpenEXR" - -#: ../src/imageio/format/exr.cc:567 -msgid "16 bit (float)" -msgstr "16 bit (float)" - -#: ../src/imageio/format/exr.cc:567 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 -msgid "32 bit (float)" -msgstr "32 bit (float)" - -#. compression -#. Compression method combo box -#: ../src/imageio/format/exr.cc:575 ../src/imageio/format/pdf.c:676 -#: ../src/imageio/format/png.c:548 ../src/imageio/format/tiff.c:866 -#: ../src/libs/masks.c:110 -msgid "compression" -msgstr "דחיסה" - -#: ../src/imageio/format/exr.cc:577 ../src/imageio/format/pdf.c:682 -#: ../src/imageio/format/tiff.c:867 -msgid "uncompressed" -msgstr "לא דחוס" - -#: ../src/imageio/format/exr.cc:578 -msgid "RLE" -msgstr "RLE" - -#: ../src/imageio/format/exr.cc:579 -msgid "ZIPS" -msgstr "ZIPS" - -#: ../src/imageio/format/exr.cc:580 -msgid "ZIP" -msgstr "ZIP" - -#: ../src/imageio/format/exr.cc:581 -msgid "PIZ" -msgstr "PIZ" - -#: ../src/imageio/format/exr.cc:582 -msgid "PXR24" -msgstr "PXR24" - -#: ../src/imageio/format/exr.cc:583 -msgid "B44" -msgstr "B44" - -#: ../src/imageio/format/exr.cc:584 -msgid "B44A" -msgstr "B44A" - -#: ../src/imageio/format/exr.cc:585 -msgid "DWAA" -msgstr "DWAA" - -#: ../src/imageio/format/exr.cc:586 -msgid "DWAB" -msgstr "DWAB" - -#: ../src/imageio/format/j2k.c:618 -msgid "JPEG 2000 (12-bit)" -msgstr "JPEG 2000 (12-bit)" - -#: ../src/imageio/format/j2k.c:652 -msgid "jp2" -msgstr "jp2" - -#: ../src/imageio/format/j2k.c:667 -msgid "DCP mode" -msgstr "מצב DCP" - -#: ../src/imageio/format/j2k.c:670 -msgid "Cinema2K, 24FPS" -msgstr "Cinema2K, 24FPS" - -#: ../src/imageio/format/j2k.c:671 -msgid "Cinema2K, 48FPS" -msgstr "Cinema2K, 48FPS" - -#: ../src/imageio/format/j2k.c:672 -msgid "Cinema4K, 24FPS" -msgstr "Cinema4K, 24FPS" - -#: ../src/imageio/format/jpeg.c:420 -msgid "JPEG (8-bit)" -msgstr "JPEG (8-bit)" - -#: ../src/imageio/format/jxl.c:471 -msgid "JPEG XL" -msgstr "JPEG XL" - -#: ../src/imageio/format/jxl.c:556 ../src/imageio/format/pdf.c:81 -#: ../src/imageio/format/png.c:536 ../src/imageio/format/tiff.c:847 -#: ../src/imageio/format/xcf.c:357 -msgid "16 bit" -msgstr "16 bit" - -#. Pixel format combo box -#: ../src/imageio/format/jxl.c:562 ../src/imageio/format/tiff.c:852 -msgid "pixel type" -msgstr "סוג פיקסל" - -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 -msgid "unsigned integer" -msgstr "unsigned integer" - -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 -msgid "floating point" -msgstr "floating point" - -#: ../src/imageio/format/jxl.c:580 -msgid "" -"the quality of the output image\n" -"0-29 = very lossy\n" -"30-99 = JPEG quality comparable\n" -"100 = lossless (integer bit depth only)" -msgstr "" -"איכות תמונת הפלט\n" -"איבוד פרטים רב = 0-29\n" -"איכות דומה ל JPEG = 30-99\n" -"ללא איבוד פרטים (integer bit depth only) = 100" - -#: ../src/imageio/format/jxl.c:589 -msgid "encoding color profile" -msgstr "פרופיל צבע לקידוד" - -#: ../src/imageio/format/jxl.c:590 -msgid "" -"the color profile used by the encoder\n" -"permit internal XYB color space conversion for more efficient lossy " -"compression,\n" -"or ensure no conversion to keep original image color space (implied for " -"lossless)" -msgstr "" -"פרופיל הצבע בו ישתמש המקדד\n" -"אפשר המרה למרחב צבע פנימי XYB ליעילות רבה יותר של דחיסה מאבדת,\n" -"או הבטח ללא המרה לשמירת מרחב הצבע המקורי של התמונה (משתמע מאליו עבור דחיסה " -"ללא איבוד)" - -#: ../src/imageio/format/jxl.c:593 -msgid "internal" -msgstr "פנימי" - -#: ../src/imageio/format/jxl.c:593 ../src/libs/duplicate.c:399 -#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:782 -msgid "original" -msgstr "מקור" - -#: ../src/imageio/format/jxl.c:607 -msgid "encoding effort" -msgstr "מאמץ קידוד" - -#: ../src/imageio/format/jxl.c:608 -msgid "" -"the effort used to encode the image, higher efforts will have better results " -"at the expense of longer encoding times" -msgstr "" -"המאמץ לקידוד התמונה, מאמץ גדול ילווה בתוצאה טובה יותר על חשבון זמן קידוד " -"ארוך יותר" - -#: ../src/imageio/format/jxl.c:619 -msgid "decoding speed" -msgstr "מהירות קידוד" - -#: ../src/imageio/format/jxl.c:620 -msgid "the preferred decoding speed with some sacrifice of quality" -msgstr "מהירות פיענוח מועדפת עם הקרבה מסוימת של איכות" - -#: ../src/imageio/format/pdf.c:200 ../src/imageio/format/pdf.c:480 -msgid "invalid paper size" -msgstr "גודל ניר לא חוקי" - -#: ../src/imageio/format/pdf.c:207 -msgid "invalid border size, using 0" -msgstr "גודל מסגרת לא חוקית, משתמש ב 0" - -#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:316 -#: ../src/imageio/storage/email.c:137 ../src/imageio/storage/gallery.c:331 -#: ../src/imageio/storage/gallery.c:370 ../src/imageio/storage/piwigo.c:1202 -#, c-format -msgid "could not export to file `%s'!" -msgstr "לא ניתן לייצא לקובץ `%s'!" - -#: ../src/imageio/format/pdf.c:409 -msgid "PDF" -msgstr "PDF" - -#: ../src/imageio/format/pdf.c:577 -msgid "enter the title of the PDF" -msgstr "הכנס את הכותרת של קובץ הPDF" - -#. paper size -#. // papers -#: ../src/imageio/format/pdf.c:585 ../src/libs/print_settings.c:2510 -msgid "paper size" -msgstr "גודל ניר" - -#: ../src/imageio/format/pdf.c:586 -msgid "" -"paper size of the PDF\n" -"either one from the list or \"<width> [unit] x <height> <unit>\"\n" -"example: 210 mm x 2.97 cm" -msgstr "" -"גודל דף עבור PDF, \n" -"כל אפשרות מהרשימה או \"<רוחב> [יחידות] x <גובה> <יחידות>\"\n" -"לדוגמא: 210 mm x 2.97 cm" - -#. orientation -#: ../src/imageio/format/pdf.c:600 -msgid "page orientation" -msgstr "כיוון דף" - -#: ../src/imageio/format/pdf.c:601 -msgid "paper orientation of the PDF" -msgstr "כיוון דף עבור PDF" - -#. border -#: ../src/imageio/format/pdf.c:609 ../src/imageio/format/pdf.c:611 -msgid "border" -msgstr "גבול" - -#: ../src/imageio/format/pdf.c:612 -msgid "" -"empty space around the PDF\n" -"format: size + unit\n" -"examples: 10 mm, 1 inch" -msgstr "" -"מסביב ל PDF, רווח פנוי\n" -"פורמט: גודל + יחידות\n" -"דוגמאות: 10 mm, 1 inch" - -#. dpi -#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1127 -#: ../src/libs/export.c:1150 -msgid "dpi" -msgstr "dpi" - -#: ../src/imageio/format/pdf.c:625 -msgid "dpi of the images inside the PDF" -msgstr "צפיפות נקודות dpi של התמונה בתוך ה PDF" - -#. rotate images yes|no -#: ../src/imageio/format/pdf.c:631 -msgid "rotate images" -msgstr "סובב תמונה" - -#: ../src/imageio/format/pdf.c:632 -msgid "" -"images can be rotated to match the PDF orientation to waste less space when " -"printing" -msgstr "" -"ניתן לסובב את התמונות כך שיתאימו לכיוון ה PDF וכך למזער את השטח המבוזבז " -"בהדפסה" - -#. pages all|single images|contact sheet -#: ../src/imageio/format/pdf.c:641 -msgid "TODO: pages" -msgstr "TODO: pages" - -#: ../src/imageio/format/pdf.c:642 -msgid "what pages should be added to the PDF" -msgstr "אילו עמודים להוסיף ל PDF" - -#: ../src/imageio/format/pdf.c:645 -msgid "single images" -msgstr "תמונה בודדת" - -#: ../src/imageio/format/pdf.c:645 -msgid "contact sheet" -msgstr "יריעת תמונות" - -#. TODO -#. embedded icc profile yes|no -#: ../src/imageio/format/pdf.c:651 -msgid "embed ICC profiles" -msgstr "הטמע פרופילי ICC" - -#: ../src/imageio/format/pdf.c:652 -msgid "images can be tagged with their ICC profile" -msgstr "ניתן לתייג תמונות עם פרופיל ה ICC שלהן" - -#: ../src/imageio/format/pdf.c:671 -msgid "bits per channel of the embedded images" -msgstr "מספר ביטים לערוץ עבור תמונות מוטמעות" - -#: ../src/imageio/format/pdf.c:677 -msgid "" -"method used for image compression\n" -"uncompressed -- fast but big files\n" -"deflate -- smaller files but slower" -msgstr "" -"שיטות לדחיסת תמונה\n" -"לא דחוס -- מהיר אך קבצים גדולים\n" -"ברירת מחדל -- קבצים קטנים יותר אך איטי" - -#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:867 -msgid "deflate" -msgstr "ברירת מחדל" - -#. image mode normal|draft|debug -#: ../src/imageio/format/pdf.c:687 -msgid "image mode" -msgstr "מצב תמונה" - -#: ../src/imageio/format/pdf.c:688 -msgid "" -"normal -- just put the images into the PDF\n" -"draft -- images are replaced with boxes\n" -"debug -- only show the outlines and bounding boxes" -msgstr "" -"רגיל -- פשוט הכנס תמונות לPDF ללא שינוי\n" -"טיוטה -- תמונות מוחלפות במלבנים\n" -"מציאת שגיאות -- הצג רק קווי מתאר ומסגרות" - -#: ../src/imageio/format/pdf.c:693 -msgid "normal" -msgstr "רגיל" - -#: ../src/imageio/format/pdf.c:693 -msgid "draft" -msgstr "טיוטה" - -#: ../src/imageio/format/pdf.c:693 -msgid "debug" -msgstr "מציאת שגיאות" - -#: ../src/imageio/format/pfm.c:120 -msgid "PFM" -msgstr "PFM" - -#: ../src/imageio/format/png.c:493 -msgid "PNG" -msgstr "PNG" - -#: ../src/imageio/format/ppm.c:111 -msgid "PPM (16-bit)" -msgstr "PPM (16-bit)" - -#: ../src/imageio/format/tiff.c:228 -msgid "will export as a grayscale image" -msgstr "ייצא כתמונה שחור לבן" - -#: ../src/imageio/format/tiff.c:774 -msgid "TIFF" -msgstr "TIFF" - -#: ../src/imageio/format/tiff.c:868 -msgid "deflate with predictor" -msgstr "ברירת מחדל עם פרדיקטור" - -#: ../src/imageio/format/tiff.c:878 -msgid "compression level" -msgstr "רמת דחיסה" - -#. shortfile option combo box -#: ../src/imageio/format/tiff.c:887 -msgid "b&w image" -msgstr "תמונה שחור לבן" - -#: ../src/imageio/format/tiff.c:888 -msgid "write RGB colors" -msgstr "רשום צבעים RGB" - -#: ../src/imageio/format/tiff.c:888 -msgid "write grayscale" -msgstr "רשום גווני אפור" - -#: ../src/imageio/format/webp.c:349 -msgid "WebP" -msgstr "WebP" - -#: ../src/imageio/format/webp.c:385 -msgid "lossy" -msgstr "מאבד איכות" - -#: ../src/imageio/format/webp.c:385 -msgid "lossless" -msgstr "ללא איבוד איכות" - -#: ../src/imageio/format/webp.c:397 -msgid "" -"for lossy, 0 gives the smallest size and 100 the best quality.\n" -"for lossless, 0 is the fastest but gives larger files compared\n" -"to the slowest 100." -msgstr "" -"עבור דחיסה מאבדת, 0 נותן גודל קטן ביותר ו 100 איכות גבוהה ביותר.\n" -"עבור דחיסה לא מאבדת, 0 המהיר ביותר אבל מפיק קבצים גדולים בהשוואה\n" -"לאיטי ביותר 100." - -#: ../src/imageio/format/webp.c:407 -msgid "image hint" -msgstr "רמז לתמונה" - -#: ../src/imageio/format/webp.c:408 -msgid "" -"image characteristics hint for the underlying encoder.\n" -"picture: digital picture, like portrait, inner shot\n" -"photo: outdoor photograph, with natural lighting\n" -"graphic: discrete tone image (graph, map-tile etc)" -msgstr "" -"רמז לתכונות התמונה עבור המקדדים הבסיסיים.\n" -"תמונה: תמונה דיגיטלית כגון פורטרט, צילום בבית\n" -"צילום: צילום במרחב פתוח, עם תאורה טבעית\n" -"גראפי: תמונה עם גוון בודד (תרשים, אריח מפה וכו')" - -#: ../src/imageio/format/webp.c:413 -msgid "picture" -msgstr "תמונה" - -#: ../src/imageio/format/webp.c:413 -msgid "photo" -msgstr "צילום" - -#: ../src/imageio/format/webp.c:413 -msgid "graphic" -msgstr "איור" - -#: ../src/imageio/format/xcf.c:314 -msgid "XCF" -msgstr "XCF" - -#: ../src/imageio/storage/disk.c:71 ../src/libs/export.c:1040 -msgid "file on disk" -msgstr "קובץ על דיסק" - -#: ../src/imageio/storage/disk.c:169 ../src/imageio/storage/gallery.c:155 -#: ../src/imageio/storage/latex.c:154 -msgid "" -"enter the path where to put exported images\n" -"variables support bash like string manipulation\n" -"type '$(' to activate the completion and see the list of variables" -msgstr "" -"הכנס נתיב לייצוא תמונות\n" -"בדומה ל bash משתנים תומכים במניפולציית סטרינגים\n" -"הקלד '$(' להפעלת השלמה וצפייה ברשימת המשתנים" - -#: ../src/imageio/storage/disk.c:182 ../src/imageio/storage/piwigo.c:1079 -msgid "on conflict" -msgstr "כאשר קיימת סתירה" - -#: ../src/imageio/storage/disk.c:185 -msgid "create unique filename" -msgstr "צור שם קובץ ייחודי" - -#. DT_COPY_HISTORY_APPEND -#: ../src/imageio/storage/disk.c:186 ../src/imageio/storage/piwigo.c:1083 -#: ../src/libs/copy_history.c:404 ../src/libs/image.c:601 -#: ../src/libs/styles.c:440 ../src/libs/styles.c:623 ../src/libs/styles.c:850 -msgid "overwrite" -msgstr "דרוס" - -#: ../src/imageio/storage/disk.c:187 ../src/imageio/storage/piwigo.c:1081 -#: ../src/libs/styles.c:439 ../src/libs/styles.c:622 -msgid "skip" -msgstr "דלג" - -#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/gallery.c:253 -#: ../src/imageio/storage/latex.c:252 -#, c-format -msgid "could not create directory `%s'!" -msgstr "נכשל ביצירת תיקיה `%s'!" - -#: ../src/imageio/storage/disk.c:272 -#, c-format -msgid "could not write to directory `%s'!" -msgstr "נכשל בכתיבה לתיקיה `%s'!" - -#: ../src/imageio/storage/disk.c:302 -#, c-format -msgid "%d/%d skipping `%s'" -msgid_plural "%d/%d skipping `%s'" -msgstr[0] "%d/%d skipping `%s'" -msgstr[1] "%d/%d skipping `%s'" - -#: ../src/imageio/storage/disk.c:321 ../src/imageio/storage/email.c:144 -#: ../src/imageio/storage/gallery.c:378 ../src/imageio/storage/latex.c:340 -#, c-format -msgid "%d/%d exported to `%s'" -msgid_plural "%d/%d exported to `%s'" -msgstr[0] "יוצאו %d/%d ל `%s'" -msgstr[1] "יוצאו %d/%d ל `%s'" - -#: ../src/imageio/storage/disk.c:380 -msgid "" -"you are going to export in overwrite mode, this will overwrite any existing " -"images\n" -"\n" -"do you really want to continue?" -msgstr "" -"הנך עומד/ת לייצא במצב דורס, הדבר יגרום לדריסת תמונות קיימות\n" -"\n" -"האם באמת ברצונך להמשיך?" - -#: ../src/imageio/storage/email.c:52 -msgid "send as email" -msgstr "שלח כדוא\"ל" - -#: ../src/imageio/storage/email.c:198 -msgid "images exported from darktable" -msgstr "תמונות שיוצאו מ darktable" - -#: ../src/imageio/storage/email.c:251 -msgid "could not launch email client!" -msgstr "פתיחת תוכנת דוא\"ל כשלה!" - -#: ../src/imageio/storage/gallery.c:73 -msgid "website gallery" -msgstr "גלריה של אתר אינטרנט" - -#: ../src/imageio/storage/gallery.c:171 -msgid "enter the title of the website" -msgstr "הכנס את שם אתר האינטרנט" - -#: ../src/imageio/storage/latex.c:72 -msgid "LaTeX book template" -msgstr "תבנית LaTeX של ספר" - -#: ../src/imageio/storage/latex.c:172 -msgid "enter the title of the book" -msgstr "הכנס את שם הספר" - -#: ../src/imageio/storage/piwigo.c:522 -msgid "authenticated" -msgstr "מאומת" - -#: ../src/imageio/storage/piwigo.c:532 ../src/imageio/storage/piwigo.c:547 -#: ../src/imageio/storage/piwigo.c:559 -msgid "not authenticated" -msgstr "לא מאומת" - -#: ../src/imageio/storage/piwigo.c:538 -msgid "not authenticated, cannot reach server" -msgstr "לא מאומת, לא ניתן להגיע לשרת" - -#: ../src/imageio/storage/piwigo.c:587 ../src/imageio/storage/piwigo.c:675 -msgid "create new album" -msgstr "צור אלבום חדש" - -#: ../src/imageio/storage/piwigo.c:676 -msgid "---" -msgstr "---" - -#: ../src/imageio/storage/piwigo.c:721 -msgid "cannot refresh albums" -msgstr "לא ניתן לרענן אלבומים" - -#: ../src/imageio/storage/piwigo.c:929 -msgid "Piwigo" -msgstr "Piwigo" - -#: ../src/imageio/storage/piwigo.c:954 -msgid "accounts" -msgstr "חשבונות" - -#: ../src/imageio/storage/piwigo.c:972 ../src/imageio/storage/piwigo.c:978 -msgid "server" -msgstr "שרת" - -#: ../src/imageio/storage/piwigo.c:974 ../src/imageio/storage/piwigo.c:989 -msgid "" -"the server name\n" -"default protocol is https\n" -"specify http:// if non secure server" -msgstr "" -"שם השרת\n" -"פרוטוקול ברירת מחדל הוא https\n" -"ציין http:// עבור שרת לא מאובטח" - -#: ../src/imageio/storage/piwigo.c:987 ../src/imageio/storage/piwigo.c:993 -msgid "user" -msgstr "משתמש" - -#: ../src/imageio/storage/piwigo.c:1000 ../src/imageio/storage/piwigo.c:1005 -msgid "password" -msgstr "ססמה" - -#. login button -#: ../src/imageio/storage/piwigo.c:1010 -msgid "login" -msgstr "כנס לחשבון" - -#: ../src/imageio/storage/piwigo.c:1011 -msgid "Piwigo login" -msgstr "Piwigo login" - -#. permissions list -#: ../src/imageio/storage/piwigo.c:1025 -msgid "visible to" -msgstr "נראה ל" - -#: ../src/imageio/storage/piwigo.c:1027 -msgid "everyone" -msgstr "כולם" - -#: ../src/imageio/storage/piwigo.c:1028 -msgid "contacts" -msgstr "אנשי קשר" - -#: ../src/imageio/storage/piwigo.c:1029 -msgid "friends" -msgstr "חברים" - -#: ../src/imageio/storage/piwigo.c:1030 -msgid "family" -msgstr "משפחה" - -#: ../src/imageio/storage/piwigo.c:1031 -msgid "you" -msgstr "לך" - -#. Available albums -#: ../src/imageio/storage/piwigo.c:1038 -msgid "album" -msgstr "אלבום" - -#: ../src/imageio/storage/piwigo.c:1045 -msgid "refresh album list" -msgstr "רענן רשימת אלבומים" - -#. Album title -#: ../src/imageio/storage/piwigo.c:1063 -msgid "new album" -msgstr "אלבום חדש" - -#. parent album list -#. Available albums -#: ../src/imageio/storage/piwigo.c:1071 -msgid "parent album" -msgstr "אלבום אב" - -#: ../src/imageio/storage/piwigo.c:1075 -msgid "click login button to start" -msgstr "לחץ על כפתור הכניסה להתחיל" - -#: ../src/imageio/storage/piwigo.c:1080 -msgid "don't check" -msgstr "אל תבדוק" - -#: ../src/imageio/storage/piwigo.c:1082 -msgid "update metadata" -msgstr "עדכן מטא-נתונים" - -#: ../src/imageio/storage/piwigo.c:1221 -msgid "cannot create a new Piwigo album!" -msgstr "לא ניתן ליצור אלבום Piwigo חדש!" - -#: ../src/imageio/storage/piwigo.c:1240 -msgid "could not update to Piwigo!" -msgstr "עדכון ל Piwigo נכשל!" - -#: ../src/imageio/storage/piwigo.c:1255 -msgid "could not upload to Piwigo!" -msgstr "העלאה ל Piwigo נכשלה!" - -#: ../src/imageio/storage/piwigo.c:1284 -#, c-format -msgid "%d/%d skipped (already exists)" -msgstr "%d/%d skipped (already exists)" - -#: ../src/imageio/storage/piwigo.c:1290 -#, c-format -msgid "%d/%d exported to Piwigo webalbum" -msgid_plural "%d/%d exported to Piwigo webalbum" -msgstr[0] "יוצא %d/%d לאלבום רשת Piwigo" -msgstr[1] "יוצאו %d/%d לאלבום רשת Piwigo" - -#: ../src/iop/ashift.c:120 -msgid "rotate and perspective" -msgstr "סיבוב ופרספקטיבה" - -#: ../src/iop/ashift.c:125 -msgid "rotation|keystone|distortion|crop|reframe" -msgstr "סיבוב|keystone|עיוות|חיתוך|מסגור מחדש" - -#: ../src/iop/ashift.c:130 -msgid "rotate or distort perspective" -msgstr "סובב או עוות פרספקטיבה" - -#: ../src/iop/ashift.c:131 ../src/iop/channelmixer.c:139 -#: ../src/iop/channelmixerrgb.c:232 ../src/iop/clipping.c:320 -#: ../src/iop/colorbalance.c:161 ../src/iop/colorbalancergb.c:185 -#: ../src/iop/colorchecker.c:130 ../src/iop/colorcorrection.c:77 -#: ../src/iop/crop.c:144 ../src/iop/lut3d.c:141 -msgid "corrective or creative" -msgstr "תיקונים או יצירתיות" - -#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:148 -#: ../src/iop/bilateral.cc:101 ../src/iop/bilateral.cc:103 -#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:233 -#: ../src/iop/channelmixerrgb.c:235 ../src/iop/clipping.c:321 -#: ../src/iop/clipping.c:323 ../src/iop/colorbalancergb.c:186 -#: ../src/iop/colorin.c:136 ../src/iop/crop.c:145 ../src/iop/crop.c:147 -#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:728 -#: ../src/iop/denoiseprofile.c:730 ../src/iop/diffuse.c:146 -#: ../src/iop/diffuse.c:148 ../src/iop/exposure.c:132 ../src/iop/exposure.c:134 -#: ../src/iop/flip.c:111 ../src/iop/flip.c:112 ../src/iop/hazeremoval.c:113 -#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:242 ../src/iop/lens.cc:244 -#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/retouch.c:210 -#: ../src/iop/retouch.c:212 ../src/iop/sigmoid.c:103 -#: ../src/iop/splittoning.c:104 ../src/iop/splittoning.c:106 -#: ../src/iop/spots.c:70 ../src/iop/spots.c:72 ../src/iop/toneequal.c:325 -#: ../src/iop/velvia.c:106 ../src/iop/velvia.c:108 -msgid "linear, RGB, scene-referred" -msgstr "לינארי, RGB, מיוחס-סצנה" - -#: ../src/iop/ashift.c:133 ../src/iop/borders.c:200 ../src/iop/clipping.c:322 -#: ../src/iop/crop.c:146 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 -msgid "geometric, RGB" -msgstr "גאומטרי, RGB" - -#: ../src/iop/ashift.c:2820 -msgid "automatic cropping failed" -msgstr "חיתוך אוטומטי כשל" - -#: ../src/iop/ashift.c:3234 ../src/iop/ashift.c:3286 ../src/iop/ashift.c:3334 -msgid "data pending - please repeat" -msgstr "נתונים תלויים - אנה חזור" - -#: ../src/iop/ashift.c:3243 -msgid "could not detect structural data in image" -msgstr "גילוי נתונים מבניים בתמונה לא צלח" - -#: ../src/iop/ashift.c:3255 -msgid "could not run outlier removal" -msgstr "לא ניתן להריץ הסרה של נקודות מרוחקות" - -#: ../src/iop/ashift.c:3434 -#, c-format -msgid "" -"not enough structure for automatic correction\n" -"minimum %d lines in each relevant direction" -msgstr "" -"מבנה לא מספיק לתיקון אוטומטי\n" -"מינימום %d קווים בכל כיוון רלוונטי" - -#: ../src/iop/ashift.c:3440 -msgid "automatic correction failed, please correct manually" -msgstr "תיקון אוטומטי כשל, אנה תקן ידנית" - -#: ../src/iop/ashift.c:5096 -#, c-format -msgid "only %d lines can be saved in parameters" -msgstr "רק %d קווים ניתנים לשמירה בפרמטרים" - -#: ../src/iop/ashift.c:5201 -#, c-format -msgid "rotation adjusted by %3.1f° to %3.1f°" -msgstr "סיבוב הותאם ב %3.1f° עד %3.1f°" - -#: ../src/iop/ashift.c:5852 ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 -#: ../src/iop/ashift.c:5961 -#, c-format -msgid "lens shift (%s)" -msgstr "הסחת עדשה (%s)" - -#: ../src/iop/ashift.c:6125 -msgid "manual perspective" -msgstr "פרספקטיבה ידנית" - -#: ../src/iop/ashift.c:6170 -msgctxt "section" -msgid "perspective" -msgstr "פרספקטיבה" - -#: ../src/iop/ashift.c:6177 ../src/iop/ashift.c:6286 ../src/iop/ashift.c:6288 -#: ../src/iop/ashift.c:6290 -msgid "structure" -msgstr "מבנה" - -#: ../src/iop/ashift.c:6212 -msgid "" -"rotate image\n" -"right-click and drag to define a horizontal or vertical line by drawing on " -"the image" -msgstr "" -"סובב תמונה\n" -"קליק-ימני וגרור להגדרת קו אופקי או אנכי על ידי ציור קו על התמונה" - -#: ../src/iop/ashift.c:6215 ../src/iop/ashift.c:6217 -msgid "apply lens shift correction in one direction" -msgstr "יישם תיקון הסחת עדשה בכיוון אחד" - -#: ../src/iop/ashift.c:6219 -msgid "shear the image along one diagonal" -msgstr "גזור תמונה לאורך האלכסון" - -#: ../src/iop/ashift.c:6220 ../src/iop/clipping.c:2117 -msgid "automatically crop to avoid black edges" -msgstr "חתוך אוטומטית על מנת להימנע משוליים שחורים" - -#: ../src/iop/ashift.c:6221 -msgid "" -"lens model of the perspective correction: generic or according to the focal " -"length" -msgstr "מודל עדשה לתיקון פרספקטיבה: כללי או לפי אורך המוקד" - -#: ../src/iop/ashift.c:6224 -msgid "focal length of the lens, default value set from EXIF data if available" -msgstr "אורך מוקד העדשה, ערך ברירת המחדל נקבע מתוך נתוני EXIF אם זמין" - -#: ../src/iop/ashift.c:6227 -msgid "" -"crop factor of the camera sensor, default value set from EXIF data if " -"available, manual setting is often required" -msgstr "" -"מקדם חיתוך של חיישן המצלמה, ערך ברירת המחדל נקבע מתוך נתוני exif אם זמין, " -"הגדרה ידנית נחוצה לעתים קרובות" - -#: ../src/iop/ashift.c:6231 -msgid "" -"the level of lens dependent correction, set to maximum for full lens " -"dependency, set to zero for the generic case" -msgstr "" -"רמת התיקון התלוי בעדשה, קבע למקסימום עבור תלות מלאה בעדשה, קבע לאפס למקרה " -"הכללי" - -#: ../src/iop/ashift.c:6235 -msgid "adjust aspect ratio of image by horizontal and vertical scaling" -msgstr "כוון יחס גובה רוחב של התמונה על ידי הגדלה או הקטנה אופקית ואנכית" - -#: ../src/iop/ashift.c:6237 -msgid "" -"automatically correct for vertical perspective distortion\n" -"ctrl+click to only fit rotation\n" -"shift+click to only fit lens shift" -msgstr "" -"תקן אוטומטית עבור עיוות פרספקטיבה אנכי\n" -"קליק+ctrl להתאים רק סיבוב\n" -"קליק+shift להתאים רק הסחת עדשה" - -#: ../src/iop/ashift.c:6241 -msgid "" -"automatically correct for horizontal perspective distortion\n" -"ctrl+click to only fit rotation\n" -"shift+click to only fit lens shift" -msgstr "" -"תקן אוטומטית עבור עיוות פרספקטיבה אופקי\n" -"קליק+ctrl להתאים רק סיבוב\n" -"קליק+shift להתאים רק הסחת עדשה" - -#: ../src/iop/ashift.c:6245 -msgid "" -"automatically correct for vertical and horizontal perspective distortions, " -"fitting rotation, lens shift in both directions, and shear\n" -"ctrl+click to only fit rotation\n" -"shift+click to only fit lens shift\n" -"ctrl+shift+click to only fit rotation and lens shift" -msgstr "" -"תקן אוטומטית עבור עיוות פרספקטיבה אופקי ואנכי; מתאים סיבוב, הסחת עדשה בשני " -"הכיוונים, וגזירה\n" -"קליק+ctrl להתאים רק סיבוב\n" -"קליק+shift להתאים רק הסחת עדשה\n" -"קליק+ctrl+shift להתאים רק סיבוב והסחת עדשה" - -#: ../src/iop/ashift.c:6252 -msgid "" -"automatically analyse line structure in image\n" -"ctrl+click for an additional edge enhancement\n" -"shift+click for an additional detail enhancement\n" -"ctrl+shift+click for a combination of both methods" -msgstr "" -"נתח אוטומטית מבנה קו בתמונה\n" -"קליק+ctrl להדגשת גבולות נוספת\n" -"קליק+shift לחיזוק פרטים נוסף\n" -"קליק+ctrl+shift לשילוב שתי השיטות" - -#: ../src/iop/ashift.c:6257 -msgid "manually define perspective rectangle" -msgstr "הגדר ידנית מלבן פרספקטיבה" - -#: ../src/iop/ashift.c:6258 -msgid "manually draw structure lines" -msgstr "צייר ידנית קווי מבנה" - -#: ../src/iop/ashift.c:6287 -msgid "rectangle" -msgstr "מלבן" - -#: ../src/iop/ashift.c:6289 -msgid "lines" -msgstr "קווים" - -#: ../src/iop/ashift.c:6323 ../src/iop/clipping.c:3343 -#, c-format -msgid "[%s] define/rotate horizon" -msgstr "[%s] הגדר/סובב אופק" - -#: ../src/iop/ashift.c:6326 -#, c-format -msgid "[%s on segment] select segment" -msgstr "[%s on segment] בחר מקטע" - -#: ../src/iop/ashift.c:6330 -#, c-format -msgid "[%s on segment] unselect segment" -msgstr "[%s on segment] בטל בחירת מקטע" - -#: ../src/iop/ashift.c:6334 -#, c-format -msgid "[%s] select all segments from zone" -msgstr "[%s] בחר את כל המקטעים באיזור" - -#: ../src/iop/ashift.c:6338 -#, c-format -msgid "[%s] unselect all segments from zone" -msgstr "[%s] בטל בחירת כל המקטעים באיזור" - -#: ../src/iop/atrous.c:123 ../src/iop/atrous.c:1638 -msgid "contrast equalizer" -msgstr "קונטרסט אקולייזר" - -#: ../src/iop/atrous.c:128 -msgid "sharpness|acutance|local contrast" -msgstr "חדות|חריפות|ניגודיות מקומית" - -#: ../src/iop/atrous.c:133 -msgid "add or remove local contrast, sharpness, acutance" -msgstr "הוסף או הסר ניגודיות מקומית, חדות, חריפות" - -#: ../src/iop/atrous.c:134 ../src/iop/bilateral.cc:100 ../src/iop/diffuse.c:145 -#: ../src/iop/exposure.c:131 ../src/iop/filmicrgb.c:352 -#: ../src/iop/graduatednd.c:146 ../src/iop/negadoctor.c:146 -#: ../src/iop/rgbcurve.c:143 ../src/iop/rgblevels.c:123 ../src/iop/shadhi.c:197 -#: ../src/iop/sigmoid.c:102 ../src/iop/tonecurve.c:211 -#: ../src/iop/toneequal.c:324 -msgid "corrective and creative" -msgstr "תיקונים ויצירתיות" - -#: ../src/iop/atrous.c:135 ../src/iop/atrous.c:137 -#: ../src/iop/colorbalance.c:162 -msgid "linear, Lab, scene-referred" -msgstr "לינארי, Lab, מיוחס-סצנה" - -#: ../src/iop/atrous.c:136 ../src/iop/censorize.c:85 -#: ../src/iop/hazeremoval.c:114 -msgid "frequential, RGB" -msgstr "frequential, RGB" - -#: ../src/iop/atrous.c:727 -msgctxt "eq_preset" -msgid "coarse" -msgstr "גס" - -#: ../src/iop/atrous.c:742 -msgid "denoise & sharpen" -msgstr "ניקוי רעש & חידוד" - -#: ../src/iop/atrous.c:757 -msgctxt "atrous" -msgid "sharpen" -msgstr "חידוד" - -#: ../src/iop/atrous.c:772 -msgid "denoise chroma" -msgstr "ניקוי רעש צבע" - -#: ../src/iop/atrous.c:787 -msgid "denoise" -msgstr "ניקוי רעש" - -#: ../src/iop/atrous.c:803 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:421 -msgid "bloom" -msgstr "הילה" - -#: ../src/iop/atrous.c:818 ../src/iop/bilat.c:169 -msgid "clarity" -msgstr "צלילות" - -#: ../src/iop/atrous.c:838 -msgid "deblur: large blur, strength 3" -msgstr "deblur: טשטוש נרחב, חוזק 3" - -#: ../src/iop/atrous.c:855 -msgid "deblur: medium blur, strength 3" -msgstr "deblur: טשטוש בינוני, חוזק 3" - -#: ../src/iop/atrous.c:871 -msgid "deblur: fine blur, strength 3" -msgstr "deblur: טשטוש עדין, חוזק 3" - -#: ../src/iop/atrous.c:889 -msgid "deblur: large blur, strength 2" -msgstr "deblur: טשטוש נרחב, חוזק 4" - -#: ../src/iop/atrous.c:906 -msgid "deblur: medium blur, strength 2" -msgstr "deblur: טשטוש בינוני, חוזק 2" - -#: ../src/iop/atrous.c:922 -msgid "deblur: fine blur, strength 2" -msgstr "deblur: טשטוש עדין, חוזק 2" - -#: ../src/iop/atrous.c:940 -msgid "deblur: large blur, strength 1" -msgstr "deblur: טשטוש נרחב, חוזק 1" - -#: ../src/iop/atrous.c:957 -msgid "deblur: medium blur, strength 1" -msgstr "deblur: טשטוש בינוני, חוזק 1" - -#: ../src/iop/atrous.c:973 -msgid "deblur: fine blur, strength 1" -msgstr "deblur: טשטוש עדין, חוזק 1" - -#: ../src/iop/atrous.c:1289 ../src/iop/atrous.c:1525 -#: ../src/iop/denoiseprofile.c:3510 ../src/iop/rawdenoise.c:738 -msgid "coarse" -msgstr "גס" - -#: ../src/iop/atrous.c:1296 ../src/iop/atrous.c:1526 -#: ../src/iop/denoiseprofile.c:3518 ../src/iop/rawdenoise.c:746 -msgid "fine" -msgstr "עדין" - -#: ../src/iop/atrous.c:1308 -msgid "contrasty" -msgstr "ניגודי (קונטרסטי)" - -#: ../src/iop/atrous.c:1314 ../src/iop/denoiseprofile.c:3532 -#: ../src/iop/rawdenoise.c:760 -msgid "noisy" -msgstr "רועש" - -#. case atrous_s: -#: ../src/iop/atrous.c:1317 -msgid "bold" -msgstr "עבה" - -#: ../src/iop/atrous.c:1318 -msgid "dull" -msgstr "כהה" - -#: ../src/iop/atrous.c:1513 ../src/iop/atrous.c:1564 -msgid "boost" -msgstr "הגבר" - -#: ../src/iop/atrous.c:1514 -msgid "reduce" -msgstr "הפחת" - -#: ../src/iop/atrous.c:1515 -msgid "raise" -msgstr "העלה" - -#: ../src/iop/atrous.c:1516 -msgid "lower" -msgstr "נמוך יותר" - -#: ../src/iop/atrous.c:1523 -msgid "coarsest" -msgstr "גס ביותר" - -#: ../src/iop/atrous.c:1524 -msgid "coarser" -msgstr "גס יותר" - -#: ../src/iop/atrous.c:1527 -msgid "finer" -msgstr "עדין יותר" - -#: ../src/iop/atrous.c:1528 -msgid "finest" -msgstr "הכי עדין" - -#: ../src/iop/atrous.c:1586 ../src/libs/export.c:1143 ../src/libs/export.c:1158 -msgid "x" -msgstr "x" - -#: ../src/iop/atrous.c:1666 ../src/iop/nlmeans.c:465 -msgid "luma" -msgstr "לומה" - -#: ../src/iop/atrous.c:1666 -msgid "change lightness at each feature size" -msgstr "שנה בהירות לכל גודל צורה" - -#: ../src/iop/atrous.c:1667 -msgid "change color saturation at each feature size" -msgstr "שנה רווית צבע לכל גודל צורה" - -#: ../src/iop/atrous.c:1668 -msgid "edges" -msgstr "קצוות" - -#: ../src/iop/atrous.c:1668 -msgid "" -"change edge halos at each feature size\n" -"only changes results of luma and chroma tabs" -msgstr "" -"שנה את ההילה בקצוות גודל הצורה\n" -"השינויים היחידים הם תוצאה של הכרטיסיות לומה ו כרומה" - -#: ../src/iop/atrous.c:1679 ../src/iop/colorbalancergb.c:2058 -#: ../src/iop/colorzones.c:2473 ../src/iop/denoiseprofile.c:3743 -#: ../src/iop/filmicrgb.c:4407 ../src/iop/lowlight.c:823 -#: ../src/iop/rawdenoise.c:919 ../src/iop/toneequal.c:3371 -msgid "graph" -msgstr "גרף" - -#: ../src/iop/atrous.c:1690 ../src/iop/colorzones.c:2470 -msgid "make effect stronger or weaker" -msgstr "חזק או החלש את האפקט" - -#: ../src/iop/basecurve.c:213 -msgid "neutral" -msgstr "ניטרלי" - -#: ../src/iop/basecurve.c:214 -msgid "canon eos like" -msgstr "דומה ל canon eos" - -#: ../src/iop/basecurve.c:215 -msgid "canon eos like alternate" -msgstr "דומה ל canon eos תחליף" - -#: ../src/iop/basecurve.c:216 -msgid "nikon like" -msgstr "דומה ל nikon" - -#: ../src/iop/basecurve.c:217 -msgid "nikon like alternate" -msgstr "דומה ל nikon תחליף" - -#: ../src/iop/basecurve.c:218 -msgid "sony alpha like" -msgstr "דומה ל sony alpha" - -#: ../src/iop/basecurve.c:219 -msgid "pentax like" -msgstr "דומה ל pentax" - -#: ../src/iop/basecurve.c:220 -msgid "ricoh like" -msgstr "דומה ל ricoh" - -#: ../src/iop/basecurve.c:221 -msgid "olympus like" -msgstr "דומה ל olympus" - -#: ../src/iop/basecurve.c:222 -msgid "olympus like alternate" -msgstr "דומה ל olympus תחליף" - -#: ../src/iop/basecurve.c:223 -msgid "panasonic like" -msgstr "דומה ל panasonic" - -#: ../src/iop/basecurve.c:224 -msgid "leica like" -msgstr "דומה ל leica" - -#: ../src/iop/basecurve.c:225 -msgid "kodak easyshare like" -msgstr "דומה ל kodak easyshare" - -#: ../src/iop/basecurve.c:226 -msgid "konica minolta like" -msgstr "דומה ל konica minolta" - -#: ../src/iop/basecurve.c:227 -msgid "samsung like" -msgstr "דומה ל samsung" - -#: ../src/iop/basecurve.c:228 -msgid "fujifilm like" -msgstr "דומה ל fujifilm" - -#: ../src/iop/basecurve.c:229 -msgid "nokia like" -msgstr "דומה ל nokia" - -#. clang-format off -#. smoother cubic spline curve -#: ../src/iop/basecurve.c:284 ../src/iop/colorzones.c:2495 -#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1173 -msgid "cubic spline" -msgstr "אינטרפולציית spline ממעלה שלישית" - -#: ../src/iop/basecurve.c:343 -msgid "base curve" -msgstr "עקום בסיס" - -#: ../src/iop/basecurve.c:350 -msgid "" -"apply a view transform based on personal or camera manufacturer look,\n" -"for corrective purposes, to prepare images for display" -msgstr "" -"יישם טרנספורמציית מבט בהתבסס על מראה ייצרן מצלמה או מראה אישי,\n" -"לתיקון, להכנת תמונות לתצוגה" - -#: ../src/iop/basecurve.c:352 ../src/iop/cacorrect.c:78 -#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:135 -#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:727 -#: ../src/iop/flip.c:110 ../src/iop/hazeremoval.c:112 -#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:73 -#: ../src/iop/invert.c:119 ../src/iop/lens.cc:241 ../src/iop/nlmeans.c:95 -#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:130 -#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:94 ../src/iop/spots.c:69 -#: ../src/iop/temperature.c:212 -msgid "corrective" -msgstr "מתקן" - -#: ../src/iop/basecurve.c:353 ../src/iop/channelmixer.c:140 -#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:142 -#: ../src/iop/negadoctor.c:147 ../src/iop/profile_gamma.c:103 -#: ../src/iop/rgbcurve.c:144 ../src/iop/rgbcurve.c:146 -#: ../src/iop/rgblevels.c:124 ../src/iop/sigmoid.c:105 ../src/iop/soften.c:102 -#: ../src/iop/soften.c:104 -msgid "linear, RGB, display-referred" -msgstr "לינארי, RGB, מיוחס-תצוגה" - -#: ../src/iop/basecurve.c:354 ../src/iop/basicadj.c:149 -#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:187 -#: ../src/iop/dither.c:121 ../src/iop/filmicrgb.c:354 -#: ../src/iop/graduatednd.c:148 ../src/iop/negadoctor.c:148 -#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:145 -#: ../src/iop/rgblevels.c:125 ../src/iop/sigmoid.c:104 -#: ../src/iop/vignette.c:161 ../src/iop/watermark.c:379 -msgid "non-linear, RGB" -msgstr "לא-לינארי, RGB" - -#: ../src/iop/basecurve.c:355 ../src/iop/dither.c:120 ../src/iop/dither.c:122 -#: ../src/iop/filmicrgb.c:355 ../src/iop/graduatednd.c:149 -#: ../src/iop/negadoctor.c:149 ../src/iop/profile_gamma.c:105 -#: ../src/iop/rgblevels.c:126 ../src/iop/vignette.c:160 -#: ../src/iop/vignette.c:162 ../src/iop/watermark.c:378 -#: ../src/iop/watermark.c:380 -msgid "non-linear, RGB, display-referred" -msgstr "לא-לינארי, RGB, מיוחס-תצוגה" - -#: ../src/iop/basecurve.c:2184 -msgid "abscissa: input, ordinate: output. works on RGB channels" -msgstr "אבסציסה: קלט, אורדינטה: פלט. עובד על ערוצי RGB" - -#: ../src/iop/basecurve.c:2190 ../src/iop/basicadj.c:612 -#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1072 -#: ../src/iop/tonecurve.c:1184 -msgid "method to preserve colors when applying contrast" -msgstr "שיטה לשימור צבע בהפעלת קונטרסט" - -#: ../src/iop/basecurve.c:2194 -msgid "two exposures" -msgstr "שתי חשיפות" - -#: ../src/iop/basecurve.c:2195 -msgid "three exposures" -msgstr "שלוש חשיפות" - -#: ../src/iop/basecurve.c:2196 -msgid "" -"fuse this image stopped up/down a couple of times with itself, to compress " -"high dynamic range. expose for the highlights before use." -msgstr "" -"מזג תמונה זו עם עצמה מספר פעמים בחשיפה גבוהה/נמוכה יותר על מנת לדחוס טווח " -"דינמי גבוה. חשוף לפרטים הבהירים לפני השימוש." - -#: ../src/iop/basecurve.c:2201 -msgid "how many stops to shift the individual exposures apart" -msgstr "כמה סטופים להסיח את התמונות אחת מהשניה" - -#: ../src/iop/basecurve.c:2210 -msgid "" -"whether to shift exposure up or down (-1: reduce highlight, +1: reduce " -"shadows)" -msgstr "באם להסיט את החשיפה מעלה או מטה (1-: הפחת בהירים, 1+: הפחת צללים)" - -#: ../src/iop/basecurve.c:2215 ../src/iop/tonecurve.c:1187 -msgid "scale for graph" -msgstr "סקאלה לגרף" - -#: ../src/iop/basicadj.c:136 -msgid "this module is deprecated. please use the quick access panel instead." -msgstr "מודול זה מוצא משימוש.עדיף להשתמש בפאנל הגישה המהירה במקום." - -#: ../src/iop/basicadj.c:141 -msgid "basic adjustments" -msgstr "כוונון בסיסי" - -#: ../src/iop/basicadj.c:146 -msgid "apply usual image adjustments" -msgstr "ישם כוונוני תמונה רגילים" - -#: ../src/iop/basicadj.c:147 ../src/iop/bilat.c:102 ../src/iop/bloom.c:81 -#: ../src/iop/blurs.c:93 ../src/iop/borders.c:198 ../src/iop/censorize.c:83 -#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:97 -#: ../src/iop/colorize.c:105 ../src/iop/colormapping.c:153 -#: ../src/iop/colorzones.c:145 ../src/iop/grain.c:434 ../src/iop/highpass.c:78 -#: ../src/iop/levels.c:138 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 -#: ../src/iop/lowpass.c:134 ../src/iop/monochrome.c:98 ../src/iop/soften.c:101 -#: ../src/iop/splittoning.c:103 ../src/iop/velvia.c:105 -#: ../src/iop/vibrance.c:95 ../src/iop/vignette.c:159 -#: ../src/iop/watermark.c:377 -msgid "creative" -msgstr "יצירתי" - -#: ../src/iop/basicadj.c:150 ../src/iop/colorbalancergb.c:188 -msgid "non-linear, RGB, scene-referred" -msgstr "לא-לינארי, RGB, מיוחס-סצנה" - -#: ../src/iop/basicadj.c:593 -msgid "" -"adjust the black level to unclip negative RGB values.\n" -"you should never use it to add more density in blacks!\n" -"if poorly set, it will clip near-black colors out of gamut\n" -"by pushing RGB values into negatives" -msgstr "" -"כוונן רמת שחור על מנת לא לחתוך ערכי RGB שליליים.\n" -"לעולם אל תשתמש בזה להוספת צפיפות בשחורים!\n" -"בשימוש לא נכון, ייגרם חיתוך של ערכי צבע קרובים לשחור\n" -"על ידי דחיפת ערכי RGB לערכים שליליים" - -#: ../src/iop/basicadj.c:601 ../src/iop/exposure.c:1118 -msgid "adjust the exposure correction" -msgstr "כוון תיקון חשיפה" - -#: ../src/iop/basicadj.c:605 -msgid "highlight compression adjustment" -msgstr "כוונון דחיסת פרטים בהירים" - -#: ../src/iop/basicadj.c:609 ../src/iop/colisa.c:308 -msgid "contrast adjustment" -msgstr "כוונון ניגודיות" - -#: ../src/iop/basicadj.c:617 -msgid "middle gray adjustment" -msgstr "כוונון רמות אפור בינוניות" - -#: ../src/iop/basicadj.c:622 ../src/iop/colisa.c:309 -msgid "brightness adjustment" -msgstr "כוונון בהירות" - -#: ../src/iop/basicadj.c:625 -msgid "saturation adjustment" -msgstr "כוונון רווית צבע" - -#: ../src/iop/basicadj.c:628 -msgid "vibrance adjustment" -msgstr "כוונון וויברנס" - -#: ../src/iop/basicadj.c:632 -msgid "apply auto exposure based on the entire image" -msgstr "יישם חשיפה אוטומטית בהתבסס על כל התמונה" - -#: ../src/iop/basicadj.c:639 -msgid "" -"apply auto exposure based on a region defined by the user\n" -"click and drag to draw the area\n" -"right click to cancel" -msgstr "" -"יישם חשיפה אוטומטית בהתבסס על אזור שנקבע על ידי המשתמש\n" -"הקלק וגרור לציור האזור\n" -"קליק ימני לביטול" - -#: ../src/iop/basicadj.c:647 -msgid "clip" -msgstr "חתוך" - -#: ../src/iop/basicadj.c:649 -msgid "adjusts clipping value for auto exposure calculation" -msgstr "כוונן ערך חיתוך עבור חישוב חשיפה אוטומטית" - -#. local contrast -#: ../src/iop/bilat.c:96 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:551 -msgid "local contrast" -msgstr "ניגודיות מקומית" - -#: ../src/iop/bilat.c:101 -msgid "manipulate local and global contrast separately" -msgstr "שנה ניגודיות מקומית וגלובלית בנפרד" - -#: ../src/iop/bilat.c:103 ../src/iop/bilat.c:105 ../src/iop/bloom.c:82 -#: ../src/iop/bloom.c:84 ../src/iop/colisa.c:91 ../src/iop/colisa.c:93 -#: ../src/iop/colorcontrast.c:98 ../src/iop/colorcontrast.c:100 -#: ../src/iop/colorcorrection.c:78 ../src/iop/colorcorrection.c:80 -#: ../src/iop/colorize.c:108 ../src/iop/colormapping.c:156 -#: ../src/iop/colorreconstruction.c:138 ../src/iop/colorzones.c:148 -#: ../src/iop/defringe.c:85 ../src/iop/grain.c:435 ../src/iop/grain.c:437 -#: ../src/iop/levels.c:141 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 -#: ../src/iop/monochrome.c:101 ../src/iop/nlmeans.c:96 ../src/iop/nlmeans.c:98 -#: ../src/iop/shadhi.c:200 ../src/iop/tonecurve.c:214 ../src/iop/vibrance.c:98 -msgid "non-linear, Lab, display-referred" -msgstr "לא-לינארי, Lab, מיוחס-תצוגה" - -#: ../src/iop/bilat.c:104 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 -#: ../src/iop/colorcontrast.c:99 ../src/iop/colorcorrection.c:79 -#: ../src/iop/colorize.c:107 ../src/iop/colormapping.c:155 -#: ../src/iop/colorreconstruction.c:137 ../src/iop/colorzones.c:147 -#: ../src/iop/defringe.c:84 ../src/iop/grain.c:436 ../src/iop/levels.c:140 -#: ../src/iop/monochrome.c:100 ../src/iop/nlmeans.c:97 ../src/iop/shadhi.c:199 -#: ../src/iop/tonecurve.c:213 ../src/iop/vibrance.c:97 -msgid "non-linear, Lab" -msgstr "לא לינארי, Lab" - -#: ../src/iop/bilat.c:178 -msgid "HDR local tone-mapping" -msgstr "מיפוי טונים לוקלי ל HDR" - -#: ../src/iop/bilat.c:431 -msgid "" -"the filter used for local contrast enhancement. bilateral is faster but can " -"lead to artifacts around edges for extreme settings." -msgstr "" -"הפילטר המשמש להגברת ניגודיות מקומית. בילטרלי מהיר יותר אך יכול להוביל " -"לתופעות לוואי מסביב לקצוות עבור ערכים קיצוניים." - -#: ../src/iop/bilat.c:435 ../src/iop/globaltonemap.c:635 -msgid "detail" -msgstr "פירוט" - -#: ../src/iop/bilat.c:438 -msgid "changes the local contrast" -msgstr "שנה את הניגודיות המקומית" - -#: ../src/iop/bilat.c:453 -msgid "feature size of local details (spatial sigma of bilateral filter)" -msgstr "גודל צורה של פרטים מקומיים (סיגמא מרחבי של פילטר בילטרלי)" - -#: ../src/iop/bilat.c:461 -msgid "L difference to detect edges (range sigma of bilateral filter)" -msgstr "הפרש L לזיהוי קצבות (סיגמא טווח של פילטר בילטרלי)" - -#: ../src/iop/bilat.c:467 -msgid "changes the local contrast of highlights" -msgstr "שנה את הניגודיות המקומית בפרטים הבהירים" - -#: ../src/iop/bilat.c:473 -msgid "changes the local contrast of shadows" -msgstr "שנה ניגודיות מקומית בצללים" - -#: ../src/iop/bilat.c:479 -msgid "" -"defines what counts as mid-tones. lower for better dynamic range compression " -"(reduce shadow and highlight contrast), increase for more powerful local " -"contrast" -msgstr "" -"מגדיר את שנחשב לטונים בינוניים. נמוך לדחיסה טובה יותר של תחום דינמי (מפחית " -"ניגודיות צללים ופרטים בהירים), הגבר לקבלת ניגודיות מקומית חזקה יותר" - -#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:396 -msgid "surface blur" -msgstr "טשטוש משטח" - -#: ../src/iop/bilateral.cc:79 -msgid "denoise (bilateral filter)" -msgstr "סילוק רעש (פילטר בילטראלי)" - -#: ../src/iop/bilateral.cc:99 -msgid "apply edge-aware surface blur to denoise or smoothen textures" -msgstr "יישם טשטוש משטח המודע לקצוות על מנת לנקות רעשים או להחליק טקסטורות" - -#: ../src/iop/bilateral.cc:102 ../src/iop/blurs.c:93 -#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:729 -#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/soften.c:103 -#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:107 -msgid "linear, RGB" -msgstr "לינארי, RGB" - -#: ../src/iop/bilateral.cc:136 -msgid "image too large" -msgstr "תמונה גדולה מידי" - -#: ../src/iop/bilateral.cc:137 -msgid "" -"this module is unable to process\n" -"images with more than 2 gigapixels.\n" -"processing has been skipped." -msgstr "" -"מודול זה לא יכול לעבד\n" -"תמונות עם יותר מ 2 גיגה פיקסלים.\n" -"העיבוד לא יתבצע." - -#: ../src/iop/bilateral.cc:351 -msgid "spatial extent of the gaussian" -msgstr "הקף מרחבי של הגאוסיין" - -#: ../src/iop/bilateral.cc:355 -msgid "how much to blur red" -msgstr "מידת טשטוש לאדום" - -#: ../src/iop/bilateral.cc:360 -msgid "how much to blur green" -msgstr "מידת טשטוש לירוק" - -#: ../src/iop/bilateral.cc:365 -msgid "how much to blur blue" -msgstr "מידת טשטוש לכחול" - -#: ../src/iop/bloom.c:80 -msgid "apply Orton effect for a dreamy aetherical look" -msgstr "יישם אפקט Orton למראה חלומי אתרי" - -#: ../src/iop/bloom.c:368 ../src/iop/soften.c:369 ../src/libs/camera.c:567 -#: ../src/libs/masks.c:105 -msgid "size" -msgstr "גודל" - -#: ../src/iop/bloom.c:370 -msgid "the size of bloom" -msgstr "גודל ההילה" - -#: ../src/iop/bloom.c:374 -msgid "the threshold of light" -msgstr "סף האור" - -#: ../src/iop/bloom.c:378 -msgid "the strength of bloom" -msgstr "חוזק ההילה" - -#: ../src/iop/blurs.c:81 -msgid "blurs" -msgstr "טשטושים" - -#: ../src/iop/blurs.c:86 -msgid "blur|lens|motion" -msgstr "טשטוש|עדשה|תנועה" - -#: ../src/iop/blurs.c:92 -msgid "simulate physically-accurate lens and motion blurs" -msgstr "הדמה תנועה ועדשה בדיוק פיסיקלי" - -#: ../src/iop/borders.c:187 -msgid "framing" -msgstr "מסגור" - -#: ../src/iop/borders.c:192 -msgid "borders|enlarge canvas|expand canvas" -msgstr "גבולות|הגדל קנבס|הרחב קנבס" - -#: ../src/iop/borders.c:197 -msgid "add solid borders or margins around the picture" -msgstr "הוסף שוליים או גבולות אחידים לתמונה" - -#: ../src/iop/borders.c:199 ../src/iop/borders.c:201 ../src/iop/lut3d.c:144 -msgid "linear or non-linear, RGB, display-referred" -msgstr "לינארי או לא לינארי, RGB, מיוחס לתצוגה" - -#: ../src/iop/borders.c:727 -msgid "15:10 postcard white" -msgstr "גלויה לבנה 15:10" - -#: ../src/iop/borders.c:732 -msgid "15:10 postcard black" -msgstr "גלויה שחורה 15:10" - -#: ../src/iop/borders.c:942 -msgid "size of the border in percent of the full image" -msgstr "עובי מסגרת באחוזים מגודל התמונה המלא" - -#: ../src/iop/borders.c:944 ../src/iop/clipping.c:2218 ../src/iop/crop.c:1224 -msgid "aspect" -msgstr "כיוון" - -#: ../src/iop/borders.c:945 -msgid "" -"select the aspect ratio (right click on slider below to type your own w:h)" -msgstr "בחר יחס גובה רוחב (הקלק כפתור ימני על המחוון והקלד w:h כרצונך)" - -#: ../src/iop/borders.c:948 -msgid "3:1" -msgstr "3:1" - -#: ../src/iop/borders.c:949 -msgid "95:33" -msgstr "95:33" - -#: ../src/iop/borders.c:950 -msgid "CinemaScope 2.39:1" -msgstr "CinemaScope 2.39:1" - -#: ../src/iop/borders.c:951 -msgid "2:1" -msgstr "2:1" - -#: ../src/iop/borders.c:952 -msgid "16:9" -msgstr "16:9" - -#: ../src/iop/borders.c:953 -msgid "5:3" -msgstr "5:3" - -#: ../src/iop/borders.c:954 -msgid "US Legal 8.5x14" -msgstr "US Legal 8.5x14" - -#: ../src/iop/borders.c:955 ../src/iop/clipping.c:2131 ../src/iop/crop.c:1128 -msgid "golden cut" -msgstr "חיתוך לפי יחס הזהב" - -#: ../src/iop/borders.c:956 -msgid "16:10" -msgstr "16:10" - -#: ../src/iop/borders.c:957 -msgid "3:2 (4x6, 10x15cm)" -msgstr "3:2 (4x6, 10x15cm)" - -#: ../src/iop/borders.c:959 -msgid "DIN" -msgstr "DIN" - -#: ../src/iop/borders.c:960 -msgid "7:5" -msgstr "7:5" - -#: ../src/iop/borders.c:961 -msgid "4:3" -msgstr "4:3" - -#: ../src/iop/borders.c:962 -msgid "US Letter 8.5x11" -msgstr "US Letter 8.5x11" - -#: ../src/iop/borders.c:963 -msgid "14:11" -msgstr "14:11" - -#: ../src/iop/borders.c:964 -msgid "5:4 (8x10)" -msgstr "5:4 (8x10)" - -#: ../src/iop/borders.c:965 ../src/iop/clipping.c:2121 ../src/iop/crop.c:1118 -#: ../src/libs/filtering.c:301 ../src/libs/filters/ratio.c:126 -#: ../src/libs/histogram.c:141 -msgid "square" -msgstr "ריבוע" - -#: ../src/iop/borders.c:966 -msgid "constant border" -msgstr "מסגרת אחידה" - -#: ../src/iop/borders.c:967 ../src/iop/borders.c:981 ../src/iop/borders.c:992 -msgid "custom..." -msgstr "סידור מותאם..." - -#: ../src/iop/borders.c:972 -msgid "set the custom aspect ratio (right click to enter number or w:h)" -msgstr "קבע יחס גובה רוחב (הקלק כפתור ימני להכנסתמספר או w:h )" - -#: ../src/iop/borders.c:975 -msgid "aspect ratio orientation of the image with border" -msgstr "כיוון יחס גובה רוחב של תמונה עם מסגרת" - -#: ../src/iop/borders.c:977 -msgid "horizontal position" -msgstr "מצב אופקי" - -#: ../src/iop/borders.c:978 -msgid "" -"select the horizontal position ratio relative to top or right click and type " -"your own (y:h)" -msgstr "" -"בחר את יחס המיקום האופקי יחסית לקו העליון או הקלק כפתור ימני והכנס ידנית (y:" -"h)" - -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 -msgid "center" -msgstr "מרכז" - -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 -msgid "1/3" -msgstr "1/3" - -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 -msgid "3/8" -msgstr "3/8" - -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 -msgid "5/8" -msgstr "5/8" - -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 -msgid "2/3" -msgstr "2/3" - -#: ../src/iop/borders.c:986 -msgid "custom horizontal position" -msgstr "מצב אופקי מותאם אישית" - -#: ../src/iop/borders.c:988 -msgid "vertical position" -msgstr "מצב אנכי" - -#: ../src/iop/borders.c:989 -msgid "" -"select the vertical position ratio relative to left or right click and type " -"your own (x:w)" -msgstr "" -"בחר את יחס המיקום האנכי יחסית לקו השמאלי או הקלק כפתור ימני והכנס ידנית (x:w)" - -#: ../src/iop/borders.c:997 -msgid "custom vertical position" -msgstr "מצב אנכי מותאם אישית" - -#: ../src/iop/borders.c:1002 -msgid "size of the frame line in percent of min border width" -msgstr "גודל קו המסגרת באחוזים מרוחב המסגרת המינימלי" - -#: ../src/iop/borders.c:1007 -msgid "offset of the frame line beginning on picture side" -msgstr "הסחת תחילת קו המסגרת מצד התמונה" - -#: ../src/iop/borders.c:1014 ../src/iop/borders.c:1023 -msgid "border color" -msgstr "צבע מסגרת" - -#: ../src/iop/borders.c:1018 -msgid "select border color" -msgstr "בחר צבע מסגרת" - -#: ../src/iop/borders.c:1022 -msgid "pick border color from image" -msgstr "בחר צבע מסגרת מתוך התמונה" - -#: ../src/iop/borders.c:1023 ../src/iop/borders.c:1036 -#: ../src/iop/colorzones.c:2415 ../src/iop/colorzones.c:2425 -#: ../src/iop/negadoctor.c:848 ../src/iop/negadoctor.c:915 -#: ../src/iop/negadoctor.c:953 ../src/iop/rgbcurve.c:1369 -#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1026 -#: ../src/iop/rgblevels.c:1032 ../src/iop/rgblevels.c:1038 -msgid "pickers" -msgstr "בוחרים" - -#: ../src/iop/borders.c:1027 ../src/iop/borders.c:1036 -msgid "frame line color" -msgstr "צבע קו המסגרת" - -#: ../src/iop/borders.c:1031 -msgid "select frame line color" -msgstr "בחר צבע לקו המסגרת" - -#: ../src/iop/borders.c:1035 -msgid "pick frame line color from image" -msgstr "בחר צבע לקו המסגרת מתוך התמונה" - -#. make sure you put all your translatable strings into _() ! -#: ../src/iop/cacorrect.c:72 -msgid "raw chromatic aberrations" -msgstr "אברציות כרומטיות raw" - -#: ../src/iop/cacorrect.c:77 -msgid "correct chromatic aberrations for Bayer sensors" -msgstr "תקן אברציות כרומטיות עבור חיישני Bayer" - -#: ../src/iop/cacorrect.c:79 ../src/iop/cacorrect.c:81 -#: ../src/iop/cacorrectrgb.c:171 ../src/iop/cacorrectrgb.c:173 -#: ../src/iop/demosaic.c:294 ../src/iop/highlights.c:180 -#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:74 -#: ../src/iop/hotpixels.c:76 ../src/iop/rawdenoise.c:131 -#: ../src/iop/rawdenoise.c:133 ../src/iop/rawprepare.c:159 -#: ../src/iop/rawprepare.c:161 ../src/iop/temperature.c:213 -#: ../src/iop/temperature.c:215 -msgid "linear, raw, scene-referred" -msgstr "לינארי, raw, מיוחס-סצנה" - -#: ../src/iop/cacorrect.c:80 ../src/iop/cacorrectrgb.c:172 -#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:121 -#: ../src/iop/rawdenoise.c:132 ../src/iop/rawprepare.c:160 -#: ../src/iop/temperature.c:214 -msgid "linear, raw" -msgstr "לינארי, raw" - -#: ../src/iop/cacorrect.c:1405 -msgid "iteration runs, default is twice" -msgstr "הרצות חוזרות, ברירת מחדל היא פעמיים" - -#: ../src/iop/cacorrect.c:1408 -msgid "activate colorshift correction for blue & red channels" -msgstr "הפעל תיקון הסחת צבע לערוצים כחול ואדום" - -#: ../src/iop/cacorrect.c:1415 -msgid "" -"automatic chromatic aberration correction\n" -"only for Bayer raw files" -msgstr "" -"תיקון אוטומטי של אברציות כרומטיות\n" -"עובד רק עבור תמונות raw אם פילטר Bayer" - -#: ../src/iop/cacorrectrgb.c:164 ../src/iop/defringe.c:76 -msgid "chromatic aberrations" -msgstr "אברציות כרומטיות" - -#: ../src/iop/cacorrectrgb.c:169 -msgid "correct chromatic aberrations" -msgstr "תקן אברציות כרומטיות" - -#: ../src/iop/cacorrectrgb.c:743 -msgid "" -"channel used as a reference to\n" -"correct the other channels.\n" -"use sharpest channel if some\n" -"channels are blurry.\n" -"try changing guide channel if you\n" -"have artifacts." -msgstr "" -"ערוץ המשמש כרפרנס\n" -"לתיקון הערוצים האחרים.\n" -"השתמש בערוץ החד ביותר\n" -"אם ערוצים אחרים מטושטשים.\n" -"נסה לשנות ערוץ מנחה\n" -"אם מופיעות תופעות לא רצויות." - -#: ../src/iop/cacorrectrgb.c:750 -msgid "increase for stronger correction" -msgstr "הגבר לתיקון חזק יותר" - -#: ../src/iop/cacorrectrgb.c:752 -msgid "" -"balance between smoothing colors\n" -"and preserving them.\n" -"high values can lead to overshooting\n" -"and edge bleeding." -msgstr "" -"אזן בין צבעים מחליקים\n" -"ושמר אותם.\n" -"ערכים גבוהים עלולים להוביל\n" -"לתיקון יתר ודימום קצוות." - -#: ../src/iop/cacorrectrgb.c:757 -msgctxt "section" -msgid "advanced parameters" -msgstr "פרמטרים מתקדמים" - -#: ../src/iop/cacorrectrgb.c:759 -msgid "" -"correction mode to use.\n" -"can help with multiple\n" -"instances for very damaged\n" -"images.\n" -"darken only is particularly\n" -"efficient to correct blue\n" -"chromatic aberration." -msgstr "" -"מצב תיקון להשתמש.\n" -"יכול לעזור עם מופעים מרובים\n" -"עבור תמונות פגומות במיוחד.\n" -"החשך בלבד יעיל\n" -"באופן מיוחד לתיקון\n" -"אברציות כרומטיות בכחול." - -#: ../src/iop/cacorrectrgb.c:767 -msgid "" -"runs an iterative approach\n" -"with several radii.\n" -"improves result on images\n" -"with very large chromatic\n" -"aberrations, but can smooth\n" -"colors too much on other\n" -"images." -msgstr "" -"מריץ גישה איטרטיבית\n" -"עם מספר רדיוסים.\n" -"משפר תוצאות בתמונות\n" -"עם אברציות כרומטיות\n" -"גדולות במיוחד, אך עלול\n" -"להחליק צבעים יותר מדי\n" -"בתמונות אחרות." - -#: ../src/iop/censorize.c:77 -msgid "censorize" -msgstr "צנזר" - -#: ../src/iop/censorize.c:82 -msgid "censorize license plates and body parts for privacy" -msgstr "צנזר לוחיות רישוי וחלקי גוף לשמירה על פרטיות" - -#: ../src/iop/censorize.c:84 ../src/iop/colorin.c:134 -#: ../src/iop/filmicrgb.c:353 ../src/iop/graduatednd.c:147 -msgid "linear or non-linear, RGB, scene-referred" -msgstr "לינארי או לא לינארי, RGB, מיוחס לתצוגה" - -#: ../src/iop/censorize.c:86 -msgid "special, RGB, scene-referred" -msgstr "מיוחד, RGB, מיוחס-סצנה" - -#: ../src/iop/censorize.c:412 -msgid "radius_1" -msgstr "רדיוס_1" - -#: ../src/iop/censorize.c:414 -msgid "pixelate" -msgstr "pixelate" - -#: ../src/iop/censorize.c:416 -msgid "radius_2" -msgstr "רדיוס_2" - -#: ../src/iop/censorize.c:418 -msgid "noise" -msgstr "רעש" - -#: ../src/iop/censorize.c:420 -msgid "radius of gaussian blur before pixellation" -msgstr "רדיוס הגאוסיין לטשטוש לפני פיקסליזציה" - -#: ../src/iop/censorize.c:421 -msgid "radius of gaussian blur after pixellation" -msgstr "רדיוס הגאוסיין לטשטוש אחרי פיקסליזציה" - -#: ../src/iop/censorize.c:422 -msgid "radius of the intermediate pixellation" -msgstr "רדיוס פיקסליזצית ביניים" - -#: ../src/iop/censorize.c:423 -msgid "amount of noise to add at the end" -msgstr "כמות רעש להוספה בסוף" - -#: ../src/iop/channelmixer.c:126 -msgid "channel mixer" -msgstr "מערבב ערוצים" - -#: ../src/iop/channelmixer.c:131 -msgid "" -"this module is deprecated. please use the color calibration module instead." -msgstr "מודול זה יוצא משימוש, עדיף להשתמש במודול כיול הצבע במקום." - -#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:229 -msgid "" -"perform color space corrections\n" -"such as white balance, channels mixing\n" -"and conversions to monochrome emulating film" -msgstr "" -"בצע תיקון מרחב הצבע\n" -"כגון איזון לבן, ערבוב ערוצים\n" -"והמרה למונוכרום עם אמולציית פילם" - -#: ../src/iop/channelmixer.c:614 -msgid "destination" -msgstr "יעד" - -#: ../src/iop/channelmixer.c:621 -msgctxt "channelmixer" -msgid "gray" -msgstr "אפור" - -#: ../src/iop/channelmixer.c:627 -msgid "amount of red channel in the output channel" -msgstr "כמות ערוץ אדום בערוץ הפלט" - -#: ../src/iop/channelmixer.c:633 -msgid "amount of green channel in the output channel" -msgstr "כמות ערוץ ירוק בערוץ הפלט" - -#: ../src/iop/channelmixer.c:639 -msgid "amount of blue channel in the output channel" -msgstr "כמות ערוץ כחול בערוץ הפלט" - -#: ../src/iop/channelmixer.c:655 ../src/iop/channelmixerrgb.c:524 -msgid "swap R and B" -msgstr "החלף R ו B" - -#: ../src/iop/channelmixer.c:661 ../src/iop/channelmixerrgb.c:498 -msgid "swap G and B" -msgstr "החלף G ו B" - -#: ../src/iop/channelmixer.c:667 -msgid "color contrast boost" -msgstr "דחיפת ניגודיות צבע" - -#: ../src/iop/channelmixer.c:673 -msgid "color details boost" -msgstr "דחיפת פירוט צבע" - -#: ../src/iop/channelmixer.c:679 -msgid "color artifacts boost" -msgstr "דחיפת תופעות לוואי צבע" - -#: ../src/iop/channelmixer.c:685 -msgid "B/W luminance-based" -msgstr "B/W מבוסס לומיננס" - -#: ../src/iop/channelmixer.c:691 -msgid "B/W artifacts boost" -msgstr "שחור/לבן דחיפת תופעות לוואי" - -#: ../src/iop/channelmixer.c:697 -msgid "B/W smooth skin" -msgstr "שחור/לבן עור חלק" - -#: ../src/iop/channelmixer.c:703 -msgid "B/W blue artifacts reduce" -msgstr "שחור/לבן הפחת תופעות לוואי כחולות" - -#: ../src/iop/channelmixer.c:710 -msgid "B/W Ilford Delta 100-400" -msgstr "B/W Ilford Delta 100-400" - -#: ../src/iop/channelmixer.c:717 -msgid "B/W Ilford Delta 3200" -msgstr "B/W Ilford Delta 3200" - -#: ../src/iop/channelmixer.c:724 -msgid "B/W Ilford FP4" -msgstr "B/W Ilford FP4" - -#: ../src/iop/channelmixer.c:731 -msgid "B/W Ilford HP5" -msgstr "B/W Ilford HP5" - -#: ../src/iop/channelmixer.c:738 -msgid "B/W Ilford SFX" -msgstr "B/W Ilford SFX" - -#: ../src/iop/channelmixer.c:745 -msgid "B/W Kodak T-Max 100" -msgstr "B/W Kodak T-Max 100" - -#: ../src/iop/channelmixer.c:752 -msgid "B/W Kodak T-max 400" -msgstr "B/W Kodak T-max 400" - -#: ../src/iop/channelmixer.c:759 -msgid "B/W Kodak Tri-X 400" -msgstr "B/W Kodak Tri-X 400" - -#: ../src/iop/channelmixerrgb.c:219 -msgid "color calibration" -msgstr "כיול צבע" - -#: ../src/iop/channelmixerrgb.c:224 -msgid "channel mixer|white balance|monochrome" -msgstr "מערבב ערוצים|איזון לבן|מונוכרום" - -#: ../src/iop/channelmixerrgb.c:234 -msgid "linear, RGB or XYZ" -msgstr "לינארי, RGB או XYZ" - -#: ../src/iop/channelmixerrgb.c:396 -msgid "B&W: luminance-based" -msgstr "B&W : מבוסס לומיננס" - -#: ../src/iop/channelmixerrgb.c:431 -msgid "B&W: ILFORD HP5+" -msgstr "B&W: ILFORD HP5+" - -#: ../src/iop/channelmixerrgb.c:440 -msgid "B&W: ILFORD DELTA 100" -msgstr "B&W: ILFORD DELTA 100" - -#: ../src/iop/channelmixerrgb.c:450 -msgid "B&W: ILFORD DELTA 400 - 3200" -msgstr "B&W: ILFORD DELTA 400 - 3200" - -#: ../src/iop/channelmixerrgb.c:459 -msgid "B&W: ILFORD FP4+" -msgstr "B&W: ILFORD FP4+" - -#: ../src/iop/channelmixerrgb.c:468 -msgid "B&W: Fuji Acros 100" -msgstr "B&W: Fuji Acros 100" - -#: ../src/iop/channelmixerrgb.c:485 -msgid "basic channel mixer" -msgstr "מערבב ערוצים בסיסי" - -#: ../src/iop/channelmixerrgb.c:511 -msgid "swap G and R" -msgstr "החלף G ו R" - -#: ../src/iop/channelmixerrgb.c:1869 -msgid "(daylight)" -msgstr "(אור יום)" - -#: ../src/iop/channelmixerrgb.c:1871 -msgid "(black body)" -msgstr "(גוף שחור)" - -#: ../src/iop/channelmixerrgb.c:1873 -msgid "(invalid)" -msgstr "(לא חוקי)" - -#: ../src/iop/channelmixerrgb.c:1877 ../src/iop/channelmixerrgb.c:1935 -msgid "very good" -msgstr "טוב מאד" - -#: ../src/iop/channelmixerrgb.c:1879 ../src/iop/channelmixerrgb.c:1937 -msgid "good" -msgstr "טוב" - -#: ../src/iop/channelmixerrgb.c:1881 ../src/iop/channelmixerrgb.c:1939 -msgid "passable" -msgstr "עובר" - -#: ../src/iop/channelmixerrgb.c:1883 ../src/iop/channelmixerrgb.c:1941 -msgid "bad" -msgstr "רע" - -#: ../src/iop/channelmixerrgb.c:1890 -#, c-format -msgid "" -"\n" -"<b>Profile quality report: %s</b>\n" -"input ΔE: \tavg. %.2f ; \tmax. %.2f\n" -"WB ΔE: \tavg. %.2f; \tmax. %.2f\n" -"output ΔE: \tavg. %.2f; \tmax. %.2f\n" -"\n" -"<b>Profile data</b>\n" -"illuminant: \t%.0f K \t%s\n" -"matrix in adaptation space:\n" -"<tt>%+.4f \t%+.4f \t%+.4f\n" -"%+.4f \t%+.4f \t%+.4f\n" -"%+.4f \t%+.4f \t%+.4f</tt>\n" -"\n" -"<b>Normalization values</b>\n" -"exposure compensation: \t%+.2f EV\n" -"black offset: \t%+.4f" -msgstr "" -"\n" -"<b>דו\"ח איכות הפרופיל : %s</b>\n" -"input ΔE : \tavg. %.2f ; \tmax. %.2f\n" -"WB ΔE : \tavg. %.2f ; \tmax. %.2f\n" -"output ΔE : \tavg. %.2f ; \tmax. %.2f\n" -"\n" -"<b>נתוני פרופיל</b>\n" -"illuminant : \t%.0f K \t%s \n" -"matrix in adaptation space:\n" -"<tt>%+.4f \t%+.4f \t%+.4f\n" -"%+.4f \t%+.4f \t%+.4f\n" -"%+.4f \t%+.4f \t%+.4f</tt>\n" -"\n" -"<b>ערכי נירמול</b>\n" -"פיצוי חשיפה: \t%+.2f EV\n" -"black offset : \t%+.4f" - -#: ../src/iop/channelmixerrgb.c:1946 -#, c-format -msgid "" -"\n" -"<b>Profile quality report: %s</b>\n" -"output ΔE: \tavg. %.2f; \tmax. %.2f\n" -"\n" -"<b>Normalization values</b>\n" -"exposure compensation: \t%+.2f EV\n" -"black offset: \t%+.4f" -msgstr "" -"\n" -"<b>דו\"ח איכות פרופיל : %s</b>\n" -"output ΔE : \tavg. %.2f ; \tmax. %.2f\n" -"\n" -"<b>ערכי נירמול</b>\n" -"פיצוי חשיפה : \t%+.2f EV\n" -"black offset : \t%+.4f" - -#: ../src/iop/channelmixerrgb.c:1978 -msgid "double CAT applied" -msgstr "מיושם CAT כפול" - -#: ../src/iop/channelmixerrgb.c:1979 -msgid "" -"you have 2 instances or more of color calibration,\n" -"all performing chromatic adaptation.\n" -"this can lead to inconsistencies, unless you\n" -"use them with masks or know what you are doing." -msgstr "" -"ישנם 2 או יותר אירועים של כיול צבע,\n" -"כולם מבצעים התאמת צבע.\n" -"זה עלול להוביל לחוסר עקביות, אלא אם\n" -"יעשה שימוש במסיכות או שאתה יודע מה אתה עושה." - -#: ../src/iop/channelmixerrgb.c:1991 -msgid "white balance module error" -msgstr "שגיאה במודול איזון לבן" - -#: ../src/iop/channelmixerrgb.c:1992 -msgid "" -"the white balance module is not using the camera\n" -"reference illuminant, which will cause issues here\n" -"with chromatic adaptation. either set it to reference\n" -"or disable chromatic adaptation here." -msgstr "" -"מודול איזון הלבן אינו משתמש במקור אור הייחוס\n" -"של המצלמה, דבר שיגרום לבעיות בהתאמת הצבע.\n" -"או שתגדיר למקור אור הייחוס של המצלמה\n" -"או שתנטרל את התאמת הצבע כאן." - -#: ../src/iop/channelmixerrgb.c:2083 -msgid "auto-detection of white balance completed" -msgstr "גלוי איזון צבע אוטומטי הושלם" - -#: ../src/iop/channelmixerrgb.c:2236 -msgid "channelmixerrgb works only on RGB input" -msgstr "ה channelmixerrgb עובד רק על קלט RGB" - -#: ../src/iop/channelmixerrgb.c:3621 -#, c-format -msgid "CCT: %.0f K (daylight)" -msgstr "CCT: %.0f K (אור יום)" - -#: ../src/iop/channelmixerrgb.c:3624 -msgid "" -"approximated correlated color temperature.\n" -"this illuminant can be accurately modeled by a daylight spectrum,\n" -"so its temperature is relevant and meaningful with a D illuminant." -msgstr "" -"הערכת טמפרטורת צבע מותאמת.\n" -"מקור אור זה ניתן לייצג במדויק על ידי ספקטרום של אור יום,\n" -"לכן הטמפרטורה שלו רלוונטית ובעלת משמעות עם מקור אור מסוג D." - -#: ../src/iop/channelmixerrgb.c:3630 -#, c-format -msgid "CCT: %.0f K (black body)" -msgstr "CCT: %.0f K (גוף שחור)" - -#: ../src/iop/channelmixerrgb.c:3633 -msgid "" -"approximated correlated color temperature.\n" -"this illuminant can be accurately modeled by a black body spectrum,\n" -"so its temperature is relevant and meaningful with a Planckian illuminant." -msgstr "" -"הערכת טמפרטורת צבע מותאמת.\n" -"מקור אור זה ניתן לייצג במדויק על ידי ספקטרום של גוף שחור,\n" -"לכן הטמפרטורה שלו רלוונטית ובעלת משמעות עם מקור אור מסוג פלאנק." - -#: ../src/iop/channelmixerrgb.c:3639 -#, c-format -msgid "CCT: %.0f K (invalid)" -msgstr "CCT: %.0f K (לא תקף)" - -#: ../src/iop/channelmixerrgb.c:3642 -msgid "" -"approximated correlated color temperature.\n" -"this illuminant cannot be accurately modeled by a daylight or black body " -"spectrum,\n" -"so its temperature is not relevant and meaningful and you need to use a " -"custom illuminant." -msgstr "" -"הערכת טמפרטורת צבע מותאמת.\n" -"מקור אור זה לא ניתן לייצג במדויק על ידי ספקטרום של אור יום או גוף שחור,\n" -"לכן הטמפרטורה שלו לא רלוונטית וחסרת משמעות וצריך להשתמש במקור אור מותאם " -"אישית." - -#: ../src/iop/channelmixerrgb.c:3651 -#, c-format -msgid "CCT: undefined" -msgstr "CCT: לא מוגדר" - -#: ../src/iop/channelmixerrgb.c:3654 -msgid "" -"the approximated correlated color temperature\n" -"cannot be computed at all so you need to use a custom illuminant." -msgstr "" -"הערכת טמפרטורת הצבע המותאמת\n" -"לא ניתנת לחישוב לכן צריך להשתמש במקור אור מותאם אישית." - -#: ../src/iop/channelmixerrgb.c:3967 -msgid "white balance successfully extracted from raw image" -msgstr "איזון לבן חולץ בהצלחה מקובץ raw" - -#. We need to recompute only the full preview -#: ../src/iop/channelmixerrgb.c:3973 -msgid "auto-detection of white balance started…" -msgstr "גילוי אוטומטי של איזון לבן החל..." - -#: ../src/iop/channelmixerrgb.c:4078 -msgid "" -"color calibration: the sum of the gray channel parameters is zero, " -"normalization will be disabled." -msgstr "כיול צבע: סכום פרמטרי ערוצי רמות האפור הוא אפס, נרמול לא יתאפשר." - -#. Write report in GUI -#: ../src/iop/channelmixerrgb.c:4126 -#, c-format -msgid "" -"L: \t%.1f %%\n" -"h: \t%.1f °\n" -"c: \t%.1f" -msgstr "" -"L: \t%.1f %%\n" -"h: \t%.1f °\n" -"c: \t%.1f" - -#: ../src/iop/channelmixerrgb.c:4394 ../src/iop/clipping.c:2087 -#: ../src/iop/colorbalancergb.c:1873 ../src/iop/filmicrgb.c:4419 -#: ../src/iop/negadoctor.c:829 ../src/iop/toneequal.c:3319 -#: ../src/libs/image.c:460 ../src/views/lighttable.c:1258 -msgid "page" -msgstr "דף" - -#. Page CAT -#: ../src/iop/channelmixerrgb.c:4397 -msgid "CAT" -msgstr "CAT" - -#: ../src/iop/channelmixerrgb.c:4398 -msgid "chromatic adaptation transform" -msgstr "התמרת התאמת צבע" - -#: ../src/iop/channelmixerrgb.c:4400 -msgid "adaptation" -msgstr "הסתגלות" - -#: ../src/iop/channelmixerrgb.c:4403 -msgid "" -"choose the method to adapt the illuminant\n" -"and the colorspace in which the module works: \n" -"• Linear Bradford (1985) is consistent with ICC v4 toolchain.\n" -"• CAT16 (2016) is more robust and accurate.\n" -"• Non-linear Bradford (1985) is the original Bradford,\n" -"it can produce better results than the linear version, but is unreliable.\n" -"• XYZ is a simple scaling in XYZ space. It is not recommended in general.\n" -"• none disables any adaptation and uses pipeline working RGB." -msgstr "" -"בחר שיטה להתאמת מקור האור\n" -"ומרחב הצבע בו יעבוד המודול:\n" -"• תואם ICC v4 ושרשרת הכלים שלו Linear Bradford (1985) \n" -"• עמיד יותר ומדוייק CAT16 (2016) \n" -"• בראדפורט מקורי Non-linear Bradford (1985) ,\n" -"מסוגל לייצר תוצאות טובות מהגרסה הלינארית, אבל לא אמין.\n" -"• משקול פשוט של XYZ במרחב XYZ. לא מומלץ בדרך כלל.\n" -"• כלום מנטרל כל התאמה ומשתמש בסדר פעולות RGB." - -#: ../src/iop/channelmixerrgb.c:4423 -msgid "" -"this is the color of the scene illuminant before chromatic adaptation\n" -"this color will be turned into pure white by the adaptation." -msgstr "" -"זה צבע מקור האור של הסצנה לפני התאמת צבע\n" -"צבע זה יהפוך ללבן טהור לאחר ההתאמה." - -#: ../src/iop/channelmixerrgb.c:4431 -msgid "picker" -msgstr "בוחר" - -#: ../src/iop/channelmixerrgb.c:4433 ../src/iop/temperature.c:2050 -msgid "set white balance to detected from area" -msgstr "קבע איזון לבן לגילוי מתוך אזור" - -#: ../src/iop/channelmixerrgb.c:4437 ../src/iop/negadoctor.c:953 -msgid "illuminant" -msgstr "מקור אור" - -#: ../src/iop/channelmixerrgb.c:4443 ../src/iop/temperature.c:2111 -msgid "temperature" -msgstr "טמפרטורה" - -#: ../src/iop/channelmixerrgb.c:4474 -msgid "spot color mapping" -msgstr "מיפוי צבע נקודתי" - -#: ../src/iop/channelmixerrgb.c:4480 -msgid "" -"define a target chromaticity (hue and chroma) for a particular region of the " -"image (the control sample), which you then match against the same target " -"chromaticity in other images. the control sample can either be a critical " -"part of your subject or a non-moving and consistently-lit surface over your " -"series of images." -msgstr "" -"הגדר יעד כרומטיות (גוון וכרומה) עבור אזור מסוים בתמונה (דגימת הבקרה), שאותה " -"משווים לאותו יעד כרומטיות בתמונות אחרות. דגימת הבקרה יכולה להיות חלק קריטי " -"מהנושא או משטח קבוע המואר באופן עקבי בסדרת התמונות." - -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/channelmixerrgb.c:4502 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/channelmixerrgb.c:4573 -msgid "mapping" -msgstr "מיפוי" - -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/exposure.c:1188 -msgid "spot mode" -msgstr "מצב כתם" - -#: ../src/iop/channelmixerrgb.c:4488 -msgid "" -"\"correction\" automatically adjust the illuminant\n" -"such that the input color is mapped to the target.\n" -"\"measure\" simply shows how an input color is mapped by the CAT\n" -"and can be used to sample a target." -msgstr "" -"\"תיקון\" אוטומטית מכוונן את מקור האור\n" -"כך צבע הקלט ממופה למטרה.\n" -"\"מדוד\" פשוט מראה איך צבע קלט ממופה ע\"י ה CAT\n" -"וניתן לשימוש עבור דגימת מטרה." - -#: ../src/iop/channelmixerrgb.c:4493 ../src/iop/exposure.c:1194 -msgid "correction" -msgstr "תיקון" - -#: ../src/iop/channelmixerrgb.c:4494 ../src/iop/exposure.c:1195 -msgid "measure" -msgstr "מדידה" - -#: ../src/iop/channelmixerrgb.c:4500 -msgid "take channel mixing into account" -msgstr "התחשב בריבוב הערוצים" - -#: ../src/iop/channelmixerrgb.c:4507 -msgid "" -"compute the target by taking the channel mixing into account.\n" -"if disabled, only the CAT is considered." -msgstr "" -"חשב את המטרה תוך לקיחת ריבוב הערוצים בחשבון.\n" -"אם מנוטרל , רק CAT נלקח בחשבון." - -#: ../src/iop/channelmixerrgb.c:4519 ../src/iop/exposure.c:1202 -msgctxt "section" -msgid "input" -msgstr "קלט" - -#: ../src/iop/channelmixerrgb.c:4526 ../src/iop/exposure.c:1210 -msgid "the input color that should be mapped to the target" -msgstr "צבע הקלט אותו יש למפות למטרה" - -#: ../src/iop/channelmixerrgb.c:4532 -msgid "" -"L: \tN/A\n" -"h: \tN/A\n" -"c: \tN/A" -msgstr "" -"L: \tN/A\n" -"h: \tN/A\n" -"c: \tN/A" - -#: ../src/iop/channelmixerrgb.c:4535 ../src/iop/exposure.c:1218 -msgid "these LCh coordinates are computed from CIE Lab 1976 coordinates" -msgstr "קורדינטות LCh אלה מחושבות מתוך קורדינטות CIE Lab 1976" - -#: ../src/iop/channelmixerrgb.c:4543 ../src/iop/exposure.c:1225 -msgctxt "section" -msgid "target" -msgstr "יעד" - -#: ../src/iop/channelmixerrgb.c:4550 -msgid "the desired target color after mapping" -msgstr "צבע המטרה הנדרש לאחר מיפוי" - -#: ../src/iop/channelmixerrgb.c:4589 -msgid "input R" -msgstr "קלט R" - -#: ../src/iop/channelmixerrgb.c:4594 -msgid "input G" -msgstr "קלט G" - -#: ../src/iop/channelmixerrgb.c:4599 -msgid "input B" -msgstr "קלט B" - -#: ../src/iop/channelmixerrgb.c:4609 -msgid "output R" -msgstr "פלט R" - -#: ../src/iop/channelmixerrgb.c:4610 -msgid "output G" -msgstr "פלט G" - -#: ../src/iop/channelmixerrgb.c:4611 -msgid "output B" -msgstr "פלט B" - -#: ../src/iop/channelmixerrgb.c:4613 -msgid "colorfulness" -msgstr "צבעוניות" - -#: ../src/iop/channelmixerrgb.c:4613 -msgid "output colorfulness" -msgstr "צבעוניות פלט" - -#: ../src/iop/channelmixerrgb.c:4617 -msgid "output brightness" -msgstr "בהירות פלט" - -#: ../src/iop/channelmixerrgb.c:4620 -msgid "output gray" -msgstr "פלט אפור" - -#: ../src/iop/channelmixerrgb.c:4635 -msgid "calibrate with a color checker" -msgstr "כייל עם בודק צבע" - -#: ../src/iop/channelmixerrgb.c:4640 -msgid "use a color checker target to autoset CAT and channels" -msgstr "השתמש בבודק צבע לקביעה אוטומטית של CAT וערוצים" - -#: ../src/iop/channelmixerrgb.c:4647 ../src/iop/channelmixerrgb.c:4660 -#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/channelmixerrgb.c:4696 -#: ../src/iop/channelmixerrgb.c:4705 ../src/iop/channelmixerrgb.c:4713 -msgid "calibrate" -msgstr "כייל" - -#: ../src/iop/channelmixerrgb.c:4647 -msgid "chart" -msgstr "תרשים" - -#: ../src/iop/channelmixerrgb.c:4648 -msgid "choose the vendor and the type of your chart" -msgstr "בחר ספק וסוג בודק הצבע" - -#: ../src/iop/channelmixerrgb.c:4650 -msgid "Xrite ColorChecker 24 pre-2014" -msgstr "Xrite ColorChecker 24 pre-2014" - -#: ../src/iop/channelmixerrgb.c:4651 -msgid "Xrite ColorChecker 24 post-2014" -msgstr "Xrite ColorChecker 24 post-2014" - -#: ../src/iop/channelmixerrgb.c:4652 -msgid "Datacolor SpyderCheckr 24 pre-2018" -msgstr "Datacolor SpyderCheckr 24 pre-2018" - -#: ../src/iop/channelmixerrgb.c:4653 -msgid "Datacolor SpyderCheckr 24 post-2018" -msgstr "Datacolor SpyderCheckr 24 post-2018" - -#: ../src/iop/channelmixerrgb.c:4654 -msgid "Datacolor SpyderCheckr 48 pre-2018" -msgstr "Datacolor SpyderCheckr 48 pre-2018" - -#: ../src/iop/channelmixerrgb.c:4655 -msgid "Datacolor SpyderCheckr 48 post-2018" -msgstr "Datacolor SpyderCheckr 48 post-2018" - -#: ../src/iop/channelmixerrgb.c:4656 -msgid "Datacolor SpyderCheckr Photo" -msgstr "Datacolor SpyderCheckr Photo" - -#: ../src/iop/channelmixerrgb.c:4660 -msgid "optimize for" -msgstr "מטב ל" - -#: ../src/iop/channelmixerrgb.c:4661 -msgid "" -"choose the colors that will be optimized with higher priority.\n" -"neutral colors gives the lowest average delta E but a high maximum delta E\n" -"saturated colors gives the lowest maximum delta E but a high average delta " -"E\n" -"none is a trade-off between both\n" -"the others are special behaviors to protect some hues" -msgstr "" -"בחר את הצבעים שיעברו אופטימיזציה בעדיפות גבוהה יותר.\n" -"צבעים נייטרלים נותנים את ערך ה delta E הממוצע הנמוך ביותר אבל ערך delta E " -"מקסימלי גבוהה\n" -"צבעים רווים נותנים את ערך ה delta E המקסימלי הנמוך ביותר אבל ערך delta E " -"ממוצע גבוהה\n" -"אף לא אחד הוא פשרה בין שניהם\n" -"האחרים הם התנהגויות מיוחדות להגנה על גוונים מסוימים" - -#: ../src/iop/channelmixerrgb.c:4668 -msgid "neutral colors" -msgstr "צבעים נייטרלים" - -#: ../src/iop/channelmixerrgb.c:4670 -msgid "skin and soil colors" -msgstr "צבעי עור ואדמה" - -#: ../src/iop/channelmixerrgb.c:4671 -msgid "foliage colors" -msgstr "צבעי עלווה" - -#: ../src/iop/channelmixerrgb.c:4672 -msgid "sky and water colors" -msgstr "צבעי שמיים ומים" - -#: ../src/iop/channelmixerrgb.c:4673 -msgid "average delta E" -msgstr "ממוצע delta E" - -#: ../src/iop/channelmixerrgb.c:4674 -msgid "maximum delta E" -msgstr "מקסימום delta E" - -#: ../src/iop/channelmixerrgb.c:4678 -msgid "patch scale" -msgstr "הגדלת טלאי" - -#: ../src/iop/channelmixerrgb.c:4681 -msgid "" -"reduce the radius of the patches to select the more or less central part.\n" -"useful when the perspective correction is sloppy or\n" -"the patches frame cast a shadows on the edges of the patch." -msgstr "" -"הפחת את רדיוס הטלאים לבחירת החלק המרכזי בקירוב.\n" -"שימושי כאשר תיקון פרספקטיבה מרושל או\n" -"שמסגרת הטלאים מטילה צללים על שולי הטלאי." - -#: ../src/iop/channelmixerrgb.c:4691 -msgid "the delta E is using the CIE 2000 formula" -msgstr "ה delta E עושה שימוש בנוסחת CIE 2000" - -#: ../src/iop/channelmixerrgb.c:4696 -msgid "accept" -msgstr "קבל" - -#: ../src/iop/channelmixerrgb.c:4702 -msgid "accept the computed profile and set it in the module" -msgstr "קבל את הפרופיל המחושב וקבע אותו במודול" - -#: ../src/iop/channelmixerrgb.c:4705 -msgid "recompute" -msgstr "חשב מחדש" - -#: ../src/iop/channelmixerrgb.c:4709 -msgid "recompute the profile" -msgstr "חשב פרופיל מחדש" - -#: ../src/iop/channelmixerrgb.c:4713 -msgid "validate" -msgstr "בדוק חוקיות" - -#: ../src/iop/channelmixerrgb.c:4717 -msgid "check the output delta E" -msgstr "בדוק פלט ה delta E" - -#: ../src/iop/choleski.h:290 ../src/iop/choleski.h:390 -msgid "" -"Choleski decomposition failed to allocate memory, check your RAM settings" -msgstr "פירוק צ'ולסקי כשל בהקצאת זיכרון, בדוק את הגדרות ה RAM" - -#: ../src/iop/clahe.c:74 -msgid "" -"this module is deprecated. better use new local contrast module instead." -msgstr "מודול זה מוצא משימוש. עדיף להשתמש במודול הניגודיות המקומית במקום." - -#: ../src/iop/clahe.c:337 ../src/iop/sharpen.c:445 -msgid "amount" -msgstr "כמות" - -#: ../src/iop/clahe.c:346 -msgid "size of features to preserve" -msgstr "גודל הפרטים לשימור" - -#: ../src/iop/clahe.c:347 ../src/iop/nlmeans.c:464 -msgid "strength of the effect" -msgstr "עוצמת האפקט" - -#: ../src/iop/clipping.c:304 -msgid "" -"this module is deprecated. please use the crop, orientation and/or rotate " -"and perspective modules instead." -msgstr "" -"מודול זה יוצא משימוש. אנה השתמש במודול החיתוך, כיוון ו/או סיבוב ופרספקטיבה " -"במקום." - -#: ../src/iop/clipping.c:309 -msgid "crop and rotate" -msgstr "חתוך וסובב" - -#: ../src/iop/clipping.c:314 -msgid "reframe|perspective|keystone|distortion" -msgstr "שנה שם|פרספקטיבה|keystone|דיסטורציה" - -#: ../src/iop/clipping.c:319 -msgid "change the framing and correct the perspective" -msgstr "שנה מסגור ותקן פרספקטיבה" - -#: ../src/iop/clipping.c:1394 ../src/iop/clipping.c:2120 ../src/iop/crop.c:517 -#: ../src/iop/crop.c:1117 -msgid "original image" -msgstr "תמונה מקורית" - -#: ../src/iop/clipping.c:1698 ../src/iop/crop.c:824 -msgid "invalid ratio format. it should be \"number:number\"" -msgstr "פורמט יחס לא חוקי. נדרש \"מספר:מספר\"" - -#: ../src/iop/clipping.c:1714 ../src/iop/crop.c:840 -msgid "invalid ratio format. it should be a positive number" -msgstr "פורמט יחס לא חוקי. צריך להיות מספר חיובי" - -#: ../src/iop/clipping.c:1903 ../src/iop/clipping.c:2111 -msgid "full" -msgstr "מלא" - -#: ../src/iop/clipping.c:1904 -msgid "old system" -msgstr "מערכת ישנה" - -#: ../src/iop/clipping.c:1905 -msgid "correction applied" -msgstr "תיקונים יושמו" - -#: ../src/iop/clipping.c:2089 -msgid "main" -msgstr "ראשי" - -#: ../src/iop/clipping.c:2098 -msgid "mirror image horizontally and/or vertically" -msgstr "שקף את התמונה אופקית ו/או אנכית" - -#: ../src/iop/clipping.c:2101 -msgid "angle" -msgstr "זווית" - -#: ../src/iop/clipping.c:2104 -msgid "right-click and drag a line on the image to drag a straight line" -msgstr "הקלק כפתור ימני וגרור קו על התמונה לקבע קו ישר" - -#: ../src/iop/clipping.c:2107 -msgid "keystone" -msgstr "keystone" - -#: ../src/iop/clipping.c:2112 -msgid "set perspective correction for your image" -msgstr "קבע תיקון פרספקטיבה עבור התמונה" - -#: ../src/iop/clipping.c:2119 ../src/iop/crop.c:1116 -msgid "freehand" -msgstr "יד חופשית" - -#: ../src/iop/clipping.c:2122 ../src/iop/crop.c:1119 -msgid "10:8 in print" -msgstr "בהדפסה 10:8" - -#: ../src/iop/clipping.c:2123 ../src/iop/crop.c:1120 -msgid "5:4, 4x5, 8x10" -msgstr "5:4, 4x5, 8x10" - -#: ../src/iop/clipping.c:2124 ../src/iop/crop.c:1121 -msgid "11x14" -msgstr "11x14" - -#: ../src/iop/clipping.c:2125 ../src/iop/crop.c:1122 -msgid "8.5x11, letter" -msgstr "8.5x11, letter" - -#: ../src/iop/clipping.c:2126 ../src/iop/crop.c:1123 -msgid "4:3, VGA, TV" -msgstr "4:3, VGA, TV" - -#: ../src/iop/clipping.c:2127 ../src/iop/crop.c:1124 -msgid "5x7" -msgstr "5x7" - -#: ../src/iop/clipping.c:2128 ../src/iop/crop.c:1125 -msgid "ISO 216, DIN 476, A4" -msgstr "ISO 216, DIN 476, A4" - -#: ../src/iop/clipping.c:2129 ../src/iop/crop.c:1126 -msgid "3:2, 4x6, 35mm" -msgstr "3:2, 4x6, 35mm" - -#: ../src/iop/clipping.c:2130 ../src/iop/crop.c:1127 -msgid "16:10, 8x5" -msgstr "16:10, 8x5" - -#: ../src/iop/clipping.c:2132 ../src/iop/crop.c:1129 -msgid "16:9, HDTV" -msgstr "16:9, HDTV" - -#: ../src/iop/clipping.c:2133 ../src/iop/crop.c:1130 -msgid "widescreen" -msgstr "מסך רחב" - -#: ../src/iop/clipping.c:2134 ../src/iop/crop.c:1131 -msgid "2:1, univisium" -msgstr "2:1, univisium" - -#: ../src/iop/clipping.c:2135 ../src/iop/crop.c:1132 -msgid "cinemascope" -msgstr "סינמהסקופ" - -#: ../src/iop/clipping.c:2136 ../src/iop/crop.c:1133 -msgid "21:9" -msgstr "21:9" - -#: ../src/iop/clipping.c:2137 ../src/iop/crop.c:1134 -msgid "anamorphic" -msgstr "אנאמורפי" - -#: ../src/iop/clipping.c:2138 ../src/iop/crop.c:1135 -msgid "3:1, panorama" -msgstr "פנורמה 3:1" - -#: ../src/iop/clipping.c:2170 ../src/iop/clipping.c:2182 ../src/iop/crop.c:1171 -#: ../src/iop/crop.c:1187 -#, c-format -msgid "invalid ratio format for `%s'. it should be \"number:number\"" -msgstr "פורמט יחס לא חוקי עבור `%s'. צריך להיות \"מספר:מספר\"" - -#: ../src/iop/clipping.c:2229 ../src/iop/crop.c:1238 -msgid "" -"set the aspect ratio\n" -"the list is sorted: from most square to least square\n" -"to enter custom aspect ratio open the combobox and type ratio in x:y or " -"decimal format" -msgstr "" -"קבע יחס גובה רוחב\n" -"הרשימה מסודרת: מהריבועי ביותר עד המלבני ביותר\n" -"להכנסת יחס גובה רוחב מותאם אישית פתח את ה combobox והקלד את היחס ב x:y או " -"כמספר דצימלי" - -#: ../src/iop/clipping.c:2236 ../src/iop/crop.c:1252 -msgid "margins" -msgstr "שוליים" - -#: ../src/iop/clipping.c:2241 ../src/iop/crop.c:1262 -msgid "the left margin cannot overlap with the right margin" -msgstr "השול השמאלי לא יכול לחפוף לשול הימני" - -#: ../src/iop/clipping.c:2248 ../src/iop/crop.c:1270 -msgid "the right margin cannot overlap with the left margin" -msgstr "השול הימני לא יכול לחפוף לשול השמאלי" - -#: ../src/iop/clipping.c:2253 ../src/iop/crop.c:1276 -msgid "the top margin cannot overlap with the bottom margin" -msgstr "השול העליון לא יכול לחפוף לשול התחתון" - -#: ../src/iop/clipping.c:2260 ../src/iop/crop.c:1284 -msgid "the bottom margin cannot overlap with the top margin" -msgstr "השול התחתון לא יכול לחפוף לשול העליון" - -#: ../src/iop/clipping.c:3019 -msgid "<b>commit</b>: double-click, <b>straighten</b>: right-drag" -msgstr "<b>התחייב</b>: קליק-כפול, <b>יישר</b>: גרור-ימין" - -#: ../src/iop/clipping.c:3023 -msgid "" -"<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag\n" -"<b>straighten</b>: right-drag" -msgstr "" -"<b>שנה גודל</b>: גרור, <b>שמור יחס גובה רוחב</b>: shift+גרור\n" -"<b>יישר</b>: גרור-ימין" - -#: ../src/iop/clipping.c:3066 -msgid "<b>move control point</b>: drag" -msgstr "<b>הזז נקודת שליטה</b>: גרור" - -#: ../src/iop/clipping.c:3071 -msgid "<b>move line</b>: drag, <b>toggle symmetry</b>: click ꝏ" -msgstr "<b>הזז קו</b>: גרור, <b>מתג סימטריה</b>: קליק ꝏ" - -#: ../src/iop/clipping.c:3076 -msgid "" -"<b>apply</b>: click <tt>ok</tt>, <b>toggle symmetry</b>: click ꝏ\n" -"<b>move line/control point</b>: drag" -msgstr "" -"<b>יישם</b>: קליק <tt>ok</tt>, <b>מתג סימטריה</b>: קליק ꝏ\n" -"<b>הזז קו/נקודת בקרה</b>: גרור" - -#: ../src/iop/clipping.c:3083 -msgid "" -"<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" -"b>: ctrl+drag\n" -"<b>straighten</b>: right-drag, <b>commit</b>: double-click" -msgstr "" -"<b>הזז</b>: גרור, <b>הזז אנכית</b>: shift+גרור, <b>הזז אופקית</b>: " -"ctrl+גרור\n" -"<b>יישר</b>: גרור-ימין, <b>התחייב</b>: קליק-כפול" - -#: ../src/iop/clipping.c:3340 ../src/iop/crop.c:1803 -#, c-format -msgid "[%s on borders] crop" -msgstr "[%s on borders] חתוך" - -#: ../src/iop/clipping.c:3342 ../src/iop/crop.c:1805 -#, c-format -msgid "[%s on borders] crop keeping ratio" -msgstr "[%s on borders] חתוך תוך שמירת יחס" - -#: ../src/iop/colisa.c:79 -msgid "this module is deprecated. please use colorbalance RGB module instead." -msgstr "מודול זה יוצא משימוש, עדיף להשתמש במודול כיול הצבע RGB במקום." - -#: ../src/iop/colisa.c:84 -msgid "contrast brightness saturation" -msgstr "ניגודיות בהירות רוויה" - -#: ../src/iop/colisa.c:89 -msgid "adjust the look of the image" -msgstr "קבע את מראה התמונה" - -#: ../src/iop/colisa.c:310 -msgid "color saturation adjustment" -msgstr "כוונון רווית צבע" - -#: ../src/iop/colorbalance.c:150 -msgid "color balance" -msgstr "איזון צבע" - -#: ../src/iop/colorbalance.c:155 -msgid "lift gamma gain|cdl|color grading|contrast|saturation|hue" -msgstr "העלה הגבר גאמה|cdl|ציון צבעים|ניגודיות|רוויה|גוון" - -#: ../src/iop/colorbalance.c:160 -msgid "shift colors selectively by luminance range" -msgstr "הסט צבעים סלקטיבית ע\"י טווח לומיננס" - -#: ../src/iop/colorbalance.c:164 -msgid "non-linear, Lab, scene-referred" -msgstr "לא-לינארי, Lab, מיוחס-סצנה" - -#. these blobs were exported as dtstyle and copied from there: -#: ../src/iop/colorbalance.c:275 -msgid "split-toning teal-orange (2nd instance)" -msgstr "split-toning teal-orange (2nd instance)" - -#: ../src/iop/colorbalance.c:278 -msgid "split-toning teal-orange (1st instance)" -msgstr "split-toning teal-orange (1st instance)" - -#: ../src/iop/colorbalance.c:282 -msgid "generic film" -msgstr "פילים כללי" - -#: ../src/iop/colorbalance.c:286 -msgid "similar to Kodak Portra" -msgstr "בדומה ל Kodak Portra" - -#: ../src/iop/colorbalance.c:290 -msgid "similar to Kodak Ektar" -msgstr "בדומה ל Kodak Ektar" - -#: ../src/iop/colorbalance.c:294 -msgid "similar to Kodachrome" -msgstr "בדומה ל Kodachrome" - -#: ../src/iop/colorbalance.c:990 -msgid "optimize luma from patches" -msgstr "בצע אפטימיזציית לומה מתוך הטלאים" - -#: ../src/iop/colorbalance.c:992 ../src/iop/colorbalance.c:2110 -msgid "optimize luma" -msgstr "בצע אפטימיזציית לומה" - -#: ../src/iop/colorbalance.c:996 -msgid "neutralize colors from patches" -msgstr "נטרל צבעים מהטלאים" - -#: ../src/iop/colorbalance.c:998 ../src/iop/colorbalance.c:2116 -msgid "neutralize colors" -msgstr "נטרל צבעים" - -#: ../src/iop/colorbalance.c:1783 -msgctxt "color" -msgid "offset" -msgstr "הסחה" - -#: ../src/iop/colorbalance.c:1783 -msgctxt "color" -msgid "power" -msgstr "עצמה" - -#: ../src/iop/colorbalance.c:1783 -msgctxt "color" -msgid "slope" -msgstr "שיפוע" - -#: ../src/iop/colorbalance.c:1784 -msgctxt "color" -msgid "lift" -msgstr "עילוי" - -#: ../src/iop/colorbalance.c:1784 -msgctxt "color" -msgid "gamma" -msgstr "גאמה" - -#: ../src/iop/colorbalance.c:1784 -msgctxt "color" -msgid "gain" -msgstr "הגבר" - -#: ../src/iop/colorbalance.c:1787 -msgctxt "section" -msgid "shadows: lift / offset" -msgstr "צללים: הרם / הסט" - -#: ../src/iop/colorbalance.c:1788 -msgctxt "section" -msgid "mid-tones: gamma / power" -msgstr "טונים בינוניים: גאמה / חזקה" - -#: ../src/iop/colorbalance.c:1789 -msgctxt "section" -msgid "highlights: gain / slope" -msgstr "פרטים בהירים: הגבר / שיפוע" - -#: ../src/iop/colorbalance.c:1813 -msgid "shadows / mid-tones / highlights" -msgstr "צללים / טונים-בינוניים / פרטים בהירים" - -#: ../src/iop/colorbalance.c:1910 ../src/iop/colorbalance.c:1919 -msgid "color-grading mapping method" -msgstr "שיטת מיפוי color-grading" - -#: ../src/iop/colorbalance.c:1914 -msgid "color control sliders" -msgstr "סליידרים לבקרת צבע" - -#: ../src/iop/colorbalance.c:1915 ../src/libs/colorpicker.c:51 -msgid "HSL" -msgstr "HSL" - -#: ../src/iop/colorbalance.c:1916 -msgid "RGBL" -msgstr "RGBL" - -#: ../src/iop/colorbalance.c:1928 -msgctxt "section" -msgid "master" -msgstr "ראשי" - -#: ../src/iop/colorbalance.c:1934 -msgid "saturation correction before the color balance" -msgstr "תיקון רוויה לפני איזון צבע" - -#: ../src/iop/colorbalance.c:1940 -msgid "saturation correction after the color balance" -msgstr "תיקון רוויה אחרי איזון צבע" - -#: ../src/iop/colorbalance.c:1945 -msgid "adjust to match a neutral tone" -msgstr "כוונן להתאים ל טון ניטראלי" - -#. is set in _configure_slider_blocks -#: ../src/iop/colorbalance.c:2003 -msgid "click to cycle layout" -msgstr "לחץ לגלול סידורים" - -#: ../src/iop/colorbalance.c:2037 -msgid "factor" -msgstr "מקדם" - -#: ../src/iop/colorbalance.c:2051 -msgid "select the hue" -msgstr "בחר את הגוון" - -#: ../src/iop/colorbalance.c:2063 -msgid "select the saturation" -msgstr "בחר את הרוויה" - -#: ../src/iop/colorbalance.c:2082 -msgid "factor of lift/offset" -msgstr "מקדם הרמה/הסחה" - -#: ../src/iop/colorbalance.c:2083 -msgid "factor of red for lift/offset" -msgstr "מקדם הרמה/הסחה לאדום" - -#: ../src/iop/colorbalance.c:2084 -msgid "factor of green for lift/offset" -msgstr "מקדם הרמה/הסחה לירוק" - -#: ../src/iop/colorbalance.c:2085 -msgid "factor of blue for lift/offset" -msgstr "מקדם הרמה/הסחה לכחול" - -#: ../src/iop/colorbalance.c:2088 -msgid "factor of gamma/power" -msgstr "מקדם גאמה/עצמה" - -#: ../src/iop/colorbalance.c:2089 -msgid "factor of red for gamma/power" -msgstr "מקדם גאמה/עצמה לאדום" - -#: ../src/iop/colorbalance.c:2090 -msgid "factor of green for gamma/power" -msgstr "מקדם גאמה/עצמה לירוק" - -#: ../src/iop/colorbalance.c:2091 -msgid "factor of blue for gamma/power" -msgstr "מקדם גאמה/עצמה לכחול" - -#: ../src/iop/colorbalance.c:2094 -msgid "factor of gain/slope" -msgstr "מקדם הגבר/שיפוע" - -#: ../src/iop/colorbalance.c:2095 -msgid "factor of red for gain/slope" -msgstr "מקדם הגבר/שיפוע לאדום" - -#: ../src/iop/colorbalance.c:2096 -msgid "factor of green for gain/slope" -msgstr "מקדם הגבר/שיפוע לירוק" - -#: ../src/iop/colorbalance.c:2097 -msgid "factor of blue for gain/slope" -msgstr "מקדם הגבר/שיפוע לכחול" - -#: ../src/iop/colorbalance.c:2106 -msgctxt "section" -msgid "auto optimizers" -msgstr "אופטימייזרים אוטומטיים" - -#: ../src/iop/colorbalance.c:2111 -msgid "fit the whole histogram and center the average luma" -msgstr "התאם את ההסטוגרמה כולה ומרכז לומה ממוצעת" - -#: ../src/iop/colorbalance.c:2117 -msgid "optimize the RGB curves to remove color casts" -msgstr "מטב עקומות RGB על מנת להסיר הצללות צבע" - -#: ../src/iop/colorbalancergb.c:173 -msgid "color balance rgb" -msgstr "איזון צבע rgb" - -#: ../src/iop/colorbalancergb.c:178 -msgid "" -"offset power slope|cdl|color grading|contrast|chroma_highlights|hue|vibrance|" -"saturation" -msgstr "" -"הסחת שיפוע חזקה|cdl|הדרגתיות צבעים|קונטרסט|כרומה פרטים " -"בהירים|גוון|וויברנס|רוויה" - -#: ../src/iop/colorbalancergb.c:183 -msgid "" -"color grading tools using alpha masks to separate\n" -"shadows, mid-tones and highlights" -msgstr "" -"כלי דירוג צבע המשתמשים במסיכות אלפא להפרדת\n" -"צללים, טונים בינוניים, ופרטים בהירים" - -#: ../src/iop/colorbalancergb.c:443 -msgid "add basic colorfulness (legacy)" -msgstr "הוסף צבעוניות בסיסית (מיושן)" - -#: ../src/iop/colorbalancergb.c:452 -msgid "basic colorfulness: natural skin" -msgstr "צבעוניות בסיסית: עור טבעי" - -#: ../src/iop/colorbalancergb.c:458 -msgid "basic colorfulness: vibrant colors" -msgstr "צבעוניות בסיסית: גבעים חיים" - -#: ../src/iop/colorbalancergb.c:464 -msgid "basic colorfulness: standard" -msgstr "צבעוניות בסיסית: סטנדרטי" - -#: ../src/iop/colorbalancergb.c:937 -msgid "colorbalance works only on RGB input" -msgstr "ה colorbalance עובד רק על קלט RGB" - -#: ../src/iop/colorbalancergb.c:1506 ../src/iop/colorzones.c:2164 -#: ../src/iop/retouch.c:1884 ../src/iop/toneequal.c:1966 -msgid "cannot display masks when the blending mask is displayed" -msgstr "לא ניתן להציג מסיכות בזמן שמסיכת הערבוב מוצגת" - -#. Page master -#: ../src/iop/colorbalancergb.c:1876 -msgid "master" -msgstr "ראשי" - -#: ../src/iop/colorbalancergb.c:1876 -msgid "global grading" -msgstr "דירוג גלובלית" - -#: ../src/iop/colorbalancergb.c:1880 -msgid "rotate all hues by an angle, at the same luminance" -msgstr "סובב את כל הגוונים בזווית, באותו לומיננס" - -#: ../src/iop/colorbalancergb.c:1886 -msgid "increase colorfulness mostly on low-chroma colors" -msgstr "הגבר צבעוניות בעיקר צבעים בעלי כרומה נמוכה" - -#: ../src/iop/colorbalancergb.c:1892 -msgid "increase the contrast at constant chromaticity" -msgstr "הגבר ניגודיות בכרומטיות קבועה" - -#: ../src/iop/colorbalancergb.c:1894 -msgctxt "section" -msgid "linear chroma grading" -msgstr "הדרגתיות כרומה לינארית" - -#: ../src/iop/colorbalancergb.c:1901 -msgid "increase colorfulness at same luminance globally" -msgstr "הגבר צבעוניות כללית בלומיננס קבוע" - -#: ../src/iop/colorbalancergb.c:1906 -msgid "increase colorfulness at same luminance mostly in shadows" -msgstr "הגבר צבעוניות בעיקר בצללים בלומיננס קבוע" - -#: ../src/iop/colorbalancergb.c:1911 -msgid "increase colorfulness at same luminance mostly in mid-tones" -msgstr "הגבר צבעוניות בעיקר בבינוניים בלומיננס קבוע" - -#: ../src/iop/colorbalancergb.c:1916 -msgid "increase colorfulness at same luminance mostly in highlights" -msgstr "הגבר צבעוניות בבהירים בלומיננס קבוע" - -#: ../src/iop/colorbalancergb.c:1918 -msgctxt "section" -msgid "perceptual saturation grading" -msgstr "כוונון רווית צבע פרספטואלית" - -#: ../src/iop/colorbalancergb.c:1924 -msgid "add or remove saturation by an absolute amount" -msgstr "הוסף או הפחת רוויה בערך אבסולוטי" - -#: ../src/iop/colorbalancergb.c:1929 ../src/iop/colorbalancergb.c:1934 -#: ../src/iop/colorbalancergb.c:1939 -msgid "" -"increase or decrease saturation proportionally to the original pixel " -"saturation" -msgstr "הוסף או הפחת רוויה פרופורציונלית לערך המקורי של הפיקסל" - -#: ../src/iop/colorbalancergb.c:1941 -msgctxt "section" -msgid "perceptual brilliance grading" -msgstr "הדרגתיות ברק פרספטואלית" - -#: ../src/iop/colorbalancergb.c:1942 -msgid "brilliance" -msgstr "ברק" - -#: ../src/iop/colorbalancergb.c:1947 -msgid "add or remove brilliance by an absolute amount" -msgstr "הוסף או הפחת ברק בערך אבסולוטי" - -#: ../src/iop/colorbalancergb.c:1952 ../src/iop/colorbalancergb.c:1957 -#: ../src/iop/colorbalancergb.c:1962 -msgid "" -"increase or decrease brilliance proportionally to the original pixel " -"brilliance" -msgstr "הוסף או הפחת רוויה פרופורציונלית לערך הברק המקורי של הפיקסל" - -#. Page 4-ways -#: ../src/iop/colorbalancergb.c:1965 -msgid "4 ways" -msgstr "4 דרכים" - -#: ../src/iop/colorbalancergb.c:1965 -msgid "selective color grading" -msgstr "דירוג צבעים סלקטיבי" - -#: ../src/iop/colorbalancergb.c:1967 -msgctxt "section" -msgid "global offset" -msgstr "הסחה גלובלית" - -#: ../src/iop/colorbalancergb.c:1974 -msgid "global luminance offset" -msgstr "הסחת לומיננס גלובלית" - -#: ../src/iop/colorbalancergb.c:1979 -msgid "hue of the global color offset" -msgstr "הסחת גוון וצבע גלובליים" - -#: ../src/iop/colorbalancergb.c:1985 -msgid "chroma of the global color offset" -msgstr "כרומה של הסחת הצבע הגלובלית" - -#: ../src/iop/colorbalancergb.c:1987 -msgctxt "section" -msgid "shadows lift" -msgstr "הרמת צללים" - -#: ../src/iop/colorbalancergb.c:1988 -msgid "lift" -msgstr "עילוי" - -#: ../src/iop/colorbalancergb.c:1994 -msgid "luminance gain in shadows" -msgstr "הגבר לומיננס בצללים" - -#: ../src/iop/colorbalancergb.c:1999 -msgid "hue of the color gain in shadows" -msgstr "גוון הגבר הצבע בצללים" - -#: ../src/iop/colorbalancergb.c:2005 -msgid "chroma of the color gain in shadows" -msgstr "כרומה של הגבר הצבע בצללים" - -#: ../src/iop/colorbalancergb.c:2007 -msgctxt "section" -msgid "highlights gain" -msgstr "הגבר פרטים בהירים" - -#: ../src/iop/colorbalancergb.c:2008 -msgid "gain" -msgstr "הגבר" - -#: ../src/iop/colorbalancergb.c:2014 -msgid "luminance gain in highlights" -msgstr "הגבר לומיננס בפרטים הבהירים" - -#: ../src/iop/colorbalancergb.c:2019 -msgid "hue of the color gain in highlights" -msgstr "גוון הגבר הצבע בפרטים הבהירים" - -#: ../src/iop/colorbalancergb.c:2025 -msgid "chroma of the color gain in highlights" -msgstr "כרומהשל הגבר הצבע בבהירים" - -#: ../src/iop/colorbalancergb.c:2027 -msgctxt "section" -msgid "power" -msgstr "עצמה" - -#: ../src/iop/colorbalancergb.c:2028 -msgid "power" -msgstr "עצמה" - -#: ../src/iop/colorbalancergb.c:2034 -msgid "luminance exponent in mid-tones" -msgstr "מעריך לומיננס בטונים הבינוניים" - -#: ../src/iop/colorbalancergb.c:2039 -msgid "hue of the color exponent in mid-tones" -msgstr "גוון הערך המעריכי של הצבע בבינוניים" - -#: ../src/iop/colorbalancergb.c:2045 -msgid "chroma of the color exponent in mid-tones" -msgstr "כרומה של הערך המעריכי של הצבע בבינוניים" - -#. Page masks -#: ../src/iop/colorbalancergb.c:2048 -msgid "masks" -msgstr "מסיכות" - -#: ../src/iop/colorbalancergb.c:2048 -msgid "isolate luminances" -msgstr "בודד לומיננס" - -#: ../src/iop/colorbalancergb.c:2052 -msgid "choose in which uniform color space the saturation is computed" -msgstr "בחר את מרחב הצבע האחיד בו מחושבת הסטורציה" - -#: ../src/iop/colorbalancergb.c:2054 -msgctxt "section" -msgid "luminance ranges" -msgstr "טווחי לומיננס" - -#: ../src/iop/colorbalancergb.c:2065 -msgid "weight of the shadows over the whole tonal range" -msgstr "משקל הצללים מתוך כל הטווח הטונאלי" - -#: ../src/iop/colorbalancergb.c:2073 -msgid "position of the middle-gray reference for masking" -msgstr "מיקום אפור אמצעי לייחוס עבור מיסוך" - -#: ../src/iop/colorbalancergb.c:2081 -msgid "weights of highlights over the whole tonal range" -msgstr "משקל הבהירים מתוך כל הטווח הטונאלי" - -#: ../src/iop/colorbalancergb.c:2086 -msgctxt "section" -msgid "threshold" -msgstr "סף" - -#: ../src/iop/colorbalancergb.c:2091 -msgid "peak white luminance value used to normalize the power function" -msgstr "ערך שיא לומיננס הלבן לצורך נירמול פונקציית ההספק" - -#: ../src/iop/colorbalancergb.c:2097 -msgid "peak gray luminance value used to normalize the power function" -msgstr "ערך שיא לומיננס האפור לצורך נירמול פונקציית ההספק" - -#: ../src/iop/colorbalancergb.c:2099 -msgctxt "section" -msgid "mask preview settings" -msgstr "הגדרות תצוגה מקדימה של מסיכה" - -#: ../src/iop/colorbalancergb.c:2102 -msgid "checkerboard color 1" -msgstr "צבע לוח משבצות 1" - -#: ../src/iop/colorbalancergb.c:2105 ../src/iop/colorbalancergb.c:2114 -msgid "select color of the checkerboard from a swatch" -msgstr "בחר צבע ללוח המשבצות מתוך ה swatch" - -#: ../src/iop/colorbalancergb.c:2111 -msgid "checkerboard color 2" -msgstr "צבע לוח משבצות 2" - -#: ../src/iop/colorbalancergb.c:2121 -msgid "checkerboard size" -msgstr "גודל לוח משבצות" - -#: ../src/iop/colorchecker.c:118 -msgid "color look up table" -msgstr "טבלת חיפוש צבע" - -#: ../src/iop/colorchecker.c:123 -msgid "profile|lut|color grading" -msgstr "פרופיל|lut|ציון צבע" - -#: ../src/iop/colorchecker.c:129 -msgid "perform color space corrections and apply looks" -msgstr "בצע תיקוני מרחב צבע וישם מראות" - -#: ../src/iop/colorchecker.c:131 ../src/iop/colorchecker.c:133 -#: ../src/iop/colorize.c:106 ../src/iop/colormapping.c:154 -#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:136 -#: ../src/iop/colorzones.c:146 ../src/iop/defringe.c:83 ../src/iop/levels.c:139 -#: ../src/iop/monochrome.c:99 ../src/iop/shadhi.c:198 -#: ../src/iop/tonecurve.c:212 ../src/iop/vibrance.c:96 -msgid "linear or non-linear, Lab, display-referred" -msgstr "לינארי או לא לינארי, Lab, מיוחס למסך" - -#: ../src/iop/colorchecker.c:132 -msgid "defined by profile, Lab" -msgstr "מוגדר על ידי הפרופיל, Lab" - -#: ../src/iop/colorchecker.c:294 -msgid "it8 skin tones" -msgstr "גווני עור it8" - -#: ../src/iop/colorchecker.c:310 -msgid "Helmholtz/Kohlrausch monochrome" -msgstr "צבע יחיד Helmholtz/Kohlrausch" - -#: ../src/iop/colorchecker.c:327 -msgid "Fuji Astia emulation" -msgstr "אמולציית Fuji Astia" - -#: ../src/iop/colorchecker.c:341 -msgid "Fuji Classic Chrome emulation" -msgstr "אמולציית Fuji Classic Chrome" - -#: ../src/iop/colorchecker.c:355 -msgid "Fuji Monochrome emulation" -msgstr "אמולציית Fuji Monochrome" - -#: ../src/iop/colorchecker.c:369 -msgid "Fuji Provia emulation" -msgstr "אמולציית Fuji Provia" - -#: ../src/iop/colorchecker.c:383 -msgid "Fuji Velvia emulation" -msgstr "אמולציית Fuji Velvia" - -#: ../src/iop/colorchecker.c:841 ../src/iop/colorchecker.c:1436 -#, c-format -msgid "patch #%d" -msgstr "טלאי #%d" - -#: ../src/iop/colorchecker.c:1283 -#, c-format -msgid "" -"(%2.2f %2.2f %2.2f)\n" -"altered patches are marked with an outline\n" -"click to select\n" -"double-click to reset\n" -"right click to delete patch\n" -"shift+click while color picking to replace patch" -msgstr "" -"(%2.2f %2.2f %2.2f)\n" -"טלאים ששונו מסומנים בקו מתאר\n" -"לחץ לבחירה\n" -"לחיצה כפולה לאתחול\n" -"e\n" -"לחיצה ימנית למחיקת טלאי\n" -"קליק+shift בזמן בחירת צבע להחלפת טלאי" - -#: ../src/iop/colorchecker.c:1431 -msgid "patch" -msgstr "טלאי" - -#: ../src/iop/colorchecker.c:1432 -msgid "color checker patch" -msgstr "טלאי בוחר צבע" - -#: ../src/iop/colorchecker.c:1446 -msgid "" -"adjust target color Lab 'L' channel\n" -"lower values darken target color while higher brighten it" -msgstr "" -"כוונן ערוץ 'L' במרחב Lab של צבע מטרה\n" -"ערכים נמוכים מחשיכים את צבע המטרה בעוד גבוהים מבהירים" - -#: ../src/iop/colorchecker.c:1454 -msgid "" -"adjust target color Lab 'a' channel\n" -"lower values shift target color towards greens while higher shift towards " -"magentas" -msgstr "" -"כוונן ערוץ 'a' במרחב Lab של צבע מטרה\n" -"ערכים נמוכים מסיטים את צבע המטרה לכיוון ירוק בעוד גבוהים מסיטים לכיוון מג'נטה" - -#: ../src/iop/colorchecker.c:1457 -msgid "green-magenta offset" -msgstr "הסחה ירוק-מג'נטה" - -#: ../src/iop/colorchecker.c:1466 -msgid "" -"adjust target color Lab 'b' channel\n" -"lower values shift target color towards blues while higher shift towards " -"yellows" -msgstr "" -"כוונן ערוץ 'b' במרחב Lab של צבע מטרה\n" -"ערכים נמוכים מסיטים את צבע המטרה לכיוון הכחול בעוד גבוהים מסיטים לכיוון הצהוב" - -#: ../src/iop/colorchecker.c:1469 -msgid "blue-yellow offset" -msgstr "הסחה כחול-צהוב" - -#: ../src/iop/colorchecker.c:1478 -msgid "" -"adjust target color saturation\n" -"adjusts 'a' and 'b' channels of target color in Lab space simultaneously\n" -"lower values scale towards lower saturation while higher scale towards " -"higher saturation" -msgstr "" -"כוונן רוויה של צבע מטרה\n" -"מכוונן את ערוצים 'a' ו 'b' של צבע המטרה במרחב Lab בו זמנית\n" -"ערכים נמוכים מפחיתים רוויה בעוד גבוהים מעלים רוויה" - -#: ../src/iop/colorchecker.c:1487 -msgid "target color" -msgstr "צבע יעד" - -#: ../src/iop/colorchecker.c:1490 -msgid "" -"control target color of the patches\n" -"relative - target color is relative from the patch original color\n" -"absolute - target color is absolute Lab value" -msgstr "" -"שלוט בצבע היעד של הטלאי\n" -"יחסי - צבע היעד יחסי לצבע המקורי של הטלאי\n" -"מוחלט - צבע היעד ערכי Lab מוחלטים" - -#: ../src/iop/colorchecker.c:1494 -msgid "absolute" -msgstr "מוחלט" - -#: ../src/iop/colorcontrast.c:85 -msgid "color contrast" -msgstr "ניגודיות צבע" - -#: ../src/iop/colorcontrast.c:95 -msgid "" -"increase saturation and separation between\n" -"opposite colors" -msgstr "העלה רוויה והפרדה בין צבעים מנוגדים" - -#: ../src/iop/colorcontrast.c:324 -msgid "" -"steepness of the a* curve in Lab\n" -"lower values desaturate greens and magenta while higher saturate them" -msgstr "" -"תלילות עקום ה a* ב Lab\n" -"ערכים נמוכים מורידים רוויה של ירוקים ומג'נטה וגבוהים מעלים אותם" - -#: ../src/iop/colorcontrast.c:331 -msgid "" -"steepness of the b* curve in Lab\n" -"lower values desaturate blues and yellows while higher saturate them" -msgstr "" -"תלילות עקום ה b* ב Lab\n" -"ערכים נמוכים מורידים רוויה של כחולים וצהובים וגבוהים מעלים אותם" - -#: ../src/iop/colorcorrection.c:71 -msgid "color correction" -msgstr "תיקון צבע" - -#: ../src/iop/colorcorrection.c:76 -msgid "correct white balance selectively for blacks and whites" -msgstr "תקן איזון לבן ספציפית ללבנים ושחורים" - -#: ../src/iop/colorcorrection.c:107 -msgid "warm tone" -msgstr "גוון חם" - -#: ../src/iop/colorcorrection.c:115 -msgid "warming filter" -msgstr "מסנן חם" - -#: ../src/iop/colorcorrection.c:123 -msgid "cooling filter" -msgstr "מסנן קר" - -#: ../src/iop/colorcorrection.c:257 -msgid "" -"drag the line for split-toning. bright means highlights, dark means shadows. " -"use mouse wheel to change saturation." -msgstr "" -"גרור את הקו לפיצול טונים. בהיר עבור פרטים בהירים, חשוך עבור צללים. השתמש " -"בגלגל העכבר לשינוי הרוויה." - -#: ../src/iop/colorcorrection.c:276 -msgid "set the global saturation" -msgstr "קבע רוויה גלובלית" - -#: ../src/iop/colorin.c:126 -msgid "input color profile" -msgstr "קלט פרופיל צבע" - -#: ../src/iop/colorin.c:131 -msgid "" -"convert any RGB input to pipeline reference RGB\n" -"using color profiles to remap RGB values" -msgstr "המר כל קלט RGB לפייפליין רפרנס RGB" - -#: ../src/iop/colorin.c:133 ../src/iop/colorout.c:89 ../src/iop/demosaic.c:293 -#: ../src/iop/rawprepare.c:158 -msgid "mandatory" -msgstr "מחייב" - -#: ../src/iop/colorin.c:135 ../src/iop/colorout.c:91 -msgid "defined by profile" -msgstr "מוגדר על ידי פרופיל" - -#: ../src/iop/colorin.c:542 -#, c-format -msgid "" -"can't extract matrix from colorspace `%s', it will be replaced by Rec2020 " -"RGB!" -msgstr "לא ניתן לחלץ מטריצת צבע ממרחב צבע `%s', יוחלף על ידי Rec2020 RGB!" - -#: ../src/iop/colorin.c:1424 -#, c-format -msgid "`%s' color matrix not found!" -msgstr "מטריצת צבע `%s' לא נמצאה!" - -#: ../src/iop/colorin.c:1463 -msgid "input profile could not be generated!" -msgstr "יצירת פרופיל קלט נכשלה!" - -#: ../src/iop/colorin.c:1560 -msgid "unsupported input profile has been replaced by linear Rec709 RGB!" -msgstr "פרופיל קלט לא נתמך הוחלף ב Rec709 RGB לינארי!" - -#: ../src/iop/colorin.c:1844 -msgid "external ICC profiles" -msgstr "פרופילי ICC חיצוניים" - -#: ../src/iop/colorin.c:1889 -#, c-format -msgid "" -"embedded ICC profile properties:\n" -"\n" -"name: <b>%s</b>\n" -"version: <b>%d.%d</b>\n" -"type: <b>%s</b>\n" -"manufacturer: <b>%s</b>\n" -"model: <b>%s</b>\n" -"copyright: <b>%s</b>\n" -"\n" -msgstr "" -"תכונות פרופיל ICC מוטמע:\n" -"\n" -"שם: <b>%s</b>\n" -"גרסה: <b>%d.%d</b>\n" -"סוג: <b>%s</b>\n" -"יצרן: <b>%s</b>\n" -"מודל: <b>%s</b>\n" -"זכויות יוצרים: <b>%s</b>\n" -"\n" - -#: ../src/iop/colorin.c:2084 -msgid "input profile" -msgstr "פרופיל קלט" - -#: ../src/iop/colorin.c:2088 -msgid "working profile" -msgstr "פרופיל עבודה" - -#: ../src/iop/colorin.c:2097 -msgid "working ICC profiles" -msgstr "פרופילי ICC לעבודה" - -#: ../src/iop/colorin.c:2109 -msgid "confine Lab values to gamut of RGB color space" -msgstr "תחום ערכי מעבדה למכלול צבע RGB" - -#: ../src/iop/colorize.c:84 -msgid "colorize" -msgstr "צבע" - -#: ../src/iop/colorize.c:104 -msgid "overlay a solid color on the image" -msgstr "צפה תמונה בצבע אחיד" - -#: ../src/iop/colorize.c:341 ../src/iop/splittoning.c:485 -msgid "select the hue tone" -msgstr "בחר את גוון הטון" - -#: ../src/iop/colorize.c:347 -msgid "select the saturation shadow tone" -msgstr "בחר את טון הצללים עבור רוויה" - -#: ../src/iop/colorize.c:351 -msgid "lightness of color" -msgstr "בהירות הצבע" - -#: ../src/iop/colorize.c:355 -msgid "mix value of source lightness" -msgstr "ערבב ערכים של בהירות המקור" - -#: ../src/iop/colormapping.c:147 -msgid "color mapping" -msgstr "מיפוי צבע" - -#: ../src/iop/colormapping.c:152 -msgid "" -"transfer a color palette and tonal repartition from one image to another" -msgstr "העבר את פלטת הצבעים וחלוקת הטונים מתמונה אחת לאחרת" - -#: ../src/iop/colormapping.c:1030 -msgid "source clusters:" -msgstr "אשכולות מקור:" - -#: ../src/iop/colormapping.c:1036 -msgid "target clusters:" -msgstr "אשכולות יעד:" - -#: ../src/iop/colormapping.c:1045 -msgid "acquire as source" -msgstr "רכוש כמקור" - -#: ../src/iop/colormapping.c:1049 -msgid "analyze this image as a source image" -msgstr "נתח תמונה זו כתמונת מקור" - -#: ../src/iop/colormapping.c:1051 -msgid "acquire as target" -msgstr "רכוש כיעד" - -#: ../src/iop/colormapping.c:1055 -msgid "analyze this image as a target image" -msgstr "נתח תמונה זו כתמונת יעד" - -#: ../src/iop/colormapping.c:1058 -msgid "number of clusters to find in image. value change resets all clusters" -msgstr "מספר אשכולות למציאה בתמונה. שינוי בערך מאתחל את כל האשכולות" - -#: ../src/iop/colormapping.c:1061 -msgid "" -"how clusters are mapped. low values: based on color proximity, high values: " -"based on color dominance" -msgstr "" -"הדרך בה אשכולות ממופים. ערכים נמוכים: על בסיס קרבת צבע, ערכים גבוהים: על " -"בסיס דומיננטיות צבע" - -#: ../src/iop/colormapping.c:1066 -msgid "level of histogram equalization" -msgstr "רמת איזון היסטוגרמה" - -#: ../src/iop/colorout.c:81 -msgid "output color profile" -msgstr "פרופיל צבע לפלט" - -#: ../src/iop/colorout.c:87 -msgid "" -"convert pipeline reference RGB to any display RGB\n" -"using color profiles to remap RGB values" -msgstr "" -"המר פייפליין רפרנס RGB ל RGB של תצוגה כלשהי\n" -"על ידי שימוש בפרופילי צבע למיפוי מחדש של ערכי RGB" - -#: ../src/iop/colorout.c:92 -msgid "non-linear, RGB or Lab, display-referred" -msgstr "לא-לינארי, Lab או RGB, מיוחס-תצוגה" - -#: ../src/iop/colorout.c:679 -msgid "missing output profile has been replaced by sRGB!" -msgstr "פרופיל פלט חסר הוחלף ב sRGB!" - -#: ../src/iop/colorout.c:701 -msgid "missing softproof profile has been replaced by sRGB!" -msgstr "פרופיל סימולציית הדפסה חסר הוחלף ב sRGB!" - -#: ../src/iop/colorout.c:744 -msgid "unsupported output profile has been replaced by sRGB!" -msgstr "פרופיל פלט לא נתמך הוחלף ב sRGB!" - -#: ../src/iop/colorout.c:869 -msgid "output intent" -msgstr "כוונת פלט" - -#: ../src/iop/colorout.c:870 -msgid "rendering intent" -msgstr "כוונת עיבוד" - -#: ../src/iop/colorout.c:872 ../src/libs/export.c:1246 -#: ../src/libs/print_settings.c:2475 ../src/libs/print_settings.c:2824 -#: ../src/views/darkroom.c:2518 ../src/views/lighttable.c:1176 -msgid "perceptual" -msgstr "פרספטבילי" - -#: ../src/iop/colorout.c:873 ../src/libs/export.c:1247 -#: ../src/libs/print_settings.c:2476 ../src/libs/print_settings.c:2825 -#: ../src/views/darkroom.c:2519 ../src/views/lighttable.c:1177 -msgid "relative colorimetric" -msgstr "קולורימטרי יחסי" - -#: ../src/iop/colorout.c:874 ../src/libs/export.c:1248 -#: ../src/libs/print_settings.c:2477 ../src/libs/print_settings.c:2826 -#: ../src/views/darkroom.c:2520 ../src/views/lighttable.c:1178 -msgctxt "rendering intent" -msgid "saturation" -msgstr "רווי" - -#: ../src/iop/colorout.c:875 ../src/libs/export.c:1249 -#: ../src/libs/print_settings.c:2478 ../src/libs/print_settings.c:2827 -#: ../src/views/darkroom.c:2521 ../src/views/lighttable.c:1179 -msgid "absolute colorimetric" -msgstr "קולורימטרי מוחלט" - -#: ../src/iop/colorout.c:893 -msgid "export ICC profiles" -msgstr "פרופילי ICC לייצוא" - -#: ../src/iop/colorreconstruction.c:129 -msgid "color reconstruction" -msgstr "שחזור צבע" - -#: ../src/iop/colorreconstruction.c:134 -msgid "recover clipped highlights by propagating surrounding colors" -msgstr "שחזר פרטים בהירים חתוכים על ידי קידום צבעים מקיפים" - -#: ../src/iop/colorreconstruction.c:628 ../src/iop/colorreconstruction.c:1040 -#: ../src/iop/globaltonemap.c:193 ../src/iop/globaltonemap.c:362 -#: ../src/iop/hazeremoval.c:553 ../src/iop/hazeremoval.c:788 -#: ../src/iop/levels.c:336 -msgid "inconsistent output" -msgstr "פלט לא עקבי" - -#: ../src/iop/colorreconstruction.c:666 -msgid "module `color reconstruction' failed" -msgstr "מודול 'שחזור צבע' כשל" - -#: ../src/iop/colorreconstruction.c:1237 -msgid "spatial" -msgstr "מרחבי" - -#: ../src/iop/colorreconstruction.c:1238 -msgid "range" -msgstr "טווח" - -#: ../src/iop/colorreconstruction.c:1239 -msgid "precedence" -msgstr "עדיפות" - -#: ../src/iop/colorreconstruction.c:1255 -msgid "pixels with lightness values above this threshold are corrected" -msgstr "פיקסלים בעלי ערך בהירות מעל סף זה מתוקנים" - -#: ../src/iop/colorreconstruction.c:1256 -msgid "how far to look for replacement colors in spatial dimensions" -msgstr "כמה רחוק לחפש צבעים חליפיים בממדים מרחביים" - -#: ../src/iop/colorreconstruction.c:1257 -msgid "how far to look for replacement colors in the luminance dimension" -msgstr "כמה רחוק לחפש צבעים חליפיים בממד הבהירות" - -#: ../src/iop/colorreconstruction.c:1258 -msgid "if and how to give precedence to specific replacement colors" -msgstr "אם וכיצד לתעדף צבעים חליפיים ספציפיים" - -#: ../src/iop/colorreconstruction.c:1259 -msgid "the hue tone which should be given precedence over other hue tones" -msgstr "הגוון לו תינתן עדיפות על גוונים אחרים" - -#: ../src/iop/colorreconstruction.c:1261 ../src/iop/demosaic.c:1277 -#: ../src/iop/highlights.c:1168 -msgid "not applicable" -msgstr "לא ישים" - -#: ../src/iop/colorreconstruction.c:1262 -msgid "no highlights reconstruction for monochrome images" -msgstr "אין שחזור פרטים בהירים עבור תמונות מונוכרומטיות" - -#: ../src/iop/colortransfer.c:103 -msgid "color transfer" -msgstr "העברת צבע" - -#: ../src/iop/colortransfer.c:118 -msgid "this module is deprecated. better use color mapping module instead." -msgstr "מודול זה מוצא משימוש. עדיף להשתמש במודול מיפוי הצבע במקום." - -#: ../src/iop/colortransfer.c:439 -msgid "" -"this module will be removed in the future\n" -"and is only here so you can switch it off\n" -"and move to the new color mapping module." -msgstr "" -"מודול זה יוסר בעתיד\n" -"וקיים כאן רק כדי שתוכל לכבות אותו\n" -"ולעבור למודול מיפוי הצבע החדש." - -#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2332 -msgid "color zones" -msgstr "אזורי צבע" - -#: ../src/iop/colorzones.c:144 -msgid "selectively shift hues, chroma and lightness of pixels" -msgstr "הסח גוונים סלקטיבית, רוויה ובהירות של פיקסלים" - -#: ../src/iop/colorzones.c:606 -msgid "B&W: with red" -msgstr "שחור לבן: עם אדום" - -#: ../src/iop/colorzones.c:629 -msgid "B&W: with skin tones" -msgstr "שחור לבן: עם גווני עור" - -#: ../src/iop/colorzones.c:652 -msgid "polarizing filter" -msgstr "פילטר מקטב" - -#: ../src/iop/colorzones.c:673 -msgid "natural skin tones" -msgstr "גווני עור טבעיים" - -#: ../src/iop/colorzones.c:704 -msgid "B&W: film" -msgstr "שחור לבן: פילם" - -#: ../src/iop/colorzones.c:724 -msgid "HSL base setting" -msgstr "הגדרות בסיס HSL" - -#: ../src/iop/colorzones.c:2264 -msgid "orange" -msgstr "כתום" - -#: ../src/iop/colorzones.c:2421 ../src/iop/rgbcurve.c:1375 -msgid "" -"create a curve based on an area from the image\n" -"drag to create a flat curve\n" -"ctrl+drag to create a positive curve\n" -"shift+drag to create a negative curve" -msgstr "" -"יצירת עקום המבוסס על שטח מהתמונה\n" -"גרור ליצירת עקות שטוח\n" -"גרור+ctrl ליצירת עקום חיובי\n" -"גרור+shift ליצירת עקום שלילי" - -#: ../src/iop/colorzones.c:2425 ../src/iop/rgbcurve.c:1379 -msgid "create curve" -msgstr "צור עקום" - -#. edit by area -#: ../src/iop/colorzones.c:2442 -msgid "edit by area" -msgstr "ערוך לפי שטח" - -#: ../src/iop/colorzones.c:2447 -msgid "edit the curve nodes by area" -msgstr "עריכת צמתי עקום לפי שטח" - -#: ../src/iop/colorzones.c:2454 -msgid "display selection" -msgstr "הצג בחירה" - -#: ../src/iop/colorzones.c:2463 -msgid "choose selection criterion, will be the abscissa in the graph" -msgstr "בחר קריטריון לבחירה, ישמש כאבסציסה בגרף" - -#: ../src/iop/colorzones.c:2466 -msgid "choose between a smoother or stronger effect" -msgstr "בחר בין אפקט חלק יותר לחזק יותר" - -#: ../src/iop/colorzones.c:2494 ../src/iop/rgbcurve.c:1410 -#: ../src/iop/tonecurve.c:1172 -msgid "interpolation method" -msgstr "שיטת אנטרפולציה" - -#: ../src/iop/colorzones.c:2496 ../src/iop/rgbcurve.c:1412 -#: ../src/iop/tonecurve.c:1174 -msgid "centripetal spline" -msgstr "אינטרפולציית spline צנטריפטלית" - -#: ../src/iop/colorzones.c:2497 ../src/iop/rgbcurve.c:1413 -#: ../src/iop/tonecurve.c:1175 -msgid "monotonic spline" -msgstr "אינטרפולציית spline מונוטונית" - -#: ../src/iop/colorzones.c:2500 ../src/iop/rgbcurve.c:1416 -#: ../src/iop/tonecurve.c:1177 -msgid "" -"change this method if you see oscillations or cusps in the curve\n" -"- cubic spline is better to produce smooth curves but oscillates when nodes " -"are too close\n" -"- centripetal is better to avoids cusps and oscillations with close nodes " -"but is less smooth\n" -"- monotonic is better for accuracy of pure analytical functions (log, gamma, " -"exp)" -msgstr "" -"שנה שיטה זו אם נראות תנודות או חודים בעקום\n" -"- cubic spline טוב ליצירת עקום חלק אבל תנודתי כאשר הצמתים קרובים מדי\n" -"- centripetal מוצלח במניעת חודים ותנודות כאשר הצמתים קרובים אבל פחות חלק\n" -"- monotonic מדויק יותר עבור פונקציות אנליטיות טהורות (לוגריתמים, גאמה, " -"אקספוננט)" - -#: ../src/iop/crop.c:132 -msgid "crop" -msgstr "חיתוך" - -#: ../src/iop/crop.c:137 -msgid "reframe|distortion" -msgstr "מסגר מחדש|דיסטורציה" - -#: ../src/iop/crop.c:143 -msgid "change the framing" -msgstr "שנה את המסגור" - -#: ../src/iop/crop.c:1674 -msgid "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag" -msgstr "<b>שנה גודל</b>: גרור, <b>שמור יחס גובה רוחב</b>: shift+גרור" - -#: ../src/iop/crop.c:1683 -msgid "" -"<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" -"b>: ctrl+drag" -msgstr "" -"<b>הזז</b>: גרור, <b>הזז אנכית</b>: shift+גרור, <b>הזז אופקית</b>: ctrl+גרור" - -#: ../src/iop/defringe.c:71 -msgid "defringe" -msgstr "דה-פרינג'" - -#: ../src/iop/defringe.c:81 -msgid "attenuate chromatic aberration by desaturating edges" -msgstr "החלש אברציות כרומטיות על ידי הפחתת רוויה בקצוות" - -#: ../src/iop/defringe.c:101 -msgid "" -"this module is deprecated. please use the chromatic aberration module " -"instead." -msgstr "מודול זה יוצא משימוש, עדיף להשתמש במודול אברציות כרומטיות במקום." - -#: ../src/iop/defringe.c:415 -msgid "" -"method for color protection:\n" -" - global average: fast, might show slightly wrong previews in high " -"magnification; might sometimes protect saturation too much or too low in " -"comparison to local average\n" -" - local average: slower, might protect saturation better than global " -"average by using near pixels as color reference, so it can still allow for " -"more desaturation where required\n" -" - static: fast, only uses the threshold as a static limit" -msgstr "" -"שיטות להגנה על צבע:\n" -" - ממוצע גלובלי: מהיר, עלול להראות קדימונים שגויים במקצת בהגדלה גבוהה; עלול " -"לעיתים להגן על הרוויה באופן מופרז או מועט בהשוואה ממוצע מקומי\n" -" - ממוצע מקומי: איטי, עשוי להגן על הרוויה בצורה טובה יותר מממוצע גלובלי על " -"ידי שימוש בפיקסלים הסמוכים כייחוס לצבע, כך שעדיין ניתן יהיה להפחית רוויה בעת " -"הצורך\n" -" - קבוע: מהיר, עושה שימוש רק בסף כגבול קבוע" - -#: ../src/iop/defringe.c:422 -msgid "radius for detecting fringe" -msgstr "רדיוס לגילוי פרינג'ים" - -#: ../src/iop/defringe.c:425 -msgid "threshold for defringe, higher values mean less defringing" -msgstr "סף עבור דה-פרינג', ערכים גבוהים משמעם פחות דה-פרינג'" - -#: ../src/iop/demosaic.c:287 -msgid "demosaic" -msgstr "demosaic" - -#: ../src/iop/demosaic.c:292 -msgid "reconstruct full RGB pixels from a sensor color filter array reading" -msgstr "שחזר במלואם פקסלים RGB מתוך קריאה של מערך הפילטרים של החיישן" - -#: ../src/iop/demosaic.c:1086 -#, c-format -msgid "`%s' color matrix not found for 4bayer image!" -msgstr "מטריצת צבע `%s' לא נמצאה עבור תמונת 4bayer!" - -#: ../src/iop/demosaic.c:1238 -msgid "" -"Bayer sensor demosaicing method, PPG and RCD are fast, AMaZE and LMMSE are " -"slow.\n" -"LMMSE is suited best for high ISO images.\n" -"dual demosaicers double processing time." -msgstr "" -"שיטת demosaicing של חיישן Bayer, PPG ו RCD מהירים, AMaZE ו LMMSE איטים.\n" -"שיטת LMSSE מתאימה ביותר לערכי ISO גבוהים.\n" -"כפל demosaicing זמן עיבוד כפול." - -#: ../src/iop/demosaic.c:1242 -msgid "" -"X-Trans sensor demosaicing method, Markesteijn 3-pass and frequency domain " -"chroma are slow.\n" -"dual demosaicers double processing time." -msgstr "" -"שיטת demosaicing לחיישן X-Trans, Markesteijn 3-pass ו frequency domain " -"chroma איטיים.\n" -"כפל demosaicing זמן עיבוד כפול." - -#: ../src/iop/demosaic.c:1248 -msgid "Bayer4 sensor demosaicing methods." -msgstr "שיטה לתהליך demosaicing עבור חיישני Bayer4." - -#: ../src/iop/demosaic.c:1252 -msgid "" -"threshold for edge-aware median.\n" -"set to 0.0 to switch off\n" -"set to 1.0 to ignore edges" -msgstr "" -"סף עבור מדיין המתחשב בקצוות.\n" -"קבע ל 0.0 לכיבוי.\n" -"קבע ל 1.0 להתעלם מקצוות" - -#: ../src/iop/demosaic.c:1257 -msgid "" -"contrast threshold for dual demosaic.\n" -"set to 0.0 for high frequency content\n" -"set to 1.0 for flat content\n" -"toggle to visualize the mask" -msgstr "" -"סף ניגודיות עבור כפל demosaic.\n" -"קבע ל 0.0 עבור תוכן בתדר גבוהה.\n" -"קבע ל 1.0 עבור תוכן שטוח\n" -"מתג להצגת המסכה" - -#: ../src/iop/demosaic.c:1265 -msgid "" -"LMMSE refinement steps. the median steps average the output,\n" -"refine adds some recalculation of red & blue channels" -msgstr "" -"שלבי עידון של LMMSE, שלבי המדיאן ממצעים על התוצאה,\n" -"עדן מוסיף מספר חישובים מחדש בערוצים הכחול והאדום" - -#: ../src/iop/demosaic.c:1268 -msgid "how many color smoothing median steps after demosaicing" -msgstr "כמה שלבי החלקת צבע מדיין לאחר תהליך ה demosaicing" - -#: ../src/iop/demosaic.c:1271 -msgid "green channels matching method" -msgstr "שיטת התאמה ערוצי ירוק" - -#: ../src/iop/demosaic.c:1278 -msgid "demosaicing is only used for color raw images" -msgstr "תהליך demosaicing נחוץ רק עבור תמונות raw צבעוניות" - -#: ../src/iop/denoiseprofile.c:714 -msgid "wavelets: chroma only" -msgstr "wavelets: כרומה בלבד" - -#: ../src/iop/denoiseprofile.c:720 -msgid "denoise (profiled)" -msgstr "סילוק רעש (עם פרופיל)" - -#: ../src/iop/denoiseprofile.c:726 -msgid "denoise using noise statistics profiled on sensors" -msgstr "סלק רעש על ידי פרופיל סטטיסטיקת רעש של החיישן" - -#: ../src/iop/denoiseprofile.c:2846 -#, c-format -msgid "found match for ISO %d" -msgstr "נמצאה התאמה עבור ISO %d" - -#: ../src/iop/denoiseprofile.c:2855 -#, c-format -msgid "interpolated from ISO %d and %d" -msgstr "נאמד מתוך ISO %d ו %d" - -#: ../src/iop/denoiseprofile.c:3719 -msgid "Y0" -msgstr "Y0" - -#: ../src/iop/denoiseprofile.c:3720 -msgid "U0V0" -msgstr "U0V0" - -#: ../src/iop/denoiseprofile.c:3760 -msgid "" -"use only with a perfectly\n" -"uniform image if you want to\n" -"estimate the noise variance." -msgstr "" -"עשה שימוש רק בתמונה\n" -"עם אחידות מושלמת אם ברצונך\n" -"להעריך את שונות הרעש." - -#: ../src/iop/denoiseprofile.c:3766 -msgid "variance red: " -msgstr "שונות אדום: " - -#: ../src/iop/denoiseprofile.c:3770 -msgid "variance computed on the red channel" -msgstr "שונות מחושבת על הערוץ האדום" - -#: ../src/iop/denoiseprofile.c:3775 -msgid "variance green: " -msgstr "שונות ירוק: " - -#: ../src/iop/denoiseprofile.c:3779 -msgid "variance computed on the green channel" -msgstr "שונות מחושבת על הערוץ הירוק" - -#: ../src/iop/denoiseprofile.c:3784 -msgid "variance blue: " -msgstr "שונות כחול: " - -#: ../src/iop/denoiseprofile.c:3788 -msgid "variance computed on the blue channel" -msgstr "שונות מחושבת על הערוץ הכחול" - -#: ../src/iop/denoiseprofile.c:3799 ../src/libs/export.c:1208 -#: ../src/libs/print_settings.c:2418 ../src/libs/print_settings.c:2774 -msgid "profile" -msgstr "פרופיל" - -#: ../src/iop/denoiseprofile.c:3833 -msgid "" -"adapt denoising according to the\n" -"white balance coefficients.\n" -"should be enabled on a first instance\n" -"for better denoising.\n" -"should be disabled if an earlier instance\n" -"has been used with a color blending mode." -msgstr "" -"התאם סילוק רעש למקדמי\n" -"איזון הלבן.\n" -"צריך להיות מופעל כפעולה ראשונה\n" -"לסילוק רעשים יעיל יותר.\n" -"צריך להיות מנוטרל אם פעולה קודמת\n" -"הכוללת מיזוג צבעים נעשתה." - -#: ../src/iop/denoiseprofile.c:3840 -msgid "" -"fix bugs in Anscombe transform resulting\n" -"in undersmoothing of the green channel in\n" -"wavelets mode, combined with a bad handling\n" -"of white balance coefficients, and a bug in\n" -"non-local means normalization resulting in\n" -"undersmoothing when patch size was increased.\n" -"enabling this option will change the denoising\n" -"you get. once enabled, you won't be able to\n" -"return back to old algorithm." -msgstr "" -"fix bugs in Anscombe transform resulting\n" -"in undersmoothing of the green channel in\n" -"wavelets mode, combined with a bad handling\n" -"of white balance coefficients, and a bug in\n" -"non-local means normalization resulting in\n" -"undersmoothing when patch size was increased.\n" -"enabling this option will change the denoising\n" -"you get. once enabled, you won't be able to\n" -"return back to old algorithm." - -#: ../src/iop/denoiseprofile.c:3850 -msgid "profile used for variance stabilization" -msgstr "פרופיל בו השתמשו לייצוב השונות" - -#: ../src/iop/denoiseprofile.c:3852 -msgid "" -"method used in the denoising core.\n" -"non-local means works best for `lightness' blending,\n" -"wavelets work best for `color' blending" -msgstr "" -"שיטות בהם משתמשים בלב תהליך סילוק הרעש.\n" -"שיטת non-local מתאימה ביותר עבור ערבוב `בהירות',\n" -"שיטת wavelets מתאימה ביותר לערבוב `צבע'" - -#: ../src/iop/denoiseprofile.c:3856 -msgid "" -"color representation used within the algorithm.\n" -"RGB keeps the RGB channels separated,\n" -"while Y0U0V0 combine the channels to\n" -"denoise chroma and luma separately." -msgstr "" -"ייצוג צבע לשימוש באלגוריתם.\n" -"בחירה בRGB שומרת על ערוצי RGB נפרדים,\n" -"בעוד Y0U0V0 משלב ערוצים לצורך\n" -"סילוק רעשי כרומה ולומה בנפרד." - -#: ../src/iop/denoiseprofile.c:3861 -msgid "" -"radius of the patches to match.\n" -"increase for more sharpness on strong edges, and better denoising of smooth " -"areas.\n" -"if details are oversmoothed, reduce this value or increase the central pixel " -"weight slider." -msgstr "" -"רדיוס הטלאים להתאמה.\n" -"הגבר ליותר חדות בקצוות חדים, וסילק רעש טוב יותר באזורים חלקים.\n" -"אם פרטים מוחלקים יתר על המידה, הפחת ערך זה או הגבר את מחוון משקל הפיקסל " -"המרכזי." - -#: ../src/iop/denoiseprofile.c:3867 -msgid "" -"emergency use only: radius of the neighborhood to search patches in. " -"increase for better denoising performance, but watch the long runtimes! " -"large radii can be very slow. you have been warned" -msgstr "" -"במקרה חירום בלבד: רדיוס החיפוש בסביבה לחיפוש טלאים. הגבר לסילוק רעש טוב " -"יותר, אך שים לב לזמני הריצה הארוכים! רדיוסים גדולים יכולים להיות איטיים מאד. " -"ראה הוזהרת" - -#: ../src/iop/denoiseprofile.c:3873 -msgid "" -"scattering of the neighborhood to search patches in.\n" -"increase for better coarse-grain noise reduction.\n" -"does not affect execution time." -msgstr "" -"פיזור הסביבה לחיפוש טלאים.\n" -"הגבר לסילוק יעיל יותר של רעש גרעון גס.\n" -"לא משפיע על זמן הפעולה." - -#: ../src/iop/denoiseprofile.c:3877 -msgid "" -"increase the weight of the central pixel\n" -"of the patch in the patch comparison.\n" -"useful to recover details when patch size\n" -"is quite big." -msgstr "" -"העלה את משקל הפיקסל המרכזי\n" -"של הטלאי בהשוואת הטלאים.\n" -"שימושי לאחזור פרטים כאשר הטלאי גדול יחסית." - -#: ../src/iop/denoiseprofile.c:3881 -msgid "finetune denoising strength" -msgstr "כוונן עצמת סילוק רעשים" - -#: ../src/iop/denoiseprofile.c:3883 -msgid "" -"controls the way parameters are autoset\n" -"increase if shadows are not denoised enough\n" -"or if chroma noise remains.\n" -"this can happen if your picture is underexposed." -msgstr "" -"שולט בדרך בה נקבעים פרמטרים אוטומטית\n" -"הגבר עם סילוק הרעש בצללים לא מספק\n" -"או נותר רעש כרומה.\n" -"מצב זה עלול לקרות אם התמונה בחשיפת חסר." - -#: ../src/iop/denoiseprofile.c:3888 -msgid "" -"finetune shadows denoising.\n" -"decrease to denoise more aggressively\n" -"dark areas of the image." -msgstr "" -"כוונון עדין של סינון רעש בצללים.\n" -"הפחת לסילוק אגרסיבי יותר של\n" -"אזורים חשוכים בתמונה." - -#: ../src/iop/denoiseprofile.c:3892 -msgid "" -"correct color cast in shadows.\n" -"decrease if shadows are too purple.\n" -"increase if shadows are too green." -msgstr "" -"תקן זריקת צבע בצללים.\n" -"הפחת אם הצללים סגולים מדי.\n" -"הגבר אם הצללים ירוקים מדי." - -#: ../src/iop/denoiseprofile.c:3896 -msgid "" -"upgrade the variance stabilizing algorithm.\n" -"new algorithm extends the current one.\n" -"it is more flexible but could give small\n" -"differences in the images already processed." -msgstr "" -"שדרג את אלגוריתם ייצוב השונות.\n" -"האלגוריתם החדש מרחיב את הנוכחי.\n" -"החדש יותר גמיש אבל עלול לייצר\n" -"הבדלים קטנים בתמונות שכבר עובדו." - -#: ../src/iop/diffuse.c:129 -msgid "diffuse or sharpen" -msgstr "פזר או חדד" - -#: ../src/iop/diffuse.c:134 -msgid "diffusion|deconvolution|blur|sharpening" -msgstr "פיזור|דה-קונבולוציה|טשטוש|חידוד" - -#: ../src/iop/diffuse.c:141 -msgid "" -"simulate directional diffusion of light with heat transfer model\n" -"to apply an iterative edge-oriented blur,\n" -"inpaint damaged parts of the image, or to remove blur with blind " -"deconvolution." -msgstr "" -"דמה פיזור אור כיווני בעזרת מודל מעבר חום\n" -"ליישם טשטוש מוכוון קצוות,\n" -"באזורים פגומים בתמונה, או להסרת טשטוש בעזרת דה-קונבולוצייה עיוורת." - -#. deblurring presets -#: ../src/iop/diffuse.c:219 -msgid "lens deblur: soft" -msgstr "הסרת טשטוש עדשה: רך" - -#: ../src/iop/diffuse.c:244 -msgid "lens deblur: medium" -msgstr "ניקוי טשטוש עדשה: בינוני" - -#: ../src/iop/diffuse.c:269 -msgid "lens deblur: hard" -msgstr "הסרת טשטוש עדשה: קשה" - -#: ../src/iop/diffuse.c:295 -msgid "dehaze" -msgstr "הסרת אובך" - -#: ../src/iop/diffuse.c:321 -msgid "denoise: fine" -msgstr "סילוק רעש: עדין" - -#: ../src/iop/diffuse.c:346 -msgid "denoise: medium" -msgstr "ניקוי רעש: בינוני" - -#: ../src/iop/diffuse.c:371 -msgid "denoise: coarse" -msgstr "ניקוי רעש: גס" - -#: ../src/iop/diffuse.c:446 -msgid "sharpen demosaicing: no AA filter" -msgstr "חדד demosaicing : ללא פילטר AA" - -#: ../src/iop/diffuse.c:472 -msgid "sharpen demosaicing: AA filter" -msgstr "חדד demosaicing : עם פילטר AA" - -#: ../src/iop/diffuse.c:499 -msgid "simulate watercolor" -msgstr "דמה צבע מים" - -#: ../src/iop/diffuse.c:524 -msgid "simulate line drawing" -msgstr "דמה ציור קו" - -#: ../src/iop/diffuse.c:576 -msgid "inpaint highlights" -msgstr "פרטים בהירים מילוי צבע" - -#. fast presets for slow hardware -#: ../src/iop/diffuse.c:603 -msgid "sharpness: fast" -msgstr "חדד: מהיר" - -#: ../src/iop/diffuse.c:655 -msgid "sharpness: strong" -msgstr "חדד: חזק" - -#: ../src/iop/diffuse.c:680 -msgid "local contrast: fast" -msgstr "ניגודיות מקומית: מהיר" - -#: ../src/iop/diffuse.c:1391 ../src/iop/diffuse.c:1666 -msgid "diffuse/sharpen failed to allocate memory, check your RAM settings" -msgstr "פזר/חדד כשל בהקצאת זיכרון, בדוק את הגדרות ה RAM" - -#. Additional parameters -#. Camera settings -#: ../src/iop/diffuse.c:1782 ../src/iop/splittoning.c:537 -#: ../src/libs/camera.c:486 -msgctxt "section" -msgid "properties" -msgstr "תכונות" - -#: ../src/iop/diffuse.c:1788 -msgid "" -"more iterations make the effect stronger but the module slower.\n" -"this is analogous to giving more time to the diffusion reaction.\n" -"if you plan on sharpening or inpainting, \n" -"more iterations help reconstruction." -msgstr "" -"איטרציות נוספות מעצימות את האפקט אך גורמות למודול להיות איטי יותר.\n" -"הדבר דומה להוספת זמן לתהליך הדיפוזיה.\n" -"אם בכוונתך לחדד או לצבוע, \n" -"איטרציות נוספות עוזרות לשחזור." - -#: ../src/iop/diffuse.c:1797 -msgid "" -"main scale of the diffusion.\n" -"zero makes diffusion act on the finest details more heavily.\n" -"non-zero defines the size of the details to diffuse heavily.\n" -"for deblurring and denoising, set to zero.\n" -"increase to act on local contrast instead." -msgstr "" -"המשקל העיקרי של הדיפוזיה.\n" -"אפס גורם לדיפוזיה לפעול על הפרטים העדינים באופן משמעותי יותר.\n" -"ערך שונה מאפס מגדיר את גודל הפרטים שיעברו דיפוזיה משמעותית.\n" -"לצורך הסרת טשטוש ורעש, קבע לאפס.\n" -"העלה על מנת לפעול ניגודיות מקומית במקום." - -#: ../src/iop/diffuse.c:1807 -msgid "" -"width of the diffusion around the central radius.\n" -"high values diffuse on a large band of radii.\n" -"low values diffuse closer to the central radius.\n" -"if you plan on deblurring, \n" -"the radius should be around the width of your lens blur." -msgstr "" -"רוחב הדיפוזיה מסביב לרדיוס המרכזי.\n" -"ערכים גבוהים גורמים לפעולה על טווח גדול רדיוסים.\n" -"ערכים נמוכים פועלים קרוב יותר לרדיוס המרכזי.\n" -"אם בכוונתך להסיר טשטוש,\n" -"הרדיוס צריך להיות באזור רוחב טשטוש העדשה." - -#: ../src/iop/diffuse.c:1814 -msgctxt "section" -msgid "speed (sharpen ↔ diffuse)" -msgstr "מהירות (חדד ↔ טשטש)" - -#: ../src/iop/diffuse.c:1821 -msgid "" -"diffusion speed of low-frequency wavelet layers\n" -"in the direction of 1st order anisotropy (set below).\n" -"\n" -"negative values sharpen, \n" -"positive values diffuse and blur, \n" -"zero does nothing." -msgstr "" -"מהירות הדיפוזיה שכבות גלונים (wavelet) בתדר נמוך\n" -"בכיוון הסדר הראשון של האנאיזוטרופיה (ראה מטה).\n" -"\n" -"ערכים שליליים מחדדים, \n" -"ערכים חיוביים מפזרים ומטשטשים, \n" -"אפס לא עושה כלום." - -#: ../src/iop/diffuse.c:1831 -msgid "" -"diffusion speed of low-frequency wavelet layers\n" -"in the direction of 2nd order anisotropy (set below).\n" -"\n" -"negative values sharpen, \n" -"positive values diffuse and blur, \n" -"zero does nothing." -msgstr "" -"מהירות הדיפוזיה שכבות גלונים (wavelet) בתדר נמוך\n" -"בכיוון הסדר השני של האנאיזוטרופיה (ראה מטה).\n" -"\n" -"ערכים שליליים מחדדים, \n" -"ערכים חיוביים מפזרים ומטשטשים, \n" -"אפס לא עושה כלום." - -#: ../src/iop/diffuse.c:1841 -msgid "" -"diffusion speed of high-frequency wavelet layers\n" -"in the direction of 3rd order anisotropy (set below).\n" -"\n" -"negative values sharpen, \n" -"positive values diffuse and blur, \n" -"zero does nothing." -msgstr "" -"מהירות הדיפוזיה שכבות גלונים (wavelet) בתדר גבוהה\n" -"בכיוון הסדר השלישי של האנאיזוטרופיה (ראה מטה).\n" -"\n" -"ערכים שליליים מחדדים, \n" -"ערכים חיוביים מפזרים ומטשטשים, \n" -"אפס לא עושה כלום." - -#: ../src/iop/diffuse.c:1851 -msgid "" -"diffusion speed of high-frequency wavelet layers\n" -"in the direction of 4th order anisotropy (set below).\n" -"\n" -"negative values sharpen, \n" -"positive values diffuse and blur, \n" -"zero does nothing." -msgstr "" -"מהירות הדיפוזיה שכבות גלונים (wavelet) בתדר גבוהה\n" -"בכיוון הסדר הרביעי של האנאיזוטרופיה (ראה מטה).\n" -"\n" -"ערכים שליליים מחדדים, \n" -"ערכים חיוביים מפזרים ומטשטשים, \n" -"אפס לא עושה כלום." - -#: ../src/iop/diffuse.c:1857 -msgctxt "section" -msgid "direction" -msgstr "כיוון" - -#: ../src/iop/diffuse.c:1864 -msgid "" -"direction of 1st order speed (set above).\n" -"\n" -"negative values follow gradients more closely, \n" -"positive values rather avoid edges (isophotes), \n" -"zero affects both equally (isotropic)." -msgstr "" -"כיוון הסדר הראשון של המהירות (קבע מעלה).\n" -"\n" -"ערכים שליליים עוקבים אחרי גרדיאנטים צמוד יותר, \n" -"ערכים חיוביים נמנעים מקצוות (isophotes), \n" -"אפס משפיע על שניהם באופן שווה (איזוטרופי)." - -#: ../src/iop/diffuse.c:1873 -msgid "" -"direction of 2nd order speed (set above).\n" -"\n" -"negative values follow gradients more closely, \n" -"positive values rather avoid edges (isophotes), \n" -"zero affects both equally (isotropic)." -msgstr "" -"כיוון הסדר השני של המהירות (קבע מעלה).\n" -"\n" -"ערכים שליליים עוקבים אחרי גרדיאנטים צמוד יותר, \n" -"ערכים חיוביים נמנעים מקצוות (isophotes), \n" -"אפס משפיע על שניהם באופן שווה (איזוטרופי)." - -#: ../src/iop/diffuse.c:1882 -msgid "" -"direction of 3rd order speed (set above).\n" -"\n" -"negative values follow gradients more closely, \n" -"positive values rather avoid edges (isophotes), \n" -"zero affects both equally (isotropic)." -msgstr "" -"כיוון הסדר השלישי של המהירות (קבע מעלה).\n" -"\n" -"ערכים שליליים עוקבים אחרי גרדיאנטים צמוד יותר, \n" -"ערכים חיוביים נמנעים מקצוות (isophotes), \n" -"אפס משפיע על שניהם באופן שווה (איזוטרופי)." - -#: ../src/iop/diffuse.c:1891 -msgid "" -"direction of 4th order speed (set above).\n" -"\n" -"negative values follow gradients more closely, \n" -"positive values rather avoid edges (isophotes), \n" -"zero affects both equally (isotropic)." -msgstr "" -"כיוון הסדר הרביעי של המהירות (קבע מעלה).\n" -"\n" -"ערכים שליליים עוקבים אחרי גרדיאנטים צמוד יותר, \n" -"ערכים חיוביים נמנעים מקצוות (isophotes), \n" -"אפס משפיע על שניהם באופן שווה (איזוטרופי)." - -#: ../src/iop/diffuse.c:1897 -msgctxt "section" -msgid "edge management" -msgstr "ניהול קצוות" - -#: ../src/iop/diffuse.c:1904 -msgid "" -"increase or decrease the sharpness of the highest frequencies.\n" -"can be used to keep details after blooming,\n" -"for standalone sharpening set speed to negative values." -msgstr "" -"הגבר או הפחת את החדות של התדרים הגבוהים.\n" -"עוזר לשמירת פרטים אחרי blooming,\n" -"לחידוד עצמאי קבע מהירות לערכים שליליים." - -#: ../src/iop/diffuse.c:1911 -msgid "" -"define the sensitivity of the variance penalty for edges.\n" -"increase to exclude more edges from diffusion,\n" -"if fringes or halos appear." -msgstr "" -"הגדר את רגישות קנס השונות עבור קצוות.\n" -"העלה על מנת להוציא יותר קצוות מהדיפוזיה,\n" -"אם מופיעים פסים או הילות." - -#: ../src/iop/diffuse.c:1918 -msgid "" -"define the variance threshold between edge amplification and penalty.\n" -"decrease if you want pixels on smooth surfaces get a boost,\n" -"increase if you see noise appear on smooth surfaces or\n" -"if dark areas seem oversharpened compared to bright areas." -msgstr "" -"הגדר את סף השונות בין הגברת קצוות לקנס.\n" -"הפחת אם ברצונך להגביר פיקסלים על משטחים חלקים,\n" -"הוסף אם מופיע רעש על משטחים חלקים או\n" -"אם אזורים חשוכים נראים מחודדים מדי בהשוואה לאיזורים בהירים." - -#: ../src/iop/diffuse.c:1924 -msgctxt "section" -msgid "diffusion spatiality" -msgstr "דיפוזיה מרחבית" - -#: ../src/iop/diffuse.c:1931 -msgid "" -"luminance threshold for the mask.\n" -"0. disables the luminance masking and applies the module on the whole " -"image.\n" -"any higher value excludes pixels with luminance lower than the threshold.\n" -"this can be used to inpaint highlights." -msgstr "" -"סף לומיננס עבור מסיכה.\n" -"0. מנטרל את מסיכת הלומיננס ומיישם את המודול על כל התמונה.\n" -"כל ערך גבוהה יותר מוציא פיקסלים בעלי לומיננס נמוך מהסף.\n" -"ניתן להשתמש בכך לצביעת פרטים בהירים." - -#: ../src/iop/dither.c:107 -msgid "dither or posterize" -msgstr "טשטוש או פוסטריזציה" - -#: ../src/iop/dither.c:112 -msgid "dithering|posterization|reduce bit-depth" -msgstr "טשטוש|פוסטריזציה|הקטנת עומק פיקסל" - -#: ../src/iop/dither.c:117 -msgid "" -"reduce banding and posterization effects in output\n" -"JPEGs by adding random noise, or reduce bit depth" -msgstr "" -"הפחת פסים ואפקט פוסטר בפלטי JPEG \n" -"על ידי הוספת רעש לבן, או הפחת עומק פיקסל" - -#: ../src/iop/dither.c:119 -msgid "corrective, artistic" -msgstr "תיקון, יצירתי" - -#. add the preset. -#: ../src/iop/dither.c:147 -msgid "dither" -msgstr "dither" - -#: ../src/iop/dither.c:759 -msgid "radius for blurring step" -msgstr "רדיוס לצעד טשטוש" - -#: ../src/iop/dither.c:771 -msgid "the gradient range where to apply random dither" -msgstr "טווח הגרדיאנט בו ליישם dither אקראי" - -#: ../src/iop/dither.c:772 -msgid "gradient range" -msgstr "טווח גרדיאנט" - -#: ../src/iop/dither.c:780 -msgid "damping level of random dither" -msgstr "רמת שיכוך של dither אקראי" - -#: ../src/iop/equalizer.c:89 -msgid "legacy equalizer" -msgstr "אקולייזר ישן" - -#: ../src/iop/equalizer.c:110 -msgid "" -"this module is deprecated. better use contrast equalizer module instead." -msgstr "מודול זה מוצא משימוש. עדיף להשתמש במודול אקולייזר הניגודיות במקום." - -#: ../src/iop/equalizer.c:238 -msgid "" -"this module will be removed in the future\n" -"and is only here so you can switch it off\n" -"and move to the new equalizer." -msgstr "" -"מודול זה יוסר בעתיד\n" -"וקיים כאן רק כדי שתוכל לכבות אותו\n" -"ולעבור לאקולייזר החדש." - -#: ../src/iop/exposure.c:129 -msgid "" -"redo the exposure of the shot as if you were still in-camera\n" -"using a color-safe brightening similar to increasing ISO setting" -msgstr "" -"שנה את חשיפת התמונה כאילו עדיין במצלמה\n" -"על ידי הבהרה שלא משנה צבע בדומה לשינוי ערך ISO" - -#: ../src/iop/exposure.c:279 -msgid "magic lantern defaults" -msgstr "ברירת מחדל פנס קסם" - -#: ../src/iop/exposure.c:351 ../src/iop/rawoverexposed.c:135 -#: ../src/iop/rawoverexposed.c:254 -#, c-format -msgid "failed to get raw buffer from image `%s'" -msgstr "קבלת נתוני raw מתמונה `%s' נכשלה" - -#: ../src/iop/exposure.c:629 -#, no-c-format -msgid "compensate camera exposure (%+.1f EV)" -msgstr "פיצוי חשיפה (%+.1f EV)" - -#. Write report in GUI -#: ../src/iop/exposure.c:813 -#, c-format -msgid "L : \t%.1f %%" -msgstr "L : \t%.1f %%" - -#: ../src/iop/exposure.c:945 ../src/libs/history.c:953 -#, c-format -msgid "%.2f EV" -msgstr "%.2f EV" - -#: ../src/iop/exposure.c:1113 -msgid "" -"automatically remove the camera exposure bias\n" -"this is useful if you exposed the image to the right." -msgstr "" -"הסר הסחת חשיפה של המצלמה אוטומטית\n" -"מועיל אם חשפת את התמונה לימין." - -#: ../src/iop/exposure.c:1132 -#, no-c-format -msgid "where in the histogram to meter for deflicking. E.g. 50% is median" -msgstr "היכן למדוד בהסטוגרמה עבור deflicking. לדוגמה 50% זה מדיין" - -#: ../src/iop/exposure.c:1138 -msgid "" -"where to place the exposure level for processed pics, EV below overexposure." -msgstr "היכן למקם את רמת החשיפה עבור תמונות מעובדות, EV מתחת חשיפת יתר." - -#: ../src/iop/exposure.c:1142 -msgid "computed EC: " -msgstr "מחושב EC: " - -#: ../src/iop/exposure.c:1145 -msgid "what exposure correction has actually been used" -msgstr "באיזה תיקון חשיפה נעשה שימוש בפועל" - -#: ../src/iop/exposure.c:1164 -msgid "" -"adjust the black level to unclip negative RGB values.\n" -"you should never use it to add more density in blacks!\n" -"if poorly set, it will clip near-black colors out of gamut\n" -"by pushing RGB values into negatives." -msgstr "" -"כוונן את רמת השחור לשחזר ערכי RGB שליליים שנחתכו.\n" -"אין להשתמש בזה להוספת צפיפות בשחורים.\n" -"בשימוש לא נכון, ייחתכו צבעים הקרובים לשחור מחוץ למכלול הצבע\n" -"על ידי דחיפת ערכי RGB לערכים שליליים." - -#: ../src/iop/exposure.c:1174 -msgid "spot exposure mapping" -msgstr "מיפוי חשיפה נקודתית" - -#: ../src/iop/exposure.c:1180 -msgid "" -"define a target brightness, in terms of exposure,\n" -"for a selected region of the image (the control sample),\n" -"which you then match against the same target brightness\n" -"in other images. the control sample can either\n" -"be a critical part of your subject or a non-moving and\n" -"consistently-lit surface over your series of images." -msgstr "" -"הגדר יעד בהירות, במונחים של חשיפה, \n" -"עבור אזור נבחר בתמונה (דגימת הבקרה), \n" -"שאותה משווים לאותו יעד בהירות בתמונות אחרות. \n" -"דגימת הבקרה יכולה להיות חלק קריטי מהנושא \n" -"או משטח קבוע המואר באופן עקבי בסדרת התמונות." - -#: ../src/iop/exposure.c:1189 -msgid "" -"\"correction\" automatically adjust exposure\n" -"such that the input lightness is mapped to the target.\n" -"\"measure\" simply shows how an input color is mapped by\n" -"the exposure compensation and can be used to define a target." -msgstr "" -"\"תיקון\" מכוונן חשיפה אוטומטית\n" -"כך שתאורת הקלט ממופה למטרה.\n" -"\"מדידה\" פשוט מראה איך צבע קלט ממופה ע\"י תיקון חשיפה\n" -"ויכול לשמש להגדרת מטרה." - -#: ../src/iop/exposure.c:1215 -msgid "L : \tN/A" -msgstr "L : \tN/A" - -#: ../src/iop/exposure.c:1233 -msgid "the desired target exposure after mapping" -msgstr "חשיפת מטרה נדרשת לאחר מיפוי" - -#: ../src/iop/filmic.c:177 -msgid "this module is deprecated. better use filmic rgb module instead." -msgstr "מודול זה מוצא משימוש. עדיף להשתמש במודול filmic rgb במקום." - -#: ../src/iop/filmic.c:304 -msgid "09 EV (low-key)" -msgstr "09 EV (low-key)" - -#: ../src/iop/filmic.c:312 -msgid "10 EV (indoors)" -msgstr "10 EV (בפנים)" - -#: ../src/iop/filmic.c:320 -msgid "11 EV (dim outdoors)" -msgstr "11 EV (אפלולי בחוץ)" - -#: ../src/iop/filmic.c:328 -msgid "12 EV (outdoors)" -msgstr "12 EV (מחוץ לבית)" - -#: ../src/iop/filmic.c:336 -msgid "13 EV (bright outdoors)" -msgstr "13 EV (בהיר בחוץ)" - -#: ../src/iop/filmic.c:344 -msgid "14 EV (backlighting)" -msgstr "14 EV (תאורת רקע)" - -#: ../src/iop/filmic.c:352 -msgid "15 EV (sunset)" -msgstr "15 EV (שקיעה)" - -#: ../src/iop/filmic.c:360 -msgid "16 EV (HDR)" -msgstr "16 EV (HDR)" - -#: ../src/iop/filmic.c:368 -msgid "18 EV (HDR++)" -msgstr "18 EV (HDR++)" - -#: ../src/iop/filmic.c:1480 -msgid "read-only graph, use the parameters below to set the nodes" -msgstr "גרף לקריאה בלבד. השתמש בפרמטרים למטה לקביעת הצמתים" - -#: ../src/iop/filmic.c:1484 -msgctxt "section" -msgid "logarithmic shaper" -msgstr "מטווה צורה לוגריתמי" - -#: ../src/iop/filmic.c:1492 -msgid "" -"adjust to match the average luminance of the subject.\n" -"except in back-lighting situations, this should be around 18%." -msgstr "" -"כוונן להתאמת הלומיננס הממוצע לנושא הצילום.\n" -"למעט במקריםשל תאורה אחורית, ערך זה צריך להיות בסביבות 18%." - -#: ../src/iop/filmic.c:1504 ../src/iop/filmicrgb.c:4442 -msgid "" -"number of stops between middle gray and pure white.\n" -"this is a reading a lightmeter would give you on the scene.\n" -"adjust so highlights clipping is avoided" -msgstr "" -"מספר הסטופים בין אפור אמצע ללבן טהור.\n" -"זו מדידה שמד אור היה נותן בסצנה.\n" -"כוונן כך שחיתוך פרטים בהירים ימנע" - -#: ../src/iop/filmic.c:1517 ../src/iop/filmicrgb.c:4453 -msgid "" -"number of stops between middle gray and pure black.\n" -"this is a reading a lightmeter would give you on the scene.\n" -"increase to get more contrast.\n" -"decrease to recover more details in low-lights." -msgstr "" -"מספר הסטופים בין אפור אמצע לשחור מוחלט.\n" -"זו מדידה שמד אור היה נותן בשטח.\n" -"הגבר לחיזוק הקונטרסט.\n" -"הנמך לשחזור יותר פרטים בתנאי אור חלש." - -#: ../src/iop/filmic.c:1529 -msgid "" -"enlarge or shrink the computed dynamic range.\n" -"useful in conjunction with \"auto tune levels\"." -msgstr "" -"הגדל או כווץ את התחום הדינמי המחושב.\n" -"שימושי בצמוד ל \"כוונן רמות אוטומטית\"." - -#: ../src/iop/filmic.c:1535 ../src/iop/filmicrgb.c:4467 -#: ../src/iop/profile_gamma.c:659 -msgid "auto tune levels" -msgstr "כוונן רמות אוטומטית" - -#: ../src/iop/filmic.c:1538 -msgid "" -"try to optimize the settings with some guessing.\n" -"this will fit the luminance range inside the histogram bounds.\n" -"works better for landscapes and evenly-lit pictures\n" -"but fails for high-keys and low-keys." -msgstr "" -"נסה למטב את ההגדרות עם קצת ניחוש.\n" -"זה יתאים את טווח הלומיננס לתוך גבולות ההסטוגרמה.\n" -"עובד טוב יותר עבור תמונות נוף ותמונות המוארות בצורה אחידה\n" -"אבל כושל בפרטים החשוכים והבהירים." - -#: ../src/iop/filmic.c:1543 -msgctxt "section" -msgid "filmic S curve" -msgstr "filmic S curve" - -#: ../src/iop/filmic.c:1550 ../src/iop/filmicrgb.c:4554 -msgid "" -"slope of the linear part of the curve\n" -"affects mostly the mid-tones" -msgstr "" -"שיפוע החלק הלינארי של העקום\n" -"משפיע בעיקר על הטונים הבינוניים" - -#. geotagging -#: ../src/iop/filmic.c:1557 ../src/iop/filmicrgb.c:4563 -#: ../src/libs/metadata_view.c:157 -msgid "latitude" -msgstr "קו רוחב" - -#: ../src/iop/filmic.c:1560 -msgid "" -"width of the linear domain in the middle of the curve.\n" -"increase to get more contrast at the extreme luminances.\n" -"this has no effect on mid-tones." -msgstr "" -"רוחב המתחם הלינארי במרכז העקום.\n" -"הגבר לקבלת יותר קונטרסט בלומיננס קיצוני.\n" -"אין לכך השפעה על הטונים הבינוניים." - -#: ../src/iop/filmic.c:1567 -msgid "shadows/highlights balance" -msgstr "איזון צללים/ בהירים" - -#: ../src/iop/filmic.c:1570 ../src/iop/filmicrgb.c:4574 -msgid "" -"slides the latitude along the slope\n" -"to give more room to shadows or highlights.\n" -"use it if you need to protect the details\n" -"at one extremity of the histogram." -msgstr "" -"מחליק את קו הרוחב לאורך השיפוע\n" -"על מנת לתת יותר מקום לצללים ולפרטים הבהירים.\n" -"השתמש בזה אם יש צורך לשמור על הפרטים\n" -"באחד מנקודות הקיצון של ההסטוגרמה." - -#: ../src/iop/filmic.c:1580 -msgid "" -"desaturates the input of the module globally.\n" -"you need to set this value below 100%\n" -"if the chrominance preservation is enabled." -msgstr "" -"מפחית את רווית הקלט למודול גלובלית.\n" -"יש לקבוע ערך זה מתחת ל 100%\n" -"אם שימור chrominance מופעל." - -#: ../src/iop/filmic.c:1590 -msgid "" -"desaturates the output of the module\n" -"specifically at extreme luminances.\n" -"decrease if shadows and/or highlights are over-saturated." -msgstr "" -"מוריד רוויה בפלט המודול\n" -"ספציפית בלומיננס קיצוני.\n" -"הפחת אם הצללים ו/או הפרטים הבהירים רווים מדי." - -#. Add export intent combo -#: ../src/iop/filmic.c:1600 ../src/libs/export.c:1227 -#: ../src/libs/print_settings.c:2473 ../src/libs/print_settings.c:2820 -#: ../src/views/darkroom.c:2524 ../src/views/lighttable.c:1182 -msgid "intent" -msgstr "כוונה" - -#: ../src/iop/filmic.c:1601 -msgid "contrasted" -msgstr "מנוגד" - -#. cubic spline -#: ../src/iop/filmic.c:1602 -msgid "faded" -msgstr "דועך" - -#. centripetal spline -#: ../src/iop/filmic.c:1603 ../src/iop/profile_gamma.c:621 -msgid "linear" -msgstr "לינארית" - -#. monotonic spline -#: ../src/iop/filmic.c:1604 -msgid "optimized" -msgstr "ממוטב" - -#: ../src/iop/filmic.c:1606 -msgid "change this method if you see reversed contrast or faded blacks" -msgstr "שנה שיטה זו אם גורם לקונטרסט הפוך או שחורים דהויים" - -#. Preserve color -#: ../src/iop/filmic.c:1610 -msgid "preserve the chrominance" -msgstr "שמר chrominance" - -#: ../src/iop/filmic.c:1612 -msgid "" -"ensure the original color are preserved.\n" -"may reinforce chromatic aberrations.\n" -"you need to manually tune the saturation when using this mode." -msgstr "" -"וודא שהצבעים המקוריים נשמרים.\n" -"עשוי להחמיר אברציות כרומטיות.\n" -"יש לכוונן רוויה ידנית כאשר משתמשים במודול זה." - -#: ../src/iop/filmic.c:1622 -msgctxt "section" -msgid "destination/display" -msgstr "יעד/תצוגה" - -#: ../src/iop/filmic.c:1640 ../src/iop/filmicrgb.c:4593 -msgid "" -"luminance of output pure black, this should be 0%\n" -"except if you want a faded look" -msgstr "" -"לומיננס של שחור מוחלט בפלט, צריך להיות 0%\n" -"אלא אם נדרש מבט דהוי" - -#: ../src/iop/filmic.c:1649 ../src/iop/filmicrgb.c:4600 -msgid "" -"middle gray value of the target display or color space.\n" -"you should never touch that unless you know what you are doing." -msgstr "" -"ערך אפור אמצע עבור תצוגת המטרה או מרחב הצבע.\n" -"לעולם אל תשנה ערך זה אלא אם אתה יודע מה אתה עושה." - -#: ../src/iop/filmic.c:1658 ../src/iop/filmicrgb.c:4607 -msgid "" -"luminance of output pure white, this should be 100%\n" -"except if you want a faded look" -msgstr "" -"לומיננס של לבן מוחלט לפלט, צריך להיות 100%\n" -"אלא אם נדרש מראה דהוי" - -#: ../src/iop/filmic.c:1664 -msgid "target gamma" -msgstr "יעד גאמה" - -#: ../src/iop/filmic.c:1666 -msgid "" -"power or gamma of the transfer function\n" -"of the display or color space.\n" -"you should never touch that unless you know what you are doing." -msgstr "" -"חזקה או גאמה לפונקציית התמסורת\n" -"של המסך או מרחב הצבע.\n" -"לעולם אל תשנה ערך זה אלא אם אתה יודע מה אתה עושה." - -#: ../src/iop/filmicrgb.c:339 -msgid "filmic rgb" -msgstr "filmic rgb" - -#: ../src/iop/filmicrgb.c:344 -msgid "tone mapping|curve|view transform|contrast|saturation|highlights" -msgstr "מיפוי טונים|עקום|הצג התמרה|ניגודיות|רוויה|פרטים בהירים" - -#: ../src/iop/filmicrgb.c:349 -msgid "" -"apply a view transform to prepare the scene-referred pipeline\n" -"for display on SDR screens and paper prints\n" -"while preventing clipping in non-destructive ways" -msgstr "" -"ישם התמרת צפיה להכנת פייפליין מיוחס סצנה\n" -"לתצוגה על מסכי SDR והדפסות נייר\n" -"תוך מניעת חיתוך באופנים לא הורסים" - -#: ../src/iop/filmicrgb.c:1310 -msgid "" -"filmic highlights reconstruction failed to allocate memory, check your RAM " -"settings" -msgstr "שחזור פרטים בהירים של filmic כשל בהקצאת זיכרון, בדוק הגדרות RAM" - -#: ../src/iop/filmicrgb.c:2301 -msgid "filmic highlights reconstruction failed to allocate memory on GPU" -msgstr "שחזור פרטים בהירים של filmic כשל בהקצאת זיכרון על GPU" - -#: ../src/iop/filmicrgb.c:2419 -msgid "filmic works only on RGB input" -msgstr "filmic עובד רק על קלט RGB" - -#: ../src/iop/filmicrgb.c:3484 -msgid "look only" -msgstr "מראה בלבד" - -#: ../src/iop/filmicrgb.c:3486 -msgid "look + mapping (lin)" -msgstr "מראה + מיפוי (לינארי)" - -#: ../src/iop/filmicrgb.c:3488 -msgid "look + mapping (log)" -msgstr "מראה + מיפוי (לוגריתמי)" - -#: ../src/iop/filmicrgb.c:3490 -msgid "dynamic range mapping" -msgstr "מיפוי טווח דינאמי" - -#: ../src/iop/filmicrgb.c:3857 -#, c-format -msgid "(%.0f %%)" -msgstr "(%.0f %%)" - -#: ../src/iop/filmicrgb.c:3873 -#, no-c-format -msgid "% display" -msgstr "% תצוגה" - -#: ../src/iop/filmicrgb.c:3885 -msgid "EV scene" -msgstr "EV סצנה" - -#: ../src/iop/filmicrgb.c:3889 -#, no-c-format -msgid "% camera" -msgstr "% מצלמה" - -#. Page DISPLAY -#: ../src/iop/filmicrgb.c:3925 ../src/iop/filmicrgb.c:4587 -msgid "display" -msgstr "הצג" - -#. axis legend -#: ../src/iop/filmicrgb.c:3934 -msgid "(%)" -msgstr "(%)" - -#. Page SCENE -#: ../src/iop/filmicrgb.c:3943 ../src/iop/filmicrgb.c:4422 -msgid "scene" -msgstr "סצנה" - -#. axis legend -#: ../src/iop/filmicrgb.c:3952 -msgid "(EV)" -msgstr "(EV)" - -#. we are over the graph area -#: ../src/iop/filmicrgb.c:4364 -msgid "" -"use the parameters below to set the nodes.\n" -"the bright curve is the filmic tone mapping curve\n" -"the dark curve is the desaturation curve." -msgstr "" -"השתמש בפרמטרים למטה לקבוע את הצמתים\n" -"העקום הבהיר הוא עקום המיפוי ל filmic טון\n" -"העקום הכהה הוא עקום הפחתת הרוויה." - -#: ../src/iop/filmicrgb.c:4370 -msgid "toggle axis labels and values display" -msgstr "מתג תוויות ציר ותצוגת ערכים" - -#: ../src/iop/filmicrgb.c:4374 -msgid "" -"cycle through graph views.\n" -"left click: cycle forward.\n" -"right click: cycle backward.\n" -"double-click: reset to look view." -msgstr "" -"דפדף בין תצוגות גרף.\n" -"קליק שמאלי: דפדף קדימה.\n" -"קליק ימני: דפדף אחורה.\n" -"קליק כפול: אתחל לתצוגת מבט." - -#: ../src/iop/filmicrgb.c:4431 -#, no-c-format -msgid "" -"adjust to match the average luminance of the image's subject.\n" -"the value entered here will then be remapped to 18.45%.\n" -"decrease the value to increase the overall brightness." -msgstr "" -"כוונן להתאמת הלומיננס הממוצע של נושא התמונה.\n" -"הערך שיוכנס כאן ימופה מחדש ל 18.45%.\n" -"הפחת את הערך להעלאת הבהירות הכללית של התמונה." - -#: ../src/iop/filmicrgb.c:4461 -msgid "" -"symmetrically enlarge or shrink the computed dynamic range.\n" -"useful to give a safety margin to extreme luminances." -msgstr "" -"הגדל או כווץ סימטרית את התחום הדינמי המחושב.\n" -"שימושי ביצירת שולי בטיחות ללומיננסים קיצוניים." - -#: ../src/iop/filmicrgb.c:4468 -msgid "" -"try to optimize the settings with some statistical assumptions.\n" -"this will fit the luminance range inside the histogram bounds.\n" -"works better for landscapes and evenly-lit pictures\n" -"but fails for high-keys, low-keys and high-ISO pictures.\n" -"this is not an artificial intelligence, but a simple guess.\n" -"ensure you understand its assumptions before using it." -msgstr "" -"נסה למטב את ההגדרות עם קצת ניחוש סטטיסטי.\n" -"זה יתאים את טווח הלומיננס לתוך גבולות ההסטוגרמה.\n" -"עובד טוב יותר עבור תמונות נוף ותמונות המוארות בצורה אחידה\n" -"אבל כושל בפרטים החשוכים והבהירים ובתמונות ב ISO גבוהה.\n" -"זו אינה בינה מלאכותית אלא ניחוש פשוט.\n" -"וודא שהנך מבין את את הנחות היסוד לפני השימוש." - -#. Page RECONSTRUCT -#: ../src/iop/filmicrgb.c:4477 -msgid "reconstruct" -msgstr "שחזר" - -#: ../src/iop/filmicrgb.c:4479 -msgctxt "section" -msgid "highlights clipping" -msgstr "חיתוך פרטים בהירים" - -#: ../src/iop/filmicrgb.c:4487 -msgid "" -"set the exposure threshold upon which\n" -"clipped highlights get reconstructed.\n" -"values are relative to the scene white point.\n" -"0 EV means the threshold is the same as the scene white point.\n" -"decrease to include more areas,\n" -"increase to exclude more areas." -msgstr "" -"קבע את סף החשיפה שמעליה\n" -"פרטים בהירים משוחזרים.\n" -"ערכים יחסיים לנקודת הלבן של הסצנה.\n" -"ערך 0 EV משמעותו שהסף זהה לנקודת הלבן של הסצנה.\n" -"הפחת להכליל אזורים נוספים,\n" -"הגבר להדיר אזורים נוספים." - -#: ../src/iop/filmicrgb.c:4497 -msgid "" -"soften the transition between clipped highlights and valid pixels.\n" -"decrease to make the transition harder and sharper,\n" -"increase to make the transition softer and blurrier." -msgstr "" -"רכך את המעברים בין פרטים בהירים חתוכים לפיקסלים תקפים.\n" -"הפחת כדי להפוך את המעבר לקשה וחד יותר,\n" -"הגבר כדי להפוך את המעבר לרך ומטושטש יותר." - -#: ../src/iop/filmicrgb.c:4503 ../src/iop/filmicrgb.c:4504 -msgid "display highlight reconstruction mask" -msgstr "הצג מסיכת שחזור פרטים בהירים" - -#: ../src/iop/filmicrgb.c:4511 -msgctxt "section" -msgid "balance" -msgstr "איזון" - -#: ../src/iop/filmicrgb.c:4518 -#, no-c-format -msgid "" -"decide which reconstruction strategy to favor,\n" -"between inpainting a smooth color gradient,\n" -"or trying to recover the textured details.\n" -"0% is an equal mix of both.\n" -"increase if at least one RGB channel is not clipped.\n" -"decrease if all RGB channels are clipped over large areas." -msgstr "" -"החלט באיזו אסטרטגיית שחזור להעדיף,\n" -"בין צביעת גרדיאנט צבע חלק,\n" -"או בניסיון לשחזר פרטי טקסטורה.\n" -"ערך 0% מהווה עירוב שווה בין השניים.\n" -"הגבר אם לפחות אחד מערוצי RGB לא חתוך.\n" -"הפחת אם כל ערוצי RGB חתוחים על שטחים גדולים." - -#: ../src/iop/filmicrgb.c:4529 -#, no-c-format -msgid "" -"decide which reconstruction strategy to favor,\n" -"between blooming highlights like film does,\n" -"or trying to recover sharp details.\n" -"0% is an equal mix of both.\n" -"increase if you want more details.\n" -"decrease if you want more blur." -msgstr "" -"החלט באיזו אסטרטגיית שחזור להעדיף,\n" -"בין פרטים בהירים זוהרים כמו בפילם,\n" -"או בניסיון לשחזר פרטים חדים.\n" -"ערך 0% מהווה עירוב שווה בין השניים.\n" -"הגבר אם ברצונך יותר פרטים.\n" -"הפחת אם ברצונך יותר טשטוש." - -#: ../src/iop/filmicrgb.c:4541 -#, no-c-format -msgid "" -"decide which reconstruction strategy to favor,\n" -"between recovering monochromatic highlights,\n" -"or trying to recover colorful highlights.\n" -"0% is an equal mix of both.\n" -"increase if you want more color.\n" -"decrease if you see magenta or out-of-gamut highlights." -msgstr "" -"החלט באיזו אסטרטגיית שחזור להעדיף,\n" -"בין שחזור פרטים בהירים מונוכרומטיים,\n" -"או בניסיון לשחזר פרטים בהירים צבעוניים.\n" -"ערך 0% מהווה עירוב שווה בין השניים.\n" -"הגבר אם ברצונך יותר צבע.\n" -"הפחת אם רואים מג'נטה או פרטים בהירים מחוץ למכלול הצבע." - -#. Page LOOK -#: ../src/iop/filmicrgb.c:4549 -msgid "look" -msgstr "מראה" - -#: ../src/iop/filmicrgb.c:4559 -msgid "" -"equivalent to paper grade in analog.\n" -"increase to make highlights brighter and less compressed.\n" -"decrease to mute highlights." -msgstr "" -"אקוויולנטי לאיכות נייר באנלוגי.\n" -"הגבר להבהרת פרטים בהירים ופחות דחוסים.\n" -"הפחת להשתקת פרטים בהירים." - -#: ../src/iop/filmicrgb.c:4567 -msgid "" -"width of the linear domain in the middle of the curve,\n" -"increase to get more contrast and less desaturation at extreme luminances,\n" -"decrease otherwise. no desaturation happens in the latitude range.\n" -"this has no effect on mid-tones." -msgstr "" -"רוחב המתחם הלינארי במרכז העקום,\n" -"הגבר לקבלת יותר קונטרסט ופחות דה-סטורציה בלומיננס קיצוני.\n" -"הפחת אחרת. לא תתרחש דה-סטורציה בטווח קוי הרוחב.\n" -"אין לכך השפעה על הטונים הבינוניים." - -#: ../src/iop/filmicrgb.c:4582 ../src/iop/filmicrgb.c:4730 -msgid "" -"desaturates the output of the module\n" -"specifically at extreme luminances.\n" -"increase if shadows and/or highlights are under-saturated." -msgstr "" -"מוריד רוויה בפלט המודול\n" -"ספציפית בלומיננס קיצוני.\n" -"הגבר אם הצללים ו/או הפרטים הבהירים אינם רווים מספיק." - -#. Page OPTIONS -#: ../src/iop/filmicrgb.c:4611 -msgid "options" -msgstr "אפשרויות" - -#: ../src/iop/filmicrgb.c:4616 -msgid "" -"v3 is darktable 3.0 desaturation method, same as color balance.\n" -"v4 is a newer desaturation method, based on spectral purity of light." -msgstr "" -"גרסה v3 היא שיטת דיסטורציה של darktable 3.0, זהה לאיזון צבע.\n" -"גרסה v4 היא דיסטורציה חדשה יותר, מבוססת טוהר ספקטרלי של אור." - -#: ../src/iop/filmicrgb.c:4620 -msgid "" -"ensure the original colors are preserved.\n" -"may reinforce chromatic aberrations and chroma noise,\n" -"so ensure they are properly corrected elsewhere." -msgstr "" -"וודא שהצבעים המקוריים נשמרים.\n" -"עשוי להחמיר אברציות כרומטיות ורעש כרומטי,\n" -"יש לוודא שהם מתוכנים במקום אחר." - -#: ../src/iop/filmicrgb.c:4629 -msgid "" -"choose the desired curvature of the filmic spline in highlights.\n" -"hard uses a high curvature resulting in more tonal compression.\n" -"soft uses a low curvature resulting in less tonal compression." -msgstr "" -"בחר את העקמומיות הרצויה עבור filmic spline בפרטים הבהירים.\n" -"קשה משתמש בעקמומיות חזקה המתבטאת ביותר דחיסה טונלית.\n" -"רך משתמש בעקמומיות חלשה המתבטאת בפחות דחיסה טונלית." - -#: ../src/iop/filmicrgb.c:4634 -msgid "" -"choose the desired curvature of the filmic spline in shadows.\n" -"hard uses a high curvature resulting in more tonal compression.\n" -"soft uses a low curvature resulting in less tonal compression." -msgstr "" -"בחר את העקמומיות הרצויה עבור filmic spline בצללים.\n" -"קשה משתמש בעקמומיות חזקה המתבטאת ביותר דחיסה טונלית.\n" -"רך משתמש בעקמומיות חלשה המתבטאת בפחות דחיסה טונלית." - -#: ../src/iop/filmicrgb.c:4641 -#, no-c-format -msgid "" -"enable to input custom middle-gray values.\n" -"this is not recommended in general.\n" -"fix the global exposure in the exposure module instead.\n" -"disable to use standard 18.45% middle gray." -msgstr "" -"הפעל להכנסת גווני אפור בינוני מותאמים אישית.\n" -"לא מומלץ באופן כללי.\n" -"תקן את החשיפה הגלובלית במודול החשיפה במקום.\n" -"נטרל על מנת להשתמש בגווני אפור בינוני סטנדרטיים 18.45%." - -#: ../src/iop/filmicrgb.c:4648 -msgid "" -"enable to auto-set the look hardness depending on the scene white and black " -"points.\n" -"this keeps the middle gray on the identity line and improves fast tuning.\n" -"disable if you want a manual control." -msgstr "" -"הפעל על מנת לקבוע אוטומטית את קושי המראה כתלות בנקודות הלבן והשחור בסצנה.\n" -"זה מאפשר לשמור על האפור הבינוני על קו הזהות ומשפר כוונון מהיר.\n" -"נטרל ברצונך שליטה ידנית." - -#: ../src/iop/filmicrgb.c:4654 -msgid "" -"run extra passes of chromaticity reconstruction.\n" -"more iterations means more color propagation from neighborhood.\n" -"this will be slower but will yield more neutral highlights.\n" -"it also helps with difficult cases of magenta highlights." -msgstr "" -"הרץ מעברים נוספים של שחזור כרומטיות.\n" -"איטרציות נוספות משמעותן יותר נדידה של צבע מהסביבה הקרובה.\n" -"זה יהיה איטי יותר אך יספק פרטים בהירים נייטרלים יותר.\n" -"יכול לעזור במקרים קשים של של פרטים בהירים בצבע מג'נטה." - -#: ../src/iop/filmicrgb.c:4661 -msgid "" -"add statistical noise in reconstructed highlights.\n" -"this avoids highlights to look too smooth\n" -"when the picture is noisy overall,\n" -"so they blend with the rest of the picture." -msgstr "" -"הוסף רעש סטטיסטי בשחזור הפרטים הבהירים.\n" -"גורם לפרטים הבהירים לא להיראות חלקים מדי\n" -"כאשר התמונה רועשת באופן כללי,\n" -"כך שיש השתלבות עם יתר התמונה." - -#: ../src/iop/filmicrgb.c:4668 -msgid "" -"choose the statistical distribution of noise.\n" -"this is useful to match natural sensor noise pattern." -msgstr "" -"בחר את ההתפלגות הסטטיסטית של הרעש.\n" -"שימושי להתאמה לרעש הטבעי של החיישן." - -#: ../src/iop/filmicrgb.c:4736 -msgid "mid-tones saturation" -msgstr "טונים-אמצעיים רוויה" - -#: ../src/iop/filmicrgb.c:4737 -msgid "" -"desaturates the output of the module\n" -"specifically at medium luminances.\n" -"increase if midtones are under-saturated." -msgstr "" -"מוריד רוויה בפלט המודול\n" -"ספציפית בלומיננס בינוני.\n" -"הגבר אם הטונים הבינוניים בתת רוויה." - -#: ../src/iop/filmicrgb.c:4743 -msgid "highlights saturation mix" -msgstr "מדגיש מיקס רוויה" - -#: ../src/iop/filmicrgb.c:4744 -msgid "" -"positive values ensure saturation is kept unchanged over the whole range.\n" -"negative values bleach highlights at constant hue and luminance.\n" -"zero is an equal mix of both strategies." -msgstr "" -"ערכים חיוביים מבטיחים רוויה נשמרת על כל התחום.\n" -"ערכים שליליים מוחקים פרטים בהירים בערכי גוון ולומיננס קבועים.\n" -"אפס הוא עירוב שווה של שתי הגישות." - -#: ../src/iop/finalscale.c:39 -msgctxt "modulename" -msgid "scale into final size" -msgstr "שנה לגודל סופי" - -#: ../src/iop/flip.c:80 -msgid "rotation|flip" -msgstr "סובב|הפך" - -#: ../src/iop/flip.c:110 -msgid "flip or rotate image by step of 90 degrees" -msgstr "הפך או סובב תמונה בקפיצות של 90 מעלות" - -#: ../src/iop/flip.c:477 -msgid "no rotation" -msgstr "ללא סיבוב" - -#: ../src/iop/flip.c:481 ../src/iop/flip.c:624 -msgid "flip horizontally" -msgstr "הפוך אופקית" - -#: ../src/iop/flip.c:485 ../src/iop/flip.c:628 -msgid "flip vertically" -msgstr "הפוך אנכית" - -#: ../src/iop/flip.c:489 -msgid "rotate by -90 degrees" -msgstr "סובב 90- מעלות" - -#: ../src/iop/flip.c:493 -msgid "rotate by 90 degrees" -msgstr "סובב 90 מעלות" - -#: ../src/iop/flip.c:497 -msgid "rotate by 180 degrees" -msgstr "סובב 180 מעלות" - -#: ../src/iop/flip.c:612 -msgid "transform" -msgstr "שנה צורה" - -#: ../src/iop/flip.c:616 ../src/libs/live_view.c:293 -msgid "rotate 90 degrees CCW" -msgstr "סובב 90 מעלות נגד כיוון השעון" - -#: ../src/iop/flip.c:620 ../src/libs/live_view.c:294 -msgid "rotate 90 degrees CW" -msgstr "סובב 90 מעלות עם כיוון השעון" - -#: ../src/iop/gamma.c:44 -msgctxt "modulename" -msgid "display encoding" -msgstr "הצג קידוד" - -#: ../src/iop/globaltonemap.c:100 -msgid "global tonemap" -msgstr "מיפוי טונים גלובלי" - -#: ../src/iop/globaltonemap.c:105 -msgid "this module is deprecated. please use the filmic rgb module instead." -msgstr "מודול זה מוצא משימוש. אנה השתמש במודול filmic rgb במקום." - -#: ../src/iop/globaltonemap.c:625 ../src/libs/filters/colors.c:259 -msgid "operator" -msgstr "אופרטור" - -#: ../src/iop/globaltonemap.c:626 -msgid "the global tonemap operator" -msgstr "אופרטור מיפוי טונים גלובלי" - -#: ../src/iop/globaltonemap.c:629 -msgid "" -"the bias for tonemapper controls the linearity, the higher the more details " -"in blacks" -msgstr "" -"ההטיה עבור מיפוי טונים שולטת בלינאריות, ככל שגבוהה יותר מתקבלים יותר פרטים " -"בשחורים" - -#: ../src/iop/globaltonemap.c:633 -msgid "the target light for tonemapper specified as cd/m2" -msgstr "תאורת היעד ל tonemapper ביחידות של cd/m2" - -#: ../src/iop/graduatednd.c:67 -msgid "neutral gray ND2 (soft)" -msgstr "אפור ניטראלי ND2 (רך)" - -#: ../src/iop/graduatednd.c:70 -msgid "neutral gray ND4 (soft)" -msgstr "אפור ניטראלי ND4 (רך)" - -#: ../src/iop/graduatednd.c:73 -msgid "neutral gray ND8 (soft)" -msgstr "אפור ניטראלי ND8 (רך)" - -#: ../src/iop/graduatednd.c:76 -msgid "neutral gray ND2 (hard)" -msgstr "אפור ניטראלי ND2 (קשה)" - -#: ../src/iop/graduatednd.c:80 -msgid "neutral gray ND4 (hard)" -msgstr "אפור ניטראלי ND4 (קשה)" - -#: ../src/iop/graduatednd.c:83 -msgid "neutral gray ND8 (hard)" -msgstr "אפור ניטראלי ND8 (קשה)" - -#: ../src/iop/graduatednd.c:87 -msgid "orange ND2 (soft)" -msgstr "כתום ND2 (רך)" - -#: ../src/iop/graduatednd.c:90 -msgid "yellow ND2 (soft)" -msgstr "צהוב ND2 (רך)" - -#: ../src/iop/graduatednd.c:94 -msgid "purple ND2 (soft)" -msgstr "סגול ND2 (רך)" - -#: ../src/iop/graduatednd.c:98 -msgid "green ND2 (soft)" -msgstr "ירוק ND2 (רך)" - -#: ../src/iop/graduatednd.c:102 -msgid "red ND2 (soft)" -msgstr "אדום ND2 (רך)" - -#: ../src/iop/graduatednd.c:105 -msgid "blue ND2 (soft)" -msgstr "כחול ND2 (רך)" - -#: ../src/iop/graduatednd.c:109 -msgid "brown ND4 (soft)" -msgstr "חום ND4 (רך)" - -#: ../src/iop/graduatednd.c:140 -msgid "graduated density" -msgstr "צפיפות משתנה" - -#: ../src/iop/graduatednd.c:145 -msgid "simulate an optical graduated neutral density filter" -msgstr "הדמה פילטר אופטי נייטרלי הדרגתי" - -#: ../src/iop/graduatednd.c:1114 -msgid "the density in EV for the filter" -msgstr "הצפיפות ב EV של הפילטר" - -#: ../src/iop/graduatednd.c:1119 -#, no-c-format -msgid "" -"hardness of graduation:\n" -"0% = soft, 100% = hard" -msgstr "" -"קשיחות המעברים:\n" -"0% = רך, 100% = קשה" - -#: ../src/iop/graduatednd.c:1123 -msgid "rotation of filter -180 to 180 degrees" -msgstr "סיבוב הפילטר 180- ל 180 מעלות" - -#: ../src/iop/graduatednd.c:1136 -msgid "select the hue tone of filter" -msgstr "בחר את חוזק הגוון של הפילטר" - -#: ../src/iop/graduatednd.c:1142 -msgid "select the saturation of filter" -msgstr "בחר רוויה לפילטר" - -#: ../src/iop/graduatednd.c:1153 -#, c-format -msgid "[%s on nodes] change line rotation" -msgstr "[%s בצמתים] שנה סיבוב קו" - -#: ../src/iop/graduatednd.c:1154 -#, c-format -msgid "[%s on line] move line" -msgstr "[%s על קו] הזז קו" - -#: ../src/iop/graduatednd.c:1156 -#, c-format -msgid "[%s on line] change density" -msgstr "[%s על קו] שנה צפיפות" - -#: ../src/iop/graduatednd.c:1158 -#, c-format -msgid "[%s on line] change hardness" -msgstr "[%s על קו] שנה קשיחות" - -#: ../src/iop/grain.c:428 -msgid "grain" -msgstr "גירעון" - -#: ../src/iop/grain.c:433 -msgid "simulate silver grains from film" -msgstr "הדמה גירעון כסף מפילים" - -#: ../src/iop/grain.c:582 -msgid "the grain size (~ISO of the film)" -msgstr "גודל גירעון (~ISO של הפילם)" - -#: ../src/iop/grain.c:586 -msgid "the strength of applied grain" -msgstr "חוזק יישום הגירעון" - -#: ../src/iop/grain.c:590 -msgid "" -"amount of mid-tones bias from the photographic paper response modeling. the " -"greater the bias, the more pronounced the fall off of the grain in shadows " -"and highlights" -msgstr "" -"כמות הסחה של טונים ביינונים ממודל התגובה של נייר הצילום. ככל שההסחה גדולה " -"יותר, כך הדעיכה של הגרעון בצללים ובפרטים הבהירים תהיה מודגשת יותר" - -#: ../src/iop/hazeremoval.c:100 -msgid "haze removal" -msgstr "הסרת ערפול" - -#: ../src/iop/hazeremoval.c:106 -msgid "dehaze|defog|smoke|smog" -msgstr "נטרל אובך|נטרל ערפול|עשן|ערפיח" - -#: ../src/iop/hazeremoval.c:111 -msgid "remove fog and atmospheric hazing from pictures" -msgstr "הסר ערפול ואובך אטמוספרי מהתמונה" - -#: ../src/iop/hazeremoval.c:202 -msgid "amount of haze reduction" -msgstr "עוצמת הפחתת ערפול" - -#: ../src/iop/hazeremoval.c:204 -msgid "distance" -msgstr "מרחק" - -#: ../src/iop/hazeremoval.c:206 -msgid "limit haze removal up to a specific spatial depth" -msgstr "הגבל הסרת ערפול עד לעומק מרחבי מסוים" - -#: ../src/iop/highlights.c:173 -msgid "highlight reconstruction" -msgstr "שחזור פרטים בהירים" - -#: ../src/iop/highlights.c:178 -msgid "avoid magenta highlights and try to recover highlights colors" -msgstr "המנע הפרטים בהירים בצבע מג'נטה ונסה לשחזר צבע בפרטים הבהירים" - -#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:75 -msgid "reconstruction, raw" -msgstr "שחזור, raw" - -#: ../src/iop/highlights.c:923 -msgid "" -"highlights: mode not available for this type of image. falling back to " -"inpaint opposed." -msgstr "" -"highlights: mode not available for this type of image. falling back to " -"inpaint opposed." - -#: ../src/iop/highlights.c:1101 -msgid "highlight reconstruction method" -msgstr "שיטת שחזור פרטים בהירים" - -#: ../src/iop/highlights.c:1106 -msgid "" -"manually adjust the clipping threshold mostly used against magenta " -"highlights\n" -"the mask icon shows the clipped areas.\n" -"you might use this for tuning 'laplacian', 'inpaint opposed' or " -"'segmentation' modes,\n" -"especially if camera white point is incorrect." -msgstr "" -"כוונן ידנית את סף החיתוך כנגד בהירים במג'נטה\n" -"אייקון המסיכה מראה את האיזור הקטום\n" -"ניתן לשימוש לכוונון מצבי 'laplacian', 'inpaint opposed' או 'segmentation',\n" -"במיוחד אם נקודת איזון לבן של המצלמה שגויה." - -#: ../src/iop/highlights.c:1117 -msgid "" -"combine closely related clipped segments by morphological operations.\n" -"the mask button shows the exact positions of resulting segment borders." -msgstr "" -"צרף מקטעים חתוכים קרובים מאד על ידי פעולות מורפולוגיות.\n" -"כפתור המיסוך מראה את המיקומים המדויקים של גבולות המקטע הנוצרים." - -#: ../src/iop/highlights.c:1125 -msgid "" -"select inpainting after segmentation analysis.\n" -"increase to favour candidates found in segmentation analysis, decrease for " -"opposed means inpainting.\n" -"the mask button shows segments that are considered to have a good candidate." -msgstr "" -"בחירת צביעת פנים (inpainting) לאחר אנליזת מקטעים.\n" -"הגבר להעדפת מועמדים שנמצאו באנליזת המקטעים, הפחת לנגדי.\n" -"כפתור המיסוך מראה את המקטעים שבהם יש מועמדים ראויים." - -#: ../src/iop/highlights.c:1136 -msgid "" -"approximate lost data in regions with all photosites clipped, the effect " -"depends on segment size and border gradients.\n" -"choose a mode tuned for segment size or the generic mode that tries to find " -"best settings for every segment.\n" -"small means areas with a diameter less than 25 pixels, large is best for " -"greater than 100.\n" -"the flat modes ignore narrow unclipped structures (like powerlines) to keep " -"highlights rebuilt and avoid gradients." -msgstr "" -"הערך אובדן מידע באזורים בהם כל ה photosites חתוכים, האפקט תלוי בגודל המקטע " -"ובגראדינטים על הגבולות.\n" -"בחר במצב מכוון לגודל מקטע או המצב הגנרי המנסה למצוא הגדרות מיטביות לכל " -"מקטע.\n" -"קטן משמעותו אזורים בעלי קוטר קטן מ 25 פיקסלים, גדול מתאים ביותר עבור גדול מ " -"100.\n" -"המצבים השטוחים מתעלמים ממבנים צרים לא חתוכים (בדומה ל powerlines) לשמר בניה " -"מחדש של פרטים בהירים ןלהימנע מגרדיאנטים." - -#: ../src/iop/highlights.c:1142 -msgid "" -"set strength of rebuilding in regions with all photosites clipped.\n" -"the mask buttons shows the effect that is added to already reconstructed " -"data." -msgstr "" -"קבע חוזק בניה מחדש באזורים בהם כל ה photosites חתוכים.\n" -"כפתור המיסוך מראה את האפקט המוסף לנתונים שכבר שוחזרו." - -#: ../src/iop/highlights.c:1152 -msgid "" -"add noise to visually blend the reconstructed areas\n" -"into the rest of the noisy image. useful at high ISO." -msgstr "" -"הוסף רעש על מנת למזג ויזואלית אזורים משוחזרים\n" -"לתוך התמונה הרועשת. שימושי בערכי ISO גבוהים." - -#: ../src/iop/highlights.c:1156 -msgid "" -"increase if magenta highlights don't get fully corrected\n" -"each new iteration brings a performance penalty." -msgstr "" -"הגבר אם פרטים בהירים בצבע מג'נטה לא מתוקנים באופן מלא\n" -"כל איטרציה חדשה מפחיתה ביצועים." - -#: ../src/iop/highlights.c:1161 -msgid "" -"increase if magenta highlights don't get fully corrected.\n" -"this may produce non-smooth boundaries between valid and clipped regions." -msgstr "" -"הגבר אם פרטים בהירים בצבע מג'נטה לא מתוקנים באופן מלא\n" -"עלול לייצר גבולות לא חלקים בין אזורים קטומים למלאים." - -#: ../src/iop/highlights.c:1165 -msgid "" -"increase to correct larger clipped areas.\n" -"large values bring huge performance penalties" -msgstr "" -"הגבר לתיקון אזורים קטומים רחבים יותר.\n" -"ערכים גבוהים מביאים ירידת ביצועים משמעותית" - -#: ../src/iop/highlights.c:1169 -msgid "this module only works with non-monochrome RAW and sRAW" -msgstr "מודול זה עובד רק עם RAW ו sRAW לא מונוכרומטיים" - -#: ../src/iop/highpass.c:72 -msgid "highpass" -msgstr "מעביר תדרים גבוהים" - -#: ../src/iop/highpass.c:77 -msgid "isolate high frequencies in the image" -msgstr "בודד תדרים גבוהים בתמונה" - -#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:135 -msgid "linear or non-linear, Lab, scene-referred" -msgstr "לינארי או לא לינארי, Lab, מיוחס סצנה" - -#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:136 ../src/iop/sharpen.c:96 -msgid "frequential, Lab" -msgstr "תדיר, Lab" - -#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:137 -msgid "special, Lab, scene-referred" -msgstr "מיוחד, LAb, מיוחס-סצנה" - -#: ../src/iop/highpass.c:383 -msgid "the sharpness of highpass filter" -msgstr "חדות הפילטר שמעביר תדרים גבוהים" - -#: ../src/iop/highpass.c:387 -msgid "the contrast of highpass filter" -msgstr "חדות הפילטר שמעביר תדרים גבוהים" - -#: ../src/iop/hotpixels.c:67 -msgid "hot pixels" -msgstr "פיקסלים חמים" - -#: ../src/iop/hotpixels.c:72 -msgid "remove abnormally bright pixels by dampening them with neighbors" -msgstr "הסר פיקסלים בהירים באופן לא סביר על ידי הנחתתם עם השכנים" - -#: ../src/iop/hotpixels.c:363 -#, c-format -msgid "fixed %d pixel" -msgid_plural "fixed %d pixels" -msgstr[0] "פיקסל %d תוקן" -msgstr[1] "פיקסלים %d תוקנו" - -#: ../src/iop/hotpixels.c:386 -msgid "lower threshold for hot pixel" -msgstr "סף תחתון עבור פיקסלים חמים" - -#: ../src/iop/hotpixels.c:390 -msgid "strength of hot pixel correction" -msgstr "חוזק תיקון פיקסלים חמים" - -#: ../src/iop/hotpixels.c:406 -msgid "" -"hot pixel correction\n" -"only works for raw images." -msgstr "" -"תיקון פיקסלים חמים\n" -"עובד רק עבור קבצי raw." - -#: ../src/iop/invert.c:92 ../src/iop/invert.c:427 -#, c-format -msgid "`%s' color matrix not found for 4bayer image" -msgstr "מטריצת צבע `%s' לא נמצאה עבור תמונת 4bayer" - -#: ../src/iop/invert.c:108 -msgid "invert" -msgstr "הפוך" - -#: ../src/iop/invert.c:113 -msgid "this module is deprecated. please use the negadoctor module instead." -msgstr "מודול זה מוצא משימוש. אנה השתמש במודול negadoctor במקום." - -#: ../src/iop/invert.c:118 -msgid "invert film negatives" -msgstr "הפוך נגטיבים" - -#: ../src/iop/invert.c:120 ../src/iop/invert.c:122 -msgid "linear, raw, display-referred" -msgstr "לינארי, raw, מיוחס-תצוגה" - -#. Here we could provide more for monochrome special cases. As no monochrome camera -#. has a bayer sensor we don't need g->RGB_to_CAM and g->CAM_to_RGB corrections -#: ../src/iop/invert.c:412 -msgid "brightness of film material" -msgstr "בהירות חומר הפילם" - -#: ../src/iop/invert.c:416 -msgid "color of film material" -msgstr "צבע חומר הפילם" - -#: ../src/iop/invert.c:500 ../src/iop/negadoctor.c:847 -msgid "pick color of film material from image" -msgstr "בחר צבע חומר הפילם מתוך תמונה" - -#: ../src/iop/invert.c:502 -msgid "select color of film material" -msgstr "בחר צבע חומר הפילם" - -#: ../src/iop/lens.cc:230 -msgid "lens correction" -msgstr "תיקון עדשה" - -#: ../src/iop/lens.cc:235 -msgid "vignette|chromatic aberrations|distortion" -msgstr "הצללה|אברציות כרומטיות|דיסטורציה" - -#: ../src/iop/lens.cc:240 -msgid "correct lenses optical flaws" -msgstr "תקן ליקויים אופטיים של עדשות" - -#: ../src/iop/lens.cc:243 -msgid "geometric and reconstruction, RGB" -msgstr "גיאומטרי ושחזור, RGB" - -#: ../src/iop/lens.cc:3148 -#, c-format -msgid "" -"maker:\t\t%s\n" -"model:\t\t%s%s\n" -"mount:\t\t%s\n" -"crop factor:\t%.1f" -msgstr "" -"יצרן:\t\t%s\n" -"מודל:\t\t%s%s\n" -"תושבת:\t\t%s\n" -"מקדם חיתוך:\t%.1f" - -#: ../src/iop/lens.cc:3396 -#, c-format -msgid "" -"maker:\t\t%s\n" -"model:\t\t%s\n" -"focal range:\t%s\n" -"aperture:\t%s\n" -"crop factor:\t%.1f\n" -"type:\t\t%s\n" -"mounts:\t%s" -msgstr "" -"יצרן:\t\t%s\n" -"מודל:\t\t%s\n" -"טווח מוקד:\t%s\n" -"מפתח\t%s\n" -"מקדם חיתוך:\t%.1f\n" -"סוג:\t\t%s\n" -"תושבות:\t%s" - -#: ../src/iop/lens.cc:3442 -msgid "focal length (mm)" -msgstr "אורך מוקד (מ\"מ)" - -#: ../src/iop/lens.cc:3468 -msgid "f/" -msgstr "f/" - -#: ../src/iop/lens.cc:3469 -msgid "f-number (aperture)" -msgstr "f-number (מפתח)" - -#: ../src/iop/lens.cc:3485 -msgid "d" -msgstr "d" - -#: ../src/iop/lens.cc:3486 -msgid "distance to subject" -msgstr "מרחק לנושא" - -#: ../src/iop/lens.cc:3645 -msgid "camera/lens not found" -msgstr "מצלמה/עדשה לא נמצאו" - -#: ../src/iop/lens.cc:3646 -msgid "" -"please select your lens manually\n" -"you might also want to check if your Lensfun database is up-to-date\n" -"by running lensfun-update-data" -msgstr "" -"אנה בחר את העדשה ידנית\n" -"יתכן וברצונך לבדוק אם מסד נתוני העדשה Lensfun מעודכן\n" -"על ידי הרצת lensfun_update_data" - -#: ../src/iop/lens.cc:3769 -msgid "camera model" -msgstr "מודל מצלמה" - -#: ../src/iop/lens.cc:3774 -msgid "find camera" -msgstr "מצא מצלמה" - -#: ../src/iop/lens.cc:3789 -msgid "find lens" -msgstr "מצא עדשה" - -#. scale -#: ../src/iop/lens.cc:3823 ../src/iop/vignette.c:968 -#: ../src/iop/watermark.c:1324 ../src/libs/export.c:1165 -msgid "scale" -msgstr "סקאלה" - -#: ../src/iop/lens.cc:3828 -msgid "auto scale" -msgstr "שנה גודל אוטומטית" - -#: ../src/iop/lens.cc:3832 -msgid "correct distortions or apply them" -msgstr "תקן עיוותים או הכנס אותם" - -#: ../src/iop/lens.cc:3839 -msgid "transversal chromatic aberration red" -msgstr "אברציה כרומטית רוחבית אדום" - -#: ../src/iop/lens.cc:3843 -msgid "transversal chromatic aberration blue" -msgstr "אברציה כרומטית רוחבית כחול" - -#: ../src/iop/lens.cc:3849 -msgid "use latest algorithm" -msgstr "השתמש באלגוריתם החדש ביותר" - -#: ../src/iop/lens.cc:3851 -msgid "" -"you're using an old version of the algorithm.\n" -"once enabled, you won't be able to\n" -"return back to old algorithm." -msgstr "" -"הנך עושה שימוש בגרסה ישנה של האלגוריתם.\n" -"ברגע שיופעל, לא ניתן יהיה\n" -"לחזור לאלגוריתם הישן." - -#: ../src/iop/lens.cc:3860 -msgid "tune the warp and chromatic aberration correction" -msgstr "תיקון של עיוות ושל אברציות כרומטיות" - -#: ../src/iop/lens.cc:3864 -msgid "tune the vignette correction" -msgstr "כוון תיקון הצללה" - -#: ../src/iop/lens.cc:3868 -msgid "tune the TCA red correction" -msgstr "כוון תיקון TCA אדום" - -#: ../src/iop/lens.cc:3872 -msgid "tune the TCA blue correction" -msgstr "כוון תיקון TCA כחול" - -#: ../src/iop/lens.cc:3879 -msgid "image scaling" -msgstr "הגדלת תמונה" - -#: ../src/iop/lens.cc:3891 -msgid "which corrections to apply" -msgstr "אילו תיקונים ליישם" - -#: ../src/iop/lens.cc:3904 -msgid "corrections done: " -msgstr "תיקונים שבוצעו: " - -#: ../src/iop/lens.cc:3906 -msgid "which corrections have actually been done" -msgstr "תיקונים שבוצעו בפועל" - -#: ../src/iop/levels.c:112 -msgid "this module is deprecated. please use the RGB levels module instead." -msgstr "מודול זה מוצא משימוש. אנה השתמש במודול רמות RGB במקום." - -#: ../src/iop/levels.c:117 ../src/iop/levels.c:630 ../src/iop/rgblevels.c:984 -#: ../src/iop/rgblevels.c:1014 -msgid "levels" -msgstr "רמות" - -#: ../src/iop/levels.c:137 -msgid "adjust black, white and mid-gray points" -msgstr "כוונן נקודות שחור, לבן ואפור בינוני" - -#: ../src/iop/levels.c:628 ../src/iop/rgblevels.c:1016 -msgid "" -"drag handles to set black, gray, and white points. operates on L channel." -msgstr "גרור ידיות לקביעת נקודות שחור, אפור, ולבן. מיושם על ערוץ לומיננס L." - -#: ../src/iop/levels.c:642 ../src/iop/rgblevels.c:1052 -msgid "apply auto levels" -msgstr "יישם קביעה אוטומטית של רמות" - -#: ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1027 -msgid "pick black point from image" -msgstr "בחר נקודה שחורה מתוך התמונה" - -#: ../src/iop/levels.c:650 ../src/iop/rgblevels.c:1033 -msgid "pick medium gray point from image" -msgstr "בחר נקודה אפורה בינונית מתוך התמונה" - -#: ../src/iop/levels.c:654 ../src/iop/rgblevels.c:1039 -msgid "pick white point from image" -msgstr "בחר נקודה לבנה מתוך התמונה" - -#: ../src/iop/levels.c:667 ../src/iop/rgblevels.c:936 -#: ../src/iop/rgblevels.c:1026 -msgid "black" -msgstr "שחור" - -#: ../src/iop/levels.c:668 -msgid "black percentile" -msgstr "אחוזון שחור" - -#: ../src/iop/levels.c:672 -msgid "gray percentile" -msgstr "אחוזון אפור" - -#: ../src/iop/levels.c:675 ../src/iop/rgblevels.c:938 -#: ../src/iop/rgblevels.c:1038 -msgid "white" -msgstr "לבן" - -#: ../src/iop/levels.c:676 -msgid "white percentile" -msgstr "אחוזון לבן" - -#: ../src/iop/liquify.c:291 -msgid "liquify" -msgstr "נזל" - -#: ../src/iop/liquify.c:296 -msgid "distort parts of the image" -msgstr "עוות חלק מהתמונה" - -#: ../src/iop/liquify.c:2933 -msgid "click to edit nodes" -msgstr "לחץ להוסיף צמתים" - -#: ../src/iop/liquify.c:3636 -msgid "" -"<b>add point</b>: click and drag\n" -"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " -"ctrl+scroll" -msgstr "" -"<b>הוסף נקודה</b>: ctrl+גרור\n" -"<b>גודל</b>: גלול, <b>חוזק</b>: shift+גלול, <b>כיוון</b>: ctrl+גלול" - -#: ../src/iop/liquify.c:3639 -msgid "" -"<b>add line</b>: click\n" -"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " -"ctrl+scroll" -msgstr "" -"<b>הוסף קו</b>: קליק\n" -"<b>גודל</b>: גלול - <b>חוזק</b>: shift+גלול - <b>כיוון</b>: ctrl+גלול" - -#: ../src/iop/liquify.c:3642 -msgid "" -"<b>add curve</b>: click\n" -"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " -"ctrl+scroll" -msgstr "" -"<b>גודל</b>: גלול, <b>קושיות</b>: shift+גלול\n" -"<b>אטימות</b>: ctrl+גלול" - -#: ../src/iop/liquify.c:3693 -msgid "" -"use a tool to add warps\n" -"<b>remove a warp</b>: right-click" -msgstr "" -"השתמש בכלי להוסיף פיתולים.\n" -"<b>הסר פיתול</b>: קליק ימני" - -#: ../src/iop/liquify.c:3696 -msgid "warps|nodes count:" -msgstr "ספירת פיתולים|צמתים:" - -#: ../src/iop/liquify.c:3705 -msgid "edit, add and delete nodes" -msgstr "ערוך, הוסף ומחק צמתים" - -#: ../src/iop/liquify.c:3710 ../src/iop/liquify.c:3716 -#: ../src/iop/liquify.c:3722 ../src/iop/retouch.c:2238 -#: ../src/iop/retouch.c:2242 ../src/iop/retouch.c:2246 -#: ../src/iop/retouch.c:2250 ../src/iop/spots.c:883 ../src/iop/spots.c:888 -#: ../src/iop/spots.c:893 ../src/libs/masks.c:1816 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1834 ../src/libs/masks.c:1843 ../src/libs/masks.c:1852 -msgid "shapes" -msgstr "צורות" - -#: ../src/iop/liquify.c:3711 -msgid "draw curves" -msgstr "צייר עקומות" - -#: ../src/iop/liquify.c:3711 -msgid "draw multiple curves" -msgstr "צייר עקומות מרובות" - -#: ../src/iop/liquify.c:3717 -msgid "draw lines" -msgstr "צייר קווים" - -#: ../src/iop/liquify.c:3717 -msgid "draw multiple lines" -msgstr "צייר קווים מרובים" - -#: ../src/iop/liquify.c:3723 -msgid "draw points" -msgstr "צייר נקודות" - -#: ../src/iop/liquify.c:3723 -msgid "draw multiple points" -msgstr "צייר נקודות מרובות" - -#: ../src/iop/liquify.c:3729 -msgid "" -"<b>add node</b>: ctrl+click - <b>remove path</b>: right click\n" -"<b>toggle line/curve</b>: ctrl+alt+click" -msgstr "" -"<b>הוסף צומת</b>: ctrl+קליק, <b>הסר נתיב</b>: קליק-ימני\n" -"<b>החלף קו/עקום</b>: ctrl+alt+קליק" - -#: ../src/iop/liquify.c:3732 -msgid "" -"<b>move</b>: click and drag - <b>show/hide feathering controls</b>: click\n" -"<b>autosmooth, cusp, smooth, symmetrical</b>: ctrl+click - <b>remove</b>: " -"right click" -msgstr "" -"<b>להזיז</b>: הקלק וגרור - <b>הצג/החבא פקדי נגיעת נוצה</b>: קליק\n" -"<b>החלקה אוטומטית, חרמש, החלקה, סימטרי</b>: ctrl+קליק - <b>הסר</b>: קליק ימני" - -#: ../src/iop/liquify.c:3736 ../src/iop/liquify.c:3738 -msgid "<b>shape of path</b>: drag" -msgstr "<b>עצב לנתיב</b>: גרור" - -#: ../src/iop/liquify.c:3740 -msgid "<b>radius</b>: drag" -msgstr "<b>רדיוס</b>: גרור" - -#: ../src/iop/liquify.c:3742 -msgid "<b>hardness (center)</b>: drag" -msgstr "<b>קושיות (מרכז)</b>: גרור" - -#: ../src/iop/liquify.c:3744 -msgid "<b>hardness (feather)</b>: drag" -msgstr "<b>קושיות (נוצה)</b>: גרור" - -#: ../src/iop/liquify.c:3746 -msgid "" -"<b>strength</b>: drag\n" -"<b>linear, grow, and shrink</b>: ctrl+click" -msgstr "" -"<b>חוזק</b>: גרור\n" -"<b>לינארי, הגדל, וקווץ</b>: ctrl+קליק" - -#: ../src/iop/lowlight.c:86 -msgid "lowlight vision" -msgstr "ראיה בתאורה חלשה" - -#: ../src/iop/lowlight.c:91 -msgid "simulate human night vision" -msgstr "הדמה ראיית לילה אנושית" - -#: ../src/iop/lowlight.c:94 -msgid "linear, XYZ" -msgstr "לינארי, XYZ" - -#: ../src/iop/lowlight.c:341 -msgid "indoor bright" -msgstr "תאורת פנים בהירה" - -#: ../src/iop/lowlight.c:359 -msgid "indoor dim" -msgstr "תאורת פנים עמומה" - -#: ../src/iop/lowlight.c:377 -msgid "indoor dark" -msgstr "תאורת פנים חשוכה" - -#: ../src/iop/lowlight.c:395 -msgid "twilight" -msgstr "דמדומים" - -#: ../src/iop/lowlight.c:413 -msgid "night street lit" -msgstr "תאורת רחוב מואר בלילה" - -#: ../src/iop/lowlight.c:431 -msgid "night street" -msgstr "רחוב בלילה" - -#: ../src/iop/lowlight.c:449 -msgid "night street dark" -msgstr "רחוב חשוך בלילה" - -#: ../src/iop/lowlight.c:468 -msgid "night" -msgstr "לילה" - -#: ../src/iop/lowlight.c:641 -msgid "dark" -msgstr "חשוך" - -#: ../src/iop/lowlight.c:649 -msgid "bright" -msgstr "מואר" - -#: ../src/iop/lowlight.c:658 -msgid "day vision" -msgstr "ראיית יום" - -#: ../src/iop/lowlight.c:663 -msgid "night vision" -msgstr "ראיית לילה" - -#: ../src/iop/lowlight.c:835 -msgid "blueness in shadows" -msgstr "כחלחלות בצללים" - -#: ../src/iop/lowpass.c:128 -msgid "lowpass" -msgstr "מעביר תדרים נמוכים" - -#: ../src/iop/lowpass.c:133 -msgid "isolate low frequencies in the image" -msgstr "בודד תדרים נמוכים בתמונה" - -#: ../src/iop/lowpass.c:565 -msgid "local contrast mask" -msgstr "מסיכת ניגודיות מקומית" - -#: ../src/iop/lowpass.c:590 -msgid "radius of gaussian/bilateral blur" -msgstr "רדיוס טשטוש הגאוסיין/בילטרלי" - -#: ../src/iop/lowpass.c:591 -msgid "contrast of lowpass filter" -msgstr "ניגודיות פילטר מעביר תדרים נמוכים" - -#: ../src/iop/lowpass.c:592 -msgid "brightness adjustment of lowpass filter" -msgstr "כוונון עצמת תאורה לפילטר מעביר תדרים נמוכים" - -#: ../src/iop/lowpass.c:593 -msgid "color saturation of lowpass filter" -msgstr "כוונון צבע לפילטר מעביר תדרים נמוכים" - -#: ../src/iop/lowpass.c:594 -msgid "which filter to use for blurring" -msgstr "באיזה פילטר להשתמש לטשטוש" - -#: ../src/iop/lut3d.c:135 -msgid "LUT 3D" -msgstr "LUT 3D" - -#: ../src/iop/lut3d.c:140 -msgid "perform color space corrections and apply look" -msgstr "בצע תיקונים למרחב הצבע ויישם מראה" - -#: ../src/iop/lut3d.c:143 -msgid "defined by profile, RGB" -msgstr "מוגדר על ידי פרופיל, RGB" - -#: ../src/iop/lut3d.c:468 -msgid "error allocating buffer for gmz LUT" -msgstr "שגיאה בהקצאת זיכרון לטובת gmz LUT" - -#: ../src/iop/lut3d.c:494 -#, c-format -msgid "invalid png file %s" -msgstr "קובץ png לא חוקי %s" - -#: ../src/iop/lut3d.c:502 -#, c-format -msgid "png bit-depth %d not supported" -msgstr "עומק צבע %d של png לא נתמך" - -#: ../src/iop/lut3d.c:516 ../src/iop/lut3d.c:526 -#, c-format -msgid "invalid level in png file %d %d" -msgstr "רמה לא חוקית עבור קובץ png %d %d" - -#: ../src/iop/lut3d.c:521 -msgid "this darktable build is not compatible with compressed CLUT" -msgstr "בניה זו של darktable אינה תואמת עם CLUT דחוס" - -#: ../src/iop/lut3d.c:538 ../src/iop/lut3d.c:788 -#, c-format -msgid "error - LUT 3D size %d exceeds the maximum supported" -msgstr "שגיאה - גודל LUT 3D %d חורג מהמקסימום הנתמך" - -#: ../src/iop/lut3d.c:550 -msgid "error allocating buffer for png LUT" -msgstr "שגיאה בהקצאת זיכרון לטובת png LUT" - -#: ../src/iop/lut3d.c:558 -#, c-format -msgid "error - could not read png image %s" -msgstr "שגיאה - לא ניתן לקרוא קובץ png %s" - -#: ../src/iop/lut3d.c:568 -msgid "error - allocating buffer for png LUT" -msgstr "שגיאה - הקצאת זיכרון לטובת png LUT" - -#: ../src/iop/lut3d.c:743 -#, c-format -msgid "error - invalid cube file: %s" -msgstr "שגיאה: קובץ cube לא חוקי %s" - -#: ../src/iop/lut3d.c:757 -msgid "DOMAIN MIN <> 0.0 is not supported" -msgstr "DOMAIN MIN <> 0.0 לא נתמך" - -#: ../src/iop/lut3d.c:768 -msgid "DOMAIN MAX <> 1.0 is not supported" -msgstr "DOMAIN MAX <> 1.0 לא נתמך" - -#: ../src/iop/lut3d.c:777 -msgid "1D cube LUT is not supported" -msgstr "[1D cube LUT לא נתמך" - -#: ../src/iop/lut3d.c:799 -msgid "error - allocating buffer for cube LUT" -msgstr "שגיאה - הקצאת זיכרון ל cube LUT" - -#: ../src/iop/lut3d.c:810 -msgid "error - cube LUT size is not defined" -msgstr "שגיאה - גודל cube LUT לא מוגדר" - -#: ../src/iop/lut3d.c:821 -#, c-format -msgid "error - cube LUT invalid number line %d" -msgstr "שגיאה - מספר שורה cube LUT לא חוקי %d" - -#: ../src/iop/lut3d.c:837 -#, c-format -msgid "error - cube LUT lines number %d is not correct, should be %d" -msgstr "שגיאה - מספר שורות LUT %d לא נכון, צריך להיות %d" - -#: ../src/iop/lut3d.c:847 -#, c-format -msgid "warning - cube LUT has %d values out of range [0,1]" -msgstr "אזהרה - ל LUT קובי %d ערכים מחוץ לתחום [0,1]" - -#: ../src/iop/lut3d.c:872 -#, c-format -msgid "error - invalid 3dl file: %s" -msgstr "שגיאה: קובץ 3dl לא חוקי %s" - -#: ../src/iop/lut3d.c:893 -#, c-format -msgid "error - the maximum shaper LUT value %d is too low" -msgstr "שגיאה - ערך מקסימלי של shaper LUT %d נמוך מדי" - -#: ../src/iop/lut3d.c:904 -msgid "error - allocating buffer for 3dl LUT" -msgstr "שגיאה - הקצאת זיכרון לטובת 3dl LUT" - -#: ../src/iop/lut3d.c:917 -msgid "error - 3dl LUT size is not defined" -msgstr "שגיאה - גודל 3dl LUT לא מוגדר" - -#: ../src/iop/lut3d.c:945 -msgid "error - 3dl LUT lines number is not correct" -msgstr "שגיאה - מספר שורות 3dl LUT לא נכון" - -#: ../src/iop/lut3d.c:961 -msgid "error - the maximum LUT value does not match any valid bit depth" -msgstr "שגיאה - ערך מקסימלי של LUT לא מתאים לשום תחום דינמי תקף" - -#: ../src/iop/lut3d.c:1539 -msgid "LUT root folder not defined" -msgstr "תיקיית השורש של LUT לא מוגדרת" - -#: ../src/iop/lut3d.c:1545 -msgid "select LUT file" -msgstr "בחר קובץ LUT" - -#: ../src/iop/lut3d.c:1546 -msgid "_select" -msgstr "_select" - -#: ../src/iop/lut3d.c:1566 -msgid "hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" -msgstr "hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" - -#: ../src/iop/lut3d.c:1568 -msgid "hald CLUT (png) or 3D LUT (cube or 3dl)" -msgstr "hald CLUT (png) or 3D LUT (cube or 3dl)" - -#: ../src/iop/lut3d.c:1592 -msgid "select file outside LUT root folder is not allowed" -msgstr "בחירת קובץ מחוץ לתיקיית השורש של LUT אסורה" - -#: ../src/iop/lut3d.c:1663 -msgid "" -"select a png (haldclut), a cube, a 3dl or a gmz (compressed LUT) file " -"CAUTION: 3D LUT folder must be set in preferences/processing before choosing " -"the LUT file" -msgstr "" -"בחר קובץ png (haldclut), cube, 3dl, או gmz (דחוס LUT) זהירות: תיקיית 3D LUT " -"חייבת להיקבע ב העדפות/עיבוד לפני בחירת קובץ LUT" - -#: ../src/iop/lut3d.c:1667 -msgid "" -"select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be " -"set in preferences/processing before choosing the LUT file" -msgstr "" -"בחר קובץ png (haldclut), cube, 3dl, זהירות: תיקיית 3D LUT חייבת להיקבע ב " -"העדפות/עיבוד לפני בחירת קובץ LUT" - -#: ../src/iop/lut3d.c:1679 -msgid "" -"the file path (relative to LUT folder) is saved with image along with the " -"LUT data if it's a compressed LUT (gmz)" -msgstr "" -"הנתיב לקובץ (יחסית לתיקיית ה LUT) נשמר עם התמונה יחד עם נתוני ה LUT במידה " -"וזה LUT דחוס (gmz)" - -#: ../src/iop/lut3d.c:1682 -msgid "" -"the file path (relative to LUT folder) is saved with image (and not the LUT " -"data themselves)" -msgstr "" -"הנתיב לקובץ (יחסית לתיקיית ה LUT) נשמר עם התמונה (ולא נתוני ה LUT עצמם)" - -#: ../src/iop/lut3d.c:1691 -msgid "enter LUT name" -msgstr "הכנס שם ל LUT" - -#: ../src/iop/lut3d.c:1712 -msgid "select the LUT" -msgstr "בחר את ה LUT" - -#: ../src/iop/lut3d.c:1725 -msgid "select the color space in which the LUT has to be applied" -msgstr "בחר את מרחב הצבע בו ה LUT ייושם" - -#: ../src/iop/lut3d.c:1727 -msgid "interpolation" -msgstr "אינטרפולציה" - -#: ../src/iop/lut3d.c:1728 -msgid "select the interpolation method" -msgstr "בחר שיטת אינטרפולציה" - -#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:62 -msgid "mask manager" -msgstr "מנהל מסיכות" - -#: ../src/iop/monochrome.c:97 -msgid "quickly convert an image to black & white using a variable color filter" -msgstr "המר תמונה לשחור לבן במהירות על ידי שימוש בפילטר צבע משתנה" - -#: ../src/iop/monochrome.c:127 -msgid "red filter" -msgstr "פילטר אדום" - -#: ../src/iop/monochrome.c:546 -msgid "drag and scroll mouse wheel to adjust the virtual color filter" -msgstr "גרור וגלול עכבר לכוון פילטר צבע וירטואלי" - -#: ../src/iop/monochrome.c:562 -msgid "how much to keep highlights" -msgstr "באיזו מידה לשמר פרטים בהירים" - -#: ../src/iop/negadoctor.c:135 -msgid "negadoctor" -msgstr "negadoctor" - -#: ../src/iop/negadoctor.c:140 -msgid "film|invert|negative|scan" -msgstr "פילים|הפך|נגטיב|סרוק" - -#: ../src/iop/negadoctor.c:145 -msgid "invert film negative scans and simulate printing on paper" -msgstr "הפך סריקות של נגטיבים והדמה הדפסה על נייר" - -#: ../src/iop/negadoctor.c:469 -msgid "D min" -msgstr "D min" - -#: ../src/iop/negadoctor.c:475 ../src/iop/negadoctor.c:856 -msgid "D min red component" -msgstr "D מינימום רכיב אדום" - -#. Page FILM PROPERTIES -#: ../src/iop/negadoctor.c:832 -msgid "film properties" -msgstr "תכונות פילם" - -#. Dmin -#: ../src/iop/negadoctor.c:836 -msgctxt "section" -msgid "color of the film base" -msgstr "צבע חומר הפילם" - -#: ../src/iop/negadoctor.c:842 -msgid "select color of film material from a swatch" -msgstr "בחר צבע חומר הפילם מתוך swatch" - -#: ../src/iop/negadoctor.c:848 -msgid "film material" -msgstr "חומר הפילם" - -#: ../src/iop/negadoctor.c:857 ../src/iop/negadoctor.c:867 -#: ../src/iop/negadoctor.c:877 -msgid "" -"adjust the color and shade of the film transparent base.\n" -"this value depends on the film material, \n" -"the chemical fog produced while developing the film,\n" -"and the scanner white balance." -msgstr "" -"התאם את הצבע והכהות של הפילם השקוף הבסיסי.\n" -"ערך זה תלוי בחומר הפילם,\n" -"בערפול הכימי המיוצר בעת הפיתוח,\n" -"ואיזון הלבן של הסורק." - -#: ../src/iop/negadoctor.c:866 -msgid "D min green component" -msgstr "D מינימום רכיב ירוק" - -#: ../src/iop/negadoctor.c:876 -msgid "D min blue component" -msgstr "D מינימום רכיב כחול" - -#. D max and scanner bias -#: ../src/iop/negadoctor.c:884 -msgctxt "section" -msgid "dynamic range of the film" -msgstr "תחום דינאמי של הפילם" - -#: ../src/iop/negadoctor.c:888 -msgid "" -"maximum density of the film, corresponding to white after inversion.\n" -"this value depends on the film specifications, the developing process,\n" -"the dynamic range of the scene and the scanner exposure settings." -msgstr "" -"הצפיפות המקסימלית של הפילם, בהתאמה ללבן אחרי היפוך.\n" -"ערך זה תלוי במפרט הפילם, תהליך הפיתוח,\n" -"התחום הדינמי של הסצנה והגדרות החשיפה של הסורק." - -#: ../src/iop/negadoctor.c:892 -msgctxt "section" -msgid "scanner exposure settings" -msgstr "הגדרות חשיפה לסורק" - -#: ../src/iop/negadoctor.c:896 -msgid "" -"correct the exposure of the scanner, for all RGB channels,\n" -"before the inversion, so blacks are neither clipped or too pale." -msgstr "" -"תקן את החשיפה של הסורק, עבור כל ערוצי ה RGB,\n" -"לפני ההיפוך, כך שהשחורים לא חתוכים ולא חיוורים מדי." - -#. WB shadows -#: ../src/iop/negadoctor.c:903 -msgctxt "section" -msgid "shadows color cast" -msgstr "הטלת צבע בצללים" - -#: ../src/iop/negadoctor.c:909 -msgid "select color of shadows from a swatch" -msgstr "בחר צבע לצללים מתוך ה swatch" - -#: ../src/iop/negadoctor.c:914 -msgid "pick shadows color from image" -msgstr "בחר צבע לצללים מהתמונה" - -#: ../src/iop/negadoctor.c:920 -msgid "shadows red offset" -msgstr "הסחת אדום בצללים" - -#: ../src/iop/negadoctor.c:921 ../src/iop/negadoctor.c:928 -#: ../src/iop/negadoctor.c:935 -msgid "" -"correct the color cast in shadows so blacks are\n" -"truly achromatic. Setting this value before\n" -"the highlights illuminant white balance will help\n" -"recovering the global white balance in difficult cases." -msgstr "" -"תקן את הטלת הצבע בצללים כך ששחורים\n" -"יהיו באמת אכרומטים. קביעת ערך זה לפני\n" -"איזון הלבן של מקור התאורה בבהירים יעזור\n" -"לשחזר את את איזון הלבן הגלובלי במקרים קשים." - -#: ../src/iop/negadoctor.c:927 -msgid "shadows green offset" -msgstr "הסחת ירוק בצללים" - -#: ../src/iop/negadoctor.c:934 -msgid "shadows blue offset" -msgstr "הסחת כחול בצללים" - -#. WB highlights -#: ../src/iop/negadoctor.c:941 -msgctxt "section" -msgid "highlights white balance" -msgstr "איזון לבן בבהירים" - -#: ../src/iop/negadoctor.c:947 -msgid "select color of illuminant from a swatch" -msgstr "בחר צבע מקור האור מתוך swatch" - -#: ../src/iop/negadoctor.c:952 -msgid "pick illuminant color from image" -msgstr "בחר צבע מקור האור מתוך התמונה" - -#: ../src/iop/negadoctor.c:958 -msgid "illuminant red gain" -msgstr "הגבר אדום של מקור האור" - -#: ../src/iop/negadoctor.c:959 ../src/iop/negadoctor.c:966 -#: ../src/iop/negadoctor.c:973 -msgid "" -"correct the color of the illuminant so whites are\n" -"truly achromatic. Setting this value after\n" -"the shadows color cast will help\n" -"recovering the global white balance in difficult cases." -msgstr "" -"תקן את הצבע של מקור התאורה כך שהלבנים\n" -"יהיו באמת אכרומטים. קביעת ערך זה אחרי\n" -"הטלת הצבע בצללים יעזור\n" -"לשחזר את את איזון הלבן הגלובלי במקרים קשים." - -#: ../src/iop/negadoctor.c:965 -msgid "illuminant green gain" -msgstr "הגבר ירוק במקור התאורה" - -#: ../src/iop/negadoctor.c:972 -msgid "illuminant blue gain" -msgstr "הגבר כחול במקור התאורה" - -#. Page PRINT PROPERTIES -#: ../src/iop/negadoctor.c:979 -msgid "print properties" -msgstr "תכונות הדפסה" - -#. print corrections -#: ../src/iop/negadoctor.c:982 -msgctxt "section" -msgid "virtual paper properties" -msgstr "תכונות ניר ווירטואלי" - -#: ../src/iop/negadoctor.c:988 -msgid "" -"correct the density of black after the inversion,\n" -"to adjust the global contrast while avoiding clipping shadows." -msgstr "" -"תקן צפיפות שחור לאחר ההיפוך,\n" -"להמנע מחיתוך צללים בכוונון הקונטרסט הגלובלי." - -#: ../src/iop/negadoctor.c:993 -msgid "" -"select the grade of the virtual paper, which is actually\n" -"equivalent to applying a gamma. it compensates the film D max\n" -"and recovers the contrast. use a high grade for high D max." -msgstr "" -"בחר את איכות הניר הוירטואלי, שזה בעצם\n" -"שווה ערך ליישום גאמא. זה מפצה את D max של הפילם\n" -"ומשחזר את הקונטרסט.השתמש באיכות גבוהה עבור D max גבוהה." - -#: ../src/iop/negadoctor.c:1001 -msgid "" -"gradually compress specular highlights past this value\n" -"to avoid clipping while pushing the exposure for mid-tones.\n" -"this somewhat reproduces the behavior of matte paper." -msgstr "" -"דחס בהדרגתיות פרטים מבריקים מעבר לערך זה\n" -"על מנת להימנע מחיתוך כאשר דוחפים את החשיפה של הטונים הבינוניים.\n" -"זה משחזר במידת מה התנהגות של ניר מט." - -#: ../src/iop/negadoctor.c:1005 -msgctxt "section" -msgid "virtual print emulation" -msgstr "אמולציית הדפסה ווירטואלית" - -#: ../src/iop/negadoctor.c:1012 -msgid "" -"correct the printing exposure after inversion to adjust\n" -"the global contrast and avoid clipping highlights." -msgstr "" -"תקן את חשיפת ההדפסה לאחר ההיפוך לכוונון\n" -"הקונטרסט הגלובלי ולהימנע מחיתוך הבהירים." - -#: ../src/iop/negadoctor.c:1020 -msgid "toggle on or off the color controls" -msgstr "מתג בקרי צבע" - -#: ../src/iop/nlmeans.c:84 -msgid "astrophoto denoise" -msgstr "סילוק רעש לצילום אסטרונומי" - -#: ../src/iop/nlmeans.c:89 -msgid "denoise (non-local means)" -msgstr "סילוק רעש (אמצעים לא מקומיים)" - -#: ../src/iop/nlmeans.c:94 -msgid "apply a poisson noise removal best suited for astrophotography" -msgstr "יישם סילוק רעש פואסוני שמתאים במיוחד לצילום אסטרונומי" - -#: ../src/iop/nlmeans.c:459 -msgid "radius of the patches to match" -msgstr "רדיוס הטלאים להתאמה" - -#: ../src/iop/nlmeans.c:467 -msgid "how much to smooth brightness" -msgstr "באיזו מידה להחליק בהירות" - -#: ../src/iop/nlmeans.c:470 -msgid "how much to smooth colors" -msgstr "באיזו מידה להחליק צבעים" - -#. * let's fill the encapsulating widgets -#. preview mode -#. color scheme -#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2419 -#: ../src/views/darkroom.c:2437 ../src/views/darkroom.c:2444 -#: ../src/views/darkroom.c:2454 ../src/views/darkroom.c:2471 -msgid "overexposed" -msgstr "חשוף יתר" - -#: ../src/iop/overexposed.c:130 ../src/iop/overexposed.c:360 -msgid "module overexposed failed in buffer allocation" -msgstr "מודול חשיפת יתר כשל בהקצאת זיכרון" - -#: ../src/iop/overexposed.c:156 ../src/iop/overexposed.c:370 -msgid "module overexposed failed in color conversion" -msgstr "מודול חשיפת יתר כשל בהמרת צבע" - -#: ../src/iop/profile_gamma.c:96 -msgid "unbreak input profile" -msgstr "אחד פרופיל קלט" - -#: ../src/iop/profile_gamma.c:101 -msgid "correct input color profiles meant to be applied on non-linear RGB" -msgstr "תקן פרופילי צבע קלט המיועדים ליישום על RGB לא לינארי" - -#: ../src/iop/profile_gamma.c:136 -msgid "16 EV dynamic range (generic)" -msgstr "16 EV תחום דינאמי (generic)" - -#: ../src/iop/profile_gamma.c:142 -msgid "14 EV dynamic range (generic)" -msgstr "14 EV תחום דינאמי (generic)" - -#: ../src/iop/profile_gamma.c:148 -msgid "12 EV dynamic range (generic)" -msgstr "12 EV תחום דינאמי (generic)" - -#: ../src/iop/profile_gamma.c:154 -msgid "10 EV dynamic range (generic)" -msgstr "10 EV תחום דינאמי (generic)" - -#: ../src/iop/profile_gamma.c:160 -msgid "08 EV dynamic range (generic)" -msgstr "08 EV תחום דינאמי (generic)" - -#: ../src/iop/profile_gamma.c:623 -msgid "linear part" -msgstr "חלק לינארי" - -#: ../src/iop/profile_gamma.c:627 -msgid "gamma exponential factor" -msgstr "מקדם מעריכי גאמה" - -#: ../src/iop/profile_gamma.c:638 -msgid "adjust to match the average luma of the subject" -msgstr "כוונן להתאמת הלומה הממוצעת לנושא הצילום" - -#: ../src/iop/profile_gamma.c:644 -msgid "" -"number of stops between middle gray and pure black\n" -"this is a reading a light meter would give you on the scene" -msgstr "" -"מספר הסטופים בין אפור אמצע לשחור מוחלט\n" -"זו קריאה שמד אור היה נותן בסצנה" - -#: ../src/iop/profile_gamma.c:650 -msgid "" -"number of stops between pure black and pure white\n" -"this is a reading a light meter would give you on the scene" -msgstr "" -"מספר הסטופים בין שחור מוחלט ללבן מוחלט\n" -"זו קריאה שמד אור היה נותן בשטח" - -#: ../src/iop/profile_gamma.c:652 -msgctxt "section" -msgid "optimize automatically" -msgstr "מטב אוטומטית" - -#: ../src/iop/profile_gamma.c:656 -msgid "" -"enlarge or shrink the computed dynamic range\n" -"this is useful when noise perturbates the measurements" -msgstr "" -"הרחב או כווץ את התחום הדינאמי המחושב\n" -"זה מועיל כאשר רעש מפריע למדידה" - -#: ../src/iop/profile_gamma.c:660 -msgid "make an optimization with some guessing" -msgstr "בצע אופטימיזציה עם ניחוש מסוים" - -#: ../src/iop/profile_gamma.c:669 -msgid "tone mapping method" -msgstr "שיטת מיפוי טונים" - -#: ../src/iop/rawdenoise.c:124 -msgid "raw denoise" -msgstr "סילוק רעש raw" - -#: ../src/iop/rawdenoise.c:129 -msgid "denoise the raw picture early in the pipeline" -msgstr "סלק רעשים מקובץ raw מוקדת ב פייפליין" - -#: ../src/iop/rawdenoise.c:939 -msgid "" -"raw denoising\n" -"only works for raw images." -msgstr "" -"סילוק רעש raw\n" -"עובד רק עבור תמונות raw." - -#. * let's fill the encapsulating widgets -#. mode of operation -#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2387 ../src/views/darkroom.c:2393 -#: ../src/views/darkroom.c:2406 -msgid "raw overexposed" -msgstr "קובץ ה raw בחשיפת יתר" - -#: ../src/iop/rawprepare.c:99 -msgctxt "modulename" -msgid "raw black/white point" -msgstr "נקודות שחור/לבן raw" - -#: ../src/iop/rawprepare.c:156 -msgid "" -"sets technical specificities of the raw sensor.\n" -"touch with great care!" -msgstr "" -"מגדיר פרטים טכניים של חיישן גולמי\n" -"שנה בזהירות!" - -#: ../src/iop/rawprepare.c:168 -msgid "passthrough" -msgstr "העבר" - -#: ../src/iop/rawprepare.c:655 -msgid "invalid crop parameters" -msgstr "פרמטרים חיתוך לא חוקיים" - -#: ../src/iop/rawprepare.c:656 -msgid "" -"please reset to defaults, update your preset or set to something correct" -msgstr "אנה אתחל לערכי ברירת המחדל, עדכן את הפריסט או קבע לערך חוקי" - -#: ../src/iop/rawprepare.c:922 -msgid "black level 0" -msgstr "רמת שחור 0" - -#: ../src/iop/rawprepare.c:923 -msgid "black level 1" -msgstr "רמת שחור 1" - -#: ../src/iop/rawprepare.c:924 -msgid "black level 2" -msgstr "רמת שחור 2" - -#: ../src/iop/rawprepare.c:925 -msgid "black level 3" -msgstr "רמת שחור 3" - -#: ../src/iop/rawprepare.c:952 -msgid "raw flat field correction to compensate for lens shading" -msgstr "תיקון תאורת שדה לפיצוי הצללת עדשה" - -#: ../src/iop/rawprepare.c:957 -msgctxt "section" -msgid "crop" -msgstr "חיתוך" - -#: ../src/iop/rawprepare.c:960 -msgid "crop left border" -msgstr "חתוך גבול שמאלי" - -#: ../src/iop/rawprepare.c:964 -msgid "crop top border" -msgstr "חתוך גבול עליון" - -#: ../src/iop/rawprepare.c:968 -msgid "crop right border" -msgstr "חתוך גבול ימני" - -#: ../src/iop/rawprepare.c:972 -msgid "crop bottom border" -msgstr "חתוך גבול תחתון" - -#: ../src/iop/rawprepare.c:981 -msgid "" -"raw black/white point correction\n" -"only works for the sensors that need it." -msgstr "" -"תיקון נקודות שחור/לבן raw\n" -"עובד רק על חיישנים שצריכים את זה." - -#: ../src/iop/relight.c:53 -msgid "fill-light 0.25EV with 4 zones" -msgstr "מילוי-אור 0.25EV עם 4 איזורים" - -#: ../src/iop/relight.c:57 -msgid "fill-shadow -0.25EV with 4 zones" -msgstr "מילוי-צללים 0.25EV- עם 4 איזורים" - -#: ../src/iop/relight.c:86 -msgid "fill light" -msgstr "מילוי-אור" - -#: ../src/iop/relight.c:96 ../src/iop/zonesystem.c:122 -msgid "" -"this module is deprecated. please use the tone equalizer module instead." -msgstr "מודול זה מוצא משימוש. אנה השתמש באקולייזר הטונים במקום." - -#: ../src/iop/relight.c:263 -msgid "the fill-light in EV" -msgstr "ערך מילוי-אור ב EV" - -#: ../src/iop/relight.c:272 -msgid "" -"select the center of fill-light\n" -"ctrl+click to select an area" -msgstr "" -"בחר מרכז מילוי-אור\n" -"קליק+ctrl לבחירת אזור" - -#: ../src/iop/relight.c:276 -msgid "toggle tool for picking median lightness in image" -msgstr "מתג כלי לבחירת בהירות מדיין בתמונה" - -#: ../src/iop/relight.c:279 ../src/libs/export.c:1131 -#: ../src/libs/metadata_view.c:147 ../src/libs/print_settings.c:2537 -msgid "width" -msgstr "רוחב" - -#: ../src/iop/relight.c:280 -msgid "width of fill-light area defined in zones" -msgstr "רוחב שטח מילוי-אור המוגדר באזורים" - -#: ../src/iop/retouch.c:197 -msgid "retouch" -msgstr "ריטוש" - -#: ../src/iop/retouch.c:202 -msgid "split-frequency|healing|cloning|stamp" -msgstr "פיצול תדר|הבראה|שכפול|הטבעה" - -#: ../src/iop/retouch.c:208 -msgid "remove and clone spots, perform split-frequency skin editing" -msgstr "הסר ושכפל כתמים, בצע עריכה של סקין פיצול תדר" - -#: ../src/iop/retouch.c:211 -msgid "geometric and frequential, RGB" -msgstr "גיאומטרי ותדיר, RGB" - -#: ../src/iop/retouch.c:1538 -msgid "cannot display scales when the blending mask is displayed" -msgstr "לא ניתן להציג סקאלות כאשר מסיכת ערבוב מוצגת" - -#: ../src/iop/retouch.c:1861 ../src/iop/retouch.c:1863 -#: ../src/iop/retouch.c:1865 ../src/iop/retouch.c:1867 -#, c-format -msgid "default tool changed to %s" -msgstr "כלי ברירת מחדל שונה ל %s" - -#: ../src/iop/retouch.c:1861 -msgid "cloning" -msgstr "שיכפול" - -#: ../src/iop/retouch.c:1863 -msgid "healing" -msgstr "ריפוי" - -#: ../src/iop/retouch.c:2226 -msgid "shapes:" -msgstr "צורות:" - -#: ../src/iop/retouch.c:2230 -msgid "" -"to add a shape select an algorithm and a shape type and click on the image.\n" -"shapes are added to the current scale" -msgstr "" -"להוספת צורה בחר אלגוריתם וסוג צורה והקלק על התמונה.\n" -"צורות נוספות לסקאלה הנוכחית" - -#. display & suppress masks -#. copy/paste shapes -#. display final image/current scale -#. auto-levels button -#: ../src/iop/retouch.c:2233 ../src/iop/retouch.c:2334 -#: ../src/iop/retouch.c:2339 ../src/iop/retouch.c:2347 -#: ../src/iop/retouch.c:2351 ../src/iop/retouch.c:2358 -#: ../src/iop/retouch.c:2392 -msgid "editing" -msgstr "עריכה" - -#: ../src/iop/retouch.c:2233 -msgid "show and edit shapes on the current scale" -msgstr "הצג וערוך צורות בסקאלה הנוכחית" - -#: ../src/iop/retouch.c:2234 -msgid "show and edit shapes in restricted mode" -msgstr "הצג וערוך צורות במצב מוגבל" - -#: ../src/iop/retouch.c:2257 -msgid "algorithms:" -msgstr "אלגוריתמים:" - -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 -msgid "tools" -msgstr "כלים" - -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2278 -msgid "activate blur tool" -msgstr "הפעל כלי טשטוש" - -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 -msgid "change algorithm for current form" -msgstr "שנה אלגוריתם טופס נוכחי" - -#: ../src/iop/retouch.c:2264 ../src/iop/retouch.c:2281 -msgid "activate fill tool" -msgstr "הפעל כלי מילוי" - -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2284 -msgid "activate cloning tool" -msgstr "הפעל כלי שכפול" - -#: ../src/iop/retouch.c:2272 ../src/iop/retouch.c:2287 -msgid "activate healing tool" -msgstr "הפעל כלי החלמה" - -#. overwrite tooltip ourself to handle shift+click -#: ../src/iop/retouch.c:2276 -msgid "ctrl+click to change tool for current form" -msgstr "קליק+ctrl לשינוי כלי בטופס הנוכחי" - -#: ../src/iop/retouch.c:2277 -msgid "shift+click to set the tool as default" -msgstr "קליק+shift לקביעת הכלי כברירת מחדל" - -#: ../src/iop/retouch.c:2296 -msgid "scales:" -msgstr "סקאלות:" - -#: ../src/iop/retouch.c:2301 -msgid "current:" -msgstr "נוכחי:" - -#: ../src/iop/retouch.c:2306 -msgid "merge from:" -msgstr "מזג מ:" - -#: ../src/iop/retouch.c:2314 -msgid "" -"top slider adjusts where the merge scales start\n" -"bottom slider adjusts the number of scales\n" -"dot indicates the current scale\n" -"top line indicates that the scale is visible at current zoom level\n" -"bottom line indicates that the scale has shapes on it" -msgstr "" -"סליידר עליון מכוונן את תחילת סקאלת המיזוג\n" -"סליידר תחתון מכוונן את מספר הסקאלות\n" -"נקודה מסמנת את הסקאלה הנוכחית\n" -"קו עליון מסמן שהסקאלה נראית במצב הזום הנוכחי\n" -"קו תחתון מסמן שע הסקאלה יש צורות" - -#: ../src/iop/retouch.c:2334 -msgid "display masks" -msgstr "הצג מסיכות" - -#: ../src/iop/retouch.c:2339 -msgid "temporarily switch off shapes" -msgstr "כבה צורות באופן זמני" - -#: ../src/iop/retouch.c:2347 -msgid "paste cut shapes to current scale" -msgstr "הדבק צורות חתוכות לסקאלה הנוכחית" - -#: ../src/iop/retouch.c:2351 -msgid "cut shapes from current scale" -msgstr "חתוך צורות מהסקאלה הנוכחית" - -#: ../src/iop/retouch.c:2358 -msgid "display wavelet scale" -msgstr "הצג סקאלת wavelet" - -#: ../src/iop/retouch.c:2366 -msgctxt "section" -msgid "preview single scale" -msgstr "תצוגה מקדימה של סקאלה בודדת" - -#: ../src/iop/retouch.c:2377 -msgid "adjust preview levels" -msgstr "כוונן רמות תצוגה מקדימה" - -#: ../src/iop/retouch.c:2392 ../src/iop/rgblevels.c:1051 -msgid "auto levels" -msgstr "רמות אוטומטיות" - -#: ../src/iop/retouch.c:2400 -msgid "shape selected:" -msgstr "צורה נבחרת:" - -#: ../src/iop/retouch.c:2405 -msgid "" -"click on a shape to select it,\n" -"to unselect click on an empty space" -msgstr "" -"הקלק על צורה לבחירתה,\n" -"לביטול בחירה הקלק על אזור ריק" - -#: ../src/iop/retouch.c:2412 -msgid "erase the detail or fills with chosen color" -msgstr "מוחק את הפרט או ממלא עם הצבע הנבחר" - -#: ../src/iop/retouch.c:2419 -msgid "fill color: " -msgstr "צבע מילוי: " - -#: ../src/iop/retouch.c:2424 ../src/iop/retouch.c:2425 -msgid "select fill color" -msgstr "בחר צבע מילוי" - -#: ../src/iop/retouch.c:2430 -msgid "pick fill color from image" -msgstr "בחר צבע מילוי מהתמונה" - -#: ../src/iop/retouch.c:2431 -msgid "pick fill color" -msgstr "בחר צבע מילוי" - -#: ../src/iop/retouch.c:2439 -msgid "adjusts color brightness to fine-tune it. works with erase as well" -msgstr "כוונון עדין של בהירות צבע. עובד גם עם מחק" - -#: ../src/iop/retouch.c:2445 -msgid "type for the blur algorithm" -msgstr "סוג לאלגוריתם הטשטוש" - -#: ../src/iop/retouch.c:2449 -msgid "radius of the selected blur type" -msgstr "רדיוס סוג הטשטוש הנבחר" - -#: ../src/iop/retouch.c:2455 -msgid "set the opacity on the selected shape" -msgstr "קבע את אטימות הצורה הנבחרת" - -#: ../src/iop/retouch.c:2461 -msgctxt "section" -msgid "retouch tools" -msgstr "ריטוש כלים" - -#. wavelet decompose -#: ../src/iop/retouch.c:2470 -msgctxt "section" -msgid "wavelet decompose" -msgstr "פירוק ל wavelets" - -#. shapes -#: ../src/iop/retouch.c:2484 -msgctxt "section" -msgid "shapes" -msgstr "צורות" - -#: ../src/iop/retouch.c:3589 ../src/iop/retouch.c:4427 -#, c-format -msgid "max scale is %i for this image size" -msgstr "סקאלה מקסימלית לגודל תמונה זה %i" - -#: ../src/iop/rgbcurve.c:122 -msgid "rgb curve" -msgstr "עקום rgb" - -#: ../src/iop/rgbcurve.c:142 -msgid "alter an image’s tones using curves in RGB color space" -msgstr "שנה טונים של תמונה על ידי עקומות במרחב צבע RGB" - -#: ../src/iop/rgbcurve.c:193 ../src/iop/tonecurve.c:548 -msgid "gamma 1.0 (linear)" -msgstr "גאמה 1.0 (לינארי)" - -#: ../src/iop/rgbcurve.c:203 ../src/iop/tonecurve.c:558 -msgid "contrast - med (linear)" -msgstr "קונטרסט - בינוני (לינארי)" - -#: ../src/iop/rgbcurve.c:212 ../src/iop/tonecurve.c:567 -msgid "contrast - high (linear)" -msgstr "קונטרסט - גבוהה (לינארי)" - -#: ../src/iop/rgbcurve.c:226 ../src/iop/tonecurve.c:579 -msgid "contrast - med (gamma 2.2)" -msgstr "קונטרסט - בינוני (גאמה 2.2)" - -#: ../src/iop/rgbcurve.c:239 ../src/iop/tonecurve.c:590 -msgid "contrast - high (gamma 2.2)" -msgstr "קונטרסט - גבוהה (גאמה 2.2)" - -#: ../src/iop/rgbcurve.c:252 ../src/iop/tonecurve.c:603 -msgid "gamma 2.0" -msgstr "גאמא 2.0" - -#: ../src/iop/rgbcurve.c:258 ../src/iop/tonecurve.c:609 -msgid "gamma 0.5" -msgstr "גאמא 0.5" - -#: ../src/iop/rgbcurve.c:263 ../src/iop/tonecurve.c:614 -msgid "logarithm (base 2)" -msgstr "לוגריתם (בסיס 2)" - -#: ../src/iop/rgbcurve.c:268 ../src/iop/tonecurve.c:619 -msgid "exponential (base 2)" -msgstr "מעריכי (בסיס 2)" - -#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:999 -msgid "choose between linked and independent channels." -msgstr "בחר בין ערוצים קשורים או בלתי תלויים." - -#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1003 -msgid "curve nodes for r channel" -msgstr "צמתי עקום עבור ערוץ r" - -#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1004 -msgid "curve nodes for g channel" -msgstr "צמתי עקום עבור ערוץ g" - -#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1005 -msgid "curve nodes for b channel" -msgstr "צמתי עקום עבור ערוץ b" - -#: ../src/iop/rgblevels.c:102 -msgid "rgb levels" -msgstr "רמות rgb" - -#: ../src/iop/rgblevels.c:122 -msgid "adjust black, white and mid-gray points in RGB color space" -msgstr "כוונן נקודות שחור, לבן, ואפור ביניים במרחב צבע RGB" - -#: ../src/iop/rgblevels.c:1056 -msgid "auto region" -msgstr "אזור אוטומטי" - -#: ../src/iop/rgblevels.c:1058 -msgid "" -"apply auto levels based on a region defined by the user\n" -"click and drag to draw the area\n" -"right click to cancel" -msgstr "" -"ישם רמות אוטומטיות על אזור מוגדר על ידי המשתמש\n" -"הקלק וגרור לציור האזור\n" -"קליק ימני לביטול" - -#: ../src/iop/rotatepixels.c:70 -msgctxt "modulename" -msgid "rotate pixels" -msgstr "סובב פיקסלים" - -#: ../src/iop/rotatepixels.c:97 ../src/iop/scalepixels.c:82 -msgid "" -"internal module to setup technical specificities of raw sensor.\n" -"\n" -"you should not touch values here!" -msgstr "" -"מודול פנימי להגדרת פרטים טכניים של חיישן גולמי\n" -"\n" -"אל תיגע בערכים כאן !" - -#: ../src/iop/rotatepixels.c:366 -msgid "automatic pixel rotation" -msgstr "סיבוב אוטומטי של פיקסלים" - -#: ../src/iop/rotatepixels.c:367 -msgid "" -"automatic pixel rotation\n" -"only works for the sensors that need it." -msgstr "" -"סיבוב אוטומטי של פיקסלים\n" -"עובד רק עבור חיישנים הזקוקים לכך." - -#: ../src/iop/scalepixels.c:55 -msgctxt "modulename" -msgid "scale pixels" -msgstr "שנה גודל פיקסלים" - -#: ../src/iop/scalepixels.c:271 -msgid "automatic pixel scaling" -msgstr "שינוי גודל פיקסלים אוטומטי" - -#: ../src/iop/scalepixels.c:272 -msgid "" -"automatic pixel scaling\n" -"only works for the sensors that need it." -msgstr "" -"שינוי גודל אוטומטי של פיקסלים\n" -"עובד רק עבור חיישנים הזקוקים לכך." - -#: ../src/iop/shadhi.c:175 -msgid "shadows and highlights" -msgstr "צללים ופרטים בהירים" - -#: ../src/iop/shadhi.c:195 -msgid "" -"modify the tonal range of the shadows and highlights\n" -"of an image by enhancing local contrast." -msgstr "" -"שנה את הטווח הטונלי של הצללים והפרטים הבהירים\n" -"של תמונה על ידי ניגודיות מקומית." - -#: ../src/iop/shadhi.c:676 ../src/iop/splittoning.c:548 -msgid "compress" -msgstr "דחוס" - -#: ../src/iop/shadhi.c:683 -msgid "correct shadows" -msgstr "תקן צללים" - -#: ../src/iop/shadhi.c:684 -msgid "correct highlights" -msgstr "תקן פרטים בהירים" - -#: ../src/iop/shadhi.c:685 -msgid "shift white point" -msgstr "הסח נקודת לבן" - -#: ../src/iop/shadhi.c:687 -msgid "filter to use for softening. bilateral avoids halos" -msgstr "פילטר בו להשתמש לריכוך. בילטרלי אינו מייצר הילות" - -#: ../src/iop/shadhi.c:688 -msgid "" -"compress the effect on shadows/highlights and\n" -"preserve mid-tones" -msgstr "" -"דחוס את האפקט על צללים/ בהירים\n" -"ושמר טונים בינוניים" - -#: ../src/iop/shadhi.c:689 -msgid "adjust saturation of shadows" -msgstr "כוונן רוויה בצללים" - -#: ../src/iop/shadhi.c:690 -msgid "adjust saturation of highlights" -msgstr "כוונן רוויה בבהירים" - -#: ../src/iop/sharpen.c:73 -msgctxt "modulename" -msgid "sharpen" -msgstr "חדד" - -#: ../src/iop/sharpen.c:93 -msgid "sharpen the details in the image using a standard UnSharp Mask (USM)" -msgstr "חדד את הפרטים בתמונה על ידי מסיכת UnSharp סטנדרטית (USM)" - -#: ../src/iop/sharpen.c:95 -msgid "linear or non-linear, Lab, display or scene-referred" -msgstr "לינארי או לא לינארי, Lab, תצוגה או מיוחס סצנה" - -#: ../src/iop/sharpen.c:97 -msgid "quasi-linear, Lab, display or scene-referred" -msgstr "כמו לינארי, Lab, תצוגה או מיוחס סצנה" - -#. add the preset. -#. restrict to raw images -#: ../src/iop/sharpen.c:104 ../src/iop/sharpen.c:108 -msgid "sharpen" -msgstr "חדד" - -#: ../src/iop/sharpen.c:443 -msgid "spatial extent of the unblurring" -msgstr "היקף מרחבי של נטרול טשטוש" - -#: ../src/iop/sharpen.c:447 -msgid "strength of the sharpen" -msgstr "עצמת החידוד" - -#: ../src/iop/sharpen.c:451 -msgid "threshold to activate sharpen" -msgstr "סף להפעלת חידוד" - -#: ../src/iop/sigmoid.c:89 -msgid "sigmoid" -msgstr "sigmoid" - -#: ../src/iop/sigmoid.c:94 -msgid "tone mapping|view transform|display transform" -msgstr "מיפוי טונים|התמרת מבט|התמרת תצוגה" - -#: ../src/iop/sigmoid.c:99 -msgid "" -"apply a view transform to make a image displayable\n" -"on a screen or print. uses a robust and smooth\n" -"tone curve with optional color preservation methods." -msgstr "" -"יישם טרנספורמציית מבט להפוך את התמונה לניתנת להצגה\n" -"על מסך או הדפסה. עושה שימוש בעקום טון רובסטי וחלק\n" -"אופציונלית עם שיטות שימור צבע." - -#: ../src/iop/sigmoid.c:155 -msgid "neutral gray" -msgstr "אפור ניטרלי" - -#: ../src/iop/sigmoid.c:160 -msgid "ACES 100-nit like" -msgstr "ACES 100-nit like" - -#: ../src/iop/sigmoid.c:165 -msgid "Reinhard" -msgstr "Reinhard" - -#: ../src/iop/sigmoid.c:683 -msgid "" -"compression of the applied curve\n" -"implicitly defines the supported input dynamic range" -msgstr "" -"דחיסת של עקום מיושם\n" -"מגדיר במרומז את התחום הדינאמי הנתמך" - -#: ../src/iop/sigmoid.c:686 -msgid "" -"shift the compression towards shadows or highlights.\n" -"negative values increase contrast in shadows.\n" -"positive values increase contrast in highlights.\n" -"the opposite end will see a reduction in contrast." -msgstr "" -"הסח את הדחיסה לכיוון צללים או פרטים בהירים.\n" -"ערכים שליליים מגבירים ניגודיות בצללים.\n" -"ערכים חיוביים מגבירים ניגודיות בפרטים הבהירים.\n" -"הקצה השני יביא לירידה בניגודיות." - -#: ../src/iop/sigmoid.c:695 -msgid "" -"optional correction of the hue twist introduced by\n" -"the per-channel processing method." -msgstr "" -"תיקון אופציונלי של גוון המונהג\n" -"על ידי שיטת עיבוד פר ערוץ." - -#: ../src/iop/sigmoid.c:702 -msgid "display luminance" -msgstr "הצג לומיננס" - -#: ../src/iop/sigmoid.c:706 -msgid "set display black/white targets" -msgstr "קבע ערכי יעד לתצוגת שחור/לבן" - -#: ../src/iop/sigmoid.c:714 -msgid "" -"the black luminance of the target display or print.\n" -"can be used creatively for a faded look." -msgstr "" -"לומיננס השחור של תצוגת היעד או ההדפסה.\n" -"ניתן לשימוש באופן יצירתי למראה דהוי." - -#: ../src/iop/sigmoid.c:719 -msgid "" -"the white luminance of the target display or print.\n" -"can be used creatively for a faded look or blowing out whites earlier." -msgstr "" -"לומיננס הלבן של תצוגת היעד או ההדפסה.\n" -"ניתן לשימוש באופן יצירתי למראה דהוי או להגברת רוויה של לבן." - -#: ../src/iop/soften.c:80 -msgid "soften" -msgstr "רכך" - -#: ../src/iop/soften.c:100 -msgid "create a softened image using the Orton effect" -msgstr "צור תמונה מרוככת עלידי אפקט Orton" - -#: ../src/iop/soften.c:371 -msgid "the size of blur" -msgstr "גודל הטשטוש" - -#: ../src/iop/soften.c:375 -msgid "the saturation of blur" -msgstr "רווית הטשטוש" - -#: ../src/iop/soften.c:379 -msgid "the brightness of blur" -msgstr "בהירות הטשטוש" - -#: ../src/iop/soften.c:383 -msgid "the mix of effect" -msgstr "ערבוב האפקט" - -#: ../src/iop/splittoning.c:81 -msgid "split-toning" -msgstr "split-toning" - -#: ../src/iop/splittoning.c:101 -msgid "" -"use two specific colors for shadows and highlights and\n" -"create a linear toning effect between them up to a pivot." -msgstr "" -"השתמש בשני צבעים מסויימים עבור צללים ופרטים בהירים\n" -"וצור אפקט טון לינארי ביניהם עד לציר." - -#: ../src/iop/splittoning.c:118 -msgid "authentic sepia" -msgstr "ספיה אוטנטי" - -#: ../src/iop/splittoning.c:127 -msgid "authentic cyanotype" -msgstr "סיאנוטייפ אוטנטי" - -#: ../src/iop/splittoning.c:136 -msgid "authentic platinotype" -msgstr "פלטינוטייפ אוטנטי" - -#: ../src/iop/splittoning.c:145 -msgid "chocolate brown" -msgstr "חום שוקולד" - -#: ../src/iop/splittoning.c:490 -msgid "select the saturation tone" -msgstr "בחר את טון הרוויה" - -#: ../src/iop/splittoning.c:494 -msgid "select tone color" -msgstr "בחר את צבע הטון" - -#: ../src/iop/splittoning.c:524 -msgctxt "section" -msgid "shadows" -msgstr "צללים" - -#: ../src/iop/splittoning.c:530 -msgctxt "section" -msgid "highlights" -msgstr "פרטים בהירים" - -#: ../src/iop/splittoning.c:539 -msgid "balance" -msgstr "איזון" - -#: ../src/iop/splittoning.c:546 -msgid "the balance of center of split-toning" -msgstr "איזון מרכז פיצול הטונים" - -#: ../src/iop/splittoning.c:550 -msgid "" -"compress the effect on highlights/shadows and\n" -"preserve mid-tones" -msgstr "" -"דחוס את האפקט על צללים/ בהירים\n" -"ושמר טונים בינוניים" - -#: ../src/iop/spots.c:58 -msgid "spot removal" -msgstr "הסרת כתמים" - -#: ../src/iop/spots.c:63 -msgid "this module is deprecated. please use the retouch module instead." -msgstr "מודול זה מוצא משימוש. אנה השתמש במודול הריטוש במקום." - -#: ../src/iop/spots.c:68 -msgid "remove sensor dust spots" -msgstr "remove sensor dust spots" - -#: ../src/iop/spots.c:71 -msgid "geometric, raw" -msgstr "גיאומטרי, raw" - -#: ../src/iop/spots.c:226 -msgid "spot module is limited to 64 shapes. please add a new instance!" -msgstr "מודול הכתם מוגבל ל 64 צורות. נא הוסף שלב חדש!" - -#: ../src/iop/spots.c:872 -msgid "number of strokes:" -msgstr "מספר הנגיעות:" - -#: ../src/iop/spots.c:876 -msgid "" -"click on a shape and drag on canvas.\n" -"use the mouse wheel to adjust size.\n" -"right click to remove a shape." -msgstr "" -"הקלק על הצורה וגרור על הקנבס.\n" -"השתמש בגלגלת העכבר לכיוון גודל.\n" -"הקלק ימנית להסרת הצורה." - -#: ../src/iop/spots.c:879 -msgid "show and edit shapes" -msgstr "הצג וערוך צורות" - -#: ../src/iop/temperature.c:204 -msgctxt "modulename" -msgid "white balance" -msgstr "אזון לבן" - -#: ../src/iop/temperature.c:211 -msgid "scale raw RGB channels to balance white and help demosaicing" -msgstr "משקל ערוצי raw RGB לאזן לבן ולעזור ב demosaicing" - -#: ../src/iop/temperature.c:1149 -msgid "white balance applied twice" -msgstr "איזון לבן מיושם פעמיים" - -#: ../src/iop/temperature.c:1150 -msgid "" -"the color calibration module is enabled,\n" -"and performing chromatic adaptation.\n" -"set the white balance here to camera reference (D65)\n" -"or disable chromatic adaptation in color calibration." -msgstr "" -"מודול כיול הצבע מופעל,\n" -"ומבצע התאמת צבע.\n" -"קבע את איזון הלבן כאן לרפרנס מצלמה (D65)\n" -"על מנת לנטרל התאמה בכיול הצבע." - -#: ../src/iop/temperature.c:1430 -#, c-format -msgid "`%s' color matrix not found for image" -msgstr "מטריצת צבע `%s' לא נמצאה עבור תמונה" - -#: ../src/iop/temperature.c:1459 -#, c-format -msgid "failed to read camera white balance information from `%s'!" -msgstr "קריאת נתוני איזון לבן ממצלמה מ `%s' נכשלה!" - -#: ../src/iop/temperature.c:1634 -msgctxt "white balance" -msgid "as shot" -msgstr "כפי שצולם" - -#. old "spot", reason: describes exactly what'll happen -#: ../src/iop/temperature.c:1637 -msgctxt "white balance" -msgid "from image area" -msgstr "מתוך שטח התמונה" - -#: ../src/iop/temperature.c:1638 -msgctxt "white balance" -msgid "user modified" -msgstr "שונה על ידי משתמש" - -#. old "camera neutral", reason: better matches intent -#: ../src/iop/temperature.c:1640 -msgctxt "white balance" -msgid "camera reference" -msgstr "רפרנס מצלמה" - -#: ../src/iop/temperature.c:1923 ../src/iop/temperature.c:1941 -msgid "green channel coefficient" -msgstr "מקדם ערוץ ירוק" - -#: ../src/iop/temperature.c:1925 -msgid "magenta channel coefficient" -msgstr "מקדמי ערוץ מג'נטה" - -#: ../src/iop/temperature.c:1927 -msgid "cyan channel coefficient" -msgstr "מקדמי ערוץ סיאן" - -#: ../src/iop/temperature.c:1929 -msgid "yellow channel coefficient" -msgstr "מקדמי ערוץ צהוב" - -#: ../src/iop/temperature.c:1939 -msgid "red channel coefficient" -msgstr "מקדמי ערוץ אדום" - -#: ../src/iop/temperature.c:1943 -msgid "blue channel coefficient" -msgstr "מקדמי ערוץ כחול" - -#: ../src/iop/temperature.c:1945 -msgid "emerald channel coefficient" -msgstr "מקדמי ערוץ אמרלד" - -#. relabel to settings to remove confusion between module presets -#. and white balance settings -#: ../src/iop/temperature.c:2032 ../src/iop/temperature.c:2045 -#: ../src/iop/temperature.c:2052 ../src/iop/temperature.c:2058 -#: ../src/iop/temperature.c:2077 -msgid "settings" -msgstr "הגדרות" - -#: ../src/iop/temperature.c:2032 -msgid "as shot" -msgstr "כפי שצולם" - -#: ../src/iop/temperature.c:2035 -msgid "set white balance to as shot" -msgstr "קבע איזון לבן לכפי שצולם" - -#: ../src/iop/temperature.c:2045 -msgid "from image area" -msgstr "מתוך שטח התמונה" - -#: ../src/iop/temperature.c:2052 -msgid "user modified" -msgstr "שונה על ידי משתמש" - -#: ../src/iop/temperature.c:2055 -msgid "set white balance to user modified" -msgstr "קבע איזון לבן ממצלמה לשונה ע\"י משתמש" - -#: ../src/iop/temperature.c:2058 -msgid "camera reference" -msgstr "רפרנס מצלמה" - -#: ../src/iop/temperature.c:2063 -msgid "" -"set white balance to camera reference point\n" -"in most cases it should be D65" -msgstr "" -"קבע איזון לבן לנקודת הרפרנס של המצלמה\n" -"ברוב המקרים יהיה D65" - -#: ../src/iop/temperature.c:2078 -msgid "choose white balance setting" -msgstr "בחר הגדרות איזון לבן" - -#: ../src/iop/temperature.c:2083 -msgid "finetune" -msgstr "כוונון עדין" - -#: ../src/iop/temperature.c:2085 -msgid "fine tune camera's white balance setting" -msgstr "כוונון עדין של הגדרות איזון לבן של המצלמה" - -#: ../src/iop/temperature.c:2097 -msgctxt "section" -msgid "scene illuminant temp" -msgstr "טמפרטורת מקור אור הסצנה" - -#: ../src/iop/temperature.c:2098 -msgid "click to cycle color mode on sliders" -msgstr "הקלק לגלול מצבי צבע על המכוונים" - -#: ../src/iop/temperature.c:2112 -msgid "color temperature (in Kelvin)" -msgstr "טמפרטורת צבע (בקלווין)" - -#: ../src/iop/temperature.c:2118 -msgid "tint" -msgstr "גוון" - -#: ../src/iop/temperature.c:2121 -msgid "color tint of the image, from magenta (value < 1) to green (value > 1)" -msgstr "גוון צבע של התמונה, ממג'נטה (ערך קטן מ1) עד ירוק (ערך גדול מ 1)" - -#: ../src/iop/temperature.c:2127 -msgid "channel coefficients" -msgstr "מקדמי ערוץ" - -#: ../src/iop/temperature.c:2162 -msgid "white balance disabled for camera" -msgstr "איזון לבן מנוטרל עבור מצלמה" - -#: ../src/iop/tonecurve.c:190 -msgid "tone curve" -msgstr "עקום טון" - -#: ../src/iop/tonecurve.c:210 -msgid "alter an image’s tones using curves" -msgstr "שנה טונים בתמונה על ידי שימוש בעקומות" - -#: ../src/iop/tonecurve.c:1125 -msgid "" -"if set to auto, a and b curves have no effect and are not displayed. chroma " -"values (a and b) of each pixel are then adjusted based on L curve data. auto " -"XYZ is similar but applies the saturation changes in XYZ space." -msgstr "" -"אם נקבע לאוטומטי, עקומות a ו b חסרות משמעות ואינן מוצגות. ערכי כרומה (a ו b) " -"של כל פיקסל מותאמים בהתבסס על נתוני עקום L. מצב XYZ אוטומטי דומה אך מיישם " -"שינויי רוויה במרחב XYZ." - -#: ../src/iop/tonecurve.c:1134 -msgid "tonecurve for L channel" -msgstr "עקום טון עבור ערוץ L" - -#: ../src/iop/tonecurve.c:1135 -msgid "tonecurve for a channel" -msgstr "עקום טון עבור ערוץ a" - -#: ../src/iop/tonecurve.c:1136 -msgid "tonecurve for b channel" -msgstr "עקום טון עבור ערוץ b" - -#: ../src/iop/tonecurve.c:1143 ../src/iop/watermark.c:1305 -#: ../src/libs/colorpicker.c:597 -msgid "pick color" -msgstr "בחר צבע" - -#: ../src/iop/toneequal.c:311 -msgid "tone equalizer" -msgstr "אקולייזר טונים" - -#: ../src/iop/toneequal.c:316 -msgid "tone curve|tone mapping|relight|background light|shadows highlights" -msgstr "עקום טון|מיפוי טונים|תאורת רקע|צללים פרטים בהירים" - -#: ../src/iop/toneequal.c:323 -msgid "relight the scene as if the lighting was done directly on the scene" -msgstr "האר מחדש את הסצנה כאילו התאורה האירה ישירות את הסצנה" - -#: ../src/iop/toneequal.c:326 -msgid "quasi-linear, RGB" -msgstr "כמו לינארי, RGB" - -#: ../src/iop/toneequal.c:327 -msgid "quasi-linear, RGB, scene-referred" -msgstr "כמו לינארי, RGB, מיוחס סצנה" - -#: ../src/iop/toneequal.c:458 -msgid "simple tone curve" -msgstr "עקום טון פשוט" - -#: ../src/iop/toneequal.c:472 -msgid "mask blending: all purposes" -msgstr "ערבוב מסיכה : שימוש כללי" - -#: ../src/iop/toneequal.c:479 -msgid "mask blending: people with backlight" -msgstr "מסיכת ערבוב: אנשים עם תאורה אחורית" - -#: ../src/iop/toneequal.c:496 -msgid "compress shadows/highlights (EIGF): strong" -msgstr "דחוס צללים/ בהירים (EIGF) : חזק" - -#: ../src/iop/toneequal.c:501 -msgid "compress shadows/highlights (GF): strong" -msgstr "דחוס צללים/ בהירים (GF) : חזק" - -#: ../src/iop/toneequal.c:510 -msgid "compress shadows/highlights (EIGF): medium" -msgstr "דחוס צללים/בהירים (EIGF) : בינוני" - -#: ../src/iop/toneequal.c:515 -msgid "compress shadows/highlights (GF): medium" -msgstr "דחוס צללים/בהירים (GF) : בינוני" - -#: ../src/iop/toneequal.c:524 -msgid "compress shadows/highlights (EIGF): soft" -msgstr "דחוס צללים/בהירים (EIGF) : רך" - -#: ../src/iop/toneequal.c:529 -msgid "compress shadows/highlights (GF): soft" -msgstr "דחוס צללים/בהירים (GF) : רך" - -#: ../src/iop/toneequal.c:537 -msgid "contrast tone curve: soft" -msgstr "עקום טון ניגודיות: רך" - -#: ../src/iop/toneequal.c:542 -msgid "contrast tone curve: medium" -msgstr "עקום ניגודיות טון: בינוני" - -#: ../src/iop/toneequal.c:547 -msgid "contrast tone curve: strong" -msgstr "עקום טון ניגודיות: חזק" - -#: ../src/iop/toneequal.c:570 -msgid "relight: fill-in" -msgstr "האר מחדש: מילוי אור" - -#: ../src/iop/toneequal.c:627 -msgid "" -"tone equalizer needs to be after distortion modules in the pipeline – " -"disabled" -msgstr "אקולייזר טונים צריך לבוא אחרי מודולי דיסטורציה בסדר הפעולות - מנוטרל" - -#: ../src/iop/toneequal.c:1091 -msgid "tone equalizer failed to allocate memory, check your RAM settings" -msgstr "אקולייזר טונים כשל בהקצאת זיכרון, בדוק את הגדרות ה RAM" - -#: ../src/iop/toneequal.c:1795 ../src/iop/toneequal.c:2180 -msgid "the interpolation is unstable, decrease the curve smoothing" -msgstr "האינטרפולציה לא יציבה, הפחת את החלקת עקום" - -#: ../src/iop/toneequal.c:1830 ../src/iop/toneequal.c:1897 -msgid "wait for the preview to finish recomputing" -msgstr "המתן עד שחישוב התצוגה המקדימה יסתיים" - -#: ../src/iop/toneequal.c:2037 ../src/iop/toneequal.c:2587 -msgid "" -"scroll over image to change tone exposure\n" -"shift+scroll for large steps; ctrl+scroll for small steps" -msgstr "" -"גלול מעל התמונה לשינוי חשיפת טון\n" -"גלול+shift לשנות בקפיצות גדולות; גלול+ctrl לשנות בקפיצות קטנות" - -#: ../src/iop/toneequal.c:2185 -msgid "some parameters are out-of-bounds" -msgstr "חלק מהפרמטרים מחוץ לתחום" - -#: ../src/iop/toneequal.c:2524 -#, c-format -msgid "%+.1f EV" -msgstr "%+.1f EV" - -#: ../src/iop/toneequal.c:3236 -#, c-format -msgid "[%s over image] change tone exposure" -msgstr "[%s על תמונה] שנה חשיפת טון" - -#: ../src/iop/toneequal.c:3239 -#, c-format -msgid "[%s over image] change tone exposure in large steps" -msgstr "[%s over image] שנה חשיפת טון בקפיצות גדולות" - -#: ../src/iop/toneequal.c:3242 -#, c-format -msgid "[%s over image] change tone exposure in small steps" -msgstr "[%s over image] שנה חשיפת טון בקפיצות קטנות" - -#. Simple view -#: ../src/iop/toneequal.c:3323 ../src/iop/toneequal.c:3352 -#: ../src/iop/toneequal.c:3353 ../src/iop/toneequal.c:3354 -#: ../src/iop/toneequal.c:3355 ../src/iop/toneequal.c:3356 -#: ../src/iop/toneequal.c:3357 ../src/iop/toneequal.c:3358 -#: ../src/iop/toneequal.c:3359 ../src/iop/toneequal.c:3360 -msgid "simple" -msgstr "פשוט" - -#: ../src/iop/toneequal.c:3352 -msgid "-8 EV" -msgstr "-8 EV" - -#: ../src/iop/toneequal.c:3353 -msgid "-7 EV" -msgstr "-7 EV" - -#: ../src/iop/toneequal.c:3354 -msgid "-6 EV" -msgstr "-6 EV" - -#: ../src/iop/toneequal.c:3355 -msgid "-5 EV" -msgstr "-5 EV" - -#: ../src/iop/toneequal.c:3356 -msgid "-4 EV" -msgstr "-4 EV" - -#: ../src/iop/toneequal.c:3357 -msgid "-3 EV" -msgstr "-3 EV" - -#: ../src/iop/toneequal.c:3358 -msgid "-2 EV" -msgstr "-2 EV" - -#: ../src/iop/toneequal.c:3359 -msgid "-1 EV" -msgstr "-1 EV" - -#: ../src/iop/toneequal.c:3360 -msgid "+0 EV" -msgstr "+0 EV" - -#. Advanced view -#: ../src/iop/toneequal.c:3364 -msgid "advanced" -msgstr "מתקדם" - -#: ../src/iop/toneequal.c:3391 -msgid "double-click to reset the curve" -msgstr "הקלקה כפולה לאתחול עקום" - -#: ../src/iop/toneequal.c:3395 -msgid "curve smoothing" -msgstr "החלקת עקום" - -#: ../src/iop/toneequal.c:3398 -msgid "" -"positive values will produce more progressive tone transitions\n" -"but the curve might become oscillatory in some settings.\n" -"negative values will avoid oscillations and behave more robustly\n" -"but may produce brutal tone transitions and damage local contrast." -msgstr "" -"ערכים חיוביים ייצרו מעברי טונים מדורגים\n" -"אבל העקום עלול להיות לתנוד במצבים מסויימים.\n" -"ערכים שליליים ימנעו אוסצילציות ויתנהגו יותר רובסטי\n" -"אבל עלולים לייצר מעברי טונים קיצוניים ולפגוע בקונטרסט מקומי." - -#. Masking options -#: ../src/iop/toneequal.c:3408 -msgid "masking" -msgstr "מיסוך" - -#: ../src/iop/toneequal.c:3413 -msgid "" -"preview the mask and chose the estimator that gives you the\n" -"higher contrast between areas to dodge and areas to burn" -msgstr "" -"הצג מסיכה מקדמית ובחר את המשערך שנותן\n" -"קונטרסט גבוהה יותר בין שטחים להחשכה ושטחים לשריפה" - -#: ../src/iop/toneequal.c:3416 -msgid "details" -msgstr "פרטים" - -#: ../src/iop/toneequal.c:3417 -msgid "preserve details" -msgstr "שמר פרטים" - -#: ../src/iop/toneequal.c:3420 -msgid "" -"'no' affects global and local contrast (safe if you only add contrast)\n" -"'guided filter' only affects global contrast and tries to preserve local " -"contrast\n" -"'averaged guided filter' is a geometric mean of 'no' and 'guided filter' " -"methods\n" -"'EIGF' (exposure-independent guided filter) is a guided filter that is " -"exposure-independent, it smooths shadows and highlights the same way " -"(contrary to guided filter which smooths less the highlights)\n" -"'averaged EIGF' is a geometric mean of 'no' and 'exposure-independent guided " -"filter' methods" -msgstr "" -"'no' משפיע על ניגודיות מקומית וגלובלית (בטוח אם מוסיפים רק ניגודיות)\n" -"'guided filter' משפיע רק על ניגודיות גלובלית ומנסה לשמר ניגודיות מקומית\n" -"'averaged guided filter' ממוצע גיאומטרי של שיטות 'no' ו 'guided filter' \n" -"'EIGF' (exposure-independent guided filter) פילטר מונחה שאינו תלוי בחשיפה, " -"מחליק צללים ופרטים בהירים באופן שווה (בניגוד לפילטר מונחה שמחליק פחות פרטים " -"בהירים)\n" -"'averaged EIGF' ממוצע גיאומטרי של שיטות 'no' ו 'exposure-independent guided " -"filter'" - -#: ../src/iop/toneequal.c:3433 -msgid "" -"number of passes of guided filter to apply\n" -"helps diffusing the edges of the filter at the expense of speed" -msgstr "" -"מספר מעברים של פילטר מונחה לבצע\n" -"עוזר לטשטש את קצוות הפילטר על חשבון מהירות" - -#: ../src/iop/toneequal.c:3441 -msgid "" -"diameter of the blur in percent of the largest image size\n" -"warning: big values of this parameter can make the darkroom\n" -"preview much slower if denoise profiled is used." -msgstr "" -"קוטר הטשטוש באחוזים מתוך התמונה הגדולה ביותר\n" -"אזהרה: ערכים גדולים של פרמטר זה עלולים לגרום לתצוגה המקדימה\n" -"של חדר החושך להיות איטית בהרבה אם נעשה שימוש בפרופיל סילוק רעש." - -#: ../src/iop/toneequal.c:3449 -msgid "" -"precision of the feathering:\n" -"higher values force the mask to follow edges more closely\n" -"but may void the effect of the smoothing\n" -"lower values give smoother gradients and better smoothing\n" -"but may lead to inaccurate edges taping and halos" -msgstr "" -"דיוק פעולת הנוצה:\n" -"ערכים גבוהים מכריחים את המסיכה לעקוב אחר קצוות בצמידות רבה יותר\n" -"אבל עלול לנטרל את אפקט ההחלקה\n" -"ערכים נמוכים מובילים לגראדיינטים חלקים יותר והחלקה טובה יותר\n" -"אך עלולים להוביל לחוסר דיוק בהחלקת קצוות והילות" - -#: ../src/iop/toneequal.c:3456 -msgctxt "section" -msgid "mask post-processing" -msgstr "עיבוד מאוחר של מסיכה" - -#: ../src/iop/toneequal.c:3467 -msgid "" -"mask histogram span between the first and last deciles.\n" -"the central line shows the average. orange bars appear at extrema if " -"clipping occurs." -msgstr "" -"טווח ההסטוגרמה בין העשירונים הראשון והאחרון.\n" -"הקו המרכזי מראה ממוצע. פסים כתומים יופיעו בקצוות במידה שיש חיתוך." - -#: ../src/iop/toneequal.c:3475 -msgid "" -"0 disables the quantization.\n" -"higher values posterize the luminance mask to help the guiding\n" -"produce piece-wise smooth areas when using high feathering values" -msgstr "" -"0 מנטרל את הקוואנטיזציה.\n" -"ערכים גבוהים יוצרים אפקט פוסטר למסיכת הלומיננס שעוזר לניתוב\n" -"לייצר אזורים חלקים כאשר משתמשים בערכי נוצה גבוהים" - -#: ../src/iop/toneequal.c:3484 -msgid "" -"use this to slide the mask average exposure along channels\n" -"for a better control of the exposure correction with the available nodes.\n" -"the magic wand will auto-adjust the average exposure" -msgstr "" -"השתמש בזה על מנת להחליק את החשיפה הממוצעת של המסיכה לאורך הערוצים\n" -"לשליטה טובה יותר בתיקון החשיפה עם הצמתים הזמינים.\n" -"מטה הקסם יכוונן אוטומטית את ממוצע החשיפה" - -#: ../src/iop/toneequal.c:3497 -msgid "" -"use this to counter the averaging effect of the guided filter\n" -"and dilate the mask contrast around -4EV\n" -"this allows to spread the exposure histogram over more channels\n" -"for a better control of the exposure correction.\n" -"the magic wand will auto-adjust the contrast" -msgstr "" -"השתמש בזה לאיזון אפקט המיצוע של הפילטר המונחה\n" -"והרחב את קונטרסט המסיכה סביב -4EV\n" -"הדבר מאפשר לפרוס את היסטוגרמת החשיפה על יותר ערוצים\n" -"לשליטה טובה יותר בתיקון החשיפה.\n" -"מטה הקסם יכוונן אוטומטית את הניגודיות" - -#: ../src/iop/toneequal.c:3520 ../src/iop/toneequal.c:3523 -msgid "display exposure mask" -msgstr "הצג מסיכת חשיפה" - -#: ../src/iop/tonemap.cc:71 -msgid "tone mapping" -msgstr "מיפוי טונים" - -#: ../src/iop/tonemap.cc:87 -msgid "" -"this module is deprecated. please use the local contrast or tone equalizer " -"module instead." -msgstr "" -"מודול זה מוצא משימוש. עדיף להשתמש ב מודול ניגודיות מקומית או אקולייזר הטונים " -"במקום." - -#: ../src/iop/velvia.c:79 -msgid "velvia" -msgstr "וולויה" - -#: ../src/iop/velvia.c:104 -msgid "" -"resaturate giving more weight to blacks, whites and low-saturation pixels" -msgstr "רווה מחדש עם משקל גדול יותר לשחורים, לבנים ופיקסלים עם רוויה נמוכה" - -#: ../src/iop/velvia.c:281 -msgid "the strength of saturation boost" -msgstr "עצמת הדחיפה לרוויה" - -#: ../src/iop/velvia.c:284 -msgid "how much to spare highlights and shadows" -msgstr "באיזו מידה לשמר פרטים בהירים וצללים" - -#: ../src/iop/vibrance.c:62 -msgid "" -"this module is deprecated. please use the vibrance slider in the color " -"balance rgb module instead." -msgstr "" -"מודול זה מוצא משימוש. עדיף להשתמש במחוון הוויברנס במודול איזון הצבע rgb " -"במקום." - -#: ../src/iop/vibrance.c:93 -msgid "" -"saturate and reduce the lightness of the most saturated pixels\n" -"to make the colors more vivid." -msgstr "" -"רווה והפחת תאורה של הפיקסלים הרוויים ביותר\n" -"להגביר את החיות של הצבעים." - -#: ../src/iop/vibrance.c:217 -msgid "the amount of vibrance" -msgstr "כמות הוויברנס" - -#: ../src/iop/vignette.c:153 -msgid "vignetting" -msgstr "הצללה" - -#: ../src/iop/vignette.c:158 -msgid "simulate a lens fall-off close to edges" -msgstr "דמה איבוד אור של עדשה בקצוות" - -#: ../src/iop/vignette.c:940 -msgid "lomo" -msgstr "lomo" - -#: ../src/iop/vignette.c:974 -msgctxt "section" -msgid "position / form" -msgstr "מיקום / צורה" - -#: ../src/iop/vignette.c:981 -msgid "dithering" -msgstr "מיזוג" - -#: ../src/iop/vignette.c:992 -msgid "the radii scale of vignette for start of fall-off" -msgstr "רדיוס המשקל בהצללה לתחילת הירידה" - -#: ../src/iop/vignette.c:993 -msgid "the radii scale of vignette for end of fall-off" -msgstr "רדיוס המשקל בהצללה לסיום הירידה" - -#: ../src/iop/vignette.c:994 -msgid "strength of effect on brightness" -msgstr "עצמת האפקט על הבהירות" - -#: ../src/iop/vignette.c:995 -msgid "strength of effect on saturation" -msgstr "עצמת האפקט על הרוויה" - -#: ../src/iop/vignette.c:996 -msgid "horizontal offset of center of the effect" -msgstr "סטייה אופקית של מרכז האפקט" - -#: ../src/iop/vignette.c:997 -msgid "vertical offset of center of the effect" -msgstr "סטייה אנכית של מרכז האפקט" - -#: ../src/iop/vignette.c:998 -msgid "" -"shape factor\n" -"0 produces a rectangle\n" -"1 produces a circle or ellipse\n" -"2 produces a diamond" -msgstr "" -"מקדם צורה\n" -"0 יוצר מלבן\n" -"1 יוצר מעגל או אליפסה\n" -"2 יוצר יהלום" - -#: ../src/iop/vignette.c:1000 -msgid "enable to have the ratio automatically follow the image size" -msgstr "אפשר כדי לגרום ליחס לעקוב אוטומטית אחר גודל התמונה" - -#: ../src/iop/vignette.c:1001 -msgid "width-to-height ratio" -msgstr "יחס רוחב-לגובה" - -#: ../src/iop/vignette.c:1002 -msgid "add some level of random noise to prevent banding" -msgstr "הוסף מידה מסוימת של רעש אקראי למניעת פסים" - -#: ../src/iop/vignette.c:1009 -#, c-format -msgid "[%s on node] change vignette/feather size" -msgstr "[%s on node] שנה גודל הצללה/נוצה" - -#: ../src/iop/vignette.c:1011 -#, c-format -msgid "[%s on node] change vignette/feather size keeping ratio" -msgstr "[%s on node] שנה גודל הצללה/נוצה תוך שמירה על היחס" - -#: ../src/iop/vignette.c:1013 -#, c-format -msgid "[%s on center] move vignette" -msgstr "[%s on center] הזז הצללה" - -#: ../src/iop/watermark.c:371 -msgid "watermark" -msgstr "חותמת מים" - -#: ../src/iop/watermark.c:376 -msgid "overlay an SVG watermark like a signature on the picture" -msgstr "כסה תמונה בסימן מים SVG כמו חתימה" - -#: ../src/iop/watermark.c:1258 -msgid "marker" -msgstr "סמן" - -#: ../src/iop/watermark.c:1261 -#, c-format -msgid "SVG watermarks in %s/watermarks or %s/watermarks" -msgstr "חותמות מים SVG ב %s/watermarks או %s/watermarks" - -#. Simple text -#: ../src/iop/watermark.c:1271 ../src/iop/watermark.c:1272 -msgid "text" -msgstr "כיתוב" - -#: ../src/iop/watermark.c:1273 -msgid "" -"text string, tag:\n" -"$(WATERMARK_TEXT)" -msgstr "" -"מחרוזת טקסט, תג:\n" -"$(WATERMARK_TEXT)" - -#: ../src/iop/watermark.c:1275 -msgid "content" -msgstr "תוכן" - -#. Text font -#: ../src/iop/watermark.c:1280 -msgid "font" -msgstr "פונט" - -#: ../src/iop/watermark.c:1285 -msgid "" -"text font, tags:\n" -"$(WATERMARK_FONT_FAMILY)\n" -"$(WATERMARK_FONT_STYLE)\n" -"$(WATERMARK_FONT_WEIGHT)" -msgstr "" -"פונט לטקסט, תג:\n" -"$(WATERMARK_FONT_FAMILY)\n" -"$(WATERMARK_FONT_STYLE)\n" -"$(WATERMARK_FONT_WEIGHT)" - -#: ../src/iop/watermark.c:1300 -msgid "" -"watermark color, tag:\n" -"$(WATERMARK_COLOR)" -msgstr "" -"צבע חותמת מים, תג:\n" -"$(WATERMARK_COLOR)" - -#: ../src/iop/watermark.c:1302 -msgid "select watermark color" -msgstr "בחר את צבע חותמת המים" - -#: ../src/iop/watermark.c:1304 -msgid "pick color from image" -msgstr "בחר צבע מהתמונה" - -#: ../src/iop/watermark.c:1317 -msgctxt "section" -msgid "placement" -msgstr "הצבה" - -#: ../src/iop/watermark.c:1330 -msgid "" -"scaling is done relative to this object\n" -"• image: fits marker into whole image\n" -"• larger border: fits larger marker border to larger image border\n" -"• smaller border: fits larger marker border to smaller image border\n" -"• height: fits marker height to image height, e.g. suitable for texts\n" -"• advanced options: activates two additional drop-down menus" -msgstr "" -"סקילינג (סילום) נערך יחסית לאובייקט זה\n" -"• תמונה: מתאים סמן לתוך כל התמונה\n" -"• גבול מוגדל: מתאים סמן גבול מוגדל לגבול המוגדל של התמונה\n" -"• גבול מוקטן: מתאים סמן גבול מוגדל לגבול המוקטן של התמונה\n" -"• גובה: מתאים סמן גובה לגובה התמונה, למשל מתאים לטקסט\n" -"•אפשרויות מתקדמות: מפעיל שני תפריטים נוספים" - -#: ../src/iop/watermark.c:1339 -msgid "reference to which the marker should be scaled to" -msgstr "נקודת ייחוס אליה הסמן יותאם בגודל" - -#: ../src/iop/watermark.c:1343 -msgid "length of the marker which is used as scaling reference" -msgstr "אורך הסמן בו נעשה שימוש כנקודת ייחוס לשינוי גודל" - -#: ../src/iop/watermark.c:1347 ../src/libs/print_settings.c:2675 -msgid "alignment" -msgstr "כיוון" - -#. Let's add some tooltips and hook up some signals... -#: ../src/iop/watermark.c:1368 -msgid "the opacity of the watermark" -msgstr "אטימות חותמת המים" - -#: ../src/iop/watermark.c:1369 -msgid "the scale of the watermark" -msgstr "קנה המידה של חותמת המים" - -#: ../src/iop/watermark.c:1370 -msgid "the rotation of the watermark" -msgstr "סיבוב חותמת המים" - -#: ../src/iop/zonesystem.c:111 -msgid "zone system" -msgstr "מערכת האזורים" - -#: ../src/iop/zonesystem.c:490 -msgid "" -"lightness zones\n" -"use mouse scrollwheel to change the number of zones\n" -"left-click on a border to create a marker\n" -"right-click on a marker to delete it" -msgstr "" -"אזורי תאורה:\n" -"השתמש בגלגלת העכבר לשינוי מספר האזורים\n" -"הקלק שמאלית על הגבול ליצירת סמן\n" -"הקלק ימנית על הסמן למחיקתו" - -#: ../src/libs/backgroundjobs.c:52 -msgid "background jobs" -msgstr "עבודות ברקע" - -#: ../src/libs/camera.c:78 -msgid "camera settings" -msgstr "הגדרות מצלמה" - -#: ../src/libs/camera.c:131 -msgid "toggle view property in center view" -msgstr "מתג תכונת תצוגה בתצוגה מרכזית" - -#: ../src/libs/camera.c:201 -msgid "connection with camera lost, exiting tethering mode" -msgstr "חיבור למצלמה אבד, יוצא ממצב קשירה" - -#: ../src/libs/camera.c:342 -msgid "battery" -msgstr "סוללה" - -#: ../src/libs/camera.c:342 -msgid "n/a" -msgstr "n/a" - -#. Camera control -#: ../src/libs/camera.c:417 -msgctxt "section" -msgid "camera control" -msgstr "שליטה במצלמה" - -#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2360 -msgid "modes" -msgstr "מצבים" - -#: ../src/libs/camera.c:422 -msgid "timer (s)" -msgstr "טיימר (שנ')" - -#: ../src/libs/camera.c:423 -msgid "count" -msgstr "ספור" - -#: ../src/libs/camera.c:424 -msgid "brackets" -msgstr "תחימה" - -#: ../src/libs/camera.c:425 -msgid "bkt. steps" -msgstr "קפיצות בתחימה" - -#: ../src/libs/camera.c:458 -msgid "capture image(s)" -msgstr "רכוש תמונה/ות" - -#: ../src/libs/camera.c:461 -msgid "toggle delayed capture mode" -msgstr "מתג מצב רכישה מושהית" - -#: ../src/libs/camera.c:462 -msgid "toggle sequenced capture mode" -msgstr "מתג מצב רכישה סדרתית" - -#: ../src/libs/camera.c:463 -msgid "toggle bracketed capture mode" -msgstr "מתג מצב רכישה תחומה" - -#: ../src/libs/camera.c:464 -msgid "the count of seconds before actually doing a capture" -msgstr "ספירת השניות לפני רכישת תמונה בפועל" - -#: ../src/libs/camera.c:466 -msgid "" -"the amount of images to capture in a sequence,\n" -"you can use this in conjunction with delayed mode to create stop-motion " -"sequences" -msgstr "" -"כמות התמונות לרכוש בסדרה,\n" -"ניתן להשתמש בזה בצמוד למצב השהיה על מנת ליצור סדרות אנימציה סטופ מושון" - -#: ../src/libs/camera.c:469 -msgid "" -"the amount of brackets on each side of centered shoot, amount of images = " -"(brackets*2) + 1" -msgstr "" -"כמות הקפיצות משני צידי החשיפה המרכזית של הצילום, כמות התמונות שווה ל " -"(קפיצות*2)+1" - -#: ../src/libs/camera.c:471 -msgid "" -"the amount of steps per bracket, steps is camera configurable and usually 3 " -"steps per stop\n" -"with other words, 3 steps is 1EV exposure step between brackets" -msgstr "" -"מספר דרגות החשיפה לקפיצה, הדרגות מוגדרות במצלמה ובדרך כלל 3 דרגות לסטופ\n" -"במילים אחרות 3 דרגות שוות לקפיצת חשיפה של 1EV בין חשיפות עוקבות" - -#. user specified properties -#: ../src/libs/camera.c:494 -msgctxt "section" -msgid "additional properties" -msgstr "תכונות נוספות" - -#: ../src/libs/camera.c:497 -msgid "label" -msgstr "תווית" - -#: ../src/libs/camera.c:505 -msgid "property" -msgstr "תכונה" - -#: ../src/libs/camera.c:517 -msgid "add user property" -msgstr "הוסף תכונת משתמש" - -#: ../src/libs/camera.c:537 -msgid "program" -msgstr "תוכנית" - -#: ../src/libs/camera.c:540 ../src/libs/camera.c:542 -msgid "focus mode" -msgstr "מצב פוקוס" - -#: ../src/libs/camera.c:553 -msgid "shutterspeed2" -msgstr "מהירות סגר 2" - -#: ../src/libs/camera.c:555 -msgid "shutterspeed" -msgstr "מהירות סגר" - -#: ../src/libs/camera.c:561 -msgid "WB" -msgstr "איזון לבן (WB)" - -#: ../src/libs/collect.c:151 -msgid "collections" -msgstr "אוספים" - -#: ../src/libs/collect.c:407 -msgid "search filmroll" -msgstr "חפש בגליל פילם" - -#: ../src/libs/collect.c:490 -#, c-format -msgid "problem selecting new path for the filmroll in %s" -msgstr "בעיה בבחירת נתיב חדש עבור גליל פילם ב %s" - -#: ../src/libs/collect.c:553 -msgid "search filmroll..." -msgstr "חיפוש בגליל פילם..." - -#: ../src/libs/collect.c:557 -msgid "remove..." -msgstr "הסר..." - -#: ../src/libs/collect.c:1225 -msgid "uncategorized" -msgstr "לא מקוטלג" - -#: ../src/libs/collect.c:2138 -msgid "use <, <=, >, >=, <>, =, [;] as operators" -msgstr "השתמש ב <, <=, >, >=, <>, =, [;] כאופרטורים" - -#: ../src/libs/collect.c:2142 -msgid "" -"use <, <=, >, >=, <>, =, [;] as operators\n" -"star rating: 0-5\n" -"rejected images: -1" -msgstr "" -"השתמש ב <, <=, >, >=, <>, =, [;] כאופרטורים\n" -"דירוג כוכבים: 0-5\n" -"תמונות שנדחו: 1-" - -#: ../src/libs/collect.c:2149 -msgid "" -"use <, <=, >, >=, <>, =, [;] as operators\n" -"type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)" -msgstr "" -"השתמש ב <, <=, >, >=, <>, =, [;] כאופרטורים \n" -"הקלד תאריכים בפורמט: YYYY:MM:DD hh:mm:ss.sss (רק חלק השנה מחייב)" - -#: ../src/libs/collect.c:2156 -#, no-c-format -msgid "use `%' as wildcard and `,' to separate values" -msgstr "השתמש ב `%' כקלף משוגע ו `,' להפריד ערכים" - -#: ../src/libs/collect.c:2162 -#, no-c-format -msgid "" -"use `%' as wildcard\n" -"click to include hierarchy + sub-hierarchies (suffix `*')\n" -"shift+click to include only the current hierarchy (no suffix)\n" -"ctrl+click to include only sub-hierarchies (suffix `|%')" -msgstr "" -"השתמש ב '%' כקלף משוגע\n" -"הקלק לכלול היררכיה + תת-היררכיות (סיומת `*')\n" -"קליק+shift לכלול רק היררכיה נוכחית (ללא סיומת)\n" -"קליק+ctrl לכלול רק תת-היררכיות (סיומת `|%')" - -#: ../src/libs/collect.c:2174 -#, no-c-format -msgid "" -"use `%' as wildcard\n" -"click to include location + sub-locations (suffix `*')\n" -"shift+click to include only the current location (no suffix)\n" -"ctrl+click to include only sub-locations (suffix `|%')" -msgstr "" -"השתמש ב '%' כקלף משוגע\n" -"הקלק לכלול מיקום + תת-מיקומים (סיומת `*')\n" -"קליק+shift לכלול רק מיקום נוכחי (ללא סיומת)\n" -"קליק+ctrl לכלול רק תת-מיקומים (סיומת `|%')" - -#: ../src/libs/collect.c:2186 -#, no-c-format -msgid "" -"use `%' as wildcard\n" -"click to include current + sub-folders (suffix `*')\n" -"shift+click to include only the current folder (no suffix)\n" -"ctrl+click to include only sub-folders (suffix `|%')" -msgstr "" -"השתמש ב '%' כקלף משוגע\n" -"הקלק לכלול תיקייה נוכחית + תת-תיקיות (סיומת `*')\n" -"קליק+shift לכלול רק תיקייה נוכחית (ללא סיומת)\n" -"קליק+ctrl לכלול רק תת-תיקיות (סיומת `|%')" - -#: ../src/libs/collect.c:2197 -#, no-c-format -msgid "use `%' as wildcard" -msgstr "השתמש ב `%' כקלף משוגע" - -#: ../src/libs/collect.c:2263 ../src/libs/collect.c:2277 -#: ../src/libs/collect.c:2800 -msgid "clear this rule" -msgstr "נקה כלל זה" - -#: ../src/libs/collect.c:2267 -msgid "clear this rule or add new rules" -msgstr "נקה כלל זה או הוסף כלל חדש" - -#: ../src/libs/collect.c:2806 -msgid "narrow down search" -msgstr "צמצם חיפוש" - -#: ../src/libs/collect.c:2811 -msgid "add more images" -msgstr "הוסף תמונות נוספות" - -#: ../src/libs/collect.c:2816 -msgid "exclude images" -msgstr "אל תכלול תמונות" - -#: ../src/libs/collect.c:2823 -msgid "change to: and" -msgstr "שנה ל: גם" - -#: ../src/libs/collect.c:2828 -msgid "change to: or" -msgstr "שנה ל: או" - -#: ../src/libs/collect.c:2833 -msgid "change to: except" -msgstr "שנה ל: חוץ מ" - -#. the different categories -#: ../src/libs/collect.c:2859 ../src/libs/filtering.c:857 -#: ../src/libs/filtering.c:924 ../src/libs/filtering.c:1558 -#: ../src/libs/filtering.c:1890 -msgid "files" -msgstr "קבצים" - -#: ../src/libs/collect.c:2864 ../src/libs/export_metadata.c:312 -#: ../src/libs/filtering.c:862 ../src/libs/filtering.c:929 -#: ../src/libs/filtering.c:1566 ../src/libs/filtering.c:1894 -#: ../src/libs/image.c:464 ../src/libs/image.c:574 ../src/libs/image.c:582 -#: ../src/libs/metadata.c:677 ../src/libs/metadata_view.c:1226 -msgid "metadata" -msgstr "מטא-נתונים" - -#: ../src/libs/collect.c:2883 ../src/libs/filtering.c:883 -#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1892 -msgid "times" -msgstr "פעמים" - -#: ../src/libs/collect.c:2891 ../src/libs/filtering.c:891 -#: ../src/libs/filtering.c:958 ../src/libs/filtering.c:1590 -msgid "capture details" -msgstr "רכוש פרטים" - -#: ../src/libs/collect.c:2900 ../src/libs/filtering.c:900 -#: ../src/libs/filtering.c:967 ../src/libs/filtering.c:1602 -#: ../src/libs/filtering.c:1896 ../src/libs/tools/darktable.c:65 -msgid "darktable" -msgstr "darktable" - -#: ../src/libs/collect.c:2913 -msgid "collections settings" -msgstr "הגדרות אוספים" - -#: ../src/libs/collect.c:2916 ../src/libs/export_metadata.c:288 -#: ../src/libs/metadata.c:633 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:228 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3472 -msgid "save" -msgstr "שמירה" - -#: ../src/libs/collect.c:2936 ../src/libs/export.c:1046 -#: ../src/libs/metadata.c:780 ../src/libs/metadata_view.c:1306 -#: ../src/libs/recentcollect.c:293 ../src/libs/tagging.c:3494 -msgid "preferences..." -msgstr "העדפות..." - -#: ../src/libs/collect.c:3041 ../src/libs/filtering.c:1432 -msgid "AND" -msgstr "AND" - -#: ../src/libs/collect.c:3046 ../src/libs/filtering.c:1437 -msgid "OR" -msgstr "OR" - -#. case DT_LIB_COLLECT_MODE_AND_NOT: -#: ../src/libs/collect.c:3051 ../src/libs/filtering.c:1442 -msgid "BUT NOT" -msgstr "BUT NOT" - -#: ../src/libs/collect.c:3223 ../src/libs/filtering.c:2164 -msgid "revert to a previous set of rules" -msgstr "חזור לסט קודם של כללים" - -#: ../src/libs/collect.c:3280 -msgid "jump back to previous collection" -msgstr "קפוץ חזרה לאוסף הקודם" - -#: ../src/libs/colorpicker.c:51 -msgid "LCh" -msgstr "LCh" - -#: ../src/libs/colorpicker.c:51 -msgid "HSV" -msgstr "HSV" - -#: ../src/libs/colorpicker.c:51 -msgid "Hex" -msgstr "Hex" - -#: ../src/libs/colorpicker.c:53 -msgid "mean" -msgstr "ממוצע" - -#: ../src/libs/colorpicker.c:71 -msgid "color picker" -msgstr "בוחר צבע" - -#: ../src/libs/colorpicker.c:463 -msgid "" -"hover to highlight sample on canvas,\n" -"click to lock sample,\n" -"right-click to load sample area into active color picker" -msgstr "" -"רחף להבליט דגימה על הקנבס,\n" -"הקלק לנעול דגימה,\n" -"קליק-ימני לטעינת האזור הדגום לתוך בוחר הצבע הפעיל" - -#: ../src/libs/colorpicker.c:561 ../src/libs/colorpicker.c:612 -msgid "click to (un)hide large color patch" -msgstr "הקלק להחביא(להראות) טלאי צבע גדול" - -#: ../src/libs/colorpicker.c:575 -msgid "statistic" -msgstr "סטטיסטיקה" - -#: ../src/libs/colorpicker.c:576 -msgid "select which statistic to show" -msgstr "בחר את סוג הסטטיסטיקה להציג" - -#: ../src/libs/colorpicker.c:585 -msgid "select which color mode to use" -msgstr "בחר את מצב הצבע לשימוש" - -#: ../src/libs/colorpicker.c:594 -msgid "" -"turn on color picker\n" -"ctrl+click or right-click to select an area" -msgstr "" -"הדלק בוחר צבע\n" -"קליק+ctrl או קליק-ימני לבחירת אזור" - -#: ../src/libs/colorpicker.c:636 -msgid "add sample" -msgstr "הוסף דגימה" - -#. Adding the live samples section -#: ../src/libs/colorpicker.c:640 -msgctxt "section" -msgid "live samples" -msgstr "דגימות חיות" - -#: ../src/libs/colorpicker.c:648 -msgid "display samples on image/vectorscope" -msgstr "הצג דגימות על התמונה/סקופ ווקטורי" - -#: ../src/libs/colorpicker.c:657 -msgid "restrict scope to selection" -msgstr "הגבל טווח לנבחר" - -#: ../src/libs/copy_history.c:61 -msgid "history stack" -msgstr "מחסנית הסטוריה" - -#: ../src/libs/copy_history.c:114 -msgid "open sidecar file" -msgstr "פתח קובץ נלווה" - -#: ../src/libs/copy_history.c:149 -msgid "XMP sidecar files" -msgstr "קובץ נלווה XMP" - -#: ../src/libs/copy_history.c:166 -#, c-format -msgid "error loading file '%s'" -msgstr "שגיאה בטעינת קובץ '%s'" - -#: ../src/libs/copy_history.c:206 -#, c-format -msgid "no history compression of %d image" -msgid_plural "no history compression of %d images" -msgstr[0] "אין דחיסת היסטוריה עבור תמונה %d" -msgstr[1] "אין דחיסת היסטוריה עבור תמונות %d" - -#: ../src/libs/copy_history.c:247 -msgid "delete images' history?" -msgstr "מחק את ההיסטוריה של התמונות?" - -#: ../src/libs/copy_history.c:248 -#, c-format -msgid "do you really want to clear history of %d selected image?" -msgid_plural "do you really want to clear history of %d selected images?" -msgstr[0] "האם את/ה באמת מעוניין/ת לנקות את ההיסטוריה של התמונה הנבחרת %d?" -msgstr[1] "האם את/ה באמת מעוניין/ת לנקות את ההיסטוריה של התמונות הנבחרות %d?" - -#: ../src/libs/copy_history.c:364 -msgid "selective copy..." -msgstr "העתקה סלקטיבית..." - -#: ../src/libs/copy_history.c:365 -msgid "choose which modules to copy from the source image" -msgstr "בחר אילו מודולים להעתיק מתמונת המקור" - -#: ../src/libs/copy_history.c:371 -msgid "" -"copy history stack of\n" -"first selected image" -msgstr "" -"העתק את מחסנית ההיסטוריה של\n" -"תמונה נבחרת ראשונה" - -#: ../src/libs/copy_history.c:376 -msgid "selective paste..." -msgstr "הדבקה סלקטיבית..." - -#: ../src/libs/copy_history.c:377 -msgid "choose which modules to paste to the target image(s)" -msgstr "בחר אילו מודולים להדביק לתמונת/ות המטרה" - -#: ../src/libs/copy_history.c:382 ../src/libs/image.c:588 -msgid "paste" -msgstr "הדבק" - -#: ../src/libs/copy_history.c:383 -msgid "" -"paste history stack to\n" -"all selected images" -msgstr "" -"הדבק את מחסנית ההיסטוריה ל\n" -"כל התמונות הנבחרות" - -#: ../src/libs/copy_history.c:389 -msgid "compress history" -msgstr "דחוס היסטוריה" - -#: ../src/libs/copy_history.c:390 -msgid "" -"compress history stack of\n" -"all selected images" -msgstr "" -"דחוס את מחסנית ההיסטוריה\n" -"של כל התמונות הנבחרות" - -#: ../src/libs/copy_history.c:395 -msgid "" -"discard history stack of\n" -"all selected images" -msgstr "" -"השלך את מחסנית ההיסטוריה\n" -"של כל התמונות הנבחרות" - -#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:847 -msgid "how to handle existing history" -msgstr "כיצד לטפל בהיסטוריה הקיימת" - -#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:850 -msgid "append" -msgstr "צרף" - -#: ../src/libs/copy_history.c:409 -msgid "load sidecar file..." -msgstr "טען קובץ נלווה." - -#: ../src/libs/copy_history.c:410 -msgid "" -"open an XMP sidecar file\n" -"and apply it to selected images" -msgstr "" -"פתח קובץ XMP נלווה\n" -"ויישם אותו על התמונות הנבחרות" - -#: ../src/libs/copy_history.c:415 -msgid "write history stack and tags to XMP sidecar files" -msgstr "כתוב את מחסנית ההיסטוריה ותגיות לקובץ XMP נלווה" - -#: ../src/libs/duplicate.c:56 -msgid "duplicate manager" -msgstr "מנהל שכפולים" - -#: ../src/libs/duplicate.c:401 -msgid "create a 'virgin' duplicate of the image without any development" -msgstr "צור העתק 'בתולי' של התמונה ללא כל פיתוח" - -#: ../src/libs/duplicate.c:406 -msgid "create a duplicate of the image with same history stack" -msgstr "צור העתק של התמונה עם אותה מחסנית הסטוריה" - -#. Export button -#: ../src/libs/export.c:153 ../src/libs/export.c:1281 -msgid "export" -msgstr "ייצא" - -#: ../src/libs/export.c:306 -msgid "export to disk" -msgstr "ייצא לדיסק" - -#: ../src/libs/export.c:485 -#, c-format -msgid "which is equal to %s × %s px" -msgstr "ששווה ל %s × %s px" - -#: ../src/libs/export.c:520 -msgctxt "unit" -msgid "in" -msgstr "אינצ'" - -#: ../src/libs/export.c:1060 -msgctxt "section" -msgid "storage options" -msgstr "אפשרויות אחסון" - -#: ../src/libs/export.c:1064 -msgid "target storage" -msgstr "יעד אחסון" - -#: ../src/libs/export.c:1086 -msgctxt "section" -msgid "format options" -msgstr "אפשרויות פורמט" - -#: ../src/libs/export.c:1090 -msgid "file format" -msgstr "פורמט קובץ" - -#: ../src/libs/export.c:1107 -msgctxt "section" -msgid "global options" -msgstr "אפשרויות גלובליות" - -#: ../src/libs/export.c:1110 -msgid "set size" -msgstr "הגדר גודל" - -#: ../src/libs/export.c:1111 -msgid "choose a method for setting the output size" -msgstr "בחר שיטה לקביעת גודל פלט" - -#: ../src/libs/export.c:1114 -msgid "in pixels (for file)" -msgstr "בפיקסלים (עבור קובץ)" - -#: ../src/libs/export.c:1115 -msgid "in cm (for print)" -msgstr "בסנטימטרים (עבור הדפסה)" - -#: ../src/libs/export.c:1116 -msgid "in inch (for print)" -msgstr "באינצ'ים (עבור הדפסה)" - -#: ../src/libs/export.c:1117 -msgid "by scale (for file)" -msgstr "במישקול (עבור קובץ)" - -#: ../src/libs/export.c:1119 -msgid "print width" -msgstr "הדפס רוחב" - -#: ../src/libs/export.c:1120 ../src/libs/export.c:1132 -msgid "" -"maximum output width limit.\n" -"click middle mouse button to reset to 0." -msgstr "" -"מגבלת רוחב פלט מקסימלית\n" -"הקלק על כפתור עכבר אמצעי לאתחל ל 0." - -#: ../src/libs/export.c:1123 -msgid "print height" -msgstr "הדפס גובה" - -#: ../src/libs/export.c:1124 ../src/libs/export.c:1136 -msgid "" -"maximum output height limit.\n" -"click middle mouse button to reset to 0." -msgstr "" -"מגבלת גובה פלט מקסימלית\n" -"הקלק על כפתור עכבר אמצעי לאתחל ל 0." - -#: ../src/libs/export.c:1128 -msgid "resolution in dot per inch" -msgstr "רזולוציה בפיקסלים לאינץ'" - -#: ../src/libs/export.c:1148 -msgid "@" -msgstr "@" - -#: ../src/libs/export.c:1161 ../src/libs/tools/global_toolbox.c:217 -msgid "px" -msgstr "px" - -#: ../src/libs/export.c:1166 -msgid "" -"it can be an integer, decimal number or simple fraction.\n" -"zero or empty values are equal to 1.\n" -"click middle mouse button to reset to 1." -msgstr "" -"זה יכול להיות מספר שלם, עשרוני או שבר פשוט.\n" -"אפס או ערך ריק שווים ל 1.\n" -"הקלק כפתור עכבר אמצעי לאתחל ל 1." - -#: ../src/libs/export.c:1185 -msgid "allow upscaling" -msgstr "הרשה הגדלה" - -#: ../src/libs/export.c:1191 -msgid "high quality resampling" -msgstr "דגימה מחדש באיכות גבוהה" - -#: ../src/libs/export.c:1192 -msgid "do high quality resampling during export" -msgstr "בצע דגימה מחדש באיכות גבוהה במהלך הייצוא" - -#: ../src/libs/export.c:1198 -msgid "store masks" -msgstr "אחסן מסיכות" - -#: ../src/libs/export.c:1199 -msgid "store masks as layers in exported images. only works for some formats." -msgstr "אחסן מסיכות כשכבות בתמונות המיוצאות. עובד רק בפורמטים מסוימים." - -#: ../src/libs/export.c:1210 ../src/libs/export.c:1245 -#: ../src/libs/print_settings.c:2777 ../src/libs/print_settings.c:2823 -msgid "image settings" -msgstr "הגדרות תמונה" - -#: ../src/libs/export.c:1220 ../src/libs/print_settings.c:2811 -msgid "output ICC profiles" -msgstr "פרופילי ICC לפלט" - -#: ../src/libs/export.c:1228 -msgid "" -"• perceptual: smoothly moves out-of-gamut colors into gamut, preserving " -"gradations,\n" -"but distorts in-gamut colors in the process.\n" -"note that perceptual is often a proprietary LUT that depends on the " -"destination space.\n" -"\n" -"• relative colorimetric: keeps luminance while reducing as little as " -"possible\n" -"saturation until colors fit in gamut.\n" -"\n" -"• saturation: designed to present eye-catching business graphics\n" -"by preserving the saturation. (not suited for photography).\n" -"\n" -"• absolute colorimetric: adapt white point of the image to the white point " -"of the\n" -"destination medium and do nothing else. mainly used when proofing colors.\n" -"(not suited for photography)." -msgstr "" -"• תפיסתי: מזיז צבעים מחוץ למכלול הצבע פנימה, משמר מעברים, \n" -"אך מעוות צבעים שבתוך מכלול הצבע.\n" -" שים לב שתפיסתי לעיתים קרובות מבוסס על LUT קנייני שתלוי במרחב צבע היעד.\n" -"\n" -"• קולורימטרי יחסי: משמר לומיננס בעוד מפחית ככל האפשר \n" -"רוויה עד שהצבעים נכנסים למכלול הצבע.\n" -"\n" -"• רוויה: מתוכנן להציג גרפיקה עסקית מושכת עין תוך שימור רוויה. (לא מתאים " -"לצילום).\n" -"\n" -"• קולורימטרי מוחלט: אמץ נקודת לבן ממרחב הצבע של התמונה \n" -"למרחב צבע מדיום המטרה ושום דבר אחר. משמש בעיקר לאשרור צבע. \n" -"(אינו מתאים לצילום)." - -#: ../src/libs/export.c:1255 ../src/libs/print_settings.c:2833 -msgid "style" -msgstr "סגנון" - -#: ../src/libs/export.c:1258 -msgid "temporary style to use while exporting" -msgstr "סגנון זמני לשימוש בעת ייצוא" - -#: ../src/libs/export.c:1263 ../src/libs/print_settings.c:2876 -msgid "" -"whether the style items are appended to the history or replacing the history" -msgstr "האם פריטי העיצוב מצורפים להיסטוריה הקיימת או מחליפים אותה" - -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 -msgid "replace history" -msgstr "החלף היסטוריה" - -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 -msgid "append history" -msgstr "צרף היסטוריה" - -#: ../src/libs/export.c:1282 -msgid "export with current settings" -msgstr "ייצא עם הגדרות נוכחיות" - -#: ../src/libs/export_metadata.c:163 -msgid "select tag" -msgstr "בחר תג" - -#: ../src/libs/export_metadata.c:164 -msgid "add" -msgstr "הוסף" - -#: ../src/libs/export_metadata.c:175 -msgid "list filter" -msgstr "מסנן רשימה" - -#: ../src/libs/export_metadata.c:186 -msgid "" -"list of available tags. click 'add' button or double-click on tag to add the " -"selected one" -msgstr "" -"רשימה של תגים זמינים. הקלק על כפתור 'הוסף' או הקלק כפול על תג להוספת הנבחר" - -#: ../src/libs/export_metadata.c:287 -msgid "edit metadata exportation" -msgstr "ערוך פרטי ייצוא של מטה נתונים" - -#: ../src/libs/export_metadata.c:304 -msgid "general settings" -msgstr "הגדרות כלליות" - -#: ../src/libs/export_metadata.c:309 -msgid "EXIF data" -msgstr "נתוני EXIF" - -#: ../src/libs/export_metadata.c:310 -msgid "export EXIF metadata" -msgstr "ייצא מטא נתונים EXIF" - -#: ../src/libs/export_metadata.c:313 -msgid "export darktable XMP metadata (from metadata editor module)" -msgstr "ייצא מטא נתונים של darktable XMP (מתוך מודול עורך המטא נתונים)" - -#: ../src/libs/export_metadata.c:323 -msgid "only embedded" -msgstr "רק מוטמעים" - -#: ../src/libs/export_metadata.c:324 -msgid "" -"per default the interface sends some (limited) metadata beside the image to " -"remote storage.\n" -"to avoid this and let only image embedded darktable XMP metadata, check this " -"flag.\n" -"if remote storage doesn't understand darktable XMP metadata, you can use " -"calculated metadata instead" -msgstr "" -"לפי ברירת מחדל הממשק שולח מספר (מוגבל) של מטא נתונים מעבר לתמונה לאחסון " -"מרוחק.\n" -"להימנע מכך ולאפשר רק למטא נתונים darktable XMP המוטמעים בתמונה סמן דגל זה.\n" -"אם האחסון המרוחק לא מבין מטא נתונים darktable XMP, ביכולתך להשתמש במטא " -"נתונים המחושבים במקום" - -#: ../src/libs/export_metadata.c:330 ../src/libs/image.c:566 -msgid "geo tags" -msgstr "גיאו תגים" - -#: ../src/libs/export_metadata.c:331 -msgid "export geo tags" -msgstr "ייצא גיאו תגים" - -#: ../src/libs/export_metadata.c:334 -msgid "export tags (to Xmp.dc.Subject)" -msgstr "ייצא תגים (ל Xmp.dc.Subject)" - -#: ../src/libs/export_metadata.c:342 -msgid "private tags" -msgstr "תגים פרטיים" - -#: ../src/libs/export_metadata.c:343 -msgid "export private tags" -msgstr "ייצא תגים פרטיים" - -#: ../src/libs/export_metadata.c:345 -msgid "synonyms" -msgstr "מילים נרדפות" - -#: ../src/libs/export_metadata.c:346 -msgid "export tags synonyms" -msgstr "ייצא תגיות נרדפות" - -#: ../src/libs/export_metadata.c:348 -msgid "omit hierarchy" -msgstr "השמט היררכיה" - -#: ../src/libs/export_metadata.c:349 -msgid "" -"only the last part of the hierarchical tags is included. can be useful if " -"categories are not used" -msgstr "" -"רק החלק האחרון של התגים ההיררכים כלולים. שימושי אם לא נעשה שימוש בקטגוריות" - -#: ../src/libs/export_metadata.c:352 -msgid "hierarchical tags" -msgstr "תגים היררכים" - -#: ../src/libs/export_metadata.c:353 -msgid "export hierarchical tags (to Xmp.lr.Hierarchical Subject)" -msgstr "ייצא תגים היררכים (ל Xmp.lr.Hierarchical Subject)" - -#: ../src/libs/export_metadata.c:355 -msgid "develop history" -msgstr "היסטורית פיתוח" - -#: ../src/libs/export_metadata.c:356 -msgid "" -"export darktable development data (recovery purpose in case of loss of " -"database or XMP file)" -msgstr "" -"ייצא נתוני פיתוח של darktable (לשם שחזור במקרה של אבדן נתונים או קובץ XMP)" - -#: ../src/libs/export_metadata.c:363 -msgid "per metadata settings" -msgstr "לפי הגדרות מטא נתונים" - -#: ../src/libs/export_metadata.c:376 -msgid "redefined tag" -msgstr "תג מוגדר מחדש" - -#: ../src/libs/export_metadata.c:382 -msgid "formula" -msgstr "נוסחה" - -#: ../src/libs/export_metadata.c:385 -msgid "" -"list of calculated metadata\n" -"click on '+' button to select and add new metadata\n" -"if formula is empty, the corresponding metadata is removed from exported " -"file,\n" -"if formula is '=', the EXIF metadata is exported even if EXIF data are " -"disabled\n" -"otherwise the corresponding metadata is calculated and added to exported " -"file\n" -"click on formula cell to edit\n" -"type '$(' to activate the completion and see the list of variables" -msgstr "" -"רשימת מטא-נתונים מחושבים\n" -"הקלק על '+' לבחירה והוספת מטא-נתונים\n" -"אם הנוסחה ריקה, המטא נתונים המתאימים יוסרו מהקובץ המיוצא\n" -"אם הנוסחה היא '=', המטא נתונים ב EXIF מיוצאים אפילו אם נתוני ה EXIF " -"מנוטרלים\n" -"אחרת המטא-נתונים המתאימים יחושבו ויוספו לקובץ המיוצא\n" -"הקלק על תא הנוסחה לערוך\n" -"הקלד '$(' להפעלת ההשלמה וצפיה ברשימת המשתנים" - -#: ../src/libs/export_metadata.c:442 -msgid "add an output metadata tag" -msgstr "הוסף תג מטא נתונים לפלט" - -#: ../src/libs/export_metadata.c:447 -msgid "delete metadata tag" -msgstr "מחק תגית מטא נתונים" - -#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:128 -msgid "full path" -msgstr "נתיב מלא" - -#: ../src/libs/filtering.c:72 -msgid "group" -msgstr "קבוצה" - -#: ../src/libs/filtering.c:73 ../src/libs/live_view.c:313 -msgid "id" -msgstr "מזהה" - -#: ../src/libs/filtering.c:74 -msgid "custom sort" -msgstr "סידור מותאם" - -#: ../src/libs/filtering.c:75 -msgid "shuffle" -msgstr "ערבב" - -#: ../src/libs/filtering.c:263 -msgid "collection filters" -msgstr "מסנני אוספים" - -#: ../src/libs/filtering.c:296 -msgid "initial setting" -msgstr "הגדרה ראשונית" - -#: ../src/libs/filtering.c:315 -msgid "imported: last 24h" -msgstr "יובאו: 24 שעות אחרונות" - -#: ../src/libs/filtering.c:320 -msgid "imported: last 30 days" -msgstr "יובאו: 30 ימים אחרונים" - -#: ../src/libs/filtering.c:326 -msgid "taken: last 24h" -msgstr "צולמו: 24 שעות אחרונות" - -#: ../src/libs/filtering.c:330 -msgid "taken: last 30 days" -msgstr "צולמו: 30 ימים אחרונים" - -#: ../src/libs/filtering.c:702 -msgid "click or click&drag to select one or multiple values" -msgstr "קליק או קליק&גרור לבחירת אחד או יותר ערכים" - -#: ../src/libs/filtering.c:703 -msgid "right-click opens a menu to select the available values" -msgstr "קליק-ימני פותח תפריט לבחירת ערכים זמינים" - -#: ../src/libs/filtering.c:800 -#, c-format -msgid "you can't have more than %d rules" -msgstr "ניתן ליצור יותר מ %d כללים" - -#: ../src/libs/filtering.c:922 ../src/libs/filtering.c:1556 -msgid "rule property" -msgstr "תכונת כלל" - -#: ../src/libs/filtering.c:987 -msgid "" -"rule property\n" -"this can't be changed as the rule is pinned to the toolbar" -msgstr "" -"תכונת כלל\n" -"לא ניתן לשינוי כיוון שהכלל נעוץ בסרגל הכלים" - -#: ../src/libs/filtering.c:1035 -msgctxt "quickfilter" -msgid "filter" -msgstr "פילטר" - -#: ../src/libs/filtering.c:1062 -msgid "" -"this rule is pinned to the top toolbar\n" -"click to un-pin" -msgstr "" -"כלל זה נעוץ בסרגל הכלים העליון\n" -"הקלק להסרת נעיצה" - -#: ../src/libs/filtering.c:1063 -msgid "you can't disable the rule as it is pinned to the toolbar" -msgstr "לא ניתן לנטרל את הכלל כיוון שהוא נעוץ בסרגל הכלים" - -#: ../src/libs/filtering.c:1064 -msgid "you can't remove the rule as it is pinned to the toolbar" -msgstr "לא ניתן למחוק את הכלל כיוון שהוא נעוץ בסרגל הכלים" - -#: ../src/libs/filtering.c:1069 -msgid "click to pin this rule to the top toolbar" -msgstr "הקלק לנעוץ את הכלל בסרגל הכלים העליון" - -#: ../src/libs/filtering.c:1070 -msgid "remove this collect rule" -msgstr "הסר כלל איסוף זה" - -#: ../src/libs/filtering.c:1072 -msgid "this rule is enabled" -msgstr "כלל זה פעיל" - -#: ../src/libs/filtering.c:1074 -msgid "this rule is disabled" -msgstr "כלל זה מנוטרל" - -#: ../src/libs/filtering.c:1202 -msgid "or" -msgstr "or" - -#: ../src/libs/filtering.c:1203 -msgid "and not" -msgstr "ולא" - -#: ../src/libs/filtering.c:1205 -msgid "define how this rule should interact with the previous one" -msgstr "הגדר את האופן בו כלל זה מושפע מהכלל הקודם" - -#: ../src/libs/filtering.c:1466 -msgid " (off)" -msgstr " (כבוי)" - -#: ../src/libs/filtering.c:1663 -msgid "you can't add more rules." -msgstr "לא ניתן להוסיף עוד כללים." - -#. fill the popover with all pinned rules -#: ../src/libs/filtering.c:1696 -msgid "shown filters" -msgstr "מסננים מוצגים" - -#: ../src/libs/filtering.c:1711 -msgid "new filter" -msgstr "פילטר חדש" - -#: ../src/libs/filtering.c:1884 -msgid "sort order" -msgstr "סדר מיון" - -#: ../src/libs/filtering.c:1886 -msgid "determine the sort order of shown images" -msgstr "קבע את אופן הסידור של התמונות המוצגות" - -#: ../src/libs/filtering.c:1906 -msgid "sort direction" -msgstr "כיוון מיון" - -#: ../src/libs/filtering.c:1911 -msgid "remove this sort order" -msgstr "הסר סדר מיון זה" - -#: ../src/libs/filtering.c:1995 -#, c-format -msgid "you can't have more than %d sort orders" -msgstr "לא ניתן לייצר יותר מ %d סדרי מיון" - -#: ../src/libs/filtering.c:2049 -msgid "DESC" -msgstr "DESC" - -#: ../src/libs/filtering.c:2049 -msgid "ASC" -msgstr "ASC" - -#: ../src/libs/filtering.c:2160 -msgid "new rule" -msgstr "כלל חדש" - -#: ../src/libs/filtering.c:2161 -msgid "append new rule to collect images" -msgstr "יישם כלל חדש לאיסוף תמונות" - -#: ../src/libs/filtering.c:2172 ../src/libs/tools/filter.c:116 -msgid "sort by" -msgstr "סדר לפי" - -#: ../src/libs/filtering.c:2180 -msgid "new sort" -msgstr "מיון חדש" - -#: ../src/libs/filtering.c:2181 -msgid "append new sort to order images" -msgstr "צרף מיון חדש לסידור התמונות" - -#: ../src/libs/filtering.c:2184 -msgid "revert to a previous set of sort orders" -msgstr "חזור לסט קודם של סדרי מיון" - -#. we change the tooltip of the reset button here, as we are sure the header is defined now -#: ../src/libs/filtering.c:2234 -msgid "" -"reset\n" -"ctrl+click to remove pinned rules too" -msgstr "" -"אתחל\n" -"קליק+ctrl להסרת כללים נעוצים בנוסף" - -#: ../src/libs/filters/colors.c:140 -msgid "Y" -msgstr "Y" - -#: ../src/libs/filters/colors.c:149 -msgid "P" -msgstr "P" - -#: ../src/libs/filters/colors.c:269 -msgid "color filter" -msgstr "פילטר צבע" - -#: ../src/libs/filters/colors.c:294 -msgid "" -"filter by images color label\n" -"click to toggle the color label selection\n" -"ctrl+click to exclude the color label\n" -"the gray button affects all color labels" -msgstr "" -"סנן לפי תגיות הצבע של התמונות\n" -"הקלק למיתוג בחירת תגית צבע\n" -"קליק+ctrl להחרגת תגית צבע\n" -"הכפתור האפור משפיע על על תגיות הצבע" - -#. create the filter combobox -#: ../src/libs/filters/colors.c:301 ../src/libs/filters/colors.c:312 -#: ../src/libs/filters/grouping.c:167 ../src/libs/filters/history.c:153 -#: ../src/libs/filters/local_copy.c:142 ../src/libs/filters/module_order.c:161 -#: ../src/libs/filters/rating.c:199 ../src/libs/filters/rating.c:210 -#: ../src/libs/filters/rating_range.c:325 -msgid "rules" -msgstr "כללים" - -#: ../src/libs/filters/colors.c:306 -msgid "" -"filter by images color label\n" -"and (∩): images having all selected color labels\n" -"or (∪): images with at least one of the selected color labels" -msgstr "" -"סנן לפי תגיות הצבע של התמונות\n" -"גם (∩): תמונות המכילות את כל תגיות הצבע הנבחרות\n" -"או (∪): תמונות המכילות לפחות אחת מתגיות הצבע הנבחרות" - -#: ../src/libs/filters/filename.c:365 -msgid "" -"enter filename to search.\n" -"multiple values can be separated by ','\n" -"\n" -"right-click to get existing filenames" -msgstr "" -"הכנס שם קובץ לחיפוש.\n" -"ערכים מרובים מופרדים ע\"י ','\n" -"\n" -"קליק-ימני לקבלת שמות קבצים קיימים" - -#: ../src/libs/filters/filename.c:376 -msgid "extension" -msgstr "סיומת" - -#: ../src/libs/filters/filename.c:377 -msgid "" -"enter extension to search with starting dot\n" -"multiple values can be separated by ','\n" -"handled keywords: 'RAW', 'NOT RAW', 'LDR', 'HDR'\n" -"\n" -"right-click to get existing extensions" -msgstr "" -"הכנס סיומת לחיפוש אחרי הנקודה\n" -"ערכים מרובים מופרדים ע\"י ','\n" -"מילות מפתח: 'RAW', 'NOT RAW', 'LDR', 'HDR'\n" -"\n" -"קליק-ימני לקבלת סיומות קיימות" - -#: ../src/libs/filters/filename.c:405 -msgid "" -"click to select filename\n" -"ctrl+click to select multiple values" -msgstr "" -"קליק פשוט לבחירת שם קובץ\n" -"קליק+ctrl לבחירת ערכים מרובים" - -#: ../src/libs/filters/filename.c:432 -msgid "" -"click to select extension\n" -"ctrl+click to select multiple values" -msgstr "" -"קליק פשוט לבחירת סיומת\n" -"קליק+ctrl לבחירת ערכים מרובים" - -#: ../src/libs/filters/grouping.c:141 ../src/libs/filters/grouping.c:169 -msgid "ungrouped images" -msgstr "תמונות לא מקובצות" - -#: ../src/libs/filters/grouping.c:168 -msgid "select the type of grouped image to filter" -msgstr "בחר סוג התמונה המקובצת לסינון" - -#. predefined selections -#: ../src/libs/filters/grouping.c:169 ../src/libs/filters/history.c:38 -#: ../src/libs/filters/local_copy.c:38 ../src/libs/filters/module_order.c:155 -#: ../src/libs/filters/rating_range.c:56 ../src/libs/filters/rating_range.c:72 -#: ../src/libs/filters/rating_range.c:109 ../src/libs/filters/ratio.c:68 -#: ../src/libs/filters/ratio.c:81 -msgid "all images" -msgstr "כל התמונות" - -#: ../src/libs/filters/history.c:153 -msgid "filter on history state" -msgstr "פילטר על מצב הסטוריה" - -#: ../src/libs/filters/local_copy.c:142 -msgid "local copied state filter" -msgstr "עותק מקומי של פילטר מצב" - -#: ../src/libs/filters/module_order.c:161 -msgid "filter images based on their module order" -msgstr "סנן תמונות בהתבסס על סדר המודולים שלהם" - -#: ../src/libs/filters/rating.c:199 -msgid "comparator" -msgstr "קומפרטור" - -#: ../src/libs/filters/rating.c:200 ../src/libs/filters/rating.c:210 -msgid "filter by images rating" -msgstr "סנן לפי דירוג תמונה" - -#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:542 -#: ../src/libs/tools/ratings.c:56 -msgid "ratings" -msgstr "דירוגים" - -#: ../src/libs/filters/rating.c:211 -msgid "unstarred only" -msgstr "ללא כוכבים בלבד" - -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:60 -#: ../src/libs/filters/rating_range.c:75 -msgid "rejected only" -msgstr "נדחים בלבד" - -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:58 -#: ../src/libs/filters/rating_range.c:73 ../src/libs/filters/rating_range.c:138 -msgid "all except rejected" -msgstr "הכל מלבד נדחים" - -#: ../src/libs/filters/rating_range.c:61 ../src/libs/filters/rating_range.c:76 -msgid "not rated only" -msgstr "ללא דירוג בלבד" - -#: ../src/libs/filters/rating_range.c:99 ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:131 -#: ../src/libs/filters/rating_range.c:275 -msgid "rejected" -msgstr "נדחה" - -#: ../src/libs/filters/rating_range.c:101 -#: ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:276 -msgid "not rated" -msgstr "לא מדורג" - -#: ../src/libs/filters/rating_range.c:117 -msgid "only" -msgstr "רק" - -#: ../src/libs/filters/rating_range.c:269 -msgid "better" -msgstr "טוב יותר" - -#: ../src/libs/filters/rating_range.c:270 -msgid "worse" -msgstr "גרוע יותר" - -#: ../src/libs/filters/rating_range.c:271 -msgid "cap" -msgstr "מכסה" - -#: ../src/libs/filters/rating_range.c:286 -msgid "rating filter" -msgstr "מסנן דירוג" - -#: ../src/libs/filters/ratio.c:70 ../src/libs/filters/ratio.c:82 -msgid "portrait images" -msgstr "תמונות פורטרט" - -#: ../src/libs/filters/ratio.c:71 ../src/libs/filters/ratio.c:83 -msgid "square images" -msgstr "תמונות ריבועיות" - -#: ../src/libs/filters/ratio.c:72 ../src/libs/filters/ratio.c:84 -msgid "landscape images" -msgstr "תמונות נוף" - -#: ../src/libs/filters/search.c:179 -#, no-c-format -msgid "" -"filter by text from images metadata, camera brand/model, tags, file path and " -"name\n" -"`%' is the wildcard character\n" -"by default start and end wildcards are auto-applied\n" -"starting or ending with a double quote disables the corresponding wildcard\n" -"is dimmed during the search execution" -msgstr "" -"סנן לפי טקסט המצוי במטא-נתונים, תגיות, נתיבי ושמות קבצים, סוג/מודל מצלמה\n" -"קלף משוגע הוא `%'\n" -"כברירת מחדל הקלפים המשוגעים המייצגים התחלה וסוף מיושמים אוטומטית\n" -"התחלה או סיום בגרשיים מנטרלים את הקלף המשוגע המתאים\n" -"מוחשך בזמן ביצוע החיפוש" - -#: ../src/libs/geotagging.c:368 -msgid "apply offset and geo-location" -msgstr "יישם הסחה וגיאולוקליזציה" - -#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1910 -msgid "apply geo-location" -msgstr "יישם גיאולוקליזציה" - -#: ../src/libs/geotagging.c:371 -msgid "" -"apply offset and geo-location to matching images\n" -"double operation: two ctrl-z to undo" -msgstr "" -"הפעל הסחה ו גאו-מיקום לתמונות תואמות\n" -"הפעלה כפולה: ctrl-z פעמיים לחזרה אחורה (undo)" - -#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1911 -msgid "apply geo-location to matching images" -msgstr "יישם גיאו-מיקום עבור תמונות תואמות" - -#: ../src/libs/geotagging.c:810 -msgid "GPX file track segments" -msgstr "חלקי מסלול של קובץ GPX" - -#: ../src/libs/geotagging.c:830 ../src/libs/geotagging.c:1869 -msgid "start time" -msgstr "זמן התחלה" - -#: ../src/libs/geotagging.c:831 -msgid "end time" -msgstr "זמן סיום" - -#: ../src/libs/geotagging.c:832 ../src/libs/geotagging.c:1871 -msgid "points" -msgstr "נקודות" - -#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1873 -#: ../src/libs/image.c:463 -msgid "images" -msgstr "תמונות" - -#: ../src/libs/geotagging.c:926 -msgid "open GPX file" -msgstr "פתח קובץ GPX" - -#: ../src/libs/geotagging.c:927 ../src/libs/tools/lighttable.c:333 -#: ../src/libs/tools/lighttable.c:402 ../src/views/darkroom.c:2232 -msgid "preview" -msgstr "תצוגה מקדימה" - -#: ../src/libs/geotagging.c:940 -msgid "GPS data exchange format" -msgstr "פורמט חילוף נתוני GPS" - -#: ../src/libs/geotagging.c:1739 -msgid "date/time" -msgstr "תאריך/שעה" - -#: ../src/libs/geotagging.c:1740 -msgid "" -"enter the new date/time (YYYY:MM:DD hh:mm:ss[.sss])\n" -"key in the new numbers or scroll over the cell" -msgstr "" -"הכנס תאריך/זמן חדש (YYYY:MM:DD hh:mm:ss[.sss])\n" -"הקלד את המספרים החדשים או גלול מעל השדה" - -#: ../src/libs/geotagging.c:1744 -msgid "original date/time" -msgstr "תאריך/שעה מקוריים" - -#: ../src/libs/geotagging.c:1748 -msgid "lock date/time offset value to apply it onto another selection" -msgstr "נעל ערך הסחת תאריך/זמן למימוש על בחירה אחרת" - -#: ../src/libs/geotagging.c:1752 -msgid "date/time offset" -msgstr "הסחת תאריך/זמן" - -#: ../src/libs/geotagging.c:1753 -msgid "offset or difference ([-]dd hh:mm:ss[.sss])" -msgstr "הסחה או הפרש ([-]dd hh:mm:ss[.sss])" - -#. apply -#: ../src/libs/geotagging.c:1757 -msgid "apply offset" -msgstr "הכנס הסחה" - -#: ../src/libs/geotagging.c:1758 -msgid "apply offset to selected images" -msgstr "יישם הסחה לתמונות נבחרות" - -#: ../src/libs/geotagging.c:1761 -msgid "apply date/time" -msgstr "יישם תאריך/שעה" - -#: ../src/libs/geotagging.c:1762 -msgid "apply the same date/time to selected images" -msgstr "יישם הסחת תאריך/זמן זהה לתמונות נבחרות" - -#: ../src/libs/geotagging.c:1772 -msgid "" -"start typing to show a list of permitted values and select your timezone.\n" -"press enter to confirm, so that the asterisk * disappears" -msgstr "" -"התחל להקליד על מנת לראות רשימה של ערכים מותרים ובחר את אזור הזמן שלך.\n" -"לחץ enter לאישור, כך ש הכוכבית * נעלמת" - -#. gpx -#: ../src/libs/geotagging.c:1815 -msgid "apply GPX track file..." -msgstr "יישם קובץ מעקב GPX..." - -#: ../src/libs/geotagging.c:1816 -msgid "parses a GPX file and updates location of selected images" -msgstr "מנתח קובץ GPX ומעדכן מיקום של תמונות נבחרות" - -#: ../src/libs/geotagging.c:1827 -msgctxt "section" -msgid "GPX file" -msgstr "קובץ GPX" - -#: ../src/libs/geotagging.c:1834 -msgid "select a GPX track file..." -msgstr "בחר קובץ מעקב GPX..." - -#: ../src/libs/geotagging.c:1851 -msgid "" -"list of track segments in the GPX file, for each segment:\n" -"- the start date/time in local time (LT)\n" -"- the number of track points\n" -"- the number of matching images based on images date/time, offset and time " -"zone\n" -"- more detailed time information hovering the row" -msgstr "" -"רשימת מקטעי מסלול בקובץ GPX, עבור כל מקטע:\n" -"- תאריך/זמן התחלה בזמן מקומי (LT)\n" -"- מספר נקודות המסלול\n" -"- מספר התמונות התואמות בהתבסס על תאריך/זמן, הסחה ואזור זמן\n" -"- מידע מפורט יותר על הזמן ברחיפה מעל השורה" - -#: ../src/libs/geotagging.c:1890 -msgid "preview images" -msgstr "הצג מקדמית תמונות" - -#: ../src/libs/geotagging.c:1895 -msgid "show on map matching images" -msgstr "הצג על המפה תמונות תואמות" - -#: ../src/libs/geotagging.c:1898 -msgid "select images" -msgstr "בחר תמונות" - -#: ../src/libs/geotagging.c:1899 -msgid "select matching images" -msgstr "בחר תמונות תואמות" - -#: ../src/libs/geotagging.c:1907 -msgid "number of matching images versus selected images" -msgstr "מספר התמונות התואמות לעומת התמונות הנבחרות" - -#: ../src/libs/histogram.c:133 -msgid "monochromatic" -msgstr "מונוכרומטי" - -#: ../src/libs/histogram.c:134 -msgid "analogous" -msgstr "משלים" - -#: ../src/libs/histogram.c:135 -msgid "analogous complementary" -msgstr "צבעים משלימים" - -#: ../src/libs/histogram.c:136 -msgid "complementary" -msgstr "משלים" - -#: ../src/libs/histogram.c:137 -msgid "split complementary" -msgstr "צבעים נגדיים" - -#: ../src/libs/histogram.c:138 -msgid "dyad" -msgstr "זוג" - -#: ../src/libs/histogram.c:139 -msgid "triad" -msgstr "שלשה" - -#: ../src/libs/histogram.c:140 -msgid "tetrad" -msgstr "טטרהד" - -#: ../src/libs/histogram.c:146 -msgid "vectorscope" -msgstr "ווקטור סקופ" - -#: ../src/libs/histogram.c:147 -msgid "waveform" -msgstr "צורת גל" - -#: ../src/libs/histogram.c:148 -msgid "RGB parade" -msgstr "RGB parade" - -#: ../src/libs/histogram.c:149 ../src/libs/histogram.c:2309 -msgid "histogram" -msgstr "היסטוגרמה" - -#: ../src/libs/histogram.c:243 -msgid "scopes" -msgstr "תחומים" - -#: ../src/libs/histogram.c:1542 -msgid "scroll to coarse-rotate" -msgstr "גלול לסיבוב גס" - -#: ../src/libs/histogram.c:1543 -msgid "ctrl+scroll to fine rotate" -msgstr "גלול+ctrl לסיבוב עדין" - -#: ../src/libs/histogram.c:1544 -msgid "shift+scroll to change width" -msgstr "גלול+shift לשינוי רוחב" - -#: ../src/libs/histogram.c:1545 -msgid "alt+scroll to cycle" -msgstr "גלול+alt למעבר" - -#: ../src/libs/histogram.c:1556 -msgid "drag to change black point" -msgstr "גרור לשינוי נקודת שחור" - -#: ../src/libs/histogram.c:1557 ../src/libs/histogram.c:1564 -msgid "double-click resets" -msgstr "דאבל-קליק מאתחל" - -#: ../src/libs/histogram.c:1563 -msgid "drag to change exposure" -msgstr "גרור לשינוי חשיפה" - -#: ../src/libs/histogram.c:1725 ../src/libs/histogram.c:1765 -msgid "set scale to linear" -msgstr "קבע סקאלה ללינארי" - -#: ../src/libs/histogram.c:1730 ../src/libs/histogram.c:1770 -msgid "set scale to logarithmic" -msgstr "קבע סקאלה ללוגריתמי" - -#: ../src/libs/histogram.c:1746 -msgid "set scope to vertical" -msgstr "קבע סקופ לאנכי" - -#: ../src/libs/histogram.c:1751 -msgid "set scope to horizontal" -msgstr "קבע סקופ לאופקי" - -#: ../src/libs/histogram.c:1780 -msgid "set view to AzBz" -msgstr "קבע תצוגה ל AzBz" - -#: ../src/libs/histogram.c:1786 -msgid "set view to RYB" -msgstr "קבע תצוגה ל RYB" - -#: ../src/libs/histogram.c:1792 -msgid "set view to u*v*" -msgstr "קבע תצוגה ל u*v*" - -#: ../src/libs/histogram.c:2312 ../src/libs/histogram.c:2370 -msgid "cycle histogram modes" -msgstr "גלול מצבי היסטוגרמה" - -#: ../src/libs/histogram.c:2316 ../src/libs/histogram.c:2371 -msgid "hide histogram" -msgstr "החבא היסטוגרמה" - -#: ../src/libs/histogram.c:2372 ../src/libs/histogram.c:2401 -msgid "switch histogram view" -msgstr "החלף מצב היסטוגרמה" - -#: ../src/libs/histogram.c:2379 -msgid "toggle blue channel" -msgstr "מתג ערוץ כחול" - -#: ../src/libs/histogram.c:2381 ../src/libs/histogram.c:2389 -#: ../src/libs/histogram.c:2397 -msgid "toggle colors" -msgstr "מתג צבעים" - -#: ../src/libs/histogram.c:2387 -msgid "toggle green channel" -msgstr "מתג ערוץ ירוק" - -#: ../src/libs/histogram.c:2395 -msgid "toggle red channel" -msgstr "מתג ערוץ אדום" - -#: ../src/libs/histogram.c:2405 -msgid "cycle vectorscope types" -msgstr "גלול סוגי ווקטור סקופ" - -#: ../src/libs/histogram.c:2413 -msgid "color harmonies" -msgstr "הרמוניות צבע" - -#: ../src/libs/histogram.c:2425 -msgid "cycle color harmonies" -msgstr "גלול הרמוניות צבע" - -#: ../src/libs/history.c:127 -msgid "compress history stack" -msgstr "דחוס מחסנית היסטוריה" - -#: ../src/libs/history.c:128 -msgid "" -"create a minimal history stack which produces the same image\n" -"ctrl+click to truncate history to the selected item" -msgstr "" -"צור מחסנית היסטוריה מינימלית שמפיקה תמונה זהה\n" -"קליק+ctrl לקטימת ההיסטוריה לפריט הנבחר" - -#: ../src/libs/history.c:139 -msgid "create a style from the current history stack" -msgstr "צור סגנון ממחסנית היסטוריה נוכחית" - -#: ../src/libs/history.c:141 -msgid "create style from history" -msgstr "צור סגנון מהיסטוריה" - -#: ../src/libs/history.c:212 -msgid "always-on module" -msgstr "מודול תמיד-מופעל" - -#: ../src/libs/history.c:218 -msgid "default enabled module" -msgstr "מודול מאופשר כברירת מחדל" - -#: ../src/libs/history.c:225 -msgid "deprecated module" -msgstr "מודול זנוח" - -#: ../src/libs/history.c:945 -msgid "colorspace" -msgstr "מרחב צבע" - -#: ../src/libs/history.c:947 -msgid "mask mode" -msgstr "מצב מסכה" - -#: ../src/libs/history.c:951 -msgid "blend operation" -msgstr "פעולת ערבוב" - -#: ../src/libs/history.c:961 -msgid "mask blur" -msgstr "מריחת מסיכה" - -#: ../src/libs/history.c:964 -msgid "raster mask instance" -msgstr "שלב מסיכת רסטר" - -#: ../src/libs/history.c:965 -msgid "raster mask id" -msgstr "זיהוי מסיכת רסטר" - -#: ../src/libs/history.c:966 -msgid "invert mask" -msgstr "הפוך מסיכה" - -#: ../src/libs/history.c:971 -msgid "drawn mask polarity" -msgstr "קוטביות מסיכה מצוירת" - -#: ../src/libs/history.c:975 -#, c-format -msgid "a drawn mask was added" -msgstr "נוספה מסיכה מצוירת" - -#: ../src/libs/history.c:977 -#, c-format -msgid "the drawn mask was removed" -msgstr "המסיכה המצוירת הוסרה" - -#: ../src/libs/history.c:978 -#, c-format -msgid "the drawn mask was changed" -msgstr "המסיכה המצוירת שונתה" - -#: ../src/libs/history.c:1010 -msgid "parametric output mask:" -msgstr "מסיכת פלט פרמטרית:" - -#: ../src/libs/history.c:1011 -msgid "parametric input mask:" -msgstr "מסיכת קלט פרמטרית:" - -#: ../src/libs/history.c:1323 -msgid "delete image's history?" -msgstr "מחק את ההיסטוריה של התמונה?" - -#: ../src/libs/history.c:1324 -msgid "do you really want to clear history of current image?" -msgstr "האם את באמת מעוניינת לנקות את ההיסטוריה של התמונה הנוכחית?" - -#: ../src/libs/image.c:72 -msgid "selected image[s]" -msgstr "תמונות נבחרות" - -#: ../src/libs/image.c:284 -msgid "delete (trash)" -msgstr "מחק (סל מחזור)" - -#: ../src/libs/image.c:287 -msgid "physically delete from disk (using trash if possible)" -msgstr "מחק פיזית מהדיסק (לסל המחזור אם אפשר)" - -#: ../src/libs/image.c:288 -msgid "physically delete from disk immediately" -msgstr "מחק פיזית מיידית מהדיסק" - -#: ../src/libs/image.c:474 ../src/libs/modulegroups.c:3811 -#: ../src/libs/styles.c:876 -msgid "remove" -msgstr "הסר" - -#: ../src/libs/image.c:475 -msgid "remove images from the image library, without deleting" -msgstr "הסר תמונות מספריית התמונות מבלי למחוק אותם" - -#: ../src/libs/image.c:483 -msgid "move..." -msgstr "העבר..." - -#: ../src/libs/image.c:484 -msgid "move to other folder" -msgstr "העבר לתיקיה אחרת" - -#: ../src/libs/image.c:487 -msgid "copy..." -msgstr "העתק..." - -#: ../src/libs/image.c:488 -msgid "copy to other folder" -msgstr "העתק לתיקיה אחרת" - -#: ../src/libs/image.c:491 -msgid "create HDR" -msgstr "צור HDR" - -#: ../src/libs/image.c:492 -msgid "create a high dynamic range image from selected shots" -msgstr "צור תמונה בטווח דינמי רחב מהתמונות שנבחרו" - -#: ../src/libs/image.c:496 -msgid "add a duplicate to the image library, including its history stack" -msgstr "הוסף העתק זהה לספרייה, כולל מחסנית ההיסטוריה שלו" - -#: ../src/libs/image.c:502 ../src/libs/image.c:505 -msgid "rotate selected images 90 degrees CCW" -msgstr "סובב תמונות נבחרות 90 מעלות נגד כיוון השעון" - -#: ../src/libs/image.c:509 ../src/libs/image.c:512 -msgid "rotate selected images 90 degrees CW" -msgstr "סובב תמונות נבחרות 90 מעלות עם כיוון השעון" - -#: ../src/libs/image.c:514 -msgid "reset rotation" -msgstr "אתחל סיבוב" - -#: ../src/libs/image.c:515 -msgid "reset rotation to EXIF data" -msgstr "אתחל סיבוב לפי נתוני EXIF" - -#: ../src/libs/image.c:518 -msgid "copy locally" -msgstr "העתק מקומית" - -#: ../src/libs/image.c:519 -msgid "copy the image locally" -msgstr "העתק תמונה מקומית" - -#: ../src/libs/image.c:522 -msgid "resync local copy" -msgstr "סנכרן מחדש עותק מקומי" - -#: ../src/libs/image.c:523 -msgid "synchronize the image's XMP and remove the local copy" -msgstr "סנכרן את ה XMP של התמונה והסר עותק מקומי" - -#: ../src/libs/image.c:526 -msgctxt "selected images action" -msgid "group" -msgstr "קבץ" - -#: ../src/libs/image.c:527 -msgid "add selected images to expanded group or create a new one" -msgstr "הוסף תמונות נבחרות לקבוצה המורחבת או צור חדשה" - -#: ../src/libs/image.c:531 -msgid "ungroup" -msgstr "בטל קיבוץ" - -#: ../src/libs/image.c:532 -msgid "remove selected images from the group" -msgstr "הסר תמונות נבחרות מהקבוצה" - -#: ../src/libs/image.c:544 -msgid "select ratings metadata" -msgstr "בחר דירוג מטא-נתונים" - -#: ../src/libs/image.c:550 -msgid "colors" -msgstr "צבעים" - -#: ../src/libs/image.c:552 -msgid "select colors metadata" -msgstr "בחר צבעים מטא-נתונים" - -#: ../src/libs/image.c:560 -msgid "select tags metadata" -msgstr "בחר תגיות מטא-נתונים" - -#: ../src/libs/image.c:568 -msgid "select geo tags metadata" -msgstr "מחק תגית מטא-נתונים" - -#: ../src/libs/image.c:576 -msgid "select darktable metadata (from metadata editor module)" -msgstr "בחר מטא-נתונים של darktable (מתוך מודול עורך המטא-נתונים)" - -#: ../src/libs/image.c:584 -msgid "set the selected image as source of metadata" -msgstr "קבע את התמונה הנבחרת כמקור למטא-נתונים" - -#: ../src/libs/image.c:589 -msgid "paste selected metadata on selected images" -msgstr "הדבק מטא-נתונים נבחרים על תמונות נבחרות" - -#: ../src/libs/image.c:593 -msgid "clear selected metadata on selected images" -msgstr "נקה מטא-נתונים נבחרים עבור תמונות נבחרות" - -#: ../src/libs/image.c:598 -msgid "how to handle existing metadata" -msgstr "כיצד לטפל במטא-נתונים קיימים" - -#: ../src/libs/image.c:601 -msgid "merge" -msgstr "מזג" - -#: ../src/libs/image.c:605 -msgid "update image information to match changes to file" -msgstr "עדכן נתוני תמונה שיתאימו לשינויים בקובץ" - -#: ../src/libs/image.c:609 -msgid "set selection as monochrome images and activate monochrome workflow" -msgstr "קבע את הנבחר כתמונות מונוכרומטיות והפעל זרימת עבודה מונוכרומטית" - -#: ../src/libs/image.c:613 -msgid "set selection as color images" -msgstr "קבע בחירה כתמונות צבעוניות" - -#: ../src/libs/image.c:625 -msgid "duplicate virgin" -msgstr "שכפל טהורה" - -#: ../src/libs/import.c:263 -#, c-format -msgid "device \"%s\" connected on port \"%s\"." -msgstr "התקן \"%s\" מחובר בפורט \"%s\"." - -#: ../src/libs/import.c:273 ../src/libs/import.c:334 ../src/libs/import.c:1692 -msgid "copy & import from camera" -msgstr "העתק וייבא ממצלמה" - -#: ../src/libs/import.c:284 ../src/libs/import.c:336 -msgid "tethered shoot" -msgstr "צילום קשור" - -#: ../src/libs/import.c:291 ../src/libs/import.c:337 -msgid "unmount camera" -msgstr "נתק מצלמה" - -#: ../src/libs/import.c:312 -msgid "" -"camera is locked by another application\n" -"make sure it is no longer mounted\n" -"or quit the locking application" -msgstr "" -"המצלמה נעולה ע\"י אפליקציה אחרת\n" -"וודא שהמצלמה לא בשימוש\n" -"או צא מהאפליקציה הנועלת" - -#: ../src/libs/import.c:315 -msgid "tethering and importing is disabled for this camera" -msgstr "קשירה וייבוא מנוטרלים עבור מצלמה זו" - -#: ../src/libs/import.c:317 ../src/libs/import.c:335 -msgid "mount camera" -msgstr "הגדר מצלמה ככונן" - -#: ../src/libs/import.c:747 -#, c-format -msgid "%d image out of %d selected" -msgid_plural "%d images out of %d selected" -msgstr[0] "נבחרה תמונה %d מתוך %d" -msgstr[1] "נבחרו %d תמונות מתוך %d" - -#: ../src/libs/import.c:1039 -msgid "you can't delete the selected place" -msgstr "לא ניתן למחוק את המיקום הנבחר" - -#: ../src/libs/import.c:1153 -msgid "choose the root of the folder tree below" -msgstr "בחר את שורש התיקייה למטה" - -#: ../src/libs/import.c:1156 -msgid "places" -msgstr "מיקומים" - -#: ../src/libs/import.c:1162 -msgid "restore all default places you have removed by right-click" -msgstr "אחזר את כל ברירות המחדל של המיקומים שהסרת ע\"י קליק-ימני" - -#: ../src/libs/import.c:1167 -msgid "" -"add a custom place\n" -"\n" -"right-click on a place to remove it" -msgstr "" -"הוסף מיקום מותאם אישית\n" -"\n" -"קליק-ימני על המיקום להסרתו" - -#: ../src/libs/import.c:1174 -msgid "you can add custom places using the plus icon" -msgstr "ניתן להוסיף מיקומים ע\"י לחיצה על צלמית הפלוס" - -#: ../src/libs/import.c:1199 -msgid "select a folder to see the content" -msgstr "בחר תיקיה לראות את תוכנה" - -#: ../src/libs/import.c:1202 -msgid "folders" -msgstr "תיקיות" - -#: ../src/libs/import.c:1272 -msgid "home" -msgstr "בית" - -#: ../src/libs/import.c:1284 -msgid "pictures" -msgstr "תמונות" - -#: ../src/libs/import.c:1548 -msgid "mark already imported pictures" -msgstr "סמן תמונות שכבר יובאו" - -#: ../src/libs/import.c:1562 -msgid "modified" -msgstr "שונה" - -#: ../src/libs/import.c:1567 -msgid "file 'modified date/time', may be different from 'Exif date/time'" -msgstr "קובץ 'modified date/time', יכול להיות שונה מקובץ 'Exif date/time'" - -#: ../src/libs/import.c:1579 -msgid "show/hide thumbnails" -msgstr "הראה/החבא תמונות ממוזערות" - -#: ../src/libs/import.c:1649 -msgid "naming rules" -msgstr "חוקי שם" - -#: ../src/libs/import.c:1690 -msgid "add to library" -msgstr "הוסף לספרייה" - -#: ../src/libs/import.c:1691 -msgid "copy & import" -msgstr "העתק וייבא" - -#: ../src/libs/import.c:1730 -msgid "select new" -msgstr "בחר חדש" - -#: ../src/libs/import.c:1773 -msgid "please wait while prefetching the list of images from camera..." -msgstr "אנא המתן בזמן משיכת רשימת התמונות מהמצלמה..." - -#: ../src/libs/import.c:1907 -msgid "invalid override date/time format" -msgstr "עקיפת פורמט תאריך/זמן לא חוקית" - -#: ../src/libs/import.c:2022 -msgid "add to library..." -msgstr "הוסף לספרייה..." - -#: ../src/libs/import.c:2023 -msgid "add existing images to the library" -msgstr "הוסף תמונות קיימות לספרייה" - -#: ../src/libs/import.c:2029 -msgid "copy & import..." -msgstr "העתק וייבא..." - -#: ../src/libs/import.c:2030 -msgid "" -"copy and optionally rename images before adding them to the library\n" -"patterns can be defined to rename the images and specify the destination " -"folders" -msgstr "" -"העתק ואופציונלית שנה שם תמונות לפני הוספתם לספרייה\n" -"ניתן להגדיר תבניות לשינוי שם תמונות וציון תיקיות היעד" - -#. collapsible section -#: ../src/libs/import.c:2053 -msgid "parameters" -msgstr "פרמטרים" - -#: ../src/libs/ioporder.c:204 -msgid "v3.0 for RAW input (default)" -msgstr "v3.0 for RAW input (ברירת מחדל)" - -#: ../src/libs/ioporder.c:210 -msgid "v3.0 for JPEG/non-RAW input" -msgstr "v3.0 for JPEG/non-RAW input" - -#: ../src/libs/lib.c:376 -msgid "deleting preset for obsolete module" -msgstr "מוחק פריסט עבור מודול מיושן" - -#: ../src/libs/lib.c:542 -msgid "manage presets..." -msgstr "נהל פריסטים..." - -#: ../src/libs/lib.c:567 -msgid "nothing to save" -msgstr "אין מה לשמור" - -#: ../src/libs/lib.c:1106 -msgid "show module" -msgstr "הראה מודול" - -#: ../src/libs/lib.c:1431 -msgid "utility module" -msgstr "מודול שירות" - -#: ../src/libs/live_view.c:107 -msgid "live view" -msgstr "תצוגה חיה" - -#: ../src/libs/live_view.c:289 ../src/libs/live_view.c:290 -msgid "toggle live view" -msgstr "מתג תצוגה חיה" - -#. TODO: see _zoom_live_view_clicked -#: ../src/libs/live_view.c:291 ../src/libs/live_view.c:292 -msgid "zoom live view" -msgstr "זום של תצוגה חיה" - -#: ../src/libs/live_view.c:295 -msgid "flip live view horizontally" -msgstr "הפוך אופקית תצוגה חיה" - -#: ../src/libs/live_view.c:301 -msgid "move focus point in (big steps)" -msgstr "הזז נקודת מיקוד פנימה (קפיצות גדולות)" - -#: ../src/libs/live_view.c:302 -msgid "move focus point in (small steps)" -msgstr "הזז נקודת מיקוד פנימה (קפיצות קטנות)" - -#. TODO icon not centered -#: ../src/libs/live_view.c:303 -msgid "run autofocus" -msgstr "הרץ אוטו פוקוס" - -#: ../src/libs/live_view.c:304 -msgid "move focus point out (small steps)" -msgstr "הזז נקודת מיקוד החוצה (קפיצות קטנות)" - -#. TODO same here -#: ../src/libs/live_view.c:305 -msgid "move focus point out (big steps)" -msgstr "הזז נקודת מיקוד החוצה (קפיצות גדולות)" - -#: ../src/libs/live_view.c:310 -msgid "overlay" -msgstr "ציפוי" - -#: ../src/libs/live_view.c:312 -msgid "selected image" -msgstr "בחר תמונה" - -#: ../src/libs/live_view.c:314 -msgid "overlay another image over the live view" -msgstr "צפה תמונה נוספת מעל התצוגה החיה" - -#: ../src/libs/live_view.c:323 -msgid "enter image id of the overlay manually" -msgstr "הכנס מזהה תמונה של הציפוי ידנית" - -#: ../src/libs/live_view.c:334 -msgid "overlay mode" -msgstr "מצב ציפוי" - -#: ../src/libs/live_view.c:336 -msgctxt "blendmode" -msgid "xor" -msgstr "xor" - -#: ../src/libs/live_view.c:337 -msgctxt "blendmode" -msgid "add" -msgstr "הוסף" - -#: ../src/libs/live_view.c:338 -msgctxt "blendmode" -msgid "saturate" -msgstr "רווה" - -#: ../src/libs/live_view.c:344 -msgctxt "blendmode" -msgid "color dodge" -msgstr "color dodge" - -#: ../src/libs/live_view.c:345 -msgctxt "blendmode" -msgid "color burn" -msgstr "color burn" - -#: ../src/libs/live_view.c:346 -msgctxt "blendmode" -msgid "hard light" -msgstr "תאורה קשה" - -#: ../src/libs/live_view.c:347 -msgctxt "blendmode" -msgid "soft light" -msgstr "תאורה רכה" - -#: ../src/libs/live_view.c:349 -msgctxt "blendmode" -msgid "exclusion" -msgstr "אל תכלול" - -#: ../src/libs/live_view.c:350 -msgctxt "blendmode" -msgid "HSL hue" -msgstr "HSL גוון" - -#: ../src/libs/live_view.c:351 -msgctxt "blendmode" -msgid "HSL saturation" -msgstr "HSL רוויה" - -#: ../src/libs/live_view.c:352 -msgctxt "blendmode" -msgid "HSL color" -msgstr "HSL צבע" - -#: ../src/libs/live_view.c:353 -msgctxt "blendmode" -msgid "HSL luminosity" -msgstr "HSL בהירות" - -#: ../src/libs/live_view.c:354 -msgid "mode of the overlay" -msgstr "מצב הציפוי" - -#: ../src/libs/live_view.c:360 -msgid "split line" -msgstr "קו חצוי" - -#: ../src/libs/live_view.c:363 -msgid "only draw part of the overlay" -msgstr "צייר רק חלק מהציפוי" - -#: ../src/libs/location.c:100 -msgid "find location" -msgstr "מצא מיקום" - -#: ../src/libs/map_locations.c:36 -msgid "locations" -msgstr "מקומות" - -#: ../src/libs/map_locations.c:234 -msgid "new sub-location" -msgstr "תת-מיקום חדש" - -#: ../src/libs/map_locations.c:238 ../src/libs/map_locations.c:286 -#: ../src/libs/map_locations.c:960 -msgid "new location" -msgstr "מיקום חדש" - -#: ../src/libs/map_locations.c:587 -#, c-format -msgid "location name '%s' already exists" -msgstr "מיקום בשם '%s' כבר קיים" - -#: ../src/libs/map_locations.c:778 -msgid "edit location" -msgstr "ערוך מיקום" - -#: ../src/libs/map_locations.c:781 -msgid "delete location" -msgstr "מחק מיקום" - -#: ../src/libs/map_locations.c:791 -msgid "update filmstrip" -msgstr "עדכן סרט שקופיות" - -#: ../src/libs/map_locations.c:798 -msgid "go to collection (lighttable)" -msgstr "עבור לאוסף (שולחן אור)" - -#: ../src/libs/map_locations.c:844 -msgid "" -"terminate edit (press enter or escape) before selecting another location" -msgstr "עצור עריכה (לחץ enter או escape) לפני בחירת מיקום נוסף" - -#: ../src/libs/map_locations.c:931 -msgid "" -"list of user locations,\n" -"click to show or hide a location on the map:\n" -" - wheel scroll inside the shape to resize it\n" -" - <shift> or <ctrl> scroll to modify the width or the height\n" -" - click inside the shape and drag it to change its position\n" -" - ctrl+click to move an image from inside the location\n" -"ctrl+click to edit a location name\n" -" - a pipe '|' symbol breaks the name into several levels\n" -" - to remove a group of locations clear its name\n" -" - press enter to validate the new name, escape to cancel the edit\n" -"right-click for other actions: delete location and go to collection" -msgstr "" -"רשימת מיקומי משתמש,\n" -"הקלק לחשוף או להחביא מיקום על המפה:\n" -"- גלול בתוך הצורה לשינוי גודל\n" -"- גלילה + <shift> או <ctrl> לשינוי רוחב או גובה\n" -"- קליק וגרירה בתוך הצורה להזיז את מיקומה\n" -"- קליק+ctrl להזזת התמונה מתוך המיקום\n" -"קליק+ctrl לערוך שם מיקום\n" -"- סימן צינור '|' מחלק את השם למספר רמות\n" -"- להסרת קבוצת מיקומים מחק את שם הקבוצה\n" -"לחץ enter לאשרר שם חדש, escape לביטול העריכה\n" -"קליק ימני לפעולות נוספות: מחק מיקום ועבור לאוסף" - -#: ../src/libs/map_locations.c:957 -msgid "" -"select the shape of the location's limits on the map, circle or rectangle\n" -"or even polygon if available (select first a polygon place in 'find " -"location' module)" -msgstr "" -"בחר את הצורה של גבולות מיקום על המפה, מעגל או מלבן\n" -"או אפילו פוליגון אם זמין (בחר ראשית את מיקום הפוליגון ב מודול 'מצא מיקום'" - -#: ../src/libs/map_locations.c:961 -msgid "add a new location on the center of the visible map" -msgstr "הוסף מיקום חדש במרכז המפה הנראית" - -#: ../src/libs/map_locations.c:965 -msgid "show all" -msgstr "הראה הכל" - -#: ../src/libs/map_locations.c:968 -msgid "show all locations which are on the visible map" -msgstr "הצג את כל המיקומים שעל המפה הנראית" - -#: ../src/libs/map_settings.c:39 -msgid "map settings" -msgstr "הגדרות מפה" - -#: ../src/libs/map_settings.c:107 -msgid "map source" -msgstr "מקור המפה" - -#: ../src/libs/map_settings.c:112 -msgid "select the source of the map. some entries might not work" -msgstr "בחר את מקור המפה. חלק מהאפשרויות עלולות שלא לעבוד" - -#: ../src/libs/masks.c:107 -msgid "feather" -msgstr "נוצה" - -#: ../src/libs/masks.c:114 -msgid "hardness (relative)" -msgstr "קשיחות (יחסי)" - -#: ../src/libs/masks.c:115 -msgid "hardness (absolute)" -msgstr "קשיחות (אבסולוטי)" - -#: ../src/libs/masks.c:116 -msgid "opacity (relative)" -msgstr "אטימות (יחסי)" - -#: ../src/libs/masks.c:117 -msgid "opacity (absolute)" -msgstr "אטימות (אבסולוטי)" - -#: ../src/libs/masks.c:118 -msgid "brush size (relative)" -msgstr "גודל מכחול (יחסי)" - -#: ../src/libs/masks.c:121 -msgid "low" -msgstr "נמוך" - -#: ../src/libs/masks.c:122 -msgid "medium" -msgstr "בינוני" - -#: ../src/libs/masks.c:123 -msgid "high" -msgstr "גבוהה" - -#: ../src/libs/masks.c:381 -#, c-format -msgid "group #%d" -msgstr "קבוצה #%d" - -#: ../src/libs/masks.c:1081 -msgid "duplicate this shape" -msgstr "שכפל צורה זו" - -#: ../src/libs/masks.c:1085 -msgid "delete this shape" -msgstr "מחק צורה זו" - -#: ../src/libs/masks.c:1091 -msgid "delete group" -msgstr "מחק קבוצה" - -#: ../src/libs/masks.c:1098 -msgid "remove from group" -msgstr "הסר מקבוצה" - -#: ../src/libs/masks.c:1106 -msgid "group the forms" -msgstr "קבץ את הצורות" - -#: ../src/libs/masks.c:1114 -msgid "use inverted shape" -msgstr "השתמש בצורה הפוכה" - -#: ../src/libs/masks.c:1121 -msgid "mode: union" -msgstr "מצב: איחוד" - -#: ../src/libs/masks.c:1127 -msgid "mode: intersection" -msgstr "מצב: הצטלבות" - -#: ../src/libs/masks.c:1133 -msgid "mode: difference" -msgstr "מצב: הפרש" - -#: ../src/libs/masks.c:1139 -msgid "mode: sum" -msgstr "מצב: סכום" - -#: ../src/libs/masks.c:1145 -msgid "mode: exclusion" -msgstr "מצב: בידול" - -#: ../src/libs/masks.c:1164 -msgid "cleanup unused shapes" -msgstr "נקה צורות שלא נעשה בהן שימוש" - -#: ../src/libs/masks.c:1811 -msgid "created shapes" -msgstr "צור צורות" - -#: ../src/libs/masks.c:1904 ../src/libs/masks.c:1919 ../src/libs/masks.c:1939 -#: ../src/libs/masks.c:1955 -msgid "properties" -msgstr "תכונות" - -#: ../src/libs/masks.c:1907 -msgid "no shapes selected" -msgstr "לא נבחרו צורות" - -#: ../src/libs/masks.c:1940 -msgid "pressure" -msgstr "pressure" - -#: ../src/libs/masks.c:1941 -msgid "" -"pen pressure control for brush masks\n" -"'off': pressure reading ignored,\n" -"'hardness'/'opacity'/'brush size': pressure reading controls specified " -"attribute,\n" -"'absolute'/'relative': pressure reading is taken directly as attribute value " -"or multiplied with pre-defined setting." -msgstr "" -"בקרת לחץ העט עבור מסיכת מברשת\n" -"'כבוי' : התעלמות מקריאת לחץ, \n" -"'קשיחות'/'אטימות'/'גודל מכחול' : קריאת לחץ המכחול שולטת בתכונה הספציפית, \n" -"'אבסולוטי'/'יחסי' : קריאת לחץ המכחול נלקחת ישירות כערך התכונה או מוכפלת בערך " -"שהוגדר מראש." - -#: ../src/libs/masks.c:1956 -msgid "smoothing" -msgstr "החלקה" - -#: ../src/libs/masks.c:1957 -msgid "" -"smoothing of brush strokes\n" -"stronger smoothing leads to fewer nodes and easier editing but with lower " -"control of accuracy." -msgstr "" -"מגדיר רמות לחלקה של נגיעות מכחול. \n" -"החלקה משמעותית יותר מובילה למיעוט צמתים ועריכה קלה יותר במחיר של שליטה מועטה " -"בדיוק." - -#: ../src/libs/metadata.c:64 -msgid "metadata editor" -msgstr "עורך מטא-נתונים" - -#: ../src/libs/metadata.c:206 ../src/libs/metadata.c:496 -msgid "<leave unchanged>" -msgstr "<השאר ללא שינוי>" - -#: ../src/libs/metadata.c:631 ../src/libs/metadata_view.c:1192 -msgid "metadata settings" -msgstr "הגדרות מטא-נתונים" - -#: ../src/libs/metadata.c:684 ../src/libs/metadata_view.c:1237 -msgid "visible" -msgstr "נראה" - -#: ../src/libs/metadata.c:689 -msgid "" -"tick if the corresponding metadata is of interest for you\n" -"it will be visible from metadata editor, collection and import module\n" -"it will be also exported" -msgstr "" -"סמן אם המטא-נתונים התואמים מעניינים אותך\n" -"הם ייראו בעורך המטא-נתונים, אוסף, ומודול הייבוא\n" -"הם יכללו ביצוא" - -#: ../src/libs/metadata.c:694 ../src/libs/tagging.c:1683 -#: ../src/libs/tagging.c:1827 -msgid "private" -msgstr "פרטי" - -#: ../src/libs/metadata.c:699 -msgid "" -"tick if you want to keep this information private (not exported with images)" -msgstr "סמן אם ברצונך לשמור מידע זה פרטי (לא ייוצא עם התמונה)" - -#: ../src/libs/metadata.c:861 -msgid "" -"metadata text\n" -"ctrl+enter inserts a new line (caution, may not be compatible with standard " -"metadata)\n" -"if <leave unchanged> selected images have different metadata\n" -"in that case, right-click gives the possibility to choose one of them\n" -"escape to exit the popup window" -msgstr "" -"טקסט מטא-נתונים. \n" -"להכנסת שורה חדשה ctrl-enter (זהירות, עלול לא להיות תואם עם מטא-נתונים " -"סטנדרטים).\n" -"אם <leave unchanged> תמונות נבחרות יכילו מטא-נתונים שונים.\n" -"במקרה כזה, קליק-ימני מאפשר לבחור אחד מהם.\n" -"לחץ escape לצאת מהחלונית" - -#: ../src/libs/metadata.c:906 -msgid "write metadata for selected images" -msgstr "כתוב מטא-נתונים עבור תמונות נבחרות" - -#. <title>\0<description>\0<rights>\0<creator>\0<publisher> -#: ../src/libs/metadata.c:965 -msgid "CC BY" -msgstr "CC BY" - -#: ../src/libs/metadata.c:966 -msgid "Creative Commons Attribution (CC BY)" -msgstr "Creative Commons Attribution (CC BY)" - -#: ../src/libs/metadata.c:967 -msgid "CC BY-SA" -msgstr "CC BY-SA" - -#: ../src/libs/metadata.c:968 -msgid "Creative Commons Attribution-ShareAlike (CC BY-SA)" -msgstr "Creative Commons Attribution-ShareAlike (CC BY-SA)" - -#: ../src/libs/metadata.c:969 -msgid "CC BY-ND" -msgstr "CC BY-ND" - -#: ../src/libs/metadata.c:970 -msgid "Creative Commons Attribution-NoDerivs (CC BY-ND)" -msgstr "Creative Commons Attribution-NoDerivs (CC BY-ND)" - -#: ../src/libs/metadata.c:971 -msgid "CC BY-NC" -msgstr "CC BY-NC" - -#: ../src/libs/metadata.c:972 -msgid "Creative Commons Attribution-NonCommercial (CC BY-NC)" -msgstr "Creative Commons Attribution-NonCommercial (CC BY-NC)" - -#: ../src/libs/metadata.c:973 -msgid "CC BY-NC-SA" -msgstr "CC BY-NC-SA" - -#: ../src/libs/metadata.c:974 -msgid "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" -msgstr "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" - -#: ../src/libs/metadata.c:975 -msgid "CC BY-NC-ND" -msgstr "CC BY-NC-ND" - -#: ../src/libs/metadata.c:976 -msgid "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" -msgstr "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" - -#: ../src/libs/metadata.c:977 ../src/libs/metadata.c:978 -msgid "all rights reserved" -msgstr "כל הזכויות שמורות" - -#. internal -#: ../src/libs/metadata_view.c:123 -msgid "filmroll" -msgstr "גליל פילם" - -#: ../src/libs/metadata_view.c:125 -msgid "group id" -msgstr "מזהה קבוצה" - -#: ../src/libs/metadata_view.c:127 -msgid "version" -msgstr "גרסה" - -#: ../src/libs/metadata_view.c:130 -msgid "import timestamp" -msgstr "ייבא חותם זמן" - -#: ../src/libs/metadata_view.c:131 -msgid "change timestamp" -msgstr "שנה חותם זמן" - -#: ../src/libs/metadata_view.c:132 -msgid "export timestamp" -msgstr "ייצא חותם זמן" - -#: ../src/libs/metadata_view.c:133 -msgid "print timestamp" -msgstr "הדפס חותם זמן" - -#: ../src/libs/metadata_view.c:134 -msgid "flags" -msgstr "דגלים" - -#: ../src/libs/metadata_view.c:144 -msgid "focus distance" -msgstr "מרחק מוקד" - -#: ../src/libs/metadata_view.c:146 -msgid "datetime" -msgstr "תאריך ושעה" - -#: ../src/libs/metadata_view.c:149 -msgid "export width" -msgstr "ייצא רוחב" - -#: ../src/libs/metadata_view.c:150 -msgid "export height" -msgstr "ייצא גובה" - -#: ../src/libs/metadata_view.c:158 -msgid "longitude" -msgstr "קו אורך" - -#: ../src/libs/metadata_view.c:159 -msgid "elevation" -msgstr "גובה" - -#: ../src/libs/metadata_view.c:163 -msgid "categories" -msgstr "קטגוריות" - -#: ../src/libs/metadata_view.c:170 -msgid "image information" -msgstr "מידע על התמונה" - -#: ../src/libs/metadata_view.c:330 -msgid "unused/deprecated" -msgstr "לא בשימוש/מיושן" - -#: ../src/libs/metadata_view.c:331 -msgid "LDR" -msgstr "LDR" - -#: ../src/libs/metadata_view.c:334 -msgid "marked for deletion" -msgstr "סמן למחיקה" - -#: ../src/libs/metadata_view.c:335 -msgid "auto-applying presets applied" -msgstr "יישום אוטומטי של פריסטים מופעל" - -#: ../src/libs/metadata_view.c:337 -msgid "has .txt" -msgstr "מכיל .txt" - -#: ../src/libs/metadata_view.c:338 -msgid "has .wav" -msgstr "מכיל .wav" - -#: ../src/libs/metadata_view.c:356 -#, c-format -msgid "image has %d star" -msgid_plural "image has %d stars" -msgstr[0] "לתמונה כוכב %d" -msgstr[1] "לתמונה %d כוכבים" - -#: ../src/libs/metadata_view.c:432 -#, c-format -msgid "loader: %s" -msgstr "טוען: %s" - -#: ../src/libs/metadata_view.c:623 -msgid "<various values>" -msgstr "<various values>" - -#: ../src/libs/metadata_view.c:636 -#, c-format -msgid "" -"double-click to jump to film roll\n" -"%s" -msgstr "" -"הקלק כפול לעבור לגליל פילם\n" -"%s" - -#: ../src/libs/metadata_view.c:728 -#, c-format -msgid "%+.2f EV" -msgstr "%+.2f EV" - -#: ../src/libs/metadata_view.c:735 -#, c-format -msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" -msgstr "%.1f mm (%.1f mm FF equiv, crop %.1f)" - -#: ../src/libs/metadata_view.c:740 -#, c-format -msgid "%.1f mm" -msgstr "%.1f mm" - -#: ../src/libs/metadata_view.c:751 -#, c-format -msgid "infinity" -msgstr "אין סוף" - -#: ../src/libs/metadata_view.c:755 -#, c-format -msgid "%.2f m" -msgstr "%.2f m" - -#: ../src/libs/metadata_view.c:1232 -msgid "" -"drag and drop one row at a time until you get the desired order\n" -"untick to hide metadata which are not of interest for you\n" -"if different settings are needed, use presets" -msgstr "" -"גרור ושחרר שורה אחת בכל פעם עד שתשיג את הסדר הנדרש\n" -"הסר סימון להחבאת המטה נתונים שאינם מעניינים אותך\n" -"אם נדרשות הגדרות אחרות השתמש בפריסטים" - -#: ../src/libs/metadata_view.c:1390 -msgid "jump to film roll" -msgstr "קפוץ לגליל פילם" - -#: ../src/libs/recentcollect.c:68 -msgid "recently used collections" -msgstr "אוספים בהם נעשה שימוש לאחרונה" - -#: ../src/libs/recentcollect.c:109 -msgid " and " -msgstr " וגם " - -#: ../src/libs/recentcollect.c:114 -msgid " or " -msgstr " או " - -#. case DT_LIB_COLLECT_MODE_AND_NOT: -#: ../src/libs/recentcollect.c:119 -msgid " but not " -msgstr " אבל לא " - -#: ../src/libs/recentcollect.c:226 -msgid "recent collections settings" -msgstr "הגדרות אוספים אחרונים" - -#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1769 -msgid "workflow: scene-referred" -msgstr "זרימת עבודה: מיוחס-סצנה" - -#: ../src/libs/modulegroups.c:45 -msgid "modules: deprecated" -msgstr "מודולים: מוצאים משימוש" - -#: ../src/libs/modulegroups.c:48 -msgid "last modified layout" -msgstr "סידור אחרון שהשתנה" - -#: ../src/libs/modulegroups.c:192 -msgid "modulegroups" -msgstr "קבוצות מודולים" - -#. FIXME don't check here if on/off is enabled, because it depends on image (reload_defaults) -#. respond later to image changed signal -#: ../src/libs/modulegroups.c:306 ../src/libs/modulegroups.c:318 -#: ../src/libs/modulegroups.c:2427 ../src/libs/modulegroups.c:2429 -msgid "on-off" -msgstr "דלוק-כבוי" - -#: ../src/libs/modulegroups.c:498 ../src/libs/modulegroups.c:501 -msgid "" -"this quick access widget is disabled as there are multiple instances of this " -"module present. Please use the full module to access this widget..." -msgstr "" -"הווידג'ט גישה מהירה הזה מנוטרל כיוון שנוכחים מופעים מרובים של המודול. אנה " -"השתמש במודול המלא לגשת לווידג'ט זה..." - -#: ../src/libs/modulegroups.c:591 -msgid "(some features may only be available in the full module interface)" -msgstr "(חלק מהיכולות עשויים להיות זמינים אך ורק בממשק המודול המלא)" - -#: ../src/libs/modulegroups.c:635 -#, c-format -msgid "go to the full version of the %s module" -msgstr "לך לגרסה המלאה של מודול %s" - -#: ../src/libs/modulegroups.c:1556 ../src/libs/modulegroups.c:1641 -#: ../src/libs/modulegroups.c:1677 ../src/libs/modulegroups.c:1727 -#: ../src/libs/modulegroups.c:1817 -msgctxt "modulegroup" -msgid "base" -msgstr "בסיס" - -#: ../src/libs/modulegroups.c:1575 -msgctxt "modulegroup" -msgid "tone" -msgstr "טון" - -#: ../src/libs/modulegroups.c:1584 ../src/libs/modulegroups.c:1691 -#: ../src/libs/modulegroups.c:1741 -msgctxt "modulegroup" -msgid "color" -msgstr "צבע" - -#: ../src/libs/modulegroups.c:1599 ../src/libs/modulegroups.c:1699 -#: ../src/libs/modulegroups.c:1746 -msgctxt "modulegroup" -msgid "correct" -msgstr "תיקון" - -#: ../src/libs/modulegroups.c:1617 ../src/libs/modulegroups.c:1711 -#: ../src/libs/modulegroups.c:1758 ../src/libs/modulegroups.c:2321 -msgctxt "modulegroup" -msgid "effect" -msgstr "אפקט" - -#: ../src/libs/modulegroups.c:1635 -msgid "modules: all" -msgstr "מודולים: הכל" - -#: ../src/libs/modulegroups.c:1656 -msgctxt "modulegroup" -msgid "grading" -msgstr "דירוג" - -#: ../src/libs/modulegroups.c:1664 ../src/libs/modulegroups.c:2325 -msgctxt "modulegroup" -msgid "effects" -msgstr "אפקטים" - -#: ../src/libs/modulegroups.c:1672 -msgid "workflow: beginner" -msgstr "זרימת עבודה: מתחיל" - -#: ../src/libs/modulegroups.c:1721 -msgid "workflow: display-referred" -msgstr "זרימת עבודה: מוכוון-תצוגה" - -#: ../src/libs/modulegroups.c:1773 -msgid "search only" -msgstr "חפש רק" - -#: ../src/libs/modulegroups.c:1779 ../src/libs/modulegroups.c:2090 -#: ../src/libs/modulegroups.c:2599 -msgctxt "modulegroup" -msgid "deprecated" -msgstr "מוצאים משימוש" - -#: ../src/libs/modulegroups.c:1792 -msgid "previous config" -msgstr "קונפיגורציה קודמת" - -#: ../src/libs/modulegroups.c:1793 -msgid "previous layout" -msgstr "סידור קודם" - -#: ../src/libs/modulegroups.c:1797 -msgid "previous config with new layout" -msgstr "קונפיגורציה קודמת עם מערך חדש" - -#: ../src/libs/modulegroups.c:1957 ../src/libs/modulegroups.c:2472 -#: ../src/libs/modulegroups.c:2484 -msgid "remove this widget" -msgstr "הסר ווידג'ט זה" - -#: ../src/libs/modulegroups.c:2107 ../src/libs/modulegroups.c:2347 -msgid "remove this module" -msgstr "הסר מודול זה" - -#. does it belong to recommended modules ? -#: ../src/libs/modulegroups.c:2316 -msgid "base" -msgstr "בסיס" - -#: ../src/libs/modulegroups.c:2319 -msgid "tone" -msgstr "טון" - -#: ../src/libs/modulegroups.c:2322 -msgid "technical" -msgstr "טכני" - -#: ../src/libs/modulegroups.c:2323 -msgid "grading" -msgstr "דירוג" - -#: ../src/libs/modulegroups.c:2329 ../src/libs/modulegroups.c:2337 -msgid "add this module" -msgstr "הוסף מודול זה" - -#. show the submenu with all the modules -#: ../src/libs/modulegroups.c:2359 ../src/libs/modulegroups.c:2559 -msgid "all available modules" -msgstr "כל המודולים הזמינים" - -#: ../src/libs/modulegroups.c:2367 -msgid "add module" -msgstr "הוסף מודול" - -#: ../src/libs/modulegroups.c:2372 -msgid "remove module" -msgstr "הסר מודול" - -#: ../src/libs/modulegroups.c:2478 -msgid "header needed for other widgets" -msgstr "כותרת נחוצה עבור ווידג'טים אחרים" - -#: ../src/libs/modulegroups.c:2494 ../src/libs/modulegroups.c:2501 -msgid "add this widget" -msgstr "הוסף ווידג'ט זה" - -#: ../src/libs/modulegroups.c:2514 -msgid "currently invisible" -msgstr "בלתי נראה כרגע" - -#: ../src/libs/modulegroups.c:2543 -msgid "add widget" -msgstr "הוסף ווידג'ט" - -#: ../src/libs/modulegroups.c:2548 -msgid "remove widget" -msgstr "הסר ווידג'ט" - -#: ../src/libs/modulegroups.c:2653 -msgid "show all history modules" -msgstr "הצג את כל מודולי ההיסטוריה" - -#: ../src/libs/modulegroups.c:2656 ../src/libs/modulegroups.c:3834 -msgid "" -"show modules that are present in the history stack, regardless of whether or " -"not they are currently enabled" -msgstr "הראה מודולים שנוכחים במחסנית ההיסטוריה, ללא תלות בסטטוס ההפעלה שלהם" - -#: ../src/libs/modulegroups.c:2747 ../src/libs/modulegroups.c:2816 -msgid "" -"the following modules are deprecated because they have internal design " -"mistakes that can't be corrected and alternative modules that correct them.\n" -"they will be removed for new edits in the next release." -msgstr "" -"המודולים הבאים מוצאים משימוש כיוון שהם מכילים פגמי תכן פנימיים לא פתירים " -"ותחליפים שפותרים אותם.\n" -"הם יוסרו לעריכות חדשות בגרסה הבאה." - -#: ../src/libs/modulegroups.c:2775 ../src/libs/modulegroups.c:2776 -msgid "quick access panel" -msgstr "פאנל גישה מהירה" - -#: ../src/libs/modulegroups.c:2786 -msgid "show only active modules" -msgstr "הצג רק מודולים פעילים" - -#: ../src/libs/modulegroups.c:2787 -msgid "active modules" -msgstr "מודולים פעיל" - -#: ../src/libs/modulegroups.c:2792 -msgid "" -"presets\n" -"ctrl+click to manage" -msgstr "" -"פריסטים\n" -"קליק+ctrl לניהול" - -#: ../src/libs/modulegroups.c:2798 -msgid "search modules" -msgstr "מודולי חיפוש" - -#: ../src/libs/modulegroups.c:2799 -msgid "search modules by name or tag" -msgstr "חפש מודולים לפי שם או תג" - -#: ../src/libs/modulegroups.c:2809 -msgid "clear text" -msgstr "נקה טקסט" - -#: ../src/libs/modulegroups.c:3051 -msgid "basic icon" -msgstr "צלמית בסיס" - -#: ../src/libs/modulegroups.c:3061 -msgid "active icon" -msgstr "צלמית פעיל" - -#: ../src/libs/modulegroups.c:3071 -msgid "color icon" -msgstr "צלמית צבע" - -#: ../src/libs/modulegroups.c:3081 -msgid "correct icon" -msgstr "תקן צלמית" - -#: ../src/libs/modulegroups.c:3091 -msgid "effect icon" -msgstr "צלמית אפקט" - -#: ../src/libs/modulegroups.c:3101 -msgid "favorites icon" -msgstr "צלמית מועדפים" - -#: ../src/libs/modulegroups.c:3111 -msgid "tone icon" -msgstr "צלמית טון" - -#: ../src/libs/modulegroups.c:3121 -msgid "grading icon" -msgstr "צלמית דירוג" - -#: ../src/libs/modulegroups.c:3131 -msgid "technical icon" -msgstr "אייקון טכני" - -#: ../src/libs/modulegroups.c:3164 -msgid "quick access panel widgets" -msgstr "פאנל ווידג'טים גישה מהירה" - -#: ../src/libs/modulegroups.c:3166 -msgid "quick access" -msgstr "גישה מהירה" - -#: ../src/libs/modulegroups.c:3186 -msgid "add widget to the quick access panel" -msgstr "הוסף ווידג'ט לפאנל הגישה המהירה" - -#: ../src/libs/modulegroups.c:3218 -msgid "group icon" -msgstr "צלמית קבוצה" - -#: ../src/libs/modulegroups.c:3227 -msgid "group name" -msgstr "שם קבוצה" - -#: ../src/libs/modulegroups.c:3238 -msgid "remove group" -msgstr "הסר קבוצה" - -#: ../src/libs/modulegroups.c:3264 -msgid "move group to the left" -msgstr "העבר קבוצה שמאלה" - -#: ../src/libs/modulegroups.c:3272 -msgid "add module to the group" -msgstr "הוסף מודול לקבוצה" - -#: ../src/libs/modulegroups.c:3283 -msgid "move group to the right" -msgstr "הזז קבוצה ימינה" - -#: ../src/libs/modulegroups.c:3463 -msgid "rename preset" -msgstr "שנה שם פריסט" - -#: ../src/libs/modulegroups.c:3470 -msgid "new preset name:" -msgstr "שם פריסט חדש:" - -#: ../src/libs/modulegroups.c:3471 -msgid "a preset with this name already exists!" -msgstr "פריסט בשם זה כבר קיים!" - -#: ../src/libs/modulegroups.c:3804 -msgid "preset: " -msgstr "פריסט: " - -#: ../src/libs/modulegroups.c:3811 -msgid "remove the preset" -msgstr "הסר את הפריסט" - -#: ../src/libs/modulegroups.c:3813 -msgid "duplicate the preset" -msgstr "שכפל את הפריסט" - -#: ../src/libs/modulegroups.c:3815 -msgid "rename the preset" -msgstr "שנה את שם הפריסט" - -#: ../src/libs/modulegroups.c:3817 -msgid "create a new empty preset" -msgstr "הוסף פריסט ריק חדש" - -#: ../src/libs/modulegroups.c:3825 -msgid "show search line" -msgstr "הצג קו חיפוש" - -#: ../src/libs/modulegroups.c:3828 -msgid "show quick access panel" -msgstr "הצג פאנל גישה מהירה" - -#: ../src/libs/modulegroups.c:3831 -msgid "show all history modules in active group" -msgstr "הראה את כל מודולי ההסטוריה בקבוצה הפעילה" - -#: ../src/libs/modulegroups.c:3843 -msgid "auto-apply this preset" -msgstr "יישם אוטומטית פריסט זה" - -#: ../src/libs/modulegroups.c:3858 -msgid "module groups" -msgstr "קבוצות מודולים" - -#: ../src/libs/modulegroups.c:3875 -msgid "" -"this is a built-in read-only preset. duplicate it if you want to make changes" -msgstr "זה פריסט מובנה לעיון בלבד. שכפל אותו אם ברצונך לעשות שינוים" - -#: ../src/libs/navigation.c:74 -msgid "navigation" -msgstr "ניווט" - -#: ../src/libs/navigation.c:111 ../src/libs/navigation.c:191 -msgctxt "navigationbox" -msgid "fill" -msgstr "מילוי" - -#: ../src/libs/navigation.c:114 ../src/libs/navigation.c:189 -msgid "small" -msgstr "קטן" - -#: ../src/libs/navigation.c:151 -msgid "" -"navigation\n" -"click or drag to position zoomed area in center view" -msgstr "" -"ניווט\n" -"הקלק או גרור למקם את התקריב במבט המרכזי" - -#: ../src/libs/navigation.c:173 -msgid "hide navigation thumbnail" -msgstr "החבא תמונת ניווט" - -#: ../src/libs/navigation.c:187 -msgid "image zoom level" -msgstr "רמת זום לתמונה" - -#: ../src/libs/navigation.c:192 -msgid "50%" -msgstr "50%" - -#: ../src/libs/navigation.c:193 -msgid "100%" -msgstr "100%" - -#: ../src/libs/navigation.c:194 -msgid "200%" -msgstr "200%" - -#: ../src/libs/navigation.c:195 -msgid "400%" -msgstr "400%" - -#: ../src/libs/navigation.c:196 -msgid "800%" -msgstr "800%" - -#: ../src/libs/navigation.c:197 -msgid "1600%" -msgstr "1600%" - -#: ../src/libs/print_settings.c:45 -msgid "print settings" -msgstr "הגדרות הדפסה" - -#. FIXME: ellipsize title/printer as the export completed message is ellipsized -#: ../src/libs/print_settings.c:357 ../src/libs/print_settings.c:754 -#, c-format -msgid "processing `%s' for `%s'" -msgstr "מעבד `%s' עבור `%s'" - -#: ../src/libs/print_settings.c:387 -#, c-format -msgid "cannot open printer profile `%s'" -msgstr "לא יכול לפתוח פרופיל מדפסת `%s'" - -#: ../src/libs/print_settings.c:398 -#, c-format -msgid "error getting output profile for image %d" -msgstr "שגיאה בקבלת פרופיל ייצוא לתמונה %d" - -#: ../src/libs/print_settings.c:410 -#, c-format -msgid "cannot apply printer profile `%s'" -msgstr "לא יכול ליישם פרופיל מדפסת `%s'" - -#: ../src/libs/print_settings.c:574 -msgid "failed to create temporary PDF for printing" -msgstr "יצירת קובץ PDF זמני להדפסה נכשלה" - -#: ../src/libs/print_settings.c:620 -msgid "maximum image per page reached" -msgstr "מספר מקסימלי של תמונות לדף הושג" - -#: ../src/libs/print_settings.c:708 -msgid "cannot print until a picture is selected" -msgstr "לא ניתן להדפיס עד שנבחרת תמונה" - -#: ../src/libs/print_settings.c:713 -msgid "cannot print until a printer is selected" -msgstr "לא ניתן להדפיס עד שנבחרת מדפסת" - -#: ../src/libs/print_settings.c:718 -msgid "cannot print until a paper is selected" -msgstr "לא ניתן להדפיס עד שנבחר נייר" - -#. in this case no need to release from cache what we couldn't get -#: ../src/libs/print_settings.c:746 -#, c-format -msgid "cannot get image %d for printing" -msgstr "לא מצליח לקבל תמונה %d להדפסה" - -#: ../src/libs/print_settings.c:918 -#, c-format -msgid "%3.2f (dpi:%d)" -msgstr "%3.2f (dpi:%d)" - -#: ../src/libs/print_settings.c:2396 -msgctxt "section" -msgid "printer" -msgstr "מדפסת" - -#: ../src/libs/print_settings.c:2409 ../src/libs/print_settings.c:2418 -#: ../src/libs/print_settings.c:2473 -msgid "printer" -msgstr "מדפסת" - -#: ../src/libs/print_settings.c:2409 -msgid "media" -msgstr "מדיה" - -#: ../src/libs/print_settings.c:2430 -msgid "color management in printer driver" -msgstr "ניהול צבע בדרייבר של המדפסת" - -#: ../src/libs/print_settings.c:2463 -msgid "printer ICC profiles" -msgstr "פרופילי ICC למדפסת" - -#: ../src/libs/print_settings.c:2484 -msgid "black point compensation" -msgstr "פיצוי נקודה שחורה" - -#: ../src/libs/print_settings.c:2497 -msgid "activate black point compensation when applying the printer profile" -msgstr "הפעל פיצוי נקודה שחורה בעת יישום פרופיל מדפסת" - -#. //////////////////////// PAGE SETTINGS -#: ../src/libs/print_settings.c:2504 -msgctxt "section" -msgid "page" -msgstr "דף" - -#: ../src/libs/print_settings.c:2526 -msgid "measurement units" -msgstr "יחידות מידה" - -#: ../src/libs/print_settings.c:2534 -msgid "image width/height" -msgstr "רוחב/גובה תמונה" - -#: ../src/libs/print_settings.c:2539 -msgid " x " -msgstr " x " - -#: ../src/libs/print_settings.c:2547 -msgid "scale factor" -msgstr "מקדם הגדלה" - -#: ../src/libs/print_settings.c:2553 -msgid "" -"image scale factor from native printer DPI:\n" -" < 1 means that it is downscaled (best quality)\n" -" > 1 means that the image is upscaled\n" -" a too large value may result in poor print quality" -msgstr "" -"מקדם הגדלה לתמונה מתוך הגדרת ה DPI הטבעית של המדפסת:\n" -"1 > משמעו הקטנה (איכות מיטבית)\n" -"1 < משמעו הגדלה\n" -"ערך גבוהה מדי עלול לגרום לאיכות הדפסה ירודה" - -#. d->b_top = gtk_spin_button_new_with_range(0, 10000, 1); -#: ../src/libs/print_settings.c:2567 -msgid "top margin" -msgstr "רווח עליון" - -#. d->b_left = gtk_spin_button_new_with_range(0, 10000, 1); -#: ../src/libs/print_settings.c:2571 -msgid "left margin" -msgstr "שול שמאלי" - -#: ../src/libs/print_settings.c:2574 -msgid "lock" -msgstr "נעל" - -#: ../src/libs/print_settings.c:2576 -msgid "change all margins uniformly" -msgstr "שנה את כל השוליים באופן אחיד" - -#. d->b_right = gtk_spin_button_new_with_range(0, 10000, 1); -#: ../src/libs/print_settings.c:2580 -msgid "right margin" -msgstr "שול ימני" - -#. d->b_bottom = gtk_spin_button_new_with_range(0, 10000, 1); -#: ../src/libs/print_settings.c:2584 -msgid "bottom margin" -msgstr "רווח תחתון" - -#: ../src/libs/print_settings.c:2617 -msgid "display grid" -msgstr "הצג רשת" - -#: ../src/libs/print_settings.c:2628 -msgid "snap to grid" -msgstr "הצמד לרשת" - -#: ../src/libs/print_settings.c:2641 -msgid "borderless mode required" -msgstr "נדרש מצב ללא שוליים" - -#: ../src/libs/print_settings.c:2644 -msgid "" -"indicates that the borderless mode should be activated\n" -"in the printer driver because the selected margins are\n" -"below the printer hardware margins" -msgstr "" -"מציין שיש להפעיל מצב ללא שוליים\n" -"בהגדרות המדפסת כיוון שהשוליים הנבחרים\n" -"הם מתחת ליכולות המדפסת" - -#. pack image dimension hbox here -#: ../src/libs/print_settings.c:2651 -msgctxt "section" -msgid "image layout" -msgstr "פריסת שטח תמונה" - -#: ../src/libs/print_settings.c:2692 -msgid "new image area" -msgstr "שטח התמונה חדש" - -#: ../src/libs/print_settings.c:2694 -msgid "" -"add a new image area on the page\n" -"click and drag on the page to place the area\n" -"drag and drop image from film strip on it" -msgstr "" -"הוסף שטח תמונה חדש על הדף\n" -"הקלק וגרור על הדף למיקום השטח\n" -"גרור ועזוב תמונה מתוך גליל הפילם על זה" - -#: ../src/libs/print_settings.c:2698 -msgid "delete image area" -msgstr "מחק אזור בתמונה" - -#: ../src/libs/print_settings.c:2700 -msgid "delete the currently selected image area" -msgstr "מחק את שטח התמונה הנבחר" - -#: ../src/libs/print_settings.c:2703 -msgid "clear layout" -msgstr "נקה פריסה" - -#: ../src/libs/print_settings.c:2705 -msgid "remove all image areas from the page" -msgstr "הסר את כל שטח התמונה מהדף" - -#. d->b_x = gtk_spin_button_new_with_range(0, 1000, 1); -#: ../src/libs/print_settings.c:2722 -msgid "image area x origin (in current unit)" -msgstr "שטח תמונה x מוצא (ביחידות נוכחיות)" - -#. d->b_y = gtk_spin_button_new_with_range(0, 1000, 1); -#: ../src/libs/print_settings.c:2726 -msgid "image area y origin (in current unit)" -msgstr "שטח תמונה y מוצא (ביחידות נוכחיות)" - -#. d->b_width = gtk_spin_button_new_with_range(0, 1000, 1); -#: ../src/libs/print_settings.c:2737 -msgid "image area width (in current unit)" -msgstr "רוחב שטח תמונה (ביחידות נוכחיות)" - -#. d->b_height = gtk_spin_button_new_with_range(0, 1000, 1); -#: ../src/libs/print_settings.c:2741 -msgid "image area height (in current unit)" -msgstr "גובה שטח תמונה (ביחידות נוכחיות)" - -#. //////////////////////// PRINT SETTINGS -#: ../src/libs/print_settings.c:2767 -msgctxt "section" -msgid "print settings" -msgstr "הגדרות הדפסה" - -#: ../src/libs/print_settings.c:2855 -msgid "temporary style to use while printing" -msgstr "סגנון זמני לשימוש בהדפסה" - -#: ../src/libs/print_settings.c:2887 -msgid "print with current settings" -msgstr "הדפס עם הגדרות נוכחיות" - -#: ../src/libs/select.c:136 -msgid "select all images in current collection" -msgstr "בחר את כל התמונות באוסף הנוכחי" - -#: ../src/libs/select.c:140 -msgid "clear selection" -msgstr "נקה בחירה" - -#: ../src/libs/select.c:144 -msgid "" -"select unselected images\n" -"in current collection" -msgstr "" -"בחר תמונות שלא נבחרו\n" -"באוסף הנוכחי" - -#: ../src/libs/select.c:148 -msgid "" -"select all images which are in the same\n" -"film roll as the selected images" -msgstr "" -"בחר את כל התמונות באותו\n" -"גליל פילם של התמונות שנבחרו" - -#: ../src/libs/select.c:152 -msgid "" -"select untouched images in\n" -"current collection" -msgstr "" -"בחר תמונות שלא נערכו ב\n" -"אוסף הנוכחי" - -#: ../src/libs/session.c:47 -msgid "session" -msgstr "מושב" - -#: ../src/libs/session.c:98 -msgid "jobcode" -msgstr "jobcode" - -#: ../src/libs/session.c:106 -msgid "create" -msgstr "צור" - -#: ../src/libs/snapshots.c:92 -msgid "snapshots" -msgstr "תצלום" - -#: ../src/libs/snapshots.c:141 -msgctxt "snapshot sign" -msgid "S" -msgstr "S" - -#: ../src/libs/snapshots.c:574 -#, c-format -msgid "↗ %s '%s'" -msgstr "↗ %s '%s'" - -#: ../src/libs/snapshots.c:574 -msgid "this snapshot was taken from" -msgstr "צילום זה נלקח מ" - -#: ../src/libs/snapshots.c:663 -msgid "take snapshot" -msgstr "צלם" - -#: ../src/libs/snapshots.c:665 -msgid "" -"take snapshot to compare with another image or the same image at another " -"stage of development" -msgstr "צלם כדי להשוות עם תמונה אחרת או אותה תמונה בשלב שונה של פיתוח" - -#: ../src/libs/snapshots.c:734 -msgid "toggle last snapshot" -msgstr "מתג צילום אחרון" - -#: ../src/libs/styles.c:326 -msgid "remove style?" -msgid_plural "remove styles?" -msgstr[0] "מחק סגנון?" -msgstr[1] "מחק סגנונות?" - -#: ../src/libs/styles.c:327 -#, c-format -msgid "do you really want to remove %d style?" -msgid_plural "do you really want to remove %d styles?" -msgstr[0] "האם באמת ברצונך למחוק סגנון %d ?" -msgstr[1] "האם באמת ברצונך למחוק סגנונות %d ?" - -#: ../src/libs/styles.c:444 ../src/libs/styles.c:627 -#, c-format -msgid "" -"style `%s' already exists.\n" -"do you want to overwrite existing style?\n" -msgstr "" -"סגנון `%s' כבר קיים.\n" -"האם ברצונך לדרוס סגנון קיים?\n" - -#: ../src/libs/styles.c:446 ../src/libs/styles.c:629 -msgid "apply this option to all existing styles" -msgstr "יישם אפשרות זו עבור כל הסגנונות הקיימים" - -#: ../src/libs/styles.c:509 -#, c-format -msgid "style %s was successfully exported" -msgstr "סגנון %s יוצא בהצלחה" - -#: ../src/libs/styles.c:526 -msgid "select style" -msgstr "בחר סגנון" - -#: ../src/libs/styles.c:536 -msgid "darktable style files" -msgstr "קבצי סגנון של darktable" - -#: ../src/libs/styles.c:815 -msgid "" -"available styles,\n" -"double-click to apply" -msgstr "" -"סגנונות זמינים,\n" -"הקלק כפול ליישום" - -#: ../src/libs/styles.c:824 ../src/libs/styles.c:825 -msgid "filter style names" -msgstr "שמות סגנונות פילטרים" - -#: ../src/libs/styles.c:837 -msgid "create duplicate" -msgstr "צור העתק" - -#: ../src/libs/styles.c:844 -msgid "creates a duplicate of the image before applying style" -msgstr "יוצר העתק של התמונה לפני יישום הסגנון" - -#: ../src/libs/styles.c:862 -msgid "create..." -msgstr "צור..." - -#: ../src/libs/styles.c:864 -msgid "create styles from history stack of selected images" -msgstr "יוצר סגנונות מתוך מחסנית ההיסטוריה של התמונות הנבחרות" - -#: ../src/libs/styles.c:869 ../src/libs/tagging.c:2252 -msgid "edit..." -msgstr "ערוך..." - -#: ../src/libs/styles.c:871 -msgid "edit the selected styles in list above" -msgstr "ערוך את הסגנונות הנבחרים מהרשימה למעלה" - -#: ../src/libs/styles.c:878 -msgid "removes the selected styles in list above" -msgstr "מוחק את הסגנונות הנבחרים מהרשימה למעלה" - -#: ../src/libs/styles.c:885 -msgid "import styles from a style files" -msgstr "ייבא סגנונות מתוך קבצי סגנון" - -#: ../src/libs/styles.c:892 -msgid "export the selected styles into a style files" -msgstr "ייצא את הסגנונות הנבחרים לקבצי סגנון" - -#: ../src/libs/styles.c:899 -msgid "apply the selected styles in list above to selected images" -msgstr "יישם את הסגנונות הנבחרים מהרשימה למעלה לתמונות הנבחרות" - -#: ../src/libs/tagging.c:105 -msgid "tagging" -msgstr "תיוג" - -#: ../src/libs/tagging.c:1255 -msgid "attach tag to all" -msgstr "צרף תג לכל התמונות הנבחרות" - -#: ../src/libs/tagging.c:1263 ../src/libs/tagging.c:2225 -msgid "detach tag" -msgstr "נתק תג" - -#: ../src/libs/tagging.c:1483 -msgid "delete tag?" -msgstr "מחק תג?" - -#: ../src/libs/tagging.c:1490 ../src/libs/tagging.c:1578 -#: ../src/libs/tagging.c:1789 ../src/libs/tagging.c:2063 -#, c-format -msgid "selected: %s" -msgstr "נבחר: %s" - -#: ../src/libs/tagging.c:1497 -#, c-format -msgid "" -"do you really want to delete the tag `%s'?\n" -"%d image is assigned this tag!" -msgid_plural "" -"do you really want to delete the tag `%s'?\n" -"%d images are assigned this tag!" -msgstr[0] "" -"האם באמת ברצונך למחוק את התג `%s'?\n" -"לתמונה %d מוקצה תג זה!" -msgstr[1] "" -"האם באמת ברצונך למחוק את התג `%s'?\n" -"ל %d תמונות מוקצה תג זה!" - -#: ../src/libs/tagging.c:1531 -#, c-format -msgid "tag %s removed" -msgstr "תג %s הוסר" - -#: ../src/libs/tagging.c:1571 -msgid "delete node?" -msgstr "מחק צומת?" - -#: ../src/libs/tagging.c:1585 -#, c-format -msgid "<u>%d</u> tag will be deleted" -msgid_plural "<u>%d</u> tags will be deleted" -msgstr[0] "תג <u>%d</u> יימחק" -msgstr[1] "תגים <u>%d</u> יימחקו" - -#: ../src/libs/tagging.c:1590 ../src/libs/tagging.c:1801 -#: ../src/libs/tagging.c:2075 -#, c-format -msgid "<u>%d</u> image will be updated" -msgid_plural "<u>%d</u> images will be updated" -msgstr[0] "תמונה <u>%d</u> תעודכן" -msgstr[1] "תמונות <u>%d</u> יעודכנו" - -#: ../src/libs/tagging.c:1616 -#, c-format -msgid "%d tags removed" -msgstr "%d תגים הוסרו" - -#: ../src/libs/tagging.c:1652 -msgid "create tag" -msgstr "צור תג" - -#: ../src/libs/tagging.c:1662 ../src/libs/tagging.c:1809 -msgid "name: " -msgstr "שם: " - -#: ../src/libs/tagging.c:1674 -#, c-format -msgid "add to: \"%s\" " -msgstr "הוסף ל: \"%s\" " - -#: ../src/libs/tagging.c:1680 ../src/libs/tagging.c:1824 -msgid "category" -msgstr "קטגוריה" - -#: ../src/libs/tagging.c:1689 ../src/libs/tagging.c:1833 -msgid "synonyms: " -msgstr "מילים נרדפות: " - -#: ../src/libs/tagging.c:1706 ../src/libs/tagging.c:1855 -#: ../src/libs/tagging.c:2097 -msgid "empty tag is not allowed, aborting" -msgstr "תג ריק אינו מותר, מבטל" - -#: ../src/libs/tagging.c:1717 -msgid "tag name already exists. aborting." -msgstr "שם תג כבר קיים. מבטל." - -#: ../src/libs/tagging.c:1796 ../src/libs/tagging.c:2070 -#, c-format -msgid "<u>%d</u> tag will be updated" -msgid_plural "<u>%d</u> tags will be updated" -msgstr[0] "תג <u>%d</u> יעודכן" -msgstr[1] "תגים <u>%d</u> יעודכנו" - -#: ../src/libs/tagging.c:1857 -msgid "" -"'|' character is not allowed for renaming tag.\n" -"to modify the hierarchy use rename path instead. Aborting." -msgstr "" -"הסימן '|' לא מותר בשינוי שם תג.\n" -"לשינוי ההירכיה השתמש בשינוי שם הנתיב במקום. מבטל." - -#: ../src/libs/tagging.c:1896 ../src/libs/tagging.c:2004 -#, c-format -msgid "at least one new tag name (%s) already exists, aborting" -msgstr "לפחות תג חדש אחד בשם (%s) כבר קיים, מבטל" - -#: ../src/libs/tagging.c:2056 -msgid "change path" -msgstr "שנה נתיב" - -#: ../src/libs/tagging.c:2099 -msgid "'|' misplaced, empty tag is not allowed, aborting" -msgstr "הסימן '|' אינו ממוקם נכון, תג ריק אינו מותר, מבטל" - -#: ../src/libs/tagging.c:2195 -#, c-format -msgid "tag %s created" -msgstr "תג %s נוצר" - -#: ../src/libs/tagging.c:2221 -msgid "attach tag" -msgstr "הדבק תג" - -#: ../src/libs/tagging.c:2234 -msgid "create tag..." -msgstr "יוצר תג..." - -#: ../src/libs/tagging.c:2240 -msgid "delete tag" -msgstr "מחק תג" - -#: ../src/libs/tagging.c:2247 -msgid "delete node" -msgstr "מחק צומת" - -#: ../src/libs/tagging.c:2260 -msgid "change path..." -msgstr "שנה נתיב..." - -#: ../src/libs/tagging.c:2270 -msgid "set as a tag" -msgstr "קבע כתג" - -#: ../src/libs/tagging.c:2281 -msgid "copy to entry" -msgstr "העתק לערך" - -#: ../src/libs/tagging.c:2298 -msgid "go to tag collection" -msgstr "עבור לאוסף התגים" - -#: ../src/libs/tagging.c:2304 -msgid "go back to work" -msgstr "לך חזרה לעבודה" - -#: ../src/libs/tagging.c:2461 -#, c-format -msgid "%s" -msgstr "%s" - -#: ../src/libs/tagging.c:2462 -msgid "(private)" -msgstr "(פרטי)" - -#: ../src/libs/tagging.c:2488 -msgid "select a keyword file" -msgstr "בחר קובץ מקלדת" - -#: ../src/libs/tagging.c:2501 -msgid "error importing tags" -msgstr "שגיאה בייבוא תמונה" - -#: ../src/libs/tagging.c:2503 -#, c-format -msgid "%zd tags imported" -msgstr "יובאו תגיות %zd" - -#: ../src/libs/tagging.c:2524 -msgid "select file to export to" -msgstr "בחר קובץ לייצוא ל" - -#: ../src/libs/tagging.c:2538 -msgid "error exporting tags" -msgstr "שגיאה ביצוא תגיות" - -#: ../src/libs/tagging.c:2540 -#, c-format -msgid "%zd tags exported" -msgstr "יוצאו תגיות %zd" - -#: ../src/libs/tagging.c:2964 -msgid "drop to root" -msgstr "פרוש לשורש" - -#: ../src/libs/tagging.c:3100 -msgid "" -"attached tags\n" -"press Delete or double-click to detach\n" -"right-click for other actions on attached tag,\n" -"Tab to give the focus to entry" -msgstr "" -"תגים מוצמדים\n" -"קליק כפול או Delete לניתוק\n" -"קליק ימני לפעולות נוספות על תג מודבק,\n" -"לחץ Tab להתמקד על השדה," - -#: ../src/libs/tagging.c:3111 -msgid "attach" -msgstr "צרף" - -#: ../src/libs/tagging.c:3112 -msgid "attach tag to all selected images" -msgstr "צרף תג לכל התמונות הנבחרות" - -#: ../src/libs/tagging.c:3115 -msgid "detach" -msgstr "נתק" - -#: ../src/libs/tagging.c:3116 -msgid "detach tag from all selected images" -msgstr "נתק תג מכל התמונות הנבחרות" - -#: ../src/libs/tagging.c:3129 -msgid "toggle list with / without hierarchy" -msgstr "מתג רשימה עם / בלי היררכיה" - -#: ../src/libs/tagging.c:3129 -msgid "hide" -msgstr "החבא" - -#: ../src/libs/tagging.c:3131 -msgid "toggle sort by name or by count" -msgstr "מתג סידור לפי שם או כמות" - -#: ../src/libs/tagging.c:3131 -msgid "sort" -msgstr "סדר" - -#: ../src/libs/tagging.c:3133 -msgid "toggle show or not darktable tags" -msgstr "מתג הצגת תגי darktable" - -#: ../src/libs/tagging.c:3133 -msgid "dttags" -msgstr "dttags" - -#: ../src/libs/tagging.c:3149 -msgid "" -"enter tag name\n" -"press Enter to create a new tag and attach it on selected images\n" -"press Tab or Down key to go to the first matching tag\n" -"press shift+Tab to select the first attached user tag" -msgstr "" -"הכנס שם תגית\n" -"לחץ Enter ליצירת תגית חדשה והצמדתה לתמונות הנבחרות\n" -"לחץ Tab בצירוף מקש חץ מטה להגעה לתגית התואמת הראשונה\n" -"לחץ shift+Tab לבחירת התגית המוצמדת הראשונה של המשתמש" - -#: ../src/libs/tagging.c:3160 ../src/libs/tagging.c:3166 -msgid "clear entry" -msgstr "נקה ערך" - -#: ../src/libs/tagging.c:3213 -msgid "" -"tag dictionary,\n" -"Enter or double-click to attach selected tag on selected images\n" -"shift+Enter idem plus gives the focus to entry\n" -"shift+click to fully expand the selected tag\n" -"right-click for other actions on selected tag\n" -"shift+Tab to give the focus to entry" -msgstr "" -"מילון תגיות,\n" -"לחץ Enter או קליק-כפול להצמדת התגית הנבחרת לתמונות הנבחרות\n" -"כנ\"ל עבור shift+Enter בנוסף מכניס את השדה לפוקוס\n" -"קליק+shift לפריסה מלאה של התגית הנבחרת\n" -"קליק-ימני לפעולות אחרות על התגית הנבחרת\n" -"לחץ shift+Tab להעביר פוקוס לשדה" - -#: ../src/libs/tagging.c:3248 -msgid "" -"create a new tag with the\n" -"name you entered" -msgstr "" -"צור תג חדש עם\n" -"השם שהכנסת" - -#: ../src/libs/tagging.c:3251 -msgid "import tags from a Lightroom keyword file" -msgstr "ייבא תגיות מתוך קובץ מילות מפתח של Lightroom" - -#: ../src/libs/tagging.c:3254 -msgid "export all tags to a Lightroom keyword file" -msgstr "ייצא את כל התגיות ל קובץ מילות מפתח של Lightroom" - -#: ../src/libs/tagging.c:3258 -msgid "toggle list / tree view" -msgstr "מתג תצוגת רשימה / עץ" - -#: ../src/libs/tagging.c:3258 -msgid "tree" -msgstr "עץ" - -#: ../src/libs/tagging.c:3260 -msgid "toggle list with / without suggestion" -msgstr "מתג רשימה עם / בלי הצעה" - -#: ../src/libs/tagging.c:3260 -msgid "suggestion" -msgstr "הצעה" - -#: ../src/libs/tagging.c:3282 -msgid "redo last tag" -msgstr "יישם מחדש תג אחרון" - -#: ../src/libs/tagging.c:3365 -msgid "" -"tag shortcut is not active with tag tree view. please switch to list view" -msgstr "קיצור דרך לתג לא פעיל במבט עץ. אנה עבור למבט רשימה" - -#: ../src/libs/tagging.c:3469 -msgid "tagging settings" -msgstr "הגדרות תגיות" - -#: ../src/libs/tools/battery_indicator.c:38 -#: ../src/libs/tools/battery_indicator.c:70 -msgid "battery indicator" -msgstr "מחוון סוללה" - -#: ../src/libs/tools/colorlabels.c:42 -msgid "colorlabels" -msgstr "תוויות צבע" - -#: ../src/libs/tools/colorlabels.c:87 -msgid "toggle color label of selected images" -msgstr "מתג תווית צבע של תמונות נבחרות" - -#: ../src/libs/tools/darktable.c:284 -#, c-format -msgid "copyright (c) the authors 2009-%s" -msgstr "copyright (c) the authors 2009-%s" - -#: ../src/libs/tools/darktable.c:288 -msgid "organize and develop images from digital cameras" -msgstr "ארגן ופתח תמונות ממצלמות דיגיטליות" - -#: ../src/libs/tools/darktable.c:300 -msgid "all those of you that made previous releases possible" -msgstr "ולכל אלה מכם שאפשרו שחרור של גרסאות קודמות" - -#: ../src/libs/tools/darktable.c:305 -msgid "and..." -msgstr "ו..." - -#: ../src/libs/tools/darktable.c:307 -msgid "translator-credits" -msgstr "קרדיטים לתרגום" - -#: ../src/libs/tools/filmstrip.c:45 -msgid "filmstrip" -msgstr "רצועת פילם" - -#: ../src/libs/tools/filter.c:42 -msgid "filter" -msgstr "פילטר" - -#: ../src/libs/tools/filter.c:104 -msgid "filter preferences" -msgstr "סנן העדפות" - -#: ../src/libs/tools/gamepad.c:37 -msgid "gamepad" -msgstr "gamepad" - -#: ../src/libs/tools/gamepad.c:60 -msgid "button a" -msgstr "כפתור a" - -#: ../src/libs/tools/gamepad.c:60 -msgid "button b" -msgstr "כפתור b" - -#: ../src/libs/tools/gamepad.c:60 -msgid "button x" -msgstr "כפתור x" - -#: ../src/libs/tools/gamepad.c:60 -msgid "button y" -msgstr "כפתור y" - -#: ../src/libs/tools/gamepad.c:61 -msgid "button back" -msgstr "כפתור back" - -#: ../src/libs/tools/gamepad.c:61 -msgid "button guide" -msgstr "כפתור guide" - -#: ../src/libs/tools/gamepad.c:61 -msgid "button start" -msgstr "כפתור התחלה" - -#: ../src/libs/tools/gamepad.c:62 -msgid "left stick" -msgstr "הדבק לשמאל" - -#: ../src/libs/tools/gamepad.c:62 -msgid "right stick" -msgstr "הדבק לימין" - -#: ../src/libs/tools/gamepad.c:62 -msgid "left shoulder" -msgstr "כתף שמאלית" - -#: ../src/libs/tools/gamepad.c:62 -msgid "right shoulder" -msgstr "כתף ימנית" - -#: ../src/libs/tools/gamepad.c:63 -msgid "dpad up" -msgstr "dpad up" - -#: ../src/libs/tools/gamepad.c:63 -msgid "dpad down" -msgstr "נמשך מטה" - -#: ../src/libs/tools/gamepad.c:63 -msgid "dpad left" -msgstr "שמאלי dpad" - -#: ../src/libs/tools/gamepad.c:63 -msgid "dpad right" -msgstr "dpad right" - -#: ../src/libs/tools/gamepad.c:64 -msgid "button misc1" -msgstr "כפתור misc1" - -#: ../src/libs/tools/gamepad.c:64 -msgid "paddle1" -msgstr "paddle1" - -#: ../src/libs/tools/gamepad.c:64 -msgid "paddle2" -msgstr "paddle2" - -#: ../src/libs/tools/gamepad.c:64 -msgid "paddle3" -msgstr "paddle3" - -#: ../src/libs/tools/gamepad.c:64 -msgid "paddle4" -msgstr "paddle4" - -#: ../src/libs/tools/gamepad.c:64 -msgid "touchpad" -msgstr "פד מגע" - -#: ../src/libs/tools/gamepad.c:65 -msgid "left trigger" -msgstr "הדק שמאלי" - -#: ../src/libs/tools/gamepad.c:65 -msgid "right trigger" -msgstr "מתג ימין" - -#: ../src/libs/tools/gamepad.c:71 -msgid "invalid gamepad button" -msgstr "כפתור gamepad לא חוקי" - -#: ../src/libs/tools/gamepad.c:89 -msgid "left x" -msgstr "שמאל x" - -#: ../src/libs/tools/gamepad.c:89 -msgid "left y" -msgstr "שמאל y" - -#: ../src/libs/tools/gamepad.c:89 -msgid "right x" -msgstr "ימין x" - -#: ../src/libs/tools/gamepad.c:89 -msgid "right y" -msgstr "ימין y" - -#: ../src/libs/tools/gamepad.c:90 -msgid "left diagonal" -msgstr "אלכסון שמאלי" - -#: ../src/libs/tools/gamepad.c:90 -msgid "left skew" -msgstr "עיוות שמאלי" - -#: ../src/libs/tools/gamepad.c:90 -msgid "right diagonal" -msgstr "אלכסון ימני" - -#: ../src/libs/tools/gamepad.c:90 -msgid "right skew" -msgstr "עיוות ימני" - -#. diagonals -#: ../src/libs/tools/gamepad.c:96 -msgid "invalid gamepad axis" -msgstr "ציר gamepad לא חוקי" - -#. we write the label with the size category -#: ../src/libs/tools/global_toolbox.c:215 -msgid "thumbnails overlays for size" -msgstr "מזער כיסויים לגודל" - -#: ../src/libs/tools/global_toolbox.c:249 -#: ../src/libs/tools/global_toolbox.c:312 -msgid "" -"duration before the block overlay is hidden after each mouse movement on the " -"image\n" -"set -1 to never hide the overlay" -msgstr "" -"פרק הזמן לפני שבלוק הכיסוי יוחבא אחרי כל תנועת עכבר מעל התמונה\n" -"קבע ל 1- כדי שלעולם לא יוחבא" - -#: ../src/libs/tools/global_toolbox.c:254 -#: ../src/libs/tools/global_toolbox.c:317 -msgid "timeout only available for block overlay" -msgstr "פסק זמן זמין רק לבלוק כיסוי" - -#: ../src/libs/tools/global_toolbox.c:277 -#: ../src/libs/tools/global_toolbox.c:463 -msgid "culling overlays" -msgstr "ברור ציפויים" - -#: ../src/libs/tools/global_toolbox.c:279 -msgid "preview overlays" -msgstr "תצוגה מקדימה לציפויים" - -#: ../src/libs/tools/global_toolbox.c:353 -msgid "overlays not available here..." -msgstr "ציפויים לא זמינים כאן..." - -#: ../src/libs/tools/global_toolbox.c:397 -#: ../src/libs/tools/global_toolbox.c:533 -msgid "expand grouped images" -msgstr "הרחב תמונות מקובצות" - -#: ../src/libs/tools/global_toolbox.c:399 -#: ../src/libs/tools/global_toolbox.c:535 -msgid "collapse grouped images" -msgstr "צמצם תמונות מקובצות" - -#: ../src/libs/tools/global_toolbox.c:406 -msgid "thumbnail overlays options" -msgstr "אפשרויות כיסויים לתמונות ממוזערות" - -#: ../src/libs/tools/global_toolbox.c:407 -msgid "click to change the type of overlays shown on thumbnails" -msgstr "הקלק לשינוי סוג הכיסויים הנראים בתמונות הממוזערות" - -#: ../src/libs/tools/global_toolbox.c:430 -#: ../src/libs/tools/global_toolbox.c:459 -msgid "overlay mode for size" -msgstr "מצב ציפוי לגודל" - -#: ../src/libs/tools/global_toolbox.c:434 -msgid "thumbnail overlays" -msgstr "כיסויים לתמונות ממוזערות" - -#: ../src/libs/tools/global_toolbox.c:436 -#: ../src/libs/tools/global_toolbox.c:465 -msgid "no overlays" -msgstr "אין ציפויים" - -#: ../src/libs/tools/global_toolbox.c:437 -msgid "overlays on mouse hover" -msgstr "ציפויים בריחוף עכבר" - -#: ../src/libs/tools/global_toolbox.c:438 -msgid "extended overlays on mouse hover" -msgstr "פתח כיסויים בריחוף עכבר" - -#: ../src/libs/tools/global_toolbox.c:439 -#: ../src/libs/tools/global_toolbox.c:466 -msgid "permanent overlays" -msgstr "ציפויים קבועים" - -#: ../src/libs/tools/global_toolbox.c:440 -#: ../src/libs/tools/global_toolbox.c:467 -msgid "permanent extended overlays" -msgstr "ציפויים קבועים מורחבים" - -#: ../src/libs/tools/global_toolbox.c:441 -msgid "permanent overlays extended on mouse hover" -msgstr "כיסויים קבועים נפתחים בריחוף עכבר" - -#: ../src/libs/tools/global_toolbox.c:443 -#: ../src/libs/tools/global_toolbox.c:469 -msgid "overlays block on mouse hover" -msgstr "ציפויים בריחוף עכבר" - -#: ../src/libs/tools/global_toolbox.c:444 -#: ../src/libs/tools/global_toolbox.c:470 -msgid "during (s)" -msgstr "during (s)" - -#: ../src/libs/tools/global_toolbox.c:449 -#: ../src/libs/tools/global_toolbox.c:475 -msgid "show tooltip" -msgstr "הראה חלוניות מידע" - -#: ../src/libs/tools/global_toolbox.c:487 -msgid "help" -msgstr "עזרה" - -#: ../src/libs/tools/global_toolbox.c:489 -msgid "enable this, then click on a control element to see its online help" -msgstr "הפעל אפשרות זו, אז הקלק על אלמנט בקרה על מנת לראות עזרה מכוונת עליו" - -#: ../src/libs/tools/global_toolbox.c:496 -msgid "" -"define shortcuts\n" -"ctrl+click to switch off overwrite confirmations\n" -"\n" -"hover over a widget and press keys with mouse click and scroll or move " -"combinations\n" -"repeat same combination again to delete mapping\n" -"click on a widget, module or screen area to open the dialog for further " -"configuration" -msgstr "" -"הגדר קיצורים\n" -"קליק+ctrl לכבוי אשרור לדריסה\n" -"\n" -"רחף מעל ה ווידג'ט ולחץ על קומבינציה של מקשים בנוסף ללחיצת עכבר וגלילה או " -"הזזה\n" -"חזור על אותה קומבינציה שוב למחיקת המופוי\n" -"לחץ על ווידג'ט, מודול או איזור במסך לפתיחת תיבת דו שיח על קונפיגורציות נוספות" - -#: ../src/libs/tools/global_toolbox.c:512 -msgid "show global preferences" -msgstr "הצג העדפות גלובליות" - -#: ../src/libs/tools/hinter.c:42 -msgid "hinter" -msgstr "רומז" - -#: ../src/libs/tools/hinter.c:98 -#, c-format -msgid "%s in current collection" -msgstr "%s באוסף הנוכחי" - -#: ../src/libs/tools/image_infos.c:40 -msgid "image infos" -msgstr "מידה על התמונה" - -#: ../src/libs/tools/lighttable.c:116 -msgid "click to exit from full preview layout." -msgstr "לחץ ליציאה מתצוגה מקדימה מלאה." - -#: ../src/libs/tools/lighttable.c:118 -msgid "click to enter full preview layout." -msgstr "לחץ לכניסה לתצוגה מקדימה מלאה." - -#: ../src/libs/tools/lighttable.c:121 -msgid "click to enter culling layout in fixed mode." -msgstr "הקלק להיכנס לפריסת הליקוט במצב מקובע." - -#: ../src/libs/tools/lighttable.c:123 ../src/libs/tools/lighttable.c:128 -msgid "click to exit culling layout." -msgstr "לחץ ליציאה מפריסת ליקוט." - -#: ../src/libs/tools/lighttable.c:126 -msgid "click to enter culling layout in dynamic mode." -msgstr "לחץ להיכנס לפריסת ליקוט במצב דינאמי." - -#: ../src/libs/tools/lighttable.c:368 -msgid "toggle filemanager layout" -msgstr "מתג פריסה של מנהל הקבצים" - -#: ../src/libs/tools/lighttable.c:371 -msgid "click to enter filemanager layout." -msgstr "לחץ לכניסה לתרשים מנהל הקבצים." - -#: ../src/libs/tools/lighttable.c:377 -msgid "toggle zoomable lighttable layout" -msgstr "מתג שולחן אור ניתן לקירוב" - -#: ../src/libs/tools/lighttable.c:380 -msgid "click to enter zoomable lighttable layout." -msgstr "קליק לכניסה לשולחן אור ניתן לקירוב." - -#: ../src/libs/tools/lighttable.c:386 -msgid "toggle culling mode" -msgstr "מתג מצב ליקוט" - -#: ../src/libs/tools/lighttable.c:394 -msgid "toggle culling dynamic mode" -msgstr "מתג מצב ליקוט דינאמי" - -#: ../src/libs/tools/lighttable.c:441 -msgid "toggle culling zoom mode" -msgstr "מתג ליקוט מצב זום" - -#: ../src/libs/tools/lighttable.c:443 -msgid "exit current layout" -msgstr "צא מהפריסה הנוכחית" - -#: ../src/libs/tools/midi.c:41 -msgid "midi" -msgstr "מידי" - -#: ../src/libs/tools/midi.c:221 -msgid "using absolute encoding; reinitialise to switch to relative" -msgstr "עושה שימוש בקידוד מוחלט; אתחל להחליף ליחסי" - -#: ../src/libs/tools/midi.c:225 -#, c-format -msgid "%d more identical (down) moves before switching to relative encoding" -msgstr "%d more identical (down) moves before switching to relative encoding" - -#: ../src/libs/tools/midi.c:228 -#, c-format -msgid "switching encoding to relative (down = %d)" -msgstr "מעביר קידוד ליחסי (מטה = %d)" - -#: ../src/libs/tools/midi.c:558 -#, c-format -msgid "%s opened as midi%d" -msgstr "%s נפתח כ midi%d" - -#: ../src/libs/tools/module_toolbox.c:46 -msgid "module toolbox" -msgstr "ארגז כלים מודולים" - -#. connect callbacks -#: ../src/libs/tools/ratings.c:97 -msgid "set star rating for selected images" -msgstr "קבע דירוג כוכבים עבור תמונות נבחרות" - -#: ../src/libs/tools/timeline.c:102 -msgid "timeline" -msgstr "ציר זמן" - -#: ../src/libs/tools/timeline.c:1433 -msgid "start selection" -msgstr "התחל בחירה" - -#: ../src/libs/tools/timeline.c:1434 -msgid "stop selection" -msgstr "עצור בחירה" - -#: ../src/libs/tools/view_toolbox.c:46 -msgid "view toolbox" -msgstr "ארגז כלים תצוגות" - -#: ../src/libs/tools/viewswitcher.c:60 -msgid "viewswitcher" -msgstr "מחליף תצוגות" - -#: ../src/lua/preferences.c:656 ../src/lua/preferences.c:671 -#: ../src/lua/preferences.c:683 ../src/lua/preferences.c:695 -#: ../src/lua/preferences.c:711 ../src/lua/preferences.c:775 -#, c-format -msgid "double-click to reset to `%s'" -msgstr "לחיצה כפולה לאתחל ל `%s'" - -#: ../src/lua/preferences.c:681 -msgid "select file" -msgstr "בחר קובץ" - -#: ../src/lua/preferences.c:734 -#, c-format -msgid "double-click to reset to `%d'" -msgstr "לחיצה כפולה לאתחל ל `%d'" - -#: ../src/lua/preferences.c:761 -#, c-format -msgid "double-click to reset to `%f'" -msgstr "לחיצה כפולה לאתחל ל `%f'" - -#: ../src/lua/preferences.c:837 -msgid "Lua options" -msgstr "אפשרויות Lua" - -#: ../src/views/darkroom.c:607 -#, c-format -msgid "" -"darktable could not load `%s', switching to lighttable now.\n" -"\n" -"please check that the camera model that produced the image is supported in " -"darktable\n" -"(list of supported cameras is at https://www.darktable.org/resources/camera-" -"support/).\n" -"if you are sure that the camera model is supported, please consider opening " -"an issue\n" -"at https://github.com/darktable-org/darktable" -msgstr "" -"לא ניתן היה להעלות את `%s', עובר לשולחן האור כעת.\n" -"\n" -"אנה בדוק שדגם המצלמה שצלמה את התמונה נתמך ב darktable\n" -"(רשימת מצלמות נתמכות ב https://www.darktable.org/resources/camera-" -"support/).\n" -"אם הנך בטוח שדגם המצלמה נתמך, אנה שקול לפתוח תקלה ב \n" -"https://github.com/darktable-org/darktable" - -#: ../src/views/darkroom.c:625 -#, c-format -msgctxt "darkroom" -msgid "loading `%s' ..." -msgstr "מעלה '%s' ..." - -#: ../src/views/darkroom.c:749 ../src/views/darkroom.c:2496 -msgid "gamut check" -msgstr "בדיקת מכלול צבע" - -#: ../src/views/darkroom.c:749 -msgid "soft proof" -msgstr "הדמיית הדפסה" - -#. fail :( -#: ../src/views/darkroom.c:787 ../src/views/print.c:356 -msgid "no image to open!" -msgstr "אין תמונה לפתוח!" - -#: ../src/views/darkroom.c:1331 -msgid "no user-defined presets for favorite modules were found" -msgstr "לא נמצאו פריסטים שהוגדרו על ידי המשתמש עבור מודולים מועדפים" - -#: ../src/views/darkroom.c:1476 -msgid "no styles have been created yet" -msgstr "לא נוצרו סגנונות עדיין" - -#: ../src/views/darkroom.c:2331 ../src/views/darkroom.c:2332 -msgid "quick access to presets" -msgstr "גישה מהירה לפריסטים" - -#: ../src/views/darkroom.c:2340 -msgid "quick access to styles" -msgstr "גישה מהירה לסגנונות" - -#: ../src/views/darkroom.c:2342 -msgid "quick access for applying any of your styles" -msgstr "גישה מהירה ליישום כל אחד מהסגנונות שלך" - -#: ../src/views/darkroom.c:2348 -msgid "second window" -msgstr "חלון שני" - -#: ../src/views/darkroom.c:2351 -msgid "display a second darkroom image window" -msgstr "הצג חלון תמונה נוסף של חדר חושך" - -#: ../src/views/darkroom.c:2356 -msgid "color assessment" -msgstr "הערכת צבע" - -#: ../src/views/darkroom.c:2359 -msgid "toggle ISO 12646 color assessment conditions" -msgstr "מתג תנאי הערכת צבע ISO 12646" - -#: ../src/views/darkroom.c:2372 -msgid "" -"toggle raw over exposed indication\n" -"right click for options" -msgstr "" -"מתג התראת חשיפת יתר\n" -"הקלק ימנית לאפשרויות" - -#: ../src/views/darkroom.c:2388 -msgid "select how to mark the clipped pixels" -msgstr "בחר את צורת הסימון של פיקסלים חתוכים" - -#: ../src/views/darkroom.c:2390 -msgid "mark with CFA color" -msgstr "סמן בצבע CFA" - -#: ../src/views/darkroom.c:2390 -msgid "mark with solid color" -msgstr "סמן בצבע אחיד" - -#: ../src/views/darkroom.c:2390 -msgid "false color" -msgstr "צבע לא נכון" - -#: ../src/views/darkroom.c:2393 ../src/views/darkroom.c:2444 -msgid "color scheme" -msgstr "תוכנית צבע" - -#: ../src/views/darkroom.c:2394 -msgid "" -"select the solid color to indicate over exposure.\n" -"will only be used if mode = mark with solid color" -msgstr "" -"בחר את הצבע האחיד לציון חשיפת יתר.\n" -"יבוא לידי ביטוי רק אם מצב = סמן בצבע אחיד" - -#: ../src/views/darkroom.c:2397 -msgctxt "solidcolor" -msgid "red" -msgstr "אדום" - -#: ../src/views/darkroom.c:2398 -msgctxt "solidcolor" -msgid "green" -msgstr "ירוק" - -#: ../src/views/darkroom.c:2399 -msgctxt "solidcolor" -msgid "blue" -msgstr "כחול" - -#: ../src/views/darkroom.c:2400 -msgctxt "solidcolor" -msgid "black" -msgstr "שחור" - -#: ../src/views/darkroom.c:2408 -msgid "" -"threshold of what shall be considered overexposed\n" -"1.0 - white level\n" -"0.0 - black level" -msgstr "" -"סף למה שיחשב כחשיפת יתר\n" -"1.0 - רמת לבן\n" -"0.0 - רמת שחור" - -#: ../src/views/darkroom.c:2422 -msgid "" -"toggle clipping indication\n" -"right click for options" -msgstr "" -"מתג התראת חשיפת יתר\n" -"הקלק ימנית לאפשרויות" - -#: ../src/views/darkroom.c:2437 -msgid "clipping preview mode" -msgstr "מצב תצוגה מקדימה של חיתוך" - -#: ../src/views/darkroom.c:2438 -msgid "" -"select the metric you want to preview\n" -"full gamut is the combination of all other modes" -msgstr "" -"בחר מדד לצפייה מקדימה\n" -"מכלול צבע מלא הוא שילוב כל המודים האחרים\n" -"ל" - -#: ../src/views/darkroom.c:2440 -msgid "full gamut" -msgstr "מכלול צבע מלא" - -#: ../src/views/darkroom.c:2440 -msgid "any RGB channel" -msgstr "ערוץ RGB כלשהו" - -#: ../src/views/darkroom.c:2440 -msgid "luminance only" -msgstr "לומיננס בלבד" - -#: ../src/views/darkroom.c:2440 -msgid "saturation only" -msgstr "רוויה בלבד" - -#: ../src/views/darkroom.c:2445 -msgid "select colors to indicate clipping" -msgstr "בחר צבעים לציון חיתוך חשיפה" - -#: ../src/views/darkroom.c:2447 -msgid "red & blue" -msgstr "אדום וכחול" - -#: ../src/views/darkroom.c:2447 -msgid "purple & green" -msgstr "סגול וירוק" - -#: ../src/views/darkroom.c:2454 -msgid "lower threshold" -msgstr "סף תחתון" - -#: ../src/views/darkroom.c:2455 -msgid "" -"clipping threshold for the black point,\n" -"in EV, relatively to white (0 EV).\n" -"8 bits sRGB clips blacks at -12.69 EV,\n" -"8 bits Adobe RGB clips blacks at -19.79 EV,\n" -"16 bits sRGB clips blacks at -20.69 EV,\n" -"typical fine-art mat prints produce black at -5.30 EV,\n" -"typical color glossy prints produce black at -8.00 EV,\n" -"typical B&W glossy prints produce black at -9.00 EV." -msgstr "" -"clipping threshold for the black point,\n" -"in EV, relatively to white (0 EV).\n" -"8 bits sRGB clips blacks at -12.69 EV,\n" -"8 bits Adobe RGB clips blacks at -19.79 EV,\n" -"16 bits sRGB clips blacks at -20.69 EV,\n" -"typical fine-art mat prints produce black at -5.30 EV,\n" -"typical color glossy prints produce black at -8.00 EV,\n" -"typical B&W glossy prints produce black at -9.00 EV." - -#: ../src/views/darkroom.c:2471 -msgid "upper threshold" -msgstr "סף עליון" - -#: ../src/views/darkroom.c:2473 -#, no-c-format -msgid "" -"clipping threshold for the white point.\n" -"100% is peak medium luminance." -msgstr "" -"סף חיתוך עבור נקודת לבן.\n" -"100% הוא לומיננס מקסימלי של המדיום." - -#: ../src/views/darkroom.c:2485 -msgid "softproof" -msgstr "softproof" - -#: ../src/views/darkroom.c:2488 -msgid "" -"toggle softproofing\n" -"right click for profile options" -msgstr "" -"מתג סימולציית הדפסה\n" -"הקלק ימנית לאפשרויות פרופיל" - -#: ../src/views/darkroom.c:2499 -msgid "" -"toggle gamut checking\n" -"right click for profile options" -msgstr "" -"מתג בדיקת מכלול צבע\n" -"הקלק ימנית לאפשרויות פרופיל" - -#: ../src/views/darkroom.c:2524 ../src/views/darkroom.c:2526 -#: ../src/views/darkroom.c:2540 ../src/views/darkroom.c:2541 -#: ../src/views/darkroom.c:2542 ../src/views/darkroom.c:2543 -#: ../src/views/lighttable.c:1182 ../src/views/lighttable.c:1184 -msgid "profiles" -msgstr "פרופילים" - -#: ../src/views/darkroom.c:2526 ../src/views/lighttable.c:1184 -msgid "preview intent" -msgstr "כוונת התצוגה המקדימה" - -#: ../src/views/darkroom.c:2540 ../src/views/lighttable.c:1188 -msgid "display profile" -msgstr "פרופיל תצוגה" - -#: ../src/views/darkroom.c:2541 ../src/views/lighttable.c:1191 -msgid "preview display profile" -msgstr "תצוגה מקדימה של פרופיל התצוגה" - -#: ../src/views/darkroom.c:2543 -msgid "histogram profile" -msgstr "פרופיל היסטוגרמה" - -#: ../src/views/darkroom.c:2605 ../src/views/lighttable.c:1225 -msgid "display ICC profiles" -msgstr "פרופילי ICC לתצוגה" - -#: ../src/views/darkroom.c:2609 ../src/views/lighttable.c:1229 -msgid "preview display ICC profiles" -msgstr "תצוגה מקדימה של פרופילי ICC לתצוגה" - -#: ../src/views/darkroom.c:2613 -msgid "softproof ICC profiles" -msgstr "פרופילי ICC לסימולציית הדפסה" - -#: ../src/views/darkroom.c:2617 -msgid "histogram and color picker ICC profiles" -msgstr "פרופילי ICC של ההיסטוגרמה ובוחר הצבע" - -#: ../src/views/darkroom.c:2651 -msgid "" -"toggle guide lines\n" -"right click for guides options" -msgstr "" -"מתג קווים מנחים\n" -"הקלק ימנית לאפשרויות מנחים" - -#. Fullscreen preview key -#: ../src/views/darkroom.c:2668 -msgid "full preview" -msgstr "תצוגה מקדימה מלאה" - -#. add an option to allow skip mouse events while other overlays are consuming mouse actions -#: ../src/views/darkroom.c:2672 -msgid "force pan/zoom/rotate with mouse" -msgstr "כפה הסחה/זום/סיבוב עם העכבר" - -#. Zoom shortcuts -#: ../src/views/darkroom.c:2684 -msgid "zoom close-up" -msgstr "זום תקריב" - -#. zoom in/out -#. zoom in/out/min/max -#: ../src/views/darkroom.c:2687 ../src/views/lighttable.c:1283 -msgid "zoom in" -msgstr "קרב" - -#: ../src/views/darkroom.c:2688 ../src/views/lighttable.c:1285 -msgid "zoom out" -msgstr "התרחק" - -#. Shortcut to skip images -#: ../src/views/darkroom.c:2691 -msgid "image forward" -msgstr "תמונה קדימה" - -#: ../src/views/darkroom.c:2692 -msgid "image back" -msgstr "תמונה אחורה" - -#. cycle overlay colors -#: ../src/views/darkroom.c:2695 -msgid "cycle overlay colors" -msgstr "גלול צבעי ציפוי" - -#. toggle visibility of drawn masks for current gui module -#: ../src/views/darkroom.c:2698 -msgid "show drawn masks" -msgstr "הראה מסיכות מצוירות" - -#. brush size +/- -#: ../src/views/darkroom.c:2701 -msgid "increase brush size" -msgstr "הגדל מברשת" - -#: ../src/views/darkroom.c:2702 -msgid "decrease brush size" -msgstr "הקטן מברשת" - -#. brush hardness +/- -#: ../src/views/darkroom.c:2705 -msgid "increase brush hardness" -msgstr "הגבר קשיחות מברשת" - -#: ../src/views/darkroom.c:2706 -msgid "decrease brush hardness" -msgstr "הקטן קשיחות מברשת" - -#. brush opacity +/- -#: ../src/views/darkroom.c:2709 -msgid "increase brush opacity" -msgstr "הגבר אטימות מברשת" - -#: ../src/views/darkroom.c:2710 -msgid "decrease brush opacity" -msgstr "הקטן אטימות מברשת" - -#. undo/redo -#: ../src/views/darkroom.c:2713 ../src/views/lighttable.c:1275 -#: ../src/views/map.c:2115 -msgid "undo" -msgstr "בטל" - -#: ../src/views/darkroom.c:2714 ../src/views/lighttable.c:1276 -#: ../src/views/map.c:2116 -msgid "redo" -msgstr "עשה שוב" - -#. change the precision for adjusting sliders with keyboard shortcuts -#: ../src/views/darkroom.c:2717 -msgid "change keyboard shortcut slider precision" -msgstr "שנה דיוק זחיח קיצור מקלדת" - -#: ../src/views/darkroom.c:3989 -msgid "keyboard shortcut slider precision: fine" -msgstr "דיוק זחיח קיצור מקלדת: עדין" - -#: ../src/views/darkroom.c:3991 -msgid "keyboard shortcut slider precision: normal" -msgstr "דיוק זחיח קיצור מקלדת: רגיל" - -#: ../src/views/darkroom.c:3993 -msgid "keyboard shortcut slider precision: coarse" -msgstr "דיוק זחיח קיצור מקלדת: גס" - -#: ../src/views/darkroom.c:4009 -msgid "switch to lighttable" -msgstr "עבור לשולחן אור" - -#: ../src/views/darkroom.c:4010 ../src/views/lighttable.c:882 -msgid "zoom in the image" -msgstr "הגדל את התמונה" - -#: ../src/views/darkroom.c:4011 -msgid "unbounded zoom in the image" -msgstr "זום לא מתוחם בתמונה" - -#: ../src/views/darkroom.c:4012 -msgid "zoom to 100% 200% and back" -msgstr "זום ל 100% 200% וחזרה" - -#: ../src/views/darkroom.c:4013 ../src/views/lighttable.c:885 -msgid "pan a zoomed image" -msgstr "הסח תמונה מוקרבת" - -#: ../src/views/darkroom.c:4015 ../src/views/lighttable.c:927 -msgid "[modules] expand module without closing others" -msgstr "[מודולים] הרחב מודולים מבלי לסגור אחרים" - -#: ../src/views/darkroom.c:4016 ../src/views/lighttable.c:928 -msgid "[modules] expand module and close others" -msgstr "[מודולים] הרחב מודולים וסגור אחרים" - -#: ../src/views/darkroom.c:4018 -msgid "[modules] rename module" -msgstr "[modules] שנה שם מודול" - -#: ../src/views/darkroom.c:4020 -msgid "[modules] change module position in pipe" -msgstr "[מודולים] שנה מיקום מודול בתהליך" - -#: ../src/views/knight.c:334 -msgid "good knight" -msgstr "לילה טוב" - -#. Show infos key -#: ../src/views/lighttable.c:656 ../src/views/lighttable.c:1266 -msgid "show infos" -msgstr "הראה מידעים" - -#: ../src/views/lighttable.c:759 -msgid "middle" -msgstr "אמצע" - -#: ../src/views/lighttable.c:877 -msgid "open image in darkroom" -msgstr "פתח תמונה בחדר חושך" - -#: ../src/views/lighttable.c:881 -msgid "switch to next/previous image" -msgstr "עבור לתמונה הבאה/קודמת" - -#: ../src/views/lighttable.c:884 ../src/views/lighttable.c:915 -#, no-c-format -msgid "zoom to 100% and back" -msgstr "זום ל 100% וחזרה" - -#: ../src/views/lighttable.c:889 ../src/views/lighttable.c:908 -msgid "scroll the collection" -msgstr "גלול את האוסף" - -#: ../src/views/lighttable.c:891 -msgid "change number of images per row" -msgstr "שנה מספר תמונות לשורה" - -#: ../src/views/lighttable.c:894 -msgid "select an image" -msgstr "בחר תמונה" - -#: ../src/views/lighttable.c:896 -msgid "select range from last image" -msgstr "בחר טווח מתמונה אחרונה" - -#: ../src/views/lighttable.c:898 -msgid "add image to or remove it from a selection" -msgstr "הוסף תמונה או הסר אותה מהאוסף" - -#: ../src/views/lighttable.c:902 -msgid "change image order" -msgstr "שנה סידור תמונה" - -#: ../src/views/lighttable.c:909 -msgid "zoom all the images" -msgstr "הגדל את כל התמונות" - -#: ../src/views/lighttable.c:910 -msgid "pan inside all the images" -msgstr "הזז בכל התמונות" - -#: ../src/views/lighttable.c:912 -msgid "zoom current image" -msgstr "הגדל תמונה נוכחית" - -#: ../src/views/lighttable.c:913 -msgid "pan inside current image" -msgstr "הזז בתמונה הנוכחית" - -#: ../src/views/lighttable.c:918 -#, no-c-format -msgid "zoom current image to 100% and back" -msgstr "זום תמונה נוכחית ל 100% וחזרה" - -#: ../src/views/lighttable.c:922 -msgid "zoom the main view" -msgstr "הגדל מבט ראשי" - -#: ../src/views/lighttable.c:923 -msgid "pan inside the main view" -msgstr "הזז בתוך חלון הת הראשי" - -#: ../src/views/lighttable.c:1160 -msgid "set display profile" -msgstr "קבע פרופיל תצוגה" - -#: ../src/views/lighttable.c:1246 -msgid "whole" -msgstr "מלא" - -#: ../src/views/lighttable.c:1262 -msgid "leave" -msgstr "עזוב" - -#: ../src/views/lighttable.c:1269 -msgid "align images to grid" -msgstr "ישר תמונות לרשת" - -#: ../src/views/lighttable.c:1270 -msgid "reset first image offset" -msgstr "אתחל הסחת תמונה ראשונה" - -#: ../src/views/lighttable.c:1271 -msgid "select toggle image" -msgstr "בחר מתג תמונה" - -#: ../src/views/lighttable.c:1272 -msgid "select single image" -msgstr "בחר תמונה בודדת" - -#. zoom for full culling & preview -#: ../src/views/lighttable.c:1279 -msgid "preview zoom 100%" -msgstr "זום תצוגה מקדימה 100%" - -#: ../src/views/lighttable.c:1280 -msgid "preview zoom fit" -msgstr "התאם הגדלה לתצוגה מקדימה" - -#: ../src/views/lighttable.c:1284 -msgid "zoom max" -msgstr "זום מקסימלי" - -#: ../src/views/lighttable.c:1286 -msgid "zoom min" -msgstr "זום מינימלי" - -#: ../src/views/map.c:2809 -msgid "[on image] open in darkroom" -msgstr "[על תמונה] פתח בחדר חושך" - -#: ../src/views/map.c:2810 -msgid "[on map] zoom map" -msgstr "[על המפה] הגדל מפה" - -#: ../src/views/map.c:2811 -msgid "move image location" -msgstr "הזז את מיקום התמונה" - -#: ../src/views/print.c:55 -msgctxt "view" -msgid "print" -msgstr "הדפס" - -#: ../src/views/slideshow.c:353 -msgid "end of images" -msgstr "סוף התמונות" - -#: ../src/views/slideshow.c:374 -msgid "end of images. press any key to return to lighttable mode" -msgstr "סוף התמונות. לחץ על מקש כלשהו לחזור למצב שולחן אור" - -#: ../src/views/slideshow.c:504 -msgid "waiting to start slideshow" -msgstr "ממתין להתחיל את מצגת השקופיות" - -#: ../src/views/slideshow.c:640 ../src/views/slideshow.c:661 -#: ../src/views/slideshow.c:669 -msgid "slideshow paused" -msgstr "מצגת שקופיות בהמתנה" - -#: ../src/views/slideshow.c:648 ../src/views/slideshow.c:655 -#, c-format -msgid "slideshow delay set to %d second" -msgid_plural "slideshow delay set to %d seconds" -msgstr[0] "השהייה בין שקופיות %d שניה" -msgstr[1] "השהייה בין שקופיות %d שניות" - -#: ../src/views/slideshow.c:684 -msgid "start and stop" -msgstr "התחל ועצור" - -#: ../src/views/slideshow.c:685 -msgid "exit slideshow" -msgstr "צא ממצגת שקופיות" - -#: ../src/views/slideshow.c:688 -msgid "slow down" -msgstr "האט" - -#: ../src/views/slideshow.c:691 -msgid "speed up" -msgstr "זרז" - -#: ../src/views/slideshow.c:695 -msgid "step forward" -msgstr "צעד קדימה" - -#: ../src/views/slideshow.c:696 -msgid "step back" -msgstr "צעד אחורה" - -#: ../src/views/slideshow.c:702 -msgid "go to next image" -msgstr "עבור לקובץ הבא" - -#: ../src/views/slideshow.c:703 -msgid "go to previous image" -msgstr "עבור לתמונה הקודמת" - -#: ../src/views/tethering.c:157 -#, c-format -msgid "new session initiated '%s'" -msgstr "מושב חדש אותחל '%s'" - -#: ../src/views/tethering.c:448 -msgid "no camera with tethering support available for use..." -msgstr "אין מצלמה זמינה לשימוש עם תמיכה בקשירה..." - -#: ../src/views/view.c:1193 -msgid "left click" -msgstr "קליק שמאלי" - -#: ../src/views/view.c:1196 -msgid "right click" -msgstr "קליק ימני" - -#: ../src/views/view.c:1199 -msgid "middle click" -msgstr "קליק אמצעי" - -#: ../src/views/view.c:1205 -msgid "left double-click" -msgstr "קליק-כפול שמאלי" - -#: ../src/views/view.c:1208 -msgid "right double-click" -msgstr "קליק-כפול ימני" - -#: ../src/views/view.c:1211 -msgid "drag and drop" -msgstr "גרור ושחרר" - -#: ../src/views/view.c:1214 -msgid "left click+drag" -msgstr "קליק שמאלי+גרור" - -#: ../src/views/view.c:1217 -msgid "right click+drag" -msgstr "קליק ימני+גרור" - -#: ../src/views/view.c:1237 -msgid "darktable - accels window" -msgstr "darktable - חלון קיצורים" - -#: ../src/views/view.c:1285 -msgid "switch to a classic window which will stay open after key release" -msgstr "עבור לחלון קלאסי שישאר פתוח לאחר שחרור המקש" - -#. we add the mouse actions too -#: ../src/views/view.c:1344 -msgid "mouse actions" -msgstr "פעולות עכבר" - -#~ msgctxt "preferences" -#~ msgid "always bilinear (fast)" -#~ msgstr "תמיד bilinear (מהיר)" - -#~ msgctxt "preferences" -#~ msgid "full (possibly slow)" -#~ msgstr "מלא (אטי בפוטנציה)" - -#~ msgctxt "preferences" -#~ msgid "rgb parade" -#~ msgstr "מצעד rgb" - -#~ msgctxt "preferences" -#~ msgid "modern" -#~ msgstr "מודרני" - -#~ msgctxt "preferences" -#~ msgid "legacy" -#~ msgstr "מורשת" - -#~ msgid "pen pressure control for brush masks" -#~ msgstr "שליטה בלחץ העט עבור מסיכות מכחול" - -#~ msgid "smoothing of brush strokes" -#~ msgstr "החלקת נגיעות מכחול" - -#~ msgid "demosaicing for zoomed out darkroom mode" -#~ msgstr "תהליך demosaicing עבור תמונות מוקטנות במצב חדר חושך" - -#~ msgid "" -#~ "demosaicer when not viewing 1:1 in darkroom mode: 'bilinear' is fast but " -#~ "slightly blurry. 'default' uses the default demosaicer for the used " -#~ "sensor (RCD or Markesteijn). 'full' will use exactly the settings as for " -#~ "full-size export." -#~ msgstr "" -#~ "demosaicer when not viewing 1:1 in darkroom mode: 'bilinear' is fast but " -#~ "slightly blurry. 'default' uses the default demosaicer for the used " -#~ "sensor (RCD or Markesteijn). 'full' will use exactly the settings as for " -#~ "full-size export." - -#~ msgid "auto-apply chromatic adaptation defaults" -#~ msgstr "יישם אוטומטית ברירות מחדל של התאמה כרומטית" - -#~ msgid "" -#~ "legacy performs a basic chromatic adaptation using only the white balance " -#~ "module\n" -#~ "modern uses a combination of white balance module and color calibration " -#~ "module, with improved color science for chromatic adaptation" -#~ msgstr "" -#~ "ותיק מבצע התאמה כרומטית בסיסית ע\"י שימוש אך ורק מודול איזון לבן\n" -#~ "מודרני משלב את המודולים איזון לבן וכיול צבע, עם מדע צבע משופר להתאמה " -#~ "כרומטית" - -#~ msgid "128 px" -#~ msgstr "128 px" - -#~ msgid "geometry" -#~ msgstr "גאומטריה" - -#~ msgid "averaged eigf" -#~ msgstr "ממוצע eigf" - -#~ msgid "eigf" -#~ msgstr "eigf" - -#~ msgid "sRGB (e.g. JPG)" -#~ msgstr "sRGB (e.g. JPG)" - -#, c-format -#~ msgid "darktable » %s" -#~ msgstr "darktable » %s" - -#~ msgid "<h1>Sorry,</h1><p>something went wrong. Please try again.</p>" -#~ msgstr "<h1>Sorry,</h1><p>something went wrong. Please try again.</p>" - -#~ msgid "" -#~ "<h1>Thank you,</h1><p>everything should have worked, you can <b>close</b> " -#~ "your browser now and <b>go back</b> to darktable.</p>" -#~ msgstr "" -#~ "<h1>Thank you,</h1><p>everything should have worked, you can <b>close</b> " -#~ "your browser now and <b>go back</b> to darktable.</p>" - -#, c-format -#~ msgid "unsupported working profile %s has been replaced by Rec2020 RGB!\n" -#~ msgstr "פרופיל קלט לא נתמך %s הוחלף ב Rec2020 RGB!\n" - -#~ msgid "a4" -#~ msgstr "a4" - -#~ msgid "a3" -#~ msgstr "a3" - -#, c-format -#~ msgid "could not send %s to trash%s%s" -#~ msgstr "לא ניתן לשלוח %s לסל המחזור%s%s" - -#~ msgid "physically delete" -#~ msgstr "מחק פיסית" - -#~ msgid "physically delete all files" -#~ msgstr "מחק פיזית את כל הקבצים" - -#~ msgid "skip to next file" -#~ msgstr "דלג לקובץ הבא" - -#~ msgid "stop process" -#~ msgstr "עצור עיבוד" - -#, c-format -#~ msgid "skipped blending in module '%s': roi's do not match" -#~ msgstr "עירוב לו בוצע במודול '%s': אזורי עניין לא תואמים" - -#~ msgid "could not allocate buffer for blending" -#~ msgstr "לא נמצא זיכרון לתהליך העירוב" - -#~ msgctxt "blendmode" -#~ msgid "Lab L-channel" -#~ msgstr "ערוץ-L ב Lab" - -#~ msgid "lighten modes" -#~ msgstr "מצבי הבהרה" - -#~ msgid "darken modes" -#~ msgstr "מצבי החשכה" - -#~ msgid "deprecated modes" -#~ msgstr "מודים מוצאים משימוש" - -#~ msgid "apply mask in normal or inverted mode" -#~ msgstr "יישם מסיכה במצב רגיל או מהופך" - -#~ msgid "" -#~ "press Del to delete selected shortcut\n" -#~ "double-click to add new shortcut\n" -#~ "start typing for incremental search" -#~ msgstr "" -#~ "לחץ Del למחיקת קיצורים נבחרים\n" -#~ "קליק כפול להוספת קיצור\n" -#~ "התחל הקלדה לחיפוש אינקרמנטלי" - -#~ msgid "input devices reinitialised" -#~ msgstr "התקני קלט אותחלו מחדש" - -#~ msgid "maximum ISO value" -#~ msgstr "ערך ISO מקסימלי" - -#~ msgid "rgb colors" -#~ msgstr "צבעי rgb" - -#~ msgid "embed icc profiles" -#~ msgstr "הטמע פרופיל icc" - -#~ msgid "3:2" -#~ msgstr "3:2" - -#~ msgid "set the custom aspect ratio" -#~ msgstr "קבע יחס רוחב גובה מותאם אישית" - -#~ msgid "raw CA correction supports only standard RGB Bayer filter arrays" -#~ msgstr "" -#~ "תיקון אברציות כרומטיות raw תומך רק במערכי פילטר צבע RGB Bayer סטנדרטיים" - -#~ msgid "bypassed while zooming in" -#~ msgstr "נעקף תוך כדי הגדלה" - -#~ msgid "" -#~ "while calculating the correction parameters the internal maths failed so " -#~ "module is bypassed.\n" -#~ "you can get more info by running darktable via the console." -#~ msgstr "" -#~ "בזמן חישוב פרמטרי התיקון המתמטיקה הפנימית כשלה ולכן המודול נעקף.\n" -#~ "ניתן לקבל פרטים נוספים ע\"י הרצת darktable דרך שורת פקודה." - -#~ msgid "" -#~ "internals maths found too few data points so restricted the order of the " -#~ "fit to linear.\n" -#~ "you might view bad correction results." -#~ msgstr "" -#~ "המתמטיקה הפנימית מצאה מעט מדי נקודות נתונים ולכן הגבילה את סדר ההתאמה " -#~ "ללינארי.\n" -#~ "יתכן ויופיעו תוצאות תיקון גרועות." - -#~ msgid "" -#~ "to calculate good parameters for raw CA correction we want full sensor " -#~ "data or at least a sensible part of that.\n" -#~ "the image shown in darkroom would look vastly different from developed " -#~ "files so effect is bypassed now." -#~ msgstr "" -#~ "לחישוב פרמטרי תיקון טובים עבור raw CA אנו רוצים נתוני חיישן מלאים או " -#~ "לפחות חלק ניכר מהם.\n" -#~ "התמונה הנראית בחדר החושך הייתה נראית שונה בתכלית מהקובץ המפותח ולכן האפקט " -#~ "נעקף." - -#~ msgid "affect color, brightness and contrast" -#~ msgstr "משפיע על צבע, בהירות וניגודיות" - -#, c-format -#~ msgid "ICC profiles in %s or %s" -#~ msgstr "פרופילי ICC ב %s או %s" - -#~ msgctxt "accel" -#~ msgid "acquire" -#~ msgstr "רכוש" - -#~ msgctxt "accel" -#~ msgid "apply" -#~ msgstr "יישם" - -#~ msgid "number of clusters to find in image" -#~ msgstr "מספר אשכולות למצוא בתמונה" - -#~ msgid "acquire" -#~ msgstr "רכוש" - -#~ msgid "analyze this image" -#~ msgstr "נתח תמונה זו" - -#~ msgid "apply previously analyzed image look to this image" -#~ msgstr "יישם מראה של תמונה שנותחה קודם לכן לתמונה זו" - -#~ msgid "red black white" -#~ msgstr "אדום שחור לבן" - -#~ msgid "black white and skin tones" -#~ msgstr "שחור לבן וגווני עור" - -#~ msgid "black & white film" -#~ msgstr "פילם שחור לבן" - -#~ msgid "commit changes" -#~ msgstr "התחייב לערוצים" - -#~ msgid "[dual demosaic_cl] internal problem" -#~ msgstr "[dual demosaic_cl] internal problem" - -#~ msgid "add local contrast" -#~ msgstr "הוסף ניגודיות מקומית" - -#~ msgid "fast sharpness" -#~ msgstr "חדות מהירה" - -#~ msgid "fast local contrast" -#~ msgstr "ניגודיות מקומית מהירה" - -#~ msgid "[dual demosaic] can't allocate internal buffers" -#~ msgstr "[dual demosaic] can't allocate internal buffers" - -#~ msgctxt "equalizer" -#~ msgid "sharpen" -#~ msgstr "חדד" - -#~ msgid "null" -#~ msgstr "כלום" - -#~ msgid "denoise (strong)" -#~ msgstr "סלק רעשים (חזק)" - -#~ msgid "autodetect" -#~ msgstr "גילוי אוטומטי" - -#~ msgid "lensfun" -#~ msgstr "lensfun" - -#~ msgid "" -#~ "click and drag to add point\n" -#~ "scroll to change size - shift+scroll to change strength - ctrl+scroll to " -#~ "change direction" -#~ msgstr "" -#~ "הקלק וגרור להוספת נקודה\n" -#~ "גלול לשינוי גודל - גלול+shift לשינוי חוזק - ctrl+גלול לשינוי כיוון" - -#~ msgid "" -#~ "click to add line\n" -#~ "scroll to change size - shift+scroll to change strength - ctrl+scroll to " -#~ "change direction" -#~ msgstr "" -#~ "הקלק להוסיף קו\n" -#~ "גלול לשנות גודל - גלול+shift לשנוי חוזק - ctrl+גלול לשנות כיוון" - -#~ msgid "" -#~ "click to add curve\n" -#~ "scroll to change size - shift+scroll to change strength - ctrl+scroll to " -#~ "change direction" -#~ msgstr "" -#~ "הקלק להוסיף עקומה\n" -#~ "גלול לשנות גודל - גלול+shift לשנוי חוזק - ctrl+גלול לשנות כיוון" - -#~ msgid "" -#~ "ctrl+click: add node - right click: remove path\n" -#~ "ctrl+alt+click: toggle line/curve" -#~ msgstr "" -#~ "קליק+ctrl: הוסף צומת - קליק ימני: הסרת נתיב\n" -#~ "קליק+alt+ctrl: מתג קו/עקום" - -#~ msgid "drag to adjust warp radius" -#~ msgstr "גרור לשינוי רדיוס הפיתול" - -#~ msgid "drag to adjust hardness (center)" -#~ msgstr "גרור לכוונון קשיחות (מרכז)" - -#~ msgid "drag to adjust hardness (feather)" -#~ msgstr "גרור לכוונון קשיחות (נוצה)" - -#~ msgid "" -#~ "drag to adjust warp strength\n" -#~ "ctrl+click: linear, grow, and shrink" -#~ msgstr "" -#~ "גרור לכוונון עצמת פיתול\n" -#~ "קליק+ctrl : לינארי, הרחב, וכווץ" - -#~ msgid "[lmmse_demosaic] too small area" -#~ msgstr "[lmmse_demosaic] שטח קטן מדי" - -#~ msgid "crop from top" -#~ msgstr "חתוך מלמעלה" - -#~ msgid "crop from bottom" -#~ msgstr "חתוך מהתחתית" - -#~ msgid "[rcd_demosaic] too small area" -#~ msgstr "[rcd_demosaic] שטח קטן מדי" - -#~ msgid "compress shadows/highlights (eigf): strong" -#~ msgstr "דחוס צללים/ בהירים (eigf): חזק" - -#~ msgid "compress shadows/highlights (eigf): medium" -#~ msgstr "דחוס צללים/בהירים (eigf) : בינוני" - -#~ msgid "compress shadows/highlights (eigf): soft" -#~ msgstr "דחוס צללים/בהירים (eigf) : רך" - -#~ msgid "" -#~ "tone equalizer in/out buffer are ill-aligned, please report the bug to " -#~ "the developers" -#~ msgstr "" -#~ "זכרונות קלט/פלט של אקולייזר הטונים לא מיושרים כראוי, אנה דווח באג למפתחים" - -#~ msgid "size is relative to" -#~ msgstr "גודל יחסי ל" - -#, c-format -#~ msgid "output ICC profiles in %s or %s" -#~ msgstr "פרופיל ICC לפלט ב %s או %s" - -#~ msgid "grouping filter" -#~ msgstr "מסנן קיבוץ" - -#~ msgid "history filter" -#~ msgstr "מסנן היסטוריה" - -#~ msgid "local_copy filter" -#~ msgstr "פילטר local_copy" - -#~ msgid "module order filter" -#~ msgstr "סדר מודולים" - -#~ msgid "" -#~ "drag to change black point,\n" -#~ "double-click resets\n" -#~ "ctrl+scroll to change display height" -#~ msgstr "" -#~ "גרור לשינוי נקודה שחורה,\n" -#~ "הקלקה כפולה לאתחול\n" -#~ "גלול+ctrl לשינוי גובה התצוגה" - -#~ msgid "" -#~ "drag to change exposure,\n" -#~ "double-click resets\n" -#~ "ctrl+scroll to change display height" -#~ msgstr "" -#~ "גרור לשנות חשיפה,\n" -#~ "קליק כפול מאתחל\n" -#~ "גלול+ctrl לשינוי גובה התצוגה" - -#~ msgid "set mode to waveform" -#~ msgstr "קבע מצב לצורת גל" - -#~ msgid "set mode to rgb parade" -#~ msgstr "קבע תצוגה למצעד RGB" - -#~ msgid "set mode to vectorscope" -#~ msgstr "קבע מצב לסקופ ווקטורי" - -#~ msgid "set mode to histogram" -#~ msgstr "קבע מצב להיסטוגרמה" - -#~ msgid "click to hide red channel" -#~ msgstr "הקלק להחביא ערוץ אדום" - -#~ msgid "click to show red channel" -#~ msgstr "הקלק להראות ערוץ אדום" - -#~ msgid "click to hide green channel" -#~ msgstr "הקלק להחביא ערוץ ירוק" - -#~ msgid "click to show green channel" -#~ msgstr "הקלק להראות ערוץ ירוק" - -#~ msgid "click to hide blue channel" -#~ msgstr "הקלק להחביא ערוץ כחול" - -#~ msgid "click to show blue channel" -#~ msgstr "הקלק להראות ערוץ כחול" - -#~ msgid "switch histogram type" -#~ msgstr "החלף סוג היסטוגרמה" - -#~ msgid "rotate 90 degrees ccw" -#~ msgstr "סובב 90 מעלות נגד כיוון השעון" - -#~ msgid "rotate 90 degrees cw" -#~ msgstr "סובב 90 מעלות עם כיוון השעון" - -#~ msgid "legacy flag. set for all new images" -#~ msgstr "דגל מורשת. קבע לכל התמונות החדשות" - -#~ msgid "modules: default" -#~ msgstr "מודולים: ברירת מחדל" - -#~ msgctxt "modulegroup" -#~ msgid "technical" -#~ msgstr "טכני" - -#~ msgid "fit to screen" -#~ msgstr "התאם למסך" - -#, c-format -#~ msgid "** %s" -#~ msgstr "** %s" - -#, c-format -#~ msgid "at least one new tagname (%s) already exists, aborting." -#~ msgstr "לפחות תג חדש אחת בשם (%s) כבר קיים, מבטל." - -#~ msgid "toggle sticky preview mode" -#~ msgstr "מתג מצב תצוגה מקדימה דביקה" - -#~ msgid "toggle sticky preview mode with focus detection" -#~ msgstr "מתג מצב תצוגה מקדימה דביקה עם גילוי פוקוס" - -#, c-format -#~ msgid "display ICC profiles in %s or %s" -#~ msgstr "הצג פרופיל ICC ב %s או %s" - -#, c-format -#~ msgid "preview display ICC profiles in %s or %s" -#~ msgstr "הצגה מקדימה של פרופיל ICC ב %s או %s" - -#, c-format -#~ msgid "softproof ICC profiles in %s or %s" -#~ msgstr "פרופיל ICC לסימולציית הדפסה ב %s או %s" - -#~ msgid "zoom fill" -#~ msgstr "זום מילוי" - -#~ msgid "zoom fit" -#~ msgstr "זום התאם" - -#~ msgctxt "preferences" -#~ msgid "on startup" -#~ msgstr "באתחול" - -#~ msgctxt "preferences" -#~ msgid "on both" -#~ msgstr "בשניהם" - -#~ msgctxt "preferences" -#~ msgid "on startup (don't ask)" -#~ msgstr "באתחול (אל תשאל)" - -#~ msgctxt "preferences" -#~ msgid "on close (don't ask)" -#~ msgstr "בסגירה (אל תשאל)" - -#~ msgctxt "preferences" -#~ msgid "on both (don't ask)" -#~ msgstr "בשניהם (אל תשאל)" - -#~ msgctxt "preferences" -#~ msgid "true" -#~ msgstr "אמת" - -#~ msgctxt "preferences" -#~ msgid "false" -#~ msgstr "שלילי" - -#~ msgctxt "preferences" -#~ msgid "gray scale" -#~ msgstr "סקאלת אפור" - -#~ msgctxt "preferences" -#~ msgid "at most RCD (reasonable)" -#~ msgstr "לכל היותר RCD (סביר)" - -#~ msgid "white balance slider colors" -#~ msgstr "צבעי מחוון איזון לבן" - -#~ msgid "" -#~ "visual indication of temperature adjustments.\n" -#~ "in 'illuminant color' mode slider colors represent the color of the light " -#~ "source,\n" -#~ "in 'effect emulation' slider colors represent the effect the adjustment " -#~ "would have on the scene" -#~ msgstr "" -#~ "אינדיקציות וויזואליות של כוונוני טמפרטורה.\n" -#~ "ב 'צבע מקור האור' צבעי מחוון המצב מייצגים את צבע מקור האור,\n" -#~ "ב 'אמולציית אפקט' צבעי המחוון מייצגים את השפעת הכוונון על הסצנה" - -#~ msgid "colorbalance slider block layout" -#~ msgstr "סידור בלוקים של מחוון איזון צבע" - -#~ msgid "" -#~ "choose how to organise the slider blocks for lift, gamma and gain:\n" -#~ "list - all sliders are shown in one long list (with headers),\n" -#~ "tabs - use tabs to switch between the blocks of sliders,\n" -#~ "columns - the blocks of sliders are shown next to each other (in narrow " -#~ "columns)" -#~ msgstr "" -#~ "בחר סידור לארגון קבוצות מחוונים עבור עילוי, גאמה והגבר:\n" -#~ "רשימה - כל המחוונים מוצגים ברשימה אחת ארוכה (עם כותרות),\n" -#~ "כרטיסיות - השתמש בכרטיסיות למעבר בין קבוצות מחוונים,\n" -#~ "עמודות - קבוצות המחוונים מוצגים אחד לצד השני (בעמודות צרות)" - -#~ msgid "auto-apply sharpen" -#~ msgstr "יישם חידוד אוטומטית" - -#~ msgid "" -#~ "this added sharpen is not recommended on cameras without a low-pass " -#~ "filter. you should disable this option if you use one of those more " -#~ "recent cameras or sharpen your images with other means." -#~ msgstr "" -#~ "חידוד נוסף זה לא מומלץ למצלמות ללא פילטר תדרים נמוכים. הנך צריך לנטרל " -#~ "אפשרות זו אם ברשותך מצלמה עדכנית, או עושה שימוש בחידוד מסוג אחר." - -#~ msgid "memory in MB to use for thumbnail cache" -#~ msgstr "זיכרון ב מגה בייטים לשימוש כמטמון עבור תמונות ממוזערות" - -#~ msgid "" -#~ "this controls how much memory is going to be used for thumbnails and " -#~ "other buffers (needs a restart)." -#~ msgstr "" -#~ "זה שולט בכמות הזיכרון שתוקצה עבור תמונות ממוזערות ומנגנוני זכרון זמניים " -#~ "אחרים (דורש אתחול)." - -#~ msgid "host memory limit (in MB) for tiling" -#~ msgstr "מגבלת זיכרון (ב MB) לצורך ריצוף" - -#~ msgid "" -#~ "this variable controls the maximum amount of memory (in MB) a module may " -#~ "use during image processing. lower values will force memory hungry " -#~ "modules to process image with increasing number of tiles. setting this to " -#~ "0 will omit any limit. values below 500 will be treated as 500 (needs a " -#~ "restart)." -#~ msgstr "" -#~ "משתנה זה שולט בכמות הזיכרון המרבית (ב MB) הזמין למודול במהלך עיבוד תמונה. " -#~ "ערכים נמוכים יאלצו מודולים הצורכים זיכרון רב לעבד תמונות עם מספר מוגדל של " -#~ "אריחים. קיבוע ערך זה ל 0 יסיר כל מגבלה. מספר נמוך מ 500 יעוגל ל 500 (דורש " -#~ "אתחול)." - -#~ msgid "minimum amount of memory (in MB) for a single buffer in tiling" -#~ msgstr "כמות מינימלית של זיכרון (ב MB) עבור זכרון זמני בודד לצורך ריצוף" - -#~ msgid "" -#~ "minimum amount of memory (in MB) that tiling should take for a single " -#~ "image buffer (needs a restart)." -#~ msgstr "" -#~ "כמות מינימלית של זיכרון (ב MB) עבור זכרון זמני בודד לצורך ריצוף (נדרש " -#~ "אתחול)." - -#~ msgid "check for database maintenance" -#~ msgstr "בדוק לתחזוקת מסד נתונים" - -#~ msgid "" -#~ "this option indicates when to check database fragmentation and perform " -#~ "maintenance" -#~ msgstr "אפשרות זו מראה מתי לבדוק פרגמנטציה של מסד הנתונים וביצוע תחזוקה" - -#~ msgid "database fragmentation ratio threshold" -#~ msgstr "סף יחס פרגמנטציה של מסד נתונים" - -#~ msgid "" -#~ "fragmentation ratio above which to ask or carry out automatically " -#~ "database maintenance" -#~ msgstr "" -#~ "יחס פרגמנטציה שמעליו לשאול או לבצע אוטומטית פעולות תחזוקה למסד הנתונים" - -#~ msgid "xmp" -#~ msgstr "xmp" - -#~ msgid "disable the entry completion" -#~ msgstr "נטרל השלמת ערך" - -#~ msgid "" -#~ "the entry completion is useful for those who enter tags from keyboard " -#~ "only. for others the entry completion can be embarrassing. need to " -#~ "restart darktable." -#~ msgstr "" -#~ "השלמת ערך מועילה למשתמשים במקלדת בלבד להכנסת תגים. לאחרים השלמה יכולה " -#~ "להיות מביכה. (מצריך אתחול)" - -#~ msgid "lift luminance" -#~ msgstr "הרם לומיננס" - -#~ msgid "lift chroma" -#~ msgstr "הרם כרומה" - -#~ msgid "lift hue" -#~ msgstr "עילוי גוון" - -#~ msgid "power luminance" -#~ msgstr "עצמת לומיננס" - -#~ msgid "power chroma" -#~ msgstr "עצמה כרומה" - -#~ msgid "power hue" -#~ msgstr "עצמה גוון" - -#~ msgid "gain luminance" -#~ msgstr "הגבר לומיננס" - -#~ msgid "gain chroma" -#~ msgstr "הגבר כרומה" - -#~ msgid "gain hue" -#~ msgstr "הגבר גוון" - -#~ msgid "offset luminance" -#~ msgstr "הסחה לומיננס" - -#~ msgid "offset chroma" -#~ msgstr "הסחה כרומה" - -#~ msgid "offset hue" -#~ msgstr "הסחת גוון (hue)" - -#~ msgid "chroma shadows" -#~ msgstr "כרומה צללים" - -#~ msgid "chroma highlights" -#~ msgstr "פרטים בהירים בכרומה" - -#~ msgid "chroma global" -#~ msgstr "כרומה גלובלי" - -#~ msgid "chroma mid-tones" -#~ msgstr "טונים-בינוניים כרומה" - -#~ msgid "saturation global" -#~ msgstr "רוויה גלובלית" - -#~ msgid "saturation highlights" -#~ msgstr "רוויה בבהירים" - -#~ msgid "saturation mid-tones" -#~ msgstr "רוויה טונים אמצעיים" - -#~ msgid "saturation shadows" -#~ msgstr "רוויה בצללים" - -#~ msgid "brilliance global" -#~ msgstr "ברק גלובלי" - -#~ msgid "brilliance highlights" -#~ msgstr "פרטים בהירים מבריקים" - -#~ msgid "brilliance mid-tones" -#~ msgstr "טונים-בינוניים ברק" - -#~ msgid "brilliance shadows" -#~ msgstr "ברק בצללים" - -#~ msgid "lmmse refine" -#~ msgstr "עידון lmmse" - -#~ msgid "switch dual threshold" -#~ msgstr "מתג סף כפול" - -#~ msgid "linear rec709 RGB" -#~ msgstr "linear rec709 RGB" - -#~ msgid "linear rec2020 RGB" -#~ msgstr "linear rec2020 RGB" - -#, c-format -#~ msgid "error: can't open xmp file %s" -#~ msgstr "שגיאה: לא יכול לפתוח קובץ xmp %s" - -#, c-format -#~ msgid "%d image of %d (#%d) in current collection is selected" -#~ msgstr "נבחרה תמונה %d מתוך %d (#%d) באוסף הנוכחי" - -#, c-format -#~ msgid "%d image of %d in current collection is selected" -#~ msgid_plural "%d images of %d in current collection are selected" -#~ msgstr[0] "נבחרה תמונה %d מתוך %d באוסף הנוכחי" -#~ msgstr[1] "נבחרו %d תמונות מתוך %d באוסף הנוכחי" - -#~ msgid "click later to be asked on next startup" -#~ msgstr "הקלק על בהמשך כדי להישאל באתחול הבא" - -#~ msgid "click later to be asked when closing darktable" -#~ msgstr "הקלק על בהמשך על מנת להישאל בסגירת darktable" - -#~ msgid "click later to be asked next time when closing darktable" -#~ msgstr "הקלק על בהמשך על מנת להישאל בפעם הבאה בסגירת darktable" - -#, c-format -#~ msgid "" -#~ "the database could use some maintenance\n" -#~ "\n" -#~ "there's <span style='italic'>%s</span> to be freed\n" -#~ "\n" -#~ "do you want to proceed now?\n" -#~ "\n" -#~ "%s\n" -#~ "you can always change maintenance preferences in core options" -#~ msgstr "" -#~ "מסד הנתונים דורש תחזוקה\n" -#~ "\n" -#~ "ניתן לשחרר <span style=\"italic\">%s</span>\n" -#~ "\n" -#~ "האם להתקדם כעת?\n" -#~ "\n" -#~ "%s\n" -#~ "תמיד ניתן לשנות העדפות תחזוקה באפשרויות הליבה" - -#~ msgid "darktable - schema maintenance" -#~ msgstr "darktable - תחזוקת סכימה" - -#~ msgid "later" -#~ msgstr "בהמשך" - -#~ msgid "[BRUSH creation] change size" -#~ msgstr "[BRUSH creation] שנה גודל" - -#~ msgid "[BRUSH creation] change hardness" -#~ msgstr "[BRUSH creation] שנה קשיחות" - -#~ msgid "no image selected !" -#~ msgstr "לא נבחרה תמונה!" - -#~ msgid "" -#~ "restore default shortcuts\n" -#~ " or as at startup\n" -#~ " or when the configuration dialog was opened\n" -#~ msgstr "" -#~ "אחזר קיצורי ברירת מחדל\n" -#~ " או למצב בפתיחת התכנה\n" -#~ " או למצב פתיחת חלון הקונפיגורציה\n" - -#~ msgid "AVIF (8/10/12-bit)" -#~ msgstr "AVIF (8/10/12-bit)" - -#~ msgid "OpenEXR (16/32-bit float)" -#~ msgstr "OpenEXR (16/32-bit float)" - -#~ msgid "32 bit" -#~ msgstr "32 bit" - -#~ msgid "J2K" -#~ msgstr "J2K" - -#~ msgid "PFM (float)" -#~ msgstr "PFM (float)" - -#~ msgid "PNG (8/16-bit)" -#~ msgstr "PNG (8/16-bit)" - -#~ msgid "TIFF (8/16/32-bit)" -#~ msgstr "TIFF (8/16/32-bit)" - -#~ msgid "WebP (8-bit)" -#~ msgstr "WebP (8-bit)" - -#~ msgid "applies only to lossy setting" -#~ msgstr "ישים רק עבור איבוד איכות" - -#~ msgid "xcf" -#~ msgstr "xcf" - -#, no-c-format -#~ msgid "preview is only possible for zoom lower than 200%%" -#~ msgstr "תצוגה מקדימה אפשרית רק עבור ערכי זום קטנים מ 200%%" - -#~ msgid "actual selection" -#~ msgstr "בחירה בפועל" - -#~ msgid "v3.0" -#~ msgstr "v3.0" - -#~ msgid "ldr" -#~ msgstr "ldr" - -#~ msgid "hdr" -#~ msgstr "hdr" - -#~ msgid "" -#~ "this quick access widget is disabled as it's hidden in the actual module " -#~ "configuration. Please use the full module to access this widget..." -#~ msgstr "" -#~ "הווידג'ט גישה מהירה הזה מנוטרל כיוון שהוא חבוי בקונפיגורציה של המודול " -#~ "עצמו. אנה השתמש במודול המלא לגשת לווידג'ט זה..." - -#~ msgid "" -#~ "the following modules are deprecated because they have internal design " -#~ "mistakes which can't be solved and alternative modules which solve them.\n" -#~ " they will be removed for new edits in the next release." -#~ msgstr "" -#~ "המודולים הבאים מוצאים משימוש כיוון שהם מכילים פגמי תכן פנימיים לא פתירים " -#~ "ותחליפים שפותרים אותם.\n" -#~ "הם יוסרו בעריכות חדשות בגרסה הבאה." - -#, c-format -#~ msgid "double click to reset to `%f'" -#~ msgstr "הקלקה כפולה לאתחל ל `%f'" - -#~ msgid "allow to pan & zoom while editing masks" -#~ msgstr "הרשה הזזה וזום תוך כדי עריכת מסיכות" - -#~ msgid "date-time taken" -#~ msgstr "תאריך ושעה נלקחו" - -#~ msgid "darktable - run performance configuration?" -#~ msgstr "darktable - ?הפעל הגדרת ביצועים" - -#~ msgid "" -#~ "we have an updated performance configuration logic - executing that might " -#~ "improve the performance of darktable.\n" -#~ "this will potentially overwrite some of your existing settings - " -#~ "especially in case you have manually modified them to custom values.\n" -#~ "would you like to execute this update of the performance configuration?\n" -#~ msgstr "" -#~ "עדכנו את לוגיקת קונפיגורציית הביצועים - הפעלה עשויה לשפר את ביצועי " -#~ "darktable.\n" -#~ "יתכן שחלק מההגדרות הנוכחיות יידרסו - במיוחד ערכים ששינית ידנית.\n" -#~ "האם ברצונך להפעיל את עדכון קונפיגורציית הביצועים?\n" - -#, c-format -#~ msgctxt "accel" -#~ msgid "styles/apply %s" -#~ msgstr "סגנונות/יישום %s" - -#, c-format -#~ msgctxt "accel" -#~ msgid "apply %s" -#~ msgstr "יישם %s" - -#~ msgid "refresh exif" -#~ msgstr "רענן exif" - -#~ msgctxt "accel" -#~ msgid "rating" -#~ msgstr "דירוג" - -#~ msgctxt "accel" -#~ msgid "discard history" -#~ msgstr "השלך היסטוריה" - -#~ msgctxt "accel" -#~ msgid "color label" -#~ msgstr "תווית צבע" - -#~ msgctxt "accel" -#~ msgid "select all" -#~ msgstr "בחר הכל" - -#~ msgctxt "accel" -#~ msgid "select none" -#~ msgstr "בחר כלום" - -#~ msgctxt "accel" -#~ msgid "invert selection" -#~ msgstr "הפוך בחירה" - -#~ msgctxt "accel" -#~ msgid "select film roll" -#~ msgstr "בחר גליל פילם" - -#~ msgctxt "accel" -#~ msgid "select untouched" -#~ msgstr "בחר שלא נערכו" - -#~ msgctxt "accel" -#~ msgid "double" -#~ msgstr "double" - -#~ msgctxt "accel" -#~ msgid "triple" -#~ msgstr "triple" - -#~ msgctxt "accel" -#~ msgid "switch views/tethering" -#~ msgstr "החלף מבטים/קשירה" - -#~ msgctxt "accel" -#~ msgid "switch views/lighttable" -#~ msgstr "החלף מבט/שולחן אור" - -#~ msgctxt "accel" -#~ msgid "switch views/darkroom" -#~ msgstr "החלף מבטים/חדר חושך" - -#~ msgctxt "accel" -#~ msgid "switch views/slideshow" -#~ msgstr "החלף מבטים/מצגת" - -#~ msgctxt "accel" -#~ msgid "switch views/print" -#~ msgstr "החלף מבטים/הדפסה" - -#~ msgctxt "accel" -#~ msgid "panels/all" -#~ msgstr "פאנלים/הכל" - -#~ msgctxt "accel" -#~ msgid "panels/left" -#~ msgstr "פאנלים/שמאל" - -#~ msgctxt "accel" -#~ msgid "panels/right" -#~ msgstr "פאנלים/ימין" - -#~ msgctxt "accel" -#~ msgid "panels/top" -#~ msgstr "פאנלים/עליון" - -#~ msgctxt "accel" -#~ msgid "panels/bottom" -#~ msgstr "פאנלים/תחתון" - -#~ msgctxt "accel" -#~ msgid "panels/header" -#~ msgstr "פאנלים/כותרות" - -#~ msgctxt "accel" -#~ msgid "panels/all bottom" -#~ msgstr "פאנלים/הכל תחתון" - -#~ msgctxt "accel" -#~ msgid "show accels window" -#~ msgstr "הצג חלון האצה" - -#~ msgid "compression mode" -#~ msgstr "מצב דחיסה" - -#~ msgid "PIZ (default)" -#~ msgstr "PIZ (ברירת מחדל)" - -#~ msgid "PXR24 (lossy)" -#~ msgstr "PXR24 (מאבד איכות)" - -#~ msgid "B44 (lossy)" -#~ msgstr "B44 (מאבד איכות)" - -#~ msgid "B44A (lossy)" -#~ msgstr "B44A (מאבד איכות)" - -#~ msgid "perspective helpers" -#~ msgstr "סייעני פרספקטיבה" - -#~ msgid "crop settings" -#~ msgstr "הגדרות חיתוך" - -#~ msgid "<b>commit</b>: double click" -#~ msgstr "<b>התחייב</b>: קליק כפול" - -#~ msgid "display blending mask" -#~ msgstr "הצג מסיכת ערבוב" - -#~ msgid "diffusion properties" -#~ msgstr "תכונות דיפוזיה" - -#~ msgid "diffusion speed" -#~ msgstr "מהירות דיפוזיה" - -#~ msgid "" -#~ "smoothing or sharpening of smooth details (gradients).\n" -#~ "positive values diffuse and blur.\n" -#~ "negative values sharpen.\n" -#~ "zero does nothing." -#~ msgstr "" -#~ "החלקה או חידוד פרטים חלקים (גרדיאנטים).\n" -#~ "ערכים חיוביים מטשטשים וגורמים לדיפוזיה.\n" -#~ "ערכים שליליים מחדדים.\n" -#~ "אפס לא מבצע פעולה." - -#~ msgid "" -#~ "smoothing or sharpening of sharp details.\n" -#~ "positive values diffuse and blur.\n" -#~ "negative values sharpen.\n" -#~ "zero does nothing." -#~ msgstr "" -#~ "החלקה או חידוד פרטים חדים.\n" -#~ "ערכים חיוביים מטשטשים וגורמים לדיפוזיה.\n" -#~ "ערכים שליליים מחדדים.\n" -#~ "אפס לא מבצע פעולה." - -#~ msgid "" -#~ "smoothing or sharpening of sharp details (gradients).\n" -#~ "positive values diffuse and blur.\n" -#~ "negative values sharpen.\n" -#~ "zero does nothing." -#~ msgstr "" -#~ "החלקה או חידוד פרטים חדים (גרדיאנטים).\n" -#~ "ערכים חיוביים מטשטשים וגורמים לדיפוזיה.\n" -#~ "ערכים שליליים מחדדים.\n" -#~ "אפס לא מבצע פעולה." - -#~ msgid "diffusion directionality" -#~ msgstr "כיווניות דיפוזיה" - -#~ msgid "" -#~ "anisotropy of the diffusion.\n" -#~ "zero makes the diffusion isotrope (same in all directions)\n" -#~ "positives make the diffusion follow isophotes more closely\n" -#~ "negatives make the diffusion follow gradients more closely" -#~ msgstr "" -#~ "אנאיזוטרופיה של הדיפוזיה.\n" -#~ "אפס גורם לדיפוזיה להיות איזוטרופית (זהה בכל הכיוונים)\n" -#~ "ערכים חיוביים גורמים לדיפוזיה לעקוב אחר משטחים קבועים\n" -#~ "ערכים שליליים גורמים לדיפוזיה לעקוב אחר גרדיאנטים" - -#~ msgid "increase or decrease the sharpness of the highest frequencies" -#~ msgstr "הגבר או הנחת את החדות של התדרים הגבוהים ביותר" - -#~ msgid "" -#~ "percentage of bright values clipped out, toggle color picker to activate" -#~ msgstr "אחוז הערכים הבהירים שנחתכו החוצה, סמן בוחר צבע להפעלה" - -#, c-format -#~ msgid "%.0f ISO" -#~ msgstr "%.0f ISO" - -#~ msgid "lut 3D" -#~ msgstr "lut 3D" - -#~ msgid "select lut file" -#~ msgstr "בחר קובץ lut" - -#~ msgid "grey" -#~ msgstr "אפור" - -#~ msgid "white balance settings" -#~ msgstr "הגדרות איזון לבן" - -#, c-format -#~ msgid "%.0f mired" -#~ msgstr "%.0f mired" - -#~ msgctxt "accel" -#~ msgid "capture image(s)" -#~ msgstr "רכוש תמונה/ות" - -#~ msgid "imported: today" -#~ msgstr "יובאה: היום" - -#~ msgid "taken: today" -#~ msgstr "צולם: היום" - -#, c-format -#~ msgid "" -#~ "no history compression of 1 image.\n" -#~ "see tag: darktable|problem|history-compress" -#~ msgid_plural "" -#~ "no history compression of %d images.\n" -#~ "see tag: darktable|problem|history-compress" -#~ msgstr[0] "" -#~ "אין דחיסת היסטוריה של תמונה 1.\n" -#~ "ראה תג: darktable|problem|history-compress." -#~ msgstr[1] "" -#~ "אין דחיסת היסטוריה של תמונות %d.\n" -#~ "ראה תג: darktable|problem|history-compress." - -#~ msgctxt "accel" -#~ msgid "copy" -#~ msgstr "העתק" - -#~ msgctxt "accel" -#~ msgid "copy parts" -#~ msgstr "העתק חלקים" - -#~ msgctxt "accel" -#~ msgid "compress" -#~ msgstr "דחוס" - -#~ msgctxt "accel" -#~ msgid "discard" -#~ msgstr "השלך" - -#~ msgctxt "accel" -#~ msgid "paste" -#~ msgstr "העתק" - -#~ msgctxt "accel" -#~ msgid "paste parts" -#~ msgstr "הדבק חלקים" - -#~ msgctxt "accel" -#~ msgid "load sidecar files" -#~ msgstr "טען קובץ נלווה" - -#~ msgctxt "accel" -#~ msgid "write sidecar files" -#~ msgstr "כתוב קובץ נלווה" - -#~ msgctxt "accel" -#~ msgid "export" -#~ msgstr "ייצא" - -#~ msgid "exif data" -#~ msgstr "נתוני exif" - -#~ msgid "list of available tags" -#~ msgstr "רשימת תגים זמינים" - -#~ msgid "gpx file" -#~ msgstr "קובץ gpx" - -#~ msgctxt "accel" -#~ msgid "histogram/hide histogram" -#~ msgstr "היסטוגרמה/החבא היסטוגרמה" - -#~ msgctxt "accel" -#~ msgid "histogram/cycle histogram modes" -#~ msgstr "היסטוגרמה/דפדף מצבי היסטוגרמה" - -#~ msgctxt "accel" -#~ msgid "histogram/switch histogram mode" -#~ msgstr "היסטוגרמה/החלף מצב היסטוגרמה" - -#~ msgctxt "accel" -#~ msgid "histogram/switch histogram type" -#~ msgstr "היסטוגרמה/החלף סוג היסטוגרמה" - -#~ msgctxt "accel" -#~ msgid "compress history stack" -#~ msgstr "דחוס מחסנית היסטוריה" - -#~ msgctxt "accel" -#~ msgid "remove from darktable" -#~ msgstr "הסר מ darktable" - -#~ msgctxt "accel" -#~ msgid "delete from disk using trash if possible" -#~ msgstr "מחק מהדיסק ושלח לאשפה אם אפשר" - -#~ msgctxt "accel" -#~ msgid "move to other folder" -#~ msgstr "העבר לתיקיה אחרת" - -#~ msgctxt "accel" -#~ msgid "copy to other folder" -#~ msgstr "העתק לתיקיה אחרת" - -#~ msgctxt "accel" -#~ msgid "rotate selected images 90 degrees CW" -#~ msgstr "סובב תמונות נבחרות ב 90 מעלות עם כיוון השעון" - -#~ msgctxt "accel" -#~ msgid "rotate selected images 90 degrees CCW" -#~ msgstr "סובב תמונות נבחרות ב 90 מעלות נגד כיוון השעון" - -#~ msgctxt "accel" -#~ msgid "create HDR" -#~ msgstr "צור HDR" - -#~ msgctxt "accel" -#~ msgid "duplicate" -#~ msgstr "שכפל" - -#~ msgctxt "accel" -#~ msgid "reset rotation" -#~ msgstr "אתחל סיבוב" - -#~ msgctxt "accel" -#~ msgid "copy the image locally" -#~ msgstr "העתק תמונה מקומית" - -#~ msgctxt "accel" -#~ msgid "resync the local copy" -#~ msgstr "סנכרן מחדש את העותק המקומי" - -#~ msgctxt "accel" -#~ msgid "refresh exif" -#~ msgstr "רענן exif" - -#~ msgctxt "accel" -#~ msgid "set monochrome image" -#~ msgstr "הגדר תמונה מונוכרומטית" - -#~ msgctxt "accel" -#~ msgid "set color image" -#~ msgstr "הגדר תמונה צבעונית" - -#~ msgctxt "accel" -#~ msgid "copy metadata" -#~ msgstr "העתק מטא-נתונים" - -#~ msgctxt "accel" -#~ msgid "clear metadata" -#~ msgstr "נקה מטא-נתונים" - -#~ msgctxt "accel" -#~ msgid "group" -#~ msgstr "קבץ" - -#~ msgctxt "accel" -#~ msgid "ungroup" -#~ msgstr "בטל קיבוץ" - -#~ msgctxt "accel" -#~ msgid "copy & import from camera" -#~ msgstr "העתק וייבא ממצלמה" - -#~ msgctxt "accel" -#~ msgid "tethered shoot" -#~ msgstr "צילום קשור" - -#~ msgctxt "accel" -#~ msgid "add to library" -#~ msgstr "הוסף לספרייה" - -#~ msgctxt "accel" -#~ msgid "copy & import" -#~ msgstr "העתק וייבא" - -#~ msgctxt "accel" -#~ msgid "mount camera" -#~ msgstr "הגדר מצלמה ככונן" - -#~ msgctxt "accel" -#~ msgid "unmount camera" -#~ msgstr "נתק מצלמה" - -#~ msgctxt "accel" -#~ msgid "toggle live view" -#~ msgstr "מתג תצוגה חיה" - -#~ msgctxt "accel" -#~ msgid "zoom live view" -#~ msgstr "זום של תצוגה חיה" - -#~ msgctxt "accel" -#~ msgid "rotate 90 degrees CCW" -#~ msgstr "סובב 90 מעלות נגד כיוון השעון" - -#~ msgctxt "accel" -#~ msgid "rotate 90 degrees CW" -#~ msgstr "סובב 90 מעלות עם כיוון השעון" - -#~ msgctxt "accel" -#~ msgid "flip horizontally" -#~ msgstr "הפוך אופקית" - -#~ msgctxt "accel" -#~ msgid "move focus point in (big steps)" -#~ msgstr "הזז נקודת מיקוד פנימה (קפיצות גדולות)" - -#~ msgctxt "accel" -#~ msgid "move focus point in (small steps)" -#~ msgstr "הזז נקודת מיקוד פנימה (קפיצות קטנות)" - -#~ msgctxt "accel" -#~ msgid "move focus point out (small steps)" -#~ msgstr "הזז נקודת מיקוד החוצה (קפיצות קטנות)" - -#~ msgctxt "accel" -#~ msgid "move focus point out (big steps)" -#~ msgstr "הזז נקודת מיקוד החוצה (קפיצות גדולות)" - -#~ msgctxt "accel" -#~ msgid "filtered images" -#~ msgstr "תמונות מסוננות" - -#~ msgctxt "accel" -#~ msgid "thumbnail display" -#~ msgstr "תצוגת תמונה ממוזערת" - -#~ msgid "metadata list" -#~ msgstr "רשימת מטא-נתונים" - -#~ msgctxt "accel" -#~ msgid "print" -#~ msgstr "הדפס" - -#~ msgctxt "accel" -#~ msgid "take snapshot" -#~ msgstr "צלם" - -#~ msgctxt "accel" -#~ msgid "create" -#~ msgstr "צור" - -#~ msgctxt "accel" -#~ msgid "remove" -#~ msgstr "הסר" - -#~ msgctxt "accel" -#~ msgid "import" -#~ msgstr "ייבא" - -#~ msgctxt "accel" -#~ msgid "edit" -#~ msgstr "ערוך" - -#~ msgctxt "verb" -#~ msgid "import..." -#~ msgstr "ייבא..." - -#~ msgctxt "accel" -#~ msgid "attach" -#~ msgstr "צרף" - -#~ msgctxt "accel" -#~ msgid "detach" -#~ msgstr "נתק" - -#~ msgctxt "accel" -#~ msgid "new" -#~ msgstr "חדש" - -#~ msgctxt "accel" -#~ msgid "import..." -#~ msgstr "ייבא..." - -#~ msgctxt "accel" -#~ msgid "export..." -#~ msgstr "ייצא..." - -#~ msgctxt "accel" -#~ msgid "tag" -#~ msgstr "תג" - -#~ msgid "enter tag name" -#~ msgstr "הכנס שם לתג" - -#~ msgid "" -#~ "tag dictionary,\n" -#~ "double-click to attach,\n" -#~ "right-click for other actions on selected tag,\n" -#~ "ctrl-wheel scroll to resize the window" -#~ msgstr "" -#~ "מילון תגים,\n" -#~ "קליק כפול להדבקה,\n" -#~ "קליק ימני לפעולות אחרות על התג הנבחר,\n" -#~ "גלילה-ctrl לשינוי גודל חלון" - -#~ msgctxt "verb" -#~ msgid "export..." -#~ msgstr "ייצא..." - -#~ msgid "last export time" -#~ msgstr "זמן ייצוא אחרון" - -#~ msgid "last print time" -#~ msgstr "זמן הדפסה אחרון" - -#~ msgid "which images should be shown" -#~ msgstr "אילו תמונות להראות" - -#~ msgid "view" -#~ msgstr "תצוגה" - -#~ msgid "overlays block on mouse hover during (s)" -#~ msgstr "מכסה בלוק בריחוף עכבר תוך (s) " - -#~ msgctxt "accel" -#~ msgid "grouping" -#~ msgstr "קיבוץ" - -#~ msgctxt "accel" -#~ msgid "preferences" -#~ msgstr "העדפות" - -#~ msgctxt "accel" -#~ msgid "shortcuts" -#~ msgstr "קיצורי דרך" - -#~ msgctxt "accel" -#~ msgid "thumbnail overlays/no overlays" -#~ msgstr "כיסויי תמונות ממוזערות/ללא כיסויים" - -#~ msgctxt "accel" -#~ msgid "thumbnail overlays/overlays on mouse hover" -#~ msgstr "כיסויי תמונות ממוזערות/כיסויים בריחוף עכבר" - -#~ msgctxt "accel" -#~ msgid "thumbnail overlays/extended overlays on mouse hover" -#~ msgstr "כיסויי תמונות ממוזערות/כיסויים מורחבים בריחוף עכבר" - -#~ msgctxt "accel" -#~ msgid "thumbnail overlays/permanent overlays" -#~ msgstr "כיסויי תמונות ממוזערות/כיסויים קבועים" - -#~ msgctxt "accel" -#~ msgid "thumbnail overlays/permanent extended overlays" -#~ msgstr "כיסויי תמונות ממוזערות/כיסויים קבועים מורחבים" - -#~ msgctxt "accel" -#~ msgid "thumbnail overlays/permanent overlays extended on mouse hover" -#~ msgstr "כיסויי תמונות ממוזערות/כיסויים קבועים מורחבים בריחוף עכבר" - -#~ msgctxt "accel" -#~ msgid "thumbnail overlays/overlays block on mouse hover" -#~ msgstr "כיסויי תמונות ממוזערות/בלוק כיסויים בריחוף עכבר" - -#~ msgctxt "accel" -#~ msgid "reset lib parameters" -#~ msgstr "אתחל פרמטרי lib" - -#~ msgctxt "accel" -#~ msgid "raw overexposed/toggle" -#~ msgstr "קובץ ה raw בחשיפת יתר/מתג" - -#~ msgctxt "accel" -#~ msgid "overexposed/toggle" -#~ msgstr "חשוף יתר/מתג" - -#~ msgctxt "accel" -#~ msgid "gamut check" -#~ msgstr "בדיקת מכלול צבע" - -#~ msgctxt "accel" -#~ msgid "guide lines/toggle" -#~ msgstr "קווים מנחים/מתג" - -#~ msgctxt "accel" -#~ msgid "preview" -#~ msgstr "תצוגה מקדימה" - -#~ msgid "number of background threads" -#~ msgstr "מספר תהליכונים ברקע" - -#~ msgid "" -#~ "this controls for example how many threads are used to create thumbnails " -#~ "during import. the cache will grow to a maximum of twice this number of " -#~ "full resolution image buffers (needs a restart)." -#~ msgstr "" -#~ "זה מכתיב לדוגמה כמה תהליכונים ישמשו ליצירת תמונות ממוזערות בזמן ייבוא. " -#~ "המטמון יגדל לפעמיים מספר זה לכל היותר של תמונות ברזולוציה מלאה (דורש " -#~ "אתחול)" - -#~ msgid "" -#~ "these redundant files can later be re-imported into a different database, " -#~ "preserving your changes to the image." -#~ msgstr "" -#~ "ניתן לייבא מחדש בשלב מאוחר יותר קבצים מיותרים אלה לתוך מסד נתונים אחר, " -#~ "תוך שימור כל השינויים שנעשו לתמונה." - -#~ msgid "do not show april 1st game" -#~ msgstr "אל תראה את משחק האחד באפריל" - -#~ msgid "midtones" -#~ msgstr "טונים בינוניים" - -#~ msgid "global" -#~ msgstr "גלובלי" - -#~ msgid "version of the spline generator" -#~ msgstr "גרסת מחולל spline" - -#~ msgid "midtones bias" -#~ msgstr "הסחה של טונים בינוניים" - -#~ msgid "update database from selected xmp files" -#~ msgstr "עדכן מסד נתונים מקבצי xmp נבחרים" - -#~ msgid "overwrite selected xmp files" -#~ msgstr "דרוס קבצי xmp נבחרים" - -#~ msgctxt "accel" -#~ msgid "fusion" -#~ msgstr "היתוך" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/rate 0" -#~ msgstr "views/thumbtable/דרג 0" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/rate 1" -#~ msgstr "views/thumbtable/דרג 1" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/rate 2" -#~ msgstr "views/thumbtable/דרג 2" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/rate 3" -#~ msgstr "views/thumbtable/דרג 3" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/rate 4" -#~ msgstr "views/thumbtable/דרג 4" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/rate 5" -#~ msgstr "views/thumbtable/דרג 5" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/rate reject" -#~ msgstr "views/thumbtable/דרג דחה" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/copy history" -#~ msgstr "views/thumbtable/העתק הסטוריה" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/copy history parts" -#~ msgstr "מבטים/שולחן ממוזערות/העתק חלקי היסטוריה" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/paste history" -#~ msgstr "מבטים/שולחן ממוזערות/העתק היסטוריה" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/paste history parts" -#~ msgstr "מבטים/שולחן ממוזערות/הדבק חלקי היסטוריה" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/discard history" -#~ msgstr "מבטים/שולחן ממוזערות/השלך היסטוריה" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/duplicate image" -#~ msgstr "מבטים/שולחן ממוזערות/שכפל תמונה" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/duplicate image virgin" -#~ msgstr "views/thumbtable/שכפל תמונה מקורית" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/color red" -#~ msgstr "views/thumbtable/צבע אדום" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/color yellow" -#~ msgstr "views/thumbtable/צבע צהוב" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/color green" -#~ msgstr "views/thumbtable/צבע ירוק" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/color blue" -#~ msgstr "views/thumbtable/צבע כחול" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/color purple" -#~ msgstr "views/thumbtable/צבע סגול" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/clear color labels" -#~ msgstr "מבטים/שולחן ממוזערות/נקה תוויות צבע" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/select all" -#~ msgstr "views/thumbtable/בחר הכל" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/select none" -#~ msgstr "views/thumbtable/בחר כלום" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/invert selection" -#~ msgstr "מבטים/שולחן ממוזערות/הפוך בחירה" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/select film roll" -#~ msgstr "מבטים/שולחן ממוזערות/בחר גליל פילם" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/select untouched" -#~ msgstr "מבטים/שולחן ממוזערות/בחר שלא נערכו" - -#~ msgctxt "accel" -#~ msgid "lua" -#~ msgstr "lua" - -#~ msgctxt "accel" -#~ msgid "focus module" -#~ msgstr "מודול פוקוס" - -#~ msgctxt "accel" -#~ msgid "show preset menu" -#~ msgstr "הצג תפריט פריסטים" - -#~ msgctxt "accel" -#~ msgid "increase" -#~ msgstr "הגבר" - -#~ msgctxt "accel" -#~ msgid "decrease" -#~ msgstr "הנמך" - -#~ msgctxt "accel" -#~ msgid "reset" -#~ msgstr "אתחל" - -#~ msgctxt "accel" -#~ msgid "dynamic" -#~ msgstr "דינמי" - -#, c-format -#~ msgid "" -#~ "%s\n" -#~ "(shortcut: %s)" -#~ msgstr "" -#~ "%s\n" -#~ "(קיצור: %s)" - -#, c-format -#~ msgid "%s %s / %s: %s" -#~ msgstr "%s %s / %s: %s" - -#, c-format -#~ msgid "%s / %s: %s" -#~ msgstr "%s / %s: %s" - -#, c-format -#~ msgid "%s: %s" -#~ msgstr "%s: %s" - -#, c-format -#~ msgid "%s / %s" -#~ msgstr "%s / %s" - -#, c-format -#~ msgid "scroll to change <b>%s</b> of module %s %s" -#~ msgstr "גלול לשינוי <b>%s</b> של מודול %s % s" - -#~ msgctxt "accel" -#~ msgid "tethering view" -#~ msgstr "תצוגת קשירה" - -#~ msgctxt "accel" -#~ msgid "lighttable view" -#~ msgstr "מצב שולחן אור" - -#~ msgctxt "accel" -#~ msgid "map view" -#~ msgstr "מצב מפה" - -#~ msgctxt "accel" -#~ msgid "print view" -#~ msgstr "מצב הדפסה" - -#~ msgctxt "accel" -#~ msgid "toggle fullscreen" -#~ msgstr "מתג מסך מלא" - -#~ msgctxt "accel" -#~ msgid "toggle side borders" -#~ msgstr "מתג גבולות צדדיים" - -#~ msgctxt "accel" -#~ msgid "toggle right panel" -#~ msgstr "מתג פאנל ימני" - -#~ msgctxt "accel" -#~ msgid "toggle top panel" -#~ msgstr "מתג פאנל עליון" - -#~ msgctxt "accel" -#~ msgid "toggle bottom panel" -#~ msgstr "מתג פאנל תחתון" - -#~ msgctxt "accel" -#~ msgid "toggle all top panels" -#~ msgstr "מתג את כל הפאנלים העליונים" - -#~ msgctxt "accel" -#~ msgid "toggle all bottom panels" -#~ msgstr "מתג את כל הפאנלים התחתונים" - -#~ msgid "enable focus-peaking mode" -#~ msgstr "מתג מצב שיא-פוקוס" - -#~ msgid "show some extra guides" -#~ msgstr "הצג מספר נוסף של מנחים" - -#~ msgid "modules order" -#~ msgstr "סדר מודולים" - -#~ msgid "" -#~ "click or press enter to search\n" -#~ "click or press enter again to cycle through results" -#~ msgstr "" -#~ "הקלק או לחץ enter לחיפוש\n" -#~ "הקלק או לחץ enter שוב לעבור על התוצאות" - -#~ msgid "press key combination to remap..." -#~ msgstr "לחץ על צירוף מקשים למיפוי מחדש..." - -#, c-format -#~ msgid "" -#~ "%s accel is already mapped to\n" -#~ "%s.\n" -#~ "do you want to replace it ?" -#~ msgstr "" -#~ "מקש קיצור %s כבר ממופה ל\n" -#~ "%s.\n" -#~ "האם ברצונך להחליפו?" - -#~ msgid "accel conflict" -#~ msgstr "התנגשות קיצורים" - -#~ msgid "" -#~ "are you sure you want to restore the default keybindings? this will " -#~ "erase any modifications you have made." -#~ msgstr "" -#~ "האם את/ה בטוח/ה שברצונך לשחזר את הגדרות קיצורי המקשים? פעולה זו תמחק כל " -#~ "שינוי שנעשה בעבר." - -#~ msgid "normal images" -#~ msgstr "תמונות רגילות" - -#~ msgid "perspective correction" -#~ msgstr "תיקון פרספקטיבה" - -#~ msgid "guides" -#~ msgstr "מנחים" - -#~ msgid "automatic fit" -#~ msgstr "התאמה אוטומטית" - -#~ msgid "rotate image" -#~ msgstr "סובב תמונה" - -#~ msgid "display guide lines overlay" -#~ msgstr "הצג תכסית של קווים מנחים" - -#~ msgid "remove line structure information" -#~ msgstr "הסר מידע על מבנה קו" - -#~ msgid "B&W : Ilford Delta 100" -#~ msgstr "B&W : Ilford Delta 100" - -#~ msgid "input red" -#~ msgstr "קלט אדום" - -#~ msgid "input green" -#~ msgstr "קלט ירוק" - -#~ msgid "display guide lines to help compose your photograph" -#~ msgstr "הצג קווים מנחים בכדי לעזור בהרכבת התמונה" - -#~ msgid "lightness offset" -#~ msgstr "הסחת בהירות" - -#~ msgid "chroma offset green/red" -#~ msgstr "הסחת כרומה ירוק/אדום" - -#~ msgid "chroma offset blue/yellow" -#~ msgstr "הסחת כרומה כחול/ירוק" - -#~ msgid "saturation offset" -#~ msgstr "הסחת רוויה" - -#~ msgid "linear or non-linear, RGB or Lab, display-referred" -#~ msgstr "לינארי או לא לינארי, RGB או Lab, מיוחס לתצוגה" - -#~ msgid "rotate" -#~ msgstr "סובב" - -#~ msgid "try to locate your camera/lens in the above two menus" -#~ msgstr "נסה לאתר את המצלמה/עדשה שלך בשני התפריטים למעלה" - -#~ msgid "today" -#~ msgstr "היום" - -#, no-c-format -#~ msgid "" -#~ "use `%' as wildcard\n" -#~ "use `|%' to include all sub-hierarchies (ctrl-click)\n" -#~ "use `*' to include hierarchy and sub-hierarchies (shift-click)" -#~ msgstr "" -#~ "השתמש ב `%' כ wildcard\n" -#~ "השתמש ב`|%' ` להכליל את כל תת-ההיררכיות (קליק-ctrl)\n" -#~ "השתמש ב `*' להכליל היררכיה ותת-היררכיות (קליק-shift)" - -#, no-c-format -#~ msgid "" -#~ "use `%' as wildcard\n" -#~ "use `|%' to include all sub-locations (ctrl-click)\n" -#~ "use `*' to include locations and sub-locations (shift-click)" -#~ msgstr "" -#~ "השתמש ב `%' כ wildcard\n" -#~ "השתמש ב`|%' ` להכליל את כל תת-המיקומים (קליק-ctrl)\n" -#~ "השתמש ב `*' להכליל המיקומים ותת-מיקומים (קליק-shift)" - -#~ msgid "set view to waveform" -#~ msgstr "קבע תצוגה לצורת גל" - -#~ msgctxt "accel" -#~ msgid "replace metadata" -#~ msgstr "החלף מטא-נתונים" - -#~ msgid "open folder" -#~ msgstr "פתח תיקיה" - -#, c-format -#~ msgid "edit `%s'" -#~ msgstr "ערוך `%s'" - -#~ msgid "reset parameters" -#~ msgstr "אתחל פרמטרים" - -#~ msgid "all rights reserved." -#~ msgstr "כל הזכויות שמורות." - -#~ msgid "search module" -#~ msgstr "מודול חיפוש" - -#~ msgid "" -#~ "toggle yellow label\n" -#~ "of selected images" -#~ msgstr "" -#~ "מתג תווית צהובה\n" -#~ "של תמונות נבחרות" - -#~ msgid "" -#~ "toggle green label\n" -#~ "of selected images" -#~ msgstr "" -#~ "מתג תווית ירוקה\n" -#~ "של תמונות נבחרות" - -#~ msgid "" -#~ "toggle blue label\n" -#~ "of selected images" -#~ msgstr "" -#~ "מתג תווית כחולה\n" -#~ "של תמונות נבחרות" - -#~ msgid "" -#~ "toggle purple label\n" -#~ "of selected images" -#~ msgstr "" -#~ "מתג תווית סגולה\n" -#~ "של תמונות נבחרות" - -#~ msgid "clear all labels of selected images" -#~ msgstr "נקה את כל התוויות של התמונות הנבחרות" - -#~ msgid "" -#~ "set the color of lines that overlay the image (drawn masks, crop and " -#~ "rotate guides etc.)" -#~ msgstr "" -#~ "קבע את צבע הקווים המכסים את התמונה (מסיכות מצוירות, מדריכי חיתוך וסיבוב " -#~ "וכו'.)" - -#~ msgctxt "accel" -#~ msgid "raw overexposed" -#~ msgstr "קובץ ה raw בחשיפת יתר" - -#~ msgctxt "accel" -#~ msgid "overexposed" -#~ msgstr "חשיפת יתר" - -#~ msgctxt "accel" -#~ msgid "move page up" -#~ msgstr "הזז דף מעלה" - -#~ msgctxt "accel" -#~ msgid "move page down" -#~ msgstr "הזז דף מטה" - -#~ msgctxt "accel" -#~ msgid "move up" -#~ msgstr "הזז מעלה" - -#~ msgctxt "accel" -#~ msgid "move down" -#~ msgstr "הזז מטה" - -#~ msgctxt "accel" -#~ msgid "move left" -#~ msgstr "הזז שמאלה" - -#~ msgctxt "accel" -#~ msgid "move right" -#~ msgstr "הזז ימינה" - -#~ msgctxt "accel" -#~ msgid "move start" -#~ msgstr "העבר התחל" - -#~ msgctxt "accel" -#~ msgid "move end" -#~ msgstr "הזז לסוף" - -#~ msgctxt "accel" -#~ msgid "move page up and select" -#~ msgstr "העבר דף מעלה ובחר" - -#~ msgctxt "accel" -#~ msgid "move page down and select" -#~ msgstr "העבר דף מטה ובחר" - -#~ msgctxt "accel" -#~ msgid "move up and select" -#~ msgstr "העבר למעלה ובחר" - -#~ msgctxt "accel" -#~ msgid "move down and select" -#~ msgstr "הזז מטה ובחר" - -#~ msgctxt "accel" -#~ msgid "move left and select" -#~ msgstr "הזז שמאלה ובחר" - -#~ msgctxt "accel" -#~ msgid "move right and select" -#~ msgstr "הזז ימינה ובחר" - -#~ msgctxt "accel" -#~ msgid "move start and select" -#~ msgstr "הזז להתחלה ובחר" - -#~ msgctxt "accel" -#~ msgid "move end and select" -#~ msgstr "העבר סוף ובחר" - -#~ msgctxt "accel" -#~ msgid "preview with focus detection" -#~ msgstr "תצוגה מקדימה עם גילוי מוקד" - -#~ msgid "+Scroll" -#~ msgstr "+גלול" - -#~ msgid "Accel" -#~ msgstr "האצה" - -#~ msgid "PPG (fast)" -#~ msgstr "(מהיר) PPG" - -#~ msgid "AMaZE (slow)" -#~ msgstr "(איטי) AMaZE" - -#~ msgid "Markesteijn 3-pass (slow)" -#~ msgstr "Markesteijn 3-pass (איטי)" - -#~ msgid "black and white" -#~ msgstr "שחור לבן" - -#~ msgid "crop y" -#~ msgstr "חיתוך y" - -#~ msgid "crop width" -#~ msgstr "רוחב חיתוך" - -#~ msgid "" -#~ "changes the default collections-list order for folders, times and dates " -#~ "to run from recent to older" -#~ msgstr "" -#~ "משנה את ברירת המחדל של סדר רשימת-האוספים עבור תיקיות, זמנים ותאריכים " -#~ "יסודרו מחדש לישן" - -#~ msgid "" -#~ "do not have the rating of one star behave as documented in the manual--an " -#~ "image rated one star twice will result in a zero star rating." -#~ msgstr "" -#~ "אל תגרום לדירוג של כוכב אחד להתנהג כפי שמצוין בהוראות ההפעלה -- דירוג " -#~ "בכוכב אחד פעמיים יגרום לאיפוס הדירוג." - -#~ msgid "color manage cached thumbnails" -#~ msgstr "השתמש בניהול צבע עבור תמונות ממוזערות שבזיכרון המטמון" - -#~ msgid "" -#~ "if enabled, cached thumbnails will be color managed so that lighttable " -#~ "and filmstrip can show correct colors. otherwise the results may look " -#~ "wrong once the display profile gets changed." -#~ msgstr "" -#~ "אם מופעל, תמונות ממוזערות בזיכרון המטמון יהיו מנוהלות צבע כך ששולחן האור " -#~ "וסרט השקופיות יוכלו להציג צבעים נכונים. אחרת התוצאות עלולות להיראות לא " -#~ "מדויקות באם ישתנה פרופיל התצוגה." - -#~ msgid "don't use embedded preview JPEG but half-size raw" -#~ msgstr "אל תשתמש ב JPEG המוטמע כתצוגה מקדימה אלא בחצי גודל raw" - -#~ msgid "" -#~ "check this option to not use the embedded JPEG from the raw file but " -#~ "process the raw data. this is slower but gives you color managed " -#~ "thumbnails." -#~ msgstr "" -#~ "בחר אפשרות זו על מנת לא להשתמש ב JPEG המוטמע בקובץ ה raw אלא לעבד את " -#~ "נתוני ה raw. אפשרות זו איטית יותר אך מספקת תמונות ממוזערות מנוהלות צבע." - -#~ msgid "" -#~ "the maximum number of geotagged images drawn on the map. increasing this " -#~ "number can slow drawing of the map down." -#~ msgstr "" -#~ "המספר המרבי של התמונות המוצגות על המפה. הגדלת מספר זה עלולה להאט את הצגת " -#~ "המפה." - -#~ msgid "" -#~ "if set to a positive, non-zero value this variable defines the minimum " -#~ "amount of memory (in MB) that tiling should take for a single image " -#~ "buffer. has precedence over heuristics based on host_memory_limit (needs " -#~ "a restart)." -#~ msgstr "" -#~ "אם גדול מאפס, משתנה זה מגדיר את הכמות המינימלית של זכרון (ב MB) שתהליך " -#~ "הריצוף יצרוך עבור תמונה בודדת. נוטל קדימות על הנחות המבוססות על " -#~ "host_memory_limit (דורש אתחול)." - -#~ msgid "ignore JPEG images when importing film rolls" -#~ msgstr "התעלם מקבצי JPEG ביבוא גלילי פילם" - -#~ msgid "gamma22 Rec709" -#~ msgstr "gamma22 Rec709" - -#~ msgid "ProPhoto RGB" -#~ msgstr "ProPhoto RGB" - -#, c-format -#~ msgid "" -#~ "\n" -#~ " At startup, the database failed to open because at least one of the two " -#~ "files in the database is locked.\n" -#~ "\n" -#~ " The persistence of the lock is mainly caused by one of the two following " -#~ "causes:\n" -#~ "\n" -#~ " - Another occurrence of darktable has already opened this database file " -#~ "and locked it for its benefit.\n" -#~ "\n" -#~ " - A previous occurrence of darktable ended abnormally and therefore \n" -#~ " could not close one or both files in the database properly.\n" -#~ "\n" -#~ " How to solve this problem?\n" -#~ "\n" -#~ " 1 - Search in your environment if another darktable occurrence is " -#~ "active. If so, use it or close it. \n" -#~ " The lock indicates that the process number of this occurrence is : " -#~ "<i><b>%d</b></i>\n" -#~ "\n" -#~ " 2 - If you can't find this other occurrence, try closing your session " -#~ "and reopening it or shutting down your computer. \n" -#~ " This will delete all running programs and thus close the database " -#~ "correctly.\n" -#~ "\n" -#~ " 3 - If these two actions are not enough, it is because at least one of " -#~ "the two files that materialize the locks remains \n" -#~ " and that these are no longer attached to any occurrence of " -#~ "darktable. It is then necessary to delete it (or them). \n" -#~ " The two files are named <i>data.db.lock</i> and <i>library.db.lock</" -#~ "i> respectively. The opening mechanism signals \n" -#~ " the presence of the <i><b>%s</b></i> file in the <i><b>%s</b></i> " -#~ "folder. \n" -#~ " (full pathname: <i><b>%s</b></i>).\n" -#~ "\n" -#~ " <u>Caution!</u> Do not delete these files without first checking " -#~ "that there are no more occurrences of darktable, \n" -#~ " otherwise you risk generating serious inconsistencies in your " -#~ "database.\n" -#~ "\n" -#~ " As soon as you have identified and removed the cause of the lock, " -#~ "darktable will start without any problem.\n" -#~ msgstr "" -#~ "\n" -#~ "בעלייה, מסד הנתונים לא נפתח כיוון שלפחות אחד משני הקבצים במסד הנתונים " -#~ "נעול.\n" -#~ "\n" -#~ "עקביות הנעילה נגרמת בעיקר מאחת משתי הסיבות הבאות:\n" -#~ "\n" -#~ " - מאורע נוסף של darktable כבר פתח את קובץ מסד הנתונים הזה ונעל אותו.\n" -#~ "\n" -#~ " - מאורע קודם של darktable הסתיים באופן לא שיגרתי ולכן\n" -#~ " לא סגר את אחד או שני הקבצים במסד הנתונים באופן כפי שצריך.\n" -#~ "\n" -#~ "איך לפתור את הבעיה?\n" -#~ "\n" -#~ "1 - חפש אם קיים במערכת מאורע נוסף של darktable. אם כן השתמש בו או סגור " -#~ "אותו.\n" -#~ " הנעילה מצביעה שמספר התהליך (process) של מאורע זה: <i><b>%d</b></i>\n" -#~ "\n" -#~ "2 - אם המאורע הנוסף לא נמצא, נסה לסגור את המושב הנוכחי ולפותחו שוב, או " -#~ "לאתחל את המחשב.\n" -#~ " פעולה זו תעצור את כל התוכנות ותסגור את מסד הנתונים כפי שצריך.\n" -#~ "\n" -#~ "3 - אם שתי הפעולות הראשונות לא צלחו, זה מכיוון שלפחות אחד משני הקבצים " -#~ "הנועלים נשאר במקומו\n" -#~ " ואינו מקושר יותר למאורע כלשהו של darktable. יש צורך אם כן למחוק את " -#~ "הקובץ (או הקבצים).\n" -#~ " שמות הקבצים <i>data.db.lock</i> ו <i>library.db.lock</i> בהתאמה. " -#~ "מכניזם הפתיחה משדר\n" -#~ " את הקיום של קובץ <i><b>%s</b></i> בתיקיה <i><b>%s</b></i>.\n" -#~ " (נתיב מלא: <i><b>%s</b></i>).\n" -#~ "\n" -#~ "<u>Caution!</u> אל תמחוק קבצים אלה לפני שתוודא שאין יותר מאורעות פעילים " -#~ "של darktable,\n" -#~ " אחרת אתה מסתכן ביצירת חוסר עקביות במסד הנתונים.\n" -#~ "\n" -#~ "ברגע שזיהית והסרת את הגורם לנעילה, darktable יעלה ללא בעיות.\n" - -#~ msgid "darktable cannot be started because the database is locked" -#~ msgstr "לא ניתן לפתוח את darktable כיוון שמסד הנתונים נעול" - -#, c-format -#~ msgid "do you really want to send %d image to trash?" -#~ msgid_plural "do you really want to send %d images to trash?" -#~ msgstr[0] "האם אתה באמת מעוניין לשלוח תמונה נבחרת %d לפח?" -#~ msgstr[1] "האם אתה באמת מעוניין לשלוח תמונות נבחרות %d לפח?" - -#~ msgid "trash images?" -#~ msgstr "שלח תמונות לסל המחזור?" - -#~ msgid "do you really want to send selected image to trash?" -#~ msgstr "האם אתה באמת מעוניין לשלוח תמונה נבחרת %d לפח?" - -#~ msgctxt "blendmode" -#~ msgid "HSV lightness" -#~ msgstr "תאורת HSV" - -#~ msgctxt "blendmode" -#~ msgid "multiply reverse" -#~ msgstr "הכפל הפוך" - -#~ msgctxt "blendmode" -#~ msgid "subtract reverse" -#~ msgstr "החסרה במהופך" - -#~ msgctxt "blendmode" -#~ msgid "divide reverse" -#~ msgstr "חלק הפוך" - -#~ msgctxt "blendmode" -#~ msgid "unbounded (deprecated)" -#~ msgstr "בלתי מוגבל" - -#~ msgid "output image" -#~ msgstr "תמונת הפלט" - -#~ msgid "input image" -#~ msgstr "תמונת הקלט" - -#~ msgid "" -#~ "add gradient\n" -#~ "ctrl+click to add multiple gradients" -#~ msgstr "" -#~ "הוספת גראדינט\n" -#~ "קליק+ctrl להוספת גראדינטים מרובים" - -#~ msgid "" -#~ "add path\n" -#~ "ctrl+click to add multiple paths" -#~ msgstr "" -#~ "הוספת מסלול\n" -#~ "קליק+ctrl להוספת מסלולים מרובים" - -#~ msgid "" -#~ "add ellipse\n" -#~ "ctrl+click to add multiple ellipses" -#~ msgstr "" -#~ "הוספת אליפסה\n" -#~ "קליק+ctrl להוספת אליפסות מרובות" - -#~ msgid "" -#~ "add circle\n" -#~ "ctrl+click to add multiple circles" -#~ msgstr "" -#~ "הוספת מעגל\n" -#~ "קליק+ctrl להוספת מעגלים מרובים" - -#~ msgid "" -#~ "add brush\n" -#~ "ctrl+click to add multiple brush strokes" -#~ msgstr "" -#~ "הוסף מברשת\n" -#~ "לחץ ctrl+קליק להוסיף נגיעות מכחול מרובות" - -#~ msgid "ctrl+click to add a sharp node" -#~ msgstr "לחץ ctrl+click להוסיף צומת חד" - -#~ msgid "ctrl+click to switch between smooth/sharp node" -#~ msgstr "לחץ ctrl+click לעבור בין הצמתים החלקה/חדות" - -#~ msgid "right-click to reset curvature" -#~ msgstr "קליק ימני לאתחל עקמומיות" - -#, c-format -#~ msgid "" -#~ "shift+scroll to set feather size, ctrl+scroll to set shape opacity (%d%%)" -#~ msgstr "גלול+shift לקבוע גודל נוצה, ctrl+גלול לקבוע אטימות צורה (%d%%)" - -#, c-format -#~ msgid "" -#~ "shift+scroll to change compression\n" -#~ "ctrl+scroll to set opacity (%d%%)" -#~ msgstr "" -#~ "גלול+shift לשינוי דחיסה\n" -#~ "גלילה+ctrl לקבוע אטימות (%d%%)" - -#, c-format -#~ msgid "" -#~ "scroll to set curvature, shift+scroll to change compression\n" -#~ "ctrl+scroll to set shape opacity (%d%%)" -#~ msgstr "" -#~ "גלול על מנת לקבוע עקמומיות, shift+גלול לקבוע דחיסה\n" -#~ "לקבוע אטימות צורה ctrl+גלול (%d%%)" - -#~ msgid "move to rotate shape" -#~ msgstr "הזז לסובב צורה" - -#, c-format -#~ msgid "" -#~ "scroll to set size, shift+scroll to set feather size\n" -#~ "ctrl+scroll to set shape opacity (%d%%)" -#~ msgstr "" -#~ "גלול על מנת לקבוע גודל, shift+גלול לקבוע גודל נוצה,\n" -#~ "לקבוע אטימות צורה ctrl+גלול (%d%%)" - -#, c-format -#~ msgid "" -#~ "shift+click to switch feathering mode, ctrl+click to rotate\n" -#~ "shift+scroll to set feather size, ctrl+scroll to set shape opacity (%d%%)," -#~ msgstr "" -#~ "קליק+shift להחליף מצב נגיעת נוצה, ctrl+קליק לסובב\n" -#~ "לקביעת גודל נוצה shift+גלילה, ctrl+גלילה לקביעת אטימות צורה (%d%%)," - -#, c-format -#~ msgid "" -#~ "scroll to set brush size, shift+scroll to set hardness,\n" -#~ "ctrl+scroll to set opacity (%d%%)" -#~ msgstr "" -#~ "גלול על מנת לקבוע גודל מברשת, shift+גלול לקבוע קשיחות,\n" -#~ "לקבוע אטימות ctrl+גלול (%d%%)" - -#, c-format -#~ msgid "scroll to set hardness, ctrl+scroll to set shape opacity (%d%%)" -#~ msgstr "גלול לקבוע קשיחות, ctrl+גלול לקבוע אטימות צורה (%d%%)" - -#~ msgid "scroll to set brush size" -#~ msgstr "גלול לקבוע גודל מברשת" - -#~ msgid "" -#~ "history problem detected\n" -#~ "please report via the issue tracker\n" -#~ "including the xmp file" -#~ msgstr "" -#~ "בעיה התגלתה בהיסטוריה\n" -#~ "אנה דווח דרך issue tracker\n" -#~ "כולל קובץ ה xmp" - -#~ msgid "store value as default" -#~ msgstr "שמור ערך כברירת מחדל" - -#~ msgid "reset value to default" -#~ msgstr "אתחל ערך לברירת המחדל" - -#~ msgctxt "camera import" -#~ msgid "import" -#~ msgstr "ייבא" - -#~ msgid "storage file" -#~ msgstr "קובץ אחסון" - -#~ msgid "" -#~ "do not load files with an extension of .jpg or .jpeg. this can be useful " -#~ "when there are raw+JPEG in a directory." -#~ msgstr "" -#~ "אל תטען קבצים בעלי סיומת .jpg או .jpeg. מועיל כאשר קיימים קבצי raw+JPEG " -#~ "בתיקיה." - -#~ msgid "" -#~ "select the images from the list below that you want to import into a new " -#~ "filmroll" -#~ msgstr "בחר את התמונות שברצונך לייבא לגליל פילם חדש מהרשימה למטה" - -#~ msgid "please use YYYY-MM-DD format for date override" -#~ msgstr "אנא השתמש בפורמט YYYY-MM-DD לעקיפת התאריך" - -#~ msgid "apply metadata on import" -#~ msgstr "יישם מטא-נתונים בייבוא" - -#~ msgid "metadata to be applied per default" -#~ msgstr "מטא-נתונים ליישום כברירת מחדל" - -#, c-format -#~ msgid "preset %s was successfully saved" -#~ msgstr "פריסט %s נשמר בהצלחה" - -#~ msgid "" -#~ "automatic chromatic aberration correction\n" -#~ "disabled for non-Bayer sensors" -#~ msgstr "" -#~ "תיקון אוטומטי של אברציות כרומטיות\n" -#~ "מנוטרל עבור חיישנים שאינם מסוג Bayer" - -#~ msgid "demosaicing raw data method" -#~ msgstr "שיטה לתהליך demosaicing עבור נתונים גולמיים" - -#~ msgid "two times" -#~ msgstr "פעמיים" - -#~ msgid "collect images" -#~ msgstr "אסוף תמונות" - -#, no-c-format -#~ msgid "type your query, use `%' as wildcard" -#~ msgstr "הקלד חיפוש, השתמש ב `%' כווילדכארד" - -#~ msgid "" -#~ "copy part history stack of\n" -#~ "first selected image" -#~ msgstr "" -#~ "העתק חלק ממחסנית ההיסטוריה של\n" -#~ "תמונה נבחרת ראשונה" - -#~ msgid "paste parts..." -#~ msgstr "הדבק חלקים..." - -#~ msgid "" -#~ "paste part history stack to\n" -#~ "all selected images" -#~ msgstr "" -#~ "הדבק חלק ממחסנית היסטוריה ל\n" -#~ "כל התמונות הנבחרות" - -#~ msgid "export selected" -#~ msgstr "ייצא את שנבחר" - -#~ msgid "edit metadata exportation details" -#~ msgstr "ערוך פרטי ייצוא של מטה נתונים" - -#~ msgid "" -#~ "enter the time shown on the selected picture\n" -#~ "format: hh:mm:ss" -#~ msgstr "" -#~ "הכנס את השעה הנראית בצילום הנבחר\n" -#~ "פורמט: hh:mm:ss" - -#~ msgid "" -#~ "time offset\n" -#~ "format: [+-]?[[hh:]mm:]ss" -#~ msgstr "" -#~ "הסחת זמן\n" -#~ "format: [+-]?[[hh:]mm:]ss" - -#~ msgid "calculate the time offset from an image" -#~ msgstr "חשב הסחת זמן מתמונה" - -#~ msgid "trash" -#~ msgstr "אשפה" - -#~ msgid "send file to trash" -#~ msgstr "שלח קובץ לאשפה" - -#~ msgid "remove from the collection" -#~ msgstr "הסר מהאוסף" - -#~ msgctxt "accel" -#~ msgid "remove from collection" -#~ msgstr "הסר מהאוסף" - -#~ msgctxt "accel" -#~ msgid "import image" -#~ msgstr "ייבא תמונה" - -#~ msgctxt "accel" -#~ msgid "import folder" -#~ msgstr "ייבא תיקיה" - -#~ msgid "Mass Storage Camera" -#~ msgstr "מצלמת אחסון מסיבי" - -#~ msgid "import options" -#~ msgstr "אפשרויות ייבוא" - -#~ msgid "import folders recursively" -#~ msgstr "ייבא תיקיות רקורסיבית" - -#~ msgid "" -#~ "recursively import subfolders. Each folder goes into a new film roll." -#~ msgstr "ייבא תת תיקיות רקורסיבית. כל תיקיה לתוך גליל פילם חדש." - -#~ msgid "file has unknown format!" -#~ msgstr "לקובץ פורמט לא מזוהה!" - -#~ msgid "import folder" -#~ msgstr "ייבא תיקיה" - -#~ msgid "image..." -#~ msgstr "תמונה..." - -#~ msgid "select one or more images to import" -#~ msgstr "בחר תמונה או יותר לייבוא" - -#~ msgid "folder..." -#~ msgstr "תיקיה..." - -#~ msgid "modify the spatial size of an images group on the map" -#~ msgstr "שנה את הגודל המרחבי של קבוצת תמונות על המפה" - -#~ msgid "minimum of images to make a group" -#~ msgstr "מספר תמונות מינימלי לפתיחת קבוצה" - -#~ msgid "hidden" -#~ msgstr "חבוי" - -#~ msgctxt "accel" -#~ msgid "clear" -#~ msgstr "נקה" - -#~ msgid "remove metadata from selected images" -#~ msgstr "הסר מטא-נתונים מתמונות נבחרות" - -#~ msgid "configure metadata" -#~ msgstr "עצב מטא-נתונים" - -#~ msgid "recommended module" -#~ msgid_plural "recommended modules" -#~ msgstr[0] "מודול מומלץ" -#~ msgstr[1] "מודולים מומלצים" - -#~ msgid "preset name" -#~ msgstr "שם פריסט" - -#, c-format -#~ msgid "tag: %s " -#~ msgstr "תג: %s " - -#~ msgid "delete path" -#~ msgstr "מחק נתיב" - -#~ msgid "edit tag" -#~ msgstr "ערוך תג" - -#~ msgid "rename path?" -#~ msgstr "שנה שם נתיב?" - -#~ msgid "edit tag..." -#~ msgstr "ערוך תג..." - -#~ msgid "do you want to access https://darktable.gitlab.io/doc/?" -#~ msgstr "האם ברצונך לגשת אל https://darktable.gitlab.io/doc/?" - -#~ msgid "file manager" -#~ msgstr "מנהל קבצים" - -#~ msgid "culling" -#~ msgstr "ברירה" - -#~ msgid "dynamic zoom" -#~ msgstr "זום דינמי" - -#~ msgid "display intent" -#~ msgstr "כוונת ההצגה" - -#~ msgctxt "accel" -#~ msgid "sticky preview" -#~ msgstr "תצוגה מקדימה דביקה" - -#~ msgid "blue vs yellow" -#~ msgstr "כחול מול צהוב" - -#~ msgid "scattering (coarse-grain noise)" -#~ msgstr "פיזור (רעש מגורען גס)" - -#~ msgid "central pixel weight (details)" -#~ msgstr "משקל פיקסל מרכזי (פרטים)" - -#~ msgid "" -#~ "when there is a txt file next to an image it can be shown as an overlay " -#~ "over zoomed images on the lighttable. the txt file either has to be there " -#~ "at import time or the crawler has to be enabled" -#~ msgstr "" -#~ "כאשר יש קובץ txt בסמוך לתמונה ניתן לצפות אתו תמונות מוגדלות על שולחן " -#~ "האור. קובץ ה txt צריך להיות זמין בעת פעולת היבוא או שהזחלן צריך להיות " -#~ "מאופשר" - -#~ msgid "show search module text entry" -#~ msgstr "הראה חלונית הכנסת ערך של מודול החיפוש" - -#~ msgctxt "preferences" -#~ msgid "show both" -#~ msgstr "הראה גם וגם" - -#~ msgid "only draw images on map that are currently collected and filtered" -#~ msgstr "הצג על המפה אך ורק תמונות שכרגע נאספו וסוננו" - -#~ msgid "" -#~ "use the current filter settings to select the geotagged images drawn on " -#~ "the map, i.e. limit the images drawn to the current filmstrip. this " -#~ "limits the number of images drawn and thus reduces the time needed to " -#~ "draw the images." -#~ msgstr "" -#~ "השתמש בהגדרה הנוכחית של המסנן לבחירת התג הגאוגרפי של התמונות המוצגות על " -#~ "המפה, כלומר הגבל את התמונות המוצגות לסרט השקופיות הנוכחי. הדבר מגביל את " -#~ "מספר התמונות המוצגות ועל ידי כך מקטין את הזמן הנדרש להצגתם." - -#~ msgid "do high quality processing for slideshow" -#~ msgstr "בצע עיבוד באיכות גבוהה עבור מצגת" - -#~ msgid "same option as for export, but applies to slideshow." -#~ msgstr "אפשרות זהה עבור ייצוא, רק עבור מצגת." - -#~ msgid "error: output file is a directory. please specify file name" -#~ msgstr "שגיאה: קובץ פלט הוא תיקייה. אנה ציין שם קובץ" - -#~ msgid "" -#~ "an error has occurred while trying to open the database from\n" -#~ "\n" -#~ "<span style=\"italic\">%s</span>\n" -#~ "\n" -#~ "it seems that the database is corrupt.\n" -#~ "do you want to close darktable now to manually restore\n" -#~ "the database from a backup or start with a new one?" -#~ msgstr "" -#~ "ארעה שגיאה בעת ניסיון פתיחה של מסד הנתונים מ\n" -#~ "\n" -#~ "<span style=\"italic\">%s</span>\n" -#~ "\n" -#~ "נראה שמסד הנתונים תקול.\n" -#~ "האם ברצונך לסגור את darktable כעת על מנת לשחזר ידנית\n" -#~ "את מסד הנתונים מגיבוי או להתחיל עם מסד נתונים חדש?" - -#~ msgid " g " -#~ msgstr " g " - -#~ msgid " R " -#~ msgstr " R " - -#~ msgid " G " -#~ msgstr " G " - -#~ msgid " B " -#~ msgstr " B " - -#~ msgid " H " -#~ msgstr " H " - -#~ msgid " S " -#~ msgstr " S " - -#~ msgid " L " -#~ msgstr " L " - -#~ msgid "to be imported" -#~ msgstr "לייבוא" - -#~ msgid "" -#~ "selected metadata are imported from image and override the default value" -#~ msgstr "מטה נתונים נבחרים מיובאים מהתמונה ודורסים את ערך ברירת המחדל" - -#~ msgid "GUI thumbs and previews DPI scaling factor" -#~ msgstr "קבוע הכפלה של DPI עבור תמונות ממוזערות של ממשק משתמש ותצוגה מקדימה" - -#~ msgid "" -#~ "scale the thumbnails and previews resolutions for high DPI screens.\n" -#~ "increase if thumbnails look blurry, decrease if lighttable is too slow.\n" -#~ "set to -1.0 to use the system-defined global scaling.\n" -#~ "default is 1.0 on most systems, or 2.0 when using resolutions above " -#~ "1920×1080 px.\n" -#~ "this needs a restart to apply changes." -#~ msgstr "" -#~ "התאם רזולוציית תמונות ממוזערות ותצוגה מקדימה למסכים בעלי DPI גבוה.\n" -#~ "הגבר התמונות הממוזערות מטושטשות, הפחת אם שולחן האור איטי מדי.\n" -#~ "קבע ל -1.0 על מנת להשתמש בהגדרת המערכת ל global scaling.\n" -#~ "ברירת המחדל היא 1.0 על רב המערכות, או 2.0 עבור רזולוציות מעל 1920×1080 " -#~ "px.\n" -#~ "מצריך אתחול כדי שהשינויים יכנסו לתוקף." - -#~ msgctxt "usercss" -#~ msgid "save theme tweaks" -#~ msgstr "שמור כוונוני ערכת תצוגה" - -#~ msgid "deflate with predictor (float)" -#~ msgstr "ברירת מחדל עם פרדיקטור (float)" - -#~ msgid "" -#~ "distort perspective automatically,\n" -#~ "for corrective and creative purposes.\n" -#~ "works in RGB,\n" -#~ "takes preferably a linear RGB input,\n" -#~ "outputs linear RGB." -#~ msgstr "" -#~ "עוות פרספקטיבה אוטומטית,\n" -#~ "לתיקון ויצירתיות.\n" -#~ "עובד ב RGB,\n" -#~ "מקבל בעדיפות קלט RGB לינארי,\n" -#~ "מייצא RGB לינארי." - -#~ msgctxt "accel" -#~ msgid "rotation" -#~ msgstr "סיבוב" - -#~ msgctxt "accel" -#~ msgid "lens shift (v)" -#~ msgstr "הסחת עדשה (v)" - -#~ msgctxt "accel" -#~ msgid "lens shift (h)" -#~ msgstr "הסחת עדשה (h)" - -#~ msgctxt "accel" -#~ msgid "shear" -#~ msgstr "גזור" - -#~ msgctxt "accel" -#~ msgid "focal length" -#~ msgstr "אורך מוקד" - -#~ msgctxt "accel" -#~ msgid "crop factor" -#~ msgstr "מקדם חיתוך" - -#~ msgctxt "accel" -#~ msgid "aspect adjust" -#~ msgstr "כיוון יחס" - -#~ msgctxt "accel" -#~ msgid "guides" -#~ msgstr "מנחים" - -#~ msgctxt "accel" -#~ msgid "automatic cropping" -#~ msgstr "חיתוך אוטומטי" - -#~ msgctxt "accel" -#~ msgid "lens model" -#~ msgstr "מודל עדשה" - -#~ msgid "" -#~ "add or remove local contrast,\n" -#~ "for corrective and creative purposes.\n" -#~ "works in Lab,\n" -#~ "takes preferably a linear RGB input,\n" -#~ "outputs almost linear RGB." -#~ msgstr "" -#~ "הוסף או הסר ניגודיות מקומית,\n" -#~ "לתיקון ויצירתיות.\n" -#~ "עובד ב Lab,\n" -#~ "מקבל בעדיפות קלט RGB לינארי,\n" -#~ "מייצא RGB כמעט לינארי." - -#~ msgctxt "accel" -#~ msgid "mix" -#~ msgstr "ערבב" - -#~ msgid "deblur: large blur, strength 4" -#~ msgstr "deblur: טשטוש נרחב, חוזק 4" - -#~ msgctxt "accel" -#~ msgid "scale" -#~ msgstr "שנה גודל" - -#~ msgctxt "accel" -#~ msgid "preserve colors" -#~ msgstr "שמר צבעים" - -#~ msgctxt "accel" -#~ msgid "exposure fusion" -#~ msgstr "מיזוג חשיפה" - -#~ msgid "" -#~ "scale to use in the graph. use logarithmic scale for more precise control " -#~ "near the blacks" -#~ msgstr "סקאלה לשימוש בגרף" - -#~ msgid "" -#~ "apply usual adjustments,\n" -#~ "for corrective and creative purposes.\n" -#~ "works in RGB,\n" -#~ "takes preferably a linear RGB input,\n" -#~ "outputs non-linear RGB." -#~ msgstr "" -#~ "יישם כוונונים שכיחים,\n" -#~ "לתיקון ויצירתיות.\n" -#~ "עובד ב RGB,\n" -#~ "מקבל בעדיפות קלט RGB לינארי,\n" -#~ "מייצא RGB לא לינארי." - -#~ msgctxt "accel" -#~ msgid "black level correction" -#~ msgstr "תיקון רמת שחור" - -#~ msgctxt "accel" -#~ msgid "exposure" -#~ msgstr "חשיפה" - -#~ msgctxt "accel" -#~ msgid "highlight compression" -#~ msgstr "דחיסת פרטים בהירים" - -#~ msgctxt "accel" -#~ msgid "contrast" -#~ msgstr "ניגודיות" - -#~ msgctxt "accel" -#~ msgid "middle grey" -#~ msgstr "אפור בינוני" - -#~ msgctxt "accel" -#~ msgid "brightness" -#~ msgstr "בהירות" - -#~ msgctxt "accel" -#~ msgid "saturation" -#~ msgstr "רוויה" - -#~ msgctxt "accel" -#~ msgid "vibrance" -#~ msgstr "וויברנס" - -#~ msgctxt "accel" -#~ msgid "clip" -#~ msgstr "חתוך" - -#~ msgid "" -#~ "manipulate local and global contrast separately,\n" -#~ "for corrective and creative purposes.\n" -#~ "works in Lab,\n" -#~ "takes any RGB input,\n" -#~ "outputs non-linear RGB." -#~ msgstr "" -#~ "התאמת מקומי וגלובלי בנפרד,\n" -#~ "לתיקון ויצירתיות.\n" -#~ "עובד ב Lab,\n" -#~ "מקבל כל קלט RGB,\n" -#~ "מייצא RGB לא לינארי." - -#~ msgctxt "accel" -#~ msgid "detail" -#~ msgstr "פרטים" - -#~ msgctxt "accel" -#~ msgid "coarseness" -#~ msgstr "גסות" - -#~ msgctxt "accel" -#~ msgid "highlights" -#~ msgstr "פרטים בהירים" - -#~ msgctxt "accel" -#~ msgid "shadows" -#~ msgstr "צללים" - -#~ msgctxt "accel" -#~ msgid "midtone range" -#~ msgstr "טווח טונים בינוניים" - -#~ msgctxt "accel" -#~ msgid "mode" -#~ msgstr "מצב" - -#~ msgctxt "accel" -#~ msgid "radius" -#~ msgstr "רדיוס" - -#~ msgctxt "accel" -#~ msgid "red" -#~ msgstr "אדום" - -#~ msgctxt "accel" -#~ msgid "green" -#~ msgstr "ירוק" - -#~ msgctxt "accel" -#~ msgid "blue" -#~ msgstr "כחול" - -#~ msgid "" -#~ "apply Orton effect for a dreamy aetherical look,\n" -#~ "for creative purposes.\n" -#~ "works in Lab,\n" -#~ "takes preferably a linear RGB input,\n" -#~ "outputs non-linear RGB." -#~ msgstr "" -#~ "מיישם אפקט Orton למראה אתרי חלומי ,\n" -#~ "לתיקון ויצירתיות.\n" -#~ "עובד ב Lab,\n" -#~ "מקבל בעדיפות קלט RGB לינארי,\n" -#~ "מייצא RGB לא לינארי." - -#~ msgctxt "accel" -#~ msgid "size" -#~ msgstr "גודל" - -#~ msgctxt "accel" -#~ msgid "threshold" -#~ msgstr "סף" - -#~ msgctxt "accel" -#~ msgid "strength" -#~ msgstr "חוזק" - -#~ msgctxt "accel" -#~ msgid "border size" -#~ msgstr "גודל מסגרת" - -#~ msgctxt "accel" -#~ msgid "pick border color from image" -#~ msgstr "בחר צבע מסגרת מתוך התמונה" - -#~ msgctxt "accel" -#~ msgid "frame line size" -#~ msgstr "גודל קו המסגרת" - -#~ msgctxt "accel" -#~ msgid "frame line offset" -#~ msgstr "הסחה לקו המסגרת" - -#~ msgctxt "accel" -#~ msgid "pick frame line color from image" -#~ msgstr "בחר צבע קו המסגרת מתוך התמונה" - -#~ msgctxt "accel" -#~ msgid "aspect" -#~ msgstr "הבט" - -#~ msgctxt "accel" -#~ msgid "orientation" -#~ msgstr "אוריינטציה" - -#~ msgctxt "accel" -#~ msgid "horizontal position" -#~ msgstr "מיקום אופקי" - -#~ msgctxt "accel" -#~ msgid "vertical position" -#~ msgstr "מיקום אנכי" - -#~ msgctxt "accel" -#~ msgid "destination" -#~ msgstr "יעד" - -#~ msgid "invalid ratio format. it should be non zero" -#~ msgstr "פורמט יחס לא חוקי. חייב להיות שונה מאפס" - -#~ msgctxt "accel" -#~ msgid "angle" -#~ msgstr "זווית" - -#~ msgctxt "accel" -#~ msgid "top" -#~ msgstr "עליון" - -#~ msgctxt "accel" -#~ msgid "bottom" -#~ msgstr "תחתית" - -#~ msgctxt "accel" -#~ msgid "aspect ratio" -#~ msgstr "יחס רוחב גובה" - -#~ msgctxt "accel" -#~ msgid "flip" -#~ msgstr "הפוך" - -#~ msgctxt "accel" -#~ msgid "keystone" -#~ msgstr "keystone" - -#~ msgid "" -#~ "affect color, brightness and contrast\n" -#~ "for corrective and creative purposes.\n" -#~ "works in RGB\n" -#~ "takes preferably a linear RGB input,\n" -#~ "outputs possibly non-linear RGB, depending on settings." -#~ msgstr "" -#~ "השפע על צבע, בהירות, וקונטרסט ,\n" -#~ "לתיקון ויצירתיות.\n" -#~ "עובד ב RGB,\n" -#~ "מקבל בעדיפות קלט RGB לינארי,\n" -#~ "מייצא RGB לא לינארי בפוטנציה, תלוי בהגדרות." - -#~ msgctxt "accel" -#~ msgid "input saturation" -#~ msgstr "רווית קלט" - -#~ msgctxt "accel" -#~ msgid "output saturation" -#~ msgstr "רווית פלט" - -#~ msgctxt "accel" -#~ msgid "contrast fulcrum" -#~ msgstr "נקודת סמך לניגודיות" - -#~ msgctxt "accel" -#~ msgid "color control sliders" -#~ msgstr "זחיחים לבקרת צבע" - -#~ msgid "factor of " -#~ msgstr "מקדם של " - -#~ msgctxt "accel" -#~ msgid "lightness" -#~ msgstr "בהירות" - -#~ msgctxt "accel" -#~ msgid "green-red" -#~ msgstr "ירוק-אדום" - -#~ msgctxt "accel" -#~ msgid "blue-yellow" -#~ msgstr "כחול-צהוב" - -#~ msgctxt "accel" -#~ msgid "target color" -#~ msgstr "צבע יעד" - -#~ msgctxt "accel" -#~ msgid "blue vs yellow" -#~ msgstr "כחול מול צהוב" - -#~ msgid "steepness of the a* curve in Lab" -#~ msgstr "שיפוע של עקום a* במעבדה" - -#~ msgid "steepness of the b* curve in Lab" -#~ msgstr "שיפוע של עקום b* במעבדה" - -#~ msgctxt "accel" -#~ msgid "input profile" -#~ msgstr "פרופיל קלט" - -#~ msgctxt "accel" -#~ msgid "working profile" -#~ msgstr "פרופיל עבודה" - -#~ msgctxt "accel" -#~ msgid "gamut clipping" -#~ msgstr "חיתוך מכלול צבע" - -#~ msgctxt "accel" -#~ msgid "hue" -#~ msgstr "גוון" - -#~ msgctxt "accel" -#~ msgid "source mix" -#~ msgstr "ערבוב מקור" - -#~ msgctxt "accel" -#~ msgid "number of clusters" -#~ msgstr "מספר אשכולות" - -#~ msgctxt "accel" -#~ msgid "color dominance" -#~ msgstr "דומיננטיות צבע" - -#~ msgctxt "accel" -#~ msgid "histogram equalization" -#~ msgstr "איזון היסטוגרמה" - -#~ msgctxt "accel" -#~ msgid "acquire as source" -#~ msgstr "רכוש כמקור" - -#~ msgctxt "accel" -#~ msgid "acquire as target" -#~ msgstr "רכוש כיעד" - -#~ msgctxt "accel" -#~ msgid "export profile" -#~ msgstr "ייצא פרופיל" - -#~ msgctxt "accel" -#~ msgid "spatial extent" -#~ msgstr "היקף מרחבי" - -#~ msgctxt "accel" -#~ msgid "range extent" -#~ msgstr "היקף טווח" - -#~ msgctxt "accel" -#~ msgid "select by" -#~ msgstr "בחר לפי" - -#~ msgctxt "accel" -#~ msgid "process mode" -#~ msgstr "מצב עיבוד" - -#~ msgctxt "accel" -#~ msgid "interpolation method" -#~ msgstr "שיטת אנטרפולציה" - -#~ msgctxt "accel" -#~ msgid "edge detection radius" -#~ msgstr "רדיוס גילוי קצוות" - -#~ msgctxt "accel" -#~ msgid "operation mode" -#~ msgstr "מצב עבודה" - -#~ msgctxt "accel" -#~ msgid "edge threshold" -#~ msgstr "סף קצה" - -#~ msgctxt "accel" -#~ msgid "method (bayer)" -#~ msgstr "שיטה (bayer)" - -#~ msgctxt "accel" -#~ msgid "method (xtrans)" -#~ msgstr "שיטה (xtrans)" - -#~ msgctxt "accel" -#~ msgid "color smoothing" -#~ msgstr "החלקת צבע" - -#~ msgctxt "accel" -#~ msgid "match greens" -#~ msgstr "התאם ירוקים" - -#~ msgctxt "accel" -#~ msgid "adjust autoset parameters" -#~ msgstr "כוונן פרמטרים אוטומטיים" - -#~ msgctxt "accel" -#~ msgid "preserve shadows" -#~ msgstr "שמר צללים" - -#~ msgctxt "accel" -#~ msgid "bias correction" -#~ msgstr "תיקון הסחה" - -#~ msgctxt "accel" -#~ msgid "patch size" -#~ msgstr "גודל טלאי" - -#~ msgctxt "accel" -#~ msgid "search radius" -#~ msgstr "רדיוס חיפוש" - -#~ msgctxt "accel" -#~ msgid "method" -#~ msgstr "שיטה" - -#~ msgctxt "accel" -#~ msgid "black" -#~ msgstr "שחור" - -#~ msgctxt "accel" -#~ msgid "auto-exposure" -#~ msgstr "חשיפה אוטומטית" - -#~ msgctxt "accel" -#~ msgid "percentile" -#~ msgstr "אחוזון" - -#~ msgctxt "accel" -#~ msgid "target level" -#~ msgstr "רמת יעד" - -#~ msgctxt "accel" -#~ msgid "white exposure" -#~ msgstr "חשיפת לבן" - -#~ msgctxt "accel" -#~ msgid "black exposure" -#~ msgstr "חשיפת שחור" - -#~ msgctxt "accel" -#~ msgid "middle grey luminance" -#~ msgstr "לומיננס של אפור בינוני" - -#~ msgctxt "accel" -#~ msgid "dynamic range scaling" -#~ msgstr "מתיחה וכיווץ תחום דינמי" - -#~ msgctxt "accel" -#~ msgid "latitude" -#~ msgstr "קו רוחב" - -#~ msgctxt "accel" -#~ msgid "extreme luminance saturation" -#~ msgstr "רווית לומיננס קיצוני" - -#~ msgctxt "accel" -#~ msgid "target black luminance" -#~ msgstr "בהירות מטרה של שחור" - -#~ msgctxt "accel" -#~ msgid "target middle grey" -#~ msgstr "יעד רמות אפור בינוניות" - -#~ msgctxt "accel" -#~ msgid "target white luminance" -#~ msgstr "יעד לומיננס לבן" - -#~ msgctxt "accel" -#~ msgid "target power transfer function" -#~ msgstr "יעד פונקציית תמסורת של הספק" - -#~ msgctxt "accel" -#~ msgid "preserve chrominance" -#~ msgstr "שמר chrominance" - -#~ msgctxt "accel" -#~ msgid "bias" -#~ msgstr "הסחה" - -#~ msgctxt "accel" -#~ msgid "target" -#~ msgstr "יעד" - -#~ msgctxt "accel" -#~ msgid "operator" -#~ msgstr "אופרטור" - -#~ msgctxt "accel" -#~ msgid "density" -#~ msgstr "צפיפות" - -#~ msgctxt "accel" -#~ msgid "hardness" -#~ msgstr "קשיחות" - -#~ msgctxt "accel" -#~ msgid "midtones bias" -#~ msgstr "הסחת טונים בינוניים" - -#~ msgctxt "accel" -#~ msgid "distance" -#~ msgstr "מרחק" - -#~ msgctxt "accel" -#~ msgid "clipping threshold" -#~ msgstr "סף חיתוך" - -#~ msgctxt "accel" -#~ msgid "sharpness" -#~ msgstr "חדות" - -#~ msgctxt "accel" -#~ msgid "contrast boost" -#~ msgstr "דחיפה לניגודיות" - -#~ msgctxt "accel" -#~ msgid "pick color of film material from image" -#~ msgstr "בחר צבע חומר הפילם מתוך תמונה" - -#~ msgctxt "accel" -#~ msgid "TCA R" -#~ msgstr "עיוותי צבע R" - -#~ msgctxt "accel" -#~ msgid "TCA B" -#~ msgstr "עיוותי צבע B" - -#~ msgctxt "accel" -#~ msgid "find camera" -#~ msgstr "מצא מצלמה" - -#~ msgctxt "accel" -#~ msgid "find lens" -#~ msgstr "מצא עדשה" - -#~ msgctxt "accel" -#~ msgid "select corrections" -#~ msgstr "בחר תיקונים" - -#~ msgctxt "accel" -#~ msgid "corrections" -#~ msgstr "תיקונים" - -#~ msgctxt "accel" -#~ msgid "geometry" -#~ msgstr "גאומטריה" - -#~ msgctxt "accel" -#~ msgid "gray" -#~ msgstr "אפור" - -#~ msgctxt "accel" -#~ msgid "white" -#~ msgstr "לבן" - -#~ msgid "point tool: draw points" -#~ msgstr "מכחול נקודות: צייר נקודות" - -#~ msgid "line tool: draw lines" -#~ msgstr "מכחול קווים: צייר קוים" - -#~ msgid "curve tool: draw curves" -#~ msgstr "מכחול עקומות: צייר עקומות" - -#~ msgctxt "accel" -#~ msgid "point tool" -#~ msgstr "מכחול נקודות" - -#~ msgctxt "accel" -#~ msgid "line tool" -#~ msgstr "מכחול קווים" - -#~ msgctxt "accel" -#~ msgid "curve tool" -#~ msgstr "מכחול עקומות" - -#~ msgctxt "accel" -#~ msgid "node tool" -#~ msgstr "מכחול צמתים" - -#~ msgctxt "accel" -#~ msgid "blue shift" -#~ msgstr "הסחה לכחול" - -#~ msgctxt "lowpass" -#~ msgid "brightness" -#~ msgstr "עצמת תאורה" - -#~ msgctxt "accel" -#~ msgid "application color space" -#~ msgstr "מרחב צבע לאפליקציה" - -#~ msgctxt "accel" -#~ msgid "interpolation" -#~ msgstr "אינטרפולציה" - -#~ msgid "D max" -#~ msgstr "D max" - -#~ msgctxt "accel" -#~ msgid "luma" -#~ msgstr "לומה" - -#~ msgctxt "accel" -#~ msgid "chroma" -#~ msgstr "כרומה" - -#~ msgctxt "accel" -#~ msgid "linear" -#~ msgstr "לינארי" - -#~ msgctxt "accel" -#~ msgid "gamma" -#~ msgstr "גאמה" - -#~ msgctxt "accel" -#~ msgid "dynamic range" -#~ msgstr "תחום דינאמי" - -#~ msgctxt "accel" -#~ msgid "middle grey luma" -#~ msgstr "לומה לאפור בינוני" - -#~ msgctxt "accel" -#~ msgid "black relative exposure" -#~ msgstr "חשיפה יחסית לשחור" - -#~ msgctxt "accel" -#~ msgid "safety factor" -#~ msgstr "מקדם בטיחות" - -#~ msgctxt "accel" -#~ msgid "noise threshold" -#~ msgstr "סף רעש" - -#~ msgctxt "accel" -#~ msgid "white point" -#~ msgstr "נקודת לבן" - -#~ msgctxt "accel" -#~ msgid "width" -#~ msgstr "רוחב" - -#~ msgid "# shapes:" -#~ msgstr "# צורות:" - -#~ msgctxt "accel" -#~ msgid "retouch tool circle" -#~ msgstr "רטש כלי עיגול" - -#~ msgctxt "accel" -#~ msgid "retouch tool ellipse" -#~ msgstr "רטש כלי אליפסה" - -#~ msgctxt "accel" -#~ msgid "retouch tool path" -#~ msgstr "רטש כלי נתיב" - -#~ msgctxt "accel" -#~ msgid "retouch tool brush" -#~ msgstr "רטש כלי מברשת" - -#~ msgctxt "accel" -#~ msgid "continuous add circle" -#~ msgstr "הוספה רציפה של מעגל" - -#~ msgctxt "accel" -#~ msgid "continuous add ellipse" -#~ msgstr "הוספה רציפה של אליפסה" - -#~ msgctxt "accel" -#~ msgid "continuous add path" -#~ msgstr "הוספה רציפה של נתיב" - -#~ msgctxt "accel" -#~ msgid "continuous add brush" -#~ msgstr "הוספה רציפה של מברשת" - -#~ msgctxt "accel" -#~ msgid "show or hide shapes" -#~ msgstr "הצג או החבא צורות" - -#~ msgid " R " -#~ msgstr " R " - -#~ msgid " G " -#~ msgstr " G " - -#~ msgid " B " -#~ msgstr " B " - -#~ msgctxt "accel" -#~ msgid "white point adjustment" -#~ msgstr "כוונון נקודת לבן" - -#~ msgctxt "accel" -#~ msgid "shadows color correction" -#~ msgstr "תיקון צבע בצללים" - -#~ msgctxt "accel" -#~ msgid "highlights color correction" -#~ msgstr "תיקון צבע בפרטים הבהירים" - -#~ msgctxt "accel" -#~ msgid "soften with" -#~ msgstr "רכך עם" - -#~ msgctxt "accel" -#~ msgid "amount" -#~ msgstr "כמות" - -#~ msgctxt "accel" -#~ msgid "pick primary color" -#~ msgstr "בחר צבע ראשי" - -#~ msgctxt "accel" -#~ msgid "pick secondary color" -#~ msgstr "בחר צבע משני" - -#~ msgctxt "accel" -#~ msgid "shadows-hue" -#~ msgstr "צללים-גוון" - -#~ msgctxt "accel" -#~ msgid "shadows-saturation" -#~ msgstr "צללים-רוויה" - -#~ msgctxt "accel" -#~ msgid "highlights-hue" -#~ msgstr "בהירים-גוון" - -#~ msgctxt "accel" -#~ msgid "balance" -#~ msgstr "איזון" - -#~ msgctxt "accel" -#~ msgid "spot circle tool" -#~ msgstr "מכחול כתם עגול" - -#~ msgctxt "accel" -#~ msgid "spot ellipse tool" -#~ msgstr "מכחול כתם אליפסה" - -#~ msgctxt "accel" -#~ msgid "spot path tool" -#~ msgstr "מכחול כתם נתיב" - -#~ msgctxt "accel" -#~ msgid "tint" -#~ msgstr "גוון" - -#~ msgctxt "accel" -#~ msgid "temperature" -#~ msgstr "טמפרטורה" - -#~ msgctxt "accel" -#~ msgid "presets" -#~ msgstr "פריסטים" - -#~ msgctxt "accel" -#~ msgid "preset/camera neutral" -#~ msgstr "פריסט/מצלמה נייטרלי" - -#~ msgctxt "accel" -#~ msgid "preset/spot" -#~ msgstr "פריסט/כתם" - -#~ msgctxt "white balance" -#~ msgid "camera" -#~ msgstr "מצלמה" - -#~ msgctxt "white balance" -#~ msgid "camera neutral" -#~ msgstr "מצלמה נייטרלי" - -#~ msgctxt "white balance" -#~ msgid "spot" -#~ msgstr "כתם" - -#~ msgctxt "accel" -#~ msgid "base of the logarithm" -#~ msgstr "בסיס הלוגריתם" - -#~ msgctxt "accel" -#~ msgid "color space" -#~ msgstr "מרחב צבע" - -#~ msgid " L " -#~ msgstr " L " - -#~ msgid " a " -#~ msgstr " a " - -#~ msgid " b " -#~ msgstr " b " - -#~ msgid "log" -#~ msgstr "יומן" - -#~ msgid "base of the logarithm" -#~ msgstr "בסיס הלוגריתם" - -#~ msgctxt "accel" -#~ msgid "filter diffusion" -#~ msgstr "דיפוזיית פילטר" - -#~ msgctxt "accel" -#~ msgid "smoothing diameter" -#~ msgstr "קוטר החלקה" - -#~ msgctxt "accel" -#~ msgid "edges refinement or feathering" -#~ msgstr "עידון קצוות עבור כלי הנוצה" - -#~ msgctxt "accel" -#~ msgid "mask quantization" -#~ msgstr "קוונטיזצית מסיכה" - -#~ msgctxt "accel" -#~ msgid "mask exposure compensation" -#~ msgstr "מסך פיצוי חשיפה" - -#~ msgctxt "accel" -#~ msgid "mask contrast compensation" -#~ msgstr "דחיסת ניגודיות של מסיכה" - -#~ msgctxt "accel" -#~ msgid "luminance estimator" -#~ msgstr "מעריך לומיננס" - -#~ msgctxt "accel" -#~ msgid "preserve details" -#~ msgstr "שמר פרטים" - -#~ msgid "mask blending : landscapes" -#~ msgstr "ערבוב מסיכה : אופקי" - -#~ msgid "" -#~ "'no' affects global and local contrast (safe if you only add contrast)\n" -#~ "'guided filter' only affects global contrast and tries to preserve local " -#~ "contrast\n" -#~ "'averaged guided filter' is a geometric mean of both methods" -#~ msgstr "" -#~ "'לא' משפיע על קונטרסט גלובלי ומקומי (בטוח לשימוש אם רק מעלים קונטרסט)\n" -#~ "'פילטר מונחה' משפיע על קונטרסט גלובלי בלבד ומנסה לשמור על קונטרסט מקומי\n" -#~ "'פילטר מונחה ממוצע' הוא ממוצע גיאומטרי של שתי השיטות" - -#~ msgctxt "accel" -#~ msgid "contrast compression" -#~ msgstr "דחיסת ניגודיות" - -#~ msgctxt "accel" -#~ msgid "mid-tones bias" -#~ msgstr "הסחה של טונים בינוניים" - -#~ msgctxt "accel" -#~ msgid "fall-off strength" -#~ msgstr "חוזק הירידה" - -#~ msgctxt "accel" -#~ msgid "horizontal center" -#~ msgstr "מרכז אופקי" - -#~ msgctxt "accel" -#~ msgid "vertical center" -#~ msgstr "מרכז אנכי" - -#~ msgctxt "accel" -#~ msgid "shape" -#~ msgstr "צורה" - -#~ msgctxt "accel" -#~ msgid "width-height ratio" -#~ msgstr "יחס רוחב-גובה" - -#~ msgctxt "accel" -#~ msgid "dithering" -#~ msgstr "מיזוג" - -#~ msgctxt "accel" -#~ msgid "opacity" -#~ msgstr "אטימות" - -#~ msgctxt "accel" -#~ msgid "x offset" -#~ msgstr "הסחה ב x" - -#~ msgctxt "accel" -#~ msgid "y offset" -#~ msgstr "הסחה ב y" - -#~ msgctxt "accel" -#~ msgid "marker" -#~ msgstr "סמן" - -#~ msgctxt "accel" -#~ msgid "scale on" -#~ msgstr "משקול דלוק" - -#~ msgid "X" -#~ msgstr "X" - -#~ msgid "area" -#~ msgstr "שטח" - -#~ msgid "copy all" -#~ msgstr "העתק הכל" - -#~ msgctxt "accel" -#~ msgid "copy all" -#~ msgstr "העתק הכל" - -#~ msgctxt "accel" -#~ msgid "paste all" -#~ msgstr "העתק הכל" - -#~ msgid "existing duplicates" -#~ msgstr "העתקים קיימים" - -#~ msgid "" -#~ "maximum output width\n" -#~ "set to 0 for no scaling" -#~ msgstr "" -#~ "רוחב פלט מקסימלי\n" -#~ "קבע ל 0 ללא התאמת גודל" - -#~ msgid "" -#~ "maximum output height\n" -#~ "set to 0 for no scaling" -#~ msgstr "" -#~ "גובה פלט מקסימלי\n" -#~ "קבע ל 0 ללא התאמת גודל" - -#~ msgid "max size" -#~ msgstr "גודל מקסימלי" - -#~ msgctxt "accel" -#~ msgid "scan for devices" -#~ msgstr "סרוק להתקנים" - -#~ msgid "no supported devices found" -#~ msgstr "לא נמצאו התקנים נתמכים" - -#~ msgid "scan for newly attached devices" -#~ msgstr "סרוק להתקנים שרק עתה חוברו" - -#~ msgid "show only your favourite modules (selected in `more modules' below)" -#~ msgstr "הצג רק מודולים מועדפים (שנבחרו ב 'מודולים נוספים' למטה)" - -#~ msgid "basic group" -#~ msgstr "קבוצה בסיסית" - -#~ msgid "tone group" -#~ msgstr "קבוצת טונים" - -#~ msgid "color group" -#~ msgstr "קבוצת צבע" - -#~ msgid "correction group" -#~ msgstr "קבוצת תיקונים" - -#~ msgid "subset: no module" -#~ msgstr "תת קבוצה: ללא מודול" - -#~ msgid "subset: default modules" -#~ msgstr "תת קבוצה: מודולים ברירת מחדל" - -#~ msgid "workspace: all-purpose" -#~ msgstr "סביבת עבודה: כללי" - -#~ msgid "workspace: landscape & HDR" -#~ msgstr "סביבת עבודה: נוף ו HDR" - -#~ msgid "workspace: architecture & streets" -#~ msgstr "סביבת עבודה: ארכיטקטורה ורחובות" - -#~ msgid "workspace: portrait & beauty" -#~ msgstr "סביבת עבודה: פורטרטים ויופי" - -#~ msgid "workspace: lowlight & high ISO" -#~ msgstr "סביבת עבודה: תאורה חלשה ו ISO גבוהה" - -#~ msgid "subset: creative modules only" -#~ msgstr "תת קבוצה: מודולים יצירתיים בלבד" - -#~ msgid "subset: technical modules only" -#~ msgstr "תת קבוצה: מודולים טכניים בלבד" - -#~ msgid "loading image" -#~ msgstr "טוען תמונה" - -#~ msgid "" -#~ "toggle over/under exposed indication\n" -#~ "right click for options" -#~ msgstr "" -#~ "מתג התראת חשיפת יתר/חסר\n" -#~ "הקלק ימנית לאפשרויות" - -#~ msgid "threshold of what shall be considered underexposed" -#~ msgstr "סף למה שיחשב חשיפת חסר" - -#~ msgid "threshold of what shall be considered overexposed" -#~ msgstr "סף למה שיחשב חשיפת יתר" - -#~ msgid "if set to true, thumb overlay shows filename and some exif data." -#~ msgstr "אם מופעל, כיסוי התמונות הממוזערות יציג שם קובץ וחלק מנתוני ה exif." - -#~ msgid "width of the side panels in pixels" -#~ msgstr "רוחב הפאנלים הצדדיים בפיקסלים" - -#~ msgid "(needs a restart)" -#~ msgstr "(דורש אתחול)" - -#~ msgid "enable the filmstrip in darkroom, tethering and map modes." -#~ msgstr "אפשר סרט שקופיות במצבי עבודה חדר חושך, קשירה, ומפה." - -#~ msgid "enable timeline" -#~ msgstr "אפשר ציר זמן" - -#~ msgid "enable the timeline in lighttable mode." -#~ msgstr "אפשר את ציר הזמן בשולחן האור." - -#~ msgctxt "preferences" -#~ msgid "no scrollbars" -#~ msgstr "ללא פסי גלילה" - -#~ msgctxt "preferences" -#~ msgid "lighttable" -#~ msgstr "שולחן אור" - -#~ msgctxt "preferences" -#~ msgid "lighttable + darkroom" -#~ msgstr "שולחן אור + חדר חושך" - -#~ msgid "auto-apply basecurve" -#~ msgstr "יישם עקום בסיס אוטומטית" - -#~ msgid "use a basecurve by default (needs a restart)" -#~ msgstr "השתמש בעקום הבסיס כברירת מחדל (מצריך אתחול)" - -#~ msgid "" -#~ "use the per-camera basecurve by default instead of the generic " -#~ "manufacturer one if there is one available (needs a restart)" -#~ msgstr "" -#~ "השתמש בעקום הבסיס המוגדר לכל מצלמה כברירת מחדל במקום העקום הגנרי שהגדיר " -#~ "היצרן אם קיים כזה (מצריך אתחול)" - -#~ msgid "darktable - error locking database" -#~ msgstr "שגיאה בנעילת מסד נתונים - darktable" - -#~ msgid "reload selected xmp files" -#~ msgstr "טען מחדש קבצי xmp" - -#~ msgid "double click to reset" -#~ msgstr "הקלקה כפולה לאתחול" - -#~ msgid "ctrl+scroll to set shape opacity (%d%%)" -#~ msgstr "לחץ ctrl+scroll לקבוע את אטימות הצורה (%d%%)" - -#~ msgid "[facebook] unexpected URL format\n" -#~ msgstr "[facebook] unexpected URL format\n" - -#~ msgid "" -#~ "step 1: a new window or tab of your browser should have been loaded. you " -#~ "have to login into your facebook account there and authorize darktable to " -#~ "upload photos before continuing." -#~ msgstr "" -#~ "שלב 1: פתח חלון או כרטיסיה חדשה בדפדפן. היכנס לחשבון הפייסבוק שלך ותן " -#~ "הרשאה ל darktable להעלות תמונות לפני מעבר לשלב הבא." - -#~ msgid "" -#~ "step 2: paste your browser URL and click the OK button once you are done." -#~ msgstr "שלב 2: הדבק את ה URL מהדפדפן ולחץ על OK בסיום." - -#~ msgid "facebook authentication" -#~ msgstr "אימות facebook" - -#~ msgid "URL:" -#~ msgstr "URL:" - -#~ msgid "please enter the validation URL" -#~ msgstr "אנה הכנס את ה URL לאימות" - -#~ msgid "the given URL is not valid, it should look like: " -#~ msgstr "ה URL שהוכנס לא חוקי, הוא צריך להיראות כך: " - -#~ msgid "authentication successful" -#~ msgstr "אימות הצליח" - -#~ msgid "" -#~ "a new window or tab of your browser should have been loaded. you have to " -#~ "login into your facebook account there and authorize darktable to upload " -#~ "photos before continuing." -#~ msgstr "" -#~ "אמור היה להפתח חלון או כרטיסיה חדשה בדפדפן. היכנס לחשבון הפייסבוק שלך ותן " -#~ "הרשאה ל darktable להעלות תמונות לפני שתמשיך." - -#~ msgid "new account" -#~ msgstr "חשבון חדש" - -#~ msgid "other account" -#~ msgstr "חשבון אחר" - -#~ msgid "unable to retrieve the album list" -#~ msgstr "לא ניתן לאחזר את רשימת האלבומים" - -#~ msgid "facebook webalbum" -#~ msgstr "אלבום רשת facebook" - -#~ msgid "summary" -#~ msgstr "תמצית" - -#~ msgid "privacy" -#~ msgstr "פרטיות" - -#~ msgid "public" -#~ msgstr "פומבי" - -#~ msgid "friends of friends" -#~ msgstr "חברים של חברים" - -#~ msgid "unable to create album, no title provided" -#~ msgstr "לא ניתן ליצר אלבום, לא סופק שם לאלבום" - -#~ msgid "unable to create album" -#~ msgstr "יצירת אלבום נכשלה" - -#~ msgid "unable to export photo to webalbum" -#~ msgstr "ייצוא תמונה לאלבום הרשת כשל" - -#~ msgid "%d/%d exported to facebook webalbum" -#~ msgid_plural "%d/%d exported to facebook webalbum" -#~ msgstr[0] "ייצוא %d/%d לאלבום פייסבוק" -#~ msgstr[1] "ייצוא %d/%d לאלבום פייסבוק" - -#~ msgid "flickr authentication: %s" -#~ msgstr "flickr authentication: %s" - -#~ msgid "" -#~ "step 1: a new window or tab of your browser should have been loaded. you " -#~ "have to login into your flickr account there and authorize darktable to " -#~ "upload photos before continuing." -#~ msgstr "" -#~ "שלב 1: פתח חלון או כרטיסיה חדשה בדפדפן. היכנס לחשבון ה flickr שלך ותן " -#~ "הרשאה ל darktable להעלות תמונות לפני מעבר לשלב הבא." - -#~ msgid "step 2: click the OK button once you are done." -#~ msgstr "שלב 2: לחץ על OK לכשתסיים." - -#~ msgid "flickr authentication" -#~ msgstr "אימות flickr" - -#~ msgid "flickr webalbum" -#~ msgstr "אלבום רשת flickr" - -#~ msgid "without album" -#~ msgstr "ללא אלבום" - -#~ msgid "flickr user" -#~ msgstr "שם משתמש ל flickr" - -#~ msgid "flickr login" -#~ msgstr "כניסה ל flickr" - -#~ msgid "friends + family" -#~ msgstr "משפחה + חברים" - -#~ msgid "photosets" -#~ msgstr "אלבומים זמינים" - -#~ msgid "my new photoset" -#~ msgstr "האלבום החדש שלי" - -#~ msgid "could not upload to flickr!" -#~ msgstr "העלאה ל flickr נכשלה!" - -#~ msgid "%d/%d exported to flickr webalbum" -#~ msgid_plural "%d/%d exported to flickr webalbum" -#~ msgstr[0] "יוצא %d/%d לאלבום רשת flickr" -#~ msgstr[1] "יוצאו %d/%d לאלבום רשת flickr" - -#~ msgid "" -#~ "step 1: a new window or tab of your browser should have been loaded. you " -#~ "have to login into your google account there and authorize darktable to " -#~ "upload photos before continuing." -#~ msgstr "" -#~ "שלב 1: אמור להיפתח חלון או כרטיסיה חדשה בדפדפן. היכנס לחשבון ה google שלך " -#~ "ותן הרשאה ל darktable להעלות תמונות לפני מעבר לשלב הבא." - -#~ msgid "" -#~ "step 2: paste the verification code shown to you in the browser and click " -#~ "the OK button once you are done." -#~ msgstr "שלב 2: הדבק את קוד האימות המופיע בדפדפן ולחץ על OK לכשתסיים." - -#~ msgid "google authentication" -#~ msgstr "אימות google" - -#~ msgid "verification code:" -#~ msgstr "קוד אימות:" - -#~ msgid "please enter the verification code" -#~ msgstr "אנה הכנס קוד אימות" - -#~ msgid "google photos" -#~ msgstr "google photos" - -#~ msgid "unable to export to google photos album" -#~ msgstr "לא ניתן ליצא תמונות לאלבום google" - -#~ msgid "%d/%d exported to google photos album" -#~ msgid_plural "%d/%d exported to google photos album" -#~ msgstr[0] "יוצא %d/%d לאלבום רשת google" -#~ msgstr[1] "יוצאו %d/%d לאלבום רשת google" - -#~ msgid "local laplacian: inconsistent output" -#~ msgstr "לפלאסיין מקומי: פלט לא עקבי" - -#~ msgid "lift/gamma/gain controls as seen in video editors" -#~ msgstr "פקדים עילוי/גאמה/הגבר כפי שנראים בעורכי ווידאו" - -#~ msgctxt "accel" -#~ msgid "controls" -#~ msgstr "בקרים" - -#~ msgid "chroma (use on 1st instance)" -#~ msgstr "כרומה (הפעל על השלב הראשון)" - -#~ msgid "luma (use on 2nd instance)" -#~ msgstr "לומה (הפעל על השלב השני)" - -#~ msgid "07 EV dynamic range" -#~ msgstr "תחום דינאמי 07 EV" - -#~ msgid "09 EV dynamic range" -#~ msgstr "תחום דינאמי 09 EV" - -#~ msgid "11 EV dynamic range" -#~ msgstr "תחום דינאמי 11 EV" - -#~ msgid "13 EV dynamic range" -#~ msgstr "תחום דינאמי 13 EV" - -#~ msgid "15 EV (backlighting)" -#~ msgstr "15 EV (תאורה אחורית)" - -#~ msgid "17 EV (HDR)" -#~ msgstr "17 EV (HDR)" - -#~ msgctxt "modulename" -#~ msgid "gamma" -#~ msgstr "גאמא" - -#~ msgctxt "accel" -#~ msgid "compression" -#~ msgstr "דחיסה" - -#~ msgctxt "accel" -#~ msgid "auto scale" -#~ msgstr "שנה גודל אוטומטית" - -#~ msgid "filter order" -#~ msgstr "סדר פילטרים" - -#~ msgid "filter order of gaussian blur" -#~ msgstr "סדר פילטרים לטשטוש גאוסייני" - -#~ msgid "invalid png header from %s" -#~ msgstr "תחילית קובץ png לא חוקית מ %s" - -#~ msgid "hald cluts (png)" -#~ msgstr "hald cluts (png)" - -#~ msgid "3D lut (cube)" -#~ msgstr "3D lut (cube)" - -#~ msgid "select a png (haldclut) or a cube file" -#~ msgstr "בחר קובץ (png (haldclut או קובץ cube" - -#~ msgid "REC.709" -#~ msgstr "REC.709" - -#~ msgid "lin sRGB/REC.709" -#~ msgstr "lin sRGB/REC.709" - -#~ msgctxt "accel" -#~ msgid "shadows range" -#~ msgstr "טווח צללים" - -#~ msgid "pick GUI color from image" -#~ msgstr "בחר צבע לממשק מהתמונה" - -#~ msgctxt "size" -#~ msgid "image" -#~ msgstr "תמונה" - -#~ msgid "import film" -#~ msgstr "ייבא פילם" - -#~ msgid "copyright" -#~ msgstr "זכויות יוצרים" - -#~ msgctxt "accel" -#~ msgid "delete" -#~ msgstr "מחק" - -#~ msgid "delete branch" -#~ msgstr "מחק ענף" - -#~ msgid "'|' character is not allowed to create a tag. aborting." -#~ msgstr "סימן '|' אינו מותר ביצירת תג, מבטל." - -#~ msgctxt "accel" -#~ msgid "rate 0" -#~ msgstr "דרג 0" - -#~ msgctxt "accel" -#~ msgid "rate 1" -#~ msgstr "דרג 1" - -#~ msgctxt "accel" -#~ msgid "rate 2" -#~ msgstr "דרג 2" - -#~ msgctxt "accel" -#~ msgid "rate 3" -#~ msgstr "דרג 3" - -#~ msgctxt "accel" -#~ msgid "rate 4" -#~ msgstr "דרג 4" - -#~ msgctxt "accel" -#~ msgid "rate 5" -#~ msgstr "דרג 5" - -#~ msgctxt "accel" -#~ msgid "color red" -#~ msgstr "צבע אדום" - -#~ msgctxt "accel" -#~ msgid "color yellow" -#~ msgstr "צבע צהוב" - -#~ msgctxt "accel" -#~ msgid "color purple" -#~ msgstr "צבע סגול" - -#~ msgid "show image overlays" -#~ msgstr "הצג את ציפויי התמונה" - -#~ msgid "you have reached the start of your selection (%d image)" -#~ msgid_plural "you have reached the start of your selection (%d images)" -#~ msgstr[0] "הגעת לתחילת המבחר (תמונה %d )" -#~ msgstr[1] "הגעת לתחילת המבחר (תמונות %d )" - -#~ msgid "you have reached the end of your selection (%d image)" -#~ msgid_plural "you have reached the end of your selection (%d images)" -#~ msgstr[0] "הגעת לסוף המבחר (תמונה %d )" -#~ msgstr[1] "הגעת לסוף המבחר (תמונות %d )" - -#~ msgctxt "accel" -#~ msgid "navigate up" -#~ msgstr "נווט מעלה" - -#~ msgctxt "accel" -#~ msgid "navigate down" -#~ msgstr "נווט מטה" - -#~ msgctxt "accel" -#~ msgid "navigate page up" -#~ msgstr "נווט עמוד מעלה" - -#~ msgctxt "accel" -#~ msgid "navigate page down" -#~ msgstr "נווט עמוד מטה" - -#~ msgctxt "accel" -#~ msgid "scroll up" -#~ msgstr "גלול מעלה" - -#~ msgctxt "accel" -#~ msgid "scroll left" -#~ msgstr "גלול שמאלה" - -#~ msgctxt "accel" -#~ msgid "scroll right" -#~ msgstr "גלול ימינה" - -#~ msgctxt "accel" -#~ msgid "scroll center" -#~ msgstr "גלול למרכז" - -#~ msgctxt "accel" -#~ msgid "toggle timeline" -#~ msgstr "מתג ציר זמן" - -#~ msgctxt "accel" -#~ msgid "shadows/highlights balance" -#~ msgstr "איזון צללים/ בהירים" - -#~ msgctxt "preferences" -#~ msgid "import" -#~ msgstr "ייבוא" - -#~ msgid "max rgb" -#~ msgstr "max rgb" - -#~ msgid "sum rgb" -#~ msgstr "sum rgb" - -#~ msgid "norm rgb" -#~ msgstr "norm rgb" - -#~ msgid "07 EV (studio)" -#~ msgstr "07 EV (סטודיו)" - -#~ msgid "09 EV (indoors)" -#~ msgstr "09 EV (בפנים)" - -#~ msgid "13 EV (outdoors)" -#~ msgstr "13 EV (בחוץ)" - -#~ msgid "-8 EV : blacks" -#~ msgstr "-8 EV : שחורים" - -#~ msgid "-7 EV : deep shadows" -#~ msgstr "-7 EV : צללים עמוקים" - -#~ msgid "-6 EV : shadows" -#~ msgstr "-6 EV : צללים" - -#~ msgid "-5 EV : light shadows" -#~ msgstr "-5 EV : צללים רדודים" - -#~ msgid "-4 EV : midtones" -#~ msgstr "-4 EV : טונים בינונים" - -#~ msgid "-3 EV : dark highlights" -#~ msgstr "-3 EV : כהים פרטים בהירים" - -#~ msgid "-2 EV : highlights" -#~ msgstr "-2 EV : בהירים" - -#~ msgid "-1 EV : whites" -#~ msgstr "-1 EV : לבנים" - -#~ msgid "+0 EV : speculars" -#~ msgstr "+0 EV : הברקות" - -#~ msgid "discard" -#~ msgstr "השלך" - -#~ msgctxt "styles" -#~ msgid "import" -#~ msgstr "ייבא" - -#~ msgctxt "verb" -#~ msgid "import" -#~ msgstr "ייבא" - -#~ msgctxt "verb" -#~ msgid "export" -#~ msgstr "ייצא" - -#~ msgid "diameter of the blur in percent of the largest image size" -#~ msgstr "קוטר הטשטוש באחוזים מהתמונה הגדולה ביותר" - -#~ msgid "" -#~ "the image will first be processed in full resolution, and downscaled at " -#~ "the very end. this can result in better quality sometimes, but will " -#~ "always be slower." -#~ msgstr "" -#~ "התמונה תעובד בתחילה ברזולוציה מלאה, ואז תוקטן ממש לקראת הסוף. לתוצאה " -#~ "המתקבלת סיכוי לצאת באיכות גבוהה יותר, אך תמיד לאט יותר." - -#~ msgid "" -#~ "activate blending: uniformly, with drawn mask, with parametric mask, or " -#~ "combination of both" -#~ msgstr "" -#~ "הפעל ערבוב: באופן אחיד, עם מסיכה מצוירת, עם מסיכה פרמטרית, או שילוב של " -#~ "שניהם" - -#~ msgid "ctrl+scroll to set shape opacity, shift+scroll to set feather size" -#~ msgstr "" -#~ "לחץ ctrl+scroll לקביעת את אטימות הצורה, shift+scroll לקביעת גודל נוצה " - -#~ msgid "drop box" -#~ msgstr "תיבה " - -#~ msgid "B/W" -#~ msgstr "B/W" - -#~ msgid "radius of the patches to match. increase for more sharpness" -#~ msgstr "רדיוס הטלאים להתאמה. הגבר ליותר חדות" - -#~ msgid "click and drag to add point" -#~ msgstr "הקלק וגרור להוסיף נקודה" - -#~ msgid "click to add line" -#~ msgstr "לחץ להוסיף שורה" - -#~ msgctxt "sharpen" -#~ msgid "sharpen" -#~ msgstr "חדד" - -#~ msgid "high contrast" -#~ msgstr "ניגודיות גבוהה" - -#~ msgid "scale chroma" -#~ msgstr "משקל כרומה" - -#~ msgctxt "scale" -#~ msgid "manual" -#~ msgstr "ידני" - -#~ msgid "automatic in XYZ" -#~ msgstr "אוטומטי ב XYZ" - -#~ msgid "automatic in RGB" -#~ msgstr "אוטומטי ב RGB" - -#~ msgid "" -#~ "attached tags,\n" -#~ "doubleclick to detach" -#~ msgstr "" -#~ "צרף תגיות,\n" -#~ "הקלקה כפולה לניתוק" - -#~ msgid "" -#~ "related tags,\n" -#~ "doubleclick to attach" -#~ msgstr "" -#~ "תגיות קשורות,\n" -#~ "הקלקה כפולה לניתוק" - -#~ msgid "you are making a mistake!" -#~ msgstr "את/ה עושה טעות!" - -#~ msgid "_yes, i understood. please let me suffer by using 32-bit darktable." -#~ msgstr "_כן אני מבין. אנה תנו לי לסבול עם darktable ב 32 ביט" - -#~ msgid "" -#~ "warning!\n" -#~ "you are using a 32-bit build of darktable.\n" -#~ "the 32-bit build has severely limited virtual address space.\n" -#~ "we have had numerous reports that darktable exhibits sporadic issues and " -#~ "crashes when using 32-bit builds.\n" -#~ "we strongly recommend you switch to a proper 64-bit build.\n" -#~ "otherwise, you are GUARANTEED to experience issues which cannot be " -#~ "fixed.\n" -#~ msgstr "" -#~ "אזהרה!\n" -#~ "את/ה משתמש/ת בגרסת 32 ביט של darktable.\n" -#~ "לגרסת 32 ביט מרחב כתובות זיכרון מוגבל ביותר.\n" -#~ "יש לנו דיווחים רבים ש darktable מתנהג בצורה בעייתית וקורס בגרסת 32 ביט.\n" -#~ "אנחנו ממליצים בחום לעבור לגרסה הנכונה של 64 ביט.\n" -#~ "אחרת מובטח לך לסבול מבעיות שאינן פתירות.\n" - -#~ msgid "prepare printing image %d on `%s'" -#~ msgstr "מתכונן להדפיס תמונה %d על `%s'" - -#~ msgid "ICC profiles in %s/color/out or %s/color/out" -#~ msgstr "פרופיל ICC ב %s/color/out או %s/color/out" - -#~ msgid "color checker lut" -#~ msgstr "טבלת בוחר צבע" - -#~ msgctxt "accel" -#~ msgid "disable tools" -#~ msgstr "נטרל כלים" - -#~ msgid "dark skin :A0" -#~ msgstr "עור כהה :A0" - -#~ msgid "light skin :A1" -#~ msgstr "עור בהיר :A1" - -#~ msgid "blue sky :A2" -#~ msgstr "שמיים כחולים :A2" - -#~ msgid "foliage :A3" -#~ msgstr "עלווה :A3" - -#~ msgid "blue flower :A4" -#~ msgstr "פרח כחול :A4" - -#~ msgid "bluish green :A5" -#~ msgstr "ירוק כחלחל :A5" - -#~ msgid "purple red :B1" -#~ msgstr "סגול אדום :B1" - -#~ msgid "moderate red :B2" -#~ msgstr "אדום צנוע :B2" - -#~ msgid "purple :B3" -#~ msgstr "סגול :B3" - -#~ msgid "orange yellow :B5" -#~ msgstr "כתום צהוב :B5" - -#~ msgid "blue :C0" -#~ msgstr "כחול :C0" - -#~ msgid "green :C1" -#~ msgstr "ירוק :C1" - -#~ msgid "red :C2" -#~ msgstr "אדום :C2" - -#~ msgid "yellow :C3" -#~ msgstr "צהוב :C3" - -#~ msgid "magenta :C4" -#~ msgstr "מג'נטה :C4" - -#~ msgid "cyan :C5" -#~ msgstr "ציאן :C5" - -#~ msgid "white :D0" -#~ msgstr "לבן :D0" - -#~ msgid "neutral 8 :D1" -#~ msgstr "ניטרלי 8 :D1" - -#~ msgid "neutral 65 :D2" -#~ msgstr "ניטרלי 65 :D2" - -#~ msgid "neutral 5 :D3" -#~ msgstr "ניטרלי 5 :D3" - -#~ msgid "neutral 35 :D4" -#~ msgstr "ניטרלי 35 :D4" - -#~ msgid "black :D5" -#~ msgstr "שחור :D5" - -#~ msgid "select patch `%s' (altered patches are marked with an outline)" -#~ msgstr "בחר טלאי `%s' (טלאים ששונו מסומנים בקו מתאר)" - -#~ msgid "[init_f] `%s' color matrix not found for 4bayer image!\n" -#~ msgstr "[init_f] `%s' color matrix not found for 4bayer image!\n" - -#~ msgctxt "accel" -#~ msgid "apply style from popup menu" -#~ msgstr "יישם סגנון מתפריט קופץ" - -#~ msgid "clear selection (ctrl-shift-a)" -#~ msgstr "נקה בחירה (ctrl-shift-a)" - -#~ msgctxt "preferences" -#~ msgid "gnome keyring" -#~ msgstr "gnome keyring" - -#~ msgid "[colorspaces] `%s' color matrix not found for 4bayer image!\n" -#~ msgstr "[מרחב צבע] `%s' לא נמצאה מטריצת צבע עבור תמונת 4bayer!\n" - -#~ msgid "[temperature] `%s' color matrix not found for 4bayer image!\n" -#~ msgstr "[טמפרטורה] מטריצת צבע `%s' לא נמצאה עבור תמונה 4bayer! \n" - -#~ msgid "select text color" -#~ msgstr "בחר צבע כיתוב" diff -Nru darktable-4.4.2/po/hu.po darktable-4.6.1/po/hu.po --- darktable-4.4.2/po/hu.po 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/po/hu.po 2024-02-16 17:31:09.000000000 +0000 @@ -2,8 +2,8 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-31 13:24+0200\n" -"PO-Revision-Date: 2023-06-05 17:39+0200\n" +"POT-Creation-Date: 2023-11-30 19:32+0100\n" +"PO-Revision-Date: 2023-12-09 11:45+0100\n" "Last-Translator: Báthory Péter <bathory86p@gmail.com>\n" "Language-Team: \n" "Language: hu\n" @@ -11,276 +11,240 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 3.2.2\n" +"X-Generator: Poedit 3.4\n" "X-Poedit-Basepath: ..\n" "X-Poedit-SearchPath-0: .\n" "X-Poedit-SearchPath-1: po\n" "X-Poedit-SearchPath-2: src\n" -#: ../build/bin/conf_gen.h:172 ../build/bin/preferences_gen.h:7632 +#: ../build/bin/conf_gen.h:174 msgctxt "preferences" msgid "first instance" msgstr "első példány" -#: ../build/bin/conf_gen.h:173 ../build/bin/preferences_gen.h:7637 -#: ../build/bin/preferences_gen.h:7656 +#: ../build/bin/conf_gen.h:175 ../build/bin/preferences_gen.h:7922 msgctxt "preferences" msgid "last instance" msgstr "utolsó példány" -#: ../build/bin/conf_gen.h:240 ../build/bin/conf_gen.h:346 -#: ../build/bin/conf_gen.h:356 ../build/bin/conf_gen.h:1186 -#: ../build/bin/conf_gen.h:1202 ../build/bin/preferences_gen.h:4137 -#: ../build/bin/preferences_gen.h:4156 ../build/bin/preferences_gen.h:4232 -#: ../build/bin/preferences_gen.h:6706 ../build/bin/preferences_gen.h:6834 -#: ../build/bin/preferences_gen.h:6899 +#: ../build/bin/conf_gen.h:252 ../build/bin/conf_gen.h:352 +#: ../build/bin/conf_gen.h:362 ../build/bin/conf_gen.h:1239 +#: ../build/bin/conf_gen.h:1255 ../build/bin/conf_gen.h:1275 +#: ../build/bin/preferences_gen.h:4747 ../build/bin/preferences_gen.h:4885 msgctxt "preferences" msgid "never" msgstr "soha" -#: ../build/bin/conf_gen.h:241 ../build/bin/preferences_gen.h:6711 +#: ../build/bin/conf_gen.h:253 msgctxt "preferences" msgid "once a month" msgstr "havonta egyszer" -#: ../build/bin/conf_gen.h:242 ../build/bin/preferences_gen.h:6716 -#: ../build/bin/preferences_gen.h:6745 +#: ../build/bin/conf_gen.h:254 ../build/bin/preferences_gen.h:7138 msgctxt "preferences" msgid "once a week" msgstr "hetente egyszer" -#: ../build/bin/conf_gen.h:243 ../build/bin/preferences_gen.h:6721 +#: ../build/bin/conf_gen.h:255 msgctxt "preferences" msgid "once a day" msgstr "naponta egyszer" -#: ../build/bin/conf_gen.h:244 ../build/bin/preferences_gen.h:6726 +#: ../build/bin/conf_gen.h:256 msgctxt "preferences" msgid "on close" msgstr "bezáráskor" -#: ../build/bin/conf_gen.h:280 ../build/bin/conf_gen.h:1179 -#: ../build/bin/conf_gen.h:1195 ../build/bin/preferences_gen.h:4102 -#: ../build/bin/preferences_gen.h:4197 ../build/bin/preferences_gen.h:5748 +#: ../build/bin/conf_gen.h:292 ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1248 ../build/bin/conf_gen.h:1276 msgctxt "preferences" msgid "small" msgstr "kicsi" -#: ../build/bin/conf_gen.h:281 ../build/bin/conf_gen.h:393 -#: ../build/bin/preferences_gen.h:5753 ../build/bin/preferences_gen.h:5782 -#: ../build/bin/preferences_gen.h:5969 ../build/bin/preferences_gen.h:5998 +#: ../build/bin/conf_gen.h:293 ../build/bin/conf_gen.h:405 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6223 msgctxt "preferences" msgid "default" msgstr "alapértelmezett" -#: ../build/bin/conf_gen.h:282 ../build/bin/conf_gen.h:2814 -#: ../build/bin/preferences_gen.h:5758 +#: ../build/bin/conf_gen.h:294 ../build/bin/conf_gen.h:2904 msgctxt "preferences" msgid "large" msgstr "nagy" -#: ../build/bin/conf_gen.h:283 ../build/bin/preferences_gen.h:5763 +#: ../build/bin/conf_gen.h:295 msgctxt "preferences" msgid "unrestricted" msgstr "korlátlan" -#: ../build/bin/conf_gen.h:347 ../build/bin/preferences_gen.h:6839 +#: ../build/bin/conf_gen.h:353 msgctxt "preferences" msgid "after edit" msgstr "szerkesztés után" -#: ../build/bin/conf_gen.h:348 ../build/bin/preferences_gen.h:6844 -#: ../build/bin/preferences_gen.h:6863 +#: ../build/bin/conf_gen.h:354 ../build/bin/preferences_gen.h:7224 msgctxt "preferences" msgid "on import" msgstr "importálásnál" -#: ../build/bin/conf_gen.h:357 ../build/bin/conf_gen.h:1178 -#: ../build/bin/conf_gen.h:1194 ../build/bin/conf_gen.h:3214 -#: ../build/bin/preferences_gen.h:4097 ../build/bin/preferences_gen.h:4192 -#: ../build/bin/preferences_gen.h:5112 ../build/bin/preferences_gen.h:5166 -#: ../build/bin/preferences_gen.h:6904 +#: ../build/bin/conf_gen.h:363 ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1247 ../build/bin/conf_gen.h:3300 +#: ../build/bin/preferences_gen.h:5644 msgctxt "preferences" msgid "always" msgstr "mindig" -#: ../build/bin/conf_gen.h:358 ../build/bin/preferences_gen.h:6909 -#: ../build/bin/preferences_gen.h:6928 +#: ../build/bin/conf_gen.h:364 ../build/bin/preferences_gen.h:7259 msgctxt "preferences" msgid "only large entries" msgstr "csak a nagy elemeké" -#: ../build/bin/conf_gen.h:378 ../build/bin/preferences_gen.h:8069 +#: ../build/bin/conf_gen.h:390 msgctxt "preferences" msgid "sensitive" msgstr "nagybetűérzékeny" -#: ../build/bin/conf_gen.h:379 ../build/bin/preferences_gen.h:8074 -#: ../build/bin/preferences_gen.h:8093 +#: ../build/bin/conf_gen.h:391 ../build/bin/preferences_gen.h:8133 msgctxt "preferences" msgid "insensitive" msgstr "nem nagybetűérzékeny" -#: ../build/bin/conf_gen.h:394 ../build/bin/preferences_gen.h:5974 +#: ../build/bin/conf_gen.h:406 msgctxt "preferences" msgid "multiple GPUs" msgstr "több GPU" -#: ../build/bin/conf_gen.h:395 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/conf_gen.h:407 msgctxt "preferences" msgid "very fast GPU" msgstr "nagyon gyors GPU" -#: ../build/bin/conf_gen.h:403 ../build/bin/preferences_gen.h:6040 -#: ../build/bin/preferences_gen.h:6074 +#: ../build/bin/conf_gen.h:755 msgctxt "preferences" -msgid "nothing" -msgstr "semmi" - -#: ../build/bin/conf_gen.h:404 ../build/bin/preferences_gen.h:6045 -msgctxt "preferences" -msgid "memory size" -msgstr "memória mérete" - -#: ../build/bin/conf_gen.h:405 ../build/bin/preferences_gen.h:6050 -msgctxt "preferences" -msgid "memory transfer" -msgstr "memóriaátvitel" - -#: ../build/bin/conf_gen.h:406 ../build/bin/preferences_gen.h:6055 -msgctxt "preferences" -msgid "memory size and transfer" -msgstr "memóriaméret és -átvitel" - -#: ../build/bin/conf_gen.h:706 ../build/bin/preferences_gen.h:8257 -#: ../build/bin/preferences_gen.h:8281 -msgctxt "preferences" -msgid "id" -msgstr "id" +msgid "import time" +msgstr "importálás ideje" -#: ../build/bin/conf_gen.h:707 ../build/bin/preferences_gen.h:8262 +#: ../build/bin/conf_gen.h:756 msgctxt "preferences" -msgid "folder" -msgstr "könyvtár" +msgid "folder name" +msgstr "mappa neve" -#: ../build/bin/conf_gen.h:721 +#: ../build/bin/conf_gen.h:770 msgctxt "preferences" msgid "RGB" msgstr "RGB" -#: ../build/bin/conf_gen.h:722 +#: ../build/bin/conf_gen.h:771 msgctxt "preferences" msgid "Lab" msgstr "Lab" -#: ../build/bin/conf_gen.h:723 +#: ../build/bin/conf_gen.h:772 msgctxt "preferences" msgid "LCh" msgstr "LCh" -#: ../build/bin/conf_gen.h:724 +#: ../build/bin/conf_gen.h:773 msgctxt "preferences" msgid "HSL" msgstr "HSL" -#: ../build/bin/conf_gen.h:725 +#: ../build/bin/conf_gen.h:774 msgctxt "preferences" msgid "Hex" msgstr "Hex" -#: ../build/bin/conf_gen.h:726 ../build/bin/conf_gen.h:1830 -#: ../build/bin/conf_gen.h:2488 ../build/bin/conf_gen.h:2790 -#: ../build/bin/conf_gen.h:3044 ../build/bin/preferences_gen.h:5577 -#: ../build/bin/preferences_gen.h:6561 +#: ../build/bin/conf_gen.h:775 ../build/bin/conf_gen.h:1916 +#: ../build/bin/conf_gen.h:2578 ../build/bin/conf_gen.h:2880 +#: ../build/bin/conf_gen.h:3136 msgctxt "preferences" msgid "none" msgstr "nincs" -#: ../build/bin/conf_gen.h:734 +#: ../build/bin/conf_gen.h:783 msgctxt "preferences" msgid "mean" msgstr "középérték" -#: ../build/bin/conf_gen.h:735 +#: ../build/bin/conf_gen.h:784 msgctxt "preferences" msgid "min" msgstr "min" -#: ../build/bin/conf_gen.h:736 +#: ../build/bin/conf_gen.h:785 msgctxt "preferences" msgid "max" msgstr "max" -#: ../build/bin/conf_gen.h:924 +#: ../build/bin/conf_gen.h:973 msgid "select only new pictures" msgstr "csak az új képek kiválasztása" -#: ../build/bin/conf_gen.h:925 +#: ../build/bin/conf_gen.h:974 msgid "only select images that have not already been imported" msgstr "csak a még importálatlan képek kiválasztása" -#: ../build/bin/conf_gen.h:930 -msgid "ignore JPEG images" -msgstr "JPEG fájlok figyelmen kívül hagyása" +#: ../build/bin/conf_gen.h:979 +msgid "ignore non-raw images" +msgstr "nem raw képek mellőzése" -#: ../build/bin/conf_gen.h:931 +#: ../build/bin/conf_gen.h:980 msgid "" -"when having raw+JPEG images together in one directory it makes no sense to " -"import both. with this flag one can ignore all JPEGs found." +"if enabled, only raw files will be allowed to import. non-raw files will not " +"be visible in the dialog and will not be imported." msgstr "" -"ha egy könyvtárban raw+JPEG fájlok együtt találhatóak, nincs értelme " -"mindkettőt importálni. ezzel a beállítással a JPEG-ek figyelmen kívül " -"hagyhatóak." +"ha engedélyezve van, csak raw fájlokat fog engedni importálni. a nem raw " +"fájlok nem lesznek láthatóak a dialógusablakban és nem is lesznek importálva." -#: ../build/bin/conf_gen.h:936 +#: ../build/bin/conf_gen.h:985 msgid "apply metadata" msgstr "metaadatok alkalmazása" -#: ../build/bin/conf_gen.h:937 +#: ../build/bin/conf_gen.h:986 msgid "apply some metadata to all newly imported images." msgstr "néhány metaadat beállítása az újonnan importált képekre." -#: ../build/bin/conf_gen.h:942 +#: ../build/bin/conf_gen.h:991 msgid "recursive directory" msgstr "alkönyvtárak rekurzívan" -#: ../build/bin/conf_gen.h:943 +#: ../build/bin/conf_gen.h:992 msgid "recursive directory traversal when importing filmrolls" msgstr "alkönyvtárak bejárása filmszalag importálásánál" -#: ../build/bin/conf_gen.h:948 +#: ../build/bin/conf_gen.h:997 msgid "creator to be applied when importing" msgstr "importálásnál beállítandó alkotó" -#: ../build/bin/conf_gen.h:954 +#: ../build/bin/conf_gen.h:1003 msgid "publisher to be applied when importing" msgstr "importálásnál beállítandó kiadó" -#: ../build/bin/conf_gen.h:960 +#: ../build/bin/conf_gen.h:1009 msgid "rights to be applied when importing" msgstr "importálásnál beállítandó szerzői jog" -#: ../build/bin/conf_gen.h:966 +#: ../build/bin/conf_gen.h:1015 msgid "comma separated tags to be applied when importing" msgstr "importálásnál beállítandó címkék, vesszővel elválasztva" -#: ../build/bin/conf_gen.h:972 +#: ../build/bin/conf_gen.h:1021 msgid "import tags from XMP" msgstr "címkék importálása XMP-ből" -#: ../build/bin/conf_gen.h:998 +#: ../build/bin/conf_gen.h:1051 msgid "initial rating" msgstr "kezdeti értékelés" -#: ../build/bin/conf_gen.h:999 +#: ../build/bin/conf_gen.h:1052 msgid "initial star rating for all images when importing a filmroll" msgstr "kezdeti csillagos értékelés minden importált képre" -#: ../build/bin/conf_gen.h:1004 +#: ../build/bin/conf_gen.h:1057 msgid "ignore EXIF rating" msgstr "EXIF-értékelés figyelmen kívül hagyása" -#: ../build/bin/conf_gen.h:1005 +#: ../build/bin/conf_gen.h:1058 msgid "" "ignore EXIF rating. if not set and EXIF rating is found, it overrides " "'initial rating'" @@ -288,19 +252,19 @@ "EXIF-értékelés figyelmen kívül hagyása. ha nincs beállítva, és értékelés " "található az EXIF-ben, felülírja a „kezdeti értékelést”" -#: ../build/bin/conf_gen.h:1010 +#: ../build/bin/conf_gen.h:1063 msgid "import job" msgstr "importálási feladat" -#: ../build/bin/conf_gen.h:1011 +#: ../build/bin/conf_gen.h:1064 msgid "name of the import job" msgstr "importálási feladat neve" -#: ../build/bin/conf_gen.h:1016 +#: ../build/bin/conf_gen.h:1069 msgid "override today's date" msgstr "mai dátum felülírása" -#: ../build/bin/conf_gen.h:1017 +#: ../build/bin/conf_gen.h:1070 msgid "" "type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override " "the current date/time used when expanding variables:\n" @@ -313,162 +277,159 @@ "$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS), $(MSEC).\n" "egyébként hagyja üresen" -#: ../build/bin/conf_gen.h:1022 +#: ../build/bin/conf_gen.h:1075 msgid "keep this window open" msgstr "az ablak nyitva tartása" -#: ../build/bin/conf_gen.h:1023 +#: ../build/bin/conf_gen.h:1076 msgid "keep this window open to run several imports" msgstr "az ablak nyitva tartása több importálás elvégzéséhez" -#: ../build/bin/conf_gen.h:1180 ../build/bin/conf_gen.h:1196 -#: ../build/bin/preferences_gen.h:4107 ../build/bin/preferences_gen.h:4202 +#: ../build/bin/conf_gen.h:1233 ../build/bin/conf_gen.h:1249 +#: ../build/bin/conf_gen.h:1277 msgctxt "preferences" msgid "VGA" msgstr "VGA" -#: ../build/bin/conf_gen.h:1181 ../build/bin/conf_gen.h:1197 -#: ../build/bin/preferences_gen.h:4112 ../build/bin/preferences_gen.h:4207 -#: ../build/bin/preferences_gen.h:4251 +#: ../build/bin/conf_gen.h:1234 ../build/bin/conf_gen.h:1250 +#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4782 msgctxt "preferences" msgid "720p" msgstr "720p" -#: ../build/bin/conf_gen.h:1182 ../build/bin/conf_gen.h:1198 -#: ../build/bin/preferences_gen.h:4117 ../build/bin/preferences_gen.h:4212 +#: ../build/bin/conf_gen.h:1235 ../build/bin/conf_gen.h:1251 +#: ../build/bin/conf_gen.h:1279 msgctxt "preferences" msgid "1080p" msgstr "1080p" -#: ../build/bin/conf_gen.h:1183 ../build/bin/conf_gen.h:1199 -#: ../build/bin/preferences_gen.h:4122 ../build/bin/preferences_gen.h:4217 +#: ../build/bin/conf_gen.h:1236 ../build/bin/conf_gen.h:1252 +#: ../build/bin/conf_gen.h:1280 msgctxt "preferences" msgid "WQXGA" msgstr "WQXGA" -#: ../build/bin/conf_gen.h:1184 ../build/bin/conf_gen.h:1200 -#: ../build/bin/preferences_gen.h:4127 ../build/bin/preferences_gen.h:4222 +#: ../build/bin/conf_gen.h:1237 ../build/bin/conf_gen.h:1253 +#: ../build/bin/conf_gen.h:1281 msgctxt "preferences" msgid "4K" msgstr "4K" -#: ../build/bin/conf_gen.h:1185 ../build/bin/conf_gen.h:1201 -#: ../build/bin/preferences_gen.h:4132 ../build/bin/preferences_gen.h:4227 +#: ../build/bin/conf_gen.h:1238 ../build/bin/conf_gen.h:1254 +#: ../build/bin/conf_gen.h:1282 msgctxt "preferences" msgid "5K" msgstr "5K" -#: ../build/bin/conf_gen.h:1228 +#: ../build/bin/conf_gen.h:1314 msgctxt "preferences" msgid "off" msgstr "ki" -#: ../build/bin/conf_gen.h:1229 +#: ../build/bin/conf_gen.h:1315 msgctxt "preferences" msgid "hardness (relative)" msgstr "keménység (relatív)" -#: ../build/bin/conf_gen.h:1230 +#: ../build/bin/conf_gen.h:1316 msgctxt "preferences" msgid "hardness (absolute)" msgstr "keménység (abszolút)" -#: ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1317 msgctxt "preferences" msgid "opacity (relative)" msgstr "átlátszatlanság (relatív)" -#: ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1318 msgctxt "preferences" msgid "opacity (absolute)" msgstr "átlátszatlanság (abszolút)" -#: ../build/bin/conf_gen.h:1233 +#: ../build/bin/conf_gen.h:1319 msgctxt "preferences" msgid "brush size (relative)" msgstr "ecsetméret (relatív)" -#: ../build/bin/conf_gen.h:1241 +#: ../build/bin/conf_gen.h:1327 msgctxt "preferences" msgid "low" msgstr "alacsony" -#: ../build/bin/conf_gen.h:1242 +#: ../build/bin/conf_gen.h:1328 msgctxt "preferences" msgid "medium" msgstr "közepes" -#: ../build/bin/conf_gen.h:1243 +#: ../build/bin/conf_gen.h:1329 msgctxt "preferences" msgid "high" msgstr "magas" -#: ../build/bin/conf_gen.h:1263 ../build/bin/preferences_gen.h:4836 -#: ../build/bin/preferences_gen.h:4860 +#: ../build/bin/conf_gen.h:1349 ../build/bin/preferences_gen.h:5405 msgctxt "preferences" msgid "false color" msgstr "hamis színes" -#: ../build/bin/conf_gen.h:1264 ../build/bin/preferences_gen.h:4841 +#: ../build/bin/conf_gen.h:1350 msgctxt "preferences" msgid "grayscale" msgstr "szürkeárnyalatos" -#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4567 +#: ../build/bin/conf_gen.h:1364 msgctxt "preferences" msgid "top left" msgstr "bal fent" -#: ../build/bin/conf_gen.h:1279 ../build/bin/preferences_gen.h:4572 +#: ../build/bin/conf_gen.h:1365 msgctxt "preferences" msgid "top right" msgstr "jobb fent" -#: ../build/bin/conf_gen.h:1280 ../build/bin/preferences_gen.h:4577 +#: ../build/bin/conf_gen.h:1366 msgctxt "preferences" msgid "top center" msgstr "középen fent" -#: ../build/bin/conf_gen.h:1281 ../build/bin/preferences_gen.h:4582 -#: ../build/bin/preferences_gen.h:4606 +#: ../build/bin/conf_gen.h:1367 ../build/bin/preferences_gen.h:5217 msgctxt "preferences" msgid "bottom" msgstr "alul" -#: ../build/bin/conf_gen.h:1282 ../build/bin/preferences_gen.h:4587 +#: ../build/bin/conf_gen.h:1368 msgctxt "preferences" msgid "hidden" msgstr "rejtett" -#: ../build/bin/conf_gen.h:1792 +#: ../build/bin/conf_gen.h:1878 msgid "show OSD" msgstr "térkép fölötti kezelőszervek" -#: ../build/bin/conf_gen.h:1793 +#: ../build/bin/conf_gen.h:1879 msgid "toggle the visibility of the map overlays" msgstr "a térkép fölötti kezelőszervek láthatóságának váltása" -#: ../build/bin/conf_gen.h:1798 ../src/libs/map_settings.c:146 +#: ../build/bin/conf_gen.h:1884 ../src/libs/map_settings.c:119 msgid "filtered images" msgstr "szűrt képek" -#: ../build/bin/conf_gen.h:1799 +#: ../build/bin/conf_gen.h:1885 msgid "when set limit the images drawn to the current filmstrip" msgstr "bepipálva az aktuális filmszalagra korlátozza a megjelenített képeket" -#: ../build/bin/conf_gen.h:1806 +#: ../build/bin/conf_gen.h:1892 msgid "max images" msgstr "max kép" -#: ../build/bin/conf_gen.h:1807 +#: ../build/bin/conf_gen.h:1893 msgid "the maximum number of image thumbnails drawn on the map" msgstr "a térképre kirajzolt bélyegképek maximális száma" -#: ../build/bin/conf_gen.h:1814 +#: ../build/bin/conf_gen.h:1900 msgid "group size factor" msgstr "csoport méret szorzó" -#: ../build/bin/conf_gen.h:1815 +#: ../build/bin/conf_gen.h:1901 msgid "" "increase or decrease the spatial size of images groups on the map. can " "influence the calculation time" @@ -476,32 +437,32 @@ "a térképen megjelenő képcsoportok térbeli méretének növelése vagy " "csökkentése. befolyásolhatja a számítási időt" -#: ../build/bin/conf_gen.h:1822 +#: ../build/bin/conf_gen.h:1908 msgid "min images per group" msgstr "min kép csoportonként" -#: ../build/bin/conf_gen.h:1823 +#: ../build/bin/conf_gen.h:1909 msgid "" "the minimum number of images to set up an images group. can influence the " "calculation time." msgstr "" "a csoportosítandó képek minimális száma. befolyásolhatja a számítási időt." -#: ../build/bin/conf_gen.h:1828 +#: ../build/bin/conf_gen.h:1914 msgctxt "preferences" msgid "thumbnail" msgstr "bélyegkép" -#: ../build/bin/conf_gen.h:1829 +#: ../build/bin/conf_gen.h:1915 msgctxt "preferences" msgid "count" msgstr "darabszám" -#: ../build/bin/conf_gen.h:1832 ../src/libs/map_settings.c:159 +#: ../build/bin/conf_gen.h:1918 msgid "thumbnail display" msgstr "bélyegkép megjelenítés" -#: ../build/bin/conf_gen.h:1833 +#: ../build/bin/conf_gen.h:1919 msgid "" "three options are available: images thumbnails, only the count of images of " "the group or nothing" @@ -509,267 +470,258 @@ "három lehetőség választható: kép bélyegképek, csak a képek darabszáma a " "csoportban, vagy semmi" -#: ../build/bin/conf_gen.h:1844 +#: ../build/bin/conf_gen.h:1930 msgid "max polygon points" msgstr "max. sokszögpont" -#: ../build/bin/conf_gen.h:1845 +#: ../build/bin/conf_gen.h:1931 msgid "" "limit the number of points imported with polygon in find location module" msgstr "" "a poligonnal importált pontok számának korlátozása a hely keresése modulban" -#: ../build/bin/conf_gen.h:2135 ../build/bin/preferences_gen.h:4722 -#: ../build/bin/preferences_gen.h:4756 +#: ../build/bin/conf_gen.h:2221 ../build/bin/preferences_gen.h:5329 msgctxt "preferences" msgid "original" msgstr "eredeti" -#: ../build/bin/conf_gen.h:2136 ../build/bin/preferences_gen.h:4727 +#: ../build/bin/conf_gen.h:2222 msgctxt "preferences" msgid "to 1/2" msgstr "½-re" -#: ../build/bin/conf_gen.h:2137 ../build/bin/preferences_gen.h:4732 +#: ../build/bin/conf_gen.h:2223 msgctxt "preferences" msgid "to 1/3" msgstr "⅓-ra" -#: ../build/bin/conf_gen.h:2138 ../build/bin/preferences_gen.h:4737 +#: ../build/bin/conf_gen.h:2224 msgctxt "preferences" msgid "to 1/4" msgstr "¼-re" -#: ../build/bin/conf_gen.h:2152 ../build/bin/conf_gen.h:2162 -#: ../build/bin/preferences_gen.h:5384 ../build/bin/preferences_gen.h:5449 +#: ../build/bin/conf_gen.h:2244 ../build/bin/conf_gen.h:2254 msgctxt "preferences" msgid "bilinear" msgstr "bilineáris" -#: ../build/bin/conf_gen.h:2153 ../build/bin/conf_gen.h:2163 -#: ../build/bin/preferences_gen.h:5389 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5454 +#: ../build/bin/conf_gen.h:2245 ../build/bin/conf_gen.h:2255 +#: ../build/bin/preferences_gen.h:5847 msgctxt "preferences" msgid "bicubic" msgstr "kettős köbös" -#: ../build/bin/conf_gen.h:2154 ../build/bin/conf_gen.h:2164 -#: ../build/bin/preferences_gen.h:5394 ../build/bin/preferences_gen.h:5459 +#: ../build/bin/conf_gen.h:2246 ../build/bin/conf_gen.h:2256 msgctxt "preferences" msgid "lanczos2" msgstr "lánczos2" -#: ../build/bin/conf_gen.h:2165 ../build/bin/preferences_gen.h:5464 -#: ../build/bin/preferences_gen.h:5483 +#: ../build/bin/conf_gen.h:2257 ../build/bin/preferences_gen.h:5882 msgctxt "preferences" msgid "lanczos3" msgstr "lánczos3" -#: ../build/bin/conf_gen.h:2487 ../build/bin/conf_gen.h:3217 -#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:6556 -#: ../build/bin/preferences_gen.h:6592 +#: ../build/bin/conf_gen.h:2577 ../build/bin/conf_gen.h:3303 +#: ../build/bin/preferences_gen.h:7032 msgctxt "preferences" msgid "auto" msgstr "automatikus" -#: ../build/bin/conf_gen.h:2489 ../build/bin/preferences_gen.h:6566 +#: ../build/bin/conf_gen.h:2579 msgctxt "preferences" msgid "libsecret" msgstr "libsecret" -#: ../build/bin/conf_gen.h:2490 ../build/bin/preferences_gen.h:6572 +#: ../build/bin/conf_gen.h:2580 msgctxt "preferences" msgid "kwallet" msgstr "kwallet" -#: ../build/bin/conf_gen.h:2700 +#: ../build/bin/conf_gen.h:2790 msgctxt "preferences" msgid "vectorscope" msgstr "vektorszkóp" -#: ../build/bin/conf_gen.h:2701 +#: ../build/bin/conf_gen.h:2791 msgctxt "preferences" msgid "waveform" msgstr "hullámforma" -#: ../build/bin/conf_gen.h:2702 +#: ../build/bin/conf_gen.h:2792 msgctxt "preferences" msgid "RGB parade" msgstr "RGB-parádé" -#: ../build/bin/conf_gen.h:2703 +#: ../build/bin/conf_gen.h:2793 msgctxt "preferences" msgid "histogram" msgstr "hisztogram" -#: ../build/bin/conf_gen.h:2711 ../build/bin/preferences_gen.h:7264 +#: ../build/bin/conf_gen.h:2801 msgctxt "preferences" msgid "left" msgstr "bal" -#: ../build/bin/conf_gen.h:2712 ../build/bin/preferences_gen.h:7269 -#: ../build/bin/preferences_gen.h:7288 +#: ../build/bin/conf_gen.h:2802 ../build/bin/preferences_gen.h:7619 msgctxt "preferences" msgid "right" msgstr "jobb" -#: ../build/bin/conf_gen.h:2720 ../build/bin/conf_gen.h:2757 +#: ../build/bin/conf_gen.h:2810 ../build/bin/conf_gen.h:2847 msgctxt "preferences" msgid "logarithmic" msgstr "logaritmikus" -#: ../build/bin/conf_gen.h:2721 ../build/bin/conf_gen.h:2758 +#: ../build/bin/conf_gen.h:2811 ../build/bin/conf_gen.h:2848 msgctxt "preferences" msgid "linear" msgstr "lineáris" -#: ../build/bin/conf_gen.h:2729 +#: ../build/bin/conf_gen.h:2819 msgctxt "preferences" msgid "horizontal" msgstr "vízszintes" -#: ../build/bin/conf_gen.h:2730 +#: ../build/bin/conf_gen.h:2820 msgctxt "preferences" msgid "vertical" msgstr "függőleges" -#: ../build/bin/conf_gen.h:2738 +#: ../build/bin/conf_gen.h:2828 msgctxt "preferences" msgid "overlaid" msgstr "átfedés" -#: ../build/bin/conf_gen.h:2739 +#: ../build/bin/conf_gen.h:2829 msgctxt "preferences" msgid "parade" msgstr "parádé" -#: ../build/bin/conf_gen.h:2747 +#: ../build/bin/conf_gen.h:2837 msgctxt "preferences" msgid "u*v*" msgstr "u*v*" -#: ../build/bin/conf_gen.h:2748 +#: ../build/bin/conf_gen.h:2838 msgctxt "preferences" msgid "AzBz" msgstr "AzBz" -#: ../build/bin/conf_gen.h:2749 +#: ../build/bin/conf_gen.h:2839 msgctxt "preferences" msgid "RYB" msgstr "RYB" -#: ../build/bin/conf_gen.h:2791 +#: ../build/bin/conf_gen.h:2881 msgctxt "preferences" msgid "monochromatic" msgstr "monokróm" -#: ../build/bin/conf_gen.h:2792 +#: ../build/bin/conf_gen.h:2882 msgctxt "preferences" msgid "analogous" msgstr "analóg" -#: ../build/bin/conf_gen.h:2793 +#: ../build/bin/conf_gen.h:2883 msgctxt "preferences" msgid "analogous complementary" msgstr "analóg komplementer" -#: ../build/bin/conf_gen.h:2794 +#: ../build/bin/conf_gen.h:2884 msgctxt "preferences" msgid "complementary" msgstr "komplementer" -#: ../build/bin/conf_gen.h:2795 +#: ../build/bin/conf_gen.h:2885 msgctxt "preferences" msgid "split complementary" msgstr "osztott komplementer" -#: ../build/bin/conf_gen.h:2796 +#: ../build/bin/conf_gen.h:2886 msgctxt "preferences" msgid "dyad" msgstr "diád" -#: ../build/bin/conf_gen.h:2797 +#: ../build/bin/conf_gen.h:2887 msgctxt "preferences" msgid "triad" msgstr "triád" -#: ../build/bin/conf_gen.h:2798 +#: ../build/bin/conf_gen.h:2888 msgctxt "preferences" msgid "tetrad" msgstr "tetrád" -#: ../build/bin/conf_gen.h:2799 +#: ../build/bin/conf_gen.h:2889 msgctxt "preferences" msgid "square" msgstr "négyzet" -#: ../build/bin/conf_gen.h:2813 +#: ../build/bin/conf_gen.h:2903 msgctxt "preferences" msgid "normal" msgstr "normál" -#: ../build/bin/conf_gen.h:2815 +#: ../build/bin/conf_gen.h:2905 msgctxt "preferences" msgid "narrow" msgstr "keskeny" -#: ../build/bin/conf_gen.h:2816 +#: ../build/bin/conf_gen.h:2906 msgctxt "preferences" msgid "line" msgstr "vonal" -#: ../build/bin/conf_gen.h:2956 +#: ../build/bin/conf_gen.h:3046 msgctxt "preferences" msgid "mm" msgstr "mm" -#: ../build/bin/conf_gen.h:2957 +#: ../build/bin/conf_gen.h:3047 msgctxt "preferences" msgid "cm" msgstr "cm" -#: ../build/bin/conf_gen.h:2958 +#: ../build/bin/conf_gen.h:3048 msgctxt "preferences" msgid "inch" msgstr "hüvelyk" -#: ../build/bin/conf_gen.h:3003 ../build/bin/preferences_gen.h:7324 -#: ../build/bin/preferences_gen.h:7353 +#: ../build/bin/conf_gen.h:3093 ../build/bin/preferences_gen.h:7654 msgctxt "preferences" msgid "all" msgstr "mind" -#: ../build/bin/conf_gen.h:3004 ../build/bin/preferences_gen.h:7329 +#: ../build/bin/conf_gen.h:3094 msgctxt "preferences" msgid "xatom" msgstr "xatom" -#: ../build/bin/conf_gen.h:3005 ../build/bin/preferences_gen.h:7334 +#: ../build/bin/conf_gen.h:3095 msgctxt "preferences" msgid "colord" msgstr "colord" -#: ../build/bin/conf_gen.h:3041 ../build/bin/preferences_gen.h:5562 -#: ../build/bin/preferences_gen.h:5596 +#: ../build/bin/conf_gen.h:3133 ../build/bin/preferences_gen.h:5958 msgctxt "preferences" msgid "scene-referred (filmic)" msgstr "látványvonatkozású (filmes)" -#: ../build/bin/conf_gen.h:3042 ../build/bin/preferences_gen.h:5567 +#: ../build/bin/conf_gen.h:3134 msgctxt "preferences" msgid "scene-referred (sigmoid)" msgstr "látványvonatkozású (szigmoid)" -#: ../build/bin/conf_gen.h:3043 ../build/bin/preferences_gen.h:5572 +#: ../build/bin/conf_gen.h:3135 msgctxt "preferences" msgid "display-referred (legacy)" msgstr "látványvonatkozású (örökölt)" -#: ../build/bin/conf_gen.h:3144 +#: ../build/bin/conf_gen.h:3230 msgid "camera time zone" msgstr "fényképező időzónája" -#: ../build/bin/conf_gen.h:3145 +#: ../build/bin/conf_gen.h:3231 msgid "" "most cameras don't store the time zone in EXIF. give the correct time zone " "so the GPX data can be correctly matched" @@ -777,212 +729,273 @@ "a legtöbb fényképező nem tárolja az időzónát az EXIF-ben. a GPX-adatok " "pontos illesztéséhez adja meg az időzónát" -#: ../build/bin/conf_gen.h:3156 +#: ../build/bin/conf_gen.h:3242 msgctxt "preferences" msgid "no color" msgstr "nincs szín" -#: ../build/bin/conf_gen.h:3157 +#: ../build/bin/conf_gen.h:3243 msgctxt "preferences" msgid "illuminant color" msgstr "fényforrás színe" -#: ../build/bin/conf_gen.h:3158 +#: ../build/bin/conf_gen.h:3244 msgctxt "preferences" msgid "effect emulation" msgstr "hatásemuláció" -#: ../build/bin/conf_gen.h:3204 +#: ../build/bin/conf_gen.h:3290 msgctxt "preferences" msgid "list" msgstr "lista" -#: ../build/bin/conf_gen.h:3205 +#: ../build/bin/conf_gen.h:3291 msgctxt "preferences" msgid "tabs" msgstr "fülek" -#: ../build/bin/conf_gen.h:3206 +#: ../build/bin/conf_gen.h:3292 msgctxt "preferences" msgid "columns" msgstr "oszlopok" -#: ../build/bin/conf_gen.h:3215 ../build/bin/preferences_gen.h:5117 +#: ../build/bin/conf_gen.h:3301 msgctxt "preferences" msgid "active" msgstr "aktív" -#: ../build/bin/conf_gen.h:3216 ../build/bin/preferences_gen.h:5122 +#: ../build/bin/conf_gen.h:3302 msgctxt "preferences" msgid "dim" msgstr "sötétít" -#: ../build/bin/conf_gen.h:3218 ../build/bin/preferences_gen.h:5132 +#: ../build/bin/conf_gen.h:3304 msgctxt "preferences" msgid "fade" msgstr "halványít" -#: ../build/bin/conf_gen.h:3219 ../build/bin/preferences_gen.h:5137 +#: ../build/bin/conf_gen.h:3305 msgctxt "preferences" msgid "fit" msgstr "illeszkedés" -#: ../build/bin/conf_gen.h:3220 ../build/bin/preferences_gen.h:5142 +#: ../build/bin/conf_gen.h:3306 msgctxt "preferences" msgid "smooth" msgstr "átmenet" -#: ../build/bin/conf_gen.h:3221 ../build/bin/preferences_gen.h:5147 +#: ../build/bin/conf_gen.h:3307 msgctxt "preferences" msgid "glide" msgstr "összecsúszás" -#: ../build/bin/preferences_gen.h:81 ../build/bin/preferences_gen.h:3823 -#: ../build/bin/preferences_gen.h:3859 ../build/bin/preferences_gen.h:3895 -#: ../build/bin/preferences_gen.h:3931 ../build/bin/preferences_gen.h:3967 -#: ../build/bin/preferences_gen.h:4003 ../build/bin/preferences_gen.h:4039 -#: ../build/bin/preferences_gen.h:4083 ../build/bin/preferences_gen.h:4178 -#: ../build/bin/preferences_gen.h:4273 ../build/bin/preferences_gen.h:4313 -#: ../build/bin/preferences_gen.h:4356 ../build/bin/preferences_gen.h:4437 -#: ../build/bin/preferences_gen.h:4473 ../build/bin/preferences_gen.h:4510 -#: ../build/bin/preferences_gen.h:4553 ../build/bin/preferences_gen.h:4627 -#: ../build/bin/preferences_gen.h:4672 ../build/bin/preferences_gen.h:4708 -#: ../build/bin/preferences_gen.h:4778 ../build/bin/preferences_gen.h:4822 -#: ../build/bin/preferences_gen.h:4882 ../build/bin/preferences_gen.h:4918 -#: ../build/bin/preferences_gen.h:4954 ../build/bin/preferences_gen.h:4990 -#: ../build/bin/preferences_gen.h:5026 ../build/bin/preferences_gen.h:5062 -#: ../build/bin/preferences_gen.h:5098 ../build/bin/preferences_gen.h:5188 -#: ../build/bin/preferences_gen.h:5224 ../build/bin/preferences_gen.h:5260 -#: ../build/bin/preferences_gen.h:5334 ../build/bin/preferences_gen.h:5370 -#: ../build/bin/preferences_gen.h:5435 ../build/bin/preferences_gen.h:5505 -#: ../build/bin/preferences_gen.h:5548 ../build/bin/preferences_gen.h:5618 -#: ../build/bin/preferences_gen.h:5654 ../build/bin/preferences_gen.h:5690 -#: ../build/bin/preferences_gen.h:5734 ../build/bin/preferences_gen.h:5805 -#: ../build/bin/preferences_gen.h:5841 ../build/bin/preferences_gen.h:5877 -#: ../build/bin/preferences_gen.h:5913 ../build/bin/preferences_gen.h:5955 -#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6140 -#: ../build/bin/preferences_gen.h:6176 ../build/bin/preferences_gen.h:6212 -#: ../build/bin/preferences_gen.h:6248 ../build/bin/preferences_gen.h:6284 -#: ../build/bin/preferences_gen.h:6320 ../build/bin/preferences_gen.h:6356 -#: ../build/bin/preferences_gen.h:6392 ../build/bin/preferences_gen.h:6427 -#: ../build/bin/preferences_gen.h:6462 ../build/bin/preferences_gen.h:6498 -#: ../build/bin/preferences_gen.h:6542 ../build/bin/preferences_gen.h:6614 -#: ../build/bin/preferences_gen.h:6692 ../build/bin/preferences_gen.h:6767 -#: ../build/bin/preferences_gen.h:6820 ../build/bin/preferences_gen.h:6885 -#: ../build/bin/preferences_gen.h:6950 ../build/bin/preferences_gen.h:7024 -#: ../build/bin/preferences_gen.h:7060 ../build/bin/preferences_gen.h:7096 -#: ../build/bin/preferences_gen.h:7132 ../build/bin/preferences_gen.h:7168 -#: ../build/bin/preferences_gen.h:7204 ../build/bin/preferences_gen.h:7250 -#: ../build/bin/preferences_gen.h:7310 ../build/bin/preferences_gen.h:7375 -#: ../build/bin/preferences_gen.h:7429 ../build/bin/preferences_gen.h:7474 -#: ../build/bin/preferences_gen.h:7510 ../build/bin/preferences_gen.h:7546 -#: ../build/bin/preferences_gen.h:7582 ../build/bin/preferences_gen.h:7618 -#: ../build/bin/preferences_gen.h:7678 ../build/bin/preferences_gen.h:7722 -#: ../build/bin/preferences_gen.h:7766 ../build/bin/preferences_gen.h:7848 -#: ../build/bin/preferences_gen.h:7888 ../build/bin/preferences_gen.h:7928 -#: ../build/bin/preferences_gen.h:7964 ../build/bin/preferences_gen.h:8019 -#: ../build/bin/preferences_gen.h:8055 ../build/bin/preferences_gen.h:8115 -#: ../build/bin/preferences_gen.h:8161 ../build/bin/preferences_gen.h:8197 -#: ../build/bin/preferences_gen.h:8243 ../build/bin/preferences_gen.h:8303 -#: ../build/bin/preferences_gen.h:8355 ../build/bin/preferences_gen.h:8401 -#: ../build/bin/preferences_gen.h:8469 ../build/bin/preferences_gen.h:8516 +#: ../build/bin/preferences_gen.h:77 ../build/bin/preferences_gen.h:4305 +#: ../build/bin/preferences_gen.h:4344 ../build/bin/preferences_gen.h:4383 +#: ../build/bin/preferences_gen.h:4417 ../build/bin/preferences_gen.h:4488 +#: ../build/bin/preferences_gen.h:4522 ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:4590 ../build/bin/preferences_gen.h:4624 +#: ../build/bin/preferences_gen.h:4658 ../build/bin/preferences_gen.h:4692 +#: ../build/bin/preferences_gen.h:4733 ../build/bin/preferences_gen.h:4768 +#: ../build/bin/preferences_gen.h:4803 ../build/bin/preferences_gen.h:4837 +#: ../build/bin/preferences_gen.h:4871 ../build/bin/preferences_gen.h:4906 +#: ../build/bin/preferences_gen.h:4940 ../build/bin/preferences_gen.h:4979 +#: ../build/bin/preferences_gen.h:5020 ../build/bin/preferences_gen.h:5093 +#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:5162 +#: ../build/bin/preferences_gen.h:5203 ../build/bin/preferences_gen.h:5237 +#: ../build/bin/preferences_gen.h:5281 ../build/bin/preferences_gen.h:5315 +#: ../build/bin/preferences_gen.h:5350 ../build/bin/preferences_gen.h:5391 +#: ../build/bin/preferences_gen.h:5426 ../build/bin/preferences_gen.h:5460 +#: ../build/bin/preferences_gen.h:5494 ../build/bin/preferences_gen.h:5528 +#: ../build/bin/preferences_gen.h:5562 ../build/bin/preferences_gen.h:5596 +#: ../build/bin/preferences_gen.h:5630 ../build/bin/preferences_gen.h:5665 +#: ../build/bin/preferences_gen.h:5699 ../build/bin/preferences_gen.h:5733 +#: ../build/bin/preferences_gen.h:5799 ../build/bin/preferences_gen.h:5833 +#: ../build/bin/preferences_gen.h:5868 ../build/bin/preferences_gen.h:5903 +#: ../build/bin/preferences_gen.h:5944 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/preferences_gen.h:6013 ../build/bin/preferences_gen.h:6047 +#: ../build/bin/preferences_gen.h:6088 ../build/bin/preferences_gen.h:6124 +#: ../build/bin/preferences_gen.h:6165 ../build/bin/preferences_gen.h:6209 +#: ../build/bin/preferences_gen.h:6254 ../build/bin/preferences_gen.h:6305 +#: ../build/bin/preferences_gen.h:6349 ../build/bin/preferences_gen.h:6393 +#: ../build/bin/preferences_gen.h:6437 ../build/bin/preferences_gen.h:6481 +#: ../build/bin/preferences_gen.h:6525 ../build/bin/preferences_gen.h:6569 +#: ../build/bin/preferences_gen.h:6635 ../build/bin/preferences_gen.h:6669 +#: ../build/bin/preferences_gen.h:6703 ../build/bin/preferences_gen.h:6737 +#: ../build/bin/preferences_gen.h:6771 ../build/bin/preferences_gen.h:6805 +#: ../build/bin/preferences_gen.h:6839 ../build/bin/preferences_gen.h:6873 +#: ../build/bin/preferences_gen.h:6906 ../build/bin/preferences_gen.h:6939 +#: ../build/bin/preferences_gen.h:6973 ../build/bin/preferences_gen.h:7014 +#: ../build/bin/preferences_gen.h:7053 ../build/bin/preferences_gen.h:7124 +#: ../build/bin/preferences_gen.h:7159 ../build/bin/preferences_gen.h:7210 +#: ../build/bin/preferences_gen.h:7245 ../build/bin/preferences_gen.h:7280 +#: ../build/bin/preferences_gen.h:7324 ../build/bin/preferences_gen.h:7390 +#: ../build/bin/preferences_gen.h:7424 ../build/bin/preferences_gen.h:7458 +#: ../build/bin/preferences_gen.h:7492 ../build/bin/preferences_gen.h:7526 +#: ../build/bin/preferences_gen.h:7560 ../build/bin/preferences_gen.h:7605 +#: ../build/bin/preferences_gen.h:7640 ../build/bin/preferences_gen.h:7675 +#: ../build/bin/preferences_gen.h:7731 ../build/bin/preferences_gen.h:7772 +#: ../build/bin/preferences_gen.h:7806 ../build/bin/preferences_gen.h:7840 +#: ../build/bin/preferences_gen.h:7874 ../build/bin/preferences_gen.h:7908 +#: ../build/bin/preferences_gen.h:7943 ../build/bin/preferences_gen.h:7984 +#: ../build/bin/preferences_gen.h:8025 ../build/bin/preferences_gen.h:8085 +#: ../build/bin/preferences_gen.h:8119 ../build/bin/preferences_gen.h:8154 +#: ../build/bin/preferences_gen.h:8199 ../build/bin/preferences_gen.h:8233 +#: ../build/bin/preferences_gen.h:8278 ../build/bin/preferences_gen.h:8313 +#: ../build/bin/preferences_gen.h:8365 ../build/bin/preferences_gen.h:8410 +#: ../build/bin/preferences_gen.h:8480 ../build/bin/preferences_gen.h:8526 msgid "this setting has been modified" msgstr "ez a beállítás módosult" #. doesn't seem to work from gtkrc -#: ../build/bin/preferences_gen.h:3793 ../build/bin/preferences_gen.h:4407 -#: ../build/bin/preferences_gen.h:5304 ../build/bin/preferences_gen.h:6110 -#: ../build/bin/preferences_gen.h:6662 ../build/bin/preferences_gen.h:6994 -#: ../build/bin/preferences_gen.h:7818 ../src/gui/accelerators.c:2724 -#: ../src/gui/gtk.c:2580 ../src/gui/preferences.c:421 -#: ../src/gui/preferences.c:876 ../src/libs/modulegroups.c:3886 +#: ../build/bin/preferences_gen.h:4277 ../build/bin/preferences_gen.h:4460 +#: ../build/bin/preferences_gen.h:5065 ../build/bin/preferences_gen.h:5771 +#: ../build/bin/preferences_gen.h:6607 ../build/bin/preferences_gen.h:7096 +#: ../build/bin/preferences_gen.h:7362 ../src/gui/accelerators.c:2996 +#: ../src/gui/gtk.c:2641 ../src/gui/preferences.c:424 +#: ../src/gui/preferences.c:874 ../src/libs/modulegroups.c:3888 msgid "?" msgstr "?" -#: ../build/bin/preferences_gen.h:3806 ../build/bin/preferences_gen.h:4420 -#: ../build/bin/preferences_gen.h:6123 ../src/gui/preferences.c:270 -msgid "general" -msgstr "általános" +#: ../build/bin/preferences_gen.h:4287 ../src/control/jobs/control_jobs.c:2352 +#: ../src/libs/import.c:173 +msgid "import" +msgstr "importálás" -#: ../build/bin/preferences_gen.h:3826 -msgid "hide built-in presets for utility modules" -msgstr "beépített tárolt beállítások elrejtése a segédmoduloknál" +#: ../build/bin/preferences_gen.h:4289 +msgid "session options" +msgstr "munkamenet-beállítások" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4017 -#: ../build/bin/preferences_gen.h:4053 ../build/bin/preferences_gen.h:4156 -#: ../build/bin/preferences_gen.h:4251 ../build/bin/preferences_gen.h:4291 -#: ../build/bin/preferences_gen.h:4334 ../build/bin/preferences_gen.h:4377 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4531 ../build/bin/preferences_gen.h:4606 -#: ../build/bin/preferences_gen.h:4686 ../build/bin/preferences_gen.h:4756 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4860 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5040 ../build/bin/preferences_gen.h:5076 -#: ../build/bin/preferences_gen.h:5166 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5274 -#: ../build/bin/preferences_gen.h:5348 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5483 ../build/bin/preferences_gen.h:5525 -#: ../build/bin/preferences_gen.h:5596 ../build/bin/preferences_gen.h:5632 -#: ../build/bin/preferences_gen.h:5668 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5782 ../build/bin/preferences_gen.h:5819 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:5927 ../build/bin/preferences_gen.h:5998 -#: ../build/bin/preferences_gen.h:6074 ../build/bin/preferences_gen.h:6154 -#: ../build/bin/preferences_gen.h:6190 ../build/bin/preferences_gen.h:6226 -#: ../build/bin/preferences_gen.h:6262 ../build/bin/preferences_gen.h:6298 -#: ../build/bin/preferences_gen.h:6334 ../build/bin/preferences_gen.h:6370 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:6592 ../build/bin/preferences_gen.h:6632 -#: ../build/bin/preferences_gen.h:6745 ../build/bin/preferences_gen.h:6863 -#: ../build/bin/preferences_gen.h:6928 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7146 -#: ../build/bin/preferences_gen.h:7182 ../build/bin/preferences_gen.h:7288 -#: ../build/bin/preferences_gen.h:7353 ../build/bin/preferences_gen.h:7393 -#: ../build/bin/preferences_gen.h:7443 ../build/bin/preferences_gen.h:7488 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7656 -#: ../build/bin/preferences_gen.h:7692 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:7866 ../build/bin/preferences_gen.h:7906 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:7982 -#: ../build/bin/preferences_gen.h:8033 ../build/bin/preferences_gen.h:8093 -#: ../build/bin/preferences_gen.h:8175 ../build/bin/preferences_gen.h:8281 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4308 +msgid "base directory naming pattern" +msgstr "kezdőkönyvtár-elnevezési minta" + +#: ../build/bin/preferences_gen.h:4323 ../build/bin/preferences_gen.h:4362 +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4435 +#: ../build/bin/preferences_gen.h:4501 ../build/bin/preferences_gen.h:4535 +#: ../build/bin/preferences_gen.h:4569 ../build/bin/preferences_gen.h:4603 +#: ../build/bin/preferences_gen.h:4637 ../build/bin/preferences_gen.h:4671 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4747 +#: ../build/bin/preferences_gen.h:4782 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:4850 ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:4958 +#: ../build/bin/preferences_gen.h:4999 ../build/bin/preferences_gen.h:5040 +#: ../build/bin/preferences_gen.h:5106 ../build/bin/preferences_gen.h:5140 +#: ../build/bin/preferences_gen.h:5182 ../build/bin/preferences_gen.h:5217 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5329 +#: ../build/bin/preferences_gen.h:5363 ../build/bin/preferences_gen.h:5405 +#: ../build/bin/preferences_gen.h:5439 ../build/bin/preferences_gen.h:5473 +#: ../build/bin/preferences_gen.h:5507 ../build/bin/preferences_gen.h:5541 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5644 ../build/bin/preferences_gen.h:5678 +#: ../build/bin/preferences_gen.h:5712 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5847 +#: ../build/bin/preferences_gen.h:5882 ../build/bin/preferences_gen.h:5922 +#: ../build/bin/preferences_gen.h:5958 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6060 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6178 ../build/bin/preferences_gen.h:6223 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6318 +#: ../build/bin/preferences_gen.h:6362 ../build/bin/preferences_gen.h:6406 +#: ../build/bin/preferences_gen.h:6450 ../build/bin/preferences_gen.h:6494 +#: ../build/bin/preferences_gen.h:6538 ../build/bin/preferences_gen.h:6582 +#: ../build/bin/preferences_gen.h:6648 ../build/bin/preferences_gen.h:6682 +#: ../build/bin/preferences_gen.h:6716 ../build/bin/preferences_gen.h:6750 +#: ../build/bin/preferences_gen.h:6784 ../build/bin/preferences_gen.h:6818 +#: ../build/bin/preferences_gen.h:6852 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7032 +#: ../build/bin/preferences_gen.h:7071 ../build/bin/preferences_gen.h:7138 +#: ../build/bin/preferences_gen.h:7224 ../build/bin/preferences_gen.h:7259 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7505 ../build/bin/preferences_gen.h:7539 +#: ../build/bin/preferences_gen.h:7619 ../build/bin/preferences_gen.h:7654 +#: ../build/bin/preferences_gen.h:7693 ../build/bin/preferences_gen.h:7744 +#: ../build/bin/preferences_gen.h:7785 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7922 ../build/bin/preferences_gen.h:7956 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8133 ../build/bin/preferences_gen.h:8212 +#: ../build/bin/preferences_gen.h:8292 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 #, c-format msgid "double click to reset to `%s'" msgstr "dupla kattintással visszaállítja erre: „%s”" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4053 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4686 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:5040 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5348 -#: ../build/bin/preferences_gen.h:5632 ../build/bin/preferences_gen.h:5668 -#: ../build/bin/preferences_gen.h:5819 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:6370 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7146 ../build/bin/preferences_gen.h:7443 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7692 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:8033 -#: ../build/bin/preferences_gen.h:8175 +#: ../build/bin/preferences_gen.h:4326 ../build/bin/preferences_gen.h:4365 +msgid "part of full import path for an import session" +msgstr "" +"a teljes méretű importálási útvonal része az importálási munkamenet során" + +#: ../build/bin/preferences_gen.h:4347 +msgid "sub directory naming pattern" +msgstr "alkönyvtár-elnevezési minta" + +#: ../build/bin/preferences_gen.h:4386 +msgid "keep original filename" +msgstr "eredeti fájlnév megtartása" + +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4501 +#: ../build/bin/preferences_gen.h:4535 ../build/bin/preferences_gen.h:4569 +#: ../build/bin/preferences_gen.h:4603 ../build/bin/preferences_gen.h:4637 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4850 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:5106 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5439 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5712 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6450 +#: ../build/bin/preferences_gen.h:6494 ../build/bin/preferences_gen.h:6538 +#: ../build/bin/preferences_gen.h:6582 ../build/bin/preferences_gen.h:6852 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7505 +#: ../build/bin/preferences_gen.h:7744 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7956 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8212 msgctxt "preferences" msgid "FALSE" msgstr "NEM" -#: ../build/bin/preferences_gen.h:3840 +#: ../build/bin/preferences_gen.h:4399 +msgid "" +"keep original filename instead of a pattern while importing from camera or " +"card" +msgstr "" +"fényképezőről importálás során az eredeti fájlnév megtartása a mintával " +"megadott helyett" + +#: ../build/bin/preferences_gen.h:4420 +msgid "file naming pattern" +msgstr "fájlnévminta" + +#: ../build/bin/preferences_gen.h:4438 +msgid "file naming pattern used for a import session" +msgstr "az importálási munkamenet során használt fájlelnevezési minta" + +#: ../build/bin/preferences_gen.h:4470 ../src/gui/gtk.c:1266 +#: ../src/gui/preferences.c:544 ../src/libs/tools/lighttable.c:66 +#: ../src/views/lighttable.c:91 +msgid "lighttable" +msgstr "átvilágító" + +#: ../build/bin/preferences_gen.h:4472 ../build/bin/preferences_gen.h:5077 +#: ../build/bin/preferences_gen.h:6619 ../src/gui/preferences.c:270 +msgid "general" +msgstr "általános" + +#: ../build/bin/preferences_gen.h:4491 +msgid "hide built-in presets for utility modules" +msgstr "beépített tárolt beállítások elrejtése a segédmoduloknál" + +#: ../build/bin/preferences_gen.h:4504 msgid "hides built-in presets of utility modules in presets menu." msgstr "a segédmoduloknál elrejti a beépített tárolt beállításokat." -#: ../build/bin/preferences_gen.h:3862 +#: ../build/bin/preferences_gen.h:4525 msgid "use single-click in the collections module" msgstr "egy kattintásos használat a gyűjtemény modulban" -#: ../build/bin/preferences_gen.h:3876 +#: ../build/bin/preferences_gen.h:4538 msgid "" "check this option to use single-click to select items in the collections " "module. this will allow you to do range selections for date-time and numeric " @@ -992,20 +1005,20 @@ "kiválasztani a gyűjtemény modulban. segítségével tartomány kijelölés " "készíthető dátum és számérték alapján." -#: ../build/bin/preferences_gen.h:3898 +#: ../build/bin/preferences_gen.h:4559 msgid "expand a single utility module at a time" msgstr "egyszerre egy segédmodul legyen nyitva" -#: ../build/bin/preferences_gen.h:3912 +#: ../build/bin/preferences_gen.h:4572 msgid "this option toggles the behavior of shift clicking in lighttable mode" msgstr "" "ez a beállítás a shift+klikk viselkedését változtatja meg átvilágító módban" -#: ../build/bin/preferences_gen.h:3934 +#: ../build/bin/preferences_gen.h:4593 msgid "scroll utility modules to the top when expanded" msgstr "segédmodulok kinyitásakor görgetés a tetejére" -#: ../build/bin/preferences_gen.h:3948 ../build/bin/preferences_gen.h:5079 +#: ../build/bin/preferences_gen.h:4606 ../build/bin/preferences_gen.h:5612 msgid "" "when this option is enabled then darktable will try to scroll the module to " "the top of the visible list" @@ -1013,60 +1026,62 @@ "ha ez a beállítás engedélyezve van, a darktable megpróbálja a modult a " "látható lista tetejére görgetni" -#: ../build/bin/preferences_gen.h:3970 +#: ../build/bin/preferences_gen.h:4627 msgid "rating an image one star twice will not zero out the rating" msgstr "egy képet kétszer értékelve egy csillagra ne nullázza le az értékelést" -#: ../build/bin/preferences_gen.h:3984 +#: ../build/bin/preferences_gen.h:4640 msgid "" "defines whether rating an image one star twice will zero out star rating" msgstr "" "egy kép kétszeri értékelése egy csillagosra lenullázza a csillagok számát" -#: ../build/bin/preferences_gen.h:4006 ../build/bin/preferences_gen.h:4675 +#: ../build/bin/preferences_gen.h:4661 ../build/bin/preferences_gen.h:5284 msgid "show scrollbars for central view" msgstr "mindig mutassa a gördítősávot a középső nézethez" -#: ../build/bin/preferences_gen.h:4017 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5076 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5274 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5927 -#: ../build/bin/preferences_gen.h:6154 ../build/bin/preferences_gen.h:6190 -#: ../build/bin/preferences_gen.h:6226 ../build/bin/preferences_gen.h:6262 -#: ../build/bin/preferences_gen.h:6298 ../build/bin/preferences_gen.h:6334 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7182 -#: ../build/bin/preferences_gen.h:7488 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4671 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:5140 ../build/bin/preferences_gen.h:5363 +#: ../build/bin/preferences_gen.h:5473 ../build/bin/preferences_gen.h:5507 +#: ../build/bin/preferences_gen.h:5541 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5678 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:6060 ../build/bin/preferences_gen.h:6178 +#: ../build/bin/preferences_gen.h:6318 ../build/bin/preferences_gen.h:6362 +#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6648 +#: ../build/bin/preferences_gen.h:6682 ../build/bin/preferences_gen.h:6716 +#: ../build/bin/preferences_gen.h:6750 ../build/bin/preferences_gen.h:6784 +#: ../build/bin/preferences_gen.h:6818 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7539 ../build/bin/preferences_gen.h:7785 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 msgctxt "preferences" msgid "TRUE" msgstr "IGEN" -#: ../build/bin/preferences_gen.h:4020 ../build/bin/preferences_gen.h:4689 +#: ../build/bin/preferences_gen.h:4674 ../build/bin/preferences_gen.h:5297 msgid "defines whether scrollbars should be displayed" msgstr "megadja, hogy megjelenjenek-e a gördítősávok" -#: ../build/bin/preferences_gen.h:4042 +#: ../build/bin/preferences_gen.h:4695 msgid "show image time with milliseconds" msgstr "kép idejének megjelenítése ezredmásodpercben" -#: ../build/bin/preferences_gen.h:4056 +#: ../build/bin/preferences_gen.h:4708 msgid "defines whether time should be displayed with milliseconds" msgstr "meghatározza, hogy az időt ezredmásodpercben kell-e megjeleníteni" -#: ../build/bin/preferences_gen.h:4066 +#: ../build/bin/preferences_gen.h:4717 msgid "thumbnails" msgstr "bélyegképek" -#: ../build/bin/preferences_gen.h:4086 +#: ../build/bin/preferences_gen.h:4736 msgid "use raw file instead of embedded JPEG from size" msgstr "raw fájl használata a beágyazott JPEG helyett ettől a mérettől" -#: ../build/bin/preferences_gen.h:4159 +#: ../build/bin/preferences_gen.h:4750 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "raw file instead of the embedded preview JPEG (better but slower).\n" @@ -1081,11 +1096,11 @@ "látni, válassza a „mindig” opciót.\n" "(további megjegyzések a kézikönyvben)" -#: ../build/bin/preferences_gen.h:4181 +#: ../build/bin/preferences_gen.h:4771 msgid "high quality processing from size" msgstr "jó minőségű feldolgozás ettől a mérettől" -#: ../build/bin/preferences_gen.h:4254 +#: ../build/bin/preferences_gen.h:4785 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "the full quality rendering path (better but slower).\n" @@ -1099,11 +1114,83 @@ "látni, válassza a „mindig” opciót.\n" "(további megjegyzések a kézikönyvben)" -#: ../build/bin/preferences_gen.h:4276 +#: ../build/bin/preferences_gen.h:4806 +msgid "enable disk backend for thumbnail cache" +msgstr "bélyegkép-gyorsítótár engedélyezése a lemezen" + +#: ../build/bin/preferences_gen.h:4819 +msgid "" +"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want. light table " +"performance will be increased greatly when browsing a lot.\n" +"to generate all thumbnails of your entire collection offline, run 'darktable-" +"generate-cache'." +msgstr "" +"ha engedélyezve van, bélyegképeket ír a lemezre (.cache/darktable/), amikor " +"azok kikerülnek a memória gyorsítótárból.\n" +"megjegyzendő, hogy ez sok tárhelyet igényel (több gigabájtnyi 20 kilobájtos " +"kép), amik sosem lesznek törölve.\n" +"ennek ellenére kézzel bármikor biztonságosan törölhetőek. böngészésnél az " +"átvilágító nézet teljesítményét jelentős mértékben növeli.\n" +"a teljes gyűjteményhez offline módon is elkészíthető a bélyegkép-" +"gyorsítótár, ehhez a „darktable-generate-cache” parancsot kell futtatni." + +#: ../build/bin/preferences_gen.h:4840 +msgid "enable disk backend for full preview cache" +msgstr "lemezháttértár a teljes előnézet gyorsítótárazásához" + +#: ../build/bin/preferences_gen.h:4853 +msgid "" +"if enabled, write full preview to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want.\n" +"light table performance will be increased greatly when zooming image in full " +"preview mode." +msgstr "" +"ha engedélyezve van, előnézeti képeket ír a lemezre (.cache/darktable/), " +"amikor azok kikerülnek a memória gyorsítótárból.\n" +"megjegyzendő, hogy ez sok tárhelyet igényel (több gigabájtnyi 20 kilobájtos " +"kép), amik sosem lesznek törölve.\n" +"ennek ellenére kézzel bármikor biztonságosan törölhetőek.\n" +"átvilágító nézetben a teljes méretű előnézetbe történő belenagyítás " +"teljesítményét jelentős mértékben növeli." + +#: ../build/bin/preferences_gen.h:4874 +msgid "generate thumbnails in background" +msgstr "bélyegképek generálása a háttérben" + +#: ../build/bin/preferences_gen.h:4888 +msgid "" +"if 'enable disk backend for thumbnail cache' is enabled thumbnails/mipmaps " +"up to the selected size are generated while user is inactive in lighttable." +msgstr "" +"ha a „bélyegkép-gyorsítótár engedélyezése a lemezen” engedélyezve van, a " +"bélyegképek/mipmapek akkor generálódnak a kiválasztott méretig, amikor a " +"felhasználó az átvilágítóban inaktív." + +#: ../build/bin/preferences_gen.h:4909 +msgid "reset cached thumbnails" +msgstr "gyorsítótárazott bélyegképek visszaállítása" + +#: ../build/bin/preferences_gen.h:4922 +msgid "" +"force thumbnails to be regenerated by resetting the database. this may be " +"needed in case some thumbnails have been manually removed or corrupted." +msgstr "" +"a bélyegképek újragenerálásának kényszerítése az adatbázis alaphelyzetbe " +"állításával. erre akkor lehet szükség, ha egyes bélyegképeket manuálisan " +"eltávolítottak vagy megsérültek." + +#: ../build/bin/preferences_gen.h:4943 msgid "delimiters for size categories" msgstr "méretkategóriák határolói" -#: ../build/bin/preferences_gen.h:4294 +#: ../build/bin/preferences_gen.h:4961 msgid "" "size categories are used to be able to set different overlays and CSS values " "depending of the size of the thumbnail, separated by |.\n" @@ -1115,23 +1202,28 @@ "például a 120|400 ezt a három bélyegkép kategóriát jelenti: <120px, 120px–" "400px, >400px" -#: ../build/bin/preferences_gen.h:4316 +#: ../build/bin/preferences_gen.h:4982 msgid "pattern for the thumbnail extended overlay text" msgstr "minta a nézőképek bővített rététjének feliratához" -#: ../build/bin/preferences_gen.h:4337 ../build/bin/preferences_gen.h:4380 +#: ../build/bin/preferences_gen.h:5002 ../build/bin/preferences_gen.h:5043 msgid "see manual to know all the tags you can use." msgstr "az összes használható címkéhez lásd a kézikönyvet." -#: ../build/bin/preferences_gen.h:4359 +#: ../build/bin/preferences_gen.h:5023 msgid "pattern for the thumbnail tooltip (empty to disable)" msgstr "minta a nézőképek buboréksúgójához (letiltáshoz hagyja üresen)" -#: ../build/bin/preferences_gen.h:4440 +#: ../build/bin/preferences_gen.h:5075 ../src/gui/gtk.c:1267 +#: ../src/gui/preferences.c:544 ../src/views/darkroom.c:94 +msgid "darkroom" +msgstr "sötétkamra" + +#: ../build/bin/preferences_gen.h:5096 msgid "scroll down to increase mask parameters" msgstr "maszkparaméterek növelése lefelé görgetéssel" -#: ../build/bin/preferences_gen.h:4454 +#: ../build/bin/preferences_gen.h:5109 msgid "" "when using the mouse scroll wheel to change mask parameters, scroll down to " "increase the mask size, feather size, opacity, brush hardness and gradient " @@ -1143,11 +1235,11 @@ "a gradiens görbület növeléséhez\n" "alapértelmezés szerint a felfelé görgetés növeli ezeket a paramétereket" -#: ../build/bin/preferences_gen.h:4476 +#: ../build/bin/preferences_gen.h:5130 msgid "middle mouse button zooms to 200%" msgstr "a középső egérgomb 200%-ra nagyít" -#: ../build/bin/preferences_gen.h:4491 +#: ../build/bin/preferences_gen.h:5144 #, no-c-format msgid "" "if enabled, the zoom level will cycle between 100%, 200% and fit to viewport " @@ -1159,32 +1251,32 @@ "illesztés és 100% között vált, és a „ctrl” billentyűt nyomva tartva " "állítható a nagyítási szint." -#: ../build/bin/preferences_gen.h:4513 +#: ../build/bin/preferences_gen.h:5165 msgid "pattern for the image information line" msgstr "képinformációs sáv mintája" -#: ../build/bin/preferences_gen.h:4534 +#: ../build/bin/preferences_gen.h:5185 msgid "see manual for a list of the tags you can use." msgstr "a használható címkéhez lásd a kézikönyvet." -#: ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:5206 msgid "position of the image information line" msgstr "képinformációs sáv pozíciója" -#: ../build/bin/preferences_gen.h:4630 +#: ../build/bin/preferences_gen.h:5240 msgid "border around image in darkroom mode" msgstr "keret a kép körül sötétkamra módban" -#: ../build/bin/preferences_gen.h:4650 ../build/bin/preferences_gen.h:6790 -#: ../build/bin/preferences_gen.h:7228 ../build/bin/preferences_gen.h:7789 -#: ../build/bin/preferences_gen.h:8139 ../build/bin/preferences_gen.h:8221 -#: ../build/bin/preferences_gen.h:8379 ../build/bin/preferences_gen.h:8493 -#: ../build/bin/preferences_gen.h:8540 +#: ../build/bin/preferences_gen.h:5260 ../build/bin/preferences_gen.h:7182 +#: ../build/bin/preferences_gen.h:7303 ../build/bin/preferences_gen.h:7584 +#: ../build/bin/preferences_gen.h:8048 ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8257 ../build/bin/preferences_gen.h:8389 +#: ../build/bin/preferences_gen.h:8504 ../build/bin/preferences_gen.h:8550 #, c-format msgid "double click to reset to `%d'" msgstr "dupla kattintással visszaállítja erre: „%d”" -#: ../build/bin/preferences_gen.h:4653 +#: ../build/bin/preferences_gen.h:5263 msgid "" "process the image in darkroom mode with a small border. set to 0 if you " "don't want any border." @@ -1192,20 +1284,20 @@ "sötétkamra módban a kép körül halvány keret jelenik meg. állítsa 0-ra, ha " "nem akar keretet." -#: ../build/bin/preferences_gen.h:4711 +#: ../build/bin/preferences_gen.h:5318 msgid "reduce resolution of preview image" msgstr "előnézeti kép felbontásának csökkentése" -#: ../build/bin/preferences_gen.h:4759 +#: ../build/bin/preferences_gen.h:5332 msgid "decrease to speed up preview rendering, may hinder accurate masking" msgstr "" "csökkentse a kirajzolás gyorsításához. akadályozhatja a precíz maszkolást" -#: ../build/bin/preferences_gen.h:4781 +#: ../build/bin/preferences_gen.h:5353 msgid "show loading screen between images" msgstr "töltésjelző képernyő megjelenítése képváltások között" -#: ../build/bin/preferences_gen.h:4795 +#: ../build/bin/preferences_gen.h:5366 msgid "" "show gray loading screen when navigating between images in the darkroom\n" "disable to just show a toast message" @@ -1214,15 +1306,15 @@ "képváltások között\n" "letiltva csak szövegbuborék jelenik meg" -#: ../build/bin/preferences_gen.h:4805 +#: ../build/bin/preferences_gen.h:5375 msgid "modules" msgstr "modulok" -#: ../build/bin/preferences_gen.h:4825 +#: ../build/bin/preferences_gen.h:5394 msgid "display of individual color channels" msgstr "egyedi színcsatornák megjelenítése" -#: ../build/bin/preferences_gen.h:4863 +#: ../build/bin/preferences_gen.h:5408 msgid "" "defines how color channels are displayed when activated in the parametric " "masks feature." @@ -1230,11 +1322,11 @@ "meghatározza, hogy a színcsatornák hogyan jelenjenek meg, amikor aktívak a " "paraméteres maszkon." -#: ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:5429 msgid "hide built-in presets for processing modules" msgstr "beépített tárolt beállítások elrejtése a feldolgozó moduloknál" -#: ../build/bin/preferences_gen.h:4899 +#: ../build/bin/preferences_gen.h:5442 msgid "" "hides built-in presets of processing modules in both presets and favourites " "menu." @@ -1242,24 +1334,24 @@ "elrejti a feldolgozó modulok beépített tárolt beállításait a tárolt " "beállításokból és a kedvencek menüből." -#: ../build/bin/preferences_gen.h:4921 ../build/bin/preferences_gen.h:4935 +#: ../build/bin/preferences_gen.h:5463 ../build/bin/preferences_gen.h:5476 msgid "show the guides widget in modules UI" msgstr "segédvonalvezérlő megjelenítése a modulok felhasználói felületén" -#: ../build/bin/preferences_gen.h:4957 +#: ../build/bin/preferences_gen.h:5497 msgid "expand a single processing module at a time" msgstr "egyszerre csak egy feldolgozó modul lehet nyitva" -#: ../build/bin/preferences_gen.h:4971 +#: ../build/bin/preferences_gen.h:5510 msgid "this option toggles the behavior of shift clicking in darkroom mode" msgstr "" "ez a beállítás a shift+klikk viselkedését változtatja meg sötétkamra módban" -#: ../build/bin/preferences_gen.h:4993 +#: ../build/bin/preferences_gen.h:5531 msgid "only collapse modules in current group" msgstr "csak a jelenlegi csoportban csukjon össze modulokat" -#: ../build/bin/preferences_gen.h:5007 +#: ../build/bin/preferences_gen.h:5544 msgid "" "if only expanding a single module at a time, only collapse other modules in " "the current group - ignore modules in other groups" @@ -1267,11 +1359,11 @@ "ha egyszerre csak egy modul lehet nyitva, csak az aktuális csoporton belül " "csukjon be modulokat – más csoportok moduljait figyelmen kívül hagyja" -#: ../build/bin/preferences_gen.h:5029 +#: ../build/bin/preferences_gen.h:5565 msgid "expand the module when it is activated, and collapse it when disabled" msgstr "modul kinyitása ha aktív, és becsukása ha le van tiltva" -#: ../build/bin/preferences_gen.h:5043 +#: ../build/bin/preferences_gen.h:5578 msgid "" "this option allows to expand or collapse automatically the module when it is " "enabled or disabled." @@ -1279,15 +1371,15 @@ "ez a beállítás lehetővé teszi modulok automatikus kinyitását vagy becsukását " "attól függően, hogy engedélyezve vannak-e." -#: ../build/bin/preferences_gen.h:5065 +#: ../build/bin/preferences_gen.h:5599 msgid "scroll processing modules to the top when expanded" msgstr "feldolgozómodulok kinyitásakor görgetés a tetejére" -#: ../build/bin/preferences_gen.h:5101 +#: ../build/bin/preferences_gen.h:5633 msgid "show right-side buttons in processing module headers" msgstr "jobb oldali gombok megjelenítése a feldolgozás modulok fejlécében" -#: ../build/bin/preferences_gen.h:5169 +#: ../build/bin/preferences_gen.h:5647 msgid "" "when the mouse is not over a module, the multi-instance, reset and preset " "buttons can be hidden:\n" @@ -1311,11 +1403,11 @@ "„átmenet”: elhalványítja egy fejléc összes gombját egyszerre,\n" "„összecsúszás”: átmenetesen elrejti az egyes gombokat, ha szükséges" -#: ../build/bin/preferences_gen.h:5191 +#: ../build/bin/preferences_gen.h:5668 msgid "show mask indicator in module headers" msgstr "maszkindikátor megjelenítése a modulfejlécekben" -#: ../build/bin/preferences_gen.h:5205 +#: ../build/bin/preferences_gen.h:5681 msgid "" "if enabled, an icon will be shown in the header of any processing modules " "that have a mask applied" @@ -1323,11 +1415,11 @@ "engedélyezve egy ikon jelenik meg minden olyan feldolgozó modul fejlécén, " "melyen maszk van használatban" -#: ../build/bin/preferences_gen.h:5227 +#: ../build/bin/preferences_gen.h:5702 msgid "prompt for name on addition of new instance" msgstr "név bekérése új példány hozzáadásakor" -#: ../build/bin/preferences_gen.h:5241 +#: ../build/bin/preferences_gen.h:5715 msgid "" "if enabled, a rename prompt will be present for each new module instance " "(either new instance or duplicate)" @@ -1335,11 +1427,11 @@ "ha engedélyezve van, egy beviteli mező jelenik meg az összes új " "modulpéldányon (az újakon és a duplikáltakon is)" -#: ../build/bin/preferences_gen.h:5263 +#: ../build/bin/preferences_gen.h:5736 msgid "automatically update module name" msgstr "modulnév automatikus frissítése" -#: ../build/bin/preferences_gen.h:5277 +#: ../build/bin/preferences_gen.h:5749 msgid "" "if enabled, the module name will be automatically updated to match a preset " "name or a preset instance name if present." @@ -1348,23 +1440,27 @@ "tárolt beállítás névnek vagy egy tárolt beállítás példány nevének, ha van " "ilyen." -#: ../build/bin/preferences_gen.h:5317 +#: ../build/bin/preferences_gen.h:5781 +msgid "processing" +msgstr "feldolgozás" + +#: ../build/bin/preferences_gen.h:5783 msgid "image processing" msgstr "képfeldolgozás" -#: ../build/bin/preferences_gen.h:5337 +#: ../build/bin/preferences_gen.h:5802 msgid "always use LittleCMS 2 to apply output color profile" msgstr "kimeneti színprofil készítése mindig LittleCMS 2-vel" -#: ../build/bin/preferences_gen.h:5351 +#: ../build/bin/preferences_gen.h:5815 msgid "this is slower than the default." msgstr "ez lassabb, mint az alapértelmezett." -#: ../build/bin/preferences_gen.h:5373 +#: ../build/bin/preferences_gen.h:5836 msgid "pixel interpolator (warp)" msgstr "pixelinterpoláló (torzítás)" -#: ../build/bin/preferences_gen.h:5416 +#: ../build/bin/preferences_gen.h:5850 msgid "" "pixel interpolator used in modules for rotation, lens correction, liquify, " "cropping and final scaling (bilinear, bicubic, lanczos2)." @@ -1372,33 +1468,33 @@ "a következő moduloknál használt pixelinterpoláló: forgatás, lencsekorrekció, " "cseppfolyósítás, vágás, végső méretezés (bilineáris, kettős köbös, lánczos2)." -#: ../build/bin/preferences_gen.h:5438 +#: ../build/bin/preferences_gen.h:5871 msgid "pixel interpolator (scaling)" msgstr "pixelinterpoláló (méretezés)" -#: ../build/bin/preferences_gen.h:5486 +#: ../build/bin/preferences_gen.h:5885 msgid "" "pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." msgstr "" "átméretezésnél használt pixelinterpoláló (bilineáris, kettős köbös, " "lánczos2, lánczos3)." -#: ../build/bin/preferences_gen.h:5508 +#: ../build/bin/preferences_gen.h:5906 msgid "LUT 3D root folder" msgstr "3D LUT gyökérkönyvtár" -#: ../build/bin/preferences_gen.h:5513 ../src/control/jobs/control_jobs.c:1688 -#: ../src/control/jobs/control_jobs.c:1742 ../src/gui/preferences.c:1081 -#: ../src/gui/presets.c:419 ../src/imageio/storage/disk.c:122 -#: ../src/imageio/storage/disk.c:178 ../src/imageio/storage/gallery.c:109 -#: ../src/imageio/storage/gallery.c:163 ../src/imageio/storage/latex.c:108 -#: ../src/imageio/storage/latex.c:162 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/import.c:1664 ../src/libs/styles.c:391 +#: ../build/bin/preferences_gen.h:5912 ../src/control/jobs/control_jobs.c:1691 +#: ../src/control/jobs/control_jobs.c:1745 ../src/gui/preferences.c:1080 +#: ../src/gui/presets.c:421 ../src/imageio/storage/disk.c:197 +#: ../src/imageio/storage/disk.c:261 ../src/imageio/storage/gallery.c:149 +#: ../src/imageio/storage/gallery.c:213 ../src/imageio/storage/latex.c:145 +#: ../src/imageio/storage/latex.c:199 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1673 ../src/libs/styles.c:391 #: ../src/lua/preferences.c:668 msgid "select directory" msgstr "könyvtár kiválasztása" -#: ../build/bin/preferences_gen.h:5529 +#: ../build/bin/preferences_gen.h:5926 msgid "" "this folder (and sub-folders) contains LUT files used by LUT 3D module. " "(need a restart)." @@ -1406,11 +1502,11 @@ "ez a könyvtár (és alkönyvtárai) tartalmazzák a LUT 3D modul által használt " "LUT fájlokat. (újraindítást igényel)." -#: ../build/bin/preferences_gen.h:5551 +#: ../build/bin/preferences_gen.h:5947 msgid "auto-apply pixel workflow defaults" msgstr "pixelmunkafolyamat alapértelmezéseinek automatikus alkalmazása" -#: ../build/bin/preferences_gen.h:5599 +#: ../build/bin/preferences_gen.h:5961 msgid "" "scene-referred workflow is based on linear modules and will auto-apply " "filmic or sigmoid, color calibration and exposure,\n" @@ -1424,11 +1520,11 @@ "alkalmazza az alapgörbe, fehéregyensúly modulokat és az örökölt " "modulsorrendet." -#: ../build/bin/preferences_gen.h:5621 +#: ../build/bin/preferences_gen.h:5982 msgid "auto-apply per camera basecurve presets" msgstr "fényképező tárolt alapgörbe-beállításainak automatikus alkalmazása" -#: ../build/bin/preferences_gen.h:5635 +#: ../build/bin/preferences_gen.h:5995 msgid "" "use the per-camera basecurve by default instead of the generic manufacturer " "one if there is one available (needs a restart).\n" @@ -1444,11 +1540,11 @@ "az alapgörbe automatikus alkalmazásának megakadályozásához az előbbi " "beállítást „nincs”-re kell állítani" -#: ../build/bin/preferences_gen.h:5657 +#: ../build/bin/preferences_gen.h:6016 msgid "detect monochrome previews" msgstr "monokróm előnéztetek detektálása" -#: ../build/bin/preferences_gen.h:5671 +#: ../build/bin/preferences_gen.h:6029 msgid "" "many monochrome images can be identified via EXIF and preview data. beware: " "this slows down imports and reading of EXIF data" @@ -1456,11 +1552,11 @@ "sok monokróm kép azonosítható EXIF és előnézeti adatokból. legyen óvatos, ez " "lelassítja az importálást és az EXIF adat olvasást" -#: ../build/bin/preferences_gen.h:5693 +#: ../build/bin/preferences_gen.h:6050 msgid "show warning messages" msgstr "figyelmeztető üzenetek megjelenítése" -#: ../build/bin/preferences_gen.h:5707 +#: ../build/bin/preferences_gen.h:6063 msgid "" "display messages in modules to warn beginner users when non-standard and " "possibly harmful settings are used in the pipeline.\n" @@ -1473,15 +1569,15 @@ "ezek az üzenetek akár tévesek is lehetnek és figyelmen kívül hagyhatóak, ha " "tudja, mit csinál. ez a beállítás teljesen elrejti őket." -#: ../build/bin/preferences_gen.h:5717 -msgid "CPU / GPU / memory" -msgstr "CPU / GPU / memória" +#: ../build/bin/preferences_gen.h:6072 +msgid "CPU / memory" +msgstr "CPU / memória" -#: ../build/bin/preferences_gen.h:5737 +#: ../build/bin/preferences_gen.h:6091 msgid "darktable resources" msgstr "darktable erőforrásai" -#: ../build/bin/preferences_gen.h:5786 +#: ../build/bin/preferences_gen.h:6106 #, no-c-format msgid "" "defines how much darktable may take from your system resources:\n" @@ -1512,11 +1608,11 @@ "memóriakilapozást és váratlan teljesítménycsökkenést okozhat. óvatosan " "használja, általános használatra nem ajánlott!" -#: ../build/bin/preferences_gen.h:5808 +#: ../build/bin/preferences_gen.h:6127 msgid "prefer performance over quality" msgstr "teljesítmény preferálása a minőséggel szemben" -#: ../build/bin/preferences_gen.h:5822 +#: ../build/bin/preferences_gen.h:6140 msgid "" "if switched on, thumbnails and previews are rendered at lower quality but 4 " "times faster" @@ -1524,57 +1620,15 @@ "bekapcsolva a bélyegképeket és előnézeteket alacsonyabb minőségen rendereli, " "de 4-szer gyorsabban" -#: ../build/bin/preferences_gen.h:5844 -msgid "enable disk backend for thumbnail cache" -msgstr "bélyegkép-gyorsítótár engedélyezése a lemezen" +#: ../build/bin/preferences_gen.h:6149 +msgid "OpenCL" +msgstr "OpenCL" -#: ../build/bin/preferences_gen.h:5858 -msgid "" -"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want. light table " -"performance will be increased greatly when browsing a lot.\n" -"to generate all thumbnails of your entire collection offline, run 'darktable-" -"generate-cache'." -msgstr "" -"ha engedélyezve van, bélyegképeket ír a lemezre (.cache/darktable/), amikor " -"azok kikerülnek a memória gyorsítótárból.\n" -"megjegyzendő, hogy ez sok tárhelyet igényel (több gigabájtnyi 20 kilobájtos " -"kép), amik sosem lesznek törölve.\n" -"ennek ellenére kézzel bármikor biztonságosan törölhetőek. böngészésnél az " -"átvilágító nézet teljesítményét jelentős mértékben növeli.\n" -"a teljes gyűjteményhez offline módon is elkészíthető a bélyegkép-" -"gyorsítótár, ehhez a „darktable-generate-cache” parancsot kell futtatni." - -#: ../build/bin/preferences_gen.h:5880 -msgid "enable disk backend for full preview cache" -msgstr "lemezháttértár a teljes előnézet gyorsítótárazásához" - -#: ../build/bin/preferences_gen.h:5894 -msgid "" -"if enabled, write full preview to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want.\n" -"light table performance will be increased greatly when zooming image in full " -"preview mode." -msgstr "" -"ha engedélyezve van, előnézeti képeket ír a lemezre (.cache/darktable/), " -"amikor azok kikerülnek a memória gyorsítótárból.\n" -"megjegyzendő, hogy ez sok tárhelyet igényel (több gigabájtnyi 20 kilobájtos " -"kép), amik sosem lesznek törölve.\n" -"ennek ellenére kézzel bármikor biztonságosan törölhetőek.\n" -"átvilágító nézetben a teljes méretű előnézetbe történő belenagyítás " -"teljesítményét jelentős mértékben növeli." - -#: ../build/bin/preferences_gen.h:5916 +#: ../build/bin/preferences_gen.h:6168 msgid "activate OpenCL support" msgstr "OpenCL-támogatás engedélyezése" -#: ../build/bin/preferences_gen.h:5930 +#: ../build/bin/preferences_gen.h:6181 msgid "" "if found, use OpenCL runtime on your system to speed up processing.\n" "can be switched on and off at any time." @@ -1583,23 +1637,32 @@ "érdekében.\n" "bármikor ki- és bekapcsolható." -#: ../build/bin/preferences_gen.h:5931 ../build/bin/preferences_gen.h:6002 -#: ../build/bin/preferences_gen.h:6078 ../build/bin/preferences_gen.h:7397 +#: ../build/bin/preferences_gen.h:6185 ../build/bin/preferences_gen.h:6230 +#: ../build/bin/preferences_gen.h:6274 ../build/bin/preferences_gen.h:6325 +#: ../build/bin/preferences_gen.h:6369 ../build/bin/preferences_gen.h:6413 +#: ../build/bin/preferences_gen.h:6457 ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6545 ../build/bin/preferences_gen.h:7700 msgid "not available" msgstr "nem érhető el" -#: ../build/bin/preferences_gen.h:5934 ../build/bin/preferences_gen.h:5938 -#: ../build/bin/preferences_gen.h:6005 ../build/bin/preferences_gen.h:6009 -#: ../build/bin/preferences_gen.h:6081 ../build/bin/preferences_gen.h:6085 -#: ../build/bin/preferences_gen.h:7400 ../build/bin/preferences_gen.h:7404 +#: ../build/bin/preferences_gen.h:6187 ../build/bin/preferences_gen.h:6188 +#: ../build/bin/preferences_gen.h:6232 ../build/bin/preferences_gen.h:6233 +#: ../build/bin/preferences_gen.h:6276 ../build/bin/preferences_gen.h:6277 +#: ../build/bin/preferences_gen.h:6327 ../build/bin/preferences_gen.h:6328 +#: ../build/bin/preferences_gen.h:6371 ../build/bin/preferences_gen.h:6372 +#: ../build/bin/preferences_gen.h:6415 ../build/bin/preferences_gen.h:6416 +#: ../build/bin/preferences_gen.h:6459 ../build/bin/preferences_gen.h:6460 +#: ../build/bin/preferences_gen.h:6503 ../build/bin/preferences_gen.h:6504 +#: ../build/bin/preferences_gen.h:6547 ../build/bin/preferences_gen.h:6548 +#: ../build/bin/preferences_gen.h:7702 ../build/bin/preferences_gen.h:7703 msgid "not available on this system" msgstr "nem elérhető ezen a rendszeren" -#: ../build/bin/preferences_gen.h:5958 +#: ../build/bin/preferences_gen.h:6212 msgid "OpenCL scheduling profile" msgstr "OpenCL ütemezési profil" -#: ../build/bin/preferences_gen.h:6001 +#: ../build/bin/preferences_gen.h:6226 msgid "" "defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled " "systems:\n" @@ -1616,54 +1679,127 @@ "– „több GPU”: mindkét pixelsort párhuzamosan dolgozza fel két külön GPU,\n" "– „nagyon gyors GPU”: mindkét pixelsort a GPU dolgozza fel egymás után." -#: ../build/bin/preferences_gen.h:6029 -msgid "tune OpenCL performance" -msgstr "OpenCL-teljesítmény finomhangolása" +#: ../build/bin/preferences_gen.h:6257 +msgid "use all device memory" +msgstr "eszköz összes memóriájának használata" -#: ../build/bin/preferences_gen.h:6077 +#: ../build/bin/preferences_gen.h:6270 msgid "" -"allows runtime tuning of OpenCL devices:\n" -" - 'memory size': uses a fixed headroom (400MB as default),\n" -" - 'memory transfer': tries a faster memory access mode (pinned memory) used " -"for tiling." -msgstr "" -"lehetővé teszi az OpenCL-eszközök futásidejű hangolását:\n" -"– „memóriaméret”: fix méretű szabad mozgásteret használ (alapértelmezés " -"szerint 400 MB),\n" -"– „memóriaátvitel”: a csempézéshez egy gyorsabb memóriaelérési módot " -"(rögzített memória) próbál meg." +"if enabled darktable will use all device memory except a safety margin " +"(headroom, default is 600MB)" +msgstr "" +"ha engedélyezve van, a darktable az eszköz összes memóriáját használhatja, " +"egy biztonsági határt leszámítva (mozgástér, alapértelmezett 600MB)" + +#: ../build/bin/preferences_gen.h:6289 +msgid "OpenCL drivers" +msgstr "OpenCL-meghajtóprogramok" + +#: ../build/bin/preferences_gen.h:6308 +msgid "Intel GPU" +msgstr "Intel GPU" + +#: ../build/bin/preferences_gen.h:6321 +msgid "Intel(R) OpenCL Graphics for all supported platforms (vendor provided)" +msgstr "" +"Intel(R) OpenCL Graphics minden támogatott platformra (gyártó által " +"biztosított)" + +#: ../build/bin/preferences_gen.h:6352 +msgid "Nvidia CUDA" +msgstr "Nvidia CUDA" + +#: ../build/bin/preferences_gen.h:6365 +msgid "Nvidia CUDA based OpenCL (vendor provided)" +msgstr "Nvidia CUDA alapú OpenCL (gyártó által biztosított)" + +#: ../build/bin/preferences_gen.h:6396 +msgid "AMD ROCm" +msgstr "AMD ROCm" + +#: ../build/bin/preferences_gen.h:6409 +msgid "AMD Accelerated Parallel Processing (vendor provided)" +msgstr "AMD Accelerated Parallel Processing (gyártó által biztosított)" + +#: ../build/bin/preferences_gen.h:6440 +msgid "RustiCL" +msgstr "RustiCL" -#: ../build/bin/preferences_gen.h:6143 +#: ../build/bin/preferences_gen.h:6453 +msgid "" +"RustiCL Mesa OpenCL, still unstable. if you want to use this, you should " +"disable the vendor driver" +msgstr "" +"RustiCL Mesa OpenCL, még nem stabil. ha ezt szeretné használni, le kell " +"tiltania a gyártói meghajtóprogramot" + +#: ../build/bin/preferences_gen.h:6484 +msgid "Apple" +msgstr "Apple" + +#: ../build/bin/preferences_gen.h:6497 +msgid "Apple OpenCL (vendor provided)" +msgstr "Apple OpenCL (gyártó által biztosított)" + +#: ../build/bin/preferences_gen.h:6528 +msgid "Microsoft OpenCLOn12" +msgstr "Microsoft OpenCLOn12" + +#: ../build/bin/preferences_gen.h:6541 +msgid "" +"Microsoft OpenCLOn12, only use this if the vendor provided driver does not " +"work or there is none provided." +msgstr "" +"Microsoft OpenCLOn12, csak akkor használja, ha a gyártó által biztosított " +"meghajtóprogram nem működik, vagy nem érhető el." + +#: ../build/bin/preferences_gen.h:6572 +msgid "other platforms" +msgstr "további platformok" + +#: ../build/bin/preferences_gen.h:6585 +msgid "" +"if set, all unspecified platforms are accepted. only do this if no vendor " +"driver is available" +msgstr "" +"bejelölve minden meghatározatlan platform el lesz fogadva. csak akkor " +"használja, ha nem érhető el gyártó által biztosított meghajtóprogram" + +#: ../build/bin/preferences_gen.h:6617 +msgid "security" +msgstr "biztonság" + +#: ../build/bin/preferences_gen.h:6638 msgid "ask before removing images from the library" msgstr "kérdezzen, mielőtt eltávolítja a képet az adatbázisból" -#: ../build/bin/preferences_gen.h:6157 +#: ../build/bin/preferences_gen.h:6651 msgid "always ask the user before removing image information from the library" msgstr "mindig kérdezzen, mielőtt képinformációt távolítana el az adatbázisból" -#: ../build/bin/preferences_gen.h:6179 +#: ../build/bin/preferences_gen.h:6672 msgid "ask before deleting images from disk" msgstr "kérdezzen, mielőtt képet töröl a lemezről" -#: ../build/bin/preferences_gen.h:6193 +#: ../build/bin/preferences_gen.h:6685 msgid "always ask the user before any image file is deleted" msgstr "" "mindig kérdezze meg a felhasználót, mielőtt egy képet törölne a lemezről" -#: ../build/bin/preferences_gen.h:6215 +#: ../build/bin/preferences_gen.h:6706 msgid "ask before discarding history stack" msgstr "kérdezzen, mielőtt elveti az előzményvermet" -#: ../build/bin/preferences_gen.h:6229 +#: ../build/bin/preferences_gen.h:6719 msgid "always ask the user before history stack is discarded on any image" msgstr "" "mindig kérdezze meg a felhasználót, mielőtt egy kép előzményvermét elvetné" -#: ../build/bin/preferences_gen.h:6251 +#: ../build/bin/preferences_gen.h:6740 msgid "try to use trash when deleting images" msgstr "kép törlésekor próbálja meg a kukába dobni" -#: ../build/bin/preferences_gen.h:6265 +#: ../build/bin/preferences_gen.h:6753 msgid "" "send files to trash instead of permanently deleting files on system that " "supports it" @@ -1671,27 +1807,27 @@ "a végleges törlés helyett a fájlt a kukába helyezi át, amennyiben a rendszer " "támogatja azt" -#: ../build/bin/preferences_gen.h:6287 +#: ../build/bin/preferences_gen.h:6774 msgid "ask before moving images from film roll folder" msgstr "kérdezzen, mielőtt képet helyezne át egy filmszalagról" -#: ../build/bin/preferences_gen.h:6301 +#: ../build/bin/preferences_gen.h:6787 msgid "always ask the user before any image file is moved." msgstr "mindig kérdezze meg a felhasználót, mielőtt egy képfájlt mozgatna." -#: ../build/bin/preferences_gen.h:6323 +#: ../build/bin/preferences_gen.h:6808 msgid "ask before copying images to new film roll folder" msgstr "kérdezzen, mielőtt képeket másolna egy új filmszalag könyvtárba" -#: ../build/bin/preferences_gen.h:6337 +#: ../build/bin/preferences_gen.h:6821 msgid "always ask the user before any image file is copied." msgstr "mindig kérdezze meg a felhasználót, mielőtt egy képfájlt másolna." -#: ../build/bin/preferences_gen.h:6359 +#: ../build/bin/preferences_gen.h:6842 msgid "ask before removing empty folders" msgstr "kérdezzen, mielőtt eltávolítja az üres könyvtárakat" -#: ../build/bin/preferences_gen.h:6373 +#: ../build/bin/preferences_gen.h:6855 msgid "" "always ask the user before removing any empty folder. this can happen after " "moving or deleting images." @@ -1699,54 +1835,54 @@ "mindig kérdezze meg a felhasználót, mielőtt törölne egy üres könyvtárat. ez " "képek törlése vagy mozgatása után történhet meg." -#: ../build/bin/preferences_gen.h:6395 +#: ../build/bin/preferences_gen.h:6876 msgid "ask before deleting a tag" msgstr "címke törlése előtt kérdezzen" -#: ../build/bin/preferences_gen.h:6430 +#: ../build/bin/preferences_gen.h:6909 msgid "ask before deleting a style" msgstr "stílus törlése előtt kérdezzen" -#: ../build/bin/preferences_gen.h:6465 +#: ../build/bin/preferences_gen.h:6942 msgid "ask before deleting a preset" msgstr "tárolt beállítás törlése előtt kérdezzen" -#: ../build/bin/preferences_gen.h:6479 +#: ../build/bin/preferences_gen.h:6955 msgid "will ask for confirmation before deleting or overwriting a preset" msgstr "" "megerősítést fog kérni egy tárolt beállítás törlése vagy felülírása előtt" -#: ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6976 msgid "ask before exporting in overwrite mode" msgstr "felülírás módban kérdezzen mielőtt exportálna" -#: ../build/bin/preferences_gen.h:6515 +#: ../build/bin/preferences_gen.h:6989 msgid "will ask for confirmation before exporting files in overwrite mode" msgstr "" "megerősítést fog kérni mielőtt fájlokat exportálna amikor a felülírás mód be " "van kapcsolva" #. italic -#: ../build/bin/preferences_gen.h:6525 ../src/libs/tools/viewswitcher.c:148 +#: ../build/bin/preferences_gen.h:6998 ../src/libs/tools/viewswitcher.c:148 msgid "other" msgstr "többi" -#: ../build/bin/preferences_gen.h:6545 +#: ../build/bin/preferences_gen.h:7017 msgid "password storage backend to use" msgstr "használandó jelszótároló háttérszolgáltatás" -#: ../build/bin/preferences_gen.h:6595 +#: ../build/bin/preferences_gen.h:7035 msgid "" "the storage backend for password storage: auto, none, libsecret, kwallet" msgstr "" "a jelszavak tárolásához használandó kulcstartó: automata, nincs, libsecret, " "kwallet" -#: ../build/bin/preferences_gen.h:6617 +#: ../build/bin/preferences_gen.h:7056 msgid "executable for playing audio files" msgstr "hanglejátszó program" -#: ../build/bin/preferences_gen.h:6635 +#: ../build/bin/preferences_gen.h:7074 msgid "" "this external program is used to play audio files some cameras record to " "keep notes for images" @@ -1754,15 +1890,19 @@ "a külső program azoknak a hangfájloknak a lejátszására szolgál, amiket " "néhány fényképező jegyzetként rögzít a képekhez" -#: ../build/bin/preferences_gen.h:6675 ../src/control/crawler.c:724 +#: ../build/bin/preferences_gen.h:7106 +msgid "storage" +msgstr "tárolás" + +#: ../build/bin/preferences_gen.h:7108 ../src/control/crawler.c:717 msgid "database" msgstr "adatbázis" -#: ../build/bin/preferences_gen.h:6695 +#: ../build/bin/preferences_gen.h:7127 msgid "create database snapshot" msgstr "adatbázis-pillanatkép készítése" -#: ../build/bin/preferences_gen.h:6748 +#: ../build/bin/preferences_gen.h:7141 msgid "" "database snapshots are created right before closing darktable. options allow " "you to choose how often to make snapshots:\n" @@ -1785,11 +1925,11 @@ "24 óra\n" "– „bezáráskor”: a darktable minden egyes bezárásakor készít pillanatképet" -#: ../build/bin/preferences_gen.h:6770 +#: ../build/bin/preferences_gen.h:7162 msgid "how many snapshots to keep" msgstr "mennyi pillanatképet tartson meg" -#: ../build/bin/preferences_gen.h:6793 +#: ../build/bin/preferences_gen.h:7185 msgid "" "after successfully creating snapshot, how many older snapshots to keep " "(excluding mandatory version update ones). enter -1 to keep all snapshots\n" @@ -1802,37 +1942,38 @@ "ne feledje, a pillanatképek helyet foglalnak és a sikeres helyreállításhoz " "csak a legutolsóra lehet szüksége" -#: ../build/bin/preferences_gen.h:6803 ../src/control/crawler.c:723 -msgid "XMP" -msgstr "XMP" +#: ../build/bin/preferences_gen.h:7194 ../src/libs/copy_history.c:149 +msgid "XMP sidecar files" +msgstr "XMP kísérőfájlok" -#: ../build/bin/preferences_gen.h:6823 -msgid "write sidecar file for each image" -msgstr "kísérőfájl mentése az egyes fájlokhoz" +#: ../build/bin/preferences_gen.h:7213 +msgid "create XMP files" +msgstr "XMP-fájlok létrehozása" -#: ../build/bin/preferences_gen.h:6866 +#: ../build/bin/preferences_gen.h:7227 msgid "" -"the sidecar files hold information about all your development steps to allow " +"XMP sidecar files hold information about all your development steps to allow " "flawless re-importing of image files.\n" "\n" -"depending on the selected mode sidecar files will be written:\n" +"depending on the selected mode sidecar files will be created:\n" " - 'never'\n" " - 'on import': immediately after importing the image\n" -" - 'after edit': after any user change on the image." +" - 'after edit': after any user change on the image or adding tags." msgstr "" -"a kísérőfájlok információkat tartalmaznak az összes kidolgozási lépésről, " -"hogy lehetővé tegyék a képfájlok hibátlan újraimportálását.\n" +"az XMP-kísérőfájlok az ön képkidolgozási lépéseinek adatait tartalmazzák, " +"lehetővé téve a képfájlok tökéletes újraimportálását.\n" "\n" -"a kiválasztott módtól függően a kísérőfájlok ki lesznek írva:\n" -" – „soha”\n" -" – „importálásnál”: rögtön a kép importálása után\n" -" – „szerkesztés után”: bármilyen képen végzett módosítás után" +"a kiválasztott módtól függően a kísérőfájlok létrejöhetnek:\n" +" - „soha”\n" +" - „importálásnál”: közvetlenül a kép importálása után\n" +" - „szerkesztés után”: a kép bármilyen módosítása után vagy címkék " +"hozzáadásakor." -#: ../build/bin/preferences_gen.h:6888 +#: ../build/bin/preferences_gen.h:7248 msgid "store XMP tags in compressed format" msgstr "XMP adatok tárolása tömörített formában" -#: ../build/bin/preferences_gen.h:6931 +#: ../build/bin/preferences_gen.h:7262 msgid "" "entries in XMP tags can get rather large and may exceed the available space " "to store the history stack in output files.\n" @@ -1843,11 +1984,25 @@ "ez a beállítás lehetővé teszi az XMP-címkék tömörítését, ezáltal tárhelyet " "takarítva meg." -#: ../build/bin/preferences_gen.h:6953 +#: ../build/bin/preferences_gen.h:7283 +msgid "auto-save interval" +msgstr "automatikus mentési időköz" + +#: ../build/bin/preferences_gen.h:7306 +msgid "" +"automatically save history while developing using the given interval (in " +"seconds); set to zero to disable auto-saving. auto-saving might be disabled " +"on slow drives." +msgstr "" +"kidolgozás közben az előzmények automatikus mentése az adott intervallum " +"szerint (másodpercben); állítsa nullára az automatikus mentés letiltásához. " +"az automatikus mentés le lehet tiltva lassú meghajtókon." + +#: ../build/bin/preferences_gen.h:7327 msgid "look for updated XMP files on startup" msgstr "frissült XMP fájlok keresése indításnál" -#: ../build/bin/preferences_gen.h:6967 +#: ../build/bin/preferences_gen.h:7340 msgid "" "check file modification times of all XMP files on startup to check if any " "got updated in the meantime" @@ -1855,15 +2010,19 @@ "indításkor ellenőrzi az XMP fájlok módosítási idejét, és ellenőrzi, hogy " "módosultak-e időközben" -#: ../build/bin/preferences_gen.h:7007 +#: ../build/bin/preferences_gen.h:7372 +msgid "miscellaneous" +msgstr "vegyes" + +#: ../build/bin/preferences_gen.h:7374 msgid "interface" msgstr "interfész" -#: ../build/bin/preferences_gen.h:7027 +#: ../build/bin/preferences_gen.h:7393 msgid "load default shortcuts at startup" msgstr "alapértelmezett gyorsbillentyűk betöltése indításkor" -#: ../build/bin/preferences_gen.h:7041 +#: ../build/bin/preferences_gen.h:7406 msgid "" "load default shortcuts before user settings. switch off to prevent deleted " "defaults returning" @@ -1872,30 +2031,30 @@ "gyorsbillentyűket. kapcsolja ki, ha nem szeretné, hogy törölt " "alapértelmezettek visszakerüljenek" -#: ../build/bin/preferences_gen.h:7063 +#: ../build/bin/preferences_gen.h:7427 msgid "scale slider step with min/max" msgstr "csúszka lépéseinek min/max skálázása" -#: ../build/bin/preferences_gen.h:7077 +#: ../build/bin/preferences_gen.h:7440 msgid "vary slider step size with min/max range" msgstr "csúszka lépésméretének változtatása a min/max tartományban" -#: ../build/bin/preferences_gen.h:7099 +#: ../build/bin/preferences_gen.h:7461 msgid "sort built-in presets first" msgstr "beépített tárolt beállítások rendezése" -#: ../build/bin/preferences_gen.h:7113 +#: ../build/bin/preferences_gen.h:7474 msgid "" "whether to show built-in presets first before user's presets in presets menu." msgstr "" "a beépített tárolt beállítások a felhasználó által létrehozottak előtt " "jelenjenek-e meg a tárolt beállítás menüben." -#: ../build/bin/preferences_gen.h:7135 +#: ../build/bin/preferences_gen.h:7495 msgid "mouse wheel scrolls modules side panel by default" msgstr "az egérgörgő alapértelmezetten görgeti az oldalsávot" -#: ../build/bin/preferences_gen.h:7149 +#: ../build/bin/preferences_gen.h:7508 msgid "" "when enabled, use mouse wheel to scroll modules side panel. use ctrl+alt to " "use mouse wheel for data entry. when disabled, this behavior is reversed" @@ -1904,11 +2063,11 @@ "görgetéséhez. használja a ctr+alt-ot egérgörgővel történő adatbevitelhez. " "letiltva ezt a beállítás fordítva működik" -#: ../build/bin/preferences_gen.h:7171 +#: ../build/bin/preferences_gen.h:7529 msgid "always show panels' scrollbars" msgstr "mindig jelenjen meg a panelek gördítősávja" -#: ../build/bin/preferences_gen.h:7185 +#: ../build/bin/preferences_gen.h:7542 msgid "" "defines whether the panel scrollbars should be always visible or activated " "only depending on the content. (need a restart)" @@ -1916,11 +2075,11 @@ "meghatározza, hogy a panel görgetősávok mindig láthatók kell legyenek, vagy " "csak a kontextus függvényében. (újraindítást igényel)" -#: ../build/bin/preferences_gen.h:7207 +#: ../build/bin/preferences_gen.h:7563 msgid "duration of the UI transitions in ms" msgstr "felhasználói felület áttűnéseinek ideje ms-ban" -#: ../build/bin/preferences_gen.h:7231 +#: ../build/bin/preferences_gen.h:7587 msgid "" "how long the transitions take (in ms) for expanding or collapsing modules " "and other UI elements" @@ -1928,19 +2087,19 @@ "mennyi ideig tartsanak az áttűnések (ezredmásodpercben) a modulok " "kinyitásakor és összecsukásakor, és egyéb felhasználói felületi elemeknél" -#: ../build/bin/preferences_gen.h:7253 +#: ../build/bin/preferences_gen.h:7608 msgid "position of the scopes module" msgstr "a szkópok modul pozíciója" -#: ../build/bin/preferences_gen.h:7291 +#: ../build/bin/preferences_gen.h:7622 msgid "position the scopes at the top-left or top-right of the screen" msgstr "a szkópok pozicionálása a képernyő bal felső vagy jobb felső részére" -#: ../build/bin/preferences_gen.h:7313 +#: ../build/bin/preferences_gen.h:7643 msgid "method to use for getting the display profile" msgstr "a kijelzőprofil lekérésének módja" -#: ../build/bin/preferences_gen.h:7356 +#: ../build/bin/preferences_gen.h:7657 msgid "" "this option allows to force a specific means of getting the current display " "profile.\n" @@ -1950,11 +2109,11 @@ "kényszerítését.\n" "ez akkor hasznos, ha valamelyik módszer rossz eredményt ad" -#: ../build/bin/preferences_gen.h:7378 +#: ../build/bin/preferences_gen.h:7678 msgid "order or exclude MIDI devices" msgstr "MIDI-eszközök rendezése vagy kizárása" -#: ../build/bin/preferences_gen.h:7396 +#: ../build/bin/preferences_gen.h:7696 msgid "" "comma-separated list of device name fragments that if matched load MIDI " "device at id given by location in list\n" @@ -1968,72 +2127,68 @@ "kódolást és a potméterek számát, pl. „BeatStep:63:16”" #. tags -#: ../build/bin/preferences_gen.h:7412 ../src/develop/lightroom.c:1516 -#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:333 -#: ../src/libs/image.c:558 ../src/libs/metadata_view.c:162 +#: ../build/bin/preferences_gen.h:7715 ../src/develop/lightroom.c:1573 +#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:322 +#: ../src/libs/image.c:614 ../src/libs/metadata_view.c:166 msgid "tags" msgstr "címkék" -#: ../build/bin/preferences_gen.h:7432 +#: ../build/bin/preferences_gen.h:7734 msgid "omit hierarchy in simple tag lists" msgstr "hierarchia kihagyása az egyszerű címkelistában" -#: ../build/bin/preferences_gen.h:7446 +#: ../build/bin/preferences_gen.h:7747 msgid "" -"when creating XMP file the hierarchical tags are also added as a simple " -"list\n" +"when creating an XMP sidecar file the hierarchical tags are also added as a " +"simple list\n" "of non-hierarchical ones to make them visible to some other programs.\n" "when this option is checked darktable will only include their last part\n" "and ignore the rest. so 'foo|bar|baz' will only add 'baz'." msgstr "" -"XMP fájl készítésekor a hierarchikus címkék is belekerülnek egyszerű,\n" +"XMP fájl létrehozásakor a hierarchikus címkék is belekerülnek egyszerű,\n" "nem hierarchikus listaként, hogy láthatóak legyenek más programokban.\n" "ha ez az opció engedélyezve van, a darktable csak az utolsó szintet teszi " "bele,\n" "és a többit mellőzi. például a „foo|bar|baz” egyszerűen „baz” lesz." -#: ../build/bin/preferences_gen.h:7456 +#: ../build/bin/preferences_gen.h:7756 msgid "shortcuts with multiple instances" msgstr "gyorsbillentyűk több példánnyal" -#: ../build/bin/preferences_gen.h:7461 -msgid "" -"where multiple module instances are present, these preferences control rules " -"that are applied (in order) to decide which module instance shortcuts will " -"be applied to" -msgstr "" -"ahol több modulpéldány van jelen, ezek a beállítások vezérlik azokat a " -"szabályokat, amelyek (sorrendben) meghatározzák, hogy mely modulpéldányok " -"gyorsbillentyűi legyenek alkalmazva" - -#: ../build/bin/preferences_gen.h:7477 +#: ../build/bin/preferences_gen.h:7775 msgid "prefer focused instance" msgstr "fókuszban lévő példányok preferálása" -#: ../build/bin/preferences_gen.h:7491 +#: ../build/bin/preferences_gen.h:7788 msgid "" -"if an instance of the module has focus, apply shortcut to that instance\n" +"where multiple instances of a module are present, apply shortcuts to the " +"instance that has focus\n" +"if none are focused, the preferences below control rules that are followed " +"(in order) to decide which module instance shortcuts will be applied to.\n" "note: blending shortcuts always apply to the focused instance" msgstr "" -"ha a modul egy példánya fókuszban van, a gyorsbillentyűt azon a példányon " -"hajtsa végre.\n" +"ha egy modul több példányban van jelen és egyik sincs fókuszban, " +"gyorsbillentyű alkalmazáskor\n" +"az alábbi beállítások vezérlik azokat a szabályokat, amelyek (sorrendben) " +"meghatározzák,\n" +"hogy mely modulpéldányra legyenek alkalmazva a gyorsbillentyűk.\n" "megjegyzés: a keverési gyorsbillentyűk mindig a fókuszált példányra " "vonatkoznak" -#: ../build/bin/preferences_gen.h:7513 +#: ../build/bin/preferences_gen.h:7809 msgid "prefer expanded instances" msgstr "kinyitott példányok preferálása" -#: ../build/bin/preferences_gen.h:7527 +#: ../build/bin/preferences_gen.h:7822 msgid "if instances of the module are expanded, ignore collapsed instances" msgstr "" "ha a modul példányai nyitva vannak; az összezártakat figyelmen kívül hagyja" -#: ../build/bin/preferences_gen.h:7549 +#: ../build/bin/preferences_gen.h:7843 msgid "prefer enabled instances" msgstr "engedélyezett példányok preferálása" -#: ../build/bin/preferences_gen.h:7563 +#: ../build/bin/preferences_gen.h:7856 msgid "" "after applying the above rule, if instances of the module are active, ignore " "inactive instances" @@ -2041,11 +2196,11 @@ "a fentebbi szabály alkalmazása után, ha a modul példányai aktívak; az " "inaktívakat figyelmen kívül hagyja" -#: ../build/bin/preferences_gen.h:7585 +#: ../build/bin/preferences_gen.h:7877 msgid "prefer unmasked instances" msgstr "maszkolatlan példányok preferálása" -#: ../build/bin/preferences_gen.h:7599 +#: ../build/bin/preferences_gen.h:7890 msgid "" "after applying the above rules, if instances of the module are unmasked, " "ignore masked instances" @@ -2053,11 +2208,11 @@ "a fentebbi szabályok alkalmazása után, ha a modul példányai maszkolatlanok; " "a maszkolt példányokat figyelmen kívül hagyja" -#: ../build/bin/preferences_gen.h:7621 +#: ../build/bin/preferences_gen.h:7911 msgid "selection order" msgstr "kiválasztás sorrendje" -#: ../build/bin/preferences_gen.h:7659 +#: ../build/bin/preferences_gen.h:7925 msgid "" "after applying the above rules, apply the shortcut based on its position in " "the pixelpipe" @@ -2065,11 +2220,11 @@ "a fentebbi szabályok alkalmazása után a gyorsbillentyűt a pixelfeldolgozási " "sor szerint alkalmazza" -#: ../build/bin/preferences_gen.h:7681 +#: ../build/bin/preferences_gen.h:7946 msgid "allow visual assignment to specific instances" msgstr "vizuális hozzárendelés engedélyezése meghatározott példányokhoz" -#: ../build/bin/preferences_gen.h:7695 +#: ../build/bin/preferences_gen.h:7959 msgid "" "when multiple instances are present on an image this allows shortcuts to be " "visually assigned to those specific instances\n" @@ -2079,15 +2234,15 @@ "gyorsbillentyű vizuális hozzárendelését az adott példányokhoz\n" "különben a gyorsbillentyűk mindig a preferált példányokhoz lesznek rendelve" -#: ../build/bin/preferences_gen.h:7705 +#: ../build/bin/preferences_gen.h:7968 msgid "map / geolocalization view" msgstr "térkép / geolokalizáció nézet" -#: ../build/bin/preferences_gen.h:7725 +#: ../build/bin/preferences_gen.h:7987 msgid "pretty print the image location" msgstr "kép készítési helyének formázása" -#: ../build/bin/preferences_gen.h:7739 +#: ../build/bin/preferences_gen.h:8000 msgid "" "show a more readable representation of the location in the image information " "module" @@ -2095,65 +2250,28 @@ "a képinformációs dobozban a koordináták olvashatóbb (fok-perc-másodperc) " "formában jelennek meg" -#: ../build/bin/preferences_gen.h:7749 +#: ../build/bin/preferences_gen.h:8009 msgid "slideshow view" msgstr "diavetítés nézet" -#: ../build/bin/preferences_gen.h:7769 +#: ../build/bin/preferences_gen.h:8028 msgid "waiting time between each picture in slideshow" msgstr "várakozási idő a diavetítés képei között" -#: ../build/bin/preferences_gen.h:7831 -msgid "session options" -msgstr "munkamenet-beállítások" - -#: ../build/bin/preferences_gen.h:7851 -msgid "base directory naming pattern" -msgstr "alapkönyvtár-elnevezési minta" - -#: ../build/bin/preferences_gen.h:7869 ../build/bin/preferences_gen.h:7909 -msgid "part of full import path for an import session" -msgstr "" -"a teljes méretű importálási útvonal része az importálási munkamenet során" - -#: ../build/bin/preferences_gen.h:7891 -msgid "sub directory naming pattern" -msgstr "alkönyvtár-elnevezési minta" - -#: ../build/bin/preferences_gen.h:7931 -msgid "keep original filename" -msgstr "eredeti fájlnév megtartása" - -#: ../build/bin/preferences_gen.h:7945 -msgid "" -"keep original filename instead of a pattern while importing from camera or " -"card" -msgstr "" -"fényképezőről importálás során az eredeti fájlnév megtartása a mintával " -"megadott helyett" - -#: ../build/bin/preferences_gen.h:7967 -msgid "file naming pattern" -msgstr "fájlnévminta" - -#: ../build/bin/preferences_gen.h:7985 -msgid "file naming pattern used for a import session" -msgstr "az importálási munkamenet során használt fájlelnevezési minta" - -#: ../build/bin/preferences_gen.h:8022 +#: ../build/bin/preferences_gen.h:8088 msgid "do not set the 'uncategorized' entry for tags" msgstr "ne állítsa a címkéket „kategorizálatlan”-ra" -#: ../build/bin/preferences_gen.h:8036 +#: ../build/bin/preferences_gen.h:8101 msgid "" "do not set the 'uncategorized' entry for tags which do not have children" msgstr "gyermekek nélküli címkékre ne tegye rá a „kategorizálatlan” elemet" -#: ../build/bin/preferences_gen.h:8058 +#: ../build/bin/preferences_gen.h:8122 msgid "tags case sensitivity" msgstr "címkék nagybetűérzékenysége" -#: ../build/bin/preferences_gen.h:8096 +#: ../build/bin/preferences_gen.h:8136 msgid "" "tags case sensitivity. without the Sqlite ICU extension, insensitivity works " "only for the 26 latin letters" @@ -2161,29 +2279,29 @@ "címkék nagybetűérzékenysége. az Sqlite ICU kiterjesztés nélkül a nem " "nagybetű érzékeny mód csak a 26 latin karakterre működik" -#: ../build/bin/preferences_gen.h:8118 ../build/bin/preferences_gen.h:8358 +#: ../build/bin/preferences_gen.h:8157 ../build/bin/preferences_gen.h:8368 msgid "number of collections to be stored" msgstr "eltárolandó gyűjtemények száma" -#: ../build/bin/preferences_gen.h:8142 ../build/bin/preferences_gen.h:8382 +#: ../build/bin/preferences_gen.h:8181 ../build/bin/preferences_gen.h:8392 msgid "the number of recent collections to store and show in this list" msgstr "a listában tárolandó és megjelenítendő legutóbbi gyűjtemények száma" -#: ../build/bin/preferences_gen.h:8164 +#: ../build/bin/preferences_gen.h:8202 msgid "hide the history button and show a specific module instead" msgstr "előzmények gomb elrejtése és a megfelelő modul megjelenítése" -#: ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8215 msgid "hide the history button and show the recent collections module instead" msgstr "" "elrejti az előzmények gombot és megjeleníti helyette a legutóbbi " "gyűjtemények modult" -#: ../build/bin/preferences_gen.h:8200 +#: ../build/bin/preferences_gen.h:8236 msgid "number of folder levels to show in lists" msgstr "listában megjelenítendő könyvtártármélység" -#: ../build/bin/preferences_gen.h:8224 +#: ../build/bin/preferences_gen.h:8260 msgid "" "the number of folder levels to show in film roll names, starting from the " "right" @@ -2191,19 +2309,24 @@ "azon könyvtárszintek száma (jobbról számolva), melyek a filmtekrecs címében " "meg kell jelenjenek" -#: ../build/bin/preferences_gen.h:8246 +#: ../build/bin/preferences_gen.h:8281 msgid "sort film rolls by" msgstr "filmtekercsek rendezésének módja" -#: ../build/bin/preferences_gen.h:8284 +#: ../build/bin/preferences_gen.h:8292 +msgctxt "preferences" +msgid "chronological" +msgstr "kronologikus" + +#: ../build/bin/preferences_gen.h:8295 msgid "sets the collections-list order for film rolls" msgstr "beállítja a filmtekercsek gyűjteménylistájának sorrendjét" -#: ../build/bin/preferences_gen.h:8306 +#: ../build/bin/preferences_gen.h:8316 msgid "sort collection descending" msgstr "gyűjtemény rendezése csökkenően" -#: ../build/bin/preferences_gen.h:8320 +#: ../build/bin/preferences_gen.h:8329 msgid "" "sort the following collections in descending order: 'film roll' by folder, " "'folder', 'times' (e.g. 'capture date')" @@ -2211,11 +2334,11 @@ "a következő gyűjtemények rendezése csökkenő sorrendben: ”filmszalag” " "mappánként, „mappa”, „idők” (pl. „készítés ideje”)" -#: ../build/bin/preferences_gen.h:8404 +#: ../build/bin/preferences_gen.h:8413 msgid "prefer a history button in the collections module" msgstr "előzmények gomb preferálása a gyűjtemények modulban" -#: ../build/bin/preferences_gen.h:8418 +#: ../build/bin/preferences_gen.h:8426 msgid "" "hide this module and instead access collections history with a button in the " "collections module" @@ -2223,11 +2346,11 @@ "elrejti ezt a modult és helyette a gyűjtemények modul gombja segítségével " "érhetőek el gyűjtemények előzményei" -#: ../build/bin/preferences_gen.h:8472 +#: ../build/bin/preferences_gen.h:8483 msgid "suggested tags level of confidence" msgstr "javasolt címkék megbízhatóságának szintje" -#: ../build/bin/preferences_gen.h:8497 +#: ../build/bin/preferences_gen.h:8508 #, no-c-format msgid "" "level of confidence to include the tag in the suggestions list, 0: all " @@ -2238,11 +2361,11 @@ "szintje, 0: minden társított címke, 99: 99%-ban egyező társított címkék, " "100: nincs egyező címke, csak a legutóbbi címkék jelenjenek meg (gyorsabb)" -#: ../build/bin/preferences_gen.h:8519 +#: ../build/bin/preferences_gen.h:8529 msgid "number of recently attached tags" msgstr "nemrég hozzákapcsolt címkék száma" -#: ../build/bin/preferences_gen.h:8543 +#: ../build/bin/preferences_gen.h:8553 msgid "" "number of recently attached tags which are included in the suggestions list. " "the value `-1' disables the recent list" @@ -2268,14 +2391,15 @@ #. focal length #: ../build/lib/darktable/plugins/introspection_ashift.c:148 #: ../build/lib/darktable/plugins/introspection_ashift.c:291 -#: ../src/common/collection.c:714 ../src/gui/preferences.c:844 -#: ../src/gui/presets.c:718 ../src/libs/camera.c:550 -#: ../src/libs/metadata_view.c:143 +#: ../src/common/collection.c:627 ../src/gui/preferences.c:842 +#: ../src/gui/presets.c:721 ../src/libs/camera.c:550 +#: ../src/libs/metadata_view.c:145 msgid "focal length" -msgstr "fókusztávolság" +msgstr "gyújtótávolság" #: ../build/lib/darktable/plugins/introspection_ashift.c:154 #: ../build/lib/darktable/plugins/introspection_ashift.c:295 +#: ../src/libs/metadata_view.c:147 msgid "crop factor" msgstr "képkivágási szorzó" @@ -2291,7 +2415,7 @@ #: ../build/lib/darktable/plugins/introspection_ashift.c:172 #: ../build/lib/darktable/plugins/introspection_ashift.c:307 -#: ../src/iop/lens.cc:3784 +#: ../src/iop/lens.cc:4438 msgid "lens model" msgstr "lencsemodell" @@ -2313,14 +2437,14 @@ #. DEVELOP_MASK_DISABLED #: ../build/lib/darktable/plugins/introspection_ashift.c:366 -#: ../build/lib/darktable/plugins/introspection_colorin.c:300 +#: ../build/lib/darktable/plugins/introspection_colorin.c:303 #: ../build/lib/darktable/plugins/introspection_highlights.c:310 #: ../build/lib/darktable/plugins/introspection_vignette.c:264 #: ../src/develop/blend_gui.c:153 ../src/develop/blend_gui.c:182 -#: ../src/develop/blend_gui.c:3410 ../src/gui/accelerators.c:130 -#: ../src/gui/accelerators.c:140 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/imageio/format/j2k.c:669 -#: ../src/libs/live_view.c:361 ../src/libs/masks.c:113 +#: ../src/develop/blend_gui.c:3429 ../src/gui/accelerators.c:148 +#: ../src/gui/accelerators.c:158 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/imageio/format/j2k.c:686 +#: ../src/libs/live_view.c:361 msgid "off" msgstr "ki" @@ -2344,7 +2468,7 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:146 #: ../build/lib/darktable/plugins/introspection_basecurve.c:239 -#: ../src/libs/metadata_view.c:142 +#: ../src/libs/metadata_view.c:144 msgid "exposure bias" msgstr "expozícióeltolás" @@ -2364,16 +2488,16 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:262 #: ../build/lib/darktable/plugins/introspection_basicadj.c:249 #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:153 -#: ../build/lib/darktable/plugins/introspection_lens.cc:444 +#: ../build/lib/darktable/plugins/introspection_lens.cc:533 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:251 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:153 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:270 -#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2193 -#: ../src/iop/channelmixerrgb.c:4667 ../src/iop/clipping.c:1900 -#: ../src/iop/clipping.c:2093 ../src/iop/clipping.c:2108 -#: ../src/iop/retouch.c:463 ../src/libs/collect.c:1907 -#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1023 -#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:132 +#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2214 +#: ../src/iop/channelmixerrgb.c:4735 ../src/iop/clipping.c:1953 +#: ../src/iop/clipping.c:2146 ../src/iop/clipping.c:2161 +#: ../src/iop/retouch.c:507 ../src/libs/collect.c:2043 +#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1101 +#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:109 #: ../src/libs/live_view.c:311 ../src/libs/print_settings.c:2835 msgid "none" msgstr "nincs" @@ -2391,7 +2515,7 @@ #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:252 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:154 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:271 -#: ../src/develop/blend_gui.c:2363 ../src/develop/blend_gui.c:2397 +#: ../src/develop/blend_gui.c:2379 ../src/develop/blend_gui.c:2413 msgid "luminance" msgstr "fénysűrűség" @@ -2501,7 +2625,7 @@ #: ../build/lib/darktable/plugins/introspection_graduatednd.c:144 #: ../build/lib/darktable/plugins/introspection_watermark.c:136 #: ../build/lib/darktable/plugins/introspection_watermark.c:265 -#: ../src/iop/ashift.c:6112 ../src/libs/masks.c:108 +#: ../src/iop/ashift.c:6059 ../src/libs/masks.c:109 msgid "rotation" msgstr "forgatás" @@ -2512,7 +2636,7 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:125 #: ../build/lib/darktable/plugins/introspection_blurs.c:202 -#: ../src/libs/masks.c:109 +#: ../src/libs/masks.c:110 msgid "curvature" msgstr "görbület" @@ -2520,13 +2644,13 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:206 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:81 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:148 -#: ../src/iop/colorbalancergb.c:1968 +#: ../src/iop/colorbalancergb.c:2039 msgid "offset" msgstr "eltolás" #: ../build/lib/darktable/plugins/introspection_blurs.c:220 -#: ../src/common/collection.c:712 ../src/gui/preferences.c:828 -#: ../src/gui/presets.c:660 ../src/libs/metadata_view.c:139 +#: ../src/common/collection.c:625 ../src/gui/preferences.c:826 +#: ../src/gui/presets.c:663 ../src/libs/metadata_view.c:141 msgid "lens" msgstr "objektív" @@ -2542,63 +2666,90 @@ msgid "gaussian" msgstr "gauss-szűrő" -#: ../build/lib/darktable/plugins/introspection_borders.c:112 -#: ../build/lib/darktable/plugins/introspection_borders.c:253 -#: ../src/common/collection.c:722 ../src/libs/filtering.c:59 +#: ../build/lib/darktable/plugins/introspection_borders.c:122 +#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../src/common/collection.c:635 ../src/libs/filtering.c:59 msgid "aspect ratio" msgstr "oldalarány" #. // portrait / landscape -#: ../build/lib/darktable/plugins/introspection_borders.c:130 -#: ../build/lib/darktable/plugins/introspection_borders.c:265 +#: ../build/lib/darktable/plugins/introspection_borders.c:140 +#: ../build/lib/darktable/plugins/introspection_borders.c:281 #: ../src/iop/flip.c:75 ../src/libs/print_settings.c:2517 msgid "orientation" msgstr "orientáció" -#: ../build/lib/darktable/plugins/introspection_borders.c:136 -#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../build/lib/darktable/plugins/introspection_borders.c:146 +#: ../build/lib/darktable/plugins/introspection_borders.c:285 msgid "border size" msgstr "szegély mérete" -#: ../build/lib/darktable/plugins/introspection_borders.c:142 -#: ../build/lib/darktable/plugins/introspection_borders.c:273 +#: ../build/lib/darktable/plugins/introspection_borders.c:152 +#: ../build/lib/darktable/plugins/introspection_borders.c:289 msgid "horizontal offset" msgstr "vízszintes eltolás" -#: ../build/lib/darktable/plugins/introspection_borders.c:160 -#: ../build/lib/darktable/plugins/introspection_borders.c:285 +#: ../build/lib/darktable/plugins/introspection_borders.c:170 +#: ../build/lib/darktable/plugins/introspection_borders.c:301 msgid "vertical offset" msgstr "függőleges eltolás" -#: ../build/lib/darktable/plugins/introspection_borders.c:178 -#: ../build/lib/darktable/plugins/introspection_borders.c:297 +#: ../build/lib/darktable/plugins/introspection_borders.c:188 +#: ../build/lib/darktable/plugins/introspection_borders.c:313 msgid "frame line size" msgstr "keretvonal vastagsága" -#: ../build/lib/darktable/plugins/introspection_borders.c:184 -#: ../build/lib/darktable/plugins/introspection_borders.c:301 +#: ../build/lib/darktable/plugins/introspection_borders.c:194 +#: ../build/lib/darktable/plugins/introspection_borders.c:317 msgid "frame line offset" msgstr "keretvonal eltolása" -#: ../build/lib/darktable/plugins/introspection_borders.c:327 -#: ../src/gui/preferences.c:849 ../src/iop/ashift.c:6291 -#: ../src/iop/basicadj.c:632 ../src/iop/flip.c:472 ../src/iop/flip.c:474 -#: ../src/iop/levels.c:641 ../src/iop/rgblevels.c:1050 +#: ../build/lib/darktable/plugins/introspection_borders.c:218 +#: ../build/lib/darktable/plugins/introspection_borders.c:333 +msgid "basis" +msgstr "eltolás" + +#: ../build/lib/darktable/plugins/introspection_borders.c:347 +#: ../build/lib/darktable/plugins/introspection_borders.c:353 +#: ../src/gui/preferences.c:847 ../src/imageio/format/jpeg.c:604 +#: ../src/iop/ashift.c:6238 ../src/iop/basicadj.c:662 ../src/iop/flip.c:470 +#: ../src/iop/flip.c:472 ../src/iop/levels.c:657 ../src/iop/rgblevels.c:1105 msgid "auto" msgstr "automata" -#: ../build/lib/darktable/plugins/introspection_borders.c:328 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:309 +#: ../build/lib/darktable/plugins/introspection_borders.c:348 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:315 #: ../src/libs/filters/ratio.c:122 ../src/libs/print_settings.c:2519 msgid "portrait" msgstr "álló" -#: ../build/lib/darktable/plugins/introspection_borders.c:329 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:305 +#: ../build/lib/darktable/plugins/introspection_borders.c:349 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:311 #: ../src/libs/filters/ratio.c:124 ../src/libs/print_settings.c:2519 msgid "landscape" msgstr "fekvő" +#: ../build/lib/darktable/plugins/introspection_borders.c:354 +#: ../src/iop/relight.c:275 ../src/libs/export.c:1223 +#: ../src/libs/metadata_view.c:151 ../src/libs/print_settings.c:2537 +msgid "width" +msgstr "szélesség" + +#: ../build/lib/darktable/plugins/introspection_borders.c:355 +#: ../build/lib/darktable/plugins/introspection_watermark.c:326 +#: ../src/libs/export.c:1229 ../src/libs/metadata_view.c:152 +#: ../src/libs/print_settings.c:2541 +msgid "height" +msgstr "magasság" + +#: ../build/lib/darktable/plugins/introspection_borders.c:356 +msgid "shorter" +msgstr "rövidebb" + +#: ../build/lib/darktable/plugins/introspection_borders.c:357 +msgid "longer" +msgstr "hosszabb" + #: ../build/lib/darktable/plugins/introspection_cacorrect.c:42 #: ../build/lib/darktable/plugins/introspection_cacorrect.c:91 msgid "avoid colorshift" @@ -2645,9 +2796,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:67 #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:132 -#: ../src/iop/atrous.c:1522 ../src/iop/bilateral.cc:350 ../src/iop/clahe.c:335 -#: ../src/iop/dither.c:760 ../src/iop/lowpass.c:584 ../src/iop/shadhi.c:675 -#: ../src/iop/sharpen.c:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:340 +#: ../build/lib/darktable/plugins/introspection_lens.cc:501 +#: ../src/iop/atrous.c:1636 ../src/iop/bilateral.cc:352 ../src/iop/clahe.c:337 +#: ../src/iop/dither.c:762 ../src/iop/lowpass.c:597 ../src/iop/shadhi.c:710 +#: ../src/iop/sharpen.c:435 msgid "radius" msgstr "sugár" @@ -2655,9 +2808,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:136 #: ../build/lib/darktable/plugins/introspection_highlights.c:137 #: ../build/lib/darktable/plugins/introspection_highlights.c:240 -#: ../src/iop/bloom.c:376 ../src/iop/denoiseprofile.c:3818 -#: ../src/iop/grain.c:584 ../src/iop/hazeremoval.c:201 -#: ../src/iop/hotpixels.c:388 ../src/iop/nlmeans.c:460 ../src/iop/velvia.c:279 +#: ../build/lib/darktable/plugins/introspection_lens.cc:334 +#: ../build/lib/darktable/plugins/introspection_lens.cc:497 +#: ../src/iop/bloom.c:372 ../src/iop/denoiseprofile.c:3822 +#: ../src/iop/grain.c:602 ../src/iop/hazeremoval.c:203 +#: ../src/iop/hotpixels.c:467 ../src/iop/nlmeans.c:463 ../src/iop/velvia.c:288 msgid "strength" msgstr "erősség" @@ -2672,41 +2827,41 @@ msgstr "nagyon nagy kromatikus aberráció" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:158 -#: ../src/common/collection.c:1507 ../src/common/color_vocabulary.c:232 -#: ../src/common/colorlabels.c:334 ../src/develop/blend_gui.c:2330 -#: ../src/develop/blend_gui.c:2378 ../src/develop/lightroom.c:834 -#: ../src/gui/gtk.c:3137 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:354 -#: ../src/iop/channelmixer.c:618 ../src/iop/channelmixer.c:628 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/colorzones.c:2263 -#: ../src/iop/temperature.c:1935 ../src/iop/temperature.c:2129 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:260 -#: ../src/libs/histogram.c:2397 +#: ../src/common/collection.c:1374 ../src/common/color_vocabulary.c:232 +#: ../src/common/colorlabels.c:333 ../src/develop/blend_gui.c:2346 +#: ../src/develop/blend_gui.c:2394 ../src/develop/lightroom.c:887 +#: ../src/gui/gtk.c:3183 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:356 +#: ../src/iop/channelmixer.c:637 ../src/iop/channelmixer.c:647 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/colorzones.c:2499 +#: ../src/iop/temperature.c:1912 ../src/iop/temperature.c:2094 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:260 +#: ../src/libs/histogram.c:2724 msgid "red" msgstr "vörös" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:159 -#: ../src/common/collection.c:1511 ../src/common/color_vocabulary.c:277 -#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2336 -#: ../src/develop/blend_gui.c:2384 ../src/develop/lightroom.c:838 -#: ../src/gui/gtk.c:3138 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:359 -#: ../src/iop/channelmixer.c:619 ../src/iop/channelmixer.c:634 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/colorzones.c:2266 -#: ../src/iop/temperature.c:1919 ../src/iop/temperature.c:1937 -#: ../src/iop/temperature.c:2130 ../src/libs/collect.c:1791 -#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2389 +#: ../src/common/collection.c:1378 ../src/common/color_vocabulary.c:277 +#: ../src/common/colorlabels.c:335 ../src/develop/blend_gui.c:2352 +#: ../src/develop/blend_gui.c:2400 ../src/develop/lightroom.c:891 +#: ../src/gui/gtk.c:3184 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:361 +#: ../src/iop/channelmixer.c:638 ../src/iop/channelmixer.c:653 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/colorzones.c:2502 +#: ../src/iop/temperature.c:1896 ../src/iop/temperature.c:1914 +#: ../src/iop/temperature.c:2095 ../src/libs/collect.c:1916 +#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2715 msgid "green" msgstr "zöld" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:160 -#: ../src/common/collection.c:1513 ../src/common/color_vocabulary.c:324 -#: ../src/common/colorlabels.c:337 ../src/develop/blend_gui.c:2342 -#: ../src/develop/blend_gui.c:2390 ../src/develop/lightroom.c:840 -#: ../src/gui/gtk.c:3139 ../src/iop/bilateral.cc:364 -#: ../src/iop/channelmixer.c:620 ../src/iop/channelmixer.c:640 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/colorzones.c:2268 -#: ../src/iop/temperature.c:1939 ../src/iop/temperature.c:2131 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:263 -#: ../src/libs/histogram.c:2381 +#: ../src/common/collection.c:1380 ../src/common/color_vocabulary.c:324 +#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2358 +#: ../src/develop/blend_gui.c:2406 ../src/develop/lightroom.c:893 +#: ../src/gui/gtk.c:3185 ../src/iop/bilateral.cc:366 +#: ../src/iop/channelmixer.c:639 ../src/iop/channelmixer.c:659 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/colorzones.c:2504 +#: ../src/iop/temperature.c:1916 ../src/iop/temperature.c:2096 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:263 +#: ../src/libs/histogram.c:2706 msgid "blue" msgstr "kék" @@ -2949,7 +3104,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:303 #: ../build/lib/darktable/plugins/introspection_crop.c:61 #: ../build/lib/darktable/plugins/introspection_crop.c:134 -#: ../src/gui/gtk.c:1141 ../src/iop/atrous.c:1518 +#: ../src/gui/gtk.c:1234 ../src/iop/atrous.c:1632 msgid "left" msgstr "bal" @@ -2957,7 +3112,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:307 #: ../build/lib/darktable/plugins/introspection_crop.c:67 #: ../build/lib/darktable/plugins/introspection_crop.c:138 -#: ../src/gui/accelerators.c:113 ../src/gui/gtk.c:1155 +#: ../src/gui/accelerators.c:131 ../src/gui/gtk.c:1240 msgid "top" msgstr "felső" @@ -2965,7 +3120,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:311 #: ../build/lib/darktable/plugins/introspection_crop.c:73 #: ../build/lib/darktable/plugins/introspection_crop.c:142 -#: ../src/gui/gtk.c:1148 ../src/iop/atrous.c:1517 +#: ../src/gui/gtk.c:1237 ../src/iop/atrous.c:1631 msgid "right" msgstr "jobb" @@ -2973,7 +3128,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:315 #: ../build/lib/darktable/plugins/introspection_crop.c:79 #: ../build/lib/darktable/plugins/introspection_crop.c:146 -#: ../src/gui/accelerators.c:114 ../src/gui/gtk.c:1162 +#: ../src/gui/accelerators.c:132 ../src/gui/gtk.c:1243 msgid "bottom" msgstr "alsó" @@ -3012,10 +3167,11 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:477 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:489 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:501 -#: ../src/develop/blend_gui.c:2356 ../src/develop/blend_gui.c:2404 -#: ../src/iop/atrous.c:1667 ../src/iop/channelmixerrgb.c:4457 -#: ../src/iop/channelmixerrgb.c:4573 ../src/iop/colorbalancergb.c:1895 -#: ../src/iop/colorzones.c:2402 ../src/iop/nlmeans.c:468 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 +#: ../src/develop/blend_gui.c:2372 ../src/develop/blend_gui.c:2420 +#: ../src/iop/atrous.c:1801 ../src/iop/channelmixerrgb.c:4525 +#: ../src/iop/channelmixerrgb.c:4641 ../src/iop/colorbalancergb.c:1966 +#: ../src/iop/colorzones.c:2645 ../src/iop/nlmeans.c:471 msgid "chroma" msgstr "krominancia" @@ -3035,11 +3191,11 @@ #: ../build/lib/darktable/plugins/introspection_splittoning.c:73 #: ../build/lib/darktable/plugins/introspection_splittoning.c:134 #: ../build/lib/darktable/plugins/introspection_splittoning.c:142 -#: ../src/develop/blend_gui.c:2315 ../src/develop/blend_gui.c:2349 -#: ../src/develop/blend_gui.c:2411 ../src/iop/channelmixer.c:615 -#: ../src/iop/channelmixerrgb.c:4450 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/colorbalance.c:2042 ../src/iop/colorize.c:330 -#: ../src/iop/colorreconstruction.c:1240 ../src/iop/colorzones.c:2403 +#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2365 +#: ../src/develop/blend_gui.c:2427 ../src/iop/channelmixer.c:634 +#: ../src/iop/channelmixerrgb.c:4518 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/colorbalance.c:2017 ../src/iop/colorize.c:343 +#: ../src/iop/colorreconstruction.c:1249 ../src/iop/colorzones.c:2646 msgid "hue" msgstr "árnyalat" @@ -3066,9 +3222,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:569 #: ../build/lib/darktable/plugins/introspection_toneequal.c:156 #: ../build/lib/darktable/plugins/introspection_toneequal.c:297 -#: ../src/iop/bilat.c:469 ../src/iop/colorbalance.c:2099 -#: ../src/iop/negadoctor.c:915 ../src/iop/shadhi.c:671 -#: ../src/iop/splittoning.c:507 +#: ../src/iop/bilat.c:479 ../src/iop/colorbalance.c:2074 +#: ../src/iop/negadoctor.c:934 ../src/iop/shadhi.c:706 +#: ../src/iop/splittoning.c:503 msgid "shadows" msgstr "árnyékok" @@ -3080,9 +3236,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:561 #: ../build/lib/darktable/plugins/introspection_toneequal.c:180 #: ../build/lib/darktable/plugins/introspection_toneequal.c:313 -#: ../src/iop/bilat.c:463 ../src/iop/colorbalance.c:2101 -#: ../src/iop/monochrome.c:561 ../src/iop/shadhi.c:672 -#: ../src/iop/splittoning.c:514 +#: ../src/iop/bilat.c:473 ../src/iop/colorbalance.c:2076 +#: ../src/iop/monochrome.c:583 ../src/iop/shadhi.c:707 +#: ../src/iop/splittoning.c:510 msgid "highlights" msgstr "csúcsfények" @@ -3099,13 +3255,13 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:565 #: ../build/lib/darktable/plugins/introspection_toneequal.c:168 #: ../build/lib/darktable/plugins/introspection_toneequal.c:305 -#: ../src/iop/colorbalance.c:2100 +#: ../src/iop/colorbalance.c:2075 msgid "mid-tones" msgstr "középtónusok" #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:340 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:537 -#: ../src/iop/filmic.c:1576 +#: ../src/iop/filmic.c:1601 msgid "global saturation" msgstr "globális telítettség" @@ -3136,12 +3292,12 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:412 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:585 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:64 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:137 -#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:607 ../src/iop/bilat.c:458 -#: ../src/iop/colisa.c:304 ../src/iop/colorbalance.c:1947 -#: ../src/iop/colorbalance.c:1953 ../src/iop/filmic.c:1548 -#: ../src/iop/filmicrgb.c:4551 ../src/iop/lowpass.c:586 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:116 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:237 +#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:637 ../src/iop/bilat.c:468 +#: ../src/iop/colisa.c:298 ../src/iop/colorbalance.c:1922 +#: ../src/iop/colorbalance.c:1928 ../src/iop/filmic.c:1573 +#: ../src/iop/filmicrgb.c:4615 ../src/iop/lowpass.c:599 msgid "contrast" msgstr "kontraszt" @@ -3168,33 +3324,35 @@ msgid "blue-yellow contrast" msgstr "kék–sárga kontraszt" -#: ../build/lib/darktable/plugins/introspection_colorin.c:148 -#: ../build/lib/darktable/plugins/introspection_colorin.c:231 +#: ../build/lib/darktable/plugins/introspection_colorin.c:150 +#: ../build/lib/darktable/plugins/introspection_colorin.c:233 msgid "gamut clipping" msgstr "gamut vágás" -#: ../build/lib/darktable/plugins/introspection_colorin.c:301 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:201 -#: ../src/common/colorspaces.c:1251 ../src/common/colorspaces.c:1484 +#: ../build/lib/darktable/plugins/introspection_colorin.c:304 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:312 +#: ../src/common/colorspaces.c:1410 ../src/common/colorspaces.c:1700 #: ../src/libs/print_settings.c:1356 msgid "sRGB" msgstr "sRGB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:302 -#: ../src/common/colorspaces.c:1260 ../src/common/colorspaces.c:1486 +#: ../build/lib/darktable/plugins/introspection_colorin.c:305 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:311 +#: ../src/common/colorspaces.c:1421 ../src/common/colorspaces.c:1702 #: ../src/libs/print_settings.c:1363 msgid "Adobe RGB (compatible)" msgstr "Adobe RGB (kompatibilis)" -#: ../build/lib/darktable/plugins/introspection_colorin.c:303 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 -#: ../src/common/colorspaces.c:1265 ../src/common/colorspaces.c:1488 +#: ../build/lib/darktable/plugins/introspection_colorin.c:306 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 +#: ../src/common/colorspaces.c:1428 ../src/common/colorspaces.c:1704 msgid "linear Rec709 RGB" msgstr "lineáris Rec709 RGB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:304 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 -#: ../src/common/colorspaces.c:1274 ../src/common/colorspaces.c:1490 +#: ../build/lib/darktable/plugins/introspection_colorin.c:307 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:206 +#: ../src/common/colorspaces.c:1442 ../src/common/colorspaces.c:1706 msgid "linear Rec2020 RGB" msgstr "lineáris Rec2020 RGB" @@ -3222,7 +3380,7 @@ #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:127 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:45 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:92 -#: ../src/iop/shadhi.c:686 +#: ../src/iop/shadhi.c:721 msgid "spatial extent" msgstr "térbeli kiterjedés" @@ -3232,7 +3390,7 @@ msgstr "tartománykiterjedés" #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:154 -#: ../src/iop/channelmixerrgb.c:4669 +#: ../src/iop/channelmixerrgb.c:4737 msgid "saturated colors" msgstr "telített színek" @@ -3246,7 +3404,7 @@ #: ../build/lib/darktable/plugins/introspection_colorzones.c:233 #: ../build/lib/darktable/plugins/introspection_soften.c:66 #: ../build/lib/darktable/plugins/introspection_soften.c:121 -#: ../src/iop/atrous.c:1689 +#: ../src/iop/atrous.c:1835 msgid "mix" msgstr "keverés" @@ -3256,33 +3414,17 @@ msgstr "feldolgozási mód" #: ../build/lib/darktable/plugins/introspection_colorzones.c:255 -#: ../src/develop/blend_gui.c:2294 ../src/iop/channelmixer.c:617 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/colorchecker.c:1448 -#: ../src/iop/colorize.c:349 ../src/iop/colorzones.c:2401 -#: ../src/iop/exposure.c:1239 +#: ../src/develop/blend_gui.c:2310 ../src/iop/channelmixer.c:636 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/colorchecker.c:1453 +#: ../src/iop/colorize.c:362 ../src/iop/colorzones.c:2644 +#: ../src/iop/exposure.c:1257 msgid "lightness" msgstr "fényesség" -#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 -#: ../src/develop/blend_gui.c:2310 ../src/iop/basicadj.c:624 -#: ../src/iop/channelmixer.c:616 ../src/iop/colisa.c:306 -#: ../src/iop/colorbalance.c:2059 ../src/iop/colorbalancergb.c:1919 -#: ../src/iop/colorchecker.c:1483 ../src/iop/colorcontrast.c:90 -#: ../src/iop/colorcorrection.c:275 ../src/iop/colorize.c:343 -#: ../src/iop/lowpass.c:588 ../src/iop/soften.c:373 ../src/iop/velvia.c:84 -#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:971 -msgid "saturation" -msgstr "telítettség" - #: ../build/lib/darktable/plugins/introspection_colorzones.c:267 -#: ../src/iop/atrous.c:1309 ../src/iop/atrous.c:1313 -#: ../src/iop/denoiseprofile.c:3527 ../src/iop/rawdenoise.c:755 +#: ../src/iop/atrous.c:1410 ../src/iop/atrous.c:1414 +#: ../src/iop/denoiseprofile.c:3531 ../src/iop/rawdenoise.c:771 +#: ../src/iop/sigmoid.c:292 msgid "smooth" msgstr "simított" @@ -3299,9 +3441,9 @@ #: ../build/lib/darktable/plugins/introspection_defringe.c:106 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:230 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:435 -#: ../src/iop/atrous.c:1572 ../src/iop/bloom.c:372 -#: ../src/iop/colorreconstruction.c:1236 ../src/iop/hotpixels.c:384 -#: ../src/iop/sharpen.c:449 +#: ../src/iop/atrous.c:1695 ../src/iop/bloom.c:368 +#: ../src/iop/colorreconstruction.c:1245 ../src/iop/hotpixels.c:463 +#: ../src/iop/sharpen.c:444 msgid "threshold" msgstr "küszöb" @@ -3436,7 +3578,7 @@ #. history #: ../build/lib/darktable/plugins/introspection_demosaic.c:232 -#: ../src/common/collection.c:1526 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1394 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "basic" msgstr "alaphelyzet" @@ -3509,12 +3651,9 @@ msgid "upgrade profiled transform" msgstr "profilozott transzformáció frissítése" -#. -#. * Color mode combo box -#. #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:257 #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:388 -#: ../src/imageio/format/avif.c:786 ../src/libs/colorpicker.c:584 +#: ../src/libs/colorpicker.c:659 msgid "color mode" msgstr "színmód" @@ -3539,7 +3678,7 @@ msgstr "variancia számítás" #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:410 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:266 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:292 msgid "RGB" msgstr "RGB" @@ -3550,7 +3689,7 @@ #. two more sharpness (standard & strong) #: ../build/lib/darktable/plugins/introspection_diffuse.c:123 #: ../build/lib/darktable/plugins/introspection_diffuse.c:248 -#: ../src/iop/atrous.c:1564 ../src/iop/diffuse.c:630 ../src/iop/highpass.c:381 +#: ../src/iop/atrous.c:1685 ../src/iop/diffuse.c:657 ../src/iop/highpass.c:376 msgid "sharpness" msgstr "élesség" @@ -3714,7 +3853,7 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:212 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:423 -#: ../src/iop/filmic.c:1489 +#: ../src/iop/filmic.c:1514 msgid "middle gray luminance" msgstr "középszürke-fénysűrűség" @@ -3722,13 +3861,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:427 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:97 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:166 -#: ../src/iop/filmic.c:1514 +#: ../src/iop/filmic.c:1539 msgid "black relative exposure" msgstr "fekete relatív expozíciója" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:224 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:431 -#: ../src/iop/filmic.c:1501 +#: ../src/iop/filmic.c:1526 msgid "white relative exposure" msgstr "fehér relatív expozíciója" @@ -3759,19 +3898,19 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:266 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:459 -#: ../src/iop/filmic.c:1646 +#: ../src/iop/filmic.c:1671 msgid "target middle gray" msgstr "cél: középszürke" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:272 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:463 -#: ../src/iop/filmic.c:1637 +#: ../src/iop/filmic.c:1662 msgid "target black luminance" msgstr "cél: fekete fénysűrűség" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:278 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:467 -#: ../src/iop/filmic.c:1655 +#: ../src/iop/filmic.c:1680 msgid "target white luminance" msgstr "cél: fehér fénysűrűség" @@ -3779,13 +3918,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:471 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:69 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:140 -#: ../src/libs/masks.c:106 +#: ../src/libs/masks.c:107 msgid "hardness" msgstr "keménység" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:302 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:483 -#: ../src/iop/filmic.c:1586 ../src/iop/filmicrgb.c:4729 +#: ../src/iop/filmic.c:1611 ../src/iop/filmicrgb.c:4793 msgid "extreme luminance saturation" msgstr "extrém fénysűrűség-telítettség" @@ -3856,11 +3995,11 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:549 #: ../build/lib/darktable/plugins/introspection_toneequal.c:371 -#: ../src/common/database.c:2785 ../src/common/variables.c:705 -#: ../src/develop/imageop_gui.c:209 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 +#: ../src/common/variables.c:714 ../src/develop/imageop_gui.c:209 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 msgid "no" msgstr "nem" @@ -3962,9 +4101,25 @@ msgid "density" msgstr "denzitás" +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 +#: ../src/develop/blend_gui.c:2326 ../src/iop/basicadj.c:654 +#: ../src/iop/channelmixer.c:635 ../src/iop/colisa.c:300 +#: ../src/iop/colorbalance.c:2034 ../src/iop/colorbalancergb.c:1990 +#: ../src/iop/colorchecker.c:1488 ../src/iop/colorcontrast.c:82 +#: ../src/iop/colorcorrection.c:268 ../src/iop/colorize.c:356 +#: ../src/iop/lowpass.c:601 ../src/iop/soften.c:368 ../src/iop/velvia.c:75 +#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:1058 +msgid "saturation" +msgstr "telítettség" + #: ../build/lib/darktable/plugins/introspection_grain.c:58 #: ../build/lib/darktable/plugins/introspection_grain.c:117 -#: ../src/iop/bilat.c:450 +#: ../src/iop/bilat.c:460 msgid "coarseness" msgstr "durvaság" @@ -3977,7 +4132,7 @@ #: ../build/lib/darktable/plugins/introspection_highlights.c:143 #: ../build/lib/darktable/plugins/introspection_highlights.c:244 -#: ../src/views/darkroom.c:2406 +#: ../src/views/darkroom.c:2245 msgid "clipping threshold" msgstr "vágási küszöb" @@ -4113,168 +4268,172 @@ msgid "detect by 3 neighbors" msgstr "észlelés 3 szomszéd alapján" -#: ../build/lib/darktable/plugins/introspection_lens.cc:162 -#: ../build/lib/darktable/plugins/introspection_lens.cc:337 +#: ../build/lib/darktable/plugins/introspection_lens.cc:190 +#: ../build/lib/darktable/plugins/introspection_lens.cc:401 msgid "correction method" msgstr "korrekciós módszer" #. Page CORRECTIONS -#: ../build/lib/darktable/plugins/introspection_lens.cc:168 -#: ../build/lib/darktable/plugins/introspection_lens.cc:341 -#: ../src/iop/negadoctor.c:900 +#: ../build/lib/darktable/plugins/introspection_lens.cc:196 +#: ../build/lib/darktable/plugins/introspection_lens.cc:405 +#: ../src/iop/negadoctor.c:919 msgid "corrections" msgstr "korrekciók" #. mode choice -#. Add check to control whether the style is to replace or append the current module -#: ../build/lib/darktable/plugins/introspection_lens.cc:174 -#: ../build/lib/darktable/plugins/introspection_lens.cc:345 +#: ../build/lib/darktable/plugins/introspection_lens.cc:202 +#: ../build/lib/darktable/plugins/introspection_lens.cc:409 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:128 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:219 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:51 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:118 -#: ../src/iop/bilat.c:428 ../src/iop/colorbalance.c:1909 -#: ../src/iop/denoiseprofile.c:3806 ../src/iop/exposure.c:1157 -#: ../src/iop/levels.c:684 ../src/iop/profile_gamma.c:668 -#: ../src/libs/copy_history.c:399 ../src/libs/export.c:1262 -#: ../src/libs/image.c:597 ../src/libs/print_settings.c:2875 -#: ../src/libs/styles.c:846 ../src/views/darkroom.c:2387 +#: ../src/develop/blend_gui.c:3546 ../src/iop/bilat.c:438 +#: ../src/iop/colorbalance.c:1884 ../src/iop/denoiseprofile.c:3810 +#: ../src/iop/exposure.c:1175 ../src/iop/levels.c:700 +#: ../src/iop/profile_gamma.c:682 ../src/libs/copy_history.c:399 +#: ../src/libs/export.c:1376 ../src/libs/image.c:666 +#: ../src/libs/print_settings.c:2875 ../src/libs/styles.c:850 +#: ../src/views/darkroom.c:2226 msgid "mode" msgstr "mód" -#: ../build/lib/darktable/plugins/introspection_lens.cc:210 -#: ../build/lib/darktable/plugins/introspection_lens.cc:369 -#: ../src/iop/lens.cc:3820 +#: ../build/lib/darktable/plugins/introspection_lens.cc:238 +#: ../build/lib/darktable/plugins/introspection_lens.cc:433 +#: ../src/iop/lens.cc:4474 msgid "target geometry" msgstr "cél geometria" -#: ../build/lib/darktable/plugins/introspection_lens.cc:240 -#: ../build/lib/darktable/plugins/introspection_lens.cc:389 +#: ../build/lib/darktable/plugins/introspection_lens.cc:268 +#: ../build/lib/darktable/plugins/introspection_lens.cc:453 msgid "TCA overwrite" -msgstr "TCA felülírás" +msgstr "TCA felülbírálása" -#: ../build/lib/darktable/plugins/introspection_lens.cc:246 -#: ../build/lib/darktable/plugins/introspection_lens.cc:393 +#: ../build/lib/darktable/plugins/introspection_lens.cc:274 +#: ../build/lib/darktable/plugins/introspection_lens.cc:298 +#: ../build/lib/darktable/plugins/introspection_lens.cc:457 +#: ../build/lib/darktable/plugins/introspection_lens.cc:473 msgid "TCA red" msgstr "TCA vörös" -#: ../build/lib/darktable/plugins/introspection_lens.cc:252 -#: ../build/lib/darktable/plugins/introspection_lens.cc:397 +#: ../build/lib/darktable/plugins/introspection_lens.cc:280 +#: ../build/lib/darktable/plugins/introspection_lens.cc:304 +#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:477 msgid "TCA blue" msgstr "TCA kék" -#: ../build/lib/darktable/plugins/introspection_lens.cc:258 -#: ../build/lib/darktable/plugins/introspection_lens.cc:401 -msgid "distortion fine-tune" -msgstr "TCA vörös finomhangolása" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:264 -#: ../build/lib/darktable/plugins/introspection_lens.cc:405 -msgid "vignetting fine-tune" -msgstr "peremsötétedés finomhangolása" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:270 -#: ../build/lib/darktable/plugins/introspection_lens.cc:409 -msgid "TCA red fine-tune" -msgstr "TCA vörös finomhangolása" +#: ../build/lib/darktable/plugins/introspection_lens.cc:286 +#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +msgid "distortion" +msgstr "torzítás" -#: ../build/lib/darktable/plugins/introspection_lens.cc:276 -#: ../build/lib/darktable/plugins/introspection_lens.cc:413 -msgid "TCA blue fine-tune" -msgstr "TCA kék finomhangolása" +#: ../build/lib/darktable/plugins/introspection_lens.cc:292 +#: ../build/lib/darktable/plugins/introspection_lens.cc:469 +#: ../src/iop/vignette.c:114 +msgid "vignetting" +msgstr "peremsötétedés" -#: ../build/lib/darktable/plugins/introspection_lens.cc:282 -#: ../build/lib/darktable/plugins/introspection_lens.cc:417 +#: ../build/lib/darktable/plugins/introspection_lens.cc:310 +#: ../build/lib/darktable/plugins/introspection_lens.cc:481 msgid "scale fine-tune" -msgstr "skála finomhangolása" +msgstr "skálázás finomhangolása" -#: ../build/lib/darktable/plugins/introspection_lens.cc:294 -#: ../build/lib/darktable/plugins/introspection_lens.cc:425 +#: ../build/lib/darktable/plugins/introspection_lens.cc:322 +#: ../build/lib/darktable/plugins/introspection_lens.cc:489 msgid "image scale" msgstr "képméretarány" -#: ../build/lib/darktable/plugins/introspection_lens.cc:439 +#: ../build/lib/darktable/plugins/introspection_lens.cc:346 +#: ../build/lib/darktable/plugins/introspection_lens.cc:505 +msgid "steepness" +msgstr "meredekség" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:527 msgid "embedded metadata" msgstr "beágyazott metaadat" -#: ../build/lib/darktable/plugins/introspection_lens.cc:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:528 msgid "Lensfun database" msgstr "Lensfun adatbázis" +#: ../build/lib/darktable/plugins/introspection_lens.cc:529 +msgid "only manual vignette" +msgstr "csak manuális peremsötétedés" + #. get nice text for bounds #. Side-border hide/show -#: ../build/lib/darktable/plugins/introspection_lens.cc:445 -#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2367 -#: ../src/gui/accelerators.c:2447 ../src/gui/gtk.c:1204 ../src/gui/gtk.c:3136 -#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3709 -#: ../src/iop/rawdenoise.c:893 ../src/libs/collect.c:3066 -#: ../src/libs/filtering.c:1459 ../src/libs/filters/colors.c:157 +#: ../build/lib/darktable/plugins/introspection_lens.cc:534 +#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2592 +#: ../src/gui/accelerators.c:2674 ../src/gui/gtk.c:1282 ../src/gui/gtk.c:3182 +#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3713 +#: ../src/iop/rawdenoise.c:909 ../src/libs/collect.c:3413 +#: ../src/libs/filtering.c:1521 ../src/libs/filters/colors.c:157 #: ../src/libs/filters/colors.c:265 ../src/libs/filters/rating.c:211 msgid "all" msgstr "mind" -#: ../build/lib/darktable/plugins/introspection_lens.cc:446 +#: ../build/lib/darktable/plugins/introspection_lens.cc:535 msgid "distortion & TCA" msgstr "torzítás és TCA" -#: ../build/lib/darktable/plugins/introspection_lens.cc:447 +#: ../build/lib/darktable/plugins/introspection_lens.cc:536 msgid "distortion & vignetting" msgstr "torzítás és peremsötétedés" -#: ../build/lib/darktable/plugins/introspection_lens.cc:448 +#: ../build/lib/darktable/plugins/introspection_lens.cc:537 msgid "TCA & vignetting" msgstr "TCA és peremsötétedés" -#: ../build/lib/darktable/plugins/introspection_lens.cc:449 +#: ../build/lib/darktable/plugins/introspection_lens.cc:538 msgid "only distortion" msgstr "csak torzítás" -#: ../build/lib/darktable/plugins/introspection_lens.cc:450 +#: ../build/lib/darktable/plugins/introspection_lens.cc:539 msgid "only TCA" msgstr "csak TCA (transzverzális kromatikus aberráció)" -#: ../build/lib/darktable/plugins/introspection_lens.cc:451 +#: ../build/lib/darktable/plugins/introspection_lens.cc:540 msgid "only vignetting" msgstr "csak peremsötétedés" -#: ../build/lib/darktable/plugins/introspection_lens.cc:455 -#: ../src/libs/modulegroups.c:2318 +#: ../build/lib/darktable/plugins/introspection_lens.cc:544 +#: ../src/libs/modulegroups.c:2302 msgid "correct" msgstr "korrigál" -#: ../build/lib/darktable/plugins/introspection_lens.cc:456 +#: ../build/lib/darktable/plugins/introspection_lens.cc:545 msgid "distort" msgstr "torzít" -#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:550 msgid "rectilinear" msgstr "egyenes vonalú" -#: ../build/lib/darktable/plugins/introspection_lens.cc:462 +#: ../build/lib/darktable/plugins/introspection_lens.cc:551 msgid "fisheye" msgstr "halszem" -#: ../build/lib/darktable/plugins/introspection_lens.cc:463 +#: ../build/lib/darktable/plugins/introspection_lens.cc:552 msgid "panoramic" msgstr "panoráma" -#: ../build/lib/darktable/plugins/introspection_lens.cc:464 +#: ../build/lib/darktable/plugins/introspection_lens.cc:553 msgid "equirectangular" msgstr "ekvidisztáns" -#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +#: ../build/lib/darktable/plugins/introspection_lens.cc:554 msgid "orthographic" msgstr "ortografikus" -#: ../build/lib/darktable/plugins/introspection_lens.cc:466 +#: ../build/lib/darktable/plugins/introspection_lens.cc:555 msgid "stereographic" msgstr "sztereografikus" -#: ../build/lib/darktable/plugins/introspection_lens.cc:467 +#: ../build/lib/darktable/plugins/introspection_lens.cc:556 msgid "equisolid angle" msgstr "egyenlő szögű" -#: ../build/lib/darktable/plugins/introspection_lens.cc:468 +#: ../build/lib/darktable/plugins/introspection_lens.cc:557 msgid "Thoby fisheye" msgstr "Thoby halszem" @@ -4284,8 +4443,8 @@ #. move left/right/up/down #: ../build/lib/darktable/plugins/introspection_liquify.c:429 -#: ../src/views/darkroom.c:2282 ../src/views/darkroom.c:2676 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:765 +#: ../src/views/darkroom.c:2121 ../src/views/darkroom.c:2522 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:765 #: ../src/views/lighttable.c:774 ../src/views/lighttable.c:1246 #: ../src/views/lighttable.c:1250 ../src/views/lighttable.c:1254 #: ../src/views/lighttable.c:1258 ../src/views/lighttable.c:1262 @@ -4297,8 +4456,8 @@ msgstr "vonal" #: ../build/lib/darktable/plugins/introspection_liquify.c:431 -#: ../src/iop/basecurve.c:2186 ../src/iop/rgbcurve.c:1387 -#: ../src/iop/tonecurve.c:1149 +#: ../src/iop/basecurve.c:2207 ../src/iop/rgbcurve.c:1387 +#: ../src/iop/tonecurve.c:1171 msgid "curve" msgstr "görbe" @@ -4334,28 +4493,33 @@ msgid "bilateral filter" msgstr "bilaterális szűrő" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:76 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:163 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:77 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:164 msgid "application color space" msgstr "alkalmazás színtere" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 msgid "Adobe RGB" msgstr "Adobe RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 msgid "gamma Rec709 RGB" msgstr "gamma Rec709 RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:209 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:207 +#: ../src/common/colorspaces.c:1486 ../src/common/colorspaces.c:1740 +msgid "linear ProPhoto RGB" +msgstr "lineáris ProPhoto RGB" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 msgid "tetrahedral" msgstr "tetraéderes" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:210 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:212 msgid "trilinear" msgstr "trilineáris" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:213 msgid "pyramid" msgstr "piramis" @@ -4376,7 +4540,7 @@ #: ../build/lib/darktable/plugins/introspection_negadoctor.c:144 #: ../build/lib/darktable/plugins/introspection_negadoctor.c:239 -#: ../src/iop/negadoctor.c:992 +#: ../src/iop/negadoctor.c:1011 msgid "paper grade (gamma)" msgstr "papír érzékenység (gamma)" @@ -4391,15 +4555,57 @@ msgstr "nyomtatási expozíció szabályozás" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:261 -#: ../src/iop/negadoctor.c:417 +#: ../src/iop/negadoctor.c:431 msgid "black and white film" msgstr "fekete-fehér film" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:262 -#: ../src/iop/negadoctor.c:402 +#: ../src/iop/negadoctor.c:416 msgid "color film" msgstr "színes film" +#: ../build/lib/darktable/plugins/introspection_primaries.c:75 +#: ../build/lib/darktable/plugins/introspection_primaries.c:160 +#: ../src/iop/primaries.c:406 +msgid "tint hue" +msgstr "színezet árnyalata" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:81 +#: ../build/lib/darktable/plugins/introspection_primaries.c:164 +#: ../src/iop/primaries.c:413 +msgid "tint purity" +msgstr "színezet tisztasága" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:87 +#: ../build/lib/darktable/plugins/introspection_primaries.c:168 +msgid "red hue" +msgstr "vörös árnyalata" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:93 +#: ../build/lib/darktable/plugins/introspection_primaries.c:172 +msgid "red purity" +msgstr "vörös tisztasága" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:99 +#: ../build/lib/darktable/plugins/introspection_primaries.c:176 +msgid "green hue" +msgstr "zöld árnyalata" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:105 +#: ../build/lib/darktable/plugins/introspection_primaries.c:180 +msgid "green purity" +msgstr "zöld tisztasága" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:111 +#: ../build/lib/darktable/plugins/introspection_primaries.c:184 +msgid "blue hue" +msgstr "kék árnyalata" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:117 +#: ../build/lib/darktable/plugins/introspection_primaries.c:188 +msgid "blue purity" +msgstr "kék tisztasága" + #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:85 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:158 msgid "dynamic range" @@ -4412,7 +4618,7 @@ #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:103 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:170 -#: ../src/iop/filmic.c:1526 +#: ../src/iop/filmic.c:1551 msgid "safety factor" msgstr "biztonsági tényező" @@ -4421,7 +4627,7 @@ msgstr "logaritmikus" #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:185 -#: ../src/iop/profile_gamma.c:625 +#: ../src/iop/profile_gamma.c:639 msgid "gamma" msgstr "gamma" @@ -4459,7 +4665,7 @@ #: ../build/lib/darktable/plugins/introspection_rawprepare.c:106 #: ../build/lib/darktable/plugins/introspection_rawprepare.c:179 -#: ../src/iop/rawprepare.c:946 +#: ../src/iop/rawprepare.c:954 msgid "white point" msgstr "fehérpont" @@ -4475,9 +4681,9 @@ #. exposure #: ../build/lib/darktable/plugins/introspection_relight.c:43 #: ../build/lib/darktable/plugins/introspection_relight.c:98 -#: ../src/common/collection.c:720 ../src/gui/preferences.c:836 -#: ../src/gui/presets.c:684 ../src/iop/basicadj.c:598 ../src/iop/exposure.c:122 -#: ../src/iop/exposure.c:1117 ../src/libs/metadata_view.c:141 +#: ../src/common/collection.c:633 ../src/gui/preferences.c:834 +#: ../src/gui/presets.c:687 ../src/iop/basicadj.c:628 ../src/iop/exposure.c:122 +#: ../src/iop/exposure.c:1135 ../src/libs/metadata_view.c:143 msgid "exposure" msgstr "expozíció" @@ -4488,9 +4694,9 @@ #: ../build/lib/darktable/plugins/introspection_retouch.c:285 #: ../build/lib/darktable/plugins/introspection_retouch.c:426 -#: ../src/iop/basicadj.c:620 ../src/iop/channelmixerrgb.c:4617 -#: ../src/iop/colisa.c:305 ../src/iop/lowpass.c:587 ../src/iop/soften.c:377 -#: ../src/iop/vignette.c:970 ../src/libs/history.c:963 +#: ../src/iop/basicadj.c:650 ../src/iop/channelmixerrgb.c:4685 +#: ../src/iop/colisa.c:299 ../src/iop/lowpass.c:600 ../src/iop/soften.c:372 +#: ../src/iop/vignette.c:1057 ../src/libs/history.c:963 msgid "brightness" msgstr "fényerő" @@ -4500,7 +4706,7 @@ msgstr "max_iter" #: ../build/lib/darktable/plugins/introspection_retouch.c:444 -#: ../src/libs/metadata_view.c:329 +#: ../src/libs/metadata_view.c:333 msgid "unused" msgstr "nem használt" @@ -4513,12 +4719,12 @@ msgstr "gyógyít" #: ../build/lib/darktable/plugins/introspection_retouch.c:447 -#: ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2051 msgid "blur" msgstr "elmos" #: ../build/lib/darktable/plugins/introspection_retouch.c:448 -#: ../src/iop/retouch.c:1865 +#: ../src/iop/retouch.c:2049 msgid "fill" msgstr "kitölt" @@ -4528,12 +4734,12 @@ #: ../build/lib/darktable/plugins/introspection_retouch.c:457 msgid "erase" -msgstr "törlés" +msgstr "töröl" #: ../build/lib/darktable/plugins/introspection_retouch.c:458 -#: ../src/gui/presets.c:59 ../src/iop/watermark.c:1298 -#: ../src/libs/colorpicker.c:291 ../src/libs/image.c:612 -#: ../src/libs/modulegroups.c:2317 +#: ../src/gui/presets.c:61 ../src/iop/watermark.c:1346 +#: ../src/libs/colorpicker.c:320 ../src/libs/image.c:683 +#: ../src/libs/modulegroups.c:2301 msgid "color" msgstr "szín" @@ -4569,45 +4775,93 @@ msgid "highlights color adjustment" msgstr "csúcsfény színkorrekciója" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:70 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:141 -#: ../src/gui/accelerators.c:85 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:122 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:241 +#: ../src/gui/accelerators.c:101 msgid "skew" -msgstr "ferde" +msgstr "ferdeség" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:76 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:145 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:128 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:245 msgid "target white" msgstr "cél fehér" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:82 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:149 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:134 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:249 msgid "target black" msgstr "cél fekete" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:88 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:153 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:140 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:253 msgid "color processing" msgstr "színfeldolgozás" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:94 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:157 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:146 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:257 msgid "preserve hue" msgstr "árnyalat megőrzése" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:171 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:152 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:261 +msgid "red attenuation" +msgstr "vörös csillapítás" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:158 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:265 +msgid "red rotation" +msgstr "vörös elforgatás" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:164 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:269 +msgid "green attenuation" +msgstr "zöld csillapítás" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:170 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:273 +msgid "green rotation" +msgstr "zöld elforgatás" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:176 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:277 +msgid "blue attenuation" +msgstr "kék csillapítás" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:182 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:281 +msgid "blue rotation" +msgstr "kék elforgatás" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:188 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:285 +msgid "recover purity" +msgstr "tisztaság visszaállítása" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:194 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:289 +msgid "base primaries" +msgstr "elsődleges színek alapja" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:303 msgid "per channel" msgstr "csatornánként" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:172 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:304 msgid "RGB ratio" msgstr "RGB-arány" -#: ../build/lib/darktable/plugins/introspection_temperature.c:66 -#: ../build/lib/darktable/plugins/introspection_temperature.c:121 -#: ../src/iop/temperature.c:1941 -msgid "emerald" -msgstr "smaragd" +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:308 +#: ../src/common/colorspaces.c:1377 ../src/common/colorspaces.c:1734 +msgid "work profile" +msgstr "munkaprofil" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:309 +msgid "Rec2020" +msgstr "Rec2020" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:310 +#: ../src/common/colorspaces.c:1750 +msgid "Display P3" +msgstr "Display P3" #: ../build/lib/darktable/plugins/introspection_tonecurve.c:135 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:232 @@ -4729,13 +4983,13 @@ #: ../build/lib/darktable/plugins/introspection_tonemap.cc:39 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:88 -#: ../src/iop/rgbcurve.c:184 ../src/iop/tonecurve.c:539 +#: ../src/iop/rgbcurve.c:186 ../src/iop/tonecurve.c:560 msgid "contrast compression" msgstr "kontrasztkompresszió" #: ../build/lib/darktable/plugins/introspection_vibrance.c:33 #: ../build/lib/darktable/plugins/introspection_vibrance.c:76 -#: ../src/iop/basicadj.c:627 ../src/iop/vibrance.c:67 +#: ../src/iop/basicadj.c:657 ../src/iop/vibrance.c:67 msgid "vibrance" msgstr "vibrancia" @@ -4771,7 +5025,7 @@ #: ../build/lib/darktable/plugins/introspection_vignette.c:146 #: ../build/lib/darktable/plugins/introspection_vignette.c:237 -#: ../src/iop/vignette.c:978 +#: ../src/iop/vignette.c:1066 msgid "shape" msgstr "forma" @@ -4806,11 +5060,11 @@ #: ../build/lib/darktable/plugins/introspection_watermark.c:154 #: ../build/lib/darktable/plugins/introspection_watermark.c:277 msgid "scale marker reference" -msgstr "jelölő kiindulópontjának skálázása" +msgstr "skálázási refeferencia" #: ../build/lib/darktable/plugins/introspection_watermark.c:323 #: ../src/imageio/format/tiff.c:125 ../src/imageio/format/xcf.c:159 -#: ../src/iop/borders.c:947 +#: ../src/iop/borders.c:960 msgid "image" msgstr "kép" @@ -4822,12 +5076,6 @@ msgid "smaller border" msgstr "rövidebb szegély" -#: ../build/lib/darktable/plugins/introspection_watermark.c:326 -#: ../src/libs/export.c:1135 ../src/libs/metadata_view.c:148 -#: ../src/libs/print_settings.c:2541 -msgid "height" -msgstr "magasság" - #: ../build/lib/darktable/plugins/introspection_watermark.c:327 msgid "advanced options" msgstr "speciális beállítások" @@ -4856,23 +5104,23 @@ msgid "marker height" msgstr "jelölő magassága" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:6 +#: ../build/bin/tools/darktable_authors.h:6 msgid "developers" msgstr "fejlesztők" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:11 +#: ../build/bin/tools/darktable_authors.h:11 msgid "translators" msgstr "fordítók" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:16 +#: ../build/bin/tools/darktable_authors.h:16 msgid "contributors" msgstr "közreműködők" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:21 +#: ../build/bin/tools/darktable_authors.h:21 msgid "rawspeed contributors" msgstr "rawspeed közreműködők" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:26 +#: ../build/bin/tools/darktable_authors.h:26 msgid "integration contributors" msgstr "integráció közreműködők" @@ -4939,90 +5187,104 @@ msgid "Print your images" msgstr "Képek nyomtatása" -#: ../src/bauhaus/bauhaus.c:752 ../src/bauhaus/bauhaus.c:3689 +#: ../src/bauhaus/bauhaus.c:845 ../src/bauhaus/bauhaus.c:3957 msgid "sliders" msgstr "csúszkák" -#: ../src/bauhaus/bauhaus.c:753 ../src/bauhaus/bauhaus.c:3694 +#: ../src/bauhaus/bauhaus.c:847 ../src/bauhaus/bauhaus.c:3962 msgid "dropdowns" msgstr "legördülők" -#: ../src/bauhaus/bauhaus.c:754 ../src/bauhaus/bauhaus.c:3699 +#: ../src/bauhaus/bauhaus.c:849 ../src/bauhaus/bauhaus.c:3967 msgid "buttons" msgstr "gombok" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button on" msgstr "gomb be" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button off" msgstr "gomb ki" -#: ../src/bauhaus/bauhaus.c:3406 +#: ../src/bauhaus/bauhaus.c:3624 msgid "button pressed" msgstr "gomb lenyomva" -#: ../src/bauhaus/bauhaus.c:3623 +#: ../src/bauhaus/bauhaus.c:3862 msgid "not that many sliders" msgstr "kevesebb csúszka" -#: ../src/bauhaus/bauhaus.c:3633 +#: ../src/bauhaus/bauhaus.c:3876 msgid "not that many dropdowns" msgstr "kevesebb legördülő" -#: ../src/bauhaus/bauhaus.c:3648 +#: ../src/bauhaus/bauhaus.c:3895 msgid "not that many buttons" msgstr "kevesebb gomb" -#: ../src/bauhaus/bauhaus.c:3653 ../src/gui/accelerators.c:348 +#: ../src/bauhaus/bauhaus.c:3900 ../src/gui/accelerators.c:389 msgid "value" msgstr "érték" -#: ../src/bauhaus/bauhaus.c:3654 ../src/bauhaus/bauhaus.c:3660 -#: ../src/gui/accelerators.c:326 +#: ../src/bauhaus/bauhaus.c:3901 ../src/bauhaus/bauhaus.c:3907 +#: ../src/gui/accelerators.c:368 msgid "button" msgstr "gomb" -#: ../src/bauhaus/bauhaus.c:3655 +#: ../src/bauhaus/bauhaus.c:3902 msgid "force" msgstr "erő" -#: ../src/bauhaus/bauhaus.c:3656 ../src/libs/navigation.c:187 -#: ../src/libs/navigation.c:199 +#: ../src/bauhaus/bauhaus.c:3903 ../src/libs/navigation.c:190 +#: ../src/libs/navigation.c:202 msgid "zoom" msgstr "nagyítás" -#: ../src/bauhaus/bauhaus.c:3659 +#: ../src/bauhaus/bauhaus.c:3906 ../src/libs/select.c:40 msgid "selection" msgstr "kijelölés" -#: ../src/bauhaus/bauhaus.c:3678 +#: ../src/bauhaus/bauhaus.c:3946 msgid "slider" msgstr "csúszka" -#: ../src/bauhaus/bauhaus.c:3683 +#: ../src/bauhaus/bauhaus.c:3951 msgid "dropdown" msgstr "legördülő" -#: ../src/chart/main.c:504 ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 ../src/gui/accelerators.c:2278 -#: ../src/gui/accelerators.c:2355 ../src/gui/accelerators.c:2407 -#: ../src/gui/accelerators.c:2435 ../src/gui/accelerators.c:2495 -#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1043 -#: ../src/gui/preferences.c:1082 ../src/gui/presets.c:420 -#: ../src/gui/presets.c:563 ../src/gui/styles_dialog.c:519 -#: ../src/imageio/storage/disk.c:123 ../src/imageio/storage/gallery.c:110 -#: ../src/imageio/storage/latex.c:109 ../src/iop/lut3d.c:1546 -#: ../src/libs/collect.c:408 ../src/libs/copy_history.c:115 -#: ../src/libs/geotagging.c:928 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/styles.c:392 ../src/libs/styles.c:527 -#: ../src/libs/tagging.c:2489 ../src/libs/tagging.c:2525 +#: ../src/chart/main.c:504 ../src/common/database.c:3372 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 ../src/gui/accelerators.c:2497 +#: ../src/gui/accelerators.c:2579 ../src/gui/accelerators.c:2632 +#: ../src/gui/accelerators.c:2661 ../src/gui/accelerators.c:2723 +#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1081 ../src/gui/presets.c:422 +#: ../src/gui/presets.c:565 ../src/gui/styles_dialog.c:526 +#: ../src/imageio/storage/disk.c:198 ../src/imageio/storage/gallery.c:150 +#: ../src/imageio/storage/latex.c:146 ../src/iop/lut3d.c:1560 +#: ../src/libs/collect.c:425 ../src/libs/collect.c:3242 +#: ../src/libs/copy_history.c:115 ../src/libs/export_metadata.c:276 +#: ../src/libs/geotagging.c:929 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1711 +#: ../src/libs/metadata.c:462 ../src/libs/metadata_view.c:1222 +#: ../src/libs/recentcollect.c:228 ../src/libs/modulegroups.c:3466 +#: ../src/libs/styles.c:392 ../src/libs/styles.c:439 ../src/libs/styles.c:529 +#: ../src/libs/styles.c:624 ../src/libs/tagging.c:1488 +#: ../src/libs/tagging.c:1579 ../src/libs/tagging.c:1670 +#: ../src/libs/tagging.c:1806 ../src/libs/tagging.c:2085 +#: ../src/libs/tagging.c:2520 ../src/libs/tagging.c:2556 +#: ../src/libs/tagging.c:3502 msgid "_cancel" msgstr "_mégsem" -#: ../src/chart/main.c:504 ../src/gui/preferences.c:1082 -#: ../src/gui/styles_dialog.c:520 ../src/libs/styles.c:392 +#: ../src/chart/main.c:504 ../src/gui/preferences.c:1081 +#: ../src/gui/styles_dialog.c:527 ../src/libs/collect.c:3243 +#: ../src/libs/export_metadata.c:277 ../src/libs/metadata.c:463 +#: ../src/libs/metadata_view.c:1223 ../src/libs/recentcollect.c:229 +#: ../src/libs/styles.c:392 ../src/libs/tagging.c:1671 +#: ../src/libs/tagging.c:1807 ../src/libs/tagging.c:2086 +#: ../src/libs/tagging.c:3503 msgid "_save" msgstr "_mentés" @@ -5036,65 +5298,65 @@ "átlag dE: %.02f\n" "max dE: %.02f" -#: ../src/cli/main.c:247 +#: ../src/cli/main.c:270 msgid "TODO: sorry, due to API restrictions we currently cannot set the BPP to" msgstr "" "TODO: sajnálom, API-korlátozások miatt pillanatnyilag nem lehet a BBP-t erre " "állítani" -#: ../src/cli/main.c:259 +#: ../src/cli/main.c:282 msgid "unknown option for --hq" msgstr "ismeretlen opció ehhez: --hq" -#: ../src/cli/main.c:275 +#: ../src/cli/main.c:298 msgid "unknown option for --export_masks" msgstr "ismeretlen opció ehhez: --export_masks" -#: ../src/cli/main.c:291 +#: ../src/cli/main.c:314 msgid "unknown option for --upscale" msgstr "ismeretlen opció ehhez: --upscale" -#: ../src/cli/main.c:316 +#: ../src/cli/main.c:339 msgid "unknown option for --apply-custom-presets" msgstr "ismeretlen opció ehhez: --apply-custom-presets" -#: ../src/cli/main.c:327 +#: ../src/cli/main.c:350 msgid "too long ext for --out-ext" msgstr "túl hosszú kiterjesztés az --out-ext kapcsolóban" -#: ../src/cli/main.c:344 +#: ../src/cli/main.c:367 #, c-format msgid "notice: input file or dir '%s' doesn't exist, skipping\n" msgstr "" "megjegyzés: „%s” bemeneti fájl fájl vagy könyvtár nem létezik, kihagyva\n" -#: ../src/cli/main.c:353 +#: ../src/cli/main.c:376 #, c-format msgid "incorrect ICC type for --icc-type: '%s'\n" msgstr "helytelen ICC típus az --icc-type kapcsolóban: „%s”\n" -#: ../src/cli/main.c:369 +#: ../src/cli/main.c:392 #, c-format msgid "notice: ICC file '%s' doesn't exist, skipping\n" msgstr "megjegyzés: „%s” ICC fájl nem létezik, kihagyva\n" -#: ../src/cli/main.c:378 +#: ../src/cli/main.c:401 #, c-format msgid "incorrect ICC intent for --icc-intent: '%s'\n" msgstr "helytelen ICC-szándék a --icc-intent kapcsolóban: „%s”\n" -#: ../src/cli/main.c:396 +#: ../src/cli/main.c:419 #, c-format msgid "warning: unknown option '%s'\n" msgstr "figyelmeztetés: Ismeretlen beállítás „%s”\n" -#: ../src/cli/main.c:454 +#: ../src/cli/main.c:477 #, c-format msgid "error: input file and import opts specified! that's not supported!\n" msgstr "" "hiba: bemeneti fájl és importálási opciók megadva! ez nem támogatott!\n" -#: ../src/cli/main.c:487 +#: ../src/cli/main.c:510 #, c-format msgid "" "notice: output location is a directory. assuming '%s/$(FILE_NAME).%s' output " @@ -5104,48 +5366,48 @@ "minta feltételezve" #. output file exists or there's output ext specified and it's same as file... -#: ../src/cli/main.c:502 +#: ../src/cli/main.c:525 msgid "output file already exists, it will get renamed" msgstr "a kimeneti fájl már létezik, át lesz nevezve" #. one of inputs was a failure, no prob -#: ../src/cli/main.c:532 +#: ../src/cli/main.c:555 #, c-format msgid "error: can't open folder %s" msgstr "hiba: könyvtár nem nyitható meg: %s" -#: ../src/cli/main.c:549 +#: ../src/cli/main.c:572 #, c-format msgid "error: can't open file %s" msgstr "hiba: fájl nem nyitható meg: %s" -#: ../src/cli/main.c:566 +#: ../src/cli/main.c:589 #, c-format msgid "no images to export, aborting\n" msgstr "nincs exportálandó kép, megszakítás\n" -#: ../src/cli/main.c:583 +#: ../src/cli/main.c:606 #, c-format msgid "error: can't open XMP file %s" msgstr "hiba: XMP-fájl nem nyitható meg: %s" -#: ../src/cli/main.c:604 +#: ../src/cli/main.c:627 msgid "empty history stack" msgstr "üres előzményverem" #. too long ext, no point in wasting time -#: ../src/cli/main.c:616 +#: ../src/cli/main.c:639 #, c-format msgid "too long output file extension: %s\n" msgstr "túl hosszú kimeneti fájl kiterjesztés: %s\n" #. no ext or empty ext, no point in wasting time -#: ../src/cli/main.c:624 +#: ../src/cli/main.c:647 #, c-format msgid "no output file extension given\n" msgstr "nincs megadva kimeneti fájl kiterjesztés\n" -#: ../src/cli/main.c:663 +#: ../src/cli/main.c:692 msgid "" "cannot find disk storage module. please check your installation, something " "seems to be broken." @@ -5153,18 +5415,18 @@ "nem található a lemezes adattároló modul. kérem ellenőrizze a telepítést, " "mert valami hibásnak tűnik." -#: ../src/cli/main.c:673 +#: ../src/cli/main.c:702 msgid "failed to get parameters from storage module, aborting export ..." msgstr "" "nem sikerült lekérni a paramétereket az adattároló modultól. exportálás " "megszakítása…" -#: ../src/cli/main.c:689 +#: ../src/cli/main.c:718 #, c-format msgid "unknown extension '.%s'" msgstr "ismeretlen kiterjesztés „.%s”" -#: ../src/cli/main.c:699 +#: ../src/cli/main.c:728 msgid "failed to get parameters from format module, aborting export ..." msgstr "" "nem sikerült lekérni a paramétereket a formátum modultól. exportálás " @@ -5215,203 +5477,209 @@ "győződjön meg róla, hogy a fényképező engedélyezi az elérést és nincs " "másként csatolva" -#: ../src/common/collection.c:673 +#: ../src/common/collection.c:586 msgid "too much time to update aspect ratio for the collection" msgstr "túl sok időbe telik az oldalarány frissítése a gyűjteményben" -#: ../src/common/collection.c:688 +#: ../src/common/collection.c:601 msgid "film roll" msgstr "filmtekercs" -#: ../src/common/collection.c:690 +#: ../src/common/collection.c:603 msgid "folder" msgstr "könyvtár" -#: ../src/common/collection.c:692 +#: ../src/common/collection.c:605 msgid "camera" msgstr "fényképező" -#: ../src/common/collection.c:694 ../src/libs/export_metadata.c:189 -#: ../src/libs/tagging.c:3281 +#: ../src/common/collection.c:607 ../src/libs/export_metadata.c:176 +#: ../src/libs/tagging.c:3312 msgid "tag" msgstr "címke" -#: ../src/common/collection.c:696 +#: ../src/common/collection.c:609 msgid "capture date" msgstr "készítés dátuma" -#: ../src/common/collection.c:698 ../src/libs/filtering.c:61 +#: ../src/common/collection.c:611 ../src/libs/filtering.c:61 msgid "capture time" msgstr "készítés ideje" -#: ../src/common/collection.c:700 ../src/libs/filtering.c:62 +#: ../src/common/collection.c:613 ../src/libs/filtering.c:62 msgid "import time" msgstr "importálás ideje" -#: ../src/common/collection.c:702 ../src/libs/filtering.c:63 +#: ../src/common/collection.c:615 ../src/libs/filtering.c:63 msgid "modification time" msgstr "módosítás ideje" -#: ../src/common/collection.c:704 ../src/libs/filtering.c:64 +#: ../src/common/collection.c:617 ../src/libs/filtering.c:64 msgid "export time" msgstr "exportálás ideje" -#: ../src/common/collection.c:706 ../src/libs/filtering.c:65 +#: ../src/common/collection.c:619 ../src/libs/filtering.c:65 msgid "print time" msgstr "nyomtatás ideje" -#: ../src/common/collection.c:708 ../src/libs/collect.c:3222 -#: ../src/libs/filtering.c:2163 ../src/libs/filtering.c:2183 +#: ../src/common/collection.c:621 ../src/libs/collect.c:3586 +#: ../src/libs/filtering.c:2237 ../src/libs/filtering.c:2257 #: ../src/libs/filters/history.c:153 ../src/libs/history.c:92 msgid "history" msgstr "előzmények" -#: ../src/common/collection.c:710 ../src/common/colorlabels.c:342 -#: ../src/develop/lightroom.c:1550 ../src/dtgtk/thumbnail.c:1560 +#: ../src/common/collection.c:623 ../src/common/colorlabels.c:341 +#: ../src/develop/lightroom.c:1607 ../src/dtgtk/thumbnail.c:1548 #: ../src/libs/filtering.c:68 ../src/libs/filters/colors.c:301 #: ../src/libs/filters/colors.c:312 ../src/libs/tools/colorlabels.c:93 msgid "color label" msgstr "színcímke" #. iso -#: ../src/common/collection.c:716 ../src/gui/preferences.c:832 -#: ../src/gui/presets.c:666 ../src/libs/camera.c:558 -#: ../src/libs/metadata_view.c:145 +#: ../src/common/collection.c:629 ../src/gui/preferences.c:830 +#: ../src/gui/presets.c:669 ../src/libs/camera.c:558 +#: ../src/libs/metadata_view.c:149 msgid "ISO" msgstr "ISO" #. aperture -#: ../src/common/collection.c:718 ../src/gui/preferences.c:840 -#: ../src/gui/presets.c:701 ../src/libs/camera.c:545 ../src/libs/camera.c:547 -#: ../src/libs/metadata_view.c:140 +#: ../src/common/collection.c:631 ../src/gui/preferences.c:838 +#: ../src/gui/presets.c:704 ../src/libs/camera.c:545 ../src/libs/camera.c:547 +#: ../src/libs/metadata_view.c:142 msgid "aperture" msgstr "blende" -#: ../src/common/collection.c:724 ../src/libs/filtering.c:57 -#: ../src/libs/filters/filename.c:364 ../src/libs/metadata_view.c:126 +#: ../src/common/collection.c:637 ../src/libs/filtering.c:57 +#: ../src/libs/filters/filename.c:369 ../src/libs/metadata_view.c:128 msgid "filename" msgstr "fájlnév" -#: ../src/common/collection.c:726 ../src/develop/lightroom.c:1541 +#: ../src/common/collection.c:639 ../src/develop/lightroom.c:1598 #: ../src/libs/geotagging.c:141 msgid "geotagging" msgstr "geotaggelés" -#: ../src/common/collection.c:728 ../src/libs/filters/grouping.c:167 +#: ../src/common/collection.c:641 ../src/libs/filters/grouping.c:167 #: ../src/libs/tools/global_toolbox.c:394 msgid "grouping" msgstr "csoportosítás" -#: ../src/common/collection.c:730 ../src/dtgtk/thumbnail.c:1575 -#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:129 -#: ../src/libs/metadata_view.c:336 +#: ../src/common/collection.c:643 ../src/dtgtk/thumbnail.c:1563 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:340 msgid "local copy" msgstr "helyi másolat" -#: ../src/common/collection.c:732 ../src/gui/preferences.c:808 +#: ../src/common/collection.c:645 ../src/gui/preferences.c:806 msgid "module" msgstr "modul" -#: ../src/common/collection.c:734 ../src/gui/hist_dialog.c:346 -#: ../src/gui/styles_dialog.c:722 ../src/gui/styles_dialog.c:771 +#: ../src/common/collection.c:647 ../src/gui/hist_dialog.c:346 +#: ../src/gui/styles_dialog.c:734 ../src/gui/styles_dialog.c:783 #: ../src/libs/filters/module_order.c:161 ../src/libs/ioporder.c:39 msgid "module order" msgstr "modulsorrend" -#: ../src/common/collection.c:736 +#: ../src/common/collection.c:649 msgid "range rating" msgstr "értékelés tartománya" -#: ../src/common/collection.c:738 ../src/common/ratings.c:322 -#: ../src/develop/lightroom.c:1525 ../src/libs/filtering.c:67 +#: ../src/common/collection.c:651 ../src/common/ratings.c:321 +#: ../src/develop/lightroom.c:1582 ../src/libs/filtering.c:67 #: ../src/libs/tools/ratings.c:110 msgid "rating" msgstr "értékelés" -#: ../src/common/collection.c:740 +#: ../src/common/collection.c:653 msgid "search" msgstr "keresés" -#: ../src/common/collection.c:1509 ../src/common/colorlabels.c:335 -#: ../src/develop/lightroom.c:836 ../src/gui/guides.c:732 -#: ../src/iop/colorzones.c:2265 ../src/iop/temperature.c:1925 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:261 +#: ../src/common/collection.c:1376 ../src/common/colorlabels.c:334 +#: ../src/develop/lightroom.c:889 ../src/gui/guides.c:732 +#: ../src/iop/colorzones.c:2501 ../src/iop/temperature.c:1902 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:261 msgid "yellow" msgstr "sárga" -#: ../src/common/collection.c:1515 ../src/common/color_vocabulary.c:339 -#: ../src/common/colorlabels.c:338 ../src/iop/colorzones.c:2269 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:264 +#: ../src/common/collection.c:1382 ../src/common/color_vocabulary.c:339 +#: ../src/common/colorlabels.c:337 ../src/iop/colorzones.c:2505 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:264 msgid "purple" msgstr "lila" -#: ../src/common/collection.c:1532 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1400 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "auto applied" msgstr "automatikusan alkalmazott" -#: ../src/common/collection.c:1536 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1406 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "altered" msgstr "módosított" -#: ../src/common/collection.c:1553 ../src/common/collection.c:1649 -#: ../src/libs/collect.c:1166 ../src/libs/collect.c:1330 -#: ../src/libs/collect.c:1354 ../src/libs/collect.c:1473 -#: ../src/libs/collect.c:2432 +#: ../src/common/collection.c:1424 ../src/common/collection.c:1535 +#: ../src/libs/collect.c:1242 ../src/libs/collect.c:1426 +#: ../src/libs/collect.c:1452 ../src/libs/collect.c:1592 +#: ../src/libs/collect.c:2662 msgid "not tagged" msgstr "címkézetlen" -#: ../src/common/collection.c:1554 ../src/libs/collect.c:1354 +#: ../src/common/collection.c:1425 ../src/libs/collect.c:1452 #: ../src/libs/map_locations.c:742 msgid "tagged" msgstr "címkézett" -#: ../src/common/collection.c:1555 +#: ../src/common/collection.c:1426 msgid "tagged*" msgstr "címkézett*" #. local copy -#: ../src/common/collection.c:1588 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1460 ../src/libs/collect.c:1883 #: ../src/libs/filters/local_copy.c:38 msgid "not copied locally" msgstr "nem lett helyben másolva" -#: ../src/common/collection.c:1592 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1465 ../src/libs/collect.c:1882 #: ../src/libs/filters/local_copy.c:38 msgid "copied locally" msgstr "helyben másolva" -#: ../src/common/collection.c:1974 ../src/libs/collect.c:1879 +#. if its undefined +#: ../src/common/collection.c:1507 ../src/common/collection.c:1619 +#: ../src/libs/collect.c:2209 ../src/libs/collect.c:2210 +msgid "unnamed" +msgstr "névtelen" + +#: ../src/common/collection.c:1905 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:147 ../src/libs/filters/grouping.c:170 msgid "group leaders" msgstr "csoportvezetők" -#: ../src/common/collection.c:1978 ../src/libs/collect.c:1879 +#: ../src/common/collection.c:1909 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:150 ../src/libs/filters/grouping.c:170 msgid "group followers" msgstr "csoportkövetők" -#: ../src/common/collection.c:2126 ../src/libs/collect.c:1959 +#: ../src/common/collection.c:2066 ../src/libs/collect.c:2100 msgid "not defined" msgstr "nem definiált" -#: ../src/common/collection.c:2575 +#: ../src/common/collection.c:2521 #, c-format msgid "<b>%d</b> image (#<b>%d</b>) selected of <b>%d</b>" msgstr "<b>%d</b> kép (#<b>%d</b>) kijelölve ennyiből: <b>%d</b>" -#: ../src/common/collection.c:2582 +#: ../src/common/collection.c:2528 #, c-format msgid "<b>%d</b> image selected of <b>%d</b>" msgid_plural "<b>%d</b> images selected of <b>%d</b>" msgstr[0] "<b>%d</b> / <b>%d</b> kép kijelölve" msgstr[1] "<b>%d</b> / <b>%d</b> kép kijelölve" -#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2324 -#: ../src/develop/blend_gui.c:2372 ../src/gui/guides.c:729 -#: ../src/iop/channelmixerrgb.c:4620 ../src/iop/levels.c:671 -#: ../src/iop/rgblevels.c:937 ../src/iop/rgblevels.c:1032 +#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2340 +#: ../src/develop/blend_gui.c:2388 ../src/gui/guides.c:729 +#: ../src/iop/channelmixerrgb.c:4688 ../src/iop/levels.c:687 +#: ../src/iop/rgblevels.c:969 ../src/iop/rgblevels.c:1083 msgid "gray" msgstr "szürke" @@ -5620,12 +5888,12 @@ msgstr "sötétcián" #: ../src/common/color_vocabulary.c:297 ../src/common/color_vocabulary.c:317 -#: ../src/iop/colorzones.c:2267 +#: ../src/iop/colorzones.c:2503 msgid "aqua" msgstr "aqua" #: ../src/common/color_vocabulary.c:298 ../src/gui/guides.c:733 -#: ../src/iop/temperature.c:1923 +#: ../src/iop/temperature.c:1900 msgid "cyan" msgstr "cián" @@ -5691,7 +5959,7 @@ msgstr "sötétbíbor" #: ../src/common/color_vocabulary.c:341 ../src/gui/guides.c:734 -#: ../src/iop/colorzones.c:2270 ../src/iop/temperature.c:1921 +#: ../src/iop/colorzones.c:2506 ../src/iop/temperature.c:1898 msgid "magenta" msgstr "bíbor" @@ -5703,137 +5971,132 @@ msgid "color not found" msgstr "nem található a szín" -#: ../src/common/colorlabels.c:310 +#: ../src/common/colorlabels.c:309 #, c-format msgid "colorlabels set to %s" msgstr "színcímkék beállítva: %s" -#: ../src/common/colorlabels.c:312 +#: ../src/common/colorlabels.c:311 msgid "all colorlabels removed" msgstr "összes színcímke eltávolítva" -#: ../src/common/colorlabels.c:333 ../src/gui/accelerators.c:170 -#: ../src/libs/image.c:592 +#: ../src/common/colorlabels.c:332 ../src/gui/accelerators.c:188 +#: ../src/libs/image.c:660 msgid "clear" msgstr "törlés" -#. init the category profile with NULL profile, the actual profile must be retrieved dynamically by the caller -#: ../src/common/colorspaces.c:1229 ../src/common/colorspaces.c:1518 -msgid "work profile" -msgstr "munkaprofil" - -#: ../src/common/colorspaces.c:1232 ../src/common/colorspaces.c:1514 -#: ../src/iop/colorout.c:885 +#: ../src/common/colorspaces.c:1382 ../src/common/colorspaces.c:1730 +#: ../src/iop/colorout.c:901 msgid "export profile" msgstr "profil exportálása" -#: ../src/common/colorspaces.c:1236 ../src/common/colorspaces.c:1516 -#: ../src/views/darkroom.c:2542 +#: ../src/common/colorspaces.c:1387 ../src/common/colorspaces.c:1732 +#: ../src/views/darkroom.c:2383 msgid "softproof profile" msgstr "softproof profil" -#: ../src/common/colorspaces.c:1242 ../src/common/colorspaces.c:1498 +#: ../src/common/colorspaces.c:1397 ../src/common/colorspaces.c:1714 msgid "system display profile" msgstr "rendszer monitorprofilja" -#: ../src/common/colorspaces.c:1245 ../src/common/colorspaces.c:1520 +#: ../src/common/colorspaces.c:1402 ../src/common/colorspaces.c:1736 msgid "system display profile (second window)" msgstr "rendszer monitorprofilja (második ablak)" -#: ../src/common/colorspaces.c:1255 +#: ../src/common/colorspaces.c:1415 msgid "sRGB (web-safe)" msgstr "sRGB (web színek)" -#: ../src/common/colorspaces.c:1269 ../src/common/colorspaces.c:1522 +#: ../src/common/colorspaces.c:1435 ../src/common/colorspaces.c:1738 msgid "Rec709 RGB" msgstr "Rec709 RGB" -#: ../src/common/colorspaces.c:1279 +#: ../src/common/colorspaces.c:1450 msgid "PQ Rec2020 RGB" msgstr "PQ Rec2020 RGB" -#: ../src/common/colorspaces.c:1284 +#: ../src/common/colorspaces.c:1458 msgid "HLG Rec2020 RGB" msgstr "HLG Rec2020 RGB" -#: ../src/common/colorspaces.c:1289 +#: ../src/common/colorspaces.c:1465 msgid "PQ P3 RGB" msgstr "PQ P3 RGB" -#: ../src/common/colorspaces.c:1294 +#: ../src/common/colorspaces.c:1471 msgid "HLG P3 RGB" msgstr "HLG P3 RGB" -#: ../src/common/colorspaces.c:1299 ../src/common/colorspaces.c:1524 -msgid "linear ProPhoto RGB" -msgstr "lineáris ProPhoto RGB" +#: ../src/common/colorspaces.c:1478 +msgid "Display P3 RGB" +msgstr "Display P3 RGB" -#: ../src/common/colorspaces.c:1304 ../src/common/colorspaces.c:1492 +#: ../src/common/colorspaces.c:1493 ../src/common/colorspaces.c:1708 msgid "linear XYZ" msgstr "lineáris XYZ" -#: ../src/common/colorspaces.c:1308 ../src/common/colorspaces.c:1494 -#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2000 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:267 +#: ../src/common/colorspaces.c:1500 ../src/common/colorspaces.c:1710 +#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2016 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:293 msgid "Lab" msgstr "Lab" -#: ../src/common/colorspaces.c:1313 ../src/common/colorspaces.c:1496 +#: ../src/common/colorspaces.c:1508 ../src/common/colorspaces.c:1712 msgid "linear infrared BGR" msgstr "lineáris infravörös BGR" -#: ../src/common/colorspaces.c:1317 +#: ../src/common/colorspaces.c:1513 msgid "BRG (for testing)" msgstr "BRG (tesztelésre)" -#: ../src/common/colorspaces.c:1409 +#: ../src/common/colorspaces.c:1619 #, c-format msgid "" "profile `%s' not usable as histogram profile. it has been replaced by sRGB!" msgstr "" "„%s” profil nem használható hisztogramprofilként. le lett cserélve sRGB-re!" -#: ../src/common/colorspaces.c:1500 +#: ../src/common/colorspaces.c:1716 msgid "embedded ICC profile" msgstr "beágyazott ICC profil" -#: ../src/common/colorspaces.c:1502 +#: ../src/common/colorspaces.c:1718 msgid "embedded matrix" msgstr "beágyazott színmátrix" -#: ../src/common/colorspaces.c:1504 +#: ../src/common/colorspaces.c:1720 msgid "standard color matrix" msgstr "standard színmátrix" -#: ../src/common/colorspaces.c:1506 +#: ../src/common/colorspaces.c:1722 msgid "enhanced color matrix" msgstr "bővített színmátrix" -#: ../src/common/colorspaces.c:1508 +#: ../src/common/colorspaces.c:1724 msgid "vendor color matrix" msgstr "gyártói színmátrix" -#: ../src/common/colorspaces.c:1510 +#: ../src/common/colorspaces.c:1726 msgid "alternate color matrix" msgstr "alternatív színmátrix" -#: ../src/common/colorspaces.c:1512 +#: ../src/common/colorspaces.c:1728 msgid "BRG (experimental)" msgstr "BRG (kísérleti)" -#: ../src/common/colorspaces.c:1526 +#: ../src/common/colorspaces.c:1742 msgid "PQ Rec2020" msgstr "PQ Rec2020" -#: ../src/common/colorspaces.c:1528 +#: ../src/common/colorspaces.c:1744 msgid "HLG Rec2020" msgstr "HLG Rec2020" -#: ../src/common/colorspaces.c:1530 +#: ../src/common/colorspaces.c:1746 msgid "PQ P3" msgstr "PQ P3" -#: ../src/common/colorspaces.c:1532 +#: ../src/common/colorspaces.c:1748 msgid "HLG P3" msgstr "HLG P3" @@ -5862,40 +6125,40 @@ msgid "printing `%s' on `%s'" msgstr "„%s” kép nyomtatása a(z) „%s” nyomtatón" -#: ../src/common/darktable.c:250 +#: ../src/common/darktable.c:375 #, c-format msgid "found strange path `%s'" msgstr "furcsa útvonal „%s”" -#: ../src/common/darktable.c:265 +#: ../src/common/darktable.c:390 #, c-format msgid "error loading directory `%s'" msgstr "könyvtár betöltése nem sikerült: „%s”" -#: ../src/common/darktable.c:289 +#: ../src/common/darktable.c:414 #, c-format msgid "file `%s' has unknown format!" msgstr "„%s” fájl ismeretlen formátumú!" -#: ../src/common/darktable.c:302 ../src/control/jobs/control_jobs.c:2118 -#: ../src/control/jobs/control_jobs.c:2177 +#: ../src/common/darktable.c:427 ../src/control/jobs/control_jobs.c:2121 +#: ../src/control/jobs/control_jobs.c:2180 #, c-format msgid "error loading file `%s'" msgstr "„%s” fájl betöltése nem sikerült" -#: ../src/common/darktable.c:1509 +#: ../src/common/darktable.c:1650 msgid "configuration information" msgstr "konfigurációs információk" -#: ../src/common/darktable.c:1511 -msgid "show this information again" -msgstr "mutassa ezt az információt újra" - -#: ../src/common/darktable.c:1511 -msgid "understood" -msgstr "megértettem" +#: ../src/common/darktable.c:1652 +msgid "_show this information again" +msgstr "_mutassa ezt az információt újra" + +#: ../src/common/darktable.c:1652 +msgid "_understood" +msgstr "_megértettem" -#: ../src/common/darktable.c:1968 +#: ../src/common/darktable.c:2106 msgid "" "the RCD demosaicer has been defined as default instead of PPG because of " "better quality and performance." @@ -5903,13 +6166,13 @@ "az RCD demosaic mód a jobb minősége és teljesítménye miatt alapértelmezett " "lett a PPG helyett." -#: ../src/common/darktable.c:1970 +#: ../src/common/darktable.c:2108 msgid "see preferences/darkroom/demosaicing for zoomed out darkroom mode" msgstr "" "lásd beállítások/sötétkamra/kicsinyített képek demosaic módja sötétkamra " "nézetben" -#: ../src/common/darktable.c:1976 +#: ../src/common/darktable.c:2114 msgid "" "the user interface and the underlying internals for tuning darktable " "performance have changed." @@ -5917,7 +6180,7 @@ "a darktable teljesítményének hangolására szolgáló felhasználói felület és a " "mögöttes működés megváltozott." -#: ../src/common/darktable.c:1978 +#: ../src/common/darktable.c:2116 msgid "" "you won't find headroom and friends any longer, instead in preferences/" "processing use:" @@ -5925,15 +6188,15 @@ "a mozgástér beállítást és társait már nem fogja megtalálni, helyette a " "beállítások/feldolgozás alatt használja az alábbi beállításokat:" -#: ../src/common/darktable.c:1980 +#: ../src/common/darktable.c:2118 msgid "1) darktable resources" msgstr "1) darktable erőforrásai" -#: ../src/common/darktable.c:1982 +#: ../src/common/darktable.c:2120 msgid "2) tune OpenCL performance" msgstr "2) OpenCL-teljesítmény finomhangolása" -#: ../src/common/darktable.c:1989 +#: ../src/common/darktable.c:2127 msgid "" "some global config parameters relevant for OpenCL performance are not used " "any longer." @@ -5941,34 +6204,35 @@ "néhány, az OpenCL teljesítményét befolyásoló globális beállítás már nincs " "használatban." -#: ../src/common/darktable.c:1991 +#: ../src/common/darktable.c:2129 msgid "" -"instead you will find 'per device' data in 'cl_device_v4_canonical-name'. " +"instead you will find 'per device' data in 'cldevice_v5_canonical-name'. " "content is:" msgstr "" -"helyettük a „per device” adatot keresse a „cl_device_v4_canonical-name” " +"helyettük a „per device” adatot keresse a „cldevice_v5_canonical-name” " "alatt. a tartalma:" -#: ../src/common/darktable.c:1993 ../src/common/darktable.c:2012 +#: ../src/common/darktable.c:2131 ../src/common/darktable.c:2150 +#: ../src/common/darktable.c:2165 msgid "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" msgstr "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" -#: ../src/common/darktable.c:1995 ../src/common/darktable.c:2014 +#: ../src/common/darktable.c:2133 ../src/common/darktable.c:2152 msgid "you may tune as before except 'magic'" msgstr "a korábbihoz hasonlóan finomhangolhatja, kivéve „magic” esetén" -#: ../src/common/darktable.c:2001 +#: ../src/common/darktable.c:2139 msgid "" "your OpenCL compiler settings for all devices have been reset to default." msgstr "" "az Ön összes eszközének OpenCL fordítóprogrammal kapcsolatos beállítása " "alaphelyzetbe lett állítva." -#: ../src/common/darktable.c:2008 +#: ../src/common/darktable.c:2146 msgid "" "OpenCL global config parameters 'per device' data has been recreated with an " "updated name." @@ -5976,14 +6240,14 @@ "az OpenCL globális konfigurációs paraméterei 'per device' adatai frissített " "névvel újra létrejöttek." -#: ../src/common/darktable.c:2010 +#: ../src/common/darktable.c:2148 ../src/common/darktable.c:2163 msgid "" -"you will find 'per device' data in 'cl_device_v5_canonical-name'. content is:" +"you will find 'per device' data in 'cldevice_v5_canonical-name'. content is:" msgstr "" -"helyettük a „per device” adatot keresse a „cl_device_v5_canonical-name” " +"helyettük a „per device” adatot keresse a „cldevice_v5_canonical-name” " "alatt. a tartalma:" -#: ../src/common/darktable.c:2016 +#: ../src/common/darktable.c:2154 msgid "" "If you're using device names in 'opencl_device_priority' you should update " "them to the new names." @@ -5991,7 +6255,23 @@ "Ha a 'opencl_device_priority' paraméterben eszközneveket használ, azokat " "frissítenie kell az új nevekre." -#: ../src/common/database.c:2756 +#: ../src/common/darktable.c:2161 +msgid "" +"OpenCL 'per device' config data have been automatically extended by 'unified-" +"fraction'." +msgstr "" +"Az OpenCL „eszközenkénti” konfigurációja automatikusan kibővült a „unified-" +"fraction” beállítással." + +#: ../src/common/darktable.c:2172 +msgid "" +"OpenCL 'per device' compiler settings might have been updated.\n" +"\n" +msgstr "" +"Az OpenCL „eszközenkénti” fordító beállításai frissülhettek.\n" +"\n" + +#: ../src/common/database.c:3350 #, c-format msgid "" "\n" @@ -6050,30 +6330,19 @@ " mert azzal az adatbázis súlyos sérülését kockáztatná.</i>\n" #. clang-format on -#: ../src/common/database.c:2777 +#: ../src/common/database.c:3371 msgid "error starting darktable" msgstr "nem sikerült a darktable-t elindítani" -#: ../src/common/database.c:2778 ../src/libs/collect.c:2915 -#: ../src/libs/export_metadata.c:288 ../src/libs/import.c:1702 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:227 ../src/libs/modulegroups.c:3464 -#: ../src/libs/styles.c:438 ../src/libs/styles.c:621 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3471 -msgid "cancel" -msgstr "mégsem" - -#: ../src/common/database.c:2778 -msgid "delete database lock files" -msgstr "adatbáziszárolási fájlok törlése" +#: ../src/common/database.c:3372 +msgid "_delete database lock files" +msgstr "adatbáziszárolási fájlok _törlése" -#: ../src/common/database.c:2784 +#: ../src/common/database.c:3378 msgid "are you sure?" msgstr "biztos benne?" -#: ../src/common/database.c:2785 +#: ../src/common/database.c:3379 msgid "" "\n" "do you really want to delete the lock files?\n" @@ -6081,20 +6350,19 @@ "\n" "biztosan törölni szeretné a zárolási fájlokat?\n" -#: ../src/common/database.c:2785 ../src/common/variables.c:703 -#: ../src/develop/imageop_gui.c:210 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 -msgid "yes" -msgstr "igen" +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2597 +msgid "_no" +msgstr "_nem" + +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2596 +msgid "_yes" +msgstr "_igen" -#: ../src/common/database.c:2801 ../src/libs/export_metadata.c:164 -#: ../src/libs/geotagging.c:811 +#: ../src/common/database.c:3395 msgid "done" msgstr "kész" -#: ../src/common/database.c:2802 +#: ../src/common/database.c:3396 msgid "" "\n" "successfully deleted the lock files.\n" @@ -6104,17 +6372,17 @@ "a zárolási fájlok sikeresen törölve\n" "most újraindíthatja a darktable-t\n" -#. the button to close the popup -#: ../src/common/database.c:2803 ../src/common/database.c:2810 -#: ../src/libs/filters/filename.c:452 -msgid "ok" -msgstr "ok" +#: ../src/common/database.c:3397 ../src/common/database.c:3404 +#: ../src/gui/accelerators.c:2580 ../src/gui/accelerators.c:2662 +#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:566 +msgid "_ok" +msgstr "_ok" -#: ../src/common/database.c:2806 +#: ../src/common/database.c:3400 msgid "error" msgstr "hiba" -#: ../src/common/database.c:2807 +#: ../src/common/database.c:3401 #, c-format msgid "" "\n" @@ -6129,7 +6397,7 @@ "i> fájlokat\n" "a(z) <a href=\"file:///%s\">%s</a> könyvtárban.\n" -#: ../src/common/database.c:2924 +#: ../src/common/database.c:3518 #, c-format msgid "" "the database lock file contains a pid that seems to be alive in your system: " @@ -6138,18 +6406,42 @@ "a darktable zároló fájlja egy pid-et (folyamatazonosító) tartalmaz, amely " "élőnek tűnik a rendszerén: %d" -#: ../src/common/database.c:2931 +#: ../src/common/database.c:3525 #, c-format msgid "the database lock file seems to be empty" msgstr "a darktable zároló fájlja üresnek tűnik" -#: ../src/common/database.c:2941 +#: ../src/common/database.c:3535 #, c-format msgid "error opening the database lock file for reading: %s" msgstr "hiba történt az adatbáziszároló fájl olvasásra való megnyitásakor: %s" +#: ../src/common/database.c:3605 +#, c-format +msgid "" +"the database schema version of\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"is too new for this build of darktable (this means the database was created " +"or upgraded by a newer darktable version)\n" +msgstr "" +"<span style='italic'>%s</span>\n" +"\n" +"adatbázisséma verzió túl új ezen dartkable összeállítás számára\n" +"(ez azt jelenti, hogy az adatbázist egy újabb verziójú darktable hozta létre " +"vagy módosította)\n" + +#: ../src/common/database.c:3612 +msgid "darktable - too new db version" +msgstr "darktable – túl új adatbázis-verzió" + +#: ../src/common/database.c:3613 +msgid "_quit darktable" +msgstr "_kilépés a darktable-ből" + #. the database has to be upgraded, let's ask user -#: ../src/common/database.c:2978 +#: ../src/common/database.c:3628 #, c-format msgid "" "the database schema has to be upgraded for\n" @@ -6168,21 +6460,21 @@ "\n" "szeretné folytatni, vagy most kilép, hogy biztonsági mentést készítsen\n" -#: ../src/common/database.c:2986 +#: ../src/common/database.c:3636 msgid "darktable - schema migration" -msgstr "darktable – séma migráció" +msgstr "darktable – séma migrálása" -#: ../src/common/database.c:2987 ../src/common/database.c:3306 -#: ../src/common/database.c:3324 ../src/common/database.c:3491 -#: ../src/common/database.c:3509 -msgid "close darktable" -msgstr "darktable bezárása" - -#: ../src/common/database.c:2987 -msgid "upgrade database" -msgstr "adatbázis frissítése" +#: ../src/common/database.c:3637 ../src/common/database.c:3959 +#: ../src/common/database.c:3974 ../src/common/database.c:4142 +#: ../src/common/database.c:4157 +msgid "_close darktable" +msgstr "darktable _bezárása" + +#: ../src/common/database.c:3637 +msgid "_upgrade database" +msgstr "adatbázis _frissítése" -#: ../src/common/database.c:3286 ../src/common/database.c:3471 +#: ../src/common/database.c:3939 ../src/common/database.c:4122 #, c-format msgid "" "quick_check said:\n" @@ -6191,21 +6483,21 @@ "quick_check üzente:\n" "%s\n" -#: ../src/common/database.c:3303 ../src/common/database.c:3321 -#: ../src/common/database.c:3488 ../src/common/database.c:3506 +#: ../src/common/database.c:3956 ../src/common/database.c:3971 +#: ../src/common/database.c:4139 ../src/common/database.c:4154 msgid "darktable - error opening database" msgstr "darktable – nem sikerült az adatbázist megnyitni" -#: ../src/common/database.c:3308 ../src/common/database.c:3493 -msgid "attempt restore" -msgstr "visszaállítás megkísérlése" - -#: ../src/common/database.c:3310 ../src/common/database.c:3326 -#: ../src/common/database.c:3495 ../src/common/database.c:3511 -msgid "delete database" -msgstr "adatbázis törlése" +#: ../src/common/database.c:3960 ../src/common/database.c:4143 +msgid "_attempt restore" +msgstr "_visszaállítás megkísérlése" + +#: ../src/common/database.c:3961 ../src/common/database.c:3975 +#: ../src/common/database.c:4144 ../src/common/database.c:4158 +msgid "_delete database" +msgstr "adatbázis _törlése" -#: ../src/common/database.c:3314 ../src/common/database.c:3499 +#: ../src/common/database.c:3964 ../src/common/database.c:4147 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup, attempt an automatic restore\n" @@ -6217,7 +6509,7 @@ "a legfrissebb pillanatképből, vagy törli a sérült adatbázist,\n" "és egy újjal kezdi?" -#: ../src/common/database.c:3330 ../src/common/database.c:3515 +#: ../src/common/database.c:3978 ../src/common/database.c:4161 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup or delete the corrupted database\n" @@ -6227,7 +6519,7 @@ "az adatbázist egy mentésből, vagy törli a sérült adatbázist,\n" "és egy újjal kezdi?" -#: ../src/common/database.c:3337 ../src/common/database.c:3520 +#: ../src/common/database.c:3985 ../src/common/database.c:4166 #, c-format msgid "" "an error has occurred while trying to open the database from\n" @@ -6252,12 +6544,12 @@ "a gyors, expozíciófüggetlen, irányított szűrő nem tudott memóriát " "lefoglalni, ellenőrizze a RAM beállításokat" -#: ../src/common/exif.cc:5200 +#: ../src/common/exif.cc:5482 #, c-format msgid "cannot read XMP file '%s': '%s'" msgstr "„%s” XMP-fájl nem olvasható: „%s”" -#: ../src/common/exif.cc:5258 +#: ../src/common/exif.cc:5540 #, c-format msgid "cannot write XMP file '%s': '%s'" msgstr "„%s” XMP-fájl nem írható: „%s”" @@ -6268,121 +6560,121 @@ "a gyors irányított szűrő nem tudott memóriát lefoglalni, ellenőrizze a RAM " "beállításokat" -#: ../src/common/film.c:345 +#: ../src/common/film.c:356 msgid "do you want to remove this empty directory?" msgid_plural "do you want to remove these empty directories?" msgstr[0] "biztosan el szeretné távolítani ezt az üres könyvtárat?" msgstr[1] "biztosan el szeretné távolítani ezeket az üres könyvtárakat?" -#: ../src/common/film.c:352 +#: ../src/common/film.c:363 msgid "remove empty directory?" msgid_plural "remove empty directories?" msgstr[0] "eltávolítja az üres könyvtárat?" msgstr[1] "eltávolítja az üres könyvtárakat?" -#: ../src/common/film.c:371 ../src/gui/preferences.c:816 -#: ../src/gui/styles_dialog.c:548 ../src/libs/geotagging.c:829 -#: ../src/libs/import.c:1551 +#: ../src/common/film.c:383 ../src/gui/preferences.c:814 +#: ../src/gui/styles_dialog.c:556 ../src/libs/geotagging.c:830 +#: ../src/libs/import.c:1560 msgid "name" msgstr "név" -#: ../src/common/film.c:477 +#: ../src/common/film.c:492 msgid "" "cannot remove film roll having local copies with non accessible originals" msgstr "" "nem lehet eltávolítani a filmtekercset, ha helyi másolatai vannak nem " "elérhető eredetikkel" -#: ../src/common/history.c:840 +#: ../src/common/history.c:876 msgid "you need to copy history from an image before you paste it onto another" msgstr "másolja le egy kép előzményeit, mielőtt beillesztené egy másik képre" -#: ../src/common/image.c:325 +#: ../src/common/image.c:333 msgid "orphaned image" msgstr "elárvult kép" -#: ../src/common/image.c:620 +#: ../src/common/image.c:629 #, c-format msgid "geo-location undone for %d image" msgid_plural "geo-location undone for %d images" msgstr[0] "geokódolás visszavonva %d képen" msgstr[1] "geokódolás visszavonva %d képen" -#: ../src/common/image.c:622 +#: ../src/common/image.c:631 #, c-format msgid "geo-location re-applied to %d image" msgid_plural "geo-location re-applied to %d images" msgstr[0] "geokódolás újra alkalmazva %d képen" msgstr[1] "geokódolás újra alkalmazva %d képen" -#: ../src/common/image.c:645 +#: ../src/common/image.c:654 #, c-format msgid "date/time undone for %d image" msgid_plural "date/time undone for %d images" msgstr[0] "dátum/idő visszavonva %d képen" msgstr[1] "dátum/idő visszavonva %d képen" -#: ../src/common/image.c:647 +#: ../src/common/image.c:656 #, c-format msgid "date/time re-applied to %d image" msgid_plural "date/time re-applied to %d images" msgstr[0] "dátum/idő újra alkalmazva %d képen" msgstr[1] "dátum/idő újra alkalmazva %d képen" -#: ../src/common/image.c:2188 +#: ../src/common/image.c:2260 #, c-format msgid "cannot access local copy `%s'" msgstr "nem érhető el a helyi másolat: „%s”" -#: ../src/common/image.c:2195 +#: ../src/common/image.c:2267 #, c-format msgid "cannot write local copy `%s'" msgstr "nem írható a helyi másolat: „%s”" -#: ../src/common/image.c:2202 +#: ../src/common/image.c:2274 #, c-format msgid "error moving local copy `%s' -> `%s'" msgstr "kép helyi másolatának mozgatása sikertelen „%s” -> „%s”" -#: ../src/common/image.c:2219 +#: ../src/common/image.c:2291 #, c-format msgid "error moving `%s': file not found" msgstr "„%s” áthelyezése nem sikerült: a fájl nem található" -#: ../src/common/image.c:2229 +#: ../src/common/image.c:2301 #, c-format msgid "error moving `%s' -> `%s': file exists" msgstr "nem sikerült áthelyezni: „%s” -> „%s”: fájl létezik" -#: ../src/common/image.c:2233 +#: ../src/common/image.c:2305 #, c-format msgid "error moving `%s' -> `%s'" msgstr "nem sikerült áthelyezni: „%s” -> „%s”" -#: ../src/common/image.c:2562 +#: ../src/common/image.c:2634 msgid "cannot create local copy when the original file is not accessible." msgstr "nem hozható létre helyi másolat, ha az eredeti fájl nem elérhető." -#: ../src/common/image.c:2576 +#: ../src/common/image.c:2648 msgid "cannot create local copy." msgstr "nem hozható létre helyi másolat." -#: ../src/common/image.c:2656 ../src/control/jobs/control_jobs.c:777 +#: ../src/common/image.c:2728 ../src/control/jobs/control_jobs.c:777 msgid "cannot remove local copy when the original file is not accessible." msgstr "nem törölhető a helyi másolat, ha az eredeti fájl nem elérhető." -#: ../src/common/image.c:2821 +#: ../src/common/image.c:2901 #, c-format msgid "%d local copy has been synchronized" msgid_plural "%d local copies have been synchronized" msgstr[0] "%d helyi másolat szinkronizálva lett" msgstr[1] "%d helyi másolat szinkronizálva lett" -#: ../src/common/image.c:3022 +#: ../src/common/image.c:3102 msgid "<b>WARNING</b>: camera is missing samples!" msgstr "<b>FIGYELEM</b>: a fényképezőgéphez nincsenek minták!" -#: ../src/common/image.c:3023 +#: ../src/common/image.c:3103 msgid "" "You must provide samples in <a href='https://raw.pixls.us/'>https://raw." "pixls.us/</a>" @@ -6390,7 +6682,7 @@ "Adjon meg mintákat a <a href='https://raw.pixls.us/'>https://raw.pixls.us/</" "a> oldalon" -#: ../src/common/image.c:3024 +#: ../src/common/image.c:3104 #, c-format msgid "" "for `%s' `%s'\n" @@ -6399,81 +6691,82 @@ "a(z) „%s” „%s” fényképezőhöz\n" "a lehető legtöbb formátumban/tömörítéssel/bitmélységgel" -#: ../src/common/image.c:3027 +#: ../src/common/image.c:3107 msgid "or the <b>RAW won't be readable</b> in next version." msgstr "különben a <b>RAW nem lesz olvasható</b> a következő verzióban sem." -#: ../src/common/image.h:209 ../src/common/ratings.c:284 -#: ../src/libs/history.c:843 ../src/libs/snapshots.c:779 +#: ../src/common/image.h:217 ../src/common/ratings.c:283 +#: ../src/imageio/format/avif.c:114 ../src/libs/history.c:843 +#: ../src/libs/snapshots.c:837 msgid "unknown" msgstr "ismeretlen" #. EMPTY_FIELD -#: ../src/common/image.h:210 -msgid "tiff" -msgstr "tiff" - -#: ../src/common/image.h:211 -msgid "png" -msgstr "png" - -#: ../src/common/image.h:212 ../src/imageio/format/j2k.c:652 -msgid "j2k" -msgstr "j2k" - -#: ../src/common/image.h:213 -msgid "jpeg" -msgstr "jpeg" - -#: ../src/common/image.h:214 -msgid "exr" -msgstr "exr" - -#: ../src/common/image.h:215 -msgid "rgbe" -msgstr "rgbe" - -#: ../src/common/image.h:216 -msgid "pfm" -msgstr "pfm" - -#: ../src/common/image.h:217 -msgid "GraphicsMagick" -msgstr "GraphicsMagick" +#: ../src/common/image.h:218 ../src/imageio/format/tiff.c:831 +msgid "TIFF" +msgstr "TIFF" -#: ../src/common/image.h:218 -msgid "rawspeed" -msgstr "rawspeed\t" - -#: ../src/common/image.h:219 -msgid "netpnm" -msgstr "netpnm" +#: ../src/common/image.h:219 ../src/imageio/format/png.c:599 +msgid "PNG" +msgstr "PNG" #: ../src/common/image.h:220 -msgid "avif" -msgstr "avif" +msgid "JPEG 2000" +msgstr "JPEG 2000" #: ../src/common/image.h:221 -msgid "ImageMagick" -msgstr "ImageMagick" +msgid "JPEG" +msgstr "JPEG" #: ../src/common/image.h:222 -msgid "heif" -msgstr "heif" +msgid "EXR" +msgstr "EXR" #: ../src/common/image.h:223 -msgid "libraw" -msgstr "libraw" +msgid "RGBE" +msgstr "RGBE" -#: ../src/common/image.h:224 -msgid "webp" -msgstr "webp" +#: ../src/common/image.h:224 ../src/imageio/format/pfm.c:120 +msgid "PFM" +msgstr "PFM" #: ../src/common/image.h:225 -msgid "jpeg xl" -msgstr "jpeg xl" +msgid "GraphicsMagick" +msgstr "GraphicsMagick" #: ../src/common/image.h:226 +msgid "RawSpeed" +msgstr "RawSpeed" + +#: ../src/common/image.h:227 +msgid "Netpbm" +msgstr "Netpbm" + +#: ../src/common/image.h:228 ../src/imageio/format/avif.c:728 +msgid "AVIF" +msgstr "AVIF" + +#: ../src/common/image.h:229 +msgid "ImageMagick" +msgstr "ImageMagick" + +#: ../src/common/image.h:230 +msgid "HEIF" +msgstr "HEIF" + +#: ../src/common/image.h:231 +msgid "LibRaw" +msgstr "LibRaw" + +#: ../src/common/image.h:232 ../src/imageio/format/webp.c:380 +msgid "WebP" +msgstr "WebP" + +#: ../src/common/image.h:233 ../src/imageio/format/jxl.c:482 +msgid "JPEG XL" +msgstr "JPEG XL" + +#: ../src/common/image.h:234 msgid "QOI" msgstr "QOI" @@ -6505,7 +6798,7 @@ msgstr "" "a kért munkamenet útvonal nem érhető el. esetleg az eszköz nincs csatolva?" -#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:197 +#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:195 msgid "legacy" msgstr "elavult" @@ -6517,7 +6810,7 @@ msgid "v3.0 JPEG" msgstr "v3.0 JPEG" -#: ../src/common/iop_profile.c:1205 +#: ../src/common/iop_profile.c:1207 #, c-format msgid "" "darktable loads %s from\n" @@ -6541,13 +6834,13 @@ #. title #: ../src/common/metadata.c:48 ../src/imageio/format/pdf.c:574 -#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:169 -#: ../src/imageio/storage/gallery.c:170 ../src/imageio/storage/latex.c:169 -#: ../src/imageio/storage/piwigo.c:1058 ../src/libs/filtering.c:69 +#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:219 +#: ../src/imageio/storage/gallery.c:222 ../src/imageio/storage/latex.c:206 +#: ../src/imageio/storage/piwigo.c:1091 ../src/libs/filtering.c:69 msgid "title" msgstr "cím" -#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:552 +#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:563 #: ../src/libs/filtering.c:70 msgid "description" msgstr "leírás" @@ -6565,11 +6858,11 @@ msgstr "verziónév" #: ../src/common/metadata.c:53 ../src/libs/live_view.c:319 -#: ../src/libs/metadata_view.c:124 +#: ../src/libs/metadata_view.c:126 msgid "image id" msgstr "kép id" -#: ../src/common/mipmap_cache.c:1065 ../src/imageio/imageio.c:787 +#: ../src/common/mipmap_cache.c:1070 ../src/imageio/imageio.c:799 #, c-format msgid "image `%s' is not available!" msgstr "„%s” kép nem elérhető!" @@ -6583,7 +6876,43 @@ msgid "noiseprofile file `%s' is not valid" msgstr "„%s” zajprofil fájl nem érvényes" -#: ../src/common/opencl.c:1376 +#: ../src/common/opencl.c:1165 +msgid "no working OpenCL library found" +msgstr "nem található működőképes OpenCL-könyvtár" + +#: ../src/common/opencl.c:1185 +msgid "" +"platform detection failed. some possible causes:\n" +" - OpenCL ICD (ocl-icd) missing,\n" +" - previous OpenCL errors leading to blocked devices,\n" +" - power management problems,\n" +" - buggy drivers,\n" +" - no OpenCL driver installed." +msgstr "" +"a platform felismerése nem sikerült. néhány lehetséges ok:\n" +" - hiányzik az OpenCL ICD (ocl-icd),\n" +" - korábbi OpenCL hibák, amelyek az eszközök blokkolásához vezettek,\n" +" - energiagazdálkodási problémák,\n" +" - bugos illesztőprogram,\n" +" - nincs telepítve OpenCL illesztőprogram." + +#: ../src/common/opencl.c:1277 +msgid "no devices found for unknown platform" +msgstr "nem találhatóak eszközök az ismeretlen platformhoz" + +#: ../src/common/opencl.c:1323 +msgid "not enough memory for OpenCL devices" +msgstr "nincs elég memória az OpenCL-eszközök számára" + +#: ../src/common/opencl.c:1358 +msgid "no OpenCL devices found" +msgstr "nem találhatóak OpenCL-eszközök" + +#: ../src/common/opencl.c:1401 +msgid "no suitable OpenCL devices found" +msgstr "nem találhatóak megfelelő OpenCL-eszközök" + +#: ../src/common/opencl.c:1422 #, c-format msgid "" "OpenCL initializing problem:\n" @@ -6592,35 +6921,23 @@ "OpenCL inicializálási probléma:\n" "%s" -#: ../src/common/opencl.c:1439 -msgid "" -"due to a slow GPU hardware acceleration using OpenCL has been deactivated" -msgstr "a lassú GPU miatt a hardveresen gyorsított OpenCL le lett tiltva" - -#: ../src/common/opencl.c:1449 -msgid "" -"multiple GPUs detected - OpenCL scheduling profile has been set accordingly" +#: ../src/common/opencl.c:1454 +msgid "OpenCL scheduling profile set to default, setup has changed" msgstr "" -"több GPU észlelve – az OpenCL ütemezési profil ennek megfelelően lett " -"beállítva" +"az OpenCL ütemezési profil alapértelmezettre állítva, a beállítás " +"megváltozott" -#: ../src/common/opencl.c:1462 -msgid "" -"very fast GPU detected - OpenCL scheduling profile has been set accordingly" -msgstr "" -"nagyon gyors GPU észlelve – az OpenCL ütemezési profil ennek megfelelően " -"lett beállítva" - -#: ../src/common/opencl.c:1471 -msgid "OpenCL scheduling profile set to default" -msgstr "OpenCL ütemezési profil alapértelmezettre állítva" +#: ../src/common/opencl.c:2283 +#, c-format +msgid "building OpenCL program %s for %s" +msgstr "%s OpenCL-program fordítása %s számára" -#: ../src/common/pdf.h:88 ../src/iop/lens.cc:3441 +#: ../src/common/pdf.h:88 ../src/iop/lens.cc:4071 #: ../src/libs/filters/focal.c:74 ../src/libs/print_settings.c:81 msgid "mm" msgstr "mm" -#: ../src/common/pdf.h:89 ../src/libs/export.c:520 ../src/libs/export.c:1145 +#: ../src/common/pdf.h:89 ../src/libs/export.c:555 ../src/libs/export.c:1241 #: ../src/libs/print_settings.c:81 msgid "cm" msgstr "cm" @@ -6633,7 +6950,7 @@ msgid "\"" msgstr "\"" -#: ../src/common/pdf.h:104 ../src/iop/borders.c:958 +#: ../src/common/pdf.h:104 ../src/iop/borders.c:971 msgid "A4" msgstr "A4" @@ -6672,66 +6989,65 @@ msgid "no images selected to apply rating" msgstr "nincs kijelölt kép, amit értékelni lehetne" -#: ../src/common/ratings.c:275 ../src/libs/metadata_view.c:351 +#: ../src/common/ratings.c:274 ../src/libs/metadata_view.c:355 msgid "image rejected" msgstr "kép elvetve" -#: ../src/common/ratings.c:277 +#: ../src/common/ratings.c:276 msgid "image rated to 0 star" msgstr "kép értékelve 0 csillagra" -#: ../src/common/ratings.c:279 +#: ../src/common/ratings.c:278 #, c-format msgid "image rated to %s" msgstr "kép értékelve: %s" -#: ../src/common/ratings.c:306 ../src/libs/select.c:39 -#: ../src/views/lighttable.c:766 +#: ../src/common/ratings.c:305 ../src/views/lighttable.c:766 msgid "select" msgstr "kijelölés" -#: ../src/common/ratings.c:307 +#: ../src/common/ratings.c:306 msgid "upgrade" msgstr "felminősít" -#: ../src/common/ratings.c:308 +#: ../src/common/ratings.c:307 msgid "downgrade" msgstr "leminősít" -#: ../src/common/ratings.c:312 +#: ../src/common/ratings.c:311 msgid "zero" msgstr "null" -#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:277 +#: ../src/common/ratings.c:312 ../src/libs/filters/rating_range.c:304 msgid "one" msgstr "egy" -#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:278 +#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:305 msgid "two" msgstr "kettő" -#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:279 +#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:306 msgid "three" msgstr "három" -#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:280 +#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:307 msgid "four" msgstr "négy" -#: ../src/common/ratings.c:317 ../src/libs/filters/rating_range.c:281 +#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:308 msgid "five" msgstr "öt" -#: ../src/common/ratings.c:318 +#: ../src/common/ratings.c:317 msgid "reject" msgstr "elvet" -#: ../src/common/styles.c:244 +#: ../src/common/styles.c:243 #, c-format msgid "style with name '%s' already exists" msgstr "már létezik stílus „%s” néven" -#: ../src/common/styles.c:270 ../src/common/styles.c:1776 +#: ../src/common/styles.c:270 ../src/common/styles.c:1783 #: ../src/libs/styles.c:54 msgid "styles" msgstr "stílusok" @@ -6741,57 +7057,57 @@ msgid "style named '%s' successfully created" msgstr "stílus sikeresen létrehozva „%s” néven" -#: ../src/common/styles.c:689 ../src/common/styles.c:719 -#: ../src/common/styles.c:759 ../src/dtgtk/culling.c:1097 +#: ../src/common/styles.c:688 ../src/common/styles.c:718 +#: ../src/common/styles.c:758 ../src/dtgtk/culling.c:1066 msgid "no image selected!" msgstr "nincs kijelölt kép!" -#: ../src/common/styles.c:693 +#: ../src/common/styles.c:692 #, c-format msgid "style %s successfully applied!" msgstr "%s stílus sikeresen alkalmazva!" -#: ../src/common/styles.c:709 +#: ../src/common/styles.c:708 msgid "no images nor styles selected!" msgstr "sem képek, sem stílusok nincsenek kiválasztva!" -#: ../src/common/styles.c:714 +#: ../src/common/styles.c:713 msgid "no styles selected!" msgstr "nincsenek kiválasztott stílusok!" -#: ../src/common/styles.c:744 +#: ../src/common/styles.c:743 msgid "style successfully applied!" msgid_plural "styles successfully applied!" msgstr[0] "stílus sikeresen alkalmazva!" msgstr[1] "stílusok sikeresen alkalmazva!" -#: ../src/common/styles.c:840 +#: ../src/common/styles.c:838 #, c-format msgid "module `%s' version mismatch: %d != %d" msgstr "„%s” modul verziója eltér: %d != %d" -#: ../src/common/styles.c:1124 +#: ../src/common/styles.c:1125 #, c-format msgid "applied style `%s' on current image" msgstr "„%s” stílus alkalmazva a jelenlegi képen" -#: ../src/common/styles.c:1378 +#: ../src/common/styles.c:1383 #, c-format msgid "failed to overwrite style file for %s" msgstr "nem sikerült felülírni %s stílusfájlját" -#: ../src/common/styles.c:1384 +#: ../src/common/styles.c:1389 #, c-format msgid "style file for %s exists" msgstr "%s stílusfájlja már létezik" -#: ../src/common/styles.c:1667 +#: ../src/common/styles.c:1674 #, c-format msgid "style %s was successfully imported" msgstr "%s stílus sikeresen importálva" #. Failed to open file, clean up. -#: ../src/common/styles.c:1711 +#: ../src/common/styles.c:1718 #, c-format msgid "could not read file `%s'" msgstr "nem olvasható fájl: „%s”" @@ -6804,10 +7120,18 @@ msgid "below sea level" msgstr "tengerszint alatt" -#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:880 +#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:907 msgid "m" msgstr "m" +#: ../src/common/variables.c:712 ../src/develop/imageop_gui.c:210 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "yes" +msgstr "igen" + #. Column 1 - "make" of the camera. #. * Column 2 - "model" (use the "make" and "model" as provided by DCRaw). #. * Column 3 - WB name. @@ -6820,7 +7144,7 @@ #. * #. * WB name is standardized to one of the following: #. "Sunlight" and other variation should be switched to this: -#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:323 +#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:320 msgid "daylight" msgstr "nappali fény" @@ -6920,7 +7244,7 @@ msgid "underwater" msgstr "vízalatti" -#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2447 +#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2286 msgid "black & white" msgstr "fekete-fehér" @@ -6940,85 +7264,85 @@ msgid "auto WB" msgstr "automata WB" -#: ../src/control/control.c:66 ../src/gui/accelerators.c:138 -#: ../src/views/darkroom.c:2162 +#: ../src/control/control.c:69 ../src/gui/accelerators.c:156 +#: ../src/views/darkroom.c:2029 msgid "hold" msgstr "tart" -#: ../src/control/control.c:102 ../src/control/control.c:205 +#: ../src/control/control.c:108 ../src/control/control.c:214 msgid "modifiers" msgstr "módosítók" -#: ../src/control/control.c:111 +#: ../src/control/control.c:117 msgctxt "accel" msgid "global" msgstr "globális" -#: ../src/control/control.c:118 +#: ../src/control/control.c:124 msgctxt "accel" msgid "views" msgstr "nézetek" -#: ../src/control/control.c:125 +#: ../src/control/control.c:131 msgctxt "accel" msgid "thumbtable" msgstr "bélyegképasztal" -#: ../src/control/control.c:132 +#: ../src/control/control.c:138 msgctxt "accel" msgid "utility modules" msgstr "segédmodulok" -#: ../src/control/control.c:139 +#: ../src/control/control.c:145 msgctxt "accel" msgid "format" msgstr "formátum" -#: ../src/control/control.c:146 +#: ../src/control/control.c:152 msgctxt "accel" msgid "storage" msgstr "tárolás" -#: ../src/control/control.c:153 +#: ../src/control/control.c:159 msgctxt "accel" msgid "processing modules" msgstr "feldolgozó modulok" -#: ../src/control/control.c:160 +#: ../src/control/control.c:166 msgctxt "accel" msgid "<blending>" msgstr "<keverés>" -#: ../src/control/control.c:167 +#: ../src/control/control.c:173 msgctxt "accel" msgid "Lua scripts" msgstr "Lua scriptek" -#: ../src/control/control.c:174 +#: ../src/control/control.c:180 msgctxt "accel" msgid "fallbacks" msgstr "tartalékok" -#: ../src/control/control.c:183 +#: ../src/control/control.c:189 msgctxt "accel" msgid "<focused>" msgstr "<fókuszban>" -#: ../src/control/control.c:202 +#: ../src/control/control.c:209 msgid "show accels window" msgstr "gyorsbillentyű ablak megjelenítése" -#: ../src/control/control.c:363 +#: ../src/control/control.c:371 msgid "working..." msgstr "feldolgozás…" -#: ../src/control/crawler.c:425 +#: ../src/control/crawler.c:418 #, c-format msgid "ERROR: %s NOT synced XMP → DB" msgstr "HIBA: %s NINCS szinkronizálva XMP → DB" -#: ../src/control/crawler.c:426 ../src/control/crawler.c:492 -#: ../src/control/crawler.c:561 +#: ../src/control/crawler.c:419 ../src/control/crawler.c:485 +#: ../src/control/crawler.c:554 msgid "" "ERROR: cannot write the database. the destination may be full, offline or " "read-only." @@ -7026,18 +7350,18 @@ "HIBA: nem lehet írni az adatbázist. lehet, hogy a cél tele van, offline vagy " "csak olvasható." -#: ../src/control/crawler.c:433 +#: ../src/control/crawler.c:426 #, c-format msgid "SUCCESS: %s synced XMP → DB" msgstr "SIKER: %s szinkronizálva XMP → DB" -#: ../src/control/crawler.c:455 +#: ../src/control/crawler.c:448 #, c-format msgid "ERROR: %s NOT synced DB → XMP" msgstr "HIBA: %s NINCS szinkronizálva DB → XMP" -#: ../src/control/crawler.c:457 ../src/control/crawler.c:516 -#: ../src/control/crawler.c:582 +#: ../src/control/crawler.c:450 ../src/control/crawler.c:509 +#: ../src/control/crawler.c:575 #, c-format msgid "" "ERROR: cannot write %s \n" @@ -7046,129 +7370,133 @@ "HIBA: %s nem írható\n" "lehet, hogy a cél tele van, offline, vagy csak olvasható." -#: ../src/control/crawler.c:463 +#: ../src/control/crawler.c:456 #, c-format msgid "SUCCESS: %s synced DB → XMP" msgstr "SIKER: %s szinkronizálva DB → XMP" -#: ../src/control/crawler.c:489 +#: ../src/control/crawler.c:482 #, c-format msgid "ERROR: %s NOT synced new (XMP) → old (DB)" msgstr "HIBA: %s NINCS szinkronizálva új (XMP) → régi (DB)" -#: ../src/control/crawler.c:499 +#: ../src/control/crawler.c:492 #, c-format msgid "SUCCESS: %s synced new (XMP) → old (DB)" msgstr "SIKER: %s szinkronizálva új (XMP) → régi (DB)" -#: ../src/control/crawler.c:513 +#: ../src/control/crawler.c:506 #, c-format msgid "ERROR: %s NOT synced new (DB) → old (XMP)" msgstr "HIBA: %s NINCS szinkronizálva új (DB) → régi (XMP)" -#: ../src/control/crawler.c:521 +#: ../src/control/crawler.c:514 #, c-format msgid "SUCCESS: %s synced new (DB) → old (XMP)" msgstr "SIKER: %s szinkronizálva új (DB) → régi (XMP)" -#: ../src/control/crawler.c:530 ../src/control/crawler.c:598 +#: ../src/control/crawler.c:523 ../src/control/crawler.c:591 #, c-format msgid "EXCEPTION: %s has inconsistent timestamps" msgstr "KIVÉTEL: %s időbélyegei inkonzisztensek" -#: ../src/control/crawler.c:558 +#: ../src/control/crawler.c:551 #, c-format msgid "ERROR: %s NOT synced old (XMP) → new (DB)" msgstr "HIBA: %s NINCS szinkronizálva régi (XMP) → új (DB)" -#: ../src/control/crawler.c:567 +#: ../src/control/crawler.c:560 #, c-format msgid "SUCCESS: %s synced old (XMP) → new (DB)" msgstr "SIKER: %s szinkronizálva régi (XMP) → új (DB)" -#: ../src/control/crawler.c:579 +#: ../src/control/crawler.c:572 #, c-format msgid "ERROR: %s NOT synced old (DB) → new (XMP)" msgstr "HIBA: %s NINCS szinkronizálva régi (DB) → új (XMP)" -#: ../src/control/crawler.c:588 +#: ../src/control/crawler.c:581 #, c-format msgid "SUCCESS: %s synced old (DB) → new (XMP)" msgstr "SIKER: %s szinkronizálva régi (DB) → új (XMP)" -#: ../src/control/crawler.c:670 +#: ../src/control/crawler.c:663 #, c-format msgid "%id %02dh %02dm %02ds" msgstr "%in %02dó %02dp %02dmp" -#: ../src/control/crawler.c:740 ../src/imageio/storage/disk.c:168 -#: ../src/imageio/storage/gallery.c:154 ../src/imageio/storage/latex.c:153 -#: ../src/imageio/storage/latex.c:171 +#: ../src/control/crawler.c:716 +msgid "XMP" +msgstr "XMP" + +#: ../src/control/crawler.c:733 ../src/imageio/storage/disk.c:250 +#: ../src/imageio/storage/gallery.c:202 ../src/imageio/storage/latex.c:190 +#: ../src/imageio/storage/latex.c:208 msgid "path" msgstr "útvonal" -#: ../src/control/crawler.c:749 +#: ../src/control/crawler.c:742 msgid "XMP timestamp" msgstr "XMP időbélyeg" -#: ../src/control/crawler.c:754 +#: ../src/control/crawler.c:747 msgid "database timestamp" msgstr "adatbázis időbélyeg" -#: ../src/control/crawler.c:759 +#: ../src/control/crawler.c:752 msgid "newest" msgstr "legújabb" -#: ../src/control/crawler.c:765 +#: ../src/control/crawler.c:758 msgid "time difference" msgstr "időkülönbség" -#: ../src/control/crawler.c:777 +#: ../src/control/crawler.c:770 msgid "updated XMP sidecar files found" msgstr "frissített XMP kísérőfájlok találhatóak" -#: ../src/control/crawler.c:778 +#: ../src/control/crawler.c:771 msgid "_close" msgstr "_bezárás" #. setup selection accelerators #. action-box -#: ../src/control/crawler.c:793 ../src/dtgtk/thumbtable.c:2578 -#: ../src/libs/import.c:1722 ../src/libs/select.c:135 +#: ../src/control/crawler.c:786 ../src/dtgtk/thumbtable.c:2755 +#: ../src/libs/import.c:1732 ../src/libs/select.c:136 msgid "select all" -msgstr "mindent kijelöl" +msgstr "összes kijelölése" -#: ../src/control/crawler.c:794 ../src/dtgtk/thumbtable.c:2580 -#: ../src/libs/import.c:1726 ../src/libs/select.c:139 +#: ../src/control/crawler.c:787 ../src/dtgtk/thumbtable.c:2757 +#: ../src/libs/import.c:1736 ../src/libs/select.c:140 msgid "select none" msgstr "kijelölés megszüntetése" -#: ../src/control/crawler.c:795 ../src/dtgtk/thumbtable.c:2582 -#: ../src/libs/select.c:143 +#: ../src/control/crawler.c:788 ../src/dtgtk/thumbtable.c:2759 +#: ../src/libs/select.c:144 msgid "invert selection" msgstr "kijelölés megfordítása" -#: ../src/control/crawler.c:807 +#: ../src/control/crawler.c:800 msgid "on the selection:" msgstr "a kijelölésen:" -#: ../src/control/crawler.c:808 +#: ../src/control/crawler.c:801 msgid "keep the XMP edit" msgstr "XMP szerkesztéseinek megtartása" -#: ../src/control/crawler.c:809 +#: ../src/control/crawler.c:802 msgid "keep the database edit" msgstr "tartsa meg az adatbázis szerkesztését" -#: ../src/control/crawler.c:810 +#: ../src/control/crawler.c:803 msgid "keep the newest edit" msgstr "tartsa meg a legújabb szerkesztést" -#: ../src/control/crawler.c:811 +#: ../src/control/crawler.c:804 msgid "keep the oldest edit" msgstr "tartsa meg a legrégebbi szerkesztést" -#: ../src/control/crawler.c:836 +#: ../src/control/crawler.c:829 msgid "synchronization log" msgstr "szinkronizációs napló" @@ -7198,6 +7526,10 @@ msgid "starting to import images from camera" msgstr "képek importálásának megkezdése a fényképezőről" +#: ../src/control/jobs/camera_jobs.c:302 +msgid "failed to import images from camera." +msgstr "nem sikerült képeket importálni a fényképezőről." + #: ../src/control/jobs/camera_jobs.c:309 #, c-format msgid "importing %d image from camera" @@ -7305,7 +7637,8 @@ msgid "_remove from library" msgstr "_törlés a gyűjteményből" -#: ../src/control/jobs/control_jobs.c:884 +#: ../src/control/jobs/control_jobs.c:884 ../src/libs/styles.c:440 +#: ../src/libs/styles.c:625 msgid "_skip" msgstr "_kihagyás" @@ -7403,42 +7736,42 @@ msgid "exporting %d / %d to %s" msgstr "%d / %d exportálása ide: %s" -#: ../src/control/jobs/control_jobs.c:1459 ../src/views/darkroom.c:800 +#: ../src/control/jobs/control_jobs.c:1451 ../src/views/darkroom.c:721 #: ../src/views/print.c:369 #, c-format msgid "image `%s' is currently unavailable" msgstr "„%s” kép jelenleg nem elérhető" -#: ../src/control/jobs/control_jobs.c:1551 +#: ../src/control/jobs/control_jobs.c:1554 msgid "merge HDR image" msgstr "HDR kép egyesítése" -#: ../src/control/jobs/control_jobs.c:1565 +#: ../src/control/jobs/control_jobs.c:1568 msgid "duplicate images" msgstr "képek duplikálása" -#: ../src/control/jobs/control_jobs.c:1571 +#: ../src/control/jobs/control_jobs.c:1574 msgid "flip images" msgstr "kepek megfordítása" -#: ../src/control/jobs/control_jobs.c:1578 +#: ../src/control/jobs/control_jobs.c:1581 msgid "set monochrome images" msgstr "monokróm képek beállítása" #. get all selected images now, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1585 +#: ../src/control/jobs/control_jobs.c:1588 msgid "remove images" msgstr "képek eltávolítása" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove image?" msgstr "eltávolítja a képeket?" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove images?" msgstr "eltávolítja a képeket?" -#: ../src/control/jobs/control_jobs.c:1599 +#: ../src/control/jobs/control_jobs.c:1602 #, c-format msgid "" "do you really want to remove %d image from darktable\n" @@ -7454,21 +7787,21 @@ "(anélkül, hogy törölné a lemezről)?" #. first get all selected images, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1614 -#: ../src/control/jobs/control_jobs.c:1647 +#: ../src/control/jobs/control_jobs.c:1617 +#: ../src/control/jobs/control_jobs.c:1650 msgid "delete images" msgstr "képek törlése" -#: ../src/control/jobs/control_jobs.c:1630 -#: ../src/control/jobs/control_jobs.c:1660 +#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1663 msgid "delete image?" msgstr "törli a képet?" -#: ../src/control/jobs/control_jobs.c:1630 +#: ../src/control/jobs/control_jobs.c:1633 msgid "delete images?" msgstr "törli a képeket?" -#: ../src/control/jobs/control_jobs.c:1631 +#: ../src/control/jobs/control_jobs.c:1634 #, c-format msgid "" "do you really want to physically delete %d image\n" @@ -7483,14 +7816,14 @@ "biztosan szeretne fizikailag törölni %d képet\n" "(kukába dobva, amennyiben lehetséges)?" -#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1636 #, c-format msgid "do you really want to physically delete %d image from disk?" msgid_plural "do you really want to physically delete %d images from disk?" msgstr[0] "biztosan törölni szeretne %d képet a lemezről?" msgstr[1] "biztosan törölni szeretne %d képet a lemezről?" -#: ../src/control/jobs/control_jobs.c:1661 +#: ../src/control/jobs/control_jobs.c:1664 msgid "" "do you really want to physically delete selected image (using trash if " "possible)?" @@ -7498,27 +7831,27 @@ "biztosan szeretné fizikailag törölni a kiválasztott képeket (kukába dobva, " "amennyiben lehetséges)?" -#: ../src/control/jobs/control_jobs.c:1662 +#: ../src/control/jobs/control_jobs.c:1665 msgid "do you really want to physically delete selected image from disk?" msgstr "" "biztosan szeretné fizikailag törölni a kiválasztott képeket a lemezről?" -#: ../src/control/jobs/control_jobs.c:1677 +#: ../src/control/jobs/control_jobs.c:1680 msgid "move images" msgstr "képek áthelyezése" -#: ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 msgid "_select as destination" msgstr "kiválasztás _célnak" -#: ../src/control/jobs/control_jobs.c:1708 +#: ../src/control/jobs/control_jobs.c:1711 msgid "move image?" msgid_plural "move images?" msgstr[0] "áthelyezi a képet?" msgstr[1] "áthelyezi a képeket?" -#: ../src/control/jobs/control_jobs.c:1709 +#: ../src/control/jobs/control_jobs.c:1712 #, c-format msgid "" "do you really want to physically move %d image to %s?\n" @@ -7533,117 +7866,112 @@ "biztosan szeretne %d képet fizikailag ide mozgatni: %s?\n" "(a nem kiválasztott duplikátumok is át lesznek helyezve)" -#: ../src/control/jobs/control_jobs.c:1731 +#: ../src/control/jobs/control_jobs.c:1734 msgid "copy images" msgstr "képek másolása" -#: ../src/control/jobs/control_jobs.c:1762 +#: ../src/control/jobs/control_jobs.c:1765 msgid "copy image?" msgid_plural "copy images?" msgstr[0] "átmásolja a képet?" msgstr[1] "átmásolja a képeket?" -#: ../src/control/jobs/control_jobs.c:1763 +#: ../src/control/jobs/control_jobs.c:1766 #, c-format msgid "do you really want to physically copy %d image to %s?" msgid_plural "do you really want to physically copy %d images to %s?" msgstr[0] "biztosan szeretne %d képet fizikailag ide másolni: %s?" msgstr[1] "biztosan szeretne %d képet fizikailag ide másolni: %s?" -#: ../src/control/jobs/control_jobs.c:1781 -#: ../src/control/jobs/control_jobs.c:1789 +#: ../src/control/jobs/control_jobs.c:1784 +#: ../src/control/jobs/control_jobs.c:1792 msgid "local copy images" msgstr "helyi másolat készítése" -#: ../src/control/jobs/control_jobs.c:1796 ../src/libs/image.c:604 +#: ../src/control/jobs/control_jobs.c:1799 ../src/libs/image.c:674 msgid "refresh EXIF" msgstr "EXIF frissítése" -#: ../src/control/jobs/control_jobs.c:1860 +#: ../src/control/jobs/control_jobs.c:1863 #, c-format msgid "failed to get parameters from storage module `%s', aborting export.." msgstr "" "nem sikerült lekérni a paramétereket a(z) „%s” adattároló modultól. " "exportálás megszakítása…" -#: ../src/control/jobs/control_jobs.c:1876 +#: ../src/control/jobs/control_jobs.c:1879 msgid "export images" msgstr "képek exportálása" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "adding time offset to %d image" msgstr "időeltolás hozzáadása %d képhez" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "setting date/time of %d image" msgstr "%d kép dátumának/idejének beállítása" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "adding time offset to %d images" msgstr "időeltolás hozzáadása %d képhez" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "setting date/time of %d images" msgstr "%d kép dátumának/idejének beállítása" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "added time offset to %d image" msgstr "időeltolás hozzáadva %d képhez" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "set date/time of %d image" msgstr "dátum/idő beállítva %d képen" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "added time offset to %d images" msgstr "időeltérés hozzáadva %d képhez" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "set date/time of %d images" msgstr "dátum/idő beállítva %d képen" -#: ../src/control/jobs/control_jobs.c:2014 +#: ../src/control/jobs/control_jobs.c:2017 msgid "time offset" msgstr "időeltolás" -#: ../src/control/jobs/control_jobs.c:2042 ../src/libs/copy_history.c:414 +#: ../src/control/jobs/control_jobs.c:2045 ../src/libs/copy_history.c:414 msgid "write sidecar files" msgstr "kísérőfájlok írása" -#: ../src/control/jobs/control_jobs.c:2256 ../src/control/jobs/film_jobs.c:297 +#: ../src/control/jobs/control_jobs.c:2259 ../src/control/jobs/film_jobs.c:297 #, c-format msgid "importing %d image" msgid_plural "importing %d images" msgstr[0] "%d kép importálása" msgstr[1] "%d kép importálása" -#: ../src/control/jobs/control_jobs.c:2292 +#: ../src/control/jobs/control_jobs.c:2295 #, c-format msgid "importing %d/%d image" msgid_plural "importing %d/%d images" msgstr[0] "%d/%d kép importálása" msgstr[1] "%d/%d kép importálása" -#: ../src/control/jobs/control_jobs.c:2300 +#: ../src/control/jobs/control_jobs.c:2305 #, c-format msgid "imported %d image" msgid_plural "imported %d images" msgstr[0] "%d kép importálva" msgstr[1] "%d kép importálva" -#: ../src/control/jobs/control_jobs.c:2347 ../src/gui/preferences.c:530 -#: ../src/libs/import.c:172 -msgid "import" -msgstr "importálás" - #: ../src/control/jobs/film_jobs.c:73 ../src/control/jobs/film_jobs.c:109 msgid "import images" msgstr "képek importálása" @@ -7661,11 +7989,11 @@ msgid "import image" msgstr "kép importálása" -#: ../src/develop/blend.c:322 +#: ../src/develop/blend.c:315 msgid "detail mask blending error" msgstr "részlet maszk keverési hiba" -#: ../src/develop/blend.c:864 +#: ../src/develop/blend.c:904 msgid "detail mask CL blending problem" msgstr "részlet maszk CL keverési hiba" @@ -7866,8 +8194,7 @@ msgid "reverse" msgstr "fordított" -#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:413 -#: ../src/libs/metadata.c:631 ../src/libs/metadata_view.c:1193 +#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:442 msgid "default" msgstr "alapértelmezett" @@ -7875,35 +8202,35 @@ msgid "RAW" msgstr "RAW" -#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2014 +#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2030 msgid "RGB (display)" msgstr "RGB (képernyő)" -#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2027 +#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2043 msgid "RGB (scene)" msgstr "RGB (látvány)" #. DEVELOP_MASK_ENABLED -#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3419 +#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3438 msgid "uniformly" msgstr "egyenletes" -#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:3429 ../src/develop/imageop.c:2660 +#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:3448 ../src/develop/imageop.c:2669 msgid "drawn mask" msgstr "rajzolt maszk" -#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2512 -#: ../src/develop/blend_gui.c:3440 ../src/develop/imageop.c:2662 +#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2528 +#: ../src/develop/blend_gui.c:3459 ../src/develop/imageop.c:2671 msgid "parametric mask" msgstr "paraméteres maszk" -#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2951 -#: ../src/develop/blend_gui.c:3467 ../src/develop/imageop.c:2664 +#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2966 +#: ../src/develop/blend_gui.c:3486 ../src/develop/imageop.c:2673 msgid "raster mask" msgstr "raszter maszk" -#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3454 +#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3473 msgid "drawn & parametric mask" msgstr "rajzolt és paraméteres maszk" @@ -7939,177 +8266,177 @@ msgid "input after blur" msgstr "bemenet az elmosás után" -#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:129 -#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/libs/live_view.c:362 +#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:157 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/libs/live_view.c:362 msgid "on" msgstr "be" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "input" msgstr "bemenet" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "output" msgstr "kimenet" -#: ../src/develop/blend_gui.c:995 +#: ../src/develop/blend_gui.c:998 msgid " (zoom)" msgstr " (zoom)" -#: ../src/develop/blend_gui.c:1003 +#: ../src/develop/blend_gui.c:1006 msgid " (log)" msgstr " (log)" -#: ../src/develop/blend_gui.c:1988 +#: ../src/develop/blend_gui.c:2004 msgid "reset to default blend colorspace" msgstr "visszaállítás alapértelmezett keverési színtérre" -#: ../src/develop/blend_gui.c:2044 +#: ../src/develop/blend_gui.c:2060 msgid "reset and hide output channels" msgstr "kimeneti csatornák visszaállítása és elrejtése" -#: ../src/develop/blend_gui.c:2051 +#: ../src/develop/blend_gui.c:2067 msgid "show output channels" msgstr "kimeneti csatornák megjelenítése" -#: ../src/develop/blend_gui.c:2290 ../src/develop/blend_gui.c:2357 -#: ../src/iop/tonecurve.c:1134 +#: ../src/develop/blend_gui.c:2306 ../src/develop/blend_gui.c:2373 +#: ../src/iop/tonecurve.c:1156 msgid "L" msgstr "L" -#: ../src/develop/blend_gui.c:2290 +#: ../src/develop/blend_gui.c:2306 msgid "sliders for L channel" msgstr "az „L” csatorna csúszkái" -#: ../src/develop/blend_gui.c:2295 ../src/iop/tonecurve.c:1135 +#: ../src/develop/blend_gui.c:2311 ../src/iop/tonecurve.c:1157 msgid "a" msgstr "a" -#: ../src/develop/blend_gui.c:2295 +#: ../src/develop/blend_gui.c:2311 msgid "sliders for a channel" msgstr "„a” csatorna csúszkája" -#: ../src/develop/blend_gui.c:2299 +#: ../src/develop/blend_gui.c:2315 msgid "green/red" msgstr "zöld/vörös" -#: ../src/develop/blend_gui.c:2300 ../src/iop/tonecurve.c:1136 +#: ../src/develop/blend_gui.c:2316 ../src/iop/tonecurve.c:1158 msgid "b" msgstr "b" -#: ../src/develop/blend_gui.c:2300 +#: ../src/develop/blend_gui.c:2316 msgid "sliders for b channel" msgstr "„b” csatorna csúszkája" -#: ../src/develop/blend_gui.c:2304 +#: ../src/develop/blend_gui.c:2320 msgid "blue/yellow" msgstr "kék/sárga" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "C" msgstr "C" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "sliders for chroma channel (of LCh)" msgstr "a krominancia csatorna csúszkái (LCh)" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "h" msgstr "h" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "sliders for hue channel (of LCh)" msgstr "az árnyalat csatorna csúszkái (LCh)" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "g" msgstr "g" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "sliders for gray value" msgstr "a szürke érték csúszkái" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/denoiseprofile.c:3710 -#: ../src/iop/rawdenoise.c:894 ../src/iop/rgbcurve.c:1358 -#: ../src/iop/rgblevels.c:1003 ../src/libs/filters/colors.c:137 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/denoiseprofile.c:3714 +#: ../src/iop/rawdenoise.c:910 ../src/iop/rgbcurve.c:1358 +#: ../src/iop/rgblevels.c:1043 ../src/libs/filters/colors.c:137 msgid "R" msgstr "R" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 msgid "sliders for red channel" msgstr "a vörös csatorna csúszkái" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/denoiseprofile.c:3711 -#: ../src/iop/rawdenoise.c:895 ../src/iop/rgbcurve.c:1359 -#: ../src/iop/rgblevels.c:1004 ../src/libs/filters/colors.c:143 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/denoiseprofile.c:3715 +#: ../src/iop/rawdenoise.c:911 ../src/iop/rgbcurve.c:1359 +#: ../src/iop/rgblevels.c:1044 ../src/libs/filters/colors.c:143 msgid "G" msgstr "G" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 msgid "sliders for green channel" msgstr "a zöld csatorna csúszkái" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/denoiseprofile.c:3712 -#: ../src/iop/rawdenoise.c:896 ../src/iop/rgbcurve.c:1360 -#: ../src/iop/rgblevels.c:1005 ../src/libs/filters/colors.c:146 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/denoiseprofile.c:3716 +#: ../src/iop/rawdenoise.c:912 ../src/iop/rgbcurve.c:1360 +#: ../src/iop/rgblevels.c:1045 ../src/libs/filters/colors.c:146 msgid "B" msgstr "B" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 msgid "sliders for blue channel" msgstr "kék csatorna csúszkái" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "H" msgstr "H" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "sliders for hue channel (of HSL)" msgstr "az árnyalat csatorna csúszkái (HSL)" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "S" msgstr "S" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "sliders for chroma channel (of HSL)" msgstr "a krominancia csatorna csúszkái (HSL)" -#: ../src/develop/blend_gui.c:2357 +#: ../src/develop/blend_gui.c:2373 msgid "sliders for value channel (of HSL)" msgstr "a fényerő csatorna csúszkái (HSL)" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "Jz" msgstr "Jz" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "sliders for value channel (of JzCzhz)" msgstr "a fényerő csatorna csúszkái (JzCzhz-ben)" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "Cz" msgstr "Cz" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "sliders for chroma channel (of JzCzhz)" msgstr "a krominancia csatorna csúszkái (JzCzhz-ben)" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "hz" msgstr "hz" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "sliders for hue channel (of JzCzhz)" msgstr "az árnyalat csatorna csúszkái (JzCzhz-ben)" -#: ../src/develop/blend_gui.c:2415 +#: ../src/develop/blend_gui.c:2431 msgid "" "adjustment based on input received by this module:\n" "* range defined by upper markers: blend fully\n" @@ -8121,7 +8448,7 @@ "* az alsó jelölők tartománya: ne legyen keverve\n" "* a szomszédos alsó-felső jelölők tartománya: átmenetes keverés" -#: ../src/develop/blend_gui.c:2419 +#: ../src/develop/blend_gui.c:2435 msgid "" "adjustment based on unblended output of this module:\n" "* range defined by upper markers: blend fully\n" @@ -8133,19 +8460,19 @@ "* az alsó jelölők tartománya: ne legyen keverve\n" "* a szomszédos alsó-felső jelölők tartománya: átmenetes keverés" -#: ../src/develop/blend_gui.c:2516 +#: ../src/develop/blend_gui.c:2532 msgid "reset blend mask settings" msgstr "keverési maszk beállításainak visszaállítása" -#: ../src/develop/blend_gui.c:2527 ../src/iop/atrous.c:1665 -#: ../src/iop/colorzones.c:2399 ../src/iop/denoiseprofile.c:3707 -#: ../src/iop/rawdenoise.c:891 ../src/iop/rgbcurve.c:1357 -#: ../src/iop/rgblevels.c:1002 ../src/iop/tonecurve.c:1133 +#: ../src/develop/blend_gui.c:2543 ../src/iop/atrous.c:1797 +#: ../src/iop/colorzones.c:2641 ../src/iop/denoiseprofile.c:3711 +#: ../src/iop/rawdenoise.c:907 ../src/iop/rgbcurve.c:1357 +#: ../src/iop/rgblevels.c:1041 ../src/iop/tonecurve.c:1155 msgid "channel" msgstr "csatorna" -#: ../src/develop/blend_gui.c:2542 ../src/iop/colorzones.c:2413 -#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1142 +#: ../src/develop/blend_gui.c:2558 ../src/iop/colorzones.c:2660 +#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1164 msgid "" "pick GUI color from image\n" "ctrl+click or right-click to select an area" @@ -8153,12 +8480,12 @@ "GUI szín mintavételezése a képről\n" "ctrl+klikk vagy jobb klikk a terület kijelöléshez" -#: ../src/develop/blend_gui.c:2545 ../src/iop/colorzones.c:2415 +#: ../src/develop/blend_gui.c:2561 ../src/iop/colorzones.c:2662 #: ../src/iop/rgbcurve.c:1369 msgid "show color" msgstr "szín megjelenítése" -#: ../src/develop/blend_gui.c:2554 +#: ../src/develop/blend_gui.c:2570 msgid "" "set the range based on an area from the image\n" "drag to use the input image\n" @@ -8168,21 +8495,21 @@ "húzás a bemeneti kép használatához\n" "ctrl+húzás a kimeneti kép használatához" -#: ../src/develop/blend_gui.c:2557 +#: ../src/develop/blend_gui.c:2573 msgid "set range" msgstr "tartomány beállítása" -#: ../src/develop/blend_gui.c:2560 +#: ../src/develop/blend_gui.c:2576 msgid "invert all channel's polarities" msgstr "csatornák polaritásának megcserélése" -#: ../src/develop/blend_gui.c:2584 +#: ../src/develop/blend_gui.c:2600 msgid "toggle polarity. best seen by enabling 'display mask'" msgstr "" "polaritás megfordítása. legjobban a „maszkolt terület megjelenítése” " "bekapcsolásával látható" -#: ../src/develop/blend_gui.c:2613 +#: ../src/develop/blend_gui.c:2629 msgid "" "double-click to reset.\n" "press 'a' to toggle available slider modes.\n" @@ -8194,170 +8521,205 @@ "„c” billentyű váltja a csatornaadatok megjelenítését.\n" "„m” billentyű váltja a maszk megjelenítését." -#: ../src/develop/blend_gui.c:2640 ../src/develop/blend_gui.c:3531 -#: ../src/iop/basicadj.c:600 ../src/iop/colorbalancergb.c:2090 -#: ../src/iop/exposure.c:1120 ../src/iop/exposure.c:1135 -#: ../src/iop/filmic.c:1503 ../src/iop/filmic.c:1516 ../src/iop/filmic.c:1558 -#: ../src/iop/filmicrgb.c:4440 ../src/iop/filmicrgb.c:4451 -#: ../src/iop/filmicrgb.c:4485 ../src/iop/filmicrgb.c:4495 -#: ../src/iop/graduatednd.c:1113 ../src/iop/negadoctor.c:1011 -#: ../src/iop/profile_gamma.c:643 ../src/iop/profile_gamma.c:649 -#: ../src/iop/relight.c:262 ../src/iop/soften.c:378 ../src/iop/toneequal.c:3326 -#: ../src/iop/toneequal.c:3329 ../src/iop/toneequal.c:3332 -#: ../src/iop/toneequal.c:3335 ../src/iop/toneequal.c:3338 -#: ../src/iop/toneequal.c:3341 ../src/iop/toneequal.c:3344 -#: ../src/iop/toneequal.c:3347 ../src/iop/toneequal.c:3350 -#: ../src/iop/toneequal.c:3472 ../src/iop/toneequal.c:3481 -#: ../src/iop/toneequal.c:3494 ../src/views/darkroom.c:2453 +#: ../src/develop/blend_gui.c:2656 ../src/develop/blend_gui.c:3577 +#: ../src/iop/basicadj.c:630 ../src/iop/colorbalancergb.c:2161 +#: ../src/iop/exposure.c:1138 ../src/iop/exposure.c:1153 +#: ../src/iop/filmic.c:1528 ../src/iop/filmic.c:1541 ../src/iop/filmic.c:1583 +#: ../src/iop/filmicrgb.c:4504 ../src/iop/filmicrgb.c:4515 +#: ../src/iop/filmicrgb.c:4549 ../src/iop/filmicrgb.c:4559 +#: ../src/iop/graduatednd.c:1082 ../src/iop/negadoctor.c:1030 +#: ../src/iop/profile_gamma.c:657 ../src/iop/profile_gamma.c:663 +#: ../src/iop/relight.c:258 ../src/iop/soften.c:373 ../src/iop/toneequal.c:3379 +#: ../src/iop/toneequal.c:3382 ../src/iop/toneequal.c:3385 +#: ../src/iop/toneequal.c:3388 ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3394 ../src/iop/toneequal.c:3397 +#: ../src/iop/toneequal.c:3400 ../src/iop/toneequal.c:3403 +#: ../src/iop/toneequal.c:3525 ../src/iop/toneequal.c:3534 +#: ../src/iop/toneequal.c:3547 ../src/views/darkroom.c:2292 msgid " EV" msgstr "FÉ" -#: ../src/develop/blend_gui.c:2642 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:2951 ../src/develop/blend_gui.c:3014 -#: ../src/develop/blend_gui.c:3499 ../src/develop/blend_gui.c:3529 -#: ../src/develop/blend_gui.c:3542 ../src/develop/blend_gui.c:3559 -#: ../src/develop/blend_gui.c:3583 ../src/develop/blend_gui.c:3593 -#: ../src/develop/blend_gui.c:3602 ../src/develop/blend_gui.c:3613 +#: ../src/develop/blend_gui.c:2658 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:2966 ../src/develop/blend_gui.c:3029 +#: ../src/develop/blend_gui.c:3545 ../src/develop/blend_gui.c:3575 +#: ../src/develop/blend_gui.c:3588 ../src/develop/blend_gui.c:3605 +#: ../src/develop/blend_gui.c:3629 ../src/develop/blend_gui.c:3641 +#: ../src/develop/blend_gui.c:3652 ../src/develop/blend_gui.c:3663 msgid "blend" msgstr "keverés" -#: ../src/develop/blend_gui.c:2642 +#: ../src/develop/blend_gui.c:2658 msgid "boost factor" msgstr "gyorsítási tényező" -#: ../src/develop/blend_gui.c:2645 +#: ../src/develop/blend_gui.c:2661 msgid "adjust the boost factor of the channel mask" msgstr "a csatorna maszkok gyorsítási tényezőjének állítása" -#: ../src/develop/blend_gui.c:2682 +#: ../src/develop/blend_gui.c:2698 #, c-format msgid "%d shape used" msgid_plural "%d shapes used" msgstr[0] "%d alakzatot használ" msgstr[1] "%d alakzatot használ" -#: ../src/develop/blend_gui.c:2687 ../src/develop/blend_gui.c:2743 -#: ../src/develop/blend_gui.c:2831 ../src/develop/blend_gui.c:2952 +#: ../src/develop/blend_gui.c:2703 ../src/develop/blend_gui.c:2759 +#: ../src/develop/blend_gui.c:2847 ../src/develop/blend_gui.c:2967 msgid "no mask used" msgstr "nem használ maszkot" -#: ../src/develop/blend_gui.c:2751 +#: ../src/develop/blend_gui.c:2767 msgid "toggle polarity of drawn mask" msgstr "rajzolt maszk polaritásának váltása" -#: ../src/develop/blend_gui.c:2760 +#: ../src/develop/blend_gui.c:2776 msgid "show and edit mask elements" msgstr "maszk elemek megjelenítése és szerkesztése" -#: ../src/develop/blend_gui.c:2761 +#: ../src/develop/blend_gui.c:2777 msgid "show and edit in restricted mode" msgstr "megjelenítés és szerkesztés korlátozott módban" -#: ../src/develop/blend_gui.c:2768 ../src/libs/masks.c:998 -#: ../src/libs/masks.c:1816 ../src/libs/masks.c:1820 +#: ../src/develop/blend_gui.c:2784 ../src/libs/masks.c:1014 +#: ../src/libs/masks.c:1812 ../src/libs/masks.c:1816 msgid "add gradient" msgstr "átmenet létrehozása" -#: ../src/develop/blend_gui.c:2769 +#: ../src/develop/blend_gui.c:2785 msgid "add multiple gradients" msgstr "többszörös átmenet létrehozása" -#: ../src/develop/blend_gui.c:2776 ../src/iop/retouch.c:2238 -#: ../src/libs/masks.c:978 ../src/libs/masks.c:1852 ../src/libs/masks.c:1856 +#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2466 +#: ../src/libs/masks.c:994 ../src/libs/masks.c:1848 ../src/libs/masks.c:1852 msgid "add brush" msgstr "útvonal ecsettel" -#: ../src/develop/blend_gui.c:2777 ../src/iop/retouch.c:2238 +#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2466 msgid "add multiple brush strokes" msgstr "több ecsetvonás létrehozása" -#: ../src/develop/blend_gui.c:2784 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 ../src/libs/masks.c:993 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1829 +#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 ../src/libs/masks.c:1009 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1825 msgid "add path" msgstr "útvonal létrehozása" -#: ../src/develop/blend_gui.c:2785 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 +#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 msgid "add multiple paths" msgstr "több útvonal létrehozása" -#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 ../src/libs/masks.c:988 ../src/libs/masks.c:1834 -#: ../src/libs/masks.c:1838 +#: ../src/develop/blend_gui.c:2808 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 ../src/libs/masks.c:1004 ../src/libs/masks.c:1830 +#: ../src/libs/masks.c:1834 msgid "add ellipse" msgstr "ellipszis létrehozása" -#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 +#: ../src/develop/blend_gui.c:2809 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 msgid "add multiple ellipses" msgstr "több ellipszis létrehozása" -#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 ../src/libs/masks.c:983 ../src/libs/masks.c:1843 -#: ../src/libs/masks.c:1847 +#: ../src/develop/blend_gui.c:2816 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 ../src/libs/masks.c:999 ../src/libs/masks.c:1839 +#: ../src/libs/masks.c:1843 msgid "add circle" msgstr "kör létrehozása" -#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 +#: ../src/develop/blend_gui.c:2817 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 msgid "add multiple circles" msgstr "több kör létrehozása" -#: ../src/develop/blend_gui.c:2961 +#: ../src/develop/blend_gui.c:2976 msgid "toggle polarity of raster mask" msgstr "raszter maszk polaritásának váltása" -#: ../src/develop/blend_gui.c:3101 +#: ../src/develop/blend_gui.c:3119 msgid "normal & difference" msgstr "normál és különbség" -#: ../src/develop/blend_gui.c:3106 +#: ../src/develop/blend_gui.c:3124 msgid "lighten" msgstr "világosítás" -#: ../src/develop/blend_gui.c:3113 +#: ../src/develop/blend_gui.c:3131 msgid "darken" msgstr "sötétítés" -#: ../src/develop/blend_gui.c:3120 +#: ../src/develop/blend_gui.c:3138 msgid "contrast enhancing" msgstr "kontrasztkiemelés" -#: ../src/develop/blend_gui.c:3127 ../src/develop/blend_gui.c:3150 +#: ../src/develop/blend_gui.c:3145 ../src/develop/blend_gui.c:3168 msgid "color channel" msgstr "színcsatorna" -#: ../src/develop/blend_gui.c:3138 ../src/develop/blend_gui.c:3153 +#: ../src/develop/blend_gui.c:3156 ../src/develop/blend_gui.c:3171 msgid "chromaticity & lightness" msgstr "kromacitás és fényesség" -#: ../src/develop/blend_gui.c:3145 +#: ../src/develop/blend_gui.c:3163 msgid "normal & arithmetic" msgstr "normál és számtani" #. add deprecated blend mode -#: ../src/develop/blend_gui.c:3166 +#: ../src/develop/blend_gui.c:3184 msgid "deprecated" msgstr "elavult" -#: ../src/develop/blend_gui.c:3478 +#. should never happen: unknown blend mode +#: ../src/develop/blend_gui.c:3188 +#, c-format +msgid "unknown blend mode '%d' in module '%s'" +msgstr "ismeretlen „%d” keverési mód a(z) „%s” modulban" + +#: ../src/develop/blend_gui.c:3497 msgid "blending options" msgstr "keverési lehetőségek" -#: ../src/develop/blend_gui.c:3500 ../src/libs/history.c:949 -msgid "blend mode" -msgstr "keverési mód" +#: ../src/develop/blend_gui.c:3516 +msgid "blend mask" +msgstr "keverési maszk" -#: ../src/develop/blend_gui.c:3503 +#: ../src/develop/blend_gui.c:3520 +msgid "display mask and/or color channel" +msgstr "maszk és/vagy színcsatorna megjelenítése" + +#: ../src/develop/blend_gui.c:3525 +msgid "" +"display mask and/or color channel.\n" +"ctrl+click to display mask,\n" +"shift+click to display channel.\n" +"hover over parametric mask slider to select channel for display" +msgstr "" +"maszk és/vagy színcsatorna megjelenítése.\n" +"ctrl+klikkel megjeleníti a maszkot,\n" +"shift+klikkel megjeleníti a csatornát.\n" +"a megjelenítendő csatorna kiválasztásához húzza az egeret a paraméteres " +"maszk csúszkája fölé" + +#: ../src/develop/blend_gui.c:3532 +msgid "temporarily switch off blend mask" +msgstr "keverő maszk ideiglenes kikapcsolása" + +#: ../src/develop/blend_gui.c:3537 +msgid "" +"temporarily switch off blend mask.\n" +"only for module in focus" +msgstr "" +"átmenetileg kikapcsolja a keverő maszkot.\n" +"csak a fókuszban lévő modulokon" + +#: ../src/develop/blend_gui.c:3549 msgid "choose blending mode" msgstr "válasszon keverési módot" -#: ../src/develop/blend_gui.c:3513 +#: ../src/develop/blend_gui.c:3559 msgid "toggle blend order" msgstr "keverési sorrend váltása" -#: ../src/develop/blend_gui.c:3519 +#: ../src/develop/blend_gui.c:3565 msgid "" "toggle the blending order between the input and the output of the module,\n" "by default the output will be blended on top of the input,\n" @@ -8367,31 +8729,31 @@ "alapértelmezetten a kimenet a bemenet fölött lesz keverve,\n" "a sorrend megfordítható az ikonra kattintva (bemenet a kimenet fölött)" -#: ../src/develop/blend_gui.c:3530 ../src/libs/history.c:953 -msgid "blend fulcrum" -msgstr "keverési forgáspont" +#: ../src/develop/blend_gui.c:3576 +msgid "fulcrum" +msgstr "forgáspont" -#: ../src/develop/blend_gui.c:3534 +#: ../src/develop/blend_gui.c:3580 msgid "adjust the fulcrum used by some blending operations" msgstr "" -"a néhány keverési mód által használt forgáspont (a pont, ahol nincs művelet) " -"állítása" +"a néhány keverési mód által használt forgáspont (az a pont, ahol nincs " +"művelet) állítása" #. Add opacity/scale sliders to table -#: ../src/develop/blend_gui.c:3542 ../src/iop/watermark.c:1314 -#: ../src/libs/masks.c:104 +#: ../src/develop/blend_gui.c:3588 ../src/iop/watermark.c:1362 +#: ../src/libs/masks.c:105 msgid "opacity" msgstr "átlátszatlanság" -#: ../src/develop/blend_gui.c:3546 +#: ../src/develop/blend_gui.c:3591 msgid "set the opacity of the blending" msgstr "adja meg a keverés átlátszatlanságát" -#: ../src/develop/blend_gui.c:3550 ../src/libs/history.c:956 +#: ../src/develop/blend_gui.c:3596 ../src/libs/history.c:956 msgid "combine masks" msgstr "maszkok kombinálása" -#: ../src/develop/blend_gui.c:3552 +#: ../src/develop/blend_gui.c:3598 msgid "" "how to combine individual drawn mask and different channels of parametric " "mask" @@ -8399,11 +8761,11 @@ "hogyan legyenek az egyes rajzolt maszkok és a különböző csatornák " "paraméteres maszkjai kombinálva" -#: ../src/develop/blend_gui.c:3559 +#: ../src/develop/blend_gui.c:3605 msgid "details threshold" msgstr "részletek küszöbértéke" -#: ../src/develop/blend_gui.c:3563 +#: ../src/develop/blend_gui.c:3609 msgid "" "adjust the threshold for the details mask (using raw data),\n" "positive values select areas with strong details,\n" @@ -8413,11 +8775,11 @@ "pozitív érték a határozott részleteket jelöli ki,\n" "negatív érték az egysíkú területeket jelöli ki" -#: ../src/develop/blend_gui.c:3571 ../src/libs/history.c:959 +#: ../src/develop/blend_gui.c:3617 ../src/libs/history.c:959 msgid "feathering guide" msgstr "perem vezérlés" -#: ../src/develop/blend_gui.c:3574 +#: ../src/develop/blend_gui.c:3620 msgid "" "choose to guide mask by input or output image and\n" "choose to apply feathering before or after mask blur" @@ -8425,28 +8787,28 @@ "válassza ki a maszk vezérlését a bemeneti vagy kimeneti kép alapján és\n" "válassza ki a perem alkalmazását a maszk elmosás előttre vagy utánra" -#: ../src/develop/blend_gui.c:3583 ../src/libs/history.c:958 +#: ../src/develop/blend_gui.c:3629 ../src/libs/history.c:958 msgid "feathering radius" msgstr "perem sugár" -#: ../src/develop/blend_gui.c:3586 +#: ../src/develop/blend_gui.c:3632 msgid "spatial radius of feathering" msgstr "a perem térbeli kiterjedése" -#: ../src/develop/blend_gui.c:3593 +#: ../src/develop/blend_gui.c:3641 msgid "blurring radius" msgstr "elmosás sugara" -#: ../src/develop/blend_gui.c:3596 +#: ../src/develop/blend_gui.c:3644 msgid "radius for gaussian blur of blend mask" msgstr "a keverési maszk gauss-elmosásának sugara" -#: ../src/develop/blend_gui.c:3602 ../src/iop/retouch.c:2453 +#: ../src/develop/blend_gui.c:3652 ../src/iop/retouch.c:2738 #: ../src/libs/history.c:954 msgid "mask opacity" msgstr "maszk átlátszatlansága" -#: ../src/develop/blend_gui.c:3606 +#: ../src/develop/blend_gui.c:3656 msgid "" "shifts and tilts the tone curve of the blend mask to adjust its brightness\n" "without affecting fully transparent/fully opaque regions" @@ -8454,57 +8816,36 @@ "eltolja és billenti a keverési maszk tónusgörbéjét, hogy a fényességet a\n" "teljesen átlátszó/teljesen átlátszatlan régiók érintése nélkül állítsa" -#: ../src/develop/blend_gui.c:3613 ../src/libs/history.c:962 +#: ../src/develop/blend_gui.c:3663 ../src/libs/history.c:962 msgid "mask contrast" msgstr "maszk kontraszt" -#: ../src/develop/blend_gui.c:3617 +#: ../src/develop/blend_gui.c:3667 msgid "" "gives the tone curve of the blend mask an s-like shape to adjust its contrast" msgstr "" "a keverési maszk tónusgörbéjéhez hozzáad egy s-alakot, amivel a kontrasztot " "állítja" -#: ../src/develop/blend_gui.c:3621 +#: ../src/develop/blend_gui.c:3671 msgid "mask refinement" msgstr "maszk finomítás" -#: ../src/develop/blend_gui.c:3625 -msgid "display mask and/or color channel" -msgstr "maszk és/vagy színcsatorna megjelenítése" - -#: ../src/develop/blend_gui.c:3630 +#: ../src/develop/develop.c:732 msgid "" -"display mask and/or color channel.\n" -"ctrl+click to display mask,\n" -"shift+click to display channel.\n" -"hover over parametric mask slider to select channel for display" -msgstr "" -"maszk és/vagy színcsatorna megjelenítése.\n" -"ctrl+klikkel megjeleníti a maszkot,\n" -"shift+klikkel megjeleníti a csatornát.\n" -"a megjelenítendő csatorna kiválasztásához húzza az egeret a paraméteres " -"maszk csúszkája fölé" - -#: ../src/develop/blend_gui.c:3637 -msgid "temporarily switch off blend mask" -msgstr "keverő maszk ideiglenes kikapcsolása" - -#: ../src/develop/blend_gui.c:3642 -msgid "" -"temporarily switch off blend mask.\n" -"only for module in focus" +"autosaving history has been disabled for this session because of a slow " +"drive used" msgstr "" -"átmenetileg kikapcsolja a keverő maszkot.\n" -"csak a fókuszban lévő modulokon" +"az előzmények automatikus mentése le lett tiltva ebben a munkamenetben a " +"lassú háttértároló miatt" -#: ../src/develop/develop.c:2303 +#: ../src/develop/develop.c:2202 #, c-format msgid "%s: module `%s' version mismatch: %d != %d" msgstr "%s: „%s” modul verziója eltér: %d != %d" -#: ../src/develop/develop.c:2834 -msgid "module duplicate, can't move new instance after the base one\n" +#: ../src/develop/develop.c:3016 +msgid "duplicate module, can't move new instance after the base one\n" msgstr "" "duplikált modul, az új példányt nem lehet az alapul szolgáló mögé mozgatni\n" @@ -8516,70 +8857,69 @@ msgid "duplicate instance" msgstr "példány duplikálása" -#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3739 -#: ../src/libs/masks.c:1152 +#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3755 +#: ../src/libs/masks.c:1146 msgid "move up" msgstr "mozgatás fel" -#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3740 -#: ../src/libs/masks.c:1157 +#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3756 +#: ../src/libs/masks.c:1151 msgid "move down" msgstr "mozgatás le" #. delete button label and tooltip will be updated based on trash pref -#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3742 -#: ../src/gui/accelerators.c:155 ../src/gui/presets.c:562 -#: ../src/libs/image.c:285 ../src/libs/image.c:480 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 +#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3758 +#: ../src/gui/accelerators.c:173 ../src/libs/image.c:303 +#: ../src/libs/image.c:513 msgid "delete" msgstr "törlés" -#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3743 -#: ../src/libs/modulegroups.c:3464 ../src/libs/modulegroups.c:3815 +#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3759 +#: ../src/libs/modulegroups.c:3817 msgid "rename" msgstr "átnevezés" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched on" msgstr "„%s” be lett kapcsolva" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched off" msgstr "„%s” ki lett kapcsolva" -#: ../src/develop/imageop.c:2654 +#: ../src/develop/imageop.c:2663 msgid "unknown mask" msgstr "ismeretlen maszk" -#: ../src/develop/imageop.c:2658 +#: ../src/develop/imageop.c:2667 msgid "drawn + parametric mask" msgstr "rajzolt + paraméteres maszk" -#: ../src/develop/imageop.c:2667 +#: ../src/develop/imageop.c:2676 #, c-format msgid "this module has a `%s'" msgstr "ezen a modulon „%s” van" -#: ../src/develop/imageop.c:2672 +#: ../src/develop/imageop.c:2681 #, c-format msgid "taken from module %s" msgstr "%s modulból átvéve" -#: ../src/develop/imageop.c:2677 +#: ../src/develop/imageop.c:2686 msgid "click to display (module must be activated first)" msgstr "kattintson a megtekintéséhez (a modult előbb aktiválni kell)" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "purpose" msgstr "célja" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "process" msgstr "feldolgozás" -#: ../src/develop/imageop.c:2906 +#: ../src/develop/imageop.c:2917 msgid "" "multiple instance actions\n" "right-click creates new instance" @@ -8587,7 +8927,7 @@ "több példányos műveletek\n" "jobb kattintás új példányt hoz létre" -#: ../src/develop/imageop.c:2921 +#: ../src/develop/imageop.c:2932 msgid "" "reset parameters\n" "ctrl+click to reapply any automatic presets" @@ -8595,7 +8935,7 @@ "paraméterek visszaállítása\n" "ctrl+klikk az automatikus tárolt beállítások újbóli alkalmazása" -#: ../src/develop/imageop.c:2933 +#: ../src/develop/imageop.c:2944 msgid "" "presets\n" "right-click to apply on new instance" @@ -8603,15 +8943,15 @@ "tárolt beállítások\n" "jobb kattintással új példányra alkalmazza" -#: ../src/develop/imageop.c:3183 ../src/develop/imageop.c:3205 +#: ../src/develop/imageop.c:3194 ../src/develop/imageop.c:3216 msgid "ERROR" msgstr "HIBA" -#: ../src/develop/imageop.c:3620 +#: ../src/develop/imageop.c:3622 msgid "unsupported input" msgstr "nem támogatott bemenet" -#: ../src/develop/imageop.c:3621 +#: ../src/develop/imageop.c:3623 msgid "" "you have placed this module at\n" "a position in the pipeline where\n" @@ -8623,49 +8963,49 @@ "az adatformátum nem egyezik\n" "a követelményekkel." -#: ../src/develop/imageop.c:3738 ../src/develop/imageop.c:3748 -#: ../src/gui/accelerators.c:151 ../src/libs/lib.c:1414 +#: ../src/develop/imageop.c:3754 ../src/develop/imageop.c:3764 +#: ../src/gui/accelerators.c:169 ../src/libs/lib.c:1415 msgid "show" msgstr "mutat" -#: ../src/develop/imageop.c:3741 ../src/libs/modulegroups.c:3310 -#: ../src/libs/modulegroups.c:3436 ../src/libs/modulegroups.c:3817 -#: ../src/libs/tagging.c:3248 +#: ../src/develop/imageop.c:3757 ../src/libs/modulegroups.c:3315 +#: ../src/libs/modulegroups.c:3438 ../src/libs/modulegroups.c:3819 +#: ../src/libs/tagging.c:3279 msgid "new" msgstr "új" -#: ../src/develop/imageop.c:3744 ../src/libs/duplicate.c:405 -#: ../src/libs/image.c:495 ../src/libs/modulegroups.c:3813 +#: ../src/develop/imageop.c:3760 ../src/libs/duplicate.c:411 +#: ../src/libs/image.c:534 ../src/libs/modulegroups.c:3815 msgid "duplicate" msgstr "duplikálás" -#: ../src/develop/imageop.c:3749 +#: ../src/develop/imageop.c:3765 msgid "enable" msgstr "engedélyez" -#: ../src/develop/imageop.c:3750 ../src/gui/accelerators.c:167 +#: ../src/develop/imageop.c:3766 ../src/gui/accelerators.c:185 msgid "focus" msgstr "fókusz" -#: ../src/develop/imageop.c:3751 ../src/gui/accelerators.c:2617 +#: ../src/develop/imageop.c:3767 ../src/gui/accelerators.c:2874 msgid "instance" msgstr "példány" -#: ../src/develop/imageop.c:3752 ../src/gui/accelerators.c:112 -#: ../src/gui/accelerators.c:122 ../src/gui/gtk.c:3009 ../src/gui/gtk.c:3056 -#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:603 -#: ../src/gui/styles_dialog.c:625 ../src/iop/atrous.c:1512 -#: ../src/libs/lib.c:1415 ../src/libs/modulegroups.c:3882 +#: ../src/develop/imageop.c:3768 ../src/gui/accelerators.c:130 +#: ../src/gui/accelerators.c:140 ../src/gui/gtk.c:3055 ../src/gui/gtk.c:3102 +#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:615 +#: ../src/gui/styles_dialog.c:637 ../src/iop/atrous.c:1626 +#: ../src/libs/lib.c:1416 ../src/libs/modulegroups.c:3884 msgid "reset" msgstr "visszaállítás" #. Adding the outer container -#: ../src/develop/imageop.c:3753 ../src/gui/preferences.c:798 -#: ../src/libs/lib.c:1416 +#: ../src/develop/imageop.c:3769 ../src/gui/preferences.c:796 +#: ../src/libs/lib.c:1417 msgid "presets" msgstr "tárolt beállítások" -#: ../src/develop/imageop.c:3773 +#: ../src/develop/imageop.c:3789 msgid "processing module" msgstr "feldolgozó modul" @@ -8678,54 +9018,54 @@ "%s\n" "ctrl+klikk: %s" -#: ../src/develop/lightroom.c:1083 +#: ../src/develop/lightroom.c:1137 msgid "cannot find Lightroom XMP!" msgstr "nem található a Lightroom XMP!" -#: ../src/develop/lightroom.c:1115 ../src/develop/lightroom.c:1137 -#: ../src/develop/lightroom.c:1157 +#: ../src/develop/lightroom.c:1169 ../src/develop/lightroom.c:1191 +#: ../src/develop/lightroom.c:1211 #, c-format msgid "`%s' is not a Lightroom XMP!" msgstr "„%s” nem egy Lightroom XMP!" -#: ../src/develop/lightroom.c:1556 +#: ../src/develop/lightroom.c:1613 #, c-format msgid "%s has been imported" msgid_plural "%s have been imported" msgstr[0] "%s importálva" msgstr[1] "%s importálva" -#: ../src/develop/masks/brush.c:1356 ../src/develop/masks/brush.c:1410 +#: ../src/develop/masks/brush.c:1346 ../src/develop/masks/brush.c:1400 #, c-format msgid "hardness: %3.2f%%" msgstr "keménység: %3.2f%%" -#: ../src/develop/masks/brush.c:1372 ../src/develop/masks/brush.c:1470 +#: ../src/develop/masks/brush.c:1362 ../src/develop/masks/brush.c:1460 #: ../src/develop/masks/circle.c:148 ../src/develop/masks/circle.c:193 #: ../src/develop/masks/ellipse.c:484 ../src/develop/masks/ellipse.c:546 -#: ../src/develop/masks/path.c:1273 +#: ../src/develop/masks/path.c:1255 #, c-format msgid "size: %3.2f%%" msgstr "méret: %3.2f%%" -#: ../src/develop/masks/brush.c:3247 +#: ../src/develop/masks/brush.c:3191 msgid "[BRUSH] change size" msgstr "[ECSET] méret módosítása" -#: ../src/develop/masks/brush.c:3249 +#: ../src/develop/masks/brush.c:3193 msgid "[BRUSH] change hardness" msgstr "[ECSET] keménység módosítása" -#: ../src/develop/masks/brush.c:3251 +#: ../src/develop/masks/brush.c:3195 msgid "[BRUSH] change opacity" msgstr "[ECSET] átlátszatlanság módosítása" -#: ../src/develop/masks/brush.c:3263 +#: ../src/develop/masks/brush.c:3207 #, c-format msgid "brush #%d" msgstr "ecset #%d" -#: ../src/develop/masks/brush.c:3276 +#: ../src/develop/masks/brush.c:3220 #, c-format msgid "" "<b>size</b>: scroll, <b>hardness</b>: shift+scroll\n" @@ -8734,35 +9074,35 @@ "<b>méret</b>: görgetés, <b>keménység</b>: shift+görgetés\n" "<b>átlátszatlanság</b>: ctrl+görgetés (%d%%)" -#: ../src/develop/masks/brush.c:3279 +#: ../src/develop/masks/brush.c:3223 msgid "<b>size</b>: scroll" msgstr "<b>méret</b>: görgetés" #: ../src/develop/masks/circle.c:137 ../src/develop/masks/circle.c:181 #: ../src/develop/masks/ellipse.c:470 ../src/develop/masks/ellipse.c:531 -#: ../src/develop/masks/path.c:1205 +#: ../src/develop/masks/path.c:1187 #, c-format msgid "feather size: %3.2f%%" msgstr "perem méret: %3.2f%%" -#: ../src/develop/masks/circle.c:1510 +#: ../src/develop/masks/circle.c:1462 msgid "[CIRCLE] change size" msgstr "[KÖR] méret módosítása" -#: ../src/develop/masks/circle.c:1512 +#: ../src/develop/masks/circle.c:1464 msgid "[CIRCLE] change feather size" msgstr "[KÖR] lágy perem méretének módosítása" -#: ../src/develop/masks/circle.c:1514 +#: ../src/develop/masks/circle.c:1466 msgid "[CIRCLE] change opacity" msgstr "[KÖR] átlátszatlanság módosítása" -#: ../src/develop/masks/circle.c:1527 +#: ../src/develop/masks/circle.c:1479 #, c-format msgid "circle #%d" msgstr "kör #%d" -#: ../src/develop/masks/circle.c:1538 ../src/develop/masks/path.c:3490 +#: ../src/develop/masks/circle.c:1490 ../src/develop/masks/path.c:3406 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8776,32 +9116,32 @@ msgid "rotation: %3.f°" msgstr "forgatás: %3.f°" -#: ../src/develop/masks/ellipse.c:2068 +#: ../src/develop/masks/ellipse.c:2015 msgid "[ELLIPSE] change size" msgstr "[ELLIPSZIS] méret módosítása" -#: ../src/develop/masks/ellipse.c:2071 +#: ../src/develop/masks/ellipse.c:2018 msgid "[ELLIPSE] change feather size" msgstr "[ELLIPSZIS] lágy perem méretének módosítása" -#: ../src/develop/masks/ellipse.c:2074 ../src/develop/masks/ellipse.c:2083 +#: ../src/develop/masks/ellipse.c:2021 ../src/develop/masks/ellipse.c:2030 msgid "[ELLIPSE] rotate shape" msgstr "[ELLIPSZIS] alakzat forgatása" -#: ../src/develop/masks/ellipse.c:2077 +#: ../src/develop/masks/ellipse.c:2024 msgid "[ELLIPSE] change opacity" msgstr "[ELLIPSZIS] átlátszatlanság módosítása" -#: ../src/develop/masks/ellipse.c:2080 +#: ../src/develop/masks/ellipse.c:2027 msgid "[ELLIPSE] switch feathering mode" msgstr "[ELLIPSZIS] lágy perem mód váltása" -#: ../src/develop/masks/ellipse.c:2090 +#: ../src/develop/masks/ellipse.c:2037 #, c-format msgid "ellipse #%d" msgstr "ellipszis #%d" -#: ../src/develop/masks/ellipse.c:2128 +#: ../src/develop/masks/ellipse.c:2075 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8811,11 +9151,11 @@ "<b>forgatás</b>: ctrl+shift+görgetés, <b>átlátszatlanság</b>: ctrl+görgetés " "(%d%%)" -#: ../src/develop/masks/ellipse.c:2132 +#: ../src/develop/masks/ellipse.c:2079 msgid "<b>rotate</b>: ctrl+drag" msgstr "<b>forgatás</b>: ctrl+húzás" -#: ../src/develop/masks/ellipse.c:2135 +#: ../src/develop/masks/ellipse.c:2082 #, c-format msgid "" "<b>feather mode</b>: shift+click, <b>rotate</b>: ctrl+drag\n" @@ -8836,32 +9176,32 @@ msgid "curvature: %3.2f%%" msgstr "görbület: %3.2f%%" -#: ../src/develop/masks/gradient.c:1555 +#: ../src/develop/masks/gradient.c:1514 msgid "[GRADIENT on pivot] rotate shape" msgstr "[ÁTMENET sarokponton] alakzat forgatása" -#: ../src/develop/masks/gradient.c:1557 +#: ../src/develop/masks/gradient.c:1516 msgid "[GRADIENT creation] set rotation" msgstr "[ÁTMENET létrehozás] forgatása beállítása" -#: ../src/develop/masks/gradient.c:1559 +#: ../src/develop/masks/gradient.c:1518 msgid "[GRADIENT] change curvature" msgstr "[ÁTMENET] görbület módosítása" -#: ../src/develop/masks/gradient.c:1561 +#: ../src/develop/masks/gradient.c:1520 msgid "[GRADIENT] change compression" msgstr "[ÁTMENET] kompresszió módosítása" -#: ../src/develop/masks/gradient.c:1563 +#: ../src/develop/masks/gradient.c:1522 msgid "[GRADIENT] change opacity" msgstr "[ÁTMENET] átlátszatlanság módosítása" -#: ../src/develop/masks/gradient.c:1576 +#: ../src/develop/masks/gradient.c:1535 #, c-format msgid "gradient #%d" msgstr "átmenet #%d" -#: ../src/develop/masks/gradient.c:1587 +#: ../src/develop/masks/gradient.c:1546 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8870,7 +9210,7 @@ "<b>görbület</b>: görgetés, <b>tömörség</b>: shift+görgetés\n" "<b>forgatás</b>: click+húzás, <b>átlátszatlanság</b>: ctrl+görgetés (%d%%)" -#: ../src/develop/masks/gradient.c:1592 +#: ../src/develop/masks/gradient.c:1551 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8879,7 +9219,7 @@ "<b>görbület</b>: görgetés, <b>tömörség</b>: shift+görgetés\n" "<b>átlátszatlanság</b>: ctrl+görgetés (%d%%)" -#: ../src/develop/masks/gradient.c:1595 +#: ../src/develop/masks/gradient.c:1554 msgid "<b>rotate</b>: drag" msgstr "<b>forgatás</b>: húzás" @@ -8887,84 +9227,84 @@ msgid "[SHAPE] remove shape" msgstr "[ALAKZAT] alakzat eltávolítása" -#: ../src/develop/masks/masks.c:306 +#: ../src/develop/masks/masks.c:305 #, c-format msgid "group `%s'" msgstr "„%s” csoport" -#: ../src/develop/masks/masks.c:423 +#: ../src/develop/masks/masks.c:422 #, c-format msgid "copy of `%s'" msgstr "„%s” másolata" -#: ../src/develop/masks/masks.c:984 +#: ../src/develop/masks/masks.c:985 #, c-format msgid "%s: mask version mismatch: %d != %d" msgstr "%s: maszk verziója eltér: %d != %d" -#: ../src/develop/masks/masks.c:1239 ../src/develop/masks/masks.c:1906 +#: ../src/develop/masks/masks.c:1230 ../src/develop/masks/masks.c:1881 #, c-format msgid "opacity: %.0f%%" msgstr "átlátszatlanság: %.0f%%" -#: ../src/develop/masks/masks.c:1650 ../src/libs/masks.c:1068 +#: ../src/develop/masks/masks.c:1625 ../src/libs/masks.c:1084 msgid "add existing shape" msgstr "létező alakzat hozzáadása" -#: ../src/develop/masks/masks.c:1677 +#: ../src/develop/masks/masks.c:1652 msgid "use same shapes as" msgstr "ezzel azonos alakzatok használata:" -#: ../src/develop/masks/masks.c:1990 +#: ../src/develop/masks/masks.c:1965 msgid "masks can not contain themselves" msgstr "a maszkok nem tartalmazhatják saját magukat" -#: ../src/develop/masks/path.c:3433 +#: ../src/develop/masks/path.c:3349 msgid "[PATH creation] add a smooth node" msgstr "[ÚTVONAL készítés] íves pont hozzáadása" -#: ../src/develop/masks/path.c:3435 +#: ../src/develop/masks/path.c:3351 msgid "[PATH creation] add a sharp node" msgstr "[ÚTVONAL készítés] csúcsos pont hozzáadása" -#: ../src/develop/masks/path.c:3437 +#: ../src/develop/masks/path.c:3353 msgid "[PATH creation] terminate path creation" msgstr "[ÚTVONAL készítés] útvonalrajzolás befejezése" -#: ../src/develop/masks/path.c:3439 +#: ../src/develop/masks/path.c:3355 msgid "[PATH on node] switch between smooth/sharp node" msgstr "[ÚTVONAL ponton] váltás íves és csúcsos pont között" -#: ../src/develop/masks/path.c:3441 +#: ../src/develop/masks/path.c:3357 msgid "[PATH on node] remove the node" msgstr "[ÚTVONAL ponton] pont eltávolítása" -#: ../src/develop/masks/path.c:3443 +#: ../src/develop/masks/path.c:3359 msgid "[PATH on feather] reset curvature" msgstr "[ÚTVONAL lágy peremen] görbület viszaállítása" -#: ../src/develop/masks/path.c:3445 +#: ../src/develop/masks/path.c:3361 msgid "[PATH on segment] add node" msgstr "[ÚTVONAL szakaszon] pont hozzáadása" -#: ../src/develop/masks/path.c:3447 +#: ../src/develop/masks/path.c:3363 msgid "[PATH] change size" msgstr "[ÚTVONAL] méret módosítása" -#: ../src/develop/masks/path.c:3449 +#: ../src/develop/masks/path.c:3365 msgid "[PATH] change feather size" msgstr "[ÚTVONAL] lágy perem méretének módosítása" -#: ../src/develop/masks/path.c:3451 +#: ../src/develop/masks/path.c:3367 msgid "[PATH] change opacity" msgstr "[ÚTVONAL] átlátszatlanság módosítása" -#: ../src/develop/masks/path.c:3463 +#: ../src/develop/masks/path.c:3379 #, c-format msgid "path #%d" msgstr "útvonal #%d" -#: ../src/develop/masks/path.c:3473 +#: ../src/develop/masks/path.c:3389 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>cancel</b>: right-click" @@ -8973,7 +9313,7 @@ "ctrl+klikk\n" "<b>mégsem</b>: jobb-klikk" -#: ../src/develop/masks/path.c:3476 +#: ../src/develop/masks/path.c:3392 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>finish path</b>: right-click" @@ -8982,7 +9322,7 @@ "ctrl+klikk\n" "<b>útvonal befejezése</b>: jobb-klikk" -#: ../src/develop/masks/path.c:3479 +#: ../src/develop/masks/path.c:3395 msgid "" "<b>move node</b>: drag, <b>remove node</b>: right-click\n" "<b>switch smooth/sharp mode</b>: ctrl+click" @@ -8990,7 +9330,7 @@ "<b>pont mozgatása</b>: húzás, <b>pont eltávolítása</b>: jobb-klikk\n" "<b>íves/csúcsos pont váltása</b>: ctrl+klikk" -#: ../src/develop/masks/path.c:3483 +#: ../src/develop/masks/path.c:3399 msgid "" "<b>node curvature</b>: drag\n" "<b>reset curvature</b>: right-click" @@ -8998,7 +9338,7 @@ "<b>pont görbület</b>: húzás\n" "<b>görbület visszaállítása</b>: jobb-klikk" -#: ../src/develop/masks/path.c:3487 +#: ../src/develop/masks/path.c:3403 msgid "" "<b>move segment</b>: drag\n" "<b>add node</b>: ctrl+click" @@ -9006,11 +9346,11 @@ "<b>szakasz mozgatása</b>: húzás\n" "<b>pont hozzáadása</b>: ctrl+klikk" -#: ../src/develop/pixelpipe_hb.c:500 +#: ../src/develop/pixelpipe_hb.c:486 msgid "enabled as required" msgstr "szükségesként engedélyezeve" -#: ../src/develop/pixelpipe_hb.c:501 +#: ../src/develop/pixelpipe_hb.c:487 msgid "" "history had module disabled but it is required for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -9020,11 +9360,11 @@ "feltehetőleg egy tárolt beállítás alkalmazásával, vagy stílus, vagy előzmény " "másolásával került bele" -#: ../src/develop/pixelpipe_hb.c:508 +#: ../src/develop/pixelpipe_hb.c:494 msgid "disabled as not appropriate" msgstr "letiltva, mert nem megfelelő" -#: ../src/develop/pixelpipe_hb.c:509 +#: ../src/develop/pixelpipe_hb.c:495 msgid "" "history had module enabled but it is not allowed for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -9034,15 +9374,28 @@ "feltehetőleg egy tárolt beállítás alkalmazásával, vagy stílus, vagy előzmény " "másolásával került bele" -#: ../src/develop/pixelpipe_hb.c:2705 +#: ../src/develop/pixelpipe_hb.c:2697 msgid "" -"darktable discovered problems with your OpenCL setup; disabling OpenCL for " -"this session!" -msgstr "" -"a darktable problémát észlelt a rendszer OpenCL konfigurációjában. OpenCL " -"letiltva erre a munkamenetre!" +"OpenCL errors encountered; disabling OpenCL for this session! some possible " +"causes:\n" +" - OpenCL out of resources due to preference settings. please try with " +"defaults,\n" +" - buggy driver for some device. please run darktable with `-d opencl' to " +"identify,\n" +" - some drivers don't support needed number of events,\n" +" - too small headroom settings while using 'use all device memory'." +msgstr "" +"OpenCL hibákat észleltünk; az OpenCL letiltása erre a munkamenetre! néhány " +"lehetséges ok:\n" +" - a jelenelgi beállítások mellett az OpenCL erőforrásai elfogytak. " +"próbálja meg a alapértelmezett beállításokkal,\n" +" - hibás illesztőprogram néhány eszközhöz. kérjük, futtassa a darktable-t a " +"„-d opencl” kapcsolóval a hiba azonosításhoz,\n" +" - egyes illesztőprogramok nem támogatják a szükséges számú eseményt,\n" +" - túl kicsi a szabad mozgástér beállítás értéke az „összes eszközmemória " +"használata” használata mellett." -#: ../src/develop/pixelpipe_hb.c:2853 +#: ../src/develop/pixelpipe_hb.c:2847 #, c-format msgid "" "module '%s' can't get raster mask from module\n" @@ -9054,28 +9407,32 @@ "feldolgozva.\n" "rasztermaszk figyelmen kívül hagyva." -#: ../src/develop/tiling.c:820 ../src/develop/tiling.c:1173 +#: ../src/develop/tiling.c:819 ../src/develop/tiling.c:1172 #, c-format -msgid "tiling failed for module '%s'. output might be garbled." -msgstr "csempézés a(z) „%s” modul számára sikertelen. a kimenet csonka lehet." +msgid "" +"tiling failed for module '%s'. the output most likely will be OK, but you " +"might want to check." +msgstr "" +"a csempézés nem sikerült a(z) „%s” modulnál. a kimenet feltehetőleg rendben " +"van, de érdemes ellenőriznie." -#: ../src/dtgtk/culling.c:254 +#: ../src/dtgtk/culling.c:223 msgid "you have reached the start of your selection" msgstr "a kijelölés elejére ért" -#: ../src/dtgtk/culling.c:263 +#: ../src/dtgtk/culling.c:232 msgid "you have reached the start of your collection" msgstr "a gyűjtemény elejére ért" -#: ../src/dtgtk/culling.c:310 +#: ../src/dtgtk/culling.c:279 msgid "you have reached the end of your selection" msgstr "a kijelölés elejére ért" -#: ../src/dtgtk/culling.c:337 +#: ../src/dtgtk/culling.c:306 msgid "you have reached the end of your collection" msgstr "a gyűjtemény végére ért" -#: ../src/dtgtk/culling.c:446 +#: ../src/dtgtk/culling.c:415 #, c-format msgid "zooming is limited to %d images" msgstr "a nagyítás korlátozva van %d képre" @@ -9169,7 +9526,7 @@ msgid "fixed" msgstr "rögzített" -#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1493 +#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1498 msgid "relative" msgstr "relatív" @@ -9183,7 +9540,7 @@ msgstr "min" #: ../src/dtgtk/range.c:630 ../src/dtgtk/range.c:1780 ../src/dtgtk/range.c:1831 -#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:282 +#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:309 msgid "max" msgstr "max" @@ -9192,7 +9549,7 @@ msgstr "dátumtípus" #. the date section -#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1505 msgid "date" msgstr "dátum" @@ -9217,7 +9574,7 @@ msgstr "nap:" #. the time section -#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1505 msgid "time" msgstr "idő" @@ -9236,8 +9593,8 @@ "állítsa be az értéket úgy, hogy mindig megegyezzen az aktuális dátum/idővel" #. apply button -#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:162 -#: ../src/libs/metadata.c:901 ../src/libs/styles.c:897 +#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:180 +#: ../src/libs/metadata.c:735 ../src/libs/styles.c:901 msgid "apply" msgstr "alkalmaz" @@ -9271,39 +9628,39 @@ msgid "grouped images" msgstr "csoportosított képek" -#: ../src/dtgtk/thumbnail.c:820 ../src/dtgtk/thumbnail.c:1635 -#: ../src/iop/ashift.c:6191 ../src/iop/ashift.c:6280 ../src/iop/ashift.c:6282 -#: ../src/iop/ashift.c:6284 ../src/libs/navigation.c:110 -#: ../src/libs/navigation.c:190 +#: ../src/dtgtk/thumbnail.c:814 ../src/dtgtk/thumbnail.c:1623 +#: ../src/iop/ashift.c:6138 ../src/iop/ashift.c:6227 ../src/iop/ashift.c:6229 +#: ../src/iop/ashift.c:6231 ../src/libs/navigation.c:111 +#: ../src/libs/navigation.c:193 msgid "fit" msgstr "illeszkedés" -#: ../src/dtgtk/thumbtable.c:1041 ../src/views/slideshow.c:421 +#: ../src/dtgtk/thumbtable.c:1139 ../src/views/slideshow.c:422 msgid "there are no images in this collection" msgstr "nincs kép ebben a gyűjteményben" -#: ../src/dtgtk/thumbtable.c:1048 +#: ../src/dtgtk/thumbtable.c:1146 msgid "if you have not imported any images yet" msgstr "ha még nem importált képeket" -#: ../src/dtgtk/thumbtable.c:1052 +#: ../src/dtgtk/thumbtable.c:1150 msgid "you can do so in the import module" msgstr "megteheti az import modulban" -#: ../src/dtgtk/thumbtable.c:1061 +#: ../src/dtgtk/thumbtable.c:1159 msgid "try to relax the filter settings in the top panel" msgstr "próbálja lazítani a szűrőfeltételeket a felső panelen" -#: ../src/dtgtk/thumbtable.c:1072 +#: ../src/dtgtk/thumbtable.c:1170 msgid "or add images in the collections module in the left panel" msgstr "vagy a bal panelen adjon hozzá képeket a gyűjtemény modulban" -#: ../src/dtgtk/thumbtable.c:1338 +#: ../src/dtgtk/thumbtable.c:1455 msgid "" "you have changed the settings related to how thumbnails are generated.\n" msgstr "megváltoztatta a bélyegképek generálásához kapcsolódó beállításokat.\n" -#: ../src/dtgtk/thumbtable.c:1341 +#: ../src/dtgtk/thumbtable.c:1458 msgid "" "all cached thumbnails need to be invalidated.\n" "\n" @@ -9311,7 +9668,7 @@ "az összes gyorsítótárazott bélyegképet érvényteleníteni kell.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1345 +#: ../src/dtgtk/thumbtable.c:1462 #, c-format msgid "" "cached thumbnails starting from level %d need to be invalidated.\n" @@ -9320,7 +9677,7 @@ "%d szinttől a gyorsítótárazott képeket érvényteleníteni kell.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1350 +#: ../src/dtgtk/thumbtable.c:1467 #, c-format msgid "" "cached thumbnails below level %d need to be invalidated.\n" @@ -9329,7 +9686,7 @@ "%d szint alatt a gyorsítótárazott képeket érvényteleníteni kell.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1355 +#: ../src/dtgtk/thumbtable.c:1472 #, c-format msgid "" "cached thumbnails between level %d and %d need to be invalidated.\n" @@ -9338,48 +9695,48 @@ "%d és %d szint között a gyorsítótárazott képeket érvényteleníteni kell.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1358 +#: ../src/dtgtk/thumbtable.c:1475 msgid "do you want to do that now?" msgstr "szeretné ezt most megtenni?" -#: ../src/dtgtk/thumbtable.c:1360 +#: ../src/dtgtk/thumbtable.c:1477 msgid "cached thumbnails invalidation" msgstr "gyorsítótárazott bélyegképek érvénytelenítése" #. setup history key accelerators -#: ../src/dtgtk/thumbtable.c:2561 +#: ../src/dtgtk/thumbtable.c:2738 msgid "copy history" msgstr "előzmények másolása" -#: ../src/dtgtk/thumbtable.c:2563 +#: ../src/dtgtk/thumbtable.c:2740 msgid "copy history parts" msgstr "előzményrészek másolása" -#: ../src/dtgtk/thumbtable.c:2565 +#: ../src/dtgtk/thumbtable.c:2742 msgid "paste history" msgstr "előzmények beillesztése" -#: ../src/dtgtk/thumbtable.c:2567 +#: ../src/dtgtk/thumbtable.c:2744 msgid "paste history parts" msgstr "előzményrészek beillesztése" -#: ../src/dtgtk/thumbtable.c:2569 ../src/libs/copy_history.c:394 +#: ../src/dtgtk/thumbtable.c:2746 ../src/libs/copy_history.c:394 msgid "discard history" msgstr "előzmények elvetése" -#: ../src/dtgtk/thumbtable.c:2572 +#: ../src/dtgtk/thumbtable.c:2749 msgid "duplicate image" msgstr "kép duplikálása" -#: ../src/dtgtk/thumbtable.c:2574 +#: ../src/dtgtk/thumbtable.c:2751 msgid "duplicate image virgin" msgstr "szűz kép duplikálása" -#: ../src/dtgtk/thumbtable.c:2584 ../src/libs/select.c:147 +#: ../src/dtgtk/thumbtable.c:2761 ../src/libs/select.c:148 msgid "select film roll" msgstr "filmtekercs kijelölése" -#: ../src/dtgtk/thumbtable.c:2586 ../src/libs/select.c:151 +#: ../src/dtgtk/thumbtable.c:2763 ../src/libs/select.c:152 msgid "select untouched" msgstr "módosítatlanok kijelölése" @@ -9448,265 +9805,296 @@ msgid "creating complete lighttable thumbnail cache\n" msgstr "teljes átvilágító bélyegkép gyorsítótár létrehozása\n" -#: ../src/gui/accelerators.c:61 -msgid "active view" -msgstr "nézet aktiválása" - -#: ../src/gui/accelerators.c:62 -msgid "other views" -msgstr "egyéb nézetek" +#: ../src/gui/about.c:34 +#, c-format +msgid "copyright (c) the authors 2009-%s" +msgstr "copyright (c) a szerzők 2009-%s" + +#: ../src/gui/about.c:39 +msgid "organize and develop images from digital cameras" +msgstr "digitális fényképező képeinek rendezése, kidolgozása" + +#: ../src/gui/about.c:51 +msgid "all those of you that made previous releases possible" +msgstr "mindazok, akik lehetővé tették a korábbi kiadásokat" + +#: ../src/gui/about.c:56 +msgid "and..." +msgstr "és…" -#: ../src/gui/accelerators.c:63 +#: ../src/gui/about.c:59 +msgid "translator-credits" +msgstr "Báthory Péter" + +#: ../src/gui/accelerators.c:72 +msgid "in active view" +msgstr "az aktív nézetben" + +#: ../src/gui/accelerators.c:73 +msgid "in other views" +msgstr "más nézetekben" + +#: ../src/gui/accelerators.c:74 msgid "fallbacks" msgstr "tartalékok" -#: ../src/gui/accelerators.c:64 ../src/gui/accelerators.c:722 -#: ../src/gui/accelerators.c:2607 ../src/gui/accelerators.c:3470 -msgid "speed" -msgstr "sebesség" +#: ../src/gui/accelerators.c:75 +msgid "speed adjustments" +msgstr "sebességállítás" + +#: ../src/gui/accelerators.c:76 +msgid "disabled defaults" +msgstr "alapértelmezések letiltva" -#: ../src/gui/accelerators.c:80 ../src/views/view.c:1202 +#: ../src/gui/accelerators.c:96 ../src/views/view.c:1361 msgid "scroll" msgstr "görgetés" -#: ../src/gui/accelerators.c:81 +#: ../src/gui/accelerators.c:97 msgid "pan" msgstr "mozgatás" -#: ../src/gui/accelerators.c:82 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6283 ../src/iop/clipping.c:1902 -#: ../src/iop/clipping.c:2094 ../src/iop/clipping.c:2110 -#: ../src/views/darkroom.c:2676 ../src/views/lighttable.c:1250 +#: ../src/gui/accelerators.c:98 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6230 ../src/iop/clipping.c:1955 +#: ../src/iop/clipping.c:2147 ../src/iop/clipping.c:2163 +#: ../src/views/darkroom.c:2522 ../src/views/lighttable.c:1250 msgid "horizontal" msgstr "vízszintes" -#: ../src/gui/accelerators.c:83 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6281 ../src/iop/clipping.c:1901 -#: ../src/iop/clipping.c:2095 ../src/iop/clipping.c:2109 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:1254 +#: ../src/gui/accelerators.c:99 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6228 ../src/iop/clipping.c:1954 +#: ../src/iop/clipping.c:2148 ../src/iop/clipping.c:2162 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:1254 msgid "vertical" msgstr "függőleges" -#: ../src/gui/accelerators.c:84 +#: ../src/gui/accelerators.c:100 msgid "diagonal" msgstr "átlós" -#: ../src/gui/accelerators.c:86 +#: ../src/gui/accelerators.c:102 msgid "leftright" msgstr "baljobb" -#: ../src/gui/accelerators.c:87 +#: ../src/gui/accelerators.c:103 msgid "updown" msgstr "felle" -#: ../src/gui/accelerators.c:88 +#: ../src/gui/accelerators.c:104 msgid "pgupdown" msgstr "pgupdown" -#: ../src/gui/accelerators.c:96 ../src/views/view.c:1186 +#: ../src/gui/accelerators.c:112 ../src/views/view.c:1343 msgid "shift" msgstr "shift" -#: ../src/gui/accelerators.c:97 ../src/views/view.c:1187 +#: ../src/gui/accelerators.c:113 ../src/views/view.c:1345 msgid "ctrl" msgstr "ctrl" -#: ../src/gui/accelerators.c:98 ../src/views/view.c:1188 +#: ../src/gui/accelerators.c:114 ../src/views/view.c:1347 msgid "alt" msgstr "alt" -#: ../src/gui/accelerators.c:99 +#: ../src/gui/accelerators.c:115 msgid "cmd" msgstr "cmd" -#: ../src/gui/accelerators.c:100 +#: ../src/gui/accelerators.c:116 msgid "altgr" msgstr "altgr" -#: ../src/gui/accelerators.c:109 ../src/gui/accelerators.c:156 -#: ../src/libs/tagging.c:1782 +#: ../src/gui/accelerators.c:127 ../src/gui/accelerators.c:174 +#: ../src/libs/tagging.c:1804 msgid "edit" msgstr "szerkeszt" -#: ../src/gui/accelerators.c:110 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "up" msgstr "fel" -#: ../src/gui/accelerators.c:111 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:129 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "down" msgstr "le" -#: ../src/gui/accelerators.c:115 +#: ../src/gui/accelerators.c:133 msgid "set" msgstr "beállít" -#: ../src/gui/accelerators.c:119 +#: ../src/gui/accelerators.c:137 msgid "popup" msgstr "popup" -#: ../src/gui/accelerators.c:120 ../src/gui/accelerators.c:153 -#: ../src/gui/gtk.c:3054 ../src/views/lighttable.c:760 +#: ../src/gui/accelerators.c:138 ../src/gui/accelerators.c:171 +#: ../src/gui/gtk.c:3100 ../src/views/lighttable.c:760 msgid "next" msgstr "következő" -#: ../src/gui/accelerators.c:121 ../src/gui/accelerators.c:152 -#: ../src/gui/gtk.c:3055 ../src/views/lighttable.c:761 +#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:170 +#: ../src/gui/gtk.c:3101 ../src/views/lighttable.c:761 msgid "previous" msgstr "előző" -#: ../src/gui/accelerators.c:123 ../src/gui/accelerators.c:1462 +#: ../src/gui/accelerators.c:141 ../src/gui/accelerators.c:1598 msgid "last" msgstr "utolsó" -#: ../src/gui/accelerators.c:124 ../src/gui/accelerators.c:1461 +#: ../src/gui/accelerators.c:142 ../src/gui/accelerators.c:1597 msgid "first" msgstr "első" -#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:141 -#: ../src/gui/accelerators.c:314 ../src/libs/filters/rating_range.c:268 -#: ../src/libs/tagging.c:3119 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2419 ../src/views/darkroom.c:2648 +#: ../src/gui/accelerators.c:146 ../src/gui/accelerators.c:159 +#: ../src/gui/accelerators.c:356 ../src/libs/filters/rating_range.c:295 +#: ../src/libs/tagging.c:3150 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2258 ../src/views/darkroom.c:2494 msgid "toggle" msgstr "átvált" -#: ../src/gui/accelerators.c:131 +#: ../src/gui/accelerators.c:149 msgid "ctrl-toggle" msgstr "ctrl-váltás" -#: ../src/gui/accelerators.c:132 +#: ../src/gui/accelerators.c:150 msgid "ctrl-on" msgstr "ctrl-be" -#: ../src/gui/accelerators.c:133 +#: ../src/gui/accelerators.c:151 msgid "right-toggle" msgstr "jobb-váltás" -#: ../src/gui/accelerators.c:134 +#: ../src/gui/accelerators.c:152 msgid "right-on" msgstr "jobb-be" -#: ../src/gui/accelerators.c:145 ../src/gui/gtk.c:3053 +#: ../src/gui/accelerators.c:163 ../src/gui/gtk.c:3099 msgid "activate" msgstr "aktiválás" -#: ../src/gui/accelerators.c:146 +#: ../src/gui/accelerators.c:164 msgid "ctrl-activate" msgstr "ctrl-aktivál" -#: ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:165 msgid "right-activate" msgstr "jobb-aktivál" -#: ../src/gui/accelerators.c:154 +#: ../src/gui/accelerators.c:172 msgid "store" msgstr "eltárol" -#: ../src/gui/accelerators.c:157 ../src/gui/styles_dialog.c:639 +#: ../src/gui/accelerators.c:175 ../src/gui/styles_dialog.c:651 msgid "update" msgstr "frissítés" -#: ../src/gui/accelerators.c:158 ../src/libs/tools/global_toolbox.c:60 +#: ../src/gui/accelerators.c:176 ../src/libs/tools/global_toolbox.c:60 #: ../src/libs/tools/global_toolbox.c:510 msgid "preferences" msgstr "beállítások" -#: ../src/gui/accelerators.c:163 +#: ../src/gui/accelerators.c:181 msgid "apply on new instance" msgstr "alkalmazás új példányon" -#: ../src/gui/accelerators.c:168 +#: ../src/gui/accelerators.c:186 msgid "start" msgstr "start" -#: ../src/gui/accelerators.c:169 +#: ../src/gui/accelerators.c:187 msgid "end" msgstr "end" -#: ../src/gui/accelerators.c:332 +#: ../src/gui/accelerators.c:374 msgid "entry" msgstr "bejegyzés" -#: ../src/gui/accelerators.c:409 +#: ../src/gui/accelerators.c:450 msgid "combo effect not found" msgstr "kombinált effekt nem található" -#: ../src/gui/accelerators.c:578 +#: ../src/gui/accelerators.c:627 msgid "(keypad)" msgstr "(billentyűzet)" -#: ../src/gui/accelerators.c:587 +#: ../src/gui/accelerators.c:636 msgid "tablet button" msgstr "tablet gomb" -#: ../src/gui/accelerators.c:596 +#: ../src/gui/accelerators.c:645 msgid "unknown driver" msgstr "ismeretlen driver" -#: ../src/gui/accelerators.c:663 +#: ../src/gui/accelerators.c:718 msgid "long" msgstr "hosszú" -#: ../src/gui/accelerators.c:664 +#: ../src/gui/accelerators.c:719 msgid "double-press" msgstr "dupla megnyomás" -#: ../src/gui/accelerators.c:665 +#: ../src/gui/accelerators.c:720 msgid "triple-press" msgstr "tripla megnyomás" -#: ../src/gui/accelerators.c:666 +#: ../src/gui/accelerators.c:721 msgid "press" msgstr "megnyomás" -#: ../src/gui/accelerators.c:670 +#: ../src/gui/accelerators.c:725 msgctxt "accel" msgid "left" msgstr "bal" -#: ../src/gui/accelerators.c:671 +#: ../src/gui/accelerators.c:726 msgctxt "accel" msgid "right" msgstr "jobb" -#: ../src/gui/accelerators.c:672 +#: ../src/gui/accelerators.c:727 msgctxt "accel" msgid "middle" msgstr "középső" -#: ../src/gui/accelerators.c:673 +#: ../src/gui/accelerators.c:728 msgctxt "accel" msgid "long" msgstr "hosszú" -#: ../src/gui/accelerators.c:674 +#: ../src/gui/accelerators.c:729 msgctxt "accel" msgid "double-click" msgstr "dupla kattintás" -#: ../src/gui/accelerators.c:675 +#: ../src/gui/accelerators.c:730 msgctxt "accel" msgid "triple-click" msgstr "tripla kattintás" -#: ../src/gui/accelerators.c:676 +#: ../src/gui/accelerators.c:731 msgid "click" msgstr "kattintás" -#: ../src/gui/accelerators.c:704 +#: ../src/gui/accelerators.c:759 msgid "first instance" msgstr "első példány" -#: ../src/gui/accelerators.c:706 +#: ../src/gui/accelerators.c:761 msgid "last instance" msgstr "utolsó példány" -#: ../src/gui/accelerators.c:708 +#: ../src/gui/accelerators.c:763 msgid "relative instance" msgstr "relatív példány" -#: ../src/gui/accelerators.c:867 +#: ../src/gui/accelerators.c:780 ../src/gui/accelerators.c:2864 +#: ../src/gui/accelerators.c:3811 +msgid "speed" +msgstr "sebesség" + +#: ../src/gui/accelerators.c:923 #, c-format msgid "" "Lua script command copied to clipboard:\n" @@ -9717,11 +10105,11 @@ "\n" "<tt>%s</tt>" -#: ../src/gui/accelerators.c:965 ../src/gui/accelerators.c:978 +#: ../src/gui/accelerators.c:1025 ../src/gui/accelerators.c:1044 msgid "start typing for incremental search" msgstr "kezdjen gépelni a növekményes kereséshez" -#: ../src/gui/accelerators.c:966 +#: ../src/gui/accelerators.c:1028 msgid "" "\n" "press Delete to delete selected shortcut" @@ -9729,7 +10117,25 @@ "\n" "nyomja meg a Delete-et a kiválasztott gyorsbillentyű törléséhez" -#: ../src/gui/accelerators.c:968 +#: ../src/gui/accelerators.c:1030 +msgid "" +"\n" +"press Delete to disable selected default shortcut" +msgstr "" +"\n" +"nyomja meg a Delete billentyűt a kiválasztott alapértelmezett gyorsbillentyű " +"letiltásához" + +#: ../src/gui/accelerators.c:1031 +msgid "" +"\n" +"press Delete to restore selected default shortcut" +msgstr "" +"\n" +"nyomja meg a Delete billentyűt a kiválasztott alapértelmezett gyorsbillentyű " +"visszaállításához" + +#: ../src/gui/accelerators.c:1033 msgid "" "\n" "double-click to add new shortcut" @@ -9737,11 +10143,11 @@ "\n" "dupla klikkel új gyorsbillentyű adható hozzá" -#: ../src/gui/accelerators.c:979 +#: ../src/gui/accelerators.c:1045 msgid "click to filter shortcuts list" msgstr "kattintson a gyorsbillentyűk szűréséhez" -#: ../src/gui/accelerators.c:981 +#: ../src/gui/accelerators.c:1047 msgid "" "\n" "right click to show action of selected shortcut" @@ -9749,7 +10155,7 @@ "\n" "jobb kattintással megtekintheti a kiválasztott gyorsbillentyű műveletét" -#: ../src/gui/accelerators.c:984 +#: ../src/gui/accelerators.c:1050 msgid "" "\n" "double-click to define new shortcut" @@ -9757,11 +10163,11 @@ "\n" "dupla kattintással adhat meg új gyorsbillentyűt" -#: ../src/gui/accelerators.c:1015 +#: ../src/gui/accelerators.c:1081 msgid "shift+alt+scroll to change height" msgstr "shift+alt+görgetés módosítja a magasságot" -#: ../src/gui/accelerators.c:1035 +#: ../src/gui/accelerators.c:1101 msgid "" "press keys with mouse click and scroll or move combinations to create a " "shortcut" @@ -9769,27 +10175,27 @@ "nyomjon meg billentyűket egérkattintással vagy görgetési és mozgatási a " "kombinációkkal a gyorsbillentyű létrehozásához" -#: ../src/gui/accelerators.c:1036 +#: ../src/gui/accelerators.c:1102 msgid "click to open shortcut configuration" msgstr "kattintson a gyorsbillentyű beállítás megnyitásához" -#: ../src/gui/accelerators.c:1037 +#: ../src/gui/accelerators.c:1103 msgid "ctrl+click to add to quick access panel\n" msgstr "ctrl+klikk a gyors elérés panelhez adáshoz\n" -#: ../src/gui/accelerators.c:1038 +#: ../src/gui/accelerators.c:1104 msgid "ctrl+click to remove from quick access panel\n" msgstr "ctrl+klikk a gyors elérés panelről eltávolításhoz\n" -#: ../src/gui/accelerators.c:1039 +#: ../src/gui/accelerators.c:1105 msgid "scroll to change default speed" msgstr "görgetéssel módosítható az alapértelmezett sebesség" -#: ../src/gui/accelerators.c:1040 +#: ../src/gui/accelerators.c:1106 msgid "right click to exit mapping mode" msgstr "jobb klikkel lehet kilépni a hozzárendelés módból" -#: ../src/gui/accelerators.c:1051 +#: ../src/gui/accelerators.c:1119 #, c-format msgid "" "%sright-click to type a specific value between <b>%s</b> and <b>%s</b>\n" @@ -9798,74 +10204,89 @@ "%sjobb kattintással megadható egy érték <b>%s</b> és <b>%s</b> között\n" "vagy ctrl+shift-tel húzva mellőzhető az enyhe korlátozás." -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "ctrl+v" msgstr "ctrl+v" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "right long click" msgstr "hosszú jobb kattintás" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "to copy Lua command" msgstr "a Lua parancs másolásához" -#: ../src/gui/accelerators.c:1344 +#: ../src/gui/accelerators.c:1451 msgid "shortcut for move exists with single effect" msgstr "a mozgatás gyorsbillentyűje létezik egyetlen hatással" -#: ../src/gui/accelerators.c:1345 +#: ../src/gui/accelerators.c:1452 +#, c-format +msgid "" +"%s\n" +"\n" +"(assign %s to %s)" +msgstr "" +"%s\n" +"\n" +"(%s hozzárendelése ehhez: %s)" + +#: ../src/gui/accelerators.c:1453 msgid "create separate shortcuts for up and down move?" -msgstr "külön gyorsbillentyűket hoz létre a fel és le mozgatáshoz?" +msgstr "hozzunk létre külön gyorsbillentyűket a fel- és lemozgatáshoz?" -#: ../src/gui/accelerators.c:1368 +#: ../src/gui/accelerators.c:1479 #, c-format msgid "%s, speed reset" msgstr "%s, sebesség visszaállítása" -#: ../src/gui/accelerators.c:1377 +#: ../src/gui/accelerators.c:1497 msgid "shortcut exists with different settings" msgstr "a gyorsbillentyű már létezik eltérő beállításokkal" -#: ../src/gui/accelerators.c:1378 +#: ../src/gui/accelerators.c:1498 msgid "reset the settings of the shortcut?" msgstr "visszaállítja a gyorsbillentyű beállításait?" -#: ../src/gui/accelerators.c:1389 +#: ../src/gui/accelerators.c:1507 msgid "shortcut already exists" msgstr "a gyorsbillentyű már létezik" -#: ../src/gui/accelerators.c:1390 +#: ../src/gui/accelerators.c:1509 +msgid "disable this default shortcut?" +msgstr "letiltja az alapértelmezett gyorsbillentyűt?" + +#: ../src/gui/accelerators.c:1510 msgid "remove the shortcut?" msgstr "eltávolítja a gyorsbillentyűt?" -#: ../src/gui/accelerators.c:1423 +#: ../src/gui/accelerators.c:1550 msgid "clashing shortcuts exist" msgstr "ütköző gyorsbillentyű található" -#: ../src/gui/accelerators.c:1424 +#: ../src/gui/accelerators.c:1551 msgid "remove these existing shortcuts?" msgstr "eltávolítja a meglévő gyorsbillentyűket?" #. or 3, but change char relative[] = "-2" to "-1" #. NUM_INSTANCES -#: ../src/gui/accelerators.c:1460 +#: ../src/gui/accelerators.c:1596 msgid "preferred" msgstr "preferált" -#: ../src/gui/accelerators.c:1463 +#: ../src/gui/accelerators.c:1599 msgid "second" msgstr "második" -#: ../src/gui/accelerators.c:1464 +#: ../src/gui/accelerators.c:1600 msgid "last but one" msgstr "utolsóelőtti" -#: ../src/gui/accelerators.c:1610 ../src/gui/accelerators.c:1670 +#: ../src/gui/accelerators.c:1761 ../src/gui/accelerators.c:1826 msgid "(unchanged)" msgstr "(változatlan)" -#: ../src/gui/accelerators.c:1776 +#: ../src/gui/accelerators.c:1941 msgid "" "define a shortcut by pressing a key, optionally combined with modifier keys " "(ctrl/shift/alt)\n" @@ -9891,39 +10312,47 @@ "\n" "kattintson a jobb gombbal a kilépéshez" -#: ../src/gui/accelerators.c:1847 +#: ../src/gui/accelerators.c:2014 msgid "removing shortcut" msgstr "gyorsbillentyű eltávolítása" -#: ../src/gui/accelerators.c:1848 +#: ../src/gui/accelerators.c:2016 +msgid "disable the selected default shortcut?" +msgstr "letiltja a kiválasztott alapértelmezett gyorsbillentyűt?" + +#: ../src/gui/accelerators.c:2017 +msgid "restore the selected default shortcut?" +msgstr "visszállítja a kiválasztott alapértelmezett gyorsbillentyűt?" + +#: ../src/gui/accelerators.c:2018 msgid "remove the selected shortcut?" msgstr "eltávolítja a kiválasztott gyorsbillentyűt?" -#: ../src/gui/accelerators.c:1938 +#: ../src/gui/accelerators.c:2107 msgid "command" msgstr "parancs" -#: ../src/gui/accelerators.c:1939 +#: ../src/gui/accelerators.c:2108 msgid "preset" msgstr "tárolt beállítás" -#: ../src/gui/accelerators.c:2272 +#: ../src/gui/accelerators.c:2491 msgid "restore shortcuts" msgstr "gyorsbillentyűk visszaállítása" -#: ../src/gui/accelerators.c:2275 +#: ../src/gui/accelerators.c:2494 msgid "_defaults" msgstr "_alapértelmezések" -#: ../src/gui/accelerators.c:2276 +#: ../src/gui/accelerators.c:2495 msgid "_startup" msgstr "_indításkor" -#: ../src/gui/accelerators.c:2277 +#: ../src/gui/accelerators.c:2496 msgid "_edits" msgstr "_szerkesztések" -#: ../src/gui/accelerators.c:2283 +#: ../src/gui/accelerators.c:2503 msgid "" "restore shortcuts from one of these states:\n" " - default\n" @@ -9935,7 +10364,7 @@ " - mint indításkor\n" " - mint a párbeszédpanel megnyitásakor\n" -#: ../src/gui/accelerators.c:2289 +#: ../src/gui/accelerators.c:2510 msgid "" "clear all newer shortcuts\n" "(instead of just restoring changed ones)" @@ -9943,22 +10372,17 @@ "összes újabb gyorsbillentyű kitakarítása\n" "(csak a módosítottak helyreállítása helyett)" -#: ../src/gui/accelerators.c:2344 ../src/gui/preferences.c:906 +#: ../src/gui/accelerators.c:2567 ../src/gui/preferences.c:905 #: ../src/libs/tools/global_toolbox.c:494 -#: ../src/libs/tools/global_toolbox.c:645 +#: ../src/libs/tools/global_toolbox.c:652 msgid "shortcuts" msgstr "gyorsbillentyűk" -#: ../src/gui/accelerators.c:2353 +#: ../src/gui/accelerators.c:2577 msgid "export shortcuts" msgstr "gyorsbillentyűk exportálása" -#: ../src/gui/accelerators.c:2356 ../src/gui/accelerators.c:2436 -#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:564 -msgid "_ok" -msgstr "_ok" - -#: ../src/gui/accelerators.c:2361 +#: ../src/gui/accelerators.c:2586 msgid "" "export all shortcuts to a file\n" "or just for one selected device\n" @@ -9966,27 +10390,27 @@ "összes gyorsbillentyű exportálása fájlba\n" "vagy csak egy kiválasztott eszközhöz tartozóké\n" -#: ../src/gui/accelerators.c:2368 ../src/gui/accelerators.c:2448 +#: ../src/gui/accelerators.c:2593 ../src/gui/accelerators.c:2675 msgid "keyboard" msgstr "billentyűzet" -#: ../src/gui/accelerators.c:2380 +#: ../src/gui/accelerators.c:2605 msgid "device id" msgstr "eszköz azonosító" -#: ../src/gui/accelerators.c:2406 +#: ../src/gui/accelerators.c:2631 msgid "select file to export" msgstr "exportálandó fájl kiválasztása" -#: ../src/gui/accelerators.c:2407 ../src/libs/tagging.c:2525 +#: ../src/gui/accelerators.c:2632 ../src/libs/tagging.c:2556 msgid "_export" msgstr "_exportálás" -#: ../src/gui/accelerators.c:2433 +#: ../src/gui/accelerators.c:2659 msgid "import shortcuts" msgstr "gyorsbillentyűk importálása" -#: ../src/gui/accelerators.c:2441 +#: ../src/gui/accelerators.c:2668 msgid "" "import all shortcuts from a file\n" "or just for one selected device\n" @@ -9994,31 +10418,31 @@ "összes gyorsbillentyű importálása fájlból\n" "vagy csak egy kiválasztott eszközhöz tartozóké\n" -#: ../src/gui/accelerators.c:2460 +#: ../src/gui/accelerators.c:2687 msgid "id in file" msgstr "id a fájlban" -#: ../src/gui/accelerators.c:2466 +#: ../src/gui/accelerators.c:2693 msgid "id when loaded" msgstr "id amikor betöltődött" -#: ../src/gui/accelerators.c:2470 +#: ../src/gui/accelerators.c:2697 msgid "clear device first" msgstr "először az eszköz törlése" -#: ../src/gui/accelerators.c:2494 +#: ../src/gui/accelerators.c:2722 msgid "select file to import" msgstr "importálandó fájl kiválasztása" -#: ../src/gui/accelerators.c:2495 ../src/libs/tagging.c:2489 +#: ../src/gui/accelerators.c:2723 ../src/libs/tagging.c:2520 msgid "_import" msgstr "_importálás" -#: ../src/gui/accelerators.c:2568 +#: ../src/gui/accelerators.c:2815 msgid "search shortcuts list" msgstr "gyorsbillentyű keresés" -#: ../src/gui/accelerators.c:2569 +#: ../src/gui/accelerators.c:2817 msgid "" "incrementally search the list of shortcuts\n" "press up or down keys to cycle through matches" @@ -10026,29 +10450,28 @@ "növekményes keresés a gyorsbillentyűk listájában\n" "nyomjon fel vagy le billentyűt a találatok közti váltáshoz" -#. Setting up the cell renderers -#: ../src/gui/accelerators.c:2583 ../src/views/view.c:1383 +#: ../src/gui/accelerators.c:2837 ../src/views/view.c:1554 msgid "shortcut" msgstr "gyorsbillentyű" -#: ../src/gui/accelerators.c:2585 ../src/gui/accelerators.c:2676 -#: ../src/views/view.c:1385 +#: ../src/gui/accelerators.c:2840 ../src/gui/accelerators.c:2942 +#: ../src/views/view.c:1556 msgid "action" msgstr "művelet" -#: ../src/gui/accelerators.c:2594 +#: ../src/gui/accelerators.c:2850 msgid "element" msgstr "elem" -#: ../src/gui/accelerators.c:2601 +#: ../src/gui/accelerators.c:2858 msgid "effect" msgstr "hatás" -#: ../src/gui/accelerators.c:2658 +#: ../src/gui/accelerators.c:2918 msgid "search actions list" msgstr "művelet keresés" -#: ../src/gui/accelerators.c:2659 +#: ../src/gui/accelerators.c:2920 msgid "" "incrementally search the list of actions\n" "press up or down keys to cycle through matches" @@ -10056,16 +10479,16 @@ "növekményes keresés a műveletek listájában\n" "nyomjon fel vagy le billentyűt a találatok közti váltáshoz" -#: ../src/gui/accelerators.c:2682 ../src/gui/guides.c:719 -#: ../src/libs/export_metadata.c:192 +#: ../src/gui/accelerators.c:2950 ../src/gui/guides.c:719 +#: ../src/libs/export_metadata.c:179 msgid "type" msgstr "típus" -#: ../src/gui/accelerators.c:2717 +#: ../src/gui/accelerators.c:2988 msgid "enable fallbacks" msgstr "tartalékok engedélyezése" -#: ../src/gui/accelerators.c:2718 +#: ../src/gui/accelerators.c:2989 msgid "" "enables default meanings for additional buttons, modifiers or moves\n" "when used in combination with a base shortcut" @@ -10074,67 +10497,112 @@ "jelentéseit\n" "az alap gyorsbillentyűvel együtt használva" -#: ../src/gui/accelerators.c:2725 +#: ../src/gui/accelerators.c:2997 msgid "open help page for shortcuts" msgstr "gyorsbillentyűk súgóoldalának megnyitása" -#: ../src/gui/accelerators.c:2730 +#: ../src/gui/accelerators.c:3002 msgid "restore..." msgstr "visszaállítás…" -#: ../src/gui/accelerators.c:2731 +#: ../src/gui/accelerators.c:3003 msgid "restore default shortcuts or previous state" msgstr "alapértelmezett gyorsbillentyűk vagy korábbi állapot visszaállítása" -#: ../src/gui/accelerators.c:2735 ../src/libs/styles.c:883 -#: ../src/libs/tagging.c:3251 +#: ../src/gui/accelerators.c:3007 ../src/libs/styles.c:887 +#: ../src/libs/tagging.c:3282 msgid "import..." msgstr "importálás…" -#: ../src/gui/accelerators.c:2736 +#: ../src/gui/accelerators.c:3008 msgid "fully or partially import shortcuts from file" msgstr "gyorsbillentyűk teljes, vagy részleges importálása fájlból" -#: ../src/gui/accelerators.c:2740 ../src/libs/styles.c:890 -#: ../src/libs/tagging.c:3254 +#: ../src/gui/accelerators.c:3012 ../src/libs/styles.c:894 +#: ../src/libs/tagging.c:3285 msgid "export..." msgstr "exportálás…" -#: ../src/gui/accelerators.c:2741 +#: ../src/gui/accelerators.c:3013 msgid "fully or partially export shortcuts to file" msgstr "gyorsbillentyűk teljes, vagy részleges exportálása fájlba" -#: ../src/gui/accelerators.c:3139 +#: ../src/gui/accelerators.c:3021 +msgid "" +"the recommended way to assign shortcuts to visual elements is the <b>visual " +"shortcut mapping</b> mode.\n" +"this is switched on by toggling the <i>\"keyboard\"</i> button next to " +"preferences in the top panel. in this mode, clicking on a widget or area " +"will open this dialog with the appropriate selection for advanced " +"configuration.\n" +"\n" +"multiple shortcuts can be assigned to the same action. this is especially " +"useful if it has multiple <i>elements</i>, like the module buttons or the " +"colorpickers attached to sliders. however, with <i>fallbacks</i> enabled one " +"can use the same simple shortcuts and change their <i>element</i> or " +"<i>effect</i> by adding mouse clicks.\n" +"\n" +"<i>click <b> three times </b> to dismiss this notice permanently</i>" +msgstr "" +"a gyorsbillentyűk hozzárendelésének javasolt módja a <b>vizuális " +"gyorsbillentyű összerendelő</b> mód.\n" +"ezt a felső panelen a beállítások melletti <i>\"billentyűzet\"</i> gomb " +"megnyomásával lehet bekapcsolni. ebben a módban egy vezérlőre vagy területre " +"kattintva megnyílik ez a párbeszédablak, benne kijelölve a megfelelő " +"opciót.\n" +"\n" +"több gyorsbillentyű is hozzárendelhető ugyanahhoz a művelethez. ez különösen " +"hasznos, ha több <i>eleme</i> van, például a modul gombjai vagy a " +"csúszkákhoz kapcsolt színmintavevők. azonban a <i>tartalékok</i> " +"bekapcsolásával ugyanazokat az egyszerű billentyűparancsokat használhatja, " +"és egérkattintással módosíthatja az <i>elemüket</i> vagy az <i>hatásukat</" +"i>.\n" +"\n" +"<i>kattintson <b> háromszor </b> az értesítés végleges elvetéséhez</i>" + +#: ../src/gui/accelerators.c:3452 msgid "reinitialising input devices" msgstr "beviteli eszközök újrainicializálása" -#: ../src/gui/accelerators.c:3342 +#: ../src/gui/accelerators.c:3594 +msgid "down move" +msgstr "lefelé mozgatás" + +#: ../src/gui/accelerators.c:3594 +msgid "flip top/bottom first/last" +msgstr "teteje/alja első/utolsó megfordítása" + +#: ../src/gui/accelerators.c:3679 msgid "fallback to move" -msgstr "tartalék a mozgatáshoz" +msgstr "visszaállás mozgatásra" -#: ../src/gui/accelerators.c:3578 +#: ../src/gui/accelerators.c:3921 #, c-format msgid "%s not assigned" msgstr "%s nincs hozzárendelve" -#: ../src/gui/accelerators.c:3751 +#: ../src/gui/accelerators.c:4102 #, c-format msgid "%s assigned to %s" msgstr "%s hozzárendelve ehhez: %s" -#: ../src/gui/gtk.c:173 ../src/views/darkroom.c:4650 +#: ../src/gui/accelerators.c:4321 +msgid "short key press resets stuck keys" +msgstr "rövid gombnyomás visszaállítja a beragadt billentyűket" + +#: ../src/gui/gtk.c:175 ../src/views/darkroom.c:3861 msgid "darktable - darkroom preview" msgstr "darktable – sötétszoba előnézet" -#: ../src/gui/gtk.c:184 +#: ../src/gui/gtk.c:186 msgid "tooltips off" msgstr "buboréksúgó ki" -#: ../src/gui/gtk.c:186 +#: ../src/gui/gtk.c:188 msgid "tooltips on" msgstr "buboréksúgó be" -#: ../src/gui/gtk.c:191 +#: ../src/gui/gtk.c:193 msgid "" "tooltip visibility can only be toggled if compositing is enabled in your " "window manager" @@ -10142,184 +10610,217 @@ "a buboréksúgó láthatósága csak akkor állítható, ha az ön ablakkezelőjében " "engedélyezve van a kompozitálás" -#: ../src/gui/gtk.c:814 +#: ../src/gui/gtk.c:809 msgid "closing darktable..." msgstr "darktable bezárása…" -#: ../src/gui/gtk.c:1135 +#: ../src/gui/gtk.c:1032 +msgid "URL opened in web browser" +msgstr "az URL megnyitva egy böngészőben" + +#: ../src/gui/gtk.c:1036 +msgid "error while opening URL in web browser" +msgstr "hiba történt az URL böngészőben megnyitása közben" + +#. View menu +#: ../src/gui/gtk.c:1104 +msgctxt "menu" +msgid "Views" +msgstr "Nézetek" + +#: ../src/gui/gtk.c:1108 +msgctxt "menu" +msgid "lighttable" +msgstr "átvilágító" + +#: ../src/gui/gtk.c:1109 +msgctxt "menu" +msgid "darkroom" +msgstr "sötétkamra" + +#: ../src/gui/gtk.c:1115 +msgctxt "menu" +msgid "slideshow" +msgstr "diavetítés" + +#: ../src/gui/gtk.c:1117 +msgctxt "menu" +msgid "map" +msgstr "térkép" + +#: ../src/gui/gtk.c:1119 +msgctxt "menu" +msgid "print" +msgstr "nyomtatás" + +#: ../src/gui/gtk.c:1121 +msgctxt "menu" +msgid "tethering" +msgstr "tethering" + +#. Help menu +#: ../src/gui/gtk.c:1127 +msgctxt "menu" +msgid "Help" +msgstr "Súgó" + +#: ../src/gui/gtk.c:1131 +msgctxt "menu" +msgid "darktable Manual" +msgstr "darktable súgója" + +#: ../src/gui/gtk.c:1138 +msgctxt "menu" +msgid "darktable Homepage" +msgstr "darktable honlapja" + +#: ../src/gui/gtk.c:1162 +msgctxt "menu" +msgid "Preferences" +msgstr "Beállítások" + +#: ../src/gui/gtk.c:1232 msgid "panels" msgstr "panelek" -#. an action that does nothing - used for overriding/removing default shortcuts -#: ../src/gui/gtk.c:1184 -msgid "no-op" -msgstr "nincs-művelet" - -#: ../src/gui/gtk.c:1186 +#: ../src/gui/gtk.c:1264 msgid "switch views" msgstr "nézetek váltása" -#: ../src/gui/gtk.c:1187 ../src/views/tethering.c:102 +#: ../src/gui/gtk.c:1265 ../src/views/tethering.c:102 msgid "tethering" msgstr "tethering" -#: ../src/gui/gtk.c:1188 ../src/gui/preferences.c:531 -#: ../src/gui/preferences.c:542 ../src/libs/tools/lighttable.c:66 -#: ../src/views/lighttable.c:91 -msgid "lighttable" -msgstr "átvilágító" - -#: ../src/gui/gtk.c:1189 ../src/gui/preferences.c:532 -#: ../src/gui/preferences.c:542 ../src/views/darkroom.c:94 -msgid "darkroom" -msgstr "sötétkamra" - -#: ../src/gui/gtk.c:1190 ../src/views/map.c:197 +#: ../src/gui/gtk.c:1268 ../src/views/map.c:197 msgid "map" msgstr "térkép" -#: ../src/gui/gtk.c:1191 ../src/views/slideshow.c:389 +#: ../src/gui/gtk.c:1269 ../src/views/slideshow.c:390 msgid "slideshow" msgstr "diavetítés" #. Print button -#: ../src/gui/gtk.c:1192 ../src/libs/print_settings.c:2885 +#: ../src/gui/gtk.c:1270 ../src/libs/print_settings.c:2885 msgid "print" msgstr "nyomtatás" #. register ctrl-q to quit: -#: ../src/gui/gtk.c:1198 +#: ../src/gui/gtk.c:1276 msgid "quit" msgstr "kilépés" #. Full-screen accelerator (no ESC handler here to enable quit-slideshow using ESC) -#: ../src/gui/gtk.c:1201 +#: ../src/gui/gtk.c:1279 msgid "fullscreen" msgstr "teljes képernyő" -#: ../src/gui/gtk.c:1205 +#: ../src/gui/gtk.c:1283 msgid "collapsing controls" msgstr "vezérlőelemek összecsukása" #. specific top/bottom toggles -#: ../src/gui/gtk.c:1207 +#: ../src/gui/gtk.c:1285 msgid "header" msgstr "fejléc" -#: ../src/gui/gtk.c:1208 +#: ../src/gui/gtk.c:1286 msgid "filmstrip and timeline" msgstr "filmszalag és idővonal" -#: ../src/gui/gtk.c:1209 +#: ../src/gui/gtk.c:1287 msgid "top toolbar" msgstr "felső eszköztár" -#: ../src/gui/gtk.c:1210 +#: ../src/gui/gtk.c:1288 msgid "bottom toolbar" msgstr "alsó eszköztár" -#: ../src/gui/gtk.c:1211 +#: ../src/gui/gtk.c:1289 msgid "all top" msgstr "összes felső" -#: ../src/gui/gtk.c:1212 +#: ../src/gui/gtk.c:1290 msgid "all bottom" msgstr "összes alsó" -#: ../src/gui/gtk.c:1214 +#: ../src/gui/gtk.c:1292 msgid "toggle tooltip visibility" msgstr "buboréksúgó láthatóságának váltása" -#: ../src/gui/gtk.c:1215 +#: ../src/gui/gtk.c:1293 msgid "reinitialise input devices" msgstr "beviteli eszközök újrainicializálása" -#: ../src/gui/gtk.c:1253 +#: ../src/gui/gtk.c:1331 msgid "toggle focus-peaking mode" msgstr "fókuszkiemelési mód váltása" #. toggle focus peaking everywhere -#: ../src/gui/gtk.c:1258 +#: ../src/gui/gtk.c:1336 msgid "toggle focus peaking" msgstr "fókuszkiemelés váltása" -#: ../src/gui/gtk.c:1594 ../src/gui/gtk.c:3143 ../src/gui/gtk.c:3148 -#: ../src/gui/gtk.c:3153 ../src/gui/gtk.c:3158 +#: ../src/gui/gtk.c:1654 ../src/gui/gtk.c:3189 ../src/gui/gtk.c:3194 +#: ../src/gui/gtk.c:3199 ../src/gui/gtk.c:3204 msgid "tabs" msgstr "fülek" -#: ../src/gui/gtk.c:2535 -msgid "_yes" -msgstr "_igen" - -#: ../src/gui/gtk.c:2536 -msgid "_no" -msgstr "_nem" - #. ask the user if darktable.org may be accessed -#: ../src/gui/gtk.c:2647 +#: ../src/gui/gtk.c:2707 msgid "access the online user manual?" msgstr "megnyitja az online kézikönyvet?" -#: ../src/gui/gtk.c:2648 +#: ../src/gui/gtk.c:2708 #, c-format msgid "do you want to access `%s'?" msgstr "meg szeretné nyitni ezt: „%s”?" -#: ../src/gui/gtk.c:2717 -msgid "help url opened in web browser" -msgstr "súgó url megnyitva a böngészőben" - -#: ../src/gui/gtk.c:2721 -msgid "error while opening help url in web browser" -msgstr "hiba történt a súgó url böngészőben megnyitása közben" - -#: ../src/gui/gtk.c:2732 +#: ../src/gui/gtk.c:2778 msgid "there is no help available for this element" msgstr "ehhez az elemhez nem elérhető el súgó" #. font name can only use period as decimal separator #. but printf format strings use comma for some locales, so replace comma with period -#: ../src/gui/gtk.c:2752 +#: ../src/gui/gtk.c:2798 ../src/libs/metadata_view.c:762 #, c-format msgid "%.1f" msgstr "%.1f" -#: ../src/gui/gtk.c:2754 +#: ../src/gui/gtk.c:2800 #, c-format msgid "Sans %s" msgstr "Sans %s" -#: ../src/gui/gtk.c:3048 +#: ../src/gui/gtk.c:3094 msgid "does not contain pages" msgstr "nem tartalmaz oldalakat" -#: ../src/gui/gtk.c:3265 +#: ../src/gui/gtk.c:3313 #, c-format msgid "never show more than %d lines" msgstr "sose mutasson több mint %d sort" -#: ../src/gui/gtkentry.c:172 +#: ../src/gui/gtkentry.c:173 msgid "$(ROLL.NAME) - roll of the input image" msgstr "$(ROLL.NAME) – a bemeneti kép filmtekercse" -#: ../src/gui/gtkentry.c:173 +#: ../src/gui/gtkentry.c:174 msgid "$(FILE.FOLDER) - folder containing the input image" msgstr "$(FILE.FOLDER) – a bemeneti képet tartalmazó könyvtár" -#: ../src/gui/gtkentry.c:174 +#: ../src/gui/gtkentry.c:175 msgid "$(FILE.NAME) - basename of the input image" msgstr "$(FILE.NAME) – a bemeneti kép neve" -#: ../src/gui/gtkentry.c:175 +#: ../src/gui/gtkentry.c:176 msgid "$(FILE.EXTENSION) - extension of the input image" msgstr "$(FILE.EXTENSION) – a bemeneti kép kiterjesztése" -#: ../src/gui/gtkentry.c:176 +#: ../src/gui/gtkentry.c:177 msgid "$(VERSION) - duplicate version" msgstr "$(VERSION) – duplikátum verziója" -#: ../src/gui/gtkentry.c:177 +#: ../src/gui/gtkentry.c:178 msgid "" "$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version " "exists" @@ -10327,117 +10828,117 @@ "$(VERSION.IF_MULTI) – hasonló, mint a $(VERSION) de üres szöveg, ha csak egy " "verzió létezik" -#: ../src/gui/gtkentry.c:178 +#: ../src/gui/gtkentry.c:179 msgid "$(VERSION.NAME) - version name from metadata" msgstr "$(VERSION.NAME) – verziónév a metaadatokból" -#: ../src/gui/gtkentry.c:179 +#: ../src/gui/gtkentry.c:180 msgid "$(JOBCODE) - job code for import" msgstr "$(JOBCODE) – importálási feladat neve" -#: ../src/gui/gtkentry.c:180 +#: ../src/gui/gtkentry.c:181 msgid "$(SEQUENCE) - sequence number" msgstr "$(SEQUENCE) – sorszám" -#: ../src/gui/gtkentry.c:181 +#: ../src/gui/gtkentry.c:182 msgid "$(WIDTH.MAX) - maximum image export width" msgstr "$(WIDTH.MAX) – exportált kép maximális szélessége" -#: ../src/gui/gtkentry.c:182 +#: ../src/gui/gtkentry.c:183 msgid "$(WIDTH.SENSOR) - image sensor width" msgstr "$(WIDTH.SENSOR) – képérzékelő szélessége" -#: ../src/gui/gtkentry.c:183 +#: ../src/gui/gtkentry.c:184 msgid "$(WIDTH.RAW) - RAW image width" msgstr "$(WIDTH.RAW) – RAW kép szélessége" -#: ../src/gui/gtkentry.c:184 +#: ../src/gui/gtkentry.c:185 msgid "$(WIDTH.CROP) - image width after crop" msgstr "$(WIDTH.CROP) – kép szélessége kivágás után" -#: ../src/gui/gtkentry.c:185 +#: ../src/gui/gtkentry.c:186 msgid "$(WIDTH.EXPORT) - exported image width" msgstr "$(WIDTH.EXPORT) – exportált kép szélessége" -#: ../src/gui/gtkentry.c:186 +#: ../src/gui/gtkentry.c:187 msgid "$(HEIGHT.MAX) - maximum image export height" msgstr "$(HEIGHT.MAX) – exportált kép maximális magassága" -#: ../src/gui/gtkentry.c:187 +#: ../src/gui/gtkentry.c:188 msgid "$(HEIGHT.SENSOR) - image sensor height" msgstr "$(HEIGHT.SENSOR) – képérzékelő magassága" -#: ../src/gui/gtkentry.c:188 +#: ../src/gui/gtkentry.c:189 msgid "$(HEIGHT.RAW) - RAW image height" msgstr "$(HEIGHT.RAW) – RAW kép magassága" -#: ../src/gui/gtkentry.c:189 +#: ../src/gui/gtkentry.c:190 msgid "$(HEIGHT.CROP) - image height after crop" msgstr "$(HEIGHT.CROP) – kép magassága kivágás után" -#: ../src/gui/gtkentry.c:190 +#: ../src/gui/gtkentry.c:191 msgid "$(HEIGHT.EXPORT) - exported image height" msgstr "$(HEIGHT.EXPORT) – exportált kép magassága" -#: ../src/gui/gtkentry.c:191 +#: ../src/gui/gtkentry.c:192 msgid "$(YEAR) - year" msgstr "$(YEAR) – év" -#: ../src/gui/gtkentry.c:192 +#: ../src/gui/gtkentry.c:193 msgid "$(YEAR.SHORT) - year without century" msgstr "$(YEAR.SHORT) – év, évszázad nélkül" -#: ../src/gui/gtkentry.c:193 +#: ../src/gui/gtkentry.c:194 msgid "$(MONTH) - month" msgstr "$(MONTH) – hónap" -#: ../src/gui/gtkentry.c:194 +#: ../src/gui/gtkentry.c:195 msgid "$(MONTH.SHORT) - abbreviated month name according to the current locale" msgstr "" "$(MONTH.SHORT) – a hónap rövidített, a területi beállításoknak megfelelő neve" -#: ../src/gui/gtkentry.c:195 +#: ../src/gui/gtkentry.c:196 msgid "$(MONTH.LONG) - full month name according to the current locale" msgstr "" "$(MONTH.LONG) – a hónap hosszú, a területi beállításoknak megfelelő neve" -#: ../src/gui/gtkentry.c:196 +#: ../src/gui/gtkentry.c:197 msgid "$(DAY) - day" msgstr "$(DAY) – nap" -#: ../src/gui/gtkentry.c:197 +#: ../src/gui/gtkentry.c:198 msgid "$(HOUR) - hour" msgstr "$(HOUR) – óra" -#: ../src/gui/gtkentry.c:198 +#: ../src/gui/gtkentry.c:199 msgid "$(HOUR.AMPM) - hour, 12-hour clock" msgstr "$(HOUR.AMPM) – óra, 12-órás formátumban" -#: ../src/gui/gtkentry.c:199 +#: ../src/gui/gtkentry.c:200 msgid "$(MINUTE) - minute" msgstr "$(MINUTE) – perc" -#: ../src/gui/gtkentry.c:200 +#: ../src/gui/gtkentry.c:201 msgid "$(SECOND) - second" msgstr "$(SECOND) – másodperc" -#: ../src/gui/gtkentry.c:201 +#: ../src/gui/gtkentry.c:202 msgid "$(MSEC) - millisecond" msgstr "$(MSEC) – másodperc" -#: ../src/gui/gtkentry.c:202 +#: ../src/gui/gtkentry.c:203 msgid "$(EXIF.YEAR) - EXIF year" msgstr "$(EXIF.YEAR) – EXIF év" -#: ../src/gui/gtkentry.c:203 +#: ../src/gui/gtkentry.c:204 msgid "$(EXIF.YEAR.SHORT) - EXIF year without century" msgstr "$(EXIF.YEAR.SHORT) – EXIF év, évszázad nélkül" -#: ../src/gui/gtkentry.c:204 +#: ../src/gui/gtkentry.c:205 msgid "$(EXIF.MONTH) - EXIF month" msgstr "$(EXIF.MONTH) – EXIF hónap" -#: ../src/gui/gtkentry.c:205 +#: ../src/gui/gtkentry.c:206 msgid "" "$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current " "locale" @@ -10445,162 +10946,170 @@ "$(EXIF.MONTH.SHORT) – az EXIF hónap rövidített, a területi beállításoknak " "megfelelő neve" -#: ../src/gui/gtkentry.c:206 +#: ../src/gui/gtkentry.c:207 msgid "" "$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" msgstr "" "$(EXIF.MONTH.LONG) – az EXIF hónap hosszú, a területi beállításoknak " "megfelelő neve" -#: ../src/gui/gtkentry.c:207 +#: ../src/gui/gtkentry.c:208 msgid "$(EXIF.DAY) - EXIF day" msgstr "$(EXIF.DAY) – EXIF nap" -#: ../src/gui/gtkentry.c:208 +#: ../src/gui/gtkentry.c:209 msgid "$(EXIF.HOUR) - EXIF hour" msgstr "$(EXIF.HOUR) – EXIF óra" -#: ../src/gui/gtkentry.c:209 +#: ../src/gui/gtkentry.c:210 msgid "$(EXIF.HOUR.AMPM) - EXIF hour, 12-hour clock" msgstr "$(EXIF.HOUR.AMPM) – EXIF óra, 12-órás formátumban" -#: ../src/gui/gtkentry.c:210 +#: ../src/gui/gtkentry.c:211 msgid "$(EXIF.MINUTE) - EXIF minute" msgstr "$(EXIF.MINUTE) – EXIF perc" -#: ../src/gui/gtkentry.c:211 +#: ../src/gui/gtkentry.c:212 msgid "$(EXIF.SECOND) - EXIF second" msgstr "$(EXIF.SECOND) – EXIF másodperc" -#: ../src/gui/gtkentry.c:212 +#: ../src/gui/gtkentry.c:213 msgid "$(EXIF.MSEC) - EXIF millisecond" msgstr "$(EXIF.MSEC) – EXIF másodperc" -#: ../src/gui/gtkentry.c:213 +#: ../src/gui/gtkentry.c:214 msgid "$(EXIF.ISO) - ISO value" msgstr "$(EXIF.ISO) – ISO érték" -#: ../src/gui/gtkentry.c:214 +#: ../src/gui/gtkentry.c:215 msgid "$(EXIF.EXPOSURE) - EXIF exposure" msgstr "$(EXIF.EXPOSURE) – EXIF expozíció" -#: ../src/gui/gtkentry.c:215 +#: ../src/gui/gtkentry.c:216 msgid "$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias" msgstr "$(EXIF.EXPOSURE.BIAS) – EXIF expozíció-eltolás" -#: ../src/gui/gtkentry.c:216 +#: ../src/gui/gtkentry.c:217 msgid "$(EXIF.APERTURE) - EXIF aperture" msgstr "$(EXIF.APERTURE) – EXIF blende" -#: ../src/gui/gtkentry.c:217 +#: ../src/gui/gtkentry.c:218 +msgid "$(EXIF.CROP_FACTOR) - EXIF crop factor" +msgstr "$(EXIF.CROP_FACTOR) - EXIF képkivágási szorzó" + +#: ../src/gui/gtkentry.c:219 msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" msgstr "$(EXIF.FOCAL.LENGTH) – EXIF gyújtótávolság" -#: ../src/gui/gtkentry.c:218 +#: ../src/gui/gtkentry.c:220 +msgid "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent focal length" +msgstr "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm-nek megfelelő gyújtótávolság" + +#: ../src/gui/gtkentry.c:221 msgid "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" msgstr "$(EXIF.FOCUS.DISTANCE) – EXIF fókusztávolság" -#: ../src/gui/gtkentry.c:219 +#: ../src/gui/gtkentry.c:222 msgid "$(EXIF.MAKER) - camera maker" msgstr "$(EXIF.MAKER) – kamera gyártó" -#: ../src/gui/gtkentry.c:220 +#: ../src/gui/gtkentry.c:223 msgid "$(EXIF.MODEL) - camera model" msgstr "$(EXIF.MODEL) – kamera modell" -#: ../src/gui/gtkentry.c:221 +#: ../src/gui/gtkentry.c:224 msgid "$(EXIF.LENS) - lens" msgstr "$(EXIF.LENS) – objektív" -#: ../src/gui/gtkentry.c:222 +#: ../src/gui/gtkentry.c:225 msgid "$(LONGITUDE) - longitude" msgstr "$(LONGITUDE) – földrajzi hosszúság" -#: ../src/gui/gtkentry.c:223 +#: ../src/gui/gtkentry.c:226 msgid "$(LATITUDE) - latitude" msgstr "$(LATITUDE) – földrajzi szélesség" -#: ../src/gui/gtkentry.c:224 +#: ../src/gui/gtkentry.c:227 msgid "$(ELEVATION) - elevation" msgstr "$(ELEVATION) – tengerszint feletti magasság" -#: ../src/gui/gtkentry.c:225 +#: ../src/gui/gtkentry.c:228 msgid "$(STARS) - star rating as number (-1 for rejected)" msgstr "$(STARS) – csillagos értékelési szám (-1 az elutasított)" -#: ../src/gui/gtkentry.c:226 +#: ../src/gui/gtkentry.c:229 msgid "$(RATING.ICONS) - star/reject rating in icon form" msgstr "$(RATING.ICONS) – csillag/elutasítás érékelés ikonként" -#: ../src/gui/gtkentry.c:227 +#: ../src/gui/gtkentry.c:230 msgid "$(LABELS) - color labels as text" msgstr "$(LABELS) – színcímkék szövegként" -#: ../src/gui/gtkentry.c:228 +#: ../src/gui/gtkentry.c:231 msgid "$(LABELS.ICONS) - color labels as icons" msgstr "$(LABELS.ICONS) – színcímkék ikonként" -#: ../src/gui/gtkentry.c:229 +#: ../src/gui/gtkentry.c:232 msgid "$(ID) - image ID" msgstr "$(ID) – kép ID" -#: ../src/gui/gtkentry.c:230 +#: ../src/gui/gtkentry.c:233 msgid "$(TITLE) - title from metadata" msgstr "$(TITLE) – cím a metaadatokból" -#: ../src/gui/gtkentry.c:231 +#: ../src/gui/gtkentry.c:234 msgid "$(DESCRIPTION) - description from metadata" msgstr "$(DESCRIPTION) – leírás a metaadatokból" -#: ../src/gui/gtkentry.c:232 +#: ../src/gui/gtkentry.c:235 msgid "$(CREATOR) - creator from metadata" msgstr "$(CREATOR) – alkotó a metaadatokból" -#: ../src/gui/gtkentry.c:233 +#: ../src/gui/gtkentry.c:236 msgid "$(PUBLISHER) - publisher from metadata" msgstr "$(PUBLISHER) – kiadó a metaadatokból" -#: ../src/gui/gtkentry.c:234 +#: ../src/gui/gtkentry.c:237 msgid "$(RIGHTS) - rights from metadata" msgstr "$(RIGHTS) – szerzői jog a metaadatokból" -#: ../src/gui/gtkentry.c:235 +#: ../src/gui/gtkentry.c:238 msgid "$(USERNAME) - login name" msgstr "$(USERNAME) – bejelentkezési név" -#: ../src/gui/gtkentry.c:236 +#: ../src/gui/gtkentry.c:239 msgid "$(FOLDER.PICTURES) - pictures folder" msgstr "$(FOLDER.PICTURES) – képek könyvtára" -#: ../src/gui/gtkentry.c:237 +#: ../src/gui/gtkentry.c:240 msgid "$(FOLDER.HOME) - home folder" msgstr "$(FOLDER.HOME) – saját (home) könyvtár" -#: ../src/gui/gtkentry.c:238 +#: ../src/gui/gtkentry.c:241 msgid "$(FOLDER.DESKTOP) - desktop folder" msgstr "$(FOLDER.DESKTOP) – asztal könyvtár" -#: ../src/gui/gtkentry.c:239 +#: ../src/gui/gtkentry.c:242 msgid "$(OPENCL.ACTIVATED) - whether OpenCL is activated" msgstr "$(OPENCL.ACTIVATED) – engedélyezve van-e az OpenCL" -#: ../src/gui/gtkentry.c:240 +#: ../src/gui/gtkentry.c:243 msgid "$(CATEGORY0(category)) - subtag of level 0 in hierarchical tags" msgstr "$(CATEGORY0(category)) – a hierarchikus címkék 0. szintjének alcímkéje" -#: ../src/gui/gtkentry.c:241 +#: ../src/gui/gtkentry.c:244 msgid "$(TAGS) - tags as set in metadata settings" msgstr "$(TAGS) – címkék a metaadatok beállításainak megfelelően" -#: ../src/gui/gtkentry.c:242 +#: ../src/gui/gtkentry.c:245 msgid "$(DARKTABLE.NAME) - darktable name" msgstr "$(DARKTABLE.NAME) – a darktable neve" -#: ../src/gui/gtkentry.c:243 +#: ../src/gui/gtkentry.c:246 msgid "$(DARKTABLE.VERSION) - current darktable version" msgstr "$(DARKTABLE.VERSION) – a darktable aktuális verziószáma" -#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:255 +#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:248 msgid "grid" msgstr "rács" @@ -10670,11 +11179,11 @@ msgstr "globális segédvonal rávetítés" #: ../src/gui/guides.c:710 ../src/gui/guides.c:719 ../src/gui/guides.c:727 -#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2648 +#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2494 msgid "guide lines" msgstr "segédvonalak" -#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2092 +#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2145 msgid "flip" msgstr "tükrözés" @@ -10690,8 +11199,8 @@ msgid "vertically" msgstr "függőlegesen" -#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6285 ../src/iop/clipping.c:2096 -#: ../src/iop/colorbalance.c:1917 +#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6232 ../src/iop/clipping.c:2149 +#: ../src/iop/colorbalance.c:1892 msgid "both" msgstr "mindkettő" @@ -10740,26 +11249,26 @@ msgid "select parts to paste" msgstr "beillesztendő részek kiválasztása" -#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:517 +#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:524 msgid "select _all" msgstr "_mind kiválaszt" -#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:518 +#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:525 msgid "select _none" msgstr "kiválasztás meg_szűntetése" -#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:593 -#: ../src/gui/styles_dialog.c:615 +#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:605 +#: ../src/gui/styles_dialog.c:627 msgid "include" msgstr "tartalmaz" -#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:669 -#: ../src/gui/styles_dialog.c:675 +#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:681 +#: ../src/gui/styles_dialog.c:687 msgid "item" msgstr "elem" -#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:682 -#: ../src/gui/styles_dialog.c:691 +#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:694 +#: ../src/gui/styles_dialog.c:703 msgid "mask" msgstr "maszk" @@ -10814,11 +11323,11 @@ msgid "interface language" msgstr "a felület nyelve" -#: ../src/gui/preferences.c:289 +#: ../src/gui/preferences.c:290 msgid "double-click to reset to the system language" msgstr "dupla kattintással visszaállítja a rendszer nyelvére" -#: ../src/gui/preferences.c:291 +#: ../src/gui/preferences.c:292 msgid "" "set the language of the user interface. the system default is marked with an " "* (needs a restart)" @@ -10826,27 +11335,27 @@ "a felhasználói felület nyelvének beállítása. a rendszeren alapértelmezett *-" "gal van jelölve (újraindítást igényel)" -#: ../src/gui/preferences.c:300 +#: ../src/gui/preferences.c:301 msgid "theme" msgstr "téma" -#: ../src/gui/preferences.c:328 +#: ../src/gui/preferences.c:331 msgid "set the theme for the user interface" msgstr "a felhasználói felület témájának beállítása" -#: ../src/gui/preferences.c:341 ../src/gui/preferences.c:348 +#: ../src/gui/preferences.c:344 ../src/gui/preferences.c:351 msgid "use system font size" msgstr "rendszer betűméret használata" -#: ../src/gui/preferences.c:357 ../src/gui/preferences.c:364 +#: ../src/gui/preferences.c:360 ../src/gui/preferences.c:367 msgid "font size in points" msgstr "betűméret pontban" -#: ../src/gui/preferences.c:369 +#: ../src/gui/preferences.c:372 msgid "GUI controls and text DPI" msgstr "GUI elemek és szövegek DPI-je" -#: ../src/gui/preferences.c:376 +#: ../src/gui/preferences.c:379 msgid "" "adjust the global GUI resolution to rescale controls, buttons, labels, etc.\n" "increase for a magnified GUI, decrease to fit more content in window.\n" @@ -10863,81 +11372,65 @@ "(újraindítást igényel)" #. checkbox to allow user to modify theme with user.css -#: ../src/gui/preferences.c:385 +#: ../src/gui/preferences.c:388 msgid "modify selected theme with CSS tweaks below" msgstr "a kiválasztott téma módosítása az alábbi CSS finomhangolással" -#: ../src/gui/preferences.c:393 +#: ../src/gui/preferences.c:396 msgid "modify theme with CSS keyed below (saved to user.css)" msgstr "" "a téma módosítása az alábbi mezőbe bevitt CSS kóddal (mentve a user.css " "fájlba)" -#: ../src/gui/preferences.c:415 +#: ../src/gui/preferences.c:418 msgctxt "usercss" msgid "save CSS and apply" msgstr "CSS mentése és alkalmazása" -#: ../src/gui/preferences.c:420 +#: ../src/gui/preferences.c:423 msgid "click to save and apply the CSS tweaks entered in this editor" msgstr "" "kattintson a szerkesztőbe beírt CSS finomhangolások mentéséhez és " "alkalmazásához" -#: ../src/gui/preferences.c:422 +#: ../src/gui/preferences.c:425 msgid "open help page for CSS tweaks" msgstr "CSS finomhangolás súgóoldalának megnyitása" #. load default text with some pointers -#: ../src/gui/preferences.c:443 +#: ../src/gui/preferences.c:446 msgid "ERROR Loading user.css" msgstr "HIBA a user.css betöltése közben" #. load default text -#: ../src/gui/preferences.c:452 +#: ../src/gui/preferences.c:455 msgid "Enter CSS theme tweaks here" msgstr "Ide írja a téma CSS finomhangolásait" -#: ../src/gui/preferences.c:488 +#: ../src/gui/preferences.c:491 msgid "darktable preferences" msgstr "a darktable beállításai" -#: ../src/gui/preferences.c:533 -msgid "processing" -msgstr "feldolgozás" - -#: ../src/gui/preferences.c:534 -msgid "security" -msgstr "biztonság" - -#: ../src/gui/preferences.c:535 -msgid "storage" -msgstr "tárolás" - -#: ../src/gui/preferences.c:536 -msgid "miscellaneous" -msgstr "vegyes" - -#: ../src/gui/preferences.c:561 +#: ../src/gui/preferences.c:559 msgid "darktable needs to be restarted for settings to take effect" msgstr "a darktable-t újra kell indítani, hogy a beállítások érvénybe lépjenek" #. exif -#: ../src/gui/preferences.c:820 ../src/gui/presets.c:644 -#: ../src/libs/metadata_view.c:137 +#: ../src/gui/preferences.c:818 ../src/gui/presets.c:647 +#: ../src/libs/metadata_view.c:139 msgid "model" msgstr "modell" -#: ../src/gui/preferences.c:824 ../src/gui/presets.c:652 -#: ../src/libs/metadata_view.c:138 +#: ../src/gui/preferences.c:822 ../src/gui/presets.c:655 +#: ../src/libs/metadata_view.c:140 msgid "maker" msgstr "gyártó" -#: ../src/gui/preferences.c:861 +#: ../src/gui/preferences.c:859 msgid "search presets list" msgstr "tárolt beállítások keresése" -#: ../src/gui/preferences.c:862 +#: ../src/gui/preferences.c:860 msgid "" "incrementally search the list of presets\n" "press up or down keys to cycle through matches" @@ -10945,70 +11438,70 @@ "növekményes keresés a tárolt beállítások listájában\n" "nyomjon fel vagy le billentyűt a találatok közti váltáshoz" -#: ../src/gui/preferences.c:868 +#: ../src/gui/preferences.c:866 msgctxt "preferences" msgid "import..." msgstr "importálás…" -#: ../src/gui/preferences.c:872 +#: ../src/gui/preferences.c:870 msgctxt "preferences" msgid "export..." msgstr "exportálás…" -#: ../src/gui/preferences.c:1031 +#: ../src/gui/preferences.c:1030 #, c-format msgid "failed to import preset %s" msgstr "%s tárolt beállítás importálása sikertelen" -#: ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1041 msgid "select preset(s) to import" msgstr "válasszon importálandó tárolt beállításokat" -#: ../src/gui/preferences.c:1043 ../src/libs/collect.c:408 -#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:929 -#: ../src/libs/import.c:1506 ../src/libs/import.c:1610 ../src/libs/styles.c:527 +#: ../src/gui/preferences.c:1042 ../src/libs/collect.c:425 +#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:930 +#: ../src/libs/import.c:1515 ../src/libs/import.c:1619 ../src/libs/styles.c:529 msgid "_open" msgstr "_megnyitás" -#: ../src/gui/preferences.c:1052 +#: ../src/gui/preferences.c:1051 msgid "darktable preset files" msgstr "darktable tárolt beállítás fájlok" -#: ../src/gui/preferences.c:1057 ../src/iop/lut3d.c:1577 -#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:945 -#: ../src/libs/styles.c:541 +#: ../src/gui/preferences.c:1056 ../src/iop/lut3d.c:1591 +#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:946 +#: ../src/libs/styles.c:543 msgid "all files" msgstr "összes fájl" -#: ../src/gui/presets.c:59 +#: ../src/gui/presets.c:61 msgid "non-raw" msgstr "nem-raw" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:332 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:336 msgid "raw" msgstr "raw" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:333 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:337 msgid "HDR" msgstr "HDR" -#: ../src/gui/presets.c:59 ../src/iop/monochrome.c:77 ../src/libs/image.c:608 -#: ../src/libs/metadata_view.c:339 +#: ../src/gui/presets.c:61 ../src/iop/monochrome.c:77 ../src/libs/image.c:679 +#: ../src/libs/metadata_view.c:343 msgid "monochrome" msgstr "monokróm" -#: ../src/gui/presets.c:151 +#: ../src/gui/presets.c:153 #, c-format msgid "preset `%s' is write-protected, can't delete!" msgstr "„%s” tárolt beállítás írásvédett, nem törölhető!" -#: ../src/gui/presets.c:157 ../src/gui/presets.c:461 ../src/libs/lib.c:238 -#: ../src/libs/modulegroups.c:3701 +#: ../src/gui/presets.c:159 ../src/gui/presets.c:463 ../src/libs/lib.c:238 +#: ../src/libs/modulegroups.c:3703 msgid "delete preset?" msgstr "törli a tárolt beállítást?" -#: ../src/gui/presets.c:158 ../src/gui/presets.c:462 ../src/libs/lib.c:239 -#: ../src/libs/modulegroups.c:3702 +#: ../src/gui/presets.c:160 ../src/gui/presets.c:464 ../src/libs/lib.c:239 +#: ../src/libs/modulegroups.c:3704 #, c-format msgid "do you really want to delete the preset `%s'?" msgstr "biztosan törli a(z) „%s” tárolt beállítást?" @@ -11019,25 +11512,25 @@ #. clang-format on #. create a shortcut for the new entry #. then show edit dialog -#: ../src/gui/presets.c:200 ../src/gui/presets.c:1035 ../src/gui/presets.c:1038 -#: ../src/gui/presets.c:1041 ../src/libs/lib.c:188 ../src/libs/lib.c:205 +#: ../src/gui/presets.c:202 ../src/gui/presets.c:1022 ../src/gui/presets.c:1025 +#: ../src/gui/presets.c:1028 ../src/libs/lib.c:188 ../src/libs/lib.c:205 #: ../src/libs/lib.c:213 ../src/libs/lib.c:216 msgid "new preset" msgstr "új tárolt beállítás" -#: ../src/gui/presets.c:207 +#: ../src/gui/presets.c:209 msgid "please give preset a name" msgstr "adja meg a tárolt beállítás nevét" -#: ../src/gui/presets.c:212 +#: ../src/gui/presets.c:214 msgid "unnamed preset" msgstr "névtelen tárolt beállítás" -#: ../src/gui/presets.c:241 +#: ../src/gui/presets.c:243 msgid "overwrite preset?" msgstr "felülírja a tárolt beállítást?" -#: ../src/gui/presets.c:242 +#: ../src/gui/presets.c:244 #, c-format msgid "" "preset `%s' already exists.\n" @@ -11046,38 +11539,43 @@ "„%s” tárolt beállítás már létezik.\n" "biztosan felülírja?" -#: ../src/gui/presets.c:420 ../src/imageio/storage/disk.c:123 -#: ../src/imageio/storage/gallery.c:110 ../src/imageio/storage/latex.c:109 +#: ../src/gui/presets.c:422 ../src/imageio/storage/disk.c:198 +#: ../src/imageio/storage/gallery.c:150 ../src/imageio/storage/latex.c:146 msgid "_select as output destination" msgstr "_kiválasztás kimeneti célpontként" -#: ../src/gui/presets.c:429 +#: ../src/gui/presets.c:431 #, c-format msgid "preset %s was successfully exported" msgstr "%s tárolt beállítás sikeresen exportálva" -#: ../src/gui/presets.c:557 +#: ../src/gui/presets.c:559 #, c-format msgid "edit `%s' for module `%s'" msgstr "„%s” szerkesztése „%s” modulhoz" -#: ../src/gui/presets.c:561 +#: ../src/gui/presets.c:563 msgid "_export..." msgstr "_exportálás…" -#: ../src/gui/presets.c:585 +#: ../src/gui/presets.c:564 ../src/libs/tagging.c:1489 +#: ../src/libs/tagging.c:1580 +msgid "_delete" +msgstr "_törlés" + +#: ../src/gui/presets.c:588 msgid "name of the preset" msgstr "tárolt beállítás neve" -#: ../src/gui/presets.c:594 +#: ../src/gui/presets.c:597 msgid "description or further information" msgstr "leírás vagy további információ" -#: ../src/gui/presets.c:598 +#: ../src/gui/presets.c:601 msgid "reset all module parameters to their default values" msgstr "összes modulparaméter visszaállítása alapértelmezett értékre" -#: ../src/gui/presets.c:601 +#: ../src/gui/presets.c:604 msgid "" "the parameters will be reset to their default values, which may be " "automatically set based on image metadata" @@ -11085,15 +11583,15 @@ "a paraméterek visszaállnak az alapértelmezett értékekre, amelyek " "automatikusan beállíthatók a kép metaadatai alapján" -#: ../src/gui/presets.c:607 +#: ../src/gui/presets.c:610 msgid "auto apply this preset to matching images" msgstr "tárolt beállítás automatikus alkalmazása az illeszkedő képekre" -#: ../src/gui/presets.c:611 +#: ../src/gui/presets.c:614 msgid "only show this preset for matching images" msgstr "ez a tárolt beállítás csak az illeszkedő képeknél jelenjen meg" -#: ../src/gui/presets.c:613 +#: ../src/gui/presets.c:616 msgid "" "be very careful with this option. this might be the last time you see your " "preset." @@ -11101,99 +11599,99 @@ "legyen óvatos ezzel a beállítással. ez lehet az utolsó pillanat, amikor " "látja ezt a tárolt beállítást." -#: ../src/gui/presets.c:643 +#: ../src/gui/presets.c:646 #, no-c-format msgid "string to match model (use % as wildcard)" msgstr "modell illesztő karakterlánc (helyettesítő karakter: %)" -#: ../src/gui/presets.c:651 +#: ../src/gui/presets.c:654 #, no-c-format msgid "string to match maker (use % as wildcard)" msgstr "gyártó illesztő karakterlánc (helyettesítő karakter: %)" -#: ../src/gui/presets.c:659 +#: ../src/gui/presets.c:662 #, no-c-format msgid "string to match lens (use % as wildcard)" msgstr "objektív illesztő karakterlánc (helyettesítő karakter: %)" -#: ../src/gui/presets.c:669 +#: ../src/gui/presets.c:672 msgid "minimum ISO value" -msgstr "minimális ISO érték" +msgstr "legkisebb ISO érték" -#: ../src/gui/presets.c:675 +#: ../src/gui/presets.c:678 msgid "" "maximum ISO value\n" "if left blank, it is equivalent to no upper limit" msgstr "" -"maximális ISO érték\n" +"legnagyobb ISO érték\n" "üresen hagyva nincs felső korlát" -#: ../src/gui/presets.c:688 +#: ../src/gui/presets.c:691 msgid "minimum exposure time" -msgstr "minimális záridő" +msgstr "legkisebb záridő" -#: ../src/gui/presets.c:689 +#: ../src/gui/presets.c:692 msgid "maximum exposure time" -msgstr "maximális záridő" +msgstr "legnagyobb záridő" -#: ../src/gui/presets.c:705 +#: ../src/gui/presets.c:708 msgid "minimum aperture value" -msgstr "minimális blendeméret" +msgstr "legkisebb blendeméret" -#: ../src/gui/presets.c:706 +#: ../src/gui/presets.c:709 msgid "maximum aperture value" -msgstr "maximális blendeméret" +msgstr "legnagyobb blendeméret" -#: ../src/gui/presets.c:724 +#: ../src/gui/presets.c:727 msgid "minimum focal length" -msgstr "minimális fókusztávolság" +msgstr "legkisebb gyújtótávolság" -#: ../src/gui/presets.c:725 +#: ../src/gui/presets.c:728 msgid "maximum focal length" -msgstr "maximális fókusztávolság" +msgstr "legnagyobb gyújtótávolság" #. raw/hdr/ldr/mono/color -#: ../src/gui/presets.c:733 ../src/imageio/format/j2k.c:650 +#: ../src/gui/presets.c:736 msgid "format" msgstr "formátum" -#: ../src/gui/presets.c:738 +#: ../src/gui/presets.c:741 msgid "select image types you want this preset to be available for" msgstr "" "válassza ki azokat a kép típusokat, amiknél szeretné, hogy ez a tárolt " "beállítás elérhető legyen" -#: ../src/gui/presets.c:751 ../src/libs/filtering.c:1201 +#: ../src/gui/presets.c:754 ../src/libs/filtering.c:1263 msgid "and" msgstr "és" -#: ../src/gui/presets.c:795 ../src/gui/presets.c:847 +#: ../src/gui/presets.c:798 ../src/gui/presets.c:850 msgid "∞" msgstr "∞" -#: ../src/gui/presets.c:979 +#: ../src/gui/presets.c:966 #, c-format msgid "preset `%s' is write-protected! can't edit it!" msgstr "„%s” tárolt beállítás írásvédett, nem szerkeszthető!" -#: ../src/gui/presets.c:1003 ../src/libs/lib.c:158 +#: ../src/gui/presets.c:990 ../src/libs/lib.c:158 msgid "update preset?" msgstr "frissíti a tárolt beállítást?" -#: ../src/gui/presets.c:1004 ../src/libs/lib.c:159 +#: ../src/gui/presets.c:991 ../src/libs/lib.c:159 #, c-format msgid "do you really want to update the preset `%s'?" msgstr "biztosan frissíteni szeretné a(z) „%s” tárolt beállítást?" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(first)" msgstr "(első)" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(last)" msgstr "(utolsó)" -#: ../src/gui/presets.c:1165 +#: ../src/gui/presets.c:1152 #, c-format msgid "" "preset %s\n" @@ -11202,63 +11700,63 @@ "%s tárolt beállítás\n" "%s" -#: ../src/gui/presets.c:1166 +#: ../src/gui/presets.c:1153 msgid "no presets" msgstr "nincs tárolt beállítás" -#: ../src/gui/presets.c:1199 ../src/iop/basecurve.c:528 -#: ../src/iop/basecurve.c:532 ../src/iop/basecurve.c:535 +#: ../src/gui/presets.c:1188 ../src/iop/basecurve.c:575 +#: ../src/iop/basecurve.c:579 ../src/iop/basecurve.c:582 msgid "display-referred default" msgstr "képernyővonatkozású alapértelmezett" -#: ../src/gui/presets.c:1201 ../src/iop/channelmixerrgb.c:332 -#: ../src/iop/channelmixerrgb.c:336 ../src/iop/channelmixerrgb.c:339 -#: ../src/iop/exposure.c:297 ../src/iop/exposure.c:301 -#: ../src/iop/exposure.c:304 ../src/iop/filmicrgb.c:3248 -#: ../src/iop/filmicrgb.c:3252 ../src/iop/filmicrgb.c:3255 -#: ../src/iop/sigmoid.c:134 ../src/iop/sigmoid.c:138 ../src/iop/sigmoid.c:141 +#: ../src/gui/presets.c:1190 ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:400 ../src/iop/channelmixerrgb.c:403 +#: ../src/iop/exposure.c:319 ../src/iop/exposure.c:323 +#: ../src/iop/exposure.c:326 ../src/iop/filmicrgb.c:3311 +#: ../src/iop/filmicrgb.c:3315 ../src/iop/filmicrgb.c:3318 +#: ../src/iop/sigmoid.c:240 ../src/iop/sigmoid.c:243 ../src/iop/sigmoid.c:245 msgid "scene-referred default" msgstr "látványvonatkozású alapértelmezett" -#: ../src/gui/presets.c:1393 ../src/libs/modulegroups.c:3781 -#: ../src/libs/modulegroups.c:3790 +#: ../src/gui/presets.c:1394 ../src/libs/modulegroups.c:3783 +#: ../src/libs/modulegroups.c:3792 msgid "manage module layouts" msgstr "modulelrendezések kezelése" -#: ../src/gui/presets.c:1402 +#: ../src/gui/presets.c:1403 msgid "manage quick presets" msgstr "gyors tárolt beállítások kezelése" -#: ../src/gui/presets.c:1586 +#: ../src/gui/presets.c:1587 msgid "manage quick presets list..." msgstr "gyors tárolt beállítások listájának kezelése…" -#: ../src/gui/presets.c:1727 +#: ../src/gui/presets.c:1728 msgid "(default)" msgstr "(alapértelmezett)" -#: ../src/gui/presets.c:1754 +#: ../src/gui/presets.c:1755 msgid "disabled: wrong module version" msgstr "letiltva: rossz modulverzió" -#: ../src/gui/presets.c:1776 ../src/libs/lib.c:551 +#: ../src/gui/presets.c:1777 ../src/libs/lib.c:551 msgid "edit this preset.." msgstr "tárolt beállítás szerkesztése…" -#: ../src/gui/presets.c:1781 ../src/libs/lib.c:555 +#: ../src/gui/presets.c:1782 ../src/libs/lib.c:555 msgid "delete this preset" msgstr "tárolt beállítás törlése" -#: ../src/gui/presets.c:1788 ../src/libs/lib.c:563 +#: ../src/gui/presets.c:1789 ../src/libs/lib.c:563 msgid "store new preset.." msgstr "új tárolt beállítás eltárolás…" -#: ../src/gui/presets.c:1796 ../src/libs/lib.c:576 +#: ../src/gui/presets.c:1797 ../src/libs/lib.c:576 msgid "update preset" msgstr "tárolt beállítás frissítése" #: ../src/gui/styles_dialog.c:221 ../src/libs/styles.c:437 -#: ../src/libs/styles.c:620 +#: ../src/libs/styles.c:622 msgid "overwrite style?" msgstr "felülírja a stílust?" @@ -11284,39 +11782,39 @@ msgid "style %s was successfully saved" msgstr "%s stílus sikeresen elmentve" -#: ../src/gui/styles_dialog.c:505 +#: ../src/gui/styles_dialog.c:512 msgid "edit style" msgstr "stílus szerkesztése" -#: ../src/gui/styles_dialog.c:506 +#: ../src/gui/styles_dialog.c:513 msgid "duplicate style" msgstr "stílus duplikálása" -#: ../src/gui/styles_dialog.c:507 +#: ../src/gui/styles_dialog.c:514 msgid "creates a duplicate of the style before applying changes" msgstr "a változtatások érvényesítése előtt másolatot hoz létre a stílusról" -#: ../src/gui/styles_dialog.c:511 +#: ../src/gui/styles_dialog.c:518 msgid "create new style" msgstr "új stílus létrehozása" -#: ../src/gui/styles_dialog.c:549 +#: ../src/gui/styles_dialog.c:557 msgid "enter a name for the new style" msgstr "adja meg az új stílus nevét" -#: ../src/gui/styles_dialog.c:554 +#: ../src/gui/styles_dialog.c:565 msgid "enter a description for the new style, this description is searchable" msgstr "adja meg a stílus leírását. ez a leírást kereshető" -#: ../src/gui/styles_dialog.c:593 +#: ../src/gui/styles_dialog.c:605 msgid "keep" msgstr "megtart" -#: ../src/gui/styles_dialog.c:820 +#: ../src/gui/styles_dialog.c:832 msgid "can't create style out of unaltered image" msgstr "módosítatlan képből nem hozható létre stílus" -#: ../src/imageio/imageio.c:804 +#: ../src/imageio/imageio.c:816 #, c-format msgid "" "failed to allocate memory for %s, please lower the threads used for export " @@ -11325,91 +11823,116 @@ "nem sikerült memóriát lefoglalni %s számára, kérem csökkentse az " "exportáláshoz használt háttérfolyamatok számát, vagy vegyen több memóriát." -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "thumbnail export" msgstr "bélyegkép exportálás" -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "export" msgstr "exportálás" -#: ../src/imageio/imageio.c:819 +#: ../src/imageio/imageio.c:831 #, c-format msgid "cannot find the style '%s' to apply during export." msgstr "nem található az exportálásnál alkalmazandó „%s” stílus." -#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:536 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/imageio_libraw.c:295 +msgid "" +"<span foreground='red'><b>WARNING</b></span>: camera is not fully supported!" +msgstr "" +"<span foreground='red'><b>FIGYELMEZTETÉS</b></span>: a fényképező nem " +"teljesen támogatott!" + +#: ../src/imageio/imageio_libraw.c:297 +#, c-format +msgid "" +"colors for `%s' could be misrepresented,\n" +"and edits might not be compatible with future versions." +msgstr "" +"„%s” színei hamisan lehetnek ábrázolva,\n" +"és a szerkesztések nem feltétlenül kompatibilisek a jövőbeli verziókkal." + +#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:641 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "8 bit" msgstr "8 bit" -#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:567 msgid "10 bit" msgstr "10 bit" -#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:567 msgid "12 bit" msgstr "12 bit" -#: ../src/imageio/format/avif.c:431 +#: ../src/imageio/format/avif.c:110 ../src/imageio/format/webp.c:416 +msgid "lossless" +msgstr "veszteségmentes" + +#: ../src/imageio/format/avif.c:112 ../src/imageio/format/webp.c:416 +msgid "lossy" +msgstr "veszteséges" + +#: ../src/imageio/format/avif.c:463 msgid "invalid AVIF bit depth!" msgstr "érvénytelen AVIF bitmélység!" -#: ../src/imageio/format/avif.c:694 -msgid "AVIF" -msgstr "AVIF" - #. Bit depth combo box -#: ../src/imageio/format/avif.c:766 ../src/imageio/format/exr.cc:565 -#: ../src/imageio/format/jxl.c:555 ../src/imageio/format/pdf.c:661 -#: ../src/imageio/format/png.c:534 ../src/imageio/format/tiff.c:843 +#: ../src/imageio/format/avif.c:800 ../src/imageio/format/exr.cc:601 +#: ../src/imageio/format/jxl.c:566 ../src/imageio/format/pdf.c:661 +#: ../src/imageio/format/png.c:639 ../src/imageio/format/tiff.c:900 #: ../src/imageio/format/xcf.c:354 msgid "bit depth" msgstr "bitmélység" -#: ../src/imageio/format/avif.c:779 +#: ../src/imageio/format/avif.c:813 msgid "color information stored in an image, higher is better" msgstr "a képben tárolt színinformáció, a magasabb jobb" -#: ../src/imageio/format/avif.c:787 +#. +#. * Color mode combo box +#. +#. shortfile option combo box +#: ../src/imageio/format/avif.c:820 ../src/imageio/format/tiff.c:944 +msgid "B&W as grayscale" +msgstr "FF szürkeárnyalatosként" + +#: ../src/imageio/format/avif.c:821 ../src/imageio/format/tiff.c:945 msgid "saving as grayscale will reduce the size for black & white images" msgstr "a fekete-fehér képek mentése szürkeárnyalatosként csökkenti a méretet" -#: ../src/imageio/format/avif.c:789 -msgid "RGB colors" -msgstr "RGB-színek" - -#: ../src/imageio/format/avif.c:789 -msgid "grayscale" -msgstr "szürkeárnyalatos" - #. #. * Tiling combo box #. -#: ../src/imageio/format/avif.c:799 +#: ../src/imageio/format/avif.c:832 msgid "tiling" msgstr "csempézés" -#: ../src/imageio/format/avif.c:800 +#: ../src/imageio/format/avif.c:833 msgid "" "tile an image into segments.\n" "\n" -"makes encoding faster. the impact on quality reduction is negligible, but " -"increases the file size." +"makes encoding faster, but increases the file size. the loss of image " +"quality is negligible." msgstr "" "egy kép csempézése szeletekre.\n" "\n" -"gyorsítja a kódolást. hatása a minőségromlásra elhanyagolható, viszont " -"növeli a fájlméretet." +"gyorsítja a kódolást, de növeli a fájlméretet. hatása a minőségromlásra " +"elhanyagolható." -#: ../src/imageio/format/avif.c:817 ../src/imageio/format/webp.c:383 -msgid "compression type" -msgstr "tömörítés típusa" +#. compression +#. Compression method combo box +#: ../src/imageio/format/avif.c:850 ../src/imageio/format/exr.cc:611 +#: ../src/imageio/format/pdf.c:676 ../src/imageio/format/png.c:653 +#: ../src/imageio/format/tiff.c:923 ../src/imageio/format/webp.c:414 +#: ../src/libs/masks.c:111 +msgid "compression" +msgstr "tömörítés" -#: ../src/imageio/format/avif.c:825 +#: ../src/imageio/format/avif.c:858 msgid "the compression for the image" msgstr "a kép tömörítése" @@ -11418,36 +11941,28 @@ #. step #. default #. digits -#: ../src/imageio/format/avif.c:842 ../src/imageio/format/j2k.c:661 -#: ../src/imageio/format/jpeg.c:587 ../src/imageio/format/jxl.c:579 -#: ../src/imageio/format/webp.c:394 ../src/libs/camera.c:564 +#: ../src/imageio/format/avif.c:878 ../src/imageio/format/j2k.c:679 +#: ../src/imageio/format/jpeg.c:584 ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/webp.c:425 ../src/libs/camera.c:564 msgid "quality" msgstr "minőség" -#: ../src/imageio/format/avif.c:847 +#: ../src/imageio/format/avif.c:881 msgid "" "the quality of an image, less quality means fewer details.\n" "\n" -"the following applies only to lossy setting\n" +"pixel format is controlled by quality:\n" "\n" -"pixelformat based on quality:\n" -"\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" msgstr "" -"a kép minősége, alacsonyabb minőség kevesebb részletet eredményez.\n" -"\n" -"az alábbiak csak a veszteséges beállításokra érvényesek\n" +"egy kép minősége: kisebb minőség kevesebb részletet jelent.\n" "\n" -"minőségen alapuló pixelformátum:\n" +"a pixelformátumot a minőség határozza meg:\n" "\n" -" 91% – 100% -> YUV444\n" -" 81% – 90% -> YUV422\n" -" 5% – 80% -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" #: ../src/imageio/format/copy.c:109 ../src/libs/copy_history.c:370 -#: ../src/libs/image.c:583 +#: ../src/libs/image.c:647 msgid "copy" msgstr "másol" @@ -11463,120 +11978,140 @@ msgid "the selected output profile doesn't work well with EXR" msgstr "a kiválasztott kimeneti profil nem működik jól az EXR formátummal" -#: ../src/imageio/format/exr.cc:540 +#: ../src/imageio/format/exr.cc:576 msgid "OpenEXR" msgstr "OpenEXR" -#: ../src/imageio/format/exr.cc:567 +#: ../src/imageio/format/exr.cc:603 msgid "16 bit (float)" msgstr "16 bit (lebegőpontos)" -#: ../src/imageio/format/exr.cc:567 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/format/exr.cc:603 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "32 bit (float)" msgstr "16 bit (lebegőpontos)" -#. compression -#. Compression method combo box -#: ../src/imageio/format/exr.cc:575 ../src/imageio/format/pdf.c:676 -#: ../src/imageio/format/png.c:548 ../src/imageio/format/tiff.c:866 -#: ../src/libs/masks.c:110 -msgid "compression" -msgstr "tömörítés" - -#: ../src/imageio/format/exr.cc:577 ../src/imageio/format/pdf.c:682 -#: ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/exr.cc:613 ../src/imageio/format/pdf.c:682 +#: ../src/imageio/format/tiff.c:924 msgid "uncompressed" msgstr "tömörítetlen" -#: ../src/imageio/format/exr.cc:578 +#: ../src/imageio/format/exr.cc:614 msgid "RLE" msgstr "RLE" -#: ../src/imageio/format/exr.cc:579 +#: ../src/imageio/format/exr.cc:615 msgid "ZIPS" msgstr "ZIPS" -#: ../src/imageio/format/exr.cc:580 +#: ../src/imageio/format/exr.cc:616 msgid "ZIP" msgstr "ZIP" -#: ../src/imageio/format/exr.cc:581 +#: ../src/imageio/format/exr.cc:617 msgid "PIZ" msgstr "PIZ" -#: ../src/imageio/format/exr.cc:582 +#: ../src/imageio/format/exr.cc:618 msgid "PXR24" msgstr "PXR24" -#: ../src/imageio/format/exr.cc:583 +#: ../src/imageio/format/exr.cc:619 msgid "B44" msgstr "B44" -#: ../src/imageio/format/exr.cc:584 +#: ../src/imageio/format/exr.cc:620 msgid "B44A" msgstr "B44A" -#: ../src/imageio/format/exr.cc:585 +#: ../src/imageio/format/exr.cc:621 msgid "DWAA" msgstr "DWAA" -#: ../src/imageio/format/exr.cc:586 +#: ../src/imageio/format/exr.cc:622 msgid "DWAB" msgstr "DWAB" -#: ../src/imageio/format/j2k.c:618 +#: ../src/imageio/format/j2k.c:648 msgid "JPEG 2000 (12-bit)" msgstr "JPEG 2000 (12-bit)" -#: ../src/imageio/format/j2k.c:652 -msgid "jp2" -msgstr "jp2" - -#: ../src/imageio/format/j2k.c:667 +#: ../src/imageio/format/j2k.c:684 msgid "DCP mode" msgstr "DCP mód" -#: ../src/imageio/format/j2k.c:670 +#: ../src/imageio/format/j2k.c:687 msgid "Cinema2K, 24FPS" msgstr "Cinema2K, 24FPS" -#: ../src/imageio/format/j2k.c:671 +#: ../src/imageio/format/j2k.c:688 msgid "Cinema2K, 48FPS" msgstr "Cinema2K, 48FPS" -#: ../src/imageio/format/j2k.c:672 +#: ../src/imageio/format/j2k.c:689 msgid "Cinema4K, 24FPS" msgstr "Cinema4K, 24FPS" -#: ../src/imageio/format/jpeg.c:564 +#: ../src/imageio/format/jpeg.c:546 msgid "JPEG (8-bit)" msgstr "JPEG (8-bit)" -#: ../src/imageio/format/jxl.c:471 -msgid "JPEG XL" -msgstr "JPEG XL" +#: ../src/imageio/format/jpeg.c:594 +msgid "chroma subsampling" +msgstr "krominancia al-mintavételezés" + +#: ../src/imageio/format/jpeg.c:595 +msgid "" +"chroma subsampling setting for JPEG encoder.\n" +"auto - use subsampling determined by the quality value\n" +"4:4:4 - no chroma subsampling\n" +"4:4:0 - color sampling rate halved vertically\n" +"4:2:2 - color sampling rate halved horizontally\n" +"4:2:0 - color sampling rate halved horizontally and vertically" +msgstr "" +"a JPEG-kódoló krominancia al-mintavételezési beállítása.\n" +"automatikus – minőség értékétől függő alul-mintavételezés\n" +"4:4:4 – nincs al-mintavételezés\n" +"4:4:0 – szín-mintavételezési ráta függőlegesen felezve\n" +"4:2:2 – szín-mintavételezési ráta vízszintesen felezve\n" +"4:2:0 – szín-mintavételezési ráta függőlegesen és vízszintesen felezve" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:4" +msgstr "4:4:4" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:0" +msgstr "4:4:0" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:2" +msgstr "4:2:2" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:0" +msgstr "4:2:0" -#: ../src/imageio/format/jxl.c:556 ../src/imageio/format/pdf.c:81 -#: ../src/imageio/format/png.c:536 ../src/imageio/format/tiff.c:847 +#: ../src/imageio/format/jxl.c:567 ../src/imageio/format/pdf.c:81 +#: ../src/imageio/format/png.c:641 ../src/imageio/format/tiff.c:904 #: ../src/imageio/format/xcf.c:357 msgid "16 bit" msgstr "16 bit" #. Pixel format combo box -#: ../src/imageio/format/jxl.c:562 ../src/imageio/format/tiff.c:852 +#: ../src/imageio/format/jxl.c:573 ../src/imageio/format/tiff.c:909 msgid "pixel type" msgstr "pixeltípus" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "unsigned integer" msgstr "előjel nélküli egész" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "floating point" msgstr "lebegőpontos" -#: ../src/imageio/format/jxl.c:580 +#: ../src/imageio/format/jxl.c:591 msgid "" "the quality of the output image\n" "0-29 = very lossy\n" @@ -11588,11 +12123,11 @@ "30-99 = JPEG minőséghez hasonló\n" "100 = veszteségmentes (csak integer bitmélység)" -#: ../src/imageio/format/jxl.c:589 +#: ../src/imageio/format/jxl.c:600 msgid "encoding color profile" msgstr "színprofil kódolása" -#: ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/jxl.c:601 msgid "" "the color profile used by the encoder\n" "permit internal XYB color space conversion for more efficient lossy " @@ -11606,20 +12141,20 @@ "vagy biztosítsa, hogy ne történjen konverzió, hogy megőrizze az eredeti kép " "színterét (veszteségmentesnél)" -#: ../src/imageio/format/jxl.c:593 +#: ../src/imageio/format/jxl.c:604 msgid "internal" msgstr "belső" -#: ../src/imageio/format/jxl.c:593 ../src/libs/duplicate.c:399 -#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:782 +#: ../src/imageio/format/jxl.c:604 ../src/libs/duplicate.c:405 +#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:840 msgid "original" msgstr "eredeti" -#: ../src/imageio/format/jxl.c:607 +#: ../src/imageio/format/jxl.c:618 msgid "encoding effort" msgstr "kódolási erőfeszítés" -#: ../src/imageio/format/jxl.c:608 +#: ../src/imageio/format/jxl.c:619 msgid "" "the effort used to encode the image, higher efforts will have better results " "at the expense of longer encoding times" @@ -11627,11 +12162,11 @@ "a kép kódolására fordított erőfeszítés. nagyobb erőfeszítés jobb eredményt " "ad, de a hosszabb kódolási idő alatt" -#: ../src/imageio/format/jxl.c:619 +#: ../src/imageio/format/jxl.c:630 msgid "decoding speed" msgstr "dekódolási sebesség" -#: ../src/imageio/format/jxl.c:620 +#: ../src/imageio/format/jxl.c:631 msgid "the preferred decoding speed with some sacrifice of quality" msgstr "" "az előnyben részesített dekódolási sebesség, némi minőség feláldozása árán" @@ -11644,9 +12179,9 @@ msgid "invalid border size, using 0" msgstr "érvénytelen szegély méret, helyette 0 lesz használva" -#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:316 -#: ../src/imageio/storage/email.c:137 ../src/imageio/storage/gallery.c:331 -#: ../src/imageio/storage/gallery.c:370 ../src/imageio/storage/piwigo.c:1202 +#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:460 +#: ../src/imageio/storage/email.c:187 ../src/imageio/storage/gallery.c:409 +#: ../src/imageio/storage/gallery.c:450 ../src/imageio/storage/piwigo.c:1236 #, c-format msgid "could not export to file `%s'!" msgstr "nem lehet exportálni a(z) „%s” fájlba!" @@ -11701,8 +12236,8 @@ "példa: 10 mm, 1 hüvelyk" #. dpi -#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1127 -#: ../src/libs/export.c:1150 +#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1218 +#: ../src/libs/export.c:1246 msgid "dpi" msgstr "dpi" @@ -11764,7 +12299,7 @@ "tömörítetlen – gyors de nagy fájlokat eredményez\n" "deflate – kisebb fájlok, de lassabb" -#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:924 msgid "deflate" msgstr "deflate" @@ -11795,60 +12330,23 @@ msgid "debug" msgstr "hibakeresés" -#: ../src/imageio/format/pfm.c:120 -msgid "PFM" -msgstr "PFM" - -#: ../src/imageio/format/png.c:493 -msgid "PNG" -msgstr "PNG" - #: ../src/imageio/format/ppm.c:111 msgid "PPM (16-bit)" msgstr "PPM (16-bit)" -#: ../src/imageio/format/tiff.c:228 -msgid "will export as a grayscale image" -msgstr "szürkeárnyalatos képként fog exportálni" +#: ../src/imageio/format/tiff.c:246 +msgid "not a B&W image, will not export as grayscale" +msgstr "nem FF kép, nem lesz szürkeárnyalatosként exportálva" -#: ../src/imageio/format/tiff.c:774 -msgid "TIFF" -msgstr "TIFF" - -#: ../src/imageio/format/tiff.c:868 +#: ../src/imageio/format/tiff.c:925 msgid "deflate with predictor" msgstr "deflate előjelzővel" -#: ../src/imageio/format/tiff.c:878 +#: ../src/imageio/format/tiff.c:935 msgid "compression level" msgstr "tömörítési szint" -#. shortfile option combo box -#: ../src/imageio/format/tiff.c:887 -msgid "b&w image" -msgstr "b&w kép" - -#: ../src/imageio/format/tiff.c:888 -msgid "write RGB colors" -msgstr "RGB színek írása" - -#: ../src/imageio/format/tiff.c:888 -msgid "write grayscale" -msgstr "szürkeárnyalatos" - -#: ../src/imageio/format/webp.c:349 -msgid "WebP" -msgstr "WebP" - -#: ../src/imageio/format/webp.c:385 -msgid "lossy" -msgstr "veszteséges" - -#: ../src/imageio/format/webp.c:385 -msgid "lossless" -msgstr "veszteségmentes" - -#: ../src/imageio/format/webp.c:397 +#: ../src/imageio/format/webp.c:426 msgid "" "for lossy, 0 gives the smallest size and 100 the best quality.\n" "for lossless, 0 is the fastest but gives larger files compared\n" @@ -11859,11 +12357,11 @@ "veszteségmentesnél a 0 a leggyorsabb, de nagyobb fájlt eredményez,\n" "mint a leglassabb 100 érték." -#: ../src/imageio/format/webp.c:407 +#: ../src/imageio/format/webp.c:436 msgid "image hint" msgstr "képfajta" -#: ../src/imageio/format/webp.c:408 +#: ../src/imageio/format/webp.c:437 msgid "" "image characteristics hint for the underlying encoder.\n" "picture: digital picture, like portrait, inner shot\n" @@ -11875,15 +12373,15 @@ "fotó: kültéri fénykép, természetes megvilágítással\n" "grafika: diszkrét tónusú kép (diagram, térképcsempe, stb.)" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "picture" msgstr "kép" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "photo" msgstr "fotó" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "graphic" msgstr "grafika" @@ -11891,12 +12389,12 @@ msgid "XCF" msgstr "XCF" -#: ../src/imageio/storage/disk.c:71 ../src/libs/export.c:1040 +#: ../src/imageio/storage/disk.c:74 ../src/libs/export.c:1119 msgid "file on disk" msgstr "fájl a lemezen" -#: ../src/imageio/storage/disk.c:169 ../src/imageio/storage/gallery.c:155 -#: ../src/imageio/storage/latex.c:154 +#: ../src/imageio/storage/disk.c:251 ../src/imageio/storage/gallery.c:204 +#: ../src/imageio/storage/latex.c:191 msgid "" "enter the path where to put exported images\n" "variables support bash like string manipulation\n" @@ -11907,53 +12405,63 @@ "írja be a „$(” karaktereket a kiegészítés és változók listájának " "megjelenítéséhez" -#: ../src/imageio/storage/disk.c:182 ../src/imageio/storage/piwigo.c:1079 +#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/piwigo.c:1113 msgid "on conflict" msgstr "ütközés esetén" -#: ../src/imageio/storage/disk.c:185 +#: ../src/imageio/storage/disk.c:268 msgid "create unique filename" msgstr "egyedi fájlnév létrehozása" #. DT_COPY_HISTORY_APPEND -#: ../src/imageio/storage/disk.c:186 ../src/imageio/storage/piwigo.c:1083 -#: ../src/libs/copy_history.c:404 ../src/libs/image.c:601 -#: ../src/libs/styles.c:440 ../src/libs/styles.c:623 ../src/libs/styles.c:850 +#: ../src/imageio/storage/disk.c:269 ../src/imageio/storage/piwigo.c:1117 +#: ../src/libs/copy_history.c:404 ../src/libs/image.c:670 +#: ../src/libs/styles.c:854 msgid "overwrite" msgstr "felülírás" -#: ../src/imageio/storage/disk.c:187 ../src/imageio/storage/piwigo.c:1081 -#: ../src/libs/styles.c:439 ../src/libs/styles.c:622 +#: ../src/imageio/storage/disk.c:270 +msgid "overwrite if changed" +msgstr "felülírás ha változott" + +#: ../src/imageio/storage/disk.c:271 ../src/imageio/storage/piwigo.c:1115 msgid "skip" -msgstr "kihagy" +msgstr "kihagyás" -#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/gallery.c:253 -#: ../src/imageio/storage/latex.c:252 +#: ../src/imageio/storage/disk.c:371 ../src/imageio/storage/gallery.c:326 +#: ../src/imageio/storage/latex.c:289 #, c-format msgid "could not create directory `%s'!" msgstr "„%s” könyvtárat nem sikerült létrehozni!" -#: ../src/imageio/storage/disk.c:272 +#: ../src/imageio/storage/disk.c:382 #, c-format msgid "could not write to directory `%s'!" msgstr "„%s” könyvtárba nem lehet írni!" -#: ../src/imageio/storage/disk.c:302 +#: ../src/imageio/storage/disk.c:419 #, c-format msgid "%d/%d skipping `%s'" msgid_plural "%d/%d skipping `%s'" msgstr[0] "%d/%d, „%s” kihagyása" msgstr[1] "%d/%d, „%s” kihagyása" -#: ../src/imageio/storage/disk.c:321 ../src/imageio/storage/email.c:144 -#: ../src/imageio/storage/gallery.c:378 ../src/imageio/storage/latex.c:340 +#: ../src/imageio/storage/disk.c:441 +#, c-format +msgid "%d/%d skipping (not modified since export) `%s'" +msgid_plural "%d/%d skipping (not modified since export) `%s'" +msgstr[0] "%d/%d kihagyás (exportálás óta nem módosult): „%s”" +msgstr[1] "%d/%d skipping (not modified since export) `%s'" + +#: ../src/imageio/storage/disk.c:465 ../src/imageio/storage/email.c:194 +#: ../src/imageio/storage/gallery.c:458 ../src/imageio/storage/latex.c:377 #, c-format msgid "%d/%d exported to `%s'" msgid_plural "%d/%d exported to `%s'" msgstr[0] "%d/%d exportálva ide: „%s”" msgstr[1] "%d/%d exportálva ide: „%s”" -#: ../src/imageio/storage/disk.c:380 +#: ../src/imageio/storage/disk.c:530 msgid "" "you are going to export in overwrite mode, this will overwrite any existing " "images\n" @@ -11964,23 +12472,33 @@ "\n" "biztosan szeretné folytatni?" -#: ../src/imageio/storage/email.c:52 +#: ../src/imageio/storage/email.c:57 msgid "send as email" msgstr "küldés emailben" -#: ../src/imageio/storage/email.c:198 +#. Unlikely in normal Windows installations, but let's notify the user if it happens +#: ../src/imageio/storage/email.c:265 +msgid "could not open mapi32.dll" +msgstr "nem lehet megnyitni a mapi32.dll-t" + +#. Even more unlikely +#: ../src/imageio/storage/email.c:275 +msgid "could not get SendMail function" +msgstr "nem érhető el a SendMail funkció" + +#: ../src/imageio/storage/email.c:319 ../src/imageio/storage/email.c:409 msgid "images exported from darktable" msgstr "darktable-ből exportált képek" -#: ../src/imageio/storage/email.c:251 +#: ../src/imageio/storage/email.c:388 ../src/imageio/storage/email.c:467 msgid "could not launch email client!" msgstr "nem sikerült elindítani az email klienst!" -#: ../src/imageio/storage/gallery.c:73 +#: ../src/imageio/storage/gallery.c:76 msgid "website gallery" msgstr "webes galéria" -#: ../src/imageio/storage/gallery.c:171 +#: ../src/imageio/storage/gallery.c:224 msgid "enter the title of the website" msgstr "weboldal címének megadása" @@ -11988,149 +12506,148 @@ msgid "LaTeX book template" msgstr "LaTeX könyv sablon" -#: ../src/imageio/storage/latex.c:172 +#: ../src/imageio/storage/latex.c:209 msgid "enter the title of the book" msgstr "könyv címének megadása" -#: ../src/imageio/storage/piwigo.c:522 +#: ../src/imageio/storage/piwigo.c:525 msgid "authenticated" msgstr "hitelesítve" -#: ../src/imageio/storage/piwigo.c:532 ../src/imageio/storage/piwigo.c:547 -#: ../src/imageio/storage/piwigo.c:559 +#: ../src/imageio/storage/piwigo.c:536 ../src/imageio/storage/piwigo.c:552 +#: ../src/imageio/storage/piwigo.c:565 msgid "not authenticated" msgstr "nincs hitelesítve" -#: ../src/imageio/storage/piwigo.c:538 +#: ../src/imageio/storage/piwigo.c:542 msgid "not authenticated, cannot reach server" msgstr "nincs hitelesítve, nem lehet elérni a szervert" -#: ../src/imageio/storage/piwigo.c:587 ../src/imageio/storage/piwigo.c:675 +#: ../src/imageio/storage/piwigo.c:595 ../src/imageio/storage/piwigo.c:684 msgid "create new album" msgstr "új album készítése" -#: ../src/imageio/storage/piwigo.c:676 +#: ../src/imageio/storage/piwigo.c:685 msgid "---" msgstr "---" -#: ../src/imageio/storage/piwigo.c:721 +#: ../src/imageio/storage/piwigo.c:735 msgid "cannot refresh albums" msgstr "album nem frissíthető" -#: ../src/imageio/storage/piwigo.c:929 +#: ../src/imageio/storage/piwigo.c:950 msgid "Piwigo" msgstr "Piwigo" -#: ../src/imageio/storage/piwigo.c:954 +#: ../src/imageio/storage/piwigo.c:976 msgid "accounts" msgstr "fiókok" -#: ../src/imageio/storage/piwigo.c:972 ../src/imageio/storage/piwigo.c:978 +#: ../src/imageio/storage/piwigo.c:995 ../src/imageio/storage/piwigo.c:1004 msgid "server" msgstr "szerver" -#: ../src/imageio/storage/piwigo.c:974 ../src/imageio/storage/piwigo.c:989 +#: ../src/imageio/storage/piwigo.c:998 msgid "" "the server name\n" "default protocol is https\n" -"specify http:// if non secure server" +"specify insecure protocol http:// explicitly if that protocol is required" msgstr "" "a szervernév\n" -"alapértelmezett protokoll a https\n" -"ha nem biztonságos a szerver, így adja meg: http://" +"az alapértelmezett protokoll a https\n" +"a nem biztonságos http:// protokollt szükség szerint kézzel adja meg" -#: ../src/imageio/storage/piwigo.c:987 ../src/imageio/storage/piwigo.c:993 +#: ../src/imageio/storage/piwigo.c:1014 ../src/imageio/storage/piwigo.c:1021 msgid "user" msgstr "felhasználó" -#: ../src/imageio/storage/piwigo.c:1000 ../src/imageio/storage/piwigo.c:1005 +#: ../src/imageio/storage/piwigo.c:1029 ../src/imageio/storage/piwigo.c:1034 msgid "password" msgstr "jelszó" #. login button -#: ../src/imageio/storage/piwigo.c:1010 +#: ../src/imageio/storage/piwigo.c:1039 msgid "login" msgstr "bejelentkezés" -#: ../src/imageio/storage/piwigo.c:1011 +#: ../src/imageio/storage/piwigo.c:1040 msgid "Piwigo login" msgstr "Piwigo bejelentkezés" #. permissions list -#: ../src/imageio/storage/piwigo.c:1025 +#: ../src/imageio/storage/piwigo.c:1056 msgid "visible to" msgstr "látható számukra" -#: ../src/imageio/storage/piwigo.c:1027 +#: ../src/imageio/storage/piwigo.c:1058 msgid "everyone" msgstr "bárki" -#: ../src/imageio/storage/piwigo.c:1028 +#: ../src/imageio/storage/piwigo.c:1059 msgid "contacts" msgstr "névjegyek" -#: ../src/imageio/storage/piwigo.c:1029 +#: ../src/imageio/storage/piwigo.c:1060 msgid "friends" msgstr "barátok" -#: ../src/imageio/storage/piwigo.c:1030 +#: ../src/imageio/storage/piwigo.c:1061 msgid "family" msgstr "család" -#: ../src/imageio/storage/piwigo.c:1031 +#: ../src/imageio/storage/piwigo.c:1062 msgid "you" msgstr "te" #. Available albums -#: ../src/imageio/storage/piwigo.c:1038 +#: ../src/imageio/storage/piwigo.c:1069 msgid "album" msgstr "album" -#: ../src/imageio/storage/piwigo.c:1045 +#: ../src/imageio/storage/piwigo.c:1076 msgid "refresh album list" msgstr "album lista frissítése" #. Album title -#: ../src/imageio/storage/piwigo.c:1063 +#: ../src/imageio/storage/piwigo.c:1096 msgid "new album" msgstr "új album" -#. parent album list #. Available albums -#: ../src/imageio/storage/piwigo.c:1071 +#: ../src/imageio/storage/piwigo.c:1105 msgid "parent album" msgstr "szülő album" -#: ../src/imageio/storage/piwigo.c:1075 +#: ../src/imageio/storage/piwigo.c:1109 msgid "click login button to start" msgstr "indításhoz kattintson a bejelentkezésre" -#: ../src/imageio/storage/piwigo.c:1080 +#: ../src/imageio/storage/piwigo.c:1114 msgid "don't check" msgstr "ne ellenőrizze" -#: ../src/imageio/storage/piwigo.c:1082 +#: ../src/imageio/storage/piwigo.c:1116 msgid "update metadata" msgstr "metaadatok frissítése" -#: ../src/imageio/storage/piwigo.c:1221 +#: ../src/imageio/storage/piwigo.c:1255 msgid "cannot create a new Piwigo album!" msgstr "nem lehet új Piwigo albumot készíteni!" -#: ../src/imageio/storage/piwigo.c:1240 +#: ../src/imageio/storage/piwigo.c:1274 msgid "could not update to Piwigo!" msgstr "nem lehet Piwigo-ra frissíteni!" -#: ../src/imageio/storage/piwigo.c:1255 +#: ../src/imageio/storage/piwigo.c:1290 msgid "could not upload to Piwigo!" msgstr "nem lehet feltölteni Piwigo-ra!" -#: ../src/imageio/storage/piwigo.c:1284 +#: ../src/imageio/storage/piwigo.c:1319 #, c-format msgid "%d/%d skipped (already exists)" msgstr "%d/%d kihagyva (már létezik)" -#: ../src/imageio/storage/piwigo.c:1290 +#: ../src/imageio/storage/piwigo.c:1325 #, c-format msgid "%d/%d exported to Piwigo webalbum" msgid_plural "%d/%d exported to Piwigo webalbum" @@ -12152,54 +12669,54 @@ msgstr "forgatás vagy perspektíva torzítás" #: ../src/iop/ashift.c:131 ../src/iop/channelmixer.c:139 -#: ../src/iop/channelmixerrgb.c:232 ../src/iop/clipping.c:320 -#: ../src/iop/colorbalance.c:161 ../src/iop/colorbalancergb.c:185 +#: ../src/iop/channelmixerrgb.c:233 ../src/iop/clipping.c:363 +#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:185 #: ../src/iop/colorchecker.c:130 ../src/iop/colorcorrection.c:77 -#: ../src/iop/crop.c:144 ../src/iop/lut3d.c:141 +#: ../src/iop/crop.c:134 ../src/iop/lut3d.c:142 ../src/iop/primaries.c:80 msgid "corrective or creative" msgstr "korrekciós vagy kreatív" -#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:148 -#: ../src/iop/bilateral.cc:101 ../src/iop/bilateral.cc:103 -#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:233 -#: ../src/iop/channelmixerrgb.c:235 ../src/iop/clipping.c:321 -#: ../src/iop/clipping.c:323 ../src/iop/colorbalancergb.c:186 -#: ../src/iop/colorin.c:136 ../src/iop/crop.c:145 ../src/iop/crop.c:147 -#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:728 -#: ../src/iop/denoiseprofile.c:730 ../src/iop/diffuse.c:146 +#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:174 +#: ../src/iop/bilateral.cc:103 ../src/iop/bilateral.cc:105 +#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:236 ../src/iop/clipping.c:364 +#: ../src/iop/clipping.c:366 ../src/iop/colorbalancergb.c:186 +#: ../src/iop/colorin.c:136 ../src/iop/crop.c:135 ../src/iop/crop.c:137 +#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:780 +#: ../src/iop/denoiseprofile.c:782 ../src/iop/diffuse.c:146 #: ../src/iop/diffuse.c:148 ../src/iop/exposure.c:132 ../src/iop/exposure.c:134 #: ../src/iop/flip.c:111 ../src/iop/flip.c:112 ../src/iop/hazeremoval.c:113 -#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:242 ../src/iop/lens.cc:244 -#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/retouch.c:210 -#: ../src/iop/retouch.c:212 ../src/iop/sigmoid.c:103 -#: ../src/iop/splittoning.c:104 ../src/iop/splittoning.c:106 -#: ../src/iop/spots.c:70 ../src/iop/spots.c:72 ../src/iop/toneequal.c:325 -#: ../src/iop/velvia.c:106 ../src/iop/velvia.c:108 +#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:263 ../src/iop/lens.cc:265 +#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/primaries.c:81 +#: ../src/iop/primaries.c:83 ../src/iop/retouch.c:210 ../src/iop/retouch.c:212 +#: ../src/iop/sigmoid.c:209 ../src/iop/splittoning.c:106 +#: ../src/iop/splittoning.c:108 ../src/iop/spots.c:70 ../src/iop/spots.c:72 +#: ../src/iop/toneequal.c:333 ../src/iop/velvia.c:99 ../src/iop/velvia.c:101 msgid "linear, RGB, scene-referred" msgstr "lineáris, RGB, látványvonatkozású" -#: ../src/iop/ashift.c:133 ../src/iop/borders.c:200 ../src/iop/clipping.c:322 -#: ../src/iop/crop.c:146 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 +#: ../src/iop/ashift.c:133 ../src/iop/borders.c:325 ../src/iop/clipping.c:365 +#: ../src/iop/crop.c:136 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 msgid "geometric, RGB" msgstr "geometriai, RGB" -#: ../src/iop/ashift.c:2820 +#: ../src/iop/ashift.c:2866 msgid "automatic cropping failed" msgstr "automatikus körbevágás sikertelen" -#: ../src/iop/ashift.c:3234 ../src/iop/ashift.c:3286 ../src/iop/ashift.c:3334 +#: ../src/iop/ashift.c:3276 ../src/iop/ashift.c:3328 ../src/iop/ashift.c:3375 msgid "data pending - please repeat" msgstr "adatok függőben – kérjük, ismételje meg" -#: ../src/iop/ashift.c:3243 +#: ../src/iop/ashift.c:3285 msgid "could not detect structural data in image" msgstr "nem lehetett felismerni a kép szerkezetét" -#: ../src/iop/ashift.c:3255 +#: ../src/iop/ashift.c:3297 msgid "could not run outlier removal" msgstr "nem futtatható a kilógás eltávolító" -#: ../src/iop/ashift.c:3434 +#: ../src/iop/ashift.c:3474 #, c-format msgid "" "not enough structure for automatic correction\n" @@ -12208,41 +12725,41 @@ "az automata korrekcióhoz nem ismerhető fel elég szerkezeti elem\n" "minimum %d vonal az egyes releváns irányokban" -#: ../src/iop/ashift.c:3440 +#: ../src/iop/ashift.c:3480 msgid "automatic correction failed, please correct manually" msgstr "az automatikus korrekció nem sikerült, kérem korrigálja kézzel" -#: ../src/iop/ashift.c:5096 +#: ../src/iop/ashift.c:5077 #, c-format msgid "only %d lines can be saved in parameters" msgstr "csak %d vonal menthető a paraméterekben" -#: ../src/iop/ashift.c:5201 +#: ../src/iop/ashift.c:5157 #, c-format -msgid "rotation adjusted by %3.1f° to %3.1f°" -msgstr "forgatás igazítva %3.1f°-al %3.1f°-ra" +msgid "rotation adjusted by %3.2f° to %3.2f°" +msgstr "a forgatás %3.2f°-al igazítva erre: %3.2f°" -#: ../src/iop/ashift.c:5852 ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 -#: ../src/iop/ashift.c:5961 +#: ../src/iop/ashift.c:5797 ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 +#: ../src/iop/ashift.c:5906 #, c-format msgid "lens shift (%s)" msgstr "lencseeltolás (%s)" -#: ../src/iop/ashift.c:6125 +#: ../src/iop/ashift.c:6072 msgid "manual perspective" msgstr "manuális perspektíva" -#: ../src/iop/ashift.c:6170 +#: ../src/iop/ashift.c:6117 msgctxt "section" msgid "perspective" msgstr "perspektíva" -#: ../src/iop/ashift.c:6177 ../src/iop/ashift.c:6286 ../src/iop/ashift.c:6288 -#: ../src/iop/ashift.c:6290 +#: ../src/iop/ashift.c:6124 ../src/iop/ashift.c:6233 ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6237 msgid "structure" msgstr "szerkezet" -#: ../src/iop/ashift.c:6212 +#: ../src/iop/ashift.c:6159 msgid "" "rotate image\n" "right-click and drag to define a horizontal or vertical line by drawing on " @@ -12251,40 +12768,40 @@ "kép forgatása\n" "jobb klikk és húzás a képen vízszintes vagy függőleges vonal alapján forgat" -#: ../src/iop/ashift.c:6215 ../src/iop/ashift.c:6217 +#: ../src/iop/ashift.c:6162 ../src/iop/ashift.c:6164 msgid "apply lens shift correction in one direction" -msgstr "lencseeltolás korrekció alkalmazása egy irányba" +msgstr "lencseeltolási korrekció alkalmazása egy irányba" -#: ../src/iop/ashift.c:6219 +#: ../src/iop/ashift.c:6166 msgid "shear the image along one diagonal" msgstr "kép nyírása az egyik átló mentén" -#: ../src/iop/ashift.c:6220 ../src/iop/clipping.c:2117 +#: ../src/iop/ashift.c:6167 ../src/iop/clipping.c:2170 msgid "automatically crop to avoid black edges" msgstr "fekete szegélyek automatikus körbevágása" -#: ../src/iop/ashift.c:6221 +#: ../src/iop/ashift.c:6168 msgid "" "lens model of the perspective correction: generic or according to the focal " "length" msgstr "" "a perspektívakorrekcióhoz használt lencsemodell: általános, vagy " -"fókusztávolság alapú" +"gyújtótávolság alapú" -#: ../src/iop/ashift.c:6224 +#: ../src/iop/ashift.c:6171 msgid "focal length of the lens, default value set from EXIF data if available" msgstr "" -"az objektív fókusztávolsága. alapértelmezetten az EXIF szerinti, ha elérhető" +"az objektív gyújtótávolsága. alapértelmezetten az EXIF szerinti, ha elérhető" -#: ../src/iop/ashift.c:6227 +#: ../src/iop/ashift.c:6174 msgid "" "crop factor of the camera sensor, default value set from EXIF data if " "available, manual setting is often required" msgstr "" -"a képérzékelő képkivágás szorzója. alapértelmezetten az EXIF szerinti, ha " +"a képérzékelő képkivágási szorzója. alapértelmezetten az EXIF szerinti, ha " "elérhető. a kézi beállítás gyakran szükséges" -#: ../src/iop/ashift.c:6231 +#: ../src/iop/ashift.c:6178 msgid "" "the level of lens dependent correction, set to maximum for full lens " "dependency, set to zero for the generic case" @@ -12292,11 +12809,11 @@ "a lencsefüggő korrekció szintje. maximumra állítva teljesen lencsefüggő, " "nullára véve általános" -#: ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6182 msgid "adjust aspect ratio of image by horizontal and vertical scaling" msgstr "a kép oldalarányának igazítása vízszintes és függőleges méretezéssel" -#: ../src/iop/ashift.c:6237 +#: ../src/iop/ashift.c:6184 msgid "" "automatically correct for vertical perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12306,7 +12823,7 @@ "ctrl+klikk: csak forgatással illeszt\n" "shift+klikk: csak lencseeltolással illeszt" -#: ../src/iop/ashift.c:6241 +#: ../src/iop/ashift.c:6188 msgid "" "automatically correct for horizontal perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12316,7 +12833,7 @@ "ctrl+klikk: csak forgatással illeszt\n" "shift+klikk: csak lencseeltolással illeszt" -#: ../src/iop/ashift.c:6245 +#: ../src/iop/ashift.c:6192 msgid "" "automatically correct for vertical and horizontal perspective distortions, " "fitting rotation, lens shift in both directions, and shear\n" @@ -12330,7 +12847,7 @@ "shift+klikk: csak lencseeltolással illeszt\n" "ctrl+shift+klikk: csak forgatással és lencseeltolással illeszt" -#: ../src/iop/ashift.c:6252 +#: ../src/iop/ashift.c:6199 msgid "" "automatically analyse line structure in image\n" "ctrl+click for an additional edge enhancement\n" @@ -12342,227 +12859,227 @@ "shift+klikk: további részletkiemelés\n" "ctrl+shift+klikk: a két módszer kombinálása" -#: ../src/iop/ashift.c:6257 +#: ../src/iop/ashift.c:6204 msgid "manually define perspective rectangle" msgstr "manuális perspektíva téglalap megadás" -#: ../src/iop/ashift.c:6258 +#: ../src/iop/ashift.c:6205 msgid "manually draw structure lines" msgstr "manuális szerkezeti vonal rajzolás" -#: ../src/iop/ashift.c:6287 +#: ../src/iop/ashift.c:6234 msgid "rectangle" msgstr "téglalap" -#: ../src/iop/ashift.c:6289 +#: ../src/iop/ashift.c:6236 msgid "lines" msgstr "vonalak" -#: ../src/iop/ashift.c:6323 ../src/iop/clipping.c:3343 +#: ../src/iop/ashift.c:6270 ../src/iop/clipping.c:3383 #, c-format msgid "[%s] define/rotate horizon" msgstr "[%s] horizont definiálása/forgatása" -#: ../src/iop/ashift.c:6326 +#: ../src/iop/ashift.c:6273 #, c-format msgid "[%s on segment] select segment" msgstr "[%s szakaszon] szakasz kijelölése" -#: ../src/iop/ashift.c:6330 +#: ../src/iop/ashift.c:6277 #, c-format msgid "[%s on segment] unselect segment" msgstr "[%s szakaszon] szakasz kijelölésének megszüntetése" -#: ../src/iop/ashift.c:6334 +#: ../src/iop/ashift.c:6281 #, c-format msgid "[%s] select all segments from zone" msgstr "[%s] zóna összes szakaszának kijelölése" -#: ../src/iop/ashift.c:6338 +#: ../src/iop/ashift.c:6285 #, c-format msgid "[%s] unselect all segments from zone" msgstr "[%s] zóna összes szakaszának kijelölésének megszűntetése" -#: ../src/iop/atrous.c:123 ../src/iop/atrous.c:1638 +#: ../src/iop/atrous.c:122 ../src/iop/atrous.c:1770 msgid "contrast equalizer" msgstr "kontraszt equalizer" -#: ../src/iop/atrous.c:128 +#: ../src/iop/atrous.c:127 msgid "sharpness|acutance|local contrast" msgstr "" "élesség|keménység|lokális kontraszt|helyi kontraszt|akutancia|sharpness|" "acutance|local contrast" -#: ../src/iop/atrous.c:133 +#: ../src/iop/atrous.c:132 msgid "add or remove local contrast, sharpness, acutance" msgstr "lokális kontrasztot, élességet ad hozzá vagy vesz el" -#: ../src/iop/atrous.c:134 ../src/iop/bilateral.cc:100 ../src/iop/diffuse.c:145 +#: ../src/iop/atrous.c:133 ../src/iop/bilateral.cc:102 ../src/iop/diffuse.c:145 #: ../src/iop/exposure.c:131 ../src/iop/filmicrgb.c:352 #: ../src/iop/graduatednd.c:146 ../src/iop/negadoctor.c:146 -#: ../src/iop/rgbcurve.c:143 ../src/iop/rgblevels.c:123 ../src/iop/shadhi.c:197 -#: ../src/iop/sigmoid.c:102 ../src/iop/tonecurve.c:211 -#: ../src/iop/toneequal.c:324 +#: ../src/iop/rgbcurve.c:145 ../src/iop/rgblevels.c:125 ../src/iop/shadhi.c:144 +#: ../src/iop/sigmoid.c:209 ../src/iop/tonecurve.c:184 +#: ../src/iop/toneequal.c:332 msgid "corrective and creative" msgstr "korrekciós és kreatív" -#: ../src/iop/atrous.c:135 ../src/iop/atrous.c:137 -#: ../src/iop/colorbalance.c:162 +#: ../src/iop/atrous.c:134 ../src/iop/atrous.c:136 +#: ../src/iop/colorbalance.c:164 msgid "linear, Lab, scene-referred" msgstr "lineáris, Lab, látványvonatkozású" -#: ../src/iop/atrous.c:136 ../src/iop/censorize.c:85 +#: ../src/iop/atrous.c:135 ../src/iop/censorize.c:85 #: ../src/iop/hazeremoval.c:114 msgid "frequential, RGB" msgstr "frekvenciális, RGB" -#: ../src/iop/atrous.c:727 +#: ../src/iop/atrous.c:799 msgctxt "eq_preset" msgid "coarse" msgstr "durva" -#: ../src/iop/atrous.c:742 +#: ../src/iop/atrous.c:815 msgid "denoise & sharpen" msgstr "zajszűrés és élesítés" -#: ../src/iop/atrous.c:757 +#: ../src/iop/atrous.c:831 msgctxt "atrous" msgid "sharpen" msgstr "élesítés" -#: ../src/iop/atrous.c:772 +#: ../src/iop/atrous.c:847 msgid "denoise chroma" msgstr "krominancia zajszűrése" -#: ../src/iop/atrous.c:787 +#: ../src/iop/atrous.c:863 msgid "denoise" msgstr "zajszűrés" -#: ../src/iop/atrous.c:803 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:421 +#: ../src/iop/atrous.c:880 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:448 msgid "bloom" msgstr "bloom hatás" -#: ../src/iop/atrous.c:818 ../src/iop/bilat.c:169 +#: ../src/iop/atrous.c:896 ../src/iop/bilat.c:186 msgid "clarity" msgstr "tisztaság" -#: ../src/iop/atrous.c:838 +#: ../src/iop/atrous.c:917 msgid "deblur: large blur, strength 3" msgstr "homálytalanítás: nagy elmosódás, 3-as erősség" -#: ../src/iop/atrous.c:855 +#: ../src/iop/atrous.c:935 msgid "deblur: medium blur, strength 3" msgstr "homálytalanítás: közepes elmosódás, 3-as erősség" -#: ../src/iop/atrous.c:871 +#: ../src/iop/atrous.c:952 msgid "deblur: fine blur, strength 3" msgstr "homálytalanítás: finom elmosódás, 3-as erősség" -#: ../src/iop/atrous.c:889 +#: ../src/iop/atrous.c:971 msgid "deblur: large blur, strength 2" msgstr "homálytalanítás: nagy elmosódás, 2-es erősség" -#: ../src/iop/atrous.c:906 +#: ../src/iop/atrous.c:989 msgid "deblur: medium blur, strength 2" msgstr "homálytalanítás: közepes elmosódás, 2-es erősség" -#: ../src/iop/atrous.c:922 +#: ../src/iop/atrous.c:1006 msgid "deblur: fine blur, strength 2" msgstr "homálytalanítás: finom elmosódás, 2-es erősség" -#: ../src/iop/atrous.c:940 +#: ../src/iop/atrous.c:1025 msgid "deblur: large blur, strength 1" msgstr "homálytalanítás: nagy elmosódás, 1-es erősség" -#: ../src/iop/atrous.c:957 +#: ../src/iop/atrous.c:1043 msgid "deblur: medium blur, strength 1" msgstr "homálytalanítás: közepes elmosódás, 1-es erősség" -#: ../src/iop/atrous.c:973 +#: ../src/iop/atrous.c:1060 msgid "deblur: fine blur, strength 1" msgstr "élesítés: finom elmosódás, 1-es erősség" -#: ../src/iop/atrous.c:1289 ../src/iop/atrous.c:1525 -#: ../src/iop/denoiseprofile.c:3510 ../src/iop/rawdenoise.c:738 +#: ../src/iop/atrous.c:1390 ../src/iop/atrous.c:1639 +#: ../src/iop/denoiseprofile.c:3514 ../src/iop/rawdenoise.c:754 msgid "coarse" msgstr "durva" -#: ../src/iop/atrous.c:1296 ../src/iop/atrous.c:1526 -#: ../src/iop/denoiseprofile.c:3518 ../src/iop/rawdenoise.c:746 +#: ../src/iop/atrous.c:1397 ../src/iop/atrous.c:1640 +#: ../src/iop/denoiseprofile.c:3522 ../src/iop/rawdenoise.c:762 msgid "fine" msgstr "finom" -#: ../src/iop/atrous.c:1308 +#: ../src/iop/atrous.c:1409 msgid "contrasty" msgstr "kontrasztos" -#: ../src/iop/atrous.c:1314 ../src/iop/denoiseprofile.c:3532 -#: ../src/iop/rawdenoise.c:760 +#: ../src/iop/atrous.c:1415 ../src/iop/denoiseprofile.c:3536 +#: ../src/iop/rawdenoise.c:776 msgid "noisy" msgstr "zajos" #. case atrous_s: -#: ../src/iop/atrous.c:1317 +#: ../src/iop/atrous.c:1418 msgid "bold" msgstr "feltűnő" -#: ../src/iop/atrous.c:1318 +#: ../src/iop/atrous.c:1419 msgid "dull" msgstr "tompa" -#: ../src/iop/atrous.c:1513 ../src/iop/atrous.c:1564 +#: ../src/iop/atrous.c:1627 ../src/iop/atrous.c:1685 msgid "boost" msgstr "erősség" -#: ../src/iop/atrous.c:1514 +#: ../src/iop/atrous.c:1628 msgid "reduce" msgstr "csökkent" -#: ../src/iop/atrous.c:1515 +#: ../src/iop/atrous.c:1629 msgid "raise" msgstr "emel" -#: ../src/iop/atrous.c:1516 +#: ../src/iop/atrous.c:1630 msgid "lower" msgstr "alacsonyabb" -#: ../src/iop/atrous.c:1523 +#: ../src/iop/atrous.c:1637 msgid "coarsest" msgstr "legdurvább" -#: ../src/iop/atrous.c:1524 +#: ../src/iop/atrous.c:1638 msgid "coarser" msgstr "durvább" -#: ../src/iop/atrous.c:1527 +#: ../src/iop/atrous.c:1641 msgid "finer" msgstr "finomabb" -#: ../src/iop/atrous.c:1528 +#: ../src/iop/atrous.c:1642 msgid "finest" msgstr "legfinomabb" -#: ../src/iop/atrous.c:1586 ../src/libs/export.c:1143 ../src/libs/export.c:1158 +#: ../src/iop/atrous.c:1710 ../src/libs/export.c:1239 ../src/libs/export.c:1255 msgid "x" msgstr "×" -#: ../src/iop/atrous.c:1666 ../src/iop/nlmeans.c:465 +#: ../src/iop/atrous.c:1799 ../src/iop/nlmeans.c:468 msgid "luma" msgstr "fénysűrűség" -#: ../src/iop/atrous.c:1666 +#: ../src/iop/atrous.c:1800 msgid "change lightness at each feature size" msgstr "az egyes tárgyméretek fényességének módosítása" -#: ../src/iop/atrous.c:1667 +#: ../src/iop/atrous.c:1802 msgid "change color saturation at each feature size" msgstr "az egyes tárgyméretek színtelítettségének módosítása" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1804 msgid "edges" msgstr "élek" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1805 msgid "" "change edge halos at each feature size\n" "only changes results of luma and chroma tabs" @@ -12570,97 +13087,97 @@ "az egyes tárgyméretek élelmosásának módosítása\n" "csak a fénysűrűség és krominancia görbék eredményén változtat" -#: ../src/iop/atrous.c:1679 ../src/iop/colorbalancergb.c:2058 -#: ../src/iop/colorzones.c:2473 ../src/iop/denoiseprofile.c:3743 -#: ../src/iop/filmicrgb.c:4407 ../src/iop/lowlight.c:823 -#: ../src/iop/rawdenoise.c:919 ../src/iop/toneequal.c:3371 +#: ../src/iop/atrous.c:1818 ../src/iop/colorbalancergb.c:2129 +#: ../src/iop/colorzones.c:2732 ../src/iop/denoiseprofile.c:3747 +#: ../src/iop/filmicrgb.c:4471 ../src/iop/lowlight.c:821 +#: ../src/iop/rawdenoise.c:935 ../src/iop/toneequal.c:3424 msgid "graph" msgstr "grafikon" -#: ../src/iop/atrous.c:1690 ../src/iop/colorzones.c:2470 +#: ../src/iop/atrous.c:1836 ../src/iop/colorzones.c:2729 msgid "make effect stronger or weaker" msgstr "hatás erősítése vagy gyengítése" -#: ../src/iop/basecurve.c:213 +#: ../src/iop/basecurve.c:260 msgid "neutral" msgstr "természetes" -#: ../src/iop/basecurve.c:214 +#: ../src/iop/basecurve.c:261 msgid "canon eos like" msgstr "canon eos-szerű" -#: ../src/iop/basecurve.c:215 +#: ../src/iop/basecurve.c:262 msgid "canon eos like alternate" msgstr "canon eos-szerű alternatív" -#: ../src/iop/basecurve.c:216 +#: ../src/iop/basecurve.c:263 msgid "nikon like" msgstr "nikon-szerű" -#: ../src/iop/basecurve.c:217 +#: ../src/iop/basecurve.c:264 msgid "nikon like alternate" msgstr "nikon-szerű alternatív" -#: ../src/iop/basecurve.c:218 +#: ../src/iop/basecurve.c:265 msgid "sony alpha like" msgstr "sony alpha-szerű" -#: ../src/iop/basecurve.c:219 +#: ../src/iop/basecurve.c:266 msgid "pentax like" msgstr "pentax-szerű" -#: ../src/iop/basecurve.c:220 +#: ../src/iop/basecurve.c:267 msgid "ricoh like" msgstr "ricoh-szerű" -#: ../src/iop/basecurve.c:221 +#: ../src/iop/basecurve.c:268 msgid "olympus like" msgstr "olympus-szerű" -#: ../src/iop/basecurve.c:222 +#: ../src/iop/basecurve.c:269 msgid "olympus like alternate" msgstr "olympus-szerű alternatív" -#: ../src/iop/basecurve.c:223 +#: ../src/iop/basecurve.c:270 msgid "panasonic like" msgstr "panasonic-szerű" -#: ../src/iop/basecurve.c:224 +#: ../src/iop/basecurve.c:271 msgid "leica like" msgstr "leica-szerű" -#: ../src/iop/basecurve.c:225 +#: ../src/iop/basecurve.c:272 msgid "kodak easyshare like" msgstr "kodak easyshare-szerű" -#: ../src/iop/basecurve.c:226 +#: ../src/iop/basecurve.c:273 msgid "konica minolta like" msgstr "konica minolta-szerű" -#: ../src/iop/basecurve.c:227 +#: ../src/iop/basecurve.c:274 msgid "samsung like" msgstr "samsung-szerű" -#: ../src/iop/basecurve.c:228 +#: ../src/iop/basecurve.c:275 msgid "fujifilm like" msgstr "fujifilm-szerű" -#: ../src/iop/basecurve.c:229 +#: ../src/iop/basecurve.c:276 msgid "nokia like" msgstr "nokia-szerű" #. clang-format off #. smoother cubic spline curve -#: ../src/iop/basecurve.c:284 ../src/iop/colorzones.c:2495 -#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1173 +#: ../src/iop/basecurve.c:331 ../src/iop/colorzones.c:2763 +#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1195 msgid "cubic spline" msgstr "köbös spline" -#: ../src/iop/basecurve.c:343 +#: ../src/iop/basecurve.c:390 msgid "base curve" msgstr "alapgörbe" -#: ../src/iop/basecurve.c:350 +#: ../src/iop/basecurve.c:397 msgid "" "apply a view transform based on personal or camera manufacturer look,\n" "for corrective purposes, to prepare images for display" @@ -12669,67 +13186,67 @@ "alapján,\n" "korrekciós célból, előkészíteni a képet képernyőre" -#: ../src/iop/basecurve.c:352 ../src/iop/cacorrect.c:78 -#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:135 -#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:727 +#: ../src/iop/basecurve.c:399 ../src/iop/cacorrect.c:84 +#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:120 +#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:779 #: ../src/iop/flip.c:110 ../src/iop/hazeremoval.c:112 -#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:73 -#: ../src/iop/invert.c:119 ../src/iop/lens.cc:241 ../src/iop/nlmeans.c:95 -#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:130 -#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:94 ../src/iop/spots.c:69 -#: ../src/iop/temperature.c:212 +#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:75 +#: ../src/iop/invert.c:136 ../src/iop/lens.cc:262 ../src/iop/nlmeans.c:89 +#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:144 +#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:96 ../src/iop/spots.c:69 +#: ../src/iop/temperature.c:220 msgid "corrective" msgstr "korrekciós" -#: ../src/iop/basecurve.c:353 ../src/iop/channelmixer.c:140 -#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:142 +#: ../src/iop/basecurve.c:400 ../src/iop/channelmixer.c:140 +#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:143 #: ../src/iop/negadoctor.c:147 ../src/iop/profile_gamma.c:103 -#: ../src/iop/rgbcurve.c:144 ../src/iop/rgbcurve.c:146 -#: ../src/iop/rgblevels.c:124 ../src/iop/sigmoid.c:105 ../src/iop/soften.c:102 -#: ../src/iop/soften.c:104 +#: ../src/iop/rgbcurve.c:146 ../src/iop/rgbcurve.c:148 +#: ../src/iop/rgblevels.c:126 ../src/iop/sigmoid.c:210 ../src/iop/soften.c:104 +#: ../src/iop/soften.c:106 msgid "linear, RGB, display-referred" msgstr "lineáris, RGB, képernyővonatkozású" -#: ../src/iop/basecurve.c:354 ../src/iop/basicadj.c:149 -#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:187 +#: ../src/iop/basecurve.c:401 ../src/iop/basicadj.c:175 +#: ../src/iop/colorbalance.c:165 ../src/iop/colorbalancergb.c:187 #: ../src/iop/dither.c:121 ../src/iop/filmicrgb.c:354 #: ../src/iop/graduatednd.c:148 ../src/iop/negadoctor.c:148 -#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:145 -#: ../src/iop/rgblevels.c:125 ../src/iop/sigmoid.c:104 -#: ../src/iop/vignette.c:161 ../src/iop/watermark.c:379 +#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:147 +#: ../src/iop/rgblevels.c:127 ../src/iop/sigmoid.c:210 +#: ../src/iop/vignette.c:122 ../src/iop/watermark.c:424 msgid "non-linear, RGB" msgstr "nemlineáris, RGB" -#: ../src/iop/basecurve.c:355 ../src/iop/dither.c:120 ../src/iop/dither.c:122 +#: ../src/iop/basecurve.c:402 ../src/iop/dither.c:120 ../src/iop/dither.c:122 #: ../src/iop/filmicrgb.c:355 ../src/iop/graduatednd.c:149 #: ../src/iop/negadoctor.c:149 ../src/iop/profile_gamma.c:105 -#: ../src/iop/rgblevels.c:126 ../src/iop/vignette.c:160 -#: ../src/iop/vignette.c:162 ../src/iop/watermark.c:378 -#: ../src/iop/watermark.c:380 +#: ../src/iop/rgblevels.c:128 ../src/iop/vignette.c:121 +#: ../src/iop/vignette.c:123 ../src/iop/watermark.c:423 +#: ../src/iop/watermark.c:425 msgid "non-linear, RGB, display-referred" msgstr "nemlináris, RGB, képernyővonatkozású" -#: ../src/iop/basecurve.c:2184 +#: ../src/iop/basecurve.c:2205 msgid "abscissa: input, ordinate: output. works on RGB channels" msgstr "" "vízszintes tengely: bemenet, függőleges tengely: kimenet. az RGB " "csatornákkal dolgozik" -#: ../src/iop/basecurve.c:2190 ../src/iop/basicadj.c:612 -#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1072 -#: ../src/iop/tonecurve.c:1184 +#: ../src/iop/basecurve.c:2211 ../src/iop/basicadj.c:642 +#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1133 +#: ../src/iop/tonecurve.c:1206 msgid "method to preserve colors when applying contrast" msgstr "a kontraszt alkalmazásakor használt színmegőrző módszer" -#: ../src/iop/basecurve.c:2194 +#: ../src/iop/basecurve.c:2215 msgid "two exposures" msgstr "két expozíció" -#: ../src/iop/basecurve.c:2195 +#: ../src/iop/basecurve.c:2216 msgid "three exposures" msgstr "három expozíció" -#: ../src/iop/basecurve.c:2196 +#: ../src/iop/basecurve.c:2217 msgid "" "fuse this image stopped up/down a couple of times with itself, to compress " "high dynamic range. expose for the highlights before use." @@ -12737,11 +13254,11 @@ "a nagy dinamikatartomány összenyomásának érdekében párszor egyesíti a képet " "saját magával. használat előtt exponáljon a csúcsfényekre." -#: ../src/iop/basecurve.c:2201 +#: ../src/iop/basecurve.c:2222 msgid "how many stops to shift the individual exposures apart" msgstr "hány blendével legyenek eltolva egymástól az egyes expozíciók" -#: ../src/iop/basecurve.c:2210 +#: ../src/iop/basecurve.c:2231 msgid "" "whether to shift exposure up or down (-1: reduce highlight, +1: reduce " "shadows)" @@ -12749,40 +13266,39 @@ "felfelé vagy lefelé tolja el az expozíciót (-1: visszaveszi a csúcsfényeket, " "+1 csökkenti az árnyékokat)" -#: ../src/iop/basecurve.c:2215 ../src/iop/tonecurve.c:1187 +#: ../src/iop/basecurve.c:2236 ../src/iop/tonecurve.c:1209 msgid "scale for graph" msgstr "grafikon skálája" -#: ../src/iop/basicadj.c:136 +#: ../src/iop/basicadj.c:162 msgid "this module is deprecated. please use the quick access panel instead." msgstr "ez a modul elavult. kérem használja helyette a gyors elérés panelt." -#: ../src/iop/basicadj.c:141 +#: ../src/iop/basicadj.c:167 msgid "basic adjustments" msgstr "alap igazítások" -#: ../src/iop/basicadj.c:146 +#: ../src/iop/basicadj.c:172 msgid "apply usual image adjustments" msgstr "alkalmazza a szokásos képigazításokat" -#: ../src/iop/basicadj.c:147 ../src/iop/bilat.c:102 ../src/iop/bloom.c:81 -#: ../src/iop/blurs.c:93 ../src/iop/borders.c:198 ../src/iop/censorize.c:83 -#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:97 -#: ../src/iop/colorize.c:105 ../src/iop/colormapping.c:153 -#: ../src/iop/colorzones.c:145 ../src/iop/grain.c:434 ../src/iop/highpass.c:78 -#: ../src/iop/levels.c:138 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 -#: ../src/iop/lowpass.c:134 ../src/iop/monochrome.c:98 ../src/iop/soften.c:101 -#: ../src/iop/splittoning.c:103 ../src/iop/velvia.c:105 -#: ../src/iop/vibrance.c:95 ../src/iop/vignette.c:159 -#: ../src/iop/watermark.c:377 +#: ../src/iop/basicadj.c:173 ../src/iop/bilat.c:83 ../src/iop/bloom.c:81 +#: ../src/iop/blurs.c:93 ../src/iop/borders.c:323 ../src/iop/censorize.c:83 +#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:89 +#: ../src/iop/colorize.c:98 ../src/iop/colormapping.c:153 +#: ../src/iop/colorzones.c:146 ../src/iop/grain.c:450 ../src/iop/highpass.c:78 +#: ../src/iop/levels.c:140 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 +#: ../src/iop/lowpass.c:106 ../src/iop/monochrome.c:100 ../src/iop/soften.c:103 +#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:98 ../src/iop/vibrance.c:97 +#: ../src/iop/vignette.c:120 ../src/iop/watermark.c:422 msgid "creative" msgstr "kreatív" -#: ../src/iop/basicadj.c:150 ../src/iop/colorbalancergb.c:188 +#: ../src/iop/basicadj.c:176 ../src/iop/colorbalancergb.c:188 msgid "non-linear, RGB, scene-referred" msgstr "nemlineáris, RGB, látványvonatkozású" -#: ../src/iop/basicadj.c:593 +#: ../src/iop/basicadj.c:623 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -12794,39 +13310,39 @@ "ha jól van beállítva, levágja a gamut feketeközeli színeit\n" "az RGB érték negatívba tolásával" -#: ../src/iop/basicadj.c:601 ../src/iop/exposure.c:1118 +#: ../src/iop/basicadj.c:631 ../src/iop/exposure.c:1136 msgid "adjust the exposure correction" msgstr "expozíciókorrekció állítása" -#: ../src/iop/basicadj.c:605 +#: ../src/iop/basicadj.c:635 msgid "highlight compression adjustment" msgstr "csúcsfénykompresszió állítása" -#: ../src/iop/basicadj.c:609 ../src/iop/colisa.c:308 +#: ../src/iop/basicadj.c:639 ../src/iop/colisa.c:302 msgid "contrast adjustment" msgstr "kontraszt állítása" -#: ../src/iop/basicadj.c:617 +#: ../src/iop/basicadj.c:647 msgid "middle gray adjustment" msgstr "középszürke állítása" -#: ../src/iop/basicadj.c:622 ../src/iop/colisa.c:309 +#: ../src/iop/basicadj.c:652 ../src/iop/colisa.c:303 msgid "brightness adjustment" msgstr "fényerő állítása" -#: ../src/iop/basicadj.c:625 +#: ../src/iop/basicadj.c:655 msgid "saturation adjustment" msgstr "színtelítettség állítása" -#: ../src/iop/basicadj.c:628 +#: ../src/iop/basicadj.c:658 msgid "vibrance adjustment" msgstr "vibrancia állítása" -#: ../src/iop/basicadj.c:632 +#: ../src/iop/basicadj.c:662 msgid "apply auto exposure based on the entire image" msgstr "expozíció automatikus alkalmazása a teljes kép alapján" -#: ../src/iop/basicadj.c:639 +#: ../src/iop/basicadj.c:669 msgid "" "apply auto exposure based on a region defined by the user\n" "click and drag to draw the area\n" @@ -12837,51 +13353,51 @@ "kattintson és húzza a kijelölést\n" "jobb kattintással megszakíthatja" -#: ../src/iop/basicadj.c:647 +#: ../src/iop/basicadj.c:677 msgid "clip" msgstr "vágás" -#: ../src/iop/basicadj.c:649 +#: ../src/iop/basicadj.c:679 msgid "adjusts clipping value for auto exposure calculation" msgstr "beállítja a vágási értéket az automatikus expozíciószámításhoz" #. local contrast -#: ../src/iop/bilat.c:96 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:551 +#: ../src/iop/bilat.c:77 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:578 msgid "local contrast" msgstr "lokális kontraszt" -#: ../src/iop/bilat.c:101 +#: ../src/iop/bilat.c:82 msgid "manipulate local and global contrast separately" msgstr "lokális és globális kontraszt manipulálása külön" -#: ../src/iop/bilat.c:103 ../src/iop/bilat.c:105 ../src/iop/bloom.c:82 +#: ../src/iop/bilat.c:84 ../src/iop/bilat.c:86 ../src/iop/bloom.c:82 #: ../src/iop/bloom.c:84 ../src/iop/colisa.c:91 ../src/iop/colisa.c:93 -#: ../src/iop/colorcontrast.c:98 ../src/iop/colorcontrast.c:100 +#: ../src/iop/colorcontrast.c:90 ../src/iop/colorcontrast.c:92 #: ../src/iop/colorcorrection.c:78 ../src/iop/colorcorrection.c:80 -#: ../src/iop/colorize.c:108 ../src/iop/colormapping.c:156 -#: ../src/iop/colorreconstruction.c:138 ../src/iop/colorzones.c:148 -#: ../src/iop/defringe.c:85 ../src/iop/grain.c:435 ../src/iop/grain.c:437 -#: ../src/iop/levels.c:141 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 -#: ../src/iop/monochrome.c:101 ../src/iop/nlmeans.c:96 ../src/iop/nlmeans.c:98 -#: ../src/iop/shadhi.c:200 ../src/iop/tonecurve.c:214 ../src/iop/vibrance.c:98 +#: ../src/iop/colorize.c:101 ../src/iop/colormapping.c:156 +#: ../src/iop/colorreconstruction.c:123 ../src/iop/colorzones.c:149 +#: ../src/iop/defringe.c:85 ../src/iop/grain.c:451 ../src/iop/grain.c:453 +#: ../src/iop/levels.c:143 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 +#: ../src/iop/monochrome.c:103 ../src/iop/nlmeans.c:90 ../src/iop/nlmeans.c:92 +#: ../src/iop/shadhi.c:147 ../src/iop/tonecurve.c:187 ../src/iop/vibrance.c:100 msgid "non-linear, Lab, display-referred" msgstr "nemlináris, Lab, képernyővonatkozású" -#: ../src/iop/bilat.c:104 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 -#: ../src/iop/colorcontrast.c:99 ../src/iop/colorcorrection.c:79 -#: ../src/iop/colorize.c:107 ../src/iop/colormapping.c:155 -#: ../src/iop/colorreconstruction.c:137 ../src/iop/colorzones.c:147 -#: ../src/iop/defringe.c:84 ../src/iop/grain.c:436 ../src/iop/levels.c:140 -#: ../src/iop/monochrome.c:100 ../src/iop/nlmeans.c:97 ../src/iop/shadhi.c:199 -#: ../src/iop/tonecurve.c:213 ../src/iop/vibrance.c:97 +#: ../src/iop/bilat.c:85 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 +#: ../src/iop/colorcontrast.c:91 ../src/iop/colorcorrection.c:79 +#: ../src/iop/colorize.c:100 ../src/iop/colormapping.c:155 +#: ../src/iop/colorreconstruction.c:122 ../src/iop/colorzones.c:148 +#: ../src/iop/defringe.c:84 ../src/iop/grain.c:452 ../src/iop/levels.c:142 +#: ../src/iop/monochrome.c:102 ../src/iop/nlmeans.c:91 ../src/iop/shadhi.c:146 +#: ../src/iop/tonecurve.c:186 ../src/iop/vibrance.c:99 msgid "non-linear, Lab" msgstr "nemlináris, Lab" -#: ../src/iop/bilat.c:178 +#: ../src/iop/bilat.c:195 msgid "HDR local tone-mapping" msgstr "HDR helyi túnusleképezés" -#: ../src/iop/bilat.c:431 +#: ../src/iop/bilat.c:441 msgid "" "the filter used for local contrast enhancement. bilateral is faster but can " "lead to artifacts around edges for extreme settings." @@ -12889,31 +13405,31 @@ "ez a szűrő lokális kontraszt fokozásra való. a bilaterális szűrő gyorsabb, " "de szélsőséges beállításoknál fura éleket hoz létre." -#: ../src/iop/bilat.c:435 ../src/iop/globaltonemap.c:635 +#: ../src/iop/bilat.c:445 ../src/iop/globaltonemap.c:668 msgid "detail" msgstr "részletesség" -#: ../src/iop/bilat.c:438 +#: ../src/iop/bilat.c:448 msgid "changes the local contrast" msgstr "módosítja a lokális kontrasztot" -#: ../src/iop/bilat.c:453 +#: ../src/iop/bilat.c:463 msgid "feature size of local details (spatial sigma of bilateral filter)" msgstr "a helyi részletek mérete (a bilaterális szűrő térbeli szigmája)" -#: ../src/iop/bilat.c:461 +#: ../src/iop/bilat.c:471 msgid "L difference to detect edges (range sigma of bilateral filter)" msgstr "éldetektáló L-különbség (a bilaterális szűrő tartomány szigmája)" -#: ../src/iop/bilat.c:467 +#: ../src/iop/bilat.c:477 msgid "changes the local contrast of highlights" msgstr "módosítja a lokális kontraszt csúcsfényeit" -#: ../src/iop/bilat.c:473 +#: ../src/iop/bilat.c:483 msgid "changes the local contrast of shadows" msgstr "módosítja a lokális kontraszt árnyékait" -#: ../src/iop/bilat.c:479 +#: ../src/iop/bilat.c:489 msgid "" "defines what counts as mid-tones. lower for better dynamic range compression " "(reduce shadow and highlight contrast), increase for more powerful local " @@ -12923,7 +13439,7 @@ "összenyomja a dinamikatartományt (csökkenti az árnyékok és csúcsfények " "kontrasztját), magas érték erősebb helyi kontrasztot eredményez" -#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:396 +#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:423 msgid "surface blur" msgstr "felületi elmosódás" @@ -12931,24 +13447,24 @@ msgid "denoise (bilateral filter)" msgstr "zajszűrő (bilaterális)" -#: ../src/iop/bilateral.cc:99 +#: ../src/iop/bilateral.cc:101 msgid "apply edge-aware surface blur to denoise or smoothen textures" msgstr "" "él-tudatos felületi elmosódás alkalmazása textúrák zajszűrésre vagy " "lágyítására" -#: ../src/iop/bilateral.cc:102 ../src/iop/blurs.c:93 -#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:729 -#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/soften.c:103 -#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:107 +#: ../src/iop/bilateral.cc:104 ../src/iop/blurs.c:93 +#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:781 +#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/primaries.c:82 +#: ../src/iop/soften.c:105 ../src/iop/splittoning.c:107 ../src/iop/velvia.c:100 msgid "linear, RGB" msgstr "lineáris, RGB" -#: ../src/iop/bilateral.cc:136 +#: ../src/iop/bilateral.cc:138 msgid "image too large" msgstr "túl nagy kép" -#: ../src/iop/bilateral.cc:137 +#: ../src/iop/bilateral.cc:139 msgid "" "this module is unable to process\n" "images with more than 2 gigapixels.\n" @@ -12958,19 +13474,19 @@ "nagyobb képeket feldolgozni.\n" "a feldolgozás kihagyva." -#: ../src/iop/bilateral.cc:351 +#: ../src/iop/bilateral.cc:353 msgid "spatial extent of the gaussian" msgstr "gauss-szűrő térbeli kiterjedése" -#: ../src/iop/bilateral.cc:355 +#: ../src/iop/bilateral.cc:357 msgid "how much to blur red" msgstr "vörös elmosásának mértéke" -#: ../src/iop/bilateral.cc:360 +#: ../src/iop/bilateral.cc:362 msgid "how much to blur green" msgstr "zöld elmosásának mértéke" -#: ../src/iop/bilateral.cc:365 +#: ../src/iop/bilateral.cc:367 msgid "how much to blur blue" msgstr "kék elmosásának mértéke" @@ -12978,20 +13494,20 @@ msgid "apply Orton effect for a dreamy aetherical look" msgstr "Orton-effektust alkalmaz álomszerű, éteri kinézet eléréséhez" -#: ../src/iop/bloom.c:368 ../src/iop/soften.c:369 ../src/libs/camera.c:567 -#: ../src/libs/masks.c:105 +#: ../src/iop/bloom.c:364 ../src/iop/soften.c:364 ../src/libs/camera.c:567 +#: ../src/libs/masks.c:106 msgid "size" msgstr "méret" -#: ../src/iop/bloom.c:370 +#: ../src/iop/bloom.c:366 msgid "the size of bloom" msgstr "bloom hatás mérete" -#: ../src/iop/bloom.c:374 +#: ../src/iop/bloom.c:370 msgid "the threshold of light" msgstr "fény küszöbszintje" -#: ../src/iop/bloom.c:378 +#: ../src/iop/bloom.c:374 msgid "the strength of bloom" msgstr "bloom hatás erőssége" @@ -13008,266 +13524,275 @@ msgid "simulate physically-accurate lens and motion blurs" msgstr "fizikailag pontos lencse és bemozdulásos elmosódást szimulál" -#: ../src/iop/borders.c:187 +#: ../src/iop/borders.c:312 msgid "framing" msgstr "keretezés" -#: ../src/iop/borders.c:192 +#: ../src/iop/borders.c:317 msgid "borders|enlarge canvas|expand canvas" msgstr "keretek|vászon nagyítása|vászon kibővítése" -#: ../src/iop/borders.c:197 +#: ../src/iop/borders.c:322 msgid "add solid borders or margins around the picture" msgstr "tömör kereték és margók készítése a kép köré" -#: ../src/iop/borders.c:199 ../src/iop/borders.c:201 ../src/iop/lut3d.c:144 +#: ../src/iop/borders.c:324 ../src/iop/borders.c:326 ../src/iop/lut3d.c:145 msgid "linear or non-linear, RGB, display-referred" msgstr "lineáris, vagy nemlineáris, RGB, képernyővonatkozású" -#: ../src/iop/borders.c:727 +#: ../src/iop/borders.c:737 msgid "15:10 postcard white" msgstr "15:10 képeslap fehér" -#: ../src/iop/borders.c:732 +#: ../src/iop/borders.c:742 msgid "15:10 postcard black" msgstr "15:10 képeslap fekete" -#: ../src/iop/borders.c:942 -msgid "size of the border in percent of the full image" -msgstr "a szegély mérete százalékban, a teljes képhez viszonyítva" +#: ../src/iop/borders.c:948 +msgid "which dimension to use for the size calculation" +msgstr "a méret számításához melyik dimenzióját használja" + +#: ../src/iop/borders.c:954 +msgid "size of the border in percent of the chosen basis" +msgstr "a szegély mérete a kiválasztott alap százalékában" -#: ../src/iop/borders.c:944 ../src/iop/clipping.c:2218 ../src/iop/crop.c:1224 +#: ../src/iop/borders.c:956 ../src/iop/clipping.c:2271 ../src/iop/crop.c:1208 msgid "aspect" msgstr "oldalarány" -#: ../src/iop/borders.c:945 +#: ../src/iop/borders.c:957 msgid "" -"select the aspect ratio (right click on slider below to type your own w:h)" +"select the aspect ratio\n" +"(right click on slider below to type your own w:h)" msgstr "" -"válasszon oldalarányt (a csúszkára jobb gombbal kattintva is megadhatja sz:m " -"formában)" +"válasszon oldalarányt\n" +"(a csúszkára jobb gombbal kattintva is megadhatja sz:m formában)" -#: ../src/iop/borders.c:948 +#: ../src/iop/borders.c:961 msgid "3:1" msgstr "3:1" -#: ../src/iop/borders.c:949 +#: ../src/iop/borders.c:962 msgid "95:33" msgstr "95:33" -#: ../src/iop/borders.c:950 +#: ../src/iop/borders.c:963 msgid "CinemaScope 2.39:1" msgstr "CinemaScope 2.39:1" -#: ../src/iop/borders.c:951 +#: ../src/iop/borders.c:964 msgid "2:1" msgstr "2:1" -#: ../src/iop/borders.c:952 +#: ../src/iop/borders.c:965 msgid "16:9" msgstr "16:9" -#: ../src/iop/borders.c:953 +#: ../src/iop/borders.c:966 msgid "5:3" msgstr "5:3" -#: ../src/iop/borders.c:954 +#: ../src/iop/borders.c:967 msgid "US Legal 8.5x14" msgstr "US Legal 8.5x14" -#: ../src/iop/borders.c:955 ../src/iop/clipping.c:2131 ../src/iop/crop.c:1128 +#: ../src/iop/borders.c:968 ../src/iop/clipping.c:2184 ../src/iop/crop.c:1112 msgid "golden cut" msgstr "aranymetszés" -#: ../src/iop/borders.c:956 +#: ../src/iop/borders.c:969 msgid "16:10" msgstr "16:10" -#: ../src/iop/borders.c:957 +#: ../src/iop/borders.c:970 msgid "3:2 (4x6, 10x15cm)" msgstr "3:2 (4x6, 10x15cm)" -#: ../src/iop/borders.c:959 +#: ../src/iop/borders.c:972 msgid "DIN" msgstr "DIN" -#: ../src/iop/borders.c:960 +#: ../src/iop/borders.c:973 msgid "7:5" msgstr "7:5" -#: ../src/iop/borders.c:961 +#: ../src/iop/borders.c:974 msgid "4:3" msgstr "4:3" -#: ../src/iop/borders.c:962 +#: ../src/iop/borders.c:975 msgid "US Letter 8.5x11" msgstr "US Letter 8.5x11" -#: ../src/iop/borders.c:963 +#: ../src/iop/borders.c:976 msgid "14:11" msgstr "14:11" -#: ../src/iop/borders.c:964 +#: ../src/iop/borders.c:977 msgid "5:4 (8x10)" msgstr "5:4 (8x10)" -#: ../src/iop/borders.c:965 ../src/iop/clipping.c:2121 ../src/iop/crop.c:1118 -#: ../src/libs/filtering.c:301 ../src/libs/filters/ratio.c:126 -#: ../src/libs/histogram.c:141 +#: ../src/iop/borders.c:978 ../src/iop/clipping.c:2174 ../src/iop/crop.c:1102 +#: ../src/libs/filtering.c:307 ../src/libs/filters/ratio.c:126 +#: ../src/libs/histogram.c:118 msgid "square" msgstr "négyzetes" -#: ../src/iop/borders.c:966 +#: ../src/iop/borders.c:979 msgid "constant border" msgstr "egyenlő szegély" -#: ../src/iop/borders.c:967 ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:980 ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "custom..." msgstr "egyéni…" -#: ../src/iop/borders.c:972 -msgid "set the custom aspect ratio (right click to enter number or w:h)" -msgstr "adjon meg egyéni oldalarányt (jobb klikkel megadhatja sz:m formában)" +#: ../src/iop/borders.c:984 +msgid "" +"set the custom aspect ratio\n" +"(right click to enter number or w:h)" +msgstr "" +"adjon meg egyéni oldalarányt\n" +"(jobb klikkel megadhatja sz:m formában)" -#: ../src/iop/borders.c:975 +#: ../src/iop/borders.c:989 msgid "aspect ratio orientation of the image with border" msgstr "a keretezett kép oldalarányának tájolása" -#: ../src/iop/borders.c:977 +#: ../src/iop/borders.c:991 msgid "horizontal position" msgstr "vízszintes pozíció" -#: ../src/iop/borders.c:978 +#: ../src/iop/borders.c:992 msgid "" -"select the horizontal position ratio relative to top or right click and type " -"your own (y:h)" +"select the horizontal position ratio relative to top\n" +"(right click on slider below to type your own x:w)" msgstr "" -"a vízszintes pozíció kiválasztása a tetejéhez viszonyítva, vagy megadható " -"jobb kattintás után kézzel (y:m)" +"válassza ki kép bal oldalától mért vízszintes elhelyezés arány\n" +"(jobb kattintással a csúszkán megadhatja x:sz formában)" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "center" msgstr "központ" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "1/3" msgstr "1/3" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "3/8" msgstr "3/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "5/8" msgstr "5/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "2/3" msgstr "2/3" -#: ../src/iop/borders.c:986 +#: ../src/iop/borders.c:1000 msgid "custom horizontal position" msgstr "egyéni vízszintes pozíció" -#: ../src/iop/borders.c:988 +#: ../src/iop/borders.c:1002 msgid "vertical position" msgstr "függőleges pozíció" -#: ../src/iop/borders.c:989 +#: ../src/iop/borders.c:1003 msgid "" -"select the vertical position ratio relative to left or right click and type " -"your own (x:w)" +"select the vertical position ratio relative to left\n" +"(right click on slider below to type your own y:h)" msgstr "" -"a függőleges pozíció kiválasztása a bal szélhez viszonyítva, vagy megadható " -"jobb kattintás után kézzel (x:sz)" +"válassza ki kép tetejétől mért függőleges elhelyezés arány\n" +"(jobb kattintással a csúszkán megadhatja y:m formában)" -#: ../src/iop/borders.c:997 +#: ../src/iop/borders.c:1011 msgid "custom vertical position" msgstr "egyéni függőleges pozíció" -#: ../src/iop/borders.c:1002 +#: ../src/iop/borders.c:1017 msgid "size of the frame line in percent of min border width" msgstr "a keret vonal mérete a legkisebb szegélyvastagság arányában" -#: ../src/iop/borders.c:1007 +#: ../src/iop/borders.c:1023 msgid "offset of the frame line beginning on picture side" msgstr "a keret vonal eltolása a kép szélétől" -#: ../src/iop/borders.c:1014 ../src/iop/borders.c:1023 +#: ../src/iop/borders.c:1033 ../src/iop/borders.c:1044 msgid "border color" msgstr "szegélyszín" -#: ../src/iop/borders.c:1018 +#: ../src/iop/borders.c:1037 msgid "select border color" msgstr "szegélyszín kiválasztása" -#: ../src/iop/borders.c:1022 +#: ../src/iop/borders.c:1043 msgid "pick border color from image" msgstr "szegélyszín mintavétel a képről" -#: ../src/iop/borders.c:1023 ../src/iop/borders.c:1036 -#: ../src/iop/colorzones.c:2415 ../src/iop/colorzones.c:2425 -#: ../src/iop/negadoctor.c:848 ../src/iop/negadoctor.c:915 -#: ../src/iop/negadoctor.c:953 ../src/iop/rgbcurve.c:1369 -#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1026 -#: ../src/iop/rgblevels.c:1032 ../src/iop/rgblevels.c:1038 +#: ../src/iop/borders.c:1044 ../src/iop/borders.c:1061 +#: ../src/iop/colorzones.c:2662 ../src/iop/colorzones.c:2677 +#: ../src/iop/negadoctor.c:867 ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:972 ../src/iop/rgbcurve.c:1369 +#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1075 +#: ../src/iop/rgblevels.c:1083 ../src/iop/rgblevels.c:1091 msgid "pickers" msgstr "mintavevők" -#: ../src/iop/borders.c:1027 ../src/iop/borders.c:1036 +#: ../src/iop/borders.c:1049 ../src/iop/borders.c:1061 msgid "frame line color" msgstr "keret vonalszíne" -#: ../src/iop/borders.c:1031 +#: ../src/iop/borders.c:1054 msgid "select frame line color" msgstr "keret vonalszínének kiválasztása" -#: ../src/iop/borders.c:1035 +#: ../src/iop/borders.c:1060 msgid "pick frame line color from image" msgstr "keretszín mintavétele a képről" #. make sure you put all your translatable strings into _() ! -#: ../src/iop/cacorrect.c:72 +#: ../src/iop/cacorrect.c:78 msgid "raw chromatic aberrations" msgstr "raw kromatikus aberráció" -#: ../src/iop/cacorrect.c:77 +#: ../src/iop/cacorrect.c:83 msgid "correct chromatic aberrations for Bayer sensors" msgstr "kromatikus aberráció korrigálása Bayer szenzorokhoz" -#: ../src/iop/cacorrect.c:79 ../src/iop/cacorrect.c:81 +#: ../src/iop/cacorrect.c:85 ../src/iop/cacorrect.c:87 #: ../src/iop/cacorrectrgb.c:171 ../src/iop/cacorrectrgb.c:173 #: ../src/iop/demosaic.c:294 ../src/iop/highlights.c:180 -#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:74 -#: ../src/iop/hotpixels.c:76 ../src/iop/rawdenoise.c:131 -#: ../src/iop/rawdenoise.c:133 ../src/iop/rawprepare.c:159 -#: ../src/iop/rawprepare.c:161 ../src/iop/temperature.c:213 -#: ../src/iop/temperature.c:215 +#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:76 +#: ../src/iop/hotpixels.c:78 ../src/iop/rawdenoise.c:145 +#: ../src/iop/rawdenoise.c:147 ../src/iop/rawprepare.c:175 +#: ../src/iop/rawprepare.c:177 ../src/iop/temperature.c:221 +#: ../src/iop/temperature.c:223 msgid "linear, raw, scene-referred" msgstr "lineáris, raw, látványvonatkozású" -#: ../src/iop/cacorrect.c:80 ../src/iop/cacorrectrgb.c:172 -#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:121 -#: ../src/iop/rawdenoise.c:132 ../src/iop/rawprepare.c:160 -#: ../src/iop/temperature.c:214 +#: ../src/iop/cacorrect.c:86 ../src/iop/cacorrectrgb.c:172 +#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:138 +#: ../src/iop/rawdenoise.c:146 ../src/iop/rawprepare.c:176 +#: ../src/iop/temperature.c:222 msgid "linear, raw" msgstr "lineáris, raw" -#: ../src/iop/cacorrect.c:1405 +#: ../src/iop/cacorrect.c:1424 msgid "iteration runs, default is twice" msgstr "futtatási iterációk száma, alapértelmezetten kétszer" -#: ../src/iop/cacorrect.c:1408 +#: ../src/iop/cacorrect.c:1427 msgid "activate colorshift correction for blue & red channels" msgstr "a kék és vörös csatornák színeltolódásának korrigálása" -#: ../src/iop/cacorrect.c:1415 +#: ../src/iop/cacorrect.c:1434 msgid "" "automatic chromatic aberration correction\n" -"only for Bayer raw files" +"only for Bayer raw files with 3 color channels" msgstr "" -"kromatikus aberráció automatikus javítása\n" -"csak raw Bayer fájlokhoz" +"kromatikus aberráció automatikus korrigálása\n" +"csak három színcsatornás Bayer raw fájloknál" #: ../src/iop/cacorrectrgb.c:164 ../src/iop/defringe.c:76 msgid "chromatic aberrations" @@ -13277,7 +13802,7 @@ msgid "correct chromatic aberrations" msgstr "kromatikus aberráció korrigálása" -#: ../src/iop/cacorrectrgb.c:743 +#: ../src/iop/cacorrectrgb.c:745 msgid "" "channel used as a reference to\n" "correct the other channels.\n" @@ -13293,11 +13818,11 @@ "próbálja meg váltani a csatornát,\n" "ha elváltozásokat tapasztal." -#: ../src/iop/cacorrectrgb.c:750 +#: ../src/iop/cacorrectrgb.c:752 msgid "increase for stronger correction" msgstr "az erősebb korrigáláshoz növelje" -#: ../src/iop/cacorrectrgb.c:752 +#: ../src/iop/cacorrectrgb.c:754 msgid "" "balance between smoothing colors\n" "and preserving them.\n" @@ -13308,12 +13833,12 @@ "magasabb érték túllőhet a célon\n" "és az éleken vérzést okozhat." -#: ../src/iop/cacorrectrgb.c:757 +#: ../src/iop/cacorrectrgb.c:759 msgctxt "section" msgid "advanced parameters" msgstr "speciális paraméterek" -#: ../src/iop/cacorrectrgb.c:759 +#: ../src/iop/cacorrectrgb.c:761 msgid "" "correction mode to use.\n" "can help with multiple\n" @@ -13329,7 +13854,7 @@ "a sötétítés csak a kék színhibák\n" "korrigálásában különösen hatékony." -#: ../src/iop/cacorrectrgb.c:767 +#: ../src/iop/cacorrectrgb.c:769 msgid "" "runs an iterative approach\n" "with several radii.\n" @@ -13363,35 +13888,35 @@ msgid "special, RGB, scene-referred" msgstr "speciális, RGB, látványvonatkozású" -#: ../src/iop/censorize.c:412 +#: ../src/iop/censorize.c:404 msgid "radius_1" msgstr "rádisz_1" -#: ../src/iop/censorize.c:414 +#: ../src/iop/censorize.c:406 msgid "pixelate" msgstr "pixelezés" -#: ../src/iop/censorize.c:416 +#: ../src/iop/censorize.c:408 msgid "radius_2" msgstr "ráiusz_2" -#: ../src/iop/censorize.c:418 +#: ../src/iop/censorize.c:410 msgid "noise" msgstr "zaj" -#: ../src/iop/censorize.c:420 +#: ../src/iop/censorize.c:412 msgid "radius of gaussian blur before pixellation" msgstr "a pixelezés előtti gauss-elmosás sugara" -#: ../src/iop/censorize.c:421 +#: ../src/iop/censorize.c:413 msgid "radius of gaussian blur after pixellation" msgstr "a pixelezés utáni gauss-elmosás sugara" -#: ../src/iop/censorize.c:422 +#: ../src/iop/censorize.c:414 msgid "radius of the intermediate pixellation" msgstr "a közbülső kikockázás sugara" -#: ../src/iop/censorize.c:423 +#: ../src/iop/censorize.c:415 msgid "amount of noise to add at the end" msgstr "az utolsó lépésként hozzáadandó zaj mennyisége" @@ -13404,7 +13929,7 @@ "this module is deprecated. please use the color calibration module instead." msgstr "az a modul elavult. kérem, használja helyette a színkalibráció modult." -#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:229 +#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:230 msgid "" "perform color space corrections\n" "such as white balance, channels mixing\n" @@ -13414,169 +13939,169 @@ "úgy mint fehéregyensúly, csatornakeverés\n" "és konvertálás monokróm film emulációra" -#: ../src/iop/channelmixer.c:614 +#: ../src/iop/channelmixer.c:633 msgid "destination" msgstr "cél" -#: ../src/iop/channelmixer.c:621 +#: ../src/iop/channelmixer.c:640 msgctxt "channelmixer" msgid "gray" msgstr "szürke" -#: ../src/iop/channelmixer.c:627 +#: ../src/iop/channelmixer.c:646 msgid "amount of red channel in the output channel" msgstr "a vörös csatorna mennyisége a kimeneti csatornán" -#: ../src/iop/channelmixer.c:633 +#: ../src/iop/channelmixer.c:652 msgid "amount of green channel in the output channel" msgstr "a zöld csatorna mennyisége a kimeneti csatornán" -#: ../src/iop/channelmixer.c:639 +#: ../src/iop/channelmixer.c:658 msgid "amount of blue channel in the output channel" msgstr "a kék csatorna mennyisége a kimeneti csatornán" -#: ../src/iop/channelmixer.c:655 ../src/iop/channelmixerrgb.c:524 +#: ../src/iop/channelmixer.c:674 ../src/iop/channelmixerrgb.c:588 msgid "swap R and B" msgstr "R és B felcserélése" -#: ../src/iop/channelmixer.c:661 ../src/iop/channelmixerrgb.c:498 +#: ../src/iop/channelmixer.c:680 ../src/iop/channelmixerrgb.c:562 msgid "swap G and B" msgstr "G és B felcserélése" -#: ../src/iop/channelmixer.c:667 +#: ../src/iop/channelmixer.c:686 msgid "color contrast boost" msgstr "színkontraszt erősítés" -#: ../src/iop/channelmixer.c:673 +#: ../src/iop/channelmixer.c:692 msgid "color details boost" msgstr "színrészletesség erősítés" -#: ../src/iop/channelmixer.c:679 +#: ../src/iop/channelmixer.c:698 msgid "color artifacts boost" msgstr "színes tárgyak erősítése" -#: ../src/iop/channelmixer.c:685 +#: ../src/iop/channelmixer.c:704 msgid "B/W luminance-based" msgstr "fekete-fehér fénysűrűség alapú" -#: ../src/iop/channelmixer.c:691 +#: ../src/iop/channelmixer.c:710 msgid "B/W artifacts boost" msgstr "fekete-fehér, tárgyak erősítése" -#: ../src/iop/channelmixer.c:697 +#: ../src/iop/channelmixer.c:716 msgid "B/W smooth skin" msgstr "fekete-fehér, lágy bőr" -#: ../src/iop/channelmixer.c:703 +#: ../src/iop/channelmixer.c:722 msgid "B/W blue artifacts reduce" msgstr "fekete-fehér, kék tárgyak visszavétele" -#: ../src/iop/channelmixer.c:710 +#: ../src/iop/channelmixer.c:729 msgid "B/W Ilford Delta 100-400" msgstr "fekete-fehér Ilford Delta 100-400" -#: ../src/iop/channelmixer.c:717 +#: ../src/iop/channelmixer.c:736 msgid "B/W Ilford Delta 3200" msgstr "fekete-fehér Ilford Delta 3200" -#: ../src/iop/channelmixer.c:724 +#: ../src/iop/channelmixer.c:743 msgid "B/W Ilford FP4" msgstr "fekete-fehér Ilford FP4" -#: ../src/iop/channelmixer.c:731 +#: ../src/iop/channelmixer.c:750 msgid "B/W Ilford HP5" msgstr "fekete-fehér Ilford HP5" -#: ../src/iop/channelmixer.c:738 +#: ../src/iop/channelmixer.c:757 msgid "B/W Ilford SFX" msgstr "fekete-fehér Ilford SFX" -#: ../src/iop/channelmixer.c:745 +#: ../src/iop/channelmixer.c:764 msgid "B/W Kodak T-Max 100" msgstr "fekete-fehér Kodak T-Max 100" -#: ../src/iop/channelmixer.c:752 +#: ../src/iop/channelmixer.c:771 msgid "B/W Kodak T-max 400" msgstr "fekete-fehér Kodak T-max 400" -#: ../src/iop/channelmixer.c:759 +#: ../src/iop/channelmixer.c:778 msgid "B/W Kodak Tri-X 400" msgstr "fekete-fehér Kodak Tri-X 400" -#: ../src/iop/channelmixerrgb.c:219 +#: ../src/iop/channelmixerrgb.c:220 msgid "color calibration" msgstr "színkalibráció" -#: ../src/iop/channelmixerrgb.c:224 +#: ../src/iop/channelmixerrgb.c:225 msgid "channel mixer|white balance|monochrome" msgstr "" "csatornakeverő|fehéregyensúly|monokróm|channel mixer|white balance|monochrome" -#: ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:235 msgid "linear, RGB or XYZ" msgstr "lineáris, RGB vagy XYZ" -#: ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:460 msgid "B&W: luminance-based" msgstr "B&W: fénysűrűség alapú" -#: ../src/iop/channelmixerrgb.c:431 +#: ../src/iop/channelmixerrgb.c:495 msgid "B&W: ILFORD HP5+" msgstr "B&W: ILFORD HP5+" -#: ../src/iop/channelmixerrgb.c:440 +#: ../src/iop/channelmixerrgb.c:504 msgid "B&W: ILFORD DELTA 100" msgstr "B&W: ILFORD DELTA 100" -#: ../src/iop/channelmixerrgb.c:450 +#: ../src/iop/channelmixerrgb.c:514 msgid "B&W: ILFORD DELTA 400 - 3200" msgstr "B&W: ILFORD DELTA 400 – 3200" -#: ../src/iop/channelmixerrgb.c:459 +#: ../src/iop/channelmixerrgb.c:523 msgid "B&W: ILFORD FP4+" msgstr "B&W: ILFORD FP4+" -#: ../src/iop/channelmixerrgb.c:468 +#: ../src/iop/channelmixerrgb.c:532 msgid "B&W: Fuji Acros 100" msgstr "B&W: Fuji Acros 100" -#: ../src/iop/channelmixerrgb.c:485 +#: ../src/iop/channelmixerrgb.c:549 msgid "basic channel mixer" msgstr "basic channel mixer" -#: ../src/iop/channelmixerrgb.c:511 +#: ../src/iop/channelmixerrgb.c:575 msgid "swap G and R" msgstr "G és R felcserélése" -#: ../src/iop/channelmixerrgb.c:1869 +#: ../src/iop/channelmixerrgb.c:1926 msgid "(daylight)" msgstr "(nappali fény)" -#: ../src/iop/channelmixerrgb.c:1871 +#: ../src/iop/channelmixerrgb.c:1928 msgid "(black body)" msgstr "(feketetest)" -#: ../src/iop/channelmixerrgb.c:1873 +#: ../src/iop/channelmixerrgb.c:1930 msgid "(invalid)" msgstr "(érvénytelen)" -#: ../src/iop/channelmixerrgb.c:1877 ../src/iop/channelmixerrgb.c:1935 +#: ../src/iop/channelmixerrgb.c:1934 ../src/iop/channelmixerrgb.c:1992 msgid "very good" msgstr "nagyon jó" -#: ../src/iop/channelmixerrgb.c:1879 ../src/iop/channelmixerrgb.c:1937 +#: ../src/iop/channelmixerrgb.c:1936 ../src/iop/channelmixerrgb.c:1994 msgid "good" msgstr "jó" -#: ../src/iop/channelmixerrgb.c:1881 ../src/iop/channelmixerrgb.c:1939 +#: ../src/iop/channelmixerrgb.c:1938 ../src/iop/channelmixerrgb.c:1996 msgid "passable" msgstr "elfogadható" -#: ../src/iop/channelmixerrgb.c:1883 ../src/iop/channelmixerrgb.c:1941 +#: ../src/iop/channelmixerrgb.c:1940 ../src/iop/channelmixerrgb.c:1998 msgid "bad" msgstr "rossz" -#: ../src/iop/channelmixerrgb.c:1890 +#: ../src/iop/channelmixerrgb.c:1947 #, c-format msgid "" "\n" @@ -13613,7 +14138,7 @@ "expozíciókompenzáció: \t%+.2f EV\n" "feketeeltolás: \t%+.4f" -#: ../src/iop/channelmixerrgb.c:1946 +#: ../src/iop/channelmixerrgb.c:2003 #, c-format msgid "" "\n" @@ -13632,27 +14157,43 @@ "expozíciókompenzáció: \t%+.2f EV\n" "feketeeltolás: \t%+.4f" -#: ../src/iop/channelmixerrgb.c:1978 +#: ../src/iop/channelmixerrgb.c:2054 msgid "double CAT applied" msgstr "dupla CAT alkalmazva" -#: ../src/iop/channelmixerrgb.c:1979 +#: ../src/iop/channelmixerrgb.c:2055 msgid "" "you have 2 instances or more of color calibration,\n" -"all performing chromatic adaptation.\n" -"this can lead to inconsistencies, unless you\n" +"all providing chromatic adaptation.\n" +"this can lead to inconsistencies unless you\n" "use them with masks or know what you are doing." msgstr "" -"a színkalibrációból 2, vagy több példány van,\n" -"és mindegyik kromatikus átdolgozást hajt végre.\n" +"a színkalibrációból 2 vagy több példány van bekapcsolva,\n" +"és mindegyik kromatikus adaptálást végez.\n" "ez inkonzisztenciához vezethet, amennyiben maszkok\n" "nélkül használja, vagy nincs tisztában azzal, amit csinál." -#: ../src/iop/channelmixerrgb.c:1991 +#: ../src/iop/channelmixerrgb.c:2071 +msgid "white balance applied twice" +msgstr "fehéregyensúly kétszer alkalmazva" + +#: ../src/iop/channelmixerrgb.c:2072 +msgid "" +"the color calibration module is enabled and already provides\n" +"chromatic adaptation.\n" +"set the white balance here to camera reference (D65)\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"a színkalibráció modul engedélyezve van\n" +"és ugyancsak kromatikus adaptálást végez.\n" +"állítsa a fehéregyensúlyt itt fényképező referenciára (D65),\n" +"vagy tiltsa le a kromatikus átdolgozást a színkalibráció modulban." + +#: ../src/iop/channelmixerrgb.c:2080 msgid "white balance module error" msgstr "fehéregyensúly modul hiba" -#: ../src/iop/channelmixerrgb.c:1992 +#: ../src/iop/channelmixerrgb.c:2081 msgid "" "the white balance module is not using the camera\n" "reference illuminant, which will cause issues here\n" @@ -13662,22 +14203,50 @@ "a fehéregyensúly modul nem használja a fényképező\n" "referencia fényforrását, ami problémát fog okozni\n" "a kromatikus adaptálásnál. vagy állítsa be referenciának,\n" -"vagy tiltsa le itt a kromatikus adaptálást." +"vagy tiltsa le itt a kromatikus átdolgozást." -#: ../src/iop/channelmixerrgb.c:2083 +#: ../src/iop/channelmixerrgb.c:2095 ../src/iop/channelmixerrgb.c:2104 +msgid "white balance missing" +msgstr "fehéregyensúly hiányzik" + +#: ../src/iop/channelmixerrgb.c:2096 +msgid "" +"this module is not providing a valid reference illuminant\n" +"causing chromatic adaptation issues in color calibration.\n" +"enable this module and either set it to reference\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"ez a modul nem biztosít érvényes referencia megvilágítást,\n" +"ezzel kromatikus adaptálási problémákat okozva a színkalibrációban.\n" +"engedélyezze ezt a modult, és állítsa be referenciaként\n" +"vagy tiltsa le a kromatikus átdolgozást a színkalibrációban." + +#: ../src/iop/channelmixerrgb.c:2105 +msgid "" +"the white balance module is not providing a valid reference\n" +"illuminant causing issues with chromatic adaptation here.\n" +"enable white balance and either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" +"a fehéregyensúly modul nem biztosít érvényes referencia megvilágítást,\n" +"ezzel gondot okozva itt a kromatikus adaptálásban.\n" +"engedélyezze a fehéregyensúly modult, és állítsa be referenciaként\n" +"vagy tiltsa le itt a kromatikus átdolgozást." + +#: ../src/iop/channelmixerrgb.c:2196 msgid "auto-detection of white balance completed" msgstr "fehéregyensúly automatikus detektálása elkészült" -#: ../src/iop/channelmixerrgb.c:2236 +#: ../src/iop/channelmixerrgb.c:2346 msgid "channelmixerrgb works only on RGB input" msgstr "a csatornakeverő csak RGB bemeneten működik" -#: ../src/iop/channelmixerrgb.c:3621 +#: ../src/iop/channelmixerrgb.c:3692 #, c-format msgid "CCT: %.0f K (daylight)" msgstr "CCT: %.0f K (napfény)" -#: ../src/iop/channelmixerrgb.c:3624 +#: ../src/iop/channelmixerrgb.c:3695 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a daylight spectrum,\n" @@ -13687,12 +14256,12 @@ "ez a fényforrás pontosan modellezhető a napfény spektrummal,\n" "így a hőmérséklete releváns és sokatmondó a D-fényforrással." -#: ../src/iop/channelmixerrgb.c:3630 +#: ../src/iop/channelmixerrgb.c:3701 #, c-format msgid "CCT: %.0f K (black body)" msgstr "CCT: %.0f K (feketetest)" -#: ../src/iop/channelmixerrgb.c:3633 +#: ../src/iop/channelmixerrgb.c:3704 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a black body spectrum,\n" @@ -13702,12 +14271,12 @@ "ez a fényforrás pontosan modellezhető egy feketetest spektrumával,\n" "így a hőmérséklete releváns és sokatmondó a Plank-féle fényforrással." -#: ../src/iop/channelmixerrgb.c:3639 +#: ../src/iop/channelmixerrgb.c:3710 #, c-format msgid "CCT: %.0f K (invalid)" msgstr "CCT: %.0f K (érvénytelen)" -#: ../src/iop/channelmixerrgb.c:3642 +#: ../src/iop/channelmixerrgb.c:3713 msgid "" "approximated correlated color temperature.\n" "this illuminant cannot be accurately modeled by a daylight or black body " @@ -13720,12 +14289,12 @@ "spektrumával,\n" "így a hőmérséklete nem releváns, ezért saját fényforrást kell használnia." -#: ../src/iop/channelmixerrgb.c:3651 +#: ../src/iop/channelmixerrgb.c:3722 #, c-format msgid "CCT: undefined" msgstr "CCT: nincs megadva" -#: ../src/iop/channelmixerrgb.c:3654 +#: ../src/iop/channelmixerrgb.c:3725 msgid "" "the approximated correlated color temperature\n" "cannot be computed at all so you need to use a custom illuminant." @@ -13733,16 +14302,16 @@ "közelített korrelált színhőmérséklet.\n" "sehogy nem számolható, ezért saját fényforrást kell használnia." -#: ../src/iop/channelmixerrgb.c:3967 +#: ../src/iop/channelmixerrgb.c:4038 msgid "white balance successfully extracted from raw image" msgstr "a fehéregyensúly sikeresen ki lett nyerve a raw képből" #. We need to recompute only the full preview -#: ../src/iop/channelmixerrgb.c:3973 +#: ../src/iop/channelmixerrgb.c:4044 msgid "auto-detection of white balance started…" msgstr "fehéregyensúly automatikus detektálása elkezdődött…" -#: ../src/iop/channelmixerrgb.c:4078 +#: ../src/iop/channelmixerrgb.c:4149 msgid "" "color calibration: the sum of the gray channel parameters is zero, " "normalization will be disabled." @@ -13751,7 +14320,7 @@ "normalizálás le lesz tiltva." #. Write report in GUI -#: ../src/iop/channelmixerrgb.c:4126 +#: ../src/iop/channelmixerrgb.c:4194 #, c-format msgid "" "L: \t%.1f %%\n" @@ -13762,27 +14331,27 @@ "h: \t%.1f °\n" "c: \t%.1f" -#: ../src/iop/channelmixerrgb.c:4394 ../src/iop/clipping.c:2087 -#: ../src/iop/colorbalancergb.c:1873 ../src/iop/filmicrgb.c:4419 -#: ../src/iop/negadoctor.c:829 ../src/iop/toneequal.c:3319 -#: ../src/libs/image.c:460 ../src/views/lighttable.c:1258 +#: ../src/iop/channelmixerrgb.c:4462 ../src/iop/clipping.c:2140 +#: ../src/iop/colorbalancergb.c:1944 ../src/iop/filmicrgb.c:4483 +#: ../src/iop/negadoctor.c:848 ../src/iop/toneequal.c:3372 +#: ../src/libs/image.c:490 ../src/views/lighttable.c:1258 msgid "page" msgstr "oldalbeállítások" #. Page CAT -#: ../src/iop/channelmixerrgb.c:4397 +#: ../src/iop/channelmixerrgb.c:4465 msgid "CAT" msgstr "CAT" -#: ../src/iop/channelmixerrgb.c:4398 +#: ../src/iop/channelmixerrgb.c:4466 msgid "chromatic adaptation transform" msgstr "kromatikus adaptálási transzformáció" -#: ../src/iop/channelmixerrgb.c:4400 +#: ../src/iop/channelmixerrgb.c:4468 msgid "adaptation" msgstr "adaptálás" -#: ../src/iop/channelmixerrgb.c:4403 +#: ../src/iop/channelmixerrgb.c:4471 msgid "" "choose the method to adapt the illuminant\n" "and the colorspace in which the module works: \n" @@ -13802,7 +14371,7 @@ "• az XYZ egy egyszerű skálázás a XYZ térben. Általában nem javasolt.\n" "• a „nincs” letiltja az adaptációt és RGB-ben működő feldolgozást használ." -#: ../src/iop/channelmixerrgb.c:4423 +#: ../src/iop/channelmixerrgb.c:4491 msgid "" "this is the color of the scene illuminant before chromatic adaptation\n" "this color will be turned into pure white by the adaptation." @@ -13810,27 +14379,27 @@ "ez a helyszíni fényforrás színe a kromatikus adaptálás előtt.\n" "ezt a színt változtatja az adaptálás tiszta fehérré." -#: ../src/iop/channelmixerrgb.c:4431 +#: ../src/iop/channelmixerrgb.c:4499 msgid "picker" msgstr "pipetta" -#: ../src/iop/channelmixerrgb.c:4433 ../src/iop/temperature.c:2047 +#: ../src/iop/channelmixerrgb.c:4501 ../src/iop/temperature.c:2015 msgid "set white balance to detected from area" msgstr "fehéregyensúly beállítása: terület alapján felismert" -#: ../src/iop/channelmixerrgb.c:4437 ../src/iop/negadoctor.c:953 +#: ../src/iop/channelmixerrgb.c:4505 ../src/iop/negadoctor.c:972 msgid "illuminant" msgstr "fényforrás" -#: ../src/iop/channelmixerrgb.c:4443 ../src/iop/temperature.c:2107 +#: ../src/iop/channelmixerrgb.c:4511 ../src/iop/temperature.c:2072 msgid "temperature" msgstr "hőmérséklet" -#: ../src/iop/channelmixerrgb.c:4474 -msgid "spot color mapping" -msgstr "folt-színleképezés" +#: ../src/iop/channelmixerrgb.c:4542 +msgid "area color mapping" +msgstr "területi színleképezés" -#: ../src/iop/channelmixerrgb.c:4480 +#: ../src/iop/channelmixerrgb.c:4548 msgid "" "define a target chromaticity (hue and chroma) for a particular region of the " "image (the control sample), which you then match against the same target " @@ -13843,17 +14412,17 @@ "célkromacitásával. a kontrollminta lehet a téma egy kritikus része, vagy a " "képsorozat egy nem mozgó és egyenletesen megvilágított felülete." -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/channelmixerrgb.c:4502 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/channelmixerrgb.c:4573 +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/channelmixerrgb.c:4570 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/channelmixerrgb.c:4641 msgid "mapping" msgstr "leképezés" -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/exposure.c:1188 -msgid "spot mode" -msgstr "foltmód" +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/exposure.c:1206 +msgid "area mode" +msgstr "terület mód" -#: ../src/iop/channelmixerrgb.c:4488 +#: ../src/iop/channelmixerrgb.c:4556 msgid "" "\"correction\" automatically adjust the illuminant\n" "such that the input color is mapped to the target.\n" @@ -13861,23 +14430,23 @@ "and can be used to sample a target." msgstr "" "„korrekció”: automatikusan igazítja a fényforrást úgy,\n" -"hogy a bemeneti szín a célhoz legyen leképezve.\n" +"hogy a bemeneti szín a célra legyen leképezve.\n" "„mérés”: egyszerűen megmutatja, hogyan képezi le a bemeneti színt a CAT,\n" -"és hogyan használható a cél mintavételére." +"és használható a cél mintavételére." -#: ../src/iop/channelmixerrgb.c:4493 ../src/iop/exposure.c:1194 +#: ../src/iop/channelmixerrgb.c:4561 ../src/iop/exposure.c:1212 msgid "correction" msgstr "korrekció" -#: ../src/iop/channelmixerrgb.c:4494 ../src/iop/exposure.c:1195 +#: ../src/iop/channelmixerrgb.c:4562 ../src/iop/exposure.c:1213 msgid "measure" msgstr "mérés" -#: ../src/iop/channelmixerrgb.c:4500 +#: ../src/iop/channelmixerrgb.c:4568 msgid "take channel mixing into account" msgstr "csatornakeverés figyelembe vétele" -#: ../src/iop/channelmixerrgb.c:4507 +#: ../src/iop/channelmixerrgb.c:4575 msgid "" "compute the target by taking the channel mixing into account.\n" "if disabled, only the CAT is considered." @@ -13885,16 +14454,16 @@ "a cél kiszámítása a csatornakeverés figyelembe vételével.\n" "letiltva csak a CAT-t veszi figyelembe." -#: ../src/iop/channelmixerrgb.c:4519 ../src/iop/exposure.c:1202 +#: ../src/iop/channelmixerrgb.c:4587 ../src/iop/exposure.c:1220 msgctxt "section" msgid "input" msgstr "bemenet" -#: ../src/iop/channelmixerrgb.c:4526 ../src/iop/exposure.c:1210 +#: ../src/iop/channelmixerrgb.c:4594 ../src/iop/exposure.c:1228 msgid "the input color that should be mapped to the target" msgstr "a bemeneti szín, amit le kell képezni a célra" -#: ../src/iop/channelmixerrgb.c:4532 +#: ../src/iop/channelmixerrgb.c:4600 msgid "" "L: \tN/A\n" "h: \tN/A\n" @@ -13904,116 +14473,116 @@ "h: \tN/A\n" "c: \tN/A" -#: ../src/iop/channelmixerrgb.c:4535 ../src/iop/exposure.c:1218 +#: ../src/iop/channelmixerrgb.c:4603 ../src/iop/exposure.c:1236 msgid "these LCh coordinates are computed from CIE Lab 1976 coordinates" msgstr "" "ezek az LCh koordináták a CIE Lab 1976 koordinátákból vannak kiszámítva" -#: ../src/iop/channelmixerrgb.c:4543 ../src/iop/exposure.c:1225 +#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/exposure.c:1243 msgctxt "section" msgid "target" msgstr "cél" -#: ../src/iop/channelmixerrgb.c:4550 +#: ../src/iop/channelmixerrgb.c:4618 msgid "the desired target color after mapping" msgstr "a leképezés utáni kívánt célszín" -#: ../src/iop/channelmixerrgb.c:4589 +#: ../src/iop/channelmixerrgb.c:4657 msgid "input R" msgstr "bemenet R" -#: ../src/iop/channelmixerrgb.c:4594 +#: ../src/iop/channelmixerrgb.c:4662 msgid "input G" msgstr "bemenet G" -#: ../src/iop/channelmixerrgb.c:4599 +#: ../src/iop/channelmixerrgb.c:4667 msgid "input B" msgstr "bemenet B" -#: ../src/iop/channelmixerrgb.c:4609 +#: ../src/iop/channelmixerrgb.c:4677 msgid "output R" msgstr "kimenet R" -#: ../src/iop/channelmixerrgb.c:4610 +#: ../src/iop/channelmixerrgb.c:4678 msgid "output G" msgstr "kimenet G" -#: ../src/iop/channelmixerrgb.c:4611 +#: ../src/iop/channelmixerrgb.c:4679 msgid "output B" msgstr "kimenet B" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "colorfulness" msgstr "színesség" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "output colorfulness" msgstr "kimenet színesség" -#: ../src/iop/channelmixerrgb.c:4617 +#: ../src/iop/channelmixerrgb.c:4685 msgid "output brightness" msgstr "kimenet fényerő" -#: ../src/iop/channelmixerrgb.c:4620 +#: ../src/iop/channelmixerrgb.c:4688 msgid "output gray" msgstr "kimenet szürke" -#: ../src/iop/channelmixerrgb.c:4635 +#: ../src/iop/channelmixerrgb.c:4703 msgid "calibrate with a color checker" msgstr "kalibrálás szinellenőrzővel" -#: ../src/iop/channelmixerrgb.c:4640 +#: ../src/iop/channelmixerrgb.c:4708 msgid "use a color checker target to autoset CAT and channels" msgstr "" "színellenőrző minta használata a CAT és a csatornák automatikus beállításához" -#: ../src/iop/channelmixerrgb.c:4647 ../src/iop/channelmixerrgb.c:4660 -#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/channelmixerrgb.c:4696 -#: ../src/iop/channelmixerrgb.c:4705 ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4715 ../src/iop/channelmixerrgb.c:4728 +#: ../src/iop/channelmixerrgb.c:4746 ../src/iop/channelmixerrgb.c:4764 +#: ../src/iop/channelmixerrgb.c:4773 ../src/iop/channelmixerrgb.c:4781 msgid "calibrate" msgstr "kalibrálás" -#: ../src/iop/channelmixerrgb.c:4647 +#: ../src/iop/channelmixerrgb.c:4715 msgid "chart" msgstr "minta" -#: ../src/iop/channelmixerrgb.c:4648 +#: ../src/iop/channelmixerrgb.c:4716 msgid "choose the vendor and the type of your chart" msgstr "válassza ki a mintájának a gyártóját és típusát" -#: ../src/iop/channelmixerrgb.c:4650 +#: ../src/iop/channelmixerrgb.c:4718 msgid "Xrite ColorChecker 24 pre-2014" msgstr "Xrite ColorChecker 24 pre-2014" -#: ../src/iop/channelmixerrgb.c:4651 +#: ../src/iop/channelmixerrgb.c:4719 msgid "Xrite ColorChecker 24 post-2014" msgstr "Xrite ColorChecker 24 post-2014" -#: ../src/iop/channelmixerrgb.c:4652 +#: ../src/iop/channelmixerrgb.c:4720 msgid "Datacolor SpyderCheckr 24 pre-2018" msgstr "Datacolor SpyderCheckr 24 pre-2018" -#: ../src/iop/channelmixerrgb.c:4653 +#: ../src/iop/channelmixerrgb.c:4721 msgid "Datacolor SpyderCheckr 24 post-2018" msgstr "Datacolor SpyderCheckr 24 post-2018" -#: ../src/iop/channelmixerrgb.c:4654 +#: ../src/iop/channelmixerrgb.c:4722 msgid "Datacolor SpyderCheckr 48 pre-2018" msgstr "Datacolor SpyderCheckr 48 pre-2018" -#: ../src/iop/channelmixerrgb.c:4655 +#: ../src/iop/channelmixerrgb.c:4723 msgid "Datacolor SpyderCheckr 48 post-2018" msgstr "Datacolor SpyderCheckr 48 post-2018" -#: ../src/iop/channelmixerrgb.c:4656 +#: ../src/iop/channelmixerrgb.c:4724 msgid "Datacolor SpyderCheckr Photo" msgstr "Datacolor SpyderCheckr Photo" -#: ../src/iop/channelmixerrgb.c:4660 +#: ../src/iop/channelmixerrgb.c:4728 msgid "optimize for" msgstr "optimalizálás erre" -#: ../src/iop/channelmixerrgb.c:4661 +#: ../src/iop/channelmixerrgb.c:4729 msgid "" "choose the colors that will be optimized with higher priority.\n" "neutral colors gives the lowest average delta E but a high maximum delta E\n" @@ -14030,35 +14599,35 @@ "a nincs egy kompromisszum a kettő között\n" "a többi egy-egy speciális viselkedés az árnyalat védelme érdekében" -#: ../src/iop/channelmixerrgb.c:4668 +#: ../src/iop/channelmixerrgb.c:4736 msgid "neutral colors" msgstr "semleges színek" -#: ../src/iop/channelmixerrgb.c:4670 +#: ../src/iop/channelmixerrgb.c:4738 msgid "skin and soil colors" msgstr "bőr- és talajszínek" -#: ../src/iop/channelmixerrgb.c:4671 +#: ../src/iop/channelmixerrgb.c:4739 msgid "foliage colors" msgstr "lombozatszínek" -#: ../src/iop/channelmixerrgb.c:4672 +#: ../src/iop/channelmixerrgb.c:4740 msgid "sky and water colors" msgstr "ég- és vízszínek" -#: ../src/iop/channelmixerrgb.c:4673 +#: ../src/iop/channelmixerrgb.c:4741 msgid "average delta E" msgstr "delta E átlag" -#: ../src/iop/channelmixerrgb.c:4674 +#: ../src/iop/channelmixerrgb.c:4742 msgid "maximum delta E" msgstr "delta E maximum" -#: ../src/iop/channelmixerrgb.c:4678 +#: ../src/iop/channelmixerrgb.c:4746 msgid "patch scale" msgstr "foltméret" -#: ../src/iop/channelmixerrgb.c:4681 +#: ../src/iop/channelmixerrgb.c:4749 msgid "" "reduce the radius of the patches to select the more or less central part.\n" "useful when the perspective correction is sloppy or\n" @@ -14069,31 +14638,31 @@ "hasznos ha a perspektívakorrekció hanyag vagy\n" "a foltok kerete árnyékot vet a folt széleire." -#: ../src/iop/channelmixerrgb.c:4691 +#: ../src/iop/channelmixerrgb.c:4759 msgid "the delta E is using the CIE 2000 formula" msgstr "a delta E a CIE 2000 képletet használja" -#: ../src/iop/channelmixerrgb.c:4696 +#: ../src/iop/channelmixerrgb.c:4764 msgid "accept" msgstr "elfogadás" -#: ../src/iop/channelmixerrgb.c:4702 +#: ../src/iop/channelmixerrgb.c:4770 msgid "accept the computed profile and set it in the module" msgstr "a kiszámított profil elfogadása és beállítása a modulban" -#: ../src/iop/channelmixerrgb.c:4705 +#: ../src/iop/channelmixerrgb.c:4773 msgid "recompute" msgstr "újraszámítás" -#: ../src/iop/channelmixerrgb.c:4709 +#: ../src/iop/channelmixerrgb.c:4777 msgid "recompute the profile" msgstr "a profil újraszámítása" -#: ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4781 msgid "validate" msgstr "érvényesít" -#: ../src/iop/channelmixerrgb.c:4717 +#: ../src/iop/channelmixerrgb.c:4785 msgid "check the output delta E" msgstr "kimeneti delta E ellenőrzése" @@ -14111,19 +14680,19 @@ "ez a modul elavult. jobb, ha helyette az új lokális kontraszt modult " "használja." -#: ../src/iop/clahe.c:337 ../src/iop/sharpen.c:445 +#: ../src/iop/clahe.c:339 ../src/iop/sharpen.c:440 msgid "amount" msgstr "mérték" -#: ../src/iop/clahe.c:346 +#: ../src/iop/clahe.c:348 msgid "size of features to preserve" msgstr "megőrzendő elemek mérete" -#: ../src/iop/clahe.c:347 ../src/iop/nlmeans.c:464 +#: ../src/iop/clahe.c:349 ../src/iop/nlmeans.c:467 msgid "strength of the effect" msgstr "effekt erőssége" -#: ../src/iop/clipping.c:304 +#: ../src/iop/clipping.c:347 msgid "" "this module is deprecated. please use the crop, orientation and/or rotate " "and perspective modules instead." @@ -14131,144 +14700,144 @@ "ez a modul elavult. kérem használja helyette a kivágás, orientáció, vagy " "forgatás és perspektíva modulokat." -#: ../src/iop/clipping.c:309 +#: ../src/iop/clipping.c:352 msgid "crop and rotate" msgstr "vágás és forgatás" -#: ../src/iop/clipping.c:314 +#: ../src/iop/clipping.c:357 msgid "reframe|perspective|keystone|distortion" msgstr "" "kivágás|levágás|perspektíva|trapéztorzítás|torzítás|reframe|perspective|" "keystone|distortion" -#: ../src/iop/clipping.c:319 +#: ../src/iop/clipping.c:362 msgid "change the framing and correct the perspective" msgstr "keretezés módosítása és perspektíva korrekció" -#: ../src/iop/clipping.c:1394 ../src/iop/clipping.c:2120 ../src/iop/crop.c:517 -#: ../src/iop/crop.c:1117 +#: ../src/iop/clipping.c:1447 ../src/iop/clipping.c:2173 ../src/iop/crop.c:501 +#: ../src/iop/crop.c:1101 msgid "original image" msgstr "eredeti kép" -#: ../src/iop/clipping.c:1698 ../src/iop/crop.c:824 +#: ../src/iop/clipping.c:1751 ../src/iop/crop.c:808 msgid "invalid ratio format. it should be \"number:number\"" msgstr "érvénytelen arány formátum. „szám:szám” kéne legyen" -#: ../src/iop/clipping.c:1714 ../src/iop/crop.c:840 +#: ../src/iop/clipping.c:1767 ../src/iop/crop.c:824 msgid "invalid ratio format. it should be a positive number" msgstr "érvénytelen arány formátum. pozitív szám kéne legyen" -#: ../src/iop/clipping.c:1903 ../src/iop/clipping.c:2111 +#: ../src/iop/clipping.c:1956 ../src/iop/clipping.c:2164 msgid "full" msgstr "teljes" -#: ../src/iop/clipping.c:1904 +#: ../src/iop/clipping.c:1957 msgid "old system" msgstr "régi rendszer" -#: ../src/iop/clipping.c:1905 +#: ../src/iop/clipping.c:1958 msgid "correction applied" msgstr "korrekció alkalmazva" -#: ../src/iop/clipping.c:2089 +#: ../src/iop/clipping.c:2142 msgid "main" msgstr "fő" -#: ../src/iop/clipping.c:2098 +#: ../src/iop/clipping.c:2151 msgid "mirror image horizontally and/or vertically" msgstr "kép tükrözése vízszintesen és/vagy függőlegesen" -#: ../src/iop/clipping.c:2101 +#: ../src/iop/clipping.c:2154 msgid "angle" msgstr "szög" -#: ../src/iop/clipping.c:2104 +#: ../src/iop/clipping.c:2157 msgid "right-click and drag a line on the image to drag a straight line" msgstr "jobb gombot lenyomva húzzon egy egyenes vonalat a képen" -#: ../src/iop/clipping.c:2107 +#: ../src/iop/clipping.c:2160 msgid "keystone" msgstr "trapéztorzítás" -#: ../src/iop/clipping.c:2112 +#: ../src/iop/clipping.c:2165 msgid "set perspective correction for your image" msgstr "perspektíva korrekció beállítása" -#: ../src/iop/clipping.c:2119 ../src/iop/crop.c:1116 +#: ../src/iop/clipping.c:2172 ../src/iop/crop.c:1100 msgid "freehand" msgstr "szabadkézi" -#: ../src/iop/clipping.c:2122 ../src/iop/crop.c:1119 +#: ../src/iop/clipping.c:2175 ../src/iop/crop.c:1103 msgid "10:8 in print" msgstr "10:8 nyomtatásban" -#: ../src/iop/clipping.c:2123 ../src/iop/crop.c:1120 +#: ../src/iop/clipping.c:2176 ../src/iop/crop.c:1104 msgid "5:4, 4x5, 8x10" msgstr "5:4, 4x5, 8x10" -#: ../src/iop/clipping.c:2124 ../src/iop/crop.c:1121 +#: ../src/iop/clipping.c:2177 ../src/iop/crop.c:1105 msgid "11x14" msgstr "11x14" -#: ../src/iop/clipping.c:2125 ../src/iop/crop.c:1122 +#: ../src/iop/clipping.c:2178 ../src/iop/crop.c:1106 msgid "8.5x11, letter" msgstr "8.5x11, levél" -#: ../src/iop/clipping.c:2126 ../src/iop/crop.c:1123 +#: ../src/iop/clipping.c:2179 ../src/iop/crop.c:1107 msgid "4:3, VGA, TV" msgstr "4:3, VGA, TV" -#: ../src/iop/clipping.c:2127 ../src/iop/crop.c:1124 +#: ../src/iop/clipping.c:2180 ../src/iop/crop.c:1108 msgid "5x7" msgstr "5x7" -#: ../src/iop/clipping.c:2128 ../src/iop/crop.c:1125 +#: ../src/iop/clipping.c:2181 ../src/iop/crop.c:1109 msgid "ISO 216, DIN 476, A4" msgstr "ISO 216, DIN 476, A4" -#: ../src/iop/clipping.c:2129 ../src/iop/crop.c:1126 +#: ../src/iop/clipping.c:2182 ../src/iop/crop.c:1110 msgid "3:2, 4x6, 35mm" msgstr "3:2, 4x6, 35mm" -#: ../src/iop/clipping.c:2130 ../src/iop/crop.c:1127 +#: ../src/iop/clipping.c:2183 ../src/iop/crop.c:1111 msgid "16:10, 8x5" msgstr "16:10, 8x5" -#: ../src/iop/clipping.c:2132 ../src/iop/crop.c:1129 +#: ../src/iop/clipping.c:2185 ../src/iop/crop.c:1113 msgid "16:9, HDTV" msgstr "16:9, HDTV" -#: ../src/iop/clipping.c:2133 ../src/iop/crop.c:1130 +#: ../src/iop/clipping.c:2186 ../src/iop/crop.c:1114 msgid "widescreen" msgstr "széles vászon" -#: ../src/iop/clipping.c:2134 ../src/iop/crop.c:1131 +#: ../src/iop/clipping.c:2187 ../src/iop/crop.c:1115 msgid "2:1, univisium" msgstr "2:1, univisium" -#: ../src/iop/clipping.c:2135 ../src/iop/crop.c:1132 +#: ../src/iop/clipping.c:2188 ../src/iop/crop.c:1116 msgid "cinemascope" msgstr "cinemascope" -#: ../src/iop/clipping.c:2136 ../src/iop/crop.c:1133 +#: ../src/iop/clipping.c:2189 ../src/iop/crop.c:1117 msgid "21:9" msgstr "21:9" -#: ../src/iop/clipping.c:2137 ../src/iop/crop.c:1134 +#: ../src/iop/clipping.c:2190 ../src/iop/crop.c:1118 msgid "anamorphic" msgstr "anamorf" -#: ../src/iop/clipping.c:2138 ../src/iop/crop.c:1135 +#: ../src/iop/clipping.c:2191 ../src/iop/crop.c:1119 msgid "3:1, panorama" msgstr "3:1, panoráma" -#: ../src/iop/clipping.c:2170 ../src/iop/clipping.c:2182 ../src/iop/crop.c:1171 -#: ../src/iop/crop.c:1187 +#: ../src/iop/clipping.c:2223 ../src/iop/clipping.c:2235 ../src/iop/crop.c:1155 +#: ../src/iop/crop.c:1171 #, c-format msgid "invalid ratio format for `%s'. it should be \"number:number\"" msgstr "érvénytelen „%s” arány formátum. „szám:szám” kéne legyen" -#: ../src/iop/clipping.c:2229 ../src/iop/crop.c:1238 +#: ../src/iop/clipping.c:2282 ../src/iop/crop.c:1222 msgid "" "set the aspect ratio\n" "the list is sorted: from most square to least square\n" @@ -14280,31 +14849,31 @@ "ha kézzel szeretne oldalarányt megadni, nyissa le a listát és gépelje be az " "arányt x:y formában vagy tizedes törtként" -#: ../src/iop/clipping.c:2236 ../src/iop/crop.c:1252 +#: ../src/iop/clipping.c:2289 ../src/iop/crop.c:1236 msgid "margins" msgstr "margók" -#: ../src/iop/clipping.c:2241 ../src/iop/crop.c:1262 +#: ../src/iop/clipping.c:2294 ../src/iop/crop.c:1246 msgid "the left margin cannot overlap with the right margin" msgstr "a bal margó nem fedhet át a jobb margóval" -#: ../src/iop/clipping.c:2248 ../src/iop/crop.c:1270 +#: ../src/iop/clipping.c:2301 ../src/iop/crop.c:1254 msgid "the right margin cannot overlap with the left margin" msgstr "a jobb margó nem fedhet át a bal margóval" -#: ../src/iop/clipping.c:2253 ../src/iop/crop.c:1276 +#: ../src/iop/clipping.c:2306 ../src/iop/crop.c:1260 msgid "the top margin cannot overlap with the bottom margin" msgstr "a felső margó nem fedhet át az alsó margóval" -#: ../src/iop/clipping.c:2260 ../src/iop/crop.c:1284 +#: ../src/iop/clipping.c:2313 ../src/iop/crop.c:1268 msgid "the bottom margin cannot overlap with the top margin" msgstr "az alsó margó nem fedhet át a felső margóval" -#: ../src/iop/clipping.c:3019 +#: ../src/iop/clipping.c:3059 msgid "<b>commit</b>: double-click, <b>straighten</b>: right-drag" msgstr "<b>eltárolás</b>: dupla klikk, <b>kiegyenesítés</b>: jobb húzás" -#: ../src/iop/clipping.c:3023 +#: ../src/iop/clipping.c:3063 msgid "" "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag\n" "<b>straighten</b>: right-drag" @@ -14312,15 +14881,15 @@ "<b>átméretezés</b>: húzás, <b>oldalarány megőrzése</b>: shift+húzás\n" "<b>kiegyenesítés</b>: jobb-húzás" -#: ../src/iop/clipping.c:3066 +#: ../src/iop/clipping.c:3104 msgid "<b>move control point</b>: drag" msgstr "<b>vezérlőpont mozgatása</b>: húzás" -#: ../src/iop/clipping.c:3071 +#: ../src/iop/clipping.c:3109 msgid "<b>move line</b>: drag, <b>toggle symmetry</b>: click ꝏ" msgstr "<b>vonal mozgatása</b>: húzás, <b>szimmetria váltása</b>: kattintás ꝏ" -#: ../src/iop/clipping.c:3076 +#: ../src/iop/clipping.c:3114 msgid "" "<b>apply</b>: click <tt>ok</tt>, <b>toggle symmetry</b>: click ꝏ\n" "<b>move line/control point</b>: drag" @@ -14329,7 +14898,7 @@ ">ꝏ\n" "<b>vonal/vezérlőpont mozgatása</b>: húzás" -#: ../src/iop/clipping.c:3083 +#: ../src/iop/clipping.c:3121 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag\n" @@ -14339,12 +14908,12 @@ "<b>vízszintes mozgatás</b>: ctrl+húzás\n" "<b>kiegyenesítés</b>: jobb húzás, <b>eltárolás</b>: dupla klikk" -#: ../src/iop/clipping.c:3340 ../src/iop/crop.c:1796 +#: ../src/iop/clipping.c:3380 ../src/iop/crop.c:1770 #, c-format msgid "[%s on borders] crop" msgstr "[%s szegélyeken] vágás" -#: ../src/iop/clipping.c:3342 ../src/iop/crop.c:1798 +#: ../src/iop/clipping.c:3382 ../src/iop/crop.c:1772 #, c-format msgid "[%s on borders] crop keeping ratio" msgstr "[%s szegélyeken] vágás oldalarány megtartással" @@ -14362,226 +14931,226 @@ msgid "adjust the look of the image" msgstr "kép megjelenésének állítása" -#: ../src/iop/colisa.c:310 +#: ../src/iop/colisa.c:304 msgid "color saturation adjustment" msgstr "színtelítettség állítás" -#: ../src/iop/colorbalance.c:150 +#: ../src/iop/colorbalance.c:152 msgid "color balance" msgstr "színegyensúly" -#: ../src/iop/colorbalance.c:155 +#: ../src/iop/colorbalance.c:157 msgid "lift gamma gain|cdl|color grading|contrast|saturation|hue" msgstr "" "gamma|emelés|erő|színosztályozás|kontraszt|telítettség|árnyalat|lift gamma " "gain|cdl|color grading|contrast|saturation|hue" -#: ../src/iop/colorbalance.c:160 +#: ../src/iop/colorbalance.c:162 msgid "shift colors selectively by luminance range" msgstr "a színek szelektív eltolása a fénysűrűség tartomány szerint" -#: ../src/iop/colorbalance.c:164 +#: ../src/iop/colorbalance.c:166 msgid "non-linear, Lab, scene-referred" msgstr "nemlineáris, Lab, látványvonatkozású" #. these blobs were exported as dtstyle and copied from there: -#: ../src/iop/colorbalance.c:275 +#: ../src/iop/colorbalance.c:304 msgid "split-toning teal-orange (2nd instance)" msgstr "tónusfelosztás kékeszöld-narancs (2. példa)" -#: ../src/iop/colorbalance.c:278 +#: ../src/iop/colorbalance.c:307 msgid "split-toning teal-orange (1st instance)" msgstr "tónusfelosztás kékeszöld-narancs (1. példa)" -#: ../src/iop/colorbalance.c:282 +#: ../src/iop/colorbalance.c:311 msgid "generic film" msgstr "általános film" -#: ../src/iop/colorbalance.c:286 +#: ../src/iop/colorbalance.c:315 msgid "similar to Kodak Portra" msgstr "Kodak Portra-hoz hasonló" -#: ../src/iop/colorbalance.c:290 +#: ../src/iop/colorbalance.c:319 msgid "similar to Kodak Ektar" msgstr "Kodak Ektarhoz hasonló" -#: ../src/iop/colorbalance.c:294 +#: ../src/iop/colorbalance.c:323 msgid "similar to Kodachrome" msgstr "Kodachrome-hoz hasonló" -#: ../src/iop/colorbalance.c:990 +#: ../src/iop/colorbalance.c:964 msgid "optimize luma from patches" msgstr "fénysűrűség optimalizálása foltokból" -#: ../src/iop/colorbalance.c:992 ../src/iop/colorbalance.c:2110 +#: ../src/iop/colorbalance.c:966 ../src/iop/colorbalance.c:2085 msgid "optimize luma" msgstr "fénysűrűség optimalizálása" -#: ../src/iop/colorbalance.c:996 +#: ../src/iop/colorbalance.c:970 msgid "neutralize colors from patches" msgstr "színek semlegesítése foltok alapján" -#: ../src/iop/colorbalance.c:998 ../src/iop/colorbalance.c:2116 +#: ../src/iop/colorbalance.c:972 ../src/iop/colorbalance.c:2091 msgid "neutralize colors" msgstr "színek semlegesítése" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "offset" msgstr "eltolás" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "power" msgstr "erősség" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "slope" msgstr "lejtés" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "lift" msgstr "emelés" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gamma" msgstr "gamma" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gain" msgstr "gain" -#: ../src/iop/colorbalance.c:1787 +#: ../src/iop/colorbalance.c:1762 msgctxt "section" msgid "shadows: lift / offset" msgstr "árnyékok: emelés / eltolás" -#: ../src/iop/colorbalance.c:1788 +#: ../src/iop/colorbalance.c:1763 msgctxt "section" msgid "mid-tones: gamma / power" msgstr "középtónusok: gamma / erősség" -#: ../src/iop/colorbalance.c:1789 +#: ../src/iop/colorbalance.c:1764 msgctxt "section" msgid "highlights: gain / slope" msgstr "csúcsfények: gain / lejtés" -#: ../src/iop/colorbalance.c:1813 +#: ../src/iop/colorbalance.c:1788 msgid "shadows / mid-tones / highlights" msgstr "árnyékok / középtónusok / csúcsfények" -#: ../src/iop/colorbalance.c:1910 ../src/iop/colorbalance.c:1919 +#: ../src/iop/colorbalance.c:1885 ../src/iop/colorbalance.c:1894 msgid "color-grading mapping method" msgstr "szín szerinti osztályozási módszer" -#: ../src/iop/colorbalance.c:1914 +#: ../src/iop/colorbalance.c:1889 msgid "color control sliders" msgstr "szín vezérlőcsúszkák" -#: ../src/iop/colorbalance.c:1915 ../src/libs/colorpicker.c:51 +#: ../src/iop/colorbalance.c:1890 ../src/libs/colorpicker.c:51 msgid "HSL" msgstr "HSL" -#: ../src/iop/colorbalance.c:1916 +#: ../src/iop/colorbalance.c:1891 msgid "RGBL" msgstr "RGBL" -#: ../src/iop/colorbalance.c:1928 +#: ../src/iop/colorbalance.c:1903 msgctxt "section" msgid "master" msgstr "master" -#: ../src/iop/colorbalance.c:1934 +#: ../src/iop/colorbalance.c:1909 msgid "saturation correction before the color balance" msgstr "színtelítettség-korrekció a színegyensúly előtt" -#: ../src/iop/colorbalance.c:1940 +#: ../src/iop/colorbalance.c:1915 msgid "saturation correction after the color balance" msgstr "színtelítettség-korrekció a színegyensúly után" -#: ../src/iop/colorbalance.c:1945 +#: ../src/iop/colorbalance.c:1920 msgid "adjust to match a neutral tone" msgstr "állítsa be a semleges tónusnak megfelelően" #. is set in _configure_slider_blocks -#: ../src/iop/colorbalance.c:2003 +#: ../src/iop/colorbalance.c:1978 msgid "click to cycle layout" msgstr "kattintson az elrendezés váltogatásához" -#: ../src/iop/colorbalance.c:2037 +#: ../src/iop/colorbalance.c:2012 msgid "factor" msgstr "faktor" -#: ../src/iop/colorbalance.c:2051 +#: ../src/iop/colorbalance.c:2026 msgid "select the hue" msgstr "árnyalat kiválasztása" -#: ../src/iop/colorbalance.c:2063 +#: ../src/iop/colorbalance.c:2038 msgid "select the saturation" msgstr "válassza ki a telítettséget" -#: ../src/iop/colorbalance.c:2082 +#: ../src/iop/colorbalance.c:2057 msgid "factor of lift/offset" msgstr "emelés/eltolás mértéke" -#: ../src/iop/colorbalance.c:2083 +#: ../src/iop/colorbalance.c:2058 msgid "factor of red for lift/offset" msgstr "vörös emelés/eltolás mértéke" -#: ../src/iop/colorbalance.c:2084 +#: ../src/iop/colorbalance.c:2059 msgid "factor of green for lift/offset" msgstr "zöld emelés/eltolás mértéke" -#: ../src/iop/colorbalance.c:2085 +#: ../src/iop/colorbalance.c:2060 msgid "factor of blue for lift/offset" msgstr "kék emelés/eltolás mértéke" -#: ../src/iop/colorbalance.c:2088 +#: ../src/iop/colorbalance.c:2063 msgid "factor of gamma/power" msgstr "gamma/erősség mértéke" -#: ../src/iop/colorbalance.c:2089 +#: ../src/iop/colorbalance.c:2064 msgid "factor of red for gamma/power" msgstr "vörös gamma/erősség mértéke" -#: ../src/iop/colorbalance.c:2090 +#: ../src/iop/colorbalance.c:2065 msgid "factor of green for gamma/power" msgstr "zöld gamma/erősség mértéke" -#: ../src/iop/colorbalance.c:2091 +#: ../src/iop/colorbalance.c:2066 msgid "factor of blue for gamma/power" msgstr "kék gamma/erősség mértéke" -#: ../src/iop/colorbalance.c:2094 +#: ../src/iop/colorbalance.c:2069 msgid "factor of gain/slope" msgstr "gain/lejtés mértéke" -#: ../src/iop/colorbalance.c:2095 +#: ../src/iop/colorbalance.c:2070 msgid "factor of red for gain/slope" msgstr "vörös gain/lejtés mértéke" -#: ../src/iop/colorbalance.c:2096 +#: ../src/iop/colorbalance.c:2071 msgid "factor of green for gain/slope" msgstr "zöld gain/lejtés mértéke" -#: ../src/iop/colorbalance.c:2097 +#: ../src/iop/colorbalance.c:2072 msgid "factor of blue for gain/slope" msgstr "kék gain/lejtés mértéke" -#: ../src/iop/colorbalance.c:2106 +#: ../src/iop/colorbalance.c:2081 msgctxt "section" msgid "auto optimizers" msgstr "automata otimalizálók" -#: ../src/iop/colorbalance.c:2111 +#: ../src/iop/colorbalance.c:2086 msgid "fit the whole histogram and center the average luma" msgstr "teljes hisztogram kitöltése és az átlagos fénysűrűség középpontosítása" -#: ../src/iop/colorbalance.c:2117 +#: ../src/iop/colorbalance.c:2092 msgid "optimize the RGB curves to remove color casts" msgstr "RGB görbék optimalizálása és elszíneződés csökkentése" @@ -14605,88 +15174,88 @@ "a színosztályozó eszközök alfa maszk segítségével választják el az\n" "árnyékokat, középtónusokat és csúcsfényeket" -#: ../src/iop/colorbalancergb.c:443 +#: ../src/iop/colorbalancergb.c:536 msgid "add basic colorfulness (legacy)" msgstr "alap színesség hozzáadása (elavult)" -#: ../src/iop/colorbalancergb.c:452 +#: ../src/iop/colorbalancergb.c:545 msgid "basic colorfulness: natural skin" msgstr "alap színesség: természetes bőr" -#: ../src/iop/colorbalancergb.c:458 +#: ../src/iop/colorbalancergb.c:551 msgid "basic colorfulness: vibrant colors" msgstr "alap színesség: élénk színek" -#: ../src/iop/colorbalancergb.c:464 +#: ../src/iop/colorbalancergb.c:557 msgid "basic colorfulness: standard" msgstr "alap színesség: alapértelmezett" -#: ../src/iop/colorbalancergb.c:937 +#: ../src/iop/colorbalancergb.c:1022 msgid "colorbalance works only on RGB input" msgstr "a színegyensúly csak RGB bemeneten működik" -#: ../src/iop/colorbalancergb.c:1506 ../src/iop/colorzones.c:2164 -#: ../src/iop/retouch.c:1884 ../src/iop/toneequal.c:1966 +#: ../src/iop/colorbalancergb.c:1577 ../src/iop/colorzones.c:2394 +#: ../src/iop/retouch.c:2069 ../src/iop/toneequal.c:1996 msgid "cannot display masks when the blending mask is displayed" msgstr "" "nem lehet megjeleníteni a maszkokat ha a keverési maszk meg van jelenítve" #. Page master -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "master" msgstr "master" -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "global grading" msgstr "globális osztályozás" -#: ../src/iop/colorbalancergb.c:1880 +#: ../src/iop/colorbalancergb.c:1951 msgid "rotate all hues by an angle, at the same luminance" msgstr "az összes árnyalat elforgatása egy szöggel, ugyanaz mint a fénysűrűség" -#: ../src/iop/colorbalancergb.c:1886 +#: ../src/iop/colorbalancergb.c:1957 msgid "increase colorfulness mostly on low-chroma colors" msgstr "színesség növelése főleg az alacsony krominanciájú színeken" -#: ../src/iop/colorbalancergb.c:1892 +#: ../src/iop/colorbalancergb.c:1963 msgid "increase the contrast at constant chromaticity" msgstr "kontraszt növelése konstans kromacitás mellett" -#: ../src/iop/colorbalancergb.c:1894 +#: ../src/iop/colorbalancergb.c:1965 msgctxt "section" msgid "linear chroma grading" msgstr "lineáris krominancia-osztályozás" -#: ../src/iop/colorbalancergb.c:1901 +#: ../src/iop/colorbalancergb.c:1972 msgid "increase colorfulness at same luminance globally" msgstr "színesség globális növelése változatlan fénysűrűség mellett" -#: ../src/iop/colorbalancergb.c:1906 +#: ../src/iop/colorbalancergb.c:1977 msgid "increase colorfulness at same luminance mostly in shadows" msgstr "" "színesség növelése változatlan fénysűrűség mellett, főleg az árnyékokon" -#: ../src/iop/colorbalancergb.c:1911 +#: ../src/iop/colorbalancergb.c:1982 msgid "increase colorfulness at same luminance mostly in mid-tones" msgstr "" "színesség növelése változatlan fénysűrűség mellett, főleg a középtónusokon" -#: ../src/iop/colorbalancergb.c:1916 +#: ../src/iop/colorbalancergb.c:1987 msgid "increase colorfulness at same luminance mostly in highlights" msgstr "" "színesség növelése változatlan fénysűrűség mellett, főleg a csúcsfényeken" -#: ../src/iop/colorbalancergb.c:1918 +#: ../src/iop/colorbalancergb.c:1989 msgctxt "section" msgid "perceptual saturation grading" msgstr "észlelési telítettség osztályozás" -#: ../src/iop/colorbalancergb.c:1924 +#: ../src/iop/colorbalancergb.c:1995 msgid "add or remove saturation by an absolute amount" msgstr "telítettség hozzáadása vagy elvétele egy abszolút mennyiséggel" -#: ../src/iop/colorbalancergb.c:1929 ../src/iop/colorbalancergb.c:1934 -#: ../src/iop/colorbalancergb.c:1939 +#: ../src/iop/colorbalancergb.c:2000 ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2010 msgid "" "increase or decrease saturation proportionally to the original pixel " "saturation" @@ -14694,21 +15263,21 @@ "a telítettség növelése vagy csökkentése arányosan az eredeti pixel " "telítettséghez képest" -#: ../src/iop/colorbalancergb.c:1941 +#: ../src/iop/colorbalancergb.c:2012 msgctxt "section" msgid "perceptual brilliance grading" msgstr "észlelési ragyogás osztályozás" -#: ../src/iop/colorbalancergb.c:1942 +#: ../src/iop/colorbalancergb.c:2013 msgid "brilliance" msgstr "ragyogás" -#: ../src/iop/colorbalancergb.c:1947 +#: ../src/iop/colorbalancergb.c:2018 msgid "add or remove brilliance by an absolute amount" msgstr "ragyogás hozzáadása vagy elvétele egy abszolút mennyiséggel" -#: ../src/iop/colorbalancergb.c:1952 ../src/iop/colorbalancergb.c:1957 -#: ../src/iop/colorbalancergb.c:1962 +#: ../src/iop/colorbalancergb.c:2023 ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2033 msgid "" "increase or decrease brilliance proportionally to the original pixel " "brilliance" @@ -14717,158 +15286,158 @@ "képest" #. Page 4-ways -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "4 ways" msgstr "4-utas" -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "selective color grading" msgstr "szelektív színosztályozás" -#: ../src/iop/colorbalancergb.c:1967 +#: ../src/iop/colorbalancergb.c:2038 msgctxt "section" msgid "global offset" msgstr "globális eltolás" -#: ../src/iop/colorbalancergb.c:1974 +#: ../src/iop/colorbalancergb.c:2045 msgid "global luminance offset" msgstr "globális fénysűrűség eltolás" -#: ../src/iop/colorbalancergb.c:1979 +#: ../src/iop/colorbalancergb.c:2050 msgid "hue of the global color offset" msgstr "a globális színeltolás árnyalata" -#: ../src/iop/colorbalancergb.c:1985 +#: ../src/iop/colorbalancergb.c:2056 msgid "chroma of the global color offset" msgstr "a globális színeltolás krominanciája" -#: ../src/iop/colorbalancergb.c:1987 +#: ../src/iop/colorbalancergb.c:2058 msgctxt "section" msgid "shadows lift" msgstr "árnyék emelés" -#: ../src/iop/colorbalancergb.c:1988 +#: ../src/iop/colorbalancergb.c:2059 msgid "lift" msgstr "emelés" -#: ../src/iop/colorbalancergb.c:1994 +#: ../src/iop/colorbalancergb.c:2065 msgid "luminance gain in shadows" msgstr "fénysűrűség gain az árnyékokban" -#: ../src/iop/colorbalancergb.c:1999 +#: ../src/iop/colorbalancergb.c:2070 msgid "hue of the color gain in shadows" msgstr "a szín gain árnyalata az árnyékokban" -#: ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2076 msgid "chroma of the color gain in shadows" msgstr "a szín gain krominanciája az árnyékokban" -#: ../src/iop/colorbalancergb.c:2007 +#: ../src/iop/colorbalancergb.c:2078 msgctxt "section" msgid "highlights gain" msgstr "csúcsfények gainje" -#: ../src/iop/colorbalancergb.c:2008 +#: ../src/iop/colorbalancergb.c:2079 msgid "gain" msgstr "csúcsfény" -#: ../src/iop/colorbalancergb.c:2014 +#: ../src/iop/colorbalancergb.c:2085 msgid "luminance gain in highlights" msgstr "fénysűrűség gain a csúcsfényeken" -#: ../src/iop/colorbalancergb.c:2019 +#: ../src/iop/colorbalancergb.c:2090 msgid "hue of the color gain in highlights" msgstr "a szín gain árnyalata a csúcsfényeken" -#: ../src/iop/colorbalancergb.c:2025 +#: ../src/iop/colorbalancergb.c:2096 msgid "chroma of the color gain in highlights" msgstr "a szín gain krominanciája a csúcsfényeken" -#: ../src/iop/colorbalancergb.c:2027 +#: ../src/iop/colorbalancergb.c:2098 msgctxt "section" msgid "power" msgstr "erősség" -#: ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2099 msgid "power" msgstr "erősség" -#: ../src/iop/colorbalancergb.c:2034 +#: ../src/iop/colorbalancergb.c:2105 msgid "luminance exponent in mid-tones" msgstr "fénysűrűség kitevő a középtónusokon" -#: ../src/iop/colorbalancergb.c:2039 +#: ../src/iop/colorbalancergb.c:2110 msgid "hue of the color exponent in mid-tones" msgstr "a színkitevő árnyalata a középtónusokon" -#: ../src/iop/colorbalancergb.c:2045 +#: ../src/iop/colorbalancergb.c:2116 msgid "chroma of the color exponent in mid-tones" msgstr "a színkitevő krominanciája a középtónusokon" #. Page masks -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "masks" msgstr "maszkok" -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "isolate luminances" msgstr "fénysűrűségek izolálása" -#: ../src/iop/colorbalancergb.c:2052 +#: ../src/iop/colorbalancergb.c:2123 msgid "choose in which uniform color space the saturation is computed" msgstr "" "válassza ki, hogy melyik egységes színtérben legyen kiszámítva a telítettség" -#: ../src/iop/colorbalancergb.c:2054 +#: ../src/iop/colorbalancergb.c:2125 msgctxt "section" msgid "luminance ranges" msgstr "fénysűrűség-tartományok" -#: ../src/iop/colorbalancergb.c:2065 +#: ../src/iop/colorbalancergb.c:2136 msgid "weight of the shadows over the whole tonal range" msgstr "az árnyékok súlya a teljes tónustartományon belül" -#: ../src/iop/colorbalancergb.c:2073 +#: ../src/iop/colorbalancergb.c:2144 msgid "position of the middle-gray reference for masking" msgstr "a középszürke referencia pozíciója a maszkoláshoz" -#: ../src/iop/colorbalancergb.c:2081 +#: ../src/iop/colorbalancergb.c:2152 msgid "weights of highlights over the whole tonal range" msgstr "a csúcsfények súlya a teljes tónustartományon belül" -#: ../src/iop/colorbalancergb.c:2086 +#: ../src/iop/colorbalancergb.c:2157 msgctxt "section" msgid "threshold" msgstr "küszöbérték" -#: ../src/iop/colorbalancergb.c:2091 +#: ../src/iop/colorbalancergb.c:2162 msgid "peak white luminance value used to normalize the power function" msgstr "" "az erősség függvény normalizálására szolgáló fehér fénysűrűség csúcsérték" -#: ../src/iop/colorbalancergb.c:2097 +#: ../src/iop/colorbalancergb.c:2168 msgid "peak gray luminance value used to normalize the power function" msgstr "" "az erősség függvény normalizálására szolgáló szürke fénysűrűség csúcsérték" -#: ../src/iop/colorbalancergb.c:2099 +#: ../src/iop/colorbalancergb.c:2170 msgctxt "section" msgid "mask preview settings" msgstr "maszk előnézeti beállításai" -#: ../src/iop/colorbalancergb.c:2102 +#: ../src/iop/colorbalancergb.c:2173 msgid "checkerboard color 1" msgstr "pepita szín 1" -#: ../src/iop/colorbalancergb.c:2105 ../src/iop/colorbalancergb.c:2114 +#: ../src/iop/colorbalancergb.c:2176 ../src/iop/colorbalancergb.c:2185 msgid "select color of the checkerboard from a swatch" msgstr "válassza ki a négyzetek színét a minták közül" -#: ../src/iop/colorbalancergb.c:2111 +#: ../src/iop/colorbalancergb.c:2182 msgid "checkerboard color 2" msgstr "pepita szín 2" -#: ../src/iop/colorbalancergb.c:2121 +#: ../src/iop/colorbalancergb.c:2192 msgid "checkerboard size" msgstr "négyzetek mérete" @@ -14885,11 +15454,11 @@ msgstr "színtér korrekciókat végez és kinézeteket alkalmaz" #: ../src/iop/colorchecker.c:131 ../src/iop/colorchecker.c:133 -#: ../src/iop/colorize.c:106 ../src/iop/colormapping.c:154 -#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:136 -#: ../src/iop/colorzones.c:146 ../src/iop/defringe.c:83 ../src/iop/levels.c:139 -#: ../src/iop/monochrome.c:99 ../src/iop/shadhi.c:198 -#: ../src/iop/tonecurve.c:212 ../src/iop/vibrance.c:96 +#: ../src/iop/colorize.c:99 ../src/iop/colormapping.c:154 +#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:121 +#: ../src/iop/colorzones.c:147 ../src/iop/defringe.c:83 ../src/iop/levels.c:141 +#: ../src/iop/monochrome.c:101 ../src/iop/shadhi.c:145 +#: ../src/iop/tonecurve.c:185 ../src/iop/vibrance.c:98 msgid "linear or non-linear, Lab, display-referred" msgstr "lineáris, vagy nemlineáris, Lab, képernyővonatkozású" @@ -14897,40 +15466,40 @@ msgid "defined by profile, Lab" msgstr "profil által definiált, Lab" -#: ../src/iop/colorchecker.c:294 +#: ../src/iop/colorchecker.c:308 msgid "it8 skin tones" msgstr "it8 bőrárnyalat" -#: ../src/iop/colorchecker.c:310 +#: ../src/iop/colorchecker.c:324 msgid "Helmholtz/Kohlrausch monochrome" msgstr "Helmholtz-Kohlrausch monokróm" -#: ../src/iop/colorchecker.c:327 +#: ../src/iop/colorchecker.c:341 msgid "Fuji Astia emulation" msgstr "Fuji Astia emuláció" -#: ../src/iop/colorchecker.c:341 +#: ../src/iop/colorchecker.c:355 msgid "Fuji Classic Chrome emulation" msgstr "Fuji Classic Chrome emuláció" -#: ../src/iop/colorchecker.c:355 +#: ../src/iop/colorchecker.c:369 msgid "Fuji Monochrome emulation" msgstr "Fuji Monochrome emuláció" -#: ../src/iop/colorchecker.c:369 +#: ../src/iop/colorchecker.c:383 msgid "Fuji Provia emulation" msgstr "Fuji Provia emuláció" -#: ../src/iop/colorchecker.c:383 +#: ../src/iop/colorchecker.c:397 msgid "Fuji Velvia emulation" msgstr "Fuji Velvia emuláció" -#: ../src/iop/colorchecker.c:841 ../src/iop/colorchecker.c:1436 +#: ../src/iop/colorchecker.c:846 ../src/iop/colorchecker.c:1441 #, c-format msgid "patch #%d" msgstr "folt #%d" -#: ../src/iop/colorchecker.c:1283 +#: ../src/iop/colorchecker.c:1288 #, c-format msgid "" "(%2.2f %2.2f %2.2f)\n" @@ -14947,15 +15516,15 @@ "jobb kattintás törli a foltot\n" "shift+klikk mintavevés közben lecseréli a foltot" -#: ../src/iop/colorchecker.c:1431 +#: ../src/iop/colorchecker.c:1436 msgid "patch" msgstr "folt" -#: ../src/iop/colorchecker.c:1432 +#: ../src/iop/colorchecker.c:1437 msgid "color checker patch" msgstr "színellenőrző folt" -#: ../src/iop/colorchecker.c:1446 +#: ../src/iop/colorchecker.c:1451 msgid "" "adjust target color Lab 'L' channel\n" "lower values darken target color while higher brighten it" @@ -14963,7 +15532,7 @@ "célszín Lab „L” csatornájának beállítása\n" "az alacsonyabb értékek sötétítik a célszínt, míg a magasabbak világosítják" -#: ../src/iop/colorchecker.c:1454 +#: ../src/iop/colorchecker.c:1459 msgid "" "adjust target color Lab 'a' channel\n" "lower values shift target color towards greens while higher shift towards " @@ -14973,11 +15542,11 @@ "az alacsonyabb értékek a zöldek felé tolják el a célszínt, míg a magasabbak " "a bíbor felé" -#: ../src/iop/colorchecker.c:1457 +#: ../src/iop/colorchecker.c:1462 msgid "green-magenta offset" msgstr "zöld–bíbor eltolás" -#: ../src/iop/colorchecker.c:1466 +#: ../src/iop/colorchecker.c:1471 msgid "" "adjust target color Lab 'b' channel\n" "lower values shift target color towards blues while higher shift towards " @@ -14987,11 +15556,11 @@ "az alacsonyabb értékek a kékek felé tolják el a célszínt, míg a magasabbak a " "sárgák felé" -#: ../src/iop/colorchecker.c:1469 +#: ../src/iop/colorchecker.c:1474 msgid "blue-yellow offset" msgstr "kék-sárga eltolás" -#: ../src/iop/colorchecker.c:1478 +#: ../src/iop/colorchecker.c:1483 msgid "" "adjust target color saturation\n" "adjusts 'a' and 'b' channels of target color in Lab space simultaneously\n" @@ -15002,11 +15571,11 @@ "egyidejűleg állítja a célszín „a” és „b” csatornáját az Lab színtérben\n" "az alacsonyabb értékektől csökken, míg a magasabb értékektől nő a telítettség" -#: ../src/iop/colorchecker.c:1487 +#: ../src/iop/colorchecker.c:1492 msgid "target color" msgstr "cél szín" -#: ../src/iop/colorchecker.c:1490 +#: ../src/iop/colorchecker.c:1495 msgid "" "control target color of the patches\n" "relative - target color is relative from the patch original color\n" @@ -15016,15 +15585,15 @@ "relatív – a célszín relatív a folt eredeti színéhez képest\n" "abszolút – a célszín egy abszolút Lab érték" -#: ../src/iop/colorchecker.c:1494 +#: ../src/iop/colorchecker.c:1499 msgid "absolute" msgstr "abszolút" -#: ../src/iop/colorcontrast.c:85 +#: ../src/iop/colorcontrast.c:77 msgid "color contrast" msgstr "színkontraszt" -#: ../src/iop/colorcontrast.c:95 +#: ../src/iop/colorcontrast.c:87 msgid "" "increase saturation and separation between\n" "opposite colors" @@ -15032,7 +15601,7 @@ "telítettség és elkülönítés növelése\n" "az ellentétes színek között" -#: ../src/iop/colorcontrast.c:324 +#: ../src/iop/colorcontrast.c:330 msgid "" "steepness of the a* curve in Lab\n" "lower values desaturate greens and magenta while higher saturate them" @@ -15041,7 +15610,7 @@ "alacsonyabb érték telítetlenné teszi a zöldeket és bíborokat, míg a nagyobb " "telíti" -#: ../src/iop/colorcontrast.c:331 +#: ../src/iop/colorcontrast.c:337 msgid "" "steepness of the b* curve in Lab\n" "lower values desaturate blues and yellows while higher saturate them" @@ -15058,19 +15627,19 @@ msgid "correct white balance selectively for blacks and whites" msgstr "fehéregyensúly korrigálása szelektíven feketéken és fehéreken" -#: ../src/iop/colorcorrection.c:107 +#: ../src/iop/colorcorrection.c:109 msgid "warm tone" msgstr "meleg tónus" -#: ../src/iop/colorcorrection.c:115 +#: ../src/iop/colorcorrection.c:117 msgid "warming filter" msgstr "meleg szűrő" -#: ../src/iop/colorcorrection.c:123 +#: ../src/iop/colorcorrection.c:125 msgid "cooling filter" msgstr "hideg szűrő" -#: ../src/iop/colorcorrection.c:257 +#: ../src/iop/colorcorrection.c:250 msgid "" "drag the line for split-toning. bright means highlights, dark means shadows. " "use mouse wheel to change saturation." @@ -15078,7 +15647,7 @@ "húzza a vonalat a tónusfelosztáshoz. a világos jelenti a csúcsfényeket, a " "sötét az árnyékokat. egérgörgővel állítható a telítettség." -#: ../src/iop/colorcorrection.c:276 +#: ../src/iop/colorcorrection.c:269 msgid "set the global saturation" msgstr "globális telítettség beállítása" @@ -15095,7 +15664,7 @@ "feldolgozási referencia RGB-vé konvertál, az RGB értékek leképezéséhez" #: ../src/iop/colorin.c:133 ../src/iop/colorout.c:89 ../src/iop/demosaic.c:293 -#: ../src/iop/rawprepare.c:158 +#: ../src/iop/rawprepare.c:174 msgid "mandatory" msgstr "kötelező" @@ -15103,7 +15672,7 @@ msgid "defined by profile" msgstr "profil által definiált" -#: ../src/iop/colorin.c:542 +#: ../src/iop/colorin.c:582 #, c-format msgid "" "can't extract matrix from colorspace `%s', it will be replaced by Rec2020 " @@ -15112,25 +15681,25 @@ "nem sikerült kivonni a mátrixot a(z) „%s” színtérből, helyettesítve lesz " "Rec2020 RGB-vel!" -#: ../src/iop/colorin.c:1424 +#: ../src/iop/colorin.c:1362 #, c-format msgid "`%s' color matrix not found!" msgstr "„%s„ színmátrix nem található!" -#: ../src/iop/colorin.c:1463 +#: ../src/iop/colorin.c:1401 msgid "input profile could not be generated!" msgstr "bemeneti profil nem generálható!" -#: ../src/iop/colorin.c:1560 +#: ../src/iop/colorin.c:1498 msgid "unsupported input profile has been replaced by linear Rec709 RGB!" msgstr "" "a nem támogatott bemeneti profil lineáris Rec709 RGB-vel lett helyettesítve!" -#: ../src/iop/colorin.c:1844 +#: ../src/iop/colorin.c:1782 msgid "external ICC profiles" msgstr "külső ICC-profilok" -#: ../src/iop/colorin.c:1889 +#: ../src/iop/colorin.c:1827 #, c-format msgid "" "embedded ICC profile properties:\n" @@ -15153,43 +15722,43 @@ "copyright: <b>%s</b>\n" "\n" -#: ../src/iop/colorin.c:2084 +#: ../src/iop/colorin.c:2022 msgid "input profile" msgstr "bemeneti profil" -#: ../src/iop/colorin.c:2088 +#: ../src/iop/colorin.c:2026 msgid "working profile" msgstr "munka profil" -#: ../src/iop/colorin.c:2097 +#: ../src/iop/colorin.c:2035 msgid "working ICC profiles" msgstr "működő ICC-profilok" -#: ../src/iop/colorin.c:2109 +#: ../src/iop/colorin.c:2047 msgid "confine Lab values to gamut of RGB color space" msgstr "Lab értékek korlátozása az RGB színtér színskálájára" -#: ../src/iop/colorize.c:84 +#: ../src/iop/colorize.c:75 msgid "colorize" msgstr "színezés" -#: ../src/iop/colorize.c:104 +#: ../src/iop/colorize.c:97 msgid "overlay a solid color on the image" msgstr "egyszínű rátét helyezése a képre" -#: ../src/iop/colorize.c:341 ../src/iop/splittoning.c:485 +#: ../src/iop/colorize.c:354 ../src/iop/splittoning.c:481 msgid "select the hue tone" msgstr "árnyalat telítettség meghatározása" -#: ../src/iop/colorize.c:347 +#: ../src/iop/colorize.c:360 msgid "select the saturation shadow tone" msgstr "telítettség árnyék tónus meghatározása" -#: ../src/iop/colorize.c:351 +#: ../src/iop/colorize.c:364 msgid "lightness of color" msgstr "szín fényereje" -#: ../src/iop/colorize.c:355 +#: ../src/iop/colorize.c:368 msgid "mix value of source lightness" msgstr "forrás fényesség értékének keverése" @@ -15203,37 +15772,37 @@ msgstr "" "színpaletta és a tónus újrafelosztás áthelyezése egyik képről a másikra" -#: ../src/iop/colormapping.c:1030 +#: ../src/iop/colormapping.c:1019 msgid "source clusters:" msgstr "forrás klaszterek:" -#: ../src/iop/colormapping.c:1036 +#: ../src/iop/colormapping.c:1025 msgid "target clusters:" msgstr "cél klaszterek:" -#: ../src/iop/colormapping.c:1045 +#: ../src/iop/colormapping.c:1034 msgid "acquire as source" msgstr "beolvasás forrásnak" -#: ../src/iop/colormapping.c:1049 +#: ../src/iop/colormapping.c:1038 msgid "analyze this image as a source image" msgstr "kép elemzése, mint forrás kép" -#: ../src/iop/colormapping.c:1051 +#: ../src/iop/colormapping.c:1040 msgid "acquire as target" msgstr "beolvasás célnak" -#: ../src/iop/colormapping.c:1055 +#: ../src/iop/colormapping.c:1044 msgid "analyze this image as a target image" msgstr "kép elemzése, mint cél kép" -#: ../src/iop/colormapping.c:1058 +#: ../src/iop/colormapping.c:1047 msgid "number of clusters to find in image. value change resets all clusters" msgstr "" "a kép elemzéséhez használt klaszterek száma. az érték módosításakor a " "klaszterek alaphelyzetbe állnak" -#: ../src/iop/colormapping.c:1061 +#: ../src/iop/colormapping.c:1050 msgid "" "how clusters are mapped. low values: based on color proximity, high values: " "based on color dominance" @@ -15241,7 +15810,7 @@ "hogyan legyenek a klaszterek leképezve. alacsony értékek: színközelségen " "alapulva, magas érték: színdominancián alapulva" -#: ../src/iop/colormapping.c:1066 +#: ../src/iop/colormapping.c:1055 msgid "level of histogram equalization" msgstr "hisztogramkiegyenlítés szintje" @@ -15261,112 +15830,112 @@ msgid "non-linear, RGB or Lab, display-referred" msgstr "nemlineáris, RGB vagy Lab, képernyővonatkozású" -#: ../src/iop/colorout.c:679 +#: ../src/iop/colorout.c:695 msgid "missing output profile has been replaced by sRGB!" msgstr "a hiányzó kimeneti profil le lett cserélve sRGB-re!" -#: ../src/iop/colorout.c:701 +#: ../src/iop/colorout.c:717 msgid "missing softproof profile has been replaced by sRGB!" msgstr "a hiányzó softproof profil le lett cserélve sRGB-re!" -#: ../src/iop/colorout.c:744 +#: ../src/iop/colorout.c:760 msgid "unsupported output profile has been replaced by sRGB!" msgstr "a nem támogatott kimeneti profil le lett cserélve sRGB-re!" -#: ../src/iop/colorout.c:869 +#: ../src/iop/colorout.c:885 msgid "output intent" msgstr "kimeneti szándék" -#: ../src/iop/colorout.c:870 +#: ../src/iop/colorout.c:886 msgid "rendering intent" msgstr "megjelenítési szándék" -#: ../src/iop/colorout.c:872 ../src/libs/export.c:1246 +#: ../src/iop/colorout.c:888 ../src/libs/export.c:1358 #: ../src/libs/print_settings.c:2475 ../src/libs/print_settings.c:2824 -#: ../src/views/darkroom.c:2518 ../src/views/lighttable.c:1176 +#: ../src/views/darkroom.c:2359 ../src/views/lighttable.c:1176 msgid "perceptual" msgstr "perceptuális" -#: ../src/iop/colorout.c:873 ../src/libs/export.c:1247 +#: ../src/iop/colorout.c:889 ../src/libs/export.c:1359 #: ../src/libs/print_settings.c:2476 ../src/libs/print_settings.c:2825 -#: ../src/views/darkroom.c:2519 ../src/views/lighttable.c:1177 +#: ../src/views/darkroom.c:2360 ../src/views/lighttable.c:1177 msgid "relative colorimetric" msgstr "relatív kolorimetrikus" -#: ../src/iop/colorout.c:874 ../src/libs/export.c:1248 +#: ../src/iop/colorout.c:890 ../src/libs/export.c:1360 #: ../src/libs/print_settings.c:2477 ../src/libs/print_settings.c:2826 -#: ../src/views/darkroom.c:2520 ../src/views/lighttable.c:1178 +#: ../src/views/darkroom.c:2361 ../src/views/lighttable.c:1178 msgctxt "rendering intent" msgid "saturation" msgstr "telítettség" -#: ../src/iop/colorout.c:875 ../src/libs/export.c:1249 +#: ../src/iop/colorout.c:891 ../src/libs/export.c:1361 #: ../src/libs/print_settings.c:2478 ../src/libs/print_settings.c:2827 -#: ../src/views/darkroom.c:2521 ../src/views/lighttable.c:1179 +#: ../src/views/darkroom.c:2362 ../src/views/lighttable.c:1179 msgid "absolute colorimetric" msgstr "abszolút kolorimetrikus" -#: ../src/iop/colorout.c:893 +#: ../src/iop/colorout.c:909 msgid "export ICC profiles" msgstr "ICC profilok exportálása" -#: ../src/iop/colorreconstruction.c:129 +#: ../src/iop/colorreconstruction.c:114 msgid "color reconstruction" msgstr "színrekonstrukció" -#: ../src/iop/colorreconstruction.c:134 +#: ../src/iop/colorreconstruction.c:119 msgid "recover clipped highlights by propagating surrounding colors" msgstr "levágott csúcsfények visszanyerése a környező színek kiterjesztésével" -#: ../src/iop/colorreconstruction.c:628 ../src/iop/colorreconstruction.c:1040 -#: ../src/iop/globaltonemap.c:193 ../src/iop/globaltonemap.c:362 -#: ../src/iop/hazeremoval.c:553 ../src/iop/hazeremoval.c:788 -#: ../src/iop/levels.c:336 +#: ../src/iop/colorreconstruction.c:647 ../src/iop/colorreconstruction.c:1053 +#: ../src/iop/globaltonemap.c:227 ../src/iop/globaltonemap.c:396 +#: ../src/iop/hazeremoval.c:541 ../src/iop/hazeremoval.c:776 +#: ../src/iop/levels.c:358 msgid "inconsistent output" msgstr "következetlen kimenet" -#: ../src/iop/colorreconstruction.c:666 +#: ../src/iop/colorreconstruction.c:685 msgid "module `color reconstruction' failed" msgstr "„színrekonstrukció” modul sikertelen" -#: ../src/iop/colorreconstruction.c:1237 +#: ../src/iop/colorreconstruction.c:1246 msgid "spatial" msgstr "térbeli" -#: ../src/iop/colorreconstruction.c:1238 +#: ../src/iop/colorreconstruction.c:1247 msgid "range" msgstr "tartomány" -#: ../src/iop/colorreconstruction.c:1239 +#: ../src/iop/colorreconstruction.c:1248 msgid "precedence" msgstr "precedencia" -#: ../src/iop/colorreconstruction.c:1255 +#: ../src/iop/colorreconstruction.c:1264 msgid "pixels with lightness values above this threshold are corrected" msgstr "ezen küszöbszint feletti fényességű pixelek lesznek korrigálva" -#: ../src/iop/colorreconstruction.c:1256 +#: ../src/iop/colorreconstruction.c:1265 msgid "how far to look for replacement colors in spatial dimensions" msgstr "térbeli kiterjedésben milyen messze keressen helyettesítő színeket" -#: ../src/iop/colorreconstruction.c:1257 +#: ../src/iop/colorreconstruction.c:1266 msgid "how far to look for replacement colors in the luminance dimension" msgstr "fénysűrűség kiterjedésben milyen messze keressen helyettesítő színeket" -#: ../src/iop/colorreconstruction.c:1258 +#: ../src/iop/colorreconstruction.c:1267 msgid "if and how to give precedence to specific replacement colors" msgstr "mikor és hogy preferálja az egyes helyettesítő színeket" -#: ../src/iop/colorreconstruction.c:1259 +#: ../src/iop/colorreconstruction.c:1268 msgid "the hue tone which should be given precedence over other hue tones" msgstr "más árnyalat tónusokkal szemben előnyben részesítendő árnyalat tónus" -#: ../src/iop/colorreconstruction.c:1261 ../src/iop/demosaic.c:1277 -#: ../src/iop/highlights.c:1168 +#: ../src/iop/colorreconstruction.c:1270 ../src/iop/demosaic.c:1324 +#: ../src/iop/highlights.c:1258 msgid "not applicable" msgstr "nem alkalmazható" -#: ../src/iop/colorreconstruction.c:1262 +#: ../src/iop/colorreconstruction.c:1271 msgid "no highlights reconstruction for monochrome images" msgstr "a monokróm képeknél nincs csúcsfény-rekonstrukció" @@ -15379,7 +15948,7 @@ msgstr "" "ez a modul elavult. jobb, ha helyette a színleképezés modult használja." -#: ../src/iop/colortransfer.c:439 +#: ../src/iop/colortransfer.c:441 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -15389,43 +15958,43 @@ "és csak azért jelenik itt meg, hogy ki tudja kapcsolni\n" "és áttérhessen az új színleképző modulra." -#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2332 +#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2573 msgid "color zones" msgstr "színzónák" -#: ../src/iop/colorzones.c:144 +#: ../src/iop/colorzones.c:145 msgid "selectively shift hues, chroma and lightness of pixels" msgstr "szelektíven eltolja a pixelek árnyalatát, krominanciját és fényességét" -#: ../src/iop/colorzones.c:606 +#: ../src/iop/colorzones.c:684 msgid "B&W: with red" msgstr "B&W: vörössel" -#: ../src/iop/colorzones.c:629 +#: ../src/iop/colorzones.c:707 msgid "B&W: with skin tones" msgstr "B&W:bőrárnyalattal" -#: ../src/iop/colorzones.c:652 +#: ../src/iop/colorzones.c:732 msgid "polarizing filter" msgstr "polárszűrő" -#: ../src/iop/colorzones.c:673 +#: ../src/iop/colorzones.c:753 msgid "natural skin tones" msgstr "természetes bőrárnyalat" -#: ../src/iop/colorzones.c:704 +#: ../src/iop/colorzones.c:784 msgid "B&W: film" msgstr "B&W: film" -#: ../src/iop/colorzones.c:724 +#: ../src/iop/colorzones.c:804 msgid "HSL base setting" msgstr "HSL alap beállítás" -#: ../src/iop/colorzones.c:2264 +#: ../src/iop/colorzones.c:2500 msgid "orange" msgstr "narancs" -#: ../src/iop/colorzones.c:2421 ../src/iop/rgbcurve.c:1375 +#: ../src/iop/colorzones.c:2673 ../src/iop/rgbcurve.c:1375 msgid "" "create a curve based on an area from the image\n" "drag to create a flat curve\n" @@ -15437,49 +16006,49 @@ "ctrl+húzással pozitív görbét készít\n" "shift+húzással negatív görbét készít" -#: ../src/iop/colorzones.c:2425 ../src/iop/rgbcurve.c:1379 +#: ../src/iop/colorzones.c:2677 ../src/iop/rgbcurve.c:1379 msgid "create curve" msgstr "görbe létrehozása" #. edit by area -#: ../src/iop/colorzones.c:2442 +#: ../src/iop/colorzones.c:2696 msgid "edit by area" msgstr "szerkesztés terület alapján" -#: ../src/iop/colorzones.c:2447 +#: ../src/iop/colorzones.c:2702 msgid "edit the curve nodes by area" msgstr "a görbe pontjainak szerkesztése terület alapján" -#: ../src/iop/colorzones.c:2454 +#: ../src/iop/colorzones.c:2710 msgid "display selection" msgstr "kijelölés megjelenítése" -#: ../src/iop/colorzones.c:2463 +#: ../src/iop/colorzones.c:2722 msgid "choose selection criterion, will be the abscissa in the graph" msgstr "" "kiválasztási kritérium megadása, ez lesz a grafikon vízszintes tengelye" -#: ../src/iop/colorzones.c:2466 +#: ../src/iop/colorzones.c:2725 msgid "choose between a smoother or stronger effect" msgstr "választhat lágyabb és erősebb hatás között" -#: ../src/iop/colorzones.c:2494 ../src/iop/rgbcurve.c:1410 -#: ../src/iop/tonecurve.c:1172 +#: ../src/iop/colorzones.c:2762 ../src/iop/rgbcurve.c:1410 +#: ../src/iop/tonecurve.c:1194 msgid "interpolation method" msgstr "interpolációs módszer" -#: ../src/iop/colorzones.c:2496 ../src/iop/rgbcurve.c:1412 -#: ../src/iop/tonecurve.c:1174 +#: ../src/iop/colorzones.c:2764 ../src/iop/rgbcurve.c:1412 +#: ../src/iop/tonecurve.c:1196 msgid "centripetal spline" msgstr "centripetális spline" -#: ../src/iop/colorzones.c:2497 ../src/iop/rgbcurve.c:1413 -#: ../src/iop/tonecurve.c:1175 +#: ../src/iop/colorzones.c:2765 ../src/iop/rgbcurve.c:1413 +#: ../src/iop/tonecurve.c:1197 msgid "monotonic spline" msgstr "monoton spline" -#: ../src/iop/colorzones.c:2500 ../src/iop/rgbcurve.c:1416 -#: ../src/iop/tonecurve.c:1177 +#: ../src/iop/colorzones.c:2768 ../src/iop/rgbcurve.c:1416 +#: ../src/iop/tonecurve.c:1199 msgid "" "change this method if you see oscillations or cusps in the curve\n" "- cubic spline is better to produce smooth curves but oscillates when nodes " @@ -15497,23 +16066,23 @@ "- a monoton jobb a tisztán analitikus függvények pontosságához (log, gamma, " "exp)" -#: ../src/iop/crop.c:132 +#: ../src/iop/crop.c:122 msgid "crop" msgstr "kivágás" -#: ../src/iop/crop.c:137 +#: ../src/iop/crop.c:127 msgid "reframe|distortion" msgstr "vágás|levágás|kivágás|torzítás|crop|reframe|distortion" -#: ../src/iop/crop.c:143 +#: ../src/iop/crop.c:133 msgid "change the framing" msgstr "keretezés módosítása" -#: ../src/iop/crop.c:1667 +#: ../src/iop/crop.c:1651 msgid "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag" msgstr "<b>átméretezés</b>: húzás, <b>oldalarány megőrzése</b>: shift+húzás" -#: ../src/iop/crop.c:1676 +#: ../src/iop/crop.c:1660 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag" @@ -15536,7 +16105,7 @@ msgstr "" "az a modul elavult. kérem, használja helyette a kromatikus aberráció modult." -#: ../src/iop/defringe.c:415 +#: ../src/iop/defringe.c:417 msgid "" "method for color protection:\n" " - global average: fast, might show slightly wrong previews in high " @@ -15556,11 +16125,11 @@ "venni a telítetlenséget, ha szükséges\n" "- statikus: gyors, csak egy statikus küszöböt használ" -#: ../src/iop/defringe.c:422 +#: ../src/iop/defringe.c:424 msgid "radius for detecting fringe" msgstr "színhiba keresésének sugara" -#: ../src/iop/defringe.c:425 +#: ../src/iop/defringe.c:427 msgid "threshold for defringe, higher values mean less defringing" msgstr "" "színhiba javítás küszöbszintje. magasabb érték kisebb javítást eredményez" @@ -15574,12 +16143,12 @@ msgstr "" "teljes RGB pixeleket rekonstruál egy szenzor színszűrő tömb olvasásából" -#: ../src/iop/demosaic.c:1086 +#: ../src/iop/demosaic.c:1133 #, c-format msgid "`%s' color matrix not found for 4bayer image!" msgstr "„%s” színmátrix nem található 4bayer típusú képhez!" -#: ../src/iop/demosaic.c:1238 +#: ../src/iop/demosaic.c:1285 msgid "" "Bayer sensor demosaicing method, PPG and RCD are fast, AMaZE and LMMSE are " "slow.\n" @@ -15591,7 +16160,7 @@ "az LMMSE a legalkalmasabb a magas ISO-értékű képekhez.\n" "a kettős demosaic algoritmusok megduplázzák a feldolgozási időt." -#: ../src/iop/demosaic.c:1242 +#: ../src/iop/demosaic.c:1289 msgid "" "X-Trans sensor demosaicing method, Markesteijn 3-pass and frequency domain " "chroma are slow.\n" @@ -15601,11 +16170,11 @@ "frekvenciaosztásos krominancia lassúak.\n" "a kettős demosaic algoritmusok megduplázzák a feldolgozási időt." -#: ../src/iop/demosaic.c:1248 +#: ../src/iop/demosaic.c:1295 msgid "Bayer4 sensor demosaicing methods." msgstr "Bayer4 szenzor demozaik módszerek." -#: ../src/iop/demosaic.c:1252 +#: ../src/iop/demosaic.c:1299 msgid "" "threshold for edge-aware median.\n" "set to 0.0 to switch off\n" @@ -15615,7 +16184,7 @@ "0.0 állásban kikapcsolva\n" "1.0 állásban élek figyelmen kívül hagyása" -#: ../src/iop/demosaic.c:1257 +#: ../src/iop/demosaic.c:1304 msgid "" "contrast threshold for dual demosaic.\n" "set to 0.0 for high frequency content\n" @@ -15627,7 +16196,7 @@ "1.0 értékre állítva lapos tartalom\n" "kapcsolja át a maszk megjelenítéséhez" -#: ../src/iop/demosaic.c:1265 +#: ../src/iop/demosaic.c:1312 msgid "" "LMMSE refinement steps. the median steps average the output,\n" "refine adds some recalculation of red & blue channels" @@ -15635,49 +16204,49 @@ "LMMSE finomítási lépések. a medián lépések átlagolják a kimenetet,\n" "a finomítás pedig némi újraszámítást végez a vörös és kék csatornákon" -#: ../src/iop/demosaic.c:1268 +#: ../src/iop/demosaic.c:1315 msgid "how many color smoothing median steps after demosaicing" msgstr "színsimító középértéklépések demosaic szűrés után" -#: ../src/iop/demosaic.c:1271 +#: ../src/iop/demosaic.c:1318 msgid "green channels matching method" msgstr "zöld csatorna egyeztetési módszer" -#: ../src/iop/demosaic.c:1278 +#: ../src/iop/demosaic.c:1325 msgid "demosaicing is only used for color raw images" msgstr "a demozaikolás csak színes raw képeken használható" -#: ../src/iop/denoiseprofile.c:714 +#: ../src/iop/denoiseprofile.c:766 msgid "wavelets: chroma only" msgstr "waveletek: csak krominancia" -#: ../src/iop/denoiseprofile.c:720 +#: ../src/iop/denoiseprofile.c:772 msgid "denoise (profiled)" msgstr "zajszűrés (profilozott)" -#: ../src/iop/denoiseprofile.c:726 +#: ../src/iop/denoiseprofile.c:778 msgid "denoise using noise statistics profiled on sensors" msgstr "zajszűrés az érzékelőkön profilozott zajstatisztikák segítségével" -#: ../src/iop/denoiseprofile.c:2846 +#: ../src/iop/denoiseprofile.c:2850 #, c-format msgid "found match for ISO %d" msgstr "egyező profil: ISO %d" -#: ../src/iop/denoiseprofile.c:2855 +#: ../src/iop/denoiseprofile.c:2859 #, c-format msgid "interpolated from ISO %d and %d" msgstr "interpolálva: ISO %d és %d" -#: ../src/iop/denoiseprofile.c:3719 +#: ../src/iop/denoiseprofile.c:3723 msgid "Y0" msgstr "Y0" -#: ../src/iop/denoiseprofile.c:3720 +#: ../src/iop/denoiseprofile.c:3724 msgid "U0V0" msgstr "U0V0" -#: ../src/iop/denoiseprofile.c:3760 +#: ../src/iop/denoiseprofile.c:3764 msgid "" "use only with a perfectly\n" "uniform image if you want to\n" @@ -15687,36 +16256,36 @@ "képnél használja, ha\n" "zaj varianciát szeretne becsülni." -#: ../src/iop/denoiseprofile.c:3766 +#: ../src/iop/denoiseprofile.c:3770 msgid "variance red: " msgstr "vörös variancia: " -#: ../src/iop/denoiseprofile.c:3770 +#: ../src/iop/denoiseprofile.c:3774 msgid "variance computed on the red channel" msgstr "vörös csatornán számított variancia" -#: ../src/iop/denoiseprofile.c:3775 +#: ../src/iop/denoiseprofile.c:3779 msgid "variance green: " msgstr "zöld variancia: " -#: ../src/iop/denoiseprofile.c:3779 +#: ../src/iop/denoiseprofile.c:3783 msgid "variance computed on the green channel" msgstr "zöld csatornán számított variancia" -#: ../src/iop/denoiseprofile.c:3784 +#: ../src/iop/denoiseprofile.c:3788 msgid "variance blue: " msgstr "kék variancia: " -#: ../src/iop/denoiseprofile.c:3788 +#: ../src/iop/denoiseprofile.c:3792 msgid "variance computed on the blue channel" msgstr "kék csatornán számított variancia" -#: ../src/iop/denoiseprofile.c:3799 ../src/libs/export.c:1208 +#: ../src/iop/denoiseprofile.c:3803 ../src/libs/export.c:1320 #: ../src/libs/print_settings.c:2418 ../src/libs/print_settings.c:2774 msgid "profile" msgstr "profil" -#: ../src/iop/denoiseprofile.c:3833 +#: ../src/iop/denoiseprofile.c:3837 msgid "" "adapt denoising according to the\n" "white balance coefficients.\n" @@ -15732,7 +16301,7 @@ "le kell tiltani ha egy korábbi példány\n" "a színkeverés móddal volt használva." -#: ../src/iop/denoiseprofile.c:3840 +#: ../src/iop/denoiseprofile.c:3844 msgid "" "fix bugs in Anscombe transform resulting\n" "in undersmoothing of the green channel in\n" @@ -15754,11 +16323,11 @@ "egyszer engedélyezve többet nem tud\n" "visszaváltani a régi algoritmusra." -#: ../src/iop/denoiseprofile.c:3850 +#: ../src/iop/denoiseprofile.c:3854 msgid "profile used for variance stabilization" msgstr "szórásnégyzet (variancia) stabilizáláshoz használt profil" -#: ../src/iop/denoiseprofile.c:3852 +#: ../src/iop/denoiseprofile.c:3856 msgid "" "method used in the denoising core.\n" "non-local means works best for `lightness' blending,\n" @@ -15768,7 +16337,7 @@ "a nem-helyi középérték a fényesség keverésében teljesít jobban,\n" "a waveletek a színzaj csökkentésben" -#: ../src/iop/denoiseprofile.c:3856 +#: ../src/iop/denoiseprofile.c:3860 msgid "" "color representation used within the algorithm.\n" "RGB keeps the RGB channels separated,\n" @@ -15780,7 +16349,7 @@ "míg az Y0U0V0 kombinálja a csatornákat,\n" "hogy külön zajszűrje a krominanciát és a fénysűrűséget." -#: ../src/iop/denoiseprofile.c:3861 +#: ../src/iop/denoiseprofile.c:3865 msgid "" "radius of the patches to match.\n" "increase for more sharpness on strong edges, and better denoising of smooth " @@ -15794,7 +16363,7 @@ "ha a részletek túlsimítódnak, csökkentse az értéket és növelje a központi " "pixel súly csúszkát." -#: ../src/iop/denoiseprofile.c:3867 +#: ../src/iop/denoiseprofile.c:3871 msgid "" "emergency use only: radius of the neighborhood to search patches in. " "increase for better denoising performance, but watch the long runtimes! " @@ -15804,7 +16373,7 @@ "jobb zajszűrési teljesítményhez, viszont figyeljen a hosszú futásidőre! a " "nagy sugarak nagyon lassúak tudnak lenni. mi szóltunk" -#: ../src/iop/denoiseprofile.c:3873 +#: ../src/iop/denoiseprofile.c:3877 msgid "" "scattering of the neighborhood to search patches in.\n" "increase for better coarse-grain noise reduction.\n" @@ -15814,7 +16383,7 @@ "növelje a durva szemcséjű zaj jobb szűréséhez.\n" "nem befolyásolja a futásidőt." -#: ../src/iop/denoiseprofile.c:3877 +#: ../src/iop/denoiseprofile.c:3881 msgid "" "increase the weight of the central pixel\n" "of the patch in the patch comparison.\n" @@ -15826,11 +16395,11 @@ "a részletek visszanyerésére használható,\n" "ha a folt mérete egész nagy." -#: ../src/iop/denoiseprofile.c:3881 +#: ../src/iop/denoiseprofile.c:3885 msgid "finetune denoising strength" msgstr "zajszűrési erősség finomhangolása" -#: ../src/iop/denoiseprofile.c:3883 +#: ../src/iop/denoiseprofile.c:3887 msgid "" "controls the way parameters are autoset\n" "increase if shadows are not denoised enough\n" @@ -15842,7 +16411,7 @@ "vagy ha színzaj maradt.\n" "ez akkor történhet meg, ha a kép alulexponált." -#: ../src/iop/denoiseprofile.c:3888 +#: ../src/iop/denoiseprofile.c:3892 msgid "" "finetune shadows denoising.\n" "decrease to denoise more aggressively\n" @@ -15852,7 +16421,7 @@ "csökkentse a kép sötét részeinek\n" "agresszívebb zajszűréséhez." -#: ../src/iop/denoiseprofile.c:3892 +#: ../src/iop/denoiseprofile.c:3896 msgid "" "correct color cast in shadows.\n" "decrease if shadows are too purple.\n" @@ -15862,7 +16431,7 @@ "csökkentse, ha az árnyékok túl lilák.\n" "növelje, ha az árnyékok túl zöldek." -#: ../src/iop/denoiseprofile.c:3896 +#: ../src/iop/denoiseprofile.c:3900 msgid "" "upgrade the variance stabilizing algorithm.\n" "new algorithm extends the current one.\n" @@ -15897,68 +16466,68 @@ "elmosódottságot." #. deblurring presets -#: ../src/iop/diffuse.c:219 +#: ../src/iop/diffuse.c:246 msgid "lens deblur: soft" msgstr "lencse homálytalanítás: lágy" -#: ../src/iop/diffuse.c:244 +#: ../src/iop/diffuse.c:271 msgid "lens deblur: medium" msgstr "lencse homálytalanítás: közepes" -#: ../src/iop/diffuse.c:269 +#: ../src/iop/diffuse.c:296 msgid "lens deblur: hard" msgstr "lencse homálytalanítás: kemény" -#: ../src/iop/diffuse.c:295 +#: ../src/iop/diffuse.c:322 msgid "dehaze" msgstr "párátlanít" -#: ../src/iop/diffuse.c:321 +#: ../src/iop/diffuse.c:348 msgid "denoise: fine" msgstr "zajszűrés: finom" -#: ../src/iop/diffuse.c:346 +#: ../src/iop/diffuse.c:373 msgid "denoise: medium" msgstr "zajszűrés: közepes" -#: ../src/iop/diffuse.c:371 +#: ../src/iop/diffuse.c:398 msgid "denoise: coarse" msgstr "zajszűrés: durva" -#: ../src/iop/diffuse.c:446 +#: ../src/iop/diffuse.c:473 msgid "sharpen demosaicing: no AA filter" msgstr "demosaic élesítés: nincs AA-szűrő" -#: ../src/iop/diffuse.c:472 +#: ../src/iop/diffuse.c:499 msgid "sharpen demosaicing: AA filter" msgstr "demosaic élesítés: AA-szűrő" -#: ../src/iop/diffuse.c:499 +#: ../src/iop/diffuse.c:526 msgid "simulate watercolor" msgstr "vízfesték szimulálás" -#: ../src/iop/diffuse.c:524 +#: ../src/iop/diffuse.c:551 msgid "simulate line drawing" msgstr "vonalrajz szimulálás" -#: ../src/iop/diffuse.c:576 +#: ../src/iop/diffuse.c:603 msgid "inpaint highlights" msgstr "csúcsfények befestése" #. fast presets for slow hardware -#: ../src/iop/diffuse.c:603 +#: ../src/iop/diffuse.c:630 msgid "sharpness: fast" msgstr "élesség: gyors" -#: ../src/iop/diffuse.c:655 +#: ../src/iop/diffuse.c:682 msgid "sharpness: strong" msgstr "élesség: erős" -#: ../src/iop/diffuse.c:680 +#: ../src/iop/diffuse.c:707 msgid "local contrast: fast" msgstr "lokális kontraszt: gyors" -#: ../src/iop/diffuse.c:1391 ../src/iop/diffuse.c:1666 +#: ../src/iop/diffuse.c:1418 ../src/iop/diffuse.c:1693 msgid "diffuse/sharpen failed to allocate memory, check your RAM settings" msgstr "" "a diffúzió/élesítés nem tudott memóriát lefoglalni, ellenőrizze a RAM " @@ -15966,13 +16535,13 @@ #. Additional parameters #. Camera settings -#: ../src/iop/diffuse.c:1782 ../src/iop/splittoning.c:537 +#: ../src/iop/diffuse.c:1797 ../src/iop/splittoning.c:533 #: ../src/libs/camera.c:486 msgctxt "section" msgid "properties" msgstr "tulajdonságok" -#: ../src/iop/diffuse.c:1788 +#: ../src/iop/diffuse.c:1803 msgid "" "more iterations make the effect stronger but the module slower.\n" "this is analogous to giving more time to the diffusion reaction.\n" @@ -15984,7 +16553,7 @@ "ha élesítést vagy befestést tervez,\n" "a több iteráció segíti a rekonstrukciót." -#: ../src/iop/diffuse.c:1797 +#: ../src/iop/diffuse.c:1812 msgid "" "main scale of the diffusion.\n" "zero makes diffusion act on the finest details more heavily.\n" @@ -15999,7 +16568,7 @@ "homálytalanításhoz és zajtalanításhoz állítsa nullára.\n" "növelje, hogy inkább a lokális kontrasztra hasson." -#: ../src/iop/diffuse.c:1807 +#: ../src/iop/diffuse.c:1822 msgid "" "width of the diffusion around the central radius.\n" "high values diffuse on a large band of radii.\n" @@ -16013,12 +16582,12 @@ "ha elmosódásmentesítést tervez,\n" "a sugárnak a lencseelmosódás mérete körülinek kell lennie." -#: ../src/iop/diffuse.c:1814 +#: ../src/iop/diffuse.c:1829 msgctxt "section" msgid "speed (sharpen ↔ diffuse)" msgstr "sebesség (élesít ↔ szétszór)" -#: ../src/iop/diffuse.c:1821 +#: ../src/iop/diffuse.c:1836 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 1st order anisotropy (set below).\n" @@ -16034,7 +16603,7 @@ "pozitív értékek szórnak és elmosnak,\n" "a nullának nincs hatása." -#: ../src/iop/diffuse.c:1831 +#: ../src/iop/diffuse.c:1846 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 2nd order anisotropy (set below).\n" @@ -16050,7 +16619,7 @@ "pozitív értékek szórnak és elmosnak,\n" "a nullának nincs hatása." -#: ../src/iop/diffuse.c:1841 +#: ../src/iop/diffuse.c:1856 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 3rd order anisotropy (set below).\n" @@ -16066,7 +16635,7 @@ "pozitív értékek szórnak és elmosnak,\n" "a nullának nincs hatása." -#: ../src/iop/diffuse.c:1851 +#: ../src/iop/diffuse.c:1866 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 4th order anisotropy (set below).\n" @@ -16082,12 +16651,12 @@ "pozitív értékek szórnak és elmosnak,\n" "a nullának nincs hatása." -#: ../src/iop/diffuse.c:1857 +#: ../src/iop/diffuse.c:1872 msgctxt "section" msgid "direction" msgstr "irány" -#: ../src/iop/diffuse.c:1864 +#: ../src/iop/diffuse.c:1879 msgid "" "direction of 1st order speed (set above).\n" "\n" @@ -16101,7 +16670,7 @@ "pozitív értékkel jobban elkerüli az éleket (izofotó vonalak),\n" "nulla érték mindkettőre egyenlően hat (izotróp)." -#: ../src/iop/diffuse.c:1873 +#: ../src/iop/diffuse.c:1888 msgid "" "direction of 2nd order speed (set above).\n" "\n" @@ -16115,7 +16684,7 @@ "pozitív értékkel jobban elkerüli az éleket (izofotó vonalak),\n" "nulla érték mindkettőre egyenlően hat (izotróp)." -#: ../src/iop/diffuse.c:1882 +#: ../src/iop/diffuse.c:1897 msgid "" "direction of 3rd order speed (set above).\n" "\n" @@ -16129,7 +16698,7 @@ "pozitív értékkel jobban elkerüli az éleket (izofotó vonalak),\n" "nulla érték mindkettőre egyenlően hat (izotróp)." -#: ../src/iop/diffuse.c:1891 +#: ../src/iop/diffuse.c:1906 msgid "" "direction of 4th order speed (set above).\n" "\n" @@ -16143,12 +16712,12 @@ "pozitív értékkel jobban elkerüli az éleket (izofotó vonalak),\n" "nulla érték mindkettőre egyenlően hat (izotróp)." -#: ../src/iop/diffuse.c:1897 +#: ../src/iop/diffuse.c:1912 msgctxt "section" msgid "edge management" msgstr "élkezelés" -#: ../src/iop/diffuse.c:1904 +#: ../src/iop/diffuse.c:1919 msgid "" "increase or decrease the sharpness of the highest frequencies.\n" "can be used to keep details after blooming,\n" @@ -16158,7 +16727,7 @@ "bloom effektus után a részletek megtartására használható,\n" "önálló élesítéshez állítsa a sebességet negatív értékekre." -#: ../src/iop/diffuse.c:1911 +#: ../src/iop/diffuse.c:1926 msgid "" "define the sensitivity of the variance penalty for edges.\n" "increase to exclude more edges from diffusion,\n" @@ -16168,7 +16737,7 @@ "növelje, hogy több élt kizárjon a diffúzióból,\n" "ha rojtok vagy fényudvarok jelennek meg." -#: ../src/iop/diffuse.c:1918 +#: ../src/iop/diffuse.c:1933 msgid "" "define the variance threshold between edge amplification and penalty.\n" "decrease if you want pixels on smooth surfaces get a boost,\n" @@ -16181,12 +16750,12 @@ "növelje, ha zajt lát a sima felületeken, vagy\n" "ha a sötét területek túl élesnek tűnnek a világos területekhez képest." -#: ../src/iop/diffuse.c:1924 +#: ../src/iop/diffuse.c:1939 msgctxt "section" msgid "diffusion spatiality" msgstr "diffúzió térbelisége" -#: ../src/iop/diffuse.c:1931 +#: ../src/iop/diffuse.c:1946 msgid "" "luminance threshold for the mask.\n" "0. disables the luminance masking and applies the module on the whole " @@ -16205,7 +16774,7 @@ msgstr "szétszórás vagy poszterizálás" #: ../src/iop/dither.c:112 -msgid "dithering|posterization|reduce bit-depth" +msgid "dithering|posterization|reduce bit depth" msgstr "szétszórás|poszterizálás|bitmélység csökkentése" #: ../src/iop/dither.c:117 @@ -16221,23 +16790,23 @@ msgstr "korrekciós, művészi" #. add the preset. -#: ../src/iop/dither.c:147 +#: ../src/iop/dither.c:149 msgid "dither" msgstr "szórás" -#: ../src/iop/dither.c:759 +#: ../src/iop/dither.c:761 msgid "radius for blurring step" msgstr "elmosási lépés sugara" -#: ../src/iop/dither.c:771 +#: ../src/iop/dither.c:773 msgid "the gradient range where to apply random dither" msgstr "az átmenet tartomány, amin a véletlen szórás használva lesz" -#: ../src/iop/dither.c:772 +#: ../src/iop/dither.c:774 msgid "gradient range" msgstr "átmenet tartomány" -#: ../src/iop/dither.c:780 +#: ../src/iop/dither.c:782 msgid "damping level of random dither" msgstr "a véletlen szórás csillapítási szintje" @@ -16245,13 +16814,13 @@ msgid "legacy equalizer" msgstr "régebbi equalizer" -#: ../src/iop/equalizer.c:110 +#: ../src/iop/equalizer.c:112 msgid "" "this module is deprecated. better use contrast equalizer module instead." msgstr "" "ez a modul elavult. jobb, ha helyette a kontraszt equalizer modult használja." -#: ../src/iop/equalizer.c:238 +#: ../src/iop/equalizer.c:240 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -16270,33 +16839,33 @@ "állítaná –\n" "egy színbiztos világosítási módszerrel, hasonlóan az ISO érték növeléséhez" -#: ../src/iop/exposure.c:279 +#: ../src/iop/exposure.c:301 msgid "magic lantern defaults" msgstr "Magic Lantern alapértelmezések" -#: ../src/iop/exposure.c:351 ../src/iop/rawoverexposed.c:135 -#: ../src/iop/rawoverexposed.c:254 +#: ../src/iop/exposure.c:373 ../src/iop/rawoverexposed.c:137 +#: ../src/iop/rawoverexposed.c:256 #, c-format msgid "failed to get raw buffer from image `%s'" msgstr "raw puffer lekérése sikertelen „%s” képből" -#: ../src/iop/exposure.c:629 +#: ../src/iop/exposure.c:647 #, no-c-format msgid "compensate camera exposure (%+.1f EV)" msgstr "fényképező expozíciójának kompenzálása (%+.1f EV)" #. Write report in GUI -#: ../src/iop/exposure.c:813 +#: ../src/iop/exposure.c:831 #, c-format msgid "L : \t%.1f %%" msgstr "L : \t%.1f %%" -#: ../src/iop/exposure.c:945 ../src/libs/history.c:953 +#: ../src/iop/exposure.c:963 ../src/libs/history.c:953 #, c-format msgid "%.2f EV" msgstr "%.2f FÉ" -#: ../src/iop/exposure.c:1113 +#: ../src/iop/exposure.c:1131 msgid "" "automatically remove the camera exposure bias\n" "this is useful if you exposed the image to the right." @@ -16304,29 +16873,29 @@ "automatikusan eltávolítja a fényképező expozíció eltolást\n" "hasznos, ha a képet jobbra exponálta." -#: ../src/iop/exposure.c:1132 +#: ../src/iop/exposure.c:1150 #, no-c-format msgid "where in the histogram to meter for deflicking. E.g. 50% is median" msgstr "" "villódzásmentesítéshez a hisztogram melyik részén történjen a mérés. 50% a " "középérték" -#: ../src/iop/exposure.c:1138 +#: ../src/iop/exposure.c:1156 msgid "" "where to place the exposure level for processed pics, EV below overexposure." msgstr "" "hol helyezkedjen el a feldolgozott képek expozíciós szintje, FÉ a " "túlexponálás alatt." -#: ../src/iop/exposure.c:1142 +#: ../src/iop/exposure.c:1160 msgid "computed EC: " msgstr "kiszámított EK: " -#: ../src/iop/exposure.c:1145 +#: ../src/iop/exposure.c:1163 msgid "what exposure correction has actually been used" msgstr "a jelenleg használatban lévő expozíciókompenzáció" -#: ../src/iop/exposure.c:1164 +#: ../src/iop/exposure.c:1182 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -16338,11 +16907,11 @@ "ha rosszul van beállítva, levágja a gamut fekete-közeli színeit\n" "az RGB érték negatívba tolásával." -#: ../src/iop/exposure.c:1174 -msgid "spot exposure mapping" -msgstr "folt-expozícióleképezés" +#: ../src/iop/exposure.c:1192 +msgid "area exposure mapping" +msgstr "területi expozícióleképezés" -#: ../src/iop/exposure.c:1180 +#: ../src/iop/exposure.c:1198 msgid "" "define a target brightness, in terms of exposure,\n" "for a selected region of the image (the control sample),\n" @@ -16358,7 +16927,7 @@ "vagy a képsorozat egy nem mozgó és\n" "egyenletesen megvilágított felülete." -#: ../src/iop/exposure.c:1189 +#: ../src/iop/exposure.c:1207 msgid "" "\"correction\" automatically adjust exposure\n" "such that the input lightness is mapped to the target.\n" @@ -16370,11 +16939,11 @@ "„mérés”: egyszerűen megmutatja, hogy az expozíciókompenzáció\n" "hogyan képezi le a bemeneti színt, így használható a cél meghatározására." -#: ../src/iop/exposure.c:1215 +#: ../src/iop/exposure.c:1233 msgid "L : \tN/A" msgstr "L : \tN/A" -#: ../src/iop/exposure.c:1233 +#: ../src/iop/exposure.c:1251 msgid "the desired target exposure after mapping" msgstr "a leképezés utáni kívánt expozíciós cél" @@ -16382,53 +16951,53 @@ msgid "this module is deprecated. better use filmic rgb module instead." msgstr "ez a modul elavult. jobb, ha helyette a filmes rgb modult használja." -#: ../src/iop/filmic.c:304 +#: ../src/iop/filmic.c:333 msgid "09 EV (low-key)" msgstr "09 FÉ (low-key)" -#: ../src/iop/filmic.c:312 +#: ../src/iop/filmic.c:341 msgid "10 EV (indoors)" msgstr "10 FÉ (beltér)" -#: ../src/iop/filmic.c:320 +#: ../src/iop/filmic.c:349 msgid "11 EV (dim outdoors)" msgstr "11 FÉ (borús kültér)" -#: ../src/iop/filmic.c:328 +#: ../src/iop/filmic.c:357 msgid "12 EV (outdoors)" msgstr "12 FÉ (kültér)" -#: ../src/iop/filmic.c:336 +#: ../src/iop/filmic.c:365 msgid "13 EV (bright outdoors)" msgstr "13 FÉ (fényes kültér)" -#: ../src/iop/filmic.c:344 +#: ../src/iop/filmic.c:373 msgid "14 EV (backlighting)" msgstr "14 FÉ (ellenfény)" -#: ../src/iop/filmic.c:352 +#: ../src/iop/filmic.c:381 msgid "15 EV (sunset)" msgstr "15 FÉ (naplemente)" -#: ../src/iop/filmic.c:360 +#: ../src/iop/filmic.c:389 msgid "16 EV (HDR)" msgstr "16 EV (HDR)" -#: ../src/iop/filmic.c:368 +#: ../src/iop/filmic.c:397 msgid "18 EV (HDR++)" msgstr "18 EV (HDR++)" -#: ../src/iop/filmic.c:1480 +#: ../src/iop/filmic.c:1505 msgid "read-only graph, use the parameters below to set the nodes" msgstr "" "csak olvasható grafikon, használja a lenti paramétereket a pontok állítására" -#: ../src/iop/filmic.c:1484 +#: ../src/iop/filmic.c:1509 msgctxt "section" msgid "logarithmic shaper" msgstr "logaritmikus formáló" -#: ../src/iop/filmic.c:1492 +#: ../src/iop/filmic.c:1517 msgid "" "adjust to match the average luminance of the subject.\n" "except in back-lighting situations, this should be around 18%." @@ -16436,7 +17005,7 @@ "állítsa úgy, hogy illeszkedjen a tárgy átlagos fénysűrűségéhez.\n" "a szembefényes témák kivételével 18% körül kell legyen." -#: ../src/iop/filmic.c:1504 ../src/iop/filmicrgb.c:4442 +#: ../src/iop/filmic.c:1529 ../src/iop/filmicrgb.c:4506 msgid "" "number of stops between middle gray and pure white.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16446,7 +17015,7 @@ "ez megfelel egy fénymérő által a helyszínen mutatott értéknek.\n" "állítsa be, hogy elkerülje a levágást" -#: ../src/iop/filmic.c:1517 ../src/iop/filmicrgb.c:4453 +#: ../src/iop/filmic.c:1542 ../src/iop/filmicrgb.c:4517 msgid "" "number of stops between middle gray and pure black.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16458,20 +17027,20 @@ "növelje a nagyobb kontrasztért.\n" "csökkentse a sötét területek részleteinek visszaállításához." -#: ../src/iop/filmic.c:1529 +#: ../src/iop/filmic.c:1554 msgid "" -"enlarge or shrink the computed dynamic range.\n" +"increase or decrease the computed dynamic range.\n" "useful in conjunction with \"auto tune levels\"." msgstr "" -"a számított dinamikatartomány bővítése vagy zsugorítása.\n" +"a számított dinamikatartomány növelése vagy csökkentése.\n" "a „szintek automatikus hangolásával” összefüggésben hasznos." -#: ../src/iop/filmic.c:1535 ../src/iop/filmicrgb.c:4467 -#: ../src/iop/profile_gamma.c:659 +#: ../src/iop/filmic.c:1560 ../src/iop/filmicrgb.c:4531 +#: ../src/iop/profile_gamma.c:673 msgid "auto tune levels" msgstr "szintek automatikus beállítása" -#: ../src/iop/filmic.c:1538 +#: ../src/iop/filmic.c:1563 msgid "" "try to optimize the settings with some guessing.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16483,12 +17052,12 @@ "jobban működik tájképeknél és egyenletesen megvilágított képeknél,\n" "de megbukik a high-key és low-key fotókon." -#: ../src/iop/filmic.c:1543 +#: ../src/iop/filmic.c:1568 msgctxt "section" msgid "filmic S curve" msgstr "filmes S-görbe" -#: ../src/iop/filmic.c:1550 ../src/iop/filmicrgb.c:4554 +#: ../src/iop/filmic.c:1575 ../src/iop/filmicrgb.c:4618 msgid "" "slope of the linear part of the curve\n" "affects mostly the mid-tones" @@ -16497,12 +17066,12 @@ "főként a középtónusokat érinti" #. geotagging -#: ../src/iop/filmic.c:1557 ../src/iop/filmicrgb.c:4563 -#: ../src/libs/metadata_view.c:157 +#: ../src/iop/filmic.c:1582 ../src/iop/filmicrgb.c:4627 +#: ../src/libs/metadata_view.c:161 msgid "latitude" msgstr "szélesség" -#: ../src/iop/filmic.c:1560 +#: ../src/iop/filmic.c:1585 msgid "" "width of the linear domain in the middle of the curve.\n" "increase to get more contrast at the extreme luminances.\n" @@ -16512,11 +17081,11 @@ "növelje a nagyobb kontraszthoz szélsőséges fénysűrűségeknél.\n" "nincs hatással a középtónusokra." -#: ../src/iop/filmic.c:1567 +#: ../src/iop/filmic.c:1592 msgid "shadows/highlights balance" msgstr "árnyék/csúcsfény egyensúly" -#: ../src/iop/filmic.c:1570 ../src/iop/filmicrgb.c:4574 +#: ../src/iop/filmic.c:1595 ../src/iop/filmicrgb.c:4638 msgid "" "slides the latitude along the slope\n" "to give more room to shadows or highlights.\n" @@ -16528,7 +17097,7 @@ "használja, ha több részletre van szüksége\n" "a hisztogram egyik szélénél." -#: ../src/iop/filmic.c:1580 +#: ../src/iop/filmic.c:1605 msgid "" "desaturates the input of the module globally.\n" "you need to set this value below 100%\n" @@ -16538,7 +17107,7 @@ "100% alá kell állítsa az értékét,\n" "ha a színtelítettség megőrzése be van kapcsolva." -#: ../src/iop/filmic.c:1590 +#: ../src/iop/filmic.c:1615 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16549,42 +17118,42 @@ "csökkentse, ha az árnyékok vagy csúcsfények túltelítettek." #. Add export intent combo -#: ../src/iop/filmic.c:1600 ../src/libs/export.c:1227 +#: ../src/iop/filmic.c:1625 ../src/libs/export.c:1339 #: ../src/libs/print_settings.c:2473 ../src/libs/print_settings.c:2820 -#: ../src/views/darkroom.c:2524 ../src/views/lighttable.c:1182 +#: ../src/views/darkroom.c:2365 ../src/views/lighttable.c:1182 msgid "intent" msgstr "szándék" -#: ../src/iop/filmic.c:1601 +#: ../src/iop/filmic.c:1626 msgid "contrasted" msgstr "kontrasztos" #. cubic spline -#: ../src/iop/filmic.c:1602 +#: ../src/iop/filmic.c:1627 msgid "faded" msgstr "kifakult" #. centripetal spline -#: ../src/iop/filmic.c:1603 ../src/iop/profile_gamma.c:621 +#: ../src/iop/filmic.c:1628 ../src/iop/profile_gamma.c:635 msgid "linear" msgstr "lineáris" #. monotonic spline -#: ../src/iop/filmic.c:1604 +#: ../src/iop/filmic.c:1629 msgid "optimized" msgstr "optimalizált" -#: ../src/iop/filmic.c:1606 +#: ../src/iop/filmic.c:1631 msgid "change this method if you see reversed contrast or faded blacks" msgstr "" "módosítsd a módszert, ha megfordult kontrasztot vagy kifakult feketéket látsz" #. Preserve color -#: ../src/iop/filmic.c:1610 +#: ../src/iop/filmic.c:1635 msgid "preserve the chrominance" msgstr "színesség megőrzése" -#: ../src/iop/filmic.c:1612 +#: ../src/iop/filmic.c:1637 msgid "" "ensure the original color are preserved.\n" "may reinforce chromatic aberrations.\n" @@ -16594,12 +17163,12 @@ "felerősítheti a kromatikus aberrációt.\n" "ezt a módot használva kézzel kell beállítania a telítettséget." -#: ../src/iop/filmic.c:1622 +#: ../src/iop/filmic.c:1647 msgctxt "section" msgid "destination/display" msgstr "cél/kijelző" -#: ../src/iop/filmic.c:1640 ../src/iop/filmicrgb.c:4593 +#: ../src/iop/filmic.c:1665 ../src/iop/filmicrgb.c:4657 msgid "" "luminance of output pure black, this should be 0%\n" "except if you want a faded look" @@ -16607,7 +17176,7 @@ "a tiszta fekete kimenet fénysűrűsége, ez 0% kell legyen\n" "kivéve ha fakó kinézetet szeretne" -#: ../src/iop/filmic.c:1649 ../src/iop/filmicrgb.c:4600 +#: ../src/iop/filmic.c:1674 ../src/iop/filmicrgb.c:4664 msgid "" "middle gray value of the target display or color space.\n" "you should never touch that unless you know what you are doing." @@ -16615,7 +17184,7 @@ "a cél megjelenítő vagy színtér középszürke értéke.\n" "ne állítsa el hacsak nem tudja mit csinál." -#: ../src/iop/filmic.c:1658 ../src/iop/filmicrgb.c:4607 +#: ../src/iop/filmic.c:1683 ../src/iop/filmicrgb.c:4671 msgid "" "luminance of output pure white, this should be 100%\n" "except if you want a faded look" @@ -16623,11 +17192,11 @@ "a tiszta fehér fénysűrűsége, ami 100% kell legyen\n" "kivéve ha fakó kinézetet szeretne" -#: ../src/iop/filmic.c:1664 +#: ../src/iop/filmic.c:1689 msgid "target gamma" msgstr "cél gamma" -#: ../src/iop/filmic.c:1666 +#: ../src/iop/filmic.c:1691 msgid "" "power or gamma of the transfer function\n" "of the display or color space.\n" @@ -16658,7 +17227,7 @@ "előkészítéséhez, SDR dinamikájú képernyőkhöz és nyomtatáshoz\n" "miközben nem destruktív módon gátolja meg a vágást" -#: ../src/iop/filmicrgb.c:1310 +#: ../src/iop/filmicrgb.c:1365 msgid "" "filmic highlights reconstruction failed to allocate memory, check your RAM " "settings" @@ -16666,71 +17235,71 @@ "filmes csúcsfény-rekonstrukció nem tudott memóriát lefoglalni, ellenőrizze a " "RAM beállításokat" -#: ../src/iop/filmicrgb.c:2301 +#: ../src/iop/filmicrgb.c:2369 msgid "filmic highlights reconstruction failed to allocate memory on GPU" msgstr "a filmes csúcsfény-rekonstrukció nem tudott GPU-memóriát lefoglalni" -#: ../src/iop/filmicrgb.c:2419 +#: ../src/iop/filmicrgb.c:2487 msgid "filmic works only on RGB input" msgstr "a filmes modul csak RGB bemeneten működik" -#: ../src/iop/filmicrgb.c:3484 +#: ../src/iop/filmicrgb.c:3548 msgid "look only" msgstr "csak kinézet" -#: ../src/iop/filmicrgb.c:3486 +#: ../src/iop/filmicrgb.c:3550 msgid "look + mapping (lin)" msgstr "kinézet + leképezés (lin)" -#: ../src/iop/filmicrgb.c:3488 +#: ../src/iop/filmicrgb.c:3552 msgid "look + mapping (log)" msgstr "kinézet + leképezés (log)" -#: ../src/iop/filmicrgb.c:3490 +#: ../src/iop/filmicrgb.c:3554 msgid "dynamic range mapping" msgstr "dinamikatartomány leképezés" -#: ../src/iop/filmicrgb.c:3857 +#: ../src/iop/filmicrgb.c:3921 #, c-format msgid "(%.0f %%)" msgstr "(%.0f %%)" -#: ../src/iop/filmicrgb.c:3873 +#: ../src/iop/filmicrgb.c:3937 #, no-c-format msgid "% display" msgstr "% képernyő" -#: ../src/iop/filmicrgb.c:3885 +#: ../src/iop/filmicrgb.c:3949 msgid "EV scene" msgstr "FÉ látvány" -#: ../src/iop/filmicrgb.c:3889 +#: ../src/iop/filmicrgb.c:3953 #, no-c-format msgid "% camera" msgstr "% kamera" #. Page DISPLAY -#: ../src/iop/filmicrgb.c:3925 ../src/iop/filmicrgb.c:4587 +#: ../src/iop/filmicrgb.c:3989 ../src/iop/filmicrgb.c:4651 msgid "display" msgstr "képernyő" #. axis legend -#: ../src/iop/filmicrgb.c:3934 +#: ../src/iop/filmicrgb.c:3998 msgid "(%)" msgstr "(%)" #. Page SCENE -#: ../src/iop/filmicrgb.c:3943 ../src/iop/filmicrgb.c:4422 +#: ../src/iop/filmicrgb.c:4007 ../src/iop/filmicrgb.c:4486 msgid "scene" msgstr "látvány" #. axis legend -#: ../src/iop/filmicrgb.c:3952 +#: ../src/iop/filmicrgb.c:4016 msgid "(EV)" msgstr "(FÉ)" #. we are over the graph area -#: ../src/iop/filmicrgb.c:4364 +#: ../src/iop/filmicrgb.c:4428 msgid "" "use the parameters below to set the nodes.\n" "the bright curve is the filmic tone mapping curve\n" @@ -16740,11 +17309,11 @@ "a világos görbe a filmes tónusleképezés görbéje.\n" "a sötét görbe a telítetlenség görbéje." -#: ../src/iop/filmicrgb.c:4370 +#: ../src/iop/filmicrgb.c:4434 msgid "toggle axis labels and values display" msgstr "tengely feliratok és értékek kijelzésének kapcsolása" -#: ../src/iop/filmicrgb.c:4374 +#: ../src/iop/filmicrgb.c:4438 msgid "" "cycle through graph views.\n" "left click: cycle forward.\n" @@ -16756,7 +17325,7 @@ "jobb klikk: váltás vissza.\n" "dupla klikk: visszaállítás kinézetre." -#: ../src/iop/filmicrgb.c:4431 +#: ../src/iop/filmicrgb.c:4495 #, no-c-format msgid "" "adjust to match the average luminance of the image's subject.\n" @@ -16767,15 +17336,15 @@ "az itt beírt érték később 18,45%-ra lesz leképezve.\n" "csökkentse az értéket az általános fényerő növeléséhez." -#: ../src/iop/filmicrgb.c:4461 +#: ../src/iop/filmicrgb.c:4525 msgid "" -"symmetrically enlarge or shrink the computed dynamic range.\n" +"symmetrically increase or decrease the computed dynamic range.\n" "useful to give a safety margin to extreme luminances." msgstr "" -"szimmetrikusan bővíti vagy zsugorítja a számított dinamikatartományt.\n" +"szimmetrikusan növeli vagy csökkenti a kiszámított dinamikatartományt.\n" "extrém fénysűrűségnél biztonságos keretet tud adni." -#: ../src/iop/filmicrgb.c:4468 +#: ../src/iop/filmicrgb.c:4532 msgid "" "try to optimize the settings with some statistical assumptions.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16784,24 +17353,25 @@ "this is not an artificial intelligence, but a simple guess.\n" "ensure you understand its assumptions before using it." msgstr "" -"próbálja optimalizálni a beállításokat némi statisztikai feltételezéssel.\n" +"megpróbálja optimalizálni a beállításokat némi statisztikai " +"feltételezéssel.\n" "illeszti a fénysűrűség tartományt a hisztogram határain belül.\n" "jobban működik tájképeknél és egyenletesen megvilágított képeknél,\n" -"de megbukik a high-key és low-key és magas ISO-jú fotókon.\n" -"ez nem egy mesterséges intelligencia, csak egy sima találgatás.\n" -"a használata előtt győződjön meg arról, hogy megérti feltételezéseit." +"de megbukik a high-key, low-key és magas ISO-jú fotókon.\n" +"ez egyáltalán nem mesterséges intelligencia, csak egy szimpla találgatás.\n" +"a használata előtt győződjön meg arról, hogy megérti ezeket feltételezéseket." #. Page RECONSTRUCT -#: ../src/iop/filmicrgb.c:4477 +#: ../src/iop/filmicrgb.c:4541 msgid "reconstruct" msgstr "rekonstruálás" -#: ../src/iop/filmicrgb.c:4479 +#: ../src/iop/filmicrgb.c:4543 msgctxt "section" msgid "highlights clipping" msgstr "csúcsfényvágás" -#: ../src/iop/filmicrgb.c:4487 +#: ../src/iop/filmicrgb.c:4551 msgid "" "set the exposure threshold upon which\n" "clipped highlights get reconstructed.\n" @@ -16817,7 +17387,7 @@ "csökkentve nagyobb terület kerül bele,\n" "növelve több területet zár ki." -#: ../src/iop/filmicrgb.c:4497 +#: ../src/iop/filmicrgb.c:4561 msgid "" "soften the transition between clipped highlights and valid pixels.\n" "decrease to make the transition harder and sharper,\n" @@ -16827,72 +17397,72 @@ "csökkentve az átmenet keményebb és élesebb lesz,\n" "növelve az átmenet lágyabb és elmosottabb lesz." -#: ../src/iop/filmicrgb.c:4503 ../src/iop/filmicrgb.c:4504 +#: ../src/iop/filmicrgb.c:4567 ../src/iop/filmicrgb.c:4568 msgid "display highlight reconstruction mask" msgstr "csúcsfény-rekonstrukciós maszk megjelenítése" -#: ../src/iop/filmicrgb.c:4511 +#: ../src/iop/filmicrgb.c:4575 msgctxt "section" msgid "balance" -msgstr "balansz" +msgstr "egyensúly" -#: ../src/iop/filmicrgb.c:4518 +#: ../src/iop/filmicrgb.c:4582 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between inpainting a smooth color gradient,\n" +"inpainting a smooth color gradient\n" "or trying to recover the textured details.\n" "0% is an equal mix of both.\n" "increase if at least one RGB channel is not clipped.\n" "decrease if all RGB channels are clipped over large areas." msgstr "" -"döntse el, melyik rekonstrukciós stratégiát részesíti előnyben,\n" -"a simított színátmenet restaurálás\n" -"és a texturált részletek visszaállítására tett kísérlet között.\n" +"döntse el, melyik rekonstrukciós stratégiát részesíti előnyben:\n" +"egy egyenletes színátmenettel történő restaurálását,\n" +"vagy a texturált részletek visszaállítására tett kísérletet.\n" "a 0% a kettő egyenlő arányú keveréke.\n" "növelje, ha legalább egy RGB csatorna nincs levágva.\n" "csökkentse, ha az összes RGB csatorna nagyobb területen le van vágva." -#: ../src/iop/filmicrgb.c:4529 +#: ../src/iop/filmicrgb.c:4593 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between blooming highlights like film does,\n" +"blooming highlights like film does\n" "or trying to recover sharp details.\n" "0% is an equal mix of both.\n" "increase if you want more details.\n" "decrease if you want more blur." msgstr "" -"döntse el, melyik rekonstrukciós stratégiát részesíti előnyben,\n" -"a filmnél ismert csúcsfény bloom\n" -"és az éles részletek visszaállítására tett kísérlet között.\n" +"döntse el, melyik rekonstrukciós stratégiát részesíti előnyben:\n" +"a filmre jellemző csúcsfény bloom\n" +"vagy az kemény részletek visszaállítására tett kísérlet.\n" "a 0% a kettő egyenlő arányú keveréke.\n" "növelje, ha több részletet szeretne.\n" "csökkentse, ha erősebb elmosást szeretne." -#: ../src/iop/filmicrgb.c:4541 +#: ../src/iop/filmicrgb.c:4605 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between recovering monochromatic highlights,\n" +"recovering monochromatic highlights\n" "or trying to recover colorful highlights.\n" "0% is an equal mix of both.\n" "increase if you want more color.\n" "decrease if you see magenta or out-of-gamut highlights." msgstr "" "döntse el, melyik rekonstrukciós stratégiát részesíti előnyben,\n" -"a monokróm csúcsfények visszaállítása\n" -"és a tarka csúcsfények visszaállítására tett kísérlet között.\n" +"a monokróm csúcsfények visszaállítását,\n" +"vagy a tarka csúcsfények visszaállítására tett kísérlet.\n" "a 0% a kettő egyenlő arányú keveréke.\n" "növelje, ha több színt szeretne.\n" "csökkentse, ha bíborszínű, vagy gamuton kívüli csúcsfényeket lát." #. Page LOOK -#: ../src/iop/filmicrgb.c:4549 +#: ../src/iop/filmicrgb.c:4613 msgid "look" msgstr "kinézet" -#: ../src/iop/filmicrgb.c:4559 +#: ../src/iop/filmicrgb.c:4623 msgid "" "equivalent to paper grade in analog.\n" "increase to make highlights brighter and less compressed.\n" @@ -16902,7 +17472,7 @@ "növelve a csúcsfények fényesebbek és kevésbé összenyomottak lesznek.\n" "csökkentve elnyomja a csúcsfényeket." -#: ../src/iop/filmicrgb.c:4567 +#: ../src/iop/filmicrgb.c:4631 msgid "" "width of the linear domain in the middle of the curve,\n" "increase to get more contrast and less desaturation at extreme luminances,\n" @@ -16916,7 +17486,7 @@ "tartományban.\n" "nincs hatása a középtónusokra." -#: ../src/iop/filmicrgb.c:4582 ../src/iop/filmicrgb.c:4730 +#: ../src/iop/filmicrgb.c:4646 ../src/iop/filmicrgb.c:4794 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16927,11 +17497,11 @@ "növelje, ha az árnyékok vagy csúcsfények nem elég telítettek." #. Page OPTIONS -#: ../src/iop/filmicrgb.c:4611 +#: ../src/iop/filmicrgb.c:4675 msgid "options" msgstr "opciók" -#: ../src/iop/filmicrgb.c:4616 +#: ../src/iop/filmicrgb.c:4680 msgid "" "v3 is darktable 3.0 desaturation method, same as color balance.\n" "v4 is a newer desaturation method, based on spectral purity of light." @@ -16939,7 +17509,7 @@ "v3 a darktable 3.0 deszaturációs módszere, hasonló mint a színegyensúly.\n" "v4 egy újabb, a fény spektrális tisztaságán alapuló deszaturációs módszer." -#: ../src/iop/filmicrgb.c:4620 +#: ../src/iop/filmicrgb.c:4684 msgid "" "ensure the original colors are preserved.\n" "may reinforce chromatic aberrations and chroma noise,\n" @@ -16949,7 +17519,7 @@ "felerősítheti a kromatikus aberrációt és a kromatikus zajt,\n" "ezért ne feledje azokat máshol megfelelően korrigálni." -#: ../src/iop/filmicrgb.c:4629 +#: ../src/iop/filmicrgb.c:4693 msgid "" "choose the desired curvature of the filmic spline in highlights.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -16961,7 +17531,7 @@ "a lágy alacsony görbületet használ, ami kevesebb árnyalati összenyomást " "eredményez." -#: ../src/iop/filmicrgb.c:4634 +#: ../src/iop/filmicrgb.c:4698 msgid "" "choose the desired curvature of the filmic spline in shadows.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -16973,7 +17543,7 @@ "a lágy alacsony görbületet használ, ami kevesebb árnyalati összenyomást " "eredményez." -#: ../src/iop/filmicrgb.c:4641 +#: ../src/iop/filmicrgb.c:4705 #, no-c-format msgid "" "enable to input custom middle-gray values.\n" @@ -16986,7 +17556,7 @@ "helyette javítsa a globális expozíciót az expozíció modullal.\n" "a sztenderd 18.45% középszürke használatához tiltsa le." -#: ../src/iop/filmicrgb.c:4648 +#: ../src/iop/filmicrgb.c:4712 msgid "" "enable to auto-set the look hardness depending on the scene white and black " "points.\n" @@ -16999,7 +17569,7 @@ "állítást.\n" "tiltsa le, ha kézzel szeretné állítani." -#: ../src/iop/filmicrgb.c:4654 +#: ../src/iop/filmicrgb.c:4718 msgid "" "run extra passes of chromaticity reconstruction.\n" "more iterations means more color propagation from neighborhood.\n" @@ -17011,7 +17581,7 @@ "így lassabb lesz, de hozadéka több természetes csúcsfény.\n" "ugyancsak segít egyes bonyolult, bíbor csúcsfényű esetekben." -#: ../src/iop/filmicrgb.c:4661 +#: ../src/iop/filmicrgb.c:4725 msgid "" "add statistical noise in reconstructed highlights.\n" "this avoids highlights to look too smooth\n" @@ -17023,7 +17593,7 @@ "ha a kép összességében zajos,\n" "így jobban beleolvad a kép többi részébe." -#: ../src/iop/filmicrgb.c:4668 +#: ../src/iop/filmicrgb.c:4732 msgid "" "choose the statistical distribution of noise.\n" "this is useful to match natural sensor noise pattern." @@ -17031,11 +17601,11 @@ "válassza ki a zaj statisztikai eloszlását.\n" "segítségével megfelelhet a szenzor természetes zajmintázatának." -#: ../src/iop/filmicrgb.c:4736 +#: ../src/iop/filmicrgb.c:4800 msgid "mid-tones saturation" msgstr "középtónusok telítettsége" -#: ../src/iop/filmicrgb.c:4737 +#: ../src/iop/filmicrgb.c:4801 msgid "" "desaturates the output of the module\n" "specifically at medium luminances.\n" @@ -17045,11 +17615,11 @@ "különösen közepes fénysűrűségnél.\n" "növelje, ha a középtónusok nem elég telítettek." -#: ../src/iop/filmicrgb.c:4743 +#: ../src/iop/filmicrgb.c:4807 msgid "highlights saturation mix" msgstr "csúcsfénytelítettség keverése" -#: ../src/iop/filmicrgb.c:4744 +#: ../src/iop/filmicrgb.c:4808 msgid "" "positive values ensure saturation is kept unchanged over the whole range.\n" "negative values bleach highlights at constant hue and luminance.\n" @@ -17074,39 +17644,39 @@ msgid "flip or rotate image by step of 90 degrees" msgstr "kép megfordítása, vagy forgatása 90 fokos lépésekben" -#: ../src/iop/flip.c:477 +#: ../src/iop/flip.c:475 msgid "no rotation" msgstr "nincs forgatás" -#: ../src/iop/flip.c:481 ../src/iop/flip.c:624 +#: ../src/iop/flip.c:479 ../src/iop/flip.c:622 msgid "flip horizontally" msgstr "vízszintes tükrözés" -#: ../src/iop/flip.c:485 ../src/iop/flip.c:628 +#: ../src/iop/flip.c:483 ../src/iop/flip.c:626 msgid "flip vertically" msgstr "függőleges tükrözés" -#: ../src/iop/flip.c:489 +#: ../src/iop/flip.c:487 msgid "rotate by -90 degrees" msgstr "forgatás -90 fokkal" -#: ../src/iop/flip.c:493 +#: ../src/iop/flip.c:491 msgid "rotate by 90 degrees" msgstr "forgatás 90 fokkal" -#: ../src/iop/flip.c:497 +#: ../src/iop/flip.c:495 msgid "rotate by 180 degrees" msgstr "forgatás 180 fokkal" -#: ../src/iop/flip.c:612 +#: ../src/iop/flip.c:610 msgid "transform" msgstr "transzformáció" -#: ../src/iop/flip.c:616 ../src/libs/live_view.c:293 +#: ../src/iop/flip.c:614 ../src/libs/live_view.c:293 msgid "rotate 90 degrees CCW" msgstr "forgatás 90 fokkal balra" -#: ../src/iop/flip.c:620 ../src/libs/live_view.c:294 +#: ../src/iop/flip.c:618 ../src/libs/live_view.c:294 msgid "rotate 90 degrees CW" msgstr "forgatás 90 fokkal jobbra" @@ -17123,15 +17693,15 @@ msgid "this module is deprecated. please use the filmic rgb module instead." msgstr "ez a modul elavult. kérem, használja helyette a filmes rgb modult." -#: ../src/iop/globaltonemap.c:625 ../src/libs/filters/colors.c:259 +#: ../src/iop/globaltonemap.c:658 ../src/libs/filters/colors.c:259 msgid "operator" msgstr "operátor" -#: ../src/iop/globaltonemap.c:626 +#: ../src/iop/globaltonemap.c:659 msgid "the global tonemap operator" msgstr "a globális tónustérképezés operátora" -#: ../src/iop/globaltonemap.c:629 +#: ../src/iop/globaltonemap.c:662 msgid "" "the bias for tonemapper controls the linearity, the higher the more details " "in blacks" @@ -17139,7 +17709,7 @@ "a tónustérképező eltolása a linearitást szabályozza, magasabb érték több " "fekete részletet eredményez" -#: ../src/iop/globaltonemap.c:633 +#: ../src/iop/globaltonemap.c:666 msgid "the target light for tonemapper specified as cd/m2" msgstr "a tónustérképező cél fénye, cd/m²-ben megadva" @@ -17203,11 +17773,11 @@ msgid "simulate an optical graduated neutral density filter" msgstr "optikai neutral density szűrőt szimulál" -#: ../src/iop/graduatednd.c:1114 +#: ../src/iop/graduatednd.c:1083 msgid "the density in EV for the filter" msgstr "a szűrő denzitása fényértékben" -#: ../src/iop/graduatednd.c:1119 +#: ../src/iop/graduatednd.c:1088 #, no-c-format msgid "" "hardness of graduation:\n" @@ -17216,55 +17786,55 @@ "átmenet keménysége:\n" "0% = lágy, 100% = kemény" -#: ../src/iop/graduatednd.c:1123 +#: ../src/iop/graduatednd.c:1092 msgid "rotation of filter -180 to 180 degrees" msgstr "szűrő forgatása -180 foktól 180 fokig" -#: ../src/iop/graduatednd.c:1136 +#: ../src/iop/graduatednd.c:1105 msgid "select the hue tone of filter" msgstr "árnyalat telítettség meghatározása" -#: ../src/iop/graduatednd.c:1142 +#: ../src/iop/graduatednd.c:1111 msgid "select the saturation of filter" msgstr "telítettség tónus kiválasztása" -#: ../src/iop/graduatednd.c:1153 +#: ../src/iop/graduatednd.c:1122 #, c-format msgid "[%s on nodes] change line rotation" msgstr "[%s pontokon] vonal forgatás módosítása" -#: ../src/iop/graduatednd.c:1154 +#: ../src/iop/graduatednd.c:1123 #, c-format msgid "[%s on line] move line" msgstr "[%s vonalon] vonal mozgatása" -#: ../src/iop/graduatednd.c:1156 +#: ../src/iop/graduatednd.c:1125 #, c-format msgid "[%s on line] change density" msgstr "[%s vonalon] denzitás módosítása" -#: ../src/iop/graduatednd.c:1158 +#: ../src/iop/graduatednd.c:1127 #, c-format msgid "[%s on line] change hardness" msgstr "[%s vonalon] keménység módosítása" -#: ../src/iop/grain.c:428 +#: ../src/iop/grain.c:444 msgid "grain" msgstr "szemcsézés" -#: ../src/iop/grain.c:433 +#: ../src/iop/grain.c:449 msgid "simulate silver grains from film" msgstr "a film ezüstszemcséit szimulálja" -#: ../src/iop/grain.c:582 +#: ../src/iop/grain.c:600 msgid "the grain size (~ISO of the film)" msgstr "szemcseméret (film ISO)" -#: ../src/iop/grain.c:586 +#: ../src/iop/grain.c:604 msgid "the strength of applied grain" msgstr "szemcsézettség erőssége" -#: ../src/iop/grain.c:590 +#: ../src/iop/grain.c:608 msgid "" "amount of mid-tones bias from the photographic paper response modeling. the " "greater the bias, the more pronounced the fall off of the grain in shadows " @@ -17285,15 +17855,15 @@ msgid "remove fog and atmospheric hazing from pictures" msgstr "eltávolítja a képről a ködöt és a légköri párát" -#: ../src/iop/hazeremoval.c:202 +#: ../src/iop/hazeremoval.c:204 msgid "amount of haze reduction" msgstr "páraeltávolítás mértéke" -#: ../src/iop/hazeremoval.c:204 +#: ../src/iop/hazeremoval.c:206 msgid "distance" msgstr "távolság" -#: ../src/iop/hazeremoval.c:206 +#: ../src/iop/hazeremoval.c:208 msgid "limit haze removal up to a specific spatial depth" msgstr "páraeltávolító korlátozása egy megadott térbeli mélységig" @@ -17307,11 +17877,11 @@ "elkerüli a bíbor csúcsfényeket és megpróbálja visszaállítani a csúcsfények " "színét" -#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:75 +#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:77 msgid "reconstruction, raw" msgstr "rekonstrukció, raw" -#: ../src/iop/highlights.c:923 +#: ../src/iop/highlights.c:1004 msgid "" "highlights: mode not available for this type of image. falling back to " "inpaint opposed." @@ -17319,50 +17889,64 @@ "csúcsfények: a mód nem érhető el ilyen típusú képeknél. visszatérés az " "ellentétes befestésére." -#: ../src/iop/highlights.c:1101 +#: ../src/iop/highlights.c:1184 msgid "highlight reconstruction method" msgstr "csúcsfény-rekonstrukciós módszer" -#: ../src/iop/highlights.c:1106 +#: ../src/iop/highlights.c:1189 msgid "" "manually adjust the clipping threshold mostly used against magenta " -"highlights\n" -"the mask icon shows the clipped areas.\n" +"highlights.\n" "you might use this for tuning 'laplacian', 'inpaint opposed' or " "'segmentation' modes,\n" "especially if camera white point is incorrect." msgstr "" "manuálisan állítja a vágási küszöböt, amelyet többnyire a bíbor csúcsfények " "ellen használnak\n" -"a maszk ikon megmutatja a levágott területeket.\n" "használható a „Laplace”, „ellentétes befestése” és „szakaszolás” módok " "finomhangolására,\n" "különösen, ha a kamera fehérpontja nem megfelelő." -#: ../src/iop/highlights.c:1117 +#: ../src/iop/highlights.c:1193 +msgid "" +"visualize clipped highlights in a false color representation.\n" +"the effective clipping level also depends on the reconstruction method." +msgstr "" +"a levágott csúcsfényeket hamis színes megjelenítésben ábrázolja.\n" +"a hatékony vágási szint a rekonstrukciós módszertől is függ." + +#: ../src/iop/highlights.c:1203 msgid "" "combine closely related clipped segments by morphological operations.\n" -"the mask button shows the exact positions of resulting segment borders." +"this often leads to improved color reconstruction for tiny segments before " +"dark background." msgstr "" -"morfológiai műveletekkel kombinálja a szorosan összefüggő vágott " -"szakaszokat.\n" -"a maszk gomb az eredményül kapott szegmensek szegélyeinek pontos helyzetét " -"mutatja." +"morfológiai műveletekkel egyesíti a szorosan összefüggő vágott szakaszokat.\n" +"ez gyakran a sötét háttér előtti apró szakaszok jobb színrekonstrukciójához " +"vezet." + +#: ../src/iop/highlights.c:1206 +msgid "visualize the combined segments in a false color representation." +msgstr "hamis színes megjelenítésben ábrázolja az egyesített szakaszokat." -#: ../src/iop/highlights.c:1125 +#: ../src/iop/highlights.c:1213 msgid "" "select inpainting after segmentation analysis.\n" -"increase to favour candidates found in segmentation analysis, decrease for " -"opposed means inpainting.\n" -"the mask button shows segments that are considered to have a good candidate." -msgstr "" -"befestés választása a szakaszolási elemzés után.\n" -"növelje a szakaszolási elemzés során talált jelöltek preferálásához, az " -"ellentétesek csökkentése befestést eredményez.\n" -"a maszk gomb azokat a szakaszokat jeleníti meg, amelyek jó jelöltnek lettek " -"elkönyvelve." +"increase to favor candidates found in segmentation analysis, decrease for " +"opposed means inpainting." +msgstr "" +"szakaszelemzés után választott befestés.\n" +"növelje a szakaszelemzés során talált jelöltek előnyben részesítése " +"érdekében, ellenkező esetben a csökkentése befestést jelent." + +#: ../src/iop/highlights.c:1216 +msgid "" +"visualize segments that are considered to have a good candidate in a false " +"color representation." +msgstr "" +"hamis színes megjelenítésben ábrázolja a jó jelöltnek tekintett szakaszokat." -#: ../src/iop/highlights.c:1136 +#: ../src/iop/highlights.c:1225 msgid "" "approximate lost data in regions with all photosites clipped, the effect " "depends on segment size and border gradients.\n" @@ -17383,17 +17967,17 @@ "(például elektromos vezetékeket), hogy a megőrizzék az újjáépített " "csúcsfényeket és elkerüljék az átmeneteket." -#: ../src/iop/highlights.c:1142 -msgid "" -"set strength of rebuilding in regions with all photosites clipped.\n" -"the mask buttons shows the effect that is added to already reconstructed " -"data." +#: ../src/iop/highlights.c:1231 +msgid "set strength of rebuilding in regions with all photosites clipped." msgstr "" -"állítsa be a csak levágott photosite-okat tartalmazó régiók újjáépítésének " -"erősségét\n" -"a maszk gombok a már rekonstruált adatokhoz hozzáadott hatást mutatják." +"beállítja a csak levágott photosite-okat tartalmazó régiók újraépítésének " +"erősségét." + +#: ../src/iop/highlights.c:1233 +msgid "show the effect that is added to already reconstructed data." +msgstr "megmutatja a már rekonstruált adatokhoz hozzáadott hatást." -#: ../src/iop/highlights.c:1152 +#: ../src/iop/highlights.c:1242 msgid "" "add noise to visually blend the reconstructed areas\n" "into the rest of the noisy image. useful at high ISO." @@ -17401,7 +17985,7 @@ "zajt ad hozzá, hogy a rekonstruált területek vizuálisan beleolvadjanak\n" "a zajos kép többi részébe. magas ISO-nál hasznos" -#: ../src/iop/highlights.c:1156 +#: ../src/iop/highlights.c:1246 msgid "" "increase if magenta highlights don't get fully corrected\n" "each new iteration brings a performance penalty." @@ -17409,7 +17993,7 @@ "növelje, ha a bíbor csúcsfények nem lettek tökéletesen korrigálva\n" "minden egyes újabb iteráció teljesítményvesztéssel jár." -#: ../src/iop/highlights.c:1161 +#: ../src/iop/highlights.c:1251 msgid "" "increase if magenta highlights don't get fully corrected.\n" "this may produce non-smooth boundaries between valid and clipped regions." @@ -17417,17 +18001,17 @@ "növelje, ha a bíbor csúcsfények nem lettek tökéletesen korrigálva\n" "az érvényes és a levágott területek között egyenetlen határokat hozhat létre." -#: ../src/iop/highlights.c:1165 +#: ../src/iop/highlights.c:1255 msgid "" "increase to correct larger clipped areas.\n" "large values bring huge performance penalties" msgstr "" -"növelje a nagyobb levágott területek korrigálásához.\n" +"növelje a nagyobb méretű levágott területek korrigálásához.\n" "a nagy értékek jelentős teljesítményvesztést okoznak" -#: ../src/iop/highlights.c:1169 -msgid "this module only works with non-monochrome RAW and sRAW" -msgstr "ez a modul csak nem monokróm RAW és sRAW képekkel működik" +#: ../src/iop/highlights.c:1259 +msgid "this module does not work with monochrome RAW files" +msgstr "ez a modul nem működik monokróm RAW fájlokkal" #: ../src/iop/highpass.c:72 msgid "highpass" @@ -17437,115 +18021,115 @@ msgid "isolate high frequencies in the image" msgstr "izolálja a kép magas frekvenciáit" -#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:135 +#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:107 msgid "linear or non-linear, Lab, scene-referred" msgstr "lineáris vagy nemlineáris, Lab, látványvonatkozású" -#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:136 ../src/iop/sharpen.c:96 +#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:108 ../src/iop/sharpen.c:98 msgid "frequential, Lab" msgstr "frekvenciális, Lab" -#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:137 +#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:109 msgid "special, Lab, scene-referred" msgstr "speciális, Lab, látványvonatkozású" -#: ../src/iop/highpass.c:383 +#: ../src/iop/highpass.c:378 msgid "the sharpness of highpass filter" msgstr "a felüláteresztő szűrő élessége" -#: ../src/iop/highpass.c:387 +#: ../src/iop/highpass.c:382 msgid "the contrast of highpass filter" msgstr "a felüláteresztő szűrő kontrasztja" -#: ../src/iop/hotpixels.c:67 +#: ../src/iop/hotpixels.c:69 msgid "hot pixels" msgstr "hotpixelek" -#: ../src/iop/hotpixels.c:72 +#: ../src/iop/hotpixels.c:74 msgid "remove abnormally bright pixels by dampening them with neighbors" msgstr "" "eltávolítja az abnormálisan fényes pixeleket, úgy, hogy tompítja őket a " "szomszédokkal" -#: ../src/iop/hotpixels.c:363 +#: ../src/iop/hotpixels.c:442 #, c-format msgid "fixed %d pixel" msgid_plural "fixed %d pixels" msgstr[0] "%d pixel kijavítva" msgstr[1] "%d pixel kijavítva" -#: ../src/iop/hotpixels.c:386 +#: ../src/iop/hotpixels.c:465 msgid "lower threshold for hot pixel" msgstr "alacsonyabb hotpixel küszöbszint" -#: ../src/iop/hotpixels.c:390 +#: ../src/iop/hotpixels.c:469 msgid "strength of hot pixel correction" msgstr "hotpixel korrekció erőssége" -#: ../src/iop/hotpixels.c:406 +#: ../src/iop/hotpixels.c:485 msgid "" "hot pixel correction\n" "only works for raw images." msgstr "a hotpixel korrekció csak raw képeken működik." -#: ../src/iop/invert.c:92 ../src/iop/invert.c:427 +#: ../src/iop/invert.c:106 ../src/iop/invert.c:442 #, c-format msgid "`%s' color matrix not found for 4bayer image" msgstr "„%s„ színmátrix 4bayer képhez nem található" -#: ../src/iop/invert.c:108 +#: ../src/iop/invert.c:125 msgid "invert" msgstr "invertálás" -#: ../src/iop/invert.c:113 +#: ../src/iop/invert.c:130 msgid "this module is deprecated. please use the negadoctor module instead." msgstr "ez a modul elavult. kérem, használja helyette a negadoktor modult." -#: ../src/iop/invert.c:118 +#: ../src/iop/invert.c:135 msgid "invert film negatives" msgstr "film negatívok invertálása" -#: ../src/iop/invert.c:120 ../src/iop/invert.c:122 +#: ../src/iop/invert.c:137 ../src/iop/invert.c:139 msgid "linear, raw, display-referred" msgstr "lineáris, raw, képernyővonatkozású" #. Here we could provide more for monochrome special cases. As no monochrome camera #. has a bayer sensor we don't need g->RGB_to_CAM and g->CAM_to_RGB corrections -#: ../src/iop/invert.c:412 +#: ../src/iop/invert.c:427 msgid "brightness of film material" msgstr "filmanyag fényessége" -#: ../src/iop/invert.c:416 +#: ../src/iop/invert.c:431 msgid "color of film material" msgstr "filmanyag színe" -#: ../src/iop/invert.c:500 ../src/iop/negadoctor.c:847 +#: ../src/iop/invert.c:515 ../src/iop/negadoctor.c:866 msgid "pick color of film material from image" msgstr "filmanyag színének mintavételezése a képről" -#: ../src/iop/invert.c:502 +#: ../src/iop/invert.c:517 msgid "select color of film material" msgstr "filmanyag színének kiválasztása" -#: ../src/iop/lens.cc:230 +#: ../src/iop/lens.cc:251 msgid "lens correction" msgstr "lencsekorrekció" -#: ../src/iop/lens.cc:235 +#: ../src/iop/lens.cc:256 msgid "vignette|chromatic aberrations|distortion" msgstr "" -"vignettálás|kromatikus aberráció|torzítás|vignette|chromatic aberrations|" -"distortion" +"peremsötétedés|vignettálás|kromatikus aberráció|torzítás|vignette|chromatic " +"aberrations|distortion" -#: ../src/iop/lens.cc:240 +#: ../src/iop/lens.cc:261 msgid "correct lenses optical flaws" msgstr "lencsék optikai hibáinak javítása" -#: ../src/iop/lens.cc:243 +#: ../src/iop/lens.cc:264 msgid "geometric and reconstruction, RGB" msgstr "geometriai és rekonstrukciós, RGB" -#: ../src/iop/lens.cc:3148 +#: ../src/iop/lens.cc:3773 #, c-format msgid "" "maker:\t\t%s\n" @@ -17556,9 +18140,9 @@ "gyártó:\t\t%s\n" "modell:\t\t%s%s\n" "foglalat:\t\t%s\n" -"fókusztáv szorzó:\t%.1f" +"képkivágási szorzó:\t%.1f" -#: ../src/iop/lens.cc:3396 +#: ../src/iop/lens.cc:4026 #, c-format msgid "" "maker:\t\t%s\n" @@ -17571,37 +18155,37 @@ msgstr "" "gyártó:\t\t\t\t%s\n" "modell:\t\t\t\t%s\n" -"fókusztáv tartomány:\t%s\n" +"gyújtótávtartomány:\t%s\n" "blende:\t\t\t\t%s\n" -"fókusztáv szorzó:\t%.1f\n" +"képkivágási szorzó:\t%.1f\n" "típus:\t\t\t\t%s\n" "foglalat:\t\t\t%s" -#: ../src/iop/lens.cc:3442 +#: ../src/iop/lens.cc:4072 msgid "focal length (mm)" -msgstr "fókusztávolság (mm)" +msgstr "gyújtótávolság (mm)" -#: ../src/iop/lens.cc:3468 +#: ../src/iop/lens.cc:4098 msgid "f/" msgstr "f/" -#: ../src/iop/lens.cc:3469 +#: ../src/iop/lens.cc:4099 msgid "f-number (aperture)" msgstr "rekeszérték (blende)" -#: ../src/iop/lens.cc:3485 +#: ../src/iop/lens.cc:4115 msgid "d" msgstr "táv" -#: ../src/iop/lens.cc:3486 +#: ../src/iop/lens.cc:4116 msgid "distance to subject" msgstr "tárgytávolság" -#: ../src/iop/lens.cc:3645 +#: ../src/iop/lens.cc:4277 msgid "camera/lens not found" msgstr "kamera/objektív nem található" -#: ../src/iop/lens.cc:3646 +#: ../src/iop/lens.cc:4278 msgid "" "please select your lens manually\n" "you might also want to check if your Lensfun database is up-to-date\n" @@ -17611,45 +18195,51 @@ "érdemes ellenőrizni a Lensfun adatbázis naprakészségét is\n" "a lensfun_update_data futtatásával" -#: ../src/iop/lens.cc:3769 +#: ../src/iop/lens.cc:4423 msgid "camera model" msgstr "kamera modell" -#: ../src/iop/lens.cc:3774 +#: ../src/iop/lens.cc:4428 msgid "find camera" msgstr "fényképező keresés" -#: ../src/iop/lens.cc:3789 +#: ../src/iop/lens.cc:4443 msgid "find lens" msgstr "objektív keresés" #. scale -#: ../src/iop/lens.cc:3823 ../src/iop/vignette.c:968 -#: ../src/iop/watermark.c:1324 ../src/libs/export.c:1165 +#: ../src/iop/lens.cc:4477 ../src/iop/vignette.c:1055 +#: ../src/iop/watermark.c:1372 ../src/libs/export.c:1264 msgid "scale" -msgstr "skála" +msgstr "skálázás" -#: ../src/iop/lens.cc:3828 +#: ../src/iop/lens.cc:4482 msgid "auto scale" msgstr "automatikus méretezés" -#: ../src/iop/lens.cc:3832 +#: ../src/iop/lens.cc:4484 +msgid "automatic scale to available image size due to Lensfun data" +msgstr "" +"automatikus skálázás a rendelkezésre álló képméretre a Lensfun adatbázis " +"alapján" + +#: ../src/iop/lens.cc:4488 msgid "correct distortions or apply them" msgstr "torzítások korrigálása, vagy kép torzítása" -#: ../src/iop/lens.cc:3839 +#: ../src/iop/lens.cc:4495 msgid "transversal chromatic aberration red" msgstr "transzverzális kromatikus aberráció – vörös" -#: ../src/iop/lens.cc:3843 +#: ../src/iop/lens.cc:4499 msgid "transversal chromatic aberration blue" msgstr "transzverzális kromatikus aberráció – kék" -#: ../src/iop/lens.cc:3849 +#: ../src/iop/lens.cc:4509 msgid "use latest algorithm" msgstr "legújabb algoritmus használata" -#: ../src/iop/lens.cc:3851 +#: ../src/iop/lens.cc:4511 msgid "" "you're using an old version of the algorithm.\n" "once enabled, you won't be able to\n" @@ -17659,93 +18249,144 @@ "ha engedélyezi, többé nem fog tudni\n" "visszatérni a régi algoritmushoz." -#: ../src/iop/lens.cc:3860 +#: ../src/iop/lens.cc:4521 +msgid "fine-tuning" +msgstr "finomhangolás" + +#. DT_IOP_SECTION_FOR_PARAMS doesn't work in C++ so create section module manually +#: ../src/iop/lens.cc:4526 +msgid "fine-tune" +msgstr "finomhangolás" + +#: ../src/iop/lens.cc:4532 msgid "tune the warp and chromatic aberration correction" msgstr "torzítás és kromatikus aberráció korrigálásának finomhangolása" -#: ../src/iop/lens.cc:3864 +#: ../src/iop/lens.cc:4536 msgid "tune the vignette correction" msgstr "peremsötétedés korrigálásának finomhangolása" -#: ../src/iop/lens.cc:3868 +#: ../src/iop/lens.cc:4540 msgid "tune the TCA red correction" msgstr "vörös TCA korrigálásának finomhangolása" -#: ../src/iop/lens.cc:3872 +#: ../src/iop/lens.cc:4544 msgid "tune the TCA blue correction" msgstr "kék TCA korrigálásának finomhangolása" -#: ../src/iop/lens.cc:3879 +#: ../src/iop/lens.cc:4551 msgid "image scaling" msgstr "kép méretezése" -#: ../src/iop/lens.cc:3891 +#: ../src/iop/lens.cc:4553 +msgid "automatic scale to available image size" +msgstr "automatikus skálázás a rendelkezésre álló képméretre" + +#: ../src/iop/lens.cc:4561 +msgid "" +"select a correction mode either based on\n" +" a) data and algorithms provided by the Lensfun project\n" +" b) embedded metadata provided by the camera or software vendor" +msgstr "" +"válassza ki, hogy min alapuljon a korrekciós mód\n" +"a) a Lensfun projekt által biztosított adatok és algoritmusok\n" +"b) a fényképező és a szoftvergyártó által biztosított beágyazott metaadat" + +#: ../src/iop/lens.cc:4568 msgid "which corrections to apply" msgstr "mik legyenek korrigálva" -#: ../src/iop/lens.cc:3904 +#: ../src/iop/lens.cc:4574 msgid "corrections done: " msgstr "korrekció kész: " -#: ../src/iop/lens.cc:3906 +#: ../src/iop/lens.cc:4576 msgid "which corrections have actually been done" msgstr "mely korrekciók lettek elvégezve" +#: ../src/iop/lens.cc:4595 +msgid "manual vignette correction" +msgstr "peremsötétedés manuális korrigálása" + +#: ../src/iop/lens.cc:4599 +msgid "additional manually controlled optical vignetting correction" +msgstr "optikai peremsötétedés további kézi korrekciója" + +#: ../src/iop/lens.cc:4602 +msgid "vignette" +msgstr "peremsötétedés" + +#: ../src/iop/lens.cc:4606 +msgid "amount of the applied optical vignetting correction" +msgstr "további kézi vezérlésű optikai vignettálás korrekció" + +#: ../src/iop/lens.cc:4608 +msgid "show applied optical vignette correction mask" +msgstr "az alkalmazott optikai peremsötétedés-korrekciós maszk megjelenítése" + +#: ../src/iop/lens.cc:4618 +msgid "radius of uncorrected centre" +msgstr "a nem korrigált középpont sugara" + +#: ../src/iop/lens.cc:4624 +msgid "steepness of the correction effect outside of radius" +msgstr "a sugáron kívüli korrekciós hatás meredekséges" + #: ../src/iop/levels.c:112 msgid "this module is deprecated. please use the RGB levels module instead." msgstr "ez a modul elavult. használja helyette az RGB szintek modult." -#: ../src/iop/levels.c:117 ../src/iop/levels.c:630 ../src/iop/rgblevels.c:984 -#: ../src/iop/rgblevels.c:1014 +#: ../src/iop/levels.c:117 ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1022 +#: ../src/iop/rgblevels.c:1056 msgid "levels" msgstr "szintek" -#: ../src/iop/levels.c:137 +#: ../src/iop/levels.c:139 msgid "adjust black, white and mid-gray points" msgstr "fekete, fehér és középszürke pontok állítása" -#: ../src/iop/levels.c:628 ../src/iop/rgblevels.c:1016 +#: ../src/iop/levels.c:644 ../src/iop/rgblevels.c:1059 msgid "" "drag handles to set black, gray, and white points. operates on L channel." msgstr "" "a sávok mozgatásával változtathatók a fekete, szürke és fehér pontok. az L " "csatornával dolgozik." -#: ../src/iop/levels.c:642 ../src/iop/rgblevels.c:1052 +#: ../src/iop/levels.c:658 ../src/iop/rgblevels.c:1108 msgid "apply auto levels" msgstr "automatikus szintek alkalmazása" -#: ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1027 +#: ../src/iop/levels.c:662 ../src/iop/rgblevels.c:1077 msgid "pick black point from image" msgstr "feketepont mintavétel a képről" -#: ../src/iop/levels.c:650 ../src/iop/rgblevels.c:1033 +#: ../src/iop/levels.c:666 ../src/iop/rgblevels.c:1085 msgid "pick medium gray point from image" msgstr "középszürke mintavétel a képről" -#: ../src/iop/levels.c:654 ../src/iop/rgblevels.c:1039 +#: ../src/iop/levels.c:670 ../src/iop/rgblevels.c:1093 msgid "pick white point from image" msgstr "fehérpont mintavétel a képről" -#: ../src/iop/levels.c:667 ../src/iop/rgblevels.c:936 -#: ../src/iop/rgblevels.c:1026 +#: ../src/iop/levels.c:683 ../src/iop/rgblevels.c:968 +#: ../src/iop/rgblevels.c:1075 msgid "black" msgstr "fekete" -#: ../src/iop/levels.c:668 +#: ../src/iop/levels.c:684 msgid "black percentile" msgstr "fekete százalék" -#: ../src/iop/levels.c:672 +#: ../src/iop/levels.c:688 msgid "gray percentile" msgstr "szürke százalék" -#: ../src/iop/levels.c:675 ../src/iop/rgblevels.c:938 -#: ../src/iop/rgblevels.c:1038 +#: ../src/iop/levels.c:691 ../src/iop/rgblevels.c:970 +#: ../src/iop/rgblevels.c:1091 msgid "white" msgstr "fehér" -#: ../src/iop/levels.c:676 +#: ../src/iop/levels.c:692 msgid "white percentile" msgstr "fehér százalék" @@ -17757,11 +18398,11 @@ msgid "distort parts of the image" msgstr "torzítja a kép részeit" -#: ../src/iop/liquify.c:2933 +#: ../src/iop/liquify.c:2895 msgid "click to edit nodes" msgstr "klikk: csomópontok szerkesztése" -#: ../src/iop/liquify.c:3636 +#: ../src/iop/liquify.c:3599 msgid "" "<b>add point</b>: click and drag\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17771,7 +18412,7 @@ "<b>méret</b>: görgetés - <b>erősség</b>: shift+görgetés - <b>irány</b>: " "ctrl+görgetés" -#: ../src/iop/liquify.c:3639 +#: ../src/iop/liquify.c:3602 msgid "" "<b>add line</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17781,7 +18422,7 @@ "<b>méret</b>: görgetés - <b>erősség</b>: shift+görgetés - <b>irány</b>: " "ctrl+görgetés" -#: ../src/iop/liquify.c:3642 +#: ../src/iop/liquify.c:3605 msgid "" "<b>add curve</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17791,7 +18432,7 @@ "<b>méret</b>: görgetés - <b>erősség</b>: shift+görgetés - <b>irány</b>: " "ctrl+görgetés" -#: ../src/iop/liquify.c:3693 +#: ../src/iop/liquify.c:3656 msgid "" "use a tool to add warps\n" "<b>remove a warp</b>: right-click" @@ -17799,48 +18440,48 @@ "deformálás hozzáadásához válasszon egy eszközt\n" "<b>deformálás eltávolítása</b>: jobb kattintás" -#: ../src/iop/liquify.c:3696 +#: ../src/iop/liquify.c:3659 msgid "warps|nodes count:" msgstr "deformálás|csomópont szám:" -#: ../src/iop/liquify.c:3705 +#: ../src/iop/liquify.c:3668 msgid "edit, add and delete nodes" msgstr "csomópontok szerkesztése, hozzáadása és törlése" -#: ../src/iop/liquify.c:3710 ../src/iop/liquify.c:3716 -#: ../src/iop/liquify.c:3722 ../src/iop/retouch.c:2238 -#: ../src/iop/retouch.c:2242 ../src/iop/retouch.c:2246 -#: ../src/iop/retouch.c:2250 ../src/iop/spots.c:883 ../src/iop/spots.c:888 -#: ../src/iop/spots.c:893 ../src/libs/masks.c:1816 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1834 ../src/libs/masks.c:1843 ../src/libs/masks.c:1852 +#: ../src/iop/liquify.c:3673 ../src/iop/liquify.c:3679 +#: ../src/iop/liquify.c:3685 ../src/iop/retouch.c:2465 +#: ../src/iop/retouch.c:2471 ../src/iop/retouch.c:2476 +#: ../src/iop/retouch.c:2481 ../src/iop/spots.c:885 ../src/iop/spots.c:890 +#: ../src/iop/spots.c:895 ../src/libs/masks.c:1812 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1830 ../src/libs/masks.c:1839 ../src/libs/masks.c:1848 msgid "shapes" msgstr "alakzatok" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw curves" msgstr "görbék rajzolása" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw multiple curves" msgstr "több görbe rajzolása" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw lines" msgstr "vonalak rajzolása" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw multiple lines" msgstr "több vonal rajzolása" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw points" msgstr "pontok rajzolása" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw multiple points" msgstr "több pont rajzolása" -#: ../src/iop/liquify.c:3729 +#: ../src/iop/liquify.c:3692 msgid "" "<b>add node</b>: ctrl+click - <b>remove path</b>: right click\n" "<b>toggle line/curve</b>: ctrl+alt+click" @@ -17849,7 +18490,7 @@ "kattintás\n" "<b>vonal/görbe váltása</b>: ctrl+alt+klikk" -#: ../src/iop/liquify.c:3732 +#: ../src/iop/liquify.c:3695 msgid "" "<b>move</b>: click and drag - <b>show/hide feathering controls</b>: click\n" "<b>autosmooth, cusp, smooth, symmetrical</b>: ctrl+click - <b>remove</b>: " @@ -17860,23 +18501,23 @@ "<b>auto-simított, csúcsos, simított, szimmetrikus</b>: ctrl+klikk - " "<b>eltávolítás</b>: jobb kattintás" -#: ../src/iop/liquify.c:3736 ../src/iop/liquify.c:3738 +#: ../src/iop/liquify.c:3699 ../src/iop/liquify.c:3701 msgid "<b>shape of path</b>: drag" msgstr "<b>útvonal alakja</b>: húzás" -#: ../src/iop/liquify.c:3740 +#: ../src/iop/liquify.c:3703 msgid "<b>radius</b>: drag" msgstr "<b>sugár</b>: húzás" -#: ../src/iop/liquify.c:3742 +#: ../src/iop/liquify.c:3705 msgid "<b>hardness (center)</b>: drag" msgstr "<b>keménység (középpont)</b>: húzás" -#: ../src/iop/liquify.c:3744 +#: ../src/iop/liquify.c:3707 msgid "<b>hardness (feather)</b>: drag" msgstr "<b>keménység (lágy perem)</b>: húzás" -#: ../src/iop/liquify.c:3746 +#: ../src/iop/liquify.c:3709 msgid "" "<b>strength</b>: drag\n" "<b>linear, grow, and shrink</b>: ctrl+click" @@ -17896,237 +18537,237 @@ msgid "linear, XYZ" msgstr "lineáris, XYZ" -#: ../src/iop/lowlight.c:341 +#: ../src/iop/lowlight.c:338 msgid "indoor bright" msgstr "beltéri fényes" -#: ../src/iop/lowlight.c:359 +#: ../src/iop/lowlight.c:356 msgid "indoor dim" msgstr "beltéri félhomály" -#: ../src/iop/lowlight.c:377 +#: ../src/iop/lowlight.c:374 msgid "indoor dark" msgstr "beltéri sötét" -#: ../src/iop/lowlight.c:395 +#: ../src/iop/lowlight.c:392 msgid "twilight" msgstr "alkonyat" -#: ../src/iop/lowlight.c:413 +#: ../src/iop/lowlight.c:410 msgid "night street lit" msgstr "éjszakai utcai lámpa" -#: ../src/iop/lowlight.c:431 +#: ../src/iop/lowlight.c:428 msgid "night street" msgstr "éjszakai utca" -#: ../src/iop/lowlight.c:449 +#: ../src/iop/lowlight.c:446 msgid "night street dark" msgstr "éjszakai sötét utca" -#: ../src/iop/lowlight.c:468 +#: ../src/iop/lowlight.c:465 msgid "night" msgstr "éjszaka" -#: ../src/iop/lowlight.c:641 +#: ../src/iop/lowlight.c:639 msgid "dark" msgstr "sötét" -#: ../src/iop/lowlight.c:649 +#: ../src/iop/lowlight.c:647 msgid "bright" msgstr "világos" -#: ../src/iop/lowlight.c:658 +#: ../src/iop/lowlight.c:656 msgid "day vision" msgstr "nappali látvány" -#: ../src/iop/lowlight.c:663 +#: ../src/iop/lowlight.c:661 msgid "night vision" msgstr "éjszakai látvány" -#: ../src/iop/lowlight.c:835 +#: ../src/iop/lowlight.c:833 msgid "blueness in shadows" msgstr "az árnyékok kéksége" -#: ../src/iop/lowpass.c:128 +#: ../src/iop/lowpass.c:100 msgid "lowpass" msgstr "aluláteresztő" -#: ../src/iop/lowpass.c:133 +#: ../src/iop/lowpass.c:105 msgid "isolate low frequencies in the image" msgstr "izolálja a kép alacsony frekvenciáit" -#: ../src/iop/lowpass.c:565 +#: ../src/iop/lowpass.c:578 msgid "local contrast mask" msgstr "lokális kontraszt maszk" -#: ../src/iop/lowpass.c:590 +#: ../src/iop/lowpass.c:603 msgid "radius of gaussian/bilateral blur" msgstr "a gauss/bilaterális elmosás sugara" -#: ../src/iop/lowpass.c:591 +#: ../src/iop/lowpass.c:604 msgid "contrast of lowpass filter" msgstr "az aluláteresztő szűrő kontrasztja" -#: ../src/iop/lowpass.c:592 +#: ../src/iop/lowpass.c:605 msgid "brightness adjustment of lowpass filter" msgstr "az aluláteresztő szűrő fényerő állítása" -#: ../src/iop/lowpass.c:593 +#: ../src/iop/lowpass.c:606 msgid "color saturation of lowpass filter" msgstr "az aluláteresztő szűrő színtelítettség állítása" -#: ../src/iop/lowpass.c:594 +#: ../src/iop/lowpass.c:607 msgid "which filter to use for blurring" msgstr "melyik szűrőt használjuk az elmosáshoz" -#: ../src/iop/lut3d.c:135 +#: ../src/iop/lut3d.c:136 msgid "LUT 3D" msgstr "LUT 3D" -#: ../src/iop/lut3d.c:140 +#: ../src/iop/lut3d.c:141 msgid "perform color space corrections and apply look" msgstr "színtér korrekciókat végez és megjelenést alkalmaz" -#: ../src/iop/lut3d.c:143 +#: ../src/iop/lut3d.c:144 msgid "defined by profile, RGB" msgstr "profil által definiált, Lab" -#: ../src/iop/lut3d.c:468 +#: ../src/iop/lut3d.c:486 msgid "error allocating buffer for gmz LUT" msgstr "nem sikerült puffert lefoglalni a gmz LUT-hoz" -#: ../src/iop/lut3d.c:494 +#: ../src/iop/lut3d.c:512 #, c-format msgid "invalid png file %s" msgstr "érvénytelen png fájl: %s" -#: ../src/iop/lut3d.c:502 +#: ../src/iop/lut3d.c:520 #, c-format -msgid "png bit-depth %d not supported" +msgid "png bit depth %d is not supported" msgstr "%d png bitmélység nem támogatott" -#: ../src/iop/lut3d.c:516 ../src/iop/lut3d.c:526 +#: ../src/iop/lut3d.c:534 ../src/iop/lut3d.c:544 #, c-format msgid "invalid level in png file %d %d" msgstr "érvénytelen szint a png fájlban %d %d" -#: ../src/iop/lut3d.c:521 +#: ../src/iop/lut3d.c:539 msgid "this darktable build is not compatible with compressed CLUT" msgstr "ez a darktable összeállítás nem kompatibilis a tömörített CLUT-al" -#: ../src/iop/lut3d.c:538 ../src/iop/lut3d.c:788 +#: ../src/iop/lut3d.c:556 ../src/iop/lut3d.c:808 #, c-format msgid "error - LUT 3D size %d exceeds the maximum supported" msgstr "hiba – %d LUT 3D méret túllépi a maximálisan támogatottat" -#: ../src/iop/lut3d.c:550 +#: ../src/iop/lut3d.c:568 msgid "error allocating buffer for png LUT" msgstr "hiba történt a png LUT puffer lefoglalása közben" -#: ../src/iop/lut3d.c:558 +#: ../src/iop/lut3d.c:576 #, c-format msgid "error - could not read png image %s" msgstr "hiba – nem sikerült olvasni a png képet %s" -#: ../src/iop/lut3d.c:568 +#: ../src/iop/lut3d.c:586 msgid "error - allocating buffer for png LUT" msgstr "hiba – puffer lefoglalása png LUT-hoz" -#: ../src/iop/lut3d.c:743 +#: ../src/iop/lut3d.c:761 #, c-format msgid "error - invalid cube file: %s" msgstr "hiba – érvénytelen cube fájl: %s" -#: ../src/iop/lut3d.c:757 -msgid "DOMAIN MIN <> 0.0 is not supported" -msgstr "DOMAIN MIN <> 0.0 nem támogatott" - -#: ../src/iop/lut3d.c:768 -msgid "DOMAIN MAX <> 1.0 is not supported" -msgstr "DOMAIN MAX <> 1.0 nem támogatott" +#: ../src/iop/lut3d.c:775 +msgid "DOMAIN MIN other than 0 is not supported" +msgstr "a nem 0 DOMAIN MIN nem támogatott" + +#: ../src/iop/lut3d.c:787 +msgid "DOMAIN MAX other than 1 is not supported" +msgstr "a nem 1 DOMAIN MAX nem támogatott" -#: ../src/iop/lut3d.c:777 +#: ../src/iop/lut3d.c:797 msgid "1D cube LUT is not supported" msgstr "1D kocka LUT nem támogatott" -#: ../src/iop/lut3d.c:799 +#: ../src/iop/lut3d.c:819 msgid "error - allocating buffer for cube LUT" msgstr "hiba – puffert lefoglalása cube LUT-hoz" -#: ../src/iop/lut3d.c:810 +#: ../src/iop/lut3d.c:830 msgid "error - cube LUT size is not defined" msgstr "hiba – a cube LUT mérete nincs definiálva" -#: ../src/iop/lut3d.c:821 +#: ../src/iop/lut3d.c:841 #, c-format msgid "error - cube LUT invalid number line %d" msgstr "hiba – cube LUT érvénytelen szám sor %d" -#: ../src/iop/lut3d.c:837 +#: ../src/iop/lut3d.c:857 #, c-format msgid "error - cube LUT lines number %d is not correct, should be %d" msgstr "hiba – cube LUT %d sorok száma nem stimmel, %d kéne legyen" -#: ../src/iop/lut3d.c:847 +#: ../src/iop/lut3d.c:867 #, c-format msgid "warning - cube LUT has %d values out of range [0,1]" msgstr "figyelem – a cube LUT %d értéke a [0,1] tartományon kívülre esik" -#: ../src/iop/lut3d.c:872 +#: ../src/iop/lut3d.c:892 #, c-format msgid "error - invalid 3dl file: %s" msgstr "hiba – érvénytelen 3dl fájl: %s" -#: ../src/iop/lut3d.c:893 +#: ../src/iop/lut3d.c:913 #, c-format msgid "error - the maximum shaper LUT value %d is too low" msgstr "hiba – a maximális formáló LUT érték %d túl alacsony" -#: ../src/iop/lut3d.c:904 +#: ../src/iop/lut3d.c:924 msgid "error - allocating buffer for 3dl LUT" msgstr "hiba – nem sikerült puffert lefoglalni a 3dl LUT-hoz" -#: ../src/iop/lut3d.c:917 +#: ../src/iop/lut3d.c:937 msgid "error - 3dl LUT size is not defined" msgstr "hiba – a 3dl LUT mérete nincs definiálva" -#: ../src/iop/lut3d.c:945 +#: ../src/iop/lut3d.c:965 msgid "error - 3dl LUT lines number is not correct" msgstr "hiba – a 3dl LUT sorainak száma nem stimmel" -#: ../src/iop/lut3d.c:961 +#: ../src/iop/lut3d.c:981 msgid "error - the maximum LUT value does not match any valid bit depth" msgstr "" "hiba – a maximális LUT érték nem felel meg egyetlen érvényes bitmélységnek " "sem" -#: ../src/iop/lut3d.c:1539 +#: ../src/iop/lut3d.c:1553 msgid "LUT root folder not defined" msgstr "a LUT gyökérkönyvtár nincs megadva" -#: ../src/iop/lut3d.c:1545 +#: ../src/iop/lut3d.c:1559 msgid "select LUT file" msgstr "LUT fájl kiválasztása" -#: ../src/iop/lut3d.c:1546 +#: ../src/iop/lut3d.c:1560 msgid "_select" msgstr "_kiválasztás" -#: ../src/iop/lut3d.c:1566 +#: ../src/iop/lut3d.c:1580 msgid "hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" msgstr "" "hald CLUT-ok (png), 3D LUT (cube vagy 3dl) vagy gmic tömörített LUT (gmz)" -#: ../src/iop/lut3d.c:1568 +#: ../src/iop/lut3d.c:1582 msgid "hald CLUT (png) or 3D LUT (cube or 3dl)" msgstr "hald CLUT-ok (png), 3D LUT (cube vagy 3dl)" -#: ../src/iop/lut3d.c:1592 +#: ../src/iop/lut3d.c:1606 msgid "select file outside LUT root folder is not allowed" msgstr "LUT gyökérkönyvtáron kívüli fájl kiválasztása nem engedélyezett" -#: ../src/iop/lut3d.c:1663 +#: ../src/iop/lut3d.c:1677 msgid "" "select a png (haldclut), a cube, a 3dl or a gmz (compressed LUT) file " "CAUTION: 3D LUT folder must be set in preferences/processing before choosing " @@ -18136,7 +18777,7 @@ "LUT) fájlt. VIGYÁZAT: a 3D LUT könyvtár be kell legyen állítva a beállítások/" "feldolgozás alatt, mielőtt LUT fájlt választana" -#: ../src/iop/lut3d.c:1667 +#: ../src/iop/lut3d.c:1681 msgid "" "select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be " "set in preferences/processing before choosing the LUT file" @@ -18145,7 +18786,7 @@ "LUT könyvtár beállításokban/feldolgozásnál be kell egyen állítva a LUT fájl " "kiválasztása előtt" -#: ../src/iop/lut3d.c:1679 +#: ../src/iop/lut3d.c:1693 msgid "" "the file path (relative to LUT folder) is saved with image along with the " "LUT data if it's a compressed LUT (gmz)" @@ -18153,7 +18794,7 @@ "a fájl útvonala (relatív a LUT könyvtárhoz képest) a képpel és a LUT " "adatokkal együtt van mentve, amennyiben ez egy tömörített LUT (gmz)" -#: ../src/iop/lut3d.c:1682 +#: ../src/iop/lut3d.c:1696 msgid "" "the file path (relative to LUT folder) is saved with image (and not the LUT " "data themselves)" @@ -18161,43 +18802,43 @@ "a fájl útvonala (relatív a LUT könyvtárhoz képest) a képpel együtt van " "mentve (és nem magával a LUT-adattal)" -#: ../src/iop/lut3d.c:1691 +#: ../src/iop/lut3d.c:1705 msgid "enter LUT name" msgstr "LUT név megadása" -#: ../src/iop/lut3d.c:1712 +#: ../src/iop/lut3d.c:1726 msgid "select the LUT" msgstr "LUT választása" -#: ../src/iop/lut3d.c:1725 +#: ../src/iop/lut3d.c:1739 msgid "select the color space in which the LUT has to be applied" msgstr "válasszon színteret, amiben a LUT alkalmazva lesz" -#: ../src/iop/lut3d.c:1727 +#: ../src/iop/lut3d.c:1741 msgid "interpolation" msgstr "interpoláció" -#: ../src/iop/lut3d.c:1728 +#: ../src/iop/lut3d.c:1742 msgid "select the interpolation method" msgstr "válasszon interpolációs módszert" -#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:62 +#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:63 msgid "mask manager" msgstr "maszk kezelő" -#: ../src/iop/monochrome.c:97 +#: ../src/iop/monochrome.c:99 msgid "quickly convert an image to black & white using a variable color filter" msgstr "kép gyors konvertálása fekete-fehérré egy variálható színszűrővel" -#: ../src/iop/monochrome.c:127 +#: ../src/iop/monochrome.c:153 msgid "red filter" msgstr "vörös szűrő" -#: ../src/iop/monochrome.c:546 +#: ../src/iop/monochrome.c:568 msgid "drag and scroll mouse wheel to adjust the virtual color filter" msgstr "a virtuális színszűrő húzással és egérgörgővel szabályozható" -#: ../src/iop/monochrome.c:562 +#: ../src/iop/monochrome.c:584 msgid "how much to keep highlights" msgstr "csúcsfények megőrzésének mértéke" @@ -18215,35 +18856,35 @@ msgid "invert film negative scans and simulate printing on paper" msgstr "filmnegatív scannelések invertálása és papírra nyomtatás szimulálása" -#: ../src/iop/negadoctor.c:469 +#: ../src/iop/negadoctor.c:483 msgid "D min" msgstr "D min" -#: ../src/iop/negadoctor.c:475 ../src/iop/negadoctor.c:856 +#: ../src/iop/negadoctor.c:489 ../src/iop/negadoctor.c:875 msgid "D min red component" msgstr "D min vörös komponens" #. Page FILM PROPERTIES -#: ../src/iop/negadoctor.c:832 +#: ../src/iop/negadoctor.c:851 msgid "film properties" msgstr "film tulajdonságai" #. Dmin -#: ../src/iop/negadoctor.c:836 +#: ../src/iop/negadoctor.c:855 msgctxt "section" msgid "color of the film base" msgstr "filmanyag színe" -#: ../src/iop/negadoctor.c:842 +#: ../src/iop/negadoctor.c:861 msgid "select color of film material from a swatch" msgstr "filmanyag színének kiválasztása egy mintadarabról" -#: ../src/iop/negadoctor.c:848 +#: ../src/iop/negadoctor.c:867 msgid "film material" msgstr "filmanyag" -#: ../src/iop/negadoctor.c:857 ../src/iop/negadoctor.c:867 -#: ../src/iop/negadoctor.c:877 +#: ../src/iop/negadoctor.c:876 ../src/iop/negadoctor.c:886 +#: ../src/iop/negadoctor.c:896 msgid "" "adjust the color and shade of the film transparent base.\n" "this value depends on the film material, \n" @@ -18254,21 +18895,21 @@ "az érték függ a film anyagától, a film előhívása során\n" "keletkező vegyi anyag párától és a scanner fehéregyensúlyától." -#: ../src/iop/negadoctor.c:866 +#: ../src/iop/negadoctor.c:885 msgid "D min green component" msgstr "D min zöld komponens" -#: ../src/iop/negadoctor.c:876 +#: ../src/iop/negadoctor.c:895 msgid "D min blue component" msgstr "D min kék komponens" #. D max and scanner bias -#: ../src/iop/negadoctor.c:884 +#: ../src/iop/negadoctor.c:903 msgctxt "section" msgid "dynamic range of the film" msgstr "film dinamikatartománya" -#: ../src/iop/negadoctor.c:888 +#: ../src/iop/negadoctor.c:907 msgid "" "maximum density of the film, corresponding to white after inversion.\n" "this value depends on the film specifications, the developing process,\n" @@ -18278,12 +18919,12 @@ "az érték függ a film specifikációjától, az előhívási folyamattól,\n" "a jelenet dinamikatartományától és a scanner expozíciós beállításaitól." -#: ../src/iop/negadoctor.c:892 +#: ../src/iop/negadoctor.c:911 msgctxt "section" msgid "scanner exposure settings" msgstr "scanner expozíciós beállításai" -#: ../src/iop/negadoctor.c:896 +#: ../src/iop/negadoctor.c:915 msgid "" "correct the exposure of the scanner, for all RGB channels,\n" "before the inversion, so blacks are neither clipped or too pale." @@ -18293,25 +18934,25 @@ "halványak." #. WB shadows -#: ../src/iop/negadoctor.c:903 +#: ../src/iop/negadoctor.c:922 msgctxt "section" msgid "shadows color cast" msgstr "árnyékok elszíneződése" -#: ../src/iop/negadoctor.c:909 +#: ../src/iop/negadoctor.c:928 msgid "select color of shadows from a swatch" msgstr "árnyékok színének kiválasztása egy mintadarabról" -#: ../src/iop/negadoctor.c:914 +#: ../src/iop/negadoctor.c:933 msgid "pick shadows color from image" msgstr "árnyékok színének mintavétele a képről" -#: ../src/iop/negadoctor.c:920 +#: ../src/iop/negadoctor.c:939 msgid "shadows red offset" msgstr "árnyékok vörös eltolása" -#: ../src/iop/negadoctor.c:921 ../src/iop/negadoctor.c:928 -#: ../src/iop/negadoctor.c:935 +#: ../src/iop/negadoctor.c:940 ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:954 msgid "" "correct the color cast in shadows so blacks are\n" "truly achromatic. Setting this value before\n" @@ -18323,34 +18964,34 @@ "csúcsfények világító fehéregyensúlya előtt segíteni fog\n" "visszanyerni a globális fehéregyensúlyt egyes bonyolult esetekben." -#: ../src/iop/negadoctor.c:927 +#: ../src/iop/negadoctor.c:946 msgid "shadows green offset" msgstr "árnyékok zöld eltolása" -#: ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:953 msgid "shadows blue offset" msgstr "árnyékok kék eltolása" #. WB highlights -#: ../src/iop/negadoctor.c:941 +#: ../src/iop/negadoctor.c:960 msgctxt "section" msgid "highlights white balance" msgstr "csúcsfények fehéregyensúlya" -#: ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:966 msgid "select color of illuminant from a swatch" msgstr "világító részek színének kiválasztása egy mintadarabról" -#: ../src/iop/negadoctor.c:952 +#: ../src/iop/negadoctor.c:971 msgid "pick illuminant color from image" msgstr "világító szín mintavétele a képől" -#: ../src/iop/negadoctor.c:958 +#: ../src/iop/negadoctor.c:977 msgid "illuminant red gain" msgstr "világító vörös nyereség" -#: ../src/iop/negadoctor.c:959 ../src/iop/negadoctor.c:966 -#: ../src/iop/negadoctor.c:973 +#: ../src/iop/negadoctor.c:978 ../src/iop/negadoctor.c:985 +#: ../src/iop/negadoctor.c:992 msgid "" "correct the color of the illuminant so whites are\n" "truly achromatic. Setting this value after\n" @@ -18362,26 +19003,26 @@ "árnyékok elszíneződése után segíteni fog\n" "visszanyerni a globális fehéregyensúlyt egyes bonyolult esetekben." -#: ../src/iop/negadoctor.c:965 +#: ../src/iop/negadoctor.c:984 msgid "illuminant green gain" msgstr "világító zöld nyereség" -#: ../src/iop/negadoctor.c:972 +#: ../src/iop/negadoctor.c:991 msgid "illuminant blue gain" msgstr "világító kék nyereség" #. Page PRINT PROPERTIES -#: ../src/iop/negadoctor.c:979 +#: ../src/iop/negadoctor.c:998 msgid "print properties" msgstr "nyomtatási tulajdonságok" #. print corrections -#: ../src/iop/negadoctor.c:982 +#: ../src/iop/negadoctor.c:1001 msgctxt "section" msgid "virtual paper properties" msgstr "virtuális papír tulajdonságai" -#: ../src/iop/negadoctor.c:988 +#: ../src/iop/negadoctor.c:1007 msgid "" "correct the density of black after the inversion,\n" "to adjust the global contrast while avoiding clipping shadows." @@ -18389,7 +19030,7 @@ "korrigálja a feketék invertálás utáni sűrűségét,\n" "ezzel szabályozza a globális kontrasztot, elkerülve az árnyékok levágását." -#: ../src/iop/negadoctor.c:993 +#: ../src/iop/negadoctor.c:1012 msgid "" "select the grade of the virtual paper, which is actually\n" "equivalent to applying a gamma. it compensates the film D max\n" @@ -18399,7 +19040,7 @@ "megegyezik a gammával. kompenzálja a film D max értékét és\n" "visszaállítja a kontrasztot. használjon magas érzékenységet magas D maxhoz." -#: ../src/iop/negadoctor.c:1001 +#: ../src/iop/negadoctor.c:1020 msgid "" "gradually compress specular highlights past this value\n" "to avoid clipping while pushing the exposure for mid-tones.\n" @@ -18409,12 +19050,12 @@ "hogy elkerülje a levágást, miközben az expozíciót a középtónus felé tolja.\n" "ez némileg reprodukálja a matt papír viselkedését." -#: ../src/iop/negadoctor.c:1005 +#: ../src/iop/negadoctor.c:1024 msgctxt "section" msgid "virtual print emulation" msgstr "virtuális nyomtatás emulálása" -#: ../src/iop/negadoctor.c:1012 +#: ../src/iop/negadoctor.c:1031 msgid "" "correct the printing exposure after inversion to adjust\n" "the global contrast and avoid clipping highlights." @@ -18422,52 +19063,84 @@ "korrigálja az invertálás utáni nyomtatási expozíciót,\n" "szabályozva a globális kontrasztot, elkerülve a csúcsfény vágást." -#: ../src/iop/negadoctor.c:1020 +#: ../src/iop/negadoctor.c:1039 msgid "toggle on or off the color controls" msgstr "szín vezérlők ki/be kapcsolása" -#: ../src/iop/nlmeans.c:84 +#: ../src/iop/nlmeans.c:78 msgid "astrophoto denoise" msgstr "asztrofotó zajszűrés" -#: ../src/iop/nlmeans.c:89 +#: ../src/iop/nlmeans.c:83 msgid "denoise (non-local means)" msgstr "zajszűrés (nem helyi átlag)" -#: ../src/iop/nlmeans.c:94 +#: ../src/iop/nlmeans.c:88 msgid "apply a poisson noise removal best suited for astrophotography" msgstr "" "poisson zajeltávolítást alkalmaz, ami asztrofotózáshoz a legalkalmasabb" -#: ../src/iop/nlmeans.c:459 +#: ../src/iop/nlmeans.c:462 msgid "radius of the patches to match" msgstr "a hasonlóság kereséshez használt folt mérete" -#: ../src/iop/nlmeans.c:467 +#: ../src/iop/nlmeans.c:470 msgid "how much to smooth brightness" msgstr "fényerő simítás mértéke" -#: ../src/iop/nlmeans.c:470 +#: ../src/iop/nlmeans.c:473 msgid "how much to smooth colors" msgstr "színek simításának mértéke" #. * let's fill the encapsulating widgets #. preview mode #. color scheme -#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2419 -#: ../src/views/darkroom.c:2437 ../src/views/darkroom.c:2444 -#: ../src/views/darkroom.c:2454 ../src/views/darkroom.c:2471 +#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2258 +#: ../src/views/darkroom.c:2276 ../src/views/darkroom.c:2283 +#: ../src/views/darkroom.c:2293 ../src/views/darkroom.c:2310 msgid "overexposed" msgstr "túlexponált" -#: ../src/iop/overexposed.c:130 ../src/iop/overexposed.c:360 +#: ../src/iop/overexposed.c:123 ../src/iop/overexposed.c:352 msgid "module overexposed failed in buffer allocation" msgstr "a túlexponáltság modulnak nem sikerült puffert lefoglalnia" -#: ../src/iop/overexposed.c:156 ../src/iop/overexposed.c:370 +#: ../src/iop/overexposed.c:149 ../src/iop/overexposed.c:362 msgid "module overexposed failed in color conversion" msgstr "a túlexponáltság modulnak nem sikerült színt konvertálnia" +#: ../src/iop/primaries.c:74 +msgid "rgb primaries" +msgstr "RGB elsődleges színek" + +#: ../src/iop/primaries.c:79 +msgid "adjustment of the RGB color primaries for color grading" +msgstr "a színosztályzás RGB elsődleges színeinek szabályozása" + +#: ../src/iop/primaries.c:395 +msgid "shift red towards yellow or magenta" +msgstr "a vörösek eltolása a sárga vagy bíbor felé" + +#: ../src/iop/primaries.c:396 +msgid "red primary purity" +msgstr "a vörös elsődleges szín tisztasága" + +#: ../src/iop/primaries.c:397 +msgid "shift green towards cyan or yellow" +msgstr "a zöldek eltolása a cián vagy sárga felé" + +#: ../src/iop/primaries.c:398 +msgid "green primary purity" +msgstr "a zöld elsődleges szín tisztasága" + +#: ../src/iop/primaries.c:399 +msgid "shift blue towards magenta or cyan" +msgstr "a kékek eltolása a bíbor vagy cián felé" + +#: ../src/iop/primaries.c:400 +msgid "blue primary purity" +msgstr "a kék elsődleges szín tisztasága" + #: ../src/iop/profile_gamma.c:96 msgid "unbreak input profile" msgstr "bemeneti színprofil gyógyítása" @@ -18476,39 +19149,39 @@ msgid "correct input color profiles meant to be applied on non-linear RGB" msgstr "bemeneti színprofilt korrigál, amit nemlineáris RGB-n kell alkalmazni" -#: ../src/iop/profile_gamma.c:136 +#: ../src/iop/profile_gamma.c:138 msgid "16 EV dynamic range (generic)" msgstr "16 FÉ dinamikatartomány (általános)" -#: ../src/iop/profile_gamma.c:142 +#: ../src/iop/profile_gamma.c:144 msgid "14 EV dynamic range (generic)" msgstr "14 FÉ dinamikatartomány (általános)" -#: ../src/iop/profile_gamma.c:148 +#: ../src/iop/profile_gamma.c:150 msgid "12 EV dynamic range (generic)" msgstr "12 FÉ dinamikatartomány (általános)" -#: ../src/iop/profile_gamma.c:154 +#: ../src/iop/profile_gamma.c:156 msgid "10 EV dynamic range (generic)" msgstr "10 FÉ dinamikatartomány (általános)" -#: ../src/iop/profile_gamma.c:160 +#: ../src/iop/profile_gamma.c:162 msgid "08 EV dynamic range (generic)" msgstr "08 FÉ dinamikatartomány (általános)" -#: ../src/iop/profile_gamma.c:623 +#: ../src/iop/profile_gamma.c:637 msgid "linear part" msgstr "lineáris rész" -#: ../src/iop/profile_gamma.c:627 +#: ../src/iop/profile_gamma.c:641 msgid "gamma exponential factor" msgstr "gamma exponenciális tényező" -#: ../src/iop/profile_gamma.c:638 +#: ../src/iop/profile_gamma.c:652 msgid "adjust to match the average luma of the subject" msgstr "állítsa úgy, hogy illeszkedjen a tárgy átlagos fénysűrűségéhez" -#: ../src/iop/profile_gamma.c:644 +#: ../src/iop/profile_gamma.c:658 msgid "" "number of stops between middle gray and pure black\n" "this is a reading a light meter would give you on the scene" @@ -18516,7 +19189,7 @@ "a középszürke és tiszta fekete közti blendék száma\n" "ez megfelel a helyszínen egy fénymérő által mutatott értéknek" -#: ../src/iop/profile_gamma.c:650 +#: ../src/iop/profile_gamma.c:664 msgid "" "number of stops between pure black and pure white\n" "this is a reading a light meter would give you on the scene" @@ -18524,36 +19197,36 @@ "a tiszta fekete és tiszta fehér közti blendék száma\n" "ez megfelel a helyszínen egy fénymérő által mutatott értéknek" -#: ../src/iop/profile_gamma.c:652 +#: ../src/iop/profile_gamma.c:666 msgctxt "section" msgid "optimize automatically" msgstr "automatikus optimalizálás" -#: ../src/iop/profile_gamma.c:656 +#: ../src/iop/profile_gamma.c:670 msgid "" -"enlarge or shrink the computed dynamic range\n" -"this is useful when noise perturbates the measurements" +"increase or decrease the computed dynamic range\n" +"this is useful when noise distorts the measurement" msgstr "" -"bővítés vagy zsugorítás a számított dinamikatartományhoz\n" -"akkor hasznos, ha a zaj zavarja a mérést" +"növeli vagy csökkenti a kiszámított dinamikatartományt\n" +"akkor hasznos, ha a zaj torzítja a mérést" -#: ../src/iop/profile_gamma.c:660 +#: ../src/iop/profile_gamma.c:674 msgid "make an optimization with some guessing" msgstr "optimalizálás némi találgatással" -#: ../src/iop/profile_gamma.c:669 +#: ../src/iop/profile_gamma.c:683 msgid "tone mapping method" msgstr "tónusleképezés módszere" -#: ../src/iop/rawdenoise.c:124 +#: ../src/iop/rawdenoise.c:138 msgid "raw denoise" msgstr "raw zajszűrés" -#: ../src/iop/rawdenoise.c:129 +#: ../src/iop/rawdenoise.c:143 msgid "denoise the raw picture early in the pipeline" msgstr "zajszűri a raw képet a feldolgozás sor korai szakaszában" -#: ../src/iop/rawdenoise.c:939 +#: ../src/iop/rawdenoise.c:955 msgid "" "raw denoising\n" "only works for raw images." @@ -18561,9 +19234,9 @@ #. * let's fill the encapsulating widgets #. mode of operation -#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2387 ../src/views/darkroom.c:2393 -#: ../src/views/darkroom.c:2406 +#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2226 ../src/views/darkroom.c:2232 +#: ../src/views/darkroom.c:2245 msgid "raw overexposed" msgstr "raw túlexponált" @@ -18572,7 +19245,7 @@ msgid "raw black/white point" msgstr "raw fekete/fehérpont" -#: ../src/iop/rawprepare.c:156 +#: ../src/iop/rawprepare.c:172 msgid "" "sets technical specificities of the raw sensor.\n" "touch with great care!" @@ -18580,63 +19253,63 @@ "a raw szenzorok technikai sajátosságait állítja.\n" "nagyon óvatosan nyúljon hozzá!" -#: ../src/iop/rawprepare.c:168 +#: ../src/iop/rawprepare.c:184 msgid "passthrough" msgstr "átmenő" -#: ../src/iop/rawprepare.c:655 +#: ../src/iop/rawprepare.c:663 msgid "invalid crop parameters" msgstr "érvénytelen kivágási paraméterek" -#: ../src/iop/rawprepare.c:656 +#: ../src/iop/rawprepare.c:664 msgid "" "please reset to defaults, update your preset or set to something correct" msgstr "" "kérjük, állítsa vissza az alapértelmezett értékeket, frissítse a tárolt " "beállításokat vagy állítsa be valami helyesre" -#: ../src/iop/rawprepare.c:922 +#: ../src/iop/rawprepare.c:930 msgid "black level 0" msgstr "feketeszint 0" -#: ../src/iop/rawprepare.c:923 +#: ../src/iop/rawprepare.c:931 msgid "black level 1" msgstr "feketeszint 1" -#: ../src/iop/rawprepare.c:924 +#: ../src/iop/rawprepare.c:932 msgid "black level 2" msgstr "feketeszint 2" -#: ../src/iop/rawprepare.c:925 +#: ../src/iop/rawprepare.c:933 msgid "black level 3" msgstr "feketeszint 3" -#: ../src/iop/rawprepare.c:952 +#: ../src/iop/rawprepare.c:960 msgid "raw flat field correction to compensate for lens shading" msgstr "raw laposmező-korrekció a lencse árnyékolásának kompenzálására" -#: ../src/iop/rawprepare.c:957 +#: ../src/iop/rawprepare.c:965 msgctxt "section" msgid "crop" msgstr "kivágás" -#: ../src/iop/rawprepare.c:960 +#: ../src/iop/rawprepare.c:968 msgid "crop left border" msgstr "bal keret levágása" -#: ../src/iop/rawprepare.c:964 +#: ../src/iop/rawprepare.c:972 msgid "crop top border" msgstr "felső keret levágása" -#: ../src/iop/rawprepare.c:968 +#: ../src/iop/rawprepare.c:976 msgid "crop right border" msgstr "jobb keret levágása" -#: ../src/iop/rawprepare.c:972 +#: ../src/iop/rawprepare.c:980 msgid "crop bottom border" msgstr "alsó keret levágása" -#: ../src/iop/rawprepare.c:981 +#: ../src/iop/rawprepare.c:989 msgid "" "raw black/white point correction\n" "only works for the sensors that need it." @@ -18662,11 +19335,11 @@ msgstr "" "ez a modul elavult. kérem, használja helyette a tónus equalizer modult." -#: ../src/iop/relight.c:263 +#: ../src/iop/relight.c:259 msgid "the fill-light in EV" msgstr "derítőfény ereje fényértékben" -#: ../src/iop/relight.c:272 +#: ../src/iop/relight.c:268 msgid "" "select the center of fill-light\n" "ctrl+click to select an area" @@ -18674,16 +19347,11 @@ "a derítőfény központjának megadása\n" "ctrl+klikk a terület kijelölése" -#: ../src/iop/relight.c:276 +#: ../src/iop/relight.c:272 msgid "toggle tool for picking median lightness in image" msgstr "fényesség középérték képmintavevő eszköz ki/be kapcsolása" -#: ../src/iop/relight.c:279 ../src/libs/export.c:1131 -#: ../src/libs/metadata_view.c:147 ../src/libs/print_settings.c:2537 -msgid "width" -msgstr "szélesség" - -#: ../src/iop/relight.c:280 +#: ../src/iop/relight.c:276 msgid "width of fill-light area defined in zones" msgstr "a derítőfény területe zónákban megadva" @@ -18706,29 +19374,29 @@ msgid "geometric and frequential, RGB" msgstr "geometriai és frekvenciális, RGB" -#: ../src/iop/retouch.c:1538 +#: ../src/iop/retouch.c:1689 msgid "cannot display scales when the blending mask is displayed" msgstr "nem lehet megjeleníteni a skálát ha a keverési maszk meg van jelenítve" -#: ../src/iop/retouch.c:1861 ../src/iop/retouch.c:1863 -#: ../src/iop/retouch.c:1865 ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2045 ../src/iop/retouch.c:2047 +#: ../src/iop/retouch.c:2049 ../src/iop/retouch.c:2051 #, c-format msgid "default tool changed to %s" msgstr "alapértelmezett eszköz módosult erre: %s" -#: ../src/iop/retouch.c:1861 +#: ../src/iop/retouch.c:2045 msgid "cloning" msgstr "klónozás" -#: ../src/iop/retouch.c:1863 +#: ../src/iop/retouch.c:2047 msgid "healing" msgstr "gyógyítás" -#: ../src/iop/retouch.c:2226 +#: ../src/iop/retouch.c:2448 msgid "shapes:" msgstr "alakzatok:" -#: ../src/iop/retouch.c:2230 +#: ../src/iop/retouch.c:2454 msgid "" "to add a shape select an algorithm and a shape type and click on the image.\n" "shapes are added to the current scale" @@ -18737,77 +19405,73 @@ "kattintson a képre.\n" "az alakzatok hozzá lesznek adva az aktuális skálához" -#. display & suppress masks -#. copy/paste shapes -#. display final image/current scale -#. auto-levels button -#: ../src/iop/retouch.c:2233 ../src/iop/retouch.c:2334 -#: ../src/iop/retouch.c:2339 ../src/iop/retouch.c:2347 -#: ../src/iop/retouch.c:2351 ../src/iop/retouch.c:2358 -#: ../src/iop/retouch.c:2392 +#: ../src/iop/retouch.c:2458 ../src/iop/retouch.c:2591 +#: ../src/iop/retouch.c:2597 ../src/iop/retouch.c:2606 +#: ../src/iop/retouch.c:2611 ../src/iop/retouch.c:2619 +#: ../src/iop/retouch.c:2664 msgid "editing" msgstr "szerkesztés" -#: ../src/iop/retouch.c:2233 +#: ../src/iop/retouch.c:2459 msgid "show and edit shapes on the current scale" msgstr "a jelenlegi skála alakzatainak megjelenítése és szerkesztése" -#: ../src/iop/retouch.c:2234 +#: ../src/iop/retouch.c:2460 msgid "show and edit shapes in restricted mode" msgstr "alakzatok megjelenítése és szerkesztése korlátozott módon" -#: ../src/iop/retouch.c:2257 +#: ../src/iop/retouch.c:2489 msgid "algorithms:" msgstr "algoritmusok:" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2498 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2510 msgid "tools" msgstr "eszközök" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2278 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2518 msgid "activate blur tool" msgstr "elmosás eszköz aktiválása" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2493 ../src/iop/retouch.c:2499 +#: ../src/iop/retouch.c:2505 ../src/iop/retouch.c:2511 msgid "change algorithm for current form" msgstr "az aktuális űrlap algoritmusának módosítása" -#: ../src/iop/retouch.c:2264 ../src/iop/retouch.c:2281 +#: ../src/iop/retouch.c:2498 ../src/iop/retouch.c:2521 msgid "activate fill tool" msgstr "kitöltő eszköz aktiválása" -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2284 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2524 msgid "activate cloning tool" msgstr "klónozó eszköz aktiválása" -#: ../src/iop/retouch.c:2272 ../src/iop/retouch.c:2287 +#: ../src/iop/retouch.c:2510 ../src/iop/retouch.c:2527 msgid "activate healing tool" msgstr "gyógyító eszköz aktiválása" #. overwrite tooltip ourself to handle shift+click -#: ../src/iop/retouch.c:2276 +#: ../src/iop/retouch.c:2516 msgid "ctrl+click to change tool for current form" msgstr "ctrl+klikk az aktuális űrlap eszközének módosításához" -#: ../src/iop/retouch.c:2277 +#: ../src/iop/retouch.c:2517 msgid "shift+click to set the tool as default" msgstr "shift+klikk alapértelmezetté teszi az eszközt" -#: ../src/iop/retouch.c:2296 +#: ../src/iop/retouch.c:2537 msgid "scales:" msgstr "skálák:" -#: ../src/iop/retouch.c:2301 +#: ../src/iop/retouch.c:2544 msgid "current:" msgstr "jelenlegi:" -#: ../src/iop/retouch.c:2306 +#: ../src/iop/retouch.c:2551 msgid "merge from:" msgstr "egyesítés innen:" -#: ../src/iop/retouch.c:2314 +#: ../src/iop/retouch.c:2562 msgid "" "top slider adjusts where the merge scales start\n" "bottom slider adjusts the number of scales\n" @@ -18821,44 +19485,44 @@ "a felső vonal jelzi, hogy a skála látható-e az aktuális zoom szinten\n" "az alsó vonal jelzi, hogy a skálán van-e alakzat" -#: ../src/iop/retouch.c:2334 +#: ../src/iop/retouch.c:2591 msgid "display masks" msgstr "maszkok megjelenítése" -#: ../src/iop/retouch.c:2339 +#: ../src/iop/retouch.c:2597 msgid "temporarily switch off shapes" msgstr "átmenetileg kikapcsolja az alakzatokat" -#: ../src/iop/retouch.c:2347 +#: ../src/iop/retouch.c:2606 msgid "paste cut shapes to current scale" msgstr "kivágott alakzatok beillesztése az aktuális skálára" -#: ../src/iop/retouch.c:2351 +#: ../src/iop/retouch.c:2611 msgid "cut shapes from current scale" msgstr "alakzatok kivágása az aktuális skáláról" -#: ../src/iop/retouch.c:2358 +#: ../src/iop/retouch.c:2619 msgid "display wavelet scale" msgstr "wavelet skála megjelenítése" -#: ../src/iop/retouch.c:2366 +#: ../src/iop/retouch.c:2627 msgctxt "section" msgid "preview single scale" msgstr "egyetlen skála előnézete" -#: ../src/iop/retouch.c:2377 +#: ../src/iop/retouch.c:2641 msgid "adjust preview levels" msgstr "előnézeti szintek állítása" -#: ../src/iop/retouch.c:2392 ../src/iop/rgblevels.c:1051 +#: ../src/iop/retouch.c:2664 ../src/iop/rgblevels.c:1106 msgid "auto levels" msgstr "automatikus szintek" -#: ../src/iop/retouch.c:2400 +#: ../src/iop/retouch.c:2672 msgid "shape selected:" msgstr "kiválasztott alakzat:" -#: ../src/iop/retouch.c:2405 +#: ../src/iop/retouch.c:2678 msgid "" "click on a shape to select it,\n" "to unselect click on an empty space" @@ -18866,61 +19530,61 @@ "alakzat kiválasztásához kattintson rá,\n" "a kijelölés megszüntetéséhez kattintson az üres területre" -#: ../src/iop/retouch.c:2412 +#: ../src/iop/retouch.c:2687 msgid "erase the detail or fills with chosen color" msgstr "a választott szín részleteit vagy kitöltését törli" -#: ../src/iop/retouch.c:2419 +#: ../src/iop/retouch.c:2697 msgid "fill color: " msgstr "kitöltési szín: " -#: ../src/iop/retouch.c:2424 ../src/iop/retouch.c:2425 +#: ../src/iop/retouch.c:2702 ../src/iop/retouch.c:2703 msgid "select fill color" msgstr "kitöltési szín választása" -#: ../src/iop/retouch.c:2430 +#: ../src/iop/retouch.c:2713 msgid "pick fill color from image" msgstr "kitöltési színmintavétel a képről" -#: ../src/iop/retouch.c:2431 +#: ../src/iop/retouch.c:2714 msgid "pick fill color" msgstr "színmintavétel a kitöltéshez" -#: ../src/iop/retouch.c:2439 +#: ../src/iop/retouch.c:2724 msgid "adjusts color brightness to fine-tune it. works with erase as well" msgstr "" "finomhangoláshoz állítsa a szín fényességet. a törléssel is jól működik" -#: ../src/iop/retouch.c:2445 +#: ../src/iop/retouch.c:2730 msgid "type for the blur algorithm" msgstr "az elmosás algoritmusának típusa" -#: ../src/iop/retouch.c:2449 +#: ../src/iop/retouch.c:2734 msgid "radius of the selected blur type" msgstr "a kiválasztott elmosás típus sugara" -#: ../src/iop/retouch.c:2455 +#: ../src/iop/retouch.c:2741 msgid "set the opacity on the selected shape" msgstr "átlátszatlanságot állít a kiválasztott alakzaton" -#: ../src/iop/retouch.c:2461 +#: ../src/iop/retouch.c:2748 msgctxt "section" msgid "retouch tools" msgstr "retusáló eszközök" #. wavelet decompose -#: ../src/iop/retouch.c:2470 +#: ../src/iop/retouch.c:2757 msgctxt "section" msgid "wavelet decompose" msgstr "wavelet dekompozíció" #. shapes -#: ../src/iop/retouch.c:2484 +#: ../src/iop/retouch.c:2771 msgctxt "section" msgid "shapes" msgstr "alakzatok" -#: ../src/iop/retouch.c:3589 ../src/iop/retouch.c:4427 +#: ../src/iop/retouch.c:3986 ../src/iop/retouch.c:4956 #, c-format msgid "max scale is %i for this image size" msgstr "a skála maximális mérete %i ennél a képméretnél" @@ -18929,59 +19593,59 @@ msgid "rgb curve" msgstr "rgb görbe" -#: ../src/iop/rgbcurve.c:142 +#: ../src/iop/rgbcurve.c:144 msgid "alter an image’s tones using curves in RGB color space" msgstr "kép tónusainak módosítása görbékkel RGB színtérben" -#: ../src/iop/rgbcurve.c:193 ../src/iop/tonecurve.c:548 +#: ../src/iop/rgbcurve.c:195 ../src/iop/tonecurve.c:569 msgid "gamma 1.0 (linear)" msgstr "gamma 1.0 (lineáris)" -#: ../src/iop/rgbcurve.c:203 ../src/iop/tonecurve.c:558 +#: ../src/iop/rgbcurve.c:205 ../src/iop/tonecurve.c:579 msgid "contrast - med (linear)" msgstr "kontraszt – köz (lineáris)" -#: ../src/iop/rgbcurve.c:212 ../src/iop/tonecurve.c:567 +#: ../src/iop/rgbcurve.c:214 ../src/iop/tonecurve.c:588 msgid "contrast - high (linear)" msgstr "kontraszt – magas (lineáris)" -#: ../src/iop/rgbcurve.c:226 ../src/iop/tonecurve.c:579 +#: ../src/iop/rgbcurve.c:228 ../src/iop/tonecurve.c:600 msgid "contrast - med (gamma 2.2)" msgstr "kontraszt – köz (gamma 2.2)" -#: ../src/iop/rgbcurve.c:239 ../src/iop/tonecurve.c:590 +#: ../src/iop/rgbcurve.c:241 ../src/iop/tonecurve.c:611 msgid "contrast - high (gamma 2.2)" msgstr "kontraszt – magas (gamma 2.2)" -#: ../src/iop/rgbcurve.c:252 ../src/iop/tonecurve.c:603 +#: ../src/iop/rgbcurve.c:254 ../src/iop/tonecurve.c:624 msgid "gamma 2.0" msgstr "gamma 2.0" -#: ../src/iop/rgbcurve.c:258 ../src/iop/tonecurve.c:609 +#: ../src/iop/rgbcurve.c:260 ../src/iop/tonecurve.c:630 msgid "gamma 0.5" msgstr "gamma 0.5" -#: ../src/iop/rgbcurve.c:263 ../src/iop/tonecurve.c:614 +#: ../src/iop/rgbcurve.c:265 ../src/iop/tonecurve.c:635 msgid "logarithm (base 2)" msgstr "logaritmikus (kettes alapú)" -#: ../src/iop/rgbcurve.c:268 ../src/iop/tonecurve.c:619 +#: ../src/iop/rgbcurve.c:270 ../src/iop/tonecurve.c:640 msgid "exponential (base 2)" msgstr "exponenciális (2-es alapú)" -#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:999 +#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:1038 msgid "choose between linked and independent channels." msgstr "válasszon a kapcsolt vagy a független csatornák közül." -#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1003 +#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1043 msgid "curve nodes for r channel" msgstr "„r” csatorna görbepontjai" -#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1004 +#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1044 msgid "curve nodes for g channel" msgstr "„L” csatorna görbepontjai" -#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1005 +#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1045 msgid "curve nodes for b channel" msgstr "„b” csatorna görbepontjai" @@ -18989,15 +19653,15 @@ msgid "rgb levels" msgstr "rgb szintek" -#: ../src/iop/rgblevels.c:122 +#: ../src/iop/rgblevels.c:124 msgid "adjust black, white and mid-gray points in RGB color space" msgstr "fekete, fehér és középszürke pontok állítása RGB színtérben" -#: ../src/iop/rgblevels.c:1056 +#: ../src/iop/rgblevels.c:1112 msgid "auto region" msgstr "automata régió" -#: ../src/iop/rgblevels.c:1058 +#: ../src/iop/rgblevels.c:1115 msgid "" "apply auto levels based on a region defined by the user\n" "click and drag to draw the area\n" @@ -19013,7 +19677,7 @@ msgid "rotate pixels" msgstr "pixelforgatás" -#: ../src/iop/rotatepixels.c:97 ../src/iop/scalepixels.c:82 +#: ../src/iop/rotatepixels.c:99 ../src/iop/scalepixels.c:84 msgid "" "internal module to setup technical specificities of raw sensor.\n" "\n" @@ -19023,11 +19687,11 @@ "\n" "nem kell az itteni értékekhez hozzányúlnia!" -#: ../src/iop/rotatepixels.c:366 +#: ../src/iop/rotatepixels.c:381 msgid "automatic pixel rotation" msgstr "automatikus pixelforgatás" -#: ../src/iop/rotatepixels.c:367 +#: ../src/iop/rotatepixels.c:382 msgid "" "automatic pixel rotation\n" "only works for the sensors that need it." @@ -19040,11 +19704,11 @@ msgid "scale pixels" msgstr "pixelméretezés" -#: ../src/iop/scalepixels.c:271 +#: ../src/iop/scalepixels.c:281 msgid "automatic pixel scaling" msgstr "automatikus pixelméretezés" -#: ../src/iop/scalepixels.c:272 +#: ../src/iop/scalepixels.c:282 msgid "" "automatic pixel scaling\n" "only works for the sensors that need it." @@ -19052,11 +19716,11 @@ "automatikus pixelméretezés\n" "csak azoknál az érzékelőknél működik, amiknél szükség van rá." -#: ../src/iop/shadhi.c:175 +#: ../src/iop/shadhi.c:120 msgid "shadows and highlights" msgstr "árnyékok és csúcsfények" -#: ../src/iop/shadhi.c:195 +#: ../src/iop/shadhi.c:142 msgid "" "modify the tonal range of the shadows and highlights\n" "of an image by enhancing local contrast." @@ -19064,27 +19728,27 @@ "egy kép árnyékai és csúcsfényei tónustartományának módosítása\n" "a lokális kontraszt fokozásával." -#: ../src/iop/shadhi.c:676 ../src/iop/splittoning.c:548 +#: ../src/iop/shadhi.c:711 ../src/iop/splittoning.c:544 msgid "compress" msgstr "sűrítés" -#: ../src/iop/shadhi.c:683 +#: ../src/iop/shadhi.c:718 msgid "correct shadows" msgstr "árnyékok korrigálása" -#: ../src/iop/shadhi.c:684 +#: ../src/iop/shadhi.c:719 msgid "correct highlights" msgstr "csúcsfények korrigálása" -#: ../src/iop/shadhi.c:685 +#: ../src/iop/shadhi.c:720 msgid "shift white point" msgstr "fehérpont eltolás" -#: ../src/iop/shadhi.c:687 +#: ../src/iop/shadhi.c:722 msgid "filter to use for softening. bilateral avoids halos" msgstr "a lágyításhoz használt szűrő. a bilaterális átmenet nélküli" -#: ../src/iop/shadhi.c:688 +#: ../src/iop/shadhi.c:723 msgid "" "compress the effect on shadows/highlights and\n" "preserve mid-tones" @@ -19092,11 +19756,11 @@ "a hatás sűrítése az árnyékokon/csúcsfényeken,\n" "és a középtónusok megőrzése" -#: ../src/iop/shadhi.c:689 +#: ../src/iop/shadhi.c:724 msgid "adjust saturation of shadows" msgstr "árnyék telítettség korrekció" -#: ../src/iop/shadhi.c:690 +#: ../src/iop/shadhi.c:725 msgid "adjust saturation of highlights" msgstr "csúcsfény telítettség korrekció" @@ -19105,47 +19769,47 @@ msgid "sharpen" msgstr "élesítés" -#: ../src/iop/sharpen.c:93 +#: ../src/iop/sharpen.c:95 msgid "sharpen the details in the image using a standard UnSharp Mask (USM)" msgstr "" "a kép részleteinek élesítése egy szokásos életlen maszkkal (USM – UnSharp " "Mask)" -#: ../src/iop/sharpen.c:95 +#: ../src/iop/sharpen.c:97 msgid "linear or non-linear, Lab, display or scene-referred" msgstr "lineáris vagy nemlineáris, Lab, képernyő- vagy látványvonatkozású" -#: ../src/iop/sharpen.c:97 +#: ../src/iop/sharpen.c:99 msgid "quasi-linear, Lab, display or scene-referred" msgstr "kvázilineáris, Lab, képernyő- vagy látványvonatkozású" #. add the preset. #. restrict to raw images -#: ../src/iop/sharpen.c:104 ../src/iop/sharpen.c:108 +#: ../src/iop/sharpen.c:106 ../src/iop/sharpen.c:110 msgid "sharpen" msgstr "élesítés" -#: ../src/iop/sharpen.c:443 +#: ../src/iop/sharpen.c:438 msgid "spatial extent of the unblurring" msgstr "az homálytalanítás térbeli kiterjedése" -#: ../src/iop/sharpen.c:447 +#: ../src/iop/sharpen.c:442 msgid "strength of the sharpen" msgstr "élesítés erőssége" -#: ../src/iop/sharpen.c:451 +#: ../src/iop/sharpen.c:446 msgid "threshold to activate sharpen" msgstr "élesítés küszöbértéke" -#: ../src/iop/sigmoid.c:89 +#: ../src/iop/sigmoid.c:195 msgid "sigmoid" msgstr "szigmoid" -#: ../src/iop/sigmoid.c:94 +#: ../src/iop/sigmoid.c:200 msgid "tone mapping|view transform|display transform" msgstr "tónusleképezés|tónustérkép|nézettranszformáció" -#: ../src/iop/sigmoid.c:99 +#: ../src/iop/sigmoid.c:206 msgid "" "apply a view transform to make a image displayable\n" "on a screen or print. uses a robust and smooth\n" @@ -19155,19 +19819,19 @@ "legyen képernyőn vagy nyomtatásban. robusztus és sima\n" "tónusgörbét használ opcionális színmegőrzési módszerekkel." -#: ../src/iop/sigmoid.c:155 +#: ../src/iop/sigmoid.c:258 msgid "neutral gray" msgstr "természetes szürke" -#: ../src/iop/sigmoid.c:160 +#: ../src/iop/sigmoid.c:264 msgid "ACES 100-nit like" msgstr "ACES 100-nit jellegű" -#: ../src/iop/sigmoid.c:165 +#: ../src/iop/sigmoid.c:270 msgid "Reinhard" msgstr "Reinhard" -#: ../src/iop/sigmoid.c:683 +#: ../src/iop/sigmoid.c:917 msgid "" "compression of the applied curve\n" "implicitly defines the supported input dynamic range" @@ -19175,7 +19839,7 @@ "az alkalmazott görbe kompressziója\n" "implicit módon meghatározza a támogatott bemeneti dinamikatartományt" -#: ../src/iop/sigmoid.c:686 +#: ../src/iop/sigmoid.c:920 msgid "" "shift the compression towards shadows or highlights.\n" "negative values increase contrast in shadows.\n" @@ -19187,7 +19851,7 @@ "pozitív értékek a csúcsfények kontrasztját növelik.\n" "a másik végén a kontraszt csökkenése tapasztalható." -#: ../src/iop/sigmoid.c:695 +#: ../src/iop/sigmoid.c:929 msgid "" "optional correction of the hue twist introduced by\n" "the per-channel processing method." @@ -19195,15 +19859,55 @@ "opcionális korrekció a csatornánkénti feldolgozási\n" "módszerrel bekerült árnyalati elcsavarodásra." -#: ../src/iop/sigmoid.c:702 +#: ../src/iop/sigmoid.c:936 ../src/iop/sigmoid.c:940 +msgid "primaries" +msgstr "elsődleges színek" + +#: ../src/iop/sigmoid.c:937 +msgid "set custom primaries" +msgstr "egyéni elsődleges színek beállítása" + +#: ../src/iop/sigmoid.c:943 +msgid "primaries to use as the base for below adjustments" +msgstr "az alábbi hangolások alapjául szolgáló elsődleges színek" + +#: ../src/iop/sigmoid.c:962 +msgid "attenuate the purity of the red primary" +msgstr "csökkenti a vörös elsődleges szín tisztaságát" + +#: ../src/iop/sigmoid.c:963 +msgid "rotate the red primary" +msgstr "elforgatja a vörös elsődleges színt" + +#: ../src/iop/sigmoid.c:964 +msgid "attenuate the purity of the green primary" +msgstr "csökkenti a zöld elsődleges szín tisztaságát" + +#: ../src/iop/sigmoid.c:965 +msgid "rotate the green primary" +msgstr "elforgatja a zöld elsődleges színt" + +#: ../src/iop/sigmoid.c:966 +msgid "attenuate the purity of the blue primary" +msgstr "csökkenti a kék elsődleges szín tisztaságát" + +#: ../src/iop/sigmoid.c:967 +msgid "rotate the blue primary" +msgstr "elforgatja a kék elsődleges színt" + +#: ../src/iop/sigmoid.c:974 +msgid "recover some of the original purity after the inset" +msgstr "visszanyer valamennyit az eredeti tisztaságból a beszabályzás után" + +#: ../src/iop/sigmoid.c:978 msgid "display luminance" msgstr "megjelenítő fénysűrűsége" -#: ../src/iop/sigmoid.c:706 +#: ../src/iop/sigmoid.c:979 msgid "set display black/white targets" msgstr "megjelenítő fekete/fehér céljainak beállítása" -#: ../src/iop/sigmoid.c:714 +#: ../src/iop/sigmoid.c:987 msgid "" "the black luminance of the target display or print.\n" "can be used creatively for a faded look." @@ -19211,7 +19915,7 @@ "a fekete fénysűrűsége a cél megjelenítőn vagy nyomaton.\n" "használható kreatív céllal fakó kinézet elérésére." -#: ../src/iop/sigmoid.c:719 +#: ../src/iop/sigmoid.c:992 msgid "" "the white luminance of the target display or print.\n" "can be used creatively for a faded look or blowing out whites earlier." @@ -19224,23 +19928,23 @@ msgid "soften" msgstr "lágyítás" -#: ../src/iop/soften.c:100 +#: ../src/iop/soften.c:102 msgid "create a softened image using the Orton effect" msgstr "lágyított kép készítése az Orton-hatás használatával" -#: ../src/iop/soften.c:371 +#: ../src/iop/soften.c:366 msgid "the size of blur" msgstr "elmosás mérete" -#: ../src/iop/soften.c:375 +#: ../src/iop/soften.c:370 msgid "the saturation of blur" msgstr "elmosás telítettsége" -#: ../src/iop/soften.c:379 +#: ../src/iop/soften.c:374 msgid "the brightness of blur" msgstr "elmosás fényereje" -#: ../src/iop/soften.c:383 +#: ../src/iop/soften.c:378 msgid "the mix of effect" msgstr "az effekt keverése" @@ -19248,7 +19952,7 @@ msgid "split-toning" msgstr "tónusfelosztás" -#: ../src/iop/splittoning.c:101 +#: ../src/iop/splittoning.c:103 msgid "" "use two specific colors for shadows and highlights and\n" "create a linear toning effect between them up to a pivot." @@ -19256,49 +19960,49 @@ "két jellemző színt használ az árnyékokhoz és csúcsfényekhez és\n" "lineáris tónus effektet hoz létre köztük egy forgástengelyig." -#: ../src/iop/splittoning.c:118 +#: ../src/iop/splittoning.c:120 msgid "authentic sepia" msgstr "autentikus szépia" -#: ../src/iop/splittoning.c:127 +#: ../src/iop/splittoning.c:129 msgid "authentic cyanotype" msgstr "autentikus kéknyomat" -#: ../src/iop/splittoning.c:136 +#: ../src/iop/splittoning.c:138 msgid "authentic platinotype" msgstr "autentikus platinotípia" -#: ../src/iop/splittoning.c:145 +#: ../src/iop/splittoning.c:147 msgid "chocolate brown" msgstr "csokoládébarna" -#: ../src/iop/splittoning.c:490 +#: ../src/iop/splittoning.c:486 msgid "select the saturation tone" msgstr "telítettség tónusának kiválasztása" -#: ../src/iop/splittoning.c:494 +#: ../src/iop/splittoning.c:490 msgid "select tone color" msgstr "tónusszín választása" -#: ../src/iop/splittoning.c:524 +#: ../src/iop/splittoning.c:520 msgctxt "section" msgid "shadows" msgstr "árnyékok" -#: ../src/iop/splittoning.c:530 +#: ../src/iop/splittoning.c:526 msgctxt "section" msgid "highlights" msgstr "csúcsfények" -#: ../src/iop/splittoning.c:539 +#: ../src/iop/splittoning.c:535 msgid "balance" -msgstr "balansz" +msgstr "egyensúly" -#: ../src/iop/splittoning.c:546 +#: ../src/iop/splittoning.c:542 msgid "the balance of center of split-toning" msgstr "a tónusfelosztás középpontjának egyensúlya" -#: ../src/iop/splittoning.c:550 +#: ../src/iop/splittoning.c:546 msgid "" "compress the effect on highlights/shadows and\n" "preserve mid-tones" @@ -19322,16 +20026,16 @@ msgid "geometric, raw" msgstr "geometriai, raw" -#: ../src/iop/spots.c:226 +#: ../src/iop/spots.c:238 msgid "spot module is limited to 64 shapes. please add a new instance!" msgstr "" "a folteltávolító modul 64 alakzatra van korlátozva. adjon hozzá új példányt!" -#: ../src/iop/spots.c:872 +#: ../src/iop/spots.c:874 msgid "number of strokes:" msgstr "vonások száma:" -#: ../src/iop/spots.c:876 +#: ../src/iop/spots.c:878 msgid "" "click on a shape and drag on canvas.\n" "use the mouse wheel to adjust size.\n" @@ -19341,131 +20045,119 @@ "az egérgörgővel változtatható a mérete.\n" "jobb kattintással eltávolítható az alakzat." -#: ../src/iop/spots.c:879 +#: ../src/iop/spots.c:881 msgid "show and edit shapes" msgstr "alakzatok megjelenítése és szerkesztése" -#: ../src/iop/temperature.c:204 +#: ../src/iop/temperature.c:212 msgctxt "modulename" msgid "white balance" msgstr "fehéregyensúly" -#: ../src/iop/temperature.c:211 +#: ../src/iop/temperature.c:219 msgid "scale raw RGB channels to balance white and help demosaicing" msgstr "" "raw RGB csatornák méretezése a fehérek kiegyensúlyozásához és a demosaicing " "elősegítésére" -#: ../src/iop/temperature.c:1149 -msgid "white balance applied twice" -msgstr "fehéregyensúly kétszer alkalmazva" - -#: ../src/iop/temperature.c:1150 -msgid "" -"the color calibration module is enabled,\n" -"and performing chromatic adaptation.\n" -"set the white balance here to camera reference (D65)\n" -"or disable chromatic adaptation in color calibration." -msgstr "" -"a színkalibrációs modul engedélyezve van\n" -"és kromatikus adaptálást végez.\n" -"állítsa a fehéregyensúlyt itt fényképező referencia (D65)-re,\n" -"vagy tiltsa le a kromatikus adaptálást a színkalibráció modulban." - -#: ../src/iop/temperature.c:1430 +#: ../src/iop/temperature.c:1388 #, c-format msgid "`%s' color matrix not found for image" msgstr "„%s„ színmátrix nem található a képhez" -#: ../src/iop/temperature.c:1459 +#: ../src/iop/temperature.c:1418 #, c-format msgid "failed to read camera white balance information from `%s'!" msgstr "" "nem sikerült kiolvasni a fényképező fehéregyensúly adatait innen: „%s”!" -#: ../src/iop/temperature.c:1631 +#: ../src/iop/temperature.c:1612 msgctxt "white balance" msgid "as shot" msgstr "mint a felvételen" #. old "spot", reason: describes exactly what'll happen -#: ../src/iop/temperature.c:1634 +#: ../src/iop/temperature.c:1615 msgctxt "white balance" msgid "from image area" msgstr "a képterületről" -#: ../src/iop/temperature.c:1635 +#: ../src/iop/temperature.c:1616 msgctxt "white balance" msgid "user modified" msgstr "felhasználó által módosított" #. old "camera neutral", reason: better matches intent -#: ../src/iop/temperature.c:1637 +#: ../src/iop/temperature.c:1618 msgctxt "white balance" msgid "camera reference" msgstr "fényképező referencia" -#: ../src/iop/temperature.c:1920 ../src/iop/temperature.c:1938 +#: ../src/iop/temperature.c:1897 ../src/iop/temperature.c:1915 msgid "green channel coefficient" msgstr "zöld csatorna együttható" -#: ../src/iop/temperature.c:1922 +#: ../src/iop/temperature.c:1899 msgid "magenta channel coefficient" msgstr "bíbor csatorna együttható" -#: ../src/iop/temperature.c:1924 +#: ../src/iop/temperature.c:1901 msgid "cyan channel coefficient" msgstr "cián csatorna együttható" -#: ../src/iop/temperature.c:1926 +#: ../src/iop/temperature.c:1903 msgid "yellow channel coefficient" msgstr "sárga csatorna együttható" -#: ../src/iop/temperature.c:1936 +#: ../src/iop/temperature.c:1913 msgid "red channel coefficient" msgstr "vörös csatorna együttható" -#: ../src/iop/temperature.c:1940 +#: ../src/iop/temperature.c:1917 msgid "blue channel coefficient" msgstr "kék csatorna együttható" -#: ../src/iop/temperature.c:1942 +#: ../src/iop/temperature.c:1918 +msgid "emerald" +msgstr "smaragd" + +#: ../src/iop/temperature.c:1919 msgid "emerald channel coefficient" msgstr "smaragdzöld csatorna együttható" #. relabel to settings to remove confusion between module presets #. and white balance settings -#: ../src/iop/temperature.c:2029 ../src/iop/temperature.c:2042 -#: ../src/iop/temperature.c:2049 ../src/iop/temperature.c:2055 -#: ../src/iop/temperature.c:2074 +#: ../src/iop/temperature.c:1997 ../src/iop/temperature.c:2010 +#: ../src/iop/temperature.c:2017 ../src/iop/temperature.c:2023 +#: ../src/iop/temperature.c:2042 msgid "settings" msgstr "beállítások" -#: ../src/iop/temperature.c:2029 +#: ../src/iop/temperature.c:1997 msgid "as shot" msgstr "mint a felvételen" -#: ../src/iop/temperature.c:2032 +#: ../src/iop/temperature.c:2000 msgid "set white balance to as shot" msgstr "fehéregyensúly beállítása: mint elsütésnél" -#: ../src/iop/temperature.c:2042 +#: ../src/iop/temperature.c:2010 msgid "from image area" msgstr "a képterületről" -#: ../src/iop/temperature.c:2049 +#: ../src/iop/temperature.c:2017 msgid "user modified" msgstr "felhasználó által módosított" -#: ../src/iop/temperature.c:2052 +#: ../src/iop/temperature.c:2020 msgid "set white balance to user modified" msgstr "fehéregyensúly beállítása: felhasználó által módosított" -#: ../src/iop/temperature.c:2055 +#: ../src/iop/temperature.c:2023 msgid "camera reference" msgstr "fényképező referencia" -#: ../src/iop/temperature.c:2060 +#: ../src/iop/temperature.c:2028 msgid "" "set white balance to camera reference point\n" "in most cases it should be D65" @@ -19473,56 +20165,60 @@ "fehéregyensúly beállítása: fényképező referencia pontja\n" "a legtöbb esetben ez D65 kell legyen" -#: ../src/iop/temperature.c:2075 +#: ../src/iop/temperature.c:2043 msgid "choose white balance setting" msgstr "fehéregyensúly beállítás kiválasztása" -#: ../src/iop/temperature.c:2080 +#: ../src/iop/temperature.c:2048 msgid "finetune" msgstr "finomhangolás" -#: ../src/iop/temperature.c:2082 +#: ../src/iop/temperature.c:2050 msgid "fine tune camera's white balance setting" msgstr "fényképező fehéregyensúly beállításának finomhangolása" -#: ../src/iop/temperature.c:2093 +#: ../src/iop/temperature.c:2058 msgctxt "section" msgid "scene illuminant temp" msgstr "jelenet fényforrásának hőmérséklete" -#: ../src/iop/temperature.c:2094 +#: ../src/iop/temperature.c:2059 msgid "click to cycle color mode on sliders" msgstr "kattintásra váltja a színmódokat a csúszkákon" -#: ../src/iop/temperature.c:2108 +#: ../src/iop/temperature.c:2073 msgid "color temperature (in Kelvin)" msgstr "színhőmérséklet (Kelvinben)" -#: ../src/iop/temperature.c:2114 +#: ../src/iop/temperature.c:2079 msgid "tint" msgstr "színezet" -#: ../src/iop/temperature.c:2117 +#: ../src/iop/temperature.c:2082 msgid "color tint of the image, from magenta (value < 1) to green (value > 1)" msgstr "a kép színárnyalata bíbortól (érték < 1) a zöldig (érték > 1)" -#: ../src/iop/temperature.c:2123 +#: ../src/iop/temperature.c:2088 msgid "channel coefficients" msgstr "csatorna együtthatók" -#: ../src/iop/temperature.c:2158 +#: ../src/iop/temperature.c:2097 +msgid "various" +msgstr "különféle" + +#: ../src/iop/temperature.c:2123 msgid "white balance disabled for camera" msgstr "fehéregyensúly letiltva ennél a kameránál" -#: ../src/iop/tonecurve.c:190 +#: ../src/iop/tonecurve.c:161 msgid "tone curve" msgstr "tónusgörbe" -#: ../src/iop/tonecurve.c:210 +#: ../src/iop/tonecurve.c:183 msgid "alter an image’s tones using curves" msgstr "kép tónusainak módosítása görbékkel" -#: ../src/iop/tonecurve.c:1125 +#: ../src/iop/tonecurve.c:1147 msgid "" "if set to auto, a and b curves have no effect and are not displayed. chroma " "values (a and b) of each pixel are then adjusted based on L curve data. auto " @@ -19533,123 +20229,115 @@ "lesznek beállítva. az automata XYZ hasonló, de a telítettség változásait XYZ " "térben alkalmazza." -#: ../src/iop/tonecurve.c:1134 +#: ../src/iop/tonecurve.c:1156 msgid "tonecurve for L channel" msgstr "„L” csatorna tónusgörbéje" -#: ../src/iop/tonecurve.c:1135 +#: ../src/iop/tonecurve.c:1157 msgid "tonecurve for a channel" msgstr "„a” csatorna tónusgörbéje" -#: ../src/iop/tonecurve.c:1136 +#: ../src/iop/tonecurve.c:1158 msgid "tonecurve for b channel" msgstr "„b” csatorna tónusgörbéje" -#: ../src/iop/tonecurve.c:1143 ../src/iop/watermark.c:1305 -#: ../src/libs/colorpicker.c:597 +#: ../src/iop/tonecurve.c:1165 ../src/iop/watermark.c:1353 +#: ../src/libs/colorpicker.c:675 msgid "pick color" msgstr "színmintavétel" -#: ../src/iop/toneequal.c:311 +#: ../src/iop/toneequal.c:319 msgid "tone equalizer" msgstr "tónus equalizer" -#: ../src/iop/toneequal.c:316 +#: ../src/iop/toneequal.c:324 msgid "tone curve|tone mapping|relight|background light|shadows highlights" msgstr "" "tónus görbe|árnyalat görbe|tónusleképezés|újrafényelés|háttérfény|árnyékok " "csúcsfénye|tone curve|tone mapping|relight|background light|shadows " "highlights" -#: ../src/iop/toneequal.c:323 +#: ../src/iop/toneequal.c:331 msgid "relight the scene as if the lighting was done directly on the scene" msgstr "" "újrafényeli a jelenetet úgy, mintha a világítás a helyszínen lett volna " "elvégezve" -#: ../src/iop/toneequal.c:326 +#: ../src/iop/toneequal.c:334 msgid "quasi-linear, RGB" msgstr "kvázilineáris, RGB" -#: ../src/iop/toneequal.c:327 +#: ../src/iop/toneequal.c:335 msgid "quasi-linear, RGB, scene-referred" msgstr "kvázilineáris, RGB, látványvonatkozású" -#: ../src/iop/toneequal.c:458 +#: ../src/iop/toneequal.c:489 msgid "simple tone curve" msgstr "egyszerű tónusgörbe" -#: ../src/iop/toneequal.c:472 +#: ../src/iop/toneequal.c:503 msgid "mask blending: all purposes" msgstr "maszk keverés: minden célra" -#: ../src/iop/toneequal.c:479 +#: ../src/iop/toneequal.c:510 msgid "mask blending: people with backlight" msgstr "maszk keverés: emberek háttérvilágítással" -#: ../src/iop/toneequal.c:496 +#: ../src/iop/toneequal.c:527 msgid "compress shadows/highlights (EIGF): strong" msgstr "árnyékok/csúcsfények összenyomása (EIGF): erős" -#: ../src/iop/toneequal.c:501 +#: ../src/iop/toneequal.c:532 msgid "compress shadows/highlights (GF): strong" msgstr "árnyékok/csúcsfények összenyomása (GF): erős" -#: ../src/iop/toneequal.c:510 +#: ../src/iop/toneequal.c:541 msgid "compress shadows/highlights (EIGF): medium" msgstr "árnyékok/csúcsfények összenyomása (EIGF): közepes" -#: ../src/iop/toneequal.c:515 +#: ../src/iop/toneequal.c:546 msgid "compress shadows/highlights (GF): medium" msgstr "árnyékok/csúcsfények összenyomása (GF): közepes" -#: ../src/iop/toneequal.c:524 +#: ../src/iop/toneequal.c:555 msgid "compress shadows/highlights (EIGF): soft" msgstr "árnyékok/csúcsfények összenyomása (EIGF): lágy" -#: ../src/iop/toneequal.c:529 +#: ../src/iop/toneequal.c:560 msgid "compress shadows/highlights (GF): soft" msgstr "árnyékok/csúcsfények összenyomása (GF): lágy" -#: ../src/iop/toneequal.c:537 +#: ../src/iop/toneequal.c:568 msgid "contrast tone curve: soft" msgstr "kontraszt tónusgörbe: lágy" -#: ../src/iop/toneequal.c:542 +#: ../src/iop/toneequal.c:573 msgid "contrast tone curve: medium" msgstr "kontraszt tónusgörbe: közepes" -#: ../src/iop/toneequal.c:547 +#: ../src/iop/toneequal.c:578 msgid "contrast tone curve: strong" msgstr "kontraszt tónusgörbe: erős" -#: ../src/iop/toneequal.c:570 +#: ../src/iop/toneequal.c:601 msgid "relight: fill-in" msgstr "újrafényelés: kitöltés" -#: ../src/iop/toneequal.c:627 -msgid "" -"tone equalizer needs to be after distortion modules in the pipeline – " -"disabled" -msgstr "" -"a tónus equalizer később kell legyen a feldolgozási sorban, mint a torzítás. " -"letiltva" - -#: ../src/iop/toneequal.c:1091 +#: ../src/iop/toneequal.c:1120 msgid "tone equalizer failed to allocate memory, check your RAM settings" msgstr "" "a tónus equalizer nem tudott memóriát lefoglalni, ellenőrizze a RAM " "beállításokat" -#: ../src/iop/toneequal.c:1795 ../src/iop/toneequal.c:2180 +#: ../src/iop/toneequal.c:1825 ../src/iop/toneequal.c:2196 msgid "the interpolation is unstable, decrease the curve smoothing" msgstr "az interpoláció instabil, csökkentse a görbe smítását" -#: ../src/iop/toneequal.c:1830 ../src/iop/toneequal.c:1897 +#: ../src/iop/toneequal.c:1860 ../src/iop/toneequal.c:1927 msgid "wait for the preview to finish recomputing" msgstr "várakozás az előnézet újraszámolásának befejezésére" -#: ../src/iop/toneequal.c:2037 ../src/iop/toneequal.c:2587 +#: ../src/iop/toneequal.c:2069 ../src/iop/toneequal.c:2628 msgid "" "scroll over image to change tone exposure\n" "shift+scroll for large steps; ctrl+scroll for small steps" @@ -19658,89 +20346,89 @@ "shift+görgetés nagyobb lépésekben\n" "ctrl+görgetés kisebb lépésekben" -#: ../src/iop/toneequal.c:2185 +#: ../src/iop/toneequal.c:2201 msgid "some parameters are out-of-bounds" msgstr "néhány paraméter kívül esik a határokon" -#: ../src/iop/toneequal.c:2524 +#: ../src/iop/toneequal.c:2518 #, c-format msgid "%+.1f EV" msgstr "%+.1f FÉ" -#: ../src/iop/toneequal.c:3236 +#: ../src/iop/toneequal.c:3283 #, c-format msgid "[%s over image] change tone exposure" msgstr "[%s a kép fölött] tónus expozíció módosítása" -#: ../src/iop/toneequal.c:3239 +#: ../src/iop/toneequal.c:3286 #, c-format msgid "[%s over image] change tone exposure in large steps" msgstr "[%s a kép fölött] tónus expozíció módosítása nagy lépésekben" -#: ../src/iop/toneequal.c:3242 +#: ../src/iop/toneequal.c:3289 #, c-format msgid "[%s over image] change tone exposure in small steps" msgstr "[%s a kép fölött] tónus expozíció módosítása kis lépésekben" #. Simple view -#: ../src/iop/toneequal.c:3323 ../src/iop/toneequal.c:3352 -#: ../src/iop/toneequal.c:3353 ../src/iop/toneequal.c:3354 -#: ../src/iop/toneequal.c:3355 ../src/iop/toneequal.c:3356 -#: ../src/iop/toneequal.c:3357 ../src/iop/toneequal.c:3358 -#: ../src/iop/toneequal.c:3359 ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3376 ../src/iop/toneequal.c:3405 +#: ../src/iop/toneequal.c:3406 ../src/iop/toneequal.c:3407 +#: ../src/iop/toneequal.c:3408 ../src/iop/toneequal.c:3409 +#: ../src/iop/toneequal.c:3410 ../src/iop/toneequal.c:3411 +#: ../src/iop/toneequal.c:3412 ../src/iop/toneequal.c:3413 msgid "simple" msgstr "egyszerű" -#: ../src/iop/toneequal.c:3352 +#: ../src/iop/toneequal.c:3405 msgid "-8 EV" msgstr "-8 FÉ" -#: ../src/iop/toneequal.c:3353 +#: ../src/iop/toneequal.c:3406 msgid "-7 EV" msgstr "-7 FÉ" -#: ../src/iop/toneequal.c:3354 +#: ../src/iop/toneequal.c:3407 msgid "-6 EV" msgstr "-6 FÉ" -#: ../src/iop/toneequal.c:3355 +#: ../src/iop/toneequal.c:3408 msgid "-5 EV" msgstr "-5 FÉ" -#: ../src/iop/toneequal.c:3356 +#: ../src/iop/toneequal.c:3409 msgid "-4 EV" msgstr "-4 FÉ" -#: ../src/iop/toneequal.c:3357 +#: ../src/iop/toneequal.c:3410 msgid "-3 EV" msgstr "-3 FÉ" -#: ../src/iop/toneequal.c:3358 +#: ../src/iop/toneequal.c:3411 msgid "-2 EV" msgstr "-2 FÉ" -#: ../src/iop/toneequal.c:3359 +#: ../src/iop/toneequal.c:3412 msgid "-1 EV" msgstr "-1 FÉ" -#: ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3413 msgid "+0 EV" msgstr "+0 FÉ" #. Advanced view -#: ../src/iop/toneequal.c:3364 +#: ../src/iop/toneequal.c:3417 msgid "advanced" msgstr "haladó" -#: ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3444 msgid "double-click to reset the curve" msgstr "dupla kattintással alaphelyzetbe állítja a görbét" -#: ../src/iop/toneequal.c:3395 +#: ../src/iop/toneequal.c:3448 msgid "curve smoothing" msgstr "görbesimítás" -#: ../src/iop/toneequal.c:3398 +#: ../src/iop/toneequal.c:3451 msgid "" "positive values will produce more progressive tone transitions\n" "but the curve might become oscillatory in some settings.\n" @@ -19753,11 +20441,11 @@ "de brutális tónusátvitelt és a lokális kontraszt károsodását okozhatják." #. Masking options -#: ../src/iop/toneequal.c:3408 +#: ../src/iop/toneequal.c:3461 msgid "masking" msgstr "maszkolás" -#: ../src/iop/toneequal.c:3413 +#: ../src/iop/toneequal.c:3466 msgid "" "preview the mask and chose the estimator that gives you the\n" "higher contrast between areas to dodge and areas to burn" @@ -19765,15 +20453,15 @@ "nézze meg a maszk előnézetét és válassza ki azt a becslési módot,\n" "ami magasabb kontrasztot ad a világosítandó és égetendő területek között" -#: ../src/iop/toneequal.c:3416 +#: ../src/iop/toneequal.c:3469 msgid "details" msgstr "részletek" -#: ../src/iop/toneequal.c:3417 +#: ../src/iop/toneequal.c:3470 msgid "preserve details" msgstr "részletek megőrzése" -#: ../src/iop/toneequal.c:3420 +#: ../src/iop/toneequal.c:3473 msgid "" "'no' affects global and local contrast (safe if you only add contrast)\n" "'guided filter' only affects global contrast and tries to preserve local " @@ -19799,7 +20487,7 @@ "Az „átlagolt EIGF” a „nem” és az „expozíciótól független irányított szűrő” " "módszerek geometriai átlaga" -#: ../src/iop/toneequal.c:3433 +#: ../src/iop/toneequal.c:3486 msgid "" "number of passes of guided filter to apply\n" "helps diffusing the edges of the filter at the expense of speed" @@ -19807,7 +20495,7 @@ "az alkalmazandó irányított szűrő meneteinek száma.\n" "segít a szűrőnek szórni az éleken a sebesség árán" -#: ../src/iop/toneequal.c:3441 +#: ../src/iop/toneequal.c:3494 msgid "" "diameter of the blur in percent of the largest image size\n" "warning: big values of this parameter can make the darkroom\n" @@ -19817,7 +20505,7 @@ "figyelem: a paraméter nagy értékei lelassíthatják a sötétkamra\n" "előnézetét profilozott zajszűrés használatakor." -#: ../src/iop/toneequal.c:3449 +#: ../src/iop/toneequal.c:3502 msgid "" "precision of the feathering:\n" "higher values force the mask to follow edges more closely\n" @@ -19831,12 +20519,12 @@ "alacsonyabb érték simább átmenetet és jobb simítást ad\n" "de pontatlanabb élkövetést és holdudvarhatást eredményezhet" -#: ../src/iop/toneequal.c:3456 +#: ../src/iop/toneequal.c:3509 msgctxt "section" msgid "mask post-processing" msgstr "maszk utófeldolgozása" -#: ../src/iop/toneequal.c:3467 +#: ../src/iop/toneequal.c:3520 msgid "" "mask histogram span between the first and last deciles.\n" "the central line shows the average. orange bars appear at extrema if " @@ -19846,7 +20534,7 @@ "a középső vonal mutatja az átlagot, a narancs sáv a szélsőértéknél jelenik " "meg ha vágás történik." -#: ../src/iop/toneequal.c:3475 +#: ../src/iop/toneequal.c:3528 msgid "" "0 disables the quantization.\n" "higher values posterize the luminance mask to help the guiding\n" @@ -19857,7 +20545,7 @@ "irányítást.\n" "darabonként sima területet eredményez magas perem érték használatakor" -#: ../src/iop/toneequal.c:3484 +#: ../src/iop/toneequal.c:3537 msgid "" "use this to slide the mask average exposure along channels\n" "for a better control of the exposure correction with the available nodes.\n" @@ -19868,7 +20556,7 @@ "csomópontokkal.\n" "a varázspálca automatikusan beállítja az átlagos expozíciót" -#: ../src/iop/toneequal.c:3497 +#: ../src/iop/toneequal.c:3550 msgid "" "use this to counter the averaging effect of the guided filter\n" "and dilate the mask contrast around -4EV\n" @@ -19883,7 +20571,7 @@ "az expozíció korrekciójának jobb szabályozása érdekében.\n" "a varázspálca automatikusan beállítja a kontrasztot" -#: ../src/iop/toneequal.c:3520 ../src/iop/toneequal.c:3523 +#: ../src/iop/toneequal.c:3573 ../src/iop/toneequal.c:3576 msgid "display exposure mask" msgstr "expozíciós maszk megjelenítése" @@ -19899,22 +20587,22 @@ "ez a modul elavult. kérem, használja helyette a lokális kontraszt, vagy " "tónus equalizer modult." -#: ../src/iop/velvia.c:79 +#: ../src/iop/velvia.c:70 msgid "velvia" msgstr "velvia" -#: ../src/iop/velvia.c:104 +#: ../src/iop/velvia.c:97 msgid "" "resaturate giving more weight to blacks, whites and low-saturation pixels" msgstr "" "újraszaturál, nagyobb súlyt adva a feketéknek, a fehéreknek és az alacsony " "telítettségű pixeleknek" -#: ../src/iop/velvia.c:281 +#: ../src/iop/velvia.c:290 msgid "the strength of saturation boost" msgstr "a telítettség kiemelés erőssége" -#: ../src/iop/velvia.c:284 +#: ../src/iop/velvia.c:293 msgid "how much to spare highlights and shadows" msgstr "mennyire kímélje meg az árnyékokat és csúcsfényeket" @@ -19926,7 +20614,7 @@ "ez a modul elavult. kérem, használja helyette a vibrancia csúszkát a " "színegyensúly rgb modulban." -#: ../src/iop/vibrance.c:93 +#: ../src/iop/vibrance.c:95 msgid "" "saturate and reduce the lightness of the most saturated pixels\n" "to make the colors more vivid." @@ -19934,56 +20622,52 @@ "szaturál és csökkenti a leginkább telített pixelek fényességét\n" "hogy a színek élénkebbek legyenek." -#: ../src/iop/vibrance.c:217 +#: ../src/iop/vibrance.c:211 msgid "the amount of vibrance" msgstr "a vibrancia mértéke" -#: ../src/iop/vignette.c:153 -msgid "vignetting" -msgstr "peremsötétedés" - -#: ../src/iop/vignette.c:158 +#: ../src/iop/vignette.c:119 msgid "simulate a lens fall-off close to edges" msgstr "szimulálja a lencsék fényerő csökkenését a szélek közelében" -#: ../src/iop/vignette.c:940 +#: ../src/iop/vignette.c:1022 msgid "lomo" msgstr "lomo" -#: ../src/iop/vignette.c:974 +#: ../src/iop/vignette.c:1061 msgctxt "section" msgid "position / form" msgstr "pozíció / forma" -#: ../src/iop/vignette.c:981 +#: ../src/iop/vignette.c:1069 msgid "dithering" msgstr "zajmoduláció" -#: ../src/iop/vignette.c:992 +#: ../src/iop/vignette.c:1081 msgid "the radii scale of vignette for start of fall-off" msgstr "a peremsötétedési sugár esésének kezdete" -#: ../src/iop/vignette.c:993 +#: ../src/iop/vignette.c:1083 msgid "the radii scale of vignette for end of fall-off" msgstr "a peremsötétedési sugár esésének vége" -#: ../src/iop/vignette.c:994 +#: ../src/iop/vignette.c:1084 msgid "strength of effect on brightness" msgstr "fényerő effekt erőssége" -#: ../src/iop/vignette.c:995 +#: ../src/iop/vignette.c:1085 msgid "strength of effect on saturation" msgstr "telítettség effekt erőssége" -#: ../src/iop/vignette.c:996 +#: ../src/iop/vignette.c:1086 msgid "horizontal offset of center of the effect" msgstr "az effekt középpontjának vízszintes eltolása" -#: ../src/iop/vignette.c:997 +#: ../src/iop/vignette.c:1087 msgid "vertical offset of center of the effect" msgstr "az effekt középpontjának függőleges eltolása" -#: ../src/iop/vignette.c:998 +#: ../src/iop/vignette.c:1090 msgid "" "shape factor\n" "0 produces a rectangle\n" @@ -19995,56 +20679,56 @@ "1: kör vagy ellipszis\n" "2: gyémánt" -#: ../src/iop/vignette.c:1000 +#: ../src/iop/vignette.c:1094 msgid "enable to have the ratio automatically follow the image size" msgstr "engedélyezve az arányt automatikusan számolja a kép méretéből" -#: ../src/iop/vignette.c:1001 +#: ../src/iop/vignette.c:1095 msgid "width-to-height ratio" msgstr "szélesség/magasság arány" -#: ../src/iop/vignette.c:1002 +#: ../src/iop/vignette.c:1097 msgid "add some level of random noise to prevent banding" msgstr "véletlen mértékű zajt ad hozzá, elkerülendő a sávosodást" -#: ../src/iop/vignette.c:1009 +#: ../src/iop/vignette.c:1105 #, c-format msgid "[%s on node] change vignette/feather size" msgstr "[%s ponton] peremsötétedés / lágy perem módosítása" -#: ../src/iop/vignette.c:1011 +#: ../src/iop/vignette.c:1108 #, c-format msgid "[%s on node] change vignette/feather size keeping ratio" msgstr "[%s ponton] peremsötétedés / lágy perem módosítása megőrizve az arányt" -#: ../src/iop/vignette.c:1013 +#: ../src/iop/vignette.c:1111 #, c-format msgid "[%s on center] move vignette" msgstr "[%s középen] peremsötétedés mozgatása" -#: ../src/iop/watermark.c:371 +#: ../src/iop/watermark.c:416 msgid "watermark" msgstr "vízjel" -#: ../src/iop/watermark.c:376 +#: ../src/iop/watermark.c:421 msgid "overlay an SVG watermark like a signature on the picture" msgstr "SVG vízjelrátét a képen, mint egy aláírás" -#: ../src/iop/watermark.c:1258 +#: ../src/iop/watermark.c:1306 msgid "marker" msgstr "jelölő" -#: ../src/iop/watermark.c:1261 +#: ../src/iop/watermark.c:1309 #, c-format msgid "SVG watermarks in %s/watermarks or %s/watermarks" msgstr "SVG vízjelek itt: %s/watermarks vagy itt: %s/watermarks" #. Simple text -#: ../src/iop/watermark.c:1271 ../src/iop/watermark.c:1272 +#: ../src/iop/watermark.c:1319 ../src/iop/watermark.c:1320 msgid "text" msgstr "szöveg" -#: ../src/iop/watermark.c:1273 +#: ../src/iop/watermark.c:1321 msgid "" "text string, tag:\n" "$(WATERMARK_TEXT)" @@ -20052,16 +20736,16 @@ "szöveg, címke:\n" "$(WATERMARK_TEXT)" -#: ../src/iop/watermark.c:1275 +#: ../src/iop/watermark.c:1323 msgid "content" msgstr "tartalom" #. Text font -#: ../src/iop/watermark.c:1280 +#: ../src/iop/watermark.c:1328 msgid "font" msgstr "betűtípus" -#: ../src/iop/watermark.c:1285 +#: ../src/iop/watermark.c:1333 msgid "" "text font, tags:\n" "$(WATERMARK_FONT_FAMILY)\n" @@ -20073,7 +20757,7 @@ "$(WATERMARK_FONT_STYLE)\n" "$(WATERMARK_FONT_WEIGHT)" -#: ../src/iop/watermark.c:1300 +#: ../src/iop/watermark.c:1348 msgid "" "watermark color, tag:\n" "$(WATERMARK_COLOR)" @@ -20081,60 +20765,62 @@ "vízjel színe, címke:\n" "$(WATERMARK_COLOR)" -#: ../src/iop/watermark.c:1302 +#: ../src/iop/watermark.c:1350 msgid "select watermark color" msgstr "vízjel színének kiválasztása" -#: ../src/iop/watermark.c:1304 +#: ../src/iop/watermark.c:1352 msgid "pick color from image" msgstr "színmintavétel a képről" -#: ../src/iop/watermark.c:1317 +#: ../src/iop/watermark.c:1365 msgctxt "section" msgid "placement" msgstr "elhelyezés" -#: ../src/iop/watermark.c:1330 +#: ../src/iop/watermark.c:1378 msgid "" -"scaling is done relative to this object\n" -"• image: fits marker into whole image\n" -"• larger border: fits larger marker border to larger image border\n" -"• smaller border: fits larger marker border to smaller image border\n" -"• height: fits marker height to image height, e.g. suitable for texts\n" -"• advanced options: activates two additional drop-down menus" -msgstr "" -"a skálázás ezen objektumhoz viszonyítva történik\n" -"• kép: a jelölőt a teljes képbe illeszti\n" -"• hosszabb szegély: a jelölő hosszabb szegélyt a kép hosszabb szegélyéhez " -"illeszti\n" -"• rövidebb szegély: a jelölő rövidebb szegélyt a kép rövidebb szegélyéhez " -"illeszti\n" -"• magasság: a jelölő magasságát a kép magasságához illeszti, pl. szövegeknél " -"hasznos\n" -"• speciális beállítások: további két legördülő menüt kapcsol be" - -#: ../src/iop/watermark.c:1339 -msgid "reference to which the marker should be scaled to" -msgstr "amihez a jelölőt méretezni kell" - -#: ../src/iop/watermark.c:1343 -msgid "length of the marker which is used as scaling reference" -msgstr "a méretezés alapjául szolgáló jelölő hossza" +"choose how to scale the watermark\n" +"• image: scale watermark relative to whole image\n" +"• larger border: scale larger watermark border relative to larger image " +"border\n" +"• smaller border: scale larger watermark border relative to smaller image " +"border\n" +"• height: scale watermark height to image height\n" +"• advanced options: choose watermark and image dimensions independently" +msgstr "" +"válassza ki a vízjel skálázásának módját\n" +"• kép: a vízjel skálázása a képhez képest\n" +"• hosszabb szegély: a vízjel hosszabb oldalának skálázása a kép hosszabb " +"oldalához képest\n" +"• rövidebb szegély: a vízjel rövidebb oldalának skálázása a kép rövidebb " +"oldalához képest\n" +"• magasság: a vízjel magasságának skálázása a kép magasságához képest\n" +"• speciális beállítások: a vízjel és a kép dimenzióinak független " +"kiválasztása" + +#: ../src/iop/watermark.c:1387 +msgid "reference image dimension against which to scale the watermark" +msgstr "a kép referenciadimenziója, amitől függően a vízjel méretezve lesz" + +#: ../src/iop/watermark.c:1391 +msgid "watermark dimension to scale" +msgstr "a vízjel skálázandó dimenziója" -#: ../src/iop/watermark.c:1347 ../src/libs/print_settings.c:2675 +#: ../src/iop/watermark.c:1395 ../src/libs/print_settings.c:2675 msgid "alignment" msgstr "igazítás" #. Let's add some tooltips and hook up some signals... -#: ../src/iop/watermark.c:1368 +#: ../src/iop/watermark.c:1416 msgid "the opacity of the watermark" msgstr "vízjel átlátszatlansága" -#: ../src/iop/watermark.c:1369 +#: ../src/iop/watermark.c:1417 msgid "the scale of the watermark" msgstr "vízjel méretezése" -#: ../src/iop/watermark.c:1370 +#: ../src/iop/watermark.c:1418 msgid "the rotation of the watermark" msgstr "vízjel elforgatása" @@ -20142,7 +20828,7 @@ msgid "zone system" msgstr "zónarendszer" -#: ../src/iop/zonesystem.c:490 +#: ../src/iop/zonesystem.c:486 msgid "" "lightness zones\n" "use mouse scrollwheel to change the number of zones\n" @@ -20184,7 +20870,7 @@ msgid "camera control" msgstr "fényképező irányítása" -#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2360 +#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2679 msgid "modes" msgstr "módok" @@ -20289,36 +20975,49 @@ msgid "WB" msgstr "WB" -#: ../src/libs/collect.c:151 +#: ../src/libs/collect.c:164 msgid "collections" msgstr "gyűjtemények" -#: ../src/libs/collect.c:407 +#: ../src/libs/collect.c:424 msgid "search filmroll" msgstr "filmszalag keresése" -#: ../src/libs/collect.c:490 +#: ../src/libs/collect.c:507 #, c-format msgid "problem selecting new path for the filmroll in %s" msgstr "a filmtekercs számára új útvonal kiválasztása sikertelen itt %s" -#: ../src/libs/collect.c:553 +#: ../src/libs/collect.c:579 msgid "search filmroll..." msgstr "filmszalag keresése…" -#: ../src/libs/collect.c:557 +#: ../src/libs/collect.c:584 msgid "remove..." msgstr "eltávolítása…" -#: ../src/libs/collect.c:1225 +#: ../src/libs/collect.c:1310 msgid "uncategorized" msgstr "kategorizálatlan" -#: ../src/libs/collect.c:2138 +#: ../src/libs/collect.c:2172 ../src/libs/filters/rating_range.c:120 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:151 +#: ../src/libs/filters/rating_range.c:302 +msgid "rejected" +msgstr "elvetettek" + +#: ../src/libs/collect.c:2175 ../src/libs/filters/rating_range.c:122 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:303 +msgid "not rated" +msgstr "nem értékelt" + +#: ../src/libs/collect.c:2359 msgid "use <, <=, >, >=, <>, =, [;] as operators" msgstr "a <, <=, >, >=, <>, =, [;] használhatóak műveleti jelként" -#: ../src/libs/collect.c:2142 +#: ../src/libs/collect.c:2363 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "star rating: 0-5\n" @@ -20328,7 +21027,7 @@ "csillag értékelés: 0-5\n" "elvetett képek: -1" -#: ../src/libs/collect.c:2149 +#: ../src/libs/collect.c:2371 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)" @@ -20337,14 +21036,14 @@ "a dátumokat ebben a formában adja meg: ÉÉÉÉ:HH:NN óó:pp:mm.mmm (csak az év " "kötelező)" -#: ../src/libs/collect.c:2156 +#: ../src/libs/collect.c:2378 #, no-c-format msgid "use `%' as wildcard and `,' to separate values" msgstr "" "a „%” használható helyettesítő karakterként és a „,” (vessző) érték " "elválasztóként" -#: ../src/libs/collect.c:2162 +#: ../src/libs/collect.c:2385 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20357,7 +21056,7 @@ "shift+klikk csak az aktuális hierarchia felvételéhez (utótag nélkül)\n" "ctrl+klikk csak az alhierarchiák felvételéhez (utótag: „|%”)" -#: ../src/libs/collect.c:2174 +#: ../src/libs/collect.c:2398 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20370,7 +21069,7 @@ "shift+klikk csak az aktuális útvonal felvételéhez (utótag nélkül)\n" "ctrl+klikk csak az alútvonalak felvételéhez (utótag: „|%”)" -#: ../src/libs/collect.c:2186 +#: ../src/libs/collect.c:2411 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20383,111 +21082,103 @@ "shift+klikk csak az aktuális könyvtár felvételéhez (utótag nélkül)\n" "ctrl+klikk csak az alkönyvtárak felvételéhez (utótag: „|%”)" -#: ../src/libs/collect.c:2197 +#: ../src/libs/collect.c:2422 #, no-c-format msgid "use `%' as wildcard" msgstr "a „%” használható helyettesítő karakterként" -#: ../src/libs/collect.c:2263 ../src/libs/collect.c:2277 -#: ../src/libs/collect.c:2800 +#: ../src/libs/collect.c:2488 ../src/libs/collect.c:2502 +#: ../src/libs/collect.c:3111 msgid "clear this rule" msgstr "szabály törlése" -#: ../src/libs/collect.c:2267 +#: ../src/libs/collect.c:2492 msgid "clear this rule or add new rules" msgstr "ezen szabály törlése, vagy új szabály hozzáadása" -#: ../src/libs/collect.c:2806 +#: ../src/libs/collect.c:3117 msgid "narrow down search" msgstr "keresés szűkítése" -#: ../src/libs/collect.c:2811 +#: ../src/libs/collect.c:3124 msgid "add more images" msgstr "további képek hozzáadása" -#: ../src/libs/collect.c:2816 +#: ../src/libs/collect.c:3131 msgid "exclude images" msgstr "képek kizárása" -#: ../src/libs/collect.c:2823 +#: ../src/libs/collect.c:3140 msgid "change to: and" msgstr "módosítás erre: és" -#: ../src/libs/collect.c:2828 +#: ../src/libs/collect.c:3147 msgid "change to: or" msgstr "módosítás erre: vagy" -#: ../src/libs/collect.c:2833 +#: ../src/libs/collect.c:3154 msgid "change to: except" msgstr "módosítás erre: kivéve" #. the different categories -#: ../src/libs/collect.c:2859 ../src/libs/filtering.c:857 -#: ../src/libs/filtering.c:924 ../src/libs/filtering.c:1558 -#: ../src/libs/filtering.c:1890 +#: ../src/libs/collect.c:3184 ../src/libs/filtering.c:883 +#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1620 +#: ../src/libs/filtering.c:1964 msgid "files" msgstr "fájlok" -#: ../src/libs/collect.c:2864 ../src/libs/export_metadata.c:312 -#: ../src/libs/filtering.c:862 ../src/libs/filtering.c:929 -#: ../src/libs/filtering.c:1566 ../src/libs/filtering.c:1894 -#: ../src/libs/image.c:464 ../src/libs/image.c:574 ../src/libs/image.c:582 -#: ../src/libs/metadata.c:676 ../src/libs/metadata_view.c:1226 +#: ../src/libs/collect.c:3189 ../src/libs/export_metadata.c:301 +#: ../src/libs/filtering.c:888 ../src/libs/filtering.c:955 +#: ../src/libs/filtering.c:1628 ../src/libs/filtering.c:1968 +#: ../src/libs/image.c:495 ../src/libs/image.c:633 ../src/libs/image.c:645 +#: ../src/libs/metadata.c:509 ../src/libs/metadata_view.c:1256 msgid "metadata" msgstr "metaadat" -#: ../src/libs/collect.c:2883 ../src/libs/filtering.c:883 -#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1892 +#: ../src/libs/collect.c:3208 ../src/libs/filtering.c:909 +#: ../src/libs/filtering.c:976 ../src/libs/filtering.c:1966 msgid "times" msgstr "idők" -#: ../src/libs/collect.c:2891 ../src/libs/filtering.c:891 -#: ../src/libs/filtering.c:958 ../src/libs/filtering.c:1590 +#: ../src/libs/collect.c:3216 ../src/libs/filtering.c:917 +#: ../src/libs/filtering.c:984 ../src/libs/filtering.c:1652 msgid "capture details" msgstr "rögzítés adatai" -#: ../src/libs/collect.c:2900 ../src/libs/filtering.c:900 -#: ../src/libs/filtering.c:967 ../src/libs/filtering.c:1602 -#: ../src/libs/filtering.c:1896 ../src/libs/tools/darktable.c:65 +#: ../src/libs/collect.c:3225 ../src/libs/filtering.c:926 +#: ../src/libs/filtering.c:993 ../src/libs/filtering.c:1664 +#: ../src/libs/filtering.c:1970 ../src/libs/tools/darktable.c:61 msgid "darktable" msgstr "darktable" -#: ../src/libs/collect.c:2913 +#: ../src/libs/collect.c:3240 msgid "collections settings" msgstr "gyűjtemények beállításai" -#: ../src/libs/collect.c:2916 ../src/libs/export_metadata.c:288 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:228 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3472 -msgid "save" -msgstr "mentés" - -#: ../src/libs/collect.c:2936 ../src/libs/export.c:1046 -#: ../src/libs/metadata.c:779 ../src/libs/metadata_view.c:1306 -#: ../src/libs/recentcollect.c:293 ../src/libs/tagging.c:3494 +#: ../src/libs/collect.c:3267 ../src/libs/export.c:1126 +#: ../src/libs/metadata.c:615 ../src/libs/metadata_view.c:1339 +#: ../src/libs/recentcollect.c:295 ../src/libs/tagging.c:3526 msgid "preferences..." msgstr "beállítások…" -#: ../src/libs/collect.c:3041 ../src/libs/filtering.c:1432 +#: ../src/libs/collect.c:3388 ../src/libs/filtering.c:1494 msgid "AND" msgstr "ÉS" -#: ../src/libs/collect.c:3046 ../src/libs/filtering.c:1437 +#: ../src/libs/collect.c:3393 ../src/libs/filtering.c:1499 msgid "OR" msgstr "VAGY" #. case DT_LIB_COLLECT_MODE_AND_NOT: -#: ../src/libs/collect.c:3051 ../src/libs/filtering.c:1442 +#: ../src/libs/collect.c:3398 ../src/libs/filtering.c:1504 msgid "BUT NOT" msgstr "DE NEM" -#: ../src/libs/collect.c:3223 ../src/libs/filtering.c:2164 +#: ../src/libs/collect.c:3588 ../src/libs/filtering.c:2238 msgid "revert to a previous set of rules" msgstr "visszaállítás egy korábbi szabályrendszerre" -#: ../src/libs/collect.c:3280 +#: ../src/libs/collect.c:3671 msgid "jump back to previous collection" msgstr "visszatérés az előző gyűjteményhez" @@ -20511,7 +21202,7 @@ msgid "color picker" msgstr "színpipetta" -#: ../src/libs/colorpicker.c:463 +#: ../src/libs/colorpicker.c:513 msgid "" "hover to highlight sample on canvas,\n" "click to lock sample,\n" @@ -20521,23 +21212,23 @@ "kattintson a minta zárolásához,\n" "jobb-klikk a minta betöltéséhez az aktív pipettába" -#: ../src/libs/colorpicker.c:561 ../src/libs/colorpicker.c:612 +#: ../src/libs/colorpicker.c:626 ../src/libs/colorpicker.c:693 msgid "click to (un)hide large color patch" msgstr "kattintásra elrejti/megjeleníti a nagy színfoltot" -#: ../src/libs/colorpicker.c:575 +#: ../src/libs/colorpicker.c:649 msgid "statistic" msgstr "statisztika" -#: ../src/libs/colorpicker.c:576 +#: ../src/libs/colorpicker.c:650 msgid "select which statistic to show" msgstr "válassza ki, melyik statisztika jelenjen meg" -#: ../src/libs/colorpicker.c:585 +#: ../src/libs/colorpicker.c:660 msgid "select which color mode to use" msgstr "válassza ki, melyik színmódot használja" -#: ../src/libs/colorpicker.c:594 +#: ../src/libs/colorpicker.c:671 msgid "" "turn on color picker\n" "ctrl+click or right-click to select an area" @@ -20545,21 +21236,21 @@ "színmintavevő bekapcsolása\n" "ctrl+klikk vagy jobb klikk a terület kijelöléshez" -#: ../src/libs/colorpicker.c:636 +#: ../src/libs/colorpicker.c:722 msgid "add sample" msgstr "minta hozzáadása" #. Adding the live samples section -#: ../src/libs/colorpicker.c:640 +#: ../src/libs/colorpicker.c:727 msgctxt "section" msgid "live samples" msgstr "élő minták" -#: ../src/libs/colorpicker.c:648 +#: ../src/libs/colorpicker.c:738 msgid "display samples on image/vectorscope" msgstr "minták megjelenítése képen/vektorszkópon" -#: ../src/libs/colorpicker.c:657 +#: ../src/libs/colorpicker.c:749 msgid "restrict scope to selection" msgstr "szkóp korlátozása a kijelölésre" @@ -20571,10 +21262,6 @@ msgid "open sidecar file" msgstr "kísérőfájl megnyitása" -#: ../src/libs/copy_history.c:149 -msgid "XMP sidecar files" -msgstr "XMP kísérőfájlok" - #: ../src/libs/copy_history.c:166 #, c-format msgid "error loading file '%s'" @@ -20622,7 +21309,7 @@ msgid "choose which modules to paste to the target image(s)" msgstr "válassza ki mely modulokat illesztené be a cél kép(ek)re" -#: ../src/libs/copy_history.c:382 ../src/libs/image.c:588 +#: ../src/libs/copy_history.c:382 ../src/libs/image.c:655 msgid "paste" msgstr "beilleszt" @@ -20654,11 +21341,11 @@ "az összes kijelölt kép\n" "előzmény vermének elvetése" -#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:847 +#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:851 msgid "how to handle existing history" msgstr "mi történjen, ha nem üres az előzményverem" -#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:850 +#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:854 msgid "append" msgstr "hozzáfűzés" @@ -20678,89 +21365,96 @@ msgid "write history stack and tags to XMP sidecar files" msgstr "előzményverem és címkék írása XMP kísérőfájlokba" -#: ../src/libs/duplicate.c:56 +#: ../src/libs/duplicate.c:60 msgid "duplicate manager" msgstr "duplikáció-kezelő" -#: ../src/libs/duplicate.c:401 +#: ../src/libs/duplicate.c:407 msgid "create a 'virgin' duplicate of the image without any development" msgstr "„szűz” másolat készítése a képről mindenfajta kidolgozás nélkül" -#: ../src/libs/duplicate.c:406 +#: ../src/libs/duplicate.c:412 msgid "create a duplicate of the image with same history stack" msgstr "másolat készítése a képről megegyező előzményveremmel" -#. Export button -#: ../src/libs/export.c:153 ../src/libs/export.c:1281 +#: ../src/libs/export.c:160 msgid "export" msgstr "exportálás" #: ../src/libs/export.c:306 +msgid "invalid format for export selected" +msgstr "érvénytelen exportálási formátum lett kiválasztva" + +#: ../src/libs/export.c:311 +msgid "invalid storage for export selected" +msgstr "érvénytelen exportálási tároló lett kiválasztva" + +#: ../src/libs/export.c:322 msgid "export to disk" msgstr "exportálás lemezre" -#: ../src/libs/export.c:485 +#: ../src/libs/export.c:516 #, c-format msgid "which is equal to %s × %s px" msgstr "ami megegyezik %s × %s px-el" -#: ../src/libs/export.c:520 +#: ../src/libs/export.c:555 msgctxt "unit" msgid "in" msgstr "″" -#: ../src/libs/export.c:1060 +#: ../src/libs/export.c:1141 msgctxt "section" msgid "storage options" msgstr "tárolási beállítások" -#: ../src/libs/export.c:1064 +#: ../src/libs/export.c:1145 msgid "target storage" msgstr "célhely" -#: ../src/libs/export.c:1086 +#: ../src/libs/export.c:1171 msgctxt "section" msgid "format options" msgstr "formátum beállításai" -#: ../src/libs/export.c:1090 +#: ../src/libs/export.c:1175 msgid "file format" msgstr "fájlformátum" -#: ../src/libs/export.c:1107 +#: ../src/libs/export.c:1193 msgctxt "section" msgid "global options" msgstr "globális beállítások" -#: ../src/libs/export.c:1110 +#: ../src/libs/export.c:1196 msgid "set size" msgstr "méret beállítása" -#: ../src/libs/export.c:1111 +#: ../src/libs/export.c:1197 msgid "choose a method for setting the output size" msgstr "a kimeneti méret beállításához válasszon egy módszert" -#: ../src/libs/export.c:1114 +#: ../src/libs/export.c:1200 msgid "in pixels (for file)" msgstr "pixelben (fájlokhoz)" -#: ../src/libs/export.c:1115 +#: ../src/libs/export.c:1201 msgid "in cm (for print)" msgstr "cm-ben (nyomtatásra)" -#: ../src/libs/export.c:1116 +#: ../src/libs/export.c:1202 msgid "in inch (for print)" msgstr "inchben (nyomtatásra)" -#: ../src/libs/export.c:1117 +#: ../src/libs/export.c:1203 msgid "by scale (for file)" msgstr "arányosan (fájlokhoz)" -#: ../src/libs/export.c:1119 +#: ../src/libs/export.c:1206 msgid "print width" msgstr "nyomtatási szélesség" -#: ../src/libs/export.c:1120 ../src/libs/export.c:1132 +#: ../src/libs/export.c:1208 ../src/libs/export.c:1225 msgid "" "maximum output width limit.\n" "click middle mouse button to reset to 0." @@ -20768,11 +21462,11 @@ "maximális kimeneti szélesség korlát.\n" "középső egérgomb visszaállítja 0-ra." -#: ../src/libs/export.c:1123 +#: ../src/libs/export.c:1212 msgid "print height" msgstr "nyomtatási magasság" -#: ../src/libs/export.c:1124 ../src/libs/export.c:1136 +#: ../src/libs/export.c:1214 ../src/libs/export.c:1231 msgid "" "maximum output height limit.\n" "click middle mouse button to reset to 0." @@ -20780,19 +21474,19 @@ "maximális kimeneti magasság korlát.\n" "középső egérgomb visszaállítja 0-ra." -#: ../src/libs/export.c:1128 +#: ../src/libs/export.c:1220 msgid "resolution in dot per inch" msgstr "felbontás pont per inchben" -#: ../src/libs/export.c:1148 +#: ../src/libs/export.c:1244 msgid "@" msgstr "@" -#: ../src/libs/export.c:1161 ../src/libs/tools/global_toolbox.c:217 +#: ../src/libs/export.c:1258 ../src/libs/tools/global_toolbox.c:217 msgid "px" msgstr "px" -#: ../src/libs/export.c:1166 +#: ../src/libs/export.c:1266 msgid "" "it can be an integer, decimal number or simple fraction.\n" "zero or empty values are equal to 1.\n" @@ -20802,38 +21496,38 @@ "nulla vagy üres érték megegyezik 1-gyel.\n" "középső egérgomb visszaállítja 1-re." -#: ../src/libs/export.c:1185 +#: ../src/libs/export.c:1292 msgid "allow upscaling" msgstr "túlméretezés engedélyezése" -#: ../src/libs/export.c:1191 +#: ../src/libs/export.c:1301 msgid "high quality resampling" msgstr "magas minőségű újramintavételezés" -#: ../src/libs/export.c:1192 +#: ../src/libs/export.c:1302 msgid "do high quality resampling during export" msgstr "magas minőségű újramintavételezés exportáláskor" -#: ../src/libs/export.c:1198 +#: ../src/libs/export.c:1310 msgid "store masks" msgstr "maszkok tárolása" -#: ../src/libs/export.c:1199 +#: ../src/libs/export.c:1311 msgid "store masks as layers in exported images. only works for some formats." msgstr "" "maszkok tárolása rétegekként az exportált képekben. csak egyes formátumoknál " "működik." -#: ../src/libs/export.c:1210 ../src/libs/export.c:1245 +#: ../src/libs/export.c:1322 ../src/libs/export.c:1357 #: ../src/libs/print_settings.c:2777 ../src/libs/print_settings.c:2823 msgid "image settings" msgstr "kép beállítások" -#: ../src/libs/export.c:1220 ../src/libs/print_settings.c:2811 +#: ../src/libs/export.c:1332 ../src/libs/print_settings.c:2811 msgid "output ICC profiles" msgstr "kimeneti ICC-profilok" -#: ../src/libs/export.c:1228 +#: ../src/libs/export.c:1340 msgid "" "• perceptual: smoothly moves out-of-gamut colors into gamut, preserving " "gradations,\n" @@ -20871,46 +21565,55 @@ "mást nem csinál. főleg szín-proofingra használják.\n" "(nem alkalmas fotográfiai felhasználásra)." -#: ../src/libs/export.c:1255 ../src/libs/print_settings.c:2833 +#: ../src/libs/export.c:1367 ../src/libs/print_settings.c:2833 msgid "style" msgstr "stílus" -#: ../src/libs/export.c:1258 +#: ../src/libs/export.c:1370 msgid "temporary style to use while exporting" msgstr "átmeneti stílus az exportálás idejére" -#: ../src/libs/export.c:1263 ../src/libs/print_settings.c:2876 +#: ../src/libs/export.c:1377 ../src/libs/print_settings.c:2876 msgid "" "whether the style items are appended to the history or replacing the history" msgstr "" "a stíluselemek az előzményekhez hozzá legyenek fűzve, vagy cseréljék le a " "meglévő előzményeket" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "replace history" msgstr "előzmények lecserélése" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "append history" msgstr "hozzáfűzés az előzményekhez" -#: ../src/libs/export.c:1282 +#: ../src/libs/export.c:1398 +msgctxt "actionbutton" +msgid "export" +msgstr "exportálás" + +#: ../src/libs/export.c:1400 msgid "export with current settings" msgstr "exportálás a jelenlegi beállításokkal" -#: ../src/libs/export_metadata.c:163 +#: ../src/libs/export_metadata.c:148 msgid "select tag" msgstr "címke kiválasztása" -#: ../src/libs/export_metadata.c:164 -msgid "add" -msgstr "hozzáad" +#: ../src/libs/export_metadata.c:150 +msgid "_add" +msgstr "_hozzáadás" + +#: ../src/libs/export_metadata.c:151 ../src/libs/geotagging.c:811 +msgid "_done" +msgstr "_kész" -#: ../src/libs/export_metadata.c:175 +#: ../src/libs/export_metadata.c:162 msgid "list filter" msgstr "listaszűrő" -#: ../src/libs/export_metadata.c:186 +#: ../src/libs/export_metadata.c:173 msgid "" "list of available tags. click 'add' button or double-click on tag to add the " "selected one" @@ -20918,31 +21621,31 @@ "elérhető címkék listája. a kijelölt hozzáadásához kattintson a „hozzáad” " "gombra vagy duplán a címkére" -#: ../src/libs/export_metadata.c:287 +#: ../src/libs/export_metadata.c:274 msgid "edit metadata exportation" msgstr "metaadat exportálás szerkesztése" -#: ../src/libs/export_metadata.c:304 +#: ../src/libs/export_metadata.c:293 msgid "general settings" msgstr "általános beállítások" -#: ../src/libs/export_metadata.c:309 +#: ../src/libs/export_metadata.c:298 msgid "EXIF data" msgstr "EXIF-adat" -#: ../src/libs/export_metadata.c:310 +#: ../src/libs/export_metadata.c:299 msgid "export EXIF metadata" msgstr "EXIF-metaadat exportálása" -#: ../src/libs/export_metadata.c:313 +#: ../src/libs/export_metadata.c:302 msgid "export darktable XMP metadata (from metadata editor module)" msgstr "darktable XMP metaadat exportálása (a metaadat-szerkesztő modulból)" -#: ../src/libs/export_metadata.c:323 +#: ../src/libs/export_metadata.c:312 msgid "only embedded" msgstr "csak beágyazott" -#: ../src/libs/export_metadata.c:324 +#: ../src/libs/export_metadata.c:313 msgid "" "per default the interface sends some (limited) metadata beside the image to " "remote storage.\n" @@ -20958,39 +21661,39 @@ "ha a külső tároló nem tudja értelmezni a darktable XMP-metaadatot, " "használhat helyette kalkulált metadaatot" -#: ../src/libs/export_metadata.c:330 ../src/libs/image.c:566 +#: ../src/libs/export_metadata.c:319 ../src/libs/image.c:623 msgid "geo tags" msgstr "geotagek" -#: ../src/libs/export_metadata.c:331 +#: ../src/libs/export_metadata.c:320 msgid "export geo tags" msgstr "geotagek exportálása" -#: ../src/libs/export_metadata.c:334 +#: ../src/libs/export_metadata.c:323 msgid "export tags (to Xmp.dc.Subject)" msgstr "címkék exportálása (ide: Xmp.dc.Subject)" -#: ../src/libs/export_metadata.c:342 +#: ../src/libs/export_metadata.c:331 msgid "private tags" msgstr "privát címkék" -#: ../src/libs/export_metadata.c:343 +#: ../src/libs/export_metadata.c:332 msgid "export private tags" msgstr "privát címkék exportálása" -#: ../src/libs/export_metadata.c:345 +#: ../src/libs/export_metadata.c:334 msgid "synonyms" msgstr "szinonímák" -#: ../src/libs/export_metadata.c:346 +#: ../src/libs/export_metadata.c:335 msgid "export tags synonyms" msgstr "címke szinonimák exportálása" -#: ../src/libs/export_metadata.c:348 +#: ../src/libs/export_metadata.c:337 msgid "omit hierarchy" msgstr "hierarchia kihagyása" -#: ../src/libs/export_metadata.c:349 +#: ../src/libs/export_metadata.c:338 msgid "" "only the last part of the hierarchical tags is included. can be useful if " "categories are not used" @@ -20998,19 +21701,19 @@ "a hierarchikus címkéknek csak az utolsó része lesz benne. hasznos lehet, ha " "nincsenek használva kategóriák" -#: ../src/libs/export_metadata.c:352 +#: ../src/libs/export_metadata.c:341 msgid "hierarchical tags" msgstr "hierarchikus címkék" -#: ../src/libs/export_metadata.c:353 +#: ../src/libs/export_metadata.c:342 msgid "export hierarchical tags (to Xmp.lr.Hierarchical Subject)" msgstr "hierarchikus címkék exportálása (ide: Xmp.lr.Hierarchical Subject)" -#: ../src/libs/export_metadata.c:355 +#: ../src/libs/export_metadata.c:344 msgid "develop history" msgstr "kidolgozási előzmény" -#: ../src/libs/export_metadata.c:356 +#: ../src/libs/export_metadata.c:345 msgid "" "export darktable development data (recovery purpose in case of loss of " "database or XMP file)" @@ -21018,19 +21721,19 @@ "darktable kidolgozási adatok exportálása (biztonsági mentés céljából, ha " "elveszne az adatbázis vagy az XMP fájl)" -#: ../src/libs/export_metadata.c:363 +#: ../src/libs/export_metadata.c:352 msgid "per metadata settings" msgstr "metaadatonkénti beállítások" -#: ../src/libs/export_metadata.c:376 +#: ../src/libs/export_metadata.c:364 msgid "redefined tag" msgstr "újradefiniált címke" -#: ../src/libs/export_metadata.c:382 +#: ../src/libs/export_metadata.c:370 msgid "formula" msgstr "képlet" -#: ../src/libs/export_metadata.c:385 +#: ../src/libs/export_metadata.c:373 msgid "" "list of calculated metadata\n" "click on '+' button to select and add new metadata\n" @@ -21054,15 +21757,15 @@ "írjon be „$(” karaktereket a kiegészítés elindításához és a változók " "listájának megtekintéséhez" -#: ../src/libs/export_metadata.c:442 +#: ../src/libs/export_metadata.c:430 msgid "add an output metadata tag" msgstr "kimeneti metaadat címke hozzáadása" -#: ../src/libs/export_metadata.c:447 +#: ../src/libs/export_metadata.c:435 msgid "delete metadata tag" msgstr "metaadat címke törlése" -#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:128 +#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:130 msgid "full path" msgstr "elérési út" @@ -21082,50 +21785,50 @@ msgid "shuffle" msgstr "összekevert" -#: ../src/libs/filtering.c:263 +#: ../src/libs/filtering.c:269 msgid "collection filters" msgstr "gyűjteményszűrők" -#: ../src/libs/filtering.c:296 +#: ../src/libs/filtering.c:302 msgid "initial setting" msgstr "kezdeti beállítás" -#: ../src/libs/filtering.c:315 +#: ../src/libs/filtering.c:321 msgid "imported: last 24h" msgstr "importálva: elmúlt 24 óra" -#: ../src/libs/filtering.c:320 +#: ../src/libs/filtering.c:326 msgid "imported: last 30 days" msgstr "importálva: elmúlt 30 nap" -#: ../src/libs/filtering.c:326 +#: ../src/libs/filtering.c:332 msgid "taken: last 24h" msgstr "készítve: elmúlt 24 óra" -#: ../src/libs/filtering.c:330 +#: ../src/libs/filtering.c:336 msgid "taken: last 30 days" msgstr "készítve: elmúlt 30 nap" -#: ../src/libs/filtering.c:702 +#: ../src/libs/filtering.c:728 msgid "click or click&drag to select one or multiple values" msgstr "" "kattintson vagy kattintson és húzza egy vagy több érték kiválasztásához" -#: ../src/libs/filtering.c:703 +#: ../src/libs/filtering.c:729 msgid "right-click opens a menu to select the available values" msgstr "" "jobb-klikk megnyit egy menüt, amiből kiválaszthatóak az elérhető értékek" -#: ../src/libs/filtering.c:800 +#: ../src/libs/filtering.c:826 #, c-format msgid "you can't have more than %d rules" msgstr "legfeljebb %d szabálya lehet" -#: ../src/libs/filtering.c:922 ../src/libs/filtering.c:1556 +#: ../src/libs/filtering.c:948 ../src/libs/filtering.c:1618 msgid "rule property" msgstr "szabály tulajdonság" -#: ../src/libs/filtering.c:987 +#: ../src/libs/filtering.c:1013 msgid "" "rule property\n" "this can't be changed as the rule is pinned to the toolbar" @@ -21133,12 +21836,12 @@ "szabály tulajdonság\n" "ezt nem lehet módosítani mivel a szabály ki van tűzve az eszköztárra" -#: ../src/libs/filtering.c:1035 +#: ../src/libs/filtering.c:1095 msgctxt "quickfilter" msgid "filter" msgstr "szűrő" -#: ../src/libs/filtering.c:1062 +#: ../src/libs/filtering.c:1124 msgid "" "this rule is pinned to the top toolbar\n" "click to un-pin" @@ -21146,114 +21849,122 @@ "ez a szabály ki van tűzve felső eszköztárra\n" "kattintson az eltávolításhoz" -#: ../src/libs/filtering.c:1063 +#: ../src/libs/filtering.c:1125 msgid "you can't disable the rule as it is pinned to the toolbar" msgstr "nem tilthatja le a szabályt, mert ki van tűzve az eszköztárra" -#: ../src/libs/filtering.c:1064 +#: ../src/libs/filtering.c:1126 msgid "you can't remove the rule as it is pinned to the toolbar" msgstr "nem távolíthatja el a szabályt, mert ki van tűzve az eszköztárra" -#: ../src/libs/filtering.c:1069 +#: ../src/libs/filtering.c:1131 msgid "click to pin this rule to the top toolbar" msgstr "kattintson, hogy kitűzze a szabályt a felső eszköztárra" -#: ../src/libs/filtering.c:1070 +#: ../src/libs/filtering.c:1132 msgid "remove this collect rule" msgstr "gyűjteményszabály eltávolítása" -#: ../src/libs/filtering.c:1072 +#: ../src/libs/filtering.c:1134 msgid "this rule is enabled" msgstr "ez a szabály engedélyezve van" -#: ../src/libs/filtering.c:1074 +#: ../src/libs/filtering.c:1136 msgid "this rule is disabled" msgstr "ez a szabály le van tiltva" -#: ../src/libs/filtering.c:1202 +#: ../src/libs/filtering.c:1264 msgid "or" msgstr "vagy" -#: ../src/libs/filtering.c:1203 +#: ../src/libs/filtering.c:1265 msgid "and not" msgstr "és nem" -#: ../src/libs/filtering.c:1205 +#: ../src/libs/filtering.c:1267 msgid "define how this rule should interact with the previous one" msgstr "meghatározza, hogy ez a szabály hogyan hat az előzőre" -#: ../src/libs/filtering.c:1466 +#: ../src/libs/filtering.c:1528 msgid " (off)" msgstr "(ki)" -#: ../src/libs/filtering.c:1663 +#: ../src/libs/filtering.c:1725 msgid "you can't add more rules." msgstr "több szabályt nem adhat hozzá." -#. fill the popover with all pinned rules -#: ../src/libs/filtering.c:1696 +#: ../src/libs/filtering.c:1759 msgid "shown filters" msgstr "megjelenített szűrők" -#: ../src/libs/filtering.c:1711 +#: ../src/libs/filtering.c:1774 msgid "new filter" msgstr "új szűrő" -#: ../src/libs/filtering.c:1884 +#. the actions part of the popover +#: ../src/libs/filtering.c:1781 +msgid "actions" +msgstr "máveletek" + +#: ../src/libs/filtering.c:1784 +msgid "reset quickfilters" +msgstr "gyors szűrők visszaállítása" + +#: ../src/libs/filtering.c:1957 msgid "sort order" msgstr "sorrend" -#: ../src/libs/filtering.c:1886 +#: ../src/libs/filtering.c:1960 msgid "determine the sort order of shown images" msgstr "meghatározza a megjelenített képek sorrendjét" -#: ../src/libs/filtering.c:1906 +#: ../src/libs/filtering.c:1980 msgid "sort direction" msgstr "rendezés iránya" -#: ../src/libs/filtering.c:1911 +#: ../src/libs/filtering.c:1985 msgid "remove this sort order" msgstr "eltávolítja ezt a rendezést" -#: ../src/libs/filtering.c:1995 +#: ../src/libs/filtering.c:2069 #, c-format msgid "you can't have more than %d sort orders" msgstr "legfeljebb %d rendezési sorrendje lehet" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "DESC" msgstr "CSÖK" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "ASC" msgstr "NÖV" -#: ../src/libs/filtering.c:2160 +#: ../src/libs/filtering.c:2234 msgid "new rule" msgstr "új szabály" -#: ../src/libs/filtering.c:2161 +#: ../src/libs/filtering.c:2235 msgid "append new rule to collect images" msgstr "új képkigyűjtési szabály hozzáfűzése" -#: ../src/libs/filtering.c:2172 ../src/libs/tools/filter.c:116 +#: ../src/libs/filtering.c:2246 ../src/libs/tools/filter.c:116 msgid "sort by" msgstr "rendezés" -#: ../src/libs/filtering.c:2180 +#: ../src/libs/filtering.c:2254 msgid "new sort" msgstr "új rendezés" -#: ../src/libs/filtering.c:2181 +#: ../src/libs/filtering.c:2255 msgid "append new sort to order images" msgstr "új sorrend hozzáadása a képek rendezéséhez" -#: ../src/libs/filtering.c:2184 +#: ../src/libs/filtering.c:2258 msgid "revert to a previous set of sort orders" msgstr "visszaállítás egy korábbi rendezési definícióra" #. we change the tooltip of the reset button here, as we are sure the header is defined now -#: ../src/libs/filtering.c:2234 +#: ../src/libs/filtering.c:2308 msgid "" "reset\n" "ctrl+click to remove pinned rules too" @@ -21290,7 +22001,7 @@ #: ../src/libs/filters/grouping.c:167 ../src/libs/filters/history.c:153 #: ../src/libs/filters/local_copy.c:142 ../src/libs/filters/module_order.c:161 #: ../src/libs/filters/rating.c:199 ../src/libs/filters/rating.c:210 -#: ../src/libs/filters/rating_range.c:325 +#: ../src/libs/filters/rating_range.c:356 msgid "rules" msgstr "szabályok" @@ -21304,7 +22015,7 @@ "és (∩): az összes kiválasztott színcímkét tartalmazó képek\n" "vagy (∪): legalább az egyik kiválasztott színcímkét tartalmazó képek" -#: ../src/libs/filters/filename.c:365 +#: ../src/libs/filters/filename.c:370 msgid "" "enter filename to search.\n" "multiple values can be separated by ','\n" @@ -21316,11 +22027,11 @@ "\n" "jobb-klikk megnyitja a meglévő fájlnevek listáját" -#: ../src/libs/filters/filename.c:376 +#: ../src/libs/filters/filename.c:381 msgid "extension" msgstr "kiterjesztés" -#: ../src/libs/filters/filename.c:377 +#: ../src/libs/filters/filename.c:382 msgid "" "enter extension to search with starting dot\n" "multiple values can be separated by ','\n" @@ -21334,7 +22045,7 @@ "\n" "jobb-klikk megnyitja a meglévő kiterjesztések listáját" -#: ../src/libs/filters/filename.c:405 +#: ../src/libs/filters/filename.c:410 msgid "" "click to select filename\n" "ctrl+click to select multiple values" @@ -21342,7 +22053,7 @@ "egy kattintás kiválasztja a fájlnevet\n" "ctrl+klikk több érték kiválasztásához" -#: ../src/libs/filters/filename.c:432 +#: ../src/libs/filters/filename.c:437 msgid "" "click to select extension\n" "ctrl+click to select multiple values" @@ -21350,6 +22061,11 @@ "egy kattintás kiválasztja a kiterjesztést\n" "ctrl+klikk több érték kiválasztásához" +#. the button to close the popup +#: ../src/libs/filters/filename.c:457 +msgid "ok" +msgstr "ok" + #: ../src/libs/filters/grouping.c:141 ../src/libs/filters/grouping.c:169 msgid "ungrouped images" msgstr "csoportosítatlan képek" @@ -21361,8 +22077,8 @@ #. predefined selections #: ../src/libs/filters/grouping.c:169 ../src/libs/filters/history.c:38 #: ../src/libs/filters/local_copy.c:38 ../src/libs/filters/module_order.c:155 -#: ../src/libs/filters/rating_range.c:56 ../src/libs/filters/rating_range.c:72 -#: ../src/libs/filters/rating_range.c:109 ../src/libs/filters/ratio.c:68 +#: ../src/libs/filters/rating_range.c:59 ../src/libs/filters/rating_range.c:83 +#: ../src/libs/filters/rating_range.c:131 ../src/libs/filters/ratio.c:68 #: ../src/libs/filters/ratio.c:81 msgid "all images" msgstr "összes kép" @@ -21387,7 +22103,7 @@ msgid "filter by images rating" msgstr "szűrés a képek értékelése alapján" -#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:542 +#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:596 #: ../src/libs/tools/ratings.c:56 msgid "ratings" msgstr "értékelés" @@ -21396,49 +22112,33 @@ msgid "unstarred only" msgstr "csak a csillagozatlanok" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:60 -#: ../src/libs/filters/rating_range.c:75 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:65 +#: ../src/libs/filters/rating_range.c:89 msgid "rejected only" msgstr "csak az elvetettek" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:58 -#: ../src/libs/filters/rating_range.c:73 ../src/libs/filters/rating_range.c:138 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:62 +#: ../src/libs/filters/rating_range.c:86 ../src/libs/filters/rating_range.c:158 msgid "all except rejected" msgstr "mind, kivéve az elvetettek" -#: ../src/libs/filters/rating_range.c:61 ../src/libs/filters/rating_range.c:76 +#: ../src/libs/filters/rating_range.c:67 ../src/libs/filters/rating_range.c:91 msgid "not rated only" msgstr "csak értékeletlen" -#: ../src/libs/filters/rating_range.c:99 ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:131 -#: ../src/libs/filters/rating_range.c:275 -msgid "rejected" -msgstr "elvetettek" - -#: ../src/libs/filters/rating_range.c:101 -#: ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:276 -msgid "not rated" -msgstr "nem értékelt" - -#: ../src/libs/filters/rating_range.c:117 -msgid "only" -msgstr "csak" - -#: ../src/libs/filters/rating_range.c:269 +#: ../src/libs/filters/rating_range.c:296 msgid "better" msgstr "jobb" -#: ../src/libs/filters/rating_range.c:270 +#: ../src/libs/filters/rating_range.c:297 msgid "worse" msgstr "rosszabb" -#: ../src/libs/filters/rating_range.c:271 +#: ../src/libs/filters/rating_range.c:298 msgid "cap" msgstr "tető" -#: ../src/libs/filters/rating_range.c:286 +#: ../src/libs/filters/rating_range.c:313 msgid "rating filter" msgstr "értékelésszűrő" @@ -21477,7 +22177,7 @@ msgid "apply offset and geo-location" msgstr "eltolás és geokódolás alkalmazása" -#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1910 +#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1914 msgid "apply geo-location" msgstr "geokódolás alkalmazása" @@ -21489,49 +22189,49 @@ "eltolás és geokódolás alkalmazása az illeszkedő képekre\n" "kettős művelet: két ctrl-Z a visszavonáshoz" -#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1911 +#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1915 msgid "apply geo-location to matching images" msgstr "geokódolás alkalmazása az illeszkedő képekre" -#: ../src/libs/geotagging.c:810 +#: ../src/libs/geotagging.c:809 msgid "GPX file track segments" msgstr "GPX-fájl nyomvonal szakaszok" -#: ../src/libs/geotagging.c:830 ../src/libs/geotagging.c:1869 +#: ../src/libs/geotagging.c:831 ../src/libs/geotagging.c:1873 msgid "start time" msgstr "kezdés" -#: ../src/libs/geotagging.c:831 +#: ../src/libs/geotagging.c:832 msgid "end time" msgstr "befejezés" -#: ../src/libs/geotagging.c:832 ../src/libs/geotagging.c:1871 +#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1875 msgid "points" msgstr "pontok" -#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1873 -#: ../src/libs/image.c:463 +#: ../src/libs/geotagging.c:834 ../src/libs/geotagging.c:1877 +#: ../src/libs/image.c:494 msgid "images" msgstr "képek" -#: ../src/libs/geotagging.c:926 +#: ../src/libs/geotagging.c:927 msgid "open GPX file" msgstr "GPX fájl megnyitása" -#: ../src/libs/geotagging.c:927 ../src/libs/tools/lighttable.c:333 -#: ../src/libs/tools/lighttable.c:402 ../src/views/darkroom.c:2232 +#: ../src/libs/geotagging.c:928 ../src/libs/tools/lighttable.c:330 +#: ../src/libs/tools/lighttable.c:399 ../src/views/darkroom.c:2091 msgid "preview" msgstr "előnézet" -#: ../src/libs/geotagging.c:940 +#: ../src/libs/geotagging.c:941 msgid "GPS data exchange format" msgstr "GPX fájl" -#: ../src/libs/geotagging.c:1739 +#: ../src/libs/geotagging.c:1743 msgid "date/time" msgstr "dátum/idő" -#: ../src/libs/geotagging.c:1740 +#: ../src/libs/geotagging.c:1744 msgid "" "enter the new date/time (YYYY:MM:DD hh:mm:ss[.sss])\n" "key in the new numbers or scroll over the cell" @@ -21539,40 +22239,40 @@ "adja meg az új dátum/időt (ÉÉÉÉ:HH:NN óó:pp:mm[.mmm])\n" "írja be az új számokat, vagy görgessen a cella fölött" -#: ../src/libs/geotagging.c:1744 +#: ../src/libs/geotagging.c:1748 msgid "original date/time" msgstr "eredeti dátum/idő" -#: ../src/libs/geotagging.c:1748 +#: ../src/libs/geotagging.c:1752 msgid "lock date/time offset value to apply it onto another selection" msgstr "dátum/idő eltolás érték zárolása, más kijelöléseken való alkalmazáshoz" -#: ../src/libs/geotagging.c:1752 +#: ../src/libs/geotagging.c:1756 msgid "date/time offset" msgstr "dátum/idő eltolás" -#: ../src/libs/geotagging.c:1753 +#: ../src/libs/geotagging.c:1757 msgid "offset or difference ([-]dd hh:mm:ss[.sss])" msgstr "eltérés vagy különbség ([-] dd óó:pp:mm[.mmm])" #. apply -#: ../src/libs/geotagging.c:1757 +#: ../src/libs/geotagging.c:1761 msgid "apply offset" msgstr "eltolás alkalmazása" -#: ../src/libs/geotagging.c:1758 +#: ../src/libs/geotagging.c:1762 msgid "apply offset to selected images" msgstr "eltolás alkalmazása a kijelölt képeken" -#: ../src/libs/geotagging.c:1761 +#: ../src/libs/geotagging.c:1765 msgid "apply date/time" msgstr "dátum/idő alkalmazása" -#: ../src/libs/geotagging.c:1762 +#: ../src/libs/geotagging.c:1766 msgid "apply the same date/time to selected images" msgstr "azonos dátum/idő alkalmazása a kijelölt képekre" -#: ../src/libs/geotagging.c:1772 +#: ../src/libs/geotagging.c:1776 msgid "" "start typing to show a list of permitted values and select your timezone.\n" "press enter to confirm, so that the asterisk * disappears" @@ -21582,24 +22282,24 @@ "nyomjon entert a megerősítéshez, hogy a csillag * eltűnjön" #. gpx -#: ../src/libs/geotagging.c:1815 +#: ../src/libs/geotagging.c:1819 msgid "apply GPX track file..." msgstr "GPX nyomvonalfájl alkalmazása…" -#: ../src/libs/geotagging.c:1816 +#: ../src/libs/geotagging.c:1820 msgid "parses a GPX file and updates location of selected images" msgstr "értelmezi a GPX fájlt és frissíti a kijelölt képek koordinátáit" -#: ../src/libs/geotagging.c:1827 +#: ../src/libs/geotagging.c:1831 msgctxt "section" msgid "GPX file" msgstr "GPX-fájl" -#: ../src/libs/geotagging.c:1834 +#: ../src/libs/geotagging.c:1838 msgid "select a GPX track file..." msgstr "válasszon egy GPX nyomvonalfájlt…" -#: ../src/libs/geotagging.c:1851 +#: ../src/libs/geotagging.c:1855 msgid "" "list of track segments in the GPX file, for each segment:\n" "- the start date/time in local time (LT)\n" @@ -21614,172 +22314,180 @@ "- illeszkedő képek száma a képek dátum/ideje, eltolása és időzónája alapján\n" "- még részletesebb időinformációk a sor fölött tartva az egeret" -#: ../src/libs/geotagging.c:1890 +#: ../src/libs/geotagging.c:1894 msgid "preview images" msgstr "képek előnézete" -#: ../src/libs/geotagging.c:1895 +#: ../src/libs/geotagging.c:1899 msgid "show on map matching images" msgstr "illeszkedő képek megjelenítése a térképen" -#: ../src/libs/geotagging.c:1898 +#: ../src/libs/geotagging.c:1902 msgid "select images" msgstr "képek kiválasztása" -#: ../src/libs/geotagging.c:1899 +#: ../src/libs/geotagging.c:1903 msgid "select matching images" msgstr "illeszkedő képek kiválasztása" -#: ../src/libs/geotagging.c:1907 +#: ../src/libs/geotagging.c:1911 msgid "number of matching images versus selected images" msgstr "illeszkedő képek száma a kiválasztott képekével szemben" -#: ../src/libs/histogram.c:133 +#: ../src/libs/histogram.c:110 msgid "monochromatic" msgstr "monokróm" -#: ../src/libs/histogram.c:134 +#: ../src/libs/histogram.c:111 msgid "analogous" msgstr "analóg" -#: ../src/libs/histogram.c:135 +#: ../src/libs/histogram.c:112 msgid "analogous complementary" msgstr "analóg komplementer" -#: ../src/libs/histogram.c:136 +#: ../src/libs/histogram.c:113 msgid "complementary" msgstr "komplementer" -#: ../src/libs/histogram.c:137 +#: ../src/libs/histogram.c:114 msgid "split complementary" msgstr "osztott komplementer" -#: ../src/libs/histogram.c:138 +#: ../src/libs/histogram.c:115 msgid "dyad" msgstr "diád" -#: ../src/libs/histogram.c:139 +#: ../src/libs/histogram.c:116 msgid "triad" msgstr "triád" -#: ../src/libs/histogram.c:140 +#: ../src/libs/histogram.c:117 msgid "tetrad" msgstr "tetrád" -#: ../src/libs/histogram.c:146 +#: ../src/libs/histogram.c:123 msgid "vectorscope" msgstr "vektorszkóp" -#: ../src/libs/histogram.c:147 +#: ../src/libs/histogram.c:124 msgid "waveform" msgstr "hullámforma" -#: ../src/libs/histogram.c:148 +#: ../src/libs/histogram.c:125 msgid "RGB parade" msgstr "RGB-parádé" -#: ../src/libs/histogram.c:149 ../src/libs/histogram.c:2309 +#: ../src/libs/histogram.c:126 ../src/libs/histogram.c:2622 msgid "histogram" msgstr "hisztogram" -#: ../src/libs/histogram.c:243 +#: ../src/libs/histogram.c:218 msgid "scopes" msgstr "szkópok" -#: ../src/libs/histogram.c:1542 +#: ../src/libs/histogram.c:757 +msgid "" +"unsupported vectorscope profile selected, it will be replaced with linear " +"Rec2020" +msgstr "" +"nem támogatott vektorszkóp profil lett kiválasztva, le lesz cserélve linear " +"Rec2020-ra" + +#: ../src/libs/histogram.c:1715 msgid "scroll to coarse-rotate" msgstr "görgetés: durva forgatás" -#: ../src/libs/histogram.c:1543 +#: ../src/libs/histogram.c:1716 msgid "ctrl+scroll to fine rotate" msgstr "ctrl+görgetés: finom forgatás" -#: ../src/libs/histogram.c:1544 +#: ../src/libs/histogram.c:1717 msgid "shift+scroll to change width" msgstr "shift+görgetés: vastagság módosítása" -#: ../src/libs/histogram.c:1545 +#: ../src/libs/histogram.c:1718 msgid "alt+scroll to cycle" msgstr "alt+görgetés: váltás" -#: ../src/libs/histogram.c:1556 +#: ../src/libs/histogram.c:1732 msgid "drag to change black point" msgstr "a feketepont módosításához húzza el" -#: ../src/libs/histogram.c:1557 ../src/libs/histogram.c:1564 +#: ../src/libs/histogram.c:1733 ../src/libs/histogram.c:1740 msgid "double-click resets" msgstr "dupla kattintás alaphelyzetbe állítja" -#: ../src/libs/histogram.c:1563 +#: ../src/libs/histogram.c:1739 msgid "drag to change exposure" msgstr "az expozíció módosításához húzza el" -#: ../src/libs/histogram.c:1725 ../src/libs/histogram.c:1765 +#: ../src/libs/histogram.c:1923 ../src/libs/histogram.c:1965 msgid "set scale to linear" msgstr "skála beállítása lineárisra" -#: ../src/libs/histogram.c:1730 ../src/libs/histogram.c:1770 +#: ../src/libs/histogram.c:1928 ../src/libs/histogram.c:1970 msgid "set scale to logarithmic" msgstr "skála beállítása logaritmikusra" -#: ../src/libs/histogram.c:1746 +#: ../src/libs/histogram.c:1946 msgid "set scope to vertical" msgstr "szkóp beállítása függőlegesre" -#: ../src/libs/histogram.c:1751 +#: ../src/libs/histogram.c:1951 msgid "set scope to horizontal" msgstr "szkóp beállítása vízszintesre" -#: ../src/libs/histogram.c:1780 +#: ../src/libs/histogram.c:1980 msgid "set view to AzBz" msgstr "nézet állítása AzBz-re" -#: ../src/libs/histogram.c:1786 +#: ../src/libs/histogram.c:1986 msgid "set view to RYB" msgstr "nézet állítása RYB-re" -#: ../src/libs/histogram.c:1792 +#: ../src/libs/histogram.c:1992 msgid "set view to u*v*" msgstr "nézet állítása u*v*-ra" -#: ../src/libs/histogram.c:2312 ../src/libs/histogram.c:2370 +#: ../src/libs/histogram.c:2625 ../src/libs/histogram.c:2691 msgid "cycle histogram modes" msgstr "lapozás a hisztogram módjai között" -#: ../src/libs/histogram.c:2316 ../src/libs/histogram.c:2371 +#: ../src/libs/histogram.c:2630 ../src/libs/histogram.c:2693 msgid "hide histogram" msgstr "hisztogram elrejtése" -#: ../src/libs/histogram.c:2372 ../src/libs/histogram.c:2401 +#: ../src/libs/histogram.c:2696 ../src/libs/histogram.c:2729 msgid "switch histogram view" msgstr "hisztogram nézetének váltása" -#: ../src/libs/histogram.c:2379 +#: ../src/libs/histogram.c:2704 msgid "toggle blue channel" msgstr "kék csatorna be/ki" -#: ../src/libs/histogram.c:2381 ../src/libs/histogram.c:2389 -#: ../src/libs/histogram.c:2397 +#: ../src/libs/histogram.c:2706 ../src/libs/histogram.c:2715 +#: ../src/libs/histogram.c:2724 msgid "toggle colors" msgstr "színek átkapcsolása" -#: ../src/libs/histogram.c:2387 +#: ../src/libs/histogram.c:2713 msgid "toggle green channel" msgstr "zöld csatorna be/ki" -#: ../src/libs/histogram.c:2395 +#: ../src/libs/histogram.c:2722 msgid "toggle red channel" msgstr "vörös csatorna be/ki" -#: ../src/libs/histogram.c:2405 +#: ../src/libs/histogram.c:2734 msgid "cycle vectorscope types" msgstr "vektorszkóp típusának váltása" -#: ../src/libs/histogram.c:2413 +#: ../src/libs/histogram.c:2745 msgid "color harmonies" msgstr "színharmóniák" -#: ../src/libs/histogram.c:2425 +#: ../src/libs/histogram.c:2759 msgid "cycle color harmonies" msgstr "színharmóniák váltása" @@ -21824,10 +22532,18 @@ msgid "mask mode" msgstr "maszk mód" +#: ../src/libs/history.c:949 +msgid "blend mode" +msgstr "keverési mód" + #: ../src/libs/history.c:951 msgid "blend operation" msgstr "keverés művelet" +#: ../src/libs/history.c:953 +msgid "blend fulcrum" +msgstr "keverési forgáspont" + #: ../src/libs/history.c:961 msgid "mask blur" msgstr "maszk elmosás" @@ -21871,197 +22587,197 @@ msgid "parametric input mask:" msgstr "paraméteres bemeneti maszk:" -#: ../src/libs/history.c:1323 +#: ../src/libs/history.c:1322 msgid "delete image's history?" msgstr "törli a kép előzményeit?" -#: ../src/libs/history.c:1324 +#: ../src/libs/history.c:1323 msgid "do you really want to clear history of current image?" msgstr "biztosan törölni szeretné az aktuális kép előzményeit?" -#: ../src/libs/image.c:72 -msgid "selected image[s]" -msgstr "kijelölt kép(ek)" +#: ../src/libs/image.c:74 +msgid "actions on selection" +msgstr "műveletek a kijelöltekkel" -#: ../src/libs/image.c:284 +#: ../src/libs/image.c:302 msgid "delete (trash)" msgstr "törlés (kuka)" -#: ../src/libs/image.c:287 +#: ../src/libs/image.c:305 msgid "physically delete from disk (using trash if possible)" msgstr "törlés a lemezről fizikailag (lehetőleg a kukát használva)" -#: ../src/libs/image.c:288 +#: ../src/libs/image.c:306 msgid "physically delete from disk immediately" msgstr "végleges törlés a lemezről azonnal" -#: ../src/libs/image.c:474 ../src/libs/modulegroups.c:3811 -#: ../src/libs/styles.c:876 +#: ../src/libs/image.c:506 ../src/libs/modulegroups.c:3813 +#: ../src/libs/styles.c:880 msgid "remove" msgstr "eltávolítás" -#: ../src/libs/image.c:475 +#: ../src/libs/image.c:508 msgid "remove images from the image library, without deleting" msgstr "képek eltávolítása az adatbázisból törlés nélkül" -#: ../src/libs/image.c:483 +#: ../src/libs/image.c:517 msgid "move..." msgstr "áthelyezés…" -#: ../src/libs/image.c:484 +#: ../src/libs/image.c:519 msgid "move to other folder" msgstr "mozgatás más könyvtárba" -#: ../src/libs/image.c:487 +#: ../src/libs/image.c:522 msgid "copy..." msgstr "másolás…" -#: ../src/libs/image.c:488 +#: ../src/libs/image.c:524 msgid "copy to other folder" msgstr "másolás más könyvtárba" -#: ../src/libs/image.c:491 +#: ../src/libs/image.c:528 msgid "create HDR" msgstr "HDR készítés" -#: ../src/libs/image.c:492 +#: ../src/libs/image.c:530 msgid "create a high dynamic range image from selected shots" msgstr "nagy dinamikatartományú kép készítése a kijelölt felvételekből" -#: ../src/libs/image.c:496 +#: ../src/libs/image.c:535 msgid "add a duplicate to the image library, including its history stack" msgstr "duplikátum hozzáadása a képadatbázishoz, beleértve az előzményvermét" -#: ../src/libs/image.c:502 ../src/libs/image.c:505 +#: ../src/libs/image.c:542 ../src/libs/image.c:547 msgid "rotate selected images 90 degrees CCW" msgstr "kijelölt képek forgatása 90 fokkal balra" -#: ../src/libs/image.c:509 ../src/libs/image.c:512 +#: ../src/libs/image.c:553 ../src/libs/image.c:558 msgid "rotate selected images 90 degrees CW" msgstr "kijelölt képek forgatása 90 fokkal jobbra" -#: ../src/libs/image.c:514 +#: ../src/libs/image.c:561 msgid "reset rotation" msgstr "forgatás visszaállítása" -#: ../src/libs/image.c:515 +#: ../src/libs/image.c:563 msgid "reset rotation to EXIF data" msgstr "forgatás visszaállítása az EXIF adatokban" -#: ../src/libs/image.c:518 +#: ../src/libs/image.c:566 msgid "copy locally" msgstr "másolás helyben" -#: ../src/libs/image.c:519 +#: ../src/libs/image.c:568 msgid "copy the image locally" msgstr "a kép másolása helyben" -#: ../src/libs/image.c:522 +#: ../src/libs/image.c:572 msgid "resync local copy" msgstr "helyi másolat szinkronizálása" -#: ../src/libs/image.c:523 +#: ../src/libs/image.c:574 msgid "synchronize the image's XMP and remove the local copy" msgstr "" "képek XMP kísérőfájljainak szinkronizálása és a helyi másolatok eltávolítása" -#: ../src/libs/image.c:526 +#: ../src/libs/image.c:578 msgctxt "selected images action" msgid "group" msgstr "csoportosítás" -#: ../src/libs/image.c:527 +#: ../src/libs/image.c:580 msgid "add selected images to expanded group or create a new one" msgstr "" "a kijelölt képek hozzáadása a bővített csoporthoz vagy új csoport létrehozása" -#: ../src/libs/image.c:531 +#: ../src/libs/image.c:584 msgid "ungroup" msgstr "csoportbontás" -#: ../src/libs/image.c:532 +#: ../src/libs/image.c:586 msgid "remove selected images from the group" msgstr "a kijelölt képek eltávolítása a csoportból" -#: ../src/libs/image.c:544 +#: ../src/libs/image.c:598 msgid "select ratings metadata" msgstr "értékelés metaadat kiválasztása" -#: ../src/libs/image.c:550 +#: ../src/libs/image.c:605 msgid "colors" msgstr "színek" -#: ../src/libs/image.c:552 +#: ../src/libs/image.c:607 msgid "select colors metadata" msgstr "színek metaadat kiválasztása" -#: ../src/libs/image.c:560 +#: ../src/libs/image.c:616 msgid "select tags metadata" msgstr "címkék metaadat kiválasztása" -#: ../src/libs/image.c:568 +#: ../src/libs/image.c:625 msgid "select geo tags metadata" msgstr "geotag metaadat kiválasztása" -#: ../src/libs/image.c:576 +#: ../src/libs/image.c:636 msgid "select darktable metadata (from metadata editor module)" msgstr "darktable metaadatok exportálása (a metaadat-szerkesztő modulból)" -#: ../src/libs/image.c:584 +#: ../src/libs/image.c:649 msgid "set the selected image as source of metadata" msgstr "állítsa be a kijelölt képet a metaadatok forrásaként" -#: ../src/libs/image.c:589 +#: ../src/libs/image.c:656 msgid "paste selected metadata on selected images" msgstr "kiválasztott metadatok beillesztése a kijelölt képekre" -#: ../src/libs/image.c:593 +#: ../src/libs/image.c:661 msgid "clear selected metadata on selected images" msgstr "kiválasztott metaadatok eltávolítása a kijelölt képekről" -#: ../src/libs/image.c:598 +#: ../src/libs/image.c:667 msgid "how to handle existing metadata" msgstr "hogyan kezelje a meglévő metaadatokat" -#: ../src/libs/image.c:601 +#: ../src/libs/image.c:670 msgid "merge" msgstr "összevonás" -#: ../src/libs/image.c:605 +#: ../src/libs/image.c:675 msgid "update image information to match changes to file" msgstr "kép információk frissítése, hogy megfeleljen a fájl változásainak" -#: ../src/libs/image.c:609 +#: ../src/libs/image.c:680 msgid "set selection as monochrome images and activate monochrome workflow" msgstr "" "kijelöltek megjelölése monokróm képnek és a monokróm munkafolyamat aktiválása" -#: ../src/libs/image.c:613 +#: ../src/libs/image.c:684 msgid "set selection as color images" msgstr "kijelöltek megjelölése színes képnek" -#: ../src/libs/image.c:625 +#: ../src/libs/image.c:696 msgid "duplicate virgin" msgstr "szűz kép duplikálása" -#: ../src/libs/import.c:263 +#: ../src/libs/import.c:264 #, c-format msgid "device \"%s\" connected on port \"%s\"." msgstr "„%s” eszköz csatlakoztatva „%s” porton." -#: ../src/libs/import.c:273 ../src/libs/import.c:334 ../src/libs/import.c:1692 +#: ../src/libs/import.c:274 ../src/libs/import.c:335 ../src/libs/import.c:1701 msgid "copy & import from camera" msgstr "másolás & importálás a fényképezőből" -#: ../src/libs/import.c:284 ../src/libs/import.c:336 +#: ../src/libs/import.c:285 ../src/libs/import.c:337 msgid "tethered shoot" msgstr "távirányított felvétel" -#: ../src/libs/import.c:291 ../src/libs/import.c:337 +#: ../src/libs/import.c:292 ../src/libs/import.c:338 msgid "unmount camera" msgstr "fényképező leválasztása" -#: ../src/libs/import.c:312 +#: ../src/libs/import.c:313 msgid "" "camera is locked by another application\n" "make sure it is no longer mounted\n" @@ -22071,40 +22787,40 @@ "győződjön meg arról, hogy már nincs felcsatolva\n" "vagy lépjen ki a zároló alkalmazásból" -#: ../src/libs/import.c:315 +#: ../src/libs/import.c:316 msgid "tethering and importing is disabled for this camera" msgstr "a tethering és az importálás le van tiltva ennél a fényképezőnél" -#: ../src/libs/import.c:317 ../src/libs/import.c:335 +#: ../src/libs/import.c:318 ../src/libs/import.c:336 msgid "mount camera" msgstr "fényképező csatolása" -#: ../src/libs/import.c:747 +#: ../src/libs/import.c:754 #, c-format msgid "%d image out of %d selected" msgid_plural "%d images out of %d selected" msgstr[0] "%d kép a(z) %d kiválasztottból" msgstr[1] "%d kép a(z) %d kiválasztottból" -#: ../src/libs/import.c:1039 +#: ../src/libs/import.c:1046 msgid "you can't delete the selected place" msgstr "nem törölheti a kiválasztott helyet" -#: ../src/libs/import.c:1153 +#: ../src/libs/import.c:1160 msgid "choose the root of the folder tree below" msgstr "válassza ki az alábbi könyvtárfa gyökerét" -#: ../src/libs/import.c:1156 +#: ../src/libs/import.c:1163 msgid "places" msgstr "helyek" -#: ../src/libs/import.c:1162 +#: ../src/libs/import.c:1169 msgid "restore all default places you have removed by right-click" msgstr "" "az összes alapértelmezett hely visszaállítása, amiket korábban jobb " "kattintással törölt" -#: ../src/libs/import.c:1167 +#: ../src/libs/import.c:1174 msgid "" "add a custom place\n" "\n" @@ -22114,79 +22830,107 @@ "\n" "jobb kattintás egy helyen eltávolítja azt" -#: ../src/libs/import.c:1174 +#: ../src/libs/import.c:1181 msgid "you can add custom places using the plus icon" msgstr "hozzáadhat egyéni helyeket a plusz ikonra kattintva" -#: ../src/libs/import.c:1199 +#: ../src/libs/import.c:1206 msgid "select a folder to see the content" msgstr "válasszon egy könyvtárat, aminek a tartalmát látni szeretné" -#: ../src/libs/import.c:1202 +#: ../src/libs/import.c:1209 msgid "folders" msgstr "könyvtárak" -#: ../src/libs/import.c:1272 +#: ../src/libs/import.c:1279 msgid "home" msgstr "home" -#: ../src/libs/import.c:1284 +#: ../src/libs/import.c:1291 msgid "pictures" msgstr "képek" -#: ../src/libs/import.c:1548 +#: ../src/libs/import.c:1557 msgid "mark already imported pictures" msgstr "már importált képek megjelölése" -#: ../src/libs/import.c:1562 +#: ../src/libs/import.c:1571 msgid "modified" msgstr "módosított" -#: ../src/libs/import.c:1567 +#: ../src/libs/import.c:1576 msgid "file 'modified date/time', may be different from 'Exif date/time'" msgstr "a fájl „módosítás dátuma/ideje”, eltérhet az „Exif dátum/időtől”" -#: ../src/libs/import.c:1579 +#: ../src/libs/import.c:1588 msgid "show/hide thumbnails" msgstr "bélyegképek megjelenítése/elrejtése" -#: ../src/libs/import.c:1649 +#: ../src/libs/import.c:1658 msgid "naming rules" msgstr "elnevezési szabályok" -#: ../src/libs/import.c:1690 +#: ../src/libs/import.c:1699 msgid "add to library" msgstr "hozzáadás az adatbázishoz" -#: ../src/libs/import.c:1691 +#: ../src/libs/import.c:1700 msgid "copy & import" msgstr "másolás & importálás" -#: ../src/libs/import.c:1730 +#: ../src/libs/import.c:1740 msgid "select new" msgstr "újak kijelölése" -#: ../src/libs/import.c:1773 +#: ../src/libs/import.c:1783 msgid "please wait while prefetching the list of images from camera..." msgstr "kérem várjon, amíg a képek listája betöltődik a fényképezőről…" -#: ../src/libs/import.c:1907 +#: ../src/libs/import.c:1922 msgid "invalid override date/time format" msgstr "érvénytelen felülbírálási dátum/idő formátum" -#: ../src/libs/import.c:2022 +#: ../src/libs/import.c:1986 +msgid "import base directory" +msgstr "importálás kezdőkönyvtára" + +#: ../src/libs/import.c:1987 +msgid "" +"before copying images to the darktable base directory make sure it is " +"defined as you prefer.\n" +"further information can be found in the darktable manual.\n" +"\n" +"inspect darktable preferences -> import.\n" +"check and possibly correct the 'base directory naming pattern'" +msgstr "" +"mielőtt képeket importálna a darktable kezdőkönyvtárába, ellenőrizze, hogy " +"az az igényei szerint legyen beállítva.\n" +"további információk a darktable kézikönyvében találhatók.\n" +"\n" +"nyissa meg a beállítások -> importálás fület.\n" +"ellenőrizze és szükség esetén javítsa a „kezdőkönyvtár-elnevezési mintát”" + +#: ../src/libs/import.c:1991 +msgid "_come back & check" +msgstr "_visszatérés és ellenőrzés" + +#: ../src/libs/import.c:1991 +msgid "_understood & done" +msgstr "_megértettem, kész" + +#: ../src/libs/import.c:2057 msgid "add to library..." msgstr "hozzáadás az adatbázishoz…" -#: ../src/libs/import.c:2023 +#: ../src/libs/import.c:2058 msgid "add existing images to the library" msgstr "meglévő képek hozzáadása az adatbázishoz" -#: ../src/libs/import.c:2029 +#: ../src/libs/import.c:2064 msgid "copy & import..." msgstr "másolás & importálás…" -#: ../src/libs/import.c:2030 +#: ../src/libs/import.c:2065 msgid "" "copy and optionally rename images before adding them to the library\n" "patterns can be defined to rename the images and specify the destination " @@ -22198,15 +22942,15 @@ "meghatározni" #. collapsible section -#: ../src/libs/import.c:2053 +#: ../src/libs/import.c:2088 msgid "parameters" msgstr "paraméterek" -#: ../src/libs/ioporder.c:204 +#: ../src/libs/ioporder.c:202 msgid "v3.0 for RAW input (default)" msgstr "v3.0 RAW bemenethez (alapértelmezett)" -#: ../src/libs/ioporder.c:210 +#: ../src/libs/ioporder.c:208 msgid "v3.0 for JPEG/non-RAW input" msgstr "v3.0 JPEG/nem-RAW bemenethez" @@ -22222,11 +22966,11 @@ msgid "nothing to save" msgstr "nincs mit elmenteni" -#: ../src/libs/lib.c:1105 +#: ../src/libs/lib.c:1106 msgid "show module" msgstr "modul megjelenítése" -#: ../src/libs/lib.c:1430 +#: ../src/libs/lib.c:1431 msgid "utility module" msgstr "segéd modul" @@ -22459,167 +23203,109 @@ msgid "map settings" msgstr "térképbeállítások" -#: ../src/libs/map_settings.c:107 +#: ../src/libs/map_settings.c:89 msgid "map source" msgstr "térképforrás" -#: ../src/libs/map_settings.c:112 +#: ../src/libs/map_settings.c:90 msgid "select the source of the map. some entries might not work" msgstr "térképforrás kiválasztása. elképzelhető, hogy nem mind működik" -#: ../src/libs/masks.c:107 +#: ../src/libs/masks.c:108 msgid "feather" msgstr "perem" -#: ../src/libs/masks.c:114 -msgid "hardness (relative)" -msgstr "keménység (relatív)" - -#: ../src/libs/masks.c:115 -msgid "hardness (absolute)" -msgstr "keménység (abszolút)" - -#: ../src/libs/masks.c:116 -msgid "opacity (relative)" -msgstr "átlátszatlanság (relatív)" - -#: ../src/libs/masks.c:117 -msgid "opacity (absolute)" -msgstr "átlátszatlanság (abszolút)" - -#: ../src/libs/masks.c:118 -msgid "brush size (relative)" -msgstr "ecsetméret (relatív)" - -#: ../src/libs/masks.c:121 -msgid "low" -msgstr "alacsony" - -#: ../src/libs/masks.c:122 -msgid "medium" -msgstr "közepes" - -#: ../src/libs/masks.c:123 -msgid "high" -msgstr "magas" - -#: ../src/libs/masks.c:381 +#: ../src/libs/masks.c:357 #, c-format msgid "group #%d" msgstr "#%d csoport" -#: ../src/libs/masks.c:1081 +#: ../src/libs/masks.c:1097 msgid "duplicate this shape" msgstr "alakzat duplikálása" -#: ../src/libs/masks.c:1085 +#: ../src/libs/masks.c:1101 msgid "delete this shape" msgstr "alakzat törlése" -#: ../src/libs/masks.c:1091 +#: ../src/libs/masks.c:1107 msgid "delete group" msgstr "csoport törlése" -#: ../src/libs/masks.c:1098 +#: ../src/libs/masks.c:1114 msgid "remove from group" msgstr "eltávolítás a csoportból" -#: ../src/libs/masks.c:1106 +#: ../src/libs/masks.c:1122 msgid "group the forms" msgstr "alakzatok csoportosítása" -#: ../src/libs/masks.c:1114 +#: ../src/libs/masks.c:1130 msgid "use inverted shape" msgstr "invertált alakzat használata" -#: ../src/libs/masks.c:1121 +#: ../src/libs/masks.c:1134 msgid "mode: union" msgstr "mód: unió" -#: ../src/libs/masks.c:1127 +#: ../src/libs/masks.c:1136 msgid "mode: intersection" msgstr "mód: metszet" -#: ../src/libs/masks.c:1133 +#: ../src/libs/masks.c:1138 msgid "mode: difference" msgstr "mód: különbség" -#: ../src/libs/masks.c:1139 +#: ../src/libs/masks.c:1140 msgid "mode: sum" msgstr "mód: összeg" -#: ../src/libs/masks.c:1145 +#: ../src/libs/masks.c:1142 msgid "mode: exclusion" msgstr "mód: kivonás" -#: ../src/libs/masks.c:1164 +#: ../src/libs/masks.c:1158 msgid "cleanup unused shapes" msgstr "nem használt alakzatok kitakarítása" -#: ../src/libs/masks.c:1811 +#: ../src/libs/masks.c:1807 msgid "created shapes" msgstr "létrehozott alakzatok" -#: ../src/libs/masks.c:1904 ../src/libs/masks.c:1919 ../src/libs/masks.c:1939 -#: ../src/libs/masks.c:1955 +#: ../src/libs/masks.c:1900 ../src/libs/masks.c:1915 ../src/libs/masks.c:1929 +#: ../src/libs/masks.c:1933 msgid "properties" msgstr "tulajdonságok" -#: ../src/libs/masks.c:1907 +#: ../src/libs/masks.c:1903 msgid "no shapes selected" msgstr "nincsenek kiválasztott alakzatok" -#: ../src/libs/masks.c:1940 +#: ../src/libs/masks.c:1929 msgid "pressure" msgstr "nyomás" -#: ../src/libs/masks.c:1941 -msgid "" -"pen pressure control for brush masks\n" -"'off': pressure reading ignored,\n" -"'hardness'/'opacity'/'brush size': pressure reading controls specified " -"attribute,\n" -"'absolute'/'relative': pressure reading is taken directly as attribute value " -"or multiplied with pre-defined setting." -msgstr "" -"az ecsetmaszk tollnyomásának kezelése\n" -"„ki”: a nyomás figyelmen kívül hagyása,\n" -"„keménység”/„átlátszatlanság”/„ecsetméret”: a nyomás a megadott attribútumot " -"vezérli,\n" -"„abszolút”/„relatív”: a nyomásértékből közvetlenül attribútumérték lesz, " -"vagy megszorozva egy előre beállított értékkel." - -#: ../src/libs/masks.c:1956 +#: ../src/libs/masks.c:1933 msgid "smoothing" msgstr "simítás" -#: ../src/libs/masks.c:1957 -msgid "" -"smoothing of brush strokes\n" -"stronger smoothing leads to fewer nodes and easier editing but with lower " -"control of accuracy." -msgstr "" -"ecsetvonások simításának mértéke\n" -"erősebb simítás kevesebb pontot és könnyebb szerkeszthetőséget eredményez, " -"de a pontosság kevésbé kontrollálható." - -#: ../src/libs/metadata.c:64 +#: ../src/libs/metadata.c:60 msgid "metadata editor" msgstr "metaadat szerkesztő" -#: ../src/libs/metadata.c:206 ../src/libs/metadata.c:496 -msgid "<leave unchanged>" -msgstr "<változatlanul hagy>" - -#: ../src/libs/metadata.c:630 ../src/libs/metadata_view.c:1192 +#: ../src/libs/metadata.c:459 ../src/libs/metadata_view.c:1219 msgid "metadata settings" msgstr "metaadat beállítások" -#: ../src/libs/metadata.c:683 ../src/libs/metadata_view.c:1237 +#: ../src/libs/metadata.c:461 ../src/libs/metadata_view.c:1221 +msgid "_default" +msgstr "_alapértelmezett" + +#: ../src/libs/metadata.c:516 ../src/libs/metadata_view.c:1267 msgid "visible" msgstr "látható" -#: ../src/libs/metadata.c:688 +#: ../src/libs/metadata.c:524 msgid "" "tick if the corresponding metadata is of interest for you\n" "it will be visible from metadata editor, collection and import module\n" @@ -22630,19 +23316,19 @@ "és az importáló modulban.\n" "exportálva is lesz" -#: ../src/libs/metadata.c:693 ../src/libs/tagging.c:1683 -#: ../src/libs/tagging.c:1827 +#: ../src/libs/metadata.c:529 ../src/libs/tagging.c:1705 +#: ../src/libs/tagging.c:1854 msgid "private" msgstr "privát" -#: ../src/libs/metadata.c:698 +#: ../src/libs/metadata.c:534 msgid "" "tick if you want to keep this information private (not exported with images)" msgstr "" "jelölje be, ha az információt szeretné privátként kezelni (nem lesz " "exportálva a képpel)" -#: ../src/libs/metadata.c:857 +#: ../src/libs/metadata.c:691 msgid "" "metadata text\n" "ctrl+enter inserts a new line (caution, may not be compatible with standard " @@ -22658,170 +23344,182 @@ "ez esetben jobb kattintással kiválasztható ezek egyike\n" "escape segítségével kiléphet a felugró ablakból" -#: ../src/libs/metadata.c:902 +#: ../src/libs/metadata.c:736 msgid "write metadata for selected images" msgstr "metaadatok írása a kijelölt képekbe" +#: ../src/libs/metadata.c:737 +msgid "cancel" +msgstr "mégsem" + +#: ../src/libs/metadata.c:738 +msgid "ignore changed metadata" +msgstr "módosított metaadatok mellőzése" + #. <title>\0<description>\0<rights>\0<creator>\0<publisher> -#: ../src/libs/metadata.c:958 +#: ../src/libs/metadata.c:793 msgid "CC BY" msgstr "CC BY" -#: ../src/libs/metadata.c:959 +#: ../src/libs/metadata.c:794 msgid "Creative Commons Attribution (CC BY)" msgstr "Creative Commons Nevezd meg! (CC BY)" -#: ../src/libs/metadata.c:960 +#: ../src/libs/metadata.c:795 msgid "CC BY-SA" msgstr "CC BY-SA" -#: ../src/libs/metadata.c:961 +#: ../src/libs/metadata.c:796 msgid "Creative Commons Attribution-ShareAlike (CC BY-SA)" msgstr "Creative Commons Nevezd meg! – Így add tovább! (CC BY-SA)" -#: ../src/libs/metadata.c:962 +#: ../src/libs/metadata.c:797 msgid "CC BY-ND" msgstr "CC BY-ND" -#: ../src/libs/metadata.c:963 +#: ../src/libs/metadata.c:798 msgid "Creative Commons Attribution-NoDerivs (CC BY-ND)" msgstr "Creative Commons Nevezd meg! – Ne változtasd! (CC BY-ND)" -#: ../src/libs/metadata.c:964 +#: ../src/libs/metadata.c:799 msgid "CC BY-NC" msgstr "CC BY-NC" -#: ../src/libs/metadata.c:965 +#: ../src/libs/metadata.c:800 msgid "Creative Commons Attribution-NonCommercial (CC BY-NC)" msgstr "Creative Commons Nevezd meg! – Ne add el! (CC BY-NC)" -#: ../src/libs/metadata.c:966 +#: ../src/libs/metadata.c:801 msgid "CC BY-NC-SA" msgstr "CC BY-NC-SA" -#: ../src/libs/metadata.c:967 +#: ../src/libs/metadata.c:802 msgid "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" msgstr "Creative Commons Nevezd meg! – Ne add el! – Így add tovább! (CC BY-SA)" -#: ../src/libs/metadata.c:968 +#: ../src/libs/metadata.c:803 msgid "CC BY-NC-ND" msgstr "CC BY-NC-ND" -#: ../src/libs/metadata.c:969 +#: ../src/libs/metadata.c:804 msgid "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" msgstr "" "Creative Commons Nevezd meg! – Ne add el! – Ne változtasd! (CC BY-NC-ND)" -#: ../src/libs/metadata.c:970 ../src/libs/metadata.c:971 +#: ../src/libs/metadata.c:805 ../src/libs/metadata.c:806 msgid "all rights reserved" msgstr "minden jog fenntartva" #. internal -#: ../src/libs/metadata_view.c:123 +#: ../src/libs/metadata_view.c:125 msgid "filmroll" msgstr "filmtekercs" -#: ../src/libs/metadata_view.c:125 +#: ../src/libs/metadata_view.c:127 msgid "group id" msgstr "csoport id" -#: ../src/libs/metadata_view.c:127 +#: ../src/libs/metadata_view.c:129 msgid "version" msgstr "verzió" -#: ../src/libs/metadata_view.c:130 +#: ../src/libs/metadata_view.c:132 msgid "import timestamp" msgstr "importálás időbélyege" -#: ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:133 msgid "change timestamp" msgstr "módosítás időbélyege" -#: ../src/libs/metadata_view.c:132 +#: ../src/libs/metadata_view.c:134 msgid "export timestamp" msgstr "exportálás időbélyege" -#: ../src/libs/metadata_view.c:133 +#: ../src/libs/metadata_view.c:135 msgid "print timestamp" msgstr "nyomtatás időbélyege" -#: ../src/libs/metadata_view.c:134 +#: ../src/libs/metadata_view.c:136 msgid "flags" msgstr "jelzők" -#: ../src/libs/metadata_view.c:144 +#: ../src/libs/metadata_view.c:146 +msgid "35mm equiv focal length" +msgstr "35mm-es gyújtótáv" + +#: ../src/libs/metadata_view.c:148 msgid "focus distance" msgstr "tárgytávolság" -#: ../src/libs/metadata_view.c:146 +#: ../src/libs/metadata_view.c:150 msgid "datetime" msgstr "dátum és idő" -#: ../src/libs/metadata_view.c:149 +#: ../src/libs/metadata_view.c:153 msgid "export width" msgstr "exportálási szélesség" -#: ../src/libs/metadata_view.c:150 +#: ../src/libs/metadata_view.c:154 msgid "export height" msgstr "exportálási magasság" -#: ../src/libs/metadata_view.c:158 +#: ../src/libs/metadata_view.c:162 msgid "longitude" msgstr "hosszúság" -#: ../src/libs/metadata_view.c:159 +#: ../src/libs/metadata_view.c:163 msgid "elevation" msgstr "magasság" -#: ../src/libs/metadata_view.c:163 +#: ../src/libs/metadata_view.c:167 msgid "categories" msgstr "kategóriák" -#: ../src/libs/metadata_view.c:170 +#: ../src/libs/metadata_view.c:174 msgid "image information" msgstr "információk a képről" -#: ../src/libs/metadata_view.c:330 +#: ../src/libs/metadata_view.c:334 msgid "unused/deprecated" msgstr "nem használt / elavult" -#: ../src/libs/metadata_view.c:331 +#: ../src/libs/metadata_view.c:335 msgid "LDR" msgstr "LDR" -#: ../src/libs/metadata_view.c:334 +#: ../src/libs/metadata_view.c:338 msgid "marked for deletion" msgstr "törlésre jelölt" -#: ../src/libs/metadata_view.c:335 +#: ../src/libs/metadata_view.c:339 msgid "auto-applying presets applied" msgstr "automatikusan alkalmazandó tárolt beállítás felhasználva" -#: ../src/libs/metadata_view.c:337 +#: ../src/libs/metadata_view.c:341 msgid "has .txt" msgstr "van hozzá .txt" -#: ../src/libs/metadata_view.c:338 +#: ../src/libs/metadata_view.c:342 msgid "has .wav" msgstr "van hozzá .wav" -#: ../src/libs/metadata_view.c:356 +#: ../src/libs/metadata_view.c:360 #, c-format msgid "image has %d star" msgid_plural "image has %d stars" msgstr[0] "%d csillagos kép" msgstr[1] "%d csillagos kép" -#: ../src/libs/metadata_view.c:432 +#: ../src/libs/metadata_view.c:436 #, c-format msgid "loader: %s" msgstr "betöltő: %s" -#: ../src/libs/metadata_view.c:623 +#: ../src/libs/metadata_view.c:626 msgid "<various values>" msgstr "<különböző értékek>" -#: ../src/libs/metadata_view.c:636 +#: ../src/libs/metadata_view.c:639 #, c-format msgid "" "double-click to jump to film roll\n" @@ -22830,32 +23528,28 @@ "dupla kattintásra a filmtekercshez ugrik\n" "%s" -#: ../src/libs/metadata_view.c:728 +#: ../src/libs/metadata_view.c:731 #, c-format msgid "%+.2f EV" msgstr "%+.2f FÉ" -#: ../src/libs/metadata_view.c:735 -#, c-format -msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" -msgstr "%.1f mm (megfelel %.1f mm FF-nek, crop %.1f)" - -#: ../src/libs/metadata_view.c:740 +#: ../src/libs/metadata_view.c:737 ../src/libs/metadata_view.c:749 +#: ../src/libs/metadata_view.c:754 #, c-format msgid "%.1f mm" msgstr "%.1f mm" -#: ../src/libs/metadata_view.c:751 +#: ../src/libs/metadata_view.c:778 #, c-format msgid "infinity" msgstr "végtelen" -#: ../src/libs/metadata_view.c:755 +#: ../src/libs/metadata_view.c:782 #, c-format msgid "%.2f m" msgstr "%.2f m" -#: ../src/libs/metadata_view.c:1232 +#: ../src/libs/metadata_view.c:1262 msgid "" "drag and drop one row at a time until you get the desired order\n" "untick to hide metadata which are not of interest for you\n" @@ -22866,7 +23560,7 @@ "vegye ki a pipát az önt nem érdeklő metaadatok elrejtéséhez\n" "ha különböző beállításokra van szüksége, használjon tárolt beállításokat" -#: ../src/libs/metadata_view.c:1388 +#: ../src/libs/metadata_view.c:1423 msgid "jump to film roll" msgstr "ugrás a filmtekercshez" @@ -22891,7 +23585,7 @@ msgid "recent collections settings" msgstr "legutóbbi gyűjtemény beállítások" -#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1769 +#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1753 msgid "workflow: scene-referred" msgstr "munkafolyamat: látványvonatkozású" @@ -22909,12 +23603,12 @@ #. FIXME don't check here if on/off is enabled, because it depends on image (reload_defaults) #. respond later to image changed signal -#: ../src/libs/modulegroups.c:306 ../src/libs/modulegroups.c:318 -#: ../src/libs/modulegroups.c:2427 ../src/libs/modulegroups.c:2429 +#: ../src/libs/modulegroups.c:307 ../src/libs/modulegroups.c:319 +#: ../src/libs/modulegroups.c:2411 ../src/libs/modulegroups.c:2413 msgid "on-off" msgstr "be-ki" -#: ../src/libs/modulegroups.c:498 ../src/libs/modulegroups.c:501 +#: ../src/libs/modulegroups.c:501 ../src/libs/modulegroups.c:504 msgid "" "this quick access widget is disabled as there are multiple instances of this " "module present. Please use the full module to access this widget..." @@ -22922,157 +23616,157 @@ "ez a widget le van tiltva, mivel a modulból több példány is van. Kérem " "használja a teljes modult a widget eléréséhez…" -#: ../src/libs/modulegroups.c:591 +#: ../src/libs/modulegroups.c:594 msgid "(some features may only be available in the full module interface)" msgstr "(néhány funkció esetleg csak a teljes modul kezelőfelületen érhető el)" -#: ../src/libs/modulegroups.c:635 +#: ../src/libs/modulegroups.c:632 #, c-format msgid "go to the full version of the %s module" msgstr "menjen a(z) %s modul teljes verziójához" -#: ../src/libs/modulegroups.c:1556 ../src/libs/modulegroups.c:1641 -#: ../src/libs/modulegroups.c:1677 ../src/libs/modulegroups.c:1727 -#: ../src/libs/modulegroups.c:1817 +#: ../src/libs/modulegroups.c:1538 ../src/libs/modulegroups.c:1624 +#: ../src/libs/modulegroups.c:1660 ../src/libs/modulegroups.c:1710 +#: ../src/libs/modulegroups.c:1801 msgctxt "modulegroup" msgid "base" msgstr "alap" -#: ../src/libs/modulegroups.c:1575 +#: ../src/libs/modulegroups.c:1557 msgctxt "modulegroup" msgid "tone" msgstr "tónus" -#: ../src/libs/modulegroups.c:1584 ../src/libs/modulegroups.c:1691 -#: ../src/libs/modulegroups.c:1741 +#: ../src/libs/modulegroups.c:1566 ../src/libs/modulegroups.c:1674 +#: ../src/libs/modulegroups.c:1724 msgctxt "modulegroup" msgid "color" msgstr "szín" -#: ../src/libs/modulegroups.c:1599 ../src/libs/modulegroups.c:1699 -#: ../src/libs/modulegroups.c:1746 +#: ../src/libs/modulegroups.c:1582 ../src/libs/modulegroups.c:1682 +#: ../src/libs/modulegroups.c:1730 msgctxt "modulegroup" msgid "correct" msgstr "korrekció" -#: ../src/libs/modulegroups.c:1617 ../src/libs/modulegroups.c:1711 -#: ../src/libs/modulegroups.c:1758 ../src/libs/modulegroups.c:2321 +#: ../src/libs/modulegroups.c:1600 ../src/libs/modulegroups.c:1694 +#: ../src/libs/modulegroups.c:1742 ../src/libs/modulegroups.c:2305 msgctxt "modulegroup" msgid "effect" msgstr "effekt" -#: ../src/libs/modulegroups.c:1635 +#: ../src/libs/modulegroups.c:1618 msgid "modules: all" msgstr "modulok: összes" -#: ../src/libs/modulegroups.c:1656 +#: ../src/libs/modulegroups.c:1639 msgctxt "modulegroup" msgid "grading" msgstr "osztályozás" -#: ../src/libs/modulegroups.c:1664 ../src/libs/modulegroups.c:2325 +#: ../src/libs/modulegroups.c:1647 ../src/libs/modulegroups.c:2309 msgctxt "modulegroup" msgid "effects" msgstr "effektek" -#: ../src/libs/modulegroups.c:1672 +#: ../src/libs/modulegroups.c:1655 msgid "workflow: beginner" msgstr "munkafolyamat: kezdő" -#: ../src/libs/modulegroups.c:1721 +#: ../src/libs/modulegroups.c:1704 msgid "workflow: display-referred" msgstr "munkafolyamat: képernyővonatkozású" -#: ../src/libs/modulegroups.c:1773 +#: ../src/libs/modulegroups.c:1757 msgid "search only" msgstr "csak keresés" -#: ../src/libs/modulegroups.c:1779 ../src/libs/modulegroups.c:2090 -#: ../src/libs/modulegroups.c:2599 +#: ../src/libs/modulegroups.c:1763 ../src/libs/modulegroups.c:2074 +#: ../src/libs/modulegroups.c:2583 msgctxt "modulegroup" msgid "deprecated" msgstr "elavult" -#: ../src/libs/modulegroups.c:1792 +#: ../src/libs/modulegroups.c:1776 msgid "previous config" msgstr "előző konfiguráció" -#: ../src/libs/modulegroups.c:1793 +#: ../src/libs/modulegroups.c:1777 msgid "previous layout" msgstr "előző elrendezés" -#: ../src/libs/modulegroups.c:1797 +#: ../src/libs/modulegroups.c:1781 msgid "previous config with new layout" msgstr "előző konfiguráció új elrendezéssel" -#: ../src/libs/modulegroups.c:1957 ../src/libs/modulegroups.c:2472 -#: ../src/libs/modulegroups.c:2484 +#: ../src/libs/modulegroups.c:1941 ../src/libs/modulegroups.c:2456 +#: ../src/libs/modulegroups.c:2468 msgid "remove this widget" msgstr "widget eltávolítása" -#: ../src/libs/modulegroups.c:2107 ../src/libs/modulegroups.c:2347 +#: ../src/libs/modulegroups.c:2091 ../src/libs/modulegroups.c:2331 msgid "remove this module" msgstr "modul eltávolítása" #. does it belong to recommended modules ? -#: ../src/libs/modulegroups.c:2316 +#: ../src/libs/modulegroups.c:2300 msgid "base" msgstr "alap" -#: ../src/libs/modulegroups.c:2319 +#: ../src/libs/modulegroups.c:2303 msgid "tone" msgstr "tónus" -#: ../src/libs/modulegroups.c:2322 +#: ../src/libs/modulegroups.c:2306 msgid "technical" msgstr "technikai" -#: ../src/libs/modulegroups.c:2323 +#: ../src/libs/modulegroups.c:2307 msgid "grading" msgstr "osztályozás" -#: ../src/libs/modulegroups.c:2329 ../src/libs/modulegroups.c:2337 +#: ../src/libs/modulegroups.c:2313 ../src/libs/modulegroups.c:2321 msgid "add this module" msgstr "ezen modul hozzáadása" #. show the submenu with all the modules -#: ../src/libs/modulegroups.c:2359 ../src/libs/modulegroups.c:2559 +#: ../src/libs/modulegroups.c:2343 ../src/libs/modulegroups.c:2543 msgid "all available modules" msgstr "összes elérhető modul" -#: ../src/libs/modulegroups.c:2367 +#: ../src/libs/modulegroups.c:2351 msgid "add module" msgstr "modul hozzádaása" -#: ../src/libs/modulegroups.c:2372 +#: ../src/libs/modulegroups.c:2356 msgid "remove module" msgstr "modul eltávolítása" -#: ../src/libs/modulegroups.c:2478 +#: ../src/libs/modulegroups.c:2462 msgid "header needed for other widgets" msgstr "más widgetekhez szükséges fejléc" -#: ../src/libs/modulegroups.c:2494 ../src/libs/modulegroups.c:2501 +#: ../src/libs/modulegroups.c:2478 ../src/libs/modulegroups.c:2485 msgid "add this widget" msgstr "ezen widget hozzáadása" -#: ../src/libs/modulegroups.c:2514 +#: ../src/libs/modulegroups.c:2498 msgid "currently invisible" msgstr "jelenleg nem látható" -#: ../src/libs/modulegroups.c:2543 +#: ../src/libs/modulegroups.c:2527 msgid "add widget" msgstr "widget hozzáadása" -#: ../src/libs/modulegroups.c:2548 +#: ../src/libs/modulegroups.c:2532 msgid "remove widget" msgstr "widget eltávolítása" -#: ../src/libs/modulegroups.c:2653 +#: ../src/libs/modulegroups.c:2637 msgid "show all history modules" msgstr "összes előzmény modul megjelenítése" -#: ../src/libs/modulegroups.c:2656 ../src/libs/modulegroups.c:3834 +#: ../src/libs/modulegroups.c:2640 ../src/libs/modulegroups.c:3836 msgid "" "show modules that are present in the history stack, regardless of whether or " "not they are currently enabled" @@ -23080,7 +23774,7 @@ "az előzményveremben található összes modul megjelenítése, függetlenül attól, " "hogy jelenleg engedélyezve vannak-e" -#: ../src/libs/modulegroups.c:2747 ../src/libs/modulegroups.c:2816 +#: ../src/libs/modulegroups.c:2731 ../src/libs/modulegroups.c:2823 msgid "" "the following modules are deprecated because they have internal design " "mistakes that can't be corrected and alternative modules that correct them.\n" @@ -23090,19 +23784,19 @@ "van, és van helyettük ezt orvosló alternatív modul.\n" "ezek a modulok a következő kiadásokban nem lesznek szerkeszthetőek." -#: ../src/libs/modulegroups.c:2775 ../src/libs/modulegroups.c:2776 +#: ../src/libs/modulegroups.c:2782 ../src/libs/modulegroups.c:2783 msgid "quick access panel" msgstr "gyors elérés panel" -#: ../src/libs/modulegroups.c:2786 +#: ../src/libs/modulegroups.c:2793 msgid "show only active modules" msgstr "csak az aktív modulok megjelenítése" -#: ../src/libs/modulegroups.c:2787 +#: ../src/libs/modulegroups.c:2794 msgid "active modules" msgstr "aktív modulok" -#: ../src/libs/modulegroups.c:2792 +#: ../src/libs/modulegroups.c:2799 msgid "" "presets\n" "ctrl+click to manage" @@ -23110,143 +23804,147 @@ "tárolt beállítások\n" "ctrl+klikk a kezeléséhez" -#: ../src/libs/modulegroups.c:2798 +#: ../src/libs/modulegroups.c:2805 msgid "search modules" msgstr "modulok keresése" -#: ../src/libs/modulegroups.c:2799 +#: ../src/libs/modulegroups.c:2806 msgid "search modules by name or tag" msgstr "modulok keresése név vagy címke szerint" -#: ../src/libs/modulegroups.c:2809 +#: ../src/libs/modulegroups.c:2816 msgid "clear text" msgstr "szöveg törlése" -#: ../src/libs/modulegroups.c:3051 +#: ../src/libs/modulegroups.c:3056 msgid "basic icon" msgstr "alap ikon" -#: ../src/libs/modulegroups.c:3061 +#: ../src/libs/modulegroups.c:3066 msgid "active icon" msgstr "aktív ikon" -#: ../src/libs/modulegroups.c:3071 +#: ../src/libs/modulegroups.c:3076 msgid "color icon" msgstr "szín ikon" -#: ../src/libs/modulegroups.c:3081 +#: ../src/libs/modulegroups.c:3086 msgid "correct icon" msgstr "korrekció ikon" -#: ../src/libs/modulegroups.c:3091 +#: ../src/libs/modulegroups.c:3096 msgid "effect icon" msgstr "effekt ikon" -#: ../src/libs/modulegroups.c:3101 +#: ../src/libs/modulegroups.c:3106 msgid "favorites icon" msgstr "kedvencek ikon" -#: ../src/libs/modulegroups.c:3111 +#: ../src/libs/modulegroups.c:3116 msgid "tone icon" msgstr "tónus ikon" -#: ../src/libs/modulegroups.c:3121 +#: ../src/libs/modulegroups.c:3126 msgid "grading icon" msgstr "osztályozás ikon" -#: ../src/libs/modulegroups.c:3131 +#: ../src/libs/modulegroups.c:3136 msgid "technical icon" msgstr "technikai ikon" -#: ../src/libs/modulegroups.c:3164 +#: ../src/libs/modulegroups.c:3169 msgid "quick access panel widgets" msgstr "gyors elérés panel widget" -#: ../src/libs/modulegroups.c:3166 +#: ../src/libs/modulegroups.c:3171 msgid "quick access" msgstr "gyors elérés" -#: ../src/libs/modulegroups.c:3186 +#: ../src/libs/modulegroups.c:3191 msgid "add widget to the quick access panel" msgstr "widget hozzáadása a gyors elérés panelhez" -#: ../src/libs/modulegroups.c:3218 +#: ../src/libs/modulegroups.c:3223 msgid "group icon" msgstr "csoport ikon" -#: ../src/libs/modulegroups.c:3227 +#: ../src/libs/modulegroups.c:3232 msgid "group name" msgstr "csoport név" -#: ../src/libs/modulegroups.c:3238 +#: ../src/libs/modulegroups.c:3243 msgid "remove group" msgstr "csoport eltávolítása" -#: ../src/libs/modulegroups.c:3264 +#: ../src/libs/modulegroups.c:3269 msgid "move group to the left" msgstr "csoport mozgatása balra" -#: ../src/libs/modulegroups.c:3272 +#: ../src/libs/modulegroups.c:3277 msgid "add module to the group" msgstr "modul hozzáadása a csoporthoz" -#: ../src/libs/modulegroups.c:3283 +#: ../src/libs/modulegroups.c:3288 msgid "move group to the right" msgstr "csoport mozgatása jobbra" -#: ../src/libs/modulegroups.c:3463 +#: ../src/libs/modulegroups.c:3464 msgid "rename preset" msgstr "tárolt beállítás átnevezése" -#: ../src/libs/modulegroups.c:3470 +#: ../src/libs/modulegroups.c:3467 +msgid "_rename" +msgstr "_átnevezés" + +#: ../src/libs/modulegroups.c:3473 msgid "new preset name:" msgstr "új tárolt beállítás neve:" -#: ../src/libs/modulegroups.c:3471 +#: ../src/libs/modulegroups.c:3474 msgid "a preset with this name already exists!" msgstr "ilyen néven már van tárolt beállítás!" -#: ../src/libs/modulegroups.c:3804 +#: ../src/libs/modulegroups.c:3806 msgid "preset: " msgstr "tárolt beállítás: " -#: ../src/libs/modulegroups.c:3811 +#: ../src/libs/modulegroups.c:3813 msgid "remove the preset" msgstr "tárolt beállítás eltávolítása" -#: ../src/libs/modulegroups.c:3813 +#: ../src/libs/modulegroups.c:3815 msgid "duplicate the preset" msgstr "tárolt beállítás duplikálása" -#: ../src/libs/modulegroups.c:3815 +#: ../src/libs/modulegroups.c:3817 msgid "rename the preset" msgstr "tárolt beállítás átnevezése" -#: ../src/libs/modulegroups.c:3817 +#: ../src/libs/modulegroups.c:3819 msgid "create a new empty preset" msgstr "új üres tárolt beállítás létrehozása" -#: ../src/libs/modulegroups.c:3825 +#: ../src/libs/modulegroups.c:3827 msgid "show search line" msgstr "keresősáv megjelenítése" -#: ../src/libs/modulegroups.c:3828 +#: ../src/libs/modulegroups.c:3830 msgid "show quick access panel" msgstr "gyors elérés panel megjelenítése" -#: ../src/libs/modulegroups.c:3831 +#: ../src/libs/modulegroups.c:3833 msgid "show all history modules in active group" msgstr "az aktív csoport összes előzmény moduljának megjelenítése" -#: ../src/libs/modulegroups.c:3843 +#: ../src/libs/modulegroups.c:3845 msgid "auto-apply this preset" msgstr "tárolt beállítás automatikus alkalmazása" -#: ../src/libs/modulegroups.c:3858 +#: ../src/libs/modulegroups.c:3860 msgid "module groups" msgstr "modulcsoportok" -#: ../src/libs/modulegroups.c:3875 +#: ../src/libs/modulegroups.c:3877 msgid "" "this is a built-in read-only preset. duplicate it if you want to make changes" msgstr "" @@ -23257,16 +23955,16 @@ msgid "navigation" msgstr "navigáció" -#: ../src/libs/navigation.c:111 ../src/libs/navigation.c:191 +#: ../src/libs/navigation.c:112 ../src/libs/navigation.c:194 msgctxt "navigationbox" msgid "fill" msgstr "kitöltés" -#: ../src/libs/navigation.c:114 ../src/libs/navigation.c:189 +#: ../src/libs/navigation.c:115 ../src/libs/navigation.c:192 msgid "small" msgstr "kicsi" -#: ../src/libs/navigation.c:151 +#: ../src/libs/navigation.c:154 msgid "" "navigation\n" "click or drag to position zoomed area in center view" @@ -23274,35 +23972,35 @@ "navigáció\n" "kattintson vagy húzza, hogy a nagyított terület a nézet közepére kerüljön" -#: ../src/libs/navigation.c:173 +#: ../src/libs/navigation.c:176 msgid "hide navigation thumbnail" msgstr "navigációs bélyegkép elrejtése" -#: ../src/libs/navigation.c:187 +#: ../src/libs/navigation.c:190 msgid "image zoom level" msgstr "kép nagyítási szintje" -#: ../src/libs/navigation.c:192 +#: ../src/libs/navigation.c:195 msgid "50%" msgstr "50%" -#: ../src/libs/navigation.c:193 +#: ../src/libs/navigation.c:196 msgid "100%" msgstr "100%" -#: ../src/libs/navigation.c:194 +#: ../src/libs/navigation.c:197 msgid "200%" msgstr "200%" -#: ../src/libs/navigation.c:195 +#: ../src/libs/navigation.c:198 msgid "400%" msgstr "400%" -#: ../src/libs/navigation.c:196 +#: ../src/libs/navigation.c:199 msgid "800%" msgstr "800%" -#: ../src/libs/navigation.c:197 +#: ../src/libs/navigation.c:200 msgid "1600%" msgstr "1600%" @@ -23546,21 +24244,21 @@ msgid "print with current settings" msgstr "nyomtatás a jelenlegi beállításokkal" -#: ../src/libs/select.c:136 +#: ../src/libs/select.c:137 msgid "select all images in current collection" msgstr "a gyűjtemény összes képének kijelölése" -#: ../src/libs/select.c:140 +#: ../src/libs/select.c:141 msgid "clear selection" msgstr "kijelölés törlése" -#: ../src/libs/select.c:144 +#: ../src/libs/select.c:145 msgid "" "select unselected images\n" "in current collection" msgstr "a gyűjtemény kijelöletlen képeinek kijelölése" -#: ../src/libs/select.c:148 +#: ../src/libs/select.c:149 msgid "" "select all images which are in the same\n" "film roll as the selected images" @@ -23568,7 +24266,7 @@ "az összes olyan kép kijelölése, ami\n" "a kijelölt képpel azonos filmtekercsen szerepel" -#: ../src/libs/select.c:152 +#: ../src/libs/select.c:153 msgid "" "select untouched images in\n" "current collection" @@ -23588,29 +24286,33 @@ msgid "create" msgstr "létrehozás" -#: ../src/libs/snapshots.c:92 +#: ../src/libs/snapshots.c:88 msgid "snapshots" msgstr "pillanatképek" -#: ../src/libs/snapshots.c:141 +#: ../src/libs/snapshots.c:137 msgctxt "snapshot sign" msgid "S" msgstr "P" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:662 +msgid "snapshots for removed image have been deleted" +msgstr "az eltávolított kép pillanatképei törölve" + +#: ../src/libs/snapshots.c:703 #, c-format msgid "↗ %s '%s'" msgstr "↗ %s „%s”" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:703 msgid "this snapshot was taken from" msgstr "ez a pillanatkép erről készült" -#: ../src/libs/snapshots.c:663 +#: ../src/libs/snapshots.c:742 msgid "take snapshot" msgstr "pillanatkép készítése" -#: ../src/libs/snapshots.c:665 +#: ../src/libs/snapshots.c:744 msgid "" "take snapshot to compare with another image or the same image at another " "stage of development" @@ -23618,7 +24320,7 @@ "pillanatkép készítése, hogy összehasonlítható legyen más képekkel, vagy " "önmagával a különböző munkafázisokban" -#: ../src/libs/snapshots.c:734 +#: ../src/libs/snapshots.c:790 msgid "toggle last snapshot" msgstr "utolsó pillanatkép váltása" @@ -23635,7 +24337,11 @@ msgstr[0] "biztosan töröl %d stílust?" msgstr[1] "biztosan töröl %d stílust?" -#: ../src/libs/styles.c:444 ../src/libs/styles.c:627 +#: ../src/libs/styles.c:441 ../src/libs/styles.c:626 +msgid "_overwrite" +msgstr "_felülírás" + +#: ../src/libs/styles.c:446 ../src/libs/styles.c:631 #, c-format msgid "" "style `%s' already exists.\n" @@ -23644,24 +24350,24 @@ "„%s” stílus már létezik.\n" "biztosan felülírja a meglévő stílust?\n" -#: ../src/libs/styles.c:446 ../src/libs/styles.c:629 +#: ../src/libs/styles.c:448 ../src/libs/styles.c:633 msgid "apply this option to all existing styles" msgstr "ezen beállítás alkalmazása az összes meglévő stílusra" -#: ../src/libs/styles.c:509 +#: ../src/libs/styles.c:511 #, c-format msgid "style %s was successfully exported" msgstr "%s stílus sikeresen exportálva" -#: ../src/libs/styles.c:526 +#: ../src/libs/styles.c:528 msgid "select style" msgstr "stílus választása" -#: ../src/libs/styles.c:536 +#: ../src/libs/styles.c:538 msgid "darktable style files" msgstr "darktable stílusfájlok" -#: ../src/libs/styles.c:815 +#: ../src/libs/styles.c:819 msgid "" "available styles,\n" "double-click to apply" @@ -23669,73 +24375,73 @@ "elérhető stílusok,\n" "dupla kattintással alkalmazható" -#: ../src/libs/styles.c:824 ../src/libs/styles.c:825 +#: ../src/libs/styles.c:828 ../src/libs/styles.c:829 msgid "filter style names" msgstr "stílusnevek szűrése" -#: ../src/libs/styles.c:837 +#: ../src/libs/styles.c:841 msgid "create duplicate" msgstr "másolat készítése" -#: ../src/libs/styles.c:844 +#: ../src/libs/styles.c:848 msgid "creates a duplicate of the image before applying style" msgstr "a stílus alkalmazása előtt másolatot készít a képről" -#: ../src/libs/styles.c:862 +#: ../src/libs/styles.c:866 msgid "create..." msgstr "létrehozás…" -#: ../src/libs/styles.c:864 +#: ../src/libs/styles.c:868 msgid "create styles from history stack of selected images" msgstr "a kijelölt kép előzményeiből stílust készít" -#: ../src/libs/styles.c:869 ../src/libs/tagging.c:2252 +#: ../src/libs/styles.c:873 ../src/libs/tagging.c:2283 msgid "edit..." msgstr "szerkesztés…" -#: ../src/libs/styles.c:871 +#: ../src/libs/styles.c:875 msgid "edit the selected styles in list above" msgstr "a fenti lista kiválasztott stílusainak szerkesztése" -#: ../src/libs/styles.c:878 +#: ../src/libs/styles.c:882 msgid "removes the selected styles in list above" msgstr "a fenti lista kiválasztott stílusainak törlése" -#: ../src/libs/styles.c:885 +#: ../src/libs/styles.c:889 msgid "import styles from a style files" msgstr "stílusok importálása stílus fájlból" -#: ../src/libs/styles.c:892 +#: ../src/libs/styles.c:896 msgid "export the selected styles into a style files" msgstr "a kijelölt stílusok exportálása stílus fájlba" -#: ../src/libs/styles.c:899 +#: ../src/libs/styles.c:903 msgid "apply the selected styles in list above to selected images" msgstr "a fenti listában kiválasztott stílusok alkalmazása a kijelölt képekre" -#: ../src/libs/tagging.c:105 +#: ../src/libs/tagging.c:109 msgid "tagging" msgstr "címkézés" -#: ../src/libs/tagging.c:1255 +#: ../src/libs/tagging.c:1258 msgid "attach tag to all" msgstr "címke hozzárendelése mindhez" -#: ../src/libs/tagging.c:1263 ../src/libs/tagging.c:2225 +#: ../src/libs/tagging.c:1266 ../src/libs/tagging.c:2256 msgid "detach tag" msgstr "címke leválasztása" -#: ../src/libs/tagging.c:1483 +#: ../src/libs/tagging.c:1486 msgid "delete tag?" msgstr "törli a címkét?" -#: ../src/libs/tagging.c:1490 ../src/libs/tagging.c:1578 -#: ../src/libs/tagging.c:1789 ../src/libs/tagging.c:2063 +#: ../src/libs/tagging.c:1496 ../src/libs/tagging.c:1587 +#: ../src/libs/tagging.c:1814 ../src/libs/tagging.c:2093 #, c-format msgid "selected: %s" msgstr "kiválasztott: %s" -#: ../src/libs/tagging.c:1497 +#: ../src/libs/tagging.c:1503 #, c-format msgid "" "do you really want to delete the tag `%s'?\n" @@ -23750,73 +24456,73 @@ "biztosan törölni szeretné a(z) „%s” címkét?\n" "%d kép van ehhez a címkéhez rendelve!" -#: ../src/libs/tagging.c:1531 +#: ../src/libs/tagging.c:1537 #, c-format msgid "tag %s removed" msgstr "%s címke eltávolítva" -#: ../src/libs/tagging.c:1571 +#: ../src/libs/tagging.c:1577 msgid "delete node?" msgstr "törli a pontot?" -#: ../src/libs/tagging.c:1585 +#: ../src/libs/tagging.c:1594 #, c-format msgid "<u>%d</u> tag will be deleted" msgid_plural "<u>%d</u> tags will be deleted" msgstr[0] "<u>%d</u> címke törlésre kerül" msgstr[1] "<u>%d</u> címke törlésre kerül" -#: ../src/libs/tagging.c:1590 ../src/libs/tagging.c:1801 -#: ../src/libs/tagging.c:2075 +#: ../src/libs/tagging.c:1599 ../src/libs/tagging.c:1826 +#: ../src/libs/tagging.c:2105 #, c-format msgid "<u>%d</u> image will be updated" msgid_plural "<u>%d</u> images will be updated" msgstr[0] "<u>%d</u> kép frissítve lesz" msgstr[1] "<u>%d</u> kép frissítve lesz" -#: ../src/libs/tagging.c:1616 +#: ../src/libs/tagging.c:1625 #, c-format msgid "%d tags removed" msgstr "%d címke eltávolítva" -#: ../src/libs/tagging.c:1652 +#: ../src/libs/tagging.c:1668 msgid "create tag" msgstr "címke létrehozása" -#: ../src/libs/tagging.c:1662 ../src/libs/tagging.c:1809 +#: ../src/libs/tagging.c:1681 ../src/libs/tagging.c:1834 msgid "name: " msgstr "név: " -#: ../src/libs/tagging.c:1674 +#: ../src/libs/tagging.c:1696 #, c-format msgid "add to: \"%s\" " msgstr "hozzáadás ehhez: „%s” " -#: ../src/libs/tagging.c:1680 ../src/libs/tagging.c:1824 +#: ../src/libs/tagging.c:1702 ../src/libs/tagging.c:1851 msgid "category" msgstr "kategória" -#: ../src/libs/tagging.c:1689 ../src/libs/tagging.c:1833 +#: ../src/libs/tagging.c:1711 ../src/libs/tagging.c:1860 msgid "synonyms: " msgstr "szinonimák: " -#: ../src/libs/tagging.c:1706 ../src/libs/tagging.c:1855 -#: ../src/libs/tagging.c:2097 +#: ../src/libs/tagging.c:1728 ../src/libs/tagging.c:1882 +#: ../src/libs/tagging.c:2128 msgid "empty tag is not allowed, aborting" msgstr "üres címke nem megengedett, megszakítás" -#: ../src/libs/tagging.c:1717 +#: ../src/libs/tagging.c:1739 msgid "tag name already exists. aborting." msgstr "címke név már létezik. megszakítás." -#: ../src/libs/tagging.c:1796 ../src/libs/tagging.c:2070 +#: ../src/libs/tagging.c:1821 ../src/libs/tagging.c:2100 #, c-format msgid "<u>%d</u> tag will be updated" msgid_plural "<u>%d</u> tags will be updated" msgstr[0] "<u>%d</u> címke frissítve lesz" msgstr[1] "<u>%d</u> címke frissítve lesz" -#: ../src/libs/tagging.c:1857 +#: ../src/libs/tagging.c:1884 msgid "" "'|' character is not allowed for renaming tag.\n" "to modify the hierarchy use rename path instead. Aborting." @@ -23824,101 +24530,101 @@ "a „|” karakter nem használható címke átnevezésénél.\n" "a hierarchia módosításához ehelyett az útvonalat nevezze át. megszakítva." -#: ../src/libs/tagging.c:1896 ../src/libs/tagging.c:2004 +#: ../src/libs/tagging.c:1923 ../src/libs/tagging.c:2031 #, c-format msgid "at least one new tag name (%s) already exists, aborting" msgstr "legalább egy új címkenév (%s) már létezik. megszakítás" -#: ../src/libs/tagging.c:2056 +#: ../src/libs/tagging.c:2083 msgid "change path" msgstr "útvonal módosítása" -#: ../src/libs/tagging.c:2099 +#: ../src/libs/tagging.c:2130 msgid "'|' misplaced, empty tag is not allowed, aborting" msgstr "" "a „|” karakter rossz helyen van, üres címke nem engedélyezett. megszakítás" -#: ../src/libs/tagging.c:2195 +#: ../src/libs/tagging.c:2226 #, c-format msgid "tag %s created" msgstr "%s címke létrehozva" -#: ../src/libs/tagging.c:2221 +#: ../src/libs/tagging.c:2252 msgid "attach tag" msgstr "címke hozzárendelése" -#: ../src/libs/tagging.c:2234 +#: ../src/libs/tagging.c:2265 msgid "create tag..." msgstr "címke létrehozása…" -#: ../src/libs/tagging.c:2240 +#: ../src/libs/tagging.c:2271 msgid "delete tag" msgstr "címke törlése" -#: ../src/libs/tagging.c:2247 +#: ../src/libs/tagging.c:2278 msgid "delete node" msgstr "pont törlése" -#: ../src/libs/tagging.c:2260 +#: ../src/libs/tagging.c:2291 msgid "change path..." msgstr "útvonal módosítása…" -#: ../src/libs/tagging.c:2270 +#: ../src/libs/tagging.c:2301 msgid "set as a tag" msgstr "beállítás címkének" -#: ../src/libs/tagging.c:2281 +#: ../src/libs/tagging.c:2312 msgid "copy to entry" msgstr "másolás a beviteli mezőbe" -#: ../src/libs/tagging.c:2298 +#: ../src/libs/tagging.c:2329 msgid "go to tag collection" msgstr "címke gyűjtemény megnyitása" -#: ../src/libs/tagging.c:2304 +#: ../src/libs/tagging.c:2335 msgid "go back to work" msgstr "vissza a munkához" -#: ../src/libs/tagging.c:2461 +#: ../src/libs/tagging.c:2492 #, c-format msgid "%s" msgstr "%s" -#: ../src/libs/tagging.c:2462 +#: ../src/libs/tagging.c:2493 msgid "(private)" msgstr "(privát)" -#: ../src/libs/tagging.c:2488 +#: ../src/libs/tagging.c:2519 msgid "select a keyword file" msgstr "válasszon egy kulcsszó fájlt" -#: ../src/libs/tagging.c:2501 +#: ../src/libs/tagging.c:2532 msgid "error importing tags" msgstr "hiba történt a címkék importálásakor" -#: ../src/libs/tagging.c:2503 +#: ../src/libs/tagging.c:2534 #, c-format msgid "%zd tags imported" msgstr "%zd címke importálva" -#: ../src/libs/tagging.c:2524 +#: ../src/libs/tagging.c:2555 msgid "select file to export to" msgstr "válassza ki a fájlt, amibe exportálni fog" -#: ../src/libs/tagging.c:2538 +#: ../src/libs/tagging.c:2569 msgid "error exporting tags" msgstr "hiba történt a címkék exportálásakor" -#: ../src/libs/tagging.c:2540 +#: ../src/libs/tagging.c:2571 #, c-format msgid "%zd tags exported" msgstr "%zd címke exportálva" -#: ../src/libs/tagging.c:2964 +#: ../src/libs/tagging.c:2995 msgid "drop to root" msgstr "legfelső szintre dobás" -#: ../src/libs/tagging.c:3100 +#: ../src/libs/tagging.c:3131 msgid "" "attached tags\n" "press Delete or double-click to detach\n" @@ -23930,47 +24636,47 @@ "jobb-klikkel további műveleteket végezhet a kapcsolt címkén,\n" "a Tab a beviteli mezőbe helyezi a fókuszt" -#: ../src/libs/tagging.c:3111 +#: ../src/libs/tagging.c:3142 msgid "attach" msgstr "hozzárendel" -#: ../src/libs/tagging.c:3112 +#: ../src/libs/tagging.c:3143 msgid "attach tag to all selected images" msgstr "címke hozzárendelése a kijelölt képekhez" -#: ../src/libs/tagging.c:3115 +#: ../src/libs/tagging.c:3146 msgid "detach" msgstr "eltávolít" -#: ../src/libs/tagging.c:3116 +#: ../src/libs/tagging.c:3147 msgid "detach tag from all selected images" msgstr "címke eltávolítása a kijelölt képekről" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "toggle list with / without hierarchy" msgstr "listanézet váltása hierarchiával/nélkül" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "hide" msgstr "elrejtés" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "toggle sort by name or by count" msgstr "név / darabszám szerint rendezés váltása" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "sort" msgstr "rendezés" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "toggle show or not darktable tags" msgstr "darktable címkék megjelenítése/elrejtése" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "dttags" msgstr "dttags" -#: ../src/libs/tagging.c:3149 +#: ../src/libs/tagging.c:3180 msgid "" "enter tag name\n" "press Enter to create a new tag and attach it on selected images\n" @@ -23984,11 +24690,11 @@ "nyomjon shift+Tab billentyűt az első hozzákapcsolt felhasználói címkéhez " "ugráshoz" -#: ../src/libs/tagging.c:3160 ../src/libs/tagging.c:3166 +#: ../src/libs/tagging.c:3191 ../src/libs/tagging.c:3197 msgid "clear entry" msgstr "beviteli mező törlés" -#: ../src/libs/tagging.c:3213 +#: ../src/libs/tagging.c:3244 msgid "" "tag dictionary,\n" "Enter or double-click to attach selected tag on selected images\n" @@ -24005,48 +24711,48 @@ "jobb kattintással a kiválasztott címke további műveletei érhetőek el\n" "shift+Tab a beviteli mezőbe helyezi a fókuszt" -#: ../src/libs/tagging.c:3248 +#: ../src/libs/tagging.c:3279 msgid "" "create a new tag with the\n" "name you entered" msgstr "új címke készítése az ön által megadott néven" -#: ../src/libs/tagging.c:3251 +#: ../src/libs/tagging.c:3282 msgid "import tags from a Lightroom keyword file" msgstr "címkék importálása egy Lightroom kulcsszó fájlból" -#: ../src/libs/tagging.c:3254 +#: ../src/libs/tagging.c:3285 msgid "export all tags to a Lightroom keyword file" msgstr "összes címke exportálása egy Lightroom kulcsszó fájlba" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "toggle list / tree view" msgstr "lista / fa nézet váltása" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "tree" msgstr "fa" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "toggle list with / without suggestion" msgstr "listanézet váltása javaslattal/nélkül" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "suggestion" msgstr "javaslat" -#: ../src/libs/tagging.c:3282 +#: ../src/libs/tagging.c:3313 msgid "redo last tag" msgstr "utolsó címke ismétlése" -#: ../src/libs/tagging.c:3365 +#: ../src/libs/tagging.c:3396 msgid "" "tag shortcut is not active with tag tree view. please switch to list view" msgstr "" "címke gyorsbillentyű nem aktív a címke fanézetben. kérem, váltson " "listanézetre" -#: ../src/libs/tagging.c:3469 +#: ../src/libs/tagging.c:3500 msgid "tagging settings" msgstr "címkézési beállítások" @@ -24065,27 +24771,6 @@ "a kijelölt képek \n" "színcímkéjének váltása" -#: ../src/libs/tools/darktable.c:284 -#, c-format -msgid "copyright (c) the authors 2009-%s" -msgstr "copyright (c) a szerzők 2009-%s" - -#: ../src/libs/tools/darktable.c:288 -msgid "organize and develop images from digital cameras" -msgstr "digitális fényképező képeinek rendezése, kidolgozása" - -#: ../src/libs/tools/darktable.c:300 -msgid "all those of you that made previous releases possible" -msgstr "mindazok, akik lehetővé tették a korábbi kiadásokat" - -#: ../src/libs/tools/darktable.c:305 -msgid "and..." -msgstr "és…" - -#: ../src/libs/tools/darktable.c:307 -msgid "translator-credits" -msgstr "Báthory Péter" - #: ../src/libs/tools/filmstrip.c:45 msgid "filmstrip" msgstr "filmszalag" @@ -24405,35 +25090,35 @@ msgid "click to enter culling layout in dynamic mode." msgstr "kattintson a dinamikus elrendezésű selejtező módba lépéshez." -#: ../src/libs/tools/lighttable.c:368 +#: ../src/libs/tools/lighttable.c:365 msgid "toggle filemanager layout" msgstr "fájlkezelő elrendezés váltása" -#: ../src/libs/tools/lighttable.c:371 +#: ../src/libs/tools/lighttable.c:368 msgid "click to enter filemanager layout." msgstr "kattintson a fájlkezelő módba lépéshez." -#: ../src/libs/tools/lighttable.c:377 +#: ../src/libs/tools/lighttable.c:374 msgid "toggle zoomable lighttable layout" msgstr "nagyítható átvilágítóasztal elrendezés váltása" -#: ../src/libs/tools/lighttable.c:380 +#: ../src/libs/tools/lighttable.c:377 msgid "click to enter zoomable lighttable layout." msgstr "kattintson a nagyítható átvilágítóasztal módba lépéshez." -#: ../src/libs/tools/lighttable.c:386 +#: ../src/libs/tools/lighttable.c:383 msgid "toggle culling mode" msgstr "selejtező mód váltása" -#: ../src/libs/tools/lighttable.c:394 +#: ../src/libs/tools/lighttable.c:391 msgid "toggle culling dynamic mode" msgstr "selejtező dinamikus mód váltása" -#: ../src/libs/tools/lighttable.c:441 +#: ../src/libs/tools/lighttable.c:438 msgid "toggle culling zoom mode" msgstr "selejtező zoom mód váltása" -#: ../src/libs/tools/lighttable.c:443 +#: ../src/libs/tools/lighttable.c:440 msgid "exit current layout" msgstr "kilépés a jelenlegi elrendezésből" @@ -24515,7 +25200,7 @@ msgid "Lua options" msgstr "Lua options" -#: ../src/views/darkroom.c:607 +#: ../src/views/darkroom.c:503 #, c-format msgid "" "darktable could not load `%s', switching to lighttable now.\n" @@ -24538,64 +25223,64 @@ "hibajegyet\n" "https://github.com/darktable-org/darktable" -#: ../src/views/darkroom.c:625 +#: ../src/views/darkroom.c:521 #, c-format msgctxt "darkroom" msgid "loading `%s' ..." msgstr "„%s” betöltése…" -#: ../src/views/darkroom.c:749 ../src/views/darkroom.c:2496 +#: ../src/views/darkroom.c:668 ../src/views/darkroom.c:2335 msgid "gamut check" msgstr "gamut ellenőrzés" -#: ../src/views/darkroom.c:749 +#: ../src/views/darkroom.c:668 msgid "soft proof" msgstr "soft proof" #. fail :( -#: ../src/views/darkroom.c:787 ../src/views/print.c:356 +#: ../src/views/darkroom.c:708 ../src/views/print.c:356 msgid "no image to open!" msgstr "nincs megnyitható kép!" -#: ../src/views/darkroom.c:1331 +#: ../src/views/darkroom.c:1232 msgid "no user-defined presets for favorite modules were found" msgstr "" "nem találhatók felhasználó által definiált tárolt beállítások a kedvenc " "modulokhoz" -#: ../src/views/darkroom.c:1476 +#: ../src/views/darkroom.c:1377 msgid "no styles have been created yet" msgstr "még nincs létrehozva stílus" -#: ../src/views/darkroom.c:2331 ../src/views/darkroom.c:2332 +#: ../src/views/darkroom.c:2170 ../src/views/darkroom.c:2171 msgid "quick access to presets" msgstr "tárolt beállítások gyors elérése" -#: ../src/views/darkroom.c:2340 +#: ../src/views/darkroom.c:2179 msgid "quick access to styles" msgstr "stílusok gyors elérése" -#: ../src/views/darkroom.c:2342 +#: ../src/views/darkroom.c:2181 msgid "quick access for applying any of your styles" msgstr "az alkalmazható stílusok gyors elérése" -#: ../src/views/darkroom.c:2348 +#: ../src/views/darkroom.c:2187 msgid "second window" msgstr "második ablak" -#: ../src/views/darkroom.c:2351 +#: ../src/views/darkroom.c:2190 msgid "display a second darkroom image window" msgstr "második sötétszoba ablak megjelenítése" -#: ../src/views/darkroom.c:2356 +#: ../src/views/darkroom.c:2195 msgid "color assessment" msgstr "színkiértékelés" -#: ../src/views/darkroom.c:2359 +#: ../src/views/darkroom.c:2198 msgid "toggle ISO 12646 color assessment conditions" msgstr "ISO 12646 színkiértékelési feltételek kapcsolása" -#: ../src/views/darkroom.c:2372 +#: ../src/views/darkroom.c:2211 msgid "" "toggle raw over exposed indication\n" "right click for options" @@ -24603,27 +25288,27 @@ "raw túlexponáltság megjelenítése\n" "beállítások: jobb klikk" -#: ../src/views/darkroom.c:2388 +#: ../src/views/darkroom.c:2227 msgid "select how to mark the clipped pixels" msgstr "válassza ki a levágott pixelek jelölésének módját" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with CFA color" msgstr "jelölés mozaikszűrő mintával" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with solid color" msgstr "jelölés egy színnel" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "false color" msgstr "hamisszínes" -#: ../src/views/darkroom.c:2393 ../src/views/darkroom.c:2444 +#: ../src/views/darkroom.c:2232 ../src/views/darkroom.c:2283 msgid "color scheme" msgstr "színséma" -#: ../src/views/darkroom.c:2394 +#: ../src/views/darkroom.c:2233 msgid "" "select the solid color to indicate over exposure.\n" "will only be used if mode = mark with solid color" @@ -24631,27 +25316,27 @@ "válassza ki a túlexponáltságot jelző színt.\n" "csak „jelölés egy színnel” módban lesz használva" -#: ../src/views/darkroom.c:2397 +#: ../src/views/darkroom.c:2236 msgctxt "solidcolor" msgid "red" msgstr "vörös" -#: ../src/views/darkroom.c:2398 +#: ../src/views/darkroom.c:2237 msgctxt "solidcolor" msgid "green" msgstr "zöld" -#: ../src/views/darkroom.c:2399 +#: ../src/views/darkroom.c:2238 msgctxt "solidcolor" msgid "blue" msgstr "kék" -#: ../src/views/darkroom.c:2400 +#: ../src/views/darkroom.c:2239 msgctxt "solidcolor" msgid "black" msgstr "fekete" -#: ../src/views/darkroom.c:2408 +#: ../src/views/darkroom.c:2247 msgid "" "threshold of what shall be considered overexposed\n" "1.0 - white level\n" @@ -24661,7 +25346,7 @@ "1.0 – fehér szint\n" "0.0 – fekete szint" -#: ../src/views/darkroom.c:2422 +#: ../src/views/darkroom.c:2261 msgid "" "toggle clipping indication\n" "right click for options" @@ -24669,11 +25354,11 @@ "levágás jelzés kapcsolása\n" "jobb klikk a beálltásokhoz" -#: ../src/views/darkroom.c:2437 +#: ../src/views/darkroom.c:2276 msgid "clipping preview mode" msgstr "levágott előnézet mód" -#: ../src/views/darkroom.c:2438 +#: ../src/views/darkroom.c:2277 msgid "" "select the metric you want to preview\n" "full gamut is the combination of all other modes" @@ -24681,39 +25366,39 @@ "válassza ki a metrikát, aminek az előnézetét látni szeretné.\n" "a teljes gamut az összes többi kombinációja" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "full gamut" msgstr "teljes gamut" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "any RGB channel" msgstr "bármely RGB csatorna" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "luminance only" msgstr "csak fénysűrűség" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "saturation only" msgstr "csak telítettség" -#: ../src/views/darkroom.c:2445 +#: ../src/views/darkroom.c:2284 msgid "select colors to indicate clipping" msgstr "válassza ki a levágást jelző színeket" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "red & blue" msgstr "vörös & kék" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "purple & green" msgstr "lila & zöld" -#: ../src/views/darkroom.c:2454 +#: ../src/views/darkroom.c:2293 msgid "lower threshold" msgstr "alsó küszöb" -#: ../src/views/darkroom.c:2455 +#: ../src/views/darkroom.c:2294 msgid "" "clipping threshold for the black point,\n" "in EV, relatively to white (0 EV).\n" @@ -24733,11 +25418,11 @@ "a tipikus színes fényes nyomatok -8.00 FÉ-nél állítanak elő feketét,\n" "a tipikus fekete-fehér fényes nyomatok -9.00 FÉ-nél állítanak elő feketét." -#: ../src/views/darkroom.c:2471 +#: ../src/views/darkroom.c:2310 msgid "upper threshold" msgstr "felső küszöb" -#: ../src/views/darkroom.c:2473 +#: ../src/views/darkroom.c:2312 #, no-c-format msgid "" "clipping threshold for the white point.\n" @@ -24746,11 +25431,11 @@ "a fekete pont levágásának küszöbértéke.\n" "a 100% a csúcs közepes fénysűrűség." -#: ../src/views/darkroom.c:2485 +#: ../src/views/darkroom.c:2324 msgid "softproof" msgstr "softproof" -#: ../src/views/darkroom.c:2488 +#: ../src/views/darkroom.c:2327 msgid "" "toggle softproofing\n" "right click for profile options" @@ -24758,7 +25443,7 @@ "softproof nézet ki/be kapcsolása\n" "jobb klikk a profil beállításokhoz" -#: ../src/views/darkroom.c:2499 +#: ../src/views/darkroom.c:2338 msgid "" "toggle gamut checking\n" "right click for profile options" @@ -24766,46 +25451,54 @@ "gamut ellenőrzés ki/be kapcsolása\n" "beállítások: jobb klikk" -#: ../src/views/darkroom.c:2524 ../src/views/darkroom.c:2526 -#: ../src/views/darkroom.c:2540 ../src/views/darkroom.c:2541 -#: ../src/views/darkroom.c:2542 ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2365 ../src/views/darkroom.c:2367 +#: ../src/views/darkroom.c:2381 ../src/views/darkroom.c:2382 +#: ../src/views/darkroom.c:2383 ../src/views/darkroom.c:2384 #: ../src/views/lighttable.c:1182 ../src/views/lighttable.c:1184 msgid "profiles" msgstr "profilok" -#: ../src/views/darkroom.c:2526 ../src/views/lighttable.c:1184 +#: ../src/views/darkroom.c:2367 ../src/views/lighttable.c:1184 msgid "preview intent" msgstr "előnézet szándék" -#: ../src/views/darkroom.c:2540 ../src/views/lighttable.c:1188 +#: ../src/views/darkroom.c:2381 ../src/views/lighttable.c:1188 msgid "display profile" msgstr "kijelzőprofil" -#: ../src/views/darkroom.c:2541 ../src/views/lighttable.c:1191 +#: ../src/views/darkroom.c:2382 ../src/views/lighttable.c:1191 msgid "preview display profile" msgstr "kijelzőprofil előnézete" -#: ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2384 msgid "histogram profile" msgstr "hisztogram profil" -#: ../src/views/darkroom.c:2605 ../src/views/lighttable.c:1225 +#: ../src/views/darkroom.c:2391 +msgid "second preview window ISO 12646 color assessment" +msgstr "második előnézeti ablak ISO 12646 színkiértékelés" + +#: ../src/views/darkroom.c:2393 +msgid "color assessment second preview" +msgstr "színkiértékelés második előnézet" + +#: ../src/views/darkroom.c:2452 ../src/views/lighttable.c:1225 msgid "display ICC profiles" msgstr "kijelző ICC-profiljai" -#: ../src/views/darkroom.c:2609 ../src/views/lighttable.c:1229 +#: ../src/views/darkroom.c:2456 ../src/views/lighttable.c:1229 msgid "preview display ICC profiles" msgstr "kijelző ICC-profiljainak előnézete" -#: ../src/views/darkroom.c:2613 +#: ../src/views/darkroom.c:2460 msgid "softproof ICC profiles" msgstr "softproof ICC-profilok" -#: ../src/views/darkroom.c:2617 +#: ../src/views/darkroom.c:2464 msgid "histogram and color picker ICC profiles" msgstr "hisztogram és színpipetta ICC-profilok" -#: ../src/views/darkroom.c:2651 +#: ../src/views/darkroom.c:2497 msgid "" "toggle guide lines\n" "right click for guides options" @@ -24814,137 +25507,137 @@ "jobb klikk a segédvonal beállításokhoz" #. Fullscreen preview key -#: ../src/views/darkroom.c:2668 +#: ../src/views/darkroom.c:2514 msgid "full preview" msgstr "teljes képernyős előnézet" #. add an option to allow skip mouse events while other overlays are consuming mouse actions -#: ../src/views/darkroom.c:2672 +#: ../src/views/darkroom.c:2518 msgid "force pan/zoom/rotate with mouse" msgstr "egérrel mozgatás/nagyítás/forgatás kényszerítése" #. Zoom shortcuts -#: ../src/views/darkroom.c:2684 +#: ../src/views/darkroom.c:2530 msgid "zoom close-up" msgstr "zoom: közelkép" #. zoom in/out #. zoom in/out/min/max -#: ../src/views/darkroom.c:2687 ../src/views/lighttable.c:1283 +#: ../src/views/darkroom.c:2533 ../src/views/lighttable.c:1283 msgid "zoom in" msgstr "nagyítás" -#: ../src/views/darkroom.c:2688 ../src/views/lighttable.c:1285 +#: ../src/views/darkroom.c:2534 ../src/views/lighttable.c:1285 msgid "zoom out" msgstr "kicsinyítés" #. Shortcut to skip images -#: ../src/views/darkroom.c:2691 +#: ../src/views/darkroom.c:2537 msgid "image forward" msgstr "következő kép" -#: ../src/views/darkroom.c:2692 +#: ../src/views/darkroom.c:2538 msgid "image back" msgstr "előző kép" #. cycle overlay colors -#: ../src/views/darkroom.c:2695 +#: ../src/views/darkroom.c:2541 msgid "cycle overlay colors" msgstr "rátétszínek lapozása" #. toggle visibility of drawn masks for current gui module -#: ../src/views/darkroom.c:2698 +#: ../src/views/darkroom.c:2544 msgid "show drawn masks" msgstr "rajzolt maszkok megjelenítése" #. brush size +/- -#: ../src/views/darkroom.c:2701 +#: ../src/views/darkroom.c:2547 msgid "increase brush size" msgstr "ecsetméret növelése" -#: ../src/views/darkroom.c:2702 +#: ../src/views/darkroom.c:2548 msgid "decrease brush size" msgstr "ecsetméret csökkentése" #. brush hardness +/- -#: ../src/views/darkroom.c:2705 +#: ../src/views/darkroom.c:2551 msgid "increase brush hardness" msgstr "ecset keménységének növelése" -#: ../src/views/darkroom.c:2706 +#: ../src/views/darkroom.c:2552 msgid "decrease brush hardness" msgstr "ecset keménységének csökkentése" #. brush opacity +/- -#: ../src/views/darkroom.c:2709 +#: ../src/views/darkroom.c:2555 msgid "increase brush opacity" msgstr "ecset átlátszatlanságának növelése" -#: ../src/views/darkroom.c:2710 +#: ../src/views/darkroom.c:2556 msgid "decrease brush opacity" msgstr "ecset átlátszatlanságának csökkentése" #. undo/redo -#: ../src/views/darkroom.c:2713 ../src/views/lighttable.c:1275 +#: ../src/views/darkroom.c:2559 ../src/views/lighttable.c:1275 #: ../src/views/map.c:2115 msgid "undo" msgstr "visszavonás" -#: ../src/views/darkroom.c:2714 ../src/views/lighttable.c:1276 +#: ../src/views/darkroom.c:2560 ../src/views/lighttable.c:1276 #: ../src/views/map.c:2116 msgid "redo" msgstr "újra" #. change the precision for adjusting sliders with keyboard shortcuts -#: ../src/views/darkroom.c:2717 +#: ../src/views/darkroom.c:2563 msgid "change keyboard shortcut slider precision" -msgstr "gyorsbillentyű csúszkák pontosságának módosításához" +msgstr "csúszkák gyorsbillentyű általi pontosságának módosítása" -#: ../src/views/darkroom.c:3989 +#: ../src/views/darkroom.c:3565 msgid "keyboard shortcut slider precision: fine" msgstr "gyorsbillentyű – csúszka pontosság: normál" -#: ../src/views/darkroom.c:3991 +#: ../src/views/darkroom.c:3567 msgid "keyboard shortcut slider precision: normal" msgstr "gyorsbillentyű – csúszka pontosság: normál" -#: ../src/views/darkroom.c:3993 +#: ../src/views/darkroom.c:3569 msgid "keyboard shortcut slider precision: coarse" msgstr "gyorsbillentyű – csúszka pontosság: durva" -#: ../src/views/darkroom.c:4009 +#: ../src/views/darkroom.c:3584 msgid "switch to lighttable" msgstr "váltás átvilágítóra" -#: ../src/views/darkroom.c:4010 ../src/views/lighttable.c:882 +#: ../src/views/darkroom.c:3585 ../src/views/lighttable.c:882 msgid "zoom in the image" msgstr "belenagyítás a képbe" -#: ../src/views/darkroom.c:4011 +#: ../src/views/darkroom.c:3586 msgid "unbounded zoom in the image" msgstr "korlátlan belenagyítás a képbe" -#: ../src/views/darkroom.c:4012 +#: ../src/views/darkroom.c:3587 msgid "zoom to 100% 200% and back" msgstr "nagyítás 100%-ra 200%-ra és vissza" -#: ../src/views/darkroom.c:4013 ../src/views/lighttable.c:885 +#: ../src/views/darkroom.c:3588 ../src/views/lighttable.c:885 msgid "pan a zoomed image" msgstr "nagyított kép eltolása" -#: ../src/views/darkroom.c:4015 ../src/views/lighttable.c:927 +#: ../src/views/darkroom.c:3590 ../src/views/lighttable.c:927 msgid "[modules] expand module without closing others" msgstr "modul kibontása a többi becsukása nélkül" -#: ../src/views/darkroom.c:4016 ../src/views/lighttable.c:928 +#: ../src/views/darkroom.c:3591 ../src/views/lighttable.c:928 msgid "[modules] expand module and close others" msgstr "[modulok] modul kibontása és a többi becsukása" -#: ../src/views/darkroom.c:4018 +#: ../src/views/darkroom.c:3593 msgid "[modules] rename module" msgstr "[modulok] modul átnevezése" -#: ../src/views/darkroom.c:4020 +#: ../src/views/darkroom.c:3595 msgid "[modules] change module position in pipe" msgstr "[modulok] modul pozíciójának módosítása a feldolgozási soron" @@ -25089,60 +25782,60 @@ msgid "print" msgstr "nyomtatás" -#: ../src/views/slideshow.c:353 +#: ../src/views/slideshow.c:355 msgid "end of images" msgstr "elfogytak a képek" -#: ../src/views/slideshow.c:374 +#: ../src/views/slideshow.c:376 msgid "end of images. press any key to return to lighttable mode" msgstr "" "a képek végére ért. nyomjon egy gombot, hogy visszatérjen az átvilágító módba" -#: ../src/views/slideshow.c:504 +#: ../src/views/slideshow.c:509 msgid "waiting to start slideshow" msgstr "várakozás a diavetítés indítására" -#: ../src/views/slideshow.c:640 ../src/views/slideshow.c:661 -#: ../src/views/slideshow.c:669 +#: ../src/views/slideshow.c:678 ../src/views/slideshow.c:705 +#: ../src/views/slideshow.c:713 msgid "slideshow paused" msgstr "diavetítés szünetel" -#: ../src/views/slideshow.c:648 ../src/views/slideshow.c:655 +#: ../src/views/slideshow.c:686 ../src/views/slideshow.c:696 #, c-format msgid "slideshow delay set to %d second" msgid_plural "slideshow delay set to %d seconds" msgstr[0] "diavetítés késleltetés beállítva %d másodpercre" msgstr[1] "diavetítés késleltetés beállítva %d másodpercre" -#: ../src/views/slideshow.c:684 +#: ../src/views/slideshow.c:728 msgid "start and stop" msgstr "indítás és leállítás" -#: ../src/views/slideshow.c:685 +#: ../src/views/slideshow.c:730 msgid "exit slideshow" msgstr "kilépés a diavetítésből" -#: ../src/views/slideshow.c:688 +#: ../src/views/slideshow.c:734 msgid "slow down" msgstr "lassítás" -#: ../src/views/slideshow.c:691 +#: ../src/views/slideshow.c:738 msgid "speed up" msgstr "gyorsítás" -#: ../src/views/slideshow.c:695 +#: ../src/views/slideshow.c:743 msgid "step forward" msgstr "előre lépés" -#: ../src/views/slideshow.c:696 +#: ../src/views/slideshow.c:745 msgid "step back" msgstr "vissza lépés" -#: ../src/views/slideshow.c:702 +#: ../src/views/slideshow.c:753 msgid "go to next image" msgstr "váltás a következő képre" -#: ../src/views/slideshow.c:703 +#: ../src/views/slideshow.c:755 msgid "go to previous image" msgstr "váltás az előző képre" @@ -25155,52 +25848,661 @@ msgid "no camera with tethering support available for use..." msgstr "nem áll rendelkezésre tetheringet támogató fényképező…" -#: ../src/views/view.c:1193 +#: ../src/views/view.c:1352 msgid "left click" msgstr "bal klikk" -#: ../src/views/view.c:1196 +#: ../src/views/view.c:1355 msgid "right click" msgstr "jobb klikk" -#: ../src/views/view.c:1199 +#: ../src/views/view.c:1358 msgid "middle click" msgstr "középső klikk" -#: ../src/views/view.c:1205 +#: ../src/views/view.c:1364 msgid "left double-click" msgstr "dupla bal klikk" -#: ../src/views/view.c:1208 +#: ../src/views/view.c:1367 msgid "right double-click" msgstr "dupla jobb klikk" -#: ../src/views/view.c:1211 +#: ../src/views/view.c:1370 msgid "drag and drop" msgstr "fogd és vidd" -#: ../src/views/view.c:1214 +#: ../src/views/view.c:1373 msgid "left click+drag" msgstr "bal klikk+húzás" -#: ../src/views/view.c:1217 +#: ../src/views/view.c:1376 msgid "right click+drag" msgstr "jobb klikk+húzás" -#: ../src/views/view.c:1237 +#: ../src/views/view.c:1398 msgid "darktable - accels window" msgstr "darktable – gyorsbillentyű ablak" -#: ../src/views/view.c:1285 +#: ../src/views/view.c:1447 msgid "switch to a classic window which will stay open after key release" msgstr "" "váltás klasszikus ablakra, ami nyitva marad a billentyű felengedése után is" #. we add the mouse actions too -#: ../src/views/view.c:1344 +#: ../src/views/view.c:1514 msgid "mouse actions" msgstr "egérműveletek" +#~ msgctxt "preferences" +#~ msgid "nothing" +#~ msgstr "semmi" + +#~ msgctxt "preferences" +#~ msgid "memory size" +#~ msgstr "memória mérete" + +#~ msgctxt "preferences" +#~ msgid "memory transfer" +#~ msgstr "memóriaátvitel" + +#~ msgctxt "preferences" +#~ msgid "memory size and transfer" +#~ msgstr "memóriaméret és -átvitel" + +#~ msgctxt "preferences" +#~ msgid "id" +#~ msgstr "id" + +#~ msgctxt "preferences" +#~ msgid "folder" +#~ msgstr "könyvtár" + +#~ msgid "ignore JPEG images" +#~ msgstr "JPEG fájlok figyelmen kívül hagyása" + +#~ msgid "" +#~ "when having raw+JPEG images together in one directory it makes no sense " +#~ "to import both. with this flag one can ignore all JPEGs found." +#~ msgstr "" +#~ "ha egy könyvtárban raw+JPEG fájlok együtt találhatóak, nincs értelme " +#~ "mindkettőt importálni. ezzel a beállítással a JPEG-ek figyelmen kívül " +#~ "hagyhatóak." + +#~ msgid "CPU / GPU / memory" +#~ msgstr "CPU / GPU / memória" + +#~ msgid "tune OpenCL performance" +#~ msgstr "OpenCL-teljesítmény finomhangolása" + +#~ msgid "" +#~ "allows runtime tuning of OpenCL devices:\n" +#~ " - 'memory size': uses a fixed headroom (400MB as default),\n" +#~ " - 'memory transfer': tries a faster memory access mode (pinned memory) " +#~ "used for tiling." +#~ msgstr "" +#~ "lehetővé teszi az OpenCL-eszközök futásidejű hangolását:\n" +#~ "– „memóriaméret”: fix méretű szabad mozgásteret használ (alapértelmezés " +#~ "szerint 400 MB),\n" +#~ "– „memóriaátvitel”: a csempézéshez egy gyorsabb memóriaelérési módot " +#~ "(rögzített memória) próbál meg." + +#~ msgid "write sidecar file for each image" +#~ msgstr "kísérőfájl mentése az egyes fájlokhoz" + +#~ msgid "" +#~ "the sidecar files hold information about all your development steps to " +#~ "allow flawless re-importing of image files.\n" +#~ "\n" +#~ "depending on the selected mode sidecar files will be written:\n" +#~ " - 'never'\n" +#~ " - 'on import': immediately after importing the image\n" +#~ " - 'after edit': after any user change on the image." +#~ msgstr "" +#~ "a kísérőfájlok információkat tartalmaznak az összes kidolgozási lépésről, " +#~ "hogy lehetővé tegyék a képfájlok hibátlan újraimportálását.\n" +#~ "\n" +#~ "a kiválasztott módtól függően a kísérőfájlok ki lesznek írva:\n" +#~ " – „soha”\n" +#~ " – „importálásnál”: rögtön a kép importálása után\n" +#~ " – „szerkesztés után”: bármilyen képen végzett módosítás után" + +#~ msgid "" +#~ "when creating XMP file the hierarchical tags are also added as a simple " +#~ "list\n" +#~ "of non-hierarchical ones to make them visible to some other programs.\n" +#~ "when this option is checked darktable will only include their last part\n" +#~ "and ignore the rest. so 'foo|bar|baz' will only add 'baz'." +#~ msgstr "" +#~ "XMP fájl készítésekor a hierarchikus címkék is belekerülnek egyszerű,\n" +#~ "nem hierarchikus listaként, hogy láthatóak legyenek más programokban.\n" +#~ "ha ez az opció engedélyezve van, a darktable csak az utolsó szintet teszi " +#~ "bele,\n" +#~ "és a többit mellőzi. például a „foo|bar|baz” egyszerűen „baz” lesz." + +#~ msgid "" +#~ "where multiple module instances are present, these preferences control " +#~ "rules that are applied (in order) to decide which module instance " +#~ "shortcuts will be applied to" +#~ msgstr "" +#~ "ahol több modulpéldány van jelen, ezek a beállítások vezérlik azokat a " +#~ "szabályokat, amelyek (sorrendben) meghatározzák, hogy mely modulpéldányok " +#~ "gyorsbillentyűi legyenek alkalmazva" + +#~ msgid "" +#~ "if an instance of the module has focus, apply shortcut to that instance\n" +#~ "note: blending shortcuts always apply to the focused instance" +#~ msgstr "" +#~ "ha a modul egy példánya fókuszban van, a gyorsbillentyűt azon a példányon " +#~ "hajtsa végre.\n" +#~ "megjegyzés: a keverési gyorsbillentyűk mindig a fókuszált példányra " +#~ "vonatkoznak" + +#~ msgid "distortion fine-tune" +#~ msgstr "TCA vörös finomhangolása" + +#~ msgid "vignetting fine-tune" +#~ msgstr "peremsötétedés finomhangolása" + +#~ msgid "TCA red fine-tune" +#~ msgstr "TCA vörös finomhangolása" + +#~ msgid "TCA blue fine-tune" +#~ msgstr "TCA kék finomhangolása" + +#~ msgid "show this information again" +#~ msgstr "mutassa ezt az információt újra" + +#~ msgid "understood" +#~ msgstr "megértettem" + +#~ msgid "" +#~ "instead you will find 'per device' data in 'cl_device_v4_canonical-name'. " +#~ "content is:" +#~ msgstr "" +#~ "helyettük a „per device” adatot keresse a „cl_device_v4_canonical-name” " +#~ "alatt. a tartalma:" + +#~ msgid "" +#~ " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " +#~ "'eventhandles' 'async' 'disable' 'magic'" +#~ msgstr "" +#~ " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " +#~ "'eventhandles' 'async' 'disable' 'magic'" + +#~ msgid "delete database lock files" +#~ msgstr "adatbáziszárolási fájlok törlése" + +#~ msgid "close darktable" +#~ msgstr "darktable bezárása" + +#~ msgid "upgrade database" +#~ msgstr "adatbázis frissítése" + +#~ msgid "attempt restore" +#~ msgstr "visszaállítás megkísérlése" + +#~ msgid "delete database" +#~ msgstr "adatbázis törlése" + +#~ msgid "tiff" +#~ msgstr "tiff" + +#~ msgid "png" +#~ msgstr "png" + +#~ msgid "j2k" +#~ msgstr "j2k" + +#~ msgid "jpeg" +#~ msgstr "jpeg" + +#~ msgid "exr" +#~ msgstr "exr" + +#~ msgid "rgbe" +#~ msgstr "rgbe" + +#~ msgid "pfm" +#~ msgstr "pfm" + +#~ msgid "rawspeed" +#~ msgstr "rawspeed\t" + +#~ msgid "netpnm" +#~ msgstr "netpnm" + +#~ msgid "avif" +#~ msgstr "avif" + +#~ msgid "heif" +#~ msgstr "heif" + +#~ msgid "libraw" +#~ msgstr "libraw" + +#~ msgid "webp" +#~ msgstr "webp" + +#~ msgid "jpeg xl" +#~ msgstr "jpeg xl" + +#~ msgid "" +#~ "due to a slow GPU hardware acceleration using OpenCL has been deactivated" +#~ msgstr "a lassú GPU miatt a hardveresen gyorsított OpenCL le lett tiltva" + +#~ msgid "" +#~ "multiple GPUs detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "több GPU észlelve – az OpenCL ütemezési profil ennek megfelelően lett " +#~ "beállítva" + +#~ msgid "" +#~ "very fast GPU detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "nagyon gyors GPU észlelve – az OpenCL ütemezési profil ennek megfelelően " +#~ "lett beállítva" + +#~ msgid "OpenCL scheduling profile set to default" +#~ msgstr "OpenCL ütemezési profil alapértelmezettre állítva" + +#~ msgid "module duplicate, can't move new instance after the base one\n" +#~ msgstr "" +#~ "duplikált modul, az új példányt nem lehet az alapul szolgáló mögé " +#~ "mozgatni\n" + +#~ msgid "" +#~ "darktable discovered problems with your OpenCL setup; disabling OpenCL " +#~ "for this session!" +#~ msgstr "" +#~ "a darktable problémát észlelt a rendszer OpenCL konfigurációjában. OpenCL " +#~ "letiltva erre a munkamenetre!" + +#, c-format +#~ msgid "tiling failed for module '%s'. output might be garbled." +#~ msgstr "" +#~ "csempézés a(z) „%s” modul számára sikertelen. a kimenet csonka lehet." + +#~ msgid "active view" +#~ msgstr "nézet aktiválása" + +#~ msgid "other views" +#~ msgstr "egyéb nézetek" + +#~ msgid "no-op" +#~ msgstr "nincs-művelet" + +#~ msgid "help url opened in web browser" +#~ msgstr "súgó url megnyitva a böngészőben" + +#~ msgid "error while opening help url in web browser" +#~ msgstr "hiba történt a súgó url böngészőben megnyitása közben" + +#~ msgid "RGB colors" +#~ msgstr "RGB-színek" + +#~ msgid "grayscale" +#~ msgstr "szürkeárnyalatos" + +#~ msgid "" +#~ "tile an image into segments.\n" +#~ "\n" +#~ "makes encoding faster. the impact on quality reduction is negligible, but " +#~ "increases the file size." +#~ msgstr "" +#~ "egy kép csempézése szeletekre.\n" +#~ "\n" +#~ "gyorsítja a kódolást. hatása a minőségromlásra elhanyagolható, viszont " +#~ "növeli a fájlméretet." + +#~ msgid "compression type" +#~ msgstr "tömörítés típusa" + +#~ msgid "" +#~ "the quality of an image, less quality means fewer details.\n" +#~ "\n" +#~ "the following applies only to lossy setting\n" +#~ "\n" +#~ "pixelformat based on quality:\n" +#~ "\n" +#~ " 91% - 100% -> YUV444\n" +#~ " 81% - 90% -> YUV422\n" +#~ " 5% - 80% -> YUV420\n" +#~ msgstr "" +#~ "a kép minősége, alacsonyabb minőség kevesebb részletet eredményez.\n" +#~ "\n" +#~ "az alábbiak csak a veszteséges beállításokra érvényesek\n" +#~ "\n" +#~ "minőségen alapuló pixelformátum:\n" +#~ "\n" +#~ " 91% – 100% -> YUV444\n" +#~ " 81% – 90% -> YUV422\n" +#~ " 5% – 80% -> YUV420\n" + +#~ msgid "jp2" +#~ msgstr "jp2" + +#~ msgid "will export as a grayscale image" +#~ msgstr "szürkeárnyalatos képként fog exportálni" + +#~ msgid "b&w image" +#~ msgstr "b&w kép" + +#~ msgid "write RGB colors" +#~ msgstr "RGB színek írása" + +#~ msgid "write grayscale" +#~ msgstr "szürkeárnyalatos" + +#~ msgid "" +#~ "the server name\n" +#~ "default protocol is https\n" +#~ "specify http:// if non secure server" +#~ msgstr "" +#~ "a szervernév\n" +#~ "alapértelmezett protokoll a https\n" +#~ "ha nem biztonságos a szerver, így adja meg: http://" + +#, c-format +#~ msgid "rotation adjusted by %3.1f° to %3.1f°" +#~ msgstr "forgatás igazítva %3.1f°-al %3.1f°-ra" + +#~ msgid "size of the border in percent of the full image" +#~ msgstr "a szegély mérete százalékban, a teljes képhez viszonyítva" + +#~ msgid "" +#~ "select the aspect ratio (right click on slider below to type your own w:h)" +#~ msgstr "" +#~ "válasszon oldalarányt (a csúszkára jobb gombbal kattintva is megadhatja " +#~ "sz:m formában)" + +#~ msgid "set the custom aspect ratio (right click to enter number or w:h)" +#~ msgstr "" +#~ "adjon meg egyéni oldalarányt (jobb klikkel megadhatja sz:m formában)" + +#~ msgid "" +#~ "select the horizontal position ratio relative to top or right click and " +#~ "type your own (y:h)" +#~ msgstr "" +#~ "a vízszintes pozíció kiválasztása a tetejéhez viszonyítva, vagy megadható " +#~ "jobb kattintás után kézzel (y:m)" + +#~ msgid "" +#~ "select the vertical position ratio relative to left or right click and " +#~ "type your own (x:w)" +#~ msgstr "" +#~ "a függőleges pozíció kiválasztása a bal szélhez viszonyítva, vagy " +#~ "megadható jobb kattintás után kézzel (x:sz)" + +#~ msgid "" +#~ "automatic chromatic aberration correction\n" +#~ "only for Bayer raw files" +#~ msgstr "" +#~ "kromatikus aberráció automatikus javítása\n" +#~ "csak raw Bayer fájlokhoz" + +#~ msgid "" +#~ "you have 2 instances or more of color calibration,\n" +#~ "all performing chromatic adaptation.\n" +#~ "this can lead to inconsistencies, unless you\n" +#~ "use them with masks or know what you are doing." +#~ msgstr "" +#~ "a színkalibrációból 2, vagy több példány van,\n" +#~ "és mindegyik kromatikus átdolgozást hajt végre.\n" +#~ "ez inkonzisztenciához vezethet, amennyiben maszkok\n" +#~ "nélkül használja, vagy nincs tisztában azzal, amit csinál." + +#~ msgid "spot color mapping" +#~ msgstr "folt-színleképezés" + +#~ msgid "spot mode" +#~ msgstr "foltmód" + +#~ msgid "dithering|posterization|reduce bit-depth" +#~ msgstr "szétszórás|poszterizálás|bitmélység csökkentése" + +#~ msgid "spot exposure mapping" +#~ msgstr "folt-expozícióleképezés" + +#~ msgid "" +#~ "enlarge or shrink the computed dynamic range.\n" +#~ "useful in conjunction with \"auto tune levels\"." +#~ msgstr "" +#~ "a számított dinamikatartomány bővítése vagy zsugorítása.\n" +#~ "a „szintek automatikus hangolásával” összefüggésben hasznos." + +#~ msgid "" +#~ "symmetrically enlarge or shrink the computed dynamic range.\n" +#~ "useful to give a safety margin to extreme luminances." +#~ msgstr "" +#~ "szimmetrikusan bővíti vagy zsugorítja a számított dinamikatartományt.\n" +#~ "extrém fénysűrűségnél biztonságos keretet tud adni." + +#, no-c-format +#~ msgid "" +#~ "decide which reconstruction strategy to favor,\n" +#~ "between inpainting a smooth color gradient,\n" +#~ "or trying to recover the textured details.\n" +#~ "0% is an equal mix of both.\n" +#~ "increase if at least one RGB channel is not clipped.\n" +#~ "decrease if all RGB channels are clipped over large areas." +#~ msgstr "" +#~ "döntse el, melyik rekonstrukciós stratégiát részesíti előnyben,\n" +#~ "a simított színátmenet restaurálás\n" +#~ "és a texturált részletek visszaállítására tett kísérlet között.\n" +#~ "a 0% a kettő egyenlő arányú keveréke.\n" +#~ "növelje, ha legalább egy RGB csatorna nincs levágva.\n" +#~ "csökkentse, ha az összes RGB csatorna nagyobb területen le van vágva." + +#, no-c-format +#~ msgid "" +#~ "decide which reconstruction strategy to favor,\n" +#~ "between blooming highlights like film does,\n" +#~ "or trying to recover sharp details.\n" +#~ "0% is an equal mix of both.\n" +#~ "increase if you want more details.\n" +#~ "decrease if you want more blur." +#~ msgstr "" +#~ "döntse el, melyik rekonstrukciós stratégiát részesíti előnyben,\n" +#~ "a filmnél ismert csúcsfény bloom\n" +#~ "és az éles részletek visszaállítására tett kísérlet között.\n" +#~ "a 0% a kettő egyenlő arányú keveréke.\n" +#~ "növelje, ha több részletet szeretne.\n" +#~ "csökkentse, ha erősebb elmosást szeretne." + +#, no-c-format +#~ msgid "" +#~ "decide which reconstruction strategy to favor,\n" +#~ "between recovering monochromatic highlights,\n" +#~ "or trying to recover colorful highlights.\n" +#~ "0% is an equal mix of both.\n" +#~ "increase if you want more color.\n" +#~ "decrease if you see magenta or out-of-gamut highlights." +#~ msgstr "" +#~ "döntse el, melyik rekonstrukciós stratégiát részesíti előnyben,\n" +#~ "a monokróm csúcsfények visszaállítása\n" +#~ "és a tarka csúcsfények visszaállítására tett kísérlet között.\n" +#~ "a 0% a kettő egyenlő arányú keveréke.\n" +#~ "növelje, ha több színt szeretne.\n" +#~ "csökkentse, ha bíborszínű, vagy gamuton kívüli csúcsfényeket lát." + +#~ msgid "" +#~ "manually adjust the clipping threshold mostly used against magenta " +#~ "highlights\n" +#~ "the mask icon shows the clipped areas.\n" +#~ "you might use this for tuning 'laplacian', 'inpaint opposed' or " +#~ "'segmentation' modes,\n" +#~ "especially if camera white point is incorrect." +#~ msgstr "" +#~ "manuálisan állítja a vágási küszöböt, amelyet többnyire a bíbor " +#~ "csúcsfények ellen használnak\n" +#~ "a maszk ikon megmutatja a levágott területeket.\n" +#~ "használható a „Laplace”, „ellentétes befestése” és „szakaszolás” módok " +#~ "finomhangolására,\n" +#~ "különösen, ha a kamera fehérpontja nem megfelelő." + +#~ msgid "" +#~ "combine closely related clipped segments by morphological operations.\n" +#~ "the mask button shows the exact positions of resulting segment borders." +#~ msgstr "" +#~ "morfológiai műveletekkel kombinálja a szorosan összefüggő vágott " +#~ "szakaszokat.\n" +#~ "a maszk gomb az eredményül kapott szegmensek szegélyeinek pontos " +#~ "helyzetét mutatja." + +#~ msgid "" +#~ "select inpainting after segmentation analysis.\n" +#~ "increase to favour candidates found in segmentation analysis, decrease " +#~ "for opposed means inpainting.\n" +#~ "the mask button shows segments that are considered to have a good " +#~ "candidate." +#~ msgstr "" +#~ "befestés választása a szakaszolási elemzés után.\n" +#~ "növelje a szakaszolási elemzés során talált jelöltek preferálásához, az " +#~ "ellentétesek csökkentése befestést eredményez.\n" +#~ "a maszk gomb azokat a szakaszokat jeleníti meg, amelyek jó jelöltnek " +#~ "lettek elkönyvelve." + +#~ msgid "" +#~ "set strength of rebuilding in regions with all photosites clipped.\n" +#~ "the mask buttons shows the effect that is added to already reconstructed " +#~ "data." +#~ msgstr "" +#~ "állítsa be a csak levágott photosite-okat tartalmazó régiók " +#~ "újjáépítésének erősségét\n" +#~ "a maszk gombok a már rekonstruált adatokhoz hozzáadott hatást mutatják." + +#~ msgid "this module only works with non-monochrome RAW and sRAW" +#~ msgstr "ez a modul csak nem monokróm RAW és sRAW képekkel működik" + +#, c-format +#~ msgid "png bit-depth %d not supported" +#~ msgstr "%d png bitmélység nem támogatott" + +#~ msgid "DOMAIN MIN <> 0.0 is not supported" +#~ msgstr "DOMAIN MIN <> 0.0 nem támogatott" + +#~ msgid "DOMAIN MAX <> 1.0 is not supported" +#~ msgstr "DOMAIN MAX <> 1.0 nem támogatott" + +#~ msgid "" +#~ "enlarge or shrink the computed dynamic range\n" +#~ "this is useful when noise perturbates the measurements" +#~ msgstr "" +#~ "bővítés vagy zsugorítás a számított dinamikatartományhoz\n" +#~ "akkor hasznos, ha a zaj zavarja a mérést" + +#~ msgid "" +#~ "the color calibration module is enabled,\n" +#~ "and performing chromatic adaptation.\n" +#~ "set the white balance here to camera reference (D65)\n" +#~ "or disable chromatic adaptation in color calibration." +#~ msgstr "" +#~ "a színkalibrációs modul engedélyezve van\n" +#~ "és kromatikus adaptálást végez.\n" +#~ "állítsa a fehéregyensúlyt itt fényképező referencia (D65)-re,\n" +#~ "vagy tiltsa le a kromatikus adaptálást a színkalibráció modulban." + +#~ msgid "" +#~ "tone equalizer needs to be after distortion modules in the pipeline – " +#~ "disabled" +#~ msgstr "" +#~ "a tónus equalizer később kell legyen a feldolgozási sorban, mint a " +#~ "torzítás. letiltva" + +#~ msgid "" +#~ "scaling is done relative to this object\n" +#~ "• image: fits marker into whole image\n" +#~ "• larger border: fits larger marker border to larger image border\n" +#~ "• smaller border: fits larger marker border to smaller image border\n" +#~ "• height: fits marker height to image height, e.g. suitable for texts\n" +#~ "• advanced options: activates two additional drop-down menus" +#~ msgstr "" +#~ "a skálázás ezen objektumhoz viszonyítva történik\n" +#~ "• kép: a jelölőt a teljes képbe illeszti\n" +#~ "• hosszabb szegély: a jelölő hosszabb szegélyt a kép hosszabb szegélyéhez " +#~ "illeszti\n" +#~ "• rövidebb szegély: a jelölő rövidebb szegélyt a kép rövidebb szegélyéhez " +#~ "illeszti\n" +#~ "• magasság: a jelölő magasságát a kép magasságához illeszti, pl. " +#~ "szövegeknél hasznos\n" +#~ "• speciális beállítások: további két legördülő menüt kapcsol be" + +#~ msgid "reference to which the marker should be scaled to" +#~ msgstr "amihez a jelölőt méretezni kell" + +#~ msgid "length of the marker which is used as scaling reference" +#~ msgstr "a méretezés alapjául szolgáló jelölő hossza" + +#~ msgid "save" +#~ msgstr "mentés" + +#~ msgid "add" +#~ msgstr "hozzáad" + +#~ msgid "only" +#~ msgstr "csak" + +#~ msgid "selected image[s]" +#~ msgstr "kijelölt kép(ek)" + +#~ msgid "hardness (relative)" +#~ msgstr "keménység (relatív)" + +#~ msgid "hardness (absolute)" +#~ msgstr "keménység (abszolút)" + +#~ msgid "opacity (relative)" +#~ msgstr "átlátszatlanság (relatív)" + +#~ msgid "opacity (absolute)" +#~ msgstr "átlátszatlanság (abszolút)" + +#~ msgid "brush size (relative)" +#~ msgstr "ecsetméret (relatív)" + +#~ msgid "low" +#~ msgstr "alacsony" + +#~ msgid "medium" +#~ msgstr "közepes" + +#~ msgid "high" +#~ msgstr "magas" + +#~ msgid "" +#~ "pen pressure control for brush masks\n" +#~ "'off': pressure reading ignored,\n" +#~ "'hardness'/'opacity'/'brush size': pressure reading controls specified " +#~ "attribute,\n" +#~ "'absolute'/'relative': pressure reading is taken directly as attribute " +#~ "value or multiplied with pre-defined setting." +#~ msgstr "" +#~ "az ecsetmaszk tollnyomásának kezelése\n" +#~ "„ki”: a nyomás figyelmen kívül hagyása,\n" +#~ "„keménység”/„átlátszatlanság”/„ecsetméret”: a nyomás a megadott " +#~ "attribútumot vezérli,\n" +#~ "„abszolút”/„relatív”: a nyomásértékből közvetlenül attribútumérték lesz, " +#~ "vagy megszorozva egy előre beállított értékkel." + +#~ msgid "" +#~ "smoothing of brush strokes\n" +#~ "stronger smoothing leads to fewer nodes and easier editing but with lower " +#~ "control of accuracy." +#~ msgstr "" +#~ "ecsetvonások simításának mértéke\n" +#~ "erősebb simítás kevesebb pontot és könnyebb szerkeszthetőséget " +#~ "eredményez, de a pontosság kevésbé kontrollálható." + +#~ msgid "<leave unchanged>" +#~ msgstr "<változatlanul hagy>" + +#, c-format +#~ msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" +#~ msgstr "%.1f mm (megfelel %.1f mm FF-nek, crop %.1f)" + #~ msgid "" #~ "size categories are used to be able to set different overlays and CSS " #~ "values depending of the size of the thumbnail, separated by |.\n" diff -Nru darktable-4.4.2/po/it.po darktable-4.6.1/po/it.po --- darktable-4.4.2/po/it.po 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/po/it.po 2024-02-16 17:31:09.000000000 +0000 @@ -0,0 +1,26303 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Matteo Mardegan <11093569+mmardegan@users.noreply.github.com>, 2023. +# Luca Cignoni <cigno5@users.noreply.github.com>, 2023. +# Fabio Sirna <fabio@fabiosirna.com>, 2023. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-13 22:39+0100\n" +"PO-Revision-Date: 2023-12-14 12:17+0100\n" +"Last-Translator: Fabio Sirna <fabio@fabiosirna.com>\n" +"Language-Team: Italian <kde-i18n-doc@kde.org>\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 22.04.3\n" + +#: ../build/bin/conf_gen.h:174 +msgctxt "preferences" +msgid "first instance" +msgstr "Prima istanza" + +#: ../build/bin/conf_gen.h:175 ../build/bin/preferences_gen.h:7923 +msgctxt "preferences" +msgid "last instance" +msgstr "Ultima istanza" + +#: ../build/bin/conf_gen.h:252 ../build/bin/conf_gen.h:352 +#: ../build/bin/conf_gen.h:362 ../build/bin/conf_gen.h:1239 +#: ../build/bin/conf_gen.h:1255 ../build/bin/conf_gen.h:1275 +#: ../build/bin/preferences_gen.h:4748 ../build/bin/preferences_gen.h:4886 +msgctxt "preferences" +msgid "never" +msgstr "Mai" + +#: ../build/bin/conf_gen.h:253 +msgctxt "preferences" +msgid "once a month" +msgstr "Mensilmente" + +#: ../build/bin/conf_gen.h:254 ../build/bin/preferences_gen.h:7139 +msgctxt "preferences" +msgid "once a week" +msgstr "Settimanalmente" + +#: ../build/bin/conf_gen.h:255 +msgctxt "preferences" +msgid "once a day" +msgstr "Quotidianamente" + +#: ../build/bin/conf_gen.h:256 +msgctxt "preferences" +msgid "on close" +msgstr "Alla chiusura" + +#: ../build/bin/conf_gen.h:292 ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1248 ../build/bin/conf_gen.h:1276 +msgctxt "preferences" +msgid "small" +msgstr "Piccola" + +#: ../build/bin/conf_gen.h:293 ../build/bin/conf_gen.h:405 +#: ../build/bin/preferences_gen.h:6103 ../build/bin/preferences_gen.h:6224 +msgctxt "preferences" +msgid "default" +msgstr "Predefinito" + +#: ../build/bin/conf_gen.h:294 ../build/bin/conf_gen.h:2904 +msgctxt "preferences" +msgid "large" +msgstr "grande" + +#: ../build/bin/conf_gen.h:295 +msgctxt "preferences" +msgid "unrestricted" +msgstr "illimitato" + +#: ../build/bin/conf_gen.h:353 +msgctxt "preferences" +msgid "after edit" +msgstr "Dopo modifica" + +#: ../build/bin/conf_gen.h:354 ../build/bin/preferences_gen.h:7225 +msgctxt "preferences" +msgid "on import" +msgstr "Su importa" + +#: ../build/bin/conf_gen.h:363 ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1247 ../build/bin/conf_gen.h:3300 +#: ../build/bin/preferences_gen.h:5645 +msgctxt "preferences" +msgid "always" +msgstr "Sempre" + +#: ../build/bin/conf_gen.h:364 ../build/bin/preferences_gen.h:7260 +msgctxt "preferences" +msgid "only large entries" +msgstr "Solo quelli grandi" + +#: ../build/bin/conf_gen.h:390 +msgctxt "preferences" +msgid "sensitive" +msgstr "Sensibile" + +#: ../build/bin/conf_gen.h:391 ../build/bin/preferences_gen.h:8134 +msgctxt "preferences" +msgid "insensitive" +msgstr "Intensivo" + +#: ../build/bin/conf_gen.h:406 +msgctxt "preferences" +msgid "multiple GPUs" +msgstr "GPUs multiple" + +#: ../build/bin/conf_gen.h:407 +msgctxt "preferences" +msgid "very fast GPU" +msgstr "GPU molto veloce" + +#: ../build/bin/conf_gen.h:755 ../build/bin/preferences_gen.h:8293 +msgctxt "preferences" +msgid "import time" +msgstr "Orario d'importazione" + +#: ../build/bin/conf_gen.h:756 +msgctxt "preferences" +msgid "folder name" +msgstr "Nome cartella" + +#: ../build/bin/conf_gen.h:770 +msgctxt "preferences" +msgid "RGB" +msgstr "RGB" + +#: ../build/bin/conf_gen.h:771 +msgctxt "preferences" +msgid "Lab" +msgstr "Lab" + +#: ../build/bin/conf_gen.h:772 +msgctxt "preferences" +msgid "LCh" +msgstr "LCh" + +#: ../build/bin/conf_gen.h:773 +msgctxt "preferences" +msgid "HSL" +msgstr "HSL" + +#: ../build/bin/conf_gen.h:774 +msgctxt "preferences" +msgid "Hex" +msgstr "Hex" + +#: ../build/bin/conf_gen.h:775 ../build/bin/conf_gen.h:1916 +#: ../build/bin/conf_gen.h:2578 ../build/bin/conf_gen.h:2880 +#: ../build/bin/conf_gen.h:3136 +msgctxt "preferences" +msgid "none" +msgstr "Nessuno" + +#: ../build/bin/conf_gen.h:783 +msgctxt "preferences" +msgid "mean" +msgstr "Medio" + +#: ../build/bin/conf_gen.h:784 +msgctxt "preferences" +msgid "min" +msgstr "Min" + +#: ../build/bin/conf_gen.h:785 +msgctxt "preferences" +msgid "max" +msgstr "Max" + +#: ../build/bin/conf_gen.h:973 +msgid "select only new pictures" +msgstr "Seleziona solo le nuove immagini" + +#: ../build/bin/conf_gen.h:974 +msgid "only select images that have not already been imported" +msgstr "Solo le immagini selezionate che non sono ancora state importate" + +#: ../build/bin/conf_gen.h:979 +msgid "ignore non-raw images" +msgstr "Ignora le immagini non RAW" + +#: ../build/bin/conf_gen.h:980 +msgid "" +"if enabled, only raw files will be allowed to import. non-raw files will not " +"be visible in the dialog and will not be imported." +msgstr "" +"se abilitato, solo i file RAW possono essere importati. I file non RAW non " +"saranno visibili nella finsestra di dialogo e non verranno importati" + +#: ../build/bin/conf_gen.h:985 +msgid "apply metadata" +msgstr "Applica metadati" + +#: ../build/bin/conf_gen.h:986 +msgid "apply some metadata to all newly imported images." +msgstr "Applica alcuni metadati a tutte le immagini appena importate." + +#: ../build/bin/conf_gen.h:991 +msgid "recursive directory" +msgstr "Cartelle ricorsive" + +#: ../build/bin/conf_gen.h:992 +msgid "recursive directory traversal when importing filmrolls" +msgstr "Cartelle ricorsive trasversali quanto importi i rullini" + +#: ../build/bin/conf_gen.h:997 +msgid "creator to be applied when importing" +msgstr "Autore da assegnare al momento dell'importazione" + +#: ../build/bin/conf_gen.h:1003 +msgid "publisher to be applied when importing" +msgstr "Editore da assegnare durante l'importazione" + +#: ../build/bin/conf_gen.h:1009 +msgid "rights to be applied when importing" +msgstr "Diritti da assegnare durante l'importazione" + +#: ../build/bin/conf_gen.h:1015 +msgid "comma separated tags to be applied when importing" +msgstr "Etichette, separate da virgola, da assegnare durante l'importazione" + +#: ../build/bin/conf_gen.h:1021 +msgid "import tags from XMP" +msgstr "Importa le etichette dal file XMP" + +#: ../build/bin/conf_gen.h:1051 +msgid "initial rating" +msgstr "Valutazione iniziale" + +#: ../build/bin/conf_gen.h:1052 +msgid "initial star rating for all images when importing a filmroll" +msgstr "Valutazione iniziale di tutte le immagini quando importi un rullino" + +#: ../build/bin/conf_gen.h:1057 +msgid "ignore EXIF rating" +msgstr "Ignora la valutazione dell'EXIF" + +#: ../build/bin/conf_gen.h:1058 +msgid "" +"ignore EXIF rating. if not set and EXIF rating is found, it overrides " +"'initial rating'" +msgstr "" +"Ignora la valutazione dell'EXIF. Se non è selezionato e viene trovata la " +"valutazione EXIF, sovrascrive la 'valutazione iniziale'" + +#: ../build/bin/conf_gen.h:1063 +msgid "import job" +msgstr "Importa lavoro" + +#: ../build/bin/conf_gen.h:1064 +msgid "name of the import job" +msgstr "Nome del lavoro importato" + +#: ../build/bin/conf_gen.h:1069 +msgid "override today's date" +msgstr "Sovrascrivi la data odierna" + +#: ../build/bin/conf_gen.h:1070 +msgid "" +"type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override " +"the current date/time used when expanding variables:\n" +"$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS), $(MSEC).\n" +"let the field empty otherwise" +msgstr "" +"Inserisci una data nel formato YYYY:MM:DD[ hh:mm:ss[.sss]] se vuoi " +"sovrascrivere la data/ora corrente quando si espandono le variabili:\n" +"$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS), $(MSEC).\n" +"Altrimenti lascia vuoti i campi" + +#: ../build/bin/conf_gen.h:1075 +msgid "keep this window open" +msgstr "Mantieni questa finestra aperta" + +#: ../build/bin/conf_gen.h:1076 +msgid "keep this window open to run several imports" +msgstr "Mantieni questa finestra aperta per avviare diverse importazioni" + +#: ../build/bin/conf_gen.h:1233 ../build/bin/conf_gen.h:1249 +#: ../build/bin/conf_gen.h:1277 +msgctxt "preferences" +msgid "VGA" +msgstr "VGA" + +#: ../build/bin/conf_gen.h:1234 ../build/bin/conf_gen.h:1250 +#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4783 +msgctxt "preferences" +msgid "720p" +msgstr "720p" + +#: ../build/bin/conf_gen.h:1235 ../build/bin/conf_gen.h:1251 +#: ../build/bin/conf_gen.h:1279 +msgctxt "preferences" +msgid "1080p" +msgstr "1080p" + +#: ../build/bin/conf_gen.h:1236 ../build/bin/conf_gen.h:1252 +#: ../build/bin/conf_gen.h:1280 +msgctxt "preferences" +msgid "WQXGA" +msgstr "WQXGA" + +#: ../build/bin/conf_gen.h:1237 ../build/bin/conf_gen.h:1253 +#: ../build/bin/conf_gen.h:1281 +msgctxt "preferences" +msgid "4K" +msgstr "4K" + +#: ../build/bin/conf_gen.h:1238 ../build/bin/conf_gen.h:1254 +#: ../build/bin/conf_gen.h:1282 +msgctxt "preferences" +msgid "5K" +msgstr "5K" + +#: ../build/bin/conf_gen.h:1314 +msgctxt "preferences" +msgid "off" +msgstr "Disabilitato" + +#: ../build/bin/conf_gen.h:1315 +msgctxt "preferences" +msgid "hardness (relative)" +msgstr "Durezza (relativa)" + +#: ../build/bin/conf_gen.h:1316 +msgctxt "preferences" +msgid "hardness (absolute)" +msgstr "Durezza (assoluta)" + +#: ../build/bin/conf_gen.h:1317 +msgctxt "preferences" +msgid "opacity (relative)" +msgstr "Opacità (relativa)" + +#: ../build/bin/conf_gen.h:1318 +msgctxt "preferences" +msgid "opacity (absolute)" +msgstr "Opacità (assoluta)" + +#: ../build/bin/conf_gen.h:1319 +msgctxt "preferences" +msgid "brush size (relative)" +msgstr "Dimensione pennello (relativa)" + +#: ../build/bin/conf_gen.h:1327 +msgctxt "preferences" +msgid "low" +msgstr "Bassa" + +#: ../build/bin/conf_gen.h:1328 +msgctxt "preferences" +msgid "medium" +msgstr "Media" + +#: ../build/bin/conf_gen.h:1329 +msgctxt "preferences" +msgid "high" +msgstr "Alta" + +#: ../build/bin/conf_gen.h:1349 ../build/bin/preferences_gen.h:5406 +msgctxt "preferences" +msgid "false color" +msgstr "Colore falso" + +#: ../build/bin/conf_gen.h:1350 +msgctxt "preferences" +msgid "grayscale" +msgstr "Scala di grigio" + +#: ../build/bin/conf_gen.h:1364 +msgctxt "preferences" +msgid "top left" +msgstr "In alto a sinistra" + +#: ../build/bin/conf_gen.h:1365 +msgctxt "preferences" +msgid "top right" +msgstr "In alto a destra" + +#: ../build/bin/conf_gen.h:1366 +msgctxt "preferences" +msgid "top center" +msgstr "In alto al centro" + +#: ../build/bin/conf_gen.h:1367 ../build/bin/preferences_gen.h:5218 +msgctxt "preferences" +msgid "bottom" +msgstr "In basso" + +#: ../build/bin/conf_gen.h:1368 +msgctxt "preferences" +msgid "hidden" +msgstr "Nascosto" + +#: ../build/bin/conf_gen.h:1878 +msgid "show OSD" +msgstr "Mostra OSD" + +#: ../build/bin/conf_gen.h:1879 +msgid "toggle the visibility of the map overlays" +msgstr "Attiva o disattiva la visibilità della mappa sovrapposizioni" + +#: ../build/bin/conf_gen.h:1884 ../src/libs/map_settings.c:119 +msgid "filtered images" +msgstr "Immagini filtrate" + +#: ../build/bin/conf_gen.h:1885 +msgid "when set limit the images drawn to the current filmstrip" +msgstr "Se impostato, limita le immagini disegnate al rullino corrente" + +#: ../build/bin/conf_gen.h:1892 +msgid "max images" +msgstr "Immagini massime" + +#: ../build/bin/conf_gen.h:1893 +msgid "the maximum number of image thumbnails drawn on the map" +msgstr "Numero massimo di miniature riportate sulla mappa" + +#: ../build/bin/conf_gen.h:1900 +msgid "group size factor" +msgstr "Fattore dimensione gruppo" + +#: ../build/bin/conf_gen.h:1901 +msgid "" +"increase or decrease the spatial size of images groups on the map. can " +"influence the calculation time" +msgstr "" +"Aumenta o diminuisci la dimensione spaziale dei gruppi immagini sulla mappa. " +"Può influenzare il tempo di calcolo" + +#: ../build/bin/conf_gen.h:1908 +msgid "min images per group" +msgstr "Immagini min per gruppo" + +#: ../build/bin/conf_gen.h:1909 +msgid "" +"the minimum number of images to set up an images group. can influence the " +"calculation time." +msgstr "" +"Il numero minimo di immagini che compone un gruppo di immagini sulla mappa. " +"Può influenzare il tempo di calcolo." + +#: ../build/bin/conf_gen.h:1914 +msgctxt "preferences" +msgid "thumbnail" +msgstr "Miniatura" + +#: ../build/bin/conf_gen.h:1915 +msgctxt "preferences" +msgid "count" +msgstr "Calcolo" + +#: ../build/bin/conf_gen.h:1918 +msgid "thumbnail display" +msgstr "Visualizza miniature" + +#: ../build/bin/conf_gen.h:1919 +msgid "" +"three options are available: images thumbnails, only the count of images of " +"the group or nothing" +msgstr "" +"Sono disponibili tre opzioni: miniature immagini, solo il conto delle " +"immagini del gruppo o niente" + +#: ../build/bin/conf_gen.h:1930 +msgid "max polygon points" +msgstr "Punti massimi del poligono" + +#: ../build/bin/conf_gen.h:1931 +msgid "" +"limit the number of points imported with polygon in find location module" +msgstr "" +"Limita il numero di punti importati con il poligono nel modulo trova località" + +#: ../build/bin/conf_gen.h:2221 ../build/bin/preferences_gen.h:5330 +msgctxt "preferences" +msgid "original" +msgstr "Originale" + +#: ../build/bin/conf_gen.h:2222 +msgctxt "preferences" +msgid "to 1/2" +msgstr "1/2" + +#: ../build/bin/conf_gen.h:2223 +msgctxt "preferences" +msgid "to 1/3" +msgstr "1/3" + +#: ../build/bin/conf_gen.h:2224 +msgctxt "preferences" +msgid "to 1/4" +msgstr "1/4" + +#: ../build/bin/conf_gen.h:2244 ../build/bin/conf_gen.h:2254 +msgctxt "preferences" +msgid "bilinear" +msgstr "Bilineare" + +#: ../build/bin/conf_gen.h:2245 ../build/bin/conf_gen.h:2255 +#: ../build/bin/preferences_gen.h:5848 +msgctxt "preferences" +msgid "bicubic" +msgstr "Bicubica" + +#: ../build/bin/conf_gen.h:2246 ../build/bin/conf_gen.h:2256 +msgctxt "preferences" +msgid "lanczos2" +msgstr "lanczos2" + +#: ../build/bin/conf_gen.h:2257 ../build/bin/preferences_gen.h:5883 +msgctxt "preferences" +msgid "lanczos3" +msgstr "lanczos3" + +#: ../build/bin/conf_gen.h:2577 ../build/bin/conf_gen.h:3303 +#: ../build/bin/preferences_gen.h:7033 +msgctxt "preferences" +msgid "auto" +msgstr "Auto" + +#: ../build/bin/conf_gen.h:2579 +msgctxt "preferences" +msgid "libsecret" +msgstr "libsecret" + +#: ../build/bin/conf_gen.h:2580 +msgctxt "preferences" +msgid "kwallet" +msgstr "kwallet" + +#: ../build/bin/conf_gen.h:2790 +msgctxt "preferences" +msgid "vectorscope" +msgstr "Vettorscopio" + +#: ../build/bin/conf_gen.h:2791 +msgctxt "preferences" +msgid "waveform" +msgstr "Forma d'onda" + +#: ../build/bin/conf_gen.h:2792 +msgctxt "preferences" +msgid "RGB parade" +msgstr "Parata RGB" + +#: ../build/bin/conf_gen.h:2793 +msgctxt "preferences" +msgid "histogram" +msgstr "Istogramma" + +#: ../build/bin/conf_gen.h:2801 +msgctxt "preferences" +msgid "left" +msgstr "Sinistra" + +#: ../build/bin/conf_gen.h:2802 ../build/bin/preferences_gen.h:7620 +msgctxt "preferences" +msgid "right" +msgstr "Destra" + +#: ../build/bin/conf_gen.h:2810 ../build/bin/conf_gen.h:2847 +msgctxt "preferences" +msgid "logarithmic" +msgstr "Logaritmica" + +#: ../build/bin/conf_gen.h:2811 ../build/bin/conf_gen.h:2848 +msgctxt "preferences" +msgid "linear" +msgstr "Lineare" + +#: ../build/bin/conf_gen.h:2819 +msgctxt "preferences" +msgid "horizontal" +msgstr "Orizzontale" + +#: ../build/bin/conf_gen.h:2820 +msgctxt "preferences" +msgid "vertical" +msgstr "Verticale" + +#: ../build/bin/conf_gen.h:2828 +msgctxt "preferences" +msgid "overlaid" +msgstr "Sovrapposto" + +#: ../build/bin/conf_gen.h:2829 +msgctxt "preferences" +msgid "parade" +msgstr "Parata" + +#: ../build/bin/conf_gen.h:2837 +msgctxt "preferences" +msgid "u*v*" +msgstr "u*v*" + +#: ../build/bin/conf_gen.h:2838 +msgctxt "preferences" +msgid "AzBz" +msgstr "AzBz" + +#: ../build/bin/conf_gen.h:2839 +msgctxt "preferences" +msgid "RYB" +msgstr "RYB" + +#: ../build/bin/conf_gen.h:2881 +msgctxt "preferences" +msgid "monochromatic" +msgstr "monocromatico" + +#: ../build/bin/conf_gen.h:2882 +msgctxt "preferences" +msgid "analogous" +msgstr "Analogo" + +#: ../build/bin/conf_gen.h:2883 +msgctxt "preferences" +msgid "analogous complementary" +msgstr "Analogo complementare" + +#: ../build/bin/conf_gen.h:2884 +msgctxt "preferences" +msgid "complementary" +msgstr "Complementare" + +#: ../build/bin/conf_gen.h:2885 +msgctxt "preferences" +msgid "split complementary" +msgstr "Separazione complementare" + +#: ../build/bin/conf_gen.h:2886 +msgctxt "preferences" +msgid "dyad" +msgstr "Diade" + +#: ../build/bin/conf_gen.h:2887 +msgctxt "preferences" +msgid "triad" +msgstr "Triade" + +#: ../build/bin/conf_gen.h:2888 +msgctxt "preferences" +msgid "tetrad" +msgstr "Tetrade" + +#: ../build/bin/conf_gen.h:2889 +msgctxt "preferences" +msgid "square" +msgstr "Quadrato" + +#: ../build/bin/conf_gen.h:2903 +msgctxt "preferences" +msgid "normal" +msgstr "Normale" + +#: ../build/bin/conf_gen.h:2905 +msgctxt "preferences" +msgid "narrow" +msgstr "Ristretto" + +#: ../build/bin/conf_gen.h:2906 +msgctxt "preferences" +msgid "line" +msgstr "Linea" + +#: ../build/bin/conf_gen.h:3046 +msgctxt "preferences" +msgid "mm" +msgstr "mm" + +#: ../build/bin/conf_gen.h:3047 +msgctxt "preferences" +msgid "cm" +msgstr "cm" + +#: ../build/bin/conf_gen.h:3048 +msgctxt "preferences" +msgid "inch" +msgstr "pollici" + +#: ../build/bin/conf_gen.h:3093 ../build/bin/preferences_gen.h:7655 +msgctxt "preferences" +msgid "all" +msgstr "Tutto" + +#: ../build/bin/conf_gen.h:3094 +msgctxt "preferences" +msgid "xatom" +msgstr "xatom" + +#: ../build/bin/conf_gen.h:3095 +msgctxt "preferences" +msgid "colord" +msgstr "colord" + +#: ../build/bin/conf_gen.h:3133 ../build/bin/preferences_gen.h:5959 +msgctxt "preferences" +msgid "scene-referred (filmic)" +msgstr "Riferito alla scena (filmic)" + +#: ../build/bin/conf_gen.h:3134 +msgctxt "preferences" +msgid "scene-referred (sigmoid)" +msgstr "Riferito alla scena (sigmoid)" + +#: ../build/bin/conf_gen.h:3135 +msgctxt "preferences" +msgid "display-referred (legacy)" +msgstr "Riferito allo schermo (legacy)" + +#: ../build/bin/conf_gen.h:3230 +msgid "camera time zone" +msgstr "Fuso orario fotocamera" + +#: ../build/bin/conf_gen.h:3231 +msgid "" +"most cameras don't store the time zone in EXIF. give the correct time zone " +"so the GPX data can be correctly matched" +msgstr "" +"Molte fotocamere non memorizzano il fuso orario fra i dati Exif. Assegna il " +"fuso orario esatto in modo che i dati GPX possano corrispondere correttamente" + +#: ../build/bin/conf_gen.h:3242 +msgctxt "preferences" +msgid "no color" +msgstr "Nessun colore" + +#: ../build/bin/conf_gen.h:3243 +msgctxt "preferences" +msgid "illuminant color" +msgstr "Colore illuminante" + +#: ../build/bin/conf_gen.h:3244 +msgctxt "preferences" +msgid "effect emulation" +msgstr "Simulazione dell'effetto" + +#: ../build/bin/conf_gen.h:3290 +msgctxt "preferences" +msgid "list" +msgstr "Elenco" + +#: ../build/bin/conf_gen.h:3291 +msgctxt "preferences" +msgid "tabs" +msgstr "Schede" + +#: ../build/bin/conf_gen.h:3292 +msgctxt "preferences" +msgid "columns" +msgstr "Colonne" + +#: ../build/bin/conf_gen.h:3301 +msgctxt "preferences" +msgid "active" +msgstr "Attivo" + +#: ../build/bin/conf_gen.h:3302 +msgctxt "preferences" +msgid "dim" +msgstr "Fioco" + +#: ../build/bin/conf_gen.h:3304 +msgctxt "preferences" +msgid "fade" +msgstr "Sfumatura" + +#: ../build/bin/conf_gen.h:3305 +msgctxt "preferences" +msgid "fit" +msgstr "Adatta" + +#: ../build/bin/conf_gen.h:3306 +msgctxt "preferences" +msgid "smooth" +msgstr "Morbido" + +#: ../build/bin/conf_gen.h:3307 +msgctxt "preferences" +msgid "glide" +msgstr "Scivola" + +#: ../build/bin/preferences_gen.h:77 ../build/bin/preferences_gen.h:4306 +#: ../build/bin/preferences_gen.h:4345 ../build/bin/preferences_gen.h:4384 +#: ../build/bin/preferences_gen.h:4418 ../build/bin/preferences_gen.h:4489 +#: ../build/bin/preferences_gen.h:4523 ../build/bin/preferences_gen.h:4557 +#: ../build/bin/preferences_gen.h:4591 ../build/bin/preferences_gen.h:4625 +#: ../build/bin/preferences_gen.h:4659 ../build/bin/preferences_gen.h:4693 +#: ../build/bin/preferences_gen.h:4734 ../build/bin/preferences_gen.h:4769 +#: ../build/bin/preferences_gen.h:4804 ../build/bin/preferences_gen.h:4838 +#: ../build/bin/preferences_gen.h:4872 ../build/bin/preferences_gen.h:4907 +#: ../build/bin/preferences_gen.h:4941 ../build/bin/preferences_gen.h:4980 +#: ../build/bin/preferences_gen.h:5021 ../build/bin/preferences_gen.h:5094 +#: ../build/bin/preferences_gen.h:5128 ../build/bin/preferences_gen.h:5163 +#: ../build/bin/preferences_gen.h:5204 ../build/bin/preferences_gen.h:5238 +#: ../build/bin/preferences_gen.h:5282 ../build/bin/preferences_gen.h:5316 +#: ../build/bin/preferences_gen.h:5351 ../build/bin/preferences_gen.h:5392 +#: ../build/bin/preferences_gen.h:5427 ../build/bin/preferences_gen.h:5461 +#: ../build/bin/preferences_gen.h:5495 ../build/bin/preferences_gen.h:5529 +#: ../build/bin/preferences_gen.h:5563 ../build/bin/preferences_gen.h:5597 +#: ../build/bin/preferences_gen.h:5631 ../build/bin/preferences_gen.h:5666 +#: ../build/bin/preferences_gen.h:5700 ../build/bin/preferences_gen.h:5734 +#: ../build/bin/preferences_gen.h:5800 ../build/bin/preferences_gen.h:5834 +#: ../build/bin/preferences_gen.h:5869 ../build/bin/preferences_gen.h:5904 +#: ../build/bin/preferences_gen.h:5945 ../build/bin/preferences_gen.h:5980 +#: ../build/bin/preferences_gen.h:6014 ../build/bin/preferences_gen.h:6048 +#: ../build/bin/preferences_gen.h:6089 ../build/bin/preferences_gen.h:6125 +#: ../build/bin/preferences_gen.h:6166 ../build/bin/preferences_gen.h:6210 +#: ../build/bin/preferences_gen.h:6255 ../build/bin/preferences_gen.h:6306 +#: ../build/bin/preferences_gen.h:6350 ../build/bin/preferences_gen.h:6394 +#: ../build/bin/preferences_gen.h:6438 ../build/bin/preferences_gen.h:6482 +#: ../build/bin/preferences_gen.h:6526 ../build/bin/preferences_gen.h:6570 +#: ../build/bin/preferences_gen.h:6636 ../build/bin/preferences_gen.h:6670 +#: ../build/bin/preferences_gen.h:6704 ../build/bin/preferences_gen.h:6738 +#: ../build/bin/preferences_gen.h:6772 ../build/bin/preferences_gen.h:6806 +#: ../build/bin/preferences_gen.h:6840 ../build/bin/preferences_gen.h:6874 +#: ../build/bin/preferences_gen.h:6907 ../build/bin/preferences_gen.h:6940 +#: ../build/bin/preferences_gen.h:6974 ../build/bin/preferences_gen.h:7015 +#: ../build/bin/preferences_gen.h:7054 ../build/bin/preferences_gen.h:7125 +#: ../build/bin/preferences_gen.h:7160 ../build/bin/preferences_gen.h:7211 +#: ../build/bin/preferences_gen.h:7246 ../build/bin/preferences_gen.h:7281 +#: ../build/bin/preferences_gen.h:7325 ../build/bin/preferences_gen.h:7391 +#: ../build/bin/preferences_gen.h:7425 ../build/bin/preferences_gen.h:7459 +#: ../build/bin/preferences_gen.h:7493 ../build/bin/preferences_gen.h:7527 +#: ../build/bin/preferences_gen.h:7561 ../build/bin/preferences_gen.h:7606 +#: ../build/bin/preferences_gen.h:7641 ../build/bin/preferences_gen.h:7676 +#: ../build/bin/preferences_gen.h:7732 ../build/bin/preferences_gen.h:7773 +#: ../build/bin/preferences_gen.h:7807 ../build/bin/preferences_gen.h:7841 +#: ../build/bin/preferences_gen.h:7875 ../build/bin/preferences_gen.h:7909 +#: ../build/bin/preferences_gen.h:7944 ../build/bin/preferences_gen.h:7985 +#: ../build/bin/preferences_gen.h:8026 ../build/bin/preferences_gen.h:8086 +#: ../build/bin/preferences_gen.h:8120 ../build/bin/preferences_gen.h:8155 +#: ../build/bin/preferences_gen.h:8200 ../build/bin/preferences_gen.h:8234 +#: ../build/bin/preferences_gen.h:8279 ../build/bin/preferences_gen.h:8314 +#: ../build/bin/preferences_gen.h:8366 ../build/bin/preferences_gen.h:8411 +#: ../build/bin/preferences_gen.h:8481 ../build/bin/preferences_gen.h:8527 +msgid "this setting has been modified" +msgstr "Questa impostazione è stata modificata" + +#. doesn't seem to work from gtkrc +#: ../build/bin/preferences_gen.h:4278 ../build/bin/preferences_gen.h:4461 +#: ../build/bin/preferences_gen.h:5066 ../build/bin/preferences_gen.h:5772 +#: ../build/bin/preferences_gen.h:6608 ../build/bin/preferences_gen.h:7097 +#: ../build/bin/preferences_gen.h:7363 ../src/gui/accelerators.c:2996 +#: ../src/gui/gtk.c:2650 ../src/gui/preferences.c:424 +#: ../src/gui/preferences.c:874 ../src/libs/modulegroups.c:3888 +msgid "?" +msgstr "?" + +#: ../build/bin/preferences_gen.h:4288 ../src/control/jobs/control_jobs.c:2370 +#: ../src/libs/import.c:173 +msgid "import" +msgstr "Importa" + +#: ../build/bin/preferences_gen.h:4290 +msgid "session options" +msgstr "Opzioni sessione" + +#: ../build/bin/preferences_gen.h:4309 +msgid "base directory naming pattern" +msgstr "Modello base nominazione cartella" + +#: ../build/bin/preferences_gen.h:4324 ../build/bin/preferences_gen.h:4363 +#: ../build/bin/preferences_gen.h:4397 ../build/bin/preferences_gen.h:4436 +#: ../build/bin/preferences_gen.h:4502 ../build/bin/preferences_gen.h:4536 +#: ../build/bin/preferences_gen.h:4570 ../build/bin/preferences_gen.h:4604 +#: ../build/bin/preferences_gen.h:4638 ../build/bin/preferences_gen.h:4672 +#: ../build/bin/preferences_gen.h:4706 ../build/bin/preferences_gen.h:4748 +#: ../build/bin/preferences_gen.h:4783 ../build/bin/preferences_gen.h:4817 +#: ../build/bin/preferences_gen.h:4851 ../build/bin/preferences_gen.h:4886 +#: ../build/bin/preferences_gen.h:4920 ../build/bin/preferences_gen.h:4959 +#: ../build/bin/preferences_gen.h:5000 ../build/bin/preferences_gen.h:5041 +#: ../build/bin/preferences_gen.h:5107 ../build/bin/preferences_gen.h:5141 +#: ../build/bin/preferences_gen.h:5183 ../build/bin/preferences_gen.h:5218 +#: ../build/bin/preferences_gen.h:5295 ../build/bin/preferences_gen.h:5330 +#: ../build/bin/preferences_gen.h:5364 ../build/bin/preferences_gen.h:5406 +#: ../build/bin/preferences_gen.h:5440 ../build/bin/preferences_gen.h:5474 +#: ../build/bin/preferences_gen.h:5508 ../build/bin/preferences_gen.h:5542 +#: ../build/bin/preferences_gen.h:5576 ../build/bin/preferences_gen.h:5610 +#: ../build/bin/preferences_gen.h:5645 ../build/bin/preferences_gen.h:5679 +#: ../build/bin/preferences_gen.h:5713 ../build/bin/preferences_gen.h:5747 +#: ../build/bin/preferences_gen.h:5813 ../build/bin/preferences_gen.h:5848 +#: ../build/bin/preferences_gen.h:5883 ../build/bin/preferences_gen.h:5923 +#: ../build/bin/preferences_gen.h:5959 ../build/bin/preferences_gen.h:5993 +#: ../build/bin/preferences_gen.h:6027 ../build/bin/preferences_gen.h:6061 +#: ../build/bin/preferences_gen.h:6103 ../build/bin/preferences_gen.h:6138 +#: ../build/bin/preferences_gen.h:6179 ../build/bin/preferences_gen.h:6224 +#: ../build/bin/preferences_gen.h:6268 ../build/bin/preferences_gen.h:6319 +#: ../build/bin/preferences_gen.h:6363 ../build/bin/preferences_gen.h:6407 +#: ../build/bin/preferences_gen.h:6451 ../build/bin/preferences_gen.h:6495 +#: ../build/bin/preferences_gen.h:6539 ../build/bin/preferences_gen.h:6583 +#: ../build/bin/preferences_gen.h:6649 ../build/bin/preferences_gen.h:6683 +#: ../build/bin/preferences_gen.h:6717 ../build/bin/preferences_gen.h:6751 +#: ../build/bin/preferences_gen.h:6785 ../build/bin/preferences_gen.h:6819 +#: ../build/bin/preferences_gen.h:6853 ../build/bin/preferences_gen.h:6887 +#: ../build/bin/preferences_gen.h:6920 ../build/bin/preferences_gen.h:6953 +#: ../build/bin/preferences_gen.h:6987 ../build/bin/preferences_gen.h:7033 +#: ../build/bin/preferences_gen.h:7072 ../build/bin/preferences_gen.h:7139 +#: ../build/bin/preferences_gen.h:7225 ../build/bin/preferences_gen.h:7260 +#: ../build/bin/preferences_gen.h:7338 ../build/bin/preferences_gen.h:7404 +#: ../build/bin/preferences_gen.h:7438 ../build/bin/preferences_gen.h:7472 +#: ../build/bin/preferences_gen.h:7506 ../build/bin/preferences_gen.h:7540 +#: ../build/bin/preferences_gen.h:7620 ../build/bin/preferences_gen.h:7655 +#: ../build/bin/preferences_gen.h:7694 ../build/bin/preferences_gen.h:7745 +#: ../build/bin/preferences_gen.h:7786 ../build/bin/preferences_gen.h:7820 +#: ../build/bin/preferences_gen.h:7854 ../build/bin/preferences_gen.h:7888 +#: ../build/bin/preferences_gen.h:7923 ../build/bin/preferences_gen.h:7957 +#: ../build/bin/preferences_gen.h:7998 ../build/bin/preferences_gen.h:8099 +#: ../build/bin/preferences_gen.h:8134 ../build/bin/preferences_gen.h:8213 +#: ../build/bin/preferences_gen.h:8293 ../build/bin/preferences_gen.h:8327 +#: ../build/bin/preferences_gen.h:8424 +#, c-format +msgid "double click to reset to `%s'" +msgstr "Doppio click per ripristinare a '%s'" + +#: ../build/bin/preferences_gen.h:4327 ../build/bin/preferences_gen.h:4366 +msgid "part of full import path for an import session" +msgstr "" +"Parte del percorso completo di importazione per una sessione di importazione" + +#: ../build/bin/preferences_gen.h:4348 +msgid "sub directory naming pattern" +msgstr "Modello nominazione sottocartella" + +#: ../build/bin/preferences_gen.h:4387 +msgid "keep original filename" +msgstr "Mantenere il nome originale del file" + +#: ../build/bin/preferences_gen.h:4397 ../build/bin/preferences_gen.h:4502 +#: ../build/bin/preferences_gen.h:4536 ../build/bin/preferences_gen.h:4570 +#: ../build/bin/preferences_gen.h:4604 ../build/bin/preferences_gen.h:4638 +#: ../build/bin/preferences_gen.h:4706 ../build/bin/preferences_gen.h:4851 +#: ../build/bin/preferences_gen.h:4920 ../build/bin/preferences_gen.h:5107 +#: ../build/bin/preferences_gen.h:5295 ../build/bin/preferences_gen.h:5440 +#: ../build/bin/preferences_gen.h:5576 ../build/bin/preferences_gen.h:5713 +#: ../build/bin/preferences_gen.h:5813 ../build/bin/preferences_gen.h:5993 +#: ../build/bin/preferences_gen.h:6027 ../build/bin/preferences_gen.h:6138 +#: ../build/bin/preferences_gen.h:6268 ../build/bin/preferences_gen.h:6451 +#: ../build/bin/preferences_gen.h:6495 ../build/bin/preferences_gen.h:6539 +#: ../build/bin/preferences_gen.h:6583 ../build/bin/preferences_gen.h:6853 +#: ../build/bin/preferences_gen.h:7338 ../build/bin/preferences_gen.h:7506 +#: ../build/bin/preferences_gen.h:7745 ../build/bin/preferences_gen.h:7820 +#: ../build/bin/preferences_gen.h:7854 ../build/bin/preferences_gen.h:7888 +#: ../build/bin/preferences_gen.h:7957 ../build/bin/preferences_gen.h:8099 +#: ../build/bin/preferences_gen.h:8213 +msgctxt "preferences" +msgid "FALSE" +msgstr "FALSO" + +#: ../build/bin/preferences_gen.h:4400 +msgid "" +"keep original filename instead of a pattern while importing from camera or " +"card" +msgstr "" +"Mantenere il nome originale del file quando si importa da una fotocamera o " +"da una scheda di memoria" + +#: ../build/bin/preferences_gen.h:4421 +msgid "file naming pattern" +msgstr "Modello nominazione file" + +#: ../build/bin/preferences_gen.h:4439 +msgid "file naming pattern used for a import session" +msgstr "Modello nominazione file usato per una sessione di importazione" + +#: ../build/bin/preferences_gen.h:4471 ../src/gui/gtk.c:1266 +#: ../src/gui/preferences.c:544 ../src/libs/tools/lighttable.c:66 +#: ../src/views/lighttable.c:91 +msgid "lighttable" +msgstr "Tavolo Luminoso" + +#: ../build/bin/preferences_gen.h:4473 ../build/bin/preferences_gen.h:5078 +#: ../build/bin/preferences_gen.h:6620 ../src/gui/preferences.c:270 +msgid "general" +msgstr "Generale" + +#: ../build/bin/preferences_gen.h:4492 +msgid "hide built-in presets for utility modules" +msgstr "Nascondi i preset incorporati per i moduli di utilità" + +#: ../build/bin/preferences_gen.h:4505 +msgid "hides built-in presets of utility modules in presets menu." +msgstr "" +"Nascondi i preset incorporati nei moduli di utilità nel menu delle " +"preimpostazioni." + +#: ../build/bin/preferences_gen.h:4526 +msgid "use single-click in the collections module" +msgstr "Usa il singolo click nel modulo raccolte" + +#: ../build/bin/preferences_gen.h:4539 +msgid "" +"check this option to use single-click to select items in the collections " +"module. this will allow you to do range selections for date-time and numeric " +"values." +msgstr "" +"Abilita questa opzione per utilizzare il click singolo per selezionare " +"oggetti nel pannello della collezione. Questo vi permetterà di effettuare " +"selezioni in base a valori data/ora e numerici." + +#: ../build/bin/preferences_gen.h:4560 +msgid "expand a single utility module at a time" +msgstr "Espandi un solo modulo alla volta" + +#: ../build/bin/preferences_gen.h:4573 +msgid "this option toggles the behavior of shift clicking in lighttable mode" +msgstr "" +"Questa opzione commuta il comportamento di Maiusc+click in modalità Tavolo " +"Luminoso" + +#: ../build/bin/preferences_gen.h:4594 +msgid "scroll utility modules to the top when expanded" +msgstr "Scorri in alto i moduli di utilità quando viene espanso" + +#: ../build/bin/preferences_gen.h:4607 ../build/bin/preferences_gen.h:5613 +msgid "" +"when this option is enabled then darktable will try to scroll the module to " +"the top of the visible list" +msgstr "" +"Quando questa opzione è abilitata, darktable proverà a spostare il modulo in " +"cima alla lista visibile" + +#: ../build/bin/preferences_gen.h:4628 +msgid "rating an image one star twice will not zero out the rating" +msgstr "" +"Valutare un'immagine con una stella per due volte non azzera la valutazione" + +#: ../build/bin/preferences_gen.h:4641 +msgid "" +"defines whether rating an image one star twice will zero out star rating" +msgstr "" +"Stabilisce se il valutare un'immagine con una stella due volte azzererà la " +"valutazione." + +#: ../build/bin/preferences_gen.h:4662 ../build/bin/preferences_gen.h:5285 +msgid "show scrollbars for central view" +msgstr "Mostra le barre di scorrimento per la vista centrale" + +#: ../build/bin/preferences_gen.h:4672 ../build/bin/preferences_gen.h:4817 +#: ../build/bin/preferences_gen.h:5141 ../build/bin/preferences_gen.h:5364 +#: ../build/bin/preferences_gen.h:5474 ../build/bin/preferences_gen.h:5508 +#: ../build/bin/preferences_gen.h:5542 ../build/bin/preferences_gen.h:5610 +#: ../build/bin/preferences_gen.h:5679 ../build/bin/preferences_gen.h:5747 +#: ../build/bin/preferences_gen.h:6061 ../build/bin/preferences_gen.h:6179 +#: ../build/bin/preferences_gen.h:6319 ../build/bin/preferences_gen.h:6363 +#: ../build/bin/preferences_gen.h:6407 ../build/bin/preferences_gen.h:6649 +#: ../build/bin/preferences_gen.h:6683 ../build/bin/preferences_gen.h:6717 +#: ../build/bin/preferences_gen.h:6751 ../build/bin/preferences_gen.h:6785 +#: ../build/bin/preferences_gen.h:6819 ../build/bin/preferences_gen.h:6887 +#: ../build/bin/preferences_gen.h:6920 ../build/bin/preferences_gen.h:6953 +#: ../build/bin/preferences_gen.h:6987 ../build/bin/preferences_gen.h:7404 +#: ../build/bin/preferences_gen.h:7438 ../build/bin/preferences_gen.h:7472 +#: ../build/bin/preferences_gen.h:7540 ../build/bin/preferences_gen.h:7786 +#: ../build/bin/preferences_gen.h:7998 ../build/bin/preferences_gen.h:8327 +#: ../build/bin/preferences_gen.h:8424 +msgctxt "preferences" +msgid "TRUE" +msgstr "VERO" + +#: ../build/bin/preferences_gen.h:4675 ../build/bin/preferences_gen.h:5298 +msgid "defines whether scrollbars should be displayed" +msgstr "Definisce se devono essere mostrate le barre di scorrimento" + +#: ../build/bin/preferences_gen.h:4696 +msgid "show image time with milliseconds" +msgstr "Mostra i millisecondi nell'orario dell'immagine" + +#: ../build/bin/preferences_gen.h:4709 +msgid "defines whether time should be displayed with milliseconds" +msgstr "Stabilisce se gli orari debbano mostrare i millisecondi" + +#: ../build/bin/preferences_gen.h:4718 +msgid "thumbnails" +msgstr "Miniature" + +#: ../build/bin/preferences_gen.h:4737 +msgid "use raw file instead of embedded JPEG from size" +msgstr "Usa il file RAW anziché il JPEG incorporato dalla dimensione" + +#: ../build/bin/preferences_gen.h:4751 +msgid "" +"if the thumbnail size is greater than this value, it will be processed using " +"raw file instead of the embedded preview JPEG (better but slower).\n" +"if you want all thumbnails and pre-rendered images in best quality you " +"should choose the *always* option.\n" +"(more comments in the manual)" +msgstr "" +"Se la dimensione della miniatura è maggiore di questo valore, verrà " +"processato usando il file raw file al posto dell'anteprima JPG incorporata " +"(migliore ma più lento).\n" +"Se vuoi tutte tutte le miniature e le immagini pre-elaborate nella miglior " +"qualità dovresti scegliere l'opzione *sempre*.\n" +"(altri commenti nel manuale)" + +#: ../build/bin/preferences_gen.h:4772 +msgid "high quality processing from size" +msgstr "Elaborazione in alta qualità a partire dalle dimensioni" + +#: ../build/bin/preferences_gen.h:4786 +msgid "" +"if the thumbnail size is greater than this value, it will be processed using " +"the full quality rendering path (better but slower).\n" +"if you want all thumbnails and pre-rendered images in best quality you " +"should choose the *always* option.\n" +"(more comments in the manual)" +msgstr "" +"Se la dimensione della miniatura è maggiore di questo valore, verrà " +"processata usando l'elaborazione in massima qualità (migliore ma più " +"lenta).\n" +"Se vuoi tutte tutte le miniature e le immagini pre-elaborate nella miglior " +"qualità dovresti scegliere l'opzione *sempre*.\n" +"(altri commenti nel manuale)" + +#: ../build/bin/preferences_gen.h:4807 +msgid "enable disk backend for thumbnail cache" +msgstr "Gestore disco per la cache delle anteprime" + +#: ../build/bin/preferences_gen.h:4820 +msgid "" +"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want. light table " +"performance will be increased greatly when browsing a lot.\n" +"to generate all thumbnails of your entire collection offline, run 'darktable-" +"generate-cache'." +msgstr "" +"Se abilitato, salva le miniature sul disco (.cache/darktable/) quando " +"vengono epurate dalla cache in memoria.\n" +"Notare che può occupare un gran quantitativo di memoria (diversi giga per " +"20.000 immagini)e non verrà mai più eliminata alcuna miniatura in memoria.\n" +"E' comunque sicuro rimuoverle manualmente, se si vuole. Le prestazioni del " +"Tavolo Luminoso incrementeranno sensibilmente quando si naviga a lungo.\n" +"Per generare offline le miniature della tua intera raccolta, esegui " +"'darktable-generate-cache'." + +#: ../build/bin/preferences_gen.h:4841 +msgid "enable disk backend for full preview cache" +msgstr "Abilita la gestione disco per la cache delle anteprime" + +#: ../build/bin/preferences_gen.h:4854 +msgid "" +"if enabled, write full preview to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want.\n" +"light table performance will be increased greatly when zooming image in full " +"preview mode." +msgstr "" +"Se abilitato, salva l'anteprima completa sul disco (.cache/darktable/) " +"quando viene epurata dalla cache in memoria.\n" +"Notare che può occupare un gran quantitativo di memoria (diversi giga per " +"20.000 immagini)e non verrà mai più eliminata alcuna miniatura in memoria.\n" +"E' comunque sicuro rimuoverle manualmente, se si vuole. \n" +"Le prestazioni del Tavolo Luminoso incrementeranno sensibilmente quando si " +"ingrandisce nella modalità anteprima a tutto schermo." + +#: ../build/bin/preferences_gen.h:4875 +msgid "generate thumbnails in background" +msgstr "Genera le miniature in background" + +#: ../build/bin/preferences_gen.h:4889 +msgid "" +"if 'enable disk backend for thumbnail cache' is enabled thumbnails/mipmaps " +"up to the selected size are generated while user is inactive in lighttable." +msgstr "" +"Se l'opzione 'Gestore disco per la cache delle anteprime' è abilitata, " +"verranno generate miniature/mappe mip fino alla dimesione selezionata, " +"mentre l'utente è inattivo nel Tavolo Luminoso" + +#: ../build/bin/preferences_gen.h:4910 +msgid "reset cached thumbnails" +msgstr "Reimposta miniature memorizzate" + +#: ../build/bin/preferences_gen.h:4923 +msgid "" +"force thumbnails to be regenerated by resetting the database. this may be " +"needed in case some thumbnails have been manually removed or corrupted." +msgstr "" +"forza la rigenerazione delle miniature azzerando il database. Questo può " +"essere necessario nel caso in cui alcune miniature siano state rimosse " +"manualmente o siano corrotte" + +#: ../build/bin/preferences_gen.h:4944 +msgid "delimiters for size categories" +msgstr "Delimitatori per le categorie di misura" + +#: ../build/bin/preferences_gen.h:4962 +msgid "" +"size categories are used to be able to set different overlays and CSS values " +"depending of the size of the thumbnail, separated by |.\n" +"for example, 120|400 means 3 categories of thumbnails: <120px, 120-400px, " +">400px" +msgstr "" +"Le categorie di misura sono utilizzate per poter impostare differenti " +"sovrimpressioni e i valori CSS in base alla dimensione dell'anteprima, " +"separati da |. \n" +"Per esempio, 120|400 significa 3 categorie di anteprima : <120px, 120-400px, " +">400px" + +#: ../build/bin/preferences_gen.h:4983 +msgid "pattern for the thumbnail extended overlay text" +msgstr "Modello per il testo esteso sulle anteprime" + +#: ../build/bin/preferences_gen.h:5003 ../build/bin/preferences_gen.h:5044 +msgid "see manual to know all the tags you can use." +msgstr "Consulta il manuale per conoscere tutte le etichette che puoi usare." + +#: ../build/bin/preferences_gen.h:5024 +msgid "pattern for the thumbnail tooltip (empty to disable)" +msgstr "" +"Modello dei suggerimenti sui provini (lasciare vuoto per disabilitarlo)" + +#: ../build/bin/preferences_gen.h:5076 ../src/gui/gtk.c:1267 +#: ../src/gui/preferences.c:544 ../src/views/darkroom.c:94 +msgid "darkroom" +msgstr "Camera Oscura" + +#: ../build/bin/preferences_gen.h:5097 +msgid "scroll down to increase mask parameters" +msgstr "Scorri giù per aumentare i parametri della maschera" + +#: ../build/bin/preferences_gen.h:5110 +msgid "" +"when using the mouse scroll wheel to change mask parameters, scroll down to " +"increase the mask size, feather size, opacity, brush hardness and gradient " +"curvature\n" +"by default scrolling up increases these parameters" +msgstr "" +"Quanto viene usata la rotella del mouse per cambiare i parametri della " +"maschera, scorri verso il basso per aumentare la dimensione della maschera, " +"della sfumatura, dell'opacità, la durezza del pennello e la curvatura del " +"gradiente\n" +"In modo predefinito scorrere in alto aumenta questi parametri" + +#: ../build/bin/preferences_gen.h:5131 +msgid "middle mouse button zooms to 200%" +msgstr "click con la rotella centrale del mouse ingradinsce al 200%" + +#: ../build/bin/preferences_gen.h:5145 +#, no-c-format +msgid "" +"if enabled, the zoom level will cycle between 100%, 200% and fit to viewport " +"on middle mouse clicks. if disabled, it will toggle between viewport size " +"and 100%, and the 'ctrl' key can be used to control the zoom level." +msgstr "" +"Se attivato, al click centrale del mouse il livello di zoom varierà tra " +"100%, 200% e si adatta alla finestra. Se disattivato, si attiverà tra la " +"dimensione della finestrae 100%, ed il tasto 'ctrl' può essere usato per " +"controllare il livello di zoom." + +#: ../build/bin/preferences_gen.h:5166 +msgid "pattern for the image information line" +msgstr "Modello del testo informativo dell'immagine" + +#: ../build/bin/preferences_gen.h:5186 +msgid "see manual for a list of the tags you can use." +msgstr "Consulta il manuale per una lista di etichette che puoi usare." + +#: ../build/bin/preferences_gen.h:5207 +msgid "position of the image information line" +msgstr "Posizione del testo informativo dell'immagine" + +#: ../build/bin/preferences_gen.h:5241 +msgid "border around image in darkroom mode" +msgstr "Bordo intorno all'immagine in modalità Camera Oscura" + +#: ../build/bin/preferences_gen.h:5261 ../build/bin/preferences_gen.h:7183 +#: ../build/bin/preferences_gen.h:7304 ../build/bin/preferences_gen.h:7585 +#: ../build/bin/preferences_gen.h:8049 ../build/bin/preferences_gen.h:8179 +#: ../build/bin/preferences_gen.h:8258 ../build/bin/preferences_gen.h:8390 +#: ../build/bin/preferences_gen.h:8505 ../build/bin/preferences_gen.h:8551 +#, c-format +msgid "double click to reset to `%d'" +msgstr "Doppio click per ripristinare a '%d'" + +#: ../build/bin/preferences_gen.h:5264 +msgid "" +"process the image in darkroom mode with a small border. set to 0 if you " +"don't want any border." +msgstr "" +"Elabora l'immagine in modalità Camera Oscura con un bordo sottile. Imposta a " +"0 se non vuoi alcun bordo." + +#: ../build/bin/preferences_gen.h:5319 +msgid "reduce resolution of preview image" +msgstr "Riduci la risoluzione dell'immagine in anteprima" + +#: ../build/bin/preferences_gen.h:5333 +msgid "decrease to speed up preview rendering, may hinder accurate masking" +msgstr "" +"Riduci per velocizzare la visualizzazione dell'immagine di anteprima " +"(potrebbe intralciare la precisione delle maschere)" + +#: ../build/bin/preferences_gen.h:5354 +msgid "show loading screen between images" +msgstr "Mostra la schermata di caricamento tra le immagini" + +#: ../build/bin/preferences_gen.h:5367 +msgid "" +"show gray loading screen when navigating between images in the darkroom\n" +"disable to just show a toast message" +msgstr "" +"Mostra la schermata di caricamento grigia mentre navighi tra le immagini " +"nella Camera Oscura\n" +"Disabilita per mostrare solamente un messaggio di benvenuto" + +#: ../build/bin/preferences_gen.h:5376 +msgid "modules" +msgstr "Moduli" + +#: ../build/bin/preferences_gen.h:5395 +msgid "display of individual color channels" +msgstr "Visualizza i canali colore individualmente" + +#: ../build/bin/preferences_gen.h:5409 +msgid "" +"defines how color channels are displayed when activated in the parametric " +"masks feature." +msgstr "" +"Stabilisce come i canali colore vengano visualizzati una volta attivati " +"nella funzione di maschera parametrica." + +#: ../build/bin/preferences_gen.h:5430 +msgid "hide built-in presets for processing modules" +msgstr "Nascondi le preimpostazioni incorporate per i moduli di elaborazione" + +#: ../build/bin/preferences_gen.h:5443 +msgid "" +"hides built-in presets of processing modules in both presets and favourites " +"menu." +msgstr "" +"Nascondi le preimpostazioni incorporate dei moduli di elaborazione in " +"entrambi i menu preimpostazioni e preferiti." + +#: ../build/bin/preferences_gen.h:5464 ../build/bin/preferences_gen.h:5477 +msgid "show the guides widget in modules UI" +msgstr "Mostra il widget delle guide nei moduli UI" + +#: ../build/bin/preferences_gen.h:5498 +msgid "expand a single processing module at a time" +msgstr "Espandi un solo modulo alla volta" + +#: ../build/bin/preferences_gen.h:5511 +msgid "this option toggles the behavior of shift clicking in darkroom mode" +msgstr "" +"Questa opzione commuta il comportamento di Maiusc+click in modalità Camera " +"Oscura" + +#: ../build/bin/preferences_gen.h:5532 +msgid "only collapse modules in current group" +msgstr "Comprimi solo i moduli del gruppo corrente" + +#: ../build/bin/preferences_gen.h:5545 +msgid "" +"if only expanding a single module at a time, only collapse other modules in " +"the current group - ignore modules in other groups" +msgstr "" +"Se si vuole espandere un solo gruppo alla volta, comprimere gli altri gruppi " +"nel gruppo corrente o ignorarli" + +#: ../build/bin/preferences_gen.h:5566 +msgid "expand the module when it is activated, and collapse it when disabled" +msgstr "Espandi il modulo quando attivato e comprimilo quando disattivato" + +#: ../build/bin/preferences_gen.h:5579 +msgid "" +"this option allows to expand or collapse automatically the module when it is " +"enabled or disabled." +msgstr "" +"Questa opzione permette di espandere o di comprimere il modulo " +"automaticamente quando viene attivato o disattivato." + +#: ../build/bin/preferences_gen.h:5600 +msgid "scroll processing modules to the top when expanded" +msgstr "Scorri i moduli di elaborazione in alto quando espansi" + +#: ../build/bin/preferences_gen.h:5634 +msgid "show right-side buttons in processing module headers" +msgstr "Visualizza i pulsanti di destra nell'intestazione dei moduli" + +#: ../build/bin/preferences_gen.h:5648 +msgid "" +"when the mouse is not over a module, the multi-instance, reset and preset " +"buttons can be hidden:\n" +" - 'always': always show all buttons,\n" +" - 'active': only show the buttons when the mouse is over the module,\n" +" - 'dim': buttons are dimmed when mouse is away,\n" +" - 'auto': hide the buttons when the panel is narrow,\n" +" - 'fade': fade out all buttons when panel narrows,\n" +" - 'fit': hide all the buttons if the module name doesn't fit,\n" +" - 'smooth': fade out all buttons in one header simultaneously,\n" +" - 'glide': gradually hide individual buttons as needed" +msgstr "" +"Quando il mouse non è sopra ad un modulo, i pulsanti di instanza multipla, " +"ripristina e preimposta possono essere nascosti:\n" +"sempre - mostra sempre tutti i pulsanti,\n" +"attiva - mostra i pulsanti solo quando il mouse è sopra al modulo,\n" +"attenua - i pulsanti vengono attenuati quando il mouse è altrove,\n" +"auto - nasconde i pulsanti quando il pannello è ridotto,\n" +"dissolvi - dissolvi tutti i pulsanti quando il pannello si riduce,\n" +"adatta - nascondi tutti i pulsanti se il nome del modulo non ci sta,\n" +"spiana - dissolvi tutti i pulsanti in un intestazione simultaneamente,\n" +"scivola - nascondi individualmente e gradualmente i bottoni all'occorrenza" + +#: ../build/bin/preferences_gen.h:5669 +msgid "show mask indicator in module headers" +msgstr "Visualizza l'indicatore della maschera nell'intestazione dei moduli" + +#: ../build/bin/preferences_gen.h:5682 +msgid "" +"if enabled, an icon will be shown in the header of any processing modules " +"that have a mask applied" +msgstr "" +"Se abilitato, verrà mostrata un'icona nell'intestazione di tutti i moduli di " +"elaborazione che hanno una maschera applicata" + +#: ../build/bin/preferences_gen.h:5703 +msgid "prompt for name on addition of new instance" +msgstr "Pronto per un nome in aggiunta della nuova istanza" + +#: ../build/bin/preferences_gen.h:5716 +msgid "" +"if enabled, a rename prompt will be present for each new module instance " +"(either new instance or duplicate)" +msgstr "" +"Se attivato, sarà fatta una richiesta di rinomina per ogni nuova istanza di " +"modulo (sia nuovo o duplicato)" + +#: ../build/bin/preferences_gen.h:5737 +msgid "automatically update module name" +msgstr "Aggiorna automaticamente il nome del modulo" + +#: ../build/bin/preferences_gen.h:5750 +msgid "" +"if enabled, the module name will be automatically updated to match a preset " +"name or a preset instance name if present." +msgstr "" +"Se abilitato, il nome del modulo verrà aggiornato automaticamente per " +"corrispondere al nome del preset o al nome dell'istanza di preset, se " +"presente." + +#: ../build/bin/preferences_gen.h:5782 +msgid "processing" +msgstr "Elaborazione" + +#: ../build/bin/preferences_gen.h:5784 +msgid "image processing" +msgstr "Elaborazione d'immagine" + +#: ../build/bin/preferences_gen.h:5803 +msgid "always use LittleCMS 2 to apply output color profile" +msgstr "Usa sempre LittleCMS 2 per applicare il profilo colore di uscita" + +#: ../build/bin/preferences_gen.h:5816 +msgid "this is slower than the default." +msgstr "Più lento dell'opzione di default." + +#: ../build/bin/preferences_gen.h:5837 +msgid "pixel interpolator (warp)" +msgstr "Intepolatore pixel (distorce)" + +#: ../build/bin/preferences_gen.h:5851 +msgid "" +"pixel interpolator used in modules for rotation, lens correction, liquify, " +"cropping and final scaling (bilinear, bicubic, lanczos2)." +msgstr "" +"L'intepolatore di pixel viene usato nei moduli per la rotazione, nella " +"correzione obiettivo, fluidifica, ritaglia e riscala finale (bilineare, " +"bicubica, lanczos2)." + +#: ../build/bin/preferences_gen.h:5872 +msgid "pixel interpolator (scaling)" +msgstr "Intepolatore pixel (ridimensionamento)" + +#: ../build/bin/preferences_gen.h:5886 +msgid "" +"pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." +msgstr "" +"L'interpolatore di pixel è usato per il ridimensionamento (bilineare, " +"bicubica, lanczos2, lanczo3)." + +#: ../build/bin/preferences_gen.h:5907 +msgid "LUT 3D root folder" +msgstr "Cartella radice LUT 3D" + +#: ../build/bin/preferences_gen.h:5913 ../src/control/jobs/control_jobs.c:1691 +#: ../src/control/jobs/control_jobs.c:1745 ../src/gui/preferences.c:1080 +#: ../src/gui/presets.c:421 ../src/imageio/storage/disk.c:197 +#: ../src/imageio/storage/disk.c:261 ../src/imageio/storage/gallery.c:149 +#: ../src/imageio/storage/gallery.c:213 ../src/imageio/storage/latex.c:145 +#: ../src/imageio/storage/latex.c:199 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1673 ../src/libs/styles.c:391 +#: ../src/lua/preferences.c:668 +msgid "select directory" +msgstr "Seleziona cartella" + +#: ../build/bin/preferences_gen.h:5927 +msgid "" +"this folder (and sub-folders) contains LUT files used by LUT 3D module. " +"(need a restart)." +msgstr "" +"Questa cartella (e sotto-cartelle) contiene i files LUT utilizzati dal " +"modulo LUT 3D (si richiede il riavvio)." + +#: ../build/bin/preferences_gen.h:5948 +msgid "auto-apply pixel workflow defaults" +msgstr "" +"Applica automaticamente i valori predefiniti per il flusso di lavoro sui " +"pixel" + +#: ../build/bin/preferences_gen.h:5962 +msgid "" +"scene-referred workflow is based on linear modules and will auto-apply " +"filmic or sigmoid, color calibration and exposure,\n" +"display-referred workflow is based on Lab modules and will auto-apply base " +"curve, white balance and the legacy module pipe order." +msgstr "" +"Il workflow riferito alla scena è basato su moduli lineari e " +"applicheràautomaticamente filmic o sigmoid, calibrazione colore e " +"esposizione,\n" +"il worflow riferito allo schermo è basato sui moduli Lab e applicherà " +"automaticamente curva base, bilanciamento del bianco e l'ordine della coda " +"di sviluppo dei moduli legacy." + +#: ../build/bin/preferences_gen.h:5983 +msgid "auto-apply per camera basecurve presets" +msgstr "Applica automaticamente i preset della curva base per la fotocamera" + +#: ../build/bin/preferences_gen.h:5996 +msgid "" +"use the per-camera basecurve by default instead of the generic manufacturer " +"one if there is one available (needs a restart).\n" +"this option is taken into account when the \"auto-apply pixel workflow " +"defaults\" is set to \"display-referred\".\n" +"to prevent auto-apply basecurve presets \"auto-apply pixel workflow " +"defaults\" should be set to \"none\"" +msgstr "" +"Utilizza la curva base della fotocamera anziché quella generica del " +"produttore se disponibile (richiede il riavvio).\n" +"Questa opzione viene presa in considerazione quando l'opzione \"applica " +"automaticamente i valori predefiniti per il flusso di lavoro sui pixel\" è " +"impostata su \"riferito allo schermo\".\n" +"Per evitare che venga applicata in modo automatico una curva base \"applica " +"automaticamente i valori predefiniti per il flusso di lavoro sui pixel\" " +"dovrebbe essere impostato a \"nessuno\"." + +#: ../build/bin/preferences_gen.h:6017 +msgid "detect monochrome previews" +msgstr "Trova anteprime in bianco e nero" + +#: ../build/bin/preferences_gen.h:6030 +msgid "" +"many monochrome images can be identified via EXIF and preview data. beware: " +"this slows down imports and reading of EXIF data" +msgstr "" +"Molte immagini in bianco e nero possono essere identificate usando i dati " +"EXIF e i dati di anteprima. Fai attenzione: questo rallenta l'attività di " +"import e lettura dei dati EXIF" + +#: ../build/bin/preferences_gen.h:6051 +msgid "show warning messages" +msgstr "Mostra i messaggi di avviso" + +#: ../build/bin/preferences_gen.h:6064 +msgid "" +"display messages in modules to warn beginner users when non-standard and " +"possibly harmful settings are used in the pipeline.\n" +"these messages can be false-positive and should be disregarded if you know " +"what you are doing. this option will hide them all the time." +msgstr "" +"Mostra i messaggi nei moduli per avvisare gli utenti principianti quando " +"vengono usate nella coda di sviluppo impostazioni non-standard e " +"potenzialmente dannose .\n" +"Questi messaggi posson esser falsi positivi e dovrebbero esser ignorati se " +"sai cosa stai facendo. Questa opzione li nasconderà per tutto il tempo." + +#: ../build/bin/preferences_gen.h:6073 +msgid "CPU / memory" +msgstr "CPU / Memoria" + +#: ../build/bin/preferences_gen.h:6092 +msgid "darktable resources" +msgstr "Risorse darktable" + +#: ../build/bin/preferences_gen.h:6107 +#, no-c-format +msgid "" +"defines how much darktable may take from your system resources:\n" +" - 'default': darktable takes ~50% of your systems resources and gives " +"darktable enough to be still performant.\n" +" - 'small': should be used if you are simultaneously running applications " +"taking large parts of your systems memory or OpenCL/GL applications like " +"games or Hugin.\n" +" - 'large': is the best option if you are mainly using darktable and want it " +"to take most of your systems resources for performance.\n" +" - 'unrestricted': should only be used for developing extremely large images " +"as darktable will take all of your systems resources\n" +" and thus might lead to swapping and unexpected performance drops.\n" +" use with caution and not recommended for general use!" +msgstr "" +"stabilisce quanto darktable potrà prendere dalle risorse di sistema:\n" +"- 'predefinito': darktable si prende ~50% delle risorse di sistema e " +"fornisce adarktable abbastanza per essere ancora performante.\n" +"- 'piccolo': dovrebbe essere usato se si eseguono contemporaneamente " +"applicazioni che prendono larga parte della tua memoria di sistema, oppure " +"applicazioni OpenCL/GL tipo giochi o Hugin.\n" +"- 'grande': è la migliore opzione se stai usando principalmente darktable e " +"vuoi che prenda la maggiorparte delle risorse di sistema per le " +"prestazioni.\n" +"- 'illimitato': dovrebbe essere usato solo per sviluppare immagini " +"estremamente grandi, in quanto darktable prenderà tutte le risorse di " +"sistema\n" +" ciò potrebbe portare allo swapping e ad una caduta improvvisa delle " +"prestazioni.\n" +" usare con cautela, non è raccomandato per l'uso generico!" + +#: ../build/bin/preferences_gen.h:6128 +msgid "prefer performance over quality" +msgstr "Preferisci le prestazioni alla qualità" + +#: ../build/bin/preferences_gen.h:6141 +msgid "" +"if switched on, thumbnails and previews are rendered at lower quality but 4 " +"times faster" +msgstr "" +"Se attivato, le anteprime verranno costruite con una qualità inferiore ma 4 " +"volte più rapidamente" + +#: ../build/bin/preferences_gen.h:6150 +msgid "OpenCL" +msgstr "OpenCL" + +#: ../build/bin/preferences_gen.h:6169 +msgid "activate OpenCL support" +msgstr "Attiva supporto OpenCL" + +#: ../build/bin/preferences_gen.h:6182 +msgid "" +"if found, use OpenCL runtime on your system to speed up processing.\n" +"can be switched on and off at any time." +msgstr "" +"Se trovato, usa il runtime OpenCL sul tuo sistema per velocizzare " +"l'elaborazione.\n" +"Può essere spento in qualsiasi momento." + +#: ../build/bin/preferences_gen.h:6186 ../build/bin/preferences_gen.h:6231 +#: ../build/bin/preferences_gen.h:6275 ../build/bin/preferences_gen.h:6326 +#: ../build/bin/preferences_gen.h:6370 ../build/bin/preferences_gen.h:6414 +#: ../build/bin/preferences_gen.h:6458 ../build/bin/preferences_gen.h:6502 +#: ../build/bin/preferences_gen.h:6546 ../build/bin/preferences_gen.h:7701 +msgid "not available" +msgstr "Non disponibile" + +#: ../build/bin/preferences_gen.h:6188 ../build/bin/preferences_gen.h:6189 +#: ../build/bin/preferences_gen.h:6233 ../build/bin/preferences_gen.h:6234 +#: ../build/bin/preferences_gen.h:6277 ../build/bin/preferences_gen.h:6278 +#: ../build/bin/preferences_gen.h:6328 ../build/bin/preferences_gen.h:6329 +#: ../build/bin/preferences_gen.h:6372 ../build/bin/preferences_gen.h:6373 +#: ../build/bin/preferences_gen.h:6416 ../build/bin/preferences_gen.h:6417 +#: ../build/bin/preferences_gen.h:6460 ../build/bin/preferences_gen.h:6461 +#: ../build/bin/preferences_gen.h:6504 ../build/bin/preferences_gen.h:6505 +#: ../build/bin/preferences_gen.h:6548 ../build/bin/preferences_gen.h:6549 +#: ../build/bin/preferences_gen.h:7703 ../build/bin/preferences_gen.h:7704 +msgid "not available on this system" +msgstr "Non disponibile su questo sistema" + +#: ../build/bin/preferences_gen.h:6213 +msgid "OpenCL scheduling profile" +msgstr "Profilo di pianificazione OpenCL" + +#: ../build/bin/preferences_gen.h:6227 +msgid "" +"defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled " +"systems:\n" +" - 'default': GPU processes full and CPU processes preview pipe (adaptable " +"by config parameters),\n" +" - 'multiple GPUs': process both pixelpipes in parallel on two different " +"GPUs,\n" +" - 'very fast GPU': process both pixelpipes sequentially on the GPU." +msgstr "" +"Stabilisce come vengono schedulate le attività sulla pixelpipe di anteprima " +"e completa sui sistemi con OpenCL abilitato:\n" +" - 'predefinito': la GPU elabora le attività per il completo e la CPU " +"elabora le attività di anteprima (adattabilecon i parametri di " +"configurazione),\n" +" - 'GPU multiple': elabora entrambe le pixelpipe in parallelo su due GPU " +"differenti,\n" +" - 'GPU molto veloce': elabora entrambe le pixelpipe in sequenza sulla GPU." + +#: ../build/bin/preferences_gen.h:6258 +msgid "use all device memory" +msgstr "Usa tutta la memoria del dispositivo" + +#: ../build/bin/preferences_gen.h:6271 +msgid "" +"if enabled darktable will use all device memory except a safety margin " +"(headroom, default is 600MB)" +msgstr "" +"Se abilitato Darktable userà tutta la memoria del dispositivo ad eccezione " +"di un margine di sicurezza (libero, il default è 600MB)" + +#: ../build/bin/preferences_gen.h:6290 +msgid "OpenCL drivers" +msgstr "OpenCL drivers" + +#: ../build/bin/preferences_gen.h:6309 +msgid "Intel GPU" +msgstr "Intel GPU" + +#: ../build/bin/preferences_gen.h:6322 +msgid "Intel(R) OpenCL Graphics for all supported platforms (vendor provided)" +msgstr "" +"Intel(R) OpenCL Graphics per tutte le piattaforme supportate (fornito dal " +"produttore)" + +#: ../build/bin/preferences_gen.h:6353 +msgid "Nvidia CUDA" +msgstr "Nvidia CUDA" + +#: ../build/bin/preferences_gen.h:6366 +msgid "Nvidia CUDA based OpenCL (vendor provided)" +msgstr "Nvidia CUDA basato OpenCL (fornito dal produttore)" + +#: ../build/bin/preferences_gen.h:6397 +msgid "AMD ROCm" +msgstr "AMD ROCm" + +#: ../build/bin/preferences_gen.h:6410 +msgid "AMD Accelerated Parallel Processing (vendor provided)" +msgstr "AMD Accelerated Parallel Processing (fornito dal produttore)" + +#: ../build/bin/preferences_gen.h:6441 +msgid "RustiCL" +msgstr "RustiCL" + +#: ../build/bin/preferences_gen.h:6454 +msgid "" +"RustiCL Mesa OpenCL, still unstable. if you want to use this, you should " +"disable the vendor driver" +msgstr "" +"RustiCL Mesa OpenCL è ancora instabile. Se vuoi usarlo dovresti disabilitare " +"il driver del produttore" + +#: ../build/bin/preferences_gen.h:6485 +msgid "Apple" +msgstr "Apple" + +#: ../build/bin/preferences_gen.h:6498 +msgid "Apple OpenCL (vendor provided)" +msgstr "Apple OpenCL (fornito dal produttore)" + +#: ../build/bin/preferences_gen.h:6529 +msgid "Microsoft OpenCLOn12" +msgstr "Microsoft OpenCLOn12" + +#: ../build/bin/preferences_gen.h:6542 +msgid "" +"Microsoft OpenCLOn12, only use this if the vendor provided driver does not " +"work or there is none provided." +msgstr "" +"Microsoft OpenCLOn12, usare solo se il driver fornito dal produttore non " +"funziona o non è stato fornito." + +#: ../build/bin/preferences_gen.h:6573 +msgid "other platforms" +msgstr "Altre piattaforme" + +#: ../build/bin/preferences_gen.h:6586 +msgid "" +"if set, all unspecified platforms are accepted. only do this if no vendor " +"driver is available" +msgstr "" +"Se impostato, sono accettate tutte le piattaforme non specificate. Farlo " +"soltanto se non è disponibile alcun driver del produttore" + +#: ../build/bin/preferences_gen.h:6618 +msgid "security" +msgstr "Sicurezza" + +#: ../build/bin/preferences_gen.h:6639 +msgid "ask before removing images from the library" +msgstr "Chiedi prima di rimuovere immagini dalla libreria" + +#: ../build/bin/preferences_gen.h:6652 +msgid "always ask the user before removing image information from the library" +msgstr "" +"chiedi sempre prima di rimuovere le informazioni di un'immagine dalla " +"libreria" + +#: ../build/bin/preferences_gen.h:6673 +msgid "ask before deleting images from disk" +msgstr "Chiedi prima di rimuovere le immagini dal disco" + +#: ../build/bin/preferences_gen.h:6686 +msgid "always ask the user before any image file is deleted" +msgstr "Chiedi sempre prima di eliminare un'immagine." + +#: ../build/bin/preferences_gen.h:6707 +msgid "ask before discarding history stack" +msgstr "Chiedi conferma prima di eliminare la coda di sviluppo" + +#: ../build/bin/preferences_gen.h:6720 +msgid "always ask the user before history stack is discarded on any image" +msgstr "" +"Chiedi sempre conferma all'utente prima di cancellare la coda di sviluppo da " +"qualsiasi immagine." + +#: ../build/bin/preferences_gen.h:6741 +msgid "try to use trash when deleting images" +msgstr "Prova ad usare il cestino quando cancelli immagini" + +#: ../build/bin/preferences_gen.h:6754 +msgid "" +"send files to trash instead of permanently deleting files on system that " +"supports it" +msgstr "" +"Se il sistema lo supporta, sposta i file nel cestino invece di eliminarli " +"permanentemente" + +#: ../build/bin/preferences_gen.h:6775 +msgid "ask before moving images from film roll folder" +msgstr "Chiedi prima di rimuovere immagini dalla cartella del rullino" + +#: ../build/bin/preferences_gen.h:6788 +msgid "always ask the user before any image file is moved." +msgstr "Chiedi sempre prima di spostare un'immagine." + +#: ../build/bin/preferences_gen.h:6809 +msgid "ask before copying images to new film roll folder" +msgstr "Chiedi prima di copiare le immagini nella cartella di un nuovo rullino" + +#: ../build/bin/preferences_gen.h:6822 +msgid "always ask the user before any image file is copied." +msgstr "Chiedi sempre prima di copiare il file di un'immagine." + +#: ../build/bin/preferences_gen.h:6843 +msgid "ask before removing empty folders" +msgstr "Chiedi conferma prima di rimuovere le cartelle vuote" + +#: ../build/bin/preferences_gen.h:6856 +msgid "" +"always ask the user before removing any empty folder. this can happen after " +"moving or deleting images." +msgstr "" +"Chiedi sempre conferma all'utente prima di rimuovere una cartella vuota: " +"questo può accadere dopo che una serie di immagini sia stata spostata o " +"cancellata." + +#: ../build/bin/preferences_gen.h:6877 +msgid "ask before deleting a tag" +msgstr "Chiedi prima di eliminare un'etichetta" + +#: ../build/bin/preferences_gen.h:6910 +msgid "ask before deleting a style" +msgstr "Chiedi prima di eliminare uno stile" + +#: ../build/bin/preferences_gen.h:6943 +msgid "ask before deleting a preset" +msgstr "Chiedi prima di eliminare una preimpostazione" + +#: ../build/bin/preferences_gen.h:6956 +msgid "will ask for confirmation before deleting or overwriting a preset" +msgstr "Chiedi conferma prima di eliminare o sovrascrivere una preimpostazione" + +#: ../build/bin/preferences_gen.h:6977 +msgid "ask before exporting in overwrite mode" +msgstr "Chiedi prima di esportare in modalità sovrascrivi" + +#: ../build/bin/preferences_gen.h:6990 +msgid "will ask for confirmation before exporting files in overwrite mode" +msgstr "Chiedi conferma prima di esportare i file in modalità sovrascrittura" + +#. italic +#: ../build/bin/preferences_gen.h:6999 ../src/libs/tools/viewswitcher.c:148 +msgid "other" +msgstr "Altro" + +#: ../build/bin/preferences_gen.h:7018 +msgid "password storage backend to use" +msgstr "Gestore password da utilizzare" + +#: ../build/bin/preferences_gen.h:7036 +msgid "" +"the storage backend for password storage: auto, none, libsecret, kwallet" +msgstr "" +"Gestore delle password memorizzate: automatico, nessuno, libsecret, kwallet" + +#: ../build/bin/preferences_gen.h:7057 +msgid "executable for playing audio files" +msgstr "Applicazione per file audio" + +#: ../build/bin/preferences_gen.h:7075 +msgid "" +"this external program is used to play audio files some cameras record to " +"keep notes for images" +msgstr "" +"Questa applicazione esterna è usata per ascoltare i file audio che alcune " +"fotocamere registrano per prendere note relative alle immagini" + +#: ../build/bin/preferences_gen.h:7107 +msgid "storage" +msgstr "Supporto" + +#: ../build/bin/preferences_gen.h:7109 ../src/control/crawler.c:717 +msgid "database" +msgstr "Database" + +#: ../build/bin/preferences_gen.h:7128 +msgid "create database snapshot" +msgstr "Crea un'istantanea del database" + +#: ../build/bin/preferences_gen.h:7142 +msgid "" +"database snapshots are created right before closing darktable. options allow " +"you to choose how often to make snapshots:\n" +" - 'never': simply don't do snapshots. that way the only snapshots done are " +"mandatory version-upgrade snapshots\n" +" - 'once a month': create snapshot if a month has passed since last " +"snapshot\n" +" - 'once a week': create snapshot if 7 days had passed since last snapshot\n" +" - 'once a day': create snapshot if over 24h passed since last snapshot\n" +" - 'on close': create snapshot every time darktable is closed" +msgstr "" +"Le istantanee del database vengono create appena prima la chiusura di " +"darktable. Le opzioni consentono di scegliere quanto spesso fare le " +"istantanee:\n" +"- 'Mai' - semplicemente non crea istantanee. In questo modo le uniche " +"istantanee fatte sono quelle obbligatorie per gli aggiornamenti di versione\n" +"- 'Una volta al mese' - crea un'istantanea se è passato un mese dall'ultima " +"creata\n" +"- 'Una volta a settimana' - crea un'istantanea se sono passati 7 giorni " +"dall'ultima creata\n" +"- 'Una volta al giorno' - crea un'istantanea se sono passate più di 24 ore " +"dall'ultima creata\n" +"- 'Alla chiusura' - crea un'istantanea ogni volta che darktable viene chiuso" + +#: ../build/bin/preferences_gen.h:7163 +msgid "how many snapshots to keep" +msgstr "Quante istantanee tenere" + +#: ../build/bin/preferences_gen.h:7186 +msgid "" +"after successfully creating snapshot, how many older snapshots to keep " +"(excluding mandatory version update ones). enter -1 to keep all snapshots\n" +"keep in mind that snapshots do take some space and you only need the most " +"recent one for successful restore" +msgstr "" +"Dopo che è stata creata un istantanea con successo, quante istantanee tenere " +"(escluse quelle obbligatorie di aggiornamento di versione). Inserisci -1 per " +"tenere tutte le istantanee\n" +"Tieni a mente che le istantanee occupano un po' di spazio e che hai bisogno " +"solo della più recente per ripristinare con successo." + +#: ../build/bin/preferences_gen.h:7195 ../src/libs/copy_history.c:149 +msgid "XMP sidecar files" +msgstr "File di elaborazione XMP" + +#: ../build/bin/preferences_gen.h:7214 +msgid "create XMP files" +msgstr "crea file XMP" + +#: ../build/bin/preferences_gen.h:7228 +msgid "" +"XMP sidecar files hold information about all your development steps to allow " +"flawless re-importing of image files.\n" +"\n" +"depending on the selected mode sidecar files will be created:\n" +" - 'never'\n" +" - 'on import': immediately after importing the image\n" +" - 'after edit': after any user change on the image or adding tags." +msgstr "" +"I file sidecar XMP registrano le informazioni di tutti i passi dello " +"sviluppo al fine di permettere una re-importazione senza problemi dei file " +"delle immagini.\n" +"\n" +"In base alla modalità selezionata i file sidecar saranno scritti:\n" +" - 'mai'\n" +" - 'all'importazione': subito dopo aver importato l'immagine\n" +" - 'dopo la modifica': dopo qualsiasi modifica effettuata dall'utente " +"sull'immagine o all'aggiunta di etichette" + +#: ../build/bin/preferences_gen.h:7249 +msgid "store XMP tags in compressed format" +msgstr "Archivia i tag XMP in formato compresso" + +#: ../build/bin/preferences_gen.h:7263 +msgid "" +"entries in XMP tags can get rather large and may exceed the available space " +"to store the history stack in output files.\n" +"this option allows XMP tags to be compressed and save space." +msgstr "" +"I tag nel file XMP posso diventare piuttosto grandi e possono eccedere lo " +"spazio disponibile per salvare la coda di sviluppo nei files di output. \n" +"Questa opzione permette ai tag XMP di poter essere compressi e salvare " +"spazio." + +#: ../build/bin/preferences_gen.h:7284 +msgid "auto-save interval" +msgstr "Intervallo di auto salvataggio" + +#: ../build/bin/preferences_gen.h:7307 +msgid "" +"automatically save history while developing using the given interval (in " +"seconds); set to zero to disable auto-saving. auto-saving might be disabled " +"on slow drives." +msgstr "" +"salva automaticamente la storia mentre si sviluppa utilizzando l'intervallo " +"specificato(in secondi); impostare a zero per disabilitare il salvataggio " +"automatico. Potrebbe essere disabilitato con dischi lenti." + +#: ../build/bin/preferences_gen.h:7328 +msgid "look for updated XMP files on startup" +msgstr "Controlla i file XMP aggiornati all'avvio" + +#: ../build/bin/preferences_gen.h:7341 +msgid "" +"check file modification times of all XMP files on startup to check if any " +"got updated in the meantime" +msgstr "" +"Controlla all'avvio la data di modifica di tutti i file XMP per verificare " +"se sono stati aggiornati nel frattempo" + +#: ../build/bin/preferences_gen.h:7373 +msgid "miscellaneous" +msgstr "Altro" + +#: ../build/bin/preferences_gen.h:7375 +msgid "interface" +msgstr "Interfaccia" + +#: ../build/bin/preferences_gen.h:7394 +msgid "load default shortcuts at startup" +msgstr "Carica le scorciatoie predefinite all'avvio" + +#: ../build/bin/preferences_gen.h:7407 +msgid "" +"load default shortcuts before user settings. switch off to prevent deleted " +"defaults returning" +msgstr "" +"Carica le scorciatoie predefinite prima delle impostazioni utente. " +"Disattivare per prevenire che le scorciatoie predefinite eliminate vengano " +"ripristinate" + +#: ../build/bin/preferences_gen.h:7428 +msgid "scale slider step with min/max" +msgstr "Adatta il passo del selettore scorrevole con minimo/massimo" + +#: ../build/bin/preferences_gen.h:7441 +msgid "vary slider step size with min/max range" +msgstr "modifica il passo del selettore scorrevole con un intervallo min/max" + +#: ../build/bin/preferences_gen.h:7462 +msgid "sort built-in presets first" +msgstr "Ordina prima le preimpostazioni integrate" + +#: ../build/bin/preferences_gen.h:7475 +msgid "" +"whether to show built-in presets first before user's presets in presets menu." +msgstr "" +"Se mostrare le preimpostazioni predefinite prima di quelle dell'utente nel " +"menù delle preimpostazioni." + +#: ../build/bin/preferences_gen.h:7496 +msgid "mouse wheel scrolls modules side panel by default" +msgstr "La rotella del mouse scorre i moduli all'interno dei pannelli laterali" + +#: ../build/bin/preferences_gen.h:7509 +msgid "" +"when enabled, use mouse wheel to scroll modules side panel. use ctrl+alt to " +"use mouse wheel for data entry. when disabled, this behavior is reversed" +msgstr "" +"Se abilitato permette di utilizzare la rotella del mouse per scorrere i " +"moduli nel pannello laterale. Usa Crtl+Alt per utilizzare la rotella del " +"mouse per immettere i dati. Se disabilitato, si comporta al contrario." + +#: ../build/bin/preferences_gen.h:7530 +msgid "always show panels' scrollbars" +msgstr "Mostra sempre le barre di scorrimento dei pannelli" + +#: ../build/bin/preferences_gen.h:7543 +msgid "" +"defines whether the panel scrollbars should be always visible or activated " +"only depending on the content. (need a restart)" +msgstr "" +"Stabilisce se le barre di scorrimento dei pannelli debbano essere sempre " +"visibili o se debbano essere attivate solo in base al contenuto (necessario " +"il riavvio)" + +#: ../build/bin/preferences_gen.h:7564 +msgid "duration of the UI transitions in ms" +msgstr "Durata in ms delle transizioni dell'interfaccia utente" + +#: ../build/bin/preferences_gen.h:7588 +msgid "" +"how long the transitions take (in ms) for expanding or collapsing modules " +"and other UI elements" +msgstr "" +"Quanto devono durare (in ms) le transizioni per espandere o comprimere i " +"moduli e altri elementi dell'interfaccia grafica" + +#: ../build/bin/preferences_gen.h:7609 +msgid "position of the scopes module" +msgstr "Posizione del modulo ambiti" + +#: ../build/bin/preferences_gen.h:7623 +msgid "position the scopes at the top-left or top-right of the screen" +msgstr "" +"Posizionare gli ambiti in alto a sinistra o in alto a destra dello schermo" + +#: ../build/bin/preferences_gen.h:7644 +msgid "method to use for getting the display profile" +msgstr "Metodo da usare per ottenere il profilo dello schermo" + +#: ../build/bin/preferences_gen.h:7658 +msgid "" +"this option allows to force a specific means of getting the current display " +"profile.\n" +"this is useful when one alternative gives wrong results" +msgstr "" +"Quest'opzione permette di forzare un sistema specifico per reperire il " +"profilo di visualizzazione corrente.\n" +"Utile quando un'alternativa fornisce risultati sbagliati" + +#: ../build/bin/preferences_gen.h:7679 +msgid "order or exclude MIDI devices" +msgstr "Ordina o escludi dispositivi MIDI" + +#: ../build/bin/preferences_gen.h:7697 +msgid "" +"comma-separated list of device name fragments that if matched load MIDI " +"device at id given by location in list\n" +"or if preceded by '-' prevent matching devices from loading. add encoding " +"and number of knobs like 'BeatStep:63:16'" +msgstr "" +"Una lista di termini, separati da virgola, con i frammenti dei nomi dei " +"dispositivi i quali, se corrispondono, caricano il dispositivo MIDI " +"all'identificativo dato dalla posizione della lista,\n" +"se preceduto da '-' impedisce che i dispositivi corrispondenti vengano " +"caricati. Aggiunge l'encoding e il numero di manopole tipo 'BeatStep:63:16'" + +#. tags +#: ../build/bin/preferences_gen.h:7716 ../src/develop/lightroom.c:1573 +#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:322 +#: ../src/libs/image.c:614 ../src/libs/metadata_view.c:166 +msgid "tags" +msgstr "Etichette" + +#: ../build/bin/preferences_gen.h:7735 +msgid "omit hierarchy in simple tag lists" +msgstr "Nasconde la gerarchia e visualizza una lista di etichette" + +#: ../build/bin/preferences_gen.h:7748 +msgid "" +"when creating an XMP sidecar file the hierarchical tags are also added as a " +"simple list\n" +"of non-hierarchical ones to make them visible to some other programs.\n" +"when this option is checked darktable will only include their last part\n" +"and ignore the rest. so 'foo|bar|baz' will only add 'baz'." +msgstr "" +"quando si crea un file XMP, le etichette gerarchiche vengono aggiunte anche " +"come lista semplice\n" +"di etichette non gerarchiche, al fine di renderle visibili ad altri " +"programmi. \n" +"Quando quest'opzione è selezionata darktable includerà soltanto l'ultima " +"parte\n" +"e ignorerà il resto. Quindi di 'foo|bar|baz' aggiungerà soltanto 'baz'." + +#: ../build/bin/preferences_gen.h:7757 +msgid "shortcuts with multiple instances" +msgstr "Scorciatoie con istanze multiple" + +#: ../build/bin/preferences_gen.h:7776 +msgid "prefer focused instance" +msgstr "Prediligi instanza a fuoco" + +#: ../build/bin/preferences_gen.h:7789 +msgid "" +"where multiple instances of a module are present, apply shortcuts to the " +"instance that has focus\n" +"if none are focused, the preferences below control rules that are followed " +"(in order) to decide which module instance shortcuts will be applied to.\n" +"note: blending shortcuts always apply to the focused instance" +msgstr "" +"Dove sono presenti istanze multiple di un modulo, applica le scorciatoie da " +"tastiera all'istanza a fuoco\n" +"Se nessun istanza è a fuoco, questa opzione controlla le regole che " +"vengonoseguite (in ordine) per stabilire a quale istanza del modulo devono " +"essere applicate le scorciatoie.\n" +"Nota: le scorciatoie di fusione vengono sempre applicate all'istanza a fuoco" + +#: ../build/bin/preferences_gen.h:7810 +msgid "prefer expanded instances" +msgstr "Precedenza alle istanze espanse" + +#: ../build/bin/preferences_gen.h:7823 +msgid "if instances of the module are expanded, ignore collapsed instances" +msgstr "Se le istanze del modulo sono espanse, ignora quelle compresse." + +#: ../build/bin/preferences_gen.h:7844 +msgid "prefer enabled instances" +msgstr "Precedenza alle istanze abilitate" + +#: ../build/bin/preferences_gen.h:7857 +msgid "" +"after applying the above rule, if instances of the module are active, ignore " +"inactive instances" +msgstr "" +"Dopo aver applicato la regola precedente, se le istanze del modulo sono " +"attive, ignora quelle disattivate." + +#: ../build/bin/preferences_gen.h:7878 +msgid "prefer unmasked instances" +msgstr "Precedenza alle istanze senza maschere" + +#: ../build/bin/preferences_gen.h:7891 +msgid "" +"after applying the above rules, if instances of the module are unmasked, " +"ignore masked instances" +msgstr "" +"Dopo aver applicato le regole precedenti, se le istanze del modulo non hanno " +"maschere, ignora quelle con maschere." + +#: ../build/bin/preferences_gen.h:7912 +msgid "selection order" +msgstr "Ordine di selezione" + +#: ../build/bin/preferences_gen.h:7926 +msgid "" +"after applying the above rules, apply the shortcut based on its position in " +"the pixelpipe" +msgstr "" +"Dopo aver applicato le regole precedenti, applica la scorciatoia in base " +"alla posizione nella coda di sviluppo (pixelpipe)" + +#: ../build/bin/preferences_gen.h:7947 +msgid "allow visual assignment to specific instances" +msgstr "Consenti l'assegnazione visuale a specifiche istanze" + +#: ../build/bin/preferences_gen.h:7960 +msgid "" +"when multiple instances are present on an image this allows shortcuts to be " +"visually assigned to those specific instances\n" +"otherwise shortcuts will always be assigned to the preferred instance" +msgstr "" +"Quanto sono presenti istanze multiple sull'immagine questo consente che le " +"scorciatoie vengano assegnate visivamente a queste specifiche istanze\n" +"Altrimenti le scorciatoie saranno sempre assegnate all'istanza preferita" + +#: ../build/bin/preferences_gen.h:7969 +msgid "map / geolocalization view" +msgstr "Vista mappa / geolocalizzazione" + +#: ../build/bin/preferences_gen.h:7988 +msgid "pretty print the image location" +msgstr "Stampa la posizione dell'immagine" + +#: ../build/bin/preferences_gen.h:8001 +msgid "" +"show a more readable representation of the location in the image information " +"module" +msgstr "" +"Mostra una rappresentazione più leggibile della posizione nel modulo " +"informazioni dell'immagine" + +#: ../build/bin/preferences_gen.h:8010 +msgid "slideshow view" +msgstr "Vista presentazione" + +#: ../build/bin/preferences_gen.h:8029 +msgid "waiting time between each picture in slideshow" +msgstr "Intervallo di tempo tra le foto durante la presentazione" + +#: ../build/bin/preferences_gen.h:8089 +msgid "do not set the 'uncategorized' entry for tags" +msgstr "Non impostare la voce 'senza categoria' per le etichette" + +#: ../build/bin/preferences_gen.h:8102 +msgid "" +"do not set the 'uncategorized' entry for tags which do not have children" +msgstr "" +"Non impostare la voce 'senza categoria' per le etichette che non hanno figli" + +#: ../build/bin/preferences_gen.h:8123 +msgid "tags case sensitivity" +msgstr "Etichette sensibili alle maiuscole" + +#: ../build/bin/preferences_gen.h:8137 +msgid "" +"tags case sensitivity. without the Sqlite ICU extension, insensitivity works " +"only for the 26 latin letters" +msgstr "" +"Etichette sensibili alle maiuscole. Senza l'estensione Sqlite ICU la non " +"sensibilità funziona solo sui 26 caratteri latini" + +#: ../build/bin/preferences_gen.h:8158 ../build/bin/preferences_gen.h:8369 +msgid "number of collections to be stored" +msgstr "Numero di raccolte da archiviare" + +#: ../build/bin/preferences_gen.h:8182 ../build/bin/preferences_gen.h:8393 +msgid "the number of recent collections to store and show in this list" +msgstr "Il numero di raccolte recenti da archiviare e mostrare in questa lista" + +#: ../build/bin/preferences_gen.h:8203 +msgid "hide the history button and show a specific module instead" +msgstr "Nascondi il pulsante storia e mostra invece un modulo specifico" + +#: ../build/bin/preferences_gen.h:8216 +msgid "hide the history button and show the recent collections module instead" +msgstr "Nascondi il pulsante storia e mostra invece il modulo raccolte recenti" + +#: ../build/bin/preferences_gen.h:8237 +msgid "number of folder levels to show in lists" +msgstr "Numero dei livelli di cartelle da mostrare nelle liste" + +#: ../build/bin/preferences_gen.h:8261 +msgid "" +"the number of folder levels to show in film roll names, starting from the " +"right" +msgstr "" +"Numero di livelli di cartella da mostrare nel nome del rullino, iniziando da " +"destra" + +#: ../build/bin/preferences_gen.h:8282 +msgid "sort film rolls by" +msgstr "Ordinamento rullino per" + +#: ../build/bin/preferences_gen.h:8296 +msgid "sets the collections-list order for film rolls" +msgstr "Imposta l'ordinamento della raccolta per i rullini" + +#: ../build/bin/preferences_gen.h:8317 +msgid "sort collection descending" +msgstr "Ordina in modo decrescente la raccolta" + +#: ../build/bin/preferences_gen.h:8330 +msgid "" +"sort the following collections in descending order: 'film roll' by folder, " +"'folder', 'times' (e.g. 'capture date')" +msgstr "" +"Ordina le seguenti raccolte in ordine discendente: 'rullino' per cartella, " +"'cartella', 'ore' (es: 'ora di scatto')" + +#: ../build/bin/preferences_gen.h:8414 +msgid "prefer a history button in the collections module" +msgstr "Preferisci un pulsante di coda di sviluppo nel modulo Raccolte" + +#: ../build/bin/preferences_gen.h:8427 +msgid "" +"hide this module and instead access collections history with a button in the " +"collections module" +msgstr "" +"Nascondi questo modulo e piuttosto accedi alla storia raccolte con un " +"pulsante nel modulo raccolte" + +#: ../build/bin/preferences_gen.h:8484 +msgid "suggested tags level of confidence" +msgstr "Livello di confidenza delle etichette suggerite" + +#: ../build/bin/preferences_gen.h:8509 +#, no-c-format +msgid "" +"level of confidence to include the tag in the suggestions list, 0: all " +"associated tags, 99: 99% matching associated tags, 100: no matching tag to " +"show only recent tags (faster)" +msgstr "" +"Livello di confidenza per includere l'etichetta nella lista dei " +"suggerimenti, 0: tutte le etichette associate, 99: 99% delle etichette " +"associate corrispondenti, 100: nessuna etichetta corrispondente, mostra solo " +"etichette recenti (più veloce)" + +#: ../build/bin/preferences_gen.h:8530 +msgid "number of recently attached tags" +msgstr "Numero di etichette recentemente aggiunte" + +#: ../build/bin/preferences_gen.h:8554 +msgid "" +"number of recently attached tags which are included in the suggestions list. " +"the value `-1' disables the recent list" +msgstr "" +"Numero di etichette aggiunte di recente che devono essere incluse nella " +"lista dei suggerimenti. Il valore '-1' disabilita la lista dei recenti" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:130 +#: ../build/lib/darktable/plugins/introspection_ashift.c:279 +msgid "lens shift (vertical)" +msgstr "Allinea lente (verticale)" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:136 +#: ../build/lib/darktable/plugins/introspection_ashift.c:283 +msgid "lens shift (horizontal)" +msgstr "Allinea lente (orizzontale)" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:142 +#: ../build/lib/darktable/plugins/introspection_ashift.c:287 +msgid "shear" +msgstr "Stira" + +#. focal length +#: ../build/lib/darktable/plugins/introspection_ashift.c:148 +#: ../build/lib/darktable/plugins/introspection_ashift.c:291 +#: ../src/common/collection.c:627 ../src/gui/preferences.c:842 +#: ../src/gui/presets.c:732 ../src/libs/camera.c:550 +#: ../src/libs/metadata_view.c:145 +msgid "focal length" +msgstr "Lunghezza focale" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:154 +#: ../build/lib/darktable/plugins/introspection_ashift.c:295 +#: ../src/libs/metadata_view.c:147 +msgid "crop factor" +msgstr "Fattore di ritaglio" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:160 +#: ../build/lib/darktable/plugins/introspection_ashift.c:299 +msgid "lens dependence" +msgstr "Dipendenza lente" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:166 +#: ../build/lib/darktable/plugins/introspection_ashift.c:303 +msgid "aspect adjust" +msgstr "Regolazione aspetto" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:172 +#: ../build/lib/darktable/plugins/introspection_ashift.c:307 +#: ../src/iop/lens.cc:4438 +msgid "lens model" +msgstr "Modello obiettivo" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:178 +#: ../build/lib/darktable/plugins/introspection_ashift.c:311 +#: ../build/lib/darktable/plugins/introspection_clipping.c:244 +#: ../build/lib/darktable/plugins/introspection_clipping.c:371 +msgid "automatic cropping" +msgstr "Ritaglio automatico" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:361 +#: ../build/lib/darktable/plugins/introspection_highlights.c:311 +msgid "generic" +msgstr "Generico" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:362 +msgid "specific" +msgstr "Specifico" + +#. DEVELOP_MASK_DISABLED +#: ../build/lib/darktable/plugins/introspection_ashift.c:366 +#: ../build/lib/darktable/plugins/introspection_colorin.c:303 +#: ../build/lib/darktable/plugins/introspection_highlights.c:310 +#: ../build/lib/darktable/plugins/introspection_vignette.c:264 +#: ../src/develop/blend_gui.c:153 ../src/develop/blend_gui.c:182 +#: ../src/develop/blend_gui.c:3429 ../src/gui/accelerators.c:148 +#: ../src/gui/accelerators.c:158 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/imageio/format/j2k.c:686 +#: ../src/libs/live_view.c:361 +msgid "off" +msgstr "Disabilitato" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:367 +msgid "largest area" +msgstr "Area più larga" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:368 +msgid "original format" +msgstr "Formato originale" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:134 +#: ../build/lib/darktable/plugins/introspection_basecurve.c:231 +msgid "fusion" +msgstr "Fusione" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:140 +#: ../build/lib/darktable/plugins/introspection_basecurve.c:235 +msgid "exposure shift" +msgstr "Cambio esposizione" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:146 +#: ../build/lib/darktable/plugins/introspection_basecurve.c:239 +#: ../src/libs/metadata_view.c:144 +msgid "exposure bias" +msgstr "Compensazione esposizione" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:152 +#: ../build/lib/darktable/plugins/introspection_basecurve.c:243 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:122 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:215 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:140 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:227 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:57 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:122 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:153 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:244 +msgid "preserve colors" +msgstr "Preserva colori" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:262 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:249 +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:153 +#: ../build/lib/darktable/plugins/introspection_lens.cc:533 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:251 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:153 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:270 +#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2215 +#: ../src/iop/channelmixerrgb.c:4735 ../src/iop/clipping.c:1953 +#: ../src/iop/clipping.c:2146 ../src/iop/clipping.c:2161 +#: ../src/iop/retouch.c:507 ../src/libs/collect.c:2043 +#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1101 +#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:109 +#: ../src/libs/live_view.c:311 ../src/libs/print_settings.c:2835 +msgid "none" +msgstr "Nessuno" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:263 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:250 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:226 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:244 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:262 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:280 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:461 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:473 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:485 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:497 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:252 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:154 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:271 +#: ../src/develop/blend_gui.c:2379 ../src/develop/blend_gui.c:2413 +msgid "luminance" +msgstr "Luminanza" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:264 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:251 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:550 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:253 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:155 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:272 +msgid "max RGB" +msgstr "RGB max" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:265 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:252 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:254 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:156 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:273 +msgid "average RGB" +msgstr "RGB medio" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:266 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:253 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:255 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:157 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:274 +msgid "sum RGB" +msgstr "Somma RGB" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:267 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:254 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:256 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:158 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:275 +msgid "norm RGB" +msgstr "RGB normale" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:268 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:255 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:257 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:159 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:276 +msgid "basic power" +msgstr "Potenza base" + +#: ../build/lib/darktable/plugins/introspection_basicadj.c:92 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:195 +#: ../build/lib/darktable/plugins/introspection_exposure.c:67 +#: ../build/lib/darktable/plugins/introspection_exposure.c:138 +msgid "black level correction" +msgstr "Correzione livello del nero" + +#: ../build/lib/darktable/plugins/introspection_basicadj.c:104 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:203 +msgid "highlight compression" +msgstr "Compressione alteluci" + +#: ../build/lib/darktable/plugins/introspection_basicadj.c:128 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:219 +msgid "middle gray" +msgstr "Grigio intermedio" + +#: ../build/lib/darktable/plugins/introspection_bilat.c:78 +#: ../build/lib/darktable/plugins/introspection_bilat.c:137 +msgid "midtone range" +msgstr "Intervallo dei mezzitoni" + +#: ../build/lib/darktable/plugins/introspection_bilat.c:151 +msgid "bilateral grid" +msgstr "Griglia bilaterale" + +#: ../build/lib/darktable/plugins/introspection_bilat.c:152 +msgid "local laplacian filter" +msgstr "Filtro laplacian locale" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:83 +#: ../build/lib/darktable/plugins/introspection_blurs.c:174 +#: ../build/lib/darktable/plugins/introspection_retouch.c:255 +#: ../build/lib/darktable/plugins/introspection_retouch.c:406 +msgid "blur type" +msgstr "Tipo sfocatura" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:89 +#: ../build/lib/darktable/plugins/introspection_blurs.c:178 +#: ../build/lib/darktable/plugins/introspection_retouch.c:261 +#: ../build/lib/darktable/plugins/introspection_retouch.c:410 +msgid "blur radius" +msgstr "Raggio di sfocatura" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:95 +#: ../build/lib/darktable/plugins/introspection_blurs.c:182 +msgid "diaphragm blades" +msgstr "Lame diaframma" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:101 +#: ../build/lib/darktable/plugins/introspection_blurs.c:186 +msgid "concavity" +msgstr "Concavità" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:107 +#: ../build/lib/darktable/plugins/introspection_blurs.c:190 +msgid "linearity" +msgstr "Linearità" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:113 +#: ../build/lib/darktable/plugins/introspection_blurs.c:194 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:75 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:144 +#: ../build/lib/darktable/plugins/introspection_watermark.c:136 +#: ../build/lib/darktable/plugins/introspection_watermark.c:265 +#: ../src/iop/ashift.c:6061 ../src/libs/masks.c:109 +msgid "rotation" +msgstr "Rotazione" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:119 +#: ../build/lib/darktable/plugins/introspection_blurs.c:198 +msgid "direction" +msgstr "Direzione" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:125 +#: ../build/lib/darktable/plugins/introspection_blurs.c:202 +#: ../src/libs/masks.c:110 +msgid "curvature" +msgstr "Curvatura" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:131 +#: ../build/lib/darktable/plugins/introspection_blurs.c:206 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:81 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:148 +#: ../src/iop/colorbalancergb.c:2042 +msgid "offset" +msgstr "Compensazione" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:220 +#: ../src/common/collection.c:625 ../src/gui/preferences.c:826 +#: ../src/gui/presets.c:674 ../src/libs/metadata_view.c:141 +msgid "lens" +msgstr "Obiettivo" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:221 +msgid "motion" +msgstr "Movimento" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:222 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:567 +#: ../build/lib/darktable/plugins/introspection_lowpass.c:189 +#: ../build/lib/darktable/plugins/introspection_retouch.c:452 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:267 +msgid "gaussian" +msgstr "Gaussiano" + +#: ../build/lib/darktable/plugins/introspection_borders.c:122 +#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../src/common/collection.c:635 ../src/libs/filtering.c:59 +msgid "aspect ratio" +msgstr "Proporzioni" + +#. // portrait / landscape +#: ../build/lib/darktable/plugins/introspection_borders.c:140 +#: ../build/lib/darktable/plugins/introspection_borders.c:281 +#: ../src/iop/flip.c:75 ../src/libs/print_settings.c:2517 +msgid "orientation" +msgstr "orientamento" + +#: ../build/lib/darktable/plugins/introspection_borders.c:146 +#: ../build/lib/darktable/plugins/introspection_borders.c:285 +msgid "border size" +msgstr "Dimensione bordo" + +#: ../build/lib/darktable/plugins/introspection_borders.c:152 +#: ../build/lib/darktable/plugins/introspection_borders.c:289 +msgid "horizontal offset" +msgstr "Compensazione orizzontale" + +#: ../build/lib/darktable/plugins/introspection_borders.c:170 +#: ../build/lib/darktable/plugins/introspection_borders.c:301 +msgid "vertical offset" +msgstr "Compensazione verticale" + +#: ../build/lib/darktable/plugins/introspection_borders.c:188 +#: ../build/lib/darktable/plugins/introspection_borders.c:313 +msgid "frame line size" +msgstr "Dimensione della cornice" + +#: ../build/lib/darktable/plugins/introspection_borders.c:194 +#: ../build/lib/darktable/plugins/introspection_borders.c:317 +msgid "frame line offset" +msgstr "Compensazione linea cornice" + +#: ../build/lib/darktable/plugins/introspection_borders.c:218 +#: ../build/lib/darktable/plugins/introspection_borders.c:333 +msgid "basis" +msgstr "Base" + +#: ../build/lib/darktable/plugins/introspection_borders.c:347 +#: ../build/lib/darktable/plugins/introspection_borders.c:353 +#: ../src/gui/preferences.c:847 ../src/imageio/format/jpeg.c:604 +#: ../src/iop/ashift.c:6240 ../src/iop/basicadj.c:662 ../src/iop/flip.c:470 +#: ../src/iop/flip.c:472 ../src/iop/levels.c:657 ../src/iop/rgblevels.c:1105 +msgid "auto" +msgstr "Auto" + +#: ../build/lib/darktable/plugins/introspection_borders.c:348 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:315 +#: ../src/libs/filters/ratio.c:122 ../src/libs/print_settings.c:2519 +msgid "portrait" +msgstr "Verticale/Ritratto" + +#: ../build/lib/darktable/plugins/introspection_borders.c:349 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:311 +#: ../src/libs/filters/ratio.c:124 ../src/libs/print_settings.c:2519 +msgid "landscape" +msgstr "Orizzontale/Panorama" + +#: ../build/lib/darktable/plugins/introspection_borders.c:354 +#: ../src/iop/relight.c:275 ../src/libs/export.c:1223 +#: ../src/libs/metadata_view.c:151 ../src/libs/print_settings.c:2537 +msgid "width" +msgstr "Larghezza" + +#: ../build/lib/darktable/plugins/introspection_borders.c:355 +#: ../build/lib/darktable/plugins/introspection_watermark.c:326 +#: ../src/libs/export.c:1229 ../src/libs/metadata_view.c:152 +#: ../src/libs/print_settings.c:2541 +msgid "height" +msgstr "Altezza" + +#: ../build/lib/darktable/plugins/introspection_borders.c:356 +msgid "shorter" +msgstr "più corto" + +#: ../build/lib/darktable/plugins/introspection_borders.c:357 +msgid "longer" +msgstr "Più lungo" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:42 +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:91 +msgid "avoid colorshift" +msgstr "Evita lo spostamento colore" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:48 +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:95 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:117 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:244 +#: ../build/lib/darktable/plugins/introspection_highlights.c:155 +#: ../build/lib/darktable/plugins/introspection_highlights.c:252 +msgid "iterations" +msgstr "Iterazioni" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:109 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:205 +msgid "once" +msgstr "Uno" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:110 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:206 +msgid "twice" +msgstr "Due volte" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:111 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:207 +msgid "three times" +msgstr "Tre volte" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:112 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:208 +msgid "four times" +msgstr "Quattro volte" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:113 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:209 +msgid "five times" +msgstr "Cinque volte" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:61 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:128 +msgid "guide" +msgstr "Guida" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:67 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:132 +#: ../build/lib/darktable/plugins/introspection_lens.cc:340 +#: ../build/lib/darktable/plugins/introspection_lens.cc:501 +#: ../src/iop/atrous.c:1636 ../src/iop/bilateral.cc:352 ../src/iop/clahe.c:337 +#: ../src/iop/dither.c:762 ../src/iop/lowpass.c:598 ../src/iop/shadhi.c:711 +#: ../src/iop/sharpen.c:435 +msgid "radius" +msgstr "Raggio " + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:73 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:136 +#: ../build/lib/darktable/plugins/introspection_highlights.c:137 +#: ../build/lib/darktable/plugins/introspection_highlights.c:240 +#: ../build/lib/darktable/plugins/introspection_lens.cc:334 +#: ../build/lib/darktable/plugins/introspection_lens.cc:497 +#: ../src/iop/bloom.c:372 ../src/iop/denoiseprofile.c:3822 +#: ../src/iop/grain.c:602 ../src/iop/hazeremoval.c:203 +#: ../src/iop/hotpixels.c:467 ../src/iop/nlmeans.c:463 ../src/iop/velvia.c:288 +msgid "strength" +msgstr "Intensità" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:79 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:140 +msgid "correction mode" +msgstr "Modo correzione" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:85 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:144 +msgid "very large chromatic aberration" +msgstr "Aberrazione cromatica molto ampia" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:158 +#: ../src/common/collection.c:1374 ../src/common/color_vocabulary.c:232 +#: ../src/common/colorlabels.c:333 ../src/develop/blend_gui.c:2346 +#: ../src/develop/blend_gui.c:2394 ../src/develop/lightroom.c:887 +#: ../src/gui/gtk.c:3192 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:356 +#: ../src/iop/channelmixer.c:637 ../src/iop/channelmixer.c:647 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/colorzones.c:2499 +#: ../src/iop/temperature.c:1912 ../src/iop/temperature.c:2094 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:260 +#: ../src/libs/histogram.c:2724 +msgid "red" +msgstr "Rosso" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:159 +#: ../src/common/collection.c:1378 ../src/common/color_vocabulary.c:277 +#: ../src/common/colorlabels.c:335 ../src/develop/blend_gui.c:2352 +#: ../src/develop/blend_gui.c:2400 ../src/develop/lightroom.c:891 +#: ../src/gui/gtk.c:3193 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:361 +#: ../src/iop/channelmixer.c:638 ../src/iop/channelmixer.c:653 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/colorzones.c:2502 +#: ../src/iop/temperature.c:1896 ../src/iop/temperature.c:1914 +#: ../src/iop/temperature.c:2095 ../src/libs/collect.c:1916 +#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2715 +msgid "green" +msgstr "Verde" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:160 +#: ../src/common/collection.c:1380 ../src/common/color_vocabulary.c:324 +#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2358 +#: ../src/develop/blend_gui.c:2406 ../src/develop/lightroom.c:893 +#: ../src/gui/gtk.c:3194 ../src/iop/bilateral.cc:366 +#: ../src/iop/channelmixer.c:639 ../src/iop/channelmixer.c:659 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/colorzones.c:2504 +#: ../src/iop/temperature.c:1916 ../src/iop/temperature.c:2096 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:263 +#: ../src/libs/histogram.c:2706 +msgid "blue" +msgstr "Blu" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:164 +msgid "standard" +msgstr "Standard" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:165 +msgid "darken only" +msgstr "Scurisci solamente" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:166 +msgid "brighten only" +msgstr "Schiarisci solamente" + +#: ../build/lib/darktable/plugins/introspection_censorize.c:51 +#: ../build/lib/darktable/plugins/introspection_censorize.c:112 +msgid "input blur radius" +msgstr "Imposta il raggio di sfocatura" + +#: ../build/lib/darktable/plugins/introspection_censorize.c:57 +#: ../build/lib/darktable/plugins/introspection_censorize.c:116 +msgid "pixellation radius" +msgstr "Raggio di pixelizzazione" + +#: ../build/lib/darktable/plugins/introspection_censorize.c:63 +#: ../build/lib/darktable/plugins/introspection_censorize.c:120 +msgid "output blur radius" +msgstr "Raggio di sfocatura di uscita" + +#: ../build/lib/darktable/plugins/introspection_censorize.c:69 +#: ../build/lib/darktable/plugins/introspection_censorize.c:124 +#: ../build/lib/darktable/plugins/introspection_highlights.c:149 +#: ../build/lib/darktable/plugins/introspection_highlights.c:248 +msgid "noise level" +msgstr "Livello di rumore" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:252 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:258 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:264 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:270 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:276 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:282 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:433 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:437 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:441 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:445 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:449 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:453 +msgid "normalize channels" +msgstr "Normalizza canali" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:294 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:461 +msgid "F source" +msgstr "Sorgente F" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:300 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:465 +msgid "LED source" +msgstr "Sorgente LED" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:330 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:485 +msgid "gamut compression" +msgstr "Compressione gamut" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:336 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:489 +msgid "clip negative RGB from gamut" +msgstr "Taglia i valori RGB negativi dalla gamma" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:342 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:493 +msgid "saturation algorithm" +msgstr "Algoritmo di saturazione" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:507 +msgid "same as pipeline (D50)" +msgstr "Come la coda di sviluppo (D50)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:508 +msgid "A (incandescent)" +msgstr "A (incandescenza)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:509 +msgid "D (daylight)" +msgstr "D (luce diurna)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:510 +msgid "E (equi-energy)" +msgstr "E (equi-energia)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:511 +msgid "F (fluorescent)" +msgstr "F (fluorescente)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:512 +msgid "LED (LED light)" +msgstr "LED (luce a LED)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:513 +msgid "Planckian (black body)" +msgstr "Planckiano (corpo nero)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:514 +#: ../src/common/iop_order.c:59 +msgid "custom" +msgstr "Personalizzato" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:515 +msgid "(AI) detect from image surfaces..." +msgstr "(AI) rileva dalle superfici delle immagini..." + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:516 +msgid "(AI) detect from image edges..." +msgstr "(AI) rileva dai margini dell'immagine..." + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:517 +msgid "as shot in camera" +msgstr "Come scattato dalla camera" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:522 +msgid "F1 (Daylight 6430 K) – medium CRI" +msgstr "F1 (luce diurna 6430 K) - CRI medio" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:523 +msgid "F2 (Cool White 4230 K) – medium CRI" +msgstr "F2 (Bianco freddo 4230 K) – CRI medio" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:524 +msgid "F3 (White 3450 K) – medium CRI" +msgstr "F3 (Bianco 3450 K) – CRI medio" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:525 +msgid "F4 (Warm White 2940 K) – medium CRI" +msgstr "F4 (Bianco caldo 2940 K) – CRI medio" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:526 +msgid "F5 (Daylight 6350 K) – medium CRI" +msgstr "F5 (Luce diurna 6350 K) – CRI medio" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:527 +msgid "F6 (Lite White 4150 K) – medium CRI" +msgstr "F6 (Bianco chiaro 4150 K) – CRI medio" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:528 +msgid "F7 (D65 simulator 6500 K) – high CRI" +msgstr "F7 (Simulator D65 6500 K) – CRI elevato" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:529 +msgid "F8 (D50 simulator 5000 K) – high CRI" +msgstr "F8 (Simulator D50 5000 K) – CRI elevato" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:530 +msgid "F9 (Cool White Deluxe 4150 K) – high CRI" +msgstr "F9 (Bianco freddo Deluxe 4150 K) – CRI elevato" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:531 +msgid "F10 (Tuned RGB 5000 K) – low CRI" +msgstr "F10 (RGB regolato 5000 K) – CRI basso" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:532 +msgid "F11 (Tuned RGB 4000 K) – low CRI" +msgstr "F11 (RGB regolato 4000 K) – CRI basso" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:533 +msgid "F12 (Tuned RGB 3000 K) – low CRI" +msgstr "F12 (RGB regolato 3000 K) – CRI basso" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:538 +msgid "B1 (Blue 2733 K)" +msgstr "B1 (Blu 2733 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:539 +msgid "B2 (Blue 2998 K)" +msgstr "B2 (Blu 2998 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:540 +msgid "B3 (Blue 4103 K)" +msgstr "B3 (Blu 4103 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:541 +msgid "B4 (Blue 5109 K)" +msgstr "B4 (Blu 5109 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:542 +msgid "B5 (Blue 6598 K)" +msgstr "B5 (Blu 6598 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:543 +msgid "BH1 (Blue-Red hybrid 2851 K)" +msgstr "BH1 (Blu-Rosso ibrido 2851 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:544 +msgid "RGB1 (RGB 2840 K)" +msgstr "RGB1 (RGB 2840 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:545 +msgid "V1 (Violet 2724 K)" +msgstr "V1 (Violetto 2724 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:546 +msgid "V2 (Violet 4070 K)" +msgstr "V2 (Violetto 4070 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:551 +msgid "linear Bradford (ICC v4)" +msgstr "Bradford lineare (ICC v4)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:552 +msgid "CAT16 (CIECAM16)" +msgstr "CAT16 (CIECAM16)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:553 +msgid "non-linear Bradford" +msgstr "Bradford non lineare" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:554 +msgid "XYZ" +msgstr "XYZ" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:555 +msgid "none (bypass)" +msgstr "Nessuno (bypassa)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:560 +msgid "version 1 (2020)" +msgstr "Versione 1 (2020)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:561 +msgid "version 2 (2021)" +msgstr "Versione 2 (2021)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:562 +msgid "version 3 (Apr 2021)" +msgstr "Versione 3 (aprile 2021)" + +#: ../build/lib/darktable/plugins/introspection_clipping.c:142 +#: ../build/lib/darktable/plugins/introspection_clipping.c:303 +#: ../build/lib/darktable/plugins/introspection_crop.c:61 +#: ../build/lib/darktable/plugins/introspection_crop.c:134 +#: ../src/gui/gtk.c:1234 ../src/iop/atrous.c:1632 +msgid "left" +msgstr "Sinistra" + +#: ../build/lib/darktable/plugins/introspection_clipping.c:148 +#: ../build/lib/darktable/plugins/introspection_clipping.c:307 +#: ../build/lib/darktable/plugins/introspection_crop.c:67 +#: ../build/lib/darktable/plugins/introspection_crop.c:138 +#: ../src/gui/accelerators.c:131 ../src/gui/gtk.c:1240 +msgid "top" +msgstr "In alto" + +#: ../build/lib/darktable/plugins/introspection_clipping.c:154 +#: ../build/lib/darktable/plugins/introspection_clipping.c:311 +#: ../build/lib/darktable/plugins/introspection_crop.c:73 +#: ../build/lib/darktable/plugins/introspection_crop.c:142 +#: ../src/gui/gtk.c:1237 ../src/iop/atrous.c:1631 +msgid "right" +msgstr "Destra" + +#: ../build/lib/darktable/plugins/introspection_clipping.c:160 +#: ../build/lib/darktable/plugins/introspection_clipping.c:315 +#: ../build/lib/darktable/plugins/introspection_crop.c:79 +#: ../build/lib/darktable/plugins/introspection_crop.c:146 +#: ../src/gui/accelerators.c:132 ../src/gui/gtk.c:1243 +msgid "bottom" +msgstr "In basso" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:114 +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:203 +msgid "input saturation" +msgstr "Saturazione in ingresso" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:126 +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:211 +msgid "contrast fulcrum" +msgstr "Fulcro contrasto" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:132 +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:215 +msgid "output saturation" +msgstr "Saturazione in uscita" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:229 +msgid "lift, gamma, gain (ProPhoto RGB)" +msgstr "lift, gamma, gain (ProPhoto RGB)" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:230 +msgid "slope, offset, power (ProPhoto RGB)" +msgstr "slope, offset, power (ProPhoto RGB)" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:231 +msgid "lift, gamma, gain (sRGB)" +msgstr "lift, gamma, gain (sRGB)" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:232 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:250 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:268 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:286 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:465 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:477 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:489 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:501 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 +#: ../src/develop/blend_gui.c:2372 ../src/develop/blend_gui.c:2420 +#: ../src/iop/atrous.c:1801 ../src/iop/channelmixerrgb.c:4525 +#: ../src/iop/channelmixerrgb.c:4641 ../src/iop/colorbalancergb.c:1969 +#: ../src/iop/colorzones.c:2645 ../src/iop/nlmeans.c:471 +msgid "chroma" +msgstr "Cromaticità" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:238 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:256 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:274 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:292 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:469 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:481 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:493 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:505 +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:155 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:257 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:87 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:152 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:61 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:73 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:134 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:142 +#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2365 +#: ../src/develop/blend_gui.c:2427 ../src/iop/channelmixer.c:634 +#: ../src/iop/channelmixerrgb.c:4518 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/colorbalance.c:2017 ../src/iop/colorize.c:343 +#: ../src/iop/colorreconstruction.c:1249 ../src/iop/colorzones.c:2646 +msgid "hue" +msgstr "Tonalità" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:298 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:509 +msgid "shadows fall-off" +msgstr "Decadimento delle ombre" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:304 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:513 +msgid "white fulcrum" +msgstr "Fulcro del bianco" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:310 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:517 +msgid "highlights fall-off" +msgstr "Decadimento delle alteluci" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:316 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:358 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:388 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:521 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:549 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:569 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:156 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:297 +#: ../src/iop/bilat.c:479 ../src/iop/colorbalance.c:2074 +#: ../src/iop/negadoctor.c:934 ../src/iop/shadhi.c:707 +#: ../src/iop/splittoning.c:503 +msgid "shadows" +msgstr "Ombre" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:322 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:346 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:376 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:525 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:541 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:561 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:180 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:313 +#: ../src/iop/bilat.c:473 ../src/iop/colorbalance.c:2076 +#: ../src/iop/monochrome.c:583 ../src/iop/shadhi.c:708 +#: ../src/iop/splittoning.c:510 +msgid "highlights" +msgstr "Alteluci" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:328 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:529 +msgid "global chroma" +msgstr "Cromaticità globale" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:334 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:352 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:382 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:533 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:545 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:565 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:168 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:305 +#: ../src/iop/colorbalance.c:2075 +msgid "mid-tones" +msgstr "Mezzitoni" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:340 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:537 +#: ../src/iop/filmic.c:1601 +msgid "global saturation" +msgstr "Saturazione globale" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:364 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:553 +msgid "hue shift" +msgstr "Spostamento di tonalità" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:370 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:557 +msgid "global brilliance" +msgstr "Brillantezza globale" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:394 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:573 +msgid "mask middle-gray fulcrum" +msgstr "Fulcro della maschera del grigio medio" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:400 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:577 +msgid "global vibrance" +msgstr "Vibranza globale" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:406 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:581 +msgid "contrast gray fulcrum" +msgstr "Fulcro del contrasto del grigio" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:412 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:585 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:116 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:237 +#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:637 ../src/iop/bilat.c:468 +#: ../src/iop/colisa.c:298 ../src/iop/colorbalance.c:1922 +#: ../src/iop/colorbalance.c:1928 ../src/iop/filmic.c:1573 +#: ../src/iop/filmicrgb.c:4615 ../src/iop/lowpass.c:600 +msgid "contrast" +msgstr "Contrasto" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:418 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:589 +msgid "saturation formula" +msgstr "Formula di saturazione" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:603 +msgid "JzAzBz (2021)" +msgstr "JzAzBz (2021)" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:604 +msgid "darktable UCS (2022)" +msgstr "darktable UCS (2022)" + +#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:54 +#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:121 +msgid "green-magenta contrast" +msgstr "Contrasto verde-magenta" + +#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:66 +#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:129 +msgid "blue-yellow contrast" +msgstr "Contrasto blu-giallo" + +#: ../build/lib/darktable/plugins/introspection_colorin.c:150 +#: ../build/lib/darktable/plugins/introspection_colorin.c:233 +msgid "gamut clipping" +msgstr "Tosaggio gamma" + +#: ../build/lib/darktable/plugins/introspection_colorin.c:304 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:312 +#: ../src/common/colorspaces.c:1410 ../src/common/colorspaces.c:1700 +#: ../src/libs/print_settings.c:1356 +msgid "sRGB" +msgstr "sRGB" + +#: ../build/lib/darktable/plugins/introspection_colorin.c:305 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:311 +#: ../src/common/colorspaces.c:1421 ../src/common/colorspaces.c:1702 +#: ../src/libs/print_settings.c:1363 +msgid "Adobe RGB (compatible)" +msgstr "Adobe RGB (compatibile)" + +#: ../build/lib/darktable/plugins/introspection_colorin.c:306 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 +#: ../src/common/colorspaces.c:1428 ../src/common/colorspaces.c:1704 +msgid "linear Rec709 RGB" +msgstr "Rec709 RGB lineare" + +#: ../build/lib/darktable/plugins/introspection_colorin.c:307 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:206 +#: ../src/common/colorspaces.c:1442 ../src/common/colorspaces.c:1706 +msgid "linear Rec2020 RGB" +msgstr "Rec2020 RGB lineare" + +#: ../build/lib/darktable/plugins/introspection_colorize.c:65 +#: ../build/lib/darktable/plugins/introspection_colorize.c:128 +msgid "source mix" +msgstr "Sorgente miscelazione " + +#: ../build/lib/darktable/plugins/introspection_colormapping.c:94 +#: ../build/lib/darktable/plugins/introspection_colormapping.c:249 +msgid "number of clusters" +msgstr "Numero di matrici" + +#: ../build/lib/darktable/plugins/introspection_colormapping.c:100 +#: ../build/lib/darktable/plugins/introspection_colormapping.c:253 +msgid "color dominance" +msgstr "Dominanza colore" + +#: ../build/lib/darktable/plugins/introspection_colormapping.c:106 +#: ../build/lib/darktable/plugins/introspection_colormapping.c:257 +msgid "histogram equalization" +msgstr "Equalizzazione istogramma" + +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:62 +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:127 +#: ../build/lib/darktable/plugins/introspection_tonemap.cc:45 +#: ../build/lib/darktable/plugins/introspection_tonemap.cc:92 +#: ../src/iop/shadhi.c:722 +msgid "spatial extent" +msgstr "Estensione spaziale" + +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:68 +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:131 +msgid "range extent" +msgstr "Intervallo estensione" + +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:154 +#: ../src/iop/channelmixerrgb.c:4737 +msgid "saturated colors" +msgstr "Colori saturati" + +#: ../build/lib/darktable/plugins/introspection_colorzones.c:78 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:193 +msgid "select by" +msgstr "Seleziona per" + +#. mix slider +#: ../build/lib/darktable/plugins/introspection_colorzones.c:138 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:233 +#: ../build/lib/darktable/plugins/introspection_soften.c:66 +#: ../build/lib/darktable/plugins/introspection_soften.c:121 +#: ../src/iop/atrous.c:1835 +msgid "mix" +msgstr "Fusione" + +#: ../build/lib/darktable/plugins/introspection_colorzones.c:144 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:237 +msgid "process mode" +msgstr "Modalità di esecuzione" + +#: ../build/lib/darktable/plugins/introspection_colorzones.c:255 +#: ../src/develop/blend_gui.c:2310 ../src/iop/channelmixer.c:636 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/colorchecker.c:1453 +#: ../src/iop/colorize.c:362 ../src/iop/colorzones.c:2644 +#: ../src/iop/exposure.c:1257 +msgid "lightness" +msgstr "Chiarezza" + +#: ../build/lib/darktable/plugins/introspection_colorzones.c:267 +#: ../src/iop/atrous.c:1410 ../src/iop/atrous.c:1414 +#: ../src/iop/denoiseprofile.c:3531 ../src/iop/rawdenoise.c:771 +#: ../src/iop/sigmoid.c:292 +msgid "smooth" +msgstr "Morbido" + +#: ../build/lib/darktable/plugins/introspection_colorzones.c:268 +msgid "strong" +msgstr "Forte" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:47 +#: ../build/lib/darktable/plugins/introspection_defringe.c:102 +msgid "edge detection radius" +msgstr "Raggio rilevamento bordi" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:53 +#: ../build/lib/darktable/plugins/introspection_defringe.c:106 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:230 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:435 +#: ../src/iop/atrous.c:1695 ../src/iop/bloom.c:368 +#: ../src/iop/colorreconstruction.c:1245 ../src/iop/hotpixels.c:463 +#: ../src/iop/sharpen.c:444 +msgid "threshold" +msgstr "Soglia" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:59 +#: ../build/lib/darktable/plugins/introspection_defringe.c:110 +msgid "operation mode" +msgstr "Modalità operativa" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:124 +msgid "global average (fast)" +msgstr "Media globale (veloce)" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:125 +msgid "local average (slow)" +msgstr "Media locale (lenta)" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:126 +msgid "static threshold (fast)" +msgstr "Soglia statica (veloce)" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:90 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:163 +msgid "match greens" +msgstr "Corrispondenza verdi" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:96 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:167 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:141 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:260 +msgid "edge threshold" +msgstr "Soglia margine" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:102 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:171 +msgid "color smoothing" +msgstr "Sfumatura colore" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:108 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:175 +#: ../build/lib/darktable/plugins/introspection_dither.c:73 +#: ../build/lib/darktable/plugins/introspection_dither.c:152 +#: ../build/lib/darktable/plugins/introspection_highlights.c:119 +#: ../build/lib/darktable/plugins/introspection_highlights.c:228 +msgid "method" +msgstr "Metodo" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:114 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:179 +msgid "LMMSE refine" +msgstr "Affina LMMSE" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:120 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:183 +msgid "dual threshold" +msgstr "Doppia soglia" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:197 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:204 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:197 +msgid "disabled" +msgstr "Disabilitato" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:198 +msgid "local average" +msgstr "Media locale" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:199 +msgid "full average" +msgstr "Media piena" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:200 +msgid "full and local average" +msgstr "Media piena e locale" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:213 +msgid "PPG" +msgstr "PPG" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:214 +msgid "AMaZE" +msgstr "AMaZE" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:215 +msgid "VNG4" +msgstr "VNG4" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:216 +msgid "RCD" +msgstr "RCD" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:217 +msgid "LMMSE" +msgstr "LMMSE" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:218 +msgid "RCD + VNG4" +msgstr "RCD + VNG4" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:219 +msgid "AMaZE + VNG4" +msgstr "AMaZE + VNG4" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:220 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:227 +msgid "passthrough (monochrome)" +msgstr "Passaggio (monocromia)" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:221 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:228 +msgid "photosite color (debug)" +msgstr "Colore fotosito (debug)" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:222 +msgid "VNG" +msgstr "VNG" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:223 +msgid "Markesteijn 1-pass" +msgstr "Markesteijn 1-passaggio" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:224 +msgid "Markesteijn 3-pass" +msgstr "Markesteijn 3-passaggi" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:225 +msgid "frequency domain chroma" +msgstr "Cromaticità nel dominio di frequenza" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:226 +msgid "Markesteijn 3-pass + VNG" +msgstr "Markesteijn 3-pass + VNG" + +#. history +#: ../build/lib/darktable/plugins/introspection_demosaic.c:232 +#: ../src/common/collection.c:1394 ../src/libs/collect.c:1863 +#: ../src/libs/filters/history.c:38 +msgid "basic" +msgstr "Base" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:233 +msgid "median" +msgstr "Mediano" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:234 +msgid "3x median" +msgstr "3x mediano" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:235 +msgid "refine & medians" +msgstr "Affina & mediani" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:236 +msgid "2x refine + medians" +msgstr "2x affina + mediani" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:125 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:300 +#: ../build/lib/darktable/plugins/introspection_nlmeans.c:48 +#: ../build/lib/darktable/plugins/introspection_nlmeans.c:109 +msgid "patch size" +msgstr "Dimensione campione" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:131 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:304 +msgid "search radius" +msgstr "Cerca raggio" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:143 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:312 +msgid "preserve shadows" +msgstr "Preserva le ombre" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:149 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:316 +msgid "bias correction" +msgstr "Correzione distorsione" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:155 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:320 +msgid "scattering" +msgstr "Diffusione" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:161 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:324 +msgid "central pixel weight" +msgstr "Peso del pixel centrale" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:167 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:328 +msgid "adjust autoset parameters" +msgstr "Regola i parametri automatici" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:239 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:376 +msgid "whitebalance-adaptive transform" +msgstr "Trasformazione bilanciamento del bianco adattivo" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:245 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:380 +msgid "fix various bugs in algorithm" +msgstr "Aggiusta i difetti nell'algoritmo" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:251 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:384 +msgid "upgrade profiled transform" +msgstr "Aggiorna trasformazione profilata" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:257 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:388 +#: ../src/libs/colorpicker.c:659 +msgid "color mode" +msgstr "Modalità colore" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:402 +msgid "non-local means" +msgstr "Non-local means" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:403 +msgid "non-local means auto" +msgstr "Non-local means automatico" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:404 +msgid "wavelets" +msgstr "Wavelets" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:405 +msgid "wavelets auto" +msgstr "Wavelets automatico" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:406 +msgid "compute variance" +msgstr "Calcola la varianza" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:410 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:292 +msgid "RGB" +msgstr "RGB" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:411 +msgid "Y0U0V0" +msgstr "Y0U0V0" + +#. two more sharpness (standard & strong) +#: ../build/lib/darktable/plugins/introspection_diffuse.c:123 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:248 +#: ../src/iop/atrous.c:1685 ../src/iop/diffuse.c:657 ../src/iop/highpass.c:376 +msgid "sharpness" +msgstr "nitidezza" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:129 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:252 +msgid "radius span" +msgstr "Estensione del raggio" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:135 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:256 +msgid "edge sensitivity" +msgstr "Sensibilità margine" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:147 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:264 +msgid "1st order anisotropy" +msgstr "1° ordine di anisotropia" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:153 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:268 +msgid "2nd order anisotropy" +msgstr "2° ordine di anisotropia" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:159 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:272 +msgid "3rd order anisotropy" +msgstr "3° ordine di anisotropia" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:165 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:276 +msgid "4th order anisotropy" +msgstr "4° ordine di anisotropia" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:171 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:280 +msgid "luminance masking threshold" +msgstr "Soglia per la maschera di luminanza" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:177 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:284 +msgid "1st order speed" +msgstr "Prima velocità d'ordine" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:183 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:288 +msgid "2nd order speed" +msgstr "Seconda velocità d'ordine" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:189 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:292 +msgid "3rd order speed" +msgstr "Terza velocità d'ordine" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:195 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:296 +msgid "4th order speed" +msgstr "Quarta velocità d'ordine" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:201 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:300 +msgid "central radius" +msgstr "Raggio centrale" + +#: ../build/lib/darktable/plugins/introspection_dither.c:103 +#: ../build/lib/darktable/plugins/introspection_dither.c:172 +msgid "damping" +msgstr "Attenuazione" + +#: ../build/lib/darktable/plugins/introspection_dither.c:190 +msgid "random" +msgstr "Casuale" + +#: ../build/lib/darktable/plugins/introspection_dither.c:191 +msgid "Floyd-Steinberg 1-bit B&W" +msgstr "Floyd-Steinberg 1-bit B/N" + +#: ../build/lib/darktable/plugins/introspection_dither.c:192 +msgid "Floyd-Steinberg 1-bit RGB" +msgstr "Floyd-Steinberg 1-bit RGB" + +#: ../build/lib/darktable/plugins/introspection_dither.c:193 +msgid "Floyd-Steinberg 2-bit gray" +msgstr "Floyd-Steinberg 2-bit grigio" + +#: ../build/lib/darktable/plugins/introspection_dither.c:194 +msgid "Floyd-Steinberg 2-bit RGB" +msgstr "Floyd-Steinberg 2-bit RGB" + +#: ../build/lib/darktable/plugins/introspection_dither.c:195 +msgid "Floyd-Steinberg 4-bit gray" +msgstr "Floyd-Steinberg 4-bit grigio" + +#: ../build/lib/darktable/plugins/introspection_dither.c:196 +msgid "Floyd-Steinberg 4-bit RGB" +msgstr "Floyd-Steinberg 4-bit RGB" + +#: ../build/lib/darktable/plugins/introspection_dither.c:197 +msgid "Floyd-Steinberg 8-bit RGB" +msgstr "Floyd-Steinberg 8-bit RGB" + +#: ../build/lib/darktable/plugins/introspection_dither.c:198 +msgid "Floyd-Steinberg 16-bit RGB" +msgstr "Floyd-Steinberg 16-bit RGB" + +#: ../build/lib/darktable/plugins/introspection_dither.c:199 +msgid "Floyd-Steinberg auto" +msgstr "Floyd-Steinberg auto" + +#: ../build/lib/darktable/plugins/introspection_dither.c:200 +msgid "posterize 2 levels per channel" +msgstr "Posterizza 2 livelli per canale" + +#: ../build/lib/darktable/plugins/introspection_dither.c:201 +msgid "posterize 3 levels per channel" +msgstr "Posterizza 3 livelli per canale" + +#: ../build/lib/darktable/plugins/introspection_dither.c:202 +msgid "posterize 4 levels per channel" +msgstr "Posterizza 4 livelli per canale" + +#: ../build/lib/darktable/plugins/introspection_dither.c:203 +msgid "posterize 5 levels per channel" +msgstr "Posterizza 5 livelli per canale" + +#: ../build/lib/darktable/plugins/introspection_dither.c:204 +msgid "posterize 6 levels per channel" +msgstr "Posterizza 6 livelli per canale" + +#: ../build/lib/darktable/plugins/introspection_dither.c:205 +msgid "posterize 7 levels per channel" +msgstr "Posterizza 7 livelli per canale" + +#: ../build/lib/darktable/plugins/introspection_dither.c:206 +msgid "posterize 8 levels per channel" +msgstr "Posterizza 8 livelli per canale" + +#: ../build/lib/darktable/plugins/introspection_exposure.c:79 +#: ../build/lib/darktable/plugins/introspection_exposure.c:146 +msgid "percentile" +msgstr "Percentile" + +#: ../build/lib/darktable/plugins/introspection_exposure.c:85 +#: ../build/lib/darktable/plugins/introspection_exposure.c:150 +msgid "target level" +msgstr "Livello target" + +#: ../build/lib/darktable/plugins/introspection_exposure.c:91 +#: ../build/lib/darktable/plugins/introspection_exposure.c:154 +msgid "compensate exposure bias" +msgstr "Compensazione esposizione" + +#: ../build/lib/darktable/plugins/introspection_exposure.c:168 +#: ../build/lib/darktable/plugins/introspection_levels.c:160 +msgid "manual" +msgstr "Manuale" + +#: ../build/lib/darktable/plugins/introspection_exposure.c:169 +#: ../build/lib/darktable/plugins/introspection_levels.c:161 +msgid "automatic" +msgstr "Automatico" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:212 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:423 +#: ../src/iop/filmic.c:1514 +msgid "middle gray luminance" +msgstr "Luminanza del grigio medio" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:218 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:427 +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:97 +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:166 +#: ../src/iop/filmic.c:1539 +msgid "black relative exposure" +msgstr "Esposizione relativa del nero" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:224 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:431 +#: ../src/iop/filmic.c:1526 +msgid "white relative exposure" +msgstr "Esposizione relativa del bianco" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:236 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:439 +msgid "transition" +msgstr "Transizione" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:242 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:443 +msgid "bloom ↔ reconstruct" +msgstr "luce soffusa ↔ ricostruisci" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:248 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:447 +msgid "gray ↔ colorful details" +msgstr "Grigio ↔ dettagli colorati" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:254 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:451 +msgid "structure ↔ texture" +msgstr "Struttura ↔ superficie" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:260 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:455 +msgid "dynamic range scaling" +msgstr "Scala gamma dinamica" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:266 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:459 +#: ../src/iop/filmic.c:1671 +msgid "target middle gray" +msgstr "Grigio medio obiettivo" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:272 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:463 +#: ../src/iop/filmic.c:1662 +msgid "target black luminance" +msgstr "Obiettivo luminanza del nero" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:278 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:467 +#: ../src/iop/filmic.c:1680 +msgid "target white luminance" +msgstr "Obiettivo luminanza del bianco" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:284 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:471 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:69 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:140 +#: ../src/libs/masks.c:107 +msgid "hardness" +msgstr "Intensità" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:302 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:483 +#: ../src/iop/filmic.c:1611 ../src/iop/filmicrgb.c:4793 +msgid "extreme luminance saturation" +msgstr "Saturazione della luminanza estrema" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:308 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:487 +msgid "shadows ↔ highlights balance" +msgstr "Bilanciamento ombre ↔ alteluci" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:314 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:491 +msgid "add noise in highlights" +msgstr "Aggiungi rumore nelle alteluci" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:320 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:495 +msgid "preserve chrominance" +msgstr "Preserva la cromaticità" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:326 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:499 +msgid "color science" +msgstr "Gestione colore" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:332 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:503 +msgid "auto adjust hardness" +msgstr "Regola automaticamente la durezza" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:338 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:507 +msgid "use custom middle-gray values" +msgstr "Utilizza i valori personalizzati di grigio medio" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:344 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:511 +msgid "iterations of high-quality reconstruction" +msgstr "Iterazioni della ricostruzione in alta qualità" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:350 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:515 +msgid "type of noise" +msgstr "Tipo di rumore" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:356 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:519 +msgid "contrast in shadows" +msgstr "Contrasto nelle ombre" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:362 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:523 +msgid "contrast in highlights" +msgstr "Contrasto nelle alteluci" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:368 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:527 +msgid "compensate output ICC profile black point" +msgstr "Compensa il punto di nero del profilo ICC di uscita" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:374 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:531 +msgid "spline handling" +msgstr "Gestione della funzione spline" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:380 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:535 +msgid "enable highlight reconstruction" +msgstr "Abilita ricostruzione alte luci" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:549 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:371 +#: ../src/common/variables.c:714 ../src/develop/imageop_gui.c:209 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "no" +msgstr "No" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:551 +msgid "luminance Y" +msgstr "Luminanza Y" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:552 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:384 +msgid "RGB power norm" +msgstr "Norma di potenza RGB" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:553 +msgid "RGB euclidean norm (legacy)" +msgstr "RGB norma euclidea (legacy)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:554 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:383 +msgid "RGB euclidean norm" +msgstr "RGB norma euclidea" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:558 +msgid "v3 (2019)" +msgstr "v3 (2019)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:559 +msgid "v4 (2020)" +msgstr "v4 (2020)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:560 +msgid "v5 (2021)" +msgstr "v5 (2021)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:561 +msgid "v6 (2022)" +msgstr "v6 (2022)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:562 +msgid "v7 (2023)" +msgstr "v7 (2023)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:566 +msgid "uniform" +msgstr "Uniforme" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:568 +msgid "poissonian" +msgstr "Poissoniano" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:572 +msgid "hard" +msgstr "Duro" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:573 +msgid "soft" +msgstr "Morbido" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:574 +msgid "safe" +msgstr "Sicuro" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:578 +msgid "v1 (2019)" +msgstr "v1 (2019)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:579 +msgid "v2 (2020)" +msgstr "v2 (2020)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:580 +msgid "v3 (2021)" +msgstr "v3 (2021)" + +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:60 +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:125 +msgid "bias" +msgstr "Imprecisione" + +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:66 +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:129 +msgid "target" +msgstr "Destinazione" + +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:151 +msgid "reinhard" +msgstr "reinhard" + +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:152 +#: ../src/iop/filmic.c:162 +msgid "filmic" +msgstr "filmic" + +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:153 +msgid "drago" +msgstr "drago" + +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:63 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:136 +msgid "density" +msgstr "Densità" + +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 +#: ../src/develop/blend_gui.c:2326 ../src/iop/basicadj.c:654 +#: ../src/iop/channelmixer.c:635 ../src/iop/colisa.c:300 +#: ../src/iop/colorbalance.c:2034 ../src/iop/colorbalancergb.c:1993 +#: ../src/iop/colorchecker.c:1488 ../src/iop/colorcontrast.c:82 +#: ../src/iop/colorcorrection.c:268 ../src/iop/colorize.c:356 +#: ../src/iop/lowpass.c:602 ../src/iop/soften.c:368 ../src/iop/velvia.c:75 +#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:1058 +msgid "saturation" +msgstr "Saturazione" + +#: ../build/lib/darktable/plugins/introspection_grain.c:58 +#: ../build/lib/darktable/plugins/introspection_grain.c:117 +#: ../src/iop/bilat.c:460 +msgid "coarseness" +msgstr "Grossolanità" + +#: ../build/lib/darktable/plugins/introspection_grain.c:70 +#: ../build/lib/darktable/plugins/introspection_grain.c:125 +#: ../build/lib/darktable/plugins/introspection_velvia.c:44 +#: ../build/lib/darktable/plugins/introspection_velvia.c:91 +msgid "mid-tones bias" +msgstr "Imprecisione toni medi " + +#: ../build/lib/darktable/plugins/introspection_highlights.c:143 +#: ../build/lib/darktable/plugins/introspection_highlights.c:244 +#: ../src/views/darkroom.c:2245 +msgid "clipping threshold" +msgstr "Soglia di tosaggio" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:161 +#: ../build/lib/darktable/plugins/introspection_highlights.c:256 +msgid "diameter of reconstruction" +msgstr "Diametro della ricostruzione" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:167 +#: ../build/lib/darktable/plugins/introspection_highlights.c:260 +msgid "candidating" +msgstr "Candidatura" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:173 +#: ../build/lib/darktable/plugins/introspection_highlights.c:264 +msgid "combine" +msgstr "Combina" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:179 +#: ../build/lib/darktable/plugins/introspection_highlights.c:268 +msgid "rebuild" +msgstr "Ricostruisci" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:185 +#: ../build/lib/darktable/plugins/introspection_highlights.c:272 +msgid "inpaint a flat color" +msgstr "Ricostruisci un colore piatto" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:286 +msgid "inpaint opposed" +msgstr "Inpaint opposto" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:287 +msgid "reconstruct in LCh" +msgstr "Ricostruisci in LCh" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:288 +msgid "clip highlights" +msgstr "Taglio alteluci" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:289 +msgid "segmentation based" +msgstr "Basato sulla segmentazione" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:290 +msgid "guided laplacians" +msgstr "Guida laplaciana" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:291 +msgid "reconstruct color" +msgstr "Ricostruisci colore" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:295 +msgid "2 px" +msgstr "2 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:296 +msgid "4 px" +msgstr "4 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:297 +msgid "8 px" +msgstr "8 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:298 +msgid "16 px" +msgstr "16 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:299 +msgid "32 px" +msgstr "32 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:300 +msgid "64 px" +msgstr "64 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:301 +msgid "128 px (slow)" +msgstr "128 px (lento)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:302 +msgid "256 px (slow)" +msgstr "256 px (lento)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:303 +msgid "512 px (very slow)" +msgstr "512 px (molto lento)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:304 +msgid "1024 px (very slow)" +msgstr "1024 px (molto lento)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:305 +msgid "2048 px (insanely slow)" +msgstr "2048 px (estremamente lento)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:306 +msgid "4096 px (insanely slow)" +msgstr "4096 px (estremamente lento)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:312 +msgid "flat generic" +msgstr "Generico base" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:313 +msgid "small segments" +msgstr "Segmenti corti" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:314 +msgid "large segments" +msgstr "Segmenti lunghi" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:315 +msgid "flat small segments" +msgstr "Base segmenti corti" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:316 +msgid "flat large segments" +msgstr "Base segmenti lunghi" + +#: ../build/lib/darktable/plugins/introspection_highpass.c:44 +#: ../build/lib/darktable/plugins/introspection_highpass.c:91 +msgid "contrast boost" +msgstr "Aumento contrasto" + +#: ../build/lib/darktable/plugins/introspection_hotpixels.c:59 +#: ../build/lib/darktable/plugins/introspection_hotpixels.c:116 +msgid "mark fixed pixels" +msgstr "Marca i pixel corretti" + +#: ../build/lib/darktable/plugins/introspection_hotpixels.c:65 +#: ../build/lib/darktable/plugins/introspection_hotpixels.c:120 +msgid "detect by 3 neighbors" +msgstr "Determina da 3 vicini" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:190 +#: ../build/lib/darktable/plugins/introspection_lens.cc:401 +msgid "correction method" +msgstr "Metodo di correzione" + +#. Page CORRECTIONS +#: ../build/lib/darktable/plugins/introspection_lens.cc:196 +#: ../build/lib/darktable/plugins/introspection_lens.cc:405 +#: ../src/iop/negadoctor.c:919 +msgid "corrections" +msgstr "Correzioni" + +#. mode choice +#: ../build/lib/darktable/plugins/introspection_lens.cc:202 +#: ../build/lib/darktable/plugins/introspection_lens.cc:409 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:128 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:219 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:51 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:118 +#: ../src/develop/blend_gui.c:3546 ../src/iop/bilat.c:438 +#: ../src/iop/colorbalance.c:1884 ../src/iop/denoiseprofile.c:3810 +#: ../src/iop/exposure.c:1175 ../src/iop/levels.c:700 +#: ../src/iop/profile_gamma.c:682 ../src/libs/copy_history.c:399 +#: ../src/libs/export.c:1376 ../src/libs/image.c:666 +#: ../src/libs/print_settings.c:2875 ../src/libs/styles.c:850 +#: ../src/views/darkroom.c:2226 +msgid "mode" +msgstr "Modo" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:238 +#: ../build/lib/darktable/plugins/introspection_lens.cc:433 +#: ../src/iop/lens.cc:4474 +msgid "target geometry" +msgstr "Geometria di destinazione" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:268 +#: ../build/lib/darktable/plugins/introspection_lens.cc:453 +msgid "TCA overwrite" +msgstr "Sovrascrivi TCA" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:274 +#: ../build/lib/darktable/plugins/introspection_lens.cc:298 +#: ../build/lib/darktable/plugins/introspection_lens.cc:457 +#: ../build/lib/darktable/plugins/introspection_lens.cc:473 +msgid "TCA red" +msgstr "TCA Rosso" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:280 +#: ../build/lib/darktable/plugins/introspection_lens.cc:304 +#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:477 +msgid "TCA blue" +msgstr "TCA Blu" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:286 +#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +msgid "distortion" +msgstr "Distorsione" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:292 +#: ../build/lib/darktable/plugins/introspection_lens.cc:469 +#: ../src/iop/vignette.c:114 +msgid "vignetting" +msgstr "vignettatura" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:310 +#: ../build/lib/darktable/plugins/introspection_lens.cc:481 +msgid "scale fine-tune" +msgstr "Scala della messa a punto" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:322 +#: ../build/lib/darktable/plugins/introspection_lens.cc:489 +msgid "image scale" +msgstr "Scala dell'immagine" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:346 +#: ../build/lib/darktable/plugins/introspection_lens.cc:505 +msgid "steepness" +msgstr "pendenza" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:527 +msgid "embedded metadata" +msgstr "Metadati incorporati" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:528 +msgid "Lensfun database" +msgstr "Database lensfun" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:529 +msgid "only manual vignette" +msgstr "Solo vignettatura manuale" + +#. get nice text for bounds +#. Side-border hide/show +#: ../build/lib/darktable/plugins/introspection_lens.cc:534 +#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2592 +#: ../src/gui/accelerators.c:2674 ../src/gui/gtk.c:1282 ../src/gui/gtk.c:3191 +#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3713 +#: ../src/iop/rawdenoise.c:909 ../src/libs/collect.c:3413 +#: ../src/libs/filtering.c:1521 ../src/libs/filters/colors.c:157 +#: ../src/libs/filters/colors.c:265 ../src/libs/filters/rating.c:211 +msgid "all" +msgstr "Tutto" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:535 +msgid "distortion & TCA" +msgstr "Distorsione & TCA" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:536 +msgid "distortion & vignetting" +msgstr "Distorsione e vignettatura" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:537 +msgid "TCA & vignetting" +msgstr "TCA & vignettatura" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:538 +msgid "only distortion" +msgstr "Solo distorsione" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:539 +msgid "only TCA" +msgstr "Solo TCA" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:540 +msgid "only vignetting" +msgstr "Solo vignettatura" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:544 +#: ../src/libs/modulegroups.c:2302 +msgid "correct" +msgstr "Correggi" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:545 +msgid "distort" +msgstr "Distorci" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:550 +msgid "rectilinear" +msgstr "Rettilineare" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:551 +msgid "fisheye" +msgstr "fisheye" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:552 +msgid "panoramic" +msgstr "Panoramico" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:553 +msgid "equirectangular" +msgstr "Equirettangolare" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:554 +msgid "orthographic" +msgstr "Ortografica" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:555 +msgid "stereographic" +msgstr "Stereografica" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:556 +msgid "equisolid angle" +msgstr "Angolo equisolido" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:557 +msgid "Thoby fisheye" +msgstr "Thoby fisheye" + +#: ../build/lib/darktable/plugins/introspection_liquify.c:428 +msgid "invalidated" +msgstr "Invalidato" + +#. move left/right/up/down +#: ../build/lib/darktable/plugins/introspection_liquify.c:429 +#: ../src/views/darkroom.c:2121 ../src/views/darkroom.c:2522 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:765 +#: ../src/views/lighttable.c:774 ../src/views/lighttable.c:1246 +#: ../src/views/lighttable.c:1250 ../src/views/lighttable.c:1254 +#: ../src/views/lighttable.c:1258 ../src/views/lighttable.c:1262 +msgid "move" +msgstr "Sposta" + +#: ../build/lib/darktable/plugins/introspection_liquify.c:430 +msgid "line" +msgstr "Linea" + +#: ../build/lib/darktable/plugins/introspection_liquify.c:431 +#: ../src/iop/basecurve.c:2208 ../src/iop/rgbcurve.c:1541 +#: ../src/iop/tonecurve.c:1171 +msgid "curve" +msgstr "Curva" + +#: ../build/lib/darktable/plugins/introspection_lowlight.c:43 +#: ../build/lib/darktable/plugins/introspection_lowlight.c:110 +msgid "blue shift" +msgstr "Spostamento del blu" + +#: ../build/lib/darktable/plugins/introspection_lowpass.c:96 +#: ../build/lib/darktable/plugins/introspection_lowpass.c:165 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:160 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:247 +msgid "soften with" +msgstr "Ammorbidisci con" + +#: ../build/lib/darktable/plugins/introspection_lowpass.c:183 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:261 +msgid "order 0" +msgstr "Ordine 0" + +#: ../build/lib/darktable/plugins/introspection_lowpass.c:184 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:262 +msgid "order 1" +msgstr "Ordine 1" + +#: ../build/lib/darktable/plugins/introspection_lowpass.c:185 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:263 +msgid "order 2" +msgstr "Ordine 2" + +#: ../build/lib/darktable/plugins/introspection_lowpass.c:190 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:268 +msgid "bilateral filter" +msgstr "Filtro bilaterale" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:77 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:164 +msgid "application color space" +msgstr "Applicazione spazio colore" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 +msgid "Adobe RGB" +msgstr "Adobe RGB" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 +msgid "gamma Rec709 RGB" +msgstr "Gamma Rec709 RGB" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:207 +#: ../src/common/colorspaces.c:1486 ../src/common/colorspaces.c:1740 +msgid "linear ProPhoto RGB" +msgstr "Lineare ProPhoto RGB" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 +msgid "tetrahedral" +msgstr "Tetaedrico" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:212 +msgid "trilinear" +msgstr "Trilineare" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:213 +msgid "pyramid" +msgstr "Piramide" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:84 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:199 +msgid "film stock" +msgstr "Pellicole" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:132 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:231 +msgid "scan exposure bias" +msgstr "Compensazione esposizione dello scanner" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:138 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:235 +msgid "paper black (density correction)" +msgstr "Neri della carta (correzione densità)" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:144 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:239 +#: ../src/iop/negadoctor.c:1011 +msgid "paper grade (gamma)" +msgstr "Gradazione carta (gamma)" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:150 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:243 +msgid "paper gloss (specular highlights)" +msgstr "Carta lucida (alteluci speculari)" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:156 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:247 +msgid "print exposure adjustment" +msgstr "Regolazione luminosità stampa" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:261 +#: ../src/iop/negadoctor.c:431 +msgid "black and white film" +msgstr "Pellicola bianco e nero" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:262 +#: ../src/iop/negadoctor.c:416 +msgid "color film" +msgstr "Pellicola a colori" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:75 +#: ../build/lib/darktable/plugins/introspection_primaries.c:160 +#: ../src/iop/primaries.c:406 +msgid "tint hue" +msgstr "Tonalità della tinta" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:81 +#: ../build/lib/darktable/plugins/introspection_primaries.c:164 +#: ../src/iop/primaries.c:413 +msgid "tint purity" +msgstr "Purezza della tinta" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:87 +#: ../build/lib/darktable/plugins/introspection_primaries.c:168 +msgid "red hue" +msgstr "Tonalità rossa" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:93 +#: ../build/lib/darktable/plugins/introspection_primaries.c:172 +msgid "red purity" +msgstr "Purezza del rosso" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:99 +#: ../build/lib/darktable/plugins/introspection_primaries.c:176 +msgid "green hue" +msgstr "Tonalità verde" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:105 +#: ../build/lib/darktable/plugins/introspection_primaries.c:180 +msgid "green purity" +msgstr "Purezza del verde" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:111 +#: ../build/lib/darktable/plugins/introspection_primaries.c:184 +msgid "blue hue" +msgstr "Tonalità blu" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:117 +#: ../build/lib/darktable/plugins/introspection_primaries.c:188 +msgid "blue purity" +msgstr "Purezza del blu" + +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:85 +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:158 +msgid "dynamic range" +msgstr "Gamma dinamica" + +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:91 +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:162 +msgid "middle gray luma" +msgstr "Luminanza del grigio medio" + +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:103 +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:170 +#: ../src/iop/filmic.c:1551 +msgid "safety factor" +msgstr "Fattore di sicurezza" + +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:184 +msgid "logarithmic" +msgstr "Logaritmica" + +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:185 +#: ../src/iop/profile_gamma.c:639 +msgid "gamma" +msgstr "Gamma " + +#: ../build/lib/darktable/plugins/introspection_rawdenoise.c:43 +#: ../build/lib/darktable/plugins/introspection_rawdenoise.c:122 +msgid "noise threshold" +msgstr "Soglia rumore" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:70 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:155 +msgid "crop left" +msgstr "Taglia a sinistra" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:76 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:159 +msgid "crop top" +msgstr "Ritaglia dall'alto" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:82 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:163 +msgid "crop right" +msgstr "Taglia a destra" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:88 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:167 +msgid "crop bottom" +msgstr "Ritaglia in basso" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:94 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:100 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:171 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:175 +msgid "black level" +msgstr "Livello del nero" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:106 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:179 +#: ../src/iop/rawprepare.c:954 +msgid "white point" +msgstr "Punto di bianco" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:112 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:183 +msgid "flat field correction" +msgstr "Correzione del campo piatto (FFT)" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:198 +msgid "embedded GainMap" +msgstr "GainMap (mappa del guadagno) incorporata" + +#. exposure +#: ../build/lib/darktable/plugins/introspection_relight.c:43 +#: ../build/lib/darktable/plugins/introspection_relight.c:98 +#: ../src/common/collection.c:633 ../src/gui/preferences.c:834 +#: ../src/gui/presets.c:698 ../src/iop/basicadj.c:628 ../src/iop/exposure.c:122 +#: ../src/iop/exposure.c:1135 ../src/libs/metadata_view.c:143 +msgid "exposure" +msgstr "esposizione" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:267 +#: ../build/lib/darktable/plugins/introspection_retouch.c:414 +msgid "fill mode" +msgstr "Modalità di riempimento" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:285 +#: ../build/lib/darktable/plugins/introspection_retouch.c:426 +#: ../src/iop/basicadj.c:650 ../src/iop/channelmixerrgb.c:4685 +#: ../src/iop/colisa.c:299 ../src/iop/lowpass.c:601 ../src/iop/soften.c:372 +#: ../src/iop/vignette.c:1057 ../src/libs/history.c:963 +msgid "brightness" +msgstr "Luminosità" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:291 +#: ../build/lib/darktable/plugins/introspection_retouch.c:430 +msgid "max_iter" +msgstr "max_iter" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:444 +#: ../src/libs/metadata_view.c:333 +msgid "unused" +msgstr "Non usato" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:445 +msgid "clone" +msgstr "clone" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:446 +msgid "heal" +msgstr "Cerotto" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:447 +#: ../src/iop/retouch.c:2051 +msgid "blur" +msgstr "Sfocatura" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:448 +#: ../src/iop/retouch.c:2049 +msgid "fill" +msgstr "Riempimento" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:453 +msgid "bilateral" +msgstr "Bilaterale" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:457 +msgid "erase" +msgstr "Cancella" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:458 +#: ../src/gui/presets.c:61 ../src/iop/watermark.c:1346 +#: ../src/libs/colorpicker.c:320 ../src/libs/image.c:683 +#: ../src/libs/modulegroups.c:2301 +msgid "color" +msgstr "Colore" + +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:134 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:223 +#: ../src/iop/rgbcurve.c:1589 +msgid "compensate middle gray" +msgstr "Compensa il grigio medio" + +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:246 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:148 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:266 +msgid "RGB, linked channels" +msgstr "RGB, canali collegati" + +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:247 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:149 +msgid "RGB, independent channels" +msgstr "RGB, canali indipendenti" + +#: ../build/lib/darktable/plugins/introspection_shadhi.c:112 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:215 +msgid "white point adjustment" +msgstr "Regolazione punto di bianco" + +#: ../build/lib/darktable/plugins/introspection_shadhi.c:136 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:231 +msgid "shadows color adjustment" +msgstr "Regolazione colore ombre" + +#: ../build/lib/darktable/plugins/introspection_shadhi.c:142 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:235 +msgid "highlights color adjustment" +msgstr "Regolazione colore alteluci" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:122 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:241 +#: ../src/gui/accelerators.c:101 +msgid "skew" +msgstr "Storto" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:128 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:245 +msgid "target white" +msgstr "Bianco obiettivo" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:134 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:249 +msgid "target black" +msgstr "Nero obiettivo" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:140 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:253 +msgid "color processing" +msgstr "Elaborazione colore" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:146 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:257 +msgid "preserve hue" +msgstr "Preserva tonalità" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:152 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:261 +msgid "red attenuation" +msgstr "Saturazione del rosso" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:158 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:265 +msgid "red rotation" +msgstr "Rotazione del rosso" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:164 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:269 +msgid "green attenuation" +msgstr "Attenuazione del verde" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:170 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:273 +msgid "green rotation" +msgstr "Rotazione del verde" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:176 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:277 +msgid "blue attenuation" +msgstr "Attenuazione del blu" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:182 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:281 +msgid "blue rotation" +msgstr "Rotazione del blu" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:188 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:285 +msgid "recover purity" +msgstr "Recupera purezza" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:194 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:289 +msgid "base primaries" +msgstr "Primarie base" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:303 +msgid "per channel" +msgstr "Per canale" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:304 +msgid "RGB ratio" +msgstr "Rapporto RGB" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:308 +#: ../src/common/colorspaces.c:1377 ../src/common/colorspaces.c:1734 +msgid "work profile" +msgstr "Profilo di lavoro" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:309 +msgid "Rec2020" +msgstr "Rec2020" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:310 +#: ../src/common/colorspaces.c:1750 +msgid "Display P3" +msgstr "Schermo P3" + +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:135 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:232 +msgid "color space" +msgstr "Spazio colore" + +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:263 +msgid "Lab, linked channels" +msgstr "Lab, canali collegati" + +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:264 +msgid "Lab, independent channels" +msgstr "Lab, canali indipendenti" + +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:265 +msgid "XYZ, linked channels" +msgstr "XYZ, canali collegati" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:144 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:289 +msgid "blacks" +msgstr "Neri" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:150 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:293 +msgid "deep shadows" +msgstr "Ombre scure" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:162 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:301 +msgid "light shadows" +msgstr "Ombre chiare" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:174 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:309 +msgid "dark highlights" +msgstr "Alteluci scure" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:186 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:317 +msgid "whites" +msgstr "Bianchi" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:192 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:321 +msgid "speculars" +msgstr "Speculari" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:198 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:325 +msgid "smoothing diameter" +msgstr "Diametro di levigatura" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:210 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:333 +msgid "edges refinement/feathering" +msgstr "Rifinitura margini/sfumatura" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:216 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:337 +msgid "mask quantization" +msgstr "Quantizzazione maschera" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:222 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:341 +msgid "mask contrast compensation" +msgstr "Compens. contrasto maschera" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:228 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:345 +msgid "mask exposure compensation" +msgstr "Compens. esposizione maschera" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:240 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:353 +msgid "luminance estimator" +msgstr "Stimatore luminanza" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:246 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:357 +msgid "filter diffusion" +msgstr "Filtro di diffusione" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:372 +msgid "averaged guided filter" +msgstr "Media filtro guidato" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:373 +msgid "guided filter" +msgstr "Filtro guidato" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:374 +msgid "averaged EIGF" +msgstr "Media EIGF" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:375 +msgid "EIGF" +msgstr "EIGF" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:379 +msgid "RGB average" +msgstr "Media RGB" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:380 +msgid "HSL lightness" +msgstr "Chiarezza HSL" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:381 +msgid "HSV value / RGB max" +msgstr "valore HSV / RGB max" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:382 +msgid "RGB sum" +msgstr "Somma RGB" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:385 +msgid "RGB geometric mean" +msgstr "RGB media geometrica" + +#: ../build/lib/darktable/plugins/introspection_tonemap.cc:39 +#: ../build/lib/darktable/plugins/introspection_tonemap.cc:88 +#: ../src/iop/rgbcurve.c:187 ../src/iop/tonecurve.c:560 +msgid "contrast compression" +msgstr "Compressione contrasto" + +#: ../build/lib/darktable/plugins/introspection_vibrance.c:33 +#: ../build/lib/darktable/plugins/introspection_vibrance.c:76 +#: ../src/iop/basicadj.c:657 ../src/iop/vibrance.c:67 +msgid "vibrance" +msgstr "vibranza" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:92 +#: ../build/lib/darktable/plugins/introspection_vignette.c:201 +msgid "fall-off start" +msgstr "Inizio caduta" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:98 +#: ../build/lib/darktable/plugins/introspection_vignette.c:205 +msgid "fall-off radius" +msgstr "Raggio caduta" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:116 +#: ../build/lib/darktable/plugins/introspection_vignette.c:217 +msgid "horizontal center" +msgstr "Centro orizzontale" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:122 +#: ../build/lib/darktable/plugins/introspection_vignette.c:221 +msgid "vertical center" +msgstr "Centro verticale" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:134 +#: ../build/lib/darktable/plugins/introspection_vignette.c:229 +msgid "automatic ratio" +msgstr "Rapporto automatico" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:140 +#: ../build/lib/darktable/plugins/introspection_vignette.c:233 +msgid "width/height ratio" +msgstr "Rapporto larghezza/altezza" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:146 +#: ../build/lib/darktable/plugins/introspection_vignette.c:237 +#: ../src/iop/vignette.c:1066 +msgid "shape" +msgstr "Forma" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:265 +msgid "8-bit output" +msgstr "8-bit in uscita" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:266 +msgid "16-bit output" +msgstr "16-bit in uscita" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:118 +#: ../build/lib/darktable/plugins/introspection_watermark.c:253 +msgid "x offset" +msgstr "Spostamento x" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:124 +#: ../build/lib/darktable/plugins/introspection_watermark.c:257 +msgid "y offset" +msgstr "Spostamento y" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:142 +#: ../build/lib/darktable/plugins/introspection_watermark.c:269 +msgid "scale on" +msgstr "In proporzione" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:148 +#: ../build/lib/darktable/plugins/introspection_watermark.c:273 +msgid "scale marker to" +msgstr "Marcatore di scala per" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:154 +#: ../build/lib/darktable/plugins/introspection_watermark.c:277 +msgid "scale marker reference" +msgstr "Riferimento marcatore di scala" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:323 +#: ../src/imageio/format/tiff.c:125 ../src/imageio/format/xcf.c:159 +#: ../src/iop/borders.c:960 +msgid "image" +msgstr "Immagine" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:324 +msgid "larger border" +msgstr "Bordo maggiore" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:325 +msgid "smaller border" +msgstr "Bordo minore" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:327 +msgid "advanced options" +msgstr "Opzioni avanazate" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:331 +msgid "image width" +msgstr "Larghezza immagine" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:332 +msgid "image height" +msgstr "Altezza immagine" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:333 +msgid "larger image border" +msgstr "Bordo immagine più largo" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:334 +msgid "smaller image border" +msgstr "Bordo immagine più stretto" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:338 +msgid "marker width" +msgstr "Larghezza marcatore" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:339 +msgid "marker height" +msgstr "Altezza marcatore" + +#: ../build/bin/tools/darktable_authors.h:6 +msgid "developers" +msgstr "Sviluppatori" + +#: ../build/bin/tools/darktable_authors.h:11 +msgid "translators" +msgstr "Traduttori" + +#: ../build/bin/tools/darktable_authors.h:16 +msgid "contributors" +msgstr "Contributori" + +#: ../build/bin/tools/darktable_authors.h:21 +msgid "rawspeed contributors" +msgstr "Contributori di Rawspeed" + +#: ../build/bin/tools/darktable_authors.h:26 +msgid "integration contributors" +msgstr "Contributori di integrazione" + +#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:1 +#: ../data/org.darktable.darktable.desktop.in.h:1 +msgid "Virtual Lighttable and Darkroom" +msgstr "Tavolo Luminoso e Camera Oscura virtuali" + +#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:2 +#: ../data/org.darktable.darktable.appdata.xml.in.h:1 +#: ../data/org.darktable.darktable.desktop.in.h:2 +msgid "Organize and develop images from digital cameras" +msgstr "Organizza e sviluppa le immagini della tua fotocamera digitale" + +#. TRANSLATORS: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! +#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:4 +#: ../data/org.darktable.darktable.desktop.in.h:4 +msgid "graphics;photography;raw;" +msgstr "grafica;fotografia;RAW;" + +#: ../data/org.darktable.darktable.appdata.xml.in.h:2 +msgid "" +"darktable manages your digital negatives in a database and lets you view " +"them through a lighttable. It also enables you to develop raw images and " +"enhance them in a darkroom." +msgstr "" +"Darktable gestisce i tuoi negativi digitali in un database e ti permette di " +"vederli attraverso un Tavolo Luminoso. Ti permette inoltre di sviluppare le " +"immagini RAW e di migliorarle in una Camera Oscura." + +#: ../data/org.darktable.darktable.appdata.xml.in.h:3 +msgid "" +"Other modes besides lighttable and darkroom are a map for geotagging, " +"tethering, print and a slideshow." +msgstr "" +"Altre modalità oltre al Tavolo Luminoso e la Camera Oscura sono le Mappe per " +"il geotagging, il Tethering (scatto remoto), la Stampa e la Presentazione." + +#: ../data/org.darktable.darktable.appdata.xml.in.h:4 +msgid "" +"darktable supports most modern cameras' raw formats, and does all of its " +"processing at very high precision." +msgstr "" +"darktable supporta i formati RAW delle più moderne fotocamere, e ne esegue " +"le elaborazioni con un'altissima precisione." + +#: ../data/org.darktable.darktable.appdata.xml.in.h:5 +msgid "Virtual light table, showing a collection" +msgstr "Tavolo luminoso virtuale, visualizza una raccolta" + +#: ../data/org.darktable.darktable.appdata.xml.in.h:6 +msgid "Virtual dark room with an opened image" +msgstr "Camera oscura virtuale con un'immagine aperta" + +#: ../data/org.darktable.darktable.appdata.xml.in.h:7 +msgid "Virtual dark room, sharpening an image" +msgstr "Camera oscura virtuale, rendere nitida un'immagine" + +#: ../data/org.darktable.darktable.appdata.xml.in.h:8 +msgid "Show images on a map" +msgstr "Mostra immagini su una mappa" + +#: ../data/org.darktable.darktable.appdata.xml.in.h:9 +msgid "Print your images" +msgstr "Stampa le tue immagini" + +#: ../src/bauhaus/bauhaus.c:845 ../src/bauhaus/bauhaus.c:3957 +msgid "sliders" +msgstr "Selettori scorrevoli" + +#: ../src/bauhaus/bauhaus.c:847 ../src/bauhaus/bauhaus.c:3962 +msgid "dropdowns" +msgstr "Elenchi a discesa" + +#: ../src/bauhaus/bauhaus.c:849 ../src/bauhaus/bauhaus.c:3967 +msgid "buttons" +msgstr "Pulsanti" + +#: ../src/bauhaus/bauhaus.c:3623 +msgid "button on" +msgstr "Pulsante acceso" + +#: ../src/bauhaus/bauhaus.c:3623 +msgid "button off" +msgstr "Pulsante spento" + +#: ../src/bauhaus/bauhaus.c:3624 +msgid "button pressed" +msgstr "pulsante premuto" + +#: ../src/bauhaus/bauhaus.c:3862 +msgid "not that many sliders" +msgstr "Non così tanti selettori scorrevoli" + +#: ../src/bauhaus/bauhaus.c:3876 +msgid "not that many dropdowns" +msgstr "Non così tanti elenchi a discesa" + +#: ../src/bauhaus/bauhaus.c:3895 +msgid "not that many buttons" +msgstr "Non così tanti pulsanti" + +#: ../src/bauhaus/bauhaus.c:3900 ../src/gui/accelerators.c:389 +msgid "value" +msgstr "Valore" + +#: ../src/bauhaus/bauhaus.c:3901 ../src/bauhaus/bauhaus.c:3907 +#: ../src/gui/accelerators.c:368 +msgid "button" +msgstr "Pulsante" + +#: ../src/bauhaus/bauhaus.c:3902 +msgid "force" +msgstr "Forza" + +#: ../src/bauhaus/bauhaus.c:3903 ../src/libs/navigation.c:190 +#: ../src/libs/navigation.c:202 +msgid "zoom" +msgstr "Ingrandimento" + +#: ../src/bauhaus/bauhaus.c:3906 ../src/libs/select.c:40 +msgid "selection" +msgstr "Selezione" + +#: ../src/bauhaus/bauhaus.c:3946 +msgid "slider" +msgstr "Cursore" + +#: ../src/bauhaus/bauhaus.c:3951 +msgid "dropdown" +msgstr "A discesa" + +#: ../src/chart/main.c:504 ../src/common/database.c:3372 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 ../src/gui/accelerators.c:2497 +#: ../src/gui/accelerators.c:2579 ../src/gui/accelerators.c:2632 +#: ../src/gui/accelerators.c:2661 ../src/gui/accelerators.c:2723 +#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1081 ../src/gui/presets.c:422 +#: ../src/gui/presets.c:565 ../src/gui/styles_dialog.c:526 +#: ../src/imageio/storage/disk.c:198 ../src/imageio/storage/gallery.c:150 +#: ../src/imageio/storage/latex.c:146 ../src/iop/lut3d.c:1560 +#: ../src/libs/collect.c:425 ../src/libs/collect.c:3242 +#: ../src/libs/copy_history.c:115 ../src/libs/export_metadata.c:276 +#: ../src/libs/geotagging.c:929 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1711 +#: ../src/libs/metadata.c:462 ../src/libs/metadata_view.c:1222 +#: ../src/libs/recentcollect.c:228 ../src/libs/modulegroups.c:3466 +#: ../src/libs/styles.c:392 ../src/libs/styles.c:439 ../src/libs/styles.c:529 +#: ../src/libs/styles.c:624 ../src/libs/tagging.c:1488 +#: ../src/libs/tagging.c:1579 ../src/libs/tagging.c:1670 +#: ../src/libs/tagging.c:1806 ../src/libs/tagging.c:2085 +#: ../src/libs/tagging.c:2520 ../src/libs/tagging.c:2556 +#: ../src/libs/tagging.c:3502 +msgid "_cancel" +msgstr "_annulla" + +#: ../src/chart/main.c:504 ../src/gui/preferences.c:1081 +#: ../src/gui/styles_dialog.c:527 ../src/libs/collect.c:3243 +#: ../src/libs/export_metadata.c:277 ../src/libs/metadata.c:463 +#: ../src/libs/metadata_view.c:1223 ../src/libs/recentcollect.c:229 +#: ../src/libs/styles.c:392 ../src/libs/tagging.c:1671 +#: ../src/libs/tagging.c:1807 ../src/libs/tagging.c:2086 +#: ../src/libs/tagging.c:3503 +msgid "_save" +msgstr "_salva" + +#. TODO: is the rank interesting, too? +#: ../src/chart/main.c:1064 +#, c-format +msgid "" +"average dE: %.02f\n" +"max dE: %.02f" +msgstr "" +"Media dE: %.02f\n" +"Massimo dE: %.02f" + +#: ../src/cli/main.c:270 +msgid "TODO: sorry, due to API restrictions we currently cannot set the BPP to" +msgstr "" +"DA FARE: spiacenti, a causa delle restrizioni nelle api al momento non è " +"possibile impostare il BPP a" + +#: ../src/cli/main.c:282 +msgid "unknown option for --hq" +msgstr "Opzione sconosciuta per --hq" + +#: ../src/cli/main.c:298 +msgid "unknown option for --export_masks" +msgstr "Opzione sconosciuta per --export_masks" + +#: ../src/cli/main.c:314 +msgid "unknown option for --upscale" +msgstr "Opzione sconosciuta per --upscale" + +#: ../src/cli/main.c:339 +msgid "unknown option for --apply-custom-presets" +msgstr "Opzione sconosciuta per --apply-custom-presets" + +#: ../src/cli/main.c:350 +msgid "too long ext for --out-ext" +msgstr "Il parametro di --out-ext è troppo lungo" + +#: ../src/cli/main.c:367 +#, c-format +msgid "notice: input file or dir '%s' doesn't exist, skipping\n" +msgstr "Nota: il file o la cartella di input '%s' non esiste, proseguo oltre\n" + +#: ../src/cli/main.c:376 +#, c-format +msgid "incorrect ICC type for --icc-type: '%s'\n" +msgstr "Valore ICC non corretto per --icc-type: '%s'\n" + +#: ../src/cli/main.c:392 +#, c-format +msgid "notice: ICC file '%s' doesn't exist, skipping\n" +msgstr "Nota: il file ICC '%s' non esiste, non posso proseguire\n" + +#: ../src/cli/main.c:401 +#, c-format +msgid "incorrect ICC intent for --icc-intent: '%s'\n" +msgstr "Intento ICC non valido per --icc-intent: '%s'\n" + +#: ../src/cli/main.c:419 +#, c-format +msgid "warning: unknown option '%s'\n" +msgstr "Attenzione: opzione sconosciuta %s\n" + +#: ../src/cli/main.c:477 +#, c-format +msgid "error: input file and import opts specified! that's not supported!\n" +msgstr "" +"Errore: file e opzioni di input specificate! Questo non è supportato!\n" + +#: ../src/cli/main.c:510 +#, c-format +msgid "" +"notice: output location is a directory. assuming '%s/$(FILE_NAME).%s' output " +"pattern" +msgstr "" +"Nota: la destinazione di output è una cartella. Desumo che il percorso sia " +"'%s/$(FILE_NAME).%s'" + +#. output file exists or there's output ext specified and it's same as file... +#: ../src/cli/main.c:525 +msgid "output file already exists, it will get renamed" +msgstr "File di output già esistente, dovrà essere rinominato" + +#. one of inputs was a failure, no prob +#: ../src/cli/main.c:555 +#, c-format +msgid "error: can't open folder %s" +msgstr "Errore: impossibile aprire la cartella %s" + +#: ../src/cli/main.c:572 +#, c-format +msgid "error: can't open file %s" +msgstr "Errore: impossibile aprire il file %s" + +#: ../src/cli/main.c:589 +#, c-format +msgid "no images to export, aborting\n" +msgstr "Nessuna immagine da esportare, operazione annullata\n" + +#: ../src/cli/main.c:606 +#, c-format +msgid "error: can't open XMP file %s" +msgstr "Errore: non posso aprire il file XMP %s" + +#: ../src/cli/main.c:627 +msgid "empty history stack" +msgstr "Coda di sviluppo vuota" + +#. too long ext, no point in wasting time +#: ../src/cli/main.c:639 +#, c-format +msgid "too long output file extension: %s\n" +msgstr "Estensione del file di output troppo lunga: %s\n" + +#. no ext or empty ext, no point in wasting time +#: ../src/cli/main.c:647 +#, c-format +msgid "no output file extension given\n" +msgstr "Non è stata data alcuna estensione al file di output\n" + +#: ../src/cli/main.c:692 +msgid "" +"cannot find disk storage module. please check your installation, something " +"seems to be broken." +msgstr "" +"Non trovo il modulo di gestione della memorizzazione su disco. Verifica la " +"tua installazione, potrebbe essere difettosa." + +#: ../src/cli/main.c:702 +msgid "failed to get parameters from storage module, aborting export ..." +msgstr "" +"Impossibile ottenere i parametri dal modulo di salvataggio, annullamento " +"esportazione..." + +#: ../src/cli/main.c:718 +#, c-format +msgid "unknown extension '.%s'" +msgstr "Estensione '.%s' sconosciuta" + +#: ../src/cli/main.c:728 +msgid "failed to get parameters from format module, aborting export ..." +msgstr "" +"Impossibile ottenere i parametri dal modulo di formato, annullamento " +"esportazione..." + +#: ../src/common/camera_control.c:190 +#, c-format +msgid "" +"camera `%s' on port `%s' error %s\n" +"\n" +"make sure your camera allows access and is not mounted otherwise" +msgstr "" +"Fotocamera `%s' sulla porta `%s' errore %s\n" +"\n" +"Accerta che la tua fotocamera permetta l'accesso e non sia montata altrimenti" + +#: ../src/common/camera_control.c:892 +#, c-format +msgid "" +"failed to initialize `%s' on port `%s', likely causes are: locked by another " +"application, no access to devices etc" +msgstr "" +"Errore nell'inizializzare `%s' sulla porta `%s', possibili cause sono: " +"bloccata da un'altra applicazione, nessun accesso al dispositivo, ecc." + +#: ../src/common/camera_control.c:905 +#, c-format +msgid "" +"`%s' on port `%s' is not interesting because it supports neither tethering " +"nor import" +msgstr "" +"`%s' sulla porta `%s' non è interessante perchè non supporta nè il " +"tethering, nè l'import" + +#: ../src/common/camera_control.c:959 +#, c-format +msgid "camera `%s' on port `%s' disconnected while mounted" +msgstr "Fotocamera `%s' sulla porta `%s' disconnessa mentre era montata" + +#: ../src/common/camera_control.c:967 +#, c-format +msgid "" +"camera `%s' on port `%s' needs to be remounted\n" +"make sure it allows access and is not mounted otherwise" +msgstr "" +"La fotocamera `%s' sulla porta `%s' ha bisogno di esser rimontata\n" +"Accerta che la tua fotocamera permetta l'accesso e non sia montata altrimenti" + +#: ../src/common/collection.c:586 +msgid "too much time to update aspect ratio for the collection" +msgstr "Troppo tempo per aggiornare le proporzioni della raccolta" + +#: ../src/common/collection.c:601 +msgid "film roll" +msgstr "Rullino" + +#: ../src/common/collection.c:603 +msgid "folder" +msgstr "Cartella" + +#: ../src/common/collection.c:605 +msgid "camera" +msgstr "Fotocamera" + +#: ../src/common/collection.c:607 ../src/libs/export_metadata.c:176 +#: ../src/libs/tagging.c:3312 +msgid "tag" +msgstr "Etichetta" + +#: ../src/common/collection.c:609 +msgid "capture date" +msgstr "Data di acquisizione" + +#: ../src/common/collection.c:611 ../src/libs/filtering.c:61 +msgid "capture time" +msgstr "Orario di acquisizione" + +#: ../src/common/collection.c:613 ../src/libs/filtering.c:62 +msgid "import time" +msgstr "Orario d'importazione" + +#: ../src/common/collection.c:615 ../src/libs/filtering.c:63 +msgid "modification time" +msgstr "Orario di ultima modifica" + +#: ../src/common/collection.c:617 ../src/libs/filtering.c:64 +msgid "export time" +msgstr "Orario di esportazione" + +#: ../src/common/collection.c:619 ../src/libs/filtering.c:65 +msgid "print time" +msgstr "Orario di stampa" + +#: ../src/common/collection.c:621 ../src/libs/collect.c:3586 +#: ../src/libs/filtering.c:2237 ../src/libs/filtering.c:2257 +#: ../src/libs/filters/history.c:153 ../src/libs/history.c:92 +msgid "history" +msgstr "Coda di sviluppo" + +#: ../src/common/collection.c:623 ../src/common/colorlabels.c:341 +#: ../src/develop/lightroom.c:1607 ../src/dtgtk/thumbnail.c:1584 +#: ../src/libs/filtering.c:68 ../src/libs/filters/colors.c:301 +#: ../src/libs/filters/colors.c:312 ../src/libs/tools/colorlabels.c:93 +msgid "color label" +msgstr "Etichetta colore " + +#. iso +#: ../src/common/collection.c:629 ../src/gui/preferences.c:830 +#: ../src/gui/presets.c:680 ../src/libs/camera.c:558 +#: ../src/libs/metadata_view.c:149 +msgid "ISO" +msgstr "ISO" + +#. aperture +#: ../src/common/collection.c:631 ../src/gui/preferences.c:838 +#: ../src/gui/presets.c:715 ../src/libs/camera.c:545 ../src/libs/camera.c:547 +#: ../src/libs/metadata_view.c:142 +msgid "aperture" +msgstr "Diaframma" + +#: ../src/common/collection.c:637 ../src/libs/filtering.c:57 +#: ../src/libs/filters/filename.c:369 ../src/libs/metadata_view.c:128 +msgid "filename" +msgstr "Nome file" + +#: ../src/common/collection.c:639 ../src/develop/lightroom.c:1598 +#: ../src/libs/geotagging.c:141 +msgid "geotagging" +msgstr "Geolocalizzazione" + +#: ../src/common/collection.c:641 ../src/libs/filters/grouping.c:167 +#: ../src/libs/tools/global_toolbox.c:394 +msgid "grouping" +msgstr "Raggruppa" + +#: ../src/common/collection.c:643 ../src/dtgtk/thumbnail.c:1599 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:340 +msgid "local copy" +msgstr "Copia locale" + +#: ../src/common/collection.c:645 ../src/gui/preferences.c:806 +msgid "module" +msgstr "Modulo" + +#: ../src/common/collection.c:647 ../src/gui/hist_dialog.c:346 +#: ../src/gui/styles_dialog.c:734 ../src/gui/styles_dialog.c:783 +#: ../src/libs/filters/module_order.c:161 ../src/libs/ioporder.c:39 +msgid "module order" +msgstr "Ordine dei moduli" + +#: ../src/common/collection.c:649 +msgid "range rating" +msgstr "Intervallo di valutazione" + +#: ../src/common/collection.c:651 ../src/common/ratings.c:321 +#: ../src/develop/lightroom.c:1582 ../src/libs/filtering.c:67 +#: ../src/libs/tools/ratings.c:110 +msgid "rating" +msgstr "Valutazione" + +#: ../src/common/collection.c:653 +msgid "search" +msgstr "Ricerca" + +#: ../src/common/collection.c:1376 ../src/common/colorlabels.c:334 +#: ../src/develop/lightroom.c:889 ../src/gui/guides.c:732 +#: ../src/iop/colorzones.c:2501 ../src/iop/temperature.c:1902 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:261 +msgid "yellow" +msgstr "Giallo" + +#: ../src/common/collection.c:1382 ../src/common/color_vocabulary.c:339 +#: ../src/common/colorlabels.c:337 ../src/iop/colorzones.c:2505 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:264 +msgid "purple" +msgstr "Viola" + +#: ../src/common/collection.c:1400 ../src/libs/collect.c:1863 +#: ../src/libs/filters/history.c:38 +msgid "auto applied" +msgstr "Applicato automaticamente" + +#: ../src/common/collection.c:1406 ../src/libs/collect.c:1863 +#: ../src/libs/filters/history.c:38 +msgid "altered" +msgstr "Modificato" + +#: ../src/common/collection.c:1424 ../src/common/collection.c:1535 +#: ../src/libs/collect.c:1242 ../src/libs/collect.c:1426 +#: ../src/libs/collect.c:1452 ../src/libs/collect.c:1592 +#: ../src/libs/collect.c:2662 +msgid "not tagged" +msgstr "Non etichettate" + +#: ../src/common/collection.c:1425 ../src/libs/collect.c:1452 +#: ../src/libs/map_locations.c:742 +msgid "tagged" +msgstr "Etichettate" + +#: ../src/common/collection.c:1426 +msgid "tagged*" +msgstr "Etichettate*" + +#. local copy +#: ../src/common/collection.c:1460 ../src/libs/collect.c:1883 +#: ../src/libs/filters/local_copy.c:38 +msgid "not copied locally" +msgstr "Non copiato localmente" + +#: ../src/common/collection.c:1465 ../src/libs/collect.c:1882 +#: ../src/libs/filters/local_copy.c:38 +msgid "copied locally" +msgstr "copiato localmente" + +#. if its undefined +#: ../src/common/collection.c:1507 ../src/common/collection.c:1619 +#: ../src/libs/collect.c:2209 ../src/libs/collect.c:2210 +msgid "unnamed" +msgstr "senza nome" + +#: ../src/common/collection.c:1905 ../src/libs/collect.c:2013 +#: ../src/libs/filters/grouping.c:147 ../src/libs/filters/grouping.c:170 +msgid "group leaders" +msgstr "Identificatore gruppo" + +#: ../src/common/collection.c:1909 ../src/libs/collect.c:2013 +#: ../src/libs/filters/grouping.c:150 ../src/libs/filters/grouping.c:170 +msgid "group followers" +msgstr "Seguaci gruppo" + +#: ../src/common/collection.c:2066 ../src/libs/collect.c:2100 +msgid "not defined" +msgstr "Non definito" + +#: ../src/common/collection.c:2522 +#, c-format +msgid "<b>%d</b> image (#<b>%d</b>) selected of <b>%d</b>" +msgstr "<b>%d</b> immagine (#<b>%d</b>) selezionata di <b>%d</b>" + +#: ../src/common/collection.c:2529 +#, c-format +msgid "<b>%d</b> image selected of <b>%d</b>" +msgid_plural "<b>%d</b> images selected of <b>%d</b>" +msgstr[0] "<b>%d</b> immagine selezionata di <b>%d</b>" +msgstr[1] "<b>%d</b> immagini selezionate di <b>%d</b>" + +#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2340 +#: ../src/develop/blend_gui.c:2388 ../src/gui/guides.c:729 +#: ../src/iop/channelmixerrgb.c:4688 ../src/iop/levels.c:687 +#: ../src/iop/rgblevels.c:969 ../src/iop/rgblevels.c:1083 +msgid "gray" +msgstr "Grigio" + +#: ../src/common/color_vocabulary.c:92 +msgid "Chinese" +msgstr "Cinese" + +#: ../src/common/color_vocabulary.c:93 +msgid "Thai" +msgstr "Tailandese" + +#: ../src/common/color_vocabulary.c:94 +msgid "Kurdish" +msgstr "Curdo" + +#: ../src/common/color_vocabulary.c:95 +msgid "Caucasian" +msgstr "Caucasico" + +#: ../src/common/color_vocabulary.c:96 +msgid "African-American" +msgstr "Afro-americano" + +#: ../src/common/color_vocabulary.c:97 +msgid "Mexican" +msgstr "Messicano" + +#: ../src/common/color_vocabulary.c:100 ../src/common/color_vocabulary.c:105 +#: ../src/common/color_vocabulary.c:110 ../src/common/color_vocabulary.c:115 +msgid "forearm" +msgstr "Avambraccio" + +#: ../src/common/color_vocabulary.c:120 ../src/common/color_vocabulary.c:125 +#: ../src/common/color_vocabulary.c:130 ../src/common/color_vocabulary.c:135 +#: ../src/common/color_vocabulary.c:140 ../src/common/color_vocabulary.c:145 +msgid "forehead" +msgstr "Fronte" + +#: ../src/common/color_vocabulary.c:150 ../src/common/color_vocabulary.c:155 +#: ../src/common/color_vocabulary.c:160 ../src/common/color_vocabulary.c:165 +#: ../src/common/color_vocabulary.c:170 ../src/common/color_vocabulary.c:175 +msgid "cheek" +msgstr "Guancia" + +#: ../src/common/color_vocabulary.c:202 +#, c-format +msgid "average %s skin tone\n" +msgstr "Media %s incarnato\n" + +#. 0° - pinkish red +#: ../src/common/color_vocabulary.c:222 +msgid "deep purple" +msgstr "Viola intenso" + +#. L = 10 % +#: ../src/common/color_vocabulary.c:223 +msgid "fuchsia" +msgstr "Fucsia" + +#. L = 30 % +#: ../src/common/color_vocabulary.c:224 +msgid "medium magenta" +msgstr "Magenta medio" + +#. L = 50 % +#: ../src/common/color_vocabulary.c:225 +msgid "violet pink" +msgstr "Viola-rosa" + +#. L = 70 % +#: ../src/common/color_vocabulary.c:226 +msgid "plum violet" +msgstr "Viola prugna" + +#. 24° - red +#: ../src/common/color_vocabulary.c:231 +msgid "dark red" +msgstr "Rosso scuro" + +#: ../src/common/color_vocabulary.c:233 +msgid "crimson" +msgstr "Cremisi" + +#: ../src/common/color_vocabulary.c:234 +msgid "salmon" +msgstr "Rosa salmone" + +#: ../src/common/color_vocabulary.c:235 +msgid "pink" +msgstr "Rosa" + +#. 48° - orangy red +#: ../src/common/color_vocabulary.c:240 +msgid "maroon" +msgstr "Rosso granata" + +#: ../src/common/color_vocabulary.c:241 +msgid "dark orange red" +msgstr "Arancione-rosso scuro" + +#: ../src/common/color_vocabulary.c:242 +msgid "orange red" +msgstr "Arancione-rosso" + +#: ../src/common/color_vocabulary.c:243 +msgid "coral" +msgstr "Corallo" + +#: ../src/common/color_vocabulary.c:244 ../src/common/color_vocabulary.c:261 +msgid "khaki" +msgstr "Cachi" + +#. 72° - orange +#: ../src/common/color_vocabulary.c:249 +msgid "brown" +msgstr "Marrone" + +#: ../src/common/color_vocabulary.c:250 +msgid "chocolate" +msgstr "Cioccolato" + +#: ../src/common/color_vocabulary.c:251 +msgid "dark gold" +msgstr "Oro scuro" + +#: ../src/common/color_vocabulary.c:252 +msgid "gold" +msgstr "Oro" + +#: ../src/common/color_vocabulary.c:253 +msgid "sandy brown" +msgstr "Marrone sabbia" + +#. 96° - yellow olive +#. 120° - green +#. 144° - blueish green +#: ../src/common/color_vocabulary.c:258 ../src/common/color_vocabulary.c:267 +#: ../src/common/color_vocabulary.c:276 +msgid "dark green" +msgstr "Verde scuro" + +#: ../src/common/color_vocabulary.c:259 +msgid "dark olive green" +msgstr "Verde oliva scuro" + +#: ../src/common/color_vocabulary.c:260 +msgid "olive" +msgstr "Verde oliva" + +#: ../src/common/color_vocabulary.c:262 +msgid "beige" +msgstr "Beige" + +#: ../src/common/color_vocabulary.c:268 ../src/common/color_vocabulary.c:278 +msgid "forest green" +msgstr "Verde foresta" + +#: ../src/common/color_vocabulary.c:269 +msgid "olive drab" +msgstr "Grigio-verde" + +#: ../src/common/color_vocabulary.c:270 +msgid "yellow green" +msgstr "Giallo-verde" + +#: ../src/common/color_vocabulary.c:271 ../src/common/color_vocabulary.c:280 +msgid "pale green" +msgstr "Verde pallido" + +#: ../src/common/color_vocabulary.c:279 +msgid "lime green" +msgstr "Verde limone" + +#. 168° - greenish cyian +#: ../src/common/color_vocabulary.c:285 +msgid "dark sea green" +msgstr "Verde mare scuro" + +#: ../src/common/color_vocabulary.c:286 +msgid "sea green" +msgstr "Verde mare" + +#: ../src/common/color_vocabulary.c:287 ../src/common/color_vocabulary.c:304 +msgid "teal" +msgstr "Color foglia da tè" + +#: ../src/common/color_vocabulary.c:288 +msgid "light sea green" +msgstr "Verde mare chiaro" + +#: ../src/common/color_vocabulary.c:289 +msgid "turquoise" +msgstr "Turchese" + +#. 192° - cyan +#: ../src/common/color_vocabulary.c:294 +msgid "dark slate gray" +msgstr "Grigio antracite scuro" + +#: ../src/common/color_vocabulary.c:295 +msgid "light slate gray" +msgstr "Grigio antracite chiaro" + +#: ../src/common/color_vocabulary.c:296 ../src/common/color_vocabulary.c:305 +msgid "dark cyan" +msgstr "Ciano scuro" + +#: ../src/common/color_vocabulary.c:297 ../src/common/color_vocabulary.c:317 +#: ../src/iop/colorzones.c:2503 +msgid "aqua" +msgstr "Acqua" + +#: ../src/common/color_vocabulary.c:298 ../src/gui/guides.c:733 +#: ../src/iop/temperature.c:1900 +msgid "cyan" +msgstr "Ciano" + +#. 216° - medium blue +#: ../src/common/color_vocabulary.c:303 +msgid "navy blue" +msgstr "Blu marino" + +#: ../src/common/color_vocabulary.c:306 ../src/common/color_vocabulary.c:316 +msgid "deep sky blue" +msgstr "Azzurro intenso" + +#: ../src/common/color_vocabulary.c:307 +msgid "aquamarine blue" +msgstr "Blu acquamarina" + +#. 240° - blue and 264° - bluer than blue +#. these are collapsed because CIE Lab 1976 sucks for blues +#. 288° - more blue +#: ../src/common/color_vocabulary.c:313 ../src/common/color_vocabulary.c:322 +msgid "dark blue" +msgstr "Blu scuro" + +#: ../src/common/color_vocabulary.c:314 ../src/common/color_vocabulary.c:323 +msgid "medium blue" +msgstr "Blu medio" + +#: ../src/common/color_vocabulary.c:315 +msgid "azure blue" +msgstr "Azzurro" + +#: ../src/common/color_vocabulary.c:325 +msgid "light sky blue" +msgstr "Blu cielo chiaro" + +#: ../src/common/color_vocabulary.c:326 +msgid "light blue" +msgstr "Blu chiaro" + +#. 312° - violet +#: ../src/common/color_vocabulary.c:331 +msgid "indigo" +msgstr "Indaco" + +#: ../src/common/color_vocabulary.c:332 +msgid "dark violet" +msgstr "Viola scuro" + +#: ../src/common/color_vocabulary.c:333 +msgid "blue violet" +msgstr "Blu viola" + +#: ../src/common/color_vocabulary.c:334 ../src/common/color_vocabulary.c:342 +msgid "violet" +msgstr "Viola" + +#: ../src/common/color_vocabulary.c:335 +msgid "plum" +msgstr "Prugna" + +#: ../src/common/color_vocabulary.c:340 +msgid "dark magenta" +msgstr "Magenta scuro" + +#: ../src/common/color_vocabulary.c:341 ../src/gui/guides.c:734 +#: ../src/iop/colorzones.c:2506 ../src/iop/temperature.c:1898 +msgid "magenta" +msgstr "Magenta" + +#: ../src/common/color_vocabulary.c:343 +msgid "lavender" +msgstr "Lavanda" + +#: ../src/common/color_vocabulary.c:346 +msgid "color not found" +msgstr "Colore non trovato" + +#: ../src/common/colorlabels.c:309 +#, c-format +msgid "colorlabels set to %s" +msgstr "Etichette colore impostate a %s" + +#: ../src/common/colorlabels.c:311 +msgid "all colorlabels removed" +msgstr "Rimosse tutte le etichette colore" + +#: ../src/common/colorlabels.c:332 ../src/gui/accelerators.c:188 +#: ../src/libs/image.c:660 +msgid "clear" +msgstr "Pulisci" + +#: ../src/common/colorspaces.c:1382 ../src/common/colorspaces.c:1730 +#: ../src/iop/colorout.c:901 +msgid "export profile" +msgstr "Profilo di esportazione" + +#: ../src/common/colorspaces.c:1387 ../src/common/colorspaces.c:1732 +#: ../src/views/darkroom.c:2383 +msgid "softproof profile" +msgstr "Profilo simulazione a schermo" + +#: ../src/common/colorspaces.c:1397 ../src/common/colorspaces.c:1714 +msgid "system display profile" +msgstr "Profilo di sistema dello schermo" + +#: ../src/common/colorspaces.c:1402 ../src/common/colorspaces.c:1736 +msgid "system display profile (second window)" +msgstr "Profilo dello schermo di sistema (seconda finestra)" + +#: ../src/common/colorspaces.c:1415 +msgid "sRGB (web-safe)" +msgstr "sRGB (sicuro per il web)" + +#: ../src/common/colorspaces.c:1435 ../src/common/colorspaces.c:1738 +msgid "Rec709 RGB" +msgstr "Rec709 RGB" + +#: ../src/common/colorspaces.c:1450 +msgid "PQ Rec2020 RGB" +msgstr "RGB PQ Rec2020" + +#: ../src/common/colorspaces.c:1458 +msgid "HLG Rec2020 RGB" +msgstr "RGB HLG Rec2020" + +#: ../src/common/colorspaces.c:1465 +msgid "PQ P3 RGB" +msgstr "PQ P3 RGB" + +#: ../src/common/colorspaces.c:1471 +msgid "HLG P3 RGB" +msgstr "HLG P3 RGB" + +#: ../src/common/colorspaces.c:1478 +msgid "Display P3 RGB" +msgstr "Schermo P3 RGB" + +#: ../src/common/colorspaces.c:1493 ../src/common/colorspaces.c:1708 +msgid "linear XYZ" +msgstr "XYZ lineare " + +#: ../src/common/colorspaces.c:1500 ../src/common/colorspaces.c:1710 +#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2016 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:293 +msgid "Lab" +msgstr "Lab" + +#: ../src/common/colorspaces.c:1508 ../src/common/colorspaces.c:1712 +msgid "linear infrared BGR" +msgstr "BGR lineare infrarosso " + +#: ../src/common/colorspaces.c:1513 +msgid "BRG (for testing)" +msgstr "BRG (per test)" + +#: ../src/common/colorspaces.c:1619 +#, c-format +msgid "" +"profile `%s' not usable as histogram profile. it has been replaced by sRGB!" +msgstr "" +"Il profilo `%s' non è utilizzabile come profilo istogramma. E' stato " +"sostituito da sRGB!" + +#: ../src/common/colorspaces.c:1716 +msgid "embedded ICC profile" +msgstr "Profilo ICC incorporato" + +#: ../src/common/colorspaces.c:1718 +msgid "embedded matrix" +msgstr "Matrice incorporata" + +#: ../src/common/colorspaces.c:1720 +msgid "standard color matrix" +msgstr "Matrice colore standard" + +#: ../src/common/colorspaces.c:1722 +msgid "enhanced color matrix" +msgstr "Matrice colore potenziata" + +#: ../src/common/colorspaces.c:1724 +msgid "vendor color matrix" +msgstr "Matrice colore del produttore" + +#: ../src/common/colorspaces.c:1726 +msgid "alternate color matrix" +msgstr "Matrice colore alternativa" + +#: ../src/common/colorspaces.c:1728 +msgid "BRG (experimental)" +msgstr "BRG (sperimentale)" + +#: ../src/common/colorspaces.c:1742 +msgid "PQ Rec2020" +msgstr "PQ Rec2020" + +#: ../src/common/colorspaces.c:1744 +msgid "HLG Rec2020" +msgstr "HLG Rec2020" + +#: ../src/common/colorspaces.c:1746 +msgid "PQ P3" +msgstr "PQ P3" + +#: ../src/common/colorspaces.c:1748 +msgid "HLG P3" +msgstr "HLG P3" + +#: ../src/common/cups_print.c:420 +#, c-format +msgid "file `%s' to print not found for image %d on `%s'" +msgstr "File `%s' da stampare non trovato per l'immagine %d su `%s'" + +#: ../src/common/cups_print.c:439 +msgid "failed to create temporary file for printing options" +msgstr "" +"Non è stato possibile creare il file temporaneo per le opzioni di stampa" + +#: ../src/common/cups_print.c:508 +#, c-format +msgid "printing on `%s' cancelled" +msgstr "Stampa su `%s' cancellata" + +#: ../src/common/cups_print.c:572 +#, c-format +msgid "error while printing `%s' on `%s'" +msgstr "Errore durante la stampa di `%s' su `%s'" + +#: ../src/common/cups_print.c:574 +#, c-format +msgid "printing `%s' on `%s'" +msgstr "Stampa di `%s' su `%s'" + +#: ../src/common/darktable.c:375 +#, c-format +msgid "found strange path `%s'" +msgstr "Trovato percorso anomalo '%s'" + +#: ../src/common/darktable.c:390 +#, c-format +msgid "error loading directory `%s'" +msgstr "Errore nel caricamento della cartella '%s'" + +#: ../src/common/darktable.c:414 +#, c-format +msgid "file `%s' has unknown format!" +msgstr "Il file '%s' ha un formato sconosciuto!" + +#: ../src/common/darktable.c:427 ../src/control/jobs/control_jobs.c:2121 +#: ../src/control/jobs/control_jobs.c:2180 +#, c-format +msgid "error loading file `%s'" +msgstr "Errore nel caricamento del file '%s'" + +#: ../src/common/darktable.c:1650 +msgid "configuration information" +msgstr "Informazioni di configurazione" + +#: ../src/common/darktable.c:1652 +msgid "_show this information again" +msgstr "_mostra ancora quest'informazione" + +#: ../src/common/darktable.c:1652 +msgid "_understood" +msgstr "_Ho capito" + +#: ../src/common/darktable.c:2106 +msgid "" +"the RCD demosaicer has been defined as default instead of PPG because of " +"better quality and performance." +msgstr "" +"L'algoritmo di demosaicizzazione RCD è stato impostato come predefinito al " +"posto del PPG in quanto migliore in termini di qualità e prestazioni." + +#: ../src/common/darktable.c:2108 +msgid "see preferences/darkroom/demosaicing for zoomed out darkroom mode" +msgstr "" +"Vedi Preferenze/Camera Oscura/Demosaicizzazione per le modalità ingrandite " +"della Camera Oscura" + +#: ../src/common/darktable.c:2114 +msgid "" +"the user interface and the underlying internals for tuning darktable " +"performance have changed." +msgstr "" +"L'interfaccia utente ed i meccanismi interni per regolare le prestazioni di " +"darktable sono state cambiate." + +#: ../src/common/darktable.c:2116 +msgid "" +"you won't find headroom and friends any longer, instead in preferences/" +"processing use:" +msgstr "" +"Non troverai più \"headroom\" e parametri simili ma, in preferenze/" +"elaborazione, usa invece:" + +#: ../src/common/darktable.c:2118 +msgid "1) darktable resources" +msgstr "1) risorse Darktable" + +#: ../src/common/darktable.c:2120 +msgid "2) tune OpenCL performance" +msgstr "2) Ottimizza prestazioni OpenCL" + +#: ../src/common/darktable.c:2127 +msgid "" +"some global config parameters relevant for OpenCL performance are not used " +"any longer." +msgstr "" +"Alcuni dei parametri di configuraazione globale per le prestazioni OpenCL " +"non sono più usate." + +#: ../src/common/darktable.c:2129 +msgid "" +"instead you will find 'per device' data in 'cldevice_v5_canonical-name'. " +"content is:" +msgstr "" +"Troverai invece dati 'per dispositivo' in 'cl_device_v5_canonical-name'. Il " +"contenuto è:" + +#: ../src/common/darktable.c:2131 ../src/common/darktable.c:2150 +#: ../src/common/darktable.c:2165 +msgid "" +" 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" +msgstr "" +" 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" + +#: ../src/common/darktable.c:2133 ../src/common/darktable.c:2152 +msgid "you may tune as before except 'magic'" +msgstr "Puoi regolare come prima, ad eccezione di 'magic'" + +#: ../src/common/darktable.c:2139 +msgid "" +"your OpenCL compiler settings for all devices have been reset to default." +msgstr "" +"Le tue impostazioni di compilazione OpenCL per tutti i dispositivi sono " +"state resettate al valore predefinito." + +#: ../src/common/darktable.c:2146 +msgid "" +"OpenCL global config parameters 'per device' data has been recreated with an " +"updated name." +msgstr "" +"I dati dei parametri globali di configurazione OpenCL 'per dispositivo' sono " +"stati ricreati con un nome aggiornato. " + +#: ../src/common/darktable.c:2148 ../src/common/darktable.c:2163 +msgid "" +"you will find 'per device' data in 'cldevice_v5_canonical-name'. content is:" +msgstr "" +"Troverai i dati 'per dispositivoì in 'cldevice_v5_canonical-name'. Il " +"contenuto è:" + +#: ../src/common/darktable.c:2154 +msgid "" +"If you're using device names in 'opencl_device_priority' you should update " +"them to the new names." +msgstr "" +"Se stai usando nomi dispositivo in 'opencl_device_priority' dovresti " +"aggiornarli al nuovo nome." + +#: ../src/common/darktable.c:2161 +msgid "" +"OpenCL 'per device' config data have been automatically extended by 'unified-" +"fraction'." +msgstr "" +"I dati di configurazione OpenCL 'per dispositivo' sono stati automaticamente " +"estesi di una 'frazione indefinita'." + +#: ../src/common/darktable.c:2172 +msgid "" +"OpenCL 'per device' compiler settings might have been updated.\n" +"\n" +msgstr "" +"Le impostazioni di compilazione OpenCL 'per dispositivo' potrebbero essere " +"stati aggiornati. \n" +"\n" + +#: ../src/common/database.c:3350 +#, c-format +msgid "" +"\n" +" Sorry, darktable could not be started (database is locked)\n" +"\n" +" How to solve this problem?\n" +"\n" +" 1 - If another darktable instance is already open, \n" +" click cancel and either use that instance or close it before " +"attempting to rerun darktable \n" +" (process ID <i><b>%d</b></i> created the database locks)\n" +"\n" +" 2 - If you can't find a running instance of darktable, try restarting your " +"session or your computer. \n" +" This will close all running programs and hopefully close the databases " +"correctly. \n" +"\n" +" 3 - If you have done this or are certain that no other instances of " +"darktable are running, \n" +" this probably means that the last instance was ended abnormally. \n" +" Click on the \"delete database lock files\" button to remove the files " +"<i>data.db.lock</i> and <i>library.db.lock</i>. \n" +"\n" +"\n" +" <i><u>Caution!</u> Do not delete these files without first undertaking " +"the above checks, \n" +" otherwise you risk generating serious inconsistencies in your database." +"</i>\n" +msgstr "" +"\n" +" Ci dispiace, darktable non può esser avviato (il database è bloccato)\n" +"\n" +" Come si può risolvere questo problema?\n" +"\n" +" 1 - Se è aperta un'altra istanza di darktable, \n" +" clicca annulla e usa quell'istanza oppure chiudila prima di tentare di " +"riavviare darktable \n" +" (l'ID processo <i><b>%d</b></i> ha creato il blocco del database)\n" +"\n" +" 2 - Se non riesci a trovare un istanza avviata di darktable, prova a " +"riavviare la sessione o il tuo computer. \n" +" Questo chiuderà tutti i programmi avviati e si spera chiuda i " +"databases correttamente. \n" +"\n" +" 3 - Se hai già fatto questo o sei certo che nessun'altra istanza di " +"darktable sia aperta, \n" +" significa probabilmente che l'ultima istanza si è chiusa in modo " +"anomalo. \n" +" Clicca sul pulsante \"Elimina i file di blocco del database\" per " +"rimuovere i files <i>data.db.lock</i> e <i>library.db.lock</i>. \n" +"\n" +"\n" +" <i><u>Attenzione!</u> Non cancellare questi files senza prima esserti " +"assicurato dei controlli sopra, \n" +" altrimenti rischi di generare gravi inconsistenze sul tuo database.</" +"i>\n" + +#. clang-format on +#: ../src/common/database.c:3371 +msgid "error starting darktable" +msgstr "Errore avviando Darktable" + +#: ../src/common/database.c:3372 +msgid "_delete database lock files" +msgstr "_Elimina i file di blocco del database" + +#: ../src/common/database.c:3378 +msgid "are you sure?" +msgstr "Sei sicuro?" + +#: ../src/common/database.c:3379 +msgid "" +"\n" +"do you really want to delete the lock files?\n" +msgstr "" +"\n" +"Vuoi veramente eliminare i file di blocco?\n" + +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2606 +msgid "_no" +msgstr "_no" + +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2605 +msgid "_yes" +msgstr "_yes" + +#: ../src/common/database.c:3395 +msgid "done" +msgstr "Fatto" + +#: ../src/common/database.c:3396 +msgid "" +"\n" +"successfully deleted the lock files.\n" +"you can now restart darktable\n" +msgstr "" +"\n" +"File di blocco cancellati con successo.\n" +"Ora puoi riavviare darktable\n" + +#: ../src/common/database.c:3397 ../src/common/database.c:3404 +#: ../src/gui/accelerators.c:2580 ../src/gui/accelerators.c:2662 +#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:566 +msgid "_ok" +msgstr "_ok" + +#: ../src/common/database.c:3400 +msgid "error" +msgstr "Errore" + +#: ../src/common/database.c:3401 +#, c-format +msgid "" +"\n" +"at least one file could not be removed.\n" +"you may try to manually delete the files <i>data.db.lock</i> and <i>library." +"db.lock</i>\n" +"in folder <a href=\"file:///%s\">%s</a>.\n" +msgstr "" +"\n" +"Non è stato possibile eliminare almeno un file.\n" +"Puoi provare a cancellare manualmente i file <i>data.db.lock</i> e " +"<i>library.db.lock</i>\n" +"nella cartella <a href=\"file:///%s\">%s</a>.\n" + +#: ../src/common/database.c:3518 +#, c-format +msgid "" +"the database lock file contains a pid that seems to be alive in your system: " +"%d" +msgstr "" +"Il file di blocco del database contiene un pid che sembra essere attivo sul " +"tuo sistema: %d" + +#: ../src/common/database.c:3525 +#, c-format +msgid "the database lock file seems to be empty" +msgstr "Il file di blocco del database sembra essere vuoto" + +#: ../src/common/database.c:3535 +#, c-format +msgid "error opening the database lock file for reading: %s" +msgstr "" +"Riscontrato un errore nell'apertura del file di blocco del database per " +"leggere: %s" + +#: ../src/common/database.c:3605 +#, c-format +msgid "" +"the database schema version of\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"is too new for this build of darktable (this means the database was created " +"or upgraded by a newer darktable version)\n" +msgstr "" +"la versione dello schema del databae di\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"è troppo recente per questa build di darktable (significa che il database è " +"stato creato o aggiornato da una versione più nuova di darktable)\n" + +#: ../src/common/database.c:3612 +msgid "darktable - too new db version" +msgstr "darktable - versione database troppo recente" + +#: ../src/common/database.c:3613 +msgid "_quit darktable" +msgstr "_esci da darktable" + +#. the database has to be upgraded, let's ask user +#: ../src/common/database.c:3628 +#, c-format +msgid "" +"the database schema has to be upgraded for\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"this might take a long time in case of a large database\n" +"\n" +"do you want to proceed or quit now to do a backup\n" +msgstr "" +"Lo schema del database deve essere aggiornato per\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"Potrebbe richiedere molto tempo nel caso di un grande database\n" +"\n" +"Vuoi procedere o esci ora per fare un backup\n" + +#: ../src/common/database.c:3636 +msgid "darktable - schema migration" +msgstr "darktable - migrazione schema" + +#: ../src/common/database.c:3637 ../src/common/database.c:3959 +#: ../src/common/database.c:3974 ../src/common/database.c:4142 +#: ../src/common/database.c:4157 +msgid "_close darktable" +msgstr "_chiudi darktable" + +#: ../src/common/database.c:3637 +msgid "_upgrade database" +msgstr "_aggiorna database" + +#: ../src/common/database.c:3939 ../src/common/database.c:4122 +#, c-format +msgid "" +"quick_check said:\n" +"%s \n" +msgstr "" +"Il controllo veloce ha detto:\n" +"%s \n" + +#: ../src/common/database.c:3956 ../src/common/database.c:3971 +#: ../src/common/database.c:4139 ../src/common/database.c:4154 +msgid "darktable - error opening database" +msgstr "darktable - errore nell'apertura del database" + +#: ../src/common/database.c:3960 ../src/common/database.c:4143 +msgid "_attempt restore" +msgstr "_tenta il ripristino" + +#: ../src/common/database.c:3961 ../src/common/database.c:3975 +#: ../src/common/database.c:4144 ../src/common/database.c:4158 +msgid "_delete database" +msgstr "_elimina database" + +#: ../src/common/database.c:3964 ../src/common/database.c:4147 +msgid "" +"do you want to close darktable now to manually restore\n" +"the database from a backup, attempt an automatic restore\n" +"from the most recent snapshot or delete the corrupted database\n" +"and start with a new one?" +msgstr "" +"Vuoi chiudere Darktable ora per ripristinare manualmente\n" +"il database da un backup, tentare un ripristino automatico\n" +"dall'istantanea più recente o cancellare il database corrotto\n" +"e partire con uno nuovo?" + +#: ../src/common/database.c:3978 ../src/common/database.c:4161 +msgid "" +"do you want to close darktable now to manually restore\n" +"the database from a backup or delete the corrupted database\n" +"and start with a new one?" +msgstr "" +"Vuoi chiudere Darktable ora per ripristinare manualmente\n" +"il database da un backup o cancellare il database corrotto\n" +"e partire con uno nuovo?" + +#: ../src/common/database.c:3985 ../src/common/database.c:4166 +#, c-format +msgid "" +"an error has occurred while trying to open the database from\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"it seems that the database is corrupted.\n" +"%s%s" +msgstr "" +"Riscontrato un errore mentre si tentava di aprire il database da\n" +"\n" +"<span style=\"italic\">%s</span>\n" +"\n" +"sembra che il database sia corrotto.\n" +"%s%s" + +#: ../src/common/eigf.h:288 +msgid "" +"fast exposure independent guided filter failed to allocate memory, check " +"your RAM settings" +msgstr "" +"Il filtro guidato indipendente dall'esposizione non è stato in grado di " +"allocare la memoria, controlla le impostazioni della RAM" + +#: ../src/common/exif.cc:5482 +#, c-format +msgid "cannot read XMP file '%s': '%s'" +msgstr "Impossibile leggere il file XMP `%s': `%s'" + +#: ../src/common/exif.cc:5540 +#, c-format +msgid "cannot write XMP file '%s': '%s'" +msgstr "Impossibile scrivere il file XMP `%s': `%s'" + +#: ../src/common/fast_guided_filter.h:316 +msgid "fast guided filter failed to allocate memory, check your RAM settings" +msgstr "" +"Il filtro guidato non è riuscito ad allocare la memoria. Verificate le " +"impostazioni della vostra RAM" + +#: ../src/common/film.c:356 +msgid "do you want to remove this empty directory?" +msgid_plural "do you want to remove these empty directories?" +msgstr[0] "Vuoi rimuovere questa cartella vuota?" +msgstr[1] "Vuoi rimuovere queste cartelle vuote?" + +#: ../src/common/film.c:363 +msgid "remove empty directory?" +msgid_plural "remove empty directories?" +msgstr[0] "Rimuovo la cartella vuota?" +msgstr[1] "Rimuovo le cartelle vuote?" + +#: ../src/common/film.c:383 ../src/gui/preferences.c:814 +#: ../src/gui/styles_dialog.c:556 ../src/libs/geotagging.c:830 +#: ../src/libs/import.c:1560 +msgid "name" +msgstr "Nome file" + +#: ../src/common/film.c:492 +msgid "" +"cannot remove film roll having local copies with non accessible originals" +msgstr "" +"Impossibile rimuovere il rullino che ha copie locali con originali non " +"accessibili" + +#: ../src/common/history.c:881 +msgid "you need to copy history from an image before you paste it onto another" +msgstr "" +"Occorre copiare la coda di sviluppo da un'immagine prima di poterla " +"incollare in un'altra" + +#: ../src/common/image.c:333 +msgid "orphaned image" +msgstr "Immagine orfana" + +#: ../src/common/image.c:629 +#, c-format +msgid "geo-location undone for %d image" +msgid_plural "geo-location undone for %d images" +msgstr[0] "geolocalizzazione cancellata per %d immagini" +msgstr[1] "Geolocalizzazione non effettuata per %d immagini" + +#: ../src/common/image.c:631 +#, c-format +msgid "geo-location re-applied to %d image" +msgid_plural "geo-location re-applied to %d images" +msgstr[0] "geolocalizzazione ri-applicata a %d immagini" +msgstr[1] "Geo-localizzazione riapplicata alle %d immagini" + +#: ../src/common/image.c:654 +#, c-format +msgid "date/time undone for %d image" +msgid_plural "date/time undone for %d images" +msgstr[0] "data/ora cancellata per %d immagini" +msgstr[1] "Data/ora annullata per le %d immagini" + +#: ../src/common/image.c:656 +#, c-format +msgid "date/time re-applied to %d image" +msgid_plural "date/time re-applied to %d images" +msgstr[0] "data/ora ri-applicata a %d immagini" +msgstr[1] "Data/ora ri-applicata alle %d immagini" + +#: ../src/common/image.c:2260 +#, c-format +msgid "cannot access local copy `%s'" +msgstr "Impossibile accedere ad una copia locale di '%s'" + +#: ../src/common/image.c:2267 +#, c-format +msgid "cannot write local copy `%s'" +msgstr "Impossibile creare una copia locale di '%s'" + +#: ../src/common/image.c:2274 +#, c-format +msgid "error moving local copy `%s' -> `%s'" +msgstr "Errore nello spostamento della copia locale '%s' -> '%s'" + +#: ../src/common/image.c:2291 +#, c-format +msgid "error moving `%s': file not found" +msgstr "Errore spostando `%s': file non trovato" + +#: ../src/common/image.c:2301 +#, c-format +msgid "error moving `%s' -> `%s': file exists" +msgstr "Errore spostando `%s' -> `%s': file già esistente" + +#: ../src/common/image.c:2305 +#, c-format +msgid "error moving `%s' -> `%s'" +msgstr "Errore nello spostamento di '%s' -> '%s'" + +#: ../src/common/image.c:2634 +msgid "cannot create local copy when the original file is not accessible." +msgstr "" +"Impossibile creare una copia locale quando il file originale non è " +"accessibile." + +#: ../src/common/image.c:2648 +msgid "cannot create local copy." +msgstr "Impossibile creare una copia locale." + +#: ../src/common/image.c:2728 ../src/control/jobs/control_jobs.c:777 +msgid "cannot remove local copy when the original file is not accessible." +msgstr "" +"Impossibile rimuovere la copia locale quando il file originale non è " +"accessibile" + +#: ../src/common/image.c:2901 +#, c-format +msgid "%d local copy has been synchronized" +msgid_plural "%d local copies have been synchronized" +msgstr[0] "%d copia locale è stata sincronizzata" +msgstr[1] "%d copie locali sono state sincronizzate" + +#: ../src/common/image.c:3102 +msgid "<b>WARNING</b>: camera is missing samples!" +msgstr "<b>ATTENZIONE</b>: mancano campioni per la fotocamera!" + +#: ../src/common/image.c:3103 +msgid "" +"You must provide samples in <a href='https://raw.pixls.us/'>https://raw." +"pixls.us/</a>" +msgstr "" +"Devi fornire campioni su <a href='https://raw.pixls.us/'>https://raw.pixls." +"us/</a>" + +#: ../src/common/image.c:3104 +#, c-format +msgid "" +"for `%s' `%s'\n" +"in as many format/compression/bit depths as possible" +msgstr "" +"per `%s' `%s'\n" +"in quanti più possibili formati/compressione/profondità di bit possibile" + +#: ../src/common/image.c:3107 +msgid "or the <b>RAW won't be readable</b> in next version." +msgstr "o il <b>file RAW non sarà leggibile</b> nella prossima versione." + +#: ../src/common/image.h:217 ../src/common/ratings.c:283 +#: ../src/imageio/format/avif.c:114 ../src/libs/history.c:843 +#: ../src/libs/snapshots.c:837 +msgid "unknown" +msgstr "Sconosciuto" + +#. EMPTY_FIELD +#: ../src/common/image.h:218 ../src/imageio/format/tiff.c:831 +msgid "TIFF" +msgstr "TIFF" + +#: ../src/common/image.h:219 ../src/imageio/format/png.c:599 +msgid "PNG" +msgstr "PNG" + +#: ../src/common/image.h:220 +msgid "JPEG 2000" +msgstr "JPEG 2000" + +#: ../src/common/image.h:221 +msgid "JPEG" +msgstr "JPEG" + +#: ../src/common/image.h:222 +msgid "EXR" +msgstr "EXR" + +#: ../src/common/image.h:223 +msgid "RGBE" +msgstr "RGBE" + +#: ../src/common/image.h:224 ../src/imageio/format/pfm.c:120 +msgid "PFM" +msgstr "PFM" + +#: ../src/common/image.h:225 +msgid "GraphicsMagick" +msgstr "GraphicsMagick" + +#: ../src/common/image.h:226 +msgid "RawSpeed" +msgstr "RawSpeed" + +#: ../src/common/image.h:227 +msgid "Netpbm" +msgstr "Netpbm" + +#: ../src/common/image.h:228 ../src/imageio/format/avif.c:728 +msgid "AVIF" +msgstr "AVIF" + +#: ../src/common/image.h:229 +msgid "ImageMagick" +msgstr "ImageMagick" + +#: ../src/common/image.h:230 +msgid "HEIF" +msgstr "HEIF" + +#: ../src/common/image.h:231 +msgid "LibRaw" +msgstr "LibRaw" + +#: ../src/common/image.h:232 ../src/imageio/format/webp.c:380 +msgid "WebP" +msgstr "WebP" + +#: ../src/common/image.h:233 ../src/imageio/format/jxl.c:482 +msgid "JPEG XL" +msgstr "JPEG XL" + +#: ../src/common/image.h:234 +msgid "QOI" +msgstr "QOI" + +#: ../src/common/imagebuf.c:132 +msgid "insufficient memory" +msgstr "Memoria insufficiente" + +#: ../src/common/imagebuf.c:133 +msgid "" +"this module was unable to allocate\n" +"all of the memory required to process\n" +"the image. some or all processing\n" +"has been skipped." +msgstr "" +"Questo modulo non è riuscito ad allocare\n" +"tutta la memoria necessaria per elaborare\n" +"l'immagine. Tutte o alcune delle elaborazioni\n" +"sono state saltate." + +#: ../src/common/import_session.c:308 +msgid "" +"couldn't expand to a unique filename for session, please check your import " +"session settings." +msgstr "" +"Per l'importazione impossibile espandere ad un nome di file univoco,verifica " +"le impostazioni di importazione." + +#: ../src/common/import_session.c:401 +msgid "requested session path not available. device not mounted?" +msgstr "" +"Il percorso della sessione richiesta non è disponibile. Il dispositivo è " +"montato?" + +#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:195 +msgid "legacy" +msgstr "Legacy" + +#: ../src/common/iop_order.c:61 +msgid "v3.0 RAW" +msgstr "v3.0 RAW" + +#: ../src/common/iop_order.c:62 +msgid "v3.0 JPEG" +msgstr "v3.0 JPEG" + +#: ../src/common/iop_profile.c:1207 +#, c-format +msgid "" +"darktable loads %s from\n" +"<b>%s</b>\n" +"or, if this directory does not exist, from\n" +"<b>%s</b>" +msgstr "" +"darktable carica %s da\n" +"<b>%s</b>\n" +"oppure, se la directory non esiste, da\n" +"<b>%s</b>" + +#. clang-format off +#: ../src/common/metadata.c:46 +msgid "creator" +msgstr "Autore" + +#: ../src/common/metadata.c:47 +msgid "publisher" +msgstr "Editore" + +#. title +#: ../src/common/metadata.c:48 ../src/imageio/format/pdf.c:574 +#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:219 +#: ../src/imageio/storage/gallery.c:222 ../src/imageio/storage/latex.c:206 +#: ../src/imageio/storage/piwigo.c:1100 ../src/libs/filtering.c:69 +msgid "title" +msgstr "Titolo" + +#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:563 +#: ../src/libs/filtering.c:70 +msgid "description" +msgstr "Descrizione" + +#: ../src/common/metadata.c:50 +msgid "rights" +msgstr "Diritti" + +#: ../src/common/metadata.c:51 +msgid "notes" +msgstr "Note" + +#: ../src/common/metadata.c:52 +msgid "version name" +msgstr "Nome versione" + +#: ../src/common/metadata.c:53 ../src/libs/live_view.c:319 +#: ../src/libs/metadata_view.c:126 +msgid "image id" +msgstr "ID immagine" + +#: ../src/common/mipmap_cache.c:1070 ../src/imageio/imageio.c:799 +#, c-format +msgid "image `%s' is not available!" +msgstr "L'immagine '%s' non è disponibile!" + +#: ../src/common/noiseprofiles.c:26 +msgid "generic poissonian" +msgstr "Generico poissoniano" + +#: ../src/common/noiseprofiles.c:61 +#, c-format +msgid "noiseprofile file `%s' is not valid" +msgstr "Il file di profilo del rumore `%s' non è valido" + +#: ../src/common/opencl.c:1165 +msgid "no working OpenCL library found" +msgstr "Nessuna libreria OpenCL funzionante trovata" + +#: ../src/common/opencl.c:1185 +msgid "" +"platform detection failed. some possible causes:\n" +" - OpenCL ICD (ocl-icd) missing,\n" +" - previous OpenCL errors leading to blocked devices,\n" +" - power management problems,\n" +" - buggy drivers,\n" +" - no OpenCL driver installed." +msgstr "" +"Identificazione della piattaform fallita. Alcune possibili cause:\n" +" - openCL ICD (ocl-icd) mancante,\n" +" - gli errori OpenCL precedenti hanno portato ad un blocco dei " +"dispositivi,\n" +" - problemi di gestione energetica,\n" +" - driver buggati,\n" +" - nessun driver OpenCL installato." + +#: ../src/common/opencl.c:1307 +msgid "no devices found for unknown platform" +msgstr "nessun dispositivo trovato per la piattafoma sconosciuta" + +#: ../src/common/opencl.c:1353 +msgid "not enough memory for OpenCL devices" +msgstr "Non c'è abbastanza memoria per i dispositivi OpenCL" + +#: ../src/common/opencl.c:1388 +msgid "no OpenCL devices found" +msgstr "Dispositivo OpenCL non trovato" + +#: ../src/common/opencl.c:1431 +msgid "no suitable OpenCL devices found" +msgstr "Nessun dispositivo OpenCL idoneo trovato" + +#: ../src/common/opencl.c:1452 +#, c-format +msgid "" +"OpenCL initializing problem:\n" +"%s" +msgstr "" +"Problema di inizializzazion OpenCL:\n" +"%s" + +#: ../src/common/opencl.c:1484 +msgid "OpenCL scheduling profile set to default, setup has changed" +msgstr "" +"Profilo di pianificazione OpenCL impostato con parametri predefiniti, la " +"configurazione è cambiata" + +#: ../src/common/opencl.c:2313 +#, c-format +msgid "building OpenCL program %s for %s" +msgstr "Compilazione programma OpenCL %s per %s" + +#: ../src/common/pdf.h:88 ../src/iop/lens.cc:4071 +#: ../src/libs/filters/focal.c:74 ../src/libs/print_settings.c:81 +msgid "mm" +msgstr "mm" + +#: ../src/common/pdf.h:89 ../src/libs/export.c:555 ../src/libs/export.c:1241 +#: ../src/libs/print_settings.c:81 +msgid "cm" +msgstr "cm" + +#: ../src/common/pdf.h:90 ../src/libs/print_settings.c:81 +msgid "inch" +msgstr "pollici" + +#: ../src/common/pdf.h:91 +msgid "\"" +msgstr "\"" + +#: ../src/common/pdf.h:104 ../src/iop/borders.c:971 +msgid "A4" +msgstr "A4" + +#: ../src/common/pdf.h:105 +msgid "A3" +msgstr "A3" + +#: ../src/common/pdf.h:106 +msgid "Letter" +msgstr "Lettera" + +#: ../src/common/pdf.h:107 +msgid "Legal" +msgstr "Legale" + +#: ../src/common/pwstorage/pwstorage.c:85 +msgid "GNOME Keyring backend is no longer supported. configure a different one" +msgstr "GNOME Keyring backend non è più supportato. Configurane uno differente" + +#: ../src/common/ratings.c:172 +#, c-format +msgid "rejecting %d image" +msgid_plural "rejecting %d images" +msgstr[0] "Eliminazione %d immagine" +msgstr[1] "Eliminazione %d immagini" + +#: ../src/common/ratings.c:174 +#, c-format +msgid "applying rating %d to %d image" +msgid_plural "applying rating %d to %d images" +msgstr[0] "Applicazione della valutazione %d all' %d immagine" +msgstr[1] "Applicazione della valutazione %d alle %d immagini" + +#: ../src/common/ratings.c:221 +msgid "no images selected to apply rating" +msgstr "Nessuna immagine selezionata per applicare la valutazione" + +#: ../src/common/ratings.c:274 ../src/libs/metadata_view.c:355 +msgid "image rejected" +msgstr "Immagine scartata" + +#: ../src/common/ratings.c:276 +msgid "image rated to 0 star" +msgstr "Immagine valutata 0 stelle" + +#: ../src/common/ratings.c:278 +#, c-format +msgid "image rated to %s" +msgstr "Immagine valutata a %s" + +#: ../src/common/ratings.c:305 ../src/views/lighttable.c:766 +msgid "select" +msgstr "Seleziona" + +#: ../src/common/ratings.c:306 +msgid "upgrade" +msgstr "Aggiorna" + +#: ../src/common/ratings.c:307 +msgid "downgrade" +msgstr "Retrocedi" + +#: ../src/common/ratings.c:311 +msgid "zero" +msgstr "Zero" + +#: ../src/common/ratings.c:312 ../src/libs/filters/rating_range.c:304 +msgid "one" +msgstr "Uno" + +#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:305 +msgid "two" +msgstr "Due" + +#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:306 +msgid "three" +msgstr "Tre" + +#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:307 +msgid "four" +msgstr "Quattro" + +#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:308 +msgid "five" +msgstr "Cinque" + +#: ../src/common/ratings.c:317 +msgid "reject" +msgstr "Rifiuta" + +#: ../src/common/styles.c:243 +#, c-format +msgid "style with name '%s' already exists" +msgstr "Stile con nome '%s' già esistente" + +#: ../src/common/styles.c:270 ../src/common/styles.c:1783 +#: ../src/libs/styles.c:54 +msgid "styles" +msgstr "Stili" + +#: ../src/common/styles.c:548 ../src/gui/styles_dialog.c:239 +#, c-format +msgid "style named '%s' successfully created" +msgstr "Lo stile '%s' è stato creato con successo" + +#: ../src/common/styles.c:688 ../src/common/styles.c:718 +#: ../src/common/styles.c:758 ../src/dtgtk/culling.c:1066 +msgid "no image selected!" +msgstr "Nessuna immagine selezionata!" + +#: ../src/common/styles.c:692 +#, c-format +msgid "style %s successfully applied!" +msgstr "Lo stile %s è stato applicato con successo" + +#: ../src/common/styles.c:708 +msgid "no images nor styles selected!" +msgstr "Nessuna immagine o stile selezionati!" + +#: ../src/common/styles.c:713 +msgid "no styles selected!" +msgstr "Nessuno stile selezionato!" + +#: ../src/common/styles.c:743 +msgid "style successfully applied!" +msgid_plural "styles successfully applied!" +msgstr[0] "Lo stile è stato applicato con successo" +msgstr[1] "Lo stile %s è stato salvato con successo" + +#: ../src/common/styles.c:838 +#, c-format +msgid "module `%s' version mismatch: %d != %d" +msgstr "Mancata corrispondenza di versione del modulo '%s': %d != %d" + +#: ../src/common/styles.c:1125 +#, c-format +msgid "applied style `%s' on current image" +msgstr "Applicato lo stile '%s' sull'immagine corrente" + +#: ../src/common/styles.c:1383 +#, c-format +msgid "failed to overwrite style file for %s" +msgstr "Impossibile sovrascrivere il file di stile per %s" + +#: ../src/common/styles.c:1389 +#, c-format +msgid "style file for %s exists" +msgstr "File di stile per %s già esistente" + +#: ../src/common/styles.c:1674 +#, c-format +msgid "style %s was successfully imported" +msgstr "Lo stile %s è stato importato con successo" + +#. Failed to open file, clean up. +#: ../src/common/styles.c:1718 +#, c-format +msgid "could not read file `%s'" +msgstr "Impossibile leggere il file `%s'" + +#: ../src/common/utility.c:505 +msgid "above sea level" +msgstr "Sopra il livello del mare" + +#: ../src/common/utility.c:506 +msgid "below sea level" +msgstr "Sotto il livello del mare" + +#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:907 +msgid "m" +msgstr "m" + +#: ../src/common/variables.c:712 ../src/develop/imageop_gui.c:210 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "yes" +msgstr "Si" + +#. Column 1 - "make" of the camera. +#. * Column 2 - "model" (use the "make" and "model" as provided by DCRaw). +#. * Column 3 - WB name. +#. * Column 4 - Fine tuning. MUST be in increasing order. 0 for no fine tuning. +#. * It is enough to give only the extreme values, the other values +#. * will be interpolated. +#. * Column 5 - Channel multipliers. +#. * +#. * Minolta's ALPHA and MAXXUM models are treated as the Dynax model. +#. * +#. * WB name is standardized to one of the following: +#. "Sunlight" and other variation should be switched to this: +#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:320 +msgid "daylight" +msgstr "Luce diurna " + +#. Probably same as above: +#: ../src/common/wb_presets.c:44 +msgid "direct sunlight" +msgstr "Luce solare diretta" + +#: ../src/common/wb_presets.c:45 +msgid "cloudy" +msgstr "Nuvoloso" + +#. "Shadows" should be switched to this: +#: ../src/common/wb_presets.c:47 +msgid "shade" +msgstr "Ombra" + +#: ../src/common/wb_presets.c:48 +msgid "incandescent" +msgstr "Incandescente" + +#: ../src/common/wb_presets.c:49 +msgid "incandescent warm" +msgstr "Incandescente calda" + +#. Same as "Incandescent": +#: ../src/common/wb_presets.c:51 +msgid "tungsten" +msgstr "Tungsteno" + +#: ../src/common/wb_presets.c:52 +msgid "fluorescent" +msgstr "Fluorescente" + +#. In Canon cameras and some newer Nikon cameras: +#: ../src/common/wb_presets.c:54 +msgid "fluorescent high" +msgstr "Fluorescente alta" + +#: ../src/common/wb_presets.c:55 +msgid "cool white fluorescent" +msgstr "Fluorescente bianca fredda" + +#: ../src/common/wb_presets.c:56 +msgid "warm white fluorescent" +msgstr "Fluorescente bianca calda" + +#: ../src/common/wb_presets.c:57 +msgid "daylight fluorescent" +msgstr "Luce diurna fluorescente" + +#: ../src/common/wb_presets.c:58 +msgid "neutral fluorescent" +msgstr "Fluorescente neutrale" + +#: ../src/common/wb_presets.c:59 +msgid "white fluorescent" +msgstr "Fluorescente bianca" + +#. In some newer Nikon cameras: +#: ../src/common/wb_presets.c:61 +msgid "sodium-vapor fluorescent" +msgstr "Fluorescente ai vapori di sodio" + +#: ../src/common/wb_presets.c:62 +msgid "day white fluorescent" +msgstr "Fluorescente bianca diurna" + +#: ../src/common/wb_presets.c:63 +msgid "high temp. mercury-vapor fluorescent" +msgstr "Fluorescente ai vapori di mercurio alta temperatura" + +#. found in Nikon Coolpix P1000 +#: ../src/common/wb_presets.c:65 +msgid "high temp. mercury-vapor" +msgstr "Fluorescente ai vapori di mercurio alta temperatura" + +#. On Some Panasonic +#: ../src/common/wb_presets.c:67 +msgid "D55" +msgstr "D55" + +#: ../src/common/wb_presets.c:69 +msgid "flash" +msgstr "Flash" + +#. For Olympus with no real "Flash" preset: +#: ../src/common/wb_presets.c:71 +msgid "flash (auto mode)" +msgstr "Flash (Automatico)" + +#: ../src/common/wb_presets.c:72 +msgid "evening sun" +msgstr "Tramonto" + +#: ../src/common/wb_presets.c:73 +msgid "underwater" +msgstr "Sott'acqua" + +#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2286 +msgid "black & white" +msgstr "Bianconero" + +#: ../src/common/wb_presets.c:76 +msgid "spot WB" +msgstr "Bilanciamento del punto di bianco" + +#: ../src/common/wb_presets.c:77 +msgid "manual WB" +msgstr "Bilanciamento del bianco manuale" + +#: ../src/common/wb_presets.c:78 +msgid "camera WB" +msgstr "Bilanciamento del bianco fotocamera" + +#: ../src/common/wb_presets.c:79 +msgid "auto WB" +msgstr "Bilanciamento del bianco automatico" + +#: ../src/control/control.c:69 ../src/gui/accelerators.c:156 +#: ../src/views/darkroom.c:2029 +msgid "hold" +msgstr "Tieni" + +#: ../src/control/control.c:108 ../src/control/control.c:214 +msgid "modifiers" +msgstr "Modificatori" + +#: ../src/control/control.c:117 +msgctxt "accel" +msgid "global" +msgstr "Globale" + +#: ../src/control/control.c:124 +msgctxt "accel" +msgid "views" +msgstr "Viste" + +#: ../src/control/control.c:131 +msgctxt "accel" +msgid "thumbtable" +msgstr "Miniature" + +#: ../src/control/control.c:138 +msgctxt "accel" +msgid "utility modules" +msgstr "Moduli utilità" + +#: ../src/control/control.c:145 +msgctxt "accel" +msgid "format" +msgstr "Formato" + +#: ../src/control/control.c:152 +msgctxt "accel" +msgid "storage" +msgstr "Supporto" + +#: ../src/control/control.c:159 +msgctxt "accel" +msgid "processing modules" +msgstr "Moduli di elaborazione" + +#: ../src/control/control.c:166 +msgctxt "accel" +msgid "<blending>" +msgstr "<blending>" + +#: ../src/control/control.c:173 +msgctxt "accel" +msgid "Lua scripts" +msgstr "Scripts LUA" + +#: ../src/control/control.c:180 +msgctxt "accel" +msgid "fallbacks" +msgstr "Alternative" + +#: ../src/control/control.c:189 +msgctxt "accel" +msgid "<focused>" +msgstr "<focused>" + +#: ../src/control/control.c:209 +msgid "show accels window" +msgstr "Visualizza finestra scorciatoie" + +#: ../src/control/control.c:371 +msgid "working..." +msgstr "Elaborazione..." + +#: ../src/control/crawler.c:418 +#, c-format +msgid "ERROR: %s NOT synced XMP → DB" +msgstr "ERRORE: %s NON sincronizzato XMP → DB" + +#: ../src/control/crawler.c:419 ../src/control/crawler.c:485 +#: ../src/control/crawler.c:554 +msgid "" +"ERROR: cannot write the database. the destination may be full, offline or " +"read-only." +msgstr "" +"ERRORE: non posso scrivere il database. La destinazione può esser piena, non " +"in linea o in sola lettura." + +#: ../src/control/crawler.c:426 +#, c-format +msgid "SUCCESS: %s synced XMP → DB" +msgstr "SUCCESSO: %s sincronizzato XMP → DB" + +#: ../src/control/crawler.c:448 +#, c-format +msgid "ERROR: %s NOT synced DB → XMP" +msgstr "ERRORE: %s NON sincronizzato DB → XMP" + +#: ../src/control/crawler.c:450 ../src/control/crawler.c:509 +#: ../src/control/crawler.c:575 +#, c-format +msgid "" +"ERROR: cannot write %s \n" +"the destination may be full, offline or read-only." +msgstr "" +"ERRORE: non possibile scrivere %s \n" +"la destinazione può esser piena, non in linea o in sola lettura." + +#: ../src/control/crawler.c:456 +#, c-format +msgid "SUCCESS: %s synced DB → XMP" +msgstr "RIUSCITO: %s sincronizzato DB → XMP" + +#: ../src/control/crawler.c:482 +#, c-format +msgid "ERROR: %s NOT synced new (XMP) → old (DB)" +msgstr "ERRORE: %s NON sincronizzato nuovo (XMP) → vecchio (DB)" + +#: ../src/control/crawler.c:492 +#, c-format +msgid "SUCCESS: %s synced new (XMP) → old (DB)" +msgstr "RIUSCITO: %s sincronizzato nuovo (XMP) → vecchio (DB)" + +#: ../src/control/crawler.c:506 +#, c-format +msgid "ERROR: %s NOT synced new (DB) → old (XMP)" +msgstr "ERRORE: %s NON sincronizzato nuovo (DB) → vecchio (XMP)" + +#: ../src/control/crawler.c:514 +#, c-format +msgid "SUCCESS: %s synced new (DB) → old (XMP)" +msgstr "RIUSCITO: %s sincronizzato nuovo (DB) → vecchio (XMP)" + +#: ../src/control/crawler.c:523 ../src/control/crawler.c:591 +#, c-format +msgid "EXCEPTION: %s has inconsistent timestamps" +msgstr "ECCEZIONE: %s ha marcatori temporali inconsistenti" + +#: ../src/control/crawler.c:551 +#, c-format +msgid "ERROR: %s NOT synced old (XMP) → new (DB)" +msgstr "ERRORE: %s NON sincronizzato vecchio (XMP) → nuovo (DB)" + +#: ../src/control/crawler.c:560 +#, c-format +msgid "SUCCESS: %s synced old (XMP) → new (DB)" +msgstr "RIUSCITO: %s sincronizzato vecchio (XMP) → nuovo (DB)" + +#: ../src/control/crawler.c:572 +#, c-format +msgid "ERROR: %s NOT synced old (DB) → new (XMP)" +msgstr "ERRORE: %s NON sincronizzato vecchio (DB) → nuovo (XMP)" + +#: ../src/control/crawler.c:581 +#, c-format +msgid "SUCCESS: %s synced old (DB) → new (XMP)" +msgstr "RIUSCITO: %s sincronizzato vecchio (DB) → nuovo (XMP)" + +#: ../src/control/crawler.c:663 +#, c-format +msgid "%id %02dh %02dm %02ds" +msgstr "%id %02dh %02dm %02ds" + +#: ../src/control/crawler.c:716 +msgid "XMP" +msgstr "XMP" + +#: ../src/control/crawler.c:733 ../src/imageio/storage/disk.c:250 +#: ../src/imageio/storage/gallery.c:202 ../src/imageio/storage/latex.c:190 +#: ../src/imageio/storage/latex.c:208 +msgid "path" +msgstr "Percorso" + +#: ../src/control/crawler.c:742 +msgid "XMP timestamp" +msgstr "Data/ora file XMP" + +#: ../src/control/crawler.c:747 +msgid "database timestamp" +msgstr "Data del database" + +#: ../src/control/crawler.c:752 +msgid "newest" +msgstr "Più nuovo" + +#: ../src/control/crawler.c:758 +msgid "time difference" +msgstr "Differenza d'orario" + +#: ../src/control/crawler.c:770 +msgid "updated XMP sidecar files found" +msgstr "Aggiornati i files XMP trovati" + +#: ../src/control/crawler.c:771 +msgid "_close" +msgstr "_chiudi" + +#. setup selection accelerators +#. action-box +#: ../src/control/crawler.c:786 ../src/dtgtk/thumbtable.c:2755 +#: ../src/libs/import.c:1732 ../src/libs/select.c:136 +msgid "select all" +msgstr "Seleziona tutte" + +#: ../src/control/crawler.c:787 ../src/dtgtk/thumbtable.c:2757 +#: ../src/libs/import.c:1736 ../src/libs/select.c:140 +msgid "select none" +msgstr "Seleziona nessuna" + +#: ../src/control/crawler.c:788 ../src/dtgtk/thumbtable.c:2759 +#: ../src/libs/select.c:144 +msgid "invert selection" +msgstr "Inverti selezione" + +#: ../src/control/crawler.c:800 +msgid "on the selection:" +msgstr "Sulla selezione:" + +#: ../src/control/crawler.c:801 +msgid "keep the XMP edit" +msgstr "Mantenere le modifiche all'XMP" + +#: ../src/control/crawler.c:802 +msgid "keep the database edit" +msgstr "Tenere le modifiche al database" + +#: ../src/control/crawler.c:803 +msgid "keep the newest edit" +msgstr "Tieni le modifiche più recenti" + +#: ../src/control/crawler.c:804 +msgid "keep the oldest edit" +msgstr "Tenere le modifiche più vecchie" + +#: ../src/control/crawler.c:829 +msgid "synchronization log" +msgstr "Log di sincronizzazione" + +#: ../src/control/jobs/camera_jobs.c:80 +#, c-format +msgid "capturing %d image" +msgid_plural "capturing %d images" +msgstr[0] "Acquisisco %d immagine..." +msgstr[1] "Acquisisco %d immagini..." + +#: ../src/control/jobs/camera_jobs.c:114 +msgid "please set your camera to manual mode first!" +msgstr "Per favore, prima imposta la tua fotocamera in modalità manuale!" + +#: ../src/control/jobs/camera_jobs.c:211 +msgid "capture images" +msgstr "Acquisisci immagini" + +#: ../src/control/jobs/camera_jobs.c:249 +#, c-format +msgid "%d/%d imported to %s" +msgid_plural "%d/%d imported to %s" +msgstr[0] "%d/%d importate in %s" +msgstr[1] "%d/%d importate in %s" + +#: ../src/control/jobs/camera_jobs.c:306 +msgid "starting to import images from camera" +msgstr "Inizio importazioni immagini dalla fotocamera" + +#: ../src/control/jobs/camera_jobs.c:310 +msgid "failed to import images from camera." +msgstr "Impossibile importare le immagini dalla fotocamera." + +#: ../src/control/jobs/camera_jobs.c:317 +#, c-format +msgid "importing %d image from camera" +msgid_plural "importing %d images from camera" +msgstr[0] "Importo %d immagine dalla fotocamera" +msgstr[1] "Importo %d immagini dalla fotocamera" + +#: ../src/control/jobs/camera_jobs.c:378 +msgid "import images from camera" +msgstr "Importa immagini dalla fotocamera" + +#: ../src/control/jobs/control_jobs.c:145 +msgid "failed to create film roll for destination directory, aborting move.." +msgstr "" +"Impossibile creare il rullino nella cartella di destinazione, spostamento " +"annullato..." + +#: ../src/control/jobs/control_jobs.c:388 +msgid "exposure bracketing only works on raw images." +msgstr "Il bracketing dell'esposizione funziona solamente sulle immagini RAW." + +#: ../src/control/jobs/control_jobs.c:395 +msgid "images have to be of same size and orientation!" +msgstr "" +"Le immagini devono essere delle stesse dimensioni e con la stesso " +"orientamento!" + +#: ../src/control/jobs/control_jobs.c:490 +#, c-format +msgid "merging %d image" +msgid_plural "merging %d images" +msgstr[0] "Unisco %d immagine" +msgstr[1] "Unisco %d immagini" + +#: ../src/control/jobs/control_jobs.c:561 +#, c-format +msgid "wrote merged HDR `%s'" +msgstr "Creata fusione HDR '%s'" + +#: ../src/control/jobs/control_jobs.c:593 +#, c-format +msgid "duplicating %d image" +msgid_plural "duplicating %d images" +msgstr[0] "Duplico %d immagine" +msgstr[1] "Duplico %d immagini" + +#: ../src/control/jobs/control_jobs.c:634 +#, c-format +msgid "flipping %d image" +msgid_plural "flipping %d images" +msgstr[0] "Rifletto %d immagine" +msgstr[1] "Rifletto %d immagini" + +#: ../src/control/jobs/control_jobs.c:665 +#, c-format +msgid "set %d color image" +msgid_plural "setting %d color images" +msgstr[0] "imposta %d immagine a colori" +msgstr[1] "imposta %d immagini a colori" + +#: ../src/control/jobs/control_jobs.c:667 +#, c-format +msgid "set %d monochrome image" +msgid_plural "setting %d monochrome images" +msgstr[0] "imposta %d immagine in bianco e nero" +msgstr[1] "imposta %d immagini in bianco e nero" + +#: ../src/control/jobs/control_jobs.c:753 +#, c-format +msgid "removing %d image" +msgid_plural "removing %d images" +msgstr[0] "Rimuovo %d immagine" +msgstr[1] "Rimuovo %d immagini" + +#: ../src/control/jobs/control_jobs.c:860 +#, c-format +msgid "" +"could not send %s to trash%s\n" +"%s\n" +"\n" +" do you want to delete the file from disk without using trash?" +msgstr "" +"non posso spedire %s nel cestino%s\n" +"%s\n" +"\n" +"Vuoi eliminare il file dal disco senza passare per il cestino?" + +#: ../src/control/jobs/control_jobs.c:861 +#, c-format +msgid "" +"could not delete from disk %s%s\n" +"%s" +msgstr "" +"Non posso eliminare dal disco %s%s\n" +"%s" + +#: ../src/control/jobs/control_jobs.c:869 +msgid "_apply to all" +msgstr "_applica a tutti" + +#: ../src/control/jobs/control_jobs.c:877 +msgid "_delete permanently" +msgstr "_elimina definitivamente" + +#: ../src/control/jobs/control_jobs.c:878 +#: ../src/control/jobs/control_jobs.c:882 +msgid "_remove from library" +msgstr "_rimuovi dalla libreria" + +#: ../src/control/jobs/control_jobs.c:884 ../src/libs/styles.c:440 +#: ../src/libs/styles.c:625 +msgid "_skip" +msgstr "_skip" + +#: ../src/control/jobs/control_jobs.c:885 +msgid "abort" +msgstr "interrompi" + +#: ../src/control/jobs/control_jobs.c:891 +msgid "trashing error" +msgstr "Errore durante l'eliminazione" + +#: ../src/control/jobs/control_jobs.c:892 +msgid "deletion error" +msgstr "Errore di cancellazione" + +#: ../src/control/jobs/control_jobs.c:1039 +#, c-format +msgid "trashing %d image" +msgid_plural "trashing %d images" +msgstr[0] "Eliminazione immagine %d" +msgstr[1] "Eliminazione immagini %d" + +#: ../src/control/jobs/control_jobs.c:1041 +#, c-format +msgid "deleting %d image" +msgid_plural "deleting %d images" +msgstr[0] "Elimino %d immagine" +msgstr[1] "Elimino %d immagini" + +#: ../src/control/jobs/control_jobs.c:1177 +msgid "failed to parse GPX file" +msgstr "Fallita l'analisi del file GPX" + +#: ../src/control/jobs/control_jobs.c:1224 +#, c-format +msgid "applied matched GPX location onto %d image" +msgid_plural "applied matched GPX location onto %d images" +msgstr[0] "Applicata sulla %d immagine la località GPX corrispondente" +msgstr[1] "Applicate sulle %d immagini le località GPX corrispondenti" + +#: ../src/control/jobs/control_jobs.c:1241 +#, c-format +msgid "moving %d image" +msgstr "Spostamento %d immagine" + +#: ../src/control/jobs/control_jobs.c:1242 +#, c-format +msgid "moving %d images" +msgstr "Spostamento %d immagini" + +#: ../src/control/jobs/control_jobs.c:1247 +#, c-format +msgid "copying %d image" +msgstr "Copia in corso %d immagine" + +#: ../src/control/jobs/control_jobs.c:1248 +#, c-format +msgid "copying %d images" +msgstr "Copia in corso %d immagini" + +#: ../src/control/jobs/control_jobs.c:1263 +#, c-format +msgid "creating local copy of %d image" +msgid_plural "creating local copies of %d images" +msgstr[0] "Creazione copia locale per %d immagine" +msgstr[1] "Creazione copie locali per %d immagini" + +#: ../src/control/jobs/control_jobs.c:1266 +#, c-format +msgid "removing local copy of %d image" +msgid_plural "removing local copies of %d images" +msgstr[0] "Rimozione copia locale per %d immagine" +msgstr[1] "Rimozione copie locali per %d immagini" + +#: ../src/control/jobs/control_jobs.c:1313 +#, c-format +msgid "refreshing info for %d image" +msgid_plural "refreshing info for %d images" +msgstr[0] "Aggiornamento informazioni per l'immagine %d" +msgstr[1] "Aggiornamento informazioni per le immagini %d" + +#: ../src/control/jobs/control_jobs.c:1398 +#, c-format +msgid "exporting %d image.." +msgid_plural "exporting %d images.." +msgstr[0] "Esporto %d immagine.." +msgstr[1] "Esporto %d immagini.." + +#: ../src/control/jobs/control_jobs.c:1400 +msgid "no image to export" +msgstr "Nessuna immagine da esportare" + +#: ../src/control/jobs/control_jobs.c:1438 +#, c-format +msgid "exporting %d / %d to %s" +msgstr "Esporto %d / %d in %s" + +#: ../src/control/jobs/control_jobs.c:1451 ../src/views/darkroom.c:721 +#: ../src/views/print.c:369 +#, c-format +msgid "image `%s' is currently unavailable" +msgstr "Immagine '%s' al momento non disponibile" + +#: ../src/control/jobs/control_jobs.c:1554 +msgid "merge HDR image" +msgstr "Unisci immagine HDR" + +#: ../src/control/jobs/control_jobs.c:1568 +msgid "duplicate images" +msgstr "Duplica immagini" + +#: ../src/control/jobs/control_jobs.c:1574 +msgid "flip images" +msgstr "Rifletti immagini" + +#: ../src/control/jobs/control_jobs.c:1581 +msgid "set monochrome images" +msgstr "Imposta le immagini in bianco e nero" + +#. get all selected images now, to avoid the set changing during ui interaction +#: ../src/control/jobs/control_jobs.c:1588 +msgid "remove images" +msgstr "Rimuovi immagini" + +#: ../src/control/jobs/control_jobs.c:1601 +msgid "remove image?" +msgstr "Rimuovo l'immagine?" + +#: ../src/control/jobs/control_jobs.c:1601 +msgid "remove images?" +msgstr "Rimuovere le immagini?" + +#: ../src/control/jobs/control_jobs.c:1602 +#, c-format +msgid "" +"do you really want to remove %d image from darktable\n" +"(without deleting file on disk)?" +msgid_plural "" +"do you really want to remove %d images from darktable\n" +"(without deleting files on disk)?" +msgstr[0] "" +"Sicuro di voler eliminare l'immagine %d da Darktable\n" +"(senza cancellare il file dal disco)?" +msgstr[1] "" +"Sicuro di voler eliminare le immagini %d da Darktable\n" +"(senza cancellare i file dal disco)?" + +#. first get all selected images, to avoid the set changing during ui interaction +#: ../src/control/jobs/control_jobs.c:1617 +#: ../src/control/jobs/control_jobs.c:1650 +msgid "delete images" +msgstr "Elimina immagini" + +#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1663 +msgid "delete image?" +msgstr "Eliminare l'immagine?" + +#: ../src/control/jobs/control_jobs.c:1633 +msgid "delete images?" +msgstr "Eliminare le immagini?" + +#: ../src/control/jobs/control_jobs.c:1634 +#, c-format +msgid "" +"do you really want to physically delete %d image\n" +"(using trash if possible)?" +msgid_plural "" +"do you really want to physically delete %d images\n" +"(using trash if possible)?" +msgstr[0] "" +"Sei sicuro di voler eliminare fisicamente l'immagine %d\n" +"(usando il cestino se possibile)?" +msgstr[1] "" +"Sei sicuro di voler eliminare fisicamente le immagini %d\n" +"(usando il cestino se possibile)?" + +#: ../src/control/jobs/control_jobs.c:1636 +#, c-format +msgid "do you really want to physically delete %d image from disk?" +msgid_plural "do you really want to physically delete %d images from disk?" +msgstr[0] "Sei sicuro di voler eliminare fisicamente %d immagine dal disco?" +msgstr[1] "Sei sicuro di voler eliminare fisicamente %d immagini dal disco?" + +#: ../src/control/jobs/control_jobs.c:1664 +msgid "" +"do you really want to physically delete selected image (using trash if " +"possible)?" +msgstr "" +"Sei sicuro di voler eliminare fisicamente l'immagine selezionata (usando il " +"cestino se possibile)?" + +#: ../src/control/jobs/control_jobs.c:1665 +msgid "do you really want to physically delete selected image from disk?" +msgstr "" +"Sei sicuro di voler eliminare fisicamente l'immagine selezionata dal disco?" + +#: ../src/control/jobs/control_jobs.c:1680 +msgid "move images" +msgstr "Sposta immagini" + +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 +msgid "_select as destination" +msgstr "_seleziona come destinazione" + +#: ../src/control/jobs/control_jobs.c:1711 +msgid "move image?" +msgid_plural "move images?" +msgstr[0] "Spostare l'immagine?" +msgstr[1] "Spostare le immagini?" + +#: ../src/control/jobs/control_jobs.c:1712 +#, c-format +msgid "" +"do you really want to physically move %d image to %s?\n" +"(all duplicates will be moved along)" +msgid_plural "" +"do you really want to physically move %d images to %s?\n" +"(all duplicates will be moved along)" +msgstr[0] "" +"Sicuro di voler spostare fisicamente %d immagine in %s\n" +"(tutti i duplicati saranno spostati insieme)" +msgstr[1] "" +"Sicuro di voler spostare fisicamente %d immagini in %s\n" +"(tutti i duplicati saranno spostati insieme)" + +#: ../src/control/jobs/control_jobs.c:1734 +msgid "copy images" +msgstr "Copia immagini" + +#: ../src/control/jobs/control_jobs.c:1765 +msgid "copy image?" +msgid_plural "copy images?" +msgstr[0] "Copio immagine?" +msgstr[1] "Copio immagini?" + +#: ../src/control/jobs/control_jobs.c:1766 +#, c-format +msgid "do you really want to physically copy %d image to %s?" +msgid_plural "do you really want to physically copy %d images to %s?" +msgstr[0] "Sicuro di voler copiare %d immagine in %s?" +msgstr[1] "Sicuro di voler copiare %d immagini in %s?" + +#: ../src/control/jobs/control_jobs.c:1784 +#: ../src/control/jobs/control_jobs.c:1792 +msgid "local copy images" +msgstr "Copia immagini locale" + +#: ../src/control/jobs/control_jobs.c:1799 ../src/libs/image.c:674 +msgid "refresh EXIF" +msgstr "Aggiorna dati EXIF" + +#: ../src/control/jobs/control_jobs.c:1863 +#, c-format +msgid "failed to get parameters from storage module `%s', aborting export.." +msgstr "" +"Impossibile ottenere i parametri dal modulo di salvataggio '%s', " +"esportazione annullata." + +#: ../src/control/jobs/control_jobs.c:1879 +msgid "export images" +msgstr "Esporta immagini" + +#: ../src/control/jobs/control_jobs.c:1929 +#, c-format +msgid "adding time offset to %d image" +msgstr "Aggiungo compens. oraria ad %d immagine" + +#: ../src/control/jobs/control_jobs.c:1929 +#, c-format +msgid "setting date/time of %d image" +msgstr "Impostazione data/ora dell'immagine %d" + +#: ../src/control/jobs/control_jobs.c:1930 +#, c-format +msgid "adding time offset to %d images" +msgstr "Aggiungendo compensazione oraria a %d immagini" + +#: ../src/control/jobs/control_jobs.c:1930 +#, c-format +msgid "setting date/time of %d images" +msgstr "Impostando data/ora di %d immagini" + +#: ../src/control/jobs/control_jobs.c:1975 +#, c-format +msgid "added time offset to %d image" +msgstr "Aggiunta compensazione oraria su %d immagini" + +#: ../src/control/jobs/control_jobs.c:1975 +#, c-format +msgid "set date/time of %d image" +msgstr "Impostata data/ora di %d immagini" + +#: ../src/control/jobs/control_jobs.c:1976 +#, c-format +msgid "added time offset to %d images" +msgstr "Aggiunta compensazione oraria a %d immagini" + +#: ../src/control/jobs/control_jobs.c:1976 +#, c-format +msgid "set date/time of %d images" +msgstr "Impostata data/ora di %d immagini" + +#: ../src/control/jobs/control_jobs.c:2017 +msgid "time offset" +msgstr "Compens. oraria" + +#: ../src/control/jobs/control_jobs.c:2045 ../src/libs/copy_history.c:414 +msgid "write sidecar files" +msgstr "Scrivi file XMP" + +#: ../src/control/jobs/control_jobs.c:2260 ../src/control/jobs/film_jobs.c:297 +#, c-format +msgid "importing %d image" +msgid_plural "importing %d images" +msgstr[0] "Importazione %d immagine" +msgstr[1] "Importazione %d immagini" + +#: ../src/control/jobs/control_jobs.c:2312 +#, c-format +msgid "importing %d/%d image" +msgid_plural "importing %d/%d images" +msgstr[0] "Sto importando l'immagine %d/%d" +msgstr[1] "Sto importando le immagini %d/%d" + +#: ../src/control/jobs/control_jobs.c:2323 +#, c-format +msgid "imported %d image" +msgid_plural "imported %d images" +msgstr[0] "Immagine %d importata" +msgstr[1] "Immagini %d importate" + +#: ../src/control/jobs/film_jobs.c:73 ../src/control/jobs/film_jobs.c:109 +msgid "import images" +msgstr "Importa immagini" + +#: ../src/control/jobs/film_jobs.c:239 +msgid "no supported images were found to be imported" +msgstr "Non sono state trovate immagini da importare " + +#: ../src/control/jobs/image_jobs.c:76 +#, c-format +msgid "importing image %s" +msgstr "Importo immagine %s" + +#: ../src/control/jobs/image_jobs.c:110 +msgid "import image" +msgstr "Importa immagine" + +#: ../src/develop/blend.c:315 +msgid "detail mask blending error" +msgstr "Dettaglio errore maschera fusione" + +#: ../src/develop/blend.c:904 +msgid "detail mask CL blending problem" +msgstr "Dettaglia il problema della maschera CL di fusione" + +#: ../src/develop/blend_gui.c:47 ../src/libs/live_view.c:335 +msgctxt "blendmode" +msgid "normal" +msgstr "Normale" + +#: ../src/develop/blend_gui.c:49 +msgctxt "blendmode" +msgid "average" +msgstr "Media" + +#: ../src/develop/blend_gui.c:51 ../src/libs/live_view.c:348 +msgctxt "blendmode" +msgid "difference" +msgstr "Differenza" + +#: ../src/develop/blend_gui.c:54 +msgctxt "blendmode" +msgid "normal bounded" +msgstr "Normale delimitato" + +#: ../src/develop/blend_gui.c:56 ../src/libs/live_view.c:343 +msgctxt "blendmode" +msgid "lighten" +msgstr "Schiarisci" + +#: ../src/develop/blend_gui.c:58 ../src/libs/live_view.c:342 +msgctxt "blendmode" +msgid "darken" +msgstr "Scurisci" + +#: ../src/develop/blend_gui.c:60 ../src/libs/live_view.c:340 +msgctxt "blendmode" +msgid "screen" +msgstr "Scherma" + +#: ../src/develop/blend_gui.c:63 ../src/libs/live_view.c:339 +msgctxt "blendmode" +msgid "multiply" +msgstr "Moliplica" + +#: ../src/develop/blend_gui.c:65 +msgctxt "blendmode" +msgid "divide" +msgstr "Dividi" + +#: ../src/develop/blend_gui.c:67 +msgctxt "blendmode" +msgid "addition" +msgstr "Somma" + +#: ../src/develop/blend_gui.c:69 +msgctxt "blendmode" +msgid "subtract" +msgstr "Sottrai" + +#: ../src/develop/blend_gui.c:71 +msgctxt "blendmode" +msgid "geometric mean" +msgstr "Media geometrica" + +#: ../src/develop/blend_gui.c:73 +msgctxt "blendmode" +msgid "harmonic mean" +msgstr "Media armonica" + +#: ../src/develop/blend_gui.c:76 ../src/libs/live_view.c:341 +msgctxt "blendmode" +msgid "overlay" +msgstr "Sovrapponi" + +#: ../src/develop/blend_gui.c:78 +msgctxt "blendmode" +msgid "softlight" +msgstr "luce soffusa" + +#: ../src/develop/blend_gui.c:80 +msgctxt "blendmode" +msgid "hardlight" +msgstr "Luce intensa" + +#: ../src/develop/blend_gui.c:82 +msgctxt "blendmode" +msgid "vividlight" +msgstr "Luce vivida" + +#: ../src/develop/blend_gui.c:84 +msgctxt "blendmode" +msgid "linearlight" +msgstr "Luce lineare" + +#: ../src/develop/blend_gui.c:86 +msgctxt "blendmode" +msgid "pinlight" +msgstr "Luce puntiforme" + +#: ../src/develop/blend_gui.c:89 +msgctxt "blendmode" +msgid "lightness" +msgstr "Chiarezza" + +#: ../src/develop/blend_gui.c:91 +msgctxt "blendmode" +msgid "chromaticity" +msgstr "Cromaticità" + +#: ../src/develop/blend_gui.c:94 +msgctxt "blendmode" +msgid "Lab lightness" +msgstr "Chiarezza Lab" + +#: ../src/develop/blend_gui.c:96 +msgctxt "blendmode" +msgid "Lab a-channel" +msgstr "Canale Lab a" + +#: ../src/develop/blend_gui.c:98 +msgctxt "blendmode" +msgid "Lab b-channel" +msgstr "Canale Lab c" + +#: ../src/develop/blend_gui.c:100 +msgctxt "blendmode" +msgid "Lab color" +msgstr "Colore Lab" + +#: ../src/develop/blend_gui.c:103 +msgctxt "blendmode" +msgid "RGB red channel" +msgstr "Canale rosso RGB" + +#: ../src/develop/blend_gui.c:105 +msgctxt "blendmode" +msgid "RGB green channel" +msgstr "Canale verde RGB" + +#: ../src/develop/blend_gui.c:107 +msgctxt "blendmode" +msgid "RGB blue channel" +msgstr "Canale blu RGB" + +#: ../src/develop/blend_gui.c:109 +msgctxt "blendmode" +msgid "HSV value" +msgstr "Valore HSV" + +#: ../src/develop/blend_gui.c:111 +msgctxt "blendmode" +msgid "HSV color" +msgstr "Colore HSV" + +#: ../src/develop/blend_gui.c:114 +msgctxt "blendmode" +msgid "hue" +msgstr "Tonalità" + +#: ../src/develop/blend_gui.c:116 +msgctxt "blendmode" +msgid "color" +msgstr "Colore" + +#: ../src/develop/blend_gui.c:118 +msgctxt "blendmode" +msgid "coloradjustment" +msgstr "Regolazione colore" + +#. * deprecated blend modes: make them available as legacy +#. * history stacks might want them +#: ../src/develop/blend_gui.c:124 +msgctxt "blendmode" +msgid "difference (deprecated)" +msgstr "Differenza (deprecato)" + +#: ../src/develop/blend_gui.c:126 +msgctxt "blendmode" +msgid "subtract inverse (deprecated)" +msgstr "Sottrazione inversa (deprecato)" + +#: ../src/develop/blend_gui.c:128 +msgctxt "blendmode" +msgid "divide inverse (deprecated)" +msgstr "Divisione inversa (deprecato)" + +#: ../src/develop/blend_gui.c:130 +msgctxt "blendmode" +msgid "Lab L-channel (deprecated)" +msgstr "Canale Lab L (deprecato)" + +#: ../src/develop/blend_gui.c:135 +msgctxt "blendoperation" +msgid "normal" +msgstr "Normale" + +#: ../src/develop/blend_gui.c:136 +msgctxt "blendoperation" +msgid "reverse" +msgstr "Invertito" + +#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:442 +msgid "default" +msgstr "Predefinito" + +#: ../src/develop/blend_gui.c:142 +msgid "RAW" +msgstr "RAW" + +#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2030 +msgid "RGB (display)" +msgstr "RGB (schermo)" + +#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2043 +msgid "RGB (scene)" +msgstr "RGB (scena)" + +#. DEVELOP_MASK_ENABLED +#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3438 +msgid "uniformly" +msgstr "Uniformità" + +#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:3448 ../src/develop/imageop.c:2669 +msgid "drawn mask" +msgstr "Maschera disegnata" + +#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2528 +#: ../src/develop/blend_gui.c:3459 ../src/develop/imageop.c:2671 +msgid "parametric mask" +msgstr "Maschera parametrica" + +#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2966 +#: ../src/develop/blend_gui.c:3486 ../src/develop/imageop.c:2673 +msgid "raster mask" +msgstr "Maschera raster" + +#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3473 +msgid "drawn & parametric mask" +msgstr "Maschera parametrica e disegnata" + +#: ../src/develop/blend_gui.c:168 +msgid "exclusive" +msgstr "Esclusiva" + +#: ../src/develop/blend_gui.c:169 +msgid "inclusive" +msgstr "Inclusiva" + +#: ../src/develop/blend_gui.c:170 +msgid "exclusive & inverted" +msgstr "Esclusiva & invertita" + +#: ../src/develop/blend_gui.c:171 +msgid "inclusive & inverted" +msgstr "Inclusiva & invertita" + +#: ../src/develop/blend_gui.c:175 +msgid "output before blur" +msgstr "Risultato prima di sfocare" + +#: ../src/develop/blend_gui.c:176 +msgid "input before blur" +msgstr "Input prima di sfocare" + +#: ../src/develop/blend_gui.c:177 +msgid "output after blur" +msgstr "Risultato dopo aver sfocato" + +#: ../src/develop/blend_gui.c:178 +msgid "input after blur" +msgstr "Input dopo aver sfocato" + +#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:157 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/libs/live_view.c:362 +msgid "on" +msgstr "Abilitato" + +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 +msgid "input" +msgstr "Input" + +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 +msgid "output" +msgstr "Output" + +#: ../src/develop/blend_gui.c:998 +msgid " (zoom)" +msgstr "(zoom)" + +#: ../src/develop/blend_gui.c:1006 +msgid " (log)" +msgstr "(log)" + +#: ../src/develop/blend_gui.c:2004 +msgid "reset to default blend colorspace" +msgstr "Ripristina lo spazio colore predefinito per la fusione" + +#: ../src/develop/blend_gui.c:2060 +msgid "reset and hide output channels" +msgstr "Azzera e nascondi i canali di uscita" + +#: ../src/develop/blend_gui.c:2067 +msgid "show output channels" +msgstr "Mostra i canali di output" + +#: ../src/develop/blend_gui.c:2306 ../src/develop/blend_gui.c:2373 +#: ../src/iop/tonecurve.c:1156 +msgid "L" +msgstr "L" + +#: ../src/develop/blend_gui.c:2306 +msgid "sliders for L channel" +msgstr "Selettore scorrevole per canale L" + +#: ../src/develop/blend_gui.c:2311 ../src/iop/tonecurve.c:1157 +msgid "a" +msgstr "a" + +#: ../src/develop/blend_gui.c:2311 +msgid "sliders for a channel" +msgstr "Selettore scorrevole per canale a" + +#: ../src/develop/blend_gui.c:2315 +msgid "green/red" +msgstr "Verde/rosso" + +#: ../src/develop/blend_gui.c:2316 ../src/iop/tonecurve.c:1158 +msgid "b" +msgstr "b" + +#: ../src/develop/blend_gui.c:2316 +msgid "sliders for b channel" +msgstr "Selettore scorrevole per canale b" + +#: ../src/develop/blend_gui.c:2320 +msgid "blue/yellow" +msgstr "Blu/Giallo" + +#: ../src/develop/blend_gui.c:2321 +msgid "C" +msgstr "C" + +#: ../src/develop/blend_gui.c:2321 +msgid "sliders for chroma channel (of LCh)" +msgstr "Selettore scorrevole per il canale cromaticità (di LCh)" + +#: ../src/develop/blend_gui.c:2327 +msgid "h" +msgstr "h" + +#: ../src/develop/blend_gui.c:2327 +msgid "sliders for hue channel (of LCh)" +msgstr "Selettore scorrevole per il canale tonalità (di LCh)" + +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 +msgid "g" +msgstr "g" + +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 +msgid "sliders for gray value" +msgstr "Selettore scorrevole per il valore del grigio" + +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/denoiseprofile.c:3714 +#: ../src/iop/rawdenoise.c:910 ../src/iop/rgbcurve.c:1501 +#: ../src/iop/rgblevels.c:1043 ../src/libs/filters/colors.c:137 +msgid "R" +msgstr "R" + +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +msgid "sliders for red channel" +msgstr "Selettore scorrevole per il canale del rosso" + +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/denoiseprofile.c:3715 +#: ../src/iop/rawdenoise.c:911 ../src/iop/rgbcurve.c:1502 +#: ../src/iop/rgblevels.c:1044 ../src/libs/filters/colors.c:143 +msgid "G" +msgstr "G" + +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +msgid "sliders for green channel" +msgstr "Selettore scorrevole per il canale del verde" + +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/denoiseprofile.c:3716 +#: ../src/iop/rawdenoise.c:912 ../src/iop/rgbcurve.c:1503 +#: ../src/iop/rgblevels.c:1045 ../src/libs/filters/colors.c:146 +msgid "B" +msgstr "B" + +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +msgid "sliders for blue channel" +msgstr "Selettore scorrevole per il canale del blu" + +#: ../src/develop/blend_gui.c:2359 +msgid "H" +msgstr "H" + +#: ../src/develop/blend_gui.c:2359 +msgid "sliders for hue channel (of HSL)" +msgstr "Selettore scorrevole per il canale di tonalità (di HSL)" + +#: ../src/develop/blend_gui.c:2366 +msgid "S" +msgstr "S" + +#: ../src/develop/blend_gui.c:2366 +msgid "sliders for chroma channel (of HSL)" +msgstr "Selettore scorrevole per il canale cromaticità (di HSL)" + +#: ../src/develop/blend_gui.c:2373 +msgid "sliders for value channel (of HSL)" +msgstr "Selettore scorrevole per il canale di valore (di HSL)" + +#: ../src/develop/blend_gui.c:2407 +msgid "Jz" +msgstr "Jz" + +#: ../src/develop/blend_gui.c:2407 +msgid "sliders for value channel (of JzCzhz)" +msgstr "Selettore scorrevole per il canale di valore (di JzCzhz)" + +#: ../src/develop/blend_gui.c:2414 +msgid "Cz" +msgstr "Cz" + +#: ../src/develop/blend_gui.c:2414 +msgid "sliders for chroma channel (of JzCzhz)" +msgstr "Selettore scorrevole per il canale cromaticità (di JzCzhz)" + +#: ../src/develop/blend_gui.c:2421 +msgid "hz" +msgstr "hz" + +#: ../src/develop/blend_gui.c:2421 +msgid "sliders for hue channel (of JzCzhz)" +msgstr "Selettore scorrevole per il canale di tonalità (di JzCzhz)" + +#: ../src/develop/blend_gui.c:2431 +msgid "" +"adjustment based on input received by this module:\n" +"* range defined by upper markers: blend fully\n" +"* range defined by lower markers: do not blend at all\n" +"* range between adjacent upper/lower markers: blend gradually" +msgstr "" +"Regolazione in base all'input ricevuto da questo modulo:\n" +"*intervallo definito dai marcatori superiori: si fondono completamente\n" +"*intervallo definito dai marcatori inferiori: non si fondono affatto \n" +"*intervallo tra i marcatori adiacenti superiori/inferiori: si fondono " +"gradualmente" + +#: ../src/develop/blend_gui.c:2435 +msgid "" +"adjustment based on unblended output of this module:\n" +"* range defined by upper markers: blend fully\n" +"* range defined by lower markers: do not blend at all\n" +"* range between adjacent upper/lower markers: blend gradually" +msgstr "" +"Regolazione in base ai risultati di output non miscelati di questo modulo:\n" +"*intervallo definito dai marcatori superiori: si fondono completamente\n" +"*intervallo definito dai marcatori inferiori: non si fondono affatto\n" +"*intervallo tra i marcatori adiacenti superiori/inferiori: si fondono " +"gradualmente" + +#: ../src/develop/blend_gui.c:2532 +msgid "reset blend mask settings" +msgstr "Ripristina le impostazioni della maschera di fusione" + +#: ../src/develop/blend_gui.c:2543 ../src/iop/atrous.c:1797 +#: ../src/iop/colorzones.c:2641 ../src/iop/denoiseprofile.c:3711 +#: ../src/iop/rawdenoise.c:907 ../src/iop/rgbcurve.c:1499 +#: ../src/iop/rgblevels.c:1041 ../src/iop/tonecurve.c:1155 +msgid "channel" +msgstr "Canale" + +#: ../src/develop/blend_gui.c:2558 ../src/iop/colorzones.c:2660 +#: ../src/iop/rgbcurve.c:1514 ../src/iop/tonecurve.c:1164 +msgid "" +"pick GUI color from image\n" +"ctrl+click or right-click to select an area" +msgstr "" +"Seleziona il colore interfaccia dall'immagine\n" +"Ctrl+click o Click destro per selezionare un'area" + +#: ../src/develop/blend_gui.c:2561 ../src/iop/colorzones.c:2662 +#: ../src/iop/rgbcurve.c:1517 +msgid "show color" +msgstr "Mostra i colori" + +#: ../src/develop/blend_gui.c:2570 +msgid "" +"set the range based on an area from the image\n" +"drag to use the input image\n" +"ctrl+drag to use the output image" +msgstr "" +"Impostate il valore sulla base di un'area dell'immagine\n" +"Click+trascina per utilizzare l'immagine in ingresso\n" +"Ctrl+click+trascina per utilizzare l'immagine in uscita" + +#: ../src/develop/blend_gui.c:2573 +msgid "set range" +msgstr "Imposta intervallo" + +#: ../src/develop/blend_gui.c:2576 +msgid "invert all channel's polarities" +msgstr "Inverti le polarità di tutti i canali" + +#: ../src/develop/blend_gui.c:2600 +msgid "toggle polarity. best seen by enabling 'display mask'" +msgstr "" +"Inverti polarità. Si vede meglio attivando la 'maschera di visualizzazione'" + +#: ../src/develop/blend_gui.c:2629 +msgid "" +"double-click to reset.\n" +"press 'a' to toggle available slider modes.\n" +"press 'c' to toggle view of channel data.\n" +"press 'm' to toggle mask view." +msgstr "" +"doppio click per resettare.\n" +"premi 'a' per abilitare/disabilitare le modalità disponibili di selettori " +"scorrevoli.\n" +"premi 'c' per abilitare/disabilitare la visualizzazione dei dati del " +"canale.\n" +"premi 'm' per abilitare/disabilitare la visualizzazione maschera." + +#: ../src/develop/blend_gui.c:2656 ../src/develop/blend_gui.c:3577 +#: ../src/iop/basicadj.c:630 ../src/iop/colorbalancergb.c:2164 +#: ../src/iop/exposure.c:1138 ../src/iop/exposure.c:1153 +#: ../src/iop/filmic.c:1528 ../src/iop/filmic.c:1541 ../src/iop/filmic.c:1583 +#: ../src/iop/filmicrgb.c:4504 ../src/iop/filmicrgb.c:4515 +#: ../src/iop/filmicrgb.c:4549 ../src/iop/filmicrgb.c:4559 +#: ../src/iop/graduatednd.c:1082 ../src/iop/negadoctor.c:1030 +#: ../src/iop/profile_gamma.c:657 ../src/iop/profile_gamma.c:663 +#: ../src/iop/relight.c:258 ../src/iop/soften.c:373 ../src/iop/toneequal.c:3379 +#: ../src/iop/toneequal.c:3382 ../src/iop/toneequal.c:3385 +#: ../src/iop/toneequal.c:3388 ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3394 ../src/iop/toneequal.c:3397 +#: ../src/iop/toneequal.c:3400 ../src/iop/toneequal.c:3403 +#: ../src/iop/toneequal.c:3525 ../src/iop/toneequal.c:3534 +#: ../src/iop/toneequal.c:3547 ../src/views/darkroom.c:2292 +msgid " EV" +msgstr " EV" + +#: ../src/develop/blend_gui.c:2658 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:2966 ../src/develop/blend_gui.c:3029 +#: ../src/develop/blend_gui.c:3545 ../src/develop/blend_gui.c:3575 +#: ../src/develop/blend_gui.c:3588 ../src/develop/blend_gui.c:3605 +#: ../src/develop/blend_gui.c:3629 ../src/develop/blend_gui.c:3641 +#: ../src/develop/blend_gui.c:3652 ../src/develop/blend_gui.c:3663 +msgid "blend" +msgstr "Fusione" + +#: ../src/develop/blend_gui.c:2658 +msgid "boost factor" +msgstr "Fattore di incremento" + +#: ../src/develop/blend_gui.c:2661 +msgid "adjust the boost factor of the channel mask" +msgstr "Regola il fattore di incremento della maschera canale" + +#: ../src/develop/blend_gui.c:2698 +#, c-format +msgid "%d shape used" +msgid_plural "%d shapes used" +msgstr[0] "%d forma in uso" +msgstr[1] "%d forme in uso" + +#: ../src/develop/blend_gui.c:2703 ../src/develop/blend_gui.c:2759 +#: ../src/develop/blend_gui.c:2847 ../src/develop/blend_gui.c:2967 +msgid "no mask used" +msgstr "Nessuna maschera in uso" + +#: ../src/develop/blend_gui.c:2767 +msgid "toggle polarity of drawn mask" +msgstr "Inverti polarità della maschera disegnata" + +#: ../src/develop/blend_gui.c:2776 +msgid "show and edit mask elements" +msgstr "Mostra e modifica elementi della maschera" + +#: ../src/develop/blend_gui.c:2777 +msgid "show and edit in restricted mode" +msgstr "Mostra e modifica in modalità ristretta" + +#: ../src/develop/blend_gui.c:2784 ../src/libs/masks.c:1014 +#: ../src/libs/masks.c:1812 ../src/libs/masks.c:1816 +msgid "add gradient" +msgstr "Aggiungi gradiente" + +#: ../src/develop/blend_gui.c:2785 +msgid "add multiple gradients" +msgstr "Aggiungi più gradienti" + +#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2466 +#: ../src/libs/masks.c:994 ../src/libs/masks.c:1848 ../src/libs/masks.c:1852 +msgid "add brush" +msgstr "Aggiungi pennello" + +#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2466 +msgid "add multiple brush strokes" +msgstr "Aggiungi più pennellate" + +#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 ../src/libs/masks.c:1009 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1825 +msgid "add path" +msgstr "Aggiungi tracciato" + +#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 +msgid "add multiple paths" +msgstr "Aggiungi più tracciati" + +#: ../src/develop/blend_gui.c:2808 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 ../src/libs/masks.c:1004 ../src/libs/masks.c:1830 +#: ../src/libs/masks.c:1834 +msgid "add ellipse" +msgstr "Aggiungi ellisse" + +#: ../src/develop/blend_gui.c:2809 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 +msgid "add multiple ellipses" +msgstr "Aggiungi più forme ellittiche" + +#: ../src/develop/blend_gui.c:2816 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 ../src/libs/masks.c:999 ../src/libs/masks.c:1839 +#: ../src/libs/masks.c:1843 +msgid "add circle" +msgstr "Aggiungi forma circolare" + +#: ../src/develop/blend_gui.c:2817 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 +msgid "add multiple circles" +msgstr "Aggiungi più forme circolari" + +#: ../src/develop/blend_gui.c:2976 +msgid "toggle polarity of raster mask" +msgstr "Inverti polarità della maschera raster" + +#: ../src/develop/blend_gui.c:3119 +msgid "normal & difference" +msgstr "Normale & differenza" + +#: ../src/develop/blend_gui.c:3124 +msgid "lighten" +msgstr "Schiarisci" + +#: ../src/develop/blend_gui.c:3131 +msgid "darken" +msgstr "Scurisci" + +#: ../src/develop/blend_gui.c:3138 +msgid "contrast enhancing" +msgstr "Miglioramento contrasto" + +#: ../src/develop/blend_gui.c:3145 ../src/develop/blend_gui.c:3168 +msgid "color channel" +msgstr "Canale colore" + +#: ../src/develop/blend_gui.c:3156 ../src/develop/blend_gui.c:3171 +msgid "chromaticity & lightness" +msgstr "Cromaticità & chiarezza" + +#: ../src/develop/blend_gui.c:3163 +msgid "normal & arithmetic" +msgstr "Normale & artimetico" + +#. add deprecated blend mode +#: ../src/develop/blend_gui.c:3184 +msgid "deprecated" +msgstr "Moduli deprecati" + +#. should never happen: unknown blend mode +#: ../src/develop/blend_gui.c:3188 +#, c-format +msgid "unknown blend mode '%d' in module '%s'" +msgstr "Modalità di fusione '%d' sconosciuta nel modulo '%s'" + +#: ../src/develop/blend_gui.c:3497 +msgid "blending options" +msgstr "Opzioni di fusione" + +#: ../src/develop/blend_gui.c:3516 +msgid "blend mask" +msgstr "Maschera di fusione" + +#: ../src/develop/blend_gui.c:3520 +msgid "display mask and/or color channel" +msgstr "Visualizza la maschera e/o canale colore" + +#: ../src/develop/blend_gui.c:3525 +msgid "" +"display mask and/or color channel.\n" +"ctrl+click to display mask,\n" +"shift+click to display channel.\n" +"hover over parametric mask slider to select channel for display" +msgstr "" +"visualizza la maschera e/o il canale colore.\n" +"Ctrl+click per visualizzare la maschera,\n" +"Maiu+cclick tper visualizzare il canale\n" +"hpassa col mous sopra il selettore scorrevole di una maschera parametrica " +"per selezionare il canale da mostrare" + +#: ../src/develop/blend_gui.c:3532 +msgid "temporarily switch off blend mask" +msgstr "Disattiva temporaneamente la maschera di fusione" + +#: ../src/develop/blend_gui.c:3537 +msgid "" +"temporarily switch off blend mask.\n" +"only for module in focus" +msgstr "" +"Disattiva temporaneamente la maschera di fusione.\n" +"solo per il modulo in fuoco" + +#: ../src/develop/blend_gui.c:3549 +msgid "choose blending mode" +msgstr "Seleziona il metodo di fusione" + +#: ../src/develop/blend_gui.c:3559 +msgid "toggle blend order" +msgstr "Nascondi l'ordine di miscelazione" + +#: ../src/develop/blend_gui.c:3565 +msgid "" +"toggle the blending order between the input and the output of the module,\n" +"by default the output will be blended on top of the input,\n" +"order can be reversed by clicking on the icon (input on top of output)" +msgstr "" +"Nascondi l'ordine di fusione tra l'input e l'output del modulo,\n" +"per default l'output è combinato al di sopra dell'input,\n" +"l'ordine può esser invertito cliccando sull'icona (input al di sopra " +"dell'output)" + +#: ../src/develop/blend_gui.c:3576 +msgid "fulcrum" +msgstr "Fulcro" + +#: ../src/develop/blend_gui.c:3580 +msgid "adjust the fulcrum used by some blending operations" +msgstr "Regola il fulcro utilizzato da alcuni operatori di fusione" + +#. Add opacity/scale sliders to table +#: ../src/develop/blend_gui.c:3588 ../src/iop/watermark.c:1362 +#: ../src/libs/masks.c:105 +msgid "opacity" +msgstr "Opacità" + +#: ../src/develop/blend_gui.c:3591 +msgid "set the opacity of the blending" +msgstr "Imposta l'opacità della fusione" + +#: ../src/develop/blend_gui.c:3596 ../src/libs/history.c:956 +msgid "combine masks" +msgstr "Combina le maschere" + +#: ../src/develop/blend_gui.c:3598 +msgid "" +"how to combine individual drawn mask and different channels of parametric " +"mask" +msgstr "" +"Come combinare la maschera disegnata e i differenti canali della maschera " +"parametrica" + +#: ../src/develop/blend_gui.c:3605 +msgid "details threshold" +msgstr "Soglia dei dettagli" + +#: ../src/develop/blend_gui.c:3609 +msgid "" +"adjust the threshold for the details mask (using raw data),\n" +"positive values select areas with strong details,\n" +"negative values select flat areas" +msgstr "" +"Regola la soglia per la maschera di dettaglio (usando i dati raw),\n" +"valori positivi selezionano aree con dettagli più marcati,\n" +"valori negativi selezionano aree piatte" + +#: ../src/develop/blend_gui.c:3617 ../src/libs/history.c:959 +msgid "feathering guide" +msgstr "Guida per la sfumatura" + +#: ../src/develop/blend_gui.c:3620 +msgid "" +"choose to guide mask by input or output image and\n" +"choose to apply feathering before or after mask blur" +msgstr "" +"Scegli di far guidare la maschera dall'immagine di input o di output e\n" +"scegli di applicare la sfumatura prima o dopo la maschera di sfocatura" + +#: ../src/develop/blend_gui.c:3629 ../src/libs/history.c:958 +msgid "feathering radius" +msgstr "Raggio di sfumatura" + +#: ../src/develop/blend_gui.c:3632 +msgid "spatial radius of feathering" +msgstr "Estensione spaziale della sfumatura" + +#: ../src/develop/blend_gui.c:3641 +msgid "blurring radius" +msgstr "Raggio di sfocatura" + +#: ../src/develop/blend_gui.c:3644 +msgid "radius for gaussian blur of blend mask" +msgstr "Raggio della sfocatura gaussiana della maschera di fusione" + +#: ../src/develop/blend_gui.c:3652 ../src/iop/retouch.c:2738 +#: ../src/libs/history.c:954 +msgid "mask opacity" +msgstr "Opacità maschera" + +#: ../src/develop/blend_gui.c:3656 +msgid "" +"shifts and tilts the tone curve of the blend mask to adjust its brightness\n" +"without affecting fully transparent/fully opaque regions" +msgstr "" +"sposta a inclina la curva dei toni della maschera di fusione per regolare la " +"sua luminosità\n" +"senza modificare regioni completamente trasparenti o opache" + +#: ../src/develop/blend_gui.c:3663 ../src/libs/history.c:962 +msgid "mask contrast" +msgstr "Contrasto maschera" + +#: ../src/develop/blend_gui.c:3667 +msgid "" +"gives the tone curve of the blend mask an s-like shape to adjust its contrast" +msgstr "" +"Dà una forma ad S alle curva di tono della maschera di fusione per regolare " +"il suo contrasto" + +#: ../src/develop/blend_gui.c:3671 +msgid "mask refinement" +msgstr "Aggiustamento fine maschera" + +#: ../src/develop/develop.c:732 +msgid "" +"autosaving history has been disabled for this session because of a slow " +"drive used" +msgstr "" +"La storia degli autosalvataggi è stata disabilitata per questa sessione a " +"causa del drive usato lento" + +#: ../src/develop/develop.c:2202 +#, c-format +msgid "%s: module `%s' version mismatch: %d != %d" +msgstr "%s: mancata corrispondenza di versione del modulo '%s': %d != %d" + +#: ../src/develop/develop.c:3016 +msgid "duplicate module, can't move new instance after the base one\n" +msgstr "" +"modulo duplicato, non si può muovere la nuova istanza dopo quella di base\n" + +#: ../src/develop/imageop.c:1031 +msgid "new instance" +msgstr "Nuova istanza" + +#: ../src/develop/imageop.c:1037 +msgid "duplicate instance" +msgstr "" +"Duplica questa istanza con\n" +"le stesse impostazioni" + +#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3772 +#: ../src/libs/masks.c:1146 +msgid "move up" +msgstr "Sposta su" + +#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3773 +#: ../src/libs/masks.c:1151 +msgid "move down" +msgstr "Sposta giù" + +#. delete button label and tooltip will be updated based on trash pref +#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3775 +#: ../src/gui/accelerators.c:173 ../src/libs/image.c:303 +#: ../src/libs/image.c:513 +msgid "delete" +msgstr "Elimina" + +#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3776 +#: ../src/libs/modulegroups.c:3817 +msgid "rename" +msgstr "Rinomina" + +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 +#, c-format +msgid "'%s' is switched on" +msgstr "'%s' è abilitato" + +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 +#, c-format +msgid "'%s' is switched off" +msgstr "'%s' è disabilitato" + +#: ../src/develop/imageop.c:2663 +msgid "unknown mask" +msgstr "Maschera sconosciuta" + +#: ../src/develop/imageop.c:2667 +msgid "drawn + parametric mask" +msgstr "Maschera parametrica e disegnata" + +#: ../src/develop/imageop.c:2676 +#, c-format +msgid "this module has a `%s'" +msgstr "Questo modulo ha un `%s'" + +#: ../src/develop/imageop.c:2681 +#, c-format +msgid "taken from module %s" +msgstr "Scattante dal modulo %s" + +#: ../src/develop/imageop.c:2686 +msgid "click to display (module must be activated first)" +msgstr "Clicca per mostrare (il modulo deve esser attivato prima)" + +#: ../src/develop/imageop.c:2797 +msgid "purpose" +msgstr "Scopo" + +#: ../src/develop/imageop.c:2797 +msgid "process" +msgstr "Elaborazione" + +#: ../src/develop/imageop.c:2917 +msgid "" +"multiple instance actions\n" +"right-click creates new instance" +msgstr "" +"Azioni con istanze multiple\n" +"click col tasto destro del mouse crea una nuova istanza" + +#: ../src/develop/imageop.c:2932 +msgid "" +"reset parameters\n" +"ctrl+click to reapply any automatic presets" +msgstr "" +"Azzera i parametri\n" +"Ctrl+click per applicare di nuovo qualsiasi preimpostazione automatica" + +#: ../src/develop/imageop.c:2944 +msgid "" +"presets\n" +"right-click to apply on new instance" +msgstr "" +"Preimpostazioni\n" +"Clicca col tasto destro del mouse per applicare su una nuova istanza" + +#: ../src/develop/imageop.c:3211 ../src/develop/imageop.c:3233 +msgid "ERROR" +msgstr "ERRORE" + +#: ../src/develop/imageop.c:3639 +msgid "unsupported input" +msgstr "Ingresso non supportato" + +#: ../src/develop/imageop.c:3640 +msgid "" +"you have placed this module at\n" +"a position in the pipeline where\n" +"the data format does not match\n" +"its requirements." +msgstr "" +"Hai messo questo modulo in una\n" +"posizione nella coda di sviluppo dove\n" +"il formato dei dati non corrisponde\n" +"ai suoi requisiti." + +#: ../src/develop/imageop.c:3771 ../src/develop/imageop.c:3781 +#: ../src/gui/accelerators.c:169 ../src/libs/lib.c:1415 +msgid "show" +msgstr "Mostra" + +#: ../src/develop/imageop.c:3774 ../src/libs/modulegroups.c:3315 +#: ../src/libs/modulegroups.c:3438 ../src/libs/modulegroups.c:3819 +#: ../src/libs/tagging.c:3279 +msgid "new" +msgstr "Nuova" + +#: ../src/develop/imageop.c:3777 ../src/libs/duplicate.c:411 +#: ../src/libs/image.c:534 ../src/libs/modulegroups.c:3815 +msgid "duplicate" +msgstr "Duplica" + +#: ../src/develop/imageop.c:3782 +msgid "enable" +msgstr "Abilita" + +#: ../src/develop/imageop.c:3783 ../src/gui/accelerators.c:185 +msgid "focus" +msgstr "Messa a fuoco" + +#: ../src/develop/imageop.c:3784 ../src/gui/accelerators.c:2874 +msgid "instance" +msgstr "Istanza" + +#: ../src/develop/imageop.c:3785 ../src/gui/accelerators.c:130 +#: ../src/gui/accelerators.c:140 ../src/gui/gtk.c:3064 ../src/gui/gtk.c:3111 +#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:615 +#: ../src/gui/styles_dialog.c:637 ../src/iop/atrous.c:1626 +#: ../src/libs/lib.c:1416 ../src/libs/modulegroups.c:3884 +msgid "reset" +msgstr "Ripristina" + +#. Adding the outer container +#: ../src/develop/imageop.c:3786 ../src/gui/preferences.c:796 +#: ../src/libs/lib.c:1417 +msgid "presets" +msgstr "Preimpostazioni" + +#: ../src/develop/imageop.c:3806 +msgid "processing module" +msgstr "Modulo di elaborazione" + +#: ../src/develop/imageop_gui.c:293 +#, c-format +msgid "" +"%s\n" +"ctrl+click to %s" +msgstr "" +"%s\n" +"ctrl+click per %s" + +#: ../src/develop/lightroom.c:1137 +msgid "cannot find Lightroom XMP!" +msgstr "Impossibile trovare file XMP di Lightroom!" + +#: ../src/develop/lightroom.c:1169 ../src/develop/lightroom.c:1191 +#: ../src/develop/lightroom.c:1211 +#, c-format +msgid "`%s' is not a Lightroom XMP!" +msgstr "`%s' non è un XMP di Lightroom!" + +#: ../src/develop/lightroom.c:1613 +#, c-format +msgid "%s has been imported" +msgid_plural "%s have been imported" +msgstr[0] "%s è stato importato" +msgstr[1] "%s sono stati importati" + +#: ../src/develop/masks/brush.c:1346 ../src/develop/masks/brush.c:1400 +#, c-format +msgid "hardness: %3.2f%%" +msgstr "Durezza: %3.2f%%" + +#: ../src/develop/masks/brush.c:1362 ../src/develop/masks/brush.c:1460 +#: ../src/develop/masks/circle.c:148 ../src/develop/masks/circle.c:193 +#: ../src/develop/masks/ellipse.c:484 ../src/develop/masks/ellipse.c:546 +#: ../src/develop/masks/path.c:1255 +#, c-format +msgid "size: %3.2f%%" +msgstr "Dimensione: %3.2f%%" + +#: ../src/develop/masks/brush.c:3191 +msgid "[BRUSH] change size" +msgstr "[BRUSH] cambia dimensione" + +#: ../src/develop/masks/brush.c:3193 +msgid "[BRUSH] change hardness" +msgstr "[BRUSH] Cambia la durezza" + +#: ../src/develop/masks/brush.c:3195 +msgid "[BRUSH] change opacity" +msgstr "[BRUSH] Cambia l'opacità" + +#: ../src/develop/masks/brush.c:3207 +#, c-format +msgid "brush #%d" +msgstr "Pennello #%d" + +#: ../src/develop/masks/brush.c:3220 +#, c-format +msgid "" +"<b>size</b>: scroll, <b>hardness</b>: shift+scroll\n" +"<b>opacity</b>: ctrl+scroll (%d%%)" +msgstr "" +"<b>dimensione</b>: rotella mouse, <b>durezza</b>: maiusc+rotella mouse\n" +"<b>opacità</b>: ctrl+rotella mouse(%d%%)" + +#: ../src/develop/masks/brush.c:3223 +msgid "<b>size</b>: scroll" +msgstr "<b>dimensione</b>: rotella mouse" + +#: ../src/develop/masks/circle.c:137 ../src/develop/masks/circle.c:181 +#: ../src/develop/masks/ellipse.c:470 ../src/develop/masks/ellipse.c:531 +#: ../src/develop/masks/path.c:1187 +#, c-format +msgid "feather size: %3.2f%%" +msgstr "dimensione sfumatura: %3.2f%%" + +#: ../src/develop/masks/circle.c:1462 +msgid "[CIRCLE] change size" +msgstr "[CIRCLE] Cambia dimensione" + +#: ../src/develop/masks/circle.c:1464 +msgid "[CIRCLE] change feather size" +msgstr "[CIRCLE] Cambia dimensione sfumatura" + +#: ../src/develop/masks/circle.c:1466 +msgid "[CIRCLE] change opacity" +msgstr "[CIRCLE] Cambia l'opacità" + +#: ../src/develop/masks/circle.c:1479 +#, c-format +msgid "circle #%d" +msgstr "Cerchio #%d" + +#: ../src/develop/masks/circle.c:1490 ../src/develop/masks/path.c:3406 +#, c-format +msgid "" +"<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" +"<b>opacity</b>: ctrl+scroll (%d%%)" +msgstr "" +"<b>dimensione</b>: rotella mouse, <b>dimensione sfumatura</b>: " +"maiusc+rotella mouse\n" +"<b>opacità</b>: ctrl+rotella mouse (%d%%)" + +#: ../src/develop/masks/ellipse.c:456 ../src/develop/masks/ellipse.c:515 +#, c-format +msgid "rotation: %3.f°" +msgstr "Rotazione: %3.f°" + +#: ../src/develop/masks/ellipse.c:2019 +msgid "[ELLIPSE] change size" +msgstr "[ELLIPSE] Cambia la dimensione" + +#: ../src/develop/masks/ellipse.c:2022 +msgid "[ELLIPSE] change feather size" +msgstr "[ELLIPSE] cambia dimensione della sfumatura" + +#: ../src/develop/masks/ellipse.c:2025 ../src/develop/masks/ellipse.c:2034 +msgid "[ELLIPSE] rotate shape" +msgstr "[ELLIPSE] Ruota la forma" + +#: ../src/develop/masks/ellipse.c:2028 +msgid "[ELLIPSE] change opacity" +msgstr "[ELLIPSE] Cambia l'opacità" + +#: ../src/develop/masks/ellipse.c:2031 +msgid "[ELLIPSE] switch feathering mode" +msgstr "[ELLIPSE] Modifica modalità di sfumatura" + +#: ../src/develop/masks/ellipse.c:2041 +#, c-format +msgid "ellipse #%d" +msgstr "Ellisse #%d" + +#: ../src/develop/masks/ellipse.c:2079 +#, c-format +msgid "" +"<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" +"<b>rotation</b>: ctrl+shift+scroll, <b>opacity</b>: ctrl+scroll (%d%%)" +msgstr "" +"<b>dimensione</b>: rotella mouse, <b>dimensione sfumatura</b>: " +"maiusc+rotella mouse\n" +"<b>rotazione</b>: ctrl+maiusc+rotella mouse, <b>opacità</b>: ctrl+rotella " +"mouse (%d%%)" + +#: ../src/develop/masks/ellipse.c:2083 +msgid "<b>rotate</b>: ctrl+drag" +msgstr "<b>Ruota</b>: Ctrl+trascina" + +#: ../src/develop/masks/ellipse.c:2086 +#, c-format +msgid "" +"<b>feather mode</b>: shift+click, <b>rotate</b>: ctrl+drag\n" +"<b>size</b>: scroll, <b>feather size</b>: shift+scroll, <b>opacity</b>: " +"ctrl+scroll (%d%%)" +msgstr "" +"<b>modo sfumatura</b>: Maiusc+click, <b>ruota</b>: Ctrl+trascina\n" +"<b>dimensione</b>: rotella mouse, <b>dimensione sfumatura</b>: " +"Maiusc+rotella mouse, <b>opacità</b>: Ctrl+ rotella mouse (%d%%)" + +#: ../src/develop/masks/gradient.c:131 ../src/develop/masks/gradient.c:175 +#, c-format +msgid "compression: %3.2f%%" +msgstr "Compressione: %3.2f%%" + +#: ../src/develop/masks/gradient.c:143 ../src/develop/masks/gradient.c:186 +#, c-format +msgid "curvature: %3.2f%%" +msgstr "Curvatura: %3.2f%%" + +#: ../src/develop/masks/gradient.c:1514 +msgid "[GRADIENT on pivot] rotate shape" +msgstr "[GRADIENT on pivot] Ruota forma" + +#: ../src/develop/masks/gradient.c:1516 +msgid "[GRADIENT creation] set rotation" +msgstr "[GRADIENT creation] Imposta rotazione" + +#: ../src/develop/masks/gradient.c:1518 +msgid "[GRADIENT] change curvature" +msgstr "[GRADIENT] Cambia curvatura" + +#: ../src/develop/masks/gradient.c:1520 +msgid "[GRADIENT] change compression" +msgstr "[GRADIENT] Cambia compressione" + +#: ../src/develop/masks/gradient.c:1522 +msgid "[GRADIENT] change opacity" +msgstr "[GRADIENT] Cambia l'opacità" + +#: ../src/develop/masks/gradient.c:1535 +#, c-format +msgid "gradient #%d" +msgstr "Gradiente #%d" + +#: ../src/develop/masks/gradient.c:1546 +#, c-format +msgid "" +"<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" +"<b>rotation</b>: click+drag, <b>opacity</b>: ctrl+scroll (%d%%)" +msgstr "" +"<b>curvatura</b>: rotella mouse, <b>compressione</b>: shift+rotella mouse\n" +"<b>rotazione</b>: click+trascina, <b>opacità</b>: ctrl+rotella mouse (%d%%)" + +#: ../src/develop/masks/gradient.c:1551 +#, c-format +msgid "" +"<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" +"<b>opacity</b>: ctrl+scroll (%d%%)" +msgstr "" +"<b>curvatura</b>: rotella mouse, <b>compressione</b>: maiusc+rotella mouse\n" +"<b>opacità</b>: ctrl+rotella mouse (%d%%)" + +#: ../src/develop/masks/gradient.c:1554 +msgid "<b>rotate</b>: drag" +msgstr "<b>ruota</b>: trascina" + +#: ../src/develop/masks/masks.c:139 +msgid "[SHAPE] remove shape" +msgstr "[SHAPE] Rimuovi forma" + +#: ../src/develop/masks/masks.c:305 +#, c-format +msgid "group `%s'" +msgstr "Gruppo `%s'" + +#: ../src/develop/masks/masks.c:422 +#, c-format +msgid "copy of `%s'" +msgstr "Copia di '%s'" + +#: ../src/develop/masks/masks.c:985 +#, c-format +msgid "%s: mask version mismatch: %d != %d" +msgstr "%s: mancata corrispondenza di versione della maschera: %d != %d" + +#: ../src/develop/masks/masks.c:1230 ../src/develop/masks/masks.c:1881 +#, c-format +msgid "opacity: %.0f%%" +msgstr "Opacità: %.0f%%" + +#: ../src/develop/masks/masks.c:1625 ../src/libs/masks.c:1084 +msgid "add existing shape" +msgstr "Aggiungi forma esistente" + +#: ../src/develop/masks/masks.c:1652 +msgid "use same shapes as" +msgstr "Usa la stessa forma di" + +#: ../src/develop/masks/masks.c:1965 +msgid "masks can not contain themselves" +msgstr "Le maschere non possono contenere se stesse\t" + +#: ../src/develop/masks/path.c:3349 +msgid "[PATH creation] add a smooth node" +msgstr "[PATH creation] Aggiungi un nodo arrotondato" + +#: ../src/develop/masks/path.c:3351 +msgid "[PATH creation] add a sharp node" +msgstr "[PATH creation] Aggiungi un nodo acuto" + +#: ../src/develop/masks/path.c:3353 +msgid "[PATH creation] terminate path creation" +msgstr "[PATH creation] Termina la creazione del tracciato" + +#: ../src/develop/masks/path.c:3355 +msgid "[PATH on node] switch between smooth/sharp node" +msgstr "[PATH on node] Commuta tra nodo arrotondato/acuto" + +#: ../src/develop/masks/path.c:3357 +msgid "[PATH on node] remove the node" +msgstr "[PATH on node] Rimuovi il nodo" + +#: ../src/develop/masks/path.c:3359 +msgid "[PATH on feather] reset curvature" +msgstr "[PATH on feather] Azzera la curvatura" + +#: ../src/develop/masks/path.c:3361 +msgid "[PATH on segment] add node" +msgstr "[PATH on segment] Aggiungi nodo" + +#: ../src/develop/masks/path.c:3363 +msgid "[PATH] change size" +msgstr "[PATH] Cambia la dimensione" + +#: ../src/develop/masks/path.c:3365 +msgid "[PATH] change feather size" +msgstr "[PATH] Cambia la dimensione della sfumatura" + +#: ../src/develop/masks/path.c:3367 +msgid "[PATH] change opacity" +msgstr "[PATH] Cambia l'opacità" + +#: ../src/develop/masks/path.c:3379 +#, c-format +msgid "path #%d" +msgstr "Tracciato #%d" + +#: ../src/develop/masks/path.c:3389 +msgid "" +"<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" +"<b>cancel</b>: right-click" +msgstr "" +"<b>aggiungi un nodo</b>: click, <b>aggiungi un nodo ad angolo</b>: " +"Ctrl+click\n" +"<b>annulla</b>: click destro" + +#: ../src/develop/masks/path.c:3392 +msgid "" +"<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" +"<b>finish path</b>: right-click" +msgstr "" +"<b>aggiungi un nodo</b>: click, <b>aggiungi un nodo ad angolo</b>: " +"Ctrl+click\n" +"<b>termina il tracciato</b>: click destro" + +#: ../src/develop/masks/path.c:3395 +msgid "" +"<b>move node</b>: drag, <b>remove node</b>: right-click\n" +"<b>switch smooth/sharp mode</b>: ctrl+click" +msgstr "" +"<b>sposta il nodo</b>: trascina, <b>rimuovi il nodo</b>: click col tasto " +"destro\n" +"<b>passa il nodo a modo morbido/ad angolo</b>: ctrl+click" + +#: ../src/develop/masks/path.c:3399 +msgid "" +"<b>node curvature</b>: drag\n" +"<b>reset curvature</b>: right-click" +msgstr "" +"<b>nodo curvatura</b>: trascina\n" +"<b>azzera curvatura</b>: click destro" + +#: ../src/develop/masks/path.c:3403 +msgid "" +"<b>move segment</b>: drag\n" +"<b>add node</b>: ctrl+click" +msgstr "" +"<b>sposta segmento</b>: trascina\n" +"<b>aggiungi nodo</b>: ctrl+click" + +#: ../src/develop/pixelpipe_hb.c:486 +msgid "enabled as required" +msgstr "Abilitato come richiesto" + +#: ../src/develop/pixelpipe_hb.c:487 +msgid "" +"history had module disabled but it is required for this type of image.\n" +"likely introduced by applying a preset, style or history copy&paste" +msgstr "" +"La cronologia ha il modulo disabilitato ma è richiesto per questo tipo di " +"immagine. \n" +"Probabile che sia accaduto applicando una preimpostazione, uno stile o un " +"copia e incolla della cronologia" + +#: ../src/develop/pixelpipe_hb.c:494 +msgid "disabled as not appropriate" +msgstr "Disabilitato come non appropriato" + +#: ../src/develop/pixelpipe_hb.c:495 +msgid "" +"history had module enabled but it is not allowed for this type of image.\n" +"likely introduced by applying a preset, style or history copy&paste" +msgstr "" +"La cronologia ha il modulo abilitato ma non è permesso per questo tipo di " +"immagine.\n" +"Probabile che sia accaduto applicando una preimpostazione, uno stile o un " +"copia e incolla della cronologia" + +#: ../src/develop/pixelpipe_hb.c:2697 +msgid "" +"OpenCL errors encountered; disabling OpenCL for this session! some possible " +"causes:\n" +" - OpenCL out of resources due to preference settings. please try with " +"defaults,\n" +" - buggy driver for some device. please run darktable with `-d opencl' to " +"identify,\n" +" - some drivers don't support needed number of events,\n" +" - too small headroom settings while using 'use all device memory'." +msgstr "" +"Si sono riscontrati errori OpenCL; disabilitare OpenCL per questa sessione! " +"Alcune possibilicause:\n" +" - OpenCL ha esaurito le risorse a causa delle preferenze impostate. Si " +"prega di tentare con le impostazioni predefinite,\n" +" - driver difettosi per alcuni dispositivi. Si prega di eseguire darktable " +"con l'opzione `-d opencl' per identificazione,\n" +" - alcuni driver non supportano il numero richiesto di eventi,\n" +" - impostazioni headroom troppo piccole con l'opzione 'usa tutta la memoria " +"del dispositivo'." + +#: ../src/develop/pixelpipe_hb.c:2847 +#, c-format +msgid "" +"module '%s' can't get raster mask from module\n" +"'%s' as that is processed later in the pixel pipe.\n" +"raster mask is ignored." +msgstr "" +"Il modulo '%s' non può ottenere la maschera raster dal modulo\n" +"'%s' in quanto viene elaborato dopo nel flusso di sviluppo (pixelpipe).\n" +"La maschera raster viene ignorata." + +#: ../src/develop/tiling.c:819 ../src/develop/tiling.c:1172 +#, c-format +msgid "" +"tiling failed for module '%s'. the output most likely will be OK, but you " +"might want to check." +msgstr "" +"Tiling fallito per il modulo '%s'. Il risultato è probabilmnte corretto, ma " +"vorresti voler controllare." + +#: ../src/dtgtk/culling.c:223 +msgid "you have reached the start of your selection" +msgstr "Hai raggiunto l'inizio della tua selezione" + +#: ../src/dtgtk/culling.c:232 +msgid "you have reached the start of your collection" +msgstr "Hai raggiunto l'inizio della tua raccolta" + +#: ../src/dtgtk/culling.c:279 +msgid "you have reached the end of your selection" +msgstr "Hai raggiunto la fine della tua selezione" + +#: ../src/dtgtk/culling.c:306 +msgid "you have reached the end of your collection" +msgstr "Hai raggiunto la fine della tua raccolta" + +#: ../src/dtgtk/culling.c:415 +#, c-format +msgid "zooming is limited to %d images" +msgstr "L'ingrandimento è limitato a %d immagini" + +#: ../src/dtgtk/range.c:214 ../src/dtgtk/range.c:219 +msgid "invalid" +msgstr "Non valido" + +#: ../src/dtgtk/range.c:327 +#, c-format +msgid "year %s" +msgstr "Anno %s" + +#: ../src/dtgtk/range.c:405 +msgid "" +"enter the minimal value\n" +"use 'min' if no bound\n" +"right-click to select from existing values" +msgstr "" +"Inserisci il valore minimo\n" +"usa 'min' se senza limite\n" +"click destro per selezionare dai valori esistenti" + +#: ../src/dtgtk/range.c:411 +msgid "" +"enter the maximal value\n" +"use 'max' if no bound\n" +"right-click to select from existing values" +msgstr "" +"Inserisci il valore massimo\n" +"usa 'max' se senza limite\n" +"click destro per selezionare dai valori esistenti" + +#: ../src/dtgtk/range.c:417 +msgid "" +"enter the value\n" +"right-click to select from existing values" +msgstr "" +"Inserisci il valore\n" +"Click destro per selezionare dai valori esistenti" + +#: ../src/dtgtk/range.c:422 +msgid "" +"enter the minimal date\n" +"in the form YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)\n" +"use 'min' if no bound\n" +"use '-' prefix for relative date\n" +"right-click to select from calendar or existing values" +msgstr "" +"Inserisci la data minima\n" +"nella forma YYYY:MM:DD hh:mm:ss.sss (è obbligatorio solo l'anno)\n" +"usa 'min' se senza limite\n" +"usa il prefisso '-' per una data relativa\n" +"click destro per selezionare dal calendario o da valori esistenti" + +#: ../src/dtgtk/range.c:430 +msgid "" +"enter the maximal date\n" +"in the form YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)\n" +"use 'max' if no bound\n" +"'now' keyword is handled\n" +"use '-' prefix for relative date\n" +"right-click to select from calendar or existing values" +msgstr "" +"Inserisci la data massima\n" +"nella forma YYYY:MM:DD hh:mm:ss.sss (è obbligatorio solo l'anno)\n" +"usa 'mad' se senza limite\n" +"usa il prefisso '-' per una data relativa\n" +"click destro per selezionare dal calendario o da valori esistenti" + +#: ../src/dtgtk/range.c:439 +msgid "" +"enter the date\n" +"in the form YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)\n" +"right-click to select from calendar or existing values" +msgstr "" +"Inserisci la data\n" +"nella forma YYYY:MM:DD hh:mm:ss.sss (è obbligatorio solo l'anno)\n" +"click destro per selezionare dal calendario o da valori esistenti" + +#: ../src/dtgtk/range.c:461 +msgid "date-time interval to subtract from the max value" +msgstr "Intervallo data/ora da sottrarre dal valore massimo" + +#: ../src/dtgtk/range.c:465 +msgid "date-time interval to add to the min value" +msgstr "Intervallo data/ora da aggiungere al valore minimo" + +#: ../src/dtgtk/range.c:486 +msgid "fixed" +msgstr "Corretto" + +#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1498 +msgid "relative" +msgstr "Relativo" + +#: ../src/dtgtk/range.c:577 +msgid "selected" +msgstr "selezionato" + +#: ../src/dtgtk/range.c:624 ../src/dtgtk/range.c:1768 ../src/dtgtk/range.c:1819 +#: ../src/libs/colorpicker.c:53 +msgid "min" +msgstr "Min" + +#: ../src/dtgtk/range.c:630 ../src/dtgtk/range.c:1780 ../src/dtgtk/range.c:1831 +#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:309 +msgid "max" +msgstr "Max" + +#: ../src/dtgtk/range.c:944 +msgid "date type" +msgstr "Tipo data" + +#. the date section +#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1505 +msgid "date" +msgstr "Data" + +#: ../src/dtgtk/range.c:962 ../src/dtgtk/range.c:1028 +msgid "" +"click to select date\n" +"double-click to use the date directly" +msgstr "" +"Click per selezionare la data\n" +"doppio click per usare la data direttamente" + +#: ../src/dtgtk/range.c:973 +msgid "years: " +msgstr "Anni: " + +#: ../src/dtgtk/range.c:981 +msgid "months: " +msgstr "Mesi: " + +#: ../src/dtgtk/range.c:989 +msgid "days: " +msgstr "Giorni: " + +#. the time section +#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1505 +msgid "time" +msgstr "Orario" + +#: ../src/dtgtk/range.c:1049 +msgid "current date: " +msgstr "Data attuale: " + +#: ../src/dtgtk/range.c:1053 ../src/dtgtk/range.c:1787 +#: ../src/dtgtk/range.c:1838 +msgid "now" +msgstr "Adesso" + +#: ../src/dtgtk/range.c:1055 +msgid "set the value to always match current datetime" +msgstr "Imposta sempre il valore alla data e ora corrente" + +#. apply button +#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:180 +#: ../src/libs/metadata.c:735 ../src/libs/styles.c:901 +msgid "apply" +msgstr "Applica" + +#: ../src/dtgtk/range.c:1059 +msgid "set the range bound with this value" +msgstr "Imposta i valori limite con questo valore" + +#: ../src/dtgtk/resetlabel.c:59 +msgid "double-click to reset" +msgstr "Doppio click per ripristinare" + +#: ../src/dtgtk/thumbnail.c:146 ../src/dtgtk/thumbnail.c:179 +msgid "current" +msgstr "Corrente" + +#: ../src/dtgtk/thumbnail.c:146 ../src/dtgtk/thumbnail.c:155 +msgid "leader" +msgstr "Leader" + +#: ../src/dtgtk/thumbnail.c:154 +msgid "" +"\n" +"click here to set this image as group leader\n" +msgstr "" +"\n" +"clicca qui per impostare questa immagine come principale del gruppo\n" + +#. and the number of grouped images +#: ../src/dtgtk/thumbnail.c:191 ../src/libs/filters/grouping.c:144 +#: ../src/libs/filters/grouping.c:169 +msgid "grouped images" +msgstr "Immagini raggruppate" + +#: ../src/dtgtk/thumbnail.c:834 ../src/dtgtk/thumbnail.c:1659 +#: ../src/iop/ashift.c:6140 ../src/iop/ashift.c:6229 ../src/iop/ashift.c:6231 +#: ../src/iop/ashift.c:6233 ../src/libs/navigation.c:111 +#: ../src/libs/navigation.c:193 +msgid "fit" +msgstr "Adatta" + +#: ../src/dtgtk/thumbtable.c:1139 ../src/views/slideshow.c:422 +msgid "there are no images in this collection" +msgstr "Non ci sono immagini in questa raccolta" + +#: ../src/dtgtk/thumbtable.c:1146 +msgid "if you have not imported any images yet" +msgstr "Se non hai ancora importato nessuna immagine" + +#: ../src/dtgtk/thumbtable.c:1150 +msgid "you can do so in the import module" +msgstr "puoi farlo nel modulo di importazione" + +#: ../src/dtgtk/thumbtable.c:1159 +msgid "try to relax the filter settings in the top panel" +msgstr "Prova a disattivare le impostazioni del filtro dal pannello di sopra" + +#: ../src/dtgtk/thumbtable.c:1170 +msgid "or add images in the collections module in the left panel" +msgstr "o aggiungi le immagini nel modulo raccolte nel pannello sinistro" + +#: ../src/dtgtk/thumbtable.c:1455 +msgid "" +"you have changed the settings related to how thumbnails are generated.\n" +msgstr "" +"Hai cambiato le impostazioni relative al come le anteprime sono generate.\n" + +#: ../src/dtgtk/thumbtable.c:1458 +msgid "" +"all cached thumbnails need to be invalidated.\n" +"\n" +msgstr "" +"Tutte le miniature memorizzate necessitano di esser invalidate.\n" +"\n" + +#: ../src/dtgtk/thumbtable.c:1462 +#, c-format +msgid "" +"cached thumbnails starting from level %d need to be invalidated.\n" +"\n" +msgstr "" +"Le miniature memorizzate a partire dal livello %d hanno bisogno di esser " +"invalidate.\n" +"\n" + +#: ../src/dtgtk/thumbtable.c:1467 +#, c-format +msgid "" +"cached thumbnails below level %d need to be invalidated.\n" +"\n" +msgstr "" +"Le miniature memorizzate al di sotto del livello %d hanno bisogno di esser " +"invalidate.\n" +"\n" + +#: ../src/dtgtk/thumbtable.c:1472 +#, c-format +msgid "" +"cached thumbnails between level %d and %d need to be invalidated.\n" +"\n" +msgstr "" +"Le miniature memorizzate tra il livello %d e %d hanno bisogno di esser " +"invalidate.\n" +"\n" + +#: ../src/dtgtk/thumbtable.c:1475 +msgid "do you want to do that now?" +msgstr "Vuoi farlo ora?" + +#: ../src/dtgtk/thumbtable.c:1477 +msgid "cached thumbnails invalidation" +msgstr "Invalidazione anteprime memorizzate" + +#. setup history key accelerators +#: ../src/dtgtk/thumbtable.c:2738 +msgid "copy history" +msgstr "Copia la cronologia" + +#: ../src/dtgtk/thumbtable.c:2740 +msgid "copy history parts" +msgstr "Copia parti della cronologia" + +#: ../src/dtgtk/thumbtable.c:2742 +msgid "paste history" +msgstr "Incolla la cronologia" + +#: ../src/dtgtk/thumbtable.c:2744 +msgid "paste history parts" +msgstr "Incolla parti della cronologia" + +#: ../src/dtgtk/thumbtable.c:2746 ../src/libs/copy_history.c:394 +msgid "discard history" +msgstr "Elimina coda di sviluppo" + +#: ../src/dtgtk/thumbtable.c:2749 +msgid "duplicate image" +msgstr "Duplica l'immagine" + +#: ../src/dtgtk/thumbtable.c:2751 +msgid "duplicate image virgin" +msgstr "Duplica l'immagine vergine" + +#: ../src/dtgtk/thumbtable.c:2761 ../src/libs/select.c:148 +msgid "select film roll" +msgstr "Seleziona rullino" + +#: ../src/dtgtk/thumbtable.c:2763 ../src/libs/select.c:152 +msgid "select untouched" +msgstr "Selez. non modificate" + +#: ../src/generate-cache/main.c:50 +#, c-format +msgid "creating cache directories\n" +msgstr "Creazione cache delle cartelle\n" + +#: ../src/generate-cache/main.c:56 +#, c-format +msgid "creating cache directory '%s'\n" +msgstr "Creazione cache della cartella '%s'\n" + +#: ../src/generate-cache/main.c:59 +#, c-format +msgid "could not create directory '%s'!\n" +msgstr "Impossibile creare cartella '%s'!\n" + +#: ../src/generate-cache/main.c:83 +#, c-format +msgid "warning: no images are matching the requested image id range\n" +msgstr "" +"Attenzione: nessuna immagine corrisponde all'intervallo di id richiesto\n" + +#: ../src/generate-cache/main.c:86 +#, c-format +msgid "warning: did you want to swap these boundaries?\n" +msgstr "Attenzione: vuoi invertire i contorni?\n" + +#: ../src/generate-cache/main.c:227 +#, c-format +msgid "" +"warning: disk backend for thumbnail cache is disabled (cache_disk_backend)\n" +"if you want to pre-generate thumbnails and for darktable to use them, you " +"need to enable disk backend for thumbnail cache\n" +"no thumbnails to be generated, done.\n" +msgstr "" +"Attenzione: il supporto disco per la cache miniature è disabilitato " +"(cache_disk_backend)\n" +"Se si vogliono generare in anticipo le anteprime e fare anche in modo che " +"possano essere utilizzate da darktable, è necessario abilitare il backend " +"disco per la cache delle miniatura\n" +"Nessuna miniatura deve essere generata, fatto.\n" + +#: ../src/generate-cache/main.c:238 +#, c-format +msgid "" +"warning: disk backend for full preview cache is disabled " +"(cache_disk_backend_full)\n" +"if you want to pre-generate full previews and for darktable to use them, you " +"need to enable disk backend for full preview cache\n" +"no full previews to be generated, done.\n" +msgstr "" +"Attenzione: backend disco per la cache dell'anteprima a schermo intero è " +"disabilitata. (cache backend disco piena)\n" +"Se vuoi generare in anticipo le anteprime a schermo intero affinché " +"Darktable le possa utilizzare devi abilitare la cache del backend disco per " +"l'anteprima a schermo pieno\n" +"non verranno generate anteprime; fatto.\n" + +#: ../src/generate-cache/main.c:248 +#, c-format +msgid "error: ensure that min_mip <= max_mip\n" +msgstr "Errore: assicurarsi che min_mip <= max_mip\n" + +#: ../src/generate-cache/main.c:253 +#, c-format +msgid "creating complete lighttable thumbnail cache\n" +msgstr "Creazione cache anteprime Tavolo Luminoso in corso\n" + +#: ../src/gui/about.c:34 +#, c-format +msgid "copyright (c) the authors 2009-%s" +msgstr "Copyright (c) gli autori 2009-%s" + +#: ../src/gui/about.c:39 +msgid "organize and develop images from digital cameras" +msgstr "Organizza e sviluppa immagini dalla tua fotocamera digitale" + +#: ../src/gui/about.c:51 +msgid "all those of you that made previous releases possible" +msgstr "tutti coloro che hanno reso possibile le versioni precedenti" + +#: ../src/gui/about.c:56 +msgid "and..." +msgstr "e..." + +#: ../src/gui/about.c:59 +msgid "translator-credits" +msgstr "" +"\"Matteo Mardegan <matteo@mardegan.org> (2019-2023)\n" +"\"Luca Cignoni (2022-2023)\n" +"\"Fabio Sirna (2023)\n" +"\"\"Nelle precedenti versioni:\n" +"\"\"Maurizio Paglia (2018-2022)\n" +"\"\"Germano Massullo (2015-2017)\n" +"\"\"Mauro 'bartokk' Bartoccelli (2013-2014)\"" + +#: ../src/gui/accelerators.c:72 +msgid "in active view" +msgstr "In vista attiva" + +#: ../src/gui/accelerators.c:73 +msgid "in other views" +msgstr "In altre viste" + +#: ../src/gui/accelerators.c:74 +msgid "fallbacks" +msgstr "Alternative" + +#: ../src/gui/accelerators.c:75 +msgid "speed adjustments" +msgstr "regolazioni di velocità" + +#: ../src/gui/accelerators.c:76 +msgid "disabled defaults" +msgstr "Predefiniti disabilitati" + +#: ../src/gui/accelerators.c:96 ../src/views/view.c:1361 +msgid "scroll" +msgstr "Scorri" + +#: ../src/gui/accelerators.c:97 +msgid "pan" +msgstr "Scorri" + +#: ../src/gui/accelerators.c:98 ../src/iop/ashift.c:5799 +#: ../src/iop/ashift.c:5801 ../src/iop/ashift.c:5906 ../src/iop/ashift.c:5908 +#: ../src/iop/ashift.c:6232 ../src/iop/clipping.c:1955 +#: ../src/iop/clipping.c:2147 ../src/iop/clipping.c:2163 +#: ../src/views/darkroom.c:2522 ../src/views/lighttable.c:1250 +msgid "horizontal" +msgstr "Orizzontale" + +#: ../src/gui/accelerators.c:99 ../src/iop/ashift.c:5799 +#: ../src/iop/ashift.c:5801 ../src/iop/ashift.c:5906 ../src/iop/ashift.c:5908 +#: ../src/iop/ashift.c:6230 ../src/iop/clipping.c:1954 +#: ../src/iop/clipping.c:2148 ../src/iop/clipping.c:2162 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:1254 +msgid "vertical" +msgstr "Verticale" + +#: ../src/gui/accelerators.c:100 +msgid "diagonal" +msgstr "Diagonale" + +#: ../src/gui/accelerators.c:102 +msgid "leftright" +msgstr "Sinistradestra" + +#: ../src/gui/accelerators.c:103 +msgid "updown" +msgstr "Sottosopra" + +#: ../src/gui/accelerators.c:104 +msgid "pgupdown" +msgstr "Pagsugiù" + +#: ../src/gui/accelerators.c:112 ../src/views/view.c:1343 +msgid "shift" +msgstr "Spostamento" + +#: ../src/gui/accelerators.c:113 ../src/views/view.c:1345 +msgid "ctrl" +msgstr "Ctrl" + +#: ../src/gui/accelerators.c:114 ../src/views/view.c:1347 +msgid "alt" +msgstr "Alt" + +#: ../src/gui/accelerators.c:115 +msgid "cmd" +msgstr "Cmd" + +#: ../src/gui/accelerators.c:116 +msgid "altgr" +msgstr "Altgr" + +#: ../src/gui/accelerators.c:127 ../src/gui/accelerators.c:174 +#: ../src/libs/tagging.c:1804 +msgid "edit" +msgstr "Modifica " + +#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 +msgid "up" +msgstr "Su" + +#: ../src/gui/accelerators.c:129 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 +msgid "down" +msgstr "Giù" + +#: ../src/gui/accelerators.c:133 +msgid "set" +msgstr "Imposta" + +#: ../src/gui/accelerators.c:137 +msgid "popup" +msgstr "Apparire" + +#: ../src/gui/accelerators.c:138 ../src/gui/accelerators.c:171 +#: ../src/gui/gtk.c:3109 ../src/views/lighttable.c:760 +msgid "next" +msgstr "Successivo" + +#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:170 +#: ../src/gui/gtk.c:3110 ../src/views/lighttable.c:761 +msgid "previous" +msgstr "Precedente" + +#: ../src/gui/accelerators.c:141 ../src/gui/accelerators.c:1598 +msgid "last" +msgstr "Ultimo" + +#: ../src/gui/accelerators.c:142 ../src/gui/accelerators.c:1597 +msgid "first" +msgstr "Primo" + +#: ../src/gui/accelerators.c:146 ../src/gui/accelerators.c:159 +#: ../src/gui/accelerators.c:356 ../src/libs/filters/rating_range.c:295 +#: ../src/libs/tagging.c:3150 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2258 ../src/views/darkroom.c:2494 +msgid "toggle" +msgstr "Disattiva" + +#: ../src/gui/accelerators.c:149 +msgid "ctrl-toggle" +msgstr "Disattiva CTRL" + +#: ../src/gui/accelerators.c:150 +msgid "ctrl-on" +msgstr "ctrl-on" + +#: ../src/gui/accelerators.c:151 +msgid "right-toggle" +msgstr "Disattiva destro" + +#: ../src/gui/accelerators.c:152 +msgid "right-on" +msgstr "A destra" + +#: ../src/gui/accelerators.c:163 ../src/gui/gtk.c:3108 +msgid "activate" +msgstr "Attiva" + +#: ../src/gui/accelerators.c:164 +msgid "ctrl-activate" +msgstr "Ctrl-attiva" + +#: ../src/gui/accelerators.c:165 +msgid "right-activate" +msgstr "Destro-attiva" + +#: ../src/gui/accelerators.c:172 +msgid "store" +msgstr "Negozio" + +#: ../src/gui/accelerators.c:175 ../src/gui/styles_dialog.c:651 +msgid "update" +msgstr "Aggiorna" + +#: ../src/gui/accelerators.c:176 ../src/libs/tools/global_toolbox.c:60 +#: ../src/libs/tools/global_toolbox.c:510 +msgid "preferences" +msgstr "Preferenze" + +#: ../src/gui/accelerators.c:181 +msgid "apply on new instance" +msgstr "Applicare sulla nuova istanza" + +#: ../src/gui/accelerators.c:186 +msgid "start" +msgstr "Inizia" + +#: ../src/gui/accelerators.c:187 +msgid "end" +msgstr "Fine" + +#: ../src/gui/accelerators.c:374 +msgid "entry" +msgstr "Immetti" + +#: ../src/gui/accelerators.c:450 +msgid "combo effect not found" +msgstr "Effetto combinato non trovato" + +#: ../src/gui/accelerators.c:627 +msgid "(keypad)" +msgstr "(keypad)" + +#: ../src/gui/accelerators.c:636 +msgid "tablet button" +msgstr "Pulsante della tavoletta" + +#: ../src/gui/accelerators.c:645 +msgid "unknown driver" +msgstr "Driver sconosciuto" + +#: ../src/gui/accelerators.c:718 +msgid "long" +msgstr "Lungo" + +#: ../src/gui/accelerators.c:719 +msgid "double-press" +msgstr "Premi due volte" + +#: ../src/gui/accelerators.c:720 +msgid "triple-press" +msgstr "Premi tre volte" + +#: ../src/gui/accelerators.c:721 +msgid "press" +msgstr "Premi" + +#: ../src/gui/accelerators.c:725 +msgctxt "accel" +msgid "left" +msgstr "Sinistra" + +#: ../src/gui/accelerators.c:726 +msgctxt "accel" +msgid "right" +msgstr "Destra" + +#: ../src/gui/accelerators.c:727 +msgctxt "accel" +msgid "middle" +msgstr "Metà" + +#: ../src/gui/accelerators.c:728 +msgctxt "accel" +msgid "long" +msgstr "Lungo" + +#: ../src/gui/accelerators.c:729 +msgctxt "accel" +msgid "double-click" +msgstr "Doppio click" + +#: ../src/gui/accelerators.c:730 +msgctxt "accel" +msgid "triple-click" +msgstr "Triplo click" + +#: ../src/gui/accelerators.c:731 +msgid "click" +msgstr "Clicca" + +#: ../src/gui/accelerators.c:759 +msgid "first instance" +msgstr "Prima istanza" + +#: ../src/gui/accelerators.c:761 +msgid "last instance" +msgstr "Ultima istanza" + +#: ../src/gui/accelerators.c:763 +msgid "relative instance" +msgstr "Istanza relativa" + +#: ../src/gui/accelerators.c:780 ../src/gui/accelerators.c:2864 +#: ../src/gui/accelerators.c:3811 +msgid "speed" +msgstr "Velocità" + +#: ../src/gui/accelerators.c:923 +#, c-format +msgid "" +"Lua script command copied to clipboard:\n" +"\n" +"<tt>%s</tt>" +msgstr "" +"Comando script Lua copiato negli appunti:\n" +"\n" +"<tt>%s</tt>" + +#: ../src/gui/accelerators.c:1025 ../src/gui/accelerators.c:1044 +msgid "start typing for incremental search" +msgstr "Inizia a digitare per la ricerca incrementale" + +#: ../src/gui/accelerators.c:1028 +msgid "" +"\n" +"press Delete to delete selected shortcut" +msgstr "" +"\n" +"premi Canc per eliminare la scorciatoia da tastiera selezionata" + +#: ../src/gui/accelerators.c:1030 +msgid "" +"\n" +"press Delete to disable selected default shortcut" +msgstr "" +"\n" +"premi Canc per disabilitare la scorciatoia da tastiera selezionata" + +#: ../src/gui/accelerators.c:1031 +msgid "" +"\n" +"press Delete to restore selected default shortcut" +msgstr "" +"\n" +"premi Canc per ripristinare la scorciatoia da tastiera selezionata" + +#: ../src/gui/accelerators.c:1033 +msgid "" +"\n" +"double-click to add new shortcut" +msgstr "" +"\n" +"Doppio click per aggiungere una nuova scorciatoia" + +#: ../src/gui/accelerators.c:1045 +msgid "click to filter shortcuts list" +msgstr "fai click per filtrare la lista delle scorciatoie" + +#: ../src/gui/accelerators.c:1047 +msgid "" +"\n" +"right click to show action of selected shortcut" +msgstr "" +"\n" +"click di destro per mostrare l'azione della scorciatoia selezionata" + +#: ../src/gui/accelerators.c:1050 +msgid "" +"\n" +"double-click to define new shortcut" +msgstr "" +"\n" +"doppio click per definire una nuova scorciatoia" + +#: ../src/gui/accelerators.c:1081 +msgid "shift+alt+scroll to change height" +msgstr "maiusc+alt+scroll per modificare l'altezza" + +#: ../src/gui/accelerators.c:1101 +msgid "" +"press keys with mouse click and scroll or move combinations to create a " +"shortcut" +msgstr "" +"Premi tasti con il click del mouse e con la rotella o muovi le combinazioni " +"per creare una scorciatoia" + +#: ../src/gui/accelerators.c:1102 +msgid "click to open shortcut configuration" +msgstr "Clicca per aprire la configurazione della scorciatoia" + +#: ../src/gui/accelerators.c:1103 +msgid "ctrl+click to add to quick access panel\n" +msgstr "CTRL+click per aggiungere al pannello di accesso rapido\n" + +#: ../src/gui/accelerators.c:1104 +msgid "ctrl+click to remove from quick access panel\n" +msgstr "CTRL+click per rimuovere dal pannello di accesso rapido\n" + +#: ../src/gui/accelerators.c:1105 +msgid "scroll to change default speed" +msgstr "Ctrl+(rotella mouse) per modificare la velocità predefinita" + +#: ../src/gui/accelerators.c:1106 +msgid "right click to exit mapping mode" +msgstr "Click destro per uscire dalla modalità mappatura" + +#: ../src/gui/accelerators.c:1119 +#, c-format +msgid "" +"%sright-click to type a specific value between <b>%s</b> and <b>%s</b>\n" +"or hold ctrl+shift while dragging to ignore soft limits." +msgstr "" +"%s click di destro per digitare un valore specifico tra <b>%s</b> e <b>%s</" +"b>\n" +"oppure tieni premuto Ctrl+Maiusc mentre trascini per ignorare i limiti " +"morbidi." + +#: ../src/gui/accelerators.c:1183 +msgid "ctrl+v" +msgstr "ctrl+v" + +#: ../src/gui/accelerators.c:1183 +msgid "right long click" +msgstr "click di destro lungo" + +#: ../src/gui/accelerators.c:1183 +msgid "to copy Lua command" +msgstr "Copia il comando Lua" + +#: ../src/gui/accelerators.c:1451 +msgid "shortcut for move exists with single effect" +msgstr "Scorciatoia per muovere esiste con un singolo effetto" + +#: ../src/gui/accelerators.c:1452 +#, c-format +msgid "" +"%s\n" +"\n" +"(assign %s to %s)" +msgstr "" +"%s\n" +"\n" +"(assegna %s a %s)" + +#: ../src/gui/accelerators.c:1453 +msgid "create separate shortcuts for up and down move?" +msgstr "Creare scorciatoie separate per muovere su o giù?" + +#: ../src/gui/accelerators.c:1479 +#, c-format +msgid "%s, speed reset" +msgstr "%s, ripristino veloce" + +#: ../src/gui/accelerators.c:1497 +msgid "shortcut exists with different settings" +msgstr "La scorciatoia esiste con impostazioni diverse" + +#: ../src/gui/accelerators.c:1498 +msgid "reset the settings of the shortcut?" +msgstr "Ripristina le impostazioni della scorciatoia?" + +#: ../src/gui/accelerators.c:1507 +msgid "shortcut already exists" +msgstr "La scorciatoia esiste già" + +#: ../src/gui/accelerators.c:1509 +msgid "disable this default shortcut?" +msgstr "Disabilitare queste scorciatoia da tastiera predefinite?" + +#: ../src/gui/accelerators.c:1510 +msgid "remove the shortcut?" +msgstr "Rimuovere la scorciatoia?" + +#: ../src/gui/accelerators.c:1550 +msgid "clashing shortcuts exist" +msgstr "Esistono scorciatoie che collidono" + +#: ../src/gui/accelerators.c:1551 +msgid "remove these existing shortcuts?" +msgstr "Rimuovere queste scorciatoie esistenti?" + +#. or 3, but change char relative[] = "-2" to "-1" +#. NUM_INSTANCES +#: ../src/gui/accelerators.c:1596 +msgid "preferred" +msgstr "Preferito" + +#: ../src/gui/accelerators.c:1599 +msgid "second" +msgstr "Secondo" + +#: ../src/gui/accelerators.c:1600 +msgid "last but one" +msgstr "Penultimo" + +#: ../src/gui/accelerators.c:1761 ../src/gui/accelerators.c:1826 +msgid "(unchanged)" +msgstr "(non cambiato)" + +#: ../src/gui/accelerators.c:1941 +msgid "" +"define a shortcut by pressing a key, optionally combined with modifier keys " +"(ctrl/shift/alt)\n" +"a key can be double or triple pressed, with a long last press\n" +"while the key is held, a combination of mouse buttons can be (double/triple/" +"long) clicked\n" +"still holding the key (and modifiers and/or buttons) a scroll or mouse move " +"can be added\n" +"connected devices can send keys or moves using their physical controllers\n" +"\n" +"right-click to cancel" +msgstr "" +"Definisce una scorciatoia premendo un tasto, in opzione combinato con tasti " +"modificatori (ctrl/maiusc/alt)\n" +"Un tasto può esser premuto duo o tre volte, con una ultima pressione lunga\n" +"Mentre il tasto è premuto, una combinazione di tasti del mouse possono (due/ " +"tre volte /a lungo) esser premuti\n" +"Sempre tenendo premuto il tasto (e modificatori e/o pulsanti) può esser " +"aggiunto uno scorrimento del mouse o un movimento\n" +"I dispositivi connessi possono inviare tasti o movimenti usando i loro " +"controlli fisici\n" +"\n" +"Clicca col destro per annullare" + +#: ../src/gui/accelerators.c:2014 +msgid "removing shortcut" +msgstr "Rimuovendo scorciatoia" + +#: ../src/gui/accelerators.c:2016 +msgid "disable the selected default shortcut?" +msgstr "Disabilitare la scorciatoia predefinita selezionata?" + +#: ../src/gui/accelerators.c:2017 +msgid "restore the selected default shortcut?" +msgstr "Ripristinare la scorciatoia predefinita selezionata?" + +#: ../src/gui/accelerators.c:2018 +msgid "remove the selected shortcut?" +msgstr "Rimuovo la scorciatoia selezionata?" + +#: ../src/gui/accelerators.c:2107 +msgid "command" +msgstr "comando" + +#: ../src/gui/accelerators.c:2108 +msgid "preset" +msgstr "Preset" + +#: ../src/gui/accelerators.c:2491 +msgid "restore shortcuts" +msgstr "Ripristina scorciatoie" + +#: ../src/gui/accelerators.c:2494 +msgid "_defaults" +msgstr "_Predefiniti" + +#: ../src/gui/accelerators.c:2495 +msgid "_startup" +msgstr "_Avviare" + +#: ../src/gui/accelerators.c:2496 +msgid "_edits" +msgstr "_modifiche" + +#: ../src/gui/accelerators.c:2503 +msgid "" +"restore shortcuts from one of these states:\n" +" - default\n" +" - as at startup\n" +" - as when opening this dialog\n" +msgstr "" +"Ripristina le scorciatoie da uno di questi stati:\n" +" - default\n" +" - come all'avvio\n" +" - come all'apertura della finestra\n" + +#: ../src/gui/accelerators.c:2510 +msgid "" +"clear all newer shortcuts\n" +"(instead of just restoring changed ones)" +msgstr "" +"Cancella tutte le scorciatoie più nuove\n" +"(invece di ripristinare proprio quelle cambiate)" + +#: ../src/gui/accelerators.c:2567 ../src/gui/preferences.c:905 +#: ../src/libs/tools/global_toolbox.c:494 +#: ../src/libs/tools/global_toolbox.c:652 +msgid "shortcuts" +msgstr "Scorciatoie" + +#: ../src/gui/accelerators.c:2577 +msgid "export shortcuts" +msgstr "Esporta scorciatoie" + +#: ../src/gui/accelerators.c:2586 +msgid "" +"export all shortcuts to a file\n" +"or just for one selected device\n" +msgstr "" +"Esporta tutte le scorciatoie su un file\n" +"o proprio per un dispositivo selezionato\n" + +#: ../src/gui/accelerators.c:2593 ../src/gui/accelerators.c:2675 +msgid "keyboard" +msgstr "Tastiera" + +#: ../src/gui/accelerators.c:2605 +msgid "device id" +msgstr "ID dispositivo" + +#: ../src/gui/accelerators.c:2631 +msgid "select file to export" +msgstr "Seleziona file da esportare" + +#: ../src/gui/accelerators.c:2632 ../src/libs/tagging.c:2556 +msgid "_export" +msgstr "_Esporta" + +#: ../src/gui/accelerators.c:2659 +msgid "import shortcuts" +msgstr "Importa scorciatoie" + +#: ../src/gui/accelerators.c:2668 +msgid "" +"import all shortcuts from a file\n" +"or just for one selected device\n" +msgstr "" +"Importa tutte le scorciatoie da un file\n" +"o proprio per un dispositivo selezionato\n" + +#: ../src/gui/accelerators.c:2687 +msgid "id in file" +msgstr "ID nel file" + +#: ../src/gui/accelerators.c:2693 +msgid "id when loaded" +msgstr "ID quando caricato" + +#: ../src/gui/accelerators.c:2697 +msgid "clear device first" +msgstr "Prima pulisci il dispositivo" + +#: ../src/gui/accelerators.c:2722 +msgid "select file to import" +msgstr "Seleziona file da importare" + +#: ../src/gui/accelerators.c:2723 ../src/libs/tagging.c:2520 +msgid "_import" +msgstr "_Importa" + +#: ../src/gui/accelerators.c:2815 +msgid "search shortcuts list" +msgstr "Cercare la lista delle scorciatoie" + +#: ../src/gui/accelerators.c:2817 +msgid "" +"incrementally search the list of shortcuts\n" +"press up or down keys to cycle through matches" +msgstr "" +"Ricerca in modo incrementale la lista delle scorciatoie\n" +"Premi i tasti su o giù per spostarsi attraverso le combinazioni" + +#: ../src/gui/accelerators.c:2837 ../src/views/view.c:1554 +msgid "shortcut" +msgstr "Scorciatoia" + +#: ../src/gui/accelerators.c:2840 ../src/gui/accelerators.c:2942 +#: ../src/views/view.c:1556 +msgid "action" +msgstr "Azione" + +#: ../src/gui/accelerators.c:2850 +msgid "element" +msgstr "Elemento" + +#: ../src/gui/accelerators.c:2858 +msgid "effect" +msgstr "Effetti" + +#: ../src/gui/accelerators.c:2918 +msgid "search actions list" +msgstr "Cercare lista azioni" + +#: ../src/gui/accelerators.c:2920 +msgid "" +"incrementally search the list of actions\n" +"press up or down keys to cycle through matches" +msgstr "" +"Ricerca in modo incrementale la lista delle azioni\n" +"Premi i tasti su o giù per spostarsi attraverso le combinazioni" + +#: ../src/gui/accelerators.c:2950 ../src/gui/guides.c:719 +#: ../src/libs/export_metadata.c:179 +msgid "type" +msgstr "Tipo" + +#: ../src/gui/accelerators.c:2988 +msgid "enable fallbacks" +msgstr "Attiva alternative" + +#: ../src/gui/accelerators.c:2989 +msgid "" +"enables default meanings for additional buttons, modifiers or moves\n" +"when used in combination with a base shortcut" +msgstr "" +"Abilita significati di default per pulsanti addizionali, modificatori o " +"movimenti\n" +"quando è usato in combinazione con una scorciatoia di base" + +#: ../src/gui/accelerators.c:2997 +msgid "open help page for shortcuts" +msgstr "apri la pagina di aiuto per le scorciatoie" + +#: ../src/gui/accelerators.c:3002 +msgid "restore..." +msgstr "Ripristina..." + +#: ../src/gui/accelerators.c:3003 +msgid "restore default shortcuts or previous state" +msgstr "Ripristino le scorciatoie predefinite o gli stati precedenti" + +#: ../src/gui/accelerators.c:3007 ../src/libs/styles.c:887 +#: ../src/libs/tagging.c:3282 +msgid "import..." +msgstr "Importa..." + +#: ../src/gui/accelerators.c:3008 +msgid "fully or partially import shortcuts from file" +msgstr "Importa per intero o parzialmente le scorciatoie da un file" + +#: ../src/gui/accelerators.c:3012 ../src/libs/styles.c:894 +#: ../src/libs/tagging.c:3285 +msgid "export..." +msgstr "Esporta..." + +#: ../src/gui/accelerators.c:3013 +msgid "fully or partially export shortcuts to file" +msgstr "Esporta per intero o parzialmente le scorciatoie in un file" + +#: ../src/gui/accelerators.c:3021 +msgid "" +"the recommended way to assign shortcuts to visual elements is the <b>visual " +"shortcut mapping</b> mode.\n" +"this is switched on by toggling the <i>\"keyboard\"</i> button next to " +"preferences in the top panel. in this mode, clicking on a widget or area " +"will open this dialog with the appropriate selection for advanced " +"configuration.\n" +"\n" +"multiple shortcuts can be assigned to the same action. this is especially " +"useful if it has multiple <i>elements</i>, like the module buttons or the " +"colorpickers attached to sliders. however, with <i>fallbacks</i> enabled one " +"can use the same simple shortcuts and change their <i>element</i> or " +"<i>effect</i> by adding mouse clicks.\n" +"\n" +"<i>click <b> three times </b> to dismiss this notice permanently</i>" +msgstr "" +"La raccomandazione per assegnare scorciatoie da tastiera ad elementi visuali " +"è la modalità <b>mappatura visuale scorciatoie da tastiera</b>.\n" +"Questa viene attivata cliccando sul pulsante <i>\"tastiera\"</i> vicino alle " +"preferenze nel pannello superiore. In questa modalità, cliccando su un " +"widget o su un'area, si aprirà questa finestra di dialogo con la selezione " +"appropriata per la configurazione avanzata.\n" +"\n" +"si possono assegnare scorciatoie multiple alla stessa azione. Questo è " +"particolarmente utile quando si hanno molti <i>elementi</i>, tipo i pulsanti " +"dei moduli o il selettore colore collegato ad un selettore scorrevole. " +"Tuttavia, con le <i>alternative</i> abilitate, si puòsemplicemente usare le " +"stesse semplici scorciatoie e cambiare i loro <i>elementi</i> o<i>effetti</" +"i> aggiungendo click di mouse.\n" +"\n" +"<i>Cliccare<b> tre volte</b> per rimuovere questo messaggio permanentemente</" +"i>" + +#: ../src/gui/accelerators.c:3452 +msgid "reinitialising input devices" +msgstr "re-inizializza i dispositivi di input" + +#: ../src/gui/accelerators.c:3594 +msgid "down move" +msgstr "Sposta giù" + +#: ../src/gui/accelerators.c:3594 +msgid "flip top/bottom first/last" +msgstr "Scambia alto/basso primo/ultimo" + +#: ../src/gui/accelerators.c:3679 +msgid "fallback to move" +msgstr "Alternative per muovere" + +#: ../src/gui/accelerators.c:3921 +#, c-format +msgid "%s not assigned" +msgstr "%s non assegnato" + +#: ../src/gui/accelerators.c:4102 +#, c-format +msgid "%s assigned to %s" +msgstr "%s assegnato a %s" + +#: ../src/gui/accelerators.c:4321 +msgid "short key press resets stuck keys" +msgstr "la pressione veloce di un tasto azzera tasti inceppati" + +#: ../src/gui/gtk.c:175 ../src/views/darkroom.c:3838 +msgid "darktable - darkroom preview" +msgstr "darktable - Anteprima Camera Oscura" + +#: ../src/gui/gtk.c:186 +msgid "tooltips off" +msgstr "Suggerimenti disattivati" + +#: ../src/gui/gtk.c:188 +msgid "tooltips on" +msgstr "Suggerimenti attivati" + +#: ../src/gui/gtk.c:193 +msgid "" +"tooltip visibility can only be toggled if compositing is enabled in your " +"window manager" +msgstr "" +"La visualizzazione dei suggerimenti può essere variata solo se il vostro " +"gestore delle finestre ha il compositore abilitato." + +#: ../src/gui/gtk.c:809 +msgid "closing darktable..." +msgstr "Sto chiudendo darktable..." + +#: ../src/gui/gtk.c:1032 +msgid "URL opened in web browser" +msgstr "URL aperto nel browser web" + +#: ../src/gui/gtk.c:1036 +msgid "error while opening URL in web browser" +msgstr "Errore nell'apertura dell'URL nel browser web" + +#. View menu +#: ../src/gui/gtk.c:1104 +msgctxt "menu" +msgid "Views" +msgstr "Viste" + +#: ../src/gui/gtk.c:1108 +msgctxt "menu" +msgid "lighttable" +msgstr "Tavolo Luminoso" + +#: ../src/gui/gtk.c:1109 +msgctxt "menu" +msgid "darkroom" +msgstr "Camera Oscura" + +#: ../src/gui/gtk.c:1115 +msgctxt "menu" +msgid "slideshow" +msgstr "Presentazione" + +#: ../src/gui/gtk.c:1117 +msgctxt "menu" +msgid "map" +msgstr "Mappa" + +#: ../src/gui/gtk.c:1119 +msgctxt "menu" +msgid "print" +msgstr "Stampa" + +#: ../src/gui/gtk.c:1121 +msgctxt "menu" +msgid "tethering" +msgstr "Tethering" + +#. Help menu +#: ../src/gui/gtk.c:1127 +msgctxt "menu" +msgid "Help" +msgstr "Aiuto" + +#: ../src/gui/gtk.c:1131 +msgctxt "menu" +msgid "darktable Manual" +msgstr "Manuale darktable" + +#: ../src/gui/gtk.c:1138 +msgctxt "menu" +msgid "darktable Homepage" +msgstr "Home page darktable" + +#: ../src/gui/gtk.c:1162 +msgctxt "menu" +msgid "Preferences" +msgstr "Preferenze" + +#: ../src/gui/gtk.c:1232 +msgid "panels" +msgstr "Pannelli" + +#: ../src/gui/gtk.c:1264 +msgid "switch views" +msgstr "Cambia viste" + +#: ../src/gui/gtk.c:1265 ../src/views/tethering.c:102 +msgid "tethering" +msgstr "Tethering (scatto remoto)" + +#: ../src/gui/gtk.c:1268 ../src/views/map.c:197 +msgid "map" +msgstr "Mappa" + +#: ../src/gui/gtk.c:1269 ../src/views/slideshow.c:390 +msgid "slideshow" +msgstr "Presentazione" + +#. Print button +#: ../src/gui/gtk.c:1270 ../src/libs/print_settings.c:2885 +msgid "print" +msgstr "Stampa" + +#. register ctrl-q to quit: +#: ../src/gui/gtk.c:1276 +msgid "quit" +msgstr "esci" + +#. Full-screen accelerator (no ESC handler here to enable quit-slideshow using ESC) +#: ../src/gui/gtk.c:1279 +msgid "fullscreen" +msgstr "a pieno schermo" + +#: ../src/gui/gtk.c:1283 +msgid "collapsing controls" +msgstr "Controlli di chiusura" + +#. specific top/bottom toggles +#: ../src/gui/gtk.c:1285 +msgid "header" +msgstr "Testata" + +#: ../src/gui/gtk.c:1286 +msgid "filmstrip and timeline" +msgstr "Provino e linea temporale" + +#: ../src/gui/gtk.c:1287 +msgid "top toolbar" +msgstr "Barra degli strumenti superiore" + +#: ../src/gui/gtk.c:1288 +msgid "bottom toolbar" +msgstr "Barra degli strumenti inferiore" + +#: ../src/gui/gtk.c:1289 +msgid "all top" +msgstr "Tutto in alto" + +#: ../src/gui/gtk.c:1290 +msgid "all bottom" +msgstr "Tutto in basso" + +#: ../src/gui/gtk.c:1292 +msgid "toggle tooltip visibility" +msgstr "Attiva visibilità suggerimenti" + +#: ../src/gui/gtk.c:1293 +msgid "reinitialise input devices" +msgstr "Reinizializza i dispositivi di input" + +#: ../src/gui/gtk.c:1331 +msgid "toggle focus-peaking mode" +msgstr "Attiva modalità focus-peaking" + +#. toggle focus peaking everywhere +#: ../src/gui/gtk.c:1336 +msgid "toggle focus peaking" +msgstr "Nascondi l'evidenziatore del fuoco" + +#: ../src/gui/gtk.c:1663 ../src/gui/gtk.c:3198 ../src/gui/gtk.c:3203 +#: ../src/gui/gtk.c:3208 ../src/gui/gtk.c:3213 +msgid "tabs" +msgstr "Schede" + +#. ask the user if darktable.org may be accessed +#: ../src/gui/gtk.c:2716 +msgid "access the online user manual?" +msgstr "accedere al manuale utente online?" + +#: ../src/gui/gtk.c:2717 +#, c-format +msgid "do you want to access `%s'?" +msgstr "Vuoi aprire il link `%s'?" + +#: ../src/gui/gtk.c:2787 +msgid "there is no help available for this element" +msgstr "Non c'è un aiuto disponibile per questo elemento" + +#. font name can only use period as decimal separator +#. but printf format strings use comma for some locales, so replace comma with period +#: ../src/gui/gtk.c:2807 ../src/libs/metadata_view.c:762 +#, c-format +msgid "%.1f" +msgstr "%.1f" + +#: ../src/gui/gtk.c:2809 +#, c-format +msgid "Sans %s" +msgstr "Sans %s" + +#: ../src/gui/gtk.c:3103 +msgid "does not contain pages" +msgstr "Non contiene pagine" + +#: ../src/gui/gtk.c:3322 +#, c-format +msgid "never show more than %d lines" +msgstr "Non mostrare più di %d linee" + +#: ../src/gui/gtkentry.c:173 +msgid "$(ROLL.NAME) - roll of the input image" +msgstr "$(ROLL.NAME) - arrotola l'immagine da immettere" + +#: ../src/gui/gtkentry.c:174 +msgid "$(FILE.FOLDER) - folder containing the input image" +msgstr "$(FILE.FOLDER) - cartella contenente l'immagine da immettere" + +#: ../src/gui/gtkentry.c:175 +msgid "$(FILE.NAME) - basename of the input image" +msgstr "$(FILE.NAME) - nome base dell'immagine da immettere" + +#: ../src/gui/gtkentry.c:176 +msgid "$(FILE.EXTENSION) - extension of the input image" +msgstr "$(FILE.EXTENSION) - estensione dell'immagine da immettere" + +#: ../src/gui/gtkentry.c:177 +msgid "$(VERSION) - duplicate version" +msgstr "$(VERSION) - Versione duplicata" + +#: ../src/gui/gtkentry.c:178 +msgid "" +"$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version " +"exists" +msgstr "" +"$(VERSION.IF_MULTI) - uguale a $(VERSION) ma stringa vuota se esiste una " +"sola versione" + +#: ../src/gui/gtkentry.c:179 +msgid "$(VERSION.NAME) - version name from metadata" +msgstr "$(VERSION.NAME) - nome versione per i metadati" + +#: ../src/gui/gtkentry.c:180 +msgid "$(JOBCODE) - job code for import" +msgstr "$(JOBCODE) - coda di lavoro per importazione" + +#: ../src/gui/gtkentry.c:181 +msgid "$(SEQUENCE) - sequence number" +msgstr "$(SEQUENCE) - Numero sequenza" + +#: ../src/gui/gtkentry.c:182 +msgid "$(WIDTH.MAX) - maximum image export width" +msgstr "$(WIDTH.MAX) - larghezza massima di esportazione dell'immagine" + +#: ../src/gui/gtkentry.c:183 +msgid "$(WIDTH.SENSOR) - image sensor width" +msgstr "$(WIDTH.SENSOR) - larghezza del sensore d'immagine" + +#: ../src/gui/gtkentry.c:184 +msgid "$(WIDTH.RAW) - RAW image width" +msgstr "$(WIDTH.RAW) - larghezza immagine RAW" + +#: ../src/gui/gtkentry.c:185 +msgid "$(WIDTH.CROP) - image width after crop" +msgstr "$(WIDTH.CROP) - larghezza immagine dopo il taglio" + +#: ../src/gui/gtkentry.c:186 +msgid "$(WIDTH.EXPORT) - exported image width" +msgstr "$(WIDTH.EXPORT) - larghezza dell'immagine esportata" + +#: ../src/gui/gtkentry.c:187 +msgid "$(HEIGHT.MAX) - maximum image export height" +msgstr "$(HEIGHT.MAX) - altezza massima dell'immagine esportata" + +#: ../src/gui/gtkentry.c:188 +msgid "$(HEIGHT.SENSOR) - image sensor height" +msgstr "$(HEIGHT.SENSOR) - altezza del sensore d'immagine" + +#: ../src/gui/gtkentry.c:189 +msgid "$(HEIGHT.RAW) - RAW image height" +msgstr "$(HEIGHT.RAW) - altezza immagine RAW" + +#: ../src/gui/gtkentry.c:190 +msgid "$(HEIGHT.CROP) - image height after crop" +msgstr "$(HEIGHT.CROP) - altezza immagine dopo il taglio" + +#: ../src/gui/gtkentry.c:191 +msgid "$(HEIGHT.EXPORT) - exported image height" +msgstr "$(HEIGHT.EXPORT) - altezza dell'immagine esportata" + +#: ../src/gui/gtkentry.c:192 +msgid "$(YEAR) - year" +msgstr "$(YEAR) - Anno" + +#: ../src/gui/gtkentry.c:193 +msgid "$(YEAR.SHORT) - year without century" +msgstr "$(YEAR.SHORT) - anno abbreviato (senza secolo)" + +#: ../src/gui/gtkentry.c:194 +msgid "$(MONTH) - month" +msgstr "$(MONTH) - Mese" + +#: ../src/gui/gtkentry.c:195 +msgid "$(MONTH.SHORT) - abbreviated month name according to the current locale" +msgstr "" +"$(MONTH.SHORT) - nome abbreviato del mese in base alla localizzazione " +"corrente" + +#: ../src/gui/gtkentry.c:196 +msgid "$(MONTH.LONG) - full month name according to the current locale" +msgstr "" +"$(MONTH.LONG) - nome intero del mese in base alla localizzazione corrente" + +#: ../src/gui/gtkentry.c:197 +msgid "$(DAY) - day" +msgstr "$(DAY) - Giorno" + +#: ../src/gui/gtkentry.c:198 +msgid "$(HOUR) - hour" +msgstr "$(HOUR) - Ora" + +#: ../src/gui/gtkentry.c:199 +msgid "$(HOUR.AMPM) - hour, 12-hour clock" +msgstr "$(HOUR.AMPM) - ora, orologio in 12 ore" + +#: ../src/gui/gtkentry.c:200 +msgid "$(MINUTE) - minute" +msgstr "$(MINUTE) - Minuto" + +#: ../src/gui/gtkentry.c:201 +msgid "$(SECOND) - second" +msgstr "$(SECOND) - Secondo" + +#: ../src/gui/gtkentry.c:202 +msgid "$(MSEC) - millisecond" +msgstr "$(MSEC) - millisecondi" + +#: ../src/gui/gtkentry.c:203 +msgid "$(EXIF.YEAR) - EXIF year" +msgstr "$(EXIF.YEAR) - anno EXIF" + +#: ../src/gui/gtkentry.c:204 +msgid "$(EXIF.YEAR.SHORT) - EXIF year without century" +msgstr "$(EXIF.YEAR.SHORT) - anno abbreviato EXIF (senza secolo)" + +#: ../src/gui/gtkentry.c:205 +msgid "$(EXIF.MONTH) - EXIF month" +msgstr "$(EXIF.MONTH) - mese EXIF" + +#: ../src/gui/gtkentry.c:206 +msgid "" +"$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current " +"locale" +msgstr "" +"$(EXIF.MONTH.SHORT) - nome del mese EXIF abbreviato in base alla " +"localizzazione corrente" + +#: ../src/gui/gtkentry.c:207 +msgid "" +"$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" +msgstr "" +"$(EXIF.MONTH.LONG) - nome del mese EXIF intero sulla base della corrente" + +#: ../src/gui/gtkentry.c:208 +msgid "$(EXIF.DAY) - EXIF day" +msgstr "$(EXIF.DAY) - giorno EXIF" + +#: ../src/gui/gtkentry.c:209 +msgid "$(EXIF.HOUR) - EXIF hour" +msgstr "$(EXIF.HOUR) - ora EXIF" + +#: ../src/gui/gtkentry.c:210 +msgid "$(EXIF.HOUR.AMPM) - EXIF hour, 12-hour clock" +msgstr "$(EXIF.HOUR.AMPM) - ora EXIF, su 12 ore" + +#: ../src/gui/gtkentry.c:211 +msgid "$(EXIF.MINUTE) - EXIF minute" +msgstr "$(EXIF.MINUTE) - minuto EXIF" + +#: ../src/gui/gtkentry.c:212 +msgid "$(EXIF.SECOND) - EXIF second" +msgstr "$(EXIF.SECOND) - secondo EXIF" + +#: ../src/gui/gtkentry.c:213 +msgid "$(EXIF.MSEC) - EXIF millisecond" +msgstr "$(EXIF.MSEC) - millisecondi EXIF" + +#: ../src/gui/gtkentry.c:214 +msgid "$(EXIF.ISO) - ISO value" +msgstr "$(EXIF.ISO) - valore ISO" + +#: ../src/gui/gtkentry.c:215 +msgid "$(EXIF.EXPOSURE) - EXIF exposure" +msgstr "$(EXIF.EXPOSURE) - esposizione EXIF" + +#: ../src/gui/gtkentry.c:216 +msgid "$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias" +msgstr "$(EXIF.EXPOSURE.BIAS) - compensazione esposizione EXIF" + +#: ../src/gui/gtkentry.c:217 +msgid "$(EXIF.APERTURE) - EXIF aperture" +msgstr "$(EXIF.APERTURE) - apertura EXIF" + +#: ../src/gui/gtkentry.c:218 +msgid "$(EXIF.CROP_FACTOR) - EXIF crop factor" +msgstr "$(EXIF.CROP_FACTOR) - Fattore di ritaglio EXIF" + +#: ../src/gui/gtkentry.c:219 +msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" +msgstr "$(EXIF.FOCAL.LENGTH) - lunghezza focale EXIF" + +#: ../src/gui/gtkentry.c:220 +msgid "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent focal length" +msgstr "$(EXIF.FOCAL.LENGTH.EQUIV) - Lunghezza focale equivalente al 35mm EXIF" + +#: ../src/gui/gtkentry.c:221 +msgid "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" +msgstr "$(EXIF.FOCUS.DISTANCE) - distanza focale EXIF" + +#: ../src/gui/gtkentry.c:222 +msgid "$(EXIF.MAKER) - camera maker" +msgstr "$(EXIF.MAKER) - costruttore fotocamera" + +#: ../src/gui/gtkentry.c:223 +msgid "$(EXIF.MODEL) - camera model" +msgstr "$(EXIF.MODEL) - modello fotocamera" + +#: ../src/gui/gtkentry.c:224 +msgid "$(EXIF.LENS) - lens" +msgstr "$(EXIF.LENS) - obiettivo" + +#: ../src/gui/gtkentry.c:225 +msgid "$(LONGITUDE) - longitude" +msgstr "$(LONGITUDE) - Longitudine" + +#: ../src/gui/gtkentry.c:226 +msgid "$(LATITUDE) - latitude" +msgstr "$(LATITUDE) - Latitudine" + +#: ../src/gui/gtkentry.c:227 +msgid "$(ELEVATION) - elevation" +msgstr "$(ELEVATION) - Altitudine" + +#: ../src/gui/gtkentry.c:228 +msgid "$(STARS) - star rating as number (-1 for rejected)" +msgstr "$(STARS) - valutazione in stelle come numero (-1 per respinto)" + +#: ../src/gui/gtkentry.c:229 +msgid "$(RATING.ICONS) - star/reject rating in icon form" +msgstr "$(RATING.ICONS) - valutazione in stelle/respinto sotto forma di icona" + +#: ../src/gui/gtkentry.c:230 +msgid "$(LABELS) - color labels as text" +msgstr "$(LABELS) - etichette colore in testo" + +#: ../src/gui/gtkentry.c:231 +msgid "$(LABELS.ICONS) - color labels as icons" +msgstr "$(LABELS.ICONS) - etichette colore come icone" + +#: ../src/gui/gtkentry.c:232 +msgid "$(ID) - image ID" +msgstr "$(ID) - ID immagine" + +#: ../src/gui/gtkentry.c:233 +msgid "$(TITLE) - title from metadata" +msgstr "$(TITLE) - Titolo dai metadata" + +#: ../src/gui/gtkentry.c:234 +msgid "$(DESCRIPTION) - description from metadata" +msgstr "$(DESCRIPTION) - Descrizione dai metadata" + +#: ../src/gui/gtkentry.c:235 +msgid "$(CREATOR) - creator from metadata" +msgstr "$(CREATOR) - Creatore dai metadata" + +#: ../src/gui/gtkentry.c:236 +msgid "$(PUBLISHER) - publisher from metadata" +msgstr "$(PUBLISHER) - Editore dai metadata" + +#: ../src/gui/gtkentry.c:237 +msgid "$(RIGHTS) - rights from metadata" +msgstr "$(RIGHTS) - Diritti dai metadata" + +#: ../src/gui/gtkentry.c:238 +msgid "$(USERNAME) - login name" +msgstr "$(USERNAME) - nome di login" + +#: ../src/gui/gtkentry.c:239 +msgid "$(FOLDER.PICTURES) - pictures folder" +msgstr "$(FOLDER.PICTURES) - cartella delle immagini" + +#: ../src/gui/gtkentry.c:240 +msgid "$(FOLDER.HOME) - home folder" +msgstr "$(FOLDER.HOME) - cartella home" + +#: ../src/gui/gtkentry.c:241 +msgid "$(FOLDER.DESKTOP) - desktop folder" +msgstr "$(FOLDER.DESKTOP) - cartella del desktop" + +#: ../src/gui/gtkentry.c:242 +msgid "$(OPENCL.ACTIVATED) - whether OpenCL is activated" +msgstr "$(OPENCL.ACTIVATED) - qualora OpenCL è attivato" + +#: ../src/gui/gtkentry.c:243 +msgid "$(CATEGORY0(category)) - subtag of level 0 in hierarchical tags" +msgstr "" +"$(CATEGORY0(category)) - Sotto-etichetta del livello 0 nelle etichette " +"gerarchiche" + +#: ../src/gui/gtkentry.c:244 +msgid "$(TAGS) - tags as set in metadata settings" +msgstr "$(TAGS) - Etichette come impostato nelle impostazioni metadati" + +#: ../src/gui/gtkentry.c:245 +msgid "$(DARKTABLE.NAME) - darktable name" +msgstr "$(DARKTABLE.NAME) - nome di darktable" + +#: ../src/gui/gtkentry.c:246 +msgid "$(DARKTABLE.VERSION) - current darktable version" +msgstr "$(DARKTABLE.VERSION) - versione corrente di darktable" + +#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:248 +msgid "grid" +msgstr "Griglia" + +#: ../src/gui/guides.c:31 +msgid "rules of thirds" +msgstr "Regola dei terzi" + +#: ../src/gui/guides.c:32 +msgid "metering" +msgstr "Misurazione" + +#: ../src/gui/guides.c:33 +msgid "perspective" +msgstr "Prospettiva" + +#: ../src/gui/guides.c:34 +msgid "diagonal method" +msgstr "Metodo diagonale" + +#: ../src/gui/guides.c:35 +msgid "harmonious triangles" +msgstr "Triangoli armonici" + +#: ../src/gui/guides.c:36 +msgid "golden sections" +msgstr "Sezioni auree" + +#: ../src/gui/guides.c:37 +msgid "golden spiral" +msgstr "Spirale aurea" + +#: ../src/gui/guides.c:38 +msgid "golden spiral sections" +msgstr "Sezioni spirale aurea" + +#: ../src/gui/guides.c:39 +msgid "golden mean (all guides)" +msgstr "Media aurea (tutte le guide)" + +#: ../src/gui/guides.c:218 +msgid "horizontal lines" +msgstr "Linee orizzontali" + +#: ../src/gui/guides.c:219 +msgid "number of horizontal guide lines" +msgstr "Numero di linee guida orizzontali" + +#: ../src/gui/guides.c:228 +msgid "vertical lines" +msgstr "Linee verticali" + +#: ../src/gui/guides.c:229 +msgid "number of vertical guide lines" +msgstr "Numero di linee guida verticali" + +#: ../src/gui/guides.c:238 +msgid "subdivisions" +msgstr "Suddivisione" + +#: ../src/gui/guides.c:239 +msgid "number of subdivisions per grid rectangle" +msgstr "Numero di suddivisioni per la griglia rettangolare" + +#. title +#: ../src/gui/guides.c:700 +msgid "global guide overlay settings" +msgstr "Impostazioni sovrimpressione della guida globale" + +#: ../src/gui/guides.c:710 ../src/gui/guides.c:719 ../src/gui/guides.c:727 +#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2494 +msgid "guide lines" +msgstr "Guide" + +#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2145 +msgid "flip" +msgstr "Rifletti" + +#: ../src/gui/guides.c:710 +msgid "flip guides" +msgstr "Rifletti le guide" + +#: ../src/gui/guides.c:713 +msgid "horizontally" +msgstr "Orizzontalmente" + +#: ../src/gui/guides.c:714 +msgid "vertically" +msgstr "Verticalmente" + +#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6234 ../src/iop/clipping.c:2149 +#: ../src/iop/colorbalance.c:1892 +msgid "both" +msgstr "Entrambi" + +#: ../src/gui/guides.c:720 +msgid "setup guide lines" +msgstr "Imposta linee guida" + +#: ../src/gui/guides.c:727 +msgid "overlay color" +msgstr "Colore sovrapposizione" + +#: ../src/gui/guides.c:727 +msgid "set overlay color" +msgstr "Scegli colore sovrimpressione" + +#: ../src/gui/guides.c:741 +msgid "" +"set the contrast between the lightest and darkest part of the guide overlays" +msgstr "" +"Imposta il contrasto tra tra la parte più luminosa e la più scura delle " +"linee guida sovrimpresse" + +#: ../src/gui/guides.c:847 ../src/gui/guides.c:893 +msgid "show guides" +msgstr "Mostra guide" + +#: ../src/gui/guides.c:902 +msgid "show guide overlay when this module has focus" +msgstr "Mostra guida sovrimpressa quando questo modulo ha il fuoco" + +#: ../src/gui/guides.c:904 +msgid "" +"change global guide settings\n" +"note that these settings are applied globally and will impact any module " +"that shows guide overlays" +msgstr "" +"Cambia le impostazioni della guida globale\n" +"Nota che queste impostazioni sono applicate globalmente ed impattano ogni " +"modulo Questo mostra sovrimpressioni guidate" + +#: ../src/gui/hist_dialog.c:222 +msgid "select parts to copy" +msgstr "Seleziona le parti da copiare" + +#: ../src/gui/hist_dialog.c:222 +msgid "select parts to paste" +msgstr "Seleziona le parti da incollare" + +#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:524 +msgid "select _all" +msgstr "Seleziona _tutto" + +#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:525 +msgid "select _none" +msgstr "Seleziona _nulla" + +#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:605 +#: ../src/gui/styles_dialog.c:627 +msgid "include" +msgstr "Includi" + +#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:681 +#: ../src/gui/styles_dialog.c:687 +msgid "item" +msgstr "Oggetto" + +#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:694 +#: ../src/gui/styles_dialog.c:703 +msgid "mask" +msgstr "maschera" + +#: ../src/gui/hist_dialog.c:360 +msgid "can't copy history out of unaltered image" +msgstr "Impossibile copiare la coda di sviluppo da un'immagine non modificata" + +#. grid headers +#: ../src/gui/import_metadata.c:417 +msgid "metadata presets" +msgstr "Preimpostazioni dei metadati" + +#: ../src/gui/import_metadata.c:420 +msgid "" +"metadata to be applied per default\n" +"double-click on a label to clear the corresponding entry\n" +"double-click on 'preset' to clear all entries" +msgstr "" +"Metadati da applicare in modo predefinito\n" +"Doppio click su un etichetta per ripulirne il contenuto\n" +"Doppio click su una 'preimpostazione' per ripulirle tutte" + +#: ../src/gui/import_metadata.c:430 +msgid "from XMP" +msgstr "Dall'XMP" + +#: ../src/gui/import_metadata.c:433 +msgid "" +"selected metadata are imported from image and override the default value.\n" +"this drives also the 'look for updated XMP files' and 'load sidecar file' " +"actions.\n" +"CAUTION: not selected metadata are cleaned up when XMP file is updated." +msgstr "" +"I metadati selezionati vengono importati dall'immagine e sovrascriveranno\n" +"quelli predefiniti. Questa opzione ha la precedenza su 'Verifica file XMP " +"aggiornati\n" +"all'avvio' e 'carica file sidecar'\n" +"ATTENZIONE: i metadati non selezionati verranno cancellati quando il file " +"XMP verrà aggiornato" + +#. tags +#: ../src/gui/import_metadata.c:469 +msgid "tag presets" +msgstr "Etichette dei preimpostazioni" + +#: ../src/gui/import_metadata.c:483 +msgid "comma separated list of tags" +msgstr "Lista delle etichette separate da virgola" + +#. language +#: ../src/gui/preferences.c:274 +msgid "interface language" +msgstr "Lingua interfaccia" + +#: ../src/gui/preferences.c:290 +msgid "double-click to reset to the system language" +msgstr "Doppio click per ripristinare alla lingua di sistema" + +#: ../src/gui/preferences.c:292 +msgid "" +"set the language of the user interface. the system default is marked with an " +"* (needs a restart)" +msgstr "" +"Imposta la lingua per l'interfaccia utente. Il sistema è impostato in modo " +"predefinito con un valore * (è necessario il riavvio)" + +#: ../src/gui/preferences.c:301 +msgid "theme" +msgstr "Tema" + +#: ../src/gui/preferences.c:331 +msgid "set the theme for the user interface" +msgstr "Imposta il tema dell'interfaccia utente" + +#: ../src/gui/preferences.c:344 ../src/gui/preferences.c:351 +msgid "use system font size" +msgstr "Usa la dimensione del carattere di sistema" + +#: ../src/gui/preferences.c:360 ../src/gui/preferences.c:367 +msgid "font size in points" +msgstr "Dimensione carattere in punti" + +#: ../src/gui/preferences.c:372 +msgid "GUI controls and text DPI" +msgstr "DPI dei controlli della GUI e del testo" + +#: ../src/gui/preferences.c:379 +msgid "" +"adjust the global GUI resolution to rescale controls, buttons, labels, etc.\n" +"increase for a magnified GUI, decrease to fit more content in window.\n" +"set to -1 to use the system-defined global resolution.\n" +"default is 96 DPI on most systems.\n" +"(needs a restart)." +msgstr "" +"Regola la risoluzione globale dell'interfaccia per ridimensionare i " +"controlli, i pulsanti, le etichette, ecc.\n" +"Aumentare il valore per ingrandire l'interfaccia, diminuire per includere un " +"maggior contenuto nello schermo.\n" +"Impostare a -1 per usare la risoluzione definita dal sistema.\n" +"Il valore predefinito è 96 DPI sulla maggior parte dei sistemi.\n" +"(Richiede un riavvio)." + +#. checkbox to allow user to modify theme with user.css +#: ../src/gui/preferences.c:388 +msgid "modify selected theme with CSS tweaks below" +msgstr "Modifica il tema selezionato con le modifiche al CSS sotto" + +#: ../src/gui/preferences.c:396 +msgid "modify theme with CSS keyed below (saved to user.css)" +msgstr "Modifico il tema con le chiavi CSS qui sotto (salvate in user.css)" + +#: ../src/gui/preferences.c:418 +msgctxt "usercss" +msgid "save CSS and apply" +msgstr "Salva e applica il CSS" + +#: ../src/gui/preferences.c:423 +msgid "click to save and apply the CSS tweaks entered in this editor" +msgstr "" +"Clicca per salvare e applicare le modifiche al CSS inserite in questo editor" + +#: ../src/gui/preferences.c:425 +msgid "open help page for CSS tweaks" +msgstr "apri la pagina di aiuto per le regolazioni CSS" + +#. load default text with some pointers +#: ../src/gui/preferences.c:446 +msgid "ERROR Loading user.css" +msgstr "ERRORE nel caricamento del .css utente" + +#. load default text +#: ../src/gui/preferences.c:455 +msgid "Enter CSS theme tweaks here" +msgstr "Inserisci qui le modifiche al CSS del tema" + +#: ../src/gui/preferences.c:491 +msgid "darktable preferences" +msgstr "Preferenze darktable" + +#: ../src/gui/preferences.c:559 +msgid "darktable needs to be restarted for settings to take effect" +msgstr "" +"Darktable richiede di esser riavviato affinché le impostazioni abbiano " +"effetto" + +#. exif +#: ../src/gui/preferences.c:818 ../src/gui/presets.c:658 +#: ../src/libs/metadata_view.c:139 +msgid "model" +msgstr "Modello" + +#: ../src/gui/preferences.c:822 ../src/gui/presets.c:666 +#: ../src/libs/metadata_view.c:140 +msgid "maker" +msgstr "Costruttore" + +#: ../src/gui/preferences.c:859 +msgid "search presets list" +msgstr "Cerca la lista delle preimpostazioni" + +#: ../src/gui/preferences.c:860 +msgid "" +"incrementally search the list of presets\n" +"press up or down keys to cycle through matches" +msgstr "" +"Ricerca in modo incrementale la lista delle preimpostazioni\n" +"Premi i tasti su o giù per spostarsi attraverso le combinazioni" + +#: ../src/gui/preferences.c:866 +msgctxt "preferences" +msgid "import..." +msgstr "Importa..." + +#: ../src/gui/preferences.c:870 +msgctxt "preferences" +msgid "export..." +msgstr "Esporta..." + +#: ../src/gui/preferences.c:1030 +#, c-format +msgid "failed to import preset %s" +msgstr "Non riesco ad importare la preimpostazione %s" + +#: ../src/gui/preferences.c:1041 +msgid "select preset(s) to import" +msgstr "Selezionare la/le preimpstazione/i da importare" + +#: ../src/gui/preferences.c:1042 ../src/libs/collect.c:425 +#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:930 +#: ../src/libs/import.c:1515 ../src/libs/import.c:1619 ../src/libs/styles.c:529 +msgid "_open" +msgstr "_apri" + +#: ../src/gui/preferences.c:1051 +msgid "darktable preset files" +msgstr "File delle preimpostazioni di Darktable" + +#: ../src/gui/preferences.c:1056 ../src/iop/lut3d.c:1591 +#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:946 +#: ../src/libs/styles.c:543 +msgid "all files" +msgstr "Tutti i file" + +#: ../src/gui/presets.c:61 +msgid "non-raw" +msgstr "Non-RAW" + +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:336 +msgid "raw" +msgstr "RAW" + +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:337 +msgid "HDR" +msgstr "HDR" + +#: ../src/gui/presets.c:61 ../src/iop/monochrome.c:77 ../src/libs/image.c:679 +#: ../src/libs/metadata_view.c:343 +msgid "monochrome" +msgstr "Monocromatico" + +#: ../src/gui/presets.c:153 +#, c-format +msgid "preset `%s' is write-protected, can't delete!" +msgstr "La preimpostazione '%s' è di sola lettura! Non puoi cancellarla!" + +#: ../src/gui/presets.c:159 ../src/gui/presets.c:463 ../src/libs/lib.c:238 +#: ../src/libs/modulegroups.c:3703 +msgid "delete preset?" +msgstr "Elimino impostazione?" + +#: ../src/gui/presets.c:160 ../src/gui/presets.c:464 ../src/libs/lib.c:239 +#: ../src/libs/modulegroups.c:3704 +#, c-format +msgid "do you really want to delete the preset `%s'?" +msgstr "Vuoi veramente eliminare la preimpostazione `%s'?" + +#. add new preset +#. create a shortcut for the new entry +#. then show edit dialog +#. clang-format on +#. create a shortcut for the new entry +#. then show edit dialog +#: ../src/gui/presets.c:202 ../src/gui/presets.c:1033 ../src/gui/presets.c:1036 +#: ../src/gui/presets.c:1039 ../src/libs/lib.c:188 ../src/libs/lib.c:205 +#: ../src/libs/lib.c:213 ../src/libs/lib.c:216 +msgid "new preset" +msgstr "Nuova preimpostazione" + +#: ../src/gui/presets.c:209 +msgid "please give preset a name" +msgstr "Per favore, dai un nome alla preimpostazione" + +#: ../src/gui/presets.c:214 +msgid "unnamed preset" +msgstr "Preimpostazione senza nome" + +#: ../src/gui/presets.c:243 +msgid "overwrite preset?" +msgstr "Sovrascrivo la preimpostazione?" + +#: ../src/gui/presets.c:244 +#, c-format +msgid "" +"preset `%s' already exists.\n" +"do you want to overwrite?" +msgstr "" +"La preimpostazione '%s' è già esistente.\n" +"Vuoi sovrascriverla?" + +#: ../src/gui/presets.c:422 ../src/imageio/storage/disk.c:198 +#: ../src/imageio/storage/gallery.c:150 ../src/imageio/storage/latex.c:146 +msgid "_select as output destination" +msgstr "_seleziona come destinazione di output" + +#: ../src/gui/presets.c:431 +#, c-format +msgid "preset %s was successfully exported" +msgstr "La preimpostazione %s è stata esportata con successo" + +#: ../src/gui/presets.c:559 +#, c-format +msgid "edit `%s' for module `%s'" +msgstr "Modifica '%s' per il modulo '%s'" + +#: ../src/gui/presets.c:563 +msgid "_export..." +msgstr "_Esporta..." + +#: ../src/gui/presets.c:564 ../src/libs/tagging.c:1489 +#: ../src/libs/tagging.c:1580 +msgid "_delete" +msgstr "_Elimina" + +#: ../src/gui/presets.c:588 +msgid "name of the preset" +msgstr "Nome della preimpostazione" + +#: ../src/gui/presets.c:597 +msgid "description or further information" +msgstr "Descrizione o ulteriori informazioni" + +#: ../src/gui/presets.c:601 +msgid "reset all module parameters to their default values" +msgstr "Reimposta tutti i parametri del modulo ai loro valori predefiniti" + +#: ../src/gui/presets.c:604 +msgid "" +"the parameters will be reset to their default values, which may be " +"automatically set based on image metadata" +msgstr "" +"I parametri verranno reimpostati ai loro valori predefiniti, che potrebbero " +"essere impostati automaticamente sulla base dei metadati dell'immagine" + +#: ../src/gui/presets.c:610 +msgid "auto apply this preset to matching images" +msgstr "" +"Applica automaticamente questo present alle\n" +"immagini che corrispondono a questi criteri:" + +#: ../src/gui/presets.c:614 +msgid "only show this preset for matching images" +msgstr "Mostra solo questa preimpostazione per le immagini corrispondenti" + +#: ../src/gui/presets.c:616 +msgid "" +"be very careful with this option. this might be the last time you see your " +"preset." +msgstr "" +"Fai molta attenzione con questa opzione. Potrebbe essere l'ultima volta che " +"vedi la tua preimpostazione." + +#: ../src/gui/presets.c:657 +#, no-c-format +msgid "string to match model (use % as wildcard)" +msgstr "Stringa per la corrispondenza del modello (usa % come jolly)" + +#: ../src/gui/presets.c:665 +#, no-c-format +msgid "string to match maker (use % as wildcard)" +msgstr "Stringa per la corrispondenza del Costruttore (usa % come jolly)" + +#: ../src/gui/presets.c:673 +#, no-c-format +msgid "string to match lens (use % as wildcard)" +msgstr "Stringa per la corrispondenza degli obiettivi (usa % come jolly)" + +#: ../src/gui/presets.c:683 +msgid "minimum ISO value" +msgstr "Valore ISO minimo" + +#: ../src/gui/presets.c:689 +msgid "" +"maximum ISO value\n" +"if left blank, it is equivalent to no upper limit" +msgstr "" +"Valore ISO massimo\n" +"se lasciato in bianco, equivale a nessun limite massimo" + +#: ../src/gui/presets.c:702 +msgid "minimum exposure time" +msgstr "Tempo di esposizione minimo" + +#: ../src/gui/presets.c:703 +msgid "maximum exposure time" +msgstr "Tempo di esposizione massimo" + +#: ../src/gui/presets.c:719 +msgid "minimum aperture value" +msgstr "Apertura diaframma minima" + +#: ../src/gui/presets.c:720 +msgid "maximum aperture value" +msgstr "Apertura diaframma massima" + +#: ../src/gui/presets.c:738 +msgid "minimum focal length" +msgstr "Lunghezza focale minima" + +#: ../src/gui/presets.c:739 +msgid "maximum focal length" +msgstr "Lunghezza focale massima" + +#. raw/hdr/ldr/mono/color +#: ../src/gui/presets.c:747 +msgid "format" +msgstr "Formato" + +#: ../src/gui/presets.c:752 +msgid "select image types you want this preset to be available for" +msgstr "" +"Seleziona i tipi di immagine per le quali questa preimpostazione sarà " +"disponibile" + +#: ../src/gui/presets.c:765 ../src/libs/filtering.c:1263 +msgid "and" +msgstr "e" + +#: ../src/gui/presets.c:809 ../src/gui/presets.c:861 +msgid "∞" +msgstr "∞" + +#: ../src/gui/presets.c:977 +#, c-format +msgid "preset `%s' is write-protected! can't edit it!" +msgstr "La preimpostazione '%s' è di sola lettura! Non puoi modificarla!" + +#: ../src/gui/presets.c:1001 ../src/libs/lib.c:158 +msgid "update preset?" +msgstr "Aggiorno la preimpostazione?" + +#: ../src/gui/presets.c:1002 ../src/libs/lib.c:159 +#, c-format +msgid "do you really want to update the preset `%s'?" +msgstr "Vuoi veramente aggiornare la preimpostazione `%s'?" + +#: ../src/gui/presets.c:1131 +msgid "(first)" +msgstr "(primo)" + +#: ../src/gui/presets.c:1131 +msgid "(last)" +msgstr "(ultimo)" + +#: ../src/gui/presets.c:1163 +#, c-format +msgid "" +"preset %s\n" +"%s" +msgstr "" +"Preimpostazione %s\n" +"%s" + +#: ../src/gui/presets.c:1164 +msgid "no presets" +msgstr "Nessuna preimpostazione" + +#: ../src/gui/presets.c:1199 ../src/iop/basecurve.c:575 +#: ../src/iop/basecurve.c:579 ../src/iop/basecurve.c:582 +msgid "display-referred default" +msgstr "Default riferito allo schermo" + +#: ../src/gui/presets.c:1201 ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:400 ../src/iop/channelmixerrgb.c:403 +#: ../src/iop/exposure.c:319 ../src/iop/exposure.c:323 +#: ../src/iop/exposure.c:326 ../src/iop/filmicrgb.c:3311 +#: ../src/iop/filmicrgb.c:3315 ../src/iop/filmicrgb.c:3318 +#: ../src/iop/sigmoid.c:240 ../src/iop/sigmoid.c:243 ../src/iop/sigmoid.c:245 +msgid "scene-referred default" +msgstr "Valori predefiniti riferiti alla scena" + +#: ../src/gui/presets.c:1405 ../src/libs/modulegroups.c:3783 +#: ../src/libs/modulegroups.c:3792 +msgid "manage module layouts" +msgstr "Gestisci la disposizione dei moduli" + +#: ../src/gui/presets.c:1414 +msgid "manage quick presets" +msgstr "Gestisci le preimpostazioni rapide" + +#: ../src/gui/presets.c:1598 +msgid "manage quick presets list..." +msgstr "Gestione lista rapida delle preimpostazioni..." + +#: ../src/gui/presets.c:1739 +msgid "(default)" +msgstr "(Predefinito)" + +#: ../src/gui/presets.c:1766 +msgid "disabled: wrong module version" +msgstr "Disabilitato: versione del modulo errata" + +#: ../src/gui/presets.c:1788 ../src/libs/lib.c:551 +msgid "edit this preset.." +msgstr "Modifica questa preimpostazione..." + +#: ../src/gui/presets.c:1793 ../src/libs/lib.c:555 +msgid "delete this preset" +msgstr "Elimina questa preimpostazione" + +#: ../src/gui/presets.c:1800 ../src/libs/lib.c:563 +msgid "store new preset.." +msgstr "Salva nuova preimpostazione..." + +#: ../src/gui/presets.c:1808 ../src/libs/lib.c:576 +msgid "update preset" +msgstr "Aggiorna la preimpostazione" + +#: ../src/gui/styles_dialog.c:221 ../src/libs/styles.c:437 +#: ../src/libs/styles.c:622 +msgid "overwrite style?" +msgstr "Sovrascrivo lo stile?" + +#: ../src/gui/styles_dialog.c:222 +#, c-format +msgid "" +"style `%s' already exists.\n" +"do you want to overwrite?" +msgstr "" +"Stile '%s' già esistente.\n" +"Vuoi sovrascriverlo?" + +#: ../src/gui/styles_dialog.c:251 ../src/gui/styles_dialog.c:323 +msgid "please give style a name" +msgstr "Per favore, dai un nome allo stile" + +#: ../src/gui/styles_dialog.c:255 ../src/gui/styles_dialog.c:327 +msgid "unnamed style" +msgstr "Stile senza nome" + +#: ../src/gui/styles_dialog.c:312 +#, c-format +msgid "style %s was successfully saved" +msgstr "Lo stile %s è stato salvato con successo" + +#: ../src/gui/styles_dialog.c:512 +msgid "edit style" +msgstr "Modifica stile" + +#: ../src/gui/styles_dialog.c:513 +msgid "duplicate style" +msgstr "Duplica stile" + +#: ../src/gui/styles_dialog.c:514 +msgid "creates a duplicate of the style before applying changes" +msgstr "Crea un duplicato dello stile prima di applicare le modifiche" + +#: ../src/gui/styles_dialog.c:518 +msgid "create new style" +msgstr "Crea un nuovo stile" + +#: ../src/gui/styles_dialog.c:557 +msgid "enter a name for the new style" +msgstr "Inserisci il nome del nuovo stile" + +#: ../src/gui/styles_dialog.c:565 +msgid "enter a description for the new style, this description is searchable" +msgstr "Inserisci la descrizione del nuovo stile, la descrizione è ricercabile" + +#: ../src/gui/styles_dialog.c:605 +msgid "keep" +msgstr "tieni" + +#: ../src/gui/styles_dialog.c:832 +msgid "can't create style out of unaltered image" +msgstr "Impossibile creare uno stile da un'immagine non modificata" + +#: ../src/imageio/imageio.c:816 +#, c-format +msgid "" +"failed to allocate memory for %s, please lower the threads used for export " +"or buy more memory." +msgstr "" +"Fallita l'allocazione della memoria per %s, diminuisci il numero di thread " +"usati per l'esportazione o aggiungi più memoria." + +#: ../src/imageio/imageio.c:818 +msgctxt "noun" +msgid "thumbnail export" +msgstr "Esporta anteprima" + +#: ../src/imageio/imageio.c:818 +msgctxt "noun" +msgid "export" +msgstr "Esporta" + +#: ../src/imageio/imageio.c:831 +#, c-format +msgid "cannot find the style '%s' to apply during export." +msgstr "Impossibile trovare lo stile '%s' da applicare per l'esportazione." + +#: ../src/imageio/imageio_libraw.c:295 +msgid "" +"<span foreground='red'><b>WARNING</b></span>: camera is not fully supported!" +msgstr "" +"<span foreground='red'><b>AVVISO</b></span>: la fotocamera non è pienamente " +"supportata!" + +#: ../src/imageio/imageio_libraw.c:297 +#, c-format +msgid "" +"colors for `%s' could be misrepresented,\n" +"and edits might not be compatible with future versions." +msgstr "" +"colori per `%s' potrebbero essere rappresentati erroneamente,\n" +"e le modifiche potrebbero non essere compatibili con versioni future." + +#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:641 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 +msgid "8 bit" +msgstr "8 bit" + +#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:567 +msgid "10 bit" +msgstr "10 bit" + +#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:567 +msgid "12 bit" +msgstr "12 bit" + +#: ../src/imageio/format/avif.c:110 ../src/imageio/format/webp.c:416 +msgid "lossless" +msgstr "Senza perdita" + +#: ../src/imageio/format/avif.c:112 ../src/imageio/format/webp.c:416 +msgid "lossy" +msgstr "Con perdita" + +#: ../src/imageio/format/avif.c:463 +msgid "invalid AVIF bit depth!" +msgstr "Profondità di bit AVIF invalida!" + +#. Bit depth combo box +#: ../src/imageio/format/avif.c:800 ../src/imageio/format/exr.cc:601 +#: ../src/imageio/format/jxl.c:566 ../src/imageio/format/pdf.c:661 +#: ../src/imageio/format/png.c:639 ../src/imageio/format/tiff.c:900 +#: ../src/imageio/format/xcf.c:354 +msgid "bit depth" +msgstr "Profondità di bit" + +#: ../src/imageio/format/avif.c:813 +msgid "color information stored in an image, higher is better" +msgstr "Informazioni colore memorizzate in un'immagine, maggiori è meglio" + +#. +#. * Color mode combo box +#. +#. shortfile option combo box +#: ../src/imageio/format/avif.c:820 ../src/imageio/format/tiff.c:944 +msgid "B&W as grayscale" +msgstr "B/N come scala di grigio" + +#: ../src/imageio/format/avif.c:821 ../src/imageio/format/tiff.c:945 +msgid "saving as grayscale will reduce the size for black & white images" +msgstr "" +"Salvare come scala di grigi ridurrà la dimensione delle immagini in bianco e " +"nero" + +#. +#. * Tiling combo box +#. +#: ../src/imageio/format/avif.c:832 +msgid "tiling" +msgstr "Tiling" + +#: ../src/imageio/format/avif.c:833 +msgid "" +"tile an image into segments.\n" +"\n" +"makes encoding faster, but increases the file size. the loss of image " +"quality is negligible." +msgstr "" +"Suddividi un immagine in tasselli.\n" +"\n" +"Rende la codifica più veloce, ma aumenta la dimensione del file. L'impatto " +"sulla riduzione della qualità è trascurabile." + +#. compression +#. Compression method combo box +#: ../src/imageio/format/avif.c:850 ../src/imageio/format/exr.cc:611 +#: ../src/imageio/format/pdf.c:676 ../src/imageio/format/png.c:653 +#: ../src/imageio/format/tiff.c:923 ../src/imageio/format/webp.c:414 +#: ../src/libs/masks.c:111 +msgid "compression" +msgstr "Compressione" + +#: ../src/imageio/format/avif.c:858 +msgid "the compression for the image" +msgstr "La compressione per l'immagine" + +#. min +#. max +#. step +#. default +#. digits +#: ../src/imageio/format/avif.c:878 ../src/imageio/format/j2k.c:679 +#: ../src/imageio/format/jpeg.c:584 ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/webp.c:425 ../src/libs/camera.c:564 +msgid "quality" +msgstr "Qualità" + +#: ../src/imageio/format/avif.c:881 +msgid "" +"the quality of an image, less quality means fewer details.\n" +"\n" +"pixel format is controlled by quality:\n" +"\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" +msgstr "" +"La qualità di una immagine, minor qualità significa minor dettagli.\n" +"\n" +"formato del pizel controllato dalla qualità:\n" +"\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" + +#: ../src/imageio/format/copy.c:109 ../src/libs/copy_history.c:370 +#: ../src/libs/image.c:647 +msgid "copy" +msgstr "Copia" + +#: ../src/imageio/format/copy.c:124 +msgid "" +"do a 1:1 copy of the selected files.\n" +"the global options below do not apply!" +msgstr "" +"Esegui una copia 1:1 dei file selezionati.\n" +"Le impostazioni globali sottostanti non verranno applicate!" + +#: ../src/imageio/format/exr.cc:217 +msgid "the selected output profile doesn't work well with EXR" +msgstr "Il profilo di output selezionato non funziona bene con EXR" + +#: ../src/imageio/format/exr.cc:576 +msgid "OpenEXR" +msgstr "OpenEXR" + +#: ../src/imageio/format/exr.cc:603 +msgid "16 bit (float)" +msgstr "16-bit (virgola mobile)" + +#: ../src/imageio/format/exr.cc:603 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 +msgid "32 bit (float)" +msgstr "32-bit (virgola mobile)" + +#: ../src/imageio/format/exr.cc:613 ../src/imageio/format/pdf.c:682 +#: ../src/imageio/format/tiff.c:924 +msgid "uncompressed" +msgstr "Non compresso" + +#: ../src/imageio/format/exr.cc:614 +msgid "RLE" +msgstr "RLE" + +#: ../src/imageio/format/exr.cc:615 +msgid "ZIPS" +msgstr "ZIPS" + +#: ../src/imageio/format/exr.cc:616 +msgid "ZIP" +msgstr "ZIP" + +#: ../src/imageio/format/exr.cc:617 +msgid "PIZ" +msgstr "PIZ" + +#: ../src/imageio/format/exr.cc:618 +msgid "PXR24" +msgstr "PXR24" + +#: ../src/imageio/format/exr.cc:619 +msgid "B44" +msgstr "B44" + +#: ../src/imageio/format/exr.cc:620 +msgid "B44A" +msgstr "B44A" + +#: ../src/imageio/format/exr.cc:621 +msgid "DWAA" +msgstr "DWAA" + +#: ../src/imageio/format/exr.cc:622 +msgid "DWAB" +msgstr "DWAB" + +#: ../src/imageio/format/j2k.c:648 +msgid "JPEG 2000 (12-bit)" +msgstr "JPEG 2000 (12-bit)" + +#: ../src/imageio/format/j2k.c:684 +msgid "DCP mode" +msgstr "Modo DCP" + +#: ../src/imageio/format/j2k.c:687 +msgid "Cinema2K, 24FPS" +msgstr "Cinema2k, 24fps" + +#: ../src/imageio/format/j2k.c:688 +msgid "Cinema2K, 48FPS" +msgstr "Cinema2k, 48fps" + +#: ../src/imageio/format/j2k.c:689 +msgid "Cinema4K, 24FPS" +msgstr "Cinema4k, 24fps" + +#: ../src/imageio/format/jpeg.c:546 +msgid "JPEG (8-bit)" +msgstr "JPEG (8-bit)" + +#: ../src/imageio/format/jpeg.c:594 +msgid "chroma subsampling" +msgstr "Sottocampionamento cromaticità" + +#: ../src/imageio/format/jpeg.c:595 +msgid "" +"chroma subsampling setting for JPEG encoder.\n" +"auto - use subsampling determined by the quality value\n" +"4:4:4 - no chroma subsampling\n" +"4:4:0 - color sampling rate halved vertically\n" +"4:2:2 - color sampling rate halved horizontally\n" +"4:2:0 - color sampling rate halved horizontally and vertically" +msgstr "" +"Impostazioni di sottocampionamento della cromaticità per l'encoder JPEG.\n" +"auto - usa sottocampionamento determinato dal valore della qualità\n" +"4:4:4 - nessun sottocampionamento della cromaticità\n" +"4:4:0 - frequenza del campionamento del colore dimezzata verticalmente\n" +"4:2:2 - frequenza del campionamento del colore dimezzata orizzontalmente\n" +"4:2:0 - frequenza del campionamento del colore dimezzata orizzontalmente e " +"verticalmente" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:4" +msgstr "4:4:4" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:0" +msgstr "4:4:0" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:2" +msgstr "4:2:2" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:0" +msgstr "4:2:0" + +#: ../src/imageio/format/jxl.c:567 ../src/imageio/format/pdf.c:81 +#: ../src/imageio/format/png.c:641 ../src/imageio/format/tiff.c:904 +#: ../src/imageio/format/xcf.c:357 +msgid "16 bit" +msgstr "16 bit" + +#. Pixel format combo box +#: ../src/imageio/format/jxl.c:573 ../src/imageio/format/tiff.c:909 +msgid "pixel type" +msgstr "Tipo di pixel" + +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 +msgid "unsigned integer" +msgstr "intero assoluto" + +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 +msgid "floating point" +msgstr "Virgola mobile" + +#: ../src/imageio/format/jxl.c:591 +msgid "" +"the quality of the output image\n" +"0-29 = very lossy\n" +"30-99 = JPEG quality comparable\n" +"100 = lossless (integer bit depth only)" +msgstr "" +"La qualità dell'immagine di output\n" +"0-29 = con molta perdita\n" +"30-99 = qualità comparabile a JPEG \n" +"100 = lossless (solo profondità in bit interi)" + +#: ../src/imageio/format/jxl.c:600 +msgid "encoding color profile" +msgstr "Profilo colore di codifica" + +#: ../src/imageio/format/jxl.c:601 +msgid "" +"the color profile used by the encoder\n" +"permit internal XYB color space conversion for more efficient lossy " +"compression,\n" +"or ensure no conversion to keep original image color space (implied for " +"lossless)" +msgstr "" +"Il profilo colore usato dal dall'encoder\n" +"permetti la conversione dello spazio colore XYB interno per una compressione " +"lossy più efficiente,\n" +"o garantisce nessuna conversione per tenere lo spazio colore originale " +"(implicito per lossless)" + +#: ../src/imageio/format/jxl.c:604 +msgid "internal" +msgstr "Interno" + +#: ../src/imageio/format/jxl.c:604 ../src/libs/duplicate.c:405 +#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:840 +msgid "original" +msgstr "Originale" + +#: ../src/imageio/format/jxl.c:618 +msgid "encoding effort" +msgstr "Sforzo di codifica" + +#: ../src/imageio/format/jxl.c:619 +msgid "" +"the effort used to encode the image, higher efforts will have better results " +"at the expense of longer encoding times" +msgstr "" +"Lo sforzo usato per codificare l'immagine, elevati sforzi daranno migliori " +"risultati a costo di tempi di codifica più lunghi" + +#: ../src/imageio/format/jxl.c:630 +msgid "decoding speed" +msgstr "velocità di decodifica" + +#: ../src/imageio/format/jxl.c:631 +msgid "the preferred decoding speed with some sacrifice of quality" +msgstr "" +"la velocità di decodifica preferita con qualche sacrificio per la qualità" + +#: ../src/imageio/format/pdf.c:200 ../src/imageio/format/pdf.c:480 +msgid "invalid paper size" +msgstr "Formato carta non valido" + +#: ../src/imageio/format/pdf.c:207 +msgid "invalid border size, using 0" +msgstr "Dimensione bordo invalida, utilizzo 0" + +#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:460 +#: ../src/imageio/storage/email.c:187 ../src/imageio/storage/gallery.c:409 +#: ../src/imageio/storage/gallery.c:450 ../src/imageio/storage/piwigo.c:1245 +#, c-format +msgid "could not export to file `%s'!" +msgstr "Impossibile esportare il file '%s'!" + +#: ../src/imageio/format/pdf.c:409 +msgid "PDF" +msgstr "PDF" + +#: ../src/imageio/format/pdf.c:577 +msgid "enter the title of the PDF" +msgstr "Inserire il titolo del PDF" + +#. paper size +#. // papers +#: ../src/imageio/format/pdf.c:585 ../src/libs/print_settings.c:2510 +msgid "paper size" +msgstr "Formato carta" + +#: ../src/imageio/format/pdf.c:586 +msgid "" +"paper size of the PDF\n" +"either one from the list or \"<width> [unit] x <height> <unit>\"\n" +"example: 210 mm x 2.97 cm" +msgstr "" +"Dimensione foglio del PDF\n" +"Uno dalla lista oppure \"<width> [unità di misura] x <height> [unità di " +"misura]\n" +"Esempio: 210 mm x 2.97 cm" + +#. orientation +#: ../src/imageio/format/pdf.c:600 +msgid "page orientation" +msgstr "Orientazione pagina" + +#: ../src/imageio/format/pdf.c:601 +msgid "paper orientation of the PDF" +msgstr "Orientamento PDF" + +#. border +#: ../src/imageio/format/pdf.c:609 ../src/imageio/format/pdf.c:611 +msgid "border" +msgstr "Bordo" + +#: ../src/imageio/format/pdf.c:612 +msgid "" +"empty space around the PDF\n" +"format: size + unit\n" +"examples: 10 mm, 1 inch" +msgstr "" +"Spazio vuoto intorno al PDF\n" +"Formato: dimensione + unità\n" +"Esempi: 10 mm, 1 pollice" + +#. dpi +#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1218 +#: ../src/libs/export.c:1246 +msgid "dpi" +msgstr "DPI" + +#: ../src/imageio/format/pdf.c:625 +msgid "dpi of the images inside the PDF" +msgstr "DPI delle immagini nel PDF" + +#. rotate images yes|no +#: ../src/imageio/format/pdf.c:631 +msgid "rotate images" +msgstr "Ruota immagini" + +#: ../src/imageio/format/pdf.c:632 +msgid "" +"images can be rotated to match the PDF orientation to waste less space when " +"printing" +msgstr "" +"Le immagini possono essere ruotate per combaciare con l'orientazione del PDF " +"in maniera tale da sprecare meno spazio quando si stampa" + +#. pages all|single images|contact sheet +#: ../src/imageio/format/pdf.c:641 +msgid "TODO: pages" +msgstr "DA FARE: pagine" + +#: ../src/imageio/format/pdf.c:642 +msgid "what pages should be added to the PDF" +msgstr "Quali pagine dovrebbero essere aggiunte al file PDF" + +#: ../src/imageio/format/pdf.c:645 +msgid "single images" +msgstr "Immagini singole" + +#: ../src/imageio/format/pdf.c:645 +msgid "contact sheet" +msgstr "Foglio contatto" + +#. TODO +#. embedded icc profile yes|no +#: ../src/imageio/format/pdf.c:651 +msgid "embed ICC profiles" +msgstr "Incorpora profili icc" + +#: ../src/imageio/format/pdf.c:652 +msgid "images can be tagged with their ICC profile" +msgstr "Le immagini possono essere taggate con il loro profilo ICC" + +#: ../src/imageio/format/pdf.c:671 +msgid "bits per channel of the embedded images" +msgstr "Bit per canale delle immagini incorporate" + +#: ../src/imageio/format/pdf.c:677 +msgid "" +"method used for image compression\n" +"uncompressed -- fast but big files\n" +"deflate -- smaller files but slower" +msgstr "" +"Metodo usato per la compressione immagine\n" +"Non compresso -- veloce ma fornisce file grandi\n" +"Deflazione -- file piccoli ma più lento" + +#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:924 +msgid "deflate" +msgstr "Deflate" + +#. image mode normal|draft|debug +#: ../src/imageio/format/pdf.c:687 +msgid "image mode" +msgstr "Modo immagine" + +#: ../src/imageio/format/pdf.c:688 +msgid "" +"normal -- just put the images into the PDF\n" +"draft -- images are replaced with boxes\n" +"debug -- only show the outlines and bounding boxes" +msgstr "" +"Normale -- inserisce le immagini nel PDF\n" +"Bozza -- le immagini verranno sostituite con dei quadrati\n" +"Debug -- mostra solamente le sagome ed i bordi" + +#: ../src/imageio/format/pdf.c:693 +msgid "normal" +msgstr "Normale" + +#: ../src/imageio/format/pdf.c:693 +msgid "draft" +msgstr "Bozza" + +#: ../src/imageio/format/pdf.c:693 +msgid "debug" +msgstr "Debug" + +#: ../src/imageio/format/ppm.c:111 +msgid "PPM (16-bit)" +msgstr "PPM (16-bit)" + +#: ../src/imageio/format/tiff.c:246 +msgid "not a B&W image, will not export as grayscale" +msgstr "non un'immagine in B&N, non verrà esportata in scala di grigi" + +#: ../src/imageio/format/tiff.c:925 +msgid "deflate with predictor" +msgstr "Deflate con predittore" + +#: ../src/imageio/format/tiff.c:935 +msgid "compression level" +msgstr "Livello di compressione" + +#: ../src/imageio/format/webp.c:426 +msgid "" +"for lossy, 0 gives the smallest size and 100 the best quality.\n" +"for lossless, 0 is the fastest but gives larger files compared\n" +"to the slowest 100." +msgstr "" +"Per lossy, 0 da le minori dimensioni e 100 la miglio qualità.\n" +"Per lossless, 0 è il più veloce ma a confronto genera file più pesanti\n" +"del più lento 100." + +#: ../src/imageio/format/webp.c:436 +msgid "image hint" +msgstr "Suggerimento immagine" + +#: ../src/imageio/format/webp.c:437 +msgid "" +"image characteristics hint for the underlying encoder.\n" +"picture: digital picture, like portrait, inner shot\n" +"photo: outdoor photograph, with natural lighting\n" +"graphic: discrete tone image (graph, map-tile etc)" +msgstr "" +"Suggerimenti sulle caratteristiche dell'immagine per la codifica.\n" +"Immagine: immagine digitale, ad esempio ritratto, scatto in interni\n" +"Fotografia: fotografia in esterni, con illuminazione naturale\n" +"Grafica: immagine con toni separati (diagramma, tessera di una mappa, ecc.)" + +#: ../src/imageio/format/webp.c:442 +msgid "picture" +msgstr "Immagine" + +#: ../src/imageio/format/webp.c:442 +msgid "photo" +msgstr "Fotografia" + +#: ../src/imageio/format/webp.c:442 +msgid "graphic" +msgstr "Grafica" + +#: ../src/imageio/format/xcf.c:314 +msgid "XCF" +msgstr "XCF" + +#: ../src/imageio/storage/disk.c:74 ../src/libs/export.c:1119 +msgid "file on disk" +msgstr "File su disco" + +#: ../src/imageio/storage/disk.c:251 ../src/imageio/storage/gallery.c:204 +#: ../src/imageio/storage/latex.c:191 +msgid "" +"enter the path where to put exported images\n" +"variables support bash like string manipulation\n" +"type '$(' to activate the completion and see the list of variables" +msgstr "" +"Inserisci il percorso dove salvare le immagini esportate\n" +"le variabili supportano stringhe di manipolazione come quelle di bash\n" +"digita '$(' per attivare il completamento e vedere la lista delle variabili" + +#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/piwigo.c:1122 +msgid "on conflict" +msgstr "Sul conflitto" + +#: ../src/imageio/storage/disk.c:268 +msgid "create unique filename" +msgstr "Crea nome file unico" + +#. DT_COPY_HISTORY_APPEND +#: ../src/imageio/storage/disk.c:269 ../src/imageio/storage/piwigo.c:1126 +#: ../src/libs/copy_history.c:404 ../src/libs/image.c:670 +#: ../src/libs/styles.c:854 +msgid "overwrite" +msgstr "Sovrascrivi" + +#: ../src/imageio/storage/disk.c:270 +msgid "overwrite if changed" +msgstr "Sovrascrivi se cambiato" + +#: ../src/imageio/storage/disk.c:271 ../src/imageio/storage/piwigo.c:1124 +msgid "skip" +msgstr "Salta" + +#: ../src/imageio/storage/disk.c:371 ../src/imageio/storage/gallery.c:326 +#: ../src/imageio/storage/latex.c:289 +#, c-format +msgid "could not create directory `%s'!" +msgstr "Impossibile creare la directory '%s'!" + +#: ../src/imageio/storage/disk.c:382 +#, c-format +msgid "could not write to directory `%s'!" +msgstr "Impossibile scrivere nella directory '%s'!" + +#: ../src/imageio/storage/disk.c:419 +#, c-format +msgid "%d/%d skipping `%s'" +msgid_plural "%d/%d skipping `%s'" +msgstr[0] "%d/%d saltando `%s'" +msgstr[1] "%d/%d saltando `%s'" + +#: ../src/imageio/storage/disk.c:441 +#, c-format +msgid "%d/%d skipping (not modified since export) `%s'" +msgid_plural "%d/%d skipping (not modified since export) `%s'" +msgstr[0] "%d/%d saltando (non modificata dall'ultima esportazione) `%s'" +msgstr[1] "%d/%d saltando (non modificata dall'ultima esportazione) `%s'" + +#: ../src/imageio/storage/disk.c:465 ../src/imageio/storage/email.c:194 +#: ../src/imageio/storage/gallery.c:458 ../src/imageio/storage/latex.c:377 +#, c-format +msgid "%d/%d exported to `%s'" +msgid_plural "%d/%d exported to `%s'" +msgstr[0] "%d/%d esportati in `%s'" +msgstr[1] "%d/%d esportati in `%s'" + +#: ../src/imageio/storage/disk.c:530 +msgid "" +"you are going to export in overwrite mode, this will overwrite any existing " +"images\n" +"\n" +"do you really want to continue?" +msgstr "" +"Stai esportando in modalità sovrascrittura, questo sovrascrive ogni " +"immagine \n" +"\n" +"Sei sicuro di voler continuare?" + +#: ../src/imageio/storage/email.c:57 +msgid "send as email" +msgstr "Invia tramite email" + +#. Unlikely in normal Windows installations, but let's notify the user if it happens +#: ../src/imageio/storage/email.c:265 +msgid "could not open mapi32.dll" +msgstr "Impossibile aprire mapi32.dll" + +#. Even more unlikely +#: ../src/imageio/storage/email.c:275 +msgid "could not get SendMail function" +msgstr "Impossibile reperire la funzione SendMail (invia email)" + +#: ../src/imageio/storage/email.c:319 ../src/imageio/storage/email.c:409 +msgid "images exported from darktable" +msgstr "Immagini esportate da darktable" + +#: ../src/imageio/storage/email.c:388 ../src/imageio/storage/email.c:467 +msgid "could not launch email client!" +msgstr "Impossibile lanciare il client email!" + +#: ../src/imageio/storage/gallery.c:76 +msgid "website gallery" +msgstr "Galleria web" + +#: ../src/imageio/storage/gallery.c:224 +msgid "enter the title of the website" +msgstr "Inserisci il titolo del sito web" + +#: ../src/imageio/storage/latex.c:72 +msgid "LaTeX book template" +msgstr "Modello libro LaTeX" + +#: ../src/imageio/storage/latex.c:209 +msgid "enter the title of the book" +msgstr "Inserisci il titolo del libro" + +#: ../src/imageio/storage/piwigo.c:532 +msgid "authenticated" +msgstr "Autenticato" + +#: ../src/imageio/storage/piwigo.c:543 ../src/imageio/storage/piwigo.c:559 +#: ../src/imageio/storage/piwigo.c:572 +msgid "not authenticated" +msgstr "Non autenticato" + +#: ../src/imageio/storage/piwigo.c:549 +msgid "not authenticated, cannot reach server" +msgstr "Non autenticato, server non raggiungibile" + +#: ../src/imageio/storage/piwigo.c:602 ../src/imageio/storage/piwigo.c:691 +msgid "create new album" +msgstr "Crea un nuovo album" + +#: ../src/imageio/storage/piwigo.c:692 +msgid "---" +msgstr "---" + +#: ../src/imageio/storage/piwigo.c:742 +msgid "cannot refresh albums" +msgstr "Non posso aggiornare l'album" + +#: ../src/imageio/storage/piwigo.c:959 +msgid "Piwigo" +msgstr "Piwigo" + +#: ../src/imageio/storage/piwigo.c:985 +msgid "accounts" +msgstr "Utenze" + +#: ../src/imageio/storage/piwigo.c:1004 ../src/imageio/storage/piwigo.c:1013 +msgid "server" +msgstr "Server" + +#: ../src/imageio/storage/piwigo.c:1007 +msgid "" +"the server name\n" +"default protocol is https\n" +"specify insecure protocol http:// explicitly if that protocol is required" +msgstr "" +"Il nome del server\n" +"Il protocollo predefinito è https\n" +"Specifica explicitamente il protocollo insicuro http:// se è obbligatorio" + +#: ../src/imageio/storage/piwigo.c:1023 ../src/imageio/storage/piwigo.c:1030 +msgid "user" +msgstr "Utente" + +#: ../src/imageio/storage/piwigo.c:1038 ../src/imageio/storage/piwigo.c:1043 +msgid "password" +msgstr "Password" + +#. login button +#: ../src/imageio/storage/piwigo.c:1048 +msgid "login" +msgstr "Login" + +#: ../src/imageio/storage/piwigo.c:1049 +msgid "Piwigo login" +msgstr "Piwigo login" + +#. permissions list +#: ../src/imageio/storage/piwigo.c:1065 +msgid "visible to" +msgstr "Visibile a" + +#: ../src/imageio/storage/piwigo.c:1067 +msgid "everyone" +msgstr "Chiunque" + +#: ../src/imageio/storage/piwigo.c:1068 +msgid "contacts" +msgstr "Contatti" + +#: ../src/imageio/storage/piwigo.c:1069 +msgid "friends" +msgstr "Amici" + +#: ../src/imageio/storage/piwigo.c:1070 +msgid "family" +msgstr "Famiglia" + +#: ../src/imageio/storage/piwigo.c:1071 +msgid "you" +msgstr "Tu" + +#. Available albums +#: ../src/imageio/storage/piwigo.c:1078 +msgid "album" +msgstr "Album" + +#: ../src/imageio/storage/piwigo.c:1085 +msgid "refresh album list" +msgstr "Aggiorna lista album" + +#. Album title +#: ../src/imageio/storage/piwigo.c:1105 +msgid "new album" +msgstr "Nuovo album" + +#. Available albums +#: ../src/imageio/storage/piwigo.c:1114 +msgid "parent album" +msgstr "Album genitore" + +#: ../src/imageio/storage/piwigo.c:1118 +msgid "click login button to start" +msgstr "Premi login per iniziare" + +#: ../src/imageio/storage/piwigo.c:1123 +msgid "don't check" +msgstr "Non controllare" + +#: ../src/imageio/storage/piwigo.c:1125 +msgid "update metadata" +msgstr "Aggiorna i metadati" + +#: ../src/imageio/storage/piwigo.c:1264 +msgid "cannot create a new Piwigo album!" +msgstr "Impossibile creare un nuovo album Piwigo!" + +#: ../src/imageio/storage/piwigo.c:1283 +msgid "could not update to Piwigo!" +msgstr "non posso aggiornare su Piwigo!" + +#: ../src/imageio/storage/piwigo.c:1299 +msgid "could not upload to Piwigo!" +msgstr "Impossibile caricare su piwigo!" + +#: ../src/imageio/storage/piwigo.c:1328 +#, c-format +msgid "%d/%d skipped (already exists)" +msgstr "%d/%d saltato (esiste già)" + +#: ../src/imageio/storage/piwigo.c:1334 +#, c-format +msgid "%d/%d exported to Piwigo webalbum" +msgid_plural "%d/%d exported to Piwigo webalbum" +msgstr[0] "%d/%d esportati nel web album Piwigo" +msgstr[1] "%d/%d esportati in Piwigo" + +#: ../src/iop/ashift.c:120 +msgid "rotate and perspective" +msgstr "rotazione e prospettiva" + +#: ../src/iop/ashift.c:125 +msgid "rotation|keystone|distortion|crop|reframe" +msgstr "rotazione|poligono|distorsione|taglio|ritaglio" + +#: ../src/iop/ashift.c:130 +msgid "rotate or distort perspective" +msgstr "Rotazione o distorsione prospettica" + +#: ../src/iop/ashift.c:131 ../src/iop/channelmixer.c:139 +#: ../src/iop/channelmixerrgb.c:233 ../src/iop/clipping.c:363 +#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:185 +#: ../src/iop/colorchecker.c:130 ../src/iop/colorcorrection.c:77 +#: ../src/iop/crop.c:134 ../src/iop/lut3d.c:142 ../src/iop/primaries.c:80 +msgid "corrective or creative" +msgstr "Correttivo o creativo" + +#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:174 +#: ../src/iop/bilateral.cc:103 ../src/iop/bilateral.cc:105 +#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:236 ../src/iop/clipping.c:364 +#: ../src/iop/clipping.c:366 ../src/iop/colorbalancergb.c:186 +#: ../src/iop/colorin.c:136 ../src/iop/crop.c:135 ../src/iop/crop.c:137 +#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:780 +#: ../src/iop/denoiseprofile.c:782 ../src/iop/diffuse.c:146 +#: ../src/iop/diffuse.c:148 ../src/iop/exposure.c:132 ../src/iop/exposure.c:134 +#: ../src/iop/flip.c:111 ../src/iop/flip.c:112 ../src/iop/hazeremoval.c:113 +#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:263 ../src/iop/lens.cc:265 +#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/primaries.c:81 +#: ../src/iop/primaries.c:83 ../src/iop/retouch.c:210 ../src/iop/retouch.c:212 +#: ../src/iop/sigmoid.c:209 ../src/iop/splittoning.c:106 +#: ../src/iop/splittoning.c:108 ../src/iop/spots.c:70 ../src/iop/spots.c:72 +#: ../src/iop/toneequal.c:333 ../src/iop/velvia.c:99 ../src/iop/velvia.c:101 +msgid "linear, RGB, scene-referred" +msgstr "Lineare, RGB, riferito alla scena" + +#: ../src/iop/ashift.c:133 ../src/iop/borders.c:325 ../src/iop/clipping.c:365 +#: ../src/iop/crop.c:136 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 +msgid "geometric, RGB" +msgstr "Geometria, RGB" + +#: ../src/iop/ashift.c:2866 +msgid "automatic cropping failed" +msgstr "Ritaglio automatico fallito" + +#: ../src/iop/ashift.c:3276 ../src/iop/ashift.c:3328 ../src/iop/ashift.c:3375 +msgid "data pending - please repeat" +msgstr "Dati in sospeso - per favore ripetere" + +#: ../src/iop/ashift.c:3285 +msgid "could not detect structural data in image" +msgstr "Non è stato possibile individuare dati strutturali nell'immagine" + +#: ../src/iop/ashift.c:3297 +msgid "could not run outlier removal" +msgstr "Non è stato possibile eliminare le linee di controllo" + +#: ../src/iop/ashift.c:3474 +#, c-format +msgid "" +"not enough structure for automatic correction\n" +"minimum %d lines in each relevant direction" +msgstr "" +"Non abbastanza struttura per la correzione automatica\n" +"Minimo di %d linee in ogni direzione rilevante" + +#: ../src/iop/ashift.c:3480 +msgid "automatic correction failed, please correct manually" +msgstr "Correzione automatica fallita, per favore correggi manualmente" + +#: ../src/iop/ashift.c:5079 +#, c-format +msgid "only %d lines can be saved in parameters" +msgstr "Solo %d linee possono esser salvate nei parametri" + +#: ../src/iop/ashift.c:5159 +#, c-format +msgid "rotation adjusted by %3.2f° to %3.2f°" +msgstr "rotazione regolata da %3.2f° a %3.2f°" + +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5801 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:5908 +#, c-format +msgid "lens shift (%s)" +msgstr "Spostamento lente (%s)" + +#: ../src/iop/ashift.c:6074 +msgid "manual perspective" +msgstr "Prospettiva manuale" + +#: ../src/iop/ashift.c:6119 +msgctxt "section" +msgid "perspective" +msgstr "Prospettiva" + +#: ../src/iop/ashift.c:6126 ../src/iop/ashift.c:6235 ../src/iop/ashift.c:6237 +#: ../src/iop/ashift.c:6239 +msgid "structure" +msgstr "Struttura" + +#: ../src/iop/ashift.c:6161 +msgid "" +"rotate image\n" +"right-click and drag to define a horizontal or vertical line by drawing on " +"the image" +msgstr "" +"rotate image\n" +"right-click and drag to define a horizontal or vertical line by drawing on " +"the image" + +#: ../src/iop/ashift.c:6164 ../src/iop/ashift.c:6166 +msgid "apply lens shift correction in one direction" +msgstr "Applica la correzione dell'allineamento della lente in una direzione" + +#: ../src/iop/ashift.c:6168 +msgid "shear the image along one diagonal" +msgstr "Taglia l'immagine lungo una diagonale" + +#: ../src/iop/ashift.c:6169 ../src/iop/clipping.c:2170 +msgid "automatically crop to avoid black edges" +msgstr "Ritaglia automaticamente per evitare margini neri" + +#: ../src/iop/ashift.c:6170 +msgid "" +"lens model of the perspective correction: generic or according to the focal " +"length" +msgstr "" +"Modello della lente della correzione prospettica: generica od in base alla " +"lunghezza focale" + +#: ../src/iop/ashift.c:6173 +msgid "focal length of the lens, default value set from EXIF data if available" +msgstr "" +"Lunghezza focale dell'obiettivo, il valore predefinito è impostato dall'EXIF " +"se disponibile" + +#: ../src/iop/ashift.c:6176 +msgid "" +"crop factor of the camera sensor, default value set from EXIF data if " +"available, manual setting is often required" +msgstr "" +"Fattore di taglio del sensore fotocamera, il valore predefinito è impostato " +"dall'EXIF se disponibile, è spesso richiesta l'impostazione manuale" + +#: ../src/iop/ashift.c:6180 +msgid "" +"the level of lens dependent correction, set to maximum for full lens " +"dependency, set to zero for the generic case" +msgstr "" +"Il livello di correzione dipendente dalla lente, imposta al massimo per una " +"dipendenza completa dalla lente, imposta a zero per un uso generico" + +#: ../src/iop/ashift.c:6184 +msgid "adjust aspect ratio of image by horizontal and vertical scaling" +msgstr "" +"Regola le proporzioni dell'immagine ridimensionando orizzontalmente e " +"verticalmente" + +#: ../src/iop/ashift.c:6186 +msgid "" +"automatically correct for vertical perspective distortion\n" +"ctrl+click to only fit rotation\n" +"shift+click to only fit lens shift" +msgstr "" +"Corregge automaticamente la distorsione prospettica verticale\n" +"Ctrl+click per correggere solamente la rotazione\n" +"Maiusc+click per correggere solamente la distorsione della lente" + +#: ../src/iop/ashift.c:6190 +msgid "" +"automatically correct for horizontal perspective distortion\n" +"ctrl+click to only fit rotation\n" +"shift+click to only fit lens shift" +msgstr "" +"Corregge automaticamente la distorsione prospettica orizzontale\n" +"Ctrl+click per correggere solamente la rotazione\n" +"Maiusc+click per correggere solamente la distorsione della lente" + +#: ../src/iop/ashift.c:6194 +msgid "" +"automatically correct for vertical and horizontal perspective distortions, " +"fitting rotation, lens shift in both directions, and shear\n" +"ctrl+click to only fit rotation\n" +"shift+click to only fit lens shift\n" +"ctrl+shift+click to only fit rotation and lens shift" +msgstr "" +"Corregge automaticamente la distorsione prospettica verticale ed " +"orizzontale; adattando la rotazione, l'allineamento dell'obiettivo in " +"entrambe le direzioni e lo stiramento\n" +"Ctrl+click per adattare solamente la rotazione\n" +"Maiusc+click per adattare solamente l'allineamento dell'obiettivo\n" +"Ctrl+Maiusc+click per adattare solamente la rotazione e l'allineamento " +"dell'obiettivo" + +#: ../src/iop/ashift.c:6201 +msgid "" +"automatically analyse line structure in image\n" +"ctrl+click for an additional edge enhancement\n" +"shift+click for an additional detail enhancement\n" +"ctrl+shift+click for a combination of both methods" +msgstr "" +"Analizza automaticamente la struttura delle linee nell'immagine\n" +"Ctrl+click per un miglioramento ulteriore dei margini\n" +"Maiusc+click per un miglioramento ulteriore dei dettagli\n" +"Ctrl+Maiusc+click per una combinazione di entrambi i metodi" + +#: ../src/iop/ashift.c:6206 +msgid "manually define perspective rectangle" +msgstr "Definisci manualmente il rettangolo prospettico" + +#: ../src/iop/ashift.c:6207 +msgid "manually draw structure lines" +msgstr "Disegna manualmente delle linee di struttura" + +#: ../src/iop/ashift.c:6236 +msgid "rectangle" +msgstr "Rettangolo" + +#: ../src/iop/ashift.c:6238 +msgid "lines" +msgstr "Linee" + +#: ../src/iop/ashift.c:6272 ../src/iop/clipping.c:3383 +#, c-format +msgid "[%s] define/rotate horizon" +msgstr "[%s] Definisci/ruota orizzonte" + +#: ../src/iop/ashift.c:6275 +#, c-format +msgid "[%s on segment] select segment" +msgstr "[%s on segment] Seleziona segmento" + +#: ../src/iop/ashift.c:6279 +#, c-format +msgid "[%s on segment] unselect segment" +msgstr "[%s on segment] Deselezione segmento" + +#: ../src/iop/ashift.c:6283 +#, c-format +msgid "[%s] select all segments from zone" +msgstr "[%s] Seleziona tutti i segmenti all'interno dell'area" + +#: ../src/iop/ashift.c:6287 +#, c-format +msgid "[%s] unselect all segments from zone" +msgstr "[%s] Deseleziona tutti i segmenti all'interno dell'area" + +#: ../src/iop/atrous.c:122 ../src/iop/atrous.c:1770 +msgid "contrast equalizer" +msgstr "equalizzatore contrasto" + +#: ../src/iop/atrous.c:127 +msgid "sharpness|acutance|local contrast" +msgstr "Nitidezza | contrasto locale" + +#: ../src/iop/atrous.c:132 +msgid "add or remove local contrast, sharpness, acutance" +msgstr "Aggiunge o rimuove contrasto locale e nitidezza" + +#: ../src/iop/atrous.c:133 ../src/iop/bilateral.cc:102 ../src/iop/diffuse.c:145 +#: ../src/iop/exposure.c:131 ../src/iop/filmicrgb.c:352 +#: ../src/iop/graduatednd.c:146 ../src/iop/negadoctor.c:146 +#: ../src/iop/rgbcurve.c:146 ../src/iop/rgblevels.c:125 ../src/iop/shadhi.c:144 +#: ../src/iop/sigmoid.c:209 ../src/iop/tonecurve.c:184 +#: ../src/iop/toneequal.c:332 +msgid "corrective and creative" +msgstr "Correttivo e creativo" + +#: ../src/iop/atrous.c:134 ../src/iop/atrous.c:136 +#: ../src/iop/colorbalance.c:164 +msgid "linear, Lab, scene-referred" +msgstr "Lineare, Lab, riferito alla scena" + +#: ../src/iop/atrous.c:135 ../src/iop/censorize.c:85 +#: ../src/iop/hazeremoval.c:114 +msgid "frequential, RGB" +msgstr "Frequenziale, RGB" + +#: ../src/iop/atrous.c:799 +msgctxt "eq_preset" +msgid "coarse" +msgstr "Grezzo" + +#: ../src/iop/atrous.c:815 +msgid "denoise & sharpen" +msgstr "Riduzione rumore e nitidezza" + +#: ../src/iop/atrous.c:831 +msgctxt "atrous" +msgid "sharpen" +msgstr "Nitidezza" + +#: ../src/iop/atrous.c:847 +msgid "denoise chroma" +msgstr "Riduzione rumore cromaticità" + +#: ../src/iop/atrous.c:863 +msgid "denoise" +msgstr "riduzione rumore" + +#: ../src/iop/atrous.c:880 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:448 +msgid "bloom" +msgstr "luce soffusa" + +#: ../src/iop/atrous.c:896 ../src/iop/bilat.c:186 +msgid "clarity" +msgstr "Chiarezza" + +#: ../src/iop/atrous.c:917 +msgid "deblur: large blur, strength 3" +msgstr "Nitidezza: largo raggio, forza 3" + +#: ../src/iop/atrous.c:935 +msgid "deblur: medium blur, strength 3" +msgstr "Nitidezza: medio raggio, forza 3" + +#: ../src/iop/atrous.c:952 +msgid "deblur: fine blur, strength 3" +msgstr "Nitidezza: corto raggio, forza 3" + +#: ../src/iop/atrous.c:971 +msgid "deblur: large blur, strength 2" +msgstr "Nitidezza: largo raggio, forza 2" + +#: ../src/iop/atrous.c:989 +msgid "deblur: medium blur, strength 2" +msgstr "Nitidezza: medio raggio, forza 2" + +#: ../src/iop/atrous.c:1006 +msgid "deblur: fine blur, strength 2" +msgstr "Nitidezza: corto raggio, forza 2" + +#: ../src/iop/atrous.c:1025 +msgid "deblur: large blur, strength 1" +msgstr "Nitidezza: largo raggio, forza 1" + +#: ../src/iop/atrous.c:1043 +msgid "deblur: medium blur, strength 1" +msgstr "Nitidezza: medio raggio, forza 1" + +#: ../src/iop/atrous.c:1060 +msgid "deblur: fine blur, strength 1" +msgstr "Nitidezza: corto raggio, forza 1" + +#: ../src/iop/atrous.c:1390 ../src/iop/atrous.c:1639 +#: ../src/iop/denoiseprofile.c:3514 ../src/iop/rawdenoise.c:754 +msgid "coarse" +msgstr "Grezzo" + +#: ../src/iop/atrous.c:1397 ../src/iop/atrous.c:1640 +#: ../src/iop/denoiseprofile.c:3522 ../src/iop/rawdenoise.c:762 +msgid "fine" +msgstr "Fine" + +#: ../src/iop/atrous.c:1409 +msgid "contrasty" +msgstr "Contrastato" + +#: ../src/iop/atrous.c:1415 ../src/iop/denoiseprofile.c:3536 +#: ../src/iop/rawdenoise.c:776 +msgid "noisy" +msgstr "Rumoroso" + +#. case atrous_s: +#: ../src/iop/atrous.c:1418 +msgid "bold" +msgstr "Deciso" + +#: ../src/iop/atrous.c:1419 +msgid "dull" +msgstr "Spento" + +#: ../src/iop/atrous.c:1627 ../src/iop/atrous.c:1685 +msgid "boost" +msgstr "Incremento" + +#: ../src/iop/atrous.c:1628 +msgid "reduce" +msgstr "Riduci" + +#: ../src/iop/atrous.c:1629 +msgid "raise" +msgstr "Alza" + +#: ../src/iop/atrous.c:1630 +msgid "lower" +msgstr "Abbassa" + +#: ../src/iop/atrous.c:1637 +msgid "coarsest" +msgstr "Il più grossolano" + +#: ../src/iop/atrous.c:1638 +msgid "coarser" +msgstr "Più grezzo" + +#: ../src/iop/atrous.c:1641 +msgid "finer" +msgstr "Più fine" + +#: ../src/iop/atrous.c:1642 +msgid "finest" +msgstr "Più bello" + +#: ../src/iop/atrous.c:1710 ../src/libs/export.c:1239 ../src/libs/export.c:1255 +msgid "x" +msgstr "x" + +#: ../src/iop/atrous.c:1799 ../src/iop/nlmeans.c:468 +msgid "luma" +msgstr "Luminanza" + +#: ../src/iop/atrous.c:1800 +msgid "change lightness at each feature size" +msgstr "Cambia la chiarezza ad ogni dimensione caratteristica" + +#: ../src/iop/atrous.c:1802 +msgid "change color saturation at each feature size" +msgstr "Cambia saturazione ad ogni dimensione caratteristica" + +#: ../src/iop/atrous.c:1804 +msgid "edges" +msgstr "Margini" + +#: ../src/iop/atrous.c:1805 +msgid "" +"change edge halos at each feature size\n" +"only changes results of luma and chroma tabs" +msgstr "" +"Cambia aloni del margine ad ogni dimensione caratteristica\n" +"Cambia i risultati soltanto per le schede luminanza e cromaticità" + +#: ../src/iop/atrous.c:1818 ../src/iop/colorbalancergb.c:2132 +#: ../src/iop/colorzones.c:2732 ../src/iop/denoiseprofile.c:3747 +#: ../src/iop/filmicrgb.c:4471 ../src/iop/lowlight.c:821 +#: ../src/iop/rawdenoise.c:935 ../src/iop/toneequal.c:3424 +msgid "graph" +msgstr "Grafico" + +#: ../src/iop/atrous.c:1836 ../src/iop/colorzones.c:2729 +msgid "make effect stronger or weaker" +msgstr "Rende l'effetto più deciso o più debole" + +#: ../src/iop/basecurve.c:260 +msgid "neutral" +msgstr "Neutrale" + +#: ../src/iop/basecurve.c:261 +msgid "canon eos like" +msgstr "Come Canon EOS" + +#: ../src/iop/basecurve.c:262 +msgid "canon eos like alternate" +msgstr "Canon EOS come alternativa" + +#: ../src/iop/basecurve.c:263 +msgid "nikon like" +msgstr "Nikon" + +#: ../src/iop/basecurve.c:264 +msgid "nikon like alternate" +msgstr "Nikon come alternativa" + +#: ../src/iop/basecurve.c:265 +msgid "sony alpha like" +msgstr "Sony alpha" + +#: ../src/iop/basecurve.c:266 +msgid "pentax like" +msgstr "Pentax" + +#: ../src/iop/basecurve.c:267 +msgid "ricoh like" +msgstr "Ricoh" + +#: ../src/iop/basecurve.c:268 +msgid "olympus like" +msgstr "Olympus" + +#: ../src/iop/basecurve.c:269 +msgid "olympus like alternate" +msgstr "Olympus come alternativa" + +#: ../src/iop/basecurve.c:270 +msgid "panasonic like" +msgstr "Panasonic" + +#: ../src/iop/basecurve.c:271 +msgid "leica like" +msgstr "Leica" + +#: ../src/iop/basecurve.c:272 +msgid "kodak easyshare like" +msgstr "Kodak easyshare" + +#: ../src/iop/basecurve.c:273 +msgid "konica minolta like" +msgstr "Konica Minolta" + +#: ../src/iop/basecurve.c:274 +msgid "samsung like" +msgstr "Samsung" + +#: ../src/iop/basecurve.c:275 +msgid "fujifilm like" +msgstr "Fujifilm" + +#: ../src/iop/basecurve.c:276 +msgid "nokia like" +msgstr "Nokia" + +#. clang-format off +#. smoother cubic spline curve +#: ../src/iop/basecurve.c:331 ../src/iop/colorzones.c:2763 +#: ../src/iop/rgbcurve.c:1574 ../src/iop/tonecurve.c:1195 +msgid "cubic spline" +msgstr "Spline cubica" + +#: ../src/iop/basecurve.c:390 +msgid "base curve" +msgstr "curva base" + +#: ../src/iop/basecurve.c:397 +msgid "" +"apply a view transform based on personal or camera manufacturer look,\n" +"for corrective purposes, to prepare images for display" +msgstr "" +"Applica una trasformazione basata sull'aspetto standard delle immagini del " +"produttore della fotocamera.\n" +"Serve per preparare l'immagine alla visualizzazione corretta sullo schermo." + +#: ../src/iop/basecurve.c:399 ../src/iop/cacorrect.c:84 +#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:120 +#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:779 +#: ../src/iop/flip.c:110 ../src/iop/hazeremoval.c:112 +#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:75 +#: ../src/iop/invert.c:136 ../src/iop/lens.cc:262 ../src/iop/nlmeans.c:89 +#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:144 +#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:96 ../src/iop/spots.c:69 +#: ../src/iop/temperature.c:220 +msgid "corrective" +msgstr "Correttivo" + +#: ../src/iop/basecurve.c:400 ../src/iop/channelmixer.c:140 +#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:143 +#: ../src/iop/negadoctor.c:147 ../src/iop/profile_gamma.c:103 +#: ../src/iop/rgbcurve.c:147 ../src/iop/rgbcurve.c:149 +#: ../src/iop/rgblevels.c:126 ../src/iop/sigmoid.c:210 ../src/iop/soften.c:104 +#: ../src/iop/soften.c:106 +msgid "linear, RGB, display-referred" +msgstr "Lineare, RGB, riferito allo schermo" + +#: ../src/iop/basecurve.c:401 ../src/iop/basicadj.c:175 +#: ../src/iop/colorbalance.c:165 ../src/iop/colorbalancergb.c:187 +#: ../src/iop/dither.c:121 ../src/iop/filmicrgb.c:354 +#: ../src/iop/graduatednd.c:148 ../src/iop/negadoctor.c:148 +#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:148 +#: ../src/iop/rgblevels.c:127 ../src/iop/sigmoid.c:210 +#: ../src/iop/vignette.c:122 ../src/iop/watermark.c:424 +msgid "non-linear, RGB" +msgstr "Non lineare, RGB" + +#: ../src/iop/basecurve.c:402 ../src/iop/dither.c:120 ../src/iop/dither.c:122 +#: ../src/iop/filmicrgb.c:355 ../src/iop/graduatednd.c:149 +#: ../src/iop/negadoctor.c:149 ../src/iop/profile_gamma.c:105 +#: ../src/iop/rgblevels.c:128 ../src/iop/vignette.c:121 +#: ../src/iop/vignette.c:123 ../src/iop/watermark.c:423 +#: ../src/iop/watermark.c:425 +msgid "non-linear, RGB, display-referred" +msgstr "Non lineare, RGB, riferito allo schermo" + +#: ../src/iop/basecurve.c:2206 +msgid "abscissa: input, ordinate: output. works on RGB channels" +msgstr "Ascissa: ingresso, Ordinata: uscita. Lavorano sui canali RGB" + +#: ../src/iop/basecurve.c:2212 ../src/iop/basicadj.c:642 +#: ../src/iop/rgbcurve.c:1593 ../src/iop/rgblevels.c:1133 +#: ../src/iop/tonecurve.c:1206 +msgid "method to preserve colors when applying contrast" +msgstr "Metodo per preservare i colori quando si applica il contrasto" + +#: ../src/iop/basecurve.c:2216 +msgid "two exposures" +msgstr "Due esposizioni" + +#: ../src/iop/basecurve.c:2217 +msgid "three exposures" +msgstr "Tre esposizioni" + +#: ../src/iop/basecurve.c:2218 +msgid "" +"fuse this image stopped up/down a couple of times with itself, to compress " +"high dynamic range. expose for the highlights before use." +msgstr "" +"Fondi l'immagine sovra/sottoesposta un paio di volte con se stessa, per " +"comprimere l'ampia gamma dinamica. Esporre per le alteluci prima di usarla." + +#: ../src/iop/basecurve.c:2223 +msgid "how many stops to shift the individual exposures apart" +msgstr "Quanti stop di separazione devono esserci tra le esposizioni singole" + +#: ../src/iop/basecurve.c:2232 +msgid "" +"whether to shift exposure up or down (-1: reduce highlight, +1: reduce " +"shadows)" +msgstr "" +"Decidi se spostare l'esposizione verso l'alto o verso il basso (-1: riduce " +"le alteluci, +1: riduce le ombre)" + +#: ../src/iop/basecurve.c:2237 ../src/iop/tonecurve.c:1209 +msgid "scale for graph" +msgstr "Scala per il grafico" + +#: ../src/iop/basicadj.c:162 +msgid "this module is deprecated. please use the quick access panel instead." +msgstr "" +"Questo modulo è deprecato. Piuttosto usa il pannello di accesso rapido." + +#: ../src/iop/basicadj.c:167 +msgid "basic adjustments" +msgstr "regolazioni di base" + +#: ../src/iop/basicadj.c:172 +msgid "apply usual image adjustments" +msgstr "Applica le regolazioni di base" + +#: ../src/iop/basicadj.c:173 ../src/iop/bilat.c:83 ../src/iop/bloom.c:81 +#: ../src/iop/blurs.c:93 ../src/iop/borders.c:323 ../src/iop/censorize.c:83 +#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:89 +#: ../src/iop/colorize.c:98 ../src/iop/colormapping.c:153 +#: ../src/iop/colorzones.c:146 ../src/iop/grain.c:450 ../src/iop/highpass.c:78 +#: ../src/iop/levels.c:140 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 +#: ../src/iop/lowpass.c:106 ../src/iop/monochrome.c:100 ../src/iop/soften.c:103 +#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:98 ../src/iop/vibrance.c:97 +#: ../src/iop/vignette.c:120 ../src/iop/watermark.c:422 +msgid "creative" +msgstr "Creativo" + +#: ../src/iop/basicadj.c:176 ../src/iop/colorbalancergb.c:188 +msgid "non-linear, RGB, scene-referred" +msgstr "Non lineare, RGB, riferito alla scena" + +#: ../src/iop/basicadj.c:623 +msgid "" +"adjust the black level to unclip negative RGB values.\n" +"you should never use it to add more density in blacks!\n" +"if poorly set, it will clip near-black colors out of gamut\n" +"by pushing RGB values into negatives" +msgstr "" +"Regola il livello di nero per recuperare i valori RGB negativi.\n" +"Non dovresti mai utilizzarlo per aggiungere densità al nero!\n" +"Se regolato con poca attenzione porterà i valori di colore vicini al nero " +"fuori gamma\n" +"rendendo negativi i valori RGB" + +#: ../src/iop/basicadj.c:631 ../src/iop/exposure.c:1136 +msgid "adjust the exposure correction" +msgstr "Regola la correzione dell'esposizione" + +#: ../src/iop/basicadj.c:635 +msgid "highlight compression adjustment" +msgstr "Regolazione compressione alteluci" + +#: ../src/iop/basicadj.c:639 ../src/iop/colisa.c:302 +msgid "contrast adjustment" +msgstr "Regolazione contrasto" + +#: ../src/iop/basicadj.c:647 +msgid "middle gray adjustment" +msgstr "Regolazione grigio medio" + +#: ../src/iop/basicadj.c:652 ../src/iop/colisa.c:303 +msgid "brightness adjustment" +msgstr "Regolazione della luminosità" + +#: ../src/iop/basicadj.c:655 +msgid "saturation adjustment" +msgstr "Regolazione saturazione" + +#: ../src/iop/basicadj.c:658 +msgid "vibrance adjustment" +msgstr "Regolazione vibranza" + +#: ../src/iop/basicadj.c:662 +msgid "apply auto exposure based on the entire image" +msgstr "Applica un'esposizione automatica basata sull'intera immagine" + +#: ../src/iop/basicadj.c:669 +msgid "" +"apply auto exposure based on a region defined by the user\n" +"click and drag to draw the area\n" +"right click to cancel" +msgstr "" +"Applica un'esposizione automatica basata su un'area definita dall'utente\n" +"Click e trascina per definire l'area\n" +"Click destro per annullare" + +#: ../src/iop/basicadj.c:677 +msgid "clip" +msgstr "Taglia" + +#: ../src/iop/basicadj.c:679 +msgid "adjusts clipping value for auto exposure calculation" +msgstr "Regola il valore di taglio per il calcolo di auto esposizione" + +#. local contrast +#: ../src/iop/bilat.c:77 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:578 +msgid "local contrast" +msgstr "contrasto locale" + +#: ../src/iop/bilat.c:82 +msgid "manipulate local and global contrast separately" +msgstr "Manipola separatamente il contrasto locale e globale" + +#: ../src/iop/bilat.c:84 ../src/iop/bilat.c:86 ../src/iop/bloom.c:82 +#: ../src/iop/bloom.c:84 ../src/iop/colisa.c:91 ../src/iop/colisa.c:93 +#: ../src/iop/colorcontrast.c:90 ../src/iop/colorcontrast.c:92 +#: ../src/iop/colorcorrection.c:78 ../src/iop/colorcorrection.c:80 +#: ../src/iop/colorize.c:101 ../src/iop/colormapping.c:156 +#: ../src/iop/colorreconstruction.c:123 ../src/iop/colorzones.c:149 +#: ../src/iop/defringe.c:85 ../src/iop/grain.c:451 ../src/iop/grain.c:453 +#: ../src/iop/levels.c:143 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 +#: ../src/iop/monochrome.c:103 ../src/iop/nlmeans.c:90 ../src/iop/nlmeans.c:92 +#: ../src/iop/shadhi.c:147 ../src/iop/tonecurve.c:187 ../src/iop/vibrance.c:100 +msgid "non-linear, Lab, display-referred" +msgstr "Non lineare, Lab, riferito allo schermo" + +#: ../src/iop/bilat.c:85 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 +#: ../src/iop/colorcontrast.c:91 ../src/iop/colorcorrection.c:79 +#: ../src/iop/colorize.c:100 ../src/iop/colormapping.c:155 +#: ../src/iop/colorreconstruction.c:122 ../src/iop/colorzones.c:148 +#: ../src/iop/defringe.c:84 ../src/iop/grain.c:452 ../src/iop/levels.c:142 +#: ../src/iop/monochrome.c:102 ../src/iop/nlmeans.c:91 ../src/iop/shadhi.c:146 +#: ../src/iop/tonecurve.c:186 ../src/iop/vibrance.c:99 +msgid "non-linear, Lab" +msgstr "Non lineare, Lab" + +#: ../src/iop/bilat.c:195 +msgid "HDR local tone-mapping" +msgstr "Mappatura tonale locale HDR" + +#: ../src/iop/bilat.c:441 +msgid "" +"the filter used for local contrast enhancement. bilateral is faster but can " +"lead to artifacts around edges for extreme settings." +msgstr "" +"Il filtro usato per il miglioramento del contrasto locale. Bilaterale è più " +"veloce ma può generare artefatti attorno ai margini con impostazioni estreme." + +#: ../src/iop/bilat.c:445 ../src/iop/globaltonemap.c:665 +msgid "detail" +msgstr "Dettaglio" + +#: ../src/iop/bilat.c:448 +msgid "changes the local contrast" +msgstr "Modifica il contrasto locale" + +#: ../src/iop/bilat.c:463 +msgid "feature size of local details (spatial sigma of bilateral filter)" +msgstr "Dimensione del dettaglio locale (sigma spaziale del filtro bilaterale)" + +#: ../src/iop/bilat.c:471 +msgid "L difference to detect edges (range sigma of bilateral filter)" +msgstr "" +"Differenza L per individuare i margini (intervallo sigma del filtro " +"bilaterale)" + +#: ../src/iop/bilat.c:477 +msgid "changes the local contrast of highlights" +msgstr "Modifica il contrasto locale delle alteluci" + +#: ../src/iop/bilat.c:483 +msgid "changes the local contrast of shadows" +msgstr "Modifica il contrasto locale delle ombre" + +#: ../src/iop/bilat.c:489 +msgid "" +"defines what counts as mid-tones. lower for better dynamic range compression " +"(reduce shadow and highlight contrast), increase for more powerful local " +"contrast" +msgstr "" +"Definisce cosa considerare come mezzi toni. Abbassare per una miglior " +"compressione della gamma dinamica (riduce il contrasto delle ombre e delle " +"alteluci), aumentare per un contrasto locale più accentuato" + +#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:423 +msgid "surface blur" +msgstr "sfocatura superficie" + +#: ../src/iop/bilateral.cc:79 +msgid "denoise (bilateral filter)" +msgstr "riduzione rumore (filtro bilaterale)" + +#: ../src/iop/bilateral.cc:101 +msgid "apply edge-aware surface blur to denoise or smoothen textures" +msgstr "" +"Applica una sfocatura della superficie per ridurre il rumore o la grana" + +#: ../src/iop/bilateral.cc:104 ../src/iop/blurs.c:93 +#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:781 +#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/primaries.c:82 +#: ../src/iop/soften.c:105 ../src/iop/splittoning.c:107 ../src/iop/velvia.c:100 +msgid "linear, RGB" +msgstr "Lineare, RGB" + +#: ../src/iop/bilateral.cc:138 +msgid "image too large" +msgstr "Immagine troppo grande" + +#: ../src/iop/bilateral.cc:139 +msgid "" +"this module is unable to process\n" +"images with more than 2 gigapixels.\n" +"processing has been skipped." +msgstr "" +"questo modulo non è in grado di processare\n" +"immagini con più di 2 gigapixels.\n" +"l'elaborazione viene saltata." + +#: ../src/iop/bilateral.cc:353 +msgid "spatial extent of the gaussian" +msgstr "Estensione spaziale della gaussiana" + +#: ../src/iop/bilateral.cc:357 +msgid "how much to blur red" +msgstr "Quanto sfocare il rosso" + +#: ../src/iop/bilateral.cc:362 +msgid "how much to blur green" +msgstr "Quanto sfocare il verde" + +#: ../src/iop/bilateral.cc:367 +msgid "how much to blur blue" +msgstr "Quanto sfocare il blu" + +#: ../src/iop/bloom.c:80 +msgid "apply Orton effect for a dreamy aetherical look" +msgstr "Applica l'effetto Orton per un effetto sognante o etereo" + +#: ../src/iop/bloom.c:364 ../src/iop/soften.c:364 ../src/libs/camera.c:567 +#: ../src/libs/masks.c:106 +msgid "size" +msgstr "Dimensione" + +#: ../src/iop/bloom.c:366 +msgid "the size of bloom" +msgstr "Dimensione della luce soffusa" + +#: ../src/iop/bloom.c:370 +msgid "the threshold of light" +msgstr "Soglia della luce" + +#: ../src/iop/bloom.c:374 +msgid "the strength of bloom" +msgstr "Intensità di luce soffusa" + +#: ../src/iop/blurs.c:81 +msgid "blurs" +msgstr "Sfocature" + +#: ../src/iop/blurs.c:86 +msgid "blur|lens|motion" +msgstr "Sfocatura|lenti|movimento" + +#: ../src/iop/blurs.c:92 +msgid "simulate physically-accurate lens and motion blurs" +msgstr "Simula lenti fisicamente accurate e sfocature da movimento" + +#: ../src/iop/borders.c:312 +msgid "framing" +msgstr "cornice" + +#: ../src/iop/borders.c:317 +msgid "borders|enlarge canvas|expand canvas" +msgstr "margini|ingrandsci la tela|espandi la tela" + +#: ../src/iop/borders.c:322 +msgid "add solid borders or margins around the picture" +msgstr "Aggiunge un bordo solito o dei margini intorno all'immagine" + +#: ../src/iop/borders.c:324 ../src/iop/borders.c:326 ../src/iop/lut3d.c:145 +msgid "linear or non-linear, RGB, display-referred" +msgstr "Lineare o non-lineare, RGB, riferito allo schermo" + +#: ../src/iop/borders.c:737 +msgid "15:10 postcard white" +msgstr "15:10 Cartolina bianca" + +#: ../src/iop/borders.c:742 +msgid "15:10 postcard black" +msgstr "15:10 Cartolina nera" + +#: ../src/iop/borders.c:948 +msgid "which dimension to use for the size calculation" +msgstr "quale dimensione da usare per il calcolo della dimensione" + +#: ../src/iop/borders.c:954 +msgid "size of the border in percent of the chosen basis" +msgstr "dimensione del bordo in percentuale dell'intera immagine" + +#: ../src/iop/borders.c:956 ../src/iop/clipping.c:2271 ../src/iop/crop.c:1208 +msgid "aspect" +msgstr "Aspetto" + +#: ../src/iop/borders.c:957 +msgid "" +"select the aspect ratio\n" +"(right click on slider below to type your own w:h)" +msgstr "" +"seleziona la proporzion\n" +"(click di destro sul selettore scorrevole in basso per digitare il valore w:" +"h personalizzato)" + +#: ../src/iop/borders.c:961 +msgid "3:1" +msgstr "3:1" + +#: ../src/iop/borders.c:962 +msgid "95:33" +msgstr "95:33" + +#: ../src/iop/borders.c:963 +msgid "CinemaScope 2.39:1" +msgstr "CinemaScope 2.39:1" + +#: ../src/iop/borders.c:964 +msgid "2:1" +msgstr "2:1" + +#: ../src/iop/borders.c:965 +msgid "16:9" +msgstr "16:9" + +#: ../src/iop/borders.c:966 +msgid "5:3" +msgstr "5:3" + +#: ../src/iop/borders.c:967 +msgid "US Legal 8.5x14" +msgstr "US Legal 8.5x14" + +#: ../src/iop/borders.c:968 ../src/iop/clipping.c:2184 ../src/iop/crop.c:1112 +msgid "golden cut" +msgstr "Taglio aureo" + +#: ../src/iop/borders.c:969 +msgid "16:10" +msgstr "16:10" + +#: ../src/iop/borders.c:970 +msgid "3:2 (4x6, 10x15cm)" +msgstr "3:2 (4x6, 10x15cm)" + +#: ../src/iop/borders.c:972 +msgid "DIN" +msgstr "DIN" + +#: ../src/iop/borders.c:973 +msgid "7:5" +msgstr "7:5" + +#: ../src/iop/borders.c:974 +msgid "4:3" +msgstr "4:3" + +#: ../src/iop/borders.c:975 +msgid "US Letter 8.5x11" +msgstr "Lettera US 8.5x11" + +#: ../src/iop/borders.c:976 +msgid "14:11" +msgstr "14:11" + +#: ../src/iop/borders.c:977 +msgid "5:4 (8x10)" +msgstr "5:4 (8x10)" + +#: ../src/iop/borders.c:978 ../src/iop/clipping.c:2174 ../src/iop/crop.c:1102 +#: ../src/libs/filtering.c:307 ../src/libs/filters/ratio.c:126 +#: ../src/libs/histogram.c:118 +msgid "square" +msgstr "Quadrato" + +#: ../src/iop/borders.c:979 +msgid "constant border" +msgstr "Bordo costante" + +#: ../src/iop/borders.c:980 ../src/iop/borders.c:996 ../src/iop/borders.c:1007 +msgid "custom..." +msgstr "Personalizzato..." + +#: ../src/iop/borders.c:984 +msgid "" +"set the custom aspect ratio\n" +"(right click to enter number or w:h)" +msgstr "" +"Imposta la proporzione personalizzata\n" +"(click di destro per inserire un numero o w:h)" + +#: ../src/iop/borders.c:989 +msgid "aspect ratio orientation of the image with border" +msgstr "Orientamento delle proporzioni dell'immagine con il bordo" + +#: ../src/iop/borders.c:991 +msgid "horizontal position" +msgstr "Posizione orizzontale" + +#: ../src/iop/borders.c:992 +msgid "" +"select the horizontal position ratio relative to top\n" +"(right click on slider below to type your own x:w)" +msgstr "" +"Seleziona il rapporto della posizione orizzontale rispetto all'alto\n" +"(click di destro sul selettore scorrevole in baseo per digitare il valore " +"personalizzato x:w)" + +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 +msgid "center" +msgstr "Centro" + +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 +msgid "1/3" +msgstr "1/3" + +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 +msgid "3/8" +msgstr "3/8" + +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 +msgid "5/8" +msgstr "5/8" + +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 +msgid "2/3" +msgstr "2/3" + +#: ../src/iop/borders.c:1000 +msgid "custom horizontal position" +msgstr "Posizione orizzontale personalizzata" + +#: ../src/iop/borders.c:1002 +msgid "vertical position" +msgstr "Posizione verticale" + +#: ../src/iop/borders.c:1003 +msgid "" +"select the vertical position ratio relative to left\n" +"(right click on slider below to type your own y:h)" +msgstr "" +"Seleziona il rapporto della posizione vertila rispetto alla sinistra\n" +"(click di destro sul selettore scorrevole in baseo per digitare il valore " +"personalizzato y:h)" + +#: ../src/iop/borders.c:1011 +msgid "custom vertical position" +msgstr "Posizione verticale personalizzata" + +#: ../src/iop/borders.c:1017 +msgid "size of the frame line in percent of min border width" +msgstr "" +"Dimensione della cornice in percentuale della larghezza minore del bordo" + +#: ../src/iop/borders.c:1023 +msgid "offset of the frame line beginning on picture side" +msgstr "Compensazione della cornice partendo dal lato dell'immagine" + +#: ../src/iop/borders.c:1033 ../src/iop/borders.c:1044 +msgid "border color" +msgstr "Colore bordo" + +#: ../src/iop/borders.c:1037 +msgid "select border color" +msgstr "Scegli colore per il bordo" + +#: ../src/iop/borders.c:1043 +msgid "pick border color from image" +msgstr "Scegli colore per il bordo dall'immagine" + +#: ../src/iop/borders.c:1044 ../src/iop/borders.c:1061 +#: ../src/iop/colorzones.c:2662 ../src/iop/colorzones.c:2677 +#: ../src/iop/negadoctor.c:867 ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:972 ../src/iop/rgbcurve.c:1517 +#: ../src/iop/rgbcurve.c:1532 ../src/iop/rgblevels.c:1075 +#: ../src/iop/rgblevels.c:1083 ../src/iop/rgblevels.c:1091 +msgid "pickers" +msgstr "selettori" + +#: ../src/iop/borders.c:1049 ../src/iop/borders.c:1061 +msgid "frame line color" +msgstr "Colore della cornice" + +#: ../src/iop/borders.c:1054 +msgid "select frame line color" +msgstr "Scegli colore per la cornice" + +#: ../src/iop/borders.c:1060 +msgid "pick frame line color from image" +msgstr "Scegli colore per la cornice dall'immagine" + +#. make sure you put all your translatable strings into _() ! +#: ../src/iop/cacorrect.c:78 +msgid "raw chromatic aberrations" +msgstr "Aberrazioni cromatiche grezze" + +#: ../src/iop/cacorrect.c:83 +msgid "correct chromatic aberrations for Bayer sensors" +msgstr "Correzione aberrazioni cromatiche per sensori Bayer" + +#: ../src/iop/cacorrect.c:85 ../src/iop/cacorrect.c:87 +#: ../src/iop/cacorrectrgb.c:171 ../src/iop/cacorrectrgb.c:173 +#: ../src/iop/demosaic.c:294 ../src/iop/highlights.c:180 +#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:76 +#: ../src/iop/hotpixels.c:78 ../src/iop/rawdenoise.c:145 +#: ../src/iop/rawdenoise.c:147 ../src/iop/rawprepare.c:175 +#: ../src/iop/rawprepare.c:177 ../src/iop/temperature.c:221 +#: ../src/iop/temperature.c:223 +msgid "linear, raw, scene-referred" +msgstr "Lineare, RAW, riferito alla scena" + +#: ../src/iop/cacorrect.c:86 ../src/iop/cacorrectrgb.c:172 +#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:138 +#: ../src/iop/rawdenoise.c:146 ../src/iop/rawprepare.c:176 +#: ../src/iop/temperature.c:222 +msgid "linear, raw" +msgstr "Lineare, RAW" + +#: ../src/iop/cacorrect.c:1424 +msgid "iteration runs, default is twice" +msgstr "Iterazioni di esecuzione, in modo predefinito è due volte" + +#: ../src/iop/cacorrect.c:1427 +msgid "activate colorshift correction for blue & red channels" +msgstr "Attiva la correzione dello spostamento colore per i canali blu e rosso" + +#: ../src/iop/cacorrect.c:1434 +msgid "" +"automatic chromatic aberration correction\n" +"only for Bayer raw files with 3 color channels" +msgstr "" +"Correzione automatica delle aberrazioni cromatiche\n" +"Solo per file RAW Bayer con 3 canali colore" + +#: ../src/iop/cacorrectrgb.c:164 ../src/iop/defringe.c:76 +msgid "chromatic aberrations" +msgstr "aberrazioni cromatiche" + +#: ../src/iop/cacorrectrgb.c:169 +msgid "correct chromatic aberrations" +msgstr "Correzione aberrazioni cromatiche" + +#: ../src/iop/cacorrectrgb.c:745 +msgid "" +"channel used as a reference to\n" +"correct the other channels.\n" +"use sharpest channel if some\n" +"channels are blurry.\n" +"try changing guide channel if you\n" +"have artifacts." +msgstr "" +"Il canale usa come riferimenti per\n" +"correggere gli altri canali.\n" +"Usa un canale più acuto se alcuni\n" +"canali sono sfocati.\n" +"Prova a modificare il canale guida se\n" +"hai artefatti." + +#: ../src/iop/cacorrectrgb.c:752 +msgid "increase for stronger correction" +msgstr "Aumenta per una correzione più forte" + +#: ../src/iop/cacorrectrgb.c:754 +msgid "" +"balance between smoothing colors\n" +"and preserving them.\n" +"high values can lead to overshooting\n" +"and edge bleeding." +msgstr "" +"Bilancia tra ammorbidire i colori\n" +"e preservarli.\n" +"Valori elevati possono portare troppo in alto\n" +"e margini troppo definiti." + +#: ../src/iop/cacorrectrgb.c:759 +msgctxt "section" +msgid "advanced parameters" +msgstr "Parametri avanzati" + +#: ../src/iop/cacorrectrgb.c:761 +msgid "" +"correction mode to use.\n" +"can help with multiple\n" +"instances for very damaged\n" +"images.\n" +"darken only is particularly\n" +"efficient to correct blue\n" +"chromatic aberration." +msgstr "" +"Modo di correzione da usare.\n" +"Può aiutare con istanze\n" +"multiple per immagini molto\n" +"danneggiate.\n" +"Scurisci solo è particolarmente\n" +"efficace per correggere le\n" +"abberrazioni cromatiche blu." + +#: ../src/iop/cacorrectrgb.c:769 +msgid "" +"runs an iterative approach\n" +"with several radii.\n" +"improves result on images\n" +"with very large chromatic\n" +"aberrations, but can smooth\n" +"colors too much on other\n" +"images." +msgstr "" +"Esegue un approccio iterativo\n" +"con diversi raggi.\n" +"Incrementa il risultato delle immagini\n" +"con aberrazioni cromatiche molto\n" +"ampie, ma i colori possono esser\n" +"troppo morbidi sulle altre\n" +"immagini." + +#: ../src/iop/censorize.c:77 +msgid "censorize" +msgstr "censura" + +#: ../src/iop/censorize.c:82 +msgid "censorize license plates and body parts for privacy" +msgstr "Censura targhe e parti del corpo per privacy" + +#: ../src/iop/censorize.c:84 ../src/iop/colorin.c:134 +#: ../src/iop/filmicrgb.c:353 ../src/iop/graduatednd.c:147 +msgid "linear or non-linear, RGB, scene-referred" +msgstr "Lineare o non-lineare, RGB, riferito alla scena" + +#: ../src/iop/censorize.c:86 +msgid "special, RGB, scene-referred" +msgstr "Speciale, RGB, riferito alla scena" + +#: ../src/iop/censorize.c:405 +msgid "radius_1" +msgstr "Radius_1" + +#: ../src/iop/censorize.c:407 +msgid "pixelate" +msgstr "Pixellizza" + +#: ../src/iop/censorize.c:409 +msgid "radius_2" +msgstr "Radius_2" + +#: ../src/iop/censorize.c:411 +msgid "noise" +msgstr "Rumore" + +#: ../src/iop/censorize.c:413 +msgid "radius of gaussian blur before pixellation" +msgstr "Raggio della sfocatura gaussiana prima della pixelizzazione" + +#: ../src/iop/censorize.c:414 +msgid "radius of gaussian blur after pixellation" +msgstr "Raggio della sfocatura gaussiana dopo la pixelizzazione" + +#: ../src/iop/censorize.c:415 +msgid "radius of the intermediate pixellation" +msgstr "Raggio della pixelizzazione intermedia" + +#: ../src/iop/censorize.c:416 +msgid "amount of noise to add at the end" +msgstr "Ammontare del rumore da aggiungere alla fine" + +#: ../src/iop/channelmixer.c:126 +msgid "channel mixer" +msgstr "miscelatore canali" + +#: ../src/iop/channelmixer.c:131 +msgid "" +"this module is deprecated. please use the color calibration module instead." +msgstr "" +"Questo modulo è deprecato. Piuttosto usa il modulo calibrazione colore." + +#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:230 +msgid "" +"perform color space corrections\n" +"such as white balance, channels mixing\n" +"and conversions to monochrome emulating film" +msgstr "" +"Effettua correzioni dello spazio colore\n" +"come il bilanciamento del bianco, la miscelazione dei canali\n" +"e le conversioni per simulare le pellicole." + +#: ../src/iop/channelmixer.c:633 +msgid "destination" +msgstr "Destinazione" + +#: ../src/iop/channelmixer.c:640 +msgctxt "channelmixer" +msgid "gray" +msgstr "Grigio" + +#: ../src/iop/channelmixer.c:646 +msgid "amount of red channel in the output channel" +msgstr "Quantità del canale rosso nel canale di uscita" + +#: ../src/iop/channelmixer.c:652 +msgid "amount of green channel in the output channel" +msgstr "Quantità del canale verde nel canale di uscita" + +#: ../src/iop/channelmixer.c:658 +msgid "amount of blue channel in the output channel" +msgstr "Quantità del canale blu nel canale di uscita" + +#: ../src/iop/channelmixer.c:674 ../src/iop/channelmixerrgb.c:588 +msgid "swap R and B" +msgstr "Scambia rosso e blu " + +#: ../src/iop/channelmixer.c:680 ../src/iop/channelmixerrgb.c:562 +msgid "swap G and B" +msgstr "Scambia verde e blu" + +#: ../src/iop/channelmixer.c:686 +msgid "color contrast boost" +msgstr "Aumento contrasto del colore" + +#: ../src/iop/channelmixer.c:692 +msgid "color details boost" +msgstr "Aumento dettagli del colore" + +#: ../src/iop/channelmixer.c:698 +msgid "color artifacts boost" +msgstr "Aumento artefatti del colore" + +#: ../src/iop/channelmixer.c:704 +msgid "B/W luminance-based" +msgstr "B/N basato sulla luminanza" + +#: ../src/iop/channelmixer.c:710 +msgid "B/W artifacts boost" +msgstr "B/N aumento artefatti" + +#: ../src/iop/channelmixer.c:716 +msgid "B/W smooth skin" +msgstr "B/N pelle morbida" + +#: ../src/iop/channelmixer.c:722 +msgid "B/W blue artifacts reduce" +msgstr "B/N riduzione artefatti blu" + +#: ../src/iop/channelmixer.c:729 +msgid "B/W Ilford Delta 100-400" +msgstr "B/N Ilford Delta 100-400" + +#: ../src/iop/channelmixer.c:736 +msgid "B/W Ilford Delta 3200" +msgstr "B/N Ilford Delta 3200" + +#: ../src/iop/channelmixer.c:743 +msgid "B/W Ilford FP4" +msgstr "B/N Ilford FP4" + +#: ../src/iop/channelmixer.c:750 +msgid "B/W Ilford HP5" +msgstr "B/N Ilford HP5" + +#: ../src/iop/channelmixer.c:757 +msgid "B/W Ilford SFX" +msgstr "B/N Ilford SFX" + +#: ../src/iop/channelmixer.c:764 +msgid "B/W Kodak T-Max 100" +msgstr "B/N Kodak T-Max 100" + +#: ../src/iop/channelmixer.c:771 +msgid "B/W Kodak T-max 400" +msgstr "B/N Kodak T-max 400" + +#: ../src/iop/channelmixer.c:778 +msgid "B/W Kodak Tri-X 400" +msgstr "B/N Kodak Tri-X 400" + +#: ../src/iop/channelmixerrgb.c:220 +msgid "color calibration" +msgstr "calibrazione colore" + +#: ../src/iop/channelmixerrgb.c:225 +msgid "channel mixer|white balance|monochrome" +msgstr "Mixer canali | bilanciamento del bianco | monocromo" + +#: ../src/iop/channelmixerrgb.c:235 +msgid "linear, RGB or XYZ" +msgstr "Lineare, RGB o XYZ" + +#: ../src/iop/channelmixerrgb.c:460 +msgid "B&W: luminance-based" +msgstr "B/N basato sulla luminanza" + +#: ../src/iop/channelmixerrgb.c:495 +msgid "B&W: ILFORD HP5+" +msgstr "B/N ILFORD HP5+" + +#: ../src/iop/channelmixerrgb.c:504 +msgid "B&W: ILFORD DELTA 100" +msgstr "B/N ILFORD DELTA 100" + +#: ../src/iop/channelmixerrgb.c:514 +msgid "B&W: ILFORD DELTA 400 - 3200" +msgstr "B/N ILFORD DELTA 400 - 3200" + +#: ../src/iop/channelmixerrgb.c:523 +msgid "B&W: ILFORD FP4+" +msgstr "B/N ILFORD FP4+" + +#: ../src/iop/channelmixerrgb.c:532 +msgid "B&W: Fuji Acros 100" +msgstr "B/N Fuji Acros 100" + +#: ../src/iop/channelmixerrgb.c:549 +msgid "basic channel mixer" +msgstr "Miscelatore canali base" + +#: ../src/iop/channelmixerrgb.c:575 +msgid "swap G and R" +msgstr "Scambia G e R" + +#: ../src/iop/channelmixerrgb.c:1926 +msgid "(daylight)" +msgstr "(Luce diurna)" + +#: ../src/iop/channelmixerrgb.c:1928 +msgid "(black body)" +msgstr "(corpo nero)" + +#: ../src/iop/channelmixerrgb.c:1930 +msgid "(invalid)" +msgstr "(non valido)" + +#: ../src/iop/channelmixerrgb.c:1934 ../src/iop/channelmixerrgb.c:1992 +msgid "very good" +msgstr "Molto buono" + +#: ../src/iop/channelmixerrgb.c:1936 ../src/iop/channelmixerrgb.c:1994 +msgid "good" +msgstr "Buono" + +#: ../src/iop/channelmixerrgb.c:1938 ../src/iop/channelmixerrgb.c:1996 +msgid "passable" +msgstr "Accettabile" + +#: ../src/iop/channelmixerrgb.c:1940 ../src/iop/channelmixerrgb.c:1998 +msgid "bad" +msgstr "Brutto" + +#: ../src/iop/channelmixerrgb.c:1947 +#, c-format +msgid "" +"\n" +"<b>Profile quality report: %s</b>\n" +"input ΔE: \tavg. %.2f ; \tmax. %.2f\n" +"WB ΔE: \tavg. %.2f; \tmax. %.2f\n" +"output ΔE: \tavg. %.2f; \tmax. %.2f\n" +"\n" +"<b>Profile data</b>\n" +"illuminant: \t%.0f K \t%s\n" +"matrix in adaptation space:\n" +"<tt>%+.4f \t%+.4f \t%+.4f\n" +"%+.4f \t%+.4f \t%+.4f\n" +"%+.4f \t%+.4f \t%+.4f</tt>\n" +"\n" +"<b>Normalization values</b>\n" +"exposure compensation: \t%+.2f EV\n" +"black offset: \t%+.4f" +msgstr "" +"\n" +"<b>Rapporto di qualità del profilo: %s</b>\n" +"input ΔE: \tavg. %.2f ; \tmax. %.2f\n" +"WB ΔE: \tavg. %.2f; \tmax. %.2f\n" +"output ΔE: \tavg. %.2f; \tmax. %.2f\n" +"\n" +"<b>Dati profilo</b>\n" +"illuminante: \t%.0f K \t%s\n" +"matrice nello spazio di adattamento:\n" +"<tt>%+.4f \t%+.4f \t%+.4f\n" +"%+.4f \t%+.4f \t%+.4f\n" +"%+.4f \t%+.4f \t%+.4f</tt>\n" +"\n" +"<b>Valori di normalizzazione</b>\n" +"compensazione esposizione: \t%+.2f EV\n" +"scostamento del nero: \t%+.4f" + +#: ../src/iop/channelmixerrgb.c:2003 +#, c-format +msgid "" +"\n" +"<b>Profile quality report: %s</b>\n" +"output ΔE: \tavg. %.2f; \tmax. %.2f\n" +"\n" +"<b>Normalization values</b>\n" +"exposure compensation: \t%+.2f EV\n" +"black offset: \t%+.4f" +msgstr "" +"\n" +"<b>Rapporto di qualità del profilo: %s</b>\n" +"output ΔE : \tavg. %.2f ; \tmax. %.2f\n" +"\n" +"<b>Valori di normalizzazione</b>\n" +"compensazione esposizione: \t%+.2f EV\n" +"scostamento del nero: \t%+.4f" + +#: ../src/iop/channelmixerrgb.c:2054 +msgid "double CAT applied" +msgstr "Applicato doppio CAT" + +#: ../src/iop/channelmixerrgb.c:2055 +msgid "" +"you have 2 instances or more of color calibration,\n" +"all providing chromatic adaptation.\n" +"this can lead to inconsistencies unless you\n" +"use them with masks or know what you are doing." +msgstr "" +"Hai attivato due istanze o più di calibrazione colore,\n" +"tutte impostate per l'adattamento cromatico.\n" +"Questo potrebbe portare a incoerenze, a meno che\n" +"le usi con le maschere o sai cosa stai facendo." + +#: ../src/iop/channelmixerrgb.c:2071 +msgid "white balance applied twice" +msgstr "Bilanciamento del bianco applicato due volte" + +#: ../src/iop/channelmixerrgb.c:2072 +msgid "" +"the color calibration module is enabled and already provides\n" +"chromatic adaptation.\n" +"set the white balance here to camera reference (D65)\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"Il modulo Calibrazione Colore è attivo e già fornisce\n" +"l'adattamento cromatico.\n" +"Imposta il bilanciamento del bianco in riferimento camera (D65)\n" +"oppure disattiva l'adattamento dei colori nel modulo calibrazione colore" + +#: ../src/iop/channelmixerrgb.c:2080 +msgid "white balance module error" +msgstr "Errore modulo bilanciamento del bianco" + +#: ../src/iop/channelmixerrgb.c:2081 +msgid "" +"the white balance module is not using the camera\n" +"reference illuminant, which will cause issues here\n" +"with chromatic adaptation. either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" +"Il modulo di bilanciamento del bianco non sta utilizzando\n" +"la fonte luminosa impostata sulla fotocamera. Questo potrebbe\n" +"causare dei problemi durante la modifica dei colori. E' possibile\n" +"impostarla a Referenza oppure disabilitare la modifica colori." + +#: ../src/iop/channelmixerrgb.c:2095 ../src/iop/channelmixerrgb.c:2104 +msgid "white balance missing" +msgstr "Bilanciamento del bianco mancante" + +#: ../src/iop/channelmixerrgb.c:2096 +msgid "" +"this module is not providing a valid reference illuminant\n" +"causing chromatic adaptation issues in color calibration.\n" +"enable this module and either set it to reference\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"Questo moulo non sta fornendo un riferimento valido\n" +"dell'illuminante generando problemi nell'adattamento\n" +" cromatico in Calibrazione Colore abilita questo modulo\n" +"e o imposti il riferimento o disabiliti l'adattamento\n" +"cromatico in Calibrazione Colore." + +#: ../src/iop/channelmixerrgb.c:2105 +msgid "" +"the white balance module is not providing a valid reference\n" +"illuminant causing issues with chromatic adaptation here.\n" +"enable white balance and either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" +"Il modulo bilanciamento del bianco non sta fornendo un riferimento\n" +"valido dell'illuminante, generando problemi con l'adattamento cromatico " +"qui. \n" +"Abilitare il bilanciamento del bianco e o impostarlo come riferimento\n" +"o disabilitare l'adattamento cromatico qui." + +#: ../src/iop/channelmixerrgb.c:2196 +msgid "auto-detection of white balance completed" +msgstr "Ho terminato il calcolo del bilanciamento del bianco" + +#: ../src/iop/channelmixerrgb.c:2346 +msgid "channelmixerrgb works only on RGB input" +msgstr "MixercanaliRGB lavora solamente su input in RGB" + +#: ../src/iop/channelmixerrgb.c:3692 +#, c-format +msgid "CCT: %.0f K (daylight)" +msgstr "CCT: %.0f K (luce diurna)" + +#: ../src/iop/channelmixerrgb.c:3695 +msgid "" +"approximated correlated color temperature.\n" +"this illuminant can be accurately modeled by a daylight spectrum,\n" +"so its temperature is relevant and meaningful with a D illuminant." +msgstr "" +"Colore temperatura approssimato.\n" +"Questa fonte luminosa può essere gestita con lo\n" +"spettro della luce solare, quindi la sua temperatura\n" +"è rilevante e significativa con una finte luminosa D." + +#: ../src/iop/channelmixerrgb.c:3701 +#, c-format +msgid "CCT: %.0f K (black body)" +msgstr "CCT: %.0f K (corpo nero)" + +#: ../src/iop/channelmixerrgb.c:3704 +msgid "" +"approximated correlated color temperature.\n" +"this illuminant can be accurately modeled by a black body spectrum,\n" +"so its temperature is relevant and meaningful with a Planckian illuminant." +msgstr "" +"Colore temperatura approssimato.\n" +"Questa fonte luminosa può essere modellata con\n" +"un corpo nero, quindi la sua temperatura è rilevante\n" +"e significativa con una fonte luminosa Planckiana." + +#: ../src/iop/channelmixerrgb.c:3710 +#, c-format +msgid "CCT: %.0f K (invalid)" +msgstr "CCT: %.0f K (non valido)" + +#: ../src/iop/channelmixerrgb.c:3713 +msgid "" +"approximated correlated color temperature.\n" +"this illuminant cannot be accurately modeled by a daylight or black body " +"spectrum,\n" +"so its temperature is not relevant and meaningful and you need to use a " +"custom illuminant." +msgstr "" +"Colore temperatura approssimato.\n" +"Questa fonte luminosa non può essere modellata con cura\n" +"da uno spettro solare o corpo nero, quindi la sua temperature\n" +"non è rilevante e significativa e dovrai utilizzare\n" +"una fonte luminosa personalizzata." + +#: ../src/iop/channelmixerrgb.c:3722 +#, c-format +msgid "CCT: undefined" +msgstr "CCT: non definito" + +#: ../src/iop/channelmixerrgb.c:3725 +msgid "" +"the approximated correlated color temperature\n" +"cannot be computed at all so you need to use a custom illuminant." +msgstr "" +"Colore temperatura approssimato.\n" +"Non è stato possibile calcolarlo quindi\n" +"dovrai usare una fonte luminosa personalizzata." + +#: ../src/iop/channelmixerrgb.c:4038 +msgid "white balance successfully extracted from raw image" +msgstr "" +"Il bilanciamento del bianco è stato estratto con successo dall'immagine RAW" + +#. We need to recompute only the full preview +#: ../src/iop/channelmixerrgb.c:4044 +msgid "auto-detection of white balance started…" +msgstr "Il calcolo del bilanciamento del bianco è iniziato..." + +#: ../src/iop/channelmixerrgb.c:4149 +msgid "" +"color calibration: the sum of the gray channel parameters is zero, " +"normalization will be disabled." +msgstr "" +"Calibrazione colore: la somma dei parametri del canale grigio è zero, la " +"normalizzazione verrà disabilitata." + +#. Write report in GUI +#: ../src/iop/channelmixerrgb.c:4194 +#, c-format +msgid "" +"L: \t%.1f %%\n" +"h: \t%.1f °\n" +"c: \t%.1f" +msgstr "" +"L: \t%.1f %%\n" +"h: \t%.1f °\n" +"c: \t%.1f" + +#: ../src/iop/channelmixerrgb.c:4462 ../src/iop/clipping.c:2140 +#: ../src/iop/colorbalancergb.c:1947 ../src/iop/filmicrgb.c:4483 +#: ../src/iop/negadoctor.c:848 ../src/iop/toneequal.c:3372 +#: ../src/libs/image.c:490 ../src/views/lighttable.c:1258 +msgid "page" +msgstr "Pagina" + +#. Page CAT +#: ../src/iop/channelmixerrgb.c:4465 +msgid "CAT" +msgstr "CAT" + +#: ../src/iop/channelmixerrgb.c:4466 +msgid "chromatic adaptation transform" +msgstr "Trasformazione cromatica" + +#: ../src/iop/channelmixerrgb.c:4468 +msgid "adaptation" +msgstr "Modifica" + +#: ../src/iop/channelmixerrgb.c:4471 +msgid "" +"choose the method to adapt the illuminant\n" +"and the colorspace in which the module works: \n" +"• Linear Bradford (1985) is consistent with ICC v4 toolchain.\n" +"• CAT16 (2016) is more robust and accurate.\n" +"• Non-linear Bradford (1985) is the original Bradford,\n" +"it can produce better results than the linear version, but is unreliable.\n" +"• XYZ is a simple scaling in XYZ space. It is not recommended in general.\n" +"• none disables any adaptation and uses pipeline working RGB." +msgstr "" +"Scegli il metodo per adattare l'illuminante\n" +"e lo spazio colore in cui lavora il modulo: \n" +"• Linear Bradford (1985) è consistente con la serie di strumenti ICC v4.\n" +"• CAT16 (2016) è più robusto ed accurato.\n" +"• Bradford non-lineare (1985) è l'originale Bradford,\n" +"può produrre risultati migliori della versione lineare, ma è inaffidabile.\n" +"• XYZ è una semplice scalatura nello spazio XYZ. In generale non è " +"raccomandato.\n" +"• nessuno disabilita ogni adattamento ed usa la coda di sviluppo che lavora " +"in RGB." + +#: ../src/iop/channelmixerrgb.c:4491 +msgid "" +"this is the color of the scene illuminant before chromatic adaptation\n" +"this color will be turned into pure white by the adaptation." +msgstr "" +"Questo è il colore della fonte luminosa prima della modifica cromatica\n" +"Questo colore sarà modificato in bianco puro" + +#: ../src/iop/channelmixerrgb.c:4499 +msgid "picker" +msgstr "Selettore" + +#: ../src/iop/channelmixerrgb.c:4501 ../src/iop/temperature.c:2015 +msgid "set white balance to detected from area" +msgstr "Scegli il bilanciamento del bianco tracciando un'area" + +#: ../src/iop/channelmixerrgb.c:4505 ../src/iop/negadoctor.c:972 +msgid "illuminant" +msgstr "Fonte luminosa" + +#: ../src/iop/channelmixerrgb.c:4511 ../src/iop/temperature.c:2072 +msgid "temperature" +msgstr "Temperatura" + +#: ../src/iop/channelmixerrgb.c:4542 +msgid "area color mapping" +msgstr "Mappatura dei colori dell'area" + +#: ../src/iop/channelmixerrgb.c:4548 +msgid "" +"define a target chromaticity (hue and chroma) for a particular region of the " +"image (the control sample), which you then match against the same target " +"chromaticity in other images. the control sample can either be a critical " +"part of your subject or a non-moving and consistently-lit surface over your " +"series of images." +msgstr "" +"Definisci una cromaticità target (tonalità e chroma) per una regione " +"dell'immagine particolare (il campione di controllo), che poi confronterai " +"con la stessa cromaticità obiettivo in altre immagini. Il campione di " +"controllo può altresì essere una parte criticadel tuo soggetto o una " +"superficie stabile illuminata uniformemente sopra le tue serie di immagini." + +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/channelmixerrgb.c:4570 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/channelmixerrgb.c:4641 +msgid "mapping" +msgstr "Mappatura" + +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/exposure.c:1206 +msgid "area mode" +msgstr "Modo area" + +#: ../src/iop/channelmixerrgb.c:4556 +msgid "" +"\"correction\" automatically adjust the illuminant\n" +"such that the input color is mapped to the target.\n" +"\"measure\" simply shows how an input color is mapped by the CAT\n" +"and can be used to sample a target." +msgstr "" +"\"Correzione\" regola automaticamente l'illuminante\n" +"come se il colore di ingresso fosse mappato sull'obiettivo.\n" +"\"Misura\" mostra semplicemente come il colore di ingresso è mappato dal " +"CAT\n" +"e può esser usato come campione obiettivo." + +#: ../src/iop/channelmixerrgb.c:4561 ../src/iop/exposure.c:1212 +msgid "correction" +msgstr "Correzione" + +#: ../src/iop/channelmixerrgb.c:4562 ../src/iop/exposure.c:1213 +msgid "measure" +msgstr "Misura" + +#: ../src/iop/channelmixerrgb.c:4568 +msgid "take channel mixing into account" +msgstr "Prendi la miscelazione canale nell'account" + +#: ../src/iop/channelmixerrgb.c:4575 +msgid "" +"compute the target by taking the channel mixing into account.\n" +"if disabled, only the CAT is considered." +msgstr "" +"Calcola l'obiettivo prendendo la miscelazione canale nell'account.\n" +"Se disabilitato, è considerato solo il CAT." + +#: ../src/iop/channelmixerrgb.c:4587 ../src/iop/exposure.c:1220 +msgctxt "section" +msgid "input" +msgstr "Input" + +#: ../src/iop/channelmixerrgb.c:4594 ../src/iop/exposure.c:1228 +msgid "the input color that should be mapped to the target" +msgstr "Il colore di ingresso che deve esser mappato all'obiettivo" + +#: ../src/iop/channelmixerrgb.c:4600 +msgid "" +"L: \tN/A\n" +"h: \tN/A\n" +"c: \tN/A" +msgstr "" +"L: \tN/A\n" +"h: \tN/A\n" +"c: \tN/A" + +#: ../src/iop/channelmixerrgb.c:4603 ../src/iop/exposure.c:1236 +msgid "these LCh coordinates are computed from CIE Lab 1976 coordinates" +msgstr "Queste coordinate LCh sono calcolate dalle coordinate CIE Lab 1976" + +#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/exposure.c:1243 +msgctxt "section" +msgid "target" +msgstr "Destinazione" + +#: ../src/iop/channelmixerrgb.c:4618 +msgid "the desired target color after mapping" +msgstr "Il colore obiettivo desiderato dopo la mappatura" + +#: ../src/iop/channelmixerrgb.c:4657 +msgid "input R" +msgstr "R in ingresso" + +#: ../src/iop/channelmixerrgb.c:4662 +msgid "input G" +msgstr "G in ingresso" + +#: ../src/iop/channelmixerrgb.c:4667 +msgid "input B" +msgstr "B in ingresso" + +#: ../src/iop/channelmixerrgb.c:4677 +msgid "output R" +msgstr "Uscita R" + +#: ../src/iop/channelmixerrgb.c:4678 +msgid "output G" +msgstr "Uscita G" + +#: ../src/iop/channelmixerrgb.c:4679 +msgid "output B" +msgstr "Uscita B" + +#: ../src/iop/channelmixerrgb.c:4681 +msgid "colorfulness" +msgstr "Colorazione" + +#: ../src/iop/channelmixerrgb.c:4681 +msgid "output colorfulness" +msgstr "Colorazione di uscita" + +#: ../src/iop/channelmixerrgb.c:4685 +msgid "output brightness" +msgstr "Luminosità di uscita" + +#: ../src/iop/channelmixerrgb.c:4688 +msgid "output gray" +msgstr "Grigio d'uscita" + +#: ../src/iop/channelmixerrgb.c:4703 +msgid "calibrate with a color checker" +msgstr "Calibra con un color checker" + +#: ../src/iop/channelmixerrgb.c:4708 +msgid "use a color checker target to autoset CAT and channels" +msgstr "" +"Usa un campione colore obiettivo per impostare automaticamente CAT e canali" + +#: ../src/iop/channelmixerrgb.c:4715 ../src/iop/channelmixerrgb.c:4728 +#: ../src/iop/channelmixerrgb.c:4746 ../src/iop/channelmixerrgb.c:4764 +#: ../src/iop/channelmixerrgb.c:4773 ../src/iop/channelmixerrgb.c:4781 +msgid "calibrate" +msgstr "Calibra" + +#: ../src/iop/channelmixerrgb.c:4715 +msgid "chart" +msgstr "Diagramma" + +#: ../src/iop/channelmixerrgb.c:4716 +msgid "choose the vendor and the type of your chart" +msgstr "Scegli il venditore ed il tipo del tuo diagramma" + +#: ../src/iop/channelmixerrgb.c:4718 +msgid "Xrite ColorChecker 24 pre-2014" +msgstr "Xrite ColorChecker 24 pre-2014" + +#: ../src/iop/channelmixerrgb.c:4719 +msgid "Xrite ColorChecker 24 post-2014" +msgstr "Xrite ColorChecker 24 post-2014" + +#: ../src/iop/channelmixerrgb.c:4720 +msgid "Datacolor SpyderCheckr 24 pre-2018" +msgstr "Datacolor SpyderCheckr 24 pre-2018" + +#: ../src/iop/channelmixerrgb.c:4721 +msgid "Datacolor SpyderCheckr 24 post-2018" +msgstr "Datacolor SpyderCheckr 24 post-2018" + +#: ../src/iop/channelmixerrgb.c:4722 +msgid "Datacolor SpyderCheckr 48 pre-2018" +msgstr "Datacolor SpyderCheckr 48 pre-2018" + +#: ../src/iop/channelmixerrgb.c:4723 +msgid "Datacolor SpyderCheckr 48 post-2018" +msgstr "Datacolor SpyderCheckr 48 post-2018" + +#: ../src/iop/channelmixerrgb.c:4724 +msgid "Datacolor SpyderCheckr Photo" +msgstr "Datacolor SpyderCheckr Photo" + +#: ../src/iop/channelmixerrgb.c:4728 +msgid "optimize for" +msgstr "Ottimizza per" + +#: ../src/iop/channelmixerrgb.c:4729 +msgid "" +"choose the colors that will be optimized with higher priority.\n" +"neutral colors gives the lowest average delta E but a high maximum delta E\n" +"saturated colors gives the lowest maximum delta E but a high average delta " +"E\n" +"none is a trade-off between both\n" +"the others are special behaviors to protect some hues" +msgstr "" +"Scegli i colori che andranno ottimizzati con maggior priorità.\n" +"Colori neutri danno il più basso delta E medio ma un maggior valore massimo " +"del delta E\n" +"Colori saturi danno il più basso valore massimo di delta E ma un maggiore " +"delta E medio\n" +"Nessuno è un compromesso tra i due\n" +"Gli altri sono comportamenti speciali per conservare alcune tonalità" + +#: ../src/iop/channelmixerrgb.c:4736 +msgid "neutral colors" +msgstr "Colori neutrali" + +#: ../src/iop/channelmixerrgb.c:4738 +msgid "skin and soil colors" +msgstr "Colori della pelle e del suolo" + +#: ../src/iop/channelmixerrgb.c:4739 +msgid "foliage colors" +msgstr "Colori del foliage" + +#: ../src/iop/channelmixerrgb.c:4740 +msgid "sky and water colors" +msgstr "Colori del cielo e dell'acqua" + +#: ../src/iop/channelmixerrgb.c:4741 +msgid "average delta E" +msgstr "Delta E medio" + +#: ../src/iop/channelmixerrgb.c:4742 +msgid "maximum delta E" +msgstr "Delta E massimo" + +#: ../src/iop/channelmixerrgb.c:4746 +msgid "patch scale" +msgstr "Scala del campione" + +#: ../src/iop/channelmixerrgb.c:4749 +msgid "" +"reduce the radius of the patches to select the more or less central part.\n" +"useful when the perspective correction is sloppy or\n" +"the patches frame cast a shadows on the edges of the patch." +msgstr "" +"Riduci il raggio dei campioni per selezionare più o meno parte centrale.\n" +"Utile quando la correzione prospettica è approssimativa o \n" +"il riquadro dei campioni proietta ombre sui margini del campione." + +#: ../src/iop/channelmixerrgb.c:4759 +msgid "the delta E is using the CIE 2000 formula" +msgstr "Il delta E sta utilizzando la formula CIE 2000" + +#: ../src/iop/channelmixerrgb.c:4764 +msgid "accept" +msgstr "Accetta" + +#: ../src/iop/channelmixerrgb.c:4770 +msgid "accept the computed profile and set it in the module" +msgstr "Accetta il profilo corrotto ed impostalo nel modulo" + +#: ../src/iop/channelmixerrgb.c:4773 +msgid "recompute" +msgstr "Ricalcola" + +#: ../src/iop/channelmixerrgb.c:4777 +msgid "recompute the profile" +msgstr "Ricalcola il profilo" + +#: ../src/iop/channelmixerrgb.c:4781 +msgid "validate" +msgstr "Valida" + +#: ../src/iop/channelmixerrgb.c:4785 +msgid "check the output delta E" +msgstr "Controlla il delta E di output" + +#: ../src/iop/choleski.h:290 ../src/iop/choleski.h:390 +msgid "" +"Choleski decomposition failed to allocate memory, check your RAM settings" +msgstr "" +"La decomposizione Coleski non è riuscita ad allocare la memoria. Verifica le " +"impostazioni della RAM" + +#: ../src/iop/clahe.c:74 +msgid "" +"this module is deprecated. better use new local contrast module instead." +msgstr "Questo modulo è deprecato. Utilizzare il modulo Contrasto Locale" + +#: ../src/iop/clahe.c:339 ../src/iop/sharpen.c:440 +msgid "amount" +msgstr "Quantità" + +#: ../src/iop/clahe.c:348 +msgid "size of features to preserve" +msgstr "Dimensione dei dettagli da preservare" + +#: ../src/iop/clahe.c:349 ../src/iop/nlmeans.c:467 +msgid "strength of the effect" +msgstr "Intensità dell'effetto" + +#: ../src/iop/clipping.c:347 +msgid "" +"this module is deprecated. please use the crop, orientation and/or rotate " +"and perspective modules instead." +msgstr "" +"Questo modulo è deprecato. Piuttosto usa i moduli taglio, orientazione e/o " +"rotazione e prospettiva." + +#: ../src/iop/clipping.c:352 +msgid "crop and rotate" +msgstr "ritaglia e ruota" + +#: ../src/iop/clipping.c:357 +msgid "reframe|perspective|keystone|distortion" +msgstr "Ritaglia | prospettiva | poligono | distorsione" + +#: ../src/iop/clipping.c:362 +msgid "change the framing and correct the perspective" +msgstr "Modifica il ritaglio e corregge la prospettiva" + +#: ../src/iop/clipping.c:1447 ../src/iop/clipping.c:2173 ../src/iop/crop.c:501 +#: ../src/iop/crop.c:1101 +msgid "original image" +msgstr "Immagine originale" + +#: ../src/iop/clipping.c:1751 ../src/iop/crop.c:808 +msgid "invalid ratio format. it should be \"number:number\"" +msgstr "Rapporto di formato non valido. Dovrebbe essere \"numero:numero\"" + +#: ../src/iop/clipping.c:1767 ../src/iop/crop.c:824 +msgid "invalid ratio format. it should be a positive number" +msgstr "Rapporto di formato non valido. Dovrebbe essere un numero positivo" + +#: ../src/iop/clipping.c:1956 ../src/iop/clipping.c:2164 +msgid "full" +msgstr "Completo" + +#: ../src/iop/clipping.c:1957 +msgid "old system" +msgstr "Vecchio sistema" + +#: ../src/iop/clipping.c:1958 +msgid "correction applied" +msgstr "Correzione applicata" + +#: ../src/iop/clipping.c:2142 +msgid "main" +msgstr "principale" + +#: ../src/iop/clipping.c:2151 +msgid "mirror image horizontally and/or vertically" +msgstr "Rifletti l'immagine orizzontalmente e/o verticalmente" + +#: ../src/iop/clipping.c:2154 +msgid "angle" +msgstr "Angolo" + +#: ../src/iop/clipping.c:2157 +msgid "right-click and drag a line on the image to drag a straight line" +msgstr "" +"Tasto destro e trascina una linea sull'immagine per tracciare una linea retta" + +#: ../src/iop/clipping.c:2160 +msgid "keystone" +msgstr "Distorsione trapezoidale" + +#: ../src/iop/clipping.c:2165 +msgid "set perspective correction for your image" +msgstr "Imposta la correzione prospettica per la tua immagine" + +#: ../src/iop/clipping.c:2172 ../src/iop/crop.c:1100 +msgid "freehand" +msgstr "Mano libera" + +#: ../src/iop/clipping.c:2175 ../src/iop/crop.c:1103 +msgid "10:8 in print" +msgstr "10:8 in stampa" + +#: ../src/iop/clipping.c:2176 ../src/iop/crop.c:1104 +msgid "5:4, 4x5, 8x10" +msgstr "5:4, 4x5, 8x10" + +#: ../src/iop/clipping.c:2177 ../src/iop/crop.c:1105 +msgid "11x14" +msgstr "11x14" + +#: ../src/iop/clipping.c:2178 ../src/iop/crop.c:1106 +msgid "8.5x11, letter" +msgstr "8.5x11, lettera" + +#: ../src/iop/clipping.c:2179 ../src/iop/crop.c:1107 +msgid "4:3, VGA, TV" +msgstr "4:3, VGA, TV" + +#: ../src/iop/clipping.c:2180 ../src/iop/crop.c:1108 +msgid "5x7" +msgstr "5x7" + +#: ../src/iop/clipping.c:2181 ../src/iop/crop.c:1109 +msgid "ISO 216, DIN 476, A4" +msgstr "ISO 216, DIN 476, A4" + +#: ../src/iop/clipping.c:2182 ../src/iop/crop.c:1110 +msgid "3:2, 4x6, 35mm" +msgstr "3:2, 4x6, 35mm" + +#: ../src/iop/clipping.c:2183 ../src/iop/crop.c:1111 +msgid "16:10, 8x5" +msgstr "16:10, 8x5" + +#: ../src/iop/clipping.c:2185 ../src/iop/crop.c:1113 +msgid "16:9, HDTV" +msgstr "16:9, HDTV" + +#: ../src/iop/clipping.c:2186 ../src/iop/crop.c:1114 +msgid "widescreen" +msgstr "Schermo panoramico" + +#: ../src/iop/clipping.c:2187 ../src/iop/crop.c:1115 +msgid "2:1, univisium" +msgstr "2:1, univisium" + +#: ../src/iop/clipping.c:2188 ../src/iop/crop.c:1116 +msgid "cinemascope" +msgstr "Cinemascope" + +#: ../src/iop/clipping.c:2189 ../src/iop/crop.c:1117 +msgid "21:9" +msgstr "21:9" + +#: ../src/iop/clipping.c:2190 ../src/iop/crop.c:1118 +msgid "anamorphic" +msgstr "Anamorfico" + +#: ../src/iop/clipping.c:2191 ../src/iop/crop.c:1119 +msgid "3:1, panorama" +msgstr "3:1, panorama" + +#: ../src/iop/clipping.c:2223 ../src/iop/clipping.c:2235 ../src/iop/crop.c:1155 +#: ../src/iop/crop.c:1171 +#, c-format +msgid "invalid ratio format for `%s'. it should be \"number:number\"" +msgstr "" +"Formato invalido per le proporzioni `%s'. Deve essere \"numero:numero\"" + +#: ../src/iop/clipping.c:2282 ../src/iop/crop.c:1222 +msgid "" +"set the aspect ratio\n" +"the list is sorted: from most square to least square\n" +"to enter custom aspect ratio open the combobox and type ratio in x:y or " +"decimal format" +msgstr "" +"Imposta le proporzioni\n" +"La lista è ordinata: dal più quadrato al meno quadrato\n" +"Per inserire un rapporto di proporzione personalizzato apri la combobox e " +"digita il rapporto in x:y o in formato decimale" + +#: ../src/iop/clipping.c:2289 ../src/iop/crop.c:1236 +msgid "margins" +msgstr "Margini" + +#: ../src/iop/clipping.c:2294 ../src/iop/crop.c:1246 +msgid "the left margin cannot overlap with the right margin" +msgstr "Il margine sinistro non può sovrapporsi con quello destro" + +#: ../src/iop/clipping.c:2301 ../src/iop/crop.c:1254 +msgid "the right margin cannot overlap with the left margin" +msgstr "Il margine destro non può sovrapporsi con quello sinistro" + +#: ../src/iop/clipping.c:2306 ../src/iop/crop.c:1260 +msgid "the top margin cannot overlap with the bottom margin" +msgstr "Il margine superiore non può sovrapporsi a quello inferiore" + +#: ../src/iop/clipping.c:2313 ../src/iop/crop.c:1268 +msgid "the bottom margin cannot overlap with the top margin" +msgstr "Il margine inferiore non può sovrapporsi a quello superiore" + +#: ../src/iop/clipping.c:3059 +msgid "<b>commit</b>: double-click, <b>straighten</b>: right-drag" +msgstr "" +"<b>Applicare</b>: doppio click, <b>Raddrizzare</b>: trascina col tasto " +"destro del mouse" + +#: ../src/iop/clipping.c:3063 +msgid "" +"<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag\n" +"<b>straighten</b>: right-drag" +msgstr "" +"<b>Ridimensionare</b>: trascina, <b>mantenere le proporzioni</b>: " +"Maiusc+trascina\n" +"<b>Raddrizzare</b>: destro-trascina" + +#: ../src/iop/clipping.c:3104 +msgid "<b>move control point</b>: drag" +msgstr "<b>Sposta il punto di controllo</b>: trascina" + +#: ../src/iop/clipping.c:3109 +msgid "<b>move line</b>: drag, <b>toggle symmetry</b>: click ꝏ" +msgstr "" +"<b>Muovi la linea</b>: trascina, <b>Attiva/disattiva la simmetria</b>: " +"clicca <tt>ꝏ</tt>" + +#: ../src/iop/clipping.c:3114 +msgid "" +"<b>apply</b>: click <tt>ok</tt>, <b>toggle symmetry</b>: click ꝏ\n" +"<b>move line/control point</b>: drag" +msgstr "" +"<b>Applica</b>: clicca <tt>ok</tt>, <b>Attiva/disattiva simmetria</b>: " +"clicca ꝏ\n" +"<b>Muovi la linea/il punto di controllo</b>: trascina" + +#: ../src/iop/clipping.c:3121 +msgid "" +"<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" +"b>: ctrl+drag\n" +"<b>straighten</b>: right-drag, <b>commit</b>: double-click" +msgstr "" +"<b>Sposta</b>: trascina, <b>Sposta verticalmente</b>: Maiusc+trascina, " +"<b>Sposta orizzontalmente</b>: Ctrl+trascina\n" +"<b>Raddrizza</b>: trascina con il pulsante destro del mouse, <b>Applica</b>: " +"doppio click" + +#: ../src/iop/clipping.c:3380 ../src/iop/crop.c:1770 +#, c-format +msgid "[%s on borders] crop" +msgstr "[%s on borders] ritaglia" + +#: ../src/iop/clipping.c:3382 ../src/iop/crop.c:1772 +#, c-format +msgid "[%s on borders] crop keeping ratio" +msgstr "[%s on borders] ritaglia e mantieni le proporzioni" + +#: ../src/iop/colisa.c:79 +msgid "this module is deprecated. please use colorbalance RGB module instead." +msgstr "" +"Questo modulo è deprecato. Si prega invece di usare il modulo Bilanciamento " +"Colore RGB" + +#: ../src/iop/colisa.c:84 +msgid "contrast brightness saturation" +msgstr "Contrasto luminosità saturazione" + +#: ../src/iop/colisa.c:89 +msgid "adjust the look of the image" +msgstr "Modifica l'aspetto dell'immagine" + +#: ../src/iop/colisa.c:304 +msgid "color saturation adjustment" +msgstr "Regolazione saturazione colore" + +#: ../src/iop/colorbalance.c:152 +msgid "color balance" +msgstr "bilanciamento colore" + +#: ../src/iop/colorbalance.c:157 +msgid "lift gamma gain|cdl|color grading|contrast|saturation|hue" +msgstr "" +"Aumenta guadagno gamma|cdl|gradiente colore|contrasto|saturazione|tonalità" + +#: ../src/iop/colorbalance.c:162 +msgid "shift colors selectively by luminance range" +msgstr "Sposta selettivamente i colori su un intervallo di luminanza" + +#: ../src/iop/colorbalance.c:166 +msgid "non-linear, Lab, scene-referred" +msgstr "Non lineare, Lab, riferito alla scena" + +#. these blobs were exported as dtstyle and copied from there: +#: ../src/iop/colorbalance.c:304 +msgid "split-toning teal-orange (2nd instance)" +msgstr "Divisione dei toni acquamarina-arancio (2^ istanza)" + +#: ../src/iop/colorbalance.c:307 +msgid "split-toning teal-orange (1st instance)" +msgstr "Divisione dei toni acquamarina-arancio (1^ istanza)" + +#: ../src/iop/colorbalance.c:311 +msgid "generic film" +msgstr "Pellicola generica" + +#: ../src/iop/colorbalance.c:315 +msgid "similar to Kodak Portra" +msgstr "Simile a Kodak Portra" + +#: ../src/iop/colorbalance.c:319 +msgid "similar to Kodak Ektar" +msgstr "Simile a Kodak Ektar" + +#: ../src/iop/colorbalance.c:323 +msgid "similar to Kodachrome" +msgstr "Simile a Kodachrome" + +#: ../src/iop/colorbalance.c:964 +msgid "optimize luma from patches" +msgstr "Ottimizza la luminanza dai campioni" + +#: ../src/iop/colorbalance.c:966 ../src/iop/colorbalance.c:2085 +msgid "optimize luma" +msgstr "Ottimizza la luminanza" + +#: ../src/iop/colorbalance.c:970 +msgid "neutralize colors from patches" +msgstr "Neutralizza i colori dai campioni" + +#: ../src/iop/colorbalance.c:972 ../src/iop/colorbalance.c:2091 +msgid "neutralize colors" +msgstr "Neutralizza colori" + +#: ../src/iop/colorbalance.c:1758 +msgctxt "color" +msgid "offset" +msgstr "Spostamento" + +#: ../src/iop/colorbalance.c:1758 +msgctxt "color" +msgid "power" +msgstr "Potenzia" + +#: ../src/iop/colorbalance.c:1758 +msgctxt "color" +msgid "slope" +msgstr "Slope" + +#: ../src/iop/colorbalance.c:1759 +msgctxt "color" +msgid "lift" +msgstr "Lift" + +#: ../src/iop/colorbalance.c:1759 +msgctxt "color" +msgid "gamma" +msgstr "Gamma " + +#: ../src/iop/colorbalance.c:1759 +msgctxt "color" +msgid "gain" +msgstr "Gain" + +#: ../src/iop/colorbalance.c:1762 +msgctxt "section" +msgid "shadows: lift / offset" +msgstr "Ombre: lift / offset" + +#: ../src/iop/colorbalance.c:1763 +msgctxt "section" +msgid "mid-tones: gamma / power" +msgstr "Mezzi toni: gamma / potenza" + +#: ../src/iop/colorbalance.c:1764 +msgctxt "section" +msgid "highlights: gain / slope" +msgstr "Alte luci: guadagno / riduzione" + +#: ../src/iop/colorbalance.c:1788 +msgid "shadows / mid-tones / highlights" +msgstr "Ombre / Mezzitoni / Alte luci" + +#: ../src/iop/colorbalance.c:1885 ../src/iop/colorbalance.c:1894 +msgid "color-grading mapping method" +msgstr "Metodo di mappatura del gradiente-colore" + +#: ../src/iop/colorbalance.c:1889 +msgid "color control sliders" +msgstr "Selettori scorrevoli controllo colore" + +#: ../src/iop/colorbalance.c:1890 ../src/libs/colorpicker.c:51 +msgid "HSL" +msgstr "HSL" + +#: ../src/iop/colorbalance.c:1891 +msgid "RGBL" +msgstr "RGBL" + +#: ../src/iop/colorbalance.c:1903 +msgctxt "section" +msgid "master" +msgstr "Master" + +#: ../src/iop/colorbalance.c:1909 +msgid "saturation correction before the color balance" +msgstr "Correzione della saturazione prima del bilanciamento colore" + +#: ../src/iop/colorbalance.c:1915 +msgid "saturation correction after the color balance" +msgstr "Correzione della saturazione dopo il bilanciamento colore" + +#: ../src/iop/colorbalance.c:1920 +msgid "adjust to match a neutral tone" +msgstr "Regola per arrivare ad un tono neutro" + +#. is set in _configure_slider_blocks +#: ../src/iop/colorbalance.c:1978 +msgid "click to cycle layout" +msgstr "Click per passare da uno schema ad un altro" + +#: ../src/iop/colorbalance.c:2012 +msgid "factor" +msgstr "Fattore" + +#: ../src/iop/colorbalance.c:2026 +msgid "select the hue" +msgstr "Seleziona la tonalità" + +#: ../src/iop/colorbalance.c:2038 +msgid "select the saturation" +msgstr "Seleziona la saturazione" + +#: ../src/iop/colorbalance.c:2057 +msgid "factor of lift/offset" +msgstr "Fattore del lift/offset" + +#: ../src/iop/colorbalance.c:2058 +msgid "factor of red for lift/offset" +msgstr "Fattore del rosso per il lift/offset" + +#: ../src/iop/colorbalance.c:2059 +msgid "factor of green for lift/offset" +msgstr "Fattore del verde per il lift/offset" + +#: ../src/iop/colorbalance.c:2060 +msgid "factor of blue for lift/offset" +msgstr "Fattore del blu per il lift/offset" + +#: ../src/iop/colorbalance.c:2063 +msgid "factor of gamma/power" +msgstr "Fattore della gamma/power" + +#: ../src/iop/colorbalance.c:2064 +msgid "factor of red for gamma/power" +msgstr "Fattore del rosso per la gamma/power" + +#: ../src/iop/colorbalance.c:2065 +msgid "factor of green for gamma/power" +msgstr "Fattore del verde per la gamma/power" + +#: ../src/iop/colorbalance.c:2066 +msgid "factor of blue for gamma/power" +msgstr "Fattore del blu per la gamma/power" + +#: ../src/iop/colorbalance.c:2069 +msgid "factor of gain/slope" +msgstr "Fattore di guadano/calo" + +#: ../src/iop/colorbalance.c:2070 +msgid "factor of red for gain/slope" +msgstr "Fattore del rosso per il guadagno/calo" + +#: ../src/iop/colorbalance.c:2071 +msgid "factor of green for gain/slope" +msgstr "Fattore del verde per il guadagno/calo" + +#: ../src/iop/colorbalance.c:2072 +msgid "factor of blue for gain/slope" +msgstr "Fattore del blu per il guadagno/calo" + +#: ../src/iop/colorbalance.c:2081 +msgctxt "section" +msgid "auto optimizers" +msgstr "Ottimizzatori automatici" + +#: ../src/iop/colorbalance.c:2086 +msgid "fit the whole histogram and center the average luma" +msgstr "Aggiusta l'intero istogramma e centra il valore medio di luminanza" + +#: ../src/iop/colorbalance.c:2092 +msgid "optimize the RGB curves to remove color casts" +msgstr "Ottimizza le curve RGB per rimuovere le dominanti di colore" + +#: ../src/iop/colorbalancergb.c:173 +msgid "color balance rgb" +msgstr "bilanciamento colore RGB" + +#: ../src/iop/colorbalancergb.c:178 +msgid "" +"offset power slope|cdl|color grading|contrast|chroma_highlights|hue|vibrance|" +"saturation" +msgstr "" +"offset power slope|cdl|gradazione colore|contrasto|cromaticità alte luci|" +"tonalità|vibranza|saturazione" + +#: ../src/iop/colorbalancergb.c:183 +msgid "" +"color grading tools using alpha masks to separate\n" +"shadows, mid-tones and highlights" +msgstr "" +"Strumento di gradazione colori che usa maschere alfa per separare \n" +"ombre, mezzitoni e alteluci" + +#: ../src/iop/colorbalancergb.c:536 +msgid "add basic colorfulness (legacy)" +msgstr "Aggiungi colorazione di base (legacy)" + +#: ../src/iop/colorbalancergb.c:545 +msgid "basic colorfulness: natural skin" +msgstr "Colorazione di base: pelle naturale" + +#: ../src/iop/colorbalancergb.c:551 +msgid "basic colorfulness: vibrant colors" +msgstr "Colorazione di base: colori vibranti" + +#: ../src/iop/colorbalancergb.c:557 +msgid "basic colorfulness: standard" +msgstr "Colorazione di base: standard" + +#: ../src/iop/colorbalancergb.c:1022 +msgid "colorbalance works only on RGB input" +msgstr "Il bilanciamento colore lavora solo su input RGB" + +#: ../src/iop/colorbalancergb.c:1580 ../src/iop/colorzones.c:2394 +#: ../src/iop/retouch.c:2069 ../src/iop/toneequal.c:1996 +msgid "cannot display masks when the blending mask is displayed" +msgstr "" +"Non posso visualizzare le maschere mentre viene visualizzata una maschera di " +"fusione" + +#. Page master +#: ../src/iop/colorbalancergb.c:1950 +msgid "master" +msgstr "Master" + +#: ../src/iop/colorbalancergb.c:1950 +msgid "global grading" +msgstr "Gradiente globale" + +#: ../src/iop/colorbalancergb.c:1954 +msgid "rotate all hues by an angle, at the same luminance" +msgstr "Ruota tutte le tonalità con un angolo, a parità di luminanza" + +#: ../src/iop/colorbalancergb.c:1960 +msgid "increase colorfulness mostly on low-chroma colors" +msgstr "Aumenta la colorazione soprattutto sui colori a bassa cromaticità" + +#: ../src/iop/colorbalancergb.c:1966 +msgid "increase the contrast at constant chromaticity" +msgstr "Aumenta il contrasto con cromaticità costante" + +#: ../src/iop/colorbalancergb.c:1968 +msgctxt "section" +msgid "linear chroma grading" +msgstr "Gradiente di cromaticità lineare" + +#: ../src/iop/colorbalancergb.c:1975 +msgid "increase colorfulness at same luminance globally" +msgstr "Aumenta la colorazione alla stessa luminanza globale" + +#: ../src/iop/colorbalancergb.c:1980 +msgid "increase colorfulness at same luminance mostly in shadows" +msgstr "Aumenta la colorazione alla stessa luminanza soprattutto sulle ombre" + +#: ../src/iop/colorbalancergb.c:1985 +msgid "increase colorfulness at same luminance mostly in mid-tones" +msgstr "Aumenta la colorazione alla stessa luminanza soprattutto nei toni medi" + +#: ../src/iop/colorbalancergb.c:1990 +msgid "increase colorfulness at same luminance mostly in highlights" +msgstr "" +"Aumenta la colorazione alla stessa luminanza soprattutto alle alte luci" + +#: ../src/iop/colorbalancergb.c:1992 +msgctxt "section" +msgid "perceptual saturation grading" +msgstr "Gradiente saturazione percettiva" + +#: ../src/iop/colorbalancergb.c:1998 +msgid "add or remove saturation by an absolute amount" +msgstr "Aggiungi o togli saturazione attraverso un ammontare assoluto" + +#: ../src/iop/colorbalancergb.c:2003 ../src/iop/colorbalancergb.c:2008 +#: ../src/iop/colorbalancergb.c:2013 +msgid "" +"increase or decrease saturation proportionally to the original pixel " +"saturation" +msgstr "" +"Aumenta o riduci la saturazione proporzionalmente alla saturazione originale " +"dei pixel" + +#: ../src/iop/colorbalancergb.c:2015 +msgctxt "section" +msgid "perceptual brilliance grading" +msgstr "Gradiente percettivo di brillantezza" + +#: ../src/iop/colorbalancergb.c:2016 +msgid "brilliance" +msgstr "Brillantezza" + +#: ../src/iop/colorbalancergb.c:2021 +msgid "add or remove brilliance by an absolute amount" +msgstr "Aggiungi o togli brillantezza attraverso un ammontare assoluto" + +#: ../src/iop/colorbalancergb.c:2026 ../src/iop/colorbalancergb.c:2031 +#: ../src/iop/colorbalancergb.c:2036 +msgid "" +"increase or decrease brilliance proportionally to the original pixel " +"brilliance" +msgstr "" +"Aumenta o riduci la brillantezza proporzionalmente a quella originale dei " +"pixel" + +#. Page 4-ways +#: ../src/iop/colorbalancergb.c:2039 +msgid "4 ways" +msgstr "4 vie" + +#: ../src/iop/colorbalancergb.c:2039 +msgid "selective color grading" +msgstr "Gradiente selettivo colore" + +#: ../src/iop/colorbalancergb.c:2041 +msgctxt "section" +msgid "global offset" +msgstr "Spostamento globale" + +#: ../src/iop/colorbalancergb.c:2048 +msgid "global luminance offset" +msgstr "Spostamento della luminanza globale" + +#: ../src/iop/colorbalancergb.c:2053 +msgid "hue of the global color offset" +msgstr "Tonalità della compensazione globale del colore" + +#: ../src/iop/colorbalancergb.c:2059 +msgid "chroma of the global color offset" +msgstr "Cromaticità della compensazione globale del colore" + +#: ../src/iop/colorbalancergb.c:2061 +msgctxt "section" +msgid "shadows lift" +msgstr "Aumento ombre" + +#: ../src/iop/colorbalancergb.c:2062 +msgid "lift" +msgstr "Lift" + +#: ../src/iop/colorbalancergb.c:2068 +msgid "luminance gain in shadows" +msgstr "Guadagno di luminanza nelle ombre" + +#: ../src/iop/colorbalancergb.c:2073 +msgid "hue of the color gain in shadows" +msgstr "Tonalità del guadagno colore nelle ombre" + +#: ../src/iop/colorbalancergb.c:2079 +msgid "chroma of the color gain in shadows" +msgstr "Cromaticità del guadagno colore nelle ombre" + +#: ../src/iop/colorbalancergb.c:2081 +msgctxt "section" +msgid "highlights gain" +msgstr "Guadagno alteluci" + +#: ../src/iop/colorbalancergb.c:2082 +msgid "gain" +msgstr "Gain" + +#: ../src/iop/colorbalancergb.c:2088 +msgid "luminance gain in highlights" +msgstr "Guadagno di luminanza nelle alte luci" + +#: ../src/iop/colorbalancergb.c:2093 +msgid "hue of the color gain in highlights" +msgstr "Tonalità del guadagno colore nelle alte luci" + +#: ../src/iop/colorbalancergb.c:2099 +msgid "chroma of the color gain in highlights" +msgstr "Cromaticità del guadagno colore nelle alte luci" + +#: ../src/iop/colorbalancergb.c:2101 +msgctxt "section" +msgid "power" +msgstr "Potenzia" + +#: ../src/iop/colorbalancergb.c:2102 +msgid "power" +msgstr "Potenzia" + +#: ../src/iop/colorbalancergb.c:2108 +msgid "luminance exponent in mid-tones" +msgstr "Esponente di luminanza nei toni medi" + +#: ../src/iop/colorbalancergb.c:2113 +msgid "hue of the color exponent in mid-tones" +msgstr "Tonalità dell'esponente colore nei toni medi" + +#: ../src/iop/colorbalancergb.c:2119 +msgid "chroma of the color exponent in mid-tones" +msgstr "Cromaticità dell'esponente del colore nei toni medi" + +#. Page masks +#: ../src/iop/colorbalancergb.c:2122 +msgid "masks" +msgstr "Maschere" + +#: ../src/iop/colorbalancergb.c:2122 +msgid "isolate luminances" +msgstr "Isola le luminanze" + +#: ../src/iop/colorbalancergb.c:2126 +msgid "choose in which uniform color space the saturation is computed" +msgstr "" +"Seleziona lo spazio colore all'interno del quale computare la saturazione" + +#: ../src/iop/colorbalancergb.c:2128 +msgctxt "section" +msgid "luminance ranges" +msgstr "Gamme di luminanza" + +#: ../src/iop/colorbalancergb.c:2139 +msgid "weight of the shadows over the whole tonal range" +msgstr "Pesi delle ombre sull'intera gamma tonale" + +#: ../src/iop/colorbalancergb.c:2147 +msgid "position of the middle-gray reference for masking" +msgstr "Posiziona il riferimento al grigio medio per creare la maschera" + +#: ../src/iop/colorbalancergb.c:2155 +msgid "weights of highlights over the whole tonal range" +msgstr "Pesi delle alteluci sull'intera gamma tonale" + +#: ../src/iop/colorbalancergb.c:2160 +msgctxt "section" +msgid "threshold" +msgstr "Soglia" + +#: ../src/iop/colorbalancergb.c:2165 +msgid "peak white luminance value used to normalize the power function" +msgstr "" +"Valore di picco della luminanza del bianco usato per normalizzare la " +"funzione di potenza" + +#: ../src/iop/colorbalancergb.c:2171 +msgid "peak gray luminance value used to normalize the power function" +msgstr "" +"Valore di picco della luminanza del grigio usato per normalizzare la " +"funzione di potenza" + +#: ../src/iop/colorbalancergb.c:2173 +msgctxt "section" +msgid "mask preview settings" +msgstr "Impostazioni maschera di anteprima" + +#: ../src/iop/colorbalancergb.c:2176 +msgid "checkerboard color 1" +msgstr "Scheda di controllo colore 1" + +#: ../src/iop/colorbalancergb.c:2179 ../src/iop/colorbalancergb.c:2188 +msgid "select color of the checkerboard from a swatch" +msgstr "Seleziona il colore della scheda di controllo colore da un campione" + +#: ../src/iop/colorbalancergb.c:2185 +msgid "checkerboard color 2" +msgstr "Scheda di controllo colore 2" + +#: ../src/iop/colorbalancergb.c:2195 +msgid "checkerboard size" +msgstr "Dimensione scheda di controllo colore" + +#: ../src/iop/colorchecker.c:118 +msgid "color look up table" +msgstr "tabella ricerca colore" + +#: ../src/iop/colorchecker.c:123 +msgid "profile|lut|color grading" +msgstr "Profilo|LUT|Gradiente colore" + +#: ../src/iop/colorchecker.c:129 +msgid "perform color space corrections and apply looks" +msgstr "Effettua una correzione spaziale del colore e applica un certo aspetto" + +#: ../src/iop/colorchecker.c:131 ../src/iop/colorchecker.c:133 +#: ../src/iop/colorize.c:99 ../src/iop/colormapping.c:154 +#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:121 +#: ../src/iop/colorzones.c:147 ../src/iop/defringe.c:83 ../src/iop/levels.c:141 +#: ../src/iop/monochrome.c:101 ../src/iop/shadhi.c:145 +#: ../src/iop/tonecurve.c:185 ../src/iop/vibrance.c:98 +msgid "linear or non-linear, Lab, display-referred" +msgstr "Lineare o non-lineare, Lab, riferito allo schermo" + +#: ../src/iop/colorchecker.c:132 +msgid "defined by profile, Lab" +msgstr "Definito dal profilo, Lab" + +#: ../src/iop/colorchecker.c:308 +msgid "it8 skin tones" +msgstr "Toni della pelle it8" + +#: ../src/iop/colorchecker.c:324 +msgid "Helmholtz/Kohlrausch monochrome" +msgstr "Monocromia Helmholtz/Kohlrausch" + +#: ../src/iop/colorchecker.c:341 +msgid "Fuji Astia emulation" +msgstr "Emulazione Fuji Astia" + +#: ../src/iop/colorchecker.c:355 +msgid "Fuji Classic Chrome emulation" +msgstr "Emulazione Fuji Classic Chrome" + +#: ../src/iop/colorchecker.c:369 +msgid "Fuji Monochrome emulation" +msgstr "Emulazione Fuji Monochrome" + +#: ../src/iop/colorchecker.c:383 +msgid "Fuji Provia emulation" +msgstr "Emulazione Fuji Provia" + +#: ../src/iop/colorchecker.c:397 +msgid "Fuji Velvia emulation" +msgstr "Emulazione Fuji Velvia" + +#: ../src/iop/colorchecker.c:846 ../src/iop/colorchecker.c:1441 +#, c-format +msgid "patch #%d" +msgstr "Campione #%d" + +#: ../src/iop/colorchecker.c:1288 +#, c-format +msgid "" +"(%2.2f %2.2f %2.2f)\n" +"altered patches are marked with an outline\n" +"click to select\n" +"double-click to reset\n" +"right click to delete patch\n" +"shift+click while color picking to replace patch" +msgstr "" +"(%2.2f %2.2f %2.2f)\n" +"I campioni modificati sono circondati da un contorno\n" +"Click per selezionare\n" +"Doppio click per azzerare\n" +"Click destro per cancellare il campione\n" +"Maiusc+click mentre si preleva il colore per sostituire il campione" + +#: ../src/iop/colorchecker.c:1436 +msgid "patch" +msgstr "Campione" + +#: ../src/iop/colorchecker.c:1437 +msgid "color checker patch" +msgstr "Campione per la verifica del colore" + +#: ../src/iop/colorchecker.c:1451 +msgid "" +"adjust target color Lab 'L' channel\n" +"lower values darken target color while higher brighten it" +msgstr "" +"Regola il canale Lab 'L' del colore obiettivo\n" +"Valori più bassi scuriscono il colore obiettivo mentre più alti " +"loschiariscono" + +#: ../src/iop/colorchecker.c:1459 +msgid "" +"adjust target color Lab 'a' channel\n" +"lower values shift target color towards greens while higher shift towards " +"magentas" +msgstr "" +"Aggiusta il canale Lab 'a' del colore obiettivo\n" +"Valori più bassi spostano il colore obiettivo verso i verdi mentre più alti " +"lo spostano verso i magenta" + +#: ../src/iop/colorchecker.c:1462 +msgid "green-magenta offset" +msgstr "Compensazione verde-magenta" + +#: ../src/iop/colorchecker.c:1471 +msgid "" +"adjust target color Lab 'b' channel\n" +"lower values shift target color towards blues while higher shift towards " +"yellows" +msgstr "" +"Regola il canale Lab 'b' del colore obiettivo\n" +"Valori più bassi spostano il colore obiettivo verso i blu mentre più alti lo " +"spostano verso i gialli" + +#: ../src/iop/colorchecker.c:1474 +msgid "blue-yellow offset" +msgstr "Compensazione blue-giallo" + +#: ../src/iop/colorchecker.c:1483 +msgid "" +"adjust target color saturation\n" +"adjusts 'a' and 'b' channels of target color in Lab space simultaneously\n" +"lower values scale towards lower saturation while higher scale towards " +"higher saturation" +msgstr "" +"Aggiusta l'obiettivo di saturazione del colore\n" +"Aggiusta i canali 'a' e 'b' del colore obiettivo simultaneamente nello " +"spazio Lab\n" +"Valori più bassi scalano verso una saturazione bassa, mentre più alti " +"scalano verso una più alta saturazione" + +#: ../src/iop/colorchecker.c:1492 +msgid "target color" +msgstr "Colore finale" + +#: ../src/iop/colorchecker.c:1495 +msgid "" +"control target color of the patches\n" +"relative - target color is relative from the patch original color\n" +"absolute - target color is absolute Lab value" +msgstr "" +"Controlla il colore obiettivo dei campioni\n" +"Relativo - il colore obiettivo rispetto al colore originale del campione\n" +"Assoluto - il colore obiettivo è un valore Lab assoluto" + +#: ../src/iop/colorchecker.c:1499 +msgid "absolute" +msgstr "Assoluto" + +#: ../src/iop/colorcontrast.c:77 +msgid "color contrast" +msgstr "contrasto colore" + +#: ../src/iop/colorcontrast.c:87 +msgid "" +"increase saturation and separation between\n" +"opposite colors" +msgstr "" +"Aumenta la saturazione e la separazione\n" +"tra colori opposti" + +#: ../src/iop/colorcontrast.c:330 +msgid "" +"steepness of the a* curve in Lab\n" +"lower values desaturate greens and magenta while higher saturate them" +msgstr "" +"Forma della curva a* nello spazio Lab\n" +"Valori bassi desaturano i verdi e i magenta\n" +"mentre valori alti li saturano" + +#: ../src/iop/colorcontrast.c:337 +msgid "" +"steepness of the b* curve in Lab\n" +"lower values desaturate blues and yellows while higher saturate them" +msgstr "" +"Forma della curva b* nello spazio Lab\n" +"Valori bassi desaturano i blu e i gialli\n" +"mentre valori alti li saturano" + +#: ../src/iop/colorcorrection.c:71 +msgid "color correction" +msgstr "correzione colore" + +#: ../src/iop/colorcorrection.c:76 +msgid "correct white balance selectively for blacks and whites" +msgstr "" +"Corregge il bilanciamento del bianco selettivamente per i bianchi e i neri" + +#: ../src/iop/colorcorrection.c:109 +msgid "warm tone" +msgstr "Tono caldo" + +#: ../src/iop/colorcorrection.c:117 +msgid "warming filter" +msgstr "Filtro di riscaldamento" + +#: ../src/iop/colorcorrection.c:125 +msgid "cooling filter" +msgstr "Filtro raffreddamento" + +#: ../src/iop/colorcorrection.c:250 +msgid "" +"drag the line for split-toning. bright means highlights, dark means shadows. " +"use mouse wheel to change saturation." +msgstr "" +"Trascina la linea per la divisione dei toni. Chiaro = Alteluci, Scuro = " +"Ombre. Usa la rotella del mouse per variare la saturazione." + +#: ../src/iop/colorcorrection.c:269 +msgid "set the global saturation" +msgstr "Imposta la saturazione globale" + +#: ../src/iop/colorin.c:126 +msgid "input color profile" +msgstr "profilo colore di ingresso" + +#: ../src/iop/colorin.c:131 +msgid "" +"convert any RGB input to pipeline reference RGB\n" +"using color profiles to remap RGB values" +msgstr "" +"Converte qualsiasi input RGB riferendolo ai valori RGB della coda di " +"sviluppo\n" +"utilizzando i profili colore per rimappare i valore RGB" + +#: ../src/iop/colorin.c:133 ../src/iop/colorout.c:89 ../src/iop/demosaic.c:293 +#: ../src/iop/rawprepare.c:174 +msgid "mandatory" +msgstr "Obbligatorio" + +#: ../src/iop/colorin.c:135 ../src/iop/colorout.c:91 +msgid "defined by profile" +msgstr "Definito dal profilo" + +#: ../src/iop/colorin.c:582 +#, c-format +msgid "" +"can't extract matrix from colorspace `%s', it will be replaced by Rec2020 " +"RGB!" +msgstr "" +"Non posso estrarre la matrice dallo spazio colore `%s', verrà sostituita con " +"Rec2020 RGB!" + +#: ../src/iop/colorin.c:1362 +#, c-format +msgid "`%s' color matrix not found!" +msgstr "`%s' matrice colore non trovata!" + +#: ../src/iop/colorin.c:1401 +msgid "input profile could not be generated!" +msgstr "Il profilo in ingresso non può essere generato!" + +#: ../src/iop/colorin.c:1498 +msgid "unsupported input profile has been replaced by linear Rec709 RGB!" +msgstr "" +"Il profilo di ingresso non supportato è stato sostituito con Rec709 RGB " +"lineare!" + +#: ../src/iop/colorin.c:1782 +msgid "external ICC profiles" +msgstr "profili ICC esterni" + +#: ../src/iop/colorin.c:1827 +#, c-format +msgid "" +"embedded ICC profile properties:\n" +"\n" +"name: <b>%s</b>\n" +"version: <b>%d.%d</b>\n" +"type: <b>%s</b>\n" +"manufacturer: <b>%s</b>\n" +"model: <b>%s</b>\n" +"copyright: <b>%s</b>\n" +"\n" +msgstr "" +"Proprietà del profili ICC incorporato:\n" +"\n" +"nome: <b>%s</b>\n" +"versione: <b>%d.%d</b>\n" +"tipo: <b>%s</b>\n" +"produttore: <b>%s</b>\n" +"modello: <b>%s</b>\n" +"copyright: <b>%s</b>\n" +"\n" + +#: ../src/iop/colorin.c:2022 +msgid "input profile" +msgstr "Profilo di ingresso" + +#: ../src/iop/colorin.c:2026 +msgid "working profile" +msgstr "Profilo di lavoro" + +#: ../src/iop/colorin.c:2035 +msgid "working ICC profiles" +msgstr "Profili ICC in uso" + +#: ../src/iop/colorin.c:2047 +msgid "confine Lab values to gamut of RGB color space" +msgstr "Confina i valori LAB nella gamma dello spazio colore RGB" + +#: ../src/iop/colorize.c:75 +msgid "colorize" +msgstr "colora" + +#: ../src/iop/colorize.c:97 +msgid "overlay a solid color on the image" +msgstr "Sovrappone un colore uniforme all'immagine" + +#: ../src/iop/colorize.c:354 ../src/iop/splittoning.c:481 +msgid "select the hue tone" +msgstr "Seleziona la tonalità della tinta" + +#: ../src/iop/colorize.c:360 +msgid "select the saturation shadow tone" +msgstr "Seleziona la saturazione per le ombre" + +#: ../src/iop/colorize.c:364 +msgid "lightness of color" +msgstr "Chiarezza del colore" + +#: ../src/iop/colorize.c:368 +msgid "mix value of source lightness" +msgstr "Valore di miscela della chiarezza sorgente" + +#: ../src/iop/colormapping.c:147 +msgid "color mapping" +msgstr "mappatura dei colori" + +#: ../src/iop/colormapping.c:152 +msgid "" +"transfer a color palette and tonal repartition from one image to another" +msgstr "" +"Trasferisce una paletta colore e la suddivisione dei toni da un'immagine ad " +"un'altra" + +#: ../src/iop/colormapping.c:1020 +msgid "source clusters:" +msgstr "Matrice di origine:" + +#: ../src/iop/colormapping.c:1026 +msgid "target clusters:" +msgstr "Matrice di destinazione" + +#: ../src/iop/colormapping.c:1035 +msgid "acquire as source" +msgstr "Acquisisci sorgente" + +#: ../src/iop/colormapping.c:1039 +msgid "analyze this image as a source image" +msgstr "Analizza questa immagine come immagine sorgente" + +#: ../src/iop/colormapping.c:1041 +msgid "acquire as target" +msgstr "Acquisisci destinazione" + +#: ../src/iop/colormapping.c:1045 +msgid "analyze this image as a target image" +msgstr "Analizza questa immagine come immagine destinazione" + +#: ../src/iop/colormapping.c:1048 +msgid "number of clusters to find in image. value change resets all clusters" +msgstr "" +"Numero di matrici da cercare nell'immagine. Un cambiamento del valore " +"reimposta tutte le matrici" + +#: ../src/iop/colormapping.c:1051 +msgid "" +"how clusters are mapped. low values: based on color proximity, high values: " +"based on color dominance" +msgstr "" +"Come vengono mappate le matrici. Valori bassi: basato sulla prossimità del " +"colore, valori alti: basato sulla dominanza del colore" + +#: ../src/iop/colormapping.c:1056 +msgid "level of histogram equalization" +msgstr "Livello di equalizzazione dell'istogramma" + +#: ../src/iop/colorout.c:81 +msgid "output color profile" +msgstr "profilo colore di uscita" + +#: ../src/iop/colorout.c:87 +msgid "" +"convert pipeline reference RGB to any display RGB\n" +"using color profiles to remap RGB values" +msgstr "" +"Converte i riferimenti della coda di sviluppo RGB per qualsiasi monitor RGB\n" +"usando i profili colore per ricalcolare i valori RGB" + +#: ../src/iop/colorout.c:92 +msgid "non-linear, RGB or Lab, display-referred" +msgstr "Non-lineare, RGB o Lab, riferito allo schermo" + +#: ../src/iop/colorout.c:695 +msgid "missing output profile has been replaced by sRGB!" +msgstr "Il profilo di uscita mancante è stato sostituito da sRGB!" + +#: ../src/iop/colorout.c:717 +msgid "missing softproof profile has been replaced by sRGB!" +msgstr "" +"Il profilo mancante di simulazione a schermo è stato sostituito da sRGB!" + +#: ../src/iop/colorout.c:760 +msgid "unsupported output profile has been replaced by sRGB!" +msgstr "Il profilo di uscita non supportato è stato sostituito con sRGB!" + +#: ../src/iop/colorout.c:885 +msgid "output intent" +msgstr "Intento uscita" + +#: ../src/iop/colorout.c:886 +msgid "rendering intent" +msgstr "Intento di rendering" + +#: ../src/iop/colorout.c:888 ../src/libs/export.c:1358 +#: ../src/libs/print_settings.c:2475 ../src/libs/print_settings.c:2824 +#: ../src/views/darkroom.c:2359 ../src/views/lighttable.c:1176 +msgid "perceptual" +msgstr "Percettivo" + +#: ../src/iop/colorout.c:889 ../src/libs/export.c:1359 +#: ../src/libs/print_settings.c:2476 ../src/libs/print_settings.c:2825 +#: ../src/views/darkroom.c:2360 ../src/views/lighttable.c:1177 +msgid "relative colorimetric" +msgstr "Colorimetrico relativo" + +#: ../src/iop/colorout.c:890 ../src/libs/export.c:1360 +#: ../src/libs/print_settings.c:2477 ../src/libs/print_settings.c:2826 +#: ../src/views/darkroom.c:2361 ../src/views/lighttable.c:1178 +msgctxt "rendering intent" +msgid "saturation" +msgstr "Saturazione" + +#: ../src/iop/colorout.c:891 ../src/libs/export.c:1361 +#: ../src/libs/print_settings.c:2478 ../src/libs/print_settings.c:2827 +#: ../src/views/darkroom.c:2362 ../src/views/lighttable.c:1179 +msgid "absolute colorimetric" +msgstr "Colorimetrico assoluto" + +#: ../src/iop/colorout.c:909 +msgid "export ICC profiles" +msgstr "Esporta i profili ICC" + +#: ../src/iop/colorreconstruction.c:114 +msgid "color reconstruction" +msgstr "ricostruzione colore" + +#: ../src/iop/colorreconstruction.c:119 +msgid "recover clipped highlights by propagating surrounding colors" +msgstr "Recupera le alte luci tagliate ricostruendo i colori dai pixel vicini" + +#: ../src/iop/colorreconstruction.c:647 ../src/iop/colorreconstruction.c:1053 +#: ../src/iop/globaltonemap.c:227 ../src/iop/globaltonemap.c:396 +#: ../src/iop/hazeremoval.c:541 ../src/iop/hazeremoval.c:776 +#: ../src/iop/levels.c:358 +msgid "inconsistent output" +msgstr "Risultato inconsistente" + +#: ../src/iop/colorreconstruction.c:685 +msgid "module `color reconstruction' failed" +msgstr "Fallimento del modulo `ricostruzione colore'" + +#: ../src/iop/colorreconstruction.c:1246 +msgid "spatial" +msgstr "Spaziale" + +#: ../src/iop/colorreconstruction.c:1247 +msgid "range" +msgstr "Intervallo" + +#: ../src/iop/colorreconstruction.c:1248 +msgid "precedence" +msgstr "Precedenza" + +#: ../src/iop/colorreconstruction.c:1264 +msgid "pixels with lightness values above this threshold are corrected" +msgstr "Sono stati corretti i pixel con chiarezza sopra questa soglia" + +#: ../src/iop/colorreconstruction.c:1265 +msgid "how far to look for replacement colors in spatial dimensions" +msgstr "" +"Distanza di ricerca di colori di sostituzione nella dimensione spaziale" + +#: ../src/iop/colorreconstruction.c:1266 +msgid "how far to look for replacement colors in the luminance dimension" +msgstr "" +"Quando distante cercare i colori di sostituzione nella dimensione della " +"luminanza" + +#: ../src/iop/colorreconstruction.c:1267 +msgid "if and how to give precedence to specific replacement colors" +msgstr "Se e come dare precedenza a specifici colori di sostituzione" + +#: ../src/iop/colorreconstruction.c:1268 +msgid "the hue tone which should be given precedence over other hue tones" +msgstr "La tonalità che dovrebbe avere la precedenza sulle altre tonalità" + +#: ../src/iop/colorreconstruction.c:1270 ../src/iop/demosaic.c:1324 +#: ../src/iop/highlights.c:1258 +msgid "not applicable" +msgstr "Non applicabile" + +#: ../src/iop/colorreconstruction.c:1271 +msgid "no highlights reconstruction for monochrome images" +msgstr "Non è possibile ricostruire le alte luci nelle immagini monocromatiche" + +#: ../src/iop/colortransfer.c:103 +msgid "color transfer" +msgstr "Trasferimento colore" + +#: ../src/iop/colortransfer.c:118 +msgid "this module is deprecated. better use color mapping module instead." +msgstr "Questo modulo è deprecato. Utilizza il modulo Mappatura Colore" + +#: ../src/iop/colortransfer.c:441 +msgid "" +"this module will be removed in the future\n" +"and is only here so you can switch it off\n" +"and move to the new color mapping module." +msgstr "" +"Questo modulo sarà rimosso in futuro\n" +"ed è presente così che tu possa disattivarlo\n" +"e passare al nuovo modulo per la mappatura del colore." + +#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2573 +msgid "color zones" +msgstr "zone colore" + +#: ../src/iop/colorzones.c:145 +msgid "selectively shift hues, chroma and lightness of pixels" +msgstr "sposta selettivamente tonalità, cromaticità e chiarezza dei pixel" + +#: ../src/iop/colorzones.c:684 +msgid "B&W: with red" +msgstr "B/N con il rosso" + +#: ../src/iop/colorzones.c:707 +msgid "B&W: with skin tones" +msgstr "B/N con toni della pelle" + +#: ../src/iop/colorzones.c:732 +msgid "polarizing filter" +msgstr "Filtro polarizzatore" + +#: ../src/iop/colorzones.c:753 +msgid "natural skin tones" +msgstr "Toni naturali della pelle" + +#: ../src/iop/colorzones.c:784 +msgid "B&W: film" +msgstr "B/N pellicola" + +#: ../src/iop/colorzones.c:804 +msgid "HSL base setting" +msgstr "Impostazioni base HSL" + +#: ../src/iop/colorzones.c:2500 +msgid "orange" +msgstr "Arancione" + +#: ../src/iop/colorzones.c:2673 ../src/iop/rgbcurve.c:1528 +msgid "" +"create a curve based on an area from the image\n" +"drag to create a flat curve\n" +"ctrl+drag to create a positive curve\n" +"shift+drag to create a negative curve" +msgstr "" +"Crea una curva basata su di un'area dell'immagine\n" +"Click e trascina per creare una curva piatta\n" +"Ctrl+click e trascina per creare una curva positiva\n" +"Maiusc+click e trascina per creare una curva negativa" + +#: ../src/iop/colorzones.c:2677 ../src/iop/rgbcurve.c:1532 +msgid "create curve" +msgstr "crea curva" + +#. edit by area +#: ../src/iop/colorzones.c:2696 +msgid "edit by area" +msgstr "Modifica in base all'area" + +#: ../src/iop/colorzones.c:2702 +msgid "edit the curve nodes by area" +msgstr "Modifica i nodi della curva in base all'area" + +#: ../src/iop/colorzones.c:2710 +msgid "display selection" +msgstr "Visualizza selezione" + +#: ../src/iop/colorzones.c:2722 +msgid "choose selection criterion, will be the abscissa in the graph" +msgstr "Scegli il criterio di selezione, sarà l'ascissa del grafico" + +#: ../src/iop/colorzones.c:2725 +msgid "choose between a smoother or stronger effect" +msgstr "Scegli tra un effetto più morbido o più intenso" + +#: ../src/iop/colorzones.c:2762 ../src/iop/rgbcurve.c:1573 +#: ../src/iop/tonecurve.c:1194 +msgid "interpolation method" +msgstr "Metodo interpolazione" + +#: ../src/iop/colorzones.c:2764 ../src/iop/rgbcurve.c:1575 +#: ../src/iop/tonecurve.c:1196 +msgid "centripetal spline" +msgstr "Spline centripeta" + +#: ../src/iop/colorzones.c:2765 ../src/iop/rgbcurve.c:1576 +#: ../src/iop/tonecurve.c:1197 +msgid "monotonic spline" +msgstr "Spline monotonica" + +#: ../src/iop/colorzones.c:2768 ../src/iop/rgbcurve.c:1579 +#: ../src/iop/tonecurve.c:1199 +msgid "" +"change this method if you see oscillations or cusps in the curve\n" +"- cubic spline is better to produce smooth curves but oscillates when nodes " +"are too close\n" +"- centripetal is better to avoids cusps and oscillations with close nodes " +"but is less smooth\n" +"- monotonic is better for accuracy of pure analytical functions (log, gamma, " +"exp)" +msgstr "" +"Modifica questo metodo se noti delle oscillazioni o dei picchi nella curva\n" +"- La spline cubica è migliore nel produrre curve morbide ma oscilla quando i " +"nodi sono troppo vicini\n" +"- La spline centripeta è migliore nell'evitare la comparsa di picchi e " +"oscillazioni con nodi molto vicini, ma è meno dolce\n" +"- Quella monotonica è da preferire per l'accuratezza delle funzioni di pura " +"analisi (log; gamma; esp)" + +#: ../src/iop/crop.c:122 +msgid "crop" +msgstr "Ritaglio" + +#: ../src/iop/crop.c:127 +msgid "reframe|distortion" +msgstr "Ritaglio|distorsione" + +#: ../src/iop/crop.c:133 +msgid "change the framing" +msgstr "Modifica la cornice" + +#: ../src/iop/crop.c:1651 +msgid "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag" +msgstr "" +"<b>Ridimensionare</b>: trascina, <b>mantieni proporzioni</b>: Maiusc+trascina" + +#: ../src/iop/crop.c:1660 +msgid "" +"<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" +"b>: ctrl+drag" +msgstr "" +"<b>Sposta</b>: trascina, <b>Sposta verticalmente</b>: Maiusc+trascina, " +"<b>Sposta orizzontalmente</b>: Ctrl+trascina" + +#: ../src/iop/defringe.c:71 +msgid "defringe" +msgstr "defringe" + +#: ../src/iop/defringe.c:81 +msgid "attenuate chromatic aberration by desaturating edges" +msgstr "Attenua le aberrazioni cromatiche desaturando i margini" + +#: ../src/iop/defringe.c:101 +msgid "" +"this module is deprecated. please use the chromatic aberration module " +"instead." +msgstr "" +"Questo modulo è deprecato. Piuttosto usa il modulo aberrazioni cromatiche." + +#: ../src/iop/defringe.c:417 +msgid "" +"method for color protection:\n" +" - global average: fast, might show slightly wrong previews in high " +"magnification; might sometimes protect saturation too much or too low in " +"comparison to local average\n" +" - local average: slower, might protect saturation better than global " +"average by using near pixels as color reference, so it can still allow for " +"more desaturation where required\n" +" - static: fast, only uses the threshold as a static limit" +msgstr "" +"Metodo per la protezione colore:\n" +" - media globale: veloce, può mostrare anteprime leggermente sbagliate a " +"forti ingrandimenti; talvolta può proteggere troppo la saturazione o troppo " +"poco rispetto alla media locale\n" +" - media locale: più lenta, può proteggere meglio la saturazione rispetto " +"alla media globale usando i pixel vicini come riferimento colore, in tal " +"modo può consentire una desaturazione maggiore quando necessario\n" +" - statica: veloce, usa soltanto la soglia come limite statico" + +#: ../src/iop/defringe.c:424 +msgid "radius for detecting fringe" +msgstr "Raggio per la rilevazione del bordo" + +#: ../src/iop/defringe.c:427 +msgid "threshold for defringe, higher values mean less defringing" +msgstr "Soglia per il defringe, valori maggiori significano meno defringe" + +#: ../src/iop/demosaic.c:287 +msgid "demosaic" +msgstr "Demosaicizzazione" + +#: ../src/iop/demosaic.c:292 +msgid "reconstruct full RGB pixels from a sensor color filter array reading" +msgstr "" +"Ricostruisce i pixel in RGB dalla lettura del filtro colore del sensore" + +#: ../src/iop/demosaic.c:1133 +#, c-format +msgid "`%s' color matrix not found for 4bayer image!" +msgstr "Matrice del colore `%s' non trovata per l'immagine 4bayer!" + +#: ../src/iop/demosaic.c:1285 +msgid "" +"Bayer sensor demosaicing method, PPG and RCD are fast, AMaZE and LMMSE are " +"slow.\n" +"LMMSE is suited best for high ISO images.\n" +"dual demosaicers double processing time." +msgstr "" +"I metodi di demosaicizzazione dei sensori Bayer PPG e RCD sono veloci; AMaZE " +"e LMMSE sono lenti\n" +"LMMSE è più idoneo per immagini scattate ad alti ISO\n" +"Una demosaicizzazione doppia raddoppia il tempo di calcolo" + +#: ../src/iop/demosaic.c:1289 +msgid "" +"X-Trans sensor demosaicing method, Markesteijn 3-pass and frequency domain " +"chroma are slow.\n" +"dual demosaicers double processing time." +msgstr "" +"I metodi di demosaicizzazione dei sensori X-Trans Markesteijn 3-passaggi e " +"cromaticità dominio di frequenza sono lenti\n" +"Una demosaicizzazione doppia raddoppia il tempo di calcolo" + +#: ../src/iop/demosaic.c:1295 +msgid "Bayer4 sensor demosaicing methods." +msgstr "Metodi di demosaicizzazione per i sensori Bayer4" + +#: ../src/iop/demosaic.c:1299 +msgid "" +"threshold for edge-aware median.\n" +"set to 0.0 to switch off\n" +"set to 1.0 to ignore edges" +msgstr "" +"Soglia per la mediana riconoscimento margini.\n" +"Imposta a 0.0 per disattivare.\n" +"Imposta a 1.0 per ignorare i margini" + +#: ../src/iop/demosaic.c:1304 +msgid "" +"contrast threshold for dual demosaic.\n" +"set to 0.0 for high frequency content\n" +"set to 1.0 for flat content\n" +"toggle to visualize the mask" +msgstr "" +"Soglia di contrasto per doppia demosaicizzazione.\n" +"Imposta 0.0 per contenuti ad alta frequenza\n" +"Imposta 1.0 per contenuti piatti\n" +"Disattiva per visualizzare la maschera" + +#: ../src/iop/demosaic.c:1312 +msgid "" +"LMMSE refinement steps. the median steps average the output,\n" +"refine adds some recalculation of red & blue channels" +msgstr "" +"Passi di rifinitura LMMSE. I passi mediani fanno la media dell'uscita,\n" +"raffina aggiunge dei ricalcoli dei cananli rosso e blu" + +#: ../src/iop/demosaic.c:1315 +msgid "how many color smoothing median steps after demosaicing" +msgstr "" +"Passaggi intermedi di sfumatura colore eseguiti dopo la demosaicizzazione" + +#: ../src/iop/demosaic.c:1318 +msgid "green channels matching method" +msgstr "Metodo di corrispondenza per il canale del verde" + +#: ../src/iop/demosaic.c:1325 +msgid "demosaicing is only used for color raw images" +msgstr "La demosaicizzazione è usata solo per le immagini RAW a colori" + +#: ../src/iop/denoiseprofile.c:766 +msgid "wavelets: chroma only" +msgstr "Wavelets: solo chromaticità" + +#: ../src/iop/denoiseprofile.c:772 +msgid "denoise (profiled)" +msgstr "riduzione rumore (profilato)" + +#: ../src/iop/denoiseprofile.c:778 +msgid "denoise using noise statistics profiled on sensors" +msgstr "" +"Riduzione del rumore con l'utilizzo delle statistiche relative al rumore " +"tipico del sensore" + +#: ../src/iop/denoiseprofile.c:2850 +#, c-format +msgid "found match for ISO %d" +msgstr "Trovata corrispondenza per ISO %d" + +#: ../src/iop/denoiseprofile.c:2859 +#, c-format +msgid "interpolated from ISO %d and %d" +msgstr "Interpolato tra ISO %d e %d" + +#: ../src/iop/denoiseprofile.c:3723 +msgid "Y0" +msgstr "Y0" + +#: ../src/iop/denoiseprofile.c:3724 +msgid "U0V0" +msgstr "U0V0" + +#: ../src/iop/denoiseprofile.c:3764 +msgid "" +"use only with a perfectly\n" +"uniform image if you want to\n" +"estimate the noise variance." +msgstr "" +"Usare solo con un'immagine\n" +"perfettamente uniforme se vuoi\n" +"notare la variazione del disturbo." + +#: ../src/iop/denoiseprofile.c:3770 +msgid "variance red: " +msgstr "Varianza rosso:" + +#: ../src/iop/denoiseprofile.c:3774 +msgid "variance computed on the red channel" +msgstr "Varianza calcolata sul canale del rosso" + +#: ../src/iop/denoiseprofile.c:3779 +msgid "variance green: " +msgstr "Varianza verde:" + +#: ../src/iop/denoiseprofile.c:3783 +msgid "variance computed on the green channel" +msgstr "Varianza calcolata sul canale del verde" + +#: ../src/iop/denoiseprofile.c:3788 +msgid "variance blue: " +msgstr "Varianza blu: " + +#: ../src/iop/denoiseprofile.c:3792 +msgid "variance computed on the blue channel" +msgstr "Varianza calcolata sul canale del blu" + +#: ../src/iop/denoiseprofile.c:3803 ../src/libs/export.c:1320 +#: ../src/libs/print_settings.c:2418 ../src/libs/print_settings.c:2774 +msgid "profile" +msgstr "Profilo" + +#: ../src/iop/denoiseprofile.c:3837 +msgid "" +"adapt denoising according to the\n" +"white balance coefficients.\n" +"should be enabled on a first instance\n" +"for better denoising.\n" +"should be disabled if an earlier instance\n" +"has been used with a color blending mode." +msgstr "" +"Adatta la riduzione del rumore in base a\n" +"i coefficienti del bilanciamento del bianco.\n" +"Dovrebbe essere abilitato sulla prima istanza\n" +"per una migliore riduzione del rumore.\n" +"Dovrebbe essere disabilitato se un'istanza precedente\n" +"è stata utilizzata con una modalità di fusione colore." + +#: ../src/iop/denoiseprofile.c:3844 +msgid "" +"fix bugs in Anscombe transform resulting\n" +"in undersmoothing of the green channel in\n" +"wavelets mode, combined with a bad handling\n" +"of white balance coefficients, and a bug in\n" +"non-local means normalization resulting in\n" +"undersmoothing when patch size was increased.\n" +"enabling this option will change the denoising\n" +"you get. once enabled, you won't be able to\n" +"return back to old algorithm." +msgstr "" +"Risolve i difetti nella trasformazione Anscombe che porta\n" +"a una levigatura non ottimale nel canale verde in modalità wavelets, \n" +"combinati con una cattiva gestione dei coefficienti di\n" +"bilanciamento del bianco, e un difetto nella\n" +"normalizzazione non-local means risultante in\n" +"una levigatura non ottimale quando viene aumentato il campione.\n" +"Abilitando questa opzione si modifica la riduzione\n" +"rumore ottenuta. Una volta abilitata non è più\n" +"possibile tornare al vecchio algoritmo." + +#: ../src/iop/denoiseprofile.c:3854 +msgid "profile used for variance stabilization" +msgstr "Profilo usato per la stabilizzazione di varianza" + +#: ../src/iop/denoiseprofile.c:3856 +msgid "" +"method used in the denoising core.\n" +"non-local means works best for `lightness' blending,\n" +"wavelets work best for `color' blending" +msgstr "" +"Metodo usato per la riduzione del rumore.\n" +"Non-local vuol dire che funziona meglio per la fusione `chiarezza',\n" +"Wavelets funziona meglio per la modalità di fusione `colore'" + +#: ../src/iop/denoiseprofile.c:3860 +msgid "" +"color representation used within the algorithm.\n" +"RGB keeps the RGB channels separated,\n" +"while Y0U0V0 combine the channels to\n" +"denoise chroma and luma separately." +msgstr "" +"Rappresentazione colore utilizzata dall'algoritmo.\n" +"RGB tiene separati i canali RGB,\n" +"mentre Y0U0V0 combina i canali per ridurre separatamente\n" +"il rumore di luminanza e quello di cromaticità." + +#: ../src/iop/denoiseprofile.c:3865 +msgid "" +"radius of the patches to match.\n" +"increase for more sharpness on strong edges, and better denoising of smooth " +"areas.\n" +"if details are oversmoothed, reduce this value or increase the central pixel " +"weight slider." +msgstr "" +"Raggio dei campioni da confrontare.\n" +"Aumenta per maggior nitidezza sui margini netti, e miglior riduzione del " +"rumore nelle aree uniformi.\n" +"Se i dettagli dovessero risultare troppo ammorbiditi, riduci questo valore " +"oppure aumenta il selettore scorrevole del peso del pixel centrale." + +#: ../src/iop/denoiseprofile.c:3871 +msgid "" +"emergency use only: radius of the neighborhood to search patches in. " +"increase for better denoising performance, but watch the long runtimes! " +"large radii can be very slow. you have been warned" +msgstr "" +"Solo per emergenze: raggio di prossimità dove cercare i campioni. Aumentare " +"per prestazioni migliori nella riduzione del rumore, ma fai attenzione " +"all'aumento dei tempi di calcolo! Raggi ampi possono rallentare parecchio il " +"calcolo. Siete stati avvisati!" + +#: ../src/iop/denoiseprofile.c:3877 +msgid "" +"scattering of the neighborhood to search patches in.\n" +"increase for better coarse-grain noise reduction.\n" +"does not affect execution time." +msgstr "" +"Diffusione dei dintorni per la ricerca di campioni.\n" +"Aumentalo per una migliore riduzione del rumore a grana grossa.\n" +"Nessuna controindicazione per il tempo di esecuzione." + +#: ../src/iop/denoiseprofile.c:3881 +msgid "" +"increase the weight of the central pixel\n" +"of the patch in the patch comparison.\n" +"useful to recover details when patch size\n" +"is quite big." +msgstr "" +"Aumenta l'importanza del pixel centrale\n" +"del campione quando si confrontano i campioni.\n" +"Utile per recuperare i dettagli quando la\n" +"dimensione del campione è piuttosto grande." + +#: ../src/iop/denoiseprofile.c:3885 +msgid "finetune denoising strength" +msgstr "Regolazione fine dell'intensità per la riduzione rumore" + +#: ../src/iop/denoiseprofile.c:3887 +msgid "" +"controls the way parameters are autoset\n" +"increase if shadows are not denoised enough\n" +"or if chroma noise remains.\n" +"this can happen if your picture is underexposed." +msgstr "" +"Controlla come vengono auto-regolati i parametri\n" +"Aumenta se le ombre non vengono sufficientemente ripulite dal rumore\n" +"oppure se rimane del rumore di cromaticità.\n" +"Questo può accadere anche se l'immagine è sottoesposta." + +#: ../src/iop/denoiseprofile.c:3892 +msgid "" +"finetune shadows denoising.\n" +"decrease to denoise more aggressively\n" +"dark areas of the image." +msgstr "" +"Regola finemente la riduzione del rumore nelle ombre.\n" +"Diminuisci il valore per ridurre il rumore\n" +"nelle aree scure con più aggressività." + +#: ../src/iop/denoiseprofile.c:3896 +msgid "" +"correct color cast in shadows.\n" +"decrease if shadows are too purple.\n" +"increase if shadows are too green." +msgstr "" +"Corregge le dominanti di colore nelle ombre.\n" +"Diminuisci il valore se le ombre diventano viola.\n" +"Aumentalo se diventano verdi." + +#: ../src/iop/denoiseprofile.c:3900 +msgid "" +"upgrade the variance stabilizing algorithm.\n" +"new algorithm extends the current one.\n" +"it is more flexible but could give small\n" +"differences in the images already processed." +msgstr "" +"Aggiorna l'algoritmo di stabilizzazione della varianza.\n" +"Il nuovo algoritmo estende quello corrente.\n" +"E' più flessibile ma può dare solo piccole\n" +"differenze sulle immagini già processate." + +#: ../src/iop/diffuse.c:129 +msgid "diffuse or sharpen" +msgstr "diffusione o nitidezza" + +#: ../src/iop/diffuse.c:134 +msgid "diffusion|deconvolution|blur|sharpening" +msgstr "Diffusione|deconvoluzione|sfocatura|nitidezza" + +#: ../src/iop/diffuse.c:141 +msgid "" +"simulate directional diffusion of light with heat transfer model\n" +"to apply an iterative edge-oriented blur,\n" +"inpaint damaged parts of the image, or to remove blur with blind " +"deconvolution." +msgstr "" +"Simula la diffusione direzionale della luce in base ad un modello di " +"trasferimento del calore per applicare una sfumatura interattiva orientata,\n" +"ricreare aree danneggiate dell'immagine o per rimuovere le sfocature con una " +"deconvoluzione cieca." + +#. deblurring presets +#: ../src/iop/diffuse.c:246 +msgid "lens deblur: soft" +msgstr "Nitidezza obiettivo: morbida" + +#: ../src/iop/diffuse.c:271 +msgid "lens deblur: medium" +msgstr "Nitidezza obiettivo: media" + +#: ../src/iop/diffuse.c:296 +msgid "lens deblur: hard" +msgstr "Nitidezza obiettivo: dura" + +#: ../src/iop/diffuse.c:322 +msgid "dehaze" +msgstr "Rimuovi foschia" + +#: ../src/iop/diffuse.c:348 +msgid "denoise: fine" +msgstr "Riduzione del rumore: fine" + +#: ../src/iop/diffuse.c:373 +msgid "denoise: medium" +msgstr "Riduzione del rumore: medio" + +#: ../src/iop/diffuse.c:398 +msgid "denoise: coarse" +msgstr "Riduzione del rumore: grezzo" + +#: ../src/iop/diffuse.c:473 +msgid "sharpen demosaicing: no AA filter" +msgstr "Demosaicizzazione per nitidezza: no filtro AA" + +#: ../src/iop/diffuse.c:499 +msgid "sharpen demosaicing: AA filter" +msgstr "Demosaicizzazione per nitidezza: filtro AA" + +#: ../src/iop/diffuse.c:526 +msgid "simulate watercolor" +msgstr "Simula acquarello" + +#: ../src/iop/diffuse.c:551 +msgid "simulate line drawing" +msgstr "Simulare disegno a tratteggio" + +#: ../src/iop/diffuse.c:603 +msgid "inpaint highlights" +msgstr "Ricostruisci alteluci" + +#. fast presets for slow hardware +#: ../src/iop/diffuse.c:630 +msgid "sharpness: fast" +msgstr "Nitidezza: veloce" + +#: ../src/iop/diffuse.c:682 +msgid "sharpness: strong" +msgstr "Nitidezza: forte" + +#: ../src/iop/diffuse.c:707 +msgid "local contrast: fast" +msgstr "Contrasto locale: veloce" + +#: ../src/iop/diffuse.c:1418 ../src/iop/diffuse.c:1693 +msgid "diffuse/sharpen failed to allocate memory, check your RAM settings" +msgstr "" +"Diffondi/rendi nitido non è riuscito ad allocare la memoria, controlla le " +"impostazioni della RAM" + +#. Additional parameters +#. Camera settings +#: ../src/iop/diffuse.c:1797 ../src/iop/splittoning.c:533 +#: ../src/libs/camera.c:486 +msgctxt "section" +msgid "properties" +msgstr "Proprietà" + +#: ../src/iop/diffuse.c:1803 +msgid "" +"more iterations make the effect stronger but the module slower.\n" +"this is analogous to giving more time to the diffusion reaction.\n" +"if you plan on sharpening or inpainting, \n" +"more iterations help reconstruction." +msgstr "" +"Più iterazioni rendono l'effetto più visibile ma il modulo rallenterà.\n" +"Questa azione è come dare più tempo alla reazione di diffusione.\n" +"Se volete aumentare la nitidezza o ricreare aree danneggiate \n" +"più iterazioni rendono il lavoro più accurato." + +#: ../src/iop/diffuse.c:1812 +msgid "" +"main scale of the diffusion.\n" +"zero makes diffusion act on the finest details more heavily.\n" +"non-zero defines the size of the details to diffuse heavily.\n" +"for deblurring and denoising, set to zero.\n" +"increase to act on local contrast instead." +msgstr "" +"Scala principale della diffusione.\n" +"Zero rende l'azione di diffusione più pesante sui dettagli fini.\n" +"Diverso da zero definisce la dimensione dei dettagli da diffondere " +"pesantemente.\n" +"Per aumentare nitidezza e riduzione rumore, imposta a zero.\n" +"Aumenta invece per lavorare sul contrasto locale." + +#: ../src/iop/diffuse.c:1822 +msgid "" +"width of the diffusion around the central radius.\n" +"high values diffuse on a large band of radii.\n" +"low values diffuse closer to the central radius.\n" +"if you plan on deblurring, \n" +"the radius should be around the width of your lens blur." +msgstr "" +"Ampiezza della diffusione intorno al raggio centrale.\n" +"Valori alti diffondono molto lontano dal raggio.\n" +"Valori bassi diffondono più vicino al raggio centrale.\n" +"Se volete aumentare la nitidezza il raggio dovrebbe essere uguale " +"all'ampiezza della sfocatura dell'obiettivo." + +#: ../src/iop/diffuse.c:1829 +msgctxt "section" +msgid "speed (sharpen ↔ diffuse)" +msgstr "Velocità (nitidezza ↔ diffusione)" + +#: ../src/iop/diffuse.c:1836 +msgid "" +"diffusion speed of low-frequency wavelet layers\n" +"in the direction of 1st order anisotropy (set below).\n" +"\n" +"negative values sharpen, \n" +"positive values diffuse and blur, \n" +"zero does nothing." +msgstr "" +"Velocità di diffusione del livello di bassa frequenza\n" +"nella direzione del 1° ordine di anisotropia (impostato sotto).\n" +"\n" +"Valori negativi aumentano la nitidezza\n" +"Valori positivi sfocano\n" +"Zero non fa nulla." + +#: ../src/iop/diffuse.c:1846 +msgid "" +"diffusion speed of low-frequency wavelet layers\n" +"in the direction of 2nd order anisotropy (set below).\n" +"\n" +"negative values sharpen, \n" +"positive values diffuse and blur, \n" +"zero does nothing." +msgstr "" +"Velocità di diffusione del livello di bassa frequenza\n" +"nella direzione del 2° ordine di anisotropia (impostato sotto).\n" +"\n" +"Valori negativi aumentano la nitidezza\n" +"Valori positivi sfocano\n" +"Zero non fa nulla." + +#: ../src/iop/diffuse.c:1856 +msgid "" +"diffusion speed of high-frequency wavelet layers\n" +"in the direction of 3rd order anisotropy (set below).\n" +"\n" +"negative values sharpen, \n" +"positive values diffuse and blur, \n" +"zero does nothing." +msgstr "" +"Velocità di diffusione del livello di alta frequenza\n" +"nella direzione del 3° ordine di anisotropia (impostato sotto).\n" +"\n" +"Valori negativi aumentano la nitidezza\n" +"Valori positivi sfocano\n" +"Zero non fa nulla." + +#: ../src/iop/diffuse.c:1866 +msgid "" +"diffusion speed of high-frequency wavelet layers\n" +"in the direction of 4th order anisotropy (set below).\n" +"\n" +"negative values sharpen, \n" +"positive values diffuse and blur, \n" +"zero does nothing." +msgstr "" +"Velocità di diffusione del livello di alta frequenza\n" +"nella direzione del 4° ordine di anisotropia (impostato sotto).\n" +"\n" +"Valori negativi aumentano la nitidezza\n" +"Valori positivi sfocano\n" +"Zero non fa nulla." + +#: ../src/iop/diffuse.c:1872 +msgctxt "section" +msgid "direction" +msgstr "Direzione" + +#: ../src/iop/diffuse.c:1879 +msgid "" +"direction of 1st order speed (set above).\n" +"\n" +"negative values follow gradients more closely, \n" +"positive values rather avoid edges (isophotes), \n" +"zero affects both equally (isotropic)." +msgstr "" +"Direzione del 1° ordine di velocità (impostato sopra).\n" +"\n" +"Valori negativi seguono il gradiente con precisione\n" +"Valori positivi evitano i margini (isofoto)\n" +"Zero li modifica entrambi allo stesso modo (isotropo)." + +#: ../src/iop/diffuse.c:1888 +msgid "" +"direction of 2nd order speed (set above).\n" +"\n" +"negative values follow gradients more closely, \n" +"positive values rather avoid edges (isophotes), \n" +"zero affects both equally (isotropic)." +msgstr "" +"Direzione del 2° ordine di velocità (impostato sopra).\n" +"\n" +"Valori negativi seguono il gradiente con precisione\n" +"Valori positivi evitano i margini (isofoto)\n" +"Zero li modifica entrambi allo stesso modo (isotropo)." + +#: ../src/iop/diffuse.c:1897 +msgid "" +"direction of 3rd order speed (set above).\n" +"\n" +"negative values follow gradients more closely, \n" +"positive values rather avoid edges (isophotes), \n" +"zero affects both equally (isotropic)." +msgstr "" +"Direzione del 3° ordine di velocità (impostato sopra).\n" +"\n" +"Valori negativi seguono il gradiente con precisione\n" +"Valori positivi evitano i margini (isofoto)\n" +"Zero li modifica entrambi allo stesso modo (isotropo)." + +#: ../src/iop/diffuse.c:1906 +msgid "" +"direction of 4th order speed (set above).\n" +"\n" +"negative values follow gradients more closely, \n" +"positive values rather avoid edges (isophotes), \n" +"zero affects both equally (isotropic)." +msgstr "" +"Direzione del 4° ordine di velocità (impostato sopra).\n" +"\n" +"Valori negativi seguono il gradiente con precisione\n" +"Valori positivi evitano i margini (isofoto)\n" +"Zero li modifica entrambi allo stesso modo (isotropo)." + +#: ../src/iop/diffuse.c:1912 +msgctxt "section" +msgid "edge management" +msgstr "Gestione margini" + +#: ../src/iop/diffuse.c:1919 +msgid "" +"increase or decrease the sharpness of the highest frequencies.\n" +"can be used to keep details after blooming,\n" +"for standalone sharpening set speed to negative values." +msgstr "" +"Aumenta o diminuisce la nitidezza delle frequenze più alte.\n" +"Può essere utilizzato per mantenere i dettagli dopo un effetto di soft-" +"focus\n" +"Per aumentare solamente la nitidezza impostare la velocità a valori negativi" + +#: ../src/iop/diffuse.c:1926 +msgid "" +"define the sensitivity of the variance penalty for edges.\n" +"increase to exclude more edges from diffusion,\n" +"if fringes or halos appear." +msgstr "" +"Definisce la sensibilità della penalità di varianza per i margini.\n" +"Aumenta per escludere più margini dalla diffusione,\n" +"se appaiono frange o aloni." + +#: ../src/iop/diffuse.c:1933 +msgid "" +"define the variance threshold between edge amplification and penalty.\n" +"decrease if you want pixels on smooth surfaces get a boost,\n" +"increase if you see noise appear on smooth surfaces or\n" +"if dark areas seem oversharpened compared to bright areas." +msgstr "" +"Definisce la soglia della varianza tra amplificazione del margine e " +"penalità.\n" +"Diminuisci se vuoi che le superfici morbide ottengano una spinta,\n" +"aumenta se vedi apparire rumore sulle superfici morbide o\n" +"se le aree scure sembrano esageratamente nitide rispetto alle aree chiare." + +#: ../src/iop/diffuse.c:1939 +msgctxt "section" +msgid "diffusion spatiality" +msgstr "Spazialità diffusione" + +#: ../src/iop/diffuse.c:1946 +msgid "" +"luminance threshold for the mask.\n" +"0. disables the luminance masking and applies the module on the whole " +"image.\n" +"any higher value excludes pixels with luminance lower than the threshold.\n" +"this can be used to inpaint highlights." +msgstr "" +"Soglia di luminanza per la maschera.\n" +"0. Disabilita il mascheramento con luminanza ed applica il modulo all'intera " +"imagine.\n" +"Ogni valore più alto esclude i pixel con luminanza più bassa della soglia.\n" +"Può essere usato per rimuovere alteluci." + +#: ../src/iop/dither.c:107 +msgid "dither or posterize" +msgstr "Retinatura o posterizza" + +#: ../src/iop/dither.c:112 +msgid "dithering|posterization|reduce bit depth" +msgstr "retinatura|posterizzazione|riduzione profondità di bit" + +#: ../src/iop/dither.c:117 +msgid "" +"reduce banding and posterization effects in output\n" +"JPEGs by adding random noise, or reduce bit depth" +msgstr "" +"riduce gli effetti di posterizzazione e banding nei JPEG\n" +"in uscita aggiungendo rumore casuale, o riducendo la profondità di bit" + +#: ../src/iop/dither.c:119 +msgid "corrective, artistic" +msgstr "correttivo, artistico" + +#. add the preset. +#: ../src/iop/dither.c:149 +msgid "dither" +msgstr "Retinatura" + +#: ../src/iop/dither.c:761 +msgid "radius for blurring step" +msgstr "Raggio del passaggio di sfocatura" + +#: ../src/iop/dither.c:773 +msgid "the gradient range where to apply random dither" +msgstr "La gamma del gradiente a cui applicare il dithering casuale" + +#: ../src/iop/dither.c:774 +msgid "gradient range" +msgstr "Intervallo gradiente" + +#: ../src/iop/dither.c:782 +msgid "damping level of random dither" +msgstr "Livello di smorzamento del dithering casuale" + +#: ../src/iop/equalizer.c:89 +msgid "legacy equalizer" +msgstr "Equalizzatore (obsoleto)" + +#: ../src/iop/equalizer.c:112 +msgid "" +"this module is deprecated. better use contrast equalizer module instead." +msgstr "" +"Questo modulo è deprecato. E' consigliabile usare l'Equalizzatore di " +"contrasto" + +#: ../src/iop/equalizer.c:240 +msgid "" +"this module will be removed in the future\n" +"and is only here so you can switch it off\n" +"and move to the new equalizer." +msgstr "" +"Questo modulo sarà rimosso in futuro\n" +"ed è presente così che tu possa disattivarlo\n" +"e passare al nuovo equalizzatore." + +#: ../src/iop/exposure.c:129 +msgid "" +"redo the exposure of the shot as if you were still in-camera\n" +"using a color-safe brightening similar to increasing ISO setting" +msgstr "" +"Ripristina l'esposizione dello scatto come se tu fossi ancora sulla " +"fotocamera\n" +"aggiungendo luminosità in modo sicuro per i colori (simile ad aumentare il " +"valore ISO)" + +#: ../src/iop/exposure.c:301 +msgid "magic lantern defaults" +msgstr "Default Magic Lantern" + +#: ../src/iop/exposure.c:373 ../src/iop/rawoverexposed.c:137 +#: ../src/iop/rawoverexposed.c:256 +#, c-format +msgid "failed to get raw buffer from image `%s'" +msgstr "Impossibile leggere il buffer RAW dall'immagine '%s'" + +#: ../src/iop/exposure.c:647 +#, no-c-format +msgid "compensate camera exposure (%+.1f EV)" +msgstr "Compensa l'esposizione della fotocamera (%+.1f EV)" + +#. Write report in GUI +#: ../src/iop/exposure.c:831 +#, c-format +msgid "L : \t%.1f %%" +msgstr "L : \t%.1f %%" + +#: ../src/iop/exposure.c:963 ../src/libs/history.c:953 +#, c-format +msgid "%.2f EV" +msgstr "%.2f EV" + +#: ../src/iop/exposure.c:1131 +msgid "" +"automatically remove the camera exposure bias\n" +"this is useful if you exposed the image to the right." +msgstr "" +"Rimuove automaticamente la compensazione\n" +"dell'esposizione impostata sulla fotocamera.\n" +"Può risultare particolarmente utile\n" +"se si espone sulla destra." + +#: ../src/iop/exposure.c:1150 +#, no-c-format +msgid "where in the histogram to meter for deflicking. E.g. 50% is median" +msgstr "" +"Dove effettuare una misura nell'istogramma per il deflicking. E.g. 50% è il " +"mediano" + +#: ../src/iop/exposure.c:1156 +msgid "" +"where to place the exposure level for processed pics, EV below overexposure." +msgstr "" +"Dove porre il livello di esposizione per le immagini processate, EV sotto la " +"sovraesposizione." + +#: ../src/iop/exposure.c:1160 +msgid "computed EC: " +msgstr "Correzione esposizione calcolata:" + +#: ../src/iop/exposure.c:1163 +msgid "what exposure correction has actually been used" +msgstr "Quale correzione dell'esposizione è stata usata" + +#: ../src/iop/exposure.c:1182 +msgid "" +"adjust the black level to unclip negative RGB values.\n" +"you should never use it to add more density in blacks!\n" +"if poorly set, it will clip near-black colors out of gamut\n" +"by pushing RGB values into negatives." +msgstr "" +"Regola il livello del nero per evitare valori RGB negativi.\n" +"Non dovresti mai utilizzarlo per aggiungere densità al nero!\n" +"Se regolato male, porterà i colori vicini al nero fuori gamma\n" +"spingendo i valori RGB in valori negativi." + +#: ../src/iop/exposure.c:1192 +msgid "area exposure mapping" +msgstr "Mappatura dell'esposizione dell'area" + +#: ../src/iop/exposure.c:1198 +msgid "" +"define a target brightness, in terms of exposure,\n" +"for a selected region of the image (the control sample),\n" +"which you then match against the same target brightness\n" +"in other images. the control sample can either\n" +"be a critical part of your subject or a non-moving and\n" +"consistently-lit surface over your series of images." +msgstr "" +"stabilisce un obiettivo di luminosità, in termini di esposizione,\n" +"per la regione selezionata dell'immagine (il campione di controllo),\n" +"il quale viene confrontato con lo stesso obiettivo di luminosità\n" +"in altre immagini. Il campione di controllo può essere sia una parte " +"fondamentale del tuo soggetto o una superficie non in movimento \n" +"e illuminata in maniera consistente in una serie di immagini." + +#: ../src/iop/exposure.c:1207 +msgid "" +"\"correction\" automatically adjust exposure\n" +"such that the input lightness is mapped to the target.\n" +"\"measure\" simply shows how an input color is mapped by\n" +"the exposure compensation and can be used to define a target." +msgstr "" +"\"correzione\" corregge automaticamente l'esposizione\n" +"in modo tale che la luminosità d'ingresso venga mappata sull'obiettivo\n" +"\"misura\" mostra semplicement come un colore di ingresso venga mappato\n" +"dalla compensazione dell'esposizione e possa essere usato per stabilire un " +"obiettivo." + +#: ../src/iop/exposure.c:1233 +msgid "L : \tN/A" +msgstr "L : \tN/A" + +#: ../src/iop/exposure.c:1251 +msgid "the desired target exposure after mapping" +msgstr "L'esposizione desiderata dopo la mappatura" + +#: ../src/iop/filmic.c:177 +msgid "this module is deprecated. better use filmic rgb module instead." +msgstr "questo modulo è deprecato. Meglio utilizzare filmic rgb al suo posto." + +#: ../src/iop/filmic.c:333 +msgid "09 EV (low-key)" +msgstr "09 EV (tono scuro)" + +#: ../src/iop/filmic.c:341 +msgid "10 EV (indoors)" +msgstr "10 EV (interni)" + +#: ../src/iop/filmic.c:349 +msgid "11 EV (dim outdoors)" +msgstr "11 EV (esterni scuri)" + +#: ../src/iop/filmic.c:357 +msgid "12 EV (outdoors)" +msgstr "12 EV (esterni)" + +#: ../src/iop/filmic.c:365 +msgid "13 EV (bright outdoors)" +msgstr "13 EV (esterni luminosi)" + +#: ../src/iop/filmic.c:373 +msgid "14 EV (backlighting)" +msgstr "14 EV (controluce)" + +#: ../src/iop/filmic.c:381 +msgid "15 EV (sunset)" +msgstr "15 EV (tramonto)" + +#: ../src/iop/filmic.c:389 +msgid "16 EV (HDR)" +msgstr "16 EV (HDR)" + +#: ../src/iop/filmic.c:397 +msgid "18 EV (HDR++)" +msgstr "18 EV (HDR++)" + +#: ../src/iop/filmic.c:1505 +msgid "read-only graph, use the parameters below to set the nodes" +msgstr "" +"Grafico di sola lettura. Utilizza i parametri qui sotto per impostare i nodi" + +#: ../src/iop/filmic.c:1509 +msgctxt "section" +msgid "logarithmic shaper" +msgstr "Curva logaritmica" + +#: ../src/iop/filmic.c:1517 +msgid "" +"adjust to match the average luminance of the subject.\n" +"except in back-lighting situations, this should be around 18%." +msgstr "" +"Regola per far corrispondere la luminanza media del soggetto.\n" +"Tranne che nei controluce, il valore dovrebbe aggirarsi sul 18%." + +#: ../src/iop/filmic.c:1529 ../src/iop/filmicrgb.c:4506 +msgid "" +"number of stops between middle gray and pure white.\n" +"this is a reading a lightmeter would give you on the scene.\n" +"adjust so highlights clipping is avoided" +msgstr "" +"Numero di stop tra il grigio medio ed il bianco puro\n" +"Questa è la lettura della scena che darebbe un esposimetro.\n" +"Aggiusta in modo che sia evitato il taglio delle alteluci" + +#: ../src/iop/filmic.c:1542 ../src/iop/filmicrgb.c:4517 +msgid "" +"number of stops between middle gray and pure black.\n" +"this is a reading a lightmeter would give you on the scene.\n" +"increase to get more contrast.\n" +"decrease to recover more details in low-lights." +msgstr "" +"Numero di stop tra il grigio medio ed il nero puro.\n" +"Questa è la lettura che darebbe un esposimetro sulla scena.\n" +"Aumenta per ottenere maggior contrasto.\n" +"Diminuisci per recuperare dettagli nelle luci basse." + +#: ../src/iop/filmic.c:1554 +msgid "" +"increase or decrease the computed dynamic range.\n" +"useful in conjunction with \"auto tune levels\"." +msgstr "" +"Incrementa o decrementa la gamma dinamica calcolata.\n" +"Utile se utilizzato insieme a \"regola automaticamente i livelli\"" + +#: ../src/iop/filmic.c:1560 ../src/iop/filmicrgb.c:4531 +#: ../src/iop/profile_gamma.c:673 +msgid "auto tune levels" +msgstr "Regola automaticamente i livelli" + +#: ../src/iop/filmic.c:1563 +msgid "" +"try to optimize the settings with some guessing.\n" +"this will fit the luminance range inside the histogram bounds.\n" +"works better for landscapes and evenly-lit pictures\n" +"but fails for high-keys and low-keys." +msgstr "" +"Tenta di ottimizzare le regolazioni per ipotesi.\n" +"Questo farà rientrare l'intervallo di luminanza all'interno del " +"perimetrodell'istogramma.\n" +"Lavora meglio con foto di paesaggio o illuminate uniformemente\n" +"mentre non funziona su scene sovra o sottoesposte." + +#: ../src/iop/filmic.c:1568 +msgctxt "section" +msgid "filmic S curve" +msgstr "Curva ad S di Filmic" + +#: ../src/iop/filmic.c:1575 ../src/iop/filmicrgb.c:4618 +msgid "" +"slope of the linear part of the curve\n" +"affects mostly the mid-tones" +msgstr "" +"Inclinazione della parte lineare della curva\n" +"Influisce soprattutto sui mezzitoni" + +#. geotagging +#: ../src/iop/filmic.c:1582 ../src/iop/filmicrgb.c:4627 +#: ../src/libs/metadata_view.c:161 +msgid "latitude" +msgstr "Latitudine" + +#: ../src/iop/filmic.c:1585 +msgid "" +"width of the linear domain in the middle of the curve.\n" +"increase to get more contrast at the extreme luminances.\n" +"this has no effect on mid-tones." +msgstr "" +"Ampiezza del dominio lineare nel mezzo della curva.\n" +"Aumenta questo valore per avere più contrasto a luminanze estreme.\n" +"Non ha alcun effetto sui mezzitoni." + +#: ../src/iop/filmic.c:1592 +msgid "shadows/highlights balance" +msgstr "Bilanciamento ombre/alteluci" + +#: ../src/iop/filmic.c:1595 ../src/iop/filmicrgb.c:4638 +msgid "" +"slides the latitude along the slope\n" +"to give more room to shadows or highlights.\n" +"use it if you need to protect the details\n" +"at one extremity of the histogram." +msgstr "" +"Sposta la latitudine lungo l'inclinazione della curva\n" +"per dare più spazio alle ombre o alle alteluci.\n" +"Da utilizzare se è necessario preservare i dettagli\n" +"ad una estremità dell'istogramma." + +#: ../src/iop/filmic.c:1605 +msgid "" +"desaturates the input of the module globally.\n" +"you need to set this value below 100%\n" +"if the chrominance preservation is enabled." +msgstr "" +"Desatura globalmente l'ingresso del modulo.\n" +"Questo valore deve essere inferiore a 100%\n" +"se è abilitata la preservazione della cromaticità." + +#: ../src/iop/filmic.c:1615 +msgid "" +"desaturates the output of the module\n" +"specifically at extreme luminances.\n" +"decrease if shadows and/or highlights are over-saturated." +msgstr "" +"Desatura l'uscita dal modulo\n" +"specificatamente a luminanze estreme.\n" +"Diminuire il valore se le ombre e/o le alteluci sono già sovra-saturate." + +#. Add export intent combo +#: ../src/iop/filmic.c:1625 ../src/libs/export.c:1339 +#: ../src/libs/print_settings.c:2473 ../src/libs/print_settings.c:2820 +#: ../src/views/darkroom.c:2365 ../src/views/lighttable.c:1182 +msgid "intent" +msgstr "Intento" + +#: ../src/iop/filmic.c:1626 +msgid "contrasted" +msgstr "Contrastato" + +#. cubic spline +#: ../src/iop/filmic.c:1627 +msgid "faded" +msgstr "Sfumato" + +#. centripetal spline +#: ../src/iop/filmic.c:1628 ../src/iop/profile_gamma.c:635 +msgid "linear" +msgstr "Lineare" + +#. monotonic spline +#: ../src/iop/filmic.c:1629 +msgid "optimized" +msgstr "Ottimizzato" + +#: ../src/iop/filmic.c:1631 +msgid "change this method if you see reversed contrast or faded blacks" +msgstr "" +"Modifica questo metodo se notate inversioni del contrasto o neri sbiaditi" + +#. Preserve color +#: ../src/iop/filmic.c:1635 +msgid "preserve the chrominance" +msgstr "Preserva la cromaticità" + +#: ../src/iop/filmic.c:1637 +msgid "" +"ensure the original color are preserved.\n" +"may reinforce chromatic aberrations.\n" +"you need to manually tune the saturation when using this mode." +msgstr "" +"Preserva i colori originali.\n" +"Potrebbe aumentare eventuali aberrazioni cromatiche.\n" +"Quando questa modalità è utilizzata potrebbe essere necessario dover " +"sistemare manualmente la saturazione." + +#: ../src/iop/filmic.c:1647 +msgctxt "section" +msgid "destination/display" +msgstr "Destinazione/schermo" + +#: ../src/iop/filmic.c:1665 ../src/iop/filmicrgb.c:4657 +msgid "" +"luminance of output pure black, this should be 0%\n" +"except if you want a faded look" +msgstr "" +"Luminanza del nero puro in uscita, dovrebbe essere 0%\n" +"a meno che non si desideri un aspetto sbiadito" + +#: ../src/iop/filmic.c:1674 ../src/iop/filmicrgb.c:4664 +msgid "" +"middle gray value of the target display or color space.\n" +"you should never touch that unless you know what you are doing." +msgstr "" +"Valore del grigio medio dello schermo di destinazione o dello spazio " +"colore.\n" +"Non lo dovresti mai modificare senza sapere cosa stai facendo." + +#: ../src/iop/filmic.c:1683 ../src/iop/filmicrgb.c:4671 +msgid "" +"luminance of output pure white, this should be 100%\n" +"except if you want a faded look" +msgstr "" +"Luminanza del bianco puro in uscita, dovrebbe essere 100%\n" +"a meno che non si desideri un aspetto sbiadito" + +#: ../src/iop/filmic.c:1689 +msgid "target gamma" +msgstr "Obiettivo gamma" + +#: ../src/iop/filmic.c:1691 +msgid "" +"power or gamma of the transfer function\n" +"of the display or color space.\n" +"you should never touch that unless you know what you are doing." +msgstr "" +"Forza della gamma della funzione di trasferimento\n" +"dello schermo o dello spazio colore.\n" +"Non dovresti mai modificare questo valore a meno che tu non sappia " +"esattamente che cosa stia facendo!" + +#: ../src/iop/filmicrgb.c:339 +msgid "filmic rgb" +msgstr "Filmic RGB" + +#: ../src/iop/filmicrgb.c:344 +msgid "tone mapping|curve|view transform|contrast|saturation|highlights" +msgstr "" +"Mappatura tonale | curve | trasforma vista | contrasto | saturazione | " +"alteluci" + +#: ../src/iop/filmicrgb.c:349 +msgid "" +"apply a view transform to prepare the scene-referred pipeline\n" +"for display on SDR screens and paper prints\n" +"while preventing clipping in non-destructive ways" +msgstr "" +"Applica una trasformazione per preparare la coda di sviluppo riferita alla " +"scena\n" +"per essere visualizzata su schermi SDR e stampe su carta\n" +"prevenendo tagli in modo non distruttivo." + +#: ../src/iop/filmicrgb.c:1365 +msgid "" +"filmic highlights reconstruction failed to allocate memory, check your RAM " +"settings" +msgstr "" +"La ricostruzione delle alte luci di filmic non è riuscita ad allocare " +"memoria, verifica le impostazioni della RAM" + +#: ../src/iop/filmicrgb.c:2369 +msgid "filmic highlights reconstruction failed to allocate memory on GPU" +msgstr "" +"La ricostruzione delle alte luci di filmic non è riuscita ad allocare " +"memoria sulla GPU" + +#: ../src/iop/filmicrgb.c:2487 +msgid "filmic works only on RGB input" +msgstr "filmic opera solamente su input in RGB" + +#: ../src/iop/filmicrgb.c:3548 +msgid "look only" +msgstr "Solo aspetto" + +#: ../src/iop/filmicrgb.c:3550 +msgid "look + mapping (lin)" +msgstr "Aspetto e mappatura (lin)" + +#: ../src/iop/filmicrgb.c:3552 +msgid "look + mapping (log)" +msgstr "Aspetto e mappatura (log)" + +#: ../src/iop/filmicrgb.c:3554 +msgid "dynamic range mapping" +msgstr "Mappatura gamma dinamica" + +#: ../src/iop/filmicrgb.c:3921 +#, c-format +msgid "(%.0f %%)" +msgstr "(%.0f %%)" + +#: ../src/iop/filmicrgb.c:3937 +#, no-c-format +msgid "% display" +msgstr "% visualizza" + +#: ../src/iop/filmicrgb.c:3949 +msgid "EV scene" +msgstr "EV scena" + +#: ../src/iop/filmicrgb.c:3953 +#, no-c-format +msgid "% camera" +msgstr "% Fotocamera" + +#. Page DISPLAY +#: ../src/iop/filmicrgb.c:3989 ../src/iop/filmicrgb.c:4651 +msgid "display" +msgstr "Schermo" + +#. axis legend +#: ../src/iop/filmicrgb.c:3998 +msgid "(%)" +msgstr "(%)" + +#. Page SCENE +#: ../src/iop/filmicrgb.c:4007 ../src/iop/filmicrgb.c:4486 +msgid "scene" +msgstr "Scena" + +#. axis legend +#: ../src/iop/filmicrgb.c:4016 +msgid "(EV)" +msgstr "(EV)" + +#. we are over the graph area +#: ../src/iop/filmicrgb.c:4428 +msgid "" +"use the parameters below to set the nodes.\n" +"the bright curve is the filmic tone mapping curve\n" +"the dark curve is the desaturation curve." +msgstr "" +"Utilizza i parametri qui sotto per impostare i nodi\n" +"La curva luminosa è la curva di mappatura dei toni di filmic\n" +"La curva scura è la curva di desaturazione" + +#: ../src/iop/filmicrgb.c:4434 +msgid "toggle axis labels and values display" +msgstr "Inverti etichette assi e valori dello schermo" + +#: ../src/iop/filmicrgb.c:4438 +msgid "" +"cycle through graph views.\n" +"left click: cycle forward.\n" +"right click: cycle backward.\n" +"double-click: reset to look view." +msgstr "" +"Sfoglia le visualizzazioni del grafico.\n" +"Click sinistro: sfoglia in avanti.\n" +"Click destro: sfoglia all'indietro.\n" +"Doppio click: resetta le viste" + +#: ../src/iop/filmicrgb.c:4495 +#, no-c-format +msgid "" +"adjust to match the average luminance of the image's subject.\n" +"the value entered here will then be remapped to 18.45%.\n" +"decrease the value to increase the overall brightness." +msgstr "" +"Regola per far corrispondere alla luminanza media del soggetto " +"dell'immagine.\n" +"Il valore qui inserito verrà ri-mappato al 18,45%.\n" +"Diminuisci il valore per aumentare la luminosità globale." + +#: ../src/iop/filmicrgb.c:4525 +msgid "" +"symmetrically increase or decrease the computed dynamic range.\n" +"useful to give a safety margin to extreme luminances." +msgstr "" +"Incrementa o decrementa simmetricamente la gamma dinamica calcolata.\n" +"Utile per impostare un margine di sicurezza alle luminanze estreme." + +#: ../src/iop/filmicrgb.c:4532 +msgid "" +"try to optimize the settings with some statistical assumptions.\n" +"this will fit the luminance range inside the histogram bounds.\n" +"works better for landscapes and evenly-lit pictures\n" +"but fails for high-keys, low-keys and high-ISO pictures.\n" +"this is not an artificial intelligence, but a simple guess.\n" +"ensure you understand its assumptions before using it." +msgstr "" +"Tenta di ottimizzare le impostazioni con delle supposizioni statistiche.\n" +"Questo farà rientrare l'intervallo della luminanza nei limiti " +"dell'istogramma.\n" +"Lavora meglio con foto di paesaggio o illuminate uniformemente\n" +"mentre non funziona con foto sotto/sovraesposte o scattate ad alti ISO.\n" +"Non è un'intelligenza artificiale, ma una semplice previsione.\n" +"Sii sicuro di aver capito questi presupposti prima di utilizzarlo." + +#. Page RECONSTRUCT +#: ../src/iop/filmicrgb.c:4541 +msgid "reconstruct" +msgstr "Ricostruisci" + +#: ../src/iop/filmicrgb.c:4543 +msgctxt "section" +msgid "highlights clipping" +msgstr "Taglio alteluci" + +#: ../src/iop/filmicrgb.c:4551 +msgid "" +"set the exposure threshold upon which\n" +"clipped highlights get reconstructed.\n" +"values are relative to the scene white point.\n" +"0 EV means the threshold is the same as the scene white point.\n" +"decrease to include more areas,\n" +"increase to exclude more areas." +msgstr "" +"Imposta la soglia di esposizione fino alla\n" +"quale ricostruire le alte luci bruciate.\n" +"I valori sono relativi al punto di bianco della scena.\n" +"0 EV significa che la soglia è uguale al punto di bianco.\n" +"Diminuire questo valore per includere un'area maggiore\n" +"aumentarlo per escludere delle aree." + +#: ../src/iop/filmicrgb.c:4561 +msgid "" +"soften the transition between clipped highlights and valid pixels.\n" +"decrease to make the transition harder and sharper,\n" +"increase to make the transition softer and blurrier." +msgstr "" +"Ammorbidisce il passaggio tra le aree totalmente sovraesposte\n" +"e quelle con pixel validi.\n" +"Diminuire il valore per ottenere una transizione più netta.\n" +"Aumentarlo per ottenere una transizione più dolce." + +#: ../src/iop/filmicrgb.c:4567 ../src/iop/filmicrgb.c:4568 +msgid "display highlight reconstruction mask" +msgstr "Visualizza maschera pe la ricostruzione delle alteluci" + +#: ../src/iop/filmicrgb.c:4575 +msgctxt "section" +msgid "balance" +msgstr "Bilanciamento" + +#: ../src/iop/filmicrgb.c:4582 +#, no-c-format +msgid "" +"decide which reconstruction strategy to favor,\n" +"inpainting a smooth color gradient\n" +"or trying to recover the textured details.\n" +"0% is an equal mix of both.\n" +"increase if at least one RGB channel is not clipped.\n" +"decrease if all RGB channels are clipped over large areas." +msgstr "" +"Decidere la strategia di ricostruzione da favorire,\n" +"ricostruire una gradazione di colore morbida\n" +"oppure cercare di recuperare i dettagli della trama.\n" +"0% è un pari ad un mix di entrambi.\n" +"Incrementare se almeno un canale RGB non è tagliato.\n" +"Decrementare se tutti i canali RGB sono tagliati in aree ampie." + +#: ../src/iop/filmicrgb.c:4593 +#, no-c-format +msgid "" +"decide which reconstruction strategy to favor,\n" +"blooming highlights like film does\n" +"or trying to recover sharp details.\n" +"0% is an equal mix of both.\n" +"increase if you want more details.\n" +"decrease if you want more blur." +msgstr "" +"Decidela strategia di ricostruzione da favorire,\n" +"sfocare le alte luci come fa la pellicola,\n" +"o tentare di recuperare i dettagli nitidi.\n" +"0% è pari ad un mix dei due.\n" +"Incrementare se si vogliono maggiori dettagli.\n" +"Decrementare se si vuole maggiore sfocatura." + +#: ../src/iop/filmicrgb.c:4605 +#, no-c-format +msgid "" +"decide which reconstruction strategy to favor,\n" +"recovering monochromatic highlights\n" +"or trying to recover colorful highlights.\n" +"0% is an equal mix of both.\n" +"increase if you want more color.\n" +"decrease if you see magenta or out-of-gamut highlights." +msgstr "" +"Decidere la strategia di ricostruzione da favorire,\n" +"recuperare le alte luci monocromatiche\n" +"oppure tentare di recperare le alte luci colorate.\n" +"0% è pari ad un mix dei due.\n" +"Incrementare se si vuole più colore.\n" +"Decrementare se vedete comparire dei magenta o delle\n" +"alte luci fuori gamma." + +#. Page LOOK +#: ../src/iop/filmicrgb.c:4613 +msgid "look" +msgstr "Aspetto" + +#: ../src/iop/filmicrgb.c:4623 +msgid "" +"equivalent to paper grade in analog.\n" +"increase to make highlights brighter and less compressed.\n" +"decrease to mute highlights." +msgstr "" +"Equivalente alla qualità della carta in analogico.\n" +"Incrementare per rendere più luminose e meno compresse le alteluci.\n" +"Decrementare per ammorbidire le alteluci." + +#: ../src/iop/filmicrgb.c:4631 +msgid "" +"width of the linear domain in the middle of the curve,\n" +"increase to get more contrast and less desaturation at extreme luminances,\n" +"decrease otherwise. no desaturation happens in the latitude range.\n" +"this has no effect on mid-tones." +msgstr "" +"Ampiezza del dominio lineare a metà della curva,\n" +"incrementa per ottenere maggior contrasto e minor desaturazione sulle " +"luminanze estreme,\n" +"decrementare per l'opposto. Non avviene desaturazione nella gamma della " +"latitudine.\n" +"Non ha effetti sui mezzi toni." + +#: ../src/iop/filmicrgb.c:4646 ../src/iop/filmicrgb.c:4794 +msgid "" +"desaturates the output of the module\n" +"specifically at extreme luminances.\n" +"increase if shadows and/or highlights are under-saturated." +msgstr "" +"Desatura l'output del modulo\n" +"in particolare a luminanze estreme.\n" +"Incrementare se le ombre e/o le alteluci sono sotto-saturate." + +#. Page OPTIONS +#: ../src/iop/filmicrgb.c:4675 +msgid "options" +msgstr "Opzioni" + +#: ../src/iop/filmicrgb.c:4680 +msgid "" +"v3 is darktable 3.0 desaturation method, same as color balance.\n" +"v4 is a newer desaturation method, based on spectral purity of light." +msgstr "" +"v3 è il metodo di desaturazione standard di darktable 3.0\n" +"lo stesso del modulo bilanciamento colore.\n" +"v4 è un nuovo metodo di desaturazione basato\n" +"sulla purezza dello spettro di luce." + +#: ../src/iop/filmicrgb.c:4684 +msgid "" +"ensure the original colors are preserved.\n" +"may reinforce chromatic aberrations and chroma noise,\n" +"so ensure they are properly corrected elsewhere." +msgstr "" +"garantisce che i colori originali vengano preservati.\n" +"potrebbe rinforzare le aberrazioni cromatiche e il rumore di cromaticità,\n" +"quindi assicurati che siano corretti appropriatamente altrove." + +#: ../src/iop/filmicrgb.c:4693 +msgid "" +"choose the desired curvature of the filmic spline in highlights.\n" +"hard uses a high curvature resulting in more tonal compression.\n" +"soft uses a low curvature resulting in less tonal compression." +msgstr "" +"Selezionare la curvatura desiderata della filmic spline per le alteluci.\n" +"Dura utilizza un'alta curvatura, risultando in maggior compressione tonale.\n" +"Morbida usa una bassa curvatura risultando in minor compressione tonale." + +#: ../src/iop/filmicrgb.c:4698 +msgid "" +"choose the desired curvature of the filmic spline in shadows.\n" +"hard uses a high curvature resulting in more tonal compression.\n" +"soft uses a low curvature resulting in less tonal compression." +msgstr "" +"Selezionare la curvatura desiderata della filmic spline per le ombre.\n" +"Dura utilizza un'alta curvatura, risultando in maggior compressione tonale.\n" +"Morbida usa una bassa curvatura risultando in minor compressione tonale." + +#: ../src/iop/filmicrgb.c:4705 +#, no-c-format +msgid "" +"enable to input custom middle-gray values.\n" +"this is not recommended in general.\n" +"fix the global exposure in the exposure module instead.\n" +"disable to use standard 18.45% middle gray." +msgstr "" +"Abilita per inserire un valore personalizzato del grigio medio.\n" +"In generale non è raccomandato.\n" +"Piuttosto correggi l'esposizione globale nel modulo esposizione.\n" +"Disabilita per usare il grigio medio standard 18.45%." + +#: ../src/iop/filmicrgb.c:4712 +msgid "" +"enable to auto-set the look hardness depending on the scene white and black " +"points.\n" +"this keeps the middle gray on the identity line and improves fast tuning.\n" +"disable if you want a manual control." +msgstr "" +"Abilita per per auto impostare la durezza dell'aspetto basato sui punti del " +"bianco e del nero della scena.\n" +"Questo mantiene il grigio medio sulla linea di identità e ottimizza la messa " +"a punto veloce.\n" +"Disabilita se vuoi un controllo manuale." + +#: ../src/iop/filmicrgb.c:4718 +msgid "" +"run extra passes of chromaticity reconstruction.\n" +"more iterations means more color propagation from neighborhood.\n" +"this will be slower but will yield more neutral highlights.\n" +"it also helps with difficult cases of magenta highlights." +msgstr "" +"Esegui passaggi extra di ricostruzione cromaticità.\n" +"Più iterazioni significa maggiore propagazione del colore dai paraggi.\n" +"Questo sarà più lento ma ottiene alte luci più neutrali.\n" +"Inoltre aiuta in casi difficili con alteluci magenta." + +#: ../src/iop/filmicrgb.c:4725 +msgid "" +"add statistical noise in reconstructed highlights.\n" +"this avoids highlights to look too smooth\n" +"when the picture is noisy overall,\n" +"so they blend with the rest of the picture." +msgstr "" +"Aggiunge rumore statistico nella ricostruzione delle alte luci.\n" +"Questo evita che le alte luci appaiano troppo piatte\n" +"mentre il resto dell'immagine contiene del rumore.\n" +"In questo modo le varie \n" +"aree sono ben bilanciate." + +#: ../src/iop/filmicrgb.c:4732 +msgid "" +"choose the statistical distribution of noise.\n" +"this is useful to match natural sensor noise pattern." +msgstr "" +"Scegli la distribuzione statistica del rumore.\n" +"Ciò è utile per allinearsi al pattern naturale del rumore del sensore." + +#: ../src/iop/filmicrgb.c:4800 +msgid "mid-tones saturation" +msgstr "Saturazione mezzi toni" + +#: ../src/iop/filmicrgb.c:4801 +msgid "" +"desaturates the output of the module\n" +"specifically at medium luminances.\n" +"increase if midtones are under-saturated." +msgstr "" +"Desatura l'immagine in uscita dal modulo\n" +"soprattutto alle luminanze medie.\n" +"Aumenta se i mezzi toni sono sotto-saturati." + +#: ../src/iop/filmicrgb.c:4807 +msgid "highlights saturation mix" +msgstr "miscela saturazione alteluci" + +#: ../src/iop/filmicrgb.c:4808 +msgid "" +"positive values ensure saturation is kept unchanged over the whole range.\n" +"negative values bleach highlights at constant hue and luminance.\n" +"zero is an equal mix of both strategies." +msgstr "" +"valori positivi assicurano che la saturazione rimanga invariate nell'intero " +"intervallo.\n" +"valori negativi sbiancano le alteluci con tonalità e luminanza costanti.\n" +"zero è una miscela centrata di entrambe le strategie." + +#: ../src/iop/finalscale.c:39 +msgctxt "modulename" +msgid "scale into final size" +msgstr "Scala nella dimensione finale" + +#: ../src/iop/flip.c:80 +msgid "rotation|flip" +msgstr "Rotazione|Capovolgimento" + +#: ../src/iop/flip.c:110 +msgid "flip or rotate image by step of 90 degrees" +msgstr "Capovolge o ruota in passi di 90°" + +#: ../src/iop/flip.c:475 +msgid "no rotation" +msgstr "Nessuna rotazione" + +#: ../src/iop/flip.c:479 ../src/iop/flip.c:622 +msgid "flip horizontally" +msgstr "Rifletti orizzontalmente" + +#: ../src/iop/flip.c:483 ../src/iop/flip.c:626 +msgid "flip vertically" +msgstr "Rifletti verticalmente" + +#: ../src/iop/flip.c:487 +msgid "rotate by -90 degrees" +msgstr "Ruota di 90° in senso orario" + +#: ../src/iop/flip.c:491 +msgid "rotate by 90 degrees" +msgstr "Ruota di 90° in senso orario" + +#: ../src/iop/flip.c:495 +msgid "rotate by 180 degrees" +msgstr "Ruota di 180°" + +#: ../src/iop/flip.c:610 +msgid "transform" +msgstr "Trasforma" + +#: ../src/iop/flip.c:614 ../src/libs/live_view.c:293 +msgid "rotate 90 degrees CCW" +msgstr "Ruota di 90° in senso orario" + +#: ../src/iop/flip.c:618 ../src/libs/live_view.c:294 +msgid "rotate 90 degrees CW" +msgstr "Ruota di 90° in senso orario" + +#: ../src/iop/gamma.c:44 +msgctxt "modulename" +msgid "display encoding" +msgstr "Visualizza codifica" + +#: ../src/iop/globaltonemap.c:100 +msgid "global tonemap" +msgstr "mappatura tonale globale" + +#: ../src/iop/globaltonemap.c:105 +msgid "this module is deprecated. please use the filmic rgb module instead." +msgstr "Questo modulo è deprecato. Piuttosto usa il modulo filmic RGB." + +#: ../src/iop/globaltonemap.c:655 ../src/libs/filters/colors.c:259 +msgid "operator" +msgstr "Operatore" + +#: ../src/iop/globaltonemap.c:656 +msgid "the global tonemap operator" +msgstr "Operatore della mappatura tonale globale" + +#: ../src/iop/globaltonemap.c:659 +msgid "" +"the bias for tonemapper controls the linearity, the higher the more details " +"in blacks" +msgstr "" +"L'errore per la mappatura tonale controlla la linearità, più è elevata più " +"dettagli ci sono nei neri" + +#: ../src/iop/globaltonemap.c:663 +msgid "the target light for tonemapper specified as cd/m2" +msgstr "Luce di destinazione per la mappatura tonale specificata come cd/m2" + +#: ../src/iop/graduatednd.c:67 +msgid "neutral gray ND2 (soft)" +msgstr "Grigio neutro ND2 (leggero) " + +#: ../src/iop/graduatednd.c:70 +msgid "neutral gray ND4 (soft)" +msgstr "Grigio neutro ND4 (leggero) " + +#: ../src/iop/graduatednd.c:73 +msgid "neutral gray ND8 (soft)" +msgstr "Grigio neutro ND8 (leggero) " + +#: ../src/iop/graduatednd.c:76 +msgid "neutral gray ND2 (hard)" +msgstr "Grigio neutro ND2 (pesante) " + +#: ../src/iop/graduatednd.c:80 +msgid "neutral gray ND4 (hard)" +msgstr "Grigio neutro ND4 (pesante) " + +#: ../src/iop/graduatednd.c:83 +msgid "neutral gray ND8 (hard)" +msgstr "Grigio neutro ND8 (pesante) " + +#: ../src/iop/graduatednd.c:87 +msgid "orange ND2 (soft)" +msgstr "Arancione ND2 (leggero) " + +#: ../src/iop/graduatednd.c:90 +msgid "yellow ND2 (soft)" +msgstr "Giallo ND2 (leggero) " + +#: ../src/iop/graduatednd.c:94 +msgid "purple ND2 (soft)" +msgstr "Viola ND2 (leggero) " + +#: ../src/iop/graduatednd.c:98 +msgid "green ND2 (soft)" +msgstr "Verde ND2 (leggero) " + +#: ../src/iop/graduatednd.c:102 +msgid "red ND2 (soft)" +msgstr "Rosso ND2 (leggero) " + +#: ../src/iop/graduatednd.c:105 +msgid "blue ND2 (soft)" +msgstr "Blu ND2 (leggero) " + +#: ../src/iop/graduatednd.c:109 +msgid "brown ND4 (soft)" +msgstr "Marrone ND4 (leggero) " + +#: ../src/iop/graduatednd.c:140 +msgid "graduated density" +msgstr "filtro graduato" + +#: ../src/iop/graduatednd.c:145 +msgid "simulate an optical graduated neutral density filter" +msgstr "Simula un filtro neutro graduato" + +#: ../src/iop/graduatednd.c:1083 +msgid "the density in EV for the filter" +msgstr "Densità in EV per il filtro" + +#: ../src/iop/graduatednd.c:1088 +#, no-c-format +msgid "" +"hardness of graduation:\n" +"0% = soft, 100% = hard" +msgstr "" +"Compressione della gradazione:\n" +"0% = leggero, 100% = pesante" + +#: ../src/iop/graduatednd.c:1092 +msgid "rotation of filter -180 to 180 degrees" +msgstr "Rotazione del filtro da -180° a 180°" + +#: ../src/iop/graduatednd.c:1105 +msgid "select the hue tone of filter" +msgstr "Seleziona la tonalità del filtro" + +#: ../src/iop/graduatednd.c:1111 +msgid "select the saturation of filter" +msgstr "Seleziona la saturazione del filtro" + +#: ../src/iop/graduatednd.c:1122 +#, c-format +msgid "[%s on nodes] change line rotation" +msgstr "[%s on nodes] Modifica rotazione linea" + +#: ../src/iop/graduatednd.c:1123 +#, c-format +msgid "[%s on line] move line" +msgstr "[%s on line] Sposta linea" + +#: ../src/iop/graduatednd.c:1125 +#, c-format +msgid "[%s on line] change density" +msgstr "[%s on line] Modifica densità" + +#: ../src/iop/graduatednd.c:1127 +#, c-format +msgid "[%s on line] change hardness" +msgstr "[%s on line] Modifica intensità" + +#: ../src/iop/grain.c:444 +msgid "grain" +msgstr "grana" + +#: ../src/iop/grain.c:449 +msgid "simulate silver grains from film" +msgstr "Simula i grani di argento della pellicola" + +#: ../src/iop/grain.c:600 +msgid "the grain size (~ISO of the film)" +msgstr "Dimensione grana (~ISO della pellicola)" + +#: ../src/iop/grain.c:604 +msgid "the strength of applied grain" +msgstr "Intensità della grana applicata" + +#: ../src/iop/grain.c:608 +msgid "" +"amount of mid-tones bias from the photographic paper response modeling. the " +"greater the bias, the more pronounced the fall off of the grain in shadows " +"and highlights" +msgstr "" +"Valore dell'errore nei mezzi toni dal modello di risposta della carta " +"fotografica. Più elevato l'errore e più pronunciata sarà la caduta della " +"grana nelle ombre e nelle alte luci" + +#: ../src/iop/hazeremoval.c:100 +msgid "haze removal" +msgstr "rimozione foschia" + +#: ../src/iop/hazeremoval.c:106 +msgid "dehaze|defog|smoke|smog" +msgstr "Rimuovi foschia | nebbia | fumo | smog" + +#: ../src/iop/hazeremoval.c:111 +msgid "remove fog and atmospheric hazing from pictures" +msgstr "Rimuove nebbia e foschia dalla scena" + +#: ../src/iop/hazeremoval.c:204 +msgid "amount of haze reduction" +msgstr "Ammontare della riduzione" + +#: ../src/iop/hazeremoval.c:206 +msgid "distance" +msgstr "Distanza" + +#: ../src/iop/hazeremoval.c:208 +msgid "limit haze removal up to a specific spatial depth" +msgstr "Limita la riduzione foschia ad una specifica distanza" + +#: ../src/iop/highlights.c:173 +msgid "highlight reconstruction" +msgstr "Ricostruzione alteluci" + +#: ../src/iop/highlights.c:178 +msgid "avoid magenta highlights and try to recover highlights colors" +msgstr "Cancella il magenta dalle alte luci e tenta di recuperare i colori" + +#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:77 +msgid "reconstruction, raw" +msgstr "Ricostruzione, RAW" + +#: ../src/iop/highlights.c:1004 +msgid "" +"highlights: mode not available for this type of image. falling back to " +"inpaint opposed." +msgstr "" +"alteluci: modalità non disponibile per questo tipo di immagine. Si ricade su " +"impaint opposto." + +#: ../src/iop/highlights.c:1184 +msgid "highlight reconstruction method" +msgstr "Metodo ricostruzione alte luci" + +#: ../src/iop/highlights.c:1189 +msgid "" +"manually adjust the clipping threshold mostly used against magenta " +"highlights.\n" +"you might use this for tuning 'laplacian', 'inpaint opposed' or " +"'segmentation' modes,\n" +"especially if camera white point is incorrect." +msgstr "" +"Regola manualmente la soglia di taglio, usato principalmente contro le " +"alteluci magenta\n" +"Potresti volerlo usare per la messa a punto delle modalità 'laplaciana', " +"'inpaint opposto ' o'segmentazione',\n" +"soprattutto se il punto di bianco della fotocamera è incorretto." + +#: ../src/iop/highlights.c:1193 +msgid "" +"visualize clipped highlights in a false color representation.\n" +"the effective clipping level also depends on the reconstruction method." +msgstr "" +"mostra in falsi colori il taglio delle alteluci.\n" +"il livello effettivo di taglio dipende anche dal metodo di ricostruzione." + +#: ../src/iop/highlights.c:1203 +msgid "" +"combine closely related clipped segments by morphological operations.\n" +"this often leads to improved color reconstruction for tiny segments before " +"dark background." +msgstr "" +"Combina, attraverso operazioni morfologiche, i segmenti tagliati che sono " +"strettamente correlati.\n" +" Questo porta spess a migliorare la ricostruzione colore per i segmeni " +"piccoli prima di uno sfondo scuro." + +#: ../src/iop/highlights.c:1206 +msgid "visualize the combined segments in a false color representation." +msgstr "mostra con falsi colori i segmenti combinati." + +#: ../src/iop/highlights.c:1213 +msgid "" +"select inpainting after segmentation analysis.\n" +"increase to favor candidates found in segmentation analysis, decrease for " +"opposed means inpainting." +msgstr "" +"Seleziona inpainting dopo l'analisi della segmentazione.\n" +"Incrementa per favorire i candidati trovati nell'analisi della " +"segmentazione, decrementa per inpainting per mezzo opposto." + +#: ../src/iop/highlights.c:1216 +msgid "" +"visualize segments that are considered to have a good candidate in a false " +"color representation." +msgstr "" +"mostra con falsi colori i segmenti che vengono considerati per avere un buon " +"candidato." + +#: ../src/iop/highlights.c:1225 +msgid "" +"approximate lost data in regions with all photosites clipped, the effect " +"depends on segment size and border gradients.\n" +"choose a mode tuned for segment size or the generic mode that tries to find " +"best settings for every segment.\n" +"small means areas with a diameter less than 25 pixels, large is best for " +"greater than 100.\n" +"the flat modes ignore narrow unclipped structures (like powerlines) to keep " +"highlights rebuilt and avoid gradients." +msgstr "" +"Approssima i dati perdutin nelle regioni con tutti i fotositi tagliati, " +"l'effettodipende dalla dimensione dei segmenti e dei gradienti dei confini.\n" +"Scegliere una modalità ottimizzata per la dimensione dei segmenti o la " +"modalità generica che tenta di trovare le migliori impostazioni per ogni " +"segmento.\n" +"Piccolo significa aree con un diametro minore di 25 pixel, largo è migliore " +"permaggiore di 100.\n" +"La modalià piatto ignora strutture sottili non tagliate (ad esempio le linee " +"elettriche) per mantenere le alteluci ricostruite e per evitare gradienti." + +#: ../src/iop/highlights.c:1231 +msgid "set strength of rebuilding in regions with all photosites clipped." +msgstr "" +"Imposta l'intensità della ricostruzione nelle regioni con tutti i fotositi " +"tagliati." + +#: ../src/iop/highlights.c:1233 +msgid "show the effect that is added to already reconstructed data." +msgstr "mostra l'effetto che è stato aggiunto ai dati già ricostruiti." + +#: ../src/iop/highlights.c:1242 +msgid "" +"add noise to visually blend the reconstructed areas\n" +"into the rest of the noisy image. useful at high ISO." +msgstr "" +"Aggiungi rumore per uniformare le aree ricostruite\n" +"con il resto dell'immagine: utile per foto ad alti ISO" + +#: ../src/iop/highlights.c:1246 +msgid "" +"increase if magenta highlights don't get fully corrected\n" +"each new iteration brings a performance penalty." +msgstr "" +"Aumenta se le alte luci magenta non vengono corrette del tutto\n" +"Ogni nuova iterazione rallenta il calcolo." + +#: ../src/iop/highlights.c:1251 +msgid "" +"increase if magenta highlights don't get fully corrected.\n" +"this may produce non-smooth boundaries between valid and clipped regions." +msgstr "" +"Aumenta se le alte luci magenta non vengono corrette del tutto.\n" +"Questo potrebbe portare a bordi molto visibili tra le aree originali e " +"quelle tagliate." + +#: ../src/iop/highlights.c:1255 +msgid "" +"increase to correct larger clipped areas.\n" +"large values bring huge performance penalties" +msgstr "" +"Aumenta per correggere le aree tagliate più ampie.\n" +"Valori alti rallentano di molto il calcolo" + +#: ../src/iop/highlights.c:1259 +msgid "this module does not work with monochrome RAW files" +msgstr "Questo modulo non funziona RAW monocromatici" + +#: ../src/iop/highpass.c:72 +msgid "highpass" +msgstr "passa-alto" + +#: ../src/iop/highpass.c:77 +msgid "isolate high frequencies in the image" +msgstr "Isola le alte frequenze nell'immagine" + +#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:107 +msgid "linear or non-linear, Lab, scene-referred" +msgstr "Lineare o non-lineare, Lab, riferito alla scena" + +#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:108 ../src/iop/sharpen.c:98 +msgid "frequential, Lab" +msgstr "Frequenziale, Lab" + +#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:109 +msgid "special, Lab, scene-referred" +msgstr "Speciale, Lab, riferito alla scena" + +#: ../src/iop/highpass.c:378 +msgid "the sharpness of highpass filter" +msgstr "Nitidezza del filtro passa-alto" + +#: ../src/iop/highpass.c:382 +msgid "the contrast of highpass filter" +msgstr "Contrasto del filtro passa-alto" + +#: ../src/iop/hotpixels.c:69 +msgid "hot pixels" +msgstr "pixel bruciati" + +#: ../src/iop/hotpixels.c:74 +msgid "remove abnormally bright pixels by dampening them with neighbors" +msgstr "Rimuove i pixel eccezionalmente chiari smorzandoli con i pixel vicini" + +#: ../src/iop/hotpixels.c:442 +#, c-format +msgid "fixed %d pixel" +msgid_plural "fixed %d pixels" +msgstr[0] "Corretto pixel %d" +msgstr[1] "Corretti pixel %d" + +#: ../src/iop/hotpixels.c:465 +msgid "lower threshold for hot pixel" +msgstr "Soglia inferiore per i pixel bruciati" + +#: ../src/iop/hotpixels.c:469 +msgid "strength of hot pixel correction" +msgstr "Intensità della correzione dei pixel bruciati" + +#: ../src/iop/hotpixels.c:485 +msgid "" +"hot pixel correction\n" +"only works for raw images." +msgstr "" +"Correzione dei pixel bruciati\n" +"Funziona solo sulle immagini RAW." + +#: ../src/iop/invert.c:106 ../src/iop/invert.c:442 +#, c-format +msgid "`%s' color matrix not found for 4bayer image" +msgstr "`%s' matrice colore non trovata per l'immagine 4bayer" + +#: ../src/iop/invert.c:125 +msgid "invert" +msgstr "inverti" + +#: ../src/iop/invert.c:130 +msgid "this module is deprecated. please use the negadoctor module instead." +msgstr "Questo modulo è deprecato. Piuttosto usa il modulo negadoctor." + +#: ../src/iop/invert.c:135 +msgid "invert film negatives" +msgstr "Inverti negativi pellicola" + +#: ../src/iop/invert.c:137 ../src/iop/invert.c:139 +msgid "linear, raw, display-referred" +msgstr "Lineare, RAW, riferito allo schermo" + +#. Here we could provide more for monochrome special cases. As no monochrome camera +#. has a bayer sensor we don't need g->RGB_to_CAM and g->CAM_to_RGB corrections +#: ../src/iop/invert.c:427 +msgid "brightness of film material" +msgstr "Luminosità del supporto della pellicola" + +#: ../src/iop/invert.c:431 +msgid "color of film material" +msgstr "Colore del supporto della pellicola" + +#: ../src/iop/invert.c:515 ../src/iop/negadoctor.c:866 +msgid "pick color of film material from image" +msgstr "Preleva il colore della pellicola dall'immagine" + +#: ../src/iop/invert.c:517 +msgid "select color of film material" +msgstr "Seleziona il colore del supporto della pellicola" + +#: ../src/iop/lens.cc:251 +msgid "lens correction" +msgstr "correzione obiettivo" + +#: ../src/iop/lens.cc:256 +msgid "vignette|chromatic aberrations|distortion" +msgstr "Vignettatura | aberrazioni cromatiche | distorsione" + +#: ../src/iop/lens.cc:261 +msgid "correct lenses optical flaws" +msgstr "Corregge i difetti ottici delle lenti" + +#: ../src/iop/lens.cc:264 +msgid "geometric and reconstruction, RGB" +msgstr "RGB geometrico e ricostruzione" + +#: ../src/iop/lens.cc:3773 +#, c-format +msgid "" +"maker:\t\t%s\n" +"model:\t\t%s%s\n" +"mount:\t\t%s\n" +"crop factor:\t%.1f" +msgstr "" +"Costruttore:\t\t%s\n" +"Modello:\t\t%s%s\n" +"Attacco:\t\t%s\n" +"Fattore ritaglio:\t%.1f" + +#: ../src/iop/lens.cc:4026 +#, c-format +msgid "" +"maker:\t\t%s\n" +"model:\t\t%s\n" +"focal range:\t%s\n" +"aperture:\t%s\n" +"crop factor:\t%.1f\n" +"type:\t\t%s\n" +"mounts:\t%s" +msgstr "" +"Produttore:\t\t%s\n" +"Modello:\t\t%s\n" +"Gamma focale:\t%s\n" +"Diaframma:\t\t%s\n" +"Fattore ritaglio:\t%.1f\n" +"Tipo:\t\t\t%s\n" +"Montature:\t\t%s" + +#: ../src/iop/lens.cc:4072 +msgid "focal length (mm)" +msgstr "Lunghezza focale (mm)" + +#: ../src/iop/lens.cc:4098 +msgid "f/" +msgstr "f/" + +#: ../src/iop/lens.cc:4099 +msgid "f-number (aperture)" +msgstr "Numero-f (apertura diaframma)" + +#: ../src/iop/lens.cc:4115 +msgid "d" +msgstr "d" + +#: ../src/iop/lens.cc:4116 +msgid "distance to subject" +msgstr "Distanza dal soggetto" + +#: ../src/iop/lens.cc:4277 +msgid "camera/lens not found" +msgstr "Fotocamera/obiettivo non trovata/o" + +#: ../src/iop/lens.cc:4278 +msgid "" +"please select your lens manually\n" +"you might also want to check if your Lensfun database is up-to-date\n" +"by running lensfun-update-data" +msgstr "" +"Seleziona manualmente il tuo obiettivo\n" +"vorrei voler provare a controllare se il database Lensfun è aggiornato\n" +"eseguendo lensfun-update-data" + +#: ../src/iop/lens.cc:4423 +msgid "camera model" +msgstr "Modello fotocamera" + +#: ../src/iop/lens.cc:4428 +msgid "find camera" +msgstr "Trova fotocamera" + +#: ../src/iop/lens.cc:4443 +msgid "find lens" +msgstr "Trova obiettivo" + +#. scale +#: ../src/iop/lens.cc:4477 ../src/iop/vignette.c:1055 +#: ../src/iop/watermark.c:1372 ../src/libs/export.c:1264 +msgid "scale" +msgstr "Scala" + +#: ../src/iop/lens.cc:4482 +msgid "auto scale" +msgstr "Scala automatica" + +#: ../src/iop/lens.cc:4484 +msgid "automatic scale to available image size due to Lensfun data" +msgstr "" +"ridomensionamento automatico alla dimensione dell'immagine disponibile " +"grazie ai dati di Lensfun" + +#: ../src/iop/lens.cc:4488 +msgid "correct distortions or apply them" +msgstr "Correggi le distorsioni o applicale" + +#: ../src/iop/lens.cc:4495 +msgid "transversal chromatic aberration red" +msgstr "Aberrazioni cromatiche trasversali del rosso" + +#: ../src/iop/lens.cc:4499 +msgid "transversal chromatic aberration blue" +msgstr "Aberrazioni cromatiche trasversali del blu" + +#: ../src/iop/lens.cc:4509 +msgid "use latest algorithm" +msgstr "Usa l'algoritmo più recente" + +#: ../src/iop/lens.cc:4511 +msgid "" +"you're using an old version of the algorithm.\n" +"once enabled, you won't be able to\n" +"return back to old algorithm." +msgstr "" +"Stai usando una vecchia versione dell'algoritmo.\n" +"Una volta abilitato non sarà più possibile \n" +"ritornare al vecchio algoritmo." + +#: ../src/iop/lens.cc:4521 +msgid "fine-tuning" +msgstr "Regolazione fine" + +#. DT_IOP_SECTION_FOR_PARAMS doesn't work in C++ so create section module manually +#: ../src/iop/lens.cc:4526 +msgid "fine-tune" +msgstr "Regolazione fine" + +#: ../src/iop/lens.cc:4532 +msgid "tune the warp and chromatic aberration correction" +msgstr "Regola la distorsione e la correzione delle aberrazioni cromatiche" + +#: ../src/iop/lens.cc:4536 +msgid "tune the vignette correction" +msgstr "regola la correzione della vignettatura" + +#: ../src/iop/lens.cc:4540 +msgid "tune the TCA red correction" +msgstr "regola la correzione TCA per il rosso" + +#: ../src/iop/lens.cc:4544 +msgid "tune the TCA blue correction" +msgstr "regola la correzione TCA per il blu" + +#: ../src/iop/lens.cc:4551 +msgid "image scaling" +msgstr "ridimensionamento dell'immagine" + +#: ../src/iop/lens.cc:4553 +msgid "automatic scale to available image size" +msgstr "Ridimensiona automaticamente alla dimensione disponibile dell'immagine" + +#: ../src/iop/lens.cc:4561 +msgid "" +"select a correction mode either based on\n" +" a) data and algorithms provided by the Lensfun project\n" +" b) embedded metadata provided by the camera or software vendor" +msgstr "" +"seleziona una modalità di correzione basato su\n" +" a) dati e algoritmi forniti dal progetto Lensfun\n" +" b) metadati incorporati forniti dal produttore della fotocamera o del " +"software" + +#: ../src/iop/lens.cc:4568 +msgid "which corrections to apply" +msgstr "Quali correzioni applicare" + +#: ../src/iop/lens.cc:4574 +msgid "corrections done: " +msgstr "Correzioni eseguite:" + +#: ../src/iop/lens.cc:4576 +msgid "which corrections have actually been done" +msgstr "Quali correzioni sono state effettivamente eseguite" + +#: ../src/iop/lens.cc:4595 +msgid "manual vignette correction" +msgstr "Correzione manuale della vignettatura" + +#: ../src/iop/lens.cc:4599 +msgid "additional manually controlled optical vignetting correction" +msgstr "" +"correzione aggiuntiva della vignettatura ottica controllata manualmente" + +#: ../src/iop/lens.cc:4602 +msgid "vignette" +msgstr "Vignettatura" + +#: ../src/iop/lens.cc:4606 +msgid "amount of the applied optical vignetting correction" +msgstr "Ammontare della correzione ottica applicata alla vignettatura" + +#: ../src/iop/lens.cc:4608 +msgid "show applied optical vignette correction mask" +msgstr "Mostra la maschera della correzione ottica applicata alla vignettatura" + +#: ../src/iop/lens.cc:4618 +msgid "radius of uncorrected centre" +msgstr "Raggio del centro non corretto" + +#: ../src/iop/lens.cc:4624 +msgid "steepness of the correction effect outside of radius" +msgstr "pendenza del'effetto di correzione al di fuori del raggio" + +#: ../src/iop/levels.c:112 +msgid "this module is deprecated. please use the RGB levels module instead." +msgstr "questo modulo è deprecato. Si prega invece di usare Livelli RGB." + +#: ../src/iop/levels.c:117 ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1022 +#: ../src/iop/rgblevels.c:1056 +msgid "levels" +msgstr "livelli" + +#: ../src/iop/levels.c:139 +msgid "adjust black, white and mid-gray points" +msgstr "Regola i punti di nero, bianco e grigio medio" + +#: ../src/iop/levels.c:644 ../src/iop/rgblevels.c:1059 +msgid "" +"drag handles to set black, gray, and white points. operates on L channel." +msgstr "" +"Trascina per gestire i i punti di nero, grigio e bianco. Opera sul canale L." + +#: ../src/iop/levels.c:658 ../src/iop/rgblevels.c:1108 +msgid "apply auto levels" +msgstr "Applica livelli automatici" + +#: ../src/iop/levels.c:662 ../src/iop/rgblevels.c:1077 +msgid "pick black point from image" +msgstr "Prendi punto di nero dall'immagine" + +#: ../src/iop/levels.c:666 ../src/iop/rgblevels.c:1085 +msgid "pick medium gray point from image" +msgstr "Prendi punto di grigio medio dall'immagine" + +#: ../src/iop/levels.c:670 ../src/iop/rgblevels.c:1093 +msgid "pick white point from image" +msgstr "Prendi punto di bianco dall'immagine" + +#: ../src/iop/levels.c:683 ../src/iop/rgblevels.c:968 +#: ../src/iop/rgblevels.c:1075 +msgid "black" +msgstr "Nero" + +#: ../src/iop/levels.c:684 +msgid "black percentile" +msgstr "Percentile del nero" + +#: ../src/iop/levels.c:688 +msgid "gray percentile" +msgstr "Percentile del grigio" + +#: ../src/iop/levels.c:691 ../src/iop/rgblevels.c:970 +#: ../src/iop/rgblevels.c:1091 +msgid "white" +msgstr "Bianco" + +#: ../src/iop/levels.c:692 +msgid "white percentile" +msgstr "Percentile del bianco" + +#: ../src/iop/liquify.c:291 +msgid "liquify" +msgstr "fluidifica" + +#: ../src/iop/liquify.c:296 +msgid "distort parts of the image" +msgstr "distorce parte dell'immagine" + +#: ../src/iop/liquify.c:2895 +msgid "click to edit nodes" +msgstr "Clic per modificare i nodi" + +#: ../src/iop/liquify.c:3599 +msgid "" +"<b>add point</b>: click and drag\n" +"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " +"ctrl+scroll" +msgstr "" +"<b>aggiungi un punto</b>: clicca e trascina\n" +"<b>dimensione</b>: rotella del mouse - <b>forza</b>: Maiusc+rotella- " +"<b>direzione</b>: ctrl+rotella" + +#: ../src/iop/liquify.c:3602 +msgid "" +"<b>add line</b>: click\n" +"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " +"ctrl+scroll" +msgstr "" +"<b>aggiungi linea</b>: click\n" +"<b>dimensione</b>: rotella del mouse - <b>forza</b>: maisuc+rotella- " +"<b>direzione</b>: ctrl+rotella" + +#: ../src/iop/liquify.c:3605 +msgid "" +"<b>add curve</b>: click\n" +"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " +"ctrl+scroll" +msgstr "" +"<b>aggiungi curva</b>: click\n" +"<b>dimensione</b>: rotella del mouse - <b>forza</b>: maisuc+rotella- " +"<b>direzione</b>: ctrl+rotella" + +#: ../src/iop/liquify.c:3656 +msgid "" +"use a tool to add warps\n" +"<b>remove a warp</b>: right-click" +msgstr "" +"Usa uno strumento per aggiungere deformazioni\n" +"<b>rimuovi una deformazione</b>: click destro" + +#: ../src/iop/liquify.c:3659 +msgid "warps|nodes count:" +msgstr "Numero di forme|nodi" + +#: ../src/iop/liquify.c:3668 +msgid "edit, add and delete nodes" +msgstr "Modifica, aggiunge ed elimina nodi" + +#: ../src/iop/liquify.c:3673 ../src/iop/liquify.c:3679 +#: ../src/iop/liquify.c:3685 ../src/iop/retouch.c:2465 +#: ../src/iop/retouch.c:2471 ../src/iop/retouch.c:2476 +#: ../src/iop/retouch.c:2481 ../src/iop/spots.c:885 ../src/iop/spots.c:890 +#: ../src/iop/spots.c:895 ../src/libs/masks.c:1812 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1830 ../src/libs/masks.c:1839 ../src/libs/masks.c:1848 +msgid "shapes" +msgstr "Forme" + +#: ../src/iop/liquify.c:3674 +msgid "draw curves" +msgstr "Disegna curve" + +#: ../src/iop/liquify.c:3674 +msgid "draw multiple curves" +msgstr "Disegna curve multiple" + +#: ../src/iop/liquify.c:3680 +msgid "draw lines" +msgstr "Disegna linee" + +#: ../src/iop/liquify.c:3680 +msgid "draw multiple lines" +msgstr "Disegna linee multiple" + +#: ../src/iop/liquify.c:3686 +msgid "draw points" +msgstr "Disegna punti" + +#: ../src/iop/liquify.c:3686 +msgid "draw multiple points" +msgstr "Disegna punti multipli" + +#: ../src/iop/liquify.c:3692 +msgid "" +"<b>add node</b>: ctrl+click - <b>remove path</b>: right click\n" +"<b>toggle line/curve</b>: ctrl+alt+click" +msgstr "" +"<b>aggiungi un nodo</b>: ctrl+click - <b>rimuovi un tracciato</b>: click " +"destro\n" +"<b>alterna linea/curva</b>: ctrl+alt+click" + +#: ../src/iop/liquify.c:3695 +msgid "" +"<b>move</b>: click and drag - <b>show/hide feathering controls</b>: click\n" +"<b>autosmooth, cusp, smooth, symmetrical</b>: ctrl+click - <b>remove</b>: " +"right click" +msgstr "" +"<b>sposta</b>: click e trascina - <b>mostra/nascondi controlli di sfumatura</" +"b>: click\n" +"<b>dolcezza automatica, cuspide, dolcezza, simmetrico</b>: ctrl+click - " +"<b>rimuovi</b>: click destro" + +#: ../src/iop/liquify.c:3699 ../src/iop/liquify.c:3701 +msgid "<b>shape of path</b>: drag" +msgstr "<b>forma del tracciato</b>: trascina" + +#: ../src/iop/liquify.c:3703 +msgid "<b>radius</b>: drag" +msgstr "<b>raggio</b>: drag" + +#: ../src/iop/liquify.c:3705 +msgid "<b>hardness (center)</b>: drag" +msgstr "<b>durezza (centro)</b>: trascina" + +#: ../src/iop/liquify.c:3707 +msgid "<b>hardness (feather)</b>: drag" +msgstr "<b>durezza (sfumatura)</b>: trascina" + +#: ../src/iop/liquify.c:3709 +msgid "" +"<b>strength</b>: drag\n" +"<b>linear, grow, and shrink</b>: ctrl+click" +msgstr "" +"<b>forza</b>: trascina\n" +"<b>lineare, allarga, e riduci</b>: ctrl+click" + +#: ../src/iop/lowlight.c:86 +msgid "lowlight vision" +msgstr "visione luminosità scarsa" + +#: ../src/iop/lowlight.c:91 +msgid "simulate human night vision" +msgstr "Simula la visione notturna umana" + +#: ../src/iop/lowlight.c:94 +msgid "linear, XYZ" +msgstr "XYZ, lineare" + +#: ../src/iop/lowlight.c:338 +msgid "indoor bright" +msgstr "Interno luminoso" + +#: ../src/iop/lowlight.c:356 +msgid "indoor dim" +msgstr "Interno luce fioca" + +#: ../src/iop/lowlight.c:374 +msgid "indoor dark" +msgstr "Interno buio" + +#: ../src/iop/lowlight.c:392 +msgid "twilight" +msgstr "Crepuscolo" + +#: ../src/iop/lowlight.c:410 +msgid "night street lit" +msgstr "Strada notturna illuminata" + +#: ../src/iop/lowlight.c:428 +msgid "night street" +msgstr "Strada notturna" + +#: ../src/iop/lowlight.c:446 +msgid "night street dark" +msgstr "Strada notturna buia" + +#: ../src/iop/lowlight.c:465 +msgid "night" +msgstr "Notte" + +#: ../src/iop/lowlight.c:639 +msgid "dark" +msgstr "Buio" + +#: ../src/iop/lowlight.c:647 +msgid "bright" +msgstr "Luminoso" + +#: ../src/iop/lowlight.c:656 +msgid "day vision" +msgstr "Visione diurna" + +#: ../src/iop/lowlight.c:661 +msgid "night vision" +msgstr "Visione notturna" + +#: ../src/iop/lowlight.c:833 +msgid "blueness in shadows" +msgstr "Blu nelle ombre" + +#: ../src/iop/lowpass.c:100 +msgid "lowpass" +msgstr "passa-basso" + +#: ../src/iop/lowpass.c:105 +msgid "isolate low frequencies in the image" +msgstr "Isola le basse frequenze nell'immagine" + +#: ../src/iop/lowpass.c:579 +msgid "local contrast mask" +msgstr "Maschera di contrasto locale" + +#: ../src/iop/lowpass.c:604 +msgid "radius of gaussian/bilateral blur" +msgstr "Raggio della sfocatura gaussiana/bilaterale" + +#: ../src/iop/lowpass.c:605 +msgid "contrast of lowpass filter" +msgstr "Contrasto del filtro passa-basso" + +#: ../src/iop/lowpass.c:606 +msgid "brightness adjustment of lowpass filter" +msgstr "Regolazione della luminosità del filtro passa-basso" + +#: ../src/iop/lowpass.c:607 +msgid "color saturation of lowpass filter" +msgstr "Saturazione colore del filtro passa-basso" + +#: ../src/iop/lowpass.c:608 +msgid "which filter to use for blurring" +msgstr "Quale filtro usare per la sfocatura" + +#: ../src/iop/lut3d.c:136 +msgid "LUT 3D" +msgstr "LUT 3D" + +#: ../src/iop/lut3d.c:141 +msgid "perform color space corrections and apply look" +msgstr "Esegue una correzione dello spazio colore e applica uno stile" + +#: ../src/iop/lut3d.c:144 +msgid "defined by profile, RGB" +msgstr "Definito dal profilo, RGB" + +#: ../src/iop/lut3d.c:486 +msgid "error allocating buffer for gmz LUT" +msgstr "Errore mentre si allocava il buffer per il LUT gmz" + +#: ../src/iop/lut3d.c:512 +#, c-format +msgid "invalid png file %s" +msgstr "File PNG %s non valido" + +#: ../src/iop/lut3d.c:520 +#, c-format +msgid "png bit depth %d is not supported" +msgstr "la profondità di bit PNG %d non è supportata" + +#: ../src/iop/lut3d.c:534 ../src/iop/lut3d.c:544 +#, c-format +msgid "invalid level in png file %d %d" +msgstr "Livello non valido nel file PNG %d %d" + +#: ../src/iop/lut3d.c:539 +msgid "this darktable build is not compatible with compressed CLUT" +msgstr "" +"Questa installazione di darktable non è compatibile con i clut compressi" + +#: ../src/iop/lut3d.c:556 ../src/iop/lut3d.c:808 +#, c-format +msgid "error - LUT 3D size %d exceeds the maximum supported" +msgstr "Errore - la dimensione %d del lut 3D eccede quella massima supportata" + +#: ../src/iop/lut3d.c:568 +msgid "error allocating buffer for png LUT" +msgstr "impossibile allocare il buffer per il lut PNG" + +#: ../src/iop/lut3d.c:576 +#, c-format +msgid "error - could not read png image %s" +msgstr "Errore - impossibile leggere l'immagine PNG %s" + +#: ../src/iop/lut3d.c:586 +msgid "error - allocating buffer for png LUT" +msgstr "Errore - impossibile allocare il buffer per il lut PNG" + +#: ../src/iop/lut3d.c:761 +#, c-format +msgid "error - invalid cube file: %s" +msgstr "Errore - file cubo %s non valido" + +#: ../src/iop/lut3d.c:775 +msgid "DOMAIN MIN other than 0 is not supported" +msgstr "DOMINIO MIN diverso 0 non è supportato" + +#: ../src/iop/lut3d.c:787 +msgid "DOMAIN MAX other than 1 is not supported" +msgstr "DOMINIO MAX diverso da 1 non è supportato" + +#: ../src/iop/lut3d.c:797 +msgid "1D cube LUT is not supported" +msgstr "Il cubo LUT 1D non è supportato" + +#: ../src/iop/lut3d.c:819 +msgid "error - allocating buffer for cube LUT" +msgstr "Errore - impossibile allocare il buffer per il LUT cubo" + +#: ../src/iop/lut3d.c:830 +msgid "error - cube LUT size is not defined" +msgstr "Errore - la dimensione del cubo LUT non è definita" + +#: ../src/iop/lut3d.c:841 +#, c-format +msgid "error - cube LUT invalid number line %d" +msgstr "Errore - numero non valido sulla riga %d del cubo LUT" + +#: ../src/iop/lut3d.c:857 +#, c-format +msgid "error - cube LUT lines number %d is not correct, should be %d" +msgstr "" +"Errore - il numero della riga LUT %d non è corretto, dovrebbe essere %d" + +#: ../src/iop/lut3d.c:867 +#, c-format +msgid "warning - cube LUT has %d values out of range [0,1]" +msgstr "attenzione - il cubo LUT ha %d valori fuori scala [0,1]" + +#: ../src/iop/lut3d.c:892 +#, c-format +msgid "error - invalid 3dl file: %s" +msgstr "Errore - file 3dl %s non valido" + +#: ../src/iop/lut3d.c:913 +#, c-format +msgid "error - the maximum shaper LUT value %d is too low" +msgstr "Errore - il valore massimo del modellatore LUT %d è troppo basso" + +#: ../src/iop/lut3d.c:924 +msgid "error - allocating buffer for 3dl LUT" +msgstr "errore - allocare buffer per LUT 3dl" + +#: ../src/iop/lut3d.c:937 +msgid "error - 3dl LUT size is not defined" +msgstr "errore - la dimensione LUT 3dl non è definita" + +#: ../src/iop/lut3d.c:965 +msgid "error - 3dl LUT lines number is not correct" +msgstr "Errore - il numero di linee del LUT 3dl non è corretto" + +#: ../src/iop/lut3d.c:981 +msgid "error - the maximum LUT value does not match any valid bit depth" +msgstr "" +"Errore - il valore massimo del LUT non corrisponde a nessun valore valido di " +"profondità di bit" + +#: ../src/iop/lut3d.c:1553 +msgid "LUT root folder not defined" +msgstr "Non è definita la cartella radice dei lut" + +#: ../src/iop/lut3d.c:1559 +msgid "select LUT file" +msgstr "Seleziona il file LUT" + +#: ../src/iop/lut3d.c:1560 +msgid "_select" +msgstr "_seleziona" + +#: ../src/iop/lut3d.c:1580 +msgid "hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" +msgstr "CLUT dimezzato (png), 3D LUT (cubo o 3dl) o LUT gmic compresso (gmz)" + +#: ../src/iop/lut3d.c:1582 +msgid "hald CLUT (png) or 3D LUT (cube or 3dl)" +msgstr "CLUT dimezzato (png) o 3D LUT (cubo o 3dl)" + +#: ../src/iop/lut3d.c:1606 +msgid "select file outside LUT root folder is not allowed" +msgstr "" +"Non è permesso selezionare un file esterno alla cartella radice dei LUT" + +#: ../src/iop/lut3d.c:1677 +msgid "" +"select a png (haldclut), a cube, a 3dl or a gmz (compressed LUT) file " +"CAUTION: 3D LUT folder must be set in preferences/processing before choosing " +"the LUT file" +msgstr "" +"Seleziona un PNG (haldclut), un cubo, un file 3dl o gmz (LUT compresso) " +"ATTENZIONE: la cartella dei 3D LUT deve esser impostata in preferenze/" +"elaborazione prima di scegliere il file LUT" + +#: ../src/iop/lut3d.c:1681 +msgid "" +"select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be " +"set in preferences/processing before choosing the LUT file" +msgstr "" +"Seleziona un file png (haldclut), un cubo o un 3dl\n" +"ATTENZIONE: la cartella lut deve essere impostata in Preferenze/Elaborazione " +"prima di selezionare il file lut" + +#: ../src/iop/lut3d.c:1693 +msgid "" +"the file path (relative to LUT folder) is saved with image along with the " +"LUT data if it's a compressed LUT (gmz)" +msgstr "" +"Il percorso del file (relativo alla cartella lut) viene salvato con " +"l'immagine insieme ai dati lut nel caso in cui sia un lut compresso (gmz)" + +#: ../src/iop/lut3d.c:1696 +msgid "" +"the file path (relative to LUT folder) is saved with image (and not the LUT " +"data themselves)" +msgstr "" +"Il percorso del file (relativo alla cartella LUT) viene salvato con " +"l'immagine (e non vengono salvati i dati LUT)" + +#: ../src/iop/lut3d.c:1705 +msgid "enter LUT name" +msgstr "Inserisci il nome LUT" + +#: ../src/iop/lut3d.c:1726 +msgid "select the LUT" +msgstr "Seleziona il LUT" + +#: ../src/iop/lut3d.c:1739 +msgid "select the color space in which the LUT has to be applied" +msgstr "Seleziona lo spazio colore all'interno del quale applicare il LUT" + +#: ../src/iop/lut3d.c:1741 +msgid "interpolation" +msgstr "Interpolazione" + +#: ../src/iop/lut3d.c:1742 +msgid "select the interpolation method" +msgstr "Seleziona il metodo di interpolazione" + +#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:63 +msgid "mask manager" +msgstr "Gestore maschere" + +#: ../src/iop/monochrome.c:99 +msgid "quickly convert an image to black & white using a variable color filter" +msgstr "" +"Converte velocemente un'immagine in bianco e nero utilizzando un filtro " +"colorato" + +#: ../src/iop/monochrome.c:153 +msgid "red filter" +msgstr "Filtro rosso" + +#: ../src/iop/monochrome.c:568 +msgid "drag and scroll mouse wheel to adjust the virtual color filter" +msgstr "" +"Trascina e scorri la rotella del mouse per regolare il filtro colore virtuale" + +#: ../src/iop/monochrome.c:584 +msgid "how much to keep highlights" +msgstr "Quanto mantenere le alteluci" + +#: ../src/iop/negadoctor.c:135 +msgid "negadoctor" +msgstr "negadoctor" + +#: ../src/iop/negadoctor.c:140 +msgid "film|invert|negative|scan" +msgstr "Pellicola | inverti | negativo | scanner" + +#: ../src/iop/negadoctor.c:145 +msgid "invert film negative scans and simulate printing on paper" +msgstr "Inverte i negativi digitalizzati per simulare la stampa su carta" + +#: ../src/iop/negadoctor.c:483 +msgid "D min" +msgstr "D min" + +#: ../src/iop/negadoctor.c:489 ../src/iop/negadoctor.c:875 +msgid "D min red component" +msgstr "Componente rosso D min" + +#. Page FILM PROPERTIES +#: ../src/iop/negadoctor.c:851 +msgid "film properties" +msgstr "Proprietà pellicola" + +#. Dmin +#: ../src/iop/negadoctor.c:855 +msgctxt "section" +msgid "color of the film base" +msgstr "Colore del supporto della pellicola" + +#: ../src/iop/negadoctor.c:861 +msgid "select color of film material from a swatch" +msgstr "Seleziona il colore del supporto della pellicola da un campione" + +#: ../src/iop/negadoctor.c:867 +msgid "film material" +msgstr "materiale pellicola" + +#: ../src/iop/negadoctor.c:876 ../src/iop/negadoctor.c:886 +#: ../src/iop/negadoctor.c:896 +msgid "" +"adjust the color and shade of the film transparent base.\n" +"this value depends on the film material, \n" +"the chemical fog produced while developing the film,\n" +"and the scanner white balance." +msgstr "" +"Regola il colore e la tonalità della base trasparente della pellicola.\n" +"Questo valore varia in base al materiale della pellicola stessa,\n" +"della nebbia chimica che si produce durante lo sviluppo,\n" +"e del bilanciamento del bianco dello scanner." + +#: ../src/iop/negadoctor.c:885 +msgid "D min green component" +msgstr "Componente verde D min" + +#: ../src/iop/negadoctor.c:895 +msgid "D min blue component" +msgstr "Componente blu D min" + +#. D max and scanner bias +#: ../src/iop/negadoctor.c:903 +msgctxt "section" +msgid "dynamic range of the film" +msgstr "Gamma dinamica della pellicola" + +#: ../src/iop/negadoctor.c:907 +msgid "" +"maximum density of the film, corresponding to white after inversion.\n" +"this value depends on the film specifications, the developing process,\n" +"the dynamic range of the scene and the scanner exposure settings." +msgstr "" +"Densità massima della pellicola, corrispondente al bianco dopo " +"l'inversione.\n" +"Questo valore dipende dalle specifiche della pellicola, dal processo di " +"sviluppo,\n" +"dalla gamma dinamica della scena e dalle impostazioni relative " +"all'esposizione dello scanner." + +#: ../src/iop/negadoctor.c:911 +msgctxt "section" +msgid "scanner exposure settings" +msgstr "Impostazioni di esposizione dello scanner" + +#: ../src/iop/negadoctor.c:915 +msgid "" +"correct the exposure of the scanner, for all RGB channels,\n" +"before the inversion, so blacks are neither clipped or too pale." +msgstr "" +"Corregge l'esposizione dello scanner,\n" +"per tutti i canali RGB, prima dell'inversione\n" +"di modo che i neri non saranno mai troppo scuri\n" +"o troppo chiari." + +#. WB shadows +#: ../src/iop/negadoctor.c:922 +msgctxt "section" +msgid "shadows color cast" +msgstr "Predominante cromatica delle ombre" + +#: ../src/iop/negadoctor.c:928 +msgid "select color of shadows from a swatch" +msgstr "Seleziona il colore delle ombre da un campione" + +#: ../src/iop/negadoctor.c:933 +msgid "pick shadows color from image" +msgstr "Prendi il colore delle ombre dall'immagine" + +#: ../src/iop/negadoctor.c:939 +msgid "shadows red offset" +msgstr "Compensazione rosso delle ombre" + +#: ../src/iop/negadoctor.c:940 ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:954 +msgid "" +"correct the color cast in shadows so blacks are\n" +"truly achromatic. Setting this value before\n" +"the highlights illuminant white balance will help\n" +"recovering the global white balance in difficult cases." +msgstr "" +"Correggi la dominante di colore nelle ombre affinché i neri siano\n" +"realmente acromatici. Impostare questo valore prima\n" +"delle illuminanti delle alteluci di bilanciamento del bianco aiuterà\n" +"a recuperare il bilanciamento del bianco globale nei casi difficili." + +#: ../src/iop/negadoctor.c:946 +msgid "shadows green offset" +msgstr "Spostamento del verde nelle ombre" + +#: ../src/iop/negadoctor.c:953 +msgid "shadows blue offset" +msgstr "Spostamento blu delle ombre" + +#. WB highlights +#: ../src/iop/negadoctor.c:960 +msgctxt "section" +msgid "highlights white balance" +msgstr "Bilanciamento del bianco delle alteluci" + +#: ../src/iop/negadoctor.c:966 +msgid "select color of illuminant from a swatch" +msgstr "Seleziona il colore dell'illuminante da un campione" + +#: ../src/iop/negadoctor.c:971 +msgid "pick illuminant color from image" +msgstr "Preleva il colore dell'illuminante dall'immagine" + +#: ../src/iop/negadoctor.c:977 +msgid "illuminant red gain" +msgstr "Illuminante di guadagno rosso" + +#: ../src/iop/negadoctor.c:978 ../src/iop/negadoctor.c:985 +#: ../src/iop/negadoctor.c:992 +msgid "" +"correct the color of the illuminant so whites are\n" +"truly achromatic. Setting this value after\n" +"the shadows color cast will help\n" +"recovering the global white balance in difficult cases." +msgstr "" +"Correggi il colore dell'illuminante affinché i bianchi siano\n" +"realmente acromatici. Impostare questo valore dopo\n" +"le dominanti di colore nelle ombre aiuterà\n" +"a recuperare il bilanciamento del bianco globale nei casi difficili." + +#: ../src/iop/negadoctor.c:984 +msgid "illuminant green gain" +msgstr "Illuminante di guadagno verde" + +#: ../src/iop/negadoctor.c:991 +msgid "illuminant blue gain" +msgstr "Illuminante di guadagno blu" + +#. Page PRINT PROPERTIES +#: ../src/iop/negadoctor.c:998 +msgid "print properties" +msgstr "Proprietà stampa" + +#. print corrections +#: ../src/iop/negadoctor.c:1001 +msgctxt "section" +msgid "virtual paper properties" +msgstr "Proprietà carta virtuale" + +#: ../src/iop/negadoctor.c:1007 +msgid "" +"correct the density of black after the inversion,\n" +"to adjust the global contrast while avoiding clipping shadows." +msgstr "" +"Corregge la densità dei neri dopo l'inversione,\n" +"per sistemare il contrasto globale evitando il taglio delle ombre." + +#: ../src/iop/negadoctor.c:1012 +msgid "" +"select the grade of the virtual paper, which is actually\n" +"equivalent to applying a gamma. it compensates the film D max\n" +"and recovers the contrast. use a high grade for high D max." +msgstr "" +"Seleziona la gradazione della carta virtuale, che è esattamente\n" +"come applicare una gamma. In questo modo si compensa il D max\n" +"della pellicola e si recupera contrasto. Utilizzare una\n" +"gradazione alta per un D max alto." + +#: ../src/iop/negadoctor.c:1020 +msgid "" +"gradually compress specular highlights past this value\n" +"to avoid clipping while pushing the exposure for mid-tones.\n" +"this somewhat reproduces the behavior of matte paper." +msgstr "" +"Comprime gradualmente le alteluci speculari oltre questo valore\n" +"per evitare il taglio mentre si spinge l'esposizione per i mezzitoni.\n" +"Questo riproduce in qualche modo il comportamento della carta opaca." + +#: ../src/iop/negadoctor.c:1024 +msgctxt "section" +msgid "virtual print emulation" +msgstr "Emulazione stampa virtuale" + +#: ../src/iop/negadoctor.c:1031 +msgid "" +"correct the printing exposure after inversion to adjust\n" +"the global contrast and avoid clipping highlights." +msgstr "" +"Corregge l'esposizione della stampa dopo l'inversione per sistemare\n" +"il contrasto globale ed evitare di tagliare le alte luci." + +#: ../src/iop/negadoctor.c:1039 +msgid "toggle on or off the color controls" +msgstr "Nascondi controlli colore" + +#: ../src/iop/nlmeans.c:78 +msgid "astrophoto denoise" +msgstr "riduci rumore foto astronomiche" + +#: ../src/iop/nlmeans.c:83 +msgid "denoise (non-local means)" +msgstr "riduzione rumore (non-local means)" + +#: ../src/iop/nlmeans.c:88 +msgid "apply a poisson noise removal best suited for astrophotography" +msgstr "" +"Rimuovi il rumore con sistema Poisson (consigliato per le astro-fotografie)" + +#: ../src/iop/nlmeans.c:462 +msgid "radius of the patches to match" +msgstr "Raggio dei campioni da fare corrispondere" + +#: ../src/iop/nlmeans.c:470 +msgid "how much to smooth brightness" +msgstr "Quanto ammorbidire la luminosità" + +#: ../src/iop/nlmeans.c:473 +msgid "how much to smooth colors" +msgstr "Quanto ammorbidire i colori" + +#. * let's fill the encapsulating widgets +#. preview mode +#. color scheme +#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2258 +#: ../src/views/darkroom.c:2276 ../src/views/darkroom.c:2283 +#: ../src/views/darkroom.c:2293 ../src/views/darkroom.c:2310 +msgid "overexposed" +msgstr "Sovraesposizione" + +#: ../src/iop/overexposed.c:123 ../src/iop/overexposed.c:352 +msgid "module overexposed failed in buffer allocation" +msgstr "Il modulo sovraesposizione ha fallito nell'allocazione del buffer" + +#: ../src/iop/overexposed.c:149 ../src/iop/overexposed.c:362 +msgid "module overexposed failed in color conversion" +msgstr "Il modulo sovraesposizione ha fallito nella conversione colore" + +#: ../src/iop/primaries.c:74 +msgid "rgb primaries" +msgstr "Primarie RGB" + +#: ../src/iop/primaries.c:79 +msgid "adjustment of the RGB color primaries for color grading" +msgstr "regolazione dei colori primari RGB per la gradazione del colore" + +#: ../src/iop/primaries.c:395 +msgid "shift red towards yellow or magenta" +msgstr "Sposta il rosso verso il giallo o il magenta" + +#: ../src/iop/primaries.c:396 +msgid "red primary purity" +msgstr "Purezza del rosso primario" + +#: ../src/iop/primaries.c:397 +msgid "shift green towards cyan or yellow" +msgstr "Sposta il verde verso il ciano o il giallo" + +#: ../src/iop/primaries.c:398 +msgid "green primary purity" +msgstr "Purezza del verde primario" + +#: ../src/iop/primaries.c:399 +msgid "shift blue towards magenta or cyan" +msgstr "Sposta il blu verso il magenta o il ciano" + +#: ../src/iop/primaries.c:400 +msgid "blue primary purity" +msgstr "Purezza del blu primario" + +#: ../src/iop/profile_gamma.c:96 +msgid "unbreak input profile" +msgstr "correzione profilo di ingresso" + +#: ../src/iop/profile_gamma.c:101 +msgid "correct input color profiles meant to be applied on non-linear RGB" +msgstr "" +"Corregge i profili colore di input da applicare in modo RGB non-lineare" + +#: ../src/iop/profile_gamma.c:138 +msgid "16 EV dynamic range (generic)" +msgstr "16 EV di gamma dinamica (generico)" + +#: ../src/iop/profile_gamma.c:144 +msgid "14 EV dynamic range (generic)" +msgstr "14 EV di gamma dinamica (generico)" + +#: ../src/iop/profile_gamma.c:150 +msgid "12 EV dynamic range (generic)" +msgstr "12 EV di gamma dinamica (generico)" + +#: ../src/iop/profile_gamma.c:156 +msgid "10 EV dynamic range (generic)" +msgstr "10 EV di gamma dinamica (generico)" + +#: ../src/iop/profile_gamma.c:162 +msgid "08 EV dynamic range (generic)" +msgstr "08 EV di gamma dinamica (generico)" + +#: ../src/iop/profile_gamma.c:637 +msgid "linear part" +msgstr "Parte lineare" + +#: ../src/iop/profile_gamma.c:641 +msgid "gamma exponential factor" +msgstr "Fattore esponenziale gamma" + +#: ../src/iop/profile_gamma.c:652 +msgid "adjust to match the average luma of the subject" +msgstr "Regolare per far corrispondere la luminanza media del soggetto" + +#: ../src/iop/profile_gamma.c:658 +msgid "" +"number of stops between middle gray and pure black\n" +"this is a reading a light meter would give you on the scene" +msgstr "" +"Numero di stop tra il grigio medio ed il nero puro\n" +"Questa è la lettura della scena che vi darebbe un esposimetro" + +#: ../src/iop/profile_gamma.c:664 +msgid "" +"number of stops between pure black and pure white\n" +"this is a reading a light meter would give you on the scene" +msgstr "" +"Numero di stop tra il nero e il bianco puri\n" +"Questa è la lettura della scena che vi darebbe un esposimetro" + +#: ../src/iop/profile_gamma.c:666 +msgctxt "section" +msgid "optimize automatically" +msgstr "Ottimizza automaticamente" + +#: ../src/iop/profile_gamma.c:670 +msgid "" +"increase or decrease the computed dynamic range\n" +"this is useful when noise distorts the measurement" +msgstr "" +"Incrementa o decrementa la gamma dinamica calcolata\n" +"Utile quando il rumore disturba le misurazioni" + +#: ../src/iop/profile_gamma.c:674 +msgid "make an optimization with some guessing" +msgstr "Ottimizza in base a supposizioni" + +#: ../src/iop/profile_gamma.c:683 +msgid "tone mapping method" +msgstr "Metodo mappatura dei toni" + +#: ../src/iop/rawdenoise.c:138 +msgid "raw denoise" +msgstr "Riduzione rumore" + +#: ../src/iop/rawdenoise.c:143 +msgid "denoise the raw picture early in the pipeline" +msgstr "Rimuove il rumore dal RAW all'inizio della coda di sviluppo" + +#: ../src/iop/rawdenoise.c:955 +msgid "" +"raw denoising\n" +"only works for raw images." +msgstr "" +"riduzione del rumore RAW\n" +"funziona solo con le immagini RAW." + +#. * let's fill the encapsulating widgets +#. mode of operation +#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2226 ../src/views/darkroom.c:2232 +#: ../src/views/darkroom.c:2245 +msgid "raw overexposed" +msgstr "RAW sovraesposto" + +#: ../src/iop/rawprepare.c:99 +msgctxt "modulename" +msgid "raw black/white point" +msgstr "punto del nero/bianco RAW" + +#: ../src/iop/rawprepare.c:172 +msgid "" +"sets technical specificities of the raw sensor.\n" +"touch with great care!" +msgstr "" +"Imposta le specificità tecniche del sensore raw.\n" +"Da utilizzare con cautela!" + +#: ../src/iop/rawprepare.c:184 +msgid "passthrough" +msgstr "Passaggio" + +#: ../src/iop/rawprepare.c:663 +msgid "invalid crop parameters" +msgstr "Parametri di taglio invalidi" + +#: ../src/iop/rawprepare.c:664 +msgid "" +"please reset to defaults, update your preset or set to something correct" +msgstr "" +"Si prega di ripristinare il predefinito, aggiornare il tuo preset o " +"impostare qualcosa di corretto" + +#: ../src/iop/rawprepare.c:930 +msgid "black level 0" +msgstr "Livello di nero 0" + +#: ../src/iop/rawprepare.c:931 +msgid "black level 1" +msgstr "Livello di nero 1" + +#: ../src/iop/rawprepare.c:932 +msgid "black level 2" +msgstr "Livello di nero 2" + +#: ../src/iop/rawprepare.c:933 +msgid "black level 3" +msgstr "Livello di nero 3" + +#: ../src/iop/rawprepare.c:960 +msgid "raw flat field correction to compensate for lens shading" +msgstr "Correzione del campo piatto RAW per compensare le ombre dell'obiettivo" + +#: ../src/iop/rawprepare.c:965 +msgctxt "section" +msgid "crop" +msgstr "Ritaglio" + +#: ../src/iop/rawprepare.c:968 +msgid "crop left border" +msgstr "ritaglio margine sinistro" + +#: ../src/iop/rawprepare.c:972 +msgid "crop top border" +msgstr "ritaglio margine in alto" + +#: ../src/iop/rawprepare.c:976 +msgid "crop right border" +msgstr "ritaglio margine destro" + +#: ../src/iop/rawprepare.c:980 +msgid "crop bottom border" +msgstr "ritaglio margine in basso" + +#: ../src/iop/rawprepare.c:989 +msgid "" +"raw black/white point correction\n" +"only works for the sensors that need it." +msgstr "" +"La correzione del punto di bianco/nero RAW\n" +"funziona solo con i sensori che ne hanno bisogno." + +#: ../src/iop/relight.c:53 +msgid "fill-light 0.25EV with 4 zones" +msgstr "Luce di riempimento 0.25EV con 4 zone " + +#: ../src/iop/relight.c:57 +msgid "fill-shadow -0.25EV with 4 zones" +msgstr "Scurisci ombre -0.25EV con 4 zone" + +#: ../src/iop/relight.c:86 +msgid "fill light" +msgstr "luce di riempimento" + +#: ../src/iop/relight.c:96 ../src/iop/zonesystem.c:122 +msgid "" +"this module is deprecated. please use the tone equalizer module instead." +msgstr "" +"Questo modulo è deprecato. Si prega invece di usare il modulo equalizzatore " +"toni" + +#: ../src/iop/relight.c:259 +msgid "the fill-light in EV" +msgstr "Luce di riempimento in EV" + +#: ../src/iop/relight.c:268 +msgid "" +"select the center of fill-light\n" +"ctrl+click to select an area" +msgstr "" +"Seleziona il centro della luce di riempimento\n" +"Ctrl+click per selezionare un'area" + +#: ../src/iop/relight.c:272 +msgid "toggle tool for picking median lightness in image" +msgstr "Cambia strumento per prelevare la chiarezza media nell'immagine" + +#: ../src/iop/relight.c:276 +msgid "width of fill-light area defined in zones" +msgstr "Larghezza dell'area della luce di riempimento definita in zone" + +#: ../src/iop/retouch.c:197 +msgid "retouch" +msgstr "ritocco" + +#: ../src/iop/retouch.c:202 +msgid "split-frequency|healing|cloning|stamp" +msgstr "Divisione frequenze | cerotto | clona | timbro" + +#: ../src/iop/retouch.c:208 +msgid "remove and clone spots, perform split-frequency skin editing" +msgstr "" +"Rimuovi e clona aree, esegue la correzione della pelle con il metodo di " +"divisione delle frequenze" + +#: ../src/iop/retouch.c:211 +msgid "geometric and frequential, RGB" +msgstr "RGB geometrico e frequenziale" + +#: ../src/iop/retouch.c:1689 +msgid "cannot display scales when the blending mask is displayed" +msgstr "" +"Non è possibile visualizzare le scale quando viene visualizzata una maschera " +"di fusione" + +#: ../src/iop/retouch.c:2045 ../src/iop/retouch.c:2047 +#: ../src/iop/retouch.c:2049 ../src/iop/retouch.c:2051 +#, c-format +msgid "default tool changed to %s" +msgstr "Modalità predefinita cambiata in %s" + +#: ../src/iop/retouch.c:2045 +msgid "cloning" +msgstr "Clona" + +#: ../src/iop/retouch.c:2047 +msgid "healing" +msgstr "Cerotto" + +#: ../src/iop/retouch.c:2448 +msgid "shapes:" +msgstr "Forme:" + +#: ../src/iop/retouch.c:2454 +msgid "" +"to add a shape select an algorithm and a shape type and click on the image.\n" +"shapes are added to the current scale" +msgstr "" +"Per aggiungere una forma seleziona un algoritmo e un tipo di forma e clicca " +"sull'immagine.\n" +"Le forme verranno aggiunte alla scala corrente" + +#: ../src/iop/retouch.c:2458 ../src/iop/retouch.c:2591 +#: ../src/iop/retouch.c:2597 ../src/iop/retouch.c:2606 +#: ../src/iop/retouch.c:2611 ../src/iop/retouch.c:2619 +#: ../src/iop/retouch.c:2664 +msgid "editing" +msgstr "Modifica" + +#: ../src/iop/retouch.c:2459 +msgid "show and edit shapes on the current scale" +msgstr "Mostra e modifica forme sulla scala corrente" + +#: ../src/iop/retouch.c:2460 +msgid "show and edit shapes in restricted mode" +msgstr "Mostra e modifica forme in modalità ristretta" + +#: ../src/iop/retouch.c:2489 +msgid "algorithms:" +msgstr "Algoritmi:" + +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2498 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2510 +msgid "tools" +msgstr "Strumenti" + +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2518 +msgid "activate blur tool" +msgstr "Attiva strumento sfocatura" + +#: ../src/iop/retouch.c:2493 ../src/iop/retouch.c:2499 +#: ../src/iop/retouch.c:2505 ../src/iop/retouch.c:2511 +msgid "change algorithm for current form" +msgstr "Cambia l'algoritmo per la forma attuale" + +#: ../src/iop/retouch.c:2498 ../src/iop/retouch.c:2521 +msgid "activate fill tool" +msgstr "Attiva strumento riempimento" + +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2524 +msgid "activate cloning tool" +msgstr "Attiva strumento clona" + +#: ../src/iop/retouch.c:2510 ../src/iop/retouch.c:2527 +msgid "activate healing tool" +msgstr "Attiva strumento cerotto" + +#. overwrite tooltip ourself to handle shift+click +#: ../src/iop/retouch.c:2516 +msgid "ctrl+click to change tool for current form" +msgstr "Ctrl+click per modificare lo strumento per la forma attuale" + +#: ../src/iop/retouch.c:2517 +msgid "shift+click to set the tool as default" +msgstr "Maiusc+Click per impostare lo strumento come predefinito" + +#: ../src/iop/retouch.c:2537 +msgid "scales:" +msgstr "Scale:" + +#: ../src/iop/retouch.c:2544 +msgid "current:" +msgstr "Corrente:" + +#: ../src/iop/retouch.c:2551 +msgid "merge from:" +msgstr "Unisci da:" + +#: ../src/iop/retouch.c:2562 +msgid "" +"top slider adjusts where the merge scales start\n" +"bottom slider adjusts the number of scales\n" +"dot indicates the current scale\n" +"top line indicates that the scale is visible at current zoom level\n" +"bottom line indicates that the scale has shapes on it" +msgstr "" +"Il selettore scorrevole in alto regola la partenza delle scale di fusione\n" +"Quello in basso imposta il numero di scale\n" +"Il punto evidenzia la scala utilizzata al momento\n" +"La linea superiore indica che la scala è visibile al livello di zoom " +"utilizzato\n" +"La linea inferiore evidenzia che esistono delle forme sulla scala" + +#: ../src/iop/retouch.c:2591 +msgid "display masks" +msgstr "Visualizza le maschere" + +#: ../src/iop/retouch.c:2597 +msgid "temporarily switch off shapes" +msgstr "Disattiva temporaneamente le forme" + +#: ../src/iop/retouch.c:2606 +msgid "paste cut shapes to current scale" +msgstr "Incolla le forme ritagliate sulla scala corrente" + +#: ../src/iop/retouch.c:2611 +msgid "cut shapes from current scale" +msgstr "Riaglia le forme dalla scala corrente" + +#: ../src/iop/retouch.c:2619 +msgid "display wavelet scale" +msgstr "Visualizza la scala wavelet" + +#: ../src/iop/retouch.c:2627 +msgctxt "section" +msgid "preview single scale" +msgstr "Visualizza scala singola" + +#: ../src/iop/retouch.c:2641 +msgid "adjust preview levels" +msgstr "Regola il livello di anteprima" + +#: ../src/iop/retouch.c:2664 ../src/iop/rgblevels.c:1106 +msgid "auto levels" +msgstr "Livelli automatici" + +#: ../src/iop/retouch.c:2672 +msgid "shape selected:" +msgstr "Forma selezionata:" + +#: ../src/iop/retouch.c:2678 +msgid "" +"click on a shape to select it,\n" +"to unselect click on an empty space" +msgstr "" +"Fai click su una forma per selezionarla,\n" +"per deselezionarla fai click su uno spazio vuoto" + +#: ../src/iop/retouch.c:2687 +msgid "erase the detail or fills with chosen color" +msgstr "Cancella il dettaglio o riempi con il colore prescelto" + +#: ../src/iop/retouch.c:2697 +msgid "fill color: " +msgstr "Colore riempimento:" + +#: ../src/iop/retouch.c:2702 ../src/iop/retouch.c:2703 +msgid "select fill color" +msgstr "Seleziona colore riempimento" + +#: ../src/iop/retouch.c:2713 +msgid "pick fill color from image" +msgstr "Preleva il colore di riempimento dall'immagine" + +#: ../src/iop/retouch.c:2714 +msgid "pick fill color" +msgstr "Scegli un colore di riempimento" + +#: ../src/iop/retouch.c:2724 +msgid "adjusts color brightness to fine-tune it. works with erase as well" +msgstr "" +"Modifica la brillanza del colore per metterlo a puno. Lavora altrettanto " +"bene con la cancellazione" + +#: ../src/iop/retouch.c:2730 +msgid "type for the blur algorithm" +msgstr "Tipo dell'algoritmo di sfocatura" + +#: ../src/iop/retouch.c:2734 +msgid "radius of the selected blur type" +msgstr "Raggio del tipo di sfocatura selezionata" + +#: ../src/iop/retouch.c:2741 +msgid "set the opacity on the selected shape" +msgstr "Imposta l'opacità della forma selezionata" + +#: ../src/iop/retouch.c:2748 +msgctxt "section" +msgid "retouch tools" +msgstr "Strumenti di ritocco" + +#. wavelet decompose +#: ../src/iop/retouch.c:2757 +msgctxt "section" +msgid "wavelet decompose" +msgstr "Wavelet decompose" + +#. shapes +#: ../src/iop/retouch.c:2771 +msgctxt "section" +msgid "shapes" +msgstr "Forme" + +#: ../src/iop/retouch.c:3986 ../src/iop/retouch.c:4956 +#, c-format +msgid "max scale is %i for this image size" +msgstr "La scala massima per un'immagine di queste dimensioni è %i" + +#: ../src/iop/rgbcurve.c:122 +msgid "rgb curve" +msgstr "Curva RGB" + +#: ../src/iop/rgbcurve.c:145 +msgid "alter an image’s tones using curves in RGB color space" +msgstr "" +"Modifica i toni dell'immagine utilizzando le curve nello spazio colore RGB" + +#: ../src/iop/rgbcurve.c:197 ../src/iop/tonecurve.c:569 +msgid "gamma 1.0 (linear)" +msgstr "Gamma 1.0 (lineare)" + +#: ../src/iop/rgbcurve.c:208 ../src/iop/tonecurve.c:579 +msgid "contrast - med (linear)" +msgstr "Contrasto medio (lineare)" + +#: ../src/iop/rgbcurve.c:218 ../src/iop/tonecurve.c:588 +msgid "contrast - high (linear)" +msgstr "Contrasto alto (lineare)" + +#: ../src/iop/rgbcurve.c:235 ../src/iop/tonecurve.c:600 +msgid "contrast - med (gamma 2.2)" +msgstr "Contrasto medio (gamma 2,2)" + +#: ../src/iop/rgbcurve.c:251 ../src/iop/tonecurve.c:611 +msgid "contrast - high (gamma 2.2)" +msgstr "Contrasto alto (gamma 2,2)" + +#: ../src/iop/rgbcurve.c:265 ../src/iop/tonecurve.c:624 +msgid "gamma 2.0" +msgstr "Gamma 2.0" + +#: ../src/iop/rgbcurve.c:272 ../src/iop/tonecurve.c:630 +msgid "gamma 0.5" +msgstr "Gamma 0.5" + +#: ../src/iop/rgbcurve.c:279 ../src/iop/tonecurve.c:635 +msgid "logarithm (base 2)" +msgstr "Logaritmo (base 2)" + +#: ../src/iop/rgbcurve.c:286 ../src/iop/tonecurve.c:640 +msgid "exponential (base 2)" +msgstr "Esponenziale (base 2)" + +#: ../src/iop/rgbcurve.c:1494 ../src/iop/rgblevels.c:1038 +msgid "choose between linked and independent channels." +msgstr "Seleziona canali indipendenti o collegati" + +#: ../src/iop/rgbcurve.c:1501 ../src/iop/rgblevels.c:1043 +msgid "curve nodes for r channel" +msgstr "Nodi curva per canale r" + +#: ../src/iop/rgbcurve.c:1502 ../src/iop/rgblevels.c:1044 +msgid "curve nodes for g channel" +msgstr "Nodi curva per canale g" + +#: ../src/iop/rgbcurve.c:1503 ../src/iop/rgblevels.c:1045 +msgid "curve nodes for b channel" +msgstr "Nodi curva per canale b" + +#: ../src/iop/rgblevels.c:102 +msgid "rgb levels" +msgstr "Livelli RGB" + +#: ../src/iop/rgblevels.c:124 +msgid "adjust black, white and mid-gray points in RGB color space" +msgstr "Regola i punti di nero, bianco e grigio medio nello spazio colore RGB" + +#: ../src/iop/rgblevels.c:1112 +msgid "auto region" +msgstr "regione automatica" + +#: ../src/iop/rgblevels.c:1115 +msgid "" +"apply auto levels based on a region defined by the user\n" +"click and drag to draw the area\n" +"right click to cancel" +msgstr "" +"Applica i livelli automatici in base ad un'area definita dall'utente\n" +"Click e trascina per selezionare l'area\n" +"Click destro per annullare" + +#: ../src/iop/rotatepixels.c:70 +msgctxt "modulename" +msgid "rotate pixels" +msgstr "ruota pixel" + +#: ../src/iop/rotatepixels.c:99 ../src/iop/scalepixels.c:84 +msgid "" +"internal module to setup technical specificities of raw sensor.\n" +"\n" +"you should not touch values here!" +msgstr "" +"Modulo interno per impostare le specificità tecniche per il sensore RAW.\n" +"\n" +"Non dovresti alterare nessun valore!" + +#: ../src/iop/rotatepixels.c:381 +msgid "automatic pixel rotation" +msgstr "Rotazione automatica pixel" + +#: ../src/iop/rotatepixels.c:382 +msgid "" +"automatic pixel rotation\n" +"only works for the sensors that need it." +msgstr "" +"La rotazione automatica dei pixel\n" +"funziona soltanto per i sensori che ne hanno bisogno." + +#: ../src/iop/scalepixels.c:55 +msgctxt "modulename" +msgid "scale pixels" +msgstr "ridimensiona pixel" + +#: ../src/iop/scalepixels.c:281 +msgid "automatic pixel scaling" +msgstr "Ridimensionamento automatico dei pixel" + +#: ../src/iop/scalepixels.c:282 +msgid "" +"automatic pixel scaling\n" +"only works for the sensors that need it." +msgstr "" +"Il ridimensionamento automatico dei pixel\n" +"funziona soltanto per i sensori che lo richiedono." + +#: ../src/iop/shadhi.c:120 +msgid "shadows and highlights" +msgstr "Ombre ed alteluci" + +#: ../src/iop/shadhi.c:142 +msgid "" +"modify the tonal range of the shadows and highlights\n" +"of an image by enhancing local contrast." +msgstr "" +"Modifica la gamma tonale delle ombre e delle alte luci\n" +"di un'immagine aumentando il contrasto tonale." + +#: ../src/iop/shadhi.c:712 ../src/iop/splittoning.c:544 +msgid "compress" +msgstr "Comprimi" + +#: ../src/iop/shadhi.c:719 +msgid "correct shadows" +msgstr "Correggi le ombre" + +#: ../src/iop/shadhi.c:720 +msgid "correct highlights" +msgstr "Correggi le alteluci" + +#: ../src/iop/shadhi.c:721 +msgid "shift white point" +msgstr "Spostamento del punto di bianco" + +#: ../src/iop/shadhi.c:723 +msgid "filter to use for softening. bilateral avoids halos" +msgstr "Filtro da utilizzare per ammorbidire. Bilaterale evita aloni" + +#: ../src/iop/shadhi.c:724 +msgid "" +"compress the effect on shadows/highlights and\n" +"preserve mid-tones" +msgstr "" +"Comprimi l'effetto sulle ombre/alteluci e\n" +"preserva i mezzitoni" + +#: ../src/iop/shadhi.c:725 +msgid "adjust saturation of shadows" +msgstr "Regola la saturazione delle ombre" + +#: ../src/iop/shadhi.c:726 +msgid "adjust saturation of highlights" +msgstr "Regola la saturazione delle alteluci" + +#: ../src/iop/sharpen.c:73 +msgctxt "modulename" +msgid "sharpen" +msgstr "Nitidezza" + +#: ../src/iop/sharpen.c:95 +msgid "sharpen the details in the image using a standard UnSharp Mask (USM)" +msgstr "" +"Evidenzia i dettagli dell'immagine utilizzando una maschera di contrasto " +"(USM)" + +#: ../src/iop/sharpen.c:97 +msgid "linear or non-linear, Lab, display or scene-referred" +msgstr "Lineare o non-lineare, Lab, riferito allo schermo o alla scena" + +#: ../src/iop/sharpen.c:99 +msgid "quasi-linear, Lab, display or scene-referred" +msgstr "Quasi-lineare, Lab, riferito allo schermo o alla scena" + +#. add the preset. +#. restrict to raw images +#: ../src/iop/sharpen.c:106 ../src/iop/sharpen.c:110 +msgid "sharpen" +msgstr "Nitidezza" + +#: ../src/iop/sharpen.c:438 +msgid "spatial extent of the unblurring" +msgstr "Estensione spaziale della rifocalizzazione" + +#: ../src/iop/sharpen.c:442 +msgid "strength of the sharpen" +msgstr "Intensità della nitidezza" + +#: ../src/iop/sharpen.c:446 +msgid "threshold to activate sharpen" +msgstr "Soglia per attivare la nitidezza" + +#: ../src/iop/sigmoid.c:195 +msgid "sigmoid" +msgstr "sigmoideo" + +#: ../src/iop/sigmoid.c:200 +msgid "tone mapping|view transform|display transform" +msgstr "Mappatura tonale|trasforma vista|trasforma schermo" + +#: ../src/iop/sigmoid.c:206 +msgid "" +"apply a view transform to make a image displayable\n" +"on a screen or print. uses a robust and smooth\n" +"tone curve with optional color preservation methods." +msgstr "" +"Applica una trasformazione della vista per rendere un'immagine " +"visualizzabile\n" +"su schermo o su stampa. Usa una curva tonale morbida e robusta\n" +"con metodi di preservazione del colore opzionali." + +#: ../src/iop/sigmoid.c:258 +msgid "neutral gray" +msgstr "grigio neutrale" + +#: ../src/iop/sigmoid.c:264 +msgid "ACES 100-nit like" +msgstr "Simile a ACES 100-nit" + +#: ../src/iop/sigmoid.c:270 +msgid "Reinhard" +msgstr "Reinhard" + +#: ../src/iop/sigmoid.c:917 +msgid "" +"compression of the applied curve\n" +"implicitly defines the supported input dynamic range" +msgstr "" +"Compressione della curva applicata\n" +"definisce implicitamente la gamma dinamica in input supportata" + +#: ../src/iop/sigmoid.c:920 +msgid "" +"shift the compression towards shadows or highlights.\n" +"negative values increase contrast in shadows.\n" +"positive values increase contrast in highlights.\n" +"the opposite end will see a reduction in contrast." +msgstr "" +"Sposta la compressione verso le ombre o le alteluci.\n" +"Valori negativi incrementano il contrasto nelle ombre.\n" +"Valori positivi incrementano il contrasto nelle alteluci.\n" +"All'estremità opposta si ottiene una riduzione del contrasto." + +#: ../src/iop/sigmoid.c:929 +msgid "" +"optional correction of the hue twist introduced by\n" +"the per-channel processing method." +msgstr "" +"Correzione opzionale della distorsione della tonalità introdotta\n" +"dal metodo di elaborazione per canale." + +#: ../src/iop/sigmoid.c:936 ../src/iop/sigmoid.c:940 +msgid "primaries" +msgstr "Primarie" + +#: ../src/iop/sigmoid.c:937 +msgid "set custom primaries" +msgstr "Imposta primarie personalizzate" + +#: ../src/iop/sigmoid.c:943 +msgid "primaries to use as the base for below adjustments" +msgstr "Primarie da utilizzare come base per le regolazioni di seguito" + +#: ../src/iop/sigmoid.c:962 +msgid "attenuate the purity of the red primary" +msgstr "Attenua la purezza del rosso primario" + +#: ../src/iop/sigmoid.c:963 +msgid "rotate the red primary" +msgstr "Ruota il rosso primario" + +#: ../src/iop/sigmoid.c:964 +msgid "attenuate the purity of the green primary" +msgstr "Attenua la purezza del verde primario" + +#: ../src/iop/sigmoid.c:965 +#, fuzzy +msgid "rotate the green primary" +msgstr "Ruota il verde primario" + +#: ../src/iop/sigmoid.c:966 +msgid "attenuate the purity of the blue primary" +msgstr "Attenua la purezza del blu primario" + +#: ../src/iop/sigmoid.c:967 +msgid "rotate the blue primary" +msgstr "Ruota il blu primario" + +#: ../src/iop/sigmoid.c:974 +msgid "recover some of the original purity after the inset" +msgstr "recupera parte della purezza originale dopo l'inserto" + +#: ../src/iop/sigmoid.c:978 +msgid "display luminance" +msgstr "Visualizza la luminanza" + +#: ../src/iop/sigmoid.c:979 +msgid "set display black/white targets" +msgstr "imposta gli obiettivi di bianco/nero" + +#: ../src/iop/sigmoid.c:987 +msgid "" +"the black luminance of the target display or print.\n" +"can be used creatively for a faded look." +msgstr "" +"La luminanza del nero dello schermo o della stampa di destinazione.\n" +"Può essere usato creativamente per un aspetto sbiadito." + +#: ../src/iop/sigmoid.c:992 +msgid "" +"the white luminance of the target display or print.\n" +"can be used creatively for a faded look or blowing out whites earlier." +msgstr "" +"La luminanza del bianco dello schermo o la stampa di destinazione.\n" +"Può essere usato creativamente per un aspetto sbiadito o per spengere prima " +"i bianchi." + +#: ../src/iop/soften.c:80 +msgid "soften" +msgstr "sfumatura" + +#: ../src/iop/soften.c:102 +msgid "create a softened image using the Orton effect" +msgstr "Crea un'immagine dai toni morbidi con l'effetto Orton" + +#: ../src/iop/soften.c:366 +msgid "the size of blur" +msgstr "Dimensione della sfumatura" + +#: ../src/iop/soften.c:370 +msgid "the saturation of blur" +msgstr "Saturazione della sfumatura" + +#: ../src/iop/soften.c:374 +msgid "the brightness of blur" +msgstr "La luminosità della sfumatura" + +#: ../src/iop/soften.c:378 +msgid "the mix of effect" +msgstr "Fusione dell'effetto" + +#: ../src/iop/splittoning.c:81 +msgid "split-toning" +msgstr "divisione dei toni" + +#: ../src/iop/splittoning.c:103 +msgid "" +"use two specific colors for shadows and highlights and\n" +"create a linear toning effect between them up to a pivot." +msgstr "" +"Utilizza due colori specifici per le ombre e per le alte luci e\n" +"genera un effetto tonale lineare tra di essi con una pivot." + +#: ../src/iop/splittoning.c:120 +msgid "authentic sepia" +msgstr "Seppia" + +#: ../src/iop/splittoning.c:129 +msgid "authentic cyanotype" +msgstr "Cianotipia" + +#: ../src/iop/splittoning.c:138 +msgid "authentic platinotype" +msgstr "Platinotipia" + +#: ../src/iop/splittoning.c:147 +msgid "chocolate brown" +msgstr "Marrone cioccolato" + +#: ../src/iop/splittoning.c:486 +msgid "select the saturation tone" +msgstr "Seleziona il tono della saturazione" + +#: ../src/iop/splittoning.c:490 +msgid "select tone color" +msgstr "Seleziona tono del colore " + +#: ../src/iop/splittoning.c:520 +msgctxt "section" +msgid "shadows" +msgstr "Ombre" + +#: ../src/iop/splittoning.c:526 +msgctxt "section" +msgid "highlights" +msgstr "Alteluci" + +#: ../src/iop/splittoning.c:535 +msgid "balance" +msgstr "Bilanciamento" + +#: ../src/iop/splittoning.c:542 +msgid "the balance of center of split-toning" +msgstr "Bilanciamento della divisione dei toni" + +#: ../src/iop/splittoning.c:546 +msgid "" +"compress the effect on highlights/shadows and\n" +"preserve mid-tones" +msgstr "" +"Comprimi l'effetto sulle alteluci/ombre e\n" +"preserva i mezzitoni" + +#: ../src/iop/spots.c:58 +msgid "spot removal" +msgstr "rimozione macchie" + +#: ../src/iop/spots.c:63 +msgid "this module is deprecated. please use the retouch module instead." +msgstr "Questo modulo è deprecato. Piuttosto usa il modulo ritocco." + +#: ../src/iop/spots.c:68 +msgid "remove sensor dust spots" +msgstr "Rimuovi macchie dal sensore" + +#: ../src/iop/spots.c:71 +msgid "geometric, raw" +msgstr "Geometrica, grezza" + +#: ../src/iop/spots.c:238 +msgid "spot module is limited to 64 shapes. please add a new instance!" +msgstr "" +"Il modulo rimozione macchie è limitato a 64 forme. Aggiungi una nuova " +"istanza!" + +#: ../src/iop/spots.c:874 +msgid "number of strokes:" +msgstr "Numero di rimozioni:" + +#: ../src/iop/spots.c:878 +msgid "" +"click on a shape and drag on canvas.\n" +"use the mouse wheel to adjust size.\n" +"right click to remove a shape." +msgstr "" +"Clicca su una forma e trascinala per posizionarla.\n" +"Usa la rotella del mouse per regolare la dimensione.\n" +"Tasto destro per rimuovere la forma." + +#: ../src/iop/spots.c:881 +msgid "show and edit shapes" +msgstr "Mostra e modifica le forme" + +#: ../src/iop/temperature.c:212 +msgctxt "modulename" +msgid "white balance" +msgstr "bilanciamento del bianco" + +#: ../src/iop/temperature.c:219 +msgid "scale raw RGB channels to balance white and help demosaicing" +msgstr "" +"Scala i canali RGB per bilanciare il bianco e agevolare la demosaicizzazione" + +#: ../src/iop/temperature.c:1388 +#, c-format +msgid "`%s' color matrix not found for image" +msgstr "`%s' matrice colore non trovata per l'immagine" + +#: ../src/iop/temperature.c:1418 +#, c-format +msgid "failed to read camera white balance information from `%s'!" +msgstr "" +"Impossibile leggere da `%s' le informazioni sul bilanciamento del bianco " +"della fotocamera!" + +#: ../src/iop/temperature.c:1612 +msgctxt "white balance" +msgid "as shot" +msgstr "Come scattato" + +#. old "spot", reason: describes exactly what'll happen +#: ../src/iop/temperature.c:1615 +msgctxt "white balance" +msgid "from image area" +msgstr "Dall'area dell'immagine" + +#: ../src/iop/temperature.c:1616 +msgctxt "white balance" +msgid "user modified" +msgstr "Modificato dall'utente" + +#. old "camera neutral", reason: better matches intent +#: ../src/iop/temperature.c:1618 +msgctxt "white balance" +msgid "camera reference" +msgstr "Riferimento fotocamera" + +#: ../src/iop/temperature.c:1897 ../src/iop/temperature.c:1915 +msgid "green channel coefficient" +msgstr "Coefficiente canale verde" + +#: ../src/iop/temperature.c:1899 +msgid "magenta channel coefficient" +msgstr "Coefficiente canale magenta" + +#: ../src/iop/temperature.c:1901 +msgid "cyan channel coefficient" +msgstr "Coefficiente canale ciano" + +#: ../src/iop/temperature.c:1903 +msgid "yellow channel coefficient" +msgstr "Coefficiente canale giallo" + +#: ../src/iop/temperature.c:1913 +msgid "red channel coefficient" +msgstr "Coefficiente canale rosso" + +#: ../src/iop/temperature.c:1917 +msgid "blue channel coefficient" +msgstr "Coefficiente canale blu" + +#: ../src/iop/temperature.c:1918 +msgid "emerald" +msgstr "Smeraldo" + +#: ../src/iop/temperature.c:1919 +msgid "emerald channel coefficient" +msgstr "Coefficiente canale verde smeraldo" + +#. relabel to settings to remove confusion between module presets +#. and white balance settings +#: ../src/iop/temperature.c:1997 ../src/iop/temperature.c:2010 +#: ../src/iop/temperature.c:2017 ../src/iop/temperature.c:2023 +#: ../src/iop/temperature.c:2042 +msgid "settings" +msgstr "Impostazioni" + +#: ../src/iop/temperature.c:1997 +msgid "as shot" +msgstr "Come scattato" + +#: ../src/iop/temperature.c:2000 +msgid "set white balance to as shot" +msgstr "Imposta il bilanciamento del bianco come da scatto" + +#: ../src/iop/temperature.c:2010 +msgid "from image area" +msgstr "Dall'area dell'immagine" + +#: ../src/iop/temperature.c:2017 +msgid "user modified" +msgstr "Modificato dall'utente" + +#: ../src/iop/temperature.c:2020 +msgid "set white balance to user modified" +msgstr "Imposta il bilanciamento del bianco come Modificato dall'Utente" + +#: ../src/iop/temperature.c:2023 +msgid "camera reference" +msgstr "Riferimento fotocamera" + +#: ../src/iop/temperature.c:2028 +msgid "" +"set white balance to camera reference point\n" +"in most cases it should be D65" +msgstr "" +"Imposta il bilanciamento del bianco come la fotocamera.\n" +"Nella maggior parte dei casi dovrebbe essere D65" + +#: ../src/iop/temperature.c:2043 +msgid "choose white balance setting" +msgstr "Scegli l'impostazione del bilanciamento del bianco" + +#: ../src/iop/temperature.c:2048 +msgid "finetune" +msgstr "Regolazione fine" + +#: ../src/iop/temperature.c:2050 +msgid "fine tune camera's white balance setting" +msgstr "Regolazione fine del bilanciamento del bianco della fotocamera" + +#: ../src/iop/temperature.c:2058 +msgctxt "section" +msgid "scene illuminant temp" +msgstr "Temperatura illuminazione scena" + +#: ../src/iop/temperature.c:2059 +msgid "click to cycle color mode on sliders" +msgstr "Click per cambiare le modalità colore sui selettori scorrevoli" + +#: ../src/iop/temperature.c:2073 +msgid "color temperature (in Kelvin)" +msgstr "Temperatura colore (in ° Kelvin)" + +#: ../src/iop/temperature.c:2079 +msgid "tint" +msgstr "Tinta" + +#: ../src/iop/temperature.c:2082 +msgid "color tint of the image, from magenta (value < 1) to green (value > 1)" +msgstr "Colore tinta immagine, da magenta (valore <1) a verde (valore >1)" + +#: ../src/iop/temperature.c:2088 +msgid "channel coefficients" +msgstr "Coefficienti canale" + +#: ../src/iop/temperature.c:2097 +msgid "various" +msgstr "Vari" + +#: ../src/iop/temperature.c:2123 +msgid "white balance disabled for camera" +msgstr "Bilanciamento del bianco disabilitato per la fotocamera" + +#: ../src/iop/tonecurve.c:161 +msgid "tone curve" +msgstr "curva di tono" + +#: ../src/iop/tonecurve.c:183 +msgid "alter an image’s tones using curves" +msgstr "Modifica i toni dell'immagine con le curve" + +#: ../src/iop/tonecurve.c:1147 +msgid "" +"if set to auto, a and b curves have no effect and are not displayed. chroma " +"values (a and b) of each pixel are then adjusted based on L curve data. auto " +"XYZ is similar but applies the saturation changes in XYZ space." +msgstr "" +"Se impostato ad automatico, le curve a e b non avranno effetto e non saranno " +"visualizzate. I valori cromatici (a e b) di ciascun pixel sono quindi " +"regolati basandosi sui dati della curva L. Auto XYZ è simile ma applica i " +"cambiamenti di saturazione nello spazio XYZ." + +#: ../src/iop/tonecurve.c:1156 +msgid "tonecurve for L channel" +msgstr "Curva tono per canale L" + +#: ../src/iop/tonecurve.c:1157 +msgid "tonecurve for a channel" +msgstr "Curva tono per canale a" + +#: ../src/iop/tonecurve.c:1158 +msgid "tonecurve for b channel" +msgstr "Curva tono per canale b" + +#: ../src/iop/tonecurve.c:1165 ../src/iop/watermark.c:1353 +#: ../src/libs/colorpicker.c:675 +msgid "pick color" +msgstr "seleziona colore" + +#: ../src/iop/toneequal.c:319 +msgid "tone equalizer" +msgstr "equalizzatore toni" + +#: ../src/iop/toneequal.c:324 +msgid "tone curve|tone mapping|relight|background light|shadows highlights" +msgstr "" +"Curva di tono | Mappatura dei toni | Illumina | Luce sfondo | Ombre e alte " +"luci" + +#: ../src/iop/toneequal.c:331 +msgid "relight the scene as if the lighting was done directly on the scene" +msgstr "Illumina la scena come se ci fosse un'illuminazione reale" + +#: ../src/iop/toneequal.c:334 +msgid "quasi-linear, RGB" +msgstr "Quasi-lineare, RGB" + +#: ../src/iop/toneequal.c:335 +msgid "quasi-linear, RGB, scene-referred" +msgstr "Quasi-lineare, RGB, riferito alla scena" + +#: ../src/iop/toneequal.c:489 +msgid "simple tone curve" +msgstr "Curva di tono semplice" + +#: ../src/iop/toneequal.c:503 +msgid "mask blending: all purposes" +msgstr "Fusione maschera: generico" + +#: ../src/iop/toneequal.c:510 +msgid "mask blending: people with backlight" +msgstr "Fusione maschera: soggetto in controluce" + +#: ../src/iop/toneequal.c:527 +msgid "compress shadows/highlights (EIGF): strong" +msgstr "Comprimi ombre/alte luci (EIGF): forte" + +#: ../src/iop/toneequal.c:532 +msgid "compress shadows/highlights (GF): strong" +msgstr "Comprimi ombre/alte luci (GF): forte" + +#: ../src/iop/toneequal.c:541 +msgid "compress shadows/highlights (EIGF): medium" +msgstr "Comprimi ombre/alte luci (EIGF): medio" + +#: ../src/iop/toneequal.c:546 +msgid "compress shadows/highlights (GF): medium" +msgstr "Comprimi ombre/alte luci (GF): medio" + +#: ../src/iop/toneequal.c:555 +msgid "compress shadows/highlights (EIGF): soft" +msgstr "Comprimi ombre/alte luci (EIGF): leggero" + +#: ../src/iop/toneequal.c:560 +msgid "compress shadows/highlights (GF): soft" +msgstr "Comprimi ombre/alte luci (GF): leggero" + +#: ../src/iop/toneequal.c:568 +msgid "contrast tone curve: soft" +msgstr "Curva contrasto tonale: morbida" + +#: ../src/iop/toneequal.c:573 +msgid "contrast tone curve: medium" +msgstr "Curva contrasto tonale: media" + +#: ../src/iop/toneequal.c:578 +msgid "contrast tone curve: strong" +msgstr "Curva contrasto tonale: accennata" + +#: ../src/iop/toneequal.c:601 +msgid "relight: fill-in" +msgstr "Illumin.: luce riempimento" + +#: ../src/iop/toneequal.c:1120 +msgid "tone equalizer failed to allocate memory, check your RAM settings" +msgstr "" +"L'equalizzatore di tono non è riuscito ad allocare la memoria, verifica la " +"configurazione della RAM" + +#: ../src/iop/toneequal.c:1825 ../src/iop/toneequal.c:2196 +msgid "the interpolation is unstable, decrease the curve smoothing" +msgstr "L'interpolazione è instabile, diminuire la morbidezza della curva" + +#: ../src/iop/toneequal.c:1860 ../src/iop/toneequal.c:1927 +msgid "wait for the preview to finish recomputing" +msgstr "" +"Devo attendere che sia terminata l'anteprima per terminare l'elaborazione" + +#: ../src/iop/toneequal.c:2069 ../src/iop/toneequal.c:2628 +msgid "" +"scroll over image to change tone exposure\n" +"shift+scroll for large steps; ctrl+scroll for small steps" +msgstr "" +"(rotella mouse) sopra l'immagine per modificare il tono dell'esposizione\n" +"Maiusc+(rotella mouse) per modificare rapidamente\n" +"Ctrl+(rotella mouse) per modificare finemente." + +#: ../src/iop/toneequal.c:2201 +msgid "some parameters are out-of-bounds" +msgstr "Alcuni parametri sono fuori dai limiti" + +#: ../src/iop/toneequal.c:2518 +#, c-format +msgid "%+.1f EV" +msgstr "%+.1f EV" + +#: ../src/iop/toneequal.c:3283 +#, c-format +msgid "[%s over image] change tone exposure" +msgstr "[%s over image] Modifica tono esposizione" + +#: ../src/iop/toneequal.c:3286 +#, c-format +msgid "[%s over image] change tone exposure in large steps" +msgstr "[%s over image] Modifica tono esposizione rapidamente" + +#: ../src/iop/toneequal.c:3289 +#, c-format +msgid "[%s over image] change tone exposure in small steps" +msgstr "[%s over image] Modifica tono esposizione finemente" + +#. Simple view +#: ../src/iop/toneequal.c:3376 ../src/iop/toneequal.c:3405 +#: ../src/iop/toneequal.c:3406 ../src/iop/toneequal.c:3407 +#: ../src/iop/toneequal.c:3408 ../src/iop/toneequal.c:3409 +#: ../src/iop/toneequal.c:3410 ../src/iop/toneequal.c:3411 +#: ../src/iop/toneequal.c:3412 ../src/iop/toneequal.c:3413 +msgid "simple" +msgstr "Semplice" + +#: ../src/iop/toneequal.c:3405 +msgid "-8 EV" +msgstr "-8 EV" + +#: ../src/iop/toneequal.c:3406 +msgid "-7 EV" +msgstr "-7 EV" + +#: ../src/iop/toneequal.c:3407 +msgid "-6 EV" +msgstr "-6 EV" + +#: ../src/iop/toneequal.c:3408 +msgid "-5 EV" +msgstr "-5 EV" + +#: ../src/iop/toneequal.c:3409 +msgid "-4 EV" +msgstr "-4 EV" + +#: ../src/iop/toneequal.c:3410 +msgid "-3 EV" +msgstr "-3 EV" + +#: ../src/iop/toneequal.c:3411 +msgid "-2 EV" +msgstr "-2 EV" + +#: ../src/iop/toneequal.c:3412 +msgid "-1 EV" +msgstr "-1 EV" + +#: ../src/iop/toneequal.c:3413 +msgid "+0 EV" +msgstr "+0 EV" + +#. Advanced view +#: ../src/iop/toneequal.c:3417 +msgid "advanced" +msgstr "Avanzato" + +#: ../src/iop/toneequal.c:3444 +msgid "double-click to reset the curve" +msgstr "Doppio click per ripristinare la curva" + +#: ../src/iop/toneequal.c:3448 +msgid "curve smoothing" +msgstr "Addolcire la curva" + +#: ../src/iop/toneequal.c:3451 +msgid "" +"positive values will produce more progressive tone transitions\n" +"but the curve might become oscillatory in some settings.\n" +"negative values will avoid oscillations and behave more robustly\n" +"but may produce brutal tone transitions and damage local contrast." +msgstr "" +"Valori positivi produrranno transizioni di tono più progressive\n" +"ma la curva potrebbe diventare oscillatoria con alcune impostazioni.\n" +"Valori negativi eviteranno le oscillazioni e si comporteranno con maggior " +"solidità\n" +"ma potrebbero causare transizioni di tono più violente e rovinare il " +"contrasto locale." + +#. Masking options +#: ../src/iop/toneequal.c:3461 +msgid "masking" +msgstr "Applica maschera" + +#: ../src/iop/toneequal.c:3466 +msgid "" +"preview the mask and chose the estimator that gives you the\n" +"higher contrast between areas to dodge and areas to burn" +msgstr "" +"Visualizza la maschera e seleziona la modalità di stima che ti da\n" +"il miglior contrasto tra le aree da scurire e quelle da schiarire." + +#: ../src/iop/toneequal.c:3469 +msgid "details" +msgstr "Dettagli" + +#: ../src/iop/toneequal.c:3470 +msgid "preserve details" +msgstr "Preserva i dettagli" + +#: ../src/iop/toneequal.c:3473 +msgid "" +"'no' affects global and local contrast (safe if you only add contrast)\n" +"'guided filter' only affects global contrast and tries to preserve local " +"contrast\n" +"'averaged guided filter' is a geometric mean of 'no' and 'guided filter' " +"methods\n" +"'EIGF' (exposure-independent guided filter) is a guided filter that is " +"exposure-independent, it smooths shadows and highlights the same way " +"(contrary to guided filter which smooths less the highlights)\n" +"'averaged EIGF' is a geometric mean of 'no' and 'exposure-independent guided " +"filter' methods" +msgstr "" +"'no' influisce sul contrasto globale e locale (è sicuro per aggiungere " +"semplicemente del contrasto)\n" +"'filtro guidato' influisce soltanto sul contrasto globale e tenta di " +"mantenere il contrasto locale\n" +"'media filtro guidato' è la media geometrica di 'no' e 'filtro guidato'\n" +"'EIGF' (filtro guidato indipendente dall'esposizione) è un filtro guidato " +"che non dipende dall'esposizione. Ammorbidisce allo stesso modo ombre e alte " +"luci (al contrario del filtro guidato che agisce meno sulle alte luci)\n" +"'media EIGF' è una media geometrica di 'no' e 'EIGF'" + +#: ../src/iop/toneequal.c:3486 +msgid "" +"number of passes of guided filter to apply\n" +"helps diffusing the edges of the filter at the expense of speed" +msgstr "" +"Numero dei passaggi per il filtro guidato da applicare\n" +"aiuta a propagare i margini del filtro a spese della velocità" + +#: ../src/iop/toneequal.c:3494 +msgid "" +"diameter of the blur in percent of the largest image size\n" +"warning: big values of this parameter can make the darkroom\n" +"preview much slower if denoise profiled is used." +msgstr "" +"Diametro della sfocatura in percentuale della dimensione maggiore " +"dell'immagine\n" +"Attenzione: valori elevati di questo parametro possono rendere l'anteprima " +"nella\n" +"Camera Oscura molto lenta se si usa la riduzione rumore profilata." + +#: ../src/iop/toneequal.c:3502 +msgid "" +"precision of the feathering:\n" +"higher values force the mask to follow edges more closely\n" +"but may void the effect of the smoothing\n" +"lower values give smoother gradients and better smoothing\n" +"but may lead to inaccurate edges taping and halos" +msgstr "" +"Precisione della sfumatura:\n" +"valori più alti forzano la maschera a seguire i margini più da vicino\n" +"ma possono annullare l'effetto della morbidezza\n" +"valori più bassi forniscono gradienti più dolci e una migliore morbidezza\n" +"ma possono portare ad aloni e inaccuratezza nel mascheramento dei margini" + +#: ../src/iop/toneequal.c:3509 +msgctxt "section" +msgid "mask post-processing" +msgstr "Post-produzione maschera" + +#: ../src/iop/toneequal.c:3520 +msgid "" +"mask histogram span between the first and last deciles.\n" +"the central line shows the average. orange bars appear at extrema if " +"clipping occurs." +msgstr "" +"Maschera l'intervallo di istogramma tra il primo e l'ultimo decile.\n" +"La linea centrale indica la media. La barra arancione appare alle estremità " +"in caso di tagli." + +#: ../src/iop/toneequal.c:3528 +msgid "" +"0 disables the quantization.\n" +"higher values posterize the luminance mask to help the guiding\n" +"produce piece-wise smooth areas when using high feathering values" +msgstr "" +"0 disabilita la quantizzazione.\n" +"valori più alti posterizzano la maschera di luminanza per aiutare le guide\n" +"produce aree spezzate dolcemente quando si usano valori alti di sfumatura" + +#: ../src/iop/toneequal.c:3537 +msgid "" +"use this to slide the mask average exposure along channels\n" +"for a better control of the exposure correction with the available nodes.\n" +"the magic wand will auto-adjust the average exposure" +msgstr "" +"Utilizzalo per spostare la maschera dell'esposizione media lungo i canali\n" +"per un maggior controllo della correzione d'esposizione con i nodi " +"disponibili.\n" +"La bacchetta magica aggiusterà automaticamente l'esposizione media" + +#: ../src/iop/toneequal.c:3550 +msgid "" +"use this to counter the averaging effect of the guided filter\n" +"and dilate the mask contrast around -4EV\n" +"this allows to spread the exposure histogram over more channels\n" +"for a better control of the exposure correction.\n" +"the magic wand will auto-adjust the contrast" +msgstr "" +"Utilizzalo per contrastare gli effetti di appiattimento del filtro guidato\n" +"e dilatare il contrasto della maschera intorno a -4EV\n" +"Questo permetterà di distribuire l'istogramma dell'esposizione su più " +"canali\n" +"per maggior controllo della correzione dell'esposizione.\n" +"La bacchetta magica aggiusterà automaticamente il contrasto" + +#: ../src/iop/toneequal.c:3573 ../src/iop/toneequal.c:3576 +msgid "display exposure mask" +msgstr "Visualizza esposizione maschera" + +#: ../src/iop/tonemap.cc:71 +msgid "tone mapping" +msgstr "mappatura dei toni" + +#: ../src/iop/tonemap.cc:87 +msgid "" +"this module is deprecated. please use the local contrast or tone equalizer " +"module instead." +msgstr "" +"Questo modulo è deprecato. E' consigliabile usare piuttosto il modulo " +"contrasto locale o equalizzatore toni." + +#: ../src/iop/velvia.c:70 +msgid "velvia" +msgstr "velvia" + +#: ../src/iop/velvia.c:97 +msgid "" +"resaturate giving more weight to blacks, whites and low-saturation pixels" +msgstr "" +"Ri-satura dando più importanza ai neri, ai bianchi e ai pixel meno saturi" + +#: ../src/iop/velvia.c:290 +msgid "the strength of saturation boost" +msgstr "Intensità dell'incremento della saturazione" + +#: ../src/iop/velvia.c:293 +msgid "how much to spare highlights and shadows" +msgstr "Quanto preservare alteluci e ombre" + +#: ../src/iop/vibrance.c:62 +msgid "" +"this module is deprecated. please use the vibrance slider in the color " +"balance rgb module instead." +msgstr "" +"Questo modulo è deprecato. Piuttosto usa il selettore scorrevole della " +"vibranza nel modulo bilanciamento colore RGB." + +#: ../src/iop/vibrance.c:95 +msgid "" +"saturate and reduce the lightness of the most saturated pixels\n" +"to make the colors more vivid." +msgstr "" +"Satura e riduce la chiarezza dei pixel più saturi\n" +"per rendere i colori più vividi." + +#: ../src/iop/vibrance.c:211 +msgid "the amount of vibrance" +msgstr "Quantità della vibranza" + +#: ../src/iop/vignette.c:119 +msgid "simulate a lens fall-off close to edges" +msgstr "Simula un decadimento vicino ai bordi dell'obiettivo" + +#: ../src/iop/vignette.c:1022 +msgid "lomo" +msgstr "Lomo" + +#: ../src/iop/vignette.c:1061 +msgctxt "section" +msgid "position / form" +msgstr "Posizione / da" + +#: ../src/iop/vignette.c:1069 +msgid "dithering" +msgstr "dithering" + +#: ../src/iop/vignette.c:1081 +msgid "the radii scale of vignette for start of fall-off" +msgstr "Raggio della vignettatura per l'inizio della caduta di luce" + +#: ../src/iop/vignette.c:1083 +msgid "the radii scale of vignette for end of fall-off" +msgstr "Raggio della vignettatura per la fine della caduta di luce" + +#: ../src/iop/vignette.c:1084 +msgid "strength of effect on brightness" +msgstr "Intensità dell'effetto sulla luminosità" + +#: ../src/iop/vignette.c:1085 +msgid "strength of effect on saturation" +msgstr "Intensità dell'effetto sulla saturazione" + +#: ../src/iop/vignette.c:1086 +msgid "horizontal offset of center of the effect" +msgstr "Compensazione orizzontale del centro dell'effetto" + +#: ../src/iop/vignette.c:1087 +msgid "vertical offset of center of the effect" +msgstr "Compensazione verticale del centro dell'effetto" + +#: ../src/iop/vignette.c:1090 +msgid "" +"shape factor\n" +"0 produces a rectangle\n" +"1 produces a circle or ellipse\n" +"2 produces a diamond" +msgstr "" +"Forma\n" +"0 crea un rettangolo\n" +"1 crea un cerchio o un'ellisse\n" +"2 crea un diamante" + +#: ../src/iop/vignette.c:1094 +msgid "enable to have the ratio automatically follow the image size" +msgstr "Abilita per avere le proporzioni automatiche in base all'immagine" + +#: ../src/iop/vignette.c:1095 +msgid "width-to-height ratio" +msgstr "Rapporto larghezza-altezza" + +#: ../src/iop/vignette.c:1097 +msgid "add some level of random noise to prevent banding" +msgstr "Aggiungi un po' di rumore casuale per prevenire il banding (striature)" + +#: ../src/iop/vignette.c:1105 +#, c-format +msgid "[%s on node] change vignette/feather size" +msgstr "[%s on node] Modifica dimensione vignettatura/sfumatura" + +#: ../src/iop/vignette.c:1108 +#, c-format +msgid "[%s on node] change vignette/feather size keeping ratio" +msgstr "" +"[%s on node] Modifica dimensione vignettatura/sfumatura e mantieni le " +"proporzioni" + +#: ../src/iop/vignette.c:1111 +#, c-format +msgid "[%s on center] move vignette" +msgstr "[%s on center] Sposta vignettatura" + +#: ../src/iop/watermark.c:416 +msgid "watermark" +msgstr "filigrana" + +#: ../src/iop/watermark.c:421 +msgid "overlay an SVG watermark like a signature on the picture" +msgstr "Sovrapponi una filigrana SVG all'immagine" + +#: ../src/iop/watermark.c:1306 +msgid "marker" +msgstr "Marcatore" + +#: ../src/iop/watermark.c:1309 +#, c-format +msgid "SVG watermarks in %s/watermarks or %s/watermarks" +msgstr "Filigrane SVG in %s/watermarks o %s/watermarks" + +#. Simple text +#: ../src/iop/watermark.c:1319 ../src/iop/watermark.c:1320 +msgid "text" +msgstr "Testo" + +#: ../src/iop/watermark.c:1321 +msgid "" +"text string, tag:\n" +"$(WATERMARK_TEXT)" +msgstr "" +"Stringa di testo, tag:\n" +"$(WATERMARK_TEXT)" + +#: ../src/iop/watermark.c:1323 +msgid "content" +msgstr "Contenuto" + +#. Text font +#: ../src/iop/watermark.c:1328 +msgid "font" +msgstr "Font" + +#: ../src/iop/watermark.c:1333 +msgid "" +"text font, tags:\n" +"$(WATERMARK_FONT_FAMILY)\n" +"$(WATERMARK_FONT_STYLE)\n" +"$(WATERMARK_FONT_WEIGHT)" +msgstr "" +"Font testo, tags:\n" +"$(WATERMARK_FONT_FAMILY)\n" +"$(WATERMARK_FONT_STYLE)\n" +"$(WATERMARK_FONT_WEIGHT)" + +#: ../src/iop/watermark.c:1348 +msgid "" +"watermark color, tag:\n" +"$(WATERMARK_COLOR)" +msgstr "" +"Colore filigrana, tag:\n" +"$(WATERMARK_COLOR)" + +#: ../src/iop/watermark.c:1350 +msgid "select watermark color" +msgstr "Selezione colore filigrana" + +#: ../src/iop/watermark.c:1352 +msgid "pick color from image" +msgstr "Prendi colore dall'immagine" + +#: ../src/iop/watermark.c:1365 +msgctxt "section" +msgid "placement" +msgstr "Posizionamento" + +#: ../src/iop/watermark.c:1378 +msgid "" +"choose how to scale the watermark\n" +"• image: scale watermark relative to whole image\n" +"• larger border: scale larger watermark border relative to larger image " +"border\n" +"• smaller border: scale larger watermark border relative to smaller image " +"border\n" +"• height: scale watermark height to image height\n" +"• advanced options: choose watermark and image dimensions independently" +msgstr "" +"Sceglie come ridimensionare la filigrana\n" +"• immagine: adatta la filigrana all'intera immagine\n" +"• lato maggiore: adatta il lato maggiore della filigrana al lato maggiore " +"dell'immagine\n" +"• lato minore: adatta il lato maggiore della filigrana al lato minore " +"dell'immagine\n" +"• altezza: adatta l'altezza della filigrana all'altezza dell'immagine\n" +"• opzioni avanzate: sceglie indipendentemente le dimensioni della filigrana " +"e dell'immagine" + +#: ../src/iop/watermark.c:1387 +msgid "reference image dimension against which to scale the watermark" +msgstr "" +"dimensione dell'immagine di riferimento rispetto alla quale ridimensionare " +"la filigrana" + +#: ../src/iop/watermark.c:1391 +msgid "watermark dimension to scale" +msgstr "Dimensiona la filigrana alla scala" + +#: ../src/iop/watermark.c:1395 ../src/libs/print_settings.c:2675 +msgid "alignment" +msgstr "Allineamento" + +#. Let's add some tooltips and hook up some signals... +#: ../src/iop/watermark.c:1416 +msgid "the opacity of the watermark" +msgstr "Opacità della filigrana" + +#: ../src/iop/watermark.c:1417 +msgid "the scale of the watermark" +msgstr "Proporzioni della filigrana" + +#: ../src/iop/watermark.c:1418 +msgid "the rotation of the watermark" +msgstr "Rotazione della filigrana" + +#: ../src/iop/zonesystem.c:111 +msgid "zone system" +msgstr "sistema zonale" + +#: ../src/iop/zonesystem.c:486 +msgid "" +"lightness zones\n" +"use mouse scrollwheel to change the number of zones\n" +"left-click on a border to create a marker\n" +"right-click on a marker to delete it" +msgstr "" +"Zone di chiarezza\n" +"Usa la rotella del mouse per cambiare il numero di zone.\n" +"Tasto sinistro su un bordo per creare un marcatore\n" +"Tasto destro sul marcatore per eliminarlo" + +#: ../src/libs/backgroundjobs.c:52 +msgid "background jobs" +msgstr "Elaborazioni in background" + +#: ../src/libs/camera.c:78 +msgid "camera settings" +msgstr "Impostazioni fotocamera" + +#: ../src/libs/camera.c:131 +msgid "toggle view property in center view" +msgstr "Cambia proprietà di visualizzazione nella vista centrale" + +#: ../src/libs/camera.c:201 +msgid "connection with camera lost, exiting tethering mode" +msgstr "" +"Collegamento con la fotocamera interrotto. Uscita dalla modalità di Tethering" + +#: ../src/libs/camera.c:342 +msgid "battery" +msgstr "Batteria" + +#: ../src/libs/camera.c:342 +msgid "n/a" +msgstr "N/D" + +#. Camera control +#: ../src/libs/camera.c:417 +msgctxt "section" +msgid "camera control" +msgstr "Controllo fotocamera" + +#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2679 +msgid "modes" +msgstr "Modalità" + +#: ../src/libs/camera.c:422 +msgid "timer (s)" +msgstr "Timer(s)" + +#: ../src/libs/camera.c:423 +msgid "count" +msgstr "Calcolo" + +#: ../src/libs/camera.c:424 +msgid "brackets" +msgstr "Brackets" + +#: ../src/libs/camera.c:425 +msgid "bkt. steps" +msgstr "Passi bkt." + +#: ../src/libs/camera.c:458 +msgid "capture image(s)" +msgstr "Acquisici immagine(i)" + +#: ../src/libs/camera.c:461 +msgid "toggle delayed capture mode" +msgstr "Cambia modalità di acquisizione ritardata" + +#: ../src/libs/camera.c:462 +msgid "toggle sequenced capture mode" +msgstr "Cambia modalità di acquisizione sequenziale" + +#: ../src/libs/camera.c:463 +msgid "toggle bracketed capture mode" +msgstr "Passa alla modalità di acquisizione bracketing" + +#: ../src/libs/camera.c:464 +msgid "the count of seconds before actually doing a capture" +msgstr "Numero di secondi prima di acquisire" + +#: ../src/libs/camera.c:466 +msgid "" +"the amount of images to capture in a sequence,\n" +"you can use this in conjunction with delayed mode to create stop-motion " +"sequences" +msgstr "" +"Numero di immagini da acquisire in una sequenza,\n" +"puoi usarlo in congiunzione con la modalità temporizzata per creare sequenze " +"in stop-motion" + +#: ../src/libs/camera.c:469 +msgid "" +"the amount of brackets on each side of centered shoot, amount of images = " +"(brackets*2) + 1" +msgstr "" +"Numero di bracket su ogni lato rispetto allo scatto centrale, numero di " +"immagini = (brackets*2) + 1" + +#: ../src/libs/camera.c:471 +msgid "" +"the amount of steps per bracket, steps is camera configurable and usually 3 " +"steps per stop\n" +"with other words, 3 steps is 1EV exposure step between brackets" +msgstr "" +"Numero di passi per lo scatto a forcella, i passi sono configurabili in " +"fotocamera e solitamente sono 3 passi per stop\n" +"In altre parole, 3 passi sono 1EV di esposizione tra gli scatti a forcella" + +#. user specified properties +#: ../src/libs/camera.c:494 +msgctxt "section" +msgid "additional properties" +msgstr "Proprietà aggiuntive" + +#: ../src/libs/camera.c:497 +msgid "label" +msgstr "Etichetta" + +#: ../src/libs/camera.c:505 +msgid "property" +msgstr "Proprietà" + +#: ../src/libs/camera.c:517 +msgid "add user property" +msgstr "Aggiungi proprietà utente" + +#: ../src/libs/camera.c:537 +msgid "program" +msgstr "Programma" + +#: ../src/libs/camera.c:540 ../src/libs/camera.c:542 +msgid "focus mode" +msgstr "Modalità di messa a fuoco" + +#: ../src/libs/camera.c:553 +msgid "shutterspeed2" +msgstr "Tempo di scatto 2" + +#: ../src/libs/camera.c:555 +msgid "shutterspeed" +msgstr "Tempo di scatto" + +#: ../src/libs/camera.c:561 +msgid "WB" +msgstr "Bilanc. del bianco" + +#: ../src/libs/collect.c:164 +msgid "collections" +msgstr "Raccolte" + +#: ../src/libs/collect.c:424 +msgid "search filmroll" +msgstr "Cerca rullino" + +#: ../src/libs/collect.c:507 +#, c-format +msgid "problem selecting new path for the filmroll in %s" +msgstr "Problema selezionando il nuovo percorso per il rullino in %s" + +#: ../src/libs/collect.c:579 +msgid "search filmroll..." +msgstr "Cerca rullino..." + +#: ../src/libs/collect.c:584 +msgid "remove..." +msgstr "Rimuovi..." + +#: ../src/libs/collect.c:1310 +msgid "uncategorized" +msgstr "Senza categoria" + +#: ../src/libs/collect.c:2172 ../src/libs/filters/rating_range.c:120 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:151 +#: ../src/libs/filters/rating_range.c:302 +msgid "rejected" +msgstr "scartato" + +#: ../src/libs/collect.c:2175 ../src/libs/filters/rating_range.c:122 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:303 +msgid "not rated" +msgstr "non valutato" + +#: ../src/libs/collect.c:2359 +msgid "use <, <=, >, >=, <>, =, [;] as operators" +msgstr "Usa <, <=, >, >=, <>, =, [;] come operatori" + +#: ../src/libs/collect.c:2363 +msgid "" +"use <, <=, >, >=, <>, =, [;] as operators\n" +"star rating: 0-5\n" +"rejected images: -1" +msgstr "" +"Usa <, <=, >, >=, <>, =, [;] come operatori\n" +"Valutazione in stelle: 0-5\n" +"Immagini rifiutate: -1" + +#: ../src/libs/collect.c:2371 +msgid "" +"use <, <=, >, >=, <>, =, [;] as operators\n" +"type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)" +msgstr "" +"Usa <, <=, >, >=, <>, =, [;] come operatori\n" +"digita le date nel formato: YYYY:MM:DD hh:mm:ss.sss (solo l'anno è " +"obbligatorio)" + +#: ../src/libs/collect.c:2378 +#, no-c-format +msgid "use `%' as wildcard and `,' to separate values" +msgstr "Usa `%' come jolly e ',' per separare i valori" + +#: ../src/libs/collect.c:2385 +#, no-c-format +msgid "" +"use `%' as wildcard\n" +"click to include hierarchy + sub-hierarchies (suffix `*')\n" +"shift+click to include only the current hierarchy (no suffix)\n" +"ctrl+click to include only sub-hierarchies (suffix `|%')" +msgstr "" +"Usa `%' come jolly\n" +"Clicca per includere la gerarchia + sub gerarchia (suffisso `*')\n" +"Maiuscolo+click per includere solo la gerarchia corrente (nessun suffisso)\n" +"Ctrl+click per includere solo le sub gerarchia (suffisso `|%')" + +#: ../src/libs/collect.c:2398 +#, no-c-format +msgid "" +"use `%' as wildcard\n" +"click to include location + sub-locations (suffix `*')\n" +"shift+click to include only the current location (no suffix)\n" +"ctrl+click to include only sub-locations (suffix `|%')" +msgstr "" +"Usa `%' come jolly\n" +"Clicca per includere la località + le sotto località (suffisso `*')\n" +"Maiuscolo+click per includere solo la località corrente (nessun suffisso)\n" +"Ctrl+click per includere solo le sotto località (suffisso `|%')" + +#: ../src/libs/collect.c:2411 +#, no-c-format +msgid "" +"use `%' as wildcard\n" +"click to include current + sub-folders (suffix `*')\n" +"shift+click to include only the current folder (no suffix)\n" +"ctrl+click to include only sub-folders (suffix `|%')" +msgstr "" +"Usa `%' come jolly\n" +"Clicca per includere la cartella corrente + sottocartelle (suffisso `*')\n" +"Maiuscolo+click per includere solo la cartella corrente (nessun suffisso)\n" +"Ctrl+click per includere solo le sottocartelle (suffisso `|%')" + +#: ../src/libs/collect.c:2422 +#, no-c-format +msgid "use `%' as wildcard" +msgstr "Usare `%' come jolly" + +#: ../src/libs/collect.c:2488 ../src/libs/collect.c:2502 +#: ../src/libs/collect.c:3111 +msgid "clear this rule" +msgstr "Pulisci questa regola" + +#: ../src/libs/collect.c:2492 +msgid "clear this rule or add new rules" +msgstr "Pulisci questa regola o aggiungine una nuova" + +#: ../src/libs/collect.c:3117 +msgid "narrow down search" +msgstr "Restringi campo di ricerca" + +#: ../src/libs/collect.c:3124 +msgid "add more images" +msgstr "Aggiungi più immagini" + +#: ../src/libs/collect.c:3131 +msgid "exclude images" +msgstr "Escludi immagini" + +#: ../src/libs/collect.c:3140 +msgid "change to: and" +msgstr "Cambia in: e" + +#: ../src/libs/collect.c:3147 +msgid "change to: or" +msgstr "Cambia in: o" + +#: ../src/libs/collect.c:3154 +msgid "change to: except" +msgstr "Cambia in: eccetto" + +#. the different categories +#: ../src/libs/collect.c:3184 ../src/libs/filtering.c:883 +#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1620 +#: ../src/libs/filtering.c:1964 +msgid "files" +msgstr "Files" + +#: ../src/libs/collect.c:3189 ../src/libs/export_metadata.c:301 +#: ../src/libs/filtering.c:888 ../src/libs/filtering.c:955 +#: ../src/libs/filtering.c:1628 ../src/libs/filtering.c:1968 +#: ../src/libs/image.c:495 ../src/libs/image.c:633 ../src/libs/image.c:645 +#: ../src/libs/metadata.c:509 ../src/libs/metadata_view.c:1256 +msgid "metadata" +msgstr "Metadati" + +#: ../src/libs/collect.c:3208 ../src/libs/filtering.c:909 +#: ../src/libs/filtering.c:976 ../src/libs/filtering.c:1966 +msgid "times" +msgstr "Orari" + +#: ../src/libs/collect.c:3216 ../src/libs/filtering.c:917 +#: ../src/libs/filtering.c:984 ../src/libs/filtering.c:1652 +msgid "capture details" +msgstr "Dettagli dello scatto" + +#: ../src/libs/collect.c:3225 ../src/libs/filtering.c:926 +#: ../src/libs/filtering.c:993 ../src/libs/filtering.c:1664 +#: ../src/libs/filtering.c:1970 ../src/libs/tools/darktable.c:61 +msgid "darktable" +msgstr "darktable" + +#: ../src/libs/collect.c:3240 +msgid "collections settings" +msgstr "Impostazioni raccolte" + +#: ../src/libs/collect.c:3267 ../src/libs/export.c:1126 +#: ../src/libs/metadata.c:615 ../src/libs/metadata_view.c:1339 +#: ../src/libs/recentcollect.c:295 ../src/libs/tagging.c:3526 +msgid "preferences..." +msgstr "Preferenze..." + +#: ../src/libs/collect.c:3388 ../src/libs/filtering.c:1494 +msgid "AND" +msgstr "E" + +#: ../src/libs/collect.c:3393 ../src/libs/filtering.c:1499 +msgid "OR" +msgstr "O" + +#. case DT_LIB_COLLECT_MODE_AND_NOT: +#: ../src/libs/collect.c:3398 ../src/libs/filtering.c:1504 +msgid "BUT NOT" +msgstr "MA NON" + +#: ../src/libs/collect.c:3588 ../src/libs/filtering.c:2238 +msgid "revert to a previous set of rules" +msgstr "Ripristina le regole precedenti" + +#: ../src/libs/collect.c:3671 +msgid "jump back to previous collection" +msgstr "Torna alla raccolta precedente" + +#: ../src/libs/colorpicker.c:51 +msgid "LCh" +msgstr "LCh" + +#: ../src/libs/colorpicker.c:51 +msgid "HSV" +msgstr "HSV" + +#: ../src/libs/colorpicker.c:51 +msgid "Hex" +msgstr "Hex" + +#: ../src/libs/colorpicker.c:53 +msgid "mean" +msgstr "Medio" + +#: ../src/libs/colorpicker.c:71 +msgid "color picker" +msgstr "Selettore colore" + +#: ../src/libs/colorpicker.c:513 +msgid "" +"hover to highlight sample on canvas,\n" +"click to lock sample,\n" +"right-click to load sample area into active color picker" +msgstr "" +"Posizionati col cursore per evidenziare il campione sulla tela,\n" +"fai click per bloccare il campione,\n" +"click di destro per caricare l'area campione nel selettore colore attivo" + +#: ../src/libs/colorpicker.c:626 ../src/libs/colorpicker.c:693 +msgid "click to (un)hide large color patch" +msgstr "Click per nascondere o scoprire un campione colore più grande" + +#: ../src/libs/colorpicker.c:649 +msgid "statistic" +msgstr "Statistica" + +#: ../src/libs/colorpicker.c:650 +msgid "select which statistic to show" +msgstr "Seleziona quale statistica mostrare" + +#: ../src/libs/colorpicker.c:660 +msgid "select which color mode to use" +msgstr "Seleziona quale modalità colore usare" + +#: ../src/libs/colorpicker.c:671 +msgid "" +"turn on color picker\n" +"ctrl+click or right-click to select an area" +msgstr "" +"Attiva il selettore colore\n" +"Ctrl+click o click destro per selezionare un'area" + +#: ../src/libs/colorpicker.c:722 +msgid "add sample" +msgstr "Aggiungi campione" + +#. Adding the live samples section +#: ../src/libs/colorpicker.c:727 +msgctxt "section" +msgid "live samples" +msgstr "Campionatura live" + +#: ../src/libs/colorpicker.c:738 +msgid "display samples on image/vectorscope" +msgstr "Mostra esempi su immagine/vettorscopio" + +#: ../src/libs/colorpicker.c:749 +msgid "restrict scope to selection" +msgstr "Restringi l'ambito alla selezione" + +#: ../src/libs/copy_history.c:61 +msgid "history stack" +msgstr "Coda di sviluppo" + +#: ../src/libs/copy_history.c:114 +msgid "open sidecar file" +msgstr "Apri file di elaborazione" + +#: ../src/libs/copy_history.c:166 +#, c-format +msgid "error loading file '%s'" +msgstr "Errore nel caricamento del file '%s'" + +#: ../src/libs/copy_history.c:206 +#, c-format +msgid "no history compression of %d image" +msgid_plural "no history compression of %d images" +msgstr[0] "Nessuna compressione della coda di sviluppo per l'immagine %d\t" +msgstr[1] "Nessuna compressione della coda di sviluppo per le immagini %d\t" + +#: ../src/libs/copy_history.c:247 +msgid "delete images' history?" +msgstr "cancella la coda di sviluppo dell'immagine?" + +#: ../src/libs/copy_history.c:248 +#, c-format +msgid "do you really want to clear history of %d selected image?" +msgid_plural "do you really want to clear history of %d selected images?" +msgstr[0] "" +"Vuoi veramente cancellare la coda di sviluppo dell'immagine %d selezionata?" +msgstr[1] "" +"Vuoi veramente cancellare la coda di sviluppo delle immagini %d selezionate?" + +#: ../src/libs/copy_history.c:364 +msgid "selective copy..." +msgstr "Copia selettiva..." + +#: ../src/libs/copy_history.c:365 +msgid "choose which modules to copy from the source image" +msgstr "Scegli quale modulo copiare dall'immagine sorgente" + +#: ../src/libs/copy_history.c:371 +msgid "" +"copy history stack of\n" +"first selected image" +msgstr "" +"Copia lo stack della cronologia\n" +"della prima immagine selezionata" + +#: ../src/libs/copy_history.c:376 +msgid "selective paste..." +msgstr "Incolla selettivo..." + +#: ../src/libs/copy_history.c:377 +msgid "choose which modules to paste to the target image(s)" +msgstr "Scegli quali moduli incollare sull'/sulle immagine/i di destinazione" + +#: ../src/libs/copy_history.c:382 ../src/libs/image.c:655 +msgid "paste" +msgstr "Incolla " + +#: ../src/libs/copy_history.c:383 +msgid "" +"paste history stack to\n" +"all selected images" +msgstr "" +"Incolla lo stack della cronologia passata\n" +"su tutte le immagini selezionate" + +#: ../src/libs/copy_history.c:389 +msgid "compress history" +msgstr "Comprimi coda di sviluppo" + +#: ../src/libs/copy_history.c:390 +msgid "" +"compress history stack of\n" +"all selected images" +msgstr "" +"Comprimi coda di sviluppo di\n" +"tutte le immagini selezionate" + +#: ../src/libs/copy_history.c:395 +msgid "" +"discard history stack of\n" +"all selected images" +msgstr "" +"Scarta coda di sviluppo di\n" +"tutte le immagini selezionate" + +#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:851 +msgid "how to handle existing history" +msgstr "Come gestire la coda di sviluppo esistente" + +#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:854 +msgid "append" +msgstr "Aggiungi" + +#: ../src/libs/copy_history.c:409 +msgid "load sidecar file..." +msgstr "Carica il file XMP..." + +#: ../src/libs/copy_history.c:410 +msgid "" +"open an XMP sidecar file\n" +"and apply it to selected images" +msgstr "" +"Apri un file di elaborazione XMP\n" +"e applicalo alle immagini selezionate" + +#: ../src/libs/copy_history.c:415 +msgid "write history stack and tags to XMP sidecar files" +msgstr "Scrivi coda di sviluppo ed etichette nei file di elaborazione XMP" + +#: ../src/libs/duplicate.c:60 +msgid "duplicate manager" +msgstr "Gestore duplicati" + +#: ../src/libs/duplicate.c:407 +msgid "create a 'virgin' duplicate of the image without any development" +msgstr "Crea duplicato 'vergine' dell'immagine senza alcun sviluppo" + +#: ../src/libs/duplicate.c:412 +msgid "create a duplicate of the image with same history stack" +msgstr "Crea duplicato dell'immagine con la medesima coda di sviluppo" + +#: ../src/libs/export.c:160 +msgid "export" +msgstr "Esporta" + +#: ../src/libs/export.c:306 +msgid "invalid format for export selected" +msgstr "Selezionato un formato per l'esportazione non valido" + +#: ../src/libs/export.c:311 +msgid "invalid storage for export selected" +msgstr "Selezionato un archivio non valido per l'esportazione" + +#: ../src/libs/export.c:322 +msgid "export to disk" +msgstr "Esporta su disco" + +#: ../src/libs/export.c:516 +#, c-format +msgid "which is equal to %s × %s px" +msgstr "Che è uguale a %s x %s px" + +#: ../src/libs/export.c:555 +msgctxt "unit" +msgid "in" +msgstr "in" + +#: ../src/libs/export.c:1141 +msgctxt "section" +msgid "storage options" +msgstr "Opzioni di salvataggio" + +#: ../src/libs/export.c:1145 +msgid "target storage" +msgstr "Destinazione" + +#: ../src/libs/export.c:1171 +msgctxt "section" +msgid "format options" +msgstr "Opzioni formato" + +#: ../src/libs/export.c:1175 +msgid "file format" +msgstr "Formato file" + +#: ../src/libs/export.c:1193 +msgctxt "section" +msgid "global options" +msgstr "Opzioni globali" + +#: ../src/libs/export.c:1196 +msgid "set size" +msgstr "Imposta dimensione" + +#: ../src/libs/export.c:1197 +msgid "choose a method for setting the output size" +msgstr "Seleziona un metodo per impostare la dimensione di output" + +#: ../src/libs/export.c:1200 +msgid "in pixels (for file)" +msgstr "In pixel (per file)" + +#: ../src/libs/export.c:1201 +msgid "in cm (for print)" +msgstr "in cm (per stampe)" + +#: ../src/libs/export.c:1202 +msgid "in inch (for print)" +msgstr "in pollici (per stampe)" + +#: ../src/libs/export.c:1203 +msgid "by scale (for file)" +msgstr "In scala (per file)" + +#: ../src/libs/export.c:1206 +msgid "print width" +msgstr "Larghezza di stampa" + +#: ../src/libs/export.c:1208 ../src/libs/export.c:1225 +msgid "" +"maximum output width limit.\n" +"click middle mouse button to reset to 0." +msgstr "" +"Larghezza max output.\n" +"Click con il pulsante centrale del mouse per reimpostare a 0." + +#: ../src/libs/export.c:1212 +msgid "print height" +msgstr "Altezza di stampa" + +#: ../src/libs/export.c:1214 ../src/libs/export.c:1231 +msgid "" +"maximum output height limit.\n" +"click middle mouse button to reset to 0." +msgstr "" +"Altezza max output.\n" +"Click con il pulsante centrale del mouse per reimpostare a 0." + +#: ../src/libs/export.c:1220 +msgid "resolution in dot per inch" +msgstr "Risoluzione punti/pollice" + +#: ../src/libs/export.c:1244 +msgid "@" +msgstr "@" + +#: ../src/libs/export.c:1258 ../src/libs/tools/global_toolbox.c:217 +msgid "px" +msgstr "px" + +#: ../src/libs/export.c:1266 +msgid "" +"it can be an integer, decimal number or simple fraction.\n" +"zero or empty values are equal to 1.\n" +"click middle mouse button to reset to 1." +msgstr "" +"Può essere un numero intero, un decimale o una semplice frazione.\n" +"Zero o nessun valore corrispondono ad 1.\n" +"Click con il pulsante centrale del mouse per reimpostare ad 1." + +#: ../src/libs/export.c:1292 +msgid "allow upscaling" +msgstr "Abilita upscaling" + +#: ../src/libs/export.c:1301 +msgid "high quality resampling" +msgstr "Ricampionamento in alta qualità" + +#: ../src/libs/export.c:1302 +msgid "do high quality resampling during export" +msgstr "Ricampionamento in alta qualità durante l'esportazione" + +#: ../src/libs/export.c:1310 +msgid "store masks" +msgstr "Salva maschere" + +#: ../src/libs/export.c:1311 +msgid "store masks as layers in exported images. only works for some formats." +msgstr "" +"Salva le maschere come livelli nelle immagini esportate. Funziona solo per " +"certi formati." + +#: ../src/libs/export.c:1322 ../src/libs/export.c:1357 +#: ../src/libs/print_settings.c:2777 ../src/libs/print_settings.c:2823 +msgid "image settings" +msgstr "Impostazione immagine" + +#: ../src/libs/export.c:1332 ../src/libs/print_settings.c:2811 +msgid "output ICC profiles" +msgstr "profili ICC di uscita" + +#: ../src/libs/export.c:1340 +msgid "" +"• perceptual: smoothly moves out-of-gamut colors into gamut, preserving " +"gradations,\n" +"but distorts in-gamut colors in the process.\n" +"note that perceptual is often a proprietary LUT that depends on the " +"destination space.\n" +"\n" +"• relative colorimetric: keeps luminance while reducing as little as " +"possible\n" +"saturation until colors fit in gamut.\n" +"\n" +"• saturation: designed to present eye-catching business graphics\n" +"by preserving the saturation. (not suited for photography).\n" +"\n" +"• absolute colorimetric: adapt white point of the image to the white point " +"of the\n" +"destination medium and do nothing else. mainly used when proofing colors.\n" +"(not suited for photography)." +msgstr "" +"• percettivo: sposta dolcmente i colori fuori-gamma all'interno della gamma, " +"preservandole gradazioni,\n" +"ma distorcendo, nel processo, i colori in gamma.\n" +"Notare che percettivo è spesso un LUT proprietario che dipende allo spazio " +"coloredi destinazione.\n" +"\n" +"• colorimetrico relativo: mantiene la luminanza mentre riduce il meno " +"possibile \n" +"la saturazione fino a quando il colore entra in gamma.\n" +"\n" +"• saturazione: progettato per mostrare grafiche professionali accattivanti\n" +"preservando la saturazione. (non adatto per la fotografia).\n" +"\n" +"• colorimetrico assoluto: adatta il punto di bianco di un'immagine con il " +"punto di bianco\n" +"del dispositivo di destinazione e nient'altro. Usato principalmente quando " +"si correggono i colori.\n" +"(non adatto per la fotografia)." + +#: ../src/libs/export.c:1367 ../src/libs/print_settings.c:2833 +msgid "style" +msgstr "Stile" + +#: ../src/libs/export.c:1370 +msgid "temporary style to use while exporting" +msgstr "Stile temporaneo da usare durante l'esportazione" + +#: ../src/libs/export.c:1377 ../src/libs/print_settings.c:2876 +msgid "" +"whether the style items are appended to the history or replacing the history" +msgstr "Aggiunge gli stili alla cronologia oppure la rimpiazza" + +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 +msgid "replace history" +msgstr "Rimpiazza cronologia" + +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 +msgid "append history" +msgstr "Aggiungi cronologia" + +#: ../src/libs/export.c:1398 +msgctxt "actionbutton" +msgid "export" +msgstr "Esporta" + +#: ../src/libs/export.c:1400 +msgid "export with current settings" +msgstr "Esporta con settaggi correnti" + +#: ../src/libs/export_metadata.c:148 +msgid "select tag" +msgstr "Seleziona etichetta" + +#: ../src/libs/export_metadata.c:150 +msgid "_add" +msgstr "_add" + +#: ../src/libs/export_metadata.c:151 ../src/libs/geotagging.c:811 +msgid "_done" +msgstr "_Fatto" + +#: ../src/libs/export_metadata.c:162 +msgid "list filter" +msgstr "Elenco filtri" + +#: ../src/libs/export_metadata.c:173 +msgid "" +"list of available tags. click 'add' button or double-click on tag to add the " +"selected one" +msgstr "" +"Elenco di etichette disponibili. Clicca il pulsante 'Aggiungi' oppure fai " +"doppio click sull'etichetta selezionata peraggiungerla." + +#: ../src/libs/export_metadata.c:274 +msgid "edit metadata exportation" +msgstr "Editor esportazione metadati" + +#: ../src/libs/export_metadata.c:293 +msgid "general settings" +msgstr "Impostazioni generali" + +#: ../src/libs/export_metadata.c:298 +msgid "EXIF data" +msgstr "Dati EXIF" + +#: ../src/libs/export_metadata.c:299 +msgid "export EXIF metadata" +msgstr "Esporta metadati EXIF" + +#: ../src/libs/export_metadata.c:302 +msgid "export darktable XMP metadata (from metadata editor module)" +msgstr "" +"Esporta i file di metadatai XMP di darktable (dal modulo di modifica " +"metadati)" + +#: ../src/libs/export_metadata.c:312 +msgid "only embedded" +msgstr "Solo quelli incorporati" + +#: ../src/libs/export_metadata.c:313 +msgid "" +"per default the interface sends some (limited) metadata beside the image to " +"remote storage.\n" +"to avoid this and let only image embedded darktable XMP metadata, check this " +"flag.\n" +"if remote storage doesn't understand darktable XMP metadata, you can use " +"calculated metadata instead" +msgstr "" +"L'interfaccia spedisce di default alcuni metadati (limitati) assieme " +"all'immagine verso l'archiviazione remota.\n" +"Per evitarlo ed al fine di includere soltanto i metadati XMP di darktable, " +"spuntare quest'opzione.\n" +"Se l'archiviazione remota non supporta i metadati XMP di darktable, puoi " +"invece usare i metadati calcolati" + +#: ../src/libs/export_metadata.c:319 ../src/libs/image.c:623 +msgid "geo tags" +msgstr "Etichette geografiche" + +#: ../src/libs/export_metadata.c:320 +msgid "export geo tags" +msgstr "Esporta etichette geografiche" + +#: ../src/libs/export_metadata.c:323 +msgid "export tags (to Xmp.dc.Subject)" +msgstr "Esporta etichette (in Xmp.dc.Subject)" + +#: ../src/libs/export_metadata.c:331 +msgid "private tags" +msgstr "Etichette private" + +#: ../src/libs/export_metadata.c:332 +msgid "export private tags" +msgstr "Esporta etichette private" + +#: ../src/libs/export_metadata.c:334 +msgid "synonyms" +msgstr "Sinonimi" + +#: ../src/libs/export_metadata.c:335 +msgid "export tags synonyms" +msgstr "Esporta etichette sinonimi" + +#: ../src/libs/export_metadata.c:337 +msgid "omit hierarchy" +msgstr "Ometti gerarchia" + +#: ../src/libs/export_metadata.c:338 +msgid "" +"only the last part of the hierarchical tags is included. can be useful if " +"categories are not used" +msgstr "" +"È inclusa solamente l'ultima parte delle etichette gerarchiche. Utile nel " +"caso in cui non sono utilizzate le categorie" + +#: ../src/libs/export_metadata.c:341 +msgid "hierarchical tags" +msgstr "Etichette gerarchiche" + +#: ../src/libs/export_metadata.c:342 +msgid "export hierarchical tags (to Xmp.lr.Hierarchical Subject)" +msgstr "Esporta etichette gerarchiche (in Xmp.lr.Hierarchical Subject)" + +#: ../src/libs/export_metadata.c:344 +msgid "develop history" +msgstr "Storico sviluppo" + +#: ../src/libs/export_metadata.c:345 +msgid "" +"export darktable development data (recovery purpose in case of loss of " +"database or XMP file)" +msgstr "" +"Esporta i dati di sviluppo di darktable (per ripristanre in caseo di perdita " +"del database o dei file XMP)" + +#: ../src/libs/export_metadata.c:352 +msgid "per metadata settings" +msgstr "Impostazioni metadati" + +#: ../src/libs/export_metadata.c:364 +msgid "redefined tag" +msgstr "Etichette ridefinite" + +#: ../src/libs/export_metadata.c:370 +msgid "formula" +msgstr "Formula" + +#: ../src/libs/export_metadata.c:373 +msgid "" +"list of calculated metadata\n" +"click on '+' button to select and add new metadata\n" +"if formula is empty, the corresponding metadata is removed from exported " +"file,\n" +"if formula is '=', the EXIF metadata is exported even if EXIF data are " +"disabled\n" +"otherwise the corresponding metadata is calculated and added to exported " +"file\n" +"click on formula cell to edit\n" +"type '$(' to activate the completion and see the list of variables" +msgstr "" +"Lista dei metadati calcolati\n" +"fai click sul pulsante '+' button per selezionare e aggiungere un nuovo " +"metadato\n" +"se la formula è vuota, il metadato corrispondente è escluso dal file " +"esportato,\n" +"se la formula è '=', il metadato EXIF viene esportato anche se i dati EXIF " +"sono disabilitati\n" +"altrimenti il metadato corrispondente viene calcolato e aggiunto al file " +"esportato\n" +"fai click sulla cella della formula per modificare\n" +"digita '$(' per attivare il completamento e vedere la lista delle variabili" + +#: ../src/libs/export_metadata.c:430 +msgid "add an output metadata tag" +msgstr "Aggiungi un'etichetta con i metadati dell'output" + +#: ../src/libs/export_metadata.c:435 +msgid "delete metadata tag" +msgstr "Elimina metadati etichetta" + +#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:130 +msgid "full path" +msgstr "Percorso completo" + +#: ../src/libs/filtering.c:72 +msgid "group" +msgstr "Raggruppa" + +#: ../src/libs/filtering.c:73 ../src/libs/live_view.c:313 +msgid "id" +msgstr "ID" + +#: ../src/libs/filtering.c:74 +msgid "custom sort" +msgstr "Ordinamento personalizzato" + +#: ../src/libs/filtering.c:75 +msgid "shuffle" +msgstr "Mescola" + +#: ../src/libs/filtering.c:269 +msgid "collection filters" +msgstr "Filtri di raccolta" + +#: ../src/libs/filtering.c:302 +msgid "initial setting" +msgstr "Impostazioni iniziali" + +#: ../src/libs/filtering.c:321 +msgid "imported: last 24h" +msgstr "Importato: ultime 24 ore" + +#: ../src/libs/filtering.c:326 +msgid "imported: last 30 days" +msgstr "Importate: ultimi 30 giorni" + +#: ../src/libs/filtering.c:332 +msgid "taken: last 24h" +msgstr "Scattate: ultime 24h" + +#: ../src/libs/filtering.c:336 +msgid "taken: last 30 days" +msgstr "Scattate: ultimi 30 giorni" + +#: ../src/libs/filtering.c:728 +msgid "click or click&drag to select one or multiple values" +msgstr "fai click o trascina per selezionare uno o più valori" + +#: ../src/libs/filtering.c:729 +msgid "right-click opens a menu to select the available values" +msgstr "Il click di destro apre un menù per selezionare i valori disponibili" + +#: ../src/libs/filtering.c:826 +#, c-format +msgid "you can't have more than %d rules" +msgstr "Non puoi avere più di %d regole" + +#: ../src/libs/filtering.c:948 ../src/libs/filtering.c:1618 +msgid "rule property" +msgstr "Proprietà regola" + +#: ../src/libs/filtering.c:1013 +msgid "" +"rule property\n" +"this can't be changed as the rule is pinned to the toolbar" +msgstr "" +"Proprietà regola\n" +"questo non può essere modificato in quanto la regola è bloccata nella barra " +"degli strumenti" + +#: ../src/libs/filtering.c:1095 +msgctxt "quickfilter" +msgid "filter" +msgstr "Filtro" + +#: ../src/libs/filtering.c:1124 +msgid "" +"this rule is pinned to the top toolbar\n" +"click to un-pin" +msgstr "" +"Questa regola è bloccata nella barra degli strumenti in alto\n" +"fai click per sbloccare" + +#: ../src/libs/filtering.c:1125 +msgid "you can't disable the rule as it is pinned to the toolbar" +msgstr "" +"Non puoi disabilitare la regola poiché è bloccata nella barra degli strumenti" + +#: ../src/libs/filtering.c:1126 +msgid "you can't remove the rule as it is pinned to the toolbar" +msgstr "" +"Non puoi rimuovere la regola poiché è bloccata nella barra degli strumenti" + +#: ../src/libs/filtering.c:1131 +msgid "click to pin this rule to the top toolbar" +msgstr "" +"Fai click per bloccare questa regola nella barra degli strumenti in alto" + +#: ../src/libs/filtering.c:1132 +msgid "remove this collect rule" +msgstr "Rimuovi questa regola di raccolta" + +#: ../src/libs/filtering.c:1134 +msgid "this rule is enabled" +msgstr "Questa regola è abilitata" + +#: ../src/libs/filtering.c:1136 +msgid "this rule is disabled" +msgstr "Questa regola è disabilitata" + +#: ../src/libs/filtering.c:1264 +msgid "or" +msgstr "o" + +#: ../src/libs/filtering.c:1265 +msgid "and not" +msgstr "e non" + +#: ../src/libs/filtering.c:1267 +msgid "define how this rule should interact with the previous one" +msgstr "Stabilisce come questa regola dovrebbe interagire con la precedente" + +#: ../src/libs/filtering.c:1528 +msgid " (off)" +msgstr " (disabilitato)" + +#: ../src/libs/filtering.c:1725 +msgid "you can't add more rules." +msgstr "Non puoi aggiungere regole ulteriori." + +#: ../src/libs/filtering.c:1759 +msgid "shown filters" +msgstr "FIltri mostrati" + +#: ../src/libs/filtering.c:1774 +msgid "new filter" +msgstr "Nuovo filtro" + +#. the actions part of the popover +#: ../src/libs/filtering.c:1781 +msgid "actions" +msgstr "Azioni" + +#: ../src/libs/filtering.c:1784 +msgid "reset quickfilters" +msgstr "Azzera i filtri veloci" + +#: ../src/libs/filtering.c:1957 +msgid "sort order" +msgstr "Ordinamento" + +#: ../src/libs/filtering.c:1960 +msgid "determine the sort order of shown images" +msgstr "Determina l'ordine delle immagini mostrate" + +#: ../src/libs/filtering.c:1980 +msgid "sort direction" +msgstr "Direzione ordinamento" + +#: ../src/libs/filtering.c:1985 +msgid "remove this sort order" +msgstr "Rimuovi questo ordinamento" + +#: ../src/libs/filtering.c:2069 +#, c-format +msgid "you can't have more than %d sort orders" +msgstr "Non puoi avere più di %d ordinamenti" + +#: ../src/libs/filtering.c:2123 +msgid "DESC" +msgstr "DSC" + +#: ../src/libs/filtering.c:2123 +msgid "ASC" +msgstr "ASC" + +#: ../src/libs/filtering.c:2234 +msgid "new rule" +msgstr "Nuova regola" + +#: ../src/libs/filtering.c:2235 +msgid "append new rule to collect images" +msgstr "Aggiungi nuova regola per raccogliere le immagini" + +#: ../src/libs/filtering.c:2246 ../src/libs/tools/filter.c:116 +msgid "sort by" +msgstr "Ordina per" + +#: ../src/libs/filtering.c:2254 +msgid "new sort" +msgstr "Nuovo ordinamento" + +#: ../src/libs/filtering.c:2255 +msgid "append new sort to order images" +msgstr "Aggiungi un nuovo ordinamento per ordinare le immagini" + +#: ../src/libs/filtering.c:2258 +msgid "revert to a previous set of sort orders" +msgstr "Ripristina gli ordinamenti precedento" + +#. we change the tooltip of the reset button here, as we are sure the header is defined now +#: ../src/libs/filtering.c:2308 +msgid "" +"reset\n" +"ctrl+click to remove pinned rules too" +msgstr "" +"Azzera\n" +"ctrl-click per rimuovere anche le regole bloccate" + +#: ../src/libs/filters/colors.c:140 +msgid "Y" +msgstr "Y" + +#: ../src/libs/filters/colors.c:149 +msgid "P" +msgstr "P" + +#: ../src/libs/filters/colors.c:269 +msgid "color filter" +msgstr "Filtro colore" + +#: ../src/libs/filters/colors.c:294 +msgid "" +"filter by images color label\n" +"click to toggle the color label selection\n" +"ctrl+click to exclude the color label\n" +"the gray button affects all color labels" +msgstr "" +"Filtra per etichetta colore delle immagini\n" +"click to attivare/disattivare la selezione dell'etichetta colore\n" +"Ctrl+click per escludere l'etichetta colore\n" +"il pulsante grigio riguarda tutte le etichette colore" + +#. create the filter combobox +#: ../src/libs/filters/colors.c:301 ../src/libs/filters/colors.c:312 +#: ../src/libs/filters/grouping.c:167 ../src/libs/filters/history.c:153 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/filters/module_order.c:161 +#: ../src/libs/filters/rating.c:199 ../src/libs/filters/rating.c:210 +#: ../src/libs/filters/rating_range.c:356 +msgid "rules" +msgstr "Regole" + +#: ../src/libs/filters/colors.c:306 +msgid "" +"filter by images color label\n" +"and (∩): images having all selected color labels\n" +"or (∪): images with at least one of the selected color labels" +msgstr "" +"Filtra per etichetta colore delle immagini\n" +"\"e\" (∩): immagini che hanno tutte le etichette colore selezionate\n" +"\"o\" (∪): immagini con almento una delle etichette colore selezionate" + +#: ../src/libs/filters/filename.c:370 +msgid "" +"enter filename to search.\n" +"multiple values can be separated by ','\n" +"\n" +"right-click to get existing filenames" +msgstr "" +"Inserisci il nome del file da cercare.\n" +"i valori multipli possono essere separati da ','\n" +"\n" +"click di destro per ottenere i nomi file esistenti" + +#: ../src/libs/filters/filename.c:381 +msgid "extension" +msgstr "Estensione" + +#: ../src/libs/filters/filename.c:382 +msgid "" +"enter extension to search with starting dot\n" +"multiple values can be separated by ','\n" +"handled keywords: 'RAW', 'NOT RAW', 'LDR', 'HDR'\n" +"\n" +"right-click to get existing extensions" +msgstr "" +"Inserisci l'estensione da cercare iniziando con il punto\n" +"i valori multipli possono essere separati da ','\n" +"parole chiavi gestite: 'RAW', 'NOT RAW', 'LDR', 'HDR'\n" +"\n" +"click di destro per ottenere le estensioni esistenti" + +#: ../src/libs/filters/filename.c:410 +msgid "" +"click to select filename\n" +"ctrl+click to select multiple values" +msgstr "" +"Fai click per selezionare il nome file\n" +"ctrl+click per selezionare valori multipli" + +#: ../src/libs/filters/filename.c:437 +msgid "" +"click to select extension\n" +"ctrl+click to select multiple values" +msgstr "" +"Fai click per selezionare l'estensione\n" +"ctrl+click per selezionare valori multipli" + +#. the button to close the popup +#: ../src/libs/filters/filename.c:457 +msgid "ok" +msgstr "ok" + +#: ../src/libs/filters/grouping.c:141 ../src/libs/filters/grouping.c:169 +msgid "ungrouped images" +msgstr "Immagini non raggruppate" + +#: ../src/libs/filters/grouping.c:168 +msgid "select the type of grouped image to filter" +msgstr "Seleziona il tipo delle immagini raggruppate da filtrare" + +#. predefined selections +#: ../src/libs/filters/grouping.c:169 ../src/libs/filters/history.c:38 +#: ../src/libs/filters/local_copy.c:38 ../src/libs/filters/module_order.c:155 +#: ../src/libs/filters/rating_range.c:59 ../src/libs/filters/rating_range.c:83 +#: ../src/libs/filters/rating_range.c:131 ../src/libs/filters/ratio.c:68 +#: ../src/libs/filters/ratio.c:81 +msgid "all images" +msgstr "Tutte le immagini" + +#: ../src/libs/filters/history.c:153 +msgid "filter on history state" +msgstr "Filtro sullo stato coda sviluppo" + +#: ../src/libs/filters/local_copy.c:142 +msgid "local copied state filter" +msgstr "Filtro stato copia locale" + +#: ../src/libs/filters/module_order.c:161 +msgid "filter images based on their module order" +msgstr "Filtra le immagini in base all'ordine dei moduli" + +#: ../src/libs/filters/rating.c:199 +msgid "comparator" +msgstr "Comparatore" + +#: ../src/libs/filters/rating.c:200 ../src/libs/filters/rating.c:210 +msgid "filter by images rating" +msgstr "FIltra per valutazione immagine" + +#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:596 +#: ../src/libs/tools/ratings.c:56 +msgid "ratings" +msgstr "Valutazione" + +#: ../src/libs/filters/rating.c:211 +msgid "unstarred only" +msgstr "Solo senza valutazione" + +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:65 +#: ../src/libs/filters/rating_range.c:89 +msgid "rejected only" +msgstr "Solo le scartate" + +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:62 +#: ../src/libs/filters/rating_range.c:86 ../src/libs/filters/rating_range.c:158 +msgid "all except rejected" +msgstr "Tutte escluso le scartate" + +#: ../src/libs/filters/rating_range.c:67 ../src/libs/filters/rating_range.c:91 +msgid "not rated only" +msgstr "solo non valutati" + +#: ../src/libs/filters/rating_range.c:296 +msgid "better" +msgstr "migliore" + +#: ../src/libs/filters/rating_range.c:297 +msgid "worse" +msgstr "peggiore" + +#: ../src/libs/filters/rating_range.c:298 +msgid "cap" +msgstr "cap" + +#: ../src/libs/filters/rating_range.c:313 +msgid "rating filter" +msgstr "Filtro valutazione" + +#: ../src/libs/filters/ratio.c:70 ../src/libs/filters/ratio.c:82 +msgid "portrait images" +msgstr "immagini di ritratto" + +#: ../src/libs/filters/ratio.c:71 ../src/libs/filters/ratio.c:83 +msgid "square images" +msgstr "immagini quadrate" + +#: ../src/libs/filters/ratio.c:72 ../src/libs/filters/ratio.c:84 +msgid "landscape images" +msgstr "Immagini di paesaggi" + +#: ../src/libs/filters/search.c:179 +#, no-c-format +msgid "" +"filter by text from images metadata, camera brand/model, tags, file path and " +"name\n" +"`%' is the wildcard character\n" +"by default start and end wildcards are auto-applied\n" +"starting or ending with a double quote disables the corresponding wildcard\n" +"is dimmed during the search execution" +msgstr "" +"Filtra attraverso il testo dei metadati delle immagini, marca/modello della " +"fotocamera, etichette, percorso del file e nome\n" +"`%' è il carattere jolly\n" +"il carattere jolly viene usato automaticamente all'inizio e alla fine\n" +"iniziare o finire con un doppio apice disabilita il carattere jolly " +"corrispondente\n" +"viene scurito durante l'esecuzione della ricerca" + +#: ../src/libs/geotagging.c:368 +msgid "apply offset and geo-location" +msgstr "Applica compensazione e geo localizzazione" + +#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1914 +msgid "apply geo-location" +msgstr "Applica la geo localizzazione" + +#: ../src/libs/geotagging.c:371 +msgid "" +"apply offset and geo-location to matching images\n" +"double operation: two ctrl-z to undo" +msgstr "" +"Applica la compensazione e la geo localizzazione alle immagini " +"corrispondenti\n" +"Doppia operazione: due ctrl-Z per annullare" + +#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1915 +msgid "apply geo-location to matching images" +msgstr "Applica la geo localizzazione alle immagini corrispondenti" + +#: ../src/libs/geotagging.c:809 +msgid "GPX file track segments" +msgstr "File GPX dei segmenti di tracciato" + +#: ../src/libs/geotagging.c:831 ../src/libs/geotagging.c:1873 +msgid "start time" +msgstr "Ora d'inizio" + +#: ../src/libs/geotagging.c:832 +msgid "end time" +msgstr "Tempo scaduto" + +#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1875 +msgid "points" +msgstr "Punti" + +#: ../src/libs/geotagging.c:834 ../src/libs/geotagging.c:1877 +#: ../src/libs/image.c:494 +msgid "images" +msgstr "Immagini" + +#: ../src/libs/geotagging.c:927 +msgid "open GPX file" +msgstr "Apri file GPX" + +#: ../src/libs/geotagging.c:928 ../src/libs/tools/lighttable.c:330 +#: ../src/libs/tools/lighttable.c:399 ../src/views/darkroom.c:2091 +msgid "preview" +msgstr "Anteprima" + +#: ../src/libs/geotagging.c:941 +msgid "GPS data exchange format" +msgstr "Formato di scambio dati GPS" + +#: ../src/libs/geotagging.c:1743 +msgid "date/time" +msgstr "Data/ora" + +#: ../src/libs/geotagging.c:1744 +msgid "" +"enter the new date/time (YYYY:MM:DD hh:mm:ss[.sss])\n" +"key in the new numbers or scroll over the cell" +msgstr "" +"Inserisci la nuova data/ora (YYYY:MM:DD hh:mm:ss[.sss])\n" +"inserisci i nuovi valori o usa la rotella del mouse sulla cella" + +#: ../src/libs/geotagging.c:1748 +msgid "original date/time" +msgstr "Data/ora originale" + +#: ../src/libs/geotagging.c:1752 +msgid "lock date/time offset value to apply it onto another selection" +msgstr "" +"Vedi il valore di spostamento data/ora per applicarlo in un altra selezione" + +#: ../src/libs/geotagging.c:1756 +msgid "date/time offset" +msgstr "Spostamento di data/ora" + +#: ../src/libs/geotagging.c:1757 +msgid "offset or difference ([-]dd hh:mm:ss[.sss])" +msgstr "compensazione o differenza ([-]dd hh:mm:ss[.sss])" + +#. apply +#: ../src/libs/geotagging.c:1761 +msgid "apply offset" +msgstr "Applica lo spostamento" + +#: ../src/libs/geotagging.c:1762 +msgid "apply offset to selected images" +msgstr "Applica lo spostamento alle immagini selezionate" + +#: ../src/libs/geotagging.c:1765 +msgid "apply date/time" +msgstr "Applica data/ora" + +#: ../src/libs/geotagging.c:1766 +msgid "apply the same date/time to selected images" +msgstr "Applica la stessa data/ora alle immagini selezionate" + +#: ../src/libs/geotagging.c:1776 +msgid "" +"start typing to show a list of permitted values and select your timezone.\n" +"press enter to confirm, so that the asterisk * disappears" +msgstr "" +"Inizia a digitare per mostrare una lista di valori permessi e selezionare il " +"tuo fuso orario.\n" +"Premi Invio per confermare, così facendo l'asterisco * scompare" + +#. gpx +#: ../src/libs/geotagging.c:1819 +msgid "apply GPX track file..." +msgstr "Applica un file tracciato GPX..." + +#: ../src/libs/geotagging.c:1820 +msgid "parses a GPX file and updates location of selected images" +msgstr "" +"Analizza un file GPX e aggiorna la posizione delle immagini selezionate" + +#: ../src/libs/geotagging.c:1831 +msgctxt "section" +msgid "GPX file" +msgstr "File GPX" + +#: ../src/libs/geotagging.c:1838 +msgid "select a GPX track file..." +msgstr "Seleziona un file tracciato GPX..." + +#: ../src/libs/geotagging.c:1855 +msgid "" +"list of track segments in the GPX file, for each segment:\n" +"- the start date/time in local time (LT)\n" +"- the number of track points\n" +"- the number of matching images based on images date/time, offset and time " +"zone\n" +"- more detailed time information hovering the row" +msgstr "" +"Lista dei tracciati nel file GPX, per ogni segmento:\n" +"- la data/ora di inizio nell'orario locale (LT)\n" +"- il numero di punti del tracciato\n" +"- il numero di immagini corrispondenti sulla base della data/ora delle " +"immagini, compensazione e fuso orario\n" +"- informazioni sul tempo più dettagliate passando sopra la riga" + +#: ../src/libs/geotagging.c:1894 +msgid "preview images" +msgstr "Anteprima immagini" + +#: ../src/libs/geotagging.c:1899 +msgid "show on map matching images" +msgstr "Mostra sulla mappa le immagini corrispondenti" + +#: ../src/libs/geotagging.c:1902 +msgid "select images" +msgstr "Seleziona immagini" + +#: ../src/libs/geotagging.c:1903 +msgid "select matching images" +msgstr "Seleziona le immagini corrispondenti" + +#: ../src/libs/geotagging.c:1911 +msgid "number of matching images versus selected images" +msgstr "Numero di immagini corrispondenti contro immagini selezionate" + +#: ../src/libs/histogram.c:110 +msgid "monochromatic" +msgstr "Monocromatico" + +#: ../src/libs/histogram.c:111 +msgid "analogous" +msgstr "Analogo" + +#: ../src/libs/histogram.c:112 +msgid "analogous complementary" +msgstr "Complementare analogo" + +#: ../src/libs/histogram.c:113 +msgid "complementary" +msgstr "Complementare" + +#: ../src/libs/histogram.c:114 +msgid "split complementary" +msgstr "Separazione complementare" + +#: ../src/libs/histogram.c:115 +msgid "dyad" +msgstr "Diade" + +#: ../src/libs/histogram.c:116 +msgid "triad" +msgstr "Triade" + +#: ../src/libs/histogram.c:117 +msgid "tetrad" +msgstr "Tetrade" + +#: ../src/libs/histogram.c:123 +msgid "vectorscope" +msgstr "Vettorscopio" + +#: ../src/libs/histogram.c:124 +msgid "waveform" +msgstr "Forma d'onda" + +#: ../src/libs/histogram.c:125 +msgid "RGB parade" +msgstr "Parata RGB" + +#: ../src/libs/histogram.c:126 ../src/libs/histogram.c:2622 +msgid "histogram" +msgstr "Istogramma" + +#: ../src/libs/histogram.c:218 +msgid "scopes" +msgstr "Ambiti" + +#: ../src/libs/histogram.c:757 +msgid "" +"unsupported vectorscope profile selected, it will be replaced with linear " +"Rec2020" +msgstr "" +"E' stato selezionato un profilo Vettorscopio non supportato, verrà " +"sostituito dal Rec2020 lineare" + +#: ../src/libs/histogram.c:1715 +msgid "scroll to coarse-rotate" +msgstr "usare la rotella del mouse per ruotare grossolanamente" + +#: ../src/libs/histogram.c:1716 +msgid "ctrl+scroll to fine rotate" +msgstr "ctrl+rotella per ruotare accuratamente" + +#: ../src/libs/histogram.c:1717 +msgid "shift+scroll to change width" +msgstr "Maiusc+rotella per modificare la larghezza" + +#: ../src/libs/histogram.c:1718 +msgid "alt+scroll to cycle" +msgstr "alt+rotella per ciclare" + +#: ../src/libs/histogram.c:1732 +msgid "drag to change black point" +msgstr "trascinare per modificare il punto di nero" + +#: ../src/libs/histogram.c:1733 ../src/libs/histogram.c:1740 +msgid "double-click resets" +msgstr "doppio click per resettare" + +#: ../src/libs/histogram.c:1739 +msgid "drag to change exposure" +msgstr "trascinare per modificare l'esposizione" + +#: ../src/libs/histogram.c:1923 ../src/libs/histogram.c:1965 +msgid "set scale to linear" +msgstr "Imposta la scala a Lineare" + +#: ../src/libs/histogram.c:1928 ../src/libs/histogram.c:1970 +msgid "set scale to logarithmic" +msgstr "Imposta la scala a Logaritmica" + +#: ../src/libs/histogram.c:1946 +msgid "set scope to vertical" +msgstr "Impostare l'ambito a verticale" + +#: ../src/libs/histogram.c:1951 +msgid "set scope to horizontal" +msgstr "Impostare l'ambito a orizzontale" + +#: ../src/libs/histogram.c:1980 +msgid "set view to AzBz" +msgstr "Imposta la vista su AzBz" + +#: ../src/libs/histogram.c:1986 +msgid "set view to RYB" +msgstr "Imposta la vista a RYB" + +#: ../src/libs/histogram.c:1992 +msgid "set view to u*v*" +msgstr "Imposta la vista a u*v*" + +#: ../src/libs/histogram.c:2625 ../src/libs/histogram.c:2691 +msgid "cycle histogram modes" +msgstr "Sfoglia modalità istogramma" + +#: ../src/libs/histogram.c:2630 ../src/libs/histogram.c:2693 +msgid "hide histogram" +msgstr "Nascondi istogramma" + +#: ../src/libs/histogram.c:2696 ../src/libs/histogram.c:2729 +msgid "switch histogram view" +msgstr "passa a vista istogramma" + +#: ../src/libs/histogram.c:2704 +msgid "toggle blue channel" +msgstr "alterna canale blu" + +#: ../src/libs/histogram.c:2706 ../src/libs/histogram.c:2715 +#: ../src/libs/histogram.c:2724 +msgid "toggle colors" +msgstr "alterna colori" + +#: ../src/libs/histogram.c:2713 +msgid "toggle green channel" +msgstr "alterna canale verde" + +#: ../src/libs/histogram.c:2722 +msgid "toggle red channel" +msgstr "alterna canale rosso" + +#: ../src/libs/histogram.c:2734 +msgid "cycle vectorscope types" +msgstr "cicla i tipi del vettorscopio" + +#: ../src/libs/histogram.c:2745 +msgid "color harmonies" +msgstr "armonie colore" + +#: ../src/libs/histogram.c:2759 +msgid "cycle color harmonies" +msgstr "cicla armonie colore" + +#: ../src/libs/history.c:127 +msgid "compress history stack" +msgstr "Comprimi coda di sviluppo" + +#: ../src/libs/history.c:128 +msgid "" +"create a minimal history stack which produces the same image\n" +"ctrl+click to truncate history to the selected item" +msgstr "" +"Crea una coda di sviluppo minimale che produce la stessa immagine\n" +"Ctrl+click per troncare la coda di sviluppo dell'elemento selezionato" + +#: ../src/libs/history.c:139 +msgid "create a style from the current history stack" +msgstr "Crea uno stile dall'attuale coda di sviluppo" + +#: ../src/libs/history.c:141 +msgid "create style from history" +msgstr "Crea uno stile dalla coda di sviluppo" + +#: ../src/libs/history.c:212 +msgid "always-on module" +msgstr "Moduli sempre attivi" + +#: ../src/libs/history.c:218 +msgid "default enabled module" +msgstr "Modulo abilitato in modo predefinito" + +#: ../src/libs/history.c:225 +msgid "deprecated module" +msgstr "Moduli deprecati" + +#: ../src/libs/history.c:945 +msgid "colorspace" +msgstr "Spazio colore" + +#: ../src/libs/history.c:947 +msgid "mask mode" +msgstr "Modalità maschera" + +#: ../src/libs/history.c:949 +msgid "blend mode" +msgstr "Modalità di fusione" + +#: ../src/libs/history.c:951 +msgid "blend operation" +msgstr "Fusione operazione" + +#: ../src/libs/history.c:953 +msgid "blend fulcrum" +msgstr "Fulcro fusione" + +#: ../src/libs/history.c:961 +msgid "mask blur" +msgstr "Sfocatura maschera" + +#: ../src/libs/history.c:964 +msgid "raster mask instance" +msgstr "Istanza maschera raster" + +#: ../src/libs/history.c:965 +msgid "raster mask id" +msgstr "ID maschera raster" + +#: ../src/libs/history.c:966 +msgid "invert mask" +msgstr "Inverti la maschera" + +#: ../src/libs/history.c:971 +msgid "drawn mask polarity" +msgstr "Polarità maschera disegnata" + +#: ../src/libs/history.c:975 +#, c-format +msgid "a drawn mask was added" +msgstr "E' stata aggiunta una maschera disegnata" + +#: ../src/libs/history.c:977 +#, c-format +msgid "the drawn mask was removed" +msgstr "La maschera disegnata è stata rimossa" + +#: ../src/libs/history.c:978 +#, c-format +msgid "the drawn mask was changed" +msgstr "La maschera disegnata è stata modificata" + +#: ../src/libs/history.c:1010 +msgid "parametric output mask:" +msgstr "Output maschera parametrica:" + +#: ../src/libs/history.c:1011 +msgid "parametric input mask:" +msgstr "Input maschera parametrica:" + +#: ../src/libs/history.c:1322 +msgid "delete image's history?" +msgstr "Eliminare la cronologia dell'immagine?" + +#: ../src/libs/history.c:1323 +msgid "do you really want to clear history of current image?" +msgstr "" +"Vuoi veramente cancellare la coda di sviluppo dell'immagine selezionata?" + +#: ../src/libs/image.c:74 +msgid "actions on selection" +msgstr "Azioni sulla selezione" + +#: ../src/libs/image.c:302 +msgid "delete (trash)" +msgstr "Elimina (cestino)" + +#: ../src/libs/image.c:305 +msgid "physically delete from disk (using trash if possible)" +msgstr "Elimina fisicamente dal disco (usando il cestino se possibile)" + +#: ../src/libs/image.c:306 +msgid "physically delete from disk immediately" +msgstr "Elimina fisicamente dal disco" + +#: ../src/libs/image.c:506 ../src/libs/modulegroups.c:3813 +#: ../src/libs/styles.c:880 +msgid "remove" +msgstr "Rimuovi" + +#: ../src/libs/image.c:508 +msgid "remove images from the image library, without deleting" +msgstr "Rimuove le immagini dalla libreria delle immagini, senza eliminarle" + +#: ../src/libs/image.c:517 +msgid "move..." +msgstr "Sposta..." + +#: ../src/libs/image.c:519 +msgid "move to other folder" +msgstr "Sposta in un'altra cartella" + +#: ../src/libs/image.c:522 +msgid "copy..." +msgstr "Copia..." + +#: ../src/libs/image.c:524 +msgid "copy to other folder" +msgstr "Copia in un'altra cartella" + +#: ../src/libs/image.c:528 +msgid "create HDR" +msgstr "Crea HDR" + +#: ../src/libs/image.c:530 +msgid "create a high dynamic range image from selected shots" +msgstr "Crea HDR dagli scatti selezionati" + +#: ../src/libs/image.c:535 +msgid "add a duplicate to the image library, including its history stack" +msgstr "" +"Aggiungi un duplicato alla libreria delle immagini, includendo la coda di " +"sviluppo" + +#: ../src/libs/image.c:542 ../src/libs/image.c:547 +msgid "rotate selected images 90 degrees CCW" +msgstr "Ruota le immagini selezionate di 90° orari" + +#: ../src/libs/image.c:553 ../src/libs/image.c:558 +msgid "rotate selected images 90 degrees CW" +msgstr "Ruota le immagini selezionate di 90° orari" + +#: ../src/libs/image.c:561 +msgid "reset rotation" +msgstr "Ripristina rotazione" + +#: ../src/libs/image.c:563 +msgid "reset rotation to EXIF data" +msgstr "Ripristina rotazione ai dati Exif" + +#: ../src/libs/image.c:566 +msgid "copy locally" +msgstr "Copia localmente" + +#: ../src/libs/image.c:568 +msgid "copy the image locally" +msgstr "Copia l'immagine localmente" + +#: ../src/libs/image.c:572 +msgid "resync local copy" +msgstr "Risincronizza le copie locali" + +#: ../src/libs/image.c:574 +msgid "synchronize the image's XMP and remove the local copy" +msgstr "Sincronizza i file XMP e rimuovi le copie locali delle immagini" + +#: ../src/libs/image.c:578 +msgctxt "selected images action" +msgid "group" +msgstr "Raggruppa" + +#: ../src/libs/image.c:580 +msgid "add selected images to expanded group or create a new one" +msgstr "" +"Aggiungi le immagini selezionate ad un gruppo esteso oppure creane uno nuovo" + +#: ../src/libs/image.c:584 +msgid "ungroup" +msgstr "Separa" + +#: ../src/libs/image.c:586 +msgid "remove selected images from the group" +msgstr "Elimina le immagini selezionate dal gruppo" + +#: ../src/libs/image.c:598 +msgid "select ratings metadata" +msgstr "Seleziona i metadati di classificazione" + +#: ../src/libs/image.c:605 +msgid "colors" +msgstr "Colori" + +#: ../src/libs/image.c:607 +msgid "select colors metadata" +msgstr "Seleziona i metadati colore" + +#: ../src/libs/image.c:616 +msgid "select tags metadata" +msgstr "Seleziona metadati etichette" + +#: ../src/libs/image.c:625 +msgid "select geo tags metadata" +msgstr "Seleziona metadati geografici" + +#: ../src/libs/image.c:636 +msgid "select darktable metadata (from metadata editor module)" +msgstr "Seleziona i metadati di darktabe (dal modulo di modifica metadati)" + +#: ../src/libs/image.c:649 +msgid "set the selected image as source of metadata" +msgstr "Imposta l'immagine selezionata come origine dei metadati" + +#: ../src/libs/image.c:656 +msgid "paste selected metadata on selected images" +msgstr "Incolla i metadati selezionati sulle immagini selezionate" + +#: ../src/libs/image.c:661 +msgid "clear selected metadata on selected images" +msgstr "Cancella metadati nelle immagini selezionate" + +#: ../src/libs/image.c:667 +msgid "how to handle existing metadata" +msgstr "Come gestire i metadati esistenti" + +#: ../src/libs/image.c:670 +msgid "merge" +msgstr "Unisci" + +#: ../src/libs/image.c:675 +msgid "update image information to match changes to file" +msgstr "" +"Aggiorna le informazioni dell'immagine per riflettere i cambiamenti del file" + +#: ../src/libs/image.c:680 +msgid "set selection as monochrome images and activate monochrome workflow" +msgstr "" +"Imposta la selezione per immagini monocromatiche e avvia il flusso " +"monocromatico" + +#: ../src/libs/image.c:684 +msgid "set selection as color images" +msgstr "Imposta la selezione per immagini a colori" + +#: ../src/libs/image.c:696 +msgid "duplicate virgin" +msgstr "Duplicato vergine" + +#: ../src/libs/import.c:264 +#, c-format +msgid "device \"%s\" connected on port \"%s\"." +msgstr "Dispositivo \"%s\" connesso sulla porta \"%s\"." + +#: ../src/libs/import.c:274 ../src/libs/import.c:335 ../src/libs/import.c:1701 +msgid "copy & import from camera" +msgstr "Copia e importa dalla fotocamera" + +#: ../src/libs/import.c:285 ../src/libs/import.c:337 +msgid "tethered shoot" +msgstr "Scatto in tethering" + +#: ../src/libs/import.c:292 ../src/libs/import.c:338 +msgid "unmount camera" +msgstr "Smonta la fotocamera" + +#: ../src/libs/import.c:313 +msgid "" +"camera is locked by another application\n" +"make sure it is no longer mounted\n" +"or quit the locking application" +msgstr "" +"La fotocamera è bloccata da un'altra applicazione\n" +"assicurati che non sia più collegata\n" +"o chiudi l'applicazione che la blocca" + +#: ../src/libs/import.c:316 +msgid "tethering and importing is disabled for this camera" +msgstr "Tethering e importazione sono disabilitati per questa fotocamera" + +#: ../src/libs/import.c:318 ../src/libs/import.c:336 +msgid "mount camera" +msgstr "Monta la fotocamera" + +#: ../src/libs/import.c:754 +#, c-format +msgid "%d image out of %d selected" +msgid_plural "%d images out of %d selected" +msgstr[0] "%d immagine nuova delle %d selezionate" +msgstr[1] "%d immagini nuove delle %d selezionate" + +#: ../src/libs/import.c:1046 +msgid "you can't delete the selected place" +msgstr "Non puoi cancellare il luogo selezionato" + +#: ../src/libs/import.c:1160 +msgid "choose the root of the folder tree below" +msgstr "Prendi la radice dell'albero delle cartelle sotto" + +#: ../src/libs/import.c:1163 +msgid "places" +msgstr "Luoghi" + +#: ../src/libs/import.c:1169 +msgid "restore all default places you have removed by right-click" +msgstr "" +"Ripristina tutti i luoghi predefiniti che hai rimosso con il click destro" + +#: ../src/libs/import.c:1174 +msgid "" +"add a custom place\n" +"\n" +"right-click on a place to remove it" +msgstr "" +"Aggiungi un luogo personalizzato\n" +"\n" +"click destro sul luogo per rimuoverlo" + +#: ../src/libs/import.c:1181 +msgid "you can add custom places using the plus icon" +msgstr "Puoi aggiungere luoghi personalizzati usando l'icona \"+\"" + +#: ../src/libs/import.c:1206 +msgid "select a folder to see the content" +msgstr "Seleziona una cartella per vedere il contenuto" + +#: ../src/libs/import.c:1209 +msgid "folders" +msgstr "Cartelle" + +#: ../src/libs/import.c:1279 +msgid "home" +msgstr "Casa" + +#: ../src/libs/import.c:1291 +msgid "pictures" +msgstr "Immagini" + +#: ../src/libs/import.c:1557 +msgid "mark already imported pictures" +msgstr "Marca le immagini già importate" + +#: ../src/libs/import.c:1571 +msgid "modified" +msgstr "Modificato" + +#: ../src/libs/import.c:1576 +msgid "file 'modified date/time', may be different from 'Exif date/time'" +msgstr "" +"La 'data/ora di modifica' del file può esser differente dalla 'data/ora Exif'" + +#: ../src/libs/import.c:1588 +msgid "show/hide thumbnails" +msgstr "Mostra/nascondi miniature" + +#: ../src/libs/import.c:1658 +msgid "naming rules" +msgstr "Modelli nominazione" + +#: ../src/libs/import.c:1699 +msgid "add to library" +msgstr "Aggiungi alla libreria" + +#: ../src/libs/import.c:1700 +msgid "copy & import" +msgstr "Copia e importa" + +#: ../src/libs/import.c:1740 +msgid "select new" +msgstr "Seleziona nuovo" + +#: ../src/libs/import.c:1783 +msgid "please wait while prefetching the list of images from camera..." +msgstr "Attendere la prelettura della lista delle immagini dalla fotocamera..." + +#: ../src/libs/import.c:1923 +msgid "invalid override date/time format" +msgstr "Formato data/ora di sovrascrittura invalido" + +#: ../src/libs/import.c:1987 +msgid "import base directory" +msgstr "Importa la directory di base" + +#: ../src/libs/import.c:1988 +msgid "" +"before copying images to the darktable base directory make sure it is " +"defined as you prefer.\n" +"further information can be found in the darktable manual.\n" +"\n" +"inspect darktable preferences -> import.\n" +"check and possibly correct the 'base directory naming pattern'" +msgstr "" +"prima di copare le immagini nella directory di base di darktable, " +"assicurarsi che sia definita come si preferise.\n" +"Informazioni aggiuntive possono essere trovate nel manuale di darktable.\n" +"\n" +"Ispezionare le preferenze di darktable -> import.\n" +"Controlla ed eventualmente correggere 'Modello base nominazione cartella'" + +#: ../src/libs/import.c:1992 +msgid "_come back & check" +msgstr "_torna indietro e controlla" + +#: ../src/libs/import.c:1992 +msgid "_understood & done" +msgstr "_Ho capito & Chiudi" + +#: ../src/libs/import.c:2058 +msgid "add to library..." +msgstr "Aggiungi alla libreria..." + +#: ../src/libs/import.c:2059 +msgid "add existing images to the library" +msgstr "Aggiunge le immagini presenti alla libreria" + +#: ../src/libs/import.c:2065 +msgid "copy & import..." +msgstr "Copia e importa..." + +#: ../src/libs/import.c:2066 +msgid "" +"copy and optionally rename images before adding them to the library\n" +"patterns can be defined to rename the images and specify the destination " +"folders" +msgstr "" +"Copia ed eventualmente rinomina le immagini prima di aggiungerle alla " +"libreria\n" +"Possono esser definiti dei modelli per rinominare le immagini e specificare " +"la cartella di destinazione" + +#. collapsible section +#: ../src/libs/import.c:2089 +msgid "parameters" +msgstr "Parametri" + +#: ../src/libs/ioporder.c:202 +msgid "v3.0 for RAW input (default)" +msgstr "v3.0 per input RAW (predefinito)" + +#: ../src/libs/ioporder.c:208 +msgid "v3.0 for JPEG/non-RAW input" +msgstr "v3.0 per JPEG/input non-RAW" + +#: ../src/libs/lib.c:376 +msgid "deleting preset for obsolete module" +msgstr "Cancellando preimpostazioni per il modulo obsoleto" + +#: ../src/libs/lib.c:542 +msgid "manage presets..." +msgstr "Gestione delle preimpostazioni..." + +#: ../src/libs/lib.c:567 +msgid "nothing to save" +msgstr "Niente da salvare" + +#: ../src/libs/lib.c:1106 +msgid "show module" +msgstr "Visualizza modulo" + +#: ../src/libs/lib.c:1431 +msgid "utility module" +msgstr "Modulo utilità" + +#: ../src/libs/live_view.c:107 +msgid "live view" +msgstr "Visione reale" + +#: ../src/libs/live_view.c:289 ../src/libs/live_view.c:290 +msgid "toggle live view" +msgstr "Passa alla visione reale" + +#. TODO: see _zoom_live_view_clicked +#: ../src/libs/live_view.c:291 ../src/libs/live_view.c:292 +msgid "zoom live view" +msgstr "Ingrandisci visione reale" + +#: ../src/libs/live_view.c:295 +msgid "flip live view horizontally" +msgstr "Rifletti la visione reale orizzontalmente" + +#: ../src/libs/live_view.c:301 +msgid "move focus point in (big steps)" +msgstr "Sposta all'interno il punto di messa a fuoco (a grandi passi)" + +#: ../src/libs/live_view.c:302 +msgid "move focus point in (small steps)" +msgstr "Sposta all'interno il punto di messa a fuoco (a piccoli passi)" + +#. TODO icon not centered +#: ../src/libs/live_view.c:303 +msgid "run autofocus" +msgstr "Esegui l'autofocus" + +#: ../src/libs/live_view.c:304 +msgid "move focus point out (small steps)" +msgstr "Sposta all'esterno il punto di messa a fuoco (a piccoli passi)" + +#. TODO same here +#: ../src/libs/live_view.c:305 +msgid "move focus point out (big steps)" +msgstr "Sposta all'esterno il punto di messa a fuoco (a grandi passi)" + +#: ../src/libs/live_view.c:310 +msgid "overlay" +msgstr "Sovrapponi" + +#: ../src/libs/live_view.c:312 +msgid "selected image" +msgstr "Immagine selezionata" + +#: ../src/libs/live_view.c:314 +msgid "overlay another image over the live view" +msgstr "Sovrapponi un'altra immagine sopra la vista dal vivo" + +#: ../src/libs/live_view.c:323 +msgid "enter image id of the overlay manually" +msgstr "Inserisci manualmente id immagine della sovrapposizione" + +#: ../src/libs/live_view.c:334 +msgid "overlay mode" +msgstr "Modalità sovrapposizione" + +#: ../src/libs/live_view.c:336 +msgctxt "blendmode" +msgid "xor" +msgstr "Xor" + +#: ../src/libs/live_view.c:337 +msgctxt "blendmode" +msgid "add" +msgstr "Aggiungi" + +#: ../src/libs/live_view.c:338 +msgctxt "blendmode" +msgid "saturate" +msgstr "Satura" + +#: ../src/libs/live_view.c:344 +msgctxt "blendmode" +msgid "color dodge" +msgstr "Colore scherma" + +#: ../src/libs/live_view.c:345 +msgctxt "blendmode" +msgid "color burn" +msgstr "Colore brucia" + +#: ../src/libs/live_view.c:346 +msgctxt "blendmode" +msgid "hard light" +msgstr "Luce intensa" + +#: ../src/libs/live_view.c:347 +msgctxt "blendmode" +msgid "soft light" +msgstr "luce soffusa" + +#: ../src/libs/live_view.c:349 +msgctxt "blendmode" +msgid "exclusion" +msgstr "Esclusione" + +#: ../src/libs/live_view.c:350 +msgctxt "blendmode" +msgid "HSL hue" +msgstr "Tonalità HSL" + +#: ../src/libs/live_view.c:351 +msgctxt "blendmode" +msgid "HSL saturation" +msgstr "Saturazione HSL" + +#: ../src/libs/live_view.c:352 +msgctxt "blendmode" +msgid "HSL color" +msgstr "Colore HSL" + +#: ../src/libs/live_view.c:353 +msgctxt "blendmode" +msgid "HSL luminosity" +msgstr "Luminosità HSL" + +#: ../src/libs/live_view.c:354 +msgid "mode of the overlay" +msgstr "Modalità di sovrapposizione" + +#: ../src/libs/live_view.c:360 +msgid "split line" +msgstr "Linea di divisione" + +#: ../src/libs/live_view.c:363 +msgid "only draw part of the overlay" +msgstr "Disegnare solo la parte della sovrapposizione" + +#: ../src/libs/location.c:100 +msgid "find location" +msgstr "Trova località" + +#: ../src/libs/map_locations.c:36 +msgid "locations" +msgstr "Luoghi" + +#: ../src/libs/map_locations.c:234 +msgid "new sub-location" +msgstr "Nuova sotto-località" + +#: ../src/libs/map_locations.c:238 ../src/libs/map_locations.c:286 +#: ../src/libs/map_locations.c:960 +msgid "new location" +msgstr "Nuova località" + +#: ../src/libs/map_locations.c:587 +#, c-format +msgid "location name '%s' already exists" +msgstr "Località con nome '%s' già esistente" + +#: ../src/libs/map_locations.c:778 +msgid "edit location" +msgstr "Modifica località" + +#: ../src/libs/map_locations.c:781 +msgid "delete location" +msgstr "Cancella località" + +#: ../src/libs/map_locations.c:791 +msgid "update filmstrip" +msgstr "Aggiorna provini" + +#: ../src/libs/map_locations.c:798 +msgid "go to collection (lighttable)" +msgstr "Vai alla raccolta (Tavolo Luminoso)" + +#: ../src/libs/map_locations.c:844 +msgid "" +"terminate edit (press enter or escape) before selecting another location" +msgstr "" +"Termina la modifica (premi Invio o Esc) prima di selezionare una nuova " +"località" + +#: ../src/libs/map_locations.c:931 +msgid "" +"list of user locations,\n" +"click to show or hide a location on the map:\n" +" - wheel scroll inside the shape to resize it\n" +" - <shift> or <ctrl> scroll to modify the width or the height\n" +" - click inside the shape and drag it to change its position\n" +" - ctrl+click to move an image from inside the location\n" +"ctrl+click to edit a location name\n" +" - a pipe '|' symbol breaks the name into several levels\n" +" - to remove a group of locations clear its name\n" +" - press enter to validate the new name, escape to cancel the edit\n" +"right-click for other actions: delete location and go to collection" +msgstr "" +"Lista dei luoghi utente,\n" +"clicca per mostrare o nascondere un luogo sulla mappa:\n" +" - rotella del mouse dentro la forma per ridimensionarla\n" +" - <maiusc> o <ctrl> + rotella per modificare la larghezza o l'altezza\n" +" - click e trascina la forma per moficare la sua posizione\n" +" - ctrl+click per spostare un'immagine da dentro un luogo\n" +"ctrl+click per modificare il nome del luogo\n" +" - il simbolo pipe '|' spezza il nome in più livelli\n" +" - pulire il nome di un gruppo di luoghi per rimuoverlo\n" +" - premi invip per validare il nuovo nome, esc per annullare la modifica\n" +"click di destro per altre azioni: elimina il luogo e vai alla collezione" + +#: ../src/libs/map_locations.c:957 +msgid "" +"select the shape of the location's limits on the map, circle or rectangle\n" +"or even polygon if available (select first a polygon place in 'find " +"location' module)" +msgstr "" +"Seleziona la forma del limite della località sulla mappa, cerchio o " +"rettangolo\n" +"o è disponibile il poligono (prima seleziona il luogo del poligono nel " +"modulo 'trova località')" + +#: ../src/libs/map_locations.c:961 +msgid "add a new location on the center of the visible map" +msgstr "Aggiungi una nuova località al centro della mappa visibile" + +#: ../src/libs/map_locations.c:965 +msgid "show all" +msgstr "Mostra tutto" + +#: ../src/libs/map_locations.c:968 +msgid "show all locations which are on the visible map" +msgstr "Mostra tutte le località che si trovano sulla mappa visibile" + +#: ../src/libs/map_settings.c:39 +msgid "map settings" +msgstr "Impostazioni mappa" + +#: ../src/libs/map_settings.c:89 +msgid "map source" +msgstr "Mappa sorgente" + +#: ../src/libs/map_settings.c:90 +msgid "select the source of the map. some entries might not work" +msgstr "Scegli la mappa sorgente. Alcune potrebbero non funzionare" + +#: ../src/libs/masks.c:108 +msgid "feather" +msgstr "Sfumatura" + +#: ../src/libs/masks.c:357 +#, c-format +msgid "group #%d" +msgstr "Raggruppa #%d" + +#: ../src/libs/masks.c:1097 +msgid "duplicate this shape" +msgstr "Duplica questa forma" + +#: ../src/libs/masks.c:1101 +msgid "delete this shape" +msgstr "Elimina questa forma" + +#: ../src/libs/masks.c:1107 +msgid "delete group" +msgstr "Elimina gruppo" + +#: ../src/libs/masks.c:1114 +msgid "remove from group" +msgstr "Rimuovi dal gruppo" + +#: ../src/libs/masks.c:1122 +msgid "group the forms" +msgstr "Raggruppa le forme" + +#: ../src/libs/masks.c:1130 +msgid "use inverted shape" +msgstr "Usa forme invertite" + +#: ../src/libs/masks.c:1134 +msgid "mode: union" +msgstr "Modalità: unione" + +#: ../src/libs/masks.c:1136 +msgid "mode: intersection" +msgstr "Modalità: intersezione" + +#: ../src/libs/masks.c:1138 +msgid "mode: difference" +msgstr "Modalità: differenza" + +#: ../src/libs/masks.c:1140 +msgid "mode: sum" +msgstr "Modo: somma" + +#: ../src/libs/masks.c:1142 +msgid "mode: exclusion" +msgstr "Modalità: esclusione" + +#: ../src/libs/masks.c:1158 +msgid "cleanup unused shapes" +msgstr "Elimina forme non in uso" + +#: ../src/libs/masks.c:1807 +msgid "created shapes" +msgstr "Forme create" + +#: ../src/libs/masks.c:1900 ../src/libs/masks.c:1915 ../src/libs/masks.c:1929 +#: ../src/libs/masks.c:1933 +msgid "properties" +msgstr "Proprietà" + +#: ../src/libs/masks.c:1903 +msgid "no shapes selected" +msgstr "Nessuna forma selezionata" + +#: ../src/libs/masks.c:1929 +msgid "pressure" +msgstr "pressione" + +#: ../src/libs/masks.c:1933 +msgid "smoothing" +msgstr "dolcezza" + +#: ../src/libs/metadata.c:60 +msgid "metadata editor" +msgstr "Editor metadati" + +#: ../src/libs/metadata.c:459 ../src/libs/metadata_view.c:1219 +msgid "metadata settings" +msgstr "Impostazioni metadati" + +#: ../src/libs/metadata.c:461 ../src/libs/metadata_view.c:1221 +msgid "_default" +msgstr "_Predefinito" + +#: ../src/libs/metadata.c:516 ../src/libs/metadata_view.c:1267 +msgid "visible" +msgstr "Visibile" + +#: ../src/libs/metadata.c:524 +msgid "" +"tick if the corresponding metadata is of interest for you\n" +"it will be visible from metadata editor, collection and import module\n" +"it will be also exported" +msgstr "" +"Seleziona se i metadati corrispondenti sono di tuo interesse.\n" +"Sarà visibile dal gestore dei metadati, dalle collezioni e dal modulo di " +"importazione\n" +"Verrà anche esportato" + +#: ../src/libs/metadata.c:529 ../src/libs/tagging.c:1705 +#: ../src/libs/tagging.c:1854 +msgid "private" +msgstr "Privato" + +#: ../src/libs/metadata.c:534 +msgid "" +"tick if you want to keep this information private (not exported with images)" +msgstr "" +"Attiva il flag se vuoi mantenere private queste informazioni (non verranno " +"esportate con le immagini)" + +#: ../src/libs/metadata.c:691 +msgid "" +"metadata text\n" +"ctrl+enter inserts a new line (caution, may not be compatible with standard " +"metadata)\n" +"if <leave unchanged> selected images have different metadata\n" +"in that case, right-click gives the possibility to choose one of them\n" +"escape to exit the popup window" +msgstr "" +"test metadata\n" +"ctrl+invio aggiunge una nuova riga (attenzione, potrebbe non essere " +"compatibile con i metadata standard)\n" +"Se <lascia inalterato> le immagini selezionate hanno metadati diversi\n" +"in questo caso, il click di destro dà la possibilità di scegliere tra uno di " +"loro\n" +"esc per uscire la finestra di popup" + +#: ../src/libs/metadata.c:736 +msgid "write metadata for selected images" +msgstr "Scrivi metadata nelle immagini selezionate" + +#: ../src/libs/metadata.c:737 +msgid "cancel" +msgstr "Cancellare" + +#: ../src/libs/metadata.c:738 +msgid "ignore changed metadata" +msgstr "Ignora i metadati cambiati" + +#. <title>\0<description>\0<rights>\0<creator>\0<publisher> +#: ../src/libs/metadata.c:793 +msgid "CC BY" +msgstr "CC BY" + +#: ../src/libs/metadata.c:794 +msgid "Creative Commons Attribution (CC BY)" +msgstr "(CC BY-NC-ND) Creative Commons - Attribuzione" + +#: ../src/libs/metadata.c:795 +msgid "CC BY-SA" +msgstr "CC BY-SA" + +#: ../src/libs/metadata.c:796 +msgid "Creative Commons Attribution-ShareAlike (CC BY-SA)" +msgstr "" +"(CC BY-SA) Creative Commons - Attribuzione – Condividi allo stesso modo" + +#: ../src/libs/metadata.c:797 +msgid "CC BY-ND" +msgstr "CC BY-ND" + +#: ../src/libs/metadata.c:798 +msgid "Creative Commons Attribution-NoDerivs (CC BY-ND)" +msgstr "(CC BY-ND) Creative Commons - Attribuzione – Non Opere Derivate" + +#: ../src/libs/metadata.c:799 +msgid "CC BY-NC" +msgstr "CC BY-NC" + +#: ../src/libs/metadata.c:800 +msgid "Creative Commons Attribution-NonCommercial (CC BY-NC)" +msgstr "(CC BY-NC) Creative Commons - Attribuzione – Non Commerciale" + +#: ../src/libs/metadata.c:801 +msgid "CC BY-NC-SA" +msgstr "CC BY-NC-SA" + +#: ../src/libs/metadata.c:802 +msgid "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" +msgstr "" +"(CC BY-NC-SA) Creative Commons - Attribuzione – Non Commerciale – Condividi" +" allo stesso modo" + +#: ../src/libs/metadata.c:803 +msgid "CC BY-NC-ND" +msgstr "CC BY-NC-ND" + +#: ../src/libs/metadata.c:804 +msgid "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" +msgstr "" +"(CC BY-NC-ND) Creative Commons - Attribuzione – Non Commerciale – Non Opere" +" Derivate" + +#: ../src/libs/metadata.c:805 ../src/libs/metadata.c:806 +msgid "all rights reserved" +msgstr "Tutti i diritti riservati" + +#. internal +#: ../src/libs/metadata_view.c:125 +msgid "filmroll" +msgstr "Rullino" + +#: ../src/libs/metadata_view.c:127 +msgid "group id" +msgstr "Identificatore gruppo" + +#: ../src/libs/metadata_view.c:129 +msgid "version" +msgstr "Versione" + +#: ../src/libs/metadata_view.c:132 +msgid "import timestamp" +msgstr "Data e ora importazione" + +#: ../src/libs/metadata_view.c:133 +msgid "change timestamp" +msgstr "Modifica data e ora" + +#: ../src/libs/metadata_view.c:134 +msgid "export timestamp" +msgstr "Esporta data e ora" + +#: ../src/libs/metadata_view.c:135 +msgid "print timestamp" +msgstr "Stampa data e ora" + +#: ../src/libs/metadata_view.c:136 +msgid "flags" +msgstr "Etichette" + +#: ../src/libs/metadata_view.c:146 +msgid "35mm equiv focal length" +msgstr "Lunghezza focale equivalente a 35mm" + +#: ../src/libs/metadata_view.c:148 +msgid "focus distance" +msgstr "Distanza focale" + +#: ../src/libs/metadata_view.c:150 +msgid "datetime" +msgstr "Data e ora" + +#: ../src/libs/metadata_view.c:153 +msgid "export width" +msgstr "Esporta larghezza" + +#: ../src/libs/metadata_view.c:154 +msgid "export height" +msgstr "Esporta altezza" + +#: ../src/libs/metadata_view.c:162 +msgid "longitude" +msgstr "Longitudine" + +#: ../src/libs/metadata_view.c:163 +msgid "elevation" +msgstr "Altitudine" + +#: ../src/libs/metadata_view.c:167 +msgid "categories" +msgstr "Categorie" + +#: ../src/libs/metadata_view.c:174 +msgid "image information" +msgstr "Informazioni dell'immagine" + +#: ../src/libs/metadata_view.c:334 +msgid "unused/deprecated" +msgstr "Non usato/deprecato" + +#: ../src/libs/metadata_view.c:335 +msgid "LDR" +msgstr "LDR" + +#: ../src/libs/metadata_view.c:338 +msgid "marked for deletion" +msgstr "Contrassegnata per l'eliminazione" + +#: ../src/libs/metadata_view.c:339 +msgid "auto-applying presets applied" +msgstr "Applicata preimpostazione auto-applicante" + +#: ../src/libs/metadata_view.c:341 +msgid "has .txt" +msgstr "Ha .TXT" + +#: ../src/libs/metadata_view.c:342 +msgid "has .wav" +msgstr "Ha .WAV" + +#: ../src/libs/metadata_view.c:360 +#, c-format +msgid "image has %d star" +msgid_plural "image has %d stars" +msgstr[0] "L'immagine ha %d stella" +msgstr[1] "Le immagini hanno %d stelle" + +#: ../src/libs/metadata_view.c:436 +#, c-format +msgid "loader: %s" +msgstr "Caricatore: %s" + +#: ../src/libs/metadata_view.c:626 +msgid "<various values>" +msgstr "<various values>" + +#: ../src/libs/metadata_view.c:639 +#, c-format +msgid "" +"double-click to jump to film roll\n" +"%s" +msgstr "" +"Doppio click andare al rullino\n" +"%s" + +#: ../src/libs/metadata_view.c:731 +#, c-format +msgid "%+.2f EV" +msgstr "%+.2f WV" + +#: ../src/libs/metadata_view.c:737 ../src/libs/metadata_view.c:749 +#: ../src/libs/metadata_view.c:754 +#, c-format +msgid "%.1f mm" +msgstr "%.1f mm" + +#: ../src/libs/metadata_view.c:778 +#, c-format +msgid "infinity" +msgstr "Infinito" + +#: ../src/libs/metadata_view.c:782 +#, c-format +msgid "%.2f m" +msgstr "%.2f m" + +#: ../src/libs/metadata_view.c:1262 +msgid "" +"drag and drop one row at a time until you get the desired order\n" +"untick to hide metadata which are not of interest for you\n" +"if different settings are needed, use presets" +msgstr "" +"Trascina e rilascia una riga alla volta finché ottieni l'ordine desiderato\n" +"deseleziona per nascondere i metadati che non ti interessano\n" +"se sono necessarie impostazioni differenti, usa le preimpostazioni" + +#: ../src/libs/metadata_view.c:1423 +msgid "jump to film roll" +msgstr "Vai al rullino" + +#: ../src/libs/recentcollect.c:68 +msgid "recently used collections" +msgstr "Raccolte usate recentemente" + +#: ../src/libs/recentcollect.c:109 +msgid " and " +msgstr " e " + +#: ../src/libs/recentcollect.c:114 +msgid " or " +msgstr " o " + +#. case DT_LIB_COLLECT_MODE_AND_NOT: +#: ../src/libs/recentcollect.c:119 +msgid " but not " +msgstr " ma non " + +#: ../src/libs/recentcollect.c:226 +msgid "recent collections settings" +msgstr "Impostazioni raccolte recenti" + +#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1753 +msgid "workflow: scene-referred" +msgstr "Flusso: riferito alla scena" + +#: ../src/libs/modulegroups.c:45 +msgid "modules: deprecated" +msgstr "Moduli: deprecati" + +#: ../src/libs/modulegroups.c:48 +msgid "last modified layout" +msgstr "Ultima disposizione modificata" + +#: ../src/libs/modulegroups.c:192 +msgid "modulegroups" +msgstr "Moduli di gruppo" + +#. FIXME don't check here if on/off is enabled, because it depends on image (reload_defaults) +#. respond later to image changed signal +#: ../src/libs/modulegroups.c:307 ../src/libs/modulegroups.c:319 +#: ../src/libs/modulegroups.c:2411 ../src/libs/modulegroups.c:2413 +msgid "on-off" +msgstr "on-off" + +#: ../src/libs/modulegroups.c:501 ../src/libs/modulegroups.c:504 +msgid "" +"this quick access widget is disabled as there are multiple instances of this " +"module present. Please use the full module to access this widget..." +msgstr "" +"Questo widget di accesso rapido è disattivato in quanto sono presenti più " +"istanze di questo modulo. Usa il modulo completo per accedere a questo " +"widget..." + +#: ../src/libs/modulegroups.c:594 +msgid "(some features may only be available in the full module interface)" +msgstr "" +"(alcune caratteristiche potrebbero esser disponibili solo nell'interfaccia" +" completa del modulo)" + +#: ../src/libs/modulegroups.c:632 +#, c-format +msgid "go to the full version of the %s module" +msgstr "Vai alla versione completa del modulo %s" + +#: ../src/libs/modulegroups.c:1538 ../src/libs/modulegroups.c:1624 +#: ../src/libs/modulegroups.c:1660 ../src/libs/modulegroups.c:1710 +#: ../src/libs/modulegroups.c:1801 +msgctxt "modulegroup" +msgid "base" +msgstr "Base" + +#: ../src/libs/modulegroups.c:1557 +msgctxt "modulegroup" +msgid "tone" +msgstr "Tonalità" + +#: ../src/libs/modulegroups.c:1566 ../src/libs/modulegroups.c:1674 +#: ../src/libs/modulegroups.c:1724 +msgctxt "modulegroup" +msgid "color" +msgstr "Colore" + +#: ../src/libs/modulegroups.c:1582 ../src/libs/modulegroups.c:1682 +#: ../src/libs/modulegroups.c:1730 +msgctxt "modulegroup" +msgid "correct" +msgstr "Correggi" + +#: ../src/libs/modulegroups.c:1600 ../src/libs/modulegroups.c:1694 +#: ../src/libs/modulegroups.c:1742 ../src/libs/modulegroups.c:2305 +msgctxt "modulegroup" +msgid "effect" +msgstr "Effetti" + +#: ../src/libs/modulegroups.c:1618 +msgid "modules: all" +msgstr "Moduli: tutti" + +#: ../src/libs/modulegroups.c:1639 +msgctxt "modulegroup" +msgid "grading" +msgstr "Gradiente" + +#: ../src/libs/modulegroups.c:1647 ../src/libs/modulegroups.c:2309 +msgctxt "modulegroup" +msgid "effects" +msgstr "Effetti" + +#: ../src/libs/modulegroups.c:1655 +msgid "workflow: beginner" +msgstr "Flusso: principiante" + +#: ../src/libs/modulegroups.c:1704 +msgid "workflow: display-referred" +msgstr "Flusso: riferito allo schermo" + +#: ../src/libs/modulegroups.c:1757 +msgid "search only" +msgstr "Solo ricerca" + +#: ../src/libs/modulegroups.c:1763 ../src/libs/modulegroups.c:2074 +#: ../src/libs/modulegroups.c:2583 +msgctxt "modulegroup" +msgid "deprecated" +msgstr "Moduli deprecati" + +#: ../src/libs/modulegroups.c:1776 +msgid "previous config" +msgstr "Configurazione precedente" + +#: ../src/libs/modulegroups.c:1777 +msgid "previous layout" +msgstr "Disposizione precedente" + +#: ../src/libs/modulegroups.c:1781 +msgid "previous config with new layout" +msgstr "Configurazione precedente con la nuova disposizione" + +#: ../src/libs/modulegroups.c:1941 ../src/libs/modulegroups.c:2456 +#: ../src/libs/modulegroups.c:2468 +msgid "remove this widget" +msgstr "Rimuovi questo widget" + +#: ../src/libs/modulegroups.c:2091 ../src/libs/modulegroups.c:2331 +msgid "remove this module" +msgstr "Rimuovi modulo" + +#. does it belong to recommended modules ? +#: ../src/libs/modulegroups.c:2300 +msgid "base" +msgstr "Base" + +#: ../src/libs/modulegroups.c:2303 +msgid "tone" +msgstr "Tonalità" + +#: ../src/libs/modulegroups.c:2306 +msgid "technical" +msgstr "Tecnico" + +#: ../src/libs/modulegroups.c:2307 +msgid "grading" +msgstr "Gradiente" + +#: ../src/libs/modulegroups.c:2313 ../src/libs/modulegroups.c:2321 +msgid "add this module" +msgstr "Aggiungi questo modulo" + +#. show the submenu with all the modules +#: ../src/libs/modulegroups.c:2343 ../src/libs/modulegroups.c:2543 +msgid "all available modules" +msgstr "Tutti i moduli disponibili" + +#: ../src/libs/modulegroups.c:2351 +msgid "add module" +msgstr "Aggiungi modulo" + +#: ../src/libs/modulegroups.c:2356 +msgid "remove module" +msgstr "Rimuovi modulo" + +#: ../src/libs/modulegroups.c:2462 +msgid "header needed for other widgets" +msgstr "Intestazione necessaria per altri widget" + +#: ../src/libs/modulegroups.c:2478 ../src/libs/modulegroups.c:2485 +msgid "add this widget" +msgstr "Aggiungi questo widget" + +#: ../src/libs/modulegroups.c:2498 +msgid "currently invisible" +msgstr "Invisibile al momento" + +#: ../src/libs/modulegroups.c:2527 +msgid "add widget" +msgstr "Aggiuni widget" + +#: ../src/libs/modulegroups.c:2532 +msgid "remove widget" +msgstr "Rimuovi widget" + +#: ../src/libs/modulegroups.c:2637 +msgid "show all history modules" +msgstr "Mostra tutti i moduli della coda di sviluppo" + +#: ../src/libs/modulegroups.c:2640 ../src/libs/modulegroups.c:3836 +msgid "" +"show modules that are present in the history stack, regardless of whether or " +"not they are currently enabled" +msgstr "" +"Mostra i moduli che sono presenti nella coda di sviluppo, a prescindere che " +"siano attivati o meno" + +#: ../src/libs/modulegroups.c:2731 ../src/libs/modulegroups.c:2823 +msgid "" +"the following modules are deprecated because they have internal design " +"mistakes that can't be corrected and alternative modules that correct them.\n" +"they will be removed for new edits in the next release." +msgstr "" +"I seguenti moduli sono deprecati poiché hanno errori di progettazione " +"interna che non possono essere corretti, e moduli alternativi che li " +"correggono.\n" +"Verranno rimossi per le nuove elaborazioni nel prossimo rilascio." + +#: ../src/libs/modulegroups.c:2782 ../src/libs/modulegroups.c:2783 +msgid "quick access panel" +msgstr "Pannello di accesso rapido" + +#: ../src/libs/modulegroups.c:2793 +msgid "show only active modules" +msgstr "Mostra solo i moduli attivi" + +#: ../src/libs/modulegroups.c:2794 +msgid "active modules" +msgstr "Moduli attivi" + +#: ../src/libs/modulegroups.c:2799 +msgid "" +"presets\n" +"ctrl+click to manage" +msgstr "" +"Preimpostazioni\n" +"ctrl+click per gestirle" + +#: ../src/libs/modulegroups.c:2805 +msgid "search modules" +msgstr "Ricerca moduli" + +#: ../src/libs/modulegroups.c:2806 +msgid "search modules by name or tag" +msgstr "Cerca i moduli tramite il nome o un Tag" + +#: ../src/libs/modulegroups.c:2816 +msgid "clear text" +msgstr "Pulisci testo" + +#: ../src/libs/modulegroups.c:3056 +msgid "basic icon" +msgstr "Icona base" + +#: ../src/libs/modulegroups.c:3066 +msgid "active icon" +msgstr "Icona attivi" + +#: ../src/libs/modulegroups.c:3076 +msgid "color icon" +msgstr "Icona colori" + +#: ../src/libs/modulegroups.c:3086 +msgid "correct icon" +msgstr "Icona correzioni" + +#: ../src/libs/modulegroups.c:3096 +msgid "effect icon" +msgstr "Icona effetti" + +#: ../src/libs/modulegroups.c:3106 +msgid "favorites icon" +msgstr "Icona preferiti" + +#: ../src/libs/modulegroups.c:3116 +msgid "tone icon" +msgstr "Icona toni" + +#: ../src/libs/modulegroups.c:3126 +msgid "grading icon" +msgstr "Icona gradiente" + +#: ../src/libs/modulegroups.c:3136 +msgid "technical icon" +msgstr "Icona tecnica" + +#: ../src/libs/modulegroups.c:3169 +msgid "quick access panel widgets" +msgstr "Accesso rapido al pannello dei widgets" + +#: ../src/libs/modulegroups.c:3171 +msgid "quick access" +msgstr "Accesso rapido" + +#: ../src/libs/modulegroups.c:3191 +msgid "add widget to the quick access panel" +msgstr "Aggiungi il widget al pannello di accesso rapido" + +#: ../src/libs/modulegroups.c:3223 +msgid "group icon" +msgstr "Icona gruppo" + +#: ../src/libs/modulegroups.c:3232 +msgid "group name" +msgstr "Nome gruppo" + +#: ../src/libs/modulegroups.c:3243 +msgid "remove group" +msgstr "Rimuovi gruppo" + +#: ../src/libs/modulegroups.c:3269 +msgid "move group to the left" +msgstr "Muovi gruppo a sinistra" + +#: ../src/libs/modulegroups.c:3277 +msgid "add module to the group" +msgstr "Aggiungi il modulo al gruppo" + +#: ../src/libs/modulegroups.c:3288 +msgid "move group to the right" +msgstr "Sposta gruppo a destra" + +#: ../src/libs/modulegroups.c:3464 +msgid "rename preset" +msgstr "Rinomina le preimpostazioni" + +#: ../src/libs/modulegroups.c:3467 +msgid "_rename" +msgstr "_Rinomina" + +#: ../src/libs/modulegroups.c:3473 +msgid "new preset name:" +msgstr "Nuovo nome della preimpostazione:" + +#: ../src/libs/modulegroups.c:3474 +msgid "a preset with this name already exists!" +msgstr "Esiste già un preset con questo nome!" + +#: ../src/libs/modulegroups.c:3806 +msgid "preset: " +msgstr "Preimpostazione: " + +#: ../src/libs/modulegroups.c:3813 +msgid "remove the preset" +msgstr "Rimuovi la preimpostazione" + +#: ../src/libs/modulegroups.c:3815 +msgid "duplicate the preset" +msgstr "Duplica la preimpostazione" + +#: ../src/libs/modulegroups.c:3817 +msgid "rename the preset" +msgstr "Rinomina la preimpostazione" + +#: ../src/libs/modulegroups.c:3819 +msgid "create a new empty preset" +msgstr "Crea una nuova preimpostazione vuota" + +#: ../src/libs/modulegroups.c:3827 +msgid "show search line" +msgstr "Visualizza linea di ricerca" + +#: ../src/libs/modulegroups.c:3830 +msgid "show quick access panel" +msgstr "Mostra il pannello di accesso rapido" + +#: ../src/libs/modulegroups.c:3833 +msgid "show all history modules in active group" +msgstr "Mostra tutta la storia dei moduli nel gruppo attivo" + +#: ../src/libs/modulegroups.c:3845 +msgid "auto-apply this preset" +msgstr "Applica automaticamente questa preimpostazione" + +#: ../src/libs/modulegroups.c:3860 +msgid "module groups" +msgstr "Gruppi modulo" + +#: ../src/libs/modulegroups.c:3877 +msgid "" +"this is a built-in read-only preset. duplicate it if you want to make changes" +msgstr "" +"Questa preimpostazione è di sola lettura.\n" +"Duplicalo se vuoi apportare delle modifiche" + +#: ../src/libs/navigation.c:74 +msgid "navigation" +msgstr "Navigazione" + +#: ../src/libs/navigation.c:112 ../src/libs/navigation.c:194 +msgctxt "navigationbox" +msgid "fill" +msgstr "Riempimento" + +#: ../src/libs/navigation.c:115 ../src/libs/navigation.c:192 +msgid "small" +msgstr "Piccola" + +#: ../src/libs/navigation.c:154 +msgid "" +"navigation\n" +"click or drag to position zoomed area in center view" +msgstr "" +"navigazione\n" +"click o trascina per portare l'area ingradinta nella vista centrale" + +#: ../src/libs/navigation.c:176 +msgid "hide navigation thumbnail" +msgstr "Nascondi anteprima navigazione" + +#: ../src/libs/navigation.c:190 +msgid "image zoom level" +msgstr "livello di ingrandimento immagine" + +#: ../src/libs/navigation.c:195 +msgid "50%" +msgstr "50%" + +#: ../src/libs/navigation.c:196 +msgid "100%" +msgstr "100%" + +#: ../src/libs/navigation.c:197 +msgid "200%" +msgstr "200%" + +#: ../src/libs/navigation.c:198 +msgid "400%" +msgstr "400%" + +#: ../src/libs/navigation.c:199 +msgid "800%" +msgstr "800%" + +#: ../src/libs/navigation.c:200 +msgid "1600%" +msgstr "1600%" + +#: ../src/libs/print_settings.c:45 +msgid "print settings" +msgstr "Opzioni di stampa" + +#. FIXME: ellipsize title/printer as the export completed message is ellipsized +#: ../src/libs/print_settings.c:357 ../src/libs/print_settings.c:754 +#, c-format +msgid "processing `%s' for `%s'" +msgstr "Processo '%s' per '%s'" + +#: ../src/libs/print_settings.c:387 +#, c-format +msgid "cannot open printer profile `%s'" +msgstr "Impossibile aprire il profilo stampante `%s'" + +#: ../src/libs/print_settings.c:398 +#, c-format +msgid "error getting output profile for image %d" +msgstr "Errore nell'ottenere un profilo di output dall'immagine %d" + +#: ../src/libs/print_settings.c:410 +#, c-format +msgid "cannot apply printer profile `%s'" +msgstr "Impossibile applicare il profilo stampante `%s'" + +#: ../src/libs/print_settings.c:574 +msgid "failed to create temporary PDF for printing" +msgstr "Non posso creare un PDF temporaneo per stampare" + +#: ../src/libs/print_settings.c:620 +msgid "maximum image per page reached" +msgstr "Raggiunto il numero massimo di immagini per pagina" + +#: ../src/libs/print_settings.c:708 +msgid "cannot print until a picture is selected" +msgstr "Impossibile stampare finché una immagine non è selezionata" + +#: ../src/libs/print_settings.c:713 +msgid "cannot print until a printer is selected" +msgstr "Impossibile stampare finché una stampante non è selezionata" + +#: ../src/libs/print_settings.c:718 +msgid "cannot print until a paper is selected" +msgstr "Impossibile stampare finché una pagina è selezionata" + +#. in this case no need to release from cache what we couldn't get +#: ../src/libs/print_settings.c:746 +#, c-format +msgid "cannot get image %d for printing" +msgstr "Non posso preparare l'immagine %d per la stampa" + +#: ../src/libs/print_settings.c:918 +#, c-format +msgid "%3.2f (dpi:%d)" +msgstr "%3.2f (dpi:%d)" + +#: ../src/libs/print_settings.c:2396 +msgctxt "section" +msgid "printer" +msgstr "Stampante" + +#: ../src/libs/print_settings.c:2409 ../src/libs/print_settings.c:2418 +#: ../src/libs/print_settings.c:2473 +msgid "printer" +msgstr "Stampante" + +#: ../src/libs/print_settings.c:2409 +msgid "media" +msgstr "Media" + +#: ../src/libs/print_settings.c:2430 +msgid "color management in printer driver" +msgstr "Gestione colore nel driver di stampa" + +#: ../src/libs/print_settings.c:2463 +msgid "printer ICC profiles" +msgstr "profili ICC per la stampante" + +#: ../src/libs/print_settings.c:2484 +msgid "black point compensation" +msgstr "Compens. punto di nero" + +#: ../src/libs/print_settings.c:2497 +msgid "activate black point compensation when applying the printer profile" +msgstr "" +"Attiva la compens. del punto di nero quando viene applicato il profilo " +"stampante" + +#. //////////////////////// PAGE SETTINGS +#: ../src/libs/print_settings.c:2504 +msgctxt "section" +msgid "page" +msgstr "Pagina" + +#: ../src/libs/print_settings.c:2526 +msgid "measurement units" +msgstr "Unità di misura" + +#: ../src/libs/print_settings.c:2534 +msgid "image width/height" +msgstr "Larghezza/altezza immagine" + +#: ../src/libs/print_settings.c:2539 +msgid " x " +msgstr " x " + +#: ../src/libs/print_settings.c:2547 +msgid "scale factor" +msgstr "Fattore di scala" + +#: ../src/libs/print_settings.c:2553 +msgid "" +"image scale factor from native printer DPI:\n" +" < 1 means that it is downscaled (best quality)\n" +" > 1 means that the image is upscaled\n" +" a too large value may result in poor print quality" +msgstr "" +"Fattore di scala dell'immagine dai DPI nativi della stampante:\n" +" < 1 significa che è stato effettuato un downscale (qualità migliore)\n" +" > 1 significa che è stato effettuato un upscale\n" +"un valore troppo alto può portare ad una qualità di stampa scadente" + +#. d->b_top = gtk_spin_button_new_with_range(0, 10000, 1); +#: ../src/libs/print_settings.c:2567 +msgid "top margin" +msgstr "Margine superiore" + +#. d->b_left = gtk_spin_button_new_with_range(0, 10000, 1); +#: ../src/libs/print_settings.c:2571 +msgid "left margin" +msgstr "Margine sinistro" + +#: ../src/libs/print_settings.c:2574 +msgid "lock" +msgstr "Acquisisci" + +#: ../src/libs/print_settings.c:2576 +msgid "change all margins uniformly" +msgstr "Cambia tutti i margini uniformemente" + +#. d->b_right = gtk_spin_button_new_with_range(0, 10000, 1); +#: ../src/libs/print_settings.c:2580 +msgid "right margin" +msgstr "Margine destro" + +#. d->b_bottom = gtk_spin_button_new_with_range(0, 10000, 1); +#: ../src/libs/print_settings.c:2584 +msgid "bottom margin" +msgstr "Margine inferiore" + +#: ../src/libs/print_settings.c:2617 +msgid "display grid" +msgstr "Griglia dello schermo" + +#: ../src/libs/print_settings.c:2628 +msgid "snap to grid" +msgstr "Aggrappa alla griglia" + +#: ../src/libs/print_settings.c:2641 +msgid "borderless mode required" +msgstr "Richiesta modalità senza bordi" + +#: ../src/libs/print_settings.c:2644 +msgid "" +"indicates that the borderless mode should be activated\n" +"in the printer driver because the selected margins are\n" +"below the printer hardware margins" +msgstr "" +"Indica che la modalità senza bordi dovrebbe venir attivata\n" +"nel driver della stampante in quanto i margini selezionati sono\n" +"al di sotto dei margini della stampante" + +#. pack image dimension hbox here +#: ../src/libs/print_settings.c:2651 +msgctxt "section" +msgid "image layout" +msgstr "Disposizione dell'immagine" + +#: ../src/libs/print_settings.c:2692 +msgid "new image area" +msgstr "Area nuova immagine" + +#: ../src/libs/print_settings.c:2694 +msgid "" +"add a new image area on the page\n" +"click and drag on the page to place the area\n" +"drag and drop image from film strip on it" +msgstr "" +"Aggiungi una nuova area immagine nella pagina\n" +"fai click e trascina sulla pagina per posizionare l'area\n" +"trascina l'immagine dai provini nell'area" + +#: ../src/libs/print_settings.c:2698 +msgid "delete image area" +msgstr "Cancella l'area d'immagine" + +#: ../src/libs/print_settings.c:2700 +msgid "delete the currently selected image area" +msgstr "Cancella l'area d'immagine attualmente selezionata" + +#: ../src/libs/print_settings.c:2703 +msgid "clear layout" +msgstr "Disposizione chiara" + +#: ../src/libs/print_settings.c:2705 +msgid "remove all image areas from the page" +msgstr "Rimuovi tutte le aree immagini dalla pagina" + +#. d->b_x = gtk_spin_button_new_with_range(0, 1000, 1); +#: ../src/libs/print_settings.c:2722 +msgid "image area x origin (in current unit)" +msgstr "Origine x dell'area d'immagine (in unità correnti)" + +#. d->b_y = gtk_spin_button_new_with_range(0, 1000, 1); +#: ../src/libs/print_settings.c:2726 +msgid "image area y origin (in current unit)" +msgstr "Origine y dell'area d'immagine (in unità correnti)" + +#. d->b_width = gtk_spin_button_new_with_range(0, 1000, 1); +#: ../src/libs/print_settings.c:2737 +msgid "image area width (in current unit)" +msgstr "Larghezza dell'area d'immagine (in unità correnti)" + +#. d->b_height = gtk_spin_button_new_with_range(0, 1000, 1); +#: ../src/libs/print_settings.c:2741 +msgid "image area height (in current unit)" +msgstr "Altezza dell'area immagine (nell'unità corrente)" + +#. //////////////////////// PRINT SETTINGS +#: ../src/libs/print_settings.c:2767 +msgctxt "section" +msgid "print settings" +msgstr "Opzioni di stampa" + +#: ../src/libs/print_settings.c:2855 +msgid "temporary style to use while printing" +msgstr "Stile temporaneo da utilizzare durante la stampa" + +#: ../src/libs/print_settings.c:2887 +msgid "print with current settings" +msgstr "Stampa con le impostazioni correnti" + +#: ../src/libs/select.c:137 +msgid "select all images in current collection" +msgstr "Seleziona tutte le immagini nella raccolta corrente" + +#: ../src/libs/select.c:141 +msgid "clear selection" +msgstr "Pulisci selezione" + +#: ../src/libs/select.c:145 +msgid "" +"select unselected images\n" +"in current collection" +msgstr "" +"Seleziona le immagini non selezionate\n" +"nella raccolta corrente" + +#: ../src/libs/select.c:149 +msgid "" +"select all images which are in the same\n" +"film roll as the selected images" +msgstr "" +"Seleziona tutte le immagini nello stesso\n" +"rullino delle immagini selezionate" + +#: ../src/libs/select.c:153 +msgid "" +"select untouched images in\n" +"current collection" +msgstr "" +"Seleziona le immagini non modificate\n" +"in questa raccolta" + +#: ../src/libs/session.c:47 +msgid "session" +msgstr "Sessione" + +#: ../src/libs/session.c:98 +msgid "jobcode" +msgstr "Codice processo" + +#: ../src/libs/session.c:106 +msgid "create" +msgstr "Crea" + +#: ../src/libs/snapshots.c:88 +msgid "snapshots" +msgstr "Istantanee" + +#: ../src/libs/snapshots.c:137 +msgctxt "snapshot sign" +msgid "S" +msgstr "S" + +#: ../src/libs/snapshots.c:662 +msgid "snapshots for removed image have been deleted" +msgstr "l'istantanea per l'immagine rimossa è stata eliminata" + +#: ../src/libs/snapshots.c:703 +#, c-format +msgid "↗ %s '%s'" +msgstr "↗ %s '%s'" + +#: ../src/libs/snapshots.c:703 +msgid "this snapshot was taken from" +msgstr "Questa istantanea è stata effettuata da" + +#: ../src/libs/snapshots.c:742 +msgid "take snapshot" +msgstr "Scatta un'istantanea" + +#: ../src/libs/snapshots.c:744 +msgid "" +"take snapshot to compare with another image or the same image at another " +"stage of development" +msgstr "" +"Prende un'istantanea da confrontare con un'altra immagine o la stessa in un " +"altro punto dello sviluppo " + +#: ../src/libs/snapshots.c:790 +msgid "toggle last snapshot" +msgstr "Torna all'ultima istantanea" + +#: ../src/libs/styles.c:326 +msgid "remove style?" +msgid_plural "remove styles?" +msgstr[0] "Elimino stile?" +msgstr[1] "Elimino stili?" + +#: ../src/libs/styles.c:327 +#, c-format +msgid "do you really want to remove %d style?" +msgid_plural "do you really want to remove %d styles?" +msgstr[0] "Vuoi veramente eliminare lo stile `%d'?" +msgstr[1] "Vuoi veramente eliminare gli stili `%d'?" + +#: ../src/libs/styles.c:441 ../src/libs/styles.c:626 +msgid "_overwrite" +msgstr "_Sovrascrivi" + +#: ../src/libs/styles.c:446 ../src/libs/styles.c:631 +#, c-format +msgid "" +"style `%s' already exists.\n" +"do you want to overwrite existing style?\n" +msgstr "" +"Stile `%s' già esistente.\n" +"Vuoi sovrascriverlo?\n" + +#: ../src/libs/styles.c:448 ../src/libs/styles.c:633 +msgid "apply this option to all existing styles" +msgstr "Applica questa opzione a tutti gli stili esistenti" + +#: ../src/libs/styles.c:511 +#, c-format +msgid "style %s was successfully exported" +msgstr "Lo stile %s è stato esportato con successo" + +#: ../src/libs/styles.c:528 +msgid "select style" +msgstr "Selezione stile" + +#: ../src/libs/styles.c:538 +msgid "darktable style files" +msgstr "File stile di darktable" + +#: ../src/libs/styles.c:819 +msgid "" +"available styles,\n" +"double-click to apply" +msgstr "" +"stili disponibili,\n" +"doppio click per applicare" + +#: ../src/libs/styles.c:828 ../src/libs/styles.c:829 +msgid "filter style names" +msgstr "Filtra per nome stile" + +#: ../src/libs/styles.c:841 +msgid "create duplicate" +msgstr "Crea duplicato" + +#: ../src/libs/styles.c:848 +msgid "creates a duplicate of the image before applying style" +msgstr "Crea duplicato dell'immagine prima di applicare lo stile" + +#: ../src/libs/styles.c:866 +msgid "create..." +msgstr "Crea..." + +#: ../src/libs/styles.c:868 +msgid "create styles from history stack of selected images" +msgstr "Crea uno stile dalla coda di sviluppo delle immagini selezionate" + +#: ../src/libs/styles.c:873 ../src/libs/tagging.c:2283 +msgid "edit..." +msgstr "Modifica..." + +#: ../src/libs/styles.c:875 +msgid "edit the selected styles in list above" +msgstr "Modifica lo stile selezionato nella lista qui sopra" + +#: ../src/libs/styles.c:882 +msgid "removes the selected styles in list above" +msgstr "Elimina lo stile selezionato nella lista qui sopra" + +#: ../src/libs/styles.c:889 +msgid "import styles from a style files" +msgstr "Importa uno stile da un file" + +#: ../src/libs/styles.c:896 +msgid "export the selected styles into a style files" +msgstr "Esporta lo stile selezionato in un file" + +#: ../src/libs/styles.c:903 +msgid "apply the selected styles in list above to selected images" +msgstr "" +"Modifica lo stile selezionato nella lista qui sopra alle immagini selezionate" + +#: ../src/libs/tagging.c:109 +msgid "tagging" +msgstr "Etichettatura" + +#: ../src/libs/tagging.c:1258 +msgid "attach tag to all" +msgstr "Allega etichetta a tutte le immagini" + +#: ../src/libs/tagging.c:1266 ../src/libs/tagging.c:2256 +msgid "detach tag" +msgstr "Rimuovi etichetta" + +#: ../src/libs/tagging.c:1486 +msgid "delete tag?" +msgstr "Eliminare etichetta?" + +#: ../src/libs/tagging.c:1496 ../src/libs/tagging.c:1587 +#: ../src/libs/tagging.c:1814 ../src/libs/tagging.c:2093 +#, c-format +msgid "selected: %s" +msgstr "Selezionato: %s" + +#: ../src/libs/tagging.c:1503 +#, c-format +msgid "" +"do you really want to delete the tag `%s'?\n" +"%d image is assigned this tag!" +msgid_plural "" +"do you really want to delete the tag `%s'?\n" +"%d images are assigned this tag!" +msgstr[0] "" +"Vuoi veramente eliminare l'etichetta '%s'?\n" +"A %d immagine è assegnata questa etichetta!" +msgstr[1] "" +"Vuoi veramente eliminare l'etichetta '%s'?\n" +"A %d immagini è assegnata questa etichetta!" + +#: ../src/libs/tagging.c:1537 +#, c-format +msgid "tag %s removed" +msgstr "Etichetta %s rimossa" + +#: ../src/libs/tagging.c:1577 +msgid "delete node?" +msgstr "Elimina il nodo?" + +#: ../src/libs/tagging.c:1594 +#, c-format +msgid "<u>%d</u> tag will be deleted" +msgid_plural "<u>%d</u> tags will be deleted" +msgstr[0] "L'etichetta <u>%d</u> verrà cancellata" +msgstr[1] "Le etichette <u>%d</u> verranno cancellate" + +#: ../src/libs/tagging.c:1599 ../src/libs/tagging.c:1826 +#: ../src/libs/tagging.c:2105 +#, c-format +msgid "<u>%d</u> image will be updated" +msgid_plural "<u>%d</u> images will be updated" +msgstr[0] "<u>%d</u> l'imagine verrà aggiornata" +msgstr[1] "<u>%d</u> le immagini verranno aggiornate" + +#: ../src/libs/tagging.c:1625 +#, c-format +msgid "%d tags removed" +msgstr "Rimosse %d etichette" + +#: ../src/libs/tagging.c:1668 +msgid "create tag" +msgstr "Crea etichetta" + +#: ../src/libs/tagging.c:1681 ../src/libs/tagging.c:1834 +msgid "name: " +msgstr "Nome:" + +#: ../src/libs/tagging.c:1696 +#, c-format +msgid "add to: \"%s\" " +msgstr "Aggiungi a: \"%s\" " + +#: ../src/libs/tagging.c:1702 ../src/libs/tagging.c:1851 +msgid "category" +msgstr "Categoria" + +#: ../src/libs/tagging.c:1711 ../src/libs/tagging.c:1860 +msgid "synonyms: " +msgstr "Sinonimi: " + +#: ../src/libs/tagging.c:1728 ../src/libs/tagging.c:1882 +#: ../src/libs/tagging.c:2128 +msgid "empty tag is not allowed, aborting" +msgstr "Non puoi utilizzare un'etichetta vuota, operazione annullata" + +#: ../src/libs/tagging.c:1739 +msgid "tag name already exists. aborting." +msgstr "Nome etichetta già esistente. Operazione annullata." + +#: ../src/libs/tagging.c:1821 ../src/libs/tagging.c:2100 +#, c-format +msgid "<u>%d</u> tag will be updated" +msgid_plural "<u>%d</u> tags will be updated" +msgstr[0] "L'etichetta <u>%d</u> verrà aggiornata" +msgstr[1] "Le etichette <u>%d</u> verranno aggiornate" + +#: ../src/libs/tagging.c:1884 +msgid "" +"'|' character is not allowed for renaming tag.\n" +"to modify the hierarchy use rename path instead. Aborting." +msgstr "" +"Il carattere '|' non è permesso per rinominare l'etichetta.\n" +"Per modificare la gerarchia rinomina il percorso piuttosto. Operazione " +"annullata." + +#: ../src/libs/tagging.c:1923 ../src/libs/tagging.c:2031 +#, c-format +msgid "at least one new tag name (%s) already exists, aborting" +msgstr "Esiste almeno un nome di nuova etichetta (%s). Operazione annullata" + +#: ../src/libs/tagging.c:2083 +msgid "change path" +msgstr "Tracciato di modifica" + +#: ../src/libs/tagging.c:2130 +msgid "'|' misplaced, empty tag is not allowed, aborting" +msgstr "" +"'|' fuori posto, non è permesso utilizzare un'etichetta vuota. Operazione " +"annullata" + +#: ../src/libs/tagging.c:2226 +#, c-format +msgid "tag %s created" +msgstr "Etichetta %s creata" + +#: ../src/libs/tagging.c:2252 +msgid "attach tag" +msgstr "Applica etichetta" + +#: ../src/libs/tagging.c:2265 +msgid "create tag..." +msgstr "Crea etichetta..." + +#: ../src/libs/tagging.c:2271 +msgid "delete tag" +msgstr "Elimina etichetta" + +#: ../src/libs/tagging.c:2278 +msgid "delete node" +msgstr "Elimina il nodo" + +#: ../src/libs/tagging.c:2291 +msgid "change path..." +msgstr "Cambia percorso" + +#: ../src/libs/tagging.c:2301 +msgid "set as a tag" +msgstr "Impota un'etichetta" + +#: ../src/libs/tagging.c:2312 +msgid "copy to entry" +msgstr "Copia alla voce" + +#: ../src/libs/tagging.c:2329 +msgid "go to tag collection" +msgstr "Vai alla raccolta etichette" + +#: ../src/libs/tagging.c:2335 +msgid "go back to work" +msgstr "Ritorna a lavorare" + +#: ../src/libs/tagging.c:2492 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../src/libs/tagging.c:2493 +msgid "(private)" +msgstr "(Privato)" + +#: ../src/libs/tagging.c:2519 +msgid "select a keyword file" +msgstr "Seleziona un file parola chiave" + +#: ../src/libs/tagging.c:2532 +msgid "error importing tags" +msgstr "Errore durante l'importazione delle tag" + +#: ../src/libs/tagging.c:2534 +#, c-format +msgid "%zd tags imported" +msgstr "Importate %zd etichette" + +#: ../src/libs/tagging.c:2555 +msgid "select file to export to" +msgstr "Seleziona il file da esportare" + +#: ../src/libs/tagging.c:2569 +msgid "error exporting tags" +msgstr "Errore durante l'esportazione delle tag" + +#: ../src/libs/tagging.c:2571 +#, c-format +msgid "%zd tags exported" +msgstr "Esportate %zd etichette" + +#: ../src/libs/tagging.c:2995 +msgid "drop to root" +msgstr "Drop to root" + +#: ../src/libs/tagging.c:3131 +msgid "" +"attached tags\n" +"press Delete or double-click to detach\n" +"right-click for other actions on attached tag,\n" +"Tab to give the focus to entry" +msgstr "" +"etichette allegate\n" +"premi Del o fai doppio click per rimuovere\n" +"click di destro per altre azioni sulle etichette allegate,\n" +"Tab per dare il fuoco all'elemento" + +#: ../src/libs/tagging.c:3142 +msgid "attach" +msgstr "Allega" + +#: ../src/libs/tagging.c:3143 +msgid "attach tag to all selected images" +msgstr "Allega etichetta alle immagini selezionate" + +#: ../src/libs/tagging.c:3146 +msgid "detach" +msgstr "Rimuovi" + +#: ../src/libs/tagging.c:3147 +msgid "detach tag from all selected images" +msgstr "Rimuovi etichetta dalle immagini selezionate" + +#: ../src/libs/tagging.c:3160 +msgid "toggle list with / without hierarchy" +msgstr "Abilita lista gerarchica o normale" + +#: ../src/libs/tagging.c:3160 +msgid "hide" +msgstr "Nascondi" + +#: ../src/libs/tagging.c:3162 +msgid "toggle sort by name or by count" +msgstr "Abilita ordinamento per nome o per conteggio" + +#: ../src/libs/tagging.c:3162 +msgid "sort" +msgstr "Ordina" + +#: ../src/libs/tagging.c:3164 +msgid "toggle show or not darktable tags" +msgstr "Attiva o disattiva la visualizzazione dei Tag di darktable" + +#: ../src/libs/tagging.c:3164 +msgid "dttags" +msgstr "dttags" + +#: ../src/libs/tagging.c:3180 +msgid "" +"enter tag name\n" +"press Enter to create a new tag and attach it on selected images\n" +"press Tab or Down key to go to the first matching tag\n" +"press shift+Tab to select the first attached user tag" +msgstr "" +"Inserisci nome etichetta\n" +"premi Invio per creare una nuova etichetta e allegarla alle immagini " +"selezionate\n" +"premi Tab o Freccia Giù per andare alla prima etichetta corrispondente\n" +"premi Maiusc+Tab per selezionare la prima etichetta allegata dell'utente" + +#: ../src/libs/tagging.c:3191 ../src/libs/tagging.c:3197 +msgid "clear entry" +msgstr "Pulisci" + +#: ../src/libs/tagging.c:3244 +msgid "" +"tag dictionary,\n" +"Enter or double-click to attach selected tag on selected images\n" +"shift+Enter idem plus gives the focus to entry\n" +"shift+click to fully expand the selected tag\n" +"right-click for other actions on selected tag\n" +"shift+Tab to give the focus to entry" +msgstr "" +"dizionario etichette,\n" +"Invio o doppio click per allegare l'etichetta selezionata sulle immagini " +"selezionate\n" +"maisuc+invio fa lo stesso e fornisce il fuoco all'elemento\n" +"maiusc+click per espandere completamente l'etichetta selezionata\n" +"click di destro per altre azioni sull'etichetta selezionata\n" +"maiusc+Tab per fornire il fuoco all'elemento" + +#: ../src/libs/tagging.c:3279 +msgid "" +"create a new tag with the\n" +"name you entered" +msgstr "" +"Crea una nuova etichetta con il\n" +" nome inserito" + +#: ../src/libs/tagging.c:3282 +msgid "import tags from a Lightroom keyword file" +msgstr "Importa tags da un keyword file di Lightroom" + +#: ../src/libs/tagging.c:3285 +msgid "export all tags to a Lightroom keyword file" +msgstr "Esporta tutte le tag in un file keyword di Lightroom" + +#: ../src/libs/tagging.c:3289 +msgid "toggle list / tree view" +msgstr "Commuta visualizzazione lista / albero" + +#: ../src/libs/tagging.c:3289 +msgid "tree" +msgstr "Albero" + +#: ../src/libs/tagging.c:3291 +msgid "toggle list with / without suggestion" +msgstr "Attiva la lista con o senza suggerimento" + +#: ../src/libs/tagging.c:3291 +msgid "suggestion" +msgstr "Suggerimento" + +#: ../src/libs/tagging.c:3313 +msgid "redo last tag" +msgstr "Ripristina ultima etichetta" + +#: ../src/libs/tagging.c:3396 +msgid "" +"tag shortcut is not active with tag tree view. please switch to list view" +msgstr "" +"Le scorciatoie non sono disponibili sulla visualizzazione ad albero. Abilita " +"la visualizzazione lista." + +#: ../src/libs/tagging.c:3500 +msgid "tagging settings" +msgstr "Impostazioni di etichettatura" + +#: ../src/libs/tools/battery_indicator.c:38 +#: ../src/libs/tools/battery_indicator.c:70 +msgid "battery indicator" +msgstr "Indicatore della batteria" + +#: ../src/libs/tools/colorlabels.c:42 +msgid "colorlabels" +msgstr "Etichette colore" + +#: ../src/libs/tools/colorlabels.c:87 +msgid "toggle color label of selected images" +msgstr "Attiva etichetta colore alle immagini selezionate" + +#: ../src/libs/tools/filmstrip.c:45 +msgid "filmstrip" +msgstr "Provino" + +#: ../src/libs/tools/filter.c:42 +msgid "filter" +msgstr "Filtro" + +#: ../src/libs/tools/filter.c:104 +msgid "filter preferences" +msgstr "Preferenze filtro" + +#: ../src/libs/tools/gamepad.c:37 +msgid "gamepad" +msgstr "gamepad" + +#: ../src/libs/tools/gamepad.c:60 +msgid "button a" +msgstr "pulsante a" + +#: ../src/libs/tools/gamepad.c:60 +msgid "button b" +msgstr "pulsante b" + +#: ../src/libs/tools/gamepad.c:60 +msgid "button x" +msgstr "pulsante x" + +#: ../src/libs/tools/gamepad.c:60 +msgid "button y" +msgstr "pulsante y" + +#: ../src/libs/tools/gamepad.c:61 +msgid "button back" +msgstr "pulsante nero" + +#: ../src/libs/tools/gamepad.c:61 +msgid "button guide" +msgstr "pulsante guida" + +#: ../src/libs/tools/gamepad.c:61 +msgid "button start" +msgstr "pulsante start" + +#: ../src/libs/tools/gamepad.c:62 +msgid "left stick" +msgstr "levetta sinistra" + +#: ../src/libs/tools/gamepad.c:62 +msgid "right stick" +msgstr "levetta destra" + +#: ../src/libs/tools/gamepad.c:62 +msgid "left shoulder" +msgstr "dorsale sinistro" + +#: ../src/libs/tools/gamepad.c:62 +msgid "right shoulder" +msgstr "dorsale destro" + +#: ../src/libs/tools/gamepad.c:63 +msgid "dpad up" +msgstr "tasto direzionale su" + +#: ../src/libs/tools/gamepad.c:63 +msgid "dpad down" +msgstr "tasto direzionale giù" + +#: ../src/libs/tools/gamepad.c:63 +msgid "dpad left" +msgstr "tasto direzionale sinistra" + +#: ../src/libs/tools/gamepad.c:63 +msgid "dpad right" +msgstr "tasto direzionale destra" + +#: ../src/libs/tools/gamepad.c:64 +msgid "button misc1" +msgstr "pulsante misc1" + +#: ../src/libs/tools/gamepad.c:64 +msgid "paddle1" +msgstr "paddle1" + +#: ../src/libs/tools/gamepad.c:64 +msgid "paddle2" +msgstr "paddle2" + +#: ../src/libs/tools/gamepad.c:64 +msgid "paddle3" +msgstr "paddle3" + +#: ../src/libs/tools/gamepad.c:64 +msgid "paddle4" +msgstr "paddle4" + +#: ../src/libs/tools/gamepad.c:64 +msgid "touchpad" +msgstr "touchpad" + +#: ../src/libs/tools/gamepad.c:65 +msgid "left trigger" +msgstr "grilletto sinistro" + +#: ../src/libs/tools/gamepad.c:65 +msgid "right trigger" +msgstr "grilletto destro" + +#: ../src/libs/tools/gamepad.c:71 +msgid "invalid gamepad button" +msgstr "Pulsante del gamepad non valido" + +#: ../src/libs/tools/gamepad.c:89 +msgid "left x" +msgstr "x sinistra" + +#: ../src/libs/tools/gamepad.c:89 +msgid "left y" +msgstr "y sinistra" + +#: ../src/libs/tools/gamepad.c:89 +msgid "right x" +msgstr "x destra" + +#: ../src/libs/tools/gamepad.c:89 +msgid "right y" +msgstr "y destra" + +#: ../src/libs/tools/gamepad.c:90 +msgid "left diagonal" +msgstr "diagonale sinistra" + +#: ../src/libs/tools/gamepad.c:90 +msgid "left skew" +msgstr "inclinato a sinistra" + +#: ../src/libs/tools/gamepad.c:90 +msgid "right diagonal" +msgstr "diagonale destra" + +#: ../src/libs/tools/gamepad.c:90 +msgid "right skew" +msgstr "inclinato a destra" + +#. diagonals +#: ../src/libs/tools/gamepad.c:96 +msgid "invalid gamepad axis" +msgstr "Asse del gamepad non valido" + +#. we write the label with the size category +#: ../src/libs/tools/global_toolbox.c:215 +msgid "thumbnails overlays for size" +msgstr "Mostra la dimenstione nelle miniature" + +#: ../src/libs/tools/global_toolbox.c:249 +#: ../src/libs/tools/global_toolbox.c:312 +msgid "" +"duration before the block overlay is hidden after each mouse movement on the " +"image\n" +"set -1 to never hide the overlay" +msgstr "" +"Ritardo prima che il blocco della sovrimpressione sia nascosto dopo ogni " +"movimento del mouse sull'immagine\n" +"Imposta -1 per non nascondere mai la sovrimpressione" + +#: ../src/libs/tools/global_toolbox.c:254 +#: ../src/libs/tools/global_toolbox.c:317 +msgid "timeout only available for block overlay" +msgstr "" +"Conto alla rovescia disponibile solo per il blocca della sovrimpressione" + +#: ../src/libs/tools/global_toolbox.c:277 +#: ../src/libs/tools/global_toolbox.c:463 +msgid "culling overlays" +msgstr "Selezione sovrimpressioni" + +#: ../src/libs/tools/global_toolbox.c:279 +msgid "preview overlays" +msgstr "Anteprima sovrimpressioni" + +#: ../src/libs/tools/global_toolbox.c:353 +msgid "overlays not available here..." +msgstr "Sovrimpressioni qui non disponibili..." + +#: ../src/libs/tools/global_toolbox.c:397 +#: ../src/libs/tools/global_toolbox.c:533 +msgid "expand grouped images" +msgstr "Espandi immagini raggruppate" + +#: ../src/libs/tools/global_toolbox.c:399 +#: ../src/libs/tools/global_toolbox.c:535 +msgid "collapse grouped images" +msgstr "Nascondi immagini raggruppate" + +#: ../src/libs/tools/global_toolbox.c:406 +msgid "thumbnail overlays options" +msgstr "Opzioni sovrimpressione anteprime" + +#: ../src/libs/tools/global_toolbox.c:407 +msgid "click to change the type of overlays shown on thumbnails" +msgstr "" +"Fai click per modificare il tipo di sovrimpressione da visualizzare sulle " +"anteprime" + +#: ../src/libs/tools/global_toolbox.c:430 +#: ../src/libs/tools/global_toolbox.c:459 +msgid "overlay mode for size" +msgstr "Modalità sovrimpressione per dimensione" + +#: ../src/libs/tools/global_toolbox.c:434 +msgid "thumbnail overlays" +msgstr "Sovrimpressione delle miniature" + +#: ../src/libs/tools/global_toolbox.c:436 +#: ../src/libs/tools/global_toolbox.c:465 +msgid "no overlays" +msgstr "Nessuna sovrimpressione" + +#: ../src/libs/tools/global_toolbox.c:437 +msgid "overlays on mouse hover" +msgstr "Sovrimpressioni al passaggio del mouse" + +#: ../src/libs/tools/global_toolbox.c:438 +msgid "extended overlays on mouse hover" +msgstr "Sovrimpressioni estese al passaggio del mouse" + +#: ../src/libs/tools/global_toolbox.c:439 +#: ../src/libs/tools/global_toolbox.c:466 +msgid "permanent overlays" +msgstr "Sovrimpressioni permanenti" + +#: ../src/libs/tools/global_toolbox.c:440 +#: ../src/libs/tools/global_toolbox.c:467 +msgid "permanent extended overlays" +msgstr "Sovrimpressioni estese permanenti" + +#: ../src/libs/tools/global_toolbox.c:441 +msgid "permanent overlays extended on mouse hover" +msgstr "Sovrimpressioni estese permanenti al passaggio del mouse" + +#: ../src/libs/tools/global_toolbox.c:443 +#: ../src/libs/tools/global_toolbox.c:469 +msgid "overlays block on mouse hover" +msgstr "Le sovraimpressioni si ferma quando il mouse è sopra" + +#: ../src/libs/tools/global_toolbox.c:444 +#: ../src/libs/tools/global_toolbox.c:470 +msgid "during (s)" +msgstr "durante (s)" + +#: ../src/libs/tools/global_toolbox.c:449 +#: ../src/libs/tools/global_toolbox.c:475 +msgid "show tooltip" +msgstr "Visualizza suggerimenti" + +#: ../src/libs/tools/global_toolbox.c:487 +msgid "help" +msgstr "Aiuto" + +#: ../src/libs/tools/global_toolbox.c:489 +msgid "enable this, then click on a control element to see its online help" +msgstr "" +"Attiva questo pulsante, quindi fai click sul controllo di un elemento per " +"visualizzare l'aiuto in linea" + +#: ../src/libs/tools/global_toolbox.c:496 +msgid "" +"define shortcuts\n" +"ctrl+click to switch off overwrite confirmations\n" +"\n" +"hover over a widget and press keys with mouse click and scroll or move " +"combinations\n" +"repeat same combination again to delete mapping\n" +"click on a widget, module or screen area to open the dialog for further " +"configuration" +msgstr "" +"Stabilisci scorciatoie da tastiera\n" +"Ctrl+click per spengere la conferma di sovrascrittura\n" +"\n" +"passa col mouse sopra un elemento e premi i tasti assieme al click e allo " +"scorrimento, o combinazione di movimenti\n" +"effettua di nuovo la stessa combinazione per eliminare la mappatura\n" +"fai click su un elemento, un modulo o un'area dello schermo per aprire una " +"finestra di dialogo per ulteriori configurazioni" + +#: ../src/libs/tools/global_toolbox.c:512 +msgid "show global preferences" +msgstr "Mostra preferenze globali" + +#: ../src/libs/tools/hinter.c:42 +msgid "hinter" +msgstr "Suggerimento" + +#: ../src/libs/tools/hinter.c:98 +#, c-format +msgid "%s in current collection" +msgstr "%s nella raccolta corrente" + +#: ../src/libs/tools/image_infos.c:40 +msgid "image infos" +msgstr "Info dell'immagine" + +#: ../src/libs/tools/lighttable.c:116 +msgid "click to exit from full preview layout." +msgstr "Click per uscire dal layout anteprima." + +#: ../src/libs/tools/lighttable.c:118 +msgid "click to enter full preview layout." +msgstr "Click per entrare nel layout anteprima." + +#: ../src/libs/tools/lighttable.c:121 +msgid "click to enter culling layout in fixed mode." +msgstr "Clicca per entrare nel layout selezione in modalità fissa." + +#: ../src/libs/tools/lighttable.c:123 ../src/libs/tools/lighttable.c:128 +msgid "click to exit culling layout." +msgstr "Clicca per uscire dal layout selezione." + +#: ../src/libs/tools/lighttable.c:126 +msgid "click to enter culling layout in dynamic mode." +msgstr "Clicca per entrare nel layout selezione in modalità dinamica." + +#: ../src/libs/tools/lighttable.c:365 +msgid "toggle filemanager layout" +msgstr "Nascondi il layout del filemanager" + +#: ../src/libs/tools/lighttable.c:368 +msgid "click to enter filemanager layout." +msgstr "Click per entrare nel layout gestione file." + +#: ../src/libs/tools/lighttable.c:374 +msgid "toggle zoomable lighttable layout" +msgstr "Attiva il layout ingrandibile del Tavolo Luminoso" + +#: ../src/libs/tools/lighttable.c:377 +msgid "click to enter zoomable lighttable layout." +msgstr "Clicca per entrare nel layout ingrandibile del Tavolo Luminoso." + +#: ../src/libs/tools/lighttable.c:383 +msgid "toggle culling mode" +msgstr "Attiva la modalità selezione" + +#: ../src/libs/tools/lighttable.c:391 +msgid "toggle culling dynamic mode" +msgstr "Attiva la modalità selezione dinamica" + +#: ../src/libs/tools/lighttable.c:438 +msgid "toggle culling zoom mode" +msgstr "Attiva la modalità selezione con ingrandimento" + +#: ../src/libs/tools/lighttable.c:440 +msgid "exit current layout" +msgstr "Esci dal layout corrente" + +#: ../src/libs/tools/midi.c:41 +msgid "midi" +msgstr "midi" + +#: ../src/libs/tools/midi.c:221 +msgid "using absolute encoding; reinitialise to switch to relative" +msgstr "Usa codifica assoluta; re-inizializzare per passare a relativa" + +#: ../src/libs/tools/midi.c:225 +#, c-format +msgid "%d more identical (down) moves before switching to relative encoding" +msgstr "" +"ancora %d mosse identiche (verso il basso) prima di passare alla codifica " +"relativa" + +#: ../src/libs/tools/midi.c:228 +#, c-format +msgid "switching encoding to relative (down = %d)" +msgstr "passa alla codifica relativa (giù = %d)" + +#: ../src/libs/tools/midi.c:558 +#, c-format +msgid "%s opened as midi%d" +msgstr "%s aperto come midi %d" + +#: ../src/libs/tools/module_toolbox.c:46 +msgid "module toolbox" +msgstr "Modulo strumenti" + +#. connect callbacks +#: ../src/libs/tools/ratings.c:97 +msgid "set star rating for selected images" +msgstr "Imposta la valutazione in stelle per le immagini selezionate" + +#: ../src/libs/tools/timeline.c:102 +msgid "timeline" +msgstr "Linea temporale" + +#: ../src/libs/tools/timeline.c:1433 +msgid "start selection" +msgstr "Inizia selezione" + +#: ../src/libs/tools/timeline.c:1434 +msgid "stop selection" +msgstr "Interrompi selezione" + +#: ../src/libs/tools/view_toolbox.c:46 +msgid "view toolbox" +msgstr "Visualizza strumenti" + +#: ../src/libs/tools/viewswitcher.c:60 +msgid "viewswitcher" +msgstr "Modifica vista" + +#: ../src/lua/preferences.c:656 ../src/lua/preferences.c:671 +#: ../src/lua/preferences.c:683 ../src/lua/preferences.c:695 +#: ../src/lua/preferences.c:711 ../src/lua/preferences.c:775 +#, c-format +msgid "double-click to reset to `%s'" +msgstr "Doppio click per ripristinare a '%s'" + +#: ../src/lua/preferences.c:681 +msgid "select file" +msgstr "Seleziona file" + +#: ../src/lua/preferences.c:734 +#, c-format +msgid "double-click to reset to `%d'" +msgstr "Doppio click per ripristinare a '%d'" + +#: ../src/lua/preferences.c:761 +#, c-format +msgid "double-click to reset to `%f'" +msgstr "Doppio click per ripristinare a `%f'" + +#: ../src/lua/preferences.c:837 +msgid "Lua options" +msgstr "Opzioni Lua" + +#: ../src/views/darkroom.c:503 +#, c-format +msgid "" +"darktable could not load `%s', switching to lighttable now.\n" +"\n" +"please check that the camera model that produced the image is supported in " +"darktable\n" +"(list of supported cameras is at https://www.darktable.org/resources/camera-" +"support/).\n" +"if you are sure that the camera model is supported, please consider opening " +"an issue\n" +"at https://github.com/darktable-org/darktable" +msgstr "" +"Darktable non può caricare `%s', passa ora al Tavolo Luminoso.\n" +"\n" +"Per favore, controlla che il modello di fotocamera che ha prodotto " +"l'immagine sia supportato in Darktable\n" +"(la lista delle fotocamere supportate è qui https://www.darktable.org/" +"resources/camera-support/).\n" +"Se sei sicuro che il modello di fotocamera è supportato, prendi in " +"considerazione di segnalare un problema\n" +"in https://github.com/darktable-org/darktable" + +#: ../src/views/darkroom.c:521 +#, c-format +msgctxt "darkroom" +msgid "loading `%s' ..." +msgstr "Sto caricando '%s' ..." + +#: ../src/views/darkroom.c:668 ../src/views/darkroom.c:2335 +msgid "gamut check" +msgstr "Controllo gamma" + +#: ../src/views/darkroom.c:668 +msgid "soft proof" +msgstr "Prova colore a monitor" + +#. fail :( +#: ../src/views/darkroom.c:708 ../src/views/print.c:356 +msgid "no image to open!" +msgstr "Nessuna immagine da aprire!" + +#: ../src/views/darkroom.c:1232 +msgid "no user-defined presets for favorite modules were found" +msgstr "" +"Non è stato trovato alcun preset definito dall'untente come favorito per il " +"modulo" + +#: ../src/views/darkroom.c:1377 +msgid "no styles have been created yet" +msgstr "Nessuno stile è stato ancora creato" + +#: ../src/views/darkroom.c:2170 ../src/views/darkroom.c:2171 +msgid "quick access to presets" +msgstr "Accesso rapido alle preimpostazioni" + +#: ../src/views/darkroom.c:2179 +msgid "quick access to styles" +msgstr "accesso rapido agli stili" + +#: ../src/views/darkroom.c:2181 +msgid "quick access for applying any of your styles" +msgstr "Accesso rapido all'applicazione degli stili" + +#: ../src/views/darkroom.c:2187 +msgid "second window" +msgstr "Seconda finestra" + +#: ../src/views/darkroom.c:2190 +msgid "display a second darkroom image window" +msgstr "Visualizza una seconda finestra in Camera Oscura" + +#: ../src/views/darkroom.c:2195 +msgid "color assessment" +msgstr "Valitazione colori" + +#: ../src/views/darkroom.c:2198 +msgid "toggle ISO 12646 color assessment conditions" +msgstr "Nascondi le condizioni di valutazione colore ISO 12646" + +#: ../src/views/darkroom.c:2211 +msgid "" +"toggle raw over exposed indication\n" +"right click for options" +msgstr "" +"Attiva l'indicatore di sovraesposizione RAW\n" +"click destro per ulteriori opzioni" + +#: ../src/views/darkroom.c:2227 +msgid "select how to mark the clipped pixels" +msgstr "Seleziona come marcare i pixel tagliati" + +#: ../src/views/darkroom.c:2229 +msgid "mark with CFA color" +msgstr "Marca con colore CFA" + +#: ../src/views/darkroom.c:2229 +msgid "mark with solid color" +msgstr "Marca con colore a tinta unita" + +#: ../src/views/darkroom.c:2229 +msgid "false color" +msgstr "Colore falso" + +#: ../src/views/darkroom.c:2232 ../src/views/darkroom.c:2283 +msgid "color scheme" +msgstr "Combinazione colori" + +#: ../src/views/darkroom.c:2233 +msgid "" +"select the solid color to indicate over exposure.\n" +"will only be used if mode = mark with solid color" +msgstr "" +"Seleziona il colore a tinta unita per indicare la sovra esposizione.\n" +"Verrà utilizzato solamente se il modo = \"marca con tinta unita\"" + +#: ../src/views/darkroom.c:2236 +msgctxt "solidcolor" +msgid "red" +msgstr "Rosso" + +#: ../src/views/darkroom.c:2237 +msgctxt "solidcolor" +msgid "green" +msgstr "Verde" + +#: ../src/views/darkroom.c:2238 +msgctxt "solidcolor" +msgid "blue" +msgstr "Blu" + +#: ../src/views/darkroom.c:2239 +msgctxt "solidcolor" +msgid "black" +msgstr "Nero" + +#: ../src/views/darkroom.c:2247 +msgid "" +"threshold of what shall be considered overexposed\n" +"1.0 - white level\n" +"0.0 - black level" +msgstr "" +"Soglia di cosa dovrebbe essere considerato sovraesposto\n" +"1.0 - livello di bianco\n" +"0.0 - livello di nero" + +#: ../src/views/darkroom.c:2261 +msgid "" +"toggle clipping indication\n" +"right click for options" +msgstr "" +"Attiva l'indicatore di taglio\n" +"click destro per ulteriori opzioni" + +#: ../src/views/darkroom.c:2276 +msgid "clipping preview mode" +msgstr "Visualizzazione taglio" + +#: ../src/views/darkroom.c:2277 +msgid "" +"select the metric you want to preview\n" +"full gamut is the combination of all other modes" +msgstr "" +"Seleziona la metrica che vuoi visualizzare\n" +"La gamma completa è la combinazione di tutte le altre modalità" + +#: ../src/views/darkroom.c:2279 +msgid "full gamut" +msgstr "Gamma completa" + +#: ../src/views/darkroom.c:2279 +msgid "any RGB channel" +msgstr "Qualsiasi canale RGB" + +#: ../src/views/darkroom.c:2279 +msgid "luminance only" +msgstr "Solo luminanza" + +#: ../src/views/darkroom.c:2279 +msgid "saturation only" +msgstr "Solo saturazione" + +#: ../src/views/darkroom.c:2284 +msgid "select colors to indicate clipping" +msgstr "Scegli i colori per indicare il taglio" + +#: ../src/views/darkroom.c:2286 +msgid "red & blue" +msgstr "Rosso & blu" + +#: ../src/views/darkroom.c:2286 +msgid "purple & green" +msgstr "Viola & verde" + +#: ../src/views/darkroom.c:2293 +msgid "lower threshold" +msgstr "Soglia inferiore" + +#: ../src/views/darkroom.c:2294 +msgid "" +"clipping threshold for the black point,\n" +"in EV, relatively to white (0 EV).\n" +"8 bits sRGB clips blacks at -12.69 EV,\n" +"8 bits Adobe RGB clips blacks at -19.79 EV,\n" +"16 bits sRGB clips blacks at -20.69 EV,\n" +"typical fine-art mat prints produce black at -5.30 EV,\n" +"typical color glossy prints produce black at -8.00 EV,\n" +"typical B&W glossy prints produce black at -9.00 EV." +msgstr "" +"Soglia di taglio soglia per il punto di nero,\n" +"in EV, relativamente al bianco (0 EV).\n" +"sRGB a 8bit taglia il nero a -12,69 EV,\n" +"Adobe RGB a 8bit taglia il nero a -19,79 EV,\n" +"sRGB a 16 bit taglia il nero a -20,69 EV,\n" +"tipicamente una stampa fine-art opaca imposta il nero a -5,30 EV,\n" +"tipicamente una stampa a colori lucida imposta il nero a -8,00 EV,\n" +"tipicamente una stampa in BN lucida imposta il nero a -9,00 EV." + +#: ../src/views/darkroom.c:2310 +msgid "upper threshold" +msgstr "Soglia superiore" + +#: ../src/views/darkroom.c:2312 +#, no-c-format +msgid "" +"clipping threshold for the white point.\n" +"100% is peak medium luminance." +msgstr "" +"Taglia soglia per il punto di bianco.\n" +"100% è il massimo della luminanza media." + +#: ../src/views/darkroom.c:2324 +msgid "softproof" +msgstr "Simulazione a schermo" + +#: ../src/views/darkroom.c:2327 +msgid "" +"toggle softproofing\n" +"right click for profile options" +msgstr "" +"Attiva la simulazione a schermo\n" +"Click destro per le opzioni profilo" + +#: ../src/views/darkroom.c:2338 +msgid "" +"toggle gamut checking\n" +"right click for profile options" +msgstr "" +"Abilita il controllo gamma\n" +"Click destro per le opzioni profilo" + +#: ../src/views/darkroom.c:2365 ../src/views/darkroom.c:2367 +#: ../src/views/darkroom.c:2381 ../src/views/darkroom.c:2382 +#: ../src/views/darkroom.c:2383 ../src/views/darkroom.c:2384 +#: ../src/views/lighttable.c:1182 ../src/views/lighttable.c:1184 +msgid "profiles" +msgstr "Profili" + +#: ../src/views/darkroom.c:2367 ../src/views/lighttable.c:1184 +msgid "preview intent" +msgstr "Scopo anteprima" + +#: ../src/views/darkroom.c:2381 ../src/views/lighttable.c:1188 +msgid "display profile" +msgstr "Profilo dello schermo" + +#: ../src/views/darkroom.c:2382 ../src/views/lighttable.c:1191 +msgid "preview display profile" +msgstr "Visualizza profilo schermo" + +#: ../src/views/darkroom.c:2384 +msgid "histogram profile" +msgstr "Profilo istogramma" + +#: ../src/views/darkroom.c:2391 +msgid "second preview window ISO 12646 color assessment" +msgstr "Seconda finestra di anteprima di valutazione colore ISO 12646" + +#: ../src/views/darkroom.c:2393 +msgid "color assessment second preview" +msgstr "Seconda anteprima valutazione colori" + +#: ../src/views/darkroom.c:2452 ../src/views/lighttable.c:1225 +msgid "display ICC profiles" +msgstr "profili ICC schermo" + +#: ../src/views/darkroom.c:2456 ../src/views/lighttable.c:1229 +msgid "preview display ICC profiles" +msgstr "profili ICC anteprima su schermo" + +#: ../src/views/darkroom.c:2460 +msgid "softproof ICC profiles" +msgstr "profili ICC di simulazione" + +#: ../src/views/darkroom.c:2464 +msgid "histogram and color picker ICC profiles" +msgstr "profili ICC istogramma e selettore colore" + +#: ../src/views/darkroom.c:2497 +msgid "" +"toggle guide lines\n" +"right click for guides options" +msgstr "" +"Attiva le linee guida\n" +"Click destro per ulteriori opzioni" + +#. Fullscreen preview key +#: ../src/views/darkroom.c:2514 +msgid "full preview" +msgstr "Anteprima completa" + +#. add an option to allow skip mouse events while other overlays are consuming mouse actions +#: ../src/views/darkroom.c:2518 +msgid "force pan/zoom/rotate with mouse" +msgstr "obbliga spostamento/ingrandimento/rotazione col mouse" + +#. Zoom shortcuts +#: ../src/views/darkroom.c:2530 +msgid "zoom close-up" +msgstr "Primo piano" + +#. zoom in/out +#. zoom in/out/min/max +#: ../src/views/darkroom.c:2533 ../src/views/lighttable.c:1283 +msgid "zoom in" +msgstr "Ingrandisci" + +#: ../src/views/darkroom.c:2534 ../src/views/lighttable.c:1285 +msgid "zoom out" +msgstr "Rimpicciolisci" + +#. Shortcut to skip images +#: ../src/views/darkroom.c:2537 +msgid "image forward" +msgstr "Immagine avanti" + +#: ../src/views/darkroom.c:2538 +msgid "image back" +msgstr "Immagine indietro" + +#. cycle overlay colors +#: ../src/views/darkroom.c:2541 +msgid "cycle overlay colors" +msgstr "Sfoglia colori sovrimpressione" + +#. toggle visibility of drawn masks for current gui module +#: ../src/views/darkroom.c:2544 +msgid "show drawn masks" +msgstr "Visualizza maschere disegnate" + +#. brush size +/- +#: ../src/views/darkroom.c:2547 +msgid "increase brush size" +msgstr "Aumenta dimensione pennello" + +#: ../src/views/darkroom.c:2548 +msgid "decrease brush size" +msgstr "Diminuisci dimensione pennello" + +#. brush hardness +/- +#: ../src/views/darkroom.c:2551 +msgid "increase brush hardness" +msgstr "Aumenta durezza pennello" + +#: ../src/views/darkroom.c:2552 +msgid "decrease brush hardness" +msgstr "Diminuisci durezza pennello" + +#. brush opacity +/- +#: ../src/views/darkroom.c:2555 +msgid "increase brush opacity" +msgstr "Aumenta opacità pennello" + +#: ../src/views/darkroom.c:2556 +msgid "decrease brush opacity" +msgstr "Diminuisci opacità pennello" + +#. undo/redo +#: ../src/views/darkroom.c:2559 ../src/views/lighttable.c:1275 +#: ../src/views/map.c:2115 +msgid "undo" +msgstr "Annulla" + +#: ../src/views/darkroom.c:2560 ../src/views/lighttable.c:1276 +#: ../src/views/map.c:2116 +msgid "redo" +msgstr "Ripristina" + +#. change the precision for adjusting sliders with keyboard shortcuts +#: ../src/views/darkroom.c:2563 +msgid "change keyboard shortcut slider precision" +msgstr "" +"Modifica la precisione della scorciatoia da tastiera per i selettori " +"scorrevoli" + +#: ../src/views/darkroom.c:3565 +msgid "keyboard shortcut slider precision: fine" +msgstr "Scorciatoia tastiera precisione selettore scorrevole: fine" + +#: ../src/views/darkroom.c:3567 +msgid "keyboard shortcut slider precision: normal" +msgstr "Scorciatoia tastiera precisione selettore scorrevole: normale" + +#: ../src/views/darkroom.c:3569 +msgid "keyboard shortcut slider precision: coarse" +msgstr "Scorciatoia tastiera precisione selettore scorrevole: grossolano" + +#: ../src/views/darkroom.c:3584 +msgid "switch to lighttable" +msgstr "Vai al Tavolo Luminoso" + +#: ../src/views/darkroom.c:3585 ../src/views/lighttable.c:882 +msgid "zoom in the image" +msgstr "Ingrandisci l'immagine" + +#: ../src/views/darkroom.c:3586 +msgid "unbounded zoom in the image" +msgstr "Ingrandimento immagine illimitato" + +#: ../src/views/darkroom.c:3587 +msgid "zoom to 100% 200% and back" +msgstr "Ingrandisci del 100%, 200% e riprendi" + +#: ../src/views/darkroom.c:3588 ../src/views/lighttable.c:885 +msgid "pan a zoomed image" +msgstr "Panoramica su un'immagine ingrandita" + +#: ../src/views/darkroom.c:3590 ../src/views/lighttable.c:927 +msgid "[modules] expand module without closing others" +msgstr "[modules] Espandi il modulo senza chiudere gli altri" + +#: ../src/views/darkroom.c:3591 ../src/views/lighttable.c:928 +msgid "[modules] expand module and close others" +msgstr "[moduli] espande un modulo e chiude gli altri" + +#: ../src/views/darkroom.c:3593 +msgid "[modules] rename module" +msgstr "[moduli] rinomina un modulo" + +#: ../src/views/darkroom.c:3595 +msgid "[modules] change module position in pipe" +msgstr "[modules] Cambia la posizione del modulo nel flusso di sviluppo" + +#: ../src/views/knight.c:334 +msgid "good knight" +msgstr "Good Knight" + +#. Show infos key +#: ../src/views/lighttable.c:656 ../src/views/lighttable.c:1266 +msgid "show infos" +msgstr "Mostra le informazioni" + +#: ../src/views/lighttable.c:759 +msgid "middle" +msgstr "Metà" + +#: ../src/views/lighttable.c:877 +msgid "open image in darkroom" +msgstr "Apri l'immagine in modalità Camera Oscura" + +#: ../src/views/lighttable.c:881 +msgid "switch to next/previous image" +msgstr "Passa all'immagine successiva/precedente" + +#: ../src/views/lighttable.c:884 ../src/views/lighttable.c:915 +#, no-c-format +msgid "zoom to 100% and back" +msgstr "Ingrandisci del 100% e riprendi" + +#: ../src/views/lighttable.c:889 ../src/views/lighttable.c:908 +msgid "scroll the collection" +msgstr "Scorri la raccolta" + +#: ../src/views/lighttable.c:891 +msgid "change number of images per row" +msgstr "Modifica numero di immagini per ogni riga" + +#: ../src/views/lighttable.c:894 +msgid "select an image" +msgstr "seleziona un'immagine" + +#: ../src/views/lighttable.c:896 +msgid "select range from last image" +msgstr "Seleziona un intervallo dall'ultima immagine" + +#: ../src/views/lighttable.c:898 +msgid "add image to or remove it from a selection" +msgstr "Aggiungi or rimuovi un'immagine da una selezione" + +#: ../src/views/lighttable.c:902 +msgid "change image order" +msgstr "Modifica ordinamento immagini" + +#: ../src/views/lighttable.c:909 +msgid "zoom all the images" +msgstr "Ingrandisci tutte le immagini" + +#: ../src/views/lighttable.c:910 +msgid "pan inside all the images" +msgstr "Scorri all'interno di tutte le immagini" + +#: ../src/views/lighttable.c:912 +msgid "zoom current image" +msgstr "Ingrandisci l'immagine corrente" + +#: ../src/views/lighttable.c:913 +msgid "pan inside current image" +msgstr "Scorri all'interno dell'immagine corrente" + +#: ../src/views/lighttable.c:918 +#, no-c-format +msgid "zoom current image to 100% and back" +msgstr "Ingrandisci l'immagine corrente del 100% e riprendi" + +#: ../src/views/lighttable.c:922 +msgid "zoom the main view" +msgstr "Ingrandisci la vista principale" + +#: ../src/views/lighttable.c:923 +msgid "pan inside the main view" +msgstr "Scorri all'interno della vista principale" + +#: ../src/views/lighttable.c:1160 +msgid "set display profile" +msgstr "Imposta profilo schermo" + +#: ../src/views/lighttable.c:1246 +msgid "whole" +msgstr "Intero" + +#: ../src/views/lighttable.c:1262 +msgid "leave" +msgstr "lascia" + +#: ../src/views/lighttable.c:1269 +msgid "align images to grid" +msgstr "Riallinea le immagini alla griglia" + +#: ../src/views/lighttable.c:1270 +msgid "reset first image offset" +msgstr "Azzera lo spostamento della prima immagine" + +#: ../src/views/lighttable.c:1271 +msgid "select toggle image" +msgstr "Attiva selezione immagine" + +#: ../src/views/lighttable.c:1272 +msgid "select single image" +msgstr "Seleziona immagine singola" + +#. zoom for full culling & preview +#: ../src/views/lighttable.c:1279 +msgid "preview zoom 100%" +msgstr "Ingrandimento dell'anteprima al 100%" + +#: ../src/views/lighttable.c:1280 +msgid "preview zoom fit" +msgstr "Adatta ingrandimento" + +#: ../src/views/lighttable.c:1284 +msgid "zoom max" +msgstr "Ingrandimento massimo" + +#: ../src/views/lighttable.c:1286 +msgid "zoom min" +msgstr "Ingrandimento minimo" + +#: ../src/views/map.c:2809 +msgid "[on image] open in darkroom" +msgstr "[on image] Apri in Camera Oscura" + +#: ../src/views/map.c:2810 +msgid "[on map] zoom map" +msgstr "[on map] Ingrandisci mappa" + +#: ../src/views/map.c:2811 +msgid "move image location" +msgstr "Sposta luogo immagine" + +#: ../src/views/print.c:55 +msgctxt "view" +msgid "print" +msgstr "Stampa" + +#: ../src/views/slideshow.c:355 +msgid "end of images" +msgstr "Fine delle immagini" + +#: ../src/views/slideshow.c:376 +msgid "end of images. press any key to return to lighttable mode" +msgstr "" +"Fine delle immagini. Premi un tasto per tornare in modalità Tavolo Luminoso" + +#: ../src/views/slideshow.c:509 +msgid "waiting to start slideshow" +msgstr "In attesa di iniziare la presentazione" + +#: ../src/views/slideshow.c:678 ../src/views/slideshow.c:705 +#: ../src/views/slideshow.c:713 +msgid "slideshow paused" +msgstr "Presentazione in pausa" + +#: ../src/views/slideshow.c:686 ../src/views/slideshow.c:696 +#, c-format +msgid "slideshow delay set to %d second" +msgid_plural "slideshow delay set to %d seconds" +msgstr[0] "Ritardo per la presentazione impostato su %d secondo" +msgstr[1] "Ritardo per la presentazione impostato su %d secondi" + +#: ../src/views/slideshow.c:728 +msgid "start and stop" +msgstr "Avvia e Stop" + +#: ../src/views/slideshow.c:730 +msgid "exit slideshow" +msgstr "Esci dalla presentazione" + +#: ../src/views/slideshow.c:734 +msgid "slow down" +msgstr "Rallenta" + +#: ../src/views/slideshow.c:738 +msgid "speed up" +msgstr "Accelera" + +#: ../src/views/slideshow.c:743 +msgid "step forward" +msgstr "Un passo avanti" + +#: ../src/views/slideshow.c:745 +msgid "step back" +msgstr "Un passo indietro" + +#: ../src/views/slideshow.c:753 +msgid "go to next image" +msgstr "Vai all'immagine successiva" + +#: ../src/views/slideshow.c:755 +msgid "go to previous image" +msgstr "Vai all'immagine precedente" + +#: ../src/views/tethering.c:157 +#, c-format +msgid "new session initiated '%s'" +msgstr "Nuova sessione '%s' inizializzata" + +#: ../src/views/tethering.c:448 +msgid "no camera with tethering support available for use..." +msgstr "Non è disponibile nessuna fotocamera supportata per il tethering ..." + +#: ../src/views/view.c:1352 +msgid "left click" +msgstr "Click sinistro" + +#: ../src/views/view.c:1355 +msgid "right click" +msgstr "Click destro" + +#: ../src/views/view.c:1358 +msgid "middle click" +msgstr "Click centrale" + +#: ../src/views/view.c:1364 +msgid "left double-click" +msgstr "Doppio click sinistro" + +#: ../src/views/view.c:1367 +msgid "right double-click" +msgstr "Doppio click destro" + +#: ../src/views/view.c:1370 +msgid "drag and drop" +msgstr "Trascina e rilascia" + +#: ../src/views/view.c:1373 +msgid "left click+drag" +msgstr "Tasto sinistro+trascina" + +#: ../src/views/view.c:1376 +msgid "right click+drag" +msgstr "Tasto destro+trascina" + +#: ../src/views/view.c:1398 +msgid "darktable - accels window" +msgstr "darktable - finestra scorciatoie" + +#: ../src/views/view.c:1447 +msgid "switch to a classic window which will stay open after key release" +msgstr "" +"Passa ad una finestra classica che rimarrà aperta dopo che il rilascio del " +"tasto" + +#. we add the mouse actions too +#: ../src/views/view.c:1514 +msgid "mouse actions" +msgstr "Azioni mouse" + +#~| msgid "technical" +#~ msgctxt "preferences" +#~ msgid "chronological" +#~ msgstr "Cronologico" + +#~ msgctxt "preferences" +#~ msgid "nothing" +#~ msgstr "Nessuno" + +#~ msgctxt "preferences" +#~ msgid "memory size" +#~ msgstr "Dimensione della memoria" + +#~ msgctxt "preferences" +#~ msgid "memory transfer" +#~ msgstr "Trasferimento di memoria" + +#~ msgctxt "preferences" +#~ msgid "memory size and transfer" +#~ msgstr "Trasferimento e dimensione della memoria" + +#~ msgctxt "preferences" +#~ msgid "id" +#~ msgstr "ID" + +#~ msgctxt "preferences" +#~ msgid "folder" +#~ msgstr "Cartella" + +#, fuzzy +#~ msgid "" +#~ "when having raw+JPEG images together in one directory it makes no sense " +#~ "to import both. with this flag one can ignore all JPEGs found." +#~ msgstr "" +#~ "Quando si hanno RAW+JPEG nella stessa cartella non ha senso importarli " +#~ "entrambi. con questo flag si possono ignorare tutti i JPEG trovati." + +#~ msgid "tune OpenCL performance" +#~ msgstr "Ottimizza le prestazioni OpenCL" + +#~ msgid "" +#~ "allows runtime tuning of OpenCL devices:\n" +#~ " - 'memory size': uses a fixed headroom (400MB as default),\n" +#~ " - 'memory transfer': tries a faster memory access mode (pinned memory) " +#~ "used for tiling." +#~ msgstr "" +#~ "Permette la regolazione dei dispositivi OpenCL a runtime:\n" +#~ " - 'dimensione memoria': usa un'headroom fissa (400MB come predefinito),\n" +#~ " - 'trasferimento di memoria': tenta una modalità di accesso alla memoria " +#~ "più veloce (pinned memory) usata per il tiling." + +#~ msgid "write sidecar file for each image" +#~ msgstr "Scrivi un file di elaborazione per ogni immagine" + +#, fuzzy +#~ msgid "" +#~ "if an instance of the module has focus, apply shortcut to that instance\n" +#~ "note: blending shortcuts always apply to the focused instance" +#~ msgstr "" +#~ "Se l'istanza di un modulo ha il fuoco, applica la scorciatoia a questa " +#~ "istanza\n" +#~ "Nota: le scorciatoie di fusione si applicano sempre all'istanza a fuoco" + +#~ msgid "distortion fine-tune" +#~ msgstr "Regolazione fine della distorsione" + +#~ msgid "vignetting fine-tune" +#~ msgstr "Regolazione fine della vignettatura" + +#~ msgid "TCA red fine-tune" +#~ msgstr "Messa a punto del TCA rosso" + +#~ msgid "TCA blue fine-tune" +#~ msgstr "Messa a punto del TCA blu" + +#~ msgid "tiff" +#~ msgstr "TIFF" + +#~ msgid "png" +#~ msgstr "PNG" + +#~ msgid "j2k" +#~ msgstr "J2K" + +#~ msgid "jpeg" +#~ msgstr "JPEG" + +#~ msgid "exr" +#~ msgstr "EXR" + +#~ msgid "rgbe" +#~ msgstr "RGBE" + +#~ msgid "pfm" +#~ msgstr "PFM" + +#~ msgid "netpnm" +#~ msgstr "netpnm" + +#~ msgid "avif" +#~ msgstr "avif" + +#~ msgid "heif" +#~ msgstr "heif" + +#~ msgid "libraw" +#~ msgstr "libraw" + +#~ msgid "webp" +#~ msgstr "webp" + +#~ msgid "jpeg xl" +#~ msgstr "jpeg xl" + +#~ msgid "" +#~ "due to a slow GPU hardware acceleration using OpenCL has been deactivated" +#~ msgstr "" +#~ "A causa di un'accelerazione hardware GPU insufficiente è stato " +#~ "disattivato l'utilizzo di OpenCL" + +#~ msgid "" +#~ "multiple GPUs detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "Rilevate GPUs multiple - il profilo di pianificazione di OpenCL è stato " +#~ "impostato di conseguenza" + +#~ msgid "" +#~ "very fast GPU detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "Rilevata una GPU molto veloce - il profilo di pianificazione di OpenCL è " +#~ "stato impostato di conseguenza" + +#~ msgid "" +#~ "darktable discovered problems with your OpenCL setup; disabling OpenCL " +#~ "for this session!" +#~ msgstr "" +#~ "darktable ha riscontrato dei problemi con la configurazione OpenCL; " +#~ "disabilitazione OpenCL per questa sessione!" + +#~ msgid "no-op" +#~ msgstr "no-op" + +#~ msgid "RGB colors" +#~ msgstr "Colori RGB" + +#~ msgid "compression type" +#~ msgstr "Tipo di compressione" + +#~ msgid "jp2" +#~ msgstr "JP2" + +#, fuzzy +#~ msgid "b&w image" +#~ msgstr "Immagine BN" + +#~ msgid "write RGB colors" +#~ msgstr "Scrivi colori RGB" + +#~ msgid "write grayscale" +#~ msgstr "Scrivi scala di grigio" + +#~ msgid "spot color mapping" +#~ msgstr "Mappatura dei colori puntuale" + +#~ msgid "spot mode" +#~ msgstr "Modalità puntuale" + +#~ msgid "" +#~ "tone equalizer needs to be after distortion modules in the pipeline – " +#~ "disabled" +#~ msgstr "" +#~ "L'equalizzatore di tono nel processo di sviluppo deve trovarsi dopo i " +#~ "moduli di distorsione nel processo di sviluppo - disabilitato" + +#~ msgid "reference to which the marker should be scaled to" +#~ msgstr "Riferimento sul quale il marcatore dovrebbe essere ridimensionato" + +#~ msgid "length of the marker which is used as scaling reference" +#~ msgstr "" +#~ "Lungezza del marcatore usata come riferimento per il ridimensionamento" + +#~ msgid "save" +#~ msgstr "Salva" + +#~ msgid "add" +#~ msgstr "Aggiungi" + +#~ msgid "only" +#~ msgstr "soltanto" + +#~ msgid "selected image[s]" +#~ msgstr "Immagini selezionate" + +#~ msgid "hardness (relative)" +#~ msgstr "Durezza (relativa)" + +#~ msgid "hardness (absolute)" +#~ msgstr "Durezza (assoluta)" + +#~ msgid "opacity (relative)" +#~ msgstr "Opacità (relativa)" + +#~ msgid "opacity (absolute)" +#~ msgstr "Opacità (assoluta)" + +#~ msgid "brush size (relative)" +#~ msgstr "Dimensione pennello (relativa)" + +#~ msgid "low" +#~ msgstr "Bassa" + +#~ msgid "medium" +#~ msgstr "Media" + +#~ msgid "high" +#~ msgstr "Alta" + +#~ msgid "" +#~ "pen pressure control for brush masks\n" +#~ "'off': pressure reading ignored,\n" +#~ "'hardness'/'opacity'/'brush size': pressure reading controls specified " +#~ "attribute,\n" +#~ "'absolute'/'relative': pressure reading is taken directly as attribute " +#~ "value or multiplied with pre-defined setting." +#~ msgstr "" +#~ "controllo della pressione del pennino per il pennello maschere\n" +#~ "'off': la lettura della pressione viene ignorata,\n" +#~ "'durezza'/'opacità'/'dimensione pennello': la lettura della pressione " +#~ "controlla uno specifico attributo,\n" +#~ "'assoluto'/'relativo': la lettura della pressione viene usata " +#~ "direttamente come valore dell'attributo o moltiplicata per " +#~ "un'impostazione pre-definita." + +#~ msgid "" +#~ "smoothing of brush strokes\n" +#~ "stronger smoothing leads to fewer nodes and easier editing but with lower " +#~ "control of accuracy." +#~ msgstr "" +#~ "dolcezza delle pennellate\n" +#~ "maggiore dolcezza porta ad un numero minore di nodi e maggiore facilità " +#~ "di modifica ma minore controllo sull'accuratezza." + +#~ msgid "<leave unchanged>" +#~ msgstr "<leave unchanged>" + +#, c-format +#~ msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" +#~ msgstr "%.1f mm (%.1f mm FF equivalente, crop %.1f)" diff -Nru darktable-4.4.2/po/ja.po darktable-4.6.1/po/ja.po --- darktable-4.4.2/po/ja.po 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/po/ja.po 2024-02-16 17:31:09.000000000 +0000 @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: DarkTable\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-31 13:24+0200\n" -"PO-Revision-Date: 2023-06-09 00:03+0900\n" +"POT-Creation-Date: 2023-11-30 19:32+0100\n" +"PO-Revision-Date: 2023-12-13 21:16+0900\n" "Last-Translator: Ryo Shinozaki\n" "Language-Team: \n" "Language: ja\n" @@ -18,271 +18,235 @@ "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.0.1\n" -#: ../build/bin/conf_gen.h:172 ../build/bin/preferences_gen.h:7632 +#: ../build/bin/conf_gen.h:174 msgctxt "preferences" msgid "first instance" msgstr "最初のインスタンス" -#: ../build/bin/conf_gen.h:173 ../build/bin/preferences_gen.h:7637 -#: ../build/bin/preferences_gen.h:7656 +#: ../build/bin/conf_gen.h:175 ../build/bin/preferences_gen.h:7922 msgctxt "preferences" msgid "last instance" msgstr "最後のインスタンス" -#: ../build/bin/conf_gen.h:240 ../build/bin/conf_gen.h:346 -#: ../build/bin/conf_gen.h:356 ../build/bin/conf_gen.h:1186 -#: ../build/bin/conf_gen.h:1202 ../build/bin/preferences_gen.h:4137 -#: ../build/bin/preferences_gen.h:4156 ../build/bin/preferences_gen.h:4232 -#: ../build/bin/preferences_gen.h:6706 ../build/bin/preferences_gen.h:6834 -#: ../build/bin/preferences_gen.h:6899 +#: ../build/bin/conf_gen.h:252 ../build/bin/conf_gen.h:352 +#: ../build/bin/conf_gen.h:362 ../build/bin/conf_gen.h:1239 +#: ../build/bin/conf_gen.h:1255 ../build/bin/conf_gen.h:1275 +#: ../build/bin/preferences_gen.h:4747 ../build/bin/preferences_gen.h:4885 msgctxt "preferences" msgid "never" msgstr "許可しない" -#: ../build/bin/conf_gen.h:241 ../build/bin/preferences_gen.h:6711 +#: ../build/bin/conf_gen.h:253 msgctxt "preferences" msgid "once a month" msgstr "月に一度" -#: ../build/bin/conf_gen.h:242 ../build/bin/preferences_gen.h:6716 -#: ../build/bin/preferences_gen.h:6745 +#: ../build/bin/conf_gen.h:254 ../build/bin/preferences_gen.h:7138 msgctxt "preferences" msgid "once a week" msgstr "週に一度" -#: ../build/bin/conf_gen.h:243 ../build/bin/preferences_gen.h:6721 +#: ../build/bin/conf_gen.h:255 msgctxt "preferences" msgid "once a day" msgstr "日に一度" -#: ../build/bin/conf_gen.h:244 ../build/bin/preferences_gen.h:6726 +#: ../build/bin/conf_gen.h:256 msgctxt "preferences" msgid "on close" msgstr "終了時" -#: ../build/bin/conf_gen.h:280 ../build/bin/conf_gen.h:1179 -#: ../build/bin/conf_gen.h:1195 ../build/bin/preferences_gen.h:4102 -#: ../build/bin/preferences_gen.h:4197 ../build/bin/preferences_gen.h:5748 +#: ../build/bin/conf_gen.h:292 ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1248 ../build/bin/conf_gen.h:1276 msgctxt "preferences" msgid "small" msgstr "小" -#: ../build/bin/conf_gen.h:281 ../build/bin/conf_gen.h:393 -#: ../build/bin/preferences_gen.h:5753 ../build/bin/preferences_gen.h:5782 -#: ../build/bin/preferences_gen.h:5969 ../build/bin/preferences_gen.h:5998 +#: ../build/bin/conf_gen.h:293 ../build/bin/conf_gen.h:405 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6223 msgctxt "preferences" msgid "default" msgstr "デフォルト" -#: ../build/bin/conf_gen.h:282 ../build/bin/conf_gen.h:2814 -#: ../build/bin/preferences_gen.h:5758 +#: ../build/bin/conf_gen.h:294 ../build/bin/conf_gen.h:2904 msgctxt "preferences" msgid "large" msgstr "大" -#: ../build/bin/conf_gen.h:283 ../build/bin/preferences_gen.h:5763 +#: ../build/bin/conf_gen.h:295 msgctxt "preferences" msgid "unrestricted" msgstr "無制限" -#: ../build/bin/conf_gen.h:347 ../build/bin/preferences_gen.h:6839 +#: ../build/bin/conf_gen.h:353 msgctxt "preferences" msgid "after edit" msgstr "編集後" -#: ../build/bin/conf_gen.h:348 ../build/bin/preferences_gen.h:6844 -#: ../build/bin/preferences_gen.h:6863 +#: ../build/bin/conf_gen.h:354 ../build/bin/preferences_gen.h:7224 msgctxt "preferences" msgid "on import" msgstr "インポート時" -#: ../build/bin/conf_gen.h:357 ../build/bin/conf_gen.h:1178 -#: ../build/bin/conf_gen.h:1194 ../build/bin/conf_gen.h:3214 -#: ../build/bin/preferences_gen.h:4097 ../build/bin/preferences_gen.h:4192 -#: ../build/bin/preferences_gen.h:5112 ../build/bin/preferences_gen.h:5166 -#: ../build/bin/preferences_gen.h:6904 +#: ../build/bin/conf_gen.h:363 ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1247 ../build/bin/conf_gen.h:3300 +#: ../build/bin/preferences_gen.h:5644 msgctxt "preferences" msgid "always" msgstr "常に" -#: ../build/bin/conf_gen.h:358 ../build/bin/preferences_gen.h:6909 -#: ../build/bin/preferences_gen.h:6928 +#: ../build/bin/conf_gen.h:364 ../build/bin/preferences_gen.h:7259 msgctxt "preferences" msgid "only large entries" msgstr "項目が多い場合のみ" -#: ../build/bin/conf_gen.h:378 ../build/bin/preferences_gen.h:8069 +#: ../build/bin/conf_gen.h:390 msgctxt "preferences" msgid "sensitive" msgstr "区別する" -#: ../build/bin/conf_gen.h:379 ../build/bin/preferences_gen.h:8074 -#: ../build/bin/preferences_gen.h:8093 +#: ../build/bin/conf_gen.h:391 ../build/bin/preferences_gen.h:8133 msgctxt "preferences" msgid "insensitive" msgstr "区別しない" -#: ../build/bin/conf_gen.h:394 ../build/bin/preferences_gen.h:5974 +#: ../build/bin/conf_gen.h:406 msgctxt "preferences" msgid "multiple GPUs" msgstr "複数のGPU" -#: ../build/bin/conf_gen.h:395 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/conf_gen.h:407 msgctxt "preferences" msgid "very fast GPU" msgstr "非常に高速なGPU" -#: ../build/bin/conf_gen.h:403 ../build/bin/preferences_gen.h:6040 -#: ../build/bin/preferences_gen.h:6074 +#: ../build/bin/conf_gen.h:755 msgctxt "preferences" -msgid "nothing" -msgstr "無し" - -#: ../build/bin/conf_gen.h:404 ../build/bin/preferences_gen.h:6045 -msgctxt "preferences" -msgid "memory size" -msgstr "メモリのサイズ" - -#: ../build/bin/conf_gen.h:405 ../build/bin/preferences_gen.h:6050 -msgctxt "preferences" -msgid "memory transfer" -msgstr "メモリ転送" - -#: ../build/bin/conf_gen.h:406 ../build/bin/preferences_gen.h:6055 -msgctxt "preferences" -msgid "memory size and transfer" -msgstr "メモリのサイズおよび転送" - -#: ../build/bin/conf_gen.h:706 ../build/bin/preferences_gen.h:8257 -#: ../build/bin/preferences_gen.h:8281 -msgctxt "preferences" -msgid "id" -msgstr "id" +msgid "import time" +msgstr "インポート日時" -#: ../build/bin/conf_gen.h:707 ../build/bin/preferences_gen.h:8262 +#: ../build/bin/conf_gen.h:756 msgctxt "preferences" -msgid "folder" -msgstr "フォルダ" +msgid "folder name" +msgstr "フォルダ名" -#: ../build/bin/conf_gen.h:721 +#: ../build/bin/conf_gen.h:770 msgctxt "preferences" msgid "RGB" msgstr "RGB" -#: ../build/bin/conf_gen.h:722 +#: ../build/bin/conf_gen.h:771 msgctxt "preferences" msgid "Lab" msgstr "Lab" -#: ../build/bin/conf_gen.h:723 +#: ../build/bin/conf_gen.h:772 msgctxt "preferences" msgid "LCh" msgstr "LCh" -#: ../build/bin/conf_gen.h:724 +#: ../build/bin/conf_gen.h:773 msgctxt "preferences" msgid "HSL" msgstr "HSL" -#: ../build/bin/conf_gen.h:725 +#: ../build/bin/conf_gen.h:774 msgctxt "preferences" msgid "Hex" msgstr "Hex" -#: ../build/bin/conf_gen.h:726 ../build/bin/conf_gen.h:1830 -#: ../build/bin/conf_gen.h:2488 ../build/bin/conf_gen.h:2790 -#: ../build/bin/conf_gen.h:3044 ../build/bin/preferences_gen.h:5577 -#: ../build/bin/preferences_gen.h:6561 +#: ../build/bin/conf_gen.h:775 ../build/bin/conf_gen.h:1916 +#: ../build/bin/conf_gen.h:2578 ../build/bin/conf_gen.h:2880 +#: ../build/bin/conf_gen.h:3136 msgctxt "preferences" msgid "none" msgstr "なし" -#: ../build/bin/conf_gen.h:734 +#: ../build/bin/conf_gen.h:783 msgctxt "preferences" msgid "mean" msgstr "平均" -#: ../build/bin/conf_gen.h:735 +#: ../build/bin/conf_gen.h:784 msgctxt "preferences" msgid "min" msgstr "最小" -#: ../build/bin/conf_gen.h:736 +#: ../build/bin/conf_gen.h:785 msgctxt "preferences" msgid "max" msgstr "最大" -#: ../build/bin/conf_gen.h:924 +#: ../build/bin/conf_gen.h:973 msgid "select only new pictures" msgstr "新しい写真のみ選択" -#: ../build/bin/conf_gen.h:925 +#: ../build/bin/conf_gen.h:974 msgid "only select images that have not already been imported" msgstr "インポートされていない画像のみ選択" -#: ../build/bin/conf_gen.h:930 -msgid "ignore JPEG images" -msgstr "JPEG画像を無視" +#: ../build/bin/conf_gen.h:979 +msgid "ignore non-raw images" +msgstr "非raw画像を無視" -#: ../build/bin/conf_gen.h:931 +#: ../build/bin/conf_gen.h:980 msgid "" -"when having raw+JPEG images together in one directory it makes no sense to " -"import both. with this flag one can ignore all JPEGs found." +"if enabled, only raw files will be allowed to import. non-raw files will not " +"be visible in the dialog and will not be imported." msgstr "" -"同一のディレクトリ内にRAW+JPEG画像がある時、両方ともにインポートする意味はあ" -"りません\n" -"このフラグによって、検出された全てのJPEG画像を無視することが出来ます" +"有効にした場合、rawファイルのみインポートすることが出来るようになります。非" +"rawファイルはダイアログ内に表示されなくなり、インポートされなくなります" -#: ../build/bin/conf_gen.h:936 +#: ../build/bin/conf_gen.h:985 msgid "apply metadata" msgstr "メタデータを適用" -#: ../build/bin/conf_gen.h:937 +#: ../build/bin/conf_gen.h:986 msgid "apply some metadata to all newly imported images." msgstr "新しくインポートした画像全てにメタデータを適用します" -#: ../build/bin/conf_gen.h:942 +#: ../build/bin/conf_gen.h:991 msgid "recursive directory" msgstr "再帰ディレクトリ" -#: ../build/bin/conf_gen.h:943 +#: ../build/bin/conf_gen.h:992 msgid "recursive directory traversal when importing filmrolls" msgstr "フィルムロールをインポートする時、再帰的にディレクトリを辿ります" -#: ../build/bin/conf_gen.h:948 +#: ../build/bin/conf_gen.h:997 msgid "creator to be applied when importing" msgstr "インポート時に適用する作成者" -#: ../build/bin/conf_gen.h:954 +#: ../build/bin/conf_gen.h:1003 msgid "publisher to be applied when importing" msgstr "インポート時に適用する発行者" -#: ../build/bin/conf_gen.h:960 +#: ../build/bin/conf_gen.h:1009 msgid "rights to be applied when importing" msgstr "インポート時に適用される権利" -#: ../build/bin/conf_gen.h:966 +#: ../build/bin/conf_gen.h:1015 msgid "comma separated tags to be applied when importing" msgstr "インポート時に適用されるタグ。コンマで区切られています" -#: ../build/bin/conf_gen.h:972 +#: ../build/bin/conf_gen.h:1021 msgid "import tags from XMP" msgstr "XMPからタグをインポート" -#: ../build/bin/conf_gen.h:998 +#: ../build/bin/conf_gen.h:1051 msgid "initial rating" msgstr "評価の初期設定値" -#: ../build/bin/conf_gen.h:999 +#: ../build/bin/conf_gen.h:1052 msgid "initial star rating for all images when importing a filmroll" msgstr "" "フィルムロールをインポートする時に全ての画像につけられる評価の初期設定値" -#: ../build/bin/conf_gen.h:1004 +#: ../build/bin/conf_gen.h:1057 msgid "ignore EXIF rating" msgstr "exif上の評価を無視" -#: ../build/bin/conf_gen.h:1005 +#: ../build/bin/conf_gen.h:1058 msgid "" "ignore EXIF rating. if not set and EXIF rating is found, it overrides " "'initial rating'" @@ -290,19 +254,19 @@ "exif上の評価を無視します。この設定を適用せず、exif上に評価が検出された場合、" "その評価値を「評価の初期設定値」に対して上書きします" -#: ../build/bin/conf_gen.h:1010 +#: ../build/bin/conf_gen.h:1063 msgid "import job" msgstr "インポート作業" -#: ../build/bin/conf_gen.h:1011 +#: ../build/bin/conf_gen.h:1064 msgid "name of the import job" msgstr "インポート作業名" -#: ../build/bin/conf_gen.h:1016 +#: ../build/bin/conf_gen.h:1069 msgid "override today's date" msgstr "今日の日付を上書き" -#: ../build/bin/conf_gen.h:1017 +#: ../build/bin/conf_gen.h:1070 msgid "" "type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override " "the current date/time used when expanding variables:\n" @@ -314,461 +278,449 @@ "有効な日時をここに入力してください(YYYY:MM:DD[ hh:mm:ss[.sss]] )\n" "上書きしたくない場合は空欄にしてください" -#: ../build/bin/conf_gen.h:1022 +#: ../build/bin/conf_gen.h:1075 msgid "keep this window open" msgstr "このウィンドウを開き続ける" -#: ../build/bin/conf_gen.h:1023 +#: ../build/bin/conf_gen.h:1076 msgid "keep this window open to run several imports" msgstr "このウィンドウを開いたままにし、複数のインポートを実行します" -#: ../build/bin/conf_gen.h:1180 ../build/bin/conf_gen.h:1196 -#: ../build/bin/preferences_gen.h:4107 ../build/bin/preferences_gen.h:4202 +#: ../build/bin/conf_gen.h:1233 ../build/bin/conf_gen.h:1249 +#: ../build/bin/conf_gen.h:1277 msgctxt "preferences" msgid "VGA" msgstr "VGA" -#: ../build/bin/conf_gen.h:1181 ../build/bin/conf_gen.h:1197 -#: ../build/bin/preferences_gen.h:4112 ../build/bin/preferences_gen.h:4207 -#: ../build/bin/preferences_gen.h:4251 +#: ../build/bin/conf_gen.h:1234 ../build/bin/conf_gen.h:1250 +#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4782 msgctxt "preferences" msgid "720p" msgstr "720p" -#: ../build/bin/conf_gen.h:1182 ../build/bin/conf_gen.h:1198 -#: ../build/bin/preferences_gen.h:4117 ../build/bin/preferences_gen.h:4212 +#: ../build/bin/conf_gen.h:1235 ../build/bin/conf_gen.h:1251 +#: ../build/bin/conf_gen.h:1279 msgctxt "preferences" msgid "1080p" msgstr "1080p" -#: ../build/bin/conf_gen.h:1183 ../build/bin/conf_gen.h:1199 -#: ../build/bin/preferences_gen.h:4122 ../build/bin/preferences_gen.h:4217 +#: ../build/bin/conf_gen.h:1236 ../build/bin/conf_gen.h:1252 +#: ../build/bin/conf_gen.h:1280 msgctxt "preferences" msgid "WQXGA" msgstr "WQXGA" -#: ../build/bin/conf_gen.h:1184 ../build/bin/conf_gen.h:1200 -#: ../build/bin/preferences_gen.h:4127 ../build/bin/preferences_gen.h:4222 +#: ../build/bin/conf_gen.h:1237 ../build/bin/conf_gen.h:1253 +#: ../build/bin/conf_gen.h:1281 msgctxt "preferences" msgid "4K" msgstr "4K" -#: ../build/bin/conf_gen.h:1185 ../build/bin/conf_gen.h:1201 -#: ../build/bin/preferences_gen.h:4132 ../build/bin/preferences_gen.h:4227 +#: ../build/bin/conf_gen.h:1238 ../build/bin/conf_gen.h:1254 +#: ../build/bin/conf_gen.h:1282 msgctxt "preferences" msgid "5K" msgstr "5K" -#: ../build/bin/conf_gen.h:1228 +#: ../build/bin/conf_gen.h:1314 msgctxt "preferences" msgid "off" msgstr "オフ" -#: ../build/bin/conf_gen.h:1229 +#: ../build/bin/conf_gen.h:1315 msgctxt "preferences" msgid "hardness (relative)" msgstr "硬さ (相対)" -#: ../build/bin/conf_gen.h:1230 +#: ../build/bin/conf_gen.h:1316 msgctxt "preferences" msgid "hardness (absolute)" msgstr "硬さ (絶対)" -#: ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1317 msgctxt "preferences" msgid "opacity (relative)" msgstr "不透明度 (相対)" -#: ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1318 msgctxt "preferences" msgid "opacity (absolute)" msgstr "不透明度 (絶対)" -#: ../build/bin/conf_gen.h:1233 +#: ../build/bin/conf_gen.h:1319 msgctxt "preferences" msgid "brush size (relative)" msgstr "ブラシサイズ (相対)" -#: ../build/bin/conf_gen.h:1241 +#: ../build/bin/conf_gen.h:1327 msgctxt "preferences" msgid "low" msgstr "低" -#: ../build/bin/conf_gen.h:1242 +#: ../build/bin/conf_gen.h:1328 msgctxt "preferences" msgid "medium" msgstr "中" -#: ../build/bin/conf_gen.h:1243 +#: ../build/bin/conf_gen.h:1329 msgctxt "preferences" msgid "high" msgstr "高" -#: ../build/bin/conf_gen.h:1263 ../build/bin/preferences_gen.h:4836 -#: ../build/bin/preferences_gen.h:4860 +#: ../build/bin/conf_gen.h:1349 ../build/bin/preferences_gen.h:5405 msgctxt "preferences" msgid "false color" msgstr "偽色" -#: ../build/bin/conf_gen.h:1264 ../build/bin/preferences_gen.h:4841 +#: ../build/bin/conf_gen.h:1350 msgctxt "preferences" msgid "grayscale" msgstr "グレースケール" -#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4567 +#: ../build/bin/conf_gen.h:1364 msgctxt "preferences" msgid "top left" msgstr "上 左" -#: ../build/bin/conf_gen.h:1279 ../build/bin/preferences_gen.h:4572 +#: ../build/bin/conf_gen.h:1365 msgctxt "preferences" msgid "top right" msgstr "上 右" -#: ../build/bin/conf_gen.h:1280 ../build/bin/preferences_gen.h:4577 +#: ../build/bin/conf_gen.h:1366 msgctxt "preferences" msgid "top center" msgstr "上 中央" -#: ../build/bin/conf_gen.h:1281 ../build/bin/preferences_gen.h:4582 -#: ../build/bin/preferences_gen.h:4606 +#: ../build/bin/conf_gen.h:1367 ../build/bin/preferences_gen.h:5217 msgctxt "preferences" msgid "bottom" msgstr "下" -#: ../build/bin/conf_gen.h:1282 ../build/bin/preferences_gen.h:4587 +#: ../build/bin/conf_gen.h:1368 msgctxt "preferences" msgid "hidden" msgstr "非表示" -#: ../build/bin/conf_gen.h:1792 +#: ../build/bin/conf_gen.h:1878 msgid "show OSD" msgstr "OSDを表示" -#: ../build/bin/conf_gen.h:1793 +#: ../build/bin/conf_gen.h:1879 msgid "toggle the visibility of the map overlays" msgstr "地図のオーバーレイの表示/非表示の切り替え" -#: ../build/bin/conf_gen.h:1798 ../src/libs/map_settings.c:146 +#: ../build/bin/conf_gen.h:1884 ../src/libs/map_settings.c:119 msgid "filtered images" msgstr "画像を絞り込む" -#: ../build/bin/conf_gen.h:1799 +#: ../build/bin/conf_gen.h:1885 msgid "when set limit the images drawn to the current filmstrip" msgstr "" "チェックすると、表示する画像を現在のフィルムストリップの画像に制限します" -#: ../build/bin/conf_gen.h:1806 +#: ../build/bin/conf_gen.h:1892 msgid "max images" msgstr "画像の最大数" -#: ../build/bin/conf_gen.h:1807 +#: ../build/bin/conf_gen.h:1893 msgid "the maximum number of image thumbnails drawn on the map" msgstr "地図上に表示される画像サムネイルの最大数" -#: ../build/bin/conf_gen.h:1814 +#: ../build/bin/conf_gen.h:1900 msgid "group size factor" msgstr "グループのサイズ" -#: ../build/bin/conf_gen.h:1815 +#: ../build/bin/conf_gen.h:1901 msgid "" "increase or decrease the spatial size of images groups on the map. can " "influence the calculation time" msgstr "" "地図上の画像グループの空間的サイズを増減します。計算時間に影響をおよぼします" -#: ../build/bin/conf_gen.h:1822 +#: ../build/bin/conf_gen.h:1908 msgid "min images per group" msgstr "グループごとの最小イメージ数" -#: ../build/bin/conf_gen.h:1823 +#: ../build/bin/conf_gen.h:1909 msgid "" "the minimum number of images to set up an images group. can influence the " "calculation time." msgstr "画像グループを構成するための画像の最少数。計算時間に影響をおよぼします" -#: ../build/bin/conf_gen.h:1828 +#: ../build/bin/conf_gen.h:1914 msgctxt "preferences" msgid "thumbnail" msgstr "サムネイル" -#: ../build/bin/conf_gen.h:1829 +#: ../build/bin/conf_gen.h:1915 msgctxt "preferences" msgid "count" msgstr "総数" -#: ../build/bin/conf_gen.h:1832 ../src/libs/map_settings.c:159 +#: ../build/bin/conf_gen.h:1918 msgid "thumbnail display" msgstr "サムネイル表示" -#: ../build/bin/conf_gen.h:1833 +#: ../build/bin/conf_gen.h:1919 msgid "" "three options are available: images thumbnails, only the count of images of " "the group or nothing" msgstr "三つの選択肢があります。画像サムネイル、グループの画像の総数、表示なし" -#: ../build/bin/conf_gen.h:1844 +#: ../build/bin/conf_gen.h:1930 msgid "max polygon points" msgstr "ポリゴン点の最大数" -#: ../build/bin/conf_gen.h:1845 +#: ../build/bin/conf_gen.h:1931 msgid "" "limit the number of points imported with polygon in find location module" msgstr "" "【ロケーションを検索】モジュールでポリゴンによってインポートされる点の数を制" "限します" -#: ../build/bin/conf_gen.h:2135 ../build/bin/preferences_gen.h:4722 -#: ../build/bin/preferences_gen.h:4756 +#: ../build/bin/conf_gen.h:2221 ../build/bin/preferences_gen.h:5329 msgctxt "preferences" msgid "original" msgstr "オリジナル" -#: ../build/bin/conf_gen.h:2136 ../build/bin/preferences_gen.h:4727 +#: ../build/bin/conf_gen.h:2222 msgctxt "preferences" msgid "to 1/2" msgstr "1/2まで" -#: ../build/bin/conf_gen.h:2137 ../build/bin/preferences_gen.h:4732 +#: ../build/bin/conf_gen.h:2223 msgctxt "preferences" msgid "to 1/3" msgstr "1/3まで" -#: ../build/bin/conf_gen.h:2138 ../build/bin/preferences_gen.h:4737 +#: ../build/bin/conf_gen.h:2224 msgctxt "preferences" msgid "to 1/4" msgstr "1/4まで" -#: ../build/bin/conf_gen.h:2152 ../build/bin/conf_gen.h:2162 -#: ../build/bin/preferences_gen.h:5384 ../build/bin/preferences_gen.h:5449 +#: ../build/bin/conf_gen.h:2244 ../build/bin/conf_gen.h:2254 msgctxt "preferences" msgid "bilinear" msgstr "バイリニア" -#: ../build/bin/conf_gen.h:2153 ../build/bin/conf_gen.h:2163 -#: ../build/bin/preferences_gen.h:5389 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5454 +#: ../build/bin/conf_gen.h:2245 ../build/bin/conf_gen.h:2255 +#: ../build/bin/preferences_gen.h:5847 msgctxt "preferences" msgid "bicubic" msgstr "バイキュービック" -#: ../build/bin/conf_gen.h:2154 ../build/bin/conf_gen.h:2164 -#: ../build/bin/preferences_gen.h:5394 ../build/bin/preferences_gen.h:5459 +#: ../build/bin/conf_gen.h:2246 ../build/bin/conf_gen.h:2256 msgctxt "preferences" msgid "lanczos2" msgstr "ランチョス2" -#: ../build/bin/conf_gen.h:2165 ../build/bin/preferences_gen.h:5464 -#: ../build/bin/preferences_gen.h:5483 +#: ../build/bin/conf_gen.h:2257 ../build/bin/preferences_gen.h:5882 msgctxt "preferences" msgid "lanczos3" msgstr "ランチョス3" -#: ../build/bin/conf_gen.h:2487 ../build/bin/conf_gen.h:3217 -#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:6556 -#: ../build/bin/preferences_gen.h:6592 +#: ../build/bin/conf_gen.h:2577 ../build/bin/conf_gen.h:3303 +#: ../build/bin/preferences_gen.h:7032 msgctxt "preferences" msgid "auto" msgstr "自動" -#: ../build/bin/conf_gen.h:2489 ../build/bin/preferences_gen.h:6566 +#: ../build/bin/conf_gen.h:2579 msgctxt "preferences" msgid "libsecret" msgstr "libsecret" -#: ../build/bin/conf_gen.h:2490 ../build/bin/preferences_gen.h:6572 +#: ../build/bin/conf_gen.h:2580 msgctxt "preferences" msgid "kwallet" msgstr "kwallet" -#: ../build/bin/conf_gen.h:2700 +#: ../build/bin/conf_gen.h:2790 msgctxt "preferences" msgid "vectorscope" msgstr "ベクトルスコープ" -#: ../build/bin/conf_gen.h:2701 +#: ../build/bin/conf_gen.h:2791 msgctxt "preferences" msgid "waveform" msgstr "波形" -#: ../build/bin/conf_gen.h:2702 +#: ../build/bin/conf_gen.h:2792 msgctxt "preferences" msgid "RGB parade" msgstr "RGBパレード" -#: ../build/bin/conf_gen.h:2703 +#: ../build/bin/conf_gen.h:2793 msgctxt "preferences" msgid "histogram" msgstr "ヒストグラム" -#: ../build/bin/conf_gen.h:2711 ../build/bin/preferences_gen.h:7264 +#: ../build/bin/conf_gen.h:2801 msgctxt "preferences" msgid "left" msgstr "左" -#: ../build/bin/conf_gen.h:2712 ../build/bin/preferences_gen.h:7269 -#: ../build/bin/preferences_gen.h:7288 +#: ../build/bin/conf_gen.h:2802 ../build/bin/preferences_gen.h:7619 msgctxt "preferences" msgid "right" msgstr "右" -#: ../build/bin/conf_gen.h:2720 ../build/bin/conf_gen.h:2757 +#: ../build/bin/conf_gen.h:2810 ../build/bin/conf_gen.h:2847 msgctxt "preferences" msgid "logarithmic" msgstr "対数" -#: ../build/bin/conf_gen.h:2721 ../build/bin/conf_gen.h:2758 +#: ../build/bin/conf_gen.h:2811 ../build/bin/conf_gen.h:2848 msgctxt "preferences" msgid "linear" msgstr "線形" -#: ../build/bin/conf_gen.h:2729 +#: ../build/bin/conf_gen.h:2819 msgctxt "preferences" msgid "horizontal" msgstr "水平" -#: ../build/bin/conf_gen.h:2730 +#: ../build/bin/conf_gen.h:2820 msgctxt "preferences" msgid "vertical" msgstr "垂直" -#: ../build/bin/conf_gen.h:2738 +#: ../build/bin/conf_gen.h:2828 msgctxt "preferences" msgid "overlaid" msgstr "オーバーレイ" -#: ../build/bin/conf_gen.h:2739 +#: ../build/bin/conf_gen.h:2829 msgctxt "preferences" msgid "parade" msgstr "パレード" -#: ../build/bin/conf_gen.h:2747 +#: ../build/bin/conf_gen.h:2837 msgctxt "preferences" msgid "u*v*" msgstr "u*v*" -#: ../build/bin/conf_gen.h:2748 +#: ../build/bin/conf_gen.h:2838 msgctxt "preferences" msgid "AzBz" msgstr "AzBz" -#: ../build/bin/conf_gen.h:2749 +#: ../build/bin/conf_gen.h:2839 msgctxt "preferences" msgid "RYB" msgstr "RYB" -#: ../build/bin/conf_gen.h:2791 +#: ../build/bin/conf_gen.h:2881 msgctxt "preferences" msgid "monochromatic" msgstr "単色" -#: ../build/bin/conf_gen.h:2792 +#: ../build/bin/conf_gen.h:2882 msgctxt "preferences" msgid "analogous" msgstr "類似色" -#: ../build/bin/conf_gen.h:2793 +#: ../build/bin/conf_gen.h:2883 msgctxt "preferences" msgid "analogous complementary" msgstr "類似色と補色" -#: ../build/bin/conf_gen.h:2794 +#: ../build/bin/conf_gen.h:2884 msgctxt "preferences" msgid "complementary" msgstr "補色" -#: ../build/bin/conf_gen.h:2795 +#: ../build/bin/conf_gen.h:2885 msgctxt "preferences" msgid "split complementary" msgstr "分裂補色(スプリットコンプリメンタリー)" -#: ../build/bin/conf_gen.h:2796 +#: ../build/bin/conf_gen.h:2886 msgctxt "preferences" msgid "dyad" msgstr "ダイアード" -#: ../build/bin/conf_gen.h:2797 +#: ../build/bin/conf_gen.h:2887 msgctxt "preferences" msgid "triad" msgstr "トライアド" -#: ../build/bin/conf_gen.h:2798 +#: ../build/bin/conf_gen.h:2888 msgctxt "preferences" msgid "tetrad" msgstr "テトラード" -#: ../build/bin/conf_gen.h:2799 +#: ../build/bin/conf_gen.h:2889 msgctxt "preferences" msgid "square" msgstr "スクエア" -#: ../build/bin/conf_gen.h:2813 +#: ../build/bin/conf_gen.h:2903 msgctxt "preferences" msgid "normal" msgstr "標準" -#: ../build/bin/conf_gen.h:2815 +#: ../build/bin/conf_gen.h:2905 msgctxt "preferences" msgid "narrow" msgstr "小" -#: ../build/bin/conf_gen.h:2816 +#: ../build/bin/conf_gen.h:2906 msgctxt "preferences" msgid "line" msgstr "線" -#: ../build/bin/conf_gen.h:2956 +#: ../build/bin/conf_gen.h:3046 msgctxt "preferences" msgid "mm" msgstr "mm" -#: ../build/bin/conf_gen.h:2957 +#: ../build/bin/conf_gen.h:3047 msgctxt "preferences" msgid "cm" msgstr "cm" -#: ../build/bin/conf_gen.h:2958 +#: ../build/bin/conf_gen.h:3048 msgctxt "preferences" msgid "inch" msgstr "inch" -#: ../build/bin/conf_gen.h:3003 ../build/bin/preferences_gen.h:7324 -#: ../build/bin/preferences_gen.h:7353 +#: ../build/bin/conf_gen.h:3093 ../build/bin/preferences_gen.h:7654 msgctxt "preferences" msgid "all" msgstr "全て" -#: ../build/bin/conf_gen.h:3004 ../build/bin/preferences_gen.h:7329 +#: ../build/bin/conf_gen.h:3094 msgctxt "preferences" msgid "xatom" msgstr "xatom" -#: ../build/bin/conf_gen.h:3005 ../build/bin/preferences_gen.h:7334 +#: ../build/bin/conf_gen.h:3095 msgctxt "preferences" msgid "colord" msgstr "colord" -#: ../build/bin/conf_gen.h:3041 ../build/bin/preferences_gen.h:5562 -#: ../build/bin/preferences_gen.h:5596 +#: ../build/bin/conf_gen.h:3133 ../build/bin/preferences_gen.h:5958 msgctxt "preferences" msgid "scene-referred (filmic)" msgstr "シーン参照(フィルミック)" -#: ../build/bin/conf_gen.h:3042 ../build/bin/preferences_gen.h:5567 +#: ../build/bin/conf_gen.h:3134 msgctxt "preferences" msgid "scene-referred (sigmoid)" msgstr "シーン参照(シグモイド)" -#: ../build/bin/conf_gen.h:3043 ../build/bin/preferences_gen.h:5572 +#: ../build/bin/conf_gen.h:3135 msgctxt "preferences" msgid "display-referred (legacy)" msgstr "ディスプレイ参照(旧式)" -#: ../build/bin/conf_gen.h:3144 +#: ../build/bin/conf_gen.h:3230 msgid "camera time zone" msgstr "カメラのタイムゾーン" -#: ../build/bin/conf_gen.h:3145 +#: ../build/bin/conf_gen.h:3231 msgid "" "most cameras don't store the time zone in EXIF. give the correct time zone " "so the GPX data can be correctly matched" @@ -776,213 +728,273 @@ "ほとんどのカメラは EXIFにタイムゾーンを記録していません。GPXデータが正しく合" "うように、正確なタイムゾーンを入力してください" -#: ../build/bin/conf_gen.h:3156 +#: ../build/bin/conf_gen.h:3242 msgctxt "preferences" msgid "no color" msgstr "無色" -#: ../build/bin/conf_gen.h:3157 +#: ../build/bin/conf_gen.h:3243 msgctxt "preferences" msgid "illuminant color" msgstr "イルミナントの色" -#: ../build/bin/conf_gen.h:3158 +#: ../build/bin/conf_gen.h:3244 msgctxt "preferences" msgid "effect emulation" msgstr "効果の疑似表示" -#: ../build/bin/conf_gen.h:3204 +#: ../build/bin/conf_gen.h:3290 msgctxt "preferences" msgid "list" msgstr "リスト" -#: ../build/bin/conf_gen.h:3205 +#: ../build/bin/conf_gen.h:3291 msgctxt "preferences" msgid "tabs" msgstr "タブ" -#: ../build/bin/conf_gen.h:3206 +#: ../build/bin/conf_gen.h:3292 msgctxt "preferences" msgid "columns" msgstr "列" -#: ../build/bin/conf_gen.h:3215 ../build/bin/preferences_gen.h:5117 +#: ../build/bin/conf_gen.h:3301 msgctxt "preferences" msgid "active" msgstr "アクティブ" -#: ../build/bin/conf_gen.h:3216 ../build/bin/preferences_gen.h:5122 +#: ../build/bin/conf_gen.h:3302 msgctxt "preferences" msgid "dim" msgstr "薄く表示" -#: ../build/bin/conf_gen.h:3218 ../build/bin/preferences_gen.h:5132 +#: ../build/bin/conf_gen.h:3304 msgctxt "preferences" msgid "fade" msgstr "フェード" -#: ../build/bin/conf_gen.h:3219 ../build/bin/preferences_gen.h:5137 +#: ../build/bin/conf_gen.h:3305 msgctxt "preferences" msgid "fit" msgstr "フィット" -#: ../build/bin/conf_gen.h:3220 ../build/bin/preferences_gen.h:5142 +#: ../build/bin/conf_gen.h:3306 msgctxt "preferences" msgid "smooth" msgstr "スムーズ" -#: ../build/bin/conf_gen.h:3221 ../build/bin/preferences_gen.h:5147 +#: ../build/bin/conf_gen.h:3307 msgctxt "preferences" msgid "glide" msgstr "徐々に非表示" -#: ../build/bin/preferences_gen.h:81 ../build/bin/preferences_gen.h:3823 -#: ../build/bin/preferences_gen.h:3859 ../build/bin/preferences_gen.h:3895 -#: ../build/bin/preferences_gen.h:3931 ../build/bin/preferences_gen.h:3967 -#: ../build/bin/preferences_gen.h:4003 ../build/bin/preferences_gen.h:4039 -#: ../build/bin/preferences_gen.h:4083 ../build/bin/preferences_gen.h:4178 -#: ../build/bin/preferences_gen.h:4273 ../build/bin/preferences_gen.h:4313 -#: ../build/bin/preferences_gen.h:4356 ../build/bin/preferences_gen.h:4437 -#: ../build/bin/preferences_gen.h:4473 ../build/bin/preferences_gen.h:4510 -#: ../build/bin/preferences_gen.h:4553 ../build/bin/preferences_gen.h:4627 -#: ../build/bin/preferences_gen.h:4672 ../build/bin/preferences_gen.h:4708 -#: ../build/bin/preferences_gen.h:4778 ../build/bin/preferences_gen.h:4822 -#: ../build/bin/preferences_gen.h:4882 ../build/bin/preferences_gen.h:4918 -#: ../build/bin/preferences_gen.h:4954 ../build/bin/preferences_gen.h:4990 -#: ../build/bin/preferences_gen.h:5026 ../build/bin/preferences_gen.h:5062 -#: ../build/bin/preferences_gen.h:5098 ../build/bin/preferences_gen.h:5188 -#: ../build/bin/preferences_gen.h:5224 ../build/bin/preferences_gen.h:5260 -#: ../build/bin/preferences_gen.h:5334 ../build/bin/preferences_gen.h:5370 -#: ../build/bin/preferences_gen.h:5435 ../build/bin/preferences_gen.h:5505 -#: ../build/bin/preferences_gen.h:5548 ../build/bin/preferences_gen.h:5618 -#: ../build/bin/preferences_gen.h:5654 ../build/bin/preferences_gen.h:5690 -#: ../build/bin/preferences_gen.h:5734 ../build/bin/preferences_gen.h:5805 -#: ../build/bin/preferences_gen.h:5841 ../build/bin/preferences_gen.h:5877 -#: ../build/bin/preferences_gen.h:5913 ../build/bin/preferences_gen.h:5955 -#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6140 -#: ../build/bin/preferences_gen.h:6176 ../build/bin/preferences_gen.h:6212 -#: ../build/bin/preferences_gen.h:6248 ../build/bin/preferences_gen.h:6284 -#: ../build/bin/preferences_gen.h:6320 ../build/bin/preferences_gen.h:6356 -#: ../build/bin/preferences_gen.h:6392 ../build/bin/preferences_gen.h:6427 -#: ../build/bin/preferences_gen.h:6462 ../build/bin/preferences_gen.h:6498 -#: ../build/bin/preferences_gen.h:6542 ../build/bin/preferences_gen.h:6614 -#: ../build/bin/preferences_gen.h:6692 ../build/bin/preferences_gen.h:6767 -#: ../build/bin/preferences_gen.h:6820 ../build/bin/preferences_gen.h:6885 -#: ../build/bin/preferences_gen.h:6950 ../build/bin/preferences_gen.h:7024 -#: ../build/bin/preferences_gen.h:7060 ../build/bin/preferences_gen.h:7096 -#: ../build/bin/preferences_gen.h:7132 ../build/bin/preferences_gen.h:7168 -#: ../build/bin/preferences_gen.h:7204 ../build/bin/preferences_gen.h:7250 -#: ../build/bin/preferences_gen.h:7310 ../build/bin/preferences_gen.h:7375 -#: ../build/bin/preferences_gen.h:7429 ../build/bin/preferences_gen.h:7474 -#: ../build/bin/preferences_gen.h:7510 ../build/bin/preferences_gen.h:7546 -#: ../build/bin/preferences_gen.h:7582 ../build/bin/preferences_gen.h:7618 -#: ../build/bin/preferences_gen.h:7678 ../build/bin/preferences_gen.h:7722 -#: ../build/bin/preferences_gen.h:7766 ../build/bin/preferences_gen.h:7848 -#: ../build/bin/preferences_gen.h:7888 ../build/bin/preferences_gen.h:7928 -#: ../build/bin/preferences_gen.h:7964 ../build/bin/preferences_gen.h:8019 -#: ../build/bin/preferences_gen.h:8055 ../build/bin/preferences_gen.h:8115 -#: ../build/bin/preferences_gen.h:8161 ../build/bin/preferences_gen.h:8197 -#: ../build/bin/preferences_gen.h:8243 ../build/bin/preferences_gen.h:8303 -#: ../build/bin/preferences_gen.h:8355 ../build/bin/preferences_gen.h:8401 -#: ../build/bin/preferences_gen.h:8469 ../build/bin/preferences_gen.h:8516 +#: ../build/bin/preferences_gen.h:77 ../build/bin/preferences_gen.h:4305 +#: ../build/bin/preferences_gen.h:4344 ../build/bin/preferences_gen.h:4383 +#: ../build/bin/preferences_gen.h:4417 ../build/bin/preferences_gen.h:4488 +#: ../build/bin/preferences_gen.h:4522 ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:4590 ../build/bin/preferences_gen.h:4624 +#: ../build/bin/preferences_gen.h:4658 ../build/bin/preferences_gen.h:4692 +#: ../build/bin/preferences_gen.h:4733 ../build/bin/preferences_gen.h:4768 +#: ../build/bin/preferences_gen.h:4803 ../build/bin/preferences_gen.h:4837 +#: ../build/bin/preferences_gen.h:4871 ../build/bin/preferences_gen.h:4906 +#: ../build/bin/preferences_gen.h:4940 ../build/bin/preferences_gen.h:4979 +#: ../build/bin/preferences_gen.h:5020 ../build/bin/preferences_gen.h:5093 +#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:5162 +#: ../build/bin/preferences_gen.h:5203 ../build/bin/preferences_gen.h:5237 +#: ../build/bin/preferences_gen.h:5281 ../build/bin/preferences_gen.h:5315 +#: ../build/bin/preferences_gen.h:5350 ../build/bin/preferences_gen.h:5391 +#: ../build/bin/preferences_gen.h:5426 ../build/bin/preferences_gen.h:5460 +#: ../build/bin/preferences_gen.h:5494 ../build/bin/preferences_gen.h:5528 +#: ../build/bin/preferences_gen.h:5562 ../build/bin/preferences_gen.h:5596 +#: ../build/bin/preferences_gen.h:5630 ../build/bin/preferences_gen.h:5665 +#: ../build/bin/preferences_gen.h:5699 ../build/bin/preferences_gen.h:5733 +#: ../build/bin/preferences_gen.h:5799 ../build/bin/preferences_gen.h:5833 +#: ../build/bin/preferences_gen.h:5868 ../build/bin/preferences_gen.h:5903 +#: ../build/bin/preferences_gen.h:5944 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/preferences_gen.h:6013 ../build/bin/preferences_gen.h:6047 +#: ../build/bin/preferences_gen.h:6088 ../build/bin/preferences_gen.h:6124 +#: ../build/bin/preferences_gen.h:6165 ../build/bin/preferences_gen.h:6209 +#: ../build/bin/preferences_gen.h:6254 ../build/bin/preferences_gen.h:6305 +#: ../build/bin/preferences_gen.h:6349 ../build/bin/preferences_gen.h:6393 +#: ../build/bin/preferences_gen.h:6437 ../build/bin/preferences_gen.h:6481 +#: ../build/bin/preferences_gen.h:6525 ../build/bin/preferences_gen.h:6569 +#: ../build/bin/preferences_gen.h:6635 ../build/bin/preferences_gen.h:6669 +#: ../build/bin/preferences_gen.h:6703 ../build/bin/preferences_gen.h:6737 +#: ../build/bin/preferences_gen.h:6771 ../build/bin/preferences_gen.h:6805 +#: ../build/bin/preferences_gen.h:6839 ../build/bin/preferences_gen.h:6873 +#: ../build/bin/preferences_gen.h:6906 ../build/bin/preferences_gen.h:6939 +#: ../build/bin/preferences_gen.h:6973 ../build/bin/preferences_gen.h:7014 +#: ../build/bin/preferences_gen.h:7053 ../build/bin/preferences_gen.h:7124 +#: ../build/bin/preferences_gen.h:7159 ../build/bin/preferences_gen.h:7210 +#: ../build/bin/preferences_gen.h:7245 ../build/bin/preferences_gen.h:7280 +#: ../build/bin/preferences_gen.h:7324 ../build/bin/preferences_gen.h:7390 +#: ../build/bin/preferences_gen.h:7424 ../build/bin/preferences_gen.h:7458 +#: ../build/bin/preferences_gen.h:7492 ../build/bin/preferences_gen.h:7526 +#: ../build/bin/preferences_gen.h:7560 ../build/bin/preferences_gen.h:7605 +#: ../build/bin/preferences_gen.h:7640 ../build/bin/preferences_gen.h:7675 +#: ../build/bin/preferences_gen.h:7731 ../build/bin/preferences_gen.h:7772 +#: ../build/bin/preferences_gen.h:7806 ../build/bin/preferences_gen.h:7840 +#: ../build/bin/preferences_gen.h:7874 ../build/bin/preferences_gen.h:7908 +#: ../build/bin/preferences_gen.h:7943 ../build/bin/preferences_gen.h:7984 +#: ../build/bin/preferences_gen.h:8025 ../build/bin/preferences_gen.h:8085 +#: ../build/bin/preferences_gen.h:8119 ../build/bin/preferences_gen.h:8154 +#: ../build/bin/preferences_gen.h:8199 ../build/bin/preferences_gen.h:8233 +#: ../build/bin/preferences_gen.h:8278 ../build/bin/preferences_gen.h:8313 +#: ../build/bin/preferences_gen.h:8365 ../build/bin/preferences_gen.h:8410 +#: ../build/bin/preferences_gen.h:8480 ../build/bin/preferences_gen.h:8526 msgid "this setting has been modified" msgstr "この設定は変更されています" #. doesn't seem to work from gtkrc -#: ../build/bin/preferences_gen.h:3793 ../build/bin/preferences_gen.h:4407 -#: ../build/bin/preferences_gen.h:5304 ../build/bin/preferences_gen.h:6110 -#: ../build/bin/preferences_gen.h:6662 ../build/bin/preferences_gen.h:6994 -#: ../build/bin/preferences_gen.h:7818 ../src/gui/accelerators.c:2724 -#: ../src/gui/gtk.c:2580 ../src/gui/preferences.c:421 -#: ../src/gui/preferences.c:876 ../src/libs/modulegroups.c:3886 +#: ../build/bin/preferences_gen.h:4277 ../build/bin/preferences_gen.h:4460 +#: ../build/bin/preferences_gen.h:5065 ../build/bin/preferences_gen.h:5771 +#: ../build/bin/preferences_gen.h:6607 ../build/bin/preferences_gen.h:7096 +#: ../build/bin/preferences_gen.h:7362 ../src/gui/accelerators.c:2996 +#: ../src/gui/gtk.c:2641 ../src/gui/preferences.c:424 +#: ../src/gui/preferences.c:874 ../src/libs/modulegroups.c:3888 msgid "?" msgstr "?" -#: ../build/bin/preferences_gen.h:3806 ../build/bin/preferences_gen.h:4420 -#: ../build/bin/preferences_gen.h:6123 ../src/gui/preferences.c:270 -msgid "general" -msgstr "一般" +#: ../build/bin/preferences_gen.h:4287 ../src/control/jobs/control_jobs.c:2352 +#: ../src/libs/import.c:173 +msgid "import" +msgstr "インポート" -#: ../build/bin/preferences_gen.h:3826 -msgid "hide built-in presets for utility modules" -msgstr "ユーティリティモジュールの内蔵プリセットを非表示にする" +#: ../build/bin/preferences_gen.h:4289 +msgid "session options" +msgstr "セッションオプション" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4017 -#: ../build/bin/preferences_gen.h:4053 ../build/bin/preferences_gen.h:4156 -#: ../build/bin/preferences_gen.h:4251 ../build/bin/preferences_gen.h:4291 -#: ../build/bin/preferences_gen.h:4334 ../build/bin/preferences_gen.h:4377 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4531 ../build/bin/preferences_gen.h:4606 -#: ../build/bin/preferences_gen.h:4686 ../build/bin/preferences_gen.h:4756 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4860 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5040 ../build/bin/preferences_gen.h:5076 -#: ../build/bin/preferences_gen.h:5166 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5274 -#: ../build/bin/preferences_gen.h:5348 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5483 ../build/bin/preferences_gen.h:5525 -#: ../build/bin/preferences_gen.h:5596 ../build/bin/preferences_gen.h:5632 -#: ../build/bin/preferences_gen.h:5668 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5782 ../build/bin/preferences_gen.h:5819 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:5927 ../build/bin/preferences_gen.h:5998 -#: ../build/bin/preferences_gen.h:6074 ../build/bin/preferences_gen.h:6154 -#: ../build/bin/preferences_gen.h:6190 ../build/bin/preferences_gen.h:6226 -#: ../build/bin/preferences_gen.h:6262 ../build/bin/preferences_gen.h:6298 -#: ../build/bin/preferences_gen.h:6334 ../build/bin/preferences_gen.h:6370 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:6592 ../build/bin/preferences_gen.h:6632 -#: ../build/bin/preferences_gen.h:6745 ../build/bin/preferences_gen.h:6863 -#: ../build/bin/preferences_gen.h:6928 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7146 -#: ../build/bin/preferences_gen.h:7182 ../build/bin/preferences_gen.h:7288 -#: ../build/bin/preferences_gen.h:7353 ../build/bin/preferences_gen.h:7393 -#: ../build/bin/preferences_gen.h:7443 ../build/bin/preferences_gen.h:7488 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7656 -#: ../build/bin/preferences_gen.h:7692 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:7866 ../build/bin/preferences_gen.h:7906 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:7982 -#: ../build/bin/preferences_gen.h:8033 ../build/bin/preferences_gen.h:8093 -#: ../build/bin/preferences_gen.h:8175 ../build/bin/preferences_gen.h:8281 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4308 +msgid "base directory naming pattern" +msgstr "ベースディレクトリ命名のひな型" + +#: ../build/bin/preferences_gen.h:4323 ../build/bin/preferences_gen.h:4362 +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4435 +#: ../build/bin/preferences_gen.h:4501 ../build/bin/preferences_gen.h:4535 +#: ../build/bin/preferences_gen.h:4569 ../build/bin/preferences_gen.h:4603 +#: ../build/bin/preferences_gen.h:4637 ../build/bin/preferences_gen.h:4671 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4747 +#: ../build/bin/preferences_gen.h:4782 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:4850 ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:4958 +#: ../build/bin/preferences_gen.h:4999 ../build/bin/preferences_gen.h:5040 +#: ../build/bin/preferences_gen.h:5106 ../build/bin/preferences_gen.h:5140 +#: ../build/bin/preferences_gen.h:5182 ../build/bin/preferences_gen.h:5217 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5329 +#: ../build/bin/preferences_gen.h:5363 ../build/bin/preferences_gen.h:5405 +#: ../build/bin/preferences_gen.h:5439 ../build/bin/preferences_gen.h:5473 +#: ../build/bin/preferences_gen.h:5507 ../build/bin/preferences_gen.h:5541 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5644 ../build/bin/preferences_gen.h:5678 +#: ../build/bin/preferences_gen.h:5712 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5847 +#: ../build/bin/preferences_gen.h:5882 ../build/bin/preferences_gen.h:5922 +#: ../build/bin/preferences_gen.h:5958 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6060 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6178 ../build/bin/preferences_gen.h:6223 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6318 +#: ../build/bin/preferences_gen.h:6362 ../build/bin/preferences_gen.h:6406 +#: ../build/bin/preferences_gen.h:6450 ../build/bin/preferences_gen.h:6494 +#: ../build/bin/preferences_gen.h:6538 ../build/bin/preferences_gen.h:6582 +#: ../build/bin/preferences_gen.h:6648 ../build/bin/preferences_gen.h:6682 +#: ../build/bin/preferences_gen.h:6716 ../build/bin/preferences_gen.h:6750 +#: ../build/bin/preferences_gen.h:6784 ../build/bin/preferences_gen.h:6818 +#: ../build/bin/preferences_gen.h:6852 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7032 +#: ../build/bin/preferences_gen.h:7071 ../build/bin/preferences_gen.h:7138 +#: ../build/bin/preferences_gen.h:7224 ../build/bin/preferences_gen.h:7259 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7505 ../build/bin/preferences_gen.h:7539 +#: ../build/bin/preferences_gen.h:7619 ../build/bin/preferences_gen.h:7654 +#: ../build/bin/preferences_gen.h:7693 ../build/bin/preferences_gen.h:7744 +#: ../build/bin/preferences_gen.h:7785 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7922 ../build/bin/preferences_gen.h:7956 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8133 ../build/bin/preferences_gen.h:8212 +#: ../build/bin/preferences_gen.h:8292 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 #, c-format msgid "double click to reset to `%s'" msgstr "ダブルクリックすると、 `%s' にリセット" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4053 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4686 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:5040 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5348 -#: ../build/bin/preferences_gen.h:5632 ../build/bin/preferences_gen.h:5668 -#: ../build/bin/preferences_gen.h:5819 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:6370 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7146 ../build/bin/preferences_gen.h:7443 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7692 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:8033 -#: ../build/bin/preferences_gen.h:8175 +#: ../build/bin/preferences_gen.h:4326 ../build/bin/preferences_gen.h:4365 +msgid "part of full import path for an import session" +msgstr "インポートセッションに使用されるインポートディレクトリの絶対パスの一部" + +#: ../build/bin/preferences_gen.h:4347 +msgid "sub directory naming pattern" +msgstr "サブディレクトリ命名のひな型" + +#: ../build/bin/preferences_gen.h:4386 +msgid "keep original filename" +msgstr "元のファイル名を維持" + +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4501 +#: ../build/bin/preferences_gen.h:4535 ../build/bin/preferences_gen.h:4569 +#: ../build/bin/preferences_gen.h:4603 ../build/bin/preferences_gen.h:4637 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4850 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:5106 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5439 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5712 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6450 +#: ../build/bin/preferences_gen.h:6494 ../build/bin/preferences_gen.h:6538 +#: ../build/bin/preferences_gen.h:6582 ../build/bin/preferences_gen.h:6852 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7505 +#: ../build/bin/preferences_gen.h:7744 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7956 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8212 msgctxt "preferences" msgid "FALSE" msgstr "FALSE" -#: ../build/bin/preferences_gen.h:3840 +#: ../build/bin/preferences_gen.h:4399 +msgid "" +"keep original filename instead of a pattern while importing from camera or " +"card" +msgstr "" +"カメラあるいはカードからインポートする際、ひな型を用いず、元のファイル名を維" +"持します" + +#: ../build/bin/preferences_gen.h:4420 +msgid "file naming pattern" +msgstr "ファイル命名のひな型" + +#: ../build/bin/preferences_gen.h:4438 +msgid "file naming pattern used for a import session" +msgstr "インポートセッションで使用するファイル命名のひな型" + +#: ../build/bin/preferences_gen.h:4470 ../src/gui/gtk.c:1266 +#: ../src/gui/preferences.c:544 ../src/libs/tools/lighttable.c:66 +#: ../src/views/lighttable.c:91 +msgid "lighttable" +msgstr "ライトテーブル" + +#: ../build/bin/preferences_gen.h:4472 ../build/bin/preferences_gen.h:5077 +#: ../build/bin/preferences_gen.h:6619 ../src/gui/preferences.c:270 +msgid "general" +msgstr "一般" + +#: ../build/bin/preferences_gen.h:4491 +msgid "hide built-in presets for utility modules" +msgstr "ユーティリティモジュールの内蔵プリセットを非表示にする" + +#: ../build/bin/preferences_gen.h:4504 msgid "hides built-in presets of utility modules in presets menu." msgstr "" "プリセットメニューでユーティリティモジュールの内蔵プリセットを非表示にします" -#: ../build/bin/preferences_gen.h:3862 +#: ../build/bin/preferences_gen.h:4525 msgid "use single-click in the collections module" msgstr "コレクションモジュールでシングルクリックを使用する" -#: ../build/bin/preferences_gen.h:3876 +#: ../build/bin/preferences_gen.h:4538 msgid "" "check this option to use single-click to select items in the collections " "module. this will allow you to do range selections for date-time and numeric " @@ -992,21 +1004,21 @@ "で選択出来ます\n" "これにより、日付/時刻と数値の範囲選択が可能になります" -#: ../build/bin/preferences_gen.h:3898 +#: ../build/bin/preferences_gen.h:4559 msgid "expand a single utility module at a time" msgstr "同時に展開されるユーティリティモジュールを一つにする" -#: ../build/bin/preferences_gen.h:3912 +#: ../build/bin/preferences_gen.h:4572 msgid "this option toggles the behavior of shift clicking in lighttable mode" msgstr "" "このオプションはライトテーブルモードでのShift+クリックの動作のオン/オフを切" "り替えます" -#: ../build/bin/preferences_gen.h:3934 +#: ../build/bin/preferences_gen.h:4593 msgid "scroll utility modules to the top when expanded" msgstr "ユーティリティモジュールを展開した時、上へスクロールする" -#: ../build/bin/preferences_gen.h:3948 ../build/bin/preferences_gen.h:5079 +#: ../build/bin/preferences_gen.h:4606 ../build/bin/preferences_gen.h:5612 msgid "" "when this option is enabled then darktable will try to scroll the module to " "the top of the visible list" @@ -1014,60 +1026,62 @@ "このオプションが有効になっている場合、darktableは表示するリストの一番上にモ" "ジュールをスクロールさせるよう試みます" -#: ../build/bin/preferences_gen.h:3970 +#: ../build/bin/preferences_gen.h:4627 msgid "rating an image one star twice will not zero out the rating" msgstr "画像を二度1つ星評価にしても星なしの評価にしない" -#: ../build/bin/preferences_gen.h:3984 +#: ../build/bin/preferences_gen.h:4640 msgid "" "defines whether rating an image one star twice will zero out star rating" msgstr "画像を二度1つ星で評価すると評価が星なしになるかいなかを定義します" -#: ../build/bin/preferences_gen.h:4006 ../build/bin/preferences_gen.h:4675 +#: ../build/bin/preferences_gen.h:4661 ../build/bin/preferences_gen.h:5284 msgid "show scrollbars for central view" msgstr "センタービューのスクロールバーを表示する" -#: ../build/bin/preferences_gen.h:4017 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5076 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5274 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5927 -#: ../build/bin/preferences_gen.h:6154 ../build/bin/preferences_gen.h:6190 -#: ../build/bin/preferences_gen.h:6226 ../build/bin/preferences_gen.h:6262 -#: ../build/bin/preferences_gen.h:6298 ../build/bin/preferences_gen.h:6334 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7182 -#: ../build/bin/preferences_gen.h:7488 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4671 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:5140 ../build/bin/preferences_gen.h:5363 +#: ../build/bin/preferences_gen.h:5473 ../build/bin/preferences_gen.h:5507 +#: ../build/bin/preferences_gen.h:5541 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5678 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:6060 ../build/bin/preferences_gen.h:6178 +#: ../build/bin/preferences_gen.h:6318 ../build/bin/preferences_gen.h:6362 +#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6648 +#: ../build/bin/preferences_gen.h:6682 ../build/bin/preferences_gen.h:6716 +#: ../build/bin/preferences_gen.h:6750 ../build/bin/preferences_gen.h:6784 +#: ../build/bin/preferences_gen.h:6818 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7539 ../build/bin/preferences_gen.h:7785 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 msgctxt "preferences" msgid "TRUE" msgstr "TRUE" -#: ../build/bin/preferences_gen.h:4020 ../build/bin/preferences_gen.h:4689 +#: ../build/bin/preferences_gen.h:4674 ../build/bin/preferences_gen.h:5297 msgid "defines whether scrollbars should be displayed" msgstr "スクロールバーを表示するかいなかを定義します" -#: ../build/bin/preferences_gen.h:4042 +#: ../build/bin/preferences_gen.h:4695 msgid "show image time with milliseconds" msgstr "画像の時間情報をミリ秒まで表示する" -#: ../build/bin/preferences_gen.h:4056 +#: ../build/bin/preferences_gen.h:4708 msgid "defines whether time should be displayed with milliseconds" msgstr "時間情報をミリ秒まで表示するかいなかを定義します" -#: ../build/bin/preferences_gen.h:4066 +#: ../build/bin/preferences_gen.h:4717 msgid "thumbnails" msgstr "サムネイル" # 次のサイズより大きい場合、埋め込まれたJPEG画像ではなくrawファイルを使用します -#: ../build/bin/preferences_gen.h:4086 +#: ../build/bin/preferences_gen.h:4736 msgid "use raw file instead of embedded JPEG from size" msgstr "次のサイズより大きい場合、埋め込みJPEGではなくRAWファイルを使用する" -#: ../build/bin/preferences_gen.h:4159 +#: ../build/bin/preferences_gen.h:4750 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "raw file instead of the embedded preview JPEG (better but slower).\n" @@ -1081,11 +1095,11 @@ "ションを選択してください\n" "(マニュアルに詳しい説明があります)" -#: ../build/bin/preferences_gen.h:4181 +#: ../build/bin/preferences_gen.h:4771 msgid "high quality processing from size" msgstr "次のサイズより大きい場合、高クオリティな処理を行う" -#: ../build/bin/preferences_gen.h:4254 +#: ../build/bin/preferences_gen.h:4785 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "the full quality rendering path (better but slower).\n" @@ -1099,11 +1113,82 @@ "ションを選択してください\n" "(マニュアルに詳しい説明があります)" -#: ../build/bin/preferences_gen.h:4276 +#: ../build/bin/preferences_gen.h:4806 +msgid "enable disk backend for thumbnail cache" +msgstr "サムネイルキャッシュのディスクバックエンドを有効にする" + +#: ../build/bin/preferences_gen.h:4819 +msgid "" +"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want. light table " +"performance will be increased greatly when browsing a lot.\n" +"to generate all thumbnails of your entire collection offline, run 'darktable-" +"generate-cache'." +msgstr "" +"有効にした場合、サムネイルをメモリキャッシュから削除しディスク(.cache/" +"darktable/)に書き込みます\n" +"これはメモリを大量に消費する可能性があり(20k画像に対して数ギガバイト)、" +"キャッシュされたサムネイルを再び削除することはないので注意してください\n" +"しかし、必要な場合には、これを手動で削除しても安全です\n" +"大量に閲覧する際のライトテーブルのパフォーマンスが大幅に向上します\n" +"コレクション全体の全てのサムネイルをオフラインで作成するには、'darktable-" +"generate-cache' を実行してください" + +#: ../build/bin/preferences_gen.h:4840 +msgid "enable disk backend for full preview cache" +msgstr "フルプレビューキャッシュのディスクバックエンドを有効にする" + +#: ../build/bin/preferences_gen.h:4853 +msgid "" +"if enabled, write full preview to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want.\n" +"light table performance will be increased greatly when zooming image in full " +"preview mode." +msgstr "" +"有効にした場合、完全なプレビューをメモリキャッシュから削除しディスク(.cache/" +"darktable/)に書き込みます\n" +"これはメモリを大量に消費する可能性があり(20k画像に対して数ギガバイト)、" +"キャッシュされたサムネイルを再び削除することはないので注意してください。 しか" +"し、必要な場合には、これを手動で削除しても安全です\n" +"フルプレビューモードで画像をズームする際のライトテーブルのパフォーマンスが大" +"幅に向上します" + +#: ../build/bin/preferences_gen.h:4874 +msgid "generate thumbnails in background" +msgstr "バックグラウンドでサムネイルを生成する" + +#: ../build/bin/preferences_gen.h:4888 +msgid "" +"if 'enable disk backend for thumbnail cache' is enabled thumbnails/mipmaps " +"up to the selected size are generated while user is inactive in lighttable." +msgstr "" +"サムネイルキャッシュのディスクバックエンドを有効にした場合、ユーザーがライト" +"テーブル内でアクティブでないときに、選択したサイズまでのサムネイル/ミップ" +"マップが生成されます" + +#: ../build/bin/preferences_gen.h:4909 +msgid "reset cached thumbnails" +msgstr "キャッシュされたサムネイルをリセットする" + +#: ../build/bin/preferences_gen.h:4922 +msgid "" +"force thumbnails to be regenerated by resetting the database. this may be " +"needed in case some thumbnails have been manually removed or corrupted." +msgstr "" +"データベースをリセットすることでサムネイルを再生成させます\n" +"手動で削除されたり壊れたサムネイルがある場合にこれが必要となるかもしれません" + +#: ../build/bin/preferences_gen.h:4943 msgid "delimiters for size categories" msgstr "サイズカテゴリの区切り" -#: ../build/bin/preferences_gen.h:4294 +#: ../build/bin/preferences_gen.h:4961 msgid "" "size categories are used to be able to set different overlays and CSS values " "depending of the size of the thumbnail, separated by |.\n" @@ -1115,23 +1200,28 @@ "例えば、120 | 400は、サムネイルの3つのカテゴリ(<120px, 120-400px, >400px)を" "意味します" -#: ../build/bin/preferences_gen.h:4316 +#: ../build/bin/preferences_gen.h:4982 msgid "pattern for the thumbnail extended overlay text" msgstr "サムネイル上の拡張オーバーレイテキストのひな型" -#: ../build/bin/preferences_gen.h:4337 ../build/bin/preferences_gen.h:4380 +#: ../build/bin/preferences_gen.h:5002 ../build/bin/preferences_gen.h:5043 msgid "see manual to know all the tags you can use." msgstr "使用出来るタグの全てについては、マニュアルを参照してください" -#: ../build/bin/preferences_gen.h:4359 +#: ../build/bin/preferences_gen.h:5023 msgid "pattern for the thumbnail tooltip (empty to disable)" msgstr "サムネイル上のツールチップのひな型(空欄で無効)" -#: ../build/bin/preferences_gen.h:4440 +#: ../build/bin/preferences_gen.h:5075 ../src/gui/gtk.c:1267 +#: ../src/gui/preferences.c:544 ../src/views/darkroom.c:94 +msgid "darkroom" +msgstr "ダークルーム" + +#: ../build/bin/preferences_gen.h:5096 msgid "scroll down to increase mask parameters" msgstr "スクロールダウンでマスクのパラメータ値を上げる" -#: ../build/bin/preferences_gen.h:4454 +#: ../build/bin/preferences_gen.h:5109 msgid "" "when using the mouse scroll wheel to change mask parameters, scroll down to " "increase the mask size, feather size, opacity, brush hardness and gradient " @@ -1143,11 +1233,11 @@ "さ、湾曲度の値を上げます\n" "デフォルトでは、スクロールアップでこれらのパラメータ値を上げます" -#: ../build/bin/preferences_gen.h:4476 +#: ../build/bin/preferences_gen.h:5130 msgid "middle mouse button zooms to 200%" msgstr "マウスのミドルクリックで200%にズームする" -#: ../build/bin/preferences_gen.h:4491 +#: ../build/bin/preferences_gen.h:5144 #, no-c-format msgid "" "if enabled, the zoom level will cycle between 100%, 200% and fit to viewport " @@ -1159,32 +1249,32 @@ "無効にすると、100%、表示領域にフィットの順に切り替え、Ctrlキーでズームレベル" "を調節することが出来ます" -#: ../build/bin/preferences_gen.h:4513 +#: ../build/bin/preferences_gen.h:5165 msgid "pattern for the image information line" msgstr "画像情報のひな型" -#: ../build/bin/preferences_gen.h:4534 +#: ../build/bin/preferences_gen.h:5185 msgid "see manual for a list of the tags you can use." msgstr "使用できるタグのリストは マニュアルを参照してください" -#: ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:5206 msgid "position of the image information line" msgstr "画像情報の位置" -#: ../build/bin/preferences_gen.h:4630 +#: ../build/bin/preferences_gen.h:5240 msgid "border around image in darkroom mode" msgstr "ダークルームモードの画像の周囲の余白" -#: ../build/bin/preferences_gen.h:4650 ../build/bin/preferences_gen.h:6790 -#: ../build/bin/preferences_gen.h:7228 ../build/bin/preferences_gen.h:7789 -#: ../build/bin/preferences_gen.h:8139 ../build/bin/preferences_gen.h:8221 -#: ../build/bin/preferences_gen.h:8379 ../build/bin/preferences_gen.h:8493 -#: ../build/bin/preferences_gen.h:8540 +#: ../build/bin/preferences_gen.h:5260 ../build/bin/preferences_gen.h:7182 +#: ../build/bin/preferences_gen.h:7303 ../build/bin/preferences_gen.h:7584 +#: ../build/bin/preferences_gen.h:8048 ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8257 ../build/bin/preferences_gen.h:8389 +#: ../build/bin/preferences_gen.h:8504 ../build/bin/preferences_gen.h:8550 #, c-format msgid "double click to reset to `%d'" msgstr "ダブルクリックすると、`%d' にリセットします" -#: ../build/bin/preferences_gen.h:4653 +#: ../build/bin/preferences_gen.h:5263 msgid "" "process the image in darkroom mode with a small border. set to 0 if you " "don't want any border." @@ -1192,21 +1282,21 @@ "ダークルームモードの画像処理において画像の周囲に小さい余白を表示します\n" "0に設定すると非表示にします" -#: ../build/bin/preferences_gen.h:4711 +#: ../build/bin/preferences_gen.h:5318 msgid "reduce resolution of preview image" msgstr "プレビュー画像の解像度を低減する" -#: ../build/bin/preferences_gen.h:4759 +#: ../build/bin/preferences_gen.h:5332 msgid "decrease to speed up preview rendering, may hinder accurate masking" msgstr "" "値を下げるとプレビューのレンダリングが高速になりますが、\n" "正確なマスキングの妨げになる可能性があります" -#: ../build/bin/preferences_gen.h:4781 +#: ../build/bin/preferences_gen.h:5353 msgid "show loading screen between images" msgstr "画像間を移動する時、ロード画面を表示する" -#: ../build/bin/preferences_gen.h:4795 +#: ../build/bin/preferences_gen.h:5366 msgid "" "show gray loading screen when navigating between images in the darkroom\n" "disable to just show a toast message" @@ -1214,25 +1304,25 @@ "ダークルームで画像間を移動する時に灰色のロード画面を表示します\n" "無効にするとポップアップメッセージのみ表示します" -#: ../build/bin/preferences_gen.h:4805 +#: ../build/bin/preferences_gen.h:5375 msgid "modules" msgstr "モジュール" -#: ../build/bin/preferences_gen.h:4825 +#: ../build/bin/preferences_gen.h:5394 msgid "display of individual color channels" msgstr "各カラーチャンネルの表示" -#: ../build/bin/preferences_gen.h:4863 +#: ../build/bin/preferences_gen.h:5408 msgid "" "defines how color channels are displayed when activated in the parametric " "masks feature." msgstr "パラメトリックマスク機能でのカラーチャンネルの表示され方を定義します" -#: ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:5429 msgid "hide built-in presets for processing modules" msgstr "処理モジュールの内蔵プリセットを非表示にする" -#: ../build/bin/preferences_gen.h:4899 +#: ../build/bin/preferences_gen.h:5442 msgid "" "hides built-in presets of processing modules in both presets and favourites " "menu." @@ -1240,25 +1330,25 @@ "プリセットメニューとお気に入りメニューの両方で、処理モジュールの内蔵プリセッ" "トを非表示にします" -#: ../build/bin/preferences_gen.h:4921 ../build/bin/preferences_gen.h:4935 +#: ../build/bin/preferences_gen.h:5463 ../build/bin/preferences_gen.h:5476 msgid "show the guides widget in modules UI" msgstr "モジュールのユーザーインターフェースにガイド線のウィジェットを表示する" -#: ../build/bin/preferences_gen.h:4957 +#: ../build/bin/preferences_gen.h:5497 msgid "expand a single processing module at a time" msgstr "同時に展開される処理モジュールを一つにする" -#: ../build/bin/preferences_gen.h:4971 +#: ../build/bin/preferences_gen.h:5510 msgid "this option toggles the behavior of shift clicking in darkroom mode" msgstr "" "このオプションはダークルームモードでのShift+クリックの動作のオン/オフを切り" "替えます" -#: ../build/bin/preferences_gen.h:4993 +#: ../build/bin/preferences_gen.h:5531 msgid "only collapse modules in current group" msgstr "使用中のグループのモジュールのみ折りたたむ" -#: ../build/bin/preferences_gen.h:5007 +#: ../build/bin/preferences_gen.h:5544 msgid "" "if only expanding a single module at a time, only collapse other modules in " "the current group - ignore modules in other groups" @@ -1266,11 +1356,11 @@ "同時に展開されるモジュールが一つのみの場合、選択中のグループの他のモジュール" "のみ折りたたみます。他のグループのモジュールは無視します" -#: ../build/bin/preferences_gen.h:5029 +#: ../build/bin/preferences_gen.h:5565 msgid "expand the module when it is activated, and collapse it when disabled" msgstr "モジュールをアクティブにした時に展開し、無効にした時に折りたたむ" -#: ../build/bin/preferences_gen.h:5043 +#: ../build/bin/preferences_gen.h:5578 msgid "" "this option allows to expand or collapse automatically the module when it is " "enabled or disabled." @@ -1278,15 +1368,15 @@ "このオプションを使用すると、モジュールを有効化あるいは無効化した時に、モ" "ジュールを自動的に展開または折りたたみます" -#: ../build/bin/preferences_gen.h:5065 +#: ../build/bin/preferences_gen.h:5599 msgid "scroll processing modules to the top when expanded" msgstr "処理モジュールを展開した時、上へスクロールする" -#: ../build/bin/preferences_gen.h:5101 +#: ../build/bin/preferences_gen.h:5633 msgid "show right-side buttons in processing module headers" msgstr "処理モジュールのヘッダに右ボタンを表示する" -#: ../build/bin/preferences_gen.h:5169 +#: ../build/bin/preferences_gen.h:5647 msgid "" "when the mouse is not over a module, the multi-instance, reset and preset " "buttons can be hidden:\n" @@ -1310,11 +1400,11 @@ "- スムーズ:同一のヘッダ内の全てのボタンが同時に段階的に薄くなります\n" "- 徐々に非表示:必要に応じて個々のボタンを徐々に非表示にします" -#: ../build/bin/preferences_gen.h:5191 +#: ../build/bin/preferences_gen.h:5668 msgid "show mask indicator in module headers" msgstr "モジュールのヘッダにマスクインジケーターを表示する" -#: ../build/bin/preferences_gen.h:5205 +#: ../build/bin/preferences_gen.h:5681 msgid "" "if enabled, an icon will be shown in the header of any processing modules " "that have a mask applied" @@ -1322,11 +1412,11 @@ "有効にすると、マスクが適用されている処理モジュールのヘッダにアイコンが表示さ" "れます" -#: ../build/bin/preferences_gen.h:5227 +#: ../build/bin/preferences_gen.h:5702 msgid "prompt for name on addition of new instance" msgstr "新しいインスタンス作成時にインスタンス名プロンプト" -#: ../build/bin/preferences_gen.h:5241 +#: ../build/bin/preferences_gen.h:5715 msgid "" "if enabled, a rename prompt will be present for each new module instance " "(either new instance or duplicate)" @@ -1334,11 +1424,11 @@ "有効にすると、新しいモジュールインスタンス(新しいインスタンスおよび複製)を" "作成した時、リネームプロンプトが現れます" -#: ../build/bin/preferences_gen.h:5263 +#: ../build/bin/preferences_gen.h:5736 msgid "automatically update module name" msgstr "モジュール名を自動的に更新する" -#: ../build/bin/preferences_gen.h:5277 +#: ../build/bin/preferences_gen.h:5749 msgid "" "if enabled, the module name will be automatically updated to match a preset " "name or a preset instance name if present." @@ -1346,23 +1436,27 @@ "有効にすると、モジュール名をプリセット名やプリセットインスタンス名に合わせて" "自動的に変更します" -#: ../build/bin/preferences_gen.h:5317 +#: ../build/bin/preferences_gen.h:5781 +msgid "processing" +msgstr "処理" + +#: ../build/bin/preferences_gen.h:5783 msgid "image processing" msgstr "画像処理" -#: ../build/bin/preferences_gen.h:5337 +#: ../build/bin/preferences_gen.h:5802 msgid "always use LittleCMS 2 to apply output color profile" msgstr "出力カラープロファイルを適用する際、常にLittleCMS 2を使用する" -#: ../build/bin/preferences_gen.h:5351 +#: ../build/bin/preferences_gen.h:5815 msgid "this is slower than the default." msgstr "デフォルトより速度が遅くなります" -#: ../build/bin/preferences_gen.h:5373 +#: ../build/bin/preferences_gen.h:5836 msgid "pixel interpolator (warp)" msgstr "ピクセル補間(画像変形)" -#: ../build/bin/preferences_gen.h:5416 +#: ../build/bin/preferences_gen.h:5850 msgid "" "pixel interpolator used in modules for rotation, lens correction, liquify, " "cropping and final scaling (bilinear, bicubic, lanczos2)." @@ -1370,33 +1464,33 @@ "回転、レンズ補正、液化、トリミング、および最終スケーリングのためのモジュール" "に使われるピクセル補間(バイリニア、バイキュービック、ランチョス2)" -#: ../build/bin/preferences_gen.h:5438 +#: ../build/bin/preferences_gen.h:5871 msgid "pixel interpolator (scaling)" msgstr "ピクセル補間(画像スケーリング)" -#: ../build/bin/preferences_gen.h:5486 +#: ../build/bin/preferences_gen.h:5885 msgid "" "pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." msgstr "" "画像スケーリングで使われるピクセル補間(バイリニア、バイキュービック、ラン" "チョス2、ランチョス3)" -#: ../build/bin/preferences_gen.h:5508 +#: ../build/bin/preferences_gen.h:5906 msgid "LUT 3D root folder" msgstr "LUT 3Dのルートフォルダ" -#: ../build/bin/preferences_gen.h:5513 ../src/control/jobs/control_jobs.c:1688 -#: ../src/control/jobs/control_jobs.c:1742 ../src/gui/preferences.c:1081 -#: ../src/gui/presets.c:419 ../src/imageio/storage/disk.c:122 -#: ../src/imageio/storage/disk.c:178 ../src/imageio/storage/gallery.c:109 -#: ../src/imageio/storage/gallery.c:163 ../src/imageio/storage/latex.c:108 -#: ../src/imageio/storage/latex.c:162 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/import.c:1664 ../src/libs/styles.c:391 +#: ../build/bin/preferences_gen.h:5912 ../src/control/jobs/control_jobs.c:1691 +#: ../src/control/jobs/control_jobs.c:1745 ../src/gui/preferences.c:1080 +#: ../src/gui/presets.c:421 ../src/imageio/storage/disk.c:197 +#: ../src/imageio/storage/disk.c:261 ../src/imageio/storage/gallery.c:149 +#: ../src/imageio/storage/gallery.c:213 ../src/imageio/storage/latex.c:145 +#: ../src/imageio/storage/latex.c:199 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1673 ../src/libs/styles.c:391 #: ../src/lua/preferences.c:668 msgid "select directory" msgstr "ディレクトリを選択してください" -#: ../build/bin/preferences_gen.h:5529 +#: ../build/bin/preferences_gen.h:5926 msgid "" "this folder (and sub-folders) contains LUT files used by LUT 3D module. " "(need a restart)." @@ -1404,11 +1498,11 @@ "このフォルダ(およびサブフォルダ)に、LUT 3Dモジュールが使用するLUTファイルが" "含まれています(要再起動)" -#: ../build/bin/preferences_gen.h:5551 +#: ../build/bin/preferences_gen.h:5947 msgid "auto-apply pixel workflow defaults" msgstr "ピクセルワークフローのデフォルト設定の自動適用" -#: ../build/bin/preferences_gen.h:5599 +#: ../build/bin/preferences_gen.h:5961 msgid "" "scene-referred workflow is based on linear modules and will auto-apply " "filmic or sigmoid, color calibration and exposure,\n" @@ -1420,11 +1514,11 @@ "ディスプレイ参照ワークフローはLabモジュールにもとづいており、ベースカーブとホ" "ワイトバランス、旧式のモジュールのパイプ順序を自動適用します" -#: ../build/bin/preferences_gen.h:5621 +#: ../build/bin/preferences_gen.h:5982 msgid "auto-apply per camera basecurve presets" msgstr "カメラごとのベースカーブのプリセットを自動適用する" -#: ../build/bin/preferences_gen.h:5635 +#: ../build/bin/preferences_gen.h:5995 msgid "" "use the per-camera basecurve by default instead of the generic manufacturer " "one if there is one available (needs a restart).\n" @@ -1440,11 +1534,11 @@ "ベースカーブのプリセットの自動適用を避けるには、【ピクセルワークフローのデ" "フォルト設定の自動適用】を'なし'に設定する必要があります" -#: ../build/bin/preferences_gen.h:5657 +#: ../build/bin/preferences_gen.h:6016 msgid "detect monochrome previews" msgstr "モノクロプレビューを検出する" -#: ../build/bin/preferences_gen.h:5671 +#: ../build/bin/preferences_gen.h:6029 msgid "" "many monochrome images can be identified via EXIF and preview data. beware: " "this slows down imports and reading of EXIF data" @@ -1452,11 +1546,11 @@ "多くのモノクロ画像はEXIFとプレビューデータによって識別されます\n" "注意:これにより、インポートとEXIFデータの読み込みが遅くなります" -#: ../build/bin/preferences_gen.h:5693 +#: ../build/bin/preferences_gen.h:6050 msgid "show warning messages" msgstr "警告メッセージを表示する" -#: ../build/bin/preferences_gen.h:5707 +#: ../build/bin/preferences_gen.h:6063 msgid "" "display messages in modules to warn beginner users when non-standard and " "possibly harmful settings are used in the pipeline.\n" @@ -1468,15 +1562,15 @@ "これらのメッセージは誤検知である可能性があるため、理解している場合は無視する" "ことをおすすめします。このオプションは警告を常に非表示にします" -#: ../build/bin/preferences_gen.h:5717 -msgid "CPU / GPU / memory" -msgstr "CPU/GPU/メモリ" +#: ../build/bin/preferences_gen.h:6072 +msgid "CPU / memory" +msgstr "CPU/メモリ" -#: ../build/bin/preferences_gen.h:5737 +#: ../build/bin/preferences_gen.h:6091 msgid "darktable resources" msgstr "darktableのリソース" -#: ../build/bin/preferences_gen.h:5786 +#: ../build/bin/preferences_gen.h:6106 #, no-c-format msgid "" "defines how much darktable may take from your system resources:\n" @@ -1505,11 +1599,11 @@ "下を引き起こす可能性があります。注意して使用してください。一般用途にはおすす" "めしません!" -#: ../build/bin/preferences_gen.h:5808 +#: ../build/bin/preferences_gen.h:6127 msgid "prefer performance over quality" msgstr "クオリティより速さを優先する" -#: ../build/bin/preferences_gen.h:5822 +#: ../build/bin/preferences_gen.h:6140 msgid "" "if switched on, thumbnails and previews are rendered at lower quality but 4 " "times faster" @@ -1517,57 +1611,15 @@ "オンにした場合、サムネイルとプレビューのレンダリングが低クオリティになります" "が、4倍高速になります" -#: ../build/bin/preferences_gen.h:5844 -msgid "enable disk backend for thumbnail cache" -msgstr "サムネイルキャッシュのディスクバックエンドを有効にする" +#: ../build/bin/preferences_gen.h:6149 +msgid "OpenCL" +msgstr "OpenCL" -#: ../build/bin/preferences_gen.h:5858 -msgid "" -"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want. light table " -"performance will be increased greatly when browsing a lot.\n" -"to generate all thumbnails of your entire collection offline, run 'darktable-" -"generate-cache'." -msgstr "" -"有効にした場合、サムネイルをメモリキャッシュから削除しディスク(.cache/" -"darktable/)に書き込みます\n" -"これはメモリを大量に消費する可能性があり(20k画像に対して数ギガバイト)、" -"キャッシュされたサムネイルを再び削除することはないので注意してください\n" -"しかし、必要な場合には、これを手動で削除しても安全です\n" -"大量に閲覧する際のライトテーブルのパフォーマンスが大幅に向上します\n" -"コレクション全体の全てのサムネイルをオフラインで作成するには、'darktable-" -"generate-cache' を実行してください" - -#: ../build/bin/preferences_gen.h:5880 -msgid "enable disk backend for full preview cache" -msgstr "フルプレビューキャッシュのディスクバックエンドを有効にする" - -#: ../build/bin/preferences_gen.h:5894 -msgid "" -"if enabled, write full preview to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want.\n" -"light table performance will be increased greatly when zooming image in full " -"preview mode." -msgstr "" -"有効にした場合、完全なプレビューをメモリキャッシュから削除しディスク(.cache/" -"darktable/)に書き込みます\n" -"これはメモリを大量に消費する可能性があり(20k画像に対して数ギガバイト)、" -"キャッシュされたサムネイルを再び削除することはないので注意してください。 しか" -"し、必要な場合には、これを手動で削除しても安全です\n" -"フルプレビューモードで画像をズームする際のライトテーブルのパフォーマンスが大" -"幅に向上します" - -#: ../build/bin/preferences_gen.h:5916 +#: ../build/bin/preferences_gen.h:6168 msgid "activate OpenCL support" msgstr "OpenCLサポートを有効にする" -#: ../build/bin/preferences_gen.h:5930 +#: ../build/bin/preferences_gen.h:6181 msgid "" "if found, use OpenCL runtime on your system to speed up processing.\n" "can be switched on and off at any time." @@ -1576,19 +1628,28 @@ "上します\n" "いつでもオンとオフを切り替えることが出来ます" -#: ../build/bin/preferences_gen.h:5931 ../build/bin/preferences_gen.h:6002 -#: ../build/bin/preferences_gen.h:6078 ../build/bin/preferences_gen.h:7397 +#: ../build/bin/preferences_gen.h:6185 ../build/bin/preferences_gen.h:6230 +#: ../build/bin/preferences_gen.h:6274 ../build/bin/preferences_gen.h:6325 +#: ../build/bin/preferences_gen.h:6369 ../build/bin/preferences_gen.h:6413 +#: ../build/bin/preferences_gen.h:6457 ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6545 ../build/bin/preferences_gen.h:7700 msgid "not available" msgstr "利用出来ません" -#: ../build/bin/preferences_gen.h:5934 ../build/bin/preferences_gen.h:5938 -#: ../build/bin/preferences_gen.h:6005 ../build/bin/preferences_gen.h:6009 -#: ../build/bin/preferences_gen.h:6081 ../build/bin/preferences_gen.h:6085 -#: ../build/bin/preferences_gen.h:7400 ../build/bin/preferences_gen.h:7404 +#: ../build/bin/preferences_gen.h:6187 ../build/bin/preferences_gen.h:6188 +#: ../build/bin/preferences_gen.h:6232 ../build/bin/preferences_gen.h:6233 +#: ../build/bin/preferences_gen.h:6276 ../build/bin/preferences_gen.h:6277 +#: ../build/bin/preferences_gen.h:6327 ../build/bin/preferences_gen.h:6328 +#: ../build/bin/preferences_gen.h:6371 ../build/bin/preferences_gen.h:6372 +#: ../build/bin/preferences_gen.h:6415 ../build/bin/preferences_gen.h:6416 +#: ../build/bin/preferences_gen.h:6459 ../build/bin/preferences_gen.h:6460 +#: ../build/bin/preferences_gen.h:6503 ../build/bin/preferences_gen.h:6504 +#: ../build/bin/preferences_gen.h:6547 ../build/bin/preferences_gen.h:6548 +#: ../build/bin/preferences_gen.h:7702 ../build/bin/preferences_gen.h:7703 msgid "not available on this system" msgstr "このシステムでは利用出来ません" -#: ../build/bin/preferences_gen.h:5958 +#: ../build/bin/preferences_gen.h:6212 msgid "OpenCL scheduling profile" msgstr "OpenCLスケジューリングプロファイル" @@ -1596,7 +1657,7 @@ # デフォルト - GPU はフルピクセルパイプを処理し、CPUはプレビューパイプを処理します (設定パラメーターで修正可能) # マルチGPU - 2つの異なるGPUで両方のピクセルパイプを並列処理します # 最速なGPU - 両方のピクセルパイプを同一のGPUで順次処理します. -#: ../build/bin/preferences_gen.h:6001 +#: ../build/bin/preferences_gen.h:6226 msgid "" "defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled " "systems:\n" @@ -1613,77 +1674,152 @@ "- 複数のGPU:2つの異なるGPUで両方のピクセルパイプを並列処理します\n" "- 非常に高速なGPU:両方のピクセルパイプを同一のGPUで順次処理します" -#: ../build/bin/preferences_gen.h:6029 -msgid "tune OpenCL performance" -msgstr "OpenCLのパフォーマンスを調整する" +#: ../build/bin/preferences_gen.h:6257 +msgid "use all device memory" +msgstr "全てのデバイスメモリを使用する" + +#: ../build/bin/preferences_gen.h:6270 +msgid "" +"if enabled darktable will use all device memory except a safety margin " +"(headroom, default is 600MB)" +msgstr "" +"有効にした場合、darktableは安全マージン(ヘッドルーム、デフォルト値は600MB)" +"を除く全てのデバイスメモリを使用します" + +#: ../build/bin/preferences_gen.h:6289 +msgid "OpenCL drivers" +msgstr "OpenCLドライバ" + +#: ../build/bin/preferences_gen.h:6308 +msgid "Intel GPU" +msgstr "Intel GPU" + +#: ../build/bin/preferences_gen.h:6321 +msgid "Intel(R) OpenCL Graphics for all supported platforms (vendor provided)" +msgstr "" +"全ての対応プラットフォーム向けのIntel(R) OpenCLグラフィック(ベンダー提供)" + +#: ../build/bin/preferences_gen.h:6352 +msgid "Nvidia CUDA" +msgstr "Nvidia CUDA" + +#: ../build/bin/preferences_gen.h:6365 +msgid "Nvidia CUDA based OpenCL (vendor provided)" +msgstr "Nvidia CUDAベースのOpenCL(ベンダー提供)" + +#: ../build/bin/preferences_gen.h:6396 +msgid "AMD ROCm" +msgstr "AMD ROCm" -#: ../build/bin/preferences_gen.h:6077 +#: ../build/bin/preferences_gen.h:6409 +msgid "AMD Accelerated Parallel Processing (vendor provided)" +msgstr "AMD Accelerated Parallel Processing(ベンダー提供)" + +#: ../build/bin/preferences_gen.h:6440 +msgid "RustiCL" +msgstr "RustiCL" + +#: ../build/bin/preferences_gen.h:6453 +msgid "" +"RustiCL Mesa OpenCL, still unstable. if you want to use this, you should " +"disable the vendor driver" +msgstr "" +"RustiCL Mesa OpenCL\n" +"現在不安定\n" +"使用したい場合、ベンダーのドライバを無効にしてください" + +#: ../build/bin/preferences_gen.h:6484 +msgid "Apple" +msgstr "Apple" + +#: ../build/bin/preferences_gen.h:6497 +msgid "Apple OpenCL (vendor provided)" +msgstr "Apple OpenCL(ベンダー提供)" + +#: ../build/bin/preferences_gen.h:6528 +msgid "Microsoft OpenCLOn12" +msgstr "Microsoft OpenCLOn12" + +#: ../build/bin/preferences_gen.h:6541 msgid "" -"allows runtime tuning of OpenCL devices:\n" -" - 'memory size': uses a fixed headroom (400MB as default),\n" -" - 'memory transfer': tries a faster memory access mode (pinned memory) used " -"for tiling." -msgstr "" -"OpenCLデバイスのランタイム調整を許可します\n" -"- メモリのサイズ:固定したヘッドルーム(デフォルト値は400MB)を用います\n" -"- メモリ転送:タイリングのためにより高速なメモリアクセスモード(ピンメモリ)" -"を用いるよう試みます" +"Microsoft OpenCLOn12, only use this if the vendor provided driver does not " +"work or there is none provided." +msgstr "" +"Microsoft OpenCLOn12\n" +"ベンダー提供ドライバが動作しない、または提供されていない場合にのみ使用してく" +"ださい" + +#: ../build/bin/preferences_gen.h:6572 +msgid "other platforms" +msgstr "他のプラットフォーム" -#: ../build/bin/preferences_gen.h:6143 +#: ../build/bin/preferences_gen.h:6585 +msgid "" +"if set, all unspecified platforms are accepted. only do this if no vendor " +"driver is available" +msgstr "" +"設定した場合、全ての特定されていないプラットフォームが受け入れられます\n" +"利用可能なベンダーのドライバが無い場合にのみこれを行ってください" + +#: ../build/bin/preferences_gen.h:6617 +msgid "security" +msgstr "セキュリティ" + +#: ../build/bin/preferences_gen.h:6638 msgid "ask before removing images from the library" msgstr "画像をライブラリから除去する前に確認する" -#: ../build/bin/preferences_gen.h:6157 +#: ../build/bin/preferences_gen.h:6651 msgid "always ask the user before removing image information from the library" msgstr "画像情報をライブラリから除去する前に必ずユーザーに確認します" -#: ../build/bin/preferences_gen.h:6179 +#: ../build/bin/preferences_gen.h:6672 msgid "ask before deleting images from disk" msgstr "画像をディスクから削除する前に確認する" -#: ../build/bin/preferences_gen.h:6193 +#: ../build/bin/preferences_gen.h:6685 msgid "always ask the user before any image file is deleted" msgstr "ファイルを削除する前に必ずユーザーに確認します" -#: ../build/bin/preferences_gen.h:6215 +#: ../build/bin/preferences_gen.h:6706 msgid "ask before discarding history stack" msgstr "履歴スタックを破棄する前に確認する" -#: ../build/bin/preferences_gen.h:6229 +#: ../build/bin/preferences_gen.h:6719 msgid "always ask the user before history stack is discarded on any image" msgstr "履歴スタックを破棄する前に必ずユーザーに確認します" -#: ../build/bin/preferences_gen.h:6251 +#: ../build/bin/preferences_gen.h:6740 msgid "try to use trash when deleting images" msgstr "画像を削除する時、ゴミ箱を使用するよう試みる" -#: ../build/bin/preferences_gen.h:6265 +#: ../build/bin/preferences_gen.h:6753 msgid "" "send files to trash instead of permanently deleting files on system that " "supports it" msgstr "ファイルを永久に削除するのではなくゴミ箱へ送ります" -#: ../build/bin/preferences_gen.h:6287 +#: ../build/bin/preferences_gen.h:6774 msgid "ask before moving images from film roll folder" msgstr "フィルムロールフォルダから画像を移動する前に確認する" -#: ../build/bin/preferences_gen.h:6301 +#: ../build/bin/preferences_gen.h:6787 msgid "always ask the user before any image file is moved." msgstr "画像ファイルを移動する前に必ずユーザーに確認します" -#: ../build/bin/preferences_gen.h:6323 +#: ../build/bin/preferences_gen.h:6808 msgid "ask before copying images to new film roll folder" msgstr "新しいフィルムロールフォルダに画像をコピーする前に確認する" -#: ../build/bin/preferences_gen.h:6337 +#: ../build/bin/preferences_gen.h:6821 msgid "always ask the user before any image file is copied." msgstr "ファイルをコピーする前に必ずユーザーに確認します" -#: ../build/bin/preferences_gen.h:6359 +#: ../build/bin/preferences_gen.h:6842 msgid "ask before removing empty folders" msgstr "空のフォルダを削除する前に確認する" -#: ../build/bin/preferences_gen.h:6373 +#: ../build/bin/preferences_gen.h:6855 msgid "" "always ask the user before removing any empty folder. this can happen after " "moving or deleting images." @@ -1691,50 +1827,50 @@ "空のフォルダを削除する前に必ずユーザーに確認します\n" "これは画像を移動あるいは削除した後に発生します" -#: ../build/bin/preferences_gen.h:6395 +#: ../build/bin/preferences_gen.h:6876 msgid "ask before deleting a tag" msgstr "タグを削除する前に確認する" -#: ../build/bin/preferences_gen.h:6430 +#: ../build/bin/preferences_gen.h:6909 msgid "ask before deleting a style" msgstr "スタイルを削除する前に確認する" -#: ../build/bin/preferences_gen.h:6465 +#: ../build/bin/preferences_gen.h:6942 msgid "ask before deleting a preset" msgstr "プリセットを削除する前に確認する" -#: ../build/bin/preferences_gen.h:6479 +#: ../build/bin/preferences_gen.h:6955 msgid "will ask for confirmation before deleting or overwriting a preset" msgstr "プリセットを削除あるいは上書きする前に確認を求めます" -#: ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6976 msgid "ask before exporting in overwrite mode" msgstr "上書きモードでエクスポートする前に確認する" -#: ../build/bin/preferences_gen.h:6515 +#: ../build/bin/preferences_gen.h:6989 msgid "will ask for confirmation before exporting files in overwrite mode" msgstr "上書きモードでファイルをエクスポートする前に確認を求めます" #. italic -#: ../build/bin/preferences_gen.h:6525 ../src/libs/tools/viewswitcher.c:148 +#: ../build/bin/preferences_gen.h:6998 ../src/libs/tools/viewswitcher.c:148 msgid "other" msgstr "その他" -#: ../build/bin/preferences_gen.h:6545 +#: ../build/bin/preferences_gen.h:7017 msgid "password storage backend to use" msgstr "パスワードのためのストレージバックエンドの使用" -#: ../build/bin/preferences_gen.h:6595 +#: ../build/bin/preferences_gen.h:7035 msgid "" "the storage backend for password storage: auto, none, libsecret, kwallet" msgstr "" "パスワード保存用のストレージバックエンド:自動、なし、libsecret、kwallet" -#: ../build/bin/preferences_gen.h:6617 +#: ../build/bin/preferences_gen.h:7056 msgid "executable for playing audio files" msgstr "オーディオファイルを再生するための実行プログラム" -#: ../build/bin/preferences_gen.h:6635 +#: ../build/bin/preferences_gen.h:7074 msgid "" "this external program is used to play audio files some cameras record to " "keep notes for images" @@ -1742,15 +1878,19 @@ "この外部プログラムは、一部のカメラが記録するオーディオファイルを再生するため" "に使用されます" -#: ../build/bin/preferences_gen.h:6675 ../src/control/crawler.c:724 +#: ../build/bin/preferences_gen.h:7106 +msgid "storage" +msgstr "ストレージ" + +#: ../build/bin/preferences_gen.h:7108 ../src/control/crawler.c:717 msgid "database" msgstr "データベース" -#: ../build/bin/preferences_gen.h:6695 +#: ../build/bin/preferences_gen.h:7127 msgid "create database snapshot" msgstr "データベースのスナップショット作成" -#: ../build/bin/preferences_gen.h:6748 +#: ../build/bin/preferences_gen.h:7141 msgid "" "database snapshots are created right before closing darktable. options allow " "you to choose how often to make snapshots:\n" @@ -1772,11 +1912,11 @@ "- 日に一度:最後にスナップショットが作られてから24時間経つと作成します\n" "- 終了時:darktableが閉じられるたびにスナップショットを作成します" -#: ../build/bin/preferences_gen.h:6770 +#: ../build/bin/preferences_gen.h:7162 msgid "how many snapshots to keep" msgstr "保持するスナップショット数" -#: ../build/bin/preferences_gen.h:6793 +#: ../build/bin/preferences_gen.h:7185 msgid "" "after successfully creating snapshot, how many older snapshots to keep " "(excluding mandatory version update ones). enter -1 to keep all snapshots\n" @@ -1790,37 +1930,37 @@ "スナップショットを保存するとストレージが消費されること、最新のスナップショッ" "トだけで復元可能であることに留意してください" -#: ../build/bin/preferences_gen.h:6803 ../src/control/crawler.c:723 -msgid "XMP" -msgstr "XMP" +#: ../build/bin/preferences_gen.h:7194 ../src/libs/copy_history.c:149 +msgid "XMP sidecar files" +msgstr "XMPサイドカーファイル" -#: ../build/bin/preferences_gen.h:6823 -msgid "write sidecar file for each image" -msgstr "各画像のサイドカーファイルを書き込む" +#: ../build/bin/preferences_gen.h:7213 +msgid "create XMP files" +msgstr "XMPファイルを作成" -#: ../build/bin/preferences_gen.h:6866 +#: ../build/bin/preferences_gen.h:7227 msgid "" -"the sidecar files hold information about all your development steps to allow " +"XMP sidecar files hold information about all your development steps to allow " "flawless re-importing of image files.\n" "\n" -"depending on the selected mode sidecar files will be written:\n" +"depending on the selected mode sidecar files will be created:\n" " - 'never'\n" " - 'on import': immediately after importing the image\n" -" - 'after edit': after any user change on the image." +" - 'after edit': after any user change on the image or adding tags." msgstr "" -"サイドカーファイルはユーザーによる現像の諸段階についての情報を有しており、画" -"像ファイルの再インポートが欠落なく行われるようにします\n" +"XMPサイドカーファイルはユーザーによる現像の全段階についての情報を有しており、" +"画像ファイルの再インポートが欠落なく行われるようにします\n" "サイドカーファイルが書き込まれるタイミングは、選択されたモードごとに、次のと" "おりです\n" "- 許可しない\n" "- インポート時:画像をインポートした直後\n" -"- 編集後:ユーザーが画像に変更を施すたび" +"- 編集後:ユーザーが画像に変更を施す、またはタグを追加するたび" -#: ../build/bin/preferences_gen.h:6888 +#: ../build/bin/preferences_gen.h:7248 msgid "store XMP tags in compressed format" msgstr "圧縮形式でXMPタグを保存する" -#: ../build/bin/preferences_gen.h:6931 +#: ../build/bin/preferences_gen.h:7262 msgid "" "entries in XMP tags can get rather large and may exceed the available space " "to store the history stack in output files.\n" @@ -1830,11 +1970,25 @@ "ることがあります\n" "このオプションによって、XMPタグを圧縮し、スペースを節約します" -#: ../build/bin/preferences_gen.h:6953 +#: ../build/bin/preferences_gen.h:7283 +msgid "auto-save interval" +msgstr "自動保存の間隔" + +#: ../build/bin/preferences_gen.h:7306 +msgid "" +"automatically save history while developing using the given interval (in " +"seconds); set to zero to disable auto-saving. auto-saving might be disabled " +"on slow drives." +msgstr "" +"設定された間隔で現像中に履歴を自動保存します\n" +"0に設定すると自動保存を無効にします\n" +"低速なドライブでは自動保存は無効になるかもしれません" + +#: ../build/bin/preferences_gen.h:7327 msgid "look for updated XMP files on startup" msgstr "更新されたXMPファイルを起動時に探す" -#: ../build/bin/preferences_gen.h:6967 +#: ../build/bin/preferences_gen.h:7340 msgid "" "check file modification times of all XMP files on startup to check if any " "got updated in the meantime" @@ -1842,15 +1996,19 @@ "起動時に全てのXMPファイルの更新日時をチェックし、更新が行われていないか調べま" "す" -#: ../build/bin/preferences_gen.h:7007 +#: ../build/bin/preferences_gen.h:7372 +msgid "miscellaneous" +msgstr "その他" + +#: ../build/bin/preferences_gen.h:7374 msgid "interface" msgstr "インターフェース" -#: ../build/bin/preferences_gen.h:7027 +#: ../build/bin/preferences_gen.h:7393 msgid "load default shortcuts at startup" msgstr "ショートカットのデフォルト設定を起動時に読み込む" -#: ../build/bin/preferences_gen.h:7041 +#: ../build/bin/preferences_gen.h:7406 msgid "" "load default shortcuts before user settings. switch off to prevent deleted " "defaults returning" @@ -1858,32 +2016,32 @@ "ユーザー設定より前にデフォルトのショートカットを読み込みます\n" "オフにすると、削除したデフォルト設定に戻ることを避けることが出来ます" -#: ../build/bin/preferences_gen.h:7063 +#: ../build/bin/preferences_gen.h:7427 msgid "scale slider step with min/max" msgstr "スライダーのステップ幅を最大値/最小値に合わせて調整する" -#: ../build/bin/preferences_gen.h:7077 +#: ../build/bin/preferences_gen.h:7440 msgid "vary slider step size with min/max range" msgstr "" "スライダーのステップの大きさを最大値から最小値の範囲に合わせて変更します" -#: ../build/bin/preferences_gen.h:7099 +#: ../build/bin/preferences_gen.h:7461 msgid "sort built-in presets first" msgstr "内蔵プリセットを先頭に並べる" -#: ../build/bin/preferences_gen.h:7113 +#: ../build/bin/preferences_gen.h:7474 msgid "" "whether to show built-in presets first before user's presets in presets menu." msgstr "" "プリセットメニューでユーザープリセットの前に内蔵プリセットを表示するかいなか" -#: ../build/bin/preferences_gen.h:7135 +#: ../build/bin/preferences_gen.h:7495 msgid "mouse wheel scrolls modules side panel by default" msgstr "" "マウスホイールでモジュールのサイドパネルをスクロールするようデフォルト設定す" "る" -#: ../build/bin/preferences_gen.h:7149 +#: ../build/bin/preferences_gen.h:7508 msgid "" "when enabled, use mouse wheel to scroll modules side panel. use ctrl+alt to " "use mouse wheel for data entry. when disabled, this behavior is reversed" @@ -1893,11 +2051,11 @@ "データ入力にマウスホイールを使用するにはCtrl+Alt を使用します。 無効にすると" "この動作は逆になります" -#: ../build/bin/preferences_gen.h:7171 +#: ../build/bin/preferences_gen.h:7529 msgid "always show panels' scrollbars" msgstr "パネルのスクロールバーを常に表示する" -#: ../build/bin/preferences_gen.h:7185 +#: ../build/bin/preferences_gen.h:7542 msgid "" "defines whether the panel scrollbars should be always visible or activated " "only depending on the content. (need a restart)" @@ -1905,11 +2063,11 @@ "パネルのスクロールバーを常に表示するか、内容次第でアクティブにします(要再起" "動)" -#: ../build/bin/preferences_gen.h:7207 +#: ../build/bin/preferences_gen.h:7563 msgid "duration of the UI transitions in ms" msgstr "UIのトランジッションの長さ(単位はミリ秒)" -#: ../build/bin/preferences_gen.h:7231 +#: ../build/bin/preferences_gen.h:7587 msgid "" "how long the transitions take (in ms) for expanding or collapsing modules " "and other UI elements" @@ -1917,19 +2075,19 @@ "モジュールや他のUI要素を展開したり折りたたんだりする時のトランジッションの長" "さ(単位はミリ秒)" -#: ../build/bin/preferences_gen.h:7253 +#: ../build/bin/preferences_gen.h:7608 msgid "position of the scopes module" msgstr "スコープモジュールの位置" -#: ../build/bin/preferences_gen.h:7291 +#: ../build/bin/preferences_gen.h:7622 msgid "position the scopes at the top-left or top-right of the screen" msgstr "スコープの位置をスクリーンの左上か右上にします" -#: ../build/bin/preferences_gen.h:7313 +#: ../build/bin/preferences_gen.h:7643 msgid "method to use for getting the display profile" msgstr "ディスプレイプロファイルを取得する方法" -#: ../build/bin/preferences_gen.h:7356 +#: ../build/bin/preferences_gen.h:7657 msgid "" "this option allows to force a specific means of getting the current display " "profile.\n" @@ -1939,11 +2097,11 @@ "法を用いるよう強制します\n" "それ以外の方法で不適切な結果が出る場合に有用です" -#: ../build/bin/preferences_gen.h:7378 +#: ../build/bin/preferences_gen.h:7678 msgid "order or exclude MIDI devices" msgstr "midiデバイスを指定・除外する" -#: ../build/bin/preferences_gen.h:7396 +#: ../build/bin/preferences_gen.h:7696 msgid "" "comma-separated list of device name fragments that if matched load MIDI " "device at id given by location in list\n" @@ -1956,74 +2114,70 @@ "エンコードとノブの数を付け加えてください。例)BeatStep:63:16" #. tags -#: ../build/bin/preferences_gen.h:7412 ../src/develop/lightroom.c:1516 -#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:333 -#: ../src/libs/image.c:558 ../src/libs/metadata_view.c:162 +#: ../build/bin/preferences_gen.h:7715 ../src/develop/lightroom.c:1573 +#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:322 +#: ../src/libs/image.c:614 ../src/libs/metadata_view.c:166 msgid "tags" msgstr "タグ" -#: ../build/bin/preferences_gen.h:7432 +#: ../build/bin/preferences_gen.h:7734 msgid "omit hierarchy in simple tag lists" msgstr "簡易タグリストにおいて階層を省略する" # XMPファイルを作成するとき、階層タグが非階層タグのリストとしても追加され、他のプログラムでも見られるようになります # このオプションがチェックされると、darktable は最後の部分のみを加え、残りを無視します。 したがって 'foo|bar|baz' は 'baz'のみを追加します. -#: ../build/bin/preferences_gen.h:7446 +#: ../build/bin/preferences_gen.h:7747 msgid "" -"when creating XMP file the hierarchical tags are also added as a simple " -"list\n" +"when creating an XMP sidecar file the hierarchical tags are also added as a " +"simple list\n" "of non-hierarchical ones to make them visible to some other programs.\n" "when this option is checked darktable will only include their last part\n" "and ignore the rest. so 'foo|bar|baz' will only add 'baz'." msgstr "" -"XMPファイルを作成する時、階層タグは非階層タグの簡易リストとしても追加され、他" -"のプログラムでも見られるようになります\n" +"XMPサイドカーファイルを作成する時、階層タグは非階層タグの簡易リストとしても追" +"加され、他のプログラムでも見られるようになります\n" "このオプションをチェックすると、darktableは最後の部分のみを追加し、残りを無視" "します。したがって'foo|bar|baz'は'baz'のみを追加します" -#: ../build/bin/preferences_gen.h:7456 +#: ../build/bin/preferences_gen.h:7756 msgid "shortcuts with multiple instances" msgstr "複数のインスタンスがある場合のキーボードショートカット" -#: ../build/bin/preferences_gen.h:7461 -msgid "" -"where multiple module instances are present, these preferences control rules " -"that are applied (in order) to decide which module instance shortcuts will " -"be applied to" -msgstr "" -"複数のモジュールインスタンスが存在する場合、以下の設定は、どのモジュールイン" -"スタンスにキーボードショートカットを適用するか決定するために(順番に)適用さ" -"れるルールを制御します" - -#: ../build/bin/preferences_gen.h:7477 +#: ../build/bin/preferences_gen.h:7775 msgid "prefer focused instance" msgstr "フォーカスしているインスタンスを優先する" -#: ../build/bin/preferences_gen.h:7491 +#: ../build/bin/preferences_gen.h:7788 msgid "" -"if an instance of the module has focus, apply shortcut to that instance\n" +"where multiple instances of a module are present, apply shortcuts to the " +"instance that has focus\n" +"if none are focused, the preferences below control rules that are followed " +"(in order) to decide which module instance shortcuts will be applied to.\n" "note: blending shortcuts always apply to the focused instance" msgstr "" -"フォーカスしているインスタンスがモジュールにある場合、ショートカットをそのイ" -"ンスタンスに適用します\n" -"注意:ブレンドのショートカットは常に、フォーカスしているインスタンスに適用さ" +"複数のモジュールインスタンスが存在する場合、フォーカスされているインスタンス" +"へショートカットを適用します\n" +"フォーカスされているものが無い場合、以下の設定が、どのモジュールインスタンス" +"にショートカットを適用するか決定するために(順番に)適用されるルールを制御し" +"ます\n" +"注意:ブレンドのショートカットは常にフォーカスされているインスタンスに適用さ" "れます" -#: ../build/bin/preferences_gen.h:7513 +#: ../build/bin/preferences_gen.h:7809 msgid "prefer expanded instances" msgstr "展開されているインスタンスを優先する" -#: ../build/bin/preferences_gen.h:7527 +#: ../build/bin/preferences_gen.h:7822 msgid "if instances of the module are expanded, ignore collapsed instances" msgstr "" "展開されているインスタンスがモジュールにある場合、折りたたまれているインスタ" "ンスを無視します" -#: ../build/bin/preferences_gen.h:7549 +#: ../build/bin/preferences_gen.h:7843 msgid "prefer enabled instances" msgstr "有効になっているインスタンスを優先する" -#: ../build/bin/preferences_gen.h:7563 +#: ../build/bin/preferences_gen.h:7856 msgid "" "after applying the above rule, if instances of the module are active, ignore " "inactive instances" @@ -2031,11 +2185,11 @@ "上のルールを適用したうえで、アクティブなインスタンスがモジュールにある場合、" "アクティブでないインスタンスを無視します" -#: ../build/bin/preferences_gen.h:7585 +#: ../build/bin/preferences_gen.h:7877 msgid "prefer unmasked instances" msgstr "マスクのないインスタンスを優先する" -#: ../build/bin/preferences_gen.h:7599 +#: ../build/bin/preferences_gen.h:7890 msgid "" "after applying the above rules, if instances of the module are unmasked, " "ignore masked instances" @@ -2043,11 +2197,11 @@ "上のルールを適用したうえで、マスクが用いられていないインスタンスがモジュール" "にある場合、マスクが用いられているインスタンスを無視します" -#: ../build/bin/preferences_gen.h:7621 +#: ../build/bin/preferences_gen.h:7911 msgid "selection order" msgstr "選択順序" -#: ../build/bin/preferences_gen.h:7659 +#: ../build/bin/preferences_gen.h:7925 msgid "" "after applying the above rules, apply the shortcut based on its position in " "the pixelpipe" @@ -2055,11 +2209,11 @@ "上記のルールを適用したうえで、ピクセルパイプの位置にもとづいてキーボード" "ショートカットを適用します" -#: ../build/bin/preferences_gen.h:7681 +#: ../build/bin/preferences_gen.h:7946 msgid "allow visual assignment to specific instances" msgstr "特定のインスタンスへの可視的割り当てを許可する" -#: ../build/bin/preferences_gen.h:7695 +#: ../build/bin/preferences_gen.h:7959 msgid "" "when multiple instances are present on an image this allows shortcuts to be " "visually assigned to those specific instances\n" @@ -2070,78 +2224,42 @@ "チェックしない場合、キーボードショートカットは常に優先されているインスタンス" "に割り当てられます" -#: ../build/bin/preferences_gen.h:7705 +#: ../build/bin/preferences_gen.h:7968 msgid "map / geolocalization view" msgstr "マップ/ジオローカリゼーション" -#: ../build/bin/preferences_gen.h:7725 +#: ../build/bin/preferences_gen.h:7987 msgid "pretty print the image location" msgstr "画像の位置情報を分かりやすく表示する" -#: ../build/bin/preferences_gen.h:7739 +#: ../build/bin/preferences_gen.h:8000 msgid "" "show a more readable representation of the location in the image information " "module" msgstr "画像情報モジュールにおいて位置情報を読みやすく表示します" -#: ../build/bin/preferences_gen.h:7749 +#: ../build/bin/preferences_gen.h:8009 msgid "slideshow view" msgstr "スライドショー" -#: ../build/bin/preferences_gen.h:7769 +#: ../build/bin/preferences_gen.h:8028 msgid "waiting time between each picture in slideshow" msgstr "スライドショーにおける各写真間の待ち時間" -#: ../build/bin/preferences_gen.h:7831 -msgid "session options" -msgstr "セッションオプション" - -#: ../build/bin/preferences_gen.h:7851 -msgid "base directory naming pattern" -msgstr "ベースディレクトリ命名のひな型" - -#: ../build/bin/preferences_gen.h:7869 ../build/bin/preferences_gen.h:7909 -msgid "part of full import path for an import session" -msgstr "インポートセッションに使用されるインポートディレクトリの絶対パスの一部" - -#: ../build/bin/preferences_gen.h:7891 -msgid "sub directory naming pattern" -msgstr "サブディレクトリ命名のひな型" - -#: ../build/bin/preferences_gen.h:7931 -msgid "keep original filename" -msgstr "元のファイル名を維持" - -#: ../build/bin/preferences_gen.h:7945 -msgid "" -"keep original filename instead of a pattern while importing from camera or " -"card" -msgstr "" -"カメラあるいはカードからインポートする際、ひな型を用いず、元のファイル名を維" -"持します" - -#: ../build/bin/preferences_gen.h:7967 -msgid "file naming pattern" -msgstr "ファイル命名のひな型" - -#: ../build/bin/preferences_gen.h:7985 -msgid "file naming pattern used for a import session" -msgstr "インポートセッションで使用するファイル命名のひな型" - -#: ../build/bin/preferences_gen.h:8022 +#: ../build/bin/preferences_gen.h:8088 msgid "do not set the 'uncategorized' entry for tags" msgstr "タグに「未分類」エントリを設定しない" -#: ../build/bin/preferences_gen.h:8036 +#: ../build/bin/preferences_gen.h:8101 msgid "" "do not set the 'uncategorized' entry for tags which do not have children" msgstr "子を持たないタグに「未分類」エントリを設定しないでください" -#: ../build/bin/preferences_gen.h:8058 +#: ../build/bin/preferences_gen.h:8122 msgid "tags case sensitivity" msgstr "タグの大文字/小文字の区別" -#: ../build/bin/preferences_gen.h:8096 +#: ../build/bin/preferences_gen.h:8136 msgid "" "tags case sensitivity. without the Sqlite ICU extension, insensitivity works " "only for the 26 latin letters" @@ -2149,45 +2267,50 @@ "タグにおいて大文字と小文字を区別するかいなか\n" "拡張機能Sqlite ICUがない場合、区別が無効になるのは26個のラテン文字のみです" -#: ../build/bin/preferences_gen.h:8118 ../build/bin/preferences_gen.h:8358 +#: ../build/bin/preferences_gen.h:8157 ../build/bin/preferences_gen.h:8368 msgid "number of collections to be stored" msgstr "記憶するコレクションの数" -#: ../build/bin/preferences_gen.h:8142 ../build/bin/preferences_gen.h:8382 +#: ../build/bin/preferences_gen.h:8181 ../build/bin/preferences_gen.h:8392 msgid "the number of recent collections to store and show in this list" msgstr "記憶してこのリストに表示する直近に使用したコレクションの数" -#: ../build/bin/preferences_gen.h:8164 +#: ../build/bin/preferences_gen.h:8202 msgid "hide the history button and show a specific module instead" msgstr "履歴ボタンを非表示にして、特定のモジュールを表示する" -#: ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8215 msgid "hide the history button and show the recent collections module instead" msgstr "履歴ボタンを非表示にして、最近のコレクションモジュールを表示します" -#: ../build/bin/preferences_gen.h:8200 +#: ../build/bin/preferences_gen.h:8236 msgid "number of folder levels to show in lists" msgstr "リストに表示されるフォルダの階層数" -#: ../build/bin/preferences_gen.h:8224 +#: ../build/bin/preferences_gen.h:8260 msgid "" "the number of folder levels to show in film roll names, starting from the " "right" msgstr "フィルムロール名に表示されるフォルダの階層数(右から数えて)" -#: ../build/bin/preferences_gen.h:8246 +#: ../build/bin/preferences_gen.h:8281 msgid "sort film rolls by" msgstr "フィルムロールの分類" -#: ../build/bin/preferences_gen.h:8284 +#: ../build/bin/preferences_gen.h:8292 +msgctxt "preferences" +msgid "chronological" +msgstr "日付順" + +#: ../build/bin/preferences_gen.h:8295 msgid "sets the collections-list order for film rolls" msgstr "フィルムロールのコレクションリストの順序を設定します" -#: ../build/bin/preferences_gen.h:8306 +#: ../build/bin/preferences_gen.h:8316 msgid "sort collection descending" msgstr "コレクションを降順で分類" -#: ../build/bin/preferences_gen.h:8320 +#: ../build/bin/preferences_gen.h:8329 msgid "" "sort the following collections in descending order: 'film roll' by folder, " "'folder', 'times' (e.g. 'capture date')" @@ -2195,11 +2318,11 @@ "コレクションを降順で分類します:「フィルムロール」、「フォルダ」、「日時」" "(例:「撮影日」)" -#: ../build/bin/preferences_gen.h:8404 +#: ../build/bin/preferences_gen.h:8413 msgid "prefer a history button in the collections module" msgstr "コレクションモジュール内で履歴ボタンを使用する" -#: ../build/bin/preferences_gen.h:8418 +#: ../build/bin/preferences_gen.h:8426 msgid "" "hide this module and instead access collections history with a button in the " "collections module" @@ -2207,11 +2330,11 @@ "このモジュールを非表示にして、コレクションモジュール内のボタンでコレクション" "の履歴にアクセスします" -#: ../build/bin/preferences_gen.h:8472 +#: ../build/bin/preferences_gen.h:8483 msgid "suggested tags level of confidence" msgstr "サジェストされるタグの信頼水準" -#: ../build/bin/preferences_gen.h:8497 +#: ../build/bin/preferences_gen.h:8508 #, no-c-format msgid "" "level of confidence to include the tag in the suggestions list, 0: all " @@ -2224,11 +2347,11 @@ "100:条件に合わせたサジェストを行わず、最近使用したタグのみを表示します(高" "速)" -#: ../build/bin/preferences_gen.h:8519 +#: ../build/bin/preferences_gen.h:8529 msgid "number of recently attached tags" msgstr "最近付けたタグの数" -#: ../build/bin/preferences_gen.h:8543 +#: ../build/bin/preferences_gen.h:8553 msgid "" "number of recently attached tags which are included in the suggestions list. " "the value `-1' disables the recent list" @@ -2254,14 +2377,15 @@ #. focal length #: ../build/lib/darktable/plugins/introspection_ashift.c:148 #: ../build/lib/darktable/plugins/introspection_ashift.c:291 -#: ../src/common/collection.c:714 ../src/gui/preferences.c:844 -#: ../src/gui/presets.c:718 ../src/libs/camera.c:550 -#: ../src/libs/metadata_view.c:143 +#: ../src/common/collection.c:627 ../src/gui/preferences.c:842 +#: ../src/gui/presets.c:721 ../src/libs/camera.c:550 +#: ../src/libs/metadata_view.c:145 msgid "focal length" msgstr "焦点距離" #: ../build/lib/darktable/plugins/introspection_ashift.c:154 #: ../build/lib/darktable/plugins/introspection_ashift.c:295 +#: ../src/libs/metadata_view.c:147 msgid "crop factor" msgstr "クロップファクター" @@ -2277,7 +2401,7 @@ #: ../build/lib/darktable/plugins/introspection_ashift.c:172 #: ../build/lib/darktable/plugins/introspection_ashift.c:307 -#: ../src/iop/lens.cc:3784 +#: ../src/iop/lens.cc:4438 msgid "lens model" msgstr "レンズモデル" @@ -2299,14 +2423,14 @@ #. DEVELOP_MASK_DISABLED #: ../build/lib/darktable/plugins/introspection_ashift.c:366 -#: ../build/lib/darktable/plugins/introspection_colorin.c:300 +#: ../build/lib/darktable/plugins/introspection_colorin.c:303 #: ../build/lib/darktable/plugins/introspection_highlights.c:310 #: ../build/lib/darktable/plugins/introspection_vignette.c:264 #: ../src/develop/blend_gui.c:153 ../src/develop/blend_gui.c:182 -#: ../src/develop/blend_gui.c:3410 ../src/gui/accelerators.c:130 -#: ../src/gui/accelerators.c:140 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/imageio/format/j2k.c:669 -#: ../src/libs/live_view.c:361 ../src/libs/masks.c:113 +#: ../src/develop/blend_gui.c:3429 ../src/gui/accelerators.c:148 +#: ../src/gui/accelerators.c:158 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/imageio/format/j2k.c:686 +#: ../src/libs/live_view.c:361 msgid "off" msgstr "オフ" @@ -2330,7 +2454,7 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:146 #: ../build/lib/darktable/plugins/introspection_basecurve.c:239 -#: ../src/libs/metadata_view.c:142 +#: ../src/libs/metadata_view.c:144 msgid "exposure bias" msgstr "露出補正" @@ -2350,16 +2474,16 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:262 #: ../build/lib/darktable/plugins/introspection_basicadj.c:249 #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:153 -#: ../build/lib/darktable/plugins/introspection_lens.cc:444 +#: ../build/lib/darktable/plugins/introspection_lens.cc:533 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:251 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:153 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:270 -#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2193 -#: ../src/iop/channelmixerrgb.c:4667 ../src/iop/clipping.c:1900 -#: ../src/iop/clipping.c:2093 ../src/iop/clipping.c:2108 -#: ../src/iop/retouch.c:463 ../src/libs/collect.c:1907 -#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1023 -#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:132 +#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2214 +#: ../src/iop/channelmixerrgb.c:4735 ../src/iop/clipping.c:1953 +#: ../src/iop/clipping.c:2146 ../src/iop/clipping.c:2161 +#: ../src/iop/retouch.c:507 ../src/libs/collect.c:2043 +#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1101 +#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:109 #: ../src/libs/live_view.c:311 ../src/libs/print_settings.c:2835 msgid "none" msgstr "なし" @@ -2377,7 +2501,7 @@ #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:252 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:154 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:271 -#: ../src/develop/blend_gui.c:2363 ../src/develop/blend_gui.c:2397 +#: ../src/develop/blend_gui.c:2379 ../src/develop/blend_gui.c:2413 msgid "luminance" msgstr "輝度" @@ -2487,7 +2611,7 @@ #: ../build/lib/darktable/plugins/introspection_graduatednd.c:144 #: ../build/lib/darktable/plugins/introspection_watermark.c:136 #: ../build/lib/darktable/plugins/introspection_watermark.c:265 -#: ../src/iop/ashift.c:6112 ../src/libs/masks.c:108 +#: ../src/iop/ashift.c:6059 ../src/libs/masks.c:109 msgid "rotation" msgstr "回転" @@ -2498,7 +2622,7 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:125 #: ../build/lib/darktable/plugins/introspection_blurs.c:202 -#: ../src/libs/masks.c:109 +#: ../src/libs/masks.c:110 msgid "curvature" msgstr "曲率" @@ -2506,13 +2630,13 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:206 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:81 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:148 -#: ../src/iop/colorbalancergb.c:1968 +#: ../src/iop/colorbalancergb.c:2039 msgid "offset" msgstr "オフセット" #: ../build/lib/darktable/plugins/introspection_blurs.c:220 -#: ../src/common/collection.c:712 ../src/gui/preferences.c:828 -#: ../src/gui/presets.c:660 ../src/libs/metadata_view.c:139 +#: ../src/common/collection.c:625 ../src/gui/preferences.c:826 +#: ../src/gui/presets.c:663 ../src/libs/metadata_view.c:141 msgid "lens" msgstr "レンズ" @@ -2528,63 +2652,90 @@ msgid "gaussian" msgstr "ガウシアンぼかし" -#: ../build/lib/darktable/plugins/introspection_borders.c:112 -#: ../build/lib/darktable/plugins/introspection_borders.c:253 -#: ../src/common/collection.c:722 ../src/libs/filtering.c:59 +#: ../build/lib/darktable/plugins/introspection_borders.c:122 +#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../src/common/collection.c:635 ../src/libs/filtering.c:59 msgid "aspect ratio" msgstr "アスペクト比" #. // portrait / landscape -#: ../build/lib/darktable/plugins/introspection_borders.c:130 -#: ../build/lib/darktable/plugins/introspection_borders.c:265 +#: ../build/lib/darktable/plugins/introspection_borders.c:140 +#: ../build/lib/darktable/plugins/introspection_borders.c:281 #: ../src/iop/flip.c:75 ../src/libs/print_settings.c:2517 msgid "orientation" msgstr "画像の向き" -#: ../build/lib/darktable/plugins/introspection_borders.c:136 -#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../build/lib/darktable/plugins/introspection_borders.c:146 +#: ../build/lib/darktable/plugins/introspection_borders.c:285 msgid "border size" msgstr "縁のサイズ" -#: ../build/lib/darktable/plugins/introspection_borders.c:142 -#: ../build/lib/darktable/plugins/introspection_borders.c:273 +#: ../build/lib/darktable/plugins/introspection_borders.c:152 +#: ../build/lib/darktable/plugins/introspection_borders.c:289 msgid "horizontal offset" msgstr "水平位置" -#: ../build/lib/darktable/plugins/introspection_borders.c:160 -#: ../build/lib/darktable/plugins/introspection_borders.c:285 +#: ../build/lib/darktable/plugins/introspection_borders.c:170 +#: ../build/lib/darktable/plugins/introspection_borders.c:301 msgid "vertical offset" msgstr "垂直位置" -#: ../build/lib/darktable/plugins/introspection_borders.c:178 -#: ../build/lib/darktable/plugins/introspection_borders.c:297 +#: ../build/lib/darktable/plugins/introspection_borders.c:188 +#: ../build/lib/darktable/plugins/introspection_borders.c:313 msgid "frame line size" msgstr "フレームラインのサイズ" -#: ../build/lib/darktable/plugins/introspection_borders.c:184 -#: ../build/lib/darktable/plugins/introspection_borders.c:301 +#: ../build/lib/darktable/plugins/introspection_borders.c:194 +#: ../build/lib/darktable/plugins/introspection_borders.c:317 msgid "frame line offset" msgstr "フレームラインの位置" -#: ../build/lib/darktable/plugins/introspection_borders.c:327 -#: ../src/gui/preferences.c:849 ../src/iop/ashift.c:6291 -#: ../src/iop/basicadj.c:632 ../src/iop/flip.c:472 ../src/iop/flip.c:474 -#: ../src/iop/levels.c:641 ../src/iop/rgblevels.c:1050 +#: ../build/lib/darktable/plugins/introspection_borders.c:218 +#: ../build/lib/darktable/plugins/introspection_borders.c:333 +msgid "basis" +msgstr "基準" + +#: ../build/lib/darktable/plugins/introspection_borders.c:347 +#: ../build/lib/darktable/plugins/introspection_borders.c:353 +#: ../src/gui/preferences.c:847 ../src/imageio/format/jpeg.c:604 +#: ../src/iop/ashift.c:6238 ../src/iop/basicadj.c:662 ../src/iop/flip.c:470 +#: ../src/iop/flip.c:472 ../src/iop/levels.c:657 ../src/iop/rgblevels.c:1105 msgid "auto" msgstr "自動" -#: ../build/lib/darktable/plugins/introspection_borders.c:328 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:309 +#: ../build/lib/darktable/plugins/introspection_borders.c:348 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:315 #: ../src/libs/filters/ratio.c:122 ../src/libs/print_settings.c:2519 msgid "portrait" msgstr "縦" -#: ../build/lib/darktable/plugins/introspection_borders.c:329 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:305 +#: ../build/lib/darktable/plugins/introspection_borders.c:349 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:311 #: ../src/libs/filters/ratio.c:124 ../src/libs/print_settings.c:2519 msgid "landscape" msgstr "横" +#: ../build/lib/darktable/plugins/introspection_borders.c:354 +#: ../src/iop/relight.c:275 ../src/libs/export.c:1223 +#: ../src/libs/metadata_view.c:151 ../src/libs/print_settings.c:2537 +msgid "width" +msgstr "幅" + +#: ../build/lib/darktable/plugins/introspection_borders.c:355 +#: ../build/lib/darktable/plugins/introspection_watermark.c:326 +#: ../src/libs/export.c:1229 ../src/libs/metadata_view.c:152 +#: ../src/libs/print_settings.c:2541 +msgid "height" +msgstr "高さ" + +#: ../build/lib/darktable/plugins/introspection_borders.c:356 +msgid "shorter" +msgstr "短辺" + +#: ../build/lib/darktable/plugins/introspection_borders.c:357 +msgid "longer" +msgstr "長辺" + #: ../build/lib/darktable/plugins/introspection_cacorrect.c:42 #: ../build/lib/darktable/plugins/introspection_cacorrect.c:91 msgid "avoid colorshift" @@ -2631,9 +2782,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:67 #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:132 -#: ../src/iop/atrous.c:1522 ../src/iop/bilateral.cc:350 ../src/iop/clahe.c:335 -#: ../src/iop/dither.c:760 ../src/iop/lowpass.c:584 ../src/iop/shadhi.c:675 -#: ../src/iop/sharpen.c:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:340 +#: ../build/lib/darktable/plugins/introspection_lens.cc:501 +#: ../src/iop/atrous.c:1636 ../src/iop/bilateral.cc:352 ../src/iop/clahe.c:337 +#: ../src/iop/dither.c:762 ../src/iop/lowpass.c:597 ../src/iop/shadhi.c:710 +#: ../src/iop/sharpen.c:435 msgid "radius" msgstr "範囲" @@ -2641,9 +2794,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:136 #: ../build/lib/darktable/plugins/introspection_highlights.c:137 #: ../build/lib/darktable/plugins/introspection_highlights.c:240 -#: ../src/iop/bloom.c:376 ../src/iop/denoiseprofile.c:3818 -#: ../src/iop/grain.c:584 ../src/iop/hazeremoval.c:201 -#: ../src/iop/hotpixels.c:388 ../src/iop/nlmeans.c:460 ../src/iop/velvia.c:279 +#: ../build/lib/darktable/plugins/introspection_lens.cc:334 +#: ../build/lib/darktable/plugins/introspection_lens.cc:497 +#: ../src/iop/bloom.c:372 ../src/iop/denoiseprofile.c:3822 +#: ../src/iop/grain.c:602 ../src/iop/hazeremoval.c:203 +#: ../src/iop/hotpixels.c:467 ../src/iop/nlmeans.c:463 ../src/iop/velvia.c:288 msgid "strength" msgstr "強さ" @@ -2658,41 +2813,41 @@ msgstr "非常に大きな色収差" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:158 -#: ../src/common/collection.c:1507 ../src/common/color_vocabulary.c:232 -#: ../src/common/colorlabels.c:334 ../src/develop/blend_gui.c:2330 -#: ../src/develop/blend_gui.c:2378 ../src/develop/lightroom.c:834 -#: ../src/gui/gtk.c:3137 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:354 -#: ../src/iop/channelmixer.c:618 ../src/iop/channelmixer.c:628 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/colorzones.c:2263 -#: ../src/iop/temperature.c:1935 ../src/iop/temperature.c:2129 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:260 -#: ../src/libs/histogram.c:2397 +#: ../src/common/collection.c:1374 ../src/common/color_vocabulary.c:232 +#: ../src/common/colorlabels.c:333 ../src/develop/blend_gui.c:2346 +#: ../src/develop/blend_gui.c:2394 ../src/develop/lightroom.c:887 +#: ../src/gui/gtk.c:3183 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:356 +#: ../src/iop/channelmixer.c:637 ../src/iop/channelmixer.c:647 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/colorzones.c:2499 +#: ../src/iop/temperature.c:1912 ../src/iop/temperature.c:2094 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:260 +#: ../src/libs/histogram.c:2724 msgid "red" msgstr "赤" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:159 -#: ../src/common/collection.c:1511 ../src/common/color_vocabulary.c:277 -#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2336 -#: ../src/develop/blend_gui.c:2384 ../src/develop/lightroom.c:838 -#: ../src/gui/gtk.c:3138 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:359 -#: ../src/iop/channelmixer.c:619 ../src/iop/channelmixer.c:634 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/colorzones.c:2266 -#: ../src/iop/temperature.c:1919 ../src/iop/temperature.c:1937 -#: ../src/iop/temperature.c:2130 ../src/libs/collect.c:1791 -#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2389 +#: ../src/common/collection.c:1378 ../src/common/color_vocabulary.c:277 +#: ../src/common/colorlabels.c:335 ../src/develop/blend_gui.c:2352 +#: ../src/develop/blend_gui.c:2400 ../src/develop/lightroom.c:891 +#: ../src/gui/gtk.c:3184 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:361 +#: ../src/iop/channelmixer.c:638 ../src/iop/channelmixer.c:653 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/colorzones.c:2502 +#: ../src/iop/temperature.c:1896 ../src/iop/temperature.c:1914 +#: ../src/iop/temperature.c:2095 ../src/libs/collect.c:1916 +#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2715 msgid "green" msgstr "緑" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:160 -#: ../src/common/collection.c:1513 ../src/common/color_vocabulary.c:324 -#: ../src/common/colorlabels.c:337 ../src/develop/blend_gui.c:2342 -#: ../src/develop/blend_gui.c:2390 ../src/develop/lightroom.c:840 -#: ../src/gui/gtk.c:3139 ../src/iop/bilateral.cc:364 -#: ../src/iop/channelmixer.c:620 ../src/iop/channelmixer.c:640 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/colorzones.c:2268 -#: ../src/iop/temperature.c:1939 ../src/iop/temperature.c:2131 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:263 -#: ../src/libs/histogram.c:2381 +#: ../src/common/collection.c:1380 ../src/common/color_vocabulary.c:324 +#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2358 +#: ../src/develop/blend_gui.c:2406 ../src/develop/lightroom.c:893 +#: ../src/gui/gtk.c:3185 ../src/iop/bilateral.cc:366 +#: ../src/iop/channelmixer.c:639 ../src/iop/channelmixer.c:659 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/colorzones.c:2504 +#: ../src/iop/temperature.c:1916 ../src/iop/temperature.c:2096 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:263 +#: ../src/libs/histogram.c:2706 msgid "blue" msgstr "青" @@ -2935,7 +3090,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:303 #: ../build/lib/darktable/plugins/introspection_crop.c:61 #: ../build/lib/darktable/plugins/introspection_crop.c:134 -#: ../src/gui/gtk.c:1141 ../src/iop/atrous.c:1518 +#: ../src/gui/gtk.c:1234 ../src/iop/atrous.c:1632 msgid "left" msgstr "左" @@ -2943,7 +3098,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:307 #: ../build/lib/darktable/plugins/introspection_crop.c:67 #: ../build/lib/darktable/plugins/introspection_crop.c:138 -#: ../src/gui/accelerators.c:113 ../src/gui/gtk.c:1155 +#: ../src/gui/accelerators.c:131 ../src/gui/gtk.c:1240 msgid "top" msgstr "上" @@ -2951,7 +3106,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:311 #: ../build/lib/darktable/plugins/introspection_crop.c:73 #: ../build/lib/darktable/plugins/introspection_crop.c:142 -#: ../src/gui/gtk.c:1148 ../src/iop/atrous.c:1517 +#: ../src/gui/gtk.c:1237 ../src/iop/atrous.c:1631 msgid "right" msgstr "右" @@ -2959,7 +3114,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:315 #: ../build/lib/darktable/plugins/introspection_crop.c:79 #: ../build/lib/darktable/plugins/introspection_crop.c:146 -#: ../src/gui/accelerators.c:114 ../src/gui/gtk.c:1162 +#: ../src/gui/accelerators.c:132 ../src/gui/gtk.c:1243 msgid "bottom" msgstr "下" @@ -2998,10 +3153,11 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:477 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:489 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:501 -#: ../src/develop/blend_gui.c:2356 ../src/develop/blend_gui.c:2404 -#: ../src/iop/atrous.c:1667 ../src/iop/channelmixerrgb.c:4457 -#: ../src/iop/channelmixerrgb.c:4573 ../src/iop/colorbalancergb.c:1895 -#: ../src/iop/colorzones.c:2402 ../src/iop/nlmeans.c:468 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 +#: ../src/develop/blend_gui.c:2372 ../src/develop/blend_gui.c:2420 +#: ../src/iop/atrous.c:1801 ../src/iop/channelmixerrgb.c:4525 +#: ../src/iop/channelmixerrgb.c:4641 ../src/iop/colorbalancergb.c:1966 +#: ../src/iop/colorzones.c:2645 ../src/iop/nlmeans.c:471 msgid "chroma" msgstr "彩度(クロマ)" @@ -3021,11 +3177,11 @@ #: ../build/lib/darktable/plugins/introspection_splittoning.c:73 #: ../build/lib/darktable/plugins/introspection_splittoning.c:134 #: ../build/lib/darktable/plugins/introspection_splittoning.c:142 -#: ../src/develop/blend_gui.c:2315 ../src/develop/blend_gui.c:2349 -#: ../src/develop/blend_gui.c:2411 ../src/iop/channelmixer.c:615 -#: ../src/iop/channelmixerrgb.c:4450 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/colorbalance.c:2042 ../src/iop/colorize.c:330 -#: ../src/iop/colorreconstruction.c:1240 ../src/iop/colorzones.c:2403 +#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2365 +#: ../src/develop/blend_gui.c:2427 ../src/iop/channelmixer.c:634 +#: ../src/iop/channelmixerrgb.c:4518 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/colorbalance.c:2017 ../src/iop/colorize.c:343 +#: ../src/iop/colorreconstruction.c:1249 ../src/iop/colorzones.c:2646 msgid "hue" msgstr "色相" @@ -3052,9 +3208,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:569 #: ../build/lib/darktable/plugins/introspection_toneequal.c:156 #: ../build/lib/darktable/plugins/introspection_toneequal.c:297 -#: ../src/iop/bilat.c:469 ../src/iop/colorbalance.c:2099 -#: ../src/iop/negadoctor.c:915 ../src/iop/shadhi.c:671 -#: ../src/iop/splittoning.c:507 +#: ../src/iop/bilat.c:479 ../src/iop/colorbalance.c:2074 +#: ../src/iop/negadoctor.c:934 ../src/iop/shadhi.c:706 +#: ../src/iop/splittoning.c:503 msgid "shadows" msgstr "シャドウ" @@ -3066,9 +3222,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:561 #: ../build/lib/darktable/plugins/introspection_toneequal.c:180 #: ../build/lib/darktable/plugins/introspection_toneequal.c:313 -#: ../src/iop/bilat.c:463 ../src/iop/colorbalance.c:2101 -#: ../src/iop/monochrome.c:561 ../src/iop/shadhi.c:672 -#: ../src/iop/splittoning.c:514 +#: ../src/iop/bilat.c:473 ../src/iop/colorbalance.c:2076 +#: ../src/iop/monochrome.c:583 ../src/iop/shadhi.c:707 +#: ../src/iop/splittoning.c:510 msgid "highlights" msgstr "ハイライト" @@ -3085,13 +3241,13 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:565 #: ../build/lib/darktable/plugins/introspection_toneequal.c:168 #: ../build/lib/darktable/plugins/introspection_toneequal.c:305 -#: ../src/iop/colorbalance.c:2100 +#: ../src/iop/colorbalance.c:2075 msgid "mid-tones" msgstr "中間トーン" #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:340 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:537 -#: ../src/iop/filmic.c:1576 +#: ../src/iop/filmic.c:1601 msgid "global saturation" msgstr "全体の彩度(サチュレーション)" @@ -3122,12 +3278,12 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:412 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:585 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:64 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:137 -#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:607 ../src/iop/bilat.c:458 -#: ../src/iop/colisa.c:304 ../src/iop/colorbalance.c:1947 -#: ../src/iop/colorbalance.c:1953 ../src/iop/filmic.c:1548 -#: ../src/iop/filmicrgb.c:4551 ../src/iop/lowpass.c:586 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:116 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:237 +#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:637 ../src/iop/bilat.c:468 +#: ../src/iop/colisa.c:298 ../src/iop/colorbalance.c:1922 +#: ../src/iop/colorbalance.c:1928 ../src/iop/filmic.c:1573 +#: ../src/iop/filmicrgb.c:4615 ../src/iop/lowpass.c:599 msgid "contrast" msgstr "コントラスト" @@ -3154,33 +3310,35 @@ msgid "blue-yellow contrast" msgstr "青/黄色 コントラスト" -#: ../build/lib/darktable/plugins/introspection_colorin.c:148 -#: ../build/lib/darktable/plugins/introspection_colorin.c:231 +#: ../build/lib/darktable/plugins/introspection_colorin.c:150 +#: ../build/lib/darktable/plugins/introspection_colorin.c:233 msgid "gamut clipping" msgstr "色域クリッピング" -#: ../build/lib/darktable/plugins/introspection_colorin.c:301 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:201 -#: ../src/common/colorspaces.c:1251 ../src/common/colorspaces.c:1484 +#: ../build/lib/darktable/plugins/introspection_colorin.c:304 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:312 +#: ../src/common/colorspaces.c:1410 ../src/common/colorspaces.c:1700 #: ../src/libs/print_settings.c:1356 msgid "sRGB" msgstr "sRGB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:302 -#: ../src/common/colorspaces.c:1260 ../src/common/colorspaces.c:1486 +#: ../build/lib/darktable/plugins/introspection_colorin.c:305 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:311 +#: ../src/common/colorspaces.c:1421 ../src/common/colorspaces.c:1702 #: ../src/libs/print_settings.c:1363 msgid "Adobe RGB (compatible)" msgstr "Adobe RGB(互換)" -#: ../build/lib/darktable/plugins/introspection_colorin.c:303 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 -#: ../src/common/colorspaces.c:1265 ../src/common/colorspaces.c:1488 +#: ../build/lib/darktable/plugins/introspection_colorin.c:306 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 +#: ../src/common/colorspaces.c:1428 ../src/common/colorspaces.c:1704 msgid "linear Rec709 RGB" msgstr "リニアRec709 RGB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:304 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 -#: ../src/common/colorspaces.c:1274 ../src/common/colorspaces.c:1490 +#: ../build/lib/darktable/plugins/introspection_colorin.c:307 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:206 +#: ../src/common/colorspaces.c:1442 ../src/common/colorspaces.c:1706 msgid "linear Rec2020 RGB" msgstr "リニアRec2020 RGB" @@ -3208,7 +3366,7 @@ #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:127 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:45 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:92 -#: ../src/iop/shadhi.c:686 +#: ../src/iop/shadhi.c:721 msgid "spatial extent" msgstr "空間的範囲" @@ -3218,7 +3376,7 @@ msgstr "輝度の範囲" #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:154 -#: ../src/iop/channelmixerrgb.c:4669 +#: ../src/iop/channelmixerrgb.c:4737 msgid "saturated colors" msgstr "高彩度の色" @@ -3232,7 +3390,7 @@ #: ../build/lib/darktable/plugins/introspection_colorzones.c:233 #: ../build/lib/darktable/plugins/introspection_soften.c:66 #: ../build/lib/darktable/plugins/introspection_soften.c:121 -#: ../src/iop/atrous.c:1689 +#: ../src/iop/atrous.c:1835 msgid "mix" msgstr "ミックス" @@ -3242,33 +3400,17 @@ msgstr "処理モード" #: ../build/lib/darktable/plugins/introspection_colorzones.c:255 -#: ../src/develop/blend_gui.c:2294 ../src/iop/channelmixer.c:617 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/colorchecker.c:1448 -#: ../src/iop/colorize.c:349 ../src/iop/colorzones.c:2401 -#: ../src/iop/exposure.c:1239 +#: ../src/develop/blend_gui.c:2310 ../src/iop/channelmixer.c:636 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/colorchecker.c:1453 +#: ../src/iop/colorize.c:362 ../src/iop/colorzones.c:2644 +#: ../src/iop/exposure.c:1257 msgid "lightness" msgstr "明度" -#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 -#: ../src/develop/blend_gui.c:2310 ../src/iop/basicadj.c:624 -#: ../src/iop/channelmixer.c:616 ../src/iop/colisa.c:306 -#: ../src/iop/colorbalance.c:2059 ../src/iop/colorbalancergb.c:1919 -#: ../src/iop/colorchecker.c:1483 ../src/iop/colorcontrast.c:90 -#: ../src/iop/colorcorrection.c:275 ../src/iop/colorize.c:343 -#: ../src/iop/lowpass.c:588 ../src/iop/soften.c:373 ../src/iop/velvia.c:84 -#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:971 -msgid "saturation" -msgstr "彩度" - #: ../build/lib/darktable/plugins/introspection_colorzones.c:267 -#: ../src/iop/atrous.c:1309 ../src/iop/atrous.c:1313 -#: ../src/iop/denoiseprofile.c:3527 ../src/iop/rawdenoise.c:755 +#: ../src/iop/atrous.c:1410 ../src/iop/atrous.c:1414 +#: ../src/iop/denoiseprofile.c:3531 ../src/iop/rawdenoise.c:771 +#: ../src/iop/sigmoid.c:292 msgid "smooth" msgstr "滑らか" @@ -3285,9 +3427,9 @@ #: ../build/lib/darktable/plugins/introspection_defringe.c:106 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:230 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:435 -#: ../src/iop/atrous.c:1572 ../src/iop/bloom.c:372 -#: ../src/iop/colorreconstruction.c:1236 ../src/iop/hotpixels.c:384 -#: ../src/iop/sharpen.c:449 +#: ../src/iop/atrous.c:1695 ../src/iop/bloom.c:368 +#: ../src/iop/colorreconstruction.c:1245 ../src/iop/hotpixels.c:463 +#: ../src/iop/sharpen.c:444 msgid "threshold" msgstr "しきい値" @@ -3422,7 +3564,7 @@ #. history #: ../build/lib/darktable/plugins/introspection_demosaic.c:232 -#: ../src/common/collection.c:1526 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1394 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "basic" msgstr "ベーシック" @@ -3496,12 +3638,9 @@ msgid "upgrade profiled transform" msgstr "プロファイルによる変換をアップグレード" -#. -#. * Color mode combo box -#. #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:257 #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:388 -#: ../src/imageio/format/avif.c:786 ../src/libs/colorpicker.c:584 +#: ../src/libs/colorpicker.c:659 msgid "color mode" msgstr "カラーモード" @@ -3526,7 +3665,7 @@ msgstr "分散を算出します" #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:410 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:266 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:292 msgid "RGB" msgstr "RGB" @@ -3537,7 +3676,7 @@ #. two more sharpness (standard & strong) #: ../build/lib/darktable/plugins/introspection_diffuse.c:123 #: ../build/lib/darktable/plugins/introspection_diffuse.c:248 -#: ../src/iop/atrous.c:1564 ../src/iop/diffuse.c:630 ../src/iop/highpass.c:381 +#: ../src/iop/atrous.c:1685 ../src/iop/diffuse.c:657 ../src/iop/highpass.c:376 msgid "sharpness" msgstr "シャープネス" @@ -3701,7 +3840,7 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:212 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:423 -#: ../src/iop/filmic.c:1489 +#: ../src/iop/filmic.c:1514 msgid "middle gray luminance" msgstr "ミドルグレーの輝度" @@ -3709,13 +3848,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:427 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:97 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:166 -#: ../src/iop/filmic.c:1514 +#: ../src/iop/filmic.c:1539 msgid "black relative exposure" msgstr "黒の相対露出値" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:224 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:431 -#: ../src/iop/filmic.c:1501 +#: ../src/iop/filmic.c:1526 msgid "white relative exposure" msgstr "白の相対露出値" @@ -3746,19 +3885,19 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:266 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:459 -#: ../src/iop/filmic.c:1646 +#: ../src/iop/filmic.c:1671 msgid "target middle gray" msgstr "ミドルグレーのターゲット" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:272 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:463 -#: ../src/iop/filmic.c:1637 +#: ../src/iop/filmic.c:1662 msgid "target black luminance" msgstr "黒の輝度のターゲット" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:278 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:467 -#: ../src/iop/filmic.c:1655 +#: ../src/iop/filmic.c:1680 msgid "target white luminance" msgstr "白の輝度のターゲット" @@ -3766,13 +3905,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:471 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:69 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:140 -#: ../src/libs/masks.c:106 +#: ../src/libs/masks.c:107 msgid "hardness" msgstr "硬さ" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:302 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:483 -#: ../src/iop/filmic.c:1586 ../src/iop/filmicrgb.c:4729 +#: ../src/iop/filmic.c:1611 ../src/iop/filmicrgb.c:4793 msgid "extreme luminance saturation" msgstr "極端な輝度の彩度" @@ -3843,11 +3982,11 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:549 #: ../build/lib/darktable/plugins/introspection_toneequal.c:371 -#: ../src/common/database.c:2785 ../src/common/variables.c:705 -#: ../src/develop/imageop_gui.c:209 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 +#: ../src/common/variables.c:714 ../src/develop/imageop_gui.c:209 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 msgid "no" msgstr "no" @@ -3949,9 +4088,25 @@ msgid "density" msgstr "濃さ" +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 +#: ../src/develop/blend_gui.c:2326 ../src/iop/basicadj.c:654 +#: ../src/iop/channelmixer.c:635 ../src/iop/colisa.c:300 +#: ../src/iop/colorbalance.c:2034 ../src/iop/colorbalancergb.c:1990 +#: ../src/iop/colorchecker.c:1488 ../src/iop/colorcontrast.c:82 +#: ../src/iop/colorcorrection.c:268 ../src/iop/colorize.c:356 +#: ../src/iop/lowpass.c:601 ../src/iop/soften.c:368 ../src/iop/velvia.c:75 +#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:1058 +msgid "saturation" +msgstr "彩度" + #: ../build/lib/darktable/plugins/introspection_grain.c:58 #: ../build/lib/darktable/plugins/introspection_grain.c:117 -#: ../src/iop/bilat.c:450 +#: ../src/iop/bilat.c:460 msgid "coarseness" msgstr "粗さ" @@ -3964,7 +4119,7 @@ #: ../build/lib/darktable/plugins/introspection_highlights.c:143 #: ../build/lib/darktable/plugins/introspection_highlights.c:244 -#: ../src/views/darkroom.c:2406 +#: ../src/views/darkroom.c:2245 msgid "clipping threshold" msgstr "クリッピングのしきい値" @@ -4100,168 +4255,172 @@ msgid "detect by 3 neighbors" msgstr "周囲の3ピクセルで検出" -#: ../build/lib/darktable/plugins/introspection_lens.cc:162 -#: ../build/lib/darktable/plugins/introspection_lens.cc:337 +#: ../build/lib/darktable/plugins/introspection_lens.cc:190 +#: ../build/lib/darktable/plugins/introspection_lens.cc:401 msgid "correction method" msgstr "補正方法" #. Page CORRECTIONS -#: ../build/lib/darktable/plugins/introspection_lens.cc:168 -#: ../build/lib/darktable/plugins/introspection_lens.cc:341 -#: ../src/iop/negadoctor.c:900 +#: ../build/lib/darktable/plugins/introspection_lens.cc:196 +#: ../build/lib/darktable/plugins/introspection_lens.cc:405 +#: ../src/iop/negadoctor.c:919 msgid "corrections" msgstr "補正" #. mode choice -#. Add check to control whether the style is to replace or append the current module -#: ../build/lib/darktable/plugins/introspection_lens.cc:174 -#: ../build/lib/darktable/plugins/introspection_lens.cc:345 +#: ../build/lib/darktable/plugins/introspection_lens.cc:202 +#: ../build/lib/darktable/plugins/introspection_lens.cc:409 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:128 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:219 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:51 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:118 -#: ../src/iop/bilat.c:428 ../src/iop/colorbalance.c:1909 -#: ../src/iop/denoiseprofile.c:3806 ../src/iop/exposure.c:1157 -#: ../src/iop/levels.c:684 ../src/iop/profile_gamma.c:668 -#: ../src/libs/copy_history.c:399 ../src/libs/export.c:1262 -#: ../src/libs/image.c:597 ../src/libs/print_settings.c:2875 -#: ../src/libs/styles.c:846 ../src/views/darkroom.c:2387 +#: ../src/develop/blend_gui.c:3546 ../src/iop/bilat.c:438 +#: ../src/iop/colorbalance.c:1884 ../src/iop/denoiseprofile.c:3810 +#: ../src/iop/exposure.c:1175 ../src/iop/levels.c:700 +#: ../src/iop/profile_gamma.c:682 ../src/libs/copy_history.c:399 +#: ../src/libs/export.c:1376 ../src/libs/image.c:666 +#: ../src/libs/print_settings.c:2875 ../src/libs/styles.c:850 +#: ../src/views/darkroom.c:2226 msgid "mode" msgstr "モード" -#: ../build/lib/darktable/plugins/introspection_lens.cc:210 -#: ../build/lib/darktable/plugins/introspection_lens.cc:369 -#: ../src/iop/lens.cc:3820 +#: ../build/lib/darktable/plugins/introspection_lens.cc:238 +#: ../build/lib/darktable/plugins/introspection_lens.cc:433 +#: ../src/iop/lens.cc:4474 msgid "target geometry" msgstr "ターゲットのジオメトリ" -#: ../build/lib/darktable/plugins/introspection_lens.cc:240 -#: ../build/lib/darktable/plugins/introspection_lens.cc:389 +#: ../build/lib/darktable/plugins/introspection_lens.cc:268 +#: ../build/lib/darktable/plugins/introspection_lens.cc:453 msgid "TCA overwrite" msgstr "倍率色収差 上書き" -#: ../build/lib/darktable/plugins/introspection_lens.cc:246 -#: ../build/lib/darktable/plugins/introspection_lens.cc:393 +#: ../build/lib/darktable/plugins/introspection_lens.cc:274 +#: ../build/lib/darktable/plugins/introspection_lens.cc:298 +#: ../build/lib/darktable/plugins/introspection_lens.cc:457 +#: ../build/lib/darktable/plugins/introspection_lens.cc:473 msgid "TCA red" msgstr "倍率色収差 赤" -#: ../build/lib/darktable/plugins/introspection_lens.cc:252 -#: ../build/lib/darktable/plugins/introspection_lens.cc:397 +#: ../build/lib/darktable/plugins/introspection_lens.cc:280 +#: ../build/lib/darktable/plugins/introspection_lens.cc:304 +#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:477 msgid "TCA blue" msgstr "倍率色収差 青" -#: ../build/lib/darktable/plugins/introspection_lens.cc:258 -#: ../build/lib/darktable/plugins/introspection_lens.cc:401 -msgid "distortion fine-tune" -msgstr "歪曲調整" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:264 -#: ../build/lib/darktable/plugins/introspection_lens.cc:405 -msgid "vignetting fine-tune" -msgstr "ビネット調整" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:270 -#: ../build/lib/darktable/plugins/introspection_lens.cc:409 -msgid "TCA red fine-tune" -msgstr "倍率色収差 赤微調整" +#: ../build/lib/darktable/plugins/introspection_lens.cc:286 +#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +msgid "distortion" +msgstr "歪曲" -#: ../build/lib/darktable/plugins/introspection_lens.cc:276 -#: ../build/lib/darktable/plugins/introspection_lens.cc:413 -msgid "TCA blue fine-tune" -msgstr "倍率色収差 青微調整" +#: ../build/lib/darktable/plugins/introspection_lens.cc:292 +#: ../build/lib/darktable/plugins/introspection_lens.cc:469 +#: ../src/iop/vignette.c:114 +msgid "vignetting" +msgstr "ビネット" -#: ../build/lib/darktable/plugins/introspection_lens.cc:282 -#: ../build/lib/darktable/plugins/introspection_lens.cc:417 +#: ../build/lib/darktable/plugins/introspection_lens.cc:310 +#: ../build/lib/darktable/plugins/introspection_lens.cc:481 msgid "scale fine-tune" msgstr "スケール微調整" -#: ../build/lib/darktable/plugins/introspection_lens.cc:294 -#: ../build/lib/darktable/plugins/introspection_lens.cc:425 +#: ../build/lib/darktable/plugins/introspection_lens.cc:322 +#: ../build/lib/darktable/plugins/introspection_lens.cc:489 msgid "image scale" msgstr "画像スケール" -#: ../build/lib/darktable/plugins/introspection_lens.cc:439 +#: ../build/lib/darktable/plugins/introspection_lens.cc:346 +#: ../build/lib/darktable/plugins/introspection_lens.cc:505 +msgid "steepness" +msgstr "峻度" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:527 msgid "embedded metadata" msgstr "埋め込みメタデータ" -#: ../build/lib/darktable/plugins/introspection_lens.cc:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:528 msgid "Lensfun database" msgstr "Lensfunデータベース" +#: ../build/lib/darktable/plugins/introspection_lens.cc:529 +msgid "only manual vignette" +msgstr "手動ビネットのみ" + #. get nice text for bounds #. Side-border hide/show -#: ../build/lib/darktable/plugins/introspection_lens.cc:445 -#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2367 -#: ../src/gui/accelerators.c:2447 ../src/gui/gtk.c:1204 ../src/gui/gtk.c:3136 -#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3709 -#: ../src/iop/rawdenoise.c:893 ../src/libs/collect.c:3066 -#: ../src/libs/filtering.c:1459 ../src/libs/filters/colors.c:157 +#: ../build/lib/darktable/plugins/introspection_lens.cc:534 +#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2592 +#: ../src/gui/accelerators.c:2674 ../src/gui/gtk.c:1282 ../src/gui/gtk.c:3182 +#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3713 +#: ../src/iop/rawdenoise.c:909 ../src/libs/collect.c:3413 +#: ../src/libs/filtering.c:1521 ../src/libs/filters/colors.c:157 #: ../src/libs/filters/colors.c:265 ../src/libs/filters/rating.c:211 msgid "all" msgstr "全て" -#: ../build/lib/darktable/plugins/introspection_lens.cc:446 +#: ../build/lib/darktable/plugins/introspection_lens.cc:535 msgid "distortion & TCA" msgstr "歪曲&倍率色収差" -#: ../build/lib/darktable/plugins/introspection_lens.cc:447 +#: ../build/lib/darktable/plugins/introspection_lens.cc:536 msgid "distortion & vignetting" msgstr "歪曲&周辺減光" -#: ../build/lib/darktable/plugins/introspection_lens.cc:448 +#: ../build/lib/darktable/plugins/introspection_lens.cc:537 msgid "TCA & vignetting" msgstr "倍率色収差&周辺減光" -#: ../build/lib/darktable/plugins/introspection_lens.cc:449 +#: ../build/lib/darktable/plugins/introspection_lens.cc:538 msgid "only distortion" msgstr "歪曲のみ" -#: ../build/lib/darktable/plugins/introspection_lens.cc:450 +#: ../build/lib/darktable/plugins/introspection_lens.cc:539 msgid "only TCA" msgstr "倍率色収差のみ" -#: ../build/lib/darktable/plugins/introspection_lens.cc:451 +#: ../build/lib/darktable/plugins/introspection_lens.cc:540 msgid "only vignetting" msgstr "周辺減光のみ" -#: ../build/lib/darktable/plugins/introspection_lens.cc:455 -#: ../src/libs/modulegroups.c:2318 +#: ../build/lib/darktable/plugins/introspection_lens.cc:544 +#: ../src/libs/modulegroups.c:2302 msgid "correct" msgstr "補正" -#: ../build/lib/darktable/plugins/introspection_lens.cc:456 +#: ../build/lib/darktable/plugins/introspection_lens.cc:545 msgid "distort" msgstr "歪曲" -#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:550 msgid "rectilinear" msgstr "心射方位" -#: ../build/lib/darktable/plugins/introspection_lens.cc:462 +#: ../build/lib/darktable/plugins/introspection_lens.cc:551 msgid "fisheye" msgstr "魚眼" -#: ../build/lib/darktable/plugins/introspection_lens.cc:463 +#: ../build/lib/darktable/plugins/introspection_lens.cc:552 msgid "panoramic" msgstr "パノラマ" -#: ../build/lib/darktable/plugins/introspection_lens.cc:464 +#: ../build/lib/darktable/plugins/introspection_lens.cc:553 msgid "equirectangular" msgstr "正距円筒" -#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +#: ../build/lib/darktable/plugins/introspection_lens.cc:554 msgid "orthographic" msgstr "正射" -#: ../build/lib/darktable/plugins/introspection_lens.cc:466 +#: ../build/lib/darktable/plugins/introspection_lens.cc:555 msgid "stereographic" msgstr "平射" -#: ../build/lib/darktable/plugins/introspection_lens.cc:467 +#: ../build/lib/darktable/plugins/introspection_lens.cc:556 msgid "equisolid angle" msgstr "等立体角" -#: ../build/lib/darktable/plugins/introspection_lens.cc:468 +#: ../build/lib/darktable/plugins/introspection_lens.cc:557 msgid "Thoby fisheye" msgstr "トビー魚眼" @@ -4271,8 +4430,8 @@ #. move left/right/up/down #: ../build/lib/darktable/plugins/introspection_liquify.c:429 -#: ../src/views/darkroom.c:2282 ../src/views/darkroom.c:2676 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:765 +#: ../src/views/darkroom.c:2121 ../src/views/darkroom.c:2522 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:765 #: ../src/views/lighttable.c:774 ../src/views/lighttable.c:1246 #: ../src/views/lighttable.c:1250 ../src/views/lighttable.c:1254 #: ../src/views/lighttable.c:1258 ../src/views/lighttable.c:1262 @@ -4284,8 +4443,8 @@ msgstr "線" #: ../build/lib/darktable/plugins/introspection_liquify.c:431 -#: ../src/iop/basecurve.c:2186 ../src/iop/rgbcurve.c:1387 -#: ../src/iop/tonecurve.c:1149 +#: ../src/iop/basecurve.c:2207 ../src/iop/rgbcurve.c:1387 +#: ../src/iop/tonecurve.c:1171 msgid "curve" msgstr "曲線" @@ -4321,28 +4480,33 @@ msgid "bilateral filter" msgstr "バイラテラルフィルタ" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:76 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:163 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:77 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:164 msgid "application color space" msgstr "色空間" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 msgid "Adobe RGB" msgstr "Adobe RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 msgid "gamma Rec709 RGB" msgstr "ガンマ Rec709 RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:209 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:207 +#: ../src/common/colorspaces.c:1486 ../src/common/colorspaces.c:1740 +msgid "linear ProPhoto RGB" +msgstr "リニアProPhoto RGB" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 msgid "tetrahedral" msgstr "四面体" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:210 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:212 msgid "trilinear" msgstr "トリリニア" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:213 msgid "pyramid" msgstr "ピラミッド" @@ -4363,7 +4527,7 @@ #: ../build/lib/darktable/plugins/introspection_negadoctor.c:144 #: ../build/lib/darktable/plugins/introspection_negadoctor.c:239 -#: ../src/iop/negadoctor.c:992 +#: ../src/iop/negadoctor.c:1011 msgid "paper grade (gamma)" msgstr "印画紙号数 (ガンマ)" @@ -4378,15 +4542,57 @@ msgstr "印刷露出調整" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:261 -#: ../src/iop/negadoctor.c:417 +#: ../src/iop/negadoctor.c:431 msgid "black and white film" msgstr "白黒フィルム" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:262 -#: ../src/iop/negadoctor.c:402 +#: ../src/iop/negadoctor.c:416 msgid "color film" msgstr "カラーフィルム" +#: ../build/lib/darktable/plugins/introspection_primaries.c:75 +#: ../build/lib/darktable/plugins/introspection_primaries.c:160 +#: ../src/iop/primaries.c:406 +msgid "tint hue" +msgstr "ティント 色相" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:81 +#: ../build/lib/darktable/plugins/introspection_primaries.c:164 +#: ../src/iop/primaries.c:413 +msgid "tint purity" +msgstr "ティント 純度" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:87 +#: ../build/lib/darktable/plugins/introspection_primaries.c:168 +msgid "red hue" +msgstr "赤 色相" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:93 +#: ../build/lib/darktable/plugins/introspection_primaries.c:172 +msgid "red purity" +msgstr "赤 純度" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:99 +#: ../build/lib/darktable/plugins/introspection_primaries.c:176 +msgid "green hue" +msgstr "緑 色相" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:105 +#: ../build/lib/darktable/plugins/introspection_primaries.c:180 +msgid "green purity" +msgstr "緑 純度" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:111 +#: ../build/lib/darktable/plugins/introspection_primaries.c:184 +msgid "blue hue" +msgstr "青 色相" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:117 +#: ../build/lib/darktable/plugins/introspection_primaries.c:188 +msgid "blue purity" +msgstr "青 純度" + #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:85 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:158 msgid "dynamic range" @@ -4399,7 +4605,7 @@ #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:103 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:170 -#: ../src/iop/filmic.c:1526 +#: ../src/iop/filmic.c:1551 msgid "safety factor" msgstr "安全率" @@ -4408,7 +4614,7 @@ msgstr "対数" #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:185 -#: ../src/iop/profile_gamma.c:625 +#: ../src/iop/profile_gamma.c:639 msgid "gamma" msgstr "ガンマ" @@ -4446,7 +4652,7 @@ #: ../build/lib/darktable/plugins/introspection_rawprepare.c:106 #: ../build/lib/darktable/plugins/introspection_rawprepare.c:179 -#: ../src/iop/rawprepare.c:946 +#: ../src/iop/rawprepare.c:954 msgid "white point" msgstr "ホワイトポイント" @@ -4462,9 +4668,9 @@ #. exposure #: ../build/lib/darktable/plugins/introspection_relight.c:43 #: ../build/lib/darktable/plugins/introspection_relight.c:98 -#: ../src/common/collection.c:720 ../src/gui/preferences.c:836 -#: ../src/gui/presets.c:684 ../src/iop/basicadj.c:598 ../src/iop/exposure.c:122 -#: ../src/iop/exposure.c:1117 ../src/libs/metadata_view.c:141 +#: ../src/common/collection.c:633 ../src/gui/preferences.c:834 +#: ../src/gui/presets.c:687 ../src/iop/basicadj.c:628 ../src/iop/exposure.c:122 +#: ../src/iop/exposure.c:1135 ../src/libs/metadata_view.c:143 msgid "exposure" msgstr "露出" @@ -4475,9 +4681,9 @@ #: ../build/lib/darktable/plugins/introspection_retouch.c:285 #: ../build/lib/darktable/plugins/introspection_retouch.c:426 -#: ../src/iop/basicadj.c:620 ../src/iop/channelmixerrgb.c:4617 -#: ../src/iop/colisa.c:305 ../src/iop/lowpass.c:587 ../src/iop/soften.c:377 -#: ../src/iop/vignette.c:970 ../src/libs/history.c:963 +#: ../src/iop/basicadj.c:650 ../src/iop/channelmixerrgb.c:4685 +#: ../src/iop/colisa.c:299 ../src/iop/lowpass.c:600 ../src/iop/soften.c:372 +#: ../src/iop/vignette.c:1057 ../src/libs/history.c:963 msgid "brightness" msgstr "明るさ(ブライトネス)" @@ -4487,7 +4693,7 @@ msgstr "max_iter" #: ../build/lib/darktable/plugins/introspection_retouch.c:444 -#: ../src/libs/metadata_view.c:329 +#: ../src/libs/metadata_view.c:333 msgid "unused" msgstr "未使用" @@ -4500,12 +4706,12 @@ msgstr "修復" #: ../build/lib/darktable/plugins/introspection_retouch.c:447 -#: ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2051 msgid "blur" msgstr "ぼかし" #: ../build/lib/darktable/plugins/introspection_retouch.c:448 -#: ../src/iop/retouch.c:1865 +#: ../src/iop/retouch.c:2049 msgid "fill" msgstr "塗りつぶし" @@ -4518,9 +4724,9 @@ msgstr "消去" #: ../build/lib/darktable/plugins/introspection_retouch.c:458 -#: ../src/gui/presets.c:59 ../src/iop/watermark.c:1298 -#: ../src/libs/colorpicker.c:291 ../src/libs/image.c:612 -#: ../src/libs/modulegroups.c:2317 +#: ../src/gui/presets.c:61 ../src/iop/watermark.c:1346 +#: ../src/libs/colorpicker.c:320 ../src/libs/image.c:683 +#: ../src/libs/modulegroups.c:2301 msgid "color" msgstr "色" @@ -4556,45 +4762,93 @@ msgid "highlights color adjustment" msgstr "ハイライトの色調整" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:70 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:141 -#: ../src/gui/accelerators.c:85 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:122 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:241 +#: ../src/gui/accelerators.c:101 msgid "skew" msgstr "傾き" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:76 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:145 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:128 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:245 msgid "target white" msgstr "白のターゲット" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:82 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:149 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:134 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:249 msgid "target black" msgstr "黒のターゲット" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:88 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:153 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:140 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:253 msgid "color processing" msgstr "色処理" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:94 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:157 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:146 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:257 msgid "preserve hue" msgstr "色相の保持" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:171 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:152 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:261 +msgid "red attenuation" +msgstr "赤 減衰" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:158 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:265 +msgid "red rotation" +msgstr "赤 回転" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:164 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:269 +msgid "green attenuation" +msgstr "緑 減衰" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:170 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:273 +msgid "green rotation" +msgstr "緑 回転" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:176 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:277 +msgid "blue attenuation" +msgstr "青 減衰" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:182 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:281 +msgid "blue rotation" +msgstr "青 回転" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:188 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:285 +msgid "recover purity" +msgstr "純度の復元" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:194 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:289 +msgid "base primaries" +msgstr "ベースプライマリ" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:303 msgid "per channel" msgstr "チャンネル毎" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:172 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:304 msgid "RGB ratio" msgstr "RGB比" -#: ../build/lib/darktable/plugins/introspection_temperature.c:66 -#: ../build/lib/darktable/plugins/introspection_temperature.c:121 -#: ../src/iop/temperature.c:1941 -msgid "emerald" -msgstr "エメラルド" +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:308 +#: ../src/common/colorspaces.c:1377 ../src/common/colorspaces.c:1734 +msgid "work profile" +msgstr "作業プロファイル" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:309 +msgid "Rec2020" +msgstr "Rec2020" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:310 +#: ../src/common/colorspaces.c:1750 +msgid "Display P3" +msgstr "Display P3" #: ../build/lib/darktable/plugins/introspection_tonecurve.c:135 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:232 @@ -4716,13 +4970,13 @@ #: ../build/lib/darktable/plugins/introspection_tonemap.cc:39 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:88 -#: ../src/iop/rgbcurve.c:184 ../src/iop/tonecurve.c:539 +#: ../src/iop/rgbcurve.c:186 ../src/iop/tonecurve.c:560 msgid "contrast compression" msgstr "コントラスト圧縮" #: ../build/lib/darktable/plugins/introspection_vibrance.c:33 #: ../build/lib/darktable/plugins/introspection_vibrance.c:76 -#: ../src/iop/basicadj.c:627 ../src/iop/vibrance.c:67 +#: ../src/iop/basicadj.c:657 ../src/iop/vibrance.c:67 msgid "vibrance" msgstr "自然な彩度" @@ -4758,7 +5012,7 @@ #: ../build/lib/darktable/plugins/introspection_vignette.c:146 #: ../build/lib/darktable/plugins/introspection_vignette.c:237 -#: ../src/iop/vignette.c:978 +#: ../src/iop/vignette.c:1066 msgid "shape" msgstr "形" @@ -4797,7 +5051,7 @@ #: ../build/lib/darktable/plugins/introspection_watermark.c:323 #: ../src/imageio/format/tiff.c:125 ../src/imageio/format/xcf.c:159 -#: ../src/iop/borders.c:947 +#: ../src/iop/borders.c:960 msgid "image" msgstr "画像" @@ -4809,12 +5063,6 @@ msgid "smaller border" msgstr "短辺" -#: ../build/lib/darktable/plugins/introspection_watermark.c:326 -#: ../src/libs/export.c:1135 ../src/libs/metadata_view.c:148 -#: ../src/libs/print_settings.c:2541 -msgid "height" -msgstr "高さ" - #: ../build/lib/darktable/plugins/introspection_watermark.c:327 msgid "advanced options" msgstr "詳細オプション" @@ -4843,23 +5091,23 @@ msgid "marker height" msgstr "マーカーの高さ" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:6 +#: ../build/bin/tools/darktable_authors.h:6 msgid "developers" msgstr "開発者" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:11 +#: ../build/bin/tools/darktable_authors.h:11 msgid "translators" msgstr "翻訳者" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:16 +#: ../build/bin/tools/darktable_authors.h:16 msgid "contributors" msgstr "コントリビューター" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:21 +#: ../build/bin/tools/darktable_authors.h:21 msgid "rawspeed contributors" msgstr "rawspeedコントリビューター" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:26 +#: ../build/bin/tools/darktable_authors.h:26 msgid "integration contributors" msgstr "統合作業コントリビューター" @@ -4929,90 +5177,104 @@ msgid "Print your images" msgstr "画像を印刷" -#: ../src/bauhaus/bauhaus.c:752 ../src/bauhaus/bauhaus.c:3689 +#: ../src/bauhaus/bauhaus.c:845 ../src/bauhaus/bauhaus.c:3957 msgid "sliders" msgstr "スライダー" -#: ../src/bauhaus/bauhaus.c:753 ../src/bauhaus/bauhaus.c:3694 +#: ../src/bauhaus/bauhaus.c:847 ../src/bauhaus/bauhaus.c:3962 msgid "dropdowns" msgstr "ドロップダウン" -#: ../src/bauhaus/bauhaus.c:754 ../src/bauhaus/bauhaus.c:3699 +#: ../src/bauhaus/bauhaus.c:849 ../src/bauhaus/bauhaus.c:3967 msgid "buttons" msgstr "ボタン" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button on" msgstr "ボタン オン" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button off" msgstr "ボタン オフ" -#: ../src/bauhaus/bauhaus.c:3406 +#: ../src/bauhaus/bauhaus.c:3624 msgid "button pressed" msgstr "ボタン押下済み" -#: ../src/bauhaus/bauhaus.c:3623 +#: ../src/bauhaus/bauhaus.c:3862 msgid "not that many sliders" msgstr "スライダー数不足" -#: ../src/bauhaus/bauhaus.c:3633 +#: ../src/bauhaus/bauhaus.c:3876 msgid "not that many dropdowns" msgstr "ドロップダウン数不足" -#: ../src/bauhaus/bauhaus.c:3648 +#: ../src/bauhaus/bauhaus.c:3895 msgid "not that many buttons" msgstr "ボタン数不足" -#: ../src/bauhaus/bauhaus.c:3653 ../src/gui/accelerators.c:348 +#: ../src/bauhaus/bauhaus.c:3900 ../src/gui/accelerators.c:389 msgid "value" msgstr "値" -#: ../src/bauhaus/bauhaus.c:3654 ../src/bauhaus/bauhaus.c:3660 -#: ../src/gui/accelerators.c:326 +#: ../src/bauhaus/bauhaus.c:3901 ../src/bauhaus/bauhaus.c:3907 +#: ../src/gui/accelerators.c:368 msgid "button" msgstr "ボタン" -#: ../src/bauhaus/bauhaus.c:3655 +#: ../src/bauhaus/bauhaus.c:3902 msgid "force" msgstr "強さ" -#: ../src/bauhaus/bauhaus.c:3656 ../src/libs/navigation.c:187 -#: ../src/libs/navigation.c:199 +#: ../src/bauhaus/bauhaus.c:3903 ../src/libs/navigation.c:190 +#: ../src/libs/navigation.c:202 msgid "zoom" msgstr "ズーム" -#: ../src/bauhaus/bauhaus.c:3659 +#: ../src/bauhaus/bauhaus.c:3906 ../src/libs/select.c:40 msgid "selection" msgstr "選択" -#: ../src/bauhaus/bauhaus.c:3678 +#: ../src/bauhaus/bauhaus.c:3946 msgid "slider" msgstr "スライダー" -#: ../src/bauhaus/bauhaus.c:3683 +#: ../src/bauhaus/bauhaus.c:3951 msgid "dropdown" msgstr "ドロップ ダウン" -#: ../src/chart/main.c:504 ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 ../src/gui/accelerators.c:2278 -#: ../src/gui/accelerators.c:2355 ../src/gui/accelerators.c:2407 -#: ../src/gui/accelerators.c:2435 ../src/gui/accelerators.c:2495 -#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1043 -#: ../src/gui/preferences.c:1082 ../src/gui/presets.c:420 -#: ../src/gui/presets.c:563 ../src/gui/styles_dialog.c:519 -#: ../src/imageio/storage/disk.c:123 ../src/imageio/storage/gallery.c:110 -#: ../src/imageio/storage/latex.c:109 ../src/iop/lut3d.c:1546 -#: ../src/libs/collect.c:408 ../src/libs/copy_history.c:115 -#: ../src/libs/geotagging.c:928 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/styles.c:392 ../src/libs/styles.c:527 -#: ../src/libs/tagging.c:2489 ../src/libs/tagging.c:2525 +#: ../src/chart/main.c:504 ../src/common/database.c:3372 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 ../src/gui/accelerators.c:2497 +#: ../src/gui/accelerators.c:2579 ../src/gui/accelerators.c:2632 +#: ../src/gui/accelerators.c:2661 ../src/gui/accelerators.c:2723 +#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1081 ../src/gui/presets.c:422 +#: ../src/gui/presets.c:565 ../src/gui/styles_dialog.c:526 +#: ../src/imageio/storage/disk.c:198 ../src/imageio/storage/gallery.c:150 +#: ../src/imageio/storage/latex.c:146 ../src/iop/lut3d.c:1560 +#: ../src/libs/collect.c:425 ../src/libs/collect.c:3242 +#: ../src/libs/copy_history.c:115 ../src/libs/export_metadata.c:276 +#: ../src/libs/geotagging.c:929 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1711 +#: ../src/libs/metadata.c:462 ../src/libs/metadata_view.c:1222 +#: ../src/libs/recentcollect.c:228 ../src/libs/modulegroups.c:3466 +#: ../src/libs/styles.c:392 ../src/libs/styles.c:439 ../src/libs/styles.c:529 +#: ../src/libs/styles.c:624 ../src/libs/tagging.c:1488 +#: ../src/libs/tagging.c:1579 ../src/libs/tagging.c:1670 +#: ../src/libs/tagging.c:1806 ../src/libs/tagging.c:2085 +#: ../src/libs/tagging.c:2520 ../src/libs/tagging.c:2556 +#: ../src/libs/tagging.c:3502 msgid "_cancel" msgstr "_キャンセル" -#: ../src/chart/main.c:504 ../src/gui/preferences.c:1082 -#: ../src/gui/styles_dialog.c:520 ../src/libs/styles.c:392 +#: ../src/chart/main.c:504 ../src/gui/preferences.c:1081 +#: ../src/gui/styles_dialog.c:527 ../src/libs/collect.c:3243 +#: ../src/libs/export_metadata.c:277 ../src/libs/metadata.c:463 +#: ../src/libs/metadata_view.c:1223 ../src/libs/recentcollect.c:229 +#: ../src/libs/styles.c:392 ../src/libs/tagging.c:1671 +#: ../src/libs/tagging.c:1807 ../src/libs/tagging.c:2086 +#: ../src/libs/tagging.c:3503 msgid "_save" msgstr "_保存" @@ -5026,63 +5288,63 @@ "平均dE:%.02f\n" "最大dE:%.02f" -#: ../src/cli/main.c:247 +#: ../src/cli/main.c:270 msgid "TODO: sorry, due to API restrictions we currently cannot set the BPP to" msgstr "" "TODO:申し訳ありません、APIの制限のため、現在BPPを次の値に設定することが出来" "ません" -#: ../src/cli/main.c:259 +#: ../src/cli/main.c:282 msgid "unknown option for --hq" msgstr "--hq の不明なオプション" -#: ../src/cli/main.c:275 +#: ../src/cli/main.c:298 msgid "unknown option for --export_masks" msgstr "--export_masks の不明なオプション" -#: ../src/cli/main.c:291 +#: ../src/cli/main.c:314 msgid "unknown option for --upscale" msgstr "--upscale の不明なオプション" -#: ../src/cli/main.c:316 +#: ../src/cli/main.c:339 msgid "unknown option for --apply-custom-presets" msgstr "--apply-custom-presets の不明なオプション" -#: ../src/cli/main.c:327 +#: ../src/cli/main.c:350 msgid "too long ext for --out-ext" msgstr "--out-extの長すぎるext拡張子" -#: ../src/cli/main.c:344 +#: ../src/cli/main.c:367 #, c-format msgid "notice: input file or dir '%s' doesn't exist, skipping\n" msgstr "入力ファイルあるいはディレクトリ'%s'は存在しません。スキップします\n" -#: ../src/cli/main.c:353 +#: ../src/cli/main.c:376 #, c-format msgid "incorrect ICC type for --icc-type: '%s'\n" msgstr "--icc-type:'%s'に不適切なICC 形式です \n" -#: ../src/cli/main.c:369 +#: ../src/cli/main.c:392 #, c-format msgid "notice: ICC file '%s' doesn't exist, skipping\n" msgstr "ICC ファイル'%s'は存在しません。スキップします\n" -#: ../src/cli/main.c:378 +#: ../src/cli/main.c:401 #, c-format msgid "incorrect ICC intent for --icc-intent: '%s'\n" msgstr "- --icc-intent:'%s'に不適切なICC インテントです \n" -#: ../src/cli/main.c:396 +#: ../src/cli/main.c:419 #, c-format msgid "warning: unknown option '%s'\n" msgstr "警告:不明なオプション'%s'\n" -#: ../src/cli/main.c:454 +#: ../src/cli/main.c:477 #, c-format msgid "error: input file and import opts specified! that's not supported!\n" msgstr "エラー:入力ファイルと入力オプションが指定されましたが、無効です!\n" -#: ../src/cli/main.c:487 +#: ../src/cli/main.c:510 #, c-format msgid "" "notice: output location is a directory. assuming '%s/$(FILE_NAME).%s' output " @@ -5090,48 +5352,48 @@ msgstr "出力場所はディレクトリーです。出力ひな型'%s/$(FILE_NAME).%s'が必要です" #. output file exists or there's output ext specified and it's same as file... -#: ../src/cli/main.c:502 +#: ../src/cli/main.c:525 msgid "output file already exists, it will get renamed" msgstr "出力ファイルは既に存在します。名前が変更されます" #. one of inputs was a failure, no prob -#: ../src/cli/main.c:532 +#: ../src/cli/main.c:555 #, c-format msgid "error: can't open folder %s" msgstr "エラー:フォルダ%sを開くことが出来ません" -#: ../src/cli/main.c:549 +#: ../src/cli/main.c:572 #, c-format msgid "error: can't open file %s" msgstr "エラー:ファイル%sを開くことが出来ません" -#: ../src/cli/main.c:566 +#: ../src/cli/main.c:589 #, c-format msgid "no images to export, aborting\n" msgstr "エクスポートする画像がありません、中止します\n" -#: ../src/cli/main.c:583 +#: ../src/cli/main.c:606 #, c-format msgid "error: can't open XMP file %s" msgstr "エラー:XMPファイル%sを開くことが出来ません" -#: ../src/cli/main.c:604 +#: ../src/cli/main.c:627 msgid "empty history stack" msgstr "空の履歴スタックです" #. too long ext, no point in wasting time -#: ../src/cli/main.c:616 +#: ../src/cli/main.c:639 #, c-format msgid "too long output file extension: %s\n" msgstr "出力ファイルの拡張子が長すぎます:%s\n" #. no ext or empty ext, no point in wasting time -#: ../src/cli/main.c:624 +#: ../src/cli/main.c:647 #, c-format msgid "no output file extension given\n" msgstr "出力ファイルの拡張子が指定されていません\n" -#: ../src/cli/main.c:663 +#: ../src/cli/main.c:692 msgid "" "cannot find disk storage module. please check your installation, something " "seems to be broken." @@ -5139,18 +5401,18 @@ "ディスクストレージモジュールを見つけることが出来ません。インストールを確認し" "てください、何かが壊れているようです" -#: ../src/cli/main.c:673 +#: ../src/cli/main.c:702 msgid "failed to get parameters from storage module, aborting export ..." msgstr "" "ストレージモジュールからパラメータを取得することが出来ませんでした。エクス" "ポートを中止します..." -#: ../src/cli/main.c:689 +#: ../src/cli/main.c:718 #, c-format msgid "unknown extension '.%s'" msgstr "不明な拡張子'.%s'" -#: ../src/cli/main.c:699 +#: ../src/cli/main.c:728 msgid "failed to get parameters from format module, aborting export ..." msgstr "" "フォーマットモジュールからパラメータを取得することが出来ませんでした。エクス" @@ -5202,203 +5464,209 @@ "アクセスが許可されていること、非許可設定でマウントされていないことを確認して" "ください" -#: ../src/common/collection.c:673 +#: ../src/common/collection.c:586 msgid "too much time to update aspect ratio for the collection" msgstr "コレクションのアスペクト比を更新するのに時間がかかりすぎます" -#: ../src/common/collection.c:688 +#: ../src/common/collection.c:601 msgid "film roll" msgstr "フィルムロール" -#: ../src/common/collection.c:690 +#: ../src/common/collection.c:603 msgid "folder" msgstr "フォルダ" -#: ../src/common/collection.c:692 +#: ../src/common/collection.c:605 msgid "camera" msgstr "カメラ" -#: ../src/common/collection.c:694 ../src/libs/export_metadata.c:189 -#: ../src/libs/tagging.c:3281 +#: ../src/common/collection.c:607 ../src/libs/export_metadata.c:176 +#: ../src/libs/tagging.c:3312 msgid "tag" msgstr "タグ" -#: ../src/common/collection.c:696 +#: ../src/common/collection.c:609 msgid "capture date" msgstr "撮影日時" -#: ../src/common/collection.c:698 ../src/libs/filtering.c:61 +#: ../src/common/collection.c:611 ../src/libs/filtering.c:61 msgid "capture time" msgstr "撮影日時" -#: ../src/common/collection.c:700 ../src/libs/filtering.c:62 +#: ../src/common/collection.c:613 ../src/libs/filtering.c:62 msgid "import time" msgstr "インポート日時" -#: ../src/common/collection.c:702 ../src/libs/filtering.c:63 +#: ../src/common/collection.c:615 ../src/libs/filtering.c:63 msgid "modification time" msgstr "更新日時" -#: ../src/common/collection.c:704 ../src/libs/filtering.c:64 +#: ../src/common/collection.c:617 ../src/libs/filtering.c:64 msgid "export time" msgstr "エクスポート日時" -#: ../src/common/collection.c:706 ../src/libs/filtering.c:65 +#: ../src/common/collection.c:619 ../src/libs/filtering.c:65 msgid "print time" msgstr "印刷日時" -#: ../src/common/collection.c:708 ../src/libs/collect.c:3222 -#: ../src/libs/filtering.c:2163 ../src/libs/filtering.c:2183 +#: ../src/common/collection.c:621 ../src/libs/collect.c:3586 +#: ../src/libs/filtering.c:2237 ../src/libs/filtering.c:2257 #: ../src/libs/filters/history.c:153 ../src/libs/history.c:92 msgid "history" msgstr "履歴" -#: ../src/common/collection.c:710 ../src/common/colorlabels.c:342 -#: ../src/develop/lightroom.c:1550 ../src/dtgtk/thumbnail.c:1560 +#: ../src/common/collection.c:623 ../src/common/colorlabels.c:341 +#: ../src/develop/lightroom.c:1607 ../src/dtgtk/thumbnail.c:1548 #: ../src/libs/filtering.c:68 ../src/libs/filters/colors.c:301 #: ../src/libs/filters/colors.c:312 ../src/libs/tools/colorlabels.c:93 msgid "color label" msgstr "カラーラベル" #. iso -#: ../src/common/collection.c:716 ../src/gui/preferences.c:832 -#: ../src/gui/presets.c:666 ../src/libs/camera.c:558 -#: ../src/libs/metadata_view.c:145 +#: ../src/common/collection.c:629 ../src/gui/preferences.c:830 +#: ../src/gui/presets.c:669 ../src/libs/camera.c:558 +#: ../src/libs/metadata_view.c:149 msgid "ISO" msgstr "ISO" #. aperture -#: ../src/common/collection.c:718 ../src/gui/preferences.c:840 -#: ../src/gui/presets.c:701 ../src/libs/camera.c:545 ../src/libs/camera.c:547 -#: ../src/libs/metadata_view.c:140 +#: ../src/common/collection.c:631 ../src/gui/preferences.c:838 +#: ../src/gui/presets.c:704 ../src/libs/camera.c:545 ../src/libs/camera.c:547 +#: ../src/libs/metadata_view.c:142 msgid "aperture" msgstr "絞り" -#: ../src/common/collection.c:724 ../src/libs/filtering.c:57 -#: ../src/libs/filters/filename.c:364 ../src/libs/metadata_view.c:126 +#: ../src/common/collection.c:637 ../src/libs/filtering.c:57 +#: ../src/libs/filters/filename.c:369 ../src/libs/metadata_view.c:128 msgid "filename" msgstr "ファイル名" -#: ../src/common/collection.c:726 ../src/develop/lightroom.c:1541 +#: ../src/common/collection.c:639 ../src/develop/lightroom.c:1598 #: ../src/libs/geotagging.c:141 msgid "geotagging" msgstr "ジオタグ" -#: ../src/common/collection.c:728 ../src/libs/filters/grouping.c:167 +#: ../src/common/collection.c:641 ../src/libs/filters/grouping.c:167 #: ../src/libs/tools/global_toolbox.c:394 msgid "grouping" msgstr "グループ分け" -#: ../src/common/collection.c:730 ../src/dtgtk/thumbnail.c:1575 -#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:129 -#: ../src/libs/metadata_view.c:336 +#: ../src/common/collection.c:643 ../src/dtgtk/thumbnail.c:1563 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:340 msgid "local copy" msgstr "ローカルコピー" -#: ../src/common/collection.c:732 ../src/gui/preferences.c:808 +#: ../src/common/collection.c:645 ../src/gui/preferences.c:806 msgid "module" msgstr "モジュール" -#: ../src/common/collection.c:734 ../src/gui/hist_dialog.c:346 -#: ../src/gui/styles_dialog.c:722 ../src/gui/styles_dialog.c:771 +#: ../src/common/collection.c:647 ../src/gui/hist_dialog.c:346 +#: ../src/gui/styles_dialog.c:734 ../src/gui/styles_dialog.c:783 #: ../src/libs/filters/module_order.c:161 ../src/libs/ioporder.c:39 msgid "module order" msgstr "モジュールの順序" -#: ../src/common/collection.c:736 +#: ../src/common/collection.c:649 msgid "range rating" msgstr "評価の範囲" -#: ../src/common/collection.c:738 ../src/common/ratings.c:322 -#: ../src/develop/lightroom.c:1525 ../src/libs/filtering.c:67 +#: ../src/common/collection.c:651 ../src/common/ratings.c:321 +#: ../src/develop/lightroom.c:1582 ../src/libs/filtering.c:67 #: ../src/libs/tools/ratings.c:110 msgid "rating" msgstr "評価" -#: ../src/common/collection.c:740 +#: ../src/common/collection.c:653 msgid "search" msgstr "検索" -#: ../src/common/collection.c:1509 ../src/common/colorlabels.c:335 -#: ../src/develop/lightroom.c:836 ../src/gui/guides.c:732 -#: ../src/iop/colorzones.c:2265 ../src/iop/temperature.c:1925 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:261 +#: ../src/common/collection.c:1376 ../src/common/colorlabels.c:334 +#: ../src/develop/lightroom.c:889 ../src/gui/guides.c:732 +#: ../src/iop/colorzones.c:2501 ../src/iop/temperature.c:1902 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:261 msgid "yellow" msgstr "黄色" -#: ../src/common/collection.c:1515 ../src/common/color_vocabulary.c:339 -#: ../src/common/colorlabels.c:338 ../src/iop/colorzones.c:2269 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:264 +#: ../src/common/collection.c:1382 ../src/common/color_vocabulary.c:339 +#: ../src/common/colorlabels.c:337 ../src/iop/colorzones.c:2505 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:264 msgid "purple" msgstr "紫" -#: ../src/common/collection.c:1532 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1400 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "auto applied" msgstr "自動適用" -#: ../src/common/collection.c:1536 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1406 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "altered" msgstr "変更済み" -#: ../src/common/collection.c:1553 ../src/common/collection.c:1649 -#: ../src/libs/collect.c:1166 ../src/libs/collect.c:1330 -#: ../src/libs/collect.c:1354 ../src/libs/collect.c:1473 -#: ../src/libs/collect.c:2432 +#: ../src/common/collection.c:1424 ../src/common/collection.c:1535 +#: ../src/libs/collect.c:1242 ../src/libs/collect.c:1426 +#: ../src/libs/collect.c:1452 ../src/libs/collect.c:1592 +#: ../src/libs/collect.c:2662 msgid "not tagged" msgstr "タグなし" -#: ../src/common/collection.c:1554 ../src/libs/collect.c:1354 +#: ../src/common/collection.c:1425 ../src/libs/collect.c:1452 #: ../src/libs/map_locations.c:742 msgid "tagged" msgstr "タグ付き" -#: ../src/common/collection.c:1555 +#: ../src/common/collection.c:1426 msgid "tagged*" msgstr "タグ付き*" #. local copy -#: ../src/common/collection.c:1588 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1460 ../src/libs/collect.c:1883 #: ../src/libs/filters/local_copy.c:38 msgid "not copied locally" msgstr "ローカルにコピーされていません" -#: ../src/common/collection.c:1592 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1465 ../src/libs/collect.c:1882 #: ../src/libs/filters/local_copy.c:38 msgid "copied locally" msgstr "ローカルにコピーしました" -#: ../src/common/collection.c:1974 ../src/libs/collect.c:1879 +#. if its undefined +#: ../src/common/collection.c:1507 ../src/common/collection.c:1619 +#: ../src/libs/collect.c:2209 ../src/libs/collect.c:2210 +msgid "unnamed" +msgstr "名前無し" + +#: ../src/common/collection.c:1905 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:147 ../src/libs/filters/grouping.c:170 msgid "group leaders" msgstr "グループリーダー" -#: ../src/common/collection.c:1978 ../src/libs/collect.c:1879 +#: ../src/common/collection.c:1909 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:150 ../src/libs/filters/grouping.c:170 msgid "group followers" msgstr "グループフォロワー" -#: ../src/common/collection.c:2126 ../src/libs/collect.c:1959 +#: ../src/common/collection.c:2066 ../src/libs/collect.c:2100 msgid "not defined" msgstr "未定義" -#: ../src/common/collection.c:2575 +#: ../src/common/collection.c:2521 #, c-format msgid "<b>%d</b> image (#<b>%d</b>) selected of <b>%d</b>" msgstr "<b>%d</b>枚の画像(#<b>%d</b>)が<b>%d</b>枚のなかから選択されています" -#: ../src/common/collection.c:2582 +#: ../src/common/collection.c:2528 #, c-format msgid "<b>%d</b> image selected of <b>%d</b>" msgid_plural "<b>%d</b> images selected of <b>%d</b>" msgstr[0] "<b>%d</b>枚の画像が<b>%d</b>枚のなかから選択されています" msgstr[1] "<b>%d</b>枚の画像が<b>%d</b>枚のなかから選択されています" -#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2324 -#: ../src/develop/blend_gui.c:2372 ../src/gui/guides.c:729 -#: ../src/iop/channelmixerrgb.c:4620 ../src/iop/levels.c:671 -#: ../src/iop/rgblevels.c:937 ../src/iop/rgblevels.c:1032 +#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2340 +#: ../src/develop/blend_gui.c:2388 ../src/gui/guides.c:729 +#: ../src/iop/channelmixerrgb.c:4688 ../src/iop/levels.c:687 +#: ../src/iop/rgblevels.c:969 ../src/iop/rgblevels.c:1083 msgid "gray" msgstr "グレー" @@ -5607,12 +5875,12 @@ msgstr "ダークシアン" #: ../src/common/color_vocabulary.c:297 ../src/common/color_vocabulary.c:317 -#: ../src/iop/colorzones.c:2267 +#: ../src/iop/colorzones.c:2503 msgid "aqua" msgstr "アクア" #: ../src/common/color_vocabulary.c:298 ../src/gui/guides.c:733 -#: ../src/iop/temperature.c:1923 +#: ../src/iop/temperature.c:1900 msgid "cyan" msgstr "シアン" @@ -5678,7 +5946,7 @@ msgstr "ダークマゼンタ" #: ../src/common/color_vocabulary.c:341 ../src/gui/guides.c:734 -#: ../src/iop/colorzones.c:2270 ../src/iop/temperature.c:1921 +#: ../src/iop/colorzones.c:2506 ../src/iop/temperature.c:1898 msgid "magenta" msgstr "マゼンタ" @@ -5690,90 +5958,85 @@ msgid "color not found" msgstr "色が見つかりません" -#: ../src/common/colorlabels.c:310 +#: ../src/common/colorlabels.c:309 #, c-format msgid "colorlabels set to %s" msgstr "カラーラベルを%sにセット" -#: ../src/common/colorlabels.c:312 +#: ../src/common/colorlabels.c:311 msgid "all colorlabels removed" msgstr "すべてのカラーラベルを削除" -#: ../src/common/colorlabels.c:333 ../src/gui/accelerators.c:170 -#: ../src/libs/image.c:592 +#: ../src/common/colorlabels.c:332 ../src/gui/accelerators.c:188 +#: ../src/libs/image.c:660 msgid "clear" msgstr "削除" -#. init the category profile with NULL profile, the actual profile must be retrieved dynamically by the caller -#: ../src/common/colorspaces.c:1229 ../src/common/colorspaces.c:1518 -msgid "work profile" -msgstr "作業プロファイル" - -#: ../src/common/colorspaces.c:1232 ../src/common/colorspaces.c:1514 -#: ../src/iop/colorout.c:885 +#: ../src/common/colorspaces.c:1382 ../src/common/colorspaces.c:1730 +#: ../src/iop/colorout.c:901 msgid "export profile" msgstr "エクスポートプロファイル" -#: ../src/common/colorspaces.c:1236 ../src/common/colorspaces.c:1516 -#: ../src/views/darkroom.c:2542 +#: ../src/common/colorspaces.c:1387 ../src/common/colorspaces.c:1732 +#: ../src/views/darkroom.c:2383 msgid "softproof profile" msgstr "ソフトプルーフのプロファイル" -#: ../src/common/colorspaces.c:1242 ../src/common/colorspaces.c:1498 +#: ../src/common/colorspaces.c:1397 ../src/common/colorspaces.c:1714 msgid "system display profile" msgstr "システムのディスプレイプロファイル" -#: ../src/common/colorspaces.c:1245 ../src/common/colorspaces.c:1520 +#: ../src/common/colorspaces.c:1402 ../src/common/colorspaces.c:1736 msgid "system display profile (second window)" msgstr "システムのディスプレイプロファイル(第2ウィンドウ)" -#: ../src/common/colorspaces.c:1255 +#: ../src/common/colorspaces.c:1415 msgid "sRGB (web-safe)" msgstr "sRGB(Webセーフ)" -#: ../src/common/colorspaces.c:1269 ../src/common/colorspaces.c:1522 +#: ../src/common/colorspaces.c:1435 ../src/common/colorspaces.c:1738 msgid "Rec709 RGB" msgstr "Rec709 RGB" -#: ../src/common/colorspaces.c:1279 +#: ../src/common/colorspaces.c:1450 msgid "PQ Rec2020 RGB" msgstr "PQ Rec2020 RGB" -#: ../src/common/colorspaces.c:1284 +#: ../src/common/colorspaces.c:1458 msgid "HLG Rec2020 RGB" msgstr "HLG Rec2020 RGB" -#: ../src/common/colorspaces.c:1289 +#: ../src/common/colorspaces.c:1465 msgid "PQ P3 RGB" msgstr "PQ P3 RGB" -#: ../src/common/colorspaces.c:1294 +#: ../src/common/colorspaces.c:1471 msgid "HLG P3 RGB" msgstr "HLG P3 RGB" -#: ../src/common/colorspaces.c:1299 ../src/common/colorspaces.c:1524 -msgid "linear ProPhoto RGB" -msgstr "リニアProPhoto RGB" +#: ../src/common/colorspaces.c:1478 +msgid "Display P3 RGB" +msgstr "Display P3 RGB" -#: ../src/common/colorspaces.c:1304 ../src/common/colorspaces.c:1492 +#: ../src/common/colorspaces.c:1493 ../src/common/colorspaces.c:1708 msgid "linear XYZ" msgstr "リニアXYZ" -#: ../src/common/colorspaces.c:1308 ../src/common/colorspaces.c:1494 -#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2000 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:267 +#: ../src/common/colorspaces.c:1500 ../src/common/colorspaces.c:1710 +#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2016 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:293 msgid "Lab" msgstr "Lab" -#: ../src/common/colorspaces.c:1313 ../src/common/colorspaces.c:1496 +#: ../src/common/colorspaces.c:1508 ../src/common/colorspaces.c:1712 msgid "linear infrared BGR" msgstr "リニア赤外線 BGR" -#: ../src/common/colorspaces.c:1317 +#: ../src/common/colorspaces.c:1513 msgid "BRG (for testing)" msgstr "BRG (テスト用)" -#: ../src/common/colorspaces.c:1409 +#: ../src/common/colorspaces.c:1619 #, c-format msgid "" "profile `%s' not usable as histogram profile. it has been replaced by sRGB!" @@ -5781,47 +6044,47 @@ "プロファイル`%s'はヒストグラムプロファイルとして使用することが出来ません。" "sRGBに置き換えられています!" -#: ../src/common/colorspaces.c:1500 +#: ../src/common/colorspaces.c:1716 msgid "embedded ICC profile" msgstr "埋め込みICCプロファイル" -#: ../src/common/colorspaces.c:1502 +#: ../src/common/colorspaces.c:1718 msgid "embedded matrix" msgstr "埋め込みマトリクス" -#: ../src/common/colorspaces.c:1504 +#: ../src/common/colorspaces.c:1720 msgid "standard color matrix" msgstr "標準カラーマトリクス" -#: ../src/common/colorspaces.c:1506 +#: ../src/common/colorspaces.c:1722 msgid "enhanced color matrix" msgstr "エンハンストカラーマトリクス" -#: ../src/common/colorspaces.c:1508 +#: ../src/common/colorspaces.c:1724 msgid "vendor color matrix" msgstr "ベンダーのカラーマトリクス" -#: ../src/common/colorspaces.c:1510 +#: ../src/common/colorspaces.c:1726 msgid "alternate color matrix" msgstr "代替カラーマトリクス" -#: ../src/common/colorspaces.c:1512 +#: ../src/common/colorspaces.c:1728 msgid "BRG (experimental)" msgstr "BRG (試験的使用)" -#: ../src/common/colorspaces.c:1526 +#: ../src/common/colorspaces.c:1742 msgid "PQ Rec2020" msgstr "PQ Rec2020" -#: ../src/common/colorspaces.c:1528 +#: ../src/common/colorspaces.c:1744 msgid "HLG Rec2020" msgstr "HLG Rec2020" -#: ../src/common/colorspaces.c:1530 +#: ../src/common/colorspaces.c:1746 msgid "PQ P3" msgstr "PQ P3" -#: ../src/common/colorspaces.c:1532 +#: ../src/common/colorspaces.c:1748 msgid "HLG P3" msgstr "HLG P3" @@ -5849,40 +6112,40 @@ msgid "printing `%s' on `%s'" msgstr "`%s'を`%s'で印刷しています" -#: ../src/common/darktable.c:250 +#: ../src/common/darktable.c:375 #, c-format msgid "found strange path `%s'" msgstr "不明なパス`%s'が見つかりました" -#: ../src/common/darktable.c:265 +#: ../src/common/darktable.c:390 #, c-format msgid "error loading directory `%s'" msgstr "ディレクトリ`%s'読み込みエラー" -#: ../src/common/darktable.c:289 +#: ../src/common/darktable.c:414 #, c-format msgid "file `%s' has unknown format!" msgstr "ファイル`%s'は不明な形式です!" -#: ../src/common/darktable.c:302 ../src/control/jobs/control_jobs.c:2118 -#: ../src/control/jobs/control_jobs.c:2177 +#: ../src/common/darktable.c:427 ../src/control/jobs/control_jobs.c:2121 +#: ../src/control/jobs/control_jobs.c:2180 #, c-format msgid "error loading file `%s'" msgstr "ファイル`%s'読み込みエラー" -#: ../src/common/darktable.c:1509 +#: ../src/common/darktable.c:1650 msgid "configuration information" msgstr "設定情報" -#: ../src/common/darktable.c:1511 -msgid "show this information again" -msgstr "この情報を再度表示する" - -#: ../src/common/darktable.c:1511 -msgid "understood" -msgstr "了解" +#: ../src/common/darktable.c:1652 +msgid "_show this information again" +msgstr "_この情報を再度表示する" + +#: ../src/common/darktable.c:1652 +msgid "_understood" +msgstr "_了解" -#: ../src/common/darktable.c:1968 +#: ../src/common/darktable.c:2106 msgid "" "the RCD demosaicer has been defined as default instead of PPG because of " "better quality and performance." @@ -5890,13 +6153,13 @@ "より良いクオリティとパフォーマンスのために、PPGではなくRCDデモザイクがデフォ" "ルトとして設定されています" -#: ../src/common/darktable.c:1970 +#: ../src/common/darktable.c:2108 msgid "see preferences/darkroom/demosaicing for zoomed out darkroom mode" msgstr "" "ダークルームモードの縮小表示については【設定】の【ダークルーム】タブのデモザ" "イク設定を参照してください" -#: ../src/common/darktable.c:1976 +#: ../src/common/darktable.c:2114 msgid "" "the user interface and the underlying internals for tuning darktable " "performance have changed." @@ -5904,7 +6167,7 @@ "ユーザーインターフェースと、darktableのパフォーマンスを調整する内部システムが" "変更されています。" -#: ../src/common/darktable.c:1978 +#: ../src/common/darktable.c:2116 msgid "" "you won't find headroom and friends any longer, instead in preferences/" "processing use:" @@ -5912,15 +6175,15 @@ "ヘッドルームやその類のものは現行バージョンでは無くなっています。その代わり" "に、【設定】の【処理】タブの以下の設定を使用します" -#: ../src/common/darktable.c:1980 +#: ../src/common/darktable.c:2118 msgid "1) darktable resources" msgstr "1) darktableのリソース" -#: ../src/common/darktable.c:1982 +#: ../src/common/darktable.c:2120 msgid "2) tune OpenCL performance" msgstr "2) OpenCLのパフォーマンスを調整する" -#: ../src/common/darktable.c:1989 +#: ../src/common/darktable.c:2127 msgid "" "some global config parameters relevant for OpenCL performance are not used " "any longer." @@ -5928,34 +6191,35 @@ "OpenCLのパフォーマンスに関する全般的な設定の値のいくつかは使用されなくなりま" "す" -#: ../src/common/darktable.c:1991 +#: ../src/common/darktable.c:2129 msgid "" -"instead you will find 'per device' data in 'cl_device_v4_canonical-name'. " +"instead you will find 'per device' data in 'cldevice_v5_canonical-name'. " "content is:" msgstr "" -"その代わりに、'cl_device_v4_canonical-name'に「デバイスごとの」データがありま" +"その代わりに、'cldevice_v5_canonical-name'に「デバイスごとの」データがありま" "す。その内容は以下の通りです" -#: ../src/common/darktable.c:1993 ../src/common/darktable.c:2012 +#: ../src/common/darktable.c:2131 ../src/common/darktable.c:2150 +#: ../src/common/darktable.c:2165 msgid "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" msgstr "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" -#: ../src/common/darktable.c:1995 ../src/common/darktable.c:2014 +#: ../src/common/darktable.c:2133 ../src/common/darktable.c:2152 msgid "you may tune as before except 'magic'" msgstr "'magic'の他は、従来どおりに調整することが出来ます" -#: ../src/common/darktable.c:2001 +#: ../src/common/darktable.c:2139 msgid "" "your OpenCL compiler settings for all devices have been reset to default." msgstr "" "OpenCLコンパイラーの設定は全てのデバイスについてデフォルト値にリセットされま" "した" -#: ../src/common/darktable.c:2008 +#: ../src/common/darktable.c:2146 msgid "" "OpenCL global config parameters 'per device' data has been recreated with an " "updated name." @@ -5963,14 +6227,14 @@ "OpenCL全般設定のパラメータの「デバイス毎」のデータは名前を更新したうえで改め" "て作成されました" -#: ../src/common/darktable.c:2010 +#: ../src/common/darktable.c:2148 ../src/common/darktable.c:2163 msgid "" -"you will find 'per device' data in 'cl_device_v5_canonical-name'. content is:" +"you will find 'per device' data in 'cldevice_v5_canonical-name'. content is:" msgstr "" -"「デバイスごとの」データが'cl_device_v5_canonical-name'にあります。その内容は" +"「デバイスごとの」データが'cldevice_v5_canonical-name'にあります。その内容は" "以下の通りです" -#: ../src/common/darktable.c:2016 +#: ../src/common/darktable.c:2154 msgid "" "If you're using device names in 'opencl_device_priority' you should update " "them to the new names." @@ -5978,7 +6242,23 @@ " 'opencl_device_priority' 内でデバイス名を使用している場合は、それらを新しい" "名前に更新してください" -#: ../src/common/database.c:2756 +#: ../src/common/darktable.c:2161 +msgid "" +"OpenCL 'per device' config data have been automatically extended by 'unified-" +"fraction'." +msgstr "" +"「デバイス毎」のOpenCL設定データは「unified-fraction」によって自動的に拡張さ" +"れました" + +#: ../src/common/darktable.c:2172 +msgid "" +"OpenCL 'per device' compiler settings might have been updated.\n" +"\n" +msgstr "" +"「デバイス毎」のOpenCLコンパイラ設定は更新されたかもしれません\n" +"\n" + +#: ../src/common/database.c:3350 #, c-format msgid "" "\n" @@ -6036,30 +6316,19 @@ " データベースに重大な不整合が生まれる可能性があります</i> \n" #. clang-format on -#: ../src/common/database.c:2777 +#: ../src/common/database.c:3371 msgid "error starting darktable" msgstr "darktable起動エラー" -#: ../src/common/database.c:2778 ../src/libs/collect.c:2915 -#: ../src/libs/export_metadata.c:288 ../src/libs/import.c:1702 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:227 ../src/libs/modulegroups.c:3464 -#: ../src/libs/styles.c:438 ../src/libs/styles.c:621 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3471 -msgid "cancel" -msgstr "キャンセル" +#: ../src/common/database.c:3372 +msgid "_delete database lock files" +msgstr "_データベースロックファイルを削除する" -#: ../src/common/database.c:2778 -msgid "delete database lock files" -msgstr "データベースロックファイルを削除" - -#: ../src/common/database.c:2784 +#: ../src/common/database.c:3378 msgid "are you sure?" msgstr "本当に実行しますか?" -#: ../src/common/database.c:2785 +#: ../src/common/database.c:3379 msgid "" "\n" "do you really want to delete the lock files?\n" @@ -6067,20 +6336,19 @@ "\n" "このロックファイルを本当に削除しますか?\n" -#: ../src/common/database.c:2785 ../src/common/variables.c:703 -#: ../src/develop/imageop_gui.c:210 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 -msgid "yes" -msgstr "yes" +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2597 +msgid "_no" +msgstr "_いいえ" + +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2596 +msgid "_yes" +msgstr "_はい" -#: ../src/common/database.c:2801 ../src/libs/export_metadata.c:164 -#: ../src/libs/geotagging.c:811 +#: ../src/common/database.c:3395 msgid "done" msgstr "完了" -#: ../src/common/database.c:2802 +#: ../src/common/database.c:3396 msgid "" "\n" "successfully deleted the lock files.\n" @@ -6090,17 +6358,17 @@ "ロックファイルの削除に成功しました\n" "darktableを再起動出来ます\n" -#. the button to close the popup -#: ../src/common/database.c:2803 ../src/common/database.c:2810 -#: ../src/libs/filters/filename.c:452 -msgid "ok" -msgstr "ok" +#: ../src/common/database.c:3397 ../src/common/database.c:3404 +#: ../src/gui/accelerators.c:2580 ../src/gui/accelerators.c:2662 +#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:566 +msgid "_ok" +msgstr "_ok" -#: ../src/common/database.c:2806 +#: ../src/common/database.c:3400 msgid "error" msgstr "エラー" -#: ../src/common/database.c:2807 +#: ../src/common/database.c:3401 #, c-format msgid "" "\n" @@ -6115,7 +6383,7 @@ "みてください\n" "フォルダ <a href=\"file:///%s\">%s</a>にあります\n" -#: ../src/common/database.c:2924 +#: ../src/common/database.c:3518 #, c-format msgid "" "the database lock file contains a pid that seems to be alive in your system: " @@ -6124,19 +6392,44 @@ "データベースロックファイルに、システム内に存在すると思われるpidが含まれていま" "す:%d" -#: ../src/common/database.c:2931 +#: ../src/common/database.c:3525 #, c-format msgid "the database lock file seems to be empty" msgstr "データベースロックファイルは空のようです" -#: ../src/common/database.c:2941 +#: ../src/common/database.c:3535 #, c-format msgid "error opening the database lock file for reading: %s" msgstr "" "%sを読み込むためにデータベースロックファイルを開く際にエラーが発生しました" +#: ../src/common/database.c:3605 +#, c-format +msgid "" +"the database schema version of\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"is too new for this build of darktable (this means the database was created " +"or upgraded by a newer darktable version)\n" +msgstr "" +"データベーススキームのバージョン\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"はこのdarktableのビルドには新しすぎます(このデータベースはより新しいバージョ" +"ンのdarktableによって作成または更新されたものです)\n" + +#: ../src/common/database.c:3612 +msgid "darktable - too new db version" +msgstr "darktable - 新しすぎるdvバージョン" + +#: ../src/common/database.c:3613 +msgid "_quit darktable" +msgstr "_darktableを終了する" + #. the database has to be upgraded, let's ask user -#: ../src/common/database.c:2978 +#: ../src/common/database.c:3628 #, c-format msgid "" "the database schema has to be upgraded for\n" @@ -6154,21 +6447,21 @@ "\n" "続行しますか、今すぐ終了してバックアップを実行しますか\n" -#: ../src/common/database.c:2986 +#: ../src/common/database.c:3636 msgid "darktable - schema migration" msgstr "darktable - スキーママイグレーション" -#: ../src/common/database.c:2987 ../src/common/database.c:3306 -#: ../src/common/database.c:3324 ../src/common/database.c:3491 -#: ../src/common/database.c:3509 -msgid "close darktable" -msgstr "darktableを閉じる" - -#: ../src/common/database.c:2987 -msgid "upgrade database" -msgstr "データベースのアップグレード" +#: ../src/common/database.c:3637 ../src/common/database.c:3959 +#: ../src/common/database.c:3974 ../src/common/database.c:4142 +#: ../src/common/database.c:4157 +msgid "_close darktable" +msgstr "_darktableを閉じる" + +#: ../src/common/database.c:3637 +msgid "_upgrade database" +msgstr "_データベースをアップグレードする" -#: ../src/common/database.c:3286 ../src/common/database.c:3471 +#: ../src/common/database.c:3939 ../src/common/database.c:4122 #, c-format msgid "" "quick_check said:\n" @@ -6177,21 +6470,21 @@ "クイックチェックの結果\n" "%s \n" -#: ../src/common/database.c:3303 ../src/common/database.c:3321 -#: ../src/common/database.c:3488 ../src/common/database.c:3506 +#: ../src/common/database.c:3956 ../src/common/database.c:3971 +#: ../src/common/database.c:4139 ../src/common/database.c:4154 msgid "darktable - error opening database" msgstr "darktable - データベースを開く際にエラーが発生しました" -#: ../src/common/database.c:3308 ../src/common/database.c:3493 -msgid "attempt restore" -msgstr "復元を試みる" - -#: ../src/common/database.c:3310 ../src/common/database.c:3326 -#: ../src/common/database.c:3495 ../src/common/database.c:3511 -msgid "delete database" -msgstr "データベースを削除する" +#: ../src/common/database.c:3960 ../src/common/database.c:4143 +msgid "_attempt restore" +msgstr "_復元を試みる" + +#: ../src/common/database.c:3961 ../src/common/database.c:3975 +#: ../src/common/database.c:4144 ../src/common/database.c:4158 +msgid "_delete database" +msgstr "_データベースを削除する" -#: ../src/common/database.c:3314 ../src/common/database.c:3499 +#: ../src/common/database.c:3964 ../src/common/database.c:4147 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup, attempt an automatic restore\n" @@ -6204,7 +6497,7 @@ "または、破損したデータベースを削除して新しいデータベースを用いて起動すること" "が出来ます" -#: ../src/common/database.c:3330 ../src/common/database.c:3515 +#: ../src/common/database.c:3978 ../src/common/database.c:4161 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup or delete the corrupted database\n" @@ -6215,7 +6508,7 @@ "破損したデータベースを削除して新しいデータベースを用いて起動することが出来ま" "す" -#: ../src/common/database.c:3337 ../src/common/database.c:3520 +#: ../src/common/database.c:3985 ../src/common/database.c:4166 #, c-format msgid "" "an error has occurred while trying to open the database from\n" @@ -6239,12 +6532,12 @@ "高速露出非依存ガイデットフィルタがメモリの割り当てに失敗しました。RAM設定を確" "認してください" -#: ../src/common/exif.cc:5200 +#: ../src/common/exif.cc:5482 #, c-format msgid "cannot read XMP file '%s': '%s'" msgstr "XMPファイル'%s': '%s'を読み取ることが出来ません" -#: ../src/common/exif.cc:5258 +#: ../src/common/exif.cc:5540 #, c-format msgid "cannot write XMP file '%s': '%s'" msgstr "XMPファイル'%s': '%s'を書き込むことが出来ません" @@ -6255,41 +6548,41 @@ "高速ガイデットフィルタがメモリの割り当てに失敗しました。RAM設定を確認してくだ" "さい" -#: ../src/common/film.c:345 +#: ../src/common/film.c:356 msgid "do you want to remove this empty directory?" msgid_plural "do you want to remove these empty directories?" msgstr[0] "この空のディレクトリを削除しますか?" msgstr[1] "この空のディレクトリを削除しますか?" -#: ../src/common/film.c:352 +#: ../src/common/film.c:363 msgid "remove empty directory?" msgid_plural "remove empty directories?" msgstr[0] "空のディレクトリを削除しますか?" msgstr[1] "空のディレクトリを削除しますか?" -#: ../src/common/film.c:371 ../src/gui/preferences.c:816 -#: ../src/gui/styles_dialog.c:548 ../src/libs/geotagging.c:829 -#: ../src/libs/import.c:1551 +#: ../src/common/film.c:383 ../src/gui/preferences.c:814 +#: ../src/gui/styles_dialog.c:556 ../src/libs/geotagging.c:830 +#: ../src/libs/import.c:1560 msgid "name" msgstr "名前" -#: ../src/common/film.c:477 +#: ../src/common/film.c:492 msgid "" "cannot remove film roll having local copies with non accessible originals" msgstr "" "アクセス不可能なオリジナルファイルのあるローカルコピーのあるフィルムロールを" "削除することは出来ません" -#: ../src/common/history.c:840 +#: ../src/common/history.c:876 msgid "you need to copy history from an image before you paste it onto another" msgstr "他に貼り付ける前に、画像から履歴をコピーする必要があります" -#: ../src/common/image.c:325 +#: ../src/common/image.c:333 msgid "orphaned image" msgstr "存在しない画像" # %d 画像の位置情報が取り消されました -#: ../src/common/image.c:620 +#: ../src/common/image.c:629 #, c-format msgid "geo-location undone for %d image" msgid_plural "geo-location undone for %d images" @@ -6297,83 +6590,83 @@ msgstr[1] "%d個の画像の位置情報を元に戻しました" # %d 画像へ位置情報が再適用されました -#: ../src/common/image.c:622 +#: ../src/common/image.c:631 #, c-format msgid "geo-location re-applied to %d image" msgid_plural "geo-location re-applied to %d images" msgstr[0] "%d個の画像に位置情報を再適用しました" msgstr[1] "%d個の画像に位置情報を再適用しました" -#: ../src/common/image.c:645 +#: ../src/common/image.c:654 #, c-format msgid "date/time undone for %d image" msgid_plural "date/time undone for %d images" msgstr[0] "%d個の画像の日時を元に戻しました" msgstr[1] "%d個の画像の日時を元に戻しました" -#: ../src/common/image.c:647 +#: ../src/common/image.c:656 #, c-format msgid "date/time re-applied to %d image" msgid_plural "date/time re-applied to %d images" msgstr[0] "%d個の画像に日時を再適用しました" msgstr[1] "%d個の画像に日時を再適用しました" -#: ../src/common/image.c:2188 +#: ../src/common/image.c:2260 #, c-format msgid "cannot access local copy `%s'" msgstr "ローカルコピー`%s'にアクセスすることが出来ません" -#: ../src/common/image.c:2195 +#: ../src/common/image.c:2267 #, c-format msgid "cannot write local copy `%s'" msgstr "ローカルコピー`%s'を書き込むことが出来ません" -#: ../src/common/image.c:2202 +#: ../src/common/image.c:2274 #, c-format msgid "error moving local copy `%s' -> `%s'" msgstr "ローカルコピーの移動`%s' -> `%s'にエラーがありました" -#: ../src/common/image.c:2219 +#: ../src/common/image.c:2291 #, c-format msgid "error moving `%s': file not found" msgstr "`%s'の移動中にエラーが発生しました:ファイルが見つかりません" -#: ../src/common/image.c:2229 +#: ../src/common/image.c:2301 #, c-format msgid "error moving `%s' -> `%s': file exists" msgstr "`%s' -> `%s'の移動中にエラーが発生しました:ファイルが存在します" -#: ../src/common/image.c:2233 +#: ../src/common/image.c:2305 #, c-format msgid "error moving `%s' -> `%s'" msgstr "`%s' -> `%s'の移動中にエラーが発生しました" -#: ../src/common/image.c:2562 +#: ../src/common/image.c:2634 msgid "cannot create local copy when the original file is not accessible." msgstr "" "元のファイルにアクセスできない場合、ローカルコピーを作成することが出来ません" -#: ../src/common/image.c:2576 +#: ../src/common/image.c:2648 msgid "cannot create local copy." msgstr "ローカルコピーを作成することが出来ません" -#: ../src/common/image.c:2656 ../src/control/jobs/control_jobs.c:777 +#: ../src/common/image.c:2728 ../src/control/jobs/control_jobs.c:777 msgid "cannot remove local copy when the original file is not accessible." msgstr "" "元のファイルにアクセスできない場合、ローカルコピーを削除することが出来ません" -#: ../src/common/image.c:2821 +#: ../src/common/image.c:2901 #, c-format msgid "%d local copy has been synchronized" msgid_plural "%d local copies have been synchronized" msgstr[0] "%d 枚のローカルコピーが同期化されました" msgstr[1] "%d 枚のローカルコピーが同期化されました" -#: ../src/common/image.c:3022 +#: ../src/common/image.c:3102 msgid "<b>WARNING</b>: camera is missing samples!" msgstr "<b>警告</b>:このカメラはサンプルが提供されていません" -#: ../src/common/image.c:3023 +#: ../src/common/image.c:3103 msgid "" "You must provide samples in <a href='https://raw.pixls.us/'>https://raw." "pixls.us/</a>" @@ -6381,7 +6674,7 @@ " <a href='https://raw.pixls.us/'>https://raw.pixls.us/</a>にサンプルを提供し" "てください" -#: ../src/common/image.c:3024 +#: ../src/common/image.c:3104 #, c-format msgid "" "for `%s' `%s'\n" @@ -6390,83 +6683,84 @@ "`%s' `%s'\n" "出来る限り多くのフォーマット、圧縮率、ビット深度のサンプルを提供してください" -#: ../src/common/image.c:3027 +#: ../src/common/image.c:3107 msgid "or the <b>RAW won't be readable</b> in next version." msgstr "" "サンプルが提供されない場合、次のバージョンで<b>RAWを読み込むことが出来ません" "</b>" -#: ../src/common/image.h:209 ../src/common/ratings.c:284 -#: ../src/libs/history.c:843 ../src/libs/snapshots.c:779 +#: ../src/common/image.h:217 ../src/common/ratings.c:283 +#: ../src/imageio/format/avif.c:114 ../src/libs/history.c:843 +#: ../src/libs/snapshots.c:837 msgid "unknown" msgstr "不明" #. EMPTY_FIELD -#: ../src/common/image.h:210 -msgid "tiff" -msgstr "tiff" - -#: ../src/common/image.h:211 -msgid "png" -msgstr "png" - -#: ../src/common/image.h:212 ../src/imageio/format/j2k.c:652 -msgid "j2k" -msgstr "j2k" - -#: ../src/common/image.h:213 -msgid "jpeg" -msgstr "jpeg" - -#: ../src/common/image.h:214 -msgid "exr" -msgstr "exr" - -#: ../src/common/image.h:215 -msgid "rgbe" -msgstr "rgbe" - -#: ../src/common/image.h:216 -msgid "pfm" -msgstr "pfm" - -#: ../src/common/image.h:217 -msgid "GraphicsMagick" -msgstr "GraphicsMagick" +#: ../src/common/image.h:218 ../src/imageio/format/tiff.c:831 +msgid "TIFF" +msgstr "TIFF" -#: ../src/common/image.h:218 -msgid "rawspeed" -msgstr "rawspeed" - -#: ../src/common/image.h:219 -msgid "netpnm" -msgstr "netpnm" +#: ../src/common/image.h:219 ../src/imageio/format/png.c:599 +msgid "PNG" +msgstr "PNG" #: ../src/common/image.h:220 -msgid "avif" -msgstr "avif" +msgid "JPEG 2000" +msgstr "JPEG 2000" #: ../src/common/image.h:221 -msgid "ImageMagick" -msgstr "ImageMagick" +msgid "JPEG" +msgstr "JPEG" #: ../src/common/image.h:222 -msgid "heif" -msgstr "heif" +msgid "EXR" +msgstr "EXR" #: ../src/common/image.h:223 -msgid "libraw" -msgstr "libraw" +msgid "RGBE" +msgstr "RGBE" -#: ../src/common/image.h:224 -msgid "webp" -msgstr "webp" +#: ../src/common/image.h:224 ../src/imageio/format/pfm.c:120 +msgid "PFM" +msgstr "PFM" #: ../src/common/image.h:225 -msgid "jpeg xl" -msgstr "jpeg xl" +msgid "GraphicsMagick" +msgstr "GraphicsMagick" #: ../src/common/image.h:226 +msgid "RawSpeed" +msgstr "RawSpeed" + +#: ../src/common/image.h:227 +msgid "Netpbm" +msgstr "Netpbm" + +#: ../src/common/image.h:228 ../src/imageio/format/avif.c:728 +msgid "AVIF" +msgstr "AVIF" + +#: ../src/common/image.h:229 +msgid "ImageMagick" +msgstr "ImageMagick" + +#: ../src/common/image.h:230 +msgid "HEIF" +msgstr "HEIF" + +#: ../src/common/image.h:231 +msgid "LibRaw" +msgstr "LibRaw" + +#: ../src/common/image.h:232 ../src/imageio/format/webp.c:380 +msgid "WebP" +msgstr "WebP" + +#: ../src/common/image.h:233 ../src/imageio/format/jxl.c:482 +msgid "JPEG XL" +msgstr "JPEG XL" + +#: ../src/common/image.h:234 msgid "QOI" msgstr "QOI" @@ -6500,7 +6794,7 @@ "要求されたセッションパスは使用することが出来ません。 デバイスはマウントされて" "いますか?" -#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:197 +#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:195 msgid "legacy" msgstr "旧式" @@ -6512,7 +6806,7 @@ msgid "v3.0 JPEG" msgstr "バージョン3.0 JPEG" -#: ../src/common/iop_profile.c:1205 +#: ../src/common/iop_profile.c:1207 #, c-format msgid "" "darktable loads %s from\n" @@ -6534,13 +6828,13 @@ #. title #: ../src/common/metadata.c:48 ../src/imageio/format/pdf.c:574 -#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:169 -#: ../src/imageio/storage/gallery.c:170 ../src/imageio/storage/latex.c:169 -#: ../src/imageio/storage/piwigo.c:1058 ../src/libs/filtering.c:69 +#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:219 +#: ../src/imageio/storage/gallery.c:222 ../src/imageio/storage/latex.c:206 +#: ../src/imageio/storage/piwigo.c:1091 ../src/libs/filtering.c:69 msgid "title" msgstr "タイトル" -#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:552 +#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:563 #: ../src/libs/filtering.c:70 msgid "description" msgstr "説明" @@ -6558,11 +6852,11 @@ msgstr "バージョン名" #: ../src/common/metadata.c:53 ../src/libs/live_view.c:319 -#: ../src/libs/metadata_view.c:124 +#: ../src/libs/metadata_view.c:126 msgid "image id" msgstr "画像id" -#: ../src/common/mipmap_cache.c:1065 ../src/imageio/imageio.c:787 +#: ../src/common/mipmap_cache.c:1070 ../src/imageio/imageio.c:799 #, c-format msgid "image `%s' is not available!" msgstr "画像`%s'は使用することが出来ません!" @@ -6576,7 +6870,43 @@ msgid "noiseprofile file `%s' is not valid" msgstr "ノイズプロファイル`%s'は有効ではありません" -#: ../src/common/opencl.c:1376 +#: ../src/common/opencl.c:1165 +msgid "no working OpenCL library found" +msgstr "動作しているOpenCLが見つかりません" + +#: ../src/common/opencl.c:1185 +msgid "" +"platform detection failed. some possible causes:\n" +" - OpenCL ICD (ocl-icd) missing,\n" +" - previous OpenCL errors leading to blocked devices,\n" +" - power management problems,\n" +" - buggy drivers,\n" +" - no OpenCL driver installed." +msgstr "" +"プラットフォームの検出が出来ませんでした。幾つかの原因が考えられます\n" +" - OpenCL ICD (ocl-icd)の欠如\n" +" - 以前のOpenCLエラーによりデバイスがブロック\n" +" - パワーマネジメントの問題\n" +" - ドライバのバグ\n" +" - OpenCLドライバがインストールされていない" + +#: ../src/common/opencl.c:1277 +msgid "no devices found for unknown platform" +msgstr "プラットフォームが不明であり、デバイスが検出されませんでした" + +#: ../src/common/opencl.c:1323 +msgid "not enough memory for OpenCL devices" +msgstr "OpenCLデバイスのためのメモリが不足しています" + +#: ../src/common/opencl.c:1358 +msgid "no OpenCL devices found" +msgstr "OpenCLデバイスが見つかりません" + +#: ../src/common/opencl.c:1401 +msgid "no suitable OpenCL devices found" +msgstr "適切なOpenCLデバイスが見つかりません" + +#: ../src/common/opencl.c:1422 #, c-format msgid "" "OpenCL initializing problem:\n" @@ -6585,37 +6915,23 @@ "OpenCL初期化の問題:\n" "%s" -#: ../src/common/opencl.c:1439 -msgid "" -"due to a slow GPU hardware acceleration using OpenCL has been deactivated" -msgstr "" -"GPUの速度が遅いため、OpenCLを用いたハードウェアアクセラレーションは無効になっ" -"ています" - -#: ../src/common/opencl.c:1449 -msgid "" -"multiple GPUs detected - OpenCL scheduling profile has been set accordingly" -msgstr "" -"複数のGPUが検出されました\n" -"OpenCLスケジューリングプロファイルがそれに応じて設定されています" - -#: ../src/common/opencl.c:1462 -msgid "" -"very fast GPU detected - OpenCL scheduling profile has been set accordingly" +#: ../src/common/opencl.c:1454 +msgid "OpenCL scheduling profile set to default, setup has changed" msgstr "" -"非常に高速なGPUが検出されました\n" -"OpenCLスケジューリングプロファイルがそれに応じて設定されています" +"OpenCLスケジューリングプロファイルはデフォルトに設定され、セットアップが変更" +"されています" -#: ../src/common/opencl.c:1471 -msgid "OpenCL scheduling profile set to default" -msgstr "OpenCLスケジューリングプロファイルはデフォルトに設定されています" +#: ../src/common/opencl.c:2283 +#, c-format +msgid "building OpenCL program %s for %s" +msgstr "OpenCLプログラム%sを%s向けに構成しています" -#: ../src/common/pdf.h:88 ../src/iop/lens.cc:3441 +#: ../src/common/pdf.h:88 ../src/iop/lens.cc:4071 #: ../src/libs/filters/focal.c:74 ../src/libs/print_settings.c:81 msgid "mm" msgstr "mm" -#: ../src/common/pdf.h:89 ../src/libs/export.c:520 ../src/libs/export.c:1145 +#: ../src/common/pdf.h:89 ../src/libs/export.c:555 ../src/libs/export.c:1241 #: ../src/libs/print_settings.c:81 msgid "cm" msgstr "cm" @@ -6628,7 +6944,7 @@ msgid "\"" msgstr "\"" -#: ../src/common/pdf.h:104 ../src/iop/borders.c:958 +#: ../src/common/pdf.h:104 ../src/iop/borders.c:971 msgid "A4" msgstr "A4" @@ -6666,66 +6982,65 @@ msgid "no images selected to apply rating" msgstr "評価を適用する画像が選択されていません" -#: ../src/common/ratings.c:275 ../src/libs/metadata_view.c:351 +#: ../src/common/ratings.c:274 ../src/libs/metadata_view.c:355 msgid "image rejected" msgstr "画像が除外されました" -#: ../src/common/ratings.c:277 +#: ../src/common/ratings.c:276 msgid "image rated to 0 star" msgstr "評価0の画像" -#: ../src/common/ratings.c:279 +#: ../src/common/ratings.c:278 #, c-format msgid "image rated to %s" msgstr "評価%sの画像" -#: ../src/common/ratings.c:306 ../src/libs/select.c:39 -#: ../src/views/lighttable.c:766 +#: ../src/common/ratings.c:305 ../src/views/lighttable.c:766 msgid "select" msgstr "選択" -#: ../src/common/ratings.c:307 +#: ../src/common/ratings.c:306 msgid "upgrade" msgstr "アップグレード" -#: ../src/common/ratings.c:308 +#: ../src/common/ratings.c:307 msgid "downgrade" msgstr "ダウングレード" -#: ../src/common/ratings.c:312 +#: ../src/common/ratings.c:311 msgid "zero" msgstr "0" -#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:277 +#: ../src/common/ratings.c:312 ../src/libs/filters/rating_range.c:304 msgid "one" msgstr "1" -#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:278 +#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:305 msgid "two" msgstr "2" -#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:279 +#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:306 msgid "three" msgstr "3" -#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:280 +#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:307 msgid "four" msgstr "4" -#: ../src/common/ratings.c:317 ../src/libs/filters/rating_range.c:281 +#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:308 msgid "five" msgstr "5" -#: ../src/common/ratings.c:318 +#: ../src/common/ratings.c:317 msgid "reject" msgstr "除外" -#: ../src/common/styles.c:244 +#: ../src/common/styles.c:243 #, c-format msgid "style with name '%s' already exists" msgstr "`%s'という名前のスタイルは既に存在しています" -#: ../src/common/styles.c:270 ../src/common/styles.c:1776 +#: ../src/common/styles.c:270 ../src/common/styles.c:1783 #: ../src/libs/styles.c:54 msgid "styles" msgstr "スタイル" @@ -6735,58 +7050,58 @@ msgid "style named '%s' successfully created" msgstr "スタイル'%s'が正常に作成されました" -#: ../src/common/styles.c:689 ../src/common/styles.c:719 -#: ../src/common/styles.c:759 ../src/dtgtk/culling.c:1097 +#: ../src/common/styles.c:688 ../src/common/styles.c:718 +#: ../src/common/styles.c:758 ../src/dtgtk/culling.c:1066 msgid "no image selected!" msgstr "画像が選択されていません!" -#: ../src/common/styles.c:693 +#: ../src/common/styles.c:692 #, c-format msgid "style %s successfully applied!" msgstr "スタイル%sが正常に適用されました!" -#: ../src/common/styles.c:709 +#: ../src/common/styles.c:708 msgid "no images nor styles selected!" msgstr "画像もスタイルも選択されていません!" -#: ../src/common/styles.c:714 +#: ../src/common/styles.c:713 msgid "no styles selected!" msgstr "スタイルが選択されていません!" # スタイルが正常に適用されました -#: ../src/common/styles.c:744 +#: ../src/common/styles.c:743 msgid "style successfully applied!" msgid_plural "styles successfully applied!" msgstr[0] "スタイルが正常に適用されました" msgstr[1] "スタイルが正常に適用されました" -#: ../src/common/styles.c:840 +#: ../src/common/styles.c:838 #, c-format msgid "module `%s' version mismatch: %d != %d" msgstr "モジュール`%s'のバージョンの不一致:%d != %d" -#: ../src/common/styles.c:1124 +#: ../src/common/styles.c:1125 #, c-format msgid "applied style `%s' on current image" msgstr "スタイル`%s'を現在の画像に適用します" -#: ../src/common/styles.c:1378 +#: ../src/common/styles.c:1383 #, c-format msgid "failed to overwrite style file for %s" msgstr "%s にスタイルファイルを上書きすることが出来ませんでした" -#: ../src/common/styles.c:1384 +#: ../src/common/styles.c:1389 #, c-format msgid "style file for %s exists" msgstr "%s というスタイルファイルは既に存在しています" -#: ../src/common/styles.c:1667 +#: ../src/common/styles.c:1674 #, c-format msgid "style %s was successfully imported" msgstr "スタイル%sが正常にインポートされました" #. Failed to open file, clean up. -#: ../src/common/styles.c:1711 +#: ../src/common/styles.c:1718 #, c-format msgid "could not read file `%s'" msgstr "ファイル`%s'を読み込むことが出来ませんでした" @@ -6799,10 +7114,18 @@ msgid "below sea level" msgstr "海面下" -#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:880 +#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:907 msgid "m" msgstr "m" +#: ../src/common/variables.c:712 ../src/develop/imageop_gui.c:210 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "yes" +msgstr "yes" + #. Column 1 - "make" of the camera. #. * Column 2 - "model" (use the "make" and "model" as provided by DCRaw). #. * Column 3 - WB name. @@ -6815,7 +7138,7 @@ #. * #. * WB name is standardized to one of the following: #. "Sunlight" and other variation should be switched to this: -#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:323 +#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:320 msgid "daylight" msgstr "太陽光" @@ -6915,7 +7238,7 @@ msgid "underwater" msgstr "水中" -#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2447 +#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2286 msgid "black & white" msgstr "白黒" @@ -6935,85 +7258,85 @@ msgid "auto WB" msgstr "ホワイトバランス 自動設定" -#: ../src/control/control.c:66 ../src/gui/accelerators.c:138 -#: ../src/views/darkroom.c:2162 +#: ../src/control/control.c:69 ../src/gui/accelerators.c:156 +#: ../src/views/darkroom.c:2029 msgid "hold" msgstr "長押し" -#: ../src/control/control.c:102 ../src/control/control.c:205 +#: ../src/control/control.c:108 ../src/control/control.c:214 msgid "modifiers" msgstr "修飾キー" -#: ../src/control/control.c:111 +#: ../src/control/control.c:117 msgctxt "accel" msgid "global" msgstr "グローバル" -#: ../src/control/control.c:118 +#: ../src/control/control.c:124 msgctxt "accel" msgid "views" msgstr "ビュー" -#: ../src/control/control.c:125 +#: ../src/control/control.c:131 msgctxt "accel" msgid "thumbtable" msgstr "サムネイルテーブル" -#: ../src/control/control.c:132 +#: ../src/control/control.c:138 msgctxt "accel" msgid "utility modules" msgstr "ユーティリティモジュール" -#: ../src/control/control.c:139 +#: ../src/control/control.c:145 msgctxt "accel" msgid "format" msgstr "フォーマット" -#: ../src/control/control.c:146 +#: ../src/control/control.c:152 msgctxt "accel" msgid "storage" msgstr "ストレージ" -#: ../src/control/control.c:153 +#: ../src/control/control.c:159 msgctxt "accel" msgid "processing modules" msgstr "処理モジュール" -#: ../src/control/control.c:160 +#: ../src/control/control.c:166 msgctxt "accel" msgid "<blending>" msgstr "ブレンド" -#: ../src/control/control.c:167 +#: ../src/control/control.c:173 msgctxt "accel" msgid "Lua scripts" msgstr "Luaスクリプト" -#: ../src/control/control.c:174 +#: ../src/control/control.c:180 msgctxt "accel" msgid "fallbacks" msgstr "フォールバック" -#: ../src/control/control.c:183 +#: ../src/control/control.c:189 msgctxt "accel" msgid "<focused>" msgstr "フォーカス中" -#: ../src/control/control.c:202 +#: ../src/control/control.c:209 msgid "show accels window" msgstr "アクセルウィンドウを表示" -#: ../src/control/control.c:363 +#: ../src/control/control.c:371 msgid "working..." msgstr "処理中..." -#: ../src/control/crawler.c:425 +#: ../src/control/crawler.c:418 #, c-format msgid "ERROR: %s NOT synced XMP → DB" msgstr "エラー:%s XMP → DB 同期していません" -#: ../src/control/crawler.c:426 ../src/control/crawler.c:492 -#: ../src/control/crawler.c:561 +#: ../src/control/crawler.c:419 ../src/control/crawler.c:485 +#: ../src/control/crawler.c:554 msgid "" "ERROR: cannot write the database. the destination may be full, offline or " "read-only." @@ -7021,18 +7344,18 @@ "エラー:データベースを書き込むことが出来ません。書き込み先に空きがない、オフ" "ラインである、あるいは読み取りのみに設定されている可能性があります" -#: ../src/control/crawler.c:433 +#: ../src/control/crawler.c:426 #, c-format msgid "SUCCESS: %s synced XMP → DB" msgstr "成功: %s XMP → DB 同期しました" -#: ../src/control/crawler.c:455 +#: ../src/control/crawler.c:448 #, c-format msgid "ERROR: %s NOT synced DB → XMP" msgstr "エラー:%s DB → XMP 同期していません" -#: ../src/control/crawler.c:457 ../src/control/crawler.c:516 -#: ../src/control/crawler.c:582 +#: ../src/control/crawler.c:450 ../src/control/crawler.c:509 +#: ../src/control/crawler.c:575 #, c-format msgid "" "ERROR: cannot write %s \n" @@ -7042,129 +7365,133 @@ "書き込み先に空きがない、オフラインである、あるいは読み取りのみに設定されてい" "る可能性があります" -#: ../src/control/crawler.c:463 +#: ../src/control/crawler.c:456 #, c-format msgid "SUCCESS: %s synced DB → XMP" msgstr "成功: %s DB → XMP 同期しました" -#: ../src/control/crawler.c:489 +#: ../src/control/crawler.c:482 #, c-format msgid "ERROR: %s NOT synced new (XMP) → old (DB)" msgstr "エラー:%s 新 (XMP) → 旧 (DB) 同期していません" -#: ../src/control/crawler.c:499 +#: ../src/control/crawler.c:492 #, c-format msgid "SUCCESS: %s synced new (XMP) → old (DB)" msgstr "成功: %s 新 (XMP) → 旧 (DB) 同期しました" -#: ../src/control/crawler.c:513 +#: ../src/control/crawler.c:506 #, c-format msgid "ERROR: %s NOT synced new (DB) → old (XMP)" msgstr "エラー:%s 新 (DB) → 旧 (XMP) 同期していません" -#: ../src/control/crawler.c:521 +#: ../src/control/crawler.c:514 #, c-format msgid "SUCCESS: %s synced new (DB) → old (XMP)" msgstr "成功: %s 新 (DB) → 旧 (XMP) 同期しました" -#: ../src/control/crawler.c:530 ../src/control/crawler.c:598 +#: ../src/control/crawler.c:523 ../src/control/crawler.c:591 #, c-format msgid "EXCEPTION: %s has inconsistent timestamps" msgstr "例外:%s のタイムスタンプが不整合です" -#: ../src/control/crawler.c:558 +#: ../src/control/crawler.c:551 #, c-format msgid "ERROR: %s NOT synced old (XMP) → new (DB)" msgstr "エラー:%s 旧 (XMP) → 新 (DB) 同期していません" -#: ../src/control/crawler.c:567 +#: ../src/control/crawler.c:560 #, c-format msgid "SUCCESS: %s synced old (XMP) → new (DB)" msgstr "成功: %s 旧 (XMP) → 新 (DB) 同期しました" -#: ../src/control/crawler.c:579 +#: ../src/control/crawler.c:572 #, c-format msgid "ERROR: %s NOT synced old (DB) → new (XMP)" msgstr "エラー:%s 旧 (DB) → 新 (XMP) 同期していません" -#: ../src/control/crawler.c:588 +#: ../src/control/crawler.c:581 #, c-format msgid "SUCCESS: %s synced old (DB) → new (XMP)" msgstr "成功: %s 旧 (DB) → 新 (XMP) 同期しました" -#: ../src/control/crawler.c:670 +#: ../src/control/crawler.c:663 #, c-format msgid "%id %02dh %02dm %02ds" msgstr "%id %02dh %02dm %02ds" -#: ../src/control/crawler.c:740 ../src/imageio/storage/disk.c:168 -#: ../src/imageio/storage/gallery.c:154 ../src/imageio/storage/latex.c:153 -#: ../src/imageio/storage/latex.c:171 +#: ../src/control/crawler.c:716 +msgid "XMP" +msgstr "XMP" + +#: ../src/control/crawler.c:733 ../src/imageio/storage/disk.c:250 +#: ../src/imageio/storage/gallery.c:202 ../src/imageio/storage/latex.c:190 +#: ../src/imageio/storage/latex.c:208 msgid "path" msgstr "パス" -#: ../src/control/crawler.c:749 +#: ../src/control/crawler.c:742 msgid "XMP timestamp" msgstr "XMPタイムスタンプ" -#: ../src/control/crawler.c:754 +#: ../src/control/crawler.c:747 msgid "database timestamp" msgstr "databaseタイムスタンプ" -#: ../src/control/crawler.c:759 +#: ../src/control/crawler.c:752 msgid "newest" msgstr "最新" -#: ../src/control/crawler.c:765 +#: ../src/control/crawler.c:758 msgid "time difference" msgstr "時間差" -#: ../src/control/crawler.c:777 +#: ../src/control/crawler.c:770 msgid "updated XMP sidecar files found" msgstr "更新されたXMPサイドカーファイルが見つかりました" -#: ../src/control/crawler.c:778 +#: ../src/control/crawler.c:771 msgid "_close" msgstr "_閉じます" #. setup selection accelerators #. action-box -#: ../src/control/crawler.c:793 ../src/dtgtk/thumbtable.c:2578 -#: ../src/libs/import.c:1722 ../src/libs/select.c:135 +#: ../src/control/crawler.c:786 ../src/dtgtk/thumbtable.c:2755 +#: ../src/libs/import.c:1732 ../src/libs/select.c:136 msgid "select all" msgstr "全て選択" -#: ../src/control/crawler.c:794 ../src/dtgtk/thumbtable.c:2580 -#: ../src/libs/import.c:1726 ../src/libs/select.c:139 +#: ../src/control/crawler.c:787 ../src/dtgtk/thumbtable.c:2757 +#: ../src/libs/import.c:1736 ../src/libs/select.c:140 msgid "select none" msgstr "選択なし" -#: ../src/control/crawler.c:795 ../src/dtgtk/thumbtable.c:2582 -#: ../src/libs/select.c:143 +#: ../src/control/crawler.c:788 ../src/dtgtk/thumbtable.c:2759 +#: ../src/libs/select.c:144 msgid "invert selection" msgstr "選択を反転" -#: ../src/control/crawler.c:807 +#: ../src/control/crawler.c:800 msgid "on the selection:" msgstr "選択中:" -#: ../src/control/crawler.c:808 +#: ../src/control/crawler.c:801 msgid "keep the XMP edit" msgstr "XMP編集を維持します" -#: ../src/control/crawler.c:809 +#: ../src/control/crawler.c:802 msgid "keep the database edit" msgstr "database編集を維持します" -#: ../src/control/crawler.c:810 +#: ../src/control/crawler.c:803 msgid "keep the newest edit" msgstr "最新の編集を維持します" -#: ../src/control/crawler.c:811 +#: ../src/control/crawler.c:804 msgid "keep the oldest edit" msgstr "最も古い編集を維持します" -#: ../src/control/crawler.c:836 +#: ../src/control/crawler.c:829 msgid "synchronization log" msgstr "同期ログ" @@ -7194,6 +7521,10 @@ msgid "starting to import images from camera" msgstr "カメラから画像をインポートし始めました" +#: ../src/control/jobs/camera_jobs.c:302 +msgid "failed to import images from camera." +msgstr "カメラから画像をインポートことが出来ませんでした" + #: ../src/control/jobs/camera_jobs.c:309 #, c-format msgid "importing %d image from camera" @@ -7300,7 +7631,8 @@ msgid "_remove from library" msgstr "_ライブラリから除去" -#: ../src/control/jobs/control_jobs.c:884 +#: ../src/control/jobs/control_jobs.c:884 ../src/libs/styles.c:440 +#: ../src/libs/styles.c:625 msgid "_skip" msgstr "_スキップ" @@ -7398,42 +7730,42 @@ msgid "exporting %d / %d to %s" msgstr "%d/%d枚の画像を%sにエクスポートしています" -#: ../src/control/jobs/control_jobs.c:1459 ../src/views/darkroom.c:800 +#: ../src/control/jobs/control_jobs.c:1451 ../src/views/darkroom.c:721 #: ../src/views/print.c:369 #, c-format msgid "image `%s' is currently unavailable" msgstr "画像`%s'は現在使用することが出来ません" -#: ../src/control/jobs/control_jobs.c:1551 +#: ../src/control/jobs/control_jobs.c:1554 msgid "merge HDR image" msgstr "HDR画像を結合する" -#: ../src/control/jobs/control_jobs.c:1565 +#: ../src/control/jobs/control_jobs.c:1568 msgid "duplicate images" msgstr "画像を複製します" -#: ../src/control/jobs/control_jobs.c:1571 +#: ../src/control/jobs/control_jobs.c:1574 msgid "flip images" msgstr "画像を反転します" -#: ../src/control/jobs/control_jobs.c:1578 +#: ../src/control/jobs/control_jobs.c:1581 msgid "set monochrome images" msgstr "画像をモノクロに設定します" #. get all selected images now, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1585 +#: ../src/control/jobs/control_jobs.c:1588 msgid "remove images" msgstr "画像を除去します" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove image?" msgstr "画像を除去しますか?" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove images?" msgstr "画像を除去しますか?" -#: ../src/control/jobs/control_jobs.c:1599 +#: ../src/control/jobs/control_jobs.c:1602 #, c-format msgid "" "do you really want to remove %d image from darktable\n" @@ -7449,21 +7781,21 @@ "(ファイルをディスクから削除しません)" #. first get all selected images, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1614 -#: ../src/control/jobs/control_jobs.c:1647 +#: ../src/control/jobs/control_jobs.c:1617 +#: ../src/control/jobs/control_jobs.c:1650 msgid "delete images" msgstr "画像を削除します" -#: ../src/control/jobs/control_jobs.c:1630 -#: ../src/control/jobs/control_jobs.c:1660 +#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1663 msgid "delete image?" msgstr "画像を削除しますか?" -#: ../src/control/jobs/control_jobs.c:1630 +#: ../src/control/jobs/control_jobs.c:1633 msgid "delete images?" msgstr "画像を削除しますか?" -#: ../src/control/jobs/control_jobs.c:1631 +#: ../src/control/jobs/control_jobs.c:1634 #, c-format msgid "" "do you really want to physically delete %d image\n" @@ -7478,14 +7810,14 @@ "%d枚の画像を本当に物理的に削除しますか?\n" "(出来ればゴミ箱を使用します)" -#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1636 #, c-format msgid "do you really want to physically delete %d image from disk?" msgid_plural "do you really want to physically delete %d images from disk?" msgstr[0] "%d枚の画像を本当にディスクから物理的に削除しますか?" msgstr[1] "%d枚の画像を本当にディスクから物理的に削除しますか?" -#: ../src/control/jobs/control_jobs.c:1661 +#: ../src/control/jobs/control_jobs.c:1664 msgid "" "do you really want to physically delete selected image (using trash if " "possible)?" @@ -7493,26 +7825,26 @@ "選択した画像を本当に物理的に削除しますか?\n" "(出来ればゴミ箱を使用します)" -#: ../src/control/jobs/control_jobs.c:1662 +#: ../src/control/jobs/control_jobs.c:1665 msgid "do you really want to physically delete selected image from disk?" msgstr "選択した画像を本当にディスクから物理的に削除しますか?" -#: ../src/control/jobs/control_jobs.c:1677 +#: ../src/control/jobs/control_jobs.c:1680 msgid "move images" msgstr "画像を移動します" -#: ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 msgid "_select as destination" msgstr "_送り先として選択します" -#: ../src/control/jobs/control_jobs.c:1708 +#: ../src/control/jobs/control_jobs.c:1711 msgid "move image?" msgid_plural "move images?" msgstr[0] "画像を移動しますか?" msgstr[1] "画像を移動しますか?" -#: ../src/control/jobs/control_jobs.c:1709 +#: ../src/control/jobs/control_jobs.c:1712 #, c-format msgid "" "do you really want to physically move %d image to %s?\n" @@ -7527,117 +7859,112 @@ "%d枚の画像を本当に%sに物理的に移動しますか?\n" "(全ての複製画像が移動します)" -#: ../src/control/jobs/control_jobs.c:1731 +#: ../src/control/jobs/control_jobs.c:1734 msgid "copy images" msgstr "画像をコピーします" -#: ../src/control/jobs/control_jobs.c:1762 +#: ../src/control/jobs/control_jobs.c:1765 msgid "copy image?" msgid_plural "copy images?" msgstr[0] "画像をコピーしますか?" msgstr[1] "画像をコピーしますか?" -#: ../src/control/jobs/control_jobs.c:1763 +#: ../src/control/jobs/control_jobs.c:1766 #, c-format msgid "do you really want to physically copy %d image to %s?" msgid_plural "do you really want to physically copy %d images to %s?" msgstr[0] "%d枚の画像を 本当に%s に物理的にコピーしますか?" msgstr[1] "%d枚の画像を本当に%s に物理的にコピーしますか?" -#: ../src/control/jobs/control_jobs.c:1781 -#: ../src/control/jobs/control_jobs.c:1789 +#: ../src/control/jobs/control_jobs.c:1784 +#: ../src/control/jobs/control_jobs.c:1792 msgid "local copy images" msgstr "画像をローカルコピーします" -#: ../src/control/jobs/control_jobs.c:1796 ../src/libs/image.c:604 +#: ../src/control/jobs/control_jobs.c:1799 ../src/libs/image.c:674 msgid "refresh EXIF" msgstr "EXIFを更新する" -#: ../src/control/jobs/control_jobs.c:1860 +#: ../src/control/jobs/control_jobs.c:1863 #, c-format msgid "failed to get parameters from storage module `%s', aborting export.." msgstr "" "ストレージモジュール`%s'からパラメータを取得することが出来ません。エクスポー" "トを中止しています.." -#: ../src/control/jobs/control_jobs.c:1876 +#: ../src/control/jobs/control_jobs.c:1879 msgid "export images" msgstr "画像をエクスポートします" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "adding time offset to %d image" msgstr "%d枚の画像に時間オフセットを追加しています" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "setting date/time of %d image" msgstr "%d枚の画像の時間オフセットを設定しています" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "adding time offset to %d images" msgstr "%d枚の画像に時間オフセットを追加しています" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "setting date/time of %d images" msgstr "%d枚の画像の時間オフセットを設定しています" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "added time offset to %d image" msgstr "%d枚の画像に時差を追加しました" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "set date/time of %d image" msgstr "%d枚の画像の日時を設定しました" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "added time offset to %d images" msgstr "%d枚の画像に時差を追加しました" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "set date/time of %d images" msgstr "%d枚の画像の日時を設定しました" -#: ../src/control/jobs/control_jobs.c:2014 +#: ../src/control/jobs/control_jobs.c:2017 msgid "time offset" msgstr "時間オフセット" -#: ../src/control/jobs/control_jobs.c:2042 ../src/libs/copy_history.c:414 +#: ../src/control/jobs/control_jobs.c:2045 ../src/libs/copy_history.c:414 msgid "write sidecar files" msgstr "サイドカーファイル書き込み" -#: ../src/control/jobs/control_jobs.c:2256 ../src/control/jobs/film_jobs.c:297 +#: ../src/control/jobs/control_jobs.c:2259 ../src/control/jobs/film_jobs.c:297 #, c-format msgid "importing %d image" msgid_plural "importing %d images" msgstr[0] "%d枚の画像をインポートしています" msgstr[1] "%d枚の画像をインポートしています" -#: ../src/control/jobs/control_jobs.c:2292 +#: ../src/control/jobs/control_jobs.c:2295 #, c-format msgid "importing %d/%d image" msgid_plural "importing %d/%d images" msgstr[0] "%d/%d枚の画像をインポートしています" msgstr[1] "%d/%d枚の画像をインポートしています" -#: ../src/control/jobs/control_jobs.c:2300 +#: ../src/control/jobs/control_jobs.c:2305 #, c-format msgid "imported %d image" msgid_plural "imported %d images" msgstr[0] "%d枚の画像をインポートしました" msgstr[1] "%d枚の画像をインポートしました" -#: ../src/control/jobs/control_jobs.c:2347 ../src/gui/preferences.c:530 -#: ../src/libs/import.c:172 -msgid "import" -msgstr "インポート" - #: ../src/control/jobs/film_jobs.c:73 ../src/control/jobs/film_jobs.c:109 msgid "import images" msgstr "画像をインポートします" @@ -7656,11 +7983,11 @@ msgid "import image" msgstr "画像をインポートします" -#: ../src/develop/blend.c:322 +#: ../src/develop/blend.c:315 msgid "detail mask blending error" msgstr "ディテールマスクブレンドエラー" -#: ../src/develop/blend.c:864 +#: ../src/develop/blend.c:904 msgid "detail mask CL blending problem" msgstr "ディテールマスクCLブレンドに問題があります" @@ -7861,8 +8188,7 @@ msgid "reverse" msgstr "逆転" -#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:413 -#: ../src/libs/metadata.c:631 ../src/libs/metadata_view.c:1193 +#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:442 msgid "default" msgstr "デフォルト" @@ -7870,35 +8196,35 @@ msgid "RAW" msgstr "RAW" -#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2014 +#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2030 msgid "RGB (display)" msgstr "RGB (ディスプレイ)" -#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2027 +#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2043 msgid "RGB (scene)" msgstr "RGB (シーン)" #. DEVELOP_MASK_ENABLED -#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3419 +#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3438 msgid "uniformly" msgstr "全体に均一" -#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:3429 ../src/develop/imageop.c:2660 +#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:3448 ../src/develop/imageop.c:2669 msgid "drawn mask" msgstr "描画マスク" -#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2512 -#: ../src/develop/blend_gui.c:3440 ../src/develop/imageop.c:2662 +#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2528 +#: ../src/develop/blend_gui.c:3459 ../src/develop/imageop.c:2671 msgid "parametric mask" msgstr "パラメトリックマスク" -#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2951 -#: ../src/develop/blend_gui.c:3467 ../src/develop/imageop.c:2664 +#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2966 +#: ../src/develop/blend_gui.c:3486 ../src/develop/imageop.c:2673 msgid "raster mask" msgstr "ラスターマスク" -#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3454 +#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3473 msgid "drawn & parametric mask" msgstr "描画&パラメトリックマスク" @@ -7934,177 +8260,177 @@ msgid "input after blur" msgstr "入力 ぼかし後" -#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:129 -#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/libs/live_view.c:362 +#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:157 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/libs/live_view.c:362 msgid "on" msgstr "オン" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "input" msgstr "入力" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "output" msgstr "出力" -#: ../src/develop/blend_gui.c:995 +#: ../src/develop/blend_gui.c:998 msgid " (zoom)" msgstr "(ズーム)" -#: ../src/develop/blend_gui.c:1003 +#: ../src/develop/blend_gui.c:1006 msgid " (log)" msgstr "(対数)" -#: ../src/develop/blend_gui.c:1988 +#: ../src/develop/blend_gui.c:2004 msgid "reset to default blend colorspace" msgstr "デフォルトのブレンド色空間にリセット" -#: ../src/develop/blend_gui.c:2044 +#: ../src/develop/blend_gui.c:2060 msgid "reset and hide output channels" msgstr "出力チャンネルをリセットして非表示" -#: ../src/develop/blend_gui.c:2051 +#: ../src/develop/blend_gui.c:2067 msgid "show output channels" msgstr "出力チャンネルを表示" -#: ../src/develop/blend_gui.c:2290 ../src/develop/blend_gui.c:2357 -#: ../src/iop/tonecurve.c:1134 +#: ../src/develop/blend_gui.c:2306 ../src/develop/blend_gui.c:2373 +#: ../src/iop/tonecurve.c:1156 msgid "L" msgstr "L" -#: ../src/develop/blend_gui.c:2290 +#: ../src/develop/blend_gui.c:2306 msgid "sliders for L channel" msgstr "Lチャンネルのスライダー" -#: ../src/develop/blend_gui.c:2295 ../src/iop/tonecurve.c:1135 +#: ../src/develop/blend_gui.c:2311 ../src/iop/tonecurve.c:1157 msgid "a" msgstr "a" -#: ../src/develop/blend_gui.c:2295 +#: ../src/develop/blend_gui.c:2311 msgid "sliders for a channel" msgstr "aチャンネルのスライダー" -#: ../src/develop/blend_gui.c:2299 +#: ../src/develop/blend_gui.c:2315 msgid "green/red" msgstr "緑/赤" -#: ../src/develop/blend_gui.c:2300 ../src/iop/tonecurve.c:1136 +#: ../src/develop/blend_gui.c:2316 ../src/iop/tonecurve.c:1158 msgid "b" msgstr "b" -#: ../src/develop/blend_gui.c:2300 +#: ../src/develop/blend_gui.c:2316 msgid "sliders for b channel" msgstr "bチャンネルのスライダー" -#: ../src/develop/blend_gui.c:2304 +#: ../src/develop/blend_gui.c:2320 msgid "blue/yellow" msgstr "青/黄" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "C" msgstr "C" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "sliders for chroma channel (of LCh)" msgstr "(LChの)彩度(クロマ)チャンネルのスライダー" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "h" msgstr "h" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "sliders for hue channel (of LCh)" msgstr "(LChの)色相チャンネルのスライダー" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "g" msgstr "g" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "sliders for gray value" msgstr "グレー値のスライダー" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/denoiseprofile.c:3710 -#: ../src/iop/rawdenoise.c:894 ../src/iop/rgbcurve.c:1358 -#: ../src/iop/rgblevels.c:1003 ../src/libs/filters/colors.c:137 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/denoiseprofile.c:3714 +#: ../src/iop/rawdenoise.c:910 ../src/iop/rgbcurve.c:1358 +#: ../src/iop/rgblevels.c:1043 ../src/libs/filters/colors.c:137 msgid "R" msgstr "R" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 msgid "sliders for red channel" msgstr "赤チャンネルのスライダー" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/denoiseprofile.c:3711 -#: ../src/iop/rawdenoise.c:895 ../src/iop/rgbcurve.c:1359 -#: ../src/iop/rgblevels.c:1004 ../src/libs/filters/colors.c:143 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/denoiseprofile.c:3715 +#: ../src/iop/rawdenoise.c:911 ../src/iop/rgbcurve.c:1359 +#: ../src/iop/rgblevels.c:1044 ../src/libs/filters/colors.c:143 msgid "G" msgstr "G" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 msgid "sliders for green channel" msgstr "緑チャンネルのスライダー" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/denoiseprofile.c:3712 -#: ../src/iop/rawdenoise.c:896 ../src/iop/rgbcurve.c:1360 -#: ../src/iop/rgblevels.c:1005 ../src/libs/filters/colors.c:146 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/denoiseprofile.c:3716 +#: ../src/iop/rawdenoise.c:912 ../src/iop/rgbcurve.c:1360 +#: ../src/iop/rgblevels.c:1045 ../src/libs/filters/colors.c:146 msgid "B" msgstr "B" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 msgid "sliders for blue channel" msgstr "青チャンネルのスライダー" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "H" msgstr "H" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "sliders for hue channel (of HSL)" msgstr "(HSLの)色相チャンネルのスライダー" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "S" msgstr "S" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "sliders for chroma channel (of HSL)" msgstr "(HSLの)彩度(クロマ)チャンネルのスライダー" -#: ../src/develop/blend_gui.c:2357 +#: ../src/develop/blend_gui.c:2373 msgid "sliders for value channel (of HSL)" msgstr "(HSLの)明度(バリュー)チャンネルのスライダー" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "Jz" msgstr "Jz" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "sliders for value channel (of JzCzhz)" msgstr "(JzCzhzの)明度(バリュー)チャンネルのスライダー" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "Cz" msgstr "Cz" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "sliders for chroma channel (of JzCzhz)" msgstr "(JzCzhzの)彩度(クロマ)チャンネルのスライダー" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "hz" msgstr "hz" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "sliders for hue channel (of JzCzhz)" msgstr "(JzCzhzの)色相チャンネルのスライダー" -#: ../src/develop/blend_gui.c:2415 +#: ../src/develop/blend_gui.c:2431 msgid "" "adjustment based on input received by this module:\n" "* range defined by upper markers: blend fully\n" @@ -8116,7 +8442,7 @@ "* 下の三角マーカーで定義された範囲:ブレンドしない\n" "* 隣接する上/下の三角マーカーの間の範囲:徐々にブレンド" -#: ../src/develop/blend_gui.c:2419 +#: ../src/develop/blend_gui.c:2435 msgid "" "adjustment based on unblended output of this module:\n" "* range defined by upper markers: blend fully\n" @@ -8128,19 +8454,19 @@ "* 下の三角マーカーで定義された範囲:ブレンドしない\n" "* 隣接する上/下の三角マーカーの間の範囲:徐々にブレンド" -#: ../src/develop/blend_gui.c:2516 +#: ../src/develop/blend_gui.c:2532 msgid "reset blend mask settings" msgstr "ブレンドマスクの設定をリセット" -#: ../src/develop/blend_gui.c:2527 ../src/iop/atrous.c:1665 -#: ../src/iop/colorzones.c:2399 ../src/iop/denoiseprofile.c:3707 -#: ../src/iop/rawdenoise.c:891 ../src/iop/rgbcurve.c:1357 -#: ../src/iop/rgblevels.c:1002 ../src/iop/tonecurve.c:1133 +#: ../src/develop/blend_gui.c:2543 ../src/iop/atrous.c:1797 +#: ../src/iop/colorzones.c:2641 ../src/iop/denoiseprofile.c:3711 +#: ../src/iop/rawdenoise.c:907 ../src/iop/rgbcurve.c:1357 +#: ../src/iop/rgblevels.c:1041 ../src/iop/tonecurve.c:1155 msgid "channel" msgstr "チャンネル" -#: ../src/develop/blend_gui.c:2542 ../src/iop/colorzones.c:2413 -#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1142 +#: ../src/develop/blend_gui.c:2558 ../src/iop/colorzones.c:2660 +#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1164 msgid "" "pick GUI color from image\n" "ctrl+click or right-click to select an area" @@ -8148,12 +8474,12 @@ "画像からGUIの色を抽出\n" "Ctrl+クリックまたは右クリックすると、領域を選択します" -#: ../src/develop/blend_gui.c:2545 ../src/iop/colorzones.c:2415 +#: ../src/develop/blend_gui.c:2561 ../src/iop/colorzones.c:2662 #: ../src/iop/rgbcurve.c:1369 msgid "show color" msgstr "色を表示" -#: ../src/develop/blend_gui.c:2554 +#: ../src/develop/blend_gui.c:2570 msgid "" "set the range based on an area from the image\n" "drag to use the input image\n" @@ -8163,21 +8489,21 @@ "入力画像を使用するには ドラッグ\n" "出力画像を使用するには Ctrl+ドラッグ" -#: ../src/develop/blend_gui.c:2557 +#: ../src/develop/blend_gui.c:2573 msgid "set range" msgstr "範囲を設定" -#: ../src/develop/blend_gui.c:2560 +#: ../src/develop/blend_gui.c:2576 msgid "invert all channel's polarities" msgstr "全てのチャンネルの極性を反転" -#: ../src/develop/blend_gui.c:2584 +#: ../src/develop/blend_gui.c:2600 msgid "toggle polarity. best seen by enabling 'display mask'" msgstr "" "極性の切り替え\n" "【マスクを表示】を有効にすると分かりやすく可視化されます" -#: ../src/develop/blend_gui.c:2613 +#: ../src/develop/blend_gui.c:2629 msgid "" "double-click to reset.\n" "press 'a' to toggle available slider modes.\n" @@ -8189,170 +8515,205 @@ "'c'を押すと、チャネルデータの表示/非表示を切り替えます\n" "'m'を押すと、マスクの表示/非表示を切り替えます" -#: ../src/develop/blend_gui.c:2640 ../src/develop/blend_gui.c:3531 -#: ../src/iop/basicadj.c:600 ../src/iop/colorbalancergb.c:2090 -#: ../src/iop/exposure.c:1120 ../src/iop/exposure.c:1135 -#: ../src/iop/filmic.c:1503 ../src/iop/filmic.c:1516 ../src/iop/filmic.c:1558 -#: ../src/iop/filmicrgb.c:4440 ../src/iop/filmicrgb.c:4451 -#: ../src/iop/filmicrgb.c:4485 ../src/iop/filmicrgb.c:4495 -#: ../src/iop/graduatednd.c:1113 ../src/iop/negadoctor.c:1011 -#: ../src/iop/profile_gamma.c:643 ../src/iop/profile_gamma.c:649 -#: ../src/iop/relight.c:262 ../src/iop/soften.c:378 ../src/iop/toneequal.c:3326 -#: ../src/iop/toneequal.c:3329 ../src/iop/toneequal.c:3332 -#: ../src/iop/toneequal.c:3335 ../src/iop/toneequal.c:3338 -#: ../src/iop/toneequal.c:3341 ../src/iop/toneequal.c:3344 -#: ../src/iop/toneequal.c:3347 ../src/iop/toneequal.c:3350 -#: ../src/iop/toneequal.c:3472 ../src/iop/toneequal.c:3481 -#: ../src/iop/toneequal.c:3494 ../src/views/darkroom.c:2453 +#: ../src/develop/blend_gui.c:2656 ../src/develop/blend_gui.c:3577 +#: ../src/iop/basicadj.c:630 ../src/iop/colorbalancergb.c:2161 +#: ../src/iop/exposure.c:1138 ../src/iop/exposure.c:1153 +#: ../src/iop/filmic.c:1528 ../src/iop/filmic.c:1541 ../src/iop/filmic.c:1583 +#: ../src/iop/filmicrgb.c:4504 ../src/iop/filmicrgb.c:4515 +#: ../src/iop/filmicrgb.c:4549 ../src/iop/filmicrgb.c:4559 +#: ../src/iop/graduatednd.c:1082 ../src/iop/negadoctor.c:1030 +#: ../src/iop/profile_gamma.c:657 ../src/iop/profile_gamma.c:663 +#: ../src/iop/relight.c:258 ../src/iop/soften.c:373 ../src/iop/toneequal.c:3379 +#: ../src/iop/toneequal.c:3382 ../src/iop/toneequal.c:3385 +#: ../src/iop/toneequal.c:3388 ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3394 ../src/iop/toneequal.c:3397 +#: ../src/iop/toneequal.c:3400 ../src/iop/toneequal.c:3403 +#: ../src/iop/toneequal.c:3525 ../src/iop/toneequal.c:3534 +#: ../src/iop/toneequal.c:3547 ../src/views/darkroom.c:2292 msgid " EV" msgstr "EV" -#: ../src/develop/blend_gui.c:2642 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:2951 ../src/develop/blend_gui.c:3014 -#: ../src/develop/blend_gui.c:3499 ../src/develop/blend_gui.c:3529 -#: ../src/develop/blend_gui.c:3542 ../src/develop/blend_gui.c:3559 -#: ../src/develop/blend_gui.c:3583 ../src/develop/blend_gui.c:3593 -#: ../src/develop/blend_gui.c:3602 ../src/develop/blend_gui.c:3613 +#: ../src/develop/blend_gui.c:2658 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:2966 ../src/develop/blend_gui.c:3029 +#: ../src/develop/blend_gui.c:3545 ../src/develop/blend_gui.c:3575 +#: ../src/develop/blend_gui.c:3588 ../src/develop/blend_gui.c:3605 +#: ../src/develop/blend_gui.c:3629 ../src/develop/blend_gui.c:3641 +#: ../src/develop/blend_gui.c:3652 ../src/develop/blend_gui.c:3663 msgid "blend" msgstr "ブレンド" -#: ../src/develop/blend_gui.c:2642 +#: ../src/develop/blend_gui.c:2658 msgid "boost factor" msgstr "ブースト率" -#: ../src/develop/blend_gui.c:2645 +#: ../src/develop/blend_gui.c:2661 msgid "adjust the boost factor of the channel mask" msgstr "チャンネルマスクのブースト率を調整します" -#: ../src/develop/blend_gui.c:2682 +#: ../src/develop/blend_gui.c:2698 #, c-format msgid "%d shape used" msgid_plural "%d shapes used" msgstr[0] "%d個のシェイプが使用されています" msgstr[1] "%d個のシェイプが使用されています" -#: ../src/develop/blend_gui.c:2687 ../src/develop/blend_gui.c:2743 -#: ../src/develop/blend_gui.c:2831 ../src/develop/blend_gui.c:2952 +#: ../src/develop/blend_gui.c:2703 ../src/develop/blend_gui.c:2759 +#: ../src/develop/blend_gui.c:2847 ../src/develop/blend_gui.c:2967 msgid "no mask used" msgstr "使用マスクなし" -#: ../src/develop/blend_gui.c:2751 +#: ../src/develop/blend_gui.c:2767 msgid "toggle polarity of drawn mask" msgstr "描画マスクの極性の切り替え" -#: ../src/develop/blend_gui.c:2760 +#: ../src/develop/blend_gui.c:2776 msgid "show and edit mask elements" msgstr "マスク要素の表示・編集" -#: ../src/develop/blend_gui.c:2761 +#: ../src/develop/blend_gui.c:2777 msgid "show and edit in restricted mode" msgstr "制限モードで表示・編集" -#: ../src/develop/blend_gui.c:2768 ../src/libs/masks.c:998 -#: ../src/libs/masks.c:1816 ../src/libs/masks.c:1820 +#: ../src/develop/blend_gui.c:2784 ../src/libs/masks.c:1014 +#: ../src/libs/masks.c:1812 ../src/libs/masks.c:1816 msgid "add gradient" msgstr "グラデーションを追加" -#: ../src/develop/blend_gui.c:2769 +#: ../src/develop/blend_gui.c:2785 msgid "add multiple gradients" msgstr "複数のグラデーションを追加" -#: ../src/develop/blend_gui.c:2776 ../src/iop/retouch.c:2238 -#: ../src/libs/masks.c:978 ../src/libs/masks.c:1852 ../src/libs/masks.c:1856 +#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2466 +#: ../src/libs/masks.c:994 ../src/libs/masks.c:1848 ../src/libs/masks.c:1852 msgid "add brush" msgstr "ブラシを追加" -#: ../src/develop/blend_gui.c:2777 ../src/iop/retouch.c:2238 +#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2466 msgid "add multiple brush strokes" msgstr "複数のブラシストロークを追加" -#: ../src/develop/blend_gui.c:2784 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 ../src/libs/masks.c:993 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1829 +#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 ../src/libs/masks.c:1009 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1825 msgid "add path" msgstr "パスを追加" -#: ../src/develop/blend_gui.c:2785 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 +#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 msgid "add multiple paths" msgstr "複数のパスを追加" -#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 ../src/libs/masks.c:988 ../src/libs/masks.c:1834 -#: ../src/libs/masks.c:1838 +#: ../src/develop/blend_gui.c:2808 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 ../src/libs/masks.c:1004 ../src/libs/masks.c:1830 +#: ../src/libs/masks.c:1834 msgid "add ellipse" msgstr "楕円を追加" -#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 +#: ../src/develop/blend_gui.c:2809 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 msgid "add multiple ellipses" msgstr "複数の楕円を追加" -#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 ../src/libs/masks.c:983 ../src/libs/masks.c:1843 -#: ../src/libs/masks.c:1847 +#: ../src/develop/blend_gui.c:2816 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 ../src/libs/masks.c:999 ../src/libs/masks.c:1839 +#: ../src/libs/masks.c:1843 msgid "add circle" msgstr "円を追加" -#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 +#: ../src/develop/blend_gui.c:2817 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 msgid "add multiple circles" msgstr "複数の円を追加" -#: ../src/develop/blend_gui.c:2961 +#: ../src/develop/blend_gui.c:2976 msgid "toggle polarity of raster mask" msgstr "ラスターマスクの極性の切り替え" -#: ../src/develop/blend_gui.c:3101 +#: ../src/develop/blend_gui.c:3119 msgid "normal & difference" msgstr "標準&差モード" -#: ../src/develop/blend_gui.c:3106 +#: ../src/develop/blend_gui.c:3124 msgid "lighten" msgstr "明るくする" -#: ../src/develop/blend_gui.c:3113 +#: ../src/develop/blend_gui.c:3131 msgid "darken" msgstr "暗くする" -#: ../src/develop/blend_gui.c:3120 +#: ../src/develop/blend_gui.c:3138 msgid "contrast enhancing" msgstr "コントラスト強化" -#: ../src/develop/blend_gui.c:3127 ../src/develop/blend_gui.c:3150 +#: ../src/develop/blend_gui.c:3145 ../src/develop/blend_gui.c:3168 msgid "color channel" msgstr "カラーチャンネル" -#: ../src/develop/blend_gui.c:3138 ../src/develop/blend_gui.c:3153 +#: ../src/develop/blend_gui.c:3156 ../src/develop/blend_gui.c:3171 msgid "chromaticity & lightness" msgstr "色度(クロマティシティ)&明度" -#: ../src/develop/blend_gui.c:3145 +#: ../src/develop/blend_gui.c:3163 msgid "normal & arithmetic" msgstr "標準&演算" #. add deprecated blend mode -#: ../src/develop/blend_gui.c:3166 +#: ../src/develop/blend_gui.c:3184 msgid "deprecated" msgstr "非推奨" -#: ../src/develop/blend_gui.c:3478 +#. should never happen: unknown blend mode +#: ../src/develop/blend_gui.c:3188 +#, c-format +msgid "unknown blend mode '%d' in module '%s'" +msgstr "不明なブレンドモード'%d'がモジュール'%s'で用いられています" + +#: ../src/develop/blend_gui.c:3497 msgid "blending options" msgstr "ブレンドオプション" -#: ../src/develop/blend_gui.c:3500 ../src/libs/history.c:949 -msgid "blend mode" -msgstr "ブレンドモード" +#: ../src/develop/blend_gui.c:3516 +msgid "blend mask" +msgstr "ブレンドマスク" + +#: ../src/develop/blend_gui.c:3520 +msgid "display mask and/or color channel" +msgstr "マスクおよび/またはカラーチャンネルの表示" -#: ../src/develop/blend_gui.c:3503 +#: ../src/develop/blend_gui.c:3525 +msgid "" +"display mask and/or color channel.\n" +"ctrl+click to display mask,\n" +"shift+click to display channel.\n" +"hover over parametric mask slider to select channel for display" +msgstr "" +"マスクおよび/またはカラーチャンネルを表示\n" +"Ctrl+クリックするとマスクを表示、Shift+クリックするとカラーチャンネルを表示し" +"ます\n" +"パラメトリックマスクのスライダーの上にカーソルを乗せて、表示するチャンネルを" +"選択します" + +#: ../src/develop/blend_gui.c:3532 +msgid "temporarily switch off blend mask" +msgstr "ブレンドマスクを一時的にオフ" + +#: ../src/develop/blend_gui.c:3537 +msgid "" +"temporarily switch off blend mask.\n" +"only for module in focus" +msgstr "" +"ブレンドマスクを一時的にオフ\n" +"フォーカスしているモジュールにのみ有効です" + +#: ../src/develop/blend_gui.c:3549 msgid "choose blending mode" msgstr "ブレンドモードを選択してください" -#: ../src/develop/blend_gui.c:3513 +#: ../src/develop/blend_gui.c:3559 msgid "toggle blend order" msgstr "ブレンド順序の切り替え" -#: ../src/develop/blend_gui.c:3519 +#: ../src/develop/blend_gui.c:3565 msgid "" "toggle the blending order between the input and the output of the module,\n" "by default the output will be blended on top of the input,\n" @@ -8363,39 +8724,39 @@ "アイコンをクリックすると、順序を逆にすることが出来ます(出力の上に入力をブレ" "ンド)" -#: ../src/develop/blend_gui.c:3530 ../src/libs/history.c:953 -msgid "blend fulcrum" -msgstr "ブレンド支点" +#: ../src/develop/blend_gui.c:3576 +msgid "fulcrum" +msgstr "支点" -#: ../src/develop/blend_gui.c:3534 +#: ../src/develop/blend_gui.c:3580 msgid "adjust the fulcrum used by some blending operations" msgstr "一部のブレンド操作で使用される支点を調整します" #. Add opacity/scale sliders to table -#: ../src/develop/blend_gui.c:3542 ../src/iop/watermark.c:1314 -#: ../src/libs/masks.c:104 +#: ../src/develop/blend_gui.c:3588 ../src/iop/watermark.c:1362 +#: ../src/libs/masks.c:105 msgid "opacity" msgstr "不透明度" -#: ../src/develop/blend_gui.c:3546 +#: ../src/develop/blend_gui.c:3591 msgid "set the opacity of the blending" msgstr "ブレンドの不透明度を設定します" -#: ../src/develop/blend_gui.c:3550 ../src/libs/history.c:956 +#: ../src/develop/blend_gui.c:3596 ../src/libs/history.c:956 msgid "combine masks" msgstr "マスク組み合わせ方式" -#: ../src/develop/blend_gui.c:3552 +#: ../src/develop/blend_gui.c:3598 msgid "" "how to combine individual drawn mask and different channels of parametric " "mask" msgstr "個々の描画マスクとパラメトリック マスクの諸チャンネルの組み合わせ方" -#: ../src/develop/blend_gui.c:3559 +#: ../src/develop/blend_gui.c:3605 msgid "details threshold" msgstr "ディテールのしきい値" -#: ../src/develop/blend_gui.c:3563 +#: ../src/develop/blend_gui.c:3609 msgid "" "adjust the threshold for the details mask (using raw data),\n" "positive values select areas with strong details,\n" @@ -8405,13 +8766,13 @@ "正の値はディテールの強い領域を選択します\n" "負の値はフラットな領域を選択します" -#: ../src/develop/blend_gui.c:3571 ../src/libs/history.c:959 +#: ../src/develop/blend_gui.c:3617 ../src/libs/history.c:959 msgid "feathering guide" msgstr "境界ぼかしガイド" # マスク適用を画像入力時または出力時に行う、 # 境界のぼかし処理をマスクぼかし前または後に行う -#: ../src/develop/blend_gui.c:3574 +#: ../src/develop/blend_gui.c:3620 msgid "" "choose to guide mask by input or output image and\n" "choose to apply feathering before or after mask blur" @@ -8419,28 +8780,28 @@ "マスクを入力画像または出力画像にもとづいて作成します\n" "境界のぼかし処理をマスクぼかし前または後に適用します" -#: ../src/develop/blend_gui.c:3583 ../src/libs/history.c:958 +#: ../src/develop/blend_gui.c:3629 ../src/libs/history.c:958 msgid "feathering radius" msgstr "境界ぼかしの半径" -#: ../src/develop/blend_gui.c:3586 +#: ../src/develop/blend_gui.c:3632 msgid "spatial radius of feathering" msgstr "境界ぼかしの半径" -#: ../src/develop/blend_gui.c:3593 +#: ../src/develop/blend_gui.c:3641 msgid "blurring radius" msgstr "ぼかしの半径" -#: ../src/develop/blend_gui.c:3596 +#: ../src/develop/blend_gui.c:3644 msgid "radius for gaussian blur of blend mask" msgstr "ブレンドマスクのガウスぼかしの半径" -#: ../src/develop/blend_gui.c:3602 ../src/iop/retouch.c:2453 +#: ../src/develop/blend_gui.c:3652 ../src/iop/retouch.c:2738 #: ../src/libs/history.c:954 msgid "mask opacity" msgstr "マスクの不透明度" -#: ../src/develop/blend_gui.c:3606 +#: ../src/develop/blend_gui.c:3656 msgid "" "shifts and tilts the tone curve of the blend mask to adjust its brightness\n" "without affecting fully transparent/fully opaque regions" @@ -8449,59 +8810,38 @@ "完全に透明な/不透明な領域に影響を与えることなく明るさ(ブライトネス)を調節" "します" -#: ../src/develop/blend_gui.c:3613 ../src/libs/history.c:962 +#: ../src/develop/blend_gui.c:3663 ../src/libs/history.c:962 msgid "mask contrast" msgstr "マスクのコントラスト" -#: ../src/develop/blend_gui.c:3617 +#: ../src/develop/blend_gui.c:3667 msgid "" "gives the tone curve of the blend mask an s-like shape to adjust its contrast" msgstr "" "ブレンドマスクのトーンカーブをS字のような形にしてコントラストを調整します" -#: ../src/develop/blend_gui.c:3621 +#: ../src/develop/blend_gui.c:3671 msgid "mask refinement" msgstr "マスク精緻化" -#: ../src/develop/blend_gui.c:3625 -msgid "display mask and/or color channel" -msgstr "マスクおよび/またはカラーチャンネルの表示" - -#: ../src/develop/blend_gui.c:3630 -msgid "" -"display mask and/or color channel.\n" -"ctrl+click to display mask,\n" -"shift+click to display channel.\n" -"hover over parametric mask slider to select channel for display" -msgstr "" -"マスクおよび/またはカラーチャンネルを表示\n" -"Ctrl+クリックするとマスクを表示、Shift+クリックするとカラーチャンネルを表示し" -"ます\n" -"パラメトリックマスクのスライダーの上にカーソルを乗せて、表示するチャンネルを" -"選択します" - -#: ../src/develop/blend_gui.c:3637 -msgid "temporarily switch off blend mask" -msgstr "ブレンドマスクを一時的にオフ" - -#: ../src/develop/blend_gui.c:3642 +#: ../src/develop/develop.c:732 msgid "" -"temporarily switch off blend mask.\n" -"only for module in focus" +"autosaving history has been disabled for this session because of a slow " +"drive used" msgstr "" -"ブレンドマスクを一時的にオフ\n" -"フォーカスしているモジュールにのみ有効です" +"低速なドライブが用いられているため、このセッションでは履歴の自動保存が無効に" +"なりました" -#: ../src/develop/develop.c:2303 +#: ../src/develop/develop.c:2202 #, c-format msgid "%s: module `%s' version mismatch: %d != %d" msgstr "%s:モジュール`%s'のバージョンの不一致:%d != %d" -#: ../src/develop/develop.c:2834 -msgid "module duplicate, can't move new instance after the base one\n" +#: ../src/develop/develop.c:3016 +msgid "duplicate module, can't move new instance after the base one\n" msgstr "" "モジュール複製\n" -"新しいインスタンスをベースインスタンスの後ろに移動することが出来ません\n" +"新しいインスタンスをベースインスタンスの後ろに移動することは出来ません\n" #: ../src/develop/imageop.c:1031 msgid "new instance" @@ -8511,70 +8851,69 @@ msgid "duplicate instance" msgstr "インスタンスを複製する" -#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3739 -#: ../src/libs/masks.c:1152 +#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3755 +#: ../src/libs/masks.c:1146 msgid "move up" msgstr "上へ移動" -#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3740 -#: ../src/libs/masks.c:1157 +#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3756 +#: ../src/libs/masks.c:1151 msgid "move down" msgstr "下へ移動" #. delete button label and tooltip will be updated based on trash pref -#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3742 -#: ../src/gui/accelerators.c:155 ../src/gui/presets.c:562 -#: ../src/libs/image.c:285 ../src/libs/image.c:480 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 +#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3758 +#: ../src/gui/accelerators.c:173 ../src/libs/image.c:303 +#: ../src/libs/image.c:513 msgid "delete" msgstr "削除" -#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3743 -#: ../src/libs/modulegroups.c:3464 ../src/libs/modulegroups.c:3815 +#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3759 +#: ../src/libs/modulegroups.c:3817 msgid "rename" msgstr "名前の変更" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched on" msgstr "%sはオンになっています" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched off" msgstr "%sはオフになっています" -#: ../src/develop/imageop.c:2654 +#: ../src/develop/imageop.c:2663 msgid "unknown mask" msgstr "不明なマスク" -#: ../src/develop/imageop.c:2658 +#: ../src/develop/imageop.c:2667 msgid "drawn + parametric mask" msgstr "描画+パラメトリック マスク" -#: ../src/develop/imageop.c:2667 +#: ../src/develop/imageop.c:2676 #, c-format msgid "this module has a `%s'" msgstr "このモジュールには`%s'があります" -#: ../src/develop/imageop.c:2672 +#: ../src/develop/imageop.c:2681 #, c-format msgid "taken from module %s" msgstr "モジュール%sから流用" -#: ../src/develop/imageop.c:2677 +#: ../src/develop/imageop.c:2686 msgid "click to display (module must be activated first)" msgstr "クリックして表示します(先にモジュールをオンにする)" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "purpose" msgstr "目的" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "process" msgstr "処理" -#: ../src/develop/imageop.c:2906 +#: ../src/develop/imageop.c:2917 msgid "" "multiple instance actions\n" "right-click creates new instance" @@ -8582,7 +8921,7 @@ "マルチインスタンスのアクション\n" "右クリックすると、新しいインスタンスが作成されます" -#: ../src/develop/imageop.c:2921 +#: ../src/develop/imageop.c:2932 msgid "" "reset parameters\n" "ctrl+click to reapply any automatic presets" @@ -8590,7 +8929,7 @@ "パラメータをリセットします\n" "Ctrl+クリックすると、自動プリセットを再適用します" -#: ../src/develop/imageop.c:2933 +#: ../src/develop/imageop.c:2944 msgid "" "presets\n" "right-click to apply on new instance" @@ -8598,15 +8937,15 @@ "プリセット\n" "右クリックすると、新しいインスタンスに適用します" -#: ../src/develop/imageop.c:3183 ../src/develop/imageop.c:3205 +#: ../src/develop/imageop.c:3194 ../src/develop/imageop.c:3216 msgid "ERROR" msgstr "エラー" -#: ../src/develop/imageop.c:3620 +#: ../src/develop/imageop.c:3622 msgid "unsupported input" msgstr "サポートされていないインプット" -#: ../src/develop/imageop.c:3621 +#: ../src/develop/imageop.c:3623 msgid "" "you have placed this module at\n" "a position in the pipeline where\n" @@ -8616,49 +8955,49 @@ "データ形式が要件に一致しないパイプライン内の位置にこのモジュールを移動しまし" "た" -#: ../src/develop/imageop.c:3738 ../src/develop/imageop.c:3748 -#: ../src/gui/accelerators.c:151 ../src/libs/lib.c:1414 +#: ../src/develop/imageop.c:3754 ../src/develop/imageop.c:3764 +#: ../src/gui/accelerators.c:169 ../src/libs/lib.c:1415 msgid "show" msgstr "表示" -#: ../src/develop/imageop.c:3741 ../src/libs/modulegroups.c:3310 -#: ../src/libs/modulegroups.c:3436 ../src/libs/modulegroups.c:3817 -#: ../src/libs/tagging.c:3248 +#: ../src/develop/imageop.c:3757 ../src/libs/modulegroups.c:3315 +#: ../src/libs/modulegroups.c:3438 ../src/libs/modulegroups.c:3819 +#: ../src/libs/tagging.c:3279 msgid "new" msgstr "新規作成" -#: ../src/develop/imageop.c:3744 ../src/libs/duplicate.c:405 -#: ../src/libs/image.c:495 ../src/libs/modulegroups.c:3813 +#: ../src/develop/imageop.c:3760 ../src/libs/duplicate.c:411 +#: ../src/libs/image.c:534 ../src/libs/modulegroups.c:3815 msgid "duplicate" msgstr "複製" -#: ../src/develop/imageop.c:3749 +#: ../src/develop/imageop.c:3765 msgid "enable" msgstr "有効" -#: ../src/develop/imageop.c:3750 ../src/gui/accelerators.c:167 +#: ../src/develop/imageop.c:3766 ../src/gui/accelerators.c:185 msgid "focus" msgstr "フォーカス" -#: ../src/develop/imageop.c:3751 ../src/gui/accelerators.c:2617 +#: ../src/develop/imageop.c:3767 ../src/gui/accelerators.c:2874 msgid "instance" msgstr "インスタンス" -#: ../src/develop/imageop.c:3752 ../src/gui/accelerators.c:112 -#: ../src/gui/accelerators.c:122 ../src/gui/gtk.c:3009 ../src/gui/gtk.c:3056 -#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:603 -#: ../src/gui/styles_dialog.c:625 ../src/iop/atrous.c:1512 -#: ../src/libs/lib.c:1415 ../src/libs/modulegroups.c:3882 +#: ../src/develop/imageop.c:3768 ../src/gui/accelerators.c:130 +#: ../src/gui/accelerators.c:140 ../src/gui/gtk.c:3055 ../src/gui/gtk.c:3102 +#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:615 +#: ../src/gui/styles_dialog.c:637 ../src/iop/atrous.c:1626 +#: ../src/libs/lib.c:1416 ../src/libs/modulegroups.c:3884 msgid "reset" msgstr "リセット" #. Adding the outer container -#: ../src/develop/imageop.c:3753 ../src/gui/preferences.c:798 -#: ../src/libs/lib.c:1416 +#: ../src/develop/imageop.c:3769 ../src/gui/preferences.c:796 +#: ../src/libs/lib.c:1417 msgid "presets" msgstr "プリセット" -#: ../src/develop/imageop.c:3773 +#: ../src/develop/imageop.c:3789 msgid "processing module" msgstr "処理モジュール" @@ -8671,54 +9010,54 @@ "%s\n" "Ctrl+クリックすると、 %s" -#: ../src/develop/lightroom.c:1083 +#: ../src/develop/lightroom.c:1137 msgid "cannot find Lightroom XMP!" msgstr "Lightroom XMPを見つけることが出来ません!" -#: ../src/develop/lightroom.c:1115 ../src/develop/lightroom.c:1137 -#: ../src/develop/lightroom.c:1157 +#: ../src/develop/lightroom.c:1169 ../src/develop/lightroom.c:1191 +#: ../src/develop/lightroom.c:1211 #, c-format msgid "`%s' is not a Lightroom XMP!" msgstr "`%s'はLightroom XMPではありません!" -#: ../src/develop/lightroom.c:1556 +#: ../src/develop/lightroom.c:1613 #, c-format msgid "%s has been imported" msgid_plural "%s have been imported" msgstr[0] "%sはすでにインポートされています" msgstr[1] "%sはすでにインポートされています" -#: ../src/develop/masks/brush.c:1356 ../src/develop/masks/brush.c:1410 +#: ../src/develop/masks/brush.c:1346 ../src/develop/masks/brush.c:1400 #, c-format msgid "hardness: %3.2f%%" msgstr "硬さ:%3.2f%%" -#: ../src/develop/masks/brush.c:1372 ../src/develop/masks/brush.c:1470 +#: ../src/develop/masks/brush.c:1362 ../src/develop/masks/brush.c:1460 #: ../src/develop/masks/circle.c:148 ../src/develop/masks/circle.c:193 #: ../src/develop/masks/ellipse.c:484 ../src/develop/masks/ellipse.c:546 -#: ../src/develop/masks/path.c:1273 +#: ../src/develop/masks/path.c:1255 #, c-format msgid "size: %3.2f%%" msgstr "サイズ:%3.2f%%" -#: ../src/develop/masks/brush.c:3247 +#: ../src/develop/masks/brush.c:3191 msgid "[BRUSH] change size" msgstr "【ブラシ】 サイズを変更する" -#: ../src/develop/masks/brush.c:3249 +#: ../src/develop/masks/brush.c:3193 msgid "[BRUSH] change hardness" msgstr "【ブラシ】硬さを変更する" -#: ../src/develop/masks/brush.c:3251 +#: ../src/develop/masks/brush.c:3195 msgid "[BRUSH] change opacity" msgstr "【ブラシ】不透明度を変更する" -#: ../src/develop/masks/brush.c:3263 +#: ../src/develop/masks/brush.c:3207 #, c-format msgid "brush #%d" msgstr "ブラシ#%d" -#: ../src/develop/masks/brush.c:3276 +#: ../src/develop/masks/brush.c:3220 #, c-format msgid "" "<b>size</b>: scroll, <b>hardness</b>: shift+scroll\n" @@ -8727,35 +9066,35 @@ "<b>サイズ</b>:スクロール  <b>硬さ</b>:Shift+スクロール\n" "<b>不透明度</b>:Ctrl+スクロール (%d%%)" -#: ../src/develop/masks/brush.c:3279 +#: ../src/develop/masks/brush.c:3223 msgid "<b>size</b>: scroll" msgstr "<b>サイズ</b>:スクロール" #: ../src/develop/masks/circle.c:137 ../src/develop/masks/circle.c:181 #: ../src/develop/masks/ellipse.c:470 ../src/develop/masks/ellipse.c:531 -#: ../src/develop/masks/path.c:1205 +#: ../src/develop/masks/path.c:1187 #, c-format msgid "feather size: %3.2f%%" msgstr "境界ぼかしのサイズ:%3.2f%%" -#: ../src/develop/masks/circle.c:1510 +#: ../src/develop/masks/circle.c:1462 msgid "[CIRCLE] change size" msgstr "【円】サイズを変更する" -#: ../src/develop/masks/circle.c:1512 +#: ../src/develop/masks/circle.c:1464 msgid "[CIRCLE] change feather size" msgstr "【円】境界ぼかしのサイズを変更する" -#: ../src/develop/masks/circle.c:1514 +#: ../src/develop/masks/circle.c:1466 msgid "[CIRCLE] change opacity" msgstr "【円】不透明度を変更する" -#: ../src/develop/masks/circle.c:1527 +#: ../src/develop/masks/circle.c:1479 #, c-format msgid "circle #%d" msgstr "円#%d" -#: ../src/develop/masks/circle.c:1538 ../src/develop/masks/path.c:3490 +#: ../src/develop/masks/circle.c:1490 ../src/develop/masks/path.c:3406 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8769,32 +9108,32 @@ msgid "rotation: %3.f°" msgstr "回転:%3.f°" -#: ../src/develop/masks/ellipse.c:2068 +#: ../src/develop/masks/ellipse.c:2015 msgid "[ELLIPSE] change size" msgstr "【楕円】サイズを変更する" -#: ../src/develop/masks/ellipse.c:2071 +#: ../src/develop/masks/ellipse.c:2018 msgid "[ELLIPSE] change feather size" msgstr "【楕円】境界ぼかしのサイズを変更する" -#: ../src/develop/masks/ellipse.c:2074 ../src/develop/masks/ellipse.c:2083 +#: ../src/develop/masks/ellipse.c:2021 ../src/develop/masks/ellipse.c:2030 msgid "[ELLIPSE] rotate shape" msgstr "【楕円】シェイプを回転する" -#: ../src/develop/masks/ellipse.c:2077 +#: ../src/develop/masks/ellipse.c:2024 msgid "[ELLIPSE] change opacity" msgstr "【楕円】不透明度を変更する" -#: ../src/develop/masks/ellipse.c:2080 +#: ../src/develop/masks/ellipse.c:2027 msgid "[ELLIPSE] switch feathering mode" msgstr "【楕円】境界ぼかしのモードを変更する" -#: ../src/develop/masks/ellipse.c:2090 +#: ../src/develop/masks/ellipse.c:2037 #, c-format msgid "ellipse #%d" msgstr "楕円#%d" -#: ../src/develop/masks/ellipse.c:2128 +#: ../src/develop/masks/ellipse.c:2075 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8804,11 +9143,11 @@ "<b>回転</b>:Ctrl+Shift+スクロール   <b>不透明度</b>:Ctrl+スクロール " "(%d%%)" -#: ../src/develop/masks/ellipse.c:2132 +#: ../src/develop/masks/ellipse.c:2079 msgid "<b>rotate</b>: ctrl+drag" msgstr "<b>回転</b>:Ctrl+ドラッグ" -#: ../src/develop/masks/ellipse.c:2135 +#: ../src/develop/masks/ellipse.c:2082 #, c-format msgid "" "<b>feather mode</b>: shift+click, <b>rotate</b>: ctrl+drag\n" @@ -8829,32 +9168,32 @@ msgid "curvature: %3.2f%%" msgstr "曲率:%3.2f%%" -#: ../src/develop/masks/gradient.c:1555 +#: ../src/develop/masks/gradient.c:1514 msgid "[GRADIENT on pivot] rotate shape" msgstr "【旋回軸上のグラデーション】シェイプを回転する" -#: ../src/develop/masks/gradient.c:1557 +#: ../src/develop/masks/gradient.c:1516 msgid "[GRADIENT creation] set rotation" msgstr "【グラデーションの作成】シェイプを設定する" -#: ../src/develop/masks/gradient.c:1559 +#: ../src/develop/masks/gradient.c:1518 msgid "[GRADIENT] change curvature" msgstr "【グラデーション】曲率を変更する" -#: ../src/develop/masks/gradient.c:1561 +#: ../src/develop/masks/gradient.c:1520 msgid "[GRADIENT] change compression" msgstr "【グラデーション】圧縮を変更する" -#: ../src/develop/masks/gradient.c:1563 +#: ../src/develop/masks/gradient.c:1522 msgid "[GRADIENT] change opacity" msgstr "【グラデーション】不透明度を変更する" -#: ../src/develop/masks/gradient.c:1576 +#: ../src/develop/masks/gradient.c:1535 #, c-format msgid "gradient #%d" msgstr "グラデーション#%d" -#: ../src/develop/masks/gradient.c:1587 +#: ../src/develop/masks/gradient.c:1546 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8863,7 +9202,7 @@ "<b>曲率</b>:スクロール  <b>圧縮</b>:Shift+スクロール\n" "<b>回転</b>:クリック+ドラッグ   <b>不透明度</b>:Ctrl+スクロール (%d%%)" -#: ../src/develop/masks/gradient.c:1592 +#: ../src/develop/masks/gradient.c:1551 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8872,7 +9211,7 @@ "<b>曲率</b>:スクロール  <b>圧縮</b>:Shift+スクロール\n" "<b>不透明度</b>:Ctrl+スクロール (%d%%)" -#: ../src/develop/masks/gradient.c:1595 +#: ../src/develop/masks/gradient.c:1554 msgid "<b>rotate</b>: drag" msgstr "<b>回転</b>:ドラッグ" @@ -8880,84 +9219,84 @@ msgid "[SHAPE] remove shape" msgstr "【シェイプ】シェイプを削除する" -#: ../src/develop/masks/masks.c:306 +#: ../src/develop/masks/masks.c:305 #, c-format msgid "group `%s'" msgstr "グループ %s" -#: ../src/develop/masks/masks.c:423 +#: ../src/develop/masks/masks.c:422 #, c-format msgid "copy of `%s'" msgstr "%sのコピー" -#: ../src/develop/masks/masks.c:984 +#: ../src/develop/masks/masks.c:985 #, c-format msgid "%s: mask version mismatch: %d != %d" msgstr "%s:マスクのバージョンの不一致:%d != %d" -#: ../src/develop/masks/masks.c:1239 ../src/develop/masks/masks.c:1906 +#: ../src/develop/masks/masks.c:1230 ../src/develop/masks/masks.c:1881 #, c-format msgid "opacity: %.0f%%" msgstr "不透明度: %.0f%%" -#: ../src/develop/masks/masks.c:1650 ../src/libs/masks.c:1068 +#: ../src/develop/masks/masks.c:1625 ../src/libs/masks.c:1084 msgid "add existing shape" msgstr "既存のシェイプを追加する" -#: ../src/develop/masks/masks.c:1677 +#: ../src/develop/masks/masks.c:1652 msgid "use same shapes as" msgstr "同じシェイプを使用する" -#: ../src/develop/masks/masks.c:1990 +#: ../src/develop/masks/masks.c:1965 msgid "masks can not contain themselves" msgstr "マスクは自らを内部に含むことが出来ません" -#: ../src/develop/masks/path.c:3433 +#: ../src/develop/masks/path.c:3349 msgid "[PATH creation] add a smooth node" msgstr "【パスの作成】スムースノードを追加する" -#: ../src/develop/masks/path.c:3435 +#: ../src/develop/masks/path.c:3351 msgid "[PATH creation] add a sharp node" msgstr "【パスの作成】シャープノードを追加する" -#: ../src/develop/masks/path.c:3437 +#: ../src/develop/masks/path.c:3353 msgid "[PATH creation] terminate path creation" msgstr "【パスの作成】パスの作成を終了する" -#: ../src/develop/masks/path.c:3439 +#: ../src/develop/masks/path.c:3355 msgid "[PATH on node] switch between smooth/sharp node" msgstr "【ノードの上のパス】スムーズノードとシャープノードを切り替える" -#: ../src/develop/masks/path.c:3441 +#: ../src/develop/masks/path.c:3357 msgid "[PATH on node] remove the node" msgstr "【ノードの上のパス】ノードを削除する" -#: ../src/develop/masks/path.c:3443 +#: ../src/develop/masks/path.c:3359 msgid "[PATH on feather] reset curvature" msgstr "【境界ぼかしの上のパス】曲率をリセットする" -#: ../src/develop/masks/path.c:3445 +#: ../src/develop/masks/path.c:3361 msgid "[PATH on segment] add node" msgstr "【線分の上のパス】ノードを追加する" -#: ../src/develop/masks/path.c:3447 +#: ../src/develop/masks/path.c:3363 msgid "[PATH] change size" msgstr "【パス】 サイズを変更する" -#: ../src/develop/masks/path.c:3449 +#: ../src/develop/masks/path.c:3365 msgid "[PATH] change feather size" msgstr "【パス】境界ぼかしのサイズを変更する" -#: ../src/develop/masks/path.c:3451 +#: ../src/develop/masks/path.c:3367 msgid "[PATH] change opacity" msgstr "【パス】 不透明度を変更する" -#: ../src/develop/masks/path.c:3463 +#: ../src/develop/masks/path.c:3379 #, c-format msgid "path #%d" msgstr "パス#%d" -#: ../src/develop/masks/path.c:3473 +#: ../src/develop/masks/path.c:3389 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>cancel</b>: right-click" @@ -8966,7 +9305,7 @@ "ク\n" "<b>キャンセル</b>:右クリック" -#: ../src/develop/masks/path.c:3476 +#: ../src/develop/masks/path.c:3392 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>finish path</b>: right-click" @@ -8974,7 +9313,7 @@ "<b>ノードを追加</b>:クリック  <b>シャープノードを追加</b>:Ctrl+クリック\n" "<b>パスを閉じる</b>:右クリック" -#: ../src/develop/masks/path.c:3479 +#: ../src/develop/masks/path.c:3395 msgid "" "<b>move node</b>: drag, <b>remove node</b>: right-click\n" "<b>switch smooth/sharp mode</b>: ctrl+click" @@ -8982,7 +9321,7 @@ "<b>ノードを移動する</b>:ドラッグ  <b>ノードを削除する</b>:右クリック\n" "<b>スムーズノードとシャープノードを切り替える</b>:Ctrl+クリック" -#: ../src/develop/masks/path.c:3483 +#: ../src/develop/masks/path.c:3399 msgid "" "<b>node curvature</b>: drag\n" "<b>reset curvature</b>: right-click" @@ -8990,7 +9329,7 @@ "<b>ノードの曲率</b>:ドラッグ\n" "<b>曲率をリセットする</b>:右クリック" -#: ../src/develop/masks/path.c:3487 +#: ../src/develop/masks/path.c:3403 msgid "" "<b>move segment</b>: drag\n" "<b>add node</b>: ctrl+click" @@ -8998,13 +9337,13 @@ "<b>線分を移動する</b>:ドラッグ\n" "<b>ノードを追加する</b>:Ctrl+クリック" -#: ../src/develop/pixelpipe_hb.c:500 +#: ../src/develop/pixelpipe_hb.c:486 msgid "enabled as required" msgstr "必要なので無効化しました" # モジュールが履歴によって無効にされましたが、このタイプの画像では必ず有効にする必要があります。 # プリセット、スタイル、あるいは履歴のコピー&貼り付けを適用したことが原因であると考えられます -#: ../src/develop/pixelpipe_hb.c:501 +#: ../src/develop/pixelpipe_hb.c:487 msgid "" "history had module disabled but it is required for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -9014,13 +9353,13 @@ "プリセット、スタイル、あるいは履歴のコピー&貼り付けを適用したことが原因であ" "ると考えられます" -#: ../src/develop/pixelpipe_hb.c:508 +#: ../src/develop/pixelpipe_hb.c:494 msgid "disabled as not appropriate" msgstr "不適切なので無効化しました" # モジュールが履歴によって有効にされましたが、このタイプの画像では使用することが出来ません。 # プリセット、スタイル、あるいは履歴のコピー&貼り付けを適用したことが原因であると考えられます -#: ../src/develop/pixelpipe_hb.c:509 +#: ../src/develop/pixelpipe_hb.c:495 msgid "" "history had module enabled but it is not allowed for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -9030,15 +9369,27 @@ "プリセット、スタイル、あるいは履歴のコピー&貼り付けを適用したことが原因であ" "ると考えられます" -#: ../src/develop/pixelpipe_hb.c:2705 +#: ../src/develop/pixelpipe_hb.c:2697 msgid "" -"darktable discovered problems with your OpenCL setup; disabling OpenCL for " -"this session!" -msgstr "" -"darktableはOpenCLの設定に問題を発見しました\n" -"このセッションでは OpenCLを無効にします!" +"OpenCL errors encountered; disabling OpenCL for this session! some possible " +"causes:\n" +" - OpenCL out of resources due to preference settings. please try with " +"defaults,\n" +" - buggy driver for some device. please run darktable with `-d opencl' to " +"identify,\n" +" - some drivers don't support needed number of events,\n" +" - too small headroom settings while using 'use all device memory'." +msgstr "" +"OpenCLエラーがありました。このセッションではOpenCLが無効になります。幾つかの" +"原因が考えられます\n" +" - 設定を原因とするOpenCLリソース不足。デフォルト設定を試してください\n" +" - 何らかのデバイスのドライバのバグ。特定するためにコマンド`-d opencl'を加え" +"てdarktableを起動してください\n" +" - 何らかのドライバが必要なイベント数をサポートしていない\n" +" - '全てのデバイスメモリを使用する'を選択した場合、ヘッドルームの設定が小さ" +"すぎる" -#: ../src/develop/pixelpipe_hb.c:2853 +#: ../src/develop/pixelpipe_hb.c:2847 #, c-format msgid "" "module '%s' can't get raster mask from module\n" @@ -9049,30 +9400,32 @@ "後者がピクセルパイプ内の後段で処理されているためです\n" "ラスターマスクは無視されます" -#: ../src/develop/tiling.c:820 ../src/develop/tiling.c:1173 +#: ../src/develop/tiling.c:819 ../src/develop/tiling.c:1172 #, c-format -msgid "tiling failed for module '%s'. output might be garbled." +msgid "" +"tiling failed for module '%s'. the output most likely will be OK, but you " +"might want to check." msgstr "" -"モジュール'%s'のタイリングに失敗しました。出力が文字化けしている可能性があり" -"ます" +"モジュール'%s'のタイリングに失敗しました\n" +"出力は無事であると思われますが、確認したほうが良いかもしれません" -#: ../src/dtgtk/culling.c:254 +#: ../src/dtgtk/culling.c:223 msgid "you have reached the start of your selection" msgstr "選択した画像の先頭に達しました" -#: ../src/dtgtk/culling.c:263 +#: ../src/dtgtk/culling.c:232 msgid "you have reached the start of your collection" msgstr "コレクションの先頭に達しました" -#: ../src/dtgtk/culling.c:310 +#: ../src/dtgtk/culling.c:279 msgid "you have reached the end of your selection" msgstr "選択した画像の末尾に達しました" -#: ../src/dtgtk/culling.c:337 +#: ../src/dtgtk/culling.c:306 msgid "you have reached the end of your collection" msgstr "コレクションの末尾に達しました" -#: ../src/dtgtk/culling.c:446 +#: ../src/dtgtk/culling.c:415 #, c-format msgid "zooming is limited to %d images" msgstr "ズームは%d枚の画像に制限されています" @@ -9166,7 +9519,7 @@ msgid "fixed" msgstr "固定" -#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1493 +#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1498 msgid "relative" msgstr "相対値" @@ -9180,7 +9533,7 @@ msgstr "最小" #: ../src/dtgtk/range.c:630 ../src/dtgtk/range.c:1780 ../src/dtgtk/range.c:1831 -#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:282 +#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:309 msgid "max" msgstr "最大" @@ -9189,7 +9542,7 @@ msgstr "データタイプ" #. the date section -#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1505 msgid "date" msgstr "日付" @@ -9214,7 +9567,7 @@ msgstr "日:" #. the time section -#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1505 msgid "time" msgstr "時間" @@ -9232,8 +9585,8 @@ msgstr "常に現在の日時に一致する値を設定する" #. apply button -#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:162 -#: ../src/libs/metadata.c:901 ../src/libs/styles.c:897 +#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:180 +#: ../src/libs/metadata.c:735 ../src/libs/styles.c:901 msgid "apply" msgstr "適用" @@ -9267,45 +9620,45 @@ msgid "grouped images" msgstr "グループ化した画像" -#: ../src/dtgtk/thumbnail.c:820 ../src/dtgtk/thumbnail.c:1635 -#: ../src/iop/ashift.c:6191 ../src/iop/ashift.c:6280 ../src/iop/ashift.c:6282 -#: ../src/iop/ashift.c:6284 ../src/libs/navigation.c:110 -#: ../src/libs/navigation.c:190 +#: ../src/dtgtk/thumbnail.c:814 ../src/dtgtk/thumbnail.c:1623 +#: ../src/iop/ashift.c:6138 ../src/iop/ashift.c:6227 ../src/iop/ashift.c:6229 +#: ../src/iop/ashift.c:6231 ../src/libs/navigation.c:111 +#: ../src/libs/navigation.c:193 msgid "fit" msgstr "フィット" -#: ../src/dtgtk/thumbtable.c:1041 ../src/views/slideshow.c:421 +#: ../src/dtgtk/thumbtable.c:1139 ../src/views/slideshow.c:422 msgid "there are no images in this collection" msgstr "このコレクションには画像がありません" -#: ../src/dtgtk/thumbtable.c:1048 +#: ../src/dtgtk/thumbtable.c:1146 msgid "if you have not imported any images yet" msgstr "画像をまだ一枚もインポートしていない場合" -#: ../src/dtgtk/thumbtable.c:1052 +#: ../src/dtgtk/thumbtable.c:1150 msgid "you can do so in the import module" msgstr "インポートモジュールでも行うことが出来ます" -#: ../src/dtgtk/thumbtable.c:1061 +#: ../src/dtgtk/thumbtable.c:1159 msgid "try to relax the filter settings in the top panel" msgstr "上のパネルの絞り込み設定を緩和してみてください" -#: ../src/dtgtk/thumbtable.c:1072 +#: ../src/dtgtk/thumbtable.c:1170 msgid "or add images in the collections module in the left panel" msgstr "または、左側パネルのコレクションモジュールに画像を追加してください" -#: ../src/dtgtk/thumbtable.c:1338 +#: ../src/dtgtk/thumbtable.c:1455 msgid "" "you have changed the settings related to how thumbnails are generated.\n" msgstr "サムネイルの生成方法に関する設定を変更しました\n" -#: ../src/dtgtk/thumbtable.c:1341 +#: ../src/dtgtk/thumbtable.c:1458 msgid "" "all cached thumbnails need to be invalidated.\n" "\n" msgstr "キャッシュされたサムネイルを全て無効にする必要があります\n" -#: ../src/dtgtk/thumbtable.c:1345 +#: ../src/dtgtk/thumbtable.c:1462 #, c-format msgid "" "cached thumbnails starting from level %d need to be invalidated.\n" @@ -9313,7 +9666,7 @@ msgstr "" "レベル%dから始まるキャッシュされたサムネイルを無効にする必要があります\n" -#: ../src/dtgtk/thumbtable.c:1350 +#: ../src/dtgtk/thumbtable.c:1467 #, c-format msgid "" "cached thumbnails below level %d need to be invalidated.\n" @@ -9322,7 +9675,7 @@ "レベル%d以下のキャッシュされたサムネイルを無効にする必要があります\n" "\n" -#: ../src/dtgtk/thumbtable.c:1355 +#: ../src/dtgtk/thumbtable.c:1472 #, c-format msgid "" "cached thumbnails between level %d and %d need to be invalidated.\n" @@ -9332,48 +9685,48 @@ "す\n" "\n" -#: ../src/dtgtk/thumbtable.c:1358 +#: ../src/dtgtk/thumbtable.c:1475 msgid "do you want to do that now?" msgstr "今実行しますか?" -#: ../src/dtgtk/thumbtable.c:1360 +#: ../src/dtgtk/thumbtable.c:1477 msgid "cached thumbnails invalidation" msgstr "キャッシュされたサムネイルの無効化" #. setup history key accelerators -#: ../src/dtgtk/thumbtable.c:2561 +#: ../src/dtgtk/thumbtable.c:2738 msgid "copy history" msgstr "履歴をコピー" -#: ../src/dtgtk/thumbtable.c:2563 +#: ../src/dtgtk/thumbtable.c:2740 msgid "copy history parts" msgstr "履歴の部分をコピー" -#: ../src/dtgtk/thumbtable.c:2565 +#: ../src/dtgtk/thumbtable.c:2742 msgid "paste history" msgstr "履歴を貼り付け" -#: ../src/dtgtk/thumbtable.c:2567 +#: ../src/dtgtk/thumbtable.c:2744 msgid "paste history parts" msgstr "履歴の部分を貼り付け" -#: ../src/dtgtk/thumbtable.c:2569 ../src/libs/copy_history.c:394 +#: ../src/dtgtk/thumbtable.c:2746 ../src/libs/copy_history.c:394 msgid "discard history" msgstr "履歴を破棄" -#: ../src/dtgtk/thumbtable.c:2572 +#: ../src/dtgtk/thumbtable.c:2749 msgid "duplicate image" msgstr "画像を複製" -#: ../src/dtgtk/thumbtable.c:2574 +#: ../src/dtgtk/thumbtable.c:2751 msgid "duplicate image virgin" msgstr "未編集画像を複製" -#: ../src/dtgtk/thumbtable.c:2584 ../src/libs/select.c:147 +#: ../src/dtgtk/thumbtable.c:2761 ../src/libs/select.c:148 msgid "select film roll" msgstr "フィルムロールを選択" -#: ../src/dtgtk/thumbtable.c:2586 ../src/libs/select.c:151 +#: ../src/dtgtk/thumbtable.c:2763 ../src/libs/select.c:152 msgid "select untouched" msgstr "未編集画像を選択" @@ -9441,265 +9794,296 @@ msgid "creating complete lighttable thumbnail cache\n" msgstr "完全なライトテーブルサムネイルを作成します\n" -#: ../src/gui/accelerators.c:61 -msgid "active view" +#: ../src/gui/about.c:34 +#, c-format +msgid "copyright (c) the authors 2009-%s" +msgstr "copyright (c) the authors 2009-%s" + +#: ../src/gui/about.c:39 +msgid "organize and develop images from digital cameras" +msgstr "デジタルカメラで撮影した画像を整理し現像します" + +#: ../src/gui/about.c:51 +msgid "all those of you that made previous releases possible" +msgstr "これまでのリリースを可能にした全ての人たち" + +#: ../src/gui/about.c:56 +msgid "and..." +msgstr "そして..." + +#: ../src/gui/about.c:59 +msgid "translator-credits" +msgstr "翻訳者クレジット" + +#: ../src/gui/accelerators.c:72 +msgid "in active view" msgstr "アクティブなビュー" -#: ../src/gui/accelerators.c:62 -msgid "other views" +#: ../src/gui/accelerators.c:73 +msgid "in other views" msgstr "他のビュー" -#: ../src/gui/accelerators.c:63 +#: ../src/gui/accelerators.c:74 msgid "fallbacks" msgstr "フォールバック" -#: ../src/gui/accelerators.c:64 ../src/gui/accelerators.c:722 -#: ../src/gui/accelerators.c:2607 ../src/gui/accelerators.c:3470 -msgid "speed" -msgstr "速度" +#: ../src/gui/accelerators.c:75 +msgid "speed adjustments" +msgstr "速度調整" + +#: ../src/gui/accelerators.c:76 +msgid "disabled defaults" +msgstr "無効にされたデフォルト" -#: ../src/gui/accelerators.c:80 ../src/views/view.c:1202 +#: ../src/gui/accelerators.c:96 ../src/views/view.c:1361 msgid "scroll" msgstr "スクロール" -#: ../src/gui/accelerators.c:81 +#: ../src/gui/accelerators.c:97 msgid "pan" msgstr "パン" -#: ../src/gui/accelerators.c:82 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6283 ../src/iop/clipping.c:1902 -#: ../src/iop/clipping.c:2094 ../src/iop/clipping.c:2110 -#: ../src/views/darkroom.c:2676 ../src/views/lighttable.c:1250 +#: ../src/gui/accelerators.c:98 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6230 ../src/iop/clipping.c:1955 +#: ../src/iop/clipping.c:2147 ../src/iop/clipping.c:2163 +#: ../src/views/darkroom.c:2522 ../src/views/lighttable.c:1250 msgid "horizontal" msgstr "水平" -#: ../src/gui/accelerators.c:83 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6281 ../src/iop/clipping.c:1901 -#: ../src/iop/clipping.c:2095 ../src/iop/clipping.c:2109 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:1254 +#: ../src/gui/accelerators.c:99 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6228 ../src/iop/clipping.c:1954 +#: ../src/iop/clipping.c:2148 ../src/iop/clipping.c:2162 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:1254 msgid "vertical" msgstr "垂直" -#: ../src/gui/accelerators.c:84 +#: ../src/gui/accelerators.c:100 msgid "diagonal" msgstr "対角線" -#: ../src/gui/accelerators.c:86 +#: ../src/gui/accelerators.c:102 msgid "leftright" msgstr "左右" -#: ../src/gui/accelerators.c:87 +#: ../src/gui/accelerators.c:103 msgid "updown" msgstr "上下" -#: ../src/gui/accelerators.c:88 +#: ../src/gui/accelerators.c:104 msgid "pgupdown" msgstr "PgUpDown" -#: ../src/gui/accelerators.c:96 ../src/views/view.c:1186 +#: ../src/gui/accelerators.c:112 ../src/views/view.c:1343 msgid "shift" msgstr "シフト" -#: ../src/gui/accelerators.c:97 ../src/views/view.c:1187 +#: ../src/gui/accelerators.c:113 ../src/views/view.c:1345 msgid "ctrl" msgstr "Ctrl" -#: ../src/gui/accelerators.c:98 ../src/views/view.c:1188 +#: ../src/gui/accelerators.c:114 ../src/views/view.c:1347 msgid "alt" msgstr "Alt" -#: ../src/gui/accelerators.c:99 +#: ../src/gui/accelerators.c:115 msgid "cmd" msgstr "cmd" -#: ../src/gui/accelerators.c:100 +#: ../src/gui/accelerators.c:116 msgid "altgr" msgstr "altgr" -#: ../src/gui/accelerators.c:109 ../src/gui/accelerators.c:156 -#: ../src/libs/tagging.c:1782 +#: ../src/gui/accelerators.c:127 ../src/gui/accelerators.c:174 +#: ../src/libs/tagging.c:1804 msgid "edit" msgstr "編集" -#: ../src/gui/accelerators.c:110 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "up" msgstr "上" -#: ../src/gui/accelerators.c:111 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:129 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "down" msgstr "下" -#: ../src/gui/accelerators.c:115 +#: ../src/gui/accelerators.c:133 msgid "set" msgstr "設定" -#: ../src/gui/accelerators.c:119 +#: ../src/gui/accelerators.c:137 msgid "popup" msgstr "ポップアップ" -#: ../src/gui/accelerators.c:120 ../src/gui/accelerators.c:153 -#: ../src/gui/gtk.c:3054 ../src/views/lighttable.c:760 +#: ../src/gui/accelerators.c:138 ../src/gui/accelerators.c:171 +#: ../src/gui/gtk.c:3100 ../src/views/lighttable.c:760 msgid "next" msgstr "次" -#: ../src/gui/accelerators.c:121 ../src/gui/accelerators.c:152 -#: ../src/gui/gtk.c:3055 ../src/views/lighttable.c:761 +#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:170 +#: ../src/gui/gtk.c:3101 ../src/views/lighttable.c:761 msgid "previous" msgstr "以前" -#: ../src/gui/accelerators.c:123 ../src/gui/accelerators.c:1462 +#: ../src/gui/accelerators.c:141 ../src/gui/accelerators.c:1598 msgid "last" msgstr "最後" -#: ../src/gui/accelerators.c:124 ../src/gui/accelerators.c:1461 +#: ../src/gui/accelerators.c:142 ../src/gui/accelerators.c:1597 msgid "first" msgstr "最初" -#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:141 -#: ../src/gui/accelerators.c:314 ../src/libs/filters/rating_range.c:268 -#: ../src/libs/tagging.c:3119 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2419 ../src/views/darkroom.c:2648 +#: ../src/gui/accelerators.c:146 ../src/gui/accelerators.c:159 +#: ../src/gui/accelerators.c:356 ../src/libs/filters/rating_range.c:295 +#: ../src/libs/tagging.c:3150 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2258 ../src/views/darkroom.c:2494 msgid "toggle" msgstr "切り替え" -#: ../src/gui/accelerators.c:131 +#: ../src/gui/accelerators.c:149 msgid "ctrl-toggle" msgstr "Ctrl - 切り替え" -#: ../src/gui/accelerators.c:132 +#: ../src/gui/accelerators.c:150 msgid "ctrl-on" msgstr "Ctrl - オン" -#: ../src/gui/accelerators.c:133 +#: ../src/gui/accelerators.c:151 msgid "right-toggle" msgstr "右 - 切り替え" -#: ../src/gui/accelerators.c:134 +#: ../src/gui/accelerators.c:152 msgid "right-on" msgstr "右 - オン" -#: ../src/gui/accelerators.c:145 ../src/gui/gtk.c:3053 +#: ../src/gui/accelerators.c:163 ../src/gui/gtk.c:3099 msgid "activate" msgstr "有効化" -#: ../src/gui/accelerators.c:146 +#: ../src/gui/accelerators.c:164 msgid "ctrl-activate" msgstr "Ctrl - 有効化" -#: ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:165 msgid "right-activate" msgstr "右 - 有効化" -#: ../src/gui/accelerators.c:154 +#: ../src/gui/accelerators.c:172 msgid "store" msgstr "保存" -#: ../src/gui/accelerators.c:157 ../src/gui/styles_dialog.c:639 +#: ../src/gui/accelerators.c:175 ../src/gui/styles_dialog.c:651 msgid "update" msgstr "更新" -#: ../src/gui/accelerators.c:158 ../src/libs/tools/global_toolbox.c:60 +#: ../src/gui/accelerators.c:176 ../src/libs/tools/global_toolbox.c:60 #: ../src/libs/tools/global_toolbox.c:510 msgid "preferences" msgstr "設定" -#: ../src/gui/accelerators.c:163 +#: ../src/gui/accelerators.c:181 msgid "apply on new instance" msgstr "新しいインスタンスに適用する" -#: ../src/gui/accelerators.c:168 +#: ../src/gui/accelerators.c:186 msgid "start" msgstr "開始" -#: ../src/gui/accelerators.c:169 +#: ../src/gui/accelerators.c:187 msgid "end" msgstr "終了" -#: ../src/gui/accelerators.c:332 +#: ../src/gui/accelerators.c:374 msgid "entry" msgstr "入力" -#: ../src/gui/accelerators.c:409 +#: ../src/gui/accelerators.c:450 msgid "combo effect not found" msgstr "コンボエフェクトが見つかりません" -#: ../src/gui/accelerators.c:578 +#: ../src/gui/accelerators.c:627 msgid "(keypad)" msgstr "(キーパッド)" -#: ../src/gui/accelerators.c:587 +#: ../src/gui/accelerators.c:636 msgid "tablet button" msgstr "タブレットのボタン" -#: ../src/gui/accelerators.c:596 +#: ../src/gui/accelerators.c:645 msgid "unknown driver" msgstr "不明なドライバ" -#: ../src/gui/accelerators.c:663 +#: ../src/gui/accelerators.c:718 msgid "long" msgstr "長押し" -#: ../src/gui/accelerators.c:664 +#: ../src/gui/accelerators.c:719 msgid "double-press" msgstr "2回押す" -#: ../src/gui/accelerators.c:665 +#: ../src/gui/accelerators.c:720 msgid "triple-press" msgstr "3回押す" -#: ../src/gui/accelerators.c:666 +#: ../src/gui/accelerators.c:721 msgid "press" msgstr "押す" -#: ../src/gui/accelerators.c:670 +#: ../src/gui/accelerators.c:725 msgctxt "accel" msgid "left" msgstr "左" -#: ../src/gui/accelerators.c:671 +#: ../src/gui/accelerators.c:726 msgctxt "accel" msgid "right" msgstr "右" -#: ../src/gui/accelerators.c:672 +#: ../src/gui/accelerators.c:727 msgctxt "accel" msgid "middle" msgstr "中央" -#: ../src/gui/accelerators.c:673 +#: ../src/gui/accelerators.c:728 msgctxt "accel" msgid "long" msgstr "長押し" -#: ../src/gui/accelerators.c:674 +#: ../src/gui/accelerators.c:729 msgctxt "accel" msgid "double-click" msgstr "ダブルクリック" -#: ../src/gui/accelerators.c:675 +#: ../src/gui/accelerators.c:730 msgctxt "accel" msgid "triple-click" msgstr "トリプルクリック" -#: ../src/gui/accelerators.c:676 +#: ../src/gui/accelerators.c:731 msgid "click" msgstr "クリック" -#: ../src/gui/accelerators.c:704 +#: ../src/gui/accelerators.c:759 msgid "first instance" msgstr "最初のインスタンス" -#: ../src/gui/accelerators.c:706 +#: ../src/gui/accelerators.c:761 msgid "last instance" msgstr "最後のインスタンス" -#: ../src/gui/accelerators.c:708 +#: ../src/gui/accelerators.c:763 msgid "relative instance" msgstr "関連するインスタンス" -#: ../src/gui/accelerators.c:867 +#: ../src/gui/accelerators.c:780 ../src/gui/accelerators.c:2864 +#: ../src/gui/accelerators.c:3811 +msgid "speed" +msgstr "速度" + +#: ../src/gui/accelerators.c:923 #, c-format msgid "" "Lua script command copied to clipboard:\n" @@ -9710,11 +10094,11 @@ "\n" "<tt>%s</tt>" -#: ../src/gui/accelerators.c:965 ../src/gui/accelerators.c:978 +#: ../src/gui/accelerators.c:1025 ../src/gui/accelerators.c:1044 msgid "start typing for incremental search" msgstr "文字を入力すると、インクリメンタルサーチを行います" -#: ../src/gui/accelerators.c:966 +#: ../src/gui/accelerators.c:1028 msgid "" "\n" "press Delete to delete selected shortcut" @@ -9722,7 +10106,23 @@ "\n" "Deleteキーを押すと、選択したショートカットを削除します" -#: ../src/gui/accelerators.c:968 +#: ../src/gui/accelerators.c:1030 +msgid "" +"\n" +"press Delete to disable selected default shortcut" +msgstr "" +"\n" +"Deleteキーを押すと、選択したデフォルトショートカットを削除します" + +#: ../src/gui/accelerators.c:1031 +msgid "" +"\n" +"press Delete to restore selected default shortcut" +msgstr "" +"\n" +"Deleteキーを押すと、選択したデフォルトショートカットを削除します" + +#: ../src/gui/accelerators.c:1033 msgid "" "\n" "double-click to add new shortcut" @@ -9730,11 +10130,11 @@ "\n" "ダブルクリックすると、新しいショートカットを追加します" -#: ../src/gui/accelerators.c:979 +#: ../src/gui/accelerators.c:1045 msgid "click to filter shortcuts list" msgstr "クリックすると、ショートカットのリストを絞り込みます" -#: ../src/gui/accelerators.c:981 +#: ../src/gui/accelerators.c:1047 msgid "" "\n" "right click to show action of selected shortcut" @@ -9742,7 +10142,7 @@ "\n" "右クリックすると、選択したショートカットのアクションを表示します" -#: ../src/gui/accelerators.c:984 +#: ../src/gui/accelerators.c:1050 msgid "" "\n" "double-click to define new shortcut" @@ -9750,11 +10150,11 @@ "\n" "ダブルクリックすると、新しいショートカットを定義します" -#: ../src/gui/accelerators.c:1015 +#: ../src/gui/accelerators.c:1081 msgid "shift+alt+scroll to change height" msgstr "Shift+Alt+スクロールで高さを変更します" -#: ../src/gui/accelerators.c:1035 +#: ../src/gui/accelerators.c:1101 msgid "" "press keys with mouse click and scroll or move combinations to create a " "shortcut" @@ -9762,27 +10162,27 @@ "キーを押しながら、マウスのクリック、スクロール、移動を組み合わせてショート" "カットを作成する" -#: ../src/gui/accelerators.c:1036 +#: ../src/gui/accelerators.c:1102 msgid "click to open shortcut configuration" msgstr "クリックすると、ショートカットの設定を開きます" -#: ../src/gui/accelerators.c:1037 +#: ../src/gui/accelerators.c:1103 msgid "ctrl+click to add to quick access panel\n" msgstr "Ctrl +クリックすると、クイックアクセスパネルに追加します\n" -#: ../src/gui/accelerators.c:1038 +#: ../src/gui/accelerators.c:1104 msgid "ctrl+click to remove from quick access panel\n" msgstr "Ctrl +クリックすると、クイックアクセスパネルから削除します\n" -#: ../src/gui/accelerators.c:1039 +#: ../src/gui/accelerators.c:1105 msgid "scroll to change default speed" msgstr "スクロールすると、デフォルトの速度を変更します" -#: ../src/gui/accelerators.c:1040 +#: ../src/gui/accelerators.c:1106 msgid "right click to exit mapping mode" msgstr "右クリックすると、割り当てモードを終了します" -#: ../src/gui/accelerators.c:1051 +#: ../src/gui/accelerators.c:1119 #, c-format msgid "" "%sright-click to type a specific value between <b>%s</b> and <b>%s</b>\n" @@ -9792,77 +10192,92 @@ "または、ソフトリミットを無視するには、CtrllとShiftを押しながらドラッグしてく" "ださい" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "ctrl+v" msgstr "Ctrl+v" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "right long click" msgstr "右クリック長押し" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "to copy Lua command" msgstr "Luaコマンドをコピー" -#: ../src/gui/accelerators.c:1344 +#: ../src/gui/accelerators.c:1451 msgid "shortcut for move exists with single effect" msgstr "" "このマウスの移動によるショートカットは一つの効果を割り当てられて存在していま" "す" -#: ../src/gui/accelerators.c:1345 +#: ../src/gui/accelerators.c:1452 +#, c-format +msgid "" +"%s\n" +"\n" +"(assign %s to %s)" +msgstr "" +"%s\n" +"\n" +"(%sを%sに割り当てる)" + +#: ../src/gui/accelerators.c:1453 msgid "create separate shortcuts for up and down move?" msgstr "" "マウスの上および下への移動に対してそれぞれ別のショートカットを作成しますか?" -#: ../src/gui/accelerators.c:1368 +#: ../src/gui/accelerators.c:1479 #, c-format msgid "%s, speed reset" msgstr "%s, 速度のリセット" -#: ../src/gui/accelerators.c:1377 +#: ../src/gui/accelerators.c:1497 msgid "shortcut exists with different settings" msgstr "このショートカットは異なる設定で既に存在しています" -#: ../src/gui/accelerators.c:1378 +#: ../src/gui/accelerators.c:1498 msgid "reset the settings of the shortcut?" msgstr "このショートカットへのその設定をリセットしますか?" -#: ../src/gui/accelerators.c:1389 +#: ../src/gui/accelerators.c:1507 msgid "shortcut already exists" msgstr "ショートカットが既に存在しています" -#: ../src/gui/accelerators.c:1390 +#: ../src/gui/accelerators.c:1509 +msgid "disable this default shortcut?" +msgstr "このデフォルトショートカットを無効にしますか?" + +#: ../src/gui/accelerators.c:1510 msgid "remove the shortcut?" msgstr "そのショートカットを削除しますか?" -#: ../src/gui/accelerators.c:1423 +#: ../src/gui/accelerators.c:1550 msgid "clashing shortcuts exist" msgstr "相反するショートカットが存在しています" -#: ../src/gui/accelerators.c:1424 +#: ../src/gui/accelerators.c:1551 msgid "remove these existing shortcuts?" msgstr "これら既存のショートカットを削除しますか?" #. or 3, but change char relative[] = "-2" to "-1" #. NUM_INSTANCES -#: ../src/gui/accelerators.c:1460 +#: ../src/gui/accelerators.c:1596 msgid "preferred" msgstr "優先" -#: ../src/gui/accelerators.c:1463 +#: ../src/gui/accelerators.c:1599 msgid "second" msgstr "二番目に優先" -#: ../src/gui/accelerators.c:1464 +#: ../src/gui/accelerators.c:1600 msgid "last but one" msgstr "最後から二番目" -#: ../src/gui/accelerators.c:1610 ../src/gui/accelerators.c:1670 +#: ../src/gui/accelerators.c:1761 ../src/gui/accelerators.c:1826 msgid "(unchanged)" msgstr "(変更なし)" -#: ../src/gui/accelerators.c:1776 +#: ../src/gui/accelerators.c:1941 msgid "" "define a shortcut by pressing a key, optionally combined with modifier keys " "(ctrl/shift/alt)\n" @@ -9887,39 +10302,47 @@ "\n" "右クリックすると、キャンセルします" -#: ../src/gui/accelerators.c:1847 +#: ../src/gui/accelerators.c:2014 msgid "removing shortcut" msgstr "ショートカットを削除しています" -#: ../src/gui/accelerators.c:1848 +#: ../src/gui/accelerators.c:2016 +msgid "disable the selected default shortcut?" +msgstr "選択したデフォルトショートカットを無効にしますか?" + +#: ../src/gui/accelerators.c:2017 +msgid "restore the selected default shortcut?" +msgstr "選択したデフォルトショートカットを復元しますか?" + +#: ../src/gui/accelerators.c:2018 msgid "remove the selected shortcut?" msgstr "選択したショートカットを削除しますか?" -#: ../src/gui/accelerators.c:1938 +#: ../src/gui/accelerators.c:2107 msgid "command" msgstr "コマンド" -#: ../src/gui/accelerators.c:1939 +#: ../src/gui/accelerators.c:2108 msgid "preset" msgstr "プリセット" -#: ../src/gui/accelerators.c:2272 +#: ../src/gui/accelerators.c:2491 msgid "restore shortcuts" msgstr "ショートカットを復元します" -#: ../src/gui/accelerators.c:2275 +#: ../src/gui/accelerators.c:2494 msgid "_defaults" msgstr "_デフォルト" -#: ../src/gui/accelerators.c:2276 +#: ../src/gui/accelerators.c:2495 msgid "_startup" msgstr "_起動" -#: ../src/gui/accelerators.c:2277 +#: ../src/gui/accelerators.c:2496 msgid "_edits" msgstr "_編集" -#: ../src/gui/accelerators.c:2283 +#: ../src/gui/accelerators.c:2503 msgid "" "restore shortcuts from one of these states:\n" " - default\n" @@ -9931,7 +10354,7 @@ "- 起動時\n" "- このダイアログを開いた時\n" -#: ../src/gui/accelerators.c:2289 +#: ../src/gui/accelerators.c:2510 msgid "" "clear all newer shortcuts\n" "(instead of just restoring changed ones)" @@ -9939,22 +10362,17 @@ "新しく作成されたショートカットを全て削除します\n" "(変更されたショートカットだけを復元するのではなく)" -#: ../src/gui/accelerators.c:2344 ../src/gui/preferences.c:906 +#: ../src/gui/accelerators.c:2567 ../src/gui/preferences.c:905 #: ../src/libs/tools/global_toolbox.c:494 -#: ../src/libs/tools/global_toolbox.c:645 +#: ../src/libs/tools/global_toolbox.c:652 msgid "shortcuts" msgstr "ショートカット" -#: ../src/gui/accelerators.c:2353 +#: ../src/gui/accelerators.c:2577 msgid "export shortcuts" msgstr "ショートカットをエクスポートします" -#: ../src/gui/accelerators.c:2356 ../src/gui/accelerators.c:2436 -#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:564 -msgid "_ok" -msgstr "_ok" - -#: ../src/gui/accelerators.c:2361 +#: ../src/gui/accelerators.c:2586 msgid "" "export all shortcuts to a file\n" "or just for one selected device\n" @@ -9962,27 +10380,27 @@ "全てのショートカットをファイルにエクスポートします\n" "または、選択されたデバイス用のショートカットのみをエクスポートします\n" -#: ../src/gui/accelerators.c:2368 ../src/gui/accelerators.c:2448 +#: ../src/gui/accelerators.c:2593 ../src/gui/accelerators.c:2675 msgid "keyboard" msgstr "キーボード" -#: ../src/gui/accelerators.c:2380 +#: ../src/gui/accelerators.c:2605 msgid "device id" msgstr "デバイスID" -#: ../src/gui/accelerators.c:2406 +#: ../src/gui/accelerators.c:2631 msgid "select file to export" msgstr "エクスポートするファイルを選択してください" -#: ../src/gui/accelerators.c:2407 ../src/libs/tagging.c:2525 +#: ../src/gui/accelerators.c:2632 ../src/libs/tagging.c:2556 msgid "_export" msgstr "_エクスポート" -#: ../src/gui/accelerators.c:2433 +#: ../src/gui/accelerators.c:2659 msgid "import shortcuts" msgstr "ショートカットをインポートします" -#: ../src/gui/accelerators.c:2441 +#: ../src/gui/accelerators.c:2668 msgid "" "import all shortcuts from a file\n" "or just for one selected device\n" @@ -9990,31 +10408,31 @@ "全てのショートカットをファイルからインポートします\n" "または、選択されたデバイス用のショートカットのみをインポートします\n" -#: ../src/gui/accelerators.c:2460 +#: ../src/gui/accelerators.c:2687 msgid "id in file" msgstr "ファイル内のID" -#: ../src/gui/accelerators.c:2466 +#: ../src/gui/accelerators.c:2693 msgid "id when loaded" msgstr "読み取られた時のID" -#: ../src/gui/accelerators.c:2470 +#: ../src/gui/accelerators.c:2697 msgid "clear device first" msgstr "読み込み前にデバイスを消去" -#: ../src/gui/accelerators.c:2494 +#: ../src/gui/accelerators.c:2722 msgid "select file to import" msgstr "インポートするファイルを選択してください" -#: ../src/gui/accelerators.c:2495 ../src/libs/tagging.c:2489 +#: ../src/gui/accelerators.c:2723 ../src/libs/tagging.c:2520 msgid "_import" msgstr "_インポート" -#: ../src/gui/accelerators.c:2568 +#: ../src/gui/accelerators.c:2815 msgid "search shortcuts list" msgstr "ショートカットのリストを検索" -#: ../src/gui/accelerators.c:2569 +#: ../src/gui/accelerators.c:2817 msgid "" "incrementally search the list of shortcuts\n" "press up or down keys to cycle through matches" @@ -10022,29 +10440,28 @@ "ショートカットのリストをインクリメンタルサーチします\n" "上キーまたは下キーを押すと、マッチした項目を移動します" -#. Setting up the cell renderers -#: ../src/gui/accelerators.c:2583 ../src/views/view.c:1383 +#: ../src/gui/accelerators.c:2837 ../src/views/view.c:1554 msgid "shortcut" msgstr "ショートカット" -#: ../src/gui/accelerators.c:2585 ../src/gui/accelerators.c:2676 -#: ../src/views/view.c:1385 +#: ../src/gui/accelerators.c:2840 ../src/gui/accelerators.c:2942 +#: ../src/views/view.c:1556 msgid "action" msgstr "アクション" -#: ../src/gui/accelerators.c:2594 +#: ../src/gui/accelerators.c:2850 msgid "element" msgstr "要素" -#: ../src/gui/accelerators.c:2601 +#: ../src/gui/accelerators.c:2858 msgid "effect" msgstr "効果" -#: ../src/gui/accelerators.c:2658 +#: ../src/gui/accelerators.c:2918 msgid "search actions list" msgstr "アクションのリストを検索" -#: ../src/gui/accelerators.c:2659 +#: ../src/gui/accelerators.c:2920 msgid "" "incrementally search the list of actions\n" "press up or down keys to cycle through matches" @@ -10052,16 +10469,16 @@ "アクションのリストをインクリメンタルサーチします\n" "上キーまたは下キーを押すと、マッチした項目を移動します" -#: ../src/gui/accelerators.c:2682 ../src/gui/guides.c:719 -#: ../src/libs/export_metadata.c:192 +#: ../src/gui/accelerators.c:2950 ../src/gui/guides.c:719 +#: ../src/libs/export_metadata.c:179 msgid "type" msgstr "タイプ" -#: ../src/gui/accelerators.c:2717 +#: ../src/gui/accelerators.c:2988 msgid "enable fallbacks" msgstr "フォールバックを有効にする" -#: ../src/gui/accelerators.c:2718 +#: ../src/gui/accelerators.c:2989 msgid "" "enables default meanings for additional buttons, modifiers or moves\n" "when used in combination with a base shortcut" @@ -10069,67 +10486,111 @@ "追加されたボタン、修飾キーあるいはマウスの移動がベースとなるショートカットと" "組み合わせて使用された時、デフォルト設定の意味を有効にします" -#: ../src/gui/accelerators.c:2725 +#: ../src/gui/accelerators.c:2997 msgid "open help page for shortcuts" msgstr "ショートカットについてのヘルプページを開きます" -#: ../src/gui/accelerators.c:2730 +#: ../src/gui/accelerators.c:3002 msgid "restore..." msgstr "復元..." -#: ../src/gui/accelerators.c:2731 +#: ../src/gui/accelerators.c:3003 msgid "restore default shortcuts or previous state" msgstr "ショートカットのデフォルト設定または以前の状態を復元します" -#: ../src/gui/accelerators.c:2735 ../src/libs/styles.c:883 -#: ../src/libs/tagging.c:3251 +#: ../src/gui/accelerators.c:3007 ../src/libs/styles.c:887 +#: ../src/libs/tagging.c:3282 msgid "import..." msgstr "インポート..." -#: ../src/gui/accelerators.c:2736 +#: ../src/gui/accelerators.c:3008 msgid "fully or partially import shortcuts from file" msgstr "ショートカットの全てまたは一部をファイルからインポートします" -#: ../src/gui/accelerators.c:2740 ../src/libs/styles.c:890 -#: ../src/libs/tagging.c:3254 +#: ../src/gui/accelerators.c:3012 ../src/libs/styles.c:894 +#: ../src/libs/tagging.c:3285 msgid "export..." msgstr "エクスポート..." -#: ../src/gui/accelerators.c:2741 +#: ../src/gui/accelerators.c:3013 msgid "fully or partially export shortcuts to file" msgstr "ショートカットの全てまたは一部をファイルにエクスポートします" -#: ../src/gui/accelerators.c:3139 +#: ../src/gui/accelerators.c:3021 +msgid "" +"the recommended way to assign shortcuts to visual elements is the <b>visual " +"shortcut mapping</b> mode.\n" +"this is switched on by toggling the <i>\"keyboard\"</i> button next to " +"preferences in the top panel. in this mode, clicking on a widget or area " +"will open this dialog with the appropriate selection for advanced " +"configuration.\n" +"\n" +"multiple shortcuts can be assigned to the same action. this is especially " +"useful if it has multiple <i>elements</i>, like the module buttons or the " +"colorpickers attached to sliders. however, with <i>fallbacks</i> enabled one " +"can use the same simple shortcuts and change their <i>element</i> or " +"<i>effect</i> by adding mouse clicks.\n" +"\n" +"<i>click <b> three times </b> to dismiss this notice permanently</i>" +msgstr "" +"可視の要素へのショートカットの割当には<b>ビジュアルショートカットマッピング</" +"b>モードが推奨されます\n" +"これは上部パネル内の設定ボタンの隣りにある<i>キーボード</i>ボタンによってオン" +"オフ切り替えすることが出来ます。\n" +"このモードでは、ウィジェットや領域上でクリックすることで、このダイアログが詳" +"細な設定をするために適切な選択をしたうえで開かれます\n" +"\n" +"同一のアクションに複数のショートカットを割り当てることがdきます。これは、モ" +"ジュールボタンやスライダーに付随するカラーピッカーのような複数の<i>要素</i>が" +"ある場合特に有用ですが、 <i>フォールバック</i>を有効にすることで、それと同じ" +"単純なショートカットを使用しつつ、マウスクリックを加えることで<i>要素</i>また" +"は<i>効果</i>を変更することが出来ます\n" +"\n" +"<i><b>3回</b>クリックするとこの通知を消すことが出来ます</i>" + +#: ../src/gui/accelerators.c:3452 msgid "reinitialising input devices" msgstr "インプットデバイスを再初期化" -#: ../src/gui/accelerators.c:3342 +#: ../src/gui/accelerators.c:3594 +msgid "down move" +msgstr "下へ移動" + +#: ../src/gui/accelerators.c:3594 +msgid "flip top/bottom first/last" +msgstr "上/下、最初/最後を入れ替え" + +#: ../src/gui/accelerators.c:3679 msgid "fallback to move" msgstr "フォールバックして移動する" -#: ../src/gui/accelerators.c:3578 +#: ../src/gui/accelerators.c:3921 #, c-format msgid "%s not assigned" msgstr "%sは割り当てられていません" -#: ../src/gui/accelerators.c:3751 +#: ../src/gui/accelerators.c:4102 #, c-format msgid "%s assigned to %s" msgstr "%sは%sに割り当てられています" -#: ../src/gui/gtk.c:173 ../src/views/darkroom.c:4650 +#: ../src/gui/accelerators.c:4321 +msgid "short key press resets stuck keys" +msgstr "キーを短く押すとキー押し固定をリセットします" + +#: ../src/gui/gtk.c:175 ../src/views/darkroom.c:3861 msgid "darktable - darkroom preview" msgstr "darktable - ダークルームプレビュー" -#: ../src/gui/gtk.c:184 +#: ../src/gui/gtk.c:186 msgid "tooltips off" msgstr "ツールチップオフ" -#: ../src/gui/gtk.c:186 +#: ../src/gui/gtk.c:188 msgid "tooltips on" msgstr "ツールチップオン" -#: ../src/gui/gtk.c:191 +#: ../src/gui/gtk.c:193 msgid "" "tooltip visibility can only be toggled if compositing is enabled in your " "window manager" @@ -10137,184 +10598,217 @@ "ツールチップの表示を切り替えることができるのは、ウィンドウマネージャーでコン" "ポジットが有効になっている場合のみです" -#: ../src/gui/gtk.c:814 +#: ../src/gui/gtk.c:809 msgid "closing darktable..." msgstr "darktableを閉じています..." -#: ../src/gui/gtk.c:1135 +#: ../src/gui/gtk.c:1032 +msgid "URL opened in web browser" +msgstr "ウェブブラウザ開いているURL" + +#: ../src/gui/gtk.c:1036 +msgid "error while opening URL in web browser" +msgstr "ウェブブラウザでURLを開く際にエラーが発生しました" + +#. View menu +#: ../src/gui/gtk.c:1104 +msgctxt "menu" +msgid "Views" +msgstr "ビュー" + +#: ../src/gui/gtk.c:1108 +msgctxt "menu" +msgid "lighttable" +msgstr "ライトテーブル" + +#: ../src/gui/gtk.c:1109 +msgctxt "menu" +msgid "darkroom" +msgstr "ダークルーム" + +#: ../src/gui/gtk.c:1115 +msgctxt "menu" +msgid "slideshow" +msgstr "スライドショー" + +#: ../src/gui/gtk.c:1117 +msgctxt "menu" +msgid "map" +msgstr "マップ" + +#: ../src/gui/gtk.c:1119 +msgctxt "menu" +msgid "print" +msgstr "印刷" + +#: ../src/gui/gtk.c:1121 +msgctxt "menu" +msgid "tethering" +msgstr "テザリング" + +#. Help menu +#: ../src/gui/gtk.c:1127 +msgctxt "menu" +msgid "Help" +msgstr "ヘルプ" + +#: ../src/gui/gtk.c:1131 +msgctxt "menu" +msgid "darktable Manual" +msgstr "darktableマニュアル" + +#: ../src/gui/gtk.c:1138 +msgctxt "menu" +msgid "darktable Homepage" +msgstr "darktableホームページ" + +#: ../src/gui/gtk.c:1162 +msgctxt "menu" +msgid "Preferences" +msgstr "設定" + +#: ../src/gui/gtk.c:1232 msgid "panels" msgstr "パネル" -#. an action that does nothing - used for overriding/removing default shortcuts -#: ../src/gui/gtk.c:1184 -msgid "no-op" -msgstr "何もしない" - -#: ../src/gui/gtk.c:1186 +#: ../src/gui/gtk.c:1264 msgid "switch views" msgstr "表示を切り替え" -#: ../src/gui/gtk.c:1187 ../src/views/tethering.c:102 +#: ../src/gui/gtk.c:1265 ../src/views/tethering.c:102 msgid "tethering" msgstr "テザリング" -#: ../src/gui/gtk.c:1188 ../src/gui/preferences.c:531 -#: ../src/gui/preferences.c:542 ../src/libs/tools/lighttable.c:66 -#: ../src/views/lighttable.c:91 -msgid "lighttable" -msgstr "ライトテーブル" - -#: ../src/gui/gtk.c:1189 ../src/gui/preferences.c:532 -#: ../src/gui/preferences.c:542 ../src/views/darkroom.c:94 -msgid "darkroom" -msgstr "ダークルーム" - -#: ../src/gui/gtk.c:1190 ../src/views/map.c:197 +#: ../src/gui/gtk.c:1268 ../src/views/map.c:197 msgid "map" msgstr "マップ" -#: ../src/gui/gtk.c:1191 ../src/views/slideshow.c:389 +#: ../src/gui/gtk.c:1269 ../src/views/slideshow.c:390 msgid "slideshow" msgstr "スライドショー" #. Print button -#: ../src/gui/gtk.c:1192 ../src/libs/print_settings.c:2885 +#: ../src/gui/gtk.c:1270 ../src/libs/print_settings.c:2885 msgid "print" msgstr "印刷" #. register ctrl-q to quit: -#: ../src/gui/gtk.c:1198 +#: ../src/gui/gtk.c:1276 msgid "quit" msgstr "終了" #. Full-screen accelerator (no ESC handler here to enable quit-slideshow using ESC) -#: ../src/gui/gtk.c:1201 +#: ../src/gui/gtk.c:1279 msgid "fullscreen" msgstr "全画面" -#: ../src/gui/gtk.c:1205 +#: ../src/gui/gtk.c:1283 msgid "collapsing controls" msgstr "折りたたみコントロール" #. specific top/bottom toggles -#: ../src/gui/gtk.c:1207 +#: ../src/gui/gtk.c:1285 msgid "header" msgstr "ヘッダ" -#: ../src/gui/gtk.c:1208 +#: ../src/gui/gtk.c:1286 msgid "filmstrip and timeline" msgstr "フィルムストリップとタイムライン" -#: ../src/gui/gtk.c:1209 +#: ../src/gui/gtk.c:1287 msgid "top toolbar" msgstr "上ツールバー" -#: ../src/gui/gtk.c:1210 +#: ../src/gui/gtk.c:1288 msgid "bottom toolbar" msgstr "下ツールバー" -#: ../src/gui/gtk.c:1211 +#: ../src/gui/gtk.c:1289 msgid "all top" msgstr "上 全て" -#: ../src/gui/gtk.c:1212 +#: ../src/gui/gtk.c:1290 msgid "all bottom" msgstr "下 全て" -#: ../src/gui/gtk.c:1214 +#: ../src/gui/gtk.c:1292 msgid "toggle tooltip visibility" msgstr "ツールチップの表示/非表示切り替え" -#: ../src/gui/gtk.c:1215 +#: ../src/gui/gtk.c:1293 msgid "reinitialise input devices" msgstr "インプットデバイスを再初期化" -#: ../src/gui/gtk.c:1253 +#: ../src/gui/gtk.c:1331 msgid "toggle focus-peaking mode" msgstr "フォーカスピーキングモードのオン/オフを切り替えます" #. toggle focus peaking everywhere -#: ../src/gui/gtk.c:1258 +#: ../src/gui/gtk.c:1336 msgid "toggle focus peaking" msgstr "フォーカスピーキングのオン/オフ切り替え" -#: ../src/gui/gtk.c:1594 ../src/gui/gtk.c:3143 ../src/gui/gtk.c:3148 -#: ../src/gui/gtk.c:3153 ../src/gui/gtk.c:3158 +#: ../src/gui/gtk.c:1654 ../src/gui/gtk.c:3189 ../src/gui/gtk.c:3194 +#: ../src/gui/gtk.c:3199 ../src/gui/gtk.c:3204 msgid "tabs" msgstr "タブ" -#: ../src/gui/gtk.c:2535 -msgid "_yes" -msgstr "_はい" - -#: ../src/gui/gtk.c:2536 -msgid "_no" -msgstr "_いいえ" - #. ask the user if darktable.org may be accessed -#: ../src/gui/gtk.c:2647 +#: ../src/gui/gtk.c:2707 msgid "access the online user manual?" msgstr "オンラインのユーザーマニュアルにアクセスしますか?" -#: ../src/gui/gtk.c:2648 +#: ../src/gui/gtk.c:2708 #, c-format msgid "do you want to access `%s'?" msgstr "`%s'にアクセスしますか?" -#: ../src/gui/gtk.c:2717 -msgid "help url opened in web browser" -msgstr "ウェブブラウザでヘルプのurlを開きます" - -#: ../src/gui/gtk.c:2721 -msgid "error while opening help url in web browser" -msgstr "ウェブブラウザでヘルプのulrを開く途中でエラーが発生しました" - -#: ../src/gui/gtk.c:2732 +#: ../src/gui/gtk.c:2778 msgid "there is no help available for this element" msgstr "この要素についてのヘルプがありません" #. font name can only use period as decimal separator #. but printf format strings use comma for some locales, so replace comma with period -#: ../src/gui/gtk.c:2752 +#: ../src/gui/gtk.c:2798 ../src/libs/metadata_view.c:762 #, c-format msgid "%.1f" msgstr "%.1f" -#: ../src/gui/gtk.c:2754 +#: ../src/gui/gtk.c:2800 #, c-format msgid "Sans %s" msgstr "Sans %s" -#: ../src/gui/gtk.c:3048 +#: ../src/gui/gtk.c:3094 msgid "does not contain pages" msgstr "ページを含んでいません" -#: ../src/gui/gtk.c:3265 +#: ../src/gui/gtk.c:3313 #, c-format msgid "never show more than %d lines" msgstr "%d行以上表示しません" -#: ../src/gui/gtkentry.c:172 +#: ../src/gui/gtkentry.c:173 msgid "$(ROLL.NAME) - roll of the input image" msgstr "$(ROLL.NAME) - 入力画像のロール" -#: ../src/gui/gtkentry.c:173 +#: ../src/gui/gtkentry.c:174 msgid "$(FILE.FOLDER) - folder containing the input image" msgstr "$(FILE.FOLDER) - 入力画像を含んでいるフォルダ" -#: ../src/gui/gtkentry.c:174 +#: ../src/gui/gtkentry.c:175 msgid "$(FILE.NAME) - basename of the input image" msgstr "$(FILE.NAME) - 入力画像のベース名" -#: ../src/gui/gtkentry.c:175 +#: ../src/gui/gtkentry.c:176 msgid "$(FILE.EXTENSION) - extension of the input image" msgstr "$(FILE.EXTENSION) - 入力画像の拡張子" -#: ../src/gui/gtkentry.c:176 +#: ../src/gui/gtkentry.c:177 msgid "$(VERSION) - duplicate version" msgstr "$(VERSION) - 重複バージョン" -#: ../src/gui/gtkentry.c:177 +#: ../src/gui/gtkentry.c:178 msgid "" "$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version " "exists" @@ -10322,274 +10816,282 @@ "$(VERSION.IF_MULTI) - $(VERSION)と同じですが、もし一つのバージョンしか存在し" "ていない場合、空文字列です" -#: ../src/gui/gtkentry.c:178 +#: ../src/gui/gtkentry.c:179 msgid "$(VERSION.NAME) - version name from metadata" msgstr "$(VERSION.NAME) - メタデータから取得したバージョン名" -#: ../src/gui/gtkentry.c:179 +#: ../src/gui/gtkentry.c:180 msgid "$(JOBCODE) - job code for import" msgstr "$(JOBCODE) - インポートのジョブコード" -#: ../src/gui/gtkentry.c:180 +#: ../src/gui/gtkentry.c:181 msgid "$(SEQUENCE) - sequence number" msgstr "$(SEQUENCE) - シーケンス番号" -#: ../src/gui/gtkentry.c:181 +#: ../src/gui/gtkentry.c:182 msgid "$(WIDTH.MAX) - maximum image export width" msgstr "$(WIDTH.MAX) - 画像エクスポートの幅の最大値" -#: ../src/gui/gtkentry.c:182 +#: ../src/gui/gtkentry.c:183 msgid "$(WIDTH.SENSOR) - image sensor width" msgstr "$(WIDTH.SENSOR) - イメージセンサーの幅" -#: ../src/gui/gtkentry.c:183 +#: ../src/gui/gtkentry.c:184 msgid "$(WIDTH.RAW) - RAW image width" msgstr "$(WIDTH.RAW) - RAW画像の幅" -#: ../src/gui/gtkentry.c:184 +#: ../src/gui/gtkentry.c:185 msgid "$(WIDTH.CROP) - image width after crop" msgstr "$(WIDTH.CROP) - トリミング後の画像の幅" -#: ../src/gui/gtkentry.c:185 +#: ../src/gui/gtkentry.c:186 msgid "$(WIDTH.EXPORT) - exported image width" msgstr "$(WIDTH.EXPORT) - エクスポートされた画像の幅" -#: ../src/gui/gtkentry.c:186 +#: ../src/gui/gtkentry.c:187 msgid "$(HEIGHT.MAX) - maximum image export height" msgstr "$(HEIGHT.MAX) - 画像エクスポートの高さの最大値" -#: ../src/gui/gtkentry.c:187 +#: ../src/gui/gtkentry.c:188 msgid "$(HEIGHT.SENSOR) - image sensor height" msgstr "$(HEIGHT.SENSOR) - イメージセンサーの高さ" -#: ../src/gui/gtkentry.c:188 +#: ../src/gui/gtkentry.c:189 msgid "$(HEIGHT.RAW) - RAW image height" msgstr "$(HEIGHT.RAW) - RAW画像の高さ" -#: ../src/gui/gtkentry.c:189 +#: ../src/gui/gtkentry.c:190 msgid "$(HEIGHT.CROP) - image height after crop" msgstr "$(HEIGHT.CROP) - トリミング後の画像の高さ" -#: ../src/gui/gtkentry.c:190 +#: ../src/gui/gtkentry.c:191 msgid "$(HEIGHT.EXPORT) - exported image height" msgstr "$(HEIGHT.EXPORT) - エクスポートされた画像の高さ" -#: ../src/gui/gtkentry.c:191 +#: ../src/gui/gtkentry.c:192 msgid "$(YEAR) - year" msgstr "$(YEAR) - 年" -#: ../src/gui/gtkentry.c:192 +#: ../src/gui/gtkentry.c:193 msgid "$(YEAR.SHORT) - year without century" msgstr "$(YEAR.SHORT) - 年(世紀無し)" -#: ../src/gui/gtkentry.c:193 +#: ../src/gui/gtkentry.c:194 msgid "$(MONTH) - month" msgstr "$(MONTH) - 月" -#: ../src/gui/gtkentry.c:194 +#: ../src/gui/gtkentry.c:195 msgid "$(MONTH.SHORT) - abbreviated month name according to the current locale" msgstr "$(MONTH.SHORT) - 現在のロケールにもとづく月(略記)" -#: ../src/gui/gtkentry.c:195 +#: ../src/gui/gtkentry.c:196 msgid "$(MONTH.LONG) - full month name according to the current locale" msgstr "$(MONTH.LONG) - 現在のロケールにもとづく月" -#: ../src/gui/gtkentry.c:196 +#: ../src/gui/gtkentry.c:197 msgid "$(DAY) - day" msgstr "$(DAY) - 日" -#: ../src/gui/gtkentry.c:197 +#: ../src/gui/gtkentry.c:198 msgid "$(HOUR) - hour" msgstr "$(HOUR) - 時" -#: ../src/gui/gtkentry.c:198 +#: ../src/gui/gtkentry.c:199 msgid "$(HOUR.AMPM) - hour, 12-hour clock" msgstr "$(HOUR.AMPM) - 時(12時制)" -#: ../src/gui/gtkentry.c:199 +#: ../src/gui/gtkentry.c:200 msgid "$(MINUTE) - minute" msgstr "$(MINUTE) - 分" -#: ../src/gui/gtkentry.c:200 +#: ../src/gui/gtkentry.c:201 msgid "$(SECOND) - second" msgstr "$(SECOND) - 秒" -#: ../src/gui/gtkentry.c:201 +#: ../src/gui/gtkentry.c:202 msgid "$(MSEC) - millisecond" msgstr "$(MSEC) - ミリ秒" -#: ../src/gui/gtkentry.c:202 +#: ../src/gui/gtkentry.c:203 msgid "$(EXIF.YEAR) - EXIF year" msgstr "$(EXIF.YEAR) - EXIF 年" -#: ../src/gui/gtkentry.c:203 +#: ../src/gui/gtkentry.c:204 msgid "$(EXIF.YEAR.SHORT) - EXIF year without century" msgstr "$(EXIF_YEAR) - EXIF 年(世紀無し)" -#: ../src/gui/gtkentry.c:204 +#: ../src/gui/gtkentry.c:205 msgid "$(EXIF.MONTH) - EXIF month" msgstr "$(EXIF.MONTH) - EXIF 月" -#: ../src/gui/gtkentry.c:205 +#: ../src/gui/gtkentry.c:206 msgid "" "$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current " "locale" msgstr "$(EXIF.MONTH.SHORT) - 現在のロケールにもとづくEXIF月(略記)" -#: ../src/gui/gtkentry.c:206 +#: ../src/gui/gtkentry.c:207 msgid "" "$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" msgstr "$(EXIF.MONTH.LONG) - 現在のロケールにもとづくEXIF月" -#: ../src/gui/gtkentry.c:207 +#: ../src/gui/gtkentry.c:208 msgid "$(EXIF.DAY) - EXIF day" msgstr "$(EXIF.DAY) - EXIF 日" -#: ../src/gui/gtkentry.c:208 +#: ../src/gui/gtkentry.c:209 msgid "$(EXIF.HOUR) - EXIF hour" msgstr "$(EXIF.HOUR) - EXIF 時" -#: ../src/gui/gtkentry.c:209 +#: ../src/gui/gtkentry.c:210 msgid "$(EXIF.HOUR.AMPM) - EXIF hour, 12-hour clock" msgstr "$(EXIF_HOUR) - EXIF 時(12時制)" -#: ../src/gui/gtkentry.c:210 +#: ../src/gui/gtkentry.c:211 msgid "$(EXIF.MINUTE) - EXIF minute" msgstr "$(EXIF.MINUTE) - EXIF 分" -#: ../src/gui/gtkentry.c:211 +#: ../src/gui/gtkentry.c:212 msgid "$(EXIF.SECOND) - EXIF second" msgstr "$(EXIF.SECOND) - EXIF 秒" -#: ../src/gui/gtkentry.c:212 +#: ../src/gui/gtkentry.c:213 msgid "$(EXIF.MSEC) - EXIF millisecond" msgstr "$(EXIF.MSEC) - EXIF ミリ秒" -#: ../src/gui/gtkentry.c:213 +#: ../src/gui/gtkentry.c:214 msgid "$(EXIF.ISO) - ISO value" msgstr "$(EXIF.ISO) - ISO値" -#: ../src/gui/gtkentry.c:214 +#: ../src/gui/gtkentry.c:215 msgid "$(EXIF.EXPOSURE) - EXIF exposure" msgstr "$(EXIF.EXPOSURE) - EXIF 露出" -#: ../src/gui/gtkentry.c:215 +#: ../src/gui/gtkentry.c:216 msgid "$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias" msgstr "$(EXIF.EXPOSURE.BIAS) - EXIF 露出補正" -#: ../src/gui/gtkentry.c:216 +#: ../src/gui/gtkentry.c:217 msgid "$(EXIF.APERTURE) - EXIF aperture" msgstr "$(EXIF.APERTURE) - EXIF 絞り" -#: ../src/gui/gtkentry.c:217 +#: ../src/gui/gtkentry.c:218 +msgid "$(EXIF.CROP_FACTOR) - EXIF crop factor" +msgstr "$(EXIF.CROP_FACTOR) - EXIF クロップファクター" + +#: ../src/gui/gtkentry.c:219 msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" msgstr "$(EXIF.FOCAL.LENGTH) - EXIF レンズ焦点距離" -#: ../src/gui/gtkentry.c:218 +#: ../src/gui/gtkentry.c:220 +msgid "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent focal length" +msgstr "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35mm換算焦点距離" + +#: ../src/gui/gtkentry.c:221 msgid "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" msgstr "$(EXIF.FOCUS.DISTANCE) - EXIF 被写体までの距離" -#: ../src/gui/gtkentry.c:219 +#: ../src/gui/gtkentry.c:222 msgid "$(EXIF.MAKER) - camera maker" msgstr "$(EXIF.MAKER) - カメラメーカー" -#: ../src/gui/gtkentry.c:220 +#: ../src/gui/gtkentry.c:223 msgid "$(EXIF.MODEL) - camera model" msgstr "$(EXIF.MODEL) - カメラ機種" -#: ../src/gui/gtkentry.c:221 +#: ../src/gui/gtkentry.c:224 msgid "$(EXIF.LENS) - lens" msgstr "$(EXIF.LENS) - レンズ" -#: ../src/gui/gtkentry.c:222 +#: ../src/gui/gtkentry.c:225 msgid "$(LONGITUDE) - longitude" msgstr "$(LONGITUDE) - 経度" -#: ../src/gui/gtkentry.c:223 +#: ../src/gui/gtkentry.c:226 msgid "$(LATITUDE) - latitude" msgstr "$(LATITUDE) - 緯度" -#: ../src/gui/gtkentry.c:224 +#: ../src/gui/gtkentry.c:227 msgid "$(ELEVATION) - elevation" msgstr "$(ELEVATION) - 高度" -#: ../src/gui/gtkentry.c:225 +#: ../src/gui/gtkentry.c:228 msgid "$(STARS) - star rating as number (-1 for rejected)" msgstr "$(STARS) - 評価を数字で表示(除外された画像は-1)" -#: ../src/gui/gtkentry.c:226 +#: ../src/gui/gtkentry.c:229 msgid "$(RATING.ICONS) - star/reject rating in icon form" msgstr "$(RATING.ICONS) - 評価(星の数、あるいは除外)をアイコンで表示" -#: ../src/gui/gtkentry.c:227 +#: ../src/gui/gtkentry.c:230 msgid "$(LABELS) - color labels as text" msgstr "$(LABELS) - 色ラベルをテクストで表示" -#: ../src/gui/gtkentry.c:228 +#: ../src/gui/gtkentry.c:231 msgid "$(LABELS.ICONS) - color labels as icons" msgstr "$(LABELS.ICONS) - 色ラベルをアイコンで表示" -#: ../src/gui/gtkentry.c:229 +#: ../src/gui/gtkentry.c:232 msgid "$(ID) - image ID" msgstr "$(ID) - 画像ID" -#: ../src/gui/gtkentry.c:230 +#: ../src/gui/gtkentry.c:233 msgid "$(TITLE) - title from metadata" msgstr "$(TITLE) - メタデータから取得したタイトル" -#: ../src/gui/gtkentry.c:231 +#: ../src/gui/gtkentry.c:234 msgid "$(DESCRIPTION) - description from metadata" msgstr "$(DESCRIPTION) - メタデータから取得した説明" -#: ../src/gui/gtkentry.c:232 +#: ../src/gui/gtkentry.c:235 msgid "$(CREATOR) - creator from metadata" msgstr "$(CREATOR) - メタデータから取得した作成者" -#: ../src/gui/gtkentry.c:233 +#: ../src/gui/gtkentry.c:236 msgid "$(PUBLISHER) - publisher from metadata" msgstr "$(PUBLISHER) -メタデータから取得した発行者" -#: ../src/gui/gtkentry.c:234 +#: ../src/gui/gtkentry.c:237 msgid "$(RIGHTS) - rights from metadata" msgstr "$(RIGHTS) - メタデータから取得した権利" -#: ../src/gui/gtkentry.c:235 +#: ../src/gui/gtkentry.c:238 msgid "$(USERNAME) - login name" msgstr "$(USERNAME) - ログイン名" -#: ../src/gui/gtkentry.c:236 +#: ../src/gui/gtkentry.c:239 msgid "$(FOLDER.PICTURES) - pictures folder" msgstr "$(FOLDER.PICTURES) - ピクチャーフォルダ" -#: ../src/gui/gtkentry.c:237 +#: ../src/gui/gtkentry.c:240 msgid "$(FOLDER.HOME) - home folder" msgstr "$(FOLDER.HOME) - ホームフォルダ" -#: ../src/gui/gtkentry.c:238 +#: ../src/gui/gtkentry.c:241 msgid "$(FOLDER.DESKTOP) - desktop folder" msgstr "$(FOLDER.DESKTOP) - デスクトップフォルダ" -#: ../src/gui/gtkentry.c:239 +#: ../src/gui/gtkentry.c:242 msgid "$(OPENCL.ACTIVATED) - whether OpenCL is activated" msgstr "$(OPENCL.ACTIVATED) - OpenCLが有効になっているかいなか" -#: ../src/gui/gtkentry.c:240 +#: ../src/gui/gtkentry.c:243 msgid "$(CATEGORY0(category)) - subtag of level 0 in hierarchical tags" msgstr "$(CATEGORY0(category)) - 階層タグのレベル 0 のサブタグ" -#: ../src/gui/gtkentry.c:241 +#: ../src/gui/gtkentry.c:244 msgid "$(TAGS) - tags as set in metadata settings" msgstr "$(TAGS) - メタデータで設定されたタグ" -#: ../src/gui/gtkentry.c:242 +#: ../src/gui/gtkentry.c:245 msgid "$(DARKTABLE.NAME) - darktable name" msgstr "$(DARKTABLE.NAME) - darktable名" -#: ../src/gui/gtkentry.c:243 +#: ../src/gui/gtkentry.c:246 msgid "$(DARKTABLE.VERSION) - current darktable version" msgstr "$(DARKTABLE.VERSION) - 現在のdarktableのバージョン" -#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:255 +#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:248 msgid "grid" msgstr "グリッド" @@ -10659,11 +11161,11 @@ msgstr "画像全体のガイド線のオーバーレイの設定" #: ../src/gui/guides.c:710 ../src/gui/guides.c:719 ../src/gui/guides.c:727 -#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2648 +#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2494 msgid "guide lines" msgstr "ガイド線" -#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2092 +#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2145 msgid "flip" msgstr "反転" @@ -10679,8 +11181,8 @@ msgid "vertically" msgstr "垂直に" -#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6285 ../src/iop/clipping.c:2096 -#: ../src/iop/colorbalance.c:1917 +#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6232 ../src/iop/clipping.c:2149 +#: ../src/iop/colorbalance.c:1892 msgid "both" msgstr "両方" @@ -10729,26 +11231,26 @@ msgid "select parts to paste" msgstr "貼り付けるものを選択してください" -#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:517 +#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:524 msgid "select _all" msgstr "全て選択" -#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:518 +#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:525 msgid "select _none" msgstr "選択なし" -#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:593 -#: ../src/gui/styles_dialog.c:615 +#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:605 +#: ../src/gui/styles_dialog.c:627 msgid "include" msgstr "含める" -#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:669 -#: ../src/gui/styles_dialog.c:675 +#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:681 +#: ../src/gui/styles_dialog.c:687 msgid "item" msgstr "項目" -#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:682 -#: ../src/gui/styles_dialog.c:691 +#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:694 +#: ../src/gui/styles_dialog.c:703 msgid "mask" msgstr "マスク" @@ -10801,11 +11303,11 @@ msgid "interface language" msgstr "インターフェース言語" -#: ../src/gui/preferences.c:289 +#: ../src/gui/preferences.c:290 msgid "double-click to reset to the system language" msgstr "ダブルクリックしてシステムの言語にリセット" -#: ../src/gui/preferences.c:291 +#: ../src/gui/preferences.c:292 msgid "" "set the language of the user interface. the system default is marked with an " "* (needs a restart)" @@ -10813,27 +11315,27 @@ "ユーザーインターフェースの言語を設定します\n" "システムのデフォルトには*が付いています(要再起動)" -#: ../src/gui/preferences.c:300 +#: ../src/gui/preferences.c:301 msgid "theme" msgstr "テーマ" -#: ../src/gui/preferences.c:328 +#: ../src/gui/preferences.c:331 msgid "set the theme for the user interface" msgstr "ユーザーインターフェースのテーマを設定します" -#: ../src/gui/preferences.c:341 ../src/gui/preferences.c:348 +#: ../src/gui/preferences.c:344 ../src/gui/preferences.c:351 msgid "use system font size" msgstr "システムのフォントサイズを使用する" -#: ../src/gui/preferences.c:357 ../src/gui/preferences.c:364 +#: ../src/gui/preferences.c:360 ../src/gui/preferences.c:367 msgid "font size in points" msgstr "フォントサイズ(単位はポイント)" -#: ../src/gui/preferences.c:369 +#: ../src/gui/preferences.c:372 msgid "GUI controls and text DPI" msgstr "GUIコントロールとテキストの解像度" -#: ../src/gui/preferences.c:376 +#: ../src/gui/preferences.c:379 msgid "" "adjust the global GUI resolution to rescale controls, buttons, labels, etc.\n" "increase for a magnified GUI, decrease to fit more content in window.\n" @@ -10849,77 +11351,61 @@ "(要再起動)" #. checkbox to allow user to modify theme with user.css -#: ../src/gui/preferences.c:385 +#: ../src/gui/preferences.c:388 msgid "modify selected theme with CSS tweaks below" msgstr "選択したテーマを以下のCSS調整にしたがって修正する" -#: ../src/gui/preferences.c:393 +#: ../src/gui/preferences.c:396 msgid "modify theme with CSS keyed below (saved to user.css)" msgstr "以下で調整されたCSSにしたがってテーマを修正します" -#: ../src/gui/preferences.c:415 +#: ../src/gui/preferences.c:418 msgctxt "usercss" msgid "save CSS and apply" msgstr "CSSを保存し適用する" -#: ../src/gui/preferences.c:420 +#: ../src/gui/preferences.c:423 msgid "click to save and apply the CSS tweaks entered in this editor" msgstr "クリックすると、エディタに入力されたCSS調整を保存し適用します" -#: ../src/gui/preferences.c:422 +#: ../src/gui/preferences.c:425 msgid "open help page for CSS tweaks" msgstr "CSS調整についてのヘルプページを開きます" #. load default text with some pointers -#: ../src/gui/preferences.c:443 +#: ../src/gui/preferences.c:446 msgid "ERROR Loading user.css" msgstr "user.css読み込みエラー" #. load default text -#: ../src/gui/preferences.c:452 +#: ../src/gui/preferences.c:455 msgid "Enter CSS theme tweaks here" msgstr "ここにCSSテーマ調整を入力してください" -#: ../src/gui/preferences.c:488 +#: ../src/gui/preferences.c:491 msgid "darktable preferences" msgstr "darktableの設定" -#: ../src/gui/preferences.c:533 -msgid "processing" -msgstr "処理" - -#: ../src/gui/preferences.c:534 -msgid "security" -msgstr "セキュリティ" - -#: ../src/gui/preferences.c:535 -msgid "storage" -msgstr "ストレージ" - -#: ../src/gui/preferences.c:536 -msgid "miscellaneous" -msgstr "その他" - -#: ../src/gui/preferences.c:561 +#: ../src/gui/preferences.c:559 msgid "darktable needs to be restarted for settings to take effect" msgstr "設定を有効にするためにはdarktableを再起動する必要があります" #. exif -#: ../src/gui/preferences.c:820 ../src/gui/presets.c:644 -#: ../src/libs/metadata_view.c:137 +#: ../src/gui/preferences.c:818 ../src/gui/presets.c:647 +#: ../src/libs/metadata_view.c:139 msgid "model" msgstr "カメラ機種" -#: ../src/gui/preferences.c:824 ../src/gui/presets.c:652 -#: ../src/libs/metadata_view.c:138 +#: ../src/gui/preferences.c:822 ../src/gui/presets.c:655 +#: ../src/libs/metadata_view.c:140 msgid "maker" msgstr "メーカー" -#: ../src/gui/preferences.c:861 +#: ../src/gui/preferences.c:859 msgid "search presets list" msgstr "プリセットリストを検索" -#: ../src/gui/preferences.c:862 +#: ../src/gui/preferences.c:860 msgid "" "incrementally search the list of presets\n" "press up or down keys to cycle through matches" @@ -10927,70 +11413,70 @@ "プリセットのリストをインクリメンタルサーチします\n" "上キーまたは下キーを押すと、マッチした項目を移動します" -#: ../src/gui/preferences.c:868 +#: ../src/gui/preferences.c:866 msgctxt "preferences" msgid "import..." msgstr "インポート..." -#: ../src/gui/preferences.c:872 +#: ../src/gui/preferences.c:870 msgctxt "preferences" msgid "export..." msgstr "エクスポート..." -#: ../src/gui/preferences.c:1031 +#: ../src/gui/preferences.c:1030 #, c-format msgid "failed to import preset %s" msgstr "プリセット%sのインポートに失敗しました" -#: ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1041 msgid "select preset(s) to import" msgstr "インポートするプリセットを選択します" -#: ../src/gui/preferences.c:1043 ../src/libs/collect.c:408 -#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:929 -#: ../src/libs/import.c:1506 ../src/libs/import.c:1610 ../src/libs/styles.c:527 +#: ../src/gui/preferences.c:1042 ../src/libs/collect.c:425 +#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:930 +#: ../src/libs/import.c:1515 ../src/libs/import.c:1619 ../src/libs/styles.c:529 msgid "_open" msgstr "_開く" -#: ../src/gui/preferences.c:1052 +#: ../src/gui/preferences.c:1051 msgid "darktable preset files" msgstr "darktableプリセットファイル" -#: ../src/gui/preferences.c:1057 ../src/iop/lut3d.c:1577 -#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:945 -#: ../src/libs/styles.c:541 +#: ../src/gui/preferences.c:1056 ../src/iop/lut3d.c:1591 +#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:946 +#: ../src/libs/styles.c:543 msgid "all files" msgstr "全てのファイル" -#: ../src/gui/presets.c:59 +#: ../src/gui/presets.c:61 msgid "non-raw" msgstr "非RAW" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:332 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:336 msgid "raw" msgstr "RAW" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:333 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:337 msgid "HDR" msgstr "HDR" -#: ../src/gui/presets.c:59 ../src/iop/monochrome.c:77 ../src/libs/image.c:608 -#: ../src/libs/metadata_view.c:339 +#: ../src/gui/presets.c:61 ../src/iop/monochrome.c:77 ../src/libs/image.c:679 +#: ../src/libs/metadata_view.c:343 msgid "monochrome" msgstr "モノクローム" -#: ../src/gui/presets.c:151 +#: ../src/gui/presets.c:153 #, c-format msgid "preset `%s' is write-protected, can't delete!" msgstr "プリセット`%s'は書き込み保護されています。削除することが出来ません!" -#: ../src/gui/presets.c:157 ../src/gui/presets.c:461 ../src/libs/lib.c:238 -#: ../src/libs/modulegroups.c:3701 +#: ../src/gui/presets.c:159 ../src/gui/presets.c:463 ../src/libs/lib.c:238 +#: ../src/libs/modulegroups.c:3703 msgid "delete preset?" msgstr "プリセットを削除しますか?" -#: ../src/gui/presets.c:158 ../src/gui/presets.c:462 ../src/libs/lib.c:239 -#: ../src/libs/modulegroups.c:3702 +#: ../src/gui/presets.c:160 ../src/gui/presets.c:464 ../src/libs/lib.c:239 +#: ../src/libs/modulegroups.c:3704 #, c-format msgid "do you really want to delete the preset `%s'?" msgstr "プリセット`%s'を本当に削除しますか?" @@ -11001,25 +11487,25 @@ #. clang-format on #. create a shortcut for the new entry #. then show edit dialog -#: ../src/gui/presets.c:200 ../src/gui/presets.c:1035 ../src/gui/presets.c:1038 -#: ../src/gui/presets.c:1041 ../src/libs/lib.c:188 ../src/libs/lib.c:205 +#: ../src/gui/presets.c:202 ../src/gui/presets.c:1022 ../src/gui/presets.c:1025 +#: ../src/gui/presets.c:1028 ../src/libs/lib.c:188 ../src/libs/lib.c:205 #: ../src/libs/lib.c:213 ../src/libs/lib.c:216 msgid "new preset" msgstr "新しいプリセット" -#: ../src/gui/presets.c:207 +#: ../src/gui/presets.c:209 msgid "please give preset a name" msgstr "プリセットに名前をつけてください" -#: ../src/gui/presets.c:212 +#: ../src/gui/presets.c:214 msgid "unnamed preset" msgstr "名称未設定のプリセット" -#: ../src/gui/presets.c:241 +#: ../src/gui/presets.c:243 msgid "overwrite preset?" msgstr "プリセットを上書きしますか?" -#: ../src/gui/presets.c:242 +#: ../src/gui/presets.c:244 #, c-format msgid "" "preset `%s' already exists.\n" @@ -11028,38 +11514,43 @@ "プリセット`%s'は既に存在しています\n" "上書きしますか?" -#: ../src/gui/presets.c:420 ../src/imageio/storage/disk.c:123 -#: ../src/imageio/storage/gallery.c:110 ../src/imageio/storage/latex.c:109 +#: ../src/gui/presets.c:422 ../src/imageio/storage/disk.c:198 +#: ../src/imageio/storage/gallery.c:150 ../src/imageio/storage/latex.c:146 msgid "_select as output destination" msgstr "_出力先として選択" -#: ../src/gui/presets.c:429 +#: ../src/gui/presets.c:431 #, c-format msgid "preset %s was successfully exported" msgstr "プリセット%sは正常にエクスポートされました" -#: ../src/gui/presets.c:557 +#: ../src/gui/presets.c:559 #, c-format msgid "edit `%s' for module `%s'" msgstr "`%s'を編集します(モジュール`%s')" -#: ../src/gui/presets.c:561 +#: ../src/gui/presets.c:563 msgid "_export..." msgstr "_エクスポート..." -#: ../src/gui/presets.c:585 +#: ../src/gui/presets.c:564 ../src/libs/tagging.c:1489 +#: ../src/libs/tagging.c:1580 +msgid "_delete" +msgstr "_削除" + +#: ../src/gui/presets.c:588 msgid "name of the preset" msgstr "プリセット名" -#: ../src/gui/presets.c:594 +#: ../src/gui/presets.c:597 msgid "description or further information" msgstr "説明または詳細情報" -#: ../src/gui/presets.c:598 +#: ../src/gui/presets.c:601 msgid "reset all module parameters to their default values" msgstr "全てのモジュールパラメータをデフォルト値にリセット" -#: ../src/gui/presets.c:601 +#: ../src/gui/presets.c:604 msgid "" "the parameters will be reset to their default values, which may be " "automatically set based on image metadata" @@ -11068,17 +11559,17 @@ "て自動的に設定されることがあります" # 適合する画像にこのプリセットを自動的に適用します -#: ../src/gui/presets.c:607 +#: ../src/gui/presets.c:610 msgid "auto apply this preset to matching images" msgstr "条件に合う画像にこのプリセットを自動適用" # 適合する画像でのみこのプリセットを表示します -#: ../src/gui/presets.c:611 +#: ../src/gui/presets.c:614 msgid "only show this preset for matching images" msgstr "条件に合う画像にのみこのプリセットを表示" # このオプションは充分に注意してください。これによってプリセットが失われ。復元することも出来なくなるかもしれません -#: ../src/gui/presets.c:613 +#: ../src/gui/presets.c:616 msgid "" "be very careful with this option. this might be the last time you see your " "preset." @@ -11086,26 +11577,26 @@ "このオプションは充分に注意してください。これによって今後このプリセットが表示" "されなくなるかもしれません" -#: ../src/gui/presets.c:643 +#: ../src/gui/presets.c:646 #, no-c-format msgid "string to match model (use % as wildcard)" msgstr "条件に合うカメラ機種(ワイルドカード文字として%を使用してください)" -#: ../src/gui/presets.c:651 +#: ../src/gui/presets.c:654 #, no-c-format msgid "string to match maker (use % as wildcard)" msgstr "条件に合うメーカー(ワイルドカード文字として%を使用してください)" -#: ../src/gui/presets.c:659 +#: ../src/gui/presets.c:662 #, no-c-format msgid "string to match lens (use % as wildcard)" msgstr "条件に合うレンズ(ワイルドカード文字として%を使用してください)" -#: ../src/gui/presets.c:669 +#: ../src/gui/presets.c:672 msgid "minimum ISO value" msgstr "最小ISO値" -#: ../src/gui/presets.c:675 +#: ../src/gui/presets.c:678 msgid "" "maximum ISO value\n" "if left blank, it is equivalent to no upper limit" @@ -11113,70 +11604,70 @@ "最大ISO値\n" "空白の場合、上限なしと同様に扱われます" -#: ../src/gui/presets.c:688 +#: ../src/gui/presets.c:691 msgid "minimum exposure time" msgstr "最短露出時間" -#: ../src/gui/presets.c:689 +#: ../src/gui/presets.c:692 msgid "maximum exposure time" msgstr "最長露出時間" -#: ../src/gui/presets.c:705 +#: ../src/gui/presets.c:708 msgid "minimum aperture value" msgstr "最小絞り値" -#: ../src/gui/presets.c:706 +#: ../src/gui/presets.c:709 msgid "maximum aperture value" msgstr "最大絞り値" -#: ../src/gui/presets.c:724 +#: ../src/gui/presets.c:727 msgid "minimum focal length" msgstr "最短焦点距離" -#: ../src/gui/presets.c:725 +#: ../src/gui/presets.c:728 msgid "maximum focal length" msgstr "最長焦点距離" #. raw/hdr/ldr/mono/color -#: ../src/gui/presets.c:733 ../src/imageio/format/j2k.c:650 +#: ../src/gui/presets.c:736 msgid "format" msgstr "フォーマット" -#: ../src/gui/presets.c:738 +#: ../src/gui/presets.c:741 msgid "select image types you want this preset to be available for" msgstr "このプリセットを利用可能にしたい画像のタイプを選択します" -#: ../src/gui/presets.c:751 ../src/libs/filtering.c:1201 +#: ../src/gui/presets.c:754 ../src/libs/filtering.c:1263 msgid "and" msgstr "および" -#: ../src/gui/presets.c:795 ../src/gui/presets.c:847 +#: ../src/gui/presets.c:798 ../src/gui/presets.c:850 msgid "∞" msgstr "∞" -#: ../src/gui/presets.c:979 +#: ../src/gui/presets.c:966 #, c-format msgid "preset `%s' is write-protected! can't edit it!" msgstr "プリセット`%s'は書き込み保護されています。編集することが出来ません!" -#: ../src/gui/presets.c:1003 ../src/libs/lib.c:158 +#: ../src/gui/presets.c:990 ../src/libs/lib.c:158 msgid "update preset?" msgstr "プリセットを更新しますか?" -#: ../src/gui/presets.c:1004 ../src/libs/lib.c:159 +#: ../src/gui/presets.c:991 ../src/libs/lib.c:159 #, c-format msgid "do you really want to update the preset `%s'?" msgstr "プリセット`%s'を本当に更新しますか?" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(first)" msgstr "(最初)" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(last)" msgstr "(最後)" -#: ../src/gui/presets.c:1165 +#: ../src/gui/presets.c:1152 #, c-format msgid "" "preset %s\n" @@ -11185,63 +11676,63 @@ "プリセット%s\n" "%s" -#: ../src/gui/presets.c:1166 +#: ../src/gui/presets.c:1153 msgid "no presets" msgstr "プリセット無し" -#: ../src/gui/presets.c:1199 ../src/iop/basecurve.c:528 -#: ../src/iop/basecurve.c:532 ../src/iop/basecurve.c:535 +#: ../src/gui/presets.c:1188 ../src/iop/basecurve.c:575 +#: ../src/iop/basecurve.c:579 ../src/iop/basecurve.c:582 msgid "display-referred default" msgstr "ディスプレイ参照デフォルト" -#: ../src/gui/presets.c:1201 ../src/iop/channelmixerrgb.c:332 -#: ../src/iop/channelmixerrgb.c:336 ../src/iop/channelmixerrgb.c:339 -#: ../src/iop/exposure.c:297 ../src/iop/exposure.c:301 -#: ../src/iop/exposure.c:304 ../src/iop/filmicrgb.c:3248 -#: ../src/iop/filmicrgb.c:3252 ../src/iop/filmicrgb.c:3255 -#: ../src/iop/sigmoid.c:134 ../src/iop/sigmoid.c:138 ../src/iop/sigmoid.c:141 +#: ../src/gui/presets.c:1190 ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:400 ../src/iop/channelmixerrgb.c:403 +#: ../src/iop/exposure.c:319 ../src/iop/exposure.c:323 +#: ../src/iop/exposure.c:326 ../src/iop/filmicrgb.c:3311 +#: ../src/iop/filmicrgb.c:3315 ../src/iop/filmicrgb.c:3318 +#: ../src/iop/sigmoid.c:240 ../src/iop/sigmoid.c:243 ../src/iop/sigmoid.c:245 msgid "scene-referred default" msgstr "シーン参照デフォルト" -#: ../src/gui/presets.c:1393 ../src/libs/modulegroups.c:3781 -#: ../src/libs/modulegroups.c:3790 +#: ../src/gui/presets.c:1394 ../src/libs/modulegroups.c:3783 +#: ../src/libs/modulegroups.c:3792 msgid "manage module layouts" msgstr "モジュールのレイアウトの管理" -#: ../src/gui/presets.c:1402 +#: ../src/gui/presets.c:1403 msgid "manage quick presets" msgstr "クイックプリセットを管理してください" -#: ../src/gui/presets.c:1586 +#: ../src/gui/presets.c:1587 msgid "manage quick presets list..." msgstr "クイックプリセットリストの管理..." -#: ../src/gui/presets.c:1727 +#: ../src/gui/presets.c:1728 msgid "(default)" msgstr "(デフォルト)" -#: ../src/gui/presets.c:1754 +#: ../src/gui/presets.c:1755 msgid "disabled: wrong module version" msgstr "無効:モジュールのバージョンが違います" -#: ../src/gui/presets.c:1776 ../src/libs/lib.c:551 +#: ../src/gui/presets.c:1777 ../src/libs/lib.c:551 msgid "edit this preset.." msgstr "このプリセットを編集..." -#: ../src/gui/presets.c:1781 ../src/libs/lib.c:555 +#: ../src/gui/presets.c:1782 ../src/libs/lib.c:555 msgid "delete this preset" msgstr "このプリセットを削除" -#: ../src/gui/presets.c:1788 ../src/libs/lib.c:563 +#: ../src/gui/presets.c:1789 ../src/libs/lib.c:563 msgid "store new preset.." msgstr "新しいプリセットを保存..." -#: ../src/gui/presets.c:1796 ../src/libs/lib.c:576 +#: ../src/gui/presets.c:1797 ../src/libs/lib.c:576 msgid "update preset" msgstr "プリセットを更新" #: ../src/gui/styles_dialog.c:221 ../src/libs/styles.c:437 -#: ../src/libs/styles.c:620 +#: ../src/libs/styles.c:622 msgid "overwrite style?" msgstr "スタイルを上書きしますか?" @@ -11267,39 +11758,39 @@ msgid "style %s was successfully saved" msgstr "スタイル%sは正常に保存されました" -#: ../src/gui/styles_dialog.c:505 +#: ../src/gui/styles_dialog.c:512 msgid "edit style" msgstr "スタイルを編集します" -#: ../src/gui/styles_dialog.c:506 +#: ../src/gui/styles_dialog.c:513 msgid "duplicate style" msgstr "スタイルを複製します" -#: ../src/gui/styles_dialog.c:507 +#: ../src/gui/styles_dialog.c:514 msgid "creates a duplicate of the style before applying changes" msgstr "変更を適用する前にスタイルの複製を作成します" -#: ../src/gui/styles_dialog.c:511 +#: ../src/gui/styles_dialog.c:518 msgid "create new style" msgstr "新しいスタイルを作成します" -#: ../src/gui/styles_dialog.c:549 +#: ../src/gui/styles_dialog.c:557 msgid "enter a name for the new style" msgstr "新しいスタイルの名前を入力してください" -#: ../src/gui/styles_dialog.c:554 +#: ../src/gui/styles_dialog.c:565 msgid "enter a description for the new style, this description is searchable" msgstr "新しいスタイルの説明を入力してください。この説明は検索出来ます" -#: ../src/gui/styles_dialog.c:593 +#: ../src/gui/styles_dialog.c:605 msgid "keep" msgstr "保持" -#: ../src/gui/styles_dialog.c:820 +#: ../src/gui/styles_dialog.c:832 msgid "can't create style out of unaltered image" msgstr "変更されていない画像からスタイルを作成することは出来ません" -#: ../src/imageio/imageio.c:804 +#: ../src/imageio/imageio.c:816 #, c-format msgid "" "failed to allocate memory for %s, please lower the threads used for export " @@ -11308,91 +11799,116 @@ "%sにメモリを割り当てることが出来ませんでした。エクスポートに使用されるスレッ" "ドを少なくするか、より多くのメモリを搭載してください" -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "thumbnail export" msgstr "サムネイルエクスポート" -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "export" msgstr "エクスポート" -#: ../src/imageio/imageio.c:819 +#: ../src/imageio/imageio.c:831 #, c-format msgid "cannot find the style '%s' to apply during export." msgstr "エクスポート時に適用するスタイル'%s'を見つけることが出来ません" -#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:536 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/imageio_libraw.c:295 +msgid "" +"<span foreground='red'><b>WARNING</b></span>: camera is not fully supported!" +msgstr "" +"<span foreground='red'><b>警告</b></span>:カメラが完全にはサポートされていま" +"せん" + +#: ../src/imageio/imageio_libraw.c:297 +#, c-format +msgid "" +"colors for `%s' could be misrepresented,\n" +"and edits might not be compatible with future versions." +msgstr "" +"`%s'の色は正確に表示されない可能性があり、\n" +"編集は将来のバージョンとの互換性がないかもしれません" + +#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:641 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "8 bit" msgstr "8ビット" -#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:567 msgid "10 bit" msgstr "10ビット" -#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:567 msgid "12 bit" msgstr "12ビット" -#: ../src/imageio/format/avif.c:431 +#: ../src/imageio/format/avif.c:110 ../src/imageio/format/webp.c:416 +msgid "lossless" +msgstr "可逆" + +#: ../src/imageio/format/avif.c:112 ../src/imageio/format/webp.c:416 +msgid "lossy" +msgstr "非可逆" + +#: ../src/imageio/format/avif.c:463 msgid "invalid AVIF bit depth!" msgstr "無効なAVIFビット深度です!" -#: ../src/imageio/format/avif.c:694 -msgid "AVIF" -msgstr "AVIF" - #. Bit depth combo box -#: ../src/imageio/format/avif.c:766 ../src/imageio/format/exr.cc:565 -#: ../src/imageio/format/jxl.c:555 ../src/imageio/format/pdf.c:661 -#: ../src/imageio/format/png.c:534 ../src/imageio/format/tiff.c:843 +#: ../src/imageio/format/avif.c:800 ../src/imageio/format/exr.cc:601 +#: ../src/imageio/format/jxl.c:566 ../src/imageio/format/pdf.c:661 +#: ../src/imageio/format/png.c:639 ../src/imageio/format/tiff.c:900 #: ../src/imageio/format/xcf.c:354 msgid "bit depth" msgstr "ビット深度" -#: ../src/imageio/format/avif.c:779 +#: ../src/imageio/format/avif.c:813 msgid "color information stored in an image, higher is better" msgstr "画像に保存される色情報。値が大きいほど良質です" -#: ../src/imageio/format/avif.c:787 +#. +#. * Color mode combo box +#. +#. shortfile option combo box +#: ../src/imageio/format/avif.c:820 ../src/imageio/format/tiff.c:944 +msgid "B&W as grayscale" +msgstr "グレースケールとして白黒" + +#: ../src/imageio/format/avif.c:821 ../src/imageio/format/tiff.c:945 msgid "saving as grayscale will reduce the size for black & white images" msgstr "グレースケールとして保存すると白黒画像のサイズが減少します" -#: ../src/imageio/format/avif.c:789 -msgid "RGB colors" -msgstr "RGBカラー" - -#: ../src/imageio/format/avif.c:789 -msgid "grayscale" -msgstr "グレースケール" - #. #. * Tiling combo box #. -#: ../src/imageio/format/avif.c:799 +#: ../src/imageio/format/avif.c:832 msgid "tiling" msgstr "タイリング" -#: ../src/imageio/format/avif.c:800 +#: ../src/imageio/format/avif.c:833 msgid "" "tile an image into segments.\n" "\n" -"makes encoding faster. the impact on quality reduction is negligible, but " -"increases the file size." +"makes encoding faster, but increases the file size. the loss of image " +"quality is negligible." msgstr "" "画像をタイル化してセグメントにします\n" "\n" -"エンコードの速度が上がります。クオリティの低下は無視できる程度ですが、ファイ" -"ルサイズが大きくなります" +"エンコードの速度が上がりますが、ファイルサイズが大きくなります。クオリティの" +"低下は無視できる程度です" -#: ../src/imageio/format/avif.c:817 ../src/imageio/format/webp.c:383 -msgid "compression type" -msgstr "圧縮タイプ" +#. compression +#. Compression method combo box +#: ../src/imageio/format/avif.c:850 ../src/imageio/format/exr.cc:611 +#: ../src/imageio/format/pdf.c:676 ../src/imageio/format/png.c:653 +#: ../src/imageio/format/tiff.c:923 ../src/imageio/format/webp.c:414 +#: ../src/libs/masks.c:111 +msgid "compression" +msgstr "圧縮" -#: ../src/imageio/format/avif.c:825 +#: ../src/imageio/format/avif.c:858 msgid "the compression for the image" msgstr "画像の圧縮" @@ -11401,36 +11917,28 @@ #. step #. default #. digits -#: ../src/imageio/format/avif.c:842 ../src/imageio/format/j2k.c:661 -#: ../src/imageio/format/jpeg.c:587 ../src/imageio/format/jxl.c:579 -#: ../src/imageio/format/webp.c:394 ../src/libs/camera.c:564 +#: ../src/imageio/format/avif.c:878 ../src/imageio/format/j2k.c:679 +#: ../src/imageio/format/jpeg.c:584 ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/webp.c:425 ../src/libs/camera.c:564 msgid "quality" msgstr "クオリティ" -#: ../src/imageio/format/avif.c:847 +#: ../src/imageio/format/avif.c:881 msgid "" "the quality of an image, less quality means fewer details.\n" "\n" -"the following applies only to lossy setting\n" -"\n" -"pixelformat based on quality:\n" +"pixel format is controlled by quality:\n" "\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" msgstr "" "画像のクオリティ。低クオリティだとディテールが減少します\n" "\n" -"以下は非可逆モードに設定した場合にのみ適用されます\n" +"ピクセル形式はクオリティにもとづきます\n" "\n" -"クオリティにもとづくピクセル形式\n" -"\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" #: ../src/imageio/format/copy.c:109 ../src/libs/copy_history.c:370 -#: ../src/libs/image.c:583 +#: ../src/libs/image.c:647 msgid "copy" msgstr "コピー" @@ -11446,120 +11954,140 @@ msgid "the selected output profile doesn't work well with EXR" msgstr "選択した出力プロファイルはEXRでは適切に動作しません" -#: ../src/imageio/format/exr.cc:540 +#: ../src/imageio/format/exr.cc:576 msgid "OpenEXR" msgstr "OpenEXR" -#: ../src/imageio/format/exr.cc:567 +#: ../src/imageio/format/exr.cc:603 msgid "16 bit (float)" msgstr "16ビット(浮動小数点)" -#: ../src/imageio/format/exr.cc:567 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/format/exr.cc:603 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "32 bit (float)" msgstr "32ビット(浮動小数点)" -#. compression -#. Compression method combo box -#: ../src/imageio/format/exr.cc:575 ../src/imageio/format/pdf.c:676 -#: ../src/imageio/format/png.c:548 ../src/imageio/format/tiff.c:866 -#: ../src/libs/masks.c:110 -msgid "compression" -msgstr "圧縮" - -#: ../src/imageio/format/exr.cc:577 ../src/imageio/format/pdf.c:682 -#: ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/exr.cc:613 ../src/imageio/format/pdf.c:682 +#: ../src/imageio/format/tiff.c:924 msgid "uncompressed" msgstr "非圧縮" -#: ../src/imageio/format/exr.cc:578 +#: ../src/imageio/format/exr.cc:614 msgid "RLE" msgstr "RLE" -#: ../src/imageio/format/exr.cc:579 +#: ../src/imageio/format/exr.cc:615 msgid "ZIPS" msgstr "ZIPS" -#: ../src/imageio/format/exr.cc:580 +#: ../src/imageio/format/exr.cc:616 msgid "ZIP" msgstr "ZIP" -#: ../src/imageio/format/exr.cc:581 +#: ../src/imageio/format/exr.cc:617 msgid "PIZ" msgstr "PIZ" -#: ../src/imageio/format/exr.cc:582 +#: ../src/imageio/format/exr.cc:618 msgid "PXR24" msgstr "PXR24" -#: ../src/imageio/format/exr.cc:583 +#: ../src/imageio/format/exr.cc:619 msgid "B44" msgstr "B44" -#: ../src/imageio/format/exr.cc:584 +#: ../src/imageio/format/exr.cc:620 msgid "B44A" msgstr "B44A" -#: ../src/imageio/format/exr.cc:585 +#: ../src/imageio/format/exr.cc:621 msgid "DWAA" msgstr "DWAA" -#: ../src/imageio/format/exr.cc:586 +#: ../src/imageio/format/exr.cc:622 msgid "DWAB" msgstr "DWAB" -#: ../src/imageio/format/j2k.c:618 +#: ../src/imageio/format/j2k.c:648 msgid "JPEG 2000 (12-bit)" msgstr "JPEG 2000(12ビット)" -#: ../src/imageio/format/j2k.c:652 -msgid "jp2" -msgstr "jp2" - -#: ../src/imageio/format/j2k.c:667 +#: ../src/imageio/format/j2k.c:684 msgid "DCP mode" msgstr "DCPモード" -#: ../src/imageio/format/j2k.c:670 +#: ../src/imageio/format/j2k.c:687 msgid "Cinema2K, 24FPS" msgstr "Cinema2K, 24FPS" -#: ../src/imageio/format/j2k.c:671 +#: ../src/imageio/format/j2k.c:688 msgid "Cinema2K, 48FPS" msgstr "Cinema2K, 48FPS" -#: ../src/imageio/format/j2k.c:672 +#: ../src/imageio/format/j2k.c:689 msgid "Cinema4K, 24FPS" msgstr "Cinema4K, 24FPS" -#: ../src/imageio/format/jpeg.c:564 +#: ../src/imageio/format/jpeg.c:546 msgid "JPEG (8-bit)" msgstr "JPEG(8ビット)" -#: ../src/imageio/format/jxl.c:471 -msgid "JPEG XL" -msgstr "JPEG XL" +#: ../src/imageio/format/jpeg.c:594 +msgid "chroma subsampling" +msgstr "クロマサブサンプリング" + +#: ../src/imageio/format/jpeg.c:595 +msgid "" +"chroma subsampling setting for JPEG encoder.\n" +"auto - use subsampling determined by the quality value\n" +"4:4:4 - no chroma subsampling\n" +"4:4:0 - color sampling rate halved vertically\n" +"4:2:2 - color sampling rate halved horizontally\n" +"4:2:0 - color sampling rate halved horizontally and vertically" +msgstr "" +"JPEGエンコーダーのクロマサブサンプリングの設定\n" +"自動 - クオリティの値によって定められたサブサンプリングを用います\n" +"4:4:4 - クロマサブサンプリングをしません\n" +"4:4:0 - 垂直に半減したカラーサンプリングレート\n" +"4:2:2 - 水平に半減したカラーサンプリングレート\n" +"4:2:0 - 水平および垂直に半減したカラーサンプリングレート" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:4" +msgstr "4:4:4" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:0" +msgstr "4:4:0" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:2" +msgstr "4:2:2" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:0" +msgstr "4:2:0" -#: ../src/imageio/format/jxl.c:556 ../src/imageio/format/pdf.c:81 -#: ../src/imageio/format/png.c:536 ../src/imageio/format/tiff.c:847 +#: ../src/imageio/format/jxl.c:567 ../src/imageio/format/pdf.c:81 +#: ../src/imageio/format/png.c:641 ../src/imageio/format/tiff.c:904 #: ../src/imageio/format/xcf.c:357 msgid "16 bit" msgstr "16ビット" #. Pixel format combo box -#: ../src/imageio/format/jxl.c:562 ../src/imageio/format/tiff.c:852 +#: ../src/imageio/format/jxl.c:573 ../src/imageio/format/tiff.c:909 msgid "pixel type" msgstr "ピクセルタイプ" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "unsigned integer" msgstr "符号なし整数" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "floating point" msgstr "浮動小数点" -#: ../src/imageio/format/jxl.c:580 +#: ../src/imageio/format/jxl.c:591 msgid "" "the quality of the output image\n" "0-29 = very lossy\n" @@ -11571,11 +12099,11 @@ "30-99 = JPEGクオリティ相当\n" "100 = 可逆(整数ビット深度のみ)" -#: ../src/imageio/format/jxl.c:589 +#: ../src/imageio/format/jxl.c:600 msgid "encoding color profile" msgstr "エンコードカラープロファイル" -#: ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/jxl.c:601 msgid "" "the color profile used by the encoder\n" "permit internal XYB color space conversion for more efficient lossy " @@ -11588,20 +12116,20 @@ "(可逆圧縮のために)元の画像の色空間を保持するためには変換を許可しないでくだ" "さい" -#: ../src/imageio/format/jxl.c:593 +#: ../src/imageio/format/jxl.c:604 msgid "internal" msgstr "内部" -#: ../src/imageio/format/jxl.c:593 ../src/libs/duplicate.c:399 -#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:782 +#: ../src/imageio/format/jxl.c:604 ../src/libs/duplicate.c:405 +#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:840 msgid "original" msgstr "未編集" -#: ../src/imageio/format/jxl.c:607 +#: ../src/imageio/format/jxl.c:618 msgid "encoding effort" msgstr "エンコードエフォート" -#: ../src/imageio/format/jxl.c:608 +#: ../src/imageio/format/jxl.c:619 msgid "" "the effort used to encode the image, higher efforts will have better results " "at the expense of longer encoding times" @@ -11609,11 +12137,11 @@ "画像をエンコードする際のエフォート\n" "高い値にすると、良い結果を得ることが出来ますが、エンコード時間が長くなります" -#: ../src/imageio/format/jxl.c:619 +#: ../src/imageio/format/jxl.c:630 msgid "decoding speed" msgstr "デコードの速さ" -#: ../src/imageio/format/jxl.c:620 +#: ../src/imageio/format/jxl.c:631 msgid "the preferred decoding speed with some sacrifice of quality" msgstr "クオリティの犠牲を伴う優先するデコード速度" @@ -11625,9 +12153,9 @@ msgid "invalid border size, using 0" msgstr "無効な縁のサイズです。0を使用します" -#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:316 -#: ../src/imageio/storage/email.c:137 ../src/imageio/storage/gallery.c:331 -#: ../src/imageio/storage/gallery.c:370 ../src/imageio/storage/piwigo.c:1202 +#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:460 +#: ../src/imageio/storage/email.c:187 ../src/imageio/storage/gallery.c:409 +#: ../src/imageio/storage/gallery.c:450 ../src/imageio/storage/piwigo.c:1236 #, c-format msgid "could not export to file `%s'!" msgstr "ファイル`%s'にエクスポートすることが出来ませんでした!" @@ -11687,8 +12215,8 @@ "例:10 mm、1 inch" #. dpi -#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1127 -#: ../src/libs/export.c:1150 +#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1218 +#: ../src/libs/export.c:1246 msgid "dpi" msgstr "dpi" @@ -11749,7 +12277,7 @@ "非圧縮: 高速ですがファイルサイズが大きくなります\n" "デフレート圧縮:ファイルサイズが小さくなりますが遅くなります" -#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:924 msgid "deflate" msgstr "デフレート圧縮" @@ -11780,60 +12308,23 @@ msgid "debug" msgstr "デバッグ" -#: ../src/imageio/format/pfm.c:120 -msgid "PFM" -msgstr "PFM" - -#: ../src/imageio/format/png.c:493 -msgid "PNG" -msgstr "PNG" - #: ../src/imageio/format/ppm.c:111 msgid "PPM (16-bit)" msgstr "PPM(16ビット)" -#: ../src/imageio/format/tiff.c:228 -msgid "will export as a grayscale image" -msgstr "グレイスケールの画像としてエクスポート" +#: ../src/imageio/format/tiff.c:246 +msgid "not a B&W image, will not export as grayscale" +msgstr "白黒画像ではありません、グレースケールとしてエクスポートされません" -#: ../src/imageio/format/tiff.c:774 -msgid "TIFF" -msgstr "TIFF" - -#: ../src/imageio/format/tiff.c:868 +#: ../src/imageio/format/tiff.c:925 msgid "deflate with predictor" msgstr "デフレート予測圧縮" -#: ../src/imageio/format/tiff.c:878 +#: ../src/imageio/format/tiff.c:935 msgid "compression level" msgstr "圧縮レベル" -#. shortfile option combo box -#: ../src/imageio/format/tiff.c:887 -msgid "b&w image" -msgstr "白黒画像" - -#: ../src/imageio/format/tiff.c:888 -msgid "write RGB colors" -msgstr "RGBカラーを書き込む" - -#: ../src/imageio/format/tiff.c:888 -msgid "write grayscale" -msgstr "グレースケールを書き込む" - -#: ../src/imageio/format/webp.c:349 -msgid "WebP" -msgstr "WebP" - -#: ../src/imageio/format/webp.c:385 -msgid "lossy" -msgstr "非可逆" - -#: ../src/imageio/format/webp.c:385 -msgid "lossless" -msgstr "可逆" - -#: ../src/imageio/format/webp.c:397 +#: ../src/imageio/format/webp.c:426 msgid "" "for lossy, 0 gives the smallest size and 100 the best quality.\n" "for lossless, 0 is the fastest but gives larger files compared\n" @@ -11843,11 +12334,11 @@ "可逆の場合、0で最速になりますが、最遅である100と比べてファイルサイズが大きく" "なります" -#: ../src/imageio/format/webp.c:407 +#: ../src/imageio/format/webp.c:436 msgid "image hint" msgstr "画像の特徴" -#: ../src/imageio/format/webp.c:408 +#: ../src/imageio/format/webp.c:437 msgid "" "image characteristics hint for the underlying encoder.\n" "picture: digital picture, like portrait, inner shot\n" @@ -11859,15 +12350,15 @@ "写真:自然光下で撮影した屋外の写真\n" "図表: 不連続なトーンの画像 (グラフ、マップタイルなど)" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "picture" msgstr "画像" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "photo" msgstr "写真" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "graphic" msgstr "図表" @@ -11875,12 +12366,12 @@ msgid "XCF" msgstr "XCF" -#: ../src/imageio/storage/disk.c:71 ../src/libs/export.c:1040 +#: ../src/imageio/storage/disk.c:74 ../src/libs/export.c:1119 msgid "file on disk" msgstr "ディスク上のファイル" -#: ../src/imageio/storage/disk.c:169 ../src/imageio/storage/gallery.c:155 -#: ../src/imageio/storage/latex.c:154 +#: ../src/imageio/storage/disk.c:251 ../src/imageio/storage/gallery.c:204 +#: ../src/imageio/storage/latex.c:191 msgid "" "enter the path where to put exported images\n" "variables support bash like string manipulation\n" @@ -11890,53 +12381,63 @@ "変数は文字列操作のようなbashをサポートしています\n" "'$('とタイプすると、入力補完を有効にし、変数のリストを見ることが出来ます" -#: ../src/imageio/storage/disk.c:182 ../src/imageio/storage/piwigo.c:1079 +#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/piwigo.c:1113 msgid "on conflict" msgstr "ファイル名重複の場合" -#: ../src/imageio/storage/disk.c:185 +#: ../src/imageio/storage/disk.c:268 msgid "create unique filename" msgstr "固有のファイル名を作成" #. DT_COPY_HISTORY_APPEND -#: ../src/imageio/storage/disk.c:186 ../src/imageio/storage/piwigo.c:1083 -#: ../src/libs/copy_history.c:404 ../src/libs/image.c:601 -#: ../src/libs/styles.c:440 ../src/libs/styles.c:623 ../src/libs/styles.c:850 +#: ../src/imageio/storage/disk.c:269 ../src/imageio/storage/piwigo.c:1117 +#: ../src/libs/copy_history.c:404 ../src/libs/image.c:670 +#: ../src/libs/styles.c:854 msgid "overwrite" msgstr "上書き" -#: ../src/imageio/storage/disk.c:187 ../src/imageio/storage/piwigo.c:1081 -#: ../src/libs/styles.c:439 ../src/libs/styles.c:622 +#: ../src/imageio/storage/disk.c:270 +msgid "overwrite if changed" +msgstr "変更された場合上書き" + +#: ../src/imageio/storage/disk.c:271 ../src/imageio/storage/piwigo.c:1115 msgid "skip" msgstr "スキップ" -#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/gallery.c:253 -#: ../src/imageio/storage/latex.c:252 +#: ../src/imageio/storage/disk.c:371 ../src/imageio/storage/gallery.c:326 +#: ../src/imageio/storage/latex.c:289 #, c-format msgid "could not create directory `%s'!" msgstr "ディレクトリ`%s'を作成することが出来ませんでした!" -#: ../src/imageio/storage/disk.c:272 +#: ../src/imageio/storage/disk.c:382 #, c-format msgid "could not write to directory `%s'!" msgstr "ディレクトリ`%s'に書き込むことが出来ませんでした!" -#: ../src/imageio/storage/disk.c:302 +#: ../src/imageio/storage/disk.c:419 #, c-format msgid "%d/%d skipping `%s'" msgid_plural "%d/%d skipping `%s'" msgstr[0] "%d/%d枚 `%s'をスキップ" msgstr[1] "%d/%d枚 `%s'をスキップ" -#: ../src/imageio/storage/disk.c:321 ../src/imageio/storage/email.c:144 -#: ../src/imageio/storage/gallery.c:378 ../src/imageio/storage/latex.c:340 +#: ../src/imageio/storage/disk.c:441 +#, c-format +msgid "%d/%d skipping (not modified since export) `%s'" +msgid_plural "%d/%d skipping (not modified since export) `%s'" +msgstr[0] "%d/%d スキップ(エクスポートから更新無し) `%s'" +msgstr[1] "%d/%d スキップ(エクスポートから更新無し) `%s'" + +#: ../src/imageio/storage/disk.c:465 ../src/imageio/storage/email.c:194 +#: ../src/imageio/storage/gallery.c:458 ../src/imageio/storage/latex.c:377 #, c-format msgid "%d/%d exported to `%s'" msgid_plural "%d/%d exported to `%s'" msgstr[0] "%d/%d枚を`%s'にエクスポートしました" msgstr[1] "%d/%d枚を`%s'にエクスポートしました" -#: ../src/imageio/storage/disk.c:380 +#: ../src/imageio/storage/disk.c:530 msgid "" "you are going to export in overwrite mode, this will overwrite any existing " "images\n" @@ -11947,23 +12448,33 @@ "\n" "本当に続行しますか?" -#: ../src/imageio/storage/email.c:52 +#: ../src/imageio/storage/email.c:57 msgid "send as email" msgstr "Eメールで送信" -#: ../src/imageio/storage/email.c:198 +#. Unlikely in normal Windows installations, but let's notify the user if it happens +#: ../src/imageio/storage/email.c:265 +msgid "could not open mapi32.dll" +msgstr "mapi32.dllを開くことが出来ませんでした" + +#. Even more unlikely +#: ../src/imageio/storage/email.c:275 +msgid "could not get SendMail function" +msgstr "SendMail関数を取得することが出来ませんでした" + +#: ../src/imageio/storage/email.c:319 ../src/imageio/storage/email.c:409 msgid "images exported from darktable" msgstr "darktableからエクスポートされた画像" -#: ../src/imageio/storage/email.c:251 +#: ../src/imageio/storage/email.c:388 ../src/imageio/storage/email.c:467 msgid "could not launch email client!" msgstr "Eメールクライアントを起動することが出来ませんでした!" -#: ../src/imageio/storage/gallery.c:73 +#: ../src/imageio/storage/gallery.c:76 msgid "website gallery" msgstr "ウェブサイトギャラリー" -#: ../src/imageio/storage/gallery.c:171 +#: ../src/imageio/storage/gallery.c:224 msgid "enter the title of the website" msgstr "ウェブサイトのタイトルを入力する" @@ -11971,149 +12482,148 @@ msgid "LaTeX book template" msgstr "LaTeXブックテンプレート" -#: ../src/imageio/storage/latex.c:172 +#: ../src/imageio/storage/latex.c:209 msgid "enter the title of the book" msgstr "本のタイトルを入力" -#: ../src/imageio/storage/piwigo.c:522 +#: ../src/imageio/storage/piwigo.c:525 msgid "authenticated" msgstr "認証されました" -#: ../src/imageio/storage/piwigo.c:532 ../src/imageio/storage/piwigo.c:547 -#: ../src/imageio/storage/piwigo.c:559 +#: ../src/imageio/storage/piwigo.c:536 ../src/imageio/storage/piwigo.c:552 +#: ../src/imageio/storage/piwigo.c:565 msgid "not authenticated" msgstr "認証されていません" -#: ../src/imageio/storage/piwigo.c:538 +#: ../src/imageio/storage/piwigo.c:542 msgid "not authenticated, cannot reach server" msgstr "認証されていません。サーバーにアクセスすることが出来ません" -#: ../src/imageio/storage/piwigo.c:587 ../src/imageio/storage/piwigo.c:675 +#: ../src/imageio/storage/piwigo.c:595 ../src/imageio/storage/piwigo.c:684 msgid "create new album" msgstr "新しいアルバムを作成する" -#: ../src/imageio/storage/piwigo.c:676 +#: ../src/imageio/storage/piwigo.c:685 msgid "---" msgstr "---" -#: ../src/imageio/storage/piwigo.c:721 +#: ../src/imageio/storage/piwigo.c:735 msgid "cannot refresh albums" msgstr "アルバムを更新することが出来ません" -#: ../src/imageio/storage/piwigo.c:929 +#: ../src/imageio/storage/piwigo.c:950 msgid "Piwigo" msgstr "Piwigo" -#: ../src/imageio/storage/piwigo.c:954 +#: ../src/imageio/storage/piwigo.c:976 msgid "accounts" msgstr "アカウント" -#: ../src/imageio/storage/piwigo.c:972 ../src/imageio/storage/piwigo.c:978 +#: ../src/imageio/storage/piwigo.c:995 ../src/imageio/storage/piwigo.c:1004 msgid "server" msgstr "サーバー" -#: ../src/imageio/storage/piwigo.c:974 ../src/imageio/storage/piwigo.c:989 +#: ../src/imageio/storage/piwigo.c:998 msgid "" "the server name\n" "default protocol is https\n" -"specify http:// if non secure server" +"specify insecure protocol http:// explicitly if that protocol is required" msgstr "" "サーバー名\n" "デフォルトのプロトコルはhttps\n" -"安全でないサーバーの場合はhttp://を指定します" +"必要な場合安全でないプロトコルhttp://を明示的に指定します" -#: ../src/imageio/storage/piwigo.c:987 ../src/imageio/storage/piwigo.c:993 +#: ../src/imageio/storage/piwigo.c:1014 ../src/imageio/storage/piwigo.c:1021 msgid "user" msgstr "ユーザー" -#: ../src/imageio/storage/piwigo.c:1000 ../src/imageio/storage/piwigo.c:1005 +#: ../src/imageio/storage/piwigo.c:1029 ../src/imageio/storage/piwigo.c:1034 msgid "password" msgstr "パスワード" #. login button -#: ../src/imageio/storage/piwigo.c:1010 +#: ../src/imageio/storage/piwigo.c:1039 msgid "login" msgstr "ログイン" -#: ../src/imageio/storage/piwigo.c:1011 +#: ../src/imageio/storage/piwigo.c:1040 msgid "Piwigo login" msgstr "Piwigoログイン" #. permissions list -#: ../src/imageio/storage/piwigo.c:1025 +#: ../src/imageio/storage/piwigo.c:1056 msgid "visible to" msgstr "公開範囲" -#: ../src/imageio/storage/piwigo.c:1027 +#: ../src/imageio/storage/piwigo.c:1058 msgid "everyone" msgstr "全員" -#: ../src/imageio/storage/piwigo.c:1028 +#: ../src/imageio/storage/piwigo.c:1059 msgid "contacts" msgstr "コンタクト" -#: ../src/imageio/storage/piwigo.c:1029 +#: ../src/imageio/storage/piwigo.c:1060 msgid "friends" msgstr "友人" -#: ../src/imageio/storage/piwigo.c:1030 +#: ../src/imageio/storage/piwigo.c:1061 msgid "family" msgstr "家族" -#: ../src/imageio/storage/piwigo.c:1031 +#: ../src/imageio/storage/piwigo.c:1062 msgid "you" msgstr "自分" #. Available albums -#: ../src/imageio/storage/piwigo.c:1038 +#: ../src/imageio/storage/piwigo.c:1069 msgid "album" msgstr "アルバム" -#: ../src/imageio/storage/piwigo.c:1045 +#: ../src/imageio/storage/piwigo.c:1076 msgid "refresh album list" msgstr "アルバムリストを更新する" #. Album title -#: ../src/imageio/storage/piwigo.c:1063 +#: ../src/imageio/storage/piwigo.c:1096 msgid "new album" msgstr "新しいアルバム" -#. parent album list #. Available albums -#: ../src/imageio/storage/piwigo.c:1071 +#: ../src/imageio/storage/piwigo.c:1105 msgid "parent album" msgstr "親アルバム" -#: ../src/imageio/storage/piwigo.c:1075 +#: ../src/imageio/storage/piwigo.c:1109 msgid "click login button to start" msgstr "ログインボタンをクリックして開始する" -#: ../src/imageio/storage/piwigo.c:1080 +#: ../src/imageio/storage/piwigo.c:1114 msgid "don't check" msgstr "チェックしない" -#: ../src/imageio/storage/piwigo.c:1082 +#: ../src/imageio/storage/piwigo.c:1116 msgid "update metadata" msgstr "メタデータを更新" -#: ../src/imageio/storage/piwigo.c:1221 +#: ../src/imageio/storage/piwigo.c:1255 msgid "cannot create a new Piwigo album!" msgstr "新しいPiwigoアルバムを作成することが出来ません!" -#: ../src/imageio/storage/piwigo.c:1240 +#: ../src/imageio/storage/piwigo.c:1274 msgid "could not update to Piwigo!" msgstr "Piwigo に更新することが出来ませんでした!" -#: ../src/imageio/storage/piwigo.c:1255 +#: ../src/imageio/storage/piwigo.c:1290 msgid "could not upload to Piwigo!" msgstr "Piwigo にアップロードすることが出来ませんでした!" -#: ../src/imageio/storage/piwigo.c:1284 +#: ../src/imageio/storage/piwigo.c:1319 #, c-format msgid "%d/%d skipped (already exists)" msgstr "%d/%d枚スキップしました(既に存在します)" -#: ../src/imageio/storage/piwigo.c:1290 +#: ../src/imageio/storage/piwigo.c:1325 #, c-format msgid "%d/%d exported to Piwigo webalbum" msgid_plural "%d/%d exported to Piwigo webalbum" @@ -12133,54 +12643,54 @@ msgstr "回転またはペースペクティブ歪曲" #: ../src/iop/ashift.c:131 ../src/iop/channelmixer.c:139 -#: ../src/iop/channelmixerrgb.c:232 ../src/iop/clipping.c:320 -#: ../src/iop/colorbalance.c:161 ../src/iop/colorbalancergb.c:185 +#: ../src/iop/channelmixerrgb.c:233 ../src/iop/clipping.c:363 +#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:185 #: ../src/iop/colorchecker.c:130 ../src/iop/colorcorrection.c:77 -#: ../src/iop/crop.c:144 ../src/iop/lut3d.c:141 +#: ../src/iop/crop.c:134 ../src/iop/lut3d.c:142 ../src/iop/primaries.c:80 msgid "corrective or creative" msgstr "補正またはクリエイティブ" -#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:148 -#: ../src/iop/bilateral.cc:101 ../src/iop/bilateral.cc:103 -#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:233 -#: ../src/iop/channelmixerrgb.c:235 ../src/iop/clipping.c:321 -#: ../src/iop/clipping.c:323 ../src/iop/colorbalancergb.c:186 -#: ../src/iop/colorin.c:136 ../src/iop/crop.c:145 ../src/iop/crop.c:147 -#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:728 -#: ../src/iop/denoiseprofile.c:730 ../src/iop/diffuse.c:146 +#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:174 +#: ../src/iop/bilateral.cc:103 ../src/iop/bilateral.cc:105 +#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:236 ../src/iop/clipping.c:364 +#: ../src/iop/clipping.c:366 ../src/iop/colorbalancergb.c:186 +#: ../src/iop/colorin.c:136 ../src/iop/crop.c:135 ../src/iop/crop.c:137 +#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:780 +#: ../src/iop/denoiseprofile.c:782 ../src/iop/diffuse.c:146 #: ../src/iop/diffuse.c:148 ../src/iop/exposure.c:132 ../src/iop/exposure.c:134 #: ../src/iop/flip.c:111 ../src/iop/flip.c:112 ../src/iop/hazeremoval.c:113 -#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:242 ../src/iop/lens.cc:244 -#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/retouch.c:210 -#: ../src/iop/retouch.c:212 ../src/iop/sigmoid.c:103 -#: ../src/iop/splittoning.c:104 ../src/iop/splittoning.c:106 -#: ../src/iop/spots.c:70 ../src/iop/spots.c:72 ../src/iop/toneequal.c:325 -#: ../src/iop/velvia.c:106 ../src/iop/velvia.c:108 +#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:263 ../src/iop/lens.cc:265 +#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/primaries.c:81 +#: ../src/iop/primaries.c:83 ../src/iop/retouch.c:210 ../src/iop/retouch.c:212 +#: ../src/iop/sigmoid.c:209 ../src/iop/splittoning.c:106 +#: ../src/iop/splittoning.c:108 ../src/iop/spots.c:70 ../src/iop/spots.c:72 +#: ../src/iop/toneequal.c:333 ../src/iop/velvia.c:99 ../src/iop/velvia.c:101 msgid "linear, RGB, scene-referred" msgstr "リニア、RGB、シーン参照" -#: ../src/iop/ashift.c:133 ../src/iop/borders.c:200 ../src/iop/clipping.c:322 -#: ../src/iop/crop.c:146 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 +#: ../src/iop/ashift.c:133 ../src/iop/borders.c:325 ../src/iop/clipping.c:365 +#: ../src/iop/crop.c:136 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 msgid "geometric, RGB" msgstr "幾何学的、RGB" -#: ../src/iop/ashift.c:2820 +#: ../src/iop/ashift.c:2866 msgid "automatic cropping failed" msgstr "自動トリミングに失敗しました" -#: ../src/iop/ashift.c:3234 ../src/iop/ashift.c:3286 ../src/iop/ashift.c:3334 +#: ../src/iop/ashift.c:3276 ../src/iop/ashift.c:3328 ../src/iop/ashift.c:3375 msgid "data pending - please repeat" msgstr "データ保留中 - 繰り返してください" -#: ../src/iop/ashift.c:3243 +#: ../src/iop/ashift.c:3285 msgid "could not detect structural data in image" msgstr "画像内に構造データを検出することが出来ませんでした" -#: ../src/iop/ashift.c:3255 +#: ../src/iop/ashift.c:3297 msgid "could not run outlier removal" msgstr "外れ値除去を実行することが出来ませんでした" -#: ../src/iop/ashift.c:3434 +#: ../src/iop/ashift.c:3474 #, c-format msgid "" "not enough structure for automatic correction\n" @@ -12189,41 +12699,41 @@ "自動補正に必要な構造が描かれていません\n" "水平方向の線と垂直方向の線がそれぞれ最低%d本必要です" -#: ../src/iop/ashift.c:3440 +#: ../src/iop/ashift.c:3480 msgid "automatic correction failed, please correct manually" msgstr "自動補正に失敗しました。手動で補正してください" -#: ../src/iop/ashift.c:5096 +#: ../src/iop/ashift.c:5077 #, c-format msgid "only %d lines can be saved in parameters" msgstr "パラメータに保存することが出来る線は%d本のみです" -#: ../src/iop/ashift.c:5201 +#: ../src/iop/ashift.c:5157 #, c-format -msgid "rotation adjusted by %3.1f° to %3.1f°" -msgstr "rotation adjusted by %3.1f° to %3.1f°" +msgid "rotation adjusted by %3.2f° to %3.2f°" +msgstr "%3.1fから%3.1f°へ調整して回転" -#: ../src/iop/ashift.c:5852 ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 -#: ../src/iop/ashift.c:5961 +#: ../src/iop/ashift.c:5797 ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 +#: ../src/iop/ashift.c:5906 #, c-format msgid "lens shift (%s)" msgstr "レンズシフト(%s)" -#: ../src/iop/ashift.c:6125 +#: ../src/iop/ashift.c:6072 msgid "manual perspective" msgstr "手動パースペクティブ" -#: ../src/iop/ashift.c:6170 +#: ../src/iop/ashift.c:6117 msgctxt "section" msgid "perspective" msgstr "パースペクティブ" -#: ../src/iop/ashift.c:6177 ../src/iop/ashift.c:6286 ../src/iop/ashift.c:6288 -#: ../src/iop/ashift.c:6290 +#: ../src/iop/ashift.c:6124 ../src/iop/ashift.c:6233 ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6237 msgid "structure" msgstr "構造" -#: ../src/iop/ashift.c:6212 +#: ../src/iop/ashift.c:6159 msgid "" "rotate image\n" "right-click and drag to define a horizontal or vertical line by drawing on " @@ -12232,31 +12742,31 @@ "画像を回転します\n" "右クリックとドラッグで、画像に線を引き水平線と垂直線を定義します" -#: ../src/iop/ashift.c:6215 ../src/iop/ashift.c:6217 +#: ../src/iop/ashift.c:6162 ../src/iop/ashift.c:6164 msgid "apply lens shift correction in one direction" msgstr "一方向にレンズシフト補正を適用します" -#: ../src/iop/ashift.c:6219 +#: ../src/iop/ashift.c:6166 msgid "shear the image along one diagonal" msgstr "対角線に沿って画像をせん断変形します" -#: ../src/iop/ashift.c:6220 ../src/iop/clipping.c:2117 +#: ../src/iop/ashift.c:6167 ../src/iop/clipping.c:2170 msgid "automatically crop to avoid black edges" msgstr "自動的にトリミングして、周辺に黒い縁が出来ないようにします" -#: ../src/iop/ashift.c:6221 +#: ../src/iop/ashift.c:6168 msgid "" "lens model of the perspective correction: generic or according to the focal " "length" msgstr "パースペクティブ補正をするレンズのモデル:汎用または焦点距離別" -#: ../src/iop/ashift.c:6224 +#: ../src/iop/ashift.c:6171 msgid "focal length of the lens, default value set from EXIF data if available" msgstr "" "レンズの焦点距離\n" "exifデータに記録されている値をデフォルトで設定します" -#: ../src/iop/ashift.c:6227 +#: ../src/iop/ashift.c:6174 msgid "" "crop factor of the camera sensor, default value set from EXIF data if " "available, manual setting is often required" @@ -12265,7 +12775,7 @@ "exifデータに記録されている値をデフォルトで設定します\n" "多くの場合、手動で設定する必要があります" -#: ../src/iop/ashift.c:6231 +#: ../src/iop/ashift.c:6178 msgid "" "the level of lens dependent correction, set to maximum for full lens " "dependency, set to zero for the generic case" @@ -12274,11 +12784,11 @@ "最大値に設定すると完全にレンズに依存します\n" "汎用的なケースでは0に設定します" -#: ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6182 msgid "adjust aspect ratio of image by horizontal and vertical scaling" msgstr "画像を水平/垂直方向に拡大縮小してアスペクト比を調整します" -#: ../src/iop/ashift.c:6237 +#: ../src/iop/ashift.c:6184 msgid "" "automatically correct for vertical perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12288,7 +12798,7 @@ "Ctrl+クリックすると、回転のみ補正します\n" "Shift+クリックすると、レンズシフトのみ補正します" -#: ../src/iop/ashift.c:6241 +#: ../src/iop/ashift.c:6188 msgid "" "automatically correct for horizontal perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12298,7 +12808,7 @@ "Ctrl+クリックすると、回転のみ補正します\n" "Shift+クリックすると、レンズシフトのみ補正します" -#: ../src/iop/ashift.c:6245 +#: ../src/iop/ashift.c:6192 msgid "" "automatically correct for vertical and horizontal perspective distortions, " "fitting rotation, lens shift in both directions, and shear\n" @@ -12312,7 +12822,7 @@ "Shift+クリックすると、レンズシフトのみ補正します\n" "Ctrl+Shift +クリックすると、回転とレンズシフトのみ補正します" -#: ../src/iop/ashift.c:6252 +#: ../src/iop/ashift.c:6199 msgid "" "automatically analyse line structure in image\n" "ctrl+click for an additional edge enhancement\n" @@ -12324,226 +12834,226 @@ "Shift+クリックすると、ディテール強化をさらに強めます\n" "Ctrl+Shift +クリックすると、両方の方法を組み合わせて用います" -#: ../src/iop/ashift.c:6257 +#: ../src/iop/ashift.c:6204 msgid "manually define perspective rectangle" msgstr "パースペクティブの矩形を手動で定義" -#: ../src/iop/ashift.c:6258 +#: ../src/iop/ashift.c:6205 msgid "manually draw structure lines" msgstr "構造線を手描き" -#: ../src/iop/ashift.c:6287 +#: ../src/iop/ashift.c:6234 msgid "rectangle" msgstr "矩形" -#: ../src/iop/ashift.c:6289 +#: ../src/iop/ashift.c:6236 msgid "lines" msgstr "線" -#: ../src/iop/ashift.c:6323 ../src/iop/clipping.c:3343 +#: ../src/iop/ashift.c:6270 ../src/iop/clipping.c:3383 #, c-format msgid "[%s] define/rotate horizon" msgstr "【%s】水平線を定義する/回転する" -#: ../src/iop/ashift.c:6326 +#: ../src/iop/ashift.c:6273 #, c-format msgid "[%s on segment] select segment" msgstr "【線分の上で%s】線分を選択する" -#: ../src/iop/ashift.c:6330 +#: ../src/iop/ashift.c:6277 #, c-format msgid "[%s on segment] unselect segment" msgstr "【線分の上で%s】線分の選択を解除する" -#: ../src/iop/ashift.c:6334 +#: ../src/iop/ashift.c:6281 #, c-format msgid "[%s] select all segments from zone" msgstr "【%s】ゾーンの全ての線分を選択します" -#: ../src/iop/ashift.c:6338 +#: ../src/iop/ashift.c:6285 #, c-format msgid "[%s] unselect all segments from zone" msgstr "【%s】ゾーンの全ての線分の選択を解除します" -#: ../src/iop/atrous.c:123 ../src/iop/atrous.c:1638 +#: ../src/iop/atrous.c:122 ../src/iop/atrous.c:1770 msgid "contrast equalizer" msgstr "コントラストイコライザー" -#: ../src/iop/atrous.c:128 +#: ../src/iop/atrous.c:127 msgid "sharpness|acutance|local contrast" msgstr "シャープネス|アキュータンス|ローカルコントラスト" -#: ../src/iop/atrous.c:133 +#: ../src/iop/atrous.c:132 msgid "add or remove local contrast, sharpness, acutance" msgstr "" "局所的なコントラスト、シャープネス、アキュータンスを追加または削除します" -#: ../src/iop/atrous.c:134 ../src/iop/bilateral.cc:100 ../src/iop/diffuse.c:145 +#: ../src/iop/atrous.c:133 ../src/iop/bilateral.cc:102 ../src/iop/diffuse.c:145 #: ../src/iop/exposure.c:131 ../src/iop/filmicrgb.c:352 #: ../src/iop/graduatednd.c:146 ../src/iop/negadoctor.c:146 -#: ../src/iop/rgbcurve.c:143 ../src/iop/rgblevels.c:123 ../src/iop/shadhi.c:197 -#: ../src/iop/sigmoid.c:102 ../src/iop/tonecurve.c:211 -#: ../src/iop/toneequal.c:324 +#: ../src/iop/rgbcurve.c:145 ../src/iop/rgblevels.c:125 ../src/iop/shadhi.c:144 +#: ../src/iop/sigmoid.c:209 ../src/iop/tonecurve.c:184 +#: ../src/iop/toneequal.c:332 msgid "corrective and creative" msgstr "補正およびクリエイティブ" -#: ../src/iop/atrous.c:135 ../src/iop/atrous.c:137 -#: ../src/iop/colorbalance.c:162 +#: ../src/iop/atrous.c:134 ../src/iop/atrous.c:136 +#: ../src/iop/colorbalance.c:164 msgid "linear, Lab, scene-referred" msgstr "リニア、Lab、シーン参照" -#: ../src/iop/atrous.c:136 ../src/iop/censorize.c:85 +#: ../src/iop/atrous.c:135 ../src/iop/censorize.c:85 #: ../src/iop/hazeremoval.c:114 msgid "frequential, RGB" msgstr "周波数的、RGB" -#: ../src/iop/atrous.c:727 +#: ../src/iop/atrous.c:799 msgctxt "eq_preset" msgid "coarse" msgstr "粗い" -#: ../src/iop/atrous.c:742 +#: ../src/iop/atrous.c:815 msgid "denoise & sharpen" msgstr "ノイズ除去&シャープ化" -#: ../src/iop/atrous.c:757 +#: ../src/iop/atrous.c:831 msgctxt "atrous" msgid "sharpen" msgstr "シャープ化" -#: ../src/iop/atrous.c:772 +#: ../src/iop/atrous.c:847 msgid "denoise chroma" msgstr "クロマノイズ除去" -#: ../src/iop/atrous.c:787 +#: ../src/iop/atrous.c:863 msgid "denoise" msgstr "ノイズ除去" -#: ../src/iop/atrous.c:803 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:421 +#: ../src/iop/atrous.c:880 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:448 msgid "bloom" msgstr "ブルーム" -#: ../src/iop/atrous.c:818 ../src/iop/bilat.c:169 +#: ../src/iop/atrous.c:896 ../src/iop/bilat.c:186 msgid "clarity" msgstr "明瞭化" -#: ../src/iop/atrous.c:838 +#: ../src/iop/atrous.c:917 msgid "deblur: large blur, strength 3" msgstr "ぼけ除去:大きなぼけ、強さ 3" -#: ../src/iop/atrous.c:855 +#: ../src/iop/atrous.c:935 msgid "deblur: medium blur, strength 3" msgstr "ぼけ除去:中程度のぼけ、強さ 3" -#: ../src/iop/atrous.c:871 +#: ../src/iop/atrous.c:952 msgid "deblur: fine blur, strength 3" msgstr "ぼけ除去:微細なぼけ、強さ 3" -#: ../src/iop/atrous.c:889 +#: ../src/iop/atrous.c:971 msgid "deblur: large blur, strength 2" msgstr "ぼけ除去:大きなぼけ、強さ 2" -#: ../src/iop/atrous.c:906 +#: ../src/iop/atrous.c:989 msgid "deblur: medium blur, strength 2" msgstr "ぼけ除去:中程度のぼけ、強さ 2" -#: ../src/iop/atrous.c:922 +#: ../src/iop/atrous.c:1006 msgid "deblur: fine blur, strength 2" msgstr "ぼけ除去:微細なぼけ、強さ 2" -#: ../src/iop/atrous.c:940 +#: ../src/iop/atrous.c:1025 msgid "deblur: large blur, strength 1" msgstr "ぼけ除去:大きなぼけ、強さ 1" -#: ../src/iop/atrous.c:957 +#: ../src/iop/atrous.c:1043 msgid "deblur: medium blur, strength 1" msgstr "ぼけ除去:中程度のぼけ、強さ 1" -#: ../src/iop/atrous.c:973 +#: ../src/iop/atrous.c:1060 msgid "deblur: fine blur, strength 1" msgstr "ぼけ除去:微細なぼけ、強さ 1" -#: ../src/iop/atrous.c:1289 ../src/iop/atrous.c:1525 -#: ../src/iop/denoiseprofile.c:3510 ../src/iop/rawdenoise.c:738 +#: ../src/iop/atrous.c:1390 ../src/iop/atrous.c:1639 +#: ../src/iop/denoiseprofile.c:3514 ../src/iop/rawdenoise.c:754 msgid "coarse" msgstr "粗い" -#: ../src/iop/atrous.c:1296 ../src/iop/atrous.c:1526 -#: ../src/iop/denoiseprofile.c:3518 ../src/iop/rawdenoise.c:746 +#: ../src/iop/atrous.c:1397 ../src/iop/atrous.c:1640 +#: ../src/iop/denoiseprofile.c:3522 ../src/iop/rawdenoise.c:762 msgid "fine" msgstr "細かい" -#: ../src/iop/atrous.c:1308 +#: ../src/iop/atrous.c:1409 msgid "contrasty" msgstr "コントラスト強い" -#: ../src/iop/atrous.c:1314 ../src/iop/denoiseprofile.c:3532 -#: ../src/iop/rawdenoise.c:760 +#: ../src/iop/atrous.c:1415 ../src/iop/denoiseprofile.c:3536 +#: ../src/iop/rawdenoise.c:776 msgid "noisy" msgstr "ノイズ多い" #. case atrous_s: -#: ../src/iop/atrous.c:1317 +#: ../src/iop/atrous.c:1418 msgid "bold" msgstr "太い" -#: ../src/iop/atrous.c:1318 +#: ../src/iop/atrous.c:1419 msgid "dull" msgstr "ぼんやり" -#: ../src/iop/atrous.c:1513 ../src/iop/atrous.c:1564 +#: ../src/iop/atrous.c:1627 ../src/iop/atrous.c:1685 msgid "boost" msgstr "ブースト" -#: ../src/iop/atrous.c:1514 +#: ../src/iop/atrous.c:1628 msgid "reduce" msgstr "減少" -#: ../src/iop/atrous.c:1515 +#: ../src/iop/atrous.c:1629 msgid "raise" msgstr "上げる" -#: ../src/iop/atrous.c:1516 +#: ../src/iop/atrous.c:1630 msgid "lower" msgstr "下げる" -#: ../src/iop/atrous.c:1523 +#: ../src/iop/atrous.c:1637 msgid "coarsest" msgstr "最も粗い" -#: ../src/iop/atrous.c:1524 +#: ../src/iop/atrous.c:1638 msgid "coarser" msgstr "より粗い" -#: ../src/iop/atrous.c:1527 +#: ../src/iop/atrous.c:1641 msgid "finer" msgstr "より細かい" -#: ../src/iop/atrous.c:1528 +#: ../src/iop/atrous.c:1642 msgid "finest" msgstr "最も細かい" -#: ../src/iop/atrous.c:1586 ../src/libs/export.c:1143 ../src/libs/export.c:1158 +#: ../src/iop/atrous.c:1710 ../src/libs/export.c:1239 ../src/libs/export.c:1255 msgid "x" msgstr "x" -#: ../src/iop/atrous.c:1666 ../src/iop/nlmeans.c:465 +#: ../src/iop/atrous.c:1799 ../src/iop/nlmeans.c:468 msgid "luma" msgstr "輝度(ルーマ)" -#: ../src/iop/atrous.c:1666 +#: ../src/iop/atrous.c:1800 msgid "change lightness at each feature size" msgstr "それぞれのフィーチャーサイズで明度を変更します" -#: ../src/iop/atrous.c:1667 +#: ../src/iop/atrous.c:1802 msgid "change color saturation at each feature size" msgstr "それぞれのフィーチャーサイズで色の彩度(サチュレーション)を変更します" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1804 msgid "edges" msgstr "エッジ" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1805 msgid "" "change edge halos at each feature size\n" "only changes results of luma and chroma tabs" @@ -12551,103 +13061,103 @@ "それぞれのフィーチャーサイズでエッジ周辺のハロを変更します\n" "輝度(ルーマ)タブと彩度(クロマ)タブの結果だけ変更します" -#: ../src/iop/atrous.c:1679 ../src/iop/colorbalancergb.c:2058 -#: ../src/iop/colorzones.c:2473 ../src/iop/denoiseprofile.c:3743 -#: ../src/iop/filmicrgb.c:4407 ../src/iop/lowlight.c:823 -#: ../src/iop/rawdenoise.c:919 ../src/iop/toneequal.c:3371 +#: ../src/iop/atrous.c:1818 ../src/iop/colorbalancergb.c:2129 +#: ../src/iop/colorzones.c:2732 ../src/iop/denoiseprofile.c:3747 +#: ../src/iop/filmicrgb.c:4471 ../src/iop/lowlight.c:821 +#: ../src/iop/rawdenoise.c:935 ../src/iop/toneequal.c:3424 msgid "graph" msgstr "グラフ" -#: ../src/iop/atrous.c:1690 ../src/iop/colorzones.c:2470 +#: ../src/iop/atrous.c:1836 ../src/iop/colorzones.c:2729 msgid "make effect stronger or weaker" msgstr "効果を強く、または弱くします" -#: ../src/iop/basecurve.c:213 +#: ../src/iop/basecurve.c:260 msgid "neutral" msgstr "ニュートラル" # Canon EOS 調 1 -#: ../src/iop/basecurve.c:214 +#: ../src/iop/basecurve.c:261 msgid "canon eos like" msgstr "キヤノンEOS 1" # Canon EOS 調 2 -#: ../src/iop/basecurve.c:215 +#: ../src/iop/basecurve.c:262 msgid "canon eos like alternate" msgstr "キヤノンEOS 2" # Nikon 調 1 -#: ../src/iop/basecurve.c:216 +#: ../src/iop/basecurve.c:263 msgid "nikon like" msgstr "ニコン 1" # Nikon 調 2 -#: ../src/iop/basecurve.c:217 +#: ../src/iop/basecurve.c:264 msgid "nikon like alternate" msgstr "ニコン 2" -#: ../src/iop/basecurve.c:218 +#: ../src/iop/basecurve.c:265 msgid "sony alpha like" msgstr "ソニーα" -#: ../src/iop/basecurve.c:219 +#: ../src/iop/basecurve.c:266 msgid "pentax like" msgstr "ペンタックス" -#: ../src/iop/basecurve.c:220 +#: ../src/iop/basecurve.c:267 msgid "ricoh like" msgstr "リコー" # OLYMPUS 調 1 -#: ../src/iop/basecurve.c:221 +#: ../src/iop/basecurve.c:268 msgid "olympus like" msgstr "オリンパス 1" # OLYMPUS 調 2 -#: ../src/iop/basecurve.c:222 +#: ../src/iop/basecurve.c:269 msgid "olympus like alternate" msgstr "オリンパス 2" -#: ../src/iop/basecurve.c:223 +#: ../src/iop/basecurve.c:270 msgid "panasonic like" msgstr "パナソニック" -#: ../src/iop/basecurve.c:224 +#: ../src/iop/basecurve.c:271 msgid "leica like" msgstr "ライカ" -#: ../src/iop/basecurve.c:225 +#: ../src/iop/basecurve.c:272 msgid "kodak easyshare like" msgstr "コダックEasyShare" -#: ../src/iop/basecurve.c:226 +#: ../src/iop/basecurve.c:273 msgid "konica minolta like" msgstr "コニカミノルタ" -#: ../src/iop/basecurve.c:227 +#: ../src/iop/basecurve.c:274 msgid "samsung like" msgstr "サムスン" -#: ../src/iop/basecurve.c:228 +#: ../src/iop/basecurve.c:275 msgid "fujifilm like" msgstr "富士フイルム" -#: ../src/iop/basecurve.c:229 +#: ../src/iop/basecurve.c:276 msgid "nokia like" msgstr "ノキア" #. clang-format off #. smoother cubic spline curve -#: ../src/iop/basecurve.c:284 ../src/iop/colorzones.c:2495 -#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1173 +#: ../src/iop/basecurve.c:331 ../src/iop/colorzones.c:2763 +#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1195 msgid "cubic spline" msgstr "3次スプライン" -#: ../src/iop/basecurve.c:343 +#: ../src/iop/basecurve.c:390 msgid "base curve" msgstr "ベースカーブ" -#: ../src/iop/basecurve.c:350 +#: ../src/iop/basecurve.c:397 msgid "" "apply a view transform based on personal or camera manufacturer look,\n" "for corrective purposes, to prepare images for display" @@ -12655,68 +13165,68 @@ "個人の、あるいはカメラメーカーのルックにもとづいてビュー変換を適用します\n" "補正を目的として、ディスプレイでの表示に合わせて画像を準備します" -#: ../src/iop/basecurve.c:352 ../src/iop/cacorrect.c:78 -#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:135 -#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:727 +#: ../src/iop/basecurve.c:399 ../src/iop/cacorrect.c:84 +#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:120 +#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:779 #: ../src/iop/flip.c:110 ../src/iop/hazeremoval.c:112 -#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:73 -#: ../src/iop/invert.c:119 ../src/iop/lens.cc:241 ../src/iop/nlmeans.c:95 -#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:130 -#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:94 ../src/iop/spots.c:69 -#: ../src/iop/temperature.c:212 +#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:75 +#: ../src/iop/invert.c:136 ../src/iop/lens.cc:262 ../src/iop/nlmeans.c:89 +#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:144 +#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:96 ../src/iop/spots.c:69 +#: ../src/iop/temperature.c:220 msgid "corrective" msgstr "補正" -#: ../src/iop/basecurve.c:353 ../src/iop/channelmixer.c:140 -#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:142 +#: ../src/iop/basecurve.c:400 ../src/iop/channelmixer.c:140 +#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:143 #: ../src/iop/negadoctor.c:147 ../src/iop/profile_gamma.c:103 -#: ../src/iop/rgbcurve.c:144 ../src/iop/rgbcurve.c:146 -#: ../src/iop/rgblevels.c:124 ../src/iop/sigmoid.c:105 ../src/iop/soften.c:102 -#: ../src/iop/soften.c:104 +#: ../src/iop/rgbcurve.c:146 ../src/iop/rgbcurve.c:148 +#: ../src/iop/rgblevels.c:126 ../src/iop/sigmoid.c:210 ../src/iop/soften.c:104 +#: ../src/iop/soften.c:106 msgid "linear, RGB, display-referred" msgstr "リニア、RGB、ディスプレイ参照" -#: ../src/iop/basecurve.c:354 ../src/iop/basicadj.c:149 -#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:187 +#: ../src/iop/basecurve.c:401 ../src/iop/basicadj.c:175 +#: ../src/iop/colorbalance.c:165 ../src/iop/colorbalancergb.c:187 #: ../src/iop/dither.c:121 ../src/iop/filmicrgb.c:354 #: ../src/iop/graduatednd.c:148 ../src/iop/negadoctor.c:148 -#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:145 -#: ../src/iop/rgblevels.c:125 ../src/iop/sigmoid.c:104 -#: ../src/iop/vignette.c:161 ../src/iop/watermark.c:379 +#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:147 +#: ../src/iop/rgblevels.c:127 ../src/iop/sigmoid.c:210 +#: ../src/iop/vignette.c:122 ../src/iop/watermark.c:424 msgid "non-linear, RGB" msgstr "ノンリニア、RGB" -#: ../src/iop/basecurve.c:355 ../src/iop/dither.c:120 ../src/iop/dither.c:122 +#: ../src/iop/basecurve.c:402 ../src/iop/dither.c:120 ../src/iop/dither.c:122 #: ../src/iop/filmicrgb.c:355 ../src/iop/graduatednd.c:149 #: ../src/iop/negadoctor.c:149 ../src/iop/profile_gamma.c:105 -#: ../src/iop/rgblevels.c:126 ../src/iop/vignette.c:160 -#: ../src/iop/vignette.c:162 ../src/iop/watermark.c:378 -#: ../src/iop/watermark.c:380 +#: ../src/iop/rgblevels.c:128 ../src/iop/vignette.c:121 +#: ../src/iop/vignette.c:123 ../src/iop/watermark.c:423 +#: ../src/iop/watermark.c:425 msgid "non-linear, RGB, display-referred" msgstr "ノンリニア、 RGB、ディスプレイ参照" -#: ../src/iop/basecurve.c:2184 +#: ../src/iop/basecurve.c:2205 msgid "abscissa: input, ordinate: output. works on RGB channels" msgstr "" "横軸:入力 縦軸:出力\n" "RGBチャンネル上で動作" -#: ../src/iop/basecurve.c:2190 ../src/iop/basicadj.c:612 -#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1072 -#: ../src/iop/tonecurve.c:1184 +#: ../src/iop/basecurve.c:2211 ../src/iop/basicadj.c:642 +#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1133 +#: ../src/iop/tonecurve.c:1206 msgid "method to preserve colors when applying contrast" msgstr "コントラストを適用する際に色を保持する方法" -#: ../src/iop/basecurve.c:2194 +#: ../src/iop/basecurve.c:2215 msgid "two exposures" msgstr "二重露出" -#: ../src/iop/basecurve.c:2195 +#: ../src/iop/basecurve.c:2216 msgid "three exposures" msgstr "三重露出" # 元画像と異なる補正値で露光した画像を合成し、ハイダイナミックレンジを圧縮します。 使用前のハイライトに基づいて露光を決定します -#: ../src/iop/basecurve.c:2196 +#: ../src/iop/basecurve.c:2217 msgid "" "fuse this image stopped up/down a couple of times with itself, to compress " "high dynamic range. expose for the highlights before use." @@ -12724,11 +13234,11 @@ "元画像と異なる露出補正値と合成し、ハイダイナミックレンジを圧縮します\n" "使用前のハイライトにもとづいて露出を決定します" -#: ../src/iop/basecurve.c:2201 +#: ../src/iop/basecurve.c:2222 msgid "how many stops to shift the individual exposures apart" msgstr "合成する画像の露出を何段刻みにするか" -#: ../src/iop/basecurve.c:2210 +#: ../src/iop/basecurve.c:2231 msgid "" "whether to shift exposure up or down (-1: reduce highlight, +1: reduce " "shadows)" @@ -12736,42 +13246,41 @@ "露出を明暗どちらにずらすか\n" "(-1: ハイライト低減、+1:シャドウ低減)" -#: ../src/iop/basecurve.c:2215 ../src/iop/tonecurve.c:1187 +#: ../src/iop/basecurve.c:2236 ../src/iop/tonecurve.c:1209 msgid "scale for graph" msgstr "グラフの尺度" -#: ../src/iop/basicadj.c:136 +#: ../src/iop/basicadj.c:162 msgid "this module is deprecated. please use the quick access panel instead." msgstr "" "このモジュールは非推奨です\n" "代わりにクイックアクセスパネルを使用してください" -#: ../src/iop/basicadj.c:141 +#: ../src/iop/basicadj.c:167 msgid "basic adjustments" msgstr "基本調整" -#: ../src/iop/basicadj.c:146 +#: ../src/iop/basicadj.c:172 msgid "apply usual image adjustments" msgstr "通常の画像調整を適用する" -#: ../src/iop/basicadj.c:147 ../src/iop/bilat.c:102 ../src/iop/bloom.c:81 -#: ../src/iop/blurs.c:93 ../src/iop/borders.c:198 ../src/iop/censorize.c:83 -#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:97 -#: ../src/iop/colorize.c:105 ../src/iop/colormapping.c:153 -#: ../src/iop/colorzones.c:145 ../src/iop/grain.c:434 ../src/iop/highpass.c:78 -#: ../src/iop/levels.c:138 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 -#: ../src/iop/lowpass.c:134 ../src/iop/monochrome.c:98 ../src/iop/soften.c:101 -#: ../src/iop/splittoning.c:103 ../src/iop/velvia.c:105 -#: ../src/iop/vibrance.c:95 ../src/iop/vignette.c:159 -#: ../src/iop/watermark.c:377 +#: ../src/iop/basicadj.c:173 ../src/iop/bilat.c:83 ../src/iop/bloom.c:81 +#: ../src/iop/blurs.c:93 ../src/iop/borders.c:323 ../src/iop/censorize.c:83 +#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:89 +#: ../src/iop/colorize.c:98 ../src/iop/colormapping.c:153 +#: ../src/iop/colorzones.c:146 ../src/iop/grain.c:450 ../src/iop/highpass.c:78 +#: ../src/iop/levels.c:140 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 +#: ../src/iop/lowpass.c:106 ../src/iop/monochrome.c:100 ../src/iop/soften.c:103 +#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:98 ../src/iop/vibrance.c:97 +#: ../src/iop/vignette.c:120 ../src/iop/watermark.c:422 msgid "creative" msgstr "クリエイティブ" -#: ../src/iop/basicadj.c:150 ../src/iop/colorbalancergb.c:188 +#: ../src/iop/basicadj.c:176 ../src/iop/colorbalancergb.c:188 msgid "non-linear, RGB, scene-referred" msgstr "ノンリニア、RGB、シーン参照" -#: ../src/iop/basicadj.c:593 +#: ../src/iop/basicadj.c:623 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -12783,39 +13292,39 @@ "設定が間違っている場合、RGB値が負の値になり、色域から黒に近い色がクリップされ" "ます" -#: ../src/iop/basicadj.c:601 ../src/iop/exposure.c:1118 +#: ../src/iop/basicadj.c:631 ../src/iop/exposure.c:1136 msgid "adjust the exposure correction" msgstr "露出補正を調整します" -#: ../src/iop/basicadj.c:605 +#: ../src/iop/basicadj.c:635 msgid "highlight compression adjustment" msgstr "ハイライトの圧縮を調整します" -#: ../src/iop/basicadj.c:609 ../src/iop/colisa.c:308 +#: ../src/iop/basicadj.c:639 ../src/iop/colisa.c:302 msgid "contrast adjustment" msgstr "コントラストを調整します" -#: ../src/iop/basicadj.c:617 +#: ../src/iop/basicadj.c:647 msgid "middle gray adjustment" msgstr "ミドルグレー調整" -#: ../src/iop/basicadj.c:622 ../src/iop/colisa.c:309 +#: ../src/iop/basicadj.c:652 ../src/iop/colisa.c:303 msgid "brightness adjustment" msgstr "明るさ(ブライトネス)を調整します" -#: ../src/iop/basicadj.c:625 +#: ../src/iop/basicadj.c:655 msgid "saturation adjustment" msgstr "彩度調整" -#: ../src/iop/basicadj.c:628 +#: ../src/iop/basicadj.c:658 msgid "vibrance adjustment" msgstr "自然な彩度調整" -#: ../src/iop/basicadj.c:632 +#: ../src/iop/basicadj.c:662 msgid "apply auto exposure based on the entire image" msgstr "画像全体にもとづいて自動露出を適用します" -#: ../src/iop/basicadj.c:639 +#: ../src/iop/basicadj.c:669 msgid "" "apply auto exposure based on a region defined by the user\n" "click and drag to draw the area\n" @@ -12825,51 +13334,51 @@ "クリックとドラッグで領域を描きます\n" "右クリックすると、キャンセルします" -#: ../src/iop/basicadj.c:647 +#: ../src/iop/basicadj.c:677 msgid "clip" msgstr "クリップ" -#: ../src/iop/basicadj.c:649 +#: ../src/iop/basicadj.c:679 msgid "adjusts clipping value for auto exposure calculation" msgstr "自動露出の計算のクリップ値を調整します" #. local contrast -#: ../src/iop/bilat.c:96 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:551 +#: ../src/iop/bilat.c:77 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:578 msgid "local contrast" msgstr "ローカルコントラスト" -#: ../src/iop/bilat.c:101 +#: ../src/iop/bilat.c:82 msgid "manipulate local and global contrast separately" msgstr "局所的なコントラストと全体のコントラストを分けて操作します" -#: ../src/iop/bilat.c:103 ../src/iop/bilat.c:105 ../src/iop/bloom.c:82 +#: ../src/iop/bilat.c:84 ../src/iop/bilat.c:86 ../src/iop/bloom.c:82 #: ../src/iop/bloom.c:84 ../src/iop/colisa.c:91 ../src/iop/colisa.c:93 -#: ../src/iop/colorcontrast.c:98 ../src/iop/colorcontrast.c:100 +#: ../src/iop/colorcontrast.c:90 ../src/iop/colorcontrast.c:92 #: ../src/iop/colorcorrection.c:78 ../src/iop/colorcorrection.c:80 -#: ../src/iop/colorize.c:108 ../src/iop/colormapping.c:156 -#: ../src/iop/colorreconstruction.c:138 ../src/iop/colorzones.c:148 -#: ../src/iop/defringe.c:85 ../src/iop/grain.c:435 ../src/iop/grain.c:437 -#: ../src/iop/levels.c:141 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 -#: ../src/iop/monochrome.c:101 ../src/iop/nlmeans.c:96 ../src/iop/nlmeans.c:98 -#: ../src/iop/shadhi.c:200 ../src/iop/tonecurve.c:214 ../src/iop/vibrance.c:98 +#: ../src/iop/colorize.c:101 ../src/iop/colormapping.c:156 +#: ../src/iop/colorreconstruction.c:123 ../src/iop/colorzones.c:149 +#: ../src/iop/defringe.c:85 ../src/iop/grain.c:451 ../src/iop/grain.c:453 +#: ../src/iop/levels.c:143 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 +#: ../src/iop/monochrome.c:103 ../src/iop/nlmeans.c:90 ../src/iop/nlmeans.c:92 +#: ../src/iop/shadhi.c:147 ../src/iop/tonecurve.c:187 ../src/iop/vibrance.c:100 msgid "non-linear, Lab, display-referred" msgstr "ノンリニア、Lab、ディスプレイ参照" -#: ../src/iop/bilat.c:104 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 -#: ../src/iop/colorcontrast.c:99 ../src/iop/colorcorrection.c:79 -#: ../src/iop/colorize.c:107 ../src/iop/colormapping.c:155 -#: ../src/iop/colorreconstruction.c:137 ../src/iop/colorzones.c:147 -#: ../src/iop/defringe.c:84 ../src/iop/grain.c:436 ../src/iop/levels.c:140 -#: ../src/iop/monochrome.c:100 ../src/iop/nlmeans.c:97 ../src/iop/shadhi.c:199 -#: ../src/iop/tonecurve.c:213 ../src/iop/vibrance.c:97 +#: ../src/iop/bilat.c:85 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 +#: ../src/iop/colorcontrast.c:91 ../src/iop/colorcorrection.c:79 +#: ../src/iop/colorize.c:100 ../src/iop/colormapping.c:155 +#: ../src/iop/colorreconstruction.c:122 ../src/iop/colorzones.c:148 +#: ../src/iop/defringe.c:84 ../src/iop/grain.c:452 ../src/iop/levels.c:142 +#: ../src/iop/monochrome.c:102 ../src/iop/nlmeans.c:91 ../src/iop/shadhi.c:146 +#: ../src/iop/tonecurve.c:186 ../src/iop/vibrance.c:99 msgid "non-linear, Lab" msgstr "ノンリニア、Lab" -#: ../src/iop/bilat.c:178 +#: ../src/iop/bilat.c:195 msgid "HDR local tone-mapping" msgstr "HDRローカルトーンマッピング" -#: ../src/iop/bilat.c:431 +#: ../src/iop/bilat.c:441 msgid "" "the filter used for local contrast enhancement. bilateral is faster but can " "lead to artifacts around edges for extreme settings." @@ -12878,32 +13387,32 @@ "バイラテラルは高速ですが、極端な設定ではエッジの周りにアーティファクトが発生" "する可能性があります" -#: ../src/iop/bilat.c:435 ../src/iop/globaltonemap.c:635 +#: ../src/iop/bilat.c:445 ../src/iop/globaltonemap.c:668 msgid "detail" msgstr "ディテール" -#: ../src/iop/bilat.c:438 +#: ../src/iop/bilat.c:448 msgid "changes the local contrast" msgstr "局所的なコントラストを変更します" -#: ../src/iop/bilat.c:453 +#: ../src/iop/bilat.c:463 msgid "feature size of local details (spatial sigma of bilateral filter)" msgstr "" "局所的なディテールのフィーチャーサイズ(バイラテラルフィルタの空間標準偏差)" -#: ../src/iop/bilat.c:461 +#: ../src/iop/bilat.c:471 msgid "L difference to detect edges (range sigma of bilateral filter)" msgstr "エッジ検出のL差(バイラテラルフィルタのレンジ標準偏差)" -#: ../src/iop/bilat.c:467 +#: ../src/iop/bilat.c:477 msgid "changes the local contrast of highlights" msgstr "ハイライトの局所的なコントラストを変更します" -#: ../src/iop/bilat.c:473 +#: ../src/iop/bilat.c:483 msgid "changes the local contrast of shadows" msgstr "シャドウの局所的なコントラストを変更します" -#: ../src/iop/bilat.c:479 +#: ../src/iop/bilat.c:489 msgid "" "defines what counts as mid-tones. lower for better dynamic range compression " "(reduce shadow and highlight contrast), increase for more powerful local " @@ -12914,7 +13423,7 @@ "ラスト低減)が行われます\n" "値を上げると、局所的なコントラストがより強くなります" -#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:396 +#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:423 msgid "surface blur" msgstr "表面ぼかし" @@ -12922,24 +13431,24 @@ msgid "denoise (bilateral filter)" msgstr "ノイズ除去(バイラテラルフィルタ)" -#: ../src/iop/bilateral.cc:99 +#: ../src/iop/bilateral.cc:101 msgid "apply edge-aware surface blur to denoise or smoothen textures" msgstr "" "エッジを保存する表面ぼかしを適用して、\n" "テクスチャのノイズを除去するか、テクスチャを滑らかにします" -#: ../src/iop/bilateral.cc:102 ../src/iop/blurs.c:93 -#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:729 -#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/soften.c:103 -#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:107 +#: ../src/iop/bilateral.cc:104 ../src/iop/blurs.c:93 +#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:781 +#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/primaries.c:82 +#: ../src/iop/soften.c:105 ../src/iop/splittoning.c:107 ../src/iop/velvia.c:100 msgid "linear, RGB" msgstr "リニア、RGB" -#: ../src/iop/bilateral.cc:136 +#: ../src/iop/bilateral.cc:138 msgid "image too large" msgstr "画像が大きすぎます" -#: ../src/iop/bilateral.cc:137 +#: ../src/iop/bilateral.cc:139 msgid "" "this module is unable to process\n" "images with more than 2 gigapixels.\n" @@ -12948,19 +13457,19 @@ "このモジュールは2ギガピクセル以上の画像を処理することが出来ません\n" "処理がスキップされました" -#: ../src/iop/bilateral.cc:351 +#: ../src/iop/bilateral.cc:353 msgid "spatial extent of the gaussian" msgstr "ガウスフィルタの空間的広がり" -#: ../src/iop/bilateral.cc:355 +#: ../src/iop/bilateral.cc:357 msgid "how much to blur red" msgstr "赤のぼかし量" -#: ../src/iop/bilateral.cc:360 +#: ../src/iop/bilateral.cc:362 msgid "how much to blur green" msgstr "緑のぼかし量" -#: ../src/iop/bilateral.cc:365 +#: ../src/iop/bilateral.cc:367 msgid "how much to blur blue" msgstr "青のぼかし量" @@ -12968,20 +13477,20 @@ msgid "apply Orton effect for a dreamy aetherical look" msgstr "オートン効果を適用して、夢のような雰囲気のあるルックにします" -#: ../src/iop/bloom.c:368 ../src/iop/soften.c:369 ../src/libs/camera.c:567 -#: ../src/libs/masks.c:105 +#: ../src/iop/bloom.c:364 ../src/iop/soften.c:364 ../src/libs/camera.c:567 +#: ../src/libs/masks.c:106 msgid "size" msgstr "サイズ" -#: ../src/iop/bloom.c:370 +#: ../src/iop/bloom.c:366 msgid "the size of bloom" msgstr "ブルームの大きさ" -#: ../src/iop/bloom.c:374 +#: ../src/iop/bloom.c:370 msgid "the threshold of light" msgstr "ライトのしきい値" -#: ../src/iop/bloom.c:378 +#: ../src/iop/bloom.c:374 msgid "the strength of bloom" msgstr "ブルームの強さ" @@ -12997,272 +13506,281 @@ msgid "simulate physically-accurate lens and motion blurs" msgstr "物理的に正確なレンズと被写体ぶれをシミュレートします" -#: ../src/iop/borders.c:187 +#: ../src/iop/borders.c:312 msgid "framing" msgstr "縁取り" -#: ../src/iop/borders.c:192 +#: ../src/iop/borders.c:317 msgid "borders|enlarge canvas|expand canvas" msgstr "余白|キャンバスサイズ拡大|キャンバス拡張" -#: ../src/iop/borders.c:197 +#: ../src/iop/borders.c:322 msgid "add solid borders or margins around the picture" msgstr "写真の周りに無地の縁または余白を追加します" -#: ../src/iop/borders.c:199 ../src/iop/borders.c:201 ../src/iop/lut3d.c:144 +#: ../src/iop/borders.c:324 ../src/iop/borders.c:326 ../src/iop/lut3d.c:145 msgid "linear or non-linear, RGB, display-referred" msgstr "リニアあるいはノンリニア、RGB、ディスプレイ参照" -#: ../src/iop/borders.c:727 +#: ../src/iop/borders.c:737 msgid "15:10 postcard white" msgstr "15:10 ポストカード 白" -#: ../src/iop/borders.c:732 +#: ../src/iop/borders.c:742 msgid "15:10 postcard black" msgstr "15:10 ポストカード 黒" -#: ../src/iop/borders.c:942 -msgid "size of the border in percent of the full image" -msgstr "縁のサイズ(全画面に対する割合)" +#: ../src/iop/borders.c:948 +msgid "which dimension to use for the size calculation" +msgstr "サイズの計算に用いる寸法" + +#: ../src/iop/borders.c:954 +msgid "size of the border in percent of the chosen basis" +msgstr "縁のサイズ(選択した基準に対する割合)" -#: ../src/iop/borders.c:944 ../src/iop/clipping.c:2218 ../src/iop/crop.c:1224 +#: ../src/iop/borders.c:956 ../src/iop/clipping.c:2271 ../src/iop/crop.c:1208 msgid "aspect" msgstr "アスペクト比" -#: ../src/iop/borders.c:945 +#: ../src/iop/borders.c:957 msgid "" -"select the aspect ratio (right click on slider below to type your own w:h)" +"select the aspect ratio\n" +"(right click on slider below to type your own w:h)" msgstr "" "アスペクト比を選択します\n" "(下のスライダー上で右クリックすると、カスタム設定(幅:高さ)を入力すること" "が出来ます)" -#: ../src/iop/borders.c:948 +#: ../src/iop/borders.c:961 msgid "3:1" msgstr "3:1" -#: ../src/iop/borders.c:949 +#: ../src/iop/borders.c:962 msgid "95:33" msgstr "95:33" -#: ../src/iop/borders.c:950 +#: ../src/iop/borders.c:963 msgid "CinemaScope 2.39:1" msgstr "シネマスコープ 2.39:1" -#: ../src/iop/borders.c:951 +#: ../src/iop/borders.c:964 msgid "2:1" msgstr "2:1" -#: ../src/iop/borders.c:952 +#: ../src/iop/borders.c:965 msgid "16:9" msgstr "16:9" -#: ../src/iop/borders.c:953 +#: ../src/iop/borders.c:966 msgid "5:3" msgstr "5:3" -#: ../src/iop/borders.c:954 +#: ../src/iop/borders.c:967 msgid "US Legal 8.5x14" msgstr "USリーガルサイズ 8.5x14" -#: ../src/iop/borders.c:955 ../src/iop/clipping.c:2131 ../src/iop/crop.c:1128 +#: ../src/iop/borders.c:968 ../src/iop/clipping.c:2184 ../src/iop/crop.c:1112 msgid "golden cut" msgstr "黄金比" -#: ../src/iop/borders.c:956 +#: ../src/iop/borders.c:969 msgid "16:10" msgstr "16:10" -#: ../src/iop/borders.c:957 +#: ../src/iop/borders.c:970 msgid "3:2 (4x6, 10x15cm)" msgstr "3:2 (4x6, 10x15cm)" -#: ../src/iop/borders.c:959 +#: ../src/iop/borders.c:972 msgid "DIN" msgstr "DIN" -#: ../src/iop/borders.c:960 +#: ../src/iop/borders.c:973 msgid "7:5" msgstr "7:5" -#: ../src/iop/borders.c:961 +#: ../src/iop/borders.c:974 msgid "4:3" msgstr "4:3" -#: ../src/iop/borders.c:962 +#: ../src/iop/borders.c:975 msgid "US Letter 8.5x11" msgstr "USレターサイズ 8.5x11" -#: ../src/iop/borders.c:963 +#: ../src/iop/borders.c:976 msgid "14:11" msgstr "14:11" -#: ../src/iop/borders.c:964 +#: ../src/iop/borders.c:977 msgid "5:4 (8x10)" msgstr "5:4 (8x10)" -#: ../src/iop/borders.c:965 ../src/iop/clipping.c:2121 ../src/iop/crop.c:1118 -#: ../src/libs/filtering.c:301 ../src/libs/filters/ratio.c:126 -#: ../src/libs/histogram.c:141 +#: ../src/iop/borders.c:978 ../src/iop/clipping.c:2174 ../src/iop/crop.c:1102 +#: ../src/libs/filtering.c:307 ../src/libs/filters/ratio.c:126 +#: ../src/libs/histogram.c:118 msgid "square" msgstr "正方形" -#: ../src/iop/borders.c:966 +#: ../src/iop/borders.c:979 msgid "constant border" msgstr "同じ幅の縁" -#: ../src/iop/borders.c:967 ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:980 ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "custom..." msgstr "カスタム..." -#: ../src/iop/borders.c:972 -msgid "set the custom aspect ratio (right click to enter number or w:h)" +#: ../src/iop/borders.c:984 +msgid "" +"set the custom aspect ratio\n" +"(right click to enter number or w:h)" msgstr "" "アスペクト比をカスタム設定します\n" -"(下のスライダー上で右クリックしてカスタム設定(幅:高さ)を入力することが出" -"来ます)" +"(下のスライダー上で右クリックすると、数字または幅:高さを入力することが出来" +"ます)" -#: ../src/iop/borders.c:975 +#: ../src/iop/borders.c:989 msgid "aspect ratio orientation of the image with border" msgstr "縁を加えた画像のアスペクト比の方向" -#: ../src/iop/borders.c:977 +#: ../src/iop/borders.c:991 msgid "horizontal position" msgstr "水平位置" -#: ../src/iop/borders.c:978 +#: ../src/iop/borders.c:992 msgid "" -"select the horizontal position ratio relative to top or right click and type " -"your own (y:h)" +"select the horizontal position ratio relative to top\n" +"(right click on slider below to type your own x:w)" msgstr "" -"上辺に対する水平位置の比を選択するか、右クリックしてカスタム設定を入力してく" -"ださい (y:h)" +"上辺に対する水平位置の比を選択します\n" +"(下のスライダー上で右クリックすると、カスタム設定x:wを入力することが出来ま" +"す)" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "center" msgstr "中央" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "1/3" msgstr "1/3" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "3/8" msgstr "3/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "5/8" msgstr "5/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "2/3" msgstr "2/3" -#: ../src/iop/borders.c:986 +#: ../src/iop/borders.c:1000 msgid "custom horizontal position" msgstr "水平位置のカスタム設定" -#: ../src/iop/borders.c:988 +#: ../src/iop/borders.c:1002 msgid "vertical position" msgstr "垂直位置" -#: ../src/iop/borders.c:989 +#: ../src/iop/borders.c:1003 msgid "" -"select the vertical position ratio relative to left or right click and type " -"your own (x:w)" +"select the vertical position ratio relative to left\n" +"(right click on slider below to type your own y:h)" msgstr "" -"左辺に対する垂直位置の比を選択するか、右クリックしてカスタム設定を入力します" -"(x:w)" +"左辺に対する垂直位置の比を選択します\n" +"(下のスライダー上で右クリックすると、カスタム設定y:hを入力することが出来ま" +"す)" -#: ../src/iop/borders.c:997 +#: ../src/iop/borders.c:1011 msgid "custom vertical position" msgstr "垂直位置のカスタム設定" -#: ../src/iop/borders.c:1002 +#: ../src/iop/borders.c:1017 msgid "size of the frame line in percent of min border width" msgstr "フレームラインのサイズ(最小の縁の幅に対する割合)" -#: ../src/iop/borders.c:1007 +#: ../src/iop/borders.c:1023 msgid "offset of the frame line beginning on picture side" msgstr "写真の側面を基準としたフレームラインの位置" -#: ../src/iop/borders.c:1014 ../src/iop/borders.c:1023 +#: ../src/iop/borders.c:1033 ../src/iop/borders.c:1044 msgid "border color" msgstr "縁の色" -#: ../src/iop/borders.c:1018 +#: ../src/iop/borders.c:1037 msgid "select border color" msgstr "縁の色を選択してください" -#: ../src/iop/borders.c:1022 +#: ../src/iop/borders.c:1043 msgid "pick border color from image" msgstr "画像から縁の色を抽出" -#: ../src/iop/borders.c:1023 ../src/iop/borders.c:1036 -#: ../src/iop/colorzones.c:2415 ../src/iop/colorzones.c:2425 -#: ../src/iop/negadoctor.c:848 ../src/iop/negadoctor.c:915 -#: ../src/iop/negadoctor.c:953 ../src/iop/rgbcurve.c:1369 -#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1026 -#: ../src/iop/rgblevels.c:1032 ../src/iop/rgblevels.c:1038 +#: ../src/iop/borders.c:1044 ../src/iop/borders.c:1061 +#: ../src/iop/colorzones.c:2662 ../src/iop/colorzones.c:2677 +#: ../src/iop/negadoctor.c:867 ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:972 ../src/iop/rgbcurve.c:1369 +#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1075 +#: ../src/iop/rgblevels.c:1083 ../src/iop/rgblevels.c:1091 msgid "pickers" msgstr "ピッカー" -#: ../src/iop/borders.c:1027 ../src/iop/borders.c:1036 +#: ../src/iop/borders.c:1049 ../src/iop/borders.c:1061 msgid "frame line color" msgstr "フレームラインの色" -#: ../src/iop/borders.c:1031 +#: ../src/iop/borders.c:1054 msgid "select frame line color" msgstr "フレームラインの色を選択してください" -#: ../src/iop/borders.c:1035 +#: ../src/iop/borders.c:1060 msgid "pick frame line color from image" msgstr "画像からフレームラインの色を抽出" #. make sure you put all your translatable strings into _() ! -#: ../src/iop/cacorrect.c:72 +#: ../src/iop/cacorrect.c:78 msgid "raw chromatic aberrations" msgstr "RAW色収差" -#: ../src/iop/cacorrect.c:77 +#: ../src/iop/cacorrect.c:83 msgid "correct chromatic aberrations for Bayer sensors" msgstr "色収差を補正します(ベイヤーセンサー専用)" -#: ../src/iop/cacorrect.c:79 ../src/iop/cacorrect.c:81 +#: ../src/iop/cacorrect.c:85 ../src/iop/cacorrect.c:87 #: ../src/iop/cacorrectrgb.c:171 ../src/iop/cacorrectrgb.c:173 #: ../src/iop/demosaic.c:294 ../src/iop/highlights.c:180 -#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:74 -#: ../src/iop/hotpixels.c:76 ../src/iop/rawdenoise.c:131 -#: ../src/iop/rawdenoise.c:133 ../src/iop/rawprepare.c:159 -#: ../src/iop/rawprepare.c:161 ../src/iop/temperature.c:213 -#: ../src/iop/temperature.c:215 +#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:76 +#: ../src/iop/hotpixels.c:78 ../src/iop/rawdenoise.c:145 +#: ../src/iop/rawdenoise.c:147 ../src/iop/rawprepare.c:175 +#: ../src/iop/rawprepare.c:177 ../src/iop/temperature.c:221 +#: ../src/iop/temperature.c:223 msgid "linear, raw, scene-referred" msgstr "リニア、 RAW、 シーン参照" -#: ../src/iop/cacorrect.c:80 ../src/iop/cacorrectrgb.c:172 -#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:121 -#: ../src/iop/rawdenoise.c:132 ../src/iop/rawprepare.c:160 -#: ../src/iop/temperature.c:214 +#: ../src/iop/cacorrect.c:86 ../src/iop/cacorrectrgb.c:172 +#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:138 +#: ../src/iop/rawdenoise.c:146 ../src/iop/rawprepare.c:176 +#: ../src/iop/temperature.c:222 msgid "linear, raw" msgstr "リニア、 RAW" -#: ../src/iop/cacorrect.c:1405 +#: ../src/iop/cacorrect.c:1424 msgid "iteration runs, default is twice" msgstr "" "反復を実行します\n" "デフォルト設定は2回です" -#: ../src/iop/cacorrect.c:1408 +#: ../src/iop/cacorrect.c:1427 msgid "activate colorshift correction for blue & red channels" msgstr "青および赤チャンネルの色ずれ補正を有効にします" -#: ../src/iop/cacorrect.c:1415 +#: ../src/iop/cacorrect.c:1434 msgid "" "automatic chromatic aberration correction\n" -"only for Bayer raw files" +"only for Bayer raw files with 3 color channels" msgstr "" "色収差の自動補正\n" -"ベイヤーセンサーのRAWファイルでのみ動作します" +"3つの色チャンネルがあるベイヤーセンサーのRAWファイルでのみ動作します" #: ../src/iop/cacorrectrgb.c:164 ../src/iop/defringe.c:76 msgid "chromatic aberrations" @@ -13272,7 +13790,7 @@ msgid "correct chromatic aberrations" msgstr "色収差を補正します" -#: ../src/iop/cacorrectrgb.c:743 +#: ../src/iop/cacorrectrgb.c:745 msgid "" "channel used as a reference to\n" "correct the other channels.\n" @@ -13286,11 +13804,11 @@ "い\n" "アーティファクトがある場合、ガイドチャネルを変更してみてください" -#: ../src/iop/cacorrectrgb.c:750 +#: ../src/iop/cacorrectrgb.c:752 msgid "increase for stronger correction" msgstr "値を上げるとより強い補正を行います" -#: ../src/iop/cacorrectrgb.c:752 +#: ../src/iop/cacorrectrgb.c:754 msgid "" "balance between smoothing colors\n" "and preserving them.\n" @@ -13300,12 +13818,12 @@ "色の平滑化と保持のバランス\n" "高い値にすると過補正やエッジのにじみが生じる可能性があります" -#: ../src/iop/cacorrectrgb.c:757 +#: ../src/iop/cacorrectrgb.c:759 msgctxt "section" msgid "advanced parameters" msgstr "拡張パラメータ" -#: ../src/iop/cacorrectrgb.c:759 +#: ../src/iop/cacorrectrgb.c:761 msgid "" "correction mode to use.\n" "can help with multiple\n" @@ -13319,7 +13837,7 @@ "複数のインスタンスを用いて、状態の非常に悪い画像を修復することが出来ます\n" "'暗くする'は特に青の色収差を補正するのに有効です" -#: ../src/iop/cacorrectrgb.c:767 +#: ../src/iop/cacorrectrgb.c:769 msgid "" "runs an iterative approach\n" "with several radii.\n" @@ -13350,35 +13868,35 @@ msgid "special, RGB, scene-referred" msgstr "特殊、 RGB、シーン参照" -#: ../src/iop/censorize.c:412 +#: ../src/iop/censorize.c:404 msgid "radius_1" msgstr "半径_1" -#: ../src/iop/censorize.c:414 +#: ../src/iop/censorize.c:406 msgid "pixelate" msgstr "ピクセル化" -#: ../src/iop/censorize.c:416 +#: ../src/iop/censorize.c:408 msgid "radius_2" msgstr "半径_2" -#: ../src/iop/censorize.c:418 +#: ../src/iop/censorize.c:410 msgid "noise" msgstr "ノイズ" -#: ../src/iop/censorize.c:420 +#: ../src/iop/censorize.c:412 msgid "radius of gaussian blur before pixellation" msgstr "ビクセル化前のガウスぼかしの半径" -#: ../src/iop/censorize.c:421 +#: ../src/iop/censorize.c:413 msgid "radius of gaussian blur after pixellation" msgstr "ビクセル化後のガウスぼかしの半径" -#: ../src/iop/censorize.c:422 +#: ../src/iop/censorize.c:414 msgid "radius of the intermediate pixellation" msgstr "中間段階で行うビクセル化の半径" -#: ../src/iop/censorize.c:423 +#: ../src/iop/censorize.c:415 msgid "amount of noise to add at the end" msgstr "最終段階で追加するノイズの量" @@ -13393,7 +13911,7 @@ "このモジュールは非推奨です\n" "代わりにカラーカリブレーションモジュールを使用してください" -#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:229 +#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:230 msgid "" "perform color space corrections\n" "such as white balance, channels mixing\n" @@ -13403,168 +13921,168 @@ "ホワイトバランスと同様に、チャンネルミックスや\n" "フィルムを模倣したモノクロームへの変換を行います" -#: ../src/iop/channelmixer.c:614 +#: ../src/iop/channelmixer.c:633 msgid "destination" msgstr "宛て先" -#: ../src/iop/channelmixer.c:621 +#: ../src/iop/channelmixer.c:640 msgctxt "channelmixer" msgid "gray" msgstr "グレー" -#: ../src/iop/channelmixer.c:627 +#: ../src/iop/channelmixer.c:646 msgid "amount of red channel in the output channel" msgstr "出力チャンネルにおける赤チャンネルの量" -#: ../src/iop/channelmixer.c:633 +#: ../src/iop/channelmixer.c:652 msgid "amount of green channel in the output channel" msgstr "出力チャンネルにおける緑チャンネルの量" -#: ../src/iop/channelmixer.c:639 +#: ../src/iop/channelmixer.c:658 msgid "amount of blue channel in the output channel" msgstr "出力チャンネルにおける青チャンネルの量" -#: ../src/iop/channelmixer.c:655 ../src/iop/channelmixerrgb.c:524 +#: ../src/iop/channelmixer.c:674 ../src/iop/channelmixerrgb.c:588 msgid "swap R and B" msgstr "赤/青チャンネル入れ替え" -#: ../src/iop/channelmixer.c:661 ../src/iop/channelmixerrgb.c:498 +#: ../src/iop/channelmixer.c:680 ../src/iop/channelmixerrgb.c:562 msgid "swap G and B" msgstr "緑/青チャンネル入れ替え" -#: ../src/iop/channelmixer.c:667 +#: ../src/iop/channelmixer.c:686 msgid "color contrast boost" msgstr "色のコントラストをブースト" -#: ../src/iop/channelmixer.c:673 +#: ../src/iop/channelmixer.c:692 msgid "color details boost" msgstr "色のディテールをブースト" -#: ../src/iop/channelmixer.c:679 +#: ../src/iop/channelmixer.c:698 msgid "color artifacts boost" msgstr "色のアーティファクトをブースト" -#: ../src/iop/channelmixer.c:685 +#: ../src/iop/channelmixer.c:704 msgid "B/W luminance-based" msgstr "白黒:輝度にもとづく" -#: ../src/iop/channelmixer.c:691 +#: ../src/iop/channelmixer.c:710 msgid "B/W artifacts boost" msgstr "白黒:アーティファクトブースト" -#: ../src/iop/channelmixer.c:697 +#: ../src/iop/channelmixer.c:716 msgid "B/W smooth skin" msgstr "白黒:スキン平滑化" -#: ../src/iop/channelmixer.c:703 +#: ../src/iop/channelmixer.c:722 msgid "B/W blue artifacts reduce" msgstr "白黒:青アーティファクト低減" -#: ../src/iop/channelmixer.c:710 +#: ../src/iop/channelmixer.c:729 msgid "B/W Ilford Delta 100-400" msgstr "白黒:Ilford Delta 100-400" -#: ../src/iop/channelmixer.c:717 +#: ../src/iop/channelmixer.c:736 msgid "B/W Ilford Delta 3200" msgstr "白黒:Ilford Delta 3200" -#: ../src/iop/channelmixer.c:724 +#: ../src/iop/channelmixer.c:743 msgid "B/W Ilford FP4" msgstr "白黒:Ilford FP4" -#: ../src/iop/channelmixer.c:731 +#: ../src/iop/channelmixer.c:750 msgid "B/W Ilford HP5" msgstr "白黒:Ilford HP5" -#: ../src/iop/channelmixer.c:738 +#: ../src/iop/channelmixer.c:757 msgid "B/W Ilford SFX" msgstr "白黒:Ilford SFX" -#: ../src/iop/channelmixer.c:745 +#: ../src/iop/channelmixer.c:764 msgid "B/W Kodak T-Max 100" msgstr "白黒:Kodak T-Max 100" -#: ../src/iop/channelmixer.c:752 +#: ../src/iop/channelmixer.c:771 msgid "B/W Kodak T-max 400" msgstr "白黒:Kodak T-max 400" -#: ../src/iop/channelmixer.c:759 +#: ../src/iop/channelmixer.c:778 msgid "B/W Kodak Tri-X 400" msgstr "白黒:Kodak Tri-X 400" -#: ../src/iop/channelmixerrgb.c:219 +#: ../src/iop/channelmixerrgb.c:220 msgid "color calibration" msgstr "カラーキャリブレーション" -#: ../src/iop/channelmixerrgb.c:224 +#: ../src/iop/channelmixerrgb.c:225 msgid "channel mixer|white balance|monochrome" msgstr "チャンネルミキサー|ホワイトバランス|モノクローム" -#: ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:235 msgid "linear, RGB or XYZ" msgstr "リニア、RGBあるいはXYZ" -#: ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:460 msgid "B&W: luminance-based" msgstr "白黒:輝度にもとづく" -#: ../src/iop/channelmixerrgb.c:431 +#: ../src/iop/channelmixerrgb.c:495 msgid "B&W: ILFORD HP5+" msgstr "白黒:ILFORD HP5+" -#: ../src/iop/channelmixerrgb.c:440 +#: ../src/iop/channelmixerrgb.c:504 msgid "B&W: ILFORD DELTA 100" msgstr "白黒:ILFORD DELTA 100" -#: ../src/iop/channelmixerrgb.c:450 +#: ../src/iop/channelmixerrgb.c:514 msgid "B&W: ILFORD DELTA 400 - 3200" msgstr "白黒:ILFORD DELTA 400 - 3200" -#: ../src/iop/channelmixerrgb.c:459 +#: ../src/iop/channelmixerrgb.c:523 msgid "B&W: ILFORD FP4+" msgstr "白黒:ILFORD FP4+" -#: ../src/iop/channelmixerrgb.c:468 +#: ../src/iop/channelmixerrgb.c:532 msgid "B&W: Fuji Acros 100" msgstr "白黒:Fuji Acros 100" -#: ../src/iop/channelmixerrgb.c:485 +#: ../src/iop/channelmixerrgb.c:549 msgid "basic channel mixer" msgstr "チャンネルミキサー ベーシック" -#: ../src/iop/channelmixerrgb.c:511 +#: ../src/iop/channelmixerrgb.c:575 msgid "swap G and R" msgstr "緑/赤チャンネル入れ替え" -#: ../src/iop/channelmixerrgb.c:1869 +#: ../src/iop/channelmixerrgb.c:1926 msgid "(daylight)" msgstr "(太陽光)" -#: ../src/iop/channelmixerrgb.c:1871 +#: ../src/iop/channelmixerrgb.c:1928 msgid "(black body)" msgstr "(黒体)" -#: ../src/iop/channelmixerrgb.c:1873 +#: ../src/iop/channelmixerrgb.c:1930 msgid "(invalid)" msgstr "(無効)" -#: ../src/iop/channelmixerrgb.c:1877 ../src/iop/channelmixerrgb.c:1935 +#: ../src/iop/channelmixerrgb.c:1934 ../src/iop/channelmixerrgb.c:1992 msgid "very good" msgstr "非常に良い" -#: ../src/iop/channelmixerrgb.c:1879 ../src/iop/channelmixerrgb.c:1937 +#: ../src/iop/channelmixerrgb.c:1936 ../src/iop/channelmixerrgb.c:1994 msgid "good" msgstr "良い" -#: ../src/iop/channelmixerrgb.c:1881 ../src/iop/channelmixerrgb.c:1939 +#: ../src/iop/channelmixerrgb.c:1938 ../src/iop/channelmixerrgb.c:1996 msgid "passable" msgstr "悪くない" -#: ../src/iop/channelmixerrgb.c:1883 ../src/iop/channelmixerrgb.c:1941 +#: ../src/iop/channelmixerrgb.c:1940 ../src/iop/channelmixerrgb.c:1998 msgid "bad" msgstr "悪い" -#: ../src/iop/channelmixerrgb.c:1890 +#: ../src/iop/channelmixerrgb.c:1947 #, c-format msgid "" "\n" @@ -13601,7 +14119,7 @@ "露出補正:\t%+.2f EV\n" "黒オフセット:\t%+.4f" -#: ../src/iop/channelmixerrgb.c:1946 +#: ../src/iop/channelmixerrgb.c:2003 #, c-format msgid "" "\n" @@ -13620,27 +14138,43 @@ "露出補正:\t%+.2f EV\n" "黒オフセット:\t%+.4f" -#: ../src/iop/channelmixerrgb.c:1978 +#: ../src/iop/channelmixerrgb.c:2054 msgid "double CAT applied" msgstr "色順応変換が二重に適用されています" -#: ../src/iop/channelmixerrgb.c:1979 +#: ../src/iop/channelmixerrgb.c:2055 msgid "" "you have 2 instances or more of color calibration,\n" -"all performing chromatic adaptation.\n" -"this can lead to inconsistencies, unless you\n" +"all providing chromatic adaptation.\n" +"this can lead to inconsistencies unless you\n" "use them with masks or know what you are doing." msgstr "" -"カラーキャリブレーションのインスタンスが2つ以上あり、全て色順応を行っていま" +"カラーキャリブレーションのインスタンスが2つ以上あり、全て色順応を提示していま" "す\n" -"マスクを使用していない場合、あるいは理解して行っていない場合、一貫性が損なわ" -"れる可能性があります" +"マスクを使用していない、あるいは理解して行っていない場合、一貫性が損なわれる" +"可能性があります" + +#: ../src/iop/channelmixerrgb.c:2071 +msgid "white balance applied twice" +msgstr "ホワイトバランスが2度適用されています" -#: ../src/iop/channelmixerrgb.c:1991 +#: ../src/iop/channelmixerrgb.c:2072 +msgid "" +"the color calibration module is enabled and already provides\n" +"chromatic adaptation.\n" +"set the white balance here to camera reference (D65)\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"カラーキャリブレーションモジュールが有効になっていて、色順応を提示していま" +"す\n" +"ここでホワイトバランスをカメラのリファレンス値(D65)に設定するか、\n" +"カラーキャリブレーションの色順応を無効にしてください" + +#: ../src/iop/channelmixerrgb.c:2080 msgid "white balance module error" msgstr "ホワイトバランスモジュールエラー" -#: ../src/iop/channelmixerrgb.c:1992 +#: ../src/iop/channelmixerrgb.c:2081 msgid "" "the white balance module is not using the camera\n" "reference illuminant, which will cause issues here\n" @@ -13652,20 +14186,48 @@ "ホワイトバランスモジュールの設定を変えるか、カラーカリブレーションモジュール" "の色順応を無効にしてください" -#: ../src/iop/channelmixerrgb.c:2083 +#: ../src/iop/channelmixerrgb.c:2095 ../src/iop/channelmixerrgb.c:2104 +msgid "white balance missing" +msgstr "ホワイトバランスが見つかりません" + +#: ../src/iop/channelmixerrgb.c:2096 +msgid "" +"this module is not providing a valid reference illuminant\n" +"causing chromatic adaptation issues in color calibration.\n" +"enable this module and either set it to reference\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"このモジュールは有効な参照イルミナントを提示していません\n" +"そのため、カラーキャリブレーションモジュールの色順応で問題が生じています\n" +"このモジュールを有効にして参照イルミナントに設定するか、\n" +"カラーキャリブレーションの色順応を無効にしてください" + +#: ../src/iop/channelmixerrgb.c:2105 +msgid "" +"the white balance module is not providing a valid reference\n" +"illuminant causing issues with chromatic adaptation here.\n" +"enable white balance and either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" +"ホワイトバランスモジュールは有効な参照イルミナントを提示していません\n" +"そのため、このモジュールの色順応で問題が生じています\n" +"ホワイトモジュールを有効にして参照イルミナントに設定するか、\n" +"このモジュールの色順応を無効にしてください" + +#: ../src/iop/channelmixerrgb.c:2196 msgid "auto-detection of white balance completed" msgstr "ホワイトバランスの自動検出が完了しました" -#: ../src/iop/channelmixerrgb.c:2236 +#: ../src/iop/channelmixerrgb.c:2346 msgid "channelmixerrgb works only on RGB input" msgstr "チャンネルミキサーRGBはRGB入力でのみ機能します" -#: ../src/iop/channelmixerrgb.c:3621 +#: ../src/iop/channelmixerrgb.c:3692 #, c-format msgid "CCT: %.0f K (daylight)" msgstr "CCT:%.0f K (太陽光)" -#: ../src/iop/channelmixerrgb.c:3624 +#: ../src/iop/channelmixerrgb.c:3695 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a daylight spectrum,\n" @@ -13676,12 +14238,12 @@ "す\n" "それゆえこの温度はイルミナントDと関連し意味があるものです" -#: ../src/iop/channelmixerrgb.c:3630 +#: ../src/iop/channelmixerrgb.c:3701 #, c-format msgid "CCT: %.0f K (black body)" msgstr "CCT:%.0f K(黒体)" -#: ../src/iop/channelmixerrgb.c:3633 +#: ../src/iop/channelmixerrgb.c:3704 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a black body spectrum,\n" @@ -13692,12 +14254,12 @@ "す\n" "それゆえこの温度はプランキアンイルミナントと関連し意味があるものです" -#: ../src/iop/channelmixerrgb.c:3639 +#: ../src/iop/channelmixerrgb.c:3710 #, c-format msgid "CCT: %.0f K (invalid)" msgstr "CCT:%.0f K (無効)" -#: ../src/iop/channelmixerrgb.c:3642 +#: ../src/iop/channelmixerrgb.c:3713 msgid "" "approximated correlated color temperature.\n" "this illuminant cannot be accurately modeled by a daylight or black body " @@ -13711,12 +14273,12 @@ "それゆえこの温度は関連するものがなく意味がありません。カスタム設定のイルミナ" "ントを使用する必要があります" -#: ../src/iop/channelmixerrgb.c:3651 +#: ../src/iop/channelmixerrgb.c:3722 #, c-format msgid "CCT: undefined" msgstr "CCT:未定義" -#: ../src/iop/channelmixerrgb.c:3654 +#: ../src/iop/channelmixerrgb.c:3725 msgid "" "the approximated correlated color temperature\n" "cannot be computed at all so you need to use a custom illuminant." @@ -13724,17 +14286,17 @@ "相関色感度の概算値\n" "算出することが出来ないためカスタム設定のイルミナントを使用する必要があります" -#: ../src/iop/channelmixerrgb.c:3967 +#: ../src/iop/channelmixerrgb.c:4038 msgid "white balance successfully extracted from raw image" msgstr "ホワイトバランスをRAW画像から抽出することに成功しました" # ホワイトバランスの自動検出が開始されました #. We need to recompute only the full preview -#: ../src/iop/channelmixerrgb.c:3973 +#: ../src/iop/channelmixerrgb.c:4044 msgid "auto-detection of white balance started…" msgstr "ホワイトバランスの自動検出が開始されました" -#: ../src/iop/channelmixerrgb.c:4078 +#: ../src/iop/channelmixerrgb.c:4149 msgid "" "color calibration: the sum of the gray channel parameters is zero, " "normalization will be disabled." @@ -13743,7 +14305,7 @@ "効化されます" #. Write report in GUI -#: ../src/iop/channelmixerrgb.c:4126 +#: ../src/iop/channelmixerrgb.c:4194 #, c-format msgid "" "L: \t%.1f %%\n" @@ -13754,27 +14316,27 @@ "h: \t%.1f °\n" "c: \t%.1f" -#: ../src/iop/channelmixerrgb.c:4394 ../src/iop/clipping.c:2087 -#: ../src/iop/colorbalancergb.c:1873 ../src/iop/filmicrgb.c:4419 -#: ../src/iop/negadoctor.c:829 ../src/iop/toneequal.c:3319 -#: ../src/libs/image.c:460 ../src/views/lighttable.c:1258 +#: ../src/iop/channelmixerrgb.c:4462 ../src/iop/clipping.c:2140 +#: ../src/iop/colorbalancergb.c:1944 ../src/iop/filmicrgb.c:4483 +#: ../src/iop/negadoctor.c:848 ../src/iop/toneequal.c:3372 +#: ../src/libs/image.c:490 ../src/views/lighttable.c:1258 msgid "page" msgstr "ページ" #. Page CAT -#: ../src/iop/channelmixerrgb.c:4397 +#: ../src/iop/channelmixerrgb.c:4465 msgid "CAT" msgstr "CAT" -#: ../src/iop/channelmixerrgb.c:4398 +#: ../src/iop/channelmixerrgb.c:4466 msgid "chromatic adaptation transform" msgstr "色順応変換" -#: ../src/iop/channelmixerrgb.c:4400 +#: ../src/iop/channelmixerrgb.c:4468 msgid "adaptation" msgstr "順応" -#: ../src/iop/channelmixerrgb.c:4403 +#: ../src/iop/channelmixerrgb.c:4471 msgid "" "choose the method to adapt the illuminant\n" "and the colorspace in which the module works: \n" @@ -13794,7 +14356,7 @@ "・XYZはXYZ空間の単純なスケーリングです。概して推奨されません\n" "・無効を選ぶと順応を無効にし、パイプラインの作業するRGB空間を使用します" -#: ../src/iop/channelmixerrgb.c:4423 +#: ../src/iop/channelmixerrgb.c:4491 msgid "" "this is the color of the scene illuminant before chromatic adaptation\n" "this color will be turned into pure white by the adaptation." @@ -13802,27 +14364,27 @@ "これは色順応前のシーンのイルミナントの色です\n" "この色は順応によって純粋な白になります" -#: ../src/iop/channelmixerrgb.c:4431 +#: ../src/iop/channelmixerrgb.c:4499 msgid "picker" msgstr "ピッカー" -#: ../src/iop/channelmixerrgb.c:4433 ../src/iop/temperature.c:2047 +#: ../src/iop/channelmixerrgb.c:4501 ../src/iop/temperature.c:2015 msgid "set white balance to detected from area" msgstr "画像内の領域からホワイトバランスを検出" -#: ../src/iop/channelmixerrgb.c:4437 ../src/iop/negadoctor.c:953 +#: ../src/iop/channelmixerrgb.c:4505 ../src/iop/negadoctor.c:972 msgid "illuminant" msgstr "イルミナント" -#: ../src/iop/channelmixerrgb.c:4443 ../src/iop/temperature.c:2107 +#: ../src/iop/channelmixerrgb.c:4511 ../src/iop/temperature.c:2072 msgid "temperature" msgstr "色温度" -#: ../src/iop/channelmixerrgb.c:4474 -msgid "spot color mapping" -msgstr "スポットカラーマッピング" +#: ../src/iop/channelmixerrgb.c:4542 +msgid "area color mapping" +msgstr "領域カラーマッピング" -#: ../src/iop/channelmixerrgb.c:4480 +#: ../src/iop/channelmixerrgb.c:4548 msgid "" "define a target chromaticity (hue and chroma) for a particular region of the " "image (the control sample), which you then match against the same target " @@ -13835,17 +14397,17 @@ "コントロールサンプルは、一連の画像に共通する、被写体の重要な部分でも、同じ光" "に照らされた動いていない面でも可能です" -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/channelmixerrgb.c:4502 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/channelmixerrgb.c:4573 +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/channelmixerrgb.c:4570 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/channelmixerrgb.c:4641 msgid "mapping" msgstr "マッピング" -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/exposure.c:1188 -msgid "spot mode" -msgstr "スポットモード" +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/exposure.c:1206 +msgid "area mode" +msgstr "領域モード" -#: ../src/iop/channelmixerrgb.c:4488 +#: ../src/iop/channelmixerrgb.c:4556 msgid "" "\"correction\" automatically adjust the illuminant\n" "such that the input color is mapped to the target.\n" @@ -13857,19 +14419,19 @@ "計測:入力の色がCATによってどのようにマッピングされるかを表示します\n" "   ターゲットをサンプルを抽出するために使用することが出来ます" -#: ../src/iop/channelmixerrgb.c:4493 ../src/iop/exposure.c:1194 +#: ../src/iop/channelmixerrgb.c:4561 ../src/iop/exposure.c:1212 msgid "correction" msgstr "補正" -#: ../src/iop/channelmixerrgb.c:4494 ../src/iop/exposure.c:1195 +#: ../src/iop/channelmixerrgb.c:4562 ../src/iop/exposure.c:1213 msgid "measure" msgstr "計測" -#: ../src/iop/channelmixerrgb.c:4500 +#: ../src/iop/channelmixerrgb.c:4568 msgid "take channel mixing into account" msgstr "チャンネルミックスの効果を計算に含める" -#: ../src/iop/channelmixerrgb.c:4507 +#: ../src/iop/channelmixerrgb.c:4575 msgid "" "compute the target by taking the channel mixing into account.\n" "if disabled, only the CAT is considered." @@ -13877,18 +14439,18 @@ "チャンネルミックスの効果を考慮してターゲットを算出します\n" "無効にすると、CATの効果のみを考慮して算出します" -#: ../src/iop/channelmixerrgb.c:4519 ../src/iop/exposure.c:1202 +#: ../src/iop/channelmixerrgb.c:4587 ../src/iop/exposure.c:1220 msgctxt "section" msgid "input" msgstr "入力" -#: ../src/iop/channelmixerrgb.c:4526 ../src/iop/exposure.c:1210 +#: ../src/iop/channelmixerrgb.c:4594 ../src/iop/exposure.c:1228 msgid "the input color that should be mapped to the target" msgstr "" "入力の色\n" "この色をターゲットへとマッピングします" -#: ../src/iop/channelmixerrgb.c:4532 +#: ../src/iop/channelmixerrgb.c:4600 msgid "" "L: \tN/A\n" "h: \tN/A\n" @@ -13898,115 +14460,115 @@ "h: \tN/A\n" "c: \tN/A" -#: ../src/iop/channelmixerrgb.c:4535 ../src/iop/exposure.c:1218 +#: ../src/iop/channelmixerrgb.c:4603 ../src/iop/exposure.c:1236 msgid "these LCh coordinates are computed from CIE Lab 1976 coordinates" msgstr "このLCh座標はCIE Lab 1976座標をもとに算出されたものです" -#: ../src/iop/channelmixerrgb.c:4543 ../src/iop/exposure.c:1225 +#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/exposure.c:1243 msgctxt "section" msgid "target" msgstr "ターゲット" -#: ../src/iop/channelmixerrgb.c:4550 +#: ../src/iop/channelmixerrgb.c:4618 msgid "the desired target color after mapping" msgstr "マッピング後のターゲットの色" -#: ../src/iop/channelmixerrgb.c:4589 +#: ../src/iop/channelmixerrgb.c:4657 msgid "input R" msgstr "入力 赤チャンネル" -#: ../src/iop/channelmixerrgb.c:4594 +#: ../src/iop/channelmixerrgb.c:4662 msgid "input G" msgstr "入力 緑チャンネル" -#: ../src/iop/channelmixerrgb.c:4599 +#: ../src/iop/channelmixerrgb.c:4667 msgid "input B" msgstr "入力 青チャンネル" -#: ../src/iop/channelmixerrgb.c:4609 +#: ../src/iop/channelmixerrgb.c:4677 msgid "output R" msgstr "出力 赤チャンネル" -#: ../src/iop/channelmixerrgb.c:4610 +#: ../src/iop/channelmixerrgb.c:4678 msgid "output G" msgstr "出力 緑チャンネル" -#: ../src/iop/channelmixerrgb.c:4611 +#: ../src/iop/channelmixerrgb.c:4679 msgid "output B" msgstr "出力 青チャンネル" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "colorfulness" msgstr "色鮮やかさ(カラフルネス)" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "output colorfulness" msgstr "出力 色鮮やかさ(カラフルネス)" -#: ../src/iop/channelmixerrgb.c:4617 +#: ../src/iop/channelmixerrgb.c:4685 msgid "output brightness" msgstr "出力 明るさ(ブライトネス)" -#: ../src/iop/channelmixerrgb.c:4620 +#: ../src/iop/channelmixerrgb.c:4688 msgid "output gray" msgstr "出力 グレー" -#: ../src/iop/channelmixerrgb.c:4635 +#: ../src/iop/channelmixerrgb.c:4703 msgid "calibrate with a color checker" msgstr "カラーチェッカーを使ってキャリブレート" -#: ../src/iop/channelmixerrgb.c:4640 +#: ../src/iop/channelmixerrgb.c:4708 msgid "use a color checker target to autoset CAT and channels" msgstr "" "カラーチェッカーターゲットを使って色順応変換と各チャンネルを自動設定します" -#: ../src/iop/channelmixerrgb.c:4647 ../src/iop/channelmixerrgb.c:4660 -#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/channelmixerrgb.c:4696 -#: ../src/iop/channelmixerrgb.c:4705 ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4715 ../src/iop/channelmixerrgb.c:4728 +#: ../src/iop/channelmixerrgb.c:4746 ../src/iop/channelmixerrgb.c:4764 +#: ../src/iop/channelmixerrgb.c:4773 ../src/iop/channelmixerrgb.c:4781 msgid "calibrate" msgstr "キャリブレート" -#: ../src/iop/channelmixerrgb.c:4647 +#: ../src/iop/channelmixerrgb.c:4715 msgid "chart" msgstr "チャート" -#: ../src/iop/channelmixerrgb.c:4648 +#: ../src/iop/channelmixerrgb.c:4716 msgid "choose the vendor and the type of your chart" msgstr "チャートのメーカーと種類を選んでください" -#: ../src/iop/channelmixerrgb.c:4650 +#: ../src/iop/channelmixerrgb.c:4718 msgid "Xrite ColorChecker 24 pre-2014" msgstr "Xrite ColorChecker 24(2014年以前)" -#: ../src/iop/channelmixerrgb.c:4651 +#: ../src/iop/channelmixerrgb.c:4719 msgid "Xrite ColorChecker 24 post-2014" msgstr "Xrite ColorChecker 24(2014年以後)" -#: ../src/iop/channelmixerrgb.c:4652 +#: ../src/iop/channelmixerrgb.c:4720 msgid "Datacolor SpyderCheckr 24 pre-2018" msgstr "Datacolor SpyderCheckr 24(2018年以前)" -#: ../src/iop/channelmixerrgb.c:4653 +#: ../src/iop/channelmixerrgb.c:4721 msgid "Datacolor SpyderCheckr 24 post-2018" msgstr "Datacolor SpyderCheckr 24(2018年以後)" -#: ../src/iop/channelmixerrgb.c:4654 +#: ../src/iop/channelmixerrgb.c:4722 msgid "Datacolor SpyderCheckr 48 pre-2018" msgstr "Datacolor SpyderCheckr 48(2018年以前)" -#: ../src/iop/channelmixerrgb.c:4655 +#: ../src/iop/channelmixerrgb.c:4723 msgid "Datacolor SpyderCheckr 48 post-2018" msgstr "Datacolor SpyderCheckr 48(2018年以後)" -#: ../src/iop/channelmixerrgb.c:4656 +#: ../src/iop/channelmixerrgb.c:4724 msgid "Datacolor SpyderCheckr Photo" msgstr "Datacolor SpyderCheckr Photo" -#: ../src/iop/channelmixerrgb.c:4660 +#: ../src/iop/channelmixerrgb.c:4728 msgid "optimize for" msgstr "最適化のターゲット" -#: ../src/iop/channelmixerrgb.c:4661 +#: ../src/iop/channelmixerrgb.c:4729 msgid "" "choose the colors that will be optimized with higher priority.\n" "neutral colors gives the lowest average delta E but a high maximum delta E\n" @@ -14023,35 +14585,35 @@ "'なし'は両者のトレードオフです\n" "その他の選択肢は特定の色相を保護するために特殊な振る舞いをします" -#: ../src/iop/channelmixerrgb.c:4668 +#: ../src/iop/channelmixerrgb.c:4736 msgid "neutral colors" msgstr "ニュートラルな色" -#: ../src/iop/channelmixerrgb.c:4670 +#: ../src/iop/channelmixerrgb.c:4738 msgid "skin and soil colors" msgstr "肌と土の色" -#: ../src/iop/channelmixerrgb.c:4671 +#: ../src/iop/channelmixerrgb.c:4739 msgid "foliage colors" msgstr "葉の色" -#: ../src/iop/channelmixerrgb.c:4672 +#: ../src/iop/channelmixerrgb.c:4740 msgid "sky and water colors" msgstr "空と水の色" -#: ../src/iop/channelmixerrgb.c:4673 +#: ../src/iop/channelmixerrgb.c:4741 msgid "average delta E" msgstr "平均デルタE" -#: ../src/iop/channelmixerrgb.c:4674 +#: ../src/iop/channelmixerrgb.c:4742 msgid "maximum delta E" msgstr "最大デルタE" -#: ../src/iop/channelmixerrgb.c:4678 +#: ../src/iop/channelmixerrgb.c:4746 msgid "patch scale" msgstr "パッチの大きさ" -#: ../src/iop/channelmixerrgb.c:4681 +#: ../src/iop/channelmixerrgb.c:4749 msgid "" "reduce the radius of the patches to select the more or less central part.\n" "useful when the perspective correction is sloppy or\n" @@ -14061,31 +14623,31 @@ "パースペクティブ補正がうまく機能していない時に有用です\n" "パッチの枠の影がパッチの縁にあります" -#: ../src/iop/channelmixerrgb.c:4691 +#: ../src/iop/channelmixerrgb.c:4759 msgid "the delta E is using the CIE 2000 formula" msgstr "デルタEはCIE2000の方式を用いています" -#: ../src/iop/channelmixerrgb.c:4696 +#: ../src/iop/channelmixerrgb.c:4764 msgid "accept" msgstr "受け入れる" -#: ../src/iop/channelmixerrgb.c:4702 +#: ../src/iop/channelmixerrgb.c:4770 msgid "accept the computed profile and set it in the module" msgstr "算出されたプロファイルを受け入れて、モジュールの設定として使用" -#: ../src/iop/channelmixerrgb.c:4705 +#: ../src/iop/channelmixerrgb.c:4773 msgid "recompute" msgstr "再計算" -#: ../src/iop/channelmixerrgb.c:4709 +#: ../src/iop/channelmixerrgb.c:4777 msgid "recompute the profile" msgstr "プロファイルの再計算" -#: ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4781 msgid "validate" msgstr "有効化" -#: ../src/iop/channelmixerrgb.c:4717 +#: ../src/iop/channelmixerrgb.c:4785 msgid "check the output delta E" msgstr "出力デルタEのチェック" @@ -14102,19 +14664,19 @@ "このモジュールは非推奨です\n" "代わりに新しいローカルコントラストモジュールを使用することをおすすめします" -#: ../src/iop/clahe.c:337 ../src/iop/sharpen.c:445 +#: ../src/iop/clahe.c:339 ../src/iop/sharpen.c:440 msgid "amount" msgstr "適用量" -#: ../src/iop/clahe.c:346 +#: ../src/iop/clahe.c:348 msgid "size of features to preserve" msgstr "保持する形体のサイズ" -#: ../src/iop/clahe.c:347 ../src/iop/nlmeans.c:464 +#: ../src/iop/clahe.c:349 ../src/iop/nlmeans.c:467 msgid "strength of the effect" msgstr "効果の強さ" -#: ../src/iop/clipping.c:304 +#: ../src/iop/clipping.c:347 msgid "" "this module is deprecated. please use the crop, orientation and/or rotate " "and perspective modules instead." @@ -14123,142 +14685,142 @@ "代わりにトリミング、回転、および/または回転とパースペクティブモジュールを使" "用してください" -#: ../src/iop/clipping.c:309 +#: ../src/iop/clipping.c:352 msgid "crop and rotate" msgstr "トリミングと回転" -#: ../src/iop/clipping.c:314 +#: ../src/iop/clipping.c:357 msgid "reframe|perspective|keystone|distortion" msgstr "リフレーム|パースペクティブ|キーストーン|歪曲" -#: ../src/iop/clipping.c:319 +#: ../src/iop/clipping.c:362 msgid "change the framing and correct the perspective" msgstr "フレーミングを変更し、パースペクティブを補正します" -#: ../src/iop/clipping.c:1394 ../src/iop/clipping.c:2120 ../src/iop/crop.c:517 -#: ../src/iop/crop.c:1117 +#: ../src/iop/clipping.c:1447 ../src/iop/clipping.c:2173 ../src/iop/crop.c:501 +#: ../src/iop/crop.c:1101 msgid "original image" msgstr "元の画像" -#: ../src/iop/clipping.c:1698 ../src/iop/crop.c:824 +#: ../src/iop/clipping.c:1751 ../src/iop/crop.c:808 msgid "invalid ratio format. it should be \"number:number\"" msgstr "比の形式が無効です。\"数字:数字\" でなければなりません" -#: ../src/iop/clipping.c:1714 ../src/iop/crop.c:840 +#: ../src/iop/clipping.c:1767 ../src/iop/crop.c:824 msgid "invalid ratio format. it should be a positive number" msgstr "比の形式が無効です。正数でなければなりません" -#: ../src/iop/clipping.c:1903 ../src/iop/clipping.c:2111 +#: ../src/iop/clipping.c:1956 ../src/iop/clipping.c:2164 msgid "full" msgstr "フル" -#: ../src/iop/clipping.c:1904 +#: ../src/iop/clipping.c:1957 msgid "old system" msgstr "古いシステム" -#: ../src/iop/clipping.c:1905 +#: ../src/iop/clipping.c:1958 msgid "correction applied" msgstr "補正が適用されました" -#: ../src/iop/clipping.c:2089 +#: ../src/iop/clipping.c:2142 msgid "main" msgstr "メイン" -#: ../src/iop/clipping.c:2098 +#: ../src/iop/clipping.c:2151 msgid "mirror image horizontally and/or vertically" msgstr "水平方向および/または垂直方向に画像を反転させます" -#: ../src/iop/clipping.c:2101 +#: ../src/iop/clipping.c:2154 msgid "angle" msgstr "角度" -#: ../src/iop/clipping.c:2104 +#: ../src/iop/clipping.c:2157 msgid "right-click and drag a line on the image to drag a straight line" msgstr "右クリックしながら画像上に線を引いて、直線を引きます" -#: ../src/iop/clipping.c:2107 +#: ../src/iop/clipping.c:2160 msgid "keystone" msgstr "キーストーン" -#: ../src/iop/clipping.c:2112 +#: ../src/iop/clipping.c:2165 msgid "set perspective correction for your image" msgstr "画像にパースペクティブ補正を設定します" -#: ../src/iop/clipping.c:2119 ../src/iop/crop.c:1116 +#: ../src/iop/clipping.c:2172 ../src/iop/crop.c:1100 msgid "freehand" msgstr "フリーハンド" -#: ../src/iop/clipping.c:2122 ../src/iop/crop.c:1119 +#: ../src/iop/clipping.c:2175 ../src/iop/crop.c:1103 msgid "10:8 in print" msgstr "10:8 印刷" -#: ../src/iop/clipping.c:2123 ../src/iop/crop.c:1120 +#: ../src/iop/clipping.c:2176 ../src/iop/crop.c:1104 msgid "5:4, 4x5, 8x10" msgstr "5:4, 4x5, 8x10" -#: ../src/iop/clipping.c:2124 ../src/iop/crop.c:1121 +#: ../src/iop/clipping.c:2177 ../src/iop/crop.c:1105 msgid "11x14" msgstr "11x14" -#: ../src/iop/clipping.c:2125 ../src/iop/crop.c:1122 +#: ../src/iop/clipping.c:2178 ../src/iop/crop.c:1106 msgid "8.5x11, letter" msgstr "8.5x11, レターサイズ" -#: ../src/iop/clipping.c:2126 ../src/iop/crop.c:1123 +#: ../src/iop/clipping.c:2179 ../src/iop/crop.c:1107 msgid "4:3, VGA, TV" msgstr "4:3, VGA, TV" -#: ../src/iop/clipping.c:2127 ../src/iop/crop.c:1124 +#: ../src/iop/clipping.c:2180 ../src/iop/crop.c:1108 msgid "5x7" msgstr "5x7" -#: ../src/iop/clipping.c:2128 ../src/iop/crop.c:1125 +#: ../src/iop/clipping.c:2181 ../src/iop/crop.c:1109 msgid "ISO 216, DIN 476, A4" msgstr "ISO 216, DIN 476, A4" -#: ../src/iop/clipping.c:2129 ../src/iop/crop.c:1126 +#: ../src/iop/clipping.c:2182 ../src/iop/crop.c:1110 msgid "3:2, 4x6, 35mm" msgstr "3:2, 4x6, 35mm" -#: ../src/iop/clipping.c:2130 ../src/iop/crop.c:1127 +#: ../src/iop/clipping.c:2183 ../src/iop/crop.c:1111 msgid "16:10, 8x5" msgstr "16:10, 8x5" -#: ../src/iop/clipping.c:2132 ../src/iop/crop.c:1129 +#: ../src/iop/clipping.c:2185 ../src/iop/crop.c:1113 msgid "16:9, HDTV" msgstr "16:9, HDTV" -#: ../src/iop/clipping.c:2133 ../src/iop/crop.c:1130 +#: ../src/iop/clipping.c:2186 ../src/iop/crop.c:1114 msgid "widescreen" msgstr "ワイドスクリーン" -#: ../src/iop/clipping.c:2134 ../src/iop/crop.c:1131 +#: ../src/iop/clipping.c:2187 ../src/iop/crop.c:1115 msgid "2:1, univisium" msgstr "2:1, ユニビシウム" -#: ../src/iop/clipping.c:2135 ../src/iop/crop.c:1132 +#: ../src/iop/clipping.c:2188 ../src/iop/crop.c:1116 msgid "cinemascope" msgstr "シネマスコープ" -#: ../src/iop/clipping.c:2136 ../src/iop/crop.c:1133 +#: ../src/iop/clipping.c:2189 ../src/iop/crop.c:1117 msgid "21:9" msgstr "21:9" -#: ../src/iop/clipping.c:2137 ../src/iop/crop.c:1134 +#: ../src/iop/clipping.c:2190 ../src/iop/crop.c:1118 msgid "anamorphic" msgstr "アナモルフィック" -#: ../src/iop/clipping.c:2138 ../src/iop/crop.c:1135 +#: ../src/iop/clipping.c:2191 ../src/iop/crop.c:1119 msgid "3:1, panorama" msgstr "3:1, パノラマ" -#: ../src/iop/clipping.c:2170 ../src/iop/clipping.c:2182 ../src/iop/crop.c:1171 -#: ../src/iop/crop.c:1187 +#: ../src/iop/clipping.c:2223 ../src/iop/clipping.c:2235 ../src/iop/crop.c:1155 +#: ../src/iop/crop.c:1171 #, c-format msgid "invalid ratio format for `%s'. it should be \"number:number\"" msgstr "`%s'のアスペクト比の形式が無効です。\"数字:数字\" でなければなりません" -#: ../src/iop/clipping.c:2229 ../src/iop/crop.c:1238 +#: ../src/iop/clipping.c:2282 ../src/iop/crop.c:1222 msgid "" "set the aspect ratio\n" "the list is sorted: from most square to least square\n" @@ -14270,32 +14832,32 @@ "カスタム設定のアスペクト比を入力するには、コンボボックスを開いて比をx:yまたは" "少数でタイプしてください" -#: ../src/iop/clipping.c:2236 ../src/iop/crop.c:1252 +#: ../src/iop/clipping.c:2289 ../src/iop/crop.c:1236 msgid "margins" msgstr "余白" -#: ../src/iop/clipping.c:2241 ../src/iop/crop.c:1262 +#: ../src/iop/clipping.c:2294 ../src/iop/crop.c:1246 msgid "the left margin cannot overlap with the right margin" msgstr "左の余白を右の余白に重ねることは出来ません" -#: ../src/iop/clipping.c:2248 ../src/iop/crop.c:1270 +#: ../src/iop/clipping.c:2301 ../src/iop/crop.c:1254 msgid "the right margin cannot overlap with the left margin" msgstr "右の余白を左の余白に重ねることは出来ません" -#: ../src/iop/clipping.c:2253 ../src/iop/crop.c:1276 +#: ../src/iop/clipping.c:2306 ../src/iop/crop.c:1260 msgid "the top margin cannot overlap with the bottom margin" msgstr "上の余白を下の余白に重ねることは出来ません" -#: ../src/iop/clipping.c:2260 ../src/iop/crop.c:1284 +#: ../src/iop/clipping.c:2313 ../src/iop/crop.c:1268 msgid "the bottom margin cannot overlap with the top margin" msgstr "下の余白を上の余白に重ねることは出来ません" -#: ../src/iop/clipping.c:3019 +#: ../src/iop/clipping.c:3059 msgid "<b>commit</b>: double-click, <b>straighten</b>: right-drag" msgstr "" "<b>コミットする</b>:ダブルクリック  <b>真っ直ぐにする</b>:右ドラッグ" -#: ../src/iop/clipping.c:3023 +#: ../src/iop/clipping.c:3063 msgid "" "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag\n" "<b>straighten</b>: right-drag" @@ -14304,16 +14866,16 @@ "ラッグ\n" "<b>真っ直ぐにする</b>:右ドラッグ" -#: ../src/iop/clipping.c:3066 +#: ../src/iop/clipping.c:3104 msgid "<b>move control point</b>: drag" msgstr "<b>コントロール点を移動する</b>:ドラッグ" -#: ../src/iop/clipping.c:3071 +#: ../src/iop/clipping.c:3109 msgid "<b>move line</b>: drag, <b>toggle symmetry</b>: click ꝏ" msgstr "" "<b>線を移動する</b>:ドラッグ  <b>シンメトリーを切り替える</b>:クリック ꝏ" -#: ../src/iop/clipping.c:3076 +#: ../src/iop/clipping.c:3114 msgid "" "<b>apply</b>: click <tt>ok</tt>, <b>toggle symmetry</b>: click ꝏ\n" "<b>move line/control point</b>: drag" @@ -14322,7 +14884,7 @@ "リック ꝏ\n" "<b>線/コントロールポイントを移動する</b>:ドラッグ" -#: ../src/iop/clipping.c:3083 +#: ../src/iop/clipping.c:3121 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag\n" @@ -14332,12 +14894,12 @@ "に移動する</b>:Ctrl+ドラッグ\n" "<b>真っ直ぐにする</b>:右ドラッグ <b>コミット</b>:ダブルクリック" -#: ../src/iop/clipping.c:3340 ../src/iop/crop.c:1796 +#: ../src/iop/clipping.c:3380 ../src/iop/crop.c:1770 #, c-format msgid "[%s on borders] crop" msgstr "【縁の上で%s】トリミングする" -#: ../src/iop/clipping.c:3342 ../src/iop/crop.c:1798 +#: ../src/iop/clipping.c:3382 ../src/iop/crop.c:1772 #, c-format msgid "[%s on borders] crop keeping ratio" msgstr "【縁の上で%s】アスペクト比を維持してトリミングする" @@ -14356,226 +14918,226 @@ msgid "adjust the look of the image" msgstr "画像のルックを調整する" -#: ../src/iop/colisa.c:310 +#: ../src/iop/colisa.c:304 msgid "color saturation adjustment" msgstr "色の彩度を調整します" -#: ../src/iop/colorbalance.c:150 +#: ../src/iop/colorbalance.c:152 msgid "color balance" msgstr "カラーバランス" -#: ../src/iop/colorbalance.c:155 +#: ../src/iop/colorbalance.c:157 msgid "lift gamma gain|cdl|color grading|contrast|saturation|hue" msgstr "リフト、ガンマ、ゲイン|CDL|カラーグレーディング|コントラスト|彩度|色相" -#: ../src/iop/colorbalance.c:160 +#: ../src/iop/colorbalance.c:162 msgid "shift colors selectively by luminance range" msgstr "輝度の範囲にしたがって選択的に色をずらします" -#: ../src/iop/colorbalance.c:164 +#: ../src/iop/colorbalance.c:166 msgid "non-linear, Lab, scene-referred" msgstr "ノンリニア、Lab、シーン参照" #. these blobs were exported as dtstyle and copied from there: -#: ../src/iop/colorbalance.c:275 +#: ../src/iop/colorbalance.c:304 msgid "split-toning teal-orange (2nd instance)" msgstr "スプリットトーン ティールオレンジ(第2インスタンス)" -#: ../src/iop/colorbalance.c:278 +#: ../src/iop/colorbalance.c:307 msgid "split-toning teal-orange (1st instance)" msgstr "スプリットトーン ティールオレンジ(第1インスタンス)" -#: ../src/iop/colorbalance.c:282 +#: ../src/iop/colorbalance.c:311 msgid "generic film" msgstr "フィルム汎用" -#: ../src/iop/colorbalance.c:286 +#: ../src/iop/colorbalance.c:315 msgid "similar to Kodak Portra" msgstr "Kodak Portra" # Kodak Ektar 風 -#: ../src/iop/colorbalance.c:290 +#: ../src/iop/colorbalance.c:319 msgid "similar to Kodak Ektar" msgstr "Kodak Ektar" # Kodachrome 風 -#: ../src/iop/colorbalance.c:294 +#: ../src/iop/colorbalance.c:323 msgid "similar to Kodachrome" msgstr "Kodachrome" -#: ../src/iop/colorbalance.c:990 +#: ../src/iop/colorbalance.c:964 msgid "optimize luma from patches" msgstr "パッチの輝度(ルーマ)を最適化します" -#: ../src/iop/colorbalance.c:992 ../src/iop/colorbalance.c:2110 +#: ../src/iop/colorbalance.c:966 ../src/iop/colorbalance.c:2085 msgid "optimize luma" msgstr "輝度(ルーマ)を最適化" -#: ../src/iop/colorbalance.c:996 +#: ../src/iop/colorbalance.c:970 msgid "neutralize colors from patches" msgstr "パッチの色をニュートラルにします" -#: ../src/iop/colorbalance.c:998 ../src/iop/colorbalance.c:2116 +#: ../src/iop/colorbalance.c:972 ../src/iop/colorbalance.c:2091 msgid "neutralize colors" msgstr "色を中和" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "offset" msgstr "オフセット" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "power" msgstr "パワー" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "slope" msgstr "スロープ" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "lift" msgstr "リフト" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gamma" msgstr "ガンマ" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gain" msgstr "ゲイン" -#: ../src/iop/colorbalance.c:1787 +#: ../src/iop/colorbalance.c:1762 msgctxt "section" msgid "shadows: lift / offset" msgstr "シャドウ:リフト/オフセット" -#: ../src/iop/colorbalance.c:1788 +#: ../src/iop/colorbalance.c:1763 msgctxt "section" msgid "mid-tones: gamma / power" msgstr "中間トーン:ガンマ/パワー" -#: ../src/iop/colorbalance.c:1789 +#: ../src/iop/colorbalance.c:1764 msgctxt "section" msgid "highlights: gain / slope" msgstr "ハイライト:ゲイン/スロープ" -#: ../src/iop/colorbalance.c:1813 +#: ../src/iop/colorbalance.c:1788 msgid "shadows / mid-tones / highlights" msgstr "シャドウ/中間トーン/ハイライト" -#: ../src/iop/colorbalance.c:1910 ../src/iop/colorbalance.c:1919 +#: ../src/iop/colorbalance.c:1885 ../src/iop/colorbalance.c:1894 msgid "color-grading mapping method" msgstr "カラーグレーディングのマッピング方法" -#: ../src/iop/colorbalance.c:1914 +#: ../src/iop/colorbalance.c:1889 msgid "color control sliders" msgstr "カラーコントロールスライダー" -#: ../src/iop/colorbalance.c:1915 ../src/libs/colorpicker.c:51 +#: ../src/iop/colorbalance.c:1890 ../src/libs/colorpicker.c:51 msgid "HSL" msgstr "HSL" -#: ../src/iop/colorbalance.c:1916 +#: ../src/iop/colorbalance.c:1891 msgid "RGBL" msgstr "RGBL" -#: ../src/iop/colorbalance.c:1928 +#: ../src/iop/colorbalance.c:1903 msgctxt "section" msgid "master" msgstr "マスター" -#: ../src/iop/colorbalance.c:1934 +#: ../src/iop/colorbalance.c:1909 msgid "saturation correction before the color balance" msgstr "カラーバランスの前の彩度の補正" -#: ../src/iop/colorbalance.c:1940 +#: ../src/iop/colorbalance.c:1915 msgid "saturation correction after the color balance" msgstr "カラーバランスの後の彩度の補正" -#: ../src/iop/colorbalance.c:1945 +#: ../src/iop/colorbalance.c:1920 msgid "adjust to match a neutral tone" msgstr "ニュートラルトーンに合わせて調整する" #. is set in _configure_slider_blocks -#: ../src/iop/colorbalance.c:2003 +#: ../src/iop/colorbalance.c:1978 msgid "click to cycle layout" msgstr "クリックしてレイアウトを変更する" -#: ../src/iop/colorbalance.c:2037 +#: ../src/iop/colorbalance.c:2012 msgid "factor" msgstr "ファクター" -#: ../src/iop/colorbalance.c:2051 +#: ../src/iop/colorbalance.c:2026 msgid "select the hue" msgstr "色相を選択してください" -#: ../src/iop/colorbalance.c:2063 +#: ../src/iop/colorbalance.c:2038 msgid "select the saturation" msgstr "彩度を選択してください" -#: ../src/iop/colorbalance.c:2082 +#: ../src/iop/colorbalance.c:2057 msgid "factor of lift/offset" msgstr "リフト/オフセットのファクター" -#: ../src/iop/colorbalance.c:2083 +#: ../src/iop/colorbalance.c:2058 msgid "factor of red for lift/offset" msgstr "リフト/オフセットの赤のファクター" -#: ../src/iop/colorbalance.c:2084 +#: ../src/iop/colorbalance.c:2059 msgid "factor of green for lift/offset" msgstr "リフト/オフセットの緑のファクター" -#: ../src/iop/colorbalance.c:2085 +#: ../src/iop/colorbalance.c:2060 msgid "factor of blue for lift/offset" msgstr "リフト/オフセットの青のファクター" -#: ../src/iop/colorbalance.c:2088 +#: ../src/iop/colorbalance.c:2063 msgid "factor of gamma/power" msgstr "ガンマ/パワーのファクター" -#: ../src/iop/colorbalance.c:2089 +#: ../src/iop/colorbalance.c:2064 msgid "factor of red for gamma/power" msgstr "ガンマ/パワーの赤のファクター" -#: ../src/iop/colorbalance.c:2090 +#: ../src/iop/colorbalance.c:2065 msgid "factor of green for gamma/power" msgstr "ガンマ/パワーの緑のファクター" -#: ../src/iop/colorbalance.c:2091 +#: ../src/iop/colorbalance.c:2066 msgid "factor of blue for gamma/power" msgstr "ガンマ/パワーの青のファクター" -#: ../src/iop/colorbalance.c:2094 +#: ../src/iop/colorbalance.c:2069 msgid "factor of gain/slope" msgstr "ゲイン/スロープのファクター" -#: ../src/iop/colorbalance.c:2095 +#: ../src/iop/colorbalance.c:2070 msgid "factor of red for gain/slope" msgstr "ゲイン/スロープの赤のファクター" -#: ../src/iop/colorbalance.c:2096 +#: ../src/iop/colorbalance.c:2071 msgid "factor of green for gain/slope" msgstr "ゲイン/スロープの緑のファクター" -#: ../src/iop/colorbalance.c:2097 +#: ../src/iop/colorbalance.c:2072 msgid "factor of blue for gain/slope" msgstr "ゲイン/スロープの青のファクター" -#: ../src/iop/colorbalance.c:2106 +#: ../src/iop/colorbalance.c:2081 msgctxt "section" msgid "auto optimizers" msgstr "自動最適化" -#: ../src/iop/colorbalance.c:2111 +#: ../src/iop/colorbalance.c:2086 msgid "fit the whole histogram and center the average luma" msgstr "ヒストグラム全体を最適化し、平均輝度(ルーマ)を中央に位置させます" -#: ../src/iop/colorbalance.c:2117 +#: ../src/iop/colorbalance.c:2092 msgid "optimize the RGB curves to remove color casts" msgstr "RGBカーブを最適化して色かぶりを除去します" @@ -14599,108 +15161,108 @@ "カラーグレーディングツール\n" "アルファマスクを用いてシャドウ、中間トーン、ハイライトを分離します" -#: ../src/iop/colorbalancergb.c:443 +#: ../src/iop/colorbalancergb.c:536 msgid "add basic colorfulness (legacy)" msgstr "基本的な色鮮やかさ(カラフルネス)(旧式)を追加" -#: ../src/iop/colorbalancergb.c:452 +#: ../src/iop/colorbalancergb.c:545 msgid "basic colorfulness: natural skin" msgstr "基本的な色鮮やかさ(カラフルネス):自然な肌" -#: ../src/iop/colorbalancergb.c:458 +#: ../src/iop/colorbalancergb.c:551 msgid "basic colorfulness: vibrant colors" msgstr "基本的な色鮮やかさ(カラフルネス):鮮やかな(バイブラント)色" -#: ../src/iop/colorbalancergb.c:464 +#: ../src/iop/colorbalancergb.c:557 msgid "basic colorfulness: standard" msgstr "基本的な色鮮やかさ(カラフルネス):通常" -#: ../src/iop/colorbalancergb.c:937 +#: ../src/iop/colorbalancergb.c:1022 msgid "colorbalance works only on RGB input" msgstr "カラーバランスはRGB入力でのみ機能します" -#: ../src/iop/colorbalancergb.c:1506 ../src/iop/colorzones.c:2164 -#: ../src/iop/retouch.c:1884 ../src/iop/toneequal.c:1966 +#: ../src/iop/colorbalancergb.c:1577 ../src/iop/colorzones.c:2394 +#: ../src/iop/retouch.c:2069 ../src/iop/toneequal.c:1996 msgid "cannot display masks when the blending mask is displayed" msgstr "ブレンドマスクが表示されている時にはマスクを表示することが出来ません" #. Page master -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "master" msgstr "マスター" -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "global grading" msgstr "画像全体のグレーディング" -#: ../src/iop/colorbalancergb.c:1880 +#: ../src/iop/colorbalancergb.c:1951 msgid "rotate all hues by an angle, at the same luminance" msgstr "輝度を維持したまま、全ての色相を同じ角度回転させます" -#: ../src/iop/colorbalancergb.c:1886 +#: ../src/iop/colorbalancergb.c:1957 msgid "increase colorfulness mostly on low-chroma colors" msgstr "主に低彩度(クロマ)の色の色鮮やかさ(カラフルネス)を強めます" -#: ../src/iop/colorbalancergb.c:1892 +#: ../src/iop/colorbalancergb.c:1963 msgid "increase the contrast at constant chromaticity" msgstr "色度(クロマティシティ)を維持したまま、コントラストを強めます" -#: ../src/iop/colorbalancergb.c:1894 +#: ../src/iop/colorbalancergb.c:1965 msgctxt "section" msgid "linear chroma grading" msgstr "リニアな彩度(クロマ)のグレーディング" -#: ../src/iop/colorbalancergb.c:1901 +#: ../src/iop/colorbalancergb.c:1972 msgid "increase colorfulness at same luminance globally" msgstr "画像全体で、輝度を維持したまま、色鮮やかさ(カラフルネス)を強めます" -#: ../src/iop/colorbalancergb.c:1906 +#: ../src/iop/colorbalancergb.c:1977 msgid "increase colorfulness at same luminance mostly in shadows" msgstr "" "主にシャドウで、輝度を維持したまま、色鮮やかさ(カラフルネス)を強めます" -#: ../src/iop/colorbalancergb.c:1911 +#: ../src/iop/colorbalancergb.c:1982 msgid "increase colorfulness at same luminance mostly in mid-tones" msgstr "" "主に中間トーンで、輝度を維持したまま、色鮮やかさ(カラフルネス)を強めます" -#: ../src/iop/colorbalancergb.c:1916 +#: ../src/iop/colorbalancergb.c:1987 msgid "increase colorfulness at same luminance mostly in highlights" msgstr "" "主にハイライトで、輝度を維持したまま、色鮮やかさ(カラフルネス)を強めます" -#: ../src/iop/colorbalancergb.c:1918 +#: ../src/iop/colorbalancergb.c:1989 msgctxt "section" msgid "perceptual saturation grading" msgstr "知覚的な彩度(サチュレーション)のグレーディング" -#: ../src/iop/colorbalancergb.c:1924 +#: ../src/iop/colorbalancergb.c:1995 msgid "add or remove saturation by an absolute amount" msgstr "絶対量で彩度(サチュレーション)を増減させます" -#: ../src/iop/colorbalancergb.c:1929 ../src/iop/colorbalancergb.c:1934 -#: ../src/iop/colorbalancergb.c:1939 +#: ../src/iop/colorbalancergb.c:2000 ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2010 msgid "" "increase or decrease saturation proportionally to the original pixel " "saturation" msgstr "" "元のピクセルの彩度(サチュレーション)に比例して、絶対量で彩度を増減させます" -#: ../src/iop/colorbalancergb.c:1941 +#: ../src/iop/colorbalancergb.c:2012 msgctxt "section" msgid "perceptual brilliance grading" msgstr "知覚的な明るさ(ブリリアンス)のグレーディング" -#: ../src/iop/colorbalancergb.c:1942 +#: ../src/iop/colorbalancergb.c:2013 msgid "brilliance" msgstr "明るさ(ブリリアンス)" -#: ../src/iop/colorbalancergb.c:1947 +#: ../src/iop/colorbalancergb.c:2018 msgid "add or remove brilliance by an absolute amount" msgstr "絶対量で明るさ(ブリリアンス)を増減させます" -#: ../src/iop/colorbalancergb.c:1952 ../src/iop/colorbalancergb.c:1957 -#: ../src/iop/colorbalancergb.c:1962 +#: ../src/iop/colorbalancergb.c:2023 ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2033 msgid "" "increase or decrease brilliance proportionally to the original pixel " "brilliance" @@ -14708,155 +15270,155 @@ "元のピクセルの明るさ(ブリリアンス)に比例して、絶対量で明るさを増減させます" #. Page 4-ways -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "4 ways" msgstr "4ウェイ" -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "selective color grading" msgstr "選択的カラーグレーディング" -#: ../src/iop/colorbalancergb.c:1967 +#: ../src/iop/colorbalancergb.c:2038 msgctxt "section" msgid "global offset" msgstr "全体のオフセット" -#: ../src/iop/colorbalancergb.c:1974 +#: ../src/iop/colorbalancergb.c:2045 msgid "global luminance offset" msgstr "画像全体の輝度のオフセット" -#: ../src/iop/colorbalancergb.c:1979 +#: ../src/iop/colorbalancergb.c:2050 msgid "hue of the global color offset" msgstr "画像全体の色のオフセットの色相" -#: ../src/iop/colorbalancergb.c:1985 +#: ../src/iop/colorbalancergb.c:2056 msgid "chroma of the global color offset" msgstr "画像全体の色のオフセットの彩度(クロマ)" -#: ../src/iop/colorbalancergb.c:1987 +#: ../src/iop/colorbalancergb.c:2058 msgctxt "section" msgid "shadows lift" msgstr "シャドウ リフト" -#: ../src/iop/colorbalancergb.c:1988 +#: ../src/iop/colorbalancergb.c:2059 msgid "lift" msgstr "リフト" -#: ../src/iop/colorbalancergb.c:1994 +#: ../src/iop/colorbalancergb.c:2065 msgid "luminance gain in shadows" msgstr "シャドウの輝度の増幅" -#: ../src/iop/colorbalancergb.c:1999 +#: ../src/iop/colorbalancergb.c:2070 msgid "hue of the color gain in shadows" msgstr "シャドウの色の増幅の色相" -#: ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2076 msgid "chroma of the color gain in shadows" msgstr "シャドウの色の増幅の彩度(クロマ)" -#: ../src/iop/colorbalancergb.c:2007 +#: ../src/iop/colorbalancergb.c:2078 msgctxt "section" msgid "highlights gain" msgstr "ハイライト ゲイン" -#: ../src/iop/colorbalancergb.c:2008 +#: ../src/iop/colorbalancergb.c:2079 msgid "gain" msgstr "ゲイン" -#: ../src/iop/colorbalancergb.c:2014 +#: ../src/iop/colorbalancergb.c:2085 msgid "luminance gain in highlights" msgstr "ハイライトの輝度の増幅" -#: ../src/iop/colorbalancergb.c:2019 +#: ../src/iop/colorbalancergb.c:2090 msgid "hue of the color gain in highlights" msgstr "ハイライトの色の増幅の色相" -#: ../src/iop/colorbalancergb.c:2025 +#: ../src/iop/colorbalancergb.c:2096 msgid "chroma of the color gain in highlights" msgstr "ハイライトの色の増幅の彩度(クロマ)" -#: ../src/iop/colorbalancergb.c:2027 +#: ../src/iop/colorbalancergb.c:2098 msgctxt "section" msgid "power" msgstr "パワー" -#: ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2099 msgid "power" msgstr "パワー" -#: ../src/iop/colorbalancergb.c:2034 +#: ../src/iop/colorbalancergb.c:2105 msgid "luminance exponent in mid-tones" msgstr "中間トーンにの輝度の冪指数" -#: ../src/iop/colorbalancergb.c:2039 +#: ../src/iop/colorbalancergb.c:2110 msgid "hue of the color exponent in mid-tones" msgstr "中間トーンの色の冪指数の色相" -#: ../src/iop/colorbalancergb.c:2045 +#: ../src/iop/colorbalancergb.c:2116 msgid "chroma of the color exponent in mid-tones" msgstr "中間トーンの色の冪指数の彩度(クロマ)" #. Page masks -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "masks" msgstr "マスク" -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "isolate luminances" msgstr "輝度を区分けします" -#: ../src/iop/colorbalancergb.c:2052 +#: ../src/iop/colorbalancergb.c:2123 msgid "choose in which uniform color space the saturation is computed" msgstr "どの均等色空間で彩度を計算するかを選択します" -#: ../src/iop/colorbalancergb.c:2054 +#: ../src/iop/colorbalancergb.c:2125 msgctxt "section" msgid "luminance ranges" msgstr "輝度の範囲" -#: ../src/iop/colorbalancergb.c:2065 +#: ../src/iop/colorbalancergb.c:2136 msgid "weight of the shadows over the whole tonal range" msgstr "トーン全域におけるシャドウのウェイト" -#: ../src/iop/colorbalancergb.c:2073 +#: ../src/iop/colorbalancergb.c:2144 msgid "position of the middle-gray reference for masking" msgstr "マスキングに用いるミドルグレーの基準の位置" -#: ../src/iop/colorbalancergb.c:2081 +#: ../src/iop/colorbalancergb.c:2152 msgid "weights of highlights over the whole tonal range" msgstr "トーン全域におけるハイライトのウェイト" -#: ../src/iop/colorbalancergb.c:2086 +#: ../src/iop/colorbalancergb.c:2157 msgctxt "section" msgid "threshold" msgstr "しきい値" -#: ../src/iop/colorbalancergb.c:2091 +#: ../src/iop/colorbalancergb.c:2162 msgid "peak white luminance value used to normalize the power function" msgstr "べき(パワー)関数を正規化するために用いるピークとなる白の輝度値" -#: ../src/iop/colorbalancergb.c:2097 +#: ../src/iop/colorbalancergb.c:2168 msgid "peak gray luminance value used to normalize the power function" msgstr "べき(パワー)関数を正規化するために用いるピークとなるグレーの輝度値" -#: ../src/iop/colorbalancergb.c:2099 +#: ../src/iop/colorbalancergb.c:2170 msgctxt "section" msgid "mask preview settings" msgstr "マスクプレビューの設定" -#: ../src/iop/colorbalancergb.c:2102 +#: ../src/iop/colorbalancergb.c:2173 msgid "checkerboard color 1" msgstr "チェッカーボードの色 1" -#: ../src/iop/colorbalancergb.c:2105 ../src/iop/colorbalancergb.c:2114 +#: ../src/iop/colorbalancergb.c:2176 ../src/iop/colorbalancergb.c:2185 msgid "select color of the checkerboard from a swatch" msgstr "色見本からチェッカーボードの色を選択してください" -#: ../src/iop/colorbalancergb.c:2111 +#: ../src/iop/colorbalancergb.c:2182 msgid "checkerboard color 2" msgstr "チェッカーボードの色 2" -#: ../src/iop/colorbalancergb.c:2121 +#: ../src/iop/colorbalancergb.c:2192 msgid "checkerboard size" msgstr "チェッカーボードのサイズ" @@ -14873,11 +15435,11 @@ msgstr "色空間の補正を行い、ルックを適用します" #: ../src/iop/colorchecker.c:131 ../src/iop/colorchecker.c:133 -#: ../src/iop/colorize.c:106 ../src/iop/colormapping.c:154 -#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:136 -#: ../src/iop/colorzones.c:146 ../src/iop/defringe.c:83 ../src/iop/levels.c:139 -#: ../src/iop/monochrome.c:99 ../src/iop/shadhi.c:198 -#: ../src/iop/tonecurve.c:212 ../src/iop/vibrance.c:96 +#: ../src/iop/colorize.c:99 ../src/iop/colormapping.c:154 +#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:121 +#: ../src/iop/colorzones.c:147 ../src/iop/defringe.c:83 ../src/iop/levels.c:141 +#: ../src/iop/monochrome.c:101 ../src/iop/shadhi.c:145 +#: ../src/iop/tonecurve.c:185 ../src/iop/vibrance.c:98 msgid "linear or non-linear, Lab, display-referred" msgstr "リニアあるいはノンリニア、Lab、ディスプレイ参照" @@ -14885,40 +15447,40 @@ msgid "defined by profile, Lab" msgstr "プロファイルにより定義、Lab" -#: ../src/iop/colorchecker.c:294 +#: ../src/iop/colorchecker.c:308 msgid "it8 skin tones" msgstr "IT8 スキントーン" -#: ../src/iop/colorchecker.c:310 +#: ../src/iop/colorchecker.c:324 msgid "Helmholtz/Kohlrausch monochrome" msgstr "ヘルムホルツ−コールラウシュ モノクローム" -#: ../src/iop/colorchecker.c:327 +#: ../src/iop/colorchecker.c:341 msgid "Fuji Astia emulation" msgstr "Fuji Astiaエミュレーション" -#: ../src/iop/colorchecker.c:341 +#: ../src/iop/colorchecker.c:355 msgid "Fuji Classic Chrome emulation" msgstr "Fuji クラシッククローム エミュレーション" -#: ../src/iop/colorchecker.c:355 +#: ../src/iop/colorchecker.c:369 msgid "Fuji Monochrome emulation" msgstr "Fuji モノクロ エミュレーション" -#: ../src/iop/colorchecker.c:369 +#: ../src/iop/colorchecker.c:383 msgid "Fuji Provia emulation" msgstr "Fuji Proviaエミュレーション" -#: ../src/iop/colorchecker.c:383 +#: ../src/iop/colorchecker.c:397 msgid "Fuji Velvia emulation" msgstr "Fuji Velviaエミュレーション" -#: ../src/iop/colorchecker.c:841 ../src/iop/colorchecker.c:1436 +#: ../src/iop/colorchecker.c:846 ../src/iop/colorchecker.c:1441 #, c-format msgid "patch #%d" msgstr "パッチ#%d" -#: ../src/iop/colorchecker.c:1283 +#: ../src/iop/colorchecker.c:1288 #, c-format msgid "" "(%2.2f %2.2f %2.2f)\n" @@ -14936,15 +15498,15 @@ "ピッカーを使って画像内で色を選択している間にShift+クリックすると、パッチを置" "き換えます" -#: ../src/iop/colorchecker.c:1431 +#: ../src/iop/colorchecker.c:1436 msgid "patch" msgstr "パッチ" -#: ../src/iop/colorchecker.c:1432 +#: ../src/iop/colorchecker.c:1437 msgid "color checker patch" msgstr "カラーチェッカーのパッチ" -#: ../src/iop/colorchecker.c:1446 +#: ../src/iop/colorchecker.c:1451 msgid "" "adjust target color Lab 'L' channel\n" "lower values darken target color while higher brighten it" @@ -14953,7 +15515,7 @@ "値を下げると、ターゲットの色を暗くします\n" "値を上げると、ターゲットの色を明るくします" -#: ../src/iop/colorchecker.c:1454 +#: ../src/iop/colorchecker.c:1459 msgid "" "adjust target color Lab 'a' channel\n" "lower values shift target color towards greens while higher shift towards " @@ -14963,11 +15525,11 @@ "値を下げると、ターゲットの色を緑に向けてずらします\n" "値を上げると、ターゲットの色をマゼンタに向けてずらします" -#: ../src/iop/colorchecker.c:1457 +#: ../src/iop/colorchecker.c:1462 msgid "green-magenta offset" msgstr "緑対マゼンタのオフセット" -#: ../src/iop/colorchecker.c:1466 +#: ../src/iop/colorchecker.c:1471 msgid "" "adjust target color Lab 'b' channel\n" "lower values shift target color towards blues while higher shift towards " @@ -14977,11 +15539,11 @@ "値を下げると、ターゲットの色を青に向けてずらします\n" "値を上げると、ターゲットの色を黄色に向けてずらします" -#: ../src/iop/colorchecker.c:1469 +#: ../src/iop/colorchecker.c:1474 msgid "blue-yellow offset" msgstr "青対黄のオフセット" -#: ../src/iop/colorchecker.c:1478 +#: ../src/iop/colorchecker.c:1483 msgid "" "adjust target color saturation\n" "adjusts 'a' and 'b' channels of target color in Lab space simultaneously\n" @@ -14993,11 +15555,11 @@ "値を下げると、彩度を下げます\n" "値を上げると、彩度を上げます" -#: ../src/iop/colorchecker.c:1487 +#: ../src/iop/colorchecker.c:1492 msgid "target color" msgstr "ターゲットの色" -#: ../src/iop/colorchecker.c:1490 +#: ../src/iop/colorchecker.c:1495 msgid "" "control target color of the patches\n" "relative - target color is relative from the patch original color\n" @@ -15007,15 +15569,15 @@ "相対値:ターゲットの色はパッチの元の色に対する相対値です\n" "絶対値:ターゲットの色はLabの絶対値です" -#: ../src/iop/colorchecker.c:1494 +#: ../src/iop/colorchecker.c:1499 msgid "absolute" msgstr "絶対値" -#: ../src/iop/colorcontrast.c:85 +#: ../src/iop/colorcontrast.c:77 msgid "color contrast" msgstr "色のコントラスト" -#: ../src/iop/colorcontrast.c:95 +#: ../src/iop/colorcontrast.c:87 msgid "" "increase saturation and separation between\n" "opposite colors" @@ -15023,7 +15585,7 @@ # Lab色空間でのa *曲線の傾き # 値が小さいほど緑とマゼンタの彩度が低くなり、値が大きいほど緑とマゼンタの彩度が高くなります。 -#: ../src/iop/colorcontrast.c:324 +#: ../src/iop/colorcontrast.c:330 msgid "" "steepness of the a* curve in Lab\n" "lower values desaturate greens and magenta while higher saturate them" @@ -15034,7 +15596,7 @@ # Lab色空間でのb *曲線の傾き # 値が小さいほど青と黄色の彩度が低くなり、値が大きいほど彩度が高くなります。 -#: ../src/iop/colorcontrast.c:331 +#: ../src/iop/colorcontrast.c:337 msgid "" "steepness of the b* curve in Lab\n" "lower values desaturate blues and yellows while higher saturate them" @@ -15051,19 +15613,19 @@ msgid "correct white balance selectively for blacks and whites" msgstr "暗部と明部のホワイトバランスを補正します" -#: ../src/iop/colorcorrection.c:107 +#: ../src/iop/colorcorrection.c:109 msgid "warm tone" msgstr "ウォームトーン" -#: ../src/iop/colorcorrection.c:115 +#: ../src/iop/colorcorrection.c:117 msgid "warming filter" msgstr "ウォーム化フィルタ" -#: ../src/iop/colorcorrection.c:123 +#: ../src/iop/colorcorrection.c:125 msgid "cooling filter" msgstr "クール化フィルタ" -#: ../src/iop/colorcorrection.c:257 +#: ../src/iop/colorcorrection.c:250 msgid "" "drag the line for split-toning. bright means highlights, dark means shadows. " "use mouse wheel to change saturation." @@ -15072,7 +15634,7 @@ "白点はハイライト、黒点はシャドウを意味します\n" "彩度を変更するにはマウスホイールを使用します" -#: ../src/iop/colorcorrection.c:276 +#: ../src/iop/colorcorrection.c:269 msgid "set the global saturation" msgstr "全体の彩度を設定します" @@ -15091,7 +15653,7 @@ "カラープロファイルを使用してRGB値を再マッピングします" #: ../src/iop/colorin.c:133 ../src/iop/colorout.c:89 ../src/iop/demosaic.c:293 -#: ../src/iop/rawprepare.c:158 +#: ../src/iop/rawprepare.c:174 msgid "mandatory" msgstr "必須" @@ -15099,7 +15661,7 @@ msgid "defined by profile" msgstr "プロファイルにより定義されました" -#: ../src/iop/colorin.c:542 +#: ../src/iop/colorin.c:582 #, c-format msgid "" "can't extract matrix from colorspace `%s', it will be replaced by Rec2020 " @@ -15108,26 +15670,26 @@ "カラースペース`%s'からマトリクスを抽出することが出来ません\n" "Rec2020 RGB に置き換えられます!" -#: ../src/iop/colorin.c:1424 +#: ../src/iop/colorin.c:1362 #, c-format msgid "`%s' color matrix not found!" msgstr "`%s'カラーマトリクスが見つかりませんでした!" -#: ../src/iop/colorin.c:1463 +#: ../src/iop/colorin.c:1401 msgid "input profile could not be generated!" msgstr "入力プロファイルを生成することが出来ませんでした!" -#: ../src/iop/colorin.c:1560 +#: ../src/iop/colorin.c:1498 msgid "unsupported input profile has been replaced by linear Rec709 RGB!" msgstr "" "入力プロファイルがサポートされていません。リニアRec709 RGB に置き換えられてい" "ます!" -#: ../src/iop/colorin.c:1844 +#: ../src/iop/colorin.c:1782 msgid "external ICC profiles" msgstr "外部ICCプロファイル" -#: ../src/iop/colorin.c:1889 +#: ../src/iop/colorin.c:1827 #, c-format msgid "" "embedded ICC profile properties:\n" @@ -15150,43 +15712,43 @@ "著作権:<b>%s</b>\n" "\n" -#: ../src/iop/colorin.c:2084 +#: ../src/iop/colorin.c:2022 msgid "input profile" msgstr "入力プロファイル" -#: ../src/iop/colorin.c:2088 +#: ../src/iop/colorin.c:2026 msgid "working profile" msgstr "作業プロファイル" -#: ../src/iop/colorin.c:2097 +#: ../src/iop/colorin.c:2035 msgid "working ICC profiles" msgstr "作業ICCプロファイル" -#: ../src/iop/colorin.c:2109 +#: ../src/iop/colorin.c:2047 msgid "confine Lab values to gamut of RGB color space" msgstr "Lab値をRGB色空間の色域に閉じ込めます" -#: ../src/iop/colorize.c:84 +#: ../src/iop/colorize.c:75 msgid "colorize" msgstr "着色" -#: ../src/iop/colorize.c:104 +#: ../src/iop/colorize.c:97 msgid "overlay a solid color on the image" msgstr "画像に無地の色を被せます" -#: ../src/iop/colorize.c:341 ../src/iop/splittoning.c:485 +#: ../src/iop/colorize.c:354 ../src/iop/splittoning.c:481 msgid "select the hue tone" msgstr "色相トーンを選択してください" -#: ../src/iop/colorize.c:347 +#: ../src/iop/colorize.c:360 msgid "select the saturation shadow tone" msgstr "シャドウトーンの彩度を選択してください" -#: ../src/iop/colorize.c:351 +#: ../src/iop/colorize.c:364 msgid "lightness of color" msgstr "色の明度" -#: ../src/iop/colorize.c:355 +#: ../src/iop/colorize.c:368 msgid "mix value of source lightness" msgstr "元画像の明度とのミックスの値" @@ -15199,37 +15761,37 @@ "transfer a color palette and tonal repartition from one image to another" msgstr "カラーパレットとトーンの割り当てをある画像から別の画像へ移します" -#: ../src/iop/colormapping.c:1030 +#: ../src/iop/colormapping.c:1019 msgid "source clusters:" msgstr "ソースのクラスタ:" -#: ../src/iop/colormapping.c:1036 +#: ../src/iop/colormapping.c:1025 msgid "target clusters:" msgstr "ターゲットのクラスタ:" -#: ../src/iop/colormapping.c:1045 +#: ../src/iop/colormapping.c:1034 msgid "acquire as source" msgstr "ソースとして取得" -#: ../src/iop/colormapping.c:1049 +#: ../src/iop/colormapping.c:1038 msgid "analyze this image as a source image" msgstr "この画像をソース画像として分析します" -#: ../src/iop/colormapping.c:1051 +#: ../src/iop/colormapping.c:1040 msgid "acquire as target" msgstr "ターゲットとして取得" -#: ../src/iop/colormapping.c:1055 +#: ../src/iop/colormapping.c:1044 msgid "analyze this image as a target image" msgstr "この画像をターゲット画像として分析します" -#: ../src/iop/colormapping.c:1058 +#: ../src/iop/colormapping.c:1047 msgid "number of clusters to find in image. value change resets all clusters" msgstr "" "画像内で探すクラスタの数\n" "値を変更すると全てのクラスタがリセットされます" -#: ../src/iop/colormapping.c:1061 +#: ../src/iop/colormapping.c:1050 msgid "" "how clusters are mapped. low values: based on color proximity, high values: " "based on color dominance" @@ -15238,7 +15800,7 @@ "低い値:色の類似度にもとづきます\n" "高い値:色の優勢度にもとづきます" -#: ../src/iop/colormapping.c:1066 +#: ../src/iop/colormapping.c:1055 msgid "level of histogram equalization" msgstr "ヒストグラム均等化のレベル" @@ -15258,114 +15820,114 @@ msgid "non-linear, RGB or Lab, display-referred" msgstr "ノンリニア、RGBあるいはLab、ディスプレイ参照" -#: ../src/iop/colorout.c:679 +#: ../src/iop/colorout.c:695 msgid "missing output profile has been replaced by sRGB!" msgstr "出力カラープロファイルが見つかりません。 sRGBに置き換えられています!" -#: ../src/iop/colorout.c:701 +#: ../src/iop/colorout.c:717 msgid "missing softproof profile has been replaced by sRGB!" msgstr "" "ソフトプルーフのプロファイルが見つかりません。 sRGB に置き換えられています!" -#: ../src/iop/colorout.c:744 +#: ../src/iop/colorout.c:760 msgid "unsupported output profile has been replaced by sRGB!" msgstr "" "出力プロファイルがサポートされていません。 sRGB に置き換えられています!" -#: ../src/iop/colorout.c:869 +#: ../src/iop/colorout.c:885 msgid "output intent" msgstr "出力インテント" -#: ../src/iop/colorout.c:870 +#: ../src/iop/colorout.c:886 msgid "rendering intent" msgstr "レンダリングインテント" -#: ../src/iop/colorout.c:872 ../src/libs/export.c:1246 +#: ../src/iop/colorout.c:888 ../src/libs/export.c:1358 #: ../src/libs/print_settings.c:2475 ../src/libs/print_settings.c:2824 -#: ../src/views/darkroom.c:2518 ../src/views/lighttable.c:1176 +#: ../src/views/darkroom.c:2359 ../src/views/lighttable.c:1176 msgid "perceptual" msgstr "知覚的" -#: ../src/iop/colorout.c:873 ../src/libs/export.c:1247 +#: ../src/iop/colorout.c:889 ../src/libs/export.c:1359 #: ../src/libs/print_settings.c:2476 ../src/libs/print_settings.c:2825 -#: ../src/views/darkroom.c:2519 ../src/views/lighttable.c:1177 +#: ../src/views/darkroom.c:2360 ../src/views/lighttable.c:1177 msgid "relative colorimetric" msgstr "相対的な色彩を保持" -#: ../src/iop/colorout.c:874 ../src/libs/export.c:1248 +#: ../src/iop/colorout.c:890 ../src/libs/export.c:1360 #: ../src/libs/print_settings.c:2477 ../src/libs/print_settings.c:2826 -#: ../src/views/darkroom.c:2520 ../src/views/lighttable.c:1178 +#: ../src/views/darkroom.c:2361 ../src/views/lighttable.c:1178 msgctxt "rendering intent" msgid "saturation" msgstr "彩度" -#: ../src/iop/colorout.c:875 ../src/libs/export.c:1249 +#: ../src/iop/colorout.c:891 ../src/libs/export.c:1361 #: ../src/libs/print_settings.c:2478 ../src/libs/print_settings.c:2827 -#: ../src/views/darkroom.c:2521 ../src/views/lighttable.c:1179 +#: ../src/views/darkroom.c:2362 ../src/views/lighttable.c:1179 msgid "absolute colorimetric" msgstr "絶対的な色彩を保持" -#: ../src/iop/colorout.c:893 +#: ../src/iop/colorout.c:909 msgid "export ICC profiles" msgstr "エクスポートICCプロファイル" -#: ../src/iop/colorreconstruction.c:129 +#: ../src/iop/colorreconstruction.c:114 msgid "color reconstruction" msgstr "色の再構成" -#: ../src/iop/colorreconstruction.c:134 +#: ../src/iop/colorreconstruction.c:119 msgid "recover clipped highlights by propagating surrounding colors" msgstr "周囲の色を流用してクリップしたハイライトを復元します" -#: ../src/iop/colorreconstruction.c:628 ../src/iop/colorreconstruction.c:1040 -#: ../src/iop/globaltonemap.c:193 ../src/iop/globaltonemap.c:362 -#: ../src/iop/hazeremoval.c:553 ../src/iop/hazeremoval.c:788 -#: ../src/iop/levels.c:336 +#: ../src/iop/colorreconstruction.c:647 ../src/iop/colorreconstruction.c:1053 +#: ../src/iop/globaltonemap.c:227 ../src/iop/globaltonemap.c:396 +#: ../src/iop/hazeremoval.c:541 ../src/iop/hazeremoval.c:776 +#: ../src/iop/levels.c:358 msgid "inconsistent output" msgstr "不整合なアウトプット" -#: ../src/iop/colorreconstruction.c:666 +#: ../src/iop/colorreconstruction.c:685 msgid "module `color reconstruction' failed" msgstr "モジュール【色の再構成】が正しく機能しませんでした" -#: ../src/iop/colorreconstruction.c:1237 +#: ../src/iop/colorreconstruction.c:1246 msgid "spatial" msgstr "空間的" -#: ../src/iop/colorreconstruction.c:1238 +#: ../src/iop/colorreconstruction.c:1247 msgid "range" msgstr "範囲" -#: ../src/iop/colorreconstruction.c:1239 +#: ../src/iop/colorreconstruction.c:1248 msgid "precedence" msgstr "優先" -#: ../src/iop/colorreconstruction.c:1255 +#: ../src/iop/colorreconstruction.c:1264 msgid "pixels with lightness values above this threshold are corrected" msgstr "このしきい値を超える明度のピクセルを補正します" -#: ../src/iop/colorreconstruction.c:1256 +#: ../src/iop/colorreconstruction.c:1265 msgid "how far to look for replacement colors in spatial dimensions" msgstr "置き換える色を探す範囲(空間)" -#: ../src/iop/colorreconstruction.c:1257 +#: ../src/iop/colorreconstruction.c:1266 msgid "how far to look for replacement colors in the luminance dimension" msgstr "置き換える色を探す範囲(輝度)" -#: ../src/iop/colorreconstruction.c:1258 +#: ../src/iop/colorreconstruction.c:1267 msgid "if and how to give precedence to specific replacement colors" msgstr "置き換える色を特定するうえでの優先事項" -#: ../src/iop/colorreconstruction.c:1259 +#: ../src/iop/colorreconstruction.c:1268 msgid "the hue tone which should be given precedence over other hue tones" msgstr "優先される色相トーン" -#: ../src/iop/colorreconstruction.c:1261 ../src/iop/demosaic.c:1277 -#: ../src/iop/highlights.c:1168 +#: ../src/iop/colorreconstruction.c:1270 ../src/iop/demosaic.c:1324 +#: ../src/iop/highlights.c:1258 msgid "not applicable" msgstr "適用不可" -#: ../src/iop/colorreconstruction.c:1262 +#: ../src/iop/colorreconstruction.c:1271 msgid "no highlights reconstruction for monochrome images" msgstr "モノクロ画像でハイライトの再構成を行うことは出来ません" @@ -15379,7 +15941,7 @@ "このモジュールは非推奨です\n" "代わりにカラーマッピングモジュールを使用することをおすすめします" -#: ../src/iop/colortransfer.c:439 +#: ../src/iop/colortransfer.c:441 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -15389,43 +15951,43 @@ "現在利用可能なのは、ユーザーが設定をオフにするため、\n" "また、新しいカラーマッピングモジュールへ移行出来るようにするためです" -#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2332 +#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2573 msgid "color zones" msgstr "カラーゾーン" -#: ../src/iop/colorzones.c:144 +#: ../src/iop/colorzones.c:145 msgid "selectively shift hues, chroma and lightness of pixels" msgstr "ピクセルの色相、彩度、明るさ(ブライトネス)を部分的に変更します" -#: ../src/iop/colorzones.c:606 +#: ../src/iop/colorzones.c:684 msgid "B&W: with red" msgstr "白黒:赤" -#: ../src/iop/colorzones.c:629 +#: ../src/iop/colorzones.c:707 msgid "B&W: with skin tones" msgstr "白黒:赤とスキントーン" -#: ../src/iop/colorzones.c:652 +#: ../src/iop/colorzones.c:732 msgid "polarizing filter" msgstr "偏光フィルター" -#: ../src/iop/colorzones.c:673 +#: ../src/iop/colorzones.c:753 msgid "natural skin tones" msgstr "自然なスキントーン" -#: ../src/iop/colorzones.c:704 +#: ../src/iop/colorzones.c:784 msgid "B&W: film" msgstr "白黒:フィルム" -#: ../src/iop/colorzones.c:724 +#: ../src/iop/colorzones.c:804 msgid "HSL base setting" msgstr "HSL基本設定" -#: ../src/iop/colorzones.c:2264 +#: ../src/iop/colorzones.c:2500 msgid "orange" msgstr "オレンジ" -#: ../src/iop/colorzones.c:2421 ../src/iop/rgbcurve.c:1375 +#: ../src/iop/colorzones.c:2673 ../src/iop/rgbcurve.c:1375 msgid "" "create a curve based on an area from the image\n" "drag to create a flat curve\n" @@ -15437,48 +15999,48 @@ "Ctrl+ドラッグで正の曲線を作成します\n" "Shift+ドラッグで負の曲線を作成します" -#: ../src/iop/colorzones.c:2425 ../src/iop/rgbcurve.c:1379 +#: ../src/iop/colorzones.c:2677 ../src/iop/rgbcurve.c:1379 msgid "create curve" msgstr "カーブを作成" #. edit by area -#: ../src/iop/colorzones.c:2442 +#: ../src/iop/colorzones.c:2696 msgid "edit by area" msgstr "領域で編集" -#: ../src/iop/colorzones.c:2447 +#: ../src/iop/colorzones.c:2702 msgid "edit the curve nodes by area" msgstr "曲線のノードを領域で編集します" -#: ../src/iop/colorzones.c:2454 +#: ../src/iop/colorzones.c:2710 msgid "display selection" msgstr "選択を表示します" -#: ../src/iop/colorzones.c:2463 +#: ../src/iop/colorzones.c:2722 msgid "choose selection criterion, will be the abscissa in the graph" msgstr "選択の基準を選びます。グラフの横軸になります" -#: ../src/iop/colorzones.c:2466 +#: ../src/iop/colorzones.c:2725 msgid "choose between a smoother or stronger effect" msgstr "より滑らかな効果またはより強い効果から選択します" -#: ../src/iop/colorzones.c:2494 ../src/iop/rgbcurve.c:1410 -#: ../src/iop/tonecurve.c:1172 +#: ../src/iop/colorzones.c:2762 ../src/iop/rgbcurve.c:1410 +#: ../src/iop/tonecurve.c:1194 msgid "interpolation method" msgstr "補間方式" -#: ../src/iop/colorzones.c:2496 ../src/iop/rgbcurve.c:1412 -#: ../src/iop/tonecurve.c:1174 +#: ../src/iop/colorzones.c:2764 ../src/iop/rgbcurve.c:1412 +#: ../src/iop/tonecurve.c:1196 msgid "centripetal spline" msgstr "求心スプライン" -#: ../src/iop/colorzones.c:2497 ../src/iop/rgbcurve.c:1413 -#: ../src/iop/tonecurve.c:1175 +#: ../src/iop/colorzones.c:2765 ../src/iop/rgbcurve.c:1413 +#: ../src/iop/tonecurve.c:1197 msgid "monotonic spline" msgstr "単調スプライン" -#: ../src/iop/colorzones.c:2500 ../src/iop/rgbcurve.c:1416 -#: ../src/iop/tonecurve.c:1177 +#: ../src/iop/colorzones.c:2768 ../src/iop/rgbcurve.c:1416 +#: ../src/iop/tonecurve.c:1199 msgid "" "change this method if you see oscillations or cusps in the curve\n" "- cubic spline is better to produce smooth curves but oscillates when nodes " @@ -15496,24 +16058,24 @@ "・単調スプラインは純粋な解析関数(log、gamma、exp)の正確さを求めるのに適して" "います" -#: ../src/iop/crop.c:132 +#: ../src/iop/crop.c:122 msgid "crop" msgstr "トリミング" -#: ../src/iop/crop.c:137 +#: ../src/iop/crop.c:127 msgid "reframe|distortion" msgstr "リフレーム|歪曲" -#: ../src/iop/crop.c:143 +#: ../src/iop/crop.c:133 msgid "change the framing" msgstr "フレーミングを変更します" -#: ../src/iop/crop.c:1667 +#: ../src/iop/crop.c:1651 msgid "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag" msgstr "" "<b>サイズ変更</b>:ドラッグ   <b>アスペクト比を維持する</b>:Shift+ドラッグ" -#: ../src/iop/crop.c:1676 +#: ../src/iop/crop.c:1660 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag" @@ -15537,7 +16099,7 @@ "このモジュールは非推奨です\n" "代わりに色収差モジュールを使用してください" -#: ../src/iop/defringe.c:415 +#: ../src/iop/defringe.c:417 msgid "" "method for color protection:\n" " - global average: fast, might show slightly wrong previews in high " @@ -15557,11 +16119,11 @@ "に彩度を低下させる余裕があります\n" " - 静的:高速です。しきい値を静的な制限値としてのみ使用します" -#: ../src/iop/defringe.c:422 +#: ../src/iop/defringe.c:424 msgid "radius for detecting fringe" msgstr "フリンジ検出の半径" -#: ../src/iop/defringe.c:425 +#: ../src/iop/defringe.c:427 msgid "threshold for defringe, higher values mean less defringing" msgstr "" "フリンジ除去のしきい値\n" @@ -15577,12 +16139,12 @@ "センサーの色フィルター配列を読み取って、\n" "完全なRGBピクセルを再構成します" -#: ../src/iop/demosaic.c:1086 +#: ../src/iop/demosaic.c:1133 #, c-format msgid "`%s' color matrix not found for 4bayer image!" msgstr "`%s' 4ベイヤー画像のためのカラーマトリクスが見つかりませんでした" -#: ../src/iop/demosaic.c:1238 +#: ../src/iop/demosaic.c:1285 msgid "" "Bayer sensor demosaicing method, PPG and RCD are fast, AMaZE and LMMSE are " "slow.\n" @@ -15593,7 +16155,7 @@ "LMMSEは高ISOの画像に最も適しています\n" "二重デモザイクは処理時間が2倍になります" -#: ../src/iop/demosaic.c:1242 +#: ../src/iop/demosaic.c:1289 msgid "" "X-Trans sensor demosaicing method, Markesteijn 3-pass and frequency domain " "chroma are slow.\n" @@ -15603,11 +16165,11 @@ "す\n" "二重デモザイクは処理時間が2倍になります" -#: ../src/iop/demosaic.c:1248 +#: ../src/iop/demosaic.c:1295 msgid "Bayer4 sensor demosaicing methods." msgstr "ベイヤー4センサーデモザイク方式" -#: ../src/iop/demosaic.c:1252 +#: ../src/iop/demosaic.c:1299 msgid "" "threshold for edge-aware median.\n" "set to 0.0 to switch off\n" @@ -15617,7 +16179,7 @@ "0.0に設定すると無効にします\n" "1.0に設定するとエッジを無視します" -#: ../src/iop/demosaic.c:1257 +#: ../src/iop/demosaic.c:1304 msgid "" "contrast threshold for dual demosaic.\n" "set to 0.0 for high frequency content\n" @@ -15629,7 +16191,7 @@ "フラットな成分に対しては1.0に設定してください\n" "マスクの表示/非表示を切り替えることが出来ます" -#: ../src/iop/demosaic.c:1265 +#: ../src/iop/demosaic.c:1312 msgid "" "LMMSE refinement steps. the median steps average the output,\n" "refine adds some recalculation of red & blue channels" @@ -15638,85 +16200,85 @@ "ます\n" "精緻化は赤チャンネルと青チャンネルの再計算を追加して行います" -#: ../src/iop/demosaic.c:1268 +#: ../src/iop/demosaic.c:1315 msgid "how many color smoothing median steps after demosaicing" msgstr "デモザイク後のカラー平滑化のメディアンステップ数" -#: ../src/iop/demosaic.c:1271 +#: ../src/iop/demosaic.c:1318 msgid "green channels matching method" msgstr "緑チャンネルのマッチング方式" -#: ../src/iop/demosaic.c:1278 +#: ../src/iop/demosaic.c:1325 msgid "demosaicing is only used for color raw images" msgstr "デモザイクはカラーのRAW画像にのみ使われます" -#: ../src/iop/denoiseprofile.c:714 +#: ../src/iop/denoiseprofile.c:766 msgid "wavelets: chroma only" msgstr "ウェーブレット:クロマノイズのみ" -#: ../src/iop/denoiseprofile.c:720 +#: ../src/iop/denoiseprofile.c:772 msgid "denoise (profiled)" msgstr "ノイズ除去(プロファイル)" -#: ../src/iop/denoiseprofile.c:726 +#: ../src/iop/denoiseprofile.c:778 msgid "denoise using noise statistics profiled on sensors" msgstr "センサーのノイズ統計プロファイルを用いてノイズを除去します" -#: ../src/iop/denoiseprofile.c:2846 +#: ../src/iop/denoiseprofile.c:2850 #, c-format msgid "found match for ISO %d" msgstr "ISO %dで一致を検出" -#: ../src/iop/denoiseprofile.c:2855 +#: ../src/iop/denoiseprofile.c:2859 #, c-format msgid "interpolated from ISO %d and %d" msgstr "ISO%dと%dから補間しました" -#: ../src/iop/denoiseprofile.c:3719 +#: ../src/iop/denoiseprofile.c:3723 msgid "Y0" msgstr "Y0" -#: ../src/iop/denoiseprofile.c:3720 +#: ../src/iop/denoiseprofile.c:3724 msgid "U0V0" msgstr "U0V0" -#: ../src/iop/denoiseprofile.c:3760 +#: ../src/iop/denoiseprofile.c:3764 msgid "" "use only with a perfectly\n" "uniform image if you want to\n" "estimate the noise variance." msgstr "ノイズの分散を見積もりたい場合、完全に均一な画像でのみ使用してください" -#: ../src/iop/denoiseprofile.c:3766 +#: ../src/iop/denoiseprofile.c:3770 msgid "variance red: " msgstr "分散 赤:" -#: ../src/iop/denoiseprofile.c:3770 +#: ../src/iop/denoiseprofile.c:3774 msgid "variance computed on the red channel" msgstr "赤チャンネルで算出された分散" -#: ../src/iop/denoiseprofile.c:3775 +#: ../src/iop/denoiseprofile.c:3779 msgid "variance green: " msgstr "分散 緑:" -#: ../src/iop/denoiseprofile.c:3779 +#: ../src/iop/denoiseprofile.c:3783 msgid "variance computed on the green channel" msgstr "緑チャンネルで算出された分散" -#: ../src/iop/denoiseprofile.c:3784 +#: ../src/iop/denoiseprofile.c:3788 msgid "variance blue: " msgstr "分散 青:" -#: ../src/iop/denoiseprofile.c:3788 +#: ../src/iop/denoiseprofile.c:3792 msgid "variance computed on the blue channel" msgstr "青チャンネルで算出された分散" -#: ../src/iop/denoiseprofile.c:3799 ../src/libs/export.c:1208 +#: ../src/iop/denoiseprofile.c:3803 ../src/libs/export.c:1320 #: ../src/libs/print_settings.c:2418 ../src/libs/print_settings.c:2774 msgid "profile" msgstr "プロファイル" -#: ../src/iop/denoiseprofile.c:3833 +#: ../src/iop/denoiseprofile.c:3837 msgid "" "adapt denoising according to the\n" "white balance coefficients.\n" @@ -15731,7 +16293,7 @@ "これより前のインスタンスがカラーブレンディングモードで使用されている場合、無" "効にする必要があります" -#: ../src/iop/denoiseprofile.c:3840 +#: ../src/iop/denoiseprofile.c:3844 msgid "" "fix bugs in Anscombe transform resulting\n" "in undersmoothing of the green channel in\n" @@ -15750,11 +16312,11 @@ "このオプションを有効にすると、得られるノイズ除去が変わります。一度有効にする" "と、古いアルゴリズムに戻ることが出来なくなります" -#: ../src/iop/denoiseprofile.c:3850 +#: ../src/iop/denoiseprofile.c:3854 msgid "profile used for variance stabilization" msgstr "分散安定化に用いられるプロファイル" -#: ../src/iop/denoiseprofile.c:3852 +#: ../src/iop/denoiseprofile.c:3856 msgid "" "method used in the denoising core.\n" "non-local means works best for `lightness' blending,\n" @@ -15764,7 +16326,7 @@ " 非局所平均は明度ブレンドで最も良く機能し、ウェーブレットは色ブレンドで最も良" "く機能します" -#: ../src/iop/denoiseprofile.c:3856 +#: ../src/iop/denoiseprofile.c:3860 msgid "" "color representation used within the algorithm.\n" "RGB keeps the RGB channels separated,\n" @@ -15775,7 +16337,7 @@ "RGBはRGBチャンネルを分離したままにします\n" "Y0U0V0はRGBチャネルを結合し、クロマノイズと輝度ノイズを別々に除去します" -#: ../src/iop/denoiseprofile.c:3861 +#: ../src/iop/denoiseprofile.c:3865 msgid "" "radius of the patches to match.\n" "increase for more sharpness on strong edges, and better denoising of smooth " @@ -15789,7 +16351,7 @@ "ディテールが過剰に平滑化される場合は、この値を下げるか、中央ピクセルのウェイ" "トの値を大きくします" -#: ../src/iop/denoiseprofile.c:3867 +#: ../src/iop/denoiseprofile.c:3871 msgid "" "emergency use only: radius of the neighborhood to search patches in. " "increase for better denoising performance, but watch the long runtimes! " @@ -15799,7 +16361,7 @@ "値を上げるとノイズ除去の性能が向上しますが、実行に長い時間がかかります! 大き" "な半径にすると非常に遅くなる可能性があります" -#: ../src/iop/denoiseprofile.c:3873 +#: ../src/iop/denoiseprofile.c:3877 msgid "" "scattering of the neighborhood to search patches in.\n" "increase for better coarse-grain noise reduction.\n" @@ -15812,7 +16374,7 @@ # パッチ比較でのパッチの中心ピクセルの重要性を増大させます # パッチサイズが非常に大きい場合に # ディテールを復元するのに役立ちます -#: ../src/iop/denoiseprofile.c:3877 +#: ../src/iop/denoiseprofile.c:3881 msgid "" "increase the weight of the central pixel\n" "of the patch in the patch comparison.\n" @@ -15822,14 +16384,14 @@ "パッチ比較におけるパッチの中心ピクセルのウェイトを増大させます\n" "パッチサイズが非常に大きい場合に、ディテールを復元するのに有用です" -#: ../src/iop/denoiseprofile.c:3881 +#: ../src/iop/denoiseprofile.c:3885 msgid "finetune denoising strength" msgstr "ノイズ除去の強さを微調整します" # パラメータが自動設定される度合いを制御します # シャドウのノイズが十分に除去されていない場合、あるいはクロマノイズが残っている場合、値を増やしてください # これは写真が露出不足の場合発生することがあります -#: ../src/iop/denoiseprofile.c:3883 +#: ../src/iop/denoiseprofile.c:3887 msgid "" "controls the way parameters are autoset\n" "increase if shadows are not denoised enough\n" @@ -15841,7 +16403,7 @@ "合、値を上げてください\n" "これは露出不足の場合起こることがあります" -#: ../src/iop/denoiseprofile.c:3888 +#: ../src/iop/denoiseprofile.c:3892 msgid "" "finetune shadows denoising.\n" "decrease to denoise more aggressively\n" @@ -15853,7 +16415,7 @@ # シャドウ部の色かぶりを修正します # シャドウが紫がかっている場合は値を下げてください # シャドウが緑がかっている場合は値を上げてください -#: ../src/iop/denoiseprofile.c:3892 +#: ../src/iop/denoiseprofile.c:3896 msgid "" "correct color cast in shadows.\n" "decrease if shadows are too purple.\n" @@ -15863,7 +16425,7 @@ "シャドウが紫がかっている場合、値を上げてください\n" "シャドウが緑がかっている場合、値を下げてしてください" -#: ../src/iop/denoiseprofile.c:3896 +#: ../src/iop/denoiseprofile.c:3900 msgid "" "upgrade the variance stabilizing algorithm.\n" "new algorithm extends the current one.\n" @@ -15895,81 +16457,81 @@ "ブラインドデコンボリューションによってぼけを除去したりします" #. deblurring presets -#: ../src/iop/diffuse.c:219 +#: ../src/iop/diffuse.c:246 msgid "lens deblur: soft" msgstr "レンズぼけの除去:弱" -#: ../src/iop/diffuse.c:244 +#: ../src/iop/diffuse.c:271 msgid "lens deblur: medium" msgstr "レンズぼけの除去:中" -#: ../src/iop/diffuse.c:269 +#: ../src/iop/diffuse.c:296 msgid "lens deblur: hard" msgstr "レンズぼけの除去:強" -#: ../src/iop/diffuse.c:295 +#: ../src/iop/diffuse.c:322 msgid "dehaze" msgstr "かすみの除去" -#: ../src/iop/diffuse.c:321 +#: ../src/iop/diffuse.c:348 msgid "denoise: fine" msgstr "ノイズ除去:細かい" -#: ../src/iop/diffuse.c:346 +#: ../src/iop/diffuse.c:373 msgid "denoise: medium" msgstr "ノイズ除去:中" -#: ../src/iop/diffuse.c:371 +#: ../src/iop/diffuse.c:398 msgid "denoise: coarse" msgstr "ノイズ除去:粗い" -#: ../src/iop/diffuse.c:446 +#: ../src/iop/diffuse.c:473 msgid "sharpen demosaicing: no AA filter" msgstr "シャープ化 デモザイク:ローパスフィルターレス" -#: ../src/iop/diffuse.c:472 +#: ../src/iop/diffuse.c:499 msgid "sharpen demosaicing: AA filter" msgstr "シャープ化 デモザイク:ローパスフィルター" -#: ../src/iop/diffuse.c:499 +#: ../src/iop/diffuse.c:526 msgid "simulate watercolor" msgstr "水彩画シミュレーション" -#: ../src/iop/diffuse.c:524 +#: ../src/iop/diffuse.c:551 msgid "simulate line drawing" msgstr "線画シミュレーション" -#: ../src/iop/diffuse.c:576 +#: ../src/iop/diffuse.c:603 msgid "inpaint highlights" msgstr "ハイライト修復" #. fast presets for slow hardware -#: ../src/iop/diffuse.c:603 +#: ../src/iop/diffuse.c:630 msgid "sharpness: fast" msgstr "シャープ化:高速" -#: ../src/iop/diffuse.c:655 +#: ../src/iop/diffuse.c:682 msgid "sharpness: strong" msgstr "シャープ化:強" -#: ../src/iop/diffuse.c:680 +#: ../src/iop/diffuse.c:707 msgid "local contrast: fast" msgstr "ローカルコントラスト:高速" -#: ../src/iop/diffuse.c:1391 ../src/iop/diffuse.c:1666 +#: ../src/iop/diffuse.c:1418 ../src/iop/diffuse.c:1693 msgid "diffuse/sharpen failed to allocate memory, check your RAM settings" msgstr "" "拡散/シャープ化がメモリの割り当てに失敗しました。RAMの設定を確認してください" #. Additional parameters #. Camera settings -#: ../src/iop/diffuse.c:1782 ../src/iop/splittoning.c:537 +#: ../src/iop/diffuse.c:1797 ../src/iop/splittoning.c:533 #: ../src/libs/camera.c:486 msgctxt "section" msgid "properties" msgstr "プロパティ" -#: ../src/iop/diffuse.c:1788 +#: ../src/iop/diffuse.c:1803 msgid "" "more iterations make the effect stronger but the module slower.\n" "this is analogous to giving more time to the diffusion reaction.\n" @@ -15981,7 +16543,7 @@ "もしシャープ化や修復を行うつもりであれば、反復を増やすと再構成の質が向上しま" "す" -#: ../src/iop/diffuse.c:1797 +#: ../src/iop/diffuse.c:1812 msgid "" "main scale of the diffusion.\n" "zero makes diffusion act on the finest details more heavily.\n" @@ -15995,7 +16557,7 @@ "ぼけやノイズを除去する場合、設定を0にしてください\n" "値を上げると局所的なコントラストに作用します" -#: ../src/iop/diffuse.c:1807 +#: ../src/iop/diffuse.c:1822 msgid "" "width of the diffusion around the central radius.\n" "high values diffuse on a large band of radii.\n" @@ -16009,12 +16571,12 @@ "ぼけを除去するつもりであれば、この半径はレンズぼけの幅と同じくらいにしてくだ" "さい" -#: ../src/iop/diffuse.c:1814 +#: ../src/iop/diffuse.c:1829 msgctxt "section" msgid "speed (sharpen ↔ diffuse)" msgstr "速さ(シャープ化 ↔ 拡散)" -#: ../src/iop/diffuse.c:1821 +#: ../src/iop/diffuse.c:1836 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 1st order anisotropy (set below).\n" @@ -16030,7 +16592,7 @@ "正の値にすると、拡散とぼかし\n" "0にすると、何もしません" -#: ../src/iop/diffuse.c:1831 +#: ../src/iop/diffuse.c:1846 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 2nd order anisotropy (set below).\n" @@ -16045,7 +16607,7 @@ "正の値にすると、拡散とぼかし\n" "0にすると、何もしません" -#: ../src/iop/diffuse.c:1841 +#: ../src/iop/diffuse.c:1856 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 3rd order anisotropy (set below).\n" @@ -16060,7 +16622,7 @@ "正の値にすると、拡散とぼかし\n" "0にすると、何もしません" -#: ../src/iop/diffuse.c:1851 +#: ../src/iop/diffuse.c:1866 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 4th order anisotropy (set below).\n" @@ -16075,12 +16637,12 @@ "正の値にすると、拡散とぼかし\n" "0にすると、何もしません" -#: ../src/iop/diffuse.c:1857 +#: ../src/iop/diffuse.c:1872 msgctxt "section" msgid "direction" msgstr "方向" -#: ../src/iop/diffuse.c:1864 +#: ../src/iop/diffuse.c:1879 msgid "" "direction of 1st order speed (set above).\n" "\n" @@ -16094,7 +16656,7 @@ "正の値にすると、エッジにならないようにします(等輝度線)\n" "0は両者に等しく作用します(等方的)" -#: ../src/iop/diffuse.c:1873 +#: ../src/iop/diffuse.c:1888 msgid "" "direction of 2nd order speed (set above).\n" "\n" @@ -16108,7 +16670,7 @@ "正の値にすると、エッジにならないようにします(等輝度線)\n" "0は両者に等しく作用します(等方的)" -#: ../src/iop/diffuse.c:1882 +#: ../src/iop/diffuse.c:1897 msgid "" "direction of 3rd order speed (set above).\n" "\n" @@ -16122,7 +16684,7 @@ "正の値にすると、エッジにならないようにします(等輝度線)\n" "0は両者に等しく作用します(等方的)" -#: ../src/iop/diffuse.c:1891 +#: ../src/iop/diffuse.c:1906 msgid "" "direction of 4th order speed (set above).\n" "\n" @@ -16136,12 +16698,12 @@ "正の値にすると、エッジにならないようにします(等輝度線)\n" "0は両者に等しく作用します(等方的)" -#: ../src/iop/diffuse.c:1897 +#: ../src/iop/diffuse.c:1912 msgctxt "section" msgid "edge management" msgstr "エッジの操作" -#: ../src/iop/diffuse.c:1904 +#: ../src/iop/diffuse.c:1919 msgid "" "increase or decrease the sharpness of the highest frequencies.\n" "can be used to keep details after blooming,\n" @@ -16152,7 +16714,7 @@ "スタンドアローンのシャープ化として用いるためには、速さを負の値に設定してくだ" "さい" -#: ../src/iop/diffuse.c:1911 +#: ../src/iop/diffuse.c:1926 msgid "" "define the sensitivity of the variance penalty for edges.\n" "increase to exclude more edges from diffusion,\n" @@ -16162,7 +16724,7 @@ "フリンジやハロが見られる場合、値を上げると、拡散からより多くのエッジを除外し" "ます" -#: ../src/iop/diffuse.c:1918 +#: ../src/iop/diffuse.c:1933 msgid "" "define the variance threshold between edge amplification and penalty.\n" "decrease if you want pixels on smooth surfaces get a boost,\n" @@ -16174,12 +16736,12 @@ "滑らかな面にノイズが見られる場合、あるいは明度と比べて暗部が過剰にシャープ化" "されているように見える場合、値を上げます" -#: ../src/iop/diffuse.c:1924 +#: ../src/iop/diffuse.c:1939 msgctxt "section" msgid "diffusion spatiality" msgstr "拡散の空間性" -#: ../src/iop/diffuse.c:1931 +#: ../src/iop/diffuse.c:1946 msgid "" "luminance threshold for the mask.\n" "0. disables the luminance masking and applies the module on the whole " @@ -16198,7 +16760,7 @@ msgstr "ディザ/ポスタライズ" #: ../src/iop/dither.c:112 -msgid "dithering|posterization|reduce bit-depth" +msgid "dithering|posterization|reduce bit depth" msgstr "ディザリング|ポスタリゼーション|ビット深度低減" #: ../src/iop/dither.c:117 @@ -16215,23 +16777,23 @@ msgstr "補正、アーティスティック" #. add the preset. -#: ../src/iop/dither.c:147 +#: ../src/iop/dither.c:149 msgid "dither" msgstr "ディザ" -#: ../src/iop/dither.c:759 +#: ../src/iop/dither.c:761 msgid "radius for blurring step" msgstr "ぼかしのステップの半径" -#: ../src/iop/dither.c:771 +#: ../src/iop/dither.c:773 msgid "the gradient range where to apply random dither" msgstr "不規則なディザを適用するグラデーションの範囲" -#: ../src/iop/dither.c:772 +#: ../src/iop/dither.c:774 msgid "gradient range" msgstr "グラデーションの範囲" -#: ../src/iop/dither.c:780 +#: ../src/iop/dither.c:782 msgid "damping level of random dither" msgstr "不規則なディザの減衰のレベル" @@ -16239,7 +16801,7 @@ msgid "legacy equalizer" msgstr "旧式イコライザー" -#: ../src/iop/equalizer.c:110 +#: ../src/iop/equalizer.c:112 msgid "" "this module is deprecated. better use contrast equalizer module instead." msgstr "" @@ -16248,7 +16810,7 @@ # このモジュールは将来削除されます # 現在残されているのは、ユーザーが設定をオフにするため、および新たなイコライザーへの移行を補助するためです -#: ../src/iop/equalizer.c:238 +#: ../src/iop/equalizer.c:240 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -16267,33 +16829,33 @@ "ISOの設定を上げるのと同様に、明度を上げる場合には変色しないよう気をつけてくだ" "さい" -#: ../src/iop/exposure.c:279 +#: ../src/iop/exposure.c:301 msgid "magic lantern defaults" msgstr "magic lanternデフォルト" -#: ../src/iop/exposure.c:351 ../src/iop/rawoverexposed.c:135 -#: ../src/iop/rawoverexposed.c:254 +#: ../src/iop/exposure.c:373 ../src/iop/rawoverexposed.c:137 +#: ../src/iop/rawoverexposed.c:256 #, c-format msgid "failed to get raw buffer from image `%s'" msgstr "画像 `%s'からRAWバッファを取得することが出来ませんでした" -#: ../src/iop/exposure.c:629 +#: ../src/iop/exposure.c:647 #, no-c-format msgid "compensate camera exposure (%+.1f EV)" msgstr "カメラ設定の露出を補正(%+.1f EV)" #. Write report in GUI -#: ../src/iop/exposure.c:813 +#: ../src/iop/exposure.c:831 #, c-format msgid "L : \t%.1f %%" msgstr "L : \t%.1f %%" -#: ../src/iop/exposure.c:945 ../src/libs/history.c:953 +#: ../src/iop/exposure.c:963 ../src/libs/history.c:953 #, c-format msgid "%.2f EV" msgstr "%.2f EV" -#: ../src/iop/exposure.c:1113 +#: ../src/iop/exposure.c:1131 msgid "" "automatically remove the camera exposure bias\n" "this is useful if you exposed the image to the right." @@ -16301,7 +16863,7 @@ "撮影時にカメラで設定した露出補正を自動的に取り消します\n" "ETTRで撮影した場合に有用です" -#: ../src/iop/exposure.c:1132 +#: ../src/iop/exposure.c:1150 #, no-c-format msgid "where in the histogram to meter for deflicking. E.g. 50% is median" msgstr "" @@ -16309,25 +16871,25 @@ "例えば、50% は中央" # 処理された画像でのターゲットとなる露光レベルを露出オーバーを基準としたEV値で設定する。 -#: ../src/iop/exposure.c:1138 +#: ../src/iop/exposure.c:1156 msgid "" "where to place the exposure level for processed pics, EV below overexposure." msgstr "" "処理された画像でのターゲットとなる露出レベルを、露出オーバーを基準としたEV値" "で設定します" -#: ../src/iop/exposure.c:1142 +#: ../src/iop/exposure.c:1160 msgid "computed EC: " msgstr "算出された露出補正値:" -#: ../src/iop/exposure.c:1145 +#: ../src/iop/exposure.c:1163 msgid "what exposure correction has actually been used" msgstr "実際に使用された露出補正の値" # 黒レベルを調整して負のRGB値をクリップしないようにする # 黒の濃さを上げるために使用しないでください # 設定が不十分な場合、RGB値を負の値にしてしまい、黒に近い色を色域外へとクリップしてしまいます -#: ../src/iop/exposure.c:1164 +#: ../src/iop/exposure.c:1182 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -16339,11 +16901,11 @@ "設定が不適切な場合、RGB値が負の値になり、黒に近い色が色域外へとクリップしてし" "まいます" -#: ../src/iop/exposure.c:1174 -msgid "spot exposure mapping" -msgstr "スポット露出マッピング" +#: ../src/iop/exposure.c:1192 +msgid "area exposure mapping" +msgstr "領域露出マッピング" -#: ../src/iop/exposure.c:1180 +#: ../src/iop/exposure.c:1198 msgid "" "define a target brightness, in terms of exposure,\n" "for a selected region of the image (the control sample),\n" @@ -16358,7 +16920,7 @@ "コントロールサンプルは、一連の画像に共通する、被写体の重要な部分でも、同じ光" "に照らされた動いていない面でも可能です" -#: ../src/iop/exposure.c:1189 +#: ../src/iop/exposure.c:1207 msgid "" "\"correction\" automatically adjust exposure\n" "such that the input lightness is mapped to the target.\n" @@ -16370,11 +16932,11 @@ "計測:入力の色が露出補正によってどのようにマッピングされるかを表示します\n" "   ターゲットを定義するために使用することが出来ます" -#: ../src/iop/exposure.c:1215 +#: ../src/iop/exposure.c:1233 msgid "L : \tN/A" msgstr "L : \tN/A" -#: ../src/iop/exposure.c:1233 +#: ../src/iop/exposure.c:1251 msgid "the desired target exposure after mapping" msgstr "マッピング後のターゲットの露出" @@ -16384,56 +16946,56 @@ "このモジュールは非推奨です\n" "代わりにフィルミックRGBモジュールを使用することをおすすめします" -#: ../src/iop/filmic.c:304 +#: ../src/iop/filmic.c:333 msgid "09 EV (low-key)" msgstr "09 EV (ローキー)" -#: ../src/iop/filmic.c:312 +#: ../src/iop/filmic.c:341 msgid "10 EV (indoors)" msgstr "10 EV(屋内)" -#: ../src/iop/filmic.c:320 +#: ../src/iop/filmic.c:349 msgid "11 EV (dim outdoors)" msgstr "11 EV(薄暗い屋外)" -#: ../src/iop/filmic.c:328 +#: ../src/iop/filmic.c:357 msgid "12 EV (outdoors)" msgstr "12 EV(屋外)" -#: ../src/iop/filmic.c:336 +#: ../src/iop/filmic.c:365 msgid "13 EV (bright outdoors)" msgstr "13 EV (明るい屋外)" -#: ../src/iop/filmic.c:344 +#: ../src/iop/filmic.c:373 msgid "14 EV (backlighting)" msgstr "14 EV(逆光)" -#: ../src/iop/filmic.c:352 +#: ../src/iop/filmic.c:381 msgid "15 EV (sunset)" msgstr "15 EV(日没)" -#: ../src/iop/filmic.c:360 +#: ../src/iop/filmic.c:389 msgid "16 EV (HDR)" msgstr "16 EV(HDR)" -#: ../src/iop/filmic.c:368 +#: ../src/iop/filmic.c:397 msgid "18 EV (HDR++)" msgstr "18 EV(HDR++)" -#: ../src/iop/filmic.c:1480 +#: ../src/iop/filmic.c:1505 msgid "read-only graph, use the parameters below to set the nodes" msgstr "" "読み取り専用グラフ\n" "下のパラメーターを使用してノードを設定します" -#: ../src/iop/filmic.c:1484 +#: ../src/iop/filmic.c:1509 msgctxt "section" msgid "logarithmic shaper" msgstr "対数の整形" # 被写体の平均輝度に合うよう調整します # 逆光の場合をのぞき、18%に近い値になるはずです -#: ../src/iop/filmic.c:1492 +#: ../src/iop/filmic.c:1517 msgid "" "adjust to match the average luminance of the subject.\n" "except in back-lighting situations, this should be around 18%." @@ -16441,7 +17003,7 @@ "被写体の平均輝度に合わせて調整します\n" "逆光の場合をのぞき、18%に近い値になるはずです" -#: ../src/iop/filmic.c:1504 ../src/iop/filmicrgb.c:4442 +#: ../src/iop/filmic.c:1529 ../src/iop/filmicrgb.c:4506 msgid "" "number of stops between middle gray and pure white.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16451,7 +17013,7 @@ "撮影現場で露出計が示すと思われる数値です\n" "ハイライトがクリップしないように調整します" -#: ../src/iop/filmic.c:1517 ../src/iop/filmicrgb.c:4453 +#: ../src/iop/filmic.c:1542 ../src/iop/filmicrgb.c:4517 msgid "" "number of stops between middle gray and pure black.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16463,16 +17025,16 @@ "値を上げると、コントラストが強まります\n" "値を下げると、暗部のディテールをより多く回復します" -#: ../src/iop/filmic.c:1529 +#: ../src/iop/filmic.c:1554 msgid "" -"enlarge or shrink the computed dynamic range.\n" +"increase or decrease the computed dynamic range.\n" "useful in conjunction with \"auto tune levels\"." msgstr "" "算出されたダイナミックレンジを拡大または縮小します\n" "【レベルの自動調整】と併せると有用です" -#: ../src/iop/filmic.c:1535 ../src/iop/filmicrgb.c:4467 -#: ../src/iop/profile_gamma.c:659 +#: ../src/iop/filmic.c:1560 ../src/iop/filmicrgb.c:4531 +#: ../src/iop/profile_gamma.c:673 msgid "auto tune levels" msgstr "レベルの自動調整" @@ -16480,7 +17042,7 @@ # これによって輝度の分布域はヒストグラムの境界内におさまります # 風景や照明の均一な写真でより適切に機能しますが、 # ハイキーやローキーの写真ではうまく機能しません -#: ../src/iop/filmic.c:1538 +#: ../src/iop/filmic.c:1563 msgid "" "try to optimize the settings with some guessing.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16492,12 +17054,12 @@ "風景や照明の均一な写真でより適切に機能しますが、ハイキーやローキーの写真では" "うまく機能しません" -#: ../src/iop/filmic.c:1543 +#: ../src/iop/filmic.c:1568 msgctxt "section" msgid "filmic S curve" msgstr "フィルミックS字カーブ" -#: ../src/iop/filmic.c:1550 ../src/iop/filmicrgb.c:4554 +#: ../src/iop/filmic.c:1575 ../src/iop/filmicrgb.c:4618 msgid "" "slope of the linear part of the curve\n" "affects mostly the mid-tones" @@ -16506,12 +17068,12 @@ "主に中間トーンに影響します" #. geotagging -#: ../src/iop/filmic.c:1557 ../src/iop/filmicrgb.c:4563 -#: ../src/libs/metadata_view.c:157 +#: ../src/iop/filmic.c:1582 ../src/iop/filmicrgb.c:4627 +#: ../src/libs/metadata_view.c:161 msgid "latitude" msgstr "ラティチュード" -#: ../src/iop/filmic.c:1560 +#: ../src/iop/filmic.c:1585 msgid "" "width of the linear domain in the middle of the curve.\n" "increase to get more contrast at the extreme luminances.\n" @@ -16521,13 +17083,13 @@ "値を上げると、極端な輝度域でよりコントラストを得ることが出来ます\n" "中間トーンには影響を及ぼしません" -#: ../src/iop/filmic.c:1567 +#: ../src/iop/filmic.c:1592 msgid "shadows/highlights balance" msgstr "シャドウとハイライトのバランス" # 傾斜に沿ってラティチュードをスライドさせ、影やハイライトにさらに余裕を持たせます # ヒストグラムの一方の端でディテールを保つ必要がある場合に使用します -#: ../src/iop/filmic.c:1570 ../src/iop/filmicrgb.c:4574 +#: ../src/iop/filmic.c:1595 ../src/iop/filmicrgb.c:4638 msgid "" "slides the latitude along the slope\n" "to give more room to shadows or highlights.\n" @@ -16540,7 +17102,7 @@ # モジュールの入力の彩度(Saturation)を全体的に低減します # クロミナンス保持が有効になっている場合、この値を100%未満に設定する必要があります -#: ../src/iop/filmic.c:1580 +#: ../src/iop/filmic.c:1605 msgid "" "desaturates the input of the module globally.\n" "you need to set this value below 100%\n" @@ -16552,7 +17114,7 @@ # モジュールの出力の彩度(Saturation)を、特に極端な輝度の部分において、低減します # シャドウやハイライトの色が飽和している(over-saturated)場合は値を下げます -#: ../src/iop/filmic.c:1590 +#: ../src/iop/filmic.c:1615 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16562,46 +17124,46 @@ "シャドウおよび/またはハイライトの彩度が高すぎる場合は値を下げます" #. Add export intent combo -#: ../src/iop/filmic.c:1600 ../src/libs/export.c:1227 +#: ../src/iop/filmic.c:1625 ../src/libs/export.c:1339 #: ../src/libs/print_settings.c:2473 ../src/libs/print_settings.c:2820 -#: ../src/views/darkroom.c:2524 ../src/views/lighttable.c:1182 +#: ../src/views/darkroom.c:2365 ../src/views/lighttable.c:1182 msgid "intent" msgstr "インテント" -#: ../src/iop/filmic.c:1601 +#: ../src/iop/filmic.c:1626 msgid "contrasted" msgstr "コントラスト" #. cubic spline -#: ../src/iop/filmic.c:1602 +#: ../src/iop/filmic.c:1627 msgid "faded" msgstr "退色している" #. centripetal spline -#: ../src/iop/filmic.c:1603 ../src/iop/profile_gamma.c:621 +#: ../src/iop/filmic.c:1628 ../src/iop/profile_gamma.c:635 msgid "linear" msgstr "リニア" #. monotonic spline -#: ../src/iop/filmic.c:1604 +#: ../src/iop/filmic.c:1629 msgid "optimized" msgstr "最適化された" -#: ../src/iop/filmic.c:1606 +#: ../src/iop/filmic.c:1631 msgid "change this method if you see reversed contrast or faded blacks" msgstr "" "コントラストが反転している場合、あるいは黒が褪せて見える場合、この方式を変更" "してください" #. Preserve color -#: ../src/iop/filmic.c:1610 +#: ../src/iop/filmic.c:1635 msgid "preserve the chrominance" msgstr "色(クロミナンス)を保持します" # 元の色が保持されていることを確認してください # 色収差を強める可能性があります # このモードを使用する場合、手動で彩度(Saturation)を調整する必要があります -#: ../src/iop/filmic.c:1612 +#: ../src/iop/filmic.c:1637 msgid "" "ensure the original color are preserved.\n" "may reinforce chromatic aberrations.\n" @@ -16611,12 +17173,12 @@ "色収差を強める可能性があります\n" "このモードを使用する場合、手動で彩度を調整する必要があります" -#: ../src/iop/filmic.c:1622 +#: ../src/iop/filmic.c:1647 msgctxt "section" msgid "destination/display" msgstr "宛て先/ディスプレイ" -#: ../src/iop/filmic.c:1640 ../src/iop/filmicrgb.c:4593 +#: ../src/iop/filmic.c:1665 ../src/iop/filmicrgb.c:4657 msgid "" "luminance of output pure black, this should be 0%\n" "except if you want a faded look" @@ -16624,7 +17186,7 @@ "出力の純粋な黒の輝度\n" "退色したルックにしたい場合以外、この値は0%であるべきです" -#: ../src/iop/filmic.c:1649 ../src/iop/filmicrgb.c:4600 +#: ../src/iop/filmic.c:1674 ../src/iop/filmicrgb.c:4664 msgid "" "middle gray value of the target display or color space.\n" "you should never touch that unless you know what you are doing." @@ -16632,7 +17194,7 @@ "ターゲットにするディスプレイまたは色空間のミドルグレーの値\n" "理解していない場合、触るべきではありません" -#: ../src/iop/filmic.c:1658 ../src/iop/filmicrgb.c:4607 +#: ../src/iop/filmic.c:1683 ../src/iop/filmicrgb.c:4671 msgid "" "luminance of output pure white, this should be 100%\n" "except if you want a faded look" @@ -16640,13 +17202,13 @@ "出力の純粋な白の輝度\n" "退色したルックにしたい場合以外、この値は100%であるべきです" -#: ../src/iop/filmic.c:1664 +#: ../src/iop/filmic.c:1689 msgid "target gamma" msgstr "ターゲットガンマ" # ディスプレイまたは色空間の転送関数の冪乗またはガンマ # 理解していない場合、触るべきではありません -#: ../src/iop/filmic.c:1666 +#: ../src/iop/filmic.c:1691 msgid "" "power or gamma of the transfer function\n" "of the display or color space.\n" @@ -16673,7 +17235,7 @@ "のパイプラインを調節します\n" "また、非破壊的な方法でクリッピングを回避します" -#: ../src/iop/filmicrgb.c:1310 +#: ../src/iop/filmicrgb.c:1365 msgid "" "filmic highlights reconstruction failed to allocate memory, check your RAM " "settings" @@ -16681,71 +17243,71 @@ "フィルミックのハイライトの再構成はメモリの割り当てに失敗しました。RAM設定を確" "認してください" -#: ../src/iop/filmicrgb.c:2301 +#: ../src/iop/filmicrgb.c:2369 msgid "filmic highlights reconstruction failed to allocate memory on GPU" msgstr "フィルミックのハイライトの再構成はGPUのメモリの割り当てに失敗しました" -#: ../src/iop/filmicrgb.c:2419 +#: ../src/iop/filmicrgb.c:2487 msgid "filmic works only on RGB input" msgstr "フィルミックはRGB入力のみで機能します" -#: ../src/iop/filmicrgb.c:3484 +#: ../src/iop/filmicrgb.c:3548 msgid "look only" msgstr "ルックのみ" -#: ../src/iop/filmicrgb.c:3486 +#: ../src/iop/filmicrgb.c:3550 msgid "look + mapping (lin)" msgstr "ルック+マッピング(リニア)" -#: ../src/iop/filmicrgb.c:3488 +#: ../src/iop/filmicrgb.c:3552 msgid "look + mapping (log)" msgstr "ルック+マッピング(対数)" -#: ../src/iop/filmicrgb.c:3490 +#: ../src/iop/filmicrgb.c:3554 msgid "dynamic range mapping" msgstr "ダイナミックレンジマッピング" -#: ../src/iop/filmicrgb.c:3857 +#: ../src/iop/filmicrgb.c:3921 #, c-format msgid "(%.0f %%)" msgstr "(%.0f %%)" -#: ../src/iop/filmicrgb.c:3873 +#: ../src/iop/filmicrgb.c:3937 #, no-c-format msgid "% display" msgstr "% ディスプレイ" -#: ../src/iop/filmicrgb.c:3885 +#: ../src/iop/filmicrgb.c:3949 msgid "EV scene" msgstr "EV シーン" -#: ../src/iop/filmicrgb.c:3889 +#: ../src/iop/filmicrgb.c:3953 #, no-c-format msgid "% camera" msgstr "% カメラ" #. Page DISPLAY -#: ../src/iop/filmicrgb.c:3925 ../src/iop/filmicrgb.c:4587 +#: ../src/iop/filmicrgb.c:3989 ../src/iop/filmicrgb.c:4651 msgid "display" msgstr "ディスプレイ" #. axis legend -#: ../src/iop/filmicrgb.c:3934 +#: ../src/iop/filmicrgb.c:3998 msgid "(%)" msgstr "(%)" #. Page SCENE -#: ../src/iop/filmicrgb.c:3943 ../src/iop/filmicrgb.c:4422 +#: ../src/iop/filmicrgb.c:4007 ../src/iop/filmicrgb.c:4486 msgid "scene" msgstr "シーン" #. axis legend -#: ../src/iop/filmicrgb.c:3952 +#: ../src/iop/filmicrgb.c:4016 msgid "(EV)" msgstr "(EV)" #. we are over the graph area -#: ../src/iop/filmicrgb.c:4364 +#: ../src/iop/filmicrgb.c:4428 msgid "" "use the parameters below to set the nodes.\n" "the bright curve is the filmic tone mapping curve\n" @@ -16755,11 +17317,11 @@ "明るい曲線はフィルミックトーンマッピングカーブです\n" "暗い曲線は彩度低減カーブです" -#: ../src/iop/filmicrgb.c:4370 +#: ../src/iop/filmicrgb.c:4434 msgid "toggle axis labels and values display" msgstr "軸のラベルと値の表示/非表示を切り替えます" -#: ../src/iop/filmicrgb.c:4374 +#: ../src/iop/filmicrgb.c:4438 msgid "" "cycle through graph views.\n" "left click: cycle forward.\n" @@ -16774,7 +17336,7 @@ # 画像の被写体の平均輝度に合わせて調整します # ここに入力した値は18.45%に再マップされます # 値を小さくすると、全体の明るさ(Brightness)が上がります -#: ../src/iop/filmicrgb.c:4431 +#: ../src/iop/filmicrgb.c:4495 #, no-c-format msgid "" "adjust to match the average luminance of the image's subject.\n" @@ -16787,9 +17349,9 @@ # 算出されたダイナミックレンジを対称的に拡大縮小します。 # 極端な輝度に余裕を与えるのに役立ちます -#: ../src/iop/filmicrgb.c:4461 +#: ../src/iop/filmicrgb.c:4525 msgid "" -"symmetrically enlarge or shrink the computed dynamic range.\n" +"symmetrically increase or decrease the computed dynamic range.\n" "useful to give a safety margin to extreme luminances." msgstr "" "算出されたダイナミックレンジを対称的に拡大または縮小します\n" @@ -16801,7 +17363,7 @@ # ハイキーやローキー、高ISOの写真ではうまく機能しません # これは人工知能ではなく、単純な推測です # その仮定を理解してから使用してください -#: ../src/iop/filmicrgb.c:4468 +#: ../src/iop/filmicrgb.c:4532 msgid "" "try to optimize the settings with some statistical assumptions.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16818,16 +17380,16 @@ "い" #. Page RECONSTRUCT -#: ../src/iop/filmicrgb.c:4477 +#: ../src/iop/filmicrgb.c:4541 msgid "reconstruct" msgstr "再構成" -#: ../src/iop/filmicrgb.c:4479 +#: ../src/iop/filmicrgb.c:4543 msgctxt "section" msgid "highlights clipping" msgstr "ハイライトのクリッピング" -#: ../src/iop/filmicrgb.c:4487 +#: ../src/iop/filmicrgb.c:4551 msgid "" "set the exposure threshold upon which\n" "clipped highlights get reconstructed.\n" @@ -16842,7 +17404,7 @@ "値を下げると、より多くの領域が含まれます\n" "値を上げると、より多くの領域が除外されます" -#: ../src/iop/filmicrgb.c:4497 +#: ../src/iop/filmicrgb.c:4561 msgid "" "soften the transition between clipped highlights and valid pixels.\n" "decrease to make the transition harder and sharper,\n" @@ -16852,20 +17414,20 @@ "値を下げると、遷移が急でシャープになります\n" "値を上げると、遷移が緩やかで不明瞭になります" -#: ../src/iop/filmicrgb.c:4503 ../src/iop/filmicrgb.c:4504 +#: ../src/iop/filmicrgb.c:4567 ../src/iop/filmicrgb.c:4568 msgid "display highlight reconstruction mask" msgstr "ハイライトの再構成のマスクを表示" -#: ../src/iop/filmicrgb.c:4511 +#: ../src/iop/filmicrgb.c:4575 msgctxt "section" msgid "balance" msgstr "バランス" -#: ../src/iop/filmicrgb.c:4518 +#: ../src/iop/filmicrgb.c:4582 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between inpainting a smooth color gradient,\n" +"inpainting a smooth color gradient\n" "or trying to recover the textured details.\n" "0% is an equal mix of both.\n" "increase if at least one RGB channel is not clipped.\n" @@ -16875,14 +17437,14 @@ "滑らかな色のグラデーションで塗りつぶして修復するか、テクスチャのあるディテー" "ルを復元するよう試みます\n" "0%に設定すると、両者を均等にミックスします\n" -"少なくとも一つのRGBチャンネルがクリップしていない場合、値を上げます\n" -"全てのRGBチャンネルが広範囲にわたってクリップしている場合、値を下げます" +"少なくとも一つのRGBチャンネルがクリップしていない場合、値を上げてください\n" +"全てのRGBチャンネルが広範囲にわたってクリップしている場合、値を下げてください" -#: ../src/iop/filmicrgb.c:4529 +#: ../src/iop/filmicrgb.c:4593 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between blooming highlights like film does,\n" +"blooming highlights like film does\n" "or trying to recover sharp details.\n" "0% is an equal mix of both.\n" "increase if you want more details.\n" @@ -16892,14 +17454,14 @@ "フィルムのようにハイライトをブルームさせるか、シャープなディテールを復元する" "よう試みます\n" "0%に設定すると、両者を均等にミックスします\n" -"細部を増やしたい場合、値を上げます\n" -"ぼかしたい場合、値を下げます" +"細部を増やしたい場合、値を上げてください\n" +"ぼかしたい場合、値を下げてください" -#: ../src/iop/filmicrgb.c:4541 +#: ../src/iop/filmicrgb.c:4605 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between recovering monochromatic highlights,\n" +"recovering monochromatic highlights\n" "or trying to recover colorful highlights.\n" "0% is an equal mix of both.\n" "increase if you want more color.\n" @@ -16909,15 +17471,15 @@ "モノクロームのハイライトを復元するか、色のあるハイライトを復元するよう試みま" "す\n" "0%に設定すると、両者を均等にミックスします\n" -"より色を付けたい場合、値を上げます\n" -"マゼンタや色域外のハイライトが見られる場合、値を下げます" +"より色を付けたい場合、値を上げてください\n" +"マゼンタや色域外のハイライトが見られる場合、値を下げてください" #. Page LOOK -#: ../src/iop/filmicrgb.c:4549 +#: ../src/iop/filmicrgb.c:4613 msgid "look" msgstr "ルック" -#: ../src/iop/filmicrgb.c:4559 +#: ../src/iop/filmicrgb.c:4623 msgid "" "equivalent to paper grade in analog.\n" "increase to make highlights brighter and less compressed.\n" @@ -16927,7 +17489,7 @@ "値を上げると、ハイライトがより明るくなり、圧縮が少なくなります\n" "値を下げると、ハイライトの色が弱まります" -#: ../src/iop/filmicrgb.c:4567 +#: ../src/iop/filmicrgb.c:4631 msgid "" "width of the linear domain in the middle of the curve,\n" "increase to get more contrast and less desaturation at extreme luminances,\n" @@ -16940,7 +17502,7 @@ "ん\n" "中間トーンには影響を及ぼしません" -#: ../src/iop/filmicrgb.c:4582 ../src/iop/filmicrgb.c:4730 +#: ../src/iop/filmicrgb.c:4646 ../src/iop/filmicrgb.c:4794 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16950,11 +17512,11 @@ "シャドウおよび/またはハイライトの彩度が不足している場合、値を上げます" #. Page OPTIONS -#: ../src/iop/filmicrgb.c:4611 +#: ../src/iop/filmicrgb.c:4675 msgid "options" msgstr "オプション" -#: ../src/iop/filmicrgb.c:4616 +#: ../src/iop/filmicrgb.c:4680 msgid "" "v3 is darktable 3.0 desaturation method, same as color balance.\n" "v4 is a newer desaturation method, based on spectral purity of light." @@ -16962,7 +17524,7 @@ "バージョン3は、カラーバランスと同様に、darktable 3.0の彩度低減方式です\n" "バージョン4は新しい彩度低減方式であり、光のスペクトル純度にもとづいています" -#: ../src/iop/filmicrgb.c:4620 +#: ../src/iop/filmicrgb.c:4684 msgid "" "ensure the original colors are preserved.\n" "may reinforce chromatic aberrations and chroma noise,\n" @@ -16972,7 +17534,7 @@ "色収差とクロマノイズを強める可能性があります\n" "両者が他所で適切に補正されていることを確認してください" -#: ../src/iop/filmicrgb.c:4629 +#: ../src/iop/filmicrgb.c:4693 msgid "" "choose the desired curvature of the filmic spline in highlights.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -16982,7 +17544,7 @@ "ハードを選択すると、高い曲率を用いて、トーンの圧縮を強めます\n" "ソフトを選択すると、低い曲率を用いて、トーンの圧縮を弱めます" -#: ../src/iop/filmicrgb.c:4634 +#: ../src/iop/filmicrgb.c:4698 msgid "" "choose the desired curvature of the filmic spline in shadows.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -16992,7 +17554,7 @@ "ハードを選択すると、高い曲率を用いて、トーンの圧縮を強めます\n" "ソフトを選択すると、低い曲率を用いて、トーンの圧縮を弱めます" -#: ../src/iop/filmicrgb.c:4641 +#: ../src/iop/filmicrgb.c:4705 #, no-c-format msgid "" "enable to input custom middle-gray values.\n" @@ -17005,7 +17567,7 @@ "これを利用せずに、露出モジュールで画像全体の露出を修正してください\n" "標準の18.45%ミドルグレーの使用を無効にします" -#: ../src/iop/filmicrgb.c:4648 +#: ../src/iop/filmicrgb.c:4712 msgid "" "enable to auto-set the look hardness depending on the scene white and black " "points.\n" @@ -17017,7 +17579,7 @@ "これにより、ミドルグレーが均等線上に維持され、より素早く調整出来ます\n" "手動でコントロールしたい場合、無効にしてください" -#: ../src/iop/filmicrgb.c:4654 +#: ../src/iop/filmicrgb.c:4718 msgid "" "run extra passes of chromaticity reconstruction.\n" "more iterations means more color propagation from neighborhood.\n" @@ -17029,7 +17591,7 @@ "これにより処理が遅くなりますが、よりニュートラルなハイライトが生成されます\n" "また、マゼンタのハイライトがある難しいケースにおいても有用です" -#: ../src/iop/filmicrgb.c:4661 +#: ../src/iop/filmicrgb.c:4725 msgid "" "add statistical noise in reconstructed highlights.\n" "this avoids highlights to look too smooth\n" @@ -17040,7 +17602,7 @@ "ハイライトが滑らかになりすぎるのを防ぎます\n" "写真の全体にノイズが多いと、うまく混ざり合います" -#: ../src/iop/filmicrgb.c:4668 +#: ../src/iop/filmicrgb.c:4732 msgid "" "choose the statistical distribution of noise.\n" "this is useful to match natural sensor noise pattern." @@ -17048,11 +17610,11 @@ "ノイズの統計的分布を選択してください\n" "センサー固有のノイズパターンに一致させるのに有用です" -#: ../src/iop/filmicrgb.c:4736 +#: ../src/iop/filmicrgb.c:4800 msgid "mid-tones saturation" msgstr "中間トーンの彩度" -#: ../src/iop/filmicrgb.c:4737 +#: ../src/iop/filmicrgb.c:4801 msgid "" "desaturates the output of the module\n" "specifically at medium luminances.\n" @@ -17062,11 +17624,11 @@ "特に中程度の輝度の部分に作用します\n" "中間トーンの彩度が不足している場合、値を上げてください" -#: ../src/iop/filmicrgb.c:4743 +#: ../src/iop/filmicrgb.c:4807 msgid "highlights saturation mix" msgstr "ハイライト彩度ミックス" -#: ../src/iop/filmicrgb.c:4744 +#: ../src/iop/filmicrgb.c:4808 msgid "" "positive values ensure saturation is kept unchanged over the whole range.\n" "negative values bleach highlights at constant hue and luminance.\n" @@ -17089,39 +17651,39 @@ msgid "flip or rotate image by step of 90 degrees" msgstr "90°刻みに画像を反転または回転します" -#: ../src/iop/flip.c:477 +#: ../src/iop/flip.c:475 msgid "no rotation" msgstr "回転なし" -#: ../src/iop/flip.c:481 ../src/iop/flip.c:624 +#: ../src/iop/flip.c:479 ../src/iop/flip.c:622 msgid "flip horizontally" msgstr "水平に反転" -#: ../src/iop/flip.c:485 ../src/iop/flip.c:628 +#: ../src/iop/flip.c:483 ../src/iop/flip.c:626 msgid "flip vertically" msgstr "垂直に反転" -#: ../src/iop/flip.c:489 +#: ../src/iop/flip.c:487 msgid "rotate by -90 degrees" msgstr "-90°回転" -#: ../src/iop/flip.c:493 +#: ../src/iop/flip.c:491 msgid "rotate by 90 degrees" msgstr "90°回転" -#: ../src/iop/flip.c:497 +#: ../src/iop/flip.c:495 msgid "rotate by 180 degrees" msgstr "180°回転" -#: ../src/iop/flip.c:612 +#: ../src/iop/flip.c:610 msgid "transform" msgstr "変形" -#: ../src/iop/flip.c:616 ../src/libs/live_view.c:293 +#: ../src/iop/flip.c:614 ../src/libs/live_view.c:293 msgid "rotate 90 degrees CCW" msgstr "反時計回りに90°回転" -#: ../src/iop/flip.c:620 ../src/libs/live_view.c:294 +#: ../src/iop/flip.c:618 ../src/libs/live_view.c:294 msgid "rotate 90 degrees CW" msgstr "時計回りに90°回転" @@ -17140,15 +17702,15 @@ "このモジュールは非推奨です\n" "代わりにフィルミックRGBモジュールを使用してください" -#: ../src/iop/globaltonemap.c:625 ../src/libs/filters/colors.c:259 +#: ../src/iop/globaltonemap.c:658 ../src/libs/filters/colors.c:259 msgid "operator" msgstr "オペレータ" -#: ../src/iop/globaltonemap.c:626 +#: ../src/iop/globaltonemap.c:659 msgid "the global tonemap operator" msgstr "グローバル トーンマップのオペレータ" -#: ../src/iop/globaltonemap.c:629 +#: ../src/iop/globaltonemap.c:662 msgid "" "the bias for tonemapper controls the linearity, the higher the more details " "in blacks" @@ -17156,7 +17718,7 @@ "このトーンマップのバイアスは直線性をコントロールします\n" "値を上げると、暗部の細部が増します" -#: ../src/iop/globaltonemap.c:633 +#: ../src/iop/globaltonemap.c:666 msgid "the target light for tonemapper specified as cd/m2" msgstr "トーンマップのターゲット明度を cd/m2 で指定します" @@ -17220,11 +17782,11 @@ msgid "simulate an optical graduated neutral density filter" msgstr "光学式グラデーションNDフィルターをシミュレートします" -#: ../src/iop/graduatednd.c:1114 +#: ../src/iop/graduatednd.c:1083 msgid "the density in EV for the filter" msgstr "フィルターの濃度(EV)" -#: ../src/iop/graduatednd.c:1119 +#: ../src/iop/graduatednd.c:1088 #, no-c-format msgid "" "hardness of graduation:\n" @@ -17233,57 +17795,57 @@ "グラデーションの硬さ\n" "0% =ソフト、100% = ハード" -#: ../src/iop/graduatednd.c:1123 +#: ../src/iop/graduatednd.c:1092 msgid "rotation of filter -180 to 180 degrees" msgstr "" "フイルターの回転\n" "-180°から180°まで" -#: ../src/iop/graduatednd.c:1136 +#: ../src/iop/graduatednd.c:1105 msgid "select the hue tone of filter" msgstr "フィルターの色相トーンを選択してください" -#: ../src/iop/graduatednd.c:1142 +#: ../src/iop/graduatednd.c:1111 msgid "select the saturation of filter" msgstr "フィルターの彩度を選択してください" -#: ../src/iop/graduatednd.c:1153 +#: ../src/iop/graduatednd.c:1122 #, c-format msgid "[%s on nodes] change line rotation" msgstr "【ノードの上で%s】線の回転を変更する" -#: ../src/iop/graduatednd.c:1154 +#: ../src/iop/graduatednd.c:1123 #, c-format msgid "[%s on line] move line" msgstr "【線の上で%s】線を移動します" -#: ../src/iop/graduatednd.c:1156 +#: ../src/iop/graduatednd.c:1125 #, c-format msgid "[%s on line] change density" msgstr "【線の上で%s】濃度を変更します" -#: ../src/iop/graduatednd.c:1158 +#: ../src/iop/graduatednd.c:1127 #, c-format msgid "[%s on line] change hardness" msgstr "【線の上で%s】硬さを変更します" -#: ../src/iop/grain.c:428 +#: ../src/iop/grain.c:444 msgid "grain" msgstr "フィルム粒子" -#: ../src/iop/grain.c:433 +#: ../src/iop/grain.c:449 msgid "simulate silver grains from film" msgstr "フィルムの銀粒子をシミュレートします" -#: ../src/iop/grain.c:582 +#: ../src/iop/grain.c:600 msgid "the grain size (~ISO of the film)" msgstr "粒子のサイズ(フィルムのISO)" -#: ../src/iop/grain.c:586 +#: ../src/iop/grain.c:604 msgid "the strength of applied grain" msgstr "適用する粒子の強さ" -#: ../src/iop/grain.c:590 +#: ../src/iop/grain.c:608 msgid "" "amount of mid-tones bias from the photographic paper response modeling. the " "greater the bias, the more pronounced the fall off of the grain in shadows " @@ -17305,15 +17867,15 @@ msgid "remove fog and atmospheric hazing from pictures" msgstr "写真から霧と大気のかすみを除去します" -#: ../src/iop/hazeremoval.c:202 +#: ../src/iop/hazeremoval.c:204 msgid "amount of haze reduction" msgstr "かすみの除去の量" -#: ../src/iop/hazeremoval.c:204 +#: ../src/iop/hazeremoval.c:206 msgid "distance" msgstr "距離" -#: ../src/iop/hazeremoval.c:206 +#: ../src/iop/hazeremoval.c:208 msgid "limit haze removal up to a specific spatial depth" msgstr "かすみの除去を特定の奥行きに制限します" @@ -17325,11 +17887,11 @@ msgid "avoid magenta highlights and try to recover highlights colors" msgstr "マゼンタのハイライトを避け、ハイライトの色を復元するよう試みます" -#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:75 +#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:77 msgid "reconstruction, raw" msgstr "再構成、RAW" -#: ../src/iop/highlights.c:923 +#: ../src/iop/highlights.c:1004 msgid "" "highlights: mode not available for this type of image. falling back to " "inpaint opposed." @@ -17337,49 +17899,64 @@ "ハイライト:このタイプの画像にこのモードは使用出来ません。'反対を修復'に戻り" "ます" -#: ../src/iop/highlights.c:1101 +#: ../src/iop/highlights.c:1184 msgid "highlight reconstruction method" msgstr "ハイライトの再構成の方式" -#: ../src/iop/highlights.c:1106 +#: ../src/iop/highlights.c:1189 msgid "" "manually adjust the clipping threshold mostly used against magenta " -"highlights\n" -"the mask icon shows the clipped areas.\n" +"highlights.\n" "you might use this for tuning 'laplacian', 'inpaint opposed' or " "'segmentation' modes,\n" "especially if camera white point is incorrect." msgstr "" "マゼンタのハイライトを避けるよう、クリップのしきい値を手動で調整してくださ" "い\n" -"マスクアイコンをクリックすると、クリップしている領域を表示します\n" "特に、カメラで設定したホワイトポイントが不正確な場合に、\n" "'ラプラシアン'、'反対を修復'、'セグメンテーション'モードで使用することをおす" "すめします" -#: ../src/iop/highlights.c:1117 +#: ../src/iop/highlights.c:1193 +msgid "" +"visualize clipped highlights in a false color representation.\n" +"the effective clipping level also depends on the reconstruction method." +msgstr "" +"クリップしたハイライトを偽色で視覚化します\n" +"有効なクリップレベルは再構成の方式にも依存します" + +#: ../src/iop/highlights.c:1203 msgid "" "combine closely related clipped segments by morphological operations.\n" -"the mask button shows the exact positions of resulting segment borders." +"this often leads to improved color reconstruction for tiny segments before " +"dark background." msgstr "" "密接に関連しあっているクリップしているセグメントをモフォロジー処理によって結" "合します\n" -"マスクボタンをクリックすると、結果のセグメントの境界の正確な位置を表示します" +"これにより、多くの場合、暗い背景の前の小さなセグメントの色の再構成がより優れ" +"たものになります" -#: ../src/iop/highlights.c:1125 +#: ../src/iop/highlights.c:1206 +msgid "visualize the combined segments in a false color representation." +msgstr "結合したセグメントを偽色で視覚化します" + +#: ../src/iop/highlights.c:1213 msgid "" "select inpainting after segmentation analysis.\n" -"increase to favour candidates found in segmentation analysis, decrease for " -"opposed means inpainting.\n" -"the mask button shows segments that are considered to have a good candidate." +"increase to favor candidates found in segmentation analysis, decrease for " +"opposed means inpainting." msgstr "" "セグメンテーション分析後の修復を選択します\n" "値を上げると、セグメンテーション分析によって割り出された候補を利用します。値" -"を下げると、反対の手段の修復を施します\n" -"マスクボタンをクリックすると、良好な候補を得られると考えられるセグメントを表" -"示します" +"を下げると、反対の手段の修復を施します" + +#: ../src/iop/highlights.c:1216 +msgid "" +"visualize segments that are considered to have a good candidate in a false " +"color representation." +msgstr "有力な候補があると思われるセグメントを偽色で視覚化します" -#: ../src/iop/highlights.c:1136 +#: ../src/iop/highlights.c:1225 msgid "" "approximate lost data in regions with all photosites clipped, the effect " "depends on segment size and border gradients.\n" @@ -17398,16 +17975,15 @@ "'フラット'モードではクリップしていない細かい領域(電線のような)を無視してハ" "イライトの再構成を保持し、グラデーションを避けます" -#: ../src/iop/highlights.c:1142 -msgid "" -"set strength of rebuilding in regions with all photosites clipped.\n" -"the mask buttons shows the effect that is added to already reconstructed " -"data." -msgstr "" -"全てのフォトサイトがクリップした領域における再構成の強さを設定します\n" -"マスクボタンをクリックすると、再構成済みのデータに加えられる効果を表示します" +#: ../src/iop/highlights.c:1231 +msgid "set strength of rebuilding in regions with all photosites clipped." +msgstr "全てのフォトサイトがクリップした領域における再構成の強さを設定します" + +#: ../src/iop/highlights.c:1233 +msgid "show the effect that is added to already reconstructed data." +msgstr "すでに再構成されているデータに加えられる効果を表示します" -#: ../src/iop/highlights.c:1152 +#: ../src/iop/highlights.c:1242 msgid "" "add noise to visually blend the reconstructed areas\n" "into the rest of the noisy image. useful at high ISO." @@ -17416,7 +17992,7 @@ "ます\n" "高ISOで有用です" -#: ../src/iop/highlights.c:1156 +#: ../src/iop/highlights.c:1246 msgid "" "increase if magenta highlights don't get fully corrected\n" "each new iteration brings a performance penalty." @@ -17424,7 +18000,7 @@ "マゼンタのハイライトが十分補正されない場合、値を上げてください\n" "反復を増やすたびにパフォーマンスに悪影響があります" -#: ../src/iop/highlights.c:1161 +#: ../src/iop/highlights.c:1251 msgid "" "increase if magenta highlights don't get fully corrected.\n" "this may produce non-smooth boundaries between valid and clipped regions." @@ -17433,7 +18009,7 @@ "これにより、正常な領域とクリップした領域の境界が滑らかでなくなることがありま" "す" -#: ../src/iop/highlights.c:1165 +#: ../src/iop/highlights.c:1255 msgid "" "increase to correct larger clipped areas.\n" "large values bring huge performance penalties" @@ -17441,10 +18017,9 @@ "値を上げると、広範囲にわたるクリップ領域を補正することが出来ます\n" "高い値にすると、パフォーマンスに大きな悪影響があります" -#: ../src/iop/highlights.c:1169 -msgid "this module only works with non-monochrome RAW and sRAW" -msgstr "" -"このモジュールはモノクロでないRAWとsRAW画像でのみ使用することが出来ます" +#: ../src/iop/highlights.c:1259 +msgid "this module does not work with monochrome RAW files" +msgstr "このモジュールはモノクロのRAWファイルでは動作しません" #: ../src/iop/highpass.c:72 msgid "highpass" @@ -17454,50 +18029,50 @@ msgid "isolate high frequencies in the image" msgstr "画像の高周波を分離します" -#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:135 +#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:107 msgid "linear or non-linear, Lab, scene-referred" msgstr "リニアあるいはノンリニア、Lab、シーン参照" -#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:136 ../src/iop/sharpen.c:96 +#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:108 ../src/iop/sharpen.c:98 msgid "frequential, Lab" msgstr "周波数的、Lab" -#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:137 +#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:109 msgid "special, Lab, scene-referred" msgstr "特殊、Lab、シーン参照" -#: ../src/iop/highpass.c:383 +#: ../src/iop/highpass.c:378 msgid "the sharpness of highpass filter" msgstr "ハイパスフィルターのシャープネス" -#: ../src/iop/highpass.c:387 +#: ../src/iop/highpass.c:382 msgid "the contrast of highpass filter" msgstr "ハイパスフィルターのコントラスト" -#: ../src/iop/hotpixels.c:67 +#: ../src/iop/hotpixels.c:69 msgid "hot pixels" msgstr "ホットピクセル" -#: ../src/iop/hotpixels.c:72 +#: ../src/iop/hotpixels.c:74 msgid "remove abnormally bright pixels by dampening them with neighbors" msgstr "異常に明るいピクセルを周囲のピクセルで弱めて除去します" -#: ../src/iop/hotpixels.c:363 +#: ../src/iop/hotpixels.c:442 #, c-format msgid "fixed %d pixel" msgid_plural "fixed %d pixels" msgstr[0] "%d個のピクセルを修復しました" msgstr[1] "%d個のピクセルを修復しました" -#: ../src/iop/hotpixels.c:386 +#: ../src/iop/hotpixels.c:465 msgid "lower threshold for hot pixel" msgstr "ホットピクセルのしきい値を下げます" -#: ../src/iop/hotpixels.c:390 +#: ../src/iop/hotpixels.c:469 msgid "strength of hot pixel correction" msgstr "ホットピクセル補正の強さ" -#: ../src/iop/hotpixels.c:406 +#: ../src/iop/hotpixels.c:485 msgid "" "hot pixel correction\n" "only works for raw images." @@ -17505,65 +18080,65 @@ "ホットピクセルの補正\n" "RAW画像でのみ動作" -#: ../src/iop/invert.c:92 ../src/iop/invert.c:427 +#: ../src/iop/invert.c:106 ../src/iop/invert.c:442 #, c-format msgid "`%s' color matrix not found for 4bayer image" msgstr "`%s' 4ベイヤー画像のためのカラーマトリクスが見つかりませんでした" -#: ../src/iop/invert.c:108 +#: ../src/iop/invert.c:125 msgid "invert" msgstr "ネガ反転" -#: ../src/iop/invert.c:113 +#: ../src/iop/invert.c:130 msgid "this module is deprecated. please use the negadoctor module instead." msgstr "" "このモジュールは非推奨です\n" "代わりにネガドクターモジュールを使用してください" -#: ../src/iop/invert.c:118 +#: ../src/iop/invert.c:135 msgid "invert film negatives" msgstr "ネガフィルムを反転します" # リニア, raw, ディスプレイ参照 -#: ../src/iop/invert.c:120 ../src/iop/invert.c:122 +#: ../src/iop/invert.c:137 ../src/iop/invert.c:139 msgid "linear, raw, display-referred" msgstr "リニア、RAW、ディスプレイ参照" #. Here we could provide more for monochrome special cases. As no monochrome camera #. has a bayer sensor we don't need g->RGB_to_CAM and g->CAM_to_RGB corrections -#: ../src/iop/invert.c:412 +#: ../src/iop/invert.c:427 msgid "brightness of film material" msgstr "フィルムの素材の明るさ(ブライトネス)" -#: ../src/iop/invert.c:416 +#: ../src/iop/invert.c:431 msgid "color of film material" msgstr "フィルムの素材の色" -#: ../src/iop/invert.c:500 ../src/iop/negadoctor.c:847 +#: ../src/iop/invert.c:515 ../src/iop/negadoctor.c:866 msgid "pick color of film material from image" msgstr "画像からフィルムの素材の色を抽出" -#: ../src/iop/invert.c:502 +#: ../src/iop/invert.c:517 msgid "select color of film material" msgstr "フィルムの素材の色を選択してください" -#: ../src/iop/lens.cc:230 +#: ../src/iop/lens.cc:251 msgid "lens correction" msgstr "レンズ補正" -#: ../src/iop/lens.cc:235 +#: ../src/iop/lens.cc:256 msgid "vignette|chromatic aberrations|distortion" msgstr "周辺減光|色収差|歪曲" -#: ../src/iop/lens.cc:240 +#: ../src/iop/lens.cc:261 msgid "correct lenses optical flaws" msgstr "レンズの光学的欠陥を補正します" -#: ../src/iop/lens.cc:243 +#: ../src/iop/lens.cc:264 msgid "geometric and reconstruction, RGB" msgstr "幾何学的および再構成、RGB" -#: ../src/iop/lens.cc:3148 +#: ../src/iop/lens.cc:3773 #, c-format msgid "" "maker:\t\t%s\n" @@ -17576,7 +18151,7 @@ "マウント:\t\t%s\n" "クロップファクター:\t%.1f" -#: ../src/iop/lens.cc:3396 +#: ../src/iop/lens.cc:4026 #, c-format msgid "" "maker:\t\t%s\n" @@ -17595,31 +18170,31 @@ "タイプ:\t\t%s\n" "マウント:\t%s" -#: ../src/iop/lens.cc:3442 +#: ../src/iop/lens.cc:4072 msgid "focal length (mm)" msgstr "焦点距離 (mm)" -#: ../src/iop/lens.cc:3468 +#: ../src/iop/lens.cc:4098 msgid "f/" msgstr "f/" -#: ../src/iop/lens.cc:3469 +#: ../src/iop/lens.cc:4099 msgid "f-number (aperture)" msgstr "f-値(絞り)" -#: ../src/iop/lens.cc:3485 +#: ../src/iop/lens.cc:4115 msgid "d" msgstr "d" -#: ../src/iop/lens.cc:3486 +#: ../src/iop/lens.cc:4116 msgid "distance to subject" msgstr "被写体までの距離" -#: ../src/iop/lens.cc:3645 +#: ../src/iop/lens.cc:4277 msgid "camera/lens not found" msgstr "カメラとレンズの組み合わせが見つかりません" -#: ../src/iop/lens.cc:3646 +#: ../src/iop/lens.cc:4278 msgid "" "please select your lens manually\n" "you might also want to check if your Lensfun database is up-to-date\n" @@ -17629,45 +18204,50 @@ "lensfun-update-dataを実行して、lensfunのデータベースが最新のものであるか" "チェックするとよいかもしれません" -#: ../src/iop/lens.cc:3769 +#: ../src/iop/lens.cc:4423 msgid "camera model" msgstr "カメラの機種" -#: ../src/iop/lens.cc:3774 +#: ../src/iop/lens.cc:4428 msgid "find camera" msgstr "カメラを探してください" -#: ../src/iop/lens.cc:3789 +#: ../src/iop/lens.cc:4443 msgid "find lens" msgstr "レンズを探してください" #. scale -#: ../src/iop/lens.cc:3823 ../src/iop/vignette.c:968 -#: ../src/iop/watermark.c:1324 ../src/libs/export.c:1165 +#: ../src/iop/lens.cc:4477 ../src/iop/vignette.c:1055 +#: ../src/iop/watermark.c:1372 ../src/libs/export.c:1264 msgid "scale" msgstr "スケール" -#: ../src/iop/lens.cc:3828 +#: ../src/iop/lens.cc:4482 msgid "auto scale" msgstr "スケールの自動設定" -#: ../src/iop/lens.cc:3832 +#: ../src/iop/lens.cc:4484 +msgid "automatic scale to available image size due to Lensfun data" +msgstr "" +"Lensfunnoのデータにより利用可能な画像サイズに自動的にスケール調整します" + +#: ../src/iop/lens.cc:4488 msgid "correct distortions or apply them" msgstr "歪曲を補正または適用します" -#: ../src/iop/lens.cc:3839 +#: ../src/iop/lens.cc:4495 msgid "transversal chromatic aberration red" msgstr "倍率色収差 赤" -#: ../src/iop/lens.cc:3843 +#: ../src/iop/lens.cc:4499 msgid "transversal chromatic aberration blue" msgstr "倍率色収差 青" -#: ../src/iop/lens.cc:3849 +#: ../src/iop/lens.cc:4509 msgid "use latest algorithm" msgstr "最新のアルゴリズムを使用" -#: ../src/iop/lens.cc:3851 +#: ../src/iop/lens.cc:4511 msgid "" "you're using an old version of the algorithm.\n" "once enabled, you won't be able to\n" @@ -17676,55 +18256,106 @@ "古いバージョンのアルゴリズムを使用しています\n" "有効にすると、古いアルゴリズムに戻ることは出来なくなります" -#: ../src/iop/lens.cc:3860 +#: ../src/iop/lens.cc:4521 +msgid "fine-tuning" +msgstr "微調整" + +#. DT_IOP_SECTION_FOR_PARAMS doesn't work in C++ so create section module manually +#: ../src/iop/lens.cc:4526 +msgid "fine-tune" +msgstr "微調整" + +#: ../src/iop/lens.cc:4532 msgid "tune the warp and chromatic aberration correction" msgstr "変形および色収差の補正を調整します" -#: ../src/iop/lens.cc:3864 +#: ../src/iop/lens.cc:4536 msgid "tune the vignette correction" msgstr "露出補正を調整します" -#: ../src/iop/lens.cc:3868 +#: ../src/iop/lens.cc:4540 msgid "tune the TCA red correction" msgstr "赤色の倍率色収差の補正を微調整します" -#: ../src/iop/lens.cc:3872 +#: ../src/iop/lens.cc:4544 msgid "tune the TCA blue correction" msgstr "青色の倍率色収差の補正を微調整します" -#: ../src/iop/lens.cc:3879 +#: ../src/iop/lens.cc:4551 msgid "image scaling" msgstr "画像のスケール調整" -#: ../src/iop/lens.cc:3891 +#: ../src/iop/lens.cc:4553 +msgid "automatic scale to available image size" +msgstr "使用可能な画像サイズに自動的にスケール調整" + +#: ../src/iop/lens.cc:4561 +msgid "" +"select a correction mode either based on\n" +" a) data and algorithms provided by the Lensfun project\n" +" b) embedded metadata provided by the camera or software vendor" +msgstr "" +"以下のどちらに基づいて補正を行うか選択してください\n" +" a) Lensfunプロジェクトによって提供されたデータとアルゴリズム\n" +" b) カメラまたはソフトウェアベンダーによって提供された埋め込みメタデータ" + +#: ../src/iop/lens.cc:4568 msgid "which corrections to apply" msgstr "適用する補正の種類" -#: ../src/iop/lens.cc:3904 +#: ../src/iop/lens.cc:4574 msgid "corrections done: " msgstr "実行した補正:" -#: ../src/iop/lens.cc:3906 +#: ../src/iop/lens.cc:4576 msgid "which corrections have actually been done" msgstr "どの補正が実際に行われたか" +#: ../src/iop/lens.cc:4595 +msgid "manual vignette correction" +msgstr "手動ビネット補正" + +#: ../src/iop/lens.cc:4599 +msgid "additional manually controlled optical vignetting correction" +msgstr "手動の光学的周辺減光補正の追加" + +#: ../src/iop/lens.cc:4602 +msgid "vignette" +msgstr "ビネット" + +#: ../src/iop/lens.cc:4606 +msgid "amount of the applied optical vignetting correction" +msgstr "光学的周辺減光補正の適用量" + +#: ../src/iop/lens.cc:4608 +msgid "show applied optical vignette correction mask" +msgstr "適用した光学的周辺減光補正のマスクを表示" + +#: ../src/iop/lens.cc:4618 +msgid "radius of uncorrected centre" +msgstr "補正されない中央部の範囲" + +#: ../src/iop/lens.cc:4624 +msgid "steepness of the correction effect outside of radius" +msgstr "範囲外における補正の効果の峻度" + #: ../src/iop/levels.c:112 msgid "this module is deprecated. please use the RGB levels module instead." msgstr "" "このモジュールは非推奨です\n" "代わりにRGBレベルモジュールを使用してください" -#: ../src/iop/levels.c:117 ../src/iop/levels.c:630 ../src/iop/rgblevels.c:984 -#: ../src/iop/rgblevels.c:1014 +#: ../src/iop/levels.c:117 ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1022 +#: ../src/iop/rgblevels.c:1056 msgid "levels" msgstr "レベル" -#: ../src/iop/levels.c:137 +#: ../src/iop/levels.c:139 msgid "adjust black, white and mid-gray points" msgstr "ブラック、ホワイトおよびミドルグレーポイントを調整します" # ハンドルをドラッグで、ブラック、グレイ、およびホワイトポイントを設定します。 Lチャンネルで動作します -#: ../src/iop/levels.c:628 ../src/iop/rgblevels.c:1016 +#: ../src/iop/levels.c:644 ../src/iop/rgblevels.c:1059 msgid "" "drag handles to set black, gray, and white points. operates on L channel." msgstr "" @@ -17732,41 +18363,41 @@ "す\n" "Lチャンネルで動作します" -#: ../src/iop/levels.c:642 ../src/iop/rgblevels.c:1052 +#: ../src/iop/levels.c:658 ../src/iop/rgblevels.c:1108 msgid "apply auto levels" msgstr "レベルの自動設定を適用" -#: ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1027 +#: ../src/iop/levels.c:662 ../src/iop/rgblevels.c:1077 msgid "pick black point from image" msgstr "画像からブラックポイントを抽出" -#: ../src/iop/levels.c:650 ../src/iop/rgblevels.c:1033 +#: ../src/iop/levels.c:666 ../src/iop/rgblevels.c:1085 msgid "pick medium gray point from image" msgstr "画像からミドルグレーポイントを抽出" -#: ../src/iop/levels.c:654 ../src/iop/rgblevels.c:1039 +#: ../src/iop/levels.c:670 ../src/iop/rgblevels.c:1093 msgid "pick white point from image" msgstr "画像からホワイトポイントを抽出" -#: ../src/iop/levels.c:667 ../src/iop/rgblevels.c:936 -#: ../src/iop/rgblevels.c:1026 +#: ../src/iop/levels.c:683 ../src/iop/rgblevels.c:968 +#: ../src/iop/rgblevels.c:1075 msgid "black" msgstr "黒" -#: ../src/iop/levels.c:668 +#: ../src/iop/levels.c:684 msgid "black percentile" msgstr "黒 パーセント値" -#: ../src/iop/levels.c:672 +#: ../src/iop/levels.c:688 msgid "gray percentile" msgstr "グレー パーセント値" -#: ../src/iop/levels.c:675 ../src/iop/rgblevels.c:938 -#: ../src/iop/rgblevels.c:1038 +#: ../src/iop/levels.c:691 ../src/iop/rgblevels.c:970 +#: ../src/iop/rgblevels.c:1091 msgid "white" msgstr "白" -#: ../src/iop/levels.c:676 +#: ../src/iop/levels.c:692 msgid "white percentile" msgstr "白 パーセント値" @@ -17778,11 +18409,11 @@ msgid "distort parts of the image" msgstr "画像の一部を歪めます" -#: ../src/iop/liquify.c:2933 +#: ../src/iop/liquify.c:2895 msgid "click to edit nodes" msgstr "クリックすると、ノードを編集します" -#: ../src/iop/liquify.c:3636 +#: ../src/iop/liquify.c:3599 msgid "" "<b>add point</b>: click and drag\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17792,7 +18423,7 @@ "<b>サイズ</b>:スクロール  <b>強さ</b>:Shift+スクロール  <b>方向</b>:" "Ctrl+スクロール" -#: ../src/iop/liquify.c:3639 +#: ../src/iop/liquify.c:3602 msgid "" "<b>add line</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17802,7 +18433,7 @@ "<b>サイズ</b>:スクロール  <b>強さ</b>:Shift+スクロール  <b>方向</b>:" "Ctrl+スクロール" -#: ../src/iop/liquify.c:3642 +#: ../src/iop/liquify.c:3605 msgid "" "<b>add curve</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17814,7 +18445,7 @@ # ツールを使用して歪みを加えます # 右クリックで歪みを削除します -#: ../src/iop/liquify.c:3693 +#: ../src/iop/liquify.c:3656 msgid "" "use a tool to add warps\n" "<b>remove a warp</b>: right-click" @@ -17822,48 +18453,48 @@ "ツールを使用してワープを追加します\n" "<b>ワープを削除</b>:右クリック" -#: ../src/iop/liquify.c:3696 +#: ../src/iop/liquify.c:3659 msgid "warps|nodes count:" msgstr "ワープ|ノード数:" -#: ../src/iop/liquify.c:3705 +#: ../src/iop/liquify.c:3668 msgid "edit, add and delete nodes" msgstr "ノードの編集・追加・削除" -#: ../src/iop/liquify.c:3710 ../src/iop/liquify.c:3716 -#: ../src/iop/liquify.c:3722 ../src/iop/retouch.c:2238 -#: ../src/iop/retouch.c:2242 ../src/iop/retouch.c:2246 -#: ../src/iop/retouch.c:2250 ../src/iop/spots.c:883 ../src/iop/spots.c:888 -#: ../src/iop/spots.c:893 ../src/libs/masks.c:1816 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1834 ../src/libs/masks.c:1843 ../src/libs/masks.c:1852 +#: ../src/iop/liquify.c:3673 ../src/iop/liquify.c:3679 +#: ../src/iop/liquify.c:3685 ../src/iop/retouch.c:2465 +#: ../src/iop/retouch.c:2471 ../src/iop/retouch.c:2476 +#: ../src/iop/retouch.c:2481 ../src/iop/spots.c:885 ../src/iop/spots.c:890 +#: ../src/iop/spots.c:895 ../src/libs/masks.c:1812 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1830 ../src/libs/masks.c:1839 ../src/libs/masks.c:1848 msgid "shapes" msgstr "シェイプ" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw curves" msgstr "カーブを描画" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw multiple curves" msgstr "複数のカーブを描画" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw lines" msgstr "直線を描画" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw multiple lines" msgstr "複数の直線を描画" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw points" msgstr "点を打つ" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw multiple points" msgstr "複数の点を打つ" -#: ../src/iop/liquify.c:3729 +#: ../src/iop/liquify.c:3692 msgid "" "<b>add node</b>: ctrl+click - <b>remove path</b>: right click\n" "<b>toggle line/curve</b>: ctrl+alt+click" @@ -17871,7 +18502,7 @@ "<b>ノードを追加</b>:Ctrl+クリック  <b>パスを削除</b>:右クリック\n" "<b>直線/カーブを切り替え</b>::Ctrl+Alt+クリック" -#: ../src/iop/liquify.c:3732 +#: ../src/iop/liquify.c:3695 msgid "" "<b>move</b>: click and drag - <b>show/hide feathering controls</b>: click\n" "<b>autosmooth, cusp, smooth, symmetrical</b>: ctrl+click - <b>remove</b>: " @@ -17882,23 +18513,23 @@ "<b>自動平滑、尖点、平滑、シンメトリー</b>:Ctrl+クリック  <b>削除</b>:右ク" "リック" -#: ../src/iop/liquify.c:3736 ../src/iop/liquify.c:3738 +#: ../src/iop/liquify.c:3699 ../src/iop/liquify.c:3701 msgid "<b>shape of path</b>: drag" msgstr "<b>パスの形</b>:ドラッグ" -#: ../src/iop/liquify.c:3740 +#: ../src/iop/liquify.c:3703 msgid "<b>radius</b>: drag" msgstr "<b>半径</b>:ドラッグ" -#: ../src/iop/liquify.c:3742 +#: ../src/iop/liquify.c:3705 msgid "<b>hardness (center)</b>: drag" msgstr "<b>硬さ(中心)</b>:ドラッグ" -#: ../src/iop/liquify.c:3744 +#: ../src/iop/liquify.c:3707 msgid "<b>hardness (feather)</b>: drag" msgstr "<b>硬さ(境界ぼかし)</b>:ドラッグ" -#: ../src/iop/liquify.c:3746 +#: ../src/iop/liquify.c:3709 msgid "" "<b>strength</b>: drag\n" "<b>linear, grow, and shrink</b>: ctrl+click" @@ -17918,236 +18549,236 @@ msgid "linear, XYZ" msgstr "リニア、 XYZ" -#: ../src/iop/lowlight.c:341 +#: ../src/iop/lowlight.c:338 msgid "indoor bright" msgstr "明るい屋内" -#: ../src/iop/lowlight.c:359 +#: ../src/iop/lowlight.c:356 msgid "indoor dim" msgstr "薄暗い屋内" -#: ../src/iop/lowlight.c:377 +#: ../src/iop/lowlight.c:374 msgid "indoor dark" msgstr "暗い屋内" -#: ../src/iop/lowlight.c:395 +#: ../src/iop/lowlight.c:392 msgid "twilight" msgstr "黄昏" -#: ../src/iop/lowlight.c:413 +#: ../src/iop/lowlight.c:410 msgid "night street lit" msgstr "明るい夜道" -#: ../src/iop/lowlight.c:431 +#: ../src/iop/lowlight.c:428 msgid "night street" msgstr "夜道" -#: ../src/iop/lowlight.c:449 +#: ../src/iop/lowlight.c:446 msgid "night street dark" msgstr "暗い夜道" -#: ../src/iop/lowlight.c:468 +#: ../src/iop/lowlight.c:465 msgid "night" msgstr "夜" -#: ../src/iop/lowlight.c:641 +#: ../src/iop/lowlight.c:639 msgid "dark" msgstr "暗い" -#: ../src/iop/lowlight.c:649 +#: ../src/iop/lowlight.c:647 msgid "bright" msgstr "明るい" -#: ../src/iop/lowlight.c:658 +#: ../src/iop/lowlight.c:656 msgid "day vision" msgstr "昼間視" -#: ../src/iop/lowlight.c:663 +#: ../src/iop/lowlight.c:661 msgid "night vision" msgstr "夜間視" -#: ../src/iop/lowlight.c:835 +#: ../src/iop/lowlight.c:833 msgid "blueness in shadows" msgstr "シャドウの青み" -#: ../src/iop/lowpass.c:128 +#: ../src/iop/lowpass.c:100 msgid "lowpass" msgstr "ローパス" -#: ../src/iop/lowpass.c:133 +#: ../src/iop/lowpass.c:105 msgid "isolate low frequencies in the image" msgstr "画像の低周波を分離します" -#: ../src/iop/lowpass.c:565 +#: ../src/iop/lowpass.c:578 msgid "local contrast mask" msgstr "ローカルコントラストマスク" -#: ../src/iop/lowpass.c:590 +#: ../src/iop/lowpass.c:603 msgid "radius of gaussian/bilateral blur" msgstr "ガウス/バイラテラルぼかしの半径" -#: ../src/iop/lowpass.c:591 +#: ../src/iop/lowpass.c:604 msgid "contrast of lowpass filter" msgstr "ローパスフィルターのコントラスト" -#: ../src/iop/lowpass.c:592 +#: ../src/iop/lowpass.c:605 msgid "brightness adjustment of lowpass filter" msgstr "ローパスフィルターの明るさ(ブライトネス)の調整" -#: ../src/iop/lowpass.c:593 +#: ../src/iop/lowpass.c:606 msgid "color saturation of lowpass filter" msgstr "ローパスフィルターの色の彩度" -#: ../src/iop/lowpass.c:594 +#: ../src/iop/lowpass.c:607 msgid "which filter to use for blurring" msgstr "ぼかしに使用するフィルターの種類" -#: ../src/iop/lut3d.c:135 +#: ../src/iop/lut3d.c:136 msgid "LUT 3D" msgstr "LUT 3D" -#: ../src/iop/lut3d.c:140 +#: ../src/iop/lut3d.c:141 msgid "perform color space corrections and apply look" msgstr "色空間補正を行ってルックを適用します" -#: ../src/iop/lut3d.c:143 +#: ../src/iop/lut3d.c:144 msgid "defined by profile, RGB" msgstr "プロファイルにより定義、RGB" -#: ../src/iop/lut3d.c:468 +#: ../src/iop/lut3d.c:486 msgid "error allocating buffer for gmz LUT" msgstr "gmz LUTにバッファを割り当てる際にエラーが発生しました" -#: ../src/iop/lut3d.c:494 +#: ../src/iop/lut3d.c:512 #, c-format msgid "invalid png file %s" msgstr "pngファイル%sは無効です" -#: ../src/iop/lut3d.c:502 +#: ../src/iop/lut3d.c:520 #, c-format -msgid "png bit-depth %d not supported" +msgid "png bit depth %d is not supported" msgstr "pngのビット深度%dはサポートされていません" -#: ../src/iop/lut3d.c:516 ../src/iop/lut3d.c:526 +#: ../src/iop/lut3d.c:534 ../src/iop/lut3d.c:544 #, c-format msgid "invalid level in png file %d %d" msgstr "png file%d %dのレベルが無効です" -#: ../src/iop/lut3d.c:521 +#: ../src/iop/lut3d.c:539 msgid "this darktable build is not compatible with compressed CLUT" msgstr "このdarktableのビルドは圧縮されたCLUTと互換性がありません" -#: ../src/iop/lut3d.c:538 ../src/iop/lut3d.c:788 +#: ../src/iop/lut3d.c:556 ../src/iop/lut3d.c:808 #, c-format msgid "error - LUT 3D size %d exceeds the maximum supported" msgstr "エラー:LUT 3Dのサイズ%d はサポートされている最大値を超えています" -#: ../src/iop/lut3d.c:550 +#: ../src/iop/lut3d.c:568 msgid "error allocating buffer for png LUT" msgstr "png LUTにバッファを割り当てる際にエラーが発生しました" -#: ../src/iop/lut3d.c:558 +#: ../src/iop/lut3d.c:576 #, c-format msgid "error - could not read png image %s" msgstr "エラー:png画像%sを読み取ることが出来ませんでした" -#: ../src/iop/lut3d.c:568 +#: ../src/iop/lut3d.c:586 msgid "error - allocating buffer for png LUT" msgstr "png LUTにバッファを割り当てる際にエラーが発生しました" -#: ../src/iop/lut3d.c:743 +#: ../src/iop/lut3d.c:761 #, c-format msgid "error - invalid cube file: %s" msgstr "エラー:cube ファイル%sは無効です" -#: ../src/iop/lut3d.c:757 -msgid "DOMAIN MIN <> 0.0 is not supported" -msgstr "DOMAIN MIN <> 0.0 はサポートされていません" - -#: ../src/iop/lut3d.c:768 -msgid "DOMAIN MAX <> 1.0 is not supported" -msgstr "DOMAIN MAX <> 1.0 はサポートされていません" +#: ../src/iop/lut3d.c:775 +msgid "DOMAIN MIN other than 0 is not supported" +msgstr "0以外のDOMAIN MINはサポートされていません" + +#: ../src/iop/lut3d.c:787 +msgid "DOMAIN MAX other than 1 is not supported" +msgstr "1以外のDOMAIN MAXはサポートされていません" -#: ../src/iop/lut3d.c:777 +#: ../src/iop/lut3d.c:797 msgid "1D cube LUT is not supported" msgstr "1D cube LUTはサポートされていません" -#: ../src/iop/lut3d.c:799 +#: ../src/iop/lut3d.c:819 msgid "error - allocating buffer for cube LUT" msgstr "cube LUTにバッファを割り当てる際にエラーが発生しました" -#: ../src/iop/lut3d.c:810 +#: ../src/iop/lut3d.c:830 msgid "error - cube LUT size is not defined" msgstr "エラー:cube LUTのサイズが設定されていません" -#: ../src/iop/lut3d.c:821 +#: ../src/iop/lut3d.c:841 #, c-format msgid "error - cube LUT invalid number line %d" msgstr "エラー:cube LUTの行数%dは無効です" -#: ../src/iop/lut3d.c:837 +#: ../src/iop/lut3d.c:857 #, c-format msgid "error - cube LUT lines number %d is not correct, should be %d" msgstr "エラー:cube LUTの行数%d は正しくありません。%dであるはずです" -#: ../src/iop/lut3d.c:847 +#: ../src/iop/lut3d.c:867 #, c-format msgid "warning - cube LUT has %d values out of range [0,1]" msgstr "警告:cube LUTは範囲[0,1]を%d出ています" -#: ../src/iop/lut3d.c:872 +#: ../src/iop/lut3d.c:892 #, c-format msgid "error - invalid 3dl file: %s" msgstr "エラー:%sは無効な3dlファイルです" -#: ../src/iop/lut3d.c:893 +#: ../src/iop/lut3d.c:913 #, c-format msgid "error - the maximum shaper LUT value %d is too low" msgstr "エラー:shaper LUTの最大値%dは低すぎます" -#: ../src/iop/lut3d.c:904 +#: ../src/iop/lut3d.c:924 msgid "error - allocating buffer for 3dl LUT" msgstr "エラー:3dl LUTにバッファを割り当てることが出来ません" -#: ../src/iop/lut3d.c:917 +#: ../src/iop/lut3d.c:937 msgid "error - 3dl LUT size is not defined" msgstr "エラー:3dl LUTのサイズが設定されていません" -#: ../src/iop/lut3d.c:945 +#: ../src/iop/lut3d.c:965 msgid "error - 3dl LUT lines number is not correct" msgstr "エラー:3dl LUTの行数が正しくありません" -#: ../src/iop/lut3d.c:961 +#: ../src/iop/lut3d.c:981 msgid "error - the maximum LUT value does not match any valid bit depth" msgstr "エラー:LUTの最大値が有効なビット深度と一致しません" -#: ../src/iop/lut3d.c:1539 +#: ../src/iop/lut3d.c:1553 msgid "LUT root folder not defined" msgstr "LUTのルートフォルダが設定されていません" -#: ../src/iop/lut3d.c:1545 +#: ../src/iop/lut3d.c:1559 msgid "select LUT file" msgstr "LUTファイルを選択する" -#: ../src/iop/lut3d.c:1546 +#: ../src/iop/lut3d.c:1560 msgid "_select" msgstr "_選択" -#: ../src/iop/lut3d.c:1566 +#: ../src/iop/lut3d.c:1580 msgid "hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" msgstr "" "hald CLUT(png)、3D LUT(cubeまたは3dl)、またはG'MICにより圧縮されたLUT" "(gmz)" -#: ../src/iop/lut3d.c:1568 +#: ../src/iop/lut3d.c:1582 msgid "hald CLUT (png) or 3D LUT (cube or 3dl)" msgstr "hald CLUT(png)または3D LUT(cubeまたは3dl)" -#: ../src/iop/lut3d.c:1592 +#: ../src/iop/lut3d.c:1606 msgid "select file outside LUT root folder is not allowed" msgstr "LUTのルートフォルダ外のファイルを選択することは出来ません" -#: ../src/iop/lut3d.c:1663 +#: ../src/iop/lut3d.c:1677 msgid "" "select a png (haldclut), a cube, a 3dl or a gmz (compressed LUT) file " "CAUTION: 3D LUT folder must be set in preferences/processing before choosing " @@ -18158,7 +18789,7 @@ "注意:LUTファイルを選択する前に、【設定】の【処理】タブで3D LUTフォルダを設定" "する必要があります" -#: ../src/iop/lut3d.c:1667 +#: ../src/iop/lut3d.c:1681 msgid "" "select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be " "set in preferences/processing before choosing the LUT file" @@ -18167,7 +18798,7 @@ "注意:LUTファイルを選択する前に、【設定】の【処理】タブで3D LUTフォルダを設定" "する必要があります" -#: ../src/iop/lut3d.c:1679 +#: ../src/iop/lut3d.c:1693 msgid "" "the file path (relative to LUT folder) is saved with image along with the " "LUT data if it's a compressed LUT (gmz)" @@ -18175,7 +18806,7 @@ "圧縮LUT(gmz)の場合、ファイルの(LUTフォルダに対する)パスはLUTデータと併せ" "て画像とともに保存されます" -#: ../src/iop/lut3d.c:1682 +#: ../src/iop/lut3d.c:1696 msgid "" "the file path (relative to LUT folder) is saved with image (and not the LUT " "data themselves)" @@ -18183,44 +18814,44 @@ "ファイルの(LUTフォルダに対する)パスは(LUTデータそのものではなく)画像とと" "もに保存されます" -#: ../src/iop/lut3d.c:1691 +#: ../src/iop/lut3d.c:1705 msgid "enter LUT name" msgstr "LUT名を入力してください" -#: ../src/iop/lut3d.c:1712 +#: ../src/iop/lut3d.c:1726 msgid "select the LUT" msgstr "lutを選択してください" -#: ../src/iop/lut3d.c:1725 +#: ../src/iop/lut3d.c:1739 msgid "select the color space in which the LUT has to be applied" msgstr "使用するlutが適用されるべき色空間を選択してください" -#: ../src/iop/lut3d.c:1727 +#: ../src/iop/lut3d.c:1741 msgid "interpolation" msgstr "補間" -#: ../src/iop/lut3d.c:1728 +#: ../src/iop/lut3d.c:1742 msgid "select the interpolation method" msgstr "補間方式を選択してください" -#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:62 +#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:63 msgid "mask manager" msgstr "マスクマネージャー" -#: ../src/iop/monochrome.c:97 +#: ../src/iop/monochrome.c:99 msgid "quickly convert an image to black & white using a variable color filter" msgstr "可変カラーフィルターを用いて、画像を手早く白黒に変換します" -#: ../src/iop/monochrome.c:127 +#: ../src/iop/monochrome.c:153 msgid "red filter" msgstr "赤フィルター" -#: ../src/iop/monochrome.c:546 +#: ../src/iop/monochrome.c:568 msgid "drag and scroll mouse wheel to adjust the virtual color filter" msgstr "" "ドラッグとマウスホイールのスクロールで仮想上のカラーフィルターを調整します" -#: ../src/iop/monochrome.c:562 +#: ../src/iop/monochrome.c:584 msgid "how much to keep highlights" msgstr "どれほどハイライトを変えずに保つか" @@ -18236,38 +18867,38 @@ msgid "invert film negative scans and simulate printing on paper" msgstr "フィルムのネガスキャンを反転し、紙への印刷をシミュ​​レートします" -#: ../src/iop/negadoctor.c:469 +#: ../src/iop/negadoctor.c:483 msgid "D min" msgstr "D min" -#: ../src/iop/negadoctor.c:475 ../src/iop/negadoctor.c:856 +#: ../src/iop/negadoctor.c:489 ../src/iop/negadoctor.c:875 msgid "D min red component" msgstr "D min 赤成分" #. Page FILM PROPERTIES -#: ../src/iop/negadoctor.c:832 +#: ../src/iop/negadoctor.c:851 msgid "film properties" msgstr "フィルムプロパティ" #. Dmin -#: ../src/iop/negadoctor.c:836 +#: ../src/iop/negadoctor.c:855 msgctxt "section" msgid "color of the film base" msgstr "フィルムベースの色" -#: ../src/iop/negadoctor.c:842 +#: ../src/iop/negadoctor.c:861 msgid "select color of film material from a swatch" msgstr "色見本からフィルムの素材の色を選択してください" -#: ../src/iop/negadoctor.c:848 +#: ../src/iop/negadoctor.c:867 msgid "film material" msgstr "フィルムの素材" # フィルムの透明ベースの色調を調整します。 # この値はフィルムの素材、フィルムの現像中に生成される化学的な色被り、 # スキャナーのホワイトバランスによって異なります -#: ../src/iop/negadoctor.c:857 ../src/iop/negadoctor.c:867 -#: ../src/iop/negadoctor.c:877 +#: ../src/iop/negadoctor.c:876 ../src/iop/negadoctor.c:886 +#: ../src/iop/negadoctor.c:896 msgid "" "adjust the color and shade of the film transparent base.\n" "this value depends on the film material, \n" @@ -18278,21 +18909,21 @@ "この値はフィルムの素材、フィルム現像中に生成される化学的な色被り、およびス" "キャナーのホワイトバランスによって異なります" -#: ../src/iop/negadoctor.c:866 +#: ../src/iop/negadoctor.c:885 msgid "D min green component" msgstr "D min 緑成分" -#: ../src/iop/negadoctor.c:876 +#: ../src/iop/negadoctor.c:895 msgid "D min blue component" msgstr "D min 青成分" #. D max and scanner bias -#: ../src/iop/negadoctor.c:884 +#: ../src/iop/negadoctor.c:903 msgctxt "section" msgid "dynamic range of the film" msgstr "フィルムのダイナミックレンジ" -#: ../src/iop/negadoctor.c:888 +#: ../src/iop/negadoctor.c:907 msgid "" "maximum density of the film, corresponding to white after inversion.\n" "this value depends on the film specifications, the developing process,\n" @@ -18302,12 +18933,12 @@ "この値は、フィルムの仕様、現像プロセス、シーンのダイナミックレンジ、およびス" "キャナーの露出設定により変わります" -#: ../src/iop/negadoctor.c:892 +#: ../src/iop/negadoctor.c:911 msgctxt "section" msgid "scanner exposure settings" msgstr "スキャナーの露出設定" -#: ../src/iop/negadoctor.c:896 +#: ../src/iop/negadoctor.c:915 msgid "" "correct the exposure of the scanner, for all RGB channels,\n" "before the inversion, so blacks are neither clipped or too pale." @@ -18316,25 +18947,25 @@ "反転前であるため、黒はクリップしておらず、また淡すぎでもありません" #. WB shadows -#: ../src/iop/negadoctor.c:903 +#: ../src/iop/negadoctor.c:922 msgctxt "section" msgid "shadows color cast" msgstr "シャドウの色かぶり" -#: ../src/iop/negadoctor.c:909 +#: ../src/iop/negadoctor.c:928 msgid "select color of shadows from a swatch" msgstr "色見本からシャドーの色を選択してください" -#: ../src/iop/negadoctor.c:914 +#: ../src/iop/negadoctor.c:933 msgid "pick shadows color from image" msgstr "画像からシャドーの色を抽出" -#: ../src/iop/negadoctor.c:920 +#: ../src/iop/negadoctor.c:939 msgid "shadows red offset" msgstr "シャドウ 赤 オフセット" -#: ../src/iop/negadoctor.c:921 ../src/iop/negadoctor.c:928 -#: ../src/iop/negadoctor.c:935 +#: ../src/iop/negadoctor.c:940 ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:954 msgid "" "correct the color cast in shadows so blacks are\n" "truly achromatic. Setting this value before\n" @@ -18345,34 +18976,34 @@ "ハイライトのイルミナントのホワイトバランスより前にこの値を設定すると、\n" "困難なケースにおいて、画像全体のホワイトバランスを回復しやすくなります" -#: ../src/iop/negadoctor.c:927 +#: ../src/iop/negadoctor.c:946 msgid "shadows green offset" msgstr "シャドウ 緑 オフセット" -#: ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:953 msgid "shadows blue offset" msgstr "シャドウ 青 オフセット" #. WB highlights -#: ../src/iop/negadoctor.c:941 +#: ../src/iop/negadoctor.c:960 msgctxt "section" msgid "highlights white balance" msgstr "ハイライト ホワイトバランス" -#: ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:966 msgid "select color of illuminant from a swatch" msgstr "色見本からイルミナントの色を選択してください" -#: ../src/iop/negadoctor.c:952 +#: ../src/iop/negadoctor.c:971 msgid "pick illuminant color from image" msgstr "画像からイルミナントの色を抽出" -#: ../src/iop/negadoctor.c:958 +#: ../src/iop/negadoctor.c:977 msgid "illuminant red gain" msgstr "イルミナント 赤 ゲイン" -#: ../src/iop/negadoctor.c:959 ../src/iop/negadoctor.c:966 -#: ../src/iop/negadoctor.c:973 +#: ../src/iop/negadoctor.c:978 ../src/iop/negadoctor.c:985 +#: ../src/iop/negadoctor.c:992 msgid "" "correct the color of the illuminant so whites are\n" "truly achromatic. Setting this value after\n" @@ -18383,26 +19014,26 @@ "シャドウの色かぶりの後にこの値を設定すると、\n" "困難なケースにおいて、画像全体のホワイトバランスを回復しやすくなります" -#: ../src/iop/negadoctor.c:965 +#: ../src/iop/negadoctor.c:984 msgid "illuminant green gain" msgstr "イルミナント 緑 ゲイン" -#: ../src/iop/negadoctor.c:972 +#: ../src/iop/negadoctor.c:991 msgid "illuminant blue gain" msgstr "イルミナント青 ゲイン" #. Page PRINT PROPERTIES -#: ../src/iop/negadoctor.c:979 +#: ../src/iop/negadoctor.c:998 msgid "print properties" msgstr "印刷プロパティ" #. print corrections -#: ../src/iop/negadoctor.c:982 +#: ../src/iop/negadoctor.c:1001 msgctxt "section" msgid "virtual paper properties" msgstr "仮想の印画紙のプロパティ" -#: ../src/iop/negadoctor.c:988 +#: ../src/iop/negadoctor.c:1007 msgid "" "correct the density of black after the inversion,\n" "to adjust the global contrast while avoiding clipping shadows." @@ -18410,7 +19041,7 @@ "反転後の黒の濃度を補正して、\n" "シャドウのクリッピングを防ぎながら、全体のコントラストを調整します" -#: ../src/iop/negadoctor.c:993 +#: ../src/iop/negadoctor.c:1012 msgid "" "select the grade of the virtual paper, which is actually\n" "equivalent to applying a gamma. it compensates the film D max\n" @@ -18420,7 +19051,7 @@ "フィルムの最大濃度を補正し、コントラストを回復します\n" "最大濃度が高い場合には高い号数を使用してください" -#: ../src/iop/negadoctor.c:1001 +#: ../src/iop/negadoctor.c:1020 msgid "" "gradually compress specular highlights past this value\n" "to avoid clipping while pushing the exposure for mid-tones.\n" @@ -18430,12 +19061,12 @@ "中間トーンの露出を高めてもクリッピングを避けることが出来ます\n" "これはマット紙の性質をある程度再現します" -#: ../src/iop/negadoctor.c:1005 +#: ../src/iop/negadoctor.c:1024 msgctxt "section" msgid "virtual print emulation" msgstr "仮想の印刷のエミュレーション" -#: ../src/iop/negadoctor.c:1012 +#: ../src/iop/negadoctor.c:1031 msgid "" "correct the printing exposure after inversion to adjust\n" "the global contrast and avoid clipping highlights." @@ -18443,51 +19074,83 @@ "反転後の印刷の露出を補正します\n" "全体のコントラストを調整して、ハイライトのクリッピングを防ぎます" -#: ../src/iop/negadoctor.c:1020 +#: ../src/iop/negadoctor.c:1039 msgid "toggle on or off the color controls" msgstr "色のコントロールを切り替えます" -#: ../src/iop/nlmeans.c:84 +#: ../src/iop/nlmeans.c:78 msgid "astrophoto denoise" msgstr "天体写真ノイズ除去" -#: ../src/iop/nlmeans.c:89 +#: ../src/iop/nlmeans.c:83 msgid "denoise (non-local means)" msgstr "ノイズ除去(非局所平均)" -#: ../src/iop/nlmeans.c:94 +#: ../src/iop/nlmeans.c:88 msgid "apply a poisson noise removal best suited for astrophotography" msgstr "天体写真に最適なポアソンノイズ除去を適用します" -#: ../src/iop/nlmeans.c:459 +#: ../src/iop/nlmeans.c:462 msgid "radius of the patches to match" msgstr "マッチするパッチの半径" -#: ../src/iop/nlmeans.c:467 +#: ../src/iop/nlmeans.c:470 msgid "how much to smooth brightness" msgstr "明るさ(ブライトネス)の平滑化の度合い" -#: ../src/iop/nlmeans.c:470 +#: ../src/iop/nlmeans.c:473 msgid "how much to smooth colors" msgstr "色の平滑化の度合い" #. * let's fill the encapsulating widgets #. preview mode #. color scheme -#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2419 -#: ../src/views/darkroom.c:2437 ../src/views/darkroom.c:2444 -#: ../src/views/darkroom.c:2454 ../src/views/darkroom.c:2471 +#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2258 +#: ../src/views/darkroom.c:2276 ../src/views/darkroom.c:2283 +#: ../src/views/darkroom.c:2293 ../src/views/darkroom.c:2310 msgid "overexposed" msgstr "露出過多" -#: ../src/iop/overexposed.c:130 ../src/iop/overexposed.c:360 +#: ../src/iop/overexposed.c:123 ../src/iop/overexposed.c:352 msgid "module overexposed failed in buffer allocation" msgstr "モジュール露出過多がバッファの割り当てに失敗しました" -#: ../src/iop/overexposed.c:156 ../src/iop/overexposed.c:370 +#: ../src/iop/overexposed.c:149 ../src/iop/overexposed.c:362 msgid "module overexposed failed in color conversion" msgstr "モジュール露出過多が色変換に失敗しました" +#: ../src/iop/primaries.c:74 +msgid "rgb primaries" +msgstr "RGBプライマリ" + +#: ../src/iop/primaries.c:79 +msgid "adjustment of the RGB color primaries for color grading" +msgstr "カラーグレーディングのためのRGBカラープライマリの調整" + +#: ../src/iop/primaries.c:395 +msgid "shift red towards yellow or magenta" +msgstr "赤を黃またはマゼンタへずらす" + +#: ../src/iop/primaries.c:396 +msgid "red primary purity" +msgstr "赤のプライマリの純度" + +#: ../src/iop/primaries.c:397 +msgid "shift green towards cyan or yellow" +msgstr "緑をシアンまたは黄へずらす" + +#: ../src/iop/primaries.c:398 +msgid "green primary purity" +msgstr "緑のプライマリの純度" + +#: ../src/iop/primaries.c:399 +msgid "shift blue towards magenta or cyan" +msgstr "青をマゼンタまたはシアンへずらす" + +#: ../src/iop/primaries.c:400 +msgid "blue primary purity" +msgstr "青のプライマリの純度" + #: ../src/iop/profile_gamma.c:96 msgid "unbreak input profile" msgstr "入力プロファイルの修復" @@ -18497,39 +19160,39 @@ msgstr "" "ノンリニアRGBに適用されるよう意図された入力カラープロファイルを修正します" -#: ../src/iop/profile_gamma.c:136 +#: ../src/iop/profile_gamma.c:138 msgid "16 EV dynamic range (generic)" msgstr "16EVダイナミックレンジ(汎用)" -#: ../src/iop/profile_gamma.c:142 +#: ../src/iop/profile_gamma.c:144 msgid "14 EV dynamic range (generic)" msgstr "14EVダイナミックレンジ(汎用)" -#: ../src/iop/profile_gamma.c:148 +#: ../src/iop/profile_gamma.c:150 msgid "12 EV dynamic range (generic)" msgstr "12EVダイナミックレンジ(汎用)" -#: ../src/iop/profile_gamma.c:154 +#: ../src/iop/profile_gamma.c:156 msgid "10 EV dynamic range (generic)" msgstr "10EVダイナミックレンジ(汎用)" -#: ../src/iop/profile_gamma.c:160 +#: ../src/iop/profile_gamma.c:162 msgid "08 EV dynamic range (generic)" msgstr "08EVダイナミックレンジ(汎用)" -#: ../src/iop/profile_gamma.c:623 +#: ../src/iop/profile_gamma.c:637 msgid "linear part" msgstr "リニア部分" -#: ../src/iop/profile_gamma.c:627 +#: ../src/iop/profile_gamma.c:641 msgid "gamma exponential factor" msgstr "ガンマの指数因子" -#: ../src/iop/profile_gamma.c:638 +#: ../src/iop/profile_gamma.c:652 msgid "adjust to match the average luma of the subject" msgstr "被写体の平均輝度(ルーマ)に一致するように調整してください" -#: ../src/iop/profile_gamma.c:644 +#: ../src/iop/profile_gamma.c:658 msgid "" "number of stops between middle gray and pure black\n" "this is a reading a light meter would give you on the scene" @@ -18537,7 +19200,7 @@ "ミドルグレーと純粋な黒の間の段数\n" "撮影現場で露出計が示すであろう数値と同じものです" -#: ../src/iop/profile_gamma.c:650 +#: ../src/iop/profile_gamma.c:664 msgid "" "number of stops between pure black and pure white\n" "this is a reading a light meter would give you on the scene" @@ -18545,36 +19208,36 @@ "純粋な黒と純粋な白の間の段数\n" "撮影現場で露出計が示すであろう数値と同じものです" -#: ../src/iop/profile_gamma.c:652 +#: ../src/iop/profile_gamma.c:666 msgctxt "section" msgid "optimize automatically" msgstr "自動最適化" -#: ../src/iop/profile_gamma.c:656 +#: ../src/iop/profile_gamma.c:670 msgid "" -"enlarge or shrink the computed dynamic range\n" -"this is useful when noise perturbates the measurements" +"increase or decrease the computed dynamic range\n" +"this is useful when noise distorts the measurement" msgstr "" "算出されたダイナミックレンジを拡大または縮小します\n" "ノイズが測定を妨げる場合に有用です" -#: ../src/iop/profile_gamma.c:660 +#: ../src/iop/profile_gamma.c:674 msgid "make an optimization with some guessing" msgstr "推測をもとに最適化します" -#: ../src/iop/profile_gamma.c:669 +#: ../src/iop/profile_gamma.c:683 msgid "tone mapping method" msgstr "トーンマッピングの方式" -#: ../src/iop/rawdenoise.c:124 +#: ../src/iop/rawdenoise.c:138 msgid "raw denoise" msgstr "RAWノイズ除去" -#: ../src/iop/rawdenoise.c:129 +#: ../src/iop/rawdenoise.c:143 msgid "denoise the raw picture early in the pipeline" msgstr "パイプラインの早い段階でRAW画像のノイズを除去します" -#: ../src/iop/rawdenoise.c:939 +#: ../src/iop/rawdenoise.c:955 msgid "" "raw denoising\n" "only works for raw images." @@ -18584,9 +19247,9 @@ #. * let's fill the encapsulating widgets #. mode of operation -#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2387 ../src/views/darkroom.c:2393 -#: ../src/views/darkroom.c:2406 +#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2226 ../src/views/darkroom.c:2232 +#: ../src/views/darkroom.c:2245 msgid "raw overexposed" msgstr "RAW露出過多" @@ -18595,7 +19258,7 @@ msgid "raw black/white point" msgstr "RAWブラック/ホワイトポイント" -#: ../src/iop/rawprepare.c:156 +#: ../src/iop/rawprepare.c:172 msgid "" "sets technical specificities of the raw sensor.\n" "touch with great care!" @@ -18603,67 +19266,67 @@ "センサーの技術的特性を設定します\n" "注意して変更してください" -#: ../src/iop/rawprepare.c:168 +#: ../src/iop/rawprepare.c:184 msgid "passthrough" msgstr "パススルー" -#: ../src/iop/rawprepare.c:655 +#: ../src/iop/rawprepare.c:663 msgid "invalid crop parameters" msgstr "無効なトリミングのパラメータ" -#: ../src/iop/rawprepare.c:656 +#: ../src/iop/rawprepare.c:664 msgid "" "please reset to defaults, update your preset or set to something correct" msgstr "" "リセットしてデフォルト設定に戻すか、プリセットを更新するか、正しい設定にして" "ください" -#: ../src/iop/rawprepare.c:922 +#: ../src/iop/rawprepare.c:930 msgid "black level 0" msgstr "黒レベル 0" -#: ../src/iop/rawprepare.c:923 +#: ../src/iop/rawprepare.c:931 msgid "black level 1" msgstr "黒レベル 1" -#: ../src/iop/rawprepare.c:924 +#: ../src/iop/rawprepare.c:932 msgid "black level 2" msgstr "黒レベル 2" -#: ../src/iop/rawprepare.c:925 +#: ../src/iop/rawprepare.c:933 msgid "black level 3" msgstr "黒レベル 3" -#: ../src/iop/rawprepare.c:952 +#: ../src/iop/rawprepare.c:960 msgid "raw flat field correction to compensate for lens shading" msgstr "" "rawフラットフィールド補正によって、レンズによって引き起こされた周辺減光を補正" "します" -#: ../src/iop/rawprepare.c:957 +#: ../src/iop/rawprepare.c:965 msgctxt "section" msgid "crop" msgstr "トリミング" -#: ../src/iop/rawprepare.c:960 +#: ../src/iop/rawprepare.c:968 msgid "crop left border" msgstr "左縁をトリミング" -#: ../src/iop/rawprepare.c:964 +#: ../src/iop/rawprepare.c:972 msgid "crop top border" msgstr "上縁をトリミング" -#: ../src/iop/rawprepare.c:968 +#: ../src/iop/rawprepare.c:976 msgid "crop right border" msgstr "右縁をトリミング" -#: ../src/iop/rawprepare.c:972 +#: ../src/iop/rawprepare.c:980 msgid "crop bottom border" msgstr "下縁をトリミング" # RAW ブラック/ホワイトポイント補正 # 処理が必要なセンサーでのみ作動します -#: ../src/iop/rawprepare.c:981 +#: ../src/iop/rawprepare.c:989 msgid "" "raw black/white point correction\n" "only works for the sensors that need it." @@ -18690,11 +19353,11 @@ "このモジュールは非推奨です\n" "代わりにトーンイコライザーモジュールを使用してください" -#: ../src/iop/relight.c:263 +#: ../src/iop/relight.c:259 msgid "the fill-light in EV" msgstr "フィルライト 単位はEV" -#: ../src/iop/relight.c:272 +#: ../src/iop/relight.c:268 msgid "" "select the center of fill-light\n" "ctrl+click to select an area" @@ -18702,16 +19365,11 @@ "フィルライトの中心を選択します\n" "Ctrl+clickで領域を選択します" -#: ../src/iop/relight.c:276 +#: ../src/iop/relight.c:272 msgid "toggle tool for picking median lightness in image" msgstr "画像の明度の中間値を抽出するツールを切り替える" -#: ../src/iop/relight.c:279 ../src/libs/export.c:1131 -#: ../src/libs/metadata_view.c:147 ../src/libs/print_settings.c:2537 -msgid "width" -msgstr "幅" - -#: ../src/iop/relight.c:280 +#: ../src/iop/relight.c:276 msgid "width of fill-light area defined in zones" msgstr "ゾーンで定義されたフィルライトの領域の幅" @@ -18733,29 +19391,29 @@ msgid "geometric and frequential, RGB" msgstr "幾何学的および周波数的、RGB" -#: ../src/iop/retouch.c:1538 +#: ../src/iop/retouch.c:1689 msgid "cannot display scales when the blending mask is displayed" msgstr "ブレンドマスクが表示されていると、スケールを表示することが出来ません" -#: ../src/iop/retouch.c:1861 ../src/iop/retouch.c:1863 -#: ../src/iop/retouch.c:1865 ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2045 ../src/iop/retouch.c:2047 +#: ../src/iop/retouch.c:2049 ../src/iop/retouch.c:2051 #, c-format msgid "default tool changed to %s" msgstr "デフォルトで使用するツールを%sに変更しました" -#: ../src/iop/retouch.c:1861 +#: ../src/iop/retouch.c:2045 msgid "cloning" msgstr "クローン" -#: ../src/iop/retouch.c:1863 +#: ../src/iop/retouch.c:2047 msgid "healing" msgstr "修復" -#: ../src/iop/retouch.c:2226 +#: ../src/iop/retouch.c:2448 msgid "shapes:" msgstr "シェイプ:" -#: ../src/iop/retouch.c:2230 +#: ../src/iop/retouch.c:2454 msgid "" "to add a shape select an algorithm and a shape type and click on the image.\n" "shapes are added to the current scale" @@ -18764,78 +19422,74 @@ "クします\n" "シェイプは選択中のスケールに追加されます" -#. display & suppress masks -#. copy/paste shapes -#. display final image/current scale -#. auto-levels button -#: ../src/iop/retouch.c:2233 ../src/iop/retouch.c:2334 -#: ../src/iop/retouch.c:2339 ../src/iop/retouch.c:2347 -#: ../src/iop/retouch.c:2351 ../src/iop/retouch.c:2358 -#: ../src/iop/retouch.c:2392 +#: ../src/iop/retouch.c:2458 ../src/iop/retouch.c:2591 +#: ../src/iop/retouch.c:2597 ../src/iop/retouch.c:2606 +#: ../src/iop/retouch.c:2611 ../src/iop/retouch.c:2619 +#: ../src/iop/retouch.c:2664 msgid "editing" msgstr "編集" -#: ../src/iop/retouch.c:2233 +#: ../src/iop/retouch.c:2459 msgid "show and edit shapes on the current scale" msgstr "選択中のスケール上にあるシェイプの表示・編集" -#: ../src/iop/retouch.c:2234 +#: ../src/iop/retouch.c:2460 msgid "show and edit shapes in restricted mode" msgstr "制限モードでシェイプを表示・編集" -#: ../src/iop/retouch.c:2257 +#: ../src/iop/retouch.c:2489 msgid "algorithms:" msgstr "アルゴリズム:" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2498 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2510 msgid "tools" msgstr "ツール" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2278 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2518 msgid "activate blur tool" msgstr "ぼかしツールの有効化" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2493 ../src/iop/retouch.c:2499 +#: ../src/iop/retouch.c:2505 ../src/iop/retouch.c:2511 msgid "change algorithm for current form" msgstr "選択中のシェープのアルゴリズムを変更します" -#: ../src/iop/retouch.c:2264 ../src/iop/retouch.c:2281 +#: ../src/iop/retouch.c:2498 ../src/iop/retouch.c:2521 msgid "activate fill tool" msgstr "塗りつぶしツールの有効化" -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2284 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2524 msgid "activate cloning tool" msgstr "クローンツールの有効化" -#: ../src/iop/retouch.c:2272 ../src/iop/retouch.c:2287 +#: ../src/iop/retouch.c:2510 ../src/iop/retouch.c:2527 msgid "activate healing tool" msgstr "修復ツールの有効化" # Ctrlキーを押しながらクリックして、選択しているシェイプに用いるツールを変更します #. overwrite tooltip ourself to handle shift+click -#: ../src/iop/retouch.c:2276 +#: ../src/iop/retouch.c:2516 msgid "ctrl+click to change tool for current form" msgstr "Ctrl+クリックすると、選択中のシェイプで使用するツールを変更します" -#: ../src/iop/retouch.c:2277 +#: ../src/iop/retouch.c:2517 msgid "shift+click to set the tool as default" msgstr "Shift+クリックすると、選択したツールをデフォルトに設定します" -#: ../src/iop/retouch.c:2296 +#: ../src/iop/retouch.c:2537 msgid "scales:" msgstr "スケール:" -#: ../src/iop/retouch.c:2301 +#: ../src/iop/retouch.c:2544 msgid "current:" msgstr "現在のスケール:" -#: ../src/iop/retouch.c:2306 +#: ../src/iop/retouch.c:2551 msgid "merge from:" msgstr "ここから統合:" -#: ../src/iop/retouch.c:2314 +#: ../src/iop/retouch.c:2562 msgid "" "top slider adjusts where the merge scales start\n" "bottom slider adjusts the number of scales\n" @@ -18849,44 +19503,44 @@ "上の線は現在のズームレベルで見ることの出来るスケールを示します\n" "下の線は、スケールにシェイプがあることを示します" -#: ../src/iop/retouch.c:2334 +#: ../src/iop/retouch.c:2591 msgid "display masks" msgstr "マスクを表示" -#: ../src/iop/retouch.c:2339 +#: ../src/iop/retouch.c:2597 msgid "temporarily switch off shapes" msgstr "シェイプを一時的にオフ" -#: ../src/iop/retouch.c:2347 +#: ../src/iop/retouch.c:2606 msgid "paste cut shapes to current scale" msgstr "切り取られたシェイプを現在のスケールに貼り付け" -#: ../src/iop/retouch.c:2351 +#: ../src/iop/retouch.c:2611 msgid "cut shapes from current scale" msgstr "選択中のスケールからシェイプを切り取り" -#: ../src/iop/retouch.c:2358 +#: ../src/iop/retouch.c:2619 msgid "display wavelet scale" msgstr "ウェーブレットスケールを表示" -#: ../src/iop/retouch.c:2366 +#: ../src/iop/retouch.c:2627 msgctxt "section" msgid "preview single scale" msgstr "単一のスケールのプレビュー" -#: ../src/iop/retouch.c:2377 +#: ../src/iop/retouch.c:2641 msgid "adjust preview levels" msgstr "プレビューのレベルを調整します" -#: ../src/iop/retouch.c:2392 ../src/iop/rgblevels.c:1051 +#: ../src/iop/retouch.c:2664 ../src/iop/rgblevels.c:1106 msgid "auto levels" msgstr "レベルの自動設定" -#: ../src/iop/retouch.c:2400 +#: ../src/iop/retouch.c:2672 msgid "shape selected:" msgstr "選択中のシェイプ:" -#: ../src/iop/retouch.c:2405 +#: ../src/iop/retouch.c:2678 msgid "" "click on a shape to select it,\n" "to unselect click on an empty space" @@ -18894,62 +19548,62 @@ "シェイプ上でクリックすると、シェイプを選択します\n" "シェイプのない箇所でクリックすると、選択を解除します" -#: ../src/iop/retouch.c:2412 +#: ../src/iop/retouch.c:2687 msgid "erase the detail or fills with chosen color" msgstr "ディテールを消去するか、選択した色で塗りつぶします" -#: ../src/iop/retouch.c:2419 +#: ../src/iop/retouch.c:2697 msgid "fill color: " msgstr "塗りつぶしの色:" -#: ../src/iop/retouch.c:2424 ../src/iop/retouch.c:2425 +#: ../src/iop/retouch.c:2702 ../src/iop/retouch.c:2703 msgid "select fill color" msgstr "塗りつぶしの色を選択してください" -#: ../src/iop/retouch.c:2430 +#: ../src/iop/retouch.c:2713 msgid "pick fill color from image" msgstr "画像から塗りつぶしの色を抽出してください" -#: ../src/iop/retouch.c:2431 +#: ../src/iop/retouch.c:2714 msgid "pick fill color" msgstr "塗りつぶしの色を抽出" -#: ../src/iop/retouch.c:2439 +#: ../src/iop/retouch.c:2724 msgid "adjusts color brightness to fine-tune it. works with erase as well" msgstr "" "色の明るさ(ブライトネス)を調整します\n" "消去モードでも動作します" -#: ../src/iop/retouch.c:2445 +#: ../src/iop/retouch.c:2730 msgid "type for the blur algorithm" msgstr "ぼかしのアルゴリズムの種類" -#: ../src/iop/retouch.c:2449 +#: ../src/iop/retouch.c:2734 msgid "radius of the selected blur type" msgstr "選択したぼかしのタイプの半径" -#: ../src/iop/retouch.c:2455 +#: ../src/iop/retouch.c:2741 msgid "set the opacity on the selected shape" msgstr "選択したシェイプの不透明度を設定します" -#: ../src/iop/retouch.c:2461 +#: ../src/iop/retouch.c:2748 msgctxt "section" msgid "retouch tools" msgstr "レタッチツール" #. wavelet decompose -#: ../src/iop/retouch.c:2470 +#: ../src/iop/retouch.c:2757 msgctxt "section" msgid "wavelet decompose" msgstr "ウェーブレット分解" #. shapes -#: ../src/iop/retouch.c:2484 +#: ../src/iop/retouch.c:2771 msgctxt "section" msgid "shapes" msgstr "シェイプ" -#: ../src/iop/retouch.c:3589 ../src/iop/retouch.c:4427 +#: ../src/iop/retouch.c:3986 ../src/iop/retouch.c:4956 #, c-format msgid "max scale is %i for this image size" msgstr "この画像サイズで使用できる最大のスケールは%iです" @@ -18958,60 +19612,60 @@ msgid "rgb curve" msgstr "RGBカーブ" -#: ../src/iop/rgbcurve.c:142 +#: ../src/iop/rgbcurve.c:144 msgid "alter an image’s tones using curves in RGB color space" msgstr "RGB色空間のカーブを使用して画像のトーンを変更します" -#: ../src/iop/rgbcurve.c:193 ../src/iop/tonecurve.c:548 +#: ../src/iop/rgbcurve.c:195 ../src/iop/tonecurve.c:569 msgid "gamma 1.0 (linear)" msgstr "ガンマ1.0(リニア)" -#: ../src/iop/rgbcurve.c:203 ../src/iop/tonecurve.c:558 +#: ../src/iop/rgbcurve.c:205 ../src/iop/tonecurve.c:579 msgid "contrast - med (linear)" msgstr "コントラスト - 中(リニア)" -#: ../src/iop/rgbcurve.c:212 ../src/iop/tonecurve.c:567 +#: ../src/iop/rgbcurve.c:214 ../src/iop/tonecurve.c:588 msgid "contrast - high (linear)" msgstr "コントラスト - 高 (リニア)" -#: ../src/iop/rgbcurve.c:226 ../src/iop/tonecurve.c:579 +#: ../src/iop/rgbcurve.c:228 ../src/iop/tonecurve.c:600 msgid "contrast - med (gamma 2.2)" msgstr "コントラスト - 中(ガンマ2.2)" -#: ../src/iop/rgbcurve.c:239 ../src/iop/tonecurve.c:590 +#: ../src/iop/rgbcurve.c:241 ../src/iop/tonecurve.c:611 msgid "contrast - high (gamma 2.2)" msgstr "コントラスト - 高(ガンマ2.2)" -#: ../src/iop/rgbcurve.c:252 ../src/iop/tonecurve.c:603 +#: ../src/iop/rgbcurve.c:254 ../src/iop/tonecurve.c:624 msgid "gamma 2.0" msgstr "ガンマ2.0" -#: ../src/iop/rgbcurve.c:258 ../src/iop/tonecurve.c:609 +#: ../src/iop/rgbcurve.c:260 ../src/iop/tonecurve.c:630 msgid "gamma 0.5" msgstr "ガンマ0.5" -#: ../src/iop/rgbcurve.c:263 ../src/iop/tonecurve.c:614 +#: ../src/iop/rgbcurve.c:265 ../src/iop/tonecurve.c:635 msgid "logarithm (base 2)" msgstr "対数(底 2)" -#: ../src/iop/rgbcurve.c:268 ../src/iop/tonecurve.c:619 +#: ../src/iop/rgbcurve.c:270 ../src/iop/tonecurve.c:640 msgid "exponential (base 2)" msgstr "指数(底 2)" # チャンネルをリンクさせるか、または独立させるか選択します -#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:999 +#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:1038 msgid "choose between linked and independent channels." msgstr "各チャンネルを連動させるか独立させるか選択します" -#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1003 +#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1043 msgid "curve nodes for r channel" msgstr "赤チャンネルのカーブノード" -#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1004 +#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1044 msgid "curve nodes for g channel" msgstr "緑チャンネルのカーブノード" -#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1005 +#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1045 msgid "curve nodes for b channel" msgstr "青チャンネルのカーブノード" @@ -19020,17 +19674,17 @@ msgstr "RGBレベル" # RGB色空間でブラック、ホワイト、中間グレーポイントを調整します -#: ../src/iop/rgblevels.c:122 +#: ../src/iop/rgblevels.c:124 msgid "adjust black, white and mid-gray points in RGB color space" msgstr "" "RGB色空間でブラックポイント、ホワイトポイント、およびミドルグレーポイントを調" "整します" -#: ../src/iop/rgblevels.c:1056 +#: ../src/iop/rgblevels.c:1112 msgid "auto region" msgstr "領域の自動設定" -#: ../src/iop/rgblevels.c:1058 +#: ../src/iop/rgblevels.c:1115 msgid "" "apply auto levels based on a region defined by the user\n" "click and drag to draw the area\n" @@ -19045,7 +19699,7 @@ msgid "rotate pixels" msgstr "ピクセルの回転" -#: ../src/iop/rotatepixels.c:97 ../src/iop/scalepixels.c:82 +#: ../src/iop/rotatepixels.c:99 ../src/iop/scalepixels.c:84 msgid "" "internal module to setup technical specificities of raw sensor.\n" "\n" @@ -19055,11 +19709,11 @@ "\n" "値を変更しないでください!" -#: ../src/iop/rotatepixels.c:366 +#: ../src/iop/rotatepixels.c:381 msgid "automatic pixel rotation" msgstr "ピクセルの自動回転" -#: ../src/iop/rotatepixels.c:367 +#: ../src/iop/rotatepixels.c:382 msgid "" "automatic pixel rotation\n" "only works for the sensors that need it." @@ -19072,11 +19726,11 @@ msgid "scale pixels" msgstr "ピクセルのスケール調整" -#: ../src/iop/scalepixels.c:271 +#: ../src/iop/scalepixels.c:281 msgid "automatic pixel scaling" msgstr "ピクセルの自動スケール調整" -#: ../src/iop/scalepixels.c:272 +#: ../src/iop/scalepixels.c:282 msgid "" "automatic pixel scaling\n" "only works for the sensors that need it." @@ -19084,11 +19738,11 @@ "ピクセルのスケールの自動調整\n" "処理が必要なセンサーに対してのみ動作します" -#: ../src/iop/shadhi.c:175 +#: ../src/iop/shadhi.c:120 msgid "shadows and highlights" msgstr "シャドウとハイライト" -#: ../src/iop/shadhi.c:195 +#: ../src/iop/shadhi.c:142 msgid "" "modify the tonal range of the shadows and highlights\n" "of an image by enhancing local contrast." @@ -19096,29 +19750,29 @@ "局所的なコントラストを強化して、\n" "画像のシャドウとハイライトの階調の範囲を変更します" -#: ../src/iop/shadhi.c:676 ../src/iop/splittoning.c:548 +#: ../src/iop/shadhi.c:711 ../src/iop/splittoning.c:544 msgid "compress" msgstr "圧縮" -#: ../src/iop/shadhi.c:683 +#: ../src/iop/shadhi.c:718 msgid "correct shadows" msgstr "シャドウを補正します" -#: ../src/iop/shadhi.c:684 +#: ../src/iop/shadhi.c:719 msgid "correct highlights" msgstr "ハイライトを補正します" -#: ../src/iop/shadhi.c:685 +#: ../src/iop/shadhi.c:720 msgid "shift white point" msgstr "ホワイトポイントをずらします" -#: ../src/iop/shadhi.c:687 +#: ../src/iop/shadhi.c:722 msgid "filter to use for softening. bilateral avoids halos" msgstr "" "ソフト化に使用するフィルタ\n" "バイラテラルを用いると、ハロを防ぐことが出来ます" -#: ../src/iop/shadhi.c:688 +#: ../src/iop/shadhi.c:723 msgid "" "compress the effect on shadows/highlights and\n" "preserve mid-tones" @@ -19126,11 +19780,11 @@ "シャドウとハイライトにおける効果を圧縮し、\n" "中間トーンを保持します" -#: ../src/iop/shadhi.c:689 +#: ../src/iop/shadhi.c:724 msgid "adjust saturation of shadows" msgstr "シャドウの彩度を調整します" -#: ../src/iop/shadhi.c:690 +#: ../src/iop/shadhi.c:725 msgid "adjust saturation of highlights" msgstr "ハイライトの彩度を調整します" @@ -19139,46 +19793,46 @@ msgid "sharpen" msgstr "シャープ化" -#: ../src/iop/sharpen.c:93 +#: ../src/iop/sharpen.c:95 msgid "sharpen the details in the image using a standard UnSharp Mask (USM)" msgstr "" "標準的なアンシャープマスク(USM)を用いて、画像のディテールをシャープにします" -#: ../src/iop/sharpen.c:95 +#: ../src/iop/sharpen.c:97 msgid "linear or non-linear, Lab, display or scene-referred" msgstr "リニアあるいはノンリニア、Lab、ディスプレイ参照またはシーン参照" -#: ../src/iop/sharpen.c:97 +#: ../src/iop/sharpen.c:99 msgid "quasi-linear, Lab, display or scene-referred" msgstr "擬似リニア、Lab、ディスプレイ参照あるいはシーン参照" #. add the preset. #. restrict to raw images -#: ../src/iop/sharpen.c:104 ../src/iop/sharpen.c:108 +#: ../src/iop/sharpen.c:106 ../src/iop/sharpen.c:110 msgid "sharpen" msgstr "シャープ化" -#: ../src/iop/sharpen.c:443 +#: ../src/iop/sharpen.c:438 msgid "spatial extent of the unblurring" msgstr "ぼかしの除去の空間的広がり" -#: ../src/iop/sharpen.c:447 +#: ../src/iop/sharpen.c:442 msgid "strength of the sharpen" msgstr "シャープ化の強さ" -#: ../src/iop/sharpen.c:451 +#: ../src/iop/sharpen.c:446 msgid "threshold to activate sharpen" msgstr "シャープ化を有効にするしきい値" -#: ../src/iop/sigmoid.c:89 +#: ../src/iop/sigmoid.c:195 msgid "sigmoid" msgstr "シグモイド" -#: ../src/iop/sigmoid.c:94 +#: ../src/iop/sigmoid.c:200 msgid "tone mapping|view transform|display transform" msgstr "トーンマッピング|ビュー変換|ディスプレイ変換" -#: ../src/iop/sigmoid.c:99 +#: ../src/iop/sigmoid.c:206 msgid "" "apply a view transform to make a image displayable\n" "on a screen or print. uses a robust and smooth\n" @@ -19187,19 +19841,19 @@ "ビュー変換を適用して画像をスクリーンや印刷物上に表示出来るようにします\n" "任意の色保存方法と堅固かつ滑らかなトーンカーブを用います" -#: ../src/iop/sigmoid.c:155 +#: ../src/iop/sigmoid.c:258 msgid "neutral gray" msgstr "ニュートラルグレー" -#: ../src/iop/sigmoid.c:160 +#: ../src/iop/sigmoid.c:264 msgid "ACES 100-nit like" msgstr "ACES100ニット風" -#: ../src/iop/sigmoid.c:165 +#: ../src/iop/sigmoid.c:270 msgid "Reinhard" msgstr "ラインハルト" -#: ../src/iop/sigmoid.c:683 +#: ../src/iop/sigmoid.c:917 msgid "" "compression of the applied curve\n" "implicitly defines the supported input dynamic range" @@ -19207,7 +19861,7 @@ "適用されたカーブの圧縮\n" "サポートされる入力ダイナミックレンジを暗に定義します" -#: ../src/iop/sigmoid.c:686 +#: ../src/iop/sigmoid.c:920 msgid "" "shift the compression towards shadows or highlights.\n" "negative values increase contrast in shadows.\n" @@ -19219,21 +19873,61 @@ "正の値にすると、ハイライトのコントラストが強まります\n" "反対側のコントラストは弱まります" -#: ../src/iop/sigmoid.c:695 +#: ../src/iop/sigmoid.c:929 msgid "" "optional correction of the hue twist introduced by\n" "the per-channel processing method." msgstr "チャンネル毎の処理によって引き起こされる色相のねじれの補正" -#: ../src/iop/sigmoid.c:702 +#: ../src/iop/sigmoid.c:936 ../src/iop/sigmoid.c:940 +msgid "primaries" +msgstr "プライマリ" + +#: ../src/iop/sigmoid.c:937 +msgid "set custom primaries" +msgstr "プライマリをカスタム設定します" + +#: ../src/iop/sigmoid.c:943 +msgid "primaries to use as the base for below adjustments" +msgstr "以下の調整のためのベースとして使用するプライマリ" + +#: ../src/iop/sigmoid.c:962 +msgid "attenuate the purity of the red primary" +msgstr "赤のプライマリの純度を減衰させます" + +#: ../src/iop/sigmoid.c:963 +msgid "rotate the red primary" +msgstr "赤のプライマリを回転する" + +#: ../src/iop/sigmoid.c:964 +msgid "attenuate the purity of the green primary" +msgstr "緑のプライマリの純度を減衰させます" + +#: ../src/iop/sigmoid.c:965 +msgid "rotate the green primary" +msgstr "緑のプライマリを回転する" + +#: ../src/iop/sigmoid.c:966 +msgid "attenuate the purity of the blue primary" +msgstr "青のプライマリの純度を減衰させます" + +#: ../src/iop/sigmoid.c:967 +msgid "rotate the blue primary" +msgstr "青のプライマリを回転する" + +#: ../src/iop/sigmoid.c:974 +msgid "recover some of the original purity after the inset" +msgstr "差し込み後に元の純度を幾らか回復する" + +#: ../src/iop/sigmoid.c:978 msgid "display luminance" msgstr "ディスプレイ輝度" -#: ../src/iop/sigmoid.c:706 +#: ../src/iop/sigmoid.c:979 msgid "set display black/white targets" msgstr "ディスプレイの黒/白のターゲットを設定します" -#: ../src/iop/sigmoid.c:714 +#: ../src/iop/sigmoid.c:987 msgid "" "the black luminance of the target display or print.\n" "can be used creatively for a faded look." @@ -19241,7 +19935,7 @@ "ターゲットとするディスプレイまたは印刷の黒の輝度\n" "これを用いて色褪せたルックを作ることも出来ます" -#: ../src/iop/sigmoid.c:719 +#: ../src/iop/sigmoid.c:992 msgid "" "the white luminance of the target display or print.\n" "can be used creatively for a faded look or blowing out whites earlier." @@ -19253,23 +19947,23 @@ msgid "soften" msgstr "ソフト化" -#: ../src/iop/soften.c:100 +#: ../src/iop/soften.c:102 msgid "create a softened image using the Orton effect" msgstr "オートン効果を用いて画像をソフトにします" -#: ../src/iop/soften.c:371 +#: ../src/iop/soften.c:366 msgid "the size of blur" msgstr "ぼかしのサイズ" -#: ../src/iop/soften.c:375 +#: ../src/iop/soften.c:370 msgid "the saturation of blur" msgstr "ぼかしの彩度" -#: ../src/iop/soften.c:379 +#: ../src/iop/soften.c:374 msgid "the brightness of blur" msgstr "ぼかしの明るさ(ブライトネス)" -#: ../src/iop/soften.c:383 +#: ../src/iop/soften.c:378 msgid "the mix of effect" msgstr "効果のミックス" @@ -19277,7 +19971,7 @@ msgid "split-toning" msgstr "スプリットトーン" -#: ../src/iop/splittoning.c:101 +#: ../src/iop/splittoning.c:103 msgid "" "use two specific colors for shadows and highlights and\n" "create a linear toning effect between them up to a pivot." @@ -19285,49 +19979,49 @@ "2つの特定の色をシャドウとハイライトに用いて、\n" "一点の軸を中心に両者の間でリニアなトーンを形成する効果を生み出します" -#: ../src/iop/splittoning.c:118 +#: ../src/iop/splittoning.c:120 msgid "authentic sepia" msgstr "セピア" -#: ../src/iop/splittoning.c:127 +#: ../src/iop/splittoning.c:129 msgid "authentic cyanotype" msgstr "青写真" -#: ../src/iop/splittoning.c:136 +#: ../src/iop/splittoning.c:138 msgid "authentic platinotype" msgstr "プラチナプリント" -#: ../src/iop/splittoning.c:145 +#: ../src/iop/splittoning.c:147 msgid "chocolate brown" msgstr "チョコレートブラウン" -#: ../src/iop/splittoning.c:490 +#: ../src/iop/splittoning.c:486 msgid "select the saturation tone" msgstr "彩度のトーンを選択してください" -#: ../src/iop/splittoning.c:494 +#: ../src/iop/splittoning.c:490 msgid "select tone color" msgstr "トーンの色を選択してください" -#: ../src/iop/splittoning.c:524 +#: ../src/iop/splittoning.c:520 msgctxt "section" msgid "shadows" msgstr "シャドウ" -#: ../src/iop/splittoning.c:530 +#: ../src/iop/splittoning.c:526 msgctxt "section" msgid "highlights" msgstr "ハイライト" -#: ../src/iop/splittoning.c:539 +#: ../src/iop/splittoning.c:535 msgid "balance" msgstr "バランス" -#: ../src/iop/splittoning.c:546 +#: ../src/iop/splittoning.c:542 msgid "the balance of center of split-toning" msgstr "スプリットトーンの中心のバランス" -#: ../src/iop/splittoning.c:550 +#: ../src/iop/splittoning.c:546 msgid "" "compress the effect on highlights/shadows and\n" "preserve mid-tones" @@ -19353,17 +20047,17 @@ msgid "geometric, raw" msgstr "幾何学的、RAW" -#: ../src/iop/spots.c:226 +#: ../src/iop/spots.c:238 msgid "spot module is limited to 64 shapes. please add a new instance!" msgstr "" "スポットモジュールのシェイプは64個に制限されています\n" "新しいインスタンスを追加してください!" -#: ../src/iop/spots.c:872 +#: ../src/iop/spots.c:874 msgid "number of strokes:" msgstr "ストロークの数:" -#: ../src/iop/spots.c:876 +#: ../src/iop/spots.c:878 msgid "" "click on a shape and drag on canvas.\n" "use the mouse wheel to adjust size.\n" @@ -19373,129 +20067,117 @@ "マウスホイールでサイズを調節します\n" "右クリックすると、シェイプを削除します" -#: ../src/iop/spots.c:879 +#: ../src/iop/spots.c:881 msgid "show and edit shapes" msgstr "シェイプの表示・編集" -#: ../src/iop/temperature.c:204 +#: ../src/iop/temperature.c:212 msgctxt "modulename" msgid "white balance" msgstr "ホワイトバランス" -#: ../src/iop/temperature.c:211 +#: ../src/iop/temperature.c:219 msgid "scale raw RGB channels to balance white and help demosaicing" msgstr "RAWのRGBチャネルを調整して、白のバランスを取り、デモザイクを助けます" -#: ../src/iop/temperature.c:1149 -msgid "white balance applied twice" -msgstr "ホワイトバランスが2度適用されています" - -#: ../src/iop/temperature.c:1150 -msgid "" -"the color calibration module is enabled,\n" -"and performing chromatic adaptation.\n" -"set the white balance here to camera reference (D65)\n" -"or disable chromatic adaptation in color calibration." -msgstr "" -"カラーキャリブレーションモジュールが有効になっていて、色順応を実行していま" -"す\n" -"ここでホワイトバランスをカメラのリファレンス値(D65)に設定するか、\n" -"カラーキャリブレーションの色順応を無効にしてください" - -#: ../src/iop/temperature.c:1430 +#: ../src/iop/temperature.c:1388 #, c-format msgid "`%s' color matrix not found for image" msgstr "`%s'画像のカラーマトリクスが見つかりませんでした" -#: ../src/iop/temperature.c:1459 +#: ../src/iop/temperature.c:1418 #, c-format msgid "failed to read camera white balance information from `%s'!" msgstr "" "`%s'のカメラで設定したホワイトバランス情報を読み取ることが出来ませんでした!" -#: ../src/iop/temperature.c:1631 +#: ../src/iop/temperature.c:1612 msgctxt "white balance" msgid "as shot" msgstr "撮影時の設定" #. old "spot", reason: describes exactly what'll happen -#: ../src/iop/temperature.c:1634 +#: ../src/iop/temperature.c:1615 msgctxt "white balance" msgid "from image area" msgstr "画像の領域から設定" -#: ../src/iop/temperature.c:1635 +#: ../src/iop/temperature.c:1616 msgctxt "white balance" msgid "user modified" msgstr "ユーザーによる修正" #. old "camera neutral", reason: better matches intent -#: ../src/iop/temperature.c:1637 +#: ../src/iop/temperature.c:1618 msgctxt "white balance" msgid "camera reference" msgstr "カメラのリファレンス値" -#: ../src/iop/temperature.c:1920 ../src/iop/temperature.c:1938 +#: ../src/iop/temperature.c:1897 ../src/iop/temperature.c:1915 msgid "green channel coefficient" msgstr "緑チャンネルの係数" -#: ../src/iop/temperature.c:1922 +#: ../src/iop/temperature.c:1899 msgid "magenta channel coefficient" msgstr "マゼンタチャンネルの係数" -#: ../src/iop/temperature.c:1924 +#: ../src/iop/temperature.c:1901 msgid "cyan channel coefficient" msgstr "シアンチャンネルの係数" -#: ../src/iop/temperature.c:1926 +#: ../src/iop/temperature.c:1903 msgid "yellow channel coefficient" msgstr "黄色チャンネルの係数" -#: ../src/iop/temperature.c:1936 +#: ../src/iop/temperature.c:1913 msgid "red channel coefficient" msgstr "赤チャンネルの係数" -#: ../src/iop/temperature.c:1940 +#: ../src/iop/temperature.c:1917 msgid "blue channel coefficient" msgstr "青チャンネルの係数" -#: ../src/iop/temperature.c:1942 +#: ../src/iop/temperature.c:1918 +msgid "emerald" +msgstr "エメラルド" + +#: ../src/iop/temperature.c:1919 msgid "emerald channel coefficient" msgstr "エメラルドチャンネルの係数" #. relabel to settings to remove confusion between module presets #. and white balance settings -#: ../src/iop/temperature.c:2029 ../src/iop/temperature.c:2042 -#: ../src/iop/temperature.c:2049 ../src/iop/temperature.c:2055 -#: ../src/iop/temperature.c:2074 +#: ../src/iop/temperature.c:1997 ../src/iop/temperature.c:2010 +#: ../src/iop/temperature.c:2017 ../src/iop/temperature.c:2023 +#: ../src/iop/temperature.c:2042 msgid "settings" msgstr "設定" -#: ../src/iop/temperature.c:2029 +#: ../src/iop/temperature.c:1997 msgid "as shot" msgstr "撮影時の設定" -#: ../src/iop/temperature.c:2032 +#: ../src/iop/temperature.c:2000 msgid "set white balance to as shot" msgstr "撮影時のホワイトバランス設定" -#: ../src/iop/temperature.c:2042 +#: ../src/iop/temperature.c:2010 msgid "from image area" msgstr "画像内の領域から検出" -#: ../src/iop/temperature.c:2049 +#: ../src/iop/temperature.c:2017 msgid "user modified" msgstr "ユーザーによる修正" -#: ../src/iop/temperature.c:2052 +#: ../src/iop/temperature.c:2020 msgid "set white balance to user modified" msgstr "ユーザーが修正したホワイトバランス" -#: ../src/iop/temperature.c:2055 +#: ../src/iop/temperature.c:2023 msgid "camera reference" msgstr "カメラのリファレンス値" -#: ../src/iop/temperature.c:2060 +#: ../src/iop/temperature.c:2028 msgid "" "set white balance to camera reference point\n" "in most cases it should be D65" @@ -19503,58 +20185,62 @@ "カメラのリファレンス値にホワイトバランスを設定\n" "ほとんどの場合D65であるはずです" -#: ../src/iop/temperature.c:2075 +#: ../src/iop/temperature.c:2043 msgid "choose white balance setting" msgstr "ホワイトバランスの設定を選択してください" -#: ../src/iop/temperature.c:2080 +#: ../src/iop/temperature.c:2048 msgid "finetune" msgstr "微調整" -#: ../src/iop/temperature.c:2082 +#: ../src/iop/temperature.c:2050 msgid "fine tune camera's white balance setting" msgstr "撮影時にカメラで設定したホワイトバランスを微調整する" -#: ../src/iop/temperature.c:2093 +#: ../src/iop/temperature.c:2058 msgctxt "section" msgid "scene illuminant temp" msgstr "シーンのイルミナントの温度" -#: ../src/iop/temperature.c:2094 +#: ../src/iop/temperature.c:2059 msgid "click to cycle color mode on sliders" msgstr "クリックすると、スライダーの色のモードを切り替えます" -#: ../src/iop/temperature.c:2108 +#: ../src/iop/temperature.c:2073 msgid "color temperature (in Kelvin)" msgstr "色温度(ケルビン)" -#: ../src/iop/temperature.c:2114 +#: ../src/iop/temperature.c:2079 msgid "tint" msgstr "ティント" -#: ../src/iop/temperature.c:2117 +#: ../src/iop/temperature.c:2082 msgid "color tint of the image, from magenta (value < 1) to green (value > 1)" msgstr "" "画像の色味\n" "マゼンタ(値< 1)から緑(値> 1)" -#: ../src/iop/temperature.c:2123 +#: ../src/iop/temperature.c:2088 msgid "channel coefficients" msgstr "チャンネルの係数" -#: ../src/iop/temperature.c:2158 +#: ../src/iop/temperature.c:2097 +msgid "various" +msgstr "複数" + +#: ../src/iop/temperature.c:2123 msgid "white balance disabled for camera" msgstr "カメラによるホワイトバランス設定を無効にします" -#: ../src/iop/tonecurve.c:190 +#: ../src/iop/tonecurve.c:161 msgid "tone curve" msgstr "トーンカーブ" -#: ../src/iop/tonecurve.c:210 +#: ../src/iop/tonecurve.c:183 msgid "alter an image’s tones using curves" msgstr "カーブを使って画像のトーンを変更します" -#: ../src/iop/tonecurve.c:1125 +#: ../src/iop/tonecurve.c:1147 msgid "" "if set to auto, a and b curves have no effect and are not displayed. chroma " "values (a and b) of each pixel are then adjusted based on L curve data. auto " @@ -19565,118 +20251,110 @@ "はこれと似ていますが、XYZ空間における彩度(サチュレーション)の変更を適用しま" "す" -#: ../src/iop/tonecurve.c:1134 +#: ../src/iop/tonecurve.c:1156 msgid "tonecurve for L channel" msgstr "Lチャンネルのトーンカーブ" -#: ../src/iop/tonecurve.c:1135 +#: ../src/iop/tonecurve.c:1157 msgid "tonecurve for a channel" msgstr "aチャンネルのトーンカーブ" -#: ../src/iop/tonecurve.c:1136 +#: ../src/iop/tonecurve.c:1158 msgid "tonecurve for b channel" msgstr "bチャンネルのトーンカーブ" -#: ../src/iop/tonecurve.c:1143 ../src/iop/watermark.c:1305 -#: ../src/libs/colorpicker.c:597 +#: ../src/iop/tonecurve.c:1165 ../src/iop/watermark.c:1353 +#: ../src/libs/colorpicker.c:675 msgid "pick color" msgstr "色を抽出" -#: ../src/iop/toneequal.c:311 +#: ../src/iop/toneequal.c:319 msgid "tone equalizer" msgstr "トーンイコライザー" -#: ../src/iop/toneequal.c:316 +#: ../src/iop/toneequal.c:324 msgid "tone curve|tone mapping|relight|background light|shadows highlights" msgstr "トーンカーブ|トーンマッピング|再照明|背景の照明|シャドウとハイライト" -#: ../src/iop/toneequal.c:323 +#: ../src/iop/toneequal.c:331 msgid "relight the scene as if the lighting was done directly on the scene" msgstr "撮影現場で行われたかのように、照明を変更します" -#: ../src/iop/toneequal.c:326 +#: ../src/iop/toneequal.c:334 msgid "quasi-linear, RGB" msgstr "疑似リニア RGB" -#: ../src/iop/toneequal.c:327 +#: ../src/iop/toneequal.c:335 msgid "quasi-linear, RGB, scene-referred" msgstr "疑似リニア、RGB、シーン参照" -#: ../src/iop/toneequal.c:458 +#: ../src/iop/toneequal.c:489 msgid "simple tone curve" msgstr "単純なトーンカーブ" -#: ../src/iop/toneequal.c:472 +#: ../src/iop/toneequal.c:503 msgid "mask blending: all purposes" msgstr "マスクブレンド:汎用" -#: ../src/iop/toneequal.c:479 +#: ../src/iop/toneequal.c:510 msgid "mask blending: people with backlight" msgstr "マスクブレンド:逆光内の人物" -#: ../src/iop/toneequal.c:496 +#: ../src/iop/toneequal.c:527 msgid "compress shadows/highlights (EIGF): strong" msgstr "シャドウとハイライトの圧縮 (EIGF):強" -#: ../src/iop/toneequal.c:501 +#: ../src/iop/toneequal.c:532 msgid "compress shadows/highlights (GF): strong" msgstr "シャドウとハイライトの圧縮 (GF):強" -#: ../src/iop/toneequal.c:510 +#: ../src/iop/toneequal.c:541 msgid "compress shadows/highlights (EIGF): medium" msgstr "シャドウとハイライトの圧縮 (EIGF):中" -#: ../src/iop/toneequal.c:515 +#: ../src/iop/toneequal.c:546 msgid "compress shadows/highlights (GF): medium" msgstr "シャドウとハイライトの圧縮 (GF):中" -#: ../src/iop/toneequal.c:524 +#: ../src/iop/toneequal.c:555 msgid "compress shadows/highlights (EIGF): soft" msgstr "シャドウとハイライトの圧縮 (EIGF):弱" -#: ../src/iop/toneequal.c:529 +#: ../src/iop/toneequal.c:560 msgid "compress shadows/highlights (GF): soft" msgstr "シャドウとハイライトの圧縮 (GF):弱" -#: ../src/iop/toneequal.c:537 +#: ../src/iop/toneequal.c:568 msgid "contrast tone curve: soft" msgstr "コントラストトーンカーブ:弱" -#: ../src/iop/toneequal.c:542 +#: ../src/iop/toneequal.c:573 msgid "contrast tone curve: medium" msgstr "コントラストトーンカーブ:中" -#: ../src/iop/toneequal.c:547 +#: ../src/iop/toneequal.c:578 msgid "contrast tone curve: strong" msgstr "コントラストトーンカーブ:強" -#: ../src/iop/toneequal.c:570 +#: ../src/iop/toneequal.c:601 msgid "relight: fill-in" msgstr "再照明:フィルイン" -#: ../src/iop/toneequal.c:627 -msgid "" -"tone equalizer needs to be after distortion modules in the pipeline – " -"disabled" -msgstr "" -"トーンイコライザーはパイプライン内で歪曲モジュールの後でなければなりません。" -"無効にしました" - -#: ../src/iop/toneequal.c:1091 +#: ../src/iop/toneequal.c:1120 msgid "tone equalizer failed to allocate memory, check your RAM settings" msgstr "" "トーンイコライザーがメモリの割り当てに失敗しました。RAMの設定を確認してくださ" "い" -#: ../src/iop/toneequal.c:1795 ../src/iop/toneequal.c:2180 +#: ../src/iop/toneequal.c:1825 ../src/iop/toneequal.c:2196 msgid "the interpolation is unstable, decrease the curve smoothing" msgstr "補間が不安定です。カーブの平滑化を弱めてください" -#: ../src/iop/toneequal.c:1830 ../src/iop/toneequal.c:1897 +#: ../src/iop/toneequal.c:1860 ../src/iop/toneequal.c:1927 msgid "wait for the preview to finish recomputing" msgstr "プレビューが再計算を終えるまでお待ちください" -#: ../src/iop/toneequal.c:2037 ../src/iop/toneequal.c:2587 +#: ../src/iop/toneequal.c:2069 ../src/iop/toneequal.c:2628 msgid "" "scroll over image to change tone exposure\n" "shift+scroll for large steps; ctrl+scroll for small steps" @@ -19684,89 +20362,89 @@ "画像上でスクロールしてトーンの露出を変更します\n" "Shift+スクロールで大きなステップ  Ctrl+スクロールで小さなステップ" -#: ../src/iop/toneequal.c:2185 +#: ../src/iop/toneequal.c:2201 msgid "some parameters are out-of-bounds" msgstr "一部のパラメーターが範囲を逸脱しています" -#: ../src/iop/toneequal.c:2524 +#: ../src/iop/toneequal.c:2518 #, c-format msgid "%+.1f EV" msgstr "%+.1f EV" -#: ../src/iop/toneequal.c:3236 +#: ../src/iop/toneequal.c:3283 #, c-format msgid "[%s over image] change tone exposure" msgstr "【画像上で%s】トーンの露出を変更する" -#: ../src/iop/toneequal.c:3239 +#: ../src/iop/toneequal.c:3286 #, c-format msgid "[%s over image] change tone exposure in large steps" msgstr "【画像上で%s】トーンの露出を大きなステップで変更する" -#: ../src/iop/toneequal.c:3242 +#: ../src/iop/toneequal.c:3289 #, c-format msgid "[%s over image] change tone exposure in small steps" msgstr "【画像上で%s】トーンの露出を小さなステップで変更する" #. Simple view -#: ../src/iop/toneequal.c:3323 ../src/iop/toneequal.c:3352 -#: ../src/iop/toneequal.c:3353 ../src/iop/toneequal.c:3354 -#: ../src/iop/toneequal.c:3355 ../src/iop/toneequal.c:3356 -#: ../src/iop/toneequal.c:3357 ../src/iop/toneequal.c:3358 -#: ../src/iop/toneequal.c:3359 ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3376 ../src/iop/toneequal.c:3405 +#: ../src/iop/toneequal.c:3406 ../src/iop/toneequal.c:3407 +#: ../src/iop/toneequal.c:3408 ../src/iop/toneequal.c:3409 +#: ../src/iop/toneequal.c:3410 ../src/iop/toneequal.c:3411 +#: ../src/iop/toneequal.c:3412 ../src/iop/toneequal.c:3413 msgid "simple" msgstr "シンプル" -#: ../src/iop/toneequal.c:3352 +#: ../src/iop/toneequal.c:3405 msgid "-8 EV" msgstr "-8 EV" -#: ../src/iop/toneequal.c:3353 +#: ../src/iop/toneequal.c:3406 msgid "-7 EV" msgstr "-7 EV" -#: ../src/iop/toneequal.c:3354 +#: ../src/iop/toneequal.c:3407 msgid "-6 EV" msgstr "-6 EV" -#: ../src/iop/toneequal.c:3355 +#: ../src/iop/toneequal.c:3408 msgid "-5 EV" msgstr "-5 EV" -#: ../src/iop/toneequal.c:3356 +#: ../src/iop/toneequal.c:3409 msgid "-4 EV" msgstr "-4 EV" -#: ../src/iop/toneequal.c:3357 +#: ../src/iop/toneequal.c:3410 msgid "-3 EV" msgstr "-3 EV" -#: ../src/iop/toneequal.c:3358 +#: ../src/iop/toneequal.c:3411 msgid "-2 EV" msgstr "-2 EV" -#: ../src/iop/toneequal.c:3359 +#: ../src/iop/toneequal.c:3412 msgid "-1 EV" msgstr "-1 EV" -#: ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3413 msgid "+0 EV" msgstr "+0 EV" #. Advanced view -#: ../src/iop/toneequal.c:3364 +#: ../src/iop/toneequal.c:3417 msgid "advanced" msgstr "高度" -#: ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3444 msgid "double-click to reset the curve" msgstr "ダブルクリックすると、カーブをリセットします" -#: ../src/iop/toneequal.c:3395 +#: ../src/iop/toneequal.c:3448 msgid "curve smoothing" msgstr "カーブの平滑化" -#: ../src/iop/toneequal.c:3398 +#: ../src/iop/toneequal.c:3451 msgid "" "positive values will produce more progressive tone transitions\n" "but the curve might become oscillatory in some settings.\n" @@ -19779,11 +20457,11 @@ "所的なコントラストを損なう可能性があります" #. Masking options -#: ../src/iop/toneequal.c:3408 +#: ../src/iop/toneequal.c:3461 msgid "masking" msgstr "マスク" -#: ../src/iop/toneequal.c:3413 +#: ../src/iop/toneequal.c:3466 msgid "" "preview the mask and chose the estimator that gives you the\n" "higher contrast between areas to dodge and areas to burn" @@ -19792,15 +20470,15 @@ "覆い焼きする領域と焼き込む領域の間のコントラストが高くなる評価方式を選択して" "ください" -#: ../src/iop/toneequal.c:3416 +#: ../src/iop/toneequal.c:3469 msgid "details" msgstr "ディテール" -#: ../src/iop/toneequal.c:3417 +#: ../src/iop/toneequal.c:3470 msgid "preserve details" msgstr "ディテール保持" -#: ../src/iop/toneequal.c:3420 +#: ../src/iop/toneequal.c:3473 msgid "" "'no' affects global and local contrast (safe if you only add contrast)\n" "'guided filter' only affects global contrast and tries to preserve local " @@ -19823,7 +20501,7 @@ "ガイデットフィルタと対照的です)\n" "'平均EIGF'は'なし'と'EIGF'の幾何平均です" -#: ../src/iop/toneequal.c:3433 +#: ../src/iop/toneequal.c:3486 msgid "" "number of passes of guided filter to apply\n" "helps diffusing the edges of the filter at the expense of speed" @@ -19831,7 +20509,7 @@ "適用するガイデットフィルタのパスの数\n" "速度を犠牲にして、フィルタのエッジを拡散するのに役立ちます" -#: ../src/iop/toneequal.c:3441 +#: ../src/iop/toneequal.c:3494 msgid "" "diameter of the blur in percent of the largest image size\n" "warning: big values of this parameter can make the darkroom\n" @@ -19842,7 +20520,7 @@ "大きいと、\n" "ダークルームでのプレビューが大幅に遅くなる可能性があります" -#: ../src/iop/toneequal.c:3449 +#: ../src/iop/toneequal.c:3502 msgid "" "precision of the feathering:\n" "higher values force the mask to follow edges more closely\n" @@ -19856,12 +20534,12 @@ "値を下げると、グラデーションが滑らかになり、平滑化が向上しますが、エッジ部の" "重なりが不正確になり、また、ハロが生まれる可能性があります" -#: ../src/iop/toneequal.c:3456 +#: ../src/iop/toneequal.c:3509 msgctxt "section" msgid "mask post-processing" msgstr "マスクの後処理" -#: ../src/iop/toneequal.c:3467 +#: ../src/iop/toneequal.c:3520 msgid "" "mask histogram span between the first and last deciles.\n" "the central line shows the average. orange bars appear at extrema if " @@ -19871,7 +20549,7 @@ "中心線は平均を示しています\n" "クリッピングが発生すると、極値にオレンジ色のバーが表示されます" -#: ../src/iop/toneequal.c:3475 +#: ../src/iop/toneequal.c:3528 msgid "" "0 disables the quantization.\n" "higher values posterize the luminance mask to help the guiding\n" @@ -19882,7 +20560,7 @@ "高い境界ぼかしの値を用いた時に、ガイドが区分的平滑領域を生み出しやすくなりま" "す" -#: ../src/iop/toneequal.c:3484 +#: ../src/iop/toneequal.c:3537 msgid "" "use this to slide the mask average exposure along channels\n" "for a better control of the exposure correction with the available nodes.\n" @@ -19892,7 +20570,7 @@ "利用可能なノードによる露出補正のコントロールが向上します\n" "魔法の杖は平均露出を自動的に設定します" -#: ../src/iop/toneequal.c:3497 +#: ../src/iop/toneequal.c:3550 msgid "" "use this to counter the averaging effect of the guided filter\n" "and dilate the mask contrast around -4EV\n" @@ -19906,7 +20584,7 @@ "ロールが向上します\n" "魔法の杖は平均露出を自動的に設定します" -#: ../src/iop/toneequal.c:3520 ../src/iop/toneequal.c:3523 +#: ../src/iop/toneequal.c:3573 ../src/iop/toneequal.c:3576 msgid "display exposure mask" msgstr "露出マスクを表示" @@ -19923,22 +20601,22 @@ "代わりにローカルコントラストモジュールかトーンイコライザーモジュールを使用し" "てください" -#: ../src/iop/velvia.c:79 +#: ../src/iop/velvia.c:70 msgid "velvia" msgstr "ベルビア" -#: ../src/iop/velvia.c:104 +#: ../src/iop/velvia.c:97 msgid "" "resaturate giving more weight to blacks, whites and low-saturation pixels" msgstr "" "色の彩度を上げます\n" "黒や白、低彩度のピクセルに重きを置いて作用します" -#: ../src/iop/velvia.c:281 +#: ../src/iop/velvia.c:290 msgid "the strength of saturation boost" msgstr "彩度のブーストの強さ" -#: ../src/iop/velvia.c:284 +#: ../src/iop/velvia.c:293 msgid "how much to spare highlights and shadows" msgstr "どれほどハイライトとシャドウへの作用を抑えるか" @@ -19951,7 +20629,7 @@ "代わりにカラーバランスRGBモジュールの【自然な彩度(バイブランス)】スライダー" "を使用してください" -#: ../src/iop/vibrance.c:93 +#: ../src/iop/vibrance.c:95 msgid "" "saturate and reduce the lightness of the most saturated pixels\n" "to make the colors more vivid." @@ -19959,56 +20637,52 @@ "彩度を上げ、彩度の最も高いピクセルの明度を下げることで、\n" "色をよりビビットにします" -#: ../src/iop/vibrance.c:217 +#: ../src/iop/vibrance.c:211 msgid "the amount of vibrance" msgstr "自然な彩度の量" -#: ../src/iop/vignette.c:153 -msgid "vignetting" -msgstr "ビネット" - -#: ../src/iop/vignette.c:158 +#: ../src/iop/vignette.c:119 msgid "simulate a lens fall-off close to edges" msgstr "レンズの周辺減光をシミュレートします" -#: ../src/iop/vignette.c:940 +#: ../src/iop/vignette.c:1022 msgid "lomo" msgstr "lomo" -#: ../src/iop/vignette.c:974 +#: ../src/iop/vignette.c:1061 msgctxt "section" msgid "position / form" msgstr "位置/形" -#: ../src/iop/vignette.c:981 +#: ../src/iop/vignette.c:1069 msgid "dithering" msgstr "ディザリング" -#: ../src/iop/vignette.c:992 +#: ../src/iop/vignette.c:1081 msgid "the radii scale of vignette for start of fall-off" msgstr "ビネットの半径のスケール(減光のはじまり)" -#: ../src/iop/vignette.c:993 +#: ../src/iop/vignette.c:1083 msgid "the radii scale of vignette for end of fall-off" msgstr "ビネットの半径のスケール(減光の終わり)" -#: ../src/iop/vignette.c:994 +#: ../src/iop/vignette.c:1084 msgid "strength of effect on brightness" msgstr "明るさ(ブライトネス)に及ぼす効果の強さ" -#: ../src/iop/vignette.c:995 +#: ../src/iop/vignette.c:1085 msgid "strength of effect on saturation" msgstr "彩度に及ぼす効果の強さ" -#: ../src/iop/vignette.c:996 +#: ../src/iop/vignette.c:1086 msgid "horizontal offset of center of the effect" msgstr "効果の中心の水平位置" -#: ../src/iop/vignette.c:997 +#: ../src/iop/vignette.c:1087 msgid "vertical offset of center of the effect" msgstr "効果の中心の垂直位置" -#: ../src/iop/vignette.c:998 +#: ../src/iop/vignette.c:1090 msgid "" "shape factor\n" "0 produces a rectangle\n" @@ -20020,58 +20694,58 @@ "1に設定すると円または楕円\n" "2に設定すると菱形" -#: ../src/iop/vignette.c:1000 +#: ../src/iop/vignette.c:1094 msgid "enable to have the ratio automatically follow the image size" msgstr "有効にすると、比率を自動的に画像のサイズに合わせます" -#: ../src/iop/vignette.c:1001 +#: ../src/iop/vignette.c:1095 msgid "width-to-height ratio" msgstr "幅対高さの比" -#: ../src/iop/vignette.c:1002 +#: ../src/iop/vignette.c:1097 msgid "add some level of random noise to prevent banding" msgstr "バンディングを防ぐために不規則なノイズを追加します" -#: ../src/iop/vignette.c:1009 +#: ../src/iop/vignette.c:1105 #, c-format msgid "[%s on node] change vignette/feather size" msgstr "【ノード上で%s】ビネット/境界ぼかしのサイズを変更します" -#: ../src/iop/vignette.c:1011 +#: ../src/iop/vignette.c:1108 #, c-format msgid "[%s on node] change vignette/feather size keeping ratio" msgstr "" "【ノード上で%s】ビネット/境界ぼかしのサイズを、幅対高さの比を保ちながら変更" "します" -#: ../src/iop/vignette.c:1013 +#: ../src/iop/vignette.c:1111 #, c-format msgid "[%s on center] move vignette" msgstr "【中心で%s】ビネットを移動します" -#: ../src/iop/watermark.c:371 +#: ../src/iop/watermark.c:416 msgid "watermark" msgstr "透かし" -#: ../src/iop/watermark.c:376 +#: ../src/iop/watermark.c:421 msgid "overlay an SVG watermark like a signature on the picture" msgstr "SVG形式の透かしを署名のように画像にオーバーレイで入れます" -#: ../src/iop/watermark.c:1258 +#: ../src/iop/watermark.c:1306 msgid "marker" msgstr "マーカー" -#: ../src/iop/watermark.c:1261 +#: ../src/iop/watermark.c:1309 #, c-format msgid "SVG watermarks in %s/watermarks or %s/watermarks" msgstr "%s/watermarksまたは%s/watermarks内のSVG形式の透かし" #. Simple text -#: ../src/iop/watermark.c:1271 ../src/iop/watermark.c:1272 +#: ../src/iop/watermark.c:1319 ../src/iop/watermark.c:1320 msgid "text" msgstr "テキスト" -#: ../src/iop/watermark.c:1273 +#: ../src/iop/watermark.c:1321 msgid "" "text string, tag:\n" "$(WATERMARK_TEXT)" @@ -20080,16 +20754,16 @@ "タグ:\n" "$(WATERMARK_TEXT)" -#: ../src/iop/watermark.c:1275 +#: ../src/iop/watermark.c:1323 msgid "content" msgstr "内容" #. Text font -#: ../src/iop/watermark.c:1280 +#: ../src/iop/watermark.c:1328 msgid "font" msgstr "フォント" -#: ../src/iop/watermark.c:1285 +#: ../src/iop/watermark.c:1333 msgid "" "text font, tags:\n" "$(WATERMARK_FONT_FAMILY)\n" @@ -20102,7 +20776,7 @@ "$(WATERMARK_FONT_STYLE)\n" "$(WATERMARK_FONT_WEIGHT)" -#: ../src/iop/watermark.c:1300 +#: ../src/iop/watermark.c:1348 msgid "" "watermark color, tag:\n" "$(WATERMARK_COLOR)" @@ -20111,29 +20785,31 @@ "タグ:\n" "$(WATERMARK_COLOR)" -#: ../src/iop/watermark.c:1302 +#: ../src/iop/watermark.c:1350 msgid "select watermark color" msgstr "透かしの色を選択してください" -#: ../src/iop/watermark.c:1304 +#: ../src/iop/watermark.c:1352 msgid "pick color from image" msgstr "画像から色を抽出" -#: ../src/iop/watermark.c:1317 +#: ../src/iop/watermark.c:1365 msgctxt "section" msgid "placement" msgstr "位置" -#: ../src/iop/watermark.c:1330 +#: ../src/iop/watermark.c:1378 msgid "" -"scaling is done relative to this object\n" -"• image: fits marker into whole image\n" -"• larger border: fits larger marker border to larger image border\n" -"• smaller border: fits larger marker border to smaller image border\n" -"• height: fits marker height to image height, e.g. suitable for texts\n" -"• advanced options: activates two additional drop-down menus" +"choose how to scale the watermark\n" +"• image: scale watermark relative to whole image\n" +"• larger border: scale larger watermark border relative to larger image " +"border\n" +"• smaller border: scale larger watermark border relative to smaller image " +"border\n" +"• height: scale watermark height to image height\n" +"• advanced options: choose watermark and image dimensions independently" msgstr "" -"スケール調整はこの基準に応じて行われます\n" +"透かしの大きさの割合を決める方法を選んでください\n" "・画像:マーカーを画像全体に合わせます\n" "・長辺:マーカーの長辺を画像の長辺に合わせます\n" "・短辺:マーカーの短辺を画像の短辺に合わせます\n" @@ -20141,28 +20817,28 @@ "す\n" "・詳細オプション:2つのドロップダウンメニューを有効にします" -#: ../src/iop/watermark.c:1339 -msgid "reference to which the marker should be scaled to" -msgstr "マーカーのスケール調整の参照対象" - -#: ../src/iop/watermark.c:1343 -msgid "length of the marker which is used as scaling reference" -msgstr "スケール調整の参照対象として用いられるマーカーの長さ" +#: ../src/iop/watermark.c:1387 +msgid "reference image dimension against which to scale the watermark" +msgstr "透かしのスケール調整で参照する画像の寸法" + +#: ../src/iop/watermark.c:1391 +msgid "watermark dimension to scale" +msgstr "スケール調整する透かしの寸法" -#: ../src/iop/watermark.c:1347 ../src/libs/print_settings.c:2675 +#: ../src/iop/watermark.c:1395 ../src/libs/print_settings.c:2675 msgid "alignment" msgstr "配置" #. Let's add some tooltips and hook up some signals... -#: ../src/iop/watermark.c:1368 +#: ../src/iop/watermark.c:1416 msgid "the opacity of the watermark" msgstr "透かしの不透明度" -#: ../src/iop/watermark.c:1369 +#: ../src/iop/watermark.c:1417 msgid "the scale of the watermark" msgstr "透かしの大きさ" -#: ../src/iop/watermark.c:1370 +#: ../src/iop/watermark.c:1418 msgid "the rotation of the watermark" msgstr "透かしの回転" @@ -20170,7 +20846,7 @@ msgid "zone system" msgstr "ゾーンシステム" -#: ../src/iop/zonesystem.c:490 +#: ../src/iop/zonesystem.c:486 msgid "" "lightness zones\n" "use mouse scrollwheel to change the number of zones\n" @@ -20212,7 +20888,7 @@ msgid "camera control" msgstr "カメラコントロール" -#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2360 +#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2679 msgid "modes" msgstr "モード" @@ -20318,36 +20994,49 @@ msgid "WB" msgstr "ホワイトバランス" -#: ../src/libs/collect.c:151 +#: ../src/libs/collect.c:164 msgid "collections" msgstr "コレクション" -#: ../src/libs/collect.c:407 +#: ../src/libs/collect.c:424 msgid "search filmroll" msgstr "フィルムロールを検索" -#: ../src/libs/collect.c:490 +#: ../src/libs/collect.c:507 #, c-format msgid "problem selecting new path for the filmroll in %s" msgstr "%s内にフィルムロールの新しいパスを選択する際に問題が起こりました" -#: ../src/libs/collect.c:553 +#: ../src/libs/collect.c:579 msgid "search filmroll..." msgstr "フィルムロールを検索..." -#: ../src/libs/collect.c:557 +#: ../src/libs/collect.c:584 msgid "remove..." msgstr "除去..." -#: ../src/libs/collect.c:1225 +#: ../src/libs/collect.c:1310 msgid "uncategorized" msgstr "未分類" -#: ../src/libs/collect.c:2138 +#: ../src/libs/collect.c:2172 ../src/libs/filters/rating_range.c:120 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:151 +#: ../src/libs/filters/rating_range.c:302 +msgid "rejected" +msgstr "除外" + +#: ../src/libs/collect.c:2175 ../src/libs/filters/rating_range.c:122 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:303 +msgid "not rated" +msgstr "評価無し" + +#: ../src/libs/collect.c:2359 msgid "use <, <=, >, >=, <>, =, [;] as operators" msgstr "オペレータとして<, <=, >, >=, <>, =, [;]を使用する" -#: ../src/libs/collect.c:2142 +#: ../src/libs/collect.c:2363 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "star rating: 0-5\n" @@ -20357,7 +21046,7 @@ "評価:0-5\n" "除外された画像:-1" -#: ../src/libs/collect.c:2149 +#: ../src/libs/collect.c:2371 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)" @@ -20365,14 +21054,14 @@ "オペレータとして<, <=, >, >=, <>, =, [;]を使用する\n" "日付を入力してください(年のみ必須):YYYY:MM:DD hh:mm:ss.sss" -#: ../src/libs/collect.c:2156 +#: ../src/libs/collect.c:2378 #, no-c-format msgid "use `%' as wildcard and `,' to separate values" msgstr "" "`%'をワイルドカード文字として使用してください\n" "`,'で値を分離します" -#: ../src/libs/collect.c:2162 +#: ../src/libs/collect.c:2385 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20385,7 +21074,7 @@ "Shift+クリックすると、現在の階層のみを含めます(サフィックスなし)\n" "Ctrl+クリックすると、サブ階層のみを含めます(サフィックスは`|%')" -#: ../src/libs/collect.c:2174 +#: ../src/libs/collect.c:2398 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20399,7 +21088,7 @@ "Shift+クリックすると、現在のロケーションのみを含めます(サフィックスなし)\n" "Ctrl+クリックすると、サブロケーションのみを含めます(サフィックスは`|%')" -#: ../src/libs/collect.c:2186 +#: ../src/libs/collect.c:2411 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20413,111 +21102,103 @@ "Shift+クリックすると、カレントフォルダのみを含めます(サフィックスなし)\n" "Ctrl+クリックすると、サブフォルダのみを含めます(サフィックスは`|%')" -#: ../src/libs/collect.c:2197 +#: ../src/libs/collect.c:2422 #, no-c-format msgid "use `%' as wildcard" msgstr "`%'をワイルドカード文字として使用してください" -#: ../src/libs/collect.c:2263 ../src/libs/collect.c:2277 -#: ../src/libs/collect.c:2800 +#: ../src/libs/collect.c:2488 ../src/libs/collect.c:2502 +#: ../src/libs/collect.c:3111 msgid "clear this rule" msgstr "このルールを削除" -#: ../src/libs/collect.c:2267 +#: ../src/libs/collect.c:2492 msgid "clear this rule or add new rules" msgstr "このルールを削除する、または新しいルールを追加します" -#: ../src/libs/collect.c:2806 +#: ../src/libs/collect.c:3117 msgid "narrow down search" msgstr "検索を絞り込む" -#: ../src/libs/collect.c:2811 +#: ../src/libs/collect.c:3124 msgid "add more images" msgstr "画像を追加" -#: ../src/libs/collect.c:2816 +#: ../src/libs/collect.c:3131 msgid "exclude images" msgstr "画像を除外" -#: ../src/libs/collect.c:2823 +#: ../src/libs/collect.c:3140 msgid "change to: and" msgstr "次に変更します:および" -#: ../src/libs/collect.c:2828 +#: ../src/libs/collect.c:3147 msgid "change to: or" msgstr "次に変更します:または" -#: ../src/libs/collect.c:2833 +#: ../src/libs/collect.c:3154 msgid "change to: except" msgstr "次に変更します:例外は" #. the different categories -#: ../src/libs/collect.c:2859 ../src/libs/filtering.c:857 -#: ../src/libs/filtering.c:924 ../src/libs/filtering.c:1558 -#: ../src/libs/filtering.c:1890 +#: ../src/libs/collect.c:3184 ../src/libs/filtering.c:883 +#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1620 +#: ../src/libs/filtering.c:1964 msgid "files" msgstr "ファイル" -#: ../src/libs/collect.c:2864 ../src/libs/export_metadata.c:312 -#: ../src/libs/filtering.c:862 ../src/libs/filtering.c:929 -#: ../src/libs/filtering.c:1566 ../src/libs/filtering.c:1894 -#: ../src/libs/image.c:464 ../src/libs/image.c:574 ../src/libs/image.c:582 -#: ../src/libs/metadata.c:676 ../src/libs/metadata_view.c:1226 +#: ../src/libs/collect.c:3189 ../src/libs/export_metadata.c:301 +#: ../src/libs/filtering.c:888 ../src/libs/filtering.c:955 +#: ../src/libs/filtering.c:1628 ../src/libs/filtering.c:1968 +#: ../src/libs/image.c:495 ../src/libs/image.c:633 ../src/libs/image.c:645 +#: ../src/libs/metadata.c:509 ../src/libs/metadata_view.c:1256 msgid "metadata" msgstr "メタデータ" -#: ../src/libs/collect.c:2883 ../src/libs/filtering.c:883 -#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1892 +#: ../src/libs/collect.c:3208 ../src/libs/filtering.c:909 +#: ../src/libs/filtering.c:976 ../src/libs/filtering.c:1966 msgid "times" msgstr "日時" -#: ../src/libs/collect.c:2891 ../src/libs/filtering.c:891 -#: ../src/libs/filtering.c:958 ../src/libs/filtering.c:1590 +#: ../src/libs/collect.c:3216 ../src/libs/filtering.c:917 +#: ../src/libs/filtering.c:984 ../src/libs/filtering.c:1652 msgid "capture details" msgstr "細部を撮影" -#: ../src/libs/collect.c:2900 ../src/libs/filtering.c:900 -#: ../src/libs/filtering.c:967 ../src/libs/filtering.c:1602 -#: ../src/libs/filtering.c:1896 ../src/libs/tools/darktable.c:65 +#: ../src/libs/collect.c:3225 ../src/libs/filtering.c:926 +#: ../src/libs/filtering.c:993 ../src/libs/filtering.c:1664 +#: ../src/libs/filtering.c:1970 ../src/libs/tools/darktable.c:61 msgid "darktable" msgstr "darktable" -#: ../src/libs/collect.c:2913 +#: ../src/libs/collect.c:3240 msgid "collections settings" msgstr "コレクション設定" -#: ../src/libs/collect.c:2916 ../src/libs/export_metadata.c:288 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:228 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3472 -msgid "save" -msgstr "保存" - -#: ../src/libs/collect.c:2936 ../src/libs/export.c:1046 -#: ../src/libs/metadata.c:779 ../src/libs/metadata_view.c:1306 -#: ../src/libs/recentcollect.c:293 ../src/libs/tagging.c:3494 +#: ../src/libs/collect.c:3267 ../src/libs/export.c:1126 +#: ../src/libs/metadata.c:615 ../src/libs/metadata_view.c:1339 +#: ../src/libs/recentcollect.c:295 ../src/libs/tagging.c:3526 msgid "preferences..." msgstr "設定" -#: ../src/libs/collect.c:3041 ../src/libs/filtering.c:1432 +#: ../src/libs/collect.c:3388 ../src/libs/filtering.c:1494 msgid "AND" msgstr "および" -#: ../src/libs/collect.c:3046 ../src/libs/filtering.c:1437 +#: ../src/libs/collect.c:3393 ../src/libs/filtering.c:1499 msgid "OR" msgstr "または" #. case DT_LIB_COLLECT_MODE_AND_NOT: -#: ../src/libs/collect.c:3051 ../src/libs/filtering.c:1442 +#: ../src/libs/collect.c:3398 ../src/libs/filtering.c:1504 msgid "BUT NOT" msgstr "のぞく" -#: ../src/libs/collect.c:3223 ../src/libs/filtering.c:2164 +#: ../src/libs/collect.c:3588 ../src/libs/filtering.c:2238 msgid "revert to a previous set of rules" msgstr "以前のルールに戻します" -#: ../src/libs/collect.c:3280 +#: ../src/libs/collect.c:3671 msgid "jump back to previous collection" msgstr "以前のコレクションに戻る" @@ -20541,7 +21222,7 @@ msgid "color picker" msgstr "カラーピッカー" -#: ../src/libs/colorpicker.c:463 +#: ../src/libs/colorpicker.c:513 msgid "" "hover to highlight sample on canvas,\n" "click to lock sample,\n" @@ -20551,23 +21232,23 @@ "クリックすると、サンプルをロックします\n" "右クリックすると、サンプル領域をアクティブなカラーピッカーに読み込みます" -#: ../src/libs/colorpicker.c:561 ../src/libs/colorpicker.c:612 +#: ../src/libs/colorpicker.c:626 ../src/libs/colorpicker.c:693 msgid "click to (un)hide large color patch" msgstr "クリックすると、大きなカラーパッチの表示/非表示を切り替えます" -#: ../src/libs/colorpicker.c:575 +#: ../src/libs/colorpicker.c:649 msgid "statistic" msgstr "統計" -#: ../src/libs/colorpicker.c:576 +#: ../src/libs/colorpicker.c:650 msgid "select which statistic to show" msgstr "表示する統計を選択してください" -#: ../src/libs/colorpicker.c:585 +#: ../src/libs/colorpicker.c:660 msgid "select which color mode to use" msgstr "使用するカラーモードを選択してください" -#: ../src/libs/colorpicker.c:594 +#: ../src/libs/colorpicker.c:671 msgid "" "turn on color picker\n" "ctrl+click or right-click to select an area" @@ -20575,21 +21256,21 @@ "カラーピッカーをオンにします\n" "Ctrl+クリックまたは右クリックすると、領域を選択します" -#: ../src/libs/colorpicker.c:636 +#: ../src/libs/colorpicker.c:722 msgid "add sample" msgstr "サンプルを追加" #. Adding the live samples section -#: ../src/libs/colorpicker.c:640 +#: ../src/libs/colorpicker.c:727 msgctxt "section" msgid "live samples" msgstr "ライブサンプル" -#: ../src/libs/colorpicker.c:648 +#: ../src/libs/colorpicker.c:738 msgid "display samples on image/vectorscope" msgstr "サンプルを画像とベクトルスコープに表示" -#: ../src/libs/colorpicker.c:657 +#: ../src/libs/colorpicker.c:749 msgid "restrict scope to selection" msgstr "選択した色のみスコープに表示" @@ -20601,10 +21282,6 @@ msgid "open sidecar file" msgstr "サイドカーファイルを開いてください" -#: ../src/libs/copy_history.c:149 -msgid "XMP sidecar files" -msgstr "XMPサイドカーファイル" - #: ../src/libs/copy_history.c:166 #, c-format msgid "error loading file '%s'" @@ -20650,7 +21327,7 @@ msgid "choose which modules to paste to the target image(s)" msgstr "画像に貼り付けるモジュールを選択します" -#: ../src/libs/copy_history.c:382 ../src/libs/image.c:588 +#: ../src/libs/copy_history.c:382 ../src/libs/image.c:655 msgid "paste" msgstr "貼り付け" @@ -20676,11 +21353,11 @@ "all selected images" msgstr "選択した画像全ての履歴スタックを破棄します" -#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:847 +#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:851 msgid "how to handle existing history" msgstr "既存の履歴をどう扱うか" -#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:850 +#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:854 msgid "append" msgstr "追加" @@ -20700,89 +21377,96 @@ msgid "write history stack and tags to XMP sidecar files" msgstr "XMPサイドカーファイルに履歴スタックとタグを書き込みます" -#: ../src/libs/duplicate.c:56 +#: ../src/libs/duplicate.c:60 msgid "duplicate manager" msgstr "複製マネージャー" -#: ../src/libs/duplicate.c:401 +#: ../src/libs/duplicate.c:407 msgid "create a 'virgin' duplicate of the image without any development" msgstr "現像していない未編集画像を複製します" -#: ../src/libs/duplicate.c:406 +#: ../src/libs/duplicate.c:412 msgid "create a duplicate of the image with same history stack" msgstr "同じ履歴スタックで画像を複製します" -#. Export button -#: ../src/libs/export.c:153 ../src/libs/export.c:1281 +#: ../src/libs/export.c:160 msgid "export" msgstr "エクスポート" #: ../src/libs/export.c:306 +msgid "invalid format for export selected" +msgstr "選択したエクスポートに無効なフォーマット" + +#: ../src/libs/export.c:311 +msgid "invalid storage for export selected" +msgstr "選択したエクスポートに無効なストレージ" + +#: ../src/libs/export.c:322 msgid "export to disk" msgstr "ディスクにエクスポート" -#: ../src/libs/export.c:485 +#: ../src/libs/export.c:516 #, c-format msgid "which is equal to %s × %s px" msgstr "%s × %s pxと等しい" -#: ../src/libs/export.c:520 +#: ../src/libs/export.c:555 msgctxt "unit" msgid "in" msgstr "in" -#: ../src/libs/export.c:1060 +#: ../src/libs/export.c:1141 msgctxt "section" msgid "storage options" msgstr "ストレージオプション" -#: ../src/libs/export.c:1064 +#: ../src/libs/export.c:1145 msgid "target storage" msgstr "エクスポート先ストレージ" -#: ../src/libs/export.c:1086 +#: ../src/libs/export.c:1171 msgctxt "section" msgid "format options" msgstr "フォーマットオプション" -#: ../src/libs/export.c:1090 +#: ../src/libs/export.c:1175 msgid "file format" msgstr "ファイルフォーマット" -#: ../src/libs/export.c:1107 +#: ../src/libs/export.c:1193 msgctxt "section" msgid "global options" msgstr "全般設定" -#: ../src/libs/export.c:1110 +#: ../src/libs/export.c:1196 msgid "set size" msgstr "サイズ設定" -#: ../src/libs/export.c:1111 +#: ../src/libs/export.c:1197 msgid "choose a method for setting the output size" msgstr "出力サイズ設定の方式を選んでください" -#: ../src/libs/export.c:1114 +#: ../src/libs/export.c:1200 msgid "in pixels (for file)" msgstr "ピクセル(ファイル向け)" -#: ../src/libs/export.c:1115 +#: ../src/libs/export.c:1201 msgid "in cm (for print)" msgstr "cm(印刷向け)" -#: ../src/libs/export.c:1116 +#: ../src/libs/export.c:1202 msgid "in inch (for print)" msgstr "inch(印刷向け)" -#: ../src/libs/export.c:1117 +#: ../src/libs/export.c:1203 msgid "by scale (for file)" msgstr "スケール(印刷向け)" -#: ../src/libs/export.c:1119 +#: ../src/libs/export.c:1206 msgid "print width" msgstr "印刷幅" -#: ../src/libs/export.c:1120 ../src/libs/export.c:1132 +#: ../src/libs/export.c:1208 ../src/libs/export.c:1225 msgid "" "maximum output width limit.\n" "click middle mouse button to reset to 0." @@ -20790,11 +21474,11 @@ "出力の幅の最大値の制限\n" "マウス中央のボタンで0に設定します" -#: ../src/libs/export.c:1123 +#: ../src/libs/export.c:1212 msgid "print height" msgstr "印刷高さ" -#: ../src/libs/export.c:1124 ../src/libs/export.c:1136 +#: ../src/libs/export.c:1214 ../src/libs/export.c:1231 msgid "" "maximum output height limit.\n" "click middle mouse button to reset to 0." @@ -20802,19 +21486,19 @@ "出力の高さの最大値の制限\n" "マウス中央のボタンで0に設定します" -#: ../src/libs/export.c:1128 +#: ../src/libs/export.c:1220 msgid "resolution in dot per inch" msgstr "解像度(インチごとのドット)" -#: ../src/libs/export.c:1148 +#: ../src/libs/export.c:1244 msgid "@" msgstr "@" -#: ../src/libs/export.c:1161 ../src/libs/tools/global_toolbox.c:217 +#: ../src/libs/export.c:1258 ../src/libs/tools/global_toolbox.c:217 msgid "px" msgstr "px" -#: ../src/libs/export.c:1166 +#: ../src/libs/export.c:1266 msgid "" "it can be an integer, decimal number or simple fraction.\n" "zero or empty values are equal to 1.\n" @@ -20824,38 +21508,38 @@ "0あるいは空欄は1と同じです\n" "マウス中央のボタンで0に設定します" -#: ../src/libs/export.c:1185 +#: ../src/libs/export.c:1292 msgid "allow upscaling" msgstr "アップスケーリングを許可" -#: ../src/libs/export.c:1191 +#: ../src/libs/export.c:1301 msgid "high quality resampling" msgstr "高クオリティなリサンプリング" -#: ../src/libs/export.c:1192 +#: ../src/libs/export.c:1302 msgid "do high quality resampling during export" msgstr "エクスポート中に高クオリティなリサンプリングを行います" -#: ../src/libs/export.c:1198 +#: ../src/libs/export.c:1310 msgid "store masks" msgstr "マスクを保存" -#: ../src/libs/export.c:1199 +#: ../src/libs/export.c:1311 msgid "store masks as layers in exported images. only works for some formats." msgstr "" "出力画像にマスクをレイヤーとして保存します\n" "一部のフォーマットでのみ動作します" -#: ../src/libs/export.c:1210 ../src/libs/export.c:1245 +#: ../src/libs/export.c:1322 ../src/libs/export.c:1357 #: ../src/libs/print_settings.c:2777 ../src/libs/print_settings.c:2823 msgid "image settings" msgstr "画像設定" -#: ../src/libs/export.c:1220 ../src/libs/print_settings.c:2811 +#: ../src/libs/export.c:1332 ../src/libs/print_settings.c:2811 msgid "output ICC profiles" msgstr "出力ICCプロファイル" -#: ../src/libs/export.c:1228 +#: ../src/libs/export.c:1340 msgid "" "• perceptual: smoothly moves out-of-gamut colors into gamut, preserving " "gradations,\n" @@ -20889,44 +21573,53 @@ "わせる以外のことをしません。主に色校正のために用います(写真には適していませ" "ん)" -#: ../src/libs/export.c:1255 ../src/libs/print_settings.c:2833 +#: ../src/libs/export.c:1367 ../src/libs/print_settings.c:2833 msgid "style" msgstr "スタイル" -#: ../src/libs/export.c:1258 +#: ../src/libs/export.c:1370 msgid "temporary style to use while exporting" msgstr "エクスポート用に一時的に使用するスタイル" -#: ../src/libs/export.c:1263 ../src/libs/print_settings.c:2876 +#: ../src/libs/export.c:1377 ../src/libs/print_settings.c:2876 msgid "" "whether the style items are appended to the history or replacing the history" msgstr "スタイルの項目を履歴に追加するか、履歴を置き換えます" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "replace history" msgstr "履歴を置き換え" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "append history" msgstr "履歴に追加" -#: ../src/libs/export.c:1282 +#: ../src/libs/export.c:1398 +msgctxt "actionbutton" +msgid "export" +msgstr "エクスポート" + +#: ../src/libs/export.c:1400 msgid "export with current settings" msgstr "現在の設定でエクスポートします" -#: ../src/libs/export_metadata.c:163 +#: ../src/libs/export_metadata.c:148 msgid "select tag" msgstr "タグを選択する" -#: ../src/libs/export_metadata.c:164 -msgid "add" -msgstr "追加する" +#: ../src/libs/export_metadata.c:150 +msgid "_add" +msgstr "_追加" + +#: ../src/libs/export_metadata.c:151 ../src/libs/geotagging.c:811 +msgid "_done" +msgstr "_完了" -#: ../src/libs/export_metadata.c:175 +#: ../src/libs/export_metadata.c:162 msgid "list filter" msgstr "フィルタのリスト" -#: ../src/libs/export_metadata.c:186 +#: ../src/libs/export_metadata.c:173 msgid "" "list of available tags. click 'add' button or double-click on tag to add the " "selected one" @@ -20934,33 +21627,33 @@ "利用可能なタグのリスト。【追加する】ボタンをクリックするか、タグ上でダブルク" "リックして、選択したタグを追加します" -#: ../src/libs/export_metadata.c:287 +#: ../src/libs/export_metadata.c:274 msgid "edit metadata exportation" msgstr "メタデータのエクスポートの編集" -#: ../src/libs/export_metadata.c:304 +#: ../src/libs/export_metadata.c:293 msgid "general settings" msgstr "全般設定" -#: ../src/libs/export_metadata.c:309 +#: ../src/libs/export_metadata.c:298 msgid "EXIF data" msgstr "EXIFデータ" -#: ../src/libs/export_metadata.c:310 +#: ../src/libs/export_metadata.c:299 msgid "export EXIF metadata" msgstr "exifメタデータをエクスポートします" -#: ../src/libs/export_metadata.c:313 +#: ../src/libs/export_metadata.c:302 msgid "export darktable XMP metadata (from metadata editor module)" msgstr "" "darktable XMPメタデータをエクスポートします(メタデータエディタモジュールか" "ら)" -#: ../src/libs/export_metadata.c:323 +#: ../src/libs/export_metadata.c:312 msgid "only embedded" msgstr "埋め込みデータのみ" -#: ../src/libs/export_metadata.c:324 +#: ../src/libs/export_metadata.c:313 msgid "" "per default the interface sends some (limited) metadata beside the image to " "remote storage.\n" @@ -20976,58 +21669,58 @@ "リモートストレージがdarktable XMPメタデータを理解しない場合、代わりに、算出さ" "れたメタデータを使用することが出来ます" -#: ../src/libs/export_metadata.c:330 ../src/libs/image.c:566 +#: ../src/libs/export_metadata.c:319 ../src/libs/image.c:623 msgid "geo tags" msgstr "ジオタグ" -#: ../src/libs/export_metadata.c:331 +#: ../src/libs/export_metadata.c:320 msgid "export geo tags" msgstr "ジオタグをエクスポートします" -#: ../src/libs/export_metadata.c:334 +#: ../src/libs/export_metadata.c:323 msgid "export tags (to Xmp.dc.Subject)" msgstr "(Xmp.dc.Subjectへ)タグをエクスポートします" -#: ../src/libs/export_metadata.c:342 +#: ../src/libs/export_metadata.c:331 msgid "private tags" msgstr "プライベートタグ" -#: ../src/libs/export_metadata.c:343 +#: ../src/libs/export_metadata.c:332 msgid "export private tags" msgstr "プライベートタグをエクスポートします" -#: ../src/libs/export_metadata.c:345 +#: ../src/libs/export_metadata.c:334 msgid "synonyms" msgstr "シノニム" -#: ../src/libs/export_metadata.c:346 +#: ../src/libs/export_metadata.c:335 msgid "export tags synonyms" msgstr "タグのシノニムをエクスポートします" -#: ../src/libs/export_metadata.c:348 +#: ../src/libs/export_metadata.c:337 msgid "omit hierarchy" msgstr "階層を省略" -#: ../src/libs/export_metadata.c:349 +#: ../src/libs/export_metadata.c:338 msgid "" "only the last part of the hierarchical tags is included. can be useful if " "categories are not used" msgstr "" "階層タグの最後の部分のみが含まれます。 カテゴリを使用しない場合に有用です" -#: ../src/libs/export_metadata.c:352 +#: ../src/libs/export_metadata.c:341 msgid "hierarchical tags" msgstr "階層タグ" -#: ../src/libs/export_metadata.c:353 +#: ../src/libs/export_metadata.c:342 msgid "export hierarchical tags (to Xmp.lr.Hierarchical Subject)" msgstr "階層タグを(Xmp.lr.Hierarchical Subjectへ)エクスポートします" -#: ../src/libs/export_metadata.c:355 +#: ../src/libs/export_metadata.c:344 msgid "develop history" msgstr "現像の履歴" -#: ../src/libs/export_metadata.c:356 +#: ../src/libs/export_metadata.c:345 msgid "" "export darktable development data (recovery purpose in case of loss of " "database or XMP file)" @@ -21035,19 +21728,19 @@ "darktableの現像データをエクスポートします(データベースやXMPファイルが失われ" "た場合の復元のため)" -#: ../src/libs/export_metadata.c:363 +#: ../src/libs/export_metadata.c:352 msgid "per metadata settings" msgstr "メタデータごとの設定" -#: ../src/libs/export_metadata.c:376 +#: ../src/libs/export_metadata.c:364 msgid "redefined tag" msgstr "再定義されたタグ" -#: ../src/libs/export_metadata.c:382 +#: ../src/libs/export_metadata.c:370 msgid "formula" msgstr "式" -#: ../src/libs/export_metadata.c:385 +#: ../src/libs/export_metadata.c:373 msgid "" "list of calculated metadata\n" "click on '+' button to select and add new metadata\n" @@ -21071,15 +21764,15 @@ "式セル上でクリックして編集します\n" "$(とタイプすると、入力補完を有効にし、変数のリストを見ることが出来ます" -#: ../src/libs/export_metadata.c:442 +#: ../src/libs/export_metadata.c:430 msgid "add an output metadata tag" msgstr "出力メタデータタグを追加します" -#: ../src/libs/export_metadata.c:447 +#: ../src/libs/export_metadata.c:435 msgid "delete metadata tag" msgstr "メタデータタグを削除します" -#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:128 +#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:130 msgid "full path" msgstr "フルパス" @@ -21099,48 +21792,48 @@ msgid "shuffle" msgstr "シャッフル" -#: ../src/libs/filtering.c:263 +#: ../src/libs/filtering.c:269 msgid "collection filters" msgstr "コレクションフィルタ" -#: ../src/libs/filtering.c:296 +#: ../src/libs/filtering.c:302 msgid "initial setting" msgstr "初期設定値" -#: ../src/libs/filtering.c:315 +#: ../src/libs/filtering.c:321 msgid "imported: last 24h" msgstr "インポート済み:24時間以内" -#: ../src/libs/filtering.c:320 +#: ../src/libs/filtering.c:326 msgid "imported: last 30 days" msgstr "インポート済み:30日以内" -#: ../src/libs/filtering.c:326 +#: ../src/libs/filtering.c:332 msgid "taken: last 24h" msgstr "撮影:24時間以内" -#: ../src/libs/filtering.c:330 +#: ../src/libs/filtering.c:336 msgid "taken: last 30 days" msgstr "撮影:30日以内" -#: ../src/libs/filtering.c:702 +#: ../src/libs/filtering.c:728 msgid "click or click&drag to select one or multiple values" msgstr "クリックまたはクリック+ドラッグすると、一つまたは複数の値を選択します" -#: ../src/libs/filtering.c:703 +#: ../src/libs/filtering.c:729 msgid "right-click opens a menu to select the available values" msgstr "右クリックすると、メニューを開いて使用可能な値を選択します" -#: ../src/libs/filtering.c:800 +#: ../src/libs/filtering.c:826 #, c-format msgid "you can't have more than %d rules" msgstr "%d個以上のルールを設定することは出来ません" -#: ../src/libs/filtering.c:922 ../src/libs/filtering.c:1556 +#: ../src/libs/filtering.c:948 ../src/libs/filtering.c:1618 msgid "rule property" msgstr "ルールのプロパティ" -#: ../src/libs/filtering.c:987 +#: ../src/libs/filtering.c:1013 msgid "" "rule property\n" "this can't be changed as the rule is pinned to the toolbar" @@ -21148,12 +21841,12 @@ "ルールのプロパティ\n" "このルールは、ツールバーにピン留めされているため、変更することが出来ません" -#: ../src/libs/filtering.c:1035 +#: ../src/libs/filtering.c:1095 msgctxt "quickfilter" msgid "filter" msgstr "絞り込み" -#: ../src/libs/filtering.c:1062 +#: ../src/libs/filtering.c:1124 msgid "" "this rule is pinned to the top toolbar\n" "click to un-pin" @@ -21161,116 +21854,124 @@ "このルールは上ツールバーにピン留めされています\n" "クリックすると、ピン留めを外します" -#: ../src/libs/filtering.c:1063 +#: ../src/libs/filtering.c:1125 msgid "you can't disable the rule as it is pinned to the toolbar" msgstr "" "このルールは、ツールバーにピン留めされているため、無効にすることが出来ません" -#: ../src/libs/filtering.c:1064 +#: ../src/libs/filtering.c:1126 msgid "you can't remove the rule as it is pinned to the toolbar" msgstr "" "このルールは、ツールバーにピン留めされているため、削除することが出来ません" -#: ../src/libs/filtering.c:1069 +#: ../src/libs/filtering.c:1131 msgid "click to pin this rule to the top toolbar" msgstr "クリックすると、このルールを上ツールバーにピン留めします" -#: ../src/libs/filtering.c:1070 +#: ../src/libs/filtering.c:1132 msgid "remove this collect rule" msgstr "このルールを削除します" -#: ../src/libs/filtering.c:1072 +#: ../src/libs/filtering.c:1134 msgid "this rule is enabled" msgstr "このルールは有効になっています" -#: ../src/libs/filtering.c:1074 +#: ../src/libs/filtering.c:1136 msgid "this rule is disabled" msgstr "このルールは無効になっています" -#: ../src/libs/filtering.c:1202 +#: ../src/libs/filtering.c:1264 msgid "or" msgstr "または" -#: ../src/libs/filtering.c:1203 +#: ../src/libs/filtering.c:1265 msgid "and not" msgstr "および以下を除く" -#: ../src/libs/filtering.c:1205 +#: ../src/libs/filtering.c:1267 msgid "define how this rule should interact with the previous one" msgstr "このルールと先行するルールとの関係を定義します" -#: ../src/libs/filtering.c:1466 +#: ../src/libs/filtering.c:1528 msgid " (off)" msgstr " (off)" -#: ../src/libs/filtering.c:1663 +#: ../src/libs/filtering.c:1725 msgid "you can't add more rules." msgstr "これ以上ルールを追加することは出来ません" -#. fill the popover with all pinned rules -#: ../src/libs/filtering.c:1696 +#: ../src/libs/filtering.c:1759 msgid "shown filters" msgstr "表示するフィルタ" -#: ../src/libs/filtering.c:1711 +#: ../src/libs/filtering.c:1774 msgid "new filter" msgstr "新しいフィルタ" -#: ../src/libs/filtering.c:1884 +#. the actions part of the popover +#: ../src/libs/filtering.c:1781 +msgid "actions" +msgstr "アクション" + +#: ../src/libs/filtering.c:1784 +msgid "reset quickfilters" +msgstr "クイックフィルタをリセット" + +#: ../src/libs/filtering.c:1957 msgid "sort order" msgstr "並び順" -#: ../src/libs/filtering.c:1886 +#: ../src/libs/filtering.c:1960 msgid "determine the sort order of shown images" msgstr "表示画像の並び順を定義します" -#: ../src/libs/filtering.c:1906 +#: ../src/libs/filtering.c:1980 msgid "sort direction" msgstr "並び順 向き" -#: ../src/libs/filtering.c:1911 +#: ../src/libs/filtering.c:1985 msgid "remove this sort order" msgstr "この並び順を削除します" -#: ../src/libs/filtering.c:1995 +#: ../src/libs/filtering.c:2069 #, c-format msgid "you can't have more than %d sort orders" msgstr "%d個以上の並び順を設定することは出来ません" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "DESC" msgstr "DESC" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "ASC" msgstr "ASC" -#: ../src/libs/filtering.c:2160 +#: ../src/libs/filtering.c:2234 msgid "new rule" msgstr "新しいルール" -#: ../src/libs/filtering.c:2161 +#: ../src/libs/filtering.c:2235 msgid "append new rule to collect images" msgstr "画像を集めるための新しいルールを追加します" -#: ../src/libs/filtering.c:2172 ../src/libs/tools/filter.c:116 +#: ../src/libs/filtering.c:2246 ../src/libs/tools/filter.c:116 msgid "sort by" msgstr "並び順" -#: ../src/libs/filtering.c:2180 +#: ../src/libs/filtering.c:2254 msgid "new sort" msgstr "新しい並び順" -#: ../src/libs/filtering.c:2181 +#: ../src/libs/filtering.c:2255 msgid "append new sort to order images" msgstr "画像の新しい並び順を追加します" -#: ../src/libs/filtering.c:2184 +#: ../src/libs/filtering.c:2258 msgid "revert to a previous set of sort orders" msgstr "以前の並び順に戻します" #. we change the tooltip of the reset button here, as we are sure the header is defined now -#: ../src/libs/filtering.c:2234 +#: ../src/libs/filtering.c:2308 msgid "" "reset\n" "ctrl+click to remove pinned rules too" @@ -21307,7 +22008,7 @@ #: ../src/libs/filters/grouping.c:167 ../src/libs/filters/history.c:153 #: ../src/libs/filters/local_copy.c:142 ../src/libs/filters/module_order.c:161 #: ../src/libs/filters/rating.c:199 ../src/libs/filters/rating.c:210 -#: ../src/libs/filters/rating_range.c:325 +#: ../src/libs/filters/rating_range.c:356 msgid "rules" msgstr "ルール" @@ -21321,7 +22022,7 @@ "(∩):選択した色ラベル全てを有する画像\n" "(∪):選択した色ラベルのうち少なくとも一つを有する画像" -#: ../src/libs/filters/filename.c:365 +#: ../src/libs/filters/filename.c:370 msgid "" "enter filename to search.\n" "multiple values can be separated by ','\n" @@ -21333,11 +22034,11 @@ "\n" "右クリックすると、既存のファイル名を表示します" -#: ../src/libs/filters/filename.c:376 +#: ../src/libs/filters/filename.c:381 msgid "extension" msgstr "拡張子" -#: ../src/libs/filters/filename.c:377 +#: ../src/libs/filters/filename.c:382 msgid "" "enter extension to search with starting dot\n" "multiple values can be separated by ','\n" @@ -21350,7 +22051,7 @@ "\n" "右クリックすると、既存の拡張子を表示します" -#: ../src/libs/filters/filename.c:405 +#: ../src/libs/filters/filename.c:410 msgid "" "click to select filename\n" "ctrl+click to select multiple values" @@ -21358,7 +22059,7 @@ "クリックすると、ファイル名を選択します\n" "Ctrl+クリックすると、複数の値を選択します" -#: ../src/libs/filters/filename.c:432 +#: ../src/libs/filters/filename.c:437 msgid "" "click to select extension\n" "ctrl+click to select multiple values" @@ -21366,6 +22067,11 @@ "クリックすると、拡張子を選択します\n" "Ctrl+クリックすると、複数の値を選択します" +#. the button to close the popup +#: ../src/libs/filters/filename.c:457 +msgid "ok" +msgstr "ok" + #: ../src/libs/filters/grouping.c:141 ../src/libs/filters/grouping.c:169 msgid "ungrouped images" msgstr "グループ化していない画像" @@ -21377,8 +22083,8 @@ #. predefined selections #: ../src/libs/filters/grouping.c:169 ../src/libs/filters/history.c:38 #: ../src/libs/filters/local_copy.c:38 ../src/libs/filters/module_order.c:155 -#: ../src/libs/filters/rating_range.c:56 ../src/libs/filters/rating_range.c:72 -#: ../src/libs/filters/rating_range.c:109 ../src/libs/filters/ratio.c:68 +#: ../src/libs/filters/rating_range.c:59 ../src/libs/filters/rating_range.c:83 +#: ../src/libs/filters/rating_range.c:131 ../src/libs/filters/ratio.c:68 #: ../src/libs/filters/ratio.c:81 msgid "all images" msgstr "全画像" @@ -21403,7 +22109,7 @@ msgid "filter by images rating" msgstr "画像の評価にもとづいて絞り込みます" -#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:542 +#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:596 #: ../src/libs/tools/ratings.c:56 msgid "ratings" msgstr "評価" @@ -21412,49 +22118,33 @@ msgid "unstarred only" msgstr "星なしのみ" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:60 -#: ../src/libs/filters/rating_range.c:75 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:65 +#: ../src/libs/filters/rating_range.c:89 msgid "rejected only" msgstr "除外された画像のみ" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:58 -#: ../src/libs/filters/rating_range.c:73 ../src/libs/filters/rating_range.c:138 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:62 +#: ../src/libs/filters/rating_range.c:86 ../src/libs/filters/rating_range.c:158 msgid "all except rejected" msgstr "除外された画像以外全て" -#: ../src/libs/filters/rating_range.c:61 ../src/libs/filters/rating_range.c:76 +#: ../src/libs/filters/rating_range.c:67 ../src/libs/filters/rating_range.c:91 msgid "not rated only" msgstr "評価無しのみ" -#: ../src/libs/filters/rating_range.c:99 ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:131 -#: ../src/libs/filters/rating_range.c:275 -msgid "rejected" -msgstr "除外" - -#: ../src/libs/filters/rating_range.c:101 -#: ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:276 -msgid "not rated" -msgstr "評価無し" - -#: ../src/libs/filters/rating_range.c:117 -msgid "only" -msgstr "のみ" - -#: ../src/libs/filters/rating_range.c:269 +#: ../src/libs/filters/rating_range.c:296 msgid "better" msgstr "より良い" -#: ../src/libs/filters/rating_range.c:270 +#: ../src/libs/filters/rating_range.c:297 msgid "worse" msgstr "より悪い" -#: ../src/libs/filters/rating_range.c:271 +#: ../src/libs/filters/rating_range.c:298 msgid "cap" msgstr "最高" -#: ../src/libs/filters/rating_range.c:286 +#: ../src/libs/filters/rating_range.c:313 msgid "rating filter" msgstr "評価フィルタ" @@ -21493,7 +22183,7 @@ msgid "apply offset and geo-location" msgstr "オフセットと位置情報を適用する" -#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1910 +#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1914 msgid "apply geo-location" msgstr "位置情報を適用" @@ -21505,49 +22195,49 @@ "合致する画像にオフセットと位置情報を適用します\n" "二重操作:Ctrl+zを2回で取り消します" -#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1911 +#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1915 msgid "apply geo-location to matching images" msgstr "マッチする画像に位置情報を適用します" -#: ../src/libs/geotagging.c:810 +#: ../src/libs/geotagging.c:809 msgid "GPX file track segments" msgstr "GPXファイル トラックセグメント" -#: ../src/libs/geotagging.c:830 ../src/libs/geotagging.c:1869 +#: ../src/libs/geotagging.c:831 ../src/libs/geotagging.c:1873 msgid "start time" msgstr "開始時間" -#: ../src/libs/geotagging.c:831 +#: ../src/libs/geotagging.c:832 msgid "end time" msgstr "終了時間" -#: ../src/libs/geotagging.c:832 ../src/libs/geotagging.c:1871 +#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1875 msgid "points" msgstr "ポイント" -#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1873 -#: ../src/libs/image.c:463 +#: ../src/libs/geotagging.c:834 ../src/libs/geotagging.c:1877 +#: ../src/libs/image.c:494 msgid "images" msgstr "画像" -#: ../src/libs/geotagging.c:926 +#: ../src/libs/geotagging.c:927 msgid "open GPX file" msgstr "GPXファイルを開いてください" -#: ../src/libs/geotagging.c:927 ../src/libs/tools/lighttable.c:333 -#: ../src/libs/tools/lighttable.c:402 ../src/views/darkroom.c:2232 +#: ../src/libs/geotagging.c:928 ../src/libs/tools/lighttable.c:330 +#: ../src/libs/tools/lighttable.c:399 ../src/views/darkroom.c:2091 msgid "preview" msgstr "プレビュー" -#: ../src/libs/geotagging.c:940 +#: ../src/libs/geotagging.c:941 msgid "GPS data exchange format" msgstr "GPSデータ交換形式" -#: ../src/libs/geotagging.c:1739 +#: ../src/libs/geotagging.c:1743 msgid "date/time" msgstr "日時" -#: ../src/libs/geotagging.c:1740 +#: ../src/libs/geotagging.c:1744 msgid "" "enter the new date/time (YYYY:MM:DD hh:mm:ss[.sss])\n" "key in the new numbers or scroll over the cell" @@ -21555,40 +22245,40 @@ "新しい日時を入力する(YYYY:MM:DD hh:mm:ss[.sss])\n" "新しい数字をタイプするか、セルの上でスクロールしてください" -#: ../src/libs/geotagging.c:1744 +#: ../src/libs/geotagging.c:1748 msgid "original date/time" msgstr "元の日時" -#: ../src/libs/geotagging.c:1748 +#: ../src/libs/geotagging.c:1752 msgid "lock date/time offset value to apply it onto another selection" msgstr "日時の時差の値を固定して他のセクションに適用します" -#: ../src/libs/geotagging.c:1752 +#: ../src/libs/geotagging.c:1756 msgid "date/time offset" msgstr "日時 時差" -#: ../src/libs/geotagging.c:1753 +#: ../src/libs/geotagging.c:1757 msgid "offset or difference ([-]dd hh:mm:ss[.sss])" msgstr "時差 ([-]dd hh:mm:ss[.sss])" #. apply -#: ../src/libs/geotagging.c:1757 +#: ../src/libs/geotagging.c:1761 msgid "apply offset" msgstr "時差を適用" -#: ../src/libs/geotagging.c:1758 +#: ../src/libs/geotagging.c:1762 msgid "apply offset to selected images" msgstr "選択した画像に時差を適用します" -#: ../src/libs/geotagging.c:1761 +#: ../src/libs/geotagging.c:1765 msgid "apply date/time" msgstr "日時を適用" -#: ../src/libs/geotagging.c:1762 +#: ../src/libs/geotagging.c:1766 msgid "apply the same date/time to selected images" msgstr "選択した画像に同じ日時を適用します" -#: ../src/libs/geotagging.c:1772 +#: ../src/libs/geotagging.c:1776 msgid "" "start typing to show a list of permitted values and select your timezone.\n" "press enter to confirm, so that the asterisk * disappears" @@ -21598,24 +22288,24 @@ "Enterを押すと、確定し、アスタリスクが消えます" #. gpx -#: ../src/libs/geotagging.c:1815 +#: ../src/libs/geotagging.c:1819 msgid "apply GPX track file..." msgstr "GPXトラックファイルを適用..." -#: ../src/libs/geotagging.c:1816 +#: ../src/libs/geotagging.c:1820 msgid "parses a GPX file and updates location of selected images" msgstr "GPXファイルを解析し、選択した画像の位置情報を更新します" -#: ../src/libs/geotagging.c:1827 +#: ../src/libs/geotagging.c:1831 msgctxt "section" msgid "GPX file" msgstr "GPXファイル" -#: ../src/libs/geotagging.c:1834 +#: ../src/libs/geotagging.c:1838 msgid "select a GPX track file..." msgstr "GPXトラックファイルを選択してください..." -#: ../src/libs/geotagging.c:1851 +#: ../src/libs/geotagging.c:1855 msgid "" "list of track segments in the GPX file, for each segment:\n" "- the start date/time in local time (LT)\n" @@ -21630,172 +22320,180 @@ "・画像の日時、時差、タイムゾーンをもとに、マッチした画像の数\n" "・列の上にカーソルを置くと、より詳細な時間情報" -#: ../src/libs/geotagging.c:1890 +#: ../src/libs/geotagging.c:1894 msgid "preview images" msgstr "画像をプレビュー" -#: ../src/libs/geotagging.c:1895 +#: ../src/libs/geotagging.c:1899 msgid "show on map matching images" msgstr "マッチする画像を地図上に表示します" -#: ../src/libs/geotagging.c:1898 +#: ../src/libs/geotagging.c:1902 msgid "select images" msgstr "画像を選択" -#: ../src/libs/geotagging.c:1899 +#: ../src/libs/geotagging.c:1903 msgid "select matching images" msgstr "マッチする画像を選択します" -#: ../src/libs/geotagging.c:1907 +#: ../src/libs/geotagging.c:1911 msgid "number of matching images versus selected images" msgstr "マッチした画像と選択した画像の数" -#: ../src/libs/histogram.c:133 +#: ../src/libs/histogram.c:110 msgid "monochromatic" msgstr "単色" -#: ../src/libs/histogram.c:134 +#: ../src/libs/histogram.c:111 msgid "analogous" msgstr "類似色" -#: ../src/libs/histogram.c:135 +#: ../src/libs/histogram.c:112 msgid "analogous complementary" msgstr "類似色と補色" -#: ../src/libs/histogram.c:136 +#: ../src/libs/histogram.c:113 msgid "complementary" msgstr "補色" -#: ../src/libs/histogram.c:137 +#: ../src/libs/histogram.c:114 msgid "split complementary" msgstr "分裂補色(スプリットコンプリメンタリー)" -#: ../src/libs/histogram.c:138 +#: ../src/libs/histogram.c:115 msgid "dyad" msgstr "ダイアード" -#: ../src/libs/histogram.c:139 +#: ../src/libs/histogram.c:116 msgid "triad" msgstr "トライアド" -#: ../src/libs/histogram.c:140 +#: ../src/libs/histogram.c:117 msgid "tetrad" msgstr "テトラード" -#: ../src/libs/histogram.c:146 +#: ../src/libs/histogram.c:123 msgid "vectorscope" msgstr "ベクトルスコープ" -#: ../src/libs/histogram.c:147 +#: ../src/libs/histogram.c:124 msgid "waveform" msgstr "波形" -#: ../src/libs/histogram.c:148 +#: ../src/libs/histogram.c:125 msgid "RGB parade" msgstr "RGBパレード" -#: ../src/libs/histogram.c:149 ../src/libs/histogram.c:2309 +#: ../src/libs/histogram.c:126 ../src/libs/histogram.c:2622 msgid "histogram" msgstr "ヒストグラム" -#: ../src/libs/histogram.c:243 +#: ../src/libs/histogram.c:218 msgid "scopes" msgstr "スコープ" -#: ../src/libs/histogram.c:1542 +#: ../src/libs/histogram.c:757 +msgid "" +"unsupported vectorscope profile selected, it will be replaced with linear " +"Rec2020" +msgstr "" +"サポートされていないベクトルスコーププロファイルが選択されています。リニア" +"Rec2020に置き換えられます" + +#: ../src/libs/histogram.c:1715 msgid "scroll to coarse-rotate" msgstr "スクロールで大きく回転します" -#: ../src/libs/histogram.c:1543 +#: ../src/libs/histogram.c:1716 msgid "ctrl+scroll to fine rotate" msgstr "Ctrl+スクロールで回転を微調整します" -#: ../src/libs/histogram.c:1544 +#: ../src/libs/histogram.c:1717 msgid "shift+scroll to change width" msgstr "Shift+スクロールで幅を変更します" -#: ../src/libs/histogram.c:1545 +#: ../src/libs/histogram.c:1718 msgid "alt+scroll to cycle" msgstr "Alt+スクロールで切り替えます" -#: ../src/libs/histogram.c:1556 +#: ../src/libs/histogram.c:1732 msgid "drag to change black point" msgstr "ドラッグでブラックポイントを変更します" -#: ../src/libs/histogram.c:1557 ../src/libs/histogram.c:1564 +#: ../src/libs/histogram.c:1733 ../src/libs/histogram.c:1740 msgid "double-click resets" msgstr "ダブルクリックでリセットします" -#: ../src/libs/histogram.c:1563 +#: ../src/libs/histogram.c:1739 msgid "drag to change exposure" msgstr "ドラッグで露出を変更します" -#: ../src/libs/histogram.c:1725 ../src/libs/histogram.c:1765 +#: ../src/libs/histogram.c:1923 ../src/libs/histogram.c:1965 msgid "set scale to linear" msgstr "スケールをリニアに設定します" -#: ../src/libs/histogram.c:1730 ../src/libs/histogram.c:1770 +#: ../src/libs/histogram.c:1928 ../src/libs/histogram.c:1970 msgid "set scale to logarithmic" msgstr "スケールを対数に設定します" -#: ../src/libs/histogram.c:1746 +#: ../src/libs/histogram.c:1946 msgid "set scope to vertical" msgstr "スコープを垂直にします" -#: ../src/libs/histogram.c:1751 +#: ../src/libs/histogram.c:1951 msgid "set scope to horizontal" msgstr "スコープを水平にします" -#: ../src/libs/histogram.c:1780 +#: ../src/libs/histogram.c:1980 msgid "set view to AzBz" msgstr "ビューをAzBzにします" -#: ../src/libs/histogram.c:1786 +#: ../src/libs/histogram.c:1986 msgid "set view to RYB" msgstr "ビューをRYBにします" -#: ../src/libs/histogram.c:1792 +#: ../src/libs/histogram.c:1992 msgid "set view to u*v*" msgstr "ビューをu*v*にします" -#: ../src/libs/histogram.c:2312 ../src/libs/histogram.c:2370 +#: ../src/libs/histogram.c:2625 ../src/libs/histogram.c:2691 msgid "cycle histogram modes" msgstr "ヒストグラムのモードを順番に切り替え" -#: ../src/libs/histogram.c:2316 ../src/libs/histogram.c:2371 +#: ../src/libs/histogram.c:2630 ../src/libs/histogram.c:2693 msgid "hide histogram" msgstr "ヒストグラムを非表示" -#: ../src/libs/histogram.c:2372 ../src/libs/histogram.c:2401 +#: ../src/libs/histogram.c:2696 ../src/libs/histogram.c:2729 msgid "switch histogram view" msgstr "ヒストグラムビューを切り替えます" -#: ../src/libs/histogram.c:2379 +#: ../src/libs/histogram.c:2704 msgid "toggle blue channel" msgstr "青チャンネルの表示/非表示を切り替えます" -#: ../src/libs/histogram.c:2381 ../src/libs/histogram.c:2389 -#: ../src/libs/histogram.c:2397 +#: ../src/libs/histogram.c:2706 ../src/libs/histogram.c:2715 +#: ../src/libs/histogram.c:2724 msgid "toggle colors" msgstr "色の表示/非表示を切り替えます" -#: ../src/libs/histogram.c:2387 +#: ../src/libs/histogram.c:2713 msgid "toggle green channel" msgstr "緑チャンネルの表示/非表示を切り替えます" -#: ../src/libs/histogram.c:2395 +#: ../src/libs/histogram.c:2722 msgid "toggle red channel" msgstr "赤チャンネルの表示/非表示を切り替えます" -#: ../src/libs/histogram.c:2405 +#: ../src/libs/histogram.c:2734 msgid "cycle vectorscope types" msgstr "ベクトルスコープの種類を切り替えます" -#: ../src/libs/histogram.c:2413 +#: ../src/libs/histogram.c:2745 msgid "color harmonies" msgstr "色彩調和" -#: ../src/libs/histogram.c:2425 +#: ../src/libs/histogram.c:2759 msgid "cycle color harmonies" msgstr "色彩調和を切り替えます" @@ -21839,10 +22537,18 @@ msgid "mask mode" msgstr "マスクモード" +#: ../src/libs/history.c:949 +msgid "blend mode" +msgstr "ブレンドモード" + #: ../src/libs/history.c:951 msgid "blend operation" msgstr "ブレンド操作" +#: ../src/libs/history.c:953 +msgid "blend fulcrum" +msgstr "ブレンド支点" + #: ../src/libs/history.c:961 msgid "mask blur" msgstr "マスクのぼかし" @@ -21886,198 +22592,198 @@ msgid "parametric input mask:" msgstr "パラメトリック入力マスク:" -#: ../src/libs/history.c:1323 +#: ../src/libs/history.c:1322 msgid "delete image's history?" msgstr "画像の履歴を削除しますか?" -#: ../src/libs/history.c:1324 +#: ../src/libs/history.c:1323 msgid "do you really want to clear history of current image?" msgstr "この画像の履歴を本当に削除しますか?" -#: ../src/libs/image.c:72 -msgid "selected image[s]" -msgstr "選択画像" +#: ../src/libs/image.c:74 +msgid "actions on selection" +msgstr "選択へのアクション" -#: ../src/libs/image.c:284 +#: ../src/libs/image.c:302 msgid "delete (trash)" msgstr "削除 (ゴミ箱)" -#: ../src/libs/image.c:287 +#: ../src/libs/image.c:305 msgid "physically delete from disk (using trash if possible)" msgstr "" "ディスクから物理的に削除します\n" "(出来ればゴミ箱を使用します)" -#: ../src/libs/image.c:288 +#: ../src/libs/image.c:306 msgid "physically delete from disk immediately" msgstr "直ちにディスクから物理的に削除します" -#: ../src/libs/image.c:474 ../src/libs/modulegroups.c:3811 -#: ../src/libs/styles.c:876 +#: ../src/libs/image.c:506 ../src/libs/modulegroups.c:3813 +#: ../src/libs/styles.c:880 msgid "remove" msgstr "除去" -#: ../src/libs/image.c:475 +#: ../src/libs/image.c:508 msgid "remove images from the image library, without deleting" msgstr "画像を削除せずに画像ライブラリから除去します" -#: ../src/libs/image.c:483 +#: ../src/libs/image.c:517 msgid "move..." msgstr "移動..." -#: ../src/libs/image.c:484 +#: ../src/libs/image.c:519 msgid "move to other folder" msgstr "他のフォルダへ移動します" -#: ../src/libs/image.c:487 +#: ../src/libs/image.c:522 msgid "copy..." msgstr "コピー..." -#: ../src/libs/image.c:488 +#: ../src/libs/image.c:524 msgid "copy to other folder" msgstr "他のフォルダにコピーします" -#: ../src/libs/image.c:491 +#: ../src/libs/image.c:528 msgid "create HDR" msgstr "HDR作成" -#: ../src/libs/image.c:492 +#: ../src/libs/image.c:530 msgid "create a high dynamic range image from selected shots" msgstr "選択したショットからハイダイナミックレンジ画像を作成します" -#: ../src/libs/image.c:496 +#: ../src/libs/image.c:535 msgid "add a duplicate to the image library, including its history stack" msgstr "画像ライブラリに履歴スタックを含む複製画像を追加します" -#: ../src/libs/image.c:502 ../src/libs/image.c:505 +#: ../src/libs/image.c:542 ../src/libs/image.c:547 msgid "rotate selected images 90 degrees CCW" msgstr "選択画像を90°反時計回りに回転します" -#: ../src/libs/image.c:509 ../src/libs/image.c:512 +#: ../src/libs/image.c:553 ../src/libs/image.c:558 msgid "rotate selected images 90 degrees CW" msgstr "選択画像を90°時計回りに回転します" -#: ../src/libs/image.c:514 +#: ../src/libs/image.c:561 msgid "reset rotation" msgstr "回転をリセット" -#: ../src/libs/image.c:515 +#: ../src/libs/image.c:563 msgid "reset rotation to EXIF data" msgstr "回転をEXIFデータの設定にリセットします" -#: ../src/libs/image.c:518 +#: ../src/libs/image.c:566 msgid "copy locally" msgstr "ローカルにコピー" -#: ../src/libs/image.c:519 +#: ../src/libs/image.c:568 msgid "copy the image locally" msgstr "画像をローカルにコピーします" -#: ../src/libs/image.c:522 +#: ../src/libs/image.c:572 msgid "resync local copy" msgstr "ローカルコピーを再同期" -#: ../src/libs/image.c:523 +#: ../src/libs/image.c:574 msgid "synchronize the image's XMP and remove the local copy" msgstr "画像のXMPを再同期して、ローカルコピーを削除します" -#: ../src/libs/image.c:526 +#: ../src/libs/image.c:578 msgctxt "selected images action" msgid "group" msgstr "グループ化" -#: ../src/libs/image.c:527 +#: ../src/libs/image.c:580 msgid "add selected images to expanded group or create a new one" msgstr "選択した画像を展開したグループに追加する、新しいグループを作成します" -#: ../src/libs/image.c:531 +#: ../src/libs/image.c:584 msgid "ungroup" msgstr "グループ化を解除" -#: ../src/libs/image.c:532 +#: ../src/libs/image.c:586 msgid "remove selected images from the group" msgstr "選択した画像をグループから除きます" -#: ../src/libs/image.c:544 +#: ../src/libs/image.c:598 msgid "select ratings metadata" msgstr "評価のメタデータを選択します" -#: ../src/libs/image.c:550 +#: ../src/libs/image.c:605 msgid "colors" msgstr "色" -#: ../src/libs/image.c:552 +#: ../src/libs/image.c:607 msgid "select colors metadata" msgstr "色のメタデータを選択します" -#: ../src/libs/image.c:560 +#: ../src/libs/image.c:616 msgid "select tags metadata" msgstr "タグのメタデータを選択します" -#: ../src/libs/image.c:568 +#: ../src/libs/image.c:625 msgid "select geo tags metadata" msgstr "ジオタグのメタデータを選択します" -#: ../src/libs/image.c:576 +#: ../src/libs/image.c:636 msgid "select darktable metadata (from metadata editor module)" msgstr "dtメタデータを選択します(メタデータエディタモジュールから)" -#: ../src/libs/image.c:584 +#: ../src/libs/image.c:649 msgid "set the selected image as source of metadata" msgstr "選択した画像をメタデータのソースとして設定します" -#: ../src/libs/image.c:589 +#: ../src/libs/image.c:656 msgid "paste selected metadata on selected images" msgstr "選択したメタデータを選択した画像に貼り付けます" -#: ../src/libs/image.c:593 +#: ../src/libs/image.c:661 msgid "clear selected metadata on selected images" msgstr "選択した画像の選択したメタデータを削除します" -#: ../src/libs/image.c:598 +#: ../src/libs/image.c:667 msgid "how to handle existing metadata" msgstr "既存のメタデータの扱い方" -#: ../src/libs/image.c:601 +#: ../src/libs/image.c:670 msgid "merge" msgstr "統合" -#: ../src/libs/image.c:605 +#: ../src/libs/image.c:675 msgid "update image information to match changes to file" msgstr "ファイルへの変更に合わせて画像情報を更新します" -#: ../src/libs/image.c:609 +#: ../src/libs/image.c:680 msgid "set selection as monochrome images and activate monochrome workflow" msgstr "" "選択画像をモノクローム画像として設定し、モノクロームのワークフローを有効にし" "ます" -#: ../src/libs/image.c:613 +#: ../src/libs/image.c:684 msgid "set selection as color images" msgstr "選択画像をカラー画像として設定します" -#: ../src/libs/image.c:625 +#: ../src/libs/image.c:696 msgid "duplicate virgin" msgstr "未編集画像を複製" -#: ../src/libs/import.c:263 +#: ../src/libs/import.c:264 #, c-format msgid "device \"%s\" connected on port \"%s\"." msgstr "デバイス\"%s\"をポート\"%s\"に接続しました" -#: ../src/libs/import.c:273 ../src/libs/import.c:334 ../src/libs/import.c:1692 +#: ../src/libs/import.c:274 ../src/libs/import.c:335 ../src/libs/import.c:1701 msgid "copy & import from camera" msgstr "カメラからコピー&インポート" -#: ../src/libs/import.c:284 ../src/libs/import.c:336 +#: ../src/libs/import.c:285 ../src/libs/import.c:337 msgid "tethered shoot" msgstr "テザー撮影" -#: ../src/libs/import.c:291 ../src/libs/import.c:337 +#: ../src/libs/import.c:292 ../src/libs/import.c:338 msgid "unmount camera" msgstr "カメラを取り外す" -#: ../src/libs/import.c:312 +#: ../src/libs/import.c:313 msgid "" "camera is locked by another application\n" "make sure it is no longer mounted\n" @@ -22087,38 +22793,38 @@ "マウントされていないことを確認してください\n" "またはロックしているアプリケーションを終了してください" -#: ../src/libs/import.c:315 +#: ../src/libs/import.c:316 msgid "tethering and importing is disabled for this camera" msgstr "このカメラでのテザリングとインポートが無効になりました" -#: ../src/libs/import.c:317 ../src/libs/import.c:335 +#: ../src/libs/import.c:318 ../src/libs/import.c:336 msgid "mount camera" msgstr "カメラをマウント" -#: ../src/libs/import.c:747 +#: ../src/libs/import.c:754 #, c-format msgid "%d image out of %d selected" msgid_plural "%d images out of %d selected" msgstr[0] "%d枚の画像が%d枚のなかから選択されています" msgstr[1] "%d枚の画像が%d枚のなかから選択されています" -#: ../src/libs/import.c:1039 +#: ../src/libs/import.c:1046 msgid "you can't delete the selected place" msgstr "選択した場所は削除することが出来ません" -#: ../src/libs/import.c:1153 +#: ../src/libs/import.c:1160 msgid "choose the root of the folder tree below" msgstr "下のフォルダツリーのルートを選択してください" -#: ../src/libs/import.c:1156 +#: ../src/libs/import.c:1163 msgid "places" msgstr "場所" -#: ../src/libs/import.c:1162 +#: ../src/libs/import.c:1169 msgid "restore all default places you have removed by right-click" msgstr "右クリックすると、削除したデフォルト設定の位置を全て復元します" -#: ../src/libs/import.c:1167 +#: ../src/libs/import.c:1174 msgid "" "add a custom place\n" "\n" @@ -22128,81 +22834,109 @@ "\n" "場所の上で右クリックすると、削除します" -#: ../src/libs/import.c:1174 +#: ../src/libs/import.c:1181 msgid "you can add custom places using the plus icon" msgstr "プラスアイコンを用いてカスタム設定の場所を加えることが出来ます" -#: ../src/libs/import.c:1199 +#: ../src/libs/import.c:1206 msgid "select a folder to see the content" msgstr "内容を見るフォルダを選択します" -#: ../src/libs/import.c:1202 +#: ../src/libs/import.c:1209 msgid "folders" msgstr "フォルダ" -#: ../src/libs/import.c:1272 +#: ../src/libs/import.c:1279 msgid "home" msgstr "ホーム" -#: ../src/libs/import.c:1284 +#: ../src/libs/import.c:1291 msgid "pictures" msgstr "写真" -#: ../src/libs/import.c:1548 +#: ../src/libs/import.c:1557 msgid "mark already imported pictures" msgstr "インポート済みの写真をマークする" -#: ../src/libs/import.c:1562 +#: ../src/libs/import.c:1571 msgid "modified" msgstr "変更" -#: ../src/libs/import.c:1567 +#: ../src/libs/import.c:1576 msgid "file 'modified date/time', may be different from 'Exif date/time'" msgstr "" "ファイルの'変更日時'\n" "'Exif日時'と異なっているかもしれません" -#: ../src/libs/import.c:1579 +#: ../src/libs/import.c:1588 msgid "show/hide thumbnails" msgstr "サムネイルの表示/非表示" -#: ../src/libs/import.c:1649 +#: ../src/libs/import.c:1658 msgid "naming rules" msgstr "命名規則" -#: ../src/libs/import.c:1690 +#: ../src/libs/import.c:1699 msgid "add to library" msgstr "ライブラリに追加" -#: ../src/libs/import.c:1691 +#: ../src/libs/import.c:1700 msgid "copy & import" msgstr "コピー&インポート" -#: ../src/libs/import.c:1730 +#: ../src/libs/import.c:1740 msgid "select new" msgstr "新しいファイルを選択" -#: ../src/libs/import.c:1773 +#: ../src/libs/import.c:1783 msgid "please wait while prefetching the list of images from camera..." msgstr "カメラから画像リストをピリフェッチしています、お待ちください..." -#: ../src/libs/import.c:1907 +#: ../src/libs/import.c:1922 msgid "invalid override date/time format" msgstr "無効な上書き日時の形式です" -#: ../src/libs/import.c:2022 +#: ../src/libs/import.c:1986 +msgid "import base directory" +msgstr "ベースディレクトリをインポート" + +#: ../src/libs/import.c:1987 +msgid "" +"before copying images to the darktable base directory make sure it is " +"defined as you prefer.\n" +"further information can be found in the darktable manual.\n" +"\n" +"inspect darktable preferences -> import.\n" +"check and possibly correct the 'base directory naming pattern'" +msgstr "" +"画像をdarktableベースディレクトリにコピーする前に、ベースディレクトリが好みの" +"場所に設定されていることを確認してください\n" +"詳しい情報はdarktableのマニュアルをご覧ください\n" +"\n" +"設定のインポートタブをチェックし、必要であれば'ベースディレクトリ命名のひな" +"型'を修正してください" + +#: ../src/libs/import.c:1991 +msgid "_come back & check" +msgstr "_戻ってチェック" + +#: ../src/libs/import.c:1991 +msgid "_understood & done" +msgstr "_了解して実行" + +#: ../src/libs/import.c:2057 msgid "add to library..." msgstr "ライブラリに追加" -#: ../src/libs/import.c:2023 +#: ../src/libs/import.c:2058 msgid "add existing images to the library" msgstr "既存の画像をライブラリに追加します" -#: ../src/libs/import.c:2029 +#: ../src/libs/import.c:2064 msgid "copy & import..." msgstr "コピー&インポート..." -#: ../src/libs/import.c:2030 +#: ../src/libs/import.c:2065 msgid "" "copy and optionally rename images before adding them to the library\n" "patterns can be defined to rename the images and specify the destination " @@ -22213,15 +22947,15 @@ "す" #. collapsible section -#: ../src/libs/import.c:2053 +#: ../src/libs/import.c:2088 msgid "parameters" msgstr "パラメータ" -#: ../src/libs/ioporder.c:204 +#: ../src/libs/ioporder.c:202 msgid "v3.0 for RAW input (default)" msgstr "バージョン3.0 RAW入力(デフォルト)" -#: ../src/libs/ioporder.c:210 +#: ../src/libs/ioporder.c:208 msgid "v3.0 for JPEG/non-RAW input" msgstr "バージョン3.0 JPEG/非RAW入力" @@ -22237,11 +22971,11 @@ msgid "nothing to save" msgstr "保存するものがありません" -#: ../src/libs/lib.c:1105 +#: ../src/libs/lib.c:1106 msgid "show module" msgstr "モジュールを表示" -#: ../src/libs/lib.c:1430 +#: ../src/libs/lib.c:1431 msgid "utility module" msgstr "ユーティリティモジュール" @@ -22474,168 +23208,111 @@ msgid "map settings" msgstr "地図の設定" -#: ../src/libs/map_settings.c:107 +#: ../src/libs/map_settings.c:89 msgid "map source" msgstr "地図のソース" -#: ../src/libs/map_settings.c:112 +#: ../src/libs/map_settings.c:90 msgid "select the source of the map. some entries might not work" msgstr "" "地図のソースを選択してください\n" "動作しないエントリがあるかもしれません" -#: ../src/libs/masks.c:107 +#: ../src/libs/masks.c:108 msgid "feather" msgstr "境界ぼかし" -#: ../src/libs/masks.c:114 -msgid "hardness (relative)" -msgstr "硬さ(相対)" - -#: ../src/libs/masks.c:115 -msgid "hardness (absolute)" -msgstr "硬さ(絶対)" - -#: ../src/libs/masks.c:116 -msgid "opacity (relative)" -msgstr "不透明度(相対)" - -#: ../src/libs/masks.c:117 -msgid "opacity (absolute)" -msgstr "不透明度(絶対)" - -#: ../src/libs/masks.c:118 -msgid "brush size (relative)" -msgstr "ブラシサイズ(相対)" - -#: ../src/libs/masks.c:121 -msgid "low" -msgstr "低" - -#: ../src/libs/masks.c:122 -msgid "medium" -msgstr "中" - -#: ../src/libs/masks.c:123 -msgid "high" -msgstr "高" - -#: ../src/libs/masks.c:381 +#: ../src/libs/masks.c:357 #, c-format msgid "group #%d" msgstr "グループ#%d" -#: ../src/libs/masks.c:1081 +#: ../src/libs/masks.c:1097 msgid "duplicate this shape" msgstr "このシェイプを複製" -#: ../src/libs/masks.c:1085 +#: ../src/libs/masks.c:1101 msgid "delete this shape" msgstr "このシェイプを削除" -#: ../src/libs/masks.c:1091 +#: ../src/libs/masks.c:1107 msgid "delete group" msgstr "グループを削除" -#: ../src/libs/masks.c:1098 +#: ../src/libs/masks.c:1114 msgid "remove from group" msgstr "グループから削除" -#: ../src/libs/masks.c:1106 +#: ../src/libs/masks.c:1122 msgid "group the forms" msgstr "シェイプをグループにまとめる" -#: ../src/libs/masks.c:1114 +#: ../src/libs/masks.c:1130 msgid "use inverted shape" msgstr "反転したシェイプを使用" -#: ../src/libs/masks.c:1121 +#: ../src/libs/masks.c:1134 msgid "mode: union" msgstr "モード:和" -#: ../src/libs/masks.c:1127 +#: ../src/libs/masks.c:1136 msgid "mode: intersection" msgstr "モード:積" -#: ../src/libs/masks.c:1133 +#: ../src/libs/masks.c:1138 msgid "mode: difference" msgstr "モード:差" -#: ../src/libs/masks.c:1139 +#: ../src/libs/masks.c:1140 msgid "mode: sum" msgstr "モード:合計" -#: ../src/libs/masks.c:1145 +#: ../src/libs/masks.c:1142 msgid "mode: exclusion" msgstr "モード:除外" -#: ../src/libs/masks.c:1164 +#: ../src/libs/masks.c:1158 msgid "cleanup unused shapes" msgstr "未使用のシェイプを削除" -#: ../src/libs/masks.c:1811 +#: ../src/libs/masks.c:1807 msgid "created shapes" msgstr "シェイプを作成" -#: ../src/libs/masks.c:1904 ../src/libs/masks.c:1919 ../src/libs/masks.c:1939 -#: ../src/libs/masks.c:1955 +#: ../src/libs/masks.c:1900 ../src/libs/masks.c:1915 ../src/libs/masks.c:1929 +#: ../src/libs/masks.c:1933 msgid "properties" msgstr "プロパティ" -#: ../src/libs/masks.c:1907 +#: ../src/libs/masks.c:1903 msgid "no shapes selected" msgstr "シェイプが選択されていません" -#: ../src/libs/masks.c:1940 +#: ../src/libs/masks.c:1929 msgid "pressure" msgstr "筆圧" -#: ../src/libs/masks.c:1941 -msgid "" -"pen pressure control for brush masks\n" -"'off': pressure reading ignored,\n" -"'hardness'/'opacity'/'brush size': pressure reading controls specified " -"attribute,\n" -"'absolute'/'relative': pressure reading is taken directly as attribute value " -"or multiplied with pre-defined setting." -msgstr "" -"筆圧によるブラシマスクのコントロール\n" -"オフ:筆圧の読み取り値を無視します\n" -"硬さ/不透明度/ブラシサイズ:筆圧の読み取り値によって指定された属性をコント" -"ロールします\n" -"絶対/相対:筆圧の読み取り値を属性の値として直接用います、またはあらかじめ定" -"められた設定値で乗算します" - -#: ../src/libs/masks.c:1956 +#: ../src/libs/masks.c:1933 msgid "smoothing" msgstr "平滑化" -#: ../src/libs/masks.c:1957 -msgid "" -"smoothing of brush strokes\n" -"stronger smoothing leads to fewer nodes and easier editing but with lower " -"control of accuracy." -msgstr "" -"ブラシストロークの平滑化\n" -"平滑化を強めると、ノードを少なくして簡単に編集出来ますが、正確なコントロール" - -#: ../src/libs/metadata.c:64 +#: ../src/libs/metadata.c:60 msgid "metadata editor" msgstr "メタデータエディタ" -#: ../src/libs/metadata.c:206 ../src/libs/metadata.c:496 -msgid "<leave unchanged>" -msgstr "<変更しない>" - -#: ../src/libs/metadata.c:630 ../src/libs/metadata_view.c:1192 +#: ../src/libs/metadata.c:459 ../src/libs/metadata_view.c:1219 msgid "metadata settings" msgstr "メタデータ設定" -#: ../src/libs/metadata.c:683 ../src/libs/metadata_view.c:1237 +#: ../src/libs/metadata.c:461 ../src/libs/metadata_view.c:1221 +msgid "_default" +msgstr "_デフォルト" + +#: ../src/libs/metadata.c:516 ../src/libs/metadata_view.c:1267 msgid "visible" msgstr "表示" -#: ../src/libs/metadata.c:688 +#: ../src/libs/metadata.c:524 msgid "" "tick if the corresponding metadata is of interest for you\n" "it will be visible from metadata editor, collection and import module\n" @@ -22645,19 +23322,19 @@ "メタデータエディタ、コレクション、インポートモジュールで表示されます\n" "エクスポートもされます" -#: ../src/libs/metadata.c:693 ../src/libs/tagging.c:1683 -#: ../src/libs/tagging.c:1827 +#: ../src/libs/metadata.c:529 ../src/libs/tagging.c:1705 +#: ../src/libs/tagging.c:1854 msgid "private" msgstr "プライベート" -#: ../src/libs/metadata.c:698 +#: ../src/libs/metadata.c:534 msgid "" "tick if you want to keep this information private (not exported with images)" msgstr "" "この情報を非公開にしたい場合はチェックしてください(画像とともにエクスポート" "されません)" -#: ../src/libs/metadata.c:857 +#: ../src/libs/metadata.c:691 msgid "" "metadata text\n" "ctrl+enter inserts a new line (caution, may not be compatible with standard " @@ -22673,169 +23350,181 @@ "その場合、右クリックすると、そのうちの1つを選択出来ます\n" "Escキーでポップアップウィンドウから出ます" -#: ../src/libs/metadata.c:902 +#: ../src/libs/metadata.c:736 msgid "write metadata for selected images" msgstr "選択画像にメタデータを書き込みます" +#: ../src/libs/metadata.c:737 +msgid "cancel" +msgstr "キャンセル" + +#: ../src/libs/metadata.c:738 +msgid "ignore changed metadata" +msgstr "変更されたメタデータを無視する" + #. <title>\0<description>\0<rights>\0<creator>\0<publisher> -#: ../src/libs/metadata.c:958 +#: ../src/libs/metadata.c:793 msgid "CC BY" msgstr "CC BY クリエイティブ・コモンズ 表示" -#: ../src/libs/metadata.c:959 +#: ../src/libs/metadata.c:794 msgid "Creative Commons Attribution (CC BY)" msgstr "Creative Commons Attribution (CC BY)" -#: ../src/libs/metadata.c:960 +#: ../src/libs/metadata.c:795 msgid "CC BY-SA" msgstr "CC BY-SA クリエイティブ・コモンズ 表示−継承" -#: ../src/libs/metadata.c:961 +#: ../src/libs/metadata.c:796 msgid "Creative Commons Attribution-ShareAlike (CC BY-SA)" msgstr "Creative Commons Attribution-ShareAlike (CC BY-SA)" -#: ../src/libs/metadata.c:962 +#: ../src/libs/metadata.c:797 msgid "CC BY-ND" msgstr "CC BY-ND クリエイティブ・コモンズ 表示-改変禁止" -#: ../src/libs/metadata.c:963 +#: ../src/libs/metadata.c:798 msgid "Creative Commons Attribution-NoDerivs (CC BY-ND)" msgstr "Creative Commons Attribution-NoDerivs (CC BY-ND)" -#: ../src/libs/metadata.c:964 +#: ../src/libs/metadata.c:799 msgid "CC BY-NC" msgstr "CC BY-NC クリエイティブ・コモンズ 表示-非営利" -#: ../src/libs/metadata.c:965 +#: ../src/libs/metadata.c:800 msgid "Creative Commons Attribution-NonCommercial (CC BY-NC)" msgstr "Creative Commons Attribution-NonCommercial (CC BY-NC)" -#: ../src/libs/metadata.c:966 +#: ../src/libs/metadata.c:801 msgid "CC BY-NC-SA" msgstr "CC BY-NC-SA クリエイティブ・コモンズ 表示-非営利-継承" -#: ../src/libs/metadata.c:967 +#: ../src/libs/metadata.c:802 msgid "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" msgstr "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" -#: ../src/libs/metadata.c:968 +#: ../src/libs/metadata.c:803 msgid "CC BY-NC-ND" msgstr "CC BY-NC-ND クリエイティブ・コモンズ 表示-非営利-改変禁止" -#: ../src/libs/metadata.c:969 +#: ../src/libs/metadata.c:804 msgid "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" msgstr "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" -#: ../src/libs/metadata.c:970 ../src/libs/metadata.c:971 +#: ../src/libs/metadata.c:805 ../src/libs/metadata.c:806 msgid "all rights reserved" msgstr "all rights reserved" #. internal -#: ../src/libs/metadata_view.c:123 +#: ../src/libs/metadata_view.c:125 msgid "filmroll" msgstr "フィルムロール" -#: ../src/libs/metadata_view.c:125 +#: ../src/libs/metadata_view.c:127 msgid "group id" msgstr "グループid" -#: ../src/libs/metadata_view.c:127 +#: ../src/libs/metadata_view.c:129 msgid "version" msgstr "バージョン" -#: ../src/libs/metadata_view.c:130 +#: ../src/libs/metadata_view.c:132 msgid "import timestamp" msgstr "インポート日時" -#: ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:133 msgid "change timestamp" msgstr "変更日時" -#: ../src/libs/metadata_view.c:132 +#: ../src/libs/metadata_view.c:134 msgid "export timestamp" msgstr "エクスポート日時" -#: ../src/libs/metadata_view.c:133 +#: ../src/libs/metadata_view.c:135 msgid "print timestamp" msgstr "印刷日時" -#: ../src/libs/metadata_view.c:134 +#: ../src/libs/metadata_view.c:136 msgid "flags" msgstr "フラグ" -#: ../src/libs/metadata_view.c:144 +#: ../src/libs/metadata_view.c:146 +msgid "35mm equiv focal length" +msgstr "35mm換算焦点距離" + +#: ../src/libs/metadata_view.c:148 msgid "focus distance" msgstr "被写体までの距離" -#: ../src/libs/metadata_view.c:146 +#: ../src/libs/metadata_view.c:150 msgid "datetime" msgstr "日時" -#: ../src/libs/metadata_view.c:149 +#: ../src/libs/metadata_view.c:153 msgid "export width" msgstr "エクスポート幅" -#: ../src/libs/metadata_view.c:150 +#: ../src/libs/metadata_view.c:154 msgid "export height" msgstr "エクスポート高さ" -#: ../src/libs/metadata_view.c:158 +#: ../src/libs/metadata_view.c:162 msgid "longitude" msgstr "経度" -#: ../src/libs/metadata_view.c:159 +#: ../src/libs/metadata_view.c:163 msgid "elevation" msgstr "標高" -#: ../src/libs/metadata_view.c:163 +#: ../src/libs/metadata_view.c:167 msgid "categories" msgstr "カテゴリー" -#: ../src/libs/metadata_view.c:170 +#: ../src/libs/metadata_view.c:174 msgid "image information" msgstr "画像情報" -#: ../src/libs/metadata_view.c:330 +#: ../src/libs/metadata_view.c:334 msgid "unused/deprecated" msgstr "未使用/非推奨" -#: ../src/libs/metadata_view.c:331 +#: ../src/libs/metadata_view.c:335 msgid "LDR" msgstr "LDR" -#: ../src/libs/metadata_view.c:334 +#: ../src/libs/metadata_view.c:338 msgid "marked for deletion" msgstr "削除マークをつけました" -#: ../src/libs/metadata_view.c:335 +#: ../src/libs/metadata_view.c:339 msgid "auto-applying presets applied" msgstr "自動適用プリセットが適用されました" -#: ../src/libs/metadata_view.c:337 +#: ../src/libs/metadata_view.c:341 msgid "has .txt" msgstr ".txtがあります" -#: ../src/libs/metadata_view.c:338 +#: ../src/libs/metadata_view.c:342 msgid "has .wav" msgstr ".wavがあります" -#: ../src/libs/metadata_view.c:356 +#: ../src/libs/metadata_view.c:360 #, c-format msgid "image has %d star" msgid_plural "image has %d stars" msgstr[0] "評価%dです" msgstr[1] "評価%dです" -#: ../src/libs/metadata_view.c:432 +#: ../src/libs/metadata_view.c:436 #, c-format msgid "loader: %s" msgstr "ローダ:%s" -#: ../src/libs/metadata_view.c:623 +#: ../src/libs/metadata_view.c:626 msgid "<various values>" msgstr "<様々な値>" -#: ../src/libs/metadata_view.c:636 +#: ../src/libs/metadata_view.c:639 #, c-format msgid "" "double-click to jump to film roll\n" @@ -22844,32 +23533,28 @@ "ダブルクリックすると、以下のフィルムロールへ移動します\n" "%s" -#: ../src/libs/metadata_view.c:728 +#: ../src/libs/metadata_view.c:731 #, c-format msgid "%+.2f EV" msgstr "%+.2f EV" -#: ../src/libs/metadata_view.c:735 -#, c-format -msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" -msgstr "%.1f mm(フルサイズ換算%.1f mm、クロップ%.1f)" - -#: ../src/libs/metadata_view.c:740 +#: ../src/libs/metadata_view.c:737 ../src/libs/metadata_view.c:749 +#: ../src/libs/metadata_view.c:754 #, c-format msgid "%.1f mm" msgstr "%.1f mm" -#: ../src/libs/metadata_view.c:751 +#: ../src/libs/metadata_view.c:778 #, c-format msgid "infinity" msgstr "無限" -#: ../src/libs/metadata_view.c:755 +#: ../src/libs/metadata_view.c:782 #, c-format msgid "%.2f m" msgstr "%.2fm" -#: ../src/libs/metadata_view.c:1232 +#: ../src/libs/metadata_view.c:1262 msgid "" "drag and drop one row at a time until you get the desired order\n" "untick to hide metadata which are not of interest for you\n" @@ -22879,7 +23564,7 @@ "必要ないメタデータを非表示にするにはチェックを外します\n" "複数の異なる設定が必要な場合は、プリセットを使用してください" -#: ../src/libs/metadata_view.c:1388 +#: ../src/libs/metadata_view.c:1423 msgid "jump to film roll" msgstr "フィルムロールへ移動" @@ -22904,7 +23589,7 @@ msgid "recent collections settings" msgstr "最近のコレクションの設定" -#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1769 +#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1753 msgid "workflow: scene-referred" msgstr "ワークフロー:シーン参照" @@ -22922,12 +23607,12 @@ #. FIXME don't check here if on/off is enabled, because it depends on image (reload_defaults) #. respond later to image changed signal -#: ../src/libs/modulegroups.c:306 ../src/libs/modulegroups.c:318 -#: ../src/libs/modulegroups.c:2427 ../src/libs/modulegroups.c:2429 +#: ../src/libs/modulegroups.c:307 ../src/libs/modulegroups.c:319 +#: ../src/libs/modulegroups.c:2411 ../src/libs/modulegroups.c:2413 msgid "on-off" msgstr "オン/オフ" -#: ../src/libs/modulegroups.c:498 ../src/libs/modulegroups.c:501 +#: ../src/libs/modulegroups.c:501 ../src/libs/modulegroups.c:504 msgid "" "this quick access widget is disabled as there are multiple instances of this " "module present. Please use the full module to access this widget..." @@ -22936,165 +23621,165 @@ "ジェットは無効になっています\n" "このウィジェットにアクセスするには、モジュール本体を使用してください..." -#: ../src/libs/modulegroups.c:591 +#: ../src/libs/modulegroups.c:594 msgid "(some features may only be available in the full module interface)" msgstr "" "(モジュール本体のインターフェースでのみ使用出来る機能があるかもしれません)" -#: ../src/libs/modulegroups.c:635 +#: ../src/libs/modulegroups.c:632 #, c-format msgid "go to the full version of the %s module" msgstr "%sモジュールの本体へ移動します" -#: ../src/libs/modulegroups.c:1556 ../src/libs/modulegroups.c:1641 -#: ../src/libs/modulegroups.c:1677 ../src/libs/modulegroups.c:1727 -#: ../src/libs/modulegroups.c:1817 +#: ../src/libs/modulegroups.c:1538 ../src/libs/modulegroups.c:1624 +#: ../src/libs/modulegroups.c:1660 ../src/libs/modulegroups.c:1710 +#: ../src/libs/modulegroups.c:1801 msgctxt "modulegroup" msgid "base" msgstr "基本" -#: ../src/libs/modulegroups.c:1575 +#: ../src/libs/modulegroups.c:1557 msgctxt "modulegroup" msgid "tone" msgstr "トーン" -#: ../src/libs/modulegroups.c:1584 ../src/libs/modulegroups.c:1691 -#: ../src/libs/modulegroups.c:1741 +#: ../src/libs/modulegroups.c:1566 ../src/libs/modulegroups.c:1674 +#: ../src/libs/modulegroups.c:1724 msgctxt "modulegroup" msgid "color" msgstr "色" -#: ../src/libs/modulegroups.c:1599 ../src/libs/modulegroups.c:1699 -#: ../src/libs/modulegroups.c:1746 +#: ../src/libs/modulegroups.c:1582 ../src/libs/modulegroups.c:1682 +#: ../src/libs/modulegroups.c:1730 msgctxt "modulegroup" msgid "correct" msgstr "補正" -#: ../src/libs/modulegroups.c:1617 ../src/libs/modulegroups.c:1711 -#: ../src/libs/modulegroups.c:1758 ../src/libs/modulegroups.c:2321 +#: ../src/libs/modulegroups.c:1600 ../src/libs/modulegroups.c:1694 +#: ../src/libs/modulegroups.c:1742 ../src/libs/modulegroups.c:2305 msgctxt "modulegroup" msgid "effect" msgstr "エフェクト" -#: ../src/libs/modulegroups.c:1635 +#: ../src/libs/modulegroups.c:1618 msgid "modules: all" msgstr "モジュール:全て" -#: ../src/libs/modulegroups.c:1656 +#: ../src/libs/modulegroups.c:1639 msgctxt "modulegroup" msgid "grading" msgstr "グレーディング" -#: ../src/libs/modulegroups.c:1664 ../src/libs/modulegroups.c:2325 +#: ../src/libs/modulegroups.c:1647 ../src/libs/modulegroups.c:2309 msgctxt "modulegroup" msgid "effects" msgstr "エフェクト" -#: ../src/libs/modulegroups.c:1672 +#: ../src/libs/modulegroups.c:1655 msgid "workflow: beginner" msgstr "ワークフロー:初心者" -#: ../src/libs/modulegroups.c:1721 +#: ../src/libs/modulegroups.c:1704 msgid "workflow: display-referred" msgstr "ワークフロー:ディスプレイ参照" -#: ../src/libs/modulegroups.c:1773 +#: ../src/libs/modulegroups.c:1757 msgid "search only" msgstr "検索のみ" -#: ../src/libs/modulegroups.c:1779 ../src/libs/modulegroups.c:2090 -#: ../src/libs/modulegroups.c:2599 +#: ../src/libs/modulegroups.c:1763 ../src/libs/modulegroups.c:2074 +#: ../src/libs/modulegroups.c:2583 msgctxt "modulegroup" msgid "deprecated" msgstr "非推奨" -#: ../src/libs/modulegroups.c:1792 +#: ../src/libs/modulegroups.c:1776 msgid "previous config" msgstr "以前の設定" -#: ../src/libs/modulegroups.c:1793 +#: ../src/libs/modulegroups.c:1777 msgid "previous layout" msgstr "以前のレイアウト" -#: ../src/libs/modulegroups.c:1797 +#: ../src/libs/modulegroups.c:1781 msgid "previous config with new layout" msgstr "新しいレイアウトで以前の設定" -#: ../src/libs/modulegroups.c:1957 ../src/libs/modulegroups.c:2472 -#: ../src/libs/modulegroups.c:2484 +#: ../src/libs/modulegroups.c:1941 ../src/libs/modulegroups.c:2456 +#: ../src/libs/modulegroups.c:2468 msgid "remove this widget" msgstr "このウィジェットを削除します" -#: ../src/libs/modulegroups.c:2107 ../src/libs/modulegroups.c:2347 +#: ../src/libs/modulegroups.c:2091 ../src/libs/modulegroups.c:2331 msgid "remove this module" msgstr "このモジュールを削除します" #. does it belong to recommended modules ? -#: ../src/libs/modulegroups.c:2316 +#: ../src/libs/modulegroups.c:2300 msgid "base" msgstr "基本" -#: ../src/libs/modulegroups.c:2319 +#: ../src/libs/modulegroups.c:2303 msgid "tone" msgstr "トーン" -#: ../src/libs/modulegroups.c:2322 +#: ../src/libs/modulegroups.c:2306 msgid "technical" msgstr "テクニカル" -#: ../src/libs/modulegroups.c:2323 +#: ../src/libs/modulegroups.c:2307 msgid "grading" msgstr "グレーディング" -#: ../src/libs/modulegroups.c:2329 ../src/libs/modulegroups.c:2337 +#: ../src/libs/modulegroups.c:2313 ../src/libs/modulegroups.c:2321 msgid "add this module" msgstr "このモジュールを追加する" #. show the submenu with all the modules -#: ../src/libs/modulegroups.c:2359 ../src/libs/modulegroups.c:2559 +#: ../src/libs/modulegroups.c:2343 ../src/libs/modulegroups.c:2543 msgid "all available modules" msgstr "全ての使用可能なモジュール" -#: ../src/libs/modulegroups.c:2367 +#: ../src/libs/modulegroups.c:2351 msgid "add module" msgstr "モジュールを追加する" -#: ../src/libs/modulegroups.c:2372 +#: ../src/libs/modulegroups.c:2356 msgid "remove module" msgstr "モジュールを削除する" -#: ../src/libs/modulegroups.c:2478 +#: ../src/libs/modulegroups.c:2462 msgid "header needed for other widgets" msgstr "他のウィジェットに必要なヘッダ" -#: ../src/libs/modulegroups.c:2494 ../src/libs/modulegroups.c:2501 +#: ../src/libs/modulegroups.c:2478 ../src/libs/modulegroups.c:2485 msgid "add this widget" msgstr "このウィジェットを追加します" -#: ../src/libs/modulegroups.c:2514 +#: ../src/libs/modulegroups.c:2498 msgid "currently invisible" msgstr "現在非表示" -#: ../src/libs/modulegroups.c:2543 +#: ../src/libs/modulegroups.c:2527 msgid "add widget" msgstr "ウィジェットを追加" -#: ../src/libs/modulegroups.c:2548 +#: ../src/libs/modulegroups.c:2532 msgid "remove widget" msgstr "ウィジェットを削除" -#: ../src/libs/modulegroups.c:2653 +#: ../src/libs/modulegroups.c:2637 msgid "show all history modules" msgstr "履歴内の全てのモジュールを表示" -#: ../src/libs/modulegroups.c:2656 ../src/libs/modulegroups.c:3834 +#: ../src/libs/modulegroups.c:2640 ../src/libs/modulegroups.c:3836 msgid "" "show modules that are present in the history stack, regardless of whether or " "not they are currently enabled" msgstr "" "履歴スタック内にあるモジュールを、現在有効であるかに関わらず、表示します" -#: ../src/libs/modulegroups.c:2747 ../src/libs/modulegroups.c:2816 +#: ../src/libs/modulegroups.c:2731 ../src/libs/modulegroups.c:2823 msgid "" "the following modules are deprecated because they have internal design " "mistakes that can't be corrected and alternative modules that correct them.\n" @@ -23104,19 +23789,19 @@ "替モジュールがあるため、非推奨です\n" "新しい編集方法に移行するために、次のリリースで削除されます" -#: ../src/libs/modulegroups.c:2775 ../src/libs/modulegroups.c:2776 +#: ../src/libs/modulegroups.c:2782 ../src/libs/modulegroups.c:2783 msgid "quick access panel" msgstr "クイックアクセスパネル" -#: ../src/libs/modulegroups.c:2786 +#: ../src/libs/modulegroups.c:2793 msgid "show only active modules" msgstr "アクティブなモジュールのみ表示" -#: ../src/libs/modulegroups.c:2787 +#: ../src/libs/modulegroups.c:2794 msgid "active modules" msgstr "アクティブなモジュール" -#: ../src/libs/modulegroups.c:2792 +#: ../src/libs/modulegroups.c:2799 msgid "" "presets\n" "ctrl+click to manage" @@ -23124,143 +23809,147 @@ "プリセット\n" "Ctrl+クリックすると、管理画面を表示します" -#: ../src/libs/modulegroups.c:2798 +#: ../src/libs/modulegroups.c:2805 msgid "search modules" msgstr "モジュールを検索" -#: ../src/libs/modulegroups.c:2799 +#: ../src/libs/modulegroups.c:2806 msgid "search modules by name or tag" msgstr "名前またはタグでモジュールを検索" -#: ../src/libs/modulegroups.c:2809 +#: ../src/libs/modulegroups.c:2816 msgid "clear text" msgstr "テキストを削除する" -#: ../src/libs/modulegroups.c:3051 +#: ../src/libs/modulegroups.c:3056 msgid "basic icon" msgstr "基本アイコン" -#: ../src/libs/modulegroups.c:3061 +#: ../src/libs/modulegroups.c:3066 msgid "active icon" msgstr "アクティブアイコン" -#: ../src/libs/modulegroups.c:3071 +#: ../src/libs/modulegroups.c:3076 msgid "color icon" msgstr "色アイコン" -#: ../src/libs/modulegroups.c:3081 +#: ../src/libs/modulegroups.c:3086 msgid "correct icon" msgstr "補正アイコン" -#: ../src/libs/modulegroups.c:3091 +#: ../src/libs/modulegroups.c:3096 msgid "effect icon" msgstr "エフェクトアイコン" -#: ../src/libs/modulegroups.c:3101 +#: ../src/libs/modulegroups.c:3106 msgid "favorites icon" msgstr "お気に入りアイコン" -#: ../src/libs/modulegroups.c:3111 +#: ../src/libs/modulegroups.c:3116 msgid "tone icon" msgstr "トーンアイコン" -#: ../src/libs/modulegroups.c:3121 +#: ../src/libs/modulegroups.c:3126 msgid "grading icon" msgstr "グレーディングアイコン" -#: ../src/libs/modulegroups.c:3131 +#: ../src/libs/modulegroups.c:3136 msgid "technical icon" msgstr "テクニカルアイコン" -#: ../src/libs/modulegroups.c:3164 +#: ../src/libs/modulegroups.c:3169 msgid "quick access panel widgets" msgstr "クイックアクセスパネルウィジェット" -#: ../src/libs/modulegroups.c:3166 +#: ../src/libs/modulegroups.c:3171 msgid "quick access" msgstr "クイックアクセス" -#: ../src/libs/modulegroups.c:3186 +#: ../src/libs/modulegroups.c:3191 msgid "add widget to the quick access panel" msgstr "クイックアクセスパネルにウィジェットを追加します" -#: ../src/libs/modulegroups.c:3218 +#: ../src/libs/modulegroups.c:3223 msgid "group icon" msgstr "グループ アイコン" -#: ../src/libs/modulegroups.c:3227 +#: ../src/libs/modulegroups.c:3232 msgid "group name" msgstr "グループ名" -#: ../src/libs/modulegroups.c:3238 +#: ../src/libs/modulegroups.c:3243 msgid "remove group" msgstr "グループを削除します" -#: ../src/libs/modulegroups.c:3264 +#: ../src/libs/modulegroups.c:3269 msgid "move group to the left" msgstr "クループを左に移動します" -#: ../src/libs/modulegroups.c:3272 +#: ../src/libs/modulegroups.c:3277 msgid "add module to the group" msgstr "グループにモジュールを追加します" -#: ../src/libs/modulegroups.c:3283 +#: ../src/libs/modulegroups.c:3288 msgid "move group to the right" msgstr "グループを右に移動します" -#: ../src/libs/modulegroups.c:3463 +#: ../src/libs/modulegroups.c:3464 msgid "rename preset" msgstr "プリセット名を変更してください" -#: ../src/libs/modulegroups.c:3470 +#: ../src/libs/modulegroups.c:3467 +msgid "_rename" +msgstr "_名前の変更" + +#: ../src/libs/modulegroups.c:3473 msgid "new preset name:" msgstr "新しいプリセット名:" -#: ../src/libs/modulegroups.c:3471 +#: ../src/libs/modulegroups.c:3474 msgid "a preset with this name already exists!" msgstr "この名前のプリセットは既に存在しています!" -#: ../src/libs/modulegroups.c:3804 +#: ../src/libs/modulegroups.c:3806 msgid "preset: " msgstr "プリセット:" -#: ../src/libs/modulegroups.c:3811 +#: ../src/libs/modulegroups.c:3813 msgid "remove the preset" msgstr "プリセットを削除します" -#: ../src/libs/modulegroups.c:3813 +#: ../src/libs/modulegroups.c:3815 msgid "duplicate the preset" msgstr "プリセットを複製します" -#: ../src/libs/modulegroups.c:3815 +#: ../src/libs/modulegroups.c:3817 msgid "rename the preset" msgstr "プリセット名を変更します" -#: ../src/libs/modulegroups.c:3817 +#: ../src/libs/modulegroups.c:3819 msgid "create a new empty preset" msgstr "新しい空のプリセットを作成します" -#: ../src/libs/modulegroups.c:3825 +#: ../src/libs/modulegroups.c:3827 msgid "show search line" msgstr "検索バーを表示" -#: ../src/libs/modulegroups.c:3828 +#: ../src/libs/modulegroups.c:3830 msgid "show quick access panel" msgstr "クイックアクセスパネルを表示" -#: ../src/libs/modulegroups.c:3831 +#: ../src/libs/modulegroups.c:3833 msgid "show all history modules in active group" msgstr "アクティブなグループの履歴中の全てのモジュールを表示" -#: ../src/libs/modulegroups.c:3843 +#: ../src/libs/modulegroups.c:3845 msgid "auto-apply this preset" msgstr "プリセットの自動適用" -#: ../src/libs/modulegroups.c:3858 +#: ../src/libs/modulegroups.c:3860 msgid "module groups" msgstr "モジュールグループ" -#: ../src/libs/modulegroups.c:3875 +#: ../src/libs/modulegroups.c:3877 msgid "" "this is a built-in read-only preset. duplicate it if you want to make changes" msgstr "" @@ -23270,16 +23959,16 @@ msgid "navigation" msgstr "ナビゲーション" -#: ../src/libs/navigation.c:111 ../src/libs/navigation.c:191 +#: ../src/libs/navigation.c:112 ../src/libs/navigation.c:194 msgctxt "navigationbox" msgid "fill" msgstr "画面を満たす" -#: ../src/libs/navigation.c:114 ../src/libs/navigation.c:189 +#: ../src/libs/navigation.c:115 ../src/libs/navigation.c:192 msgid "small" msgstr "縮小" -#: ../src/libs/navigation.c:151 +#: ../src/libs/navigation.c:154 msgid "" "navigation\n" "click or drag to position zoomed area in center view" @@ -23287,35 +23976,35 @@ "ナビゲーション\n" "クリックまたはドラッグで、センタービューにおいてズームする領域を定めます" -#: ../src/libs/navigation.c:173 +#: ../src/libs/navigation.c:176 msgid "hide navigation thumbnail" msgstr "ナビゲーションのサムネイルを非表示" -#: ../src/libs/navigation.c:187 +#: ../src/libs/navigation.c:190 msgid "image zoom level" msgstr "画像のズームレベル" -#: ../src/libs/navigation.c:192 +#: ../src/libs/navigation.c:195 msgid "50%" msgstr "50%" -#: ../src/libs/navigation.c:193 +#: ../src/libs/navigation.c:196 msgid "100%" msgstr "100%" -#: ../src/libs/navigation.c:194 +#: ../src/libs/navigation.c:197 msgid "200%" msgstr "200%" -#: ../src/libs/navigation.c:195 +#: ../src/libs/navigation.c:198 msgid "400%" msgstr "400%" -#: ../src/libs/navigation.c:196 +#: ../src/libs/navigation.c:199 msgid "800%" msgstr "800%" -#: ../src/libs/navigation.c:197 +#: ../src/libs/navigation.c:200 msgid "1600%" msgstr "1600%" @@ -23559,15 +24248,15 @@ msgid "print with current settings" msgstr "現在の設定で印刷します" -#: ../src/libs/select.c:136 +#: ../src/libs/select.c:137 msgid "select all images in current collection" msgstr "現在のコレクション内の全ての画像を選択します" -#: ../src/libs/select.c:140 +#: ../src/libs/select.c:141 msgid "clear selection" msgstr "選択を取り消します" -#: ../src/libs/select.c:144 +#: ../src/libs/select.c:145 msgid "" "select unselected images\n" "in current collection" @@ -23575,7 +24264,7 @@ "現在のコレクション内の\n" "選択されていない画像を選択します" -#: ../src/libs/select.c:148 +#: ../src/libs/select.c:149 msgid "" "select all images which are in the same\n" "film roll as the selected images" @@ -23583,7 +24272,7 @@ "選択画像と同じフィルムロール内の\n" "全ての画像を選択します" -#: ../src/libs/select.c:152 +#: ../src/libs/select.c:153 msgid "" "select untouched images in\n" "current collection" @@ -23601,36 +24290,40 @@ msgid "create" msgstr "作成" -#: ../src/libs/snapshots.c:92 +#: ../src/libs/snapshots.c:88 msgid "snapshots" msgstr "スナップショット" -#: ../src/libs/snapshots.c:141 +#: ../src/libs/snapshots.c:137 msgctxt "snapshot sign" msgid "S" msgstr "S" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:662 +msgid "snapshots for removed image have been deleted" +msgstr "削除された画像のスナップショットは消去されています" + +#: ../src/libs/snapshots.c:703 #, c-format msgid "↗ %s '%s'" msgstr "↗ %s '%s'" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:703 msgid "this snapshot was taken from" msgstr "このスナップショットは次の画像から撮られています" -#: ../src/libs/snapshots.c:663 +#: ../src/libs/snapshots.c:742 msgid "take snapshot" msgstr "スナップショットを撮影" -#: ../src/libs/snapshots.c:665 +#: ../src/libs/snapshots.c:744 msgid "" "take snapshot to compare with another image or the same image at another " "stage of development" msgstr "" "スナップショットを撮り、別の画像あるいは同じ画像の別の現像段階と比較します" -#: ../src/libs/snapshots.c:734 +#: ../src/libs/snapshots.c:790 msgid "toggle last snapshot" msgstr "最後のスナップショットのオン/オフ切り替え" @@ -23647,7 +24340,11 @@ msgstr[0] "`%d'個のスタイルを本当に削除しますか?" msgstr[1] "`%d'個のスタイルを本当に削除しますか?" -#: ../src/libs/styles.c:444 ../src/libs/styles.c:627 +#: ../src/libs/styles.c:441 ../src/libs/styles.c:626 +msgid "_overwrite" +msgstr "_上書き" + +#: ../src/libs/styles.c:446 ../src/libs/styles.c:631 #, c-format msgid "" "style `%s' already exists.\n" @@ -23656,24 +24353,24 @@ "スタイル`%s'は既に存在します\n" "上書きしますか?\n" -#: ../src/libs/styles.c:446 ../src/libs/styles.c:629 +#: ../src/libs/styles.c:448 ../src/libs/styles.c:633 msgid "apply this option to all existing styles" msgstr "このオプションを全ての既存のスタイルに適用します" -#: ../src/libs/styles.c:509 +#: ../src/libs/styles.c:511 #, c-format msgid "style %s was successfully exported" msgstr "スタイル%sは正常にインポートされました" -#: ../src/libs/styles.c:526 +#: ../src/libs/styles.c:528 msgid "select style" msgstr "スタイルを選択してください" -#: ../src/libs/styles.c:536 +#: ../src/libs/styles.c:538 msgid "darktable style files" msgstr "darktableスタイルファイル" -#: ../src/libs/styles.c:815 +#: ../src/libs/styles.c:819 msgid "" "available styles,\n" "double-click to apply" @@ -23681,73 +24378,73 @@ "使用可能なスタイル\n" "ダブルクリックすると、適用します" -#: ../src/libs/styles.c:824 ../src/libs/styles.c:825 +#: ../src/libs/styles.c:828 ../src/libs/styles.c:829 msgid "filter style names" msgstr "スタイルを検索" -#: ../src/libs/styles.c:837 +#: ../src/libs/styles.c:841 msgid "create duplicate" msgstr "複製を作成" -#: ../src/libs/styles.c:844 +#: ../src/libs/styles.c:848 msgid "creates a duplicate of the image before applying style" msgstr "スタイルを適用する前に画像の複製を作成します" -#: ../src/libs/styles.c:862 +#: ../src/libs/styles.c:866 msgid "create..." msgstr "作成..." -#: ../src/libs/styles.c:864 +#: ../src/libs/styles.c:868 msgid "create styles from history stack of selected images" msgstr "選択した画像の履歴スタックからスタイルを作成します" -#: ../src/libs/styles.c:869 ../src/libs/tagging.c:2252 +#: ../src/libs/styles.c:873 ../src/libs/tagging.c:2283 msgid "edit..." msgstr "編集..." -#: ../src/libs/styles.c:871 +#: ../src/libs/styles.c:875 msgid "edit the selected styles in list above" msgstr "上のリストで選択したスタイルを編集します" -#: ../src/libs/styles.c:878 +#: ../src/libs/styles.c:882 msgid "removes the selected styles in list above" msgstr "上のリストで選択したスタイルを削除します" -#: ../src/libs/styles.c:885 +#: ../src/libs/styles.c:889 msgid "import styles from a style files" msgstr "スタイルをスタイルファイルからインポートします" -#: ../src/libs/styles.c:892 +#: ../src/libs/styles.c:896 msgid "export the selected styles into a style files" msgstr "選択したスタイルをスタイルファイルにエクスポートします" -#: ../src/libs/styles.c:899 +#: ../src/libs/styles.c:903 msgid "apply the selected styles in list above to selected images" msgstr "上のリストで選択したスタイルを選択した画像に適用します" -#: ../src/libs/tagging.c:105 +#: ../src/libs/tagging.c:109 msgid "tagging" msgstr "タグ付け" -#: ../src/libs/tagging.c:1255 +#: ../src/libs/tagging.c:1258 msgid "attach tag to all" msgstr "全てにタグを付けます" -#: ../src/libs/tagging.c:1263 ../src/libs/tagging.c:2225 +#: ../src/libs/tagging.c:1266 ../src/libs/tagging.c:2256 msgid "detach tag" msgstr "タグを外します" -#: ../src/libs/tagging.c:1483 +#: ../src/libs/tagging.c:1486 msgid "delete tag?" msgstr "タグを削除しますか?" -#: ../src/libs/tagging.c:1490 ../src/libs/tagging.c:1578 -#: ../src/libs/tagging.c:1789 ../src/libs/tagging.c:2063 +#: ../src/libs/tagging.c:1496 ../src/libs/tagging.c:1587 +#: ../src/libs/tagging.c:1814 ../src/libs/tagging.c:2093 #, c-format msgid "selected: %s" msgstr "選択されたタグ:%s" -#: ../src/libs/tagging.c:1497 +#: ../src/libs/tagging.c:1503 #, c-format msgid "" "do you really want to delete the tag `%s'?\n" @@ -23762,73 +24459,73 @@ "タグ`%s'を本当に削除しますか?\n" "%d枚の画像にこのタグが付いています!" -#: ../src/libs/tagging.c:1531 +#: ../src/libs/tagging.c:1537 #, c-format msgid "tag %s removed" msgstr "タグ%sを削除しました" -#: ../src/libs/tagging.c:1571 +#: ../src/libs/tagging.c:1577 msgid "delete node?" msgstr "ノードを削除しますか?" -#: ../src/libs/tagging.c:1585 +#: ../src/libs/tagging.c:1594 #, c-format msgid "<u>%d</u> tag will be deleted" msgid_plural "<u>%d</u> tags will be deleted" msgstr[0] "<u>%d</u>個のタグが削除されます" msgstr[1] "<u>%d</u>個のタグが削除されます" -#: ../src/libs/tagging.c:1590 ../src/libs/tagging.c:1801 -#: ../src/libs/tagging.c:2075 +#: ../src/libs/tagging.c:1599 ../src/libs/tagging.c:1826 +#: ../src/libs/tagging.c:2105 #, c-format msgid "<u>%d</u> image will be updated" msgid_plural "<u>%d</u> images will be updated" msgstr[0] "<u>%d</u>枚の画像が更新されます" msgstr[1] "<u>%d</u>枚の画像が更新されます" -#: ../src/libs/tagging.c:1616 +#: ../src/libs/tagging.c:1625 #, c-format msgid "%d tags removed" msgstr "%d個のタグを削除しました" -#: ../src/libs/tagging.c:1652 +#: ../src/libs/tagging.c:1668 msgid "create tag" msgstr "タグを作成" -#: ../src/libs/tagging.c:1662 ../src/libs/tagging.c:1809 +#: ../src/libs/tagging.c:1681 ../src/libs/tagging.c:1834 msgid "name: " msgstr "タグ名:" -#: ../src/libs/tagging.c:1674 +#: ../src/libs/tagging.c:1696 #, c-format msgid "add to: \"%s\" " msgstr "\"%s\"に追加" -#: ../src/libs/tagging.c:1680 ../src/libs/tagging.c:1824 +#: ../src/libs/tagging.c:1702 ../src/libs/tagging.c:1851 msgid "category" msgstr "カテゴリー" -#: ../src/libs/tagging.c:1689 ../src/libs/tagging.c:1833 +#: ../src/libs/tagging.c:1711 ../src/libs/tagging.c:1860 msgid "synonyms: " msgstr "シノニム:" -#: ../src/libs/tagging.c:1706 ../src/libs/tagging.c:1855 -#: ../src/libs/tagging.c:2097 +#: ../src/libs/tagging.c:1728 ../src/libs/tagging.c:1882 +#: ../src/libs/tagging.c:2128 msgid "empty tag is not allowed, aborting" msgstr "空のタグは無効です。中止します" -#: ../src/libs/tagging.c:1717 +#: ../src/libs/tagging.c:1739 msgid "tag name already exists. aborting." msgstr "タグ名が既に存在します。中止します" -#: ../src/libs/tagging.c:1796 ../src/libs/tagging.c:2070 +#: ../src/libs/tagging.c:1821 ../src/libs/tagging.c:2100 #, c-format msgid "<u>%d</u> tag will be updated" msgid_plural "<u>%d</u> tags will be updated" msgstr[0] "<u>%d</u>個のタグが更新されます" msgstr[1] "<u>%d</u>個のタグが更新されます" -#: ../src/libs/tagging.c:1857 +#: ../src/libs/tagging.c:1884 msgid "" "'|' character is not allowed for renaming tag.\n" "to modify the hierarchy use rename path instead. Aborting." @@ -23836,100 +24533,100 @@ "'|'はタグ名の変更で使うことが出来ません\n" "階層を変更するには、パスの名前を変更してください。 中止します" -#: ../src/libs/tagging.c:1896 ../src/libs/tagging.c:2004 +#: ../src/libs/tagging.c:1923 ../src/libs/tagging.c:2031 #, c-format msgid "at least one new tag name (%s) already exists, aborting" msgstr "新しいタグ名(%s)が既に存在します。中止します" -#: ../src/libs/tagging.c:2056 +#: ../src/libs/tagging.c:2083 msgid "change path" msgstr "パスの変更" -#: ../src/libs/tagging.c:2099 +#: ../src/libs/tagging.c:2130 msgid "'|' misplaced, empty tag is not allowed, aborting" msgstr "'|' の場所が不適切です。空のタグは許可されません。中止します" -#: ../src/libs/tagging.c:2195 +#: ../src/libs/tagging.c:2226 #, c-format msgid "tag %s created" msgstr "タグ%sが作成されました" -#: ../src/libs/tagging.c:2221 +#: ../src/libs/tagging.c:2252 msgid "attach tag" msgstr "タグを付ける" -#: ../src/libs/tagging.c:2234 +#: ../src/libs/tagging.c:2265 msgid "create tag..." msgstr "タグを作成..." -#: ../src/libs/tagging.c:2240 +#: ../src/libs/tagging.c:2271 msgid "delete tag" msgstr "タグを削除..." -#: ../src/libs/tagging.c:2247 +#: ../src/libs/tagging.c:2278 msgid "delete node" msgstr "ノードを削除" -#: ../src/libs/tagging.c:2260 +#: ../src/libs/tagging.c:2291 msgid "change path..." msgstr "パスの変更..." -#: ../src/libs/tagging.c:2270 +#: ../src/libs/tagging.c:2301 msgid "set as a tag" msgstr "タグとして設定" -#: ../src/libs/tagging.c:2281 +#: ../src/libs/tagging.c:2312 msgid "copy to entry" msgstr "エントリにコピー" -#: ../src/libs/tagging.c:2298 +#: ../src/libs/tagging.c:2329 msgid "go to tag collection" msgstr "タグコレクションへ移動" -#: ../src/libs/tagging.c:2304 +#: ../src/libs/tagging.c:2335 msgid "go back to work" msgstr "作業に戻る" -#: ../src/libs/tagging.c:2461 +#: ../src/libs/tagging.c:2492 #, c-format msgid "%s" msgstr "%s" -#: ../src/libs/tagging.c:2462 +#: ../src/libs/tagging.c:2493 msgid "(private)" msgstr "(プライベート)" -#: ../src/libs/tagging.c:2488 +#: ../src/libs/tagging.c:2519 msgid "select a keyword file" msgstr "キーワードファイルを選択してください" -#: ../src/libs/tagging.c:2501 +#: ../src/libs/tagging.c:2532 msgid "error importing tags" msgstr "タグのインポート中にエラーが発生しました" -#: ../src/libs/tagging.c:2503 +#: ../src/libs/tagging.c:2534 #, c-format msgid "%zd tags imported" msgstr "%zd個のタグがインポートされました" -#: ../src/libs/tagging.c:2524 +#: ../src/libs/tagging.c:2555 msgid "select file to export to" msgstr "ファイルを選択して次の宛先にエクスポートします" -#: ../src/libs/tagging.c:2538 +#: ../src/libs/tagging.c:2569 msgid "error exporting tags" msgstr "タグのエクスポート中にエラーが発生しました" -#: ../src/libs/tagging.c:2540 +#: ../src/libs/tagging.c:2571 #, c-format msgid "%zd tags exported" msgstr "%zd個のタグがエクスポートされました" -#: ../src/libs/tagging.c:2964 +#: ../src/libs/tagging.c:2995 msgid "drop to root" msgstr "ルートにドロップ" -#: ../src/libs/tagging.c:3100 +#: ../src/libs/tagging.c:3131 msgid "" "attached tags\n" "press Delete or double-click to detach\n" @@ -23941,47 +24638,47 @@ "右クリックすると、添付済みタグに対して他のアクションをします\n" "Tabキーを押すと、入力にフォーカスします" -#: ../src/libs/tagging.c:3111 +#: ../src/libs/tagging.c:3142 msgid "attach" msgstr "付ける" -#: ../src/libs/tagging.c:3112 +#: ../src/libs/tagging.c:3143 msgid "attach tag to all selected images" msgstr "選択した画像全てにタグを付けます" -#: ../src/libs/tagging.c:3115 +#: ../src/libs/tagging.c:3146 msgid "detach" msgstr "外す" -#: ../src/libs/tagging.c:3116 +#: ../src/libs/tagging.c:3147 msgid "detach tag from all selected images" msgstr "選択した画像全てからタグを外します" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "toggle list with / without hierarchy" msgstr "リストを階層あり/なしに切り替えます" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "hide" msgstr "非表示" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "toggle sort by name or by count" msgstr "リストを名前順/カウント順に切り替えます" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "sort" msgstr "並び順" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "toggle show or not darktable tags" msgstr "darktableタグの表示/非表示を切り替えます" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "dttags" msgstr "dtタグ" -#: ../src/libs/tagging.c:3149 +#: ../src/libs/tagging.c:3180 msgid "" "enter tag name\n" "press Enter to create a new tag and attach it on selected images\n" @@ -23993,11 +24690,11 @@ "TabキーまたはDownキーを押すと、条件に合うタグの最初のものを選択します\n" "Shift+Tabキーを押すと、添付されているユーザー作成タグの最初のものを選択します" -#: ../src/libs/tagging.c:3160 ../src/libs/tagging.c:3166 +#: ../src/libs/tagging.c:3191 ../src/libs/tagging.c:3197 msgid "clear entry" msgstr "入力を削除します" -#: ../src/libs/tagging.c:3213 +#: ../src/libs/tagging.c:3244 msgid "" "tag dictionary,\n" "Enter or double-click to attach selected tag on selected images\n" @@ -24014,48 +24711,48 @@ "右クリックすると、選択したタグに対して他のアクションをします\n" "Shift+Tabキーを押すと、入力にフォーカスします" -#: ../src/libs/tagging.c:3248 +#: ../src/libs/tagging.c:3279 msgid "" "create a new tag with the\n" "name you entered" msgstr "入力した名前で新しいタグを作成します" -#: ../src/libs/tagging.c:3251 +#: ../src/libs/tagging.c:3282 msgid "import tags from a Lightroom keyword file" msgstr "Lightroomのキーワードファイルからタブをインポートします" -#: ../src/libs/tagging.c:3254 +#: ../src/libs/tagging.c:3285 msgid "export all tags to a Lightroom keyword file" msgstr "Lightroomのキーワードファイルに全てのタグをエクスポートします" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "toggle list / tree view" msgstr "表示をリスト/ツリーに切り替えます" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "tree" msgstr "ツリー" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "toggle list with / without suggestion" msgstr "リストのサジェストあり/なしを切り替えます" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "suggestion" msgstr "サジェスト" -#: ../src/libs/tagging.c:3282 +#: ../src/libs/tagging.c:3313 msgid "redo last tag" msgstr "最後のタグのやり直し" -#: ../src/libs/tagging.c:3365 +#: ../src/libs/tagging.c:3396 msgid "" "tag shortcut is not active with tag tree view. please switch to list view" msgstr "" "タグツリービューではタグのショートカットがアクティブでありません。 リスト" "ビューに切り替えてください" -#: ../src/libs/tagging.c:3469 +#: ../src/libs/tagging.c:3500 msgid "tagging settings" msgstr "タグ付け設定" @@ -24072,27 +24769,6 @@ msgid "toggle color label of selected images" msgstr "選択した画像の色ラベルのオン/オフを切り替えます" -#: ../src/libs/tools/darktable.c:284 -#, c-format -msgid "copyright (c) the authors 2009-%s" -msgstr "copyright (c) the authors 2009-%s" - -#: ../src/libs/tools/darktable.c:288 -msgid "organize and develop images from digital cameras" -msgstr "デジタルカメラで撮影した画像を整理し現像します" - -#: ../src/libs/tools/darktable.c:300 -msgid "all those of you that made previous releases possible" -msgstr "これまでのリリースを可能にした全ての人たち" - -#: ../src/libs/tools/darktable.c:305 -msgid "and..." -msgstr "そして..." - -#: ../src/libs/tools/darktable.c:307 -msgid "translator-credits" -msgstr "翻訳者クレジット" - #: ../src/libs/tools/filmstrip.c:45 msgid "filmstrip" msgstr "フィルムストリップ" @@ -24409,35 +25085,35 @@ msgid "click to enter culling layout in dynamic mode." msgstr "クリックすると、選別レイアウト動的モードに入ります" -#: ../src/libs/tools/lighttable.c:368 +#: ../src/libs/tools/lighttable.c:365 msgid "toggle filemanager layout" msgstr "ファイルマネージャーレイアウトのオン/オフ切り替え" -#: ../src/libs/tools/lighttable.c:371 +#: ../src/libs/tools/lighttable.c:368 msgid "click to enter filemanager layout." msgstr "クリックすると、ファイルマネージャーレイアウトに入ります" -#: ../src/libs/tools/lighttable.c:377 +#: ../src/libs/tools/lighttable.c:374 msgid "toggle zoomable lighttable layout" msgstr "ズーム可能なライトテーブルのオン/オフ切り替え" -#: ../src/libs/tools/lighttable.c:380 +#: ../src/libs/tools/lighttable.c:377 msgid "click to enter zoomable lighttable layout." msgstr "クリックすると、ズーム可能なライトテーブルレイアウトに入ります" -#: ../src/libs/tools/lighttable.c:386 +#: ../src/libs/tools/lighttable.c:383 msgid "toggle culling mode" msgstr "選別モードのオン/オフ切り替え" -#: ../src/libs/tools/lighttable.c:394 +#: ../src/libs/tools/lighttable.c:391 msgid "toggle culling dynamic mode" msgstr "動的選別モードのオン/オフ切り替え" -#: ../src/libs/tools/lighttable.c:441 +#: ../src/libs/tools/lighttable.c:438 msgid "toggle culling zoom mode" msgstr "選別ズームモードのオン/オフ切り替え" -#: ../src/libs/tools/lighttable.c:443 +#: ../src/libs/tools/lighttable.c:440 msgid "exit current layout" msgstr "現在のレイアウトを出る" @@ -24520,7 +25196,7 @@ msgid "Lua options" msgstr "Lua オプション" -#: ../src/views/darkroom.c:607 +#: ../src/views/darkroom.c:503 #, c-format msgid "" "darktable could not load `%s', switching to lighttable now.\n" @@ -24543,62 +25219,62 @@ "カメラがサポートされていることが確かな場合、以下で報告してください\n" "https://github.com/darktable-org/darktable" -#: ../src/views/darkroom.c:625 +#: ../src/views/darkroom.c:521 #, c-format msgctxt "darkroom" msgid "loading `%s' ..." msgstr "`%s'を読み込んでいます..." -#: ../src/views/darkroom.c:749 ../src/views/darkroom.c:2496 +#: ../src/views/darkroom.c:668 ../src/views/darkroom.c:2335 msgid "gamut check" msgstr "色域の確認" -#: ../src/views/darkroom.c:749 +#: ../src/views/darkroom.c:668 msgid "soft proof" msgstr "ソフトプルーフ" #. fail :( -#: ../src/views/darkroom.c:787 ../src/views/print.c:356 +#: ../src/views/darkroom.c:708 ../src/views/print.c:356 msgid "no image to open!" msgstr "開く画像がありません!" -#: ../src/views/darkroom.c:1331 +#: ../src/views/darkroom.c:1232 msgid "no user-defined presets for favorite modules were found" msgstr "お気に入りのモジュールのユーザー定義プリセットが見つかりませんでした" -#: ../src/views/darkroom.c:1476 +#: ../src/views/darkroom.c:1377 msgid "no styles have been created yet" msgstr "スタイルはまだ作成されていません" -#: ../src/views/darkroom.c:2331 ../src/views/darkroom.c:2332 +#: ../src/views/darkroom.c:2170 ../src/views/darkroom.c:2171 msgid "quick access to presets" msgstr "プリセットに素早くアクセスします" -#: ../src/views/darkroom.c:2340 +#: ../src/views/darkroom.c:2179 msgid "quick access to styles" msgstr "スタイルに素早くアクセス" -#: ../src/views/darkroom.c:2342 +#: ../src/views/darkroom.c:2181 msgid "quick access for applying any of your styles" msgstr "スタイルの適用に素早くアクセスします" -#: ../src/views/darkroom.c:2348 +#: ../src/views/darkroom.c:2187 msgid "second window" msgstr "第2ウィンドウ" -#: ../src/views/darkroom.c:2351 +#: ../src/views/darkroom.c:2190 msgid "display a second darkroom image window" msgstr "2つ目のdarkroom画像ウィンドウを表示します" -#: ../src/views/darkroom.c:2356 +#: ../src/views/darkroom.c:2195 msgid "color assessment" msgstr "色の評価" -#: ../src/views/darkroom.c:2359 +#: ../src/views/darkroom.c:2198 msgid "toggle ISO 12646 color assessment conditions" msgstr "ISO 12646色評価条件の表示/非表示を切り替えます" -#: ../src/views/darkroom.c:2372 +#: ../src/views/darkroom.c:2211 msgid "" "toggle raw over exposed indication\n" "right click for options" @@ -24606,27 +25282,27 @@ "RAW露出過多インジケータのオン/オフを切り替えます\n" "右クリックでオプション" -#: ../src/views/darkroom.c:2388 +#: ../src/views/darkroom.c:2227 msgid "select how to mark the clipped pixels" msgstr "クリップしたピクセルをマークする方法を選択してください" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with CFA color" msgstr "色フィルタアレイの色でマーク" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with solid color" msgstr "単色でマーク" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "false color" msgstr "偽色" -#: ../src/views/darkroom.c:2393 ../src/views/darkroom.c:2444 +#: ../src/views/darkroom.c:2232 ../src/views/darkroom.c:2283 msgid "color scheme" msgstr "色" -#: ../src/views/darkroom.c:2394 +#: ../src/views/darkroom.c:2233 msgid "" "select the solid color to indicate over exposure.\n" "will only be used if mode = mark with solid color" @@ -24634,27 +25310,27 @@ "露出過多を示す色を選択してください\n" "単色でマークを選択している時のみ使用されます" -#: ../src/views/darkroom.c:2397 +#: ../src/views/darkroom.c:2236 msgctxt "solidcolor" msgid "red" msgstr "赤" -#: ../src/views/darkroom.c:2398 +#: ../src/views/darkroom.c:2237 msgctxt "solidcolor" msgid "green" msgstr "緑" -#: ../src/views/darkroom.c:2399 +#: ../src/views/darkroom.c:2238 msgctxt "solidcolor" msgid "blue" msgstr "青" -#: ../src/views/darkroom.c:2400 +#: ../src/views/darkroom.c:2239 msgctxt "solidcolor" msgid "black" msgstr "黒" -#: ../src/views/darkroom.c:2408 +#: ../src/views/darkroom.c:2247 msgid "" "threshold of what shall be considered overexposed\n" "1.0 - white level\n" @@ -24664,7 +25340,7 @@ "1.0:白レベル\n" "0.0:黒レベル" -#: ../src/views/darkroom.c:2422 +#: ../src/views/darkroom.c:2261 msgid "" "toggle clipping indication\n" "right click for options" @@ -24672,11 +25348,11 @@ "クリッピングインジケータのオン/オフを切り替えます\n" "右クリックでオプション" -#: ../src/views/darkroom.c:2437 +#: ../src/views/darkroom.c:2276 msgid "clipping preview mode" msgstr "クリッピングプレビューのモード" -#: ../src/views/darkroom.c:2438 +#: ../src/views/darkroom.c:2277 msgid "" "select the metric you want to preview\n" "full gamut is the combination of all other modes" @@ -24684,39 +25360,39 @@ "プレビューの測定基準を選択してください\n" "'全て'は他のモード全ての組み合わせです" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "full gamut" msgstr "全て" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "any RGB channel" msgstr "RGBチャンネル" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "luminance only" msgstr "輝度のみ" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "saturation only" msgstr "彩度のみ" -#: ../src/views/darkroom.c:2445 +#: ../src/views/darkroom.c:2284 msgid "select colors to indicate clipping" msgstr "クリッピングを示す色を選択してください" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "red & blue" msgstr "赤&青" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "purple & green" msgstr "紫&緑" -#: ../src/views/darkroom.c:2454 +#: ../src/views/darkroom.c:2293 msgid "lower threshold" msgstr "黒のしきい値" -#: ../src/views/darkroom.c:2455 +#: ../src/views/darkroom.c:2294 msgid "" "clipping threshold for the black point,\n" "in EV, relatively to white (0 EV).\n" @@ -24736,11 +25412,11 @@ "典型的なカラーの高光沢プリントの黒は-8.00EVです\n" "典型的な白黒の高光沢プリントの黒は-9.00EVです" -#: ../src/views/darkroom.c:2471 +#: ../src/views/darkroom.c:2310 msgid "upper threshold" msgstr "白のしきい値" -#: ../src/views/darkroom.c:2473 +#: ../src/views/darkroom.c:2312 #, no-c-format msgid "" "clipping threshold for the white point.\n" @@ -24749,11 +25425,11 @@ "ホワイトポイントのクリッピングしきい値\n" "100%は媒体のピーク輝度です" -#: ../src/views/darkroom.c:2485 +#: ../src/views/darkroom.c:2324 msgid "softproof" msgstr "ソフトプルーフ" -#: ../src/views/darkroom.c:2488 +#: ../src/views/darkroom.c:2327 msgid "" "toggle softproofing\n" "right click for profile options" @@ -24761,7 +25437,7 @@ "ソフトプルーフのオン/オフを切り替えます\n" "右クリックでプロファイルオプション" -#: ../src/views/darkroom.c:2499 +#: ../src/views/darkroom.c:2338 msgid "" "toggle gamut checking\n" "right click for profile options" @@ -24769,46 +25445,54 @@ "色域のチェックのオン/オフを切り替えます\n" "右クリックでプロファイルオプション" -#: ../src/views/darkroom.c:2524 ../src/views/darkroom.c:2526 -#: ../src/views/darkroom.c:2540 ../src/views/darkroom.c:2541 -#: ../src/views/darkroom.c:2542 ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2365 ../src/views/darkroom.c:2367 +#: ../src/views/darkroom.c:2381 ../src/views/darkroom.c:2382 +#: ../src/views/darkroom.c:2383 ../src/views/darkroom.c:2384 #: ../src/views/lighttable.c:1182 ../src/views/lighttable.c:1184 msgid "profiles" msgstr "プロファイル" -#: ../src/views/darkroom.c:2526 ../src/views/lighttable.c:1184 +#: ../src/views/darkroom.c:2367 ../src/views/lighttable.c:1184 msgid "preview intent" msgstr "プレビューのインテント" -#: ../src/views/darkroom.c:2540 ../src/views/lighttable.c:1188 +#: ../src/views/darkroom.c:2381 ../src/views/lighttable.c:1188 msgid "display profile" msgstr "ディスプレイプロファイル" -#: ../src/views/darkroom.c:2541 ../src/views/lighttable.c:1191 +#: ../src/views/darkroom.c:2382 ../src/views/lighttable.c:1191 msgid "preview display profile" msgstr "プレビューのディスプレイプロファイル" -#: ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2384 msgid "histogram profile" msgstr "ヒストグラムのプロファイル" -#: ../src/views/darkroom.c:2605 ../src/views/lighttable.c:1225 +#: ../src/views/darkroom.c:2391 +msgid "second preview window ISO 12646 color assessment" +msgstr "ISO 12646色評価の第2プレビューウィンドウ" + +#: ../src/views/darkroom.c:2393 +msgid "color assessment second preview" +msgstr "色の評価第2プレビュー" + +#: ../src/views/darkroom.c:2452 ../src/views/lighttable.c:1225 msgid "display ICC profiles" msgstr "ディスプレイICCプロファイル" -#: ../src/views/darkroom.c:2609 ../src/views/lighttable.c:1229 +#: ../src/views/darkroom.c:2456 ../src/views/lighttable.c:1229 msgid "preview display ICC profiles" msgstr "プレビューのディスプレイICCプロファイル" -#: ../src/views/darkroom.c:2613 +#: ../src/views/darkroom.c:2460 msgid "softproof ICC profiles" msgstr "ソフトプルーフのICCプロファイル" -#: ../src/views/darkroom.c:2617 +#: ../src/views/darkroom.c:2464 msgid "histogram and color picker ICC profiles" msgstr "ヒストグラムおよびカラーピッカーのICCプロファイル" -#: ../src/views/darkroom.c:2651 +#: ../src/views/darkroom.c:2497 msgid "" "toggle guide lines\n" "right click for guides options" @@ -24817,137 +25501,137 @@ "右クリックでガイド線のオプション" #. Fullscreen preview key -#: ../src/views/darkroom.c:2668 +#: ../src/views/darkroom.c:2514 msgid "full preview" msgstr "フルプレビュー" #. add an option to allow skip mouse events while other overlays are consuming mouse actions -#: ../src/views/darkroom.c:2672 +#: ../src/views/darkroom.c:2518 msgid "force pan/zoom/rotate with mouse" msgstr "マウスによるパン/ズーム/回転を強制" #. Zoom shortcuts -#: ../src/views/darkroom.c:2684 +#: ../src/views/darkroom.c:2530 msgid "zoom close-up" msgstr "ズーム クローズアップ" #. zoom in/out #. zoom in/out/min/max -#: ../src/views/darkroom.c:2687 ../src/views/lighttable.c:1283 +#: ../src/views/darkroom.c:2533 ../src/views/lighttable.c:1283 msgid "zoom in" msgstr "ズームイン" -#: ../src/views/darkroom.c:2688 ../src/views/lighttable.c:1285 +#: ../src/views/darkroom.c:2534 ../src/views/lighttable.c:1285 msgid "zoom out" msgstr "ズームアウト" #. Shortcut to skip images -#: ../src/views/darkroom.c:2691 +#: ../src/views/darkroom.c:2537 msgid "image forward" msgstr "次の画像" -#: ../src/views/darkroom.c:2692 +#: ../src/views/darkroom.c:2538 msgid "image back" msgstr "前の画像" #. cycle overlay colors -#: ../src/views/darkroom.c:2695 +#: ../src/views/darkroom.c:2541 msgid "cycle overlay colors" msgstr "オーバーレイの色を変更" #. toggle visibility of drawn masks for current gui module -#: ../src/views/darkroom.c:2698 +#: ../src/views/darkroom.c:2544 msgid "show drawn masks" msgstr "描画マスクを表示" #. brush size +/- -#: ../src/views/darkroom.c:2701 +#: ../src/views/darkroom.c:2547 msgid "increase brush size" msgstr "ブラシサイズを大きくする" -#: ../src/views/darkroom.c:2702 +#: ../src/views/darkroom.c:2548 msgid "decrease brush size" msgstr "ブラシサイズを小さくする" #. brush hardness +/- -#: ../src/views/darkroom.c:2705 +#: ../src/views/darkroom.c:2551 msgid "increase brush hardness" msgstr "ブラシの硬さを上げる" -#: ../src/views/darkroom.c:2706 +#: ../src/views/darkroom.c:2552 msgid "decrease brush hardness" msgstr "ブラシの硬さを下げる" #. brush opacity +/- -#: ../src/views/darkroom.c:2709 +#: ../src/views/darkroom.c:2555 msgid "increase brush opacity" msgstr "ブラシの不透明度を上げる" -#: ../src/views/darkroom.c:2710 +#: ../src/views/darkroom.c:2556 msgid "decrease brush opacity" msgstr "ブラシの不透明度を下げる" #. undo/redo -#: ../src/views/darkroom.c:2713 ../src/views/lighttable.c:1275 +#: ../src/views/darkroom.c:2559 ../src/views/lighttable.c:1275 #: ../src/views/map.c:2115 msgid "undo" msgstr "取り消す" -#: ../src/views/darkroom.c:2714 ../src/views/lighttable.c:1276 +#: ../src/views/darkroom.c:2560 ../src/views/lighttable.c:1276 #: ../src/views/map.c:2116 msgid "redo" msgstr "やり直す" #. change the precision for adjusting sliders with keyboard shortcuts -#: ../src/views/darkroom.c:2717 +#: ../src/views/darkroom.c:2563 msgid "change keyboard shortcut slider precision" msgstr "キーボードショートカットのスライダーの精度を変更" -#: ../src/views/darkroom.c:3989 +#: ../src/views/darkroom.c:3565 msgid "keyboard shortcut slider precision: fine" msgstr "キーボードショートカットのスライダーの精度:細かい" -#: ../src/views/darkroom.c:3991 +#: ../src/views/darkroom.c:3567 msgid "keyboard shortcut slider precision: normal" msgstr "キーボードショートカットのスライダーの精度:通常" -#: ../src/views/darkroom.c:3993 +#: ../src/views/darkroom.c:3569 msgid "keyboard shortcut slider precision: coarse" msgstr "キーボードショートカットのスライダーの精度:粗い" -#: ../src/views/darkroom.c:4009 +#: ../src/views/darkroom.c:3584 msgid "switch to lighttable" msgstr "ライトテーブルに切り替える" -#: ../src/views/darkroom.c:4010 ../src/views/lighttable.c:882 +#: ../src/views/darkroom.c:3585 ../src/views/lighttable.c:882 msgid "zoom in the image" msgstr "画像をズーム" -#: ../src/views/darkroom.c:4011 +#: ../src/views/darkroom.c:3586 msgid "unbounded zoom in the image" msgstr "画像を無制限にズーム" -#: ../src/views/darkroom.c:4012 +#: ../src/views/darkroom.c:3587 msgid "zoom to 100% 200% and back" msgstr "100%、200% にズームして戻る" -#: ../src/views/darkroom.c:4013 ../src/views/lighttable.c:885 +#: ../src/views/darkroom.c:3588 ../src/views/lighttable.c:885 msgid "pan a zoomed image" msgstr "ズームした画像をパンする" -#: ../src/views/darkroom.c:4015 ../src/views/lighttable.c:927 +#: ../src/views/darkroom.c:3590 ../src/views/lighttable.c:927 msgid "[modules] expand module without closing others" msgstr "【モジュール】他のモジュールを閉じずに、モジュールを展開する" -#: ../src/views/darkroom.c:4016 ../src/views/lighttable.c:928 +#: ../src/views/darkroom.c:3591 ../src/views/lighttable.c:928 msgid "[modules] expand module and close others" msgstr "【モジュール】モジュールを展開し、その他のモジュールを閉じる" -#: ../src/views/darkroom.c:4018 +#: ../src/views/darkroom.c:3593 msgid "[modules] rename module" msgstr "【モジュール】モジュールの名前を変更する" -#: ../src/views/darkroom.c:4020 +#: ../src/views/darkroom.c:3595 msgid "[modules] change module position in pipe" msgstr "【モジュール】モジュールのパイプ内の位置を変更する" @@ -25092,61 +25776,61 @@ msgid "print" msgstr "印刷" -#: ../src/views/slideshow.c:353 +#: ../src/views/slideshow.c:355 msgid "end of images" msgstr "最後の画像" -#: ../src/views/slideshow.c:374 +#: ../src/views/slideshow.c:376 msgid "end of images. press any key to return to lighttable mode" msgstr "" "最後の画像\n" "任意のキーを押すと、ライトテーブルモードに戻ります" -#: ../src/views/slideshow.c:504 +#: ../src/views/slideshow.c:509 msgid "waiting to start slideshow" msgstr "スライドショーの開始を待っています" -#: ../src/views/slideshow.c:640 ../src/views/slideshow.c:661 -#: ../src/views/slideshow.c:669 +#: ../src/views/slideshow.c:678 ../src/views/slideshow.c:705 +#: ../src/views/slideshow.c:713 msgid "slideshow paused" msgstr "スライドショーが一時停止しました" -#: ../src/views/slideshow.c:648 ../src/views/slideshow.c:655 +#: ../src/views/slideshow.c:686 ../src/views/slideshow.c:696 #, c-format msgid "slideshow delay set to %d second" msgid_plural "slideshow delay set to %d seconds" msgstr[0] "スライドショーの遅延を%d秒に設定しました" msgstr[1] "スライドショーの遅延を%d 秒に設定しました" -#: ../src/views/slideshow.c:684 +#: ../src/views/slideshow.c:728 msgid "start and stop" msgstr "開始と停止" -#: ../src/views/slideshow.c:685 +#: ../src/views/slideshow.c:730 msgid "exit slideshow" msgstr "スライドショーを出る" -#: ../src/views/slideshow.c:688 +#: ../src/views/slideshow.c:734 msgid "slow down" msgstr "遅くする" -#: ../src/views/slideshow.c:691 +#: ../src/views/slideshow.c:738 msgid "speed up" msgstr "速くする" -#: ../src/views/slideshow.c:695 +#: ../src/views/slideshow.c:743 msgid "step forward" msgstr "次に進む" -#: ../src/views/slideshow.c:696 +#: ../src/views/slideshow.c:745 msgid "step back" msgstr "前に戻る" -#: ../src/views/slideshow.c:702 +#: ../src/views/slideshow.c:753 msgid "go to next image" msgstr "次の画像に進む" -#: ../src/views/slideshow.c:703 +#: ../src/views/slideshow.c:755 msgid "go to previous image" msgstr "前の画像に戻る" @@ -25159,52 +25843,304 @@ msgid "no camera with tethering support available for use..." msgstr "テザリングをサポートしているカメラがありません..." -#: ../src/views/view.c:1193 +#: ../src/views/view.c:1352 msgid "left click" msgstr "左クリック" -#: ../src/views/view.c:1196 +#: ../src/views/view.c:1355 msgid "right click" msgstr "右クリック" -#: ../src/views/view.c:1199 +#: ../src/views/view.c:1358 msgid "middle click" msgstr "中クリック" -#: ../src/views/view.c:1205 +#: ../src/views/view.c:1364 msgid "left double-click" msgstr "左 ダブルクリック" -#: ../src/views/view.c:1208 +#: ../src/views/view.c:1367 msgid "right double-click" msgstr "右 ダブルクリック" -#: ../src/views/view.c:1211 +#: ../src/views/view.c:1370 msgid "drag and drop" msgstr "ドラッグアンドドロップ" -#: ../src/views/view.c:1214 +#: ../src/views/view.c:1373 msgid "left click+drag" msgstr "左クリック+ドラッグ" -#: ../src/views/view.c:1217 +#: ../src/views/view.c:1376 msgid "right click+drag" msgstr "右クリック+ドラッグ" -#: ../src/views/view.c:1237 +#: ../src/views/view.c:1398 msgid "darktable - accels window" msgstr "darktable - アクセルウィンドウ" -#: ../src/views/view.c:1285 +#: ../src/views/view.c:1447 msgid "switch to a classic window which will stay open after key release" msgstr "キーを離した後も開いたままになる、クラシックウィンドウに切り替えます" #. we add the mouse actions too -#: ../src/views/view.c:1344 +#: ../src/views/view.c:1514 msgid "mouse actions" msgstr "マウスアクション" #~ msgctxt "preferences" +#~ msgid "nothing" +#~ msgstr "無し" + +#~ msgctxt "preferences" +#~ msgid "memory size" +#~ msgstr "メモリのサイズ" + +#~ msgctxt "preferences" +#~ msgid "memory transfer" +#~ msgstr "メモリ転送" + +#~ msgctxt "preferences" +#~ msgid "memory size and transfer" +#~ msgstr "メモリのサイズおよび転送" + +#~ msgctxt "preferences" +#~ msgid "id" +#~ msgstr "id" + +#~ msgctxt "preferences" +#~ msgid "folder" +#~ msgstr "フォルダ" + +#~ msgid "" +#~ "when having raw+JPEG images together in one directory it makes no sense " +#~ "to import both. with this flag one can ignore all JPEGs found." +#~ msgstr "" +#~ "同一のディレクトリ内にRAW+JPEG画像がある時、両方ともにインポートする意味は" +#~ "ありません\n" +#~ "このフラグによって、検出された全てのJPEG画像を無視することが出来ます" + +#~ msgid "tune OpenCL performance" +#~ msgstr "OpenCLのパフォーマンスを調整する" + +#~ msgid "" +#~ "allows runtime tuning of OpenCL devices:\n" +#~ " - 'memory size': uses a fixed headroom (400MB as default),\n" +#~ " - 'memory transfer': tries a faster memory access mode (pinned memory) " +#~ "used for tiling." +#~ msgstr "" +#~ "OpenCLデバイスのランタイム調整を許可します\n" +#~ "- メモリのサイズ:固定したヘッドルーム(デフォルト値は400MB)を用います\n" +#~ "- メモリ転送:タイリングのためにより高速なメモリアクセスモード(ピンメモ" +#~ "リ)を用いるよう試みます" + +#~ msgid "write sidecar file for each image" +#~ msgstr "各画像のサイドカーファイルを書き込む" + +#~ msgid "" +#~ "if an instance of the module has focus, apply shortcut to that instance\n" +#~ "note: blending shortcuts always apply to the focused instance" +#~ msgstr "" +#~ "フォーカスしているインスタンスがモジュールにある場合、ショートカットをその" +#~ "インスタンスに適用します\n" +#~ "注意:ブレンドのショートカットは常に、フォーカスしているインスタンスに適用" +#~ "されます" + +#~ msgid "distortion fine-tune" +#~ msgstr "歪曲調整" + +#~ msgid "vignetting fine-tune" +#~ msgstr "ビネット調整" + +#~ msgid "TCA red fine-tune" +#~ msgstr "倍率色収差 赤微調整" + +#~ msgid "TCA blue fine-tune" +#~ msgstr "倍率色収差 青微調整" + +#~ msgid "tiff" +#~ msgstr "tiff" + +#~ msgid "png" +#~ msgstr "png" + +#~ msgid "j2k" +#~ msgstr "j2k" + +#~ msgid "jpeg" +#~ msgstr "jpeg" + +#~ msgid "exr" +#~ msgstr "exr" + +#~ msgid "rgbe" +#~ msgstr "rgbe" + +#~ msgid "pfm" +#~ msgstr "pfm" + +#~ msgid "netpnm" +#~ msgstr "netpnm" + +#~ msgid "avif" +#~ msgstr "avif" + +#~ msgid "heif" +#~ msgstr "heif" + +#~ msgid "libraw" +#~ msgstr "libraw" + +#~ msgid "webp" +#~ msgstr "webp" + +#~ msgid "jpeg xl" +#~ msgstr "jpeg xl" + +#~ msgid "" +#~ "due to a slow GPU hardware acceleration using OpenCL has been deactivated" +#~ msgstr "" +#~ "GPUの速度が遅いため、OpenCLを用いたハードウェアアクセラレーションは無効に" +#~ "なっています" + +#~ msgid "" +#~ "multiple GPUs detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "複数のGPUが検出されました\n" +#~ "OpenCLスケジューリングプロファイルがそれに応じて設定されています" + +#~ msgid "" +#~ "very fast GPU detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "非常に高速なGPUが検出されました\n" +#~ "OpenCLスケジューリングプロファイルがそれに応じて設定されています" + +#~ msgid "" +#~ "darktable discovered problems with your OpenCL setup; disabling OpenCL " +#~ "for this session!" +#~ msgstr "" +#~ "darktableはOpenCLの設定に問題を発見しました\n" +#~ "このセッションでは OpenCLを無効にします!" + +#~ msgid "no-op" +#~ msgstr "何もしない" + +#~ msgid "RGB colors" +#~ msgstr "RGBカラー" + +#~ msgid "compression type" +#~ msgstr "圧縮タイプ" + +#~ msgid "jp2" +#~ msgstr "jp2" + +#~ msgid "b&w image" +#~ msgstr "白黒画像" + +#~ msgid "write RGB colors" +#~ msgstr "RGBカラーを書き込む" + +#~ msgid "write grayscale" +#~ msgstr "グレースケールを書き込む" + +#~ msgid "spot color mapping" +#~ msgstr "スポットカラーマッピング" + +#~ msgid "spot mode" +#~ msgstr "スポットモード" + +#~ msgid "" +#~ "set strength of rebuilding in regions with all photosites clipped.\n" +#~ "the mask buttons shows the effect that is added to already reconstructed " +#~ "data." +#~ msgstr "" +#~ "全てのフォトサイトがクリップした領域における再構成の強さを設定します\n" +#~ "マスクボタンをクリックすると、再構成済みのデータに加えられる効果を表示しま" +#~ "す" + +#~ msgid "" +#~ "tone equalizer needs to be after distortion modules in the pipeline – " +#~ "disabled" +#~ msgstr "" +#~ "トーンイコライザーはパイプライン内で歪曲モジュールの後でなければなりませ" +#~ "ん。無効にしました" + +#~ msgid "reference to which the marker should be scaled to" +#~ msgstr "マーカーのスケール調整の参照対象" + +#~ msgid "length of the marker which is used as scaling reference" +#~ msgstr "スケール調整の参照対象として用いられるマーカーの長さ" + +#~ msgid "save" +#~ msgstr "保存" + +#~ msgid "add" +#~ msgstr "追加する" + +#~ msgid "only" +#~ msgstr "のみ" + +#~ msgid "selected image[s]" +#~ msgstr "選択画像" + +#~ msgid "hardness (relative)" +#~ msgstr "硬さ(相対)" + +#~ msgid "hardness (absolute)" +#~ msgstr "硬さ(絶対)" + +#~ msgid "opacity (relative)" +#~ msgstr "不透明度(相対)" + +#~ msgid "opacity (absolute)" +#~ msgstr "不透明度(絶対)" + +#~ msgid "brush size (relative)" +#~ msgstr "ブラシサイズ(相対)" + +#~ msgid "low" +#~ msgstr "低" + +#~ msgid "medium" +#~ msgstr "中" + +#~ msgid "high" +#~ msgstr "高" + +#~ msgid "" +#~ "pen pressure control for brush masks\n" +#~ "'off': pressure reading ignored,\n" +#~ "'hardness'/'opacity'/'brush size': pressure reading controls specified " +#~ "attribute,\n" +#~ "'absolute'/'relative': pressure reading is taken directly as attribute " +#~ "value or multiplied with pre-defined setting." +#~ msgstr "" +#~ "筆圧によるブラシマスクのコントロール\n" +#~ "オフ:筆圧の読み取り値を無視します\n" +#~ "硬さ/不透明度/ブラシサイズ:筆圧の読み取り値によって指定された属性をコン" +#~ "トロールします\n" +#~ "絶対/相対:筆圧の読み取り値を属性の値として直接用います、またはあらかじめ" +#~ "定められた設定値で乗算します" + +#~ msgid "" +#~ "smoothing of brush strokes\n" +#~ "stronger smoothing leads to fewer nodes and easier editing but with lower " +#~ "control of accuracy." +#~ msgstr "" +#~ "ブラシストロークの平滑化\n" +#~ "平滑化を強めると、ノードを少なくして簡単に編集出来ますが、正確なコントロー" +#~ "ル" + +#~ msgid "<leave unchanged>" +#~ msgstr "<変更しない>" + +#, c-format +#~ msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" +#~ msgstr "%.1f mm(フルサイズ換算%.1f mm、クロップ%.1f)" + +#~ msgctxt "preferences" #~ msgid "always bilinear (fast)" #~ msgstr "常に バイリニア(高速)" @@ -25308,9 +26244,6 @@ #~ msgid "3:2" #~ msgstr "3:2" -#~ msgid "set the custom aspect ratio" -#~ msgstr "アスペクト比をカスタム設定します" - #, c-format #~ msgid "ICC profiles in %s or %s" #~ msgstr "%sまたは%s内のICCプロファイル" @@ -25475,9 +26408,6 @@ #~ msgid "module order filter" #~ msgstr "モジュールの順序フィルタ" -#~ msgid "rgb parade" -#~ msgstr "RGBパレード" - #~ msgid "rotate 90 degrees ccw" #~ msgstr "90°反時計回りに回転します" @@ -25731,9 +26661,6 @@ #~ "埋め込みレンズメタデータが無く、\n" #~ "また、lensfunが無いままdarktableがコンパイルされています" -#~ msgid "actual selection" -#~ msgstr "現在の選択" - #~ msgid "allow to pan & zoom while editing masks" #~ msgstr "マスク編集中にパン&ズームを許可" @@ -25780,9 +26707,6 @@ #~ msgid "xmp" #~ msgstr "xmp" -#~ msgid "recovery" -#~ msgstr "復元" - #, c-format #~ msgid "error: can't open xmp file %s" #~ msgstr "エラー:xmpファイル%sを開くことが出来ません" @@ -25868,11 +26792,6 @@ #~ msgid "xcf" #~ msgstr "xcf" -#~ msgid "" -#~ "set strength of reconstruction in regions with all photosites clipped" -#~ msgstr "" -#~ "全てのフォトサイトがクリップした領域における再構成の強さを設定します" - #, no-c-format #~ msgid "preview is only possible for zoom lower than 200%%" #~ msgstr "プレビューはズーム倍率が200%以下の場合にのみ可能です" @@ -25894,9 +26813,6 @@ #~ msgid "lift chroma" #~ msgstr "リフト 彩度(クロマ)" -#~ msgid "lift hue" -#~ msgstr "リフト 色相" - #~ msgid "power luminance" #~ msgstr "パワー 輝度" @@ -25930,9 +26846,6 @@ #~ msgid "chroma highlights" #~ msgstr "ハイライトの彩度(クロマ)" -#~ msgid "chroma global" -#~ msgstr "全体の彩度(クロマ)" - #~ msgid "chroma mid-tones" #~ msgstr "中間トーンの彩度(クロマ)" @@ -26255,9 +27168,6 @@ #~ msgid "grey" #~ msgstr "グレー" -#~ msgid "white balance settings" -#~ msgstr "ホワイトバランスの設定" - #~ msgid "position" #~ msgstr "位置" @@ -27114,10 +28024,6 @@ #~ msgid "set view to waveform" #~ msgstr "ヒストグラムモードを波形に設定" -#~ msgctxt "accel" -#~ msgid "replace metadata" -#~ msgstr "メタデータを入れ替えます" - #~ msgid "open folder" #~ msgstr "フォルダを開く" @@ -27347,9 +28253,6 @@ #~ msgid "lighttable + darkroom" #~ msgstr "ライトテーブル+ダークルーム" -#~ msgid "color manage cached thumbnails" -#~ msgstr "キャッシュされたサムネイルをカラーマネジメント" - #~ msgid "" #~ "if enabled, cached thumbnails will be color managed so that lighttable " #~ "and filmstrip can show correct colors. otherwise the results may look " @@ -28364,9 +29267,6 @@ #~ msgid "existing duplicates" #~ msgstr "既存の複製" -#~ msgid "export selected" -#~ msgstr "選択画像をエクスポート" - #~ msgid "" #~ "maximum output width\n" #~ "set to 0 for no scaling" @@ -28426,9 +29326,6 @@ #~ msgid "import folder" #~ msgstr "インポート フォルダ" -#~ msgid "no supported devices found" -#~ msgstr "サポートされたデバイスが見つかりません" - #~ msgid "import options" #~ msgstr "インポート・オプション" @@ -29065,9 +29962,6 @@ #~ "次の三つの設定は、インポートするストレージの画像のディレクトリ構造やファイ" #~ "ル名変更について分からなければ、デフォルトのままの設定にして下さい" -#~ msgid "storage directory" -#~ msgstr "ストレージ・ディレクトリ" - #~ msgid "directory structure" #~ msgstr "ディレクトリ構造" @@ -29521,9 +30415,6 @@ #~ msgid "blend hue (0 is same as clipping)" #~ msgstr "ブレンド 色相 (0はクリッピングと同じ)" -#~ msgid "blend L" -#~ msgstr "ブレンド 明度" - #~ msgid "blend C" #~ msgstr "ブレンド 彩度" diff -Nru darktable-4.4.2/po/nl.po darktable-4.6.1/po/nl.po --- darktable-4.4.2/po/nl.po 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/po/nl.po 2024-02-16 17:31:09.000000000 +0000 @@ -0,0 +1,25897 @@ +msgid "" +msgstr "" +"Project-Id-Version: darktable master NL\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-11-30 19:32+0100\n" +"PO-Revision-Date: 2023-12-28 19:01+0100\n" +"Last-Translator: Reinder Mulder <r.i.m@hccnet.nl>\n" +"Language-Team: \n" +"Language: nl_NL\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.4.2\n" + +#: ../build/bin/conf_gen.h:174 +msgctxt "preferences" +msgid "first instance" +msgstr "eerste instantie" + +#: ../build/bin/conf_gen.h:175 ../build/bin/preferences_gen.h:7922 +msgctxt "preferences" +msgid "last instance" +msgstr "laatste instantie" + +#: ../build/bin/conf_gen.h:252 ../build/bin/conf_gen.h:352 +#: ../build/bin/conf_gen.h:362 ../build/bin/conf_gen.h:1239 +#: ../build/bin/conf_gen.h:1255 ../build/bin/conf_gen.h:1275 +#: ../build/bin/preferences_gen.h:4747 ../build/bin/preferences_gen.h:4885 +msgctxt "preferences" +msgid "never" +msgstr "nooit" + +#: ../build/bin/conf_gen.h:253 +msgctxt "preferences" +msgid "once a month" +msgstr "eens per maand" + +#: ../build/bin/conf_gen.h:254 ../build/bin/preferences_gen.h:7138 +msgctxt "preferences" +msgid "once a week" +msgstr "eens per week" + +#: ../build/bin/conf_gen.h:255 +msgctxt "preferences" +msgid "once a day" +msgstr "eens per dag" + +#: ../build/bin/conf_gen.h:256 +msgctxt "preferences" +msgid "on close" +msgstr "bij afsluiten" + +#: ../build/bin/conf_gen.h:292 ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1248 ../build/bin/conf_gen.h:1276 +msgctxt "preferences" +msgid "small" +msgstr "klein" + +#: ../build/bin/conf_gen.h:293 ../build/bin/conf_gen.h:405 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6223 +msgctxt "preferences" +msgid "default" +msgstr "standaard" + +#: ../build/bin/conf_gen.h:294 ../build/bin/conf_gen.h:2904 +msgctxt "preferences" +msgid "large" +msgstr "groot" + +#: ../build/bin/conf_gen.h:295 +msgctxt "preferences" +msgid "unrestricted" +msgstr "onbeperkt" + +#: ../build/bin/conf_gen.h:353 +msgctxt "preferences" +msgid "after edit" +msgstr "na bewerken" + +#: ../build/bin/conf_gen.h:354 ../build/bin/preferences_gen.h:7224 +msgctxt "preferences" +msgid "on import" +msgstr "bij import" + +#: ../build/bin/conf_gen.h:363 ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1247 ../build/bin/conf_gen.h:3300 +#: ../build/bin/preferences_gen.h:5644 +msgctxt "preferences" +msgid "always" +msgstr "altijd" + +#: ../build/bin/conf_gen.h:364 ../build/bin/preferences_gen.h:7259 +msgctxt "preferences" +msgid "only large entries" +msgstr "alleen grote vermeldingen" + +#: ../build/bin/conf_gen.h:390 +msgctxt "preferences" +msgid "sensitive" +msgstr "gevoelig" + +#: ../build/bin/conf_gen.h:391 ../build/bin/preferences_gen.h:8133 +msgctxt "preferences" +msgid "insensitive" +msgstr "ongevoelig" + +#: ../build/bin/conf_gen.h:406 +msgctxt "preferences" +msgid "multiple GPUs" +msgstr "meer GPU's" + +#: ../build/bin/conf_gen.h:407 +msgctxt "preferences" +msgid "very fast GPU" +msgstr "zeer snelle GPU" + +#: ../build/bin/conf_gen.h:755 +msgctxt "preferences" +msgid "import time" +msgstr "import moment" + +#: ../build/bin/conf_gen.h:756 +msgctxt "preferences" +msgid "folder name" +msgstr "mapnaam" + +#: ../build/bin/conf_gen.h:770 +msgctxt "preferences" +msgid "RGB" +msgstr "RGB" + +#: ../build/bin/conf_gen.h:771 +msgctxt "preferences" +msgid "Lab" +msgstr "Lab" + +#: ../build/bin/conf_gen.h:772 +msgctxt "preferences" +msgid "LCh" +msgstr "LCh" + +#: ../build/bin/conf_gen.h:773 +msgctxt "preferences" +msgid "HSL" +msgstr "HSL" + +#: ../build/bin/conf_gen.h:774 +msgctxt "preferences" +msgid "Hex" +msgstr "Hex" + +#: ../build/bin/conf_gen.h:775 ../build/bin/conf_gen.h:1916 +#: ../build/bin/conf_gen.h:2578 ../build/bin/conf_gen.h:2880 +#: ../build/bin/conf_gen.h:3136 +msgctxt "preferences" +msgid "none" +msgstr "geen" + +#: ../build/bin/conf_gen.h:783 +msgctxt "preferences" +msgid "mean" +msgstr "gemiddeld" + +#: ../build/bin/conf_gen.h:784 +msgctxt "preferences" +msgid "min" +msgstr "min" + +#: ../build/bin/conf_gen.h:785 +msgctxt "preferences" +msgid "max" +msgstr "max" + +#: ../build/bin/conf_gen.h:973 +msgid "select only new pictures" +msgstr "selecteer enkel nieuwe afbeeldingen" + +#: ../build/bin/conf_gen.h:974 +msgid "only select images that have not already been imported" +msgstr "selecteer alleen afbeeldingen die nog niet zijn geïmporteerd" + +#: ../build/bin/conf_gen.h:979 +msgid "ignore non-raw images" +msgstr "negeer niet-RAW afbeeldingen" + +#: ../build/bin/conf_gen.h:980 +msgid "" +"if enabled, only raw files will be allowed to import. non-raw files will not " +"be visible in the dialog and will not be imported." +msgstr "" +"indien ingeschakeld worden alleen RAW bestanden geïmporteerd. Niet-RAW " +"bestanden zijn niet zichtbaar in de dialoog en worden niet verwerkt." + +#: ../build/bin/conf_gen.h:985 +msgid "apply metadata" +msgstr "pas metadata toe" + +#: ../build/bin/conf_gen.h:986 +msgid "apply some metadata to all newly imported images." +msgstr "pas metadata toe op alle nieuw geïmporteerde afbeeldingen." + +#: ../build/bin/conf_gen.h:991 +msgid "recursive directory" +msgstr "onderliggende map" + +#: ../build/bin/conf_gen.h:992 +msgid "recursive directory traversal when importing filmrolls" +msgstr "onderliggende mappen verwerken bij het importeren" + +#: ../build/bin/conf_gen.h:997 +msgid "creator to be applied when importing" +msgstr "auteursnaam opnemen bij het importeren" + +#: ../build/bin/conf_gen.h:1003 +msgid "publisher to be applied when importing" +msgstr "uitgeversnaam opnemen bij het importeren" + +#: ../build/bin/conf_gen.h:1009 +msgid "rights to be applied when importing" +msgstr "auteursrechten opnemen bij het importeren" + +#: ../build/bin/conf_gen.h:1015 +msgid "comma separated tags to be applied when importing" +msgstr "kommagescheiden labels opnemen bij het importeren" + +#: ../build/bin/conf_gen.h:1021 +msgid "import tags from XMP" +msgstr "importeer labels uit XMP" + +#: ../build/bin/conf_gen.h:1051 +msgid "initial rating" +msgstr "initiële beoordeling" + +#: ../build/bin/conf_gen.h:1052 +msgid "initial star rating for all images when importing a filmroll" +msgstr "initiële beoordeling van alle afbeeldingen bij het importeren" + +#: ../build/bin/conf_gen.h:1057 +msgid "ignore EXIF rating" +msgstr "negeer EXIF beoordeling" + +#: ../build/bin/conf_gen.h:1058 +msgid "" +"ignore EXIF rating. if not set and EXIF rating is found, it overrides " +"'initial rating'" +msgstr "" +"negeer EXIF beoordeling. wanneer niet ingesteld en EXIF beoordeling wordt " +"gevonden, overschrijft het de 'initiële beoordeling'" + +#: ../build/bin/conf_gen.h:1063 +msgid "import job" +msgstr "importeer taak" + +#: ../build/bin/conf_gen.h:1064 +msgid "name of the import job" +msgstr "naam van de importtaak" + +#: ../build/bin/conf_gen.h:1069 +msgid "override today's date" +msgstr "pas de huidige datum aan" + +#: ../build/bin/conf_gen.h:1070 +msgid "" +"type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override " +"the current date/time used when expanding variables:\n" +"$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS), $(MSEC).\n" +"let the field empty otherwise" +msgstr "" +"voer een datum in het veld: YYYY:MM:DD[ hh:mm:ss[.sss]] als je de huidige " +"datum/tijd die wordt gebruikt bij het uitbreiden van variabelen wilt " +"overschrijven:\n" +"$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS), $(MSEC).\n" +"laat het veld anders leeg" + +#: ../build/bin/conf_gen.h:1075 +msgid "keep this window open" +msgstr "houd dit venster open" + +#: ../build/bin/conf_gen.h:1076 +msgid "keep this window open to run several imports" +msgstr "houd dit venster open om verschillende importtaken uit te voeren" + +#: ../build/bin/conf_gen.h:1233 ../build/bin/conf_gen.h:1249 +#: ../build/bin/conf_gen.h:1277 +msgctxt "preferences" +msgid "VGA" +msgstr "VGA" + +#: ../build/bin/conf_gen.h:1234 ../build/bin/conf_gen.h:1250 +#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4782 +msgctxt "preferences" +msgid "720p" +msgstr "720p" + +#: ../build/bin/conf_gen.h:1235 ../build/bin/conf_gen.h:1251 +#: ../build/bin/conf_gen.h:1279 +msgctxt "preferences" +msgid "1080p" +msgstr "1080p" + +#: ../build/bin/conf_gen.h:1236 ../build/bin/conf_gen.h:1252 +#: ../build/bin/conf_gen.h:1280 +msgctxt "preferences" +msgid "WQXGA" +msgstr "WQXGA" + +#: ../build/bin/conf_gen.h:1237 ../build/bin/conf_gen.h:1253 +#: ../build/bin/conf_gen.h:1281 +msgctxt "preferences" +msgid "4K" +msgstr "4K" + +#: ../build/bin/conf_gen.h:1238 ../build/bin/conf_gen.h:1254 +#: ../build/bin/conf_gen.h:1282 +msgctxt "preferences" +msgid "5K" +msgstr "5K" + +#: ../build/bin/conf_gen.h:1314 +msgctxt "preferences" +msgid "off" +msgstr "uit" + +#: ../build/bin/conf_gen.h:1315 +msgctxt "preferences" +msgid "hardness (relative)" +msgstr "hardheid (relatief)" + +#: ../build/bin/conf_gen.h:1316 +msgctxt "preferences" +msgid "hardness (absolute)" +msgstr "hardheid (absoluut)" + +#: ../build/bin/conf_gen.h:1317 +msgctxt "preferences" +msgid "opacity (relative)" +msgstr "dekking (relatief)" + +#: ../build/bin/conf_gen.h:1318 +msgctxt "preferences" +msgid "opacity (absolute)" +msgstr "dekking (absoluut)" + +#: ../build/bin/conf_gen.h:1319 +msgctxt "preferences" +msgid "brush size (relative)" +msgstr "penseeldikte (relatief)" + +#: ../build/bin/conf_gen.h:1327 +msgctxt "preferences" +msgid "low" +msgstr "laag" + +#: ../build/bin/conf_gen.h:1328 +msgctxt "preferences" +msgid "medium" +msgstr "gemiddeld" + +#: ../build/bin/conf_gen.h:1329 +msgctxt "preferences" +msgid "high" +msgstr "hoog" + +#: ../build/bin/conf_gen.h:1349 ../build/bin/preferences_gen.h:5405 +msgctxt "preferences" +msgid "false color" +msgstr "onjuiste kleur" + +#: ../build/bin/conf_gen.h:1350 +msgctxt "preferences" +msgid "grayscale" +msgstr "grijswaarde" + +#: ../build/bin/conf_gen.h:1364 +msgctxt "preferences" +msgid "top left" +msgstr "linksboven" + +#: ../build/bin/conf_gen.h:1365 +msgctxt "preferences" +msgid "top right" +msgstr "rechtsboven" + +#: ../build/bin/conf_gen.h:1366 +msgctxt "preferences" +msgid "top center" +msgstr "midden boven" + +#: ../build/bin/conf_gen.h:1367 ../build/bin/preferences_gen.h:5217 +msgctxt "preferences" +msgid "bottom" +msgstr "onder" + +#: ../build/bin/conf_gen.h:1368 +msgctxt "preferences" +msgid "hidden" +msgstr "verborgen" + +#: ../build/bin/conf_gen.h:1878 +msgid "show OSD" +msgstr "toon OSD" + +#: ../build/bin/conf_gen.h:1879 +msgid "toggle the visibility of the map overlays" +msgstr "zichtbaarheid map overlays aan/uit" + +#: ../build/bin/conf_gen.h:1884 ../src/libs/map_settings.c:119 +msgid "filtered images" +msgstr "gefilterde afbeeldingen" + +#: ../build/bin/conf_gen.h:1885 +msgid "when set limit the images drawn to the current filmstrip" +msgstr "indien ingesteld, beperk afbeeldingen getoond in huidige filmstrip" + +#: ../build/bin/conf_gen.h:1892 +msgid "max images" +msgstr "max afbeeldingen" + +#: ../build/bin/conf_gen.h:1893 +msgid "the maximum number of image thumbnails drawn on the map" +msgstr "" +"het maximale aantal miniaturen van afbeeldingen dat op de kaart is getekend" + +#: ../build/bin/conf_gen.h:1900 +msgid "group size factor" +msgstr "groepsgroote factor" + +#: ../build/bin/conf_gen.h:1901 +msgid "" +"increase or decrease the spatial size of images groups on the map. can " +"influence the calculation time" +msgstr "" +"vergroot of verklein de grootte van afbeeldingengroepen op de kaart. Kan de " +"rekentijd beïnvloeden" + +#: ../build/bin/conf_gen.h:1908 +msgid "min images per group" +msgstr "minimaal aantal afbeeldingen per groep" + +#: ../build/bin/conf_gen.h:1909 +msgid "" +"the minimum number of images to set up an images group. can influence the " +"calculation time." +msgstr "" +"het minimum aantal afbeeldingen om een afbeeldingengroep op te zetten. Kan " +"de rekentijd beïnvloeden." + +#: ../build/bin/conf_gen.h:1914 +msgctxt "preferences" +msgid "thumbnail" +msgstr "miniatuur" + +#: ../build/bin/conf_gen.h:1915 +msgctxt "preferences" +msgid "count" +msgstr "tel" + +#: ../build/bin/conf_gen.h:1918 +msgid "thumbnail display" +msgstr "miniaturen weergave" + +#: ../build/bin/conf_gen.h:1919 +msgid "" +"three options are available: images thumbnails, only the count of images of " +"the group or nothing" +msgstr "" +"er zijn drie opties beschikbaar: miniaturen van afbeeldingen, alleen het " +"aantal afbeeldingen van de groep of niets" + +#: ../build/bin/conf_gen.h:1930 +msgid "max polygon points" +msgstr "max polygoon punten" + +#: ../build/bin/conf_gen.h:1931 +msgid "" +"limit the number of points imported with polygon in find location module" +msgstr "" +"beperk het aantal punten geïmporteerd met polygoon in de zoek locatie-module" + +#: ../build/bin/conf_gen.h:2221 ../build/bin/preferences_gen.h:5329 +msgctxt "preferences" +msgid "original" +msgstr "origineel" + +#: ../build/bin/conf_gen.h:2222 +msgctxt "preferences" +msgid "to 1/2" +msgstr "naar 1/2" + +#: ../build/bin/conf_gen.h:2223 +msgctxt "preferences" +msgid "to 1/3" +msgstr "naar 1/3" + +#: ../build/bin/conf_gen.h:2224 +msgctxt "preferences" +msgid "to 1/4" +msgstr "naar 1/4" + +#: ../build/bin/conf_gen.h:2244 ../build/bin/conf_gen.h:2254 +msgctxt "preferences" +msgid "bilinear" +msgstr "bilinear" + +#: ../build/bin/conf_gen.h:2245 ../build/bin/conf_gen.h:2255 +#: ../build/bin/preferences_gen.h:5847 +msgctxt "preferences" +msgid "bicubic" +msgstr "bicubic" + +#: ../build/bin/conf_gen.h:2246 ../build/bin/conf_gen.h:2256 +msgctxt "preferences" +msgid "lanczos2" +msgstr "lanczos2" + +#: ../build/bin/conf_gen.h:2257 ../build/bin/preferences_gen.h:5882 +msgctxt "preferences" +msgid "lanczos3" +msgstr "lanczos3" + +#: ../build/bin/conf_gen.h:2577 ../build/bin/conf_gen.h:3303 +#: ../build/bin/preferences_gen.h:7032 +msgctxt "preferences" +msgid "auto" +msgstr "auto" + +#: ../build/bin/conf_gen.h:2579 +msgctxt "preferences" +msgid "libsecret" +msgstr "libsecret" + +#: ../build/bin/conf_gen.h:2580 +msgctxt "preferences" +msgid "kwallet" +msgstr "kwallet" + +#: ../build/bin/conf_gen.h:2790 +msgctxt "preferences" +msgid "vectorscope" +msgstr "vectorscope" + +#: ../build/bin/conf_gen.h:2791 +msgctxt "preferences" +msgid "waveform" +msgstr "golfvorm" + +#: ../build/bin/conf_gen.h:2792 +msgctxt "preferences" +msgid "RGB parade" +msgstr "RGB parade" + +#: ../build/bin/conf_gen.h:2793 +msgctxt "preferences" +msgid "histogram" +msgstr "histogram" + +#: ../build/bin/conf_gen.h:2801 +msgctxt "preferences" +msgid "left" +msgstr "links" + +#: ../build/bin/conf_gen.h:2802 ../build/bin/preferences_gen.h:7619 +msgctxt "preferences" +msgid "right" +msgstr "rechts" + +#: ../build/bin/conf_gen.h:2810 ../build/bin/conf_gen.h:2847 +msgctxt "preferences" +msgid "logarithmic" +msgstr "logaritmisch" + +#: ../build/bin/conf_gen.h:2811 ../build/bin/conf_gen.h:2848 +msgctxt "preferences" +msgid "linear" +msgstr "lineair" + +#: ../build/bin/conf_gen.h:2819 +msgctxt "preferences" +msgid "horizontal" +msgstr "horizontaal" + +#: ../build/bin/conf_gen.h:2820 +msgctxt "preferences" +msgid "vertical" +msgstr "verticaal" + +#: ../build/bin/conf_gen.h:2828 +msgctxt "preferences" +msgid "overlaid" +msgstr "over elkaar" + +#: ../build/bin/conf_gen.h:2829 +msgctxt "preferences" +msgid "parade" +msgstr "parade" + +#: ../build/bin/conf_gen.h:2837 +msgctxt "preferences" +msgid "u*v*" +msgstr "u*v*" + +#: ../build/bin/conf_gen.h:2838 +msgctxt "preferences" +msgid "AzBz" +msgstr "AzBz" + +#: ../build/bin/conf_gen.h:2839 +msgctxt "preferences" +msgid "RYB" +msgstr "RYB" + +#: ../build/bin/conf_gen.h:2881 +msgctxt "preferences" +msgid "monochromatic" +msgstr "monochroom" + +#: ../build/bin/conf_gen.h:2882 +msgctxt "preferences" +msgid "analogous" +msgstr "analoog" + +#: ../build/bin/conf_gen.h:2883 +msgctxt "preferences" +msgid "analogous complementary" +msgstr "analoog complementair" + +#: ../build/bin/conf_gen.h:2884 +msgctxt "preferences" +msgid "complementary" +msgstr "aanvullend" + +#: ../build/bin/conf_gen.h:2885 +msgctxt "preferences" +msgid "split complementary" +msgstr "gesplitst complementair" + +#: ../build/bin/conf_gen.h:2886 +msgctxt "preferences" +msgid "dyad" +msgstr "dyade" + +#: ../build/bin/conf_gen.h:2887 +msgctxt "preferences" +msgid "triad" +msgstr "triade" + +#: ../build/bin/conf_gen.h:2888 +msgctxt "preferences" +msgid "tetrad" +msgstr "tetrade" + +#: ../build/bin/conf_gen.h:2889 +msgctxt "preferences" +msgid "square" +msgstr "vierkant" + +#: ../build/bin/conf_gen.h:2903 +msgctxt "preferences" +msgid "normal" +msgstr "normaal" + +#: ../build/bin/conf_gen.h:2905 +msgctxt "preferences" +msgid "narrow" +msgstr "smal" + +#: ../build/bin/conf_gen.h:2906 +msgctxt "preferences" +msgid "line" +msgstr "lijn" + +#: ../build/bin/conf_gen.h:3046 +msgctxt "preferences" +msgid "mm" +msgstr "mm" + +#: ../build/bin/conf_gen.h:3047 +msgctxt "preferences" +msgid "cm" +msgstr "cm" + +#: ../build/bin/conf_gen.h:3048 +msgctxt "preferences" +msgid "inch" +msgstr "inch" + +#: ../build/bin/conf_gen.h:3093 ../build/bin/preferences_gen.h:7654 +msgctxt "preferences" +msgid "all" +msgstr "alles" + +#: ../build/bin/conf_gen.h:3094 +msgctxt "preferences" +msgid "xatom" +msgstr "xatom" + +#: ../build/bin/conf_gen.h:3095 +msgctxt "preferences" +msgid "colord" +msgstr "colord" + +#: ../build/bin/conf_gen.h:3133 ../build/bin/preferences_gen.h:5958 +msgctxt "preferences" +msgid "scene-referred (filmic)" +msgstr "scène-gerefereerd (filmic)" + +#: ../build/bin/conf_gen.h:3134 +msgctxt "preferences" +msgid "scene-referred (sigmoid)" +msgstr "scène-gerefereerd (sigmoïde)" + +#: ../build/bin/conf_gen.h:3135 +msgctxt "preferences" +msgid "display-referred (legacy)" +msgstr "scherm-gerefereerd (verouderd)" + +#: ../build/bin/conf_gen.h:3230 +msgid "camera time zone" +msgstr "tijdzone van camera" + +#: ../build/bin/conf_gen.h:3231 +msgid "" +"most cameras don't store the time zone in EXIF. give the correct time zone " +"so the GPX data can be correctly matched" +msgstr "" +"meestal wordt in de EXIF de tijdzone niet opgeslagen, geef de juiste " +"tijdzone voor correcte koppeling met GPX data" + +#: ../build/bin/conf_gen.h:3242 +msgctxt "preferences" +msgid "no color" +msgstr "geen kleur" + +#: ../build/bin/conf_gen.h:3243 +msgctxt "preferences" +msgid "illuminant color" +msgstr "lichtbron kleur" + +#: ../build/bin/conf_gen.h:3244 +msgctxt "preferences" +msgid "effect emulation" +msgstr "effect emulatie" + +#: ../build/bin/conf_gen.h:3290 +msgctxt "preferences" +msgid "list" +msgstr "lijst" + +#: ../build/bin/conf_gen.h:3291 +msgctxt "preferences" +msgid "tabs" +msgstr "tabs" + +#: ../build/bin/conf_gen.h:3292 +msgctxt "preferences" +msgid "columns" +msgstr "kolommen" + +#: ../build/bin/conf_gen.h:3301 +msgctxt "preferences" +msgid "active" +msgstr "actief" + +#: ../build/bin/conf_gen.h:3302 +msgctxt "preferences" +msgid "dim" +msgstr "dim" + +#: ../build/bin/conf_gen.h:3304 +msgctxt "preferences" +msgid "fade" +msgstr "vervaag" + +#: ../build/bin/conf_gen.h:3305 +msgctxt "preferences" +msgid "fit" +msgstr "passend maken" + +#: ../build/bin/conf_gen.h:3306 +msgctxt "preferences" +msgid "smooth" +msgstr "effen" + +#: ../build/bin/conf_gen.h:3307 +msgctxt "preferences" +msgid "glide" +msgstr "schuiven" + +#: ../build/bin/preferences_gen.h:77 ../build/bin/preferences_gen.h:4305 +#: ../build/bin/preferences_gen.h:4344 ../build/bin/preferences_gen.h:4383 +#: ../build/bin/preferences_gen.h:4417 ../build/bin/preferences_gen.h:4488 +#: ../build/bin/preferences_gen.h:4522 ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:4590 ../build/bin/preferences_gen.h:4624 +#: ../build/bin/preferences_gen.h:4658 ../build/bin/preferences_gen.h:4692 +#: ../build/bin/preferences_gen.h:4733 ../build/bin/preferences_gen.h:4768 +#: ../build/bin/preferences_gen.h:4803 ../build/bin/preferences_gen.h:4837 +#: ../build/bin/preferences_gen.h:4871 ../build/bin/preferences_gen.h:4906 +#: ../build/bin/preferences_gen.h:4940 ../build/bin/preferences_gen.h:4979 +#: ../build/bin/preferences_gen.h:5020 ../build/bin/preferences_gen.h:5093 +#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:5162 +#: ../build/bin/preferences_gen.h:5203 ../build/bin/preferences_gen.h:5237 +#: ../build/bin/preferences_gen.h:5281 ../build/bin/preferences_gen.h:5315 +#: ../build/bin/preferences_gen.h:5350 ../build/bin/preferences_gen.h:5391 +#: ../build/bin/preferences_gen.h:5426 ../build/bin/preferences_gen.h:5460 +#: ../build/bin/preferences_gen.h:5494 ../build/bin/preferences_gen.h:5528 +#: ../build/bin/preferences_gen.h:5562 ../build/bin/preferences_gen.h:5596 +#: ../build/bin/preferences_gen.h:5630 ../build/bin/preferences_gen.h:5665 +#: ../build/bin/preferences_gen.h:5699 ../build/bin/preferences_gen.h:5733 +#: ../build/bin/preferences_gen.h:5799 ../build/bin/preferences_gen.h:5833 +#: ../build/bin/preferences_gen.h:5868 ../build/bin/preferences_gen.h:5903 +#: ../build/bin/preferences_gen.h:5944 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/preferences_gen.h:6013 ../build/bin/preferences_gen.h:6047 +#: ../build/bin/preferences_gen.h:6088 ../build/bin/preferences_gen.h:6124 +#: ../build/bin/preferences_gen.h:6165 ../build/bin/preferences_gen.h:6209 +#: ../build/bin/preferences_gen.h:6254 ../build/bin/preferences_gen.h:6305 +#: ../build/bin/preferences_gen.h:6349 ../build/bin/preferences_gen.h:6393 +#: ../build/bin/preferences_gen.h:6437 ../build/bin/preferences_gen.h:6481 +#: ../build/bin/preferences_gen.h:6525 ../build/bin/preferences_gen.h:6569 +#: ../build/bin/preferences_gen.h:6635 ../build/bin/preferences_gen.h:6669 +#: ../build/bin/preferences_gen.h:6703 ../build/bin/preferences_gen.h:6737 +#: ../build/bin/preferences_gen.h:6771 ../build/bin/preferences_gen.h:6805 +#: ../build/bin/preferences_gen.h:6839 ../build/bin/preferences_gen.h:6873 +#: ../build/bin/preferences_gen.h:6906 ../build/bin/preferences_gen.h:6939 +#: ../build/bin/preferences_gen.h:6973 ../build/bin/preferences_gen.h:7014 +#: ../build/bin/preferences_gen.h:7053 ../build/bin/preferences_gen.h:7124 +#: ../build/bin/preferences_gen.h:7159 ../build/bin/preferences_gen.h:7210 +#: ../build/bin/preferences_gen.h:7245 ../build/bin/preferences_gen.h:7280 +#: ../build/bin/preferences_gen.h:7324 ../build/bin/preferences_gen.h:7390 +#: ../build/bin/preferences_gen.h:7424 ../build/bin/preferences_gen.h:7458 +#: ../build/bin/preferences_gen.h:7492 ../build/bin/preferences_gen.h:7526 +#: ../build/bin/preferences_gen.h:7560 ../build/bin/preferences_gen.h:7605 +#: ../build/bin/preferences_gen.h:7640 ../build/bin/preferences_gen.h:7675 +#: ../build/bin/preferences_gen.h:7731 ../build/bin/preferences_gen.h:7772 +#: ../build/bin/preferences_gen.h:7806 ../build/bin/preferences_gen.h:7840 +#: ../build/bin/preferences_gen.h:7874 ../build/bin/preferences_gen.h:7908 +#: ../build/bin/preferences_gen.h:7943 ../build/bin/preferences_gen.h:7984 +#: ../build/bin/preferences_gen.h:8025 ../build/bin/preferences_gen.h:8085 +#: ../build/bin/preferences_gen.h:8119 ../build/bin/preferences_gen.h:8154 +#: ../build/bin/preferences_gen.h:8199 ../build/bin/preferences_gen.h:8233 +#: ../build/bin/preferences_gen.h:8278 ../build/bin/preferences_gen.h:8313 +#: ../build/bin/preferences_gen.h:8365 ../build/bin/preferences_gen.h:8410 +#: ../build/bin/preferences_gen.h:8480 ../build/bin/preferences_gen.h:8526 +msgid "this setting has been modified" +msgstr "deze instelling werd gewijzigd" + +#. doesn't seem to work from gtkrc +#: ../build/bin/preferences_gen.h:4277 ../build/bin/preferences_gen.h:4460 +#: ../build/bin/preferences_gen.h:5065 ../build/bin/preferences_gen.h:5771 +#: ../build/bin/preferences_gen.h:6607 ../build/bin/preferences_gen.h:7096 +#: ../build/bin/preferences_gen.h:7362 ../src/gui/accelerators.c:2996 +#: ../src/gui/gtk.c:2641 ../src/gui/preferences.c:424 +#: ../src/gui/preferences.c:874 ../src/libs/modulegroups.c:3888 +msgid "?" +msgstr "?" + +#: ../build/bin/preferences_gen.h:4287 ../src/control/jobs/control_jobs.c:2352 +#: ../src/libs/import.c:173 +msgid "import" +msgstr "importeren" + +#: ../build/bin/preferences_gen.h:4289 +msgid "session options" +msgstr "sessie instellingen" + +#: ../build/bin/preferences_gen.h:4308 +msgid "base directory naming pattern" +msgstr "sjabloon voor naam basismap" + +#: ../build/bin/preferences_gen.h:4323 ../build/bin/preferences_gen.h:4362 +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4435 +#: ../build/bin/preferences_gen.h:4501 ../build/bin/preferences_gen.h:4535 +#: ../build/bin/preferences_gen.h:4569 ../build/bin/preferences_gen.h:4603 +#: ../build/bin/preferences_gen.h:4637 ../build/bin/preferences_gen.h:4671 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4747 +#: ../build/bin/preferences_gen.h:4782 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:4850 ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:4958 +#: ../build/bin/preferences_gen.h:4999 ../build/bin/preferences_gen.h:5040 +#: ../build/bin/preferences_gen.h:5106 ../build/bin/preferences_gen.h:5140 +#: ../build/bin/preferences_gen.h:5182 ../build/bin/preferences_gen.h:5217 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5329 +#: ../build/bin/preferences_gen.h:5363 ../build/bin/preferences_gen.h:5405 +#: ../build/bin/preferences_gen.h:5439 ../build/bin/preferences_gen.h:5473 +#: ../build/bin/preferences_gen.h:5507 ../build/bin/preferences_gen.h:5541 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5644 ../build/bin/preferences_gen.h:5678 +#: ../build/bin/preferences_gen.h:5712 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5847 +#: ../build/bin/preferences_gen.h:5882 ../build/bin/preferences_gen.h:5922 +#: ../build/bin/preferences_gen.h:5958 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6060 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6178 ../build/bin/preferences_gen.h:6223 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6318 +#: ../build/bin/preferences_gen.h:6362 ../build/bin/preferences_gen.h:6406 +#: ../build/bin/preferences_gen.h:6450 ../build/bin/preferences_gen.h:6494 +#: ../build/bin/preferences_gen.h:6538 ../build/bin/preferences_gen.h:6582 +#: ../build/bin/preferences_gen.h:6648 ../build/bin/preferences_gen.h:6682 +#: ../build/bin/preferences_gen.h:6716 ../build/bin/preferences_gen.h:6750 +#: ../build/bin/preferences_gen.h:6784 ../build/bin/preferences_gen.h:6818 +#: ../build/bin/preferences_gen.h:6852 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7032 +#: ../build/bin/preferences_gen.h:7071 ../build/bin/preferences_gen.h:7138 +#: ../build/bin/preferences_gen.h:7224 ../build/bin/preferences_gen.h:7259 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7505 ../build/bin/preferences_gen.h:7539 +#: ../build/bin/preferences_gen.h:7619 ../build/bin/preferences_gen.h:7654 +#: ../build/bin/preferences_gen.h:7693 ../build/bin/preferences_gen.h:7744 +#: ../build/bin/preferences_gen.h:7785 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7922 ../build/bin/preferences_gen.h:7956 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8133 ../build/bin/preferences_gen.h:8212 +#: ../build/bin/preferences_gen.h:8292 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 +#, c-format +msgid "double click to reset to `%s'" +msgstr "dubbelklikken is resetten naar `%s'" + +#: ../build/bin/preferences_gen.h:4326 ../build/bin/preferences_gen.h:4365 +msgid "part of full import path for an import session" +msgstr "deel van een volledig importeerpad voor een importsessie" + +#: ../build/bin/preferences_gen.h:4347 +msgid "sub directory naming pattern" +msgstr "sjabloon voor naam onderliggende map" + +#: ../build/bin/preferences_gen.h:4386 +msgid "keep original filename" +msgstr "behoud originele bestandsnaam" + +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4501 +#: ../build/bin/preferences_gen.h:4535 ../build/bin/preferences_gen.h:4569 +#: ../build/bin/preferences_gen.h:4603 ../build/bin/preferences_gen.h:4637 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4850 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:5106 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5439 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5712 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6450 +#: ../build/bin/preferences_gen.h:6494 ../build/bin/preferences_gen.h:6538 +#: ../build/bin/preferences_gen.h:6582 ../build/bin/preferences_gen.h:6852 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7505 +#: ../build/bin/preferences_gen.h:7744 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7956 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8212 +msgctxt "preferences" +msgid "FALSE" +msgstr "ONWAAR" + +#: ../build/bin/preferences_gen.h:4399 +msgid "" +"keep original filename instead of a pattern while importing from camera or " +"card" +msgstr "" +"behoud de oorspronkelijke bestandsnaam in plaats van een sjabloon te " +"gebruiken tijdens het importeren van een camera of kaart" + +#: ../build/bin/preferences_gen.h:4420 +msgid "file naming pattern" +msgstr "sjabloon voor bestandsnaam" + +#: ../build/bin/preferences_gen.h:4438 +msgid "file naming pattern used for a import session" +msgstr "bestandsnaamgevingsmodel gebruikt voor import sessie" + +#: ../build/bin/preferences_gen.h:4470 ../src/gui/gtk.c:1266 +#: ../src/gui/preferences.c:544 ../src/libs/tools/lighttable.c:66 +#: ../src/views/lighttable.c:91 +msgid "lighttable" +msgstr "bibliotheek" + +#: ../build/bin/preferences_gen.h:4472 ../build/bin/preferences_gen.h:5077 +#: ../build/bin/preferences_gen.h:6619 ../src/gui/preferences.c:270 +msgid "general" +msgstr "algemeen" + +#: ../build/bin/preferences_gen.h:4491 +msgid "hide built-in presets for utility modules" +msgstr "verberg ingebouwde voorkeuren van modules" + +#: ../build/bin/preferences_gen.h:4504 +msgid "hides built-in presets of utility modules in presets menu." +msgstr "verberg ingebouwde voorkeuren van modules in het menu." + +#: ../build/bin/preferences_gen.h:4525 +msgid "use single-click in the collections module" +msgstr "gebruik enkele klik in de verzamelmodule" + +#: ../build/bin/preferences_gen.h:4538 +msgid "" +"check this option to use single-click to select items in the collections " +"module. this will allow you to do range selections for date-time and numeric " +"values." +msgstr "" +"vink deze optie aan om items te selecteren met één klik in de " +"verzamelmodule. Hiermee kun je selecties uitvoeren voor datum-, tijd- en " +"numerieke waarden." + +#: ../build/bin/preferences_gen.h:4559 +msgid "expand a single utility module at a time" +msgstr "een module per keer uitvouwen" + +#: ../build/bin/preferences_gen.h:4572 +msgid "this option toggles the behavior of shift clicking in lighttable mode" +msgstr "deze optie wisselt het gedrag van de shift-klik in de bibliotheekmodus" + +#: ../build/bin/preferences_gen.h:4593 +msgid "scroll utility modules to the top when expanded" +msgstr "scroll hulpprogramma modules naar de top indien uitgeklapt" + +#: ../build/bin/preferences_gen.h:4606 ../build/bin/preferences_gen.h:5612 +msgid "" +"when this option is enabled then darktable will try to scroll the module to " +"the top of the visible list" +msgstr "" +"indien deze optie is ingeschakeld zal darktable de module proberen te " +"verplaatsen naar de top van de zichtbare lijst" + +#: ../build/bin/preferences_gen.h:4627 +msgid "rating an image one star twice will not zero out the rating" +msgstr "" +"waardering van een afbeelding bij tweemaal classificeren niet verwijderen" + +#: ../build/bin/preferences_gen.h:4640 +msgid "" +"defines whether rating an image one star twice will zero out star rating" +msgstr "" +"bepaalt of het tweemaal toewijzen van één ster aan een afbeelding de ster " +"verwijdert" + +#: ../build/bin/preferences_gen.h:4661 ../build/bin/preferences_gen.h:5284 +msgid "show scrollbars for central view" +msgstr "toon schuifbalken voor centrale weergave" + +#: ../build/bin/preferences_gen.h:4671 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:5140 ../build/bin/preferences_gen.h:5363 +#: ../build/bin/preferences_gen.h:5473 ../build/bin/preferences_gen.h:5507 +#: ../build/bin/preferences_gen.h:5541 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5678 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:6060 ../build/bin/preferences_gen.h:6178 +#: ../build/bin/preferences_gen.h:6318 ../build/bin/preferences_gen.h:6362 +#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6648 +#: ../build/bin/preferences_gen.h:6682 ../build/bin/preferences_gen.h:6716 +#: ../build/bin/preferences_gen.h:6750 ../build/bin/preferences_gen.h:6784 +#: ../build/bin/preferences_gen.h:6818 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7539 ../build/bin/preferences_gen.h:7785 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 +msgctxt "preferences" +msgid "TRUE" +msgstr "WAAR" + +#: ../build/bin/preferences_gen.h:4674 ../build/bin/preferences_gen.h:5297 +msgid "defines whether scrollbars should be displayed" +msgstr "bepaalt of schuifbalken worden getoond" + +#: ../build/bin/preferences_gen.h:4695 +msgid "show image time with milliseconds" +msgstr "afbeelding tijd weergeven met milliseconden" + +#: ../build/bin/preferences_gen.h:4708 +msgid "defines whether time should be displayed with milliseconds" +msgstr "definieert of tijd weergegeven moet worden met milliseconden" + +#: ../build/bin/preferences_gen.h:4717 +msgid "thumbnails" +msgstr "miniaturen" + +#: ../build/bin/preferences_gen.h:4736 +msgid "use raw file instead of embedded JPEG from size" +msgstr "gebruik raw-bestand in plaats van ingesloten JPEG vanaf grootte" + +#: ../build/bin/preferences_gen.h:4750 +msgid "" +"if the thumbnail size is greater than this value, it will be processed using " +"raw file instead of the embedded preview JPEG (better but slower).\n" +"if you want all thumbnails and pre-rendered images in best quality you " +"should choose the *always* option.\n" +"(more comments in the manual)" +msgstr "" +"miniaturen groter dan deze waarde worden gemaakt uit het raw-bestand in " +"plaats van de ingesloten preview-JPEG (beter maar langzamer).\n" +"als je alle miniaturen en vooraf gerenderde afbeeldingen in de beste " +"kwaliteit wilt, kies dan de optie *altijd*.\n" +"(meer opmerkingen in de handleiding)" + +#: ../build/bin/preferences_gen.h:4771 +msgid "high quality processing from size" +msgstr "hoogwaardige verwerking vanaf grootte" + +#: ../build/bin/preferences_gen.h:4785 +msgid "" +"if the thumbnail size is greater than this value, it will be processed using " +"the full quality rendering path (better but slower).\n" +"if you want all thumbnails and pre-rendered images in best quality you " +"should choose the *always* option.\n" +"(more comments in the manual)" +msgstr "" +"miniaturen groter dan deze waarde worden gerenderd in volledige kwaliteit " +"(beter maar langzamer).\n" +"als je alle miniaturen en vooraf gerenderde afbeeldingen in de beste " +"kwaliteit wilt, kies dan de optie *altijd*.\n" +"(meer opmerkingen in de handleiding)" + +#: ../build/bin/preferences_gen.h:4806 +msgid "enable disk backend for thumbnail cache" +msgstr "inschakelen schijfopslag voor miniaturencache" + +#: ../build/bin/preferences_gen.h:4819 +msgid "" +"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want. light table " +"performance will be increased greatly when browsing a lot.\n" +"to generate all thumbnails of your entire collection offline, run 'darktable-" +"generate-cache'." +msgstr "" +"indien ingeschakeld, schrijf miniaturen op de schijf (.cache/darktable) " +"wanneer verwijderd uit de geheugencache,\n" +"NB dit kan veel geheugen kosten (meerdere gigabytes voor 20k afbeeldingen) " +"en opgeslagen miniaturen worden nooit verwijderd,\n" +"indien gewenst is het veilig om die handmatig te verwijderen. De prestaties " +"zullen enorm verbeteren bij bladeren door de collectie.\n" +"Om alle miniaturen van de gehele collectie offline aan te maken voer " +"commando 'darktable-generate-cache' uit." + +#: ../build/bin/preferences_gen.h:4840 +msgid "enable disk backend for full preview cache" +msgstr "inschakelen schijfopslag voor volledige voorbeeld cache" + +#: ../build/bin/preferences_gen.h:4853 +msgid "" +"if enabled, write full preview to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want.\n" +"light table performance will be increased greatly when zooming image in full " +"preview mode." +msgstr "" +"indien ingeschakeld, bewaar voorvertoning op de schijf (.cache/darktable) " +"wanneer verwijderd uit de geheugencache.\n" +"NB dit kan veel geheugen kosten (meerdere gigabytes voor 20k afbeeldingen) " +"en opgeslagen beelden worden nooit verwijderd,\n" +"indien gewenst is het veilig om die handmatig te verwijderen.\n" +"De prestaties zullen enorm verbeteren bij voorvertoning." + +#: ../build/bin/preferences_gen.h:4874 +msgid "generate thumbnails in background" +msgstr "genereer miniaturen in de achtergrond" + +#: ../build/bin/preferences_gen.h:4888 +msgid "" +"if 'enable disk backend for thumbnail cache' is enabled thumbnails/mipmaps " +"up to the selected size are generated while user is inactive in lighttable." +msgstr "" +"als 'schijf opslag voor miniaturen' is ingeschakeld, worden miniaturen tot " +"de opgegeven grootte gegenereerd tijdens inactiviteit in de bibliotheek." + +#: ../build/bin/preferences_gen.h:4909 +msgid "reset cached thumbnails" +msgstr "herstel opgeslagen miniaturen" + +#: ../build/bin/preferences_gen.h:4922 +msgid "" +"force thumbnails to be regenerated by resetting the database. this may be " +"needed in case some thumbnails have been manually removed or corrupted." +msgstr "" +"forceer het opnieuw genereren van miniaturen door een database-reset. Dit " +"kan nodig zijn als bepaalde miniaturen handmatig verwijderd of veranderd " +"zijn." + +#: ../build/bin/preferences_gen.h:4943 +msgid "delimiters for size categories" +msgstr "scheidingstekens voor groottecategorieën" + +#: ../build/bin/preferences_gen.h:4961 +msgid "" +"size categories are used to be able to set different overlays and CSS values " +"depending of the size of the thumbnail, separated by |.\n" +"for example, 120|400 means 3 categories of thumbnails: <120px, 120-400px, " +">400px" +msgstr "" +"wordt gebruikt om verschillende overlays en CSS-waarden in te stellen " +"afhankelijk van de grootte van de miniatuur, gescheiden door |\n" +"Bijv. 120|400 betekent 3 categorieën van miniaturen: <120px, 120px-400px en " +">400px" + +#: ../build/bin/preferences_gen.h:4982 +msgid "pattern for the thumbnail extended overlay text" +msgstr "sjabloon voor de uitgebreide miniaturen overlay tekst" + +#: ../build/bin/preferences_gen.h:5002 ../build/bin/preferences_gen.h:5043 +msgid "see manual to know all the tags you can use." +msgstr "lees de handleiding om alle mogelijke labels te ontdekken." + +#: ../build/bin/preferences_gen.h:5023 +msgid "pattern for the thumbnail tooltip (empty to disable)" +msgstr "sjabloon voor de miniaturen tooltip (leeg om uit te schakelen)" + +#: ../build/bin/preferences_gen.h:5075 ../src/gui/gtk.c:1267 +#: ../src/gui/preferences.c:544 ../src/views/darkroom.c:94 +msgid "darkroom" +msgstr "ontwikkelen" + +#: ../build/bin/preferences_gen.h:5096 +msgid "scroll down to increase mask parameters" +msgstr "scroll naar beneden om de masker parameters te verhogen" + +#: ../build/bin/preferences_gen.h:5109 +msgid "" +"when using the mouse scroll wheel to change mask parameters, scroll down to " +"increase the mask size, feather size, opacity, brush hardness and gradient " +"curvature\n" +"by default scrolling up increases these parameters" +msgstr "" +"wanneer je het muiswiel gebruikt om de maskerparameters te wijzigen, scroll " +"je omlaag om de maskergrootte, veergrootte, dekking, penseelhardheid en " +"verloopkromming te vergroten\n" +"standaard naar boven scrollen verhoogt deze parameters" + +#: ../build/bin/preferences_gen.h:5130 +msgid "middle mouse button zooms to 200%" +msgstr "middelste muisknop zoomt naar 200%" + +#: ../build/bin/preferences_gen.h:5144 +#, no-c-format +msgid "" +"if enabled, the zoom level will cycle between 100%, 200% and fit to viewport " +"on middle mouse clicks. if disabled, it will toggle between viewport size " +"and 100%, and the 'ctrl' key can be used to control the zoom level." +msgstr "" +"indien geactiveerd schakelt de middelste-muisknop het zoom-niveau tussen " +"100%, 200% en passend,\n" +"anders schakelt het tussen 100% en passend, en kan het zoom niveau aangepast " +"worden met de ctrl-toets." + +#: ../build/bin/preferences_gen.h:5165 +msgid "pattern for the image information line" +msgstr "sjabloon voor de afbeeldingsinformatieregel" + +#: ../build/bin/preferences_gen.h:5185 +msgid "see manual for a list of the tags you can use." +msgstr "lees de handleiding voor een lijst van bruikbare labels." + +#: ../build/bin/preferences_gen.h:5206 +msgid "position of the image information line" +msgstr "positie van de afbeeldingsinformatielijn" + +#: ../build/bin/preferences_gen.h:5240 +msgid "border around image in darkroom mode" +msgstr "rand rondom afbeelding in ontwikkelmodus" + +#: ../build/bin/preferences_gen.h:5260 ../build/bin/preferences_gen.h:7182 +#: ../build/bin/preferences_gen.h:7303 ../build/bin/preferences_gen.h:7584 +#: ../build/bin/preferences_gen.h:8048 ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8257 ../build/bin/preferences_gen.h:8389 +#: ../build/bin/preferences_gen.h:8504 ../build/bin/preferences_gen.h:8550 +#, c-format +msgid "double click to reset to `%d'" +msgstr "dubbelklik om te resetten naar `%d'" + +#: ../build/bin/preferences_gen.h:5263 +msgid "" +"process the image in darkroom mode with a small border. set to 0 if you " +"don't want any border." +msgstr "" +"verwerk de afbeelding in de ontwikkelmodus met een smalle rand. Kies 0 als " +"je geen rand wil." + +#: ../build/bin/preferences_gen.h:5318 +msgid "reduce resolution of preview image" +msgstr "verlaag de resolutie van de preview" + +#: ../build/bin/preferences_gen.h:5332 +msgid "decrease to speed up preview rendering, may hinder accurate masking" +msgstr "" +"verminder om de voorvertoning sneller weer te geven, het kan accuraat maken " +"van maskers hinderen" + +#: ../build/bin/preferences_gen.h:5353 +msgid "show loading screen between images" +msgstr "toon laadscherm tussen afbeeldingen" + +#: ../build/bin/preferences_gen.h:5366 +msgid "" +"show gray loading screen when navigating between images in the darkroom\n" +"disable to just show a toast message" +msgstr "" +"toon grijs laadscherm bij het navigeren tussen afbeeldingen in de " +"ontwikkelweergave\n" +"uitschakelen om alleen een toastbericht te tonen" + +#: ../build/bin/preferences_gen.h:5375 +msgid "modules" +msgstr "modules" + +#: ../build/bin/preferences_gen.h:5394 +msgid "display of individual color channels" +msgstr "weergave van individuele kleur kanalen" + +#: ../build/bin/preferences_gen.h:5408 +msgid "" +"defines how color channels are displayed when activated in the parametric " +"masks feature." +msgstr "" +"bepaalt hoe kleurkanalen worden weergegeven indien geactiveerd in het " +"parametrisch masker." + +#: ../build/bin/preferences_gen.h:5429 +msgid "hide built-in presets for processing modules" +msgstr "verwijder ingebouwde voorkeuren voor verwerkingsmodules" + +#: ../build/bin/preferences_gen.h:5442 +msgid "" +"hides built-in presets of processing modules in both presets and favourites " +"menu." +msgstr "" +"verbergt de ingebouwde voorkeuren van de verwerkingsmodules in de voorkeuren " +"en het favorietenmenu." + +#: ../build/bin/preferences_gen.h:5463 ../build/bin/preferences_gen.h:5476 +msgid "show the guides widget in modules UI" +msgstr "toon de hulplijnen-widget in de gebruikersinterface van modules" + +#: ../build/bin/preferences_gen.h:5497 +msgid "expand a single processing module at a time" +msgstr "vouw een enkele ontwikkelmodule per keer uit" + +#: ../build/bin/preferences_gen.h:5510 +msgid "this option toggles the behavior of shift clicking in darkroom mode" +msgstr "deze optie wisselt het gedrag van de shift-klik in de ontwikkelmodus" + +#: ../build/bin/preferences_gen.h:5531 +msgid "only collapse modules in current group" +msgstr "vouw enkel modules in de huidige groep in" + +#: ../build/bin/preferences_gen.h:5544 +msgid "" +"if only expanding a single module at a time, only collapse other modules in " +"the current group - ignore modules in other groups" +msgstr "" +"als enkel één module uitgevouwen wordt per keer, vouw de andere modules in " +"de huidige groep in - negeer modules in de andere groepen" + +#: ../build/bin/preferences_gen.h:5565 +msgid "expand the module when it is activated, and collapse it when disabled" +msgstr "bij activering de module uitvouwen en bij deactivering samenvouwen" + +#: ../build/bin/preferences_gen.h:5578 +msgid "" +"this option allows to expand or collapse automatically the module when it is " +"enabled or disabled." +msgstr "" +"deze optie regelt het automatisch uitvouwen of samenvouwen bij " +"(de-)activeren van modules." + +#: ../build/bin/preferences_gen.h:5599 +msgid "scroll processing modules to the top when expanded" +msgstr "scroll bewerkings modules naar de top indien uitgeklapt" + +#: ../build/bin/preferences_gen.h:5633 +msgid "show right-side buttons in processing module headers" +msgstr "" +"knoppen aan de rechterkant weergeven in titels van de verwerkingsmodule" + +#: ../build/bin/preferences_gen.h:5647 +msgid "" +"when the mouse is not over a module, the multi-instance, reset and preset " +"buttons can be hidden:\n" +" - 'always': always show all buttons,\n" +" - 'active': only show the buttons when the mouse is over the module,\n" +" - 'dim': buttons are dimmed when mouse is away,\n" +" - 'auto': hide the buttons when the panel is narrow,\n" +" - 'fade': fade out all buttons when panel narrows,\n" +" - 'fit': hide all the buttons if the module name doesn't fit,\n" +" - 'smooth': fade out all buttons in one header simultaneously,\n" +" - 'glide': gradually hide individual buttons as needed" +msgstr "" +"wanneer de muis niet boven een module zit, kunnen de knoppen in de " +"modulebalk worden verborgen:\n" +"- altijd: altijd alle knoppen tonen,\n" +"- actief: toont alleen de knoppen wanneer de muis over de module zit,\n" +"- dimmen: knoppen worden gedimd wanneer de muis weg is,\n" +"- auto: de knoppen verbergen wanneer het deelvenster smal is,\n" +"- fade: vervaag alle knoppen wanneer paneel vernauwt,\n" +"- passend: verberg alle knoppen als de naam van de module niet past,\n" +"- vloeiend: alle knoppen in één kop tegelijkertijd vervagen,\n" +"- glijden: individuele knoppen verbergen als dat nodig is" + +#: ../build/bin/preferences_gen.h:5668 +msgid "show mask indicator in module headers" +msgstr "toon maskerindicator in module headers" + +#: ../build/bin/preferences_gen.h:5681 +msgid "" +"if enabled, an icon will be shown in the header of any processing modules " +"that have a mask applied" +msgstr "" +"indien ingeschakeld, wordt een pictogram weergegeven in de koptekst van alle " +"verwerkingsmodules waarop een masker is toegepast" + +#: ../build/bin/preferences_gen.h:5702 +msgid "prompt for name on addition of new instance" +msgstr "vraag om naam bij toevoeging van nieuwe instantie" + +#: ../build/bin/preferences_gen.h:5715 +msgid "" +"if enabled, a rename prompt will be present for each new module instance " +"(either new instance or duplicate)" +msgstr "" +"indien ingeschakeld, zal een hernoemingsprompt zichtbaar zijn voor elke " +"nieuwe module-instantie (nieuwe instantie of duplicaat)" + +#: ../build/bin/preferences_gen.h:5736 +msgid "automatically update module name" +msgstr "module naam automatisch bijwerken" + +#: ../build/bin/preferences_gen.h:5749 +msgid "" +"if enabled, the module name will be automatically updated to match a preset " +"name or a preset instance name if present." +msgstr "" +"indien actief, wordt de modulenaam automatisch bijgewerkt met een " +"overeenkomstige voorkeur indien aanwezig." + +#: ../build/bin/preferences_gen.h:5781 +msgid "processing" +msgstr "verwerking" + +#: ../build/bin/preferences_gen.h:5783 +msgid "image processing" +msgstr "afbeelding verwerken" + +#: ../build/bin/preferences_gen.h:5802 +msgid "always use LittleCMS 2 to apply output color profile" +msgstr "gebruik altijd LittleCMS als toepassing voor uitgaand profiel" + +#: ../build/bin/preferences_gen.h:5815 +msgid "this is slower than the default." +msgstr "dit is langzamer dan de standaard." + +#: ../build/bin/preferences_gen.h:5836 +msgid "pixel interpolator (warp)" +msgstr "pixelinterpolatie (warp)" + +#: ../build/bin/preferences_gen.h:5850 +msgid "" +"pixel interpolator used in modules for rotation, lens correction, liquify, " +"cropping and final scaling (bilinear, bicubic, lanczos2)." +msgstr "" +"pixelinterpolator gebruikt in modules voor rotatie, lenscorrectie, vloeibaar " +"maken, uitsnijden en uiteindelijke schaling (bilineair, bicubic, lanczos2)." + +#: ../build/bin/preferences_gen.h:5871 +msgid "pixel interpolator (scaling)" +msgstr "pixel interpolatie (schaalvergroting)" + +#: ../build/bin/preferences_gen.h:5885 +msgid "" +"pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." +msgstr "" +"pixelinterpolator die wordt gebruikt voor het schalen (bilineair, bicubisch, " +"lanczos2, lanczos3)." + +#: ../build/bin/preferences_gen.h:5906 +msgid "LUT 3D root folder" +msgstr "LUT 3D hoofdmap" + +#: ../build/bin/preferences_gen.h:5912 ../src/control/jobs/control_jobs.c:1691 +#: ../src/control/jobs/control_jobs.c:1745 ../src/gui/preferences.c:1080 +#: ../src/gui/presets.c:421 ../src/imageio/storage/disk.c:197 +#: ../src/imageio/storage/disk.c:261 ../src/imageio/storage/gallery.c:149 +#: ../src/imageio/storage/gallery.c:213 ../src/imageio/storage/latex.c:145 +#: ../src/imageio/storage/latex.c:199 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1673 ../src/libs/styles.c:391 +#: ../src/lua/preferences.c:668 +msgid "select directory" +msgstr "selecteer map" + +#: ../build/bin/preferences_gen.h:5926 +msgid "" +"this folder (and sub-folders) contains LUT files used by LUT 3D module. " +"(need a restart)." +msgstr "" +"deze map (en submappen) bevat Lut-bestanden gebruikt door lut3d-modules. " +"(herstart is nodig)." + +#: ../build/bin/preferences_gen.h:5947 +msgid "auto-apply pixel workflow defaults" +msgstr "standaardwaarden voor pixel workflow aut. toepassen" + +#: ../build/bin/preferences_gen.h:5961 +msgid "" +"scene-referred workflow is based on linear modules and will auto-apply " +"filmic or sigmoid, color calibration and exposure,\n" +"display-referred workflow is based on Lab modules and will auto-apply base " +"curve, white balance and the legacy module pipe order." +msgstr "" +"scène-gerefereerde werkstroom is gebaseerd op lineaire modules en zal " +"automatisch filmisch rgb of sigmoïde, kleurkalibratie en belichting " +"toepassen,\n" +"scherm-gerefereerde werkstroom is gebaseerd op Lab modules en zal " +"automatisch basiscurve, witbalans en de klassieke modulevolgorde toepassen." + +#: ../build/bin/preferences_gen.h:5982 +msgid "auto-apply per camera basecurve presets" +msgstr "aut. toepassen van basiscurve per camera" + +#: ../build/bin/preferences_gen.h:5995 +msgid "" +"use the per-camera basecurve by default instead of the generic manufacturer " +"one if there is one available (needs a restart).\n" +"this option is taken into account when the \"auto-apply pixel workflow " +"defaults\" is set to \"display-referred\".\n" +"to prevent auto-apply basecurve presets \"auto-apply pixel workflow " +"defaults\" should be set to \"none\"" +msgstr "" +"gebruik standaard de basiscurve per camera in plaats van de generieke van de " +"fabrikant als die beschikbaar is (herstart is nodig).\n" +"hiermee wordt rekening gehouden wanneer de “aut. toepassen pixel workflow-" +"standaardinstellingen” is ingesteld op “scherm-gerefereerd”.\n" +"om automatisch toepassen van basiscurve-voorinstellingen te voorkomen, moet " +"“aut. toepassen pixel workflow-standaardinstellingen” worden ingesteld op " +"“geen”" + +#: ../build/bin/preferences_gen.h:6016 +msgid "detect monochrome previews" +msgstr "detecteer monochrome voorbeelden" + +#: ../build/bin/preferences_gen.h:6029 +msgid "" +"many monochrome images can be identified via EXIF and preview data. beware: " +"this slows down imports and reading of EXIF data" +msgstr "" +"veel monochrome afbeeldingen kunnen geïdentificeerd worden via EXIF en " +"voorbeeld data. Let op: dit vertraagt het importeren en lezen van de EXIF " +"data" + +#: ../build/bin/preferences_gen.h:6050 +msgid "show warning messages" +msgstr "waarschuwingsberichten weergeven" + +#: ../build/bin/preferences_gen.h:6063 +msgid "" +"display messages in modules to warn beginner users when non-standard and " +"possibly harmful settings are used in the pipeline.\n" +"these messages can be false-positive and should be disregarded if you know " +"what you are doing. this option will hide them all the time." +msgstr "" +"geef berichten weer in modules om beginnende gebruikers te waarschuwen " +"wanneer niet-standaard en mogelijk schadelijke instellingen in de pijplijn " +"worden gebruikt.\n" +"Deze berichten kunnen vals-positief zijn en moeten worden genegeerd als u " +"weet wat u doet. Deze optie zal ze altijd verbergen." + +#: ../build/bin/preferences_gen.h:6072 +msgid "CPU / memory" +msgstr "CPU / geheugen" + +#: ../build/bin/preferences_gen.h:6091 +msgid "darktable resources" +msgstr "darktable bronnen" + +#: ../build/bin/preferences_gen.h:6106 +#, no-c-format +msgid "" +"defines how much darktable may take from your system resources:\n" +" - 'default': darktable takes ~50% of your systems resources and gives " +"darktable enough to be still performant.\n" +" - 'small': should be used if you are simultaneously running applications " +"taking large parts of your systems memory or OpenCL/GL applications like " +"games or Hugin.\n" +" - 'large': is the best option if you are mainly using darktable and want it " +"to take most of your systems resources for performance.\n" +" - 'unrestricted': should only be used for developing extremely large images " +"as darktable will take all of your systems resources\n" +" and thus might lead to swapping and unexpected performance drops.\n" +" use with caution and not recommended for general use!" +msgstr "" +"definieert hoeveel darktable van de systeembronnen mag gebruiken.\n" +"-standaard: darktable gebruikt ~50% van jouw systeembronnen en geeft " +"darktable voldoende om vlot te werken.\n" +"-klein: te gebruiken als je gelijktijdig programma's gebruikt die veel " +"systeem geheugen gebruiken of OpenCL/GL applicaties zoals spellen of Hugin.\n" +"-groot: is de beste optie als je alleen darktable gebruikt en het de meeste " +"systeembronnen mag gebruiken voor beste prestatie.\n" +"-onbeperkt: moet alleen gebruikt worden voor het bewerken van extreem " +"grootte afbeeldingen waar darktable alle systeembronnen gebruikt\n" +" en daardoor kan leiden tot onverwachte prestatie vermindering.\n" +" Gebruik dit met voorzichtigheid - niet aanbevolen voor algemeen gebruik!" + +#: ../build/bin/preferences_gen.h:6127 +msgid "prefer performance over quality" +msgstr "geef de voorkeur aan prestaties boven kwaliteit" + +#: ../build/bin/preferences_gen.h:6140 +msgid "" +"if switched on, thumbnails and previews are rendered at lower quality but 4 " +"times faster" +msgstr "" +"indien ingeschakeld, worden miniaturen en voorbeelden weergegeven met een " +"lagere kwaliteit, maar 4 keer sneller" + +#: ../build/bin/preferences_gen.h:6149 +msgid "OpenCL" +msgstr "OpenCL" + +#: ../build/bin/preferences_gen.h:6168 +msgid "activate OpenCL support" +msgstr "activeer OpenCL-ondersteuning" + +#: ../build/bin/preferences_gen.h:6181 +msgid "" +"if found, use OpenCL runtime on your system to speed up processing.\n" +"can be switched on and off at any time." +msgstr "" +"indien aanwezig, gebruik dan OpenCL runtime voor een verbeterde " +"verwerkingssnelheid.\n" +"kan op elk moment worden in- en uitgeschakeld." + +#: ../build/bin/preferences_gen.h:6185 ../build/bin/preferences_gen.h:6230 +#: ../build/bin/preferences_gen.h:6274 ../build/bin/preferences_gen.h:6325 +#: ../build/bin/preferences_gen.h:6369 ../build/bin/preferences_gen.h:6413 +#: ../build/bin/preferences_gen.h:6457 ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6545 ../build/bin/preferences_gen.h:7700 +msgid "not available" +msgstr "niet beschikbaar" + +#: ../build/bin/preferences_gen.h:6187 ../build/bin/preferences_gen.h:6188 +#: ../build/bin/preferences_gen.h:6232 ../build/bin/preferences_gen.h:6233 +#: ../build/bin/preferences_gen.h:6276 ../build/bin/preferences_gen.h:6277 +#: ../build/bin/preferences_gen.h:6327 ../build/bin/preferences_gen.h:6328 +#: ../build/bin/preferences_gen.h:6371 ../build/bin/preferences_gen.h:6372 +#: ../build/bin/preferences_gen.h:6415 ../build/bin/preferences_gen.h:6416 +#: ../build/bin/preferences_gen.h:6459 ../build/bin/preferences_gen.h:6460 +#: ../build/bin/preferences_gen.h:6503 ../build/bin/preferences_gen.h:6504 +#: ../build/bin/preferences_gen.h:6547 ../build/bin/preferences_gen.h:6548 +#: ../build/bin/preferences_gen.h:7702 ../build/bin/preferences_gen.h:7703 +msgid "not available on this system" +msgstr "niet beschikbaar op dit systeem" + +#: ../build/bin/preferences_gen.h:6212 +msgid "OpenCL scheduling profile" +msgstr "OpenCL planningsprofiel" + +#: ../build/bin/preferences_gen.h:6226 +msgid "" +"defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled " +"systems:\n" +" - 'default': GPU processes full and CPU processes preview pipe (adaptable " +"by config parameters),\n" +" - 'multiple GPUs': process both pixelpipes in parallel on two different " +"GPUs,\n" +" - 'very fast GPU': process both pixelpipes sequentially on the GPU." +msgstr "" +"bepaalt hoe voorvertonings- en volledige bewerkingstaken worden gepland op " +"OpenCL-systemen.\n" +"- standaard: GPU voert volledige taken uit en CPU verzorgt voorvertoning " +"(aanpasbaar via instellingen);\n" +"- meerdere GPU's: verwerkt beide soorten taken parallel op twee " +"verschillende GPU's;\n" +"- zeer snelle GPU: verwerkt beide soorten taken sequentieel op de GPU." + +#: ../build/bin/preferences_gen.h:6257 +msgid "use all device memory" +msgstr "gebruik volledige geheugen" + +#: ../build/bin/preferences_gen.h:6270 +msgid "" +"if enabled darktable will use all device memory except a safety margin " +"(headroom, default is 600MB)" +msgstr "" +"indien ingeschakeld gebruikt darktable het hele systeemgeheugen behalve een " +"veiligheidsmarge (standaard 600MB)" + +#: ../build/bin/preferences_gen.h:6289 +msgid "OpenCL drivers" +msgstr "OpenCL stuurprogramma's" + +#: ../build/bin/preferences_gen.h:6308 +msgid "Intel GPU" +msgstr "Intel GPU" + +#: ../build/bin/preferences_gen.h:6321 +msgid "Intel(R) OpenCL Graphics for all supported platforms (vendor provided)" +msgstr "" +"Intel(R) OpenCL Graphics voor alle ondersteunde platformen (van leverancier)" + +#: ../build/bin/preferences_gen.h:6352 +msgid "Nvidia CUDA" +msgstr "Nvidia CUDA" + +#: ../build/bin/preferences_gen.h:6365 +msgid "Nvidia CUDA based OpenCL (vendor provided)" +msgstr "Nvidia CUDA gebaseerde OpenCL (van leverancier)" + +#: ../build/bin/preferences_gen.h:6396 +msgid "AMD ROCm" +msgstr "AMD ROCm" + +#: ../build/bin/preferences_gen.h:6409 +msgid "AMD Accelerated Parallel Processing (vendor provided)" +msgstr "AMD Accelerated Parallel Processing (van leverancier)" + +#: ../build/bin/preferences_gen.h:6440 +msgid "RustiCL" +msgstr "RustiCL" + +#: ../build/bin/preferences_gen.h:6453 +msgid "" +"RustiCL Mesa OpenCL, still unstable. if you want to use this, you should " +"disable the vendor driver" +msgstr "" +"RustiCL Mesa OpenCL is nog onstabiel. Als je dit wilt gebruiken schakel dan " +"het stuurprogramma van de leverancier uit" + +#: ../build/bin/preferences_gen.h:6484 +msgid "Apple" +msgstr "Apple" + +#: ../build/bin/preferences_gen.h:6497 +msgid "Apple OpenCL (vendor provided)" +msgstr "Apple OpenCL (van leverancier)" + +#: ../build/bin/preferences_gen.h:6528 +msgid "Microsoft OpenCLOn12" +msgstr "Microsoft OpenCLOn12" + +#: ../build/bin/preferences_gen.h:6541 +msgid "" +"Microsoft OpenCLOn12, only use this if the vendor provided driver does not " +"work or there is none provided." +msgstr "" +"Microsoft OpenCLOn12, alleen te gebruiken als er geen stuurprogramma van de " +"leverancier is of als die niet werkt." + +#: ../build/bin/preferences_gen.h:6572 +msgid "other platforms" +msgstr "andere platformen" + +#: ../build/bin/preferences_gen.h:6585 +msgid "" +"if set, all unspecified platforms are accepted. only do this if no vendor " +"driver is available" +msgstr "" +"accepteer alle niet-gespecificeerde platformen. Doe dit alleen als er geen " +"stuurprogramma beschikbaar is van de leverancier" + +#: ../build/bin/preferences_gen.h:6617 +msgid "security" +msgstr "veiligheid" + +#: ../build/bin/preferences_gen.h:6638 +msgid "ask before removing images from the library" +msgstr "vraag voordat afbeeldingen uit de bibliotheek worden verwijderd" + +#: ../build/bin/preferences_gen.h:6651 +msgid "always ask the user before removing image information from the library" +msgstr "" +"vraag altijd eerst aan de gebruiker voordat afbeeldingsinformatie uit de " +"bibliotheek wordt verwijderd" + +#: ../build/bin/preferences_gen.h:6672 +msgid "ask before deleting images from disk" +msgstr "vraag voordat afbeeldingen van de schijf worden verwijderd" + +#: ../build/bin/preferences_gen.h:6685 +msgid "always ask the user before any image file is deleted" +msgstr "" +"vraag altijd eerst toestemming aan de gebruiker voordat een afbeelding wordt " +"verwijderd" + +#: ../build/bin/preferences_gen.h:6706 +msgid "ask before discarding history stack" +msgstr "vraag voordat historiestappen worden weggegooid" + +#: ../build/bin/preferences_gen.h:6719 +msgid "always ask the user before history stack is discarded on any image" +msgstr "" +"vraag altijd een bevestiging voordat bewerkingsstappen worden weggegooid" + +#: ../build/bin/preferences_gen.h:6740 +msgid "try to use trash when deleting images" +msgstr "" +"probeer bestanden naar de prullenbak te verplaatsen wanneer deze worden " +"verwijderd" + +#: ../build/bin/preferences_gen.h:6753 +msgid "" +"send files to trash instead of permanently deleting files on system that " +"supports it" +msgstr "" +"stuur bestanden naar de prullenbak in plaats van deze permanent te " +"verwijderen" + +#: ../build/bin/preferences_gen.h:6774 +msgid "ask before moving images from film roll folder" +msgstr "vraag voordat afbeeldingen uit de filmrol worden gehaald" + +#: ../build/bin/preferences_gen.h:6787 +msgid "always ask the user before any image file is moved." +msgstr "" +"vraag altijd eerst de gebruiker voordat een afbeelding wordt verplaatst." + +#: ../build/bin/preferences_gen.h:6808 +msgid "ask before copying images to new film roll folder" +msgstr "vraag voordat afbeeldingen naar nieuwe filmrol worden gekopieerd" + +#: ../build/bin/preferences_gen.h:6821 +msgid "always ask the user before any image file is copied." +msgstr "vraag om bevestiging voordat een afbeelding wordt gekopieerd." + +#: ../build/bin/preferences_gen.h:6842 +msgid "ask before removing empty folders" +msgstr "vraag voordat lege mappen worden verwijderd" + +#: ../build/bin/preferences_gen.h:6855 +msgid "" +"always ask the user before removing any empty folder. this can happen after " +"moving or deleting images." +msgstr "" +"vraag om een bevestiging voordat lege mappen verwijderd worden (de vraag kan " +"komen na het verwijderen of verplaatsen van afbeeldingen)" + +#: ../build/bin/preferences_gen.h:6876 +msgid "ask before deleting a tag" +msgstr "vraag voordat een label wordt verwijderd" + +#: ../build/bin/preferences_gen.h:6909 +msgid "ask before deleting a style" +msgstr "vraag voordat een stijl wordt verwijderd" + +#: ../build/bin/preferences_gen.h:6942 +msgid "ask before deleting a preset" +msgstr "vraag voordat een voorkeur wordt verwijderd" + +#: ../build/bin/preferences_gen.h:6955 +msgid "will ask for confirmation before deleting or overwriting a preset" +msgstr "" +"zal voor bevestiging vragen voor een voorkeur wordt overschreven of " +"verwijderd" + +#: ../build/bin/preferences_gen.h:6976 +msgid "ask before exporting in overwrite mode" +msgstr "vraag voor exporteren in overschrijfmodus" + +#: ../build/bin/preferences_gen.h:6989 +msgid "will ask for confirmation before exporting files in overwrite mode" +msgstr "" +"zal om bevestiging vragen voordat bestanden in de overschrijfmodus worden " +"geëxporteerd" + +#. italic +#: ../build/bin/preferences_gen.h:6998 ../src/libs/tools/viewswitcher.c:148 +msgid "other" +msgstr "overige" + +#: ../build/bin/preferences_gen.h:7017 +msgid "password storage backend to use" +msgstr "te gebruiken wachtwoord voor schijfopslag" + +#: ../build/bin/preferences_gen.h:7035 +msgid "" +"the storage backend for password storage: auto, none, libsecret, kwallet" +msgstr "de opslag voor wachtwoordopslag: auto, geen, libsecret, kwallet" + +#: ../build/bin/preferences_gen.h:7056 +msgid "executable for playing audio files" +msgstr "applicatie voor het afspelen van audio-bestanden" + +#: ../build/bin/preferences_gen.h:7074 +msgid "" +"this external program is used to play audio files some cameras record to " +"keep notes for images" +msgstr "" +"dit externe programma wordt gebruikt om audiobestanden af ​​te spelen die " +"sommige camera's als notitie bij de afbeelding bewaren" + +#: ../build/bin/preferences_gen.h:7106 +msgid "storage" +msgstr "opslagruimte" + +#: ../build/bin/preferences_gen.h:7108 ../src/control/crawler.c:717 +msgid "database" +msgstr "database" + +#: ../build/bin/preferences_gen.h:7127 +msgid "create database snapshot" +msgstr "maak momentopname van database" + +#: ../build/bin/preferences_gen.h:7141 +msgid "" +"database snapshots are created right before closing darktable. options allow " +"you to choose how often to make snapshots:\n" +" - 'never': simply don't do snapshots. that way the only snapshots done are " +"mandatory version-upgrade snapshots\n" +" - 'once a month': create snapshot if a month has passed since last " +"snapshot\n" +" - 'once a week': create snapshot if 7 days had passed since last snapshot\n" +" - 'once a day': create snapshot if over 24h passed since last snapshot\n" +" - 'on close': create snapshot every time darktable is closed" +msgstr "" +"database-momentopnames worden gemaakt vlak voordat darktable wordt gesloten. " +"Met de opties kunt u kiezen hoe vaak je momentopnames wilt maken:\n" +"- nooit: maak gewoon geen snapshots. Op die manier zijn de enige gemaakte " +"snapshots verplichte versie-upgrade snapshots\n" +"- eens per maand: maak een snapshot als er een maand is verstreken sinds de " +"laatste momentopname\n" +"- eens per week: maak een momentopname als er 7 dagen zijn verstreken sinds " +"de laatste momentopname\n" +"- eens per dag: maak een momentopname als er meer dan 24 uur zijn verstreken " +"sinds de laatste momentopname\n" +"- bij afsluiten: maak een momentopname elke keer dat darktable wordt gesloten" + +#: ../build/bin/preferences_gen.h:7162 +msgid "how many snapshots to keep" +msgstr "hoeveel snapshots bewaard worden" + +#: ../build/bin/preferences_gen.h:7185 +msgid "" +"after successfully creating snapshot, how many older snapshots to keep " +"(excluding mandatory version update ones). enter -1 to keep all snapshots\n" +"keep in mind that snapshots do take some space and you only need the most " +"recent one for successful restore" +msgstr "" +"nadat een snapshot succesvol gecreëerd werd, hoeveel oudere snapshots " +"bewaard worden (met uitzondering van verplichte updates). Voer -1 in om alle " +"snapshots te bewaren\n" +"denk er aan dat snapshots ruimte in beslag nemen en dat je enkel de meest " +"recente nodig hebt om succesvol te kunnen herstellen" + +#: ../build/bin/preferences_gen.h:7194 ../src/libs/copy_history.c:149 +msgid "XMP sidecar files" +msgstr "XMP sidecar-bestanden" + +#: ../build/bin/preferences_gen.h:7213 +msgid "create XMP files" +msgstr "schrijf XMP-bestanden" + +#: ../build/bin/preferences_gen.h:7227 +msgid "" +"XMP sidecar files hold information about all your development steps to allow " +"flawless re-importing of image files.\n" +"\n" +"depending on the selected mode sidecar files will be created:\n" +" - 'never'\n" +" - 'on import': immediately after importing the image\n" +" - 'after edit': after any user change on the image or adding tags." +msgstr "" +"XMP sidecar-bestanden bevatten informatie over alle ontwikkelstappen om " +"opnieuw importeren van afbeeldingsbestanden mogelijk te maken.\n" +"\n" +"sidecar-bestanden worden geschreven afhankelijk van de geselecteerde " +"modus :\n" +" - 'nooit'\n" +" - 'bij import': direct na het importeren van de afbeelding\n" +" - 'na bewerking': na elke wijziging van de gebruiker op de afbeelding." + +#: ../build/bin/preferences_gen.h:7248 +msgid "store XMP tags in compressed format" +msgstr "sla XMP labels op in gecomprimeerd formaat" + +#: ../build/bin/preferences_gen.h:7262 +msgid "" +"entries in XMP tags can get rather large and may exceed the available space " +"to store the history stack in output files.\n" +"this option allows XMP tags to be compressed and save space." +msgstr "" +"data in XMP labels kan nogal groot worden en de beschikbare opslagruimte " +"voor bewerkingshistorie overschrijden.\n" +"deze optie maakt het mogelijk om XMP-labels te comprimeren en ruimte te " +"besparen." + +#: ../build/bin/preferences_gen.h:7283 +msgid "auto-save interval" +msgstr "aut. opslag interval" + +#: ../build/bin/preferences_gen.h:7306 +msgid "" +"automatically save history while developing using the given interval (in " +"seconds); set to zero to disable auto-saving. auto-saving might be disabled " +"on slow drives." +msgstr "" +"bewaar historie automatisch tijdens het bewerken (interval in sec); bij " +"interval 0 is dit uitgeschakeld; dat gebeurt ook automatisch bij een te " +"trage schijf." + +#: ../build/bin/preferences_gen.h:7327 +msgid "look for updated XMP files on startup" +msgstr "zoek naar bijgewerkte XMP-bestanden bij het opstarten" + +#: ../build/bin/preferences_gen.h:7340 +msgid "" +"check file modification times of all XMP files on startup to check if any " +"got updated in the meantime" +msgstr "" +"controleer de bestandswijzigingstijden van alle XMP-bestanden bij het " +"opstarten om te controleren of er in de tussentijd een update is uitgevoerd" + +#: ../build/bin/preferences_gen.h:7372 +msgid "miscellaneous" +msgstr "diversen" + +#: ../build/bin/preferences_gen.h:7374 +msgid "interface" +msgstr "interface" + +#: ../build/bin/preferences_gen.h:7393 +msgid "load default shortcuts at startup" +msgstr "laad standaard sneltoetsen bij opstarten" + +#: ../build/bin/preferences_gen.h:7406 +msgid "" +"load default shortcuts before user settings. switch off to prevent deleted " +"defaults returning" +msgstr "" +"laad standaard sneltoetsen voor de gebuikersinstellingen. schakel uit om te " +"voorkomen dat verwijderde standaarden terug komen" + +#: ../build/bin/preferences_gen.h:7427 +msgid "scale slider step with min/max" +msgstr "schaal schuif stap met min/max" + +#: ../build/bin/preferences_gen.h:7440 +msgid "vary slider step size with min/max range" +msgstr "varieer schuif stapgrootte met min/max bereik" + +#: ../build/bin/preferences_gen.h:7461 +msgid "sort built-in presets first" +msgstr "sorteer de ingebouwde voorkeuren eerst" + +#: ../build/bin/preferences_gen.h:7474 +msgid "" +"whether to show built-in presets first before user's presets in presets menu." +msgstr "" +"of de ingebouwde voorkeuren eerst moeten worden weergegeven vóór de " +"voorkeuren van de gebruiker in het menu." + +#: ../build/bin/preferences_gen.h:7495 +msgid "mouse wheel scrolls modules side panel by default" +msgstr "muiswiel schuift standaard het zijpaneel van de module" + +#: ../build/bin/preferences_gen.h:7508 +msgid "" +"when enabled, use mouse wheel to scroll modules side panel. use ctrl+alt to " +"use mouse wheel for data entry. when disabled, this behavior is reversed" +msgstr "" +"indien ingeschakeld, gebruik het muiswiel om het zijpaneel van de module te " +"verschuiven. gebruik ctrl+alt voor gegevensinvoer met het muiswiel" + +#: ../build/bin/preferences_gen.h:7529 +msgid "always show panels' scrollbars" +msgstr "toon altijd de schuifbalken" + +#: ../build/bin/preferences_gen.h:7542 +msgid "" +"defines whether the panel scrollbars should be always visible or activated " +"only depending on the content. (need a restart)" +msgstr "" +"bepaald of de schuifbalken altijd zichtbaar zijn of alleen, afhankelijk van " +"de inhoud, worden geactiveerd (herstart is nodig)" + +#: ../build/bin/preferences_gen.h:7563 +msgid "duration of the UI transitions in ms" +msgstr "duur van de UI-overgangen in ms" + +#: ../build/bin/preferences_gen.h:7587 +msgid "" +"how long the transitions take (in ms) for expanding or collapsing modules " +"and other UI elements" +msgstr "" +"hoe lang de overgangen duren (in ms) voor het uitvouwen of samenvouwen van " +"modules en andere UI-elementen" + +#: ../build/bin/preferences_gen.h:7608 +msgid "position of the scopes module" +msgstr "positie van de afbeeldingsinformatielijn" + +#: ../build/bin/preferences_gen.h:7622 +msgid "position the scopes at the top-left or top-right of the screen" +msgstr "" +"plaats de afbeeldingsinformatielijn linksboven of rechtsboven in het scherm" + +#: ../build/bin/preferences_gen.h:7643 +msgid "method to use for getting the display profile" +msgstr "te gebruiken methode om het displayprofiel te verkrijgen" + +#: ../build/bin/preferences_gen.h:7657 +msgid "" +"this option allows to force a specific means of getting the current display " +"profile.\n" +"this is useful when one alternative gives wrong results" +msgstr "" +"deze optie forceert een specifieke methode om een displayprofiel te " +"bepalen.\n" +"Dit is handig wanneer een bepaalde methode verkeerde resultaten oplevert" + +#: ../build/bin/preferences_gen.h:7678 +msgid "order or exclude MIDI devices" +msgstr "ordenen of uitsluiten MIDI apparaten" + +#: ../build/bin/preferences_gen.h:7696 +msgid "" +"comma-separated list of device name fragments that if matched load MIDI " +"device at id given by location in list\n" +"or if preceded by '-' prevent matching devices from loading. add encoding " +"and number of knobs like 'BeatStep:63:16'" +msgstr "" +"komma-gescheiden lijst van apparaatnaam-fragmenten die, indien gevonden, " +"MIDI apparaten laden op id volgens de locatie in de lijst\n" +"of als ze beginnen met '-' niet laden van overeenkomstige apparaten. Voeg " +"codering en aantal knoppen toe zoals 'BeatStep:63:16'" + +#. tags +#: ../build/bin/preferences_gen.h:7715 ../src/develop/lightroom.c:1573 +#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:322 +#: ../src/libs/image.c:614 ../src/libs/metadata_view.c:166 +msgid "tags" +msgstr "labels" + +#: ../build/bin/preferences_gen.h:7734 +msgid "omit hierarchy in simple tag lists" +msgstr "verwijder hiërarchie van gewone label lijsten" + +#: ../build/bin/preferences_gen.h:7747 +msgid "" +"when creating an XMP sidecar file the hierarchical tags are also added as a " +"simple list\n" +"of non-hierarchical ones to make them visible to some other programs.\n" +"when this option is checked darktable will only include their last part\n" +"and ignore the rest. so 'foo|bar|baz' will only add 'baz'." +msgstr "" +"bij het schrijven van een XMP-bestand worden hiërarchische labels toegevoegd " +"als\n" +"een lijst van niet-hiërarchische labels om zichtbaar te zijn voor andere " +"programma's.\n" +"Indien aangevinkt zal darktable alleen het laatste deel insluiten en de rest " +"negeren. \n" +"Bijv. 'foo|bar|baz' wordt dan 'baz'." + +#: ../build/bin/preferences_gen.h:7756 +msgid "shortcuts with multiple instances" +msgstr "sneltoetsen met meerdere instanties" + +#: ../build/bin/preferences_gen.h:7775 +msgid "prefer focused instance" +msgstr "voorkeur gefocusde instantie" + +#: ../build/bin/preferences_gen.h:7788 +msgid "" +"where multiple instances of a module are present, apply shortcuts to the " +"instance that has focus\n" +"if none are focused, the preferences below control rules that are followed " +"(in order) to decide which module instance shortcuts will be applied to.\n" +"note: blending shortcuts always apply to the focused instance" +msgstr "" +"als meer module-instanties aanwezig zijn, pas de sneltoets toe op de actieve " +"instantie\n" +"zonder actieve instanties worden de volgende regels (in volgorde) doorlopen " +"om te beslissen op welke module-instantie de sneltoets wordt toegepast.\n" +"NB: 'blending' sneltoetsen gelden altijd voor de actieve instantie" + +#: ../build/bin/preferences_gen.h:7809 +msgid "prefer expanded instances" +msgstr "verkies uitgevouwen instanties" + +#: ../build/bin/preferences_gen.h:7822 +msgid "if instances of the module are expanded, ignore collapsed instances" +msgstr "" +"als instanties van de module zijn uitgevouwen, negeer dan samengevouwen " +"instanties" + +#: ../build/bin/preferences_gen.h:7843 +msgid "prefer enabled instances" +msgstr "verkies ingeschakelde instanties" + +#: ../build/bin/preferences_gen.h:7856 +msgid "" +"after applying the above rule, if instances of the module are active, ignore " +"inactive instances" +msgstr "" +"na het toepassen van de bovenstaande regel en als instanties van de module " +"actief zijn, negeer dan inactieve instanties" + +#: ../build/bin/preferences_gen.h:7877 +msgid "prefer unmasked instances" +msgstr "verkies ontmaskerde instanties" + +#: ../build/bin/preferences_gen.h:7890 +msgid "" +"after applying the above rules, if instances of the module are unmasked, " +"ignore masked instances" +msgstr "" +"na het toepassen van de bovenstaande regels, negeer gemaskerde instanties " +"als instanties van de module zijn ontmaskerd" + +#: ../build/bin/preferences_gen.h:7911 +msgid "selection order" +msgstr "selectievolgorde" + +#: ../build/bin/preferences_gen.h:7925 +msgid "" +"after applying the above rules, apply the shortcut based on its position in " +"the pixelpipe" +msgstr "" +"pas na het toepassen van de bovenstaande regels de sneltoets toe op basis " +"van zijn positie in de pixelpipe" + +#: ../build/bin/preferences_gen.h:7946 +msgid "allow visual assignment to specific instances" +msgstr "visuele toewijzing aan specifieke instanties toestaan" + +#: ../build/bin/preferences_gen.h:7959 +msgid "" +"when multiple instances are present on an image this allows shortcuts to be " +"visually assigned to those specific instances\n" +"otherwise shortcuts will always be assigned to the preferred instance" +msgstr "" +"wanneer er meerdere instanties op een afbeelding aanwezig zijn, kunnen " +"sneltoetsen visueel worden toegewezen aan die specifieke instanties\n" +"anders worden sneltoetsen altijd toegewezen aan de voorkeursinstantie" + +#: ../build/bin/preferences_gen.h:7968 +msgid "map / geolocalization view" +msgstr "kaart / geolokalisatieweergave" + +#: ../build/bin/preferences_gen.h:7987 +msgid "pretty print the image location" +msgstr "afbeeldingslocatie mooi afdrukken" + +#: ../build/bin/preferences_gen.h:8000 +msgid "" +"show a more readable representation of the location in the image information " +"module" +msgstr "vertoon in de informatiemodule een beter leesbare weergave" + +#: ../build/bin/preferences_gen.h:8009 +msgid "slideshow view" +msgstr "presentatieweergave" + +#: ../build/bin/preferences_gen.h:8028 +msgid "waiting time between each picture in slideshow" +msgstr "tussentijdse wachttijd in de presentatie" + +#: ../build/bin/preferences_gen.h:8088 +msgid "do not set the 'uncategorized' entry for tags" +msgstr "stel de vermelding ‘niet-gecategoriseerd’ niet in voor tags" + +#: ../build/bin/preferences_gen.h:8101 +msgid "" +"do not set the 'uncategorized' entry for tags which do not have children" +msgstr "" +"stel de vermelding ‘niet-gecategoriseerd’ niet in voor tags die geen subtags " +"hebben" + +#: ../build/bin/preferences_gen.h:8122 +msgid "tags case sensitivity" +msgstr "labels hoofdlettergevoelig" + +#: ../build/bin/preferences_gen.h:8136 +msgid "" +"tags case sensitivity. without the Sqlite ICU extension, insensitivity works " +"only for the 26 latin letters" +msgstr "" +"labels hoofdlettergevoelig. zonder de Sqlite ICU-extensie werkt " +"ongevoeligheid alleen voor de 26 Latijnse letters" + +#: ../build/bin/preferences_gen.h:8157 ../build/bin/preferences_gen.h:8368 +msgid "number of collections to be stored" +msgstr "aantal collecties om op te slaan" + +#: ../build/bin/preferences_gen.h:8181 ../build/bin/preferences_gen.h:8392 +msgid "the number of recent collections to store and show in this list" +msgstr "aantal recente collecties om op te slaan en in de lijst te tonen" + +#: ../build/bin/preferences_gen.h:8202 +msgid "hide the history button and show a specific module instead" +msgstr "" +"verberg de historie knop en laat hiervoor in de plaats een specifieke module " +"zien" + +#: ../build/bin/preferences_gen.h:8215 +msgid "hide the history button and show the recent collections module instead" +msgstr "" +"verberg de historie knop en laat hiervoor in de plaats een recente collectie " +"module zien" + +#: ../build/bin/preferences_gen.h:8236 +msgid "number of folder levels to show in lists" +msgstr "aantal zichtbare mapniveaus in de lijst" + +#: ../build/bin/preferences_gen.h:8260 +msgid "" +"the number of folder levels to show in film roll names, starting from the " +"right" +msgstr "" +"het aantal niveau's om weer te geven in filmrol, te beginnen vanaf de " +"rechterkant" + +#: ../build/bin/preferences_gen.h:8281 +msgid "sort film rolls by" +msgstr "sorteer filmrollen op" + +#: ../build/bin/preferences_gen.h:8292 +msgctxt "preferences" +msgid "chronological" +msgstr "chronologisch" + +#: ../build/bin/preferences_gen.h:8295 +msgid "sets the collections-list order for film rolls" +msgstr "stelt de volgorde van de collectielijsten voor filmrollen in" + +#: ../build/bin/preferences_gen.h:8316 +msgid "sort collection descending" +msgstr "sorteer collectie aflopend" + +#: ../build/bin/preferences_gen.h:8329 +msgid "" +"sort the following collections in descending order: 'film roll' by folder, " +"'folder', 'times' (e.g. 'capture date')" +msgstr "" +"sorteer de volgende collecties in aflopende volgorde: ‘filmrol’ op map, " +"‘map’, ‘tijden’ (bijv. ‘opname datum’)" + +#: ../build/bin/preferences_gen.h:8413 +msgid "prefer a history button in the collections module" +msgstr "voorkeur aan historie knop in de collectie module" + +#: ../build/bin/preferences_gen.h:8426 +msgid "" +"hide this module and instead access collections history with a button in the " +"collections module" +msgstr "" +"verberg deze module en geef in plaats daarvan toegang tot collectie historie " +"met een knop in de collectie module" + +#: ../build/bin/preferences_gen.h:8483 +msgid "suggested tags level of confidence" +msgstr "voorgestelde label niveau van vertrouwen" + +#: ../build/bin/preferences_gen.h:8508 +#, no-c-format +msgid "" +"level of confidence to include the tag in the suggestions list, 0: all " +"associated tags, 99: 99% matching associated tags, 100: no matching tag to " +"show only recent tags (faster)" +msgstr "" +"niveau van vertrouwen om de label toe te voegen in de voorgestelde lijst. 0: " +"alle geassocieerde labels, 99: 99%% overeenkomstige geassocieerde labels, " +"100: geen overeenkomstige labels weer te geven alleen recente labels " +"(sneller)" + +#: ../build/bin/preferences_gen.h:8529 +msgid "number of recently attached tags" +msgstr "aantal recent gekoppelde labels" + +#: ../build/bin/preferences_gen.h:8553 +msgid "" +"number of recently attached tags which are included in the suggestions list. " +"the value `-1' disables the recent list" +msgstr "" +"aantal recentelijk toegevoegde labels die zijn toegevoegd aan de suggestie " +"lijst. de waarde '-1' schakelt recent lijst uit" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:130 +#: ../build/lib/darktable/plugins/introspection_ashift.c:279 +msgid "lens shift (vertical)" +msgstr "lensverschuiving (verticaal)" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:136 +#: ../build/lib/darktable/plugins/introspection_ashift.c:283 +msgid "lens shift (horizontal)" +msgstr "lensverschuiving (horizontaal)" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:142 +#: ../build/lib/darktable/plugins/introspection_ashift.c:287 +msgid "shear" +msgstr "scheefstand" + +#. focal length +#: ../build/lib/darktable/plugins/introspection_ashift.c:148 +#: ../build/lib/darktable/plugins/introspection_ashift.c:291 +#: ../src/common/collection.c:627 ../src/gui/preferences.c:842 +#: ../src/gui/presets.c:721 ../src/libs/camera.c:550 +#: ../src/libs/metadata_view.c:145 +msgid "focal length" +msgstr "brandpuntsafstand" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:154 +#: ../build/lib/darktable/plugins/introspection_ashift.c:295 +#: ../src/libs/metadata_view.c:147 +msgid "crop factor" +msgstr "cropfactor" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:160 +#: ../build/lib/darktable/plugins/introspection_ashift.c:299 +msgid "lens dependence" +msgstr "lens afhankelijkheid" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:166 +#: ../build/lib/darktable/plugins/introspection_ashift.c:303 +msgid "aspect adjust" +msgstr "verhouding aanpassen" + +# Sommigen zullen liever 'model objectief' lezen (eeuwige discussie...) +#: ../build/lib/darktable/plugins/introspection_ashift.c:172 +#: ../build/lib/darktable/plugins/introspection_ashift.c:307 +#: ../src/iop/lens.cc:4438 +msgid "lens model" +msgstr "lens type" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:178 +#: ../build/lib/darktable/plugins/introspection_ashift.c:311 +#: ../build/lib/darktable/plugins/introspection_clipping.c:244 +#: ../build/lib/darktable/plugins/introspection_clipping.c:371 +msgid "automatic cropping" +msgstr "aut. uitsnijden" + +# niet letterlijk, maar beter in UI-context +#: ../build/lib/darktable/plugins/introspection_ashift.c:361 +#: ../build/lib/darktable/plugins/introspection_highlights.c:311 +msgid "generic" +msgstr "automatisch" + +# niet letterlijk, maar beter in UI-context +#: ../build/lib/darktable/plugins/introspection_ashift.c:362 +msgid "specific" +msgstr "handmatig" + +#. DEVELOP_MASK_DISABLED +#: ../build/lib/darktable/plugins/introspection_ashift.c:366 +#: ../build/lib/darktable/plugins/introspection_colorin.c:303 +#: ../build/lib/darktable/plugins/introspection_highlights.c:310 +#: ../build/lib/darktable/plugins/introspection_vignette.c:264 +#: ../src/develop/blend_gui.c:153 ../src/develop/blend_gui.c:182 +#: ../src/develop/blend_gui.c:3429 ../src/gui/accelerators.c:148 +#: ../src/gui/accelerators.c:158 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/imageio/format/j2k.c:686 +#: ../src/libs/live_view.c:361 +msgid "off" +msgstr "uit" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:367 +msgid "largest area" +msgstr "grootste gebied" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:368 +msgid "original format" +msgstr "origineel formaat" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:134 +#: ../build/lib/darktable/plugins/introspection_basecurve.c:231 +msgid "fusion" +msgstr "fusion" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:140 +#: ../build/lib/darktable/plugins/introspection_basecurve.c:235 +msgid "exposure shift" +msgstr "belichtingsverschuiving" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:146 +#: ../build/lib/darktable/plugins/introspection_basecurve.c:239 +#: ../src/libs/metadata_view.c:144 +msgid "exposure bias" +msgstr "belichtingscorrectie" + +# of behoud kleuren +#: ../build/lib/darktable/plugins/introspection_basecurve.c:152 +#: ../build/lib/darktable/plugins/introspection_basecurve.c:243 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:122 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:215 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:140 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:227 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:57 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:122 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:153 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:244 +msgid "preserve colors" +msgstr "behoud van kleuren" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:262 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:249 +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:153 +#: ../build/lib/darktable/plugins/introspection_lens.cc:533 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:251 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:153 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:270 +#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2214 +#: ../src/iop/channelmixerrgb.c:4735 ../src/iop/clipping.c:1953 +#: ../src/iop/clipping.c:2146 ../src/iop/clipping.c:2161 +#: ../src/iop/retouch.c:507 ../src/libs/collect.c:2043 +#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1101 +#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:109 +#: ../src/libs/live_view.c:311 ../src/libs/print_settings.c:2835 +msgid "none" +msgstr "geen" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:263 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:250 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:226 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:244 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:262 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:280 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:461 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:473 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:485 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:497 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:252 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:154 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:271 +#: ../src/develop/blend_gui.c:2379 ../src/develop/blend_gui.c:2413 +msgid "luminance" +msgstr "helderheid" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:264 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:251 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:550 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:253 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:155 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:272 +msgid "max RGB" +msgstr "max RGB" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:265 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:252 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:254 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:156 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:273 +msgid "average RGB" +msgstr "gemiddelde RGB" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:266 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:253 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:255 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:157 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:274 +msgid "sum RGB" +msgstr "som RGB" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:267 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:254 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:256 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:158 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:275 +msgid "norm RGB" +msgstr "norm RGB" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:268 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:255 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:257 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:159 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:276 +msgid "basic power" +msgstr "basis gamma" + +#: ../build/lib/darktable/plugins/introspection_basicadj.c:92 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:195 +#: ../build/lib/darktable/plugins/introspection_exposure.c:67 +#: ../build/lib/darktable/plugins/introspection_exposure.c:138 +msgid "black level correction" +msgstr "zwart niveau correctie" + +#: ../build/lib/darktable/plugins/introspection_basicadj.c:104 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:203 +msgid "highlight compression" +msgstr "hooglichten compressie" + +#: ../build/lib/darktable/plugins/introspection_basicadj.c:128 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:219 +msgid "middle gray" +msgstr "middengrijs" + +#: ../build/lib/darktable/plugins/introspection_bilat.c:78 +#: ../build/lib/darktable/plugins/introspection_bilat.c:137 +msgid "midtone range" +msgstr "middenkleuren bereik" + +#: ../build/lib/darktable/plugins/introspection_bilat.c:151 +msgid "bilateral grid" +msgstr "bilateraal raster" + +#: ../build/lib/darktable/plugins/introspection_bilat.c:152 +msgid "local laplacian filter" +msgstr "lokaal laplace filter" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:83 +#: ../build/lib/darktable/plugins/introspection_blurs.c:174 +#: ../build/lib/darktable/plugins/introspection_retouch.c:255 +#: ../build/lib/darktable/plugins/introspection_retouch.c:406 +msgid "blur type" +msgstr "type verdoezeling" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:89 +#: ../build/lib/darktable/plugins/introspection_blurs.c:178 +#: ../build/lib/darktable/plugins/introspection_retouch.c:261 +#: ../build/lib/darktable/plugins/introspection_retouch.c:410 +msgid "blur radius" +msgstr "radius verdoezeling" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:95 +#: ../build/lib/darktable/plugins/introspection_blurs.c:182 +msgid "diaphragm blades" +msgstr "diafragmalamellen" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:101 +#: ../build/lib/darktable/plugins/introspection_blurs.c:186 +msgid "concavity" +msgstr "bolling" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:107 +#: ../build/lib/darktable/plugins/introspection_blurs.c:190 +msgid "linearity" +msgstr "lineariteit" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:113 +#: ../build/lib/darktable/plugins/introspection_blurs.c:194 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:75 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:144 +#: ../build/lib/darktable/plugins/introspection_watermark.c:136 +#: ../build/lib/darktable/plugins/introspection_watermark.c:265 +#: ../src/iop/ashift.c:6059 ../src/libs/masks.c:109 +msgid "rotation" +msgstr "rotatie" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:119 +#: ../build/lib/darktable/plugins/introspection_blurs.c:198 +msgid "direction" +msgstr "richting" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:125 +#: ../build/lib/darktable/plugins/introspection_blurs.c:202 +#: ../src/libs/masks.c:110 +msgid "curvature" +msgstr "kromming" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:131 +#: ../build/lib/darktable/plugins/introspection_blurs.c:206 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:81 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:148 +#: ../src/iop/colorbalancergb.c:2039 +msgid "offset" +msgstr "verschuiving" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:220 +#: ../src/common/collection.c:625 ../src/gui/preferences.c:826 +#: ../src/gui/presets.c:663 ../src/libs/metadata_view.c:141 +msgid "lens" +msgstr "lens" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:221 +msgid "motion" +msgstr "beweging" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:222 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:567 +#: ../build/lib/darktable/plugins/introspection_lowpass.c:189 +#: ../build/lib/darktable/plugins/introspection_retouch.c:452 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:267 +msgid "gaussian" +msgstr "Gauss" + +#: ../build/lib/darktable/plugins/introspection_borders.c:122 +#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../src/common/collection.c:635 ../src/libs/filtering.c:59 +msgid "aspect ratio" +msgstr "beeldverhouding" + +#. // portrait / landscape +#: ../build/lib/darktable/plugins/introspection_borders.c:140 +#: ../build/lib/darktable/plugins/introspection_borders.c:281 +#: ../src/iop/flip.c:75 ../src/libs/print_settings.c:2517 +msgid "orientation" +msgstr "oriëntatie" + +#: ../build/lib/darktable/plugins/introspection_borders.c:146 +#: ../build/lib/darktable/plugins/introspection_borders.c:285 +msgid "border size" +msgstr "randdikte" + +#: ../build/lib/darktable/plugins/introspection_borders.c:152 +#: ../build/lib/darktable/plugins/introspection_borders.c:289 +msgid "horizontal offset" +msgstr "horizontale verschuiving" + +#: ../build/lib/darktable/plugins/introspection_borders.c:170 +#: ../build/lib/darktable/plugins/introspection_borders.c:301 +msgid "vertical offset" +msgstr "verticale verschuiving" + +#: ../build/lib/darktable/plugins/introspection_borders.c:188 +#: ../build/lib/darktable/plugins/introspection_borders.c:313 +msgid "frame line size" +msgstr "frame-afmeting" + +#: ../build/lib/darktable/plugins/introspection_borders.c:194 +#: ../build/lib/darktable/plugins/introspection_borders.c:317 +msgid "frame line offset" +msgstr "afstand van het frame" + +#: ../build/lib/darktable/plugins/introspection_borders.c:218 +#: ../build/lib/darktable/plugins/introspection_borders.c:333 +msgid "basis" +msgstr "basis" + +#: ../build/lib/darktable/plugins/introspection_borders.c:347 +#: ../build/lib/darktable/plugins/introspection_borders.c:353 +#: ../src/gui/preferences.c:847 ../src/imageio/format/jpeg.c:604 +#: ../src/iop/ashift.c:6238 ../src/iop/basicadj.c:662 ../src/iop/flip.c:470 +#: ../src/iop/flip.c:472 ../src/iop/levels.c:657 ../src/iop/rgblevels.c:1105 +msgid "auto" +msgstr "auto" + +#: ../build/lib/darktable/plugins/introspection_borders.c:348 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:315 +#: ../src/libs/filters/ratio.c:122 ../src/libs/print_settings.c:2519 +msgid "portrait" +msgstr "portret" + +#: ../build/lib/darktable/plugins/introspection_borders.c:349 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:311 +#: ../src/libs/filters/ratio.c:124 ../src/libs/print_settings.c:2519 +msgid "landscape" +msgstr "landschap" + +#: ../build/lib/darktable/plugins/introspection_borders.c:354 +#: ../src/iop/relight.c:275 ../src/libs/export.c:1223 +#: ../src/libs/metadata_view.c:151 ../src/libs/print_settings.c:2537 +msgid "width" +msgstr "breedte" + +#: ../build/lib/darktable/plugins/introspection_borders.c:355 +#: ../build/lib/darktable/plugins/introspection_watermark.c:326 +#: ../src/libs/export.c:1229 ../src/libs/metadata_view.c:152 +#: ../src/libs/print_settings.c:2541 +msgid "height" +msgstr "hoogte" + +# gebruikt voor zijde +#: ../build/lib/darktable/plugins/introspection_borders.c:356 +msgid "shorter" +msgstr "kortste" + +# gebruikt voor zijde +#: ../build/lib/darktable/plugins/introspection_borders.c:357 +msgid "longer" +msgstr "langste" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:42 +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:91 +msgid "avoid colorshift" +msgstr "vermijd kleurzweem" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:48 +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:95 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:117 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:244 +#: ../build/lib/darktable/plugins/introspection_highlights.c:155 +#: ../build/lib/darktable/plugins/introspection_highlights.c:252 +msgid "iterations" +msgstr "iteraties" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:109 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:205 +msgid "once" +msgstr "een keer" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:110 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:206 +msgid "twice" +msgstr "twee keer" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:111 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:207 +msgid "three times" +msgstr "drie keer" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:112 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:208 +msgid "four times" +msgstr "vier keer" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:113 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:209 +msgid "five times" +msgstr "vijf keer" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:61 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:128 +msgid "guide" +msgstr "gidskanaal" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:67 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:132 +#: ../build/lib/darktable/plugins/introspection_lens.cc:340 +#: ../build/lib/darktable/plugins/introspection_lens.cc:501 +#: ../src/iop/atrous.c:1636 ../src/iop/bilateral.cc:352 ../src/iop/clahe.c:337 +#: ../src/iop/dither.c:762 ../src/iop/lowpass.c:597 ../src/iop/shadhi.c:710 +#: ../src/iop/sharpen.c:435 +msgid "radius" +msgstr "radius" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:73 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:136 +#: ../build/lib/darktable/plugins/introspection_highlights.c:137 +#: ../build/lib/darktable/plugins/introspection_highlights.c:240 +#: ../build/lib/darktable/plugins/introspection_lens.cc:334 +#: ../build/lib/darktable/plugins/introspection_lens.cc:497 +#: ../src/iop/bloom.c:372 ../src/iop/denoiseprofile.c:3822 +#: ../src/iop/grain.c:602 ../src/iop/hazeremoval.c:203 +#: ../src/iop/hotpixels.c:467 ../src/iop/nlmeans.c:463 ../src/iop/velvia.c:288 +msgid "strength" +msgstr "sterkte" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:79 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:140 +msgid "correction mode" +msgstr "correctiemodus" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:85 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:144 +msgid "very large chromatic aberration" +msgstr "zeer grote chromatische aberraties" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:158 +#: ../src/common/collection.c:1374 ../src/common/color_vocabulary.c:232 +#: ../src/common/colorlabels.c:333 ../src/develop/blend_gui.c:2346 +#: ../src/develop/blend_gui.c:2394 ../src/develop/lightroom.c:887 +#: ../src/gui/gtk.c:3183 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:356 +#: ../src/iop/channelmixer.c:637 ../src/iop/channelmixer.c:647 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/colorzones.c:2499 +#: ../src/iop/temperature.c:1912 ../src/iop/temperature.c:2094 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:260 +#: ../src/libs/histogram.c:2724 +msgid "red" +msgstr "rood" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:159 +#: ../src/common/collection.c:1378 ../src/common/color_vocabulary.c:277 +#: ../src/common/colorlabels.c:335 ../src/develop/blend_gui.c:2352 +#: ../src/develop/blend_gui.c:2400 ../src/develop/lightroom.c:891 +#: ../src/gui/gtk.c:3184 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:361 +#: ../src/iop/channelmixer.c:638 ../src/iop/channelmixer.c:653 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/colorzones.c:2502 +#: ../src/iop/temperature.c:1896 ../src/iop/temperature.c:1914 +#: ../src/iop/temperature.c:2095 ../src/libs/collect.c:1916 +#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2715 +msgid "green" +msgstr "groen" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:160 +#: ../src/common/collection.c:1380 ../src/common/color_vocabulary.c:324 +#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2358 +#: ../src/develop/blend_gui.c:2406 ../src/develop/lightroom.c:893 +#: ../src/gui/gtk.c:3185 ../src/iop/bilateral.cc:366 +#: ../src/iop/channelmixer.c:639 ../src/iop/channelmixer.c:659 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/colorzones.c:2504 +#: ../src/iop/temperature.c:1916 ../src/iop/temperature.c:2096 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:263 +#: ../src/libs/histogram.c:2706 +msgid "blue" +msgstr "blauw" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:164 +msgid "standard" +msgstr "standaard" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:165 +msgid "darken only" +msgstr "enkel verdonkeren" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:166 +msgid "brighten only" +msgstr "enkel verhelderen" + +#: ../build/lib/darktable/plugins/introspection_censorize.c:51 +#: ../build/lib/darktable/plugins/introspection_censorize.c:112 +msgid "input blur radius" +msgstr "invoer radius vervaging" + +#: ../build/lib/darktable/plugins/introspection_censorize.c:57 +#: ../build/lib/darktable/plugins/introspection_censorize.c:116 +msgid "pixellation radius" +msgstr "radius pixelatie" + +#: ../build/lib/darktable/plugins/introspection_censorize.c:63 +#: ../build/lib/darktable/plugins/introspection_censorize.c:120 +msgid "output blur radius" +msgstr "uitgaande vervagingsradius" + +#: ../build/lib/darktable/plugins/introspection_censorize.c:69 +#: ../build/lib/darktable/plugins/introspection_censorize.c:124 +#: ../build/lib/darktable/plugins/introspection_highlights.c:149 +#: ../build/lib/darktable/plugins/introspection_highlights.c:248 +msgid "noise level" +msgstr "ruislevel" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:252 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:258 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:264 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:270 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:276 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:282 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:433 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:437 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:441 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:445 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:449 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:453 +msgid "normalize channels" +msgstr "kanalen normaliseren" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:294 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:461 +msgid "F source" +msgstr "F bron" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:300 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:465 +msgid "LED source" +msgstr "LED bron" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:330 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:485 +msgid "gamut compression" +msgstr "gamutcompressie" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:336 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:489 +msgid "clip negative RGB from gamut" +msgstr "clip negatieve RGB" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:342 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:493 +msgid "saturation algorithm" +msgstr "verzadigingsalgoritme" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:507 +msgid "same as pipeline (D50)" +msgstr "zelfde als pipeline (D50)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:508 +msgid "A (incandescent)" +msgstr "A (gloeilamp)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:509 +msgid "D (daylight)" +msgstr "D (daglicht)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:510 +msgid "E (equi-energy)" +msgstr "E (equi-energy)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:511 +msgid "F (fluorescent)" +msgstr "F (TL-licht)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:512 +msgid "LED (LED light)" +msgstr "LED (LED-licht)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:513 +msgid "Planckian (black body)" +msgstr "Zwart lichaam (Planck)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:514 +#: ../src/common/iop_order.c:59 +msgid "custom" +msgstr "aangepast" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:515 +msgid "(AI) detect from image surfaces..." +msgstr "(AI) detecteren van beeldoppervlakken..." + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:516 +msgid "(AI) detect from image edges..." +msgstr "(AI) detecteren van afbeeldingsranden..." + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:517 +msgid "as shot in camera" +msgstr "volgens de camera" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:522 +msgid "F1 (Daylight 6430 K) – medium CRI" +msgstr "F1 (daglicht 6430 K) – medium CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:523 +msgid "F2 (Cool White 4230 K) – medium CRI" +msgstr "F2 (Koel Wit 4230 K) – medium CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:524 +msgid "F3 (White 3450 K) – medium CRI" +msgstr "F3 (Wit 3450 K) – medium CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:525 +msgid "F4 (Warm White 2940 K) – medium CRI" +msgstr "F4 (Warm Wit 2940 K) – medium CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:526 +msgid "F5 (Daylight 6350 K) – medium CRI" +msgstr "F5 (Daglicht 6350 K) – medium CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:527 +msgid "F6 (Lite White 4150 K) – medium CRI" +msgstr "F6 (Lite White 4150 K) – medium CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:528 +msgid "F7 (D65 simulator 6500 K) – high CRI" +msgstr "F7 (D65 simulator 6500 K) – high CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:529 +msgid "F8 (D50 simulator 5000 K) – high CRI" +msgstr "F8 (D50 simulator 5000 K) – high CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:530 +msgid "F9 (Cool White Deluxe 4150 K) – high CRI" +msgstr "F9 (Koel Wit Deluxe 4150 K) – high CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:531 +msgid "F10 (Tuned RGB 5000 K) – low CRI" +msgstr "F10 (Tuned RGB 5000 K) – low CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:532 +msgid "F11 (Tuned RGB 4000 K) – low CRI" +msgstr "F11 (Tuned RGB 4000 K) – low CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:533 +msgid "F12 (Tuned RGB 3000 K) – low CRI" +msgstr "F12 (Tuned RGB 3000 K) – low CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:538 +msgid "B1 (Blue 2733 K)" +msgstr "B1 (Blauw 2733 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:539 +msgid "B2 (Blue 2998 K)" +msgstr "B2 (Blauw 2998 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:540 +msgid "B3 (Blue 4103 K)" +msgstr "B3 (Blauw 4103 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:541 +msgid "B4 (Blue 5109 K)" +msgstr "B4 (Blauw 5109 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:542 +msgid "B5 (Blue 6598 K)" +msgstr "B5 (Blauw 6598 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:543 +msgid "BH1 (Blue-Red hybrid 2851 K)" +msgstr "BH1 (Blauw-Rood hybride 2851 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:544 +msgid "RGB1 (RGB 2840 K)" +msgstr "RGB1 (RGB 2840 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:545 +msgid "V1 (Violet 2724 K)" +msgstr "V1 (Paars 2724 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:546 +msgid "V2 (Violet 4070 K)" +msgstr "V2 (Paars 4070 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:551 +msgid "linear Bradford (ICC v4)" +msgstr "linear Bradford (ICC v4)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:552 +msgid "CAT16 (CIECAM16)" +msgstr "CAT16 (CIECAM16)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:553 +msgid "non-linear Bradford" +msgstr "niet-lineair Bradford" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:554 +msgid "XYZ" +msgstr "XYZ" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:555 +msgid "none (bypass)" +msgstr "geen (bypass)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:560 +msgid "version 1 (2020)" +msgstr "versie 1 (2020)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:561 +msgid "version 2 (2021)" +msgstr "versie 2 (2021)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:562 +msgid "version 3 (Apr 2021)" +msgstr "versie 3 (apr 2021)" + +#: ../build/lib/darktable/plugins/introspection_clipping.c:142 +#: ../build/lib/darktable/plugins/introspection_clipping.c:303 +#: ../build/lib/darktable/plugins/introspection_crop.c:61 +#: ../build/lib/darktable/plugins/introspection_crop.c:134 +#: ../src/gui/gtk.c:1234 ../src/iop/atrous.c:1632 +msgid "left" +msgstr "links" + +#: ../build/lib/darktable/plugins/introspection_clipping.c:148 +#: ../build/lib/darktable/plugins/introspection_clipping.c:307 +#: ../build/lib/darktable/plugins/introspection_crop.c:67 +#: ../build/lib/darktable/plugins/introspection_crop.c:138 +#: ../src/gui/accelerators.c:131 ../src/gui/gtk.c:1240 +msgid "top" +msgstr "top" + +#: ../build/lib/darktable/plugins/introspection_clipping.c:154 +#: ../build/lib/darktable/plugins/introspection_clipping.c:311 +#: ../build/lib/darktable/plugins/introspection_crop.c:73 +#: ../build/lib/darktable/plugins/introspection_crop.c:142 +#: ../src/gui/gtk.c:1237 ../src/iop/atrous.c:1631 +msgid "right" +msgstr "rechts" + +#: ../build/lib/darktable/plugins/introspection_clipping.c:160 +#: ../build/lib/darktable/plugins/introspection_clipping.c:315 +#: ../build/lib/darktable/plugins/introspection_crop.c:79 +#: ../build/lib/darktable/plugins/introspection_crop.c:146 +#: ../src/gui/accelerators.c:132 ../src/gui/gtk.c:1243 +msgid "bottom" +msgstr "onder" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:114 +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:203 +msgid "input saturation" +msgstr "ingaaande verzadiging" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:126 +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:211 +msgid "contrast fulcrum" +msgstr "contrast draaipunt" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:132 +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:215 +msgid "output saturation" +msgstr "uitgaande verzadiging" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:229 +msgid "lift, gamma, gain (ProPhoto RGB)" +msgstr "lift, gamma, gain (ProPhotoRGB)" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:230 +msgid "slope, offset, power (ProPhoto RGB)" +msgstr "helling, verschuiving, gamma (ProPhotoRGB)" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:231 +msgid "lift, gamma, gain (sRGB)" +msgstr "lift, gamma, gain (sRGB)" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:232 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:250 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:268 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:286 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:465 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:477 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:489 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:501 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 +#: ../src/develop/blend_gui.c:2372 ../src/develop/blend_gui.c:2420 +#: ../src/iop/atrous.c:1801 ../src/iop/channelmixerrgb.c:4525 +#: ../src/iop/channelmixerrgb.c:4641 ../src/iop/colorbalancergb.c:1966 +#: ../src/iop/colorzones.c:2645 ../src/iop/nlmeans.c:471 +msgid "chroma" +msgstr "verzadiging" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:238 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:256 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:274 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:292 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:469 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:481 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:493 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:505 +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:155 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:257 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:87 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:152 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:61 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:73 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:134 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:142 +#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2365 +#: ../src/develop/blend_gui.c:2427 ../src/iop/channelmixer.c:634 +#: ../src/iop/channelmixerrgb.c:4518 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/colorbalance.c:2017 ../src/iop/colorize.c:343 +#: ../src/iop/colorreconstruction.c:1249 ../src/iop/colorzones.c:2646 +msgid "hue" +msgstr "tint" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:298 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:509 +msgid "shadows fall-off" +msgstr "belang van schaduwen" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:304 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:513 +msgid "white fulcrum" +msgstr "wit steunpunt" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:310 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:517 +msgid "highlights fall-off" +msgstr "belang van hooglichten" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:316 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:358 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:388 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:521 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:549 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:569 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:156 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:297 +#: ../src/iop/bilat.c:479 ../src/iop/colorbalance.c:2074 +#: ../src/iop/negadoctor.c:934 ../src/iop/shadhi.c:706 +#: ../src/iop/splittoning.c:503 +msgid "shadows" +msgstr "schaduwen" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:322 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:346 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:376 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:525 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:541 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:561 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:180 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:313 +#: ../src/iop/bilat.c:473 ../src/iop/colorbalance.c:2076 +#: ../src/iop/monochrome.c:583 ../src/iop/shadhi.c:707 +#: ../src/iop/splittoning.c:510 +msgid "highlights" +msgstr "hooglichten" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:328 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:529 +msgid "global chroma" +msgstr "globale chroma" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:334 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:352 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:382 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:533 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:545 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:565 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:168 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:305 +#: ../src/iop/colorbalance.c:2075 +msgid "mid-tones" +msgstr "middentonen" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:340 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:537 +#: ../src/iop/filmic.c:1601 +msgid "global saturation" +msgstr "globale verzadiging" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:364 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:553 +msgid "hue shift" +msgstr "tintverschuiving" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:370 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:557 +msgid "global brilliance" +msgstr "globale helderheid" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:394 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:573 +msgid "mask middle-gray fulcrum" +msgstr "middengrijs voor masker" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:400 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:577 +msgid "global vibrance" +msgstr "globale levendigheid" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:406 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:581 +msgid "contrast gray fulcrum" +msgstr "contrast grijs draaipunt" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:412 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:585 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:116 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:237 +#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:637 ../src/iop/bilat.c:468 +#: ../src/iop/colisa.c:298 ../src/iop/colorbalance.c:1922 +#: ../src/iop/colorbalance.c:1928 ../src/iop/filmic.c:1573 +#: ../src/iop/filmicrgb.c:4615 ../src/iop/lowpass.c:599 +msgid "contrast" +msgstr "contrast" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:418 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:589 +msgid "saturation formula" +msgstr "verzadigingsformule" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:603 +msgid "JzAzBz (2021)" +msgstr "JzAzBz (2021)" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:604 +msgid "darktable UCS (2022)" +msgstr "darktable UCS (2022)" + +#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:54 +#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:121 +msgid "green-magenta contrast" +msgstr "groen-magenta contrast" + +#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:66 +#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:129 +msgid "blue-yellow contrast" +msgstr "blauw-geel contrast" + +#: ../build/lib/darktable/plugins/introspection_colorin.c:150 +#: ../build/lib/darktable/plugins/introspection_colorin.c:233 +msgid "gamut clipping" +msgstr "gamma-clipping" + +#: ../build/lib/darktable/plugins/introspection_colorin.c:304 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:312 +#: ../src/common/colorspaces.c:1410 ../src/common/colorspaces.c:1700 +#: ../src/libs/print_settings.c:1356 +msgid "sRGB" +msgstr "sRGB" + +#: ../build/lib/darktable/plugins/introspection_colorin.c:305 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:311 +#: ../src/common/colorspaces.c:1421 ../src/common/colorspaces.c:1702 +#: ../src/libs/print_settings.c:1363 +msgid "Adobe RGB (compatible)" +msgstr "Adobe RGB (compatibel)" + +#: ../build/lib/darktable/plugins/introspection_colorin.c:306 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 +#: ../src/common/colorspaces.c:1428 ../src/common/colorspaces.c:1704 +msgid "linear Rec709 RGB" +msgstr "linear Rec709 RGB" + +#: ../build/lib/darktable/plugins/introspection_colorin.c:307 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:206 +#: ../src/common/colorspaces.c:1442 ../src/common/colorspaces.c:1706 +msgid "linear Rec2020 RGB" +msgstr "linear Rec2020 RGB" + +#: ../build/lib/darktable/plugins/introspection_colorize.c:65 +#: ../build/lib/darktable/plugins/introspection_colorize.c:128 +msgid "source mix" +msgstr "bron mix" + +#: ../build/lib/darktable/plugins/introspection_colormapping.c:94 +#: ../build/lib/darktable/plugins/introspection_colormapping.c:249 +msgid "number of clusters" +msgstr "aantal clusters" + +#: ../build/lib/darktable/plugins/introspection_colormapping.c:100 +#: ../build/lib/darktable/plugins/introspection_colormapping.c:253 +msgid "color dominance" +msgstr "kleurdominantie" + +#: ../build/lib/darktable/plugins/introspection_colormapping.c:106 +#: ../build/lib/darktable/plugins/introspection_colormapping.c:257 +msgid "histogram equalization" +msgstr "histogram egaliseren" + +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:62 +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:127 +#: ../build/lib/darktable/plugins/introspection_tonemap.cc:45 +#: ../build/lib/darktable/plugins/introspection_tonemap.cc:92 +#: ../src/iop/shadhi.c:721 +msgid "spatial extent" +msgstr "omvang" + +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:68 +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:131 +msgid "range extent" +msgstr "bereik uitbreiden" + +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:154 +#: ../src/iop/channelmixerrgb.c:4737 +msgid "saturated colors" +msgstr "verzadigde kleuren" + +#: ../build/lib/darktable/plugins/introspection_colorzones.c:78 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:193 +msgid "select by" +msgstr "selecteer op" + +#. mix slider +#: ../build/lib/darktable/plugins/introspection_colorzones.c:138 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:233 +#: ../build/lib/darktable/plugins/introspection_soften.c:66 +#: ../build/lib/darktable/plugins/introspection_soften.c:121 +#: ../src/iop/atrous.c:1835 +msgid "mix" +msgstr "mix" + +#: ../build/lib/darktable/plugins/introspection_colorzones.c:144 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:237 +msgid "process mode" +msgstr "werkwijze" + +#: ../build/lib/darktable/plugins/introspection_colorzones.c:255 +#: ../src/develop/blend_gui.c:2310 ../src/iop/channelmixer.c:636 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/colorchecker.c:1453 +#: ../src/iop/colorize.c:362 ../src/iop/colorzones.c:2644 +#: ../src/iop/exposure.c:1257 +msgid "lightness" +msgstr "helderheid" + +#: ../build/lib/darktable/plugins/introspection_colorzones.c:267 +#: ../src/iop/atrous.c:1410 ../src/iop/atrous.c:1414 +#: ../src/iop/denoiseprofile.c:3531 ../src/iop/rawdenoise.c:771 +#: ../src/iop/sigmoid.c:292 +msgid "smooth" +msgstr "glad" + +#: ../build/lib/darktable/plugins/introspection_colorzones.c:268 +msgid "strong" +msgstr "sterk" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:47 +#: ../build/lib/darktable/plugins/introspection_defringe.c:102 +msgid "edge detection radius" +msgstr "randdetectie-radius" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:53 +#: ../build/lib/darktable/plugins/introspection_defringe.c:106 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:230 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:435 +#: ../src/iop/atrous.c:1695 ../src/iop/bloom.c:368 +#: ../src/iop/colorreconstruction.c:1245 ../src/iop/hotpixels.c:463 +#: ../src/iop/sharpen.c:444 +msgid "threshold" +msgstr "drempel" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:59 +#: ../build/lib/darktable/plugins/introspection_defringe.c:110 +msgid "operation mode" +msgstr "methode" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:124 +msgid "global average (fast)" +msgstr "algemeen gemiddelde (snel)" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:125 +msgid "local average (slow)" +msgstr "lokaal gemiddelde (traag)" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:126 +msgid "static threshold (fast)" +msgstr "vaste drempel (snel)" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:90 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:163 +msgid "match greens" +msgstr "groen matchen" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:96 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:167 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:141 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:260 +msgid "edge threshold" +msgstr "randdrempelwaarde" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:102 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:171 +msgid "color smoothing" +msgstr "kleuren afvlakken" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:108 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:175 +#: ../build/lib/darktable/plugins/introspection_dither.c:73 +#: ../build/lib/darktable/plugins/introspection_dither.c:152 +#: ../build/lib/darktable/plugins/introspection_highlights.c:119 +#: ../build/lib/darktable/plugins/introspection_highlights.c:228 +msgid "method" +msgstr "methode" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:114 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:179 +msgid "LMMSE refine" +msgstr "LMMSE verfijn" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:120 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:183 +msgid "dual threshold" +msgstr "dubbele drempel" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:197 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:204 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:197 +msgid "disabled" +msgstr "uitgeschakeld" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:198 +msgid "local average" +msgstr "lokaal gemiddelde" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:199 +msgid "full average" +msgstr "volledig gemiddelde" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:200 +msgid "full and local average" +msgstr "volledig en lokaal gemiddelde" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:213 +msgid "PPG" +msgstr "PPG" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:214 +msgid "AMaZE" +msgstr "AMaZE" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:215 +msgid "VNG4" +msgstr "VNG4" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:216 +msgid "RCD" +msgstr "RCD" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:217 +msgid "LMMSE" +msgstr "LMMSE" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:218 +msgid "RCD + VNG4" +msgstr "RCD + VNG4" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:219 +msgid "AMaZE + VNG4" +msgstr "AMaZE + VNG4" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:220 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:227 +msgid "passthrough (monochrome)" +msgstr "passthrough (monochroom)" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:221 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:228 +msgid "photosite color (debug)" +msgstr "fotosite kleur (debug)" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:222 +msgid "VNG" +msgstr "VNG" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:223 +msgid "Markesteijn 1-pass" +msgstr "Markesteijn 1-pass" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:224 +msgid "Markesteijn 3-pass" +msgstr "Markesteijn 3-pass" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:225 +msgid "frequency domain chroma" +msgstr "frequentiedomein chroma" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:226 +msgid "Markesteijn 3-pass + VNG" +msgstr "Markesteijn 3-pass + VNG" + +#. history +#: ../build/lib/darktable/plugins/introspection_demosaic.c:232 +#: ../src/common/collection.c:1394 ../src/libs/collect.c:1863 +#: ../src/libs/filters/history.c:38 +msgid "basic" +msgstr "basis" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:233 +msgid "median" +msgstr "mediaan" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:234 +msgid "3x median" +msgstr "3x mediaan" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:235 +msgid "refine & medians" +msgstr "optimaliseren & medianen" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:236 +msgid "2x refine + medians" +msgstr "2x optimaliseren + medianen" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:125 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:300 +#: ../build/lib/darktable/plugins/introspection_nlmeans.c:48 +#: ../build/lib/darktable/plugins/introspection_nlmeans.c:109 +msgid "patch size" +msgstr "patch grootte" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:131 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:304 +msgid "search radius" +msgstr "zoek radius" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:143 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:312 +msgid "preserve shadows" +msgstr "behoud schaduwen" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:149 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:316 +msgid "bias correction" +msgstr "correctie schaduwen" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:155 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:320 +msgid "scattering" +msgstr "verstrooiing" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:161 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:324 +msgid "central pixel weight" +msgstr "centraal pixelgewicht" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:167 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:328 +msgid "adjust autoset parameters" +msgstr "aanpassen aut. parameters" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:239 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:376 +msgid "whitebalance-adaptive transform" +msgstr "witbalans-adaptieve transformatie" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:245 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:380 +msgid "fix various bugs in algorithm" +msgstr "herstel verschillende algoritme bugs" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:251 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:384 +msgid "upgrade profiled transform" +msgstr "upgrade geprofileerde transformatie" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:257 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:388 +#: ../src/libs/colorpicker.c:659 +msgid "color mode" +msgstr "kleur modus" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:402 +msgid "non-local means" +msgstr "non-local means" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:403 +msgid "non-local means auto" +msgstr "non-local means auto" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:404 +msgid "wavelets" +msgstr "wavelets" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:405 +msgid "wavelets auto" +msgstr "wavelets auto" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:406 +msgid "compute variance" +msgstr "variantie berekenen" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:410 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:292 +msgid "RGB" +msgstr "RGB" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:411 +msgid "Y0U0V0" +msgstr "Y0U0V0" + +#. two more sharpness (standard & strong) +#: ../build/lib/darktable/plugins/introspection_diffuse.c:123 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:248 +#: ../src/iop/atrous.c:1685 ../src/iop/diffuse.c:657 ../src/iop/highpass.c:376 +msgid "sharpness" +msgstr "scherpte" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:129 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:252 +msgid "radius span" +msgstr "radius span" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:135 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:256 +msgid "edge sensitivity" +msgstr "randgevoeligheid" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:147 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:264 +msgid "1st order anisotropy" +msgstr "1e orde anisotropie" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:153 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:268 +msgid "2nd order anisotropy" +msgstr "2e orde anisotropie" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:159 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:272 +msgid "3rd order anisotropy" +msgstr "3e orde anisotropie" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:165 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:276 +msgid "4th order anisotropy" +msgstr "4e orde anisotropie" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:171 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:280 +msgid "luminance masking threshold" +msgstr "helderheidsmasker drempel" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:177 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:284 +msgid "1st order speed" +msgstr "1e orde snelheid" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:183 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:288 +msgid "2nd order speed" +msgstr "2e orde snelheid" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:189 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:292 +msgid "3rd order speed" +msgstr "3e orde snelheid" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:195 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:296 +msgid "4th order speed" +msgstr "4e orde snelheid" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:201 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:300 +msgid "central radius" +msgstr "centrale radius" + +#: ../build/lib/darktable/plugins/introspection_dither.c:103 +#: ../build/lib/darktable/plugins/introspection_dither.c:172 +msgid "damping" +msgstr "dempen" + +#: ../build/lib/darktable/plugins/introspection_dither.c:190 +msgid "random" +msgstr "willekeurig" + +#: ../build/lib/darktable/plugins/introspection_dither.c:191 +msgid "Floyd-Steinberg 1-bit B&W" +msgstr "Floyd-Steinberg 1-bit Z/W" + +#: ../build/lib/darktable/plugins/introspection_dither.c:192 +msgid "Floyd-Steinberg 1-bit RGB" +msgstr "Floyd-Steinberg 1-bit RGB" + +#: ../build/lib/darktable/plugins/introspection_dither.c:193 +msgid "Floyd-Steinberg 2-bit gray" +msgstr "Floyd-Steinberg 2-bit grijs" + +#: ../build/lib/darktable/plugins/introspection_dither.c:194 +msgid "Floyd-Steinberg 2-bit RGB" +msgstr "Floyd-Steinberg 2-bit RGB" + +#: ../build/lib/darktable/plugins/introspection_dither.c:195 +msgid "Floyd-Steinberg 4-bit gray" +msgstr "Floyd-Steinberg 4-bit grijs" + +#: ../build/lib/darktable/plugins/introspection_dither.c:196 +msgid "Floyd-Steinberg 4-bit RGB" +msgstr "Floyd-Steinberg 4-bit RGB" + +#: ../build/lib/darktable/plugins/introspection_dither.c:197 +msgid "Floyd-Steinberg 8-bit RGB" +msgstr "Floyd-Steinberg 8-bit RGB" + +#: ../build/lib/darktable/plugins/introspection_dither.c:198 +msgid "Floyd-Steinberg 16-bit RGB" +msgstr "Floyd-Steinberg 16-bit RGB" + +#: ../build/lib/darktable/plugins/introspection_dither.c:199 +msgid "Floyd-Steinberg auto" +msgstr "Floyd-Steinberg auto" + +#: ../build/lib/darktable/plugins/introspection_dither.c:200 +msgid "posterize 2 levels per channel" +msgstr "posterize 2 niveau's per kanaal" + +#: ../build/lib/darktable/plugins/introspection_dither.c:201 +msgid "posterize 3 levels per channel" +msgstr "posterize 3 niveau's per kanaal" + +#: ../build/lib/darktable/plugins/introspection_dither.c:202 +msgid "posterize 4 levels per channel" +msgstr "posterize 4 niveau's per kanaal" + +#: ../build/lib/darktable/plugins/introspection_dither.c:203 +msgid "posterize 5 levels per channel" +msgstr "posterize 5 niveau's per kanaal" + +#: ../build/lib/darktable/plugins/introspection_dither.c:204 +msgid "posterize 6 levels per channel" +msgstr "posterize 6 niveau's per kanaal" + +#: ../build/lib/darktable/plugins/introspection_dither.c:205 +msgid "posterize 7 levels per channel" +msgstr "posterize 7 niveau's per kanaal" + +#: ../build/lib/darktable/plugins/introspection_dither.c:206 +msgid "posterize 8 levels per channel" +msgstr "posterize 8 niveau's per kanaal" + +#: ../build/lib/darktable/plugins/introspection_exposure.c:79 +#: ../build/lib/darktable/plugins/introspection_exposure.c:146 +msgid "percentile" +msgstr "percentiel" + +#: ../build/lib/darktable/plugins/introspection_exposure.c:85 +#: ../build/lib/darktable/plugins/introspection_exposure.c:150 +msgid "target level" +msgstr "doel niveau" + +#: ../build/lib/darktable/plugins/introspection_exposure.c:91 +#: ../build/lib/darktable/plugins/introspection_exposure.c:154 +msgid "compensate exposure bias" +msgstr "compenseer belichtingscorrectie" + +#: ../build/lib/darktable/plugins/introspection_exposure.c:168 +#: ../build/lib/darktable/plugins/introspection_levels.c:160 +msgid "manual" +msgstr "handmatig" + +#: ../build/lib/darktable/plugins/introspection_exposure.c:169 +#: ../build/lib/darktable/plugins/introspection_levels.c:161 +msgid "automatic" +msgstr "automatisch" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:212 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:423 +#: ../src/iop/filmic.c:1514 +msgid "middle gray luminance" +msgstr "middengrijs helderheid" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:218 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:427 +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:97 +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:166 +#: ../src/iop/filmic.c:1539 +msgid "black relative exposure" +msgstr "relatieve belichting zwart" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:224 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:431 +#: ../src/iop/filmic.c:1526 +msgid "white relative exposure" +msgstr "relatieve belichting wit" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:236 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:439 +msgid "transition" +msgstr "overgang" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:242 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:443 +msgid "bloom ↔ reconstruct" +msgstr "glans ↔ reconstructie" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:248 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:447 +msgid "gray ↔ colorful details" +msgstr "grijze ↔ kleurrijke details" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:254 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:451 +msgid "structure ↔ texture" +msgstr "structuur ↔ textuur" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:260 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:455 +msgid "dynamic range scaling" +msgstr "herschalen dynamisch bereik" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:266 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:459 +#: ../src/iop/filmic.c:1671 +msgid "target middle gray" +msgstr "gewenst middengrijs" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:272 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:463 +#: ../src/iop/filmic.c:1662 +msgid "target black luminance" +msgstr "gewenst zwartniveau" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:278 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:467 +#: ../src/iop/filmic.c:1680 +msgid "target white luminance" +msgstr "gewenst witniveau" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:284 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:471 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:69 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:140 +#: ../src/libs/masks.c:107 +msgid "hardness" +msgstr "hardheid" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:302 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:483 +#: ../src/iop/filmic.c:1611 ../src/iop/filmicrgb.c:4793 +msgid "extreme luminance saturation" +msgstr "verzadiging extreme helderheid" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:308 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:487 +msgid "shadows ↔ highlights balance" +msgstr "schaduwen ↔ hooglichten balans" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:314 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:491 +msgid "add noise in highlights" +msgstr "voeg ruis in hooglichten toe" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:320 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:495 +msgid "preserve chrominance" +msgstr "behoud kleurwaarde" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:326 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:499 +msgid "color science" +msgstr "kleurwetenschap" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:332 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:503 +msgid "auto adjust hardness" +msgstr "aut. hardheid aanpassen" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:338 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:507 +msgid "use custom middle-gray values" +msgstr "gebruik aangepaste middengrijze waarden" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:344 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:511 +msgid "iterations of high-quality reconstruction" +msgstr "herhalingen van hoogwaardige reconstructie" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:350 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:515 +msgid "type of noise" +msgstr "soort ruis" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:356 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:519 +msgid "contrast in shadows" +msgstr "contrast in schaduwen" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:362 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:523 +msgid "contrast in highlights" +msgstr "contrast in hooglichten" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:368 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:527 +msgid "compensate output ICC profile black point" +msgstr "compenseer uitgaand ICC profiel zwartpunt" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:374 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:531 +msgid "spline handling" +msgstr "spline-verwerking" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:380 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:535 +msgid "enable highlight reconstruction" +msgstr "hooglicht reconstructie inschakelen" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:549 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:371 +#: ../src/common/variables.c:714 ../src/develop/imageop_gui.c:209 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "no" +msgstr "nee" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:551 +msgid "luminance Y" +msgstr "luminantie Y" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:552 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:384 +msgid "RGB power norm" +msgstr "RGB power norm" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:553 +msgid "RGB euclidean norm (legacy)" +msgstr "RGB euclidean norm (legacy)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:554 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:383 +msgid "RGB euclidean norm" +msgstr "RGB euclidean norm" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:558 +msgid "v3 (2019)" +msgstr "v3 (2019)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:559 +msgid "v4 (2020)" +msgstr "v4 (2020)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:560 +msgid "v5 (2021)" +msgstr "v5 (2021)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:561 +msgid "v6 (2022)" +msgstr "v6 (2022)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:562 +msgid "v7 (2023)" +msgstr "v7 (2023)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:566 +msgid "uniform" +msgstr "gelijkmatig" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:568 +msgid "poissonian" +msgstr "poissonian" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:572 +msgid "hard" +msgstr "hard" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:573 +msgid "soft" +msgstr "zacht" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:574 +msgid "safe" +msgstr "veilig" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:578 +msgid "v1 (2019)" +msgstr "v1 (2019)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:579 +msgid "v2 (2020)" +msgstr "v2 (2020)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:580 +msgid "v3 (2021)" +msgstr "v3 (2021)" + +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:60 +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:125 +msgid "bias" +msgstr "bias" + +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:66 +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:129 +msgid "target" +msgstr "lichtsterkte" + +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:151 +msgid "reinhard" +msgstr "reinhard" + +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:152 +#: ../src/iop/filmic.c:162 +msgid "filmic" +msgstr "filmisch" + +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:153 +msgid "drago" +msgstr "drago" + +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:63 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:136 +msgid "density" +msgstr "dichtheid" + +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 +#: ../src/develop/blend_gui.c:2326 ../src/iop/basicadj.c:654 +#: ../src/iop/channelmixer.c:635 ../src/iop/colisa.c:300 +#: ../src/iop/colorbalance.c:2034 ../src/iop/colorbalancergb.c:1990 +#: ../src/iop/colorchecker.c:1488 ../src/iop/colorcontrast.c:82 +#: ../src/iop/colorcorrection.c:268 ../src/iop/colorize.c:356 +#: ../src/iop/lowpass.c:601 ../src/iop/soften.c:368 ../src/iop/velvia.c:75 +#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:1058 +msgid "saturation" +msgstr "verzadiging" + +#: ../build/lib/darktable/plugins/introspection_grain.c:58 +#: ../build/lib/darktable/plugins/introspection_grain.c:117 +#: ../src/iop/bilat.c:460 +msgid "coarseness" +msgstr "ruwheid" + +#: ../build/lib/darktable/plugins/introspection_grain.c:70 +#: ../build/lib/darktable/plugins/introspection_grain.c:125 +#: ../build/lib/darktable/plugins/introspection_velvia.c:44 +#: ../build/lib/darktable/plugins/introspection_velvia.c:91 +msgid "mid-tones bias" +msgstr "middentonen correctie" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:143 +#: ../build/lib/darktable/plugins/introspection_highlights.c:244 +#: ../src/views/darkroom.c:2245 +msgid "clipping threshold" +msgstr "drempel clipping" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:161 +#: ../build/lib/darktable/plugins/introspection_highlights.c:256 +msgid "diameter of reconstruction" +msgstr "diameter van reconstructie" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:167 +#: ../build/lib/darktable/plugins/introspection_highlights.c:260 +msgid "candidating" +msgstr "kandidaat stellen" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:173 +#: ../build/lib/darktable/plugins/introspection_highlights.c:264 +msgid "combine" +msgstr "combineer" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:179 +#: ../build/lib/darktable/plugins/introspection_highlights.c:268 +msgid "rebuild" +msgstr "herbouwen" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:185 +#: ../build/lib/darktable/plugins/introspection_highlights.c:272 +msgid "inpaint a flat color" +msgstr "vlakke kleur inkleuren" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:286 +msgid "inpaint opposed" +msgstr "inpaint opposed" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:287 +msgid "reconstruct in LCh" +msgstr "reconstrueer in LCh" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:288 +msgid "clip highlights" +msgstr "clip hooglichten" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:289 +msgid "segmentation based" +msgstr "segmentatie gebaseerd" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:290 +msgid "guided laplacians" +msgstr "gestuurde laplacians" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:291 +msgid "reconstruct color" +msgstr "reconstrueer kleur" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:295 +msgid "2 px" +msgstr "2 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:296 +msgid "4 px" +msgstr "4 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:297 +msgid "8 px" +msgstr "8 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:298 +msgid "16 px" +msgstr "16 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:299 +msgid "32 px" +msgstr "32 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:300 +msgid "64 px" +msgstr "64 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:301 +msgid "128 px (slow)" +msgstr "128 px (langzaam)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:302 +msgid "256 px (slow)" +msgstr "256 px (langzaam)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:303 +msgid "512 px (very slow)" +msgstr "512 px (erg langzaam)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:304 +msgid "1024 px (very slow)" +msgstr "1024 px (erg langzaam)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:305 +msgid "2048 px (insanely slow)" +msgstr "2048 px (belachelijk langzaam)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:306 +msgid "4096 px (insanely slow)" +msgstr "4096 px (belachelijk langzaam)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:312 +msgid "flat generic" +msgstr "vlak generiek" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:313 +msgid "small segments" +msgstr "kleine segmenten" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:314 +msgid "large segments" +msgstr "grote segmenten" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:315 +msgid "flat small segments" +msgstr "vlakke kleine segmenten" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:316 +msgid "flat large segments" +msgstr "vlakke grote segmenten" + +#: ../build/lib/darktable/plugins/introspection_highpass.c:44 +#: ../build/lib/darktable/plugins/introspection_highpass.c:91 +msgid "contrast boost" +msgstr "contrast versterken" + +#: ../build/lib/darktable/plugins/introspection_hotpixels.c:59 +#: ../build/lib/darktable/plugins/introspection_hotpixels.c:116 +msgid "mark fixed pixels" +msgstr "markeer vaste pixels" + +#: ../build/lib/darktable/plugins/introspection_hotpixels.c:65 +#: ../build/lib/darktable/plugins/introspection_hotpixels.c:120 +msgid "detect by 3 neighbors" +msgstr "detecteer met 3 naaste" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:190 +#: ../build/lib/darktable/plugins/introspection_lens.cc:401 +msgid "correction method" +msgstr "correctiemethode" + +#. Page CORRECTIONS +#: ../build/lib/darktable/plugins/introspection_lens.cc:196 +#: ../build/lib/darktable/plugins/introspection_lens.cc:405 +#: ../src/iop/negadoctor.c:919 +msgid "corrections" +msgstr "correcties" + +#. mode choice +#: ../build/lib/darktable/plugins/introspection_lens.cc:202 +#: ../build/lib/darktable/plugins/introspection_lens.cc:409 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:128 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:219 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:51 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:118 +#: ../src/develop/blend_gui.c:3546 ../src/iop/bilat.c:438 +#: ../src/iop/colorbalance.c:1884 ../src/iop/denoiseprofile.c:3810 +#: ../src/iop/exposure.c:1175 ../src/iop/levels.c:700 +#: ../src/iop/profile_gamma.c:682 ../src/libs/copy_history.c:399 +#: ../src/libs/export.c:1376 ../src/libs/image.c:666 +#: ../src/libs/print_settings.c:2875 ../src/libs/styles.c:850 +#: ../src/views/darkroom.c:2226 +msgid "mode" +msgstr "modus" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:238 +#: ../build/lib/darktable/plugins/introspection_lens.cc:433 +#: ../src/iop/lens.cc:4474 +msgid "target geometry" +msgstr "doel geometrie" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:268 +#: ../build/lib/darktable/plugins/introspection_lens.cc:453 +msgid "TCA overwrite" +msgstr "TCA overschrijven" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:274 +#: ../build/lib/darktable/plugins/introspection_lens.cc:298 +#: ../build/lib/darktable/plugins/introspection_lens.cc:457 +#: ../build/lib/darktable/plugins/introspection_lens.cc:473 +msgid "TCA red" +msgstr "TCA rood" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:280 +#: ../build/lib/darktable/plugins/introspection_lens.cc:304 +#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:477 +msgid "TCA blue" +msgstr "TCA blauw" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:286 +#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +msgid "distortion" +msgstr "vervorming" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:292 +#: ../build/lib/darktable/plugins/introspection_lens.cc:469 +#: ../src/iop/vignette.c:114 +msgid "vignetting" +msgstr "vignettering" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:310 +#: ../build/lib/darktable/plugins/introspection_lens.cc:481 +msgid "scale fine-tune" +msgstr "schaal fijnregeling" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:322 +#: ../build/lib/darktable/plugins/introspection_lens.cc:489 +msgid "image scale" +msgstr "schaal afbeelding" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:346 +#: ../build/lib/darktable/plugins/introspection_lens.cc:505 +msgid "steepness" +msgstr "steilheid" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:527 +msgid "embedded metadata" +msgstr "ingesloten metagegevens" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:528 +msgid "Lensfun database" +msgstr "Lensfun database" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:529 +msgid "only manual vignette" +msgstr "alleen handmatige vignettering" + +#. get nice text for bounds +#. Side-border hide/show +#: ../build/lib/darktable/plugins/introspection_lens.cc:534 +#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2592 +#: ../src/gui/accelerators.c:2674 ../src/gui/gtk.c:1282 ../src/gui/gtk.c:3182 +#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3713 +#: ../src/iop/rawdenoise.c:909 ../src/libs/collect.c:3413 +#: ../src/libs/filtering.c:1521 ../src/libs/filters/colors.c:157 +#: ../src/libs/filters/colors.c:265 ../src/libs/filters/rating.c:211 +msgid "all" +msgstr "alles" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:535 +msgid "distortion & TCA" +msgstr "vervorming & TCA" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:536 +msgid "distortion & vignetting" +msgstr "vervorming en vignettering" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:537 +msgid "TCA & vignetting" +msgstr "TCA & vignettering" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:538 +msgid "only distortion" +msgstr "alleen vervorming" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:539 +msgid "only TCA" +msgstr "alleen TCA" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:540 +msgid "only vignetting" +msgstr "alleen vignettering" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:544 +#: ../src/libs/modulegroups.c:2302 +msgid "correct" +msgstr "corrigeren" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:545 +msgid "distort" +msgstr "vervorm" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:550 +msgid "rectilinear" +msgstr "rechtlijnig" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:551 +msgid "fisheye" +msgstr "fish-eye" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:552 +msgid "panoramic" +msgstr "panorama" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:553 +msgid "equirectangular" +msgstr "equidistante cilinderprojectie" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:554 +msgid "orthographic" +msgstr "orthografisch" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:555 +msgid "stereographic" +msgstr "stereografisch" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:556 +msgid "equisolid angle" +msgstr "equisolid angle" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:557 +msgid "Thoby fisheye" +msgstr "Thoby fish-eye" + +#: ../build/lib/darktable/plugins/introspection_liquify.c:428 +msgid "invalidated" +msgstr "ongeldig verklaard" + +#. move left/right/up/down +#: ../build/lib/darktable/plugins/introspection_liquify.c:429 +#: ../src/views/darkroom.c:2121 ../src/views/darkroom.c:2522 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:765 +#: ../src/views/lighttable.c:774 ../src/views/lighttable.c:1246 +#: ../src/views/lighttable.c:1250 ../src/views/lighttable.c:1254 +#: ../src/views/lighttable.c:1258 ../src/views/lighttable.c:1262 +msgid "move" +msgstr "verplaats" + +#: ../build/lib/darktable/plugins/introspection_liquify.c:430 +msgid "line" +msgstr "lijn" + +#: ../build/lib/darktable/plugins/introspection_liquify.c:431 +#: ../src/iop/basecurve.c:2207 ../src/iop/rgbcurve.c:1387 +#: ../src/iop/tonecurve.c:1171 +msgid "curve" +msgstr "curve" + +#: ../build/lib/darktable/plugins/introspection_lowlight.c:43 +#: ../build/lib/darktable/plugins/introspection_lowlight.c:110 +msgid "blue shift" +msgstr "blauw verleggen" + +#: ../build/lib/darktable/plugins/introspection_lowpass.c:96 +#: ../build/lib/darktable/plugins/introspection_lowpass.c:165 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:160 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:247 +msgid "soften with" +msgstr "verzachten met" + +#: ../build/lib/darktable/plugins/introspection_lowpass.c:183 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:261 +msgid "order 0" +msgstr "volgorde 0" + +#: ../build/lib/darktable/plugins/introspection_lowpass.c:184 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:262 +msgid "order 1" +msgstr "volgorde 1" + +#: ../build/lib/darktable/plugins/introspection_lowpass.c:185 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:263 +msgid "order 2" +msgstr "volgorde 2" + +#: ../build/lib/darktable/plugins/introspection_lowpass.c:190 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:268 +msgid "bilateral filter" +msgstr "bilateral filter" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:77 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:164 +msgid "application color space" +msgstr "toepassingskleurruimte" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 +msgid "Adobe RGB" +msgstr "Adobe RGB" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 +msgid "gamma Rec709 RGB" +msgstr "gamma rec709 RGB" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:207 +#: ../src/common/colorspaces.c:1486 ../src/common/colorspaces.c:1740 +msgid "linear ProPhoto RGB" +msgstr "linear ProPhoto RGB" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 +msgid "tetrahedral" +msgstr "tetraëdrische" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:212 +msgid "trilinear" +msgstr "trilineair" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:213 +msgid "pyramid" +msgstr "piramide" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:84 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:199 +msgid "film stock" +msgstr "filmmateriaal" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:132 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:231 +msgid "scan exposure bias" +msgstr "scan belichtingscorrectie" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:138 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:235 +msgid "paper black (density correction)" +msgstr "papier zwart (dichtheidscorrectie)" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:144 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:239 +#: ../src/iop/negadoctor.c:1011 +msgid "paper grade (gamma)" +msgstr "papierkwaliteit (gamma)" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:150 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:243 +msgid "paper gloss (specular highlights)" +msgstr "papierglans (spiegelende highlights)" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:156 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:247 +msgid "print exposure adjustment" +msgstr "belichtingsaanpassing afdrukken" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:261 +#: ../src/iop/negadoctor.c:431 +msgid "black and white film" +msgstr "zwart-wit film" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:262 +#: ../src/iop/negadoctor.c:416 +msgid "color film" +msgstr "kleurenfilm" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:75 +#: ../build/lib/darktable/plugins/introspection_primaries.c:160 +#: ../src/iop/primaries.c:406 +msgid "tint hue" +msgstr "kleurtint" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:81 +#: ../build/lib/darktable/plugins/introspection_primaries.c:164 +#: ../src/iop/primaries.c:413 +msgid "tint purity" +msgstr "kleurzuiverheid" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:87 +#: ../build/lib/darktable/plugins/introspection_primaries.c:168 +msgid "red hue" +msgstr "rood tint" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:93 +#: ../build/lib/darktable/plugins/introspection_primaries.c:172 +msgid "red purity" +msgstr "rood zuiverheid" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:99 +#: ../build/lib/darktable/plugins/introspection_primaries.c:176 +msgid "green hue" +msgstr "groen tint" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:105 +#: ../build/lib/darktable/plugins/introspection_primaries.c:180 +msgid "green purity" +msgstr "groen zuiverheid" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:111 +#: ../build/lib/darktable/plugins/introspection_primaries.c:184 +msgid "blue hue" +msgstr "blauw tint" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:117 +#: ../build/lib/darktable/plugins/introspection_primaries.c:188 +msgid "blue purity" +msgstr "blauw zuiverheid" + +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:85 +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:158 +msgid "dynamic range" +msgstr "dynamisch bereik" + +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:91 +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:162 +msgid "middle gray luma" +msgstr "middengrijs helderheid" + +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:103 +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:170 +#: ../src/iop/filmic.c:1551 +msgid "safety factor" +msgstr "veiligheidsfactor" + +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:184 +msgid "logarithmic" +msgstr "logaritmisch" + +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:185 +#: ../src/iop/profile_gamma.c:639 +msgid "gamma" +msgstr "gamma" + +#: ../build/lib/darktable/plugins/introspection_rawdenoise.c:43 +#: ../build/lib/darktable/plugins/introspection_rawdenoise.c:122 +msgid "noise threshold" +msgstr "ruis drempel" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:70 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:155 +msgid "crop left" +msgstr "links uitsnijden" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:76 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:159 +msgid "crop top" +msgstr "boven uitsnijden" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:82 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:163 +msgid "crop right" +msgstr "rechts uitsnijden" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:88 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:167 +msgid "crop bottom" +msgstr "onder uitsnijden" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:94 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:100 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:171 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:175 +msgid "black level" +msgstr "zwartniveau" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:106 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:179 +#: ../src/iop/rawprepare.c:954 +msgid "white point" +msgstr "witpunt" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:112 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:183 +msgid "flat field correction" +msgstr "platte veld correctie" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:198 +msgid "embedded GainMap" +msgstr "ingesloten GainMap" + +#. exposure +#: ../build/lib/darktable/plugins/introspection_relight.c:43 +#: ../build/lib/darktable/plugins/introspection_relight.c:98 +#: ../src/common/collection.c:633 ../src/gui/preferences.c:834 +#: ../src/gui/presets.c:687 ../src/iop/basicadj.c:628 ../src/iop/exposure.c:122 +#: ../src/iop/exposure.c:1135 ../src/libs/metadata_view.c:143 +msgid "exposure" +msgstr "belichting" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:267 +#: ../build/lib/darktable/plugins/introspection_retouch.c:414 +msgid "fill mode" +msgstr "vul modus" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:285 +#: ../build/lib/darktable/plugins/introspection_retouch.c:426 +#: ../src/iop/basicadj.c:650 ../src/iop/channelmixerrgb.c:4685 +#: ../src/iop/colisa.c:299 ../src/iop/lowpass.c:600 ../src/iop/soften.c:372 +#: ../src/iop/vignette.c:1057 ../src/libs/history.c:963 +msgid "brightness" +msgstr "helderheid" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:291 +#: ../build/lib/darktable/plugins/introspection_retouch.c:430 +msgid "max_iter" +msgstr "max-iter" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:444 +#: ../src/libs/metadata_view.c:333 +msgid "unused" +msgstr "niet gebruikt" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:445 +msgid "clone" +msgstr "kloon" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:446 +msgid "heal" +msgstr "herstellen" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:447 +#: ../src/iop/retouch.c:2051 +msgid "blur" +msgstr "vervagen" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:448 +#: ../src/iop/retouch.c:2049 +msgid "fill" +msgstr "vullen" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:453 +msgid "bilateral" +msgstr "bilateraal" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:457 +msgid "erase" +msgstr "wissen" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:458 +#: ../src/gui/presets.c:61 ../src/iop/watermark.c:1346 +#: ../src/libs/colorpicker.c:320 ../src/libs/image.c:683 +#: ../src/libs/modulegroups.c:2301 +msgid "color" +msgstr "kleur" + +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:134 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:223 +#: ../src/iop/rgbcurve.c:1423 +msgid "compensate middle gray" +msgstr "compenseer middengrijs" + +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:246 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:148 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:266 +msgid "RGB, linked channels" +msgstr "RGB, verbonden kanalen" + +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:247 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:149 +msgid "RGB, independent channels" +msgstr "RGB, onafhankelijke kanalen" + +#: ../build/lib/darktable/plugins/introspection_shadhi.c:112 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:215 +msgid "white point adjustment" +msgstr "witpuntaanpassing" + +#: ../build/lib/darktable/plugins/introspection_shadhi.c:136 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:231 +msgid "shadows color adjustment" +msgstr "aanpassen schaduwkleuren" + +#: ../build/lib/darktable/plugins/introspection_shadhi.c:142 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:235 +msgid "highlights color adjustment" +msgstr "aanpassen hooglichtkleuren" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:122 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:241 +#: ../src/gui/accelerators.c:101 +msgid "skew" +msgstr "verschuiving" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:128 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:245 +msgid "target white" +msgstr "mikpunt wit" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:134 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:249 +msgid "target black" +msgstr "mikpunt zwart" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:140 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:253 +msgid "color processing" +msgstr "kleurverwerking" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:146 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:257 +msgid "preserve hue" +msgstr "tint behouden" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:152 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:261 +msgid "red attenuation" +msgstr "rood verzwakking" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:158 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:265 +msgid "red rotation" +msgstr "rood rotatie" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:164 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:269 +msgid "green attenuation" +msgstr "groen verzwakking" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:170 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:273 +msgid "green rotation" +msgstr "groen rotatie" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:176 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:277 +msgid "blue attenuation" +msgstr "blauw verzwakking" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:182 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:281 +msgid "blue rotation" +msgstr "blauw rotatie" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:188 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:285 +msgid "recover purity" +msgstr "herstel zuiverheid" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:194 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:289 +msgid "base primaries" +msgstr "basiskleuren" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:303 +msgid "per channel" +msgstr "per kanaal" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:304 +msgid "RGB ratio" +msgstr "RGB-verhouding" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:308 +#: ../src/common/colorspaces.c:1377 ../src/common/colorspaces.c:1734 +msgid "work profile" +msgstr "werkprofiel" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:309 +msgid "Rec2020" +msgstr "Rec2020" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:310 +#: ../src/common/colorspaces.c:1750 +msgid "Display P3" +msgstr "Display P3" + +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:135 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:232 +msgid "color space" +msgstr "kleurruimte" + +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:263 +msgid "Lab, linked channels" +msgstr "Lab, verbonden kanalen" + +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:264 +msgid "Lab, independent channels" +msgstr "Lab, onafhankelijke kanalen" + +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:265 +msgid "XYZ, linked channels" +msgstr "XYZ, verbonden kanalen" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:144 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:289 +msgid "blacks" +msgstr "zwarten" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:150 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:293 +msgid "deep shadows" +msgstr "diepe schaduwen" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:162 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:301 +msgid "light shadows" +msgstr "lichte schaduwen" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:174 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:309 +msgid "dark highlights" +msgstr "donkere hooglichten" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:186 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:317 +msgid "whites" +msgstr "witten" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:192 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:321 +msgid "speculars" +msgstr "reflectieven" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:198 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:325 +msgid "smoothing diameter" +msgstr "afvlakken diameter" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:210 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:333 +msgid "edges refinement/feathering" +msgstr "randverfijning/verdoezelen" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:216 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:337 +msgid "mask quantization" +msgstr "masker kwantisering" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:222 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:341 +msgid "mask contrast compensation" +msgstr "contrast compensatie masker" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:228 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:345 +msgid "mask exposure compensation" +msgstr "belichtingscompensatie masker" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:240 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:353 +msgid "luminance estimator" +msgstr "helderheidsschatter" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:246 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:357 +msgid "filter diffusion" +msgstr "filter diffusie" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:372 +msgid "averaged guided filter" +msgstr "gemiddeld geleid filter" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:373 +msgid "guided filter" +msgstr "geleid filter" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:374 +msgid "averaged EIGF" +msgstr "gemiddelde EIGF" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:375 +msgid "EIGF" +msgstr "EIGF" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:379 +msgid "RGB average" +msgstr "RGB gemiddelde" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:380 +msgid "HSL lightness" +msgstr "HSL helderheid" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:381 +msgid "HSV value / RGB max" +msgstr "HSV waarde / RGB max" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:382 +msgid "RGB sum" +msgstr "RGB som" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:385 +msgid "RGB geometric mean" +msgstr "RGB geometrisch gemiddelde" + +#: ../build/lib/darktable/plugins/introspection_tonemap.cc:39 +#: ../build/lib/darktable/plugins/introspection_tonemap.cc:88 +#: ../src/iop/rgbcurve.c:186 ../src/iop/tonecurve.c:560 +msgid "contrast compression" +msgstr "contrastcompressie" + +#: ../build/lib/darktable/plugins/introspection_vibrance.c:33 +#: ../build/lib/darktable/plugins/introspection_vibrance.c:76 +#: ../src/iop/basicadj.c:657 ../src/iop/vibrance.c:67 +msgid "vibrance" +msgstr "levendigheid" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:92 +#: ../build/lib/darktable/plugins/introspection_vignette.c:201 +msgid "fall-off start" +msgstr "gradiënt start" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:98 +#: ../build/lib/darktable/plugins/introspection_vignette.c:205 +msgid "fall-off radius" +msgstr "gradiënt radius" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:116 +#: ../build/lib/darktable/plugins/introspection_vignette.c:217 +msgid "horizontal center" +msgstr "horizontaal middelpunt" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:122 +#: ../build/lib/darktable/plugins/introspection_vignette.c:221 +msgid "vertical center" +msgstr "verticaal middelpunt" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:134 +#: ../build/lib/darktable/plugins/introspection_vignette.c:229 +msgid "automatic ratio" +msgstr "aut. verhouding" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:140 +#: ../build/lib/darktable/plugins/introspection_vignette.c:233 +msgid "width/height ratio" +msgstr "verhouding breedte/hoogte" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:146 +#: ../build/lib/darktable/plugins/introspection_vignette.c:237 +#: ../src/iop/vignette.c:1066 +msgid "shape" +msgstr "vorm" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:265 +msgid "8-bit output" +msgstr "8-bit uitvoer" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:266 +msgid "16-bit output" +msgstr "16-bit uitvoer" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:118 +#: ../build/lib/darktable/plugins/introspection_watermark.c:253 +msgid "x offset" +msgstr "x verschuiving" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:124 +#: ../build/lib/darktable/plugins/introspection_watermark.c:257 +msgid "y offset" +msgstr "y verschuiving" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:142 +#: ../build/lib/darktable/plugins/introspection_watermark.c:269 +msgid "scale on" +msgstr "vergroting" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:148 +#: ../build/lib/darktable/plugins/introspection_watermark.c:273 +msgid "scale marker to" +msgstr "schaal markering naar" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:154 +#: ../build/lib/darktable/plugins/introspection_watermark.c:277 +msgid "scale marker reference" +msgstr "schaal markering referentie" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:323 +#: ../src/imageio/format/tiff.c:125 ../src/imageio/format/xcf.c:159 +#: ../src/iop/borders.c:960 +msgid "image" +msgstr "afbeelding" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:324 +msgid "larger border" +msgstr "lange zijde" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:325 +msgid "smaller border" +msgstr "korte zijde" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:327 +msgid "advanced options" +msgstr "aangepast" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:331 +msgid "image width" +msgstr "afbeelding breedte" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:332 +msgid "image height" +msgstr "afbeelding hoogte" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:333 +msgid "larger image border" +msgstr "grotere rand" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:334 +msgid "smaller image border" +msgstr "kleinere rand" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:338 +msgid "marker width" +msgstr "watermerk breedte" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:339 +msgid "marker height" +msgstr "watermerk hoogte" + +#: ../build/bin/tools/darktable_authors.h:6 +msgid "developers" +msgstr "ontwikkelaars" + +#: ../build/bin/tools/darktable_authors.h:11 +msgid "translators" +msgstr "vertalers" + +#: ../build/bin/tools/darktable_authors.h:16 +msgid "contributors" +msgstr "bijdragers" + +#: ../build/bin/tools/darktable_authors.h:21 +msgid "rawspeed contributors" +msgstr "rawspeed-bijdragers" + +#: ../build/bin/tools/darktable_authors.h:26 +msgid "integration contributors" +msgstr "bijdragers aan de integratie" + +#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:1 +#: ../data/org.darktable.darktable.desktop.in.h:1 +msgid "Virtual Lighttable and Darkroom" +msgstr "Virtuele lichtbak en donkere kamer" + +#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:2 +#: ../data/org.darktable.darktable.appdata.xml.in.h:1 +#: ../data/org.darktable.darktable.desktop.in.h:2 +msgid "Organize and develop images from digital cameras" +msgstr "Organiseer en ontwikkel afbeeldingen van digitale camera's" + +#. TRANSLATORS: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! +#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:4 +#: ../data/org.darktable.darktable.desktop.in.h:4 +msgid "graphics;photography;raw;" +msgstr "grafisch;fotografie;raw;" + +#: ../data/org.darktable.darktable.appdata.xml.in.h:2 +msgid "" +"darktable manages your digital negatives in a database and lets you view " +"them through a lighttable. It also enables you to develop raw images and " +"enhance them in a darkroom." +msgstr "" +"darktable bewaart uw digitale negatieven in een database en toont ze in een " +"lichtbak (bibliotheek) en je kunt RAW-afbeeldingen bewerken in de donkere " +"kamer (ontwikkelen)." + +#: ../data/org.darktable.darktable.appdata.xml.in.h:3 +msgid "" +"Other modes besides lighttable and darkroom are a map for geotagging, " +"tethering, print and a slideshow." +msgstr "" +"Overige onderdelen naast de bibliotheek en ontwikkelen zijn een kaart (voor " +"geotaggen), tethering, afdrukken en presentatie." + +#: ../data/org.darktable.darktable.appdata.xml.in.h:4 +msgid "" +"darktable supports most modern cameras' raw formats, and does all of its " +"processing at very high precision." +msgstr "" +"darktable ondersteunt de meeste gangbare raw-formaten en verwerkt ze met een " +"zeer hoge precisie." + +#: ../data/org.darktable.darktable.appdata.xml.in.h:5 +msgid "Virtual light table, showing a collection" +msgstr "Virtuele lichtbak, toont een collectie" + +#: ../data/org.darktable.darktable.appdata.xml.in.h:6 +msgid "Virtual dark room with an opened image" +msgstr "Virtuele DoKa met een geopende afbeelding" + +#: ../data/org.darktable.darktable.appdata.xml.in.h:7 +msgid "Virtual dark room, sharpening an image" +msgstr "Virtuele DoKa, die een afbeelding scherper maakt" + +#: ../data/org.darktable.darktable.appdata.xml.in.h:8 +msgid "Show images on a map" +msgstr "Toon afbeeldingen op een kaart" + +#: ../data/org.darktable.darktable.appdata.xml.in.h:9 +msgid "Print your images" +msgstr "Print je afbeeldingen" + +#: ../src/bauhaus/bauhaus.c:845 ../src/bauhaus/bauhaus.c:3957 +msgid "sliders" +msgstr "schuifregelaars" + +#: ../src/bauhaus/bauhaus.c:847 ../src/bauhaus/bauhaus.c:3962 +msgid "dropdowns" +msgstr "vervolgkeuzelijsten" + +#: ../src/bauhaus/bauhaus.c:849 ../src/bauhaus/bauhaus.c:3967 +msgid "buttons" +msgstr "knoppen" + +#: ../src/bauhaus/bauhaus.c:3623 +msgid "button on" +msgstr "knop aan" + +#: ../src/bauhaus/bauhaus.c:3623 +msgid "button off" +msgstr "knop uit" + +#: ../src/bauhaus/bauhaus.c:3624 +msgid "button pressed" +msgstr "knop ingedrukt" + +#: ../src/bauhaus/bauhaus.c:3862 +msgid "not that many sliders" +msgstr "niet zoveel schuifregelaars" + +#: ../src/bauhaus/bauhaus.c:3876 +msgid "not that many dropdowns" +msgstr "niet zoveel dropdowns" + +#: ../src/bauhaus/bauhaus.c:3895 +msgid "not that many buttons" +msgstr "niet zoveel knoppen" + +#: ../src/bauhaus/bauhaus.c:3900 ../src/gui/accelerators.c:389 +msgid "value" +msgstr "waarde" + +#: ../src/bauhaus/bauhaus.c:3901 ../src/bauhaus/bauhaus.c:3907 +#: ../src/gui/accelerators.c:368 +msgid "button" +msgstr "knop" + +#: ../src/bauhaus/bauhaus.c:3902 +msgid "force" +msgstr "kracht" + +#: ../src/bauhaus/bauhaus.c:3903 ../src/libs/navigation.c:190 +#: ../src/libs/navigation.c:202 +msgid "zoom" +msgstr "zoom" + +#: ../src/bauhaus/bauhaus.c:3906 ../src/libs/select.c:40 +msgid "selection" +msgstr "selecteren" + +#: ../src/bauhaus/bauhaus.c:3946 +msgid "slider" +msgstr "schuifbalk" + +#: ../src/bauhaus/bauhaus.c:3951 +msgid "dropdown" +msgstr "keuzemenu" + +#: ../src/chart/main.c:504 ../src/common/database.c:3372 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 ../src/gui/accelerators.c:2497 +#: ../src/gui/accelerators.c:2579 ../src/gui/accelerators.c:2632 +#: ../src/gui/accelerators.c:2661 ../src/gui/accelerators.c:2723 +#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1081 ../src/gui/presets.c:422 +#: ../src/gui/presets.c:565 ../src/gui/styles_dialog.c:526 +#: ../src/imageio/storage/disk.c:198 ../src/imageio/storage/gallery.c:150 +#: ../src/imageio/storage/latex.c:146 ../src/iop/lut3d.c:1560 +#: ../src/libs/collect.c:425 ../src/libs/collect.c:3242 +#: ../src/libs/copy_history.c:115 ../src/libs/export_metadata.c:276 +#: ../src/libs/geotagging.c:929 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1711 +#: ../src/libs/metadata.c:462 ../src/libs/metadata_view.c:1222 +#: ../src/libs/recentcollect.c:228 ../src/libs/modulegroups.c:3466 +#: ../src/libs/styles.c:392 ../src/libs/styles.c:439 ../src/libs/styles.c:529 +#: ../src/libs/styles.c:624 ../src/libs/tagging.c:1488 +#: ../src/libs/tagging.c:1579 ../src/libs/tagging.c:1670 +#: ../src/libs/tagging.c:1806 ../src/libs/tagging.c:2085 +#: ../src/libs/tagging.c:2520 ../src/libs/tagging.c:2556 +#: ../src/libs/tagging.c:3502 +msgid "_cancel" +msgstr "_annuleer" + +#: ../src/chart/main.c:504 ../src/gui/preferences.c:1081 +#: ../src/gui/styles_dialog.c:527 ../src/libs/collect.c:3243 +#: ../src/libs/export_metadata.c:277 ../src/libs/metadata.c:463 +#: ../src/libs/metadata_view.c:1223 ../src/libs/recentcollect.c:229 +#: ../src/libs/styles.c:392 ../src/libs/tagging.c:1671 +#: ../src/libs/tagging.c:1807 ../src/libs/tagging.c:2086 +#: ../src/libs/tagging.c:3503 +msgid "_save" +msgstr "_opslaan" + +#. TODO: is the rank interesting, too? +#: ../src/chart/main.c:1064 +#, c-format +msgid "" +"average dE: %.02f\n" +"max dE: %.02f" +msgstr "" +"gemiddeld dE: %.02f\n" +"maximum dE: %.02f" + +#: ../src/cli/main.c:270 +msgid "TODO: sorry, due to API restrictions we currently cannot set the BPP to" +msgstr "" +"TODO: sorry, vanwege API-restricties kunnen we momenteel de BPP niet " +"instellen op" + +#: ../src/cli/main.c:282 +msgid "unknown option for --hq" +msgstr "onbekende optie voor --hq" + +#: ../src/cli/main.c:298 +msgid "unknown option for --export_masks" +msgstr "onbekende optie voor --exports_masks" + +#: ../src/cli/main.c:314 +msgid "unknown option for --upscale" +msgstr "onbekende optie voor --opschalen" + +#: ../src/cli/main.c:339 +msgid "unknown option for --apply-custom-presets" +msgstr "onbekende optie voor --toepassing-aangepaste-voorinstellingen" + +#: ../src/cli/main.c:350 +msgid "too long ext for --out-ext" +msgstr "te lange ext voor —out-ext" + +#: ../src/cli/main.c:367 +#, c-format +msgid "notice: input file or dir '%s' doesn't exist, skipping\n" +msgstr "" +"waarschuwing: input bestand of map ‘%s’ bestaat niet, wordt overgeslagen\n" + +#: ../src/cli/main.c:376 +#, c-format +msgid "incorrect ICC type for --icc-type: '%s'\n" +msgstr "fout ICC-type voor —icc-type: ‘%s’\n" + +#: ../src/cli/main.c:392 +#, c-format +msgid "notice: ICC file '%s' doesn't exist, skipping\n" +msgstr "waarschuwing: ICC-bestand ‘%s’ bestaat niet, wordt overgeslagen\n" + +#: ../src/cli/main.c:401 +#, c-format +msgid "incorrect ICC intent for --icc-intent: '%s'\n" +msgstr "onjuiste ICC-intentie voor —icc-intent: ‘%s’\n" + +#: ../src/cli/main.c:419 +#, c-format +msgid "warning: unknown option '%s'\n" +msgstr "waarschuwing: onbekende optie ‘%s’\n" + +#: ../src/cli/main.c:477 +#, c-format +msgid "error: input file and import opts specified! that's not supported!\n" +msgstr "" +"fout: invoerbestand en importopties gespecificeerd! dat wordt niet " +"ondersteund!\n" + +#: ../src/cli/main.c:510 +#, c-format +msgid "" +"notice: output location is a directory. assuming '%s/$(FILE_NAME).%s' output " +"pattern" +msgstr "" +"opmerking: uitvoerlocatie is een map. uitgaande van ‘%s/$(FILE_NAME).%s’ als " +"sjabloon" + +#. output file exists or there's output ext specified and it's same as file... +#: ../src/cli/main.c:525 +msgid "output file already exists, it will get renamed" +msgstr "uitvoerbestand bestaat al, het krijgt een andere naam" + +#. one of inputs was a failure, no prob +#: ../src/cli/main.c:555 +#, c-format +msgid "error: can't open folder %s" +msgstr "fout: kan map niet openen %s" + +#: ../src/cli/main.c:572 +#, c-format +msgid "error: can't open file %s" +msgstr "fout: openen bestand %s lukt niet" + +#: ../src/cli/main.c:589 +#, c-format +msgid "no images to export, aborting\n" +msgstr "niets te exporteren, afbreken\n" + +#: ../src/cli/main.c:606 +#, c-format +msgid "error: can't open XMP file %s" +msgstr "fout: kan XMP bestand %s niet openen" + +#: ../src/cli/main.c:627 +msgid "empty history stack" +msgstr "verwijder bewerkingsstap(pen)" + +#. too long ext, no point in wasting time +#: ../src/cli/main.c:639 +#, c-format +msgid "too long output file extension: %s\n" +msgstr "te lange bestandsextensie voor uitvoer: %s\n" + +#. no ext or empty ext, no point in wasting time +#: ../src/cli/main.c:647 +#, c-format +msgid "no output file extension given\n" +msgstr "geen uitvoerbestandsextensie gegeven\n" + +#: ../src/cli/main.c:692 +msgid "" +"cannot find disk storage module. please check your installation, something " +"seems to be broken." +msgstr "" +"module schijfopslag niet gevonden, controleer je installatie, er lijkt iets " +"kapot te zijn." + +#: ../src/cli/main.c:702 +msgid "failed to get parameters from storage module, aborting export ..." +msgstr "" +"ophalen instellingen van de opslagmodule mislukt, export wordt afgebroken..." + +#: ../src/cli/main.c:718 +#, c-format +msgid "unknown extension '.%s'" +msgstr "onbekende extensie '.%s'" + +#: ../src/cli/main.c:728 +msgid "failed to get parameters from format module, aborting export ..." +msgstr "" +"ophalen instellingen van de formaatmodule mislukt, export wordt afgebroken..." + +#: ../src/common/camera_control.c:190 +#, c-format +msgid "" +"camera `%s' on port `%s' error %s\n" +"\n" +"make sure your camera allows access and is not mounted otherwise" +msgstr "" +"camera `%s’ op poort `%s’ fout %s\n" +"\n" +"zorg ervoor dat uw camera toegang geeft en niet op een andere manier is " +"gekoppeld" + +#: ../src/common/camera_control.c:892 +#, c-format +msgid "" +"failed to initialize `%s' on port `%s', likely causes are: locked by another " +"application, no access to devices etc" +msgstr "" +"kan `%s’ niet initialiseren op poort `%s’, waarschijnlijke oorzaken zijn: " +"vergrendeld door een andere applicatie, geen toegang tot apparaten enz" + +#: ../src/common/camera_control.c:905 +#, c-format +msgid "" +"`%s' on port `%s' is not interesting because it supports neither tethering " +"nor import" +msgstr "" +"`%s’ op poort `%s’ is niet interessant omdat het noch tethering noch import " +"ondersteunt" + +#: ../src/common/camera_control.c:959 +#, c-format +msgid "camera `%s' on port `%s' disconnected while mounted" +msgstr "camerakoppeling `%s’ op poort `%s’ verbroken terwijl hij gekoppeld was" + +#: ../src/common/camera_control.c:967 +#, c-format +msgid "" +"camera `%s' on port `%s' needs to be remounted\n" +"make sure it allows access and is not mounted otherwise" +msgstr "" +"camera `%s’ op poort `%s’ moet opnieuw worden aangekoppeld\n" +"zorg ervoor dat hij toegang geeft en niet op een andere manier is gekoppeld" + +#: ../src/common/collection.c:586 +msgid "too much time to update aspect ratio for the collection" +msgstr "teveel tijd om de beeldverhouding van de collectie te updaten" + +#: ../src/common/collection.c:601 +msgid "film roll" +msgstr "filmrol" + +#: ../src/common/collection.c:603 +msgid "folder" +msgstr "map" + +#: ../src/common/collection.c:605 +msgid "camera" +msgstr "camera" + +#: ../src/common/collection.c:607 ../src/libs/export_metadata.c:176 +#: ../src/libs/tagging.c:3312 +msgid "tag" +msgstr "label" + +#: ../src/common/collection.c:609 +msgid "capture date" +msgstr "opnamedatum" + +#: ../src/common/collection.c:611 ../src/libs/filtering.c:61 +msgid "capture time" +msgstr "opname moment" + +#: ../src/common/collection.c:613 ../src/libs/filtering.c:62 +msgid "import time" +msgstr "import moment" + +#: ../src/common/collection.c:615 ../src/libs/filtering.c:63 +msgid "modification time" +msgstr "wijzig moment" + +#: ../src/common/collection.c:617 ../src/libs/filtering.c:64 +msgid "export time" +msgstr "export moment" + +#: ../src/common/collection.c:619 ../src/libs/filtering.c:65 +msgid "print time" +msgstr "afdruk moment" + +#: ../src/common/collection.c:621 ../src/libs/collect.c:3586 +#: ../src/libs/filtering.c:2237 ../src/libs/filtering.c:2257 +#: ../src/libs/filters/history.c:153 ../src/libs/history.c:92 +msgid "history" +msgstr "historie" + +#: ../src/common/collection.c:623 ../src/common/colorlabels.c:341 +#: ../src/develop/lightroom.c:1607 ../src/dtgtk/thumbnail.c:1548 +#: ../src/libs/filtering.c:68 ../src/libs/filters/colors.c:301 +#: ../src/libs/filters/colors.c:312 ../src/libs/tools/colorlabels.c:93 +msgid "color label" +msgstr "kleurlabel" + +#. iso +#: ../src/common/collection.c:629 ../src/gui/preferences.c:830 +#: ../src/gui/presets.c:669 ../src/libs/camera.c:558 +#: ../src/libs/metadata_view.c:149 +msgid "ISO" +msgstr "ISO" + +#. aperture +#: ../src/common/collection.c:631 ../src/gui/preferences.c:838 +#: ../src/gui/presets.c:704 ../src/libs/camera.c:545 ../src/libs/camera.c:547 +#: ../src/libs/metadata_view.c:142 +msgid "aperture" +msgstr "diafragma" + +#: ../src/common/collection.c:637 ../src/libs/filtering.c:57 +#: ../src/libs/filters/filename.c:369 ../src/libs/metadata_view.c:128 +msgid "filename" +msgstr "bestandsnaam" + +#: ../src/common/collection.c:639 ../src/develop/lightroom.c:1598 +#: ../src/libs/geotagging.c:141 +msgid "geotagging" +msgstr "geotaggen" + +#: ../src/common/collection.c:641 ../src/libs/filters/grouping.c:167 +#: ../src/libs/tools/global_toolbox.c:394 +msgid "grouping" +msgstr "groeperen" + +#: ../src/common/collection.c:643 ../src/dtgtk/thumbnail.c:1563 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:340 +msgid "local copy" +msgstr "lokale kopie" + +#: ../src/common/collection.c:645 ../src/gui/preferences.c:806 +msgid "module" +msgstr "module" + +#: ../src/common/collection.c:647 ../src/gui/hist_dialog.c:346 +#: ../src/gui/styles_dialog.c:734 ../src/gui/styles_dialog.c:783 +#: ../src/libs/filters/module_order.c:161 ../src/libs/ioporder.c:39 +msgid "module order" +msgstr "module volgorde" + +#: ../src/common/collection.c:649 +msgid "range rating" +msgstr "bereik beoordeling" + +#: ../src/common/collection.c:651 ../src/common/ratings.c:321 +#: ../src/develop/lightroom.c:1582 ../src/libs/filtering.c:67 +#: ../src/libs/tools/ratings.c:110 +msgid "rating" +msgstr "classificatie" + +#: ../src/common/collection.c:653 +msgid "search" +msgstr "zoek" + +#: ../src/common/collection.c:1376 ../src/common/colorlabels.c:334 +#: ../src/develop/lightroom.c:889 ../src/gui/guides.c:732 +#: ../src/iop/colorzones.c:2501 ../src/iop/temperature.c:1902 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:261 +msgid "yellow" +msgstr "geel" + +#: ../src/common/collection.c:1382 ../src/common/color_vocabulary.c:339 +#: ../src/common/colorlabels.c:337 ../src/iop/colorzones.c:2505 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:264 +msgid "purple" +msgstr "paars" + +#: ../src/common/collection.c:1400 ../src/libs/collect.c:1863 +#: ../src/libs/filters/history.c:38 +msgid "auto applied" +msgstr "automatisch toegepast" + +#: ../src/common/collection.c:1406 ../src/libs/collect.c:1863 +#: ../src/libs/filters/history.c:38 +msgid "altered" +msgstr "aangepast" + +#: ../src/common/collection.c:1424 ../src/common/collection.c:1535 +#: ../src/libs/collect.c:1242 ../src/libs/collect.c:1426 +#: ../src/libs/collect.c:1452 ../src/libs/collect.c:1592 +#: ../src/libs/collect.c:2662 +msgid "not tagged" +msgstr "niet gelabeld" + +#: ../src/common/collection.c:1425 ../src/libs/collect.c:1452 +#: ../src/libs/map_locations.c:742 +msgid "tagged" +msgstr "gelabeld" + +#: ../src/common/collection.c:1426 +msgid "tagged*" +msgstr "gelabeld*" + +#. local copy +#: ../src/common/collection.c:1460 ../src/libs/collect.c:1883 +#: ../src/libs/filters/local_copy.c:38 +msgid "not copied locally" +msgstr "niet lokaal gekopieerd" + +#: ../src/common/collection.c:1465 ../src/libs/collect.c:1882 +#: ../src/libs/filters/local_copy.c:38 +msgid "copied locally" +msgstr "lokaal gekopieerd" + +#. if its undefined +#: ../src/common/collection.c:1507 ../src/common/collection.c:1619 +#: ../src/libs/collect.c:2209 ../src/libs/collect.c:2210 +msgid "unnamed" +msgstr "onbepaald" + +#: ../src/common/collection.c:1905 ../src/libs/collect.c:2013 +#: ../src/libs/filters/grouping.c:147 ../src/libs/filters/grouping.c:170 +msgid "group leaders" +msgstr "groepsleiders" + +#: ../src/common/collection.c:1909 ../src/libs/collect.c:2013 +#: ../src/libs/filters/grouping.c:150 ../src/libs/filters/grouping.c:170 +msgid "group followers" +msgstr "groep volgers" + +#: ../src/common/collection.c:2066 ../src/libs/collect.c:2100 +msgid "not defined" +msgstr "niet gedefinieerd" + +#: ../src/common/collection.c:2521 +#, c-format +msgid "<b>%d</b> image (#<b>%d</b>) selected of <b>%d</b>" +msgstr "<b>%d</b> afbeelding (#<b>%d</b>) van <b>%d</b>" + +#: ../src/common/collection.c:2528 +#, c-format +msgid "<b>%d</b> image selected of <b>%d</b>" +msgid_plural "<b>%d</b> images selected of <b>%d</b>" +msgstr[0] "<b>%d</b> afbeelding van <b>%d</b>" +msgstr[1] "<b>%d</b> afbeeldingen van <b>%d</b>" + +#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2340 +#: ../src/develop/blend_gui.c:2388 ../src/gui/guides.c:729 +#: ../src/iop/channelmixerrgb.c:4688 ../src/iop/levels.c:687 +#: ../src/iop/rgblevels.c:969 ../src/iop/rgblevels.c:1083 +msgid "gray" +msgstr "grijs" + +#: ../src/common/color_vocabulary.c:92 +msgid "Chinese" +msgstr "Chinees" + +#: ../src/common/color_vocabulary.c:93 +msgid "Thai" +msgstr "Thais" + +#: ../src/common/color_vocabulary.c:94 +msgid "Kurdish" +msgstr "Koerdisch" + +#: ../src/common/color_vocabulary.c:95 +msgid "Caucasian" +msgstr "Kaukasisch" + +#: ../src/common/color_vocabulary.c:96 +msgid "African-American" +msgstr "Afro-Amerikaans" + +#: ../src/common/color_vocabulary.c:97 +msgid "Mexican" +msgstr "Mexicaan" + +#: ../src/common/color_vocabulary.c:100 ../src/common/color_vocabulary.c:105 +#: ../src/common/color_vocabulary.c:110 ../src/common/color_vocabulary.c:115 +msgid "forearm" +msgstr "onderarm" + +#: ../src/common/color_vocabulary.c:120 ../src/common/color_vocabulary.c:125 +#: ../src/common/color_vocabulary.c:130 ../src/common/color_vocabulary.c:135 +#: ../src/common/color_vocabulary.c:140 ../src/common/color_vocabulary.c:145 +msgid "forehead" +msgstr "voorhoofd" + +#: ../src/common/color_vocabulary.c:150 ../src/common/color_vocabulary.c:155 +#: ../src/common/color_vocabulary.c:160 ../src/common/color_vocabulary.c:165 +#: ../src/common/color_vocabulary.c:170 ../src/common/color_vocabulary.c:175 +msgid "cheek" +msgstr "wang" + +#: ../src/common/color_vocabulary.c:202 +#, c-format +msgid "average %s skin tone\n" +msgstr "gemiddelde %s huidskleur\n" + +#. 0° - pinkish red +#: ../src/common/color_vocabulary.c:222 +msgid "deep purple" +msgstr "diep paars" + +#. L = 10 % +#: ../src/common/color_vocabulary.c:223 +msgid "fuchsia" +msgstr "fuchsia" + +#. L = 30 % +#: ../src/common/color_vocabulary.c:224 +msgid "medium magenta" +msgstr "middel magenta" + +#. L = 50 % +#: ../src/common/color_vocabulary.c:225 +msgid "violet pink" +msgstr "paars roze" + +#. L = 70 % +#: ../src/common/color_vocabulary.c:226 +msgid "plum violet" +msgstr "pruim paars" + +#. 24° - red +#: ../src/common/color_vocabulary.c:231 +msgid "dark red" +msgstr "donker rood" + +#: ../src/common/color_vocabulary.c:233 +msgid "crimson" +msgstr "karmozijnrood" + +#: ../src/common/color_vocabulary.c:234 +msgid "salmon" +msgstr "zalm" + +#: ../src/common/color_vocabulary.c:235 +msgid "pink" +msgstr "roze" + +#. 48° - orangy red +#: ../src/common/color_vocabulary.c:240 +msgid "maroon" +msgstr "kastanjebruin" + +#: ../src/common/color_vocabulary.c:241 +msgid "dark orange red" +msgstr "donker oranje rood" + +#: ../src/common/color_vocabulary.c:242 +msgid "orange red" +msgstr "oranje rood" + +#: ../src/common/color_vocabulary.c:243 +msgid "coral" +msgstr "koraal" + +#: ../src/common/color_vocabulary.c:244 ../src/common/color_vocabulary.c:261 +msgid "khaki" +msgstr "khaki" + +#. 72° - orange +#: ../src/common/color_vocabulary.c:249 +msgid "brown" +msgstr "bruin" + +#: ../src/common/color_vocabulary.c:250 +msgid "chocolate" +msgstr "chocolade" + +#: ../src/common/color_vocabulary.c:251 +msgid "dark gold" +msgstr "donker goud" + +#: ../src/common/color_vocabulary.c:252 +msgid "gold" +msgstr "goud" + +#: ../src/common/color_vocabulary.c:253 +msgid "sandy brown" +msgstr "zandbruin" + +#. 96° - yellow olive +#. 120° - green +#. 144° - blueish green +#: ../src/common/color_vocabulary.c:258 ../src/common/color_vocabulary.c:267 +#: ../src/common/color_vocabulary.c:276 +msgid "dark green" +msgstr "donker groen" + +#: ../src/common/color_vocabulary.c:259 +msgid "dark olive green" +msgstr "donker olijf groen" + +#: ../src/common/color_vocabulary.c:260 +msgid "olive" +msgstr "olijf" + +#: ../src/common/color_vocabulary.c:262 +msgid "beige" +msgstr "beige" + +#: ../src/common/color_vocabulary.c:268 ../src/common/color_vocabulary.c:278 +msgid "forest green" +msgstr "bos groen" + +#: ../src/common/color_vocabulary.c:269 +msgid "olive drab" +msgstr "olijf olie" + +#: ../src/common/color_vocabulary.c:270 +msgid "yellow green" +msgstr "geel groen" + +#: ../src/common/color_vocabulary.c:271 ../src/common/color_vocabulary.c:280 +msgid "pale green" +msgstr "lichtgroen" + +#: ../src/common/color_vocabulary.c:279 +msgid "lime green" +msgstr "limoen groen" + +#. 168° - greenish cyian +#: ../src/common/color_vocabulary.c:285 +msgid "dark sea green" +msgstr "donker zeegroen" + +#: ../src/common/color_vocabulary.c:286 +msgid "sea green" +msgstr "zeegroen" + +#: ../src/common/color_vocabulary.c:287 ../src/common/color_vocabulary.c:304 +msgid "teal" +msgstr "groenblauw" + +#: ../src/common/color_vocabulary.c:288 +msgid "light sea green" +msgstr "licht zeegroen" + +#: ../src/common/color_vocabulary.c:289 +msgid "turquoise" +msgstr "turkoois" + +#. 192° - cyan +#: ../src/common/color_vocabulary.c:294 +msgid "dark slate gray" +msgstr "donker leigrijs" + +#: ../src/common/color_vocabulary.c:295 +msgid "light slate gray" +msgstr "licht leigrijs" + +#: ../src/common/color_vocabulary.c:296 ../src/common/color_vocabulary.c:305 +msgid "dark cyan" +msgstr "donker cyaan" + +#: ../src/common/color_vocabulary.c:297 ../src/common/color_vocabulary.c:317 +#: ../src/iop/colorzones.c:2503 +msgid "aqua" +msgstr "aqua" + +#: ../src/common/color_vocabulary.c:298 ../src/gui/guides.c:733 +#: ../src/iop/temperature.c:1900 +msgid "cyan" +msgstr "cyaan" + +#. 216° - medium blue +#: ../src/common/color_vocabulary.c:303 +msgid "navy blue" +msgstr "marine blauw" + +#: ../src/common/color_vocabulary.c:306 ../src/common/color_vocabulary.c:316 +msgid "deep sky blue" +msgstr "diep hemelsblauw" + +#: ../src/common/color_vocabulary.c:307 +msgid "aquamarine blue" +msgstr "aquamarijn blauw" + +#. 240° - blue and 264° - bluer than blue +#. these are collapsed because CIE Lab 1976 sucks for blues +#. 288° - more blue +#: ../src/common/color_vocabulary.c:313 ../src/common/color_vocabulary.c:322 +msgid "dark blue" +msgstr "donker blauw" + +#: ../src/common/color_vocabulary.c:314 ../src/common/color_vocabulary.c:323 +msgid "medium blue" +msgstr "gemiddeld blauw" + +#: ../src/common/color_vocabulary.c:315 +msgid "azure blue" +msgstr "azuur blauw" + +#: ../src/common/color_vocabulary.c:325 +msgid "light sky blue" +msgstr "licht hemelsblauw" + +#: ../src/common/color_vocabulary.c:326 +msgid "light blue" +msgstr "licht blauw" + +#. 312° - violet +#: ../src/common/color_vocabulary.c:331 +msgid "indigo" +msgstr "indigo" + +#: ../src/common/color_vocabulary.c:332 +msgid "dark violet" +msgstr "donker paars" + +#: ../src/common/color_vocabulary.c:333 +msgid "blue violet" +msgstr "blauw paars" + +#: ../src/common/color_vocabulary.c:334 ../src/common/color_vocabulary.c:342 +msgid "violet" +msgstr "paars" + +#: ../src/common/color_vocabulary.c:335 +msgid "plum" +msgstr "pruim" + +#: ../src/common/color_vocabulary.c:340 +msgid "dark magenta" +msgstr "donker magenta" + +#: ../src/common/color_vocabulary.c:341 ../src/gui/guides.c:734 +#: ../src/iop/colorzones.c:2506 ../src/iop/temperature.c:1898 +msgid "magenta" +msgstr "magenta" + +#: ../src/common/color_vocabulary.c:343 +msgid "lavender" +msgstr "lavendel" + +#: ../src/common/color_vocabulary.c:346 +msgid "color not found" +msgstr "kleuren niet gevonden" + +#: ../src/common/colorlabels.c:309 +#, c-format +msgid "colorlabels set to %s" +msgstr "kleurlabels ingesteld op %s" + +#: ../src/common/colorlabels.c:311 +msgid "all colorlabels removed" +msgstr "alle kleurlabels verwijderd" + +#: ../src/common/colorlabels.c:332 ../src/gui/accelerators.c:188 +#: ../src/libs/image.c:660 +msgid "clear" +msgstr "wis" + +#: ../src/common/colorspaces.c:1382 ../src/common/colorspaces.c:1730 +#: ../src/iop/colorout.c:901 +msgid "export profile" +msgstr "export profiel" + +#: ../src/common/colorspaces.c:1387 ../src/common/colorspaces.c:1732 +#: ../src/views/darkroom.c:2383 +msgid "softproof profile" +msgstr "softproofprofiel" + +#: ../src/common/colorspaces.c:1397 ../src/common/colorspaces.c:1714 +msgid "system display profile" +msgstr "systeem weergave profiel" + +#: ../src/common/colorspaces.c:1402 ../src/common/colorspaces.c:1736 +msgid "system display profile (second window)" +msgstr "systeemweergaveprofiel (tweede venster)" + +#: ../src/common/colorspaces.c:1415 +msgid "sRGB (web-safe)" +msgstr "sRGB (web-veilig)" + +#: ../src/common/colorspaces.c:1435 ../src/common/colorspaces.c:1738 +msgid "Rec709 RGB" +msgstr "Rec709 RGB" + +#: ../src/common/colorspaces.c:1450 +msgid "PQ Rec2020 RGB" +msgstr "PQ Rec2020 RGB" + +#: ../src/common/colorspaces.c:1458 +msgid "HLG Rec2020 RGB" +msgstr "HLG Rec2020 RGB" + +#: ../src/common/colorspaces.c:1465 +msgid "PQ P3 RGB" +msgstr "PQ P3 RGB" + +#: ../src/common/colorspaces.c:1471 +msgid "HLG P3 RGB" +msgstr "HLG P3 RGB" + +#: ../src/common/colorspaces.c:1478 +msgid "Display P3 RGB" +msgstr "Display P3 RGB" + +#: ../src/common/colorspaces.c:1493 ../src/common/colorspaces.c:1708 +msgid "linear XYZ" +msgstr "lineair XYZ" + +#: ../src/common/colorspaces.c:1500 ../src/common/colorspaces.c:1710 +#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2016 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:293 +msgid "Lab" +msgstr "Lab" + +#: ../src/common/colorspaces.c:1508 ../src/common/colorspaces.c:1712 +msgid "linear infrared BGR" +msgstr "lineair infrarood BGR" + +#: ../src/common/colorspaces.c:1513 +msgid "BRG (for testing)" +msgstr "BRG (om uit te proberen)" + +#: ../src/common/colorspaces.c:1619 +#, c-format +msgid "" +"profile `%s' not usable as histogram profile. it has been replaced by sRGB!" +msgstr "" +"profiel `%s’ niet bruikbaar als histogramprofiel. Het is vervangen door sRGB!" + +#: ../src/common/colorspaces.c:1716 +msgid "embedded ICC profile" +msgstr "ingesloten ICC profiel" + +#: ../src/common/colorspaces.c:1718 +msgid "embedded matrix" +msgstr "ingesloten matrix" + +#: ../src/common/colorspaces.c:1720 +msgid "standard color matrix" +msgstr "standaard kleuren matrix" + +#: ../src/common/colorspaces.c:1722 +msgid "enhanced color matrix" +msgstr "verbeterde kleuren matrix" + +#: ../src/common/colorspaces.c:1724 +msgid "vendor color matrix" +msgstr "leverancier kleuren matrix" + +#: ../src/common/colorspaces.c:1726 +msgid "alternate color matrix" +msgstr "alternatieve kleuren matrix" + +#: ../src/common/colorspaces.c:1728 +msgid "BRG (experimental)" +msgstr "BRG (experimenteel)" + +#: ../src/common/colorspaces.c:1742 +msgid "PQ Rec2020" +msgstr "PQ Rec2020" + +#: ../src/common/colorspaces.c:1744 +msgid "HLG Rec2020" +msgstr "HLG Rec2020" + +#: ../src/common/colorspaces.c:1746 +msgid "PQ P3" +msgstr "PQ P3" + +#: ../src/common/colorspaces.c:1748 +msgid "HLG P3" +msgstr "HLG P3" + +#: ../src/common/cups_print.c:420 +#, c-format +msgid "file `%s' to print not found for image %d on `%s'" +msgstr "af te drukken bestand `%s' niet gevonden voor afbeelding %d op `%s'" + +#: ../src/common/cups_print.c:439 +msgid "failed to create temporary file for printing options" +msgstr "aanmaak tijdelijk bestand voor afdrukopties mislukt" + +#: ../src/common/cups_print.c:508 +#, c-format +msgid "printing on `%s' cancelled" +msgstr "afdrukken op `%s' geannuleerd" + +#: ../src/common/cups_print.c:572 +#, c-format +msgid "error while printing `%s' on `%s'" +msgstr "fout bij het afdrukken `%s' on `%s'" + +#: ../src/common/cups_print.c:574 +#, c-format +msgid "printing `%s' on `%s'" +msgstr "afdrukken `%s' on `%s'" + +#: ../src/common/darktable.c:375 +#, c-format +msgid "found strange path `%s'" +msgstr "onlogisch pad `%s' gevonden" + +#: ../src/common/darktable.c:390 +#, c-format +msgid "error loading directory `%s'" +msgstr "fout bij het inladen van map `%s'" + +#: ../src/common/darktable.c:414 +#, c-format +msgid "file `%s' has unknown format!" +msgstr "bestand `%s' heeft een onbekend formaat!" + +#: ../src/common/darktable.c:427 ../src/control/jobs/control_jobs.c:2121 +#: ../src/control/jobs/control_jobs.c:2180 +#, c-format +msgid "error loading file `%s'" +msgstr "fout bij het inladen van bestand `%s'" + +#: ../src/common/darktable.c:1650 +msgid "configuration information" +msgstr "configuratie informatie" + +#: ../src/common/darktable.c:1652 +msgid "_show this information again" +msgstr "toon deze informatie opnieuw" + +#: ../src/common/darktable.c:1652 +msgid "_understood" +msgstr "begrepen" + +#: ../src/common/darktable.c:2106 +msgid "" +"the RCD demosaicer has been defined as default instead of PPG because of " +"better quality and performance." +msgstr "" +"de RCD methode is als standaard ingesteld in plaats van PPG vanwege " +"verbeterde kwaliteit en prestatie." + +#: ../src/common/darktable.c:2108 +msgid "see preferences/darkroom/demosaicing for zoomed out darkroom mode" +msgstr "" +"zie voorkeuren/ontwikkelen/demozaïek voor uitgezoomde ontwikkelen modus" + +#: ../src/common/darktable.c:2114 +msgid "" +"the user interface and the underlying internals for tuning darktable " +"performance have changed." +msgstr "" +"de gebruikers interface en de onderliggende binnenwerk, voor het afstemmen " +"van de Darktable prestatie, zijn aangepast." + +#: ../src/common/darktable.c:2116 +msgid "" +"you won't find headroom and friends any longer, instead in preferences/" +"processing use:" +msgstr "" +"hoofdkamer en vrienden vindt je niet meer terug, inplaats van voorkeuren/" +"verwerking gebruik:" + +#: ../src/common/darktable.c:2118 +msgid "1) darktable resources" +msgstr "1) Darktable bronnen" + +#: ../src/common/darktable.c:2120 +msgid "2) tune OpenCL performance" +msgstr "2) instellen OpenCL prestatie" + +#: ../src/common/darktable.c:2127 +msgid "" +"some global config parameters relevant for OpenCL performance are not used " +"any longer." +msgstr "" +"sommige globale parameters voor OpenCL prestatie worden niet meer toegepast." + +#: ../src/common/darktable.c:2129 +msgid "" +"instead you will find 'per device' data in 'cldevice_v5_canonical-name'. " +"content is:" +msgstr "" +"in plaats daarvan vind je apparaat-data in 'cl_device_v5_conanical-name'. " +"inhoud is:" + +#: ../src/common/darktable.c:2131 ../src/common/darktable.c:2150 +#: ../src/common/darktable.c:2165 +msgid "" +" 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" +msgstr "" +" 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" + +#: ../src/common/darktable.c:2133 ../src/common/darktable.c:2152 +msgid "you may tune as before except 'magic'" +msgstr "je kan afstellen zoals hiervoor behalve 'magisch'" + +#: ../src/common/darktable.c:2139 +msgid "" +"your OpenCL compiler settings for all devices have been reset to default." +msgstr "" +"al je OpenCL vertaler instellingen zijn teruggezet naar standaard waarden." + +#: ../src/common/darktable.c:2146 +msgid "" +"OpenCL global config parameters 'per device' data has been recreated with an " +"updated name." +msgstr "" +"OpenCL globale 'per device'-parameters zijn opnieuw opgeslagen onder andere " +"naam." + +#: ../src/common/darktable.c:2148 ../src/common/darktable.c:2163 +msgid "" +"you will find 'per device' data in 'cldevice_v5_canonical-name'. content is:" +msgstr "" +"apparaat-data is te vinden in 'cl_device_v5_conanical-name'. inhoud is:" + +#: ../src/common/darktable.c:2154 +msgid "" +"If you're using device names in 'opencl_device_priority' you should update " +"them to the new names." +msgstr "" +"Als je device namen gebruikt in 'opencl_device_priority' moet je die " +"aanpassen naar de nieuwe namen." + +#: ../src/common/darktable.c:2161 +msgid "" +"OpenCL 'per device' config data have been automatically extended by 'unified-" +"fraction'." +msgstr "OpenCL 'per device' configuratie data automatisch uitgebreid." + +#: ../src/common/darktable.c:2172 +msgid "" +"OpenCL 'per device' compiler settings might have been updated.\n" +"\n" +msgstr "" +"OpenCL 'per device' instellingen zijn wellicht aangepast.\n" +"\n" + +#: ../src/common/database.c:3350 +#, c-format +msgid "" +"\n" +" Sorry, darktable could not be started (database is locked)\n" +"\n" +" How to solve this problem?\n" +"\n" +" 1 - If another darktable instance is already open, \n" +" click cancel and either use that instance or close it before " +"attempting to rerun darktable \n" +" (process ID <i><b>%d</b></i> created the database locks)\n" +"\n" +" 2 - If you can't find a running instance of darktable, try restarting your " +"session or your computer. \n" +" This will close all running programs and hopefully close the databases " +"correctly. \n" +"\n" +" 3 - If you have done this or are certain that no other instances of " +"darktable are running, \n" +" this probably means that the last instance was ended abnormally. \n" +" Click on the \"delete database lock files\" button to remove the files " +"<i>data.db.lock</i> and <i>library.db.lock</i>. \n" +"\n" +"\n" +" <i><u>Caution!</u> Do not delete these files without first undertaking " +"the above checks, \n" +" otherwise you risk generating serious inconsistencies in your database." +"</i>\n" +msgstr "" +"\n" +"Sorry, darktable kan niet worden gestart (database is vergrendeld)\n" +"\n" +" Hoe los je dit probleem op?\n" +"\n" +" 1 - Als er al een andere darktable-instantie is geopend,\n" +" klik op annuleren en gebruik die instantie of sluit deze voordat u " +"probeert darktable opnieuw uit te voeren\n" +" (proces-ID <i><b>%d</b></i> heeft de databasevergrendelingen " +"gemaakt)\n" +"\n" +" 2 - Als u geen actief exemplaar van darktable kunt vinden, probeer dan uw " +"sessie of uw computer opnieuw te starten.\n" +" Hiermee worden alle actieve programma’s gesloten en hopelijk worden " +"de databases correct gesloten.\n" +"\n" +" 3 - Als je dit hebt gedaan of zeker weet dat er geen andere exemplaren " +"van darktable actief zijn,\n" +" betekent dit waarschijnlijk dat de laatste instantie abnormaal is " +"beëindigd.\n" +" Klik op de knop “verwijder databasevergrendelingsbestanden” om de " +"bestanden <i>data.db.lock</i> en <i>library.db.lock</i> te verwijderen.\n" +"\n" +"\n" +" <i><u>Let op!</u> Verwijder deze bestanden niet zonder eerst de " +"bovenstaande controles uit te voeren,\n" +" anders kan dit tot ernstige inconsistenties in uw database leiden. </" +"i>\n" + +#. clang-format on +#: ../src/common/database.c:3371 +msgid "error starting darktable" +msgstr "fout bij het starten van darktable" + +#: ../src/common/database.c:3372 +msgid "_delete database lock files" +msgstr "verwijder _databasevergrendelingsbestanden" + +#: ../src/common/database.c:3378 +msgid "are you sure?" +msgstr "weet u het zeker?" + +#: ../src/common/database.c:3379 +msgid "" +"\n" +"do you really want to delete the lock files?\n" +msgstr "" +"\n" +"wil je de lock-bestanden echt verwijderen?\n" + +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2597 +msgid "_no" +msgstr "_Nee" + +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2596 +msgid "_yes" +msgstr "Ja" + +#: ../src/common/database.c:3395 +msgid "done" +msgstr "gereed" + +#: ../src/common/database.c:3396 +msgid "" +"\n" +"successfully deleted the lock files.\n" +"you can now restart darktable\n" +msgstr "" +"\n" +"met succes de lock-bestanden verwijderd.\n" +"je kunt nu darktable herstarten\n" + +#: ../src/common/database.c:3397 ../src/common/database.c:3404 +#: ../src/gui/accelerators.c:2580 ../src/gui/accelerators.c:2662 +#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:566 +msgid "_ok" +msgstr "_ok" + +#: ../src/common/database.c:3400 +msgid "error" +msgstr "fout" + +#: ../src/common/database.c:3401 +#, c-format +msgid "" +"\n" +"at least one file could not be removed.\n" +"you may try to manually delete the files <i>data.db.lock</i> and <i>library." +"db.lock</i>\n" +"in folder <a href=\"file:///%s\">%s</a>.\n" +msgstr "" +"\n" +"ten minste één bestand kan niet worden verwijderd.\n" +"u kunt proberen om de bestanden <i>data.db.lock</i> en <i>library.db.lock</" +"i> handmatig te verwijderen\n" +"in map <a href=“file:///%s”>%s</a>.\n" + +#: ../src/common/database.c:3518 +#, c-format +msgid "" +"the database lock file contains a pid that seems to be alive in your system: " +"%d" +msgstr "" +"het database lock-bestand bevat een PID die blijkbaar nog actief in uw " +"systeem is:%d" + +#: ../src/common/database.c:3525 +#, c-format +msgid "the database lock file seems to be empty" +msgstr "het database lock-bestand lijkt leeg te zijn" + +#: ../src/common/database.c:3535 +#, c-format +msgid "error opening the database lock file for reading: %s" +msgstr "inlezen van het database bestand geeft een foutmelding: %s" + +#: ../src/common/database.c:3605 +#, c-format +msgid "" +"the database schema version of\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"is too new for this build of darktable (this means the database was created " +"or upgraded by a newer darktable version)\n" +msgstr "" +"de database versie van\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"is te nieuw voor deze versie van darktable (deze database is dus gemaakt of " +"bijgewerkt door een nieuwere versie van darktable)\n" + +#: ../src/common/database.c:3612 +msgid "darktable - too new db version" +msgstr "darktable - db versie te nieuw" + +#: ../src/common/database.c:3613 +msgid "_quit darktable" +msgstr "stop darktable" + +#. the database has to be upgraded, let's ask user +#: ../src/common/database.c:3628 +#, c-format +msgid "" +"the database schema has to be upgraded for\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"this might take a long time in case of a large database\n" +"\n" +"do you want to proceed or quit now to do a backup\n" +msgstr "" +"het databaseschema moet worden geüpgraded voor\n" +"\n" +"<span style=‘italic’>%s</span>\n" +"\n" +"dit kan lang duren in het geval van een grote database\n" +"\n" +"wilt u doorgaan of nu stoppen om een back-up te maken\n" + +#: ../src/common/database.c:3636 +msgid "darktable - schema migration" +msgstr "darktable - schema migratie" + +#: ../src/common/database.c:3637 ../src/common/database.c:3959 +#: ../src/common/database.c:3974 ../src/common/database.c:4142 +#: ../src/common/database.c:4157 +msgid "_close darktable" +msgstr "darktable afsluiten" + +#: ../src/common/database.c:3637 +msgid "_upgrade database" +msgstr "database _upgrade" + +#: ../src/common/database.c:3939 ../src/common/database.c:4122 +#, c-format +msgid "" +"quick_check said:\n" +"%s \n" +msgstr "" +"snelle controle zegt:\n" +"%s \n" + +#: ../src/common/database.c:3956 ../src/common/database.c:3971 +#: ../src/common/database.c:4139 ../src/common/database.c:4154 +msgid "darktable - error opening database" +msgstr "darktable - fout bij openen database" + +#: ../src/common/database.c:3960 ../src/common/database.c:4143 +msgid "_attempt restore" +msgstr "probeer te herstellen" + +#: ../src/common/database.c:3961 ../src/common/database.c:3975 +#: ../src/common/database.c:4144 ../src/common/database.c:4158 +msgid "_delete database" +msgstr "verwijder _database" + +#: ../src/common/database.c:3964 ../src/common/database.c:4147 +msgid "" +"do you want to close darktable now to manually restore\n" +"the database from a backup, attempt an automatic restore\n" +"from the most recent snapshot or delete the corrupted database\n" +"and start with a new one?" +msgstr "" +"wil je darktable nu sluiten om handmatig de database \n" +"vanaf een back-up te herstellen, proberen om automatisch te herstellen\n" +"uit de meest recente momentopname of de beschadigde database verwijderen\n" +"en met een nieuwe beginnen?" + +#: ../src/common/database.c:3978 ../src/common/database.c:4161 +msgid "" +"do you want to close darktable now to manually restore\n" +"the database from a backup or delete the corrupted database\n" +"and start with a new one?" +msgstr "" +"wil je darktable nu sluiten om handmatig de database\n" +" te herstellen uit een back-up of de beschadigde database te verwijderen\n" +"en met een nieuwe beginnen?" + +#: ../src/common/database.c:3985 ../src/common/database.c:4166 +#, c-format +msgid "" +"an error has occurred while trying to open the database from\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"it seems that the database is corrupted.\n" +"%s%s" +msgstr "" +"een fout heeft zich voorgedaan tijdens het openen van de database van\n" +"\n" +"<span style=\"italic\">%s</span>\n" +"\n" +"het lijkt erop dat de database is beschadigd. \n" +"%s%s" + +#: ../src/common/eigf.h:288 +msgid "" +"fast exposure independent guided filter failed to allocate memory, check " +"your RAM settings" +msgstr "" +"snelle belichting onafhankelijk geleide filter kon geen geheugen toewijzen, " +"controleer uw RAM instellingen" + +#: ../src/common/exif.cc:5482 +#, c-format +msgid "cannot read XMP file '%s': '%s'" +msgstr "kan xmp-bestand niet lezen ‘%s’: ‘%s’" + +#: ../src/common/exif.cc:5540 +#, c-format +msgid "cannot write XMP file '%s': '%s'" +msgstr "kan XMP-bestand niet opslaan ‘%s’: ‘%s’" + +#: ../src/common/fast_guided_filter.h:316 +msgid "fast guided filter failed to allocate memory, check your RAM settings" +msgstr "" +"snelle geleide filter kon geen geheugen toewijzen, controleer uw RAM-" +"instellingen" + +#: ../src/common/film.c:356 +msgid "do you want to remove this empty directory?" +msgid_plural "do you want to remove these empty directories?" +msgstr[0] "wilt u deze lege map verwijderen?" +msgstr[1] "wilt u deze lege mappen verwijderen?" + +#: ../src/common/film.c:363 +msgid "remove empty directory?" +msgid_plural "remove empty directories?" +msgstr[0] "lege map verplaatsen?" +msgstr[1] "lege mappen verplaatsen?" + +#: ../src/common/film.c:383 ../src/gui/preferences.c:814 +#: ../src/gui/styles_dialog.c:556 ../src/libs/geotagging.c:830 +#: ../src/libs/import.c:1560 +msgid "name" +msgstr "bestandsnaam" + +#: ../src/common/film.c:492 +msgid "" +"cannot remove film roll having local copies with non accessible originals" +msgstr "" +"verwijderen van film rol is niet mogelijk wanneer lokale kopieën bestaan " +"waarvan het origineel niet toegankelijk is" + +#: ../src/common/history.c:876 +msgid "you need to copy history from an image before you paste it onto another" +msgstr "" +"kopieer eerst de afbeeldingshistorie voordat je het op een andere toepast" + +#: ../src/common/image.c:333 +msgid "orphaned image" +msgstr "verweesde afbeelding" + +#: ../src/common/image.c:629 +#, c-format +msgid "geo-location undone for %d image" +msgid_plural "geo-location undone for %d images" +msgstr[0] "geolocatie ongedaan gemaakt voor %d afbeelding" +msgstr[1] "geolocatie ongedaan gemaakt voor %d afbeeldingen" + +#: ../src/common/image.c:631 +#, c-format +msgid "geo-location re-applied to %d image" +msgid_plural "geo-location re-applied to %d images" +msgstr[0] "geolocatie opnieuw toegepast op %d afbeelding" +msgstr[1] "geolocatie opnieuw toegepast op %d afbeeldingen" + +#: ../src/common/image.c:654 +#, c-format +msgid "date/time undone for %d image" +msgid_plural "date/time undone for %d images" +msgstr[0] "datum / tijd ongedaan gemaakt voor %d afbeelding" +msgstr[1] "datum / tijd ongedaan gemaakt voor %d afbeeldingen" + +#: ../src/common/image.c:656 +#, c-format +msgid "date/time re-applied to %d image" +msgid_plural "date/time re-applied to %d images" +msgstr[0] "datum / tijd opnieuw toegepast op %d afbeelding" +msgstr[1] "datum / tijd opnieuw toegepast op %d afbeeldingen" + +#: ../src/common/image.c:2260 +#, c-format +msgid "cannot access local copy `%s'" +msgstr "geen toegang tot lokale kopie `%s'" + +#: ../src/common/image.c:2267 +#, c-format +msgid "cannot write local copy `%s'" +msgstr "kan geen lokale kopie `%s' schrijven" + +#: ../src/common/image.c:2274 +#, c-format +msgid "error moving local copy `%s' -> `%s'" +msgstr "fout bij het verplaatsen van lokale kopie `%s' -> `%s'" + +#: ../src/common/image.c:2291 +#, c-format +msgid "error moving `%s': file not found" +msgstr "fout bij het verplaatsen `%s': bestand niet gevonden" + +#: ../src/common/image.c:2301 +#, c-format +msgid "error moving `%s' -> `%s': file exists" +msgstr "fout bij het verplaatsen `%s' -> `%s': bestand bestaan al" + +#: ../src/common/image.c:2305 +#, c-format +msgid "error moving `%s' -> `%s'" +msgstr "fout bij het verplaatsen `%s' -> `%s'" + +#: ../src/common/image.c:2634 +msgid "cannot create local copy when the original file is not accessible." +msgstr "aanmaak lokale kopie lukt alleen als het origineel toegankelijk is." + +#: ../src/common/image.c:2648 +msgid "cannot create local copy." +msgstr "aanmaak lokale kopie niet mogelijk." + +#: ../src/common/image.c:2728 ../src/control/jobs/control_jobs.c:777 +msgid "cannot remove local copy when the original file is not accessible." +msgstr "" +"verwijderen van lokale kopie is niet mogelijk wanneer het origineel niet " +"toegankelijk is." + +#: ../src/common/image.c:2901 +#, c-format +msgid "%d local copy has been synchronized" +msgid_plural "%d local copies have been synchronized" +msgstr[0] "%d lokale kopie is gesynchroniseerd" +msgstr[1] "%d lokale kopieën zijn gesynchroniseerd" + +#: ../src/common/image.c:3102 +msgid "<b>WARNING</b>: camera is missing samples!" +msgstr "<b>WAARSCHUWING</b> : camera mist stalen!" + +#: ../src/common/image.c:3103 +msgid "" +"You must provide samples in <a href='https://raw.pixls.us/'>https://raw." +"pixls.us/</a>" +msgstr "" +"Je moet voorbeelden aanleveren in <a href='https://raw.pixls.us/'>https://" +"raw.pixls.us/</a>" + +#: ../src/common/image.c:3104 +#, c-format +msgid "" +"for `%s' `%s'\n" +"in as many format/compression/bit depths as possible" +msgstr "" +"voor `%s' `%s'\n" +"in zoveel mogelijk formaten/compressie/bitdieptes" + +#: ../src/common/image.c:3107 +msgid "or the <b>RAW won't be readable</b> in next version." +msgstr "of de <b>RAW is niet leesbaar</b> in de volgende versie." + +#: ../src/common/image.h:217 ../src/common/ratings.c:283 +#: ../src/imageio/format/avif.c:114 ../src/libs/history.c:843 +#: ../src/libs/snapshots.c:837 +msgid "unknown" +msgstr "onbekend" + +#. EMPTY_FIELD +#: ../src/common/image.h:218 ../src/imageio/format/tiff.c:831 +msgid "TIFF" +msgstr "TIFF" + +#: ../src/common/image.h:219 ../src/imageio/format/png.c:599 +msgid "PNG" +msgstr "PNG" + +#: ../src/common/image.h:220 +msgid "JPEG 2000" +msgstr "JPEG 2000" + +#: ../src/common/image.h:221 +msgid "JPEG" +msgstr "JPEG" + +#: ../src/common/image.h:222 +msgid "EXR" +msgstr "EXR" + +#: ../src/common/image.h:223 +msgid "RGBE" +msgstr "RGBE" + +#: ../src/common/image.h:224 ../src/imageio/format/pfm.c:120 +msgid "PFM" +msgstr "PFM" + +#: ../src/common/image.h:225 +msgid "GraphicsMagick" +msgstr "GraphicsMagick" + +#: ../src/common/image.h:226 +msgid "RawSpeed" +msgstr "RawSpeed" + +#: ../src/common/image.h:227 +msgid "Netpbm" +msgstr "Netpbm" + +#: ../src/common/image.h:228 ../src/imageio/format/avif.c:728 +msgid "AVIF" +msgstr "AVIF" + +#: ../src/common/image.h:229 +msgid "ImageMagick" +msgstr "ImageMagick" + +#: ../src/common/image.h:230 +msgid "HEIF" +msgstr "HEIF" + +#: ../src/common/image.h:231 +msgid "LibRaw" +msgstr "LibRaw" + +#: ../src/common/image.h:232 ../src/imageio/format/webp.c:380 +msgid "WebP" +msgstr "WebP" + +#: ../src/common/image.h:233 ../src/imageio/format/jxl.c:482 +msgid "JPEG XL" +msgstr "JPEG XL" + +#: ../src/common/image.h:234 +msgid "QOI" +msgstr "QOI" + +#: ../src/common/imagebuf.c:132 +msgid "insufficient memory" +msgstr "onvoldoende geheugen" + +#: ../src/common/imagebuf.c:133 +msgid "" +"this module was unable to allocate\n" +"all of the memory required to process\n" +"the image. some or all processing\n" +"has been skipped." +msgstr "" +"deze module kon niet al het geheugen\n" +"gebruiken dat nodig was om de\n" +"afbeelding te bewerken. De\n" +"bewerking is niet (volledig) uitgevoerd." + +#: ../src/common/import_session.c:308 +msgid "" +"couldn't expand to a unique filename for session, please check your import " +"session settings." +msgstr "" +"uitbreiding naar unieke bestandsnaam voor deze sessie is mislukt, controleer " +"uw importeer-instellingen." + +#: ../src/common/import_session.c:401 +msgid "requested session path not available. device not mounted?" +msgstr "aangevraagd sessiepad niet beschikbaar. apparaat niet gekoppeld?" + +#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:195 +msgid "legacy" +msgstr "erfenis" + +#: ../src/common/iop_order.c:61 +msgid "v3.0 RAW" +msgstr "v3.0 RAW" + +#: ../src/common/iop_order.c:62 +msgid "v3.0 JPEG" +msgstr "v3.0 JPEG" + +#: ../src/common/iop_profile.c:1207 +#, c-format +msgid "" +"darktable loads %s from\n" +"<b>%s</b>\n" +"or, if this directory does not exist, from\n" +"<b>%s</b>" +msgstr "" +"darktable laadt %s van\n" +"<b>%s</b>\n" +"of, als die map niet bestaat, van\n" +"<b>%s</b>" + +#. clang-format off +#: ../src/common/metadata.c:46 +msgid "creator" +msgstr "auteur" + +#: ../src/common/metadata.c:47 +msgid "publisher" +msgstr "uitgever" + +#. title +#: ../src/common/metadata.c:48 ../src/imageio/format/pdf.c:574 +#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:219 +#: ../src/imageio/storage/gallery.c:222 ../src/imageio/storage/latex.c:206 +#: ../src/imageio/storage/piwigo.c:1091 ../src/libs/filtering.c:69 +msgid "title" +msgstr "titel" + +#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:563 +#: ../src/libs/filtering.c:70 +msgid "description" +msgstr "omschrijving" + +#: ../src/common/metadata.c:50 +msgid "rights" +msgstr "rechten" + +#: ../src/common/metadata.c:51 +msgid "notes" +msgstr "notities" + +#: ../src/common/metadata.c:52 +msgid "version name" +msgstr "versie naam" + +#: ../src/common/metadata.c:53 ../src/libs/live_view.c:319 +#: ../src/libs/metadata_view.c:126 +msgid "image id" +msgstr "afbeeldings-id" + +#: ../src/common/mipmap_cache.c:1070 ../src/imageio/imageio.c:799 +#, c-format +msgid "image `%s' is not available!" +msgstr "afbeelding `%s' is niet beschikbaar!" + +#: ../src/common/noiseprofiles.c:26 +msgid "generic poissonian" +msgstr "generic poissonian" + +#: ../src/common/noiseprofiles.c:61 +#, c-format +msgid "noiseprofile file `%s' is not valid" +msgstr "ruisprofiel bestand `%s' is ongeldig" + +#: ../src/common/opencl.c:1165 +msgid "no working OpenCL library found" +msgstr "geen werkende OpenCL software gevonden" + +#: ../src/common/opencl.c:1185 +msgid "" +"platform detection failed. some possible causes:\n" +" - OpenCL ICD (ocl-icd) missing,\n" +" - previous OpenCL errors leading to blocked devices,\n" +" - power management problems,\n" +" - buggy drivers,\n" +" - no OpenCL driver installed." +msgstr "" +"platform detectie mislukt. Mogelijke oorzaken:\n" +" - OpenCL ICD (ocl-icd) ontbreekt,\n" +" - eerdere OpenCL fouten hebben geleid tot blokkade,\n" +" - energie management problemen,\n" +" - fouten in stuurprogramma's,\n" +" - geen OpenCL stuurprogramma geïnstalleerd." + +#: ../src/common/opencl.c:1277 +msgid "no devices found for unknown platform" +msgstr "geen 'device' gevonden voor onbekend platform" + +#: ../src/common/opencl.c:1323 +msgid "not enough memory for OpenCL devices" +msgstr "onvoldoende geheugen voor OpenCL devices" + +#: ../src/common/opencl.c:1358 +msgid "no OpenCL devices found" +msgstr "geen OpenCL device gevonden" + +#: ../src/common/opencl.c:1401 +msgid "no suitable OpenCL devices found" +msgstr "geen geschikt OpenCL device gevonden" + +#: ../src/common/opencl.c:1422 +#, c-format +msgid "" +"OpenCL initializing problem:\n" +"%s" +msgstr "" +"OpenCL probleem bij initialiseren:\n" +"%s" + +#: ../src/common/opencl.c:1454 +msgid "OpenCL scheduling profile set to default, setup has changed" +msgstr "OpenCL planningsprofiel aangepast naar de standaardwaarde" + +#: ../src/common/opencl.c:2283 +#, c-format +msgid "building OpenCL program %s for %s" +msgstr "creëer OpenCL programma %s voor %s" + +#: ../src/common/pdf.h:88 ../src/iop/lens.cc:4071 +#: ../src/libs/filters/focal.c:74 ../src/libs/print_settings.c:81 +msgid "mm" +msgstr "mm" + +#: ../src/common/pdf.h:89 ../src/libs/export.c:555 ../src/libs/export.c:1241 +#: ../src/libs/print_settings.c:81 +msgid "cm" +msgstr "cm" + +#: ../src/common/pdf.h:90 ../src/libs/print_settings.c:81 +msgid "inch" +msgstr "inch" + +#: ../src/common/pdf.h:91 +msgid "\"" +msgstr "\"" + +#: ../src/common/pdf.h:104 ../src/iop/borders.c:971 +msgid "A4" +msgstr "A4" + +#: ../src/common/pdf.h:105 +msgid "A3" +msgstr "A3" + +#: ../src/common/pdf.h:106 +msgid "Letter" +msgstr "Letter" + +#: ../src/common/pdf.h:107 +msgid "Legal" +msgstr "Legal" + +#: ../src/common/pwstorage/pwstorage.c:85 +msgid "GNOME Keyring backend is no longer supported. configure a different one" +msgstr "" +"GNOME Keyring backend wordt niet meer ondersteund, configureer een andere" + +#: ../src/common/ratings.c:172 +#, c-format +msgid "rejecting %d image" +msgid_plural "rejecting %d images" +msgstr[0] "%d afbeelding afwijzen" +msgstr[1] "%d afbeeldingen afwijzen" + +#: ../src/common/ratings.c:174 +#, c-format +msgid "applying rating %d to %d image" +msgid_plural "applying rating %d to %d images" +msgstr[0] "classificatie %d ster van %d afbeelding" +msgstr[1] "classificatie %d sterren van %d afbeeldingen" + +#: ../src/common/ratings.c:221 +msgid "no images selected to apply rating" +msgstr "er zijn geen afbeeldingen geselecteerd om te classificeren" + +#: ../src/common/ratings.c:274 ../src/libs/metadata_view.c:355 +msgid "image rejected" +msgstr "afbeelding afgekeurd" + +#: ../src/common/ratings.c:276 +msgid "image rated to 0 star" +msgstr "afbeelding heeft 0 sterren" + +#: ../src/common/ratings.c:278 +#, c-format +msgid "image rated to %s" +msgstr "afbeelding gewaardeerd naar %s" + +#: ../src/common/ratings.c:305 ../src/views/lighttable.c:766 +msgid "select" +msgstr "selecteren" + +#: ../src/common/ratings.c:306 +msgid "upgrade" +msgstr "upgraden" + +#: ../src/common/ratings.c:307 +msgid "downgrade" +msgstr "downgraden" + +#: ../src/common/ratings.c:311 +msgid "zero" +msgstr "zero" + +#: ../src/common/ratings.c:312 ../src/libs/filters/rating_range.c:304 +msgid "one" +msgstr "een" + +#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:305 +msgid "two" +msgstr "twee" + +#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:306 +msgid "three" +msgstr "drie" + +#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:307 +msgid "four" +msgstr "vier" + +#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:308 +msgid "five" +msgstr "vijf" + +#: ../src/common/ratings.c:317 +msgid "reject" +msgstr "afwijzen" + +#: ../src/common/styles.c:243 +#, c-format +msgid "style with name '%s' already exists" +msgstr "naam stijl '%s' bestaat al" + +#: ../src/common/styles.c:270 ../src/common/styles.c:1783 +#: ../src/libs/styles.c:54 +msgid "styles" +msgstr "stijlen" + +#: ../src/common/styles.c:548 ../src/gui/styles_dialog.c:239 +#, c-format +msgid "style named '%s' successfully created" +msgstr "aanmaak profielstijl '%s' is gelukt" + +#: ../src/common/styles.c:688 ../src/common/styles.c:718 +#: ../src/common/styles.c:758 ../src/dtgtk/culling.c:1066 +msgid "no image selected!" +msgstr "er is geen afbeelding geselecteerd!" + +#: ../src/common/styles.c:692 +#, c-format +msgid "style %s successfully applied!" +msgstr "stijl %s is succesvol toegepast!" + +#: ../src/common/styles.c:708 +msgid "no images nor styles selected!" +msgstr "geen afbeeldingen of stijlen geselecteerd!" + +#: ../src/common/styles.c:713 +msgid "no styles selected!" +msgstr "geen stijl geselecteerd!" + +#: ../src/common/styles.c:743 +msgid "style successfully applied!" +msgid_plural "styles successfully applied!" +msgstr[0] "stijl succesvol toegepast!" +msgstr[1] "stijlen succesvol toegepast!" + +#: ../src/common/styles.c:838 +#, c-format +msgid "module `%s' version mismatch: %d != %d" +msgstr "module `%s' versie komt niet overeen: %d != %d" + +#: ../src/common/styles.c:1125 +#, c-format +msgid "applied style `%s' on current image" +msgstr "stijl '%s\" is toegepast op de huidige afbeelding" + +#: ../src/common/styles.c:1383 +#, c-format +msgid "failed to overwrite style file for %s" +msgstr "overschrijven stijlbestand voor %s mislukt" + +#: ../src/common/styles.c:1389 +#, c-format +msgid "style file for %s exists" +msgstr "stijl bestand '%s' bestaat al" + +#: ../src/common/styles.c:1674 +#, c-format +msgid "style %s was successfully imported" +msgstr "stijl '%s' is geïmporteerd" + +#. Failed to open file, clean up. +#: ../src/common/styles.c:1718 +#, c-format +msgid "could not read file `%s'" +msgstr "kon bestand `%s’ niet lezen" + +#: ../src/common/utility.c:505 +msgid "above sea level" +msgstr "boven zeeniveau" + +#: ../src/common/utility.c:506 +msgid "below sea level" +msgstr "beneden zeeniveau" + +#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:907 +msgid "m" +msgstr "m" + +#: ../src/common/variables.c:712 ../src/develop/imageop_gui.c:210 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "yes" +msgstr "ja" + +#. Column 1 - "make" of the camera. +#. * Column 2 - "model" (use the "make" and "model" as provided by DCRaw). +#. * Column 3 - WB name. +#. * Column 4 - Fine tuning. MUST be in increasing order. 0 for no fine tuning. +#. * It is enough to give only the extreme values, the other values +#. * will be interpolated. +#. * Column 5 - Channel multipliers. +#. * +#. * Minolta's ALPHA and MAXXUM models are treated as the Dynax model. +#. * +#. * WB name is standardized to one of the following: +#. "Sunlight" and other variation should be switched to this: +#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:320 +msgid "daylight" +msgstr "daglicht" + +#. Probably same as above: +#: ../src/common/wb_presets.c:44 +msgid "direct sunlight" +msgstr "direct zonlicht" + +#: ../src/common/wb_presets.c:45 +msgid "cloudy" +msgstr "bewolkt" + +#. "Shadows" should be switched to this: +#: ../src/common/wb_presets.c:47 +msgid "shade" +msgstr "schaduw" + +#: ../src/common/wb_presets.c:48 +msgid "incandescent" +msgstr "gloeilamp" + +#: ../src/common/wb_presets.c:49 +msgid "incandescent warm" +msgstr "gloeilamp warm" + +#. Same as "Incandescent": +#: ../src/common/wb_presets.c:51 +msgid "tungsten" +msgstr "kunstlicht" + +#: ../src/common/wb_presets.c:52 +msgid "fluorescent" +msgstr "tl-licht" + +#. In Canon cameras and some newer Nikon cameras: +#: ../src/common/wb_presets.c:54 +msgid "fluorescent high" +msgstr "hoog tl-licht" + +#: ../src/common/wb_presets.c:55 +msgid "cool white fluorescent" +msgstr "koud wit tl-licht" + +#: ../src/common/wb_presets.c:56 +msgid "warm white fluorescent" +msgstr "warm wit tl-licht" + +#: ../src/common/wb_presets.c:57 +msgid "daylight fluorescent" +msgstr "daglicht tl-licht" + +#: ../src/common/wb_presets.c:58 +msgid "neutral fluorescent" +msgstr "neutraal tl-licht" + +#: ../src/common/wb_presets.c:59 +msgid "white fluorescent" +msgstr "wit tl-licht" + +#. In some newer Nikon cameras: +#: ../src/common/wb_presets.c:61 +msgid "sodium-vapor fluorescent" +msgstr "natriumdamp tl-licht" + +#: ../src/common/wb_presets.c:62 +msgid "day white fluorescent" +msgstr "wit daglicht tl-licht" + +#: ../src/common/wb_presets.c:63 +msgid "high temp. mercury-vapor fluorescent" +msgstr "hoge temp. kwikdamp tl-licht" + +#. found in Nikon Coolpix P1000 +#: ../src/common/wb_presets.c:65 +msgid "high temp. mercury-vapor" +msgstr "hoge temp. kwikdamp" + +#. On Some Panasonic +#: ../src/common/wb_presets.c:67 +msgid "D55" +msgstr "D55" + +#: ../src/common/wb_presets.c:69 +msgid "flash" +msgstr "flits" + +#. For Olympus with no real "Flash" preset: +#: ../src/common/wb_presets.c:71 +msgid "flash (auto mode)" +msgstr "flits (automatisch)" + +#: ../src/common/wb_presets.c:72 +msgid "evening sun" +msgstr "avondzon" + +#: ../src/common/wb_presets.c:73 +msgid "underwater" +msgstr "onderwater" + +#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2286 +msgid "black & white" +msgstr "zwart en wit" + +#: ../src/common/wb_presets.c:76 +msgid "spot WB" +msgstr "spot WB" + +#: ../src/common/wb_presets.c:77 +msgid "manual WB" +msgstr "handmatige WB" + +#: ../src/common/wb_presets.c:78 +msgid "camera WB" +msgstr "camera WB" + +#: ../src/common/wb_presets.c:79 +msgid "auto WB" +msgstr "automatisch WB" + +#: ../src/control/control.c:69 ../src/gui/accelerators.c:156 +#: ../src/views/darkroom.c:2029 +msgid "hold" +msgstr "pauze" + +#: ../src/control/control.c:108 ../src/control/control.c:214 +msgid "modifiers" +msgstr "omvormers" + +#: ../src/control/control.c:117 +msgctxt "accel" +msgid "global" +msgstr "algemeen" + +#: ../src/control/control.c:124 +msgctxt "accel" +msgid "views" +msgstr "weergaven" + +#: ../src/control/control.c:131 +msgctxt "accel" +msgid "thumbtable" +msgstr "miniatuur" + +#: ../src/control/control.c:138 +msgctxt "accel" +msgid "utility modules" +msgstr "programma modules" + +#: ../src/control/control.c:145 +msgctxt "accel" +msgid "format" +msgstr "formaat" + +#: ../src/control/control.c:152 +msgctxt "accel" +msgid "storage" +msgstr "opslag" + +#: ../src/control/control.c:159 +msgctxt "accel" +msgid "processing modules" +msgstr "verwerkingsmodules" + +#: ../src/control/control.c:166 +msgctxt "accel" +msgid "<blending>" +msgstr "<overvloeien>" + +#: ../src/control/control.c:173 +msgctxt "accel" +msgid "Lua scripts" +msgstr "Lua-scripts" + +#: ../src/control/control.c:180 +msgctxt "accel" +msgid "fallbacks" +msgstr "terugval" + +#: ../src/control/control.c:189 +msgctxt "accel" +msgid "<focused>" +msgstr "<gefocust>" + +#: ../src/control/control.c:209 +msgid "show accels window" +msgstr "toon accels vensters" + +#: ../src/control/control.c:371 +msgid "working..." +msgstr "bezig..." + +#: ../src/control/crawler.c:418 +#, c-format +msgid "ERROR: %s NOT synced XMP → DB" +msgstr "FOUT: %s NIET gesynchroniseerd XMP → DB" + +#: ../src/control/crawler.c:419 ../src/control/crawler.c:485 +#: ../src/control/crawler.c:554 +msgid "" +"ERROR: cannot write the database. the destination may be full, offline or " +"read-only." +msgstr "" +"FOUT: kan de database niet schrijven. de bestemming kan vol, offline of " +"alleen-lezen zijn." + +#: ../src/control/crawler.c:426 +#, c-format +msgid "SUCCESS: %s synced XMP → DB" +msgstr "SUCCES: %s gesynchroniseerd XMP → DB" + +#: ../src/control/crawler.c:448 +#, c-format +msgid "ERROR: %s NOT synced DB → XMP" +msgstr "FOUT: %s NIET gesynchroniseerd DB → XMP" + +#: ../src/control/crawler.c:450 ../src/control/crawler.c:509 +#: ../src/control/crawler.c:575 +#, c-format +msgid "" +"ERROR: cannot write %s \n" +"the destination may be full, offline or read-only." +msgstr "" +"FOUT: kan %s niet schrijven\n" +"de bestemming kan vol, offline of alleen-lezen zijn." + +#: ../src/control/crawler.c:456 +#, c-format +msgid "SUCCESS: %s synced DB → XMP" +msgstr "SUCCES: %s gesynchroniseerd DB → XMP" + +#: ../src/control/crawler.c:482 +#, c-format +msgid "ERROR: %s NOT synced new (XMP) → old (DB)" +msgstr "FOUT: %s NIET gesynchroniseerd nieuw (XMP) → oud (DB)" + +#: ../src/control/crawler.c:492 +#, c-format +msgid "SUCCESS: %s synced new (XMP) → old (DB)" +msgstr "SUCCES: %s gesynchroniseerd nieuw (XMP) → oud (DB)" + +#: ../src/control/crawler.c:506 +#, c-format +msgid "ERROR: %s NOT synced new (DB) → old (XMP)" +msgstr "FOUT: %s NIET gesynchroniseerd nieuw (DB) → oud (XMP)" + +#: ../src/control/crawler.c:514 +#, c-format +msgid "SUCCESS: %s synced new (DB) → old (XMP)" +msgstr "SUCCES: %s gesynchroniseerd nieuw (DB) → oud (XMP)" + +#: ../src/control/crawler.c:523 ../src/control/crawler.c:591 +#, c-format +msgid "EXCEPTION: %s has inconsistent timestamps" +msgstr "UITZONDERING: %s heeft inconsistente tijdstempels" + +#: ../src/control/crawler.c:551 +#, c-format +msgid "ERROR: %s NOT synced old (XMP) → new (DB)" +msgstr "FOUT: %s NIET gesynchroniseerd oud (XMP) → nieuw (DB)" + +#: ../src/control/crawler.c:560 +#, c-format +msgid "SUCCESS: %s synced old (XMP) → new (DB)" +msgstr "SUCCES: %s gesynchroniseerd oud (XMP) → nieuw (DB)" + +#: ../src/control/crawler.c:572 +#, c-format +msgid "ERROR: %s NOT synced old (DB) → new (XMP)" +msgstr "FOUT: %s NIET gesynchroniseerd oud (DB) → nieuw (XMP)" + +#: ../src/control/crawler.c:581 +#, c-format +msgid "SUCCESS: %s synced old (DB) → new (XMP)" +msgstr "SUCCES: %s gesynchroniseerd oud (DB) → nieuw (XMP)" + +#: ../src/control/crawler.c:663 +#, c-format +msgid "%id %02dh %02dm %02ds" +msgstr "%id %02dh %02dm %02ds" + +#: ../src/control/crawler.c:716 +msgid "XMP" +msgstr "XMP" + +#: ../src/control/crawler.c:733 ../src/imageio/storage/disk.c:250 +#: ../src/imageio/storage/gallery.c:202 ../src/imageio/storage/latex.c:190 +#: ../src/imageio/storage/latex.c:208 +msgid "path" +msgstr "pad" + +#: ../src/control/crawler.c:742 +msgid "XMP timestamp" +msgstr "XMP gewijzigd" + +#: ../src/control/crawler.c:747 +msgid "database timestamp" +msgstr "database gewijzigd" + +#: ../src/control/crawler.c:752 +msgid "newest" +msgstr "nieuwste" + +#: ../src/control/crawler.c:758 +msgid "time difference" +msgstr "tijdsverschil" + +#: ../src/control/crawler.c:770 +msgid "updated XMP sidecar files found" +msgstr "bijgewerkte XMP sidecar-bestanden gevonden" + +#: ../src/control/crawler.c:771 +msgid "_close" +msgstr "_afsluiten" + +#. setup selection accelerators +#. action-box +#: ../src/control/crawler.c:786 ../src/dtgtk/thumbtable.c:2755 +#: ../src/libs/import.c:1732 ../src/libs/select.c:136 +msgid "select all" +msgstr "selecteer alles" + +#: ../src/control/crawler.c:787 ../src/dtgtk/thumbtable.c:2757 +#: ../src/libs/import.c:1736 ../src/libs/select.c:140 +msgid "select none" +msgstr "selecteer niets" + +#: ../src/control/crawler.c:788 ../src/dtgtk/thumbtable.c:2759 +#: ../src/libs/select.c:144 +msgid "invert selection" +msgstr "keer selectie om" + +#: ../src/control/crawler.c:800 +msgid "on the selection:" +msgstr "op selectie:" + +#: ../src/control/crawler.c:801 +msgid "keep the XMP edit" +msgstr "behoud de xmp-bewerking" + +#: ../src/control/crawler.c:802 +msgid "keep the database edit" +msgstr "behoud de databasebewerking" + +#: ../src/control/crawler.c:803 +msgid "keep the newest edit" +msgstr "behoud de nieuwste bewerking" + +#: ../src/control/crawler.c:804 +msgid "keep the oldest edit" +msgstr "behoud de oudste bewerking" + +#: ../src/control/crawler.c:829 +msgid "synchronization log" +msgstr "synchronisatieregistratie" + +#: ../src/control/jobs/camera_jobs.c:80 +#, c-format +msgid "capturing %d image" +msgid_plural "capturing %d images" +msgstr[0] "vastleggen %d afbeelding" +msgstr[1] "vastleggen %d afbeeldingen" + +#: ../src/control/jobs/camera_jobs.c:114 +msgid "please set your camera to manual mode first!" +msgstr "stel eerst de camera in op handmatig!" + +#: ../src/control/jobs/camera_jobs.c:211 +msgid "capture images" +msgstr "maak foto" + +#: ../src/control/jobs/camera_jobs.c:245 +#, c-format +msgid "%d/%d imported to %s" +msgid_plural "%d/%d imported to %s" +msgstr[0] "%d/%d geïmporteerd naar %s" +msgstr[1] "%d/%d geïmporteerd naar %s" + +#: ../src/control/jobs/camera_jobs.c:298 +msgid "starting to import images from camera" +msgstr "importeren vanuit camera wordt gestart" + +#: ../src/control/jobs/camera_jobs.c:302 +msgid "failed to import images from camera." +msgstr "importeren vanuit camera mislukt." + +#: ../src/control/jobs/camera_jobs.c:309 +#, c-format +msgid "importing %d image from camera" +msgid_plural "importing %d images from camera" +msgstr[0] "importeer %d afbeelding van de camera" +msgstr[1] "importeren %d afbeeldingen vanaf de camera" + +#: ../src/control/jobs/camera_jobs.c:369 +msgid "import images from camera" +msgstr "importeer afbeeldingen vanaf de camera" + +#: ../src/control/jobs/control_jobs.c:145 +msgid "failed to create film roll for destination directory, aborting move.." +msgstr "aanmaak filmrol voor bestemmingsmap mislukt, verplaatsing geannuleerd." + +#: ../src/control/jobs/control_jobs.c:388 +msgid "exposure bracketing only works on raw images." +msgstr "belichtingsbracketing werkt alleen voor raw-afbeeldingen." + +#: ../src/control/jobs/control_jobs.c:395 +msgid "images have to be of same size and orientation!" +msgstr "afbeelding moeten van dezelfde afmeting en oriëntatie zijn!" + +#: ../src/control/jobs/control_jobs.c:490 +#, c-format +msgid "merging %d image" +msgid_plural "merging %d images" +msgstr[0] "samenvoegen %d afbeelding" +msgstr[1] "samenvoegen %d afbeeldingen" + +#: ../src/control/jobs/control_jobs.c:561 +#, c-format +msgid "wrote merged HDR `%s'" +msgstr "samengevoegde HDR `%s' is opgeslagen" + +#: ../src/control/jobs/control_jobs.c:593 +#, c-format +msgid "duplicating %d image" +msgid_plural "duplicating %d images" +msgstr[0] "dupliceer %d afbeelding" +msgstr[1] "dupliceer %d afbeeldingen" + +#: ../src/control/jobs/control_jobs.c:634 +#, c-format +msgid "flipping %d image" +msgid_plural "flipping %d images" +msgstr[0] "spiegel %d afbeelding" +msgstr[1] "spiegel %d afbeeldingen" + +#: ../src/control/jobs/control_jobs.c:665 +#, c-format +msgid "set %d color image" +msgid_plural "setting %d color images" +msgstr[0] "kleurenafbeelding %d instellen" +msgstr[1] "kleurenafbeeldingen %d instellen" + +#: ../src/control/jobs/control_jobs.c:667 +#, c-format +msgid "set %d monochrome image" +msgid_plural "setting %d monochrome images" +msgstr[0] "monochrome afbeelding %d instellen" +msgstr[1] "monochrome afbeeldingen %d instellen" + +#: ../src/control/jobs/control_jobs.c:753 +#, c-format +msgid "removing %d image" +msgid_plural "removing %d images" +msgstr[0] "verplaats %d afbeelding" +msgstr[1] "verplaatsen %d afbeeldingen" + +#: ../src/control/jobs/control_jobs.c:860 +#, c-format +msgid "" +"could not send %s to trash%s\n" +"%s\n" +"\n" +" do you want to delete the file from disk without using trash?" +msgstr "" +"kon %s niet verplaatsen naar prullenbak%s\n" +"%s\n" +"\n" +" wil je het bestand definitief verwijderen van schijf?" + +#: ../src/control/jobs/control_jobs.c:861 +#, c-format +msgid "" +"could not delete from disk %s%s\n" +"%s" +msgstr "" +"fysiek verwijderen mislukt %s%s\n" +"%s" + +#: ../src/control/jobs/control_jobs.c:869 +msgid "_apply to all" +msgstr "op _alle toepassen" + +#: ../src/control/jobs/control_jobs.c:877 +msgid "_delete permanently" +msgstr "permanent verwij_deren" + +#: ../src/control/jobs/control_jobs.c:878 +#: ../src/control/jobs/control_jobs.c:882 +msgid "_remove from library" +msgstr "ve_rwijderen uit bibliotheek" + +#: ../src/control/jobs/control_jobs.c:884 ../src/libs/styles.c:440 +#: ../src/libs/styles.c:625 +msgid "_skip" +msgstr "over_slaan" + +#: ../src/control/jobs/control_jobs.c:885 +msgid "abort" +msgstr "afbreken" + +#: ../src/control/jobs/control_jobs.c:891 +msgid "trashing error" +msgstr "prullenbak fout" + +#: ../src/control/jobs/control_jobs.c:892 +msgid "deletion error" +msgstr "verwijder fout" + +#: ../src/control/jobs/control_jobs.c:1039 +#, c-format +msgid "trashing %d image" +msgid_plural "trashing %d images" +msgstr[0] "stuur %d afbeelding naar de prullenbak" +msgstr[1] "stuur %d afbeeldingen naar de prullenbak" + +#: ../src/control/jobs/control_jobs.c:1041 +#, c-format +msgid "deleting %d image" +msgid_plural "deleting %d images" +msgstr[0] "verwijder %d afbeelding" +msgstr[1] "verwijderen %d afbeeldingen" + +#: ../src/control/jobs/control_jobs.c:1177 +msgid "failed to parse GPX file" +msgstr "parsen GPX bestand mislukt" + +#: ../src/control/jobs/control_jobs.c:1224 +#, c-format +msgid "applied matched GPX location onto %d image" +msgid_plural "applied matched GPX location onto %d images" +msgstr[0] "overeenkomstige GPX locatie toegepast op %d afbeelding" +msgstr[1] "overeenkomstige GPX locatie toegepast op %d afbeeldingen" + +#: ../src/control/jobs/control_jobs.c:1241 +#, c-format +msgid "moving %d image" +msgstr "verplaats %d afbeelding" + +#: ../src/control/jobs/control_jobs.c:1242 +#, c-format +msgid "moving %d images" +msgstr "verplaats %d afbeeldingen" + +#: ../src/control/jobs/control_jobs.c:1247 +#, c-format +msgid "copying %d image" +msgstr "kopieer %d afbeelding" + +#: ../src/control/jobs/control_jobs.c:1248 +#, c-format +msgid "copying %d images" +msgstr "kopieer %d afbeeldingen" + +#: ../src/control/jobs/control_jobs.c:1263 +#, c-format +msgid "creating local copy of %d image" +msgid_plural "creating local copies of %d images" +msgstr[0] "maakt lokale kopie van %d afbeelding" +msgstr[1] "maakt lokale kopieën van %d afbeeldingen" + +#: ../src/control/jobs/control_jobs.c:1266 +#, c-format +msgid "removing local copy of %d image" +msgid_plural "removing local copies of %d images" +msgstr[0] "lokale kopie van een afbeelding verwijderen" +msgstr[1] "lokale kopieën van %d afbeeldingen verwijderen" + +#: ../src/control/jobs/control_jobs.c:1313 +#, c-format +msgid "refreshing info for %d image" +msgid_plural "refreshing info for %d images" +msgstr[0] "ververst info voor %d afbeelding" +msgstr[1] "ververst info voor %d afbeeldingen" + +#: ../src/control/jobs/control_jobs.c:1398 +#, c-format +msgid "exporting %d image.." +msgid_plural "exporting %d images.." +msgstr[0] "exporteer %d afbeelding..." +msgstr[1] "exporteren %d afbeeldingen..." + +#: ../src/control/jobs/control_jobs.c:1400 +msgid "no image to export" +msgstr "geen afbeelding om te exporteren" + +#: ../src/control/jobs/control_jobs.c:1438 +#, c-format +msgid "exporting %d / %d to %s" +msgstr "exporteren %d / %d naar %s" + +#: ../src/control/jobs/control_jobs.c:1451 ../src/views/darkroom.c:721 +#: ../src/views/print.c:369 +#, c-format +msgid "image `%s' is currently unavailable" +msgstr "afbeelding `%s' is op dit moment niet beschikbaar" + +#: ../src/control/jobs/control_jobs.c:1554 +msgid "merge HDR image" +msgstr "samenvoegen hdr afbeelding" + +#: ../src/control/jobs/control_jobs.c:1568 +msgid "duplicate images" +msgstr "dupliceer afbeeldingen" + +#: ../src/control/jobs/control_jobs.c:1574 +msgid "flip images" +msgstr "afbeeldingen omkeren" + +#: ../src/control/jobs/control_jobs.c:1581 +msgid "set monochrome images" +msgstr "monochrome afbeeldingen instellen" + +#. get all selected images now, to avoid the set changing during ui interaction +#: ../src/control/jobs/control_jobs.c:1588 +msgid "remove images" +msgstr "vergeet afbeeldingen" + +#: ../src/control/jobs/control_jobs.c:1601 +msgid "remove image?" +msgstr "afbeelding vergeten?" + +#: ../src/control/jobs/control_jobs.c:1601 +msgid "remove images?" +msgstr "afbeeldingen vergeten?" + +#: ../src/control/jobs/control_jobs.c:1602 +#, c-format +msgid "" +"do you really want to remove %d image from darktable\n" +"(without deleting file on disk)?" +msgid_plural "" +"do you really want to remove %d images from darktable\n" +"(without deleting files on disk)?" +msgstr[0] "" +"wilt u echt %d afbeelding verwijderen uit darktable\n" +"(zonder bestand op schijf te verwijderen)?" +msgstr[1] "" +"wilt u echt %d afbeeldingen verwijderen uit darktable\n" +"(zonder bestanden op schijf te verwijderen)?" + +#. first get all selected images, to avoid the set changing during ui interaction +#: ../src/control/jobs/control_jobs.c:1617 +#: ../src/control/jobs/control_jobs.c:1650 +msgid "delete images" +msgstr "verwijder afbeeldingen" + +#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1663 +msgid "delete image?" +msgstr "afbeelding verwijderen?" + +#: ../src/control/jobs/control_jobs.c:1633 +msgid "delete images?" +msgstr "afbeelding(en) verwijderen?" + +#: ../src/control/jobs/control_jobs.c:1634 +#, c-format +msgid "" +"do you really want to physically delete %d image\n" +"(using trash if possible)?" +msgid_plural "" +"do you really want to physically delete %d images\n" +"(using trash if possible)?" +msgstr[0] "" +"wilt u echt %d afbeelding van de schijf verwijderen? \n" +"(prullenmand gebruiken indien mogelijk)" +msgstr[1] "" +"wilt u echt %d afbeeldingen van de schijf verwijderen? \n" +"(prullenmand gebruiken indien mogelijk)" + +#: ../src/control/jobs/control_jobs.c:1636 +#, c-format +msgid "do you really want to physically delete %d image from disk?" +msgid_plural "do you really want to physically delete %d images from disk?" +msgstr[0] "wilt u echt %d afbeelding van de schijf verwijderen?" +msgstr[1] "wilt u echt %d afbeeldingen van de schijf verwijderen?" + +#: ../src/control/jobs/control_jobs.c:1664 +msgid "" +"do you really want to physically delete selected image (using trash if " +"possible)?" +msgstr "" +"wilt u echt de geselecteerde afbeelding fysiek van de schijf verwijderen " +"(prullenmand gebruiken indien mogelijk)?" + +#: ../src/control/jobs/control_jobs.c:1665 +msgid "do you really want to physically delete selected image from disk?" +msgstr "" +"wilt u echt de geselecteerde afbeelding fysiek van de schijf verwijderen?" + +#: ../src/control/jobs/control_jobs.c:1680 +msgid "move images" +msgstr "verplaats afbeeldingen" + +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 +msgid "_select as destination" +msgstr "_selecteer als bestemming" + +#: ../src/control/jobs/control_jobs.c:1711 +msgid "move image?" +msgid_plural "move images?" +msgstr[0] "afbeelding verplaatsen?" +msgstr[1] "afbeeldingen verplaatsen?" + +#: ../src/control/jobs/control_jobs.c:1712 +#, c-format +msgid "" +"do you really want to physically move %d image to %s?\n" +"(all duplicates will be moved along)" +msgid_plural "" +"do you really want to physically move %d images to %s?\n" +"(all duplicates will be moved along)" +msgstr[0] "" +"wilt u echt %d afbeelding fysiek verplaatsen naar %s?\n" +"(alle duplicaten worden meegenomen)" +msgstr[1] "" +"wilt u echt %d afbeeldingen fysiek verplaatsen naar %s?\n" +"(alle duplicaten worden meegenomen)" + +#: ../src/control/jobs/control_jobs.c:1734 +msgid "copy images" +msgstr "kopieer afbeeldingen" + +#: ../src/control/jobs/control_jobs.c:1765 +msgid "copy image?" +msgid_plural "copy images?" +msgstr[0] "kopieer afbeelding?" +msgstr[1] "kopieer afbeeldingen?" + +#: ../src/control/jobs/control_jobs.c:1766 +#, c-format +msgid "do you really want to physically copy %d image to %s?" +msgid_plural "do you really want to physically copy %d images to %s?" +msgstr[0] "wilt u echt %d afbeelding fysiek kopiëren naar %s?" +msgstr[1] "wilt u echt %d afbeeldingen fysiek kopiëren naar %s?" + +#: ../src/control/jobs/control_jobs.c:1784 +#: ../src/control/jobs/control_jobs.c:1792 +msgid "local copy images" +msgstr "lokale kopie afbeeldingen" + +#: ../src/control/jobs/control_jobs.c:1799 ../src/libs/image.c:674 +msgid "refresh EXIF" +msgstr "ververs EXIF" + +#: ../src/control/jobs/control_jobs.c:1863 +#, c-format +msgid "failed to get parameters from storage module `%s', aborting export.." +msgstr "" +"het opvragen van instellingen van de opslagmodule `%s' is mislukt, het " +"exporteren is gestopt." + +#: ../src/control/jobs/control_jobs.c:1879 +msgid "export images" +msgstr "exporteer afbeeldingen" + +#: ../src/control/jobs/control_jobs.c:1929 +#, c-format +msgid "adding time offset to %d image" +msgstr "pas tijdsverschil toe op %d afbeelding" + +#: ../src/control/jobs/control_jobs.c:1929 +#, c-format +msgid "setting date/time of %d image" +msgstr "datum / tijd van %d afbeelding instellen" + +#: ../src/control/jobs/control_jobs.c:1930 +#, c-format +msgid "adding time offset to %d images" +msgstr "pas tijdsverschil toe op %d afbeeldingen" + +#: ../src/control/jobs/control_jobs.c:1930 +#, c-format +msgid "setting date/time of %d images" +msgstr "datum / tijd van %d afbeeldingen instellen" + +#: ../src/control/jobs/control_jobs.c:1975 +#, c-format +msgid "added time offset to %d image" +msgstr "tijdsverschil toegepast op %d afbeelding" + +#: ../src/control/jobs/control_jobs.c:1975 +#, c-format +msgid "set date/time of %d image" +msgstr "stel de datum / tijd van %d afbeelding in" + +#: ../src/control/jobs/control_jobs.c:1976 +#, c-format +msgid "added time offset to %d images" +msgstr "tijdsverschil toegepast op %d afbeeldingen" + +#: ../src/control/jobs/control_jobs.c:1976 +#, c-format +msgid "set date/time of %d images" +msgstr "stel de datum / tijd van %d afbeeldingen in" + +#: ../src/control/jobs/control_jobs.c:2017 +msgid "time offset" +msgstr "tijdsverschil" + +#: ../src/control/jobs/control_jobs.c:2045 ../src/libs/copy_history.c:414 +msgid "write sidecar files" +msgstr "schrijf XMP-bestanden" + +#: ../src/control/jobs/control_jobs.c:2259 ../src/control/jobs/film_jobs.c:297 +#, c-format +msgid "importing %d image" +msgid_plural "importing %d images" +msgstr[0] "importeer %d afbeelding" +msgstr[1] "importeren %d afbeeldingen" + +#: ../src/control/jobs/control_jobs.c:2295 +#, c-format +msgid "importing %d/%d image" +msgid_plural "importing %d/%d images" +msgstr[0] "importeer %d/%d afbeelding" +msgstr[1] "importeer %d/%d afbeeldingen" + +#: ../src/control/jobs/control_jobs.c:2305 +#, c-format +msgid "imported %d image" +msgid_plural "imported %d images" +msgstr[0] "%d afbeelding geïmporteerd" +msgstr[1] "%d afbeeldingen geïmporteerd" + +#: ../src/control/jobs/film_jobs.c:73 ../src/control/jobs/film_jobs.c:109 +msgid "import images" +msgstr "importeer afbeeldingen" + +#: ../src/control/jobs/film_jobs.c:239 +msgid "no supported images were found to be imported" +msgstr "te importeren afbeeldingen zijn niet gevonden" + +#: ../src/control/jobs/image_jobs.c:76 +#, c-format +msgid "importing image %s" +msgstr "importeren afbeelding %s" + +#: ../src/control/jobs/image_jobs.c:110 +msgid "import image" +msgstr "importeer afbeelding" + +#: ../src/develop/blend.c:315 +msgid "detail mask blending error" +msgstr "detailmasker mengfout" + +#: ../src/develop/blend.c:904 +msgid "detail mask CL blending problem" +msgstr "detailmasker CL mengprobleem" + +#: ../src/develop/blend_gui.c:47 ../src/libs/live_view.c:335 +msgctxt "blendmode" +msgid "normal" +msgstr "normaal" + +#: ../src/develop/blend_gui.c:49 +msgctxt "blendmode" +msgid "average" +msgstr "gemiddelde" + +#: ../src/develop/blend_gui.c:51 ../src/libs/live_view.c:348 +msgctxt "blendmode" +msgid "difference" +msgstr "verschil" + +#: ../src/develop/blend_gui.c:54 +msgctxt "blendmode" +msgid "normal bounded" +msgstr "normaal begrensd" + +#: ../src/develop/blend_gui.c:56 ../src/libs/live_view.c:343 +msgctxt "blendmode" +msgid "lighten" +msgstr "ophelderen" + +#: ../src/develop/blend_gui.c:58 ../src/libs/live_view.c:342 +msgctxt "blendmode" +msgid "darken" +msgstr "verdonkeren" + +#: ../src/develop/blend_gui.c:60 ../src/libs/live_view.c:340 +msgctxt "blendmode" +msgid "screen" +msgstr "scherm" + +#: ../src/develop/blend_gui.c:63 ../src/libs/live_view.c:339 +msgctxt "blendmode" +msgid "multiply" +msgstr "vermenigvuldigen" + +#: ../src/develop/blend_gui.c:65 +msgctxt "blendmode" +msgid "divide" +msgstr "delen" + +#: ../src/develop/blend_gui.c:67 +msgctxt "blendmode" +msgid "addition" +msgstr "toevoegen" + +#: ../src/develop/blend_gui.c:69 +msgctxt "blendmode" +msgid "subtract" +msgstr "aftrekken" + +#: ../src/develop/blend_gui.c:71 +msgctxt "blendmode" +msgid "geometric mean" +msgstr "geometrisch gemiddelde" + +#: ../src/develop/blend_gui.c:73 +msgctxt "blendmode" +msgid "harmonic mean" +msgstr "harmonisch gemiddelde" + +#: ../src/develop/blend_gui.c:76 ../src/libs/live_view.c:341 +msgctxt "blendmode" +msgid "overlay" +msgstr "overlay" + +#: ../src/develop/blend_gui.c:78 +msgctxt "blendmode" +msgid "softlight" +msgstr "zacht licht" + +#: ../src/develop/blend_gui.c:80 +msgctxt "blendmode" +msgid "hardlight" +msgstr "hard licht" + +#: ../src/develop/blend_gui.c:82 +msgctxt "blendmode" +msgid "vividlight" +msgstr "vividlight" + +#: ../src/develop/blend_gui.c:84 +msgctxt "blendmode" +msgid "linearlight" +msgstr "linearlight" + +#: ../src/develop/blend_gui.c:86 +msgctxt "blendmode" +msgid "pinlight" +msgstr "pinlight" + +#: ../src/develop/blend_gui.c:89 +msgctxt "blendmode" +msgid "lightness" +msgstr "helderheid" + +#: ../src/develop/blend_gui.c:91 +msgctxt "blendmode" +msgid "chromaticity" +msgstr "kleur" + +#: ../src/develop/blend_gui.c:94 +msgctxt "blendmode" +msgid "Lab lightness" +msgstr "Lab helderheid" + +#: ../src/develop/blend_gui.c:96 +msgctxt "blendmode" +msgid "Lab a-channel" +msgstr "Lab a-kanaal" + +#: ../src/develop/blend_gui.c:98 +msgctxt "blendmode" +msgid "Lab b-channel" +msgstr "Lab b-kanaal" + +#: ../src/develop/blend_gui.c:100 +msgctxt "blendmode" +msgid "Lab color" +msgstr "Lab kleur" + +#: ../src/develop/blend_gui.c:103 +msgctxt "blendmode" +msgid "RGB red channel" +msgstr "RGB rood kanaal" + +#: ../src/develop/blend_gui.c:105 +msgctxt "blendmode" +msgid "RGB green channel" +msgstr "RGB groen kanaal" + +#: ../src/develop/blend_gui.c:107 +msgctxt "blendmode" +msgid "RGB blue channel" +msgstr "RGB blauw kanaal" + +#: ../src/develop/blend_gui.c:109 +msgctxt "blendmode" +msgid "HSV value" +msgstr "HSV-waarde" + +#: ../src/develop/blend_gui.c:111 +msgctxt "blendmode" +msgid "HSV color" +msgstr "HSV-kleur" + +#: ../src/develop/blend_gui.c:114 +msgctxt "blendmode" +msgid "hue" +msgstr "tint" + +#: ../src/develop/blend_gui.c:116 +msgctxt "blendmode" +msgid "color" +msgstr "kleur" + +#: ../src/develop/blend_gui.c:118 +msgctxt "blendmode" +msgid "coloradjustment" +msgstr "kleuraanpassing" + +#. * deprecated blend modes: make them available as legacy +#. * history stacks might want them +#: ../src/develop/blend_gui.c:124 +msgctxt "blendmode" +msgid "difference (deprecated)" +msgstr "verschil (verouderd)" + +#: ../src/develop/blend_gui.c:126 +msgctxt "blendmode" +msgid "subtract inverse (deprecated)" +msgstr "aftrekken inverse (verouderd)" + +#: ../src/develop/blend_gui.c:128 +msgctxt "blendmode" +msgid "divide inverse (deprecated)" +msgstr "deel inverse (verouderd)" + +#: ../src/develop/blend_gui.c:130 +msgctxt "blendmode" +msgid "Lab L-channel (deprecated)" +msgstr "Lab L-kanaal (verouderd)" + +#: ../src/develop/blend_gui.c:135 +msgctxt "blendoperation" +msgid "normal" +msgstr "normaal" + +#: ../src/develop/blend_gui.c:136 +msgctxt "blendoperation" +msgid "reverse" +msgstr "keer om" + +#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:442 +msgid "default" +msgstr "standaard" + +#: ../src/develop/blend_gui.c:142 +msgid "RAW" +msgstr "RAW" + +#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2030 +msgid "RGB (display)" +msgstr "RGB (weergave)" + +#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2043 +msgid "RGB (scene)" +msgstr "RGB (scène)" + +#. DEVELOP_MASK_ENABLED +#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3438 +msgid "uniformly" +msgstr "geheel" + +#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:3448 ../src/develop/imageop.c:2669 +msgid "drawn mask" +msgstr "vector masker" + +#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2528 +#: ../src/develop/blend_gui.c:3459 ../src/develop/imageop.c:2671 +msgid "parametric mask" +msgstr "parametrisch masker" + +#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2966 +#: ../src/develop/blend_gui.c:3486 ../src/develop/imageop.c:2673 +msgid "raster mask" +msgstr "raster masker" + +#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3473 +msgid "drawn & parametric mask" +msgstr "vector & parametrisch masker" + +#: ../src/develop/blend_gui.c:168 +msgid "exclusive" +msgstr "exclusief" + +#: ../src/develop/blend_gui.c:169 +msgid "inclusive" +msgstr "inclusief" + +#: ../src/develop/blend_gui.c:170 +msgid "exclusive & inverted" +msgstr "exclusief & omgekeerd" + +#: ../src/develop/blend_gui.c:171 +msgid "inclusive & inverted" +msgstr "inclusief & omgekeerd" + +#: ../src/develop/blend_gui.c:175 +msgid "output before blur" +msgstr "uitvoer voor vervaging" + +#: ../src/develop/blend_gui.c:176 +msgid "input before blur" +msgstr "input voor vervaging" + +#: ../src/develop/blend_gui.c:177 +msgid "output after blur" +msgstr "uitvoer na vervaging" + +#: ../src/develop/blend_gui.c:178 +msgid "input after blur" +msgstr "input na vervaging" + +#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:157 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/libs/live_view.c:362 +msgid "on" +msgstr "aan" + +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 +msgid "input" +msgstr "invoer" + +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 +msgid "output" +msgstr "uitvoer" + +#: ../src/develop/blend_gui.c:998 +msgid " (zoom)" +msgstr " (zoom)" + +#: ../src/develop/blend_gui.c:1006 +msgid " (log)" +msgstr " (log)" + +#: ../src/develop/blend_gui.c:2004 +msgid "reset to default blend colorspace" +msgstr "herstel standaard meng-kleurruimte" + +#: ../src/develop/blend_gui.c:2060 +msgid "reset and hide output channels" +msgstr "herstel en verberg uitvoerkanalen" + +#: ../src/develop/blend_gui.c:2067 +msgid "show output channels" +msgstr "toon uitvoerkanalen" + +#: ../src/develop/blend_gui.c:2306 ../src/develop/blend_gui.c:2373 +#: ../src/iop/tonecurve.c:1156 +msgid "L" +msgstr "L" + +#: ../src/develop/blend_gui.c:2306 +msgid "sliders for L channel" +msgstr "schuifregelaars voor L kanaal" + +#: ../src/develop/blend_gui.c:2311 ../src/iop/tonecurve.c:1157 +msgid "a" +msgstr "a" + +#: ../src/develop/blend_gui.c:2311 +msgid "sliders for a channel" +msgstr "schuifregelaars voor a kanaal" + +#: ../src/develop/blend_gui.c:2315 +msgid "green/red" +msgstr "groen/rood" + +#: ../src/develop/blend_gui.c:2316 ../src/iop/tonecurve.c:1158 +msgid "b" +msgstr "b" + +#: ../src/develop/blend_gui.c:2316 +msgid "sliders for b channel" +msgstr "schuifregelaars voor b kanaal" + +#: ../src/develop/blend_gui.c:2320 +msgid "blue/yellow" +msgstr "blauw/geel" + +#: ../src/develop/blend_gui.c:2321 +msgid "C" +msgstr "C" + +#: ../src/develop/blend_gui.c:2321 +msgid "sliders for chroma channel (of LCh)" +msgstr "schuifregelaars voor chroma (C in LCh)" + +#: ../src/develop/blend_gui.c:2327 +msgid "h" +msgstr "h" + +#: ../src/develop/blend_gui.c:2327 +msgid "sliders for hue channel (of LCh)" +msgstr "schuifregelaars voor tint (h in LCh)" + +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 +msgid "g" +msgstr "g" + +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 +msgid "sliders for gray value" +msgstr "schuifregelaars voor grijs waarde" + +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/denoiseprofile.c:3714 +#: ../src/iop/rawdenoise.c:910 ../src/iop/rgbcurve.c:1358 +#: ../src/iop/rgblevels.c:1043 ../src/libs/filters/colors.c:137 +msgid "R" +msgstr "R" + +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +msgid "sliders for red channel" +msgstr "schuifregelaars voor rood kanaal" + +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/denoiseprofile.c:3715 +#: ../src/iop/rawdenoise.c:911 ../src/iop/rgbcurve.c:1359 +#: ../src/iop/rgblevels.c:1044 ../src/libs/filters/colors.c:143 +msgid "G" +msgstr "G" + +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +msgid "sliders for green channel" +msgstr "schuifregelaars voor groen kanaal" + +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/denoiseprofile.c:3716 +#: ../src/iop/rawdenoise.c:912 ../src/iop/rgbcurve.c:1360 +#: ../src/iop/rgblevels.c:1045 ../src/libs/filters/colors.c:146 +msgid "B" +msgstr "B" + +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +msgid "sliders for blue channel" +msgstr "schuifregelaars voor blauw kanaal" + +#: ../src/develop/blend_gui.c:2359 +msgid "H" +msgstr "H" + +#: ../src/develop/blend_gui.c:2359 +msgid "sliders for hue channel (of HSL)" +msgstr "schuifregelaars voor tint (H in HSL)" + +#: ../src/develop/blend_gui.c:2366 +msgid "S" +msgstr "S" + +#: ../src/develop/blend_gui.c:2366 +msgid "sliders for chroma channel (of HSL)" +msgstr "schuifregelaars voor verzadiging (S in HSL)" + +#: ../src/develop/blend_gui.c:2373 +msgid "sliders for value channel (of HSL)" +msgstr "schuifregelaars voor helderheid (L in HSL)" + +#: ../src/develop/blend_gui.c:2407 +msgid "Jz" +msgstr "Jz" + +#: ../src/develop/blend_gui.c:2407 +msgid "sliders for value channel (of JzCzhz)" +msgstr "schuifregelaars voor helderheid (J in JzCzhz)" + +#: ../src/develop/blend_gui.c:2414 +msgid "Cz" +msgstr "Cz" + +#: ../src/develop/blend_gui.c:2414 +msgid "sliders for chroma channel (of JzCzhz)" +msgstr "schuifregelaars voor chroma (C in JzCzhz)" + +#: ../src/develop/blend_gui.c:2421 +msgid "hz" +msgstr "hz" + +#: ../src/develop/blend_gui.c:2421 +msgid "sliders for hue channel (of JzCzhz)" +msgstr "schuifregelaars voor tint (h in JzCzhz)" + +#: ../src/develop/blend_gui.c:2431 +msgid "" +"adjustment based on input received by this module:\n" +"* range defined by upper markers: blend fully\n" +"* range defined by lower markers: do not blend at all\n" +"* range between adjacent upper/lower markers: blend gradually" +msgstr "" +"aanpassingen gebaseerd op ingang afkomstig van deze module:\n" +"* gebied tussen de bovenste markeringen: volledig mengen\n" +"* gebied buiten de onderste markeringen: geheel niet mengen\n" +"* gebied tussen de aangrenzende gebieden van bovenste/onderste markeringen: " +"gedeeltelijk mengen" + +#: ../src/develop/blend_gui.c:2435 +msgid "" +"adjustment based on unblended output of this module:\n" +"* range defined by upper markers: blend fully\n" +"* range defined by lower markers: do not blend at all\n" +"* range between adjacent upper/lower markers: blend gradually" +msgstr "" +"aanpassingen gebaseerd op niet gemengde uitvoer van deze module:\n" +"* gebied tussen de bovenste markeringen: volledig mengen\n" +"* gebied buiten de onderste markeringen: geheel niet mengen\n" +"* gebied tussen de aangrenzende gebieden van bovenste/onderste markeringen: " +"gedeeltelijk mengen" + +#: ../src/develop/blend_gui.c:2532 +msgid "reset blend mask settings" +msgstr "herstel masker instellingen" + +#: ../src/develop/blend_gui.c:2543 ../src/iop/atrous.c:1797 +#: ../src/iop/colorzones.c:2641 ../src/iop/denoiseprofile.c:3711 +#: ../src/iop/rawdenoise.c:907 ../src/iop/rgbcurve.c:1357 +#: ../src/iop/rgblevels.c:1041 ../src/iop/tonecurve.c:1155 +msgid "channel" +msgstr "kanaal" + +#: ../src/develop/blend_gui.c:2558 ../src/iop/colorzones.c:2660 +#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1164 +msgid "" +"pick GUI color from image\n" +"ctrl+click or right-click to select an area" +msgstr "" +"kies kleur uit afbeelding\n" +"ctrl+klik of klik rechts om een gebied te selecteren" + +#: ../src/develop/blend_gui.c:2561 ../src/iop/colorzones.c:2662 +#: ../src/iop/rgbcurve.c:1369 +msgid "show color" +msgstr "toon kleur" + +#: ../src/develop/blend_gui.c:2570 +msgid "" +"set the range based on an area from the image\n" +"drag to use the input image\n" +"ctrl+drag to use the output image" +msgstr "" +"stel het bereik in op basis van een gebied in de afbeelding\n" +"sleep voor het gebruik van ingaande afbeelding\n" +"ctrl+sleep om gebruik te maken van de uitgaande afbeelding" + +#: ../src/develop/blend_gui.c:2573 +msgid "set range" +msgstr "bereik" + +#: ../src/develop/blend_gui.c:2576 +msgid "invert all channel's polarities" +msgstr "keer alle kanaal-polariteiten om" + +#: ../src/develop/blend_gui.c:2600 +msgid "toggle polarity. best seen by enabling 'display mask'" +msgstr "" +"masker omkeren, meest duidelijk zichtbaar na inschakeling 'toon masker'" + +#: ../src/develop/blend_gui.c:2629 +msgid "" +"double-click to reset.\n" +"press 'a' to toggle available slider modes.\n" +"press 'c' to toggle view of channel data.\n" +"press 'm' to toggle mask view." +msgstr "" +"dubbelklik om te resetten.\n" +"druk op 'a' om door beschikbare schuif modes te bladeren\n" +"druk op 'c' om door weergave van kanaal data te bladeren\n" +"druk op 'm' om door masker weergave te bladeren." + +#: ../src/develop/blend_gui.c:2656 ../src/develop/blend_gui.c:3577 +#: ../src/iop/basicadj.c:630 ../src/iop/colorbalancergb.c:2161 +#: ../src/iop/exposure.c:1138 ../src/iop/exposure.c:1153 +#: ../src/iop/filmic.c:1528 ../src/iop/filmic.c:1541 ../src/iop/filmic.c:1583 +#: ../src/iop/filmicrgb.c:4504 ../src/iop/filmicrgb.c:4515 +#: ../src/iop/filmicrgb.c:4549 ../src/iop/filmicrgb.c:4559 +#: ../src/iop/graduatednd.c:1082 ../src/iop/negadoctor.c:1030 +#: ../src/iop/profile_gamma.c:657 ../src/iop/profile_gamma.c:663 +#: ../src/iop/relight.c:258 ../src/iop/soften.c:373 ../src/iop/toneequal.c:3379 +#: ../src/iop/toneequal.c:3382 ../src/iop/toneequal.c:3385 +#: ../src/iop/toneequal.c:3388 ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3394 ../src/iop/toneequal.c:3397 +#: ../src/iop/toneequal.c:3400 ../src/iop/toneequal.c:3403 +#: ../src/iop/toneequal.c:3525 ../src/iop/toneequal.c:3534 +#: ../src/iop/toneequal.c:3547 ../src/views/darkroom.c:2292 +msgid " EV" +msgstr " EV" + +#: ../src/develop/blend_gui.c:2658 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:2966 ../src/develop/blend_gui.c:3029 +#: ../src/develop/blend_gui.c:3545 ../src/develop/blend_gui.c:3575 +#: ../src/develop/blend_gui.c:3588 ../src/develop/blend_gui.c:3605 +#: ../src/develop/blend_gui.c:3629 ../src/develop/blend_gui.c:3641 +#: ../src/develop/blend_gui.c:3652 ../src/develop/blend_gui.c:3663 +msgid "blend" +msgstr "mengen" + +#: ../src/develop/blend_gui.c:2658 +msgid "boost factor" +msgstr "boost factor" + +#: ../src/develop/blend_gui.c:2661 +msgid "adjust the boost factor of the channel mask" +msgstr "regel de boost factor van het maskerkanaal" + +#: ../src/develop/blend_gui.c:2698 +#, c-format +msgid "%d shape used" +msgid_plural "%d shapes used" +msgstr[0] "%d vorm gebruikt" +msgstr[1] "%d vormen gebruikt" + +#: ../src/develop/blend_gui.c:2703 ../src/develop/blend_gui.c:2759 +#: ../src/develop/blend_gui.c:2847 ../src/develop/blend_gui.c:2967 +msgid "no mask used" +msgstr "geen maskers" + +#: ../src/develop/blend_gui.c:2767 +msgid "toggle polarity of drawn mask" +msgstr "keer getekend masker om" + +#: ../src/develop/blend_gui.c:2776 +msgid "show and edit mask elements" +msgstr "toon en bewerk masker" + +#: ../src/develop/blend_gui.c:2777 +msgid "show and edit in restricted mode" +msgstr "weergeven en bewerken in beperkte modus" + +#: ../src/develop/blend_gui.c:2784 ../src/libs/masks.c:1014 +#: ../src/libs/masks.c:1812 ../src/libs/masks.c:1816 +msgid "add gradient" +msgstr "verloop toevoegen" + +# het vervolg na 'ctrl+klik om ' +#: ../src/develop/blend_gui.c:2785 +msgid "add multiple gradients" +msgstr "meer verlopen toe te voegen" + +#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2466 +#: ../src/libs/masks.c:994 ../src/libs/masks.c:1848 ../src/libs/masks.c:1852 +msgid "add brush" +msgstr "penseelstreek toevoegen" + +# het vervolg na 'ctrl+klik om ' +#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2466 +msgid "add multiple brush strokes" +msgstr "meer penseelstreken toe te voegen" + +#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 ../src/libs/masks.c:1009 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1825 +msgid "add path" +msgstr "pad toevoegen" + +# het vervolg na 'ctrl+klik om ' +#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 +msgid "add multiple paths" +msgstr "meer paden toe te voegen" + +#: ../src/develop/blend_gui.c:2808 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 ../src/libs/masks.c:1004 ../src/libs/masks.c:1830 +#: ../src/libs/masks.c:1834 +msgid "add ellipse" +msgstr "ellips toevoegen" + +# het vervolg na 'ctrl+klik om ' +#: ../src/develop/blend_gui.c:2809 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 +msgid "add multiple ellipses" +msgstr "meer ellipsen toe te voegen" + +#: ../src/develop/blend_gui.c:2816 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 ../src/libs/masks.c:999 ../src/libs/masks.c:1839 +#: ../src/libs/masks.c:1843 +msgid "add circle" +msgstr "cirkel toevoegen" + +# het vervolg na 'ctrl+klik om ' +#: ../src/develop/blend_gui.c:2817 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 +msgid "add multiple circles" +msgstr "meer cirkels toe te voegen" + +#: ../src/develop/blend_gui.c:2976 +msgid "toggle polarity of raster mask" +msgstr "wissel polariteit van raster masker" + +#: ../src/develop/blend_gui.c:3119 +msgid "normal & difference" +msgstr "normaal & verschillen" + +#: ../src/develop/blend_gui.c:3124 +msgid "lighten" +msgstr "ophelderen" + +#: ../src/develop/blend_gui.c:3131 +msgid "darken" +msgstr "verdonkeren" + +#: ../src/develop/blend_gui.c:3138 +msgid "contrast enhancing" +msgstr "contrastverbetering" + +#: ../src/develop/blend_gui.c:3145 ../src/develop/blend_gui.c:3168 +msgid "color channel" +msgstr "kleurkanaal" + +#: ../src/develop/blend_gui.c:3156 ../src/develop/blend_gui.c:3171 +msgid "chromaticity & lightness" +msgstr "kleur & helderheid" + +#: ../src/develop/blend_gui.c:3163 +msgid "normal & arithmetic" +msgstr "normaal & rekenkundig" + +#. add deprecated blend mode +#: ../src/develop/blend_gui.c:3184 +msgid "deprecated" +msgstr "verouderd" + +#. should never happen: unknown blend mode +#: ../src/develop/blend_gui.c:3188 +#, c-format +msgid "unknown blend mode '%d' in module '%s'" +msgstr "onbekende 'meng' modus '%d' in module '%s'" + +#: ../src/develop/blend_gui.c:3497 +msgid "blending options" +msgstr "mengopties" + +#: ../src/develop/blend_gui.c:3516 +msgid "blend mask" +msgstr "masker" + +#: ../src/develop/blend_gui.c:3520 +msgid "display mask and/or color channel" +msgstr "toon masker en/of kleurkanaal" + +#: ../src/develop/blend_gui.c:3525 +msgid "" +"display mask and/or color channel.\n" +"ctrl+click to display mask,\n" +"shift+click to display channel.\n" +"hover over parametric mask slider to select channel for display" +msgstr "" +"toon masker en/of kleurkanaal,\n" +"ctrl+klik toont masker, shift+klik toont kanaal,\n" +"beweeg over de parametrisch-masker-schuifregelaar om het te vertonen kanaal " +"te selecteren" + +#: ../src/develop/blend_gui.c:3532 +msgid "temporarily switch off blend mask" +msgstr "schakel het masker tijdelijk uit" + +#: ../src/develop/blend_gui.c:3537 +msgid "" +"temporarily switch off blend mask.\n" +"only for module in focus" +msgstr "" +"schakel het masker tijdelijk uit.\n" +"alleen in de nu actieve module" + +#: ../src/develop/blend_gui.c:3549 +msgid "choose blending mode" +msgstr "kies wijze van overvloeien" + +#: ../src/develop/blend_gui.c:3559 +msgid "toggle blend order" +msgstr "schakel de mengvolgorde in" + +#: ../src/develop/blend_gui.c:3565 +msgid "" +"toggle the blending order between the input and the output of the module,\n" +"by default the output will be blended on top of the input,\n" +"order can be reversed by clicking on the icon (input on top of output)" +msgstr "" +"schakel de overvloeivolgorde tussen de invoer en de uitvoer van de module,\n" +"standaard wordt de uitvoer over de invoer heen gemengd,\n" +"volgorde kan worden omgekeerd door op het icoon te klikken (invoer boven " +"uitvoer)" + +#: ../src/develop/blend_gui.c:3576 +msgid "fulcrum" +msgstr "steunpunt" + +#: ../src/develop/blend_gui.c:3580 +msgid "adjust the fulcrum used by some blending operations" +msgstr "pas het draaipunt aan dat wordt gebruikt door sommige mengbewerkingen" + +#. Add opacity/scale sliders to table +#: ../src/develop/blend_gui.c:3588 ../src/iop/watermark.c:1362 +#: ../src/libs/masks.c:105 +msgid "opacity" +msgstr "dekking" + +#: ../src/develop/blend_gui.c:3591 +msgid "set the opacity of the blending" +msgstr "bepaal de dekking bij overvloeien" + +#: ../src/develop/blend_gui.c:3596 ../src/libs/history.c:956 +msgid "combine masks" +msgstr "combineer maskers" + +#: ../src/develop/blend_gui.c:3598 +msgid "" +"how to combine individual drawn mask and different channels of parametric " +"mask" +msgstr "" +"hoe ieder getekend vector masker wordt gecombineerd met de verschillende " +"kanalen van een parametrisch masker" + +#: ../src/develop/blend_gui.c:3605 +msgid "details threshold" +msgstr "drempelwaarde details" + +#: ../src/develop/blend_gui.c:3609 +msgid "" +"adjust the threshold for the details mask (using raw data),\n" +"positive values select areas with strong details,\n" +"negative values select flat areas" +msgstr "" +"pas de drempel voor het detailmasker aan (o.b.v. raw-gegevens),\n" +"positieve waarden selecteren gebieden met sterke details,\n" +"negatieve waarden selecteren vlakke gebieden" + +#: ../src/develop/blend_gui.c:3617 ../src/libs/history.c:959 +msgid "feathering guide" +msgstr "doezelaar" + +#: ../src/develop/blend_gui.c:3620 +msgid "" +"choose to guide mask by input or output image and\n" +"choose to apply feathering before or after mask blur" +msgstr "" +"kies ervoor om het masker te begeleiden op basis van invoer- of uitvoerbeeld " +"en\n" +"kies ervoor om doezelaar voor of na maskervervaging toe te passen" + +#: ../src/develop/blend_gui.c:3629 ../src/libs/history.c:958 +msgid "feathering radius" +msgstr "radius doezelaar" + +#: ../src/develop/blend_gui.c:3632 +msgid "spatial radius of feathering" +msgstr "omvang van doezelaar" + +#: ../src/develop/blend_gui.c:3641 +msgid "blurring radius" +msgstr "radius verdoezeling" + +#: ../src/develop/blend_gui.c:3644 +msgid "radius for gaussian blur of blend mask" +msgstr "straal voor Gauss verdoezeling van het masker" + +#: ../src/develop/blend_gui.c:3652 ../src/iop/retouch.c:2738 +#: ../src/libs/history.c:954 +msgid "mask opacity" +msgstr "masker bedekking" + +#: ../src/develop/blend_gui.c:3656 +msgid "" +"shifts and tilts the tone curve of the blend mask to adjust its brightness\n" +"without affecting fully transparent/fully opaque regions" +msgstr "" +"verschuift en kantelt de helderheidscurve van het masker om het\n" +"verloop te wijzigen met behoud van volledige transparantie/dekking" + +#: ../src/develop/blend_gui.c:3663 ../src/libs/history.c:962 +msgid "mask contrast" +msgstr "masker contrast" + +#: ../src/develop/blend_gui.c:3667 +msgid "" +"gives the tone curve of the blend mask an s-like shape to adjust its contrast" +msgstr "" +"geeft de tooncurve van het masker een s-vorm om het contrast ervan aan te " +"passen" + +#: ../src/develop/blend_gui.c:3671 +msgid "mask refinement" +msgstr "masker optimalisering" + +#: ../src/develop/develop.c:732 +msgid "" +"autosaving history has been disabled for this session because of a slow " +"drive used" +msgstr "" +"automatisch opslaan van de bewerkingsgeschiedenis is uitgeschakeld vanwege " +"de trage schijf" + +#: ../src/develop/develop.c:2202 +#, c-format +msgid "%s: module `%s' version mismatch: %d != %d" +msgstr "%s: module '%s' versie komt niet overeen: %d != %d" + +#: ../src/develop/develop.c:3016 +msgid "duplicate module, can't move new instance after the base one\n" +msgstr "" +"dubbele module, kan de nieuwe instantie niet na de bestaande plaatsen\n" + +#: ../src/develop/imageop.c:1031 +msgid "new instance" +msgstr "nieuw exemplaar" + +#: ../src/develop/imageop.c:1037 +msgid "duplicate instance" +msgstr "dupliceer exemplaar" + +#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3755 +#: ../src/libs/masks.c:1146 +msgid "move up" +msgstr "naar boven" + +#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3756 +#: ../src/libs/masks.c:1151 +msgid "move down" +msgstr "naar beneden" + +#. delete button label and tooltip will be updated based on trash pref +#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3758 +#: ../src/gui/accelerators.c:173 ../src/libs/image.c:303 +#: ../src/libs/image.c:513 +msgid "delete" +msgstr "verwijderen" + +#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3759 +#: ../src/libs/modulegroups.c:3817 +msgid "rename" +msgstr "module naam wijzigen" + +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 +#, c-format +msgid "'%s' is switched on" +msgstr "'%s' is ingeschakeld" + +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 +#, c-format +msgid "'%s' is switched off" +msgstr "'%s' is uitgeschakeld" + +#: ../src/develop/imageop.c:2663 +msgid "unknown mask" +msgstr "onbekend masker" + +#: ../src/develop/imageop.c:2667 +msgid "drawn + parametric mask" +msgstr "getekend + parametrisch masker" + +#: ../src/develop/imageop.c:2676 +#, c-format +msgid "this module has a `%s'" +msgstr "deze module heeft een `%s'" + +#: ../src/develop/imageop.c:2681 +#, c-format +msgid "taken from module %s" +msgstr "overgenomen uit module %s" + +#: ../src/develop/imageop.c:2686 +msgid "click to display (module must be activated first)" +msgstr "klik om weer te geven (module moet eerst worden geactiveerd)" + +#: ../src/develop/imageop.c:2797 +msgid "purpose" +msgstr "doel" + +#: ../src/develop/imageop.c:2797 +msgid "process" +msgstr "verwerk" + +#: ../src/develop/imageop.c:2917 +msgid "" +"multiple instance actions\n" +"right-click creates new instance" +msgstr "" +"meerdere instantie-acties\n" +"klik met de rechtermuisknop om een nieuwe instantie te maken" + +#: ../src/develop/imageop.c:2932 +msgid "" +"reset parameters\n" +"ctrl+click to reapply any automatic presets" +msgstr "" +"reset parameters\n" +"ctrl+klik om eventuele automatische voorkeuren opnieuw toe te passen" + +#: ../src/develop/imageop.c:2944 +msgid "" +"presets\n" +"right-click to apply on new instance" +msgstr "" +"voorkeuren\n" +"klik middenmuisknop voor toepassing op een nieuwe instantie" + +#: ../src/develop/imageop.c:3194 ../src/develop/imageop.c:3216 +msgid "ERROR" +msgstr "FOUT" + +#: ../src/develop/imageop.c:3622 +msgid "unsupported input" +msgstr "niet-ondersteunde invoer" + +#: ../src/develop/imageop.c:3623 +msgid "" +"you have placed this module at\n" +"a position in the pipeline where\n" +"the data format does not match\n" +"its requirements." +msgstr "" +"u heeft deze module geplaatst op\n" +"een positie in de pijplijn waar\n" +"het gegevensformaat niet overeen komt met \n" +"zijn vereisten." + +#: ../src/develop/imageop.c:3754 ../src/develop/imageop.c:3764 +#: ../src/gui/accelerators.c:169 ../src/libs/lib.c:1415 +msgid "show" +msgstr "toon" + +#: ../src/develop/imageop.c:3757 ../src/libs/modulegroups.c:3315 +#: ../src/libs/modulegroups.c:3438 ../src/libs/modulegroups.c:3819 +#: ../src/libs/tagging.c:3279 +msgid "new" +msgstr "nieuw" + +#: ../src/develop/imageop.c:3760 ../src/libs/duplicate.c:411 +#: ../src/libs/image.c:534 ../src/libs/modulegroups.c:3815 +msgid "duplicate" +msgstr "klonen" + +#: ../src/develop/imageop.c:3765 +msgid "enable" +msgstr "inschakelen" + +#: ../src/develop/imageop.c:3766 ../src/gui/accelerators.c:185 +msgid "focus" +msgstr "focus" + +#: ../src/develop/imageop.c:3767 ../src/gui/accelerators.c:2874 +msgid "instance" +msgstr "instantie" + +#: ../src/develop/imageop.c:3768 ../src/gui/accelerators.c:130 +#: ../src/gui/accelerators.c:140 ../src/gui/gtk.c:3055 ../src/gui/gtk.c:3102 +#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:615 +#: ../src/gui/styles_dialog.c:637 ../src/iop/atrous.c:1626 +#: ../src/libs/lib.c:1416 ../src/libs/modulegroups.c:3884 +msgid "reset" +msgstr "reset" + +#. Adding the outer container +#: ../src/develop/imageop.c:3769 ../src/gui/preferences.c:796 +#: ../src/libs/lib.c:1417 +msgid "presets" +msgstr "voorkeuren" + +#: ../src/develop/imageop.c:3789 +msgid "processing module" +msgstr "verwerkingsmodule" + +# wordt gevolgd door: 'meer ... toe te voegen' +#: ../src/develop/imageop_gui.c:293 +#, c-format +msgid "" +"%s\n" +"ctrl+click to %s" +msgstr "" +"%s\n" +"ctrl+klik om %s" + +#: ../src/develop/lightroom.c:1137 +msgid "cannot find Lightroom XMP!" +msgstr "kan Lightroom XMP niet vinden!" + +#: ../src/develop/lightroom.c:1169 ../src/develop/lightroom.c:1191 +#: ../src/develop/lightroom.c:1211 +#, c-format +msgid "`%s' is not a Lightroom XMP!" +msgstr "`%s' is geen Lightroom XMP!" + +#: ../src/develop/lightroom.c:1613 +#, c-format +msgid "%s has been imported" +msgid_plural "%s have been imported" +msgstr[0] "%s is geïmporteerd" +msgstr[1] "%s zijn geïmporteerd" + +#: ../src/develop/masks/brush.c:1346 ../src/develop/masks/brush.c:1400 +#, c-format +msgid "hardness: %3.2f%%" +msgstr "hardheid: %3.2f%%" + +#: ../src/develop/masks/brush.c:1362 ../src/develop/masks/brush.c:1460 +#: ../src/develop/masks/circle.c:148 ../src/develop/masks/circle.c:193 +#: ../src/develop/masks/ellipse.c:484 ../src/develop/masks/ellipse.c:546 +#: ../src/develop/masks/path.c:1255 +#, c-format +msgid "size: %3.2f%%" +msgstr "maat: %3.2f%%" + +#: ../src/develop/masks/brush.c:3191 +msgid "[BRUSH] change size" +msgstr "[BRUSH] wijzig afmeting" + +#: ../src/develop/masks/brush.c:3193 +msgid "[BRUSH] change hardness" +msgstr "[BRUSH] wijzig hardheid" + +#: ../src/develop/masks/brush.c:3195 +msgid "[BRUSH] change opacity" +msgstr "[BRUSH] wijzig dekking" + +#: ../src/develop/masks/brush.c:3207 +#, c-format +msgid "brush #%d" +msgstr "penseel #%d" + +#: ../src/develop/masks/brush.c:3220 +#, c-format +msgid "" +"<b>size</b>: scroll, <b>hardness</b>: shift+scroll\n" +"<b>opacity</b>: ctrl+scroll (%d%%)" +msgstr "" +"<b>grootte</b>: scroll, <b>hardheid</b>: shift+scroll\n" +"<b>dekking</b>: ctrl+scroll (%d %%)" + +#: ../src/develop/masks/brush.c:3223 +msgid "<b>size</b>: scroll" +msgstr "<b>grootte</b>: scroll" + +#: ../src/develop/masks/circle.c:137 ../src/develop/masks/circle.c:181 +#: ../src/develop/masks/ellipse.c:470 ../src/develop/masks/ellipse.c:531 +#: ../src/develop/masks/path.c:1187 +#, c-format +msgid "feather size: %3.2f%%" +msgstr "doezelaar maat: %3.2f%%" + +#: ../src/develop/masks/circle.c:1462 +msgid "[CIRCLE] change size" +msgstr "[CIRCLE] wijzig afmeting" + +#: ../src/develop/masks/circle.c:1464 +msgid "[CIRCLE] change feather size" +msgstr "[CIRCLE] wijzig doezelaar grootte" + +#: ../src/develop/masks/circle.c:1466 +msgid "[CIRCLE] change opacity" +msgstr "[CIRCLE] wijzig dekking" + +#: ../src/develop/masks/circle.c:1479 +#, c-format +msgid "circle #%d" +msgstr "cirkel #%d" + +#: ../src/develop/masks/circle.c:1490 ../src/develop/masks/path.c:3406 +#, c-format +msgid "" +"<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" +"<b>opacity</b>: ctrl+scroll (%d%%)" +msgstr "" +"<b>grootte</b>: scroll, <b>doezelaar grootte</b>: shift+scroll\n" +"<b>dekking</b>: ctrl+scroll (%d%%)" + +#: ../src/develop/masks/ellipse.c:456 ../src/develop/masks/ellipse.c:515 +#, c-format +msgid "rotation: %3.f°" +msgstr "rotatie: %3.f°" + +#: ../src/develop/masks/ellipse.c:2015 +msgid "[ELLIPSE] change size" +msgstr "[ELLIPSE] wijzig afmeting" + +#: ../src/develop/masks/ellipse.c:2018 +msgid "[ELLIPSE] change feather size" +msgstr "[ELLIPSE] wijzig doezelaar grootte" + +#: ../src/develop/masks/ellipse.c:2021 ../src/develop/masks/ellipse.c:2030 +msgid "[ELLIPSE] rotate shape" +msgstr "[ELLIPSE] draai vorm" + +#: ../src/develop/masks/ellipse.c:2024 +msgid "[ELLIPSE] change opacity" +msgstr "[ELLIPSE] wijzig dekking" + +#: ../src/develop/masks/ellipse.c:2027 +msgid "[ELLIPSE] switch feathering mode" +msgstr "[ELLIPSE] schakel doezelaar modus" + +#: ../src/develop/masks/ellipse.c:2037 +#, c-format +msgid "ellipse #%d" +msgstr "ellips #%d" + +#: ../src/develop/masks/ellipse.c:2075 +#, c-format +msgid "" +"<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" +"<b>rotation</b>: ctrl+shift+scroll, <b>opacity</b>: ctrl+scroll (%d%%)" +msgstr "" +"<b>grootte</b>: scroll, <b>doezelaar</b>: shift+scroll\n" +"<b>rotatie</b>: ctrl+shift+scroll, <b>dekking</b>: ctrl+scroll (%d%%)" + +#: ../src/develop/masks/ellipse.c:2079 +msgid "<b>rotate</b>: ctrl+drag" +msgstr "<b>roteren</b>: ctrl+slepen" + +#: ../src/develop/masks/ellipse.c:2082 +#, c-format +msgid "" +"<b>feather mode</b>: shift+click, <b>rotate</b>: ctrl+drag\n" +"<b>size</b>: scroll, <b>feather size</b>: shift+scroll, <b>opacity</b>: " +"ctrl+scroll (%d%%)" +msgstr "" +"<b>doezelaarmodus</b>: shift+klik, <b>roteren</b>: ctrl+slepen\n" +"<b>grootte</b>: scroll, <b>doezelaar grootte</b>: shift+scroll, <b>dekking</" +"b>: ctrl+scroll (%d%%)" + +#: ../src/develop/masks/gradient.c:131 ../src/develop/masks/gradient.c:175 +#, c-format +msgid "compression: %3.2f%%" +msgstr "compressie: %3.2f%%" + +#: ../src/develop/masks/gradient.c:143 ../src/develop/masks/gradient.c:186 +#, c-format +msgid "curvature: %3.2f%%" +msgstr "kromming: %3.2f%%" + +#: ../src/develop/masks/gradient.c:1514 +msgid "[GRADIENT on pivot] rotate shape" +msgstr "[GRADIENT on pivot] roteer vorm" + +#: ../src/develop/masks/gradient.c:1516 +msgid "[GRADIENT creation] set rotation" +msgstr "[GRADIENT creation] rotatie instellen" + +#: ../src/develop/masks/gradient.c:1518 +msgid "[GRADIENT] change curvature" +msgstr "[GRADIENT] wijzig kromming" + +#: ../src/develop/masks/gradient.c:1520 +msgid "[GRADIENT] change compression" +msgstr "[GRADIENT] wijzig compressie" + +#: ../src/develop/masks/gradient.c:1522 +msgid "[GRADIENT] change opacity" +msgstr "[GRADIENT] wijzig dekking" + +#: ../src/develop/masks/gradient.c:1535 +#, c-format +msgid "gradient #%d" +msgstr "verloop #%d" + +#: ../src/develop/masks/gradient.c:1546 +#, c-format +msgid "" +"<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" +"<b>rotation</b>: click+drag, <b>opacity</b>: ctrl+scroll (%d%%)" +msgstr "" +"<b>kromming</b>: scroll, <b>compressie</b>: shift+scroll\n" +"<b>rotatie</b>: klik+sleep, <b>dekking</b>: ctrl+scroll (%d%%)" + +#: ../src/develop/masks/gradient.c:1551 +#, c-format +msgid "" +"<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" +"<b>opacity</b>: ctrl+scroll (%d%%)" +msgstr "" +"<b>kromming</b>: scroll, <b>compressie</b>: shift+scroll\n" +"<b>dekking</b>: ctrl+scroll (%d%%)" + +#: ../src/develop/masks/gradient.c:1554 +msgid "<b>rotate</b>: drag" +msgstr "<b>roteren</b>: slepen" + +#: ../src/develop/masks/masks.c:139 +msgid "[SHAPE] remove shape" +msgstr "[SHAPE] verwijder vorm" + +#: ../src/develop/masks/masks.c:305 +#, c-format +msgid "group `%s'" +msgstr "groep `%s'" + +#: ../src/develop/masks/masks.c:422 +#, c-format +msgid "copy of `%s'" +msgstr "kopie van `%s'" + +#: ../src/develop/masks/masks.c:985 +#, c-format +msgid "%s: mask version mismatch: %d != %d" +msgstr "%s: masker versie komt niet overeen: %d != %d" + +#: ../src/develop/masks/masks.c:1230 ../src/develop/masks/masks.c:1881 +#, c-format +msgid "opacity: %.0f%%" +msgstr "dekking: %.0f%%" + +#: ../src/develop/masks/masks.c:1625 ../src/libs/masks.c:1084 +msgid "add existing shape" +msgstr "bestaande vorm toevoegen" + +#: ../src/develop/masks/masks.c:1652 +msgid "use same shapes as" +msgstr "gebruik dezelfde vorm als" + +#: ../src/develop/masks/masks.c:1965 +msgid "masks can not contain themselves" +msgstr "maskers mogen zichzelf niet insluiten" + +#: ../src/develop/masks/path.c:3349 +msgid "[PATH creation] add a smooth node" +msgstr "[PATH creation] toevoegen effen knooppunt" + +#: ../src/develop/masks/path.c:3351 +msgid "[PATH creation] add a sharp node" +msgstr "[PATH creation] toevoegen scherp knooppunt" + +#: ../src/develop/masks/path.c:3353 +msgid "[PATH creation] terminate path creation" +msgstr "[PATH creation] beëindigen pad creatie" + +#: ../src/develop/masks/path.c:3355 +msgid "[PATH on node] switch between smooth/sharp node" +msgstr "[PATH on node] schakel tussen zacht/scherpe knooppunten" + +#: ../src/develop/masks/path.c:3357 +msgid "[PATH on node] remove the node" +msgstr "[PATH on node] verwijder knooppunt" + +#: ../src/develop/masks/path.c:3359 +msgid "[PATH on feather] reset curvature" +msgstr "[PATH on doezelaar] reset kromming" + +#: ../src/develop/masks/path.c:3361 +msgid "[PATH on segment] add node" +msgstr "[PATH on segment] voeg knooppunt toe" + +#: ../src/develop/masks/path.c:3363 +msgid "[PATH] change size" +msgstr "[PATH] wijzig afmeting" + +#: ../src/develop/masks/path.c:3365 +msgid "[PATH] change feather size" +msgstr "[PATH] wijzig afmeting doezelaar" + +#: ../src/develop/masks/path.c:3367 +msgid "[PATH] change opacity" +msgstr "[PATH] wijzig dekking" + +#: ../src/develop/masks/path.c:3379 +#, c-format +msgid "path #%d" +msgstr "pad #%d" + +#: ../src/develop/masks/path.c:3389 +msgid "" +"<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" +"<b>cancel</b>: right-click" +msgstr "" +"<b>voeg knooppunt toe</b>: klik, <b>voeg scherp knooppunt toe</b>:ctrl+klik\n" +"<b>annuleren</b>: rechts klikken" + +#: ../src/develop/masks/path.c:3392 +msgid "" +"<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" +"<b>finish path</b>: right-click" +msgstr "" +"<b>voeg knooppunt toe</b>: klik, <b>voeg scherp knooppunt toe</b>:ctrl+klik\n" +"<b>beëindig pad</b>: rechts klikken" + +#: ../src/develop/masks/path.c:3395 +msgid "" +"<b>move node</b>: drag, <b>remove node</b>: right-click\n" +"<b>switch smooth/sharp mode</b>: ctrl+click" +msgstr "" +"<b>verplaats knooppunt</b>: slepen, <b>verwijder knooppunt</b>: rechts " +"klikken\n" +"<b>wissel vloeiend/scherp</b>: ctrl+klik" + +#: ../src/develop/masks/path.c:3399 +msgid "" +"<b>node curvature</b>: drag\n" +"<b>reset curvature</b>: right-click" +msgstr "" +"<b>pas knooppuntkromming aan</b>: slepen\n" +"<b>herstel kromming</b>: rechtermuisklik" + +#: ../src/develop/masks/path.c:3403 +msgid "" +"<b>move segment</b>: drag\n" +"<b>add node</b>: ctrl+click" +msgstr "" +"<b>verplaats segment</b>: slepen\n" +"<b>voeg knooppunt toe</b>: ctrl+klik" + +#: ../src/develop/pixelpipe_hb.c:486 +msgid "enabled as required" +msgstr "ingeschakeld zoals vereist" + +#: ../src/develop/pixelpipe_hb.c:487 +msgid "" +"history had module disabled but it is required for this type of image.\n" +"likely introduced by applying a preset, style or history copy&paste" +msgstr "" +"historie had de module uitgeschakeld, maar die is vereist voor dit type " +"afbeelding.\n" +"waarschijnlijke oorzaak door het toepassen van een voorkeur, stijl of " +"historie van kopiëren en plakken" + +#: ../src/develop/pixelpipe_hb.c:494 +msgid "disabled as not appropriate" +msgstr "uitgeschakeld wegens ongeschikt" + +#: ../src/develop/pixelpipe_hb.c:495 +msgid "" +"history had module enabled but it is not allowed for this type of image.\n" +"likely introduced by applying a preset, style or history copy&paste" +msgstr "" +"historie had de module ingeschakeld, maar die is niet toegelaten voor dit " +"type afbeelding.\n" +"waarschijnlijke oorzaak door het toepassen van een voorkeur, stijl of " +"historie van kopiëren en plakken" + +#: ../src/develop/pixelpipe_hb.c:2697 +msgid "" +"OpenCL errors encountered; disabling OpenCL for this session! some possible " +"causes:\n" +" - OpenCL out of resources due to preference settings. please try with " +"defaults,\n" +" - buggy driver for some device. please run darktable with `-d opencl' to " +"identify,\n" +" - some drivers don't support needed number of events,\n" +" - too small headroom settings while using 'use all device memory'." +msgstr "" +"OpenCL fout; OpenCL wordt uitgeschakeld voor deze sessie! Mogelijke " +"oorzaken:\n" +" - OpenCL onvoldoende systeembronnen door instellingen. Gebruik standaard " +"instelling,\n" +" - fouten in stuurprogramma's. Start darktable met `-d opencl' voor meer " +"info,\n" +" - stuurprogramma's ondersteunen niet alle vereiste gebeurtenissen,\n" +" - te weinig geheugenruimte voor 'gebruik volledige geheugen'." + +#: ../src/develop/pixelpipe_hb.c:2847 +#, c-format +msgid "" +"module '%s' can't get raster mask from module\n" +"'%s' as that is processed later in the pixel pipe.\n" +"raster mask is ignored." +msgstr "" +"module '%s' herkent het masker van module niet\n" +"'%s' omdat die pas later in de werkstroom komt.\n" +"Het raster masker wordt genegeerd." + +#: ../src/develop/tiling.c:819 ../src/develop/tiling.c:1172 +#, c-format +msgid "" +"tiling failed for module '%s'. the output most likely will be OK, but you " +"might want to check." +msgstr "" +"tegelen voor module '%s' mislukt. Resultaat is waarschijnlijk OK, maar " +"controle is gewenst." + +#: ../src/dtgtk/culling.c:223 +msgid "you have reached the start of your selection" +msgstr "dit is de start van uw selectie" + +#: ../src/dtgtk/culling.c:232 +msgid "you have reached the start of your collection" +msgstr "dit is de start van de verzameling" + +#: ../src/dtgtk/culling.c:279 +msgid "you have reached the end of your selection" +msgstr "dit is het einde van uw selectie" + +#: ../src/dtgtk/culling.c:306 +msgid "you have reached the end of your collection" +msgstr "dit is het einde van de verzameling" + +#: ../src/dtgtk/culling.c:415 +#, c-format +msgid "zooming is limited to %d images" +msgstr "zoomen is beperkt tot %d afbeeldingen" + +#: ../src/dtgtk/range.c:214 ../src/dtgtk/range.c:219 +msgid "invalid" +msgstr "ongeldig" + +#: ../src/dtgtk/range.c:327 +#, c-format +msgid "year %s" +msgstr "jaar %s" + +#: ../src/dtgtk/range.c:405 +msgid "" +"enter the minimal value\n" +"use 'min' if no bound\n" +"right-click to select from existing values" +msgstr "" +"voer minimale waarde in\n" +"gebruik 'min' bij geen grens\n" +"rechtermuisknop om te selecteren uit bestaande waarden" + +#: ../src/dtgtk/range.c:411 +msgid "" +"enter the maximal value\n" +"use 'max' if no bound\n" +"right-click to select from existing values" +msgstr "" +"vul maximale waarde in\n" +"gebruik 'max' als er geen grens is\n" +"rechtermuisknop om van een bestaande waarde te selecteren" + +#: ../src/dtgtk/range.c:417 +msgid "" +"enter the value\n" +"right-click to select from existing values" +msgstr "" +"voor de waarde in\n" +"rechtermuisknop om te selecteren uit bestaande waarden" + +#: ../src/dtgtk/range.c:422 +msgid "" +"enter the minimal date\n" +"in the form YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)\n" +"use 'min' if no bound\n" +"use '-' prefix for relative date\n" +"right-click to select from calendar or existing values" +msgstr "" +"vul de minimale datum in\n" +"in het veld YYYY:MM:DD hh:mm:ss.sss (alleen jaar is verplicht)\n" +"gebruik 'min' als er geen grens is\n" +"gebruik '-' prefix voor relatieve datum\n" +"rechtermuisknop om te selecteren uit kalender of bestaande waarden" + +#: ../src/dtgtk/range.c:430 +msgid "" +"enter the maximal date\n" +"in the form YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)\n" +"use 'max' if no bound\n" +"'now' keyword is handled\n" +"use '-' prefix for relative date\n" +"right-click to select from calendar or existing values" +msgstr "" +"vul de uiterste datum in\n" +"in het veld YYYY:MM:DD hh:mm:ss.sss (alleen het jaar is verplicht)\n" +"gebruik 'max' als er geen grens is\n" +"'now' trefwoord kan gebruikt worden\n" +"gebruik '-' prefix voor relative datum\n" +"rechtermuisknop om te selecteren van kalender of bestaande waarden" + +#: ../src/dtgtk/range.c:439 +msgid "" +"enter the date\n" +"in the form YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)\n" +"right-click to select from calendar or existing values" +msgstr "" +"vul datum in\n" +"in het veld YYYY:MM:DD hh:mm:ss.sss (alleen het jaar is verplicht)\n" +"rechtermuisknop om te selecteren uit kalender of bestaande waarden" + +#: ../src/dtgtk/range.c:461 +msgid "date-time interval to subtract from the max value" +msgstr "datum-tijd interval om af te trekken van max waarde" + +#: ../src/dtgtk/range.c:465 +msgid "date-time interval to add to the min value" +msgstr "datum-tijd interval om toe te voegen aan min waarde" + +#: ../src/dtgtk/range.c:486 +msgid "fixed" +msgstr "vast" + +#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1498 +msgid "relative" +msgstr "relatief" + +#: ../src/dtgtk/range.c:577 +msgid "selected" +msgstr "geselecteerd" + +#: ../src/dtgtk/range.c:624 ../src/dtgtk/range.c:1768 ../src/dtgtk/range.c:1819 +#: ../src/libs/colorpicker.c:53 +msgid "min" +msgstr "min" + +#: ../src/dtgtk/range.c:630 ../src/dtgtk/range.c:1780 ../src/dtgtk/range.c:1831 +#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:309 +msgid "max" +msgstr "max" + +#: ../src/dtgtk/range.c:944 +msgid "date type" +msgstr "datum type" + +#. the date section +#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1505 +msgid "date" +msgstr "datum" + +#: ../src/dtgtk/range.c:962 ../src/dtgtk/range.c:1028 +msgid "" +"click to select date\n" +"double-click to use the date directly" +msgstr "" +"klik om datum te selecteren\n" +"dubbelklik om de datum direct te gebruiken" + +#: ../src/dtgtk/range.c:973 +msgid "years: " +msgstr "jaren: " + +#: ../src/dtgtk/range.c:981 +msgid "months: " +msgstr "maanden: " + +#: ../src/dtgtk/range.c:989 +msgid "days: " +msgstr "dagen: " + +#. the time section +#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1505 +msgid "time" +msgstr "tijd" + +#: ../src/dtgtk/range.c:1049 +msgid "current date: " +msgstr "huidige datum: " + +#: ../src/dtgtk/range.c:1053 ../src/dtgtk/range.c:1787 +#: ../src/dtgtk/range.c:1838 +msgid "now" +msgstr "nu" + +#: ../src/dtgtk/range.c:1055 +msgid "set the value to always match current datetime" +msgstr "stel altijd dezelfde waarde in als huidige datumtijd" + +#. apply button +#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:180 +#: ../src/libs/metadata.c:735 ../src/libs/styles.c:901 +msgid "apply" +msgstr "toepassen" + +#: ../src/dtgtk/range.c:1059 +msgid "set the range bound with this value" +msgstr "stel grens van het bereik in op deze waarde" + +#: ../src/dtgtk/resetlabel.c:59 +msgid "double-click to reset" +msgstr "dubbelklikken om te resetten" + +#: ../src/dtgtk/thumbnail.c:142 ../src/dtgtk/thumbnail.c:175 +msgid "current" +msgstr "huidige" + +#: ../src/dtgtk/thumbnail.c:142 ../src/dtgtk/thumbnail.c:151 +msgid "leader" +msgstr "leider" + +#: ../src/dtgtk/thumbnail.c:150 +msgid "" +"\n" +"click here to set this image as group leader\n" +msgstr "" +"\n" +"klik hier om deze afbeelding in te stellen als leider \n" + +#. and the number of grouped images +#: ../src/dtgtk/thumbnail.c:187 ../src/libs/filters/grouping.c:144 +#: ../src/libs/filters/grouping.c:169 +msgid "grouped images" +msgstr "gegroepeerde afbeeldingen" + +#: ../src/dtgtk/thumbnail.c:814 ../src/dtgtk/thumbnail.c:1623 +#: ../src/iop/ashift.c:6138 ../src/iop/ashift.c:6227 ../src/iop/ashift.c:6229 +#: ../src/iop/ashift.c:6231 ../src/libs/navigation.c:111 +#: ../src/libs/navigation.c:193 +msgid "fit" +msgstr "passend" + +#: ../src/dtgtk/thumbtable.c:1139 ../src/views/slideshow.c:422 +msgid "there are no images in this collection" +msgstr "er bevinden zich geen afbeeldingen in deze collectie" + +#: ../src/dtgtk/thumbtable.c:1146 +msgid "if you have not imported any images yet" +msgstr "als nog geen afbeeldingen zijn geïmporteerd" + +#: ../src/dtgtk/thumbtable.c:1150 +msgid "you can do so in the import module" +msgstr "voeg ze dan toe met behulp van de 'importeren'-module" + +#: ../src/dtgtk/thumbtable.c:1159 +msgid "try to relax the filter settings in the top panel" +msgstr "verruim eventueel het filter in het toppaneel" + +#: ../src/dtgtk/thumbtable.c:1170 +msgid "or add images in the collections module in the left panel" +msgstr "" +"of verander de selectie in de 'collecties'-module in het linkerdeelvenster" + +#: ../src/dtgtk/thumbtable.c:1455 +msgid "" +"you have changed the settings related to how thumbnails are generated.\n" +msgstr "" +"je hebt de instellingen gewijzigd die bepalen hoe miniaturen worden " +"gegenereerd.\n" + +#: ../src/dtgtk/thumbtable.c:1458 +msgid "" +"all cached thumbnails need to be invalidated.\n" +"\n" +msgstr "" +"alle miniaturen in de cache moeten ongeldig worden gemaakt.\n" +"\n" + +#: ../src/dtgtk/thumbtable.c:1462 +#, c-format +msgid "" +"cached thumbnails starting from level %d need to be invalidated.\n" +"\n" +msgstr "" +"miniaturen in de cache vanaf niveau %d moeten ongeldig worden gemaakt.\n" +"\n" + +#: ../src/dtgtk/thumbtable.c:1467 +#, c-format +msgid "" +"cached thumbnails below level %d need to be invalidated.\n" +"\n" +msgstr "" +"miniaturen in de cache onder niveau %d moeten ongeldig worden gemaakt.\n" +"\n" + +#: ../src/dtgtk/thumbtable.c:1472 +#, c-format +msgid "" +"cached thumbnails between level %d and %d need to be invalidated.\n" +"\n" +msgstr "" +"miniaturen in de cache tussen niveau %d en %d moeten ongeldig worden " +"gemaakt.\n" +"\n" + +#: ../src/dtgtk/thumbtable.c:1475 +msgid "do you want to do that now?" +msgstr "wil je dat nu doen?" + +#: ../src/dtgtk/thumbtable.c:1477 +msgid "cached thumbnails invalidation" +msgstr "ongeldigverklaring van miniaturen in de cache" + +#. setup history key accelerators +#: ../src/dtgtk/thumbtable.c:2738 +msgid "copy history" +msgstr "kopieer historie" + +#: ../src/dtgtk/thumbtable.c:2740 +msgid "copy history parts" +msgstr "kopieer historiedelen" + +#: ../src/dtgtk/thumbtable.c:2742 +msgid "paste history" +msgstr "plak historie" + +#: ../src/dtgtk/thumbtable.c:2744 +msgid "paste history parts" +msgstr "plak historiedelen" + +#: ../src/dtgtk/thumbtable.c:2746 ../src/libs/copy_history.c:394 +msgid "discard history" +msgstr "verwijder historie" + +#: ../src/dtgtk/thumbtable.c:2749 +msgid "duplicate image" +msgstr "dupliceer afbeelding" + +#: ../src/dtgtk/thumbtable.c:2751 +msgid "duplicate image virgin" +msgstr "dupliceer oorspronkelijke afbeelding" + +#: ../src/dtgtk/thumbtable.c:2761 ../src/libs/select.c:148 +msgid "select film roll" +msgstr "selecteer filmrol" + +#: ../src/dtgtk/thumbtable.c:2763 ../src/libs/select.c:152 +msgid "select untouched" +msgstr "selecteer onbewerkte" + +#: ../src/generate-cache/main.c:50 +#, c-format +msgid "creating cache directories\n" +msgstr "aanmaak cache mappen\n" + +#: ../src/generate-cache/main.c:56 +#, c-format +msgid "creating cache directory '%s'\n" +msgstr "aanmaak cache map '%s'\n" + +#: ../src/generate-cache/main.c:59 +#, c-format +msgid "could not create directory '%s'!\n" +msgstr "kan de map '%s' niet aanmaken!\n" + +#: ../src/generate-cache/main.c:83 +#, c-format +msgid "warning: no images are matching the requested image id range\n" +msgstr "" +"waarschuwing: geen enkele afbeelding komt overeen met vereist bereik " +"afbeeldings id\n" + +#: ../src/generate-cache/main.c:86 +#, c-format +msgid "warning: did you want to swap these boundaries?\n" +msgstr "waarschuwing: verwisselde je de kaders?\n" + +#: ../src/generate-cache/main.c:227 +#, c-format +msgid "" +"warning: disk backend for thumbnail cache is disabled (cache_disk_backend)\n" +"if you want to pre-generate thumbnails and for darktable to use them, you " +"need to enable disk backend for thumbnail cache\n" +"no thumbnails to be generated, done.\n" +msgstr "" +"waarschuwing: schijfopslag voor de miniaturencache is uitgeschakeld " +"(cache_disk_backend)\n" +"als miniaturen vooraf moeten worden gemaakt en worden gebruikt door " +"darktable dan moet de disk-backend voor miniaturen ingeschakeld worden.\n" +"geen miniaturen om te genereren, klaar.\n" + +#: ../src/generate-cache/main.c:238 +#, c-format +msgid "" +"warning: disk backend for full preview cache is disabled " +"(cache_disk_backend_full)\n" +"if you want to pre-generate full previews and for darktable to use them, you " +"need to enable disk backend for full preview cache\n" +"no full previews to be generated, done.\n" +msgstr "" +"waarschuwing: schijfopslag voor de volledige voorbeeld cache is " +"uitgeschakeld (cache_disk_backend_full)\n" +"als je van te voren een volledige voorbeeld wilt genereren die darktable kan " +"gebruiken, moet je schijfopslag voor volledige voorbeeld cache inschakelen\n" +"geen volledige voorbeelden om te genereren , gereed.\n" + +#: ../src/generate-cache/main.c:248 +#, c-format +msgid "error: ensure that min_mip <= max_mip\n" +msgstr "fout: verzeker je ervan dan min_mip <= max_mip\n" + +#: ../src/generate-cache/main.c:253 +#, c-format +msgid "creating complete lighttable thumbnail cache\n" +msgstr "aanmaak complete cache van miniaturen in de bibliotheek\n" + +#: ../src/gui/about.c:34 +#, c-format +msgid "copyright (c) the authors 2009-%s" +msgstr "copyright (c) auteurs 2009-%s" + +#: ../src/gui/about.c:39 +msgid "organize and develop images from digital cameras" +msgstr "organiseer en ontwikkel afbeeldingen van digitale camera's" + +#: ../src/gui/about.c:51 +msgid "all those of you that made previous releases possible" +msgstr "iedereen die eerdere uitgaven mogelijk maakte" + +#: ../src/gui/about.c:56 +msgid "and..." +msgstr "en..." + +#: ../src/gui/about.c:59 +msgid "translator-credits" +msgstr "vertaler credits" + +#: ../src/gui/accelerators.c:72 +msgid "in active view" +msgstr "in actieve weergave" + +#: ../src/gui/accelerators.c:73 +msgid "in other views" +msgstr "in andere weergaven" + +#: ../src/gui/accelerators.c:74 +msgid "fallbacks" +msgstr "terugval" + +#: ../src/gui/accelerators.c:75 +msgid "speed adjustments" +msgstr "snelle aanpassingen" + +#: ../src/gui/accelerators.c:76 +msgid "disabled defaults" +msgstr "uitgeschakelde standaard" + +#: ../src/gui/accelerators.c:96 ../src/views/view.c:1361 +msgid "scroll" +msgstr "scroll" + +#: ../src/gui/accelerators.c:97 +msgid "pan" +msgstr "pan" + +#: ../src/gui/accelerators.c:98 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6230 ../src/iop/clipping.c:1955 +#: ../src/iop/clipping.c:2147 ../src/iop/clipping.c:2163 +#: ../src/views/darkroom.c:2522 ../src/views/lighttable.c:1250 +msgid "horizontal" +msgstr "horizontaal" + +#: ../src/gui/accelerators.c:99 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6228 ../src/iop/clipping.c:1954 +#: ../src/iop/clipping.c:2148 ../src/iop/clipping.c:2162 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:1254 +msgid "vertical" +msgstr "verticaal" + +#: ../src/gui/accelerators.c:100 +msgid "diagonal" +msgstr "diagonaal" + +#: ../src/gui/accelerators.c:102 +msgid "leftright" +msgstr "linksrechts" + +#: ../src/gui/accelerators.c:103 +msgid "updown" +msgstr "opneer" + +#: ../src/gui/accelerators.c:104 +msgid "pgupdown" +msgstr "pgopneer" + +#: ../src/gui/accelerators.c:112 ../src/views/view.c:1343 +msgid "shift" +msgstr "shift" + +#: ../src/gui/accelerators.c:113 ../src/views/view.c:1345 +msgid "ctrl" +msgstr "ctrl" + +#: ../src/gui/accelerators.c:114 ../src/views/view.c:1347 +msgid "alt" +msgstr "alt" + +#: ../src/gui/accelerators.c:115 +msgid "cmd" +msgstr "cmd" + +#: ../src/gui/accelerators.c:116 +msgid "altgr" +msgstr "altgr" + +#: ../src/gui/accelerators.c:127 ../src/gui/accelerators.c:174 +#: ../src/libs/tagging.c:1804 +msgid "edit" +msgstr "bewerken" + +#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 +msgid "up" +msgstr "op" + +#: ../src/gui/accelerators.c:129 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 +msgid "down" +msgstr "neer" + +#: ../src/gui/accelerators.c:133 +msgid "set" +msgstr "set" + +#: ../src/gui/accelerators.c:137 +msgid "popup" +msgstr "popup" + +#: ../src/gui/accelerators.c:138 ../src/gui/accelerators.c:171 +#: ../src/gui/gtk.c:3100 ../src/views/lighttable.c:760 +msgid "next" +msgstr "volgende" + +#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:170 +#: ../src/gui/gtk.c:3101 ../src/views/lighttable.c:761 +msgid "previous" +msgstr "vorige" + +#: ../src/gui/accelerators.c:141 ../src/gui/accelerators.c:1598 +msgid "last" +msgstr "laatste" + +#: ../src/gui/accelerators.c:142 ../src/gui/accelerators.c:1597 +msgid "first" +msgstr "eerste" + +#: ../src/gui/accelerators.c:146 ../src/gui/accelerators.c:159 +#: ../src/gui/accelerators.c:356 ../src/libs/filters/rating_range.c:295 +#: ../src/libs/tagging.c:3150 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2258 ../src/views/darkroom.c:2494 +msgid "toggle" +msgstr "schakel" + +#: ../src/gui/accelerators.c:149 +msgid "ctrl-toggle" +msgstr "ctrl-schakel" + +#: ../src/gui/accelerators.c:150 +msgid "ctrl-on" +msgstr "ctrl-aan" + +#: ../src/gui/accelerators.c:151 +msgid "right-toggle" +msgstr "rechts-schakel" + +#: ../src/gui/accelerators.c:152 +msgid "right-on" +msgstr "rechts-aan" + +#: ../src/gui/accelerators.c:163 ../src/gui/gtk.c:3099 +msgid "activate" +msgstr "activeer" + +#: ../src/gui/accelerators.c:164 +msgid "ctrl-activate" +msgstr "ctrl-activeer" + +#: ../src/gui/accelerators.c:165 +msgid "right-activate" +msgstr "rechts-activeer" + +#: ../src/gui/accelerators.c:172 +msgid "store" +msgstr "sla op" + +#: ../src/gui/accelerators.c:175 ../src/gui/styles_dialog.c:651 +msgid "update" +msgstr "update" + +#: ../src/gui/accelerators.c:176 ../src/libs/tools/global_toolbox.c:60 +#: ../src/libs/tools/global_toolbox.c:510 +msgid "preferences" +msgstr "voorkeuren" + +#: ../src/gui/accelerators.c:181 +msgid "apply on new instance" +msgstr "toepassen op nieuwe instantie" + +#: ../src/gui/accelerators.c:186 +msgid "start" +msgstr "start" + +#: ../src/gui/accelerators.c:187 +msgid "end" +msgstr "einde" + +#: ../src/gui/accelerators.c:374 +msgid "entry" +msgstr "invoer" + +#: ../src/gui/accelerators.c:450 +msgid "combo effect not found" +msgstr "combo-effect niet gevonden" + +#: ../src/gui/accelerators.c:627 +msgid "(keypad)" +msgstr "(toetsenbord)" + +#: ../src/gui/accelerators.c:636 +msgid "tablet button" +msgstr "tablet knop" + +#: ../src/gui/accelerators.c:645 +msgid "unknown driver" +msgstr "onbekend stuurprogramma" + +#: ../src/gui/accelerators.c:718 +msgid "long" +msgstr "lang" + +#: ../src/gui/accelerators.c:719 +msgid "double-press" +msgstr "dubbel drukken" + +#: ../src/gui/accelerators.c:720 +msgid "triple-press" +msgstr "driemaal drukken" + +#: ../src/gui/accelerators.c:721 +msgid "press" +msgstr "druk" + +#: ../src/gui/accelerators.c:725 +msgctxt "accel" +msgid "left" +msgstr "links" + +#: ../src/gui/accelerators.c:726 +msgctxt "accel" +msgid "right" +msgstr "rechts" + +#: ../src/gui/accelerators.c:727 +msgctxt "accel" +msgid "middle" +msgstr "midden" + +#: ../src/gui/accelerators.c:728 +msgctxt "accel" +msgid "long" +msgstr "lang" + +#: ../src/gui/accelerators.c:729 +msgctxt "accel" +msgid "double-click" +msgstr "dubbelklikken" + +#: ../src/gui/accelerators.c:730 +msgctxt "accel" +msgid "triple-click" +msgstr "driemaal klikken" + +#: ../src/gui/accelerators.c:731 +msgid "click" +msgstr "klik" + +#: ../src/gui/accelerators.c:759 +msgid "first instance" +msgstr "eerste instantie" + +#: ../src/gui/accelerators.c:761 +msgid "last instance" +msgstr "laatste instantie" + +#: ../src/gui/accelerators.c:763 +msgid "relative instance" +msgstr "relatieve instantie" + +#: ../src/gui/accelerators.c:780 ../src/gui/accelerators.c:2864 +#: ../src/gui/accelerators.c:3811 +msgid "speed" +msgstr "snelheid" + +#: ../src/gui/accelerators.c:923 +#, c-format +msgid "" +"Lua script command copied to clipboard:\n" +"\n" +"<tt>%s</tt>" +msgstr "" +"Lua script commando naar klembord gekopieerd:\n" +"\n" +"<tt>%s</tt>" + +#: ../src/gui/accelerators.c:1025 ../src/gui/accelerators.c:1044 +msgid "start typing for incremental search" +msgstr "begin te typen om te zoeken" + +#: ../src/gui/accelerators.c:1028 +msgid "" +"\n" +"press Delete to delete selected shortcut" +msgstr "" +"\n" +"klik Delete om de sneltoets te verwijderen" + +#: ../src/gui/accelerators.c:1030 +msgid "" +"\n" +"press Delete to disable selected default shortcut" +msgstr "" +"\n" +"toets Delete om de standaard sneltoets uit te schakelen" + +#: ../src/gui/accelerators.c:1031 +msgid "" +"\n" +"press Delete to restore selected default shortcut" +msgstr "" +"\n" +"toets Delete om de standaard sneltoets te herstellen" + +#: ../src/gui/accelerators.c:1033 +msgid "" +"\n" +"double-click to add new shortcut" +msgstr "" +"\n" +"dubbel-klik om een nieuwe sneltoets toe te voegen" + +#: ../src/gui/accelerators.c:1045 +msgid "click to filter shortcuts list" +msgstr "klik om de lijst te filteren" + +#: ../src/gui/accelerators.c:1047 +msgid "" +"\n" +"right click to show action of selected shortcut" +msgstr "" +"\n" +"rechtermuisklik toont actie van geselecteerde sneltoets" + +#: ../src/gui/accelerators.c:1050 +msgid "" +"\n" +"double-click to define new shortcut" +msgstr "" +"\n" +"dubbelklik om nieuwe sneltoets te definiëren" + +#: ../src/gui/accelerators.c:1081 +msgid "shift+alt+scroll to change height" +msgstr "shift+alt+scroll om hoogte te wijzigen" + +#: ../src/gui/accelerators.c:1101 +msgid "" +"press keys with mouse click and scroll or move combinations to create a " +"shortcut" +msgstr "" +"druk op toetsen met muisklik en scroll of verplaats combinaties om een " +"sneltoets te maken" + +#: ../src/gui/accelerators.c:1102 +msgid "click to open shortcut configuration" +msgstr "klik om sneltoetssconfiguratie te openen" + +#: ../src/gui/accelerators.c:1103 +msgid "ctrl+click to add to quick access panel\n" +msgstr "ctrl+klik voegt een knooppunt toe\n" + +#: ../src/gui/accelerators.c:1104 +msgid "ctrl+click to remove from quick access panel\n" +msgstr "widget toevoegen aan het paneel voor snelle toegang\n" + +#: ../src/gui/accelerators.c:1105 +msgid "scroll to change default speed" +msgstr "scroll om standaard snelheid te wijzigen" + +#: ../src/gui/accelerators.c:1106 +msgid "right click to exit mapping mode" +msgstr "klik met de rechtermuisknop om de kaartmodus te verlaten" + +#: ../src/gui/accelerators.c:1119 +#, c-format +msgid "" +"%sright-click to type a specific value between <b>%s</b> and <b>%s</b>\n" +"or hold ctrl+shift while dragging to ignore soft limits." +msgstr "" +"%srechtermuisklik om een waarde in te voeren tussen <b>%s</b> en <b>%s</b>\n" +"of klik en sleep met ctrl+shift om de grenzen te negeren." + +#: ../src/gui/accelerators.c:1183 +msgid "ctrl+v" +msgstr "ctrl+v" + +#: ../src/gui/accelerators.c:1183 +msgid "right long click" +msgstr "lange rechtermuisklik" + +#: ../src/gui/accelerators.c:1183 +msgid "to copy Lua command" +msgstr "om Lua-commando te kopiëren" + +#: ../src/gui/accelerators.c:1451 +msgid "shortcut for move exists with single effect" +msgstr "sneltoets voor verplaatsen bestaat met enkel effect" + +#: ../src/gui/accelerators.c:1452 +#, c-format +msgid "" +"%s\n" +"\n" +"(assign %s to %s)" +msgstr "" +"%s\n" +"\n" +"(%s toekennen aan %s)" + +#: ../src/gui/accelerators.c:1453 +msgid "create separate shortcuts for up and down move?" +msgstr "aparte sneltoetsen maken voor omhoog en omlaag bewegen?" + +#: ../src/gui/accelerators.c:1479 +#, c-format +msgid "%s, speed reset" +msgstr "%s, snelheid reset" + +#: ../src/gui/accelerators.c:1497 +msgid "shortcut exists with different settings" +msgstr "sneltoets bestaat met verschillende instellingen" + +#: ../src/gui/accelerators.c:1498 +msgid "reset the settings of the shortcut?" +msgstr "de instellingen van de sneltoets resetten?" + +#: ../src/gui/accelerators.c:1507 +msgid "shortcut already exists" +msgstr "sneltoets bestaat al" + +#: ../src/gui/accelerators.c:1509 +msgid "disable this default shortcut?" +msgstr "deze standaard sneltoets uitschakelen?" + +#: ../src/gui/accelerators.c:1510 +msgid "remove the shortcut?" +msgstr "verwijder de sneltoets?" + +#: ../src/gui/accelerators.c:1550 +msgid "clashing shortcuts exist" +msgstr "er zijn tegenstrijdige sneltoetsen" + +#: ../src/gui/accelerators.c:1551 +msgid "remove these existing shortcuts?" +msgstr "deze bestaande sneltoetsen verwijderen?" + +#. or 3, but change char relative[] = "-2" to "-1" +#. NUM_INSTANCES +#: ../src/gui/accelerators.c:1596 +msgid "preferred" +msgstr "heeft voorkeur" + +#: ../src/gui/accelerators.c:1599 +msgid "second" +msgstr "tweede" + +#: ../src/gui/accelerators.c:1600 +msgid "last but one" +msgstr "op één na laatste" + +#: ../src/gui/accelerators.c:1761 ../src/gui/accelerators.c:1826 +msgid "(unchanged)" +msgstr "(ongewijzigd)" + +#: ../src/gui/accelerators.c:1941 +msgid "" +"define a shortcut by pressing a key, optionally combined with modifier keys " +"(ctrl/shift/alt)\n" +"a key can be double or triple pressed, with a long last press\n" +"while the key is held, a combination of mouse buttons can be (double/triple/" +"long) clicked\n" +"still holding the key (and modifiers and/or buttons) a scroll or mouse move " +"can be added\n" +"connected devices can send keys or moves using their physical controllers\n" +"\n" +"right-click to cancel" +msgstr "" +"definieer een sneltoets door op een toets te drukken, eventueel samen met " +"ctrl/shift/alt,\n" +"een toets kan tweemaal of driemaal worden ingedrukt, met de laatste keer " +"lang drukken\n" +"terwijl de toets wordt ingedrukt, kan op een combinatie van muisknoppen " +"(dubbel/drie/lang) worden geklikt\n" +"terwijl je de toetsen en/of knoppen nog steeds ingedrukt houdt, kan een " +"scroll- of muisbeweging worden toegevoegd\n" +"verbonden apparaten kunnen toetsen of muisbewegingen nadoen met hun fysieke " +"controllers\n" +"\n" +"rechtermuisklik om af te breken" + +#: ../src/gui/accelerators.c:2014 +msgid "removing shortcut" +msgstr "sneltoets verwijderen" + +#: ../src/gui/accelerators.c:2016 +msgid "disable the selected default shortcut?" +msgstr "schakel de geselecteerde standaard sneltoets uit?" + +#: ../src/gui/accelerators.c:2017 +msgid "restore the selected default shortcut?" +msgstr "herstel de geselecteerde standaard sneltoets?" + +#: ../src/gui/accelerators.c:2018 +msgid "remove the selected shortcut?" +msgstr "verwijder de geselecteerde sneltoets?" + +#: ../src/gui/accelerators.c:2107 +msgid "command" +msgstr "commando" + +#: ../src/gui/accelerators.c:2108 +msgid "preset" +msgstr "voorkeur" + +#: ../src/gui/accelerators.c:2491 +msgid "restore shortcuts" +msgstr "sneltoetsen herstellen" + +#: ../src/gui/accelerators.c:2494 +msgid "_defaults" +msgstr "_standaarden" + +#: ../src/gui/accelerators.c:2495 +msgid "_startup" +msgstr "_opstart" + +#: ../src/gui/accelerators.c:2496 +msgid "_edits" +msgstr "_bewerkingen" + +#: ../src/gui/accelerators.c:2503 +msgid "" +"restore shortcuts from one of these states:\n" +" - default\n" +" - as at startup\n" +" - as when opening this dialog\n" +msgstr "" +"herstel sneltoetsen vanuit een van deze toestanden:\n" +" - standaard\n" +" - zoals bij opstarten\n" +" - zoals bij openen van dit dialoogvenster\n" + +#: ../src/gui/accelerators.c:2510 +msgid "" +"clear all newer shortcuts\n" +"(instead of just restoring changed ones)" +msgstr "" +"alle nieuwere sneltoetsen wissen\n" +"(in plaats van alleen gewijzigde te herstellen)" + +#: ../src/gui/accelerators.c:2567 ../src/gui/preferences.c:905 +#: ../src/libs/tools/global_toolbox.c:494 +#: ../src/libs/tools/global_toolbox.c:652 +msgid "shortcuts" +msgstr "sneltoetsen" + +#: ../src/gui/accelerators.c:2577 +msgid "export shortcuts" +msgstr "sneltoetsen exporteren" + +#: ../src/gui/accelerators.c:2586 +msgid "" +"export all shortcuts to a file\n" +"or just for one selected device\n" +msgstr "" +"exporteer alle sneltoetsen naar een bestand\n" +"of alleen voor één geselecteerd apparaat\n" + +#: ../src/gui/accelerators.c:2593 ../src/gui/accelerators.c:2675 +msgid "keyboard" +msgstr "toetsenbord" + +#: ../src/gui/accelerators.c:2605 +msgid "device id" +msgstr "apparaat id" + +#: ../src/gui/accelerators.c:2631 +msgid "select file to export" +msgstr "kies bestand voor export" + +#: ../src/gui/accelerators.c:2632 ../src/libs/tagging.c:2556 +msgid "_export" +msgstr "_exporteren" + +#: ../src/gui/accelerators.c:2659 +msgid "import shortcuts" +msgstr "importeer sneltoetsen" + +#: ../src/gui/accelerators.c:2668 +msgid "" +"import all shortcuts from a file\n" +"or just for one selected device\n" +msgstr "" +"importeer alle sneltoetsen uit een bestand\n" +"of alleen voor één geselecteerd apparaat\n" + +#: ../src/gui/accelerators.c:2687 +msgid "id in file" +msgstr "id in bestand" + +#: ../src/gui/accelerators.c:2693 +msgid "id when loaded" +msgstr "id wanneer geopend" + +#: ../src/gui/accelerators.c:2697 +msgid "clear device first" +msgstr "apparaat eerst wissen" + +#: ../src/gui/accelerators.c:2722 +msgid "select file to import" +msgstr "kies bestand voor import" + +#: ../src/gui/accelerators.c:2723 ../src/libs/tagging.c:2520 +msgid "_import" +msgstr "_importeren" + +#: ../src/gui/accelerators.c:2815 +msgid "search shortcuts list" +msgstr "doorzoek lijst met sneltoetsen" + +#: ../src/gui/accelerators.c:2817 +msgid "" +"incrementally search the list of shortcuts\n" +"press up or down keys to cycle through matches" +msgstr "" +"doorzoek stapsgewijs de lijst met sneltoetsen\n" +"druk op de toetsen omhoog of omlaag om door kandidaten te bladeren" + +#: ../src/gui/accelerators.c:2837 ../src/views/view.c:1554 +msgid "shortcut" +msgstr "sneltoets" + +#: ../src/gui/accelerators.c:2840 ../src/gui/accelerators.c:2942 +#: ../src/views/view.c:1556 +msgid "action" +msgstr "actie" + +#: ../src/gui/accelerators.c:2850 +msgid "element" +msgstr "element" + +#: ../src/gui/accelerators.c:2858 +msgid "effect" +msgstr "effect" + +#: ../src/gui/accelerators.c:2918 +msgid "search actions list" +msgstr "doorzoek actielijst" + +#: ../src/gui/accelerators.c:2920 +msgid "" +"incrementally search the list of actions\n" +"press up or down keys to cycle through matches" +msgstr "" +"doorzoek stapsgewijs de lijst met acties\n" +"druk op de toetsen omhoog of omlaag om door wedstrijden te bladeren" + +#: ../src/gui/accelerators.c:2950 ../src/gui/guides.c:719 +#: ../src/libs/export_metadata.c:179 +msgid "type" +msgstr "type" + +#: ../src/gui/accelerators.c:2988 +msgid "enable fallbacks" +msgstr "schakel terugval in" + +#: ../src/gui/accelerators.c:2989 +msgid "" +"enables default meanings for additional buttons, modifiers or moves\n" +"when used in combination with a base shortcut" +msgstr "" +"schakelt standaardbetekenissen in voor extra knoppen, modifiers of zetten\n" +"indien gebruikt in combinatie met een basissneltoets" + +#: ../src/gui/accelerators.c:2997 +msgid "open help page for shortcuts" +msgstr "open help-pagina voor sneltoetsen" + +#: ../src/gui/accelerators.c:3002 +msgid "restore..." +msgstr "verwijderen..." + +#: ../src/gui/accelerators.c:3003 +msgid "restore default shortcuts or previous state" +msgstr "standaard sneltoetsen of vorige status herstellen" + +#: ../src/gui/accelerators.c:3007 ../src/libs/styles.c:887 +#: ../src/libs/tagging.c:3282 +msgid "import..." +msgstr "importeren..." + +#: ../src/gui/accelerators.c:3008 +msgid "fully or partially import shortcuts from file" +msgstr "sneltoetsen volledig of gedeeltelijk importeren uit bestand" + +#: ../src/gui/accelerators.c:3012 ../src/libs/styles.c:894 +#: ../src/libs/tagging.c:3285 +msgid "export..." +msgstr "exporteren..." + +#: ../src/gui/accelerators.c:3013 +msgid "fully or partially export shortcuts to file" +msgstr "sneltoetsen naar bestand volledig of gedeeltelijk exporteren" + +#: ../src/gui/accelerators.c:3021 +msgid "" +"the recommended way to assign shortcuts to visual elements is the <b>visual " +"shortcut mapping</b> mode.\n" +"this is switched on by toggling the <i>\"keyboard\"</i> button next to " +"preferences in the top panel. in this mode, clicking on a widget or area " +"will open this dialog with the appropriate selection for advanced " +"configuration.\n" +"\n" +"multiple shortcuts can be assigned to the same action. this is especially " +"useful if it has multiple <i>elements</i>, like the module buttons or the " +"colorpickers attached to sliders. however, with <i>fallbacks</i> enabled one " +"can use the same simple shortcuts and change their <i>element</i> or " +"<i>effect</i> by adding mouse clicks.\n" +"\n" +"<i>click <b> three times </b> to dismiss this notice permanently</i>" +msgstr "" +"de aanbevolen manier om sneltoetsen te koppelen aan visuele elementen is de " +"<b>visuele sneltoets koppeling</b> modus.\n" +"Dit is te activeren via de <i>\"toetsenbord\"</i> knop naast de instellingen " +"in het bovenste paneel. In deze modus leidt een muisklik op een widget of " +"schermgebied tot een dialoog voor toepasselijke configuratie.\n" +"\n" +"meer sneltoetsen kunnen gekoppeld worden aan dezelfde actie. Dat is met name " +"zinvol als er meer <i>elementen</i> zijn, zoals module knoppen of " +"kleurkiezers bij schuifregelaars. Echter, als <i>fallbacks</i> actief zijn, " +"kan men een simpele sneltoets gebruiken en het <i>element</i> of <i>effect</" +"i> veranderen door muiskliks toe te voegen.\n" +"\n" +"<i>klik <b> drie maal </b> om dit bericht niet meer te tonen</i>" + +#: ../src/gui/accelerators.c:3452 +msgid "reinitialising input devices" +msgstr "herinitialiseren invoerapparaten" + +#: ../src/gui/accelerators.c:3594 +msgid "down move" +msgstr "verplaats lager" + +#: ../src/gui/accelerators.c:3594 +msgid "flip top/bottom first/last" +msgstr "verwissel boven/onder eerste/laatste" + +#: ../src/gui/accelerators.c:3679 +msgid "fallback to move" +msgstr "verplaats terugval" + +#: ../src/gui/accelerators.c:3921 +#, c-format +msgid "%s not assigned" +msgstr "%s niet toegekend" + +#: ../src/gui/accelerators.c:4102 +#, c-format +msgid "%s assigned to %s" +msgstr "%s toegekend aan %s" + +#: ../src/gui/accelerators.c:4321 +msgid "short key press resets stuck keys" +msgstr "kort drukken om hangende toets te herstellen" + +#: ../src/gui/gtk.c:175 ../src/views/darkroom.c:3861 +msgid "darktable - darkroom preview" +msgstr "darktable - ontwikkelen voorbeeldweergave" + +#: ../src/gui/gtk.c:186 +msgid "tooltips off" +msgstr "gereedschapstips uit" + +#: ../src/gui/gtk.c:188 +msgid "tooltips on" +msgstr "gereedschapstips aan" + +#: ../src/gui/gtk.c:193 +msgid "" +"tooltip visibility can only be toggled if compositing is enabled in your " +"window manager" +msgstr "" +"gereedschapstips kunnen alleen worden in-/uitgeschakeld als compositie is " +"ingeschakeld in je windowmanager" + +#: ../src/gui/gtk.c:809 +msgid "closing darktable..." +msgstr "darktable afsluiten..." + +#: ../src/gui/gtk.c:1032 +msgid "URL opened in web browser" +msgstr "URL geopend in webbrowser" + +#: ../src/gui/gtk.c:1036 +msgid "error while opening URL in web browser" +msgstr "fout tijdens openen van de URL in webbrowser" + +#. View menu +#: ../src/gui/gtk.c:1104 +msgctxt "menu" +msgid "Views" +msgstr "Weergaven" + +#: ../src/gui/gtk.c:1108 +msgctxt "menu" +msgid "lighttable" +msgstr "bibliotheek" + +#: ../src/gui/gtk.c:1109 +msgctxt "menu" +msgid "darkroom" +msgstr "ontwikkelen" + +#: ../src/gui/gtk.c:1115 +msgctxt "menu" +msgid "slideshow" +msgstr "presentatie" + +#: ../src/gui/gtk.c:1117 +msgctxt "menu" +msgid "map" +msgstr "kaart" + +#: ../src/gui/gtk.c:1119 +msgctxt "menu" +msgid "print" +msgstr "afdrukken" + +#: ../src/gui/gtk.c:1121 +msgctxt "menu" +msgid "tethering" +msgstr "tethering" + +#. Help menu +#: ../src/gui/gtk.c:1127 +msgctxt "menu" +msgid "Help" +msgstr "Help" + +#: ../src/gui/gtk.c:1131 +msgctxt "menu" +msgid "darktable Manual" +msgstr "darktable handleiding" + +#: ../src/gui/gtk.c:1138 +msgctxt "menu" +msgid "darktable Homepage" +msgstr "darktable website" + +#: ../src/gui/gtk.c:1162 +msgctxt "menu" +msgid "Preferences" +msgstr "Voorkeuren" + +#: ../src/gui/gtk.c:1232 +msgid "panels" +msgstr "panelen" + +#: ../src/gui/gtk.c:1264 +msgid "switch views" +msgstr "wissel weergaven" + +#: ../src/gui/gtk.c:1265 ../src/views/tethering.c:102 +msgid "tethering" +msgstr "tethering" + +#: ../src/gui/gtk.c:1268 ../src/views/map.c:197 +msgid "map" +msgstr "kaart" + +#: ../src/gui/gtk.c:1269 ../src/views/slideshow.c:390 +msgid "slideshow" +msgstr "presentatie" + +#. Print button +#: ../src/gui/gtk.c:1270 ../src/libs/print_settings.c:2885 +msgid "print" +msgstr "afdrukken" + +#. register ctrl-q to quit: +#: ../src/gui/gtk.c:1276 +msgid "quit" +msgstr "verlaat" + +#. Full-screen accelerator (no ESC handler here to enable quit-slideshow using ESC) +#: ../src/gui/gtk.c:1279 +msgid "fullscreen" +msgstr "volledig scherm" + +#: ../src/gui/gtk.c:1283 +msgid "collapsing controls" +msgstr "inklappen bediening" + +#. specific top/bottom toggles +#: ../src/gui/gtk.c:1285 +msgid "header" +msgstr "koptekst" + +#: ../src/gui/gtk.c:1286 +msgid "filmstrip and timeline" +msgstr "filmstrip en tijdlijn" + +#: ../src/gui/gtk.c:1287 +msgid "top toolbar" +msgstr "boven paneel" + +#: ../src/gui/gtk.c:1288 +msgid "bottom toolbar" +msgstr "onder paneel" + +#: ../src/gui/gtk.c:1289 +msgid "all top" +msgstr "allen boven" + +#: ../src/gui/gtk.c:1290 +msgid "all bottom" +msgstr "allen onder" + +#: ../src/gui/gtk.c:1292 +msgid "toggle tooltip visibility" +msgstr "schakel zichtbaarheid van tooltip in" + +#: ../src/gui/gtk.c:1293 +msgid "reinitialise input devices" +msgstr "herinitialiseer invoerapparaten" + +#: ../src/gui/gtk.c:1331 +msgid "toggle focus-peaking mode" +msgstr "focus piek modus aan/uit" + +#. toggle focus peaking everywhere +#: ../src/gui/gtk.c:1336 +msgid "toggle focus peaking" +msgstr "focus piek aan/uit" + +#: ../src/gui/gtk.c:1654 ../src/gui/gtk.c:3189 ../src/gui/gtk.c:3194 +#: ../src/gui/gtk.c:3199 ../src/gui/gtk.c:3204 +msgid "tabs" +msgstr "tabs" + +#. ask the user if darktable.org may be accessed +#: ../src/gui/gtk.c:2707 +msgid "access the online user manual?" +msgstr "online gebruikershandleiding raadplegen?" + +#: ../src/gui/gtk.c:2708 +#, c-format +msgid "do you want to access `%s'?" +msgstr "wil je toegang krijgen tot `%s’?" + +#: ../src/gui/gtk.c:2778 +msgid "there is no help available for this element" +msgstr "hiervoor ontbreekt een help functie" + +#. font name can only use period as decimal separator +#. but printf format strings use comma for some locales, so replace comma with period +#: ../src/gui/gtk.c:2798 ../src/libs/metadata_view.c:762 +#, c-format +msgid "%.1f" +msgstr "%.1f" + +#: ../src/gui/gtk.c:2800 +#, c-format +msgid "Sans %s" +msgstr "Sans %s" + +#: ../src/gui/gtk.c:3094 +msgid "does not contain pages" +msgstr "bevat geen pagina's" + +#: ../src/gui/gtk.c:3313 +#, c-format +msgid "never show more than %d lines" +msgstr "toon nooit meer dan %d regels" + +#: ../src/gui/gtkentry.c:173 +msgid "$(ROLL.NAME) - roll of the input image" +msgstr "$(ROLL.NAME) - map van de ingevoerde afbeelding" + +#: ../src/gui/gtkentry.c:174 +msgid "$(FILE.FOLDER) - folder containing the input image" +msgstr "$(FILE.FOLDER) - map gelijk aan de bronafbeelding" + +#: ../src/gui/gtkentry.c:175 +msgid "$(FILE.NAME) - basename of the input image" +msgstr "$(FILE.NAME) - basisnaam van de bronafbeelding" + +#: ../src/gui/gtkentry.c:176 +msgid "$(FILE.EXTENSION) - extension of the input image" +msgstr "$(FILE.EXTENSION) - extensie van de bronafbeelding" + +#: ../src/gui/gtkentry.c:177 +msgid "$(VERSION) - duplicate version" +msgstr "$(VERSION) - versienummer" + +#: ../src/gui/gtkentry.c:178 +msgid "" +"$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version " +"exists" +msgstr "" +"$(VERSION.IF.MULTI) - hetzelfde als $(VERSION) maar alleen als er meer " +"versies zijn" + +#: ../src/gui/gtkentry.c:179 +msgid "$(VERSION.NAME) - version name from metadata" +msgstr "$(VERSION.NAME)) - versienaam uit metadata" + +#: ../src/gui/gtkentry.c:180 +msgid "$(JOBCODE) - job code for import" +msgstr "$(JOBCODE) - import taakomschrijving" + +#: ../src/gui/gtkentry.c:181 +msgid "$(SEQUENCE) - sequence number" +msgstr "$(SEQUENCE) - volgnummer" + +#: ../src/gui/gtkentry.c:182 +msgid "$(WIDTH.MAX) - maximum image export width" +msgstr "$(WIDTH.MAX) - maximale afbeeldings exporteer breedte" + +#: ../src/gui/gtkentry.c:183 +msgid "$(WIDTH.SENSOR) - image sensor width" +msgstr "$(WIDTH.SENSOR) - breedte beeldsensor" + +#: ../src/gui/gtkentry.c:184 +msgid "$(WIDTH.RAW) - RAW image width" +msgstr "$(WIDTH.RAW) - RAW afbeelding breedte" + +#: ../src/gui/gtkentry.c:185 +msgid "$(WIDTH.CROP) - image width after crop" +msgstr "$(WIDTH.CROP) - afbeeldingsbreedte na uitsnijden" + +#: ../src/gui/gtkentry.c:186 +msgid "$(WIDTH.EXPORT) - exported image width" +msgstr "$(WIDTH.EXPORT) - breedte van geëxporteerde afbeelding" + +#: ../src/gui/gtkentry.c:187 +msgid "$(HEIGHT.MAX) - maximum image export height" +msgstr "$(HEIGHT.MAX) - maximale afbeeldings exporteer hoogte" + +#: ../src/gui/gtkentry.c:188 +msgid "$(HEIGHT.SENSOR) - image sensor height" +msgstr "$(HEIGHT.SENSOR) - afbeelding sensor hoogte" + +#: ../src/gui/gtkentry.c:189 +msgid "$(HEIGHT.RAW) - RAW image height" +msgstr "$(HEIGHT.RAW) - RAW afbeeldingshoogte" + +#: ../src/gui/gtkentry.c:190 +msgid "$(HEIGHT.CROP) - image height after crop" +msgstr "$(HEIGHT.CROP) - afbeeldingshoogte na uitsnijden" + +#: ../src/gui/gtkentry.c:191 +msgid "$(HEIGHT.EXPORT) - exported image height" +msgstr "$(HEIGHT.EXPORT) - hoogte van geëxporteerde afbeelding" + +#: ../src/gui/gtkentry.c:192 +msgid "$(YEAR) - year" +msgstr "$(YEAR) - jaar" + +#: ../src/gui/gtkentry.c:193 +msgid "$(YEAR.SHORT) - year without century" +msgstr "$(YEAR.SHORT) - jaar zonder eeuw" + +#: ../src/gui/gtkentry.c:194 +msgid "$(MONTH) - month" +msgstr "$(MONTH) - maand" + +#: ../src/gui/gtkentry.c:195 +msgid "$(MONTH.SHORT) - abbreviated month name according to the current locale" +msgstr "$(MONTH.SHORT) - afgekorte maand naam volgens huidige lokaal" + +#: ../src/gui/gtkentry.c:196 +msgid "$(MONTH.LONG) - full month name according to the current locale" +msgstr "$(MONTH.LONG) - volledige maand naam volgens huidige lokaal" + +#: ../src/gui/gtkentry.c:197 +msgid "$(DAY) - day" +msgstr "$(DAY) - dag" + +#: ../src/gui/gtkentry.c:198 +msgid "$(HOUR) - hour" +msgstr "$(HOUR) - uur" + +#: ../src/gui/gtkentry.c:199 +msgid "$(HOUR.AMPM) - hour, 12-hour clock" +msgstr "$(HOUR.AMPM) - uur, 12-uurs klok" + +#: ../src/gui/gtkentry.c:200 +msgid "$(MINUTE) - minute" +msgstr "$(MINUTE) - minuut" + +#: ../src/gui/gtkentry.c:201 +msgid "$(SECOND) - second" +msgstr "$(SECOND) - seconde" + +#: ../src/gui/gtkentry.c:202 +msgid "$(MSEC) - millisecond" +msgstr "$(MSEC) - milliseconde" + +#: ../src/gui/gtkentry.c:203 +msgid "$(EXIF.YEAR) - EXIF year" +msgstr "$(EXIF.YEAR) - EXIF jaar" + +#: ../src/gui/gtkentry.c:204 +msgid "$(EXIF.YEAR.SHORT) - EXIF year without century" +msgstr "$(EXIF.YEAR.SHORT) - EXIF jaar zonder eeuw" + +#: ../src/gui/gtkentry.c:205 +msgid "$(EXIF.MONTH) - EXIF month" +msgstr "$(EXIF.MONTH) - EXIF maand" + +#: ../src/gui/gtkentry.c:206 +msgid "" +"$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current " +"locale" +msgstr "$(EXIF.MONTH.SHORT) - afgekorte EXIF maand naam volgens huidige lokaal" + +#: ../src/gui/gtkentry.c:207 +msgid "" +"$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" +msgstr "$(EXIF.MONTH.LONG) - volledige EXIF maand naam volgens huidige lokaal" + +#: ../src/gui/gtkentry.c:208 +msgid "$(EXIF.DAY) - EXIF day" +msgstr "$(EXIF.DAY) - EXIF dag" + +#: ../src/gui/gtkentry.c:209 +msgid "$(EXIF.HOUR) - EXIF hour" +msgstr "$(EXIF.HOUR) - EXIF uur" + +#: ../src/gui/gtkentry.c:210 +msgid "$(EXIF.HOUR.AMPM) - EXIF hour, 12-hour clock" +msgstr "$(EXIF.HOUR.AMPM) - EXIF uur, 12-uurs klok" + +#: ../src/gui/gtkentry.c:211 +msgid "$(EXIF.MINUTE) - EXIF minute" +msgstr "$(EXIF.MINUTE) - EXIF minuut" + +#: ../src/gui/gtkentry.c:212 +msgid "$(EXIF.SECOND) - EXIF second" +msgstr "$(EXIF.SECOND) - EXIF seconde" + +#: ../src/gui/gtkentry.c:213 +msgid "$(EXIF.MSEC) - EXIF millisecond" +msgstr "$(EXIF.MSEC) - EXIF milliseconde" + +#: ../src/gui/gtkentry.c:214 +msgid "$(EXIF.ISO) - ISO value" +msgstr "$(EXIF.ISO) - ISO waarde" + +#: ../src/gui/gtkentry.c:215 +msgid "$(EXIF.EXPOSURE) - EXIF exposure" +msgstr "$(EXIF.EXPOSURE) - EXIF belichting" + +#: ../src/gui/gtkentry.c:216 +msgid "$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias" +msgstr "$(EXIF.EXPOSURE.BIAS) - EXIF belichtingscorrectie" + +#: ../src/gui/gtkentry.c:217 +msgid "$(EXIF.APERTURE) - EXIF aperture" +msgstr "$(EXIF.APERTURE) - EXIF diafragma" + +#: ../src/gui/gtkentry.c:218 +msgid "$(EXIF.CROP_FACTOR) - EXIF crop factor" +msgstr "$(EXIF.CROP_FACTOR) - EXIF crop factor" + +#: ../src/gui/gtkentry.c:219 +msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" +msgstr "$(EXIF.FOCAL.LENGTH) - EXIF brandpuntsafstand" + +#: ../src/gui/gtkentry.c:220 +msgid "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent focal length" +msgstr "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent focal length" + +#: ../src/gui/gtkentry.c:221 +msgid "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" +msgstr "$(EXIF.FOCUS.DISTANCE) - EXIF focus afstand" + +#: ../src/gui/gtkentry.c:222 +msgid "$(EXIF.MAKER) - camera maker" +msgstr "$(EXIF.MAKER) - camera merk" + +#: ../src/gui/gtkentry.c:223 +msgid "$(EXIF.MODEL) - camera model" +msgstr "$(EXIF.MODEL) - camera model" + +#: ../src/gui/gtkentry.c:224 +msgid "$(EXIF.LENS) - lens" +msgstr "$(EXIF.LENS) - lens" + +#: ../src/gui/gtkentry.c:225 +msgid "$(LONGITUDE) - longitude" +msgstr "$(LONGITUDE) - lengtegraad" + +#: ../src/gui/gtkentry.c:226 +msgid "$(LATITUDE) - latitude" +msgstr "$(LATITUDE) - breedtegraad" + +#: ../src/gui/gtkentry.c:227 +msgid "$(ELEVATION) - elevation" +msgstr "$(ELEVATION) - hoogte" + +#: ../src/gui/gtkentry.c:228 +msgid "$(STARS) - star rating as number (-1 for rejected)" +msgstr "$(STARS) - ster waardering als nummer (-1 voor afwijzen)" + +#: ../src/gui/gtkentry.c:229 +msgid "$(RATING.ICONS) - star/reject rating in icon form" +msgstr "$(RATING.ICONS) - sterwaardering/afwijzing in icoon" + +#: ../src/gui/gtkentry.c:230 +msgid "$(LABELS) - color labels as text" +msgstr "$(LABELS) - kleurlabels als tekst" + +#: ../src/gui/gtkentry.c:231 +msgid "$(LABELS.ICONS) - color labels as icons" +msgstr "$(LABELS.ICONS) - kleur labels als iconen" + +#: ../src/gui/gtkentry.c:232 +msgid "$(ID) - image ID" +msgstr "$(ID) - Afbeelding ID" + +#: ../src/gui/gtkentry.c:233 +msgid "$(TITLE) - title from metadata" +msgstr "$(TITLE) - titel volgens metadata" + +#: ../src/gui/gtkentry.c:234 +msgid "$(DESCRIPTION) - description from metadata" +msgstr "$(DESCRIPTION) - omschrijving van metadata" + +#: ../src/gui/gtkentry.c:235 +msgid "$(CREATOR) - creator from metadata" +msgstr "$(CREATOR) - auteur volgens metadata" + +#: ../src/gui/gtkentry.c:236 +msgid "$(PUBLISHER) - publisher from metadata" +msgstr "$(PUBLISHER) - uitgever volgens metadata" + +#: ../src/gui/gtkentry.c:237 +msgid "$(RIGHTS) - rights from metadata" +msgstr "$(RIGHTS) - rechten volgens metadata" + +#: ../src/gui/gtkentry.c:238 +msgid "$(USERNAME) - login name" +msgstr "$(USERNAME) - inlog naam" + +#: ../src/gui/gtkentry.c:239 +msgid "$(FOLDER.PICTURES) - pictures folder" +msgstr "$(PICTURES.FOLDER) - afbeeldingsmap" + +#: ../src/gui/gtkentry.c:240 +msgid "$(FOLDER.HOME) - home folder" +msgstr "$(FOLDER.HOME) - persoonlijke map" + +#: ../src/gui/gtkentry.c:241 +msgid "$(FOLDER.DESKTOP) - desktop folder" +msgstr "$(FOLDER.DESKTOP) - bureaublad map" + +#: ../src/gui/gtkentry.c:242 +msgid "$(OPENCL.ACTIVATED) - whether OpenCL is activated" +msgstr "$(OPENCL.ACTIVATED) - of OpenCL is geactiveerd" + +#: ../src/gui/gtkentry.c:243 +msgid "$(CATEGORY0(category)) - subtag of level 0 in hierarchical tags" +msgstr "$(CATEGORY0(category)) - sublabel van level 0 in hiërarchische labels" + +#: ../src/gui/gtkentry.c:244 +msgid "$(TAGS) - tags as set in metadata settings" +msgstr "$(TAGS) - labels zoals geconfigureerd in de metadata instellingen" + +#: ../src/gui/gtkentry.c:245 +msgid "$(DARKTABLE.NAME) - darktable name" +msgstr "$(DARKTABLE.NAME) - darktable naam" + +#: ../src/gui/gtkentry.c:246 +msgid "$(DARKTABLE.VERSION) - current darktable version" +msgstr "$(DARKTABLE.VERSION) - huidige darktable versie" + +#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:248 +msgid "grid" +msgstr "raster" + +#: ../src/gui/guides.c:31 +msgid "rules of thirds" +msgstr "regel van derden" + +#: ../src/gui/guides.c:32 +msgid "metering" +msgstr "meting" + +#: ../src/gui/guides.c:33 +msgid "perspective" +msgstr "perspectief" + +#: ../src/gui/guides.c:34 +msgid "diagonal method" +msgstr "diagonaal methode" + +#: ../src/gui/guides.c:35 +msgid "harmonious triangles" +msgstr "harmonieuze driehoeken" + +#: ../src/gui/guides.c:36 +msgid "golden sections" +msgstr "gulden snede" + +#: ../src/gui/guides.c:37 +msgid "golden spiral" +msgstr "gulden spiraal" + +#: ../src/gui/guides.c:38 +msgid "golden spiral sections" +msgstr "gulden snede secties" + +#: ../src/gui/guides.c:39 +msgid "golden mean (all guides)" +msgstr "gulden snede (alle hulplijnen)" + +#: ../src/gui/guides.c:218 +msgid "horizontal lines" +msgstr "horizontale lijnen" + +#: ../src/gui/guides.c:219 +msgid "number of horizontal guide lines" +msgstr "aantal horizontale hulplijnen" + +#: ../src/gui/guides.c:228 +msgid "vertical lines" +msgstr "verticale lijnen" + +#: ../src/gui/guides.c:229 +msgid "number of vertical guide lines" +msgstr "aantal verticale hulplijnen" + +#: ../src/gui/guides.c:238 +msgid "subdivisions" +msgstr "onderverdelingen" + +#: ../src/gui/guides.c:239 +msgid "number of subdivisions per grid rectangle" +msgstr "aantal onderverdelingen per raster rechthoek" + +#. title +#: ../src/gui/guides.c:700 +msgid "global guide overlay settings" +msgstr "instellingen voor globale hulplijnen" + +#: ../src/gui/guides.c:710 ../src/gui/guides.c:719 ../src/gui/guides.c:727 +#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2494 +msgid "guide lines" +msgstr "hulplijnen" + +#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2145 +msgid "flip" +msgstr "spiegelen" + +#: ../src/gui/guides.c:710 +msgid "flip guides" +msgstr "verwissel hulplijnen" + +#: ../src/gui/guides.c:713 +msgid "horizontally" +msgstr "horizontaal" + +#: ../src/gui/guides.c:714 +msgid "vertically" +msgstr "verticaal" + +#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6232 ../src/iop/clipping.c:2149 +#: ../src/iop/colorbalance.c:1892 +msgid "both" +msgstr "beide" + +#: ../src/gui/guides.c:720 +msgid "setup guide lines" +msgstr "hulplijnen instellen" + +#: ../src/gui/guides.c:727 +msgid "overlay color" +msgstr "overlay kleur" + +#: ../src/gui/guides.c:727 +msgid "set overlay color" +msgstr "kies overlay kleur" + +#: ../src/gui/guides.c:741 +msgid "" +"set the contrast between the lightest and darkest part of the guide overlays" +msgstr "" +"stel het contrast in tussen het lichtste en donkerste deel van de hulplijnen" + +#: ../src/gui/guides.c:847 ../src/gui/guides.c:893 +msgid "show guides" +msgstr "toon hulplijnen" + +#: ../src/gui/guides.c:902 +msgid "show guide overlay when this module has focus" +msgstr "hulplijnen weergeven wanneer deze module focus heeft" + +#: ../src/gui/guides.c:904 +msgid "" +"change global guide settings\n" +"note that these settings are applied globally and will impact any module " +"that shows guide overlays" +msgstr "" +"globale hulplijninstellingen wijzigen\n" +"NB deze instellingen worden globaal toegepast en zijn van invloed op elke " +"module die hulplijnen toont" + +#: ../src/gui/hist_dialog.c:222 +msgid "select parts to copy" +msgstr "selecteer te kopiëren delen" + +#: ../src/gui/hist_dialog.c:222 +msgid "select parts to paste" +msgstr "selecteer te plakken delen" + +#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:524 +msgid "select _all" +msgstr "selecteer _alles" + +#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:525 +msgid "select _none" +msgstr "selecteer _niets" + +#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:605 +#: ../src/gui/styles_dialog.c:627 +msgid "include" +msgstr "voeg toe" + +#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:681 +#: ../src/gui/styles_dialog.c:687 +msgid "item" +msgstr "item" + +#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:694 +#: ../src/gui/styles_dialog.c:703 +msgid "mask" +msgstr "masker" + +#: ../src/gui/hist_dialog.c:360 +msgid "can't copy history out of unaltered image" +msgstr "kopiëren vanuit niet-gewijzigde afbeelding lukt niet" + +#. grid headers +#: ../src/gui/import_metadata.c:417 +msgid "metadata presets" +msgstr "metadata voorinstellingen" + +#: ../src/gui/import_metadata.c:420 +msgid "" +"metadata to be applied per default\n" +"double-click on a label to clear the corresponding entry\n" +"double-click on 'preset' to clear all entries" +msgstr "" +"metadata die standaard moeten worden toegepast\n" +"dubbelklik op een label om de overeenkomstige invoer te wissen\n" +"dubbelklik op ‘voorkeur’ om alle invoer te wissen" + +#: ../src/gui/import_metadata.c:430 +msgid "from XMP" +msgstr "van xmp" + +#: ../src/gui/import_metadata.c:433 +msgid "" +"selected metadata are imported from image and override the default value.\n" +"this drives also the 'look for updated XMP files' and 'load sidecar file' " +"actions.\n" +"CAUTION: not selected metadata are cleaned up when XMP file is updated." +msgstr "" +"geselecteerde metadata worden geïmporteerd uit afbeelding en overschrijven " +"de standaardwaarde.\n" +"Dit beïnvloedt ook de acties ‘zoeken naar bijgewerkte xmp-bestanden’ en " +"‘laad xmp-bestand’.\n" +"NB: niet geselecteerde metagegevens worden geschoond als het xmp-bestand " +"wordt bijgewerkt." + +#. tags +#: ../src/gui/import_metadata.c:469 +msgid "tag presets" +msgstr "label voorinstellingen" + +#: ../src/gui/import_metadata.c:483 +msgid "comma separated list of tags" +msgstr "labels gescheiden door komma's" + +#. language +#: ../src/gui/preferences.c:274 +msgid "interface language" +msgstr "interfacetaal" + +#: ../src/gui/preferences.c:290 +msgid "double-click to reset to the system language" +msgstr "dubbelklik om naar de systeem taal te resetten" + +#: ../src/gui/preferences.c:292 +msgid "" +"set the language of the user interface. the system default is marked with an " +"* (needs a restart)" +msgstr "" +"kies de taal van de gebruikersinterface, * volgt de standaard van het " +"systeem (herstart is nodig)" + +#: ../src/gui/preferences.c:301 +msgid "theme" +msgstr "thema" + +#: ../src/gui/preferences.c:331 +msgid "set the theme for the user interface" +msgstr "stel thema in voor gebruikers interface" + +#: ../src/gui/preferences.c:344 ../src/gui/preferences.c:351 +msgid "use system font size" +msgstr "gebruik de systeemlettertypegrootte" + +#: ../src/gui/preferences.c:360 ../src/gui/preferences.c:367 +msgid "font size in points" +msgstr "lettertype formaat in punten" + +#: ../src/gui/preferences.c:372 +msgid "GUI controls and text DPI" +msgstr "GUI-besturingselementen en tekst DPI" + +#: ../src/gui/preferences.c:379 +msgid "" +"adjust the global GUI resolution to rescale controls, buttons, labels, etc.\n" +"increase for a magnified GUI, decrease to fit more content in window.\n" +"set to -1 to use the system-defined global resolution.\n" +"default is 96 DPI on most systems.\n" +"(needs a restart)." +msgstr "" +"pas de globale GUI-resolutie aan om bedieningselementen, knoppen, labels, " +"enz. te herschalen\n" +"verhoog voor een vergrote GUI, verlaag om meer inhoud in het venster te " +"passen.\n" +"zet op -1 om de door het systeem gedefinieerde globale resolutie te " +"gebruiken.\n" +"standaard is 96 DPI op de meeste systemen.\n" +"(heeft een herstart nodig)." + +#. checkbox to allow user to modify theme with user.css +#: ../src/gui/preferences.c:388 +msgid "modify selected theme with CSS tweaks below" +msgstr "pas geselecteerd thema aan met onderstaande CSS aanpassingen" + +#: ../src/gui/preferences.c:396 +msgid "modify theme with CSS keyed below (saved to user.css)" +msgstr "" +"pas thema aan met onderstaande CSS hieronder ingetoetst (opgeslagen in user." +"css)" + +#: ../src/gui/preferences.c:418 +msgctxt "usercss" +msgid "save CSS and apply" +msgstr "sla CSS op en pas toe" + +#: ../src/gui/preferences.c:423 +msgid "click to save and apply the CSS tweaks entered in this editor" +msgstr "klik om op te slaan en de ingevoerde CSS-tweaks toe te passen" + +#: ../src/gui/preferences.c:425 +msgid "open help page for CSS tweaks" +msgstr "open help pagina voor CSS aanpassingen" + +#. load default text with some pointers +#: ../src/gui/preferences.c:446 +msgid "ERROR Loading user.css" +msgstr "ERROR bij inladen user.css" + +#. load default text +#: ../src/gui/preferences.c:455 +msgid "Enter CSS theme tweaks here" +msgstr "Voer CSS thema-aanpassingen hier in" + +#: ../src/gui/preferences.c:491 +msgid "darktable preferences" +msgstr "darktable voorkeuren" + +#: ../src/gui/preferences.c:559 +msgid "darktable needs to be restarted for settings to take effect" +msgstr "darktable moet opnieuw worden gestart om de instellingen toe te passen" + +#. exif +#: ../src/gui/preferences.c:818 ../src/gui/presets.c:647 +#: ../src/libs/metadata_view.c:139 +msgid "model" +msgstr "camera model" + +#: ../src/gui/preferences.c:822 ../src/gui/presets.c:655 +#: ../src/libs/metadata_view.c:140 +msgid "maker" +msgstr "camera merk" + +#: ../src/gui/preferences.c:859 +msgid "search presets list" +msgstr "doorzoek de lijst met voorinstellingen" + +#: ../src/gui/preferences.c:860 +msgid "" +"incrementally search the list of presets\n" +"press up or down keys to cycle through matches" +msgstr "" +"doorzoek stapsgewijs de lijst met voorinstellingen\n" +"druk op de toetsen omhoog of omlaag om door kandidaten te bladeren" + +#: ../src/gui/preferences.c:866 +msgctxt "preferences" +msgid "import..." +msgstr "importeren..." + +#: ../src/gui/preferences.c:870 +msgctxt "preferences" +msgid "export..." +msgstr "exporteren..." + +#: ../src/gui/preferences.c:1030 +#, c-format +msgid "failed to import preset %s" +msgstr "importeren voorkeur %s mislukt" + +#: ../src/gui/preferences.c:1041 +msgid "select preset(s) to import" +msgstr "selecteer te importeren voorkeur(en)" + +#: ../src/gui/preferences.c:1042 ../src/libs/collect.c:425 +#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:930 +#: ../src/libs/import.c:1515 ../src/libs/import.c:1619 ../src/libs/styles.c:529 +msgid "_open" +msgstr "_open" + +#: ../src/gui/preferences.c:1051 +msgid "darktable preset files" +msgstr "darktable-stijlbestanden" + +#: ../src/gui/preferences.c:1056 ../src/iop/lut3d.c:1591 +#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:946 +#: ../src/libs/styles.c:543 +msgid "all files" +msgstr "alle bestanden" + +#: ../src/gui/presets.c:61 +msgid "non-raw" +msgstr "niet-raw" + +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:336 +msgid "raw" +msgstr "raw" + +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:337 +msgid "HDR" +msgstr "HDR" + +#: ../src/gui/presets.c:61 ../src/iop/monochrome.c:77 ../src/libs/image.c:679 +#: ../src/libs/metadata_view.c:343 +msgid "monochrome" +msgstr "monochroom" + +#: ../src/gui/presets.c:153 +#, c-format +msgid "preset `%s' is write-protected, can't delete!" +msgstr "preset `%s' is tegen schrijven beveiligd, kan niet worden verwijderd!" + +#: ../src/gui/presets.c:159 ../src/gui/presets.c:463 ../src/libs/lib.c:238 +#: ../src/libs/modulegroups.c:3703 +msgid "delete preset?" +msgstr "verwijder voorkeur?" + +#: ../src/gui/presets.c:160 ../src/gui/presets.c:464 ../src/libs/lib.c:239 +#: ../src/libs/modulegroups.c:3704 +#, c-format +msgid "do you really want to delete the preset `%s'?" +msgstr "deze voorkeur `%s' verwijderen?" + +#. add new preset +#. create a shortcut for the new entry +#. then show edit dialog +#. clang-format on +#. create a shortcut for the new entry +#. then show edit dialog +#: ../src/gui/presets.c:202 ../src/gui/presets.c:1022 ../src/gui/presets.c:1025 +#: ../src/gui/presets.c:1028 ../src/libs/lib.c:188 ../src/libs/lib.c:205 +#: ../src/libs/lib.c:213 ../src/libs/lib.c:216 +msgid "new preset" +msgstr "nieuwe voorkeur" + +#: ../src/gui/presets.c:209 +msgid "please give preset a name" +msgstr "geef deze voorkeur een naam" + +#: ../src/gui/presets.c:214 +msgid "unnamed preset" +msgstr "naamloze voorkeur" + +#: ../src/gui/presets.c:243 +msgid "overwrite preset?" +msgstr "voorkeur overschrijven?" + +#: ../src/gui/presets.c:244 +#, c-format +msgid "" +"preset `%s' already exists.\n" +"do you want to overwrite?" +msgstr "" +"voorkeur `%s' bestaat al\n" +"moet die worden overschreven?" + +#: ../src/gui/presets.c:422 ../src/imageio/storage/disk.c:198 +#: ../src/imageio/storage/gallery.c:150 ../src/imageio/storage/latex.c:146 +msgid "_select as output destination" +msgstr "_selecteer als bestemming" + +#: ../src/gui/presets.c:431 +#, c-format +msgid "preset %s was successfully exported" +msgstr "stijl %s was succesvol geëxporteerd" + +#: ../src/gui/presets.c:559 +#, c-format +msgid "edit `%s' for module `%s'" +msgstr "bewerk `%s' voor module `%s'" + +#: ../src/gui/presets.c:563 +msgid "_export..." +msgstr "_exporteren..." + +#: ../src/gui/presets.c:564 ../src/libs/tagging.c:1489 +#: ../src/libs/tagging.c:1580 +msgid "_delete" +msgstr "verwijderen" + +#: ../src/gui/presets.c:588 +msgid "name of the preset" +msgstr "naam van deze voorkeur" + +#: ../src/gui/presets.c:597 +msgid "description or further information" +msgstr "beschrijving dan wel extra informatie" + +#: ../src/gui/presets.c:601 +msgid "reset all module parameters to their default values" +msgstr "herstel alle module parameters naar standaard waarden" + +#: ../src/gui/presets.c:604 +msgid "" +"the parameters will be reset to their default values, which may be " +"automatically set based on image metadata" +msgstr "" +"de parameters worden hersteld naar standaard waarden, eventueel aangepast o." +"b.v. metadata" + +#: ../src/gui/presets.c:610 +msgid "auto apply this preset to matching images" +msgstr "pas voorkeur automatisch toe op overeenkomende afbeelding(en)" + +#: ../src/gui/presets.c:614 +msgid "only show this preset for matching images" +msgstr "toon deze voorkeur alleen bij overeenkomstige afbeeldingen" + +#: ../src/gui/presets.c:616 +msgid "" +"be very careful with this option. this might be the last time you see your " +"preset." +msgstr "" +"wees voorzichtig met deze optie, het kan de laatste mogelijkheid zijn om uw " +"voorkeuren te zien." + +#: ../src/gui/presets.c:646 +#, no-c-format +msgid "string to match model (use % as wildcard)" +msgstr "string om model aan te passen (gebruik % als vervanging)" + +#: ../src/gui/presets.c:654 +#, no-c-format +msgid "string to match maker (use % as wildcard)" +msgstr "string om fabrikant aan te passen (gebruik % als vervanging)" + +#: ../src/gui/presets.c:662 +#, no-c-format +msgid "string to match lens (use % as wildcard)" +msgstr "string om lens aan te passen (gebruik % als vervanging)" + +#: ../src/gui/presets.c:672 +msgid "minimum ISO value" +msgstr "minimale ISO waarde" + +#: ../src/gui/presets.c:678 +msgid "" +"maximum ISO value\n" +"if left blank, it is equivalent to no upper limit" +msgstr "" +"maximum ISO waarde\n" +"indien leeg wordt geen bovengrens gebruikt" + +#: ../src/gui/presets.c:691 +msgid "minimum exposure time" +msgstr "minimale belichtingstijd" + +#: ../src/gui/presets.c:692 +msgid "maximum exposure time" +msgstr "maximale belichtingstijd" + +#: ../src/gui/presets.c:708 +msgid "minimum aperture value" +msgstr "minimale diafragma waarde" + +#: ../src/gui/presets.c:709 +msgid "maximum aperture value" +msgstr "maximale diafragma waarde" + +#: ../src/gui/presets.c:727 +msgid "minimum focal length" +msgstr "minimale brandpuntsafstand (mm)" + +#: ../src/gui/presets.c:728 +msgid "maximum focal length" +msgstr "maximale brandpuntsafstand (mm)" + +#. raw/hdr/ldr/mono/color +#: ../src/gui/presets.c:736 +msgid "format" +msgstr "formaat" + +#: ../src/gui/presets.c:741 +msgid "select image types you want this preset to be available for" +msgstr "" +"selecteer afbeeldingstypen waarvoor u deze voorkeur beschikbaar wilt hebben" + +#: ../src/gui/presets.c:754 ../src/libs/filtering.c:1263 +msgid "and" +msgstr "en" + +#: ../src/gui/presets.c:798 ../src/gui/presets.c:850 +msgid "∞" +msgstr "∞" + +#: ../src/gui/presets.c:966 +#, c-format +msgid "preset `%s' is write-protected! can't edit it!" +msgstr "preset `%s’ is beveiligd en kan niet worden bewerkt!" + +#: ../src/gui/presets.c:990 ../src/libs/lib.c:158 +msgid "update preset?" +msgstr "update voorinstelling?" + +#: ../src/gui/presets.c:991 ../src/libs/lib.c:159 +#, c-format +msgid "do you really want to update the preset `%s'?" +msgstr "wil je echt de voorinstelling `%s’ updaten?" + +#: ../src/gui/presets.c:1120 +msgid "(first)" +msgstr "(eerste)" + +#: ../src/gui/presets.c:1120 +msgid "(last)" +msgstr "(laatste)" + +#: ../src/gui/presets.c:1152 +#, c-format +msgid "" +"preset %s\n" +"%s" +msgstr "" +"voorinstelling %s\n" +"%s" + +#: ../src/gui/presets.c:1153 +msgid "no presets" +msgstr "geen voorinstellingen" + +#: ../src/gui/presets.c:1188 ../src/iop/basecurve.c:575 +#: ../src/iop/basecurve.c:579 ../src/iop/basecurve.c:582 +msgid "display-referred default" +msgstr "scherm-gerefereerd standaard" + +#: ../src/gui/presets.c:1190 ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:400 ../src/iop/channelmixerrgb.c:403 +#: ../src/iop/exposure.c:319 ../src/iop/exposure.c:323 +#: ../src/iop/exposure.c:326 ../src/iop/filmicrgb.c:3311 +#: ../src/iop/filmicrgb.c:3315 ../src/iop/filmicrgb.c:3318 +#: ../src/iop/sigmoid.c:240 ../src/iop/sigmoid.c:243 ../src/iop/sigmoid.c:245 +msgid "scene-referred default" +msgstr "scène-gerefereerde standaard" + +#: ../src/gui/presets.c:1394 ../src/libs/modulegroups.c:3783 +#: ../src/libs/modulegroups.c:3792 +msgid "manage module layouts" +msgstr "beheer module-indelingen" + +#: ../src/gui/presets.c:1403 +msgid "manage quick presets" +msgstr "beheer snelle voorinstellingen" + +#: ../src/gui/presets.c:1587 +msgid "manage quick presets list..." +msgstr "beheer lijst snelle voorinstellingen..." + +#: ../src/gui/presets.c:1728 +msgid "(default)" +msgstr "(standaard)" + +#: ../src/gui/presets.c:1755 +msgid "disabled: wrong module version" +msgstr "uitgeschakeld: verkeerde module versie" + +#: ../src/gui/presets.c:1777 ../src/libs/lib.c:551 +msgid "edit this preset.." +msgstr "voorkeur bewerken..." + +#: ../src/gui/presets.c:1782 ../src/libs/lib.c:555 +msgid "delete this preset" +msgstr "voorkeur verwijderen" + +#: ../src/gui/presets.c:1789 ../src/libs/lib.c:563 +msgid "store new preset.." +msgstr "voorkeur opslaan..." + +#: ../src/gui/presets.c:1797 ../src/libs/lib.c:576 +msgid "update preset" +msgstr "update voorkeur" + +#: ../src/gui/styles_dialog.c:221 ../src/libs/styles.c:437 +#: ../src/libs/styles.c:622 +msgid "overwrite style?" +msgstr "stijl overschrijven?" + +#: ../src/gui/styles_dialog.c:222 +#, c-format +msgid "" +"style `%s' already exists.\n" +"do you want to overwrite?" +msgstr "" +"voorkeur `%s' bestaat al.\n" +"wil je die overschrijven?" + +#: ../src/gui/styles_dialog.c:251 ../src/gui/styles_dialog.c:323 +msgid "please give style a name" +msgstr "geef deze stijl een naam" + +#: ../src/gui/styles_dialog.c:255 ../src/gui/styles_dialog.c:327 +msgid "unnamed style" +msgstr "naamloze stijl" + +#: ../src/gui/styles_dialog.c:312 +#, c-format +msgid "style %s was successfully saved" +msgstr "stijl '%s' is succesvol opgeslagen" + +#: ../src/gui/styles_dialog.c:512 +msgid "edit style" +msgstr "bewerk stijl" + +#: ../src/gui/styles_dialog.c:513 +msgid "duplicate style" +msgstr "dupliceer stijl" + +#: ../src/gui/styles_dialog.c:514 +msgid "creates a duplicate of the style before applying changes" +msgstr "maakt een stijlkopie voordat wijzigingen zijn toegepast" + +#: ../src/gui/styles_dialog.c:518 +msgid "create new style" +msgstr "creëer nieuwe stijl" + +#: ../src/gui/styles_dialog.c:557 +msgid "enter a name for the new style" +msgstr "geef een naam voor de nieuwe stijl" + +#: ../src/gui/styles_dialog.c:565 +msgid "enter a description for the new style, this description is searchable" +msgstr "" +"geef een omschrijving voor deze nieuwe stijl, deze omschrijving kan later " +"worden opgezocht" + +#: ../src/gui/styles_dialog.c:605 +msgid "keep" +msgstr "bewaren" + +#: ../src/gui/styles_dialog.c:832 +msgid "can't create style out of unaltered image" +msgstr "kan geen stijl maken van ongewijzigde afbeelding" + +#: ../src/imageio/imageio.c:816 +#, c-format +msgid "" +"failed to allocate memory for %s, please lower the threads used for export " +"or buy more memory." +msgstr "" +"geheugen toewijzing voor %s mislukt, verlaag het aantal exporteerstappen of " +"koop meer geheugen." + +#: ../src/imageio/imageio.c:818 +msgctxt "noun" +msgid "thumbnail export" +msgstr "miniatuur exporteren" + +#: ../src/imageio/imageio.c:818 +msgctxt "noun" +msgid "export" +msgstr "exporteren" + +#: ../src/imageio/imageio.c:831 +#, c-format +msgid "cannot find the style '%s' to apply during export." +msgstr "toe te passen stijl '%s' bij het exporteren is niet gevonden." + +#: ../src/imageio/imageio_libraw.c:295 +msgid "" +"<span foreground='red'><b>WARNING</b></span>: camera is not fully supported!" +msgstr "" +"<span foreground='red'><b>WARNING</b></span>: camera niet volledig " +"ondersteund!" + +#: ../src/imageio/imageio_libraw.c:297 +#, c-format +msgid "" +"colors for `%s' could be misrepresented,\n" +"and edits might not be compatible with future versions." +msgstr "" +"kleuren voor `%s' kunnen verkeerd getoond worden,\n" +"en bewerkingen worden mogelijk niet herkend in toekomstige versies." + +#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:641 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 +msgid "8 bit" +msgstr "8 bit" + +#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:567 +msgid "10 bit" +msgstr "10 bit" + +#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:567 +msgid "12 bit" +msgstr "12 bit" + +#: ../src/imageio/format/avif.c:110 ../src/imageio/format/webp.c:416 +msgid "lossless" +msgstr "verliesvrij" + +#: ../src/imageio/format/avif.c:112 ../src/imageio/format/webp.c:416 +msgid "lossy" +msgstr "met verlies" + +#: ../src/imageio/format/avif.c:463 +msgid "invalid AVIF bit depth!" +msgstr "ongeldige AVIF-bitdiepte!" + +#. Bit depth combo box +#: ../src/imageio/format/avif.c:800 ../src/imageio/format/exr.cc:601 +#: ../src/imageio/format/jxl.c:566 ../src/imageio/format/pdf.c:661 +#: ../src/imageio/format/png.c:639 ../src/imageio/format/tiff.c:900 +#: ../src/imageio/format/xcf.c:354 +msgid "bit depth" +msgstr "bitdiepte" + +#: ../src/imageio/format/avif.c:813 +msgid "color information stored in an image, higher is better" +msgstr "kleurinformatie opgeslagen in een afbeelding, hoger is beter" + +#. +#. * Color mode combo box +#. +#. shortfile option combo box +#: ../src/imageio/format/avif.c:820 ../src/imageio/format/tiff.c:944 +msgid "B&W as grayscale" +msgstr "Zw-W grijsschaal" + +#: ../src/imageio/format/avif.c:821 ../src/imageio/format/tiff.c:945 +msgid "saving as grayscale will reduce the size for black & white images" +msgstr "" +"opslaan als grijswaarden verkleint de grootte van zwart-witafbeeldingen" + +#. +#. * Tiling combo box +#. +#: ../src/imageio/format/avif.c:832 +msgid "tiling" +msgstr "tegelen" + +#: ../src/imageio/format/avif.c:833 +msgid "" +"tile an image into segments.\n" +"\n" +"makes encoding faster, but increases the file size. the loss of image " +"quality is negligible." +msgstr "" +"splits een afbeelding in tegel-segmenten.\n" +"\n" +"maakt codering sneller, maar het bestand groter. Het kwaliteitsverlies is " +"verwaarloosbaar." + +#. compression +#. Compression method combo box +#: ../src/imageio/format/avif.c:850 ../src/imageio/format/exr.cc:611 +#: ../src/imageio/format/pdf.c:676 ../src/imageio/format/png.c:653 +#: ../src/imageio/format/tiff.c:923 ../src/imageio/format/webp.c:414 +#: ../src/libs/masks.c:111 +msgid "compression" +msgstr "compressie" + +#: ../src/imageio/format/avif.c:858 +msgid "the compression for the image" +msgstr "de compressie voor de afbeelding" + +#. min +#. max +#. step +#. default +#. digits +#: ../src/imageio/format/avif.c:878 ../src/imageio/format/j2k.c:679 +#: ../src/imageio/format/jpeg.c:584 ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/webp.c:425 ../src/libs/camera.c:564 +msgid "quality" +msgstr "kwaliteit" + +#: ../src/imageio/format/avif.c:881 +msgid "" +"the quality of an image, less quality means fewer details.\n" +"\n" +"pixel format is controlled by quality:\n" +"\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" +msgstr "" +"de kwaliteit van een afbeelding, lagere kwaliteit betekent minder details.\n" +"\n" +"pixelformaat wordt bepaald door kwaliteit:\n" +"\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" + +#: ../src/imageio/format/copy.c:109 ../src/libs/copy_history.c:370 +#: ../src/libs/image.c:647 +msgid "copy" +msgstr "kopiëren" + +#: ../src/imageio/format/copy.c:124 +msgid "" +"do a 1:1 copy of the selected files.\n" +"the global options below do not apply!" +msgstr "" +"maak een 1:1 kopie van de geselecteerde bestanden,\n" +"de algemene opties hieronder worden niet toegepast!" + +#: ../src/imageio/format/exr.cc:217 +msgid "the selected output profile doesn't work well with EXR" +msgstr "geselecteerd uitgaand profiel werkt niet goed voor EXR" + +#: ../src/imageio/format/exr.cc:576 +msgid "OpenEXR" +msgstr "OpenEXR" + +#: ../src/imageio/format/exr.cc:603 +msgid "16 bit (float)" +msgstr "16 bit (float)" + +#: ../src/imageio/format/exr.cc:603 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 +msgid "32 bit (float)" +msgstr "32 bit (float)" + +#: ../src/imageio/format/exr.cc:613 ../src/imageio/format/pdf.c:682 +#: ../src/imageio/format/tiff.c:924 +msgid "uncompressed" +msgstr "ongecomprimeerd" + +#: ../src/imageio/format/exr.cc:614 +msgid "RLE" +msgstr "RLE" + +#: ../src/imageio/format/exr.cc:615 +msgid "ZIPS" +msgstr "ZIPS" + +#: ../src/imageio/format/exr.cc:616 +msgid "ZIP" +msgstr "ZIP" + +#: ../src/imageio/format/exr.cc:617 +msgid "PIZ" +msgstr "PIZ" + +#: ../src/imageio/format/exr.cc:618 +msgid "PXR24" +msgstr "PXR24" + +#: ../src/imageio/format/exr.cc:619 +msgid "B44" +msgstr "B44" + +#: ../src/imageio/format/exr.cc:620 +msgid "B44A" +msgstr "B44A" + +#: ../src/imageio/format/exr.cc:621 +msgid "DWAA" +msgstr "DWAA" + +#: ../src/imageio/format/exr.cc:622 +msgid "DWAB" +msgstr "DWAB" + +#: ../src/imageio/format/j2k.c:648 +msgid "JPEG 2000 (12-bit)" +msgstr "JPEG 2000 (12-bit)" + +#: ../src/imageio/format/j2k.c:684 +msgid "DCP mode" +msgstr "DCP modus" + +#: ../src/imageio/format/j2k.c:687 +msgid "Cinema2K, 24FPS" +msgstr "Cinema2K, 24FPS" + +#: ../src/imageio/format/j2k.c:688 +msgid "Cinema2K, 48FPS" +msgstr "Cinema2K, 48FPS" + +#: ../src/imageio/format/j2k.c:689 +msgid "Cinema4K, 24FPS" +msgstr "Cinema4K, 24FPS" + +#: ../src/imageio/format/jpeg.c:546 +msgid "JPEG (8-bit)" +msgstr "JPEG (8-bit)" + +#: ../src/imageio/format/jpeg.c:594 +msgid "chroma subsampling" +msgstr "kleurbemonstering" + +#: ../src/imageio/format/jpeg.c:595 +msgid "" +"chroma subsampling setting for JPEG encoder.\n" +"auto - use subsampling determined by the quality value\n" +"4:4:4 - no chroma subsampling\n" +"4:4:0 - color sampling rate halved vertically\n" +"4:2:2 - color sampling rate halved horizontally\n" +"4:2:0 - color sampling rate halved horizontally and vertically" +msgstr "" +"kleurbemonstering instelling voor JPEG codering.\n" +"auto - methode aanpassen volgens de kwaliteit\n" +"4:4:4 - ongewijzigde kleur-resolutie\n" +"4:4:0 - kleur verticaal halve resolutie\n" +"4:2:2 - kleur horizontaal halve resolutie\n" +"4:2:0 - kleur zowel verticaal als horizontaal halve resolutie" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:4" +msgstr "4:4:4" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:0" +msgstr "4:4:0" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:2" +msgstr "4:2:2" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:0" +msgstr "4:2:0" + +#: ../src/imageio/format/jxl.c:567 ../src/imageio/format/pdf.c:81 +#: ../src/imageio/format/png.c:641 ../src/imageio/format/tiff.c:904 +#: ../src/imageio/format/xcf.c:357 +msgid "16 bit" +msgstr "16 bit" + +#. Pixel format combo box +#: ../src/imageio/format/jxl.c:573 ../src/imageio/format/tiff.c:909 +msgid "pixel type" +msgstr "pixeltype" + +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 +msgid "unsigned integer" +msgstr "ongesigneerde integer" + +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 +msgid "floating point" +msgstr "zwevendekommagetal" + +#: ../src/imageio/format/jxl.c:591 +msgid "" +"the quality of the output image\n" +"0-29 = very lossy\n" +"30-99 = JPEG quality comparable\n" +"100 = lossless (integer bit depth only)" +msgstr "" +"de kwaliteit van het uitvoer afbeelding\n" +"0-29 = zeer verliezend\n" +"30-99 = JPEG-kwaliteit vergelijkbaar\n" +"100 = verliesvrij (alleen integer bitdiepte)" + +#: ../src/imageio/format/jxl.c:600 +msgid "encoding color profile" +msgstr "codering kleurprofiel" + +#: ../src/imageio/format/jxl.c:601 +msgid "" +"the color profile used by the encoder\n" +"permit internal XYB color space conversion for more efficient lossy " +"compression,\n" +"or ensure no conversion to keep original image color space (implied for " +"lossless)" +msgstr "" +"het kleurprofiel dat door de encoder wordt gebruikt\n" +"interne XYB-kleur ruimte conversie mogelijk maken voor efficiëntere " +"compressie met verlies,\n" +"of zorg ervoor dat er geen conversie plaatsvindt om de originele kleur " +"ruimte van de afbeelding te behouden (geïmpliceerd voor lossless)" + +#: ../src/imageio/format/jxl.c:604 +msgid "internal" +msgstr "intern" + +#: ../src/imageio/format/jxl.c:604 ../src/libs/duplicate.c:405 +#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:840 +msgid "original" +msgstr "origineel" + +#: ../src/imageio/format/jxl.c:618 +msgid "encoding effort" +msgstr "codering inspanning" + +#: ../src/imageio/format/jxl.c:619 +msgid "" +"the effort used to encode the image, higher efforts will have better results " +"at the expense of longer encoding times" +msgstr "" +"de inspanning die nodig is om de afbeelding te coderen, zullen grotere " +"inspanningen betere resultaten opleveren ten koste van langere " +"coderingstijden" + +#: ../src/imageio/format/jxl.c:630 +msgid "decoding speed" +msgstr "decodering snelheid" + +#: ../src/imageio/format/jxl.c:631 +msgid "the preferred decoding speed with some sacrifice of quality" +msgstr "de gewenste decodeer snelheid met enige opoffering van kwaliteit" + +#: ../src/imageio/format/pdf.c:200 ../src/imageio/format/pdf.c:480 +msgid "invalid paper size" +msgstr "ongeldig papier formaat" + +#: ../src/imageio/format/pdf.c:207 +msgid "invalid border size, using 0" +msgstr "ongeldige randdikte, gebruikt 0" + +#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:460 +#: ../src/imageio/storage/email.c:187 ../src/imageio/storage/gallery.c:409 +#: ../src/imageio/storage/gallery.c:450 ../src/imageio/storage/piwigo.c:1236 +#, c-format +msgid "could not export to file `%s'!" +msgstr "exporteren naar bestand `%s' mislukt!" + +#: ../src/imageio/format/pdf.c:409 +msgid "PDF" +msgstr "PDF" + +#: ../src/imageio/format/pdf.c:577 +msgid "enter the title of the PDF" +msgstr "geef de titel van de PDF" + +#. paper size +#. // papers +#: ../src/imageio/format/pdf.c:585 ../src/libs/print_settings.c:2510 +msgid "paper size" +msgstr "formaat" + +#: ../src/imageio/format/pdf.c:586 +msgid "" +"paper size of the PDF\n" +"either one from the list or \"<width> [unit] x <height> <unit>\"\n" +"example: 210 mm x 2.97 cm" +msgstr "" +"papierformaat van de PDF\n" +"kies uit de lijst of bepaal zelf \"<breedte> [eenheid] x <hoogte> <eenheid>\n" +"bijvoorbeeld: 210 mm x 29.7 cm" + +#. orientation +#: ../src/imageio/format/pdf.c:600 +msgid "page orientation" +msgstr "oriëntatie" + +#: ../src/imageio/format/pdf.c:601 +msgid "paper orientation of the PDF" +msgstr "papieroriëntatie van de PDF" + +#. border +#: ../src/imageio/format/pdf.c:609 ../src/imageio/format/pdf.c:611 +msgid "border" +msgstr "rand" + +#: ../src/imageio/format/pdf.c:612 +msgid "" +"empty space around the PDF\n" +"format: size + unit\n" +"examples: 10 mm, 1 inch" +msgstr "" +"marges om de PDF\n" +"formaat: afmeting + eenheid\n" +"voorbeelden: 10 mm, 1 inch" + +#. dpi +#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1218 +#: ../src/libs/export.c:1246 +msgid "dpi" +msgstr "dpi" + +#: ../src/imageio/format/pdf.c:625 +msgid "dpi of the images inside the PDF" +msgstr "dpi van de afbeeldingen in de PDF" + +#. rotate images yes|no +#: ../src/imageio/format/pdf.c:631 +msgid "rotate images" +msgstr "roteer afbeeldingen" + +#: ../src/imageio/format/pdf.c:632 +msgid "" +"images can be rotated to match the PDF orientation to waste less space when " +"printing" +msgstr "" +"afbeeldingen kunnen gedraaid worden overeenkomstig de PDF- \n" +"oriëntatie om minder ruimte te verspillen bij het afdrukken" + +#. pages all|single images|contact sheet +#: ../src/imageio/format/pdf.c:641 +msgid "TODO: pages" +msgstr "TODO: pagina's" + +#: ../src/imageio/format/pdf.c:642 +msgid "what pages should be added to the PDF" +msgstr "welke pagina's moeten worden toegevoegd aan de PDF" + +#: ../src/imageio/format/pdf.c:645 +msgid "single images" +msgstr "enkelvoudige afbeeldingen" + +#: ../src/imageio/format/pdf.c:645 +msgid "contact sheet" +msgstr "contactformulier" + +#. TODO +#. embedded icc profile yes|no +#: ../src/imageio/format/pdf.c:651 +msgid "embed ICC profiles" +msgstr "ingesloten ICC-profiel" + +#: ../src/imageio/format/pdf.c:652 +msgid "images can be tagged with their ICC profile" +msgstr "afbeeldingen kunnen gekoppeld worden aan hun ICC-profiel" + +#: ../src/imageio/format/pdf.c:671 +msgid "bits per channel of the embedded images" +msgstr "aantal bits per kanaal van de ingesloten afbeeldingen" + +#: ../src/imageio/format/pdf.c:677 +msgid "" +"method used for image compression\n" +"uncompressed -- fast but big files\n" +"deflate -- smaller files but slower" +msgstr "" +"gebruikte methode voor compressie\n" +"niet gecomprimeerd -- snel met grote bestanden\n" +"deflate -- kleinere bestanden maar langzamer" + +#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:924 +msgid "deflate" +msgstr "deflatie" + +#. image mode normal|draft|debug +#: ../src/imageio/format/pdf.c:687 +msgid "image mode" +msgstr "afbeeldingsmodus" + +#: ../src/imageio/format/pdf.c:688 +msgid "" +"normal -- just put the images into the PDF\n" +"draft -- images are replaced with boxes\n" +"debug -- only show the outlines and bounding boxes" +msgstr "" +"normaal -- plaatst de afbeeldingen in de PDF\n" +"concept -- afbeeldingen worden vervangen door kaders\n" +"debug -- toont alleen contouren en begrenzende vakken" + +#: ../src/imageio/format/pdf.c:693 +msgid "normal" +msgstr "normal" + +#: ../src/imageio/format/pdf.c:693 +msgid "draft" +msgstr "concept" + +#: ../src/imageio/format/pdf.c:693 +msgid "debug" +msgstr "foutopsporing" + +#: ../src/imageio/format/ppm.c:111 +msgid "PPM (16-bit)" +msgstr "PPM (16-bit)" + +#: ../src/imageio/format/tiff.c:246 +msgid "not a B&W image, will not export as grayscale" +msgstr "geen zwart-wit afbeelding, geen export als grijstinten" + +#: ../src/imageio/format/tiff.c:925 +msgid "deflate with predictor" +msgstr "voorspellende deflatie" + +#: ../src/imageio/format/tiff.c:935 +msgid "compression level" +msgstr "compressie niveau" + +#: ../src/imageio/format/webp.c:426 +msgid "" +"for lossy, 0 gives the smallest size and 100 the best quality.\n" +"for lossless, 0 is the fastest but gives larger files compared\n" +"to the slowest 100." +msgstr "" +"voor 'met verlies' geeft 0 de kleinste omvang en 100 de beste kwaliteit.\n" +"voor 'verliesvrij' is 0 het snelst en geeft 100 de kleinste omvang." + +#: ../src/imageio/format/webp.c:436 +msgid "image hint" +msgstr "afbeeldingshint" + +#: ../src/imageio/format/webp.c:437 +msgid "" +"image characteristics hint for the underlying encoder.\n" +"picture: digital picture, like portrait, inner shot\n" +"photo: outdoor photograph, with natural lighting\n" +"graphic: discrete tone image (graph, map-tile etc)" +msgstr "" +"beeldkenmerken hints voor de onderliggende encoder\n" +"afbeelding: digitale foto, zoals portret, binnenopname\n" +"foto: buitenopname, met natuurlijk licht\n" +"plaatje: getekende afbeelding (grafiek, logo, kaart-tegels etc)" + +#: ../src/imageio/format/webp.c:442 +msgid "picture" +msgstr "afbeelding" + +#: ../src/imageio/format/webp.c:442 +msgid "photo" +msgstr "foto" + +#: ../src/imageio/format/webp.c:442 +msgid "graphic" +msgstr "plaatje" + +#: ../src/imageio/format/xcf.c:314 +msgid "XCF" +msgstr "XCF" + +#: ../src/imageio/storage/disk.c:74 ../src/libs/export.c:1119 +msgid "file on disk" +msgstr "lokaal bestand" + +#: ../src/imageio/storage/disk.c:251 ../src/imageio/storage/gallery.c:204 +#: ../src/imageio/storage/latex.c:191 +msgid "" +"enter the path where to put exported images\n" +"variables support bash like string manipulation\n" +"type '$(' to activate the completion and see the list of variables" +msgstr "" +"vul het pad in waarnaar afbeeldingen worden geëxporteerd\n" +"variabelen ondersteunen string-manipulaties zoals in bash\n" +"toets '$(' om de afronden te activeren en de lijst met variabelen te zien" + +#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/piwigo.c:1113 +msgid "on conflict" +msgstr "bij conflicten" + +#: ../src/imageio/storage/disk.c:268 +msgid "create unique filename" +msgstr "creëer unieke bestandsnaam" + +#. DT_COPY_HISTORY_APPEND +#: ../src/imageio/storage/disk.c:269 ../src/imageio/storage/piwigo.c:1117 +#: ../src/libs/copy_history.c:404 ../src/libs/image.c:670 +#: ../src/libs/styles.c:854 +msgid "overwrite" +msgstr "overschrijven" + +#: ../src/imageio/storage/disk.c:270 +msgid "overwrite if changed" +msgstr "overschrijf indien gewijzigd" + +#: ../src/imageio/storage/disk.c:271 ../src/imageio/storage/piwigo.c:1115 +msgid "skip" +msgstr "overslaan" + +#: ../src/imageio/storage/disk.c:371 ../src/imageio/storage/gallery.c:326 +#: ../src/imageio/storage/latex.c:289 +#, c-format +msgid "could not create directory `%s'!" +msgstr "kan de map %s niet aanmaken!" + +#: ../src/imageio/storage/disk.c:382 +#, c-format +msgid "could not write to directory `%s'!" +msgstr "kan niet schrijven in map `%s'!" + +#: ../src/imageio/storage/disk.c:419 +#, c-format +msgid "%d/%d skipping `%s'" +msgid_plural "%d/%d skipping `%s'" +msgstr[0] "%d/%d overslaan `%s'" +msgstr[1] "%d/%d overslaan `%s'" + +#: ../src/imageio/storage/disk.c:441 +#, c-format +msgid "%d/%d skipping (not modified since export) `%s'" +msgid_plural "%d/%d skipping (not modified since export) `%s'" +msgstr[0] "%d/%d overslaan (ongewijzigd sinds export) `%s'" +msgstr[1] "%d/%d overslaan (ongewijzigd sinds export) `%s'" + +#: ../src/imageio/storage/disk.c:465 ../src/imageio/storage/email.c:194 +#: ../src/imageio/storage/gallery.c:458 ../src/imageio/storage/latex.c:377 +#, c-format +msgid "%d/%d exported to `%s'" +msgid_plural "%d/%d exported to `%s'" +msgstr[0] "%d/%d geëxporteerd naar `%s'" +msgstr[1] "%d/%d geëxporteerd naar `%s'" + +#: ../src/imageio/storage/disk.c:530 +msgid "" +"you are going to export in overwrite mode, this will overwrite any existing " +"images\n" +"\n" +"do you really want to continue?" +msgstr "" +"u gaat exporteren in de overschrijfmodus, hiermee worden eventuele bestaande " +"afbeeldingen overschreven\n" +"\n" +"wilt u hier echt mee doorgaan?" + +#: ../src/imageio/storage/email.c:57 +msgid "send as email" +msgstr "verstuur als e-mail" + +#. Unlikely in normal Windows installations, but let's notify the user if it happens +#: ../src/imageio/storage/email.c:265 +msgid "could not open mapi32.dll" +msgstr "kan e-mail (mapi32.dll) niet starten" + +#. Even more unlikely +#: ../src/imageio/storage/email.c:275 +msgid "could not get SendMail function" +msgstr "kan SendMail niet uitvoeren" + +#: ../src/imageio/storage/email.c:319 ../src/imageio/storage/email.c:409 +msgid "images exported from darktable" +msgstr "geëxporteerd vanuit darktable" + +#: ../src/imageio/storage/email.c:388 ../src/imageio/storage/email.c:467 +msgid "could not launch email client!" +msgstr "e-mailclient kon niet worden gestart!" + +#: ../src/imageio/storage/gallery.c:76 +msgid "website gallery" +msgstr "lokaal opgeslagen webalbum" + +#: ../src/imageio/storage/gallery.c:224 +msgid "enter the title of the website" +msgstr "geef de titel van de website" + +#: ../src/imageio/storage/latex.c:72 +msgid "LaTeX book template" +msgstr "LaTeX boek sjabloon" + +#: ../src/imageio/storage/latex.c:209 +msgid "enter the title of the book" +msgstr "geef de titel van het boek" + +#: ../src/imageio/storage/piwigo.c:525 +msgid "authenticated" +msgstr "authentificatie" + +#: ../src/imageio/storage/piwigo.c:536 ../src/imageio/storage/piwigo.c:552 +#: ../src/imageio/storage/piwigo.c:565 +msgid "not authenticated" +msgstr "niet aangemeld" + +#: ../src/imageio/storage/piwigo.c:542 +msgid "not authenticated, cannot reach server" +msgstr "niet aangemeld, server onbereikbaar" + +#: ../src/imageio/storage/piwigo.c:595 ../src/imageio/storage/piwigo.c:684 +msgid "create new album" +msgstr "creëer nieuwe map" + +#: ../src/imageio/storage/piwigo.c:685 +msgid "---" +msgstr "---" + +#: ../src/imageio/storage/piwigo.c:735 +msgid "cannot refresh albums" +msgstr "actualiseren album lijst mislukt" + +#: ../src/imageio/storage/piwigo.c:950 +msgid "Piwigo" +msgstr "Piwigo" + +#: ../src/imageio/storage/piwigo.c:976 +msgid "accounts" +msgstr "accounts" + +#: ../src/imageio/storage/piwigo.c:995 ../src/imageio/storage/piwigo.c:1004 +msgid "server" +msgstr "server" + +#: ../src/imageio/storage/piwigo.c:998 +msgid "" +"the server name\n" +"default protocol is https\n" +"specify insecure protocol http:// explicitly if that protocol is required" +msgstr "" +"de servernaam\n" +"standaardprotocol is https\n" +"specificeer expliciet het onveilige http:// protocol als dat nodig is" + +#: ../src/imageio/storage/piwigo.c:1014 ../src/imageio/storage/piwigo.c:1021 +msgid "user" +msgstr "gebruiker" + +#: ../src/imageio/storage/piwigo.c:1029 ../src/imageio/storage/piwigo.c:1034 +msgid "password" +msgstr "wachtwoord" + +#. login button +#: ../src/imageio/storage/piwigo.c:1039 +msgid "login" +msgstr "inloggen" + +#: ../src/imageio/storage/piwigo.c:1040 +msgid "Piwigo login" +msgstr "Piwigo login" + +#. permissions list +#: ../src/imageio/storage/piwigo.c:1056 +msgid "visible to" +msgstr "zichtbaar voor" + +#: ../src/imageio/storage/piwigo.c:1058 +msgid "everyone" +msgstr "iedereen" + +#: ../src/imageio/storage/piwigo.c:1059 +msgid "contacts" +msgstr "contacten" + +#: ../src/imageio/storage/piwigo.c:1060 +msgid "friends" +msgstr "vrienden" + +#: ../src/imageio/storage/piwigo.c:1061 +msgid "family" +msgstr "familie" + +#: ../src/imageio/storage/piwigo.c:1062 +msgid "you" +msgstr "jezelf" + +#. Available albums +#: ../src/imageio/storage/piwigo.c:1069 +msgid "album" +msgstr "album" + +#: ../src/imageio/storage/piwigo.c:1076 +msgid "refresh album list" +msgstr "actualiseer album lijst" + +#. Album title +#: ../src/imageio/storage/piwigo.c:1096 +msgid "new album" +msgstr "nieuwe album" + +#. Available albums +#: ../src/imageio/storage/piwigo.c:1105 +msgid "parent album" +msgstr "ouder album" + +#: ../src/imageio/storage/piwigo.c:1109 +msgid "click login button to start" +msgstr "toets login button om te starten" + +#: ../src/imageio/storage/piwigo.c:1114 +msgid "don't check" +msgstr "niet controleren" + +#: ../src/imageio/storage/piwigo.c:1116 +msgid "update metadata" +msgstr "metagegevens bijwerken" + +#: ../src/imageio/storage/piwigo.c:1255 +msgid "cannot create a new Piwigo album!" +msgstr "aanmaak nieuw Piwigo album is mislukt!" + +#: ../src/imageio/storage/piwigo.c:1274 +msgid "could not update to Piwigo!" +msgstr "kan niet naar Piwigo worden bijgewerkt!" + +#: ../src/imageio/storage/piwigo.c:1290 +msgid "could not upload to Piwigo!" +msgstr "upload naar Piwigo mislukt!" + +#: ../src/imageio/storage/piwigo.c:1319 +#, c-format +msgid "%d/%d skipped (already exists)" +msgstr "%d/%d overgeslagen (bestaat al)" + +#: ../src/imageio/storage/piwigo.c:1325 +#, c-format +msgid "%d/%d exported to Piwigo webalbum" +msgid_plural "%d/%d exported to Piwigo webalbum" +msgstr[0] "%d/%d geëxporteerd naar Piwigo webalbum" +msgstr[1] "%d/%d geëxporteerd naar Piwigo webalbum" + +#: ../src/iop/ashift.c:120 +msgid "rotate and perspective" +msgstr "roteren en perspectief" + +#: ../src/iop/ashift.c:125 +msgid "rotation|keystone|distortion|crop|reframe" +msgstr "rotatie|keystone|vervorming|uitsnijden|herkaderen" + +#: ../src/iop/ashift.c:130 +msgid "rotate or distort perspective" +msgstr "roteer of vervorm perspectief automatisch" + +#: ../src/iop/ashift.c:131 ../src/iop/channelmixer.c:139 +#: ../src/iop/channelmixerrgb.c:233 ../src/iop/clipping.c:363 +#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:185 +#: ../src/iop/colorchecker.c:130 ../src/iop/colorcorrection.c:77 +#: ../src/iop/crop.c:134 ../src/iop/lut3d.c:142 ../src/iop/primaries.c:80 +msgid "corrective or creative" +msgstr "corrigerend of creatief" + +#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:174 +#: ../src/iop/bilateral.cc:103 ../src/iop/bilateral.cc:105 +#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:236 ../src/iop/clipping.c:364 +#: ../src/iop/clipping.c:366 ../src/iop/colorbalancergb.c:186 +#: ../src/iop/colorin.c:136 ../src/iop/crop.c:135 ../src/iop/crop.c:137 +#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:780 +#: ../src/iop/denoiseprofile.c:782 ../src/iop/diffuse.c:146 +#: ../src/iop/diffuse.c:148 ../src/iop/exposure.c:132 ../src/iop/exposure.c:134 +#: ../src/iop/flip.c:111 ../src/iop/flip.c:112 ../src/iop/hazeremoval.c:113 +#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:263 ../src/iop/lens.cc:265 +#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/primaries.c:81 +#: ../src/iop/primaries.c:83 ../src/iop/retouch.c:210 ../src/iop/retouch.c:212 +#: ../src/iop/sigmoid.c:209 ../src/iop/splittoning.c:106 +#: ../src/iop/splittoning.c:108 ../src/iop/spots.c:70 ../src/iop/spots.c:72 +#: ../src/iop/toneequal.c:333 ../src/iop/velvia.c:99 ../src/iop/velvia.c:101 +msgid "linear, RGB, scene-referred" +msgstr "lineair, RGB, scène-gerefereerd" + +#: ../src/iop/ashift.c:133 ../src/iop/borders.c:325 ../src/iop/clipping.c:365 +#: ../src/iop/crop.c:136 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 +msgid "geometric, RGB" +msgstr "geometrisch, RGB" + +#: ../src/iop/ashift.c:2866 +msgid "automatic cropping failed" +msgstr "automatisch uitsnijden mislukt" + +#: ../src/iop/ashift.c:3276 ../src/iop/ashift.c:3328 ../src/iop/ashift.c:3375 +msgid "data pending - please repeat" +msgstr "wacht op gegevens - herhaal aub" + +#: ../src/iop/ashift.c:3285 +msgid "could not detect structural data in image" +msgstr "in afbeelding zijn geen structuurgegevens gevonden" + +#: ../src/iop/ashift.c:3297 +msgid "could not run outlier removal" +msgstr "verwijderen uitschieters kon niet worden uitgevoerd" + +#: ../src/iop/ashift.c:3474 +#, c-format +msgid "" +"not enough structure for automatic correction\n" +"minimum %d lines in each relevant direction" +msgstr "" +"niet genoeg structuur voor automatische correctie\n" +"minimum %d lijnen in elke relevante richting" + +#: ../src/iop/ashift.c:3480 +msgid "automatic correction failed, please correct manually" +msgstr "automatische correctie is mislukt, corrigeer handmatig" + +#: ../src/iop/ashift.c:5077 +#, c-format +msgid "only %d lines can be saved in parameters" +msgstr "alleen %d regels kunnen worden opgeslagen in parameters" + +#: ../src/iop/ashift.c:5157 +#, c-format +msgid "rotation adjusted by %3.2f° to %3.2f°" +msgstr "rotatie aangepast met %3.2f° naar %3.2f°" + +#: ../src/iop/ashift.c:5797 ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 +#: ../src/iop/ashift.c:5906 +#, c-format +msgid "lens shift (%s)" +msgstr "lensverschuiving (%s)" + +#: ../src/iop/ashift.c:6072 +msgid "manual perspective" +msgstr "handmatige perspectief" + +#: ../src/iop/ashift.c:6117 +msgctxt "section" +msgid "perspective" +msgstr "perspectief" + +#: ../src/iop/ashift.c:6124 ../src/iop/ashift.c:6233 ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6237 +msgid "structure" +msgstr "struktuur" + +#: ../src/iop/ashift.c:6159 +msgid "" +"rotate image\n" +"right-click and drag to define a horizontal or vertical line by drawing on " +"the image" +msgstr "" +"afbeelding roteren\n" +"rechts-klik en sleep om een horizontale of verticale lijn te definiëren door " +"op de afbeelding te tekenen" + +#: ../src/iop/ashift.c:6162 ../src/iop/ashift.c:6164 +msgid "apply lens shift correction in one direction" +msgstr "correctie lensverschuiving in één richting toepassen" + +#: ../src/iop/ashift.c:6166 +msgid "shear the image along one diagonal" +msgstr "trek de afbeelding scheef langs een diagonaal" + +#: ../src/iop/ashift.c:6167 ../src/iop/clipping.c:2170 +msgid "automatically crop to avoid black edges" +msgstr "automatisch uitsnijden om zwarte randen te voorkomen" + +#: ../src/iop/ashift.c:6168 +msgid "" +"lens model of the perspective correction: generic or according to the focal " +"length" +msgstr "" +"perspectiefcorrectie voor type lens: algemeen of overeenkomstig " +"brandpuntsafstand" + +#: ../src/iop/ashift.c:6171 +msgid "focal length of the lens, default value set from EXIF data if available" +msgstr "" +"brandpuntsafstand van de lens, indien aanwezig de standaard waarde van EXIF " +"data" + +#: ../src/iop/ashift.c:6174 +msgid "" +"crop factor of the camera sensor, default value set from EXIF data if " +"available, manual setting is often required" +msgstr "" +"cropfactor van de camera sensor, indien aanwezig de standaard waarde genomen " +"van EXIF data, vaak is een handmatige invoer vereist" + +#: ../src/iop/ashift.c:6178 +msgid "" +"the level of lens dependent correction, set to maximum for full lens " +"dependency, set to zero for the generic case" +msgstr "" +"het niveau van de lens afhankelijke correctie, geef maximaal voor volledige " +"afhankelijkheid, kies nul voor algemene gevallen" + +#: ../src/iop/ashift.c:6182 +msgid "adjust aspect ratio of image by horizontal and vertical scaling" +msgstr "aanpassen beeldverhouding door horizontaal en verticaal schalen" + +#: ../src/iop/ashift.c:6184 +msgid "" +"automatically correct for vertical perspective distortion\n" +"ctrl+click to only fit rotation\n" +"shift+click to only fit lens shift" +msgstr "" +"verticale perspectief vertekening automatisch corrigeren\n" +"ctrl-klik om alleen rotatie passend te maken\n" +"shift-klik om alleen lens verschuiving passend maken" + +#: ../src/iop/ashift.c:6188 +msgid "" +"automatically correct for horizontal perspective distortion\n" +"ctrl+click to only fit rotation\n" +"shift+click to only fit lens shift" +msgstr "" +"automatisch corrigeren horizontale perspectief vervorming\n" +"ctrl+klik om alleen rotatie passend te maken\n" +"shift+ klik om alleen lensverschuiving passend te maken" + +#: ../src/iop/ashift.c:6192 +msgid "" +"automatically correct for vertical and horizontal perspective distortions, " +"fitting rotation, lens shift in both directions, and shear\n" +"ctrl+click to only fit rotation\n" +"shift+click to only fit lens shift\n" +"ctrl+shift+click to only fit rotation and lens shift" +msgstr "" +"verticale en horizontale perspectief vervorming automatisch corrigeren; " +"passende rotatie, lensverschuiving in beide richtingen, en scheefstand\n" +"ctrl-klik om alleen rotatie passend te maken\n" +"shift-klik lis alleen lensverschuiving passend te maken\n" +"ctrl-shift-klik om rotatie en lensverschuiving passend te maken" + +#: ../src/iop/ashift.c:6199 +msgid "" +"automatically analyse line structure in image\n" +"ctrl+click for an additional edge enhancement\n" +"shift+click for an additional detail enhancement\n" +"ctrl+shift+click for a combination of both methods" +msgstr "" +"analyseer lijnstructuur in afbeelding\n" +"ctrl+klik voor een aanvullende rand verbetering\n" +"shift+klik voor een aanvullende detail verbetering\n" +"ctrl+shift+klik voor een combinatie van beide methoden" + +#: ../src/iop/ashift.c:6204 +msgid "manually define perspective rectangle" +msgstr "handmatig perspectief rechthoek definiëren" + +#: ../src/iop/ashift.c:6205 +msgid "manually draw structure lines" +msgstr "handmatig structuurlijnen tekenen" + +#: ../src/iop/ashift.c:6234 +msgid "rectangle" +msgstr "rechthoek" + +#: ../src/iop/ashift.c:6236 +msgid "lines" +msgstr "lijnen" + +#: ../src/iop/ashift.c:6270 ../src/iop/clipping.c:3383 +#, c-format +msgid "[%s] define/rotate horizon" +msgstr "[%s] definieer/roteer horizon" + +#: ../src/iop/ashift.c:6273 +#, c-format +msgid "[%s on segment] select segment" +msgstr "[%s op segment] selecteer segment" + +#: ../src/iop/ashift.c:6277 +#, c-format +msgid "[%s on segment] unselect segment" +msgstr "[%s op segment] deselecteer segment" + +#: ../src/iop/ashift.c:6281 +#, c-format +msgid "[%s] select all segments from zone" +msgstr "[%s] selecteer alle segmenten in zone" + +#: ../src/iop/ashift.c:6285 +#, c-format +msgid "[%s] unselect all segments from zone" +msgstr "[%s] deselecteer alle segmenten in zone" + +#: ../src/iop/atrous.c:122 ../src/iop/atrous.c:1770 +msgid "contrast equalizer" +msgstr "contrast equalizer" + +#: ../src/iop/atrous.c:127 +msgid "sharpness|acutance|local contrast" +msgstr "scherpte|randscherpte|lokaal contrast" + +#: ../src/iop/atrous.c:132 +msgid "add or remove local contrast, sharpness, acutance" +msgstr "lokaal contrast, randscherpte, verzadiging toevoegen of verwijderen" + +#: ../src/iop/atrous.c:133 ../src/iop/bilateral.cc:102 ../src/iop/diffuse.c:145 +#: ../src/iop/exposure.c:131 ../src/iop/filmicrgb.c:352 +#: ../src/iop/graduatednd.c:146 ../src/iop/negadoctor.c:146 +#: ../src/iop/rgbcurve.c:145 ../src/iop/rgblevels.c:125 ../src/iop/shadhi.c:144 +#: ../src/iop/sigmoid.c:209 ../src/iop/tonecurve.c:184 +#: ../src/iop/toneequal.c:332 +msgid "corrective and creative" +msgstr "correctief en creatief" + +#: ../src/iop/atrous.c:134 ../src/iop/atrous.c:136 +#: ../src/iop/colorbalance.c:164 +msgid "linear, Lab, scene-referred" +msgstr "lineair, Lab, scène-gerefereerd" + +#: ../src/iop/atrous.c:135 ../src/iop/censorize.c:85 +#: ../src/iop/hazeremoval.c:114 +msgid "frequential, RGB" +msgstr "frequent, RGB" + +#: ../src/iop/atrous.c:799 +msgctxt "eq_preset" +msgid "coarse" +msgstr "grof" + +#: ../src/iop/atrous.c:815 +msgid "denoise & sharpen" +msgstr "ontruis & verscherpen" + +#: ../src/iop/atrous.c:831 +msgctxt "atrous" +msgid "sharpen" +msgstr "verscherpen" + +#: ../src/iop/atrous.c:847 +msgid "denoise chroma" +msgstr "verwijder kleurruis" + +#: ../src/iop/atrous.c:863 +msgid "denoise" +msgstr "ruisreductie" + +#: ../src/iop/atrous.c:880 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:448 +msgid "bloom" +msgstr "glans" + +#: ../src/iop/atrous.c:896 ../src/iop/bilat.c:186 +msgid "clarity" +msgstr "helderheid" + +#: ../src/iop/atrous.c:917 +msgid "deblur: large blur, strength 3" +msgstr "aanscherpen: fors, kracht 3" + +#: ../src/iop/atrous.c:935 +msgid "deblur: medium blur, strength 3" +msgstr "aanscherpen: middelmatig, kracht 3" + +#: ../src/iop/atrous.c:952 +msgid "deblur: fine blur, strength 3" +msgstr "aanscherpen: bescheiden, kracht 3" + +#: ../src/iop/atrous.c:971 +msgid "deblur: large blur, strength 2" +msgstr "aanscherpen: fors, kracht 2" + +#: ../src/iop/atrous.c:989 +msgid "deblur: medium blur, strength 2" +msgstr "aanscherpen: middelmatig, kracht 2" + +#: ../src/iop/atrous.c:1006 +msgid "deblur: fine blur, strength 2" +msgstr "aanscherpen: bescheiden, kracht 2" + +#: ../src/iop/atrous.c:1025 +msgid "deblur: large blur, strength 1" +msgstr "aanscherpen: fors, kracht 1" + +#: ../src/iop/atrous.c:1043 +msgid "deblur: medium blur, strength 1" +msgstr "aanscherpen: middelmatig, kracht 1" + +#: ../src/iop/atrous.c:1060 +msgid "deblur: fine blur, strength 1" +msgstr "aanscherpen: bescheiden, kracht 1" + +#: ../src/iop/atrous.c:1390 ../src/iop/atrous.c:1639 +#: ../src/iop/denoiseprofile.c:3514 ../src/iop/rawdenoise.c:754 +msgid "coarse" +msgstr "grof" + +#: ../src/iop/atrous.c:1397 ../src/iop/atrous.c:1640 +#: ../src/iop/denoiseprofile.c:3522 ../src/iop/rawdenoise.c:762 +msgid "fine" +msgstr "fijn" + +#: ../src/iop/atrous.c:1409 +msgid "contrasty" +msgstr "contrastrijk" + +#: ../src/iop/atrous.c:1415 ../src/iop/denoiseprofile.c:3536 +#: ../src/iop/rawdenoise.c:776 +msgid "noisy" +msgstr "ruw" + +#. case atrous_s: +#: ../src/iop/atrous.c:1418 +msgid "bold" +msgstr "fors" + +#: ../src/iop/atrous.c:1419 +msgid "dull" +msgstr "mat" + +#: ../src/iop/atrous.c:1627 ../src/iop/atrous.c:1685 +msgid "boost" +msgstr "versterk" + +#: ../src/iop/atrous.c:1628 +msgid "reduce" +msgstr "verminder" + +#: ../src/iop/atrous.c:1629 +msgid "raise" +msgstr "verhoog" + +#: ../src/iop/atrous.c:1630 +msgid "lower" +msgstr "lager" + +#: ../src/iop/atrous.c:1637 +msgid "coarsest" +msgstr "grofst" + +#: ../src/iop/atrous.c:1638 +msgid "coarser" +msgstr "grover" + +#: ../src/iop/atrous.c:1641 +msgid "finer" +msgstr "fijner" + +#: ../src/iop/atrous.c:1642 +msgid "finest" +msgstr "fijnst" + +#: ../src/iop/atrous.c:1710 ../src/libs/export.c:1239 ../src/libs/export.c:1255 +msgid "x" +msgstr "x" + +#: ../src/iop/atrous.c:1799 ../src/iop/nlmeans.c:468 +msgid "luma" +msgstr "helderheid" + +#: ../src/iop/atrous.c:1800 +msgid "change lightness at each feature size" +msgstr "wijzig helderheid voor elke afmeting" + +#: ../src/iop/atrous.c:1802 +msgid "change color saturation at each feature size" +msgstr "wijzig kleurverzadiging voor elke afmeting" + +#: ../src/iop/atrous.c:1804 +msgid "edges" +msgstr "randen" + +#: ../src/iop/atrous.c:1805 +msgid "" +"change edge halos at each feature size\n" +"only changes results of luma and chroma tabs" +msgstr "" +"wijzig halo-randen bij elke vormgrootte\n" +"verandert alleen het resultaat van de helderheids- en kleurtabs" + +#: ../src/iop/atrous.c:1818 ../src/iop/colorbalancergb.c:2129 +#: ../src/iop/colorzones.c:2732 ../src/iop/denoiseprofile.c:3747 +#: ../src/iop/filmicrgb.c:4471 ../src/iop/lowlight.c:821 +#: ../src/iop/rawdenoise.c:935 ../src/iop/toneequal.c:3424 +msgid "graph" +msgstr "kaart" + +#: ../src/iop/atrous.c:1836 ../src/iop/colorzones.c:2729 +msgid "make effect stronger or weaker" +msgstr "effect versterken/afzwakken" + +#: ../src/iop/basecurve.c:260 +msgid "neutral" +msgstr "neutraal" + +#: ../src/iop/basecurve.c:261 +msgid "canon eos like" +msgstr "gelijk aan canon EOS" + +#: ../src/iop/basecurve.c:262 +msgid "canon eos like alternate" +msgstr "gelijk aan canon EOS; alternatief" + +#: ../src/iop/basecurve.c:263 +msgid "nikon like" +msgstr "gelijk aan nikon" + +#: ../src/iop/basecurve.c:264 +msgid "nikon like alternate" +msgstr "gelijk aan nikon; alternatieve" + +#: ../src/iop/basecurve.c:265 +msgid "sony alpha like" +msgstr "gelijk aan sony alpha" + +#: ../src/iop/basecurve.c:266 +msgid "pentax like" +msgstr "gelijk aan pentax" + +#: ../src/iop/basecurve.c:267 +msgid "ricoh like" +msgstr "gelijk aan ricoh" + +#: ../src/iop/basecurve.c:268 +msgid "olympus like" +msgstr "gelijk aan olympus" + +#: ../src/iop/basecurve.c:269 +msgid "olympus like alternate" +msgstr "gelijk aan olympus; alternatieve" + +#: ../src/iop/basecurve.c:270 +msgid "panasonic like" +msgstr "gelijk aan panasonic" + +#: ../src/iop/basecurve.c:271 +msgid "leica like" +msgstr "gelijk aan leica" + +#: ../src/iop/basecurve.c:272 +msgid "kodak easyshare like" +msgstr "gelijk aan kodak easyshare" + +#: ../src/iop/basecurve.c:273 +msgid "konica minolta like" +msgstr "gelijk aan konica minolta" + +#: ../src/iop/basecurve.c:274 +msgid "samsung like" +msgstr "gelijk aan samsung" + +#: ../src/iop/basecurve.c:275 +msgid "fujifilm like" +msgstr "gelijk aan fujifilm" + +#: ../src/iop/basecurve.c:276 +msgid "nokia like" +msgstr "gelijk aan nokia" + +#. clang-format off +#. smoother cubic spline curve +#: ../src/iop/basecurve.c:331 ../src/iop/colorzones.c:2763 +#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1195 +msgid "cubic spline" +msgstr "kubisch" + +#: ../src/iop/basecurve.c:390 +msgid "base curve" +msgstr "basis curve" + +#: ../src/iop/basecurve.c:397 +msgid "" +"apply a view transform based on personal or camera manufacturer look,\n" +"for corrective purposes, to prepare images for display" +msgstr "" +"een weergavetransformatie toepassen op basis van een cameraprofiel of " +"persoonlijke smaak,\n" +"voor corrigerende doeleinden, om afbeeldingen voor te bereiden voor weergave" + +#: ../src/iop/basecurve.c:399 ../src/iop/cacorrect.c:84 +#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:120 +#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:779 +#: ../src/iop/flip.c:110 ../src/iop/hazeremoval.c:112 +#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:75 +#: ../src/iop/invert.c:136 ../src/iop/lens.cc:262 ../src/iop/nlmeans.c:89 +#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:144 +#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:96 ../src/iop/spots.c:69 +#: ../src/iop/temperature.c:220 +msgid "corrective" +msgstr "corrigerend" + +#: ../src/iop/basecurve.c:400 ../src/iop/channelmixer.c:140 +#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:143 +#: ../src/iop/negadoctor.c:147 ../src/iop/profile_gamma.c:103 +#: ../src/iop/rgbcurve.c:146 ../src/iop/rgbcurve.c:148 +#: ../src/iop/rgblevels.c:126 ../src/iop/sigmoid.c:210 ../src/iop/soften.c:104 +#: ../src/iop/soften.c:106 +msgid "linear, RGB, display-referred" +msgstr "lineair, RGB, scherm-gerefereerd" + +#: ../src/iop/basecurve.c:401 ../src/iop/basicadj.c:175 +#: ../src/iop/colorbalance.c:165 ../src/iop/colorbalancergb.c:187 +#: ../src/iop/dither.c:121 ../src/iop/filmicrgb.c:354 +#: ../src/iop/graduatednd.c:148 ../src/iop/negadoctor.c:148 +#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:147 +#: ../src/iop/rgblevels.c:127 ../src/iop/sigmoid.c:210 +#: ../src/iop/vignette.c:122 ../src/iop/watermark.c:424 +msgid "non-linear, RGB" +msgstr "niet-lineair, RGB" + +#: ../src/iop/basecurve.c:402 ../src/iop/dither.c:120 ../src/iop/dither.c:122 +#: ../src/iop/filmicrgb.c:355 ../src/iop/graduatednd.c:149 +#: ../src/iop/negadoctor.c:149 ../src/iop/profile_gamma.c:105 +#: ../src/iop/rgblevels.c:128 ../src/iop/vignette.c:121 +#: ../src/iop/vignette.c:123 ../src/iop/watermark.c:423 +#: ../src/iop/watermark.c:425 +msgid "non-linear, RGB, display-referred" +msgstr "niet-lineair, RGB, scherm-gerefereerd" + +#: ../src/iop/basecurve.c:2205 +msgid "abscissa: input, ordinate: output. works on RGB channels" +msgstr "horizontaal: invoer, verticaal: uitvoer. werkt op de RGB kanalen" + +#: ../src/iop/basecurve.c:2211 ../src/iop/basicadj.c:642 +#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1133 +#: ../src/iop/tonecurve.c:1206 +msgid "method to preserve colors when applying contrast" +msgstr "methode voor behoud van kleuren bij contrast wijziging" + +#: ../src/iop/basecurve.c:2215 +msgid "two exposures" +msgstr "twee belichtingen" + +#: ../src/iop/basecurve.c:2216 +msgid "three exposures" +msgstr "drie belichtingen" + +#: ../src/iop/basecurve.c:2217 +msgid "" +"fuse this image stopped up/down a couple of times with itself, to compress " +"high dynamic range. expose for the highlights before use." +msgstr "" +"fuseer deze afbeelding nadat er eerst kopieën met hogere/lagere stops van " +"zijn gemaakt, comprimeer zo nodig een hoog dynamisch bereik door vooraf de " +"hooglichten te belichten." + +#: ../src/iop/basecurve.c:2222 +msgid "how many stops to shift the individual exposures apart" +msgstr "" +"het aantal stops waarmee de afzonderlijke belichtingen worden verhoogd" + +#: ../src/iop/basecurve.c:2231 +msgid "" +"whether to shift exposure up or down (-1: reduce highlight, +1: reduce " +"shadows)" +msgstr "" +"om belichting te wijzigen (-1: reduceer hooglichten, +1 reduceer schaduwen)" + +#: ../src/iop/basecurve.c:2236 ../src/iop/tonecurve.c:1209 +msgid "scale for graph" +msgstr "schaal voor grafiek" + +#: ../src/iop/basicadj.c:162 +msgid "this module is deprecated. please use the quick access panel instead." +msgstr "" +"deze module is verouderd. gebruik in plaats daarvan het paneel voor snelle " +"toegang." + +#: ../src/iop/basicadj.c:167 +msgid "basic adjustments" +msgstr "basis aanpassingen" + +#: ../src/iop/basicadj.c:172 +msgid "apply usual image adjustments" +msgstr "pas de gebruikelijke beeldaanpassingen toe" + +#: ../src/iop/basicadj.c:173 ../src/iop/bilat.c:83 ../src/iop/bloom.c:81 +#: ../src/iop/blurs.c:93 ../src/iop/borders.c:323 ../src/iop/censorize.c:83 +#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:89 +#: ../src/iop/colorize.c:98 ../src/iop/colormapping.c:153 +#: ../src/iop/colorzones.c:146 ../src/iop/grain.c:450 ../src/iop/highpass.c:78 +#: ../src/iop/levels.c:140 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 +#: ../src/iop/lowpass.c:106 ../src/iop/monochrome.c:100 ../src/iop/soften.c:103 +#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:98 ../src/iop/vibrance.c:97 +#: ../src/iop/vignette.c:120 ../src/iop/watermark.c:422 +msgid "creative" +msgstr "creatief" + +#: ../src/iop/basicadj.c:176 ../src/iop/colorbalancergb.c:188 +msgid "non-linear, RGB, scene-referred" +msgstr "niet-lineair, RGB, scène-gerefereerd" + +#: ../src/iop/basicadj.c:623 +msgid "" +"adjust the black level to unclip negative RGB values.\n" +"you should never use it to add more density in blacks!\n" +"if poorly set, it will clip near-black colors out of gamut\n" +"by pushing RGB values into negatives" +msgstr "" +"wijzig het zwart niveau om het clippen van negatieve RGB waarden te " +"voorkomen.\n" +"gebruik het nooit voor meer dichtheid in de schaduwkleuren!\n" +"indien slecht ingesteld, treedt clipping op van bijna-zwarte kleuren\n" +"doordat RGB waarden negatief worden" + +#: ../src/iop/basicadj.c:631 ../src/iop/exposure.c:1136 +msgid "adjust the exposure correction" +msgstr "aanpassen belichtingscorrectie (EV)" + +#: ../src/iop/basicadj.c:635 +msgid "highlight compression adjustment" +msgstr "aanpassen compressie hooglichten" + +#: ../src/iop/basicadj.c:639 ../src/iop/colisa.c:302 +msgid "contrast adjustment" +msgstr "contrast aanpassen" + +#: ../src/iop/basicadj.c:647 +msgid "middle gray adjustment" +msgstr "middengrijsaanpassing" + +#: ../src/iop/basicadj.c:652 ../src/iop/colisa.c:303 +msgid "brightness adjustment" +msgstr "gammacorrectie" + +#: ../src/iop/basicadj.c:655 +msgid "saturation adjustment" +msgstr "aanpassing verzadiging" + +#: ../src/iop/basicadj.c:658 +msgid "vibrance adjustment" +msgstr "aanpassingen levendigheid" + +#: ../src/iop/basicadj.c:662 +msgid "apply auto exposure based on the entire image" +msgstr "toepassen automatische belichting van de hele afbeelding" + +#: ../src/iop/basicadj.c:669 +msgid "" +"apply auto exposure based on a region defined by the user\n" +"click and drag to draw the area\n" +"right click to cancel" +msgstr "" +"toepassen automatische belichting op basis van een door de gebruiker " +"gedefinieerd gebied\n" +"klik en sleep om een gebied te definiëren\n" +"verwijder met een rechtermuis klik" + +#: ../src/iop/basicadj.c:677 +msgid "clip" +msgstr "clippen" + +#: ../src/iop/basicadj.c:679 +msgid "adjusts clipping value for auto exposure calculation" +msgstr "aanpassen clipping-waarde voor berekenen aut. belichting" + +#. local contrast +#: ../src/iop/bilat.c:77 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:578 +msgid "local contrast" +msgstr "lokaal contrast" + +#: ../src/iop/bilat.c:82 +msgid "manipulate local and global contrast separately" +msgstr "manipuleer lokaal en globaal contrast afzonderlijk" + +#: ../src/iop/bilat.c:84 ../src/iop/bilat.c:86 ../src/iop/bloom.c:82 +#: ../src/iop/bloom.c:84 ../src/iop/colisa.c:91 ../src/iop/colisa.c:93 +#: ../src/iop/colorcontrast.c:90 ../src/iop/colorcontrast.c:92 +#: ../src/iop/colorcorrection.c:78 ../src/iop/colorcorrection.c:80 +#: ../src/iop/colorize.c:101 ../src/iop/colormapping.c:156 +#: ../src/iop/colorreconstruction.c:123 ../src/iop/colorzones.c:149 +#: ../src/iop/defringe.c:85 ../src/iop/grain.c:451 ../src/iop/grain.c:453 +#: ../src/iop/levels.c:143 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 +#: ../src/iop/monochrome.c:103 ../src/iop/nlmeans.c:90 ../src/iop/nlmeans.c:92 +#: ../src/iop/shadhi.c:147 ../src/iop/tonecurve.c:187 ../src/iop/vibrance.c:100 +msgid "non-linear, Lab, display-referred" +msgstr "niet-lineair, Lab, scherm-gerefereerd" + +#: ../src/iop/bilat.c:85 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 +#: ../src/iop/colorcontrast.c:91 ../src/iop/colorcorrection.c:79 +#: ../src/iop/colorize.c:100 ../src/iop/colormapping.c:155 +#: ../src/iop/colorreconstruction.c:122 ../src/iop/colorzones.c:148 +#: ../src/iop/defringe.c:84 ../src/iop/grain.c:452 ../src/iop/levels.c:142 +#: ../src/iop/monochrome.c:102 ../src/iop/nlmeans.c:91 ../src/iop/shadhi.c:146 +#: ../src/iop/tonecurve.c:186 ../src/iop/vibrance.c:99 +msgid "non-linear, Lab" +msgstr "non-lineair, Lab" + +#: ../src/iop/bilat.c:195 +msgid "HDR local tone-mapping" +msgstr "HDR lokale tonemapping" + +#: ../src/iop/bilat.c:441 +msgid "" +"the filter used for local contrast enhancement. bilateral is faster but can " +"lead to artifacts around edges for extreme settings." +msgstr "" +"het filter gebruikt voor lokale contrast verbeteringen. bilateral is sneller " +"maar kan bij extreme waarden artefacten geven rond de randen." + +#: ../src/iop/bilat.c:445 ../src/iop/globaltonemap.c:668 +msgid "detail" +msgstr "detail" + +#: ../src/iop/bilat.c:448 +msgid "changes the local contrast" +msgstr "wijzigt het lokaal contrast" + +#: ../src/iop/bilat.c:463 +msgid "feature size of local details (spatial sigma of bilateral filter)" +msgstr "" +"eigenschappen van afmeting lokale details (spatial sigma of bilateral filter)" + +#: ../src/iop/bilat.c:471 +msgid "L difference to detect edges (range sigma of bilateral filter)" +msgstr "" +"L verschil voor het opsporen van randen (range sigma of bilateral filter)" + +#: ../src/iop/bilat.c:477 +msgid "changes the local contrast of highlights" +msgstr "wijzigt het lokaal contrast van de hooglichten" + +#: ../src/iop/bilat.c:483 +msgid "changes the local contrast of shadows" +msgstr "wijzigt het lokaal contrast van de schaduwen" + +#: ../src/iop/bilat.c:489 +msgid "" +"defines what counts as mid-tones. lower for better dynamic range compression " +"(reduce shadow and highlight contrast), increase for more powerful local " +"contrast" +msgstr "" +"definieert middentonen. verlaag voor een betere compressie van het dynamisch " +"bereik (verminder contrast in schaduwen en hooglichten), verhoog voor " +"krachtiger lokaal contrast" + +#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:423 +msgid "surface blur" +msgstr "oppervlakteonscherpte" + +#: ../src/iop/bilateral.cc:79 +msgid "denoise (bilateral filter)" +msgstr "ruisreductie (bilateral)" + +#: ../src/iop/bilateral.cc:101 +msgid "apply edge-aware surface blur to denoise or smoothen textures" +msgstr "" +"pas randbewuste oppervlakonscherpte toe om texturen te verzachten of glad te " +"strijken" + +#: ../src/iop/bilateral.cc:104 ../src/iop/blurs.c:93 +#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:781 +#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/primaries.c:82 +#: ../src/iop/soften.c:105 ../src/iop/splittoning.c:107 ../src/iop/velvia.c:100 +msgid "linear, RGB" +msgstr "lineair, RGB" + +#: ../src/iop/bilateral.cc:138 +msgid "image too large" +msgstr "afbeelding te groot" + +#: ../src/iop/bilateral.cc:139 +msgid "" +"this module is unable to process\n" +"images with more than 2 gigapixels.\n" +"processing has been skipped." +msgstr "" +"deze module kan geen afbeeldingen\n" +"bewerken groter dan 2 gigapixels.\n" +"De bewerking is overgeslagen." + +#: ../src/iop/bilateral.cc:353 +msgid "spatial extent of the gaussian" +msgstr "omvang van de Gauss" + +#: ../src/iop/bilateral.cc:357 +msgid "how much to blur red" +msgstr "hoeveel rood verdoezelen" + +#: ../src/iop/bilateral.cc:362 +msgid "how much to blur green" +msgstr "hoeveel groen verdoezelen" + +#: ../src/iop/bilateral.cc:367 +msgid "how much to blur blue" +msgstr "hoeveel blauw verdoezelen" + +#: ../src/iop/bloom.c:80 +msgid "apply Orton effect for a dreamy aetherical look" +msgstr "pas het Orton-effect toe voor een dromerige etherische look" + +#: ../src/iop/bloom.c:364 ../src/iop/soften.c:364 ../src/libs/camera.c:567 +#: ../src/libs/masks.c:106 +msgid "size" +msgstr "afmeting" + +#: ../src/iop/bloom.c:366 +msgid "the size of bloom" +msgstr "mate van glans" + +#: ../src/iop/bloom.c:370 +msgid "the threshold of light" +msgstr "drempel voor glans" + +#: ../src/iop/bloom.c:374 +msgid "the strength of bloom" +msgstr "glanssterkte" + +#: ../src/iop/blurs.c:81 +msgid "blurs" +msgstr "vervagen" + +#: ../src/iop/blurs.c:86 +msgid "blur|lens|motion" +msgstr "vervaag|lens|beweging" + +#: ../src/iop/blurs.c:92 +msgid "simulate physically-accurate lens and motion blurs" +msgstr "simuleer fysiek nauwkeurige lens- en bewegingsonscherpte" + +#: ../src/iop/borders.c:312 +msgid "framing" +msgstr "omlijsten" + +#: ../src/iop/borders.c:317 +msgid "borders|enlarge canvas|expand canvas" +msgstr "randen|vergroot canvas|breid canvas uit" + +#: ../src/iop/borders.c:322 +msgid "add solid borders or margins around the picture" +msgstr "voeg effen randen of marges toe rond de afbeelding" + +#: ../src/iop/borders.c:324 ../src/iop/borders.c:326 ../src/iop/lut3d.c:145 +msgid "linear or non-linear, RGB, display-referred" +msgstr "lineair of niet-lineair, RGB, scherm-gerefereerd" + +#: ../src/iop/borders.c:737 +msgid "15:10 postcard white" +msgstr "15:10 briefkaart wit" + +#: ../src/iop/borders.c:742 +msgid "15:10 postcard black" +msgstr "15:10 briefkaart zwart" + +#: ../src/iop/borders.c:948 +msgid "which dimension to use for the size calculation" +msgstr "dimensie om de afmetingen te berekenen" + +#: ../src/iop/borders.c:954 +msgid "size of the border in percent of the chosen basis" +msgstr "de afmeting van de rand als percentage van de volledige afbeelding" + +#: ../src/iop/borders.c:956 ../src/iop/clipping.c:2271 ../src/iop/crop.c:1208 +msgid "aspect" +msgstr "verhouding" + +#: ../src/iop/borders.c:957 +msgid "" +"select the aspect ratio\n" +"(right click on slider below to type your own w:h)" +msgstr "" +"kies de beeldverhouding\n" +"(of rechtermuisklik op de schuifregelaar en typ b:h)" + +#: ../src/iop/borders.c:961 +msgid "3:1" +msgstr "3:1" + +#: ../src/iop/borders.c:962 +msgid "95:33" +msgstr "95:33" + +#: ../src/iop/borders.c:963 +msgid "CinemaScope 2.39:1" +msgstr "CinemaScope 2.39:1" + +#: ../src/iop/borders.c:964 +msgid "2:1" +msgstr "2:1" + +#: ../src/iop/borders.c:965 +msgid "16:9" +msgstr "16:9" + +#: ../src/iop/borders.c:966 +msgid "5:3" +msgstr "5:3" + +#: ../src/iop/borders.c:967 +msgid "US Legal 8.5x14" +msgstr "US Legal 8.5x14" + +#: ../src/iop/borders.c:968 ../src/iop/clipping.c:2184 ../src/iop/crop.c:1112 +msgid "golden cut" +msgstr "gulden snede" + +#: ../src/iop/borders.c:969 +msgid "16:10" +msgstr "16:10, 8x5" + +#: ../src/iop/borders.c:970 +msgid "3:2 (4x6, 10x15cm)" +msgstr "3:2 (4x6, 10x15cm)" + +#: ../src/iop/borders.c:972 +msgid "DIN" +msgstr "DIN" + +#: ../src/iop/borders.c:973 +msgid "7:5" +msgstr "7:5" + +#: ../src/iop/borders.c:974 +msgid "4:3" +msgstr "4:3" + +#: ../src/iop/borders.c:975 +msgid "US Letter 8.5x11" +msgstr "US Letter 8.5x11" + +#: ../src/iop/borders.c:976 +msgid "14:11" +msgstr "14:11" + +#: ../src/iop/borders.c:977 +msgid "5:4 (8x10)" +msgstr "5:4 (8x10)" + +#: ../src/iop/borders.c:978 ../src/iop/clipping.c:2174 ../src/iop/crop.c:1102 +#: ../src/libs/filtering.c:307 ../src/libs/filters/ratio.c:126 +#: ../src/libs/histogram.c:118 +msgid "square" +msgstr "vierkant" + +#: ../src/iop/borders.c:979 +msgid "constant border" +msgstr "vaste randdikte" + +#: ../src/iop/borders.c:980 ../src/iop/borders.c:996 ../src/iop/borders.c:1007 +msgid "custom..." +msgstr "aangepast..." + +#: ../src/iop/borders.c:984 +msgid "" +"set the custom aspect ratio\n" +"(right click to enter number or w:h)" +msgstr "" +"kies de aangepaste beeldverhouding\n" +"(rechtermuisklik en typ nummer of b:h)" + +#: ../src/iop/borders.c:989 +msgid "aspect ratio orientation of the image with border" +msgstr "oriëntatie beeldverhouding van de afbeelding met rand" + +#: ../src/iop/borders.c:991 +msgid "horizontal position" +msgstr "horizontale positie" + +# orig. top is onjuist, m.z. width +#: ../src/iop/borders.c:992 +msgid "" +"select the horizontal position ratio relative to top\n" +"(right click on slider below to type your own x:w)" +msgstr "" +"kies de horizontale positie ten opzichte van de breedte\n" +"(of rechtermuisklik en type x:b)" + +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 +msgid "center" +msgstr "centreer" + +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 +msgid "1/3" +msgstr "1/3" + +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 +msgid "3/8" +msgstr "3/8" + +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 +msgid "5/8" +msgstr "5/8" + +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 +msgid "2/3" +msgstr "2/3" + +#: ../src/iop/borders.c:1000 +msgid "custom horizontal position" +msgstr "aangepaste horizontale positie" + +#: ../src/iop/borders.c:1002 +msgid "vertical position" +msgstr "verticale positie" + +# orig. left is onjuist m.z. height +#: ../src/iop/borders.c:1003 +msgid "" +"select the vertical position ratio relative to left\n" +"(right click on slider below to type your own y:h)" +msgstr "" +"kies de verticale positie ten opzichte van de hoogte\n" +"(of rechtermuisklik en type y:h)" + +#: ../src/iop/borders.c:1011 +msgid "custom vertical position" +msgstr "aangepaste verticale positie" + +#: ../src/iop/borders.c:1017 +msgid "size of the frame line in percent of min border width" +msgstr "frameafmeting als percentage van de minimale randbreedte" + +#: ../src/iop/borders.c:1023 +msgid "offset of the frame line beginning on picture side" +msgstr "afstand frame berekend vanaf afbeeldingszijde" + +#: ../src/iop/borders.c:1033 ../src/iop/borders.c:1044 +msgid "border color" +msgstr "randkleur" + +#: ../src/iop/borders.c:1037 +msgid "select border color" +msgstr "kies kleur van de rand" + +#: ../src/iop/borders.c:1043 +msgid "pick border color from image" +msgstr "kies een randkleur uit de afbeelding" + +#: ../src/iop/borders.c:1044 ../src/iop/borders.c:1061 +#: ../src/iop/colorzones.c:2662 ../src/iop/colorzones.c:2677 +#: ../src/iop/negadoctor.c:867 ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:972 ../src/iop/rgbcurve.c:1369 +#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1075 +#: ../src/iop/rgblevels.c:1083 ../src/iop/rgblevels.c:1091 +msgid "pickers" +msgstr "kiezers" + +#: ../src/iop/borders.c:1049 ../src/iop/borders.c:1061 +msgid "frame line color" +msgstr "kleur frame" + +#: ../src/iop/borders.c:1054 +msgid "select frame line color" +msgstr "kies framekleur" + +#: ../src/iop/borders.c:1060 +msgid "pick frame line color from image" +msgstr "neem framekleur uit de afbeelding" + +#. make sure you put all your translatable strings into _() ! +#: ../src/iop/cacorrect.c:78 +msgid "raw chromatic aberrations" +msgstr "raw chromatische aberraties" + +#: ../src/iop/cacorrect.c:83 +msgid "correct chromatic aberrations for Bayer sensors" +msgstr "corrigeer kleurschifting voor Bayersensoren" + +#: ../src/iop/cacorrect.c:85 ../src/iop/cacorrect.c:87 +#: ../src/iop/cacorrectrgb.c:171 ../src/iop/cacorrectrgb.c:173 +#: ../src/iop/demosaic.c:294 ../src/iop/highlights.c:180 +#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:76 +#: ../src/iop/hotpixels.c:78 ../src/iop/rawdenoise.c:145 +#: ../src/iop/rawdenoise.c:147 ../src/iop/rawprepare.c:175 +#: ../src/iop/rawprepare.c:177 ../src/iop/temperature.c:221 +#: ../src/iop/temperature.c:223 +msgid "linear, raw, scene-referred" +msgstr "lineair, raw, scène-gerefereerd" + +#: ../src/iop/cacorrect.c:86 ../src/iop/cacorrectrgb.c:172 +#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:138 +#: ../src/iop/rawdenoise.c:146 ../src/iop/rawprepare.c:176 +#: ../src/iop/temperature.c:222 +msgid "linear, raw" +msgstr "lineair, raw" + +#: ../src/iop/cacorrect.c:1424 +msgid "iteration runs, default is twice" +msgstr "iteratie wordt uitgevoerd, standaard is twee keer" + +#: ../src/iop/cacorrect.c:1427 +msgid "activate colorshift correction for blue & red channels" +msgstr "activeer kleurverschuivingscorrectie voor blauwe en rode kanalen" + +#: ../src/iop/cacorrect.c:1434 +msgid "" +"automatic chromatic aberration correction\n" +"only for Bayer raw files with 3 color channels" +msgstr "" +"automatisch chromatische aberratie correctie\n" +"alleen voor Bayer RAW-bestanden met 3 kleurkanalen" + +#: ../src/iop/cacorrectrgb.c:164 ../src/iop/defringe.c:76 +msgid "chromatic aberrations" +msgstr "chromatische aberraties" + +#: ../src/iop/cacorrectrgb.c:169 +msgid "correct chromatic aberrations" +msgstr "corrigeer chromatische aberraties" + +#: ../src/iop/cacorrectrgb.c:745 +msgid "" +"channel used as a reference to\n" +"correct the other channels.\n" +"use sharpest channel if some\n" +"channels are blurry.\n" +"try changing guide channel if you\n" +"have artifacts." +msgstr "" +"kanaal dat als referentie wordt gebruikt\n" +"om de andere kanalen te corrigeren.\n" +"gebruik het scherpste kanaal als\n" +"Sommige kanalen wazig zijn.\n" +"probeer het gidskanaal te veranderen als je\n" +"artefacten hebt." + +#: ../src/iop/cacorrectrgb.c:752 +msgid "increase for stronger correction" +msgstr "verhogen voor sterkere correctie" + +#: ../src/iop/cacorrectrgb.c:754 +msgid "" +"balance between smoothing colors\n" +"and preserving them.\n" +"high values can lead to overshooting\n" +"and edge bleeding." +msgstr "" +"balans tussen egaliserende kleuren\n" +"en het bewaren ervan.\n" +"hoge waarden kunnen tot overschrijding leiden\n" +"en randlekken." + +#: ../src/iop/cacorrectrgb.c:759 +msgctxt "section" +msgid "advanced parameters" +msgstr "geavanceerde parameters" + +#: ../src/iop/cacorrectrgb.c:761 +msgid "" +"correction mode to use.\n" +"can help with multiple\n" +"instances for very damaged\n" +"images.\n" +"darken only is particularly\n" +"efficient to correct blue\n" +"chromatic aberration." +msgstr "" +"correctiemodus om te gebruiken.\n" +"kan helpen met meerdere instanties\n" +"voor zeer beschadigde afbeeldingen.\n" +"'enkel verdonkeren' werkt goed\n" +"tegen blauwe chromatische\n" +"aberratie." + +#: ../src/iop/cacorrectrgb.c:769 +msgid "" +"runs an iterative approach\n" +"with several radii.\n" +"improves result on images\n" +"with very large chromatic\n" +"aberrations, but can smooth\n" +"colors too much on other\n" +"images." +msgstr "" +"voert herhalend uit met verschillende radii.\n" +"verbetert het resultaat op afbeeldingen\n" +"met zeer grote chromatische\n" +"afwijkingen, maar kan kleuren\n" +"teveel gladstrijken op andere\n" +"afbeeldingen." + +#: ../src/iop/censorize.c:77 +msgid "censorize" +msgstr "censureer" + +#: ../src/iop/censorize.c:82 +msgid "censorize license plates and body parts for privacy" +msgstr "censureer kentekenplaten en lichaamsdelen voor privacy" + +#: ../src/iop/censorize.c:84 ../src/iop/colorin.c:134 +#: ../src/iop/filmicrgb.c:353 ../src/iop/graduatednd.c:147 +msgid "linear or non-linear, RGB, scene-referred" +msgstr "lineair of niet-lineair, RGB, scène-gerefereerd" + +#: ../src/iop/censorize.c:86 +msgid "special, RGB, scene-referred" +msgstr "speciaal, RGB, scène-gerefereerd" + +#: ../src/iop/censorize.c:404 +msgid "radius_1" +msgstr "radius_1" + +#: ../src/iop/censorize.c:406 +msgid "pixelate" +msgstr "pixelate" + +#: ../src/iop/censorize.c:408 +msgid "radius_2" +msgstr "radius_2" + +#: ../src/iop/censorize.c:410 +msgid "noise" +msgstr "ruis" + +#: ../src/iop/censorize.c:412 +msgid "radius of gaussian blur before pixellation" +msgstr "radius voor gaussiaanse vervaging voor pixelatie" + +#: ../src/iop/censorize.c:413 +msgid "radius of gaussian blur after pixellation" +msgstr "radius voor gaussiaans vervagen na pixelation" + +#: ../src/iop/censorize.c:414 +msgid "radius of the intermediate pixellation" +msgstr "radius voor tussen-pixelation" + +#: ../src/iop/censorize.c:415 +msgid "amount of noise to add at the end" +msgstr "hoeveelheid ruis om aan het einde toe te voegen" + +#: ../src/iop/channelmixer.c:126 +msgid "channel mixer" +msgstr "kanalenmixer" + +#: ../src/iop/channelmixer.c:131 +msgid "" +"this module is deprecated. please use the color calibration module instead." +msgstr "" +"deze module is verouderd. gebruik in plaats daarvan de kleurkalibratiemodule." + +#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:230 +msgid "" +"perform color space corrections\n" +"such as white balance, channels mixing\n" +"and conversions to monochrome emulating film" +msgstr "" +"kleurruimtecorrecties uitvoeren\n" +"zoals witbalans, mixen van kanalen\n" +"en conversies naar monochrome emulatiefilm" + +#: ../src/iop/channelmixer.c:633 +msgid "destination" +msgstr "bestemming" + +#: ../src/iop/channelmixer.c:640 +msgctxt "channelmixer" +msgid "gray" +msgstr "grijs" + +#: ../src/iop/channelmixer.c:646 +msgid "amount of red channel in the output channel" +msgstr "hoeveelheid rood in uitgaand kanaal" + +#: ../src/iop/channelmixer.c:652 +msgid "amount of green channel in the output channel" +msgstr "hoeveelheid groen in uitgaand kanaal" + +#: ../src/iop/channelmixer.c:658 +msgid "amount of blue channel in the output channel" +msgstr "hoeveelheid blauw in uitgaand kanaal" + +#: ../src/iop/channelmixer.c:674 ../src/iop/channelmixerrgb.c:588 +msgid "swap R and B" +msgstr "wissel R en B" + +#: ../src/iop/channelmixer.c:680 ../src/iop/channelmixerrgb.c:562 +msgid "swap G and B" +msgstr "wissel G en B" + +#: ../src/iop/channelmixer.c:686 +msgid "color contrast boost" +msgstr "kleurcontrast versterken" + +#: ../src/iop/channelmixer.c:692 +msgid "color details boost" +msgstr "kleurdetails versterken" + +#: ../src/iop/channelmixer.c:698 +msgid "color artifacts boost" +msgstr "kleurartefacten versterken" + +#: ../src/iop/channelmixer.c:704 +msgid "B/W luminance-based" +msgstr "Z/W helderheid gebaseerd" + +#: ../src/iop/channelmixer.c:710 +msgid "B/W artifacts boost" +msgstr "Z/W artefacten versterken" + +#: ../src/iop/channelmixer.c:716 +msgid "B/W smooth skin" +msgstr "Z/W gladdere huid" + +#: ../src/iop/channelmixer.c:722 +msgid "B/W blue artifacts reduce" +msgstr "Z/W reduceer blauwe artefacten" + +#: ../src/iop/channelmixer.c:729 +msgid "B/W Ilford Delta 100-400" +msgstr "Z/W Ilford Delta 100-400" + +#: ../src/iop/channelmixer.c:736 +msgid "B/W Ilford Delta 3200" +msgstr "Z/W Ilford Delta 3200" + +#: ../src/iop/channelmixer.c:743 +msgid "B/W Ilford FP4" +msgstr "Z/W Ilford FP4" + +#: ../src/iop/channelmixer.c:750 +msgid "B/W Ilford HP5" +msgstr "Z/W Ilford HP5" + +#: ../src/iop/channelmixer.c:757 +msgid "B/W Ilford SFX" +msgstr "Z/W Ilford SFX" + +#: ../src/iop/channelmixer.c:764 +msgid "B/W Kodak T-Max 100" +msgstr "Z/W Kodak T-Max 100" + +#: ../src/iop/channelmixer.c:771 +msgid "B/W Kodak T-max 400" +msgstr "Z/W Kodak T-max 400" + +#: ../src/iop/channelmixer.c:778 +msgid "B/W Kodak Tri-X 400" +msgstr "Z/W Kodak Tri-X 400" + +#: ../src/iop/channelmixerrgb.c:220 +msgid "color calibration" +msgstr "kleurkalibratie" + +#: ../src/iop/channelmixerrgb.c:225 +msgid "channel mixer|white balance|monochrome" +msgstr "kanaalmixer|witbalans|monochroom" + +#: ../src/iop/channelmixerrgb.c:235 +msgid "linear, RGB or XYZ" +msgstr "lineair, RGB or XYZ" + +#: ../src/iop/channelmixerrgb.c:460 +msgid "B&W: luminance-based" +msgstr "Z/W: helderheid gebaseerd" + +#: ../src/iop/channelmixerrgb.c:495 +msgid "B&W: ILFORD HP5+" +msgstr "Z/W: Ilford HP5+" + +#: ../src/iop/channelmixerrgb.c:504 +msgid "B&W: ILFORD DELTA 100" +msgstr "Z/W: ILFORD DELTA 100" + +#: ../src/iop/channelmixerrgb.c:514 +msgid "B&W: ILFORD DELTA 400 - 3200" +msgstr "Z/W: ILFORD DELTA 400 - 3200" + +#: ../src/iop/channelmixerrgb.c:523 +msgid "B&W: ILFORD FP4+" +msgstr "Z/W: Ilford FP4+" + +#: ../src/iop/channelmixerrgb.c:532 +msgid "B&W: Fuji Acros 100" +msgstr "Z/W: Fuji Acros 100" + +#: ../src/iop/channelmixerrgb.c:549 +msgid "basic channel mixer" +msgstr "basis kanaalmixer" + +#: ../src/iop/channelmixerrgb.c:575 +msgid "swap G and R" +msgstr "wissel G en R" + +#: ../src/iop/channelmixerrgb.c:1926 +msgid "(daylight)" +msgstr "(daglicht)" + +#: ../src/iop/channelmixerrgb.c:1928 +msgid "(black body)" +msgstr "(zwart lichaam)" + +#: ../src/iop/channelmixerrgb.c:1930 +msgid "(invalid)" +msgstr "(ongeldig)" + +#: ../src/iop/channelmixerrgb.c:1934 ../src/iop/channelmixerrgb.c:1992 +msgid "very good" +msgstr "zeer goed" + +#: ../src/iop/channelmixerrgb.c:1936 ../src/iop/channelmixerrgb.c:1994 +msgid "good" +msgstr "goed" + +#: ../src/iop/channelmixerrgb.c:1938 ../src/iop/channelmixerrgb.c:1996 +msgid "passable" +msgstr "redelijk" + +#: ../src/iop/channelmixerrgb.c:1940 ../src/iop/channelmixerrgb.c:1998 +msgid "bad" +msgstr "slecht" + +#: ../src/iop/channelmixerrgb.c:1947 +#, c-format +msgid "" +"\n" +"<b>Profile quality report: %s</b>\n" +"input ΔE: \tavg. %.2f ; \tmax. %.2f\n" +"WB ΔE: \tavg. %.2f; \tmax. %.2f\n" +"output ΔE: \tavg. %.2f; \tmax. %.2f\n" +"\n" +"<b>Profile data</b>\n" +"illuminant: \t%.0f K \t%s\n" +"matrix in adaptation space:\n" +"<tt>%+.4f \t%+.4f \t%+.4f\n" +"%+.4f \t%+.4f \t%+.4f\n" +"%+.4f \t%+.4f \t%+.4f</tt>\n" +"\n" +"<b>Normalization values</b>\n" +"exposure compensation: \t%+.2f EV\n" +"black offset: \t%+.4f" +msgstr "" +"\n" +"<b>Profielkwaliteitsrapport : %s</b>\n" +"invoer ΔE : \tgem. %.2f ; \tmax. %.2f\n" +"WB ΔE : \tgem. %.2f ; \tmax. %.2f\n" +"uitvoer ΔE : \tgem. %.2f ; \tmax. %.2f\n" +"\n" +"<b>Profieldata</b>\n" +"lichtbron : \t%.0f K \t%s \n" +"matrix in aanpassingsruimte:\n" +"<tt>%+.4f \t%+.4f \t%+.4f\n" +"%+.4f \t%+.4f \t%+.4f\n" +"%+.4f \t%+.4f \t%+.4f</tt>\n" +"\n" +"<b>Normalisatiewaarden</b>\n" +"belichtingscompensatie : \t%+.2f EV\n" +"zwart offset : \t%+.4f" + +#: ../src/iop/channelmixerrgb.c:2003 +#, c-format +msgid "" +"\n" +"<b>Profile quality report: %s</b>\n" +"output ΔE: \tavg. %.2f; \tmax. %.2f\n" +"\n" +"<b>Normalization values</b>\n" +"exposure compensation: \t%+.2f EV\n" +"black offset: \t%+.4f" +msgstr "" +"\n" +"<b>Profielkwaliteitsrapport : %s</b>\n" +"uitvoer ΔE : \tgem. %.2f ; \tmax. %.2f\n" +"\n" +"<b>Normalisatiewaarden</b>\n" +"belichtingscompensatie : \t%+.2f EV\n" +"zwart offset : \t%+.4f" + +#: ../src/iop/channelmixerrgb.c:2054 +msgid "double CAT applied" +msgstr "dubbele CAT toegepast" + +#: ../src/iop/channelmixerrgb.c:2055 +msgid "" +"you have 2 instances or more of color calibration,\n" +"all providing chromatic adaptation.\n" +"this can lead to inconsistencies unless you\n" +"use them with masks or know what you are doing." +msgstr "" +"je hebt 2 of meer instanties van kleurkalibratie,\n" +"die allemaal kleuraanpassingen uitvoeren.\n" +"dit kan tot inconsistenties leiden, tenzij je\n" +"ze met maskers gebruikt of weet wat je doet." + +#: ../src/iop/channelmixerrgb.c:2071 +msgid "white balance applied twice" +msgstr "witbalans werd twee keer toegepast" + +#: ../src/iop/channelmixerrgb.c:2072 +msgid "" +"the color calibration module is enabled and already provides\n" +"chromatic adaptation.\n" +"set the white balance here to camera reference (D65)\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"de kleurkalibratie-module is ingeschakeld en die\n" +"past de kleuren reeds aan.\n" +"stel hier de witbalans in op camerareferentie (D65)\n" +"of schakel kleuraanpassing in kleurkalibratie uit." + +#: ../src/iop/channelmixerrgb.c:2080 +msgid "white balance module error" +msgstr "fout in witbalansmodule" + +#: ../src/iop/channelmixerrgb.c:2081 +msgid "" +"the white balance module is not using the camera\n" +"reference illuminant, which will cause issues here\n" +"with chromatic adaptation. either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" +"de witbalansmodule gebruikt niet de camera referentie\n" +"instelling, dit leidt tot problemen met kleuraanpassing.\n" +"Zet de witbalans op camera referentie of schakel hier\n" +"kleuraanpassing uit." + +#: ../src/iop/channelmixerrgb.c:2095 ../src/iop/channelmixerrgb.c:2104 +msgid "white balance missing" +msgstr "witbalans ontbreekt" + +#: ../src/iop/channelmixerrgb.c:2096 +msgid "" +"this module is not providing a valid reference illuminant\n" +"causing chromatic adaptation issues in color calibration.\n" +"enable this module and either set it to reference\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"deze module geeft geen geldige referentielichtbron\n" +"wat leidt tot kleurfouten in kleurkalibratie.\n" +"Stel hier de witbalans in op de juiste referentie\n" +"of schakel kleuraanpassing in kleurkalibratie uit." + +#: ../src/iop/channelmixerrgb.c:2105 +msgid "" +"the white balance module is not providing a valid reference\n" +"illuminant causing issues with chromatic adaptation here.\n" +"enable white balance and either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" +"de witbalansmodule gebruikt geen geldige referentie\n" +"lichtbron, wat leidt tot problemen met kleuraanpassing.\n" +"Stel de witbalans in op de juiste referentie of schakel\n" +"hier kleuraanpassing uit." + +#: ../src/iop/channelmixerrgb.c:2196 +msgid "auto-detection of white balance completed" +msgstr "automatische detectie van witbalans voltooid" + +#: ../src/iop/channelmixerrgb.c:2346 +msgid "channelmixerrgb works only on RGB input" +msgstr "channelmixerrgb werkt alleen op RGB-invoer" + +#: ../src/iop/channelmixerrgb.c:3692 +#, c-format +msgid "CCT: %.0f K (daylight)" +msgstr "CCT: %.0f K (daglicht)" + +#: ../src/iop/channelmixerrgb.c:3695 +msgid "" +"approximated correlated color temperature.\n" +"this illuminant can be accurately modeled by a daylight spectrum,\n" +"so its temperature is relevant and meaningful with a D illuminant." +msgstr "" +"geschatte gecorreleerde kleurtemperatuur.\n" +"deze lichtbron kan nauwkeurig worden gemodelleerd door een " +"daglichtspectrum,\n" +"dus de temperatuur is relevant en zinvol met een D-lichtbron." + +#: ../src/iop/channelmixerrgb.c:3701 +#, c-format +msgid "CCT: %.0f K (black body)" +msgstr "CCT: %.0f K (zwart body)" + +#: ../src/iop/channelmixerrgb.c:3704 +msgid "" +"approximated correlated color temperature.\n" +"this illuminant can be accurately modeled by a black body spectrum,\n" +"so its temperature is relevant and meaningful with a Planckian illuminant." +msgstr "" +"geschatte gecorreleerde kleurtemperatuur.\n" +"deze lichtbron kan nauwkeurig worden gemodelleerd door een zwart body " +"spectrum,\n" +"dus de temperatuur is relevant en zinvol met een Planckian lichtbron." + +#: ../src/iop/channelmixerrgb.c:3710 +#, c-format +msgid "CCT: %.0f K (invalid)" +msgstr "CCT: %.0f K (ongeldig)" + +#: ../src/iop/channelmixerrgb.c:3713 +msgid "" +"approximated correlated color temperature.\n" +"this illuminant cannot be accurately modeled by a daylight or black body " +"spectrum,\n" +"so its temperature is not relevant and meaningful and you need to use a " +"custom illuminant." +msgstr "" +"geschatte gecorreleerde kleurtemperatuur.\n" +"deze lichtbron kan niet nauwkeurig worden gemodelleerd door een daglicht- of " +"zwart body spectrum,\n" +"de temperatuur is dus niet relevant en zinvol en je moet een aangepaste " +"lichtbron gebruiken." + +#: ../src/iop/channelmixerrgb.c:3722 +#, c-format +msgid "CCT: undefined" +msgstr "CCT: ongedefinieerd" + +#: ../src/iop/channelmixerrgb.c:3725 +msgid "" +"the approximated correlated color temperature\n" +"cannot be computed at all so you need to use a custom illuminant." +msgstr "" +"de geschatte gecorreleerde kleurtemperatuur\n" +"kan helemaal niet worden berekend, je moet een aangepaste lichtbron " +"gebruiken." + +#: ../src/iop/channelmixerrgb.c:4038 +msgid "white balance successfully extracted from raw image" +msgstr "witbalans succesvol geëxtraheerd uit raw-afbeelding" + +#. We need to recompute only the full preview +#: ../src/iop/channelmixerrgb.c:4044 +msgid "auto-detection of white balance started…" +msgstr "automatische detectie van witbalans gestart…" + +#: ../src/iop/channelmixerrgb.c:4149 +msgid "" +"color calibration: the sum of the gray channel parameters is zero, " +"normalization will be disabled." +msgstr "" +"kleurkalibratie: de som van de grijskanaalparameters is nul, normalisatie " +"wordt uitgeschakeld." + +#. Write report in GUI +#: ../src/iop/channelmixerrgb.c:4194 +#, c-format +msgid "" +"L: \t%.1f %%\n" +"h: \t%.1f °\n" +"c: \t%.1f" +msgstr "" +"L : \t%.1f %%\n" +"h : \t%.1f °\n" +"c : \t%.1f" + +#: ../src/iop/channelmixerrgb.c:4462 ../src/iop/clipping.c:2140 +#: ../src/iop/colorbalancergb.c:1944 ../src/iop/filmicrgb.c:4483 +#: ../src/iop/negadoctor.c:848 ../src/iop/toneequal.c:3372 +#: ../src/libs/image.c:490 ../src/views/lighttable.c:1258 +msgid "page" +msgstr "pagina" + +#. Page CAT +#: ../src/iop/channelmixerrgb.c:4465 +msgid "CAT" +msgstr "CAT" + +#: ../src/iop/channelmixerrgb.c:4466 +msgid "chromatic adaptation transform" +msgstr "kleuraanpassingstransformatie" + +#: ../src/iop/channelmixerrgb.c:4468 +msgid "adaptation" +msgstr "aanpassing" + +#: ../src/iop/channelmixerrgb.c:4471 +msgid "" +"choose the method to adapt the illuminant\n" +"and the colorspace in which the module works: \n" +"• Linear Bradford (1985) is consistent with ICC v4 toolchain.\n" +"• CAT16 (2016) is more robust and accurate.\n" +"• Non-linear Bradford (1985) is the original Bradford,\n" +"it can produce better results than the linear version, but is unreliable.\n" +"• XYZ is a simple scaling in XYZ space. It is not recommended in general.\n" +"• none disables any adaptation and uses pipeline working RGB." +msgstr "" +"kies de methode om de lichtbron en de kleurruimte\n" +"waarin de module werktaan te passen:\n" +"• Lineair Bradford (1985) is consistent met ICC v4-toolchain.\n" +"• CAT16 (2016) is robuuster en nauwkeuriger.\n" +"• Niet-lineair Bradford (1985) is de originele Bradford,\n" +"het kan betere resultaten opleveren dan de lineaire versie, maar is " +"onbetrouwbaar.\n" +"• XYZ is een eenvoudige schaling in XYZ-ruimte. Het wordt in het algemeen " +"niet aanbevolen.\n" +"• geen schakelt elke aanpassing uit en gebruikt RGB via de pijplijn." + +#: ../src/iop/channelmixerrgb.c:4491 +msgid "" +"this is the color of the scene illuminant before chromatic adaptation\n" +"this color will be turned into pure white by the adaptation." +msgstr "" +"dit is de kleur van de scèneverlichting vóór kleuraanpassing\n" +"deze kleur zal door de aanpassing in zuiver wit veranderen." + +#: ../src/iop/channelmixerrgb.c:4499 +msgid "picker" +msgstr "kiezer" + +#: ../src/iop/channelmixerrgb.c:4501 ../src/iop/temperature.c:2015 +msgid "set white balance to detected from area" +msgstr "stel de witbalans in op basis van gebiedsdetectie" + +#: ../src/iop/channelmixerrgb.c:4505 ../src/iop/negadoctor.c:972 +msgid "illuminant" +msgstr "lichtbron" + +#: ../src/iop/channelmixerrgb.c:4511 ../src/iop/temperature.c:2072 +msgid "temperature" +msgstr "temperatuur" + +#: ../src/iop/channelmixerrgb.c:4542 +msgid "area color mapping" +msgstr "kleuren mapping" + +#: ../src/iop/channelmixerrgb.c:4548 +msgid "" +"define a target chromaticity (hue and chroma) for a particular region of the " +"image (the control sample), which you then match against the same target " +"chromaticity in other images. the control sample can either be a critical " +"part of your subject or a non-moving and consistently-lit surface over your " +"series of images." +msgstr "" +"definieer een doel kleur (tint en verzadiging) voor een bepaald gebied van " +"de afbeelding (het proefmonster), die u vervolgens vergelijkt met dezelfde " +"gewenste kleur in andere afbeeldingen. het proefmonster kan een cruciaal " +"onderdeel van uw onderwerp zijn of een niet-bewegend en consistent verlicht " +"oppervlak over uw reeks afbeeldingen." + +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/channelmixerrgb.c:4570 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/channelmixerrgb.c:4641 +msgid "mapping" +msgstr "mapping" + +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/exposure.c:1206 +msgid "area mode" +msgstr "modus" + +#: ../src/iop/channelmixerrgb.c:4556 +msgid "" +"\"correction\" automatically adjust the illuminant\n" +"such that the input color is mapped to the target.\n" +"\"measure\" simply shows how an input color is mapped by the CAT\n" +"and can be used to sample a target." +msgstr "" +"\"correctie\" pas helderheid automatisch aan\n" +"zodat de bron kleur wordt toegewezen aan het doel\n" +"\"meting\" laat zien hoe een bron kleur is toegewezen door de CAT\n" +"en kan gebruikt worden om een sample te nemen van een doel." + +#: ../src/iop/channelmixerrgb.c:4561 ../src/iop/exposure.c:1212 +msgid "correction" +msgstr "correctie" + +#: ../src/iop/channelmixerrgb.c:4562 ../src/iop/exposure.c:1213 +msgid "measure" +msgstr "meting" + +#: ../src/iop/channelmixerrgb.c:4568 +msgid "take channel mixing into account" +msgstr "houd rekening met kanaal menging" + +#: ../src/iop/channelmixerrgb.c:4575 +msgid "" +"compute the target by taking the channel mixing into account.\n" +"if disabled, only the CAT is considered." +msgstr "" +"bereken het doel door rekening te houden met de kanaal mixer.\n" +"wanneer uitgeschakeld, alleen rekening gehouden met CAT." + +#: ../src/iop/channelmixerrgb.c:4587 ../src/iop/exposure.c:1220 +msgctxt "section" +msgid "input" +msgstr "invoer" + +#: ../src/iop/channelmixerrgb.c:4594 ../src/iop/exposure.c:1228 +msgid "the input color that should be mapped to the target" +msgstr "de bron kleur die toegewezen moet worden aan het doel" + +#: ../src/iop/channelmixerrgb.c:4600 +msgid "" +"L: \tN/A\n" +"h: \tN/A\n" +"c: \tN/A" +msgstr "" +"L : \tN.v.t. \n" +"h : \tN.v.t.\n" +"c : \tN.v.t" + +#: ../src/iop/channelmixerrgb.c:4603 ../src/iop/exposure.c:1236 +msgid "these LCh coordinates are computed from CIE Lab 1976 coordinates" +msgstr "de LCh coördinaten worden berekend uit de CIE Lab 1976 coördinaten" + +#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/exposure.c:1243 +msgctxt "section" +msgid "target" +msgstr "doel" + +#: ../src/iop/channelmixerrgb.c:4618 +msgid "the desired target color after mapping" +msgstr "de gewenste doel kleur na mapping" + +#: ../src/iop/channelmixerrgb.c:4657 +msgid "input R" +msgstr "invoer R" + +#: ../src/iop/channelmixerrgb.c:4662 +msgid "input G" +msgstr "invoer G" + +#: ../src/iop/channelmixerrgb.c:4667 +msgid "input B" +msgstr "invoer B" + +#: ../src/iop/channelmixerrgb.c:4677 +msgid "output R" +msgstr "uitvoer R" + +#: ../src/iop/channelmixerrgb.c:4678 +msgid "output G" +msgstr "uitvoer G" + +#: ../src/iop/channelmixerrgb.c:4679 +msgid "output B" +msgstr "uitvoer B" + +#: ../src/iop/channelmixerrgb.c:4681 +msgid "colorfulness" +msgstr "verzadiging" + +#: ../src/iop/channelmixerrgb.c:4681 +msgid "output colorfulness" +msgstr "uitgaande verzadiging" + +#: ../src/iop/channelmixerrgb.c:4685 +msgid "output brightness" +msgstr "uitgaande helderheid" + +#: ../src/iop/channelmixerrgb.c:4688 +msgid "output gray" +msgstr "uitvoer grijs" + +#: ../src/iop/channelmixerrgb.c:4703 +msgid "calibrate with a color checker" +msgstr "kalibreer met een kleurenkaart" + +#: ../src/iop/channelmixerrgb.c:4708 +msgid "use a color checker target to autoset CAT and channels" +msgstr "gebruik een kleurenkaart om CAT en kanalen automatisch in te stellen" + +#: ../src/iop/channelmixerrgb.c:4715 ../src/iop/channelmixerrgb.c:4728 +#: ../src/iop/channelmixerrgb.c:4746 ../src/iop/channelmixerrgb.c:4764 +#: ../src/iop/channelmixerrgb.c:4773 ../src/iop/channelmixerrgb.c:4781 +msgid "calibrate" +msgstr "kalibreer" + +#: ../src/iop/channelmixerrgb.c:4715 +msgid "chart" +msgstr "kaart" + +#: ../src/iop/channelmixerrgb.c:4716 +msgid "choose the vendor and the type of your chart" +msgstr "kies de leverancier en het type van uw kaart" + +#: ../src/iop/channelmixerrgb.c:4718 +msgid "Xrite ColorChecker 24 pre-2014" +msgstr "Xrite KleurControle 24 pre-2014" + +#: ../src/iop/channelmixerrgb.c:4719 +msgid "Xrite ColorChecker 24 post-2014" +msgstr "Xrite KleurControle 24 post-2014" + +#: ../src/iop/channelmixerrgb.c:4720 +msgid "Datacolor SpyderCheckr 24 pre-2018" +msgstr "Datacolor SpyderCheckr 24 pre-2018" + +#: ../src/iop/channelmixerrgb.c:4721 +msgid "Datacolor SpyderCheckr 24 post-2018" +msgstr "Datacolor SpyderCheckr 24 post-2018" + +#: ../src/iop/channelmixerrgb.c:4722 +msgid "Datacolor SpyderCheckr 48 pre-2018" +msgstr "Datacolor SpyderCheckr 48 pre-2018" + +#: ../src/iop/channelmixerrgb.c:4723 +msgid "Datacolor SpyderCheckr 48 post-2018" +msgstr "Datacolor SpyderCheckr 48 post-2018" + +#: ../src/iop/channelmixerrgb.c:4724 +msgid "Datacolor SpyderCheckr Photo" +msgstr "Datacolor SpyderCheckr Photo" + +#: ../src/iop/channelmixerrgb.c:4728 +msgid "optimize for" +msgstr "optimaliseer voor" + +#: ../src/iop/channelmixerrgb.c:4729 +msgid "" +"choose the colors that will be optimized with higher priority.\n" +"neutral colors gives the lowest average delta E but a high maximum delta E\n" +"saturated colors gives the lowest maximum delta E but a high average delta " +"E\n" +"none is a trade-off between both\n" +"the others are special behaviors to protect some hues" +msgstr "" +"kies de kleuren die worden geoptimaliseerd met een hogere prioriteit.\n" +"neutrale kleuren geeft de laagste gemiddelde delta E maar een hoge maximale " +"delta E\n" +"verzadigde kleuren geeft de laagste maximale delta E maar een hoge " +"gemiddelde delta E\n" +"geen is een afweging tussen beide\n" +"de andere zijn speciale gedragingen om sommige tinten te beschermen" + +#: ../src/iop/channelmixerrgb.c:4736 +msgid "neutral colors" +msgstr "neutrale kleuren" + +#: ../src/iop/channelmixerrgb.c:4738 +msgid "skin and soil colors" +msgstr "huid- en bodemkleuren" + +#: ../src/iop/channelmixerrgb.c:4739 +msgid "foliage colors" +msgstr "kleuren gebladerte" + +#: ../src/iop/channelmixerrgb.c:4740 +msgid "sky and water colors" +msgstr "lucht- en waterkleuren" + +#: ../src/iop/channelmixerrgb.c:4741 +msgid "average delta E" +msgstr "gemiddelde delta E" + +#: ../src/iop/channelmixerrgb.c:4742 +msgid "maximum delta E" +msgstr "maximale delta E" + +#: ../src/iop/channelmixerrgb.c:4746 +msgid "patch scale" +msgstr "patch schaal" + +#: ../src/iop/channelmixerrgb.c:4749 +msgid "" +"reduce the radius of the patches to select the more or less central part.\n" +"useful when the perspective correction is sloppy or\n" +"the patches frame cast a shadows on the edges of the patch." +msgstr "" +"verklein de radius van de patches om het min of meer centrale deel te " +"selecteren.\n" +"handig wanneer de perspectiefcorrectie slordig is of\n" +"het frame van de patches een schaduw werpen op de randen van de patch." + +#: ../src/iop/channelmixerrgb.c:4759 +msgid "the delta E is using the CIE 2000 formula" +msgstr "de delta E gebruikt de CIE 2000 formule" + +#: ../src/iop/channelmixerrgb.c:4764 +msgid "accept" +msgstr "accepteer" + +#: ../src/iop/channelmixerrgb.c:4770 +msgid "accept the computed profile and set it in the module" +msgstr "accepteer het berekende profiel en stel het in de module in" + +#: ../src/iop/channelmixerrgb.c:4773 +msgid "recompute" +msgstr "herberekenen" + +#: ../src/iop/channelmixerrgb.c:4777 +msgid "recompute the profile" +msgstr "herbereken het profiel" + +#: ../src/iop/channelmixerrgb.c:4781 +msgid "validate" +msgstr "valideren" + +#: ../src/iop/channelmixerrgb.c:4785 +msgid "check the output delta E" +msgstr "controleer de uitvoer delta E" + +#: ../src/iop/choleski.h:290 ../src/iop/choleski.h:390 +msgid "" +"Choleski decomposition failed to allocate memory, check your RAM settings" +msgstr "" +"Choleski decompositie kon geen geheugen toewijzen, controleer uw RAM-" +"instellingen" + +#: ../src/iop/clahe.c:74 +msgid "" +"this module is deprecated. better use new local contrast module instead." +msgstr "" +"deze module is verouderd. gebruik in plaats daarvan een nieuwe lokale " +"contrastmodule." + +#: ../src/iop/clahe.c:339 ../src/iop/sharpen.c:440 +msgid "amount" +msgstr "hoeveelheid" + +#: ../src/iop/clahe.c:348 +msgid "size of features to preserve" +msgstr "te bewaren resultaat" + +#: ../src/iop/clahe.c:349 ../src/iop/nlmeans.c:467 +msgid "strength of the effect" +msgstr "sterkte van het effect" + +#: ../src/iop/clipping.c:347 +msgid "" +"this module is deprecated. please use the crop, orientation and/or rotate " +"and perspective modules instead." +msgstr "" +"deze module is verouderd. gebruik in plaats daarvan de uitsnijden, " +"oriëntatie en/of roteren en perspectief modules." + +#: ../src/iop/clipping.c:352 +msgid "crop and rotate" +msgstr "uitsnijden en roteren" + +#: ../src/iop/clipping.c:357 +msgid "reframe|perspective|keystone|distortion" +msgstr "herkader|perspectief|keystone|vervorming" + +#: ../src/iop/clipping.c:362 +msgid "change the framing and correct the perspective" +msgstr "verander de omkadering en corrigeer het perspectief" + +#: ../src/iop/clipping.c:1447 ../src/iop/clipping.c:2173 ../src/iop/crop.c:501 +#: ../src/iop/crop.c:1101 +msgid "original image" +msgstr "originele afbeeldingen" + +#: ../src/iop/clipping.c:1751 ../src/iop/crop.c:808 +msgid "invalid ratio format. it should be \"number:number\"" +msgstr "ongeldige verhouding. moet \"getal:getal\" zijn" + +#: ../src/iop/clipping.c:1767 ../src/iop/crop.c:824 +msgid "invalid ratio format. it should be a positive number" +msgstr "ongeldige verhouding, het moet een positief nummer zijn" + +#: ../src/iop/clipping.c:1956 ../src/iop/clipping.c:2164 +msgid "full" +msgstr "geheel" + +#: ../src/iop/clipping.c:1957 +msgid "old system" +msgstr "oud systeem" + +#: ../src/iop/clipping.c:1958 +msgid "correction applied" +msgstr "is gecorrigeerd" + +#: ../src/iop/clipping.c:2142 +msgid "main" +msgstr "grootste" + +#: ../src/iop/clipping.c:2151 +msgid "mirror image horizontally and/or vertically" +msgstr "spiegel afbeelding horizontaal en/of verticaal" + +#: ../src/iop/clipping.c:2154 +msgid "angle" +msgstr "hoek" + +#: ../src/iop/clipping.c:2157 +msgid "right-click and drag a line on the image to drag a straight line" +msgstr "klik op de rechtermuisknop en trek een rechte lijn over afbeelding" + +#: ../src/iop/clipping.c:2160 +msgid "keystone" +msgstr "keystone" + +#: ../src/iop/clipping.c:2165 +msgid "set perspective correction for your image" +msgstr "corrigeer het perspectief van de afbeelding" + +#: ../src/iop/clipping.c:2172 ../src/iop/crop.c:1100 +msgid "freehand" +msgstr "vrije selectie" + +#: ../src/iop/clipping.c:2175 ../src/iop/crop.c:1103 +msgid "10:8 in print" +msgstr "10:8 op papier" + +#: ../src/iop/clipping.c:2176 ../src/iop/crop.c:1104 +msgid "5:4, 4x5, 8x10" +msgstr "5:4, 4x5, 8x10" + +#: ../src/iop/clipping.c:2177 ../src/iop/crop.c:1105 +msgid "11x14" +msgstr "11x14" + +# volgens mij is 'letter' een naam van een formaat voor papier, toch? +#: ../src/iop/clipping.c:2178 ../src/iop/crop.c:1106 +msgid "8.5x11, letter" +msgstr "8.5x11, letter" + +#: ../src/iop/clipping.c:2179 ../src/iop/crop.c:1107 +msgid "4:3, VGA, TV" +msgstr "4:3, VGA, TV" + +#: ../src/iop/clipping.c:2180 ../src/iop/crop.c:1108 +msgid "5x7" +msgstr "5x7" + +#: ../src/iop/clipping.c:2181 ../src/iop/crop.c:1109 +msgid "ISO 216, DIN 476, A4" +msgstr "ISO 216, DIN 476, A4" + +#: ../src/iop/clipping.c:2182 ../src/iop/crop.c:1110 +msgid "3:2, 4x6, 35mm" +msgstr "3:2, 4x6, 35mm" + +#: ../src/iop/clipping.c:2183 ../src/iop/crop.c:1111 +msgid "16:10, 8x5" +msgstr "16:10, 8x5" + +#: ../src/iop/clipping.c:2185 ../src/iop/crop.c:1113 +msgid "16:9, HDTV" +msgstr "16:9, HDTV" + +#: ../src/iop/clipping.c:2186 ../src/iop/crop.c:1114 +msgid "widescreen" +msgstr "breedbeeld" + +#: ../src/iop/clipping.c:2187 ../src/iop/crop.c:1115 +msgid "2:1, univisium" +msgstr "2:1, univisium" + +#: ../src/iop/clipping.c:2188 ../src/iop/crop.c:1116 +msgid "cinemascope" +msgstr "cinemascope" + +#: ../src/iop/clipping.c:2189 ../src/iop/crop.c:1117 +msgid "21:9" +msgstr "21:9" + +#: ../src/iop/clipping.c:2190 ../src/iop/crop.c:1118 +msgid "anamorphic" +msgstr "anamorphic" + +#: ../src/iop/clipping.c:2191 ../src/iop/crop.c:1119 +msgid "3:1, panorama" +msgstr "3:1, panorama" + +#: ../src/iop/clipping.c:2223 ../src/iop/clipping.c:2235 ../src/iop/crop.c:1155 +#: ../src/iop/crop.c:1171 +#, c-format +msgid "invalid ratio format for `%s'. it should be \"number:number\"" +msgstr "" +"formaat verhouding voor `%s' is verkeerd. dit moet zijn \"number:number\"" + +#: ../src/iop/clipping.c:2282 ../src/iop/crop.c:1222 +msgid "" +"set the aspect ratio\n" +"the list is sorted: from most square to least square\n" +"to enter custom aspect ratio open the combobox and type ratio in x:y or " +"decimal format" +msgstr "" +"stel de beeldverhouding in\n" +"de lijst is gesorteerd: van meest vierkant naar minst vierkant\n" +"om de aangepaste beeldverhouding in te voeren, open je het keuzemenu en typ " +"je de verhouding in x:y of decimaal formaat" + +#: ../src/iop/clipping.c:2289 ../src/iop/crop.c:1236 +msgid "margins" +msgstr "marges" + +#: ../src/iop/clipping.c:2294 ../src/iop/crop.c:1246 +msgid "the left margin cannot overlap with the right margin" +msgstr "de linker marge mag niet de rechter marge overlappen" + +#: ../src/iop/clipping.c:2301 ../src/iop/crop.c:1254 +msgid "the right margin cannot overlap with the left margin" +msgstr "de rechter marge mag niet de linker marge overlappen" + +#: ../src/iop/clipping.c:2306 ../src/iop/crop.c:1260 +msgid "the top margin cannot overlap with the bottom margin" +msgstr "de top marge mag niet de bodem marge overlappen" + +#: ../src/iop/clipping.c:2313 ../src/iop/crop.c:1268 +msgid "the bottom margin cannot overlap with the top margin" +msgstr "de bodem marge mag niet de top marge overlappen" + +#: ../src/iop/clipping.c:3059 +msgid "<b>commit</b>: double-click, <b>straighten</b>: right-drag" +msgstr "<b>vastleggen</b>: dubbelklikken, <b>rechttrekken</b>: rechts-slepen" + +#: ../src/iop/clipping.c:3063 +msgid "" +"<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag\n" +"<b>straighten</b>: right-drag" +msgstr "" +"<b>formaat wijzigen</b>: slepen, <b>beeldverhouding behouden</b>: " +"shift+slepen\n" +"<b>rechttrekken</b>: sleep naar rechts" + +#: ../src/iop/clipping.c:3104 +msgid "<b>move control point</b>: drag" +msgstr "<b>controlepunt verplaatsen</b>: slepen" + +#: ../src/iop/clipping.c:3109 +msgid "<b>move line</b>: drag, <b>toggle symmetry</b>: click ꝏ" +msgstr "<b>verplaats lijn</b>: slepen, <b>wissel symmetrie</b>: klik ꝏ" + +#: ../src/iop/clipping.c:3114 +msgid "" +"<b>apply</b>: click <tt>ok</tt>, <b>toggle symmetry</b>: click ꝏ\n" +"<b>move line/control point</b>: drag" +msgstr "" +"<b>toepassen</b>: klik <tt>ok</tt>, <b>wissel symmetrie</b>: klik op ꝏ\n" +"<b>verplaats lijn/controlepunt</b>: slepen" + +#: ../src/iop/clipping.c:3121 +msgid "" +"<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" +"b>: ctrl+drag\n" +"<b>straighten</b>: right-drag, <b>commit</b>: double-click" +msgstr "" +"<b>verplaatsen</b>: slepen, <b>verticaal verplaatsen</b>: shift+slepen, " +"<b>horizontaal verplaatsen</b>: ctrl+slepen\n" +"<b>rechttrekken</b>: sleep met de rechtermuisknop, <b>vastleggen</b>: " +"dubbelklik" + +#: ../src/iop/clipping.c:3380 ../src/iop/crop.c:1770 +#, c-format +msgid "[%s on borders] crop" +msgstr "[%s on borders] uitsnijden" + +#: ../src/iop/clipping.c:3382 ../src/iop/crop.c:1772 +#, c-format +msgid "[%s on borders] crop keeping ratio" +msgstr "[%s on borders] uitsnijden behoud verhouding" + +#: ../src/iop/colisa.c:79 +msgid "this module is deprecated. please use colorbalance RGB module instead." +msgstr "" +"deze module is verouderd. gebruik in plaats daarvan de 'Kleurbalans RGB' " +"module." + +#: ../src/iop/colisa.c:84 +msgid "contrast brightness saturation" +msgstr "contrast helderheid verzadiging" + +#: ../src/iop/colisa.c:89 +msgid "adjust the look of the image" +msgstr "pas het uiterlijk van de afbeelding aan" + +#: ../src/iop/colisa.c:304 +msgid "color saturation adjustment" +msgstr "aanpassen kleurverzadiging" + +#: ../src/iop/colorbalance.c:152 +msgid "color balance" +msgstr "kleurbalans" + +#: ../src/iop/colorbalance.c:157 +msgid "lift gamma gain|cdl|color grading|contrast|saturation|hue" +msgstr "lift gamma gain|cdl|kleurgradatie|contrast|verzadiging|tint" + +#: ../src/iop/colorbalance.c:162 +msgid "shift colors selectively by luminance range" +msgstr "verschuif kleuren selectief per helderheid-bereik" + +#: ../src/iop/colorbalance.c:166 +msgid "non-linear, Lab, scene-referred" +msgstr "non-linear, Lab, scène-gerefereerd" + +#. these blobs were exported as dtstyle and copied from there: +#: ../src/iop/colorbalance.c:304 +msgid "split-toning teal-orange (2nd instance)" +msgstr "split-toning blauwgroen-oranje (2e instantie)" + +#: ../src/iop/colorbalance.c:307 +msgid "split-toning teal-orange (1st instance)" +msgstr "split-toning blauwgroen-oranje (1e instantie)" + +#: ../src/iop/colorbalance.c:311 +msgid "generic film" +msgstr "generieke film" + +#: ../src/iop/colorbalance.c:315 +msgid "similar to Kodak Portra" +msgstr "vergelijkbaar met Kodak Portra" + +#: ../src/iop/colorbalance.c:319 +msgid "similar to Kodak Ektar" +msgstr "vergelijkbaar met Kodak Ektar" + +#: ../src/iop/colorbalance.c:323 +msgid "similar to Kodachrome" +msgstr "vergelijkbaar met Kodachrome" + +#: ../src/iop/colorbalance.c:964 +msgid "optimize luma from patches" +msgstr "optimaliseer helderheid vanuit patronen" + +#: ../src/iop/colorbalance.c:966 ../src/iop/colorbalance.c:2085 +msgid "optimize luma" +msgstr "optimaliseer helderheid" + +#: ../src/iop/colorbalance.c:970 +msgid "neutralize colors from patches" +msgstr "neutraliseer kleuren vanuit patronen" + +#: ../src/iop/colorbalance.c:972 ../src/iop/colorbalance.c:2091 +msgid "neutralize colors" +msgstr "neutraliseer kleuren" + +#: ../src/iop/colorbalance.c:1758 +msgctxt "color" +msgid "offset" +msgstr "verschuiving" + +#: ../src/iop/colorbalance.c:1758 +msgctxt "color" +msgid "power" +msgstr "gammawaarde" + +#: ../src/iop/colorbalance.c:1758 +msgctxt "color" +msgid "slope" +msgstr "helling" + +#: ../src/iop/colorbalance.c:1759 +msgctxt "color" +msgid "lift" +msgstr "stijging" + +#: ../src/iop/colorbalance.c:1759 +msgctxt "color" +msgid "gamma" +msgstr "gamma" + +#: ../src/iop/colorbalance.c:1759 +msgctxt "color" +msgid "gain" +msgstr "toename" + +#: ../src/iop/colorbalance.c:1762 +msgctxt "section" +msgid "shadows: lift / offset" +msgstr "schaduwen: lift / verschuiving" + +#: ../src/iop/colorbalance.c:1763 +msgctxt "section" +msgid "mid-tones: gamma / power" +msgstr "middentonen: gammawaarde" + +#: ../src/iop/colorbalance.c:1764 +msgctxt "section" +msgid "highlights: gain / slope" +msgstr "hooglichten: versterking / helling" + +#: ../src/iop/colorbalance.c:1788 +msgid "shadows / mid-tones / highlights" +msgstr "schaduwen / middentonen / hooglichten" + +#: ../src/iop/colorbalance.c:1885 ../src/iop/colorbalance.c:1894 +msgid "color-grading mapping method" +msgstr "kleurgradatie mapping methode" + +#: ../src/iop/colorbalance.c:1889 +msgid "color control sliders" +msgstr "kleur schuifregelaars" + +#: ../src/iop/colorbalance.c:1890 ../src/libs/colorpicker.c:51 +msgid "HSL" +msgstr "HSL" + +#: ../src/iop/colorbalance.c:1891 +msgid "RGBL" +msgstr "RGBL" + +#: ../src/iop/colorbalance.c:1903 +msgctxt "section" +msgid "master" +msgstr "beheer" + +#: ../src/iop/colorbalance.c:1909 +msgid "saturation correction before the color balance" +msgstr "verzadigingscorrectie voor de kleurbalans" + +#: ../src/iop/colorbalance.c:1915 +msgid "saturation correction after the color balance" +msgstr "verzadigingscorrectie na de kleurbalans" + +#: ../src/iop/colorbalance.c:1920 +msgid "adjust to match a neutral tone" +msgstr "pas aan voor een neutrale toon" + +#. is set in _configure_slider_blocks +#: ../src/iop/colorbalance.c:1978 +msgid "click to cycle layout" +msgstr "klik om de weergaven te doorlopen" + +#: ../src/iop/colorbalance.c:2012 +msgid "factor" +msgstr "factor" + +#: ../src/iop/colorbalance.c:2026 +msgid "select the hue" +msgstr "kies tint" + +#: ../src/iop/colorbalance.c:2038 +msgid "select the saturation" +msgstr "kies verzadiging" + +#: ../src/iop/colorbalance.c:2057 +msgid "factor of lift/offset" +msgstr "factor van stijging/verschuiving" + +#: ../src/iop/colorbalance.c:2058 +msgid "factor of red for lift/offset" +msgstr "factor van rood voor stijging/verschuiving" + +#: ../src/iop/colorbalance.c:2059 +msgid "factor of green for lift/offset" +msgstr "factor van groen voor stijging/verschuiving" + +#: ../src/iop/colorbalance.c:2060 +msgid "factor of blue for lift/offset" +msgstr "factor van blauw voor stijging/verschuiving" + +#: ../src/iop/colorbalance.c:2063 +msgid "factor of gamma/power" +msgstr "gamma-factor" + +#: ../src/iop/colorbalance.c:2064 +msgid "factor of red for gamma/power" +msgstr "gamma-factor van rood" + +#: ../src/iop/colorbalance.c:2065 +msgid "factor of green for gamma/power" +msgstr "gamma-factor van groen" + +#: ../src/iop/colorbalance.c:2066 +msgid "factor of blue for gamma/power" +msgstr "gamma-factor van blauw" + +#: ../src/iop/colorbalance.c:2069 +msgid "factor of gain/slope" +msgstr "factor van toename/helling" + +#: ../src/iop/colorbalance.c:2070 +msgid "factor of red for gain/slope" +msgstr "factor van rood voor toename/helling" + +#: ../src/iop/colorbalance.c:2071 +msgid "factor of green for gain/slope" +msgstr "factor van groen voor toename/helling" + +#: ../src/iop/colorbalance.c:2072 +msgid "factor of blue for gain/slope" +msgstr "factor van blauw voor toename/helling" + +#: ../src/iop/colorbalance.c:2081 +msgctxt "section" +msgid "auto optimizers" +msgstr "aut. optimalisaties" + +#: ../src/iop/colorbalance.c:2086 +msgid "fit the whole histogram and center the average luma" +msgstr "maak het hele histogramm passend en centreer de gemiddelde helderheid" + +#: ../src/iop/colorbalance.c:2092 +msgid "optimize the RGB curves to remove color casts" +msgstr "verwijder kleurzwemen met de optimalisatie van RGB curven" + +#: ../src/iop/colorbalancergb.c:173 +msgid "color balance rgb" +msgstr "kleurbalans rgb" + +#: ../src/iop/colorbalancergb.c:178 +msgid "" +"offset power slope|cdl|color grading|contrast|chroma_highlights|hue|vibrance|" +"saturation" +msgstr "" +"verschuiving gamma helling|cdl|kleurgradatie|contrast|chroma_hooglichten|" +"tint|levendigheid|verzadiging" + +#: ../src/iop/colorbalancergb.c:183 +msgid "" +"color grading tools using alpha masks to separate\n" +"shadows, mid-tones and highlights" +msgstr "" +"kleurgradatie hulpmiddelen die werken met alpha-maskers om\n" +"shaduwen, middentonen en hooglichten te scheiden" + +#: ../src/iop/colorbalancergb.c:536 +msgid "add basic colorfulness (legacy)" +msgstr "voeg basis verzadiging toe (verouderd)" + +#: ../src/iop/colorbalancergb.c:545 +msgid "basic colorfulness: natural skin" +msgstr "basis verzadiging: natuurlijke huidtinten" + +#: ../src/iop/colorbalancergb.c:551 +msgid "basic colorfulness: vibrant colors" +msgstr "basis verzadiging: levendige kleuren" + +#: ../src/iop/colorbalancergb.c:557 +msgid "basic colorfulness: standard" +msgstr "basis verzadiging: standaard" + +#: ../src/iop/colorbalancergb.c:1022 +msgid "colorbalance works only on RGB input" +msgstr "kleurbalans werkt alleen op RGB-invoer" + +#: ../src/iop/colorbalancergb.c:1577 ../src/iop/colorzones.c:2394 +#: ../src/iop/retouch.c:2069 ../src/iop/toneequal.c:1996 +msgid "cannot display masks when the blending mask is displayed" +msgstr "" +"weergave van maskers is onmogelijk wanneer een mengmasker wordt getoond" + +#. Page master +#: ../src/iop/colorbalancergb.c:1947 +msgid "master" +msgstr "algemeen" + +#: ../src/iop/colorbalancergb.c:1947 +msgid "global grading" +msgstr "globale gradatie" + +#: ../src/iop/colorbalancergb.c:1951 +msgid "rotate all hues by an angle, at the same luminance" +msgstr "draai alle tinten onder een hoek bij gelijke helderheid" + +#: ../src/iop/colorbalancergb.c:1957 +msgid "increase colorfulness mostly on low-chroma colors" +msgstr "verander de verzadiging vooral bij onverzadigde kleuren" + +#: ../src/iop/colorbalancergb.c:1963 +msgid "increase the contrast at constant chromaticity" +msgstr "verander het contrast met behoud van kleur" + +#: ../src/iop/colorbalancergb.c:1965 +msgctxt "section" +msgid "linear chroma grading" +msgstr "lineaire chroma-gradatie" + +#: ../src/iop/colorbalancergb.c:1972 +msgid "increase colorfulness at same luminance globally" +msgstr "verander de verzadiging bij gelijke helderheid (±50%)" + +#: ../src/iop/colorbalancergb.c:1977 +msgid "increase colorfulness at same luminance mostly in shadows" +msgstr "verander de verzadiging bij gelijke helderheid, vooral in schaduwen" + +#: ../src/iop/colorbalancergb.c:1982 +msgid "increase colorfulness at same luminance mostly in mid-tones" +msgstr "verander de verzadiging bij gelijke helderheid, vooral in middentonen" + +#: ../src/iop/colorbalancergb.c:1987 +msgid "increase colorfulness at same luminance mostly in highlights" +msgstr "verander de verzadiging bij gelijke helderheid, vooral in hooglichten" + +#: ../src/iop/colorbalancergb.c:1989 +msgctxt "section" +msgid "perceptual saturation grading" +msgstr "perceptuele verzadiging" + +#: ../src/iop/colorbalancergb.c:1995 +msgid "add or remove saturation by an absolute amount" +msgstr "verander de verzadiging perceptueel (±100%)" + +#: ../src/iop/colorbalancergb.c:2000 ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2010 +msgid "" +"increase or decrease saturation proportionally to the original pixel " +"saturation" +msgstr "verander de verzadiging evenredig met de originele pixelverzadiging" + +#: ../src/iop/colorbalancergb.c:2012 +msgctxt "section" +msgid "perceptual brilliance grading" +msgstr "perceptuele helderheid" + +#: ../src/iop/colorbalancergb.c:2013 +msgid "brilliance" +msgstr "helderheid" + +#: ../src/iop/colorbalancergb.c:2018 +msgid "add or remove brilliance by an absolute amount" +msgstr "verander de helderheid perceptueel" + +#: ../src/iop/colorbalancergb.c:2023 ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2033 +msgid "" +"increase or decrease brilliance proportionally to the original pixel " +"brilliance" +msgstr "verander de helderheid evenredig met de originele pixelhelderheid" + +#. Page 4-ways +#: ../src/iop/colorbalancergb.c:2036 +msgid "4 ways" +msgstr "4 manieren" + +#: ../src/iop/colorbalancergb.c:2036 +msgid "selective color grading" +msgstr "selectieve kleurgradatie" + +#: ../src/iop/colorbalancergb.c:2038 +msgctxt "section" +msgid "global offset" +msgstr "globale correctie" + +#: ../src/iop/colorbalancergb.c:2045 +msgid "global luminance offset" +msgstr "globale helderheidscorrectie" + +#: ../src/iop/colorbalancergb.c:2050 +msgid "hue of the global color offset" +msgstr "tint van de globale kleurcorrectie" + +#: ../src/iop/colorbalancergb.c:2056 +msgid "chroma of the global color offset" +msgstr "verzadiging van de globale kleurcorrectie" + +#: ../src/iop/colorbalancergb.c:2058 +msgctxt "section" +msgid "shadows lift" +msgstr "schaduwen" + +#: ../src/iop/colorbalancergb.c:2059 +msgid "lift" +msgstr "stijging" + +#: ../src/iop/colorbalancergb.c:2065 +msgid "luminance gain in shadows" +msgstr "helderheidscorrectie in schaduwen" + +#: ../src/iop/colorbalancergb.c:2070 +msgid "hue of the color gain in shadows" +msgstr "tint van de kleurcorrectie in schaduwen" + +#: ../src/iop/colorbalancergb.c:2076 +msgid "chroma of the color gain in shadows" +msgstr "verzadiging van de kleurcorrectie in schaduwen" + +#: ../src/iop/colorbalancergb.c:2078 +msgctxt "section" +msgid "highlights gain" +msgstr "hooglichten" + +#: ../src/iop/colorbalancergb.c:2079 +msgid "gain" +msgstr "toename" + +#: ../src/iop/colorbalancergb.c:2085 +msgid "luminance gain in highlights" +msgstr "helderheidscorrectie in hooglichten" + +#: ../src/iop/colorbalancergb.c:2090 +msgid "hue of the color gain in highlights" +msgstr "tint van de kleurcorrectie in hooglichten" + +#: ../src/iop/colorbalancergb.c:2096 +msgid "chroma of the color gain in highlights" +msgstr "verzadiging van de kleurcorrectie in hooglichten" + +#: ../src/iop/colorbalancergb.c:2098 +msgctxt "section" +msgid "power" +msgstr "middentonen" + +#: ../src/iop/colorbalancergb.c:2099 +msgid "power" +msgstr "gamma-correctie" + +#: ../src/iop/colorbalancergb.c:2105 +msgid "luminance exponent in mid-tones" +msgstr "helderheidscorrectie in middentonen" + +#: ../src/iop/colorbalancergb.c:2110 +msgid "hue of the color exponent in mid-tones" +msgstr "tint van de kleurcorrectie in middentonen" + +#: ../src/iop/colorbalancergb.c:2116 +msgid "chroma of the color exponent in mid-tones" +msgstr "verzadiging van de kleurcorrectie in middentonen" + +#. Page masks +#: ../src/iop/colorbalancergb.c:2119 +msgid "masks" +msgstr "maskers" + +#: ../src/iop/colorbalancergb.c:2119 +msgid "isolate luminances" +msgstr "isoleer luminanties" + +#: ../src/iop/colorbalancergb.c:2123 +msgid "choose in which uniform color space the saturation is computed" +msgstr "kies in welke uniforme kleurruimte de verzadiging berekend is" + +#: ../src/iop/colorbalancergb.c:2125 +msgctxt "section" +msgid "luminance ranges" +msgstr "helderheidsbereiken" + +#: ../src/iop/colorbalancergb.c:2136 +msgid "weight of the shadows over the whole tonal range" +msgstr "gewicht van de schaduwen over het hele toonbereik" + +#: ../src/iop/colorbalancergb.c:2144 +msgid "position of the middle-gray reference for masking" +msgstr "positie van de middengrijze referentie voor maskering" + +#: ../src/iop/colorbalancergb.c:2152 +msgid "weights of highlights over the whole tonal range" +msgstr "gewicht van hooglichten over het hele toonbereik" + +#: ../src/iop/colorbalancergb.c:2157 +msgctxt "section" +msgid "threshold" +msgstr "drempelwaardes" + +#: ../src/iop/colorbalancergb.c:2162 +msgid "peak white luminance value used to normalize the power function" +msgstr "max. witte helderheidwaarde voor normalisatie van de gamma-functie" + +#: ../src/iop/colorbalancergb.c:2168 +msgid "peak gray luminance value used to normalize the power function" +msgstr "max. grijze helderheidwaarde voor normalisatie van de gamma-functie" + +#: ../src/iop/colorbalancergb.c:2170 +msgctxt "section" +msgid "mask preview settings" +msgstr "masker preview-instellingen" + +#: ../src/iop/colorbalancergb.c:2173 +msgid "checkerboard color 1" +msgstr "dambord kleur 1" + +#: ../src/iop/colorbalancergb.c:2176 ../src/iop/colorbalancergb.c:2185 +msgid "select color of the checkerboard from a swatch" +msgstr "selecteer de kleur van het dambord van een staal" + +#: ../src/iop/colorbalancergb.c:2182 +msgid "checkerboard color 2" +msgstr "dambord kleur 2" + +#: ../src/iop/colorbalancergb.c:2192 +msgid "checkerboard size" +msgstr "dambord grootte" + +#: ../src/iop/colorchecker.c:118 +msgid "color look up table" +msgstr "kleur opzoektabel" + +#: ../src/iop/colorchecker.c:123 +msgid "profile|lut|color grading" +msgstr "profiel|lut|kleurgradatie" + +#: ../src/iop/colorchecker.c:129 +msgid "perform color space corrections and apply looks" +msgstr "voer kleurruimtecorrecties uit en pas looks toe" + +#: ../src/iop/colorchecker.c:131 ../src/iop/colorchecker.c:133 +#: ../src/iop/colorize.c:99 ../src/iop/colormapping.c:154 +#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:121 +#: ../src/iop/colorzones.c:147 ../src/iop/defringe.c:83 ../src/iop/levels.c:141 +#: ../src/iop/monochrome.c:101 ../src/iop/shadhi.c:145 +#: ../src/iop/tonecurve.c:185 ../src/iop/vibrance.c:98 +msgid "linear or non-linear, Lab, display-referred" +msgstr "lineair of niet-lineair, Lab, scherm-gerefereerd" + +#: ../src/iop/colorchecker.c:132 +msgid "defined by profile, Lab" +msgstr "gedefinieerd door profiel, Lab" + +#: ../src/iop/colorchecker.c:308 +msgid "it8 skin tones" +msgstr "it8 huidskleuren" + +#: ../src/iop/colorchecker.c:324 +msgid "Helmholtz/Kohlrausch monochrome" +msgstr "Helmholtz/Kohlrausch monochroom" + +#: ../src/iop/colorchecker.c:341 +msgid "Fuji Astia emulation" +msgstr "Fuji Astia emulation" + +#: ../src/iop/colorchecker.c:355 +msgid "Fuji Classic Chrome emulation" +msgstr "Fuji Classic Chrome emulation" + +#: ../src/iop/colorchecker.c:369 +msgid "Fuji Monochrome emulation" +msgstr "Fuji Monochrome emulation" + +#: ../src/iop/colorchecker.c:383 +msgid "Fuji Provia emulation" +msgstr "Fuji Provia emulation" + +#: ../src/iop/colorchecker.c:397 +msgid "Fuji Velvia emulation" +msgstr "Fuji Velvia emulation" + +#: ../src/iop/colorchecker.c:846 ../src/iop/colorchecker.c:1441 +#, c-format +msgid "patch #%d" +msgstr "patch #%d" + +#: ../src/iop/colorchecker.c:1288 +#, c-format +msgid "" +"(%2.2f %2.2f %2.2f)\n" +"altered patches are marked with an outline\n" +"click to select\n" +"double-click to reset\n" +"right click to delete patch\n" +"shift+click while color picking to replace patch" +msgstr "" +"(%2.2f %2.2f %2.2f)\n" +"gewijzigde patches zijn gemarkeerd door een contour\n" +"klik om te selecteren\n" +"dubbelklik om te resetten\n" +"rechtermuisklik om patch te verwijderen\n" +"shift+klik tijdens kleuropname om patch te vervangen" + +#: ../src/iop/colorchecker.c:1436 +msgid "patch" +msgstr "patch" + +#: ../src/iop/colorchecker.c:1437 +msgid "color checker patch" +msgstr "color checker patch" + +#: ../src/iop/colorchecker.c:1451 +msgid "" +"adjust target color Lab 'L' channel\n" +"lower values darken target color while higher brighten it" +msgstr "" +"gewenste kleur aanpassen Lab 'L'-kanaal\n" +"lagere waarden maken de doelkleur donkerder, terwijl hogere waarden deze " +"helderder maken" + +#: ../src/iop/colorchecker.c:1459 +msgid "" +"adjust target color Lab 'a' channel\n" +"lower values shift target color towards greens while higher shift towards " +"magentas" +msgstr "" +"gewenste kleur aanpassen Lab 'a' kanaal\n" +"lagere waarden verschuiven de doelkleur naar groen, terwijl hogere waarden " +"naar magentas verschuiven" + +#: ../src/iop/colorchecker.c:1462 +msgid "green-magenta offset" +msgstr "groen-magenta verschuiving" + +#: ../src/iop/colorchecker.c:1471 +msgid "" +"adjust target color Lab 'b' channel\n" +"lower values shift target color towards blues while higher shift towards " +"yellows" +msgstr "" +"gewenste kleur aanpassen Lab 'b' kanaal\n" +"lagere waarden verschuiven de doelkleur naar blauw, terwijl hogere waarden " +"naar geel verschuiven" + +#: ../src/iop/colorchecker.c:1474 +msgid "blue-yellow offset" +msgstr "blauw-geel verschuiving" + +#: ../src/iop/colorchecker.c:1483 +msgid "" +"adjust target color saturation\n" +"adjusts 'a' and 'b' channels of target color in Lab space simultaneously\n" +"lower values scale towards lower saturation while higher scale towards " +"higher saturation" +msgstr "" +"gewenste kleurverzadiging aanpassen\n" +"past de 'a'- en 'b'-kanalen van de doelkleur in de Lab-ruimte tegelijkertijd " +"aan\n" +"lagere waarden schalen naar een lagere verzadiging, terwijl een hogere " +"schaal naar een hogere verzadiging" + +#: ../src/iop/colorchecker.c:1492 +msgid "target color" +msgstr "doel kleur" + +#: ../src/iop/colorchecker.c:1495 +msgid "" +"control target color of the patches\n" +"relative - target color is relative from the patch original color\n" +"absolute - target color is absolute Lab value" +msgstr "" +"controle kleur van de patches\n" +"relatief - gewenste kleur is relatief ten opzichte van de originele patch-" +"kleur\n" +"absoluut - gewenste kleur is absolute Lab-waarde" + +#: ../src/iop/colorchecker.c:1499 +msgid "absolute" +msgstr "absoluut" + +#: ../src/iop/colorcontrast.c:77 +msgid "color contrast" +msgstr "kleurcontrast" + +#: ../src/iop/colorcontrast.c:87 +msgid "" +"increase saturation and separation between\n" +"opposite colors" +msgstr "" +"verhoog verzadiging en scheiding tussen\n" +"complementaire kleuren" + +#: ../src/iop/colorcontrast.c:330 +msgid "" +"steepness of the a* curve in Lab\n" +"lower values desaturate greens and magenta while higher saturate them" +msgstr "" +"steilheid van de a*-curve in Lab\n" +"bepaalt de verzadiging van groen en magenta" + +#: ../src/iop/colorcontrast.c:337 +msgid "" +"steepness of the b* curve in Lab\n" +"lower values desaturate blues and yellows while higher saturate them" +msgstr "" +"steilheid van de b*-curve in Lab\n" +"bepaalt de verzadiging van blauw en geel" + +#: ../src/iop/colorcorrection.c:71 +msgid "color correction" +msgstr "kleurcorrectie" + +#: ../src/iop/colorcorrection.c:76 +msgid "correct white balance selectively for blacks and whites" +msgstr "de witbalans selectief corrigeren voor zwart en wit" + +#: ../src/iop/colorcorrection.c:109 +msgid "warm tone" +msgstr "warme tonen" + +#: ../src/iop/colorcorrection.c:117 +msgid "warming filter" +msgstr "warm filter" + +#: ../src/iop/colorcorrection.c:125 +msgid "cooling filter" +msgstr "koud filter" + +#: ../src/iop/colorcorrection.c:250 +msgid "" +"drag the line for split-toning. bright means highlights, dark means shadows. " +"use mouse wheel to change saturation." +msgstr "" +"sleep de lijn voor split-toning, helder betekent hooglichten, donker " +"betekent schaduwen, gebruik het muiswiel om de verzadiging te wijzigen." + +#: ../src/iop/colorcorrection.c:269 +msgid "set the global saturation" +msgstr "kies globale verzadiging" + +#: ../src/iop/colorin.c:126 +msgid "input color profile" +msgstr "ingaand kleurprofiel" + +#: ../src/iop/colorin.c:131 +msgid "" +"convert any RGB input to pipeline reference RGB\n" +"using color profiles to remap RGB values" +msgstr "" +"converteer elke RGB-invoer naar RGB-pijplijnreferentie\n" +"kleurprofielen gebruiken om RGB-waarden opnieuw toe te wijzen" + +#: ../src/iop/colorin.c:133 ../src/iop/colorout.c:89 ../src/iop/demosaic.c:293 +#: ../src/iop/rawprepare.c:174 +msgid "mandatory" +msgstr "vereist" + +#: ../src/iop/colorin.c:135 ../src/iop/colorout.c:91 +msgid "defined by profile" +msgstr "gedefinieerd door profiel" + +#: ../src/iop/colorin.c:582 +#, c-format +msgid "" +"can't extract matrix from colorspace `%s', it will be replaced by Rec2020 " +"RGB!" +msgstr "" +"kan matrix niet extraheren uit kleurruimte `%s', alternatief Rec2020RGB " +"wordt gebruikt!" + +#: ../src/iop/colorin.c:1362 +#, c-format +msgid "`%s' color matrix not found!" +msgstr "`%s' kleuren matrix is niet gevonden!" + +#: ../src/iop/colorin.c:1401 +msgid "input profile could not be generated!" +msgstr "ingegeven profiel kan niet worden gemaakt!" + +#: ../src/iop/colorin.c:1498 +msgid "unsupported input profile has been replaced by linear Rec709 RGB!" +msgstr "" +"niet ondersteund ingegeven profiel is vervangen door lineair Rec709 RGB!" + +#: ../src/iop/colorin.c:1782 +msgid "external ICC profiles" +msgstr "extern ICC-profiel" + +#: ../src/iop/colorin.c:1827 +#, c-format +msgid "" +"embedded ICC profile properties:\n" +"\n" +"name: <b>%s</b>\n" +"version: <b>%d.%d</b>\n" +"type: <b>%s</b>\n" +"manufacturer: <b>%s</b>\n" +"model: <b>%s</b>\n" +"copyright: <b>%s</b>\n" +"\n" +msgstr "" +"eigenschappen van ingesloten ICC-profiel:\n" +"\n" +"naam: <b>%s</b>\n" +"versie: <b>%d.%d</b>\n" +"type: <b>%s</b>\n" +"maker: <b>%s</b>\n" +"model: <b>%s</b>\n" +"copyright: <b>%s</b>\n" +"\n" + +#: ../src/iop/colorin.c:2022 +msgid "input profile" +msgstr "ingaand profiel" + +#: ../src/iop/colorin.c:2026 +msgid "working profile" +msgstr "werkprofiel" + +#: ../src/iop/colorin.c:2035 +msgid "working ICC profiles" +msgstr "actieve ICC-profielen" + +#: ../src/iop/colorin.c:2047 +msgid "confine Lab values to gamut of RGB color space" +msgstr "beperk Lab-waarden tot gamma van RGB kleurruimte" + +#: ../src/iop/colorize.c:75 +msgid "colorize" +msgstr "inkleuren" + +#: ../src/iop/colorize.c:97 +msgid "overlay a solid color on the image" +msgstr "bedek de afbeelding met een effen kleur" + +#: ../src/iop/colorize.c:354 ../src/iop/splittoning.c:481 +msgid "select the hue tone" +msgstr "bepaal de tint" + +#: ../src/iop/colorize.c:360 +msgid "select the saturation shadow tone" +msgstr "bepaal verzadiging voor schaduwkleuren" + +#: ../src/iop/colorize.c:364 +msgid "lightness of color" +msgstr "helderheid van kleur" + +#: ../src/iop/colorize.c:368 +msgid "mix value of source lightness" +msgstr "mix waarden voor de bron helderheden" + +#: ../src/iop/colormapping.c:147 +msgid "color mapping" +msgstr "kleuren mapping" + +#: ../src/iop/colormapping.c:152 +msgid "" +"transfer a color palette and tonal repartition from one image to another" +msgstr "" +"breng een kleurenpalet en tonale verdeling over van het ene beeld naar het " +"andere" + +#: ../src/iop/colormapping.c:1019 +msgid "source clusters:" +msgstr "clusterbronnen:" + +#: ../src/iop/colormapping.c:1025 +msgid "target clusters:" +msgstr "clusterdoelen:" + +#: ../src/iop/colormapping.c:1034 +msgid "acquire as source" +msgstr "verwerk als bron" + +#: ../src/iop/colormapping.c:1038 +msgid "analyze this image as a source image" +msgstr "analyseer afbeelding als bronafbeelding" + +#: ../src/iop/colormapping.c:1040 +msgid "acquire as target" +msgstr "verwerk als doel" + +#: ../src/iop/colormapping.c:1044 +msgid "analyze this image as a target image" +msgstr "analyseer afbeelding als doelafbeelding" + +#: ../src/iop/colormapping.c:1047 +msgid "number of clusters to find in image. value change resets all clusters" +msgstr "" +"doorzoek de afbeelding op dit aantal clusters, bij een wijziging worden " +"clusters gereset" + +#: ../src/iop/colormapping.c:1050 +msgid "" +"how clusters are mapped. low values: based on color proximity, high values: " +"based on color dominance" +msgstr "" +"bepaalt hoe clusters in kaart worden gebracht; lage waarden op " +"kleurnabijheid, hoge waarden op kleurdominantie" + +#: ../src/iop/colormapping.c:1055 +msgid "level of histogram equalization" +msgstr "mate van histogramegalisatie" + +#: ../src/iop/colorout.c:81 +msgid "output color profile" +msgstr "uitgaand kleurprofiel" + +#: ../src/iop/colorout.c:87 +msgid "" +"convert pipeline reference RGB to any display RGB\n" +"using color profiles to remap RGB values" +msgstr "" +"converteer de interne referentie RGB naar de scherm RGB\n" +"m.b.v. kleurprofielen voor de omzetting van RGB-waarden" + +#: ../src/iop/colorout.c:92 +msgid "non-linear, RGB or Lab, display-referred" +msgstr "niet-lineair, RGB of Lab, scherm-gerefereerd" + +#: ../src/iop/colorout.c:695 +msgid "missing output profile has been replaced by sRGB!" +msgstr "ontbrekend uitgaand profiel is vervangen door sRGB!" + +#: ../src/iop/colorout.c:717 +msgid "missing softproof profile has been replaced by sRGB!" +msgstr "ontbrekend softproof profiel is vervangen door sRGB!" + +#: ../src/iop/colorout.c:760 +msgid "unsupported output profile has been replaced by sRGB!" +msgstr "niet-ondersteund uitvoer profiel is vervangen door sRGB!" + +#: ../src/iop/colorout.c:885 +msgid "output intent" +msgstr "uitvoer intentie" + +#: ../src/iop/colorout.c:886 +msgid "rendering intent" +msgstr "render intentie" + +#: ../src/iop/colorout.c:888 ../src/libs/export.c:1358 +#: ../src/libs/print_settings.c:2475 ../src/libs/print_settings.c:2824 +#: ../src/views/darkroom.c:2359 ../src/views/lighttable.c:1176 +msgid "perceptual" +msgstr "perceptueel" + +#: ../src/iop/colorout.c:889 ../src/libs/export.c:1359 +#: ../src/libs/print_settings.c:2476 ../src/libs/print_settings.c:2825 +#: ../src/views/darkroom.c:2360 ../src/views/lighttable.c:1177 +msgid "relative colorimetric" +msgstr "relatieve colorimetrie" + +#: ../src/iop/colorout.c:890 ../src/libs/export.c:1360 +#: ../src/libs/print_settings.c:2477 ../src/libs/print_settings.c:2826 +#: ../src/views/darkroom.c:2361 ../src/views/lighttable.c:1178 +msgctxt "rendering intent" +msgid "saturation" +msgstr "verzadiging" + +#: ../src/iop/colorout.c:891 ../src/libs/export.c:1361 +#: ../src/libs/print_settings.c:2478 ../src/libs/print_settings.c:2827 +#: ../src/views/darkroom.c:2362 ../src/views/lighttable.c:1179 +msgid "absolute colorimetric" +msgstr "absolute colorimetrie" + +#: ../src/iop/colorout.c:909 +msgid "export ICC profiles" +msgstr "export ICC-profiel" + +#: ../src/iop/colorreconstruction.c:114 +msgid "color reconstruction" +msgstr "kleur reconstructie" + +#: ../src/iop/colorreconstruction.c:119 +msgid "recover clipped highlights by propagating surrounding colors" +msgstr "herstel afgeknipte highlights door omringende kleuren te verspreiden" + +#: ../src/iop/colorreconstruction.c:647 ../src/iop/colorreconstruction.c:1053 +#: ../src/iop/globaltonemap.c:227 ../src/iop/globaltonemap.c:396 +#: ../src/iop/hazeremoval.c:541 ../src/iop/hazeremoval.c:776 +#: ../src/iop/levels.c:358 +msgid "inconsistent output" +msgstr "tegenstrijdige uitgang" + +#: ../src/iop/colorreconstruction.c:685 +msgid "module `color reconstruction' failed" +msgstr "module 'kleur reconstructie' mislukte" + +#: ../src/iop/colorreconstruction.c:1246 +msgid "spatial" +msgstr "ruimtelijk" + +#: ../src/iop/colorreconstruction.c:1247 +msgid "range" +msgstr "bereik" + +#: ../src/iop/colorreconstruction.c:1248 +msgid "precedence" +msgstr "voorrang" + +#: ../src/iop/colorreconstruction.c:1264 +msgid "pixels with lightness values above this threshold are corrected" +msgstr "pixels met helderheidswaarden boven de drempel worden gecorrigeerd" + +#: ../src/iop/colorreconstruction.c:1265 +msgid "how far to look for replacement colors in spatial dimensions" +msgstr "hoe diep zoeken naar vervangende kleuren in de ruimtelijke dimensies" + +#: ../src/iop/colorreconstruction.c:1266 +msgid "how far to look for replacement colors in the luminance dimension" +msgstr "hoe ver onderzoeken op vervangende kleuren in de helderheidsdimensie" + +#: ../src/iop/colorreconstruction.c:1267 +msgid "if and how to give precedence to specific replacement colors" +msgstr "of en hoe voorrang te verlenen aan specifiek vervangende kleuren" + +#: ../src/iop/colorreconstruction.c:1268 +msgid "the hue tone which should be given precedence over other hue tones" +msgstr "de tint die voorrang krijgt boven andere tinten" + +#: ../src/iop/colorreconstruction.c:1270 ../src/iop/demosaic.c:1324 +#: ../src/iop/highlights.c:1258 +msgid "not applicable" +msgstr "niet toepasbaar" + +#: ../src/iop/colorreconstruction.c:1271 +msgid "no highlights reconstruction for monochrome images" +msgstr "geen hooglicht recontructie voor monochroom afbeeldingen" + +#: ../src/iop/colortransfer.c:103 +msgid "color transfer" +msgstr "kleuroverdracht" + +#: ../src/iop/colortransfer.c:118 +msgid "this module is deprecated. better use color mapping module instead." +msgstr "" +"deze module is verouderd. gebruik in plaats daarvan de kleurmapping-module." + +#: ../src/iop/colortransfer.c:441 +msgid "" +"this module will be removed in the future\n" +"and is only here so you can switch it off\n" +"and move to the new color mapping module." +msgstr "" +"deze module wordt in de toekomst verwijderd\n" +"en staat hier nog zodat de module uitgeschakeld kan worden\n" +"en de nieuwe kleurmapmodule gebruikt kan worden." + +#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2573 +msgid "color zones" +msgstr "kleurzones" + +#: ../src/iop/colorzones.c:145 +msgid "selectively shift hues, chroma and lightness of pixels" +msgstr "verander selectief tinten, verzadiging en helderheid van pixels" + +#: ../src/iop/colorzones.c:684 +msgid "B&W: with red" +msgstr "Z/W: met rood" + +#: ../src/iop/colorzones.c:707 +msgid "B&W: with skin tones" +msgstr "Z/W: met huidskleur" + +#: ../src/iop/colorzones.c:732 +msgid "polarizing filter" +msgstr "polarisatiefilter" + +#: ../src/iop/colorzones.c:753 +msgid "natural skin tones" +msgstr "natuurlijke huidskleuren" + +#: ../src/iop/colorzones.c:784 +msgid "B&W: film" +msgstr "B&W: film" + +#: ../src/iop/colorzones.c:804 +msgid "HSL base setting" +msgstr "HSL basisinstelling" + +#: ../src/iop/colorzones.c:2500 +msgid "orange" +msgstr "oranje" + +#: ../src/iop/colorzones.c:2673 ../src/iop/rgbcurve.c:1375 +msgid "" +"create a curve based on an area from the image\n" +"drag to create a flat curve\n" +"ctrl+drag to create a positive curve\n" +"shift+drag to create a negative curve" +msgstr "" +"creëer een curve gebaseerd op een deel van de afbeelding\n" +"sleep voor een platte curve\n" +"ctrl+slepen voor een positieve curve\n" +"shift+slepen voor een negatieve curve" + +#: ../src/iop/colorzones.c:2677 ../src/iop/rgbcurve.c:1379 +msgid "create curve" +msgstr "maak curve" + +#. edit by area +#: ../src/iop/colorzones.c:2696 +msgid "edit by area" +msgstr "bewerk per gebied" + +#: ../src/iop/colorzones.c:2702 +msgid "edit the curve nodes by area" +msgstr "bewerk de curve knooppunten per gebied" + +#: ../src/iop/colorzones.c:2710 +msgid "display selection" +msgstr "toon selectie" + +#: ../src/iop/colorzones.c:2722 +msgid "choose selection criterion, will be the abscissa in the graph" +msgstr "kies eenheid als horizontale schaal van de grafiek" + +#: ../src/iop/colorzones.c:2725 +msgid "choose between a smoother or stronger effect" +msgstr "kies tussen een gladder of sterker effect" + +#: ../src/iop/colorzones.c:2762 ../src/iop/rgbcurve.c:1410 +#: ../src/iop/tonecurve.c:1194 +msgid "interpolation method" +msgstr "interpolatiemethode" + +#: ../src/iop/colorzones.c:2764 ../src/iop/rgbcurve.c:1412 +#: ../src/iop/tonecurve.c:1196 +msgid "centripetal spline" +msgstr "centripetaal" + +#: ../src/iop/colorzones.c:2765 ../src/iop/rgbcurve.c:1413 +#: ../src/iop/tonecurve.c:1197 +msgid "monotonic spline" +msgstr "monotoon" + +#: ../src/iop/colorzones.c:2768 ../src/iop/rgbcurve.c:1416 +#: ../src/iop/tonecurve.c:1199 +msgid "" +"change this method if you see oscillations or cusps in the curve\n" +"- cubic spline is better to produce smooth curves but oscillates when nodes " +"are too close\n" +"- centripetal is better to avoids cusps and oscillations with close nodes " +"but is less smooth\n" +"- monotonic is better for accuracy of pure analytical functions (log, gamma, " +"exp)" +msgstr "" +"wijzig deze methode bij ongewenste uitschieters in de curve\n" +"- kubisch: geeft een gladde curve maar leidt tot pieken als punten dicht bij " +"elkaar liggen\n" +"- centripetaal: vermijdt uitschieters maar verloopt minder glad als punten " +"dicht bij elkaar liggen\n" +"- monotoon: is nauwkeuriger voor puur analytische functies (log, gamma, exp)" + +#: ../src/iop/crop.c:122 +msgid "crop" +msgstr "uitsnijden" + +#: ../src/iop/crop.c:127 +msgid "reframe|distortion" +msgstr "reframe|vervorming" + +#: ../src/iop/crop.c:133 +msgid "change the framing" +msgstr "verander de omlijsting" + +#: ../src/iop/crop.c:1651 +msgid "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag" +msgstr "" +"<b>formaat wijzigen</b>: slepen, <b>beeldverhouding behouden</b>: " +"shift+slepen" + +#: ../src/iop/crop.c:1660 +msgid "" +"<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" +"b>: ctrl+drag" +msgstr "" +"<b>verplaatsen</b>: slepen, <b>verticaal verplaatsen</b>: shift+slepen, " +"<b>horizontaal verplaatsen</b>: ctrl+slepen" + +#: ../src/iop/defringe.c:71 +msgid "defringe" +msgstr "verwijder franje (defringe)" + +#: ../src/iop/defringe.c:81 +msgid "attenuate chromatic aberration by desaturating edges" +msgstr "verzwak chromatische afwijkingen door de randen te desatureren" + +#: ../src/iop/defringe.c:101 +msgid "" +"this module is deprecated. please use the chromatic aberration module " +"instead." +msgstr "" +"deze module is verouderd. gebruik in plaats daarvan de chromatische " +"aberratie-module." + +#: ../src/iop/defringe.c:417 +msgid "" +"method for color protection:\n" +" - global average: fast, might show slightly wrong previews in high " +"magnification; might sometimes protect saturation too much or too low in " +"comparison to local average\n" +" - local average: slower, might protect saturation better than global " +"average by using near pixels as color reference, so it can still allow for " +"more desaturation where required\n" +" - static: fast, only uses the threshold as a static limit" +msgstr "" +"methode van kleur bescherming:\n" +"- algemeen gemiddelde: snel, kan bij hoge vergrotingen een verkeerd " +"voorbeeld geven; soms wordt verzadiging te veel of te laag beschermd in " +"vergelijking met lokaal gemiddelde\n" +"- lokaal gemiddelde: langzamer, beschermt verzadiging mogelijk beter dan " +"algemeen gemiddelde door het gebruik van buurtpixels als kleurreferentie, " +"zodoende kan het meer verzadigen waar nodig\n" +"- vaste drempel: snel, gebruikt alleen de drempel als vaste limiet" + +#: ../src/iop/defringe.c:424 +msgid "radius for detecting fringe" +msgstr "radius voor het opsporen van de franje" + +#: ../src/iop/defringe.c:427 +msgid "threshold for defringe, higher values mean less defringing" +msgstr "" +"drempel voor franje verwijderen, hogere waarde betekent minder verwijderen" + +#: ../src/iop/demosaic.c:287 +msgid "demosaic" +msgstr "demozaïek" + +#: ../src/iop/demosaic.c:292 +msgid "reconstruct full RGB pixels from a sensor color filter array reading" +msgstr "" +"reconstrueer volledige RGB-pixels op basis van de gerasterde RAW-pixels" + +#: ../src/iop/demosaic.c:1133 +#, c-format +msgid "`%s' color matrix not found for 4bayer image!" +msgstr "`%s' kleuren matrix voor 4bayer afbeelding is niet gevonden!" + +#: ../src/iop/demosaic.c:1285 +msgid "" +"Bayer sensor demosaicing method, PPG and RCD are fast, AMaZE and LMMSE are " +"slow.\n" +"LMMSE is suited best for high ISO images.\n" +"dual demosaicers double processing time." +msgstr "" +"Bayer sensor demozaïek-methode, PPG en RCD zijn snel, AMaZE en LMMSE zijn " +"traag.\n" +"LMMSE is best geschikt voor afbeeldingen met hoge ISO.\n" +"Gecombineerde methoden verdubbelen de verwerkingstijd." + +#: ../src/iop/demosaic.c:1289 +msgid "" +"X-Trans sensor demosaicing method, Markesteijn 3-pass and frequency domain " +"chroma are slow.\n" +"dual demosaicers double processing time." +msgstr "" +"X-Trans sensor demozaïek-methode, Markesteijn 3-pass en frequentie domein " +"chroma zijn traag.\n" +"Gecombineerde methoden verdubbelen de verwerkingstijd." + +#: ../src/iop/demosaic.c:1295 +msgid "Bayer4 sensor demosaicing methods." +msgstr "Bayer4 sensor demozaïek methoden." + +#: ../src/iop/demosaic.c:1299 +msgid "" +"threshold for edge-aware median.\n" +"set to 0.0 to switch off\n" +"set to 1.0 to ignore edges" +msgstr "" +"drempelwaarde voor een randbewuste mediaan\n" +"instellen op 0.0 om uit te schakelen\n" +"kies 1.0 om de randen te negeren" + +#: ../src/iop/demosaic.c:1304 +msgid "" +"contrast threshold for dual demosaic.\n" +"set to 0.0 for high frequency content\n" +"set to 1.0 for flat content\n" +"toggle to visualize the mask" +msgstr "" +"contrastdrempel voor dubbele demozaïek.\n" +"kies 0,0 voor inhoud met hoge frequentie.\n" +"kies 1,0 voor vlakke inhoud\n" +"schakel om het masker te visualiseren" + +#: ../src/iop/demosaic.c:1312 +msgid "" +"LMMSE refinement steps. the median steps average the output,\n" +"refine adds some recalculation of red & blue channels" +msgstr "" +"LMMSE-verfijningsstappen. de mediane stappen het gemiddelde van de uitvoer,\n" +"verfijnen voegt wat herberekening toe van rode en blauwe kanalen" + +#: ../src/iop/demosaic.c:1315 +msgid "how many color smoothing median steps after demosaicing" +msgstr "aantal stappen mediaan kleur afvlakken na demozaïeken" + +#: ../src/iop/demosaic.c:1318 +msgid "green channels matching method" +msgstr "methode voor matchen groene kanalen" + +#: ../src/iop/demosaic.c:1325 +msgid "demosaicing is only used for color raw images" +msgstr "demozaïeken wordt alleen gebruikt voor raw-kleurenafbeeldingen" + +#: ../src/iop/denoiseprofile.c:766 +msgid "wavelets: chroma only" +msgstr "wavelets: alleen kleur" + +#: ../src/iop/denoiseprofile.c:772 +msgid "denoise (profiled)" +msgstr "ruisreductie (profiel)" + +#: ../src/iop/denoiseprofile.c:778 +msgid "denoise using noise statistics profiled on sensors" +msgstr "ruisreductie op basis van sensor specifiek profiel" + +#: ../src/iop/denoiseprofile.c:2850 +#, c-format +msgid "found match for ISO %d" +msgstr "overeenkomst voor ISO %d" + +#: ../src/iop/denoiseprofile.c:2859 +#, c-format +msgid "interpolated from ISO %d and %d" +msgstr "geïnterpoleerd uit ISO %d en %d" + +#: ../src/iop/denoiseprofile.c:3723 +msgid "Y0" +msgstr "Y0 (helderheid)" + +#: ../src/iop/denoiseprofile.c:3724 +msgid "U0V0" +msgstr "U0V0 (kleur)" + +#: ../src/iop/denoiseprofile.c:3764 +msgid "" +"use only with a perfectly\n" +"uniform image if you want to\n" +"estimate the noise variance." +msgstr "" +"alleen gebruiken voor volmaakt\n" +"uniforme afbeeldingen\n" +"als u de ruis variantie wilt schatten." + +#: ../src/iop/denoiseprofile.c:3770 +msgid "variance red: " +msgstr "variantie rood: " + +#: ../src/iop/denoiseprofile.c:3774 +msgid "variance computed on the red channel" +msgstr "variantie berekend op het rode kanaal" + +#: ../src/iop/denoiseprofile.c:3779 +msgid "variance green: " +msgstr "variantie groen: " + +#: ../src/iop/denoiseprofile.c:3783 +msgid "variance computed on the green channel" +msgstr "variantie berekend op het groene kanaal" + +#: ../src/iop/denoiseprofile.c:3788 +msgid "variance blue: " +msgstr "variantie blauw: " + +#: ../src/iop/denoiseprofile.c:3792 +msgid "variance computed on the blue channel" +msgstr "variantie berekend op het blauwe kanaal" + +#: ../src/iop/denoiseprofile.c:3803 ../src/libs/export.c:1320 +#: ../src/libs/print_settings.c:2418 ../src/libs/print_settings.c:2774 +msgid "profile" +msgstr "profiel" + +#: ../src/iop/denoiseprofile.c:3837 +msgid "" +"adapt denoising according to the\n" +"white balance coefficients.\n" +"should be enabled on a first instance\n" +"for better denoising.\n" +"should be disabled if an earlier instance\n" +"has been used with a color blending mode." +msgstr "" +"ruisreductie afstemmen op de witbalanscoëfficiënten\n" +"activeer dit als eerste voor een betere werking\n" +"maar deactiveer dit als in een eerder exemplaar\n" +"gebruik is gemaakt van een modus voor kleurmenging." + +#: ../src/iop/denoiseprofile.c:3844 +msgid "" +"fix bugs in Anscombe transform resulting\n" +"in undersmoothing of the green channel in\n" +"wavelets mode, combined with a bad handling\n" +"of white balance coefficients, and a bug in\n" +"non-local means normalization resulting in\n" +"undersmoothing when patch size was increased.\n" +"enabling this option will change the denoising\n" +"you get. once enabled, you won't be able to\n" +"return back to old algorithm." +msgstr "" +"repareert fouten in Anscombe transformatie\n" +"waardoor groene kanalen worden afgevlakt\n" +"in de wavelets modus, samen met een slechte\n" +"verwerking van witbalans coëfficiënten en een fout in\n" +"'non-local means' normalisatie wat resulteert in \n" +"afvlakking bij vergrote patroonafmeting.\n" +"Deze optie beïnvloedt de ruisreductie. Eenmaal\n" +"ingesteld is het oude algoritme niet meer beschikbaar." + +#: ../src/iop/denoiseprofile.c:3854 +msgid "profile used for variance stabilization" +msgstr "profiel gebruikt voor variatie-stabilisering" + +#: ../src/iop/denoiseprofile.c:3856 +msgid "" +"method used in the denoising core.\n" +"non-local means works best for `lightness' blending,\n" +"wavelets work best for `color' blending" +msgstr "" +"gebruikte methode voor ruisreductie\n" +"non-local werkt het best voor helderheid\n" +"wavelets werkt het best voor kleur" + +#: ../src/iop/denoiseprofile.c:3860 +msgid "" +"color representation used within the algorithm.\n" +"RGB keeps the RGB channels separated,\n" +"while Y0U0V0 combine the channels to\n" +"denoise chroma and luma separately." +msgstr "" +"kleurweergave gebruikt in het algoritme\n" +"RGB houdt de RGB-kanalen gescheiden,\n" +"terwijl Y0U0V0 de kanalen combineert voor\n" +"aparte ruisreductie in kleur en helderheid." + +#: ../src/iop/denoiseprofile.c:3865 +msgid "" +"radius of the patches to match.\n" +"increase for more sharpness on strong edges, and better denoising of smooth " +"areas.\n" +"if details are oversmoothed, reduce this value or increase the central pixel " +"weight slider." +msgstr "" +"radius van de overeenkomende patches.\n" +"verhogen voor meer scherpte op sterke randen en een betere ruisonderdrukking " +"van gladde gebieden.\n" +"als details te glad zijn, verlaag dan deze waarde of verhoog de " +"schuifregelaar voor het centrale pixelgewicht." + +#: ../src/iop/denoiseprofile.c:3871 +msgid "" +"emergency use only: radius of the neighborhood to search patches in. " +"increase for better denoising performance, but watch the long runtimes! " +"large radii can be very slow. you have been warned" +msgstr "" +"alleen gebruiken in geval van nood: radius van de omgeving om patronen te " +"zoeken, verhoog voor een betere ontruis prestatie, maar reken op langere " +"looptijden, het kan erg langzaam reageren. u bent gewaarschuwd" + +#: ../src/iop/denoiseprofile.c:3877 +msgid "" +"scattering of the neighborhood to search patches in.\n" +"increase for better coarse-grain noise reduction.\n" +"does not affect execution time." +msgstr "" +"verstrooiing van de buurt om plekken in te zoeken.\n" +"verhogen voor een betere grofkorrelige ruisonderdrukking.\n" +"heeft geen invloed op de uitvoeringstijd." + +#: ../src/iop/denoiseprofile.c:3881 +msgid "" +"increase the weight of the central pixel\n" +"of the patch in the patch comparison.\n" +"useful to recover details when patch size\n" +"is quite big." +msgstr "" +"verhoog invloed van centrale pixel\n" +"bij de vergelijking van het patroon\n" +"dit is nuttig voor herstel details\n" +"bij grotere patroonafmetingen." + +#: ../src/iop/denoiseprofile.c:3885 +msgid "finetune denoising strength" +msgstr "fijnregeling mate van ruisreductie" + +#: ../src/iop/denoiseprofile.c:3887 +msgid "" +"controls the way parameters are autoset\n" +"increase if shadows are not denoised enough\n" +"or if chroma noise remains.\n" +"this can happen if your picture is underexposed." +msgstr "" +"bepaalt hoe parameters automatisch worden ingesteld\n" +"verhoog indien teveel ruis achterblijft in schaduwen\n" +"of als kleurruis blijft bestaan.\n" +"dit kan het geval zijn bij onderbelichte afbeeldingen." + +#: ../src/iop/denoiseprofile.c:3892 +msgid "" +"finetune shadows denoising.\n" +"decrease to denoise more aggressively\n" +"dark areas of the image." +msgstr "" +"bijstellen ruisreductie schaduwen.\n" +"verhoog voor een minder agressieve\n" +"ruisreductie van donkere delen." + +#: ../src/iop/denoiseprofile.c:3896 +msgid "" +"correct color cast in shadows.\n" +"decrease if shadows are too purple.\n" +"increase if shadows are too green." +msgstr "" +"corrigeer kleurzweem in de schaduwen\n" +"verlaag bij te paarse schaduwen\n" +"verhoog bij te groene schaduwen." + +#: ../src/iop/denoiseprofile.c:3900 +msgid "" +"upgrade the variance stabilizing algorithm.\n" +"new algorithm extends the current one.\n" +"it is more flexible but could give small\n" +"differences in the images already processed." +msgstr "" +"upgrade het variantie stabiliserend algoritme\n" +"nieuw algoritme breidt de huidige uit\n" +"het is flexibeler, maar zou kleine verschillen\n" +"kunnen geven in de reeds bewerkte afbeeldingen." + +#: ../src/iop/diffuse.c:129 +msgid "diffuse or sharpen" +msgstr "diffuus of verscherpen" + +#: ../src/iop/diffuse.c:134 +msgid "diffusion|deconvolution|blur|sharpening" +msgstr "diffusie|deconvolutie|vervaging|verscherping" + +#: ../src/iop/diffuse.c:141 +msgid "" +"simulate directional diffusion of light with heat transfer model\n" +"to apply an iterative edge-oriented blur,\n" +"inpaint damaged parts of the image, or to remove blur with blind " +"deconvolution." +msgstr "" +"simuleer directionele diffusie van licht met warmteoverdrachtsmodel\n" +"om een iteratieve randgerichte vervaging toe te passen,\n" +"inpaint beschadigde delen van de afbeelding, of om onscherpte te verwijderen " +"met blinde deconvolutie." + +#. deblurring presets +#: ../src/iop/diffuse.c:246 +msgid "lens deblur: soft" +msgstr "lens onscherpte: zacht" + +#: ../src/iop/diffuse.c:271 +msgid "lens deblur: medium" +msgstr "lens onscherpte: medium" + +#: ../src/iop/diffuse.c:296 +msgid "lens deblur: hard" +msgstr "lens onscherpte: hard" + +#: ../src/iop/diffuse.c:322 +msgid "dehaze" +msgstr "nevel verminderen" + +#: ../src/iop/diffuse.c:348 +msgid "denoise: fine" +msgstr "ruisreductie: fijn" + +#: ../src/iop/diffuse.c:373 +msgid "denoise: medium" +msgstr "ruisreductie: medium" + +#: ../src/iop/diffuse.c:398 +msgid "denoise: coarse" +msgstr "ruisreductie: grof" + +#: ../src/iop/diffuse.c:473 +msgid "sharpen demosaicing: no AA filter" +msgstr "verscherpen demozaïek (geen AA-filter)" + +#: ../src/iop/diffuse.c:499 +msgid "sharpen demosaicing: AA filter" +msgstr "verscherpen demozaïek (AA-filter)" + +#: ../src/iop/diffuse.c:526 +msgid "simulate watercolor" +msgstr "simuleer waterkleur" + +#: ../src/iop/diffuse.c:551 +msgid "simulate line drawing" +msgstr "simuleer lijntekening" + +#: ../src/iop/diffuse.c:603 +msgid "inpaint highlights" +msgstr "vul hooglichten in" + +#. fast presets for slow hardware +#: ../src/iop/diffuse.c:630 +msgid "sharpness: fast" +msgstr "verscherpen: snel" + +#: ../src/iop/diffuse.c:682 +msgid "sharpness: strong" +msgstr "verscherpen: sterk" + +#: ../src/iop/diffuse.c:707 +msgid "local contrast: fast" +msgstr "lokaal contrast: snel" + +#: ../src/iop/diffuse.c:1418 ../src/iop/diffuse.c:1693 +msgid "diffuse/sharpen failed to allocate memory, check your RAM settings" +msgstr "" +"diffuus/verscherpen kon geen geheugen toewijzen, controleer uw RAM-" +"instellingen" + +#. Additional parameters +#. Camera settings +#: ../src/iop/diffuse.c:1797 ../src/iop/splittoning.c:533 +#: ../src/libs/camera.c:486 +msgctxt "section" +msgid "properties" +msgstr "eigenschappen" + +#: ../src/iop/diffuse.c:1803 +msgid "" +"more iterations make the effect stronger but the module slower.\n" +"this is analogous to giving more time to the diffusion reaction.\n" +"if you plan on sharpening or inpainting, \n" +"more iterations help reconstruction." +msgstr "" +"meer iteraties maken het effect sterker, maar de module langzamer.\n" +"dit is analoog aan het geven van meer tijd aan de diffusie reactie.\n" +"als je van plan bent te verscherpen of te schilderen, \n" +"helpen meer iteraties bij de wederopbouw." + +#: ../src/iop/diffuse.c:1812 +msgid "" +"main scale of the diffusion.\n" +"zero makes diffusion act on the finest details more heavily.\n" +"non-zero defines the size of the details to diffuse heavily.\n" +"for deblurring and denoising, set to zero.\n" +"increase to act on local contrast instead." +msgstr "" +"hoofdschaal van de diffusie.\n" +"nul zorgt ervoor dat diffusie sterker inwerkt op de fijnste details.\n" +"niet-nul definieert de grootte van de details om sterk te diffunderen.\n" +"voor onscherpte en ruisonderdrukking, ingesteld op nul.\n" +"verhogen om in plaats daarvan op lokaal contrast in te werken." + +#: ../src/iop/diffuse.c:1822 +msgid "" +"width of the diffusion around the central radius.\n" +"high values diffuse on a large band of radii.\n" +"low values diffuse closer to the central radius.\n" +"if you plan on deblurring, \n" +"the radius should be around the width of your lens blur." +msgstr "" +"breedte van de diffusie rond de centrale radius.\n" +"hoge waarden diffuseren over een grote band van straal.\n" +"lage waarden diffuseren dichter bij de centrale radius.\n" +"als je van plan bent om onscherpte te verwijderen, \n" +"moet de radius rond de breedte van de lens onscherpte liggen." + +#: ../src/iop/diffuse.c:1829 +msgctxt "section" +msgid "speed (sharpen ↔ diffuse)" +msgstr "snelheid (verscherpen ↔ diffuus)" + +#: ../src/iop/diffuse.c:1836 +msgid "" +"diffusion speed of low-frequency wavelet layers\n" +"in the direction of 1st order anisotropy (set below).\n" +"\n" +"negative values sharpen, \n" +"positive values diffuse and blur, \n" +"zero does nothing." +msgstr "" +"diffusie snelheid van lage frequentie wavelet lagen\n" +"in de richting van 1e order anisotropie (zet omlaag).\n" +"\n" +"negatieve waarden verscherpen,\n" +"positieve waarden diffuseren en vervagen,\n" +"nul doet niets." + +#: ../src/iop/diffuse.c:1846 +msgid "" +"diffusion speed of low-frequency wavelet layers\n" +"in the direction of 2nd order anisotropy (set below).\n" +"\n" +"negative values sharpen, \n" +"positive values diffuse and blur, \n" +"zero does nothing." +msgstr "" +"diffusie snelheid van lage frequentie wavelet lagen\n" +"in de richting van 2e order anisotropie (zet omlaag).\n" +"\n" +"negatieve waarden verscherpen,\n" +"positieve waarden diffuseren en vervagen,\n" +"nul doet niets." + +#: ../src/iop/diffuse.c:1856 +msgid "" +"diffusion speed of high-frequency wavelet layers\n" +"in the direction of 3rd order anisotropy (set below).\n" +"\n" +"negative values sharpen, \n" +"positive values diffuse and blur, \n" +"zero does nothing." +msgstr "" +"diffusie snelheid van lage frequentie wavelet lagen\n" +"in de richting van 3e order anisotropie (zet omlaag).\n" +"\n" +"negatieve waarden verscherpen,\n" +"positieve waarden diffuseren en vervagen,\n" +"nul doet niets." + +#: ../src/iop/diffuse.c:1866 +msgid "" +"diffusion speed of high-frequency wavelet layers\n" +"in the direction of 4th order anisotropy (set below).\n" +"\n" +"negative values sharpen, \n" +"positive values diffuse and blur, \n" +"zero does nothing." +msgstr "" +"diffusie snelheid van lage frequentie wavelet lagen\n" +"in de richting van 4e order anisotropie (zet omlaag).\n" +"\n" +"negatieve waarden verscherpen,\n" +"positieve waarden diffuseren en vervagen,\n" +"nul doet niets." + +#: ../src/iop/diffuse.c:1872 +msgctxt "section" +msgid "direction" +msgstr "richting" + +#: ../src/iop/diffuse.c:1879 +msgid "" +"direction of 1st order speed (set above).\n" +"\n" +"negative values follow gradients more closely, \n" +"positive values rather avoid edges (isophotes), \n" +"zero affects both equally (isotropic)." +msgstr "" +"richting van 1e orde snelheid (zet omlaag).\n" +"\n" +"negatieve waarden volgen gradiënten meer,\n" +"positieve waarden vermijden randen (isofoten),\n" +"nul op beide evenveel invloed (isotroop)." + +#: ../src/iop/diffuse.c:1888 +msgid "" +"direction of 2nd order speed (set above).\n" +"\n" +"negative values follow gradients more closely, \n" +"positive values rather avoid edges (isophotes), \n" +"zero affects both equally (isotropic)." +msgstr "" +"richting van 2e orde snelheid (zet omlaag).\n" +"\n" +"negatieve waarden volgen gradiënten meer,\n" +"positieve waarden vermijden randen (isofoten),\n" +"nul op beide evenveel invloed (isotroop)." + +#: ../src/iop/diffuse.c:1897 +msgid "" +"direction of 3rd order speed (set above).\n" +"\n" +"negative values follow gradients more closely, \n" +"positive values rather avoid edges (isophotes), \n" +"zero affects both equally (isotropic)." +msgstr "" +"richting van 3e orde snelheid (zet omlaag).\n" +"\n" +"negatieve waarden volgen gradiënten meer,\n" +"positieve waarden vermijden randen (isofoten),\n" +"nul op beide evenveel invloed (isotroop)." + +#: ../src/iop/diffuse.c:1906 +msgid "" +"direction of 4th order speed (set above).\n" +"\n" +"negative values follow gradients more closely, \n" +"positive values rather avoid edges (isophotes), \n" +"zero affects both equally (isotropic)." +msgstr "" +"richting van 4e orde snelheid (zet omlaag).\n" +"\n" +"negatieve waarden volgen gradiënten meer,\n" +"positieve waarden vermijden randen (isofoten),\n" +"nul op beide evenveel invloed (isotroop)." + +#: ../src/iop/diffuse.c:1912 +msgctxt "section" +msgid "edge management" +msgstr "rand management" + +#: ../src/iop/diffuse.c:1919 +msgid "" +"increase or decrease the sharpness of the highest frequencies.\n" +"can be used to keep details after blooming,\n" +"for standalone sharpening set speed to negative values." +msgstr "" +"verhoog of verlaag de verscherping van de hoogste frequenties.\n" +"kan gebruikt worden om de details te behouden na toepassen van glans,\n" +"voor alleen verscherping zet de snelheid op negatieve waarden." + +#: ../src/iop/diffuse.c:1926 +msgid "" +"define the sensitivity of the variance penalty for edges.\n" +"increase to exclude more edges from diffusion,\n" +"if fringes or halos appear." +msgstr "" +"definieer de gevoeligheid van het variantienadeel voor randen.\n" +"verhogen om meer randen van diffusie uit te sluiten,\n" +"als er franjes of halo's verschijnen." + +#: ../src/iop/diffuse.c:1933 +msgid "" +"define the variance threshold between edge amplification and penalty.\n" +"decrease if you want pixels on smooth surfaces get a boost,\n" +"increase if you see noise appear on smooth surfaces or\n" +"if dark areas seem oversharpened compared to bright areas." +msgstr "" +"definieer de variantiedrempel tussen randversterking en het nadeel.\n" +"verminderen als je wilt dat pixels op gladde oppervlakken een boost " +"krijgen,\n" +"verhogen als u ruis ziet verschijnen op gladde oppervlakken of\n" +"als donkere gebieden te scherp lijken in vergelijking met heldere gebieden." + +#: ../src/iop/diffuse.c:1939 +msgctxt "section" +msgid "diffusion spatiality" +msgstr "diffusie ruimtelijkheid" + +#: ../src/iop/diffuse.c:1946 +msgid "" +"luminance threshold for the mask.\n" +"0. disables the luminance masking and applies the module on the whole " +"image.\n" +"any higher value excludes pixels with luminance lower than the threshold.\n" +"this can be used to inpaint highlights." +msgstr "" +"helderheidsdrempel voor het masker.\n" +"0. schakelt het helderheidsmasker uit en verwerkt de gehele afbeelding.\n" +"een hogere waarde sluit pixels uit met een lagere helderheid dan de " +"drempelwaarde.\n" +"dit kan gebruikt worden om hooglichten te herstellen." + +#: ../src/iop/dither.c:107 +msgid "dither or posterize" +msgstr "dither of posterisatie" + +#: ../src/iop/dither.c:112 +msgid "dithering|posterization|reduce bit depth" +msgstr "dither|posterisatie|verklein bitdiepte" + +#: ../src/iop/dither.c:117 +msgid "" +"reduce banding and posterization effects in output\n" +"JPEGs by adding random noise, or reduce bit depth" +msgstr "" +"verminder banding en posterisatie-effecten in uitgaande\n" +"JPEG’s door willekeurige ruis toe te voegen of bit-diepte te verkleinen" + +#: ../src/iop/dither.c:119 +msgid "corrective, artistic" +msgstr "correctief, creatief" + +#. add the preset. +#: ../src/iop/dither.c:149 +msgid "dither" +msgstr "dither" + +#: ../src/iop/dither.c:761 +msgid "radius for blurring step" +msgstr "radius voor verdoezel stap" + +#: ../src/iop/dither.c:773 +msgid "the gradient range where to apply random dither" +msgstr "het gradiënt bereik waarop de willekeurige dither wordt toegepast" + +#: ../src/iop/dither.c:774 +msgid "gradient range" +msgstr "gradiënt bereik" + +#: ../src/iop/dither.c:782 +msgid "damping level of random dither" +msgstr "demp willekeurig dither niveau" + +#: ../src/iop/equalizer.c:89 +msgid "legacy equalizer" +msgstr "oorspronkelijke equalizer" + +#: ../src/iop/equalizer.c:112 +msgid "" +"this module is deprecated. better use contrast equalizer module instead." +msgstr "" +"deze module is verouderd. gebruik in plaats daarvan de contrast-" +"equalizermodule." + +#: ../src/iop/equalizer.c:240 +msgid "" +"this module will be removed in the future\n" +"and is only here so you can switch it off\n" +"and move to the new equalizer." +msgstr "" +"deze module wordt in de toekomst verwijderd\n" +"en zit er alleen nog in om uit te schakelen en\n" +"over te gaan op de nieuwe equalizer." + +#: ../src/iop/exposure.c:129 +msgid "" +"redo the exposure of the shot as if you were still in-camera\n" +"using a color-safe brightening similar to increasing ISO setting" +msgstr "" +"maak de belichting van de opname opnieuw alsof je nog met de camera bezig " +"bent\n" +"met een kleurveilige opheldering vergelijkbaar met het verhogen van de ISO-" +"instelling" + +#: ../src/iop/exposure.c:301 +msgid "magic lantern defaults" +msgstr "magic lantern standaard" + +#: ../src/iop/exposure.c:373 ../src/iop/rawoverexposed.c:137 +#: ../src/iop/rawoverexposed.c:256 +#, c-format +msgid "failed to get raw buffer from image `%s'" +msgstr "invoer raw buffer van afbeelding `%s' is mislukt" + +#: ../src/iop/exposure.c:647 +#, no-c-format +msgid "compensate camera exposure (%+.1f EV)" +msgstr "camera-belichting compenseren (%+.1f EV)" + +#. Write report in GUI +#: ../src/iop/exposure.c:831 +#, c-format +msgid "L : \t%.1f %%" +msgstr "L : \t%.1f %%" + +#: ../src/iop/exposure.c:963 ../src/libs/history.c:953 +#, c-format +msgid "%.2f EV" +msgstr "%.2f EV" + +#: ../src/iop/exposure.c:1131 +msgid "" +"automatically remove the camera exposure bias\n" +"this is useful if you exposed the image to the right." +msgstr "" +"automatisch de belichtingscorrectie van de camera opheffen\n" +"dit is handig als je de afbeelding aan de rechterkant belicht." + +#: ../src/iop/exposure.c:1150 +#, no-c-format +msgid "where in the histogram to meter for deflicking. E.g. 50% is median" +msgstr "" +"waar in het histogram meten van deflicking, bijvoorbeeld 50% is de mediaan" + +#: ../src/iop/exposure.c:1156 +msgid "" +"where to place the exposure level for processed pics, EV below overexposure." +msgstr "" +"waar moet van verwerkte afbeeldingen het belichtingsniveau worden geplaatst, " +"EV onder overbelichting." + +#: ../src/iop/exposure.c:1160 +msgid "computed EC: " +msgstr "berekende EC: " + +#: ../src/iop/exposure.c:1163 +msgid "what exposure correction has actually been used" +msgstr "welke belichtingscorrectie werkelijk is gebruikt" + +#: ../src/iop/exposure.c:1182 +msgid "" +"adjust the black level to unclip negative RGB values.\n" +"you should never use it to add more density in blacks!\n" +"if poorly set, it will clip near-black colors out of gamut\n" +"by pushing RGB values into negatives." +msgstr "" +"wijzig het zwartniveau om het clippen van negatieve RGB waarden te " +"voorkomen\n" +"gebruik het nooit voor meer dichtheid in de schaduwkleuren\n" +"indien slecht ingesteld, worden bijna-zwarte kleuren uit het gamma " +"verwijderd\n" +"door RGB waarden in het negatieve te drukken." + +#: ../src/iop/exposure.c:1192 +msgid "area exposure mapping" +msgstr "belichting mapping" + +#: ../src/iop/exposure.c:1198 +msgid "" +"define a target brightness, in terms of exposure,\n" +"for a selected region of the image (the control sample),\n" +"which you then match against the same target brightness\n" +"in other images. the control sample can either\n" +"be a critical part of your subject or a non-moving and\n" +"consistently-lit surface over your series of images." +msgstr "" +"definieer een doel helderheid, in termen van belichting,\n" +"voor een geselecteerd deel van de afbeelding (het proefmonster),\n" +"dat u vervolgens vergelijkt met dezelfde helderheid in\n" +"andere afbeeldingen. Het proefmonster kan een cruciaal\n" +"onderdeel van uw onderwerp zijn of een niet-bewegend\n" +"en consistent verlicht oppervlak over uw reeks afbeeldingen." + +#: ../src/iop/exposure.c:1207 +msgid "" +"\"correction\" automatically adjust exposure\n" +"such that the input lightness is mapped to the target.\n" +"\"measure\" simply shows how an input color is mapped by\n" +"the exposure compensation and can be used to define a target." +msgstr "" +"\"correctie\" past belichting automatisch aan door\n" +"de helderheid van de bron te vertalen naar het doel.\n" +"\"meting\" toont slechts hoe de bron kleur wordt vertaald\n" +"via belichtingscompensatie bijv. om een doel te definiëren." + +#: ../src/iop/exposure.c:1233 +msgid "L : \tN/A" +msgstr "L : \tnvt" + +#: ../src/iop/exposure.c:1251 +msgid "the desired target exposure after mapping" +msgstr "de gewenste doel belichting na mapping" + +#: ../src/iop/filmic.c:177 +msgid "this module is deprecated. better use filmic rgb module instead." +msgstr "" +"deze module is verouderd. gebruik in plaats daarvan de filmisch rgb module." + +#: ../src/iop/filmic.c:333 +msgid "09 EV (low-key)" +msgstr "09 EV (low-key)" + +#: ../src/iop/filmic.c:341 +msgid "10 EV (indoors)" +msgstr "10 EV (binnenshuis)" + +#: ../src/iop/filmic.c:349 +msgid "11 EV (dim outdoors)" +msgstr "11 EV (schemer buitenshuis)" + +#: ../src/iop/filmic.c:357 +msgid "12 EV (outdoors)" +msgstr "12 EV (buitenshuis)" + +#: ../src/iop/filmic.c:365 +msgid "13 EV (bright outdoors)" +msgstr "13 EV (helder buitenshuis)" + +#: ../src/iop/filmic.c:373 +msgid "14 EV (backlighting)" +msgstr "14 EV (achtergrondverlichting)" + +#: ../src/iop/filmic.c:381 +msgid "15 EV (sunset)" +msgstr "15 EV (zonsondergang)" + +#: ../src/iop/filmic.c:389 +msgid "16 EV (HDR)" +msgstr "16 EV (HDR)" + +#: ../src/iop/filmic.c:397 +msgid "18 EV (HDR++)" +msgstr "18 EV (HDR++)" + +#: ../src/iop/filmic.c:1505 +msgid "read-only graph, use the parameters below to set the nodes" +msgstr "alleen-lezen grafiek, stel knooppunten in met onderstaande parameters" + +#: ../src/iop/filmic.c:1509 +msgctxt "section" +msgid "logarithmic shaper" +msgstr "logaritmische instellingen" + +#: ../src/iop/filmic.c:1517 +msgid "" +"adjust to match the average luminance of the subject.\n" +"except in back-lighting situations, this should be around 18%." +msgstr "" +"wijzig naar de gemiddelde helderheid van het onderwerp.\n" +"uitgezonderd in tegenlichtsituaties zal de waarde ongeveer 18% zijn." + +#: ../src/iop/filmic.c:1529 ../src/iop/filmicrgb.c:4506 +msgid "" +"number of stops between middle gray and pure white.\n" +"this is a reading a lightmeter would give you on the scene.\n" +"adjust so highlights clipping is avoided" +msgstr "" +"aantal stops tussen middengrijs en zuiver wit\n" +"dit is een waarde die een lichtmeter zou geven\n" +"pas het zodanig aan dat clippen wordt voorkomen" + +#: ../src/iop/filmic.c:1542 ../src/iop/filmicrgb.c:4517 +msgid "" +"number of stops between middle gray and pure black.\n" +"this is a reading a lightmeter would give you on the scene.\n" +"increase to get more contrast.\n" +"decrease to recover more details in low-lights." +msgstr "" +"aantal stops tussen middengrijs en geheel zwart\n" +"dit is een waarde die een lichtmeter voor de afbeelding zou geven\n" +"verhoog voor meer contrast\n" +"verlaag om details in schaduwkleuren te herwinnen." + +#: ../src/iop/filmic.c:1554 +msgid "" +"increase or decrease the computed dynamic range.\n" +"useful in conjunction with \"auto tune levels\"." +msgstr "" +"vergroot of verklein het berekende dynamisch bereik\n" +"nuttig in combinatie met \"automatische niveaus\"." + +#: ../src/iop/filmic.c:1560 ../src/iop/filmicrgb.c:4531 +#: ../src/iop/profile_gamma.c:673 +msgid "auto tune levels" +msgstr "automatische niveaus" + +#: ../src/iop/filmic.c:1563 +msgid "" +"try to optimize the settings with some guessing.\n" +"this will fit the luminance range inside the histogram bounds.\n" +"works better for landscapes and evenly-lit pictures\n" +"but fails for high-keys and low-keys." +msgstr "" +"probeert instellingen te optimaliseren door te gissen\n" +"dit plaatst het helderheidsbereik binnen de histogramgrenzen\n" +"het is met name geschikt voor landschappen en gelijkmatig verlichte foto's\n" +"en werkt niet bij highkey en lowkey afbeeldingen." + +#: ../src/iop/filmic.c:1568 +msgctxt "section" +msgid "filmic S curve" +msgstr "filmisch S curve" + +#: ../src/iop/filmic.c:1575 ../src/iop/filmicrgb.c:4618 +msgid "" +"slope of the linear part of the curve\n" +"affects mostly the mid-tones" +msgstr "" +"helling van het lineaire deel van de curve\n" +"beïnvloed met name de middenkleuren" + +#. geotagging +#: ../src/iop/filmic.c:1582 ../src/iop/filmicrgb.c:4627 +#: ../src/libs/metadata_view.c:161 +msgid "latitude" +msgstr "breedtegraad" + +#: ../src/iop/filmic.c:1585 +msgid "" +"width of the linear domain in the middle of the curve.\n" +"increase to get more contrast at the extreme luminances.\n" +"this has no effect on mid-tones." +msgstr "" +"breedte van het lineaire domein in het midden van de curve.\n" +"verhoog voor meer contrast bij extreme luminanties.\n" +"het heeft geen effect op middentonen." + +#: ../src/iop/filmic.c:1592 +msgid "shadows/highlights balance" +msgstr "schaduwen en hooglichten balans" + +#: ../src/iop/filmic.c:1595 ../src/iop/filmicrgb.c:4638 +msgid "" +"slides the latitude along the slope\n" +"to give more room to shadows or highlights.\n" +"use it if you need to protect the details\n" +"at one extremity of the histogram." +msgstr "" +"schuift de breedte langs de helling\n" +"voor meer ruimte voor schaduwen en hooglichten\n" +"gebruik dit voor bescherming van de details\n" +"aan één uiteinde van het histogram." + +#: ../src/iop/filmic.c:1605 +msgid "" +"desaturates the input of the module globally.\n" +"you need to set this value below 100%\n" +"if the chrominance preservation is enabled." +msgstr "" +"verminderd globaal de verzadiging van de invoer\n" +"stel de waarde in op minder dan 100%\n" +"als kleurbehoud is ingeschakeld." + +#: ../src/iop/filmic.c:1615 +msgid "" +"desaturates the output of the module\n" +"specifically at extreme luminances.\n" +"decrease if shadows and/or highlights are over-saturated." +msgstr "" +"vermindert globaal de verzadiging van de uitvoer\n" +"met name bij extreme luminanties.\n" +"verlaag het als schaduwen en/of hooglichten oververzadigd zijn." + +#. Add export intent combo +#: ../src/iop/filmic.c:1625 ../src/libs/export.c:1339 +#: ../src/libs/print_settings.c:2473 ../src/libs/print_settings.c:2820 +#: ../src/views/darkroom.c:2365 ../src/views/lighttable.c:1182 +msgid "intent" +msgstr "intentie" + +#: ../src/iop/filmic.c:1626 +msgid "contrasted" +msgstr "gecontrasteerd" + +#. cubic spline +#: ../src/iop/filmic.c:1627 +msgid "faded" +msgstr "vaal" + +#. centripetal spline +#: ../src/iop/filmic.c:1628 ../src/iop/profile_gamma.c:635 +msgid "linear" +msgstr "lineair" + +#. monotonic spline +#: ../src/iop/filmic.c:1629 +msgid "optimized" +msgstr "geoptimaliseerd" + +#: ../src/iop/filmic.c:1631 +msgid "change this method if you see reversed contrast or faded blacks" +msgstr "wijzig de methode wanneer je een omgekeerd contrast of vaal zwart ziet" + +#. Preserve color +#: ../src/iop/filmic.c:1635 +msgid "preserve the chrominance" +msgstr "behoud chrominantie" + +#: ../src/iop/filmic.c:1637 +msgid "" +"ensure the original color are preserved.\n" +"may reinforce chromatic aberrations.\n" +"you need to manually tune the saturation when using this mode." +msgstr "" +"zorg ervoor dat de originele kleur behouden blijft\n" +"mogelijk worden chromatische aberraties versterkt\n" +"bij het gebruik van deze modus zul je handmatig de verzadiging moeten " +"afstellen." + +#: ../src/iop/filmic.c:1647 +msgctxt "section" +msgid "destination/display" +msgstr "bestemming /display" + +#: ../src/iop/filmic.c:1665 ../src/iop/filmicrgb.c:4657 +msgid "" +"luminance of output pure black, this should be 0%\n" +"except if you want a faded look" +msgstr "" +"zwart-niveau in de uitvoer, dit zou 0% moeten zijn\n" +"tenzij verlies aan details gewenst is" + +#: ../src/iop/filmic.c:1674 ../src/iop/filmicrgb.c:4664 +msgid "" +"middle gray value of the target display or color space.\n" +"you should never touch that unless you know what you are doing." +msgstr "" +"middengrijswaarde voor doelscherm of kleurruimte.\n" +"wijzig dit niet tenzij je weet waarmee je bezig bent." + +#: ../src/iop/filmic.c:1683 ../src/iop/filmicrgb.c:4671 +msgid "" +"luminance of output pure white, this should be 100%\n" +"except if you want a faded look" +msgstr "" +"wit-niveau in de uitvoer, dit zou 100% moeten zijn\n" +"tenzij verlies aan details gewenst is" + +#: ../src/iop/filmic.c:1689 +msgid "target gamma" +msgstr "gewenst gamma" + +#: ../src/iop/filmic.c:1691 +msgid "" +"power or gamma of the transfer function\n" +"of the display or color space.\n" +"you should never touch that unless you know what you are doing." +msgstr "" +"gammawaarde van de overdrachtsfunctie\n" +"van de weergave of kleurruimte\n" +"wijzig dit alleen als je zeker weet wat je doet." + +#: ../src/iop/filmicrgb.c:339 +msgid "filmic rgb" +msgstr "filmisch rgb" + +#: ../src/iop/filmicrgb.c:344 +msgid "tone mapping|curve|view transform|contrast|saturation|highlights" +msgstr "" +"tonemapping|curve|weergave transformatie|contrast|verzadiging|hooglichten" + +#: ../src/iop/filmicrgb.c:349 +msgid "" +"apply a view transform to prepare the scene-referred pipeline\n" +"for display on SDR screens and paper prints\n" +"while preventing clipping in non-destructive ways" +msgstr "" +"pas een weergavetransformatie toe om de scène-gerefereerde pijplijn voor te\n" +"bereiden voor weergave op SDR-schermen en papieren afdrukken\n" +"waarbij het clippen niet-destructief wordt voorkomen" + +#: ../src/iop/filmicrgb.c:1365 +msgid "" +"filmic highlights reconstruction failed to allocate memory, check your RAM " +"settings" +msgstr "" +"filmisch hooglicht-reconstructie kon geen geheugen toewijzen, controleer uw " +"RAM instellingen" + +#: ../src/iop/filmicrgb.c:2369 +msgid "filmic highlights reconstruction failed to allocate memory on GPU" +msgstr "filmisch hooglicht-reconstructie kon geen geheugen toewijzen aan GPU" + +#: ../src/iop/filmicrgb.c:2487 +msgid "filmic works only on RGB input" +msgstr "filmisch werkt alleen op RGB invoer" + +#: ../src/iop/filmicrgb.c:3548 +msgid "look only" +msgstr "enkel kijken" + +#: ../src/iop/filmicrgb.c:3550 +msgid "look + mapping (lin)" +msgstr "kijken + in kaart brengen (lin)" + +#: ../src/iop/filmicrgb.c:3552 +msgid "look + mapping (log)" +msgstr "kijken + in kaart brengen (log)" + +#: ../src/iop/filmicrgb.c:3554 +msgid "dynamic range mapping" +msgstr "dynamisch bereik in kaart brengen" + +#: ../src/iop/filmicrgb.c:3921 +#, c-format +msgid "(%.0f %%)" +msgstr "(%.0f %%)" + +#: ../src/iop/filmicrgb.c:3937 +#, no-c-format +msgid "% display" +msgstr "weergave" + +#: ../src/iop/filmicrgb.c:3949 +msgid "EV scene" +msgstr "EV scène" + +#: ../src/iop/filmicrgb.c:3953 +#, no-c-format +msgid "% camera" +msgstr "% camera" + +#. Page DISPLAY +#: ../src/iop/filmicrgb.c:3989 ../src/iop/filmicrgb.c:4651 +msgid "display" +msgstr "scherm" + +#. axis legend +#: ../src/iop/filmicrgb.c:3998 +msgid "(%)" +msgstr "(%)" + +#. Page SCENE +#: ../src/iop/filmicrgb.c:4007 ../src/iop/filmicrgb.c:4486 +msgid "scene" +msgstr "scene" + +#. axis legend +#: ../src/iop/filmicrgb.c:4016 +msgid "(EV)" +msgstr "(EV)" + +#. we are over the graph area +#: ../src/iop/filmicrgb.c:4428 +msgid "" +"use the parameters below to set the nodes.\n" +"the bright curve is the filmic tone mapping curve\n" +"the dark curve is the desaturation curve." +msgstr "" +"gebruik de onderstaande parameters om de knooppunten in te stellen\n" +"de heldere curve is de filmische helderheidscurve\n" +"de donkere curve is de verzadigingscurve." + +#: ../src/iop/filmicrgb.c:4434 +msgid "toggle axis labels and values display" +msgstr "schakel aslabels en waarden in/uit" + +#: ../src/iop/filmicrgb.c:4438 +msgid "" +"cycle through graph views.\n" +"left click: cycle forward.\n" +"right click: cycle backward.\n" +"double-click: reset to look view." +msgstr "" +"door grafische weergaven bladeren.\n" +"linkermuisknop: vooruit bladeren.\n" +"rechtermuisknop: achteruit bladeren.\n" +"dubbelklik: reset om te bekijken." + +#: ../src/iop/filmicrgb.c:4495 +#, no-c-format +msgid "" +"adjust to match the average luminance of the image's subject.\n" +"the value entered here will then be remapped to 18.45%.\n" +"decrease the value to increase the overall brightness." +msgstr "" +"pas aan om de gemiddelde helderheid van het afbeeldingsonderwerp te laten " +"overeenkomen\n" +"de hier ingevoerde waarde wordt dan opnieuw toegewezen aan 18,45%.\n" +"verlaag de waarde om de algehele helderheid te verhogen." + +#: ../src/iop/filmicrgb.c:4525 +msgid "" +"symmetrically increase or decrease the computed dynamic range.\n" +"useful to give a safety margin to extreme luminances." +msgstr "" +"vergroot of verklein het berekende dynamisch bereik symmetrisch.\n" +"nuttig voor een veiligheidsmarge in de extreme luminanties." + +#: ../src/iop/filmicrgb.c:4532 +msgid "" +"try to optimize the settings with some statistical assumptions.\n" +"this will fit the luminance range inside the histogram bounds.\n" +"works better for landscapes and evenly-lit pictures\n" +"but fails for high-keys, low-keys and high-ISO pictures.\n" +"this is not an artificial intelligence, but a simple guess.\n" +"ensure you understand its assumptions before using it." +msgstr "" +"probeer de instellingen te optimaliseren met enkele statistische " +"veronderstellingen.\n" +"dit past het helderheidsbereik binnen de histogram grenzen.\n" +"het werkt beter bij landschappen en gelijkmatig verlichte foto's\n" +"maar niet bij high-key, low-key en hoge-ISO afbeeldingen.\n" +"dit is geen kunstmatige intelligentie, maar een eenvoudige gok.\n" +"zorg dat u de aannames begrijpt voordat u het gebruikt." + +#. Page RECONSTRUCT +#: ../src/iop/filmicrgb.c:4541 +msgid "reconstruct" +msgstr "reconstrueer" + +#: ../src/iop/filmicrgb.c:4543 +msgctxt "section" +msgid "highlights clipping" +msgstr "hooglichten clipping" + +#: ../src/iop/filmicrgb.c:4551 +msgid "" +"set the exposure threshold upon which\n" +"clipped highlights get reconstructed.\n" +"values are relative to the scene white point.\n" +"0 EV means the threshold is the same as the scene white point.\n" +"decrease to include more areas,\n" +"increase to exclude more areas." +msgstr "" +"stel de belichtingsdrempel in waarop\n" +"uitgeknipte hoogtepunten worden gereconstrueerd.\n" +"waarden zijn relatief ten opzichte van het witpunt van de scène.\n" +"0 EV betekent dat de drempel hetzelfde is als het witpunt van de scène.\n" +"verlagen om meer gebieden op te nemen,\n" +"verhogen om meer gebieden uit te sluiten." + +#: ../src/iop/filmicrgb.c:4561 +msgid "" +"soften the transition between clipped highlights and valid pixels.\n" +"decrease to make the transition harder and sharper,\n" +"increase to make the transition softer and blurrier." +msgstr "" +"verzacht de overgang tussen afgekapte hooglichten en geldige pixels.\n" +"verlaag om de overgang harder en scherper te maken,\n" +"verhoog om de overgang zachter en vager te maken." + +#: ../src/iop/filmicrgb.c:4567 ../src/iop/filmicrgb.c:4568 +msgid "display highlight reconstruction mask" +msgstr "toon hooglichten reconstuctiemasker" + +#: ../src/iop/filmicrgb.c:4575 +msgctxt "section" +msgid "balance" +msgstr "balans" + +#: ../src/iop/filmicrgb.c:4582 +#, no-c-format +msgid "" +"decide which reconstruction strategy to favor,\n" +"inpainting a smooth color gradient\n" +"or trying to recover the textured details.\n" +"0% is an equal mix of both.\n" +"increase if at least one RGB channel is not clipped.\n" +"decrease if all RGB channels are clipped over large areas." +msgstr "" +"beslis welke herstelstrategie de voorkeur geniet:\n" +"een vloeiend kleurverloop invullen, of\n" +"proberen om structuur in de details te herstellen.\n" +"0% is een gelijke mix van beide.\n" +"verhoog als ten minste één RGB-kanaal niet is geclipt.\n" +"verlaag als alle RGB-kanalen over grote gebieden worden geclipt." + +#: ../src/iop/filmicrgb.c:4593 +#, no-c-format +msgid "" +"decide which reconstruction strategy to favor,\n" +"blooming highlights like film does\n" +"or trying to recover sharp details.\n" +"0% is an equal mix of both.\n" +"increase if you want more details.\n" +"decrease if you want more blur." +msgstr "" +"beslis welke herstelstrategie de voorkeur geniet:\n" +"vervagen van hooglichten (zoals film),\n" +"of proberen om scherpe details te herstellen.\n" +"0% is een gelijke mix van beide.\n" +"verhoog als u meer details wilt.\n" +"verminder als u meer vervaging wilt." + +#: ../src/iop/filmicrgb.c:4605 +#, no-c-format +msgid "" +"decide which reconstruction strategy to favor,\n" +"recovering monochromatic highlights\n" +"or trying to recover colorful highlights.\n" +"0% is an equal mix of both.\n" +"increase if you want more color.\n" +"decrease if you see magenta or out-of-gamut highlights." +msgstr "" +"beslis welke herstelstrategie de voorkeur geniet:\n" +"herstellen monochromatische hooglichten of\n" +"proberen om kleur in hooglichten te herstellen.\n" +"0% is een gelijke mix van beide.\n" +"verhoog als u meer kleur wilt.\n" +"verminder als u magenta hooglichten of hooglichten buiten het gamma ziet." + +#. Page LOOK +#: ../src/iop/filmicrgb.c:4613 +msgid "look" +msgstr "uiterlijk" + +#: ../src/iop/filmicrgb.c:4623 +msgid "" +"equivalent to paper grade in analog.\n" +"increase to make highlights brighter and less compressed.\n" +"decrease to mute highlights." +msgstr "" +"gelijk aan analoge papierkwaliteit.\n" +"verhogen om hooglichten helderder en minder gecomprimeerd te maken.\n" +"verlagen om hooglichten te dempen." + +#: ../src/iop/filmicrgb.c:4631 +msgid "" +"width of the linear domain in the middle of the curve,\n" +"increase to get more contrast and less desaturation at extreme luminances,\n" +"decrease otherwise. no desaturation happens in the latitude range.\n" +"this has no effect on mid-tones." +msgstr "" +"breedte van het lineaire domein in het midden van de curve,\n" +"verhoog om meer contrast en verzadiging te krijgen bij extreme luminanties,\n" +"verlaag voor een tegengesteld effect.\n" +"dit heeft geen effect op de middentonen." + +#: ../src/iop/filmicrgb.c:4646 ../src/iop/filmicrgb.c:4794 +msgid "" +"desaturates the output of the module\n" +"specifically at extreme luminances.\n" +"increase if shadows and/or highlights are under-saturated." +msgstr "" +"verlaagt de verzadiging van de uitvoer\n" +"met name bij extreme luminanties.\n" +"verhoog dit als schaduwen en/of hooglichten onderverzadigd zijn." + +#. Page OPTIONS +#: ../src/iop/filmicrgb.c:4675 +msgid "options" +msgstr "opties" + +#: ../src/iop/filmicrgb.c:4680 +msgid "" +"v3 is darktable 3.0 desaturation method, same as color balance.\n" +"v4 is a newer desaturation method, based on spectral purity of light." +msgstr "" +"v3 is darktable 3.0 desaturatiemethode, hetzelfde als kleurbalans.\n" +"v4 is een nieuwere desaturatiemethode, gebaseerd op de spectrale zuiverheid " +"van licht." + +#: ../src/iop/filmicrgb.c:4684 +msgid "" +"ensure the original colors are preserved.\n" +"may reinforce chromatic aberrations and chroma noise,\n" +"so ensure they are properly corrected elsewhere." +msgstr "" +"zorg ervoor dat de originele kleur behouden blijft.\n" +"mogelijk worden chromatische aberraties en ruis versterkt,\n" +"dus zorg ervoor dat ze elders correct worden gecorrigeerd." + +#: ../src/iop/filmicrgb.c:4693 +msgid "" +"choose the desired curvature of the filmic spline in highlights.\n" +"hard uses a high curvature resulting in more tonal compression.\n" +"soft uses a low curvature resulting in less tonal compression." +msgstr "" +"kies de gewenste kromming van de filmisch spline in hooglichten.\n" +"hard gebruikt een hoge kromming wat resulteert in meer tonale compressie.\n" +"zacht gebruikt een lage kromming, wat resulteert in minder tonale compressie." + +#: ../src/iop/filmicrgb.c:4698 +msgid "" +"choose the desired curvature of the filmic spline in shadows.\n" +"hard uses a high curvature resulting in more tonal compression.\n" +"soft uses a low curvature resulting in less tonal compression." +msgstr "" +"kies de gewenste kromming van de filmisch spline in schaduwen.\n" +"hard gebruikt een hoge kromming wat resulteert in meer tonale compressie.\n" +"Zacht gebruikt een lage kromming, wat resulteert in minder tonale compressie." + +#: ../src/iop/filmicrgb.c:4705 +#, no-c-format +msgid "" +"enable to input custom middle-gray values.\n" +"this is not recommended in general.\n" +"fix the global exposure in the exposure module instead.\n" +"disable to use standard 18.45% middle gray." +msgstr "" +"inschakelen om aangepaste middengrijswaarden in te voeren.\n" +"dit wordt in het algemeen niet aanbevolen.\n" +"wijzig in plaats daarvan de algehele belichting aan in de " +"belichtingsmodule.\n" +"uitschakelen om standaard 18.45 %% middengrijs te gebruiken." + +#: ../src/iop/filmicrgb.c:4712 +msgid "" +"enable to auto-set the look hardness depending on the scene white and black " +"points.\n" +"this keeps the middle gray on the identity line and improves fast tuning.\n" +"disable if you want a manual control." +msgstr "" +"inschakelen om de hardheid automatisch in te stellen, afhankelijk van de " +"wit- en zwartpunten van de scène.\n" +"dit houdt het middengrijs op de identiteitslijn en verbetert de snelle " +"afstemming.\n" +"uitschakelen als je een handmatige bediening wilt." + +#: ../src/iop/filmicrgb.c:4718 +msgid "" +"run extra passes of chromaticity reconstruction.\n" +"more iterations means more color propagation from neighborhood.\n" +"this will be slower but will yield more neutral highlights.\n" +"it also helps with difficult cases of magenta highlights." +msgstr "" +"voer kleurreconstructie meer dan eens uit.\n" +"meer iteraties betekent meer kleurspreiding vanuit de omgeving.\n" +"dit gaat langzamer maar levert neutralere hooglichten op\n" +"en helpt ook bij moeilijke gevallen van magenta hooglichten." + +#: ../src/iop/filmicrgb.c:4725 +msgid "" +"add statistical noise in reconstructed highlights.\n" +"this avoids highlights to look too smooth\n" +"when the picture is noisy overall,\n" +"so they blend with the rest of the picture." +msgstr "" +"statistische ruis toevoegen aan gereconstrueerde hooglichten.\n" +"dit voorkomt dat hooglichten er te glad uitzien\n" +"als het beeld overal veel ruis bevat,\n" +"zodat ze opgaan in de rest van de foto." + +#: ../src/iop/filmicrgb.c:4732 +msgid "" +"choose the statistical distribution of noise.\n" +"this is useful to match natural sensor noise pattern." +msgstr "" +"kies de statistische verdeling van ruis.\n" +"dit is handig om overeen te komen met het natuurlijke sensorruispatroon." + +#: ../src/iop/filmicrgb.c:4800 +msgid "mid-tones saturation" +msgstr "middentonen verzadiging" + +#: ../src/iop/filmicrgb.c:4801 +msgid "" +"desaturates the output of the module\n" +"specifically at medium luminances.\n" +"increase if midtones are under-saturated." +msgstr "" +"verlaagt de verzadiging van de uitvoer\n" +"met name bij gemiddelde helderheids\n" +"verhoog dit als midden tonen onderverzadigd zijn." + +#: ../src/iop/filmicrgb.c:4807 +msgid "highlights saturation mix" +msgstr "hooglichten verzadigingsmix" + +#: ../src/iop/filmicrgb.c:4808 +msgid "" +"positive values ensure saturation is kept unchanged over the whole range.\n" +"negative values bleach highlights at constant hue and luminance.\n" +"zero is an equal mix of both strategies." +msgstr "" +"positieve waarden behouden de verzadiging over het hele bereik.\n" +"negatieve waarden verminderen verzadiging in hooglichten met behoud van tint " +"en helderheid.\n" +"nul is een gelijke mix van beide strategieën." + +#: ../src/iop/finalscale.c:39 +msgctxt "modulename" +msgid "scale into final size" +msgstr "schaal naar uiteindelijk formaat" + +#: ../src/iop/flip.c:80 +msgid "rotation|flip" +msgstr "roteren/spiegelen" + +#: ../src/iop/flip.c:110 +msgid "flip or rotate image by step of 90 degrees" +msgstr "roteer of spiegel afbeelding in stappen van 90 graden" + +#: ../src/iop/flip.c:475 +msgid "no rotation" +msgstr "geen rotatie" + +#: ../src/iop/flip.c:479 ../src/iop/flip.c:622 +msgid "flip horizontally" +msgstr "spiegel horizontaal" + +#: ../src/iop/flip.c:483 ../src/iop/flip.c:626 +msgid "flip vertically" +msgstr "spiegel verticaal" + +#: ../src/iop/flip.c:487 +msgid "rotate by -90 degrees" +msgstr "roteer -90 graden" + +#: ../src/iop/flip.c:491 +msgid "rotate by 90 degrees" +msgstr "roteer 90 graden" + +#: ../src/iop/flip.c:495 +msgid "rotate by 180 degrees" +msgstr "roteer 180 graden" + +#: ../src/iop/flip.c:610 +msgid "transform" +msgstr "transformeer" + +#: ../src/iop/flip.c:614 ../src/libs/live_view.c:293 +msgid "rotate 90 degrees CCW" +msgstr "roteer kwart slag linksom" + +#: ../src/iop/flip.c:618 ../src/libs/live_view.c:294 +msgid "rotate 90 degrees CW" +msgstr "roteer kwart slag rechtsom" + +#: ../src/iop/gamma.c:44 +msgctxt "modulename" +msgid "display encoding" +msgstr "weergeven codering" + +#: ../src/iop/globaltonemap.c:100 +msgid "global tonemap" +msgstr "globale tonemap" + +#: ../src/iop/globaltonemap.c:105 +msgid "this module is deprecated. please use the filmic rgb module instead." +msgstr "" +"deze module is verouderd. gebruik in plaats daarvan de filmisch rgb module." + +#: ../src/iop/globaltonemap.c:658 ../src/libs/filters/colors.c:259 +msgid "operator" +msgstr "methode" + +#: ../src/iop/globaltonemap.c:659 +msgid "the global tonemap operator" +msgstr "methode voor global tonemap" + +#: ../src/iop/globaltonemap.c:662 +msgid "" +"the bias for tonemapper controls the linearity, the higher the more details " +"in blacks" +msgstr "" +"de bias voor tonemapper beïnvloed de lineariteit, hoe hoger hoe meer details " +"in de schaduwkleuren" + +#: ../src/iop/globaltonemap.c:666 +msgid "the target light for tonemapper specified as cd/m2" +msgstr "lichtsterkte voor tonemapper (cd/m2)" + +#: ../src/iop/graduatednd.c:67 +msgid "neutral gray ND2 (soft)" +msgstr "neutraal grijs ND2 (soft)" + +#: ../src/iop/graduatednd.c:70 +msgid "neutral gray ND4 (soft)" +msgstr "neutraal grijs ND4 (soft)" + +#: ../src/iop/graduatednd.c:73 +msgid "neutral gray ND8 (soft)" +msgstr "neutraal grijs ND8 (soft)" + +#: ../src/iop/graduatednd.c:76 +msgid "neutral gray ND2 (hard)" +msgstr "neutraal grijs ND2 (hard)" + +#: ../src/iop/graduatednd.c:80 +msgid "neutral gray ND4 (hard)" +msgstr "neutraal grijs ND4 (hard)" + +#: ../src/iop/graduatednd.c:83 +msgid "neutral gray ND8 (hard)" +msgstr "neutraal grijs ND8 (hard)" + +#: ../src/iop/graduatednd.c:87 +msgid "orange ND2 (soft)" +msgstr "oranje ND2 (soft)" + +#: ../src/iop/graduatednd.c:90 +msgid "yellow ND2 (soft)" +msgstr "geel ND2 (soft)" + +#: ../src/iop/graduatednd.c:94 +msgid "purple ND2 (soft)" +msgstr "paars ND2 (soft)" + +#: ../src/iop/graduatednd.c:98 +msgid "green ND2 (soft)" +msgstr "groen ND2 (soft)" + +#: ../src/iop/graduatednd.c:102 +msgid "red ND2 (soft)" +msgstr "rood ND2 (soft)" + +#: ../src/iop/graduatednd.c:105 +msgid "blue ND2 (soft)" +msgstr "blauw ND2 (soft)" + +#: ../src/iop/graduatednd.c:109 +msgid "brown ND4 (soft)" +msgstr "bruin ND4 (soft)" + +#: ../src/iop/graduatednd.c:140 +msgid "graduated density" +msgstr "verloopfilter" + +#: ../src/iop/graduatednd.c:145 +msgid "simulate an optical graduated neutral density filter" +msgstr "simuleer een optisch gradueel filter (grijs of kleur)" + +#: ../src/iop/graduatednd.c:1083 +msgid "the density in EV for the filter" +msgstr "dichtheid van het filter in EV" + +#: ../src/iop/graduatednd.c:1088 +#, no-c-format +msgid "" +"hardness of graduation:\n" +"0% = soft, 100% = hard" +msgstr "" +"hardheid van het verloop:\n" +"0% = zacht, 100% = hard" + +#: ../src/iop/graduatednd.c:1092 +msgid "rotation of filter -180 to 180 degrees" +msgstr "rotatie van het filter -180 tot 180 graden" + +#: ../src/iop/graduatednd.c:1105 +msgid "select the hue tone of filter" +msgstr "" +"bepaal de tint van het filter\n" +"(als verzadiging ongelijk 0%)" + +#: ../src/iop/graduatednd.c:1111 +msgid "select the saturation of filter" +msgstr "" +"kleurverzadiging van het filter\n" +"(0% is grijs ongeacht de tint)" + +#: ../src/iop/graduatednd.c:1122 +#, c-format +msgid "[%s on nodes] change line rotation" +msgstr "[%s on nodes] verander lijnrotatie" + +#: ../src/iop/graduatednd.c:1123 +#, c-format +msgid "[%s on line] move line" +msgstr "[%s on line] verander lijn" + +#: ../src/iop/graduatednd.c:1125 +#, c-format +msgid "[%s on line] change density" +msgstr "[%s on line] verander dichtheid" + +#: ../src/iop/graduatednd.c:1127 +#, c-format +msgid "[%s on line] change hardness" +msgstr "[%s on line] verander hardheid" + +#: ../src/iop/grain.c:444 +msgid "grain" +msgstr "korrel" + +#: ../src/iop/grain.c:449 +msgid "simulate silver grains from film" +msgstr "simuleer zilverkorrels uit film" + +#: ../src/iop/grain.c:600 +msgid "the grain size (~ISO of the film)" +msgstr "korrelgrootte (~ISO van de film)" + +#: ../src/iop/grain.c:604 +msgid "the strength of applied grain" +msgstr "mate waarmee de korrel wordt toegepast" + +#: ../src/iop/grain.c:608 +msgid "" +"amount of mid-tones bias from the photographic paper response modeling. the " +"greater the bias, the more pronounced the fall off of the grain in shadows " +"and highlights" +msgstr "" +"middentonen-correctie van het fotopapier. Meer correctie leidt tot meer " +"korrel in de schaduwen en hooglichten" + +#: ../src/iop/hazeremoval.c:100 +msgid "haze removal" +msgstr "nevel verwijderen" + +#: ../src/iop/hazeremoval.c:106 +msgid "dehaze|defog|smoke|smog" +msgstr "nevel verminderen | ontwaseming | rook | smog" + +#: ../src/iop/hazeremoval.c:111 +msgid "remove fog and atmospheric hazing from pictures" +msgstr "verwijder mist en atmosferische ontgroening van foto’s" + +#: ../src/iop/hazeremoval.c:204 +msgid "amount of haze reduction" +msgstr "mate van nevel vermindering" + +#: ../src/iop/hazeremoval.c:206 +msgid "distance" +msgstr "afstand" + +#: ../src/iop/hazeremoval.c:208 +msgid "limit haze removal up to a specific spatial depth" +msgstr "begrens de nevel verwijdering tot een bepaalde ruimtelijke diepte" + +#: ../src/iop/highlights.c:173 +msgid "highlight reconstruction" +msgstr "hooglichten herstellen" + +#: ../src/iop/highlights.c:178 +msgid "avoid magenta highlights and try to recover highlights colors" +msgstr "vermijd magenta hooglichten en probeer hooglichtkleuren te herstellen" + +#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:77 +msgid "reconstruction, raw" +msgstr "reconstrueer, raw" + +#: ../src/iop/highlights.c:1004 +msgid "" +"highlights: mode not available for this type of image. falling back to " +"inpaint opposed." +msgstr "" +"hooglichten: modus niet beschikbaar voor dit type afbeelding. terugvallen op " +"inpaint opposed." + +#: ../src/iop/highlights.c:1184 +msgid "highlight reconstruction method" +msgstr "methode voor hooglichten-reconstructie" + +#: ../src/iop/highlights.c:1189 +msgid "" +"manually adjust the clipping threshold mostly used against magenta " +"highlights.\n" +"you might use this for tuning 'laplacian', 'inpaint opposed' or " +"'segmentation' modes,\n" +"especially if camera white point is incorrect." +msgstr "" +"pas handmatig de clipping-drempel aan die meestal wordt gebruikt voor " +"magenta hooglichten.\n" +"Dit is te gebruiken voor fijnregeling van 'laplace', 'inpaint opposed' of " +"'segmentation' modes,\n" +"vooral als het witpunt van de camera onjuist is." + +#: ../src/iop/highlights.c:1193 +msgid "" +"visualize clipped highlights in a false color representation.\n" +"the effective clipping level also depends on the reconstruction method." +msgstr "" +"maak overbelichte hooglichten zichtbaar in een contrastkleur.\n" +"het effectieve clipping niveau hangt mede af van de reconstructie methode." + +#: ../src/iop/highlights.c:1203 +msgid "" +"combine closely related clipped segments by morphological operations.\n" +"this often leads to improved color reconstruction for tiny segments before " +"dark background." +msgstr "" +"combineer samenhangende geclipte segmenten door morfologische bewerkingen.\n" +"Dit leidt vaak tot beter kleurherstel bij kleine segmenten voor een donkere " +"achtergrond." + +#: ../src/iop/highlights.c:1206 +msgid "visualize the combined segments in a false color representation." +msgstr "maak de gecombineerde segmenten zichtbaar in een contrastkleur." + +#: ../src/iop/highlights.c:1213 +msgid "" +"select inpainting after segmentation analysis.\n" +"increase to favor candidates found in segmentation analysis, decrease for " +"opposed means inpainting." +msgstr "" +"selecteer inpainting na segmentatieanalyse.\n" +"verhoog om kandidaten uit segmentatieanalyse te bevoordelen, verlaag voor " +"meer invloed van 'inpaint opposed'." + +#: ../src/iop/highlights.c:1216 +msgid "" +"visualize segments that are considered to have a good candidate in a false " +"color representation." +msgstr "maak segmenten met goede kandidaten zichtbaar in een contrastkleur." + +#: ../src/iop/highlights.c:1225 +msgid "" +"approximate lost data in regions with all photosites clipped, the effect " +"depends on segment size and border gradients.\n" +"choose a mode tuned for segment size or the generic mode that tries to find " +"best settings for every segment.\n" +"small means areas with a diameter less than 25 pixels, large is best for " +"greater than 100.\n" +"the flat modes ignore narrow unclipped structures (like powerlines) to keep " +"highlights rebuilt and avoid gradients." +msgstr "" +"geschat gegevensverlies in gebieden waarin alles is geclipt, het effect " +"hangt af van de segmentgrootte en randgradiënten.\n" +"kies een modus die is afgestemd op de segmentgrootte of de generieke modus " +"die probeert de beste instellingen voor elk segment te vinden.\n" +"klein betekent gebieden met een diameter van minder dan 25 pixels, groot is " +"het beste voor meer dan 100.\n" +"de vlakke modi negeren smalle niet-geclipte structuren (zoals " +"hoogspanningslijnen) om hooglichten herbouwd te houden en gradiënten te " +"vermijden." + +#: ../src/iop/highlights.c:1231 +msgid "set strength of rebuilding in regions with all photosites clipped." +msgstr "" +"stel sterkte in van reconstructie in regio's waarin alle pixels geclipt zijn." + +#: ../src/iop/highlights.c:1233 +msgid "show the effect that is added to already reconstructed data." +msgstr "toon het toegepaste effect op reeds gereconstrueerde data." + +#: ../src/iop/highlights.c:1242 +msgid "" +"add noise to visually blend the reconstructed areas\n" +"into the rest of the noisy image. useful at high ISO." +msgstr "" +"voeg ruis toe om het gereconstrueerd gebied visueel te mengen\n" +"in de rest van de al bestaande ruis in de afbeelding. bruikbaar bij hoge ISO." + +#: ../src/iop/highlights.c:1246 +msgid "" +"increase if magenta highlights don't get fully corrected\n" +"each new iteration brings a performance penalty." +msgstr "" +"verhoog als magenta hooglichten niet volledig worden gecorrigeerd\n" +"elk nieuwe iteratie geeft een prestatie vermindering." + +#: ../src/iop/highlights.c:1251 +msgid "" +"increase if magenta highlights don't get fully corrected.\n" +"this may produce non-smooth boundaries between valid and clipped regions." +msgstr "" +"verhoog als magenta hooglichten niet volledig worden gecorrigeerd\n" +"dit kan voor minder gladde overgang zorgen van valide naar geclipte regio's." + +#: ../src/iop/highlights.c:1255 +msgid "" +"increase to correct larger clipped areas.\n" +"large values bring huge performance penalties" +msgstr "" +"verhogen om een groter geclipt gebied te corrigeren.\n" +"grote waarden zorgen voor prestatie verlies" + +#: ../src/iop/highlights.c:1259 +msgid "this module does not work with monochrome RAW files" +msgstr "deze module werkt alleen met niet-monochroom RAW bestanden" + +#: ../src/iop/highpass.c:72 +msgid "highpass" +msgstr "high-pass" + +#: ../src/iop/highpass.c:77 +msgid "isolate high frequencies in the image" +msgstr "isoleer hoge frequenties in de afbeelding" + +#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:107 +msgid "linear or non-linear, Lab, scene-referred" +msgstr "lineair of niet-lineair, Lab, scène-gerefereerd" + +#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:108 ../src/iop/sharpen.c:98 +msgid "frequential, Lab" +msgstr "frequent, Lab" + +#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:109 +msgid "special, Lab, scene-referred" +msgstr "speciaal, Lab, scène-gerefereerd" + +#: ../src/iop/highpass.c:378 +msgid "the sharpness of highpass filter" +msgstr "scherpte voor high-pass filter" + +#: ../src/iop/highpass.c:382 +msgid "the contrast of highpass filter" +msgstr "contrast voor high-pass filter" + +#: ../src/iop/hotpixels.c:69 +msgid "hot pixels" +msgstr "hot pixels" + +#: ../src/iop/hotpixels.c:74 +msgid "remove abnormally bright pixels by dampening them with neighbors" +msgstr "verwijder abnormaal heldere pixels door ze te dempen met zijn omgeving" + +#: ../src/iop/hotpixels.c:442 +#, c-format +msgid "fixed %d pixel" +msgid_plural "fixed %d pixels" +msgstr[0] "%d pixel hersteld" +msgstr[1] "%d pixels hersteld" + +#: ../src/iop/hotpixels.c:465 +msgid "lower threshold for hot pixel" +msgstr "lagere drempel voor hot pixels" + +#: ../src/iop/hotpixels.c:469 +msgid "strength of hot pixel correction" +msgstr "herstelkracht voor hot pixels" + +#: ../src/iop/hotpixels.c:485 +msgid "" +"hot pixel correction\n" +"only works for raw images." +msgstr "" +"hot pixel correctie\n" +"werkt alleen voor raw-bestanden." + +#: ../src/iop/invert.c:106 ../src/iop/invert.c:442 +#, c-format +msgid "`%s' color matrix not found for 4bayer image" +msgstr "`%s' kleuren matrix voor 4bayer afbeelding is niet gevonden" + +#: ../src/iop/invert.c:125 +msgid "invert" +msgstr "keer om" + +#: ../src/iop/invert.c:130 +msgid "this module is deprecated. please use the negadoctor module instead." +msgstr "" +"deze module is verouderd. gebruik in plaats daarvan de negadoctor-module." + +#: ../src/iop/invert.c:135 +msgid "invert film negatives" +msgstr "filmnegatieven omkeren" + +#: ../src/iop/invert.c:137 ../src/iop/invert.c:139 +msgid "linear, raw, display-referred" +msgstr "lineair, raw, scherm-gerefereerd" + +#. Here we could provide more for monochrome special cases. As no monochrome camera +#. has a bayer sensor we don't need g->RGB_to_CAM and g->CAM_to_RGB corrections +#: ../src/iop/invert.c:427 +msgid "brightness of film material" +msgstr "helderheid van het film materiaal" + +#: ../src/iop/invert.c:431 +msgid "color of film material" +msgstr "kleur van het film materiaal" + +#: ../src/iop/invert.c:515 ../src/iop/negadoctor.c:866 +msgid "pick color of film material from image" +msgstr "kies een kleur voor het filmmateriaal uit afbeelding" + +#: ../src/iop/invert.c:517 +msgid "select color of film material" +msgstr "selecteer kleur van het filmmateriaal" + +#: ../src/iop/lens.cc:251 +msgid "lens correction" +msgstr "lenscorrectie" + +#: ../src/iop/lens.cc:256 +msgid "vignette|chromatic aberrations|distortion" +msgstr "vignet|chromatisch afwijkingen|vervorming" + +#: ../src/iop/lens.cc:261 +msgid "correct lenses optical flaws" +msgstr "corrigeer optische gebreken van lenzen" + +#: ../src/iop/lens.cc:264 +msgid "geometric and reconstruction, RGB" +msgstr "geometrisch en reconstructie, RGB" + +#: ../src/iop/lens.cc:3773 +#, c-format +msgid "" +"maker:\t\t%s\n" +"model:\t\t%s%s\n" +"mount:\t\t%s\n" +"crop factor:\t%.1f" +msgstr "" +"fabrikant:\t\t%s\n" +"model:\t\t%s%s\n" +"vatting:\t\t%s\n" +"cropfactor:\t%.1f" + +#: ../src/iop/lens.cc:4026 +#, c-format +msgid "" +"maker:\t\t%s\n" +"model:\t\t%s\n" +"focal range:\t%s\n" +"aperture:\t%s\n" +"crop factor:\t%.1f\n" +"type:\t\t%s\n" +"mounts:\t%s" +msgstr "" +"fabrikant:\t\t%s\n" +"model:\t\t%s\n" +"brandpuntsbereik:\t%s\n" +"diafragma:\t%s\n" +"cropfactor:\t%.1f\n" +"type:\t\t%s\n" +"koppelingen:\t%s" + +#: ../src/iop/lens.cc:4072 +msgid "focal length (mm)" +msgstr "brandpuntsafstand (mm)" + +#: ../src/iop/lens.cc:4098 +msgid "f/" +msgstr "f/" + +#: ../src/iop/lens.cc:4099 +msgid "f-number (aperture)" +msgstr "f-nummer (diafragma)" + +#: ../src/iop/lens.cc:4115 +msgid "d" +msgstr "d" + +#: ../src/iop/lens.cc:4116 +msgid "distance to subject" +msgstr "afstand tot het onderwerp" + +#: ../src/iop/lens.cc:4277 +msgid "camera/lens not found" +msgstr "camera/lens niet gedetecteerd" + +#: ../src/iop/lens.cc:4278 +msgid "" +"please select your lens manually\n" +"you might also want to check if your Lensfun database is up-to-date\n" +"by running lensfun-update-data" +msgstr "" +"selecteer uw lens handmatig\n" +"Eventueel ook controleren of de Lensfun-database up-to-date is\n" +"door lensfun-update-data uit te voeren" + +#: ../src/iop/lens.cc:4423 +msgid "camera model" +msgstr "cameramodel" + +#: ../src/iop/lens.cc:4428 +msgid "find camera" +msgstr "zoek camera" + +#: ../src/iop/lens.cc:4443 +msgid "find lens" +msgstr "zoek lens" + +#. scale +#: ../src/iop/lens.cc:4477 ../src/iop/vignette.c:1055 +#: ../src/iop/watermark.c:1372 ../src/libs/export.c:1264 +msgid "scale" +msgstr "schaal" + +#: ../src/iop/lens.cc:4482 +msgid "auto scale" +msgstr "automatisch schalen" + +#: ../src/iop/lens.cc:4484 +msgid "automatic scale to available image size due to Lensfun data" +msgstr "automatisch schalen tot beschikbare afbeeldingsgrootte in Lensfun data" + +#: ../src/iop/lens.cc:4488 +msgid "correct distortions or apply them" +msgstr "corrigeer vervormingen of pas toe" + +#: ../src/iop/lens.cc:4495 +msgid "transversal chromatic aberration red" +msgstr "transversale Chromatische Aberratie rood" + +#: ../src/iop/lens.cc:4499 +msgid "transversal chromatic aberration blue" +msgstr "transversale Chromatische Aberratie blauw" + +#: ../src/iop/lens.cc:4509 +msgid "use latest algorithm" +msgstr "gebruik nieuwste algoritme" + +#: ../src/iop/lens.cc:4511 +msgid "" +"you're using an old version of the algorithm.\n" +"once enabled, you won't be able to\n" +"return back to old algorithm." +msgstr "" +"je gebruikt een oude versie van het algoritme.\n" +"Eenmaal ingeschakeld is het oude algoritme\n" +"niet meer beschikbaar." + +#: ../src/iop/lens.cc:4521 +msgid "fine-tuning" +msgstr "fijnregeling" + +#. DT_IOP_SECTION_FOR_PARAMS doesn't work in C++ so create section module manually +#: ../src/iop/lens.cc:4526 +msgid "fine-tune" +msgstr "fijnregelen" + +#: ../src/iop/lens.cc:4532 +msgid "tune the warp and chromatic aberration correction" +msgstr "aanpassen correctie van vervorming en chromatische aberratie" + +#: ../src/iop/lens.cc:4536 +msgid "tune the vignette correction" +msgstr "aanpassen vignetteringscorrectie" + +#: ../src/iop/lens.cc:4540 +msgid "tune the TCA red correction" +msgstr "aanpassen TCA rood correctie" + +#: ../src/iop/lens.cc:4544 +msgid "tune the TCA blue correction" +msgstr "aanpassen TCA blauw correctie" + +#: ../src/iop/lens.cc:4551 +msgid "image scaling" +msgstr "afbeelding schalen" + +#: ../src/iop/lens.cc:4553 +msgid "automatic scale to available image size" +msgstr "aut. schalen naar beschikbare afbeeldingsgrootte" + +#: ../src/iop/lens.cc:4561 +msgid "" +"select a correction mode either based on\n" +" a) data and algorithms provided by the Lensfun project\n" +" b) embedded metadata provided by the camera or software vendor" +msgstr "" +"selecteer een correctiemodus gebaseerd op\n" +" a) data en algoritmes uit het Lensfun project\n" +" b) metadata uit de afbeelding van de camera- of software-leverancier" + +#: ../src/iop/lens.cc:4568 +msgid "which corrections to apply" +msgstr "toe te passen correcties" + +#: ../src/iop/lens.cc:4574 +msgid "corrections done: " +msgstr "uitgevoerde correcties: " + +#: ../src/iop/lens.cc:4576 +msgid "which corrections have actually been done" +msgstr "welke correcties zijn tot nu toe uitgevoerd" + +#: ../src/iop/lens.cc:4595 +msgid "manual vignette correction" +msgstr "handmatige vignetteringscorrectie" + +#: ../src/iop/lens.cc:4599 +msgid "additional manually controlled optical vignetting correction" +msgstr "aanvullende handmatige vignetteringscorrectie" + +#: ../src/iop/lens.cc:4602 +msgid "vignette" +msgstr "vignettering" + +#: ../src/iop/lens.cc:4606 +msgid "amount of the applied optical vignetting correction" +msgstr "sterkte van de optische vignetteringscorrectie" + +#: ../src/iop/lens.cc:4608 +msgid "show applied optical vignette correction mask" +msgstr "toon masker voor optische vignetteringscorrectie" + +#: ../src/iop/lens.cc:4618 +msgid "radius of uncorrected centre" +msgstr "radius van ongecorrigeerd centrum" + +#: ../src/iop/lens.cc:4624 +msgid "steepness of the correction effect outside of radius" +msgstr "steilheid van het correctie-effect buiten de radius" + +#: ../src/iop/levels.c:112 +msgid "this module is deprecated. please use the RGB levels module instead." +msgstr "" +"deze module is verouderd. gebruik in plaats daarvan de RGB-levels module." + +#: ../src/iop/levels.c:117 ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1022 +#: ../src/iop/rgblevels.c:1056 +msgid "levels" +msgstr "niveaus" + +#: ../src/iop/levels.c:139 +msgid "adjust black, white and mid-gray points" +msgstr "pas zwart-, wit- en middengrijspunt aan" + +#: ../src/iop/levels.c:644 ../src/iop/rgblevels.c:1059 +msgid "" +"drag handles to set black, gray, and white points. operates on L channel." +msgstr "" +"sleep de handvatten en bepaal het zwart-, grijs- en witpunt, dit beïnvloedt " +"het L-kanaal." + +#: ../src/iop/levels.c:658 ../src/iop/rgblevels.c:1108 +msgid "apply auto levels" +msgstr "niveaus automatisch aanpassen" + +#: ../src/iop/levels.c:662 ../src/iop/rgblevels.c:1077 +msgid "pick black point from image" +msgstr "kies zwartpunt van afbeelding" + +#: ../src/iop/levels.c:666 ../src/iop/rgblevels.c:1085 +msgid "pick medium gray point from image" +msgstr "kies middelgrijspunt van afbeelding" + +#: ../src/iop/levels.c:670 ../src/iop/rgblevels.c:1093 +msgid "pick white point from image" +msgstr "kies witpunt van afbeelding" + +#: ../src/iop/levels.c:683 ../src/iop/rgblevels.c:968 +#: ../src/iop/rgblevels.c:1075 +msgid "black" +msgstr "zwartpunt" + +#: ../src/iop/levels.c:684 +msgid "black percentile" +msgstr "zwart percentiel" + +#: ../src/iop/levels.c:688 +msgid "gray percentile" +msgstr "grijs percentiel" + +#: ../src/iop/levels.c:691 ../src/iop/rgblevels.c:970 +#: ../src/iop/rgblevels.c:1091 +msgid "white" +msgstr "wit" + +#: ../src/iop/levels.c:692 +msgid "white percentile" +msgstr "wit percentiel" + +#: ../src/iop/liquify.c:291 +msgid "liquify" +msgstr "vervormen" + +#: ../src/iop/liquify.c:296 +msgid "distort parts of the image" +msgstr "vervorm delen van de afbeelding" + +#: ../src/iop/liquify.c:2895 +msgid "click to edit nodes" +msgstr "bewerk knooppunten door te klikken" + +#: ../src/iop/liquify.c:3599 +msgid "" +"<b>add point</b>: click and drag\n" +"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " +"ctrl+scroll" +msgstr "" +"<b>voeg punt toe</b>: klik en sleep\n" +"<b>grootte</b>: scroll - <b>sterkte</b>: shift+scroll - <b>richting</b>: " +"ctrl+scroll" + +#: ../src/iop/liquify.c:3602 +msgid "" +"<b>add line</b>: click\n" +"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " +"ctrl+scroll" +msgstr "" +"<b>voeg lijn toe</b>: klik\n" +"<b>grootte</b>: scroll - <b>sterkte</b>: shift+scroll - <b>richting</b>: " +"ctrl+scroll" + +#: ../src/iop/liquify.c:3605 +msgid "" +"<b>add curve</b>: click\n" +"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " +"ctrl+scroll" +msgstr "" +"<b>voeg kromme toe</b>: klik\n" +"<b>grootte</b>: scroll - <b>sterkte</b>: shift+scroll - <b>richting</b>: " +"ctrl+scroll" + +#: ../src/iop/liquify.c:3656 +msgid "" +"use a tool to add warps\n" +"<b>remove a warp</b>: right-click" +msgstr "" +"gebruik gereedschap om vervorming toe te voegen\n" +"<b>verwijder vervorming</b>: rechtermuisklik" + +#: ../src/iop/liquify.c:3659 +msgid "warps|nodes count:" +msgstr "aantal vervormingen|knooppunten:" + +#: ../src/iop/liquify.c:3668 +msgid "edit, add and delete nodes" +msgstr "bewerk, voeg toe en verwijder knooppunten" + +#: ../src/iop/liquify.c:3673 ../src/iop/liquify.c:3679 +#: ../src/iop/liquify.c:3685 ../src/iop/retouch.c:2465 +#: ../src/iop/retouch.c:2471 ../src/iop/retouch.c:2476 +#: ../src/iop/retouch.c:2481 ../src/iop/spots.c:885 ../src/iop/spots.c:890 +#: ../src/iop/spots.c:895 ../src/libs/masks.c:1812 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1830 ../src/libs/masks.c:1839 ../src/libs/masks.c:1848 +msgid "shapes" +msgstr "vormen" + +#: ../src/iop/liquify.c:3674 +msgid "draw curves" +msgstr "teken curves" + +#: ../src/iop/liquify.c:3674 +msgid "draw multiple curves" +msgstr "teken meerdere curves" + +#: ../src/iop/liquify.c:3680 +msgid "draw lines" +msgstr "teken lijnen" + +#: ../src/iop/liquify.c:3680 +msgid "draw multiple lines" +msgstr "teken meerdere lijnen" + +#: ../src/iop/liquify.c:3686 +msgid "draw points" +msgstr "teken punten" + +#: ../src/iop/liquify.c:3686 +msgid "draw multiple points" +msgstr "teken meerdere punten" + +#: ../src/iop/liquify.c:3692 +msgid "" +"<b>add node</b>: ctrl+click - <b>remove path</b>: right click\n" +"<b>toggle line/curve</b>: ctrl+alt+click" +msgstr "" +"<b>voeg knooppunt toe</b>: ctrl+klik - <b>verwijder knooppunt</b>: " +"rechtermuisklik\n" +"<b>wissel lijn/kromme</b>: ctrl+alt+klik" + +#: ../src/iop/liquify.c:3695 +msgid "" +"<b>move</b>: click and drag - <b>show/hide feathering controls</b>: click\n" +"<b>autosmooth, cusp, smooth, symmetrical</b>: ctrl+click - <b>remove</b>: " +"right click" +msgstr "" +"<b>verplaatsen</b>: klik en sleep - <b>toon/verberg doezelaar bediening</b>: " +"klik\n" +"<b>auto glad maken, knobbel, glad, symmetrisch</b>: ctrl+klik - " +"<b>verwijder</b>: rechtermuisklik" + +#: ../src/iop/liquify.c:3699 ../src/iop/liquify.c:3701 +msgid "<b>shape of path</b>: drag" +msgstr "<b>vorm</b>: slepen" + +#: ../src/iop/liquify.c:3703 +msgid "<b>radius</b>: drag" +msgstr "<b>straal</b>: slepen" + +#: ../src/iop/liquify.c:3705 +msgid "<b>hardness (center)</b>: drag" +msgstr "<b>hardheid (centrum)</b>: slepen" + +#: ../src/iop/liquify.c:3707 +msgid "<b>hardness (feather)</b>: drag" +msgstr "<b>hardheid (doezelaar)</b>: slepen" + +#: ../src/iop/liquify.c:3709 +msgid "" +"<b>strength</b>: drag\n" +"<b>linear, grow, and shrink</b>: ctrl+click" +msgstr "" +"<b>sterkte</b>: slepen\n" +"<b>lineair, groei, en krimp</b>: ctrl+click" + +#: ../src/iop/lowlight.c:86 +msgid "lowlight vision" +msgstr "schemer-zicht" + +#: ../src/iop/lowlight.c:91 +msgid "simulate human night vision" +msgstr "simuleer menselijk nachtzicht" + +#: ../src/iop/lowlight.c:94 +msgid "linear, XYZ" +msgstr "lineair, XYZ" + +#: ../src/iop/lowlight.c:338 +msgid "indoor bright" +msgstr "binnenshuis helder" + +#: ../src/iop/lowlight.c:356 +msgid "indoor dim" +msgstr "binnenshuis gedimd" + +#: ../src/iop/lowlight.c:374 +msgid "indoor dark" +msgstr "binnenshuis donker" + +#: ../src/iop/lowlight.c:392 +msgid "twilight" +msgstr "schemering" + +#: ../src/iop/lowlight.c:410 +msgid "night street lit" +msgstr "straat bij nacht - verlicht" + +#: ../src/iop/lowlight.c:428 +msgid "night street" +msgstr "straat bij nacht - gemiddeld" + +#: ../src/iop/lowlight.c:446 +msgid "night street dark" +msgstr "straat bij nacht - donker" + +#: ../src/iop/lowlight.c:465 +msgid "night" +msgstr "nacht" + +#: ../src/iop/lowlight.c:639 +msgid "dark" +msgstr "donker" + +#: ../src/iop/lowlight.c:647 +msgid "bright" +msgstr "helder" + +#: ../src/iop/lowlight.c:656 +msgid "day vision" +msgstr "dagzicht" + +#: ../src/iop/lowlight.c:661 +msgid "night vision" +msgstr "nachtzicht" + +#: ../src/iop/lowlight.c:833 +msgid "blueness in shadows" +msgstr "blauwige schaduwen" + +#: ../src/iop/lowpass.c:100 +msgid "lowpass" +msgstr "laagdoorlaat" + +#: ../src/iop/lowpass.c:105 +msgid "isolate low frequencies in the image" +msgstr "isoleer lage frequenties in de afbeelding" + +#: ../src/iop/lowpass.c:578 +msgid "local contrast mask" +msgstr "masker lokaal contrast" + +#: ../src/iop/lowpass.c:603 +msgid "radius of gaussian/bilateral blur" +msgstr "radius voor Gauss/bilateraal verdoezelen" + +#: ../src/iop/lowpass.c:604 +msgid "contrast of lowpass filter" +msgstr "contrast voor lowpass filter" + +#: ../src/iop/lowpass.c:605 +msgid "brightness adjustment of lowpass filter" +msgstr "aanpassen helderheid voor lowpass filter" + +#: ../src/iop/lowpass.c:606 +msgid "color saturation of lowpass filter" +msgstr "kleurverzadiging voor lowpass filter" + +#: ../src/iop/lowpass.c:607 +msgid "which filter to use for blurring" +msgstr "bepaal filter voor verdoezelen" + +#: ../src/iop/lut3d.c:136 +msgid "LUT 3D" +msgstr "LUT 3D" + +#: ../src/iop/lut3d.c:141 +msgid "perform color space corrections and apply look" +msgstr "voer kleurruimtecorrecties uit en pas look toe" + +#: ../src/iop/lut3d.c:144 +msgid "defined by profile, RGB" +msgstr "gedefinieerd door profiel, RGB" + +#: ../src/iop/lut3d.c:486 +msgid "error allocating buffer for gmz LUT" +msgstr "fout bij het toewijzen van buffer voor gmz LUT" + +#: ../src/iop/lut3d.c:512 +#, c-format +msgid "invalid png file %s" +msgstr "ongeldig png file %s" + +#: ../src/iop/lut3d.c:520 +#, c-format +msgid "png bit depth %d is not supported" +msgstr "png bit-diepte %d niet ondersteund" + +#: ../src/iop/lut3d.c:534 ../src/iop/lut3d.c:544 +#, c-format +msgid "invalid level in png file %d %d" +msgstr "ongeldig niveau in png bestand %d %d" + +#: ../src/iop/lut3d.c:539 +msgid "this darktable build is not compatible with compressed CLUT" +msgstr "deze darktable build is niet compatibel met gecomprimeerde clut" + +#: ../src/iop/lut3d.c:556 ../src/iop/lut3d.c:808 +#, c-format +msgid "error - LUT 3D size %d exceeds the maximum supported" +msgstr "fout - LUT 3D grootte %d is groter dan het maximum" + +#: ../src/iop/lut3d.c:568 +msgid "error allocating buffer for png LUT" +msgstr "fout bij het toewijzen van buffer voor png LUT" + +#: ../src/iop/lut3d.c:576 +#, c-format +msgid "error - could not read png image %s" +msgstr "fout - inlezen mislukt voor png afbeelding %s" + +#: ../src/iop/lut3d.c:586 +msgid "error - allocating buffer for png LUT" +msgstr "fout bij buffer toewijzing voor png LUT" + +#: ../src/iop/lut3d.c:761 +#, c-format +msgid "error - invalid cube file: %s" +msgstr "fout - ongeldig cube bestand: %s" + +#: ../src/iop/lut3d.c:775 +msgid "DOMAIN MIN other than 0 is not supported" +msgstr "DOMAIN MIN ongelijk 0 niet ondersteund" + +#: ../src/iop/lut3d.c:787 +msgid "DOMAIN MAX other than 1 is not supported" +msgstr "DOMAIN MAX ongelijk 1 niet ondersteund" + +#: ../src/iop/lut3d.c:797 +msgid "1D cube LUT is not supported" +msgstr "1D cube LUT niet ondersteund" + +#: ../src/iop/lut3d.c:819 +msgid "error - allocating buffer for cube LUT" +msgstr "fout - buffer toewijzing voor cube LUT" + +#: ../src/iop/lut3d.c:830 +msgid "error - cube LUT size is not defined" +msgstr "fout - cube LUT grootte is niet gedefinieerd" + +#: ../src/iop/lut3d.c:841 +#, c-format +msgid "error - cube LUT invalid number line %d" +msgstr "fout - cube LUT incorrecte regelnummer %d" + +#: ../src/iop/lut3d.c:857 +#, c-format +msgid "error - cube LUT lines number %d is not correct, should be %d" +msgstr "fout - cube LUT regelnummer %d is niet correct, moet zijn %d" + +#: ../src/iop/lut3d.c:867 +#, c-format +msgid "warning - cube LUT has %d values out of range [0,1]" +msgstr "waarschuwing - cube LUT heeft %d waarden buiten bereik [0,1]" + +#: ../src/iop/lut3d.c:892 +#, c-format +msgid "error - invalid 3dl file: %s" +msgstr "fout - ongeldig 3dl bestand: %s" + +#: ../src/iop/lut3d.c:913 +#, c-format +msgid "error - the maximum shaper LUT value %d is too low" +msgstr "fout - de maximale vormer LUT waarde %d is te laag" + +#: ../src/iop/lut3d.c:924 +msgid "error - allocating buffer for 3dl LUT" +msgstr "fout - buffer toewijzing voor 3dl LUT" + +#: ../src/iop/lut3d.c:937 +msgid "error - 3dl LUT size is not defined" +msgstr "fout - 3dl LUT grootte niet gedefinieerd" + +#: ../src/iop/lut3d.c:965 +msgid "error - 3dl LUT lines number is not correct" +msgstr "fout - 3dl LUT regelnummer onjuist" + +#: ../src/iop/lut3d.c:981 +msgid "error - the maximum LUT value does not match any valid bit depth" +msgstr "" +"fout - de maximale LUT-waarde komt niet overeen met een geldige bitdiepte" + +#: ../src/iop/lut3d.c:1553 +msgid "LUT root folder not defined" +msgstr "Lut hoofdmap niet gedefinieerd" + +#: ../src/iop/lut3d.c:1559 +msgid "select LUT file" +msgstr "selecteer LUT-bestand" + +#: ../src/iop/lut3d.c:1560 +msgid "_select" +msgstr "_selecteren" + +#: ../src/iop/lut3d.c:1580 +msgid "hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" +msgstr "hald CLUT (png), 3D LUT (cube of 3DL) of gmic gecomprimeerde LUT (gmz)" + +#: ../src/iop/lut3d.c:1582 +msgid "hald CLUT (png) or 3D LUT (cube or 3dl)" +msgstr "hald CLUT (png) of 3D LUT (cube or 3DL)" + +#: ../src/iop/lut3d.c:1606 +msgid "select file outside LUT root folder is not allowed" +msgstr "bestandsselectie buiten de Lut hoofdmap is niet toegestaan" + +#: ../src/iop/lut3d.c:1677 +msgid "" +"select a png (haldclut), a cube, a 3dl or a gmz (compressed LUT) file " +"CAUTION: 3D LUT folder must be set in preferences/processing before choosing " +"the LUT file" +msgstr "" +"selecteer een png (haldclut), een kubus, een 3dl of een gmz (gecomprimeerde " +"LUT) bestand LET OP: 3D LUT map moet worden ingesteld in voorkeuren/" +"verwerking voordat LUT-bestand gekozen wordt" + +#: ../src/iop/lut3d.c:1681 +msgid "" +"select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be " +"set in preferences/processing before choosing the LUT file" +msgstr "" +"selecteer een png (haldclut), een cube of een 3DL-bestand. NB. stel de 3D " +"LUT-folder in voorkeuren/verwerking in voordat het LUT-bestand wordt gekozen" + +#: ../src/iop/lut3d.c:1693 +msgid "" +"the file path (relative to LUT folder) is saved with image along with the " +"LUT data if it's a compressed LUT (gmz)" +msgstr "" +"het bestandspad (relatief ten opzichte van de LUT-map) wordt samen met de " +"afbeelding en LUT-gegevens opgeslagen als het een gecomprimeerde LUT (gmz) is" + +#: ../src/iop/lut3d.c:1696 +msgid "" +"the file path (relative to LUT folder) is saved with image (and not the LUT " +"data themselves)" +msgstr "" +"het bestandspad (relatief ten opzichte van de LUT-map) wordt opgeslagen met " +"de afbeelding (en niet de LUT-gegevens zelf)" + +#: ../src/iop/lut3d.c:1705 +msgid "enter LUT name" +msgstr "voer LUT naam in" + +#: ../src/iop/lut3d.c:1726 +msgid "select the LUT" +msgstr "kies LUT" + +#: ../src/iop/lut3d.c:1739 +msgid "select the color space in which the LUT has to be applied" +msgstr "selecteer de kleurruimte waarin de LUT moet worden toegepast" + +#: ../src/iop/lut3d.c:1741 +msgid "interpolation" +msgstr "interpolatie" + +#: ../src/iop/lut3d.c:1742 +msgid "select the interpolation method" +msgstr "selecteer interpolatiemethode" + +#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:63 +msgid "mask manager" +msgstr "masker-manager" + +#: ../src/iop/monochrome.c:99 +msgid "quickly convert an image to black & white using a variable color filter" +msgstr "" +"converteer een afbeelding snel naar zwart-wit met behulp van een variabel " +"kleurenfilter" + +#: ../src/iop/monochrome.c:153 +msgid "red filter" +msgstr "rood filter" + +#: ../src/iop/monochrome.c:568 +msgid "drag and scroll mouse wheel to adjust the virtual color filter" +msgstr "" +"sleep en scrhuif met het muiswiel om het virtuele kleurenfilter aan te passen" + +#: ../src/iop/monochrome.c:584 +msgid "how much to keep highlights" +msgstr "hoeveelheid te behouden hooglichten" + +#: ../src/iop/negadoctor.c:135 +msgid "negadoctor" +msgstr "negatieven assistent" + +#: ../src/iop/negadoctor.c:140 +msgid "film|invert|negative|scan" +msgstr "film|omkeren|negatief|scan" + +#: ../src/iop/negadoctor.c:145 +msgid "invert film negative scans and simulate printing on paper" +msgstr "keer scans van filmnegatieven om en simuleer afdrukken op papier" + +#: ../src/iop/negadoctor.c:483 +msgid "D min" +msgstr "D min" + +#: ../src/iop/negadoctor.c:489 ../src/iop/negadoctor.c:875 +msgid "D min red component" +msgstr "D min rood component" + +#. Page FILM PROPERTIES +#: ../src/iop/negadoctor.c:851 +msgid "film properties" +msgstr "film kenmerken" + +#. Dmin +#: ../src/iop/negadoctor.c:855 +msgctxt "section" +msgid "color of the film base" +msgstr "filmbasis kleur" + +#: ../src/iop/negadoctor.c:861 +msgid "select color of film material from a swatch" +msgstr "selecteer kleur van het filmmateriaal vanuit staal" + +#: ../src/iop/negadoctor.c:867 +msgid "film material" +msgstr "film materiaal" + +#: ../src/iop/negadoctor.c:876 ../src/iop/negadoctor.c:886 +#: ../src/iop/negadoctor.c:896 +msgid "" +"adjust the color and shade of the film transparent base.\n" +"this value depends on the film material, \n" +"the chemical fog produced while developing the film,\n" +"and the scanner white balance." +msgstr "" +"pas de kleur en tint van de transparante filmbasis aan.\n" +"deze waarde is afhankelijk van het filmmateriaal,\n" +"de chemische mist geproduceerd tijdens het ontwikkelen van de film,\n" +"en de witbalans van de scanner." + +#: ../src/iop/negadoctor.c:885 +msgid "D min green component" +msgstr "D min groen component" + +#: ../src/iop/negadoctor.c:895 +msgid "D min blue component" +msgstr "D min blauwe component" + +#. D max and scanner bias +#: ../src/iop/negadoctor.c:903 +msgctxt "section" +msgid "dynamic range of the film" +msgstr "dynamisch bereik van de film" + +#: ../src/iop/negadoctor.c:907 +msgid "" +"maximum density of the film, corresponding to white after inversion.\n" +"this value depends on the film specifications, the developing process,\n" +"the dynamic range of the scene and the scanner exposure settings." +msgstr "" +"maximale dichtheid van de film, overeenkomend met wit na inversie\n" +"deze waarde is afhankelijk van de filmspecificaties, het ontwikkelproces,\n" +"het dynamische bereik van de scène en de belichtingsinstellingen van de " +"scanner." + +#: ../src/iop/negadoctor.c:911 +msgctxt "section" +msgid "scanner exposure settings" +msgstr "scanner belichtingsinstellingen" + +#: ../src/iop/negadoctor.c:915 +msgid "" +"correct the exposure of the scanner, for all RGB channels,\n" +"before the inversion, so blacks are neither clipped or too pale." +msgstr "" +"corrigeer de belichting van de scanner voor alle RGB-kanalen,\n" +"vóór de inversie, dus zwarten zijn niet geclipped of te bleek." + +#. WB shadows +#: ../src/iop/negadoctor.c:922 +msgctxt "section" +msgid "shadows color cast" +msgstr "schaduwen kleurzweem" + +#: ../src/iop/negadoctor.c:928 +msgid "select color of shadows from a swatch" +msgstr "selecteer kleur voor schaduwen vanuit staal" + +#: ../src/iop/negadoctor.c:933 +msgid "pick shadows color from image" +msgstr "neem schaduwkleuren uit afbeelding" + +#: ../src/iop/negadoctor.c:939 +msgid "shadows red offset" +msgstr "rode afstand schaduwen" + +#: ../src/iop/negadoctor.c:940 ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:954 +msgid "" +"correct the color cast in shadows so blacks are\n" +"truly achromatic. Setting this value before\n" +"the highlights illuminant white balance will help\n" +"recovering the global white balance in difficult cases." +msgstr "" +"corrigeer de kleurzweem in schaduwen zodat zwart\n" +"echt achromatisch zijn, deze waarde eerder instellen\n" +"dan de hooglichten lichtgevende witbalans zal helpen\n" +"de moeilijke witbalans in moeilijke gevallen herstellen." + +#: ../src/iop/negadoctor.c:946 +msgid "shadows green offset" +msgstr "groene afstand schaduwen" + +#: ../src/iop/negadoctor.c:953 +msgid "shadows blue offset" +msgstr "blauwe afstand schaduwen" + +#. WB highlights +#: ../src/iop/negadoctor.c:960 +msgctxt "section" +msgid "highlights white balance" +msgstr "hooglichten witbalans" + +#: ../src/iop/negadoctor.c:966 +msgid "select color of illuminant from a swatch" +msgstr "selecteer kleur van lichtbron vanuit staal" + +#: ../src/iop/negadoctor.c:971 +msgid "pick illuminant color from image" +msgstr "neem lichtgevende kleur van afbeelding" + +#: ../src/iop/negadoctor.c:977 +msgid "illuminant red gain" +msgstr "lichtgevende rode versterking" + +#: ../src/iop/negadoctor.c:978 ../src/iop/negadoctor.c:985 +#: ../src/iop/negadoctor.c:992 +msgid "" +"correct the color of the illuminant so whites are\n" +"truly achromatic. Setting this value after\n" +"the shadows color cast will help\n" +"recovering the global white balance in difficult cases." +msgstr "" +"corrigeer de kleur van de lichtbron zodat wit\n" +"echt achromatisch is. Deze waarde instellen na\n" +"de kleurzweem van de schaduwen; helpt de \n" +"algemene witbalans in moeilijke gevallen herstellen." + +#: ../src/iop/negadoctor.c:984 +msgid "illuminant green gain" +msgstr "lichtgevende groene versterking" + +#: ../src/iop/negadoctor.c:991 +msgid "illuminant blue gain" +msgstr "lichtgevende blauwe versterking" + +#. Page PRINT PROPERTIES +#: ../src/iop/negadoctor.c:998 +msgid "print properties" +msgstr "afdruk kenmerken" + +#. print corrections +#: ../src/iop/negadoctor.c:1001 +msgctxt "section" +msgid "virtual paper properties" +msgstr "virtuele papier eigenschappen" + +#: ../src/iop/negadoctor.c:1007 +msgid "" +"correct the density of black after the inversion,\n" +"to adjust the global contrast while avoiding clipping shadows." +msgstr "" +"corrigeer de dichtheid van zwart na de inversie,\n" +"om het globale contrast aan te passen en tegelijkertijd schaduwen te " +"vermijden." + +#: ../src/iop/negadoctor.c:1012 +msgid "" +"select the grade of the virtual paper, which is actually\n" +"equivalent to applying a gamma. it compensates the film D max\n" +"and recovers the contrast. use a high grade for high D max." +msgstr "" +"selecteer de kwaliteit van het virtuele papier, dat is eigenlijk\n" +"gelijk aan het toepassen van een gamma, het compenseert de film D max\n" +"en herstelt het contrast, gebruik een hoge kwaliteit voor hoge D max." + +#: ../src/iop/negadoctor.c:1020 +msgid "" +"gradually compress specular highlights past this value\n" +"to avoid clipping while pushing the exposure for mid-tones.\n" +"this somewhat reproduces the behavior of matte paper." +msgstr "" +"comprimeer spiegelende hooglichten geleidelijk voorbij deze waarde\n" +"om clippen te voorkomen terwijl je de belichting verhoogt voor middentonen\n" +"dit reproduceert enigszins het gedrag van mat papier." + +#: ../src/iop/negadoctor.c:1024 +msgctxt "section" +msgid "virtual print emulation" +msgstr "virtuele afdruk emulatie" + +#: ../src/iop/negadoctor.c:1031 +msgid "" +"correct the printing exposure after inversion to adjust\n" +"the global contrast and avoid clipping highlights." +msgstr "" +"corrigeer de afdrukbelichting na inversie voor aanpassing\n" +"het globale contrast en vermijd clipping highlights." + +#: ../src/iop/negadoctor.c:1039 +msgid "toggle on or off the color controls" +msgstr "schakel de kleurregelaars in of uit" + +#: ../src/iop/nlmeans.c:78 +msgid "astrophoto denoise" +msgstr "ontruis astrofoto" + +#: ../src/iop/nlmeans.c:83 +msgid "denoise (non-local means)" +msgstr "ruisreductie (nl means)" + +#: ../src/iop/nlmeans.c:88 +msgid "apply a poisson noise removal best suited for astrophotography" +msgstr "pas een Poisson ruisreductie toe geschikt voor astrofotografie" + +#: ../src/iop/nlmeans.c:462 +msgid "radius of the patches to match" +msgstr "te evenaren radius van de patronen" + +#: ../src/iop/nlmeans.c:470 +msgid "how much to smooth brightness" +msgstr "de mate van afvlakking voor helderheid" + +#: ../src/iop/nlmeans.c:473 +msgid "how much to smooth colors" +msgstr "de mate van afvlakking voor kleuren" + +#. * let's fill the encapsulating widgets +#. preview mode +#. color scheme +#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2258 +#: ../src/views/darkroom.c:2276 ../src/views/darkroom.c:2283 +#: ../src/views/darkroom.c:2293 ../src/views/darkroom.c:2310 +msgid "overexposed" +msgstr "overbelichting" + +#: ../src/iop/overexposed.c:123 ../src/iop/overexposed.c:352 +msgid "module overexposed failed in buffer allocation" +msgstr "module overbelicht mislukte in buffertoewijzing" + +#: ../src/iop/overexposed.c:149 ../src/iop/overexposed.c:362 +msgid "module overexposed failed in color conversion" +msgstr "module overbelicht mislukte in kleurconversie" + +#: ../src/iop/primaries.c:74 +msgid "rgb primaries" +msgstr "rgb basiskleuren" + +#: ../src/iop/primaries.c:79 +msgid "adjustment of the RGB color primaries for color grading" +msgstr "bijstellen RGB basiskleuren voor kleurgradatie" + +#: ../src/iop/primaries.c:395 +msgid "shift red towards yellow or magenta" +msgstr "verschuif rood naar geel of magenta" + +#: ../src/iop/primaries.c:396 +msgid "red primary purity" +msgstr "rood basis zuiverheid" + +#: ../src/iop/primaries.c:397 +msgid "shift green towards cyan or yellow" +msgstr "verschuif groen naar cyaan of geel" + +#: ../src/iop/primaries.c:398 +msgid "green primary purity" +msgstr "groen basis zuiverheid" + +#: ../src/iop/primaries.c:399 +msgid "shift blue towards magenta or cyan" +msgstr "verschuif blauw naar magenta of cyaan" + +#: ../src/iop/primaries.c:400 +msgid "blue primary purity" +msgstr "blauw basis zuiverheid" + +#: ../src/iop/profile_gamma.c:96 +msgid "unbreak input profile" +msgstr "verbreek ingaand profiel" + +#: ../src/iop/profile_gamma.c:101 +msgid "correct input color profiles meant to be applied on non-linear RGB" +msgstr "juiste ingaande kleurprofielen om toe te passen op niet-lineaire RGB" + +#: ../src/iop/profile_gamma.c:138 +msgid "16 EV dynamic range (generic)" +msgstr "16 EV dynamisch bereik (generiek)" + +#: ../src/iop/profile_gamma.c:144 +msgid "14 EV dynamic range (generic)" +msgstr "14 EV dynamisch bereik (generiek)" + +#: ../src/iop/profile_gamma.c:150 +msgid "12 EV dynamic range (generic)" +msgstr "12 EV dynamisch bereik (generiek)" + +#: ../src/iop/profile_gamma.c:156 +msgid "10 EV dynamic range (generic)" +msgstr "10 EV dynamisch bereik (generiek)" + +#: ../src/iop/profile_gamma.c:162 +msgid "08 EV dynamic range (generic)" +msgstr "08 EV dynamisch bereik (generiek)" + +#: ../src/iop/profile_gamma.c:637 +msgid "linear part" +msgstr "lineair deel" + +#: ../src/iop/profile_gamma.c:641 +msgid "gamma exponential factor" +msgstr "gamma factor" + +#: ../src/iop/profile_gamma.c:652 +msgid "adjust to match the average luma of the subject" +msgstr "pas aan naar de gemiddelde helderheid van het onderwerp" + +#: ../src/iop/profile_gamma.c:658 +msgid "" +"number of stops between middle gray and pure black\n" +"this is a reading a light meter would give you on the scene" +msgstr "" +"aantal stops tussen middengrijs en geheel zwart\n" +"dit is een meting die een posimeter zou geven" + +#: ../src/iop/profile_gamma.c:664 +msgid "" +"number of stops between pure black and pure white\n" +"this is a reading a light meter would give you on the scene" +msgstr "" +"aantal stops tussen geheel zwart en zuiver wit\n" +"dit is een meting die een posimeter zou geven" + +#: ../src/iop/profile_gamma.c:666 +msgctxt "section" +msgid "optimize automatically" +msgstr "automatisch optimaliseren" + +#: ../src/iop/profile_gamma.c:670 +msgid "" +"increase or decrease the computed dynamic range\n" +"this is useful when noise distorts the measurement" +msgstr "" +"vergroot of verklein het berekende dynamisch bereik\n" +"dit is nuttig als de metingen door ruis worden verstoord" + +#: ../src/iop/profile_gamma.c:674 +msgid "make an optimization with some guessing" +msgstr "maak door wat gissingen een optimalisatie" + +#: ../src/iop/profile_gamma.c:683 +msgid "tone mapping method" +msgstr "methode toonmapping" + +#: ../src/iop/rawdenoise.c:138 +msgid "raw denoise" +msgstr "ruisreductie raw" + +#: ../src/iop/rawdenoise.c:143 +msgid "denoise the raw picture early in the pipeline" +msgstr "ontruis het raw beeld vroeg in de pijplijn" + +#: ../src/iop/rawdenoise.c:955 +msgid "" +"raw denoising\n" +"only works for raw images." +msgstr "" +"raw ruisreductie\n" +"werkt alleen voor raw bestanden." + +#. * let's fill the encapsulating widgets +#. mode of operation +#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2226 ../src/views/darkroom.c:2232 +#: ../src/views/darkroom.c:2245 +msgid "raw overexposed" +msgstr "raw overbelicht" + +#: ../src/iop/rawprepare.c:99 +msgctxt "modulename" +msgid "raw black/white point" +msgstr "raw zwart/witpunt" + +#: ../src/iop/rawprepare.c:172 +msgid "" +"sets technical specificities of the raw sensor.\n" +"touch with great care!" +msgstr "" +"stelt technische specificiteiten van de RAW-sensor in.\n" +"wees voorzichtig om dit te wijzigen!" + +#: ../src/iop/rawprepare.c:184 +msgid "passthrough" +msgstr "doorvoer" + +#: ../src/iop/rawprepare.c:663 +msgid "invalid crop parameters" +msgstr "ongeldige crop parameters" + +#: ../src/iop/rawprepare.c:664 +msgid "" +"please reset to defaults, update your preset or set to something correct" +msgstr "" +"herstel de standaard waarde, pas de voorkeuren aan of corrigeer de waarde" + +#: ../src/iop/rawprepare.c:930 +msgid "black level 0" +msgstr "zwartniveau 0" + +#: ../src/iop/rawprepare.c:931 +msgid "black level 1" +msgstr "zwartniveau 1" + +#: ../src/iop/rawprepare.c:932 +msgid "black level 2" +msgstr "zwartniveau 2" + +#: ../src/iop/rawprepare.c:933 +msgid "black level 3" +msgstr "zwartniveau 3" + +#: ../src/iop/rawprepare.c:960 +msgid "raw flat field correction to compensate for lens shading" +msgstr "raw platte veld correctie tegen lensschaduw" + +#: ../src/iop/rawprepare.c:965 +msgctxt "section" +msgid "crop" +msgstr "uitsnijden" + +#: ../src/iop/rawprepare.c:968 +msgid "crop left border" +msgstr "afsnijden links" + +#: ../src/iop/rawprepare.c:972 +msgid "crop top border" +msgstr "afsnijden boven" + +#: ../src/iop/rawprepare.c:976 +msgid "crop right border" +msgstr "afsnijden rechts" + +#: ../src/iop/rawprepare.c:980 +msgid "crop bottom border" +msgstr "afsnijden onder" + +#: ../src/iop/rawprepare.c:989 +msgid "" +"raw black/white point correction\n" +"only works for the sensors that need it." +msgstr "" +"raw zwart-/witpuntcorrectie\n" +"alleen voor sensoren die dat nodig hebben." + +#: ../src/iop/relight.c:53 +msgid "fill-light 0.25EV with 4 zones" +msgstr "lichtopvulling 0,25EV met 4 zones" + +#: ../src/iop/relight.c:57 +msgid "fill-shadow -0.25EV with 4 zones" +msgstr "schaduwopvulling -0,25EV met vier zones" + +#: ../src/iop/relight.c:86 +msgid "fill light" +msgstr "lichtopvulling" + +#: ../src/iop/relight.c:96 ../src/iop/zonesystem.c:122 +msgid "" +"this module is deprecated. please use the tone equalizer module instead." +msgstr "" +"deze module is verouderd. gebruik in plaats daarvan de toon-equalizermodule." + +#: ../src/iop/relight.c:259 +msgid "the fill-light in EV" +msgstr "lichtopvulling in EV" + +#: ../src/iop/relight.c:268 +msgid "" +"select the center of fill-light\n" +"ctrl+click to select an area" +msgstr "" +"selecteer fill-light centrum\n" +"selecteer gebied met ctrl+klik" + +#: ../src/iop/relight.c:272 +msgid "toggle tool for picking median lightness in image" +msgstr "" +"schakel gereedschap voor vaststellen van de mediaanhelderheid in een " +"afbeelding" + +#: ../src/iop/relight.c:276 +msgid "width of fill-light area defined in zones" +msgstr "de omvang van het gebied voor lichtopvulling uitgedrukt in zones" + +#: ../src/iop/retouch.c:197 +msgid "retouch" +msgstr "retoucheren" + +#: ../src/iop/retouch.c:202 +msgid "split-frequency|healing|cloning|stamp" +msgstr "split-frequentie|herstellen|klonen|stempel" + +#: ../src/iop/retouch.c:208 +msgid "remove and clone spots, perform split-frequency skin editing" +msgstr "" +"verwijder en kloon vlekken, voer gesplitste frequentie huidbewerking uit" + +#: ../src/iop/retouch.c:211 +msgid "geometric and frequential, RGB" +msgstr "geometrisch en frequent, RGB" + +#: ../src/iop/retouch.c:1689 +msgid "cannot display scales when the blending mask is displayed" +msgstr "" +"weergave van schalen is onmogelijk wanneer een mengmasker wordt getoond" + +#: ../src/iop/retouch.c:2045 ../src/iop/retouch.c:2047 +#: ../src/iop/retouch.c:2049 ../src/iop/retouch.c:2051 +#, c-format +msgid "default tool changed to %s" +msgstr "standaardtool gewijzigd in %s" + +#: ../src/iop/retouch.c:2045 +msgid "cloning" +msgstr "klonen" + +#: ../src/iop/retouch.c:2047 +msgid "healing" +msgstr "herstellen" + +#: ../src/iop/retouch.c:2448 +msgid "shapes:" +msgstr "vormen:" + +#: ../src/iop/retouch.c:2454 +msgid "" +"to add a shape select an algorithm and a shape type and click on the image.\n" +"shapes are added to the current scale" +msgstr "" +"om een vorm toe te voegen selecteer een algoritme en vorm en klik dan op de " +"afbeelding\n" +"vormen worden aan de huidige schaal toegevoegd" + +#: ../src/iop/retouch.c:2458 ../src/iop/retouch.c:2591 +#: ../src/iop/retouch.c:2597 ../src/iop/retouch.c:2606 +#: ../src/iop/retouch.c:2611 ../src/iop/retouch.c:2619 +#: ../src/iop/retouch.c:2664 +msgid "editing" +msgstr "bewerken" + +#: ../src/iop/retouch.c:2459 +msgid "show and edit shapes on the current scale" +msgstr "toon en bewerk vormen in huidige schaal" + +#: ../src/iop/retouch.c:2460 +msgid "show and edit shapes in restricted mode" +msgstr "toon en bewerk vormen in begrensde modus" + +#: ../src/iop/retouch.c:2489 +msgid "algorithms:" +msgstr "algoritmen:" + +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2498 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2510 +msgid "tools" +msgstr "gereedschappen" + +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2518 +msgid "activate blur tool" +msgstr "activeer gereedschap voor vervagen" + +#: ../src/iop/retouch.c:2493 ../src/iop/retouch.c:2499 +#: ../src/iop/retouch.c:2505 ../src/iop/retouch.c:2511 +msgid "change algorithm for current form" +msgstr "verander algoritme voor huidige vorm" + +#: ../src/iop/retouch.c:2498 ../src/iop/retouch.c:2521 +msgid "activate fill tool" +msgstr "activeer vulgereedschap" + +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2524 +msgid "activate cloning tool" +msgstr "activeer kloongereedschap" + +#: ../src/iop/retouch.c:2510 ../src/iop/retouch.c:2527 +msgid "activate healing tool" +msgstr "activeer gereedschap voor herstellen" + +#. overwrite tooltip ourself to handle shift+click +#: ../src/iop/retouch.c:2516 +msgid "ctrl+click to change tool for current form" +msgstr "ctrl+klik om de tool voor de huidige vorm te wijzigen" + +#: ../src/iop/retouch.c:2517 +msgid "shift+click to set the tool as default" +msgstr "shift+klik om de tool als standaard in te stellen" + +#: ../src/iop/retouch.c:2537 +msgid "scales:" +msgstr "schalen:" + +#: ../src/iop/retouch.c:2544 +msgid "current:" +msgstr "huidige:" + +#: ../src/iop/retouch.c:2551 +msgid "merge from:" +msgstr "samenvoegen met:" + +#: ../src/iop/retouch.c:2562 +msgid "" +"top slider adjusts where the merge scales start\n" +"bottom slider adjusts the number of scales\n" +"dot indicates the current scale\n" +"top line indicates that the scale is visible at current zoom level\n" +"bottom line indicates that the scale has shapes on it" +msgstr "" +"bovenste schuifregelaar past het begin van samenvoegingsschaal aan\n" +"onderste schuifregelaar past het aantal schalen aan\n" +"het punt geeft de huidige schaal aan\n" +"de bovenste lijn geeft aan dat de schaal zichtbaar is op het huidige " +"zoomniveau\n" +"de onderste lijn geeft aan dat de schaal vormen bevat" + +#: ../src/iop/retouch.c:2591 +msgid "display masks" +msgstr "toon maskers" + +#: ../src/iop/retouch.c:2597 +msgid "temporarily switch off shapes" +msgstr "vormen tijdelijk uitschakelen" + +#: ../src/iop/retouch.c:2606 +msgid "paste cut shapes to current scale" +msgstr "plak geknipte vormen aan huidige schaal" + +#: ../src/iop/retouch.c:2611 +msgid "cut shapes from current scale" +msgstr "knip vormen van huidige schaal" + +#: ../src/iop/retouch.c:2619 +msgid "display wavelet scale" +msgstr "toon wavelet schaal" + +#: ../src/iop/retouch.c:2627 +msgctxt "section" +msgid "preview single scale" +msgstr "voorbeeld enkele schaal" + +#: ../src/iop/retouch.c:2641 +msgid "adjust preview levels" +msgstr "pas preview niveaus aan" + +#: ../src/iop/retouch.c:2664 ../src/iop/rgblevels.c:1106 +msgid "auto levels" +msgstr "automatisch niveaus" + +#: ../src/iop/retouch.c:2672 +msgid "shape selected:" +msgstr "geselecteerde vorm:" + +#: ../src/iop/retouch.c:2678 +msgid "" +"click on a shape to select it,\n" +"to unselect click on an empty space" +msgstr "" +"klik om een vorm te selecteren,\n" +"of deselecteer door met een klik in een leeg ruimte" + +#: ../src/iop/retouch.c:2687 +msgid "erase the detail or fills with chosen color" +msgstr "wis de details of vullingen met gekozen kleur" + +#: ../src/iop/retouch.c:2697 +msgid "fill color: " +msgstr "vulkleur: " + +#: ../src/iop/retouch.c:2702 ../src/iop/retouch.c:2703 +msgid "select fill color" +msgstr "selecteer vulkleur" + +#: ../src/iop/retouch.c:2713 +msgid "pick fill color from image" +msgstr "kies vulkleur uit afbeelding" + +#: ../src/iop/retouch.c:2714 +msgid "pick fill color" +msgstr "kies vulkleur" + +#: ../src/iop/retouch.c:2724 +msgid "adjusts color brightness to fine-tune it. works with erase as well" +msgstr "stel kleur helderheid bij als fijnregeling; dit werkt ook met wissen" + +#: ../src/iop/retouch.c:2730 +msgid "type for the blur algorithm" +msgstr "algoritme voor het type verdoezeling" + +#: ../src/iop/retouch.c:2734 +msgid "radius of the selected blur type" +msgstr "radius van geselecteerd type verdoezeling" + +#: ../src/iop/retouch.c:2741 +msgid "set the opacity on the selected shape" +msgstr "bepaal bedekking op geselecteerde vorm" + +#: ../src/iop/retouch.c:2748 +msgctxt "section" +msgid "retouch tools" +msgstr "retoucheer gereedschap" + +#. wavelet decompose +#: ../src/iop/retouch.c:2757 +msgctxt "section" +msgid "wavelet decompose" +msgstr "wavelet decompositie" + +#. shapes +#: ../src/iop/retouch.c:2771 +msgctxt "section" +msgid "shapes" +msgstr "vormen" + +#: ../src/iop/retouch.c:3986 ../src/iop/retouch.c:4956 +#, c-format +msgid "max scale is %i for this image size" +msgstr "maximale schaal %i voor deze afbeeldings groote" + +#: ../src/iop/rgbcurve.c:122 +msgid "rgb curve" +msgstr "rgb curve" + +#: ../src/iop/rgbcurve.c:144 +msgid "alter an image’s tones using curves in RGB color space" +msgstr "" +"verander de tonen van een afbeelding met behulp van curven in de RGB-" +"kleurruimte" + +#: ../src/iop/rgbcurve.c:195 ../src/iop/tonecurve.c:569 +msgid "gamma 1.0 (linear)" +msgstr "gamma 1.0 (linear)" + +#: ../src/iop/rgbcurve.c:205 ../src/iop/tonecurve.c:579 +msgid "contrast - med (linear)" +msgstr "contrast - midden (lineair)" + +#: ../src/iop/rgbcurve.c:214 ../src/iop/tonecurve.c:588 +msgid "contrast - high (linear)" +msgstr "contrast - hoog (lineair)" + +#: ../src/iop/rgbcurve.c:228 ../src/iop/tonecurve.c:600 +msgid "contrast - med (gamma 2.2)" +msgstr "contrast - med (gamma 2.2)" + +#: ../src/iop/rgbcurve.c:241 ../src/iop/tonecurve.c:611 +msgid "contrast - high (gamma 2.2)" +msgstr "contrast - high (gamma 2.2)" + +#: ../src/iop/rgbcurve.c:254 ../src/iop/tonecurve.c:624 +msgid "gamma 2.0" +msgstr "gamma 2.0" + +#: ../src/iop/rgbcurve.c:260 ../src/iop/tonecurve.c:630 +msgid "gamma 0.5" +msgstr "gamma 0.5" + +#: ../src/iop/rgbcurve.c:265 ../src/iop/tonecurve.c:635 +msgid "logarithm (base 2)" +msgstr "logaritme (basis 2)" + +#: ../src/iop/rgbcurve.c:270 ../src/iop/tonecurve.c:640 +msgid "exponential (base 2)" +msgstr "exponentieel (basis 2)" + +#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:1038 +msgid "choose between linked and independent channels." +msgstr "kies tussen gekoppelde en onafhankelijke kanalen." + +#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1043 +msgid "curve nodes for r channel" +msgstr "curve knooppunten voor r kanaal" + +#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1044 +msgid "curve nodes for g channel" +msgstr "curve knooppunten voor g kanaal" + +#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1045 +msgid "curve nodes for b channel" +msgstr "curve knooppunten voor b kanaal" + +#: ../src/iop/rgblevels.c:102 +msgid "rgb levels" +msgstr "rgb niveaus" + +#: ../src/iop/rgblevels.c:124 +msgid "adjust black, white and mid-gray points in RGB color space" +msgstr "pas zwarte, witte en middengrijze punten in de RGB-kleurruimte aan" + +#: ../src/iop/rgblevels.c:1112 +msgid "auto region" +msgstr "auto gebied" + +#: ../src/iop/rgblevels.c:1115 +msgid "" +"apply auto levels based on a region defined by the user\n" +"click and drag to draw the area\n" +"right click to cancel" +msgstr "" +"toepassen automatische niveaus op basis van een door de gebruiker " +"gedefinieerd gebied\n" +"klik en sleep om een gebied te definiëren\n" +"verwijder met een rechtermuis klik" + +#: ../src/iop/rotatepixels.c:70 +msgctxt "modulename" +msgid "rotate pixels" +msgstr "draai pixels" + +#: ../src/iop/rotatepixels.c:99 ../src/iop/scalepixels.c:84 +msgid "" +"internal module to setup technical specificities of raw sensor.\n" +"\n" +"you should not touch values here!" +msgstr "" +"interne module om technische specificaties van de raw sensor in te stellen.\n" +"\n" +"verander hier de waarden niet!" + +#: ../src/iop/rotatepixels.c:381 +msgid "automatic pixel rotation" +msgstr "pixels automatisch draaien" + +#: ../src/iop/rotatepixels.c:382 +msgid "" +"automatic pixel rotation\n" +"only works for the sensors that need it." +msgstr "" +"automatisch draaien van pixels\n" +"werkt alleen voor sensors die dat nodig hebben." + +#: ../src/iop/scalepixels.c:55 +msgctxt "modulename" +msgid "scale pixels" +msgstr "schaal pixels" + +#: ../src/iop/scalepixels.c:281 +msgid "automatic pixel scaling" +msgstr "pixels automatisch schalen" + +#: ../src/iop/scalepixels.c:282 +msgid "" +"automatic pixel scaling\n" +"only works for the sensors that need it." +msgstr "" +"automatisch pixels schalen\n" +"werkt alleen voor sensors die dat nodig hebben." + +#: ../src/iop/shadhi.c:120 +msgid "shadows and highlights" +msgstr "schaduwen en hooglichten" + +#: ../src/iop/shadhi.c:142 +msgid "" +"modify the tonal range of the shadows and highlights\n" +"of an image by enhancing local contrast." +msgstr "" +"wijzig het toonbereik van de schaduwen en hooglichten\n" +"van een afbeelding door het lokale contrast te versterken." + +#: ../src/iop/shadhi.c:711 ../src/iop/splittoning.c:544 +msgid "compress" +msgstr "comprimeer" + +#: ../src/iop/shadhi.c:718 +msgid "correct shadows" +msgstr "verbeter schaduwen" + +#: ../src/iop/shadhi.c:719 +msgid "correct highlights" +msgstr "verbeter hooglichten" + +#: ../src/iop/shadhi.c:720 +msgid "shift white point" +msgstr "verschuif witpunt" + +#: ../src/iop/shadhi.c:722 +msgid "filter to use for softening. bilateral avoids halos" +msgstr "te gebruiken filter voor softening, bilateral voorkomt halos" + +#: ../src/iop/shadhi.c:723 +msgid "" +"compress the effect on shadows/highlights and\n" +"preserve mid-tones" +msgstr "" +"comprimeer effect op hooglichten/schaduwen\n" +"en behoud middentonen" + +#: ../src/iop/shadhi.c:724 +msgid "adjust saturation of shadows" +msgstr "aanpassen verzadiging schaduwkleuren" + +#: ../src/iop/shadhi.c:725 +msgid "adjust saturation of highlights" +msgstr "aanpassen verzadiging hooglichten" + +#: ../src/iop/sharpen.c:73 +msgctxt "modulename" +msgid "sharpen" +msgstr "verscherpen" + +#: ../src/iop/sharpen.c:95 +msgid "sharpen the details in the image using a standard UnSharp Mask (USM)" +msgstr "" +"verscherp de details in de afbeelding m.b.v. een standaard 'onscherp " +"masker' (UnSharp Mask)" + +#: ../src/iop/sharpen.c:97 +msgid "linear or non-linear, Lab, display or scene-referred" +msgstr "lineair of niet-lineair, Lab, scherm of scène-gerefereerd" + +#: ../src/iop/sharpen.c:99 +msgid "quasi-linear, Lab, display or scene-referred" +msgstr "quasi-lineair, Lab, scherm of scène-gerefereerd" + +#. add the preset. +#. restrict to raw images +#: ../src/iop/sharpen.c:106 ../src/iop/sharpen.c:110 +msgid "sharpen" +msgstr "verscherpen" + +#: ../src/iop/sharpen.c:438 +msgid "spatial extent of the unblurring" +msgstr "omvang van verscherping" + +#: ../src/iop/sharpen.c:442 +msgid "strength of the sharpen" +msgstr "mate waarmee wordt verscherpt" + +#: ../src/iop/sharpen.c:446 +msgid "threshold to activate sharpen" +msgstr "drempelwaarde voordat verscherpen wordt geactiveerd" + +#: ../src/iop/sigmoid.c:195 +msgid "sigmoid" +msgstr "sigmoïde" + +#: ../src/iop/sigmoid.c:200 +msgid "tone mapping|view transform|display transform" +msgstr "tonemapping|weergave transformatie|scherm transformatie" + +#: ../src/iop/sigmoid.c:206 +msgid "" +"apply a view transform to make a image displayable\n" +"on a screen or print. uses a robust and smooth\n" +"tone curve with optional color preservation methods." +msgstr "" +"een weergavetransformatie toepassen om een ​​afbeelding zichtbaar te maken\n" +"op een scherm of print. maakt gebruik van een robuuste en gladde\n" +"tooncurve met optionele methoden voor kleurbehoud." + +#: ../src/iop/sigmoid.c:258 +msgid "neutral gray" +msgstr "neutraal grijs" + +#: ../src/iop/sigmoid.c:264 +msgid "ACES 100-nit like" +msgstr "ACES 100-nit zoals" + +#: ../src/iop/sigmoid.c:270 +msgid "Reinhard" +msgstr "Reinhard" + +#: ../src/iop/sigmoid.c:917 +msgid "" +"compression of the applied curve\n" +"implicitly defines the supported input dynamic range" +msgstr "" +"compressie van de toegepaste curve\n" +"definieert impliciet het ondersteunde dynamische invoerbereik" + +#: ../src/iop/sigmoid.c:920 +msgid "" +"shift the compression towards shadows or highlights.\n" +"negative values increase contrast in shadows.\n" +"positive values increase contrast in highlights.\n" +"the opposite end will see a reduction in contrast." +msgstr "" +"verschuif de compressie naar schaduwen of hooglichten.\n" +"negatieve waarden verhogen het contrast in schaduwen.\n" +"positieve waarden verhogen het contrast in hooglichten.\n" +"aan het andere uiteinde wordt het contrast verlaagd." + +#: ../src/iop/sigmoid.c:929 +msgid "" +"optional correction of the hue twist introduced by\n" +"the per-channel processing method." +msgstr "" +"optionele correctie van de tintverandering door\n" +"de per-kanaal verwerkingsmethode." + +#: ../src/iop/sigmoid.c:936 ../src/iop/sigmoid.c:940 +msgid "primaries" +msgstr "basiskleuren" + +#: ../src/iop/sigmoid.c:937 +msgid "set custom primaries" +msgstr "basiskleuren instellen" + +#: ../src/iop/sigmoid.c:943 +msgid "primaries to use as the base for below adjustments" +msgstr "basiskleuren om te gebruiken in de volgende aanpassingen" + +#: ../src/iop/sigmoid.c:962 +msgid "attenuate the purity of the red primary" +msgstr "verzwak de zuiverheid van rood" + +#: ../src/iop/sigmoid.c:963 +msgid "rotate the red primary" +msgstr "roteer rood basiskleur" + +#: ../src/iop/sigmoid.c:964 +msgid "attenuate the purity of the green primary" +msgstr "verzwak de zuiverheid van groen" + +#: ../src/iop/sigmoid.c:965 +msgid "rotate the green primary" +msgstr "roteer groen basiskleur" + +#: ../src/iop/sigmoid.c:966 +msgid "attenuate the purity of the blue primary" +msgstr "verzwak de zuiverheid van blauw" + +#: ../src/iop/sigmoid.c:967 +msgid "rotate the blue primary" +msgstr "roteer blauw basiskleur" + +#: ../src/iop/sigmoid.c:974 +msgid "recover some of the original purity after the inset" +msgstr "herstel iets van de originele zuiverheid na de 'inset'" + +#: ../src/iop/sigmoid.c:978 +msgid "display luminance" +msgstr "display helderheid" + +#: ../src/iop/sigmoid.c:979 +msgid "set display black/white targets" +msgstr "instellen zwart/wit doel van display" + +#: ../src/iop/sigmoid.c:987 +msgid "" +"the black luminance of the target display or print.\n" +"can be used creatively for a faded look." +msgstr "" +"het zwartniveau van de schermweergave of afdruk.\n" +"kan creatief worden gebruikt voor een vervaagde look." + +#: ../src/iop/sigmoid.c:992 +msgid "" +"the white luminance of the target display or print.\n" +"can be used creatively for a faded look or blowing out whites earlier." +msgstr "" +"het witniveau van de schermweergave of afdruk.\n" +"kan creatief worden gebruikt voor een vervaagde look of sterker " +"overbelichten." + +#: ../src/iop/soften.c:80 +msgid "soften" +msgstr "soften" + +#: ../src/iop/soften.c:102 +msgid "create a softened image using the Orton effect" +msgstr "maak een verzacht beeld met het Orton-effect" + +#: ../src/iop/soften.c:366 +msgid "the size of blur" +msgstr "mate van verdoezelen" + +#: ../src/iop/soften.c:370 +msgid "the saturation of blur" +msgstr "de verzadiging m.b.t. verdoezeling" + +#: ../src/iop/soften.c:374 +msgid "the brightness of blur" +msgstr "de helderheid van verdoezeling" + +#: ../src/iop/soften.c:378 +msgid "the mix of effect" +msgstr "mix effect" + +#: ../src/iop/splittoning.c:81 +msgid "split-toning" +msgstr "duo-toning" + +#: ../src/iop/splittoning.c:103 +msgid "" +"use two specific colors for shadows and highlights and\n" +"create a linear toning effect between them up to a pivot." +msgstr "" +"gebruik twee specifieke kleuren voor schaduwen en hooglichten en\n" +"creëer een lineair tooneffect tussen hen tot aan een draaipunt." + +#: ../src/iop/splittoning.c:120 +msgid "authentic sepia" +msgstr "authentiek sepia" + +#: ../src/iop/splittoning.c:129 +msgid "authentic cyanotype" +msgstr "authentiek cyanotype" + +#: ../src/iop/splittoning.c:138 +msgid "authentic platinotype" +msgstr "authentiek platinotype" + +#: ../src/iop/splittoning.c:147 +msgid "chocolate brown" +msgstr "chocoladebruin" + +#: ../src/iop/splittoning.c:486 +msgid "select the saturation tone" +msgstr "bepaal verzadigingstoon" + +#: ../src/iop/splittoning.c:490 +msgid "select tone color" +msgstr "bepaal kleur toon" + +#: ../src/iop/splittoning.c:520 +msgctxt "section" +msgid "shadows" +msgstr "schaduwen" + +#: ../src/iop/splittoning.c:526 +msgctxt "section" +msgid "highlights" +msgstr "hooglichten" + +#: ../src/iop/splittoning.c:535 +msgid "balance" +msgstr "witbalans" + +#: ../src/iop/splittoning.c:542 +msgid "the balance of center of split-toning" +msgstr "het evenwicht van het centrum van split-toning" + +#: ../src/iop/splittoning.c:546 +msgid "" +"compress the effect on highlights/shadows and\n" +"preserve mid-tones" +msgstr "" +"comprimeer het effect op hooglichten/schaduwen en\n" +"middentonen behouden" + +#: ../src/iop/spots.c:58 +msgid "spot removal" +msgstr "vlekken verwijderen" + +#: ../src/iop/spots.c:63 +msgid "this module is deprecated. please use the retouch module instead." +msgstr "" +"deze module is verouderd. gebruik in plaats daarvan de retoucheermodule." + +#: ../src/iop/spots.c:68 +msgid "remove sensor dust spots" +msgstr "verwijder sensorstofvlekken" + +#: ../src/iop/spots.c:71 +msgid "geometric, raw" +msgstr "geometrisch, raw" + +#: ../src/iop/spots.c:238 +msgid "spot module is limited to 64 shapes. please add a new instance!" +msgstr "" +"spot module is beperkt tot 64 vormen, voeg dus een nieuw exemplaar toe!" + +#: ../src/iop/spots.c:874 +msgid "number of strokes:" +msgstr "aantal lijnen:" + +#: ../src/iop/spots.c:878 +msgid "" +"click on a shape and drag on canvas.\n" +"use the mouse wheel to adjust size.\n" +"right click to remove a shape." +msgstr "" +"klik op een vorm en sleep die naar het canvas\n" +"bepaal met het muiswiel de afmeting\n" +"klik rechts om een lijn te verwijderen." + +#: ../src/iop/spots.c:881 +msgid "show and edit shapes" +msgstr "toon en bewerk maskers" + +#: ../src/iop/temperature.c:212 +msgctxt "modulename" +msgid "white balance" +msgstr "witbalans" + +#: ../src/iop/temperature.c:219 +msgid "scale raw RGB channels to balance white and help demosaicing" +msgstr "schaal onbewerkte RGB-kanalen voor betere witbalans en demozaïek" + +#: ../src/iop/temperature.c:1388 +#, c-format +msgid "`%s' color matrix not found for image" +msgstr "`%s' kleuren matrix is niet gevonden" + +#: ../src/iop/temperature.c:1418 +#, c-format +msgid "failed to read camera white balance information from `%s'!" +msgstr "ophalen camera-witbalans info van `%s' is niet gelukt!" + +#: ../src/iop/temperature.c:1612 +msgctxt "white balance" +msgid "as shot" +msgstr "als opgenomen" + +#. old "spot", reason: describes exactly what'll happen +#: ../src/iop/temperature.c:1615 +msgctxt "white balance" +msgid "from image area" +msgstr "van het afbeeldingsgebied" + +#: ../src/iop/temperature.c:1616 +msgctxt "white balance" +msgid "user modified" +msgstr "door gebruiker gewijzigd" + +#. old "camera neutral", reason: better matches intent +#: ../src/iop/temperature.c:1618 +msgctxt "white balance" +msgid "camera reference" +msgstr "camera referentie" + +#: ../src/iop/temperature.c:1897 ../src/iop/temperature.c:1915 +msgid "green channel coefficient" +msgstr "groene kanaalcoëfficiënt" + +#: ../src/iop/temperature.c:1899 +msgid "magenta channel coefficient" +msgstr "magenta kanaalcoëfficiënt" + +#: ../src/iop/temperature.c:1901 +msgid "cyan channel coefficient" +msgstr "cyaan kanaalcoëfficiënt" + +#: ../src/iop/temperature.c:1903 +msgid "yellow channel coefficient" +msgstr "gele kanaalcoëfficiënt" + +#: ../src/iop/temperature.c:1913 +msgid "red channel coefficient" +msgstr "rode kanaalcoëfficiënt" + +#: ../src/iop/temperature.c:1917 +msgid "blue channel coefficient" +msgstr "blauwe kanaalcoëfficiënt" + +#: ../src/iop/temperature.c:1918 +msgid "emerald" +msgstr "smaragd" + +#: ../src/iop/temperature.c:1919 +msgid "emerald channel coefficient" +msgstr "smaragdgroene kanaalcoëfficiënt" + +#. relabel to settings to remove confusion between module presets +#. and white balance settings +#: ../src/iop/temperature.c:1997 ../src/iop/temperature.c:2010 +#: ../src/iop/temperature.c:2017 ../src/iop/temperature.c:2023 +#: ../src/iop/temperature.c:2042 +msgid "settings" +msgstr "instellingen" + +#: ../src/iop/temperature.c:1997 +msgid "as shot" +msgstr "als opgenomen" + +#: ../src/iop/temperature.c:2000 +msgid "set white balance to as shot" +msgstr "zet witbalans als bij opname" + +#: ../src/iop/temperature.c:2010 +msgid "from image area" +msgstr "van het afbeeldingsgebied" + +#: ../src/iop/temperature.c:2017 +msgid "user modified" +msgstr "door gebruiker aangepast" + +#: ../src/iop/temperature.c:2020 +msgid "set white balance to user modified" +msgstr "zet witbalans op door de gebruiker aangepast" + +#: ../src/iop/temperature.c:2023 +msgid "camera reference" +msgstr "camera referentie" + +#: ../src/iop/temperature.c:2028 +msgid "" +"set white balance to camera reference point\n" +"in most cases it should be D65" +msgstr "" +"stel de witbalans in op het referentiepunt van de camera\n" +"in de meeste gevallen zou het D65 moeten zijn" + +#: ../src/iop/temperature.c:2043 +msgid "choose white balance setting" +msgstr "kies witbalans instelling" + +#: ../src/iop/temperature.c:2048 +msgid "finetune" +msgstr "fijnafstelling" + +#: ../src/iop/temperature.c:2050 +msgid "fine tune camera's white balance setting" +msgstr "fijnafstelling voor witbalansvoorkeur" + +#: ../src/iop/temperature.c:2058 +msgctxt "section" +msgid "scene illuminant temp" +msgstr "scène verlichting temp" + +#: ../src/iop/temperature.c:2059 +msgid "click to cycle color mode on sliders" +msgstr "klik om de kleurmodus op schuifregelaars te doorlopen" + +#: ../src/iop/temperature.c:2073 +msgid "color temperature (in Kelvin)" +msgstr "kleurtemperatuur (in Kelvin)" + +#: ../src/iop/temperature.c:2079 +msgid "tint" +msgstr "tint" + +#: ../src/iop/temperature.c:2082 +msgid "color tint of the image, from magenta (value < 1) to green (value > 1)" +msgstr "" +"kleurtint van de afbeelding, van magenta (waarde <1) tot groen (waarde> 1)" + +#: ../src/iop/temperature.c:2088 +msgid "channel coefficients" +msgstr "kanaalcoëfficiënten" + +#: ../src/iop/temperature.c:2097 +msgid "various" +msgstr "diversen" + +#: ../src/iop/temperature.c:2123 +msgid "white balance disabled for camera" +msgstr "camera-witbalans is uitgeschakeld" + +#: ../src/iop/tonecurve.c:161 +msgid "tone curve" +msgstr "toon curve" + +#: ../src/iop/tonecurve.c:183 +msgid "alter an image’s tones using curves" +msgstr "verander de tonen van een afbeelding met behulp van curven" + +#: ../src/iop/tonecurve.c:1147 +msgid "" +"if set to auto, a and b curves have no effect and are not displayed. chroma " +"values (a and b) of each pixel are then adjusted based on L curve data. auto " +"XYZ is similar but applies the saturation changes in XYZ space." +msgstr "" +"in stand 'auto' hebben de a- en b-curves geen effect en worden daarom niet " +"getoond. Kleurwaarden (a en b) voor elke pixel worden dan aangepast op basis " +"van de L-curve. 'aut. XYZ' is vergelijkbaar en wordt toegepast op " +"verzadigingsveranderingen in XYZ ruimte." + +#: ../src/iop/tonecurve.c:1156 +msgid "tonecurve for L channel" +msgstr "tooncurve voor L kanaal" + +#: ../src/iop/tonecurve.c:1157 +msgid "tonecurve for a channel" +msgstr "tooncurve voor a kanaal" + +#: ../src/iop/tonecurve.c:1158 +msgid "tonecurve for b channel" +msgstr "tooncurve voor b kanaal" + +#: ../src/iop/tonecurve.c:1165 ../src/iop/watermark.c:1353 +#: ../src/libs/colorpicker.c:675 +msgid "pick color" +msgstr "kies kleur" + +#: ../src/iop/toneequal.c:319 +msgid "tone equalizer" +msgstr "toon-equalizer" + +#: ../src/iop/toneequal.c:324 +msgid "tone curve|tone mapping|relight|background light|shadows highlights" +msgstr "" +"tooncurve | toon mapping | herbelicht | achtergrondlicht | schaduwen " +"hooglichten" + +#: ../src/iop/toneequal.c:331 +msgid "relight the scene as if the lighting was done directly on the scene" +msgstr "" +"verlicht de scène opnieuw alsof de verlichting direct ter plaatse is gedaan" + +#: ../src/iop/toneequal.c:334 +msgid "quasi-linear, RGB" +msgstr "quasi-lineair, RGB" + +#: ../src/iop/toneequal.c:335 +msgid "quasi-linear, RGB, scene-referred" +msgstr "quasi-lineair, RGB, scène-gerefereerd" + +#: ../src/iop/toneequal.c:489 +msgid "simple tone curve" +msgstr "eenvoudige tooncurve" + +#: ../src/iop/toneequal.c:503 +msgid "mask blending: all purposes" +msgstr "masker mengen: alle doeleinden" + +#: ../src/iop/toneequal.c:510 +msgid "mask blending: people with backlight" +msgstr "masker mengen: mensen met tegenlicht" + +#: ../src/iop/toneequal.c:527 +msgid "compress shadows/highlights (EIGF): strong" +msgstr "comprimeer schaduwen/hooglichten (EIGF): sterk" + +#: ../src/iop/toneequal.c:532 +msgid "compress shadows/highlights (GF): strong" +msgstr "comprimeer schaduwen/hooglichten (GF): sterk" + +#: ../src/iop/toneequal.c:541 +msgid "compress shadows/highlights (EIGF): medium" +msgstr "comprimeer schaduwen/hooglichten (EIGF): medium" + +#: ../src/iop/toneequal.c:546 +msgid "compress shadows/highlights (GF): medium" +msgstr "comprimeer schaduwen/hooglichten (GF): medium" + +#: ../src/iop/toneequal.c:555 +msgid "compress shadows/highlights (EIGF): soft" +msgstr "comprimeer schaduwen/hooglichten (EIGF): zacht" + +#: ../src/iop/toneequal.c:560 +msgid "compress shadows/highlights (GF): soft" +msgstr "comprimeer schaduwen/hooglichten (GF): zacht" + +#: ../src/iop/toneequal.c:568 +msgid "contrast tone curve: soft" +msgstr "contrastcurve: zacht" + +#: ../src/iop/toneequal.c:573 +msgid "contrast tone curve: medium" +msgstr "contrastcurve: medium" + +#: ../src/iop/toneequal.c:578 +msgid "contrast tone curve: strong" +msgstr "contrastcurve: sterk" + +#: ../src/iop/toneequal.c:601 +msgid "relight: fill-in" +msgstr "herbelichten: invullen" + +#: ../src/iop/toneequal.c:1120 +msgid "tone equalizer failed to allocate memory, check your RAM settings" +msgstr "" +"toon equalizer kon geen geheugen toewijzen, controleer uw RAM-instellingen" + +#: ../src/iop/toneequal.c:1825 ../src/iop/toneequal.c:2196 +msgid "the interpolation is unstable, decrease the curve smoothing" +msgstr "de interpolatie is onstabiel, verlaag de curve afvlakking" + +#: ../src/iop/toneequal.c:1860 ../src/iop/toneequal.c:1927 +msgid "wait for the preview to finish recomputing" +msgstr "wacht op het voorbeeld tot het opnieuw berekenen is gebeurd" + +#: ../src/iop/toneequal.c:2069 ../src/iop/toneequal.c:2628 +msgid "" +"scroll over image to change tone exposure\n" +"shift+scroll for large steps; ctrl+scroll for small steps" +msgstr "" +"scrol over de afbeelding om de toonbelichting te wijzigen\n" +"shift+scroll voor grote stappen; ctrl+scroll voor kleine stapjes" + +#: ../src/iop/toneequal.c:2201 +msgid "some parameters are out-of-bounds" +msgstr "sommige parameters staan buiten de grenzen" + +#: ../src/iop/toneequal.c:2518 +#, c-format +msgid "%+.1f EV" +msgstr "%+.1f EV" + +#: ../src/iop/toneequal.c:3283 +#, c-format +msgid "[%s over image] change tone exposure" +msgstr "[%s over afbeelding] verander de belichting" + +#: ../src/iop/toneequal.c:3286 +#, c-format +msgid "[%s over image] change tone exposure in large steps" +msgstr "[%s over afbeelding] verander de belichting in grote stappen" + +#: ../src/iop/toneequal.c:3289 +#, c-format +msgid "[%s over image] change tone exposure in small steps" +msgstr "[%s over afbeelding] verander de belichting in kleine stapjes" + +#. Simple view +#: ../src/iop/toneequal.c:3376 ../src/iop/toneequal.c:3405 +#: ../src/iop/toneequal.c:3406 ../src/iop/toneequal.c:3407 +#: ../src/iop/toneequal.c:3408 ../src/iop/toneequal.c:3409 +#: ../src/iop/toneequal.c:3410 ../src/iop/toneequal.c:3411 +#: ../src/iop/toneequal.c:3412 ../src/iop/toneequal.c:3413 +msgid "simple" +msgstr "eenvoudig" + +#: ../src/iop/toneequal.c:3405 +msgid "-8 EV" +msgstr "-8 EV" + +#: ../src/iop/toneequal.c:3406 +msgid "-7 EV" +msgstr "-7 EV" + +#: ../src/iop/toneequal.c:3407 +msgid "-6 EV" +msgstr "-6 EV" + +#: ../src/iop/toneequal.c:3408 +msgid "-5 EV" +msgstr "-5 EV" + +#: ../src/iop/toneequal.c:3409 +msgid "-4 EV" +msgstr "-4 EV" + +#: ../src/iop/toneequal.c:3410 +msgid "-3 EV" +msgstr "-3 EV" + +#: ../src/iop/toneequal.c:3411 +msgid "-2 EV" +msgstr "-2 EV" + +#: ../src/iop/toneequal.c:3412 +msgid "-1 EV" +msgstr "-1 EV" + +#: ../src/iop/toneequal.c:3413 +msgid "+0 EV" +msgstr "+0 EV" + +#. Advanced view +#: ../src/iop/toneequal.c:3417 +msgid "advanced" +msgstr "geavanceerd" + +#: ../src/iop/toneequal.c:3444 +msgid "double-click to reset the curve" +msgstr "dubbelklikken reset de curve" + +#: ../src/iop/toneequal.c:3448 +msgid "curve smoothing" +msgstr "curve afvlakken" + +#: ../src/iop/toneequal.c:3451 +msgid "" +"positive values will produce more progressive tone transitions\n" +"but the curve might become oscillatory in some settings.\n" +"negative values will avoid oscillations and behave more robustly\n" +"but may produce brutal tone transitions and damage local contrast." +msgstr "" +"positieve waarden zullen meer progressieve toonovergangen produceren\n" +"maar de curve kan bij sommige instellingen oscilleren\n" +"negatieve waarden voorkomen oscillaties en gedragen zich robuuster\n" +"maar kan brute toonovergangen veroorzaken en het lokale contrast beschadigen." + +#. Masking options +#: ../src/iop/toneequal.c:3461 +msgid "masking" +msgstr "maskeren" + +#: ../src/iop/toneequal.c:3466 +msgid "" +"preview the mask and chose the estimator that gives you the\n" +"higher contrast between areas to dodge and areas to burn" +msgstr "" +"bekijk het masker en kies de methode met meer contrast\n" +"tussen gebieden om door te drukken of tegen te houden" + +#: ../src/iop/toneequal.c:3469 +msgid "details" +msgstr "details" + +# of behoud kleuren +#: ../src/iop/toneequal.c:3470 +msgid "preserve details" +msgstr "behoud details" + +#: ../src/iop/toneequal.c:3473 +msgid "" +"'no' affects global and local contrast (safe if you only add contrast)\n" +"'guided filter' only affects global contrast and tries to preserve local " +"contrast\n" +"'averaged guided filter' is a geometric mean of 'no' and 'guided filter' " +"methods\n" +"'EIGF' (exposure-independent guided filter) is a guided filter that is " +"exposure-independent, it smooths shadows and highlights the same way " +"(contrary to guided filter which smooths less the highlights)\n" +"'averaged EIGF' is a geometric mean of 'no' and 'exposure-independent guided " +"filter' methods" +msgstr "" +"‘nee’ beïnvloedt globaal en lokaal contrast (veilig als je alleen contrast " +"toevoegt)\n" +"‘geleid filter’ (GF) heeft alleen invloed op globaal contrast en probeert " +"lokaal contrast te behouden\n" +"‘gemiddeld GF’ is een geometrisch gemiddelde van ‘nee’ en 'GF'\n" +"‘EIGF’ (belichtingsonafhankelijk geleid filter) maakt schaduwen en " +"hooglichten op dezelfde manier gladder (in tegenstelling tot GF dat de " +"hooglichten minder glad maakt)\n" +"‘gemiddelde EIGF’ is een geometrisch gemiddelde van ‘nee’ en 'EIGF'" + +#: ../src/iop/toneequal.c:3486 +msgid "" +"number of passes of guided filter to apply\n" +"helps diffusing the edges of the filter at the expense of speed" +msgstr "" +"het toe te passen aantal passages van het geleid filter\n" +"het helpt de randen van het filter te verspreiden maar gaat ten koste van de " +"snelheid" + +#: ../src/iop/toneequal.c:3494 +msgid "" +"diameter of the blur in percent of the largest image size\n" +"warning: big values of this parameter can make the darkroom\n" +"preview much slower if denoise profiled is used." +msgstr "" +"diameter van de vervaging in percentages van de grootste beeldgrootte\n" +"let op: grote waarden maken de weergave in ontwikkel modus behoorlijk " +"langzaam\n" +"indien gebruik wordt gemaakt van de ruisreductie (profiled)" + +#: ../src/iop/toneequal.c:3502 +msgid "" +"precision of the feathering:\n" +"higher values force the mask to follow edges more closely\n" +"but may void the effect of the smoothing\n" +"lower values give smoother gradients and better smoothing\n" +"but may lead to inaccurate edges taping and halos" +msgstr "" +"precisie van de doezelaar:\n" +"hogere waarden dwingt het masker om meer de randen te volgen\n" +"maar zal het effect van het vloeiend maken juist vermijden\n" +"lagere waarden geven vloeiendere overgangen en betere verzachting\n" +"maar zal leiden tot onnauwkeurige randen en halo's" + +#: ../src/iop/toneequal.c:3509 +msgctxt "section" +msgid "mask post-processing" +msgstr "masker nabewerking" + +#: ../src/iop/toneequal.c:3520 +msgid "" +"mask histogram span between the first and last deciles.\n" +"the central line shows the average. orange bars appear at extrema if " +"clipping occurs." +msgstr "" +"teveel spanwijdte tussen eerste en laatste deciel in het masker histogram\n" +"de centrale lijn geeft het gemiddelde aan, oranje balken verschijnen bij " +"extremen indien clipping optreedt." + +#: ../src/iop/toneequal.c:3528 +msgid "" +"0 disables the quantization.\n" +"higher values posterize the luminance mask to help the guiding\n" +"produce piece-wise smooth areas when using high feathering values" +msgstr "" +"0 schakelt de kwantisatie uit.\n" +"hogere waarden posterizeren het helderheidsmasker en zorgen daarmee\n" +"voor deels vlakke gebieden bij het gebruik van hogere doezelaar waarden\n" +"NB posterizeren is iets uitbeelden met minder niveaus" + +#: ../src/iop/toneequal.c:3537 +msgid "" +"use this to slide the mask average exposure along channels\n" +"for a better control of the exposure correction with the available nodes.\n" +"the magic wand will auto-adjust the average exposure" +msgstr "" +"verschuif hiermee de gemiddelde belichting van het masker langs de kanalen\n" +"voor een betere controle van de belichtingscorrecties met de beschikbare " +"knooppunten.\n" +"de kiezer past de gemiddelde belichting automatisch aan op -4EV" + +#: ../src/iop/toneequal.c:3550 +msgid "" +"use this to counter the averaging effect of the guided filter\n" +"and dilate the mask contrast around -4EV\n" +"this allows to spread the exposure histogram over more channels\n" +"for a better control of the exposure correction.\n" +"the magic wand will auto-adjust the contrast" +msgstr "" +"gebruik dit om het gemiddelde effect van het geleid filter tegen te gaan\n" +"en verwijd het maskercontrast naar -4EV\n" +"hierdoor kan het belichtingshistogram over meerdere kanalen worden verdeeld\n" +"voor een betere controle van de belichtingscorrecties" + +#: ../src/iop/toneequal.c:3573 ../src/iop/toneequal.c:3576 +msgid "display exposure mask" +msgstr "toon belichtingsmasker" + +#: ../src/iop/tonemap.cc:71 +msgid "tone mapping" +msgstr "toonmapping" + +#: ../src/iop/tonemap.cc:87 +msgid "" +"this module is deprecated. please use the local contrast or tone equalizer " +"module instead." +msgstr "" +"deze module is verouderd. gebruik in plaats daarvan lokale contrast- of toon-" +"equalizermodules." + +#: ../src/iop/velvia.c:70 +msgid "velvia" +msgstr "velvia" + +#: ../src/iop/velvia.c:97 +msgid "" +"resaturate giving more weight to blacks, whites and low-saturation pixels" +msgstr "" +"opnieuw verzadigen waardoor zwart, wit en pixels met een lage verzadiging " +"meer gewicht krijgen" + +#: ../src/iop/velvia.c:290 +msgid "the strength of saturation boost" +msgstr "de kracht van verzadiging" + +#: ../src/iop/velvia.c:293 +msgid "how much to spare highlights and shadows" +msgstr "besparing m.b.t. hooglichten en schaduwkleuren" + +#: ../src/iop/vibrance.c:62 +msgid "" +"this module is deprecated. please use the vibrance slider in the color " +"balance rgb module instead." +msgstr "" +"deze module is verouderd. Gebruik in plaats daarvan de " +"levendigheidsschuifregelaar in de RGB-module voor kleurbalans." + +#: ../src/iop/vibrance.c:95 +msgid "" +"saturate and reduce the lightness of the most saturated pixels\n" +"to make the colors more vivid." +msgstr "" +"verzadig en verminder de helderheid van de meest verzadigde pixels\n" +"om de kleuren levendiger te maken." + +#: ../src/iop/vibrance.c:211 +msgid "the amount of vibrance" +msgstr "mate van levendigheid" + +#: ../src/iop/vignette.c:119 +msgid "simulate a lens fall-off close to edges" +msgstr "simuleer de lichtafval van een lens naar de randen" + +#: ../src/iop/vignette.c:1022 +msgid "lomo" +msgstr "lomo" + +#: ../src/iop/vignette.c:1061 +msgctxt "section" +msgid "position / form" +msgstr "positie / vorm" + +#: ../src/iop/vignette.c:1069 +msgid "dithering" +msgstr "dithering" + +#: ../src/iop/vignette.c:1081 +msgid "the radii scale of vignette for start of fall-off" +msgstr "radiusschaal van vignet voor begin afname" + +#: ../src/iop/vignette.c:1083 +msgid "the radii scale of vignette for end of fall-off" +msgstr "radiusschaal van vignet voor einde afname" + +#: ../src/iop/vignette.c:1084 +msgid "strength of effect on brightness" +msgstr "mate van het effect m.b.t. helderheid" + +#: ../src/iop/vignette.c:1085 +msgid "strength of effect on saturation" +msgstr "mate van het effect m.b.t. verzadiging" + +#: ../src/iop/vignette.c:1086 +msgid "horizontal offset of center of the effect" +msgstr "verschuif het horizontale middelpunt" + +#: ../src/iop/vignette.c:1087 +msgid "vertical offset of center of the effect" +msgstr "verschuif het verticale middelpunt" + +#: ../src/iop/vignette.c:1090 +msgid "" +"shape factor\n" +"0 produces a rectangle\n" +"1 produces a circle or ellipse\n" +"2 produces a diamond" +msgstr "" +"vormfactor\n" +"0 creëert een rechthoek\n" +"1 creëert een cirkel of ellips\n" +"2 creëert een ruit" + +#: ../src/iop/vignette.c:1094 +msgid "enable to have the ratio automatically follow the image size" +msgstr "geeft een verhouding gelijk aan die van de afbeelding" + +#: ../src/iop/vignette.c:1095 +msgid "width-to-height ratio" +msgstr "verhouding breedte : hoogte" + +#: ../src/iop/vignette.c:1097 +msgid "add some level of random noise to prevent banding" +msgstr "" +"een zekere mate van willekeurige ruis toevoegen ter voorkoming van " +"streepvorming" + +#: ../src/iop/vignette.c:1105 +#, c-format +msgid "[%s on node] change vignette/feather size" +msgstr "[%s op knooppunt] wijzig vignet/doezel afmeting" + +#: ../src/iop/vignette.c:1108 +#, c-format +msgid "[%s on node] change vignette/feather size keeping ratio" +msgstr "[%s op knooppunt] wijzig vignet/doezel afmeting behoud verhouding" + +#: ../src/iop/vignette.c:1111 +#, c-format +msgid "[%s on center] move vignette" +msgstr "[%s in het midden] verplaats vignet" + +#: ../src/iop/watermark.c:416 +msgid "watermark" +msgstr "watermerk" + +#: ../src/iop/watermark.c:421 +msgid "overlay an SVG watermark like a signature on the picture" +msgstr "overlay een SVG-watermerk als een handtekening op de afbeelding" + +#: ../src/iop/watermark.c:1306 +msgid "marker" +msgstr "bestand" + +#: ../src/iop/watermark.c:1309 +#, c-format +msgid "SVG watermarks in %s/watermarks or %s/watermarks" +msgstr "SVG watermarken in %s/watermarks of %s/watermarks" + +#. Simple text +#: ../src/iop/watermark.c:1319 ../src/iop/watermark.c:1320 +msgid "text" +msgstr "tekst" + +#: ../src/iop/watermark.c:1321 +msgid "" +"text string, tag:\n" +"$(WATERMARK_TEXT)" +msgstr "" +"tekst string, label:\n" +"$(WATERMARK_TEXT)" + +#: ../src/iop/watermark.c:1323 +msgid "content" +msgstr "inhoud" + +#. Text font +#: ../src/iop/watermark.c:1328 +msgid "font" +msgstr "voorkant" + +#: ../src/iop/watermark.c:1333 +msgid "" +"text font, tags:\n" +"$(WATERMARK_FONT_FAMILY)\n" +"$(WATERMARK_FONT_STYLE)\n" +"$(WATERMARK_FONT_WEIGHT)" +msgstr "" +"tekst lettertype, labels:\n" +"$(WATERMARK_FONT_FAMILY)\n" +"$(WATERMARK_FONT_STYLE)\n" +"$(WATERMARK_FONT_WEIGHT)" + +#: ../src/iop/watermark.c:1348 +msgid "" +"watermark color, tag:\n" +"$(WATERMARK_COLOR)" +msgstr "" +"watermerk kleur, label:\n" +"$(WATERMARK_COLOR)" + +#: ../src/iop/watermark.c:1350 +msgid "select watermark color" +msgstr "bepaal watermerk kleur" + +#: ../src/iop/watermark.c:1352 +msgid "pick color from image" +msgstr "neem kleur uit afbeelding" + +#: ../src/iop/watermark.c:1365 +msgctxt "section" +msgid "placement" +msgstr "plaatsing" + +#: ../src/iop/watermark.c:1378 +msgid "" +"choose how to scale the watermark\n" +"• image: scale watermark relative to whole image\n" +"• larger border: scale larger watermark border relative to larger image " +"border\n" +"• smaller border: scale larger watermark border relative to smaller image " +"border\n" +"• height: scale watermark height to image height\n" +"• advanced options: choose watermark and image dimensions independently" +msgstr "" +"kies hoe het watermerk geschaald moet worden:\n" +"• afbeelding: schaal watermerk ten opzichte van afbeelding\n" +"• lange zijde: schaal lange zijde van watermerk t.o.v. afbeelding\n" +"• korte zijde: schaal korte zijde van watermerk t.o.v. afbeelding\n" +"• hoogte: schaal hoogte van watermerk t.o.v. afbeeldingshoogte\n" +"• geavanceerd: kies afzonderlijk de afmetingen van watermerk en afbeelding" + +#: ../src/iop/watermark.c:1387 +msgid "reference image dimension against which to scale the watermark" +msgstr "afbeeldingsgrootte als referentie voor het schalen van het watermerk" + +#: ../src/iop/watermark.c:1391 +msgid "watermark dimension to scale" +msgstr "gewenste afmetingen van watermerk" + +#: ../src/iop/watermark.c:1395 ../src/libs/print_settings.c:2675 +msgid "alignment" +msgstr "uitlijning" + +#. Let's add some tooltips and hook up some signals... +#: ../src/iop/watermark.c:1416 +msgid "the opacity of the watermark" +msgstr "de dekking van het watermerk" + +#: ../src/iop/watermark.c:1417 +msgid "the scale of the watermark" +msgstr "de grootte van het watermerk" + +#: ../src/iop/watermark.c:1418 +msgid "the rotation of the watermark" +msgstr "de rotatie van het watermerk" + +#: ../src/iop/zonesystem.c:111 +msgid "zone system" +msgstr "zonesysteem" + +#: ../src/iop/zonesystem.c:486 +msgid "" +"lightness zones\n" +"use mouse scrollwheel to change the number of zones\n" +"left-click on a border to create a marker\n" +"right-click on a marker to delete it" +msgstr "" +"helderheidszones \n" +"wijzig het aantal zones met het scrollwiel van de muis\n" +"klik met de linkermuisknop op de rand voor een markeerpunt\n" +"verwijder een markeerpunt met de rechtermuisknop" + +#: ../src/libs/backgroundjobs.c:52 +msgid "background jobs" +msgstr "achtergrondtaken" + +#: ../src/libs/camera.c:78 +msgid "camera settings" +msgstr "camerainstellingen" + +#: ../src/libs/camera.c:131 +msgid "toggle view property in center view" +msgstr "schakel beeldeigenschappen naar gecentreerd beeld" + +#: ../src/libs/camera.c:201 +msgid "connection with camera lost, exiting tethering mode" +msgstr "verbinding met camera verbroken, tethering modus wordt gestopt" + +#: ../src/libs/camera.c:342 +msgid "battery" +msgstr "accu" + +#: ../src/libs/camera.c:342 +msgid "n/a" +msgstr "n/a" + +#. Camera control +#: ../src/libs/camera.c:417 +msgctxt "section" +msgid "camera control" +msgstr "camerabediening" + +#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2679 +msgid "modes" +msgstr "modus" + +#: ../src/libs/camera.c:422 +msgid "timer (s)" +msgstr "teller (s)" + +#: ../src/libs/camera.c:423 +msgid "count" +msgstr "tel" + +#: ../src/libs/camera.c:424 +msgid "brackets" +msgstr "brackets" + +#: ../src/libs/camera.c:425 +msgid "bkt. steps" +msgstr "bkt. stappen" + +#: ../src/libs/camera.c:458 +msgid "capture image(s)" +msgstr "opnemen afbeelding(en)" + +#: ../src/libs/camera.c:461 +msgid "toggle delayed capture mode" +msgstr "schakel naar vertraagde opnamemodus" + +#: ../src/libs/camera.c:462 +msgid "toggle sequenced capture mode" +msgstr "schakel naar een reeks opnamemodus" + +#: ../src/libs/camera.c:463 +msgid "toggle bracketed capture mode" +msgstr "schakel naar bracketing opnamemodus" + +#: ../src/libs/camera.c:464 +msgid "the count of seconds before actually doing a capture" +msgstr "aantal seconden voordat werkelijk een opname wordt uitgevoerd" + +#: ../src/libs/camera.c:466 +msgid "" +"the amount of images to capture in a sequence,\n" +"you can use this in conjunction with delayed mode to create stop-motion " +"sequences" +msgstr "" +"het aantal op te nemen afbeeldingen in een reeks,\n" +"in combinatie met uitgestelde opname is zo een stop-motionfilmpje te maken" + +#: ../src/libs/camera.c:469 +msgid "" +"the amount of brackets on each side of centered shoot, amount of images = " +"(brackets*2) + 1" +msgstr "" +"het aantal brackets aan beide zijden van de hoofdafbeelding, aantal " +"afbeeldingen = (brackets*2) + 1" + +#: ../src/libs/camera.c:471 +msgid "" +"the amount of steps per bracket, steps is camera configurable and usually 3 " +"steps per stop\n" +"with other words, 3 steps is 1EV exposure step between brackets" +msgstr "" +"het aantal stappen per 'bracket' is in de camera instelbaar en bedraagt " +"meestal 3 stappen per stop\n" +"m.a.w. 3 stappen is gelijk aan 1EV belichtingsstap tussen de 'brackets'" + +#. user specified properties +#: ../src/libs/camera.c:494 +msgctxt "section" +msgid "additional properties" +msgstr "extra eigenschappen" + +#: ../src/libs/camera.c:497 +msgid "label" +msgstr "label" + +#: ../src/libs/camera.c:505 +msgid "property" +msgstr "eigenschap" + +#: ../src/libs/camera.c:517 +msgid "add user property" +msgstr "voeg gebruikerseigenschappen toe" + +#: ../src/libs/camera.c:537 +msgid "program" +msgstr "programma" + +#: ../src/libs/camera.c:540 ../src/libs/camera.c:542 +msgid "focus mode" +msgstr "focusmodus" + +#: ../src/libs/camera.c:553 +msgid "shutterspeed2" +msgstr "sluitersnelheid" + +#: ../src/libs/camera.c:555 +msgid "shutterspeed" +msgstr "sluitersnelheid" + +#: ../src/libs/camera.c:561 +msgid "WB" +msgstr "WB" + +#: ../src/libs/collect.c:164 +msgid "collections" +msgstr "collecties" + +#: ../src/libs/collect.c:424 +msgid "search filmroll" +msgstr "zoek map" + +#: ../src/libs/collect.c:507 +#, c-format +msgid "problem selecting new path for the filmroll in %s" +msgstr "probleem bij het kiezen van een nieuw vorm voor de map in %s" + +#: ../src/libs/collect.c:579 +msgid "search filmroll..." +msgstr "zoek map..." + +#: ../src/libs/collect.c:584 +msgid "remove..." +msgstr "verwijderen..." + +#: ../src/libs/collect.c:1310 +msgid "uncategorized" +msgstr "ongecatagoriseerd" + +#: ../src/libs/collect.c:2172 ../src/libs/filters/rating_range.c:120 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:151 +#: ../src/libs/filters/rating_range.c:302 +msgid "rejected" +msgstr "afgekeurd" + +#: ../src/libs/collect.c:2175 ../src/libs/filters/rating_range.c:122 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:303 +msgid "not rated" +msgstr "geen waardering" + +#: ../src/libs/collect.c:2359 +msgid "use <, <=, >, >=, <>, =, [;] as operators" +msgstr "gebruik <, <=, >, >=, <>, =, [;]" + +#: ../src/libs/collect.c:2363 +msgid "" +"use <, <=, >, >=, <>, =, [;] as operators\n" +"star rating: 0-5\n" +"rejected images: -1" +msgstr "" +"gebruik <, <=, >, >=, <>, =, [;]\n" +"sterbeoordeling: 0-5\n" +"afgekeurde afbeeldingen: -1" + +#: ../src/libs/collect.c:2371 +msgid "" +"use <, <=, >, >=, <>, =, [;] as operators\n" +"type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)" +msgstr "" +"gebruik <, <=, >, >=, <>, =, [;]\n" +"geef tijdstip in de vorm van: YYYY:MM:DD HH:MM:SS (alleen het jaar is " +"verplicht)" + +#: ../src/libs/collect.c:2378 +#, no-c-format +msgid "use `%' as wildcard and `,' to separate values" +msgstr "gebruik `%' als jokerteken en `,’ om waarden te scheiden" + +#: ../src/libs/collect.c:2385 +#, no-c-format +msgid "" +"use `%' as wildcard\n" +"click to include hierarchy + sub-hierarchies (suffix `*')\n" +"shift+click to include only the current hierarchy (no suffix)\n" +"ctrl+click to include only sub-hierarchies (suffix `|%')" +msgstr "" +"gebruik `%’ als jokerteken\n" +"klik om hiërarchie + subhiërarchieën op te nemen (achtervoegsel `*')\n" +"shift+klik om alleen de huidige hiërarchie op te nemen (geen achtervoegsel)\n" +"ctrl+klik om alleen subhiërarchieën op te nemen (achtervoegsel `|%')" + +#: ../src/libs/collect.c:2398 +#, no-c-format +msgid "" +"use `%' as wildcard\n" +"click to include location + sub-locations (suffix `*')\n" +"shift+click to include only the current location (no suffix)\n" +"ctrl+click to include only sub-locations (suffix `|%')" +msgstr "" +"gebruik `%’ als jokerteken\n" +"klik om locatie + sublocaties op te nemen (achtervoegsel `*')\n" +"shift+klik om alleen de huidige locatie op te nemen (geen achtervoegsel)\n" +"ctrl+klik om alleen sublocaties op te nemen (achtervoegsel `|%')" + +#: ../src/libs/collect.c:2411 +#, no-c-format +msgid "" +"use `%' as wildcard\n" +"click to include current + sub-folders (suffix `*')\n" +"shift+click to include only the current folder (no suffix)\n" +"ctrl+click to include only sub-folders (suffix `|%')" +msgstr "" +"gebruik `%’ als jokerteken\n" +"klik om huidige + submappen op te nemen (achtervoegsel `*')\n" +"shift+klik om alleen de huidige map op te nemen (geen achtervoegsel)\n" +"ctrl+klik om alleen submappen op te nemen (achtervoegsel `|%')" + +#: ../src/libs/collect.c:2422 +#, no-c-format +msgid "use `%' as wildcard" +msgstr "gebruik `%' als jokerteken" + +#: ../src/libs/collect.c:2488 ../src/libs/collect.c:2502 +#: ../src/libs/collect.c:3111 +msgid "clear this rule" +msgstr "verwijder voorwaarde" + +#: ../src/libs/collect.c:2492 +msgid "clear this rule or add new rules" +msgstr "voorwaarde toevoegen / verwijderen" + +#: ../src/libs/collect.c:3117 +msgid "narrow down search" +msgstr "submappen" + +#: ../src/libs/collect.c:3124 +msgid "add more images" +msgstr "afbeeldingen toevoegen" + +#: ../src/libs/collect.c:3131 +msgid "exclude images" +msgstr "afbeeldingen uitsluiten" + +#: ../src/libs/collect.c:3140 +msgid "change to: and" +msgstr "wijzig in <en>" + +#: ../src/libs/collect.c:3147 +msgid "change to: or" +msgstr "wijzig in <of>" + +#: ../src/libs/collect.c:3154 +msgid "change to: except" +msgstr "wijzig in <behalve>" + +#. the different categories +#: ../src/libs/collect.c:3184 ../src/libs/filtering.c:883 +#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1620 +#: ../src/libs/filtering.c:1964 +msgid "files" +msgstr "bestanden" + +#: ../src/libs/collect.c:3189 ../src/libs/export_metadata.c:301 +#: ../src/libs/filtering.c:888 ../src/libs/filtering.c:955 +#: ../src/libs/filtering.c:1628 ../src/libs/filtering.c:1968 +#: ../src/libs/image.c:495 ../src/libs/image.c:633 ../src/libs/image.c:645 +#: ../src/libs/metadata.c:509 ../src/libs/metadata_view.c:1256 +msgid "metadata" +msgstr "metadata" + +#: ../src/libs/collect.c:3208 ../src/libs/filtering.c:909 +#: ../src/libs/filtering.c:976 ../src/libs/filtering.c:1966 +msgid "times" +msgstr "tijden" + +# of behoud kleuren +#: ../src/libs/collect.c:3216 ../src/libs/filtering.c:917 +#: ../src/libs/filtering.c:984 ../src/libs/filtering.c:1652 +msgid "capture details" +msgstr "details vastleggen" + +#: ../src/libs/collect.c:3225 ../src/libs/filtering.c:926 +#: ../src/libs/filtering.c:993 ../src/libs/filtering.c:1664 +#: ../src/libs/filtering.c:1970 ../src/libs/tools/darktable.c:61 +msgid "darktable" +msgstr "darktable" + +#: ../src/libs/collect.c:3240 +msgid "collections settings" +msgstr "instellingen collecties" + +#: ../src/libs/collect.c:3267 ../src/libs/export.c:1126 +#: ../src/libs/metadata.c:615 ../src/libs/metadata_view.c:1339 +#: ../src/libs/recentcollect.c:295 ../src/libs/tagging.c:3526 +msgid "preferences..." +msgstr "voorkeuren..." + +#: ../src/libs/collect.c:3388 ../src/libs/filtering.c:1494 +msgid "AND" +msgstr "EN" + +#: ../src/libs/collect.c:3393 ../src/libs/filtering.c:1499 +msgid "OR" +msgstr "OF" + +#. case DT_LIB_COLLECT_MODE_AND_NOT: +#: ../src/libs/collect.c:3398 ../src/libs/filtering.c:1504 +msgid "BUT NOT" +msgstr "MAAR NIET" + +#: ../src/libs/collect.c:3588 ../src/libs/filtering.c:2238 +msgid "revert to a previous set of rules" +msgstr "ga terug naar vorige instellig van regels" + +#: ../src/libs/collect.c:3671 +msgid "jump back to previous collection" +msgstr "keer terug naar vorige collectie" + +#: ../src/libs/colorpicker.c:51 +msgid "LCh" +msgstr "LCh" + +#: ../src/libs/colorpicker.c:51 +msgid "HSV" +msgstr "HSV" + +#: ../src/libs/colorpicker.c:51 +msgid "Hex" +msgstr "Exr" + +#: ../src/libs/colorpicker.c:53 +msgid "mean" +msgstr "gemiddeld" + +#: ../src/libs/colorpicker.c:71 +msgid "color picker" +msgstr "kleurkiezer" + +#: ../src/libs/colorpicker.c:513 +msgid "" +"hover to highlight sample on canvas,\n" +"click to lock sample,\n" +"right-click to load sample area into active color picker" +msgstr "" +"zweef om het voorbeeld op canvas te markeren,\n" +"klik om voorbeeld te vergrendelen,\n" +"klik met de rechtermuisknop om het voorbeeldgebied in de actieve kleurkiezer " +"te laden" + +#: ../src/libs/colorpicker.c:626 ../src/libs/colorpicker.c:693 +msgid "click to (un)hide large color patch" +msgstr "klik om de grote kleurpatch te tonen of verbergen" + +#: ../src/libs/colorpicker.c:649 +msgid "statistic" +msgstr "statistisch" + +#: ../src/libs/colorpicker.c:650 +msgid "select which statistic to show" +msgstr "selecteer welke statistiek je wilt weergeven" + +#: ../src/libs/colorpicker.c:660 +msgid "select which color mode to use" +msgstr "selecteer welke kleurmodus je wilt gebruiken" + +#: ../src/libs/colorpicker.c:671 +msgid "" +"turn on color picker\n" +"ctrl+click or right-click to select an area" +msgstr "" +"schakel de kleurkiezer in\n" +"selecteer een gebied met ctrl+klik of rechts-klik" + +#: ../src/libs/colorpicker.c:722 +msgid "add sample" +msgstr "voorbeeld toevoegen" + +#. Adding the live samples section +#: ../src/libs/colorpicker.c:727 +msgctxt "section" +msgid "live samples" +msgstr "live voorbeelden" + +#: ../src/libs/colorpicker.c:738 +msgid "display samples on image/vectorscope" +msgstr "toon voorbeeldgebied op afbeelding/vectorscoop" + +#: ../src/libs/colorpicker.c:749 +msgid "restrict scope to selection" +msgstr "beperk histogram tot selectie" + +#: ../src/libs/copy_history.c:61 +msgid "history stack" +msgstr "bewerkingsstappen" + +#: ../src/libs/copy_history.c:114 +msgid "open sidecar file" +msgstr "open XMP-bestand" + +#: ../src/libs/copy_history.c:166 +#, c-format +msgid "error loading file '%s'" +msgstr "fout bij het inladen van bestand '%s'" + +#: ../src/libs/copy_history.c:206 +#, c-format +msgid "no history compression of %d image" +msgid_plural "no history compression of %d images" +msgstr[0] "geen historie compressie van %d afbeelding" +msgstr[1] "geen historie compressie van %d afbeeldingen" + +#: ../src/libs/copy_history.c:247 +msgid "delete images' history?" +msgstr "afbeeldings historie verwijderen?" + +#: ../src/libs/copy_history.c:248 +#, c-format +msgid "do you really want to clear history of %d selected image?" +msgid_plural "do you really want to clear history of %d selected images?" +msgstr[0] "" +"wilt u echt de historie verwijderen van %d geselecteerde afbeelding?" +msgstr[1] "" +"wilt u echt de historie verwijderen van %d geselecteerde afbeeldingen?" + +#: ../src/libs/copy_history.c:364 +msgid "selective copy..." +msgstr "selectief kopiëren..." + +#: ../src/libs/copy_history.c:365 +msgid "choose which modules to copy from the source image" +msgstr "kies welke modules je wilt kopiëren van de bronafbeelding" + +#: ../src/libs/copy_history.c:371 +msgid "" +"copy history stack of\n" +"first selected image" +msgstr "" +"kopieer bewerkingsstappen\n" +"van als eerst geselecteerde afbeelding" + +#: ../src/libs/copy_history.c:376 +msgid "selective paste..." +msgstr "selectief plakken..." + +#: ../src/libs/copy_history.c:377 +msgid "choose which modules to paste to the target image(s)" +msgstr "kies welke modules je in de doelafbeelding(en) wilt plakken" + +#: ../src/libs/copy_history.c:382 ../src/libs/image.c:655 +msgid "paste" +msgstr "plakken" + +#: ../src/libs/copy_history.c:383 +msgid "" +"paste history stack to\n" +"all selected images" +msgstr "" +"bewerkingsstappen toepassen\n" +"op alle geselecteerde afbeeldingen" + +#: ../src/libs/copy_history.c:389 +msgid "compress history" +msgstr "comprimeer historie" + +#: ../src/libs/copy_history.c:390 +msgid "" +"compress history stack of\n" +"all selected images" +msgstr "" +"comprimeer historie van\n" +"alle geselecteerde afbeeldingen" + +#: ../src/libs/copy_history.c:395 +msgid "" +"discard history stack of\n" +"all selected images" +msgstr "verwijder alle bewerkingen van geselecteerde afbeeldingen" + +#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:851 +msgid "how to handle existing history" +msgstr "hoe om te gaan met de bestaande historie" + +#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:854 +msgid "append" +msgstr "toevoegen" + +#: ../src/libs/copy_history.c:409 +msgid "load sidecar file..." +msgstr "laad XMP-bestand..." + +#: ../src/libs/copy_history.c:410 +msgid "" +"open an XMP sidecar file\n" +"and apply it to selected images" +msgstr "" +"open XMP sidecar-bestand en pas het toe\n" +"op geselecteerde afbeeldingen" + +#: ../src/libs/copy_history.c:415 +msgid "write history stack and tags to XMP sidecar files" +msgstr "bewerkingen en labels opslaan in XMP sidecar-bestanden" + +#: ../src/libs/duplicate.c:60 +msgid "duplicate manager" +msgstr "duplicaatbeheer" + +#: ../src/libs/duplicate.c:407 +msgid "create a 'virgin' duplicate of the image without any development" +msgstr "maak een duplicaat van de afbeelding excl. bewerkingen" + +#: ../src/libs/duplicate.c:412 +msgid "create a duplicate of the image with same history stack" +msgstr "maak een duplicaat van de afbeelding incl. bewerkingen" + +#: ../src/libs/export.c:160 +msgid "export" +msgstr "exporteren" + +#: ../src/libs/export.c:306 +msgid "invalid format for export selected" +msgstr "ongeldig exportformaat" + +#: ../src/libs/export.c:311 +msgid "invalid storage for export selected" +msgstr "ongeldige opslag voor export" + +#: ../src/libs/export.c:322 +msgid "export to disk" +msgstr "exporteer naar schijf" + +#: ../src/libs/export.c:516 +#, c-format +msgid "which is equal to %s × %s px" +msgstr "wat gelijk is aan %s × %s px" + +#: ../src/libs/export.c:555 +msgctxt "unit" +msgid "in" +msgstr "in" + +#: ../src/libs/export.c:1141 +msgctxt "section" +msgid "storage options" +msgstr "opslaginstellingen" + +#: ../src/libs/export.c:1145 +msgid "target storage" +msgstr "doel" + +#: ../src/libs/export.c:1171 +msgctxt "section" +msgid "format options" +msgstr "formaat instellingen" + +#: ../src/libs/export.c:1175 +msgid "file format" +msgstr "bestandstype" + +#: ../src/libs/export.c:1193 +msgctxt "section" +msgid "global options" +msgstr "algemene instellingen" + +#: ../src/libs/export.c:1196 +msgid "set size" +msgstr "formaat" + +#: ../src/libs/export.c:1197 +msgid "choose a method for setting the output size" +msgstr "kies een methode om het uitvoergrootte in te stellen" + +#: ../src/libs/export.c:1200 +msgid "in pixels (for file)" +msgstr "in pixels (voor bestand)" + +#: ../src/libs/export.c:1201 +msgid "in cm (for print)" +msgstr "in cm (voor print)" + +#: ../src/libs/export.c:1202 +msgid "in inch (for print)" +msgstr "in inch (voor print)" + +#: ../src/libs/export.c:1203 +msgid "by scale (for file)" +msgstr "op schaal (voor bestand)" + +#: ../src/libs/export.c:1206 +msgid "print width" +msgstr "afdrukbreedte" + +#: ../src/libs/export.c:1208 ../src/libs/export.c:1225 +msgid "" +"maximum output width limit.\n" +"click middle mouse button to reset to 0." +msgstr "" +"maximale uitvoerbreedte limiet.\n" +"klik op de middelste muisknop om te resetten naar 0." + +#: ../src/libs/export.c:1212 +msgid "print height" +msgstr "afdrukhoogte" + +#: ../src/libs/export.c:1214 ../src/libs/export.c:1231 +msgid "" +"maximum output height limit.\n" +"click middle mouse button to reset to 0." +msgstr "" +"maximale uitvoerhoogte limiet.\n" +"klik op de middelste muisknop om te resetten naar 0." + +#: ../src/libs/export.c:1220 +msgid "resolution in dot per inch" +msgstr "resolutie in punten per inch" + +#: ../src/libs/export.c:1244 +msgid "@" +msgstr "@" + +#: ../src/libs/export.c:1258 ../src/libs/tools/global_toolbox.c:217 +msgid "px" +msgstr "px" + +#: ../src/libs/export.c:1266 +msgid "" +"it can be an integer, decimal number or simple fraction.\n" +"zero or empty values are equal to 1.\n" +"click middle mouse button to reset to 1." +msgstr "" +"het kan een geheel getal, een decimaal getal of een enkelvoudige breuk " +"zijn.\n" +"nul of lege waarden zijn gelijk aan 1.\n" +"klik op de middelste muisknop om te resetten naar 1." + +#: ../src/libs/export.c:1292 +msgid "allow upscaling" +msgstr "opschalen toestaan" + +#: ../src/libs/export.c:1301 +msgid "high quality resampling" +msgstr "hoge kwaliteits resampling" + +#: ../src/libs/export.c:1302 +msgid "do high quality resampling during export" +msgstr "" +"herschaal niet eerder dan bij het exporteren (geeft kwalitatief betere " +"afbeeldingen)" + +#: ../src/libs/export.c:1310 +msgid "store masks" +msgstr "maskers opslaan" + +#: ../src/libs/export.c:1311 +msgid "store masks as layers in exported images. only works for some formats." +msgstr "" +"sla maskers op als lagen in geëxporteerde afbeeldingen. werkt alleen voor " +"sommige formaten." + +#: ../src/libs/export.c:1322 ../src/libs/export.c:1357 +#: ../src/libs/print_settings.c:2777 ../src/libs/print_settings.c:2823 +msgid "image settings" +msgstr "afbeeldingsinstellingen" + +#: ../src/libs/export.c:1332 ../src/libs/print_settings.c:2811 +msgid "output ICC profiles" +msgstr "uitgaand ICC-profiel" + +#: ../src/libs/export.c:1340 +msgid "" +"• perceptual: smoothly moves out-of-gamut colors into gamut, preserving " +"gradations,\n" +"but distorts in-gamut colors in the process.\n" +"note that perceptual is often a proprietary LUT that depends on the " +"destination space.\n" +"\n" +"• relative colorimetric: keeps luminance while reducing as little as " +"possible\n" +"saturation until colors fit in gamut.\n" +"\n" +"• saturation: designed to present eye-catching business graphics\n" +"by preserving the saturation. (not suited for photography).\n" +"\n" +"• absolute colorimetric: adapt white point of the image to the white point " +"of the\n" +"destination medium and do nothing else. mainly used when proofing colors.\n" +"(not suited for photography)." +msgstr "" +"• perceptueel: verplaatst kleuren van buiten naar binnen de kleurruimte, met " +"behoud\n" +"van gradatie maar met kleurafwijkingen.\n" +"NB perceptueel is vaak een leveranciers-eigen LUT voor een bepaalde " +"bestemming.\n" +"\n" +"• relatieve colorimetrie: behoudt de helderheid en vermindert de " +"verzadiging\n" +"zo min mogelijk totdat de kleuren binnen de kleurruimte passen.\n" +"\n" +"• verzadiging: ontworpen om in het oog springende zakelijke afbeeldingen te\n" +"presenteren door de verzadiging te behouden. (niet geschikt voor " +"fotografie).\n" +"\n" +"• absolute colorimetrie: pas het witpunt van de afbeelding aan het witpunt " +"van\n" +"het bestemmingsmedium aan en doe niets anders. voornamelijk gebruikt bij\n" +"het proofen van kleuren. (niet geschikt voor fotografie)." + +#: ../src/libs/export.c:1367 ../src/libs/print_settings.c:2833 +msgid "style" +msgstr "stijl" + +#: ../src/libs/export.c:1370 +msgid "temporary style to use while exporting" +msgstr "tijdelijke stijl te gebruiken tijdens het exporteren" + +#: ../src/libs/export.c:1377 ../src/libs/print_settings.c:2876 +msgid "" +"whether the style items are appended to the history or replacing the history" +msgstr "of de stijlitems worden toegevoegd of ze vervangen de historie" + +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 +msgid "replace history" +msgstr "vervang historie" + +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 +msgid "append history" +msgstr "toevoegen historie" + +#: ../src/libs/export.c:1398 +msgctxt "actionbutton" +msgid "export" +msgstr "exporteren" + +#: ../src/libs/export.c:1400 +msgid "export with current settings" +msgstr "exporteer met huidige instellingen" + +#: ../src/libs/export_metadata.c:148 +msgid "select tag" +msgstr "selecteer label" + +#: ../src/libs/export_metadata.c:150 +msgid "_add" +msgstr "voeg toe" + +#: ../src/libs/export_metadata.c:151 ../src/libs/geotagging.c:811 +msgid "_done" +msgstr "gereed" + +#: ../src/libs/export_metadata.c:162 +msgid "list filter" +msgstr "filterlijst" + +#: ../src/libs/export_metadata.c:173 +msgid "" +"list of available tags. click 'add' button or double-click on tag to add the " +"selected one" +msgstr "" +"lijst met beschikbare labels,\n" +"klik op de knop 'toevoegen' of dubbelklik op de label om de geselecteerde " +"toe te voegen" + +#: ../src/libs/export_metadata.c:274 +msgid "edit metadata exportation" +msgstr "bewerk metadata uitvoer" + +#: ../src/libs/export_metadata.c:293 +msgid "general settings" +msgstr "algemene instellingen" + +#: ../src/libs/export_metadata.c:298 +msgid "EXIF data" +msgstr "EXIF data" + +#: ../src/libs/export_metadata.c:299 +msgid "export EXIF metadata" +msgstr "exporteer EXIF metadata" + +#: ../src/libs/export_metadata.c:302 +msgid "export darktable XMP metadata (from metadata editor module)" +msgstr "exporteer darktable XMP metadata (van metadata bewerkingsmodule)" + +#: ../src/libs/export_metadata.c:312 +msgid "only embedded" +msgstr "alleen ingebed" + +#: ../src/libs/export_metadata.c:313 +msgid "" +"per default the interface sends some (limited) metadata beside the image to " +"remote storage.\n" +"to avoid this and let only image embedded darktable XMP metadata, check this " +"flag.\n" +"if remote storage doesn't understand darktable XMP metadata, you can use " +"calculated metadata instead" +msgstr "" +"standaard stuurt de interface enkele (beperkte) metadata naast de afbeelding " +"naar externe opslag.\n" +"vink deze vlag aan om dit te voorkomen en alleen ingebedde darktable XMP-" +"metagegevens te gebruiken.\n" +"als externe opslag XMP-metadata van darktable niet begrijpt, kunt u in " +"plaats daarvan berekende metadata gebruiken" + +#: ../src/libs/export_metadata.c:319 ../src/libs/image.c:623 +msgid "geo tags" +msgstr "geo labels" + +#: ../src/libs/export_metadata.c:320 +msgid "export geo tags" +msgstr "exporteer geo labels" + +#: ../src/libs/export_metadata.c:323 +msgid "export tags (to Xmp.dc.Subject)" +msgstr "exporteer labels (naar Xmp.dc.Subject)" + +#: ../src/libs/export_metadata.c:331 +msgid "private tags" +msgstr "privé labels" + +#: ../src/libs/export_metadata.c:332 +msgid "export private tags" +msgstr "exporteer privé labels" + +#: ../src/libs/export_metadata.c:334 +msgid "synonyms" +msgstr "synoniemen" + +#: ../src/libs/export_metadata.c:335 +msgid "export tags synonyms" +msgstr "exporteer synoniem labels" + +#: ../src/libs/export_metadata.c:337 +msgid "omit hierarchy" +msgstr "hiërarchie weglaten" + +#: ../src/libs/export_metadata.c:338 +msgid "" +"only the last part of the hierarchical tags is included. can be useful if " +"categories are not used" +msgstr "" +"alleen het laatste deel van de hiërarchische labels wordt opgenomen\n" +"dit is zinvol als er geen categorieën worden gebruikt" + +#: ../src/libs/export_metadata.c:341 +msgid "hierarchical tags" +msgstr "hiërarchische labels" + +#: ../src/libs/export_metadata.c:342 +msgid "export hierarchical tags (to Xmp.lr.Hierarchical Subject)" +msgstr "hiërarchische labels exporteren(naar Xmp.lr.Hierarchical Subject)" + +#: ../src/libs/export_metadata.c:344 +msgid "develop history" +msgstr "historie ontwikkelen" + +#: ../src/libs/export_metadata.c:345 +msgid "" +"export darktable development data (recovery purpose in case of loss of " +"database or XMP file)" +msgstr "" +"export darktable ontwikkel gegevens (herstel doelstelling in geval van " +"verlies van database of xmp bestand)" + +#: ../src/libs/export_metadata.c:352 +msgid "per metadata settings" +msgstr "per metadata instellingen" + +#: ../src/libs/export_metadata.c:364 +msgid "redefined tag" +msgstr "opnieuw gedefinieerd label" + +#: ../src/libs/export_metadata.c:370 +msgid "formula" +msgstr "formule" + +#: ../src/libs/export_metadata.c:373 +msgid "" +"list of calculated metadata\n" +"click on '+' button to select and add new metadata\n" +"if formula is empty, the corresponding metadata is removed from exported " +"file,\n" +"if formula is '=', the EXIF metadata is exported even if EXIF data are " +"disabled\n" +"otherwise the corresponding metadata is calculated and added to exported " +"file\n" +"click on formula cell to edit\n" +"type '$(' to activate the completion and see the list of variables" +msgstr "" +"lijst met berekende metagegevens\n" +"klik op '+' knop om nieuwe metagegevens te selecteren en toe te voegen\n" +"als de formule leeg is, worden de bijbehorende metagegevens verwijderd uit " +"het geëxporteerde bestand\n" +"als de formule is '=', de exif-metagegevens worden geëxporteerd, zelfs als " +"EXIF gegevens zijn uitgeschakeld\n" +"anders worden de bijbehorende metagegevens berekend en toegevoegd aan het " +"geëxporteerde bestand\n" +"klik op formule cel om te bewerken\n" +"typ '$(' om het afronden te activeren en de lijst van variabelen te zien" + +#: ../src/libs/export_metadata.c:430 +msgid "add an output metadata tag" +msgstr "voeg een uitvoer metadata label toe" + +#: ../src/libs/export_metadata.c:435 +msgid "delete metadata tag" +msgstr "verwijder metadata label" + +#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:130 +msgid "full path" +msgstr "volledig pad" + +#: ../src/libs/filtering.c:72 +msgid "group" +msgstr "groeperen" + +#: ../src/libs/filtering.c:73 ../src/libs/live_view.c:313 +msgid "id" +msgstr "id" + +#: ../src/libs/filtering.c:74 +msgid "custom sort" +msgstr "aangepaste sortering" + +#: ../src/libs/filtering.c:75 +msgid "shuffle" +msgstr "schuiven" + +#: ../src/libs/filtering.c:269 +msgid "collection filters" +msgstr "collectie filters" + +#: ../src/libs/filtering.c:302 +msgid "initial setting" +msgstr "initiële instelling" + +#: ../src/libs/filtering.c:321 +msgid "imported: last 24h" +msgstr "geïmporteerd: laatste 24 uur" + +#: ../src/libs/filtering.c:326 +msgid "imported: last 30 days" +msgstr "geïmporteerd: laatste 30 dagen" + +#: ../src/libs/filtering.c:332 +msgid "taken: last 24h" +msgstr "genomen: laatste 24 uur" + +#: ../src/libs/filtering.c:336 +msgid "taken: last 30 days" +msgstr "genomen: laatste 30 dagen" + +#: ../src/libs/filtering.c:728 +msgid "click or click&drag to select one or multiple values" +msgstr "klik of klik&sleep om een of meerdere waarden te selecteren" + +#: ../src/libs/filtering.c:729 +msgid "right-click opens a menu to select the available values" +msgstr "rechtermuisknop opent menu met beschikbare waarden" + +#: ../src/libs/filtering.c:826 +#, c-format +msgid "you can't have more than %d rules" +msgstr "u kunt niet meer dan %d regels hebben" + +#: ../src/libs/filtering.c:948 ../src/libs/filtering.c:1618 +msgid "rule property" +msgstr "regel eigenschap" + +#: ../src/libs/filtering.c:1013 +msgid "" +"rule property\n" +"this can't be changed as the rule is pinned to the toolbar" +msgstr "" +"regel instellingen\n" +"deze kunnen niet gewijzigd worden omdat deze is vastgepind in het paneel" + +#: ../src/libs/filtering.c:1095 +msgctxt "quickfilter" +msgid "filter" +msgstr "filter" + +#: ../src/libs/filtering.c:1124 +msgid "" +"this rule is pinned to the top toolbar\n" +"click to un-pin" +msgstr "" +"deze regel is vast gepind in het boven paneel\n" +"klik om te ontkoppelen" + +#: ../src/libs/filtering.c:1125 +msgid "you can't disable the rule as it is pinned to the toolbar" +msgstr "" +"deze regel kan niet uitgeschakeld worden om dat deze is vast gepind in het " +"paneel" + +#: ../src/libs/filtering.c:1126 +msgid "you can't remove the rule as it is pinned to the toolbar" +msgstr "" +"deze regel kan niet verwijderd worden omdat deze is vast gepind in het paneel" + +#: ../src/libs/filtering.c:1131 +msgid "click to pin this rule to the top toolbar" +msgstr "klik om deze regel vast te pinnen aan het boven paneel" + +#: ../src/libs/filtering.c:1132 +msgid "remove this collect rule" +msgstr "verwijder verzamel regel" + +#: ../src/libs/filtering.c:1134 +msgid "this rule is enabled" +msgstr "deze regel is ingeschakeld" + +#: ../src/libs/filtering.c:1136 +msgid "this rule is disabled" +msgstr "deze regel is uitgeschakeld" + +#: ../src/libs/filtering.c:1264 +msgid "or" +msgstr "of" + +#: ../src/libs/filtering.c:1265 +msgid "and not" +msgstr "en niet" + +#: ../src/libs/filtering.c:1267 +msgid "define how this rule should interact with the previous one" +msgstr "definieer hoe deze regel samenwerkt met de vorige" + +#: ../src/libs/filtering.c:1528 +msgid " (off)" +msgstr " (uit)" + +#: ../src/libs/filtering.c:1725 +msgid "you can't add more rules." +msgstr "je kunt geen regels meer toevoegen." + +#: ../src/libs/filtering.c:1759 +msgid "shown filters" +msgstr "getoonde filters" + +#: ../src/libs/filtering.c:1774 +msgid "new filter" +msgstr "nieuwe filter" + +#. the actions part of the popover +#: ../src/libs/filtering.c:1781 +msgid "actions" +msgstr "acties" + +#: ../src/libs/filtering.c:1784 +msgid "reset quickfilters" +msgstr "herstel snelle filters" + +#: ../src/libs/filtering.c:1957 +msgid "sort order" +msgstr "sorteer volgorde" + +#: ../src/libs/filtering.c:1960 +msgid "determine the sort order of shown images" +msgstr "de sorteervolgorde van de getoonde afbeeldingen bepalen" + +#: ../src/libs/filtering.c:1980 +msgid "sort direction" +msgstr "sorteer richting" + +#: ../src/libs/filtering.c:1985 +msgid "remove this sort order" +msgstr "verwijder deze sorteervolgorde" + +#: ../src/libs/filtering.c:2069 +#, c-format +msgid "you can't have more than %d sort orders" +msgstr "u kunt niet meer dan %d sorteer opdrachten hebben" + +#: ../src/libs/filtering.c:2123 +msgid "DESC" +msgstr "DESC" + +#: ../src/libs/filtering.c:2123 +msgid "ASC" +msgstr "ASC" + +#: ../src/libs/filtering.c:2234 +msgid "new rule" +msgstr "nieuwe regel" + +#: ../src/libs/filtering.c:2235 +msgid "append new rule to collect images" +msgstr "toevoegen nieuwe regel om afbeeldingen te verzamelen" + +#: ../src/libs/filtering.c:2246 ../src/libs/tools/filter.c:116 +msgid "sort by" +msgstr "sorteer op" + +#: ../src/libs/filtering.c:2254 +msgid "new sort" +msgstr "nieuwe sortering" + +#: ../src/libs/filtering.c:2255 +msgid "append new sort to order images" +msgstr "toevoegen nieuwe sortering om afbeeldingen te sorteren" + +#: ../src/libs/filtering.c:2258 +msgid "revert to a previous set of sort orders" +msgstr "ga terug naar vorige instelling van sorteer opdracht" + +#. we change the tooltip of the reset button here, as we are sure the header is defined now +#: ../src/libs/filtering.c:2308 +msgid "" +"reset\n" +"ctrl+click to remove pinned rules too" +msgstr "" +"reset\n" +"ctrl-klik om ook vastgepinde regels te verwijderen" + +#: ../src/libs/filters/colors.c:140 +msgid "Y" +msgstr "Y" + +#: ../src/libs/filters/colors.c:149 +msgid "P" +msgstr "P" + +#: ../src/libs/filters/colors.c:269 +msgid "color filter" +msgstr "kleuren filter" + +#: ../src/libs/filters/colors.c:294 +msgid "" +"filter by images color label\n" +"click to toggle the color label selection\n" +"ctrl+click to exclude the color label\n" +"the gray button affects all color labels" +msgstr "" +"filter op afbeelding kleuren label\n" +"klik om de kleuren label selectie te wisselen\n" +"Ctrl+klik om de kleuren label uit te sluiten\n" +"de grijs knop heeft invloed op alle kleuren labels" + +#. create the filter combobox +#: ../src/libs/filters/colors.c:301 ../src/libs/filters/colors.c:312 +#: ../src/libs/filters/grouping.c:167 ../src/libs/filters/history.c:153 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/filters/module_order.c:161 +#: ../src/libs/filters/rating.c:199 ../src/libs/filters/rating.c:210 +#: ../src/libs/filters/rating_range.c:356 +msgid "rules" +msgstr "regels" + +#: ../src/libs/filters/colors.c:306 +msgid "" +"filter by images color label\n" +"and (∩): images having all selected color labels\n" +"or (∪): images with at least one of the selected color labels" +msgstr "" +"filter op afbeelding kleuren label\n" +"en (∩): afbeeldingen hebben alle geselecteerde kleuren labels\n" +"of (∪): afbeeldingen met tenminste een van de geselecteerde kleuren labels" + +#: ../src/libs/filters/filename.c:370 +msgid "" +"enter filename to search.\n" +"multiple values can be separated by ','\n" +"\n" +"right-click to get existing filenames" +msgstr "" +"vul bestandsnaam in om te zoeken.\n" +"meerdere waarden kunnen gescheiden worden door ','\n" +"\n" +"rechtermuisknop om de bestaande bestandsnamen te krijgen" + +#: ../src/libs/filters/filename.c:381 +msgid "extension" +msgstr "extensie" + +#: ../src/libs/filters/filename.c:382 +msgid "" +"enter extension to search with starting dot\n" +"multiple values can be separated by ','\n" +"handled keywords: 'RAW', 'NOT RAW', 'LDR', 'HDR'\n" +"\n" +"right-click to get existing extensions" +msgstr "" +"vul extensie in om te zoeken startend met een punt\n" +"meerdere waarden kunnen gescheiden worden door ','\n" +"te gebruiken trefwoorden: 'RAW', 'NOT RAW', 'LDR', 'HDR'\n" +"\n" +"rechtermuisknop om bestaande extensies te krijgen" + +#: ../src/libs/filters/filename.c:410 +msgid "" +"click to select filename\n" +"ctrl+click to select multiple values" +msgstr "" +"klik om bestandsnaam te selecteren\n" +"ctrl-klik om meerdere waarden te selecteren" + +#: ../src/libs/filters/filename.c:437 +msgid "" +"click to select extension\n" +"ctrl+click to select multiple values" +msgstr "" +"klik om extensie te selecteren\n" +"ctrl-klik om meerdere waarden te selecteren" + +#. the button to close the popup +#: ../src/libs/filters/filename.c:457 +msgid "ok" +msgstr "ok" + +#: ../src/libs/filters/grouping.c:141 ../src/libs/filters/grouping.c:169 +msgid "ungrouped images" +msgstr "gedegroepeerde afbeeldingen" + +#: ../src/libs/filters/grouping.c:168 +msgid "select the type of grouped image to filter" +msgstr "selecteer de type van afbeelding groepering om te filteren" + +#. predefined selections +#: ../src/libs/filters/grouping.c:169 ../src/libs/filters/history.c:38 +#: ../src/libs/filters/local_copy.c:38 ../src/libs/filters/module_order.c:155 +#: ../src/libs/filters/rating_range.c:59 ../src/libs/filters/rating_range.c:83 +#: ../src/libs/filters/rating_range.c:131 ../src/libs/filters/ratio.c:68 +#: ../src/libs/filters/ratio.c:81 +msgid "all images" +msgstr "alle afbeeldingen" + +#: ../src/libs/filters/history.c:153 +msgid "filter on history state" +msgstr "filter op historie status" + +#: ../src/libs/filters/local_copy.c:142 +msgid "local copied state filter" +msgstr "lokaal gekopieerde status filter" + +#: ../src/libs/filters/module_order.c:161 +msgid "filter images based on their module order" +msgstr "filter afbeeldingen op de module volgorde" + +#: ../src/libs/filters/rating.c:199 +msgid "comparator" +msgstr "vergelijker" + +#: ../src/libs/filters/rating.c:200 ../src/libs/filters/rating.c:210 +msgid "filter by images rating" +msgstr "filter op afbeelding beoordeling" + +#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:596 +#: ../src/libs/tools/ratings.c:56 +msgid "ratings" +msgstr "classificeringen" + +#: ../src/libs/filters/rating.c:211 +msgid "unstarred only" +msgstr "alleen zonder ster" + +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:65 +#: ../src/libs/filters/rating_range.c:89 +msgid "rejected only" +msgstr "alleen afgekeurde" + +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:62 +#: ../src/libs/filters/rating_range.c:86 ../src/libs/filters/rating_range.c:158 +msgid "all except rejected" +msgstr "alles behalve afgekeurde" + +#: ../src/libs/filters/rating_range.c:67 ../src/libs/filters/rating_range.c:91 +msgid "not rated only" +msgstr "alleen geen waardering" + +#: ../src/libs/filters/rating_range.c:296 +msgid "better" +msgstr "beter" + +#: ../src/libs/filters/rating_range.c:297 +msgid "worse" +msgstr "erger" + +# kap ? +#: ../src/libs/filters/rating_range.c:298 +msgid "cap" +msgstr "hoogte limiet" + +#: ../src/libs/filters/rating_range.c:313 +msgid "rating filter" +msgstr "beoordelingsfilter" + +#: ../src/libs/filters/ratio.c:70 ../src/libs/filters/ratio.c:82 +msgid "portrait images" +msgstr "portret afbeeldingen" + +#: ../src/libs/filters/ratio.c:71 ../src/libs/filters/ratio.c:83 +msgid "square images" +msgstr "vierkante afbeeldingen" + +#: ../src/libs/filters/ratio.c:72 ../src/libs/filters/ratio.c:84 +msgid "landscape images" +msgstr "landschap afbeeldingen" + +#: ../src/libs/filters/search.c:179 +#, no-c-format +msgid "" +"filter by text from images metadata, camera brand/model, tags, file path and " +"name\n" +"`%' is the wildcard character\n" +"by default start and end wildcards are auto-applied\n" +"starting or ending with a double quote disables the corresponding wildcard\n" +"is dimmed during the search execution" +msgstr "" +"filter op tekst uit metadata, labels, bestandspad en naam van de afbeelding\n" +"`%' is de wildcard karakter\n" +"standaard worden wildcards aan begin en eind toegepast\n" +"starten of eindigen met een dubbele aanhalingsteken schakelt de " +"desbetreffende wildcard uit\n" +"is gedimd tijdens het uitvoeren van de zoekactie" + +#: ../src/libs/geotagging.c:368 +msgid "apply offset and geo-location" +msgstr "offset en geolocatie toepassen" + +#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1914 +msgid "apply geo-location" +msgstr "geolocatie toepassen" + +#: ../src/libs/geotagging.c:371 +msgid "" +"apply offset and geo-location to matching images\n" +"double operation: two ctrl-z to undo" +msgstr "" +"pas offset en geolocatie toe op overeenkomende afbeeldingen\n" +"dubbele bewerking: twee ctrl-Z om ongedaan te maken" + +#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1915 +msgid "apply geo-location to matching images" +msgstr "pas geolocatie toe op overeenkomende afbeeldingen" + +#: ../src/libs/geotagging.c:809 +msgid "GPX file track segments" +msgstr "GPX-bestandstracksegmenten" + +#: ../src/libs/geotagging.c:831 ../src/libs/geotagging.c:1873 +msgid "start time" +msgstr "starttijd" + +#: ../src/libs/geotagging.c:832 +msgid "end time" +msgstr "eindtijd" + +#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1875 +msgid "points" +msgstr "punten" + +#: ../src/libs/geotagging.c:834 ../src/libs/geotagging.c:1877 +#: ../src/libs/image.c:494 +msgid "images" +msgstr "afbeeldingen" + +#: ../src/libs/geotagging.c:927 +msgid "open GPX file" +msgstr "open GPX bestand" + +#: ../src/libs/geotagging.c:928 ../src/libs/tools/lighttable.c:330 +#: ../src/libs/tools/lighttable.c:399 ../src/views/darkroom.c:2091 +msgid "preview" +msgstr "vooraf bekijken" + +#: ../src/libs/geotagging.c:941 +msgid "GPS data exchange format" +msgstr "GPS data exchange format" + +#: ../src/libs/geotagging.c:1743 +msgid "date/time" +msgstr "datum-tijd" + +#: ../src/libs/geotagging.c:1744 +msgid "" +"enter the new date/time (YYYY:MM:DD hh:mm:ss[.sss])\n" +"key in the new numbers or scroll over the cell" +msgstr "" +"voer de nieuwe datum-tijd in (yyyy:mm:dd hh:mm:ss[.sss])\n" +"toets de nieuwe cijfers in of scroll over de cel" + +#: ../src/libs/geotagging.c:1748 +msgid "original date/time" +msgstr "originele datum-tijd" + +#: ../src/libs/geotagging.c:1752 +msgid "lock date/time offset value to apply it onto another selection" +msgstr "vergrendel tijdsverschil om deze toe te passen op een andere selectie" + +#: ../src/libs/geotagging.c:1756 +msgid "date/time offset" +msgstr "tijdsverschuiving" + +#: ../src/libs/geotagging.c:1757 +msgid "offset or difference ([-]dd hh:mm:ss[.sss])" +msgstr "tijdsverschuiving ([-]dd hh:mm:ss[.sss])" + +#. apply +#: ../src/libs/geotagging.c:1761 +msgid "apply offset" +msgstr "pas compensatie toe" + +#: ../src/libs/geotagging.c:1762 +msgid "apply offset to selected images" +msgstr "pas compensatie toe op geselecteerde afbeeldingen" + +#: ../src/libs/geotagging.c:1765 +msgid "apply date/time" +msgstr "pas datum-tijd toe" + +#: ../src/libs/geotagging.c:1766 +msgid "apply the same date/time to selected images" +msgstr "pas zelfde datum-tijd toe op geselecteerde afbeeldingen" + +#: ../src/libs/geotagging.c:1776 +msgid "" +"start typing to show a list of permitted values and select your timezone.\n" +"press enter to confirm, so that the asterisk * disappears" +msgstr "" +"start met typen om de lijst met toegestane waarden te zien en selecteer je " +"tijdzone.\n" +"druk op enter om te bevestigen, zodat de asterisk * verdwijnt" + +#. gpx +#: ../src/libs/geotagging.c:1819 +msgid "apply GPX track file..." +msgstr "pas GPX track-bestand toe..." + +#: ../src/libs/geotagging.c:1820 +msgid "parses a GPX file and updates location of selected images" +msgstr "" +"leest een GPX bestand en past de locatie aan van geselecteerde afbeeldingen" + +#: ../src/libs/geotagging.c:1831 +msgctxt "section" +msgid "GPX file" +msgstr "GPX bestand" + +#: ../src/libs/geotagging.c:1838 +msgid "select a GPX track file..." +msgstr "selecteer een GPX track-bestand..." + +#: ../src/libs/geotagging.c:1855 +msgid "" +"list of track segments in the GPX file, for each segment:\n" +"- the start date/time in local time (LT)\n" +"- the number of track points\n" +"- the number of matching images based on images date/time, offset and time " +"zone\n" +"- more detailed time information hovering the row" +msgstr "" +"lijst met tracksegmenten in het gpx-bestand, voor elk segment:\n" +"- de startdatum en tijd in lokale tijd (LT)\n" +"- het aantal trackpunten\n" +"- het aantal overeenkomende afbeeldingen op basis van de datum / tijd, " +"offset en tijdzone\n" +"- meer gedetailleerde tijdinformatie zwevend boven de rij" + +#: ../src/libs/geotagging.c:1894 +msgid "preview images" +msgstr "bekijk afbeeldingen vooraf" + +#: ../src/libs/geotagging.c:1899 +msgid "show on map matching images" +msgstr "toon op de kaart overeenkomende afbeeldingen" + +#: ../src/libs/geotagging.c:1902 +msgid "select images" +msgstr "selecteer afbeeldingen" + +#: ../src/libs/geotagging.c:1903 +msgid "select matching images" +msgstr "selecteer bijpassende afbeeldingen" + +#: ../src/libs/geotagging.c:1911 +msgid "number of matching images versus selected images" +msgstr "aantal overeenkomende afbeeldingen versus geselecteerde afbeeldingen" + +#: ../src/libs/histogram.c:110 +msgid "monochromatic" +msgstr "monochroom" + +#: ../src/libs/histogram.c:111 +msgid "analogous" +msgstr "analoog" + +#: ../src/libs/histogram.c:112 +msgid "analogous complementary" +msgstr "analoog complementair" + +#: ../src/libs/histogram.c:113 +msgid "complementary" +msgstr "complementair" + +#: ../src/libs/histogram.c:114 +msgid "split complementary" +msgstr "gesplitst complementair" + +#: ../src/libs/histogram.c:115 +msgid "dyad" +msgstr "dyade" + +#: ../src/libs/histogram.c:116 +msgid "triad" +msgstr "triade" + +#: ../src/libs/histogram.c:117 +msgid "tetrad" +msgstr "tetrade" + +#: ../src/libs/histogram.c:123 +msgid "vectorscope" +msgstr "vectorscope" + +#: ../src/libs/histogram.c:124 +msgid "waveform" +msgstr "golfvorm" + +#: ../src/libs/histogram.c:125 +msgid "RGB parade" +msgstr "RGB parade" + +#: ../src/libs/histogram.c:126 ../src/libs/histogram.c:2622 +msgid "histogram" +msgstr "histogram" + +#: ../src/libs/histogram.c:218 +msgid "scopes" +msgstr "scopes" + +#: ../src/libs/histogram.c:757 +msgid "" +"unsupported vectorscope profile selected, it will be replaced with linear " +"Rec2020" +msgstr "" +"niet ondersteund vectorscope profiel geselecteerd, wordt vervangen door " +"lineair Rec2020" + +#: ../src/libs/histogram.c:1715 +msgid "scroll to coarse-rotate" +msgstr "scroll om te roteren" + +#: ../src/libs/histogram.c:1716 +msgid "ctrl+scroll to fine rotate" +msgstr "ctrl+scroll om nauwkeurig te roteren" + +#: ../src/libs/histogram.c:1717 +msgid "shift+scroll to change width" +msgstr "ctrl+scroll om breedte te wijzigen" + +#: ../src/libs/histogram.c:1718 +msgid "alt+scroll to cycle" +msgstr "alt+scroll door collectie" + +#: ../src/libs/histogram.c:1732 +msgid "drag to change black point" +msgstr "verander zwartpunt door te slepen" + +#: ../src/libs/histogram.c:1733 ../src/libs/histogram.c:1740 +msgid "double-click resets" +msgstr "dubbelklikken om te resetten" + +#: ../src/libs/histogram.c:1739 +msgid "drag to change exposure" +msgstr "verander belichting door te slepen" + +#: ../src/libs/histogram.c:1923 ../src/libs/histogram.c:1965 +msgid "set scale to linear" +msgstr "stel schaal in op lineair" + +#: ../src/libs/histogram.c:1928 ../src/libs/histogram.c:1970 +msgid "set scale to logarithmic" +msgstr "stel schaal in op logaritmisch" + +#: ../src/libs/histogram.c:1946 +msgid "set scope to vertical" +msgstr "scope instellen op verticaal" + +#: ../src/libs/histogram.c:1951 +msgid "set scope to horizontal" +msgstr "scope instellen op horizontaal" + +#: ../src/libs/histogram.c:1980 +msgid "set view to AzBz" +msgstr "stel weergave in op AzBz" + +#: ../src/libs/histogram.c:1986 +msgid "set view to RYB" +msgstr "stel weergave in op RYB" + +#: ../src/libs/histogram.c:1992 +msgid "set view to u*v*" +msgstr "weergave instellen op u*v*" + +#: ../src/libs/histogram.c:2625 ../src/libs/histogram.c:2691 +msgid "cycle histogram modes" +msgstr "schakel tussen histogram modes" + +#: ../src/libs/histogram.c:2630 ../src/libs/histogram.c:2693 +msgid "hide histogram" +msgstr "verberg histogram" + +#: ../src/libs/histogram.c:2696 ../src/libs/histogram.c:2729 +msgid "switch histogram view" +msgstr "wissel histogram modus" + +#: ../src/libs/histogram.c:2704 +msgid "toggle blue channel" +msgstr "blauw kanaal aan/uit" + +#: ../src/libs/histogram.c:2706 ../src/libs/histogram.c:2715 +#: ../src/libs/histogram.c:2724 +msgid "toggle colors" +msgstr "schakel kleuren" + +#: ../src/libs/histogram.c:2713 +msgid "toggle green channel" +msgstr "groen kanaal aan/uit" + +#: ../src/libs/histogram.c:2722 +msgid "toggle red channel" +msgstr "rood kanaal aan/uit" + +#: ../src/libs/histogram.c:2734 +msgid "cycle vectorscope types" +msgstr "wissel vectorscope types" + +#: ../src/libs/histogram.c:2745 +msgid "color harmonies" +msgstr "kleurharmonieën" + +#: ../src/libs/histogram.c:2759 +msgid "cycle color harmonies" +msgstr "wissel kleurharmonieën" + +#: ../src/libs/history.c:127 +msgid "compress history stack" +msgstr "comprimeer historie" + +#: ../src/libs/history.c:128 +msgid "" +"create a minimal history stack which produces the same image\n" +"ctrl+click to truncate history to the selected item" +msgstr "" +"creëer een minimaal aantal bewerkingsstappen voor hetzelfde resultaat\n" +"ctrl-click om de historie af te kappen bij het geselecteerde item" + +#: ../src/libs/history.c:139 +msgid "create a style from the current history stack" +msgstr "creëer stijl van bewerkingsstappen" + +#: ../src/libs/history.c:141 +msgid "create style from history" +msgstr "creëer stijl uit historie" + +#: ../src/libs/history.c:212 +msgid "always-on module" +msgstr "standaard module aan" + +#: ../src/libs/history.c:218 +msgid "default enabled module" +msgstr "standaard ingeschakelde module" + +#: ../src/libs/history.c:225 +msgid "deprecated module" +msgstr "verouderde module" + +#: ../src/libs/history.c:945 +msgid "colorspace" +msgstr "kleurruimte" + +#: ../src/libs/history.c:947 +msgid "mask mode" +msgstr "maskeermodus" + +#: ../src/libs/history.c:949 +msgid "blend mode" +msgstr "overvloeiwijze" + +#: ../src/libs/history.c:951 +msgid "blend operation" +msgstr "mengoperatie" + +#: ../src/libs/history.c:953 +msgid "blend fulcrum" +msgstr "mengdraaipunt" + +#: ../src/libs/history.c:961 +msgid "mask blur" +msgstr "masker verdoezelen" + +#: ../src/libs/history.c:964 +msgid "raster mask instance" +msgstr "raster masker instantie" + +#: ../src/libs/history.c:965 +msgid "raster mask id" +msgstr "raster masker id" + +#: ../src/libs/history.c:966 +msgid "invert mask" +msgstr "masker omkeren" + +#: ../src/libs/history.c:971 +msgid "drawn mask polarity" +msgstr "getekende maskerpolariteit" + +#: ../src/libs/history.c:975 +#, c-format +msgid "a drawn mask was added" +msgstr "een getekend masker werd toegevoegd" + +#: ../src/libs/history.c:977 +#, c-format +msgid "the drawn mask was removed" +msgstr "het getekend masker werd verwijderd" + +#: ../src/libs/history.c:978 +#, c-format +msgid "the drawn mask was changed" +msgstr "het getekend masker werd gewijzigd" + +#: ../src/libs/history.c:1010 +msgid "parametric output mask:" +msgstr "parametrisch uitvoermasker:" + +#: ../src/libs/history.c:1011 +msgid "parametric input mask:" +msgstr "parametrisch inputmasker:" + +#: ../src/libs/history.c:1322 +msgid "delete image's history?" +msgstr "bewerkingsstappen van afbeelding verwijderen?" + +#: ../src/libs/history.c:1323 +msgid "do you really want to clear history of current image?" +msgstr "wilt u echt de historie verwijderen van de huidige afbeelding?" + +#: ../src/libs/image.c:74 +msgid "actions on selection" +msgstr "acties op selectie" + +#: ../src/libs/image.c:302 +msgid "delete (trash)" +msgstr "verwijderen" + +#: ../src/libs/image.c:305 +msgid "physically delete from disk (using trash if possible)" +msgstr "" +"afbeelding(en) fysiek verwijderen van de schijf (gebruik prullenmand indien " +"mogelijk)" + +#: ../src/libs/image.c:306 +msgid "physically delete from disk immediately" +msgstr "onmiddellijk fysiek verwijderen van schijf" + +#: ../src/libs/image.c:506 ../src/libs/modulegroups.c:3813 +#: ../src/libs/styles.c:880 +msgid "remove" +msgstr "vergeten" + +#: ../src/libs/image.c:508 +msgid "remove images from the image library, without deleting" +msgstr "haal afbeeldingen uit de bibliotheek, zonder bestanden te verwijderen" + +#: ../src/libs/image.c:517 +msgid "move..." +msgstr "verplaatsen..." + +#: ../src/libs/image.c:519 +msgid "move to other folder" +msgstr "verplaats naar andere map" + +#: ../src/libs/image.c:522 +msgid "copy..." +msgstr "kopiëren..." + +#: ../src/libs/image.c:524 +msgid "copy to other folder" +msgstr "kopieer naar andere map" + +#: ../src/libs/image.c:528 +msgid "create HDR" +msgstr "creëer HDR" + +#: ../src/libs/image.c:530 +msgid "create a high dynamic range image from selected shots" +msgstr "creëer een HDR-afbeelding van geselecteerde opnamen" + +#: ../src/libs/image.c:535 +msgid "add a duplicate to the image library, including its history stack" +msgstr "voeg een duplicaat toe aan de bibliotheek, incl. alle bewerkingen" + +#: ../src/libs/image.c:542 ../src/libs/image.c:547 +msgid "rotate selected images 90 degrees CCW" +msgstr "draai geselecteerde afbeeldingen een kwartslag linksom" + +#: ../src/libs/image.c:553 ../src/libs/image.c:558 +msgid "rotate selected images 90 degrees CW" +msgstr "draai geselecteerde afbeeldingen een kwartslag rechtsom" + +#: ../src/libs/image.c:561 +msgid "reset rotation" +msgstr "reset rotatie" + +#: ../src/libs/image.c:563 +msgid "reset rotation to EXIF data" +msgstr "reset rotatie naar EXIF waarde" + +#: ../src/libs/image.c:566 +msgid "copy locally" +msgstr "kopieer lokaal" + +#: ../src/libs/image.c:568 +msgid "copy the image locally" +msgstr "" +"kopieer afbeelding lokaal (bedoeld voor bewerkingen van afbeeldingen op niet " +"aangesloten externe schijven)" + +#: ../src/libs/image.c:572 +msgid "resync local copy" +msgstr "resync lokale kopie" + +#: ../src/libs/image.c:574 +msgid "synchronize the image's XMP and remove the local copy" +msgstr "synchroniseer xmp-bestand en verwijder de lokale kopie" + +#: ../src/libs/image.c:578 +msgctxt "selected images action" +msgid "group" +msgstr "groeperen" + +#: ../src/libs/image.c:580 +msgid "add selected images to expanded group or create a new one" +msgstr "" +"voeg geselecteerde afbeelding(en) toe aan uitgebreide groep of creëer een " +"nieuwe" + +#: ../src/libs/image.c:584 +msgid "ungroup" +msgstr "degroeperen" + +#: ../src/libs/image.c:586 +msgid "remove selected images from the group" +msgstr "verwijder geselecteerde afbeelding(en) uit groep" + +#: ../src/libs/image.c:598 +msgid "select ratings metadata" +msgstr "selecteer classificatie metadata" + +#: ../src/libs/image.c:605 +msgid "colors" +msgstr "kleuren" + +#: ../src/libs/image.c:607 +msgid "select colors metadata" +msgstr "selecteer kleur metadata" + +#: ../src/libs/image.c:616 +msgid "select tags metadata" +msgstr "selecteer label metadata" + +#: ../src/libs/image.c:625 +msgid "select geo tags metadata" +msgstr "kies geo labels metadata" + +#: ../src/libs/image.c:636 +msgid "select darktable metadata (from metadata editor module)" +msgstr "selecteer darktable metadata (van metadata bewerkingsmodule)" + +#: ../src/libs/image.c:649 +msgid "set the selected image as source of metadata" +msgstr "stel de geselecteerde afbeelding in als bron voor metadata" + +#: ../src/libs/image.c:656 +msgid "paste selected metadata on selected images" +msgstr "plak geselecteerde metadata aan geselecteerde afbeeldingen" + +#: ../src/libs/image.c:661 +msgid "clear selected metadata on selected images" +msgstr "wis geselecteerde metadata van geselecteerde afbeeldingen" + +#: ../src/libs/image.c:667 +msgid "how to handle existing metadata" +msgstr "hoe om te gaan met de bestaande metadata" + +#: ../src/libs/image.c:670 +msgid "merge" +msgstr "samenvoegen" + +#: ../src/libs/image.c:675 +msgid "update image information to match changes to file" +msgstr "" +"afbeeldingsinformatie bijwerken om te laten overeenkomen met het bestand" + +#: ../src/libs/image.c:680 +msgid "set selection as monochrome images and activate monochrome workflow" +msgstr "" +"stel de selectie in als monochrome afbeeldingen en activeer de monochrome " +"workflow" + +#: ../src/libs/image.c:684 +msgid "set selection as color images" +msgstr "stel de selectie in als kleurafbeeldingen" + +#: ../src/libs/image.c:696 +msgid "duplicate virgin" +msgstr "dupliceer origineel" + +#: ../src/libs/import.c:264 +#, c-format +msgid "device \"%s\" connected on port \"%s\"." +msgstr "station \"%s\" verbonden op poort \"%s\"." + +#: ../src/libs/import.c:274 ../src/libs/import.c:335 ../src/libs/import.c:1701 +msgid "copy & import from camera" +msgstr "kopieer & importeer van camera" + +#: ../src/libs/import.c:285 ../src/libs/import.c:337 +msgid "tethered shoot" +msgstr "tethered shoot (communiceer direct met camera)" + +#: ../src/libs/import.c:292 ../src/libs/import.c:338 +msgid "unmount camera" +msgstr "ontkoppel camera" + +#: ../src/libs/import.c:313 +msgid "" +"camera is locked by another application\n" +"make sure it is no longer mounted\n" +"or quit the locking application" +msgstr "" +"camera is vergrendeld door een andere applicatie\n" +"zorg ervoor dat hij niet meer is gekoppeld\n" +"of sluit de toepassing die voor de vergrendeling zorgt" + +#: ../src/libs/import.c:316 +msgid "tethering and importing is disabled for this camera" +msgstr "tethering en importeren is uitgeschakeld voor deze camera" + +#: ../src/libs/import.c:318 ../src/libs/import.c:336 +msgid "mount camera" +msgstr "koppel camera" + +#: ../src/libs/import.c:754 +#, c-format +msgid "%d image out of %d selected" +msgid_plural "%d images out of %d selected" +msgstr[0] "%d afbeelding van %d geselecteerd" +msgstr[1] "%d afbeeldingen van %d geselecteerd" + +#: ../src/libs/import.c:1046 +msgid "you can't delete the selected place" +msgstr "je kunt de geselecteerde plaats niet verwijderen" + +#: ../src/libs/import.c:1160 +msgid "choose the root of the folder tree below" +msgstr "kies de root van de map boom hieronder" + +#: ../src/libs/import.c:1163 +msgid "places" +msgstr "locaties" + +#: ../src/libs/import.c:1169 +msgid "restore all default places you have removed by right-click" +msgstr "" +"herstel alle standaardplaatsen die u hebt verwijderd door met de " +"rechtermuisknop te klikken" + +#: ../src/libs/import.c:1174 +msgid "" +"add a custom place\n" +"\n" +"right-click on a place to remove it" +msgstr "" +"voeg een aangepaste plaats toe\n" +"\n" +"klik met de rechtermuisknop op een plaats om deze te verwijderen" + +#: ../src/libs/import.c:1181 +msgid "you can add custom places using the plus icon" +msgstr "u kunt aangepaste plaatsen toevoegen met het pluspictogram" + +#: ../src/libs/import.c:1206 +msgid "select a folder to see the content" +msgstr "selecteer een map om de inhoud te zien" + +#: ../src/libs/import.c:1209 +msgid "folders" +msgstr "mappen" + +#: ../src/libs/import.c:1279 +msgid "home" +msgstr "thuis" + +#: ../src/libs/import.c:1291 +msgid "pictures" +msgstr "afbeeldingen" + +#: ../src/libs/import.c:1557 +msgid "mark already imported pictures" +msgstr "markeer reeds geïmporteerde afbeeldingen" + +#: ../src/libs/import.c:1571 +msgid "modified" +msgstr "aangepast" + +#: ../src/libs/import.c:1576 +msgid "file 'modified date/time', may be different from 'Exif date/time'" +msgstr "" +"bestand ‘gewijzigde datum / tijd’, kan verschillen van ‘Exif datum / tijd’" + +#: ../src/libs/import.c:1588 +msgid "show/hide thumbnails" +msgstr "miniaturen tonen/verbergen" + +#: ../src/libs/import.c:1658 +msgid "naming rules" +msgstr "naamgeving regels" + +#: ../src/libs/import.c:1699 +msgid "add to library" +msgstr "voeg toe aan bibliotheek" + +#: ../src/libs/import.c:1700 +msgid "copy & import" +msgstr "kopieer & importeer" + +#: ../src/libs/import.c:1740 +msgid "select new" +msgstr "selecteer nieuw" + +#: ../src/libs/import.c:1783 +msgid "please wait while prefetching the list of images from camera..." +msgstr "" +"even geduld terwijl de lijst met afbeeldingen van de camera wordt " +"opgehaald..." + +#: ../src/libs/import.c:1922 +msgid "invalid override date/time format" +msgstr "ongeldige overschrijf datum/tijd format" + +#: ../src/libs/import.c:1986 +msgid "import base directory" +msgstr "import basismap" + +#: ../src/libs/import.c:1987 +msgid "" +"before copying images to the darktable base directory make sure it is " +"defined as you prefer.\n" +"further information can be found in the darktable manual.\n" +"\n" +"inspect darktable preferences -> import.\n" +"check and possibly correct the 'base directory naming pattern'" +msgstr "" +"controleer de instellingen alvorens afbeeldingen te importeren in " +"darktable.\n" +"meer information is te vinden in de darktable handleiding.\n" +"\n" +"controleer darktable voorkeuren -> import.\n" +"corrigeer waar nodig 'import basismap' en 'import naampatroon'" + +#: ../src/libs/import.c:1991 +msgid "_come back & check" +msgstr "kom terug & _check" + +#: ../src/libs/import.c:1991 +msgid "_understood & done" +msgstr "begrepen & gedaan" + +#: ../src/libs/import.c:2057 +msgid "add to library..." +msgstr "toevoegen aan bibliotheek..." + +#: ../src/libs/import.c:2058 +msgid "add existing images to the library" +msgstr "voeg bestaande afbeeldingen toe aan de bibliotheek" + +#: ../src/libs/import.c:2064 +msgid "copy & import..." +msgstr "kopieer en importeer..." + +#: ../src/libs/import.c:2065 +msgid "" +"copy and optionally rename images before adding them to the library\n" +"patterns can be defined to rename the images and specify the destination " +"folders" +msgstr "" +"afbeeldingen kopiëren en eventueel hernoemen voordat u ze aan de bibliotheek " +"toevoegt\n" +"patronen kunnen worden gedefinieerd om de afbeeldingen te hernoemen en de " +"bestemmingsmappen te specificeren" + +#. collapsible section +#: ../src/libs/import.c:2088 +msgid "parameters" +msgstr "parameters" + +#: ../src/libs/ioporder.c:202 +msgid "v3.0 for RAW input (default)" +msgstr "v3.0 voor RAW input (standaard)" + +#: ../src/libs/ioporder.c:208 +msgid "v3.0 for JPEG/non-RAW input" +msgstr "v3.0 voor JPEG/niet-RAW input" + +#: ../src/libs/lib.c:376 +msgid "deleting preset for obsolete module" +msgstr "verwijder voorkeur voor achterhaalde module" + +#: ../src/libs/lib.c:542 +msgid "manage presets..." +msgstr "beheer voorkeuren..." + +#: ../src/libs/lib.c:567 +msgid "nothing to save" +msgstr "niets om te bewaren" + +#: ../src/libs/lib.c:1106 +msgid "show module" +msgstr "toon module" + +#: ../src/libs/lib.c:1431 +msgid "utility module" +msgstr "programma modules" + +#: ../src/libs/live_view.c:107 +msgid "live view" +msgstr "live-view" + +#: ../src/libs/live_view.c:289 ../src/libs/live_view.c:290 +msgid "toggle live view" +msgstr "live-view aan/uit" + +#. TODO: see _zoom_live_view_clicked +#: ../src/libs/live_view.c:291 ../src/libs/live_view.c:292 +msgid "zoom live view" +msgstr "zoom live-view" + +#: ../src/libs/live_view.c:295 +msgid "flip live view horizontally" +msgstr "live-view horizontaal spiegelen" + +#: ../src/libs/live_view.c:301 +msgid "move focus point in (big steps)" +msgstr "verplaats focuspunt naar binnen (snel)" + +#: ../src/libs/live_view.c:302 +msgid "move focus point in (small steps)" +msgstr "verplaats focuspunt naar binnen (langzaam)" + +#. TODO icon not centered +#: ../src/libs/live_view.c:303 +msgid "run autofocus" +msgstr "voer autofocus uit" + +#: ../src/libs/live_view.c:304 +msgid "move focus point out (small steps)" +msgstr "verplaats focuspunt naar buiten (langzaam)" + +#. TODO same here +#: ../src/libs/live_view.c:305 +msgid "move focus point out (big steps)" +msgstr "verplaats focuspunt naar buiten (snel)" + +#: ../src/libs/live_view.c:310 +msgid "overlay" +msgstr "overlay" + +#: ../src/libs/live_view.c:312 +msgid "selected image" +msgstr "geselecteerde afbeelding" + +#: ../src/libs/live_view.c:314 +msgid "overlay another image over the live view" +msgstr "bedek de live-view met een andere afbeelding" + +#: ../src/libs/live_view.c:323 +msgid "enter image id of the overlay manually" +msgstr "bepaal afbeeldingskenmerk voor bedekken handmatig" + +#: ../src/libs/live_view.c:334 +msgid "overlay mode" +msgstr "overlay modus" + +#: ../src/libs/live_view.c:336 +msgctxt "blendmode" +msgid "xor" +msgstr "xor" + +#: ../src/libs/live_view.c:337 +msgctxt "blendmode" +msgid "add" +msgstr "optellen" + +#: ../src/libs/live_view.c:338 +msgctxt "blendmode" +msgid "saturate" +msgstr "verzadigen" + +#: ../src/libs/live_view.c:344 +msgctxt "blendmode" +msgid "color dodge" +msgstr "kleur tegenhouden" + +#: ../src/libs/live_view.c:345 +msgctxt "blendmode" +msgid "color burn" +msgstr "kleur doordrukken" + +#: ../src/libs/live_view.c:346 +msgctxt "blendmode" +msgid "hard light" +msgstr "hard licht" + +#: ../src/libs/live_view.c:347 +msgctxt "blendmode" +msgid "soft light" +msgstr "zacht light" + +#: ../src/libs/live_view.c:349 +msgctxt "blendmode" +msgid "exclusion" +msgstr "uitsluiten" + +#: ../src/libs/live_view.c:350 +msgctxt "blendmode" +msgid "HSL hue" +msgstr "HSL tint" + +#: ../src/libs/live_view.c:351 +msgctxt "blendmode" +msgid "HSL saturation" +msgstr "HSL verzadiging" + +#: ../src/libs/live_view.c:352 +msgctxt "blendmode" +msgid "HSL color" +msgstr "HSL kleur" + +#: ../src/libs/live_view.c:353 +msgctxt "blendmode" +msgid "HSL luminosity" +msgstr "HSL helderheid" + +#: ../src/libs/live_view.c:354 +msgid "mode of the overlay" +msgstr "modus van overlay" + +#: ../src/libs/live_view.c:360 +msgid "split line" +msgstr "splitsing" + +# Ik heb deze niet gewijzigd, maar heb het gevoel dat het wat vreemd overkomt. Is 'overlay' niet in dit geval zelfs een beter woord in het Nederlands vraag ik me af +#: ../src/libs/live_view.c:363 +msgid "only draw part of the overlay" +msgstr "teken alleen op het deel van overlay" + +#: ../src/libs/location.c:100 +msgid "find location" +msgstr "zoek locatie" + +#: ../src/libs/map_locations.c:36 +msgid "locations" +msgstr "locaties" + +#: ../src/libs/map_locations.c:234 +msgid "new sub-location" +msgstr "nieuwe sub-locatie" + +#: ../src/libs/map_locations.c:238 ../src/libs/map_locations.c:286 +#: ../src/libs/map_locations.c:960 +msgid "new location" +msgstr "nieuwe locatie" + +#: ../src/libs/map_locations.c:587 +#, c-format +msgid "location name '%s' already exists" +msgstr "naam van locatie ‘%s’ bestaat reeds" + +#: ../src/libs/map_locations.c:778 +msgid "edit location" +msgstr "bewerk locatie" + +#: ../src/libs/map_locations.c:781 +msgid "delete location" +msgstr "verwijder locatie" + +#: ../src/libs/map_locations.c:791 +msgid "update filmstrip" +msgstr "update filmreeks" + +#: ../src/libs/map_locations.c:798 +msgid "go to collection (lighttable)" +msgstr "ga naar collectie (bibliotheek)" + +#: ../src/libs/map_locations.c:844 +msgid "" +"terminate edit (press enter or escape) before selecting another location" +msgstr "" +"beëindig bewerking (druk op enter of escape) voor je een andere locatie " +"selecteert" + +#: ../src/libs/map_locations.c:931 +msgid "" +"list of user locations,\n" +"click to show or hide a location on the map:\n" +" - wheel scroll inside the shape to resize it\n" +" - <shift> or <ctrl> scroll to modify the width or the height\n" +" - click inside the shape and drag it to change its position\n" +" - ctrl+click to move an image from inside the location\n" +"ctrl+click to edit a location name\n" +" - a pipe '|' symbol breaks the name into several levels\n" +" - to remove a group of locations clear its name\n" +" - press enter to validate the new name, escape to cancel the edit\n" +"right-click for other actions: delete location and go to collection" +msgstr "" +"lijst met gebruikerslocaties,\n" +"klik om een locatie op de kaart weer te geven of te verbergen:\n" +" - scroll in de vorm om het formaat te wijzigen\n" +" - <shift> of <ctrl> scroll om de breedte of hoogte te wijzigen\n" +" - klik in de vorm en sleep deze om de positie te wijzigen\n" +" - ctrl+klik om een afbeelding van binnenuit de locatie te verplaatsen\n" +"ctrl+klik om een locatienaam te bewerken\n" +" - een pijp ‘|’ symbool verdeelt de naam in verschillende niveaus\n" +" - om een groep locaties te verwijderen, wist u de naam\n" +" - druk op enter om de nieuwe naam te bevestigen, escape om de bewerking te " +"annuleren\n" +"rechtermuisklik voor andere acties: verwijder locatie en ga naar collectie" + +#: ../src/libs/map_locations.c:957 +msgid "" +"select the shape of the location's limits on the map, circle or rectangle\n" +"or even polygon if available (select first a polygon place in 'find " +"location' module)" +msgstr "" +"selecteer de vorm van de limieten van de locatie op de kaart, cirkel of " +"rechthoek\n" +"of zelfs polygoon indien beschikbaar (selecteer eerst een polygoonplaats in " +"de ‘vind locatie’-module)" + +#: ../src/libs/map_locations.c:961 +msgid "add a new location on the center of the visible map" +msgstr "voeg een nieuwe locatie toe in het midden van de zichtbare kaart" + +#: ../src/libs/map_locations.c:965 +msgid "show all" +msgstr "alles laten zien" + +#: ../src/libs/map_locations.c:968 +msgid "show all locations which are on the visible map" +msgstr "toon alle locaties die op de zichtbare kaart staan" + +#: ../src/libs/map_settings.c:39 +msgid "map settings" +msgstr "kaartinstellingen" + +#: ../src/libs/map_settings.c:89 +msgid "map source" +msgstr "kaartaanbieder" + +#: ../src/libs/map_settings.c:90 +msgid "select the source of the map. some entries might not work" +msgstr "kies een kaart aanbieder, mogelijk werken niet alle aanbieders" + +#: ../src/libs/masks.c:108 +msgid "feather" +msgstr "doezelaar" + +#: ../src/libs/masks.c:357 +#, c-format +msgid "group #%d" +msgstr "groep #%d" + +#: ../src/libs/masks.c:1097 +msgid "duplicate this shape" +msgstr "dupliceer deze vorm" + +#: ../src/libs/masks.c:1101 +msgid "delete this shape" +msgstr "verwijder vorm" + +#: ../src/libs/masks.c:1107 +msgid "delete group" +msgstr "verwijder groep" + +#: ../src/libs/masks.c:1114 +msgid "remove from group" +msgstr "verwijder van groep" + +#: ../src/libs/masks.c:1122 +msgid "group the forms" +msgstr "groepeer vormen" + +#: ../src/libs/masks.c:1130 +msgid "use inverted shape" +msgstr "gebruik omgekeerde vorm" + +#: ../src/libs/masks.c:1134 +msgid "mode: union" +msgstr "modus: aaneenvoeging" + +#: ../src/libs/masks.c:1136 +msgid "mode: intersection" +msgstr "modus: doorsnede" + +#: ../src/libs/masks.c:1138 +msgid "mode: difference" +msgstr "modus: verschil" + +#: ../src/libs/masks.c:1140 +msgid "mode: sum" +msgstr "modus: som" + +#: ../src/libs/masks.c:1142 +msgid "mode: exclusion" +msgstr "modus: uitsluiten" + +#: ../src/libs/masks.c:1158 +msgid "cleanup unused shapes" +msgstr "opruimen niet gebruikte vormen" + +#: ../src/libs/masks.c:1807 +msgid "created shapes" +msgstr "gecreëerde vormen" + +#: ../src/libs/masks.c:1900 ../src/libs/masks.c:1915 ../src/libs/masks.c:1929 +#: ../src/libs/masks.c:1933 +msgid "properties" +msgstr "eigenschappen" + +#: ../src/libs/masks.c:1903 +msgid "no shapes selected" +msgstr "geen vormen geselecteerd" + +#: ../src/libs/masks.c:1929 +msgid "pressure" +msgstr "druk" + +#: ../src/libs/masks.c:1933 +msgid "smoothing" +msgstr "soepele lijnen" + +#: ../src/libs/metadata.c:60 +msgid "metadata editor" +msgstr "metadata-editor" + +#: ../src/libs/metadata.c:459 ../src/libs/metadata_view.c:1219 +msgid "metadata settings" +msgstr "metadata instellingen" + +#: ../src/libs/metadata.c:461 ../src/libs/metadata_view.c:1221 +msgid "_default" +msgstr "stan_daard" + +#: ../src/libs/metadata.c:516 ../src/libs/metadata_view.c:1267 +msgid "visible" +msgstr "zichtbaar" + +#: ../src/libs/metadata.c:524 +msgid "" +"tick if the corresponding metadata is of interest for you\n" +"it will be visible from metadata editor, collection and import module\n" +"it will be also exported" +msgstr "" +"vink aan als de bijbehorende metadata voor jou interessant zijn\n" +"het wordt zichtbaar in de metadata-editor, verzameling en importmodule\n" +"het zal ook worden geëxporteerd" + +#: ../src/libs/metadata.c:529 ../src/libs/tagging.c:1705 +#: ../src/libs/tagging.c:1854 +msgid "private" +msgstr "persoonlijk" + +#: ../src/libs/metadata.c:534 +msgid "" +"tick if you want to keep this information private (not exported with images)" +msgstr "" +"vink aan als u deze informatie privé wilt houden (niet geëxporteerd met " +"afbeeldingen)" + +#: ../src/libs/metadata.c:691 +msgid "" +"metadata text\n" +"ctrl+enter inserts a new line (caution, may not be compatible with standard " +"metadata)\n" +"if <leave unchanged> selected images have different metadata\n" +"in that case, right-click gives the possibility to choose one of them\n" +"escape to exit the popup window" +msgstr "" +"metadata-tekst\n" +"ctrl+enter voegt een nieuwe regel in (let op, mogelijk niet compatibel met " +"standaard metadata)\n" +"indien <laat ongewijzigd> krijgen geselecteerde afbeeldingen verschillende " +"metadata\n" +"in dat geval geeft rechtsklikken de mogelijkheid om er één uit te kiezen.\n" +"druk op escape om het pop-up venster te sluiten" + +#: ../src/libs/metadata.c:736 +msgid "write metadata for selected images" +msgstr "metadata toevoegen aan geselecteerde afbeelding(en)" + +#: ../src/libs/metadata.c:737 +msgid "cancel" +msgstr "annuleer" + +#: ../src/libs/metadata.c:738 +msgid "ignore changed metadata" +msgstr "negeer gewijzigde metadata" + +#. <title>\0<description>\0<rights>\0<creator>\0<publisher> +#: ../src/libs/metadata.c:793 +msgid "CC BY" +msgstr "CC BY" + +#: ../src/libs/metadata.c:794 +msgid "Creative Commons Attribution (CC BY)" +msgstr "Creative Commons Attribution (CC BY)" + +#: ../src/libs/metadata.c:795 +msgid "CC BY-SA" +msgstr "CC BY-SA" + +#: ../src/libs/metadata.c:796 +msgid "Creative Commons Attribution-ShareAlike (CC BY-SA)" +msgstr "Creative Commons Attribution-gelijk delen (CC BY-SA)" + +#: ../src/libs/metadata.c:797 +msgid "CC BY-ND" +msgstr "CC BY-ND" + +#: ../src/libs/metadata.c:798 +msgid "Creative Commons Attribution-NoDerivs (CC BY-ND)" +msgstr "Creative Commons Attribution-geen afgeleide werken (CC BY-ND)" + +#: ../src/libs/metadata.c:799 +msgid "CC BY-NC" +msgstr "CC BY-NC" + +#: ../src/libs/metadata.c:800 +msgid "Creative Commons Attribution-NonCommercial (CC BY-NC)" +msgstr "Creative Commons Attribution-niet commercieel (CC BY-NC)" + +#: ../src/libs/metadata.c:801 +msgid "CC BY-NC-SA" +msgstr "CC BY-NC-SA" + +#: ../src/libs/metadata.c:802 +msgid "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" +msgstr "" +"Creative Commons Attribution-niet commercieel-gelijk delen (CC BY-NC-SA)" + +#: ../src/libs/metadata.c:803 +msgid "CC BY-NC-ND" +msgstr "CC BY-NC-ND" + +#: ../src/libs/metadata.c:804 +msgid "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" +msgstr "" +"Creative Commons Attribution-niet commercieel-geen afgeleide werken(CC BY-NC-" +"ND)" + +#: ../src/libs/metadata.c:805 ../src/libs/metadata.c:806 +msgid "all rights reserved" +msgstr "alle rechten voorbehouden" + +#. internal +#: ../src/libs/metadata_view.c:125 +msgid "filmroll" +msgstr "filmrol" + +#: ../src/libs/metadata_view.c:127 +msgid "group id" +msgstr "groep id" + +#: ../src/libs/metadata_view.c:129 +msgid "version" +msgstr "versie" + +#: ../src/libs/metadata_view.c:132 +msgid "import timestamp" +msgstr "import moment" + +#: ../src/libs/metadata_view.c:133 +msgid "change timestamp" +msgstr "wijzig moment" + +#: ../src/libs/metadata_view.c:134 +msgid "export timestamp" +msgstr "export moment" + +#: ../src/libs/metadata_view.c:135 +msgid "print timestamp" +msgstr "afdruk moment" + +#: ../src/libs/metadata_view.c:136 +msgid "flags" +msgstr "attributen" + +#: ../src/libs/metadata_view.c:146 +msgid "35mm equiv focal length" +msgstr "35mm equiv brandpuntsafstand" + +#: ../src/libs/metadata_view.c:148 +msgid "focus distance" +msgstr "focusafstand" + +#: ../src/libs/metadata_view.c:150 +msgid "datetime" +msgstr "opname moment" + +#: ../src/libs/metadata_view.c:153 +msgid "export width" +msgstr "export breedte" + +#: ../src/libs/metadata_view.c:154 +msgid "export height" +msgstr "export hoogte" + +#: ../src/libs/metadata_view.c:162 +msgid "longitude" +msgstr "lengtegraad" + +#: ../src/libs/metadata_view.c:163 +msgid "elevation" +msgstr "hoogte" + +#: ../src/libs/metadata_view.c:167 +msgid "categories" +msgstr "categorieën" + +#: ../src/libs/metadata_view.c:174 +msgid "image information" +msgstr "informatie" + +#: ../src/libs/metadata_view.c:334 +msgid "unused/deprecated" +msgstr "niet gebruikt/verouderd" + +#: ../src/libs/metadata_view.c:335 +msgid "LDR" +msgstr "LDR" + +#: ../src/libs/metadata_view.c:338 +msgid "marked for deletion" +msgstr "gemarkeerd voor verwijderen" + +#: ../src/libs/metadata_view.c:339 +msgid "auto-applying presets applied" +msgstr "automatische voorkeuren toegepast" + +#: ../src/libs/metadata_view.c:341 +msgid "has .txt" +msgstr "heeft .txt" + +#: ../src/libs/metadata_view.c:342 +msgid "has .wav" +msgstr "heeft .wav" + +#: ../src/libs/metadata_view.c:360 +#, c-format +msgid "image has %d star" +msgid_plural "image has %d stars" +msgstr[0] "afbeelding heeft %d ster" +msgstr[1] "afbeelding heeft %d sterren" + +#: ../src/libs/metadata_view.c:436 +#, c-format +msgid "loader: %s" +msgstr "lader: %s" + +#: ../src/libs/metadata_view.c:626 +msgid "<various values>" +msgstr "<verschillende waarden>" + +#: ../src/libs/metadata_view.c:639 +#, c-format +msgid "" +"double-click to jump to film roll\n" +"%s" +msgstr "" +"dubbelklikken en ga naar filmrol\n" +"%s" + +#: ../src/libs/metadata_view.c:731 +#, c-format +msgid "%+.2f EV" +msgstr "%+.2f EV" + +#: ../src/libs/metadata_view.c:737 ../src/libs/metadata_view.c:749 +#: ../src/libs/metadata_view.c:754 +#, c-format +msgid "%.1f mm" +msgstr "%.1f mm" + +#: ../src/libs/metadata_view.c:778 +#, c-format +msgid "infinity" +msgstr "oneindig" + +#: ../src/libs/metadata_view.c:782 +#, c-format +msgid "%.2f m" +msgstr "%.2f m" + +#: ../src/libs/metadata_view.c:1262 +msgid "" +"drag and drop one row at a time until you get the desired order\n" +"untick to hide metadata which are not of interest for you\n" +"if different settings are needed, use presets" +msgstr "" +"versleep een rij per keer totdat u de gewenste volgorde heeft\n" +"vink uit om metadata te verbergen die niet interessant voor u zijn\n" +"gebruik voorinstellingen als er andere instellingen nodig zijn" + +#: ../src/libs/metadata_view.c:1423 +msgid "jump to film roll" +msgstr "ga naar filmrol" + +#: ../src/libs/recentcollect.c:68 +msgid "recently used collections" +msgstr "snelle verzamelingen" + +#: ../src/libs/recentcollect.c:109 +msgid " and " +msgstr " en " + +#: ../src/libs/recentcollect.c:114 +msgid " or " +msgstr " of " + +#. case DT_LIB_COLLECT_MODE_AND_NOT: +#: ../src/libs/recentcollect.c:119 +msgid " but not " +msgstr " maar niet " + +#: ../src/libs/recentcollect.c:226 +msgid "recent collections settings" +msgstr "instellingen recente collecties" + +#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1753 +msgid "workflow: scene-referred" +msgstr "workflow: scène-gerefereerd" + +#: ../src/libs/modulegroups.c:45 +msgid "modules: deprecated" +msgstr "modules: verouderd" + +#: ../src/libs/modulegroups.c:48 +msgid "last modified layout" +msgstr "laatst aangepaste weergave" + +#: ../src/libs/modulegroups.c:192 +msgid "modulegroups" +msgstr "modulegroepen" + +#. FIXME don't check here if on/off is enabled, because it depends on image (reload_defaults) +#. respond later to image changed signal +#: ../src/libs/modulegroups.c:307 ../src/libs/modulegroups.c:319 +#: ../src/libs/modulegroups.c:2411 ../src/libs/modulegroups.c:2413 +msgid "on-off" +msgstr "aan-uit" + +#: ../src/libs/modulegroups.c:501 ../src/libs/modulegroups.c:504 +msgid "" +"this quick access widget is disabled as there are multiple instances of this " +"module present. Please use the full module to access this widget..." +msgstr "" +"deze widget voor snelle toegang is uitgeschakeld omdat er meerdere " +"exemplaren van deze module aanwezig zijn. Gebruik de volledige module om " +"toegang te krijgen tot deze widget..." + +#: ../src/libs/modulegroups.c:594 +msgid "(some features may only be available in the full module interface)" +msgstr "" +"(sommige functies zijn mogelijk alleen beschikbaar in de volledige module-" +"interface)" + +#: ../src/libs/modulegroups.c:632 +#, c-format +msgid "go to the full version of the %s module" +msgstr "ga naar de volledige versie van module %s" + +#: ../src/libs/modulegroups.c:1538 ../src/libs/modulegroups.c:1624 +#: ../src/libs/modulegroups.c:1660 ../src/libs/modulegroups.c:1710 +#: ../src/libs/modulegroups.c:1801 +msgctxt "modulegroup" +msgid "base" +msgstr "basis" + +#: ../src/libs/modulegroups.c:1557 +msgctxt "modulegroup" +msgid "tone" +msgstr "toon" + +#: ../src/libs/modulegroups.c:1566 ../src/libs/modulegroups.c:1674 +#: ../src/libs/modulegroups.c:1724 +msgctxt "modulegroup" +msgid "color" +msgstr "kleur" + +#: ../src/libs/modulegroups.c:1582 ../src/libs/modulegroups.c:1682 +#: ../src/libs/modulegroups.c:1730 +msgctxt "modulegroup" +msgid "correct" +msgstr "corrigeer" + +#: ../src/libs/modulegroups.c:1600 ../src/libs/modulegroups.c:1694 +#: ../src/libs/modulegroups.c:1742 ../src/libs/modulegroups.c:2305 +msgctxt "modulegroup" +msgid "effect" +msgstr "effect" + +#: ../src/libs/modulegroups.c:1618 +msgid "modules: all" +msgstr "modules: alle" + +#: ../src/libs/modulegroups.c:1639 +msgctxt "modulegroup" +msgid "grading" +msgstr "verloop" + +#: ../src/libs/modulegroups.c:1647 ../src/libs/modulegroups.c:2309 +msgctxt "modulegroup" +msgid "effects" +msgstr "effecten" + +#: ../src/libs/modulegroups.c:1655 +msgid "workflow: beginner" +msgstr "workflow: beginner" + +#: ../src/libs/modulegroups.c:1704 +msgid "workflow: display-referred" +msgstr "workflow: scherm-gerefereerd" + +#: ../src/libs/modulegroups.c:1757 +msgid "search only" +msgstr "enkel zoeken" + +#: ../src/libs/modulegroups.c:1763 ../src/libs/modulegroups.c:2074 +#: ../src/libs/modulegroups.c:2583 +msgctxt "modulegroup" +msgid "deprecated" +msgstr "verouderd" + +#: ../src/libs/modulegroups.c:1776 +msgid "previous config" +msgstr "vorige configuratie" + +#: ../src/libs/modulegroups.c:1777 +msgid "previous layout" +msgstr "voorgaande weergave" + +#: ../src/libs/modulegroups.c:1781 +msgid "previous config with new layout" +msgstr "vorige configuratie met nieuwe weergave" + +#: ../src/libs/modulegroups.c:1941 ../src/libs/modulegroups.c:2456 +#: ../src/libs/modulegroups.c:2468 +msgid "remove this widget" +msgstr "verwijder deze widget" + +#: ../src/libs/modulegroups.c:2091 ../src/libs/modulegroups.c:2331 +msgid "remove this module" +msgstr "verwijder deze module" + +#. does it belong to recommended modules ? +#: ../src/libs/modulegroups.c:2300 +msgid "base" +msgstr "basis" + +#: ../src/libs/modulegroups.c:2303 +msgid "tone" +msgstr "toon" + +#: ../src/libs/modulegroups.c:2306 +msgid "technical" +msgstr "technisch" + +#: ../src/libs/modulegroups.c:2307 +msgid "grading" +msgstr "verloop" + +#: ../src/libs/modulegroups.c:2313 ../src/libs/modulegroups.c:2321 +msgid "add this module" +msgstr "voeg deze module toe" + +#. show the submenu with all the modules +#: ../src/libs/modulegroups.c:2343 ../src/libs/modulegroups.c:2543 +msgid "all available modules" +msgstr "alle beschikbare modules" + +#: ../src/libs/modulegroups.c:2351 +msgid "add module" +msgstr "voeg module toe" + +#: ../src/libs/modulegroups.c:2356 +msgid "remove module" +msgstr "verwijder module" + +#: ../src/libs/modulegroups.c:2462 +msgid "header needed for other widgets" +msgstr "header nodig voor andere widgets" + +#: ../src/libs/modulegroups.c:2478 ../src/libs/modulegroups.c:2485 +msgid "add this widget" +msgstr "voeg deze widget toe" + +#: ../src/libs/modulegroups.c:2498 +msgid "currently invisible" +msgstr "momenteel onzichtbaar" + +#: ../src/libs/modulegroups.c:2527 +msgid "add widget" +msgstr "voeg widget toe" + +#: ../src/libs/modulegroups.c:2532 +msgid "remove widget" +msgstr "verwijder widget" + +#: ../src/libs/modulegroups.c:2637 +msgid "show all history modules" +msgstr "toon alle historiemodules" + +#: ../src/libs/modulegroups.c:2640 ../src/libs/modulegroups.c:3836 +msgid "" +"show modules that are present in the history stack, regardless of whether or " +"not they are currently enabled" +msgstr "" +"modules weergeven die aanwezig zijn in de historie, ongeacht of ze momenteel " +"zijn ingeschakeld" + +#: ../src/libs/modulegroups.c:2731 ../src/libs/modulegroups.c:2823 +msgid "" +"the following modules are deprecated because they have internal design " +"mistakes that can't be corrected and alternative modules that correct them.\n" +"they will be removed for new edits in the next release." +msgstr "" +"de volgende modules zijn verouderd omdat ze interne ontwerpfouten bevatten " +"die niet kunnen worden opgelost en er zijn alternatieven die ze oplossen.\n" +"ze worden verwijderd voor nieuwe bewerkingen in de volgende release." + +#: ../src/libs/modulegroups.c:2782 ../src/libs/modulegroups.c:2783 +msgid "quick access panel" +msgstr "paneel voor snelle toegang" + +#: ../src/libs/modulegroups.c:2793 +msgid "show only active modules" +msgstr "toon alleen actieve modules" + +#: ../src/libs/modulegroups.c:2794 +msgid "active modules" +msgstr "actieve modules" + +#: ../src/libs/modulegroups.c:2799 +msgid "" +"presets\n" +"ctrl+click to manage" +msgstr "" +"voorkeuren\n" +"ctrl+klik om te beheren" + +#: ../src/libs/modulegroups.c:2805 +msgid "search modules" +msgstr "zoek modules" + +#: ../src/libs/modulegroups.c:2806 +msgid "search modules by name or tag" +msgstr "zoek modules op naam of label" + +#: ../src/libs/modulegroups.c:2816 +msgid "clear text" +msgstr "wis tekst" + +#: ../src/libs/modulegroups.c:3056 +msgid "basic icon" +msgstr "basisicoon" + +#: ../src/libs/modulegroups.c:3066 +msgid "active icon" +msgstr "actief icoon" + +#: ../src/libs/modulegroups.c:3076 +msgid "color icon" +msgstr "kleuricoon" + +#: ../src/libs/modulegroups.c:3086 +msgid "correct icon" +msgstr "corrigeer icoon" + +#: ../src/libs/modulegroups.c:3096 +msgid "effect icon" +msgstr "effecticoon" + +#: ../src/libs/modulegroups.c:3106 +msgid "favorites icon" +msgstr "favorieticoon" + +#: ../src/libs/modulegroups.c:3116 +msgid "tone icon" +msgstr "toonicoon" + +#: ../src/libs/modulegroups.c:3126 +msgid "grading icon" +msgstr "kleurverloopicoon" + +#: ../src/libs/modulegroups.c:3136 +msgid "technical icon" +msgstr "technisch pictogram" + +#: ../src/libs/modulegroups.c:3169 +msgid "quick access panel widgets" +msgstr "widgets voor paneel voor snelle toegang" + +#: ../src/libs/modulegroups.c:3171 +msgid "quick access" +msgstr "snelle toegang" + +#: ../src/libs/modulegroups.c:3191 +msgid "add widget to the quick access panel" +msgstr "widget toevoegen aan het paneel voor snelle toegang" + +#: ../src/libs/modulegroups.c:3223 +msgid "group icon" +msgstr "groepsicoon" + +#: ../src/libs/modulegroups.c:3232 +msgid "group name" +msgstr "groepsnaam" + +#: ../src/libs/modulegroups.c:3243 +msgid "remove group" +msgstr "verwijder groep" + +#: ../src/libs/modulegroups.c:3269 +msgid "move group to the left" +msgstr "verplaats de groep naar links" + +#: ../src/libs/modulegroups.c:3277 +msgid "add module to the group" +msgstr "module toevoegen aan de groep" + +#: ../src/libs/modulegroups.c:3288 +msgid "move group to the right" +msgstr "verplaats de groep naar rechts" + +#: ../src/libs/modulegroups.c:3464 +msgid "rename preset" +msgstr "hernoem voorkeur" + +#: ../src/libs/modulegroups.c:3467 +msgid "_rename" +msgstr "he_rnoemen" + +#: ../src/libs/modulegroups.c:3473 +msgid "new preset name:" +msgstr "nieuwe voorinstelling naam:" + +#: ../src/libs/modulegroups.c:3474 +msgid "a preset with this name already exists!" +msgstr "een voorinstelling met deze naam bestaat al!" + +#: ../src/libs/modulegroups.c:3806 +msgid "preset: " +msgstr "voorinstelling: " + +#: ../src/libs/modulegroups.c:3813 +msgid "remove the preset" +msgstr "verwijder de voorkeur" + +#: ../src/libs/modulegroups.c:3815 +msgid "duplicate the preset" +msgstr "dupliceer de voorkeur" + +#: ../src/libs/modulegroups.c:3817 +msgid "rename the preset" +msgstr "hernoem deze voorkeur" + +#: ../src/libs/modulegroups.c:3819 +msgid "create a new empty preset" +msgstr "voeg nieuwe lege vookeur toe" + +#: ../src/libs/modulegroups.c:3827 +msgid "show search line" +msgstr "toon zoeklijn" + +#: ../src/libs/modulegroups.c:3830 +msgid "show quick access panel" +msgstr "toon paneel voor snelle toegang" + +#: ../src/libs/modulegroups.c:3833 +msgid "show all history modules in active group" +msgstr "toon alle historiemodules in de actieve groep" + +#: ../src/libs/modulegroups.c:3845 +msgid "auto-apply this preset" +msgstr "automatisch deze voorkeur toepassen" + +#: ../src/libs/modulegroups.c:3860 +msgid "module groups" +msgstr "modulegroepen" + +#: ../src/libs/modulegroups.c:3877 +msgid "" +"this is a built-in read-only preset. duplicate it if you want to make changes" +msgstr "" +"dit is een ingebouwde alleen-lezen voorkeur. dupliceer het als u wijzigingen " +"wilt aanbrengen" + +#: ../src/libs/navigation.c:74 +msgid "navigation" +msgstr "navigeer" + +#: ../src/libs/navigation.c:112 ../src/libs/navigation.c:194 +msgctxt "navigationbox" +msgid "fill" +msgstr "vullen" + +#: ../src/libs/navigation.c:115 ../src/libs/navigation.c:192 +msgid "small" +msgstr "klein" + +#: ../src/libs/navigation.c:154 +msgid "" +"navigation\n" +"click or drag to position zoomed area in center view" +msgstr "" +"navigatie\n" +"klik of sleep om het ingezoomde gebied in het centrale beeld te verplaatsen" + +#: ../src/libs/navigation.c:176 +msgid "hide navigation thumbnail" +msgstr "verberg navigatie miniatuur" + +#: ../src/libs/navigation.c:190 +msgid "image zoom level" +msgstr "zoomniveau" + +#: ../src/libs/navigation.c:195 +msgid "50%" +msgstr "50%" + +#: ../src/libs/navigation.c:196 +msgid "100%" +msgstr "100%" + +#: ../src/libs/navigation.c:197 +msgid "200%" +msgstr "200%" + +#: ../src/libs/navigation.c:198 +msgid "400%" +msgstr "400%" + +#: ../src/libs/navigation.c:199 +msgid "800%" +msgstr "800%" + +#: ../src/libs/navigation.c:200 +msgid "1600%" +msgstr "1600%" + +#: ../src/libs/print_settings.c:45 +msgid "print settings" +msgstr "afdrukinstellingen" + +#. FIXME: ellipsize title/printer as the export completed message is ellipsized +#: ../src/libs/print_settings.c:357 ../src/libs/print_settings.c:754 +#, c-format +msgid "processing `%s' for `%s'" +msgstr "uitvoering `%s' voor `%s'" + +#: ../src/libs/print_settings.c:387 +#, c-format +msgid "cannot open printer profile `%s'" +msgstr "openen printer profiel `%s' mislukt" + +#: ../src/libs/print_settings.c:398 +#, c-format +msgid "error getting output profile for image %d" +msgstr "fout bij het ophalen van uitgaand profiel van afbeelding %d" + +#: ../src/libs/print_settings.c:410 +#, c-format +msgid "cannot apply printer profile `%s'" +msgstr "toepassen printerprofiel `%s' mislukt" + +#: ../src/libs/print_settings.c:574 +msgid "failed to create temporary PDF for printing" +msgstr "aanmaak tijdelijk PDF bestand voor afdrukken mislukt" + +#: ../src/libs/print_settings.c:620 +msgid "maximum image per page reached" +msgstr "maximale afbeelding per pagina bereikt" + +#: ../src/libs/print_settings.c:708 +msgid "cannot print until a picture is selected" +msgstr "kan niet afdrukken voordat een papierformaat is geselecteerd" + +#: ../src/libs/print_settings.c:713 +msgid "cannot print until a printer is selected" +msgstr "kan niet afdrukken voordat een papierformaat is geselecteerd" + +#: ../src/libs/print_settings.c:718 +msgid "cannot print until a paper is selected" +msgstr "kan niet afdrukken voordat een papierformaat is geselecteerd" + +#. in this case no need to release from cache what we couldn't get +#: ../src/libs/print_settings.c:746 +#, c-format +msgid "cannot get image %d for printing" +msgstr "ophalen afbeelding %d voor afdrukken is mislukt" + +#: ../src/libs/print_settings.c:918 +#, c-format +msgid "%3.2f (dpi:%d)" +msgstr "%3.2f (dpi:%d)" + +#: ../src/libs/print_settings.c:2396 +msgctxt "section" +msgid "printer" +msgstr "printer" + +#: ../src/libs/print_settings.c:2409 ../src/libs/print_settings.c:2418 +#: ../src/libs/print_settings.c:2473 +msgid "printer" +msgstr "printer" + +#: ../src/libs/print_settings.c:2409 +msgid "media" +msgstr "media" + +#: ../src/libs/print_settings.c:2430 +msgid "color management in printer driver" +msgstr "kleur management van printer driver" + +#: ../src/libs/print_settings.c:2463 +msgid "printer ICC profiles" +msgstr "printer ICC-profielen" + +#: ../src/libs/print_settings.c:2484 +msgid "black point compensation" +msgstr "zwartpuntcompensatie" + +#: ../src/libs/print_settings.c:2497 +msgid "activate black point compensation when applying the printer profile" +msgstr "activeer zwartpuntcompensatie bij toepassing printerprofiel" + +#. //////////////////////// PAGE SETTINGS +#: ../src/libs/print_settings.c:2504 +msgctxt "section" +msgid "page" +msgstr "pagina" + +#: ../src/libs/print_settings.c:2526 +msgid "measurement units" +msgstr "meet eenheden" + +#: ../src/libs/print_settings.c:2534 +msgid "image width/height" +msgstr "afbeelding b x h" + +#: ../src/libs/print_settings.c:2539 +msgid " x " +msgstr " x " + +#: ../src/libs/print_settings.c:2547 +msgid "scale factor" +msgstr "schalingsfactor" + +#: ../src/libs/print_settings.c:2553 +msgid "" +"image scale factor from native printer DPI:\n" +" < 1 means that it is downscaled (best quality)\n" +" > 1 means that the image is upscaled\n" +" a too large value may result in poor print quality" +msgstr "" +"schaalfactor voor standaardprinter DPI:\n" +"<1 betekent verkleinen (beste kwaliteit)\n" +">0 betekent vergroten\n" +"een te grote waarde kan een slechte afdrukkwaliteit opleveren" + +#. d->b_top = gtk_spin_button_new_with_range(0, 10000, 1); +#: ../src/libs/print_settings.c:2567 +msgid "top margin" +msgstr "marge boven" + +#. d->b_left = gtk_spin_button_new_with_range(0, 10000, 1); +#: ../src/libs/print_settings.c:2571 +msgid "left margin" +msgstr "marge links" + +#: ../src/libs/print_settings.c:2574 +msgid "lock" +msgstr "vergrendel" + +#: ../src/libs/print_settings.c:2576 +msgid "change all margins uniformly" +msgstr "wijzig alle marges evenredig" + +#. d->b_right = gtk_spin_button_new_with_range(0, 10000, 1); +#: ../src/libs/print_settings.c:2580 +msgid "right margin" +msgstr "marge rechts" + +#. d->b_bottom = gtk_spin_button_new_with_range(0, 10000, 1); +#: ../src/libs/print_settings.c:2584 +msgid "bottom margin" +msgstr "marge onder" + +#: ../src/libs/print_settings.c:2617 +msgid "display grid" +msgstr "geef raster weer" + +#: ../src/libs/print_settings.c:2628 +msgid "snap to grid" +msgstr "snap naar raster" + +#: ../src/libs/print_settings.c:2641 +msgid "borderless mode required" +msgstr "randloze modus vereist" + +#: ../src/libs/print_settings.c:2644 +msgid "" +"indicates that the borderless mode should be activated\n" +"in the printer driver because the selected margins are\n" +"below the printer hardware margins" +msgstr "" +"geeft aan dat de randloze modus moet worden geactiveerd\n" +"in het printerstuurprogramma omdat de geselecteerde marges kleiner\n" +"de hardwaremarges van de printer zijn" + +#. pack image dimension hbox here +#: ../src/libs/print_settings.c:2651 +msgctxt "section" +msgid "image layout" +msgstr "afbeelding weergave" + +#: ../src/libs/print_settings.c:2692 +msgid "new image area" +msgstr "nieuw afbeeldingsgebied" + +#: ../src/libs/print_settings.c:2694 +msgid "" +"add a new image area on the page\n" +"click and drag on the page to place the area\n" +"drag and drop image from film strip on it" +msgstr "" +"een nieuw afbeeldingsgebied op de pagina toevoegen\n" +"klik en sleep op de pagina om het gebied te plaatsen\n" +"afbeelding van filmstrip erop slepen en plaatsen" + +#: ../src/libs/print_settings.c:2698 +msgid "delete image area" +msgstr "verwijder afbeeldingsgebied" + +#: ../src/libs/print_settings.c:2700 +msgid "delete the currently selected image area" +msgstr "verwijder het momenteel geselecteerde afbeeldingsgebied" + +#: ../src/libs/print_settings.c:2703 +msgid "clear layout" +msgstr "wis weergave" + +#: ../src/libs/print_settings.c:2705 +msgid "remove all image areas from the page" +msgstr "verwijder alle afbeeldings gebieden van de pagina" + +#. d->b_x = gtk_spin_button_new_with_range(0, 1000, 1); +#: ../src/libs/print_settings.c:2722 +msgid "image area x origin (in current unit)" +msgstr "afbeeldingsgebied x oorsprong (in huidige eenheid)" + +#. d->b_y = gtk_spin_button_new_with_range(0, 1000, 1); +#: ../src/libs/print_settings.c:2726 +msgid "image area y origin (in current unit)" +msgstr "afbeeldingsgebied y oorsprong (in huidige eenheid)" + +#. d->b_width = gtk_spin_button_new_with_range(0, 1000, 1); +#: ../src/libs/print_settings.c:2737 +msgid "image area width (in current unit)" +msgstr "breedte afbeeldingsgebied (in huidige eenheid)" + +#. d->b_height = gtk_spin_button_new_with_range(0, 1000, 1); +#: ../src/libs/print_settings.c:2741 +msgid "image area height (in current unit)" +msgstr "hoogte afbeeldingsgebied (in huidige eenheid)" + +#. //////////////////////// PRINT SETTINGS +#: ../src/libs/print_settings.c:2767 +msgctxt "section" +msgid "print settings" +msgstr "afdrukinstellingen" + +#: ../src/libs/print_settings.c:2855 +msgid "temporary style to use while printing" +msgstr "te gebruiken tijdelijke stijl tijdens afdrukken" + +#: ../src/libs/print_settings.c:2887 +msgid "print with current settings" +msgstr "met huidige instellingen afdrukken" + +#: ../src/libs/select.c:137 +msgid "select all images in current collection" +msgstr "selecteer van de collectie alle afbeeldingen" + +#: ../src/libs/select.c:141 +msgid "clear selection" +msgstr "verwijder selectie" + +#: ../src/libs/select.c:145 +msgid "" +"select unselected images\n" +"in current collection" +msgstr "" +"selecteer van de collectie alle\n" +"niet geselecteerde afbeeldingen" + +#: ../src/libs/select.c:149 +msgid "" +"select all images which are in the same\n" +"film roll as the selected images" +msgstr "" +"selecteer alle afbeeldingen die in dezelfde \n" +"filmrol zitten als de geselecteerde afbeeldingen" + +#: ../src/libs/select.c:153 +msgid "" +"select untouched images in\n" +"current collection" +msgstr "selecteer niet eerder gekozen afbeeldingen" + +#: ../src/libs/session.c:47 +msgid "session" +msgstr "sessie" + +#: ../src/libs/session.c:98 +msgid "jobcode" +msgstr "kenmerk" + +#: ../src/libs/session.c:106 +msgid "create" +msgstr "creëer" + +#: ../src/libs/snapshots.c:88 +msgid "snapshots" +msgstr "momentopnamen" + +#: ../src/libs/snapshots.c:137 +msgctxt "snapshot sign" +msgid "S" +msgstr "S" + +#: ../src/libs/snapshots.c:662 +msgid "snapshots for removed image have been deleted" +msgstr "voorvertoningen voor verwijderde afbeelding verwijderd" + +#: ../src/libs/snapshots.c:703 +#, c-format +msgid "↗ %s '%s'" +msgstr "↗ %s '%s'" + +#: ../src/libs/snapshots.c:703 +msgid "this snapshot was taken from" +msgstr "deze momentopname is genomen van" + +#: ../src/libs/snapshots.c:742 +msgid "take snapshot" +msgstr "maak momentopname" + +#: ../src/libs/snapshots.c:744 +msgid "" +"take snapshot to compare with another image or the same image at another " +"stage of development" +msgstr "" +"maak een momentopname om met een ander ontwikkelstadium of een andere " +"afbeelding te vergelijken" + +#: ../src/libs/snapshots.c:790 +msgid "toggle last snapshot" +msgstr "schakel laatste momentopname" + +#: ../src/libs/styles.c:326 +msgid "remove style?" +msgid_plural "remove styles?" +msgstr[0] "stijl verwijderen?" +msgstr[1] "stijlen verwijderen?" + +#: ../src/libs/styles.c:327 +#, c-format +msgid "do you really want to remove %d style?" +msgid_plural "do you really want to remove %d styles?" +msgstr[0] "wil je echt stijl %d verwijderen?" +msgstr[1] "wil je echt stijlen %d verwijderen?" + +#: ../src/libs/styles.c:441 ../src/libs/styles.c:626 +msgid "_overwrite" +msgstr "_overschrijven" + +#: ../src/libs/styles.c:446 ../src/libs/styles.c:631 +#, c-format +msgid "" +"style `%s' already exists.\n" +"do you want to overwrite existing style?\n" +msgstr "" +"stijl `%s' bestaat al\n" +"moet de bestaande stijl worden overschreven?\n" + +#: ../src/libs/styles.c:448 ../src/libs/styles.c:633 +msgid "apply this option to all existing styles" +msgstr "pas deze optie toe op alle bestaande stijlen" + +#: ../src/libs/styles.c:511 +#, c-format +msgid "style %s was successfully exported" +msgstr "stijl %s was succesvol geëxporteerd" + +#: ../src/libs/styles.c:528 +msgid "select style" +msgstr "selecteer stijl" + +#: ../src/libs/styles.c:538 +msgid "darktable style files" +msgstr "dt-stijl bestanden" + +#: ../src/libs/styles.c:819 +msgid "" +"available styles,\n" +"double-click to apply" +msgstr "" +"beschikbare stijlen,\n" +"dubbelklikken om toe te passen" + +#: ../src/libs/styles.c:828 ../src/libs/styles.c:829 +msgid "filter style names" +msgstr "filter stijlnamen" + +#: ../src/libs/styles.c:841 +msgid "create duplicate" +msgstr "creëer duplicaat" + +#: ../src/libs/styles.c:848 +msgid "creates a duplicate of the image before applying style" +msgstr "maakt een duplicaat van de afbeelding voordat stijl wordt toegepast" + +#: ../src/libs/styles.c:866 +msgid "create..." +msgstr "creëren..." + +#: ../src/libs/styles.c:868 +msgid "create styles from history stack of selected images" +msgstr "creëer stijlen van bewerkingsstappen van geselecteerde afbeeldingen" + +#: ../src/libs/styles.c:873 ../src/libs/tagging.c:2283 +msgid "edit..." +msgstr "bewerken..." + +#: ../src/libs/styles.c:875 +msgid "edit the selected styles in list above" +msgstr "bewerk geselecteerde stijlen in bovenstaande lijst" + +#: ../src/libs/styles.c:882 +msgid "removes the selected styles in list above" +msgstr "verwijdert in bovenstaande lijst de geselecteerde stijlen" + +#: ../src/libs/styles.c:889 +msgid "import styles from a style files" +msgstr "importeer stijlen uit een stijlbestand" + +#: ../src/libs/styles.c:896 +msgid "export the selected styles into a style files" +msgstr "exporteer geselecteerde stijl naar een stijlbestand" + +#: ../src/libs/styles.c:903 +msgid "apply the selected styles in list above to selected images" +msgstr "" +"pas de geselecteerde stijlen in bovenstaande lijst toe op geselecteerde " +"afbeeldingen" + +#: ../src/libs/tagging.c:109 +msgid "tagging" +msgstr "labelen" + +#: ../src/libs/tagging.c:1258 +msgid "attach tag to all" +msgstr "koppel label aan alles" + +#: ../src/libs/tagging.c:1266 ../src/libs/tagging.c:2256 +msgid "detach tag" +msgstr "ontkoppel label" + +#: ../src/libs/tagging.c:1486 +msgid "delete tag?" +msgstr "label verwijderen?" + +#: ../src/libs/tagging.c:1496 ../src/libs/tagging.c:1587 +#: ../src/libs/tagging.c:1814 ../src/libs/tagging.c:2093 +#, c-format +msgid "selected: %s" +msgstr "geselecteerd: %s" + +#: ../src/libs/tagging.c:1503 +#, c-format +msgid "" +"do you really want to delete the tag `%s'?\n" +"%d image is assigned this tag!" +msgid_plural "" +"do you really want to delete the tag `%s'?\n" +"%d images are assigned this tag!" +msgstr[0] "" +"wilt het label `%s' verwijderen?\n" +"Er is %d afbeelding met dit label!" +msgstr[1] "" +"wilt u het label `%s' verwijderen?\n" +"Er zijn %d afbeeldingen met dit label!" + +#: ../src/libs/tagging.c:1537 +#, c-format +msgid "tag %s removed" +msgstr "label %s verwijderd" + +#: ../src/libs/tagging.c:1577 +msgid "delete node?" +msgstr "knooppunt verwijderen?" + +#: ../src/libs/tagging.c:1594 +#, c-format +msgid "<u>%d</u> tag will be deleted" +msgid_plural "<u>%d</u> tags will be deleted" +msgstr[0] "<u>%d</u> label wordt verwijderd" +msgstr[1] "<u>%d</u> labels worden verwijderd" + +#: ../src/libs/tagging.c:1599 ../src/libs/tagging.c:1826 +#: ../src/libs/tagging.c:2105 +#, c-format +msgid "<u>%d</u> image will be updated" +msgid_plural "<u>%d</u> images will be updated" +msgstr[0] "<u>%d</u> afbeelding wordt bijgewerkt" +msgstr[1] "<u>%d</u> afbeeldingen worden bijgewerkt" + +#: ../src/libs/tagging.c:1625 +#, c-format +msgid "%d tags removed" +msgstr "%d labels verwijderd" + +#: ../src/libs/tagging.c:1668 +msgid "create tag" +msgstr "creëer label" + +#: ../src/libs/tagging.c:1681 ../src/libs/tagging.c:1834 +msgid "name: " +msgstr "naam: " + +#: ../src/libs/tagging.c:1696 +#, c-format +msgid "add to: \"%s\" " +msgstr "voeg toe aan: \"%s\" " + +#: ../src/libs/tagging.c:1702 ../src/libs/tagging.c:1851 +msgid "category" +msgstr "categorie" + +#: ../src/libs/tagging.c:1711 ../src/libs/tagging.c:1860 +msgid "synonyms: " +msgstr "synoniemen: " + +#: ../src/libs/tagging.c:1728 ../src/libs/tagging.c:1882 +#: ../src/libs/tagging.c:2128 +msgid "empty tag is not allowed, aborting" +msgstr "leeg label is niet toegestaan, afbreken" + +#: ../src/libs/tagging.c:1739 +msgid "tag name already exists. aborting." +msgstr "labelnaam bestaat al, afbreken." + +#: ../src/libs/tagging.c:1821 ../src/libs/tagging.c:2100 +#, c-format +msgid "<u>%d</u> tag will be updated" +msgid_plural "<u>%d</u> tags will be updated" +msgstr[0] "<u>%d</u> label wordt bijgewerkt" +msgstr[1] "<u>%d</u> labels worden bijgewerkt" + +#: ../src/libs/tagging.c:1884 +msgid "" +"'|' character is not allowed for renaming tag.\n" +"to modify the hierarchy use rename path instead. Aborting." +msgstr "" +"het ‘|’-symbool is niet toegestaan om de tag te hernoemen \n" +"gebruik een aangepast pad om de hiërarchie te wijzigen. Annuleren." + +#: ../src/libs/tagging.c:1923 ../src/libs/tagging.c:2031 +#, c-format +msgid "at least one new tag name (%s) already exists, aborting" +msgstr "minimaal een nieuwe label benaming (%s) bestaat al, afbreken" + +#: ../src/libs/tagging.c:2083 +msgid "change path" +msgstr "van pad veranderen" + +#: ../src/libs/tagging.c:2130 +msgid "'|' misplaced, empty tag is not allowed, aborting" +msgstr "'|' misplaatst, lege label is niet toegestaan, afbreken" + +#: ../src/libs/tagging.c:2226 +#, c-format +msgid "tag %s created" +msgstr "label %s gemaakt" + +#: ../src/libs/tagging.c:2252 +msgid "attach tag" +msgstr "label toevoegen" + +#: ../src/libs/tagging.c:2265 +msgid "create tag..." +msgstr "creëer label..." + +#: ../src/libs/tagging.c:2271 +msgid "delete tag" +msgstr "verwijder label" + +#: ../src/libs/tagging.c:2278 +msgid "delete node" +msgstr "knooppunt verwijderen" + +#: ../src/libs/tagging.c:2291 +msgid "change path..." +msgstr "wijzig pad..." + +#: ../src/libs/tagging.c:2301 +msgid "set as a tag" +msgstr "ingesteld als een label" + +#: ../src/libs/tagging.c:2312 +msgid "copy to entry" +msgstr "kopieer naar invoer" + +#: ../src/libs/tagging.c:2329 +msgid "go to tag collection" +msgstr "show collectie geselecteerde labels" + +#: ../src/libs/tagging.c:2335 +msgid "go back to work" +msgstr "keer terug naar volledige collectie" + +#: ../src/libs/tagging.c:2492 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../src/libs/tagging.c:2493 +msgid "(private)" +msgstr "(persoonlijk)" + +#: ../src/libs/tagging.c:2519 +msgid "select a keyword file" +msgstr "selecteer trefwoordenbestand" + +#: ../src/libs/tagging.c:2532 +msgid "error importing tags" +msgstr "fout bij importeren van labels" + +#: ../src/libs/tagging.c:2534 +#, c-format +msgid "%zd tags imported" +msgstr "%zd labels geïmporteerd" + +#: ../src/libs/tagging.c:2555 +msgid "select file to export to" +msgstr "kies bestand om naar te exporteren" + +#: ../src/libs/tagging.c:2569 +msgid "error exporting tags" +msgstr "fout bij het exporteren van labels" + +#: ../src/libs/tagging.c:2571 +#, c-format +msgid "%zd tags exported" +msgstr "%zd labels geëxporteerd" + +#: ../src/libs/tagging.c:2995 +msgid "drop to root" +msgstr "verplaats naar root" + +#: ../src/libs/tagging.c:3131 +msgid "" +"attached tags\n" +"press Delete or double-click to detach\n" +"right-click for other actions on attached tag,\n" +"Tab to give the focus to entry" +msgstr "" +"gekoppelde labels\n" +"druk op Delete of dubbelklik om te ontkoppelen\n" +"rechtermuisklik voor andere acties op gekoppeld label\n" +"druk op Tab om de focus op het veld te leggen" + +#: ../src/libs/tagging.c:3142 +msgid "attach" +msgstr "koppel" + +#: ../src/libs/tagging.c:3143 +msgid "attach tag to all selected images" +msgstr "koppel label aan geselecteerde afbeelding(en)" + +#: ../src/libs/tagging.c:3146 +msgid "detach" +msgstr "ontkoppel" + +#: ../src/libs/tagging.c:3147 +msgid "detach tag from all selected images" +msgstr "ontkoppel label van geselecteerde afbeelding(en)" + +#: ../src/libs/tagging.c:3160 +msgid "toggle list with / without hierarchy" +msgstr "wissel lijst met/zonder hiërarchie" + +#: ../src/libs/tagging.c:3160 +msgid "hide" +msgstr "verberg" + +#: ../src/libs/tagging.c:3162 +msgid "toggle sort by name or by count" +msgstr "wissel sortering op naam of aantal" + +#: ../src/libs/tagging.c:3162 +msgid "sort" +msgstr "sorteer" + +#: ../src/libs/tagging.c:3164 +msgid "toggle show or not darktable tags" +msgstr "wissel weergave labels/alles" + +#: ../src/libs/tagging.c:3164 +msgid "dttags" +msgstr "labels" + +#: ../src/libs/tagging.c:3180 +msgid "" +"enter tag name\n" +"press Enter to create a new tag and attach it on selected images\n" +"press Tab or Down key to go to the first matching tag\n" +"press shift+Tab to select the first attached user tag" +msgstr "" +"vul label naam in\n" +"druk op Enter om een nieuwe label te creëren en deze toe te koppelen aan de " +"afbeelding\n" +"druk op Tab of pijl omlaag om naar de eerstvolgende passende label te gaan\n" +"druk op Shift+Tab om de eerst gekoppelde gebruikers label te selecteren" + +#: ../src/libs/tagging.c:3191 ../src/libs/tagging.c:3197 +msgid "clear entry" +msgstr "wis invoer" + +#: ../src/libs/tagging.c:3244 +msgid "" +"tag dictionary,\n" +"Enter or double-click to attach selected tag on selected images\n" +"shift+Enter idem plus gives the focus to entry\n" +"shift+click to fully expand the selected tag\n" +"right-click for other actions on selected tag\n" +"shift+Tab to give the focus to entry" +msgstr "" +"label overzicht,\n" +"enter of dubbelklik om geselecteerde label aan geselecteerde afbeelding te " +"koppelen,\n" +"shift+enter idem, plus focus op de invoer,\n" +"shift+klik om de geselecteerde label volledig uit te klappen,\n" +"rechtermuisklik voor andere acties op geselecteerde label,\n" +"shift+tab om de focus op de invoer te leggen" + +#: ../src/libs/tagging.c:3279 +msgid "" +"create a new tag with the\n" +"name you entered" +msgstr "" +"creëer een nieuw label met een\n" +"door u ingevoerde naam" + +#: ../src/libs/tagging.c:3282 +msgid "import tags from a Lightroom keyword file" +msgstr "importeer labels vanuit een Lightroom trefwoorden-bestand" + +#: ../src/libs/tagging.c:3285 +msgid "export all tags to a Lightroom keyword file" +msgstr "exporteer alle labels naar een Lightroom trefwoorden bestand" + +#: ../src/libs/tagging.c:3289 +msgid "toggle list / tree view" +msgstr "wissel lijst/boom weergave" + +#: ../src/libs/tagging.c:3289 +msgid "tree" +msgstr "boom" + +#: ../src/libs/tagging.c:3291 +msgid "toggle list with / without suggestion" +msgstr "wissel lijst met/zonder suggestie" + +#: ../src/libs/tagging.c:3291 +msgid "suggestion" +msgstr "suggestie" + +#: ../src/libs/tagging.c:3313 +msgid "redo last tag" +msgstr "geef laatste label opnieuw" + +#: ../src/libs/tagging.c:3396 +msgid "" +"tag shortcut is not active with tag tree view. please switch to list view" +msgstr "" +"label sneltoets werkt niet met label boomstructuur weergave\n" +"schakel over naar lijstweergave" + +#: ../src/libs/tagging.c:3500 +msgid "tagging settings" +msgstr "label instellingen" + +#: ../src/libs/tools/battery_indicator.c:38 +#: ../src/libs/tools/battery_indicator.c:70 +msgid "battery indicator" +msgstr "batterij indicator" + +#: ../src/libs/tools/colorlabels.c:42 +msgid "colorlabels" +msgstr "kleurlabels" + +#: ../src/libs/tools/colorlabels.c:87 +msgid "toggle color label of selected images" +msgstr "wissel kleurlabel van geselecteerde afbeeldingen" + +#: ../src/libs/tools/filmstrip.c:45 +msgid "filmstrip" +msgstr "fotoreeks" + +#: ../src/libs/tools/filter.c:42 +msgid "filter" +msgstr "filter" + +#: ../src/libs/tools/filter.c:104 +msgid "filter preferences" +msgstr "filter voorkeuren" + +#: ../src/libs/tools/gamepad.c:37 +msgid "gamepad" +msgstr "game pad" + +#: ../src/libs/tools/gamepad.c:60 +msgid "button a" +msgstr "knop a" + +#: ../src/libs/tools/gamepad.c:60 +msgid "button b" +msgstr "knop b" + +#: ../src/libs/tools/gamepad.c:60 +msgid "button x" +msgstr "knop x" + +#: ../src/libs/tools/gamepad.c:60 +msgid "button y" +msgstr "knop y" + +#: ../src/libs/tools/gamepad.c:61 +msgid "button back" +msgstr "knop terug" + +# knop hulplijn of knop handleidng? +#: ../src/libs/tools/gamepad.c:61 +msgid "button guide" +msgstr "knop hulplijnen" + +#: ../src/libs/tools/gamepad.c:61 +msgid "button start" +msgstr "knop start" + +#: ../src/libs/tools/gamepad.c:62 +msgid "left stick" +msgstr "links" + +#: ../src/libs/tools/gamepad.c:62 +msgid "right stick" +msgstr "rechter stok" + +#: ../src/libs/tools/gamepad.c:62 +msgid "left shoulder" +msgstr "linker schouder" + +#: ../src/libs/tools/gamepad.c:62 +msgid "right shoulder" +msgstr "rechter schouder" + +#: ../src/libs/tools/gamepad.c:63 +msgid "dpad up" +msgstr "dpad omhoog" + +#: ../src/libs/tools/gamepad.c:63 +msgid "dpad down" +msgstr "dpad omlaag" + +#: ../src/libs/tools/gamepad.c:63 +msgid "dpad left" +msgstr "dpad links" + +#: ../src/libs/tools/gamepad.c:63 +msgid "dpad right" +msgstr "dpad rechts" + +#: ../src/libs/tools/gamepad.c:64 +msgid "button misc1" +msgstr "knop misc1" + +#: ../src/libs/tools/gamepad.c:64 +msgid "paddle1" +msgstr "peddel1" + +#: ../src/libs/tools/gamepad.c:64 +msgid "paddle2" +msgstr "peddel2" + +#: ../src/libs/tools/gamepad.c:64 +msgid "paddle3" +msgstr "peddel3" + +#: ../src/libs/tools/gamepad.c:64 +msgid "paddle4" +msgstr "peddel4" + +#: ../src/libs/tools/gamepad.c:64 +msgid "touchpad" +msgstr "touchpad" + +#: ../src/libs/tools/gamepad.c:65 +msgid "left trigger" +msgstr "linker trigger" + +#: ../src/libs/tools/gamepad.c:65 +msgid "right trigger" +msgstr "rechts trigger" + +#: ../src/libs/tools/gamepad.c:71 +msgid "invalid gamepad button" +msgstr "ongeldig game pad knop" + +#: ../src/libs/tools/gamepad.c:89 +msgid "left x" +msgstr "links x" + +#: ../src/libs/tools/gamepad.c:89 +msgid "left y" +msgstr "links y" + +#: ../src/libs/tools/gamepad.c:89 +msgid "right x" +msgstr "rechts x" + +#: ../src/libs/tools/gamepad.c:89 +msgid "right y" +msgstr "rechts y" + +#: ../src/libs/tools/gamepad.c:90 +msgid "left diagonal" +msgstr "linker diagonaal" + +#: ../src/libs/tools/gamepad.c:90 +msgid "left skew" +msgstr "links scheeftrekken" + +#: ../src/libs/tools/gamepad.c:90 +msgid "right diagonal" +msgstr "rechter diagonaal" + +#: ../src/libs/tools/gamepad.c:90 +msgid "right skew" +msgstr "rechts scheeftrekken" + +#. diagonals +#: ../src/libs/tools/gamepad.c:96 +msgid "invalid gamepad axis" +msgstr "ongeldig game pad as" + +#. we write the label with the size category +#: ../src/libs/tools/global_toolbox.c:215 +msgid "thumbnails overlays for size" +msgstr "miniaturenoverlay voor afmeting" + +#: ../src/libs/tools/global_toolbox.c:249 +#: ../src/libs/tools/global_toolbox.c:312 +msgid "" +"duration before the block overlay is hidden after each mouse movement on the " +"image\n" +"set -1 to never hide the overlay" +msgstr "" +"duur voordat de blokoverlay wordt verborgen na elke muisbeweging op de " +"afbeelding\n" +"stel -1 in om de overlay nooit te verbergen" + +#: ../src/libs/tools/global_toolbox.c:254 +#: ../src/libs/tools/global_toolbox.c:317 +msgid "timeout only available for block overlay" +msgstr "time-out alleen beschikbaar voor blokoverlay" + +#: ../src/libs/tools/global_toolbox.c:277 +#: ../src/libs/tools/global_toolbox.c:463 +msgid "culling overlays" +msgstr "vergelijk overlays" + +#: ../src/libs/tools/global_toolbox.c:279 +msgid "preview overlays" +msgstr "bekijk de overlays vooraf" + +#: ../src/libs/tools/global_toolbox.c:353 +msgid "overlays not available here..." +msgstr "overlays hier niet beschikbaar..." + +#: ../src/libs/tools/global_toolbox.c:397 +#: ../src/libs/tools/global_toolbox.c:533 +msgid "expand grouped images" +msgstr "uitbreiden gegroepeerde afbeeldingen" + +#: ../src/libs/tools/global_toolbox.c:399 +#: ../src/libs/tools/global_toolbox.c:535 +msgid "collapse grouped images" +msgstr "sluit gegroepeerde afbeeldingen" + +#: ../src/libs/tools/global_toolbox.c:406 +msgid "thumbnail overlays options" +msgstr "miniatuur overlay opties" + +#: ../src/libs/tools/global_toolbox.c:407 +msgid "click to change the type of overlays shown on thumbnails" +msgstr "klik om het type overlay over de miniaturen te wijzigen" + +#: ../src/libs/tools/global_toolbox.c:430 +#: ../src/libs/tools/global_toolbox.c:459 +msgid "overlay mode for size" +msgstr "overlay modus voor maat" + +#: ../src/libs/tools/global_toolbox.c:434 +msgid "thumbnail overlays" +msgstr "miniatuur overlays" + +#: ../src/libs/tools/global_toolbox.c:436 +#: ../src/libs/tools/global_toolbox.c:465 +msgid "no overlays" +msgstr "geen overlays" + +#: ../src/libs/tools/global_toolbox.c:437 +msgid "overlays on mouse hover" +msgstr "overlays bij gebruik muisaanwijzer" + +#: ../src/libs/tools/global_toolbox.c:438 +msgid "extended overlays on mouse hover" +msgstr "uitgebreide overlays bij muisaanwijzer" + +#: ../src/libs/tools/global_toolbox.c:439 +#: ../src/libs/tools/global_toolbox.c:466 +msgid "permanent overlays" +msgstr "permanente overlays" + +#: ../src/libs/tools/global_toolbox.c:440 +#: ../src/libs/tools/global_toolbox.c:467 +msgid "permanent extended overlays" +msgstr "permanent uitgebreide overlays" + +#: ../src/libs/tools/global_toolbox.c:441 +msgid "permanent overlays extended on mouse hover" +msgstr "permanente uitgebreide overlays bij muisaanwijzer" + +#: ../src/libs/tools/global_toolbox.c:443 +#: ../src/libs/tools/global_toolbox.c:469 +msgid "overlays block on mouse hover" +msgstr "overlays blokkeren bij gebruik muisaanwijzer" + +#: ../src/libs/tools/global_toolbox.c:444 +#: ../src/libs/tools/global_toolbox.c:470 +msgid "during (s)" +msgstr "tijdens" + +#: ../src/libs/tools/global_toolbox.c:449 +#: ../src/libs/tools/global_toolbox.c:475 +msgid "show tooltip" +msgstr "toon gereedschapstip" + +#: ../src/libs/tools/global_toolbox.c:487 +msgid "help" +msgstr "help" + +#: ../src/libs/tools/global_toolbox.c:489 +msgid "enable this, then click on a control element to see its online help" +msgstr "" +"activeer en klik vervolgens op een besturingselement en bekijk de online help" + +#: ../src/libs/tools/global_toolbox.c:496 +msgid "" +"define shortcuts\n" +"ctrl+click to switch off overwrite confirmations\n" +"\n" +"hover over a widget and press keys with mouse click and scroll or move " +"combinations\n" +"repeat same combination again to delete mapping\n" +"click on a widget, module or screen area to open the dialog for further " +"configuration" +msgstr "" +"sneltoetsen definiëren\n" +"ctrl+klik om overschrijf bevestiging uit te schakelen\n" +"\n" +"zweef over een widget en druk op toetsen met muisklik en scroll of verplaats " +"combinaties\n" +"herhaal dezelfde combinatie nogmaals om de toewijzing te verwijderen\n" +"klik op een widget, module of schermgebied om het dialoogvenster te openen " +"voor verdere configuratie" + +#: ../src/libs/tools/global_toolbox.c:512 +msgid "show global preferences" +msgstr "algemene voorkeuren weergeven" + +#: ../src/libs/tools/hinter.c:42 +msgid "hinter" +msgstr "'hinter' (achter?)" + +#: ../src/libs/tools/hinter.c:98 +#, c-format +msgid "%s in current collection" +msgstr "%s in huidige collectie" + +#: ../src/libs/tools/image_infos.c:40 +msgid "image infos" +msgstr "afbeeldingsinfo" + +#: ../src/libs/tools/lighttable.c:116 +msgid "click to exit from full preview layout." +msgstr "klik om de volledige voorbeeldweergave af te sluiten." + +#: ../src/libs/tools/lighttable.c:118 +msgid "click to enter full preview layout." +msgstr "klik om de volledige voorbeeldweergave te openen." + +#: ../src/libs/tools/lighttable.c:121 +msgid "click to enter culling layout in fixed mode." +msgstr "klik om de vergelijk weergave in vaste modus te openen." + +#: ../src/libs/tools/lighttable.c:123 ../src/libs/tools/lighttable.c:128 +msgid "click to exit culling layout." +msgstr "klik om de vergelijk weergave te verlaten." + +#: ../src/libs/tools/lighttable.c:126 +msgid "click to enter culling layout in dynamic mode." +msgstr "klik om vergelijk weergave in dynamische modus te starten." + +#: ../src/libs/tools/lighttable.c:365 +msgid "toggle filemanager layout" +msgstr "schakel naar bestandsbeheer weergave" + +#: ../src/libs/tools/lighttable.c:368 +msgid "click to enter filemanager layout." +msgstr "klik om naar bestandsbeheer weergave te gaan." + +#: ../src/libs/tools/lighttable.c:374 +msgid "toggle zoomable lighttable layout" +msgstr "schakel naar zoombare bibliotheek weergave" + +#: ../src/libs/tools/lighttable.c:377 +msgid "click to enter zoomable lighttable layout." +msgstr "klik om naar zoombare bibliotheek-weergave te gaan." + +#: ../src/libs/tools/lighttable.c:383 +msgid "toggle culling mode" +msgstr "wissel vergelijk mode" + +#: ../src/libs/tools/lighttable.c:391 +msgid "toggle culling dynamic mode" +msgstr "wissel dynamische vergelijk modus" + +#: ../src/libs/tools/lighttable.c:438 +msgid "toggle culling zoom mode" +msgstr "wissel vergelijk zoom mode" + +#: ../src/libs/tools/lighttable.c:440 +msgid "exit current layout" +msgstr "verlaat de huidige weergave" + +#: ../src/libs/tools/midi.c:41 +msgid "midi" +msgstr "midi" + +#: ../src/libs/tools/midi.c:221 +msgid "using absolute encoding; reinitialise to switch to relative" +msgstr "" +"gebruik absolute codering; opnieuw initialiseren om naar relatief te " +"schakelen" + +#: ../src/libs/tools/midi.c:225 +#, c-format +msgid "%d more identical (down) moves before switching to relative encoding" +msgstr "" +"%d meer identieke (omlaag) beweging voor schakelen naar relatieve codering" + +#: ../src/libs/tools/midi.c:228 +#, c-format +msgid "switching encoding to relative (down = %d)" +msgstr "schakel codering naar relatief (omlaag=%d)" + +#: ../src/libs/tools/midi.c:558 +#, c-format +msgid "%s opened as midi%d" +msgstr "%s geopend als MIDI%d" + +#: ../src/libs/tools/module_toolbox.c:46 +msgid "module toolbox" +msgstr "moduletoolbox" + +#. connect callbacks +#: ../src/libs/tools/ratings.c:97 +msgid "set star rating for selected images" +msgstr "stel ster waardering in voor geselecteerde afbeeldingen" + +#: ../src/libs/tools/timeline.c:102 +msgid "timeline" +msgstr "tijdlijn" + +#: ../src/libs/tools/timeline.c:1433 +msgid "start selection" +msgstr "start selectie" + +#: ../src/libs/tools/timeline.c:1434 +msgid "stop selection" +msgstr "stop selectie" + +#: ../src/libs/tools/view_toolbox.c:46 +msgid "view toolbox" +msgstr "bekijk toolbox" + +#: ../src/libs/tools/viewswitcher.c:60 +msgid "viewswitcher" +msgstr "schermwisselaar" + +#: ../src/lua/preferences.c:656 ../src/lua/preferences.c:671 +#: ../src/lua/preferences.c:683 ../src/lua/preferences.c:695 +#: ../src/lua/preferences.c:711 ../src/lua/preferences.c:775 +#, c-format +msgid "double-click to reset to `%s'" +msgstr "dubbelklikken om te resetten naar `%s'" + +#: ../src/lua/preferences.c:681 +msgid "select file" +msgstr "selecteer bestand" + +#: ../src/lua/preferences.c:734 +#, c-format +msgid "double-click to reset to `%d'" +msgstr "dubbelklik om te resetten naar `%d'" + +#: ../src/lua/preferences.c:761 +#, c-format +msgid "double-click to reset to `%f'" +msgstr "dubbelklik om te resetten naar `%f'" + +#: ../src/lua/preferences.c:837 +msgid "Lua options" +msgstr "Lua-opties" + +#: ../src/views/darkroom.c:503 +#, c-format +msgid "" +"darktable could not load `%s', switching to lighttable now.\n" +"\n" +"please check that the camera model that produced the image is supported in " +"darktable\n" +"(list of supported cameras is at https://www.darktable.org/resources/camera-" +"support/).\n" +"if you are sure that the camera model is supported, please consider opening " +"an issue\n" +"at https://github.com/darktable-org/darktable" +msgstr "" +"darktable kon `%s’ niet laden, nu naar bibliotheek weergave.\n" +"\n" +"controleer of het cameramodel dat de afbeelding heeft geproduceerd, wordt " +"ondersteund in darktable\n" +"(lijst met ondersteunde camera’s is te vinden op https://www.darktable.org/" +"resources/camera-support/).\n" +"als je zeker weet dat het cameramodel wordt ondersteund, kun je overwegen " +"een issue te openen\n" +"op https://github.com/darktable-org/darktable" + +#: ../src/views/darkroom.c:521 +#, c-format +msgctxt "darkroom" +msgid "loading `%s' ..." +msgstr "laden `%s' ..." + +#: ../src/views/darkroom.c:668 ../src/views/darkroom.c:2335 +msgid "gamut check" +msgstr "gammacontrole" + +#: ../src/views/darkroom.c:668 +msgid "soft proof" +msgstr "soft proof" + +#. fail :( +#: ../src/views/darkroom.c:708 ../src/views/print.c:356 +msgid "no image to open!" +msgstr "geen afbeelding om te openen!" + +#: ../src/views/darkroom.c:1232 +msgid "no user-defined presets for favorite modules were found" +msgstr "geen gebruikersvoorkeuren voor favoriete modules gevonden" + +#: ../src/views/darkroom.c:1377 +msgid "no styles have been created yet" +msgstr "er is nog niet eerder een stijl aangemaakt" + +#: ../src/views/darkroom.c:2170 ../src/views/darkroom.c:2171 +msgid "quick access to presets" +msgstr "snelle toegang tot de voorkeuren" + +#: ../src/views/darkroom.c:2179 +msgid "quick access to styles" +msgstr "snelle toegang tot stijlen" + +#: ../src/views/darkroom.c:2181 +msgid "quick access for applying any of your styles" +msgstr "snelle toegang om een stijl toe te passen" + +#: ../src/views/darkroom.c:2187 +msgid "second window" +msgstr "tweede venster" + +#: ../src/views/darkroom.c:2190 +msgid "display a second darkroom image window" +msgstr "toon een tweede ontwikkel-scherm" + +#: ../src/views/darkroom.c:2195 +msgid "color assessment" +msgstr "kleur beoordeling" + +#: ../src/views/darkroom.c:2198 +msgid "toggle ISO 12646 color assessment conditions" +msgstr "schakel ISO 12646 kleur beoordelingsvoorwaarden" + +#: ../src/views/darkroom.c:2211 +msgid "" +"toggle raw over exposed indication\n" +"right click for options" +msgstr "" +"raw overbelichtingsindicator in/uit schakelen\n" +"opties via de rechtermuisknop" + +#: ../src/views/darkroom.c:2227 +msgid "select how to mark the clipped pixels" +msgstr "bepaal hoe geclipte pixels worden gemarkeerd" + +#: ../src/views/darkroom.c:2229 +msgid "mark with CFA color" +msgstr "markeer met CFA kleur" + +#: ../src/views/darkroom.c:2229 +msgid "mark with solid color" +msgstr "markeer met een vastgestelde kleur" + +#: ../src/views/darkroom.c:2229 +msgid "false color" +msgstr "fout gekleurde pixels" + +#: ../src/views/darkroom.c:2232 ../src/views/darkroom.c:2283 +msgid "color scheme" +msgstr "kleurenschema" + +#: ../src/views/darkroom.c:2233 +msgid "" +"select the solid color to indicate over exposure.\n" +"will only be used if mode = mark with solid color" +msgstr "" +"kies een vaste kleur voor indicatie van overbelichting\n" +"werkt alleen in de stand: markeer met een vaste kleur" + +#: ../src/views/darkroom.c:2236 +msgctxt "solidcolor" +msgid "red" +msgstr "rood" + +#: ../src/views/darkroom.c:2237 +msgctxt "solidcolor" +msgid "green" +msgstr "groen" + +#: ../src/views/darkroom.c:2238 +msgctxt "solidcolor" +msgid "blue" +msgstr "blauw" + +#: ../src/views/darkroom.c:2239 +msgctxt "solidcolor" +msgid "black" +msgstr "zwart" + +#: ../src/views/darkroom.c:2247 +msgid "" +"threshold of what shall be considered overexposed\n" +"1.0 - white level\n" +"0.0 - black level" +msgstr "" +"drempel voor wat moet worden beschouwd als overbelicht\n" +"1.0 - wit niveau\n" +"0.0 - zwart niveau" + +#: ../src/views/darkroom.c:2261 +msgid "" +"toggle clipping indication\n" +"right click for options" +msgstr "" +"schakel clipping aan/uit\n" +"opties via de rechtermuisknop" + +#: ../src/views/darkroom.c:2276 +msgid "clipping preview mode" +msgstr "clipping voorbeeldmodus" + +#: ../src/views/darkroom.c:2277 +msgid "" +"select the metric you want to preview\n" +"full gamut is the combination of all other modes" +msgstr "" +"selecteer het metrisch stelsel waarvan je een voorbeeld wilt bekijken\n" +"volledige gamma is de combinatie van alle andere modi" + +#: ../src/views/darkroom.c:2279 +msgid "full gamut" +msgstr "volledig gamma" + +#: ../src/views/darkroom.c:2279 +msgid "any RGB channel" +msgstr "elk RGB-kanaal" + +#: ../src/views/darkroom.c:2279 +msgid "luminance only" +msgstr "enkel helderheid" + +#: ../src/views/darkroom.c:2279 +msgid "saturation only" +msgstr "enkel verzadiging" + +#: ../src/views/darkroom.c:2284 +msgid "select colors to indicate clipping" +msgstr "kies kleuren voor weergave clipping" + +#: ../src/views/darkroom.c:2286 +msgid "red & blue" +msgstr "rood en blauw" + +#: ../src/views/darkroom.c:2286 +msgid "purple & green" +msgstr "paars en groen" + +#: ../src/views/darkroom.c:2293 +msgid "lower threshold" +msgstr "drempel onderkant" + +#: ../src/views/darkroom.c:2294 +msgid "" +"clipping threshold for the black point,\n" +"in EV, relatively to white (0 EV).\n" +"8 bits sRGB clips blacks at -12.69 EV,\n" +"8 bits Adobe RGB clips blacks at -19.79 EV,\n" +"16 bits sRGB clips blacks at -20.69 EV,\n" +"typical fine-art mat prints produce black at -5.30 EV,\n" +"typical color glossy prints produce black at -8.00 EV,\n" +"typical B&W glossy prints produce black at -9.00 EV." +msgstr "" +"afkapdrempel voor het zwartpunt,\n" +"in EV, relatief tot wit (0 EV).\n" +"8 bits sRGB kapt zwart af bij -12,69 EV,\n" +"8 bits Adobe RGB kapt zwart af bij -19,79 EV,\n" +"16 bits sRGB kapt zwart afbij -20,69 EV,\n" +"typische fine-art matte prints produceren zwart bij -5,30 EV,\n" +"typische glanzende kleurenafdrukken produceren zwart bij -8,00 EV,\n" +"typische zwart-wit glanzende prints produceren zwart bij -9,00 EV." + +#: ../src/views/darkroom.c:2310 +msgid "upper threshold" +msgstr "drempel bovenkant" + +#: ../src/views/darkroom.c:2312 +#, no-c-format +msgid "" +"clipping threshold for the white point.\n" +"100% is peak medium luminance." +msgstr "" +"afkapdrempel voor het witpunt.\n" +"100% is de gemiddelde piekhelderheid." + +#: ../src/views/darkroom.c:2324 +msgid "softproof" +msgstr "softproof" + +#: ../src/views/darkroom.c:2327 +msgid "" +"toggle softproofing\n" +"right click for profile options" +msgstr "" +"softproofing in/uit schakelen\n" +"opties via de rechtermuisknop" + +#: ../src/views/darkroom.c:2338 +msgid "" +"toggle gamut checking\n" +"right click for profile options" +msgstr "" +"gamma controle in/uit schakelen\n" +"opties via de rechtermuisknop" + +#: ../src/views/darkroom.c:2365 ../src/views/darkroom.c:2367 +#: ../src/views/darkroom.c:2381 ../src/views/darkroom.c:2382 +#: ../src/views/darkroom.c:2383 ../src/views/darkroom.c:2384 +#: ../src/views/lighttable.c:1182 ../src/views/lighttable.c:1184 +msgid "profiles" +msgstr "profielen" + +#: ../src/views/darkroom.c:2367 ../src/views/lighttable.c:1184 +msgid "preview intent" +msgstr "voorbeeldweergave intentie" + +#: ../src/views/darkroom.c:2381 ../src/views/lighttable.c:1188 +msgid "display profile" +msgstr "weergaveprofiel" + +#: ../src/views/darkroom.c:2382 ../src/views/lighttable.c:1191 +msgid "preview display profile" +msgstr "voorbeeld weergaveprofiel" + +#: ../src/views/darkroom.c:2384 +msgid "histogram profile" +msgstr "histogram profiel" + +#: ../src/views/darkroom.c:2391 +msgid "second preview window ISO 12646 color assessment" +msgstr "tweede voorvertoning ISO 12646 kleurbeoordeling" + +#: ../src/views/darkroom.c:2393 +msgid "color assessment second preview" +msgstr "kleurbeoordeling tweede voorvertoning" + +#: ../src/views/darkroom.c:2452 ../src/views/lighttable.c:1225 +msgid "display ICC profiles" +msgstr "display ICC-profielen" + +#: ../src/views/darkroom.c:2456 ../src/views/lighttable.c:1229 +msgid "preview display ICC profiles" +msgstr "voorbeeld display ICC-profielen" + +#: ../src/views/darkroom.c:2460 +msgid "softproof ICC profiles" +msgstr "softproof ICC-profielen" + +#: ../src/views/darkroom.c:2464 +msgid "histogram and color picker ICC profiles" +msgstr "histogram en kleurkiezer ICC-profielen" + +#: ../src/views/darkroom.c:2497 +msgid "" +"toggle guide lines\n" +"right click for guides options" +msgstr "" +"hulplijnen inschakelen\n" +"klik met de rechtermuisknop voor hulplijnopties" + +#. Fullscreen preview key +#: ../src/views/darkroom.c:2514 +msgid "full preview" +msgstr "volledige weergave" + +#. add an option to allow skip mouse events while other overlays are consuming mouse actions +#: ../src/views/darkroom.c:2518 +msgid "force pan/zoom/rotate with mouse" +msgstr "forceer pan/zoom/roteer met muis" + +#. Zoom shortcuts +#: ../src/views/darkroom.c:2530 +msgid "zoom close-up" +msgstr "maximaal inzoomen" + +#. zoom in/out +#. zoom in/out/min/max +#: ../src/views/darkroom.c:2533 ../src/views/lighttable.c:1283 +msgid "zoom in" +msgstr "inzoomen" + +#: ../src/views/darkroom.c:2534 ../src/views/lighttable.c:1285 +msgid "zoom out" +msgstr "uitzoomen" + +#. Shortcut to skip images +#: ../src/views/darkroom.c:2537 +msgid "image forward" +msgstr "volgende afbeelding" + +#: ../src/views/darkroom.c:2538 +msgid "image back" +msgstr "vorige afbeelding" + +#. cycle overlay colors +#: ../src/views/darkroom.c:2541 +msgid "cycle overlay colors" +msgstr "wissel overlay kleuren" + +#. toggle visibility of drawn masks for current gui module +#: ../src/views/darkroom.c:2544 +msgid "show drawn masks" +msgstr "toon getekende maskers" + +#. brush size +/- +#: ../src/views/darkroom.c:2547 +msgid "increase brush size" +msgstr "vergroot penseeldikte" + +# Eventueel kan ook gebruikt worden: +# 'penseeldikte verminderen' (geldt voor alle penseel-combinaties, bv 'penseelhardheid verminderen') +#: ../src/views/darkroom.c:2548 +msgid "decrease brush size" +msgstr "verklein penseeldikte" + +#. brush hardness +/- +#: ../src/views/darkroom.c:2551 +msgid "increase brush hardness" +msgstr "verhoog penseelhardheid" + +#: ../src/views/darkroom.c:2552 +msgid "decrease brush hardness" +msgstr "verlaag penseelhardheid" + +#. brush opacity +/- +#: ../src/views/darkroom.c:2555 +msgid "increase brush opacity" +msgstr "verhoog penseeldekking" + +#: ../src/views/darkroom.c:2556 +msgid "decrease brush opacity" +msgstr "verlaag penseeldekking" + +#. undo/redo +#: ../src/views/darkroom.c:2559 ../src/views/lighttable.c:1275 +#: ../src/views/map.c:2115 +msgid "undo" +msgstr "herstel" + +#: ../src/views/darkroom.c:2560 ../src/views/lighttable.c:1276 +#: ../src/views/map.c:2116 +msgid "redo" +msgstr "opnieuw" + +#. change the precision for adjusting sliders with keyboard shortcuts +#: ../src/views/darkroom.c:2563 +msgid "change keyboard shortcut slider precision" +msgstr "wijzig de keyboard sneltoets schuif precisie" + +#: ../src/views/darkroom.c:3565 +msgid "keyboard shortcut slider precision: fine" +msgstr "precisie van de schuifregelaar van de sneltoets: fijn" + +#: ../src/views/darkroom.c:3567 +msgid "keyboard shortcut slider precision: normal" +msgstr "precisie van de schuifregelaar van de sneltoets: normaal" + +#: ../src/views/darkroom.c:3569 +msgid "keyboard shortcut slider precision: coarse" +msgstr "precisie van de schuifregelaar van de sneltoets: grof" + +#: ../src/views/darkroom.c:3584 +msgid "switch to lighttable" +msgstr "schakel naar bibliotheek" + +#: ../src/views/darkroom.c:3585 ../src/views/lighttable.c:882 +msgid "zoom in the image" +msgstr "inzoomen op de afbeelding" + +#: ../src/views/darkroom.c:3586 +msgid "unbounded zoom in the image" +msgstr "onbegrensde zoom in de afbeelding" + +#: ../src/views/darkroom.c:3587 +msgid "zoom to 100% 200% and back" +msgstr "zoom naar 100%, 200% en weer terug" + +#: ../src/views/darkroom.c:3588 ../src/views/lighttable.c:885 +msgid "pan a zoomed image" +msgstr "een ingezoomde afbeelding pannen" + +#: ../src/views/darkroom.c:3590 ../src/views/lighttable.c:927 +msgid "[modules] expand module without closing others" +msgstr "[modules] module uitbreiden zonder anderen te sluiten" + +#: ../src/views/darkroom.c:3591 ../src/views/lighttable.c:928 +msgid "[modules] expand module and close others" +msgstr "[modules] module uitbreiden en sluit anderen" + +#: ../src/views/darkroom.c:3593 +msgid "[modules] rename module" +msgstr "[modules] hernoem module" + +#: ../src/views/darkroom.c:3595 +msgid "[modules] change module position in pipe" +msgstr "[modules] wijzig modulepositie in pijplijn" + +#: ../src/views/knight.c:334 +msgid "good knight" +msgstr "goedenacht" + +#. Show infos key +#: ../src/views/lighttable.c:656 ../src/views/lighttable.c:1266 +msgid "show infos" +msgstr "toon info" + +#: ../src/views/lighttable.c:759 +msgid "middle" +msgstr "midden" + +#: ../src/views/lighttable.c:877 +msgid "open image in darkroom" +msgstr "open afbeelding om te ontwikkelen" + +#: ../src/views/lighttable.c:881 +msgid "switch to next/previous image" +msgstr "overschakelen naar volgende/voorgaande afbeelding" + +#: ../src/views/lighttable.c:884 ../src/views/lighttable.c:915 +#, no-c-format +msgid "zoom to 100% and back" +msgstr "zoom naar 100% en terug" + +#: ../src/views/lighttable.c:889 ../src/views/lighttable.c:908 +msgid "scroll the collection" +msgstr "scroll door collectie" + +#: ../src/views/lighttable.c:891 +msgid "change number of images per row" +msgstr "wijzig aantal afbeeldingen per rij" + +#: ../src/views/lighttable.c:894 +msgid "select an image" +msgstr "selecteer een afbeelding" + +#: ../src/views/lighttable.c:896 +msgid "select range from last image" +msgstr "selecteer bereik vanaf laatste afbeelding" + +#: ../src/views/lighttable.c:898 +msgid "add image to or remove it from a selection" +msgstr "afbeelding toevoegen aan of verwijderen uit een selectie" + +#: ../src/views/lighttable.c:902 +msgid "change image order" +msgstr "afbeeldings volgorde wijzigen" + +#: ../src/views/lighttable.c:909 +msgid "zoom all the images" +msgstr "inzoomen in op alle afbeeldingen" + +#: ../src/views/lighttable.c:910 +msgid "pan inside all the images" +msgstr "uitzoomen op alle afbeeldingen" + +#: ../src/views/lighttable.c:912 +msgid "zoom current image" +msgstr "inzoomen op huidige afbeelding" + +#: ../src/views/lighttable.c:913 +msgid "pan inside current image" +msgstr "uitzoomen op huidige afbeelding" + +#: ../src/views/lighttable.c:918 +#, no-c-format +msgid "zoom current image to 100% and back" +msgstr "zoom huidige afbeelding naar 100% en terug" + +#: ../src/views/lighttable.c:922 +msgid "zoom the main view" +msgstr "zoom in op hoofdaanzicht" + +#: ../src/views/lighttable.c:923 +msgid "pan inside the main view" +msgstr "zoom binnen de pan inside hoofdweergave" + +#: ../src/views/lighttable.c:1160 +msgid "set display profile" +msgstr "kies weergaveprofiel" + +#: ../src/views/lighttable.c:1246 +msgid "whole" +msgstr "geheel" + +#: ../src/views/lighttable.c:1262 +msgid "leave" +msgstr "verlaat" + +#: ../src/views/lighttable.c:1269 +msgid "align images to grid" +msgstr "afbeeldingen uitlijnen op raster" + +#: ../src/views/lighttable.c:1270 +msgid "reset first image offset" +msgstr "reset eerste afbeelding offset" + +#: ../src/views/lighttable.c:1271 +msgid "select toggle image" +msgstr "selecteer omschakelen afbeelding" + +#: ../src/views/lighttable.c:1272 +msgid "select single image" +msgstr "selecteer een enkele afbeelding" + +#. zoom for full culling & preview +#: ../src/views/lighttable.c:1279 +msgid "preview zoom 100%" +msgstr "voorbeeld zoom 100%" + +#: ../src/views/lighttable.c:1280 +msgid "preview zoom fit" +msgstr "voorbeeld passende zoom" + +#: ../src/views/lighttable.c:1284 +msgid "zoom max" +msgstr "volledig inzoomen" + +#: ../src/views/lighttable.c:1286 +msgid "zoom min" +msgstr "volledig uitzoomen" + +#: ../src/views/map.c:2809 +msgid "[on image] open in darkroom" +msgstr "[op afbeelding] open in ontwikkelen" + +#: ../src/views/map.c:2810 +msgid "[on map] zoom map" +msgstr "[on map] kaart inzoomen" + +#: ../src/views/map.c:2811 +msgid "move image location" +msgstr "verplaats afbeeldings locatie" + +#: ../src/views/print.c:55 +msgctxt "view" +msgid "print" +msgstr "afdrukken" + +#: ../src/views/slideshow.c:355 +msgid "end of images" +msgstr "einde van de afbeeldingen" + +#: ../src/views/slideshow.c:376 +msgid "end of images. press any key to return to lighttable mode" +msgstr "" +"laatste afbeelding. druk een toets om terug te keren naar de bibliotheek" + +#: ../src/views/slideshow.c:509 +msgid "waiting to start slideshow" +msgstr "wacht op start presentatie" + +#: ../src/views/slideshow.c:678 ../src/views/slideshow.c:705 +#: ../src/views/slideshow.c:713 +msgid "slideshow paused" +msgstr "presentatie gepauzeerd" + +#: ../src/views/slideshow.c:686 ../src/views/slideshow.c:696 +#, c-format +msgid "slideshow delay set to %d second" +msgid_plural "slideshow delay set to %d seconds" +msgstr[0] "presentatie wissel ingesteld op %d seconde" +msgstr[1] "presentatie wissel ingesteld op %d seconden" + +#: ../src/views/slideshow.c:728 +msgid "start and stop" +msgstr "start en stop" + +#: ../src/views/slideshow.c:730 +msgid "exit slideshow" +msgstr "verlaat presentatie" + +#: ../src/views/slideshow.c:734 +msgid "slow down" +msgstr "vertraag" + +#: ../src/views/slideshow.c:738 +msgid "speed up" +msgstr "versnel" + +#: ../src/views/slideshow.c:743 +msgid "step forward" +msgstr "stap vooruit" + +#: ../src/views/slideshow.c:745 +msgid "step back" +msgstr "stap terug" + +#: ../src/views/slideshow.c:753 +msgid "go to next image" +msgstr "ga naar volgende afbeelding" + +#: ../src/views/slideshow.c:755 +msgid "go to previous image" +msgstr "ga naar vorige afbeelding" + +#: ../src/views/tethering.c:157 +#, c-format +msgid "new session initiated '%s'" +msgstr "nieuwe sessie gestart-'%s'" + +#: ../src/views/tethering.c:448 +msgid "no camera with tethering support available for use..." +msgstr "geen camera met tetheringondersteuning aanwezig..." + +#: ../src/views/view.c:1352 +msgid "left click" +msgstr "klik links" + +#: ../src/views/view.c:1355 +msgid "right click" +msgstr "klik rechts" + +#: ../src/views/view.c:1358 +msgid "middle click" +msgstr "klik middelste" + +#: ../src/views/view.c:1364 +msgid "left double-click" +msgstr "links dubbelklikken" + +#: ../src/views/view.c:1367 +msgid "right double-click" +msgstr "rechts dubbelklikken" + +#: ../src/views/view.c:1370 +msgid "drag and drop" +msgstr "slepen en neerzetten" + +#: ../src/views/view.c:1373 +msgid "left click+drag" +msgstr "klik links+sleep" + +#: ../src/views/view.c:1376 +msgid "right click+drag" +msgstr "klik rechts+sleep" + +#: ../src/views/view.c:1398 +msgid "darktable - accels window" +msgstr "darktable - accels window" + +#: ../src/views/view.c:1447 +msgid "switch to a classic window which will stay open after key release" +msgstr "" +"schakel over naar een klassiek venster dat open blijft na het loslaten van " +"toets" + +#. we add the mouse actions too +#: ../src/views/view.c:1514 +msgid "mouse actions" +msgstr "muisacties" diff -Nru darktable-4.4.2/po/pl.po darktable-4.6.1/po/pl.po --- darktable-4.4.2/po/pl.po 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/po/pl.po 2024-02-16 17:31:09.000000000 +0000 @@ -2,8 +2,8 @@ msgstr "" "Project-Id-Version: darktable 1.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-31 13:24+0200\n" -"PO-Revision-Date: 2023-06-08 01:21+0200\n" +"POT-Creation-Date: 2023-11-30 19:32+0100\n" +"PO-Revision-Date: 2023-12-11 13:55+0100\n" "Last-Translator: Wiktor Nowak <kontakt.bajdero@gmail.com>\n" "Language-Team: Polish < >\n" "Language: pl_PL\n" @@ -12,272 +12,236 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Poedit 3.3.1\n" +"X-Generator: Poedit 3.4.1\n" -#: ../build/bin/conf_gen.h:172 ../build/bin/preferences_gen.h:7632 +#: ../build/bin/conf_gen.h:174 msgctxt "preferences" msgid "first instance" msgstr "pierwsza instancja" -#: ../build/bin/conf_gen.h:173 ../build/bin/preferences_gen.h:7637 -#: ../build/bin/preferences_gen.h:7656 +#: ../build/bin/conf_gen.h:175 ../build/bin/preferences_gen.h:7922 msgctxt "preferences" msgid "last instance" msgstr "ostatnia instancja" -#: ../build/bin/conf_gen.h:240 ../build/bin/conf_gen.h:346 -#: ../build/bin/conf_gen.h:356 ../build/bin/conf_gen.h:1186 -#: ../build/bin/conf_gen.h:1202 ../build/bin/preferences_gen.h:4137 -#: ../build/bin/preferences_gen.h:4156 ../build/bin/preferences_gen.h:4232 -#: ../build/bin/preferences_gen.h:6706 ../build/bin/preferences_gen.h:6834 -#: ../build/bin/preferences_gen.h:6899 +#: ../build/bin/conf_gen.h:252 ../build/bin/conf_gen.h:352 +#: ../build/bin/conf_gen.h:362 ../build/bin/conf_gen.h:1239 +#: ../build/bin/conf_gen.h:1255 ../build/bin/conf_gen.h:1275 +#: ../build/bin/preferences_gen.h:4747 ../build/bin/preferences_gen.h:4885 msgctxt "preferences" msgid "never" msgstr "nigdy" -#: ../build/bin/conf_gen.h:241 ../build/bin/preferences_gen.h:6711 +#: ../build/bin/conf_gen.h:253 msgctxt "preferences" msgid "once a month" msgstr "raz na miesiąc" -#: ../build/bin/conf_gen.h:242 ../build/bin/preferences_gen.h:6716 -#: ../build/bin/preferences_gen.h:6745 +#: ../build/bin/conf_gen.h:254 ../build/bin/preferences_gen.h:7138 msgctxt "preferences" msgid "once a week" msgstr "raz na tydzień" -#: ../build/bin/conf_gen.h:243 ../build/bin/preferences_gen.h:6721 +#: ../build/bin/conf_gen.h:255 msgctxt "preferences" msgid "once a day" msgstr "raz dziennie" -#: ../build/bin/conf_gen.h:244 ../build/bin/preferences_gen.h:6726 +#: ../build/bin/conf_gen.h:256 msgctxt "preferences" msgid "on close" msgstr "podczas zamykania" -#: ../build/bin/conf_gen.h:280 ../build/bin/conf_gen.h:1179 -#: ../build/bin/conf_gen.h:1195 ../build/bin/preferences_gen.h:4102 -#: ../build/bin/preferences_gen.h:4197 ../build/bin/preferences_gen.h:5748 +#: ../build/bin/conf_gen.h:292 ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1248 ../build/bin/conf_gen.h:1276 msgctxt "preferences" msgid "small" msgstr "małe" -#: ../build/bin/conf_gen.h:281 ../build/bin/conf_gen.h:393 -#: ../build/bin/preferences_gen.h:5753 ../build/bin/preferences_gen.h:5782 -#: ../build/bin/preferences_gen.h:5969 ../build/bin/preferences_gen.h:5998 +#: ../build/bin/conf_gen.h:293 ../build/bin/conf_gen.h:405 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6223 msgctxt "preferences" msgid "default" msgstr "domyślnie" -#: ../build/bin/conf_gen.h:282 ../build/bin/conf_gen.h:2814 -#: ../build/bin/preferences_gen.h:5758 +#: ../build/bin/conf_gen.h:294 ../build/bin/conf_gen.h:2904 msgctxt "preferences" msgid "large" msgstr "duży" -#: ../build/bin/conf_gen.h:283 ../build/bin/preferences_gen.h:5763 +#: ../build/bin/conf_gen.h:295 msgctxt "preferences" msgid "unrestricted" msgstr "swobodny" -#: ../build/bin/conf_gen.h:347 ../build/bin/preferences_gen.h:6839 +#: ../build/bin/conf_gen.h:353 msgctxt "preferences" msgid "after edit" msgstr "po edycji" -#: ../build/bin/conf_gen.h:348 ../build/bin/preferences_gen.h:6844 -#: ../build/bin/preferences_gen.h:6863 +#: ../build/bin/conf_gen.h:354 ../build/bin/preferences_gen.h:7224 msgctxt "preferences" msgid "on import" msgstr "podczas importu" -#: ../build/bin/conf_gen.h:357 ../build/bin/conf_gen.h:1178 -#: ../build/bin/conf_gen.h:1194 ../build/bin/conf_gen.h:3214 -#: ../build/bin/preferences_gen.h:4097 ../build/bin/preferences_gen.h:4192 -#: ../build/bin/preferences_gen.h:5112 ../build/bin/preferences_gen.h:5166 -#: ../build/bin/preferences_gen.h:6904 +#: ../build/bin/conf_gen.h:363 ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1247 ../build/bin/conf_gen.h:3300 +#: ../build/bin/preferences_gen.h:5644 msgctxt "preferences" msgid "always" msgstr "zawsze" -#: ../build/bin/conf_gen.h:358 ../build/bin/preferences_gen.h:6909 -#: ../build/bin/preferences_gen.h:6928 +#: ../build/bin/conf_gen.h:364 ../build/bin/preferences_gen.h:7259 msgctxt "preferences" msgid "only large entries" msgstr "tylko duże" -#: ../build/bin/conf_gen.h:378 ../build/bin/preferences_gen.h:8069 +#: ../build/bin/conf_gen.h:390 msgctxt "preferences" msgid "sensitive" msgstr "wrażliwy" -#: ../build/bin/conf_gen.h:379 ../build/bin/preferences_gen.h:8074 -#: ../build/bin/preferences_gen.h:8093 +#: ../build/bin/conf_gen.h:391 ../build/bin/preferences_gen.h:8133 msgctxt "preferences" msgid "insensitive" msgstr "niewrażliwy" -#: ../build/bin/conf_gen.h:394 ../build/bin/preferences_gen.h:5974 +#: ../build/bin/conf_gen.h:406 msgctxt "preferences" msgid "multiple GPUs" msgstr "kilka kart graficznych" -#: ../build/bin/conf_gen.h:395 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/conf_gen.h:407 msgctxt "preferences" msgid "very fast GPU" msgstr "bardzo szybka karta graficzna" -#: ../build/bin/conf_gen.h:403 ../build/bin/preferences_gen.h:6040 -#: ../build/bin/preferences_gen.h:6074 +#: ../build/bin/conf_gen.h:755 msgctxt "preferences" -msgid "nothing" -msgstr "nic" - -#: ../build/bin/conf_gen.h:404 ../build/bin/preferences_gen.h:6045 -msgctxt "preferences" -msgid "memory size" -msgstr "rozmiar pamięci" - -#: ../build/bin/conf_gen.h:405 ../build/bin/preferences_gen.h:6050 -msgctxt "preferences" -msgid "memory transfer" -msgstr "transfer pamięci" - -#: ../build/bin/conf_gen.h:406 ../build/bin/preferences_gen.h:6055 -msgctxt "preferences" -msgid "memory size and transfer" -msgstr "wielkość pamięci i transfer" - -#: ../build/bin/conf_gen.h:706 ../build/bin/preferences_gen.h:8257 -#: ../build/bin/preferences_gen.h:8281 -msgctxt "preferences" -msgid "id" -msgstr "id" +msgid "import time" +msgstr "czas importu" -#: ../build/bin/conf_gen.h:707 ../build/bin/preferences_gen.h:8262 +#: ../build/bin/conf_gen.h:756 msgctxt "preferences" -msgid "folder" -msgstr "katalog" +msgid "folder name" +msgstr "nazwa folderu" -#: ../build/bin/conf_gen.h:721 +#: ../build/bin/conf_gen.h:770 msgctxt "preferences" msgid "RGB" msgstr "RGB" -#: ../build/bin/conf_gen.h:722 +#: ../build/bin/conf_gen.h:771 msgctxt "preferences" msgid "Lab" msgstr "Lab" -#: ../build/bin/conf_gen.h:723 +#: ../build/bin/conf_gen.h:772 msgctxt "preferences" msgid "LCh" msgstr "LCh" -#: ../build/bin/conf_gen.h:724 +#: ../build/bin/conf_gen.h:773 msgctxt "preferences" msgid "HSL" msgstr "HSL" -#: ../build/bin/conf_gen.h:725 +#: ../build/bin/conf_gen.h:774 msgctxt "preferences" msgid "Hex" msgstr "Hex" -#: ../build/bin/conf_gen.h:726 ../build/bin/conf_gen.h:1830 -#: ../build/bin/conf_gen.h:2488 ../build/bin/conf_gen.h:2790 -#: ../build/bin/conf_gen.h:3044 ../build/bin/preferences_gen.h:5577 -#: ../build/bin/preferences_gen.h:6561 +#: ../build/bin/conf_gen.h:775 ../build/bin/conf_gen.h:1916 +#: ../build/bin/conf_gen.h:2578 ../build/bin/conf_gen.h:2880 +#: ../build/bin/conf_gen.h:3136 msgctxt "preferences" msgid "none" msgstr "brak" -#: ../build/bin/conf_gen.h:734 +#: ../build/bin/conf_gen.h:783 msgctxt "preferences" msgid "mean" msgstr "średnia" -#: ../build/bin/conf_gen.h:735 +#: ../build/bin/conf_gen.h:784 msgctxt "preferences" msgid "min" msgstr "min" -#: ../build/bin/conf_gen.h:736 +#: ../build/bin/conf_gen.h:785 msgctxt "preferences" msgid "max" msgstr "maks" -#: ../build/bin/conf_gen.h:924 +#: ../build/bin/conf_gen.h:973 msgid "select only new pictures" msgstr "tylko nowe zdjęcia" -#: ../build/bin/conf_gen.h:925 +#: ../build/bin/conf_gen.h:974 msgid "only select images that have not already been imported" msgstr "wybierz tylko niezaimportowane zdjęcia" -#: ../build/bin/conf_gen.h:930 -msgid "ignore JPEG images" -msgstr "pomijaj pliki JPEG" +#: ../build/bin/conf_gen.h:979 +msgid "ignore non-raw images" +msgstr "pomijaj obrazy inne niż raw" -#: ../build/bin/conf_gen.h:931 +#: ../build/bin/conf_gen.h:980 msgid "" -"when having raw+JPEG images together in one directory it makes no sense to " -"import both. with this flag one can ignore all JPEGs found." +"if enabled, only raw files will be allowed to import. non-raw files will not " +"be visible in the dialog and will not be imported." msgstr "" -"jeśli w danym katalogu znajdują się te same zdjęcia w formatach raw i JPEG, " -"to importowanie obu może być niepotrzebne. to ustawienie umożliwia " -"pominięcie plików JPEG przy imporcie." +"Jeśli zaznaczone, jedynie pliki raw będą importowane. inne pliki nie będą " +"widoczne i nie zostaną zaimportowane." -#: ../build/bin/conf_gen.h:936 +#: ../build/bin/conf_gen.h:985 msgid "apply metadata" msgstr "zastosuj metadane" -#: ../build/bin/conf_gen.h:937 +#: ../build/bin/conf_gen.h:986 msgid "apply some metadata to all newly imported images." msgstr "stosuje wybrane metadane do nowo-importowanych obrazów." -#: ../build/bin/conf_gen.h:942 +#: ../build/bin/conf_gen.h:991 msgid "recursive directory" msgstr "z podkatalogami" -#: ../build/bin/conf_gen.h:943 +#: ../build/bin/conf_gen.h:992 msgid "recursive directory traversal when importing filmrolls" msgstr "rekurencyjnie przeszukuj katalogi podczas importu rolek filmu" -#: ../build/bin/conf_gen.h:948 +#: ../build/bin/conf_gen.h:997 msgid "creator to be applied when importing" msgstr "twórca przypisywany podczas importu" -#: ../build/bin/conf_gen.h:954 +#: ../build/bin/conf_gen.h:1003 msgid "publisher to be applied when importing" msgstr "wydawca przypisywany podczas importu" -#: ../build/bin/conf_gen.h:960 +#: ../build/bin/conf_gen.h:1009 msgid "rights to be applied when importing" msgstr "prawa autorskie przypisywane podczas importu" -#: ../build/bin/conf_gen.h:966 +#: ../build/bin/conf_gen.h:1015 msgid "comma separated tags to be applied when importing" msgstr "etykiety do przypisania podczas importu (oddzielone przecinkami)" -#: ../build/bin/conf_gen.h:972 +#: ../build/bin/conf_gen.h:1021 msgid "import tags from XMP" msgstr "importuj etykiety z XMP" -#: ../build/bin/conf_gen.h:998 +#: ../build/bin/conf_gen.h:1051 msgid "initial rating" msgstr "wstępna ocena przy imporcie" -#: ../build/bin/conf_gen.h:999 +#: ../build/bin/conf_gen.h:1052 msgid "initial star rating for all images when importing a filmroll" msgstr "wstępna ocena nadawana wszystkim zdjęciom podczas importu rolek filmu" -#: ../build/bin/conf_gen.h:1004 +#: ../build/bin/conf_gen.h:1057 msgid "ignore EXIF rating" msgstr "ignoruj ocenę exif" -#: ../build/bin/conf_gen.h:1005 +#: ../build/bin/conf_gen.h:1058 msgid "" "ignore EXIF rating. if not set and EXIF rating is found, it overrides " "'initial rating'" @@ -285,19 +249,19 @@ "ignoruj ocenę exif. jeśli nie jest ustawiona, a znaleziono ocenę exif, " "nadpisuje ona 'ocenę początkową'" -#: ../build/bin/conf_gen.h:1010 +#: ../build/bin/conf_gen.h:1063 msgid "import job" msgstr "zadanie importu" -#: ../build/bin/conf_gen.h:1011 +#: ../build/bin/conf_gen.h:1064 msgid "name of the import job" msgstr "nazwa zadania importu" -#: ../build/bin/conf_gen.h:1016 +#: ../build/bin/conf_gen.h:1069 msgid "override today's date" msgstr "nadpisz dzisiejszą datę" -#: ../build/bin/conf_gen.h:1017 +#: ../build/bin/conf_gen.h:1070 msgid "" "type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override " "the current date/time used when expanding variables:\n" @@ -309,162 +273,159 @@ "$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS).\n" "w innym wypadku pozostaw puste pole" -#: ../build/bin/conf_gen.h:1022 +#: ../build/bin/conf_gen.h:1075 msgid "keep this window open" msgstr "pozostaw otwarte okno" -#: ../build/bin/conf_gen.h:1023 +#: ../build/bin/conf_gen.h:1076 msgid "keep this window open to run several imports" msgstr "pozostaw otwarte okno podczas wielu importów" -#: ../build/bin/conf_gen.h:1180 ../build/bin/conf_gen.h:1196 -#: ../build/bin/preferences_gen.h:4107 ../build/bin/preferences_gen.h:4202 +#: ../build/bin/conf_gen.h:1233 ../build/bin/conf_gen.h:1249 +#: ../build/bin/conf_gen.h:1277 msgctxt "preferences" msgid "VGA" msgstr "VGA" -#: ../build/bin/conf_gen.h:1181 ../build/bin/conf_gen.h:1197 -#: ../build/bin/preferences_gen.h:4112 ../build/bin/preferences_gen.h:4207 -#: ../build/bin/preferences_gen.h:4251 +#: ../build/bin/conf_gen.h:1234 ../build/bin/conf_gen.h:1250 +#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4782 msgctxt "preferences" msgid "720p" msgstr "720p" -#: ../build/bin/conf_gen.h:1182 ../build/bin/conf_gen.h:1198 -#: ../build/bin/preferences_gen.h:4117 ../build/bin/preferences_gen.h:4212 +#: ../build/bin/conf_gen.h:1235 ../build/bin/conf_gen.h:1251 +#: ../build/bin/conf_gen.h:1279 msgctxt "preferences" msgid "1080p" msgstr "1080p" -#: ../build/bin/conf_gen.h:1183 ../build/bin/conf_gen.h:1199 -#: ../build/bin/preferences_gen.h:4122 ../build/bin/preferences_gen.h:4217 +#: ../build/bin/conf_gen.h:1236 ../build/bin/conf_gen.h:1252 +#: ../build/bin/conf_gen.h:1280 msgctxt "preferences" msgid "WQXGA" msgstr "WQXGA" -#: ../build/bin/conf_gen.h:1184 ../build/bin/conf_gen.h:1200 -#: ../build/bin/preferences_gen.h:4127 ../build/bin/preferences_gen.h:4222 +#: ../build/bin/conf_gen.h:1237 ../build/bin/conf_gen.h:1253 +#: ../build/bin/conf_gen.h:1281 msgctxt "preferences" msgid "4K" msgstr "4K" -#: ../build/bin/conf_gen.h:1185 ../build/bin/conf_gen.h:1201 -#: ../build/bin/preferences_gen.h:4132 ../build/bin/preferences_gen.h:4227 +#: ../build/bin/conf_gen.h:1238 ../build/bin/conf_gen.h:1254 +#: ../build/bin/conf_gen.h:1282 msgctxt "preferences" msgid "5K" msgstr "5K" -#: ../build/bin/conf_gen.h:1228 +#: ../build/bin/conf_gen.h:1314 msgctxt "preferences" msgid "off" msgstr "wyłączony" -#: ../build/bin/conf_gen.h:1229 +#: ../build/bin/conf_gen.h:1315 msgctxt "preferences" msgid "hardness (relative)" msgstr "twardość (względna)" -#: ../build/bin/conf_gen.h:1230 +#: ../build/bin/conf_gen.h:1316 msgctxt "preferences" msgid "hardness (absolute)" msgstr "twardość (bezwzględna)" -#: ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1317 msgctxt "preferences" msgid "opacity (relative)" msgstr "krycie (względne)" -#: ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1318 msgctxt "preferences" msgid "opacity (absolute)" msgstr "krycie (bezwzględne)" -#: ../build/bin/conf_gen.h:1233 +#: ../build/bin/conf_gen.h:1319 msgctxt "preferences" msgid "brush size (relative)" msgstr "rozmiar pędzla (względny)" -#: ../build/bin/conf_gen.h:1241 +#: ../build/bin/conf_gen.h:1327 msgctxt "preferences" msgid "low" msgstr "niska" -#: ../build/bin/conf_gen.h:1242 +#: ../build/bin/conf_gen.h:1328 msgctxt "preferences" msgid "medium" msgstr "średnia" -#: ../build/bin/conf_gen.h:1243 +#: ../build/bin/conf_gen.h:1329 msgctxt "preferences" msgid "high" msgstr "wysoka" -#: ../build/bin/conf_gen.h:1263 ../build/bin/preferences_gen.h:4836 -#: ../build/bin/preferences_gen.h:4860 +#: ../build/bin/conf_gen.h:1349 ../build/bin/preferences_gen.h:5405 msgctxt "preferences" msgid "false color" msgstr "fałszywy kolor" -#: ../build/bin/conf_gen.h:1264 ../build/bin/preferences_gen.h:4841 +#: ../build/bin/conf_gen.h:1350 msgctxt "preferences" msgid "grayscale" msgstr "skala szarości" -#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4567 +#: ../build/bin/conf_gen.h:1364 msgctxt "preferences" msgid "top left" msgstr "na górze po lewej" -#: ../build/bin/conf_gen.h:1279 ../build/bin/preferences_gen.h:4572 +#: ../build/bin/conf_gen.h:1365 msgctxt "preferences" msgid "top right" msgstr "na górze po prawej" -#: ../build/bin/conf_gen.h:1280 ../build/bin/preferences_gen.h:4577 +#: ../build/bin/conf_gen.h:1366 msgctxt "preferences" msgid "top center" msgstr "na górze po środku" -#: ../build/bin/conf_gen.h:1281 ../build/bin/preferences_gen.h:4582 -#: ../build/bin/preferences_gen.h:4606 +#: ../build/bin/conf_gen.h:1367 ../build/bin/preferences_gen.h:5217 msgctxt "preferences" msgid "bottom" msgstr "na dole" -#: ../build/bin/conf_gen.h:1282 ../build/bin/preferences_gen.h:4587 +#: ../build/bin/conf_gen.h:1368 msgctxt "preferences" msgid "hidden" msgstr "ukryte" -#: ../build/bin/conf_gen.h:1792 +#: ../build/bin/conf_gen.h:1878 msgid "show OSD" msgstr "wyświetl nakładkę" -#: ../build/bin/conf_gen.h:1793 +#: ../build/bin/conf_gen.h:1879 msgid "toggle the visibility of the map overlays" msgstr "przełącza widoczność elementów nałożonych na mapie" -#: ../build/bin/conf_gen.h:1798 ../src/libs/map_settings.c:146 +#: ../build/bin/conf_gen.h:1884 ../src/libs/map_settings.c:119 msgid "filtered images" msgstr "przefiltrowane obrazy" -#: ../build/bin/conf_gen.h:1799 +#: ../build/bin/conf_gen.h:1885 msgid "when set limit the images drawn to the current filmstrip" msgstr "gdy włączone, ogranicza obrazy rysowane na bieżącej taśmie filmowej" -#: ../build/bin/conf_gen.h:1806 +#: ../build/bin/conf_gen.h:1892 msgid "max images" msgstr "maksymalne obrazy" -#: ../build/bin/conf_gen.h:1807 +#: ../build/bin/conf_gen.h:1893 msgid "the maximum number of image thumbnails drawn on the map" msgstr "maksymalna liczba zdjęć rysowana na mapie" -#: ../build/bin/conf_gen.h:1814 +#: ../build/bin/conf_gen.h:1900 msgid "group size factor" msgstr "współczynnik rozmiaru grupy" -#: ../build/bin/conf_gen.h:1815 +#: ../build/bin/conf_gen.h:1901 msgid "" "increase or decrease the spatial size of images groups on the map. can " "influence the calculation time" @@ -472,32 +433,32 @@ "zwiększ lub zmniejsz odległość pomiędzy grupami zdjęć na mapie. ma wpływ na " "czas obliczeń" -#: ../build/bin/conf_gen.h:1822 +#: ../build/bin/conf_gen.h:1908 msgid "min images per group" msgstr "minimalna liczba obrazów w grupie" -#: ../build/bin/conf_gen.h:1823 +#: ../build/bin/conf_gen.h:1909 msgid "" "the minimum number of images to set up an images group. can influence the " "calculation time." msgstr "" "minimalna ilość zdjęć do utworzenia grupy. może mieć wpływ na czas obliczeń." -#: ../build/bin/conf_gen.h:1828 +#: ../build/bin/conf_gen.h:1914 msgctxt "preferences" msgid "thumbnail" msgstr "miniaturka" -#: ../build/bin/conf_gen.h:1829 +#: ../build/bin/conf_gen.h:1915 msgctxt "preferences" msgid "count" msgstr "licznik zdjęć" -#: ../build/bin/conf_gen.h:1832 ../src/libs/map_settings.c:159 +#: ../build/bin/conf_gen.h:1918 msgid "thumbnail display" msgstr "wyświetlanie miniatur" -#: ../build/bin/conf_gen.h:1833 +#: ../build/bin/conf_gen.h:1919 msgid "" "three options are available: images thumbnails, only the count of images of " "the group or nothing" @@ -505,269 +466,260 @@ "dostępne są trzy opcje: miniaturki zdjęć, tylko licznik zdjęć w grupie lub " "puste" -#: ../build/bin/conf_gen.h:1844 +#: ../build/bin/conf_gen.h:1930 msgid "max polygon points" msgstr "liczba punktów wielokąta" -#: ../build/bin/conf_gen.h:1845 +#: ../build/bin/conf_gen.h:1931 msgid "" "limit the number of points imported with polygon in find location module" msgstr "" "ogranicz liczbę punktów, importowanych z wielokątem w module znajdowania " "lokalizacji" -#: ../build/bin/conf_gen.h:2135 ../build/bin/preferences_gen.h:4722 -#: ../build/bin/preferences_gen.h:4756 +#: ../build/bin/conf_gen.h:2221 ../build/bin/preferences_gen.h:5329 msgctxt "preferences" msgid "original" msgstr "oryginalna" -#: ../build/bin/conf_gen.h:2136 ../build/bin/preferences_gen.h:4727 +#: ../build/bin/conf_gen.h:2222 msgctxt "preferences" msgid "to 1/2" msgstr "do 1/2" -#: ../build/bin/conf_gen.h:2137 ../build/bin/preferences_gen.h:4732 +#: ../build/bin/conf_gen.h:2223 msgctxt "preferences" msgid "to 1/3" msgstr "do 1/3" -#: ../build/bin/conf_gen.h:2138 ../build/bin/preferences_gen.h:4737 +#: ../build/bin/conf_gen.h:2224 msgctxt "preferences" msgid "to 1/4" msgstr "do 1/4" -#: ../build/bin/conf_gen.h:2152 ../build/bin/conf_gen.h:2162 -#: ../build/bin/preferences_gen.h:5384 ../build/bin/preferences_gen.h:5449 +#: ../build/bin/conf_gen.h:2244 ../build/bin/conf_gen.h:2254 msgctxt "preferences" msgid "bilinear" msgstr "dwuliniowa" -#: ../build/bin/conf_gen.h:2153 ../build/bin/conf_gen.h:2163 -#: ../build/bin/preferences_gen.h:5389 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5454 +#: ../build/bin/conf_gen.h:2245 ../build/bin/conf_gen.h:2255 +#: ../build/bin/preferences_gen.h:5847 msgctxt "preferences" msgid "bicubic" msgstr "dwusześcienna" -#: ../build/bin/conf_gen.h:2154 ../build/bin/conf_gen.h:2164 -#: ../build/bin/preferences_gen.h:5394 ../build/bin/preferences_gen.h:5459 +#: ../build/bin/conf_gen.h:2246 ../build/bin/conf_gen.h:2256 msgctxt "preferences" msgid "lanczos2" msgstr "lanczos2" -#: ../build/bin/conf_gen.h:2165 ../build/bin/preferences_gen.h:5464 -#: ../build/bin/preferences_gen.h:5483 +#: ../build/bin/conf_gen.h:2257 ../build/bin/preferences_gen.h:5882 msgctxt "preferences" msgid "lanczos3" msgstr "lanczos3" -#: ../build/bin/conf_gen.h:2487 ../build/bin/conf_gen.h:3217 -#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:6556 -#: ../build/bin/preferences_gen.h:6592 +#: ../build/bin/conf_gen.h:2577 ../build/bin/conf_gen.h:3303 +#: ../build/bin/preferences_gen.h:7032 msgctxt "preferences" msgid "auto" msgstr "auto" -#: ../build/bin/conf_gen.h:2489 ../build/bin/preferences_gen.h:6566 +#: ../build/bin/conf_gen.h:2579 msgctxt "preferences" msgid "libsecret" msgstr "libsecret" -#: ../build/bin/conf_gen.h:2490 ../build/bin/preferences_gen.h:6572 +#: ../build/bin/conf_gen.h:2580 msgctxt "preferences" msgid "kwallet" msgstr "kwallet" -#: ../build/bin/conf_gen.h:2700 +#: ../build/bin/conf_gen.h:2790 msgctxt "preferences" msgid "vectorscope" msgstr "wektoroskop" # nie bardzo jest polski termin na to -#: ../build/bin/conf_gen.h:2701 +#: ../build/bin/conf_gen.h:2791 msgctxt "preferences" msgid "waveform" msgstr "rozkład jasności (waveform)" -#: ../build/bin/conf_gen.h:2702 +#: ../build/bin/conf_gen.h:2792 msgctxt "preferences" msgid "RGB parade" msgstr "wykres falowy RGB" -#: ../build/bin/conf_gen.h:2703 +#: ../build/bin/conf_gen.h:2793 msgctxt "preferences" msgid "histogram" msgstr "histogram" -#: ../build/bin/conf_gen.h:2711 ../build/bin/preferences_gen.h:7264 +#: ../build/bin/conf_gen.h:2801 msgctxt "preferences" msgid "left" msgstr "lewy" -#: ../build/bin/conf_gen.h:2712 ../build/bin/preferences_gen.h:7269 -#: ../build/bin/preferences_gen.h:7288 +#: ../build/bin/conf_gen.h:2802 ../build/bin/preferences_gen.h:7619 msgctxt "preferences" msgid "right" msgstr "prawy" -#: ../build/bin/conf_gen.h:2720 ../build/bin/conf_gen.h:2757 +#: ../build/bin/conf_gen.h:2810 ../build/bin/conf_gen.h:2847 msgctxt "preferences" msgid "logarithmic" msgstr "logarytmiczna" -#: ../build/bin/conf_gen.h:2721 ../build/bin/conf_gen.h:2758 +#: ../build/bin/conf_gen.h:2811 ../build/bin/conf_gen.h:2848 msgctxt "preferences" msgid "linear" msgstr "liniowa" -#: ../build/bin/conf_gen.h:2729 +#: ../build/bin/conf_gen.h:2819 msgctxt "preferences" msgid "horizontal" msgstr "w poziomie" -#: ../build/bin/conf_gen.h:2730 +#: ../build/bin/conf_gen.h:2820 msgctxt "preferences" msgid "vertical" msgstr "w pionie" -#: ../build/bin/conf_gen.h:2738 +#: ../build/bin/conf_gen.h:2828 msgctxt "preferences" msgid "overlaid" msgstr "pokrywanie" -#: ../build/bin/conf_gen.h:2739 +#: ../build/bin/conf_gen.h:2829 msgctxt "preferences" msgid "parade" msgstr "rozkład jasności RGB (parade)" -#: ../build/bin/conf_gen.h:2747 +#: ../build/bin/conf_gen.h:2837 msgctxt "preferences" msgid "u*v*" msgstr "u*v*" -#: ../build/bin/conf_gen.h:2748 +#: ../build/bin/conf_gen.h:2838 msgctxt "preferences" msgid "AzBz" msgstr "AzBz" -#: ../build/bin/conf_gen.h:2749 +#: ../build/bin/conf_gen.h:2839 msgctxt "preferences" msgid "RYB" msgstr "RYB" -#: ../build/bin/conf_gen.h:2791 +#: ../build/bin/conf_gen.h:2881 msgctxt "preferences" msgid "monochromatic" msgstr "monochromatyczny" -#: ../build/bin/conf_gen.h:2792 +#: ../build/bin/conf_gen.h:2882 msgctxt "preferences" msgid "analogous" msgstr "analogiczne" -#: ../build/bin/conf_gen.h:2793 +#: ../build/bin/conf_gen.h:2883 msgctxt "preferences" msgid "analogous complementary" msgstr "analogiczne komplementarne" -#: ../build/bin/conf_gen.h:2794 +#: ../build/bin/conf_gen.h:2884 msgctxt "preferences" msgid "complementary" msgstr "komplementarne" -#: ../build/bin/conf_gen.h:2795 +#: ../build/bin/conf_gen.h:2885 msgctxt "preferences" msgid "split complementary" msgstr "komplementarne rozdzielone" -#: ../build/bin/conf_gen.h:2796 +#: ../build/bin/conf_gen.h:2886 msgctxt "preferences" msgid "dyad" msgstr "diada" -#: ../build/bin/conf_gen.h:2797 +#: ../build/bin/conf_gen.h:2887 msgctxt "preferences" msgid "triad" msgstr "triada" -#: ../build/bin/conf_gen.h:2798 +#: ../build/bin/conf_gen.h:2888 msgctxt "preferences" msgid "tetrad" msgstr "tetrada" -#: ../build/bin/conf_gen.h:2799 +#: ../build/bin/conf_gen.h:2889 msgctxt "preferences" msgid "square" msgstr "kwadrat" -#: ../build/bin/conf_gen.h:2813 +#: ../build/bin/conf_gen.h:2903 msgctxt "preferences" msgid "normal" msgstr "zwykły" -#: ../build/bin/conf_gen.h:2815 +#: ../build/bin/conf_gen.h:2905 msgctxt "preferences" msgid "narrow" msgstr "wąsko" -#: ../build/bin/conf_gen.h:2816 +#: ../build/bin/conf_gen.h:2906 msgctxt "preferences" msgid "line" msgstr "linia" -#: ../build/bin/conf_gen.h:2956 +#: ../build/bin/conf_gen.h:3046 msgctxt "preferences" msgid "mm" msgstr "mm" -#: ../build/bin/conf_gen.h:2957 +#: ../build/bin/conf_gen.h:3047 msgctxt "preferences" msgid "cm" msgstr "cm" -#: ../build/bin/conf_gen.h:2958 +#: ../build/bin/conf_gen.h:3048 msgctxt "preferences" msgid "inch" msgstr "cal" -#: ../build/bin/conf_gen.h:3003 ../build/bin/preferences_gen.h:7324 -#: ../build/bin/preferences_gen.h:7353 +#: ../build/bin/conf_gen.h:3093 ../build/bin/preferences_gen.h:7654 msgctxt "preferences" msgid "all" msgstr "wszystkie" -#: ../build/bin/conf_gen.h:3004 ../build/bin/preferences_gen.h:7329 +#: ../build/bin/conf_gen.h:3094 msgctxt "preferences" msgid "xatom" msgstr "xatom" -#: ../build/bin/conf_gen.h:3005 ../build/bin/preferences_gen.h:7334 +#: ../build/bin/conf_gen.h:3095 msgctxt "preferences" msgid "colord" msgstr "colord" -#: ../build/bin/conf_gen.h:3041 ../build/bin/preferences_gen.h:5562 -#: ../build/bin/preferences_gen.h:5596 +#: ../build/bin/conf_gen.h:3133 ../build/bin/preferences_gen.h:5958 msgctxt "preferences" msgid "scene-referred (filmic)" msgstr "scenocentryczny (krzywa filmowa rgb)" -#: ../build/bin/conf_gen.h:3042 ../build/bin/preferences_gen.h:5567 +#: ../build/bin/conf_gen.h:3134 msgctxt "preferences" msgid "scene-referred (sigmoid)" msgstr "scenocentryczny (sigmoida)" -#: ../build/bin/conf_gen.h:3043 ../build/bin/preferences_gen.h:5572 +#: ../build/bin/conf_gen.h:3135 msgctxt "preferences" msgid "display-referred (legacy)" msgstr "ekranocentryczny (przestarzały)" -#: ../build/bin/conf_gen.h:3144 +#: ../build/bin/conf_gen.h:3230 msgid "camera time zone" msgstr "strefa czasowa aparatu" -#: ../build/bin/conf_gen.h:3145 +#: ../build/bin/conf_gen.h:3231 msgid "" "most cameras don't store the time zone in EXIF. give the correct time zone " "so the GPX data can be correctly matched" @@ -775,212 +727,272 @@ "większość aparatów nie przechowuje strefy czasowej w danych EXIF. podaj " "właściwą strefę czasową, aby dane GPX zostały dokładnie dopasowane" -#: ../build/bin/conf_gen.h:3156 +#: ../build/bin/conf_gen.h:3242 msgctxt "preferences" msgid "no color" msgstr "brak koloru" -#: ../build/bin/conf_gen.h:3157 +#: ../build/bin/conf_gen.h:3243 msgctxt "preferences" msgid "illuminant color" msgstr "kolor oświetlenia" -#: ../build/bin/conf_gen.h:3158 +#: ../build/bin/conf_gen.h:3244 msgctxt "preferences" msgid "effect emulation" msgstr "efekt emulacji" -#: ../build/bin/conf_gen.h:3204 +#: ../build/bin/conf_gen.h:3290 msgctxt "preferences" msgid "list" msgstr "lista" -#: ../build/bin/conf_gen.h:3205 +#: ../build/bin/conf_gen.h:3291 msgctxt "preferences" msgid "tabs" msgstr "karty" -#: ../build/bin/conf_gen.h:3206 +#: ../build/bin/conf_gen.h:3292 msgctxt "preferences" msgid "columns" msgstr "kolumny" -#: ../build/bin/conf_gen.h:3215 ../build/bin/preferences_gen.h:5117 +#: ../build/bin/conf_gen.h:3301 msgctxt "preferences" msgid "active" msgstr "aktywne" -#: ../build/bin/conf_gen.h:3216 ../build/bin/preferences_gen.h:5122 +#: ../build/bin/conf_gen.h:3302 msgctxt "preferences" msgid "dim" msgstr "przyciemnij" -#: ../build/bin/conf_gen.h:3218 ../build/bin/preferences_gen.h:5132 +#: ../build/bin/conf_gen.h:3304 msgctxt "preferences" msgid "fade" msgstr "zanikanie" -#: ../build/bin/conf_gen.h:3219 ../build/bin/preferences_gen.h:5137 +#: ../build/bin/conf_gen.h:3305 msgctxt "preferences" msgid "fit" msgstr "dopasuj" -#: ../build/bin/conf_gen.h:3220 ../build/bin/preferences_gen.h:5142 +#: ../build/bin/conf_gen.h:3306 msgctxt "preferences" msgid "smooth" msgstr "gładko" -#: ../build/bin/conf_gen.h:3221 ../build/bin/preferences_gen.h:5147 +#: ../build/bin/conf_gen.h:3307 msgctxt "preferences" msgid "glide" msgstr "poślizg" -#: ../build/bin/preferences_gen.h:81 ../build/bin/preferences_gen.h:3823 -#: ../build/bin/preferences_gen.h:3859 ../build/bin/preferences_gen.h:3895 -#: ../build/bin/preferences_gen.h:3931 ../build/bin/preferences_gen.h:3967 -#: ../build/bin/preferences_gen.h:4003 ../build/bin/preferences_gen.h:4039 -#: ../build/bin/preferences_gen.h:4083 ../build/bin/preferences_gen.h:4178 -#: ../build/bin/preferences_gen.h:4273 ../build/bin/preferences_gen.h:4313 -#: ../build/bin/preferences_gen.h:4356 ../build/bin/preferences_gen.h:4437 -#: ../build/bin/preferences_gen.h:4473 ../build/bin/preferences_gen.h:4510 -#: ../build/bin/preferences_gen.h:4553 ../build/bin/preferences_gen.h:4627 -#: ../build/bin/preferences_gen.h:4672 ../build/bin/preferences_gen.h:4708 -#: ../build/bin/preferences_gen.h:4778 ../build/bin/preferences_gen.h:4822 -#: ../build/bin/preferences_gen.h:4882 ../build/bin/preferences_gen.h:4918 -#: ../build/bin/preferences_gen.h:4954 ../build/bin/preferences_gen.h:4990 -#: ../build/bin/preferences_gen.h:5026 ../build/bin/preferences_gen.h:5062 -#: ../build/bin/preferences_gen.h:5098 ../build/bin/preferences_gen.h:5188 -#: ../build/bin/preferences_gen.h:5224 ../build/bin/preferences_gen.h:5260 -#: ../build/bin/preferences_gen.h:5334 ../build/bin/preferences_gen.h:5370 -#: ../build/bin/preferences_gen.h:5435 ../build/bin/preferences_gen.h:5505 -#: ../build/bin/preferences_gen.h:5548 ../build/bin/preferences_gen.h:5618 -#: ../build/bin/preferences_gen.h:5654 ../build/bin/preferences_gen.h:5690 -#: ../build/bin/preferences_gen.h:5734 ../build/bin/preferences_gen.h:5805 -#: ../build/bin/preferences_gen.h:5841 ../build/bin/preferences_gen.h:5877 -#: ../build/bin/preferences_gen.h:5913 ../build/bin/preferences_gen.h:5955 -#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6140 -#: ../build/bin/preferences_gen.h:6176 ../build/bin/preferences_gen.h:6212 -#: ../build/bin/preferences_gen.h:6248 ../build/bin/preferences_gen.h:6284 -#: ../build/bin/preferences_gen.h:6320 ../build/bin/preferences_gen.h:6356 -#: ../build/bin/preferences_gen.h:6392 ../build/bin/preferences_gen.h:6427 -#: ../build/bin/preferences_gen.h:6462 ../build/bin/preferences_gen.h:6498 -#: ../build/bin/preferences_gen.h:6542 ../build/bin/preferences_gen.h:6614 -#: ../build/bin/preferences_gen.h:6692 ../build/bin/preferences_gen.h:6767 -#: ../build/bin/preferences_gen.h:6820 ../build/bin/preferences_gen.h:6885 -#: ../build/bin/preferences_gen.h:6950 ../build/bin/preferences_gen.h:7024 -#: ../build/bin/preferences_gen.h:7060 ../build/bin/preferences_gen.h:7096 -#: ../build/bin/preferences_gen.h:7132 ../build/bin/preferences_gen.h:7168 -#: ../build/bin/preferences_gen.h:7204 ../build/bin/preferences_gen.h:7250 -#: ../build/bin/preferences_gen.h:7310 ../build/bin/preferences_gen.h:7375 -#: ../build/bin/preferences_gen.h:7429 ../build/bin/preferences_gen.h:7474 -#: ../build/bin/preferences_gen.h:7510 ../build/bin/preferences_gen.h:7546 -#: ../build/bin/preferences_gen.h:7582 ../build/bin/preferences_gen.h:7618 -#: ../build/bin/preferences_gen.h:7678 ../build/bin/preferences_gen.h:7722 -#: ../build/bin/preferences_gen.h:7766 ../build/bin/preferences_gen.h:7848 -#: ../build/bin/preferences_gen.h:7888 ../build/bin/preferences_gen.h:7928 -#: ../build/bin/preferences_gen.h:7964 ../build/bin/preferences_gen.h:8019 -#: ../build/bin/preferences_gen.h:8055 ../build/bin/preferences_gen.h:8115 -#: ../build/bin/preferences_gen.h:8161 ../build/bin/preferences_gen.h:8197 -#: ../build/bin/preferences_gen.h:8243 ../build/bin/preferences_gen.h:8303 -#: ../build/bin/preferences_gen.h:8355 ../build/bin/preferences_gen.h:8401 -#: ../build/bin/preferences_gen.h:8469 ../build/bin/preferences_gen.h:8516 +#: ../build/bin/preferences_gen.h:77 ../build/bin/preferences_gen.h:4305 +#: ../build/bin/preferences_gen.h:4344 ../build/bin/preferences_gen.h:4383 +#: ../build/bin/preferences_gen.h:4417 ../build/bin/preferences_gen.h:4488 +#: ../build/bin/preferences_gen.h:4522 ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:4590 ../build/bin/preferences_gen.h:4624 +#: ../build/bin/preferences_gen.h:4658 ../build/bin/preferences_gen.h:4692 +#: ../build/bin/preferences_gen.h:4733 ../build/bin/preferences_gen.h:4768 +#: ../build/bin/preferences_gen.h:4803 ../build/bin/preferences_gen.h:4837 +#: ../build/bin/preferences_gen.h:4871 ../build/bin/preferences_gen.h:4906 +#: ../build/bin/preferences_gen.h:4940 ../build/bin/preferences_gen.h:4979 +#: ../build/bin/preferences_gen.h:5020 ../build/bin/preferences_gen.h:5093 +#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:5162 +#: ../build/bin/preferences_gen.h:5203 ../build/bin/preferences_gen.h:5237 +#: ../build/bin/preferences_gen.h:5281 ../build/bin/preferences_gen.h:5315 +#: ../build/bin/preferences_gen.h:5350 ../build/bin/preferences_gen.h:5391 +#: ../build/bin/preferences_gen.h:5426 ../build/bin/preferences_gen.h:5460 +#: ../build/bin/preferences_gen.h:5494 ../build/bin/preferences_gen.h:5528 +#: ../build/bin/preferences_gen.h:5562 ../build/bin/preferences_gen.h:5596 +#: ../build/bin/preferences_gen.h:5630 ../build/bin/preferences_gen.h:5665 +#: ../build/bin/preferences_gen.h:5699 ../build/bin/preferences_gen.h:5733 +#: ../build/bin/preferences_gen.h:5799 ../build/bin/preferences_gen.h:5833 +#: ../build/bin/preferences_gen.h:5868 ../build/bin/preferences_gen.h:5903 +#: ../build/bin/preferences_gen.h:5944 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/preferences_gen.h:6013 ../build/bin/preferences_gen.h:6047 +#: ../build/bin/preferences_gen.h:6088 ../build/bin/preferences_gen.h:6124 +#: ../build/bin/preferences_gen.h:6165 ../build/bin/preferences_gen.h:6209 +#: ../build/bin/preferences_gen.h:6254 ../build/bin/preferences_gen.h:6305 +#: ../build/bin/preferences_gen.h:6349 ../build/bin/preferences_gen.h:6393 +#: ../build/bin/preferences_gen.h:6437 ../build/bin/preferences_gen.h:6481 +#: ../build/bin/preferences_gen.h:6525 ../build/bin/preferences_gen.h:6569 +#: ../build/bin/preferences_gen.h:6635 ../build/bin/preferences_gen.h:6669 +#: ../build/bin/preferences_gen.h:6703 ../build/bin/preferences_gen.h:6737 +#: ../build/bin/preferences_gen.h:6771 ../build/bin/preferences_gen.h:6805 +#: ../build/bin/preferences_gen.h:6839 ../build/bin/preferences_gen.h:6873 +#: ../build/bin/preferences_gen.h:6906 ../build/bin/preferences_gen.h:6939 +#: ../build/bin/preferences_gen.h:6973 ../build/bin/preferences_gen.h:7014 +#: ../build/bin/preferences_gen.h:7053 ../build/bin/preferences_gen.h:7124 +#: ../build/bin/preferences_gen.h:7159 ../build/bin/preferences_gen.h:7210 +#: ../build/bin/preferences_gen.h:7245 ../build/bin/preferences_gen.h:7280 +#: ../build/bin/preferences_gen.h:7324 ../build/bin/preferences_gen.h:7390 +#: ../build/bin/preferences_gen.h:7424 ../build/bin/preferences_gen.h:7458 +#: ../build/bin/preferences_gen.h:7492 ../build/bin/preferences_gen.h:7526 +#: ../build/bin/preferences_gen.h:7560 ../build/bin/preferences_gen.h:7605 +#: ../build/bin/preferences_gen.h:7640 ../build/bin/preferences_gen.h:7675 +#: ../build/bin/preferences_gen.h:7731 ../build/bin/preferences_gen.h:7772 +#: ../build/bin/preferences_gen.h:7806 ../build/bin/preferences_gen.h:7840 +#: ../build/bin/preferences_gen.h:7874 ../build/bin/preferences_gen.h:7908 +#: ../build/bin/preferences_gen.h:7943 ../build/bin/preferences_gen.h:7984 +#: ../build/bin/preferences_gen.h:8025 ../build/bin/preferences_gen.h:8085 +#: ../build/bin/preferences_gen.h:8119 ../build/bin/preferences_gen.h:8154 +#: ../build/bin/preferences_gen.h:8199 ../build/bin/preferences_gen.h:8233 +#: ../build/bin/preferences_gen.h:8278 ../build/bin/preferences_gen.h:8313 +#: ../build/bin/preferences_gen.h:8365 ../build/bin/preferences_gen.h:8410 +#: ../build/bin/preferences_gen.h:8480 ../build/bin/preferences_gen.h:8526 msgid "this setting has been modified" msgstr "to ustawienie zostało zmienione" #. doesn't seem to work from gtkrc -#: ../build/bin/preferences_gen.h:3793 ../build/bin/preferences_gen.h:4407 -#: ../build/bin/preferences_gen.h:5304 ../build/bin/preferences_gen.h:6110 -#: ../build/bin/preferences_gen.h:6662 ../build/bin/preferences_gen.h:6994 -#: ../build/bin/preferences_gen.h:7818 ../src/gui/accelerators.c:2724 -#: ../src/gui/gtk.c:2580 ../src/gui/preferences.c:421 -#: ../src/gui/preferences.c:876 ../src/libs/modulegroups.c:3886 +#: ../build/bin/preferences_gen.h:4277 ../build/bin/preferences_gen.h:4460 +#: ../build/bin/preferences_gen.h:5065 ../build/bin/preferences_gen.h:5771 +#: ../build/bin/preferences_gen.h:6607 ../build/bin/preferences_gen.h:7096 +#: ../build/bin/preferences_gen.h:7362 ../src/gui/accelerators.c:2996 +#: ../src/gui/gtk.c:2641 ../src/gui/preferences.c:424 +#: ../src/gui/preferences.c:874 ../src/libs/modulegroups.c:3888 msgid "?" msgstr "?" -#: ../build/bin/preferences_gen.h:3806 ../build/bin/preferences_gen.h:4420 -#: ../build/bin/preferences_gen.h:6123 ../src/gui/preferences.c:270 -msgid "general" -msgstr "ogólne" +#: ../build/bin/preferences_gen.h:4287 ../src/control/jobs/control_jobs.c:2352 +#: ../src/libs/import.c:173 +msgid "import" +msgstr "import" -#: ../build/bin/preferences_gen.h:3826 -msgid "hide built-in presets for utility modules" -msgstr "ukryj wbudowane presety modułów eksploatacyjnych" +#: ../build/bin/preferences_gen.h:4289 +msgid "session options" +msgstr "opcje sesji" + +#: ../build/bin/preferences_gen.h:4308 +msgid "base directory naming pattern" +msgstr "wzorzec nazwy katalogu podstawowego" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4017 -#: ../build/bin/preferences_gen.h:4053 ../build/bin/preferences_gen.h:4156 -#: ../build/bin/preferences_gen.h:4251 ../build/bin/preferences_gen.h:4291 -#: ../build/bin/preferences_gen.h:4334 ../build/bin/preferences_gen.h:4377 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4531 ../build/bin/preferences_gen.h:4606 -#: ../build/bin/preferences_gen.h:4686 ../build/bin/preferences_gen.h:4756 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4860 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5040 ../build/bin/preferences_gen.h:5076 -#: ../build/bin/preferences_gen.h:5166 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5274 -#: ../build/bin/preferences_gen.h:5348 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5483 ../build/bin/preferences_gen.h:5525 -#: ../build/bin/preferences_gen.h:5596 ../build/bin/preferences_gen.h:5632 -#: ../build/bin/preferences_gen.h:5668 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5782 ../build/bin/preferences_gen.h:5819 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:5927 ../build/bin/preferences_gen.h:5998 -#: ../build/bin/preferences_gen.h:6074 ../build/bin/preferences_gen.h:6154 -#: ../build/bin/preferences_gen.h:6190 ../build/bin/preferences_gen.h:6226 -#: ../build/bin/preferences_gen.h:6262 ../build/bin/preferences_gen.h:6298 -#: ../build/bin/preferences_gen.h:6334 ../build/bin/preferences_gen.h:6370 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:6592 ../build/bin/preferences_gen.h:6632 -#: ../build/bin/preferences_gen.h:6745 ../build/bin/preferences_gen.h:6863 -#: ../build/bin/preferences_gen.h:6928 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7146 -#: ../build/bin/preferences_gen.h:7182 ../build/bin/preferences_gen.h:7288 -#: ../build/bin/preferences_gen.h:7353 ../build/bin/preferences_gen.h:7393 -#: ../build/bin/preferences_gen.h:7443 ../build/bin/preferences_gen.h:7488 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7656 -#: ../build/bin/preferences_gen.h:7692 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:7866 ../build/bin/preferences_gen.h:7906 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:7982 -#: ../build/bin/preferences_gen.h:8033 ../build/bin/preferences_gen.h:8093 -#: ../build/bin/preferences_gen.h:8175 ../build/bin/preferences_gen.h:8281 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4323 ../build/bin/preferences_gen.h:4362 +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4435 +#: ../build/bin/preferences_gen.h:4501 ../build/bin/preferences_gen.h:4535 +#: ../build/bin/preferences_gen.h:4569 ../build/bin/preferences_gen.h:4603 +#: ../build/bin/preferences_gen.h:4637 ../build/bin/preferences_gen.h:4671 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4747 +#: ../build/bin/preferences_gen.h:4782 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:4850 ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:4958 +#: ../build/bin/preferences_gen.h:4999 ../build/bin/preferences_gen.h:5040 +#: ../build/bin/preferences_gen.h:5106 ../build/bin/preferences_gen.h:5140 +#: ../build/bin/preferences_gen.h:5182 ../build/bin/preferences_gen.h:5217 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5329 +#: ../build/bin/preferences_gen.h:5363 ../build/bin/preferences_gen.h:5405 +#: ../build/bin/preferences_gen.h:5439 ../build/bin/preferences_gen.h:5473 +#: ../build/bin/preferences_gen.h:5507 ../build/bin/preferences_gen.h:5541 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5644 ../build/bin/preferences_gen.h:5678 +#: ../build/bin/preferences_gen.h:5712 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5847 +#: ../build/bin/preferences_gen.h:5882 ../build/bin/preferences_gen.h:5922 +#: ../build/bin/preferences_gen.h:5958 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6060 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6178 ../build/bin/preferences_gen.h:6223 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6318 +#: ../build/bin/preferences_gen.h:6362 ../build/bin/preferences_gen.h:6406 +#: ../build/bin/preferences_gen.h:6450 ../build/bin/preferences_gen.h:6494 +#: ../build/bin/preferences_gen.h:6538 ../build/bin/preferences_gen.h:6582 +#: ../build/bin/preferences_gen.h:6648 ../build/bin/preferences_gen.h:6682 +#: ../build/bin/preferences_gen.h:6716 ../build/bin/preferences_gen.h:6750 +#: ../build/bin/preferences_gen.h:6784 ../build/bin/preferences_gen.h:6818 +#: ../build/bin/preferences_gen.h:6852 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7032 +#: ../build/bin/preferences_gen.h:7071 ../build/bin/preferences_gen.h:7138 +#: ../build/bin/preferences_gen.h:7224 ../build/bin/preferences_gen.h:7259 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7505 ../build/bin/preferences_gen.h:7539 +#: ../build/bin/preferences_gen.h:7619 ../build/bin/preferences_gen.h:7654 +#: ../build/bin/preferences_gen.h:7693 ../build/bin/preferences_gen.h:7744 +#: ../build/bin/preferences_gen.h:7785 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7922 ../build/bin/preferences_gen.h:7956 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8133 ../build/bin/preferences_gen.h:8212 +#: ../build/bin/preferences_gen.h:8292 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 #, c-format msgid "double click to reset to `%s'" msgstr "kliknij dwukrotnie, aby zresetować do „%s”" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4053 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4686 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:5040 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5348 -#: ../build/bin/preferences_gen.h:5632 ../build/bin/preferences_gen.h:5668 -#: ../build/bin/preferences_gen.h:5819 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:6370 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7146 ../build/bin/preferences_gen.h:7443 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7692 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:8033 -#: ../build/bin/preferences_gen.h:8175 +#: ../build/bin/preferences_gen.h:4326 ../build/bin/preferences_gen.h:4365 +msgid "part of full import path for an import session" +msgstr "część pełnej ścieżki importu w sesji importu" + +#: ../build/bin/preferences_gen.h:4347 +msgid "sub directory naming pattern" +msgstr "wzorzec nazwy podkatalogu" + +#: ../build/bin/preferences_gen.h:4386 +msgid "keep original filename" +msgstr "zachowaj oryginalną nazwę pliku" + +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4501 +#: ../build/bin/preferences_gen.h:4535 ../build/bin/preferences_gen.h:4569 +#: ../build/bin/preferences_gen.h:4603 ../build/bin/preferences_gen.h:4637 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4850 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:5106 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5439 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5712 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6450 +#: ../build/bin/preferences_gen.h:6494 ../build/bin/preferences_gen.h:6538 +#: ../build/bin/preferences_gen.h:6582 ../build/bin/preferences_gen.h:6852 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7505 +#: ../build/bin/preferences_gen.h:7744 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7956 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8212 msgctxt "preferences" msgid "FALSE" msgstr "NIE" -#: ../build/bin/preferences_gen.h:3840 +#: ../build/bin/preferences_gen.h:4399 +msgid "" +"keep original filename instead of a pattern while importing from camera or " +"card" +msgstr "" +"przy imporcie z aparatu lub karty zachowaj oryginalną nazwę pliku zamiast " +"używać wzorca." + +#: ../build/bin/preferences_gen.h:4420 +msgid "file naming pattern" +msgstr "wzorzec nazywania plików" + +#: ../build/bin/preferences_gen.h:4438 +msgid "file naming pattern used for a import session" +msgstr "wzorzec nazywania plików używany w sesji importu" + +#: ../build/bin/preferences_gen.h:4470 ../src/gui/gtk.c:1266 +#: ../src/gui/preferences.c:544 ../src/libs/tools/lighttable.c:66 +#: ../src/views/lighttable.c:91 +msgid "lighttable" +msgstr "stół podświetlany" + +#: ../build/bin/preferences_gen.h:4472 ../build/bin/preferences_gen.h:5077 +#: ../build/bin/preferences_gen.h:6619 ../src/gui/preferences.c:270 +msgid "general" +msgstr "ogólne" + +#: ../build/bin/preferences_gen.h:4491 +msgid "hide built-in presets for utility modules" +msgstr "ukryj wbudowane presety modułów eksploatacyjnych" + +#: ../build/bin/preferences_gen.h:4504 msgid "hides built-in presets of utility modules in presets menu." msgstr "ukryj wbudowane presety modułów w menu presetów." -#: ../build/bin/preferences_gen.h:3862 +#: ../build/bin/preferences_gen.h:4525 msgid "use single-click in the collections module" msgstr "używaj pojedynczego kliknięcia w module kolekcji" -#: ../build/bin/preferences_gen.h:3876 +#: ../build/bin/preferences_gen.h:4538 msgid "" "check this option to use single-click to select items in the collections " "module. this will allow you to do range selections for date-time and numeric " @@ -989,21 +1001,21 @@ "zaznacz tę opcję aby używać pojedynczego kliknięcia w module kolekcji. to " "umożliwi zaznaczanie zakresu dla daty-czasu i wartości numerycznych." -#: ../build/bin/preferences_gen.h:3898 +#: ../build/bin/preferences_gen.h:4559 msgid "expand a single utility module at a time" msgstr "rozwiń jeden moduł na raz" -#: ../build/bin/preferences_gen.h:3912 +#: ../build/bin/preferences_gen.h:4572 msgid "this option toggles the behavior of shift clicking in lighttable mode" msgstr "" "ta opcja przełącza zachowanie kliknięcia z shiftem w trybie stołu " "podświetlanego" -#: ../build/bin/preferences_gen.h:3934 +#: ../build/bin/preferences_gen.h:4593 msgid "scroll utility modules to the top when expanded" msgstr "dorównaj moduł do górnej krawędzi podczas rozwijania/zwijania" -#: ../build/bin/preferences_gen.h:3948 ../build/bin/preferences_gen.h:5079 +#: ../build/bin/preferences_gen.h:4606 ../build/bin/preferences_gen.h:5612 msgid "" "when this option is enabled then darktable will try to scroll the module to " "the top of the visible list" @@ -1011,59 +1023,61 @@ "gdy ta opcja jest zaznaczona, darktable spróbuje przewinąć moduł na " "górę widocznej listy" -#: ../build/bin/preferences_gen.h:3970 +#: ../build/bin/preferences_gen.h:4627 msgid "rating an image one star twice will not zero out the rating" msgstr "dwukrotne przyznanie jednej gwiazdki nie wyzeruje oceny" -#: ../build/bin/preferences_gen.h:3984 +#: ../build/bin/preferences_gen.h:4640 msgid "" "defines whether rating an image one star twice will zero out star rating" msgstr "określa, czy dwukrotne przyznanie jednej gwiazdki wyzeruje ocenę" -#: ../build/bin/preferences_gen.h:4006 ../build/bin/preferences_gen.h:4675 +#: ../build/bin/preferences_gen.h:4661 ../build/bin/preferences_gen.h:5284 msgid "show scrollbars for central view" msgstr "wyświetl paski przewijania w centralnym obszarze" -#: ../build/bin/preferences_gen.h:4017 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5076 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5274 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5927 -#: ../build/bin/preferences_gen.h:6154 ../build/bin/preferences_gen.h:6190 -#: ../build/bin/preferences_gen.h:6226 ../build/bin/preferences_gen.h:6262 -#: ../build/bin/preferences_gen.h:6298 ../build/bin/preferences_gen.h:6334 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7182 -#: ../build/bin/preferences_gen.h:7488 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4671 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:5140 ../build/bin/preferences_gen.h:5363 +#: ../build/bin/preferences_gen.h:5473 ../build/bin/preferences_gen.h:5507 +#: ../build/bin/preferences_gen.h:5541 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5678 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:6060 ../build/bin/preferences_gen.h:6178 +#: ../build/bin/preferences_gen.h:6318 ../build/bin/preferences_gen.h:6362 +#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6648 +#: ../build/bin/preferences_gen.h:6682 ../build/bin/preferences_gen.h:6716 +#: ../build/bin/preferences_gen.h:6750 ../build/bin/preferences_gen.h:6784 +#: ../build/bin/preferences_gen.h:6818 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7539 ../build/bin/preferences_gen.h:7785 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 msgctxt "preferences" msgid "TRUE" msgstr "TAK" -#: ../build/bin/preferences_gen.h:4020 ../build/bin/preferences_gen.h:4689 +#: ../build/bin/preferences_gen.h:4674 ../build/bin/preferences_gen.h:5297 msgid "defines whether scrollbars should be displayed" msgstr "ustala, kiedy paski przewijania powinny być wyświetlane" -#: ../build/bin/preferences_gen.h:4042 +#: ../build/bin/preferences_gen.h:4695 msgid "show image time with milliseconds" msgstr "pokaż czas obrazu w milisekundach" -#: ../build/bin/preferences_gen.h:4056 +#: ../build/bin/preferences_gen.h:4708 msgid "defines whether time should be displayed with milliseconds" msgstr "ustala, czy czas powinien być wyświetlony w milisekundach" -#: ../build/bin/preferences_gen.h:4066 +#: ../build/bin/preferences_gen.h:4717 msgid "thumbnails" msgstr "miniaturki" -#: ../build/bin/preferences_gen.h:4086 +#: ../build/bin/preferences_gen.h:4736 msgid "use raw file instead of embedded JPEG from size" msgstr "użyj pliku raw zamiast osadzonego JPEG od rozmiaru" -#: ../build/bin/preferences_gen.h:4159 +#: ../build/bin/preferences_gen.h:4750 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "raw file instead of the embedded preview JPEG (better but slower).\n" @@ -1077,11 +1091,11 @@ "najlepszej jakości, wybierz opcję *zawsze*\n" "(więcej informacji w instrukcji)" -#: ../build/bin/preferences_gen.h:4181 +#: ../build/bin/preferences_gen.h:4771 msgid "high quality processing from size" msgstr "generuj wysokiej jakości miniaturki od rozmiaru" -#: ../build/bin/preferences_gen.h:4254 +#: ../build/bin/preferences_gen.h:4785 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "the full quality rendering path (better but slower).\n" @@ -1096,11 +1110,82 @@ "najlepszej jakości, wybierz opcję *zawsze*\n" "(zajrzyj do dokumentacji po więcej szczegółów)" -#: ../build/bin/preferences_gen.h:4276 +#: ../build/bin/preferences_gen.h:4806 +msgid "enable disk backend for thumbnail cache" +msgstr "przechowywanie miniaturek na dysku" + +#: ../build/bin/preferences_gen.h:4819 +msgid "" +"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want. light table " +"performance will be increased greatly when browsing a lot.\n" +"to generate all thumbnails of your entire collection offline, run 'darktable-" +"generate-cache'." +msgstr "" +"jeśli włączone, zapisuje miniaturki na dysku (.cache/darktable/), gdy " +"przekroczona zostanie pamięć cache.\n" +"może to zająć dużo miejsca (kilka gigabajtów przy 20tys. zdjęć) i nigdy nie " +"kasuje zapisanych miniaturek. \n" +"można je jednak bezpiecznie kasować ręcznie. wydajność trybu stołu " +"podświetlanego przy przeglądaniu w dużej ilości bardzo się poprawi. aby " +"wygenerować wszystkie miniaturki dla całej kolekcji, uruchom „darktable-" +"generate-cache”." + +#: ../build/bin/preferences_gen.h:4840 +msgid "enable disk backend for full preview cache" +msgstr "przechowywanie pełnego podglądu na dysku" + +#: ../build/bin/preferences_gen.h:4853 +msgid "" +"if enabled, write full preview to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want.\n" +"light table performance will be increased greatly when zooming image in full " +"preview mode." +msgstr "" +"jeśli włączone, zapisuje pełny podgląd na dysku (.cache/darktable/), gdy " +"zabraknie miejsca w pamięci podręcznej.\n" +"może to zająć dużo miejsca (kilka gigabajtów przy 20tys. zdjęć) i nigdy nie " +"kasuje zapisanych miniaturek.\n" +"można je jednak bezpiecznie kasować ręcznie.\n" +"wydajność trybu stołu podświetlanego przy powiększaniu zdjęć w trybie " +"pełnego podglądu bardzo się poprawi." + +#: ../build/bin/preferences_gen.h:4874 +msgid "generate thumbnails in background" +msgstr "generuj miniatury w tle" + +#: ../build/bin/preferences_gen.h:4888 +msgid "" +"if 'enable disk backend for thumbnail cache' is enabled thumbnails/mipmaps " +"up to the selected size are generated while user is inactive in lighttable." +msgstr "" +"jeśli 'włącz zapis na dysku dla bufora miniatur' aktywne, miniatury/mipmapy " +"mniejsze lub równe wybranemu rozmiarowi są generowane, gdy użytkownik nie " +"wykonuje akcji w stole podświetlanym" + +#: ../build/bin/preferences_gen.h:4909 +msgid "reset cached thumbnails" +msgstr "resetuj zabuforowane miniatury" + +#: ../build/bin/preferences_gen.h:4922 +msgid "" +"force thumbnails to be regenerated by resetting the database. this may be " +"needed in case some thumbnails have been manually removed or corrupted." +msgstr "" +"wymuś regenerację miniatur poprzez reset bazy danych. może być konieczne w " +"przypadku manualnego usunięcia, lub uszkodzenia niektórych miniatur." + +#: ../build/bin/preferences_gen.h:4943 msgid "delimiters for size categories" msgstr "separatory kategorii rozmiarów" -#: ../build/bin/preferences_gen.h:4294 +#: ../build/bin/preferences_gen.h:4961 msgid "" "size categories are used to be able to set different overlays and CSS values " "depending of the size of the thumbnail, separated by |.\n" @@ -1111,24 +1196,29 @@ "zależności od rozmiaru miniatury, rozdzielone są znakiem |. \n" "Przykładowo 120|400 oznacza 3 kategorie: <120, 120-400, >400 pikseli" -#: ../build/bin/preferences_gen.h:4316 +#: ../build/bin/preferences_gen.h:4982 msgid "pattern for the thumbnail extended overlay text" msgstr "szablon rozszerzonej nakładki dla miniatur" -#: ../build/bin/preferences_gen.h:4337 ../build/bin/preferences_gen.h:4380 +#: ../build/bin/preferences_gen.h:5002 ../build/bin/preferences_gen.h:5043 msgid "see manual to know all the tags you can use." msgstr "" "spójrz do podręcznika, aby dowiedzieć się jakich zmiennych możesz użyć." -#: ../build/bin/preferences_gen.h:4359 +#: ../build/bin/preferences_gen.h:5023 msgid "pattern for the thumbnail tooltip (empty to disable)" msgstr "szablon podpowiedzi dla miniatury (ustaw pusty, aby wyłączyć)" -#: ../build/bin/preferences_gen.h:4440 +#: ../build/bin/preferences_gen.h:5075 ../src/gui/gtk.c:1267 +#: ../src/gui/preferences.c:544 ../src/views/darkroom.c:94 +msgid "darkroom" +msgstr "ciemnia" + +#: ../build/bin/preferences_gen.h:5096 msgid "scroll down to increase mask parameters" msgstr "przewiń w dół by zwiększyć parametr maski" -#: ../build/bin/preferences_gen.h:4454 +#: ../build/bin/preferences_gen.h:5109 msgid "" "when using the mouse scroll wheel to change mask parameters, scroll down to " "increase the mask size, feather size, opacity, brush hardness and gradient " @@ -1140,11 +1230,11 @@ "gradientu\n" "Domyślnie przewijanie w górę zwiększa te parametry" -#: ../build/bin/preferences_gen.h:4476 +#: ../build/bin/preferences_gen.h:5130 msgid "middle mouse button zooms to 200%" msgstr "środkowy przycisk myszy zbliża na 200%" -#: ../build/bin/preferences_gen.h:4491 +#: ../build/bin/preferences_gen.h:5144 #, no-c-format msgid "" "if enabled, the zoom level will cycle between 100%, 200% and fit to viewport " @@ -1155,33 +1245,33 @@ "dopasowaniem do okna. wyłączony - przełącza między dopasowaniem i 100%, A " "przycisk Ctrl może być używany do regulacji zbliżenia." -#: ../build/bin/preferences_gen.h:4513 +#: ../build/bin/preferences_gen.h:5165 msgid "pattern for the image information line" msgstr "wzór linii informacji o zdjęciu" -#: ../build/bin/preferences_gen.h:4534 +#: ../build/bin/preferences_gen.h:5185 msgid "see manual for a list of the tags you can use." msgstr "" "spójrz do podręcznika, aby dowiedzieć się jakich zmiennych możesz użyć." -#: ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:5206 msgid "position of the image information line" msgstr "położenie linii informacji o zdjęciu" -#: ../build/bin/preferences_gen.h:4630 +#: ../build/bin/preferences_gen.h:5240 msgid "border around image in darkroom mode" msgstr "ramka wokół zdjęcia w trybie ciemni" -#: ../build/bin/preferences_gen.h:4650 ../build/bin/preferences_gen.h:6790 -#: ../build/bin/preferences_gen.h:7228 ../build/bin/preferences_gen.h:7789 -#: ../build/bin/preferences_gen.h:8139 ../build/bin/preferences_gen.h:8221 -#: ../build/bin/preferences_gen.h:8379 ../build/bin/preferences_gen.h:8493 -#: ../build/bin/preferences_gen.h:8540 +#: ../build/bin/preferences_gen.h:5260 ../build/bin/preferences_gen.h:7182 +#: ../build/bin/preferences_gen.h:7303 ../build/bin/preferences_gen.h:7584 +#: ../build/bin/preferences_gen.h:8048 ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8257 ../build/bin/preferences_gen.h:8389 +#: ../build/bin/preferences_gen.h:8504 ../build/bin/preferences_gen.h:8550 #, c-format msgid "double click to reset to `%d'" msgstr "kliknij dwukrotnie, aby zresetować do „%d”" -#: ../build/bin/preferences_gen.h:4653 +#: ../build/bin/preferences_gen.h:5263 msgid "" "process the image in darkroom mode with a small border. set to 0 if you " "don't want any border." @@ -1189,21 +1279,21 @@ "szerokość ramki wokół zdjęcia w trybie ciemni. ustaw 0, jeśli nie chcesz " "ramki." -#: ../build/bin/preferences_gen.h:4711 +#: ../build/bin/preferences_gen.h:5318 msgid "reduce resolution of preview image" msgstr "zmniejsz rozdzielczość podglądu obrazu" -#: ../build/bin/preferences_gen.h:4759 +#: ../build/bin/preferences_gen.h:5332 msgid "decrease to speed up preview rendering, may hinder accurate masking" msgstr "" "zmniejsz aby przyspieszyć wyświetlanie miniatury. może niekorzystnie wpłynąć " "na precyzję maskowania" -#: ../build/bin/preferences_gen.h:4781 +#: ../build/bin/preferences_gen.h:5353 msgid "show loading screen between images" msgstr "pokaż ekran ładowania pomiędzy zdjęciami" -#: ../build/bin/preferences_gen.h:4795 +#: ../build/bin/preferences_gen.h:5366 msgid "" "show gray loading screen when navigating between images in the darkroom\n" "disable to just show a toast message" @@ -1211,15 +1301,15 @@ "pokaż szary ekran ładowania podczas ładowania zdjęcia w ciemni\n" "odznacz, żeby pokazać samą wiadomość" -#: ../build/bin/preferences_gen.h:4805 +#: ../build/bin/preferences_gen.h:5375 msgid "modules" msgstr "moduły" -#: ../build/bin/preferences_gen.h:4825 +#: ../build/bin/preferences_gen.h:5394 msgid "display of individual color channels" msgstr "wyświetlanie indywidualnych kanałów koloru" -#: ../build/bin/preferences_gen.h:4863 +#: ../build/bin/preferences_gen.h:5408 msgid "" "defines how color channels are displayed when activated in the parametric " "masks feature." @@ -1227,11 +1317,11 @@ "ustala, jak kanały koloru będą wyświetlane po aktywowaniu w parametrycznych " "maskach." -#: ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:5429 msgid "hide built-in presets for processing modules" msgstr "ukryj wbudowane presety modułów" -#: ../build/bin/preferences_gen.h:4899 +#: ../build/bin/preferences_gen.h:5442 msgid "" "hides built-in presets of processing modules in both presets and favourites " "menu." @@ -1239,23 +1329,23 @@ "ukrywa wbudowane presety dla modułów zarówno w menu presetów jak i " "ulubionych." -#: ../build/bin/preferences_gen.h:4921 ../build/bin/preferences_gen.h:4935 +#: ../build/bin/preferences_gen.h:5463 ../build/bin/preferences_gen.h:5476 msgid "show the guides widget in modules UI" msgstr "pokaż prowadnice w interfejsie modułu" -#: ../build/bin/preferences_gen.h:4957 +#: ../build/bin/preferences_gen.h:5497 msgid "expand a single processing module at a time" msgstr "rozwiń jeden moduł na raz" -#: ../build/bin/preferences_gen.h:4971 +#: ../build/bin/preferences_gen.h:5510 msgid "this option toggles the behavior of shift clicking in darkroom mode" msgstr "ta opcja przełącza zachowanie kliknięcia z shiftem w trybie ciemni" -#: ../build/bin/preferences_gen.h:4993 +#: ../build/bin/preferences_gen.h:5531 msgid "only collapse modules in current group" msgstr "zwijaj moduły tylko w bieżącej grupie" -#: ../build/bin/preferences_gen.h:5007 +#: ../build/bin/preferences_gen.h:5544 msgid "" "if only expanding a single module at a time, only collapse other modules in " "the current group - ignore modules in other groups" @@ -1263,11 +1353,11 @@ "jeśli aktywne jest rozwijanie jednego modułu na raz, zwijaj pozostałe moduły " "tylko w bieżącej grupie – ignoruj rozwinięte moduły w innych grupach" -#: ../build/bin/preferences_gen.h:5029 +#: ../build/bin/preferences_gen.h:5565 msgid "expand the module when it is activated, and collapse it when disabled" msgstr "rozwiń moduł, gdy jest aktywowany i zwiń, gdy jest wyłączony" -#: ../build/bin/preferences_gen.h:5043 +#: ../build/bin/preferences_gen.h:5578 msgid "" "this option allows to expand or collapse automatically the module when it is " "enabled or disabled." @@ -1275,15 +1365,15 @@ "ta opcja umożliwia rozwijanie i zwijanie modułu automatycznie, gdy jest " "włączany lub wyłączany." -#: ../build/bin/preferences_gen.h:5065 +#: ../build/bin/preferences_gen.h:5599 msgid "scroll processing modules to the top when expanded" msgstr "przewiń do modułów podczas rozwijania/zwijania" -#: ../build/bin/preferences_gen.h:5101 +#: ../build/bin/preferences_gen.h:5633 msgid "show right-side buttons in processing module headers" msgstr "pokazuj przyciski z prawej strony nagłówków modułów" -#: ../build/bin/preferences_gen.h:5169 +#: ../build/bin/preferences_gen.h:5647 msgid "" "when the mouse is not over a module, the multi-instance, reset and preset " "buttons can be hidden:\n" @@ -1310,11 +1400,11 @@ "- \"gładko\" - przyciemnij wszystkie przyciski w kolumnie jednocześnie,\n" "- \"poślizg\" - stopniowo ukrywaj poszczególne przyciski gdy trzeba" -#: ../build/bin/preferences_gen.h:5191 +#: ../build/bin/preferences_gen.h:5668 msgid "show mask indicator in module headers" msgstr "pokazuj wskaźnik maski w nagłówkach modułów" -#: ../build/bin/preferences_gen.h:5205 +#: ../build/bin/preferences_gen.h:5681 msgid "" "if enabled, an icon will be shown in the header of any processing modules " "that have a mask applied" @@ -1322,11 +1412,11 @@ "jeśli włączone, w nagłówku każdego modułu przetwarzającego z aktywną maską " "pojawi się ikona" -#: ../build/bin/preferences_gen.h:5227 +#: ../build/bin/preferences_gen.h:5702 msgid "prompt for name on addition of new instance" msgstr "pytaj o nazwę nowej instancji" -#: ../build/bin/preferences_gen.h:5241 +#: ../build/bin/preferences_gen.h:5715 msgid "" "if enabled, a rename prompt will be present for each new module instance " "(either new instance or duplicate)" @@ -1334,11 +1424,11 @@ "jeśli włączone, dla pierwszej i każdej kolejnej instancji modułu pojawi się " "okienko do zmiany nazwy" -#: ../build/bin/preferences_gen.h:5263 +#: ../build/bin/preferences_gen.h:5736 msgid "automatically update module name" msgstr "automatycznie aktualizuj nazwę modułu" -#: ../build/bin/preferences_gen.h:5277 +#: ../build/bin/preferences_gen.h:5749 msgid "" "if enabled, the module name will be automatically updated to match a preset " "name or a preset instance name if present." @@ -1346,23 +1436,27 @@ "włączony - nazwa modułu będzie automatycznie aktualizowana aby odpowiadać " "nazwie presetu, lub nazwie instancji presetu, jeśli jest dostępna." -#: ../build/bin/preferences_gen.h:5317 +#: ../build/bin/preferences_gen.h:5781 +msgid "processing" +msgstr "przetwarzanie" + +#: ../build/bin/preferences_gen.h:5783 msgid "image processing" msgstr "przetwarzanie zdjęcia" -#: ../build/bin/preferences_gen.h:5337 +#: ../build/bin/preferences_gen.h:5802 msgid "always use LittleCMS 2 to apply output color profile" msgstr "zawsze używaj LittleCMS 2 do ustalania wyjściowego profilu kolorów" -#: ../build/bin/preferences_gen.h:5351 +#: ../build/bin/preferences_gen.h:5815 msgid "this is slower than the default." msgstr "jest to znacznie wolniejsze niż ustawienie domyślne." -#: ../build/bin/preferences_gen.h:5373 +#: ../build/bin/preferences_gen.h:5836 msgid "pixel interpolator (warp)" msgstr "interpolacja pikseli" -#: ../build/bin/preferences_gen.h:5416 +#: ../build/bin/preferences_gen.h:5850 msgid "" "pixel interpolator used in modules for rotation, lens correction, liquify, " "cropping and final scaling (bilinear, bicubic, lanczos2)." @@ -1370,33 +1464,33 @@ "interpolacja pikseli używana przy rotacji i korekcji obiektywu, zmiękczaniu, " "kadrowaniu i wyjściowym skalowaniu (dwuliniowa, dwusześcienna, lanczos2)" -#: ../build/bin/preferences_gen.h:5438 +#: ../build/bin/preferences_gen.h:5871 msgid "pixel interpolator (scaling)" msgstr "interpolacja pikseli (skalowanie)" -#: ../build/bin/preferences_gen.h:5486 +#: ../build/bin/preferences_gen.h:5885 msgid "" "pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." msgstr "" "interpolacja pikseli używana przy skalowaniu (dwuliniowa, dwusześcienna, " "lanczos2, lanczos3)." -#: ../build/bin/preferences_gen.h:5508 +#: ../build/bin/preferences_gen.h:5906 msgid "LUT 3D root folder" msgstr "główny katalog z plikami LUT" -#: ../build/bin/preferences_gen.h:5513 ../src/control/jobs/control_jobs.c:1688 -#: ../src/control/jobs/control_jobs.c:1742 ../src/gui/preferences.c:1081 -#: ../src/gui/presets.c:419 ../src/imageio/storage/disk.c:122 -#: ../src/imageio/storage/disk.c:178 ../src/imageio/storage/gallery.c:109 -#: ../src/imageio/storage/gallery.c:163 ../src/imageio/storage/latex.c:108 -#: ../src/imageio/storage/latex.c:162 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/import.c:1664 ../src/libs/styles.c:391 +#: ../build/bin/preferences_gen.h:5912 ../src/control/jobs/control_jobs.c:1691 +#: ../src/control/jobs/control_jobs.c:1745 ../src/gui/preferences.c:1080 +#: ../src/gui/presets.c:421 ../src/imageio/storage/disk.c:197 +#: ../src/imageio/storage/disk.c:261 ../src/imageio/storage/gallery.c:149 +#: ../src/imageio/storage/gallery.c:213 ../src/imageio/storage/latex.c:145 +#: ../src/imageio/storage/latex.c:199 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1673 ../src/libs/styles.c:391 #: ../src/lua/preferences.c:668 msgid "select directory" msgstr "wybierz katalog" -#: ../build/bin/preferences_gen.h:5529 +#: ../build/bin/preferences_gen.h:5926 msgid "" "this folder (and sub-folders) contains LUT files used by LUT 3D module. " "(need a restart)." @@ -1404,11 +1498,11 @@ "ten katalog (oraz podkatalogi) zawiera pliki LUT używane przez moduł LUT 3D. " "(wymaga restartu)." -#: ../build/bin/preferences_gen.h:5551 +#: ../build/bin/preferences_gen.h:5947 msgid "auto-apply pixel workflow defaults" msgstr "automatycznie zastosuj model pracy z obrazem" -#: ../build/bin/preferences_gen.h:5599 +#: ../build/bin/preferences_gen.h:5961 msgid "" "scene-referred workflow is based on linear modules and will auto-apply " "filmic or sigmoid, color calibration and exposure,\n" @@ -1421,18 +1515,18 @@ "automatycznie aplikuje\n" "krzywą bazową, balans bieli i pracuje ze starszą wersją potoku przetwarzania." -#: ../build/bin/preferences_gen.h:5621 +#: ../build/bin/preferences_gen.h:5982 msgid "auto-apply per camera basecurve presets" msgstr "automatycznie zastosuj krzywe bazowe dopasowane do aparatu" -#: ../build/bin/preferences_gen.h:5635 +#: ../build/bin/preferences_gen.h:5995 msgid "" "use the per-camera basecurve by default instead of the generic manufacturer " "one if there is one available (needs a restart).\n" "this option is taken into account when the \"auto-apply pixel workflow " "defaults\" is set to \"display-referred\".\n" -"to prevent auto-apply basecurve presets \"auto-apply pixel workflow defaults" -"\" should be set to \"none\"" +"to prevent auto-apply basecurve presets \"auto-apply pixel workflow " +"defaults\" should be set to \"none\"" msgstr "" "domyślnie używaj krzywej bazowej dla aparatu zamiast dla producenta, jeśli\n" "taka jest dostępna (wymaga restartu).\n" @@ -1441,11 +1535,11 @@ "aby uniknąć automatycznego aplikowania krzywej bazowej, model pracy\n" "powinien być ustawiony na 'brak'" -#: ../build/bin/preferences_gen.h:5657 +#: ../build/bin/preferences_gen.h:6016 msgid "detect monochrome previews" msgstr "wykrywaj monochromatyczny podgląd" -#: ../build/bin/preferences_gen.h:5671 +#: ../build/bin/preferences_gen.h:6029 msgid "" "many monochrome images can be identified via EXIF and preview data. beware: " "this slows down imports and reading of EXIF data" @@ -1453,11 +1547,11 @@ "wiele monochromatycznych obrazów może być zidentyfikowanych z danych EXIF i " "podglądu. uwaga: to spowalnia import i czytanie danych EXIF" -#: ../build/bin/preferences_gen.h:5693 +#: ../build/bin/preferences_gen.h:6050 msgid "show warning messages" msgstr "pokazuj ostrzeżenia" -#: ../build/bin/preferences_gen.h:5707 +#: ../build/bin/preferences_gen.h:6063 msgid "" "display messages in modules to warn beginner users when non-standard and " "possibly harmful settings are used in the pipeline.\n" @@ -1470,15 +1564,15 @@ "ostrzeżenia mogą być fałszywie pozytywne; zignoruj je, jeśli wiesz, co " "robisz. Ta opcja ukrywa wszystkie ostrzeżenia." -#: ../build/bin/preferences_gen.h:5717 -msgid "CPU / GPU / memory" -msgstr "CPU / GPU / pamięć" +#: ../build/bin/preferences_gen.h:6072 +msgid "CPU / memory" +msgstr "CPU / pamięć" -#: ../build/bin/preferences_gen.h:5737 +#: ../build/bin/preferences_gen.h:6091 msgid "darktable resources" msgstr "zasoby darktable" -#: ../build/bin/preferences_gen.h:5786 +#: ../build/bin/preferences_gen.h:6106 #, no-c-format msgid "" "defines how much darktable may take from your system resources:\n" @@ -1505,11 +1599,11 @@ "alokacji pamięci operacyjnej i nieprzewidzianych spadków wydajności. Używaj " "ostrożnie. Ustawienie niezalecane! " -#: ../build/bin/preferences_gen.h:5808 +#: ../build/bin/preferences_gen.h:6127 msgid "prefer performance over quality" msgstr "preferuj wydajność nad jakość" -#: ../build/bin/preferences_gen.h:5822 +#: ../build/bin/preferences_gen.h:6140 msgid "" "if switched on, thumbnails and previews are rendered at lower quality but 4 " "times faster" @@ -1517,57 +1611,15 @@ "jeśli włączone, miniaturki i podgląd będą renderowane z niższą jakością, ale " "4x szybciej" -#: ../build/bin/preferences_gen.h:5844 -msgid "enable disk backend for thumbnail cache" -msgstr "przechowywanie miniaturek na dysku" - -#: ../build/bin/preferences_gen.h:5858 -msgid "" -"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want. light table " -"performance will be increased greatly when browsing a lot.\n" -"to generate all thumbnails of your entire collection offline, run 'darktable-" -"generate-cache'." -msgstr "" -"jeśli włączone, zapisuje miniaturki na dysku (.cache/darktable/), gdy " -"przekroczona zostanie pamięć cache.\n" -"może to zająć dużo miejsca (kilka gigabajtów przy 20tys. zdjęć) i nigdy nie " -"kasuje zapisanych miniaturek. \n" -"można je jednak bezpiecznie kasować ręcznie. wydajność trybu stołu " -"podświetlanego przy przeglądaniu w dużej ilości bardzo się poprawi. aby " -"wygenerować wszystkie miniaturki dla całej kolekcji, uruchom „darktable-" -"generate-cache”." - -#: ../build/bin/preferences_gen.h:5880 -msgid "enable disk backend for full preview cache" -msgstr "przechowywanie pełnego podglądu na dysku" +#: ../build/bin/preferences_gen.h:6149 +msgid "OpenCL" +msgstr "OpenCL" -#: ../build/bin/preferences_gen.h:5894 -msgid "" -"if enabled, write full preview to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want.\n" -"light table performance will be increased greatly when zooming image in full " -"preview mode." -msgstr "" -"jeśli włączone, zapisuje pełny podgląd na dysku (.cache/darktable/), gdy " -"zabraknie miejsca w pamięci podręcznej.\n" -"może to zająć dużo miejsca (kilka gigabajtów przy 20tys. zdjęć) i nigdy nie " -"kasuje zapisanych miniaturek.\n" -"można je jednak bezpiecznie kasować ręcznie.\n" -"wydajność trybu stołu podświetlanego przy powiększaniu zdjęć w trybie " -"pełnego podglądu bardzo się poprawi." - -#: ../build/bin/preferences_gen.h:5916 +#: ../build/bin/preferences_gen.h:6168 msgid "activate OpenCL support" msgstr "włącz obsługę OpenCL" -#: ../build/bin/preferences_gen.h:5930 +#: ../build/bin/preferences_gen.h:6181 msgid "" "if found, use OpenCL runtime on your system to speed up processing.\n" "can be switched on and off at any time." @@ -1576,23 +1628,32 @@ "systemie.\n" "może być włączone lub wyłączone w dowolnym momencie." -#: ../build/bin/preferences_gen.h:5931 ../build/bin/preferences_gen.h:6002 -#: ../build/bin/preferences_gen.h:6078 ../build/bin/preferences_gen.h:7397 +#: ../build/bin/preferences_gen.h:6185 ../build/bin/preferences_gen.h:6230 +#: ../build/bin/preferences_gen.h:6274 ../build/bin/preferences_gen.h:6325 +#: ../build/bin/preferences_gen.h:6369 ../build/bin/preferences_gen.h:6413 +#: ../build/bin/preferences_gen.h:6457 ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6545 ../build/bin/preferences_gen.h:7700 msgid "not available" msgstr "niedostępne" -#: ../build/bin/preferences_gen.h:5934 ../build/bin/preferences_gen.h:5938 -#: ../build/bin/preferences_gen.h:6005 ../build/bin/preferences_gen.h:6009 -#: ../build/bin/preferences_gen.h:6081 ../build/bin/preferences_gen.h:6085 -#: ../build/bin/preferences_gen.h:7400 ../build/bin/preferences_gen.h:7404 +#: ../build/bin/preferences_gen.h:6187 ../build/bin/preferences_gen.h:6188 +#: ../build/bin/preferences_gen.h:6232 ../build/bin/preferences_gen.h:6233 +#: ../build/bin/preferences_gen.h:6276 ../build/bin/preferences_gen.h:6277 +#: ../build/bin/preferences_gen.h:6327 ../build/bin/preferences_gen.h:6328 +#: ../build/bin/preferences_gen.h:6371 ../build/bin/preferences_gen.h:6372 +#: ../build/bin/preferences_gen.h:6415 ../build/bin/preferences_gen.h:6416 +#: ../build/bin/preferences_gen.h:6459 ../build/bin/preferences_gen.h:6460 +#: ../build/bin/preferences_gen.h:6503 ../build/bin/preferences_gen.h:6504 +#: ../build/bin/preferences_gen.h:6547 ../build/bin/preferences_gen.h:6548 +#: ../build/bin/preferences_gen.h:7702 ../build/bin/preferences_gen.h:7703 msgid "not available on this system" msgstr "niedostępne w tym systemie" -#: ../build/bin/preferences_gen.h:5958 +#: ../build/bin/preferences_gen.h:6212 msgid "OpenCL scheduling profile" msgstr "profil szeregowania OpenCL" -#: ../build/bin/preferences_gen.h:6001 +#: ../build/bin/preferences_gen.h:6226 msgid "" "defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled " "systems:\n" @@ -1611,51 +1672,125 @@ "-\"bardzo szybka karta graficzna\" - wszystkie zadania przetwarzane " "sekwencyjnie na GPU." -#: ../build/bin/preferences_gen.h:6029 -msgid "tune OpenCL performance" -msgstr "dostosuj wydajność OpenCL" +#: ../build/bin/preferences_gen.h:6257 +msgid "use all device memory" +msgstr "użyj całej pamięci urządzenia" + +#: ../build/bin/preferences_gen.h:6270 +msgid "" +"if enabled darktable will use all device memory except a safety margin " +"(headroom, default is 600MB)" +msgstr "" +"jeśli włączone, darktable wykorzysta całą pamięć urządzenia aż do marginesu " +"bezpieczeństwa (domyślnie 600MB)" + +#: ../build/bin/preferences_gen.h:6289 +msgid "OpenCL drivers" +msgstr "sterowniki OpenCL" + +#: ../build/bin/preferences_gen.h:6308 +msgid "Intel GPU" +msgstr "Intel GPU" + +#: ../build/bin/preferences_gen.h:6321 +msgid "Intel(R) OpenCL Graphics for all supported platforms (vendor provided)" +msgstr "" +"Grafika Intel(R) OpenCL dla wszystkich wspieranych platform (wsparcie " +"producenta)" + +#: ../build/bin/preferences_gen.h:6352 +msgid "Nvidia CUDA" +msgstr "Nvidia CUDA" + +#: ../build/bin/preferences_gen.h:6365 +msgid "Nvidia CUDA based OpenCL (vendor provided)" +msgstr "Nvidia CUDA oparte na OpenCL (wsparcie producenta)" + +#: ../build/bin/preferences_gen.h:6396 +msgid "AMD ROCm" +msgstr "AMD ROCm" + +#: ../build/bin/preferences_gen.h:6409 +msgid "AMD Accelerated Parallel Processing (vendor provided)" +msgstr "przetwarzanie równoległe z akceleracją AMD (wsparcie producenta)" + +#: ../build/bin/preferences_gen.h:6440 +msgid "RustiCL" +msgstr "RustiCL" + +#: ../build/bin/preferences_gen.h:6453 +msgid "" +"RustiCL Mesa OpenCL, still unstable. if you want to use this, you should " +"disable the vendor driver" +msgstr "" +"RustiCL Mesa OpenCL nadal niemożliwe do użycia. jeśli chcesz użyć, wyłącz " +"sterownik producenta" + +#: ../build/bin/preferences_gen.h:6484 +msgid "Apple" +msgstr "Apple" + +#: ../build/bin/preferences_gen.h:6497 +msgid "Apple OpenCL (vendor provided)" +msgstr "Apple OpenCL (wsparcie producenta)" + +#: ../build/bin/preferences_gen.h:6528 +msgid "Microsoft OpenCLOn12" +msgstr "Microsoft OpenCLOn12" + +#: ../build/bin/preferences_gen.h:6541 +msgid "" +"Microsoft OpenCLOn12, only use this if the vendor provided driver does not " +"work or there is none provided." +msgstr "" +"Microsoft OpenCLOn12, używaj tylko jeśli sterownik producenta nie działa lub " +"nie jest dostępny." + +#: ../build/bin/preferences_gen.h:6572 +msgid "other platforms" +msgstr "inne platformy" -#: ../build/bin/preferences_gen.h:6077 +#: ../build/bin/preferences_gen.h:6585 msgid "" -"allows runtime tuning of OpenCL devices:\n" -" - 'memory size': uses a fixed headroom (400MB as default),\n" -" - 'memory transfer': tries a faster memory access mode (pinned memory) used " -"for tiling." -msgstr "" -"zezwala na dostrajanie urządzeń OpenCL:\n" -"-\"rozmiar pamięci\" - używa stałego zapasu (400MB domyślnie), \n" -"-\"transfer pamięci\" - próbuje używać szybszego trybu dostępu (pinned " -"memory) dla kafelkowania." +"if set, all unspecified platforms are accepted. only do this if no vendor " +"driver is available" +msgstr "" +"jeśli wybrane, wszystkie nieokreślone platformy są akceptowane. używaj tylko " +"jeśli brakuje sterownika producenta" -#: ../build/bin/preferences_gen.h:6143 +#: ../build/bin/preferences_gen.h:6617 +msgid "security" +msgstr "zabezpieczenia" + +#: ../build/bin/preferences_gen.h:6638 msgid "ask before removing images from the library" msgstr "pytaj przed usuwaniem zdjęć z biblioteki" -#: ../build/bin/preferences_gen.h:6157 +#: ../build/bin/preferences_gen.h:6651 msgid "always ask the user before removing image information from the library" msgstr "zawsze pytaj przed usunięciem zdjęć z biblioteki" -#: ../build/bin/preferences_gen.h:6179 +#: ../build/bin/preferences_gen.h:6672 msgid "ask before deleting images from disk" msgstr "pytaj przed usuwaniem zdjęć z dysku" -#: ../build/bin/preferences_gen.h:6193 +#: ../build/bin/preferences_gen.h:6685 msgid "always ask the user before any image file is deleted" msgstr "zawsze pytaj przed usuwaniem zdjęć" -#: ../build/bin/preferences_gen.h:6215 +#: ../build/bin/preferences_gen.h:6706 msgid "ask before discarding history stack" msgstr "pytaj przed porzucaniem historii edycji" -#: ../build/bin/preferences_gen.h:6229 +#: ../build/bin/preferences_gen.h:6719 msgid "always ask the user before history stack is discarded on any image" msgstr "zawsze pytaj przed porzucaniem historii edycji" -#: ../build/bin/preferences_gen.h:6251 +#: ../build/bin/preferences_gen.h:6740 msgid "try to use trash when deleting images" msgstr "próbuj korzystać z kosza przy usuwaniu zdjęć" -#: ../build/bin/preferences_gen.h:6265 +#: ../build/bin/preferences_gen.h:6753 msgid "" "send files to trash instead of permanently deleting files on system that " "supports it" @@ -1663,27 +1798,27 @@ "przenoś pliki do kosza zamiast kasować je nieodwracalnie (w systemach, które " "to obsługują)" -#: ../build/bin/preferences_gen.h:6287 +#: ../build/bin/preferences_gen.h:6774 msgid "ask before moving images from film roll folder" msgstr "pytaj przed przenoszeniem zdjęć z katalogu rolki filmu" -#: ../build/bin/preferences_gen.h:6301 +#: ../build/bin/preferences_gen.h:6787 msgid "always ask the user before any image file is moved." msgstr "zawsze pytaj przed przenoszeniem zdjęć." -#: ../build/bin/preferences_gen.h:6323 +#: ../build/bin/preferences_gen.h:6808 msgid "ask before copying images to new film roll folder" msgstr "pytaj przed kopiowaniem zdjęć do nowego katalogu rolki filmu" -#: ../build/bin/preferences_gen.h:6337 +#: ../build/bin/preferences_gen.h:6821 msgid "always ask the user before any image file is copied." msgstr "zawsze pytaj przed kopiowaniem zdjęć." -#: ../build/bin/preferences_gen.h:6359 +#: ../build/bin/preferences_gen.h:6842 msgid "ask before removing empty folders" msgstr "pytaj przed usunięciem pustych folderów" -#: ../build/bin/preferences_gen.h:6373 +#: ../build/bin/preferences_gen.h:6855 msgid "" "always ask the user before removing any empty folder. this can happen after " "moving or deleting images." @@ -1691,49 +1826,49 @@ "zawsze pytaj przed usuwaniem pustego foldera. może to nastąpić po " "przeniesieniu lub usunięciu zdjęć." -#: ../build/bin/preferences_gen.h:6395 +#: ../build/bin/preferences_gen.h:6876 msgid "ask before deleting a tag" msgstr "pytaj przed usunięciem etykiety" -#: ../build/bin/preferences_gen.h:6430 +#: ../build/bin/preferences_gen.h:6909 msgid "ask before deleting a style" msgstr "pytaj przed usunięciem stylu" -#: ../build/bin/preferences_gen.h:6465 +#: ../build/bin/preferences_gen.h:6942 msgid "ask before deleting a preset" msgstr "pytaj przed usuwaniem presetu" -#: ../build/bin/preferences_gen.h:6479 +#: ../build/bin/preferences_gen.h:6955 msgid "will ask for confirmation before deleting or overwriting a preset" msgstr "zapyta o potwierdzenie przed usuwaniem lub nadpisywaniem presetu" -#: ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6976 msgid "ask before exporting in overwrite mode" msgstr "pytaj przed nadpisaniem podczas eksportu" -#: ../build/bin/preferences_gen.h:6515 +#: ../build/bin/preferences_gen.h:6989 msgid "will ask for confirmation before exporting files in overwrite mode" msgstr "zapyta o potwierdzenie eksportu nowych plików w trybie nadpisywania" #. italic -#: ../build/bin/preferences_gen.h:6525 ../src/libs/tools/viewswitcher.c:148 +#: ../build/bin/preferences_gen.h:6998 ../src/libs/tools/viewswitcher.c:148 msgid "other" msgstr "inne" -#: ../build/bin/preferences_gen.h:6545 +#: ../build/bin/preferences_gen.h:7017 msgid "password storage backend to use" msgstr "używany mechanizm przechowywania haseł" -#: ../build/bin/preferences_gen.h:6595 +#: ../build/bin/preferences_gen.h:7035 msgid "" "the storage backend for password storage: auto, none, libsecret, kwallet" msgstr "mechanizm przechowywania haseł: auto, brak, libsecret, kwallet" -#: ../build/bin/preferences_gen.h:6617 +#: ../build/bin/preferences_gen.h:7056 msgid "executable for playing audio files" msgstr "program do odtwarzania plików audio" -#: ../build/bin/preferences_gen.h:6635 +#: ../build/bin/preferences_gen.h:7074 msgid "" "this external program is used to play audio files some cameras record to " "keep notes for images" @@ -1741,15 +1876,19 @@ "ten zewnętrzny program będzie używany do odtwarzania plików audio, które " "niektóre aparaty nagrywają, aby przechowywać notatki do zdjęć" -#: ../build/bin/preferences_gen.h:6675 ../src/control/crawler.c:724 +#: ../build/bin/preferences_gen.h:7106 +msgid "storage" +msgstr "miejsca danych" + +#: ../build/bin/preferences_gen.h:7108 ../src/control/crawler.c:717 msgid "database" msgstr "baza danych" -#: ../build/bin/preferences_gen.h:6695 +#: ../build/bin/preferences_gen.h:7127 msgid "create database snapshot" msgstr "utwórz zrzut bazy danych" -#: ../build/bin/preferences_gen.h:6748 +#: ../build/bin/preferences_gen.h:7141 msgid "" "database snapshots are created right before closing darktable. options allow " "you to choose how often to make snapshots:\n" @@ -1773,11 +1912,11 @@ "przynajmniej 24 godziny\n" "-\"przy zamykaniu\" - utwórz kopię zapasową zawsze przy zamykaniu darktable" -#: ../build/bin/preferences_gen.h:6770 +#: ../build/bin/preferences_gen.h:7162 msgid "how many snapshots to keep" msgstr "ile kopii zapasowych przechowywać" -#: ../build/bin/preferences_gen.h:6793 +#: ../build/bin/preferences_gen.h:7185 msgid "" "after successfully creating snapshot, how many older snapshots to keep " "(excluding mandatory version update ones). enter -1 to keep all snapshots\n" @@ -1790,23 +1929,23 @@ "miej na uwadze, że kopie zapasowe zajmują miejsce, a do udanego odtworzenia " "potrzebujesz tylko najnowszą" -#: ../build/bin/preferences_gen.h:6803 ../src/control/crawler.c:723 -msgid "XMP" -msgstr "XMP" +#: ../build/bin/preferences_gen.h:7194 ../src/libs/copy_history.c:149 +msgid "XMP sidecar files" +msgstr "skojarzone pliki XMP" -#: ../build/bin/preferences_gen.h:6823 -msgid "write sidecar file for each image" -msgstr "zapisuj plik poboczny dla każdego zdjęcia" +#: ../build/bin/preferences_gen.h:7213 +msgid "create XMP files" +msgstr "utwórz pliki XMP" -#: ../build/bin/preferences_gen.h:6866 +#: ../build/bin/preferences_gen.h:7227 msgid "" -"the sidecar files hold information about all your development steps to allow " +"XMP sidecar files hold information about all your development steps to allow " "flawless re-importing of image files.\n" "\n" -"depending on the selected mode sidecar files will be written:\n" +"depending on the selected mode sidecar files will be created:\n" " - 'never'\n" " - 'on import': immediately after importing the image\n" -" - 'after edit': after any user change on the image." +" - 'after edit': after any user change on the image or adding tags." msgstr "" "pliki poboczne przechowują informację o wszystkich etapach wywoływania, aby " "umożliwić bezproblemowy ponowny import zdjęć.\n" @@ -1814,13 +1953,14 @@ "w zależności od wybranego trybu pliki poboczne będą zapisywane:\n" "- \"nigdy\"\n" "- \"przy imporcie\": bezpośrednio po zaimportowaniu zdjęcia\n" -"- \"po edycji\": po każdej zmianie, dokonanej przez użytkownika" +"- \"po edycji\": po dowolnej zmianie, dokonanej przez użytkownika, w tym po " +"dodaniu etykiety." -#: ../build/bin/preferences_gen.h:6888 +#: ../build/bin/preferences_gen.h:7248 msgid "store XMP tags in compressed format" msgstr "zapisuj skompresowane etykiety XMP" -#: ../build/bin/preferences_gen.h:6931 +#: ../build/bin/preferences_gen.h:7262 msgid "" "entries in XMP tags can get rather large and may exceed the available space " "to store the history stack in output files.\n" @@ -1830,11 +1970,25 @@ "dla zapisu historii w plikach wynikowych.\n" "opcja ta pozwala kompresować dane w tagacg XMP dla zaoszczędzenia miejsca." -#: ../build/bin/preferences_gen.h:6953 +#: ../build/bin/preferences_gen.h:7283 +msgid "auto-save interval" +msgstr "interwał autozapisu" + +#: ../build/bin/preferences_gen.h:7306 +msgid "" +"automatically save history while developing using the given interval (in " +"seconds); set to zero to disable auto-saving. auto-saving might be disabled " +"on slow drives." +msgstr "" +"automatycznie zapisz historię podczas obróbki z określonym interwałem (w " +"sekundach); ustaw na zero aby wyłączyć autozapis. autozapis może zostać " +"wyłączony przy zbyt wolnym dysku." + +#: ../build/bin/preferences_gen.h:7327 msgid "look for updated XMP files on startup" msgstr "wyszukuj zaktualizowane pliki XMP przy starcie" -#: ../build/bin/preferences_gen.h:6967 +#: ../build/bin/preferences_gen.h:7340 msgid "" "check file modification times of all XMP files on startup to check if any " "got updated in the meantime" @@ -1842,15 +1996,19 @@ "sprawdzaj czas modyfikacji wszystkich plików XMP przy starcie, by sprawdzić, " "czy zostały zmienione w międzyczasie" -#: ../build/bin/preferences_gen.h:7007 +#: ../build/bin/preferences_gen.h:7372 +msgid "miscellaneous" +msgstr "różne" + +#: ../build/bin/preferences_gen.h:7374 msgid "interface" msgstr "interfejs" -#: ../build/bin/preferences_gen.h:7027 +#: ../build/bin/preferences_gen.h:7393 msgid "load default shortcuts at startup" msgstr "przywróć domyślne skróty przy włączeniu" -#: ../build/bin/preferences_gen.h:7041 +#: ../build/bin/preferences_gen.h:7406 msgid "" "load default shortcuts before user settings. switch off to prevent deleted " "defaults returning" @@ -1858,30 +2016,30 @@ "ładuj domyślne skróty przed ustawieniami użytkownika. Wyłącz, by zapobiec " "przywracaniu usuniętych domyślnych skrótów" -#: ../build/bin/preferences_gen.h:7063 +#: ../build/bin/preferences_gen.h:7427 msgid "scale slider step with min/max" msgstr "krok suwaka skali z minimum/maksimum" -#: ../build/bin/preferences_gen.h:7077 +#: ../build/bin/preferences_gen.h:7440 msgid "vary slider step size with min/max range" msgstr "zmień krok suwaka wraz z krańcem minimum/maksimum" -#: ../build/bin/preferences_gen.h:7099 +#: ../build/bin/preferences_gen.h:7461 msgid "sort built-in presets first" msgstr "sortuj wbudowane presety jako pierwsze" -#: ../build/bin/preferences_gen.h:7113 +#: ../build/bin/preferences_gen.h:7474 msgid "" "whether to show built-in presets first before user's presets in presets menu." msgstr "" "określa, czy w menu presetów pokazywać wbudowane presety jako pierwsze, " "przed presetami użytkownika." -#: ../build/bin/preferences_gen.h:7135 +#: ../build/bin/preferences_gen.h:7495 msgid "mouse wheel scrolls modules side panel by default" msgstr "rolka myszy domyślnie przewija moduły w panelach bocznych" -#: ../build/bin/preferences_gen.h:7149 +#: ../build/bin/preferences_gen.h:7508 msgid "" "when enabled, use mouse wheel to scroll modules side panel. use ctrl+alt to " "use mouse wheel for data entry. when disabled, this behavior is reversed" @@ -1890,11 +2048,11 @@ "użyj kółka z ctrl+alt do zmiany wartości parametrów. jeśli opcja jest " "wyłączona, zachowanie jest odwrotne" -#: ../build/bin/preferences_gen.h:7171 +#: ../build/bin/preferences_gen.h:7529 msgid "always show panels' scrollbars" msgstr "zawsze wyświetlaj paski przewijania paneli" -#: ../build/bin/preferences_gen.h:7185 +#: ../build/bin/preferences_gen.h:7542 msgid "" "defines whether the panel scrollbars should be always visible or activated " "only depending on the content. (need a restart)" @@ -1902,11 +2060,11 @@ "określa, czy paski przewijania paneli powinny być zawsze widoczne, czy " "aktywowane wyłącznie w zależności od kontekstu. (wymaga restartu)" -#: ../build/bin/preferences_gen.h:7207 +#: ../build/bin/preferences_gen.h:7563 msgid "duration of the UI transitions in ms" msgstr "czas trwania animacji interfejsu w milisekundach" -#: ../build/bin/preferences_gen.h:7231 +#: ../build/bin/preferences_gen.h:7587 msgid "" "how long the transitions take (in ms) for expanding or collapsing modules " "and other UI elements" @@ -1914,19 +2072,19 @@ "czas trwania animacji (w milisekundach) dla rozwijania i zwijania modułów " "oraz innych elementów interfejsu" -#: ../build/bin/preferences_gen.h:7253 +#: ../build/bin/preferences_gen.h:7608 msgid "position of the scopes module" msgstr "położenie modułu analizy obrazu" -#: ../build/bin/preferences_gen.h:7291 +#: ../build/bin/preferences_gen.h:7622 msgid "position the scopes at the top-left or top-right of the screen" msgstr "Umieść wykresy w górnym-lewym lub górnym-prawym rogu ekranu" -#: ../build/bin/preferences_gen.h:7313 +#: ../build/bin/preferences_gen.h:7643 msgid "method to use for getting the display profile" msgstr "sposób pobierania profilu monitora" -#: ../build/bin/preferences_gen.h:7356 +#: ../build/bin/preferences_gen.h:7657 msgid "" "this option allows to force a specific means of getting the current display " "profile.\n" @@ -1935,11 +2093,11 @@ "pozwala wymusić określony sposób pobierania bieżącego profilu monitora.\n" "przydatne, gdy inna opcja daje nieprawidłowe rezultaty" -#: ../build/bin/preferences_gen.h:7378 +#: ../build/bin/preferences_gen.h:7678 msgid "order or exclude MIDI devices" msgstr "uporządkuj lub wyklucz urządzenia MIDI" -#: ../build/bin/preferences_gen.h:7396 +#: ../build/bin/preferences_gen.h:7696 msgid "" "comma-separated list of device name fragments that if matched load MIDI " "device at id given by location in list\n" @@ -1952,69 +2110,67 @@ "kodowanie i liczbę pokręteł np. \"nazwa:63:16\"" #. tags -#: ../build/bin/preferences_gen.h:7412 ../src/develop/lightroom.c:1516 -#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:333 -#: ../src/libs/image.c:558 ../src/libs/metadata_view.c:162 +#: ../build/bin/preferences_gen.h:7715 ../src/develop/lightroom.c:1573 +#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:322 +#: ../src/libs/image.c:614 ../src/libs/metadata_view.c:166 msgid "tags" msgstr "etykiety" -#: ../build/bin/preferences_gen.h:7432 +#: ../build/bin/preferences_gen.h:7734 msgid "omit hierarchy in simple tag lists" msgstr "pomiń hierarchie w prostych listach tagów" -#: ../build/bin/preferences_gen.h:7446 +#: ../build/bin/preferences_gen.h:7747 msgid "" -"when creating XMP file the hierarchical tags are also added as a simple " -"list\n" +"when creating an XMP sidecar file the hierarchical tags are also added as a " +"simple list\n" "of non-hierarchical ones to make them visible to some other programs.\n" "when this option is checked darktable will only include their last part\n" "and ignore the rest. so 'foo|bar|baz' will only add 'baz'." msgstr "" "przy tworzeniu pliku XMP tagi hierarchiczne są dodawane także jako prosta " -"lista niehierarchicznych tagów, aby mogły być widoczne w innych programach.\n" +"lista\n" +"niehierarchicznych tagów, aby mogły być widoczne w niektórych innych " +"programach.\n" "gdy ta opcja jest zaznaczona, darktable będzie dodawać tylko ostatnią " "część,\n" "ignorując resztę. więc „foo|bar|baz” doda tylko „baz”." -#: ../build/bin/preferences_gen.h:7456 +#: ../build/bin/preferences_gen.h:7756 msgid "shortcuts with multiple instances" msgstr "skróty klawiszowe dla wielu instancji" -#: ../build/bin/preferences_gen.h:7461 -msgid "" -"where multiple module instances are present, these preferences control rules " -"that are applied (in order) to decide which module instance shortcuts will " -"be applied to" -msgstr "" -"jeśli istnieje wiele instancji danego modułu, to ustawienie określa zasady, " -"według których (kolejno) zapada decyzja, która instancja modułu wykona " -"operację związaną z danym skrótem klawiszowym" - -#: ../build/bin/preferences_gen.h:7477 +#: ../build/bin/preferences_gen.h:7775 msgid "prefer focused instance" msgstr "preferuj uaktywnione instancje" -#: ../build/bin/preferences_gen.h:7491 +#: ../build/bin/preferences_gen.h:7788 msgid "" -"if an instance of the module has focus, apply shortcut to that instance\n" +"where multiple instances of a module are present, apply shortcuts to the " +"instance that has focus\n" +"if none are focused, the preferences below control rules that are followed " +"(in order) to decide which module instance shortcuts will be applied to.\n" "note: blending shortcuts always apply to the focused instance" msgstr "" -"jeśli instancja modułu jest wybrana, zastosuj skrót do tej instancji\n" -"nota: skróty trybu krycia zawsze działają na wybranej instancji" +"jeśli istnieje wiele instancji danego modułu, skróty działają na wybraną " +"instancję\n" +"jeśli żadna nie jest wybrana, poniższe ustawienia hierarchicznie kontrolują " +"zasady rozstrzygania który moduł obsłuży skrót.\n" +"uwaga: skróty mieszania zawsze odnoszą się do wybranej instancji" -#: ../build/bin/preferences_gen.h:7513 +#: ../build/bin/preferences_gen.h:7809 msgid "prefer expanded instances" msgstr "preferuj rozwinięte instancje" -#: ../build/bin/preferences_gen.h:7527 +#: ../build/bin/preferences_gen.h:7822 msgid "if instances of the module are expanded, ignore collapsed instances" msgstr "jeśli instancja modułu jest rozwinięta, ignoruj zwinięte instancje" -#: ../build/bin/preferences_gen.h:7549 +#: ../build/bin/preferences_gen.h:7843 msgid "prefer enabled instances" msgstr "preferuj włączone instancje" -#: ../build/bin/preferences_gen.h:7563 +#: ../build/bin/preferences_gen.h:7856 msgid "" "after applying the above rule, if instances of the module are active, ignore " "inactive instances" @@ -2022,11 +2178,11 @@ "po zaaplikowaniu zasady wyżej, jeśli istnieją aktywne instancje modułu, " "ignoruj nieaktywne" -#: ../build/bin/preferences_gen.h:7585 +#: ../build/bin/preferences_gen.h:7877 msgid "prefer unmasked instances" msgstr "preferuj niezamaskowane instancje" -#: ../build/bin/preferences_gen.h:7599 +#: ../build/bin/preferences_gen.h:7890 msgid "" "after applying the above rules, if instances of the module are unmasked, " "ignore masked instances" @@ -2034,11 +2190,11 @@ "po zaaplikowaniu zasady wyżej, jeśli istnieją niezamaskowane instancje, " "ignoruj zamaskowane" -#: ../build/bin/preferences_gen.h:7621 +#: ../build/bin/preferences_gen.h:7911 msgid "selection order" msgstr "kolejność wybierania" -#: ../build/bin/preferences_gen.h:7659 +#: ../build/bin/preferences_gen.h:7925 msgid "" "after applying the above rules, apply the shortcut based on its position in " "the pixelpipe" @@ -2046,11 +2202,11 @@ "po zaaplikowaniu zasady wyżej, przekaż skrót klawiszowy na podstawie pozycji " "modułu w potoku" -#: ../build/bin/preferences_gen.h:7681 +#: ../build/bin/preferences_gen.h:7946 msgid "allow visual assignment to specific instances" msgstr "zezwól na wizualne przypisanie do określonej instancji" -#: ../build/bin/preferences_gen.h:7695 +#: ../build/bin/preferences_gen.h:7959 msgid "" "when multiple instances are present on an image this allows shortcuts to be " "visually assigned to those specific instances\n" @@ -2060,15 +2216,15 @@ "skrótu do tych określonych instancji\n" "w przeciwnym razie skróty zawsze będą przypisywane do preferowanej instancji" -#: ../build/bin/preferences_gen.h:7705 +#: ../build/bin/preferences_gen.h:7968 msgid "map / geolocalization view" msgstr "mapa / geolokacja" -#: ../build/bin/preferences_gen.h:7725 +#: ../build/bin/preferences_gen.h:7987 msgid "pretty print the image location" msgstr "pokazuj lokalizację zdjęcia w czytelniejszy sposób" -#: ../build/bin/preferences_gen.h:7739 +#: ../build/bin/preferences_gen.h:8000 msgid "" "show a more readable representation of the location in the image information " "module" @@ -2076,65 +2232,29 @@ "wyświetlaj czytelniejszą reprezentację lokalizacji w module informacyjnym " "zdjęcia" -#: ../build/bin/preferences_gen.h:7749 +#: ../build/bin/preferences_gen.h:8009 msgid "slideshow view" msgstr "pokaz slajdów" -#: ../build/bin/preferences_gen.h:7769 +#: ../build/bin/preferences_gen.h:8028 msgid "waiting time between each picture in slideshow" msgstr "opóźnienie pomiędzy zdjęciami w pokazie slajdów" -#: ../build/bin/preferences_gen.h:7831 -msgid "session options" -msgstr "opcje sesji" - -#: ../build/bin/preferences_gen.h:7851 -msgid "base directory naming pattern" -msgstr "wzorzec nazwy katalogu podstawowego" - -#: ../build/bin/preferences_gen.h:7869 ../build/bin/preferences_gen.h:7909 -msgid "part of full import path for an import session" -msgstr "część pełnej ścieżki importu w sesji importu" - -#: ../build/bin/preferences_gen.h:7891 -msgid "sub directory naming pattern" -msgstr "wzorzec nazwy podkatalogu" - -#: ../build/bin/preferences_gen.h:7931 -msgid "keep original filename" -msgstr "zachowaj oryginalną nazwę pliku" - -#: ../build/bin/preferences_gen.h:7945 -msgid "" -"keep original filename instead of a pattern while importing from camera or " -"card" -msgstr "" -"przy imporcie z aparatu lub karty zachowaj oryginalną nazwę pliku zamiast " -"używać wzorca." - -#: ../build/bin/preferences_gen.h:7967 -msgid "file naming pattern" -msgstr "wzorzec nazywania plików" - -#: ../build/bin/preferences_gen.h:7985 -msgid "file naming pattern used for a import session" -msgstr "wzorzec nazywania plików używany w sesji importu" - -#: ../build/bin/preferences_gen.h:8022 +#: ../build/bin/preferences_gen.h:8088 msgid "do not set the 'uncategorized' entry for tags" msgstr "nie ustawiaj wartości 'brak kategorii' dla etykiet" -#: ../build/bin/preferences_gen.h:8036 +#: ../build/bin/preferences_gen.h:8101 msgid "" "do not set the 'uncategorized' entry for tags which do not have children" msgstr "" "nie ustawiaj wartości 'brak kategorii' dla etykiet, które nie mają dzieci" -#: ../build/bin/preferences_gen.h:8058 +#: ../build/bin/preferences_gen.h:8122 msgid "tags case sensitivity" msgstr "rozróżnianie wielkości liter w etykietach" -#: ../build/bin/preferences_gen.h:8096 +#: ../build/bin/preferences_gen.h:8136 msgid "" "tags case sensitivity. without the Sqlite ICU extension, insensitivity works " "only for the 26 latin letters" @@ -2142,27 +2262,27 @@ "czy wielkość liter w etykietach ma znaczenie. Bez rozszerzenia Sqlite ICU " "niewrażliwość na wielkość liter działa tylko na 26 liter łacińskich" -#: ../build/bin/preferences_gen.h:8118 ../build/bin/preferences_gen.h:8358 +#: ../build/bin/preferences_gen.h:8157 ../build/bin/preferences_gen.h:8368 msgid "number of collections to be stored" msgstr "liczba kolekcji do przechowania" -#: ../build/bin/preferences_gen.h:8142 ../build/bin/preferences_gen.h:8382 +#: ../build/bin/preferences_gen.h:8181 ../build/bin/preferences_gen.h:8392 msgid "the number of recent collections to store and show in this list" msgstr "liczba kolekcji do zapamiętania" -#: ../build/bin/preferences_gen.h:8164 +#: ../build/bin/preferences_gen.h:8202 msgid "hide the history button and show a specific module instead" msgstr "schowaj przycisk historii i wyświetl moduł w zamian" -#: ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8215 msgid "hide the history button and show the recent collections module instead" msgstr "ukryj przycisk historii i pokaż ostatnie kolekcje w zamian" -#: ../build/bin/preferences_gen.h:8200 +#: ../build/bin/preferences_gen.h:8236 msgid "number of folder levels to show in lists" msgstr "liczba poziomów katalogów pokazywanych w listach" -#: ../build/bin/preferences_gen.h:8224 +#: ../build/bin/preferences_gen.h:8260 msgid "" "the number of folder levels to show in film roll names, starting from the " "right" @@ -2170,19 +2290,24 @@ "liczba poziomów katalogów pokazywana w nazwach rolek filmu, począwszy od " "prawej" -#: ../build/bin/preferences_gen.h:8246 +#: ../build/bin/preferences_gen.h:8281 msgid "sort film rolls by" msgstr "sortuj rolki filmów według" -#: ../build/bin/preferences_gen.h:8284 +#: ../build/bin/preferences_gen.h:8292 +msgctxt "preferences" +msgid "chronological" +msgstr "chronologiczne" + +#: ../build/bin/preferences_gen.h:8295 msgid "sets the collections-list order for film rolls" msgstr "ustala kolejność w listach kolekcji dla rolek filmu" -#: ../build/bin/preferences_gen.h:8306 +#: ../build/bin/preferences_gen.h:8316 msgid "sort collection descending" msgstr "sortuj kolekcję malejąco" -#: ../build/bin/preferences_gen.h:8320 +#: ../build/bin/preferences_gen.h:8329 msgid "" "sort the following collections in descending order: 'film roll' by folder, " "'folder', 'times' (e.g. 'capture date')" @@ -2190,11 +2315,11 @@ "sortuj następujące kolekcje w porządku malejącym: 'rolka filmu' wg folderu, " "'folderu' i 'czasu' (tj. 'daty zdjęcia')" -#: ../build/bin/preferences_gen.h:8404 +#: ../build/bin/preferences_gen.h:8413 msgid "prefer a history button in the collections module" msgstr "preferuj przycisk historii w module kolekcji" -#: ../build/bin/preferences_gen.h:8418 +#: ../build/bin/preferences_gen.h:8426 msgid "" "hide this module and instead access collections history with a button in the " "collections module" @@ -2202,11 +2327,11 @@ "ukryj ten moduł i udostępniaj historię kolekcji przyciskiem w module " "kolekcji " -#: ../build/bin/preferences_gen.h:8472 +#: ../build/bin/preferences_gen.h:8483 msgid "suggested tags level of confidence" msgstr "poziom pewności sugerowanych tagów" -#: ../build/bin/preferences_gen.h:8497 +#: ../build/bin/preferences_gen.h:8508 #, no-c-format msgid "" "level of confidence to include the tag in the suggestions list, 0: all " @@ -2217,11 +2342,11 @@ "wszystkie skojarzone etykiety, 99: 99% skojarzonych etykiet, 100: żadna " "skojarzona etykieta, wyświetl tylko ostatnie (szybsze)" -#: ../build/bin/preferences_gen.h:8519 +#: ../build/bin/preferences_gen.h:8529 msgid "number of recently attached tags" msgstr "liczba ostatnio dodanych etykiet" -#: ../build/bin/preferences_gen.h:8543 +#: ../build/bin/preferences_gen.h:8553 msgid "" "number of recently attached tags which are included in the suggestions list. " "the value `-1' disables the recent list" @@ -2247,14 +2372,15 @@ #. focal length #: ../build/lib/darktable/plugins/introspection_ashift.c:148 #: ../build/lib/darktable/plugins/introspection_ashift.c:291 -#: ../src/common/collection.c:714 ../src/gui/preferences.c:844 -#: ../src/gui/presets.c:718 ../src/libs/camera.c:550 -#: ../src/libs/metadata_view.c:143 +#: ../src/common/collection.c:627 ../src/gui/preferences.c:842 +#: ../src/gui/presets.c:721 ../src/libs/camera.c:550 +#: ../src/libs/metadata_view.c:145 msgid "focal length" msgstr "ogniskowa" #: ../build/lib/darktable/plugins/introspection_ashift.c:154 #: ../build/lib/darktable/plugins/introspection_ashift.c:295 +#: ../src/libs/metadata_view.c:147 msgid "crop factor" msgstr "mnożnik ogniskowej" @@ -2270,7 +2396,7 @@ #: ../build/lib/darktable/plugins/introspection_ashift.c:172 #: ../build/lib/darktable/plugins/introspection_ashift.c:307 -#: ../src/iop/lens.cc:3784 +#: ../src/iop/lens.cc:4438 msgid "lens model" msgstr "model obiektywu" @@ -2292,14 +2418,14 @@ #. DEVELOP_MASK_DISABLED #: ../build/lib/darktable/plugins/introspection_ashift.c:366 -#: ../build/lib/darktable/plugins/introspection_colorin.c:300 +#: ../build/lib/darktable/plugins/introspection_colorin.c:303 #: ../build/lib/darktable/plugins/introspection_highlights.c:310 #: ../build/lib/darktable/plugins/introspection_vignette.c:264 #: ../src/develop/blend_gui.c:153 ../src/develop/blend_gui.c:182 -#: ../src/develop/blend_gui.c:3410 ../src/gui/accelerators.c:130 -#: ../src/gui/accelerators.c:140 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/imageio/format/j2k.c:669 -#: ../src/libs/live_view.c:361 ../src/libs/masks.c:113 +#: ../src/develop/blend_gui.c:3429 ../src/gui/accelerators.c:148 +#: ../src/gui/accelerators.c:158 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/imageio/format/j2k.c:686 +#: ../src/libs/live_view.c:361 msgid "off" msgstr "wyłączony" @@ -2323,7 +2449,7 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:146 #: ../build/lib/darktable/plugins/introspection_basecurve.c:239 -#: ../src/libs/metadata_view.c:142 +#: ../src/libs/metadata_view.c:144 msgid "exposure bias" msgstr "korekcja ekspozycji" @@ -2343,16 +2469,16 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:262 #: ../build/lib/darktable/plugins/introspection_basicadj.c:249 #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:153 -#: ../build/lib/darktable/plugins/introspection_lens.cc:444 +#: ../build/lib/darktable/plugins/introspection_lens.cc:533 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:251 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:153 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:270 -#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2193 -#: ../src/iop/channelmixerrgb.c:4667 ../src/iop/clipping.c:1900 -#: ../src/iop/clipping.c:2093 ../src/iop/clipping.c:2108 -#: ../src/iop/retouch.c:463 ../src/libs/collect.c:1907 -#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1023 -#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:132 +#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2214 +#: ../src/iop/channelmixerrgb.c:4735 ../src/iop/clipping.c:1953 +#: ../src/iop/clipping.c:2146 ../src/iop/clipping.c:2161 +#: ../src/iop/retouch.c:507 ../src/libs/collect.c:2043 +#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1101 +#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:109 #: ../src/libs/live_view.c:311 ../src/libs/print_settings.c:2835 msgid "none" msgstr "brak" @@ -2370,7 +2496,7 @@ #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:252 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:154 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:271 -#: ../src/develop/blend_gui.c:2363 ../src/develop/blend_gui.c:2397 +#: ../src/develop/blend_gui.c:2379 ../src/develop/blend_gui.c:2413 msgid "luminance" msgstr "luminancja" @@ -2480,7 +2606,7 @@ #: ../build/lib/darktable/plugins/introspection_graduatednd.c:144 #: ../build/lib/darktable/plugins/introspection_watermark.c:136 #: ../build/lib/darktable/plugins/introspection_watermark.c:265 -#: ../src/iop/ashift.c:6112 ../src/libs/masks.c:108 +#: ../src/iop/ashift.c:6059 ../src/libs/masks.c:109 msgid "rotation" msgstr "obrót" @@ -2491,7 +2617,7 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:125 #: ../build/lib/darktable/plugins/introspection_blurs.c:202 -#: ../src/libs/masks.c:109 +#: ../src/libs/masks.c:110 msgid "curvature" msgstr "zakrzywienie" @@ -2499,13 +2625,13 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:206 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:81 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:148 -#: ../src/iop/colorbalancergb.c:1968 +#: ../src/iop/colorbalancergb.c:2039 msgid "offset" msgstr "przesunięcie" #: ../build/lib/darktable/plugins/introspection_blurs.c:220 -#: ../src/common/collection.c:712 ../src/gui/preferences.c:828 -#: ../src/gui/presets.c:660 ../src/libs/metadata_view.c:139 +#: ../src/common/collection.c:625 ../src/gui/preferences.c:826 +#: ../src/gui/presets.c:663 ../src/libs/metadata_view.c:141 msgid "lens" msgstr "obiektyw" @@ -2521,63 +2647,90 @@ msgid "gaussian" msgstr "rozmycia Gaussa" -#: ../build/lib/darktable/plugins/introspection_borders.c:112 -#: ../build/lib/darktable/plugins/introspection_borders.c:253 -#: ../src/common/collection.c:722 ../src/libs/filtering.c:59 +#: ../build/lib/darktable/plugins/introspection_borders.c:122 +#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../src/common/collection.c:635 ../src/libs/filtering.c:59 msgid "aspect ratio" msgstr "proporcja boków" #. // portrait / landscape -#: ../build/lib/darktable/plugins/introspection_borders.c:130 -#: ../build/lib/darktable/plugins/introspection_borders.c:265 +#: ../build/lib/darktable/plugins/introspection_borders.c:140 +#: ../build/lib/darktable/plugins/introspection_borders.c:281 #: ../src/iop/flip.c:75 ../src/libs/print_settings.c:2517 msgid "orientation" msgstr "orientacja" -#: ../build/lib/darktable/plugins/introspection_borders.c:136 -#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../build/lib/darktable/plugins/introspection_borders.c:146 +#: ../build/lib/darktable/plugins/introspection_borders.c:285 msgid "border size" msgstr "rozmiar obramowania" -#: ../build/lib/darktable/plugins/introspection_borders.c:142 -#: ../build/lib/darktable/plugins/introspection_borders.c:273 +#: ../build/lib/darktable/plugins/introspection_borders.c:152 +#: ../build/lib/darktable/plugins/introspection_borders.c:289 msgid "horizontal offset" msgstr "przesunięcie poziome" -#: ../build/lib/darktable/plugins/introspection_borders.c:160 -#: ../build/lib/darktable/plugins/introspection_borders.c:285 +#: ../build/lib/darktable/plugins/introspection_borders.c:170 +#: ../build/lib/darktable/plugins/introspection_borders.c:301 msgid "vertical offset" msgstr "przesunięcie pionowe" -#: ../build/lib/darktable/plugins/introspection_borders.c:178 -#: ../build/lib/darktable/plugins/introspection_borders.c:297 +#: ../build/lib/darktable/plugins/introspection_borders.c:188 +#: ../build/lib/darktable/plugins/introspection_borders.c:313 msgid "frame line size" msgstr "rozmiar linii ramki" -#: ../build/lib/darktable/plugins/introspection_borders.c:184 -#: ../build/lib/darktable/plugins/introspection_borders.c:301 +#: ../build/lib/darktable/plugins/introspection_borders.c:194 +#: ../build/lib/darktable/plugins/introspection_borders.c:317 msgid "frame line offset" msgstr "przesunięcie linii ramki" -#: ../build/lib/darktable/plugins/introspection_borders.c:327 -#: ../src/gui/preferences.c:849 ../src/iop/ashift.c:6291 -#: ../src/iop/basicadj.c:632 ../src/iop/flip.c:472 ../src/iop/flip.c:474 -#: ../src/iop/levels.c:641 ../src/iop/rgblevels.c:1050 +#: ../build/lib/darktable/plugins/introspection_borders.c:218 +#: ../build/lib/darktable/plugins/introspection_borders.c:333 +msgid "basis" +msgstr "podstawa" + +#: ../build/lib/darktable/plugins/introspection_borders.c:347 +#: ../build/lib/darktable/plugins/introspection_borders.c:353 +#: ../src/gui/preferences.c:847 ../src/imageio/format/jpeg.c:604 +#: ../src/iop/ashift.c:6238 ../src/iop/basicadj.c:662 ../src/iop/flip.c:470 +#: ../src/iop/flip.c:472 ../src/iop/levels.c:657 ../src/iop/rgblevels.c:1105 msgid "auto" msgstr "auto" -#: ../build/lib/darktable/plugins/introspection_borders.c:328 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:309 +#: ../build/lib/darktable/plugins/introspection_borders.c:348 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:315 #: ../src/libs/filters/ratio.c:122 ../src/libs/print_settings.c:2519 msgid "portrait" msgstr "pionowa" -#: ../build/lib/darktable/plugins/introspection_borders.c:329 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:305 +#: ../build/lib/darktable/plugins/introspection_borders.c:349 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:311 #: ../src/libs/filters/ratio.c:124 ../src/libs/print_settings.c:2519 msgid "landscape" msgstr "pozioma" +#: ../build/lib/darktable/plugins/introspection_borders.c:354 +#: ../src/iop/relight.c:275 ../src/libs/export.c:1223 +#: ../src/libs/metadata_view.c:151 ../src/libs/print_settings.c:2537 +msgid "width" +msgstr "szerokość" + +#: ../build/lib/darktable/plugins/introspection_borders.c:355 +#: ../build/lib/darktable/plugins/introspection_watermark.c:326 +#: ../src/libs/export.c:1229 ../src/libs/metadata_view.c:152 +#: ../src/libs/print_settings.c:2541 +msgid "height" +msgstr "wysokość" + +#: ../build/lib/darktable/plugins/introspection_borders.c:356 +msgid "shorter" +msgstr "którsze" + +#: ../build/lib/darktable/plugins/introspection_borders.c:357 +msgid "longer" +msgstr "dłuższe" + #: ../build/lib/darktable/plugins/introspection_cacorrect.c:42 #: ../build/lib/darktable/plugins/introspection_cacorrect.c:91 msgid "avoid colorshift" @@ -2624,9 +2777,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:67 #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:132 -#: ../src/iop/atrous.c:1522 ../src/iop/bilateral.cc:350 ../src/iop/clahe.c:335 -#: ../src/iop/dither.c:760 ../src/iop/lowpass.c:584 ../src/iop/shadhi.c:675 -#: ../src/iop/sharpen.c:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:340 +#: ../build/lib/darktable/plugins/introspection_lens.cc:501 +#: ../src/iop/atrous.c:1636 ../src/iop/bilateral.cc:352 ../src/iop/clahe.c:337 +#: ../src/iop/dither.c:762 ../src/iop/lowpass.c:597 ../src/iop/shadhi.c:710 +#: ../src/iop/sharpen.c:435 msgid "radius" msgstr "promień" @@ -2634,9 +2789,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:136 #: ../build/lib/darktable/plugins/introspection_highlights.c:137 #: ../build/lib/darktable/plugins/introspection_highlights.c:240 -#: ../src/iop/bloom.c:376 ../src/iop/denoiseprofile.c:3818 -#: ../src/iop/grain.c:584 ../src/iop/hazeremoval.c:201 -#: ../src/iop/hotpixels.c:388 ../src/iop/nlmeans.c:460 ../src/iop/velvia.c:279 +#: ../build/lib/darktable/plugins/introspection_lens.cc:334 +#: ../build/lib/darktable/plugins/introspection_lens.cc:497 +#: ../src/iop/bloom.c:372 ../src/iop/denoiseprofile.c:3822 +#: ../src/iop/grain.c:602 ../src/iop/hazeremoval.c:203 +#: ../src/iop/hotpixels.c:467 ../src/iop/nlmeans.c:463 ../src/iop/velvia.c:288 msgid "strength" msgstr "siła" @@ -2651,41 +2808,41 @@ msgstr "bardzo duża aberracja chromatyczna" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:158 -#: ../src/common/collection.c:1507 ../src/common/color_vocabulary.c:232 -#: ../src/common/colorlabels.c:334 ../src/develop/blend_gui.c:2330 -#: ../src/develop/blend_gui.c:2378 ../src/develop/lightroom.c:834 -#: ../src/gui/gtk.c:3137 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:354 -#: ../src/iop/channelmixer.c:618 ../src/iop/channelmixer.c:628 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/colorzones.c:2263 -#: ../src/iop/temperature.c:1935 ../src/iop/temperature.c:2129 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:260 -#: ../src/libs/histogram.c:2397 +#: ../src/common/collection.c:1374 ../src/common/color_vocabulary.c:232 +#: ../src/common/colorlabels.c:333 ../src/develop/blend_gui.c:2346 +#: ../src/develop/blend_gui.c:2394 ../src/develop/lightroom.c:887 +#: ../src/gui/gtk.c:3183 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:356 +#: ../src/iop/channelmixer.c:637 ../src/iop/channelmixer.c:647 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/colorzones.c:2499 +#: ../src/iop/temperature.c:1912 ../src/iop/temperature.c:2094 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:260 +#: ../src/libs/histogram.c:2724 msgid "red" msgstr "czerwony" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:159 -#: ../src/common/collection.c:1511 ../src/common/color_vocabulary.c:277 -#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2336 -#: ../src/develop/blend_gui.c:2384 ../src/develop/lightroom.c:838 -#: ../src/gui/gtk.c:3138 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:359 -#: ../src/iop/channelmixer.c:619 ../src/iop/channelmixer.c:634 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/colorzones.c:2266 -#: ../src/iop/temperature.c:1919 ../src/iop/temperature.c:1937 -#: ../src/iop/temperature.c:2130 ../src/libs/collect.c:1791 -#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2389 +#: ../src/common/collection.c:1378 ../src/common/color_vocabulary.c:277 +#: ../src/common/colorlabels.c:335 ../src/develop/blend_gui.c:2352 +#: ../src/develop/blend_gui.c:2400 ../src/develop/lightroom.c:891 +#: ../src/gui/gtk.c:3184 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:361 +#: ../src/iop/channelmixer.c:638 ../src/iop/channelmixer.c:653 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/colorzones.c:2502 +#: ../src/iop/temperature.c:1896 ../src/iop/temperature.c:1914 +#: ../src/iop/temperature.c:2095 ../src/libs/collect.c:1916 +#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2715 msgid "green" msgstr "zielony" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:160 -#: ../src/common/collection.c:1513 ../src/common/color_vocabulary.c:324 -#: ../src/common/colorlabels.c:337 ../src/develop/blend_gui.c:2342 -#: ../src/develop/blend_gui.c:2390 ../src/develop/lightroom.c:840 -#: ../src/gui/gtk.c:3139 ../src/iop/bilateral.cc:364 -#: ../src/iop/channelmixer.c:620 ../src/iop/channelmixer.c:640 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/colorzones.c:2268 -#: ../src/iop/temperature.c:1939 ../src/iop/temperature.c:2131 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:263 -#: ../src/libs/histogram.c:2381 +#: ../src/common/collection.c:1380 ../src/common/color_vocabulary.c:324 +#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2358 +#: ../src/develop/blend_gui.c:2406 ../src/develop/lightroom.c:893 +#: ../src/gui/gtk.c:3185 ../src/iop/bilateral.cc:366 +#: ../src/iop/channelmixer.c:639 ../src/iop/channelmixer.c:659 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/colorzones.c:2504 +#: ../src/iop/temperature.c:1916 ../src/iop/temperature.c:2096 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:263 +#: ../src/libs/histogram.c:2706 msgid "blue" msgstr "niebieski" @@ -2928,7 +3085,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:303 #: ../build/lib/darktable/plugins/introspection_crop.c:61 #: ../build/lib/darktable/plugins/introspection_crop.c:134 -#: ../src/gui/gtk.c:1141 ../src/iop/atrous.c:1518 +#: ../src/gui/gtk.c:1234 ../src/iop/atrous.c:1632 msgid "left" msgstr "lewy" @@ -2936,7 +3093,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:307 #: ../build/lib/darktable/plugins/introspection_crop.c:67 #: ../build/lib/darktable/plugins/introspection_crop.c:138 -#: ../src/gui/accelerators.c:113 ../src/gui/gtk.c:1155 +#: ../src/gui/accelerators.c:131 ../src/gui/gtk.c:1240 msgid "top" msgstr "górny" @@ -2944,7 +3101,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:311 #: ../build/lib/darktable/plugins/introspection_crop.c:73 #: ../build/lib/darktable/plugins/introspection_crop.c:142 -#: ../src/gui/gtk.c:1148 ../src/iop/atrous.c:1517 +#: ../src/gui/gtk.c:1237 ../src/iop/atrous.c:1631 msgid "right" msgstr "prawy" @@ -2952,7 +3109,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:315 #: ../build/lib/darktable/plugins/introspection_crop.c:79 #: ../build/lib/darktable/plugins/introspection_crop.c:146 -#: ../src/gui/accelerators.c:114 ../src/gui/gtk.c:1162 +#: ../src/gui/accelerators.c:132 ../src/gui/gtk.c:1243 msgid "bottom" msgstr "dolny" @@ -2991,10 +3148,11 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:477 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:489 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:501 -#: ../src/develop/blend_gui.c:2356 ../src/develop/blend_gui.c:2404 -#: ../src/iop/atrous.c:1667 ../src/iop/channelmixerrgb.c:4457 -#: ../src/iop/channelmixerrgb.c:4573 ../src/iop/colorbalancergb.c:1895 -#: ../src/iop/colorzones.c:2402 ../src/iop/nlmeans.c:468 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 +#: ../src/develop/blend_gui.c:2372 ../src/develop/blend_gui.c:2420 +#: ../src/iop/atrous.c:1801 ../src/iop/channelmixerrgb.c:4525 +#: ../src/iop/channelmixerrgb.c:4641 ../src/iop/colorbalancergb.c:1966 +#: ../src/iop/colorzones.c:2645 ../src/iop/nlmeans.c:471 msgid "chroma" msgstr "chroma" @@ -3014,11 +3172,11 @@ #: ../build/lib/darktable/plugins/introspection_splittoning.c:73 #: ../build/lib/darktable/plugins/introspection_splittoning.c:134 #: ../build/lib/darktable/plugins/introspection_splittoning.c:142 -#: ../src/develop/blend_gui.c:2315 ../src/develop/blend_gui.c:2349 -#: ../src/develop/blend_gui.c:2411 ../src/iop/channelmixer.c:615 -#: ../src/iop/channelmixerrgb.c:4450 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/colorbalance.c:2042 ../src/iop/colorize.c:330 -#: ../src/iop/colorreconstruction.c:1240 ../src/iop/colorzones.c:2403 +#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2365 +#: ../src/develop/blend_gui.c:2427 ../src/iop/channelmixer.c:634 +#: ../src/iop/channelmixerrgb.c:4518 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/colorbalance.c:2017 ../src/iop/colorize.c:343 +#: ../src/iop/colorreconstruction.c:1249 ../src/iop/colorzones.c:2646 msgid "hue" msgstr "odcień" @@ -3045,9 +3203,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:569 #: ../build/lib/darktable/plugins/introspection_toneequal.c:156 #: ../build/lib/darktable/plugins/introspection_toneequal.c:297 -#: ../src/iop/bilat.c:469 ../src/iop/colorbalance.c:2099 -#: ../src/iop/negadoctor.c:915 ../src/iop/shadhi.c:671 -#: ../src/iop/splittoning.c:507 +#: ../src/iop/bilat.c:479 ../src/iop/colorbalance.c:2074 +#: ../src/iop/negadoctor.c:934 ../src/iop/shadhi.c:706 +#: ../src/iop/splittoning.c:503 msgid "shadows" msgstr "cienie" @@ -3059,9 +3217,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:561 #: ../build/lib/darktable/plugins/introspection_toneequal.c:180 #: ../build/lib/darktable/plugins/introspection_toneequal.c:313 -#: ../src/iop/bilat.c:463 ../src/iop/colorbalance.c:2101 -#: ../src/iop/monochrome.c:561 ../src/iop/shadhi.c:672 -#: ../src/iop/splittoning.c:514 +#: ../src/iop/bilat.c:473 ../src/iop/colorbalance.c:2076 +#: ../src/iop/monochrome.c:583 ../src/iop/shadhi.c:707 +#: ../src/iop/splittoning.c:510 msgid "highlights" msgstr "światła" @@ -3078,13 +3236,13 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:565 #: ../build/lib/darktable/plugins/introspection_toneequal.c:168 #: ../build/lib/darktable/plugins/introspection_toneequal.c:305 -#: ../src/iop/colorbalance.c:2100 +#: ../src/iop/colorbalance.c:2075 msgid "mid-tones" msgstr "tony średnie" #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:340 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:537 -#: ../src/iop/filmic.c:1576 +#: ../src/iop/filmic.c:1601 msgid "global saturation" msgstr "nasycenie globalne" @@ -3115,12 +3273,12 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:412 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:585 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:64 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:137 -#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:607 ../src/iop/bilat.c:458 -#: ../src/iop/colisa.c:304 ../src/iop/colorbalance.c:1947 -#: ../src/iop/colorbalance.c:1953 ../src/iop/filmic.c:1548 -#: ../src/iop/filmicrgb.c:4551 ../src/iop/lowpass.c:586 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:116 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:237 +#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:637 ../src/iop/bilat.c:468 +#: ../src/iop/colisa.c:298 ../src/iop/colorbalance.c:1922 +#: ../src/iop/colorbalance.c:1928 ../src/iop/filmic.c:1573 +#: ../src/iop/filmicrgb.c:4615 ../src/iop/lowpass.c:599 msgid "contrast" msgstr "kontrast" @@ -3147,33 +3305,35 @@ msgid "blue-yellow contrast" msgstr "kontrast niebieski-żółty" -#: ../build/lib/darktable/plugins/introspection_colorin.c:148 -#: ../build/lib/darktable/plugins/introspection_colorin.c:231 +#: ../build/lib/darktable/plugins/introspection_colorin.c:150 +#: ../build/lib/darktable/plugins/introspection_colorin.c:233 msgid "gamut clipping" msgstr "przycinanie do gamutu" -#: ../build/lib/darktable/plugins/introspection_colorin.c:301 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:201 -#: ../src/common/colorspaces.c:1251 ../src/common/colorspaces.c:1484 +#: ../build/lib/darktable/plugins/introspection_colorin.c:304 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:312 +#: ../src/common/colorspaces.c:1410 ../src/common/colorspaces.c:1700 #: ../src/libs/print_settings.c:1356 msgid "sRGB" msgstr "sRGB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:302 -#: ../src/common/colorspaces.c:1260 ../src/common/colorspaces.c:1486 +#: ../build/lib/darktable/plugins/introspection_colorin.c:305 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:311 +#: ../src/common/colorspaces.c:1421 ../src/common/colorspaces.c:1702 #: ../src/libs/print_settings.c:1363 msgid "Adobe RGB (compatible)" msgstr "Adobe RGB (kompatybilny)" -#: ../build/lib/darktable/plugins/introspection_colorin.c:303 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 -#: ../src/common/colorspaces.c:1265 ../src/common/colorspaces.c:1488 +#: ../build/lib/darktable/plugins/introspection_colorin.c:306 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 +#: ../src/common/colorspaces.c:1428 ../src/common/colorspaces.c:1704 msgid "linear Rec709 RGB" msgstr "liniowy Rec709 RGB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:304 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 -#: ../src/common/colorspaces.c:1274 ../src/common/colorspaces.c:1490 +#: ../build/lib/darktable/plugins/introspection_colorin.c:307 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:206 +#: ../src/common/colorspaces.c:1442 ../src/common/colorspaces.c:1706 msgid "linear Rec2020 RGB" msgstr "liniowy Rec2020 RGB" @@ -3201,7 +3361,7 @@ #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:127 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:45 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:92 -#: ../src/iop/shadhi.c:686 +#: ../src/iop/shadhi.c:721 msgid "spatial extent" msgstr "zasięg przestrzenny" @@ -3211,7 +3371,7 @@ msgstr "zasięg luminancji" #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:154 -#: ../src/iop/channelmixerrgb.c:4669 +#: ../src/iop/channelmixerrgb.c:4737 msgid "saturated colors" msgstr "nasycone kolory" @@ -3225,7 +3385,7 @@ #: ../build/lib/darktable/plugins/introspection_colorzones.c:233 #: ../build/lib/darktable/plugins/introspection_soften.c:66 #: ../build/lib/darktable/plugins/introspection_soften.c:121 -#: ../src/iop/atrous.c:1689 +#: ../src/iop/atrous.c:1835 msgid "mix" msgstr "miks" @@ -3235,33 +3395,17 @@ msgstr "tryb pracy" #: ../build/lib/darktable/plugins/introspection_colorzones.c:255 -#: ../src/develop/blend_gui.c:2294 ../src/iop/channelmixer.c:617 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/colorchecker.c:1448 -#: ../src/iop/colorize.c:349 ../src/iop/colorzones.c:2401 -#: ../src/iop/exposure.c:1239 +#: ../src/develop/blend_gui.c:2310 ../src/iop/channelmixer.c:636 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/colorchecker.c:1453 +#: ../src/iop/colorize.c:362 ../src/iop/colorzones.c:2644 +#: ../src/iop/exposure.c:1257 msgid "lightness" msgstr "jasność" -#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 -#: ../src/develop/blend_gui.c:2310 ../src/iop/basicadj.c:624 -#: ../src/iop/channelmixer.c:616 ../src/iop/colisa.c:306 -#: ../src/iop/colorbalance.c:2059 ../src/iop/colorbalancergb.c:1919 -#: ../src/iop/colorchecker.c:1483 ../src/iop/colorcontrast.c:90 -#: ../src/iop/colorcorrection.c:275 ../src/iop/colorize.c:343 -#: ../src/iop/lowpass.c:588 ../src/iop/soften.c:373 ../src/iop/velvia.c:84 -#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:971 -msgid "saturation" -msgstr "nasycenie" - #: ../build/lib/darktable/plugins/introspection_colorzones.c:267 -#: ../src/iop/atrous.c:1309 ../src/iop/atrous.c:1313 -#: ../src/iop/denoiseprofile.c:3527 ../src/iop/rawdenoise.c:755 +#: ../src/iop/atrous.c:1410 ../src/iop/atrous.c:1414 +#: ../src/iop/denoiseprofile.c:3531 ../src/iop/rawdenoise.c:771 +#: ../src/iop/sigmoid.c:292 msgid "smooth" msgstr "gładko" @@ -3278,9 +3422,9 @@ #: ../build/lib/darktable/plugins/introspection_defringe.c:106 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:230 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:435 -#: ../src/iop/atrous.c:1572 ../src/iop/bloom.c:372 -#: ../src/iop/colorreconstruction.c:1236 ../src/iop/hotpixels.c:384 -#: ../src/iop/sharpen.c:449 +#: ../src/iop/atrous.c:1695 ../src/iop/bloom.c:368 +#: ../src/iop/colorreconstruction.c:1245 ../src/iop/hotpixels.c:463 +#: ../src/iop/sharpen.c:444 msgid "threshold" msgstr "próg" @@ -3415,7 +3559,7 @@ #. history #: ../build/lib/darktable/plugins/introspection_demosaic.c:232 -#: ../src/common/collection.c:1526 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1394 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "basic" msgstr "podstawowe" @@ -3488,12 +3632,9 @@ msgid "upgrade profiled transform" msgstr "zaktualizuj transformatę profilowaną" -#. -#. * Color mode combo box -#. #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:257 #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:388 -#: ../src/imageio/format/avif.c:786 ../src/libs/colorpicker.c:584 +#: ../src/libs/colorpicker.c:659 msgid "color mode" msgstr "tryb koloru" @@ -3518,7 +3659,7 @@ msgstr "oblicz wariancję" #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:410 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:266 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:292 msgid "RGB" msgstr "RGB" @@ -3529,7 +3670,7 @@ #. two more sharpness (standard & strong) #: ../build/lib/darktable/plugins/introspection_diffuse.c:123 #: ../build/lib/darktable/plugins/introspection_diffuse.c:248 -#: ../src/iop/atrous.c:1564 ../src/iop/diffuse.c:630 ../src/iop/highpass.c:381 +#: ../src/iop/atrous.c:1685 ../src/iop/diffuse.c:657 ../src/iop/highpass.c:376 msgid "sharpness" msgstr "ostrość" @@ -3693,7 +3834,7 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:212 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:423 -#: ../src/iop/filmic.c:1489 +#: ../src/iop/filmic.c:1514 msgid "middle gray luminance" msgstr "luminancja średniej szarości" @@ -3701,13 +3842,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:427 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:97 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:166 -#: ../src/iop/filmic.c:1514 +#: ../src/iop/filmic.c:1539 msgid "black relative exposure" msgstr "względna ekspozycja czerni" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:224 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:431 -#: ../src/iop/filmic.c:1501 +#: ../src/iop/filmic.c:1526 msgid "white relative exposure" msgstr "względna ekspozycja bieli" @@ -3738,19 +3879,19 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:266 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:459 -#: ../src/iop/filmic.c:1646 +#: ../src/iop/filmic.c:1671 msgid "target middle gray" msgstr "docelowa średnia szarość" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:272 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:463 -#: ../src/iop/filmic.c:1637 +#: ../src/iop/filmic.c:1662 msgid "target black luminance" msgstr "docelowa luminancja czerni" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:278 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:467 -#: ../src/iop/filmic.c:1655 +#: ../src/iop/filmic.c:1680 msgid "target white luminance" msgstr "docelowa luminancja bieli" @@ -3758,13 +3899,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:471 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:69 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:140 -#: ../src/libs/masks.c:106 +#: ../src/libs/masks.c:107 msgid "hardness" msgstr "twardość" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:302 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:483 -#: ../src/iop/filmic.c:1586 ../src/iop/filmicrgb.c:4729 +#: ../src/iop/filmic.c:1611 ../src/iop/filmicrgb.c:4793 msgid "extreme luminance saturation" msgstr "nasycenie skrajnych luminancji" @@ -3835,11 +3976,11 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:549 #: ../build/lib/darktable/plugins/introspection_toneequal.c:371 -#: ../src/common/database.c:2785 ../src/common/variables.c:705 -#: ../src/develop/imageop_gui.c:209 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 +#: ../src/common/variables.c:714 ../src/develop/imageop_gui.c:209 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 msgid "no" msgstr "nie" @@ -3941,9 +4082,25 @@ msgid "density" msgstr "przyciemnienie" +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 +#: ../src/develop/blend_gui.c:2326 ../src/iop/basicadj.c:654 +#: ../src/iop/channelmixer.c:635 ../src/iop/colisa.c:300 +#: ../src/iop/colorbalance.c:2034 ../src/iop/colorbalancergb.c:1990 +#: ../src/iop/colorchecker.c:1488 ../src/iop/colorcontrast.c:82 +#: ../src/iop/colorcorrection.c:268 ../src/iop/colorize.c:356 +#: ../src/iop/lowpass.c:601 ../src/iop/soften.c:368 ../src/iop/velvia.c:75 +#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:1058 +msgid "saturation" +msgstr "nasycenie" + #: ../build/lib/darktable/plugins/introspection_grain.c:58 #: ../build/lib/darktable/plugins/introspection_grain.c:117 -#: ../src/iop/bilat.c:450 +#: ../src/iop/bilat.c:460 msgid "coarseness" msgstr "szorstkość" @@ -3956,7 +4113,7 @@ #: ../build/lib/darktable/plugins/introspection_highlights.c:143 #: ../build/lib/darktable/plugins/introspection_highlights.c:244 -#: ../src/views/darkroom.c:2406 +#: ../src/views/darkroom.c:2245 msgid "clipping threshold" msgstr "próg odcinania" @@ -4092,168 +4249,172 @@ msgid "detect by 3 neighbors" msgstr "wykrywanie przez 3 sąsiadów" -#: ../build/lib/darktable/plugins/introspection_lens.cc:162 -#: ../build/lib/darktable/plugins/introspection_lens.cc:337 +#: ../build/lib/darktable/plugins/introspection_lens.cc:190 +#: ../build/lib/darktable/plugins/introspection_lens.cc:401 msgid "correction method" msgstr "tryb korekcji" #. Page CORRECTIONS -#: ../build/lib/darktable/plugins/introspection_lens.cc:168 -#: ../build/lib/darktable/plugins/introspection_lens.cc:341 -#: ../src/iop/negadoctor.c:900 +#: ../build/lib/darktable/plugins/introspection_lens.cc:196 +#: ../build/lib/darktable/plugins/introspection_lens.cc:405 +#: ../src/iop/negadoctor.c:919 msgid "corrections" msgstr "korekcje" #. mode choice -#. Add check to control whether the style is to replace or append the current module -#: ../build/lib/darktable/plugins/introspection_lens.cc:174 -#: ../build/lib/darktable/plugins/introspection_lens.cc:345 +#: ../build/lib/darktable/plugins/introspection_lens.cc:202 +#: ../build/lib/darktable/plugins/introspection_lens.cc:409 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:128 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:219 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:51 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:118 -#: ../src/iop/bilat.c:428 ../src/iop/colorbalance.c:1909 -#: ../src/iop/denoiseprofile.c:3806 ../src/iop/exposure.c:1157 -#: ../src/iop/levels.c:684 ../src/iop/profile_gamma.c:668 -#: ../src/libs/copy_history.c:399 ../src/libs/export.c:1262 -#: ../src/libs/image.c:597 ../src/libs/print_settings.c:2875 -#: ../src/libs/styles.c:846 ../src/views/darkroom.c:2387 +#: ../src/develop/blend_gui.c:3546 ../src/iop/bilat.c:438 +#: ../src/iop/colorbalance.c:1884 ../src/iop/denoiseprofile.c:3810 +#: ../src/iop/exposure.c:1175 ../src/iop/levels.c:700 +#: ../src/iop/profile_gamma.c:682 ../src/libs/copy_history.c:399 +#: ../src/libs/export.c:1376 ../src/libs/image.c:666 +#: ../src/libs/print_settings.c:2875 ../src/libs/styles.c:850 +#: ../src/views/darkroom.c:2226 msgid "mode" msgstr "tryb" -#: ../build/lib/darktable/plugins/introspection_lens.cc:210 -#: ../build/lib/darktable/plugins/introspection_lens.cc:369 -#: ../src/iop/lens.cc:3820 +#: ../build/lib/darktable/plugins/introspection_lens.cc:238 +#: ../build/lib/darktable/plugins/introspection_lens.cc:433 +#: ../src/iop/lens.cc:4474 msgid "target geometry" msgstr "geometria docelowa" -#: ../build/lib/darktable/plugins/introspection_lens.cc:240 -#: ../build/lib/darktable/plugins/introspection_lens.cc:389 +#: ../build/lib/darktable/plugins/introspection_lens.cc:268 +#: ../build/lib/darktable/plugins/introspection_lens.cc:453 msgid "TCA overwrite" msgstr "nadpisanie poprzecznej aberracji chromatycznej" -#: ../build/lib/darktable/plugins/introspection_lens.cc:246 -#: ../build/lib/darktable/plugins/introspection_lens.cc:393 +#: ../build/lib/darktable/plugins/introspection_lens.cc:274 +#: ../build/lib/darktable/plugins/introspection_lens.cc:298 +#: ../build/lib/darktable/plugins/introspection_lens.cc:457 +#: ../build/lib/darktable/plugins/introspection_lens.cc:473 msgid "TCA red" msgstr "TCA czerwone" -#: ../build/lib/darktable/plugins/introspection_lens.cc:252 -#: ../build/lib/darktable/plugins/introspection_lens.cc:397 +#: ../build/lib/darktable/plugins/introspection_lens.cc:280 +#: ../build/lib/darktable/plugins/introspection_lens.cc:304 +#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:477 msgid "TCA blue" msgstr "TCA niebieskie" -#: ../build/lib/darktable/plugins/introspection_lens.cc:258 -#: ../build/lib/darktable/plugins/introspection_lens.cc:401 -msgid "distortion fine-tune" -msgstr "dostrojenie dystorsji" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:264 -#: ../build/lib/darktable/plugins/introspection_lens.cc:405 -msgid "vignetting fine-tune" -msgstr "dostrojenie winietowania" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:270 -#: ../build/lib/darktable/plugins/introspection_lens.cc:409 -msgid "TCA red fine-tune" -msgstr "TCA dostrajanie czerwonego" +#: ../build/lib/darktable/plugins/introspection_lens.cc:286 +#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +msgid "distortion" +msgstr "zniekształcenie" -#: ../build/lib/darktable/plugins/introspection_lens.cc:276 -#: ../build/lib/darktable/plugins/introspection_lens.cc:413 -msgid "TCA blue fine-tune" -msgstr "TCA dostrajanie niebieskiego" +#: ../build/lib/darktable/plugins/introspection_lens.cc:292 +#: ../build/lib/darktable/plugins/introspection_lens.cc:469 +#: ../src/iop/vignette.c:114 +msgid "vignetting" +msgstr "winietowanie" -#: ../build/lib/darktable/plugins/introspection_lens.cc:282 -#: ../build/lib/darktable/plugins/introspection_lens.cc:417 +#: ../build/lib/darktable/plugins/introspection_lens.cc:310 +#: ../build/lib/darktable/plugins/introspection_lens.cc:481 msgid "scale fine-tune" msgstr "dostrajanie skali" -#: ../build/lib/darktable/plugins/introspection_lens.cc:294 -#: ../build/lib/darktable/plugins/introspection_lens.cc:425 +#: ../build/lib/darktable/plugins/introspection_lens.cc:322 +#: ../build/lib/darktable/plugins/introspection_lens.cc:489 msgid "image scale" msgstr "skala obrazu" -#: ../build/lib/darktable/plugins/introspection_lens.cc:439 +#: ../build/lib/darktable/plugins/introspection_lens.cc:346 +#: ../build/lib/darktable/plugins/introspection_lens.cc:505 +msgid "steepness" +msgstr "nachylenie" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:527 msgid "embedded metadata" msgstr "osadzone metadane" -#: ../build/lib/darktable/plugins/introspection_lens.cc:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:528 msgid "Lensfun database" msgstr "baza lensfun" +#: ../build/lib/darktable/plugins/introspection_lens.cc:529 +msgid "only manual vignette" +msgstr "tylko manualne winietowanie" + #. get nice text for bounds #. Side-border hide/show -#: ../build/lib/darktable/plugins/introspection_lens.cc:445 -#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2367 -#: ../src/gui/accelerators.c:2447 ../src/gui/gtk.c:1204 ../src/gui/gtk.c:3136 -#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3709 -#: ../src/iop/rawdenoise.c:893 ../src/libs/collect.c:3066 -#: ../src/libs/filtering.c:1459 ../src/libs/filters/colors.c:157 +#: ../build/lib/darktable/plugins/introspection_lens.cc:534 +#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2592 +#: ../src/gui/accelerators.c:2674 ../src/gui/gtk.c:1282 ../src/gui/gtk.c:3182 +#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3713 +#: ../src/iop/rawdenoise.c:909 ../src/libs/collect.c:3413 +#: ../src/libs/filtering.c:1521 ../src/libs/filters/colors.c:157 #: ../src/libs/filters/colors.c:265 ../src/libs/filters/rating.c:211 msgid "all" msgstr "wszystkie" -#: ../build/lib/darktable/plugins/introspection_lens.cc:446 +#: ../build/lib/darktable/plugins/introspection_lens.cc:535 msgid "distortion & TCA" msgstr "dystorsja i TCA" -#: ../build/lib/darktable/plugins/introspection_lens.cc:447 +#: ../build/lib/darktable/plugins/introspection_lens.cc:536 msgid "distortion & vignetting" msgstr "dystorsja i winietowanie" -#: ../build/lib/darktable/plugins/introspection_lens.cc:448 +#: ../build/lib/darktable/plugins/introspection_lens.cc:537 msgid "TCA & vignetting" msgstr "TCA i winietowanie" -#: ../build/lib/darktable/plugins/introspection_lens.cc:449 +#: ../build/lib/darktable/plugins/introspection_lens.cc:538 msgid "only distortion" msgstr "tylko dystorsja" -#: ../build/lib/darktable/plugins/introspection_lens.cc:450 +#: ../build/lib/darktable/plugins/introspection_lens.cc:539 msgid "only TCA" msgstr "tylko TCA" -#: ../build/lib/darktable/plugins/introspection_lens.cc:451 +#: ../build/lib/darktable/plugins/introspection_lens.cc:540 msgid "only vignetting" msgstr "tylko winietowanie" -#: ../build/lib/darktable/plugins/introspection_lens.cc:455 -#: ../src/libs/modulegroups.c:2318 +#: ../build/lib/darktable/plugins/introspection_lens.cc:544 +#: ../src/libs/modulegroups.c:2302 msgid "correct" msgstr "korekcja" -#: ../build/lib/darktable/plugins/introspection_lens.cc:456 +#: ../build/lib/darktable/plugins/introspection_lens.cc:545 msgid "distort" msgstr "zniekształcenie" -#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:550 msgid "rectilinear" msgstr "prostoliniowa" -#: ../build/lib/darktable/plugins/introspection_lens.cc:462 +#: ../build/lib/darktable/plugins/introspection_lens.cc:551 msgid "fisheye" msgstr "rybie oko" -#: ../build/lib/darktable/plugins/introspection_lens.cc:463 +#: ../build/lib/darktable/plugins/introspection_lens.cc:552 msgid "panoramic" msgstr "panoramiczna" -#: ../build/lib/darktable/plugins/introspection_lens.cc:464 +#: ../build/lib/darktable/plugins/introspection_lens.cc:553 msgid "equirectangular" msgstr "walcowa równoodległościowa" -#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +#: ../build/lib/darktable/plugins/introspection_lens.cc:554 msgid "orthographic" msgstr "ortograficzna" -#: ../build/lib/darktable/plugins/introspection_lens.cc:466 +#: ../build/lib/darktable/plugins/introspection_lens.cc:555 msgid "stereographic" msgstr "stereograficzna" -#: ../build/lib/darktable/plugins/introspection_lens.cc:467 +#: ../build/lib/darktable/plugins/introspection_lens.cc:556 msgid "equisolid angle" msgstr "równopowierzchniowa" -#: ../build/lib/darktable/plugins/introspection_lens.cc:468 +#: ../build/lib/darktable/plugins/introspection_lens.cc:557 msgid "Thoby fisheye" msgstr "rybie oko Thoby" @@ -4263,8 +4424,8 @@ #. move left/right/up/down #: ../build/lib/darktable/plugins/introspection_liquify.c:429 -#: ../src/views/darkroom.c:2282 ../src/views/darkroom.c:2676 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:765 +#: ../src/views/darkroom.c:2121 ../src/views/darkroom.c:2522 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:765 #: ../src/views/lighttable.c:774 ../src/views/lighttable.c:1246 #: ../src/views/lighttable.c:1250 ../src/views/lighttable.c:1254 #: ../src/views/lighttable.c:1258 ../src/views/lighttable.c:1262 @@ -4276,8 +4437,8 @@ msgstr "linia" #: ../build/lib/darktable/plugins/introspection_liquify.c:431 -#: ../src/iop/basecurve.c:2186 ../src/iop/rgbcurve.c:1387 -#: ../src/iop/tonecurve.c:1149 +#: ../src/iop/basecurve.c:2207 ../src/iop/rgbcurve.c:1387 +#: ../src/iop/tonecurve.c:1171 msgid "curve" msgstr "krzywa" @@ -4313,28 +4474,33 @@ msgid "bilateral filter" msgstr "filtr bilateralny" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:76 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:163 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:77 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:164 msgid "application color space" msgstr "przestrzeń kolorów" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 msgid "Adobe RGB" msgstr "Adobe RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 msgid "gamma Rec709 RGB" msgstr "gamma Rec709 RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:209 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:207 +#: ../src/common/colorspaces.c:1486 ../src/common/colorspaces.c:1740 +msgid "linear ProPhoto RGB" +msgstr "liniowy ProPhoto RGB" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 msgid "tetrahedral" msgstr "czworościenna" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:210 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:212 msgid "trilinear" msgstr "trójliniowa" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:213 msgid "pyramid" msgstr "piramidalna" @@ -4355,7 +4521,7 @@ #: ../build/lib/darktable/plugins/introspection_negadoctor.c:144 #: ../build/lib/darktable/plugins/introspection_negadoctor.c:239 -#: ../src/iop/negadoctor.c:992 +#: ../src/iop/negadoctor.c:1011 msgid "paper grade (gamma)" msgstr "gradacja papieru (gamma)" @@ -4370,15 +4536,57 @@ msgstr "korekcja ekspozycji odbitki" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:261 -#: ../src/iop/negadoctor.c:417 +#: ../src/iop/negadoctor.c:431 msgid "black and white film" msgstr "film czarno-biały" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:262 -#: ../src/iop/negadoctor.c:402 +#: ../src/iop/negadoctor.c:416 msgid "color film" msgstr "film kolorowy" +#: ../build/lib/darktable/plugins/introspection_primaries.c:75 +#: ../build/lib/darktable/plugins/introspection_primaries.c:160 +#: ../src/iop/primaries.c:406 +msgid "tint hue" +msgstr "barwa zafarbu" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:81 +#: ../build/lib/darktable/plugins/introspection_primaries.c:164 +#: ../src/iop/primaries.c:413 +msgid "tint purity" +msgstr "czystość barwy zafarbu" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:87 +#: ../build/lib/darktable/plugins/introspection_primaries.c:168 +msgid "red hue" +msgstr "barwa czerwieni" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:93 +#: ../build/lib/darktable/plugins/introspection_primaries.c:172 +msgid "red purity" +msgstr "czystość czerwieni" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:99 +#: ../build/lib/darktable/plugins/introspection_primaries.c:176 +msgid "green hue" +msgstr "barwa zieleni" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:105 +#: ../build/lib/darktable/plugins/introspection_primaries.c:180 +msgid "green purity" +msgstr "czystość zieleni" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:111 +#: ../build/lib/darktable/plugins/introspection_primaries.c:184 +msgid "blue hue" +msgstr "barwa niebieskiego" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:117 +#: ../build/lib/darktable/plugins/introspection_primaries.c:188 +msgid "blue purity" +msgstr "czystość niebieskiego" + #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:85 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:158 msgid "dynamic range" @@ -4391,7 +4599,7 @@ #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:103 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:170 -#: ../src/iop/filmic.c:1526 +#: ../src/iop/filmic.c:1551 msgid "safety factor" msgstr "współczynnik bezpieczeństwa" @@ -4400,7 +4608,7 @@ msgstr "logarytmiczna" #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:185 -#: ../src/iop/profile_gamma.c:625 +#: ../src/iop/profile_gamma.c:639 msgid "gamma" msgstr "gamma" @@ -4438,7 +4646,7 @@ #: ../build/lib/darktable/plugins/introspection_rawprepare.c:106 #: ../build/lib/darktable/plugins/introspection_rawprepare.c:179 -#: ../src/iop/rawprepare.c:946 +#: ../src/iop/rawprepare.c:954 msgid "white point" msgstr "punkt bieli" @@ -4454,9 +4662,9 @@ #. exposure #: ../build/lib/darktable/plugins/introspection_relight.c:43 #: ../build/lib/darktable/plugins/introspection_relight.c:98 -#: ../src/common/collection.c:720 ../src/gui/preferences.c:836 -#: ../src/gui/presets.c:684 ../src/iop/basicadj.c:598 ../src/iop/exposure.c:122 -#: ../src/iop/exposure.c:1117 ../src/libs/metadata_view.c:141 +#: ../src/common/collection.c:633 ../src/gui/preferences.c:834 +#: ../src/gui/presets.c:687 ../src/iop/basicadj.c:628 ../src/iop/exposure.c:122 +#: ../src/iop/exposure.c:1135 ../src/libs/metadata_view.c:143 msgid "exposure" msgstr "ekspozycja" @@ -4467,9 +4675,9 @@ #: ../build/lib/darktable/plugins/introspection_retouch.c:285 #: ../build/lib/darktable/plugins/introspection_retouch.c:426 -#: ../src/iop/basicadj.c:620 ../src/iop/channelmixerrgb.c:4617 -#: ../src/iop/colisa.c:305 ../src/iop/lowpass.c:587 ../src/iop/soften.c:377 -#: ../src/iop/vignette.c:970 ../src/libs/history.c:963 +#: ../src/iop/basicadj.c:650 ../src/iop/channelmixerrgb.c:4685 +#: ../src/iop/colisa.c:299 ../src/iop/lowpass.c:600 ../src/iop/soften.c:372 +#: ../src/iop/vignette.c:1057 ../src/libs/history.c:963 msgid "brightness" msgstr "jasność" @@ -4479,7 +4687,7 @@ msgstr "maks iteracji" #: ../build/lib/darktable/plugins/introspection_retouch.c:444 -#: ../src/libs/metadata_view.c:329 +#: ../src/libs/metadata_view.c:333 msgid "unused" msgstr "nieużywana" @@ -4492,12 +4700,12 @@ msgstr "napraw" #: ../build/lib/darktable/plugins/introspection_retouch.c:447 -#: ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2051 msgid "blur" msgstr "rozmycie" #: ../build/lib/darktable/plugins/introspection_retouch.c:448 -#: ../src/iop/retouch.c:1865 +#: ../src/iop/retouch.c:2049 msgid "fill" msgstr "wypełnianie" @@ -4510,9 +4718,9 @@ msgstr "usuń" #: ../build/lib/darktable/plugins/introspection_retouch.c:458 -#: ../src/gui/presets.c:59 ../src/iop/watermark.c:1298 -#: ../src/libs/colorpicker.c:291 ../src/libs/image.c:612 -#: ../src/libs/modulegroups.c:2317 +#: ../src/gui/presets.c:61 ../src/iop/watermark.c:1346 +#: ../src/libs/colorpicker.c:320 ../src/libs/image.c:683 +#: ../src/libs/modulegroups.c:2301 msgid "color" msgstr "kolorowa" @@ -4548,45 +4756,93 @@ msgid "highlights color adjustment" msgstr "ustawienie koloru w światłach" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:70 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:141 -#: ../src/gui/accelerators.c:85 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:122 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:241 +#: ../src/gui/accelerators.c:101 msgid "skew" msgstr "nachylenie" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:76 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:145 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:128 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:245 msgid "target white" msgstr "wzór bieli" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:82 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:149 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:134 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:249 msgid "target black" msgstr "wzór czerni" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:88 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:153 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:140 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:253 msgid "color processing" msgstr "przetwarzanie koloru" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:94 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:157 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:146 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:257 msgid "preserve hue" msgstr "ochrona odcieni (hue)" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:171 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:152 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:261 +msgid "red attenuation" +msgstr "tłumienie czerwieni" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:158 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:265 +msgid "red rotation" +msgstr "obrót czerwieni" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:164 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:269 +msgid "green attenuation" +msgstr "tłumienie zielei" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:170 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:273 +msgid "green rotation" +msgstr "obrót zieleni" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:176 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:277 +msgid "blue attenuation" +msgstr "tłumienie niebieskiego" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:182 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:281 +msgid "blue rotation" +msgstr "obrót niebieskiego" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:188 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:285 +msgid "recover purity" +msgstr "odzyskaj czystość barwy" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:194 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:289 +msgid "base primaries" +msgstr "Barwy podstawowe" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:303 msgid "per channel" msgstr "na kanał" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:172 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:304 msgid "RGB ratio" msgstr "proporcje czerwony/zielony/niebieski" -#: ../build/lib/darktable/plugins/introspection_temperature.c:66 -#: ../build/lib/darktable/plugins/introspection_temperature.c:121 -#: ../src/iop/temperature.c:1941 -msgid "emerald" -msgstr "szmaragdowy" +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:308 +#: ../src/common/colorspaces.c:1377 ../src/common/colorspaces.c:1734 +msgid "work profile" +msgstr "profil roboczy" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:309 +msgid "Rec2020" +msgstr "Rec2020" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:310 +#: ../src/common/colorspaces.c:1750 +msgid "Display P3" +msgstr "Display P3" #: ../build/lib/darktable/plugins/introspection_tonecurve.c:135 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:232 @@ -4708,13 +4964,13 @@ #: ../build/lib/darktable/plugins/introspection_tonemap.cc:39 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:88 -#: ../src/iop/rgbcurve.c:184 ../src/iop/tonecurve.c:539 +#: ../src/iop/rgbcurve.c:186 ../src/iop/tonecurve.c:560 msgid "contrast compression" msgstr "kompresja kontrastu" #: ../build/lib/darktable/plugins/introspection_vibrance.c:33 #: ../build/lib/darktable/plugins/introspection_vibrance.c:76 -#: ../src/iop/basicadj.c:627 ../src/iop/vibrance.c:67 +#: ../src/iop/basicadj.c:657 ../src/iop/vibrance.c:67 msgid "vibrance" msgstr "ożywienie" @@ -4750,7 +5006,7 @@ #: ../build/lib/darktable/plugins/introspection_vignette.c:146 #: ../build/lib/darktable/plugins/introspection_vignette.c:237 -#: ../src/iop/vignette.c:978 +#: ../src/iop/vignette.c:1066 msgid "shape" msgstr "kształt" @@ -4789,7 +5045,7 @@ #: ../build/lib/darktable/plugins/introspection_watermark.c:323 #: ../src/imageio/format/tiff.c:125 ../src/imageio/format/xcf.c:159 -#: ../src/iop/borders.c:947 +#: ../src/iop/borders.c:960 msgid "image" msgstr "obraz" @@ -4801,12 +5057,6 @@ msgid "smaller border" msgstr "krótszej krawędzi" -#: ../build/lib/darktable/plugins/introspection_watermark.c:326 -#: ../src/libs/export.c:1135 ../src/libs/metadata_view.c:148 -#: ../src/libs/print_settings.c:2541 -msgid "height" -msgstr "wysokość" - #: ../build/lib/darktable/plugins/introspection_watermark.c:327 msgid "advanced options" msgstr "opcje zaawansowan" @@ -4835,23 +5085,23 @@ msgid "marker height" msgstr "wysokość znaku wodnego" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:6 +#: ../build/bin/tools/darktable_authors.h:6 msgid "developers" msgstr "deweloperzy" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:11 +#: ../build/bin/tools/darktable_authors.h:11 msgid "translators" msgstr "tłumacze" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:16 +#: ../build/bin/tools/darktable_authors.h:16 msgid "contributors" msgstr "współautorzy" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:21 +#: ../build/bin/tools/darktable_authors.h:21 msgid "rawspeed contributors" msgstr "współautorzy rawspeed" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:26 +#: ../build/bin/tools/darktable_authors.h:26 msgid "integration contributors" msgstr "współautorzy integracji" @@ -4918,90 +5168,104 @@ msgid "Print your images" msgstr "Drukuj swoje zdjęcia" -#: ../src/bauhaus/bauhaus.c:752 ../src/bauhaus/bauhaus.c:3689 +#: ../src/bauhaus/bauhaus.c:845 ../src/bauhaus/bauhaus.c:3957 msgid "sliders" msgstr "suwaki" -#: ../src/bauhaus/bauhaus.c:753 ../src/bauhaus/bauhaus.c:3694 +#: ../src/bauhaus/bauhaus.c:847 ../src/bauhaus/bauhaus.c:3962 msgid "dropdowns" msgstr "rozwijalne menu" -#: ../src/bauhaus/bauhaus.c:754 ../src/bauhaus/bauhaus.c:3699 +#: ../src/bauhaus/bauhaus.c:849 ../src/bauhaus/bauhaus.c:3967 msgid "buttons" msgstr "przyciski" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button on" msgstr "przycisk włączony" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button off" msgstr "przycisk wyłączony" -#: ../src/bauhaus/bauhaus.c:3406 +#: ../src/bauhaus/bauhaus.c:3624 msgid "button pressed" msgstr "naciśnięcie przycisku" -#: ../src/bauhaus/bauhaus.c:3623 +#: ../src/bauhaus/bauhaus.c:3862 msgid "not that many sliders" msgstr "nie tak wiele suwaków" -#: ../src/bauhaus/bauhaus.c:3633 +#: ../src/bauhaus/bauhaus.c:3876 msgid "not that many dropdowns" msgstr "nie tak wiele list rozwijanych" -#: ../src/bauhaus/bauhaus.c:3648 +#: ../src/bauhaus/bauhaus.c:3895 msgid "not that many buttons" msgstr "nie tak wiele przycisków" -#: ../src/bauhaus/bauhaus.c:3653 ../src/gui/accelerators.c:348 +#: ../src/bauhaus/bauhaus.c:3900 ../src/gui/accelerators.c:389 msgid "value" msgstr "wartość" -#: ../src/bauhaus/bauhaus.c:3654 ../src/bauhaus/bauhaus.c:3660 -#: ../src/gui/accelerators.c:326 +#: ../src/bauhaus/bauhaus.c:3901 ../src/bauhaus/bauhaus.c:3907 +#: ../src/gui/accelerators.c:368 msgid "button" msgstr "przycisk" -#: ../src/bauhaus/bauhaus.c:3655 +#: ../src/bauhaus/bauhaus.c:3902 msgid "force" msgstr "wymuś" -#: ../src/bauhaus/bauhaus.c:3656 ../src/libs/navigation.c:187 -#: ../src/libs/navigation.c:199 +#: ../src/bauhaus/bauhaus.c:3903 ../src/libs/navigation.c:190 +#: ../src/libs/navigation.c:202 msgid "zoom" msgstr "powiększenie" -#: ../src/bauhaus/bauhaus.c:3659 +#: ../src/bauhaus/bauhaus.c:3906 ../src/libs/select.c:40 msgid "selection" msgstr "wybór" -#: ../src/bauhaus/bauhaus.c:3678 +#: ../src/bauhaus/bauhaus.c:3946 msgid "slider" msgstr "suwak" -#: ../src/bauhaus/bauhaus.c:3683 +#: ../src/bauhaus/bauhaus.c:3951 msgid "dropdown" msgstr "przewiń w dół" -#: ../src/chart/main.c:504 ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 ../src/gui/accelerators.c:2278 -#: ../src/gui/accelerators.c:2355 ../src/gui/accelerators.c:2407 -#: ../src/gui/accelerators.c:2435 ../src/gui/accelerators.c:2495 -#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1043 -#: ../src/gui/preferences.c:1082 ../src/gui/presets.c:420 -#: ../src/gui/presets.c:563 ../src/gui/styles_dialog.c:519 -#: ../src/imageio/storage/disk.c:123 ../src/imageio/storage/gallery.c:110 -#: ../src/imageio/storage/latex.c:109 ../src/iop/lut3d.c:1546 -#: ../src/libs/collect.c:408 ../src/libs/copy_history.c:115 -#: ../src/libs/geotagging.c:928 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/styles.c:392 ../src/libs/styles.c:527 -#: ../src/libs/tagging.c:2489 ../src/libs/tagging.c:2525 +#: ../src/chart/main.c:504 ../src/common/database.c:3372 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 ../src/gui/accelerators.c:2497 +#: ../src/gui/accelerators.c:2579 ../src/gui/accelerators.c:2632 +#: ../src/gui/accelerators.c:2661 ../src/gui/accelerators.c:2723 +#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1081 ../src/gui/presets.c:422 +#: ../src/gui/presets.c:565 ../src/gui/styles_dialog.c:526 +#: ../src/imageio/storage/disk.c:198 ../src/imageio/storage/gallery.c:150 +#: ../src/imageio/storage/latex.c:146 ../src/iop/lut3d.c:1560 +#: ../src/libs/collect.c:425 ../src/libs/collect.c:3242 +#: ../src/libs/copy_history.c:115 ../src/libs/export_metadata.c:276 +#: ../src/libs/geotagging.c:929 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1711 +#: ../src/libs/metadata.c:462 ../src/libs/metadata_view.c:1222 +#: ../src/libs/recentcollect.c:228 ../src/libs/modulegroups.c:3466 +#: ../src/libs/styles.c:392 ../src/libs/styles.c:439 ../src/libs/styles.c:529 +#: ../src/libs/styles.c:624 ../src/libs/tagging.c:1488 +#: ../src/libs/tagging.c:1579 ../src/libs/tagging.c:1670 +#: ../src/libs/tagging.c:1806 ../src/libs/tagging.c:2085 +#: ../src/libs/tagging.c:2520 ../src/libs/tagging.c:2556 +#: ../src/libs/tagging.c:3502 msgid "_cancel" msgstr "_anuluj" -#: ../src/chart/main.c:504 ../src/gui/preferences.c:1082 -#: ../src/gui/styles_dialog.c:520 ../src/libs/styles.c:392 +#: ../src/chart/main.c:504 ../src/gui/preferences.c:1081 +#: ../src/gui/styles_dialog.c:527 ../src/libs/collect.c:3243 +#: ../src/libs/export_metadata.c:277 ../src/libs/metadata.c:463 +#: ../src/libs/metadata_view.c:1223 ../src/libs/recentcollect.c:229 +#: ../src/libs/styles.c:392 ../src/libs/tagging.c:1671 +#: ../src/libs/tagging.c:1807 ../src/libs/tagging.c:2086 +#: ../src/libs/tagging.c:3503 msgid "_save" msgstr "zapi_sz" @@ -5015,66 +5279,66 @@ "średnie dE: %.02f\n" "maksymalne dE: %.02f" -#: ../src/cli/main.c:247 +#: ../src/cli/main.c:270 msgid "TODO: sorry, due to API restrictions we currently cannot set the BPP to" msgstr "" "TODO: przepraszamy, ze względu na ograniczenia API obecnie nie możemy " "ustawić rozdzielczości bitowej do" -#: ../src/cli/main.c:259 +#: ../src/cli/main.c:282 msgid "unknown option for --hq" msgstr "nieznana opcja dla --hq" -#: ../src/cli/main.c:275 +#: ../src/cli/main.c:298 msgid "unknown option for --export_masks" msgstr "nieznana opcja dla --export_masks" -#: ../src/cli/main.c:291 +#: ../src/cli/main.c:314 msgid "unknown option for --upscale" msgstr "nieznana opcja dla --upscale" -#: ../src/cli/main.c:316 +#: ../src/cli/main.c:339 msgid "unknown option for --apply-custom-presets" msgstr "nieznana opcja dla --apply-custom-presets" -#: ../src/cli/main.c:327 +#: ../src/cli/main.c:350 msgid "too long ext for --out-ext" msgstr "rozszerzenie zbyt długie dla --out-ext" -#: ../src/cli/main.c:344 +#: ../src/cli/main.c:367 #, c-format msgid "notice: input file or dir '%s' doesn't exist, skipping\n" msgstr "" "uwaga: nieistniejący plik lub katalog wejściowy '%s' został pominięty\n" -#: ../src/cli/main.c:353 +#: ../src/cli/main.c:376 #, c-format msgid "incorrect ICC type for --icc-type: '%s'\n" msgstr "niewłaściwy typ ICC dla --icc-type: '%s'\n" -#: ../src/cli/main.c:369 +#: ../src/cli/main.c:392 #, c-format msgid "notice: ICC file '%s' doesn't exist, skipping\n" msgstr "uwaga: nieistniejący plik ICC '%s' został pominięty\n" -#: ../src/cli/main.c:378 +#: ../src/cli/main.c:401 #, c-format msgid "incorrect ICC intent for --icc-intent: '%s'\n" msgstr "niewłaściwy profil ICC dla --icc-intent: '%s'\n" -#: ../src/cli/main.c:396 +#: ../src/cli/main.c:419 #, c-format msgid "warning: unknown option '%s'\n" msgstr "ostrzeżenie: nieznana opcja '%s'\n" -#: ../src/cli/main.c:454 +#: ../src/cli/main.c:477 #, c-format msgid "error: input file and import opts specified! that's not supported!\n" msgstr "" "błąd: podano plik wejściowy i opcje importu. taka operacja nie jest " "wspierana.\n" -#: ../src/cli/main.c:487 +#: ../src/cli/main.c:510 #, c-format msgid "" "notice: output location is a directory. assuming '%s/$(FILE_NAME).%s' output " @@ -5084,48 +5348,48 @@ "jako szablonu dla wyjścia" #. output file exists or there's output ext specified and it's same as file... -#: ../src/cli/main.c:502 +#: ../src/cli/main.c:525 msgid "output file already exists, it will get renamed" msgstr "plik wyjściowy już istnieje, nazwa zostanie zmieniona" #. one of inputs was a failure, no prob -#: ../src/cli/main.c:532 +#: ../src/cli/main.c:555 #, c-format msgid "error: can't open folder %s" msgstr "błąd: nie można otworzyć katalogu %s" -#: ../src/cli/main.c:549 +#: ../src/cli/main.c:572 #, c-format msgid "error: can't open file %s" msgstr "błąd: nie można otworzyć pliku %s" -#: ../src/cli/main.c:566 +#: ../src/cli/main.c:589 #, c-format msgid "no images to export, aborting\n" msgstr "nie wybrano zdjęć do eksportu, przerywam\n" -#: ../src/cli/main.c:583 +#: ../src/cli/main.c:606 #, c-format msgid "error: can't open XMP file %s" msgstr "błąd: nie można otworzyć pliku XMP %s" -#: ../src/cli/main.c:604 +#: ../src/cli/main.c:627 msgid "empty history stack" msgstr "wyczyść historię" #. too long ext, no point in wasting time -#: ../src/cli/main.c:616 +#: ../src/cli/main.c:639 #, c-format msgid "too long output file extension: %s\n" msgstr "zbyt długie rozszerzenia pliku wyjściowego: %s\n" #. no ext or empty ext, no point in wasting time -#: ../src/cli/main.c:624 +#: ../src/cli/main.c:647 #, c-format msgid "no output file extension given\n" msgstr "nie podano rozszerzenia pliku wyjściowego\n" -#: ../src/cli/main.c:663 +#: ../src/cli/main.c:692 msgid "" "cannot find disk storage module. please check your installation, something " "seems to be broken." @@ -5133,18 +5397,18 @@ "nie udało się odnaleźć modułu przechowywania. proszę sprawdzić instalację , " "coś nie działa właściwie." -#: ../src/cli/main.c:673 +#: ../src/cli/main.c:702 msgid "failed to get parameters from storage module, aborting export ..." msgstr "" "nie udało się pobrać parametrów z modułu przechowywania, przerywanie " "eksportowania ..." -#: ../src/cli/main.c:689 +#: ../src/cli/main.c:718 #, c-format msgid "unknown extension '.%s'" msgstr "nieznane rozszerzenie „.%s”" -#: ../src/cli/main.c:699 +#: ../src/cli/main.c:728 msgid "failed to get parameters from format module, aborting export ..." msgstr "" "nie udało się pobrać parametrów z modułu formatu, przerywanie " @@ -5193,193 +5457,199 @@ "aparat `%s', port `%s' musi być zamontowany ponownie\n" "upewnij się, że masz do niego dostęp i że nie jest zamontowany gdzie indziej" -#: ../src/common/collection.c:673 +#: ../src/common/collection.c:586 msgid "too much time to update aspect ratio for the collection" msgstr "zbyt dużo czasu, by uaktualnić proporcje boków kolekcji" -#: ../src/common/collection.c:688 +#: ../src/common/collection.c:601 msgid "film roll" msgstr "rolka filmu" -#: ../src/common/collection.c:690 +#: ../src/common/collection.c:603 msgid "folder" msgstr "folder" -#: ../src/common/collection.c:692 +#: ../src/common/collection.c:605 msgid "camera" msgstr "aparat" -#: ../src/common/collection.c:694 ../src/libs/export_metadata.c:189 -#: ../src/libs/tagging.c:3281 +#: ../src/common/collection.c:607 ../src/libs/export_metadata.c:176 +#: ../src/libs/tagging.c:3312 msgid "tag" msgstr "etykieta" -#: ../src/common/collection.c:696 +#: ../src/common/collection.c:609 msgid "capture date" msgstr "czas zdjęcia" -#: ../src/common/collection.c:698 ../src/libs/filtering.c:61 +#: ../src/common/collection.c:611 ../src/libs/filtering.c:61 msgid "capture time" msgstr "czas zdjęcia" -#: ../src/common/collection.c:700 ../src/libs/filtering.c:62 +#: ../src/common/collection.c:613 ../src/libs/filtering.c:62 msgid "import time" msgstr "czas importu" -#: ../src/common/collection.c:702 ../src/libs/filtering.c:63 +#: ../src/common/collection.c:615 ../src/libs/filtering.c:63 msgid "modification time" msgstr "czas modyfikacji" -#: ../src/common/collection.c:704 ../src/libs/filtering.c:64 +#: ../src/common/collection.c:617 ../src/libs/filtering.c:64 msgid "export time" msgstr "czas eksportu" -#: ../src/common/collection.c:706 ../src/libs/filtering.c:65 +#: ../src/common/collection.c:619 ../src/libs/filtering.c:65 msgid "print time" msgstr "czas wydruku" -#: ../src/common/collection.c:708 ../src/libs/collect.c:3222 -#: ../src/libs/filtering.c:2163 ../src/libs/filtering.c:2183 +#: ../src/common/collection.c:621 ../src/libs/collect.c:3586 +#: ../src/libs/filtering.c:2237 ../src/libs/filtering.c:2257 #: ../src/libs/filters/history.c:153 ../src/libs/history.c:92 msgid "history" msgstr "historia" -#: ../src/common/collection.c:710 ../src/common/colorlabels.c:342 -#: ../src/develop/lightroom.c:1550 ../src/dtgtk/thumbnail.c:1560 +#: ../src/common/collection.c:623 ../src/common/colorlabels.c:341 +#: ../src/develop/lightroom.c:1607 ../src/dtgtk/thumbnail.c:1548 #: ../src/libs/filtering.c:68 ../src/libs/filters/colors.c:301 #: ../src/libs/filters/colors.c:312 ../src/libs/tools/colorlabels.c:93 msgid "color label" msgstr "kolorowe etykiety" #. iso -#: ../src/common/collection.c:716 ../src/gui/preferences.c:832 -#: ../src/gui/presets.c:666 ../src/libs/camera.c:558 -#: ../src/libs/metadata_view.c:145 +#: ../src/common/collection.c:629 ../src/gui/preferences.c:830 +#: ../src/gui/presets.c:669 ../src/libs/camera.c:558 +#: ../src/libs/metadata_view.c:149 msgid "ISO" msgstr "ISO" #. aperture -#: ../src/common/collection.c:718 ../src/gui/preferences.c:840 -#: ../src/gui/presets.c:701 ../src/libs/camera.c:545 ../src/libs/camera.c:547 -#: ../src/libs/metadata_view.c:140 +#: ../src/common/collection.c:631 ../src/gui/preferences.c:838 +#: ../src/gui/presets.c:704 ../src/libs/camera.c:545 ../src/libs/camera.c:547 +#: ../src/libs/metadata_view.c:142 msgid "aperture" msgstr "przysłona" -#: ../src/common/collection.c:724 ../src/libs/filtering.c:57 -#: ../src/libs/filters/filename.c:364 ../src/libs/metadata_view.c:126 +#: ../src/common/collection.c:637 ../src/libs/filtering.c:57 +#: ../src/libs/filters/filename.c:369 ../src/libs/metadata_view.c:128 msgid "filename" msgstr "nazwa pliku" -#: ../src/common/collection.c:726 ../src/develop/lightroom.c:1541 +#: ../src/common/collection.c:639 ../src/develop/lightroom.c:1598 #: ../src/libs/geotagging.c:141 msgid "geotagging" msgstr "geotagging" -#: ../src/common/collection.c:728 ../src/libs/filters/grouping.c:167 +#: ../src/common/collection.c:641 ../src/libs/filters/grouping.c:167 #: ../src/libs/tools/global_toolbox.c:394 msgid "grouping" msgstr "grupowanie" -#: ../src/common/collection.c:730 ../src/dtgtk/thumbnail.c:1575 -#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:129 -#: ../src/libs/metadata_view.c:336 +#: ../src/common/collection.c:643 ../src/dtgtk/thumbnail.c:1563 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:340 msgid "local copy" msgstr "kopia lokalna" -#: ../src/common/collection.c:732 ../src/gui/preferences.c:808 +#: ../src/common/collection.c:645 ../src/gui/preferences.c:806 msgid "module" msgstr "moduł" -#: ../src/common/collection.c:734 ../src/gui/hist_dialog.c:346 -#: ../src/gui/styles_dialog.c:722 ../src/gui/styles_dialog.c:771 +#: ../src/common/collection.c:647 ../src/gui/hist_dialog.c:346 +#: ../src/gui/styles_dialog.c:734 ../src/gui/styles_dialog.c:783 #: ../src/libs/filters/module_order.c:161 ../src/libs/ioporder.c:39 msgid "module order" msgstr "kolejność modułów" -#: ../src/common/collection.c:736 +#: ../src/common/collection.c:649 msgid "range rating" msgstr "ocena zasięgu" -#: ../src/common/collection.c:738 ../src/common/ratings.c:322 -#: ../src/develop/lightroom.c:1525 ../src/libs/filtering.c:67 +#: ../src/common/collection.c:651 ../src/common/ratings.c:321 +#: ../src/develop/lightroom.c:1582 ../src/libs/filtering.c:67 #: ../src/libs/tools/ratings.c:110 msgid "rating" msgstr "ocena" -#: ../src/common/collection.c:740 +#: ../src/common/collection.c:653 msgid "search" msgstr "szukaj" -#: ../src/common/collection.c:1509 ../src/common/colorlabels.c:335 -#: ../src/develop/lightroom.c:836 ../src/gui/guides.c:732 -#: ../src/iop/colorzones.c:2265 ../src/iop/temperature.c:1925 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:261 +#: ../src/common/collection.c:1376 ../src/common/colorlabels.c:334 +#: ../src/develop/lightroom.c:889 ../src/gui/guides.c:732 +#: ../src/iop/colorzones.c:2501 ../src/iop/temperature.c:1902 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:261 msgid "yellow" msgstr "żółty" -#: ../src/common/collection.c:1515 ../src/common/color_vocabulary.c:339 -#: ../src/common/colorlabels.c:338 ../src/iop/colorzones.c:2269 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:264 +#: ../src/common/collection.c:1382 ../src/common/color_vocabulary.c:339 +#: ../src/common/colorlabels.c:337 ../src/iop/colorzones.c:2505 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:264 msgid "purple" msgstr "fioletowy" -#: ../src/common/collection.c:1532 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1400 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "auto applied" msgstr "zastosowane automatycznie" -#: ../src/common/collection.c:1536 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1406 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "altered" msgstr "modyfikowane" -#: ../src/common/collection.c:1553 ../src/common/collection.c:1649 -#: ../src/libs/collect.c:1166 ../src/libs/collect.c:1330 -#: ../src/libs/collect.c:1354 ../src/libs/collect.c:1473 -#: ../src/libs/collect.c:2432 +#: ../src/common/collection.c:1424 ../src/common/collection.c:1535 +#: ../src/libs/collect.c:1242 ../src/libs/collect.c:1426 +#: ../src/libs/collect.c:1452 ../src/libs/collect.c:1592 +#: ../src/libs/collect.c:2662 msgid "not tagged" msgstr "bez etykiet" -#: ../src/common/collection.c:1554 ../src/libs/collect.c:1354 +#: ../src/common/collection.c:1425 ../src/libs/collect.c:1452 #: ../src/libs/map_locations.c:742 msgid "tagged" msgstr "oznaczone" -#: ../src/common/collection.c:1555 +#: ../src/common/collection.c:1426 msgid "tagged*" msgstr "oznaczone*" #. local copy -#: ../src/common/collection.c:1588 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1460 ../src/libs/collect.c:1883 #: ../src/libs/filters/local_copy.c:38 msgid "not copied locally" msgstr "nie skopiowany lokalnie" -#: ../src/common/collection.c:1592 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1465 ../src/libs/collect.c:1882 #: ../src/libs/filters/local_copy.c:38 msgid "copied locally" msgstr "skopiowane lokalnie" -#: ../src/common/collection.c:1974 ../src/libs/collect.c:1879 +#. if its undefined +#: ../src/common/collection.c:1507 ../src/common/collection.c:1619 +#: ../src/libs/collect.c:2209 ../src/libs/collect.c:2210 +msgid "unnamed" +msgstr "nienazwany" + +#: ../src/common/collection.c:1905 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:147 ../src/libs/filters/grouping.c:170 msgid "group leaders" msgstr "przewodnicy grupy" -#: ../src/common/collection.c:1978 ../src/libs/collect.c:1879 +#: ../src/common/collection.c:1909 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:150 ../src/libs/filters/grouping.c:170 msgid "group followers" msgstr "członkowie grupy" -#: ../src/common/collection.c:2126 ../src/libs/collect.c:1959 +#: ../src/common/collection.c:2066 ../src/libs/collect.c:2100 msgid "not defined" msgstr "niezdefiniowane" -#: ../src/common/collection.c:2575 +#: ../src/common/collection.c:2521 #, c-format msgid "<b>%d</b> image (#<b>%d</b>) selected of <b>%d</b>" msgstr "<b>%d</b> obraz (#<b>%d</b>) wybrany z <b>%d</b>" -#: ../src/common/collection.c:2582 +#: ../src/common/collection.c:2528 #, c-format msgid "<b>%d</b> image selected of <b>%d</b>" msgid_plural "<b>%d</b> images selected of <b>%d</b>" @@ -5387,10 +5657,10 @@ msgstr[1] "<b>%d</b> obrazów wybranych z <b>%d</b>" msgstr[2] "<b>%d</b> obrazów wybranych z <b>%d</b>" -#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2324 -#: ../src/develop/blend_gui.c:2372 ../src/gui/guides.c:729 -#: ../src/iop/channelmixerrgb.c:4620 ../src/iop/levels.c:671 -#: ../src/iop/rgblevels.c:937 ../src/iop/rgblevels.c:1032 +#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2340 +#: ../src/develop/blend_gui.c:2388 ../src/gui/guides.c:729 +#: ../src/iop/channelmixerrgb.c:4688 ../src/iop/levels.c:687 +#: ../src/iop/rgblevels.c:969 ../src/iop/rgblevels.c:1083 msgid "gray" msgstr "szary" @@ -5599,12 +5869,12 @@ msgstr "ciemny cyjan" #: ../src/common/color_vocabulary.c:297 ../src/common/color_vocabulary.c:317 -#: ../src/iop/colorzones.c:2267 +#: ../src/iop/colorzones.c:2503 msgid "aqua" msgstr "cyjan" #: ../src/common/color_vocabulary.c:298 ../src/gui/guides.c:733 -#: ../src/iop/temperature.c:1923 +#: ../src/iop/temperature.c:1900 msgid "cyan" msgstr "cyjan" @@ -5670,7 +5940,7 @@ msgstr "ciemna magenta" #: ../src/common/color_vocabulary.c:341 ../src/gui/guides.c:734 -#: ../src/iop/colorzones.c:2270 ../src/iop/temperature.c:1921 +#: ../src/iop/colorzones.c:2506 ../src/iop/temperature.c:1898 msgid "magenta" msgstr "magenta" @@ -5682,90 +5952,85 @@ msgid "color not found" msgstr "kolor nieznaleziony" -#: ../src/common/colorlabels.c:310 +#: ../src/common/colorlabels.c:309 #, c-format msgid "colorlabels set to %s" msgstr "kolorowe etykiety ustawione na %s" -#: ../src/common/colorlabels.c:312 +#: ../src/common/colorlabels.c:311 msgid "all colorlabels removed" msgstr "wszystkie kolorowe etykiety usunięte" -#: ../src/common/colorlabels.c:333 ../src/gui/accelerators.c:170 -#: ../src/libs/image.c:592 +#: ../src/common/colorlabels.c:332 ../src/gui/accelerators.c:188 +#: ../src/libs/image.c:660 msgid "clear" msgstr "wyczyść" -#. init the category profile with NULL profile, the actual profile must be retrieved dynamically by the caller -#: ../src/common/colorspaces.c:1229 ../src/common/colorspaces.c:1518 -msgid "work profile" -msgstr "profil roboczy" - -#: ../src/common/colorspaces.c:1232 ../src/common/colorspaces.c:1514 -#: ../src/iop/colorout.c:885 +#: ../src/common/colorspaces.c:1382 ../src/common/colorspaces.c:1730 +#: ../src/iop/colorout.c:901 msgid "export profile" msgstr "profil eksportu" -#: ../src/common/colorspaces.c:1236 ../src/common/colorspaces.c:1516 -#: ../src/views/darkroom.c:2542 +#: ../src/common/colorspaces.c:1387 ../src/common/colorspaces.c:1732 +#: ../src/views/darkroom.c:2383 msgid "softproof profile" msgstr "profil korekty ekranowej" -#: ../src/common/colorspaces.c:1242 ../src/common/colorspaces.c:1498 +#: ../src/common/colorspaces.c:1397 ../src/common/colorspaces.c:1714 msgid "system display profile" msgstr "systemowy profil monitora" -#: ../src/common/colorspaces.c:1245 ../src/common/colorspaces.c:1520 +#: ../src/common/colorspaces.c:1402 ../src/common/colorspaces.c:1736 msgid "system display profile (second window)" msgstr "profil monitora (drugie okno)" -#: ../src/common/colorspaces.c:1255 +#: ../src/common/colorspaces.c:1415 msgid "sRGB (web-safe)" msgstr "sRGB (dobry do Internetu)" -#: ../src/common/colorspaces.c:1269 ../src/common/colorspaces.c:1522 +#: ../src/common/colorspaces.c:1435 ../src/common/colorspaces.c:1738 msgid "Rec709 RGB" msgstr "Rec709 RGB" -#: ../src/common/colorspaces.c:1279 +#: ../src/common/colorspaces.c:1450 msgid "PQ Rec2020 RGB" msgstr "PQ Rec2020 RGB" -#: ../src/common/colorspaces.c:1284 +#: ../src/common/colorspaces.c:1458 msgid "HLG Rec2020 RGB" msgstr "HLG Rec2020 RGB" -#: ../src/common/colorspaces.c:1289 +#: ../src/common/colorspaces.c:1465 msgid "PQ P3 RGB" msgstr "PQ P3 RGB" -#: ../src/common/colorspaces.c:1294 +#: ../src/common/colorspaces.c:1471 msgid "HLG P3 RGB" msgstr "HLG P3 RGB" -#: ../src/common/colorspaces.c:1299 ../src/common/colorspaces.c:1524 -msgid "linear ProPhoto RGB" -msgstr "liniowy ProPhoto RGB" +#: ../src/common/colorspaces.c:1478 +msgid "Display P3 RGB" +msgstr "Display P3 RGB" -#: ../src/common/colorspaces.c:1304 ../src/common/colorspaces.c:1492 +#: ../src/common/colorspaces.c:1493 ../src/common/colorspaces.c:1708 msgid "linear XYZ" msgstr "liniowy XYZ" -#: ../src/common/colorspaces.c:1308 ../src/common/colorspaces.c:1494 -#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2000 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:267 +#: ../src/common/colorspaces.c:1500 ../src/common/colorspaces.c:1710 +#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2016 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:293 msgid "Lab" msgstr "Lab" -#: ../src/common/colorspaces.c:1313 ../src/common/colorspaces.c:1496 +#: ../src/common/colorspaces.c:1508 ../src/common/colorspaces.c:1712 msgid "linear infrared BGR" msgstr "liniowy podczerwony BGR" -#: ../src/common/colorspaces.c:1317 +#: ../src/common/colorspaces.c:1513 msgid "BRG (for testing)" msgstr "BRG (do testów)" -#: ../src/common/colorspaces.c:1409 +#: ../src/common/colorspaces.c:1619 #, c-format msgid "" "profile `%s' not usable as histogram profile. it has been replaced by sRGB!" @@ -5773,47 +6038,47 @@ "profil `%s' nie może być użyty jako profil histogramu. zastąpiony profilem " "sRGB!" -#: ../src/common/colorspaces.c:1500 +#: ../src/common/colorspaces.c:1716 msgid "embedded ICC profile" msgstr "osadzony profil ICC" -#: ../src/common/colorspaces.c:1502 +#: ../src/common/colorspaces.c:1718 msgid "embedded matrix" msgstr "osadzona macierz" -#: ../src/common/colorspaces.c:1504 +#: ../src/common/colorspaces.c:1720 msgid "standard color matrix" msgstr "standardowa macierz kolorów" -#: ../src/common/colorspaces.c:1506 +#: ../src/common/colorspaces.c:1722 msgid "enhanced color matrix" msgstr "poprawiona macierz kolorów" -#: ../src/common/colorspaces.c:1508 +#: ../src/common/colorspaces.c:1724 msgid "vendor color matrix" msgstr "macierz kolorów producenta" -#: ../src/common/colorspaces.c:1510 +#: ../src/common/colorspaces.c:1726 msgid "alternate color matrix" msgstr "alternatywna macierz kolorów" -#: ../src/common/colorspaces.c:1512 +#: ../src/common/colorspaces.c:1728 msgid "BRG (experimental)" msgstr "BRG (eksperymentalna)" -#: ../src/common/colorspaces.c:1526 +#: ../src/common/colorspaces.c:1742 msgid "PQ Rec2020" msgstr "PQ Rec2020" -#: ../src/common/colorspaces.c:1528 +#: ../src/common/colorspaces.c:1744 msgid "HLG Rec2020" msgstr "HLG REC2020" -#: ../src/common/colorspaces.c:1530 +#: ../src/common/colorspaces.c:1746 msgid "PQ P3" msgstr "PQ P3" -#: ../src/common/colorspaces.c:1532 +#: ../src/common/colorspaces.c:1748 msgid "HLG P3" msgstr "HLG P3" @@ -5841,40 +6106,40 @@ msgid "printing `%s' on `%s'" msgstr "drukowanie „%s” na „%s”" -#: ../src/common/darktable.c:250 +#: ../src/common/darktable.c:375 #, c-format msgid "found strange path `%s'" msgstr "znaleziono dziwną ścieżkę „%s”" -#: ../src/common/darktable.c:265 +#: ../src/common/darktable.c:390 #, c-format msgid "error loading directory `%s'" msgstr "błąd przy wczytywaniu katalogu „%s”" -#: ../src/common/darktable.c:289 +#: ../src/common/darktable.c:414 #, c-format msgid "file `%s' has unknown format!" msgstr "format pliku „%s” jest nieznany!" -#: ../src/common/darktable.c:302 ../src/control/jobs/control_jobs.c:2118 -#: ../src/control/jobs/control_jobs.c:2177 +#: ../src/common/darktable.c:427 ../src/control/jobs/control_jobs.c:2121 +#: ../src/control/jobs/control_jobs.c:2180 #, c-format msgid "error loading file `%s'" msgstr "błąd przy wczytywaniu pliku „%s”" -#: ../src/common/darktable.c:1509 +#: ../src/common/darktable.c:1650 msgid "configuration information" msgstr "konfiguracja informacji" -#: ../src/common/darktable.c:1511 -msgid "show this information again" -msgstr "pokaż tę informację ponownie" - -#: ../src/common/darktable.c:1511 -msgid "understood" -msgstr "zrozumiane" +#: ../src/common/darktable.c:1652 +msgid "_show this information again" +msgstr "_pokaż tę informację ponownie" + +#: ../src/common/darktable.c:1652 +msgid "_understood" +msgstr "_zrozumiane" -#: ../src/common/darktable.c:1968 +#: ../src/common/darktable.c:2106 msgid "" "the RCD demosaicer has been defined as default instead of PPG because of " "better quality and performance." @@ -5882,11 +6147,11 @@ "demozaikowanie RCD jest domyślne, zamiast PPG, z powodu wyższej jakości i " "wydajności" -#: ../src/common/darktable.c:1970 +#: ../src/common/darktable.c:2108 msgid "see preferences/darkroom/demosaicing for zoomed out darkroom mode" msgstr "patrz ustawienia/ciemnia/demozaikowanie dla oddalonego widoku ciemni" -#: ../src/common/darktable.c:1976 +#: ../src/common/darktable.c:2114 msgid "" "the user interface and the underlying internals for tuning darktable " "performance have changed." @@ -5894,7 +6159,7 @@ "interfejs użytkownika i mechanizmy wewnętrzne dla optymalizacji wydajności " "darktable zostały zmienione" -#: ../src/common/darktable.c:1978 +#: ../src/common/darktable.c:2116 msgid "" "you won't find headroom and friends any longer, instead in preferences/" "processing use:" @@ -5902,15 +6167,15 @@ "Nie znajdziesz już zapasu i przyjaciół, zamiast tego w preferencjach/" "przetwarzaniu użyj:" -#: ../src/common/darktable.c:1980 +#: ../src/common/darktable.c:2118 msgid "1) darktable resources" msgstr "1) zasoby darktable" -#: ../src/common/darktable.c:1982 +#: ../src/common/darktable.c:2120 msgid "2) tune OpenCL performance" msgstr "2) dopasuj wydajność OpenCL" -#: ../src/common/darktable.c:1989 +#: ../src/common/darktable.c:2127 msgid "" "some global config parameters relevant for OpenCL performance are not used " "any longer." @@ -5918,34 +6183,35 @@ "pewne globalne wartości konfiguracyjne istotne dla wydajności OpenCL nie są " "już używane." -#: ../src/common/darktable.c:1991 +#: ../src/common/darktable.c:2129 msgid "" -"instead you will find 'per device' data in 'cl_device_v4_canonical-name'. " +"instead you will find 'per device' data in 'cldevice_v5_canonical-name'. " "content is:" msgstr "" -"zamiast tego zobaczysz 'per device' w 'cl_device_v4_canonical-name'. " +"zamiast tego zobaczysz 'per device' w 'cl_device_v5_canonical-name'. " "zawartość to:" -#: ../src/common/darktable.c:1993 ../src/common/darktable.c:2012 +#: ../src/common/darktable.c:2131 ../src/common/darktable.c:2150 +#: ../src/common/darktable.c:2165 msgid "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" msgstr "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" -#: ../src/common/darktable.c:1995 ../src/common/darktable.c:2014 +#: ../src/common/darktable.c:2133 ../src/common/darktable.c:2152 msgid "you may tune as before except 'magic'" msgstr "możesz regulować tak jak poprzednio, z wyjątkiem \"magia\"" -#: ../src/common/darktable.c:2001 +#: ../src/common/darktable.c:2139 msgid "" "your OpenCL compiler settings for all devices have been reset to default." msgstr "" "Twoje ustawienia OpenCL zostały przywrócone do domyślnych dla wszystkich " "urządzeń" -#: ../src/common/darktable.c:2008 +#: ../src/common/darktable.c:2146 msgid "" "OpenCL global config parameters 'per device' data has been recreated with an " "updated name." @@ -5953,12 +6219,12 @@ "globalne parametry konfiguracji OpenCL \"per device\" zostały odtworzone ze " "zaktualizowaną nazwą." -#: ../src/common/darktable.c:2010 +#: ../src/common/darktable.c:2148 ../src/common/darktable.c:2163 msgid "" -"you will find 'per device' data in 'cl_device_v5_canonical-name'. content is:" -msgstr "zobaczysz 'per device' w 'cl_device_v5_canonical-name'. zawartość to:" +"you will find 'per device' data in 'cldevice_v5_canonical-name'. content is:" +msgstr "zobaczysz 'per device' w 'cldevice_v5_canonical-name'. zawartość to:" -#: ../src/common/darktable.c:2016 +#: ../src/common/darktable.c:2154 msgid "" "If you're using device names in 'opencl_device_priority' you should update " "them to the new names." @@ -5966,7 +6232,23 @@ "jeśli używasz nazw urządzeń w 'opencl_device_priority' powinieneś " "zaktualizować do nowych nazw." -#: ../src/common/database.c:2756 +#: ../src/common/darktable.c:2161 +msgid "" +"OpenCL 'per device' config data have been automatically extended by 'unified-" +"fraction'." +msgstr "" +"konfiguracja OpenCL 'pod urządzenie' automatycznie rozszerzona o " +"'zunifikowany-ułamek'." + +#: ../src/common/darktable.c:2172 +msgid "" +"OpenCL 'per device' compiler settings might have been updated.\n" +"\n" +msgstr "" +"konfiguracja kompilatora OpenCL 'pod urządzenie' mogła zostać " +"zaktualizowana\n" + +#: ../src/common/database.c:3350 #, c-format msgid "" "\n" @@ -6021,30 +6303,19 @@ " inaczej ryzykujesz poważne błędy w bazie danych.</i>\n" #. clang-format on -#: ../src/common/database.c:2777 +#: ../src/common/database.c:3371 msgid "error starting darktable" msgstr "błąd uruchamiania darktable" -#: ../src/common/database.c:2778 ../src/libs/collect.c:2915 -#: ../src/libs/export_metadata.c:288 ../src/libs/import.c:1702 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:227 ../src/libs/modulegroups.c:3464 -#: ../src/libs/styles.c:438 ../src/libs/styles.c:621 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3471 -msgid "cancel" -msgstr "anuluj" - -#: ../src/common/database.c:2778 -msgid "delete database lock files" -msgstr "skasuj blokadę bazy danych" +#: ../src/common/database.c:3372 +msgid "_delete database lock files" +msgstr "_skasuj blokadę bazy danych" -#: ../src/common/database.c:2784 +#: ../src/common/database.c:3378 msgid "are you sure?" msgstr "jesteś pewien?" -#: ../src/common/database.c:2785 +#: ../src/common/database.c:3379 msgid "" "\n" "do you really want to delete the lock files?\n" @@ -6052,20 +6323,19 @@ "\n" "na pewno skasować blokadę bazy danych?\n" -#: ../src/common/database.c:2785 ../src/common/variables.c:703 -#: ../src/develop/imageop_gui.c:210 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 -msgid "yes" -msgstr "tak" +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2597 +msgid "_no" +msgstr "_nie" -#: ../src/common/database.c:2801 ../src/libs/export_metadata.c:164 -#: ../src/libs/geotagging.c:811 +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2596 +msgid "_yes" +msgstr "_tak" + +#: ../src/common/database.c:3395 msgid "done" msgstr "gotowe" -#: ../src/common/database.c:2802 +#: ../src/common/database.c:3396 msgid "" "\n" "successfully deleted the lock files.\n" @@ -6075,17 +6345,17 @@ "pomyślnie usunięto pliki blokad.\n" "teraz możesz ponownie uruchomić darktable.\n" -#. the button to close the popup -#: ../src/common/database.c:2803 ../src/common/database.c:2810 -#: ../src/libs/filters/filename.c:452 -msgid "ok" -msgstr "ok" +#: ../src/common/database.c:3397 ../src/common/database.c:3404 +#: ../src/gui/accelerators.c:2580 ../src/gui/accelerators.c:2662 +#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:566 +msgid "_ok" +msgstr "_ok" -#: ../src/common/database.c:2806 +#: ../src/common/database.c:3400 msgid "error" msgstr "błąd" -#: ../src/common/database.c:2807 +#: ../src/common/database.c:3401 #, c-format msgid "" "\n" @@ -6099,7 +6369,7 @@ "być może trzeba ręcznie usunąć <i>data.db.lock</i> i <i>library.db.lock</i>\n" "w folderze <a href=\"file:///%s\">%s</a>.\n" -#: ../src/common/database.c:2924 +#: ../src/common/database.c:3518 #, c-format msgid "" "the database lock file contains a pid that seems to be alive in your system: " @@ -6107,18 +6377,43 @@ msgstr "" "blokada bazy danych zawiera pid, który wydaje się być obecny w systemie: %d" -#: ../src/common/database.c:2931 +#: ../src/common/database.c:3525 #, c-format msgid "the database lock file seems to be empty" msgstr "plik blokady bazy danych wydaje się być pusty" -#: ../src/common/database.c:2941 +#: ../src/common/database.c:3535 #, c-format msgid "error opening the database lock file for reading: %s" msgstr "błąd otwierania do odczytu pliku blokady bazy danych: %s" +#: ../src/common/database.c:3605 +#, c-format +msgid "" +"the database schema version of\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"is too new for this build of darktable (this means the database was created " +"or upgraded by a newer darktable version)\n" +msgstr "" +"schemat bazy danych dla\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"jest zbyt nowy dla tej kompilacji darktable (oznacza to, że baza danych " +"została stworzona, lub zaktualizowana przez nowszą wersję darktable)\n" + +#: ../src/common/database.c:3612 +msgid "darktable - too new db version" +msgstr "darktable - zbyt nowa wersja bazy danych" + +#: ../src/common/database.c:3613 +msgid "_quit darktable" +msgstr "_ opuść darktable" + #. the database has to be upgraded, let's ask user -#: ../src/common/database.c:2978 +#: ../src/common/database.c:3628 #, c-format msgid "" "the database schema has to be upgraded for\n" @@ -6137,21 +6432,21 @@ "\n" "czy chcesz to zrobić teraz, czy wyjść, aby zrobić kopię zapasową?\n" -#: ../src/common/database.c:2986 +#: ../src/common/database.c:3636 msgid "darktable - schema migration" msgstr "darktable - migracja schematu" -#: ../src/common/database.c:2987 ../src/common/database.c:3306 -#: ../src/common/database.c:3324 ../src/common/database.c:3491 -#: ../src/common/database.c:3509 -msgid "close darktable" -msgstr "zamknij darktable" - -#: ../src/common/database.c:2987 -msgid "upgrade database" -msgstr "uaktualnienie bazy danych" +#: ../src/common/database.c:3637 ../src/common/database.c:3959 +#: ../src/common/database.c:3974 ../src/common/database.c:4142 +#: ../src/common/database.c:4157 +msgid "_close darktable" +msgstr "_zamknij darktable" + +#: ../src/common/database.c:3637 +msgid "_upgrade database" +msgstr "_uaktualnienie bazy danych" -#: ../src/common/database.c:3286 ../src/common/database.c:3471 +#: ../src/common/database.c:3939 ../src/common/database.c:4122 #, c-format msgid "" "quick_check said:\n" @@ -6160,21 +6455,21 @@ "quick_check powiedział:\n" "%s \n" -#: ../src/common/database.c:3303 ../src/common/database.c:3321 -#: ../src/common/database.c:3488 ../src/common/database.c:3506 +#: ../src/common/database.c:3956 ../src/common/database.c:3971 +#: ../src/common/database.c:4139 ../src/common/database.c:4154 msgid "darktable - error opening database" msgstr "darktable - błąd otwierania bazy danych" -#: ../src/common/database.c:3308 ../src/common/database.c:3493 -msgid "attempt restore" -msgstr "podejmij próbę odzyskania" - -#: ../src/common/database.c:3310 ../src/common/database.c:3326 -#: ../src/common/database.c:3495 ../src/common/database.c:3511 -msgid "delete database" -msgstr "skasuj bazę danych" +#: ../src/common/database.c:3960 ../src/common/database.c:4143 +msgid "_attempt restore" +msgstr "_podejmij próbę odzyskania" + +#: ../src/common/database.c:3961 ../src/common/database.c:3975 +#: ../src/common/database.c:4144 ../src/common/database.c:4158 +msgid "_delete database" +msgstr "_skasuj bazę danych" -#: ../src/common/database.c:3314 ../src/common/database.c:3499 +#: ../src/common/database.c:3964 ../src/common/database.c:4147 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup, attempt an automatic restore\n" @@ -6186,7 +6481,7 @@ "z ostatniego backupu, czy skasować uszkodzoną bazę i zacząć\n" "z nową, pustą?" -#: ../src/common/database.c:3330 ../src/common/database.c:3515 +#: ../src/common/database.c:3978 ../src/common/database.c:4161 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup or delete the corrupted database\n" @@ -6196,7 +6491,7 @@ "bazę danych z backupu, czy skasować uszkodzoną bazę i zacząć\n" "z nową, pustą?" -#: ../src/common/database.c:3337 ../src/common/database.c:3520 +#: ../src/common/database.c:3985 ../src/common/database.c:4166 #, c-format msgid "" "an error has occurred while trying to open the database from\n" @@ -6221,12 +6516,12 @@ "błąd alokacji pamięci dla niezależnedo od ekspozycji filtra prowadzonego, " "sprawdź ustawienia RAM" -#: ../src/common/exif.cc:5200 +#: ../src/common/exif.cc:5482 #, c-format msgid "cannot read XMP file '%s': '%s'" msgstr "nie można odczytać pliku xmp \"%s\": \"%s\"" -#: ../src/common/exif.cc:5258 +#: ../src/common/exif.cc:5540 #, c-format msgid "cannot write XMP file '%s': '%s'" msgstr "nie można zapisać pliku xmp \"%s\": \"%s\"" @@ -6235,42 +6530,42 @@ msgid "fast guided filter failed to allocate memory, check your RAM settings" msgstr "błąd alokacji pamięci dla filtra prowadzonego, sprawdź ustawienia RAM" -#: ../src/common/film.c:345 +#: ../src/common/film.c:356 msgid "do you want to remove this empty directory?" msgid_plural "do you want to remove these empty directories?" msgstr[0] "na pewno chcesz usunąć ten pusty katalog?" msgstr[1] "na pewno chcesz usunąć te puste katalogi?" msgstr[2] "na pewno chcesz usunąć te puste katalogi?" -#: ../src/common/film.c:352 +#: ../src/common/film.c:363 msgid "remove empty directory?" msgid_plural "remove empty directories?" msgstr[0] "usunąć pusty katalog?" msgstr[1] "usunąć puste katalogi?" msgstr[2] "usunąć puste katalogi?" -#: ../src/common/film.c:371 ../src/gui/preferences.c:816 -#: ../src/gui/styles_dialog.c:548 ../src/libs/geotagging.c:829 -#: ../src/libs/import.c:1551 +#: ../src/common/film.c:383 ../src/gui/preferences.c:814 +#: ../src/gui/styles_dialog.c:556 ../src/libs/geotagging.c:830 +#: ../src/libs/import.c:1560 msgid "name" msgstr "nazwa" -#: ../src/common/film.c:477 +#: ../src/common/film.c:492 msgid "" "cannot remove film roll having local copies with non accessible originals" msgstr "" "nie można usunąć rolki filmu z lokalnymi kopiami, gdy nie są dostępne " "oryginały" -#: ../src/common/history.c:840 +#: ../src/common/history.c:876 msgid "you need to copy history from an image before you paste it onto another" msgstr "przed wklejeniem historii do zdjęcia trzeba ją skopiować z innego" -#: ../src/common/image.c:325 +#: ../src/common/image.c:333 msgid "orphaned image" msgstr "osierocone zdjęcie" -#: ../src/common/image.c:620 +#: ../src/common/image.c:629 #, c-format msgid "geo-location undone for %d image" msgid_plural "geo-location undone for %d images" @@ -6278,7 +6573,7 @@ msgstr[1] "geolokalizacja cofnięta dla %d obrazów" msgstr[2] "geolokalizacja wycofana z %d obrazów" -#: ../src/common/image.c:622 +#: ../src/common/image.c:631 #, c-format msgid "geo-location re-applied to %d image" msgid_plural "geo-location re-applied to %d images" @@ -6286,7 +6581,7 @@ msgstr[1] "geolokacja ponownie zaaplikowana do %d obrazów" msgstr[2] "geolokacja zaaplikowana do %d obrazów" -#: ../src/common/image.c:645 +#: ../src/common/image.c:654 #, c-format msgid "date/time undone for %d image" msgid_plural "date/time undone for %d images" @@ -6294,7 +6589,7 @@ msgstr[1] "przesunięcie czasu wycofane z %d zdjęć" msgstr[2] "przesunięcie czasu wycofane z %d zdjęć" -#: ../src/common/image.c:647 +#: ../src/common/image.c:656 #, c-format msgid "date/time re-applied to %d image" msgid_plural "date/time re-applied to %d images" @@ -6302,49 +6597,49 @@ msgstr[1] "dodano ponownie przesunięcie czasu do %d zdjęć" msgstr[2] "dodane przesunięcie czasu do %d zdjęć" -#: ../src/common/image.c:2188 +#: ../src/common/image.c:2260 #, c-format msgid "cannot access local copy `%s'" msgstr "nie można uzyskać dostępu do lokalnej kopii „%s”" -#: ../src/common/image.c:2195 +#: ../src/common/image.c:2267 #, c-format msgid "cannot write local copy `%s'" msgstr "nie można zapisać lokalnej kopii „%s”" -#: ../src/common/image.c:2202 +#: ../src/common/image.c:2274 #, c-format msgid "error moving local copy `%s' -> `%s'" msgstr "błąd przenoszenia lokalnej kopii „%s” -> „%s”" -#: ../src/common/image.c:2219 +#: ../src/common/image.c:2291 #, c-format msgid "error moving `%s': file not found" msgstr "błąd przy przenoszeniu „%s”: plik nie został odnaleziony" -#: ../src/common/image.c:2229 +#: ../src/common/image.c:2301 #, c-format msgid "error moving `%s' -> `%s': file exists" msgstr "błąd przy przenoszeniu „%s” -> „%s”: plik istnieje" -#: ../src/common/image.c:2233 +#: ../src/common/image.c:2305 #, c-format msgid "error moving `%s' -> `%s'" msgstr "błąd przenoszenia „%s” -> „%s”" -#: ../src/common/image.c:2562 +#: ../src/common/image.c:2634 msgid "cannot create local copy when the original file is not accessible." msgstr "nie można utworzyć lokalnej kopii, gdy oryginał nie jest dostępny." -#: ../src/common/image.c:2576 +#: ../src/common/image.c:2648 msgid "cannot create local copy." msgstr "nie można utworzyć lokalnej kopii." -#: ../src/common/image.c:2656 ../src/control/jobs/control_jobs.c:777 +#: ../src/common/image.c:2728 ../src/control/jobs/control_jobs.c:777 msgid "cannot remove local copy when the original file is not accessible." msgstr "nie można usunąć lokalnej kopii, gdy oryginał nie jest dostępny." -#: ../src/common/image.c:2821 +#: ../src/common/image.c:2901 #, c-format msgid "%d local copy has been synchronized" msgid_plural "%d local copies have been synchronized" @@ -6352,18 +6647,18 @@ msgstr[1] "%d lokalne kopie zostały zsynchronizowane" msgstr[2] "%d lokalnych kopii zostało zsynchronizowanych" -#: ../src/common/image.c:3022 +#: ../src/common/image.c:3102 msgid "<b>WARNING</b>: camera is missing samples!" msgstr "<b>OSTRZEŻENIE</b> : brakuje sampli z danego aparatu!" -#: ../src/common/image.c:3023 +#: ../src/common/image.c:3103 msgid "" "You must provide samples in <a href='https://raw.pixls.us/'>https://raw." "pixls.us/</a>" msgstr "" "Prześlij sample na <a href='https://raw.pixls.us/'>https://raw.pixls.us/</a>" -#: ../src/common/image.c:3024 +#: ../src/common/image.c:3104 #, c-format msgid "" "for `%s' `%s'\n" @@ -6372,82 +6667,83 @@ "dla `%s' `%s'\n" "tak wielu formatów/stopni kompresji/głębi bitowych jak to możliwe" -#: ../src/common/image.c:3027 +#: ../src/common/image.c:3107 msgid "or the <b>RAW won't be readable</b> in next version." msgstr "" "w przeciwnym razie <b>RAW nie będzie obsługiwany</b> w kolejnej wersji." -#: ../src/common/image.h:209 ../src/common/ratings.c:284 -#: ../src/libs/history.c:843 ../src/libs/snapshots.c:779 +#: ../src/common/image.h:217 ../src/common/ratings.c:283 +#: ../src/imageio/format/avif.c:114 ../src/libs/history.c:843 +#: ../src/libs/snapshots.c:837 msgid "unknown" msgstr "nieznany" #. EMPTY_FIELD -#: ../src/common/image.h:210 -msgid "tiff" -msgstr "tiff" - -#: ../src/common/image.h:211 -msgid "png" -msgstr "png" - -#: ../src/common/image.h:212 ../src/imageio/format/j2k.c:652 -msgid "j2k" -msgstr "j2k" - -#: ../src/common/image.h:213 -msgid "jpeg" -msgstr "jpeg" - -#: ../src/common/image.h:214 -msgid "exr" -msgstr "exr" - -#: ../src/common/image.h:215 -msgid "rgbe" -msgstr "rgbe" - -#: ../src/common/image.h:216 -msgid "pfm" -msgstr "pfm" - -#: ../src/common/image.h:217 -msgid "GraphicsMagick" -msgstr "GraphicsMagick" +#: ../src/common/image.h:218 ../src/imageio/format/tiff.c:831 +msgid "TIFF" +msgstr "TIFF" -#: ../src/common/image.h:218 -msgid "rawspeed" -msgstr "rawspeed" - -#: ../src/common/image.h:219 -msgid "netpnm" -msgstr "netpnm" +#: ../src/common/image.h:219 ../src/imageio/format/png.c:599 +msgid "PNG" +msgstr "PNG" #: ../src/common/image.h:220 -msgid "avif" -msgstr "avif" +msgid "JPEG 2000" +msgstr "JPEG 2000" #: ../src/common/image.h:221 -msgid "ImageMagick" -msgstr "ImageMagick" +msgid "JPEG" +msgstr "JPEG" #: ../src/common/image.h:222 -msgid "heif" -msgstr "heif" +msgid "EXR" +msgstr "EXR" #: ../src/common/image.h:223 -msgid "libraw" -msgstr "libraw" +msgid "RGBE" +msgstr "RGBE" -#: ../src/common/image.h:224 -msgid "webp" -msgstr "webp" +#: ../src/common/image.h:224 ../src/imageio/format/pfm.c:120 +msgid "PFM" +msgstr "PFM" #: ../src/common/image.h:225 -msgid "jpeg xl" -msgstr "jpeg xl" +msgid "GraphicsMagick" +msgstr "GraphicsMagick" #: ../src/common/image.h:226 +msgid "RawSpeed" +msgstr "RawSpeed" + +#: ../src/common/image.h:227 +msgid "Netpbm" +msgstr "Netpbm" + +#: ../src/common/image.h:228 ../src/imageio/format/avif.c:728 +msgid "AVIF" +msgstr "AVIF" + +#: ../src/common/image.h:229 +msgid "ImageMagick" +msgstr "ImageMagick" + +#: ../src/common/image.h:230 +msgid "HEIF" +msgstr "HEIF" + +#: ../src/common/image.h:231 +msgid "LibRaw" +msgstr "LibRaw" + +#: ../src/common/image.h:232 ../src/imageio/format/webp.c:380 +msgid "WebP" +msgstr "WebP" + +#: ../src/common/image.h:233 ../src/imageio/format/jxl.c:482 +msgid "JPEG XL" +msgstr "JPEG XL" + +#: ../src/common/image.h:234 msgid "QOI" msgstr "QOI" @@ -6480,7 +6776,7 @@ msgstr "" "wymagana ścieżka sesji nie odnaleziona. czy urządzenie jest zamontowane?" -#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:197 +#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:195 msgid "legacy" msgstr "przestarzały" @@ -6492,7 +6788,7 @@ msgid "v3.0 JPEG" msgstr "v3.0 JPEG" -#: ../src/common/iop_profile.c:1205 +#: ../src/common/iop_profile.c:1207 #, c-format msgid "" "darktable loads %s from\n" @@ -6516,13 +6812,13 @@ #. title #: ../src/common/metadata.c:48 ../src/imageio/format/pdf.c:574 -#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:169 -#: ../src/imageio/storage/gallery.c:170 ../src/imageio/storage/latex.c:169 -#: ../src/imageio/storage/piwigo.c:1058 ../src/libs/filtering.c:69 +#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:219 +#: ../src/imageio/storage/gallery.c:222 ../src/imageio/storage/latex.c:206 +#: ../src/imageio/storage/piwigo.c:1091 ../src/libs/filtering.c:69 msgid "title" msgstr "tytuł" -#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:552 +#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:563 #: ../src/libs/filtering.c:70 msgid "description" msgstr "opis" @@ -6540,11 +6836,11 @@ msgstr "nazwa wersji" #: ../src/common/metadata.c:53 ../src/libs/live_view.c:319 -#: ../src/libs/metadata_view.c:124 +#: ../src/libs/metadata_view.c:126 msgid "image id" msgstr "id obrazu" -#: ../src/common/mipmap_cache.c:1065 ../src/imageio/imageio.c:787 +#: ../src/common/mipmap_cache.c:1070 ../src/imageio/imageio.c:799 #, c-format msgid "image `%s' is not available!" msgstr "zdjęcie „%s” jest niedostępny!" @@ -6558,7 +6854,43 @@ msgid "noiseprofile file `%s' is not valid" msgstr "plik „%s” z profilem szumu nie jest poprawny" -#: ../src/common/opencl.c:1376 +#: ../src/common/opencl.c:1165 +msgid "no working OpenCL library found" +msgstr "nie odnaleziono działającej biblioteki OpenCL" + +#: ../src/common/opencl.c:1185 +msgid "" +"platform detection failed. some possible causes:\n" +" - OpenCL ICD (ocl-icd) missing,\n" +" - previous OpenCL errors leading to blocked devices,\n" +" - power management problems,\n" +" - buggy drivers,\n" +" - no OpenCL driver installed." +msgstr "" +"Wykrywanie platformy sprzętowej zawiodło. możliwe powody:\n" +"- brakujący OpenCL ICD (ocl-icd)\n" +"-poprzedzające błędy OpenCL skutkujące zablokowaniem urządzeń,\n" +"-problemy z zarządzaniem energii\n" +"-błędy w sterownikach,\n" +"-brak zainstalowanego sterownika OpenCL" + +#: ../src/common/opencl.c:1277 +msgid "no devices found for unknown platform" +msgstr "nie odnalziono urządzeń dla nieznanej platformy" + +#: ../src/common/opencl.c:1323 +msgid "not enough memory for OpenCL devices" +msgstr "pamięć niewystarczająca dla urządzeń OpenCL" + +#: ../src/common/opencl.c:1358 +msgid "no OpenCL devices found" +msgstr "nie znaleziono urządzeń z OpenCL" + +#: ../src/common/opencl.c:1401 +msgid "no suitable OpenCL devices found" +msgstr "nie znaleziono obsługiwanych urządzeń OpenCL" + +#: ../src/common/opencl.c:1422 #, c-format msgid "" "OpenCL initializing problem:\n" @@ -6567,36 +6899,23 @@ "Problem z uruchomieniem OpenCL:\n" "%s" -#: ../src/common/opencl.c:1439 -msgid "" -"due to a slow GPU hardware acceleration using OpenCL has been deactivated" +#: ../src/common/opencl.c:1454 +msgid "OpenCL scheduling profile set to default, setup has changed" msgstr "" -"z powodu wolnej karty graficznej akceleracja przez opencl została wyłączona" +"profil szeregowania OpenCL ustawiony na domyślny, konfiguracja została " +"zmieniona" -#: ../src/common/opencl.c:1449 -msgid "" -"multiple GPUs detected - OpenCL scheduling profile has been set accordingly" -msgstr "" -"wykryto kilka kart graficznych – profil szeregowania opencl został ustawiony " -"odpowiednio" - -#: ../src/common/opencl.c:1462 -msgid "" -"very fast GPU detected - OpenCL scheduling profile has been set accordingly" -msgstr "" -"wykryto bardzo szybką kartę graficzną – profil szeregowania opencl ustawiony " -"odpowiednio" - -#: ../src/common/opencl.c:1471 -msgid "OpenCL scheduling profile set to default" -msgstr "profil szeregowania OpenCL ustawiony na domyślny" +#: ../src/common/opencl.c:2283 +#, c-format +msgid "building OpenCL program %s for %s" +msgstr "budowanie programu OpenCL %s dla %s" -#: ../src/common/pdf.h:88 ../src/iop/lens.cc:3441 +#: ../src/common/pdf.h:88 ../src/iop/lens.cc:4071 #: ../src/libs/filters/focal.c:74 ../src/libs/print_settings.c:81 msgid "mm" msgstr "mm" -#: ../src/common/pdf.h:89 ../src/libs/export.c:520 ../src/libs/export.c:1145 +#: ../src/common/pdf.h:89 ../src/libs/export.c:555 ../src/libs/export.c:1241 #: ../src/libs/print_settings.c:81 msgid "cm" msgstr "cm" @@ -6609,7 +6928,7 @@ msgid "\"" msgstr "\"" -#: ../src/common/pdf.h:104 ../src/iop/borders.c:958 +#: ../src/common/pdf.h:104 ../src/iop/borders.c:971 msgid "A4" msgstr "A4" @@ -6649,66 +6968,65 @@ msgid "no images selected to apply rating" msgstr "nie wybrano zdjęć, aby dodać oceny" -#: ../src/common/ratings.c:275 ../src/libs/metadata_view.c:351 +#: ../src/common/ratings.c:274 ../src/libs/metadata_view.c:355 msgid "image rejected" msgstr "zdjęcie odrzucone" -#: ../src/common/ratings.c:277 +#: ../src/common/ratings.c:276 msgid "image rated to 0 star" msgstr "zdjęcie ma 0 gwiazdek" -#: ../src/common/ratings.c:279 +#: ../src/common/ratings.c:278 #, c-format msgid "image rated to %s" msgstr "zdjęcie ocenione na %s" -#: ../src/common/ratings.c:306 ../src/libs/select.c:39 -#: ../src/views/lighttable.c:766 +#: ../src/common/ratings.c:305 ../src/views/lighttable.c:766 msgid "select" msgstr "wybór" -#: ../src/common/ratings.c:307 +#: ../src/common/ratings.c:306 msgid "upgrade" msgstr "uaktualnij" -#: ../src/common/ratings.c:308 +#: ../src/common/ratings.c:307 msgid "downgrade" msgstr "degradacja" -#: ../src/common/ratings.c:312 +#: ../src/common/ratings.c:311 msgid "zero" msgstr "zero" -#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:277 +#: ../src/common/ratings.c:312 ../src/libs/filters/rating_range.c:304 msgid "one" msgstr "jeden" -#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:278 +#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:305 msgid "two" msgstr "dwa" -#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:279 +#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:306 msgid "three" msgstr "wątki" -#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:280 +#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:307 msgid "four" msgstr "cztery" -#: ../src/common/ratings.c:317 ../src/libs/filters/rating_range.c:281 +#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:308 msgid "five" msgstr "pięć" -#: ../src/common/ratings.c:318 +#: ../src/common/ratings.c:317 msgid "reject" msgstr "odrzuć" -#: ../src/common/styles.c:244 +#: ../src/common/styles.c:243 #, c-format msgid "style with name '%s' already exists" msgstr "styl o nazwie „%s” już istnieje" -#: ../src/common/styles.c:270 ../src/common/styles.c:1776 +#: ../src/common/styles.c:270 ../src/common/styles.c:1783 #: ../src/libs/styles.c:54 msgid "styles" msgstr "style" @@ -6718,58 +7036,58 @@ msgid "style named '%s' successfully created" msgstr "utworzenie stylu o nazwie „%s” zakończone powodzeniem" -#: ../src/common/styles.c:689 ../src/common/styles.c:719 -#: ../src/common/styles.c:759 ../src/dtgtk/culling.c:1097 +#: ../src/common/styles.c:688 ../src/common/styles.c:718 +#: ../src/common/styles.c:758 ../src/dtgtk/culling.c:1066 msgid "no image selected!" msgstr "nie wybrano zdjęć!" -#: ../src/common/styles.c:693 +#: ../src/common/styles.c:692 #, c-format msgid "style %s successfully applied!" msgstr "styl %s zaaplikowany!" -#: ../src/common/styles.c:709 +#: ../src/common/styles.c:708 msgid "no images nor styles selected!" msgstr "nie wybrano żadnych zdjęć ani stylów!" -#: ../src/common/styles.c:714 +#: ../src/common/styles.c:713 msgid "no styles selected!" msgstr "nie wybrano stylów!" -#: ../src/common/styles.c:744 +#: ../src/common/styles.c:743 msgid "style successfully applied!" msgid_plural "styles successfully applied!" msgstr[0] "styl zastosowany!" msgstr[1] "style zastosowane!" msgstr[2] "style zastosowane!" -#: ../src/common/styles.c:840 +#: ../src/common/styles.c:838 #, c-format msgid "module `%s' version mismatch: %d != %d" msgstr "moduł „%s” niedopasowanie wersji: %d != %d" -#: ../src/common/styles.c:1124 +#: ../src/common/styles.c:1125 #, c-format msgid "applied style `%s' on current image" msgstr "zastosowano styl „%s” na obecnym zdjęciu" -#: ../src/common/styles.c:1378 +#: ../src/common/styles.c:1383 #, c-format msgid "failed to overwrite style file for %s" msgstr "nie udało się nadpisać pliku stylu dla %s" -#: ../src/common/styles.c:1384 +#: ../src/common/styles.c:1389 #, c-format msgid "style file for %s exists" msgstr "plik stylu dla %s już istnieje" -#: ../src/common/styles.c:1667 +#: ../src/common/styles.c:1674 #, c-format msgid "style %s was successfully imported" msgstr "import stylu %s zakończony powodzeniem" #. Failed to open file, clean up. -#: ../src/common/styles.c:1711 +#: ../src/common/styles.c:1718 #, c-format msgid "could not read file `%s'" msgstr "błąd odczytu pliku `%s'" @@ -6782,10 +7100,18 @@ msgid "below sea level" msgstr "poniżej poziomu morza" -#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:880 +#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:907 msgid "m" msgstr "m" +#: ../src/common/variables.c:712 ../src/develop/imageop_gui.c:210 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "yes" +msgstr "tak" + #. Column 1 - "make" of the camera. #. * Column 2 - "model" (use the "make" and "model" as provided by DCRaw). #. * Column 3 - WB name. @@ -6798,7 +7124,7 @@ #. * #. * WB name is standardized to one of the following: #. "Sunlight" and other variation should be switched to this: -#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:323 +#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:320 msgid "daylight" msgstr "światło dzienne" @@ -6898,7 +7224,7 @@ msgid "underwater" msgstr "pod wodą" -#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2447 +#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2286 msgid "black & white" msgstr "czarno-białe" @@ -6918,85 +7244,85 @@ msgid "auto WB" msgstr "automatyczny balans bieli" -#: ../src/control/control.c:66 ../src/gui/accelerators.c:138 -#: ../src/views/darkroom.c:2162 +#: ../src/control/control.c:69 ../src/gui/accelerators.c:156 +#: ../src/views/darkroom.c:2029 msgid "hold" msgstr "próg" -#: ../src/control/control.c:102 ../src/control/control.c:205 +#: ../src/control/control.c:108 ../src/control/control.c:214 msgid "modifiers" msgstr "modyfikatory" -#: ../src/control/control.c:111 +#: ../src/control/control.c:117 msgctxt "accel" msgid "global" msgstr "ogólne" -#: ../src/control/control.c:118 +#: ../src/control/control.c:124 msgctxt "accel" msgid "views" msgstr "widoki" -#: ../src/control/control.c:125 +#: ../src/control/control.c:131 msgctxt "accel" msgid "thumbtable" msgstr "miniatury" -#: ../src/control/control.c:132 +#: ../src/control/control.c:138 msgctxt "accel" msgid "utility modules" msgstr "moduły eksploatacyjne" -#: ../src/control/control.c:139 +#: ../src/control/control.c:145 msgctxt "accel" msgid "format" msgstr "format" -#: ../src/control/control.c:146 +#: ../src/control/control.c:152 msgctxt "accel" msgid "storage" msgstr "miejsca danych" -#: ../src/control/control.c:153 +#: ../src/control/control.c:159 msgctxt "accel" msgid "processing modules" msgstr "moduły" -#: ../src/control/control.c:160 +#: ../src/control/control.c:166 msgctxt "accel" msgid "<blending>" msgstr "<mieszanie>" -#: ../src/control/control.c:167 +#: ../src/control/control.c:173 msgctxt "accel" msgid "Lua scripts" msgstr "skrypty Lua" -#: ../src/control/control.c:174 +#: ../src/control/control.c:180 msgctxt "accel" msgid "fallbacks" msgstr "działanie alternatywne" -#: ../src/control/control.c:183 +#: ../src/control/control.c:189 msgctxt "accel" msgid "<focused>" msgstr "<skupiony>" -#: ../src/control/control.c:202 +#: ../src/control/control.c:209 msgid "show accels window" msgstr "pokaż okno skrótów" -#: ../src/control/control.c:363 +#: ../src/control/control.c:371 msgid "working..." msgstr "pracuje..." -#: ../src/control/crawler.c:425 +#: ../src/control/crawler.c:418 #, c-format msgid "ERROR: %s NOT synced XMP → DB" msgstr "BŁĄD: %s NIE zsynchronizowany XMP → DB" -#: ../src/control/crawler.c:426 ../src/control/crawler.c:492 -#: ../src/control/crawler.c:561 +#: ../src/control/crawler.c:419 ../src/control/crawler.c:485 +#: ../src/control/crawler.c:554 msgid "" "ERROR: cannot write the database. the destination may be full, offline or " "read-only." @@ -7004,18 +7330,18 @@ "BŁĄD: brak możliwości zapisu do bazy. Miejsce docelowe może być pełne, " "offline lub tylko do odczytu." -#: ../src/control/crawler.c:433 +#: ../src/control/crawler.c:426 #, c-format msgid "SUCCESS: %s synced XMP → DB" msgstr "SUKCES: %s zsynchronizowany XMP → DB" -#: ../src/control/crawler.c:455 +#: ../src/control/crawler.c:448 #, c-format msgid "ERROR: %s NOT synced DB → XMP" msgstr "BŁĄD: %s NIE zsynchronizowany DB → XMP" -#: ../src/control/crawler.c:457 ../src/control/crawler.c:516 -#: ../src/control/crawler.c:582 +#: ../src/control/crawler.c:450 ../src/control/crawler.c:509 +#: ../src/control/crawler.c:575 #, c-format msgid "" "ERROR: cannot write %s \n" @@ -7024,129 +7350,133 @@ "BŁĄD: brak możliwości zapisu %s.\n" "miejsce docelowe może być pełne, offline lub tylko do odczytu." -#: ../src/control/crawler.c:463 +#: ../src/control/crawler.c:456 #, c-format msgid "SUCCESS: %s synced DB → XMP" msgstr "SUKCES: %s zsynchronizowany DB → XMP" -#: ../src/control/crawler.c:489 +#: ../src/control/crawler.c:482 #, c-format msgid "ERROR: %s NOT synced new (XMP) → old (DB)" msgstr "BŁĄD: %s NIE zsynchronizowany nowy (XMP) → stara (DB)" -#: ../src/control/crawler.c:499 +#: ../src/control/crawler.c:492 #, c-format msgid "SUCCESS: %s synced new (XMP) → old (DB)" msgstr "SUKCES: %s zsynchronizowany nowe (XMP) → stare (DB)" -#: ../src/control/crawler.c:513 +#: ../src/control/crawler.c:506 #, c-format msgid "ERROR: %s NOT synced new (DB) → old (XMP)" msgstr "BŁĄD: %s NIE zsynchronizowany nowa (DB) → stary (XMP)" -#: ../src/control/crawler.c:521 +#: ../src/control/crawler.c:514 #, c-format msgid "SUCCESS: %s synced new (DB) → old (XMP)" msgstr "SUKCES: %s zsynchronizowano nowe (DB) → stare (XMP)" -#: ../src/control/crawler.c:530 ../src/control/crawler.c:598 +#: ../src/control/crawler.c:523 ../src/control/crawler.c:591 #, c-format msgid "EXCEPTION: %s has inconsistent timestamps" msgstr "WYJĄTEK: %s zawiera niespójne znaczniki czasu" -#: ../src/control/crawler.c:558 +#: ../src/control/crawler.c:551 #, c-format msgid "ERROR: %s NOT synced old (XMP) → new (DB)" msgstr "BŁĄD: %s NIE zsynchronizowany stara (DB) → nowy (XMP)" -#: ../src/control/crawler.c:567 +#: ../src/control/crawler.c:560 #, c-format msgid "SUCCESS: %s synced old (XMP) → new (DB)" msgstr "SUKCES: %s zsynchronizowany nowe (XMP) → stare (DB)" -#: ../src/control/crawler.c:579 +#: ../src/control/crawler.c:572 #, c-format msgid "ERROR: %s NOT synced old (DB) → new (XMP)" msgstr "BŁĄD: %s NIE zsynchronizowany stara (DB) → nowy (XMP)" -#: ../src/control/crawler.c:588 +#: ../src/control/crawler.c:581 #, c-format msgid "SUCCESS: %s synced old (DB) → new (XMP)" msgstr "SUKCES: %s zsynchronizowany nowe (DB) → stare (XMP)" -#: ../src/control/crawler.c:670 +#: ../src/control/crawler.c:663 #, c-format msgid "%id %02dh %02dm %02ds" msgstr "%id %02dg %02dm %02ds" -#: ../src/control/crawler.c:740 ../src/imageio/storage/disk.c:168 -#: ../src/imageio/storage/gallery.c:154 ../src/imageio/storage/latex.c:153 -#: ../src/imageio/storage/latex.c:171 +#: ../src/control/crawler.c:716 +msgid "XMP" +msgstr "XMP" + +#: ../src/control/crawler.c:733 ../src/imageio/storage/disk.c:250 +#: ../src/imageio/storage/gallery.c:202 ../src/imageio/storage/latex.c:190 +#: ../src/imageio/storage/latex.c:208 msgid "path" msgstr "ścieżka" -#: ../src/control/crawler.c:749 +#: ../src/control/crawler.c:742 msgid "XMP timestamp" msgstr "znacznik czasu XMP" -#: ../src/control/crawler.c:754 +#: ../src/control/crawler.c:747 msgid "database timestamp" msgstr "znacznik czasu bazy danych" -#: ../src/control/crawler.c:759 +#: ../src/control/crawler.c:752 msgid "newest" msgstr "najnowsza" -#: ../src/control/crawler.c:765 +#: ../src/control/crawler.c:758 msgid "time difference" msgstr "różnica czasu" -#: ../src/control/crawler.c:777 +#: ../src/control/crawler.c:770 msgid "updated XMP sidecar files found" msgstr "znaleziono zaktualizowany plik poboczny XMP" -#: ../src/control/crawler.c:778 +#: ../src/control/crawler.c:771 msgid "_close" msgstr "_zamknij" #. setup selection accelerators #. action-box -#: ../src/control/crawler.c:793 ../src/dtgtk/thumbtable.c:2578 -#: ../src/libs/import.c:1722 ../src/libs/select.c:135 +#: ../src/control/crawler.c:786 ../src/dtgtk/thumbtable.c:2755 +#: ../src/libs/import.c:1732 ../src/libs/select.c:136 msgid "select all" msgstr "wybierz wszystko" -#: ../src/control/crawler.c:794 ../src/dtgtk/thumbtable.c:2580 -#: ../src/libs/import.c:1726 ../src/libs/select.c:139 +#: ../src/control/crawler.c:787 ../src/dtgtk/thumbtable.c:2757 +#: ../src/libs/import.c:1736 ../src/libs/select.c:140 msgid "select none" msgstr "wyczyść wybór" -#: ../src/control/crawler.c:795 ../src/dtgtk/thumbtable.c:2582 -#: ../src/libs/select.c:143 +#: ../src/control/crawler.c:788 ../src/dtgtk/thumbtable.c:2759 +#: ../src/libs/select.c:144 msgid "invert selection" msgstr "odwróć wybór" -#: ../src/control/crawler.c:807 +#: ../src/control/crawler.c:800 msgid "on the selection:" msgstr "wybrane:" -#: ../src/control/crawler.c:808 +#: ../src/control/crawler.c:801 msgid "keep the XMP edit" msgstr "zachowaj wersję z XMP" -#: ../src/control/crawler.c:809 +#: ../src/control/crawler.c:802 msgid "keep the database edit" msgstr "zachowaj wersję z bazy" -#: ../src/control/crawler.c:810 +#: ../src/control/crawler.c:803 msgid "keep the newest edit" msgstr "zachowaj najnowszą wersję" -#: ../src/control/crawler.c:811 +#: ../src/control/crawler.c:804 msgid "keep the oldest edit" msgstr "zachowaj najstarszą wersję" -#: ../src/control/crawler.c:836 +#: ../src/control/crawler.c:829 msgid "synchronization log" msgstr "log synchronizacji" @@ -7178,6 +7508,10 @@ msgid "starting to import images from camera" msgstr "rozpoczęcie importu zdjęć z aparatu" +#: ../src/control/jobs/camera_jobs.c:302 +msgid "failed to import images from camera." +msgstr "import zdjęć z aparatu nie powiódł się" + #: ../src/control/jobs/camera_jobs.c:309 #, c-format msgid "importing %d image from camera" @@ -7292,7 +7626,8 @@ msgid "_remove from library" msgstr "_usuń z bazy danych" -#: ../src/control/jobs/control_jobs.c:884 +#: ../src/control/jobs/control_jobs.c:884 ../src/libs/styles.c:440 +#: ../src/libs/styles.c:625 msgid "_skip" msgstr "_pomiń" @@ -7397,42 +7732,42 @@ msgid "exporting %d / %d to %s" msgstr "eksportowanie %d / %d do %s" -#: ../src/control/jobs/control_jobs.c:1459 ../src/views/darkroom.c:800 +#: ../src/control/jobs/control_jobs.c:1451 ../src/views/darkroom.c:721 #: ../src/views/print.c:369 #, c-format msgid "image `%s' is currently unavailable" msgstr "zdjęcie „%s” jest obecnie niedostępny" -#: ../src/control/jobs/control_jobs.c:1551 +#: ../src/control/jobs/control_jobs.c:1554 msgid "merge HDR image" msgstr "połącz zdjęcie HDR" -#: ../src/control/jobs/control_jobs.c:1565 +#: ../src/control/jobs/control_jobs.c:1568 msgid "duplicate images" msgstr "zduplikuj zdjęcie" -#: ../src/control/jobs/control_jobs.c:1571 +#: ../src/control/jobs/control_jobs.c:1574 msgid "flip images" msgstr "odbij zdjęcia" -#: ../src/control/jobs/control_jobs.c:1578 +#: ../src/control/jobs/control_jobs.c:1581 msgid "set monochrome images" msgstr "oznacz obraz jako monochromatyczny" #. get all selected images now, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1585 +#: ../src/control/jobs/control_jobs.c:1588 msgid "remove images" msgstr "usuń zdjęcia" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove image?" msgstr "usunąć zdjęcie?" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove images?" msgstr "usunąć zdjęcia?" -#: ../src/control/jobs/control_jobs.c:1599 +#: ../src/control/jobs/control_jobs.c:1602 #, c-format msgid "" "do you really want to remove %d image from darktable\n" @@ -7451,21 +7786,21 @@ "(bez usuwania z dysku)?" #. first get all selected images, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1614 -#: ../src/control/jobs/control_jobs.c:1647 +#: ../src/control/jobs/control_jobs.c:1617 +#: ../src/control/jobs/control_jobs.c:1650 msgid "delete images" msgstr "kasować zdjęć" -#: ../src/control/jobs/control_jobs.c:1630 -#: ../src/control/jobs/control_jobs.c:1660 +#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1663 msgid "delete image?" msgstr "skasować zdjęcia?" -#: ../src/control/jobs/control_jobs.c:1630 +#: ../src/control/jobs/control_jobs.c:1633 msgid "delete images?" msgstr "skasować zdjęcia?" -#: ../src/control/jobs/control_jobs.c:1631 +#: ../src/control/jobs/control_jobs.c:1634 #, c-format msgid "" "do you really want to physically delete %d image\n" @@ -7483,7 +7818,7 @@ "czy na pewno chcesz skasować %d wybranych zdjęć z dysku?\n" "(użyję kosza, jeśli możliwe)" -#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1636 #, c-format msgid "do you really want to physically delete %d image from disk?" msgid_plural "do you really want to physically delete %d images from disk?" @@ -7491,7 +7826,7 @@ msgstr[1] "czy na pewno chcesz skasować %d wybrane zdjęcia z dysku?" msgstr[2] "czy na pewno chcesz skasować %d wybranych zdjęć z dysku?" -#: ../src/control/jobs/control_jobs.c:1661 +#: ../src/control/jobs/control_jobs.c:1664 msgid "" "do you really want to physically delete selected image (using trash if " "possible)?" @@ -7499,27 +7834,27 @@ "czy na pewno chcesz skasować wybrane zdjęcie (o ile możliwe – z użyciem " "kosza)?" -#: ../src/control/jobs/control_jobs.c:1662 +#: ../src/control/jobs/control_jobs.c:1665 msgid "do you really want to physically delete selected image from disk?" msgstr "czy na pewno chcesz skasować wybrane zdjęcia?" -#: ../src/control/jobs/control_jobs.c:1677 +#: ../src/control/jobs/control_jobs.c:1680 msgid "move images" msgstr "przenoszenie zdjęć" -#: ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 msgid "_select as destination" msgstr "_wybierz jako cel" -#: ../src/control/jobs/control_jobs.c:1708 +#: ../src/control/jobs/control_jobs.c:1711 msgid "move image?" msgid_plural "move images?" msgstr[0] "przenieść zdjęcie?" msgstr[1] "przenieść zdjęcia?" msgstr[2] "przenieść zdjęcia?" -#: ../src/control/jobs/control_jobs.c:1709 +#: ../src/control/jobs/control_jobs.c:1712 #, c-format msgid "" "do you really want to physically move %d image to %s?\n" @@ -7537,18 +7872,18 @@ "czy na pewno fizycznie przenieść %d wybranych zdjęć do %s?\n" "(wszystkie duplikaty również zostaną przeniesione)" -#: ../src/control/jobs/control_jobs.c:1731 +#: ../src/control/jobs/control_jobs.c:1734 msgid "copy images" msgstr "kopiowanie zdjęć" -#: ../src/control/jobs/control_jobs.c:1762 +#: ../src/control/jobs/control_jobs.c:1765 msgid "copy image?" msgid_plural "copy images?" msgstr[0] "skopiować zdjęcie?" msgstr[1] "skopiować zdjęcia?" msgstr[2] "skopiować zdjęcia?" -#: ../src/control/jobs/control_jobs.c:1763 +#: ../src/control/jobs/control_jobs.c:1766 #, c-format msgid "do you really want to physically copy %d image to %s?" msgid_plural "do you really want to physically copy %d images to %s?" @@ -7556,75 +7891,75 @@ msgstr[1] "czy na pewno chcesz fizycznie skopiować %d wybrane zdjęcia do %s?" msgstr[2] "czy na pewno chcesz fizycznie skopiować %d wybranych zdjęć do %s?" -#: ../src/control/jobs/control_jobs.c:1781 -#: ../src/control/jobs/control_jobs.c:1789 +#: ../src/control/jobs/control_jobs.c:1784 +#: ../src/control/jobs/control_jobs.c:1792 msgid "local copy images" msgstr "kopia lokalna zdjęć" -#: ../src/control/jobs/control_jobs.c:1796 ../src/libs/image.c:604 +#: ../src/control/jobs/control_jobs.c:1799 ../src/libs/image.c:674 msgid "refresh EXIF" msgstr "odśwież EXIF" -#: ../src/control/jobs/control_jobs.c:1860 +#: ../src/control/jobs/control_jobs.c:1863 #, c-format msgid "failed to get parameters from storage module `%s', aborting export.." msgstr "" "nie udało się pobrać parametrów z modułu przechowywania „%s”, przerywanie " "eksportowania.." -#: ../src/control/jobs/control_jobs.c:1876 +#: ../src/control/jobs/control_jobs.c:1879 msgid "export images" msgstr "eksport zdjęć" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "adding time offset to %d image" msgstr "dodawanie różnicy czasu do %d zdjęcia" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "setting date/time of %d image" msgstr "ustawienie daty/czasu %d zdjęcia" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "adding time offset to %d images" msgstr "dodawanie różnicy czasu do %d zdjęć" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "setting date/time of %d images" msgstr "ustawienie daty/czasu %d zdjęć" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "added time offset to %d image" msgstr "dodane przesunięcie czasu do %d zdjęcia" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "set date/time of %d image" msgstr "ustawienie daty/czasu %d zdjęcia" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "added time offset to %d images" msgstr "dodane przesunięcie czasu do %d zdjęć" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "set date/time of %d images" msgstr "ustawienie daty/czasu %d zdjęć" -#: ../src/control/jobs/control_jobs.c:2014 +#: ../src/control/jobs/control_jobs.c:2017 msgid "time offset" msgstr "różnica czasu" -#: ../src/control/jobs/control_jobs.c:2042 ../src/libs/copy_history.c:414 +#: ../src/control/jobs/control_jobs.c:2045 ../src/libs/copy_history.c:414 msgid "write sidecar files" msgstr "zapisz pliki poboczne" -#: ../src/control/jobs/control_jobs.c:2256 ../src/control/jobs/film_jobs.c:297 +#: ../src/control/jobs/control_jobs.c:2259 ../src/control/jobs/film_jobs.c:297 #, c-format msgid "importing %d image" msgid_plural "importing %d images" @@ -7632,7 +7967,7 @@ msgstr[1] "importowanie %d zdjęć" msgstr[2] "importowanie %d zdjęć" -#: ../src/control/jobs/control_jobs.c:2292 +#: ../src/control/jobs/control_jobs.c:2295 #, c-format msgid "importing %d/%d image" msgid_plural "importing %d/%d images" @@ -7640,7 +7975,7 @@ msgstr[1] "importowanie %d/%d zdjęć" msgstr[2] "importowanie %d/%d zdjęć" -#: ../src/control/jobs/control_jobs.c:2300 +#: ../src/control/jobs/control_jobs.c:2305 #, c-format msgid "imported %d image" msgid_plural "imported %d images" @@ -7648,11 +7983,6 @@ msgstr[1] "zaimportowano %d zdjęć" msgstr[2] "zaimportowano %d zdjęć" -#: ../src/control/jobs/control_jobs.c:2347 ../src/gui/preferences.c:530 -#: ../src/libs/import.c:172 -msgid "import" -msgstr "import" - #: ../src/control/jobs/film_jobs.c:73 ../src/control/jobs/film_jobs.c:109 msgid "import images" msgstr "import zdjęć" @@ -7670,11 +8000,11 @@ msgid "import image" msgstr "import zdjęcia" -#: ../src/develop/blend.c:322 +#: ../src/develop/blend.c:315 msgid "detail mask blending error" msgstr "błąd mieszania maski detalu" -#: ../src/develop/blend.c:864 +#: ../src/develop/blend.c:904 msgid "detail mask CL blending problem" msgstr "błąd mieszania maski detalu CL" @@ -7875,8 +8205,7 @@ msgid "reverse" msgstr "odwracanie" -#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:413 -#: ../src/libs/metadata.c:631 ../src/libs/metadata_view.c:1193 +#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:442 msgid "default" msgstr "domyślnie" @@ -7884,35 +8213,35 @@ msgid "RAW" msgstr "RAW" -#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2014 +#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2030 msgid "RGB (display)" msgstr "RGB (wyświetlanie)" -#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2027 +#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2043 msgid "RGB (scene)" msgstr "RGB (scena)" #. DEVELOP_MASK_ENABLED -#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3419 +#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3438 msgid "uniformly" msgstr "jednolicie" -#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:3429 ../src/develop/imageop.c:2660 +#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:3448 ../src/develop/imageop.c:2669 msgid "drawn mask" msgstr "maska wektorowa" -#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2512 -#: ../src/develop/blend_gui.c:3440 ../src/develop/imageop.c:2662 +#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2528 +#: ../src/develop/blend_gui.c:3459 ../src/develop/imageop.c:2671 msgid "parametric mask" msgstr "maska parametryczna" -#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2951 -#: ../src/develop/blend_gui.c:3467 ../src/develop/imageop.c:2664 +#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2966 +#: ../src/develop/blend_gui.c:3486 ../src/develop/imageop.c:2673 msgid "raster mask" msgstr "maska rastrowa" -#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3454 +#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3473 msgid "drawn & parametric mask" msgstr "maska wektorowa i parametryczna" @@ -7948,177 +8277,177 @@ msgid "input after blur" msgstr "wejście po rozmyciu" -#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:129 -#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/libs/live_view.c:362 +#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:157 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/libs/live_view.c:362 msgid "on" msgstr "wł." -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "input" msgstr "wejście" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "output" msgstr "wyjście" -#: ../src/develop/blend_gui.c:995 +#: ../src/develop/blend_gui.c:998 msgid " (zoom)" msgstr " (powiększenie)" -#: ../src/develop/blend_gui.c:1003 +#: ../src/develop/blend_gui.c:1006 msgid " (log)" msgstr " (log)" -#: ../src/develop/blend_gui.c:1988 +#: ../src/develop/blend_gui.c:2004 msgid "reset to default blend colorspace" msgstr "zresetuj do domyślnej przestrzeni kolorów mieszania" -#: ../src/develop/blend_gui.c:2044 +#: ../src/develop/blend_gui.c:2060 msgid "reset and hide output channels" msgstr "zresetuj i ukryj kanały wyjściowe" -#: ../src/develop/blend_gui.c:2051 +#: ../src/develop/blend_gui.c:2067 msgid "show output channels" msgstr "pokaż kanały wyjściowe" -#: ../src/develop/blend_gui.c:2290 ../src/develop/blend_gui.c:2357 -#: ../src/iop/tonecurve.c:1134 +#: ../src/develop/blend_gui.c:2306 ../src/develop/blend_gui.c:2373 +#: ../src/iop/tonecurve.c:1156 msgid "L" msgstr "L" -#: ../src/develop/blend_gui.c:2290 +#: ../src/develop/blend_gui.c:2306 msgid "sliders for L channel" msgstr "suwaki kanału L" -#: ../src/develop/blend_gui.c:2295 ../src/iop/tonecurve.c:1135 +#: ../src/develop/blend_gui.c:2311 ../src/iop/tonecurve.c:1157 msgid "a" msgstr "a" -#: ../src/develop/blend_gui.c:2295 +#: ../src/develop/blend_gui.c:2311 msgid "sliders for a channel" msgstr "suwaki kanału a" -#: ../src/develop/blend_gui.c:2299 +#: ../src/develop/blend_gui.c:2315 msgid "green/red" msgstr "zielony/czerwony" -#: ../src/develop/blend_gui.c:2300 ../src/iop/tonecurve.c:1136 +#: ../src/develop/blend_gui.c:2316 ../src/iop/tonecurve.c:1158 msgid "b" msgstr "b" -#: ../src/develop/blend_gui.c:2300 +#: ../src/develop/blend_gui.c:2316 msgid "sliders for b channel" msgstr "suwaki kanału b" -#: ../src/develop/blend_gui.c:2304 +#: ../src/develop/blend_gui.c:2320 msgid "blue/yellow" msgstr "niebieski/żółty" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "C" msgstr "C" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "sliders for chroma channel (of LCh)" msgstr "suwaki kanału chroma (dla LCh)" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "h" msgstr "h" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "sliders for hue channel (of LCh)" msgstr "suwaki kanału odcienia (dla LCh)" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "g" msgstr "g" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "sliders for gray value" msgstr "suwaki wartości szarości" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/denoiseprofile.c:3710 -#: ../src/iop/rawdenoise.c:894 ../src/iop/rgbcurve.c:1358 -#: ../src/iop/rgblevels.c:1003 ../src/libs/filters/colors.c:137 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/denoiseprofile.c:3714 +#: ../src/iop/rawdenoise.c:910 ../src/iop/rgbcurve.c:1358 +#: ../src/iop/rgblevels.c:1043 ../src/libs/filters/colors.c:137 msgid "R" msgstr "R" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 msgid "sliders for red channel" msgstr "suwaki kanału czerwonego" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/denoiseprofile.c:3711 -#: ../src/iop/rawdenoise.c:895 ../src/iop/rgbcurve.c:1359 -#: ../src/iop/rgblevels.c:1004 ../src/libs/filters/colors.c:143 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/denoiseprofile.c:3715 +#: ../src/iop/rawdenoise.c:911 ../src/iop/rgbcurve.c:1359 +#: ../src/iop/rgblevels.c:1044 ../src/libs/filters/colors.c:143 msgid "G" msgstr "G" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 msgid "sliders for green channel" msgstr "suwaki kanału zielonego" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/denoiseprofile.c:3712 -#: ../src/iop/rawdenoise.c:896 ../src/iop/rgbcurve.c:1360 -#: ../src/iop/rgblevels.c:1005 ../src/libs/filters/colors.c:146 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/denoiseprofile.c:3716 +#: ../src/iop/rawdenoise.c:912 ../src/iop/rgbcurve.c:1360 +#: ../src/iop/rgblevels.c:1045 ../src/libs/filters/colors.c:146 msgid "B" msgstr "B" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 msgid "sliders for blue channel" msgstr "suwaki kanału niebieskiego" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "H" msgstr "H" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "sliders for hue channel (of HSL)" msgstr "suwaki kanału odcienia (dla HSL)" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "S" msgstr "S" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "sliders for chroma channel (of HSL)" msgstr "suwaki kanału chroma (dla HSL)" -#: ../src/develop/blend_gui.c:2357 +#: ../src/develop/blend_gui.c:2373 msgid "sliders for value channel (of HSL)" msgstr "suwaki kanału wartości (dla HSL)" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "Jz" msgstr "Jz" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "sliders for value channel (of JzCzhz)" msgstr "suwaki kanału wartości (dla JzCzhz)" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "Cz" msgstr "Cz" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "sliders for chroma channel (of JzCzhz)" msgstr "suwaki kanału chroma (dla JzCzhz)" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "hz" msgstr "hz" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "sliders for hue channel (of JzCzhz)" msgstr "suwaki kanału odcienia (dla JzCzhz)" -#: ../src/develop/blend_gui.c:2415 +#: ../src/develop/blend_gui.c:2431 msgid "" "adjustment based on input received by this module:\n" "* range defined by upper markers: blend fully\n" @@ -8130,7 +8459,7 @@ "* zakres zdefiniowany przez dolne znaczniki: brak mieszania\n" "* zakres pomiędzy górnymi i dolnymi znacznikami: mieszanie stopniowe" -#: ../src/develop/blend_gui.c:2419 +#: ../src/develop/blend_gui.c:2435 msgid "" "adjustment based on unblended output of this module:\n" "* range defined by upper markers: blend fully\n" @@ -8142,19 +8471,19 @@ "* zakres zdefiniowany przez dolne znaczniki: brak mieszania\n" "* zakres pomiędzy górnymi i dolnymi znacznikami: mieszanie stopniowe" -#: ../src/develop/blend_gui.c:2516 +#: ../src/develop/blend_gui.c:2532 msgid "reset blend mask settings" msgstr "zresetuj ustawienia maski mieszania" -#: ../src/develop/blend_gui.c:2527 ../src/iop/atrous.c:1665 -#: ../src/iop/colorzones.c:2399 ../src/iop/denoiseprofile.c:3707 -#: ../src/iop/rawdenoise.c:891 ../src/iop/rgbcurve.c:1357 -#: ../src/iop/rgblevels.c:1002 ../src/iop/tonecurve.c:1133 +#: ../src/develop/blend_gui.c:2543 ../src/iop/atrous.c:1797 +#: ../src/iop/colorzones.c:2641 ../src/iop/denoiseprofile.c:3711 +#: ../src/iop/rawdenoise.c:907 ../src/iop/rgbcurve.c:1357 +#: ../src/iop/rgblevels.c:1041 ../src/iop/tonecurve.c:1155 msgid "channel" msgstr "kanał" -#: ../src/develop/blend_gui.c:2542 ../src/iop/colorzones.c:2413 -#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1142 +#: ../src/develop/blend_gui.c:2558 ../src/iop/colorzones.c:2660 +#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1164 msgid "" "pick GUI color from image\n" "ctrl+click or right-click to select an area" @@ -8162,12 +8491,12 @@ "pobierz kolor interfejsu ze zdjęcia\n" "kliknij z ctrl, lub kliknij prawym przyciskiem, aby zaznaczyć obszar" -#: ../src/develop/blend_gui.c:2545 ../src/iop/colorzones.c:2415 +#: ../src/develop/blend_gui.c:2561 ../src/iop/colorzones.c:2662 #: ../src/iop/rgbcurve.c:1369 msgid "show color" msgstr "pokaż kolor" -#: ../src/develop/blend_gui.c:2554 +#: ../src/develop/blend_gui.c:2570 msgid "" "set the range based on an area from the image\n" "drag to use the input image\n" @@ -8177,20 +8506,20 @@ "kliknij i przeciągnij, żeby użyć wejściowego zdjęcia\n" "kliknij i przeciągnij z ctrl, żeby użyć wyjściowego zdjęcia" -#: ../src/develop/blend_gui.c:2557 +#: ../src/develop/blend_gui.c:2573 msgid "set range" msgstr "ustal zakres" -#: ../src/develop/blend_gui.c:2560 +#: ../src/develop/blend_gui.c:2576 msgid "invert all channel's polarities" msgstr "odwróć polaryzacje wszystkich kanałów" -#: ../src/develop/blend_gui.c:2584 +#: ../src/develop/blend_gui.c:2600 msgid "toggle polarity. best seen by enabling 'display mask'" msgstr "" "przełącz biegunowość. najlepiej widoczne jeśli „wyświetl maskę” jest aktywne" -#: ../src/develop/blend_gui.c:2613 +#: ../src/develop/blend_gui.c:2629 msgid "" "double-click to reset.\n" "press 'a' to toggle available slider modes.\n" @@ -8202,42 +8531,42 @@ "naciśnij 'c' aby przełączyć podgląd danych kanału.\n" "naciśnij 'm' aby przełączyć podgląd maski." -#: ../src/develop/blend_gui.c:2640 ../src/develop/blend_gui.c:3531 -#: ../src/iop/basicadj.c:600 ../src/iop/colorbalancergb.c:2090 -#: ../src/iop/exposure.c:1120 ../src/iop/exposure.c:1135 -#: ../src/iop/filmic.c:1503 ../src/iop/filmic.c:1516 ../src/iop/filmic.c:1558 -#: ../src/iop/filmicrgb.c:4440 ../src/iop/filmicrgb.c:4451 -#: ../src/iop/filmicrgb.c:4485 ../src/iop/filmicrgb.c:4495 -#: ../src/iop/graduatednd.c:1113 ../src/iop/negadoctor.c:1011 -#: ../src/iop/profile_gamma.c:643 ../src/iop/profile_gamma.c:649 -#: ../src/iop/relight.c:262 ../src/iop/soften.c:378 ../src/iop/toneequal.c:3326 -#: ../src/iop/toneequal.c:3329 ../src/iop/toneequal.c:3332 -#: ../src/iop/toneequal.c:3335 ../src/iop/toneequal.c:3338 -#: ../src/iop/toneequal.c:3341 ../src/iop/toneequal.c:3344 -#: ../src/iop/toneequal.c:3347 ../src/iop/toneequal.c:3350 -#: ../src/iop/toneequal.c:3472 ../src/iop/toneequal.c:3481 -#: ../src/iop/toneequal.c:3494 ../src/views/darkroom.c:2453 +#: ../src/develop/blend_gui.c:2656 ../src/develop/blend_gui.c:3577 +#: ../src/iop/basicadj.c:630 ../src/iop/colorbalancergb.c:2161 +#: ../src/iop/exposure.c:1138 ../src/iop/exposure.c:1153 +#: ../src/iop/filmic.c:1528 ../src/iop/filmic.c:1541 ../src/iop/filmic.c:1583 +#: ../src/iop/filmicrgb.c:4504 ../src/iop/filmicrgb.c:4515 +#: ../src/iop/filmicrgb.c:4549 ../src/iop/filmicrgb.c:4559 +#: ../src/iop/graduatednd.c:1082 ../src/iop/negadoctor.c:1030 +#: ../src/iop/profile_gamma.c:657 ../src/iop/profile_gamma.c:663 +#: ../src/iop/relight.c:258 ../src/iop/soften.c:373 ../src/iop/toneequal.c:3379 +#: ../src/iop/toneequal.c:3382 ../src/iop/toneequal.c:3385 +#: ../src/iop/toneequal.c:3388 ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3394 ../src/iop/toneequal.c:3397 +#: ../src/iop/toneequal.c:3400 ../src/iop/toneequal.c:3403 +#: ../src/iop/toneequal.c:3525 ../src/iop/toneequal.c:3534 +#: ../src/iop/toneequal.c:3547 ../src/views/darkroom.c:2292 msgid " EV" msgstr " EV" -#: ../src/develop/blend_gui.c:2642 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:2951 ../src/develop/blend_gui.c:3014 -#: ../src/develop/blend_gui.c:3499 ../src/develop/blend_gui.c:3529 -#: ../src/develop/blend_gui.c:3542 ../src/develop/blend_gui.c:3559 -#: ../src/develop/blend_gui.c:3583 ../src/develop/blend_gui.c:3593 -#: ../src/develop/blend_gui.c:3602 ../src/develop/blend_gui.c:3613 +#: ../src/develop/blend_gui.c:2658 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:2966 ../src/develop/blend_gui.c:3029 +#: ../src/develop/blend_gui.c:3545 ../src/develop/blend_gui.c:3575 +#: ../src/develop/blend_gui.c:3588 ../src/develop/blend_gui.c:3605 +#: ../src/develop/blend_gui.c:3629 ../src/develop/blend_gui.c:3641 +#: ../src/develop/blend_gui.c:3652 ../src/develop/blend_gui.c:3663 msgid "blend" msgstr "mieszanie" -#: ../src/develop/blend_gui.c:2642 +#: ../src/develop/blend_gui.c:2658 msgid "boost factor" msgstr "współczynnik wzmocnienia" -#: ../src/develop/blend_gui.c:2645 +#: ../src/develop/blend_gui.c:2661 msgid "adjust the boost factor of the channel mask" msgstr "dostosuj wzmocnienie maski kanału" -#: ../src/develop/blend_gui.c:2682 +#: ../src/develop/blend_gui.c:2698 #, c-format msgid "%d shape used" msgid_plural "%d shapes used" @@ -8245,128 +8574,163 @@ msgstr[1] "użyto %d kształtów" msgstr[2] "użyto %d kształtów" -#: ../src/develop/blend_gui.c:2687 ../src/develop/blend_gui.c:2743 -#: ../src/develop/blend_gui.c:2831 ../src/develop/blend_gui.c:2952 +#: ../src/develop/blend_gui.c:2703 ../src/develop/blend_gui.c:2759 +#: ../src/develop/blend_gui.c:2847 ../src/develop/blend_gui.c:2967 msgid "no mask used" msgstr "nie użyto maski" -#: ../src/develop/blend_gui.c:2751 +#: ../src/develop/blend_gui.c:2767 msgid "toggle polarity of drawn mask" msgstr "przełącza polaryzację maski wektorowej" -#: ../src/develop/blend_gui.c:2760 +#: ../src/develop/blend_gui.c:2776 msgid "show and edit mask elements" msgstr "pokaż i edytuj elementy maski" -#: ../src/develop/blend_gui.c:2761 +#: ../src/develop/blend_gui.c:2777 msgid "show and edit in restricted mode" msgstr "pokaż i edytuj w trybie ograniczonym" -#: ../src/develop/blend_gui.c:2768 ../src/libs/masks.c:998 -#: ../src/libs/masks.c:1816 ../src/libs/masks.c:1820 +#: ../src/develop/blend_gui.c:2784 ../src/libs/masks.c:1014 +#: ../src/libs/masks.c:1812 ../src/libs/masks.c:1816 msgid "add gradient" msgstr "dodaj gradient" -#: ../src/develop/blend_gui.c:2769 +#: ../src/develop/blend_gui.c:2785 msgid "add multiple gradients" msgstr "dodaj wiele gradientów" -#: ../src/develop/blend_gui.c:2776 ../src/iop/retouch.c:2238 -#: ../src/libs/masks.c:978 ../src/libs/masks.c:1852 ../src/libs/masks.c:1856 +#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2466 +#: ../src/libs/masks.c:994 ../src/libs/masks.c:1848 ../src/libs/masks.c:1852 msgid "add brush" msgstr "dodaj pociągnięcie pędzla" -#: ../src/develop/blend_gui.c:2777 ../src/iop/retouch.c:2238 +#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2466 msgid "add multiple brush strokes" msgstr "dodaj wiele pociągnięć pędzla" -#: ../src/develop/blend_gui.c:2784 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 ../src/libs/masks.c:993 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1829 +#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 ../src/libs/masks.c:1009 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1825 msgid "add path" msgstr "dodaj ścieżkę" -#: ../src/develop/blend_gui.c:2785 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 +#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 msgid "add multiple paths" msgstr "dodaj wiele ścieżek" -#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 ../src/libs/masks.c:988 ../src/libs/masks.c:1834 -#: ../src/libs/masks.c:1838 +#: ../src/develop/blend_gui.c:2808 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 ../src/libs/masks.c:1004 ../src/libs/masks.c:1830 +#: ../src/libs/masks.c:1834 msgid "add ellipse" msgstr "dodaj elipsę" -#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 +#: ../src/develop/blend_gui.c:2809 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 msgid "add multiple ellipses" msgstr "dodaj wiele elips" -#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 ../src/libs/masks.c:983 ../src/libs/masks.c:1843 -#: ../src/libs/masks.c:1847 +#: ../src/develop/blend_gui.c:2816 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 ../src/libs/masks.c:999 ../src/libs/masks.c:1839 +#: ../src/libs/masks.c:1843 msgid "add circle" msgstr "dodaj koło" -#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 +#: ../src/develop/blend_gui.c:2817 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 msgid "add multiple circles" msgstr "dodaj wiele okręgów" -#: ../src/develop/blend_gui.c:2961 +#: ../src/develop/blend_gui.c:2976 msgid "toggle polarity of raster mask" msgstr "przełącza polaryzację maski rastrowej" -#: ../src/develop/blend_gui.c:3101 +#: ../src/develop/blend_gui.c:3119 msgid "normal & difference" msgstr "normalne i różnicowe" -#: ../src/develop/blend_gui.c:3106 +#: ../src/develop/blend_gui.c:3124 msgid "lighten" msgstr "rozjaśnianie" -#: ../src/develop/blend_gui.c:3113 +#: ../src/develop/blend_gui.c:3131 msgid "darken" msgstr "przyciemnianie" -#: ../src/develop/blend_gui.c:3120 +#: ../src/develop/blend_gui.c:3138 msgid "contrast enhancing" msgstr "zwiększanie kontrastu" -#: ../src/develop/blend_gui.c:3127 ../src/develop/blend_gui.c:3150 +#: ../src/develop/blend_gui.c:3145 ../src/develop/blend_gui.c:3168 msgid "color channel" msgstr "kanał koloru" -#: ../src/develop/blend_gui.c:3138 ../src/develop/blend_gui.c:3153 +#: ../src/develop/blend_gui.c:3156 ../src/develop/blend_gui.c:3171 msgid "chromaticity & lightness" msgstr "chrominancja i jasność" -#: ../src/develop/blend_gui.c:3145 +#: ../src/develop/blend_gui.c:3163 msgid "normal & arithmetic" msgstr "normalne i arytmetyczne" #. add deprecated blend mode -#: ../src/develop/blend_gui.c:3166 +#: ../src/develop/blend_gui.c:3184 msgid "deprecated" msgstr "przestarzałe" -#: ../src/develop/blend_gui.c:3478 +#. should never happen: unknown blend mode +#: ../src/develop/blend_gui.c:3188 +#, c-format +msgid "unknown blend mode '%d' in module '%s'" +msgstr "nieznany tryb mieszania '%d' w module '%s'" + +#: ../src/develop/blend_gui.c:3497 msgid "blending options" msgstr "opcje mieszania" -#: ../src/develop/blend_gui.c:3500 ../src/libs/history.c:949 -msgid "blend mode" -msgstr "tryb mieszania" +#: ../src/develop/blend_gui.c:3516 +msgid "blend mask" +msgstr "maska wtapiania" + +#: ../src/develop/blend_gui.c:3520 +msgid "display mask and/or color channel" +msgstr "wyświetl maskę lub pojedynczy kanał koloru" -#: ../src/develop/blend_gui.c:3503 +#: ../src/develop/blend_gui.c:3525 +msgid "" +"display mask and/or color channel.\n" +"ctrl+click to display mask,\n" +"shift+click to display channel.\n" +"hover over parametric mask slider to select channel for display" +msgstr "" +"wyświetlaj maskę i/lub kanał koloru.\n" +"kliknij z ctrl, aby wyświetlić maskę,\n" +"z shift, aby wyświetlić kanał.\n" +"najedź kursorem na suwak maski parametrycznej, aby wybrać kanał do " +"wyświetlenia" + +#: ../src/develop/blend_gui.c:3532 +msgid "temporarily switch off blend mask" +msgstr "tymczasowo wyłącz maskę wtapiania" + +#: ../src/develop/blend_gui.c:3537 +msgid "" +"temporarily switch off blend mask.\n" +"only for module in focus" +msgstr "" +"tymczasowo wyłącz maskę mieszania.\n" +"tylko dla wskazanego modułu" + +#: ../src/develop/blend_gui.c:3549 msgid "choose blending mode" msgstr "tryb mieszania" -#: ../src/develop/blend_gui.c:3513 +#: ../src/develop/blend_gui.c:3559 msgid "toggle blend order" msgstr "przełącz kolejność mieszania" -#: ../src/develop/blend_gui.c:3519 +#: ../src/develop/blend_gui.c:3565 msgid "" "toggle the blending order between the input and the output of the module,\n" "by default the output will be blended on top of the input,\n" @@ -8376,29 +8740,29 @@ "domyślnie wyjście zostanie zmieszane przed wejściem,\n" "porządek może być odwrócony przez klik na ikonie (wejście przed wyjściem)" -#: ../src/develop/blend_gui.c:3530 ../src/libs/history.c:953 -msgid "blend fulcrum" -msgstr "punkt podparcia mieszania" +#: ../src/develop/blend_gui.c:3576 +msgid "fulcrum" +msgstr "punkt podparcia" -#: ../src/develop/blend_gui.c:3534 +#: ../src/develop/blend_gui.c:3580 msgid "adjust the fulcrum used by some blending operations" msgstr "dostosuj punkt podparcia używany przez niektóre operacje mieszania" #. Add opacity/scale sliders to table -#: ../src/develop/blend_gui.c:3542 ../src/iop/watermark.c:1314 -#: ../src/libs/masks.c:104 +#: ../src/develop/blend_gui.c:3588 ../src/iop/watermark.c:1362 +#: ../src/libs/masks.c:105 msgid "opacity" msgstr "krycie" -#: ../src/develop/blend_gui.c:3546 +#: ../src/develop/blend_gui.c:3591 msgid "set the opacity of the blending" msgstr "krycie górnej warstwy" -#: ../src/develop/blend_gui.c:3550 ../src/libs/history.c:956 +#: ../src/develop/blend_gui.c:3596 ../src/libs/history.c:956 msgid "combine masks" msgstr "łącz maski" -#: ../src/develop/blend_gui.c:3552 +#: ../src/develop/blend_gui.c:3598 msgid "" "how to combine individual drawn mask and different channels of parametric " "mask" @@ -8406,11 +8770,11 @@ "sposób łączenia pojedynczej maski wektorowej z różnymi kanałami masek " "parametrycznych" -#: ../src/develop/blend_gui.c:3559 +#: ../src/develop/blend_gui.c:3605 msgid "details threshold" msgstr "próg szczegółów" -#: ../src/develop/blend_gui.c:3563 +#: ../src/develop/blend_gui.c:3609 msgid "" "adjust the threshold for the details mask (using raw data),\n" "positive values select areas with strong details,\n" @@ -8420,11 +8784,11 @@ "wartości dodatnie wybierają obszary z wyraźnymi szczegółami,\n" "wartości ujemne wybierają obszary jednolite" -#: ../src/develop/blend_gui.c:3571 ../src/libs/history.c:959 +#: ../src/develop/blend_gui.c:3617 ../src/libs/history.c:959 msgid "feathering guide" msgstr "wtapianie według" -#: ../src/develop/blend_gui.c:3574 +#: ../src/develop/blend_gui.c:3620 msgid "" "choose to guide mask by input or output image and\n" "choose to apply feathering before or after mask blur" @@ -8432,28 +8796,28 @@ "kontrola maski przez obraz wejściowy lub wyjściowy\n" "aplikuj kontrolowane rozmycie przed lub po zwykłym rozmyciu maski." -#: ../src/develop/blend_gui.c:3583 ../src/libs/history.c:958 +#: ../src/develop/blend_gui.c:3629 ../src/libs/history.c:958 msgid "feathering radius" msgstr "promień wtapiania" -#: ../src/develop/blend_gui.c:3586 +#: ../src/develop/blend_gui.c:3632 msgid "spatial radius of feathering" msgstr "przestrzenny zakres wtapiania" -#: ../src/develop/blend_gui.c:3593 +#: ../src/develop/blend_gui.c:3641 msgid "blurring radius" msgstr "promień rozmycia" -#: ../src/develop/blend_gui.c:3596 +#: ../src/develop/blend_gui.c:3644 msgid "radius for gaussian blur of blend mask" msgstr "promień rozmycia Gaussa dla maski mieszania" -#: ../src/develop/blend_gui.c:3602 ../src/iop/retouch.c:2453 +#: ../src/develop/blend_gui.c:3652 ../src/iop/retouch.c:2738 #: ../src/libs/history.c:954 msgid "mask opacity" msgstr "krycie maski" -#: ../src/develop/blend_gui.c:3606 +#: ../src/develop/blend_gui.c:3656 msgid "" "shifts and tilts the tone curve of the blend mask to adjust its brightness\n" "without affecting fully transparent/fully opaque regions" @@ -8461,55 +8825,32 @@ "przesuwa i pochyla krzywą tonalną maski mieszania, aby zmienić jej jasność\n" "bez modyfikowania rejonów całkowicie przezroczystych i nieprzezroczystych" -#: ../src/develop/blend_gui.c:3613 ../src/libs/history.c:962 +#: ../src/develop/blend_gui.c:3663 ../src/libs/history.c:962 msgid "mask contrast" msgstr "kontrast maski" -#: ../src/develop/blend_gui.c:3617 +#: ../src/develop/blend_gui.c:3667 msgid "" "gives the tone curve of the blend mask an s-like shape to adjust its contrast" msgstr "nadaje krzywej tonalnej maski kształt S, aby zmienić jej kontrast" -#: ../src/develop/blend_gui.c:3621 +#: ../src/develop/blend_gui.c:3671 msgid "mask refinement" msgstr "poprawianie maski" -#: ../src/develop/blend_gui.c:3625 -msgid "display mask and/or color channel" -msgstr "wyświetl maskę lub pojedynczy kanał koloru" - -#: ../src/develop/blend_gui.c:3630 -msgid "" -"display mask and/or color channel.\n" -"ctrl+click to display mask,\n" -"shift+click to display channel.\n" -"hover over parametric mask slider to select channel for display" -msgstr "" -"wyświetlaj maskę i/lub kanał koloru.\n" -"kliknij z ctrl, aby wyświetlić maskę,\n" -"z shift, aby wyświetlić kanał.\n" -"najedź kursorem na suwak maski parametrycznej, aby wybrać kanał do " -"wyświetlenia" - -#: ../src/develop/blend_gui.c:3637 -msgid "temporarily switch off blend mask" -msgstr "tymczasowo wyłącz maskę wtapiania" - -#: ../src/develop/blend_gui.c:3642 +#: ../src/develop/develop.c:732 msgid "" -"temporarily switch off blend mask.\n" -"only for module in focus" -msgstr "" -"tymczasowo wyłącz maskę mieszania.\n" -"tylko dla wskazanego modułu" +"autosaving history has been disabled for this session because of a slow " +"drive used" +msgstr "historia autozapisów wyłączona dla tej sesji z powodu powolnego dysku" -#: ../src/develop/develop.c:2303 +#: ../src/develop/develop.c:2202 #, c-format msgid "%s: module `%s' version mismatch: %d != %d" msgstr "%s: moduł „%s” niedopasowanie wersji: %d != %d" -#: ../src/develop/develop.c:2834 -msgid "module duplicate, can't move new instance after the base one\n" +#: ../src/develop/develop.c:3016 +msgid "duplicate module, can't move new instance after the base one\n" msgstr "duplikat modułu, nie można przenieść nowej instancji ponad bazową\n" #: ../src/develop/imageop.c:1031 @@ -8520,70 +8861,69 @@ msgid "duplicate instance" msgstr "zduplikuj instancję" -#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3739 -#: ../src/libs/masks.c:1152 +#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3755 +#: ../src/libs/masks.c:1146 msgid "move up" msgstr "przenieś w górę" -#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3740 -#: ../src/libs/masks.c:1157 +#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3756 +#: ../src/libs/masks.c:1151 msgid "move down" msgstr "przenieś w dół" #. delete button label and tooltip will be updated based on trash pref -#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3742 -#: ../src/gui/accelerators.c:155 ../src/gui/presets.c:562 -#: ../src/libs/image.c:285 ../src/libs/image.c:480 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 +#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3758 +#: ../src/gui/accelerators.c:173 ../src/libs/image.c:303 +#: ../src/libs/image.c:513 msgid "delete" msgstr "skasuj" -#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3743 -#: ../src/libs/modulegroups.c:3464 ../src/libs/modulegroups.c:3815 +#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3759 +#: ../src/libs/modulegroups.c:3817 msgid "rename" msgstr "zmień nazwę" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched on" msgstr "'%s' jest włączona" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched off" msgstr " '%s' jest wyłączona" -#: ../src/develop/imageop.c:2654 +#: ../src/develop/imageop.c:2663 msgid "unknown mask" msgstr "nieznana maska" -#: ../src/develop/imageop.c:2658 +#: ../src/develop/imageop.c:2667 msgid "drawn + parametric mask" msgstr "maska wektorowa i parametryczna" -#: ../src/develop/imageop.c:2667 +#: ../src/develop/imageop.c:2676 #, c-format msgid "this module has a `%s'" msgstr "moduł posiada `%s'" -#: ../src/develop/imageop.c:2672 +#: ../src/develop/imageop.c:2681 #, c-format msgid "taken from module %s" msgstr "wzięte z modułu %s" -#: ../src/develop/imageop.c:2677 +#: ../src/develop/imageop.c:2686 msgid "click to display (module must be activated first)" msgstr "kliknij, aby wyświetlić (moduł musi być wpierw aktywowany)" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "purpose" msgstr "zastosowanie" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "process" msgstr "przetwarzanie" -#: ../src/develop/imageop.c:2906 +#: ../src/develop/imageop.c:2917 msgid "" "multiple instance actions\n" "right-click creates new instance" @@ -8591,7 +8931,7 @@ "operacje dla wielu instancji\n" "kliknij prawym przyciskiem, aby stworzyć nową instancję" -#: ../src/develop/imageop.c:2921 +#: ../src/develop/imageop.c:2932 msgid "" "reset parameters\n" "ctrl+click to reapply any automatic presets" @@ -8599,7 +8939,7 @@ "zresetuj parametry\n" "kliknij z ctrl aby ponownie zaaplikować domyślne presety" -#: ../src/develop/imageop.c:2933 +#: ../src/develop/imageop.c:2944 msgid "" "presets\n" "right-click to apply on new instance" @@ -8607,15 +8947,15 @@ "presety\n" "kliknij prawym przyciskiem, aby stworzyć nową instancję" -#: ../src/develop/imageop.c:3183 ../src/develop/imageop.c:3205 +#: ../src/develop/imageop.c:3194 ../src/develop/imageop.c:3216 msgid "ERROR" msgstr "BŁĄD" -#: ../src/develop/imageop.c:3620 +#: ../src/develop/imageop.c:3622 msgid "unsupported input" msgstr "niewspierane wejście" -#: ../src/develop/imageop.c:3621 +#: ../src/develop/imageop.c:3623 msgid "" "you have placed this module at\n" "a position in the pipeline where\n" @@ -8627,49 +8967,49 @@ "w której format danych\n" "nie spełnia oczekiwań." -#: ../src/develop/imageop.c:3738 ../src/develop/imageop.c:3748 -#: ../src/gui/accelerators.c:151 ../src/libs/lib.c:1414 +#: ../src/develop/imageop.c:3754 ../src/develop/imageop.c:3764 +#: ../src/gui/accelerators.c:169 ../src/libs/lib.c:1415 msgid "show" msgstr "wyświetl" -#: ../src/develop/imageop.c:3741 ../src/libs/modulegroups.c:3310 -#: ../src/libs/modulegroups.c:3436 ../src/libs/modulegroups.c:3817 -#: ../src/libs/tagging.c:3248 +#: ../src/develop/imageop.c:3757 ../src/libs/modulegroups.c:3315 +#: ../src/libs/modulegroups.c:3438 ../src/libs/modulegroups.c:3819 +#: ../src/libs/tagging.c:3279 msgid "new" msgstr "nowa" -#: ../src/develop/imageop.c:3744 ../src/libs/duplicate.c:405 -#: ../src/libs/image.c:495 ../src/libs/modulegroups.c:3813 +#: ../src/develop/imageop.c:3760 ../src/libs/duplicate.c:411 +#: ../src/libs/image.c:534 ../src/libs/modulegroups.c:3815 msgid "duplicate" msgstr "zduplikuj" -#: ../src/develop/imageop.c:3749 +#: ../src/develop/imageop.c:3765 msgid "enable" msgstr "włącz" -#: ../src/develop/imageop.c:3750 ../src/gui/accelerators.c:167 +#: ../src/develop/imageop.c:3766 ../src/gui/accelerators.c:185 msgid "focus" msgstr "skupienie" -#: ../src/develop/imageop.c:3751 ../src/gui/accelerators.c:2617 +#: ../src/develop/imageop.c:3767 ../src/gui/accelerators.c:2874 msgid "instance" msgstr "instancja" -#: ../src/develop/imageop.c:3752 ../src/gui/accelerators.c:112 -#: ../src/gui/accelerators.c:122 ../src/gui/gtk.c:3009 ../src/gui/gtk.c:3056 -#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:603 -#: ../src/gui/styles_dialog.c:625 ../src/iop/atrous.c:1512 -#: ../src/libs/lib.c:1415 ../src/libs/modulegroups.c:3882 +#: ../src/develop/imageop.c:3768 ../src/gui/accelerators.c:130 +#: ../src/gui/accelerators.c:140 ../src/gui/gtk.c:3055 ../src/gui/gtk.c:3102 +#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:615 +#: ../src/gui/styles_dialog.c:637 ../src/iop/atrous.c:1626 +#: ../src/libs/lib.c:1416 ../src/libs/modulegroups.c:3884 msgid "reset" msgstr "reset" #. Adding the outer container -#: ../src/develop/imageop.c:3753 ../src/gui/preferences.c:798 -#: ../src/libs/lib.c:1416 +#: ../src/develop/imageop.c:3769 ../src/gui/preferences.c:796 +#: ../src/libs/lib.c:1417 msgid "presets" msgstr "presety" -#: ../src/develop/imageop.c:3773 +#: ../src/develop/imageop.c:3789 msgid "processing module" msgstr "moduł przetwarzający" @@ -8682,17 +9022,17 @@ "%s\n" "kliknij z ctrl aby %s" -#: ../src/develop/lightroom.c:1083 +#: ../src/develop/lightroom.c:1137 msgid "cannot find Lightroom XMP!" msgstr "nie można odnaleźć pliku XMP Lightrooma!" -#: ../src/develop/lightroom.c:1115 ../src/develop/lightroom.c:1137 -#: ../src/develop/lightroom.c:1157 +#: ../src/develop/lightroom.c:1169 ../src/develop/lightroom.c:1191 +#: ../src/develop/lightroom.c:1211 #, c-format msgid "`%s' is not a Lightroom XMP!" msgstr "„%s” nie jest plikiem XMP z Lightrooma!" -#: ../src/develop/lightroom.c:1556 +#: ../src/develop/lightroom.c:1613 #, c-format msgid "%s has been imported" msgid_plural "%s have been imported" @@ -8700,37 +9040,37 @@ msgstr[1] "import %s zakończony powodzeniem" msgstr[2] "import %s zakończony powodzeniem" -#: ../src/develop/masks/brush.c:1356 ../src/develop/masks/brush.c:1410 +#: ../src/develop/masks/brush.c:1346 ../src/develop/masks/brush.c:1400 #, c-format msgid "hardness: %3.2f%%" msgstr "twardość: %3.2f%%" -#: ../src/develop/masks/brush.c:1372 ../src/develop/masks/brush.c:1470 +#: ../src/develop/masks/brush.c:1362 ../src/develop/masks/brush.c:1460 #: ../src/develop/masks/circle.c:148 ../src/develop/masks/circle.c:193 #: ../src/develop/masks/ellipse.c:484 ../src/develop/masks/ellipse.c:546 -#: ../src/develop/masks/path.c:1273 +#: ../src/develop/masks/path.c:1255 #, c-format msgid "size: %3.2f%%" msgstr "rozmiar: %3.2f%%" -#: ../src/develop/masks/brush.c:3247 +#: ../src/develop/masks/brush.c:3191 msgid "[BRUSH] change size" msgstr "[PĘDZEL] zmień rozmiar" -#: ../src/develop/masks/brush.c:3249 +#: ../src/develop/masks/brush.c:3193 msgid "[BRUSH] change hardness" msgstr "[PĘDZEL] zmień twardość" -#: ../src/develop/masks/brush.c:3251 +#: ../src/develop/masks/brush.c:3195 msgid "[BRUSH] change opacity" msgstr "[PĘDZEL] zmień krycie" -#: ../src/develop/masks/brush.c:3263 +#: ../src/develop/masks/brush.c:3207 #, c-format msgid "brush #%d" msgstr "cieniowanie nr %d" -#: ../src/develop/masks/brush.c:3276 +#: ../src/develop/masks/brush.c:3220 #, c-format msgid "" "<b>size</b>: scroll, <b>hardness</b>: shift+scroll\n" @@ -8739,35 +9079,35 @@ "<b>rozmiar</b>: rolka, <b>twardość</b>: shift+rolka\n" "<b>krycie</b>: ctrl+rolka (%d%%)" -#: ../src/develop/masks/brush.c:3279 +#: ../src/develop/masks/brush.c:3223 msgid "<b>size</b>: scroll" msgstr "<b>rozmiar</b>: rolka" #: ../src/develop/masks/circle.c:137 ../src/develop/masks/circle.c:181 #: ../src/develop/masks/ellipse.c:470 ../src/develop/masks/ellipse.c:531 -#: ../src/develop/masks/path.c:1205 +#: ../src/develop/masks/path.c:1187 #, c-format msgid "feather size: %3.2f%%" msgstr "promień rozmycia: %3.2f%%" -#: ../src/develop/masks/circle.c:1510 +#: ../src/develop/masks/circle.c:1462 msgid "[CIRCLE] change size" msgstr "[OKRĄG] zmień rozmiar" -#: ../src/develop/masks/circle.c:1512 +#: ../src/develop/masks/circle.c:1464 msgid "[CIRCLE] change feather size" msgstr "[OKRĄG] zmień rozmiar wtapiania" -#: ../src/develop/masks/circle.c:1514 +#: ../src/develop/masks/circle.c:1466 msgid "[CIRCLE] change opacity" msgstr "[OKRĄG] zmień krycie" -#: ../src/develop/masks/circle.c:1527 +#: ../src/develop/masks/circle.c:1479 #, c-format msgid "circle #%d" msgstr "koło nr %d" -#: ../src/develop/masks/circle.c:1538 ../src/develop/masks/path.c:3490 +#: ../src/develop/masks/circle.c:1490 ../src/develop/masks/path.c:3406 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8781,32 +9121,32 @@ msgid "rotation: %3.f°" msgstr "obrót: %3.f°" -#: ../src/develop/masks/ellipse.c:2068 +#: ../src/develop/masks/ellipse.c:2015 msgid "[ELLIPSE] change size" msgstr "[ELIPSA] zmień rozmiar" -#: ../src/develop/masks/ellipse.c:2071 +#: ../src/develop/masks/ellipse.c:2018 msgid "[ELLIPSE] change feather size" msgstr "[ELIPSA] zmień rozmiar wtapiania" -#: ../src/develop/masks/ellipse.c:2074 ../src/develop/masks/ellipse.c:2083 +#: ../src/develop/masks/ellipse.c:2021 ../src/develop/masks/ellipse.c:2030 msgid "[ELLIPSE] rotate shape" msgstr "[ELIPSA] obróć kształt" -#: ../src/develop/masks/ellipse.c:2077 +#: ../src/develop/masks/ellipse.c:2024 msgid "[ELLIPSE] change opacity" msgstr "[ELIPSA] zmień krycie" -#: ../src/develop/masks/ellipse.c:2080 +#: ../src/develop/masks/ellipse.c:2027 msgid "[ELLIPSE] switch feathering mode" msgstr "[ELIPSA] przełącz tryb wtapiania" -#: ../src/develop/masks/ellipse.c:2090 +#: ../src/develop/masks/ellipse.c:2037 #, c-format msgid "ellipse #%d" msgstr "elipsa nr %d" -#: ../src/develop/masks/ellipse.c:2128 +#: ../src/develop/masks/ellipse.c:2075 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8815,19 +9155,19 @@ "<b>rozmiar</b>: rolka, <b>promień rozmycia</b>: shift+rolka\n" "<b>obrót</b>: ctrl+shift+rolka, <b>krycie</b>: ctrl+rolka (%d%%)" -#: ../src/develop/masks/ellipse.c:2132 +#: ../src/develop/masks/ellipse.c:2079 msgid "<b>rotate</b>: ctrl+drag" msgstr "<b>obrót</b>: ctrl+przeciągnięcie" -#: ../src/develop/masks/ellipse.c:2135 +#: ../src/develop/masks/ellipse.c:2082 #, c-format msgid "" "<b>feather mode</b>: shift+click, <b>rotate</b>: ctrl+drag\n" -"<b>size</b>: scroll, <b>feather size</b>: shift+scroll, <b>opacity</b>: ctrl" -"+scroll (%d%%)" +"<b>size</b>: scroll, <b>feather size</b>: shift+scroll, <b>opacity</b>: " +"ctrl+scroll (%d%%)" msgstr "" -"<b>tryb rozmycia krawędzi</b>: shift+kliknięcie, <b>obrót</b>: ctrl" -"+przeciągnięcie\n" +"<b>tryb rozmycia krawędzi</b>: shift+kliknięcie, <b>obrót</b>: " +"ctrl+przeciągnięcie\n" "<b>rozmiar</b>: rolka, <b>wielkość rozmycia krawędzi</b>: shift+rolka, " "<b>krycie</b>: ctrl+rolka (%d%%)" @@ -8841,32 +9181,32 @@ msgid "curvature: %3.2f%%" msgstr "krzywizna: %3.2f%%" -#: ../src/develop/masks/gradient.c:1555 +#: ../src/develop/masks/gradient.c:1514 msgid "[GRADIENT on pivot] rotate shape" msgstr "[GRADIENT, na osi] obróć kształt" -#: ../src/develop/masks/gradient.c:1557 +#: ../src/develop/masks/gradient.c:1516 msgid "[GRADIENT creation] set rotation" msgstr "[GRADIENT, tworzenie] ustal obrót" -#: ../src/develop/masks/gradient.c:1559 +#: ../src/develop/masks/gradient.c:1518 msgid "[GRADIENT] change curvature" msgstr "[GRADIENT] zmień krzywiznę" -#: ../src/develop/masks/gradient.c:1561 +#: ../src/develop/masks/gradient.c:1520 msgid "[GRADIENT] change compression" msgstr "[GRADIENT] zmień kompresję" -#: ../src/develop/masks/gradient.c:1563 +#: ../src/develop/masks/gradient.c:1522 msgid "[GRADIENT] change opacity" msgstr "[GRADIENT] zmień krycie" -#: ../src/develop/masks/gradient.c:1576 +#: ../src/develop/masks/gradient.c:1535 #, c-format msgid "gradient #%d" msgstr "gradient nr %d" -#: ../src/develop/masks/gradient.c:1587 +#: ../src/develop/masks/gradient.c:1546 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8875,7 +9215,7 @@ "<b>krzywizna</b>: rolka, <b>kompresja</b>: shift+rolka\n" "<b>obrót</b>: click+przeciągnięcie, <b>krycie</b>: ctrl+rolka (%d%%)" -#: ../src/develop/masks/gradient.c:1592 +#: ../src/develop/masks/gradient.c:1551 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8884,7 +9224,7 @@ "<b>krzywizna</b>: rolka, <b>kompresja</b>: shift+rolka\n" "<b>krycie</b>: ctrl+rolka (%d%%)" -#: ../src/develop/masks/gradient.c:1595 +#: ../src/develop/masks/gradient.c:1554 msgid "<b>rotate</b>: drag" msgstr "<b>obrót</b>: przeciągnij" @@ -8892,84 +9232,84 @@ msgid "[SHAPE] remove shape" msgstr "[KSZTAŁT] usuń kształt" -#: ../src/develop/masks/masks.c:306 +#: ../src/develop/masks/masks.c:305 #, c-format msgid "group `%s'" msgstr "grupa \"%s\"" -#: ../src/develop/masks/masks.c:423 +#: ../src/develop/masks/masks.c:422 #, c-format msgid "copy of `%s'" msgstr "kopia %s" -#: ../src/develop/masks/masks.c:984 +#: ../src/develop/masks/masks.c:985 #, c-format msgid "%s: mask version mismatch: %d != %d" msgstr "%s: niedopasowanie wersji maski: %d != %d" -#: ../src/develop/masks/masks.c:1239 ../src/develop/masks/masks.c:1906 +#: ../src/develop/masks/masks.c:1230 ../src/develop/masks/masks.c:1881 #, c-format msgid "opacity: %.0f%%" msgstr "krycie: %.0f%%" -#: ../src/develop/masks/masks.c:1650 ../src/libs/masks.c:1068 +#: ../src/develop/masks/masks.c:1625 ../src/libs/masks.c:1084 msgid "add existing shape" msgstr "dodaj istniejący kształt" -#: ../src/develop/masks/masks.c:1677 +#: ../src/develop/masks/masks.c:1652 msgid "use same shapes as" msgstr "użyj tych kształtów, co" -#: ../src/develop/masks/masks.c:1990 +#: ../src/develop/masks/masks.c:1965 msgid "masks can not contain themselves" msgstr "maski nie mogą zawierać same siebie" -#: ../src/develop/masks/path.c:3433 +#: ../src/develop/masks/path.c:3349 msgid "[PATH creation] add a smooth node" msgstr "[ŚCIEŻKA, tworzenie] dodaj gładki węzeł" -#: ../src/develop/masks/path.c:3435 +#: ../src/develop/masks/path.c:3351 msgid "[PATH creation] add a sharp node" msgstr "[ŚCIEŻKA, tworzenie] dodaj ostry węzeł" -#: ../src/develop/masks/path.c:3437 +#: ../src/develop/masks/path.c:3353 msgid "[PATH creation] terminate path creation" msgstr "[ŚCIEŻKA, tworzenie] zakończ tworzenie ścieżki" -#: ../src/develop/masks/path.c:3439 +#: ../src/develop/masks/path.c:3355 msgid "[PATH on node] switch between smooth/sharp node" msgstr "[ŚCIEŻKA, na węźle] przełącz między węzłem gładkim i ostrym" -#: ../src/develop/masks/path.c:3441 +#: ../src/develop/masks/path.c:3357 msgid "[PATH on node] remove the node" msgstr "[ŚCIEŻKA, na węźle] usuń węzeł" -#: ../src/develop/masks/path.c:3443 +#: ../src/develop/masks/path.c:3359 msgid "[PATH on feather] reset curvature" msgstr "[ŚCIEŻKA, na wtapianiu] usuń krzywiznę" -#: ../src/develop/masks/path.c:3445 +#: ../src/develop/masks/path.c:3361 msgid "[PATH on segment] add node" msgstr "[ŚCIEŻKA, na segmencie] dodaj węzeł" -#: ../src/develop/masks/path.c:3447 +#: ../src/develop/masks/path.c:3363 msgid "[PATH] change size" msgstr "[ŚCIEŻKA] zmień rozmiar" -#: ../src/develop/masks/path.c:3449 +#: ../src/develop/masks/path.c:3365 msgid "[PATH] change feather size" msgstr "[ŚCIEŻKA] zmień rozmiar wtapiania" -#: ../src/develop/masks/path.c:3451 +#: ../src/develop/masks/path.c:3367 msgid "[PATH] change opacity" msgstr "[ŚCIEŻKA] zmień krycie" -#: ../src/develop/masks/path.c:3463 +#: ../src/develop/masks/path.c:3379 #, c-format msgid "path #%d" msgstr "ścieżka nr %d" -#: ../src/develop/masks/path.c:3473 +#: ../src/develop/masks/path.c:3389 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>cancel</b>: right-click" @@ -8977,7 +9317,7 @@ "<b>dodaj węzeł</b>: klik, <b>dodaj ostry węzeł</b>:Ctrl+klik\n" "<b>anuluj</b>: prawy klik" -#: ../src/develop/masks/path.c:3476 +#: ../src/develop/masks/path.c:3392 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>finish path</b>: right-click" @@ -8985,7 +9325,7 @@ "<b>dodaj węzeł</b>: klik, <b>dodaj ostry węzeł</b>:ctrl+klik\n" "<b>zakończ ścieżkę</b>: prawy klik" -#: ../src/develop/masks/path.c:3479 +#: ../src/develop/masks/path.c:3395 msgid "" "<b>move node</b>: drag, <b>remove node</b>: right-click\n" "<b>switch smooth/sharp mode</b>: ctrl+click" @@ -8994,7 +9334,7 @@ "klik\n" "<b>przełącznik węzła: gładki/ostry</b>: ctrl+klik" -#: ../src/develop/masks/path.c:3483 +#: ../src/develop/masks/path.c:3399 msgid "" "<b>node curvature</b>: drag\n" "<b>reset curvature</b>: right-click" @@ -9002,7 +9342,7 @@ "<b>zakrzywienie w węźle</b>: przesunięcie\n" "<b>zresetuj krzywiznę</b>: prawy przycisk myszy" -#: ../src/develop/masks/path.c:3487 +#: ../src/develop/masks/path.c:3403 msgid "" "<b>move segment</b>: drag\n" "<b>add node</b>: ctrl+click" @@ -9010,11 +9350,11 @@ "<b>przesuwanie segmentu</b>: przeciągnij\n" "<b>dodaj węzeł</b>: ctrl+klik" -#: ../src/develop/pixelpipe_hb.c:500 +#: ../src/develop/pixelpipe_hb.c:486 msgid "enabled as required" msgstr "moduł włączony zgodnie z wymaganiami" -#: ../src/develop/pixelpipe_hb.c:501 +#: ../src/develop/pixelpipe_hb.c:487 msgid "" "history had module disabled but it is required for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -9023,11 +9363,11 @@ "Prawdopodobnie wynika to z nałożenia stylu bądź skopiowania historii z " "innego obrazu" -#: ../src/develop/pixelpipe_hb.c:508 +#: ../src/develop/pixelpipe_hb.c:494 msgid "disabled as not appropriate" msgstr "deaktywowany jako niewłaściwy" -#: ../src/develop/pixelpipe_hb.c:509 +#: ../src/develop/pixelpipe_hb.c:495 msgid "" "history had module enabled but it is not allowed for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -9037,15 +9377,28 @@ "Prawdopodobnie wynika to z nałożenia stylu bądź skopiowania historii z " "innego obrazu" -#: ../src/develop/pixelpipe_hb.c:2705 +#: ../src/develop/pixelpipe_hb.c:2697 msgid "" -"darktable discovered problems with your OpenCL setup; disabling OpenCL for " -"this session!" -msgstr "" -"program darktable wykrył problem z konfiguracją OpenCL; OpenCL został " -"wyłączony dla tej sesji!" +"OpenCL errors encountered; disabling OpenCL for this session! some possible " +"causes:\n" +" - OpenCL out of resources due to preference settings. please try with " +"defaults,\n" +" - buggy driver for some device. please run darktable with `-d opencl' to " +"identify,\n" +" - some drivers don't support needed number of events,\n" +" - too small headroom settings while using 'use all device memory'." +msgstr "" +"napotkano błędy OpenCL; wyłączono OpenCL dla tej sesji! potencjalne " +"przyczyny:\n" +"- wyczerpanie zasobów OpenCL w związku z preferencjami. przetestuj dla " +"ustawień domyślnych,\n" +"-błędy w sterowniku dla któregoś z urządzeń. uruchom darktable z opcją `-d " +"opencl' aby rozpoznać problem,\n" +"-któryś ze sterowików nie obsługuje wymaganej liczby zdarzeń,\n" +"-zbyt małe ustawienie marginesu pamięci gdy użyta opcja 'użyj całej pamięci " +"urządzenia'." -#: ../src/develop/pixelpipe_hb.c:2853 +#: ../src/develop/pixelpipe_hb.c:2847 #, c-format msgid "" "module '%s' can't get raster mask from module\n" @@ -9056,28 +9409,32 @@ "'%s' ponieważ jest przetwarzany w późniejszym etapie potoku przetwarzania.\n" "maska rastrowa jest pominięta." -#: ../src/develop/tiling.c:820 ../src/develop/tiling.c:1173 +#: ../src/develop/tiling.c:819 ../src/develop/tiling.c:1172 #, c-format -msgid "tiling failed for module '%s'. output might be garbled." -msgstr "nieudane kafelkowanie dla modułu „%s”. wynik może być zniekształcony." +msgid "" +"tiling failed for module '%s'. the output most likely will be OK, but you " +"might want to check." +msgstr "" +"nieudane kafelkowanie dla modułu '%s'. rezultat prawdopodobnie będzie " +"prawidłowy, ale możesz się upewnić." -#: ../src/dtgtk/culling.c:254 +#: ../src/dtgtk/culling.c:223 msgid "you have reached the start of your selection" msgstr "dotarłeś do początku kolekcji" -#: ../src/dtgtk/culling.c:263 +#: ../src/dtgtk/culling.c:232 msgid "you have reached the start of your collection" msgstr "dotarłeś do początku kolekcji" -#: ../src/dtgtk/culling.c:310 +#: ../src/dtgtk/culling.c:279 msgid "you have reached the end of your selection" msgstr "dotarłeś do końca kolekcji" -#: ../src/dtgtk/culling.c:337 +#: ../src/dtgtk/culling.c:306 msgid "you have reached the end of your collection" msgstr "dotarłeś do końca kolekcji" -#: ../src/dtgtk/culling.c:446 +#: ../src/dtgtk/culling.c:415 #, c-format msgid "zooming is limited to %d images" msgstr "powiększanie jest ograniczone do %d zdjęć" @@ -9170,7 +9527,7 @@ msgid "fixed" msgstr "stałe przybliżenie" -#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1493 +#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1498 msgid "relative" msgstr "relatywne" @@ -9184,7 +9541,7 @@ msgstr "min" #: ../src/dtgtk/range.c:630 ../src/dtgtk/range.c:1780 ../src/dtgtk/range.c:1831 -#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:282 +#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:309 msgid "max" msgstr "maks" @@ -9193,7 +9550,7 @@ msgstr "typ daty" #. the date section -#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1505 msgid "date" msgstr "data" @@ -9218,7 +9575,7 @@ msgstr "dni: " #. the time section -#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1505 msgid "time" msgstr "czas" @@ -9236,8 +9593,8 @@ msgstr "ustaw wartość aby zawsze odwzorować bieżącą datę i czas" #. apply button -#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:162 -#: ../src/libs/metadata.c:901 ../src/libs/styles.c:897 +#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:180 +#: ../src/libs/metadata.c:735 ../src/libs/styles.c:901 msgid "apply" msgstr "zastosuj" @@ -9271,59 +9628,59 @@ msgid "grouped images" msgstr "zgrupowane zdjęcia" -#: ../src/dtgtk/thumbnail.c:820 ../src/dtgtk/thumbnail.c:1635 -#: ../src/iop/ashift.c:6191 ../src/iop/ashift.c:6280 ../src/iop/ashift.c:6282 -#: ../src/iop/ashift.c:6284 ../src/libs/navigation.c:110 -#: ../src/libs/navigation.c:190 +#: ../src/dtgtk/thumbnail.c:814 ../src/dtgtk/thumbnail.c:1623 +#: ../src/iop/ashift.c:6138 ../src/iop/ashift.c:6227 ../src/iop/ashift.c:6229 +#: ../src/iop/ashift.c:6231 ../src/libs/navigation.c:111 +#: ../src/libs/navigation.c:193 msgid "fit" msgstr "dopasuj" -#: ../src/dtgtk/thumbtable.c:1041 ../src/views/slideshow.c:421 +#: ../src/dtgtk/thumbtable.c:1139 ../src/views/slideshow.c:422 msgid "there are no images in this collection" msgstr "brak zdjęć w tej kolekcji" -#: ../src/dtgtk/thumbtable.c:1048 +#: ../src/dtgtk/thumbtable.c:1146 msgid "if you have not imported any images yet" msgstr "jeśli nie zaimportowano jeszcze zdjęć" -#: ../src/dtgtk/thumbtable.c:1052 +#: ../src/dtgtk/thumbtable.c:1150 msgid "you can do so in the import module" msgstr "możesz to zrobić w module importu" -#: ../src/dtgtk/thumbtable.c:1061 +#: ../src/dtgtk/thumbtable.c:1159 msgid "try to relax the filter settings in the top panel" msgstr "spróbuj dostosować ustawienia filtrów w górnym panelu" -#: ../src/dtgtk/thumbtable.c:1072 +#: ../src/dtgtk/thumbtable.c:1170 msgid "or add images in the collections module in the left panel" msgstr "lub dodaj obrazy w module kolekcji w lewym panelu" -#: ../src/dtgtk/thumbtable.c:1338 +#: ../src/dtgtk/thumbtable.c:1455 msgid "" "you have changed the settings related to how thumbnails are generated.\n" msgstr "ustawienia tworzenia miniaturek zostały zmienione.\n" -#: ../src/dtgtk/thumbtable.c:1341 +#: ../src/dtgtk/thumbtable.c:1458 msgid "" "all cached thumbnails need to be invalidated.\n" "\n" msgstr "wszystkie zapamiętane miniatury muszą zostać unieważnione \n" -#: ../src/dtgtk/thumbtable.c:1345 +#: ../src/dtgtk/thumbtable.c:1462 #, c-format msgid "" "cached thumbnails starting from level %d need to be invalidated.\n" "\n" msgstr "zapamiętane miniatury powyżej poziomu %d muszą zostać unieważnione \n" -#: ../src/dtgtk/thumbtable.c:1350 +#: ../src/dtgtk/thumbtable.c:1467 #, c-format msgid "" "cached thumbnails below level %d need to be invalidated.\n" "\n" msgstr "zapamiętane miniatury poniżej poziomu %d muszą zostać unieważnione \n" -#: ../src/dtgtk/thumbtable.c:1355 +#: ../src/dtgtk/thumbtable.c:1472 #, c-format msgid "" "cached thumbnails between level %d and %d need to be invalidated.\n" @@ -9331,48 +9688,48 @@ msgstr "" "zapamiętane miniatury pomiędzy poziomem %d a %d muszą zostać unieważnione \n" -#: ../src/dtgtk/thumbtable.c:1358 +#: ../src/dtgtk/thumbtable.c:1475 msgid "do you want to do that now?" msgstr "chcesz zrobić to teraz?" -#: ../src/dtgtk/thumbtable.c:1360 +#: ../src/dtgtk/thumbtable.c:1477 msgid "cached thumbnails invalidation" msgstr "unieważnienie zapamiętanych miniatur" #. setup history key accelerators -#: ../src/dtgtk/thumbtable.c:2561 +#: ../src/dtgtk/thumbtable.c:2738 msgid "copy history" msgstr "kopiuj historię edycji" -#: ../src/dtgtk/thumbtable.c:2563 +#: ../src/dtgtk/thumbtable.c:2740 msgid "copy history parts" msgstr "skopiuj historię selektywnie" -#: ../src/dtgtk/thumbtable.c:2565 +#: ../src/dtgtk/thumbtable.c:2742 msgid "paste history" msgstr "wklej historię" -#: ../src/dtgtk/thumbtable.c:2567 +#: ../src/dtgtk/thumbtable.c:2744 msgid "paste history parts" msgstr "wklej selektywnie" -#: ../src/dtgtk/thumbtable.c:2569 ../src/libs/copy_history.c:394 +#: ../src/dtgtk/thumbtable.c:2746 ../src/libs/copy_history.c:394 msgid "discard history" msgstr "porzuć historię" -#: ../src/dtgtk/thumbtable.c:2572 +#: ../src/dtgtk/thumbtable.c:2749 msgid "duplicate image" msgstr "zduplikuj zdjęcie" -#: ../src/dtgtk/thumbtable.c:2574 +#: ../src/dtgtk/thumbtable.c:2751 msgid "duplicate image virgin" msgstr "zduplikuj zdjęcie bez obróbki" -#: ../src/dtgtk/thumbtable.c:2584 ../src/libs/select.c:147 +#: ../src/dtgtk/thumbtable.c:2761 ../src/libs/select.c:148 msgid "select film roll" msgstr "wybierz rolkę filmu" -#: ../src/dtgtk/thumbtable.c:2586 ../src/libs/select.c:151 +#: ../src/dtgtk/thumbtable.c:2763 ../src/libs/select.c:152 msgid "select untouched" msgstr "wybierz niezmieniane" @@ -9439,265 +9796,302 @@ msgid "creating complete lighttable thumbnail cache\n" msgstr "tworzenie kompletnego cache miniaturek stołu podświetlanego\n" -#: ../src/gui/accelerators.c:61 -msgid "active view" -msgstr "aktywny widok" - -#: ../src/gui/accelerators.c:62 -msgid "other views" -msgstr "inne widoki" +#: ../src/gui/about.c:34 +#, c-format +msgid "copyright (c) the authors 2009-%s" +msgstr "copyright (c) autorzy 2009-%s" -#: ../src/gui/accelerators.c:63 +#: ../src/gui/about.c:39 +msgid "organize and develop images from digital cameras" +msgstr "organizuj i przetwarzaj zdjęcia z aparatów cyfrowych" + +#: ../src/gui/about.c:51 +msgid "all those of you that made previous releases possible" +msgstr "wszyscy z was, którzy sprawili, że poprzednie wydania były możliwe" + +#: ../src/gui/about.c:56 +msgid "and..." +msgstr "i..." + +#: ../src/gui/about.c:59 +msgid "translator-credits" +msgstr "" +"Michał Prędotka <mpredotka@gmail.com>\n" +"Artur de Sousa Rocha <adsr@poczta.onet.pl>\n" +"Zbigniew Malach (Zbyma72age) <zbigniew.malach@gmail.com>\n" +"Tomasz Goliński <tomaszg@math.uwb.edu.pl>\n" +"Łukasz Karcz <pan.karcz@gmail.com>\n" +"Wiktor Nowak <kontakt.bajdero@gmail.com>" + +#: ../src/gui/accelerators.c:72 +msgid "in active view" +msgstr "w aktywnym widoku" + +#: ../src/gui/accelerators.c:73 +msgid "in other views" +msgstr "w innych widokach" + +#: ../src/gui/accelerators.c:74 msgid "fallbacks" msgstr "działanie alternatywne" -#: ../src/gui/accelerators.c:64 ../src/gui/accelerators.c:722 -#: ../src/gui/accelerators.c:2607 ../src/gui/accelerators.c:3470 -msgid "speed" -msgstr "prędkość" +#: ../src/gui/accelerators.c:75 +msgid "speed adjustments" +msgstr "szybkie korekty" + +#: ../src/gui/accelerators.c:76 +msgid "disabled defaults" +msgstr "wyłączone domyślne" -#: ../src/gui/accelerators.c:80 ../src/views/view.c:1202 +#: ../src/gui/accelerators.c:96 ../src/views/view.c:1361 msgid "scroll" msgstr "przewijanie" -#: ../src/gui/accelerators.c:81 +#: ../src/gui/accelerators.c:97 msgid "pan" msgstr "panorama" -#: ../src/gui/accelerators.c:82 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6283 ../src/iop/clipping.c:1902 -#: ../src/iop/clipping.c:2094 ../src/iop/clipping.c:2110 -#: ../src/views/darkroom.c:2676 ../src/views/lighttable.c:1250 +#: ../src/gui/accelerators.c:98 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6230 ../src/iop/clipping.c:1955 +#: ../src/iop/clipping.c:2147 ../src/iop/clipping.c:2163 +#: ../src/views/darkroom.c:2522 ../src/views/lighttable.c:1250 msgid "horizontal" msgstr "w poziomie" -#: ../src/gui/accelerators.c:83 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6281 ../src/iop/clipping.c:1901 -#: ../src/iop/clipping.c:2095 ../src/iop/clipping.c:2109 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:1254 +#: ../src/gui/accelerators.c:99 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6228 ../src/iop/clipping.c:1954 +#: ../src/iop/clipping.c:2148 ../src/iop/clipping.c:2162 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:1254 msgid "vertical" msgstr "w pionie" -#: ../src/gui/accelerators.c:84 +#: ../src/gui/accelerators.c:100 msgid "diagonal" msgstr "przekątna" -#: ../src/gui/accelerators.c:86 +#: ../src/gui/accelerators.c:102 msgid "leftright" msgstr "przesunięcie prawo-lewo" -#: ../src/gui/accelerators.c:87 +#: ../src/gui/accelerators.c:103 msgid "updown" msgstr "góra dół" -#: ../src/gui/accelerators.c:88 +#: ../src/gui/accelerators.c:104 msgid "pgupdown" msgstr "strona w górę w dół" -#: ../src/gui/accelerators.c:96 ../src/views/view.c:1186 +#: ../src/gui/accelerators.c:112 ../src/views/view.c:1343 msgid "shift" msgstr "shift" -#: ../src/gui/accelerators.c:97 ../src/views/view.c:1187 +#: ../src/gui/accelerators.c:113 ../src/views/view.c:1345 msgid "ctrl" msgstr "ctrl" -#: ../src/gui/accelerators.c:98 ../src/views/view.c:1188 +#: ../src/gui/accelerators.c:114 ../src/views/view.c:1347 msgid "alt" msgstr "alt" -#: ../src/gui/accelerators.c:99 +#: ../src/gui/accelerators.c:115 msgid "cmd" msgstr "komenda" -#: ../src/gui/accelerators.c:100 +#: ../src/gui/accelerators.c:116 msgid "altgr" msgstr "altgr" -#: ../src/gui/accelerators.c:109 ../src/gui/accelerators.c:156 -#: ../src/libs/tagging.c:1782 +#: ../src/gui/accelerators.c:127 ../src/gui/accelerators.c:174 +#: ../src/libs/tagging.c:1804 msgid "edit" msgstr "edycja" -#: ../src/gui/accelerators.c:110 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "up" msgstr "do góry" -#: ../src/gui/accelerators.c:111 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:129 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "down" msgstr "w dół" -#: ../src/gui/accelerators.c:115 +#: ../src/gui/accelerators.c:133 msgid "set" msgstr "ustal" -#: ../src/gui/accelerators.c:119 +#: ../src/gui/accelerators.c:137 msgid "popup" msgstr "wyskakujące okienko" -#: ../src/gui/accelerators.c:120 ../src/gui/accelerators.c:153 -#: ../src/gui/gtk.c:3054 ../src/views/lighttable.c:760 +#: ../src/gui/accelerators.c:138 ../src/gui/accelerators.c:171 +#: ../src/gui/gtk.c:3100 ../src/views/lighttable.c:760 msgid "next" msgstr "następny" -#: ../src/gui/accelerators.c:121 ../src/gui/accelerators.c:152 -#: ../src/gui/gtk.c:3055 ../src/views/lighttable.c:761 +#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:170 +#: ../src/gui/gtk.c:3101 ../src/views/lighttable.c:761 msgid "previous" msgstr "poprzedni" -#: ../src/gui/accelerators.c:123 ../src/gui/accelerators.c:1462 +#: ../src/gui/accelerators.c:141 ../src/gui/accelerators.c:1598 msgid "last" msgstr "ostatni" -#: ../src/gui/accelerators.c:124 ../src/gui/accelerators.c:1461 +#: ../src/gui/accelerators.c:142 ../src/gui/accelerators.c:1597 msgid "first" msgstr "pierwszy" -#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:141 -#: ../src/gui/accelerators.c:314 ../src/libs/filters/rating_range.c:268 -#: ../src/libs/tagging.c:3119 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2419 ../src/views/darkroom.c:2648 +#: ../src/gui/accelerators.c:146 ../src/gui/accelerators.c:159 +#: ../src/gui/accelerators.c:356 ../src/libs/filters/rating_range.c:295 +#: ../src/libs/tagging.c:3150 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2258 ../src/views/darkroom.c:2494 msgid "toggle" msgstr "widoczność nagłówka" -#: ../src/gui/accelerators.c:131 +#: ../src/gui/accelerators.c:149 msgid "ctrl-toggle" msgstr "ctrl–przełącz" -#: ../src/gui/accelerators.c:132 +#: ../src/gui/accelerators.c:150 msgid "ctrl-on" msgstr "ctrl–włącz" -#: ../src/gui/accelerators.c:133 +#: ../src/gui/accelerators.c:151 msgid "right-toggle" msgstr "przełączanie w prawo" -#: ../src/gui/accelerators.c:134 +#: ../src/gui/accelerators.c:152 msgid "right-on" msgstr "dokładnie na" -#: ../src/gui/accelerators.c:145 ../src/gui/gtk.c:3053 +#: ../src/gui/accelerators.c:163 ../src/gui/gtk.c:3099 msgid "activate" msgstr "aktywne" -#: ../src/gui/accelerators.c:146 +#: ../src/gui/accelerators.c:164 msgid "ctrl-activate" msgstr "ctrl-aktywne" -#: ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:165 msgid "right-activate" msgstr "prawy–aktywuj" -#: ../src/gui/accelerators.c:154 +#: ../src/gui/accelerators.c:172 msgid "store" msgstr "zapis" -#: ../src/gui/accelerators.c:157 ../src/gui/styles_dialog.c:639 +#: ../src/gui/accelerators.c:175 ../src/gui/styles_dialog.c:651 msgid "update" msgstr "aktualizuj" -#: ../src/gui/accelerators.c:158 ../src/libs/tools/global_toolbox.c:60 +#: ../src/gui/accelerators.c:176 ../src/libs/tools/global_toolbox.c:60 #: ../src/libs/tools/global_toolbox.c:510 msgid "preferences" msgstr "ustawienia" -#: ../src/gui/accelerators.c:163 +#: ../src/gui/accelerators.c:181 msgid "apply on new instance" msgstr "zastosuj na nowej instancji" -#: ../src/gui/accelerators.c:168 +#: ../src/gui/accelerators.c:186 msgid "start" msgstr "start" -#: ../src/gui/accelerators.c:169 +#: ../src/gui/accelerators.c:187 msgid "end" msgstr "koniec" -#: ../src/gui/accelerators.c:332 +#: ../src/gui/accelerators.c:374 msgid "entry" msgstr "wpis" -#: ../src/gui/accelerators.c:409 +#: ../src/gui/accelerators.c:450 msgid "combo effect not found" msgstr "efekt kombinacji nieznaleziony" -#: ../src/gui/accelerators.c:578 +#: ../src/gui/accelerators.c:627 msgid "(keypad)" msgstr "klawiatur" -#: ../src/gui/accelerators.c:587 +#: ../src/gui/accelerators.c:636 msgid "tablet button" msgstr "przycisk na tablecie" -#: ../src/gui/accelerators.c:596 +#: ../src/gui/accelerators.c:645 msgid "unknown driver" msgstr "nieznany sterownik" -#: ../src/gui/accelerators.c:663 +#: ../src/gui/accelerators.c:718 msgid "long" msgstr "długi" -#: ../src/gui/accelerators.c:664 +#: ../src/gui/accelerators.c:719 msgid "double-press" msgstr "podwójne wciśnięcie" -#: ../src/gui/accelerators.c:665 +#: ../src/gui/accelerators.c:720 msgid "triple-press" msgstr "potrójne wciśnięcie" -#: ../src/gui/accelerators.c:666 +#: ../src/gui/accelerators.c:721 msgid "press" msgstr "prasa" -#: ../src/gui/accelerators.c:670 +#: ../src/gui/accelerators.c:725 msgctxt "accel" msgid "left" msgstr "po lewej" -#: ../src/gui/accelerators.c:671 +#: ../src/gui/accelerators.c:726 msgctxt "accel" msgid "right" msgstr "po prawej" -#: ../src/gui/accelerators.c:672 +#: ../src/gui/accelerators.c:727 msgctxt "accel" msgid "middle" msgstr "średnia szarość" -#: ../src/gui/accelerators.c:673 +#: ../src/gui/accelerators.c:728 msgctxt "accel" msgid "long" msgstr "długi" -#: ../src/gui/accelerators.c:674 +#: ../src/gui/accelerators.c:729 msgctxt "accel" msgid "double-click" msgstr "podwójny klik " -#: ../src/gui/accelerators.c:675 +#: ../src/gui/accelerators.c:730 msgctxt "accel" msgid "triple-click" msgstr "portójny klik" -#: ../src/gui/accelerators.c:676 +#: ../src/gui/accelerators.c:731 msgid "click" msgstr "klik" -#: ../src/gui/accelerators.c:704 +#: ../src/gui/accelerators.c:759 msgid "first instance" msgstr "pierwsza instancja" -#: ../src/gui/accelerators.c:706 +#: ../src/gui/accelerators.c:761 msgid "last instance" msgstr "ostatnia instancja" -#: ../src/gui/accelerators.c:708 +#: ../src/gui/accelerators.c:763 msgid "relative instance" msgstr "pokrewna instancja" -#: ../src/gui/accelerators.c:867 +#: ../src/gui/accelerators.c:780 ../src/gui/accelerators.c:2864 +#: ../src/gui/accelerators.c:3811 +msgid "speed" +msgstr "prędkość" + +#: ../src/gui/accelerators.c:923 #, c-format msgid "" "Lua script command copied to clipboard:\n" @@ -9708,11 +10102,11 @@ "\n" "<tt>%s</tt>" -#: ../src/gui/accelerators.c:965 ../src/gui/accelerators.c:978 +#: ../src/gui/accelerators.c:1025 ../src/gui/accelerators.c:1044 msgid "start typing for incremental search" msgstr "zacznij pisać aby wyszukiwać" -#: ../src/gui/accelerators.c:966 +#: ../src/gui/accelerators.c:1028 msgid "" "\n" "press Delete to delete selected shortcut" @@ -9720,7 +10114,23 @@ "\n" "wciśnij Del, aby usunąć zaznaczony skrót" -#: ../src/gui/accelerators.c:968 +#: ../src/gui/accelerators.c:1030 +msgid "" +"\n" +"press Delete to disable selected default shortcut" +msgstr "" +"\n" +"wciśnij Del, aby usunąć zaznaczony domyślny skrót" + +#: ../src/gui/accelerators.c:1031 +msgid "" +"\n" +"press Delete to restore selected default shortcut" +msgstr "" +"\n" +"wciśnij Del, aby przywrócić zaznaczony domyślny skrót" + +#: ../src/gui/accelerators.c:1033 msgid "" "\n" "double-click to add new shortcut" @@ -9728,11 +10138,11 @@ "\n" "kliknij dwukrotnie, aby dodać nowy skrót" -#: ../src/gui/accelerators.c:979 +#: ../src/gui/accelerators.c:1045 msgid "click to filter shortcuts list" msgstr "kliknij, aby filtrować listę skrótów" -#: ../src/gui/accelerators.c:981 +#: ../src/gui/accelerators.c:1047 msgid "" "\n" "right click to show action of selected shortcut" @@ -9740,7 +10150,7 @@ "\n" "kliknij prawym by wyświetlić akcję zaznaczonego skrótu" -#: ../src/gui/accelerators.c:984 +#: ../src/gui/accelerators.c:1050 msgid "" "\n" "double-click to define new shortcut" @@ -9748,11 +10158,11 @@ "\n" "kliknij dwukrotnie, aby zdefiniować nowy skrót" -#: ../src/gui/accelerators.c:1015 +#: ../src/gui/accelerators.c:1081 msgid "shift+alt+scroll to change height" msgstr "shift+alt+scroll aby zmienić wysokość" -#: ../src/gui/accelerators.c:1035 +#: ../src/gui/accelerators.c:1101 msgid "" "press keys with mouse click and scroll or move combinations to create a " "shortcut" @@ -9760,27 +10170,27 @@ "naciśnij przycisk wraz z kliknięciem myszy i przewiń rolką lub przeciągnij " "kombinację, by stworzyć skrót" -#: ../src/gui/accelerators.c:1036 +#: ../src/gui/accelerators.c:1102 msgid "click to open shortcut configuration" msgstr "kliknij, aby otworzyć konfigurację skrótu" -#: ../src/gui/accelerators.c:1037 +#: ../src/gui/accelerators.c:1103 msgid "ctrl+click to add to quick access panel\n" msgstr "kliknij z ctrl, by dodać do panelu szybkiego dostępu\n" -#: ../src/gui/accelerators.c:1038 +#: ../src/gui/accelerators.c:1104 msgid "ctrl+click to remove from quick access panel\n" msgstr "kliknij z ctrl, by usunąć z panelu szybkiego dostępu\n" -#: ../src/gui/accelerators.c:1039 +#: ../src/gui/accelerators.c:1105 msgid "scroll to change default speed" msgstr "przewiń by zmienić domyślną prędkość" -#: ../src/gui/accelerators.c:1040 +#: ../src/gui/accelerators.c:1106 msgid "right click to exit mapping mode" msgstr "kliknij prawym, żeby wyjść z trybu mapowania" -#: ../src/gui/accelerators.c:1051 +#: ../src/gui/accelerators.c:1119 #, c-format msgid "" "%sright-click to type a specific value between <b>%s</b> and <b>%s</b>\n" @@ -9789,75 +10199,90 @@ "%skliknij prawym, aby wpisać wartość pomiędzy <b>%s</b> a <b>%s</b>\n" "lub trzymaj Ctrl+Shift i przeciągaj, aby pominąć limity." -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "ctrl+v" msgstr "ctrl+v" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "right long click" msgstr "prawy klik długo" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "to copy Lua command" msgstr "aby skopiować komendę Lua" -#: ../src/gui/accelerators.c:1344 +#: ../src/gui/accelerators.c:1451 msgid "shortcut for move exists with single effect" msgstr "skrót na ruch współpracuje z pojedynczym efektem" -#: ../src/gui/accelerators.c:1345 +#: ../src/gui/accelerators.c:1452 +#, c-format +msgid "" +"%s\n" +"\n" +"(assign %s to %s)" +msgstr "" +"%s\n" +"\n" +"(przypisz %s to %s)" + +#: ../src/gui/accelerators.c:1453 msgid "create separate shortcuts for up and down move?" msgstr "stworzyć osobny skrót na ruch w górę i w dół?" -#: ../src/gui/accelerators.c:1368 +#: ../src/gui/accelerators.c:1479 #, c-format msgid "%s, speed reset" msgstr "%s, reset prędkości" -#: ../src/gui/accelerators.c:1377 +#: ../src/gui/accelerators.c:1497 msgid "shortcut exists with different settings" msgstr "istnieje już skrót z innymi ustawieniami" -#: ../src/gui/accelerators.c:1378 +#: ../src/gui/accelerators.c:1498 msgid "reset the settings of the shortcut?" msgstr "usunąć ustawienia skrótu?" -#: ../src/gui/accelerators.c:1389 +#: ../src/gui/accelerators.c:1507 msgid "shortcut already exists" msgstr "skrót już istnieje" -#: ../src/gui/accelerators.c:1390 +#: ../src/gui/accelerators.c:1509 +msgid "disable this default shortcut?" +msgstr "wyłączyć ten domyślny skrót?" + +#: ../src/gui/accelerators.c:1510 msgid "remove the shortcut?" msgstr "usunąć ten skrót?" -#: ../src/gui/accelerators.c:1423 +#: ../src/gui/accelerators.c:1550 msgid "clashing shortcuts exist" msgstr "istnieją kolidujące skróty" -#: ../src/gui/accelerators.c:1424 +#: ../src/gui/accelerators.c:1551 msgid "remove these existing shortcuts?" msgstr "usunąć istniejące skróty?" #. or 3, but change char relative[] = "-2" to "-1" #. NUM_INSTANCES -#: ../src/gui/accelerators.c:1460 +#: ../src/gui/accelerators.c:1596 msgid "preferred" msgstr "preferowany" # nie wiadomo czy chodzi o sekundę czy o "drugi" -#: ../src/gui/accelerators.c:1463 +#: ../src/gui/accelerators.c:1599 msgid "second" msgstr "drugi" -#: ../src/gui/accelerators.c:1464 +#: ../src/gui/accelerators.c:1600 msgid "last but one" msgstr "przedostatni" -#: ../src/gui/accelerators.c:1610 ../src/gui/accelerators.c:1670 +#: ../src/gui/accelerators.c:1761 ../src/gui/accelerators.c:1826 msgid "(unchanged)" msgstr "(zostaw niezmienione)" -#: ../src/gui/accelerators.c:1776 +#: ../src/gui/accelerators.c:1941 msgid "" "define a shortcut by pressing a key, optionally combined with modifier keys " "(ctrl/shift/alt)\n" @@ -9881,39 +10306,47 @@ "\n" "naciśnij prawy przycisk myszy aby anulować" -#: ../src/gui/accelerators.c:1847 +#: ../src/gui/accelerators.c:2014 msgid "removing shortcut" msgstr "usuwanie skrótu" -#: ../src/gui/accelerators.c:1848 +#: ../src/gui/accelerators.c:2016 +msgid "disable the selected default shortcut?" +msgstr "wyłączyć zaznaczony domyślny skrót?" + +#: ../src/gui/accelerators.c:2017 +msgid "restore the selected default shortcut?" +msgstr "przywrócić zaznaczony domyślny skrót?" + +#: ../src/gui/accelerators.c:2018 msgid "remove the selected shortcut?" msgstr "usunąć zaznaczony skrót?" -#: ../src/gui/accelerators.c:1938 +#: ../src/gui/accelerators.c:2107 msgid "command" msgstr "komenda" -#: ../src/gui/accelerators.c:1939 +#: ../src/gui/accelerators.c:2108 msgid "preset" msgstr "styl" -#: ../src/gui/accelerators.c:2272 +#: ../src/gui/accelerators.c:2491 msgid "restore shortcuts" msgstr "przywróć skróty" -#: ../src/gui/accelerators.c:2275 +#: ../src/gui/accelerators.c:2494 msgid "_defaults" msgstr "_domyślne" -#: ../src/gui/accelerators.c:2276 +#: ../src/gui/accelerators.c:2495 msgid "_startup" msgstr "podczas uruchamiania" -#: ../src/gui/accelerators.c:2277 +#: ../src/gui/accelerators.c:2496 msgid "_edits" msgstr "_edycje" -#: ../src/gui/accelerators.c:2283 +#: ../src/gui/accelerators.c:2503 msgid "" "restore shortcuts from one of these states:\n" " - default\n" @@ -9925,7 +10358,7 @@ "-jak z momentu uruchomienia darktable\n" "-jak z momentu wyświetlenia tego komunikatu\n" -#: ../src/gui/accelerators.c:2289 +#: ../src/gui/accelerators.c:2510 msgid "" "clear all newer shortcuts\n" "(instead of just restoring changed ones)" @@ -9933,22 +10366,17 @@ "usuń wszystkie nowsze skróty\n" "(zamiast przywracać zmienione)" -#: ../src/gui/accelerators.c:2344 ../src/gui/preferences.c:906 +#: ../src/gui/accelerators.c:2567 ../src/gui/preferences.c:905 #: ../src/libs/tools/global_toolbox.c:494 -#: ../src/libs/tools/global_toolbox.c:645 +#: ../src/libs/tools/global_toolbox.c:652 msgid "shortcuts" msgstr "skróty" -#: ../src/gui/accelerators.c:2353 +#: ../src/gui/accelerators.c:2577 msgid "export shortcuts" msgstr "eksportuj skróty" -#: ../src/gui/accelerators.c:2356 ../src/gui/accelerators.c:2436 -#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:564 -msgid "_ok" -msgstr "_ok" - -#: ../src/gui/accelerators.c:2361 +#: ../src/gui/accelerators.c:2586 msgid "" "export all shortcuts to a file\n" "or just for one selected device\n" @@ -9956,27 +10384,27 @@ "wyeksportuj wszystkie skróty do pliku\n" "lub tylko skróty dotyczące wybranego urządzenia\n" -#: ../src/gui/accelerators.c:2368 ../src/gui/accelerators.c:2448 +#: ../src/gui/accelerators.c:2593 ../src/gui/accelerators.c:2675 msgid "keyboard" msgstr "klawiatura" -#: ../src/gui/accelerators.c:2380 +#: ../src/gui/accelerators.c:2605 msgid "device id" msgstr "id urządzenia" -#: ../src/gui/accelerators.c:2406 +#: ../src/gui/accelerators.c:2631 msgid "select file to export" msgstr "wybierz plik do eksportu" -#: ../src/gui/accelerators.c:2407 ../src/libs/tagging.c:2525 +#: ../src/gui/accelerators.c:2632 ../src/libs/tagging.c:2556 msgid "_export" msgstr "_eksportuj" -#: ../src/gui/accelerators.c:2433 +#: ../src/gui/accelerators.c:2659 msgid "import shortcuts" msgstr "importuj skróty" -#: ../src/gui/accelerators.c:2441 +#: ../src/gui/accelerators.c:2668 msgid "" "import all shortcuts from a file\n" "or just for one selected device\n" @@ -9984,31 +10412,31 @@ "wczytaj wszystkie skróty z pliku\n" "lub wczytaj tylko skróty dla wybranego urządzenia\n" -#: ../src/gui/accelerators.c:2460 +#: ../src/gui/accelerators.c:2687 msgid "id in file" msgstr "id w pliku" -#: ../src/gui/accelerators.c:2466 +#: ../src/gui/accelerators.c:2693 msgid "id when loaded" msgstr "id przy ładowaniu" -#: ../src/gui/accelerators.c:2470 +#: ../src/gui/accelerators.c:2697 msgid "clear device first" msgstr "najpierw wyczyść urządzenie" -#: ../src/gui/accelerators.c:2494 +#: ../src/gui/accelerators.c:2722 msgid "select file to import" msgstr "wybierz plik do zaimportowania" -#: ../src/gui/accelerators.c:2495 ../src/libs/tagging.c:2489 +#: ../src/gui/accelerators.c:2723 ../src/libs/tagging.c:2520 msgid "_import" msgstr "_import" -#: ../src/gui/accelerators.c:2568 +#: ../src/gui/accelerators.c:2815 msgid "search shortcuts list" msgstr "szukaj na liście skrótów" -#: ../src/gui/accelerators.c:2569 +#: ../src/gui/accelerators.c:2817 msgid "" "incrementally search the list of shortcuts\n" "press up or down keys to cycle through matches" @@ -10016,29 +10444,28 @@ "Przyrostowo przeszukaj listę skrótów\n" "naciśnij w górę lub w dół, aby przełączyć między wyszukaniami" -#. Setting up the cell renderers -#: ../src/gui/accelerators.c:2583 ../src/views/view.c:1383 +#: ../src/gui/accelerators.c:2837 ../src/views/view.c:1554 msgid "shortcut" msgstr "skrót" -#: ../src/gui/accelerators.c:2585 ../src/gui/accelerators.c:2676 -#: ../src/views/view.c:1385 +#: ../src/gui/accelerators.c:2840 ../src/gui/accelerators.c:2942 +#: ../src/views/view.c:1556 msgid "action" msgstr "akcja" -#: ../src/gui/accelerators.c:2594 +#: ../src/gui/accelerators.c:2850 msgid "element" msgstr "element" -#: ../src/gui/accelerators.c:2601 +#: ../src/gui/accelerators.c:2858 msgid "effect" msgstr "efekt" -#: ../src/gui/accelerators.c:2658 +#: ../src/gui/accelerators.c:2918 msgid "search actions list" msgstr "szukaj na liście akcji" -#: ../src/gui/accelerators.c:2659 +#: ../src/gui/accelerators.c:2920 msgid "" "incrementally search the list of actions\n" "press up or down keys to cycle through matches" @@ -10046,16 +10473,16 @@ "Przyrostowo przeszukaj listę działań\n" "naciśnij w górę lub w dół, aby przełączyć między wyszukaniami" -#: ../src/gui/accelerators.c:2682 ../src/gui/guides.c:719 -#: ../src/libs/export_metadata.c:192 +#: ../src/gui/accelerators.c:2950 ../src/gui/guides.c:719 +#: ../src/libs/export_metadata.c:179 msgid "type" msgstr "typ" -#: ../src/gui/accelerators.c:2717 +#: ../src/gui/accelerators.c:2988 msgid "enable fallbacks" msgstr "twórz kopie zapasowe" -#: ../src/gui/accelerators.c:2718 +#: ../src/gui/accelerators.c:2989 msgid "" "enables default meanings for additional buttons, modifiers or moves\n" "when used in combination with a base shortcut" @@ -10063,67 +10490,97 @@ "włącza domyślne znaczenia dodatkowych przycisków, modyfikatorów lub ruchów\n" "w połączeniu ze skrótem podstawowym" -#: ../src/gui/accelerators.c:2725 +#: ../src/gui/accelerators.c:2997 msgid "open help page for shortcuts" msgstr "otwórz stronę pomocy dla skrótow" -#: ../src/gui/accelerators.c:2730 +#: ../src/gui/accelerators.c:3002 msgid "restore..." msgstr "przywróć..." -#: ../src/gui/accelerators.c:2731 +#: ../src/gui/accelerators.c:3003 msgid "restore default shortcuts or previous state" msgstr "przywraca domyslne skróty lub poprzedni stan" -#: ../src/gui/accelerators.c:2735 ../src/libs/styles.c:883 -#: ../src/libs/tagging.c:3251 +#: ../src/gui/accelerators.c:3007 ../src/libs/styles.c:887 +#: ../src/libs/tagging.c:3282 msgid "import..." msgstr "importuj..." -#: ../src/gui/accelerators.c:2736 +#: ../src/gui/accelerators.c:3008 msgid "fully or partially import shortcuts from file" msgstr "w pełni lub częściowo importuje skróty z pliku" -#: ../src/gui/accelerators.c:2740 ../src/libs/styles.c:890 -#: ../src/libs/tagging.c:3254 +#: ../src/gui/accelerators.c:3012 ../src/libs/styles.c:894 +#: ../src/libs/tagging.c:3285 msgid "export..." msgstr "eksportuj..." -#: ../src/gui/accelerators.c:2741 +#: ../src/gui/accelerators.c:3013 msgid "fully or partially export shortcuts to file" msgstr "w pełni lub częściowo eksportuje skróty do pliku" -#: ../src/gui/accelerators.c:3139 +#: ../src/gui/accelerators.c:3021 +msgid "" +"the recommended way to assign shortcuts to visual elements is the <b>visual " +"shortcut mapping</b> mode.\n" +"this is switched on by toggling the <i>\"keyboard\"</i> button next to " +"preferences in the top panel. in this mode, clicking on a widget or area " +"will open this dialog with the appropriate selection for advanced " +"configuration.\n" +"\n" +"multiple shortcuts can be assigned to the same action. this is especially " +"useful if it has multiple <i>elements</i>, like the module buttons or the " +"colorpickers attached to sliders. however, with <i>fallbacks</i> enabled one " +"can use the same simple shortcuts and change their <i>element</i> or " +"<i>effect</i> by adding mouse clicks.\n" +"\n" +"<i>click <b> three times </b> to dismiss this notice permanently</i>" +msgstr "" + +#: ../src/gui/accelerators.c:3452 msgid "reinitialising input devices" msgstr "ponownie zainicjuj urządzenia wejściowe" -#: ../src/gui/accelerators.c:3342 +#: ../src/gui/accelerators.c:3594 +msgid "down move" +msgstr "przenieś w dół" + +#: ../src/gui/accelerators.c:3594 +msgid "flip top/bottom first/last" +msgstr "zamień górny/dolny pierwszy/ostatni" + +#: ../src/gui/accelerators.c:3679 msgid "fallback to move" msgstr "powrót do ruchu" -#: ../src/gui/accelerators.c:3578 +#: ../src/gui/accelerators.c:3921 #, c-format msgid "%s not assigned" msgstr "%s nieprzypisane" -#: ../src/gui/accelerators.c:3751 +#: ../src/gui/accelerators.c:4102 #, c-format msgid "%s assigned to %s" msgstr "%s przypisano do %s" -#: ../src/gui/gtk.c:173 ../src/views/darkroom.c:4650 +#: ../src/gui/accelerators.c:4321 +msgid "short key press resets stuck keys" +msgstr "krótkie naciśnięcie przycisku resetuje zablokowane klawisze" + +#: ../src/gui/gtk.c:175 ../src/views/darkroom.c:3861 msgid "darktable - darkroom preview" msgstr "darktable - podgląd ciemni" -#: ../src/gui/gtk.c:184 +#: ../src/gui/gtk.c:186 msgid "tooltips off" msgstr "podpowiedzi wył." -#: ../src/gui/gtk.c:186 +#: ../src/gui/gtk.c:188 msgid "tooltips on" msgstr "podpowiedzi wł." -#: ../src/gui/gtk.c:191 +#: ../src/gui/gtk.c:193 msgid "" "tooltip visibility can only be toggled if compositing is enabled in your " "window manager" @@ -10131,184 +10588,217 @@ "widoczność podpowiedzi może być włączona tylko jeśli manager okien używa " "kompozycji" -#: ../src/gui/gtk.c:814 +#: ../src/gui/gtk.c:809 msgid "closing darktable..." msgstr "zamykanie darktable..." -#: ../src/gui/gtk.c:1135 +#: ../src/gui/gtk.c:1032 +msgid "URL opened in web browser" +msgstr "URL otwarty w przeglądarce" + +#: ../src/gui/gtk.c:1036 +msgid "error while opening URL in web browser" +msgstr "błąd otwierania URL w przeglądarce" + +#. View menu +#: ../src/gui/gtk.c:1104 +msgctxt "menu" +msgid "Views" +msgstr "widoki" + +#: ../src/gui/gtk.c:1108 +msgctxt "menu" +msgid "lighttable" +msgstr "stół podświetlany" + +#: ../src/gui/gtk.c:1109 +msgctxt "menu" +msgid "darkroom" +msgstr "ciemnia" + +#: ../src/gui/gtk.c:1115 +msgctxt "menu" +msgid "slideshow" +msgstr "pokaz slajdów" + +#: ../src/gui/gtk.c:1117 +msgctxt "menu" +msgid "map" +msgstr "mapa" + +#: ../src/gui/gtk.c:1119 +msgctxt "menu" +msgid "print" +msgstr "wydruk" + +#: ../src/gui/gtk.c:1121 +msgctxt "menu" +msgid "tethering" +msgstr "tethering" + +#. Help menu +#: ../src/gui/gtk.c:1127 +msgctxt "menu" +msgid "Help" +msgstr "pomoc" + +#: ../src/gui/gtk.c:1131 +msgctxt "menu" +msgid "darktable Manual" +msgstr "Instrukcja obsługi darktable" + +#: ../src/gui/gtk.c:1138 +msgctxt "menu" +msgid "darktable Homepage" +msgstr "Strona Projektu darktable" + +#: ../src/gui/gtk.c:1162 +msgctxt "menu" +msgid "Preferences" +msgstr "Ustawienia" + +#: ../src/gui/gtk.c:1232 msgid "panels" msgstr "panele" -#. an action that does nothing - used for overriding/removing default shortcuts -#: ../src/gui/gtk.c:1184 -msgid "no-op" -msgstr "brak operacji" - -#: ../src/gui/gtk.c:1186 +#: ../src/gui/gtk.c:1264 msgid "switch views" msgstr "przełącz widoki" -#: ../src/gui/gtk.c:1187 ../src/views/tethering.c:102 +#: ../src/gui/gtk.c:1265 ../src/views/tethering.c:102 msgid "tethering" msgstr "tethering" -#: ../src/gui/gtk.c:1188 ../src/gui/preferences.c:531 -#: ../src/gui/preferences.c:542 ../src/libs/tools/lighttable.c:66 -#: ../src/views/lighttable.c:91 -msgid "lighttable" -msgstr "stół podświetlany" - -#: ../src/gui/gtk.c:1189 ../src/gui/preferences.c:532 -#: ../src/gui/preferences.c:542 ../src/views/darkroom.c:94 -msgid "darkroom" -msgstr "ciemnia" - -#: ../src/gui/gtk.c:1190 ../src/views/map.c:197 +#: ../src/gui/gtk.c:1268 ../src/views/map.c:197 msgid "map" msgstr "mapa" -#: ../src/gui/gtk.c:1191 ../src/views/slideshow.c:389 +#: ../src/gui/gtk.c:1269 ../src/views/slideshow.c:390 msgid "slideshow" msgstr "pokaz slajdów" #. Print button -#: ../src/gui/gtk.c:1192 ../src/libs/print_settings.c:2885 +#: ../src/gui/gtk.c:1270 ../src/libs/print_settings.c:2885 msgid "print" msgstr "wydruk" #. register ctrl-q to quit: -#: ../src/gui/gtk.c:1198 +#: ../src/gui/gtk.c:1276 msgid "quit" msgstr "wyjdź" #. Full-screen accelerator (no ESC handler here to enable quit-slideshow using ESC) -#: ../src/gui/gtk.c:1201 +#: ../src/gui/gtk.c:1279 msgid "fullscreen" msgstr "pełny ekran" -#: ../src/gui/gtk.c:1205 +#: ../src/gui/gtk.c:1283 msgid "collapsing controls" msgstr "widoczność przycisków ukrywania" #. specific top/bottom toggles -#: ../src/gui/gtk.c:1207 +#: ../src/gui/gtk.c:1285 msgid "header" msgstr "nagłówek" -#: ../src/gui/gtk.c:1208 +#: ../src/gui/gtk.c:1286 msgid "filmstrip and timeline" msgstr "rolka filmu i linia czasu" -#: ../src/gui/gtk.c:1209 +#: ../src/gui/gtk.c:1287 msgid "top toolbar" msgstr "górny panel" -#: ../src/gui/gtk.c:1210 +#: ../src/gui/gtk.c:1288 msgid "bottom toolbar" msgstr "dolny panel" -#: ../src/gui/gtk.c:1211 +#: ../src/gui/gtk.c:1289 msgid "all top" msgstr "wszystkie na górze" -#: ../src/gui/gtk.c:1212 +#: ../src/gui/gtk.c:1290 msgid "all bottom" msgstr "wszystkie dolne" -#: ../src/gui/gtk.c:1214 +#: ../src/gui/gtk.c:1292 msgid "toggle tooltip visibility" msgstr "przełącz widoczność podpowiedzi" -#: ../src/gui/gtk.c:1215 +#: ../src/gui/gtk.c:1293 msgid "reinitialise input devices" msgstr "ponownie zainicjuj urządzenia wejściowe" -#: ../src/gui/gtk.c:1253 +#: ../src/gui/gtk.c:1331 msgid "toggle focus-peaking mode" msgstr "przełącz wykrywanie ostrości" #. toggle focus peaking everywhere -#: ../src/gui/gtk.c:1258 +#: ../src/gui/gtk.c:1336 msgid "toggle focus peaking" msgstr "przełącz podgląd ostrości" -#: ../src/gui/gtk.c:1594 ../src/gui/gtk.c:3143 ../src/gui/gtk.c:3148 -#: ../src/gui/gtk.c:3153 ../src/gui/gtk.c:3158 +#: ../src/gui/gtk.c:1654 ../src/gui/gtk.c:3189 ../src/gui/gtk.c:3194 +#: ../src/gui/gtk.c:3199 ../src/gui/gtk.c:3204 msgid "tabs" msgstr "karty" -#: ../src/gui/gtk.c:2535 -msgid "_yes" -msgstr "_tak" - -#: ../src/gui/gtk.c:2536 -msgid "_no" -msgstr "_nie" - #. ask the user if darktable.org may be accessed -#: ../src/gui/gtk.c:2647 +#: ../src/gui/gtk.c:2707 msgid "access the online user manual?" msgstr "otworzyć podręcznik użytkownika online?" -#: ../src/gui/gtk.c:2648 +#: ../src/gui/gtk.c:2708 #, c-format msgid "do you want to access `%s'?" msgstr "czy chcesz uzyskać dostęp do „%s”?" -#: ../src/gui/gtk.c:2717 -msgid "help url opened in web browser" -msgstr "url pomocy otwarty w przeglądarce" - -#: ../src/gui/gtk.c:2721 -msgid "error while opening help url in web browser" -msgstr "błąd otwierania url-a pomocy w przeglądarce" - -#: ../src/gui/gtk.c:2732 +#: ../src/gui/gtk.c:2778 msgid "there is no help available for this element" msgstr "pomoc dla tego elementu niedostępna" #. font name can only use period as decimal separator #. but printf format strings use comma for some locales, so replace comma with period -#: ../src/gui/gtk.c:2752 +#: ../src/gui/gtk.c:2798 ../src/libs/metadata_view.c:762 #, c-format msgid "%.1f" msgstr "%.1f" -#: ../src/gui/gtk.c:2754 +#: ../src/gui/gtk.c:2800 #, c-format msgid "Sans %s" msgstr "Sans %s" -#: ../src/gui/gtk.c:3048 +#: ../src/gui/gtk.c:3094 msgid "does not contain pages" msgstr "nie zawiera stron" -#: ../src/gui/gtk.c:3265 +#: ../src/gui/gtk.c:3313 #, c-format msgid "never show more than %d lines" msgstr "nie pokazuj więcej niż %d linii" -#: ../src/gui/gtkentry.c:172 +#: ../src/gui/gtkentry.c:173 msgid "$(ROLL.NAME) - roll of the input image" msgstr "$(ROLL.NAME) - rolka zdjęcia wejściowego" -#: ../src/gui/gtkentry.c:173 +#: ../src/gui/gtkentry.c:174 msgid "$(FILE.FOLDER) - folder containing the input image" msgstr "$(FILE.FOLDER) - katalog zawierający wejściowe zdjęcie" -#: ../src/gui/gtkentry.c:174 +#: ../src/gui/gtkentry.c:175 msgid "$(FILE.NAME) - basename of the input image" msgstr "$(FILE.NAME) - nazwa bazowa wejściowego zdjęcia" -#: ../src/gui/gtkentry.c:175 +#: ../src/gui/gtkentry.c:176 msgid "$(FILE.EXTENSION) - extension of the input image" msgstr "$(FILE.EXTENSION) - rozszerzenie wejściowego zdjęcia" -#: ../src/gui/gtkentry.c:176 +#: ../src/gui/gtkentry.c:177 msgid "$(VERSION) - duplicate version" msgstr "$(VERSION) - wersja duplikatu" -#: ../src/gui/gtkentry.c:177 +#: ../src/gui/gtkentry.c:178 msgid "" "$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version " "exists" @@ -10316,275 +10806,284 @@ "$(VERSION.IF_MULTI) - to samo co $(VERSION) ale zwraca puste, jeśli istnieje " "tylko jedna wersja" -#: ../src/gui/gtkentry.c:178 +#: ../src/gui/gtkentry.c:179 msgid "$(VERSION.NAME) - version name from metadata" msgstr "$(VERSION.NAME) - nazwa wersji z metadanych" -#: ../src/gui/gtkentry.c:179 +#: ../src/gui/gtkentry.c:180 msgid "$(JOBCODE) - job code for import" msgstr "$(JOBCODE) - kod pracy dla importowania" -#: ../src/gui/gtkentry.c:180 +#: ../src/gui/gtkentry.c:181 msgid "$(SEQUENCE) - sequence number" msgstr "$(SEQUENCE) - numer sekwencji" -#: ../src/gui/gtkentry.c:181 +#: ../src/gui/gtkentry.c:182 msgid "$(WIDTH.MAX) - maximum image export width" msgstr "$(WIDTH.MAX) - największa szerokość eksportowanego zdjęcia" -#: ../src/gui/gtkentry.c:182 +#: ../src/gui/gtkentry.c:183 msgid "$(WIDTH.SENSOR) - image sensor width" msgstr "$(WIDTH.SENSOR) - szerokość matrycy" -#: ../src/gui/gtkentry.c:183 +#: ../src/gui/gtkentry.c:184 msgid "$(WIDTH.RAW) - RAW image width" msgstr "$(WIDTH.RAW) – szerokość zdjęcia raw" -#: ../src/gui/gtkentry.c:184 +#: ../src/gui/gtkentry.c:185 msgid "$(WIDTH.CROP) - image width after crop" msgstr "$(WIDTH.CROP) - szerokość zdjęcia po przycięciu" -#: ../src/gui/gtkentry.c:185 +#: ../src/gui/gtkentry.c:186 msgid "$(WIDTH.EXPORT) - exported image width" msgstr "$(WIDTH.EXPORT) - szerokość eksportowanego obrazu" -#: ../src/gui/gtkentry.c:186 +#: ../src/gui/gtkentry.c:187 msgid "$(HEIGHT.MAX) - maximum image export height" msgstr "$(HEIGHT.MAX) - największa wysokość eksportowanego zdjęcia" -#: ../src/gui/gtkentry.c:187 +#: ../src/gui/gtkentry.c:188 msgid "$(HEIGHT.SENSOR) - image sensor height" msgstr "$(HEIGHT.SENSOR) - wysokość matrycy" -#: ../src/gui/gtkentry.c:188 +#: ../src/gui/gtkentry.c:189 msgid "$(HEIGHT.RAW) - RAW image height" msgstr "$(HEIGHT.RAW) – wysokość zdjęcia raw" -#: ../src/gui/gtkentry.c:189 +#: ../src/gui/gtkentry.c:190 msgid "$(HEIGHT.CROP) - image height after crop" msgstr "$(HEIGHT.CROP) - wysokość obrazu po kadrowaniu" -#: ../src/gui/gtkentry.c:190 +#: ../src/gui/gtkentry.c:191 msgid "$(HEIGHT.EXPORT) - exported image height" msgstr "$(HEIGHT.EXPORT) - wysokość eksportowanego obrazu" -#: ../src/gui/gtkentry.c:191 +#: ../src/gui/gtkentry.c:192 msgid "$(YEAR) - year" msgstr "$(YEAR) - rok" -#: ../src/gui/gtkentry.c:192 +#: ../src/gui/gtkentry.c:193 msgid "$(YEAR.SHORT) - year without century" msgstr "$(YEAR.SHORT) - rok bez tysiąclecia" -#: ../src/gui/gtkentry.c:193 +#: ../src/gui/gtkentry.c:194 msgid "$(MONTH) - month" msgstr "$(MONTH) - miesiąc" -#: ../src/gui/gtkentry.c:194 +#: ../src/gui/gtkentry.c:195 msgid "$(MONTH.SHORT) - abbreviated month name according to the current locale" msgstr "$(MONTH.SHORT) - skrócona nazwa miesiąca w języku lokalnym" -#: ../src/gui/gtkentry.c:195 +#: ../src/gui/gtkentry.c:196 msgid "$(MONTH.LONG) - full month name according to the current locale" msgstr "$(MONTH.LONG) - pełna nazwa miesiąca w języku lokalnym" -#: ../src/gui/gtkentry.c:196 +#: ../src/gui/gtkentry.c:197 msgid "$(DAY) - day" msgstr "$(DAY) - dzień" -#: ../src/gui/gtkentry.c:197 +#: ../src/gui/gtkentry.c:198 msgid "$(HOUR) - hour" msgstr "$(HOUR) - godzina" -#: ../src/gui/gtkentry.c:198 +#: ../src/gui/gtkentry.c:199 msgid "$(HOUR.AMPM) - hour, 12-hour clock" msgstr "$(HOUR.AMPM) - godzina w systemie 12-godzinnym" -#: ../src/gui/gtkentry.c:199 +#: ../src/gui/gtkentry.c:200 msgid "$(MINUTE) - minute" msgstr "$(MINUTE) - minuta" -#: ../src/gui/gtkentry.c:200 +#: ../src/gui/gtkentry.c:201 msgid "$(SECOND) - second" msgstr "$(SECOND) - sekunda" -#: ../src/gui/gtkentry.c:201 +#: ../src/gui/gtkentry.c:202 msgid "$(MSEC) - millisecond" msgstr "$(MSEC) - milisekunda" -#: ../src/gui/gtkentry.c:202 +#: ../src/gui/gtkentry.c:203 msgid "$(EXIF.YEAR) - EXIF year" msgstr "$(EXIF.YEAR) - rok z EXIF" -#: ../src/gui/gtkentry.c:203 +#: ../src/gui/gtkentry.c:204 msgid "$(EXIF.YEAR.SHORT) - EXIF year without century" msgstr "$(EXIF.YEAR.SHORT) - rok z EXIF bez wieku" -#: ../src/gui/gtkentry.c:204 +#: ../src/gui/gtkentry.c:205 msgid "$(EXIF.MONTH) - EXIF month" msgstr "$(EXIF.MONTH) - miesiąc z EXIF" -#: ../src/gui/gtkentry.c:205 +#: ../src/gui/gtkentry.c:206 msgid "" "$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current " "locale" msgstr "$(EXIF.MONTH.SHORT) — skrócona nazwa miesiąca z EXIF w języku lokalnym" -#: ../src/gui/gtkentry.c:206 +#: ../src/gui/gtkentry.c:207 msgid "" "$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" msgstr "$(EXIF.MONTH.LONG) - pełna nazwa miesiąca EXIF w języku lokalnym" -#: ../src/gui/gtkentry.c:207 +#: ../src/gui/gtkentry.c:208 msgid "$(EXIF.DAY) - EXIF day" msgstr "$(EXIF.DAY) - dzień z EXIF" -#: ../src/gui/gtkentry.c:208 +#: ../src/gui/gtkentry.c:209 msgid "$(EXIF.HOUR) - EXIF hour" msgstr "$(EXIF.HOUR) - godzina z EXIF" -#: ../src/gui/gtkentry.c:209 +#: ../src/gui/gtkentry.c:210 msgid "$(EXIF.HOUR.AMPM) - EXIF hour, 12-hour clock" msgstr "$(EXIF.HOUR.AMPM) - godzina z EXIF 12-godzinna" -#: ../src/gui/gtkentry.c:210 +#: ../src/gui/gtkentry.c:211 msgid "$(EXIF.MINUTE) - EXIF minute" msgstr "$(EXIF.MINUTE) - minuta z EXIF" -#: ../src/gui/gtkentry.c:211 +#: ../src/gui/gtkentry.c:212 msgid "$(EXIF.SECOND) - EXIF second" msgstr "$(EXIF.SECOND) - sekunda z EXIF" -#: ../src/gui/gtkentry.c:212 +#: ../src/gui/gtkentry.c:213 msgid "$(EXIF.MSEC) - EXIF millisecond" msgstr "$(EXIF.MSEC) - milisekunda z EXIF" -#: ../src/gui/gtkentry.c:213 +#: ../src/gui/gtkentry.c:214 msgid "$(EXIF.ISO) - ISO value" msgstr "$(EXIF.ISO) - wartość ISO z EXIF" -#: ../src/gui/gtkentry.c:214 +#: ../src/gui/gtkentry.c:215 msgid "$(EXIF.EXPOSURE) - EXIF exposure" msgstr "$(EXIF.EXPOSURE) - ekspozycja EXIF" -#: ../src/gui/gtkentry.c:215 +#: ../src/gui/gtkentry.c:216 msgid "$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias" msgstr "$($(EXIF.EXPOSURE.BIAS) - przesunięcie ekspozycji EXIF" -#: ../src/gui/gtkentry.c:216 +#: ../src/gui/gtkentry.c:217 msgid "$(EXIF.APERTURE) - EXIF aperture" msgstr "$(EXIF.APERTURE) - przysłona EXIF" -#: ../src/gui/gtkentry.c:217 +#: ../src/gui/gtkentry.c:218 +msgid "$(EXIF.CROP_FACTOR) - EXIF crop factor" +msgstr "$(EXIF.CROP_FACTOR) - stosunek wielkości matrycy z EXIF" + +#: ../src/gui/gtkentry.c:219 msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" msgstr "$(EXIF.FOCAL_LENGTH) - ogniskowa EXIF" -#: ../src/gui/gtkentry.c:218 +#: ../src/gui/gtkentry.c:220 +msgid "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent focal length" +msgstr "" +"$(EXIF.FOCAL_LENGTH.EQUIV) - ogniskowa z EXIF w ekwiwalencie matrycy 35mm" + +#: ../src/gui/gtkentry.c:221 msgid "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" msgstr "$(EXIF.FOCUS_DISTANCE) - odległość EXIF" -#: ../src/gui/gtkentry.c:219 +#: ../src/gui/gtkentry.c:222 msgid "$(EXIF.MAKER) - camera maker" msgstr "$(EXIF.MAKER) - producent aparatu" -#: ../src/gui/gtkentry.c:220 +#: ../src/gui/gtkentry.c:223 msgid "$(EXIF.MODEL) - camera model" msgstr "$(EXIF.MODEL) - model aparatu" -#: ../src/gui/gtkentry.c:221 +#: ../src/gui/gtkentry.c:224 msgid "$(EXIF.LENS) - lens" msgstr "$(EXIF.LENS) - obiektyw" -#: ../src/gui/gtkentry.c:222 +#: ../src/gui/gtkentry.c:225 msgid "$(LONGITUDE) - longitude" msgstr "$(LONGITUDE) - długość geograficzna" -#: ../src/gui/gtkentry.c:223 +#: ../src/gui/gtkentry.c:226 msgid "$(LATITUDE) - latitude" msgstr "$(LATITUDE) - szerokość geograficzna" -#: ../src/gui/gtkentry.c:224 +#: ../src/gui/gtkentry.c:227 msgid "$(ELEVATION) - elevation" msgstr "$(ELEVATION) - elewacja" -#: ../src/gui/gtkentry.c:225 +#: ../src/gui/gtkentry.c:228 msgid "$(STARS) - star rating as number (-1 for rejected)" msgstr "$(STARS) - ocena zdjęcia (-1 dla odrzuconych)" -#: ../src/gui/gtkentry.c:226 +#: ../src/gui/gtkentry.c:229 msgid "$(RATING.ICONS) - star/reject rating in icon form" msgstr "$(RATING.ICONS) - gwiazdki/odrzucone w formie ikon" -#: ../src/gui/gtkentry.c:227 +#: ../src/gui/gtkentry.c:230 msgid "$(LABELS) - color labels as text" msgstr "$(LABELS) - kolorowe etykiety jako tekst" -#: ../src/gui/gtkentry.c:228 +#: ../src/gui/gtkentry.c:231 msgid "$(LABELS.ICONS) - color labels as icons" msgstr "$(LABELS.ICONS) - kolorowe etykiety jako ikony" -#: ../src/gui/gtkentry.c:229 +#: ../src/gui/gtkentry.c:232 msgid "$(ID) - image ID" msgstr "$(ID) – identyfikator zdjęcia" -#: ../src/gui/gtkentry.c:230 +#: ../src/gui/gtkentry.c:233 msgid "$(TITLE) - title from metadata" msgstr "$(TITLE) - tytuł z metadanych" -#: ../src/gui/gtkentry.c:231 +#: ../src/gui/gtkentry.c:234 msgid "$(DESCRIPTION) - description from metadata" msgstr "$(DESCRIPTION) - opis z metadanych" -#: ../src/gui/gtkentry.c:232 +#: ../src/gui/gtkentry.c:235 msgid "$(CREATOR) - creator from metadata" msgstr "$(CREATOR) - twórca z metadanych" -#: ../src/gui/gtkentry.c:233 +#: ../src/gui/gtkentry.c:236 msgid "$(PUBLISHER) - publisher from metadata" msgstr "$(PUBLISHER) - wydawca z metadanych" -#: ../src/gui/gtkentry.c:234 +#: ../src/gui/gtkentry.c:237 msgid "$(RIGHTS) - rights from metadata" msgstr "$(RIGHTS) - uprawnienia z metadanych" -#: ../src/gui/gtkentry.c:235 +#: ../src/gui/gtkentry.c:238 msgid "$(USERNAME) - login name" msgstr "$(USERNAME) - nazwa użytkownika" -#: ../src/gui/gtkentry.c:236 +#: ../src/gui/gtkentry.c:239 msgid "$(FOLDER.PICTURES) - pictures folder" msgstr "$(FOLDER.PICTURES) - katalog zdjęć" -#: ../src/gui/gtkentry.c:237 +#: ../src/gui/gtkentry.c:240 msgid "$(FOLDER.HOME) - home folder" msgstr "$(FOLDER.HOME) - katalog domowy" -#: ../src/gui/gtkentry.c:238 +#: ../src/gui/gtkentry.c:241 msgid "$(FOLDER.DESKTOP) - desktop folder" msgstr "$(FOLDER.DESKTOP) - pulpit" -#: ../src/gui/gtkentry.c:239 +#: ../src/gui/gtkentry.c:242 msgid "$(OPENCL.ACTIVATED) - whether OpenCL is activated" msgstr "$(OPENCL.ACTIVATED) - wskazuje czy OpenCL jest aktywny" -#: ../src/gui/gtkentry.c:240 +#: ../src/gui/gtkentry.c:243 msgid "$(CATEGORY0(category)) - subtag of level 0 in hierarchical tags" msgstr "" "$(CATEGORY0(category)) - podetykieta poziomu 0 w etykietach hierarchicznych" -#: ../src/gui/gtkentry.c:241 +#: ../src/gui/gtkentry.c:244 msgid "$(TAGS) - tags as set in metadata settings" msgstr "$(TAGS) - etykiety zgodnie z ustawieniami metadanych" -#: ../src/gui/gtkentry.c:242 +#: ../src/gui/gtkentry.c:245 msgid "$(DARKTABLE.NAME) - darktable name" msgstr "$(DARKTABLE.NAME) - nazwa darktable" -#: ../src/gui/gtkentry.c:243 +#: ../src/gui/gtkentry.c:246 msgid "$(DARKTABLE.VERSION) - current darktable version" msgstr "$(DARKTABLE.VERSION) - bieżąca wersja darktable" -#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:255 +#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:248 msgid "grid" msgstr "siatka" @@ -10654,11 +11153,11 @@ msgstr "ogólne ustawienia nakładki prowadnic" #: ../src/gui/guides.c:710 ../src/gui/guides.c:719 ../src/gui/guides.c:727 -#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2648 +#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2494 msgid "guide lines" msgstr "prowadnice" -#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2092 +#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2145 msgid "flip" msgstr "odbicie" @@ -10674,8 +11173,8 @@ msgid "vertically" msgstr "w pionie" -#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6285 ../src/iop/clipping.c:2096 -#: ../src/iop/colorbalance.c:1917 +#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6232 ../src/iop/clipping.c:2149 +#: ../src/iop/colorbalance.c:1892 msgid "both" msgstr "w poziomie i pionie" @@ -10723,26 +11222,26 @@ msgid "select parts to paste" msgstr "wybierz części do wklejenia" -#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:517 +#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:524 msgid "select _all" msgstr "wybierz _wszystko" -#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:518 +#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:525 msgid "select _none" msgstr "_bez wybierania" -#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:593 -#: ../src/gui/styles_dialog.c:615 +#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:605 +#: ../src/gui/styles_dialog.c:627 msgid "include" msgstr "uwzględnij" -#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:669 -#: ../src/gui/styles_dialog.c:675 +#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:681 +#: ../src/gui/styles_dialog.c:687 msgid "item" msgstr "element" -#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:682 -#: ../src/gui/styles_dialog.c:691 +#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:694 +#: ../src/gui/styles_dialog.c:703 msgid "mask" msgstr "maska" @@ -10796,11 +11295,11 @@ msgid "interface language" msgstr "język interfejsu" -#: ../src/gui/preferences.c:289 +#: ../src/gui/preferences.c:290 msgid "double-click to reset to the system language" msgstr "kliknij dwukrotnie, aby zresetować do języka systemowego" -#: ../src/gui/preferences.c:291 +#: ../src/gui/preferences.c:292 msgid "" "set the language of the user interface. the system default is marked with an " "* (needs a restart)" @@ -10808,27 +11307,27 @@ "ustaw język interfejsu użytkownika. domyślny jest zaznaczony * (wymaga " "restartu)" -#: ../src/gui/preferences.c:300 +#: ../src/gui/preferences.c:301 msgid "theme" msgstr "motyw" -#: ../src/gui/preferences.c:328 +#: ../src/gui/preferences.c:331 msgid "set the theme for the user interface" msgstr "wybierz motyw interfejsu użytkownika" -#: ../src/gui/preferences.c:341 ../src/gui/preferences.c:348 +#: ../src/gui/preferences.c:344 ../src/gui/preferences.c:351 msgid "use system font size" msgstr "używaj systemowego rozmiaru czcionki" -#: ../src/gui/preferences.c:357 ../src/gui/preferences.c:364 +#: ../src/gui/preferences.c:360 ../src/gui/preferences.c:367 msgid "font size in points" msgstr "rozmiar czcionki w punktach" -#: ../src/gui/preferences.c:369 +#: ../src/gui/preferences.c:372 msgid "GUI controls and text DPI" msgstr "DPI kontrolek GUI i tekstu" -#: ../src/gui/preferences.c:376 +#: ../src/gui/preferences.c:379 msgid "" "adjust the global GUI resolution to rescale controls, buttons, labels, etc.\n" "increase for a magnified GUI, decrease to fit more content in window.\n" @@ -10844,77 +11343,61 @@ "(wymaga restartu)" #. checkbox to allow user to modify theme with user.css -#: ../src/gui/preferences.c:385 +#: ../src/gui/preferences.c:388 msgid "modify selected theme with CSS tweaks below" msgstr "zmodyfikuj wybrany motyw przy użyciu CSS poniżej" -#: ../src/gui/preferences.c:393 +#: ../src/gui/preferences.c:396 msgid "modify theme with CSS keyed below (saved to user.css)" msgstr "użyj poniższych modyfikacji motywu (zapisywane do user.css)" -#: ../src/gui/preferences.c:415 +#: ../src/gui/preferences.c:418 msgctxt "usercss" msgid "save CSS and apply" msgstr "zapisz CSS i zastosuj" -#: ../src/gui/preferences.c:420 +#: ../src/gui/preferences.c:423 msgid "click to save and apply the CSS tweaks entered in this editor" msgstr "kliknij, żeby zapisać i zastosować zmiany CSS z tego edytora" -#: ../src/gui/preferences.c:422 +#: ../src/gui/preferences.c:425 msgid "open help page for CSS tweaks" msgstr "otwórz stronę pomocy dla modyfikacji CSS" #. load default text with some pointers -#: ../src/gui/preferences.c:443 +#: ../src/gui/preferences.c:446 msgid "ERROR Loading user.css" msgstr "BŁĄD Ładowanie user.css" #. load default text -#: ../src/gui/preferences.c:452 +#: ../src/gui/preferences.c:455 msgid "Enter CSS theme tweaks here" msgstr "Tutaj wprowadź zmiany w motywie CSS" -#: ../src/gui/preferences.c:488 +#: ../src/gui/preferences.c:491 msgid "darktable preferences" msgstr "ustawienia darktable" -#: ../src/gui/preferences.c:533 -msgid "processing" -msgstr "przetwarzanie" - -#: ../src/gui/preferences.c:534 -msgid "security" -msgstr "zabezpieczenia" - -#: ../src/gui/preferences.c:535 -msgid "storage" -msgstr "miejsca danych" - -#: ../src/gui/preferences.c:536 -msgid "miscellaneous" -msgstr "różne" - -#: ../src/gui/preferences.c:561 +#: ../src/gui/preferences.c:559 msgid "darktable needs to be restarted for settings to take effect" msgstr "darktable wymaga restartu aby ustawienia zostały użyte" #. exif -#: ../src/gui/preferences.c:820 ../src/gui/presets.c:644 -#: ../src/libs/metadata_view.c:137 +#: ../src/gui/preferences.c:818 ../src/gui/presets.c:647 +#: ../src/libs/metadata_view.c:139 msgid "model" msgstr "model" -#: ../src/gui/preferences.c:824 ../src/gui/presets.c:652 -#: ../src/libs/metadata_view.c:138 +#: ../src/gui/preferences.c:822 ../src/gui/presets.c:655 +#: ../src/libs/metadata_view.c:140 msgid "maker" msgstr "producent" -#: ../src/gui/preferences.c:861 +#: ../src/gui/preferences.c:859 msgid "search presets list" msgstr "przeszukaj listę presetów" -#: ../src/gui/preferences.c:862 +#: ../src/gui/preferences.c:860 msgid "" "incrementally search the list of presets\n" "press up or down keys to cycle through matches" @@ -10922,70 +11405,70 @@ "przyrostowo przeszukaj listę styli\n" "naciśnij w górę lub w dół, aby przełączyć między wyszukaniami" -#: ../src/gui/preferences.c:868 +#: ../src/gui/preferences.c:866 msgctxt "preferences" msgid "import..." msgstr "importuj..." -#: ../src/gui/preferences.c:872 +#: ../src/gui/preferences.c:870 msgctxt "preferences" msgid "export..." msgstr "eksportuj..." -#: ../src/gui/preferences.c:1031 +#: ../src/gui/preferences.c:1030 #, c-format msgid "failed to import preset %s" msgstr "błąd importu presetu %s" -#: ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1041 msgid "select preset(s) to import" msgstr "wybierz presety do zaimportowania" -#: ../src/gui/preferences.c:1043 ../src/libs/collect.c:408 -#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:929 -#: ../src/libs/import.c:1506 ../src/libs/import.c:1610 ../src/libs/styles.c:527 +#: ../src/gui/preferences.c:1042 ../src/libs/collect.c:425 +#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:930 +#: ../src/libs/import.c:1515 ../src/libs/import.c:1619 ../src/libs/styles.c:529 msgid "_open" msgstr "_otwórz" -#: ../src/gui/preferences.c:1052 +#: ../src/gui/preferences.c:1051 msgid "darktable preset files" msgstr "plik presetów darktable" -#: ../src/gui/preferences.c:1057 ../src/iop/lut3d.c:1577 -#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:945 -#: ../src/libs/styles.c:541 +#: ../src/gui/preferences.c:1056 ../src/iop/lut3d.c:1591 +#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:946 +#: ../src/libs/styles.c:543 msgid "all files" msgstr "wszystkie pliki" -#: ../src/gui/presets.c:59 +#: ../src/gui/presets.c:61 msgid "non-raw" msgstr "inny niż raw" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:332 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:336 msgid "raw" msgstr "raw" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:333 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:337 msgid "HDR" msgstr "HDR" -#: ../src/gui/presets.c:59 ../src/iop/monochrome.c:77 ../src/libs/image.c:608 -#: ../src/libs/metadata_view.c:339 +#: ../src/gui/presets.c:61 ../src/iop/monochrome.c:77 ../src/libs/image.c:679 +#: ../src/libs/metadata_view.c:343 msgid "monochrome" msgstr "monochromatyczność" -#: ../src/gui/presets.c:151 +#: ../src/gui/presets.c:153 #, c-format msgid "preset `%s' is write-protected, can't delete!" msgstr "preset `%s' jest zabezpieczony przed zapisem, nie można go usunąć!" -#: ../src/gui/presets.c:157 ../src/gui/presets.c:461 ../src/libs/lib.c:238 -#: ../src/libs/modulegroups.c:3701 +#: ../src/gui/presets.c:159 ../src/gui/presets.c:463 ../src/libs/lib.c:238 +#: ../src/libs/modulegroups.c:3703 msgid "delete preset?" msgstr "usunąć preset?" -#: ../src/gui/presets.c:158 ../src/gui/presets.c:462 ../src/libs/lib.c:239 -#: ../src/libs/modulegroups.c:3702 +#: ../src/gui/presets.c:160 ../src/gui/presets.c:464 ../src/libs/lib.c:239 +#: ../src/libs/modulegroups.c:3704 #, c-format msgid "do you really want to delete the preset `%s'?" msgstr "na pewno usunąć preset „%s”?" @@ -10996,25 +11479,25 @@ #. clang-format on #. create a shortcut for the new entry #. then show edit dialog -#: ../src/gui/presets.c:200 ../src/gui/presets.c:1035 ../src/gui/presets.c:1038 -#: ../src/gui/presets.c:1041 ../src/libs/lib.c:188 ../src/libs/lib.c:205 +#: ../src/gui/presets.c:202 ../src/gui/presets.c:1022 ../src/gui/presets.c:1025 +#: ../src/gui/presets.c:1028 ../src/libs/lib.c:188 ../src/libs/lib.c:205 #: ../src/libs/lib.c:213 ../src/libs/lib.c:216 msgid "new preset" msgstr "nowe ustawienia" -#: ../src/gui/presets.c:207 +#: ../src/gui/presets.c:209 msgid "please give preset a name" msgstr "proszę nadać nazwę ustawieniu" -#: ../src/gui/presets.c:212 +#: ../src/gui/presets.c:214 msgid "unnamed preset" msgstr "ustawienie bez nazwy" -#: ../src/gui/presets.c:241 +#: ../src/gui/presets.c:243 msgid "overwrite preset?" msgstr "nadpisać zapisane ustawienie?" -#: ../src/gui/presets.c:242 +#: ../src/gui/presets.c:244 #, c-format msgid "" "preset `%s' already exists.\n" @@ -11023,38 +11506,43 @@ "zapisane ustawienie „%s” już istnieje.\n" "czy chcesz je nadpisać?" -#: ../src/gui/presets.c:420 ../src/imageio/storage/disk.c:123 -#: ../src/imageio/storage/gallery.c:110 ../src/imageio/storage/latex.c:109 +#: ../src/gui/presets.c:422 ../src/imageio/storage/disk.c:198 +#: ../src/imageio/storage/gallery.c:150 ../src/imageio/storage/latex.c:146 msgid "_select as output destination" msgstr "_wybierz jako miejsce docelowe" -#: ../src/gui/presets.c:429 +#: ../src/gui/presets.c:431 #, c-format msgid "preset %s was successfully exported" msgstr "pomyślnie wyeksportowano preset %s" -#: ../src/gui/presets.c:557 +#: ../src/gui/presets.c:559 #, c-format msgid "edit `%s' for module `%s'" msgstr "edycja „%s” dla modułu „%s”" -#: ../src/gui/presets.c:561 +#: ../src/gui/presets.c:563 msgid "_export..." msgstr "_eksportuj..." -#: ../src/gui/presets.c:585 +#: ../src/gui/presets.c:564 ../src/libs/tagging.c:1489 +#: ../src/libs/tagging.c:1580 +msgid "_delete" +msgstr "_skasuj" + +#: ../src/gui/presets.c:588 msgid "name of the preset" msgstr "nazwa ustawienia" -#: ../src/gui/presets.c:594 +#: ../src/gui/presets.c:597 msgid "description or further information" msgstr "opis lub dalsze informacje" -#: ../src/gui/presets.c:598 +#: ../src/gui/presets.c:601 msgid "reset all module parameters to their default values" msgstr "resetuj wszystkie parametry modułów do domyślnych" -#: ../src/gui/presets.c:601 +#: ../src/gui/presets.c:604 msgid "" "the parameters will be reset to their default values, which may be " "automatically set based on image metadata" @@ -11062,40 +11550,40 @@ "parametry zostaną przywrócone do domyślnych, które mogą być automatycznie " "ustawione na podstawie metadanych" -#: ../src/gui/presets.c:607 +#: ../src/gui/presets.c:610 msgid "auto apply this preset to matching images" msgstr "automatycznie zastosuj to ustawienie do pasujących zdjęć" -#: ../src/gui/presets.c:611 +#: ../src/gui/presets.c:614 msgid "only show this preset for matching images" msgstr "wyświetlaj to ustawienie tylko dla pasujących zdjęć" -#: ../src/gui/presets.c:613 +#: ../src/gui/presets.c:616 msgid "" "be very careful with this option. this might be the last time you see your " "preset." msgstr "proszę zachować ostrożność. ustawienie może zostać utracone na zawsze." -#: ../src/gui/presets.c:643 +#: ../src/gui/presets.c:646 #, no-c-format msgid "string to match model (use % as wildcard)" msgstr "wyszukiwanie modelu (można użyć % jako wieloznacznik)" -#: ../src/gui/presets.c:651 +#: ../src/gui/presets.c:654 #, no-c-format msgid "string to match maker (use % as wildcard)" msgstr "wyszukiwanie producenta (można użyć % jako wieloznacznik)" -#: ../src/gui/presets.c:659 +#: ../src/gui/presets.c:662 #, no-c-format msgid "string to match lens (use % as wildcard)" msgstr "wyszukiwanie obiektywu (można użyć % jako wieloznacznik)" -#: ../src/gui/presets.c:669 +#: ../src/gui/presets.c:672 msgid "minimum ISO value" msgstr "najmniejsza wartość ISO" -#: ../src/gui/presets.c:675 +#: ../src/gui/presets.c:678 msgid "" "maximum ISO value\n" "if left blank, it is equivalent to no upper limit" @@ -11103,70 +11591,70 @@ "maksymalna wartość ISO\n" "jeśli puste, brak limitu" -#: ../src/gui/presets.c:688 +#: ../src/gui/presets.c:691 msgid "minimum exposure time" msgstr "najkrótszy czas naświetlania" -#: ../src/gui/presets.c:689 +#: ../src/gui/presets.c:692 msgid "maximum exposure time" msgstr "najdłuższy czas naświetlania" -#: ../src/gui/presets.c:705 +#: ../src/gui/presets.c:708 msgid "minimum aperture value" msgstr "najmniejsza wartość przysłony" -#: ../src/gui/presets.c:706 +#: ../src/gui/presets.c:709 msgid "maximum aperture value" msgstr "największa wartość przysłony" -#: ../src/gui/presets.c:724 +#: ../src/gui/presets.c:727 msgid "minimum focal length" msgstr "najkrótsza ogniskowa" -#: ../src/gui/presets.c:725 +#: ../src/gui/presets.c:728 msgid "maximum focal length" msgstr "najdłuższa ogniskowa" #. raw/hdr/ldr/mono/color -#: ../src/gui/presets.c:733 ../src/imageio/format/j2k.c:650 +#: ../src/gui/presets.c:736 msgid "format" msgstr "format" -#: ../src/gui/presets.c:738 +#: ../src/gui/presets.c:741 msgid "select image types you want this preset to be available for" msgstr "wybierz typy obrazów, dla których ten preset ma być dostępny" -#: ../src/gui/presets.c:751 ../src/libs/filtering.c:1201 +#: ../src/gui/presets.c:754 ../src/libs/filtering.c:1263 msgid "and" msgstr "oraz" -#: ../src/gui/presets.c:795 ../src/gui/presets.c:847 +#: ../src/gui/presets.c:798 ../src/gui/presets.c:850 msgid "∞" msgstr "∞" -#: ../src/gui/presets.c:979 +#: ../src/gui/presets.c:966 #, c-format msgid "preset `%s' is write-protected! can't edit it!" msgstr "preset `%s' jest zabezpieczony przed zapisem, nie można go edytować!" -#: ../src/gui/presets.c:1003 ../src/libs/lib.c:158 +#: ../src/gui/presets.c:990 ../src/libs/lib.c:158 msgid "update preset?" msgstr "zaktualizować preset?" -#: ../src/gui/presets.c:1004 ../src/libs/lib.c:159 +#: ../src/gui/presets.c:991 ../src/libs/lib.c:159 #, c-format msgid "do you really want to update the preset `%s'?" msgstr "na pewno nadpisać preset „%s”?" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(first)" msgstr "(pierwszy)" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(last)" msgstr "(ostatni)" -#: ../src/gui/presets.c:1165 +#: ../src/gui/presets.c:1152 #, c-format msgid "" "preset %s\n" @@ -11175,63 +11663,63 @@ "preset %s\n" "%s" -#: ../src/gui/presets.c:1166 +#: ../src/gui/presets.c:1153 msgid "no presets" msgstr "brak presetów" -#: ../src/gui/presets.c:1199 ../src/iop/basecurve.c:528 -#: ../src/iop/basecurve.c:532 ../src/iop/basecurve.c:535 +#: ../src/gui/presets.c:1188 ../src/iop/basecurve.c:575 +#: ../src/iop/basecurve.c:579 ../src/iop/basecurve.c:582 msgid "display-referred default" msgstr "display-referred, domyślny" -#: ../src/gui/presets.c:1201 ../src/iop/channelmixerrgb.c:332 -#: ../src/iop/channelmixerrgb.c:336 ../src/iop/channelmixerrgb.c:339 -#: ../src/iop/exposure.c:297 ../src/iop/exposure.c:301 -#: ../src/iop/exposure.c:304 ../src/iop/filmicrgb.c:3248 -#: ../src/iop/filmicrgb.c:3252 ../src/iop/filmicrgb.c:3255 -#: ../src/iop/sigmoid.c:134 ../src/iop/sigmoid.c:138 ../src/iop/sigmoid.c:141 +#: ../src/gui/presets.c:1190 ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:400 ../src/iop/channelmixerrgb.c:403 +#: ../src/iop/exposure.c:319 ../src/iop/exposure.c:323 +#: ../src/iop/exposure.c:326 ../src/iop/filmicrgb.c:3311 +#: ../src/iop/filmicrgb.c:3315 ../src/iop/filmicrgb.c:3318 +#: ../src/iop/sigmoid.c:240 ../src/iop/sigmoid.c:243 ../src/iop/sigmoid.c:245 msgid "scene-referred default" msgstr "domyślny dla scenocentrycznego" -#: ../src/gui/presets.c:1393 ../src/libs/modulegroups.c:3781 -#: ../src/libs/modulegroups.c:3790 +#: ../src/gui/presets.c:1394 ../src/libs/modulegroups.c:3783 +#: ../src/libs/modulegroups.c:3792 msgid "manage module layouts" msgstr "zarządzaj układem modułów" -#: ../src/gui/presets.c:1402 +#: ../src/gui/presets.c:1403 msgid "manage quick presets" msgstr "zarządzaj szybkimi presetami" -#: ../src/gui/presets.c:1586 +#: ../src/gui/presets.c:1587 msgid "manage quick presets list..." msgstr "zarządzaj listą szybkich presetów..." -#: ../src/gui/presets.c:1727 +#: ../src/gui/presets.c:1728 msgid "(default)" msgstr "(domyślnie)" -#: ../src/gui/presets.c:1754 +#: ../src/gui/presets.c:1755 msgid "disabled: wrong module version" msgstr "nieaktywne: błędna wersja modułu" -#: ../src/gui/presets.c:1776 ../src/libs/lib.c:551 +#: ../src/gui/presets.c:1777 ../src/libs/lib.c:551 msgid "edit this preset.." msgstr "edytuj to ustawienie.." -#: ../src/gui/presets.c:1781 ../src/libs/lib.c:555 +#: ../src/gui/presets.c:1782 ../src/libs/lib.c:555 msgid "delete this preset" msgstr "usuń ten preset" -#: ../src/gui/presets.c:1788 ../src/libs/lib.c:563 +#: ../src/gui/presets.c:1789 ../src/libs/lib.c:563 msgid "store new preset.." msgstr "zapisz nowy preset..." -#: ../src/gui/presets.c:1796 ../src/libs/lib.c:576 +#: ../src/gui/presets.c:1797 ../src/libs/lib.c:576 msgid "update preset" msgstr "aktualizuj preset" #: ../src/gui/styles_dialog.c:221 ../src/libs/styles.c:437 -#: ../src/libs/styles.c:620 +#: ../src/libs/styles.c:622 msgid "overwrite style?" msgstr "nadpisać styl?" @@ -11257,39 +11745,39 @@ msgid "style %s was successfully saved" msgstr "zapis stylu %s zakończony powodzeniem" -#: ../src/gui/styles_dialog.c:505 +#: ../src/gui/styles_dialog.c:512 msgid "edit style" msgstr "edycja stylu" -#: ../src/gui/styles_dialog.c:506 +#: ../src/gui/styles_dialog.c:513 msgid "duplicate style" msgstr "zduplikuj styl" -#: ../src/gui/styles_dialog.c:507 +#: ../src/gui/styles_dialog.c:514 msgid "creates a duplicate of the style before applying changes" msgstr "tworzy duplikat stylu przed zastosowaniem zmian" -#: ../src/gui/styles_dialog.c:511 +#: ../src/gui/styles_dialog.c:518 msgid "create new style" msgstr "tworzenie nowego stylu" -#: ../src/gui/styles_dialog.c:549 +#: ../src/gui/styles_dialog.c:557 msgid "enter a name for the new style" msgstr "wprowadź nazwę dla nowego stylu" -#: ../src/gui/styles_dialog.c:554 +#: ../src/gui/styles_dialog.c:565 msgid "enter a description for the new style, this description is searchable" msgstr "wprowadź opis dla nowego stylu, opis będzie dostępny w wyszukiwaniu" -#: ../src/gui/styles_dialog.c:593 +#: ../src/gui/styles_dialog.c:605 msgid "keep" msgstr "zatrzymaj" -#: ../src/gui/styles_dialog.c:820 +#: ../src/gui/styles_dialog.c:832 msgid "can't create style out of unaltered image" msgstr "nie można utworzyć stylu na podstawie niezmienianego zdjęcia" -#: ../src/imageio/imageio.c:804 +#: ../src/imageio/imageio.c:816 #, c-format msgid "" "failed to allocate memory for %s, please lower the threads used for export " @@ -11298,91 +11786,112 @@ "nie udało się przydzielić pamięci dla %s, proszę zmniejszyć liczbę wątków " "używanych do eksportu lub kupić więcej pamięci." -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "thumbnail export" msgstr "eksport miniaturek" -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "export" msgstr "eksport" -#: ../src/imageio/imageio.c:819 +#: ../src/imageio/imageio.c:831 #, c-format msgid "cannot find the style '%s' to apply during export." msgstr "nie można znaleźć stylu „%s” do zastosowania przy eksporcie." -#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:536 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/imageio_libraw.c:295 +msgid "" +"<span foreground='red'><b>WARNING</b></span>: camera is not fully supported!" +msgstr "" + +#: ../src/imageio/imageio_libraw.c:297 +#, c-format +msgid "" +"colors for `%s' could be misrepresented,\n" +"and edits might not be compatible with future versions." +msgstr "" + +#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:641 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "8 bit" msgstr "8 bit" -#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:567 msgid "10 bit" msgstr "10 bit" -#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:567 msgid "12 bit" msgstr "12 bit" -#: ../src/imageio/format/avif.c:431 +#: ../src/imageio/format/avif.c:110 ../src/imageio/format/webp.c:416 +msgid "lossless" +msgstr "bezstratny" + +#: ../src/imageio/format/avif.c:112 ../src/imageio/format/webp.c:416 +msgid "lossy" +msgstr "stratny" + +#: ../src/imageio/format/avif.c:463 msgid "invalid AVIF bit depth!" msgstr "błędna głębia bitowa AVIF!" -#: ../src/imageio/format/avif.c:694 -msgid "AVIF" -msgstr "AVIF" - #. Bit depth combo box -#: ../src/imageio/format/avif.c:766 ../src/imageio/format/exr.cc:565 -#: ../src/imageio/format/jxl.c:555 ../src/imageio/format/pdf.c:661 -#: ../src/imageio/format/png.c:534 ../src/imageio/format/tiff.c:843 +#: ../src/imageio/format/avif.c:800 ../src/imageio/format/exr.cc:601 +#: ../src/imageio/format/jxl.c:566 ../src/imageio/format/pdf.c:661 +#: ../src/imageio/format/png.c:639 ../src/imageio/format/tiff.c:900 #: ../src/imageio/format/xcf.c:354 msgid "bit depth" msgstr "rozdzielczość bitowa" -#: ../src/imageio/format/avif.c:779 +#: ../src/imageio/format/avif.c:813 msgid "color information stored in an image, higher is better" msgstr "poziom informacji o kolorze zapisanej w obrazie, im wyższy tym lepszy" -#: ../src/imageio/format/avif.c:787 +#. +#. * Color mode combo box +#. +#. shortfile option combo box +#: ../src/imageio/format/avif.c:820 ../src/imageio/format/tiff.c:944 +msgid "B&W as grayscale" +msgstr "skala szarości" + +#: ../src/imageio/format/avif.c:821 ../src/imageio/format/tiff.c:945 msgid "saving as grayscale will reduce the size for black & white images" msgstr "zapis w skali szarości zredukuje rozmiar zdjęć czarno-białych" -#: ../src/imageio/format/avif.c:789 -msgid "RGB colors" -msgstr "kolory RGB" - -#: ../src/imageio/format/avif.c:789 -msgid "grayscale" -msgstr "skala szarości" - #. #. * Tiling combo box #. -#: ../src/imageio/format/avif.c:799 +#: ../src/imageio/format/avif.c:832 msgid "tiling" msgstr "kafelkowanie" -#: ../src/imageio/format/avif.c:800 +#: ../src/imageio/format/avif.c:833 msgid "" "tile an image into segments.\n" "\n" -"makes encoding faster. the impact on quality reduction is negligible, but " -"increases the file size." +"makes encoding faster, but increases the file size. the loss of image " +"quality is negligible." msgstr "" "podziel obraz na segmenty\n" "\n" "Przyspiesza przetwarzanie, wpływ na spadek jakości jest pomijalny, ale " "rozmiar pliku rośnie." -#: ../src/imageio/format/avif.c:817 ../src/imageio/format/webp.c:383 -msgid "compression type" -msgstr "rodzaj kompresji" +#. compression +#. Compression method combo box +#: ../src/imageio/format/avif.c:850 ../src/imageio/format/exr.cc:611 +#: ../src/imageio/format/pdf.c:676 ../src/imageio/format/png.c:653 +#: ../src/imageio/format/tiff.c:923 ../src/imageio/format/webp.c:414 +#: ../src/libs/masks.c:111 +msgid "compression" +msgstr "kompresja" -#: ../src/imageio/format/avif.c:825 +#: ../src/imageio/format/avif.c:858 msgid "the compression for the image" msgstr "kompresja obrazu" @@ -11391,37 +11900,30 @@ #. step #. default #. digits -#: ../src/imageio/format/avif.c:842 ../src/imageio/format/j2k.c:661 -#: ../src/imageio/format/jpeg.c:587 ../src/imageio/format/jxl.c:579 -#: ../src/imageio/format/webp.c:394 ../src/libs/camera.c:564 +#: ../src/imageio/format/avif.c:878 ../src/imageio/format/j2k.c:679 +#: ../src/imageio/format/jpeg.c:584 ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/webp.c:425 ../src/libs/camera.c:564 msgid "quality" msgstr "jakość" -#: ../src/imageio/format/avif.c:847 +#: ../src/imageio/format/avif.c:881 msgid "" "the quality of an image, less quality means fewer details.\n" "\n" -"the following applies only to lossy setting\n" -"\n" -"pixelformat based on quality:\n" +"pixel format is controlled by quality:\n" "\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" msgstr "" -"jakość obrazu, niższa jakość oznacza mniej detali\n" +"jakość obrazu, niższa jakość oznacza mniej detali.\n" "\n" -"ustawienie wpływa tylko na stratne formaty pliku\n" +"format piksela jest kontrolowany przez parametr jakości:\n" "\n" "format piksela na podstawie jakości obrazu:\n" "\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" -"\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" #: ../src/imageio/format/copy.c:109 ../src/libs/copy_history.c:370 -#: ../src/libs/image.c:583 +#: ../src/libs/image.c:647 msgid "copy" msgstr "kopiuj" @@ -11437,120 +11939,140 @@ msgid "the selected output profile doesn't work well with EXR" msgstr "wybrany profil wyjściowy nie działa dobrze z EXR" -#: ../src/imageio/format/exr.cc:540 +#: ../src/imageio/format/exr.cc:576 msgid "OpenEXR" msgstr "OpenEXR" -#: ../src/imageio/format/exr.cc:567 +#: ../src/imageio/format/exr.cc:603 msgid "16 bit (float)" msgstr "16 bit (zmiennoprzecinkowy)" -#: ../src/imageio/format/exr.cc:567 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/format/exr.cc:603 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "32 bit (float)" msgstr "32 bit (zmiennoprzecinkowy)" -#. compression -#. Compression method combo box -#: ../src/imageio/format/exr.cc:575 ../src/imageio/format/pdf.c:676 -#: ../src/imageio/format/png.c:548 ../src/imageio/format/tiff.c:866 -#: ../src/libs/masks.c:110 -msgid "compression" -msgstr "kompresja" - -#: ../src/imageio/format/exr.cc:577 ../src/imageio/format/pdf.c:682 -#: ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/exr.cc:613 ../src/imageio/format/pdf.c:682 +#: ../src/imageio/format/tiff.c:924 msgid "uncompressed" msgstr "nieskompresowane" -#: ../src/imageio/format/exr.cc:578 +#: ../src/imageio/format/exr.cc:614 msgid "RLE" msgstr "RLE" -#: ../src/imageio/format/exr.cc:579 +#: ../src/imageio/format/exr.cc:615 msgid "ZIPS" msgstr "ZIPS" -#: ../src/imageio/format/exr.cc:580 +#: ../src/imageio/format/exr.cc:616 msgid "ZIP" msgstr "ZIP" -#: ../src/imageio/format/exr.cc:581 +#: ../src/imageio/format/exr.cc:617 msgid "PIZ" msgstr "PIZ" -#: ../src/imageio/format/exr.cc:582 +#: ../src/imageio/format/exr.cc:618 msgid "PXR24" msgstr "PXR24" -#: ../src/imageio/format/exr.cc:583 +#: ../src/imageio/format/exr.cc:619 msgid "B44" msgstr "B44" -#: ../src/imageio/format/exr.cc:584 +#: ../src/imageio/format/exr.cc:620 msgid "B44A" msgstr "B44A" -#: ../src/imageio/format/exr.cc:585 +#: ../src/imageio/format/exr.cc:621 msgid "DWAA" msgstr "DWAA" -#: ../src/imageio/format/exr.cc:586 +#: ../src/imageio/format/exr.cc:622 msgid "DWAB" msgstr "DWAB" -#: ../src/imageio/format/j2k.c:618 +#: ../src/imageio/format/j2k.c:648 msgid "JPEG 2000 (12-bit)" msgstr "JPEG 2000 (12-bit)" -#: ../src/imageio/format/j2k.c:652 -msgid "jp2" -msgstr "jp2" - -#: ../src/imageio/format/j2k.c:667 +#: ../src/imageio/format/j2k.c:684 msgid "DCP mode" msgstr "tryb DCP" -#: ../src/imageio/format/j2k.c:670 +#: ../src/imageio/format/j2k.c:687 msgid "Cinema2K, 24FPS" msgstr "Cinema2K, 24FPS" -#: ../src/imageio/format/j2k.c:671 +#: ../src/imageio/format/j2k.c:688 msgid "Cinema2K, 48FPS" msgstr "Cinema2K, 48FPS" -#: ../src/imageio/format/j2k.c:672 +#: ../src/imageio/format/j2k.c:689 msgid "Cinema4K, 24FPS" msgstr "Cinema4K, 24FPS" -#: ../src/imageio/format/jpeg.c:564 +#: ../src/imageio/format/jpeg.c:546 msgid "JPEG (8-bit)" msgstr "JPEG (8-bit)" -#: ../src/imageio/format/jxl.c:471 -msgid "JPEG XL" -msgstr "JPEG XL" +#: ../src/imageio/format/jpeg.c:594 +msgid "chroma subsampling" +msgstr "podpróbkowanie barwy" + +#: ../src/imageio/format/jpeg.c:595 +msgid "" +"chroma subsampling setting for JPEG encoder.\n" +"auto - use subsampling determined by the quality value\n" +"4:4:4 - no chroma subsampling\n" +"4:4:0 - color sampling rate halved vertically\n" +"4:2:2 - color sampling rate halved horizontally\n" +"4:2:0 - color sampling rate halved horizontally and vertically" +msgstr "" +"ustawienia podpróbkowania barwy dla JPEG \n" +"auto - uzależnia próbkowanie od ustawienia jakości\n" +"4:4:4 - brak podbróbkowania\n" +"4:4:0 - podpróbkowanie pionowe połowa dokładności\n" +"4:2:2 - podpróbkowanie poziomie połowa dokładności\n" +"4:2:0 - podpróbkowanie z połową dokładności w obu kierunkach" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:4" +msgstr "4:4:4" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:0" +msgstr "4:4:0" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:2" +msgstr "4:2:2" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:0" +msgstr "4:2:0" -#: ../src/imageio/format/jxl.c:556 ../src/imageio/format/pdf.c:81 -#: ../src/imageio/format/png.c:536 ../src/imageio/format/tiff.c:847 +#: ../src/imageio/format/jxl.c:567 ../src/imageio/format/pdf.c:81 +#: ../src/imageio/format/png.c:641 ../src/imageio/format/tiff.c:904 #: ../src/imageio/format/xcf.c:357 msgid "16 bit" msgstr "16 bit" #. Pixel format combo box -#: ../src/imageio/format/jxl.c:562 ../src/imageio/format/tiff.c:852 +#: ../src/imageio/format/jxl.c:573 ../src/imageio/format/tiff.c:909 msgid "pixel type" msgstr "rodzaj piksela" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "unsigned integer" msgstr "niemianowana całkowita (uint)" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "floating point" msgstr "zmiennoprzecinkowa" -#: ../src/imageio/format/jxl.c:580 +#: ../src/imageio/format/jxl.c:591 msgid "" "the quality of the output image\n" "0-29 = very lossy\n" @@ -11562,11 +12084,11 @@ "30-99 - porównywalne do JPEG\n" "100 - bezstratny (głębia bitowa integer)" -#: ../src/imageio/format/jxl.c:589 +#: ../src/imageio/format/jxl.c:600 msgid "encoding color profile" msgstr "kodowanie profilu kolorów" -#: ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/jxl.c:601 msgid "" "the color profile used by the encoder\n" "permit internal XYB color space conversion for more efficient lossy " @@ -11579,20 +12101,20 @@ "lub zapewnij brak konwersji dla zachowania pierwotnej przestrzeni koloru " "(niewidoczne dla stratnych)" -#: ../src/imageio/format/jxl.c:593 +#: ../src/imageio/format/jxl.c:604 msgid "internal" msgstr "wewnętrzne" -#: ../src/imageio/format/jxl.c:593 ../src/libs/duplicate.c:399 -#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:782 +#: ../src/imageio/format/jxl.c:604 ../src/libs/duplicate.c:405 +#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:840 msgid "original" msgstr "oryginał" -#: ../src/imageio/format/jxl.c:607 +#: ../src/imageio/format/jxl.c:618 msgid "encoding effort" msgstr "obciążenie kodowaniem" -#: ../src/imageio/format/jxl.c:608 +#: ../src/imageio/format/jxl.c:619 msgid "" "the effort used to encode the image, higher efforts will have better results " "at the expense of longer encoding times" @@ -11600,11 +12122,11 @@ "nakład pracy przy przetwarzaniu obrazu, wyższy da lepszy rezultat, kosztem " "dłuższego czasu przetwarzania" -#: ../src/imageio/format/jxl.c:619 +#: ../src/imageio/format/jxl.c:630 msgid "decoding speed" msgstr "szybkość dekodowania" -#: ../src/imageio/format/jxl.c:620 +#: ../src/imageio/format/jxl.c:631 msgid "the preferred decoding speed with some sacrifice of quality" msgstr "Preferowana prędkość dekodowania, z niewielkim pogorszeniem jakości" @@ -11616,9 +12138,9 @@ msgid "invalid border size, using 0" msgstr "niepoprawny rozmiar obramowania, używam 0" -#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:316 -#: ../src/imageio/storage/email.c:137 ../src/imageio/storage/gallery.c:331 -#: ../src/imageio/storage/gallery.c:370 ../src/imageio/storage/piwigo.c:1202 +#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:460 +#: ../src/imageio/storage/email.c:187 ../src/imageio/storage/gallery.c:409 +#: ../src/imageio/storage/gallery.c:450 ../src/imageio/storage/piwigo.c:1236 #, c-format msgid "could not export to file `%s'!" msgstr "nie można eksportować do pliku „%s”!" @@ -11672,8 +12194,8 @@ "przykłady: 10 mm, 1 cal" #. dpi -#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1127 -#: ../src/libs/export.c:1150 +#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1218 +#: ../src/libs/export.c:1246 msgid "dpi" msgstr "dpi" @@ -11735,7 +12257,7 @@ "nieskompresowane -- szybkie, ale duże pliki\n" "deflate -- mniejsze pliki, ale wolniejsze" -#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:924 msgid "deflate" msgstr "deflate" @@ -11766,60 +12288,25 @@ msgid "debug" msgstr "debugowanie" -#: ../src/imageio/format/pfm.c:120 -msgid "PFM" -msgstr "PFM" - -#: ../src/imageio/format/png.c:493 -msgid "PNG" -msgstr "PNG" - #: ../src/imageio/format/ppm.c:111 msgid "PPM (16-bit)" msgstr "PPM (16-bitowy)" -#: ../src/imageio/format/tiff.c:228 -msgid "will export as a grayscale image" -msgstr "wyeksportuje obraz monochromatyczny" - -#: ../src/imageio/format/tiff.c:774 -msgid "TIFF" -msgstr "TIFF" +#: ../src/imageio/format/tiff.c:246 +msgid "not a B&W image, will not export as grayscale" +msgstr "" +"obraz nie jest w skali szarości, więc nie można wyeksportować jako skala " +"szarości." -#: ../src/imageio/format/tiff.c:868 +#: ../src/imageio/format/tiff.c:925 msgid "deflate with predictor" msgstr "deflate z predykcją" -#: ../src/imageio/format/tiff.c:878 +#: ../src/imageio/format/tiff.c:935 msgid "compression level" msgstr "poziom kompresji" -#. shortfile option combo box -#: ../src/imageio/format/tiff.c:887 -msgid "b&w image" -msgstr "obraz czarno-biały" - -#: ../src/imageio/format/tiff.c:888 -msgid "write RGB colors" -msgstr "zapisuj kolory RGB" - -#: ../src/imageio/format/tiff.c:888 -msgid "write grayscale" -msgstr "zapisuj skalę szarości" - -#: ../src/imageio/format/webp.c:349 -msgid "WebP" -msgstr "WebP" - -#: ../src/imageio/format/webp.c:385 -msgid "lossy" -msgstr "stratny" - -#: ../src/imageio/format/webp.c:385 -msgid "lossless" -msgstr "bezstratny" - -#: ../src/imageio/format/webp.c:397 +#: ../src/imageio/format/webp.c:426 msgid "" "for lossy, 0 gives the smallest size and 100 the best quality.\n" "for lossless, 0 is the fastest but gives larger files compared\n" @@ -11829,11 +12316,11 @@ "dla bezstratnych, 0 jest najszybsze, ale daje większe pliki w porównaniu do " "najwolniejszego 100" -#: ../src/imageio/format/webp.c:407 +#: ../src/imageio/format/webp.c:436 msgid "image hint" msgstr "sugerowany rodzaj obrazu" -#: ../src/imageio/format/webp.c:408 +#: ../src/imageio/format/webp.c:437 msgid "" "image characteristics hint for the underlying encoder.\n" "picture: digital picture, like portrait, inner shot\n" @@ -11845,15 +12332,15 @@ "fotografia: zdjęcie na wolnym powietrzu, w naturalnym oświetleniu\n" "grafika: obraz zawierający tony dyskretne (wykres, mapka itp.)" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "picture" msgstr "obraz" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "photo" msgstr "zdjęcie" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "graphic" msgstr "grafika" @@ -11861,12 +12348,12 @@ msgid "XCF" msgstr "XCF" -#: ../src/imageio/storage/disk.c:71 ../src/libs/export.c:1040 +#: ../src/imageio/storage/disk.c:74 ../src/libs/export.c:1119 msgid "file on disk" msgstr "plik na dysku" -#: ../src/imageio/storage/disk.c:169 ../src/imageio/storage/gallery.c:155 -#: ../src/imageio/storage/latex.c:154 +#: ../src/imageio/storage/disk.c:251 ../src/imageio/storage/gallery.c:204 +#: ../src/imageio/storage/latex.c:191 msgid "" "enter the path where to put exported images\n" "variables support bash like string manipulation\n" @@ -11876,38 +12363,41 @@ "zmienne obsługują manipulacje łańcuchami podobnie jak bash\n" "\"$\" aktywuje dopełnienie i wyświetla listę zmiennych" -#: ../src/imageio/storage/disk.c:182 ../src/imageio/storage/piwigo.c:1079 +#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/piwigo.c:1113 msgid "on conflict" msgstr "w przypadku konfliktu" -#: ../src/imageio/storage/disk.c:185 +#: ../src/imageio/storage/disk.c:268 msgid "create unique filename" msgstr "utwórz unikalną nazwę" #. DT_COPY_HISTORY_APPEND -#: ../src/imageio/storage/disk.c:186 ../src/imageio/storage/piwigo.c:1083 -#: ../src/libs/copy_history.c:404 ../src/libs/image.c:601 -#: ../src/libs/styles.c:440 ../src/libs/styles.c:623 ../src/libs/styles.c:850 +#: ../src/imageio/storage/disk.c:269 ../src/imageio/storage/piwigo.c:1117 +#: ../src/libs/copy_history.c:404 ../src/libs/image.c:670 +#: ../src/libs/styles.c:854 msgid "overwrite" msgstr "nadpisz" -#: ../src/imageio/storage/disk.c:187 ../src/imageio/storage/piwigo.c:1081 -#: ../src/libs/styles.c:439 ../src/libs/styles.c:622 +#: ../src/imageio/storage/disk.c:270 +msgid "overwrite if changed" +msgstr "nadpisz jeśli zmieniony" + +#: ../src/imageio/storage/disk.c:271 ../src/imageio/storage/piwigo.c:1115 msgid "skip" msgstr "pomiń" -#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/gallery.c:253 -#: ../src/imageio/storage/latex.c:252 +#: ../src/imageio/storage/disk.c:371 ../src/imageio/storage/gallery.c:326 +#: ../src/imageio/storage/latex.c:289 #, c-format msgid "could not create directory `%s'!" msgstr "nie można utworzyć katalogu „%s”!" -#: ../src/imageio/storage/disk.c:272 +#: ../src/imageio/storage/disk.c:382 #, c-format msgid "could not write to directory `%s'!" msgstr "nie można zapisać w katalogu „%s”!" -#: ../src/imageio/storage/disk.c:302 +#: ../src/imageio/storage/disk.c:419 #, c-format msgid "%d/%d skipping `%s'" msgid_plural "%d/%d skipping `%s'" @@ -11915,8 +12405,16 @@ msgstr[1] "%d/%d pomijam `%s'" msgstr[2] "%d/%d pomijam `%s'" -#: ../src/imageio/storage/disk.c:321 ../src/imageio/storage/email.c:144 -#: ../src/imageio/storage/gallery.c:378 ../src/imageio/storage/latex.c:340 +#: ../src/imageio/storage/disk.c:441 +#, c-format +msgid "%d/%d skipping (not modified since export) `%s'" +msgid_plural "%d/%d skipping (not modified since export) `%s'" +msgstr[0] "%d/%d pominięty (brak modyfikacji od czasu eksportu) `%s'" +msgstr[1] "%d/%d pomijane (brak modyfikacji od czasu eksportu) `%s'" +msgstr[2] "%d/%d pomijanych (brak modyfikacji od czasu eksportu) `%s'" + +#: ../src/imageio/storage/disk.c:465 ../src/imageio/storage/email.c:194 +#: ../src/imageio/storage/gallery.c:458 ../src/imageio/storage/latex.c:377 #, c-format msgid "%d/%d exported to `%s'" msgid_plural "%d/%d exported to `%s'" @@ -11924,7 +12422,7 @@ msgstr[1] "%d/%d wyeksportowane do „%s”" msgstr[2] "%d/%d wyeksportowanych do „%s”" -#: ../src/imageio/storage/disk.c:380 +#: ../src/imageio/storage/disk.c:530 msgid "" "you are going to export in overwrite mode, this will overwrite any existing " "images\n" @@ -11936,23 +12434,33 @@ "\n" "czy na pewno chcesz kontynuować?" -#: ../src/imageio/storage/email.c:52 +#: ../src/imageio/storage/email.c:57 msgid "send as email" msgstr "wyślij jako e-mail" -#: ../src/imageio/storage/email.c:198 +#. Unlikely in normal Windows installations, but let's notify the user if it happens +#: ../src/imageio/storage/email.c:265 +msgid "could not open mapi32.dll" +msgstr "nie można uruchomić mapi32.dll" + +#. Even more unlikely +#: ../src/imageio/storage/email.c:275 +msgid "could not get SendMail function" +msgstr "nie można uruchomić klienta e-mail" + +#: ../src/imageio/storage/email.c:319 ../src/imageio/storage/email.c:409 msgid "images exported from darktable" msgstr "zdjęcia wyeksportowane z darktable" -#: ../src/imageio/storage/email.c:251 +#: ../src/imageio/storage/email.c:388 ../src/imageio/storage/email.c:467 msgid "could not launch email client!" msgstr "nie można uruchomić klienta e-mail!" -#: ../src/imageio/storage/gallery.c:73 +#: ../src/imageio/storage/gallery.c:76 msgid "website gallery" msgstr "galeria internetowa" -#: ../src/imageio/storage/gallery.c:171 +#: ../src/imageio/storage/gallery.c:224 msgid "enter the title of the website" msgstr "wprowadź nazwę strony" @@ -11960,149 +12468,149 @@ msgid "LaTeX book template" msgstr "LaTeXowy szablon książki" -#: ../src/imageio/storage/latex.c:172 +#: ../src/imageio/storage/latex.c:209 msgid "enter the title of the book" msgstr "wprowadź tytuł książki" -#: ../src/imageio/storage/piwigo.c:522 +#: ../src/imageio/storage/piwigo.c:525 msgid "authenticated" msgstr "uwierzytelniono" -#: ../src/imageio/storage/piwigo.c:532 ../src/imageio/storage/piwigo.c:547 -#: ../src/imageio/storage/piwigo.c:559 +#: ../src/imageio/storage/piwigo.c:536 ../src/imageio/storage/piwigo.c:552 +#: ../src/imageio/storage/piwigo.c:565 msgid "not authenticated" msgstr "nie uwierzytelniono" -#: ../src/imageio/storage/piwigo.c:538 +#: ../src/imageio/storage/piwigo.c:542 msgid "not authenticated, cannot reach server" msgstr "nie uwierzytelniono, nie można połączyć się z serwerem" -#: ../src/imageio/storage/piwigo.c:587 ../src/imageio/storage/piwigo.c:675 +#: ../src/imageio/storage/piwigo.c:595 ../src/imageio/storage/piwigo.c:684 msgid "create new album" msgstr "utwórz nowy album" -#: ../src/imageio/storage/piwigo.c:676 +#: ../src/imageio/storage/piwigo.c:685 msgid "---" msgstr "---" -#: ../src/imageio/storage/piwigo.c:721 +#: ../src/imageio/storage/piwigo.c:735 msgid "cannot refresh albums" msgstr "nie można odświeżyć albumów" -#: ../src/imageio/storage/piwigo.c:929 +#: ../src/imageio/storage/piwigo.c:950 msgid "Piwigo" msgstr "Piwigo" -#: ../src/imageio/storage/piwigo.c:954 +#: ../src/imageio/storage/piwigo.c:976 msgid "accounts" msgstr "konta" -#: ../src/imageio/storage/piwigo.c:972 ../src/imageio/storage/piwigo.c:978 +#: ../src/imageio/storage/piwigo.c:995 ../src/imageio/storage/piwigo.c:1004 msgid "server" msgstr "serwer" -#: ../src/imageio/storage/piwigo.c:974 ../src/imageio/storage/piwigo.c:989 +#: ../src/imageio/storage/piwigo.c:998 msgid "" "the server name\n" "default protocol is https\n" -"specify http:// if non secure server" +"specify insecure protocol http:// explicitly if that protocol is required" msgstr "" "nazwa serwera\n" "domyślny protokół to https\n" -"podaj http:// jeśli serwer nie jest zabezpieczony" +"podaj niezabezpieczony protokół http:// jeśli serwer nie jest w stanie " +"obsłużyć https" -#: ../src/imageio/storage/piwigo.c:987 ../src/imageio/storage/piwigo.c:993 +#: ../src/imageio/storage/piwigo.c:1014 ../src/imageio/storage/piwigo.c:1021 msgid "user" msgstr "użytkownik" -#: ../src/imageio/storage/piwigo.c:1000 ../src/imageio/storage/piwigo.c:1005 +#: ../src/imageio/storage/piwigo.c:1029 ../src/imageio/storage/piwigo.c:1034 msgid "password" msgstr "hasło" #. login button -#: ../src/imageio/storage/piwigo.c:1010 +#: ../src/imageio/storage/piwigo.c:1039 msgid "login" msgstr "zaloguj" -#: ../src/imageio/storage/piwigo.c:1011 +#: ../src/imageio/storage/piwigo.c:1040 msgid "Piwigo login" msgstr "login Piwigo" #. permissions list -#: ../src/imageio/storage/piwigo.c:1025 +#: ../src/imageio/storage/piwigo.c:1056 msgid "visible to" msgstr "widoczne dla" -#: ../src/imageio/storage/piwigo.c:1027 +#: ../src/imageio/storage/piwigo.c:1058 msgid "everyone" msgstr "wszystkich" -#: ../src/imageio/storage/piwigo.c:1028 +#: ../src/imageio/storage/piwigo.c:1059 msgid "contacts" msgstr "kontakty" -#: ../src/imageio/storage/piwigo.c:1029 +#: ../src/imageio/storage/piwigo.c:1060 msgid "friends" msgstr "przyjaciół" -#: ../src/imageio/storage/piwigo.c:1030 +#: ../src/imageio/storage/piwigo.c:1061 msgid "family" msgstr "rodziny" -#: ../src/imageio/storage/piwigo.c:1031 +#: ../src/imageio/storage/piwigo.c:1062 msgid "you" msgstr "ciebie" #. Available albums -#: ../src/imageio/storage/piwigo.c:1038 +#: ../src/imageio/storage/piwigo.c:1069 msgid "album" msgstr "album" -#: ../src/imageio/storage/piwigo.c:1045 +#: ../src/imageio/storage/piwigo.c:1076 msgid "refresh album list" msgstr "odśwież listę albumów" #. Album title -#: ../src/imageio/storage/piwigo.c:1063 +#: ../src/imageio/storage/piwigo.c:1096 msgid "new album" msgstr "nowy album" -#. parent album list #. Available albums -#: ../src/imageio/storage/piwigo.c:1071 +#: ../src/imageio/storage/piwigo.c:1105 msgid "parent album" msgstr "album nadrzędny" -#: ../src/imageio/storage/piwigo.c:1075 +#: ../src/imageio/storage/piwigo.c:1109 msgid "click login button to start" msgstr "kliknij „zaloguj”, aby rozpocząć" -#: ../src/imageio/storage/piwigo.c:1080 +#: ../src/imageio/storage/piwigo.c:1114 msgid "don't check" msgstr "nie sprawdzaj" -#: ../src/imageio/storage/piwigo.c:1082 +#: ../src/imageio/storage/piwigo.c:1116 msgid "update metadata" msgstr "aktualizuj metadane" -#: ../src/imageio/storage/piwigo.c:1221 +#: ../src/imageio/storage/piwigo.c:1255 msgid "cannot create a new Piwigo album!" msgstr "nie można utworzyć nowego albumu Piwigo!" -#: ../src/imageio/storage/piwigo.c:1240 +#: ../src/imageio/storage/piwigo.c:1274 msgid "could not update to Piwigo!" msgstr "nie można zaktualizować do Piwigo!" -#: ../src/imageio/storage/piwigo.c:1255 +#: ../src/imageio/storage/piwigo.c:1290 msgid "could not upload to Piwigo!" msgstr "nie można wysłać na Piwigo!" -#: ../src/imageio/storage/piwigo.c:1284 +#: ../src/imageio/storage/piwigo.c:1319 #, c-format msgid "%d/%d skipped (already exists)" msgstr "%d/%d pominiętych (już istniejące)" -#: ../src/imageio/storage/piwigo.c:1290 +#: ../src/imageio/storage/piwigo.c:1325 #, c-format msgid "%d/%d exported to Piwigo webalbum" msgid_plural "%d/%d exported to Piwigo webalbum" @@ -12123,54 +12631,54 @@ msgstr "obróć lub przekształć perspektywę" #: ../src/iop/ashift.c:131 ../src/iop/channelmixer.c:139 -#: ../src/iop/channelmixerrgb.c:232 ../src/iop/clipping.c:320 -#: ../src/iop/colorbalance.c:161 ../src/iop/colorbalancergb.c:185 +#: ../src/iop/channelmixerrgb.c:233 ../src/iop/clipping.c:363 +#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:185 #: ../src/iop/colorchecker.c:130 ../src/iop/colorcorrection.c:77 -#: ../src/iop/crop.c:144 ../src/iop/lut3d.c:141 +#: ../src/iop/crop.c:134 ../src/iop/lut3d.c:142 ../src/iop/primaries.c:80 msgid "corrective or creative" msgstr "korekcyjny lub kreatywny" -#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:148 -#: ../src/iop/bilateral.cc:101 ../src/iop/bilateral.cc:103 -#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:233 -#: ../src/iop/channelmixerrgb.c:235 ../src/iop/clipping.c:321 -#: ../src/iop/clipping.c:323 ../src/iop/colorbalancergb.c:186 -#: ../src/iop/colorin.c:136 ../src/iop/crop.c:145 ../src/iop/crop.c:147 -#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:728 -#: ../src/iop/denoiseprofile.c:730 ../src/iop/diffuse.c:146 +#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:174 +#: ../src/iop/bilateral.cc:103 ../src/iop/bilateral.cc:105 +#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:236 ../src/iop/clipping.c:364 +#: ../src/iop/clipping.c:366 ../src/iop/colorbalancergb.c:186 +#: ../src/iop/colorin.c:136 ../src/iop/crop.c:135 ../src/iop/crop.c:137 +#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:780 +#: ../src/iop/denoiseprofile.c:782 ../src/iop/diffuse.c:146 #: ../src/iop/diffuse.c:148 ../src/iop/exposure.c:132 ../src/iop/exposure.c:134 #: ../src/iop/flip.c:111 ../src/iop/flip.c:112 ../src/iop/hazeremoval.c:113 -#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:242 ../src/iop/lens.cc:244 -#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/retouch.c:210 -#: ../src/iop/retouch.c:212 ../src/iop/sigmoid.c:103 -#: ../src/iop/splittoning.c:104 ../src/iop/splittoning.c:106 -#: ../src/iop/spots.c:70 ../src/iop/spots.c:72 ../src/iop/toneequal.c:325 -#: ../src/iop/velvia.c:106 ../src/iop/velvia.c:108 +#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:263 ../src/iop/lens.cc:265 +#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/primaries.c:81 +#: ../src/iop/primaries.c:83 ../src/iop/retouch.c:210 ../src/iop/retouch.c:212 +#: ../src/iop/sigmoid.c:209 ../src/iop/splittoning.c:106 +#: ../src/iop/splittoning.c:108 ../src/iop/spots.c:70 ../src/iop/spots.c:72 +#: ../src/iop/toneequal.c:333 ../src/iop/velvia.c:99 ../src/iop/velvia.c:101 msgid "linear, RGB, scene-referred" msgstr "liniowe, RGB, scenocentryczny" -#: ../src/iop/ashift.c:133 ../src/iop/borders.c:200 ../src/iop/clipping.c:322 -#: ../src/iop/crop.c:146 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 +#: ../src/iop/ashift.c:133 ../src/iop/borders.c:325 ../src/iop/clipping.c:365 +#: ../src/iop/crop.c:136 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 msgid "geometric, RGB" msgstr "geometryczne, RGB" -#: ../src/iop/ashift.c:2820 +#: ../src/iop/ashift.c:2866 msgid "automatic cropping failed" msgstr "automatyczne kadrowanie nieudane" -#: ../src/iop/ashift.c:3234 ../src/iop/ashift.c:3286 ../src/iop/ashift.c:3334 +#: ../src/iop/ashift.c:3276 ../src/iop/ashift.c:3328 ../src/iop/ashift.c:3375 msgid "data pending - please repeat" msgstr "oczekiwanie na dane - proszę powtórzyć" -#: ../src/iop/ashift.c:3243 +#: ../src/iop/ashift.c:3285 msgid "could not detect structural data in image" msgstr "nie udało się wykryć informacji o strukturze na zdjęciu" -#: ../src/iop/ashift.c:3255 +#: ../src/iop/ashift.c:3297 msgid "could not run outlier removal" msgstr "nie udało się usunąć danych odstających" -#: ../src/iop/ashift.c:3434 +#: ../src/iop/ashift.c:3474 #, c-format msgid "" "not enough structure for automatic correction\n" @@ -12179,41 +12687,41 @@ "zbyt mało struktury dla automatycznej korekcji\n" "minimum to %d linii w każdym znaczącym kierunku" -#: ../src/iop/ashift.c:3440 +#: ../src/iop/ashift.c:3480 msgid "automatic correction failed, please correct manually" msgstr "automatyczna korekcja nieudana, proszę skorygować ręcznie" -#: ../src/iop/ashift.c:5096 +#: ../src/iop/ashift.c:5077 #, c-format msgid "only %d lines can be saved in parameters" msgstr "tylko %d linii może być zapisanych w parametrach" -#: ../src/iop/ashift.c:5201 +#: ../src/iop/ashift.c:5157 #, c-format -msgid "rotation adjusted by %3.1f° to %3.1f°" -msgstr "obrót doregulowany o %3.1f° to %3.1f°" +msgid "rotation adjusted by %3.2f° to %3.2f°" +msgstr "obrót doregulowany o %3.2f° do %3.2f°" -#: ../src/iop/ashift.c:5852 ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 -#: ../src/iop/ashift.c:5961 +#: ../src/iop/ashift.c:5797 ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 +#: ../src/iop/ashift.c:5906 #, c-format msgid "lens shift (%s)" msgstr "przesunięcie obiektywu (%s)" -#: ../src/iop/ashift.c:6125 +#: ../src/iop/ashift.c:6072 msgid "manual perspective" msgstr "ręczna perspektywa" -#: ../src/iop/ashift.c:6170 +#: ../src/iop/ashift.c:6117 msgctxt "section" msgid "perspective" msgstr "perspektywa" -#: ../src/iop/ashift.c:6177 ../src/iop/ashift.c:6286 ../src/iop/ashift.c:6288 -#: ../src/iop/ashift.c:6290 +#: ../src/iop/ashift.c:6124 ../src/iop/ashift.c:6233 ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6237 msgid "structure" msgstr "struktura" -#: ../src/iop/ashift.c:6212 +#: ../src/iop/ashift.c:6159 msgid "" "rotate image\n" "right-click and drag to define a horizontal or vertical line by drawing on " @@ -12222,30 +12730,30 @@ "obróć zdjęcie prawym klikiem i przeciągnij, żeby zdefiniować poziomą lub " "pionową linię przez rysowanie na zdjęciu" -#: ../src/iop/ashift.c:6215 ../src/iop/ashift.c:6217 +#: ../src/iop/ashift.c:6162 ../src/iop/ashift.c:6164 msgid "apply lens shift correction in one direction" msgstr "zastosuj korektę przesunięcia obiektywu w jednym kierunku" -#: ../src/iop/ashift.c:6219 +#: ../src/iop/ashift.c:6166 msgid "shear the image along one diagonal" msgstr "nachyl zdjęcie w kierunku jednej przekątnej" -#: ../src/iop/ashift.c:6220 ../src/iop/clipping.c:2117 +#: ../src/iop/ashift.c:6167 ../src/iop/clipping.c:2170 msgid "automatically crop to avoid black edges" msgstr "przytnij automatycznie, by pozbyć się czarnych obwódek" -#: ../src/iop/ashift.c:6221 +#: ../src/iop/ashift.c:6168 msgid "" "lens model of the perspective correction: generic or according to the focal " "length" msgstr "" "model obiektywu do korekcji perspektywy: ogólny, albo zgodnie z ogniskową" -#: ../src/iop/ashift.c:6224 +#: ../src/iop/ashift.c:6171 msgid "focal length of the lens, default value set from EXIF data if available" msgstr "ogniskowa obiektywu, wartość domyślna z exif - jeśli dostępna" -#: ../src/iop/ashift.c:6227 +#: ../src/iop/ashift.c:6174 msgid "" "crop factor of the camera sensor, default value set from EXIF data if " "available, manual setting is often required" @@ -12253,7 +12761,7 @@ "mnożnik ogniskowej sensora aparatu, wartość domyślna z exif - jeśli " "dostępna, manualne wprowadzenie jest zazwyczaj wymagane" -#: ../src/iop/ashift.c:6231 +#: ../src/iop/ashift.c:6178 msgid "" "the level of lens dependent correction, set to maximum for full lens " "dependency, set to zero for the generic case" @@ -12261,11 +12769,11 @@ "poziom korekty zależnej od obiektywu, ustaw na maksimum dla pełnej " "zależności od obiektywu, ustaw na zero dla przypadku ogólnego" -#: ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6182 msgid "adjust aspect ratio of image by horizontal and vertical scaling" msgstr "popraw proporcje zdjęcia przez skalowanie w pionie i poziomie" -#: ../src/iop/ashift.c:6237 +#: ../src/iop/ashift.c:6184 msgid "" "automatically correct for vertical perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12275,7 +12783,7 @@ "kliknięcie z ctrl, żeby dopasować tylko obrót\n" "kliknięcie z shift, żeby dopasować tylko przesunięcie obiektywu" -#: ../src/iop/ashift.c:6241 +#: ../src/iop/ashift.c:6188 msgid "" "automatically correct for horizontal perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12285,7 +12793,7 @@ "kliknięcie z ctrl, żeby dopasować tylko obrót\n" "kliknięcie z shift, żeby dopasować tylko przesunięcie obiektywu" -#: ../src/iop/ashift.c:6245 +#: ../src/iop/ashift.c:6192 msgid "" "automatically correct for vertical and horizontal perspective distortions, " "fitting rotation, lens shift in both directions, and shear\n" @@ -12300,7 +12808,7 @@ "kliknięcie z shift, żeby dopasować tylko przesunięcie obiektywu\n" "kliknięcie z ctrl-shift, żeby dopasować tylko przesunięcie obiektywu i obrót" -#: ../src/iop/ashift.c:6252 +#: ../src/iop/ashift.c:6199 msgid "" "automatically analyse line structure in image\n" "ctrl+click for an additional edge enhancement\n" @@ -12312,225 +12820,225 @@ "kliknij z shift dla dodatkowego wzmocnienia detali\n" "kliknij z ctrl+shift dla połączenia obu metod" -#: ../src/iop/ashift.c:6257 +#: ../src/iop/ashift.c:6204 msgid "manually define perspective rectangle" msgstr "zdefiniuj ręcznie prostokąt perspektywy" -#: ../src/iop/ashift.c:6258 +#: ../src/iop/ashift.c:6205 msgid "manually draw structure lines" msgstr "ręcznie rysuj linie struktury" -#: ../src/iop/ashift.c:6287 +#: ../src/iop/ashift.c:6234 msgid "rectangle" msgstr "prostokąt" -#: ../src/iop/ashift.c:6289 +#: ../src/iop/ashift.c:6236 msgid "lines" msgstr "linie" -#: ../src/iop/ashift.c:6323 ../src/iop/clipping.c:3343 +#: ../src/iop/ashift.c:6270 ../src/iop/clipping.c:3383 #, c-format msgid "[%s] define/rotate horizon" msgstr "[%s] ustal/obróć horyzont" -#: ../src/iop/ashift.c:6326 +#: ../src/iop/ashift.c:6273 #, c-format msgid "[%s on segment] select segment" msgstr "[%s na segmencie] wybierz segment" -#: ../src/iop/ashift.c:6330 +#: ../src/iop/ashift.c:6277 #, c-format msgid "[%s on segment] unselect segment" msgstr "[%s na segmencie] odznacz segment" -#: ../src/iop/ashift.c:6334 +#: ../src/iop/ashift.c:6281 #, c-format msgid "[%s] select all segments from zone" msgstr "[%s] wybierz wszystkie segmenty ze strefy" -#: ../src/iop/ashift.c:6338 +#: ../src/iop/ashift.c:6285 #, c-format msgid "[%s] unselect all segments from zone" msgstr "[%s] odznacz wszystkie segmenty strefy" -#: ../src/iop/atrous.c:123 ../src/iop/atrous.c:1638 +#: ../src/iop/atrous.c:122 ../src/iop/atrous.c:1770 msgid "contrast equalizer" msgstr "korektor kontrastu" -#: ../src/iop/atrous.c:128 +#: ../src/iop/atrous.c:127 msgid "sharpness|acutance|local contrast" msgstr "ostrość|kontrast lokalny" -#: ../src/iop/atrous.c:133 +#: ../src/iop/atrous.c:132 msgid "add or remove local contrast, sharpness, acutance" msgstr "zwiększa lub zmniejsza kontrast lokalny, ostrość krawędzi" -#: ../src/iop/atrous.c:134 ../src/iop/bilateral.cc:100 ../src/iop/diffuse.c:145 +#: ../src/iop/atrous.c:133 ../src/iop/bilateral.cc:102 ../src/iop/diffuse.c:145 #: ../src/iop/exposure.c:131 ../src/iop/filmicrgb.c:352 #: ../src/iop/graduatednd.c:146 ../src/iop/negadoctor.c:146 -#: ../src/iop/rgbcurve.c:143 ../src/iop/rgblevels.c:123 ../src/iop/shadhi.c:197 -#: ../src/iop/sigmoid.c:102 ../src/iop/tonecurve.c:211 -#: ../src/iop/toneequal.c:324 +#: ../src/iop/rgbcurve.c:145 ../src/iop/rgblevels.c:125 ../src/iop/shadhi.c:144 +#: ../src/iop/sigmoid.c:209 ../src/iop/tonecurve.c:184 +#: ../src/iop/toneequal.c:332 msgid "corrective and creative" msgstr "korekcyjne i kreatywne" -#: ../src/iop/atrous.c:135 ../src/iop/atrous.c:137 -#: ../src/iop/colorbalance.c:162 +#: ../src/iop/atrous.c:134 ../src/iop/atrous.c:136 +#: ../src/iop/colorbalance.c:164 msgid "linear, Lab, scene-referred" msgstr "liniowe, Lab, scenocentryczny" -#: ../src/iop/atrous.c:136 ../src/iop/censorize.c:85 +#: ../src/iop/atrous.c:135 ../src/iop/censorize.c:85 #: ../src/iop/hazeremoval.c:114 msgid "frequential, RGB" msgstr "częstotliwościowy, RGB" -#: ../src/iop/atrous.c:727 +#: ../src/iop/atrous.c:799 msgctxt "eq_preset" msgid "coarse" msgstr "zgrubne" -#: ../src/iop/atrous.c:742 +#: ../src/iop/atrous.c:815 msgid "denoise & sharpen" msgstr "odszumianie i wyostrzanie" -#: ../src/iop/atrous.c:757 +#: ../src/iop/atrous.c:831 msgctxt "atrous" msgid "sharpen" msgstr "wyostrzenie" -#: ../src/iop/atrous.c:772 +#: ../src/iop/atrous.c:847 msgid "denoise chroma" msgstr "odszumianie chroma" -#: ../src/iop/atrous.c:787 +#: ../src/iop/atrous.c:863 msgid "denoise" msgstr "odszumianie" -#: ../src/iop/atrous.c:803 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:421 +#: ../src/iop/atrous.c:880 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:448 msgid "bloom" msgstr "poświata" -#: ../src/iop/atrous.c:818 ../src/iop/bilat.c:169 +#: ../src/iop/atrous.c:896 ../src/iop/bilat.c:186 msgid "clarity" msgstr "klarowność" -#: ../src/iop/atrous.c:838 +#: ../src/iop/atrous.c:917 msgid "deblur: large blur, strength 3" msgstr "usuwanie rozmycia: duże rozmycie, siła 3" -#: ../src/iop/atrous.c:855 +#: ../src/iop/atrous.c:935 msgid "deblur: medium blur, strength 3" msgstr "usuwanie rozmycia: średnie rozmycie, siła 3" -#: ../src/iop/atrous.c:871 +#: ../src/iop/atrous.c:952 msgid "deblur: fine blur, strength 3" msgstr "usuwanie rozmycia: niewielkie rozmycie, siła 3" -#: ../src/iop/atrous.c:889 +#: ../src/iop/atrous.c:971 msgid "deblur: large blur, strength 2" msgstr "usuwanie rozmycia: duże rozmycie, siła 2" -#: ../src/iop/atrous.c:906 +#: ../src/iop/atrous.c:989 msgid "deblur: medium blur, strength 2" msgstr "usuwanie rozmycia: średnie rozmycie, siła 2" -#: ../src/iop/atrous.c:922 +#: ../src/iop/atrous.c:1006 msgid "deblur: fine blur, strength 2" msgstr "usuwanie rozmycia: niewielkie rozmycie, siła 2" -#: ../src/iop/atrous.c:940 +#: ../src/iop/atrous.c:1025 msgid "deblur: large blur, strength 1" msgstr "usuwanie rozmycia: duże rozmycie, siła 1" -#: ../src/iop/atrous.c:957 +#: ../src/iop/atrous.c:1043 msgid "deblur: medium blur, strength 1" msgstr "usuwanie rozmycia: średnie rozmycie, siła 1" -#: ../src/iop/atrous.c:973 +#: ../src/iop/atrous.c:1060 msgid "deblur: fine blur, strength 1" msgstr "usuwanie rozmycia: niewielkie rozmycie, siła 1" -#: ../src/iop/atrous.c:1289 ../src/iop/atrous.c:1525 -#: ../src/iop/denoiseprofile.c:3510 ../src/iop/rawdenoise.c:738 +#: ../src/iop/atrous.c:1390 ../src/iop/atrous.c:1639 +#: ../src/iop/denoiseprofile.c:3514 ../src/iop/rawdenoise.c:754 msgid "coarse" msgstr "zgrubne" -#: ../src/iop/atrous.c:1296 ../src/iop/atrous.c:1526 -#: ../src/iop/denoiseprofile.c:3518 ../src/iop/rawdenoise.c:746 +#: ../src/iop/atrous.c:1397 ../src/iop/atrous.c:1640 +#: ../src/iop/denoiseprofile.c:3522 ../src/iop/rawdenoise.c:762 msgid "fine" msgstr "drobne" -#: ../src/iop/atrous.c:1308 +#: ../src/iop/atrous.c:1409 msgid "contrasty" msgstr "kontrastowo" -#: ../src/iop/atrous.c:1314 ../src/iop/denoiseprofile.c:3532 -#: ../src/iop/rawdenoise.c:760 +#: ../src/iop/atrous.c:1415 ../src/iop/denoiseprofile.c:3536 +#: ../src/iop/rawdenoise.c:776 msgid "noisy" msgstr "szum" #. case atrous_s: -#: ../src/iop/atrous.c:1317 +#: ../src/iop/atrous.c:1418 msgid "bold" msgstr "wyraźnie" -#: ../src/iop/atrous.c:1318 +#: ../src/iop/atrous.c:1419 msgid "dull" msgstr "słabo" -#: ../src/iop/atrous.c:1513 ../src/iop/atrous.c:1564 +#: ../src/iop/atrous.c:1627 ../src/iop/atrous.c:1685 msgid "boost" msgstr "wzmocnienie" -#: ../src/iop/atrous.c:1514 +#: ../src/iop/atrous.c:1628 msgid "reduce" msgstr "zredukuj" -#: ../src/iop/atrous.c:1515 +#: ../src/iop/atrous.c:1629 msgid "raise" msgstr "podnieś" -#: ../src/iop/atrous.c:1516 +#: ../src/iop/atrous.c:1630 msgid "lower" msgstr "niższy" -#: ../src/iop/atrous.c:1523 +#: ../src/iop/atrous.c:1637 msgid "coarsest" msgstr "najbardziej zgrubne" -#: ../src/iop/atrous.c:1524 +#: ../src/iop/atrous.c:1638 msgid "coarser" msgstr "zgrubniejsze" -#: ../src/iop/atrous.c:1527 +#: ../src/iop/atrous.c:1641 msgid "finer" msgstr "drobne" -#: ../src/iop/atrous.c:1528 +#: ../src/iop/atrous.c:1642 msgid "finest" msgstr "najdrobniejsze" -#: ../src/iop/atrous.c:1586 ../src/libs/export.c:1143 ../src/libs/export.c:1158 +#: ../src/iop/atrous.c:1710 ../src/libs/export.c:1239 ../src/libs/export.c:1255 msgid "x" msgstr "x" -#: ../src/iop/atrous.c:1666 ../src/iop/nlmeans.c:465 +#: ../src/iop/atrous.c:1799 ../src/iop/nlmeans.c:468 msgid "luma" msgstr "luma" -#: ../src/iop/atrous.c:1666 +#: ../src/iop/atrous.c:1800 msgid "change lightness at each feature size" msgstr "zmiana jasności w zależności od skali" -#: ../src/iop/atrous.c:1667 +#: ../src/iop/atrous.c:1802 msgid "change color saturation at each feature size" msgstr "zmiana nasycenia koloru w zależności od skali" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1804 msgid "edges" msgstr "krawędzie" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1805 msgid "" "change edge halos at each feature size\n" "only changes results of luma and chroma tabs" @@ -12538,97 +13046,97 @@ "zmiana efektu halo na krawędziach w zależności od skali\n" "wyłącznie zmienia rezultaty zakładek luma i chroma" -#: ../src/iop/atrous.c:1679 ../src/iop/colorbalancergb.c:2058 -#: ../src/iop/colorzones.c:2473 ../src/iop/denoiseprofile.c:3743 -#: ../src/iop/filmicrgb.c:4407 ../src/iop/lowlight.c:823 -#: ../src/iop/rawdenoise.c:919 ../src/iop/toneequal.c:3371 +#: ../src/iop/atrous.c:1818 ../src/iop/colorbalancergb.c:2129 +#: ../src/iop/colorzones.c:2732 ../src/iop/denoiseprofile.c:3747 +#: ../src/iop/filmicrgb.c:4471 ../src/iop/lowlight.c:821 +#: ../src/iop/rawdenoise.c:935 ../src/iop/toneequal.c:3424 msgid "graph" msgstr "wykres" -#: ../src/iop/atrous.c:1690 ../src/iop/colorzones.c:2470 +#: ../src/iop/atrous.c:1836 ../src/iop/colorzones.c:2729 msgid "make effect stronger or weaker" msgstr "osłabia lub wzmacnia efekt" -#: ../src/iop/basecurve.c:213 +#: ../src/iop/basecurve.c:260 msgid "neutral" msgstr "neutralna" -#: ../src/iop/basecurve.c:214 +#: ../src/iop/basecurve.c:261 msgid "canon eos like" msgstr "jak Canon EOS" -#: ../src/iop/basecurve.c:215 +#: ../src/iop/basecurve.c:262 msgid "canon eos like alternate" msgstr "jak Canon EOS (alternatywna)" -#: ../src/iop/basecurve.c:216 +#: ../src/iop/basecurve.c:263 msgid "nikon like" msgstr "jak Nikon" -#: ../src/iop/basecurve.c:217 +#: ../src/iop/basecurve.c:264 msgid "nikon like alternate" msgstr "jak Nikon (alternatywna)" -#: ../src/iop/basecurve.c:218 +#: ../src/iop/basecurve.c:265 msgid "sony alpha like" msgstr "jak Sony" -#: ../src/iop/basecurve.c:219 +#: ../src/iop/basecurve.c:266 msgid "pentax like" msgstr "jak Pentax" -#: ../src/iop/basecurve.c:220 +#: ../src/iop/basecurve.c:267 msgid "ricoh like" msgstr "jak Ricoh" -#: ../src/iop/basecurve.c:221 +#: ../src/iop/basecurve.c:268 msgid "olympus like" msgstr "jak Olympus" -#: ../src/iop/basecurve.c:222 +#: ../src/iop/basecurve.c:269 msgid "olympus like alternate" msgstr "jak Olympus (alternatywna)" -#: ../src/iop/basecurve.c:223 +#: ../src/iop/basecurve.c:270 msgid "panasonic like" msgstr "jak Panasonic" -#: ../src/iop/basecurve.c:224 +#: ../src/iop/basecurve.c:271 msgid "leica like" msgstr "jak Leica" -#: ../src/iop/basecurve.c:225 +#: ../src/iop/basecurve.c:272 msgid "kodak easyshare like" msgstr "jak Kodak easyshare" -#: ../src/iop/basecurve.c:226 +#: ../src/iop/basecurve.c:273 msgid "konica minolta like" msgstr "jak Konica minolta" -#: ../src/iop/basecurve.c:227 +#: ../src/iop/basecurve.c:274 msgid "samsung like" msgstr "jak Samsung" -#: ../src/iop/basecurve.c:228 +#: ../src/iop/basecurve.c:275 msgid "fujifilm like" msgstr "jak Fujifilm" -#: ../src/iop/basecurve.c:229 +#: ../src/iop/basecurve.c:276 msgid "nokia like" msgstr "jak Nokia" #. clang-format off #. smoother cubic spline curve -#: ../src/iop/basecurve.c:284 ../src/iop/colorzones.c:2495 -#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1173 +#: ../src/iop/basecurve.c:331 ../src/iop/colorzones.c:2763 +#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1195 msgid "cubic spline" msgstr "sześcienna funkcja sklejana" -#: ../src/iop/basecurve.c:343 +#: ../src/iop/basecurve.c:390 msgid "base curve" msgstr "krzywa bazowa" -#: ../src/iop/basecurve.c:350 +#: ../src/iop/basecurve.c:397 msgid "" "apply a view transform based on personal or camera manufacturer look,\n" "for corrective purposes, to prepare images for display" @@ -12637,65 +13145,65 @@ "podobnych do producenta aparatu.\n" "stosuje się do celów korekcyjnych i do przygotowania obrazu do wyświetlenia" -#: ../src/iop/basecurve.c:352 ../src/iop/cacorrect.c:78 -#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:135 -#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:727 +#: ../src/iop/basecurve.c:399 ../src/iop/cacorrect.c:84 +#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:120 +#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:779 #: ../src/iop/flip.c:110 ../src/iop/hazeremoval.c:112 -#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:73 -#: ../src/iop/invert.c:119 ../src/iop/lens.cc:241 ../src/iop/nlmeans.c:95 -#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:130 -#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:94 ../src/iop/spots.c:69 -#: ../src/iop/temperature.c:212 +#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:75 +#: ../src/iop/invert.c:136 ../src/iop/lens.cc:262 ../src/iop/nlmeans.c:89 +#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:144 +#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:96 ../src/iop/spots.c:69 +#: ../src/iop/temperature.c:220 msgid "corrective" msgstr "korekcyjne" -#: ../src/iop/basecurve.c:353 ../src/iop/channelmixer.c:140 -#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:142 +#: ../src/iop/basecurve.c:400 ../src/iop/channelmixer.c:140 +#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:143 #: ../src/iop/negadoctor.c:147 ../src/iop/profile_gamma.c:103 -#: ../src/iop/rgbcurve.c:144 ../src/iop/rgbcurve.c:146 -#: ../src/iop/rgblevels.c:124 ../src/iop/sigmoid.c:105 ../src/iop/soften.c:102 -#: ../src/iop/soften.c:104 +#: ../src/iop/rgbcurve.c:146 ../src/iop/rgbcurve.c:148 +#: ../src/iop/rgblevels.c:126 ../src/iop/sigmoid.c:210 ../src/iop/soften.c:104 +#: ../src/iop/soften.c:106 msgid "linear, RGB, display-referred" msgstr "liniowe, RGB, ekranocentryczny" -#: ../src/iop/basecurve.c:354 ../src/iop/basicadj.c:149 -#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:187 +#: ../src/iop/basecurve.c:401 ../src/iop/basicadj.c:175 +#: ../src/iop/colorbalance.c:165 ../src/iop/colorbalancergb.c:187 #: ../src/iop/dither.c:121 ../src/iop/filmicrgb.c:354 #: ../src/iop/graduatednd.c:148 ../src/iop/negadoctor.c:148 -#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:145 -#: ../src/iop/rgblevels.c:125 ../src/iop/sigmoid.c:104 -#: ../src/iop/vignette.c:161 ../src/iop/watermark.c:379 +#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:147 +#: ../src/iop/rgblevels.c:127 ../src/iop/sigmoid.c:210 +#: ../src/iop/vignette.c:122 ../src/iop/watermark.c:424 msgid "non-linear, RGB" msgstr "nieliniowe, RGB" -#: ../src/iop/basecurve.c:355 ../src/iop/dither.c:120 ../src/iop/dither.c:122 +#: ../src/iop/basecurve.c:402 ../src/iop/dither.c:120 ../src/iop/dither.c:122 #: ../src/iop/filmicrgb.c:355 ../src/iop/graduatednd.c:149 #: ../src/iop/negadoctor.c:149 ../src/iop/profile_gamma.c:105 -#: ../src/iop/rgblevels.c:126 ../src/iop/vignette.c:160 -#: ../src/iop/vignette.c:162 ../src/iop/watermark.c:378 -#: ../src/iop/watermark.c:380 +#: ../src/iop/rgblevels.c:128 ../src/iop/vignette.c:121 +#: ../src/iop/vignette.c:123 ../src/iop/watermark.c:423 +#: ../src/iop/watermark.c:425 msgid "non-linear, RGB, display-referred" msgstr "nieliniowe, RGB, ekranocentryczny" -#: ../src/iop/basecurve.c:2184 +#: ../src/iop/basecurve.c:2205 msgid "abscissa: input, ordinate: output. works on RGB channels" msgstr "odcięta: wejście, rzędna: wyjście. działa na kanałach RGB" -#: ../src/iop/basecurve.c:2190 ../src/iop/basicadj.c:612 -#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1072 -#: ../src/iop/tonecurve.c:1184 +#: ../src/iop/basecurve.c:2211 ../src/iop/basicadj.c:642 +#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1133 +#: ../src/iop/tonecurve.c:1206 msgid "method to preserve colors when applying contrast" msgstr "metoda ochrony kolorów przy zmienianiu kontrastu" -#: ../src/iop/basecurve.c:2194 +#: ../src/iop/basecurve.c:2215 msgid "two exposures" msgstr "dwie ekspozycje" -#: ../src/iop/basecurve.c:2195 +#: ../src/iop/basecurve.c:2216 msgid "three exposures" msgstr "trzy ekspozycje" -#: ../src/iop/basecurve.c:2196 +#: ../src/iop/basecurve.c:2217 msgid "" "fuse this image stopped up/down a couple of times with itself, to compress " "high dynamic range. expose for the highlights before use." @@ -12703,11 +13211,11 @@ "połączyć to zdjęcie rozjaśnione/przyciemnione o kilka EV z samym sobą, aby " "skompresować wysoką rozpiętość tonalną. naświetl na światła przed użyciem." -#: ../src/iop/basecurve.c:2201 +#: ../src/iop/basecurve.c:2222 msgid "how many stops to shift the individual exposures apart" msgstr "o ile działek przesunąć indywidualne ekspozycje" -#: ../src/iop/basecurve.c:2210 +#: ../src/iop/basecurve.c:2231 msgid "" "whether to shift exposure up or down (-1: reduce highlight, +1: reduce " "shadows)" @@ -12715,40 +13223,39 @@ "czy przesunąć ekspozycję w górę, czy w dół (-1: redukcja świateł, +1: " "redukcja cieni)" -#: ../src/iop/basecurve.c:2215 ../src/iop/tonecurve.c:1187 +#: ../src/iop/basecurve.c:2236 ../src/iop/tonecurve.c:1209 msgid "scale for graph" msgstr "skala wykresu" -#: ../src/iop/basicadj.c:136 +#: ../src/iop/basicadj.c:162 msgid "this module is deprecated. please use the quick access panel instead." msgstr "ten moduł jest przestarzały. użyj panelu szybkiego dostępu." -#: ../src/iop/basicadj.c:141 +#: ../src/iop/basicadj.c:167 msgid "basic adjustments" msgstr "podstawowe korekty" -#: ../src/iop/basicadj.c:146 +#: ../src/iop/basicadj.c:172 msgid "apply usual image adjustments" msgstr "aplikuje podstawowe korekcje" -#: ../src/iop/basicadj.c:147 ../src/iop/bilat.c:102 ../src/iop/bloom.c:81 -#: ../src/iop/blurs.c:93 ../src/iop/borders.c:198 ../src/iop/censorize.c:83 -#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:97 -#: ../src/iop/colorize.c:105 ../src/iop/colormapping.c:153 -#: ../src/iop/colorzones.c:145 ../src/iop/grain.c:434 ../src/iop/highpass.c:78 -#: ../src/iop/levels.c:138 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 -#: ../src/iop/lowpass.c:134 ../src/iop/monochrome.c:98 ../src/iop/soften.c:101 -#: ../src/iop/splittoning.c:103 ../src/iop/velvia.c:105 -#: ../src/iop/vibrance.c:95 ../src/iop/vignette.c:159 -#: ../src/iop/watermark.c:377 +#: ../src/iop/basicadj.c:173 ../src/iop/bilat.c:83 ../src/iop/bloom.c:81 +#: ../src/iop/blurs.c:93 ../src/iop/borders.c:323 ../src/iop/censorize.c:83 +#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:89 +#: ../src/iop/colorize.c:98 ../src/iop/colormapping.c:153 +#: ../src/iop/colorzones.c:146 ../src/iop/grain.c:450 ../src/iop/highpass.c:78 +#: ../src/iop/levels.c:140 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 +#: ../src/iop/lowpass.c:106 ../src/iop/monochrome.c:100 ../src/iop/soften.c:103 +#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:98 ../src/iop/vibrance.c:97 +#: ../src/iop/vignette.c:120 ../src/iop/watermark.c:422 msgid "creative" msgstr "kreatywne" -#: ../src/iop/basicadj.c:150 ../src/iop/colorbalancergb.c:188 +#: ../src/iop/basicadj.c:176 ../src/iop/colorbalancergb.c:188 msgid "non-linear, RGB, scene-referred" msgstr "nieliniowe, RGB, scenocentryczny" -#: ../src/iop/basicadj.c:593 +#: ../src/iop/basicadj.c:623 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -12760,39 +13267,39 @@ "złe ustawienie spowoduje wypadnięcie kolorów bliskich czerni poza gamut\n" "przesuwając wartości RGB poniżej zera" -#: ../src/iop/basicadj.c:601 ../src/iop/exposure.c:1118 +#: ../src/iop/basicadj.c:631 ../src/iop/exposure.c:1136 msgid "adjust the exposure correction" msgstr "ustawienie korekcji ekspozycji" -#: ../src/iop/basicadj.c:605 +#: ../src/iop/basicadj.c:635 msgid "highlight compression adjustment" msgstr "ustawienie kompresji świateł" -#: ../src/iop/basicadj.c:609 ../src/iop/colisa.c:308 +#: ../src/iop/basicadj.c:639 ../src/iop/colisa.c:302 msgid "contrast adjustment" msgstr "korekta kontrastu" -#: ../src/iop/basicadj.c:617 +#: ../src/iop/basicadj.c:647 msgid "middle gray adjustment" msgstr "ustawienie średniej szarości" -#: ../src/iop/basicadj.c:622 ../src/iop/colisa.c:309 +#: ../src/iop/basicadj.c:652 ../src/iop/colisa.c:303 msgid "brightness adjustment" msgstr "korekta jasności" -#: ../src/iop/basicadj.c:625 +#: ../src/iop/basicadj.c:655 msgid "saturation adjustment" msgstr "korekta nasycenia" -#: ../src/iop/basicadj.c:628 +#: ../src/iop/basicadj.c:658 msgid "vibrance adjustment" msgstr "korekcja ożywienia" -#: ../src/iop/basicadj.c:632 +#: ../src/iop/basicadj.c:662 msgid "apply auto exposure based on the entire image" msgstr "zastosuj automatyczną ekspozycję w oparciu o całe zdjęcie" -#: ../src/iop/basicadj.c:639 +#: ../src/iop/basicadj.c:669 msgid "" "apply auto exposure based on a region defined by the user\n" "click and drag to draw the area\n" @@ -12803,51 +13310,51 @@ "kliknij i przeciągnij, aby zaznaczyć obszar\n" "kliknij prawym, aby anulować" -#: ../src/iop/basicadj.c:647 +#: ../src/iop/basicadj.c:677 msgid "clip" msgstr "odcinanie" -#: ../src/iop/basicadj.c:649 +#: ../src/iop/basicadj.c:679 msgid "adjusts clipping value for auto exposure calculation" msgstr "dostosuj próg odcinania przy automatycznym obliczaniu ekspozycji" #. local contrast -#: ../src/iop/bilat.c:96 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:551 +#: ../src/iop/bilat.c:77 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:578 msgid "local contrast" msgstr "kontrast miejscowy" -#: ../src/iop/bilat.c:101 +#: ../src/iop/bilat.c:82 msgid "manipulate local and global contrast separately" msgstr "pozwala osobno manipulować kontrastem lokalnym i globalnym" -#: ../src/iop/bilat.c:103 ../src/iop/bilat.c:105 ../src/iop/bloom.c:82 +#: ../src/iop/bilat.c:84 ../src/iop/bilat.c:86 ../src/iop/bloom.c:82 #: ../src/iop/bloom.c:84 ../src/iop/colisa.c:91 ../src/iop/colisa.c:93 -#: ../src/iop/colorcontrast.c:98 ../src/iop/colorcontrast.c:100 +#: ../src/iop/colorcontrast.c:90 ../src/iop/colorcontrast.c:92 #: ../src/iop/colorcorrection.c:78 ../src/iop/colorcorrection.c:80 -#: ../src/iop/colorize.c:108 ../src/iop/colormapping.c:156 -#: ../src/iop/colorreconstruction.c:138 ../src/iop/colorzones.c:148 -#: ../src/iop/defringe.c:85 ../src/iop/grain.c:435 ../src/iop/grain.c:437 -#: ../src/iop/levels.c:141 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 -#: ../src/iop/monochrome.c:101 ../src/iop/nlmeans.c:96 ../src/iop/nlmeans.c:98 -#: ../src/iop/shadhi.c:200 ../src/iop/tonecurve.c:214 ../src/iop/vibrance.c:98 +#: ../src/iop/colorize.c:101 ../src/iop/colormapping.c:156 +#: ../src/iop/colorreconstruction.c:123 ../src/iop/colorzones.c:149 +#: ../src/iop/defringe.c:85 ../src/iop/grain.c:451 ../src/iop/grain.c:453 +#: ../src/iop/levels.c:143 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 +#: ../src/iop/monochrome.c:103 ../src/iop/nlmeans.c:90 ../src/iop/nlmeans.c:92 +#: ../src/iop/shadhi.c:147 ../src/iop/tonecurve.c:187 ../src/iop/vibrance.c:100 msgid "non-linear, Lab, display-referred" msgstr "nieliniowe, Lab, ekranocentryczny" -#: ../src/iop/bilat.c:104 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 -#: ../src/iop/colorcontrast.c:99 ../src/iop/colorcorrection.c:79 -#: ../src/iop/colorize.c:107 ../src/iop/colormapping.c:155 -#: ../src/iop/colorreconstruction.c:137 ../src/iop/colorzones.c:147 -#: ../src/iop/defringe.c:84 ../src/iop/grain.c:436 ../src/iop/levels.c:140 -#: ../src/iop/monochrome.c:100 ../src/iop/nlmeans.c:97 ../src/iop/shadhi.c:199 -#: ../src/iop/tonecurve.c:213 ../src/iop/vibrance.c:97 +#: ../src/iop/bilat.c:85 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 +#: ../src/iop/colorcontrast.c:91 ../src/iop/colorcorrection.c:79 +#: ../src/iop/colorize.c:100 ../src/iop/colormapping.c:155 +#: ../src/iop/colorreconstruction.c:122 ../src/iop/colorzones.c:148 +#: ../src/iop/defringe.c:84 ../src/iop/grain.c:452 ../src/iop/levels.c:142 +#: ../src/iop/monochrome.c:102 ../src/iop/nlmeans.c:91 ../src/iop/shadhi.c:146 +#: ../src/iop/tonecurve.c:186 ../src/iop/vibrance.c:99 msgid "non-linear, Lab" msgstr "nieliniowe, Lab" -#: ../src/iop/bilat.c:178 +#: ../src/iop/bilat.c:195 msgid "HDR local tone-mapping" msgstr "lokalne mapowanie tonów HDR" -#: ../src/iop/bilat.c:431 +#: ../src/iop/bilat.c:441 msgid "" "the filter used for local contrast enhancement. bilateral is faster but can " "lead to artifacts around edges for extreme settings." @@ -12855,31 +13362,31 @@ "filtr użyty do lokalnego wzmocnienia kontrastu. bilateralny jest szybszy, " "ale może powodować artefakty wokół krawędzi na ekstremalnych ustawieniach." -#: ../src/iop/bilat.c:435 ../src/iop/globaltonemap.c:635 +#: ../src/iop/bilat.c:445 ../src/iop/globaltonemap.c:668 msgid "detail" msgstr "szczegół" -#: ../src/iop/bilat.c:438 +#: ../src/iop/bilat.c:448 msgid "changes the local contrast" msgstr "zmienia kontrast lokalny" -#: ../src/iop/bilat.c:453 +#: ../src/iop/bilat.c:463 msgid "feature size of local details (spatial sigma of bilateral filter)" msgstr "rozmiar lokalnych detali (przestrzenna sigma filtra bilateralnego)" -#: ../src/iop/bilat.c:461 +#: ../src/iop/bilat.c:471 msgid "L difference to detect edges (range sigma of bilateral filter)" msgstr "różnica L do wykrywania krawędzi (sigma zakresu filtra bilateralnego)" -#: ../src/iop/bilat.c:467 +#: ../src/iop/bilat.c:477 msgid "changes the local contrast of highlights" msgstr "zmienia kontrast lokalny świateł" -#: ../src/iop/bilat.c:473 +#: ../src/iop/bilat.c:483 msgid "changes the local contrast of shadows" msgstr "zmienia kontrast lokalny cieni" -#: ../src/iop/bilat.c:479 +#: ../src/iop/bilat.c:489 msgid "" "defines what counts as mid-tones. lower for better dynamic range compression " "(reduce shadow and highlight contrast), increase for more powerful local " @@ -12889,7 +13396,7 @@ "kompresji rozpiętości tonalnej (redukcja kontrastu między cieniami i " "światłami), zwiększyć dla mocniejszego miejscowego kontrastu" -#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:396 +#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:423 msgid "surface blur" msgstr "rozmywanie powierzchni" @@ -12897,23 +13404,23 @@ msgid "denoise (bilateral filter)" msgstr "odszumianie (filtr bilateralny)" -#: ../src/iop/bilateral.cc:99 +#: ../src/iop/bilateral.cc:101 msgid "apply edge-aware surface blur to denoise or smoothen textures" msgstr "" "stosuje świadome krawędzi rozmywanie powierzchni w celu wygładzenia tekstur" -#: ../src/iop/bilateral.cc:102 ../src/iop/blurs.c:93 -#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:729 -#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/soften.c:103 -#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:107 +#: ../src/iop/bilateral.cc:104 ../src/iop/blurs.c:93 +#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:781 +#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/primaries.c:82 +#: ../src/iop/soften.c:105 ../src/iop/splittoning.c:107 ../src/iop/velvia.c:100 msgid "linear, RGB" msgstr "liniowe, RGB" -#: ../src/iop/bilateral.cc:136 +#: ../src/iop/bilateral.cc:138 msgid "image too large" msgstr "obraz zbyt duży" -#: ../src/iop/bilateral.cc:137 +#: ../src/iop/bilateral.cc:139 msgid "" "this module is unable to process\n" "images with more than 2 gigapixels.\n" @@ -12923,19 +13430,19 @@ "obrazów większych niż 2 gigapiksele.\n" "przetwarzanie zostało pominięte." -#: ../src/iop/bilateral.cc:351 +#: ../src/iop/bilateral.cc:353 msgid "spatial extent of the gaussian" msgstr "zasięg przestrzenny Gaussa" -#: ../src/iop/bilateral.cc:355 +#: ../src/iop/bilateral.cc:357 msgid "how much to blur red" msgstr "rozmycie czerwonego" -#: ../src/iop/bilateral.cc:360 +#: ../src/iop/bilateral.cc:362 msgid "how much to blur green" msgstr "rozmycie zielonego" -#: ../src/iop/bilateral.cc:365 +#: ../src/iop/bilateral.cc:367 msgid "how much to blur blue" msgstr "rozmycie niebieskiego" @@ -12943,20 +13450,20 @@ msgid "apply Orton effect for a dreamy aetherical look" msgstr "nakłada efekt Ortona aby osiągnąć rozmarzony, eteryczny wygląd" -#: ../src/iop/bloom.c:368 ../src/iop/soften.c:369 ../src/libs/camera.c:567 -#: ../src/libs/masks.c:105 +#: ../src/iop/bloom.c:364 ../src/iop/soften.c:364 ../src/libs/camera.c:567 +#: ../src/libs/masks.c:106 msgid "size" msgstr "rozmiar" -#: ../src/iop/bloom.c:370 +#: ../src/iop/bloom.c:366 msgid "the size of bloom" msgstr "rozmiar poświaty" -#: ../src/iop/bloom.c:374 +#: ../src/iop/bloom.c:370 msgid "the threshold of light" msgstr "próg światła" -#: ../src/iop/bloom.c:378 +#: ../src/iop/bloom.c:374 msgid "the strength of bloom" msgstr "siła poświaty" @@ -12972,267 +13479,280 @@ msgid "simulate physically-accurate lens and motion blurs" msgstr "symuluje realistyczne rozmycie obiektywu i rozmycie w ruchu" -#: ../src/iop/borders.c:187 +#: ../src/iop/borders.c:312 msgid "framing" msgstr "obramowanie" -#: ../src/iop/borders.c:192 +#: ../src/iop/borders.c:317 msgid "borders|enlarge canvas|expand canvas" msgstr "granice|powiększ płótno|rozszerz płótno" -#: ../src/iop/borders.c:197 +#: ../src/iop/borders.c:322 msgid "add solid borders or margins around the picture" msgstr "dodaje obramowanie lub margines wokół zdjęcia" -#: ../src/iop/borders.c:199 ../src/iop/borders.c:201 ../src/iop/lut3d.c:144 +#: ../src/iop/borders.c:324 ../src/iop/borders.c:326 ../src/iop/lut3d.c:145 msgid "linear or non-linear, RGB, display-referred" msgstr "liniowe lub nieliniowe, RGB, ekranocentryczny" -#: ../src/iop/borders.c:727 +#: ../src/iop/borders.c:737 msgid "15:10 postcard white" msgstr "15:10 pocztówka biała" -#: ../src/iop/borders.c:732 +#: ../src/iop/borders.c:742 msgid "15:10 postcard black" msgstr "15:10 pocztówka czarna" -#: ../src/iop/borders.c:942 -msgid "size of the border in percent of the full image" -msgstr "rozmiar obramowania w procentach obrazu" +#: ../src/iop/borders.c:948 +msgid "which dimension to use for the size calculation" +msgstr "których wymiarów użyć dla obliczenia rozmiaru" -#: ../src/iop/borders.c:944 ../src/iop/clipping.c:2218 ../src/iop/crop.c:1224 +#: ../src/iop/borders.c:954 +msgid "size of the border in percent of the chosen basis" +msgstr "rozmiar obramowania w procentach względem wybranego wymiaru" + +#: ../src/iop/borders.c:956 ../src/iop/clipping.c:2271 ../src/iop/crop.c:1208 msgid "aspect" msgstr "proporcje" -#: ../src/iop/borders.c:945 +#: ../src/iop/borders.c:957 msgid "" -"select the aspect ratio (right click on slider below to type your own w:h)" -msgstr "wybierz proporcję (kliknij prawym by wprowadzić własną (szer:wys))" +"select the aspect ratio\n" +"(right click on slider below to type your own w:h)" +msgstr "" +"wybierz proporcję \n" +"(kliknij prawym na suwak, by wprowadzić własną (szer:wys))" -#: ../src/iop/borders.c:948 +#: ../src/iop/borders.c:961 msgid "3:1" msgstr "3:1" -#: ../src/iop/borders.c:949 +#: ../src/iop/borders.c:962 msgid "95:33" msgstr "95:33" -#: ../src/iop/borders.c:950 +#: ../src/iop/borders.c:963 msgid "CinemaScope 2.39:1" msgstr "cinemascope 2.39:1" -#: ../src/iop/borders.c:951 +#: ../src/iop/borders.c:964 msgid "2:1" msgstr "2:1" -#: ../src/iop/borders.c:952 +#: ../src/iop/borders.c:965 msgid "16:9" msgstr "16:9" -#: ../src/iop/borders.c:953 +#: ../src/iop/borders.c:966 msgid "5:3" msgstr "5:3" -#: ../src/iop/borders.c:954 +#: ../src/iop/borders.c:967 msgid "US Legal 8.5x14" msgstr "US Formalny 8.5x14" -#: ../src/iop/borders.c:955 ../src/iop/clipping.c:2131 ../src/iop/crop.c:1128 +#: ../src/iop/borders.c:968 ../src/iop/clipping.c:2184 ../src/iop/crop.c:1112 msgid "golden cut" msgstr "złoty podział" -#: ../src/iop/borders.c:956 +#: ../src/iop/borders.c:969 msgid "16:10" msgstr "16:10" -#: ../src/iop/borders.c:957 +#: ../src/iop/borders.c:970 msgid "3:2 (4x6, 10x15cm)" msgstr "3:2 (4x6, 10x15cm)" -#: ../src/iop/borders.c:959 +#: ../src/iop/borders.c:972 msgid "DIN" msgstr "DIN" -#: ../src/iop/borders.c:960 +#: ../src/iop/borders.c:973 msgid "7:5" msgstr "7:5" -#: ../src/iop/borders.c:961 +#: ../src/iop/borders.c:974 msgid "4:3" msgstr "4:3" -#: ../src/iop/borders.c:962 +#: ../src/iop/borders.c:975 msgid "US Letter 8.5x11" msgstr "US Listowy 8.5x11" -#: ../src/iop/borders.c:963 +#: ../src/iop/borders.c:976 msgid "14:11" msgstr "14:11" -#: ../src/iop/borders.c:964 +#: ../src/iop/borders.c:977 msgid "5:4 (8x10)" msgstr "5:4 (8x10)" -#: ../src/iop/borders.c:965 ../src/iop/clipping.c:2121 ../src/iop/crop.c:1118 -#: ../src/libs/filtering.c:301 ../src/libs/filters/ratio.c:126 -#: ../src/libs/histogram.c:141 +#: ../src/iop/borders.c:978 ../src/iop/clipping.c:2174 ../src/iop/crop.c:1102 +#: ../src/libs/filtering.c:307 ../src/libs/filters/ratio.c:126 +#: ../src/libs/histogram.c:118 msgid "square" msgstr "kwadrat" -#: ../src/iop/borders.c:966 +#: ../src/iop/borders.c:979 msgid "constant border" msgstr "stałe obramowanie" -#: ../src/iop/borders.c:967 ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:980 ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "custom..." msgstr "własne..." -#: ../src/iop/borders.c:972 -msgid "set the custom aspect ratio (right click to enter number or w:h)" +#: ../src/iop/borders.c:984 +msgid "" +"set the custom aspect ratio\n" +"(right click to enter number or w:h)" msgstr "" -"wybierz niestandardową proporcję (kliknij prawym by wpisać liczbę, lub wys:" -"szer)" +"wybierz niestandardową proporcję \n" +"(kliknij prawym by wpisać liczbę, lub wys:szer)" -#: ../src/iop/borders.c:975 +#: ../src/iop/borders.c:989 msgid "aspect ratio orientation of the image with border" msgstr "orientacja obrazu z obramowaniem" -#: ../src/iop/borders.c:977 +#: ../src/iop/borders.c:991 msgid "horizontal position" msgstr "pozycja w poziomie" -#: ../src/iop/borders.c:978 +#: ../src/iop/borders.c:992 msgid "" -"select the horizontal position ratio relative to top or right click and type " -"your own (y:h)" +"select the horizontal position ratio relative to top\n" +"(right click on slider below to type your own x:w)" msgstr "" -"wybierz proporcje położenia w poziomie w stosunku do góry obrazu lub kliknij " -"prawym przyciskiem i wprowadź własne (y : wys.)" +"wybierz proporcje położenia w poziomie w stosunku do górnej krawędzi obrazu\n" +"(kliknij prawym przyciskiem na suwak i wprowadź własne x:w)" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "center" msgstr "środek" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "1/3" msgstr "1/3" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "3/8" msgstr "3/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "5/8" msgstr "5/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "2/3" msgstr "2/3" -#: ../src/iop/borders.c:986 +#: ../src/iop/borders.c:1000 msgid "custom horizontal position" msgstr "dowolna pozycja w poziomie" -#: ../src/iop/borders.c:988 +#: ../src/iop/borders.c:1002 msgid "vertical position" msgstr "pozycja w pionie" -#: ../src/iop/borders.c:989 +#: ../src/iop/borders.c:1003 +#, fuzzy +#| msgid "" +#| "select the vertical position ratio relative to left or right click and " +#| "type your own (x:w)" msgid "" -"select the vertical position ratio relative to left or right click and type " -"your own (x:w)" +"select the vertical position ratio relative to left\n" +"(right click on slider below to type your own y:h)" msgstr "" "wybierz proporcje położenia w pionie w stosunku do lewej strony obrazu lub " "kliknij prawym przyciskiem i wprowadź własne (x : szer.)" -#: ../src/iop/borders.c:997 +#: ../src/iop/borders.c:1011 msgid "custom vertical position" msgstr "dowolna pozycja w pionie" -#: ../src/iop/borders.c:1002 +#: ../src/iop/borders.c:1017 msgid "size of the frame line in percent of min border width" msgstr "rozmiar linii ramki w procentach najmniejszej szerokości obramowania" -#: ../src/iop/borders.c:1007 +#: ../src/iop/borders.c:1023 msgid "offset of the frame line beginning on picture side" msgstr "odległość linii ramki od brzegu zdjęcia" -#: ../src/iop/borders.c:1014 ../src/iop/borders.c:1023 +#: ../src/iop/borders.c:1033 ../src/iop/borders.c:1044 msgid "border color" msgstr "kolor obramowania" -#: ../src/iop/borders.c:1018 +#: ../src/iop/borders.c:1037 msgid "select border color" msgstr "wybór koloru obramowania" -#: ../src/iop/borders.c:1022 +#: ../src/iop/borders.c:1043 msgid "pick border color from image" msgstr "pobierz kursorem kolor obramowania z obrazu" -#: ../src/iop/borders.c:1023 ../src/iop/borders.c:1036 -#: ../src/iop/colorzones.c:2415 ../src/iop/colorzones.c:2425 -#: ../src/iop/negadoctor.c:848 ../src/iop/negadoctor.c:915 -#: ../src/iop/negadoctor.c:953 ../src/iop/rgbcurve.c:1369 -#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1026 -#: ../src/iop/rgblevels.c:1032 ../src/iop/rgblevels.c:1038 +#: ../src/iop/borders.c:1044 ../src/iop/borders.c:1061 +#: ../src/iop/colorzones.c:2662 ../src/iop/colorzones.c:2677 +#: ../src/iop/negadoctor.c:867 ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:972 ../src/iop/rgbcurve.c:1369 +#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1075 +#: ../src/iop/rgblevels.c:1083 ../src/iop/rgblevels.c:1091 msgid "pickers" msgstr "próbniki" -#: ../src/iop/borders.c:1027 ../src/iop/borders.c:1036 +#: ../src/iop/borders.c:1049 ../src/iop/borders.c:1061 msgid "frame line color" msgstr "kolor linii ramki" -#: ../src/iop/borders.c:1031 +#: ../src/iop/borders.c:1054 msgid "select frame line color" msgstr "wybór koloru linii ramki" -#: ../src/iop/borders.c:1035 +#: ../src/iop/borders.c:1060 msgid "pick frame line color from image" msgstr "pobierz kursorem kolor linii ramki z obrazu" #. make sure you put all your translatable strings into _() ! -#: ../src/iop/cacorrect.c:72 +#: ../src/iop/cacorrect.c:78 msgid "raw chromatic aberrations" msgstr "aberracja chromatyczna raw" -#: ../src/iop/cacorrect.c:77 +#: ../src/iop/cacorrect.c:83 msgid "correct chromatic aberrations for Bayer sensors" msgstr "koryguje aberracje chromatyczne dla sensorów Bayera" -#: ../src/iop/cacorrect.c:79 ../src/iop/cacorrect.c:81 +#: ../src/iop/cacorrect.c:85 ../src/iop/cacorrect.c:87 #: ../src/iop/cacorrectrgb.c:171 ../src/iop/cacorrectrgb.c:173 #: ../src/iop/demosaic.c:294 ../src/iop/highlights.c:180 -#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:74 -#: ../src/iop/hotpixels.c:76 ../src/iop/rawdenoise.c:131 -#: ../src/iop/rawdenoise.c:133 ../src/iop/rawprepare.c:159 -#: ../src/iop/rawprepare.c:161 ../src/iop/temperature.c:213 -#: ../src/iop/temperature.c:215 +#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:76 +#: ../src/iop/hotpixels.c:78 ../src/iop/rawdenoise.c:145 +#: ../src/iop/rawdenoise.c:147 ../src/iop/rawprepare.c:175 +#: ../src/iop/rawprepare.c:177 ../src/iop/temperature.c:221 +#: ../src/iop/temperature.c:223 msgid "linear, raw, scene-referred" msgstr "liniowe, raw, scenocentryczny" -#: ../src/iop/cacorrect.c:80 ../src/iop/cacorrectrgb.c:172 -#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:121 -#: ../src/iop/rawdenoise.c:132 ../src/iop/rawprepare.c:160 -#: ../src/iop/temperature.c:214 +#: ../src/iop/cacorrect.c:86 ../src/iop/cacorrectrgb.c:172 +#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:138 +#: ../src/iop/rawdenoise.c:146 ../src/iop/rawprepare.c:176 +#: ../src/iop/temperature.c:222 msgid "linear, raw" msgstr "liniowe, raw" -#: ../src/iop/cacorrect.c:1405 +#: ../src/iop/cacorrect.c:1424 msgid "iteration runs, default is twice" msgstr "przebiegi iteracji, domyślnie dwa" -#: ../src/iop/cacorrect.c:1408 +#: ../src/iop/cacorrect.c:1427 msgid "activate colorshift correction for blue & red channels" msgstr "" "aktywuj korektę przesunięcia koloru dla niebieskiego i czerwonego kanału" -#: ../src/iop/cacorrect.c:1415 +#: ../src/iop/cacorrect.c:1434 msgid "" "automatic chromatic aberration correction\n" -"only for Bayer raw files" +"only for Bayer raw files with 3 color channels" msgstr "" "automatyczna korekcja aberracji chromatycznej\n" -"działa tylko dla plików raw z filtrem Bayera" +"działa tylko dla plików raw z 3-kanałowym filtrem Bayera" #: ../src/iop/cacorrectrgb.c:164 ../src/iop/defringe.c:76 msgid "chromatic aberrations" @@ -13242,7 +13762,7 @@ msgid "correct chromatic aberrations" msgstr "koryguje aberracje chromatyczne" -#: ../src/iop/cacorrectrgb.c:743 +#: ../src/iop/cacorrectrgb.c:745 msgid "" "channel used as a reference to\n" "correct the other channels.\n" @@ -13257,11 +13777,11 @@ "z kanałów są nieostre.\n" "jeśli występują artefakty, spróbuj zmienić kanał wiodący." -#: ../src/iop/cacorrectrgb.c:750 +#: ../src/iop/cacorrectrgb.c:752 msgid "increase for stronger correction" msgstr "zwiększ dla mocniejszej korekcji" -#: ../src/iop/cacorrectrgb.c:752 +#: ../src/iop/cacorrectrgb.c:754 msgid "" "balance between smoothing colors\n" "and preserving them.\n" @@ -13272,12 +13792,12 @@ "a zachowaniem ich\n" "wysokie wartości mogą prowadzić do rozlewania się i halacji krawędzi." -#: ../src/iop/cacorrectrgb.c:757 +#: ../src/iop/cacorrectrgb.c:759 msgctxt "section" msgid "advanced parameters" msgstr "parametry zaawansowane" -#: ../src/iop/cacorrectrgb.c:759 +#: ../src/iop/cacorrectrgb.c:761 msgid "" "correction mode to use.\n" "can help with multiple\n" @@ -13295,7 +13815,7 @@ "wydajne w korygowaniu niebieskiej\n" "aberracji chromatycznej." -#: ../src/iop/cacorrectrgb.c:767 +#: ../src/iop/cacorrectrgb.c:769 msgid "" "runs an iterative approach\n" "with several radii.\n" @@ -13330,35 +13850,35 @@ msgid "special, RGB, scene-referred" msgstr "specjalny, RGB, scenocentryczny" -#: ../src/iop/censorize.c:412 +#: ../src/iop/censorize.c:404 msgid "radius_1" msgstr "promień_1" -#: ../src/iop/censorize.c:414 +#: ../src/iop/censorize.c:406 msgid "pixelate" msgstr "pikselizacja" -#: ../src/iop/censorize.c:416 +#: ../src/iop/censorize.c:408 msgid "radius_2" msgstr "promień_2" -#: ../src/iop/censorize.c:418 +#: ../src/iop/censorize.c:410 msgid "noise" msgstr "szum" -#: ../src/iop/censorize.c:420 +#: ../src/iop/censorize.c:412 msgid "radius of gaussian blur before pixellation" msgstr "promień rozmycia Gaussa przed pikselacją" -#: ../src/iop/censorize.c:421 +#: ../src/iop/censorize.c:413 msgid "radius of gaussian blur after pixellation" msgstr "promień rozmycia Gaussa po pikselacji" -#: ../src/iop/censorize.c:422 +#: ../src/iop/censorize.c:414 msgid "radius of the intermediate pixellation" msgstr "promień pośredniej pikselacji" -#: ../src/iop/censorize.c:423 +#: ../src/iop/censorize.c:415 msgid "amount of noise to add at the end" msgstr "ilość szumu do dodania na końcu" @@ -13373,7 +13893,7 @@ "ten moduł jest przestarzały. zamiast niego lepiej użyć modułu kalibracji " "kolorów." -#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:229 +#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:230 msgid "" "perform color space corrections\n" "such as white balance, channels mixing\n" @@ -13383,168 +13903,168 @@ "takie jak balans bieli, mieszanie kanałów\n" "i konwersję do obrazów monochromatycznych" -#: ../src/iop/channelmixer.c:614 +#: ../src/iop/channelmixer.c:633 msgid "destination" msgstr "cel" -#: ../src/iop/channelmixer.c:621 +#: ../src/iop/channelmixer.c:640 msgctxt "channelmixer" msgid "gray" msgstr "szary" -#: ../src/iop/channelmixer.c:627 +#: ../src/iop/channelmixer.c:646 msgid "amount of red channel in the output channel" msgstr "ilość kanału czerwonego w kanale wyjściowym" -#: ../src/iop/channelmixer.c:633 +#: ../src/iop/channelmixer.c:652 msgid "amount of green channel in the output channel" msgstr "ilość kanału zielonego w kanale wyjściowym" -#: ../src/iop/channelmixer.c:639 +#: ../src/iop/channelmixer.c:658 msgid "amount of blue channel in the output channel" msgstr "ilość kanału niebieskiego w kanale wyjściowym" -#: ../src/iop/channelmixer.c:655 ../src/iop/channelmixerrgb.c:524 +#: ../src/iop/channelmixer.c:674 ../src/iop/channelmixerrgb.c:588 msgid "swap R and B" msgstr "zamień czerwony i niebieski" -#: ../src/iop/channelmixer.c:661 ../src/iop/channelmixerrgb.c:498 +#: ../src/iop/channelmixer.c:680 ../src/iop/channelmixerrgb.c:562 msgid "swap G and B" msgstr "zamień zielony i niebieski" -#: ../src/iop/channelmixer.c:667 +#: ../src/iop/channelmixer.c:686 msgid "color contrast boost" msgstr "wzmocnienie kontrastu kolorów" -#: ../src/iop/channelmixer.c:673 +#: ../src/iop/channelmixer.c:692 msgid "color details boost" msgstr "wzmocnienie detali kolorów" -#: ../src/iop/channelmixer.c:679 +#: ../src/iop/channelmixer.c:698 msgid "color artifacts boost" msgstr "wzmocnienie artefaktów kolorów" -#: ../src/iop/channelmixer.c:685 +#: ../src/iop/channelmixer.c:704 msgid "B/W luminance-based" msgstr "B/W w oparciu o luminancję" -#: ../src/iop/channelmixer.c:691 +#: ../src/iop/channelmixer.c:710 msgid "B/W artifacts boost" msgstr "czarno-białe - wzmocnienie artefaktów" -#: ../src/iop/channelmixer.c:697 +#: ../src/iop/channelmixer.c:716 msgid "B/W smooth skin" msgstr "czarno-białe - gładka skóra" -#: ../src/iop/channelmixer.c:703 +#: ../src/iop/channelmixer.c:722 msgid "B/W blue artifacts reduce" msgstr "czarno-białe - zmniejszenie artefaktów kanału niebieskiego" -#: ../src/iop/channelmixer.c:710 +#: ../src/iop/channelmixer.c:729 msgid "B/W Ilford Delta 100-400" msgstr "B/W Ilford Delta 100-400" -#: ../src/iop/channelmixer.c:717 +#: ../src/iop/channelmixer.c:736 msgid "B/W Ilford Delta 3200" msgstr "B/W Ilford Delta 3200" -#: ../src/iop/channelmixer.c:724 +#: ../src/iop/channelmixer.c:743 msgid "B/W Ilford FP4" msgstr "B/W Ilford FP4" -#: ../src/iop/channelmixer.c:731 +#: ../src/iop/channelmixer.c:750 msgid "B/W Ilford HP5" msgstr "B/W Ilford HP5" -#: ../src/iop/channelmixer.c:738 +#: ../src/iop/channelmixer.c:757 msgid "B/W Ilford SFX" msgstr "B/W Ilford SFX" -#: ../src/iop/channelmixer.c:745 +#: ../src/iop/channelmixer.c:764 msgid "B/W Kodak T-Max 100" msgstr "B/W Kodak T-Max 100" -#: ../src/iop/channelmixer.c:752 +#: ../src/iop/channelmixer.c:771 msgid "B/W Kodak T-max 400" msgstr "B/W Kodak T-max 400" -#: ../src/iop/channelmixer.c:759 +#: ../src/iop/channelmixer.c:778 msgid "B/W Kodak Tri-X 400" msgstr "B/W Kodak Tri-X 400" -#: ../src/iop/channelmixerrgb.c:219 +#: ../src/iop/channelmixerrgb.c:220 msgid "color calibration" msgstr "kalibracja koloru" -#: ../src/iop/channelmixerrgb.c:224 +#: ../src/iop/channelmixerrgb.c:225 msgid "channel mixer|white balance|monochrome" msgstr "mikser kanałów|balans bieli|monochromatyczność" -#: ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:235 msgid "linear, RGB or XYZ" msgstr "liniowe, RGB lub XYZ" -#: ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:460 msgid "B&W: luminance-based" msgstr "B&W: w oparciu o luminancję" -#: ../src/iop/channelmixerrgb.c:431 +#: ../src/iop/channelmixerrgb.c:495 msgid "B&W: ILFORD HP5+" msgstr "B&W : ILFORD HP5+" -#: ../src/iop/channelmixerrgb.c:440 +#: ../src/iop/channelmixerrgb.c:504 msgid "B&W: ILFORD DELTA 100" msgstr "B&W : ILFORD DELTA 100" -#: ../src/iop/channelmixerrgb.c:450 +#: ../src/iop/channelmixerrgb.c:514 msgid "B&W: ILFORD DELTA 400 - 3200" msgstr "B&W : ILFORD DELTA 400 - 3200" -#: ../src/iop/channelmixerrgb.c:459 +#: ../src/iop/channelmixerrgb.c:523 msgid "B&W: ILFORD FP4+" msgstr "B&W : ILFORD FP4+" -#: ../src/iop/channelmixerrgb.c:468 +#: ../src/iop/channelmixerrgb.c:532 msgid "B&W: Fuji Acros 100" msgstr "B&W: Fuji Acros 100" -#: ../src/iop/channelmixerrgb.c:485 +#: ../src/iop/channelmixerrgb.c:549 msgid "basic channel mixer" msgstr "prosty mikser kanałów" -#: ../src/iop/channelmixerrgb.c:511 +#: ../src/iop/channelmixerrgb.c:575 msgid "swap G and R" msgstr "zamień zielony i czerwony" -#: ../src/iop/channelmixerrgb.c:1869 +#: ../src/iop/channelmixerrgb.c:1926 msgid "(daylight)" msgstr "(światło dzienne)" -#: ../src/iop/channelmixerrgb.c:1871 +#: ../src/iop/channelmixerrgb.c:1928 msgid "(black body)" msgstr "(ciało doskonale czarne)" -#: ../src/iop/channelmixerrgb.c:1873 +#: ../src/iop/channelmixerrgb.c:1930 msgid "(invalid)" msgstr "(błędny)" -#: ../src/iop/channelmixerrgb.c:1877 ../src/iop/channelmixerrgb.c:1935 +#: ../src/iop/channelmixerrgb.c:1934 ../src/iop/channelmixerrgb.c:1992 msgid "very good" msgstr "bardzo dobre" -#: ../src/iop/channelmixerrgb.c:1879 ../src/iop/channelmixerrgb.c:1937 +#: ../src/iop/channelmixerrgb.c:1936 ../src/iop/channelmixerrgb.c:1994 msgid "good" msgstr "dobre" -#: ../src/iop/channelmixerrgb.c:1881 ../src/iop/channelmixerrgb.c:1939 +#: ../src/iop/channelmixerrgb.c:1938 ../src/iop/channelmixerrgb.c:1996 msgid "passable" msgstr "dostateczny" -#: ../src/iop/channelmixerrgb.c:1883 ../src/iop/channelmixerrgb.c:1941 +#: ../src/iop/channelmixerrgb.c:1940 ../src/iop/channelmixerrgb.c:1998 msgid "bad" msgstr "zły" -#: ../src/iop/channelmixerrgb.c:1890 +#: ../src/iop/channelmixerrgb.c:1947 #, c-format msgid "" "\n" @@ -13581,7 +14101,7 @@ "kompensacja ekspozycji: \t%+.2f EV\n" "przesunięcie czerni: \t%+.4f" -#: ../src/iop/channelmixerrgb.c:1946 +#: ../src/iop/channelmixerrgb.c:2003 #, c-format msgid "" "\n" @@ -13600,27 +14120,48 @@ "kompensacja ekspozycji : \t%+.2f EV\n" "przesunięcie czerni: \t%+.4f" -#: ../src/iop/channelmixerrgb.c:1978 +#: ../src/iop/channelmixerrgb.c:2054 msgid "double CAT applied" msgstr "podwójnie zastosowany CAT" -#: ../src/iop/channelmixerrgb.c:1979 +#: ../src/iop/channelmixerrgb.c:2055 msgid "" "you have 2 instances or more of color calibration,\n" -"all performing chromatic adaptation.\n" -"this can lead to inconsistencies, unless you\n" +"all providing chromatic adaptation.\n" +"this can lead to inconsistencies unless you\n" "use them with masks or know what you are doing." msgstr "" -"aktywne są dwie lub więcej instancje kalibracji koloru\n" -"wykonujące adaptację chromatyczną.\n" +"aktywne są dwie lub więcej instancje kalibracji koloru,\n" +"wykonujące jenocześnie adaptację chromatyczną.\n" "może to prowadzić do niezgodności, chyba że zostaną użyte\n" -"z maskami (albo wiesz co robisz)" +"z maskami lub gdy jest to świadome działanie." + +#: ../src/iop/channelmixerrgb.c:2071 +msgid "white balance applied twice" +msgstr "balans bieli zastosowany podwójnie" + +#: ../src/iop/channelmixerrgb.c:2072 +#, fuzzy +#| msgid "" +#| "the color calibration module is enabled,\n" +#| "and performing chromatic adaptation.\n" +#| "set the white balance here to camera reference (D65)\n" +#| "or disable chromatic adaptation in color calibration." +msgid "" +"the color calibration module is enabled and already provides\n" +"chromatic adaptation.\n" +"set the white balance here to camera reference (D65)\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"moduł kalibracji kolorów jest włączony\n" +"i wykonuje adaptację chromatyczną.ustaw balans bieli na referencyjny aparatu " +"(D65)lub wyłącz adaptację chromatyczną w module kalibracji koloru." -#: ../src/iop/channelmixerrgb.c:1991 +#: ../src/iop/channelmixerrgb.c:2080 msgid "white balance module error" msgstr "błędne ustawienia balansu bieli" -#: ../src/iop/channelmixerrgb.c:1992 +#: ../src/iop/channelmixerrgb.c:2081 msgid "" "the white balance module is not using the camera\n" "reference illuminant, which will cause issues here\n" @@ -13631,20 +14172,58 @@ "co spowoduje problemy z adaptacją chromatyczną w module kalibracji kolorów.\n" "wyłącz adaptację chromatyczną, albo zmień ustawienia modułu balansu bieli." -#: ../src/iop/channelmixerrgb.c:2083 +#: ../src/iop/channelmixerrgb.c:2095 ../src/iop/channelmixerrgb.c:2104 +msgid "white balance missing" +msgstr "brak korekty balansu bieli" + +#: ../src/iop/channelmixerrgb.c:2096 +#, fuzzy +#| msgid "" +#| "the color calibration module is enabled,\n" +#| "and performing chromatic adaptation.\n" +#| "set the white balance here to camera reference (D65)\n" +#| "or disable chromatic adaptation in color calibration." +msgid "" +"this module is not providing a valid reference illuminant\n" +"causing chromatic adaptation issues in color calibration.\n" +"enable this module and either set it to reference\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"moduł kalibracji kolorów jest włączony\n" +"i wykonuje adaptację chromatyczną.ustaw balans bieli na referencyjny aparatu " +"(D65)lub wyłącz adaptację chromatyczną w module kalibracji koloru." + +#: ../src/iop/channelmixerrgb.c:2105 +#, fuzzy +#| msgid "" +#| "the white balance module is not using the camera\n" +#| "reference illuminant, which will cause issues here\n" +#| "with chromatic adaptation. either set it to reference\n" +#| "or disable chromatic adaptation here." +msgid "" +"the white balance module is not providing a valid reference\n" +"illuminant causing issues with chromatic adaptation here.\n" +"enable white balance and either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" +"moduł balansu bieli nie używa oświetlenia referencyjnego aparatu,\n" +"co spowoduje problemy z adaptacją chromatyczną w module kalibracji kolorów.\n" +"wyłącz adaptację chromatyczną, albo zmień ustawienia modułu balansu bieli." + +#: ../src/iop/channelmixerrgb.c:2196 msgid "auto-detection of white balance completed" msgstr "autodetekcja balansu bieli zakończona" -#: ../src/iop/channelmixerrgb.c:2236 +#: ../src/iop/channelmixerrgb.c:2346 msgid "channelmixerrgb works only on RGB input" msgstr "moduł miksera kanałów RGB działa wyłącznie na danych wejściowych RGB" -#: ../src/iop/channelmixerrgb.c:3621 +#: ../src/iop/channelmixerrgb.c:3692 #, c-format msgid "CCT: %.0f K (daylight)" msgstr "CCT: %.0f K (światło dzienne)" -#: ../src/iop/channelmixerrgb.c:3624 +#: ../src/iop/channelmixerrgb.c:3695 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a daylight spectrum,\n" @@ -13655,12 +14234,12 @@ "dziennego,\n" "więc jego temperatura barwowa ma sens dla oświetlenia typu D." -#: ../src/iop/channelmixerrgb.c:3630 +#: ../src/iop/channelmixerrgb.c:3701 #, c-format msgid "CCT: %.0f K (black body)" msgstr "CCT: %.0f K (ciało doskonale czarne)" -#: ../src/iop/channelmixerrgb.c:3633 +#: ../src/iop/channelmixerrgb.c:3704 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a black body spectrum,\n" @@ -13671,12 +14250,12 @@ "doskonale czarnego,\n" "więc jego temperatura barwowa ma sens dla oświetlenia typu Plancka." -#: ../src/iop/channelmixerrgb.c:3639 +#: ../src/iop/channelmixerrgb.c:3710 #, c-format msgid "CCT: %.0f K (invalid)" msgstr "CCT: %.0f K (niepoprawny)" -#: ../src/iop/channelmixerrgb.c:3642 +#: ../src/iop/channelmixerrgb.c:3713 msgid "" "approximated correlated color temperature.\n" "this illuminant cannot be accurately modeled by a daylight or black body " @@ -13690,12 +14269,12 @@ "niego sensu\n" "i należy użyć niestandardowego rodzaju oświetlenia." -#: ../src/iop/channelmixerrgb.c:3651 +#: ../src/iop/channelmixerrgb.c:3722 #, c-format msgid "CCT: undefined" msgstr "CCT: niezdefiniowane" -#: ../src/iop/channelmixerrgb.c:3654 +#: ../src/iop/channelmixerrgb.c:3725 msgid "" "the approximated correlated color temperature\n" "cannot be computed at all so you need to use a custom illuminant." @@ -13704,16 +14283,16 @@ "nie może zostać obliczona, więc konieczne będzie użycie niestandardowego " "rodzaju oświetlenia." -#: ../src/iop/channelmixerrgb.c:3967 +#: ../src/iop/channelmixerrgb.c:4038 msgid "white balance successfully extracted from raw image" msgstr "balans bieli pomyślnie odczytany z obrazu raw" #. We need to recompute only the full preview -#: ../src/iop/channelmixerrgb.c:3973 +#: ../src/iop/channelmixerrgb.c:4044 msgid "auto-detection of white balance started…" msgstr "rozpoczęto autodetekcję balansu bieli" -#: ../src/iop/channelmixerrgb.c:4078 +#: ../src/iop/channelmixerrgb.c:4149 msgid "" "color calibration: the sum of the gray channel parameters is zero, " "normalization will be disabled." @@ -13722,7 +14301,7 @@ "zostanie wyłączona." #. Write report in GUI -#: ../src/iop/channelmixerrgb.c:4126 +#: ../src/iop/channelmixerrgb.c:4194 #, c-format msgid "" "L: \t%.1f %%\n" @@ -13733,27 +14312,27 @@ "h: \t%.1f °\n" "c: \t%.1f" -#: ../src/iop/channelmixerrgb.c:4394 ../src/iop/clipping.c:2087 -#: ../src/iop/colorbalancergb.c:1873 ../src/iop/filmicrgb.c:4419 -#: ../src/iop/negadoctor.c:829 ../src/iop/toneequal.c:3319 -#: ../src/libs/image.c:460 ../src/views/lighttable.c:1258 +#: ../src/iop/channelmixerrgb.c:4462 ../src/iop/clipping.c:2140 +#: ../src/iop/colorbalancergb.c:1944 ../src/iop/filmicrgb.c:4483 +#: ../src/iop/negadoctor.c:848 ../src/iop/toneequal.c:3372 +#: ../src/libs/image.c:490 ../src/views/lighttable.c:1258 msgid "page" msgstr "strona" #. Page CAT -#: ../src/iop/channelmixerrgb.c:4397 +#: ../src/iop/channelmixerrgb.c:4465 msgid "CAT" msgstr "CAT" -#: ../src/iop/channelmixerrgb.c:4398 +#: ../src/iop/channelmixerrgb.c:4466 msgid "chromatic adaptation transform" msgstr "przekształcenie adaptacji chromatycznej" -#: ../src/iop/channelmixerrgb.c:4400 +#: ../src/iop/channelmixerrgb.c:4468 msgid "adaptation" msgstr "adaptacja" -#: ../src/iop/channelmixerrgb.c:4403 +#: ../src/iop/channelmixerrgb.c:4471 msgid "" "choose the method to adapt the illuminant\n" "and the colorspace in which the module works: \n" @@ -13775,7 +14354,7 @@ "• XYZ to proste skalowanie w przestrzeni XYZ. nie jest zalecane.\n" "• brak wyłącza adaptacje i używa przestrzeni RGB potoku przetwarzania." -#: ../src/iop/channelmixerrgb.c:4423 +#: ../src/iop/channelmixerrgb.c:4491 msgid "" "this is the color of the scene illuminant before chromatic adaptation\n" "this color will be turned into pure white by the adaptation." @@ -13783,27 +14362,27 @@ "to jest kolor oświetlenia sceny przed adaptacją chromatyczną.\n" "stanie się on czystą bielą po wykonaniu adaptacji." -#: ../src/iop/channelmixerrgb.c:4431 +#: ../src/iop/channelmixerrgb.c:4499 msgid "picker" msgstr "próbnik" -#: ../src/iop/channelmixerrgb.c:4433 ../src/iop/temperature.c:2047 +#: ../src/iop/channelmixerrgb.c:4501 ../src/iop/temperature.c:2015 msgid "set white balance to detected from area" msgstr "ustaw balans bieli na wykryty z obszaru" -#: ../src/iop/channelmixerrgb.c:4437 ../src/iop/negadoctor.c:953 +#: ../src/iop/channelmixerrgb.c:4505 ../src/iop/negadoctor.c:972 msgid "illuminant" msgstr "oświetlenie" -#: ../src/iop/channelmixerrgb.c:4443 ../src/iop/temperature.c:2107 +#: ../src/iop/channelmixerrgb.c:4511 ../src/iop/temperature.c:2072 msgid "temperature" msgstr "temperatura" -#: ../src/iop/channelmixerrgb.c:4474 -msgid "spot color mapping" -msgstr "punktowe mapowanie kolorów" +#: ../src/iop/channelmixerrgb.c:4542 +msgid "area color mapping" +msgstr "miejscowe mapowanie kolorów" -#: ../src/iop/channelmixerrgb.c:4480 +#: ../src/iop/channelmixerrgb.c:4548 msgid "" "define a target chromaticity (hue and chroma) for a particular region of the " "image (the control sample), which you then match against the same target " @@ -13816,17 +14395,17 @@ "innych obrazach. Próbka może być istotnym elementem tematu zdjęcia, lub " "nieruchomą, niezmiennie oświetloną powierzchnię widoczną w serii zdjęć." -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/channelmixerrgb.c:4502 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/channelmixerrgb.c:4573 +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/channelmixerrgb.c:4570 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/channelmixerrgb.c:4641 msgid "mapping" msgstr "mapowanie" -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/exposure.c:1188 -msgid "spot mode" -msgstr "tryb skupiony" +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/exposure.c:1206 +msgid "area mode" +msgstr "tryb miejscowy" -#: ../src/iop/channelmixerrgb.c:4488 +#: ../src/iop/channelmixerrgb.c:4556 msgid "" "\"correction\" automatically adjust the illuminant\n" "such that the input color is mapped to the target.\n" @@ -13838,19 +14417,19 @@ "\"pomiar\" pokazuje jak kolor wejściowy jest zmapowany w CAT\n" "i może być użyty do pobrania wzorca." -#: ../src/iop/channelmixerrgb.c:4493 ../src/iop/exposure.c:1194 +#: ../src/iop/channelmixerrgb.c:4561 ../src/iop/exposure.c:1212 msgid "correction" msgstr "korekcja" -#: ../src/iop/channelmixerrgb.c:4494 ../src/iop/exposure.c:1195 +#: ../src/iop/channelmixerrgb.c:4562 ../src/iop/exposure.c:1213 msgid "measure" msgstr "pomiar" -#: ../src/iop/channelmixerrgb.c:4500 +#: ../src/iop/channelmixerrgb.c:4568 msgid "take channel mixing into account" msgstr "uwzględnij miksowanie kanałów" -#: ../src/iop/channelmixerrgb.c:4507 +#: ../src/iop/channelmixerrgb.c:4575 msgid "" "compute the target by taking the channel mixing into account.\n" "if disabled, only the CAT is considered." @@ -13858,16 +14437,16 @@ "Oblicz wzorzec biorąc mikser kanałów pod uwagę.\n" "jeśli wyłączony, tylko CAT jest uwzględniany." -#: ../src/iop/channelmixerrgb.c:4519 ../src/iop/exposure.c:1202 +#: ../src/iop/channelmixerrgb.c:4587 ../src/iop/exposure.c:1220 msgctxt "section" msgid "input" msgstr "wejście" -#: ../src/iop/channelmixerrgb.c:4526 ../src/iop/exposure.c:1210 +#: ../src/iop/channelmixerrgb.c:4594 ../src/iop/exposure.c:1228 msgid "the input color that should be mapped to the target" msgstr "kolor wejściowy do mapowania na wzorzec." -#: ../src/iop/channelmixerrgb.c:4532 +#: ../src/iop/channelmixerrgb.c:4600 msgid "" "L: \tN/A\n" "h: \tN/A\n" @@ -13877,115 +14456,115 @@ "h: \tN/A\n" "c: \tN/A" -#: ../src/iop/channelmixerrgb.c:4535 ../src/iop/exposure.c:1218 +#: ../src/iop/channelmixerrgb.c:4603 ../src/iop/exposure.c:1236 msgid "these LCh coordinates are computed from CIE Lab 1976 coordinates" msgstr "Te koordynaty LCh są obliczane z koordynatów CIE Lab 1976" -#: ../src/iop/channelmixerrgb.c:4543 ../src/iop/exposure.c:1225 +#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/exposure.c:1243 msgctxt "section" msgid "target" msgstr "cel" -#: ../src/iop/channelmixerrgb.c:4550 +#: ../src/iop/channelmixerrgb.c:4618 msgid "the desired target color after mapping" msgstr "oczekiwany kolor wzornika po mapowaniu" -#: ../src/iop/channelmixerrgb.c:4589 +#: ../src/iop/channelmixerrgb.c:4657 msgid "input R" msgstr "wejście R" -#: ../src/iop/channelmixerrgb.c:4594 +#: ../src/iop/channelmixerrgb.c:4662 msgid "input G" msgstr "wejście G" -#: ../src/iop/channelmixerrgb.c:4599 +#: ../src/iop/channelmixerrgb.c:4667 msgid "input B" msgstr "wejście B" -#: ../src/iop/channelmixerrgb.c:4609 +#: ../src/iop/channelmixerrgb.c:4677 msgid "output R" msgstr "wyjście R" -#: ../src/iop/channelmixerrgb.c:4610 +#: ../src/iop/channelmixerrgb.c:4678 msgid "output G" msgstr "wyjście G" -#: ../src/iop/channelmixerrgb.c:4611 +#: ../src/iop/channelmixerrgb.c:4679 msgid "output B" msgstr "wyjście B" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "colorfulness" msgstr "nasycenie koloru" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "output colorfulness" msgstr "wyjściowe nasycenie koloru" -#: ../src/iop/channelmixerrgb.c:4617 +#: ../src/iop/channelmixerrgb.c:4685 msgid "output brightness" msgstr "wyjściowa jasność" -#: ../src/iop/channelmixerrgb.c:4620 +#: ../src/iop/channelmixerrgb.c:4688 msgid "output gray" msgstr "wyjściowa szarość" -#: ../src/iop/channelmixerrgb.c:4635 +#: ../src/iop/channelmixerrgb.c:4703 msgid "calibrate with a color checker" msgstr "kalibracja z wzornikiem barw" -#: ../src/iop/channelmixerrgb.c:4640 +#: ../src/iop/channelmixerrgb.c:4708 msgid "use a color checker target to autoset CAT and channels" msgstr "użyj wzornika barw do automatycznej nastawy CAT i kanałów" -#: ../src/iop/channelmixerrgb.c:4647 ../src/iop/channelmixerrgb.c:4660 -#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/channelmixerrgb.c:4696 -#: ../src/iop/channelmixerrgb.c:4705 ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4715 ../src/iop/channelmixerrgb.c:4728 +#: ../src/iop/channelmixerrgb.c:4746 ../src/iop/channelmixerrgb.c:4764 +#: ../src/iop/channelmixerrgb.c:4773 ../src/iop/channelmixerrgb.c:4781 msgid "calibrate" msgstr "kalibruj" # kontekst? -#: ../src/iop/channelmixerrgb.c:4647 +#: ../src/iop/channelmixerrgb.c:4715 msgid "chart" msgstr "wykres" -#: ../src/iop/channelmixerrgb.c:4648 +#: ../src/iop/channelmixerrgb.c:4716 msgid "choose the vendor and the type of your chart" msgstr "wybierz dostawcę i typ wzornika barw" -#: ../src/iop/channelmixerrgb.c:4650 +#: ../src/iop/channelmixerrgb.c:4718 msgid "Xrite ColorChecker 24 pre-2014" msgstr "Xrite ColorChecker 24 (przed 2014)" -#: ../src/iop/channelmixerrgb.c:4651 +#: ../src/iop/channelmixerrgb.c:4719 msgid "Xrite ColorChecker 24 post-2014" msgstr "Xrite ColorChecker 24 (po 2014)" -#: ../src/iop/channelmixerrgb.c:4652 +#: ../src/iop/channelmixerrgb.c:4720 msgid "Datacolor SpyderCheckr 24 pre-2018" msgstr "Datacolor SpyderCheckr 24 (do 2018)" -#: ../src/iop/channelmixerrgb.c:4653 +#: ../src/iop/channelmixerrgb.c:4721 msgid "Datacolor SpyderCheckr 24 post-2018" msgstr "Datacolor SpyderCheckr 24 (po 2018)" -#: ../src/iop/channelmixerrgb.c:4654 +#: ../src/iop/channelmixerrgb.c:4722 msgid "Datacolor SpyderCheckr 48 pre-2018" msgstr "Datacolor SpyderCheckr 48 (przed 2018)" -#: ../src/iop/channelmixerrgb.c:4655 +#: ../src/iop/channelmixerrgb.c:4723 msgid "Datacolor SpyderCheckr 48 post-2018" msgstr "Datacolor SpyderCheckr 48 (po 2018)" -#: ../src/iop/channelmixerrgb.c:4656 +#: ../src/iop/channelmixerrgb.c:4724 msgid "Datacolor SpyderCheckr Photo" msgstr "Datacolor SpyderCheckr Photo" -#: ../src/iop/channelmixerrgb.c:4660 +#: ../src/iop/channelmixerrgb.c:4728 msgid "optimize for" msgstr "optymalizuj dla" -#: ../src/iop/channelmixerrgb.c:4661 +#: ../src/iop/channelmixerrgb.c:4729 msgid "" "choose the colors that will be optimized with higher priority.\n" "neutral colors gives the lowest average delta E but a high maximum delta E\n" @@ -14000,35 +14579,35 @@ "Nie ma złotego środka\n" "pozostałe stanowią specjalne strategie dla zachowania określonych barw" -#: ../src/iop/channelmixerrgb.c:4668 +#: ../src/iop/channelmixerrgb.c:4736 msgid "neutral colors" msgstr "neutralne kolory" -#: ../src/iop/channelmixerrgb.c:4670 +#: ../src/iop/channelmixerrgb.c:4738 msgid "skin and soil colors" msgstr "kolory skóry i gleby" -#: ../src/iop/channelmixerrgb.c:4671 +#: ../src/iop/channelmixerrgb.c:4739 msgid "foliage colors" msgstr "kolory listowia" -#: ../src/iop/channelmixerrgb.c:4672 +#: ../src/iop/channelmixerrgb.c:4740 msgid "sky and water colors" msgstr "kolory nieba i wody" -#: ../src/iop/channelmixerrgb.c:4673 +#: ../src/iop/channelmixerrgb.c:4741 msgid "average delta E" msgstr "przeciętna delta E" -#: ../src/iop/channelmixerrgb.c:4674 +#: ../src/iop/channelmixerrgb.c:4742 msgid "maximum delta E" msgstr "maks. delta E" -#: ../src/iop/channelmixerrgb.c:4678 +#: ../src/iop/channelmixerrgb.c:4746 msgid "patch scale" msgstr "rozmiar łatki" -#: ../src/iop/channelmixerrgb.c:4681 +#: ../src/iop/channelmixerrgb.c:4749 msgid "" "reduce the radius of the patches to select the more or less central part.\n" "useful when the perspective correction is sloppy or\n" @@ -14038,31 +14617,31 @@ "użyteczne, gdy korekcja perspektywy jest nieskuteczna lub\n" "gdy ramka łatki rzuca cienie na krawędzie łatki." -#: ../src/iop/channelmixerrgb.c:4691 +#: ../src/iop/channelmixerrgb.c:4759 msgid "the delta E is using the CIE 2000 formula" msgstr "delta E używa formuły CIE 2000" -#: ../src/iop/channelmixerrgb.c:4696 +#: ../src/iop/channelmixerrgb.c:4764 msgid "accept" msgstr "akceptuj" -#: ../src/iop/channelmixerrgb.c:4702 +#: ../src/iop/channelmixerrgb.c:4770 msgid "accept the computed profile and set it in the module" msgstr "akceptuj obliczony profil i ustaw go w module" -#: ../src/iop/channelmixerrgb.c:4705 +#: ../src/iop/channelmixerrgb.c:4773 msgid "recompute" msgstr "przelicz" -#: ../src/iop/channelmixerrgb.c:4709 +#: ../src/iop/channelmixerrgb.c:4777 msgid "recompute the profile" msgstr "przelicz profil" -#: ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4781 msgid "validate" msgstr "walidacja" -#: ../src/iop/channelmixerrgb.c:4717 +#: ../src/iop/channelmixerrgb.c:4785 msgid "check the output delta E" msgstr "sprawdź wyjściową deltę E" @@ -14076,19 +14655,19 @@ "this module is deprecated. better use new local contrast module instead." msgstr "ten moduł jest przestarzały. lepiej użyć modułu kontrastu miejscowego." -#: ../src/iop/clahe.c:337 ../src/iop/sharpen.c:445 +#: ../src/iop/clahe.c:339 ../src/iop/sharpen.c:440 msgid "amount" msgstr "ilość" -#: ../src/iop/clahe.c:346 +#: ../src/iop/clahe.c:348 msgid "size of features to preserve" msgstr "rozmiar szczegółów do zachowania" -#: ../src/iop/clahe.c:347 ../src/iop/nlmeans.c:464 +#: ../src/iop/clahe.c:349 ../src/iop/nlmeans.c:467 msgid "strength of the effect" msgstr "siła efektu" -#: ../src/iop/clipping.c:304 +#: ../src/iop/clipping.c:347 msgid "" "this module is deprecated. please use the crop, orientation and/or rotate " "and perspective modules instead." @@ -14096,144 +14675,144 @@ "ten moduł jest przestarzały, zamiast niego lepiej użyć modułów przytnij i/" "lub obróć oraz modułu perspektywy." -#: ../src/iop/clipping.c:309 +#: ../src/iop/clipping.c:352 msgid "crop and rotate" msgstr "kadrowanie i obrót" -#: ../src/iop/clipping.c:314 +#: ../src/iop/clipping.c:357 msgid "reframe|perspective|keystone|distortion" msgstr "kadrowanie|perspektywa|keystone|obrót" -#: ../src/iop/clipping.c:319 +#: ../src/iop/clipping.c:362 msgid "change the framing and correct the perspective" msgstr "zmień kadr i skoryguj perspektywę" -#: ../src/iop/clipping.c:1394 ../src/iop/clipping.c:2120 ../src/iop/crop.c:517 -#: ../src/iop/crop.c:1117 +#: ../src/iop/clipping.c:1447 ../src/iop/clipping.c:2173 ../src/iop/crop.c:501 +#: ../src/iop/crop.c:1101 msgid "original image" msgstr "oryginalne zdjęcie" -#: ../src/iop/clipping.c:1698 ../src/iop/crop.c:824 +#: ../src/iop/clipping.c:1751 ../src/iop/crop.c:808 msgid "invalid ratio format. it should be \"number:number\"" msgstr "nieprawidłowy format proporcji. powinno być „liczba:liczba”" -#: ../src/iop/clipping.c:1714 ../src/iop/crop.c:840 +#: ../src/iop/clipping.c:1767 ../src/iop/crop.c:824 msgid "invalid ratio format. it should be a positive number" msgstr "nieprawidłowy format proporcji. powinien być liczbą dodatnią" -#: ../src/iop/clipping.c:1903 ../src/iop/clipping.c:2111 +#: ../src/iop/clipping.c:1956 ../src/iop/clipping.c:2164 msgid "full" msgstr "pełna" -#: ../src/iop/clipping.c:1904 +#: ../src/iop/clipping.c:1957 msgid "old system" msgstr "stary system" -#: ../src/iop/clipping.c:1905 +#: ../src/iop/clipping.c:1958 msgid "correction applied" msgstr "korekcja zastosowana" -#: ../src/iop/clipping.c:2089 +#: ../src/iop/clipping.c:2142 msgid "main" msgstr "main" -#: ../src/iop/clipping.c:2098 +#: ../src/iop/clipping.c:2151 msgid "mirror image horizontally and/or vertically" msgstr "odbicie obrazu w poziomie oraz/lub w pionie" -#: ../src/iop/clipping.c:2101 +#: ../src/iop/clipping.c:2154 msgid "angle" msgstr "kąt" -#: ../src/iop/clipping.c:2104 +#: ../src/iop/clipping.c:2157 msgid "right-click and drag a line on the image to drag a straight line" msgstr "" "kliknij prawym z klawiszem shift i przeciągnij na zdjęciu, aby dodać prostą " "linię" -#: ../src/iop/clipping.c:2107 +#: ../src/iop/clipping.c:2160 msgid "keystone" msgstr "korekcja perspektywy" -#: ../src/iop/clipping.c:2112 +#: ../src/iop/clipping.c:2165 msgid "set perspective correction for your image" msgstr "wybierz rodzaj korekcji perspektywy" -#: ../src/iop/clipping.c:2119 ../src/iop/crop.c:1116 +#: ../src/iop/clipping.c:2172 ../src/iop/crop.c:1100 msgid "freehand" msgstr "dowolne" -#: ../src/iop/clipping.c:2122 ../src/iop/crop.c:1119 +#: ../src/iop/clipping.c:2175 ../src/iop/crop.c:1103 msgid "10:8 in print" msgstr "10:8 w wydruku" -#: ../src/iop/clipping.c:2123 ../src/iop/crop.c:1120 +#: ../src/iop/clipping.c:2176 ../src/iop/crop.c:1104 msgid "5:4, 4x5, 8x10" msgstr "5:4, 4x5, 8x10" -#: ../src/iop/clipping.c:2124 ../src/iop/crop.c:1121 +#: ../src/iop/clipping.c:2177 ../src/iop/crop.c:1105 msgid "11x14" msgstr "11x14" -#: ../src/iop/clipping.c:2125 ../src/iop/crop.c:1122 +#: ../src/iop/clipping.c:2178 ../src/iop/crop.c:1106 msgid "8.5x11, letter" msgstr "8.5x11, letter" -#: ../src/iop/clipping.c:2126 ../src/iop/crop.c:1123 +#: ../src/iop/clipping.c:2179 ../src/iop/crop.c:1107 msgid "4:3, VGA, TV" msgstr "4:3, VGA, TV" -#: ../src/iop/clipping.c:2127 ../src/iop/crop.c:1124 +#: ../src/iop/clipping.c:2180 ../src/iop/crop.c:1108 msgid "5x7" msgstr "5x7" -#: ../src/iop/clipping.c:2128 ../src/iop/crop.c:1125 +#: ../src/iop/clipping.c:2181 ../src/iop/crop.c:1109 msgid "ISO 216, DIN 476, A4" msgstr "ISO 216, DIN 476, A4" -#: ../src/iop/clipping.c:2129 ../src/iop/crop.c:1126 +#: ../src/iop/clipping.c:2182 ../src/iop/crop.c:1110 msgid "3:2, 4x6, 35mm" msgstr "3:2, 4x6, 35mm" -#: ../src/iop/clipping.c:2130 ../src/iop/crop.c:1127 +#: ../src/iop/clipping.c:2183 ../src/iop/crop.c:1111 msgid "16:10, 8x5" msgstr "16:10, 8x5" -#: ../src/iop/clipping.c:2132 ../src/iop/crop.c:1129 +#: ../src/iop/clipping.c:2185 ../src/iop/crop.c:1113 msgid "16:9, HDTV" msgstr "16:9, HDTV" -#: ../src/iop/clipping.c:2133 ../src/iop/crop.c:1130 +#: ../src/iop/clipping.c:2186 ../src/iop/crop.c:1114 msgid "widescreen" msgstr "ekran panoramiczny" -#: ../src/iop/clipping.c:2134 ../src/iop/crop.c:1131 +#: ../src/iop/clipping.c:2187 ../src/iop/crop.c:1115 msgid "2:1, univisium" msgstr "2:1, univisium" -#: ../src/iop/clipping.c:2135 ../src/iop/crop.c:1132 +#: ../src/iop/clipping.c:2188 ../src/iop/crop.c:1116 msgid "cinemascope" msgstr "cinemascope" -#: ../src/iop/clipping.c:2136 ../src/iop/crop.c:1133 +#: ../src/iop/clipping.c:2189 ../src/iop/crop.c:1117 msgid "21:9" msgstr "21:9" -#: ../src/iop/clipping.c:2137 ../src/iop/crop.c:1134 +#: ../src/iop/clipping.c:2190 ../src/iop/crop.c:1118 msgid "anamorphic" msgstr "anamorficzny" -#: ../src/iop/clipping.c:2138 ../src/iop/crop.c:1135 +#: ../src/iop/clipping.c:2191 ../src/iop/crop.c:1119 msgid "3:1, panorama" msgstr "3:1, panorama" -#: ../src/iop/clipping.c:2170 ../src/iop/clipping.c:2182 ../src/iop/crop.c:1171 -#: ../src/iop/crop.c:1187 +#: ../src/iop/clipping.c:2223 ../src/iop/clipping.c:2235 ../src/iop/crop.c:1155 +#: ../src/iop/crop.c:1171 #, c-format msgid "invalid ratio format for `%s'. it should be \"number:number\"" msgstr "nieprawidłowy format proporcji dla „%s”. powinno być „liczba:liczba”" -#: ../src/iop/clipping.c:2229 ../src/iop/crop.c:1238 +#: ../src/iop/clipping.c:2282 ../src/iop/crop.c:1222 msgid "" "set the aspect ratio\n" "the list is sorted: from most square to least square\n" @@ -14246,51 +14825,51 @@ "własna proporcja: otwórz listę i wpisz proporcje w formacie x:y lub " "dziesiętnym" -#: ../src/iop/clipping.c:2236 ../src/iop/crop.c:1252 +#: ../src/iop/clipping.c:2289 ../src/iop/crop.c:1236 msgid "margins" msgstr "marginesy" -#: ../src/iop/clipping.c:2241 ../src/iop/crop.c:1262 +#: ../src/iop/clipping.c:2294 ../src/iop/crop.c:1246 msgid "the left margin cannot overlap with the right margin" msgstr "lewy margines nie może nachodzić na prawy" -#: ../src/iop/clipping.c:2248 ../src/iop/crop.c:1270 +#: ../src/iop/clipping.c:2301 ../src/iop/crop.c:1254 msgid "the right margin cannot overlap with the left margin" msgstr "prawy margines nie może nachodzić na lewy" -#: ../src/iop/clipping.c:2253 ../src/iop/crop.c:1276 +#: ../src/iop/clipping.c:2306 ../src/iop/crop.c:1260 msgid "the top margin cannot overlap with the bottom margin" msgstr "górny margines nie może nachodzić na dolny" -#: ../src/iop/clipping.c:2260 ../src/iop/crop.c:1284 +#: ../src/iop/clipping.c:2313 ../src/iop/crop.c:1268 msgid "the bottom margin cannot overlap with the top margin" msgstr "dolny margines nie może nachodzić na górny" -#: ../src/iop/clipping.c:3019 +#: ../src/iop/clipping.c:3059 msgid "<b>commit</b>: double-click, <b>straighten</b>: right-drag" msgstr "" "<b>zatwierdzenie</b>: podwójny klik, <b>prostowanie</b>: przeciągnięcie z " "prawym" -#: ../src/iop/clipping.c:3023 +#: ../src/iop/clipping.c:3063 msgid "" "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag\n" "<b>straighten</b>: right-drag" msgstr "" -"<b>zmiana rozmiaru</b>: przeciągnij, <b>utrzymanie proporcji</b>: shift" -"+przeciągnij\n" +"<b>zmiana rozmiaru</b>: przeciągnij, <b>utrzymanie proporcji</b>: " +"shift+przeciągnij\n" "<b>wzmocnienie</b>: prawy klik" -#: ../src/iop/clipping.c:3066 +#: ../src/iop/clipping.c:3104 msgid "<b>move control point</b>: drag" msgstr "<b>przesunięcie punktu kontrolnego</b>: przeciągnij" -#: ../src/iop/clipping.c:3071 +#: ../src/iop/clipping.c:3109 msgid "<b>move line</b>: drag, <b>toggle symmetry</b>: click ꝏ" msgstr "" "<b>przesunięcie linii</b>: przeciągnij, <b>przełączenie symetrii</b>: klik ꝏ" -#: ../src/iop/clipping.c:3076 +#: ../src/iop/clipping.c:3114 msgid "" "<b>apply</b>: click <tt>ok</tt>, <b>toggle symmetry</b>: click ꝏ\n" "<b>move line/control point</b>: drag" @@ -14298,7 +14877,7 @@ "<b>zastosuj</b>: klik <tt>ok</tt>, <b>przełączenie symetrii</b>: klik ꝏ\n" "<b>przesunięcie linii/punktu kontrolnego</b>: przesunięcie" -#: ../src/iop/clipping.c:3083 +#: ../src/iop/clipping.c:3121 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag\n" @@ -14309,12 +14888,12 @@ "<b>prostowanie</b>: przeciągnięcie z prawym, <b>zatwierdzenie</b>: podwójny " "klik" -#: ../src/iop/clipping.c:3340 ../src/iop/crop.c:1796 +#: ../src/iop/clipping.c:3380 ../src/iop/crop.c:1770 #, c-format msgid "[%s on borders] crop" msgstr "[%s na krawędziach] przytnij" -#: ../src/iop/clipping.c:3342 ../src/iop/crop.c:1798 +#: ../src/iop/clipping.c:3382 ../src/iop/crop.c:1772 #, c-format msgid "[%s on borders] crop keeping ratio" msgstr "[%s na krawędziach] przytnij zachowując proporcje" @@ -14333,224 +14912,224 @@ msgid "adjust the look of the image" msgstr "pozwala dostosować wygląd obrazu" -#: ../src/iop/colisa.c:310 +#: ../src/iop/colisa.c:304 msgid "color saturation adjustment" msgstr "korekta nasycenia" -#: ../src/iop/colorbalance.c:150 +#: ../src/iop/colorbalance.c:152 msgid "color balance" msgstr "balans kolorów" -#: ../src/iop/colorbalance.c:155 +#: ../src/iop/colorbalance.c:157 msgid "lift gamma gain|cdl|color grading|contrast|saturation|hue" msgstr "gamma|kontrast|nasycenie|kolor|grading" -#: ../src/iop/colorbalance.c:160 +#: ../src/iop/colorbalance.c:162 msgid "shift colors selectively by luminance range" msgstr "przesuń kolory selektywnie poprzez zakres luminancji" -#: ../src/iop/colorbalance.c:164 +#: ../src/iop/colorbalance.c:166 msgid "non-linear, Lab, scene-referred" msgstr "nieliniowe, Lab, scenocentryczny" #. these blobs were exported as dtstyle and copied from there: -#: ../src/iop/colorbalance.c:275 +#: ../src/iop/colorbalance.c:304 msgid "split-toning teal-orange (2nd instance)" msgstr "dzielone tonowanie błękit-pomarańcz (druga kopia)" -#: ../src/iop/colorbalance.c:278 +#: ../src/iop/colorbalance.c:307 msgid "split-toning teal-orange (1st instance)" msgstr "dzielone tonowanie błękit-pomarańcz (pierwsza kopia)" -#: ../src/iop/colorbalance.c:282 +#: ../src/iop/colorbalance.c:311 msgid "generic film" msgstr "generyczny film" -#: ../src/iop/colorbalance.c:286 +#: ../src/iop/colorbalance.c:315 msgid "similar to Kodak Portra" msgstr "podobny do Kodak Portra" -#: ../src/iop/colorbalance.c:290 +#: ../src/iop/colorbalance.c:319 msgid "similar to Kodak Ektar" msgstr "podobny do Kodak Ektar" -#: ../src/iop/colorbalance.c:294 +#: ../src/iop/colorbalance.c:323 msgid "similar to Kodachrome" msgstr "podobny do Kodachrome" -#: ../src/iop/colorbalance.c:990 +#: ../src/iop/colorbalance.c:964 msgid "optimize luma from patches" msgstr "optymalizuj lumę na podstawie łatek" -#: ../src/iop/colorbalance.c:992 ../src/iop/colorbalance.c:2110 +#: ../src/iop/colorbalance.c:966 ../src/iop/colorbalance.c:2085 msgid "optimize luma" msgstr "optymalizuj lumę" -#: ../src/iop/colorbalance.c:996 +#: ../src/iop/colorbalance.c:970 msgid "neutralize colors from patches" msgstr "zneutralizuj kolory na podstawie łatek" -#: ../src/iop/colorbalance.c:998 ../src/iop/colorbalance.c:2116 +#: ../src/iop/colorbalance.c:972 ../src/iop/colorbalance.c:2091 msgid "neutralize colors" msgstr "zneutralizuj kolory" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "offset" msgstr "przesunięcie" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "power" msgstr "potęga" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "slope" msgstr "nachylenie" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "lift" msgstr "wznios" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gamma" msgstr "gamma" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gain" msgstr "wzmocnienie" -#: ../src/iop/colorbalance.c:1787 +#: ../src/iop/colorbalance.c:1762 msgctxt "section" msgid "shadows: lift / offset" msgstr "cienie : wznios / przesunięcie" -#: ../src/iop/colorbalance.c:1788 +#: ../src/iop/colorbalance.c:1763 msgctxt "section" msgid "mid-tones: gamma / power" msgstr "tony średnie: gamma / potęga" -#: ../src/iop/colorbalance.c:1789 +#: ../src/iop/colorbalance.c:1764 msgctxt "section" msgid "highlights: gain / slope" msgstr "światła: wzmocnienie / nachylenie" -#: ../src/iop/colorbalance.c:1813 +#: ../src/iop/colorbalance.c:1788 msgid "shadows / mid-tones / highlights" msgstr "cienie / tony średnie / światła" -#: ../src/iop/colorbalance.c:1910 ../src/iop/colorbalance.c:1919 +#: ../src/iop/colorbalance.c:1885 ../src/iop/colorbalance.c:1894 msgid "color-grading mapping method" msgstr "metoda mapowania gradacji kolorów" -#: ../src/iop/colorbalance.c:1914 +#: ../src/iop/colorbalance.c:1889 msgid "color control sliders" msgstr "suwaki kontroli koloru" -#: ../src/iop/colorbalance.c:1915 ../src/libs/colorpicker.c:51 +#: ../src/iop/colorbalance.c:1890 ../src/libs/colorpicker.c:51 msgid "HSL" msgstr "HSL" -#: ../src/iop/colorbalance.c:1916 +#: ../src/iop/colorbalance.c:1891 msgid "RGBL" msgstr "RGBL" -#: ../src/iop/colorbalance.c:1928 +#: ../src/iop/colorbalance.c:1903 msgctxt "section" msgid "master" msgstr "główny" -#: ../src/iop/colorbalance.c:1934 +#: ../src/iop/colorbalance.c:1909 msgid "saturation correction before the color balance" msgstr "korekcja nasycenia przed balansem kolorów" -#: ../src/iop/colorbalance.c:1940 +#: ../src/iop/colorbalance.c:1915 msgid "saturation correction after the color balance" msgstr "korekcja nasycenia po balansie kolorów" -#: ../src/iop/colorbalance.c:1945 +#: ../src/iop/colorbalance.c:1920 msgid "adjust to match a neutral tone" msgstr "zmień, by wybrać ton neutralny" #. is set in _configure_slider_blocks -#: ../src/iop/colorbalance.c:2003 +#: ../src/iop/colorbalance.c:1978 msgid "click to cycle layout" msgstr "kliknij, aby zmienić układ" -#: ../src/iop/colorbalance.c:2037 +#: ../src/iop/colorbalance.c:2012 msgid "factor" msgstr "współczynnik" -#: ../src/iop/colorbalance.c:2051 +#: ../src/iop/colorbalance.c:2026 msgid "select the hue" msgstr "wybierz odcień" -#: ../src/iop/colorbalance.c:2063 +#: ../src/iop/colorbalance.c:2038 msgid "select the saturation" msgstr "wybierz nasycenie" -#: ../src/iop/colorbalance.c:2082 +#: ../src/iop/colorbalance.c:2057 msgid "factor of lift/offset" msgstr "współczynnik wzniosu/przesunięcia" -#: ../src/iop/colorbalance.c:2083 +#: ../src/iop/colorbalance.c:2058 msgid "factor of red for lift/offset" msgstr "współczynnik czerwieni dla wzniosu/przesunięcia" -#: ../src/iop/colorbalance.c:2084 +#: ../src/iop/colorbalance.c:2059 msgid "factor of green for lift/offset" msgstr "współczynnik zieleni dla wzniosu/przesunięcia" -#: ../src/iop/colorbalance.c:2085 +#: ../src/iop/colorbalance.c:2060 msgid "factor of blue for lift/offset" msgstr "współczynnik niebieskiego dla wzniosu/przesunięcia" -#: ../src/iop/colorbalance.c:2088 +#: ../src/iop/colorbalance.c:2063 msgid "factor of gamma/power" msgstr "współczynnik gammy/potęgi" -#: ../src/iop/colorbalance.c:2089 +#: ../src/iop/colorbalance.c:2064 msgid "factor of red for gamma/power" msgstr "współczynnik czerwieni dla gammy/potęgi" -#: ../src/iop/colorbalance.c:2090 +#: ../src/iop/colorbalance.c:2065 msgid "factor of green for gamma/power" msgstr "współczynnik zieleni dla gammy/potęgi" -#: ../src/iop/colorbalance.c:2091 +#: ../src/iop/colorbalance.c:2066 msgid "factor of blue for gamma/power" msgstr "współczynnik niebieskiego dla gammy/potęgi" -#: ../src/iop/colorbalance.c:2094 +#: ../src/iop/colorbalance.c:2069 msgid "factor of gain/slope" msgstr "współczynnik wzmocnienia" -#: ../src/iop/colorbalance.c:2095 +#: ../src/iop/colorbalance.c:2070 msgid "factor of red for gain/slope" msgstr "współczynnik czerwieni dla wzmocnienia/nachylenia" -#: ../src/iop/colorbalance.c:2096 +#: ../src/iop/colorbalance.c:2071 msgid "factor of green for gain/slope" msgstr "współczynnik zieleni dla wzmocnienia/nachylenia" -#: ../src/iop/colorbalance.c:2097 +#: ../src/iop/colorbalance.c:2072 msgid "factor of blue for gain/slope" msgstr "współczynnik niebieskiego dla wzmocnienia/nachylenia" -#: ../src/iop/colorbalance.c:2106 +#: ../src/iop/colorbalance.c:2081 msgctxt "section" msgid "auto optimizers" msgstr "automatyczne optymalizacje" -#: ../src/iop/colorbalance.c:2111 +#: ../src/iop/colorbalance.c:2086 msgid "fit the whole histogram and center the average luma" msgstr "dopasuj cały histogram i wyśrodkuj średnią lumę" -#: ../src/iop/colorbalance.c:2117 +#: ../src/iop/colorbalance.c:2092 msgid "optimize the RGB curves to remove color casts" msgstr "zoptymalizuj krzywe RGB, aby usunąć zafarb" @@ -14574,84 +15153,84 @@ "narzędzia korekcji barwnej używające masek przezroczystościdla rozdzielenia\n" "cieni, tonów średnich i świateł" -#: ../src/iop/colorbalancergb.c:443 +#: ../src/iop/colorbalancergb.c:536 msgid "add basic colorfulness (legacy)" msgstr "dodaj podstawowej barwności (legacy)" -#: ../src/iop/colorbalancergb.c:452 +#: ../src/iop/colorbalancergb.c:545 msgid "basic colorfulness: natural skin" msgstr "podstawowa barwność: naturalna skóra" -#: ../src/iop/colorbalancergb.c:458 +#: ../src/iop/colorbalancergb.c:551 msgid "basic colorfulness: vibrant colors" msgstr "podstawowa barwność: soczyste kolory" -#: ../src/iop/colorbalancergb.c:464 +#: ../src/iop/colorbalancergb.c:557 msgid "basic colorfulness: standard" msgstr "podstawowa barwność: standardowy" -#: ../src/iop/colorbalancergb.c:937 +#: ../src/iop/colorbalancergb.c:1022 msgid "colorbalance works only on RGB input" msgstr "balans koloru działa tylko w przestrzeni RGB" -#: ../src/iop/colorbalancergb.c:1506 ../src/iop/colorzones.c:2164 -#: ../src/iop/retouch.c:1884 ../src/iop/toneequal.c:1966 +#: ../src/iop/colorbalancergb.c:1577 ../src/iop/colorzones.c:2394 +#: ../src/iop/retouch.c:2069 ../src/iop/toneequal.c:1996 msgid "cannot display masks when the blending mask is displayed" msgstr "nie można wyświetlić masek, gdy wyświetlana jest maska mieszania" #. Page master -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "master" msgstr "główny" -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "global grading" msgstr "globalna korekcja koloru" -#: ../src/iop/colorbalancergb.c:1880 +#: ../src/iop/colorbalancergb.c:1951 msgid "rotate all hues by an angle, at the same luminance" msgstr "dokonaj obrotu barw (hue) o zadany kąt, z zachowaniem jasności" -#: ../src/iop/colorbalancergb.c:1886 +#: ../src/iop/colorbalancergb.c:1957 msgid "increase colorfulness mostly on low-chroma colors" msgstr "zwiększ chromę, głównie obszarów o niskiej chromie" -#: ../src/iop/colorbalancergb.c:1892 +#: ../src/iop/colorbalancergb.c:1963 msgid "increase the contrast at constant chromaticity" msgstr "zwiększ kontrast zachowując chromatyczność" -#: ../src/iop/colorbalancergb.c:1894 +#: ../src/iop/colorbalancergb.c:1965 msgctxt "section" msgid "linear chroma grading" msgstr "liniowa korekcja koloru" -#: ../src/iop/colorbalancergb.c:1901 +#: ../src/iop/colorbalancergb.c:1972 msgid "increase colorfulness at same luminance globally" msgstr "zwiększ nasycenie z zachowaniem globalnej jasności" -#: ../src/iop/colorbalancergb.c:1906 +#: ../src/iop/colorbalancergb.c:1977 msgid "increase colorfulness at same luminance mostly in shadows" msgstr "zwiększ nasycenie z zachowaniem jasności głównie w cieniach" -#: ../src/iop/colorbalancergb.c:1911 +#: ../src/iop/colorbalancergb.c:1982 msgid "increase colorfulness at same luminance mostly in mid-tones" msgstr "zwiększ nasycenie z zachowaniem jasności głównie w tonach średnich" -#: ../src/iop/colorbalancergb.c:1916 +#: ../src/iop/colorbalancergb.c:1987 msgid "increase colorfulness at same luminance mostly in highlights" msgstr "zwiększ nasycnie z zachowaniem jasności głównie w światłach" -#: ../src/iop/colorbalancergb.c:1918 +#: ../src/iop/colorbalancergb.c:1989 msgctxt "section" msgid "perceptual saturation grading" msgstr "percepcyjna korekta nasycenia" -#: ../src/iop/colorbalancergb.c:1924 +#: ../src/iop/colorbalancergb.c:1995 msgid "add or remove saturation by an absolute amount" msgstr "dodaje lub zmniejsza nasycenie o bezwzględną wielkość" -#: ../src/iop/colorbalancergb.c:1929 ../src/iop/colorbalancergb.c:1934 -#: ../src/iop/colorbalancergb.c:1939 +#: ../src/iop/colorbalancergb.c:2000 ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2010 msgid "" "increase or decrease saturation proportionally to the original pixel " "saturation" @@ -14659,21 +15238,21 @@ "zwiększa lub zmniejsza nasycenie proporcjonalnie do oryginalnego nasycenia " "piksela" -#: ../src/iop/colorbalancergb.c:1941 +#: ../src/iop/colorbalancergb.c:2012 msgctxt "section" msgid "perceptual brilliance grading" msgstr "percepcyjne renderowanie blasku" -#: ../src/iop/colorbalancergb.c:1942 +#: ../src/iop/colorbalancergb.c:2013 msgid "brilliance" msgstr "blask" -#: ../src/iop/colorbalancergb.c:1947 +#: ../src/iop/colorbalancergb.c:2018 msgid "add or remove brilliance by an absolute amount" msgstr "dodaj lub odejmij wartość absolutną blasku" -#: ../src/iop/colorbalancergb.c:1952 ../src/iop/colorbalancergb.c:1957 -#: ../src/iop/colorbalancergb.c:1962 +#: ../src/iop/colorbalancergb.c:2023 ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2033 msgid "" "increase or decrease brilliance proportionally to the original pixel " "brilliance" @@ -14681,158 +15260,158 @@ "zwiększ lub zmniejsz blask proporcjonalnie do blasku oryginalnego piksela" #. Page 4-ways -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "4 ways" msgstr "4 zakresy" -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "selective color grading" msgstr "selektywna korekcja barwna" -#: ../src/iop/colorbalancergb.c:1967 +#: ../src/iop/colorbalancergb.c:2038 msgctxt "section" msgid "global offset" msgstr "globalne przesunięcie" -#: ../src/iop/colorbalancergb.c:1974 +#: ../src/iop/colorbalancergb.c:2045 msgid "global luminance offset" msgstr "globalne przesunięcie luminancji" -#: ../src/iop/colorbalancergb.c:1979 +#: ../src/iop/colorbalancergb.c:2050 msgid "hue of the global color offset" msgstr "barwa (hue) globalnego przesunięcia koloru" -#: ../src/iop/colorbalancergb.c:1985 +#: ../src/iop/colorbalancergb.c:2056 msgid "chroma of the global color offset" msgstr "chroma globalnego przesunięcia koloru" -#: ../src/iop/colorbalancergb.c:1987 +#: ../src/iop/colorbalancergb.c:2058 msgctxt "section" msgid "shadows lift" msgstr "wznios cieni" -#: ../src/iop/colorbalancergb.c:1988 +#: ../src/iop/colorbalancergb.c:2059 msgid "lift" msgstr "wznios" -#: ../src/iop/colorbalancergb.c:1994 +#: ../src/iop/colorbalancergb.c:2065 msgid "luminance gain in shadows" msgstr "wzmocnienie luminancji w cieniach" -#: ../src/iop/colorbalancergb.c:1999 +#: ../src/iop/colorbalancergb.c:2070 msgid "hue of the color gain in shadows" msgstr "barwa (hue) wzmocnienia koloru w cieniach" -#: ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2076 msgid "chroma of the color gain in shadows" msgstr "chroma wzmocnienia koloru w cieniach" -#: ../src/iop/colorbalancergb.c:2007 +#: ../src/iop/colorbalancergb.c:2078 msgctxt "section" msgid "highlights gain" msgstr "wzmocnienie w światłach" -#: ../src/iop/colorbalancergb.c:2008 +#: ../src/iop/colorbalancergb.c:2079 msgid "gain" msgstr "wzmocnienie" -#: ../src/iop/colorbalancergb.c:2014 +#: ../src/iop/colorbalancergb.c:2085 msgid "luminance gain in highlights" msgstr "wzmocnienie luminancji w światłach" -#: ../src/iop/colorbalancergb.c:2019 +#: ../src/iop/colorbalancergb.c:2090 msgid "hue of the color gain in highlights" msgstr "barwa (hue) wzmocnienia koloru w światłach" -#: ../src/iop/colorbalancergb.c:2025 +#: ../src/iop/colorbalancergb.c:2096 msgid "chroma of the color gain in highlights" msgstr "chroma wzmocnienia koloru w światłach" -#: ../src/iop/colorbalancergb.c:2027 +#: ../src/iop/colorbalancergb.c:2098 msgctxt "section" msgid "power" msgstr "potęga" -#: ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2099 msgid "power" msgstr "potęga" -#: ../src/iop/colorbalancergb.c:2034 +#: ../src/iop/colorbalancergb.c:2105 msgid "luminance exponent in mid-tones" msgstr "estymator luminancji w tonach średnich" -#: ../src/iop/colorbalancergb.c:2039 +#: ../src/iop/colorbalancergb.c:2110 msgid "hue of the color exponent in mid-tones" msgstr "barwa wykładnika koloru w tonach średnich" -#: ../src/iop/colorbalancergb.c:2045 +#: ../src/iop/colorbalancergb.c:2116 msgid "chroma of the color exponent in mid-tones" msgstr "kolor wykładnika koloru w tonach średnich" #. Page masks -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "masks" msgstr "maski" -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "isolate luminances" msgstr "izoluj luminancje" -#: ../src/iop/colorbalancergb.c:2052 +#: ../src/iop/colorbalancergb.c:2123 msgid "choose in which uniform color space the saturation is computed" msgstr "określ w jakiej jednorodnej przestrzeni barw obliczana jest saturacja" -#: ../src/iop/colorbalancergb.c:2054 +#: ../src/iop/colorbalancergb.c:2125 msgctxt "section" msgid "luminance ranges" msgstr "zakresy luminancji" -#: ../src/iop/colorbalancergb.c:2065 +#: ../src/iop/colorbalancergb.c:2136 msgid "weight of the shadows over the whole tonal range" msgstr "waga cieni w całym zakresie tonalnym" -#: ../src/iop/colorbalancergb.c:2073 +#: ../src/iop/colorbalancergb.c:2144 msgid "position of the middle-gray reference for masking" msgstr "pozycja referencyjnej średniej szarości dla maski" -#: ../src/iop/colorbalancergb.c:2081 +#: ../src/iop/colorbalancergb.c:2152 msgid "weights of highlights over the whole tonal range" msgstr "waga świateł w całym zakresie tonalnym" -#: ../src/iop/colorbalancergb.c:2086 +#: ../src/iop/colorbalancergb.c:2157 msgctxt "section" msgid "threshold" msgstr "próg" -#: ../src/iop/colorbalancergb.c:2091 +#: ../src/iop/colorbalancergb.c:2162 msgid "peak white luminance value used to normalize the power function" msgstr "" "szczytowa wartość luminancji bieli używana do normalizacji funkcji potęgowej" -#: ../src/iop/colorbalancergb.c:2097 +#: ../src/iop/colorbalancergb.c:2168 msgid "peak gray luminance value used to normalize the power function" msgstr "" "szczytowa wartość luminancji szarości używana do normalizacji funkcji " "potęgowej" -#: ../src/iop/colorbalancergb.c:2099 +#: ../src/iop/colorbalancergb.c:2170 msgctxt "section" msgid "mask preview settings" msgstr "ustawienia podglądu maski" -#: ../src/iop/colorbalancergb.c:2102 +#: ../src/iop/colorbalancergb.c:2173 msgid "checkerboard color 1" msgstr "kolor 1 próbnika koloru" -#: ../src/iop/colorbalancergb.c:2105 ../src/iop/colorbalancergb.c:2114 +#: ../src/iop/colorbalancergb.c:2176 ../src/iop/colorbalancergb.c:2185 msgid "select color of the checkerboard from a swatch" msgstr "wybierz kolor palety z próbki" -#: ../src/iop/colorbalancergb.c:2111 +#: ../src/iop/colorbalancergb.c:2182 msgid "checkerboard color 2" msgstr "kolor 2 próbnika koloru" -#: ../src/iop/colorbalancergb.c:2121 +#: ../src/iop/colorbalancergb.c:2192 msgid "checkerboard size" msgstr "rozmiar próbnika" @@ -14849,11 +15428,11 @@ msgstr "wykonuje korekcję przestrzeni koloru i zmienia wygląd obrazu" #: ../src/iop/colorchecker.c:131 ../src/iop/colorchecker.c:133 -#: ../src/iop/colorize.c:106 ../src/iop/colormapping.c:154 -#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:136 -#: ../src/iop/colorzones.c:146 ../src/iop/defringe.c:83 ../src/iop/levels.c:139 -#: ../src/iop/monochrome.c:99 ../src/iop/shadhi.c:198 -#: ../src/iop/tonecurve.c:212 ../src/iop/vibrance.c:96 +#: ../src/iop/colorize.c:99 ../src/iop/colormapping.c:154 +#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:121 +#: ../src/iop/colorzones.c:147 ../src/iop/defringe.c:83 ../src/iop/levels.c:141 +#: ../src/iop/monochrome.c:101 ../src/iop/shadhi.c:145 +#: ../src/iop/tonecurve.c:185 ../src/iop/vibrance.c:98 msgid "linear or non-linear, Lab, display-referred" msgstr "liniowe lub nieliniowe, Lab, ekranocentryczny" @@ -14861,40 +15440,40 @@ msgid "defined by profile, Lab" msgstr "zdefiniowany przez profil, Lab" -#: ../src/iop/colorchecker.c:294 +#: ../src/iop/colorchecker.c:308 msgid "it8 skin tones" msgstr "it8 odcienie skóry" -#: ../src/iop/colorchecker.c:310 +#: ../src/iop/colorchecker.c:324 msgid "Helmholtz/Kohlrausch monochrome" msgstr "monochromatyczny Helmholtza/Kohlrauscha" -#: ../src/iop/colorchecker.c:327 +#: ../src/iop/colorchecker.c:341 msgid "Fuji Astia emulation" msgstr "emulacja Fuji Astia" -#: ../src/iop/colorchecker.c:341 +#: ../src/iop/colorchecker.c:355 msgid "Fuji Classic Chrome emulation" msgstr "emulacja Fuji Classic Chrome" -#: ../src/iop/colorchecker.c:355 +#: ../src/iop/colorchecker.c:369 msgid "Fuji Monochrome emulation" msgstr "emulacja Fuji Monochrome" -#: ../src/iop/colorchecker.c:369 +#: ../src/iop/colorchecker.c:383 msgid "Fuji Provia emulation" msgstr "emulacja Fuji Provia" -#: ../src/iop/colorchecker.c:383 +#: ../src/iop/colorchecker.c:397 msgid "Fuji Velvia emulation" msgstr "emulacja Fuji Velvia" -#: ../src/iop/colorchecker.c:841 ../src/iop/colorchecker.c:1436 +#: ../src/iop/colorchecker.c:846 ../src/iop/colorchecker.c:1441 #, c-format msgid "patch #%d" msgstr "próbka nr %d" -#: ../src/iop/colorchecker.c:1283 +#: ../src/iop/colorchecker.c:1288 #, c-format msgid "" "(%2.2f %2.2f %2.2f)\n" @@ -14911,15 +15490,15 @@ "kliknięcie prawym klawiszem, by skasować ścieżkę\n" "kliknięcie z shiftem podczas wybierania kolorów, by zastąpić ścieżkę" -#: ../src/iop/colorchecker.c:1431 +#: ../src/iop/colorchecker.c:1436 msgid "patch" msgstr "próbka" -#: ../src/iop/colorchecker.c:1432 +#: ../src/iop/colorchecker.c:1437 msgid "color checker patch" msgstr "próbka koloru" -#: ../src/iop/colorchecker.c:1446 +#: ../src/iop/colorchecker.c:1451 msgid "" "adjust target color Lab 'L' channel\n" "lower values darken target color while higher brighten it" @@ -14927,7 +15506,7 @@ "dostosuj docelową jasność ('L' z przestrzeni Lab)\n" "niższe wartości przyciemniają docelowy kolor, natomiast wyższe go rozjaśniają" -#: ../src/iop/colorchecker.c:1454 +#: ../src/iop/colorchecker.c:1459 msgid "" "adjust target color Lab 'a' channel\n" "lower values shift target color towards greens while higher shift towards " @@ -14937,11 +15516,11 @@ "niższe wartości przesuwają docelowy kolor w kierunku zieleni, natomiast " "wyższe w kierunku magenta" -#: ../src/iop/colorchecker.c:1457 +#: ../src/iop/colorchecker.c:1462 msgid "green-magenta offset" msgstr "przesunięcie zielony-magenta" -#: ../src/iop/colorchecker.c:1466 +#: ../src/iop/colorchecker.c:1471 msgid "" "adjust target color Lab 'b' channel\n" "lower values shift target color towards blues while higher shift towards " @@ -14951,11 +15530,11 @@ "niższe wartości przesuwają docelowy kolor w kierunku niebieskiego, natomiast " "wyższe w kierunku żółci" -#: ../src/iop/colorchecker.c:1469 +#: ../src/iop/colorchecker.c:1474 msgid "blue-yellow offset" msgstr "przesunięcie niebieski-żółty" -#: ../src/iop/colorchecker.c:1478 +#: ../src/iop/colorchecker.c:1483 msgid "" "adjust target color saturation\n" "adjusts 'a' and 'b' channels of target color in Lab space simultaneously\n" @@ -14968,11 +15547,11 @@ "niższe wartości skali odpowiadają niższemu nasyceniu. Czym wyżej na skali " "tym wyższe nasycenie" -#: ../src/iop/colorchecker.c:1487 +#: ../src/iop/colorchecker.c:1492 msgid "target color" msgstr "kolor docelowy" -#: ../src/iop/colorchecker.c:1490 +#: ../src/iop/colorchecker.c:1495 msgid "" "control target color of the patches\n" "relative - target color is relative from the patch original color\n" @@ -14982,21 +15561,21 @@ "relacyjny - przez względne różnice\n" "absolutny - bezwzględne wartości Lab" -#: ../src/iop/colorchecker.c:1494 +#: ../src/iop/colorchecker.c:1499 msgid "absolute" msgstr "bezwzględne" -#: ../src/iop/colorcontrast.c:85 +#: ../src/iop/colorcontrast.c:77 msgid "color contrast" msgstr "kontrast kolorów" -#: ../src/iop/colorcontrast.c:95 +#: ../src/iop/colorcontrast.c:87 msgid "" "increase saturation and separation between\n" "opposite colors" msgstr "wzmaga nasycenie i separację między przeciwstawnymi kolorami" -#: ../src/iop/colorcontrast.c:324 +#: ../src/iop/colorcontrast.c:330 msgid "" "steepness of the a* curve in Lab\n" "lower values desaturate greens and magenta while higher saturate them" @@ -15005,7 +15584,7 @@ "niższe wartości zmniejszają nasycenie zieleni i magenty, wyższe nasycają je " "bardziej" -#: ../src/iop/colorcontrast.c:331 +#: ../src/iop/colorcontrast.c:337 msgid "" "steepness of the b* curve in Lab\n" "lower values desaturate blues and yellows while higher saturate them" @@ -15022,19 +15601,19 @@ msgid "correct white balance selectively for blacks and whites" msgstr "koryguje balans bieli osobno dla czerni i bieli" -#: ../src/iop/colorcorrection.c:107 +#: ../src/iop/colorcorrection.c:109 msgid "warm tone" msgstr "ciepła tonacja" -#: ../src/iop/colorcorrection.c:115 +#: ../src/iop/colorcorrection.c:117 msgid "warming filter" msgstr "filtr ocieplający" -#: ../src/iop/colorcorrection.c:123 +#: ../src/iop/colorcorrection.c:125 msgid "cooling filter" msgstr "filtr schładzający" -#: ../src/iop/colorcorrection.c:257 +#: ../src/iop/colorcorrection.c:250 msgid "" "drag the line for split-toning. bright means highlights, dark means shadows. " "use mouse wheel to change saturation." @@ -15043,7 +15622,7 @@ "światła, ciemny punkt oznacza cienie. użyj kółka myszy, aby zmienić " "nasycenie." -#: ../src/iop/colorcorrection.c:276 +#: ../src/iop/colorcorrection.c:269 msgid "set the global saturation" msgstr "ustawienie nasycenia ogólnego" @@ -15060,7 +15639,7 @@ "używając profili kolorów do przemapowania wartości RGB" #: ../src/iop/colorin.c:133 ../src/iop/colorout.c:89 ../src/iop/demosaic.c:293 -#: ../src/iop/rawprepare.c:158 +#: ../src/iop/rawprepare.c:174 msgid "mandatory" msgstr "obowiązkowe" @@ -15068,7 +15647,7 @@ msgid "defined by profile" msgstr "zdefiniowany przez profil" -#: ../src/iop/colorin.c:542 +#: ../src/iop/colorin.c:582 #, c-format msgid "" "can't extract matrix from colorspace `%s', it will be replaced by Rec2020 " @@ -15077,25 +15656,25 @@ "nie można wydobyć macierzy z przestrzeni kolorów „%s”, zostanie zastąpiona " "przez Rec2020 RGB!" -#: ../src/iop/colorin.c:1424 +#: ../src/iop/colorin.c:1362 #, c-format msgid "`%s' color matrix not found!" msgstr "nie znaleziono macierzy koloru „%s”!" -#: ../src/iop/colorin.c:1463 +#: ../src/iop/colorin.c:1401 msgid "input profile could not be generated!" msgstr "profil wejściowy nie mógł zostać wygenerowany!" -#: ../src/iop/colorin.c:1560 +#: ../src/iop/colorin.c:1498 msgid "unsupported input profile has been replaced by linear Rec709 RGB!" msgstr "" "nieobsługiwany profil wejściowy został zastąpiony przez liniowy Rec709 RGB!" -#: ../src/iop/colorin.c:1844 +#: ../src/iop/colorin.c:1782 msgid "external ICC profiles" msgstr "zewnętrzny profil ICC" -#: ../src/iop/colorin.c:1889 +#: ../src/iop/colorin.c:1827 #, c-format msgid "" "embedded ICC profile properties:\n" @@ -15118,43 +15697,43 @@ "prawa autorskie: <b>%s</b>\n" "\n" -#: ../src/iop/colorin.c:2084 +#: ../src/iop/colorin.c:2022 msgid "input profile" msgstr "profil wejściowy" -#: ../src/iop/colorin.c:2088 +#: ../src/iop/colorin.c:2026 msgid "working profile" msgstr "profil roboczy" -#: ../src/iop/colorin.c:2097 +#: ../src/iop/colorin.c:2035 msgid "working ICC profiles" msgstr "roboczy profil ICC" -#: ../src/iop/colorin.c:2109 +#: ../src/iop/colorin.c:2047 msgid "confine Lab values to gamut of RGB color space" msgstr "ogranicz wartości Lab do gamutu przestrzeni barw RGB" -#: ../src/iop/colorize.c:84 +#: ../src/iop/colorize.c:75 msgid "colorize" msgstr "koloryzacja" -#: ../src/iop/colorize.c:104 +#: ../src/iop/colorize.c:97 msgid "overlay a solid color on the image" msgstr "nakłada jednolity kolor na obraz" -#: ../src/iop/colorize.c:341 ../src/iop/splittoning.c:485 +#: ../src/iop/colorize.c:354 ../src/iop/splittoning.c:481 msgid "select the hue tone" msgstr "ton odcienia" -#: ../src/iop/colorize.c:347 +#: ../src/iop/colorize.c:360 msgid "select the saturation shadow tone" msgstr "nasycenie tonu dla cieni" -#: ../src/iop/colorize.c:351 +#: ../src/iop/colorize.c:364 msgid "lightness of color" msgstr "jasność koloru" -#: ../src/iop/colorize.c:355 +#: ../src/iop/colorize.c:368 msgid "mix value of source lightness" msgstr "miks wartości źródła jasności" @@ -15168,37 +15747,37 @@ msgstr "" "transferuje paletę kolorów i dystrybucję tonalną z jednego obrazu na inny" -#: ../src/iop/colormapping.c:1030 +#: ../src/iop/colormapping.c:1019 msgid "source clusters:" msgstr "skupiska źródłowe:" -#: ../src/iop/colormapping.c:1036 +#: ../src/iop/colormapping.c:1025 msgid "target clusters:" msgstr "skupiska docelowe:" -#: ../src/iop/colormapping.c:1045 +#: ../src/iop/colormapping.c:1034 msgid "acquire as source" msgstr "pobierz jako źródłowy" -#: ../src/iop/colormapping.c:1049 +#: ../src/iop/colormapping.c:1038 msgid "analyze this image as a source image" msgstr "analizuje ten obraz jako źródłowy" -#: ../src/iop/colormapping.c:1051 +#: ../src/iop/colormapping.c:1040 msgid "acquire as target" msgstr "pobierz jako docelowy" -#: ../src/iop/colormapping.c:1055 +#: ../src/iop/colormapping.c:1044 msgid "analyze this image as a target image" msgstr "analizuje ten obraz jako docelowy" -#: ../src/iop/colormapping.c:1058 +#: ../src/iop/colormapping.c:1047 msgid "number of clusters to find in image. value change resets all clusters" msgstr "" "liczba skupisk do znalezienia na obrazie. zmiana wartości zeruje wszystkie " "skupiska" -#: ../src/iop/colormapping.c:1061 +#: ../src/iop/colormapping.c:1050 msgid "" "how clusters are mapped. low values: based on color proximity, high values: " "based on color dominance" @@ -15206,7 +15785,7 @@ "sposób mapowania skupisk. niskie wartości: na podstawie podobieństwa " "kolorów, wysokie wartości: na podstawie przewagi koloru" -#: ../src/iop/colormapping.c:1066 +#: ../src/iop/colormapping.c:1055 msgid "level of histogram equalization" msgstr "poziom wyrównania histogramu" @@ -15226,113 +15805,113 @@ msgid "non-linear, RGB or Lab, display-referred" msgstr "nieliniowe, RGB lub Lab, ekranocentryczne" -#: ../src/iop/colorout.c:679 +#: ../src/iop/colorout.c:695 msgid "missing output profile has been replaced by sRGB!" msgstr "brakujący profil wyjściowy został zastąpiony przez sRGB!" -#: ../src/iop/colorout.c:701 +#: ../src/iop/colorout.c:717 msgid "missing softproof profile has been replaced by sRGB!" msgstr "brakujący profil korekty ekranowej został zastąpiony przez sRGB!" -#: ../src/iop/colorout.c:744 +#: ../src/iop/colorout.c:760 msgid "unsupported output profile has been replaced by sRGB!" msgstr "nieobsługiwany profil wyjściowy został zastąpiony przez sRGB!" -#: ../src/iop/colorout.c:869 +#: ../src/iop/colorout.c:885 msgid "output intent" msgstr "wyjściowy sposób odwzorowania barw" -#: ../src/iop/colorout.c:870 +#: ../src/iop/colorout.c:886 msgid "rendering intent" msgstr "sposób odwzorowania barw do renderowania" -#: ../src/iop/colorout.c:872 ../src/libs/export.c:1246 +#: ../src/iop/colorout.c:888 ../src/libs/export.c:1358 #: ../src/libs/print_settings.c:2475 ../src/libs/print_settings.c:2824 -#: ../src/views/darkroom.c:2518 ../src/views/lighttable.c:1176 +#: ../src/views/darkroom.c:2359 ../src/views/lighttable.c:1176 msgid "perceptual" msgstr "percepcyjny" -#: ../src/iop/colorout.c:873 ../src/libs/export.c:1247 +#: ../src/iop/colorout.c:889 ../src/libs/export.c:1359 #: ../src/libs/print_settings.c:2476 ../src/libs/print_settings.c:2825 -#: ../src/views/darkroom.c:2519 ../src/views/lighttable.c:1177 +#: ../src/views/darkroom.c:2360 ../src/views/lighttable.c:1177 msgid "relative colorimetric" msgstr "wzgl. kolorymetryczny" -#: ../src/iop/colorout.c:874 ../src/libs/export.c:1248 +#: ../src/iop/colorout.c:890 ../src/libs/export.c:1360 #: ../src/libs/print_settings.c:2477 ../src/libs/print_settings.c:2826 -#: ../src/views/darkroom.c:2520 ../src/views/lighttable.c:1178 +#: ../src/views/darkroom.c:2361 ../src/views/lighttable.c:1178 msgctxt "rendering intent" msgid "saturation" msgstr "nasycenie" -#: ../src/iop/colorout.c:875 ../src/libs/export.c:1249 +#: ../src/iop/colorout.c:891 ../src/libs/export.c:1361 #: ../src/libs/print_settings.c:2478 ../src/libs/print_settings.c:2827 -#: ../src/views/darkroom.c:2521 ../src/views/lighttable.c:1179 +#: ../src/views/darkroom.c:2362 ../src/views/lighttable.c:1179 msgid "absolute colorimetric" msgstr "bezwzgl. kolorymetryczny" -#: ../src/iop/colorout.c:893 +#: ../src/iop/colorout.c:909 msgid "export ICC profiles" msgstr "eksportuj profile ICC" -#: ../src/iop/colorreconstruction.c:129 +#: ../src/iop/colorreconstruction.c:114 msgid "color reconstruction" msgstr "rekonstrukcja koloru" -#: ../src/iop/colorreconstruction.c:134 +#: ../src/iop/colorreconstruction.c:119 msgid "recover clipped highlights by propagating surrounding colors" msgstr "" "przywróć prześwietlone obszary przez propagowanie sąsiadujących kolorów" -#: ../src/iop/colorreconstruction.c:628 ../src/iop/colorreconstruction.c:1040 -#: ../src/iop/globaltonemap.c:193 ../src/iop/globaltonemap.c:362 -#: ../src/iop/hazeremoval.c:553 ../src/iop/hazeremoval.c:788 -#: ../src/iop/levels.c:336 +#: ../src/iop/colorreconstruction.c:647 ../src/iop/colorreconstruction.c:1053 +#: ../src/iop/globaltonemap.c:227 ../src/iop/globaltonemap.c:396 +#: ../src/iop/hazeremoval.c:541 ../src/iop/hazeremoval.c:776 +#: ../src/iop/levels.c:358 msgid "inconsistent output" msgstr "niespójne dane wyjściowe" -#: ../src/iop/colorreconstruction.c:666 +#: ../src/iop/colorreconstruction.c:685 msgid "module `color reconstruction' failed" msgstr "moduł „rekonstrukcja koloru” zawiódł" -#: ../src/iop/colorreconstruction.c:1237 +#: ../src/iop/colorreconstruction.c:1246 msgid "spatial" msgstr "przestrzenny" -#: ../src/iop/colorreconstruction.c:1238 +#: ../src/iop/colorreconstruction.c:1247 msgid "range" msgstr "zakres" -#: ../src/iop/colorreconstruction.c:1239 +#: ../src/iop/colorreconstruction.c:1248 msgid "precedence" msgstr "pierwszeństwo" -#: ../src/iop/colorreconstruction.c:1255 +#: ../src/iop/colorreconstruction.c:1264 msgid "pixels with lightness values above this threshold are corrected" msgstr "piksele o jasności powyżej tego progu są poprawiane" -#: ../src/iop/colorreconstruction.c:1256 +#: ../src/iop/colorreconstruction.c:1265 msgid "how far to look for replacement colors in spatial dimensions" msgstr "jak daleko szukać kolorów zastępczych w wymiarach przestrzennych" -#: ../src/iop/colorreconstruction.c:1257 +#: ../src/iop/colorreconstruction.c:1266 msgid "how far to look for replacement colors in the luminance dimension" msgstr "jak daleko szukać kolorów zastępczych w wymiarze luminancji" -#: ../src/iop/colorreconstruction.c:1258 +#: ../src/iop/colorreconstruction.c:1267 msgid "if and how to give precedence to specific replacement colors" msgstr "czy i jak przyznać pierwszeństwo konkretnym kolorom zastępczym" -#: ../src/iop/colorreconstruction.c:1259 +#: ../src/iop/colorreconstruction.c:1268 msgid "the hue tone which should be given precedence over other hue tones" msgstr "odcień, który powinien mieć pierwszeństwo nad innymi odcieniami" -#: ../src/iop/colorreconstruction.c:1261 ../src/iop/demosaic.c:1277 -#: ../src/iop/highlights.c:1168 +#: ../src/iop/colorreconstruction.c:1270 ../src/iop/demosaic.c:1324 +#: ../src/iop/highlights.c:1258 msgid "not applicable" msgstr "niedostępne" -#: ../src/iop/colorreconstruction.c:1262 +#: ../src/iop/colorreconstruction.c:1271 msgid "no highlights reconstruction for monochrome images" msgstr "brak rekonstrukcji prześwietleń dla obrazów monochromatycznych" @@ -15344,7 +15923,7 @@ msgid "this module is deprecated. better use color mapping module instead." msgstr "ten moduł jest przestarzały, lepiej użyć modułu mapowania kolorów." -#: ../src/iop/colortransfer.c:439 +#: ../src/iop/colortransfer.c:441 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -15354,43 +15933,43 @@ "i jest tu tylko po to, żeby go wyłączyć\n" "i korzystać z nowego modułu mapowania." -#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2332 +#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2573 msgid "color zones" msgstr "strefy kolorów" -#: ../src/iop/colorzones.c:144 +#: ../src/iop/colorzones.c:145 msgid "selectively shift hues, chroma and lightness of pixels" msgstr "selektywnie przesuwa kolor, chromę i jasność pikseli" -#: ../src/iop/colorzones.c:606 +#: ../src/iop/colorzones.c:684 msgid "B&W: with red" msgstr "cCzarno-biały: z czerwonym" -#: ../src/iop/colorzones.c:629 +#: ../src/iop/colorzones.c:707 msgid "B&W: with skin tones" msgstr "czarnobiały: z odcieniami skóry" -#: ../src/iop/colorzones.c:652 +#: ../src/iop/colorzones.c:732 msgid "polarizing filter" msgstr "filtr polaryzujący" -#: ../src/iop/colorzones.c:673 +#: ../src/iop/colorzones.c:753 msgid "natural skin tones" msgstr "naturalne odcienie skóry" -#: ../src/iop/colorzones.c:704 +#: ../src/iop/colorzones.c:784 msgid "B&W: film" msgstr "cCzarno-biały: film" -#: ../src/iop/colorzones.c:724 +#: ../src/iop/colorzones.c:804 msgid "HSL base setting" msgstr "ustawienie podstawowe HSL" -#: ../src/iop/colorzones.c:2264 +#: ../src/iop/colorzones.c:2500 msgid "orange" msgstr "pomarańczowy" -#: ../src/iop/colorzones.c:2421 ../src/iop/rgbcurve.c:1375 +#: ../src/iop/colorzones.c:2673 ../src/iop/rgbcurve.c:1375 msgid "" "create a curve based on an area from the image\n" "drag to create a flat curve\n" @@ -15402,48 +15981,48 @@ "przeciągnij z ctrl, żeby utworzyć dodatnią krzywą\n" "przeciągnij z shift, żeby utworzyć ujemną krzywą" -#: ../src/iop/colorzones.c:2425 ../src/iop/rgbcurve.c:1379 +#: ../src/iop/colorzones.c:2677 ../src/iop/rgbcurve.c:1379 msgid "create curve" msgstr "utwórz krzywą" #. edit by area -#: ../src/iop/colorzones.c:2442 +#: ../src/iop/colorzones.c:2696 msgid "edit by area" msgstr "edytuj zakresy" -#: ../src/iop/colorzones.c:2447 +#: ../src/iop/colorzones.c:2702 msgid "edit the curve nodes by area" msgstr "edytuj węzły krzywej używając suwaków zakresu" -#: ../src/iop/colorzones.c:2454 +#: ../src/iop/colorzones.c:2710 msgid "display selection" msgstr "pokaż wybrany zakres" -#: ../src/iop/colorzones.c:2463 +#: ../src/iop/colorzones.c:2722 msgid "choose selection criterion, will be the abscissa in the graph" msgstr "wybór kryterium podziału, odcięta na wykresie" -#: ../src/iop/colorzones.c:2466 +#: ../src/iop/colorzones.c:2725 msgid "choose between a smoother or stronger effect" msgstr "wybierz między gładszym lub silniejszym efektem" -#: ../src/iop/colorzones.c:2494 ../src/iop/rgbcurve.c:1410 -#: ../src/iop/tonecurve.c:1172 +#: ../src/iop/colorzones.c:2762 ../src/iop/rgbcurve.c:1410 +#: ../src/iop/tonecurve.c:1194 msgid "interpolation method" msgstr "interpolacja" -#: ../src/iop/colorzones.c:2496 ../src/iop/rgbcurve.c:1412 -#: ../src/iop/tonecurve.c:1174 +#: ../src/iop/colorzones.c:2764 ../src/iop/rgbcurve.c:1412 +#: ../src/iop/tonecurve.c:1196 msgid "centripetal spline" msgstr "dośrodkowa funkcja sklejana" -#: ../src/iop/colorzones.c:2497 ../src/iop/rgbcurve.c:1413 -#: ../src/iop/tonecurve.c:1175 +#: ../src/iop/colorzones.c:2765 ../src/iop/rgbcurve.c:1413 +#: ../src/iop/tonecurve.c:1197 msgid "monotonic spline" msgstr "monotoniczna funkcja sklejana" -#: ../src/iop/colorzones.c:2500 ../src/iop/rgbcurve.c:1416 -#: ../src/iop/tonecurve.c:1177 +#: ../src/iop/colorzones.c:2768 ../src/iop/rgbcurve.c:1416 +#: ../src/iop/tonecurve.c:1199 msgid "" "change this method if you see oscillations or cusps in the curve\n" "- cubic spline is better to produce smooth curves but oscillates when nodes " @@ -15461,23 +16040,23 @@ "- monotoniczna ma lepszą dokładność dla czysto analitycznych funkcji (log, " "gamma, exp)" -#: ../src/iop/crop.c:132 +#: ../src/iop/crop.c:122 msgid "crop" msgstr "przycięcie" -#: ../src/iop/crop.c:137 +#: ../src/iop/crop.c:127 msgid "reframe|distortion" msgstr "zmiana kadru|zniekształcenie" -#: ../src/iop/crop.c:143 +#: ../src/iop/crop.c:133 msgid "change the framing" msgstr "zmienia kadrowanie" -#: ../src/iop/crop.c:1667 +#: ../src/iop/crop.c:1651 msgid "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag" msgstr "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag" -#: ../src/iop/crop.c:1676 +#: ../src/iop/crop.c:1660 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag" @@ -15501,7 +16080,7 @@ "ten moduł jest przestarzały. zamiast niego lepiej użyć modułu aberracji " "chromatycznej." -#: ../src/iop/defringe.c:415 +#: ../src/iop/defringe.c:417 msgid "" "method for color protection:\n" " - global average: fast, might show slightly wrong previews in high " @@ -15521,11 +16100,11 @@ "umożliwiając więcej desaturacji, gdy jest to potrzebne\n" " - statyczna: szybka, używa tylko progu jako statycznej granicy" -#: ../src/iop/defringe.c:422 +#: ../src/iop/defringe.c:424 msgid "radius for detecting fringe" msgstr "promień wykrywania obwódek" -#: ../src/iop/defringe.c:425 +#: ../src/iop/defringe.c:427 msgid "threshold for defringe, higher values mean less defringing" msgstr "próg usuwania obwódek, większe wartości oznaczają słabsze działanie" @@ -15537,12 +16116,12 @@ msgid "reconstruct full RGB pixels from a sensor color filter array reading" msgstr "rekonstruuje piksele RGB z zapisu danych z sensora aparatu" -#: ../src/iop/demosaic.c:1086 +#: ../src/iop/demosaic.c:1133 #, c-format msgid "`%s' color matrix not found for 4bayer image!" msgstr "nie znaleziono macierzy koloru „%s” dla zdjęcia 4bayer!" -#: ../src/iop/demosaic.c:1238 +#: ../src/iop/demosaic.c:1285 msgid "" "Bayer sensor demosaicing method, PPG and RCD are fast, AMaZE and LMMSE are " "slow.\n" @@ -15554,7 +16133,7 @@ "LMMSE sprawdza się ze zdjęciami z wysokim ISO\n" "podwójne demozaikowanie podwaja czas przetwarzania." -#: ../src/iop/demosaic.c:1242 +#: ../src/iop/demosaic.c:1289 msgid "" "X-Trans sensor demosaicing method, Markesteijn 3-pass and frequency domain " "chroma are slow.\n" @@ -15564,11 +16143,11 @@ "dziedzinie częstotliwości chromatyczny są powolne.\n" "Podwójne demozaikowanie podwaja czas przetwarzania." -#: ../src/iop/demosaic.c:1248 +#: ../src/iop/demosaic.c:1295 msgid "Bayer4 sensor demosaicing methods." msgstr "metody demozaikowania sensora Bayer4." -#: ../src/iop/demosaic.c:1252 +#: ../src/iop/demosaic.c:1299 msgid "" "threshold for edge-aware median.\n" "set to 0.0 to switch off\n" @@ -15578,7 +16157,7 @@ "ustaw 0.0, aby wyłączyć\n" "ustaw 1.0, aby zignorować krawędzie" -#: ../src/iop/demosaic.c:1257 +#: ../src/iop/demosaic.c:1304 msgid "" "contrast threshold for dual demosaic.\n" "set to 0.0 for high frequency content\n" @@ -15590,7 +16169,7 @@ "ustaw na 1 dla obrazów z gładkimi teksturami.\n" "przełącz aby zwizualizować maskę" -#: ../src/iop/demosaic.c:1265 +#: ../src/iop/demosaic.c:1312 msgid "" "LMMSE refinement steps. the median steps average the output,\n" "refine adds some recalculation of red & blue channels" @@ -15599,51 +16178,51 @@ "dostrajanie generuje dodatkowe obliczenia dla kanałów czerwonego i " "niebieskiego" -#: ../src/iop/demosaic.c:1268 +#: ../src/iop/demosaic.c:1315 msgid "how many color smoothing median steps after demosaicing" msgstr "liczba przejść mediany wygładzania koloru po demozaikowaniu" -#: ../src/iop/demosaic.c:1271 +#: ../src/iop/demosaic.c:1318 msgid "green channels matching method" msgstr "metoda dopasowania kanałów zielonych" -#: ../src/iop/demosaic.c:1278 +#: ../src/iop/demosaic.c:1325 msgid "demosaicing is only used for color raw images" msgstr "demozaikowanie jest potrzebne tylko dla kolorowych obrazów raw" -#: ../src/iop/denoiseprofile.c:714 +#: ../src/iop/denoiseprofile.c:766 msgid "wavelets: chroma only" msgstr "falki: tylko kolor" -#: ../src/iop/denoiseprofile.c:720 +#: ../src/iop/denoiseprofile.c:772 msgid "denoise (profiled)" msgstr "odszumianie (profilowane)" -#: ../src/iop/denoiseprofile.c:726 +#: ../src/iop/denoiseprofile.c:778 msgid "denoise using noise statistics profiled on sensors" msgstr "" "wykonuje odszumianie używając statystyk szumu profilowanych na sensorach " "aparatów." -#: ../src/iop/denoiseprofile.c:2846 +#: ../src/iop/denoiseprofile.c:2850 #, c-format msgid "found match for ISO %d" msgstr "znaleziono dla ISO %d" -#: ../src/iop/denoiseprofile.c:2855 +#: ../src/iop/denoiseprofile.c:2859 #, c-format msgid "interpolated from ISO %d and %d" msgstr "interpolowane z ISO %d i %d" -#: ../src/iop/denoiseprofile.c:3719 +#: ../src/iop/denoiseprofile.c:3723 msgid "Y0" msgstr "Y0" -#: ../src/iop/denoiseprofile.c:3720 +#: ../src/iop/denoiseprofile.c:3724 msgid "U0V0" msgstr "U0V0" -#: ../src/iop/denoiseprofile.c:3760 +#: ../src/iop/denoiseprofile.c:3764 msgid "" "use only with a perfectly\n" "uniform image if you want to\n" @@ -15653,36 +16232,36 @@ "jednolitym obrazem jeśli chcesz\n" "estymować wariancję szumu." -#: ../src/iop/denoiseprofile.c:3766 +#: ../src/iop/denoiseprofile.c:3770 msgid "variance red: " msgstr "wariancja czerwonego: " -#: ../src/iop/denoiseprofile.c:3770 +#: ../src/iop/denoiseprofile.c:3774 msgid "variance computed on the red channel" msgstr "wariancja wyliczona z kanału czerwonego" -#: ../src/iop/denoiseprofile.c:3775 +#: ../src/iop/denoiseprofile.c:3779 msgid "variance green: " msgstr "wariancja zielonego: " -#: ../src/iop/denoiseprofile.c:3779 +#: ../src/iop/denoiseprofile.c:3783 msgid "variance computed on the green channel" msgstr "wariancja wyliczona z kanału zielonego" -#: ../src/iop/denoiseprofile.c:3784 +#: ../src/iop/denoiseprofile.c:3788 msgid "variance blue: " msgstr "wariancja niebieskiego: " -#: ../src/iop/denoiseprofile.c:3788 +#: ../src/iop/denoiseprofile.c:3792 msgid "variance computed on the blue channel" msgstr "wariancja wyliczona z kanału niebieskiego" -#: ../src/iop/denoiseprofile.c:3799 ../src/libs/export.c:1208 +#: ../src/iop/denoiseprofile.c:3803 ../src/libs/export.c:1320 #: ../src/libs/print_settings.c:2418 ../src/libs/print_settings.c:2774 msgid "profile" msgstr "profil" -#: ../src/iop/denoiseprofile.c:3833 +#: ../src/iop/denoiseprofile.c:3837 msgid "" "adapt denoising according to the\n" "white balance coefficients.\n" @@ -15698,7 +16277,7 @@ "powinno być wyłączone, jeżeli wcześniejsza instancja\n" "była użyta z trybem mieszania koloru." -#: ../src/iop/denoiseprofile.c:3840 +#: ../src/iop/denoiseprofile.c:3844 msgid "" "fix bugs in Anscombe transform resulting\n" "in undersmoothing of the green channel in\n" @@ -15720,11 +16299,11 @@ "otrzymujesz. po włączeniu nie będzie można\n" "wrócić do starego algorytmu." -#: ../src/iop/denoiseprofile.c:3850 +#: ../src/iop/denoiseprofile.c:3854 msgid "profile used for variance stabilization" msgstr "profil użyty do stabilizacji wariancji" -#: ../src/iop/denoiseprofile.c:3852 +#: ../src/iop/denoiseprofile.c:3856 msgid "" "method used in the denoising core.\n" "non-local means works best for `lightness' blending,\n" @@ -15734,7 +16313,7 @@ "średnie nielokalne działają najlepiej dla trybu mieszania „jasność”,\n" "falki działają najlepiej dla trybu mieszania „kolor”" -#: ../src/iop/denoiseprofile.c:3856 +#: ../src/iop/denoiseprofile.c:3860 msgid "" "color representation used within the algorithm.\n" "RGB keeps the RGB channels separated,\n" @@ -15746,7 +16325,7 @@ "podczas gdy Y0U0V0 łączy je aby oddzielnie\n" "odszumiać kanały kolorów i luminancji." -#: ../src/iop/denoiseprofile.c:3861 +#: ../src/iop/denoiseprofile.c:3865 msgid "" "radius of the patches to match.\n" "increase for more sharpness on strong edges, and better denoising of smooth " @@ -15760,7 +16339,7 @@ "jeśli detale są zbytnio wygładzone, zmniejsz tę wartość lub zwiększ suwak " "wagi środkowych pikseli." -#: ../src/iop/denoiseprofile.c:3867 +#: ../src/iop/denoiseprofile.c:3871 msgid "" "emergency use only: radius of the neighborhood to search patches in. " "increase for better denoising performance, but watch the long runtimes! " @@ -15771,7 +16350,7 @@ "czasy działania! duże promienie mogą działać bardzo wolno. zostałeś " "ostrzeżony" -#: ../src/iop/denoiseprofile.c:3873 +#: ../src/iop/denoiseprofile.c:3877 msgid "" "scattering of the neighborhood to search patches in.\n" "increase for better coarse-grain noise reduction.\n" @@ -15781,7 +16360,7 @@ "zwiększ, żeby uzyskać lepszą redukcję szumu o grubej ziarnistości.\n" "nie wpływa na czas wykonania." -#: ../src/iop/denoiseprofile.c:3877 +#: ../src/iop/denoiseprofile.c:3881 msgid "" "increase the weight of the central pixel\n" "of the patch in the patch comparison.\n" @@ -15793,11 +16372,11 @@ "użyteczne, aby odzyskać detale, gdy\n" "rozmiar łatki jest dość duży." -#: ../src/iop/denoiseprofile.c:3881 +#: ../src/iop/denoiseprofile.c:3885 msgid "finetune denoising strength" msgstr "dostrój siłę odszumiania" -#: ../src/iop/denoiseprofile.c:3883 +#: ../src/iop/denoiseprofile.c:3887 msgid "" "controls the way parameters are autoset\n" "increase if shadows are not denoised enough\n" @@ -15809,7 +16388,7 @@ "lub jeśli szum kolorowy wciąż jest widoczny.\n" "to może mieć miejsce, jeśli obraz jest niedoświetlony." -#: ../src/iop/denoiseprofile.c:3888 +#: ../src/iop/denoiseprofile.c:3892 msgid "" "finetune shadows denoising.\n" "decrease to denoise more aggressively\n" @@ -15819,7 +16398,7 @@ "zmniejsz aby silniej odszumiać\n" "ciemne obszary obrazu." -#: ../src/iop/denoiseprofile.c:3892 +#: ../src/iop/denoiseprofile.c:3896 msgid "" "correct color cast in shadows.\n" "decrease if shadows are too purple.\n" @@ -15829,7 +16408,7 @@ "zmniejsz, jeśli cienie są zbyt purpurowe.\n" "zwiększ, jeśli cienie są zbyt zielone." -#: ../src/iop/denoiseprofile.c:3896 +#: ../src/iop/denoiseprofile.c:3900 msgid "" "upgrade the variance stabilizing algorithm.\n" "new algorithm extends the current one.\n" @@ -15862,81 +16441,81 @@ "dekonwolucją." #. deblurring presets -#: ../src/iop/diffuse.c:219 +#: ../src/iop/diffuse.c:246 msgid "lens deblur: soft" msgstr "usunięcie rozmycia obiektywu: miękkie" -#: ../src/iop/diffuse.c:244 +#: ../src/iop/diffuse.c:271 msgid "lens deblur: medium" msgstr "usunięcie rozmycia obiektywu: średnie" -#: ../src/iop/diffuse.c:269 +#: ../src/iop/diffuse.c:296 msgid "lens deblur: hard" msgstr "usunięcie rozmycia obiektywu: twarde" -#: ../src/iop/diffuse.c:295 +#: ../src/iop/diffuse.c:322 msgid "dehaze" msgstr "usuwanie zamglenia" -#: ../src/iop/diffuse.c:321 +#: ../src/iop/diffuse.c:348 msgid "denoise: fine" msgstr "odszumianie: drobne" -#: ../src/iop/diffuse.c:346 +#: ../src/iop/diffuse.c:373 msgid "denoise: medium" msgstr "odszumianie: średnie" -#: ../src/iop/diffuse.c:371 +#: ../src/iop/diffuse.c:398 msgid "denoise: coarse" msgstr "odszumianie: grube" -#: ../src/iop/diffuse.c:446 +#: ../src/iop/diffuse.c:473 msgid "sharpen demosaicing: no AA filter" msgstr "Wyostrzanie demozaikowania: brak filtra antyaliasingowego" -#: ../src/iop/diffuse.c:472 +#: ../src/iop/diffuse.c:499 msgid "sharpen demosaicing: AA filter" msgstr "Wyostrzanie demozaikowania: filtr antyaliasingowy" -#: ../src/iop/diffuse.c:499 +#: ../src/iop/diffuse.c:526 msgid "simulate watercolor" msgstr "symuluj akwarele" -#: ../src/iop/diffuse.c:524 +#: ../src/iop/diffuse.c:551 msgid "simulate line drawing" msgstr "symuluj grafikę liniową" -#: ../src/iop/diffuse.c:576 +#: ../src/iop/diffuse.c:603 msgid "inpaint highlights" msgstr "rekonstrukcja świateł" #. fast presets for slow hardware -#: ../src/iop/diffuse.c:603 +#: ../src/iop/diffuse.c:630 msgid "sharpness: fast" msgstr "ostrość: szybki" -#: ../src/iop/diffuse.c:655 +#: ../src/iop/diffuse.c:682 msgid "sharpness: strong" msgstr "ostrość: mocny" -#: ../src/iop/diffuse.c:680 +#: ../src/iop/diffuse.c:707 msgid "local contrast: fast" msgstr "kontrast lokalny: szybki" -#: ../src/iop/diffuse.c:1391 ../src/iop/diffuse.c:1666 +#: ../src/iop/diffuse.c:1418 ../src/iop/diffuse.c:1693 msgid "diffuse/sharpen failed to allocate memory, check your RAM settings" msgstr "" "dyfuzja/wyostrzenie nie mógł zaalokować pamięci, sprawdź ustawienia RAM" #. Additional parameters #. Camera settings -#: ../src/iop/diffuse.c:1782 ../src/iop/splittoning.c:537 +#: ../src/iop/diffuse.c:1797 ../src/iop/splittoning.c:533 #: ../src/libs/camera.c:486 msgctxt "section" msgid "properties" msgstr "właściwości" -#: ../src/iop/diffuse.c:1788 +#: ../src/iop/diffuse.c:1803 msgid "" "more iterations make the effect stronger but the module slower.\n" "this is analogous to giving more time to the diffusion reaction.\n" @@ -15948,7 +16527,7 @@ "Jeśli planujesz wyostrzenie lub wypełnianie przepaleń,\n" " więcej iteracji pomoże w rekonstrukcji." -#: ../src/iop/diffuse.c:1797 +#: ../src/iop/diffuse.c:1812 msgid "" "main scale of the diffusion.\n" "zero makes diffusion act on the finest details more heavily.\n" @@ -15963,7 +16542,7 @@ "dla usuwania rozmycia i odszumiania, ustaw na 0\n" "zwiększ dla efektu na kontraście lokalnym" -#: ../src/iop/diffuse.c:1807 +#: ../src/iop/diffuse.c:1822 msgid "" "width of the diffusion around the central radius.\n" "high values diffuse on a large band of radii.\n" @@ -15977,12 +16556,12 @@ "jeśli planujesz wyostrzanie,\n" "promień powinien być bliski promienia krążka rozmycia obiektywu" -#: ../src/iop/diffuse.c:1814 +#: ../src/iop/diffuse.c:1829 msgctxt "section" msgid "speed (sharpen ↔ diffuse)" msgstr "prędkość (wyostrzenie ↔ rozmycie)" -#: ../src/iop/diffuse.c:1821 +#: ../src/iop/diffuse.c:1836 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 1st order anisotropy (set below).\n" @@ -15998,7 +16577,7 @@ "pozytywne rozmywają,\n" "0 nie wprowadza zmian." -#: ../src/iop/diffuse.c:1831 +#: ../src/iop/diffuse.c:1846 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 2nd order anisotropy (set below).\n" @@ -16014,7 +16593,7 @@ "pozytywne rozmywają,\n" "0 nie wprowadza zmian." -#: ../src/iop/diffuse.c:1841 +#: ../src/iop/diffuse.c:1856 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 3rd order anisotropy (set below).\n" @@ -16030,7 +16609,7 @@ "pozytywne rozmywają,\n" "0 nie wprowadza zmian." -#: ../src/iop/diffuse.c:1851 +#: ../src/iop/diffuse.c:1866 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 4th order anisotropy (set below).\n" @@ -16046,12 +16625,12 @@ "pozytywne rozmywają,\n" "0 nie wprowadza zmian." -#: ../src/iop/diffuse.c:1857 +#: ../src/iop/diffuse.c:1872 msgctxt "section" msgid "direction" msgstr "kierunek" -#: ../src/iop/diffuse.c:1864 +#: ../src/iop/diffuse.c:1879 msgid "" "direction of 1st order speed (set above).\n" "\n" @@ -16065,7 +16644,7 @@ "dodatnie wartości unikają krawędzi (izofot),\n" "zero oddziałowuje identycznie w obu kierunkach (izotropowo)." -#: ../src/iop/diffuse.c:1873 +#: ../src/iop/diffuse.c:1888 msgid "" "direction of 2nd order speed (set above).\n" "\n" @@ -16079,7 +16658,7 @@ "dodatnie wartości unikają krawędzi (izofot),\n" "zero oddziałowuje identycznie w obu kierunkach (izotropowo)." -#: ../src/iop/diffuse.c:1882 +#: ../src/iop/diffuse.c:1897 msgid "" "direction of 3rd order speed (set above).\n" "\n" @@ -16093,7 +16672,7 @@ "dodatnie wartości unikają krawędzi (izofot),\n" "zero oddziałowuje identycznie w obu kierunkach (izotropowo)." -#: ../src/iop/diffuse.c:1891 +#: ../src/iop/diffuse.c:1906 msgid "" "direction of 4th order speed (set above).\n" "\n" @@ -16107,12 +16686,12 @@ "dodatnie wartości unikają krawędzi (izofot),\n" "zero oddziałowuje identycznie w obu kierunkach (izotropowo)." -#: ../src/iop/diffuse.c:1897 +#: ../src/iop/diffuse.c:1912 msgctxt "section" msgid "edge management" msgstr "zarządzanie brzegami" -#: ../src/iop/diffuse.c:1904 +#: ../src/iop/diffuse.c:1919 msgid "" "increase or decrease the sharpness of the highest frequencies.\n" "can be used to keep details after blooming,\n" @@ -16122,7 +16701,7 @@ "może być użyte do zachowania detali po dodaniu poświaty,\n" "jako niezależne narzędzie wyostrzania, ustaw ujemną wartość" -#: ../src/iop/diffuse.c:1911 +#: ../src/iop/diffuse.c:1926 msgid "" "define the sensitivity of the variance penalty for edges.\n" "increase to exclude more edges from diffusion,\n" @@ -16132,7 +16711,7 @@ "zwiększ, by wykluczyć więcej krawędzi z efektu dyfuzji, \n" "jeśli pojawią się frędzle lub aureole" -#: ../src/iop/diffuse.c:1918 +#: ../src/iop/diffuse.c:1933 msgid "" "define the variance threshold between edge amplification and penalty.\n" "decrease if you want pixels on smooth surfaces get a boost,\n" @@ -16144,12 +16723,12 @@ "zwiększ jeśli pojawia się niechciany szum na gładkich powierzchniach\n" "lub jeśli ciemne obszary wydają się zbyt wyostrzone w porównaniu z jasnymi" -#: ../src/iop/diffuse.c:1924 +#: ../src/iop/diffuse.c:1939 msgctxt "section" msgid "diffusion spatiality" msgstr "przestrzenność dyfuzji" -#: ../src/iop/diffuse.c:1931 +#: ../src/iop/diffuse.c:1946 msgid "" "luminance threshold for the mask.\n" "0. disables the luminance masking and applies the module on the whole " @@ -16167,7 +16746,7 @@ msgstr "dithering lub posteryzacja" #: ../src/iop/dither.c:112 -msgid "dithering|posterization|reduce bit-depth" +msgid "dithering|posterization|reduce bit depth" msgstr "dithering|posteryzacja|redukuj głębię bitową" #: ../src/iop/dither.c:117 @@ -16183,23 +16762,23 @@ msgstr "korekcyjne i kreatywne" #. add the preset. -#: ../src/iop/dither.c:147 +#: ../src/iop/dither.c:149 msgid "dither" msgstr "dithering" -#: ../src/iop/dither.c:759 +#: ../src/iop/dither.c:761 msgid "radius for blurring step" msgstr "promień dla fazy rozmycia" -#: ../src/iop/dither.c:771 +#: ../src/iop/dither.c:773 msgid "the gradient range where to apply random dither" msgstr "zakres gradientu, w którym ma zostać zastosowany losowy dithering" -#: ../src/iop/dither.c:772 +#: ../src/iop/dither.c:774 msgid "gradient range" msgstr "zakres gradientu" -#: ../src/iop/dither.c:780 +#: ../src/iop/dither.c:782 msgid "damping level of random dither" msgstr "poziom tłumienia losowego ditheringu" @@ -16207,12 +16786,12 @@ msgid "legacy equalizer" msgstr "przestarzały korektor" -#: ../src/iop/equalizer.c:110 +#: ../src/iop/equalizer.c:112 msgid "" "this module is deprecated. better use contrast equalizer module instead." msgstr "ten moduł jest przestarzały. lepiej użyć korektora kontrastu." -#: ../src/iop/equalizer.c:238 +#: ../src/iop/equalizer.c:240 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -16230,33 +16809,33 @@ "zmienia ekspozycję zdjęcia tak jakby była ona ustawiona w aparacie,\n" "używając rozjaśniania bezpiecznego dla kolorów, podobnego do zwiększania ISO" -#: ../src/iop/exposure.c:279 +#: ../src/iop/exposure.c:301 msgid "magic lantern defaults" msgstr "domyślne wartości magic lantern" -#: ../src/iop/exposure.c:351 ../src/iop/rawoverexposed.c:135 -#: ../src/iop/rawoverexposed.c:254 +#: ../src/iop/exposure.c:373 ../src/iop/rawoverexposed.c:137 +#: ../src/iop/rawoverexposed.c:256 #, c-format msgid "failed to get raw buffer from image `%s'" msgstr "nieudane pobranie bufora raw z obrazu „%s”" -#: ../src/iop/exposure.c:629 +#: ../src/iop/exposure.c:647 #, no-c-format msgid "compensate camera exposure (%+.1f EV)" msgstr "skompensuj ekspozycję aparatu (%+.1f EV)" #. Write report in GUI -#: ../src/iop/exposure.c:813 +#: ../src/iop/exposure.c:831 #, c-format msgid "L : \t%.1f %%" msgstr "L : \t%.1f %%" -#: ../src/iop/exposure.c:945 ../src/libs/history.c:953 +#: ../src/iop/exposure.c:963 ../src/libs/history.c:953 #, c-format msgid "%.2f EV" msgstr "%.2f EV" -#: ../src/iop/exposure.c:1113 +#: ../src/iop/exposure.c:1131 msgid "" "automatically remove the camera exposure bias\n" "this is useful if you exposed the image to the right." @@ -16264,27 +16843,27 @@ "automatycznie usuń przesunięcie ekspozycji aparatu\n" "to przydaje się, jeśli zdjęcie zrobione było \"z ekspozycją w prawo\"(ETTR)." -#: ../src/iop/exposure.c:1132 +#: ../src/iop/exposure.c:1150 #, no-c-format msgid "where in the histogram to meter for deflicking. E.g. 50% is median" msgstr "w którym miejscu histogramu wykonać pomiar. Np. 50% dla mediany" -#: ../src/iop/exposure.c:1138 +#: ../src/iop/exposure.c:1156 msgid "" "where to place the exposure level for processed pics, EV below overexposure." msgstr "" "jaką otrzymać ekspozycję przetworzonego zdjęcia, ilość stopni EV poniżej " "prześwietlenia." -#: ../src/iop/exposure.c:1142 +#: ../src/iop/exposure.c:1160 msgid "computed EC: " msgstr "wyliczone EC: " -#: ../src/iop/exposure.c:1145 +#: ../src/iop/exposure.c:1163 msgid "what exposure correction has actually been used" msgstr "jaka korekcja ekspozycji została rzeczywiście zastosowana" -#: ../src/iop/exposure.c:1164 +#: ../src/iop/exposure.c:1182 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -16296,11 +16875,11 @@ "złe ustawienie spowoduje wypadnięcie kolorów bliskich czerni poza gamut\n" "przesuwając wartości RGB poniżej zera." -#: ../src/iop/exposure.c:1174 -msgid "spot exposure mapping" +#: ../src/iop/exposure.c:1192 +msgid "area exposure mapping" msgstr "miejscowe mapowanie ekspozycji" -#: ../src/iop/exposure.c:1180 +#: ../src/iop/exposure.c:1198 msgid "" "define a target brightness, in terms of exposure,\n" "for a selected region of the image (the control sample),\n" @@ -16316,7 +16895,7 @@ "istotnym elementem tematu zdjęcia, lub nieruchomą,\n" "niezmiennie oświetloną powierzchnią widoczną w serii zdjęć." -#: ../src/iop/exposure.c:1189 +#: ../src/iop/exposure.c:1207 msgid "" "\"correction\" automatically adjust exposure\n" "such that the input lightness is mapped to the target.\n" @@ -16329,11 +16908,11 @@ "przez kompensację ekspozycji\n" "i może być użyty do zdefiniowania targetu." -#: ../src/iop/exposure.c:1215 +#: ../src/iop/exposure.c:1233 msgid "L : \tN/A" msgstr "L : \tN/A" -#: ../src/iop/exposure.c:1233 +#: ../src/iop/exposure.c:1251 msgid "the desired target exposure after mapping" msgstr "pożądana docelowa ekspozycja po mapowaniu" @@ -16341,52 +16920,52 @@ msgid "this module is deprecated. better use filmic rgb module instead." msgstr "ten moduł jest przestarzały. lepiej użyć krzywej filmowej rgb." -#: ../src/iop/filmic.c:304 +#: ../src/iop/filmic.c:333 msgid "09 EV (low-key)" msgstr "09 EV (low-key)" -#: ../src/iop/filmic.c:312 +#: ../src/iop/filmic.c:341 msgid "10 EV (indoors)" msgstr "10 EV (wnętrze)" -#: ../src/iop/filmic.c:320 +#: ../src/iop/filmic.c:349 msgid "11 EV (dim outdoors)" msgstr "11 EV (ciemne zewnętrze)" -#: ../src/iop/filmic.c:328 +#: ../src/iop/filmic.c:357 msgid "12 EV (outdoors)" msgstr "12 EV (zewnętrze)" -#: ../src/iop/filmic.c:336 +#: ../src/iop/filmic.c:365 msgid "13 EV (bright outdoors)" msgstr "13 EV (jasne zewnętrzne)" -#: ../src/iop/filmic.c:344 +#: ../src/iop/filmic.c:373 msgid "14 EV (backlighting)" msgstr "14 EV (podświetlenie od tyłu)" -#: ../src/iop/filmic.c:352 +#: ../src/iop/filmic.c:381 msgid "15 EV (sunset)" msgstr "15 EV (zachód słońca)" -#: ../src/iop/filmic.c:360 +#: ../src/iop/filmic.c:389 msgid "16 EV (HDR)" msgstr "16 EV (HDR)" -#: ../src/iop/filmic.c:368 +#: ../src/iop/filmic.c:397 msgid "18 EV (HDR++)" msgstr "18 EV (HDR++)" -#: ../src/iop/filmic.c:1480 +#: ../src/iop/filmic.c:1505 msgid "read-only graph, use the parameters below to set the nodes" msgstr "wykres tylko do podglądu, użyj parametrów poniżej, aby regulować węzły" -#: ../src/iop/filmic.c:1484 +#: ../src/iop/filmic.c:1509 msgctxt "section" msgid "logarithmic shaper" msgstr "kształtowanie logarytmiczne" -#: ../src/iop/filmic.c:1492 +#: ../src/iop/filmic.c:1517 msgid "" "adjust to match the average luminance of the subject.\n" "except in back-lighting situations, this should be around 18%." @@ -16394,7 +16973,7 @@ "zmień, aby wybrać średnią luminancję obiektu.\n" "z wyjątkiem sytuacji z podświetleniem od tyłu, powinno być ok. 18%." -#: ../src/iop/filmic.c:1504 ../src/iop/filmicrgb.c:4442 +#: ../src/iop/filmic.c:1529 ../src/iop/filmicrgb.c:4506 msgid "" "number of stops between middle gray and pure white.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16404,7 +16983,7 @@ "jest to wskazanie, które w tej scenie dałby światłomierz.\n" "zmień, aby uniknąć prześwietlenia świateł" -#: ../src/iop/filmic.c:1517 ../src/iop/filmicrgb.c:4453 +#: ../src/iop/filmic.c:1542 ../src/iop/filmicrgb.c:4517 msgid "" "number of stops between middle gray and pure black.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16416,20 +16995,24 @@ "zwiększ, aby uzyskać większy kontrast.\n" "zmniejsz, aby odzyskać więcej detali w cieniach." -#: ../src/iop/filmic.c:1529 +#: ../src/iop/filmic.c:1554 +#, fuzzy +#| msgid "" +#| "enlarge or shrink the computed dynamic range.\n" +#| "useful in conjunction with \"auto tune levels\"." msgid "" -"enlarge or shrink the computed dynamic range.\n" +"increase or decrease the computed dynamic range.\n" "useful in conjunction with \"auto tune levels\"." msgstr "" "zwiększ lub zmniejsz wyliczoną rozpiętość tonalną.\n" "przydatne w połączeniu z automatycznym ustawianiem poziomów." -#: ../src/iop/filmic.c:1535 ../src/iop/filmicrgb.c:4467 -#: ../src/iop/profile_gamma.c:659 +#: ../src/iop/filmic.c:1560 ../src/iop/filmicrgb.c:4531 +#: ../src/iop/profile_gamma.c:673 msgid "auto tune levels" msgstr "ustaw poziomy automatycznie" -#: ../src/iop/filmic.c:1538 +#: ../src/iop/filmic.c:1563 msgid "" "try to optimize the settings with some guessing.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16441,12 +17024,12 @@ "działa lepiej z krajobrazami i równo oświetlonymi zdjęciami\n" "ale szwankuje w przypadku high-key i low-key." -#: ../src/iop/filmic.c:1543 +#: ../src/iop/filmic.c:1568 msgctxt "section" msgid "filmic S curve" msgstr "krzywa filmowa S" -#: ../src/iop/filmic.c:1550 ../src/iop/filmicrgb.c:4554 +#: ../src/iop/filmic.c:1575 ../src/iop/filmicrgb.c:4618 msgid "" "slope of the linear part of the curve\n" "affects mostly the mid-tones" @@ -16455,12 +17038,12 @@ "wpływa głownie na tony średnie" #. geotagging -#: ../src/iop/filmic.c:1557 ../src/iop/filmicrgb.c:4563 -#: ../src/libs/metadata_view.c:157 +#: ../src/iop/filmic.c:1582 ../src/iop/filmicrgb.c:4627 +#: ../src/libs/metadata_view.c:161 msgid "latitude" msgstr "szerokość" -#: ../src/iop/filmic.c:1560 +#: ../src/iop/filmic.c:1585 msgid "" "width of the linear domain in the middle of the curve.\n" "increase to get more contrast at the extreme luminances.\n" @@ -16470,11 +17053,11 @@ "zwiększ, aby mieć więcej kontrastu w skrajnych luminancjach.\n" "nie ma wpływu na tony średnie." -#: ../src/iop/filmic.c:1567 +#: ../src/iop/filmic.c:1592 msgid "shadows/highlights balance" msgstr "balans cieni i świateł" -#: ../src/iop/filmic.c:1570 ../src/iop/filmicrgb.c:4574 +#: ../src/iop/filmic.c:1595 ../src/iop/filmicrgb.c:4638 msgid "" "slides the latitude along the slope\n" "to give more room to shadows or highlights.\n" @@ -16486,7 +17069,7 @@ "użyj, jeśli potrzebujesz chronić detale\n" "na jednym z końców histogramu." -#: ../src/iop/filmic.c:1580 +#: ../src/iop/filmic.c:1605 msgid "" "desaturates the input of the module globally.\n" "you need to set this value below 100%\n" @@ -16496,7 +17079,7 @@ "trzeba ustawić tę wartość poniżej 100%,\n" "jeżeli zachowanie chrominancji jest włączone." -#: ../src/iop/filmic.c:1590 +#: ../src/iop/filmic.c:1615 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16507,42 +17090,42 @@ "zmniejsz, jeśli cienie i/lub światła są zbytnio nasycone." #. Add export intent combo -#: ../src/iop/filmic.c:1600 ../src/libs/export.c:1227 +#: ../src/iop/filmic.c:1625 ../src/libs/export.c:1339 #: ../src/libs/print_settings.c:2473 ../src/libs/print_settings.c:2820 -#: ../src/views/darkroom.c:2524 ../src/views/lighttable.c:1182 +#: ../src/views/darkroom.c:2365 ../src/views/lighttable.c:1182 msgid "intent" msgstr "odwzorowanie barw" -#: ../src/iop/filmic.c:1601 +#: ../src/iop/filmic.c:1626 msgid "contrasted" msgstr "skontrastowane" #. cubic spline -#: ../src/iop/filmic.c:1602 +#: ../src/iop/filmic.c:1627 msgid "faded" msgstr "wyblakłe" #. centripetal spline -#: ../src/iop/filmic.c:1603 ../src/iop/profile_gamma.c:621 +#: ../src/iop/filmic.c:1628 ../src/iop/profile_gamma.c:635 msgid "linear" msgstr "korekcja liniowa" #. monotonic spline -#: ../src/iop/filmic.c:1604 +#: ../src/iop/filmic.c:1629 msgid "optimized" msgstr "zoptymalizowane" -#: ../src/iop/filmic.c:1606 +#: ../src/iop/filmic.c:1631 msgid "change this method if you see reversed contrast or faded blacks" msgstr "" "zmień tę metodę, jeśli zauważysz odwrócony kontrast lub wyblakłe czernie" #. Preserve color -#: ../src/iop/filmic.c:1610 +#: ../src/iop/filmic.c:1635 msgid "preserve the chrominance" msgstr "zachowaj chrominancję" -#: ../src/iop/filmic.c:1612 +#: ../src/iop/filmic.c:1637 msgid "" "ensure the original color are preserved.\n" "may reinforce chromatic aberrations.\n" @@ -16552,12 +17135,12 @@ "może wzmocnić aberracje chromatyczne.\n" "używając tego trybu trzeba ręcznie wyregulować nasycenie." -#: ../src/iop/filmic.c:1622 +#: ../src/iop/filmic.c:1647 msgctxt "section" msgid "destination/display" msgstr "cel/wyświetlacz" -#: ../src/iop/filmic.c:1640 ../src/iop/filmicrgb.c:4593 +#: ../src/iop/filmic.c:1665 ../src/iop/filmicrgb.c:4657 msgid "" "luminance of output pure black, this should be 0%\n" "except if you want a faded look" @@ -16565,7 +17148,7 @@ "luminancja wyjściowej czystej czerni, powinna wynosić 0%\n" "chyba że chcesz otrzymać wyblakły wygląd" -#: ../src/iop/filmic.c:1649 ../src/iop/filmicrgb.c:4600 +#: ../src/iop/filmic.c:1674 ../src/iop/filmicrgb.c:4664 msgid "" "middle gray value of the target display or color space.\n" "you should never touch that unless you know what you are doing." @@ -16573,7 +17156,7 @@ "wartość średniej szarości docelowego wyświetlacza lub przestrzeni kolorów.\n" "nie powinieneś tego zmieniać, chyba że wiesz, co robisz." -#: ../src/iop/filmic.c:1658 ../src/iop/filmicrgb.c:4607 +#: ../src/iop/filmic.c:1683 ../src/iop/filmicrgb.c:4671 msgid "" "luminance of output pure white, this should be 100%\n" "except if you want a faded look" @@ -16581,11 +17164,11 @@ "luminancja wyjściowej czystej bieli, powinna wynosić 100%\n" "chyba że chcesz otrzymać wyblakły wygląd" -#: ../src/iop/filmic.c:1664 +#: ../src/iop/filmic.c:1689 msgid "target gamma" msgstr "docelowa gamma" -#: ../src/iop/filmic.c:1666 +#: ../src/iop/filmic.c:1691 msgid "" "power or gamma of the transfer function\n" "of the display or color space.\n" @@ -16613,7 +17196,7 @@ "do wyświetlenia na ekranie lub do wydruku (odbitki),\n" "próbując jednocześnie niedestrukcyjnie uniknąć prześwietleń i niedoświetleń" -#: ../src/iop/filmicrgb.c:1310 +#: ../src/iop/filmicrgb.c:1365 msgid "" "filmic highlights reconstruction failed to allocate memory, check your RAM " "settings" @@ -16621,71 +17204,71 @@ "nie udała się rekonstrukcja prześwietleń w module krzywej filmowej, sprawdź " "ustawienia RAM" -#: ../src/iop/filmicrgb.c:2301 +#: ../src/iop/filmicrgb.c:2369 msgid "filmic highlights reconstruction failed to allocate memory on GPU" msgstr "brak pamięci GPU dla przywracania świateł w module krzywej filmowej" -#: ../src/iop/filmicrgb.c:2419 +#: ../src/iop/filmicrgb.c:2487 msgid "filmic works only on RGB input" msgstr "moduł krzywej filmowej RGB działa wyłącznie na danych wejściowych RGB" -#: ../src/iop/filmicrgb.c:3484 +#: ../src/iop/filmicrgb.c:3548 msgid "look only" msgstr "tylko wygląd" -#: ../src/iop/filmicrgb.c:3486 +#: ../src/iop/filmicrgb.c:3550 msgid "look + mapping (lin)" msgstr "wygląd + mapowanie (liniowe)" -#: ../src/iop/filmicrgb.c:3488 +#: ../src/iop/filmicrgb.c:3552 msgid "look + mapping (log)" msgstr "wygląd + mapowanie (log)" -#: ../src/iop/filmicrgb.c:3490 +#: ../src/iop/filmicrgb.c:3554 msgid "dynamic range mapping" msgstr "mapowanie rozpiętości tonalnej" -#: ../src/iop/filmicrgb.c:3857 +#: ../src/iop/filmicrgb.c:3921 #, c-format msgid "(%.0f %%)" msgstr "(%.0f %%)" -#: ../src/iop/filmicrgb.c:3873 +#: ../src/iop/filmicrgb.c:3937 #, no-c-format msgid "% display" msgstr "% ekranu" -#: ../src/iop/filmicrgb.c:3885 +#: ../src/iop/filmicrgb.c:3949 msgid "EV scene" msgstr "EV (scena)" -#: ../src/iop/filmicrgb.c:3889 +#: ../src/iop/filmicrgb.c:3953 #, no-c-format msgid "% camera" msgstr "% aparatu" #. Page DISPLAY -#: ../src/iop/filmicrgb.c:3925 ../src/iop/filmicrgb.c:4587 +#: ../src/iop/filmicrgb.c:3989 ../src/iop/filmicrgb.c:4651 msgid "display" msgstr "wyjście" #. axis legend -#: ../src/iop/filmicrgb.c:3934 +#: ../src/iop/filmicrgb.c:3998 msgid "(%)" msgstr "(%)" #. Page SCENE -#: ../src/iop/filmicrgb.c:3943 ../src/iop/filmicrgb.c:4422 +#: ../src/iop/filmicrgb.c:4007 ../src/iop/filmicrgb.c:4486 msgid "scene" msgstr "scena" #. axis legend -#: ../src/iop/filmicrgb.c:3952 +#: ../src/iop/filmicrgb.c:4016 msgid "(EV)" msgstr "(EV)" #. we are over the graph area -#: ../src/iop/filmicrgb.c:4364 +#: ../src/iop/filmicrgb.c:4428 msgid "" "use the parameters below to set the nodes.\n" "the bright curve is the filmic tone mapping curve\n" @@ -16695,11 +17278,11 @@ "jasna krzywa obrazuje filmowe mapowanie tonów\n" "ciemna krzywa to krzywa desaturacji kolorów." -#: ../src/iop/filmicrgb.c:4370 +#: ../src/iop/filmicrgb.c:4434 msgid "toggle axis labels and values display" msgstr "pokaż/ukryj opisy osi i wyświetlanie wartości" -#: ../src/iop/filmicrgb.c:4374 +#: ../src/iop/filmicrgb.c:4438 msgid "" "cycle through graph views.\n" "left click: cycle forward.\n" @@ -16711,7 +17294,7 @@ "prawy klik: poprzedni\n" "podwójne kliknięcie: reset do widoku wyglądu." -#: ../src/iop/filmicrgb.c:4431 +#: ../src/iop/filmicrgb.c:4495 #, no-c-format msgid "" "adjust to match the average luminance of the image's subject.\n" @@ -16722,16 +17305,20 @@ "wprowadzona wartość zostanie zmapowana do 18.45%.\n" "zmniejsz, aby zwiększyć ogólną jasność." -#: ../src/iop/filmicrgb.c:4461 +#: ../src/iop/filmicrgb.c:4525 +#, fuzzy +#| msgid "" +#| "symmetrically enlarge or shrink the computed dynamic range.\n" +#| "useful to give a safety margin to extreme luminances." msgid "" -"symmetrically enlarge or shrink the computed dynamic range.\n" +"symmetrically increase or decrease the computed dynamic range.\n" "useful to give a safety margin to extreme luminances." msgstr "" "symetrycznie zwiększ lub zmniejsz wyliczoną rozpiętość tonalną.\n" "przydatne w celu zapewnienia marginesu bezpieczeństwa dla skrajnych " "luminancji." -#: ../src/iop/filmicrgb.c:4468 +#: ../src/iop/filmicrgb.c:4532 msgid "" "try to optimize the settings with some statistical assumptions.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16749,16 +17336,16 @@ "przed użyciem zapoznaj się z założeniami." #. Page RECONSTRUCT -#: ../src/iop/filmicrgb.c:4477 +#: ../src/iop/filmicrgb.c:4541 msgid "reconstruct" msgstr "rekonstrukcja" -#: ../src/iop/filmicrgb.c:4479 +#: ../src/iop/filmicrgb.c:4543 msgctxt "section" msgid "highlights clipping" msgstr "ucinanie świateł" -#: ../src/iop/filmicrgb.c:4487 +#: ../src/iop/filmicrgb.c:4551 msgid "" "set the exposure threshold upon which\n" "clipped highlights get reconstructed.\n" @@ -16774,7 +17361,7 @@ "zmniejsz, aby objąć większe powierzchnie,\n" "zwiększ, aby wykluczyć powierzchnie." -#: ../src/iop/filmicrgb.c:4497 +#: ../src/iop/filmicrgb.c:4561 msgid "" "soften the transition between clipped highlights and valid pixels.\n" "decrease to make the transition harder and sharper,\n" @@ -16785,20 +17372,27 @@ "zmniejsz, aby sprawić, żeby przejścia były ostrzejsze,\n" "zwiększ, aby stały się gładsze i bardziej rozmyte." -#: ../src/iop/filmicrgb.c:4503 ../src/iop/filmicrgb.c:4504 +#: ../src/iop/filmicrgb.c:4567 ../src/iop/filmicrgb.c:4568 msgid "display highlight reconstruction mask" msgstr "wyświetl maskę rekonstrukcji świateł" -#: ../src/iop/filmicrgb.c:4511 +#: ../src/iop/filmicrgb.c:4575 msgctxt "section" msgid "balance" msgstr "balans" -#: ../src/iop/filmicrgb.c:4518 -#, no-c-format +#: ../src/iop/filmicrgb.c:4582 +#, fuzzy, no-c-format +#| msgid "" +#| "decide which reconstruction strategy to favor,\n" +#| "between inpainting a smooth color gradient,\n" +#| "or trying to recover the textured details.\n" +#| "0% is an equal mix of both.\n" +#| "increase if at least one RGB channel is not clipped.\n" +#| "decrease if all RGB channels are clipped over large areas." msgid "" "decide which reconstruction strategy to favor,\n" -"between inpainting a smooth color gradient,\n" +"inpainting a smooth color gradient\n" "or trying to recover the textured details.\n" "0% is an equal mix of both.\n" "increase if at least one RGB channel is not clipped.\n" @@ -16811,11 +17405,18 @@ "zwiększ, jeśli choć jeden kanał RGB nie jest prześwietlony.\n" "zmniejsz, jeśli wszystkie kanały RGB są prześwietlone na dużych obszarach." -#: ../src/iop/filmicrgb.c:4529 -#, no-c-format +#: ../src/iop/filmicrgb.c:4593 +#, fuzzy, no-c-format +#| msgid "" +#| "decide which reconstruction strategy to favor,\n" +#| "between blooming highlights like film does,\n" +#| "or trying to recover sharp details.\n" +#| "0% is an equal mix of both.\n" +#| "increase if you want more details.\n" +#| "decrease if you want more blur." msgid "" "decide which reconstruction strategy to favor,\n" -"between blooming highlights like film does,\n" +"blooming highlights like film does\n" "or trying to recover sharp details.\n" "0% is an equal mix of both.\n" "increase if you want more details.\n" @@ -16828,11 +17429,18 @@ "zwiększ, jeśli chcesz więcej detali.\n" "zmniejsz, jeśli chcesz większego rozmycia." -#: ../src/iop/filmicrgb.c:4541 -#, no-c-format +#: ../src/iop/filmicrgb.c:4605 +#, fuzzy, no-c-format +#| msgid "" +#| "decide which reconstruction strategy to favor,\n" +#| "between recovering monochromatic highlights,\n" +#| "or trying to recover colorful highlights.\n" +#| "0% is an equal mix of both.\n" +#| "increase if you want more color.\n" +#| "decrease if you see magenta or out-of-gamut highlights." msgid "" "decide which reconstruction strategy to favor,\n" -"between recovering monochromatic highlights,\n" +"recovering monochromatic highlights\n" "or trying to recover colorful highlights.\n" "0% is an equal mix of both.\n" "increase if you want more color.\n" @@ -16845,11 +17453,11 @@ "zmniejsz, jeśli widzisz magenta lub wartości poza gamutem w światłach." #. Page LOOK -#: ../src/iop/filmicrgb.c:4549 +#: ../src/iop/filmicrgb.c:4613 msgid "look" msgstr "wygląd" -#: ../src/iop/filmicrgb.c:4559 +#: ../src/iop/filmicrgb.c:4623 msgid "" "equivalent to paper grade in analog.\n" "increase to make highlights brighter and less compressed.\n" @@ -16859,7 +17467,7 @@ "zwiększ, aby uczynić światła jaśniejszymi i mniej skompresowanymi.\n" "zmniejsz, aby stłumić światła." -#: ../src/iop/filmicrgb.c:4567 +#: ../src/iop/filmicrgb.c:4631 msgid "" "width of the linear domain in the middle of the curve,\n" "increase to get more contrast and less desaturation at extreme luminances,\n" @@ -16873,7 +17481,7 @@ "desaturacja. \n" "nie wpływa to na tony średnie." -#: ../src/iop/filmicrgb.c:4582 ../src/iop/filmicrgb.c:4730 +#: ../src/iop/filmicrgb.c:4646 ../src/iop/filmicrgb.c:4794 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16883,11 +17491,11 @@ "zwiększ, jeśli cienie i/lub światła są niewystarczająco nasycone." #. Page OPTIONS -#: ../src/iop/filmicrgb.c:4611 +#: ../src/iop/filmicrgb.c:4675 msgid "options" msgstr "opcje" -#: ../src/iop/filmicrgb.c:4616 +#: ../src/iop/filmicrgb.c:4680 msgid "" "v3 is darktable 3.0 desaturation method, same as color balance.\n" "v4 is a newer desaturation method, based on spectral purity of light." @@ -16895,7 +17503,7 @@ "v3 to model desaturacji darktable 3.0, taki sam jak w balansie kolorów.\n" "v4 to nowsza metoda desaturacji, bazująca na spektralnej czystości światła." -#: ../src/iop/filmicrgb.c:4620 +#: ../src/iop/filmicrgb.c:4684 msgid "" "ensure the original colors are preserved.\n" "may reinforce chromatic aberrations and chroma noise,\n" @@ -16905,7 +17513,7 @@ "może to wzmocnić aberracje chromatyczne oraz szum kolorowy,\n" "więc zatroszcz się o skorygowanie tych problemów za pomocą innych modułów." -#: ../src/iop/filmicrgb.c:4629 +#: ../src/iop/filmicrgb.c:4693 msgid "" "choose the desired curvature of the filmic spline in highlights.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -16915,7 +17523,7 @@ "twarda używa silnej krzywizny, dającej większą kompresję tonalną.\n" "miękka używa łagodnej krzywizny, dającej mniejszą kompresję tonalną." -#: ../src/iop/filmicrgb.c:4634 +#: ../src/iop/filmicrgb.c:4698 msgid "" "choose the desired curvature of the filmic spline in shadows.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -16925,7 +17533,7 @@ "twarda używa silnej krzywizny, dającej większą kompresję tonalną.\n" "miękka używa łagodnej krzywizny, dającej mniejszą kompresję tonalną." -#: ../src/iop/filmicrgb.c:4641 +#: ../src/iop/filmicrgb.c:4705 #, no-c-format msgid "" "enable to input custom middle-gray values.\n" @@ -16938,7 +17546,7 @@ "lepiej ustawić odpowiednią wartość w module ekspozycji\n" "wyłącz aby użyć standardowej wartości 18.45% jako tonów średnich." -#: ../src/iop/filmicrgb.c:4648 +#: ../src/iop/filmicrgb.c:4712 msgid "" "enable to auto-set the look hardness depending on the scene white and black " "points.\n" @@ -16951,7 +17559,7 @@ "i ułatwia szybkie dostrajanie parametrów.\n" "wyłącz, jeśli chcesz ustawić ręcznie." -#: ../src/iop/filmicrgb.c:4654 +#: ../src/iop/filmicrgb.c:4718 msgid "" "run extra passes of chromaticity reconstruction.\n" "more iterations means more color propagation from neighborhood.\n" @@ -16963,7 +17571,7 @@ "to będzie wolniejsze, ale w efekcie światła będą bardziej naturalne.\n" "to również pomaga w trudnych przypadkach prześwietleń w kolorze magenta." -#: ../src/iop/filmicrgb.c:4661 +#: ../src/iop/filmicrgb.c:4725 msgid "" "add statistical noise in reconstructed highlights.\n" "this avoids highlights to look too smooth\n" @@ -16975,7 +17583,7 @@ "gdy obraz jest zaszumiony i powoduje, że\n" "rekonstrukcja wtapia się lepiej w cały obraz." -#: ../src/iop/filmicrgb.c:4668 +#: ../src/iop/filmicrgb.c:4732 msgid "" "choose the statistical distribution of noise.\n" "this is useful to match natural sensor noise pattern." @@ -16983,11 +17591,11 @@ "wybierz rodzaj statystycznego rozkładu szumu.\n" "to pomaga dobrać wygląd szumu do naturalnego szumu sensora." -#: ../src/iop/filmicrgb.c:4736 +#: ../src/iop/filmicrgb.c:4800 msgid "mid-tones saturation" msgstr "nasycenie tonów średnich" -#: ../src/iop/filmicrgb.c:4737 +#: ../src/iop/filmicrgb.c:4801 msgid "" "desaturates the output of the module\n" "specifically at medium luminances.\n" @@ -16997,11 +17605,11 @@ "szczególnie dla tonów średnich.\n" "zwiększ, jeśli tony średnie są niewystarczająco nasycone." -#: ../src/iop/filmicrgb.c:4743 +#: ../src/iop/filmicrgb.c:4807 msgid "highlights saturation mix" msgstr "miks nasycenia świateł" -#: ../src/iop/filmicrgb.c:4744 +#: ../src/iop/filmicrgb.c:4808 msgid "" "positive values ensure saturation is kept unchanged over the whole range.\n" "negative values bleach highlights at constant hue and luminance.\n" @@ -17024,39 +17632,39 @@ msgid "flip or rotate image by step of 90 degrees" msgstr "obróć lub odbij zdjęcie o 90 stopni" -#: ../src/iop/flip.c:477 +#: ../src/iop/flip.c:475 msgid "no rotation" msgstr "brak obrotu" -#: ../src/iop/flip.c:481 ../src/iop/flip.c:624 +#: ../src/iop/flip.c:479 ../src/iop/flip.c:622 msgid "flip horizontally" msgstr "odbicie w poziomie" -#: ../src/iop/flip.c:485 ../src/iop/flip.c:628 +#: ../src/iop/flip.c:483 ../src/iop/flip.c:626 msgid "flip vertically" msgstr "odbicie w pionie" -#: ../src/iop/flip.c:489 +#: ../src/iop/flip.c:487 msgid "rotate by -90 degrees" msgstr "obróć o 90 stopni w lewo" -#: ../src/iop/flip.c:493 +#: ../src/iop/flip.c:491 msgid "rotate by 90 degrees" msgstr "obróć o 90 stopni w prawo" -#: ../src/iop/flip.c:497 +#: ../src/iop/flip.c:495 msgid "rotate by 180 degrees" msgstr "obróć o 180 stopni" -#: ../src/iop/flip.c:612 +#: ../src/iop/flip.c:610 msgid "transform" msgstr "przekształć" -#: ../src/iop/flip.c:616 ../src/libs/live_view.c:293 +#: ../src/iop/flip.c:614 ../src/libs/live_view.c:293 msgid "rotate 90 degrees CCW" msgstr "obróć o 90 stopni w lewo" -#: ../src/iop/flip.c:620 ../src/libs/live_view.c:294 +#: ../src/iop/flip.c:618 ../src/libs/live_view.c:294 msgid "rotate 90 degrees CW" msgstr "obróć o 90 stopni w prawo" @@ -17073,15 +17681,15 @@ msgid "this module is deprecated. please use the filmic rgb module instead." msgstr "ten moduł jest przestarzały. lepiej użyć krzywej filmowej rgb." -#: ../src/iop/globaltonemap.c:625 ../src/libs/filters/colors.c:259 +#: ../src/iop/globaltonemap.c:658 ../src/libs/filters/colors.c:259 msgid "operator" msgstr "operator" -#: ../src/iop/globaltonemap.c:626 +#: ../src/iop/globaltonemap.c:659 msgid "the global tonemap operator" msgstr "operator globalnego mapowania kolorów" -#: ../src/iop/globaltonemap.c:629 +#: ../src/iop/globaltonemap.c:662 msgid "" "the bias for tonemapper controls the linearity, the higher the more details " "in blacks" @@ -17089,7 +17697,7 @@ "bias mapowania kolorów kontroluje liniowość, im większa wartość tym więcej " "detalów w czerni" -#: ../src/iop/globaltonemap.c:633 +#: ../src/iop/globaltonemap.c:666 msgid "the target light for tonemapper specified as cd/m2" msgstr "docelowe światło dla mapowania kolorów określone w cd/m2" @@ -17153,11 +17761,11 @@ msgid "simulate an optical graduated neutral density filter" msgstr "symuluje połówkowy filtr szary (ND)" -#: ../src/iop/graduatednd.c:1114 +#: ../src/iop/graduatednd.c:1083 msgid "the density in EV for the filter" msgstr "wartość przyciemnienia filtra w EV" -#: ../src/iop/graduatednd.c:1119 +#: ../src/iop/graduatednd.c:1088 #, no-c-format msgid "" "hardness of graduation:\n" @@ -17166,55 +17774,55 @@ "kompresja gradientu:\n" "0% = miękki, 100% = twardy" -#: ../src/iop/graduatednd.c:1123 +#: ../src/iop/graduatednd.c:1092 msgid "rotation of filter -180 to 180 degrees" msgstr "obrót filtra -180 do 180 stopni" -#: ../src/iop/graduatednd.c:1136 +#: ../src/iop/graduatednd.c:1105 msgid "select the hue tone of filter" msgstr "odcień filtra" -#: ../src/iop/graduatednd.c:1142 +#: ../src/iop/graduatednd.c:1111 msgid "select the saturation of filter" msgstr "nasycenie filtra" -#: ../src/iop/graduatednd.c:1153 +#: ../src/iop/graduatednd.c:1122 #, c-format msgid "[%s on nodes] change line rotation" msgstr "[%s na węzłach] zmień obrót linii" -#: ../src/iop/graduatednd.c:1154 +#: ../src/iop/graduatednd.c:1123 #, c-format msgid "[%s on line] move line" msgstr "[%s na linii] przesuń linię" -#: ../src/iop/graduatednd.c:1156 +#: ../src/iop/graduatednd.c:1125 #, c-format msgid "[%s on line] change density" msgstr "[%s na linii] zmień gęstość" -#: ../src/iop/graduatednd.c:1158 +#: ../src/iop/graduatednd.c:1127 #, c-format msgid "[%s on line] change hardness" msgstr "[%s na linii] zmień twardość" -#: ../src/iop/grain.c:428 +#: ../src/iop/grain.c:444 msgid "grain" msgstr "ziarno" -#: ../src/iop/grain.c:433 +#: ../src/iop/grain.c:449 msgid "simulate silver grains from film" msgstr "symuluje ziarnistość błony filmowej" -#: ../src/iop/grain.c:582 +#: ../src/iop/grain.c:600 msgid "the grain size (~ISO of the film)" msgstr "rozmiar ziarna (~ISO filmu)" -#: ../src/iop/grain.c:586 +#: ../src/iop/grain.c:604 msgid "the strength of applied grain" msgstr "siła zastosowanego ziarna" -#: ../src/iop/grain.c:590 +#: ../src/iop/grain.c:608 msgid "" "amount of mid-tones bias from the photographic paper response modeling. the " "greater the bias, the more pronounced the fall off of the grain in shadows " @@ -17236,15 +17844,15 @@ msgid "remove fog and atmospheric hazing from pictures" msgstr "usuwa zamglenia z obrazów" -#: ../src/iop/hazeremoval.c:202 +#: ../src/iop/hazeremoval.c:204 msgid "amount of haze reduction" msgstr "ilość usuwania zamglenia" -#: ../src/iop/hazeremoval.c:204 +#: ../src/iop/hazeremoval.c:206 msgid "distance" msgstr "odległość" -#: ../src/iop/hazeremoval.c:206 +#: ../src/iop/hazeremoval.c:208 msgid "limit haze removal up to a specific spatial depth" msgstr "ogranicz usuwanie zamglenia do konkretnego przestrzennego zakresu" @@ -17257,11 +17865,11 @@ msgstr "" "pozwala uniknąć prześwietleń w kolorze magenta oraz przywrócić kolory świateł" -#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:75 +#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:77 msgid "reconstruction, raw" msgstr "rekonstrukcja, raw" -#: ../src/iop/highlights.c:923 +#: ../src/iop/highlights.c:1004 msgid "" "highlights: mode not available for this type of image. falling back to " "inpaint opposed." @@ -17269,15 +17877,22 @@ "światła: tryb niedostępny dla tego typu obrazu. powrót do wmalowania " "przeciwnego." -#: ../src/iop/highlights.c:1101 +#: ../src/iop/highlights.c:1184 msgid "highlight reconstruction method" msgstr "metoda ratowania prześwietleń" -#: ../src/iop/highlights.c:1106 +#: ../src/iop/highlights.c:1189 +#, fuzzy +#| msgid "" +#| "manually adjust the clipping threshold mostly used against magenta " +#| "highlights\n" +#| "the mask icon shows the clipped areas.\n" +#| "you might use this for tuning 'laplacian', 'inpaint opposed' or " +#| "'segmentation' modes,\n" +#| "especially if camera white point is incorrect." msgid "" "manually adjust the clipping threshold mostly used against magenta " -"highlights\n" -"the mask icon shows the clipped areas.\n" +"highlights.\n" "you might use this for tuning 'laplacian', 'inpaint opposed' or " "'segmentation' modes,\n" "especially if camera white point is incorrect." @@ -17288,27 +17903,56 @@ "\"segmentacji\",\n" "szczególnie gdy punkt bieli kamery jest nieprawidłowy." -#: ../src/iop/highlights.c:1117 +#: ../src/iop/highlights.c:1193 +msgid "" +"visualize clipped highlights in a false color representation.\n" +"the effective clipping level also depends on the reconstruction method." +msgstr "" + +#: ../src/iop/highlights.c:1203 +#, fuzzy +#| msgid "" +#| "combine closely related clipped segments by morphological operations.\n" +#| "the mask button shows the exact positions of resulting segment borders." msgid "" "combine closely related clipped segments by morphological operations.\n" -"the mask button shows the exact positions of resulting segment borders." +"this often leads to improved color reconstruction for tiny segments before " +"dark background." msgstr "" "kombinuj blisko skojarzone obcięte segmenty poprzez operacje morfologiczne.\n" "Przycisk maski pokazuje dokładne pozycje wynikowych granic segmentów." -#: ../src/iop/highlights.c:1125 +#: ../src/iop/highlights.c:1206 +msgid "visualize the combined segments in a false color representation." +msgstr "zwizualizuj łączone segmenty w reprezentacji \"false color\"." + +#: ../src/iop/highlights.c:1213 +#, fuzzy +#| msgid "" +#| "select inpainting after segmentation analysis.\n" +#| "increase to favour candidates found in segmentation analysis, decrease " +#| "for opposed means inpainting.\n" +#| "the mask button shows segments that are considered to have a good " +#| "candidate." msgid "" "select inpainting after segmentation analysis.\n" -"increase to favour candidates found in segmentation analysis, decrease for " -"opposed means inpainting.\n" -"the mask button shows segments that are considered to have a good candidate." +"increase to favor candidates found in segmentation analysis, decrease for " +"opposed means inpainting." msgstr "" "wybierz wmalowanie po analizie segmentowej.\n" "zwiększ, aby faworyzować kandydatów znalezionych w analizie segmentowej, " "zmniejsz dla wmalowania przeciwnego.\n" "przycisk maski pokazuje segmenty uznane za dobrych kandydatów." -#: ../src/iop/highlights.c:1136 +#: ../src/iop/highlights.c:1216 +msgid "" +"visualize segments that are considered to have a good candidate in a false " +"color representation." +msgstr "" +"zwizualizuj segmenty uznane za dobrych kandydatów w reprezentacji \"false " +"color\"." + +#: ../src/iop/highlights.c:1225 msgid "" "approximate lost data in regions with all photosites clipped, the effect " "depends on segment size and border gradients.\n" @@ -17328,16 +17972,16 @@ "tryby płaskie ignorują wąskie nieprzepalone struktury (jak linie wysokiego " "napięcia) aby zachować rekonstrukcję świateł i uniknąć gradientu." -#: ../src/iop/highlights.c:1142 -msgid "" -"set strength of rebuilding in regions with all photosites clipped.\n" -"the mask buttons shows the effect that is added to already reconstructed " -"data." +#: ../src/iop/highlights.c:1231 +msgid "set strength of rebuilding in regions with all photosites clipped." msgstr "" -"ustal siłę rekonstrukcji w regionach z przepaleniem na wszystkich kanałach.\n" -"przyciski maski pokazują efekt dodany do już zrekonstruowanego obrazu." +"ustal siłę rekonstrukcji w regionach z przepaleniem na wszystkich kanałach" -#: ../src/iop/highlights.c:1152 +#: ../src/iop/highlights.c:1233 +msgid "show the effect that is added to already reconstructed data." +msgstr "pokaż efekt który jest dodawany do już zrekonstruowanych danych." + +#: ../src/iop/highlights.c:1242 msgid "" "add noise to visually blend the reconstructed areas\n" "into the rest of the noisy image. useful at high ISO." @@ -17345,7 +17989,7 @@ "dodaj szumu aby wizualnie wtopić odtworzone obszary\n" "pośród zaszumionego obrazu. użyteczne przy wysokich nastawach ISO." -#: ../src/iop/highlights.c:1156 +#: ../src/iop/highlights.c:1246 msgid "" "increase if magenta highlights don't get fully corrected\n" "each new iteration brings a performance penalty." @@ -17353,7 +17997,7 @@ "zwiększ, jeśli magenta w światłach nie jest w pełni skorygowana\n" "każda iteracja wiąż się ze spowolnieniem potoku przetwarzania." -#: ../src/iop/highlights.c:1161 +#: ../src/iop/highlights.c:1251 msgid "" "increase if magenta highlights don't get fully corrected.\n" "this may produce non-smooth boundaries between valid and clipped regions." @@ -17362,7 +18006,7 @@ "może generować wyraźne granice między prawidłowymi a prześwietlonymi " "regionami." -#: ../src/iop/highlights.c:1165 +#: ../src/iop/highlights.c:1255 msgid "" "increase to correct larger clipped areas.\n" "large values bring huge performance penalties" @@ -17370,9 +18014,9 @@ "zwiększ aby skorygować większy obszar prześwietlenia.\n" "duże wartości mogą mocno spowolnić przetwarzanie." -#: ../src/iop/highlights.c:1169 -msgid "this module only works with non-monochrome RAW and sRAW" -msgstr "ten moduł działa tylko z kolorowymi plikami RAW i sRAW" +#: ../src/iop/highlights.c:1259 +msgid "this module does not work with monochrome RAW files" +msgstr "ten moduł działa tylko z kolorowymi plikami RAW" #: ../src/iop/highpass.c:72 msgid "highpass" @@ -17382,37 +18026,37 @@ msgid "isolate high frequencies in the image" msgstr "wyodrębnia z obrazu wysokie częstotliwości (szczegóły)" -#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:135 +#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:107 msgid "linear or non-linear, Lab, scene-referred" msgstr "liniowe lub nieliniowe, Lab, scenocentryczny" -#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:136 ../src/iop/sharpen.c:96 +#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:108 ../src/iop/sharpen.c:98 msgid "frequential, Lab" msgstr "częstotliwościowy, Lab" -#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:137 +#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:109 msgid "special, Lab, scene-referred" msgstr "specjalny, Lab, scenocentryczny" -#: ../src/iop/highpass.c:383 +#: ../src/iop/highpass.c:378 msgid "the sharpness of highpass filter" msgstr "ostrość filtra górnoprzepustowego" -#: ../src/iop/highpass.c:387 +#: ../src/iop/highpass.c:382 msgid "the contrast of highpass filter" msgstr "kontrast filtra górnoprzepustowego" -#: ../src/iop/hotpixels.c:67 +#: ../src/iop/hotpixels.c:69 msgid "hot pixels" msgstr "gorące piksele" -#: ../src/iop/hotpixels.c:72 +#: ../src/iop/hotpixels.c:74 msgid "remove abnormally bright pixels by dampening them with neighbors" msgstr "" "usuwa nienaturalnie jasne piksele przez tłumienie ich wartościami pikseli " "sąsiadujących" -#: ../src/iop/hotpixels.c:363 +#: ../src/iop/hotpixels.c:442 #, c-format msgid "fixed %d pixel" msgid_plural "fixed %d pixels" @@ -17420,15 +18064,15 @@ msgstr[1] "naprawiono %d piksele" msgstr[2] "naprawiono %d pikseli" -#: ../src/iop/hotpixels.c:386 +#: ../src/iop/hotpixels.c:465 msgid "lower threshold for hot pixel" msgstr "próg dolny dla gorących pikseli" -#: ../src/iop/hotpixels.c:390 +#: ../src/iop/hotpixels.c:469 msgid "strength of hot pixel correction" msgstr "siła korekcji gorących pikseli" -#: ../src/iop/hotpixels.c:406 +#: ../src/iop/hotpixels.c:485 msgid "" "hot pixel correction\n" "only works for raw images." @@ -17436,62 +18080,62 @@ "korekcja gorących pikseli\n" "działa tylko dla plików raw." -#: ../src/iop/invert.c:92 ../src/iop/invert.c:427 +#: ../src/iop/invert.c:106 ../src/iop/invert.c:442 #, c-format msgid "`%s' color matrix not found for 4bayer image" msgstr "nie znaleziono macierzy koloru „%s” dla zdjęcia 4bayer" -#: ../src/iop/invert.c:108 +#: ../src/iop/invert.c:125 msgid "invert" msgstr "odwracanie" -#: ../src/iop/invert.c:113 +#: ../src/iop/invert.c:130 msgid "this module is deprecated. please use the negadoctor module instead." msgstr "ten moduł jest przestarzały. lepiej użyć doktora negatywów." -#: ../src/iop/invert.c:118 +#: ../src/iop/invert.c:135 msgid "invert film negatives" msgstr "odwraca negatywy" -#: ../src/iop/invert.c:120 ../src/iop/invert.c:122 +#: ../src/iop/invert.c:137 ../src/iop/invert.c:139 msgid "linear, raw, display-referred" msgstr "liniowe, raw, ekranocentryczny" #. Here we could provide more for monochrome special cases. As no monochrome camera #. has a bayer sensor we don't need g->RGB_to_CAM and g->CAM_to_RGB corrections -#: ../src/iop/invert.c:412 +#: ../src/iop/invert.c:427 msgid "brightness of film material" msgstr "jasność materiału filmu" -#: ../src/iop/invert.c:416 +#: ../src/iop/invert.c:431 msgid "color of film material" msgstr "kolor materiału filmu" -#: ../src/iop/invert.c:500 ../src/iop/negadoctor.c:847 +#: ../src/iop/invert.c:515 ../src/iop/negadoctor.c:866 msgid "pick color of film material from image" msgstr "pobierz kursorem kolor materiału filmu z obrazu" -#: ../src/iop/invert.c:502 +#: ../src/iop/invert.c:517 msgid "select color of film material" msgstr "wybierz kolor materiału filmu" -#: ../src/iop/lens.cc:230 +#: ../src/iop/lens.cc:251 msgid "lens correction" msgstr "korekcja obiektywu" -#: ../src/iop/lens.cc:235 +#: ../src/iop/lens.cc:256 msgid "vignette|chromatic aberrations|distortion" msgstr "winietowanie|aberracje" -#: ../src/iop/lens.cc:240 +#: ../src/iop/lens.cc:261 msgid "correct lenses optical flaws" msgstr "koryguje optyczne niedoskonałości obiektywów" -#: ../src/iop/lens.cc:243 +#: ../src/iop/lens.cc:264 msgid "geometric and reconstruction, RGB" msgstr "geometryczne i rekonstrukcyjne, RGB" -#: ../src/iop/lens.cc:3148 +#: ../src/iop/lens.cc:3773 #, c-format msgid "" "maker:\t\t%s\n" @@ -17504,7 +18148,7 @@ "mocowanie:\t\t%s\n" "mnożnik ogniskowej:\t%.1f" -#: ../src/iop/lens.cc:3396 +#: ../src/iop/lens.cc:4026 #, c-format msgid "" "maker:\t\t%s\n" @@ -17523,31 +18167,31 @@ "typ:\t\t\t\t\t\t%s\n" "mocowania:\t\t\t%s" -#: ../src/iop/lens.cc:3442 +#: ../src/iop/lens.cc:4072 msgid "focal length (mm)" msgstr "ogniskowa (mm)" -#: ../src/iop/lens.cc:3468 +#: ../src/iop/lens.cc:4098 msgid "f/" msgstr "f/" -#: ../src/iop/lens.cc:3469 +#: ../src/iop/lens.cc:4099 msgid "f-number (aperture)" msgstr "przysłona" -#: ../src/iop/lens.cc:3485 +#: ../src/iop/lens.cc:4115 msgid "d" msgstr "d" -#: ../src/iop/lens.cc:3486 +#: ../src/iop/lens.cc:4116 msgid "distance to subject" msgstr "odległość do fotografowanego obiektu" -#: ../src/iop/lens.cc:3645 +#: ../src/iop/lens.cc:4277 msgid "camera/lens not found" msgstr "aparat/obiektyw nie znaleziony" -#: ../src/iop/lens.cc:3646 +#: ../src/iop/lens.cc:4278 msgid "" "please select your lens manually\n" "you might also want to check if your Lensfun database is up-to-date\n" @@ -17557,45 +18201,51 @@ "możesz także sprawdzić czy Twoja baza danych lensfun jest aktualna\n" "poprzez uruchomienie lensfun-update-data" -#: ../src/iop/lens.cc:3769 +#: ../src/iop/lens.cc:4423 msgid "camera model" msgstr "model aparatu" -#: ../src/iop/lens.cc:3774 +#: ../src/iop/lens.cc:4428 msgid "find camera" msgstr "znajdź aparat" -#: ../src/iop/lens.cc:3789 +#: ../src/iop/lens.cc:4443 msgid "find lens" msgstr "znajdź obiektyw" #. scale -#: ../src/iop/lens.cc:3823 ../src/iop/vignette.c:968 -#: ../src/iop/watermark.c:1324 ../src/libs/export.c:1165 +#: ../src/iop/lens.cc:4477 ../src/iop/vignette.c:1055 +#: ../src/iop/watermark.c:1372 ../src/libs/export.c:1264 msgid "scale" msgstr "skala" -#: ../src/iop/lens.cc:3828 +#: ../src/iop/lens.cc:4482 msgid "auto scale" msgstr "skaluj automatycznie" -#: ../src/iop/lens.cc:3832 +#: ../src/iop/lens.cc:4484 +msgid "automatic scale to available image size due to Lensfun data" +msgstr "" +"automatycznie skaluj do dostępnego rozmiaru obrazu na podstawie danych bazy " +"Lensfun" + +#: ../src/iop/lens.cc:4488 msgid "correct distortions or apply them" msgstr "skoryguj zniekształcenia lub zastosuj je" -#: ../src/iop/lens.cc:3839 +#: ../src/iop/lens.cc:4495 msgid "transversal chromatic aberration red" msgstr "poprzeczna aberracja chromatyczna czerwonego" -#: ../src/iop/lens.cc:3843 +#: ../src/iop/lens.cc:4499 msgid "transversal chromatic aberration blue" msgstr "poprzeczna aberracja chromatyczna niebieskiego" -#: ../src/iop/lens.cc:3849 +#: ../src/iop/lens.cc:4509 msgid "use latest algorithm" msgstr "użyj najnowszego algorytmu" -#: ../src/iop/lens.cc:3851 +#: ../src/iop/lens.cc:4511 msgid "" "you're using an old version of the algorithm.\n" "once enabled, you won't be able to\n" @@ -17605,92 +18255,143 @@ "po uruchomieniu nowej, nie będzie możliwości\n" "powrotu do starego alorytmu." -#: ../src/iop/lens.cc:3860 +#: ../src/iop/lens.cc:4521 +msgid "fine-tuning" +msgstr "dostrajanie" + +#. DT_IOP_SECTION_FOR_PARAMS doesn't work in C++ so create section module manually +#: ../src/iop/lens.cc:4526 +msgid "fine-tune" +msgstr "dostrajanie" + +#: ../src/iop/lens.cc:4532 msgid "tune the warp and chromatic aberration correction" msgstr "ustawienie interpolacji i korekty aberracji chromatycznej" -#: ../src/iop/lens.cc:3864 +#: ../src/iop/lens.cc:4536 msgid "tune the vignette correction" msgstr "ustawienie korekcji winietowania" -#: ../src/iop/lens.cc:3868 +#: ../src/iop/lens.cc:4540 msgid "tune the TCA red correction" msgstr "dostrajanie czerwieni w korekcie aberracji chromatycznej" -#: ../src/iop/lens.cc:3872 +#: ../src/iop/lens.cc:4544 msgid "tune the TCA blue correction" msgstr "dostrajanie czerwieni w korekcie aberracji chromatycznej" -#: ../src/iop/lens.cc:3879 +#: ../src/iop/lens.cc:4551 msgid "image scaling" msgstr "skalowanie obrazu" -#: ../src/iop/lens.cc:3891 +#: ../src/iop/lens.cc:4553 +msgid "automatic scale to available image size" +msgstr "automatycznie skaluj do dostępnego rozmiaru obrazu" + +#: ../src/iop/lens.cc:4561 +msgid "" +"select a correction mode either based on\n" +" a) data and algorithms provided by the Lensfun project\n" +" b) embedded metadata provided by the camera or software vendor" +msgstr "" +"wybierz tryb korekcji na podstawie\n" +"a) danych i algorytmów z projektu Lensfun\n" +"b) osadzonych metadanych producenta aparatu lub oprogramowania" + +#: ../src/iop/lens.cc:4568 msgid "which corrections to apply" msgstr "jakie korekcje zastosować" -#: ../src/iop/lens.cc:3904 +#: ../src/iop/lens.cc:4574 msgid "corrections done: " msgstr "zastosowane korekcje: " -#: ../src/iop/lens.cc:3906 +#: ../src/iop/lens.cc:4576 msgid "which corrections have actually been done" msgstr "jakie korekcje zostały rzeczywiście zastosowane" +#: ../src/iop/lens.cc:4595 +msgid "manual vignette correction" +msgstr "manualna korekcja winietowania" + +#: ../src/iop/lens.cc:4599 +msgid "additional manually controlled optical vignetting correction" +msgstr "dodatkowa manualnie sterowana korekcja winietowania" + +#: ../src/iop/lens.cc:4602 +msgid "vignette" +msgstr "winietowanie" + +#: ../src/iop/lens.cc:4606 +msgid "amount of the applied optical vignetting correction" +msgstr "moc korekcji winietowania" + +#: ../src/iop/lens.cc:4608 +msgid "show applied optical vignette correction mask" +msgstr "wyświetl użytą maskę do korekcji winietowania obiektwu" + +#: ../src/iop/lens.cc:4618 +msgid "radius of uncorrected centre" +msgstr "promień niekorygowanego centrum" + +#: ../src/iop/lens.cc:4624 +msgid "steepness of the correction effect outside of radius" +msgstr "stromość efektu korekcji poza promieniem" + #: ../src/iop/levels.c:112 msgid "this module is deprecated. please use the RGB levels module instead." msgstr "ten moduł jest przestarzały. lepiej użyć modułu poziomy RGB" -#: ../src/iop/levels.c:117 ../src/iop/levels.c:630 ../src/iop/rgblevels.c:984 -#: ../src/iop/rgblevels.c:1014 +#: ../src/iop/levels.c:117 ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1022 +#: ../src/iop/rgblevels.c:1056 msgid "levels" msgstr "poziomy" -#: ../src/iop/levels.c:137 +#: ../src/iop/levels.c:139 msgid "adjust black, white and mid-gray points" msgstr "dostosuj punkty czerni, bieli i tonów średnich" -#: ../src/iop/levels.c:628 ../src/iop/rgblevels.c:1016 +#: ../src/iop/levels.c:644 ../src/iop/rgblevels.c:1059 msgid "" "drag handles to set black, gray, and white points. operates on L channel." msgstr "" "przeciągaj, aby ustawić punkty czerni, szarości i bieli. działa na kanale L." -#: ../src/iop/levels.c:642 ../src/iop/rgblevels.c:1052 +#: ../src/iop/levels.c:658 ../src/iop/rgblevels.c:1108 msgid "apply auto levels" msgstr "ustaw poziomy automatycznie" -#: ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1027 +#: ../src/iop/levels.c:662 ../src/iop/rgblevels.c:1077 msgid "pick black point from image" msgstr "pobierz punkt czerni ze zdjęcia" -#: ../src/iop/levels.c:650 ../src/iop/rgblevels.c:1033 +#: ../src/iop/levels.c:666 ../src/iop/rgblevels.c:1085 msgid "pick medium gray point from image" msgstr "pobierz punkt średniej szarości ze zdjęcia" -#: ../src/iop/levels.c:654 ../src/iop/rgblevels.c:1039 +#: ../src/iop/levels.c:670 ../src/iop/rgblevels.c:1093 msgid "pick white point from image" msgstr "pobierz punkt bieli ze zdjęcia" -#: ../src/iop/levels.c:667 ../src/iop/rgblevels.c:936 -#: ../src/iop/rgblevels.c:1026 +#: ../src/iop/levels.c:683 ../src/iop/rgblevels.c:968 +#: ../src/iop/rgblevels.c:1075 msgid "black" msgstr "czerń" -#: ../src/iop/levels.c:668 +#: ../src/iop/levels.c:684 msgid "black percentile" msgstr "procent czarnego" -#: ../src/iop/levels.c:672 +#: ../src/iop/levels.c:688 msgid "gray percentile" msgstr "procent szarego" -#: ../src/iop/levels.c:675 ../src/iop/rgblevels.c:938 -#: ../src/iop/rgblevels.c:1038 +#: ../src/iop/levels.c:691 ../src/iop/rgblevels.c:970 +#: ../src/iop/rgblevels.c:1091 msgid "white" msgstr "biały" -#: ../src/iop/levels.c:676 +#: ../src/iop/levels.c:692 msgid "white percentile" msgstr "procent białego" @@ -17702,41 +18403,41 @@ msgid "distort parts of the image" msgstr "pozwala zniekształcać fragmenty obrazu" -#: ../src/iop/liquify.c:2933 +#: ../src/iop/liquify.c:2895 msgid "click to edit nodes" msgstr "kliknij, żeby edytować węzły" -#: ../src/iop/liquify.c:3636 +#: ../src/iop/liquify.c:3599 msgid "" "<b>add point</b>: click and drag\n" -"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: ctrl" -"+scroll" +"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " +"ctrl+scroll" msgstr "" "<b>dodaj punkt</b>: kliknij i przeciągnij\n" "<b>rozmiar</b>: przewiń - <b>strength</b>: przewiń z Shift- <b>kierunek</b>: " "Ctrl+przewiń" -#: ../src/iop/liquify.c:3639 +#: ../src/iop/liquify.c:3602 msgid "" "<b>add line</b>: click\n" -"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: ctrl" -"+scroll" +"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " +"ctrl+scroll" msgstr "" "<b>dodaj linię</b>: klik\n" -"<b>rozmiar</b>: przewiń - <b>siła</b>:Shift+przewiń - <b>kierunek</b>: Ctrl" -"+przewiń" +"<b>rozmiar</b>: przewiń - <b>siła</b>:Shift+przewiń - <b>kierunek</b>: " +"Ctrl+przewiń" -#: ../src/iop/liquify.c:3642 +#: ../src/iop/liquify.c:3605 msgid "" "<b>add curve</b>: click\n" -"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: ctrl" -"+scroll" +"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " +"ctrl+scroll" msgstr "" "<b>add line</b>: click\n" -"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: ctrl" -"+scroll" +"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " +"ctrl+scroll" -#: ../src/iop/liquify.c:3693 +#: ../src/iop/liquify.c:3656 msgid "" "use a tool to add warps\n" "<b>remove a warp</b>: right-click" @@ -17744,48 +18445,48 @@ "użyj narzędzia, żeby dodawać zniekształcenia.\n" "<b>usuń zniekształcenie</b>: prawy klik" -#: ../src/iop/liquify.c:3696 +#: ../src/iop/liquify.c:3659 msgid "warps|nodes count:" msgstr "ilość zniekształceń/węzłów:" -#: ../src/iop/liquify.c:3705 +#: ../src/iop/liquify.c:3668 msgid "edit, add and delete nodes" msgstr "edycja, dodawanie i kasowanie węzłów" -#: ../src/iop/liquify.c:3710 ../src/iop/liquify.c:3716 -#: ../src/iop/liquify.c:3722 ../src/iop/retouch.c:2238 -#: ../src/iop/retouch.c:2242 ../src/iop/retouch.c:2246 -#: ../src/iop/retouch.c:2250 ../src/iop/spots.c:883 ../src/iop/spots.c:888 -#: ../src/iop/spots.c:893 ../src/libs/masks.c:1816 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1834 ../src/libs/masks.c:1843 ../src/libs/masks.c:1852 +#: ../src/iop/liquify.c:3673 ../src/iop/liquify.c:3679 +#: ../src/iop/liquify.c:3685 ../src/iop/retouch.c:2465 +#: ../src/iop/retouch.c:2471 ../src/iop/retouch.c:2476 +#: ../src/iop/retouch.c:2481 ../src/iop/spots.c:885 ../src/iop/spots.c:890 +#: ../src/iop/spots.c:895 ../src/libs/masks.c:1812 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1830 ../src/libs/masks.c:1839 ../src/libs/masks.c:1848 msgid "shapes" msgstr "kształty" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw curves" msgstr "rysuj krzywe" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw multiple curves" msgstr "rysuj wiele krzywych" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw lines" msgstr "rysuj linie" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw multiple lines" msgstr "rysuj wiele linii" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw points" msgstr "rysuj punkty" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw multiple points" msgstr "rysuj wiele punktów" -#: ../src/iop/liquify.c:3729 +#: ../src/iop/liquify.c:3692 msgid "" "<b>add node</b>: ctrl+click - <b>remove path</b>: right click\n" "<b>toggle line/curve</b>: ctrl+alt+click" @@ -17793,7 +18494,7 @@ "<b>dodaj węzeł</b>: Ctrl+klik-<b>usunięcie ścieżki</b>: prawy klik\n" "<b>przełącznik węzła: linie/łuki</b>: Ctrl+Alt+klik" -#: ../src/iop/liquify.c:3732 +#: ../src/iop/liquify.c:3695 msgid "" "<b>move</b>: click and drag - <b>show/hide feathering controls</b>: click\n" "<b>autosmooth, cusp, smooth, symmetrical</b>: ctrl+click - <b>remove</b>: " @@ -17804,23 +18505,23 @@ "<b>autosmooth, cusp, smooth, symmetrical</b>: ctrl+click - <b>remove</b>: " "right click" -#: ../src/iop/liquify.c:3736 ../src/iop/liquify.c:3738 +#: ../src/iop/liquify.c:3699 ../src/iop/liquify.c:3701 msgid "<b>shape of path</b>: drag" msgstr "<b>kształt ścieżki</b>: przeciągnij" -#: ../src/iop/liquify.c:3740 +#: ../src/iop/liquify.c:3703 msgid "<b>radius</b>: drag" msgstr "<b>promień</b>: przeciągnij" -#: ../src/iop/liquify.c:3742 +#: ../src/iop/liquify.c:3705 msgid "<b>hardness (center)</b>: drag" msgstr "<b>twardość (centrum)</b>: przeciągnij" -#: ../src/iop/liquify.c:3744 +#: ../src/iop/liquify.c:3707 msgid "<b>hardness (feather)</b>: drag" msgstr "<b>twardość (wtapianie)</b>: przeciągnij" -#: ../src/iop/liquify.c:3746 +#: ../src/iop/liquify.c:3709 msgid "" "<b>strength</b>: drag\n" "<b>linear, grow, and shrink</b>: ctrl+click" @@ -17840,238 +18541,238 @@ msgid "linear, XYZ" msgstr "liniowe XYZ" -#: ../src/iop/lowlight.c:341 +#: ../src/iop/lowlight.c:338 msgid "indoor bright" msgstr "jasne wnętrze" -#: ../src/iop/lowlight.c:359 +#: ../src/iop/lowlight.c:356 msgid "indoor dim" msgstr "przyciemnione wnętrze" -#: ../src/iop/lowlight.c:377 +#: ../src/iop/lowlight.c:374 msgid "indoor dark" msgstr "ciemne wnętrze" -#: ../src/iop/lowlight.c:395 +#: ../src/iop/lowlight.c:392 msgid "twilight" msgstr "zmrok" -#: ../src/iop/lowlight.c:413 +#: ../src/iop/lowlight.c:410 msgid "night street lit" msgstr "oświetlona ulica nocą" -#: ../src/iop/lowlight.c:431 +#: ../src/iop/lowlight.c:428 msgid "night street" msgstr "ulica nocą" -#: ../src/iop/lowlight.c:449 +#: ../src/iop/lowlight.c:446 msgid "night street dark" msgstr "ciemna ulica nocą" -#: ../src/iop/lowlight.c:468 +#: ../src/iop/lowlight.c:465 msgid "night" msgstr "noc" -#: ../src/iop/lowlight.c:641 +#: ../src/iop/lowlight.c:639 msgid "dark" msgstr "ciemne" -#: ../src/iop/lowlight.c:649 +#: ../src/iop/lowlight.c:647 msgid "bright" msgstr "jasne" -#: ../src/iop/lowlight.c:658 +#: ../src/iop/lowlight.c:656 msgid "day vision" msgstr "dzienne widzenie" -#: ../src/iop/lowlight.c:663 +#: ../src/iop/lowlight.c:661 msgid "night vision" msgstr "nocne widzenie" -#: ../src/iop/lowlight.c:835 +#: ../src/iop/lowlight.c:833 msgid "blueness in shadows" msgstr "zaniebieszczenie w cieniach" -#: ../src/iop/lowpass.c:128 +#: ../src/iop/lowpass.c:100 msgid "lowpass" msgstr "filtr dolnoprzepustowy" -#: ../src/iop/lowpass.c:133 +#: ../src/iop/lowpass.c:105 msgid "isolate low frequencies in the image" msgstr "wyodrębnia z obrazu niskie częstotliwości" -#: ../src/iop/lowpass.c:565 +#: ../src/iop/lowpass.c:578 msgid "local contrast mask" msgstr "miejscowe maskowanie kontrastu" -#: ../src/iop/lowpass.c:590 +#: ../src/iop/lowpass.c:603 msgid "radius of gaussian/bilateral blur" msgstr "promień rozmycia gaussa/bilateralnego" -#: ../src/iop/lowpass.c:591 +#: ../src/iop/lowpass.c:604 msgid "contrast of lowpass filter" msgstr "kontrast filtra dolnoprzepustowego" -#: ../src/iop/lowpass.c:592 +#: ../src/iop/lowpass.c:605 msgid "brightness adjustment of lowpass filter" msgstr "jasność filtra dolnoprzepustowego" -#: ../src/iop/lowpass.c:593 +#: ../src/iop/lowpass.c:606 msgid "color saturation of lowpass filter" msgstr "nasycenie koloru filtra dolnoprzepustowego" -#: ../src/iop/lowpass.c:594 +#: ../src/iop/lowpass.c:607 msgid "which filter to use for blurring" msgstr "filtr używany do rozmycia" -#: ../src/iop/lut3d.c:135 +#: ../src/iop/lut3d.c:136 msgid "LUT 3D" msgstr "LUT 3D" -#: ../src/iop/lut3d.c:140 +#: ../src/iop/lut3d.c:141 msgid "perform color space corrections and apply look" msgstr "wykonuje korekcję przestrzeni koloru i zmienia wygląd obrazu" -#: ../src/iop/lut3d.c:143 +#: ../src/iop/lut3d.c:144 msgid "defined by profile, RGB" msgstr "zdefiniowany przez profil, RGB" -#: ../src/iop/lut3d.c:468 +#: ../src/iop/lut3d.c:486 msgid "error allocating buffer for gmz LUT" msgstr "alokacja bufora dla gmz LUT nie powiodła się" -#: ../src/iop/lut3d.c:494 +#: ../src/iop/lut3d.c:512 #, c-format msgid "invalid png file %s" msgstr "niewłaściwy plik png: %s" -#: ../src/iop/lut3d.c:502 +#: ../src/iop/lut3d.c:520 #, c-format -msgid "png bit-depth %d not supported" +msgid "png bit depth %d is not supported" msgstr "png o głębi %d bitów nie jest obsługiwany" -#: ../src/iop/lut3d.c:516 ../src/iop/lut3d.c:526 +#: ../src/iop/lut3d.c:534 ../src/iop/lut3d.c:544 #, c-format msgid "invalid level in png file %d %d" msgstr "niewłaściwy poziom w pliku png %d %d" -#: ../src/iop/lut3d.c:521 +#: ../src/iop/lut3d.c:539 msgid "this darktable build is not compatible with compressed CLUT" msgstr "ta wersja darktable nie jest kompatybilna ze skompresowanymi CLUT" -#: ../src/iop/lut3d.c:538 ../src/iop/lut3d.c:788 +#: ../src/iop/lut3d.c:556 ../src/iop/lut3d.c:808 #, c-format msgid "error - LUT 3D size %d exceeds the maximum supported" msgstr "" "błąd - lut 3D o rozmiarze %d przekracza maksymalny dopuszczalny rozmiar" -#: ../src/iop/lut3d.c:550 +#: ../src/iop/lut3d.c:568 msgid "error allocating buffer for png LUT" msgstr "alokacja bufora dla png LUT nie powiodła się" -#: ../src/iop/lut3d.c:558 +#: ../src/iop/lut3d.c:576 #, c-format msgid "error - could not read png image %s" msgstr "błąd przy wczytywaniu obrazu png „%s”" -#: ../src/iop/lut3d.c:568 +#: ../src/iop/lut3d.c:586 msgid "error - allocating buffer for png LUT" msgstr "alokacja bufora dla png LUT nie powiodła się" -#: ../src/iop/lut3d.c:743 +#: ../src/iop/lut3d.c:761 #, c-format msgid "error - invalid cube file: %s" msgstr "błąd: niewłaściwy plik cube: %s" -#: ../src/iop/lut3d.c:757 -msgid "DOMAIN MIN <> 0.0 is not supported" -msgstr "DOMAIN MIN <> 0.0 nie jest obsługiwany" - -#: ../src/iop/lut3d.c:768 -msgid "DOMAIN MAX <> 1.0 is not supported" -msgstr "DOMAIN MAX <> 1.0 nie jest obsługiwany" +#: ../src/iop/lut3d.c:775 +msgid "DOMAIN MIN other than 0 is not supported" +msgstr "DOMAIN MIN inne od 0 nie jest obsługiwane" + +#: ../src/iop/lut3d.c:787 +msgid "DOMAIN MAX other than 1 is not supported" +msgstr "DOMAIN MAX inny od 1 nie jest obsługiwany" -#: ../src/iop/lut3d.c:777 +#: ../src/iop/lut3d.c:797 msgid "1D cube LUT is not supported" msgstr "LUT 1D nie jest obsługiwany" -#: ../src/iop/lut3d.c:799 +#: ../src/iop/lut3d.c:819 msgid "error - allocating buffer for cube LUT" msgstr "błąd: alokacja bufora dla LUT 3D nie powiodła się" -#: ../src/iop/lut3d.c:810 +#: ../src/iop/lut3d.c:830 msgid "error - cube LUT size is not defined" msgstr "błąd: rozmiar LUT 3D jest niezdefiniowany" -#: ../src/iop/lut3d.c:821 +#: ../src/iop/lut3d.c:841 #, c-format msgid "error - cube LUT invalid number line %d" msgstr "błąd: liczba linii LUT 3D jest niewłaściwa %d" -#: ../src/iop/lut3d.c:837 +#: ../src/iop/lut3d.c:857 #, c-format msgid "error - cube LUT lines number %d is not correct, should be %d" msgstr "błąd: liczba linii LUT 3D %d jest niewłaściwa, powinno być %d" -#: ../src/iop/lut3d.c:847 +#: ../src/iop/lut3d.c:867 #, c-format msgid "warning - cube LUT has %d values out of range [0,1]" msgstr "uwaga: wartości cube LUT %d są spoza zakresu [0, 1]" -#: ../src/iop/lut3d.c:872 +#: ../src/iop/lut3d.c:892 #, c-format msgid "error - invalid 3dl file: %s" msgstr "błąd - niewłaściwy plik 3dl: %s" -#: ../src/iop/lut3d.c:893 +#: ../src/iop/lut3d.c:913 #, c-format msgid "error - the maximum shaper LUT value %d is too low" msgstr "błąd - wartość maksymalna dla shapera LUT %d jest zbyt niska" -#: ../src/iop/lut3d.c:904 +#: ../src/iop/lut3d.c:924 msgid "error - allocating buffer for 3dl LUT" msgstr "błąd - alokacja bufora dla 3dl LUT nie powiodła się" -#: ../src/iop/lut3d.c:917 +#: ../src/iop/lut3d.c:937 msgid "error - 3dl LUT size is not defined" msgstr "błąd: rozmiar 3dl LUT jest niezdefiniowany" -#: ../src/iop/lut3d.c:945 +#: ../src/iop/lut3d.c:965 msgid "error - 3dl LUT lines number is not correct" msgstr "błąd: liczba linii 3dl LUT jest niewłaściwa" -#: ../src/iop/lut3d.c:961 +#: ../src/iop/lut3d.c:981 msgid "error - the maximum LUT value does not match any valid bit depth" msgstr "" "błąd - wartość maksymalna LUT nie pasuje do żadnej rozdzielczości bitowej" -#: ../src/iop/lut3d.c:1539 +#: ../src/iop/lut3d.c:1553 msgid "LUT root folder not defined" msgstr "główny katalog z plikami LUT nie został wybrany" -#: ../src/iop/lut3d.c:1545 +#: ../src/iop/lut3d.c:1559 msgid "select LUT file" msgstr "wybór plikutabeli LUT" -#: ../src/iop/lut3d.c:1546 +#: ../src/iop/lut3d.c:1560 msgid "_select" msgstr "_wybierz" -#: ../src/iop/lut3d.c:1566 +#: ../src/iop/lut3d.c:1580 msgid "hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" msgstr "" "pliki hald CLUT (png), 3D lut (cube lub 3dl) lub skompresowane lut gmic-a " "(gmz)" -#: ../src/iop/lut3d.c:1568 +#: ../src/iop/lut3d.c:1582 msgid "hald CLUT (png) or 3D LUT (cube or 3dl)" msgstr "hald CLUT (png) lub 3D lut (cube lub 3dl)" -#: ../src/iop/lut3d.c:1592 +#: ../src/iop/lut3d.c:1606 msgid "select file outside LUT root folder is not allowed" msgstr "wybieranie pliku spoza głównego katalogu LUT jest niedozwolone" -#: ../src/iop/lut3d.c:1663 +#: ../src/iop/lut3d.c:1677 msgid "" "select a png (haldclut), a cube, a 3dl or a gmz (compressed LUT) file " "CAUTION: 3D LUT folder must be set in preferences/processing before choosing " @@ -18081,7 +18782,7 @@ "ostrzeżenie: folder 3D LUT musi być ustawiony w ustawieniach przetwarzania " "przed wyborem pliku LUT" -#: ../src/iop/lut3d.c:1667 +#: ../src/iop/lut3d.c:1681 msgid "" "select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be " "set in preferences/processing before choosing the LUT file" @@ -18089,7 +18790,7 @@ "wybierz plik png (haldclut), cube lub 3dl. UWAGA: folder 3D LUT musi być " "ustawiony w: ustawienia/przetwarzanie przed wybraniem pliku LUT" -#: ../src/iop/lut3d.c:1679 +#: ../src/iop/lut3d.c:1693 msgid "" "the file path (relative to LUT folder) is saved with image along with the " "LUT data if it's a compressed LUT (gmz)" @@ -18097,7 +18798,7 @@ "ścieżka do pliku (względem folderu LUT) zapisywana jest wraz z obrazem oraz " "zapisywane są dane LUT jeśli dane lut są skompresowane (gmz)" -#: ../src/iop/lut3d.c:1682 +#: ../src/iop/lut3d.c:1696 msgid "" "the file path (relative to LUT folder) is saved with image (and not the LUT " "data themselves)" @@ -18105,45 +18806,45 @@ "wraz z obrazem zapisywana jest ścieżka do pliku (względem folderu LUT), a " "nie dane LUT" -#: ../src/iop/lut3d.c:1691 +#: ../src/iop/lut3d.c:1705 msgid "enter LUT name" msgstr "wprowadź nazwę LUT" -#: ../src/iop/lut3d.c:1712 +#: ../src/iop/lut3d.c:1726 msgid "select the LUT" msgstr "wybierz LUT" -#: ../src/iop/lut3d.c:1725 +#: ../src/iop/lut3d.c:1739 msgid "select the color space in which the LUT has to be applied" msgstr "wybierz przestrzeń kolorów w której LUT zostanie zaaplikowany" -#: ../src/iop/lut3d.c:1727 +#: ../src/iop/lut3d.c:1741 msgid "interpolation" msgstr "metoda interpolacji" -#: ../src/iop/lut3d.c:1728 +#: ../src/iop/lut3d.c:1742 msgid "select the interpolation method" msgstr "wybierz metodę interpolacji" -#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:62 +#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:63 msgid "mask manager" msgstr "manager masek" -#: ../src/iop/monochrome.c:97 +#: ../src/iop/monochrome.c:99 msgid "quickly convert an image to black & white using a variable color filter" msgstr "" "szybko konwertuje obraz do monochromatycznego używając zmiennego filtra " "koloru" -#: ../src/iop/monochrome.c:127 +#: ../src/iop/monochrome.c:153 msgid "red filter" msgstr "filtr czerwony" -#: ../src/iop/monochrome.c:546 +#: ../src/iop/monochrome.c:568 msgid "drag and scroll mouse wheel to adjust the virtual color filter" msgstr "przeciągaj i przewijaj, aby ustawić wirtualny filtr koloru" -#: ../src/iop/monochrome.c:562 +#: ../src/iop/monochrome.c:584 msgid "how much to keep highlights" msgstr "ilość pozostawionych świateł" @@ -18159,35 +18860,35 @@ msgid "invert film negative scans and simulate printing on paper" msgstr "odwraca skany negatywów i symuluje wykonywanie odbitek" -#: ../src/iop/negadoctor.c:469 +#: ../src/iop/negadoctor.c:483 msgid "D min" msgstr "D min" -#: ../src/iop/negadoctor.c:475 ../src/iop/negadoctor.c:856 +#: ../src/iop/negadoctor.c:489 ../src/iop/negadoctor.c:875 msgid "D min red component" msgstr "D min (czerwony)" #. Page FILM PROPERTIES -#: ../src/iop/negadoctor.c:832 +#: ../src/iop/negadoctor.c:851 msgid "film properties" msgstr "film" #. Dmin -#: ../src/iop/negadoctor.c:836 +#: ../src/iop/negadoctor.c:855 msgctxt "section" msgid "color of the film base" msgstr "kolor materiału filmu" -#: ../src/iop/negadoctor.c:842 +#: ../src/iop/negadoctor.c:861 msgid "select color of film material from a swatch" msgstr "wybierz kolor materiału filmu" -#: ../src/iop/negadoctor.c:848 +#: ../src/iop/negadoctor.c:867 msgid "film material" msgstr "materiał filmu" -#: ../src/iop/negadoctor.c:857 ../src/iop/negadoctor.c:867 -#: ../src/iop/negadoctor.c:877 +#: ../src/iop/negadoctor.c:876 ../src/iop/negadoctor.c:886 +#: ../src/iop/negadoctor.c:896 msgid "" "adjust the color and shade of the film transparent base.\n" "this value depends on the film material, \n" @@ -18199,21 +18900,21 @@ "zamglenia powstałego w procesie wywoływania,\n" "oraz balansu bieli skanera." -#: ../src/iop/negadoctor.c:866 +#: ../src/iop/negadoctor.c:885 msgid "D min green component" msgstr "D min (zielony)" -#: ../src/iop/negadoctor.c:876 +#: ../src/iop/negadoctor.c:895 msgid "D min blue component" msgstr "D min (niebieski)" #. D max and scanner bias -#: ../src/iop/negadoctor.c:884 +#: ../src/iop/negadoctor.c:903 msgctxt "section" msgid "dynamic range of the film" msgstr "rozpiętość tonalna filmu" -#: ../src/iop/negadoctor.c:888 +#: ../src/iop/negadoctor.c:907 msgid "" "maximum density of the film, corresponding to white after inversion.\n" "this value depends on the film specifications, the developing process,\n" @@ -18223,12 +18924,12 @@ "ta wartość zależy od specyfikacji filmu, procesu wywoływania,\n" "rozpiętości dynamicznej sceny oraz ustawień skanera." -#: ../src/iop/negadoctor.c:892 +#: ../src/iop/negadoctor.c:911 msgctxt "section" msgid "scanner exposure settings" msgstr "ustawienia ekspozycji skanera" -#: ../src/iop/negadoctor.c:896 +#: ../src/iop/negadoctor.c:915 msgid "" "correct the exposure of the scanner, for all RGB channels,\n" "before the inversion, so blacks are neither clipped or too pale." @@ -18237,25 +18938,25 @@ "przed inwersją, tak, aby czernie nie były ani wypalone, ani zbyt jasne." #. WB shadows -#: ../src/iop/negadoctor.c:903 +#: ../src/iop/negadoctor.c:922 msgctxt "section" msgid "shadows color cast" msgstr "zafarb w cieniach" -#: ../src/iop/negadoctor.c:909 +#: ../src/iop/negadoctor.c:928 msgid "select color of shadows from a swatch" msgstr "wybierz kolor cieni z palety" -#: ../src/iop/negadoctor.c:914 +#: ../src/iop/negadoctor.c:933 msgid "pick shadows color from image" msgstr "wybierz kolor cieni ze zdjęcia" -#: ../src/iop/negadoctor.c:920 +#: ../src/iop/negadoctor.c:939 msgid "shadows red offset" msgstr "czerwony" -#: ../src/iop/negadoctor.c:921 ../src/iop/negadoctor.c:928 -#: ../src/iop/negadoctor.c:935 +#: ../src/iop/negadoctor.c:940 ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:954 msgid "" "correct the color cast in shadows so blacks are\n" "truly achromatic. Setting this value before\n" @@ -18267,34 +18968,34 @@ "korekcją świateł ułatwi przywrócenie globalnego balansu\n" "bieli w trudnych przypadkach." -#: ../src/iop/negadoctor.c:927 +#: ../src/iop/negadoctor.c:946 msgid "shadows green offset" msgstr "zielony" -#: ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:953 msgid "shadows blue offset" msgstr "niebieski" #. WB highlights -#: ../src/iop/negadoctor.c:941 +#: ../src/iop/negadoctor.c:960 msgctxt "section" msgid "highlights white balance" msgstr "balans bieli świateł" -#: ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:966 msgid "select color of illuminant from a swatch" msgstr "wybierz kolor świateł z palety" -#: ../src/iop/negadoctor.c:952 +#: ../src/iop/negadoctor.c:971 msgid "pick illuminant color from image" msgstr "wybierz kolor świateł ze zdjęcia" -#: ../src/iop/negadoctor.c:958 +#: ../src/iop/negadoctor.c:977 msgid "illuminant red gain" msgstr "czerwony" -#: ../src/iop/negadoctor.c:959 ../src/iop/negadoctor.c:966 -#: ../src/iop/negadoctor.c:973 +#: ../src/iop/negadoctor.c:978 ../src/iop/negadoctor.c:985 +#: ../src/iop/negadoctor.c:992 msgid "" "correct the color of the illuminant so whites are\n" "truly achromatic. Setting this value after\n" @@ -18306,26 +19007,26 @@ "korekcją cieni ułatwi przywrócenie globalnego balansu\n" "bieli w trudnych przypadkach." -#: ../src/iop/negadoctor.c:965 +#: ../src/iop/negadoctor.c:984 msgid "illuminant green gain" msgstr "zielony" -#: ../src/iop/negadoctor.c:972 +#: ../src/iop/negadoctor.c:991 msgid "illuminant blue gain" msgstr "niebieski" #. Page PRINT PROPERTIES -#: ../src/iop/negadoctor.c:979 +#: ../src/iop/negadoctor.c:998 msgid "print properties" msgstr "odbitka" #. print corrections -#: ../src/iop/negadoctor.c:982 +#: ../src/iop/negadoctor.c:1001 msgctxt "section" msgid "virtual paper properties" msgstr "właściwości cyfrowego papieru" -#: ../src/iop/negadoctor.c:988 +#: ../src/iop/negadoctor.c:1007 msgid "" "correct the density of black after the inversion,\n" "to adjust the global contrast while avoiding clipping shadows." @@ -18333,7 +19034,7 @@ "skoryguj poziom czerni po inwersji, aby dostosować\n" "kontrast globalny, unikając jednocześnie utraty detali w cieniach." -#: ../src/iop/negadoctor.c:993 +#: ../src/iop/negadoctor.c:1012 msgid "" "select the grade of the virtual paper, which is actually\n" "equivalent to applying a gamma. it compensates the film D max\n" @@ -18344,7 +19045,7 @@ "skompensować maksymalną gęstość (D max) filmu\n" "i przywrócić kontrast. użyj wyższej gradacji dla wyższych D max." -#: ../src/iop/negadoctor.c:1001 +#: ../src/iop/negadoctor.c:1020 msgid "" "gradually compress specular highlights past this value\n" "to avoid clipping while pushing the exposure for mid-tones.\n" @@ -18355,12 +19056,12 @@ "średnich.\n" "to w pewien sposób symuluje zachowanie matowego papieru." -#: ../src/iop/negadoctor.c:1005 +#: ../src/iop/negadoctor.c:1024 msgctxt "section" msgid "virtual print emulation" msgstr "cyfrowa emulacja wydruku" -#: ../src/iop/negadoctor.c:1012 +#: ../src/iop/negadoctor.c:1031 msgid "" "correct the printing exposure after inversion to adjust\n" "the global contrast and avoid clipping highlights." @@ -18368,51 +19069,83 @@ "skoryguj ekspozycję odbitki po inwersji, aby dostosować\n" "globalny kontrast i uniknąć prześwietleń." -#: ../src/iop/negadoctor.c:1020 +#: ../src/iop/negadoctor.c:1039 msgid "toggle on or off the color controls" msgstr "włącz/wyłącz kontrolki koloru" -#: ../src/iop/nlmeans.c:84 +#: ../src/iop/nlmeans.c:78 msgid "astrophoto denoise" msgstr "odszumianie astrofotograficzne" -#: ../src/iop/nlmeans.c:89 +#: ../src/iop/nlmeans.c:83 msgid "denoise (non-local means)" msgstr "odszumianie (średnie nielokalne)" -#: ../src/iop/nlmeans.c:94 +#: ../src/iop/nlmeans.c:88 msgid "apply a poisson noise removal best suited for astrophotography" msgstr "stosuje odszumianie poissona nadające się dobrze do astrofotografii" -#: ../src/iop/nlmeans.c:459 +#: ../src/iop/nlmeans.c:462 msgid "radius of the patches to match" msgstr "promień łatek do dopasowania" -#: ../src/iop/nlmeans.c:467 +#: ../src/iop/nlmeans.c:470 msgid "how much to smooth brightness" msgstr "wygładzenie jasności" -#: ../src/iop/nlmeans.c:470 +#: ../src/iop/nlmeans.c:473 msgid "how much to smooth colors" msgstr "wygładzenie kolorów" #. * let's fill the encapsulating widgets #. preview mode #. color scheme -#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2419 -#: ../src/views/darkroom.c:2437 ../src/views/darkroom.c:2444 -#: ../src/views/darkroom.c:2454 ../src/views/darkroom.c:2471 +#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2258 +#: ../src/views/darkroom.c:2276 ../src/views/darkroom.c:2283 +#: ../src/views/darkroom.c:2293 ../src/views/darkroom.c:2310 msgid "overexposed" msgstr "prześwietlenie" -#: ../src/iop/overexposed.c:130 ../src/iop/overexposed.c:360 +#: ../src/iop/overexposed.c:123 ../src/iop/overexposed.c:352 msgid "module overexposed failed in buffer allocation" msgstr "moduł prześwietlenia nie mógł zaalokować bufora" -#: ../src/iop/overexposed.c:156 ../src/iop/overexposed.c:370 +#: ../src/iop/overexposed.c:149 ../src/iop/overexposed.c:362 msgid "module overexposed failed in color conversion" msgstr "moduł prześwietlenia nie mógł dokonać konwersji koloru" +#: ../src/iop/primaries.c:74 +msgid "rgb primaries" +msgstr "barwy podstawowe rgb" + +#: ../src/iop/primaries.c:79 +msgid "adjustment of the RGB color primaries for color grading" +msgstr "ustawienia barw podstawowych RGB dla stylizacji" + +#: ../src/iop/primaries.c:395 +msgid "shift red towards yellow or magenta" +msgstr "przesuń czerwienie w żółcie lub magentę" + +#: ../src/iop/primaries.c:396 +msgid "red primary purity" +msgstr "czystość składowej czerwonej" + +#: ../src/iop/primaries.c:397 +msgid "shift green towards cyan or yellow" +msgstr "przesuń zieleń w cyjan lub żółty" + +#: ../src/iop/primaries.c:398 +msgid "green primary purity" +msgstr "czystość składowej zielonej" + +#: ../src/iop/primaries.c:399 +msgid "shift blue towards magenta or cyan" +msgstr "przesuń niebieski w magentę lub cyjan" + +#: ../src/iop/primaries.c:400 +msgid "blue primary purity" +msgstr "czystość składowej niebieskiej" + #: ../src/iop/profile_gamma.c:96 msgid "unbreak input profile" msgstr "naprawa profilu wejściowego" @@ -18423,39 +19156,39 @@ "koryguje wejściowe profile kolorów przeznaczone do aplikacji\n" "w nieliniowej przestrzeni RGB" -#: ../src/iop/profile_gamma.c:136 +#: ../src/iop/profile_gamma.c:138 msgid "16 EV dynamic range (generic)" msgstr "rozpiętość tonalna 16 EV (generyczna)" -#: ../src/iop/profile_gamma.c:142 +#: ../src/iop/profile_gamma.c:144 msgid "14 EV dynamic range (generic)" msgstr "rozpiętość tonalna 14 EV (generyczna)" -#: ../src/iop/profile_gamma.c:148 +#: ../src/iop/profile_gamma.c:150 msgid "12 EV dynamic range (generic)" msgstr "rozpiętość tonalna 12 EV (generyczna)" -#: ../src/iop/profile_gamma.c:154 +#: ../src/iop/profile_gamma.c:156 msgid "10 EV dynamic range (generic)" msgstr "rozpiętość tonalna 10 EV (generyczna)" -#: ../src/iop/profile_gamma.c:160 +#: ../src/iop/profile_gamma.c:162 msgid "08 EV dynamic range (generic)" msgstr "rozpiętość tonalna 08 EV (generyczna)" -#: ../src/iop/profile_gamma.c:623 +#: ../src/iop/profile_gamma.c:637 msgid "linear part" msgstr "część liniowa" -#: ../src/iop/profile_gamma.c:627 +#: ../src/iop/profile_gamma.c:641 msgid "gamma exponential factor" msgstr "współczynnik wykładniczy gamma" -#: ../src/iop/profile_gamma.c:638 +#: ../src/iop/profile_gamma.c:652 msgid "adjust to match the average luma of the subject" msgstr "zmień, aby dopasować średnia lumę obiektu" -#: ../src/iop/profile_gamma.c:644 +#: ../src/iop/profile_gamma.c:658 msgid "" "number of stops between middle gray and pure black\n" "this is a reading a light meter would give you on the scene" @@ -18463,7 +19196,7 @@ "ilość działek przesłony między średnią szarością, a czystą czernią.\n" "jest to wskazanie, które w tej scenie dałby światłomierz" -#: ../src/iop/profile_gamma.c:650 +#: ../src/iop/profile_gamma.c:664 msgid "" "number of stops between pure black and pure white\n" "this is a reading a light meter would give you on the scene" @@ -18471,36 +19204,36 @@ "ilość działek przesłony między czystą czernią, a czystą bielą.\n" "jest to wskazanie, które w tej scenie dałby światłomierz" -#: ../src/iop/profile_gamma.c:652 +#: ../src/iop/profile_gamma.c:666 msgctxt "section" msgid "optimize automatically" msgstr "zoptymalizuj automatycznie" -#: ../src/iop/profile_gamma.c:656 +#: ../src/iop/profile_gamma.c:670 msgid "" -"enlarge or shrink the computed dynamic range\n" -"this is useful when noise perturbates the measurements" +"increase or decrease the computed dynamic range\n" +"this is useful when noise distorts the measurement" msgstr "" "zwiększ lub zmniejsz wyliczoną rozpiętość tonalną\n" "przydatne, gdy szum zaburza pomiar" -#: ../src/iop/profile_gamma.c:660 +#: ../src/iop/profile_gamma.c:674 msgid "make an optimization with some guessing" msgstr "dokonaj optymalizacji z odrobiną zgadywania" -#: ../src/iop/profile_gamma.c:669 +#: ../src/iop/profile_gamma.c:683 msgid "tone mapping method" msgstr "metoda mapowania tonów" -#: ../src/iop/rawdenoise.c:124 +#: ../src/iop/rawdenoise.c:138 msgid "raw denoise" msgstr "odszumianie (raw)" -#: ../src/iop/rawdenoise.c:129 +#: ../src/iop/rawdenoise.c:143 msgid "denoise the raw picture early in the pipeline" msgstr "odszumia obraz raw na wczesnym etapie przetwarzania" -#: ../src/iop/rawdenoise.c:939 +#: ../src/iop/rawdenoise.c:955 msgid "" "raw denoising\n" "only works for raw images." @@ -18510,9 +19243,9 @@ #. * let's fill the encapsulating widgets #. mode of operation -#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2387 ../src/views/darkroom.c:2393 -#: ../src/views/darkroom.c:2406 +#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2226 ../src/views/darkroom.c:2232 +#: ../src/views/darkroom.c:2245 msgid "raw overexposed" msgstr "prześwietlenie raw" @@ -18521,7 +19254,7 @@ msgid "raw black/white point" msgstr "punkt czerni/bieli raw" -#: ../src/iop/rawprepare.c:156 +#: ../src/iop/rawprepare.c:172 msgid "" "sets technical specificities of the raw sensor.\n" "touch with great care!" @@ -18530,63 +19263,63 @@ "\n" "używaj bardzo ostrożnie!" -#: ../src/iop/rawprepare.c:168 +#: ../src/iop/rawprepare.c:184 msgid "passthrough" msgstr "bez modyfikacji" -#: ../src/iop/rawprepare.c:655 +#: ../src/iop/rawprepare.c:663 msgid "invalid crop parameters" msgstr "niewłaściwe parametry przycięcia" -#: ../src/iop/rawprepare.c:656 +#: ../src/iop/rawprepare.c:664 msgid "" "please reset to defaults, update your preset or set to something correct" msgstr "" "proszę zresetować do domyślnych, zaktualizować preset, lub ustawić coś " "prawidłowego" -#: ../src/iop/rawprepare.c:922 +#: ../src/iop/rawprepare.c:930 msgid "black level 0" msgstr "poziom czerni 0" -#: ../src/iop/rawprepare.c:923 +#: ../src/iop/rawprepare.c:931 msgid "black level 1" msgstr "poziom czerni 1" -#: ../src/iop/rawprepare.c:924 +#: ../src/iop/rawprepare.c:932 msgid "black level 2" msgstr "poziom czerni 2" -#: ../src/iop/rawprepare.c:925 +#: ../src/iop/rawprepare.c:933 msgid "black level 3" msgstr "poziom czerni 3" -#: ../src/iop/rawprepare.c:952 +#: ../src/iop/rawprepare.c:960 msgid "raw flat field correction to compensate for lens shading" msgstr "korekcja płaskiego pola w celu skompensowania zacienienia obiektywu" -#: ../src/iop/rawprepare.c:957 +#: ../src/iop/rawprepare.c:965 msgctxt "section" msgid "crop" msgstr "przycięcie" -#: ../src/iop/rawprepare.c:960 +#: ../src/iop/rawprepare.c:968 msgid "crop left border" msgstr "wykadruj od lewej krawędzi" -#: ../src/iop/rawprepare.c:964 +#: ../src/iop/rawprepare.c:972 msgid "crop top border" msgstr "wykadruj od górnej krawędzi" -#: ../src/iop/rawprepare.c:968 +#: ../src/iop/rawprepare.c:976 msgid "crop right border" msgstr "wykadruj od prawej krawędzi" -#: ../src/iop/rawprepare.c:972 +#: ../src/iop/rawprepare.c:980 msgid "crop bottom border" msgstr "wykadruj od dolnej krawędzi" -#: ../src/iop/rawprepare.c:981 +#: ../src/iop/rawprepare.c:989 msgid "" "raw black/white point correction\n" "only works for the sensors that need it." @@ -18611,11 +19344,11 @@ "this module is deprecated. please use the tone equalizer module instead." msgstr "ten moduł jest przestarzały. lepiej użyć korektora tonów." -#: ../src/iop/relight.c:263 +#: ../src/iop/relight.c:259 msgid "the fill-light in EV" msgstr "światło wypełniające w jednostkach EV" -#: ../src/iop/relight.c:272 +#: ../src/iop/relight.c:268 msgid "" "select the center of fill-light\n" "ctrl+click to select an area" @@ -18623,16 +19356,11 @@ "wybór centrum światła wypełniającego\n" "kliknij z ctrl, aby zaznaczyć obszar" -#: ../src/iop/relight.c:276 +#: ../src/iop/relight.c:272 msgid "toggle tool for picking median lightness in image" msgstr "narzędzie do pobierania mediany jasności z obrazu" -#: ../src/iop/relight.c:279 ../src/libs/export.c:1131 -#: ../src/libs/metadata_view.c:147 ../src/libs/print_settings.c:2537 -msgid "width" -msgstr "szerokość" - -#: ../src/iop/relight.c:280 +#: ../src/iop/relight.c:276 msgid "width of fill-light area defined in zones" msgstr "szerokość obszaru wypełnienia światłem określona w strefach" @@ -18654,29 +19382,29 @@ msgid "geometric and frequential, RGB" msgstr "geometryczny i częstotliwościowy, RGB" -#: ../src/iop/retouch.c:1538 +#: ../src/iop/retouch.c:1689 msgid "cannot display scales when the blending mask is displayed" msgstr "nie można wyświetlić skal, gdy wyświetlana jest maska mieszania" -#: ../src/iop/retouch.c:1861 ../src/iop/retouch.c:1863 -#: ../src/iop/retouch.c:1865 ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2045 ../src/iop/retouch.c:2047 +#: ../src/iop/retouch.c:2049 ../src/iop/retouch.c:2051 #, c-format msgid "default tool changed to %s" msgstr "zmieniono domyślne narzędzie na %s" -#: ../src/iop/retouch.c:1861 +#: ../src/iop/retouch.c:2045 msgid "cloning" msgstr "klonowanie" -#: ../src/iop/retouch.c:1863 +#: ../src/iop/retouch.c:2047 msgid "healing" msgstr "naprawianie" -#: ../src/iop/retouch.c:2226 +#: ../src/iop/retouch.c:2448 msgid "shapes:" msgstr "kształty:" -#: ../src/iop/retouch.c:2230 +#: ../src/iop/retouch.c:2454 msgid "" "to add a shape select an algorithm and a shape type and click on the image.\n" "shapes are added to the current scale" @@ -18684,77 +19412,73 @@ "aby dodać kształt, wybierz algorytm i typ kształtu i kliknij na zdjęcie.\n" "kształty są dodawane do bieżącej skali" -#. display & suppress masks -#. copy/paste shapes -#. display final image/current scale -#. auto-levels button -#: ../src/iop/retouch.c:2233 ../src/iop/retouch.c:2334 -#: ../src/iop/retouch.c:2339 ../src/iop/retouch.c:2347 -#: ../src/iop/retouch.c:2351 ../src/iop/retouch.c:2358 -#: ../src/iop/retouch.c:2392 +#: ../src/iop/retouch.c:2458 ../src/iop/retouch.c:2591 +#: ../src/iop/retouch.c:2597 ../src/iop/retouch.c:2606 +#: ../src/iop/retouch.c:2611 ../src/iop/retouch.c:2619 +#: ../src/iop/retouch.c:2664 msgid "editing" msgstr "edycja" -#: ../src/iop/retouch.c:2233 +#: ../src/iop/retouch.c:2459 msgid "show and edit shapes on the current scale" msgstr "pokaż i edytuj kształty w bieżącej skali" -#: ../src/iop/retouch.c:2234 +#: ../src/iop/retouch.c:2460 msgid "show and edit shapes in restricted mode" msgstr "pokaż i edytuj kształty w trybie ograniczonym" -#: ../src/iop/retouch.c:2257 +#: ../src/iop/retouch.c:2489 msgid "algorithms:" msgstr "algorytmy:" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2498 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2510 msgid "tools" msgstr "narzędzia" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2278 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2518 msgid "activate blur tool" msgstr "włącza narzędzie rozmywania" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2493 ../src/iop/retouch.c:2499 +#: ../src/iop/retouch.c:2505 ../src/iop/retouch.c:2511 msgid "change algorithm for current form" msgstr "zmień algorytm na obecną formę" -#: ../src/iop/retouch.c:2264 ../src/iop/retouch.c:2281 +#: ../src/iop/retouch.c:2498 ../src/iop/retouch.c:2521 msgid "activate fill tool" msgstr "włącza narzędzie wypełniania" -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2284 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2524 msgid "activate cloning tool" msgstr "włącza narzędzie klonowania" -#: ../src/iop/retouch.c:2272 ../src/iop/retouch.c:2287 +#: ../src/iop/retouch.c:2510 ../src/iop/retouch.c:2527 msgid "activate healing tool" msgstr "włącza narzędzie łatki" #. overwrite tooltip ourself to handle shift+click -#: ../src/iop/retouch.c:2276 +#: ../src/iop/retouch.c:2516 msgid "ctrl+click to change tool for current form" msgstr "kliknij wciskając Ctrl aby zmienić narzędzie dla bieżącej formy" -#: ../src/iop/retouch.c:2277 +#: ../src/iop/retouch.c:2517 msgid "shift+click to set the tool as default" msgstr "shift+klik ustawia narzędzie jako domyślne" -#: ../src/iop/retouch.c:2296 +#: ../src/iop/retouch.c:2537 msgid "scales:" msgstr "skale:" -#: ../src/iop/retouch.c:2301 +#: ../src/iop/retouch.c:2544 msgid "current:" msgstr "bieżąca:" -#: ../src/iop/retouch.c:2306 +#: ../src/iop/retouch.c:2551 msgid "merge from:" msgstr "połącz od:" -#: ../src/iop/retouch.c:2314 +#: ../src/iop/retouch.c:2562 msgid "" "top slider adjusts where the merge scales start\n" "bottom slider adjusts the number of scales\n" @@ -18768,44 +19492,44 @@ "górna linia wskazuje, że skala jest widoczna w aktualnym powiększeniu\n" "dolna linia wskazuje, że na tej skali są dodane kształty" -#: ../src/iop/retouch.c:2334 +#: ../src/iop/retouch.c:2591 msgid "display masks" msgstr "wyświetl maski" -#: ../src/iop/retouch.c:2339 +#: ../src/iop/retouch.c:2597 msgid "temporarily switch off shapes" msgstr "tymczasowo wyłącz kształty" -#: ../src/iop/retouch.c:2347 +#: ../src/iop/retouch.c:2606 msgid "paste cut shapes to current scale" msgstr "wklej wycięte kształty do aktualnej skali" -#: ../src/iop/retouch.c:2351 +#: ../src/iop/retouch.c:2611 msgid "cut shapes from current scale" msgstr "wytnij kształty z bieżącej skali" -#: ../src/iop/retouch.c:2358 +#: ../src/iop/retouch.c:2619 msgid "display wavelet scale" msgstr "wyświetl skalę falkową" -#: ../src/iop/retouch.c:2366 +#: ../src/iop/retouch.c:2627 msgctxt "section" msgid "preview single scale" msgstr "podgląd pojedynczej skali" -#: ../src/iop/retouch.c:2377 +#: ../src/iop/retouch.c:2641 msgid "adjust preview levels" msgstr "dopasuj poziomy podglądu" -#: ../src/iop/retouch.c:2392 ../src/iop/rgblevels.c:1051 +#: ../src/iop/retouch.c:2664 ../src/iop/rgblevels.c:1106 msgid "auto levels" msgstr "automatyczne poziomy" -#: ../src/iop/retouch.c:2400 +#: ../src/iop/retouch.c:2672 msgid "shape selected:" msgstr "wybrany kształt:" -#: ../src/iop/retouch.c:2405 +#: ../src/iop/retouch.c:2678 msgid "" "click on a shape to select it,\n" "to unselect click on an empty space" @@ -18813,61 +19537,61 @@ "kliknij na kształt, żeby go zaznaczyć,\n" "żeby odznaczyć, kliknij na wolnym miejscu" -#: ../src/iop/retouch.c:2412 +#: ../src/iop/retouch.c:2687 msgid "erase the detail or fills with chosen color" msgstr "usuń detal lub wypełnij go wybranym kolorem" -#: ../src/iop/retouch.c:2419 +#: ../src/iop/retouch.c:2697 msgid "fill color: " msgstr "kolor wypełniania: " -#: ../src/iop/retouch.c:2424 ../src/iop/retouch.c:2425 +#: ../src/iop/retouch.c:2702 ../src/iop/retouch.c:2703 msgid "select fill color" msgstr "wybierz kolor wypełniania" -#: ../src/iop/retouch.c:2430 +#: ../src/iop/retouch.c:2713 msgid "pick fill color from image" msgstr "pobierz kolor wypełniania ze zdjęcia" -#: ../src/iop/retouch.c:2431 +#: ../src/iop/retouch.c:2714 msgid "pick fill color" msgstr "wybierz kolor wypełnienia" -#: ../src/iop/retouch.c:2439 +#: ../src/iop/retouch.c:2724 msgid "adjusts color brightness to fine-tune it. works with erase as well" msgstr "" "zmień jasność koloru w celu precyzyjnego dostrojenia. działa także z „usuń”" -#: ../src/iop/retouch.c:2445 +#: ../src/iop/retouch.c:2730 msgid "type for the blur algorithm" msgstr "rodzaj algorytmu rozmywania" -#: ../src/iop/retouch.c:2449 +#: ../src/iop/retouch.c:2734 msgid "radius of the selected blur type" msgstr "promień wybranego rodzaju rozmycia" -#: ../src/iop/retouch.c:2455 +#: ../src/iop/retouch.c:2741 msgid "set the opacity on the selected shape" msgstr "ustaw krycie wybranego kształtu" -#: ../src/iop/retouch.c:2461 +#: ../src/iop/retouch.c:2748 msgctxt "section" msgid "retouch tools" msgstr "narzędzia do retuszu" #. wavelet decompose -#: ../src/iop/retouch.c:2470 +#: ../src/iop/retouch.c:2757 msgctxt "section" msgid "wavelet decompose" msgstr "rozkład falkowy" #. shapes -#: ../src/iop/retouch.c:2484 +#: ../src/iop/retouch.c:2771 msgctxt "section" msgid "shapes" msgstr "kształty" -#: ../src/iop/retouch.c:3589 ../src/iop/retouch.c:4427 +#: ../src/iop/retouch.c:3986 ../src/iop/retouch.c:4956 #, c-format msgid "max scale is %i for this image size" msgstr "maksymalna skala dla tego zdjęcia to %i" @@ -18876,59 +19600,59 @@ msgid "rgb curve" msgstr "krzywa rgb" -#: ../src/iop/rgbcurve.c:142 +#: ../src/iop/rgbcurve.c:144 msgid "alter an image’s tones using curves in RGB color space" msgstr "zmienia tonalność obrazu używając krzywych w przestrzeni RGB" -#: ../src/iop/rgbcurve.c:193 ../src/iop/tonecurve.c:548 +#: ../src/iop/rgbcurve.c:195 ../src/iop/tonecurve.c:569 msgid "gamma 1.0 (linear)" msgstr "gamma 1.0 (liniowa)" -#: ../src/iop/rgbcurve.c:203 ../src/iop/tonecurve.c:558 +#: ../src/iop/rgbcurve.c:205 ../src/iop/tonecurve.c:579 msgid "contrast - med (linear)" msgstr "kontrast - średni (liniowy)" -#: ../src/iop/rgbcurve.c:212 ../src/iop/tonecurve.c:567 +#: ../src/iop/rgbcurve.c:214 ../src/iop/tonecurve.c:588 msgid "contrast - high (linear)" msgstr "kontrast - wysoki (liniowy)" -#: ../src/iop/rgbcurve.c:226 ../src/iop/tonecurve.c:579 +#: ../src/iop/rgbcurve.c:228 ../src/iop/tonecurve.c:600 msgid "contrast - med (gamma 2.2)" msgstr "kontrast - średni (gamma 2.2)" -#: ../src/iop/rgbcurve.c:239 ../src/iop/tonecurve.c:590 +#: ../src/iop/rgbcurve.c:241 ../src/iop/tonecurve.c:611 msgid "contrast - high (gamma 2.2)" msgstr "kontrast - wysoki (gamma 2.2)" -#: ../src/iop/rgbcurve.c:252 ../src/iop/tonecurve.c:603 +#: ../src/iop/rgbcurve.c:254 ../src/iop/tonecurve.c:624 msgid "gamma 2.0" msgstr "gamma 2.0" -#: ../src/iop/rgbcurve.c:258 ../src/iop/tonecurve.c:609 +#: ../src/iop/rgbcurve.c:260 ../src/iop/tonecurve.c:630 msgid "gamma 0.5" msgstr "gamma 0.5" -#: ../src/iop/rgbcurve.c:263 ../src/iop/tonecurve.c:614 +#: ../src/iop/rgbcurve.c:265 ../src/iop/tonecurve.c:635 msgid "logarithm (base 2)" msgstr "logarytmiczna (podstawa 2)" -#: ../src/iop/rgbcurve.c:268 ../src/iop/tonecurve.c:619 +#: ../src/iop/rgbcurve.c:270 ../src/iop/tonecurve.c:640 msgid "exponential (base 2)" msgstr "wykładnicza (podstawa 2)" -#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:999 +#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:1038 msgid "choose between linked and independent channels." msgstr "wybierz pomiędzy połączonymi i niezależnymi kanałami." -#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1003 +#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1043 msgid "curve nodes for r channel" msgstr "węzły krzywej dla kanału r" -#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1004 +#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1044 msgid "curve nodes for g channel" msgstr "węzły krzywej dla kanału g" -#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1005 +#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1045 msgid "curve nodes for b channel" msgstr "węzły krzywej dla kanału b" @@ -18936,15 +19660,15 @@ msgid "rgb levels" msgstr "poziomy rgb" -#: ../src/iop/rgblevels.c:122 +#: ../src/iop/rgblevels.c:124 msgid "adjust black, white and mid-gray points in RGB color space" msgstr "ustawia punkty czerni, bieli i tonów średnich w przestrzeni RGB" -#: ../src/iop/rgblevels.c:1056 +#: ../src/iop/rgblevels.c:1112 msgid "auto region" msgstr "automatyczny region" -#: ../src/iop/rgblevels.c:1058 +#: ../src/iop/rgblevels.c:1115 msgid "" "apply auto levels based on a region defined by the user\n" "click and drag to draw the area\n" @@ -18960,7 +19684,7 @@ msgid "rotate pixels" msgstr "obracanie pikseli" -#: ../src/iop/rotatepixels.c:97 ../src/iop/scalepixels.c:82 +#: ../src/iop/rotatepixels.c:99 ../src/iop/scalepixels.c:84 msgid "" "internal module to setup technical specificities of raw sensor.\n" "\n" @@ -18970,11 +19694,11 @@ "\n" "jego parametry nie powinny być zmieniane!" -#: ../src/iop/rotatepixels.c:366 +#: ../src/iop/rotatepixels.c:381 msgid "automatic pixel rotation" msgstr "automatyczne obracanie pikseli" -#: ../src/iop/rotatepixels.c:367 +#: ../src/iop/rotatepixels.c:382 msgid "" "automatic pixel rotation\n" "only works for the sensors that need it." @@ -18987,11 +19711,11 @@ msgid "scale pixels" msgstr "skalowanie pikseli" -#: ../src/iop/scalepixels.c:271 +#: ../src/iop/scalepixels.c:281 msgid "automatic pixel scaling" msgstr "automatyczne skalowanie pikseli" -#: ../src/iop/scalepixels.c:272 +#: ../src/iop/scalepixels.c:282 msgid "" "automatic pixel scaling\n" "only works for the sensors that need it." @@ -18999,11 +19723,11 @@ "automatyczne skalowanie pikseli\n" "działa tylko dla sensorów, które tego wymagają." -#: ../src/iop/shadhi.c:175 +#: ../src/iop/shadhi.c:120 msgid "shadows and highlights" msgstr "cienie i światła" -#: ../src/iop/shadhi.c:195 +#: ../src/iop/shadhi.c:142 msgid "" "modify the tonal range of the shadows and highlights\n" "of an image by enhancing local contrast." @@ -19011,27 +19735,27 @@ "modyfikuje zakres tonalny cieni i świateł\n" "przez zwiększenie lokalnego kontrastu." -#: ../src/iop/shadhi.c:676 ../src/iop/splittoning.c:548 +#: ../src/iop/shadhi.c:711 ../src/iop/splittoning.c:544 msgid "compress" msgstr "kompresja" -#: ../src/iop/shadhi.c:683 +#: ../src/iop/shadhi.c:718 msgid "correct shadows" msgstr "korekcja cieni" -#: ../src/iop/shadhi.c:684 +#: ../src/iop/shadhi.c:719 msgid "correct highlights" msgstr "korekcja świateł" -#: ../src/iop/shadhi.c:685 +#: ../src/iop/shadhi.c:720 msgid "shift white point" msgstr "przesunięcie punktu bieli" -#: ../src/iop/shadhi.c:687 +#: ../src/iop/shadhi.c:722 msgid "filter to use for softening. bilateral avoids halos" msgstr "filtr używany do zmiękczenia. bilateralny nie daje efektu halo" -#: ../src/iop/shadhi.c:688 +#: ../src/iop/shadhi.c:723 msgid "" "compress the effect on shadows/highlights and\n" "preserve mid-tones" @@ -19039,11 +19763,11 @@ "kompresuje efekt na światłach/cieniach\n" "oraz zachowuje tony średnie" -#: ../src/iop/shadhi.c:689 +#: ../src/iop/shadhi.c:724 msgid "adjust saturation of shadows" msgstr "regulacja nasycenia dla cieni" -#: ../src/iop/shadhi.c:690 +#: ../src/iop/shadhi.c:725 msgid "adjust saturation of highlights" msgstr "regulacja nasycenia dla świateł" @@ -19052,45 +19776,45 @@ msgid "sharpen" msgstr "wyostrzenie" -#: ../src/iop/sharpen.c:93 +#: ../src/iop/sharpen.c:95 msgid "sharpen the details in the image using a standard UnSharp Mask (USM)" msgstr "wyostrza szczegóły obrazu używając metody USM (UnSharp Mask)" -#: ../src/iop/sharpen.c:95 +#: ../src/iop/sharpen.c:97 msgid "linear or non-linear, Lab, display or scene-referred" msgstr "liniowe lub nieliniowe, Lab, ekrano lub scenocentryczny" -#: ../src/iop/sharpen.c:97 +#: ../src/iop/sharpen.c:99 msgid "quasi-linear, Lab, display or scene-referred" msgstr "quasi-liniowy, Lab, ekrano i scenocentryczny" #. add the preset. #. restrict to raw images -#: ../src/iop/sharpen.c:104 ../src/iop/sharpen.c:108 +#: ../src/iop/sharpen.c:106 ../src/iop/sharpen.c:110 msgid "sharpen" msgstr "wyostrzenie" -#: ../src/iop/sharpen.c:443 +#: ../src/iop/sharpen.c:438 msgid "spatial extent of the unblurring" msgstr "zasięg przestrzenny części nierozmytej" -#: ../src/iop/sharpen.c:447 +#: ../src/iop/sharpen.c:442 msgid "strength of the sharpen" msgstr "siła wyostrzenia" -#: ../src/iop/sharpen.c:451 +#: ../src/iop/sharpen.c:446 msgid "threshold to activate sharpen" msgstr "próg aktywacji wyostrzania" -#: ../src/iop/sigmoid.c:89 +#: ../src/iop/sigmoid.c:195 msgid "sigmoid" msgstr "sigmoidalny" -#: ../src/iop/sigmoid.c:94 +#: ../src/iop/sigmoid.c:200 msgid "tone mapping|view transform|display transform" msgstr "mapowanie tonów|transformacja widoku|transformacja ekranu" -#: ../src/iop/sigmoid.c:99 +#: ../src/iop/sigmoid.c:206 msgid "" "apply a view transform to make a image displayable\n" "on a screen or print. uses a robust and smooth\n" @@ -19100,19 +19824,19 @@ "na ekranie, lub wydruku. używa silnej i gładkiej\n" "krzywej tonalnej z opcjonalnymi opcjami zachowania koloru" -#: ../src/iop/sigmoid.c:155 +#: ../src/iop/sigmoid.c:258 msgid "neutral gray" msgstr "neutralna szarość" -#: ../src/iop/sigmoid.c:160 +#: ../src/iop/sigmoid.c:264 msgid "ACES 100-nit like" msgstr "jak ACES 100-nitów" -#: ../src/iop/sigmoid.c:165 +#: ../src/iop/sigmoid.c:270 msgid "Reinhard" msgstr "Reinhard" -#: ../src/iop/sigmoid.c:683 +#: ../src/iop/sigmoid.c:917 msgid "" "compression of the applied curve\n" "implicitly defines the supported input dynamic range" @@ -19120,7 +19844,7 @@ "kompresja zaaplikowanej krzywej\n" "bezpośrednio definiuje obsługiwaną wejściową dynamikę tonalną" -#: ../src/iop/sigmoid.c:686 +#: ../src/iop/sigmoid.c:920 msgid "" "shift the compression towards shadows or highlights.\n" "negative values increase contrast in shadows.\n" @@ -19132,7 +19856,7 @@ "dodatnie wartości podnoszą kontrast w światłach.\n" "przeciwny koniec dozna redukcji kontrastu." -#: ../src/iop/sigmoid.c:695 +#: ../src/iop/sigmoid.c:929 msgid "" "optional correction of the hue twist introduced by\n" "the per-channel processing method." @@ -19140,15 +19864,55 @@ "opcjonalna korekcja obrotu odcienia (hue) wprowadzonego przez\n" "metody przetwarzania działające na poszczególnych kanałach" -#: ../src/iop/sigmoid.c:702 +#: ../src/iop/sigmoid.c:936 ../src/iop/sigmoid.c:940 +msgid "primaries" +msgstr "barwy podstawowe" + +#: ../src/iop/sigmoid.c:937 +msgid "set custom primaries" +msgstr "ustaw własne barwy podstawowe" + +#: ../src/iop/sigmoid.c:943 +msgid "primaries to use as the base for below adjustments" +msgstr "barwy podstawowe dla poniższych ustawień" + +#: ../src/iop/sigmoid.c:962 +msgid "attenuate the purity of the red primary" +msgstr "tłumienie czystości barwy podstawowej czerwonej" + +#: ../src/iop/sigmoid.c:963 +msgid "rotate the red primary" +msgstr "przesunięcie czerwieni" + +#: ../src/iop/sigmoid.c:964 +msgid "attenuate the purity of the green primary" +msgstr "tłumienie czystości barwy podstawowej zielonej" + +#: ../src/iop/sigmoid.c:965 +msgid "rotate the green primary" +msgstr "przesunięcie zieleni" + +#: ../src/iop/sigmoid.c:966 +msgid "attenuate the purity of the blue primary" +msgstr "tłumienie czystości barwy podstawowej niebieskiej" + +#: ../src/iop/sigmoid.c:967 +msgid "rotate the blue primary" +msgstr "przesunięcie niebieskiego" + +#: ../src/iop/sigmoid.c:974 +msgid "recover some of the original purity after the inset" +msgstr "odzysk oryginalnej czystości barw po wmieszaniu" + +#: ../src/iop/sigmoid.c:978 msgid "display luminance" msgstr "luminancja ekranu" -#: ../src/iop/sigmoid.c:706 +#: ../src/iop/sigmoid.c:979 msgid "set display black/white targets" msgstr "ustaw docelowe czernie/biele ekranu" -#: ../src/iop/sigmoid.c:714 +#: ../src/iop/sigmoid.c:987 msgid "" "the black luminance of the target display or print.\n" "can be used creatively for a faded look." @@ -19156,7 +19920,7 @@ "luminancja czerni docelowego monitora, lub wydruku.\n" "Może być użyte artystycznie jako wyblakłość" -#: ../src/iop/sigmoid.c:719 +#: ../src/iop/sigmoid.c:992 msgid "" "the white luminance of the target display or print.\n" "can be used creatively for a faded look or blowing out whites earlier." @@ -19168,23 +19932,23 @@ msgid "soften" msgstr "zmiękczenie" -#: ../src/iop/soften.c:100 +#: ../src/iop/soften.c:102 msgid "create a softened image using the Orton effect" msgstr "„zmiękcza” zdjęcie używając efektu Ortona" -#: ../src/iop/soften.c:371 +#: ../src/iop/soften.c:366 msgid "the size of blur" msgstr "rozmiar rozmycia" -#: ../src/iop/soften.c:375 +#: ../src/iop/soften.c:370 msgid "the saturation of blur" msgstr "nasycenie rozmycia" -#: ../src/iop/soften.c:379 +#: ../src/iop/soften.c:374 msgid "the brightness of blur" msgstr "jasność rozmycia" -#: ../src/iop/soften.c:383 +#: ../src/iop/soften.c:378 msgid "the mix of effect" msgstr "miksowanie efektu" @@ -19192,7 +19956,7 @@ msgid "split-toning" msgstr "dzielone tonowanie" -#: ../src/iop/splittoning.c:101 +#: ../src/iop/splittoning.c:103 msgid "" "use two specific colors for shadows and highlights and\n" "create a linear toning effect between them up to a pivot." @@ -19200,49 +19964,49 @@ "używa dwóch wybranych kolorów dla cieni i rozświetleń,\n" "i tworzy liniowy efekt tonowania między nimi." -#: ../src/iop/splittoning.c:118 +#: ../src/iop/splittoning.c:120 msgid "authentic sepia" msgstr "prawdziwa sepia" -#: ../src/iop/splittoning.c:127 +#: ../src/iop/splittoning.c:129 msgid "authentic cyanotype" msgstr "prawdziwa cyjanotypia" -#: ../src/iop/splittoning.c:136 +#: ../src/iop/splittoning.c:138 msgid "authentic platinotype" msgstr "prawdziwa platynotypia" -#: ../src/iop/splittoning.c:145 +#: ../src/iop/splittoning.c:147 msgid "chocolate brown" msgstr "brąz czekoladowy" -#: ../src/iop/splittoning.c:490 +#: ../src/iop/splittoning.c:486 msgid "select the saturation tone" msgstr "nasycenie tonu" -#: ../src/iop/splittoning.c:494 +#: ../src/iop/splittoning.c:490 msgid "select tone color" msgstr "wybór koloru tonu" -#: ../src/iop/splittoning.c:524 +#: ../src/iop/splittoning.c:520 msgctxt "section" msgid "shadows" msgstr "cienie" -#: ../src/iop/splittoning.c:530 +#: ../src/iop/splittoning.c:526 msgctxt "section" msgid "highlights" msgstr "światła" -#: ../src/iop/splittoning.c:539 +#: ../src/iop/splittoning.c:535 msgid "balance" msgstr "balans" -#: ../src/iop/splittoning.c:546 +#: ../src/iop/splittoning.c:542 msgid "the balance of center of split-toning" msgstr "balans środka dzielonego tonowania" -#: ../src/iop/splittoning.c:550 +#: ../src/iop/splittoning.c:546 msgid "" "compress the effect on highlights/shadows and\n" "preserve mid-tones" @@ -19267,16 +20031,16 @@ msgid "geometric, raw" msgstr "geometryczne, raw" -#: ../src/iop/spots.c:226 +#: ../src/iop/spots.c:238 msgid "spot module is limited to 64 shapes. please add a new instance!" msgstr "" "moduł usuwania plam ma ograniczenie do 64 kształtów. dodaj nową instancję!" -#: ../src/iop/spots.c:872 +#: ../src/iop/spots.c:874 msgid "number of strokes:" msgstr "liczba kresek:" -#: ../src/iop/spots.c:876 +#: ../src/iop/spots.c:878 msgid "" "click on a shape and drag on canvas.\n" "use the mouse wheel to adjust size.\n" @@ -19286,127 +20050,116 @@ "użyj kółka myszy, aby zmienić rozmiar.\n" "kliknij prawym przyciskiem, aby usunąć." -#: ../src/iop/spots.c:879 +#: ../src/iop/spots.c:881 msgid "show and edit shapes" msgstr "pokaż i edytuj kształty" -#: ../src/iop/temperature.c:204 +#: ../src/iop/temperature.c:212 msgctxt "modulename" msgid "white balance" msgstr "balans bieli" -#: ../src/iop/temperature.c:211 +#: ../src/iop/temperature.c:219 msgid "scale raw RGB channels to balance white and help demosaicing" msgstr "skaluje kanały RGB aby zbalansować biel i pomóc w demozaikowaniu" -#: ../src/iop/temperature.c:1149 -msgid "white balance applied twice" -msgstr "balans bieli zastosowany podwójnie" - -#: ../src/iop/temperature.c:1150 -msgid "" -"the color calibration module is enabled,\n" -"and performing chromatic adaptation.\n" -"set the white balance here to camera reference (D65)\n" -"or disable chromatic adaptation in color calibration." -msgstr "" -"moduł kalibracji kolorów jest włączony\n" -"i wykonuje adaptację chromatyczną.ustaw balans bieli na referencyjny aparatu " -"(D65)lub wyłącz adaptację chromatyczną w module kalibracji koloru." - -#: ../src/iop/temperature.c:1430 +#: ../src/iop/temperature.c:1388 #, c-format msgid "`%s' color matrix not found for image" msgstr "nie znaleziono macierzy koloru „%s” dla zdjęcia" -#: ../src/iop/temperature.c:1459 +#: ../src/iop/temperature.c:1418 #, c-format msgid "failed to read camera white balance information from `%s'!" msgstr "nie udało się wczytać informacji o balansie bieli aparatu z „%s”!" -#: ../src/iop/temperature.c:1631 +#: ../src/iop/temperature.c:1612 msgctxt "white balance" msgid "as shot" msgstr "jak z aparatu" #. old "spot", reason: describes exactly what'll happen -#: ../src/iop/temperature.c:1634 +#: ../src/iop/temperature.c:1615 msgctxt "white balance" msgid "from image area" msgstr "z obszaru obrazu" -#: ../src/iop/temperature.c:1635 +#: ../src/iop/temperature.c:1616 msgctxt "white balance" msgid "user modified" msgstr "ustawiony przez użytkownika" #. old "camera neutral", reason: better matches intent -#: ../src/iop/temperature.c:1637 +#: ../src/iop/temperature.c:1618 msgctxt "white balance" msgid "camera reference" msgstr "referencyjny aparatu" -#: ../src/iop/temperature.c:1920 ../src/iop/temperature.c:1938 +#: ../src/iop/temperature.c:1897 ../src/iop/temperature.c:1915 msgid "green channel coefficient" msgstr "współczynnik kanału zielonego" -#: ../src/iop/temperature.c:1922 +#: ../src/iop/temperature.c:1899 msgid "magenta channel coefficient" msgstr "współczynnik kanału magenta" -#: ../src/iop/temperature.c:1924 +#: ../src/iop/temperature.c:1901 msgid "cyan channel coefficient" msgstr "współczynnik kanału cyjan" -#: ../src/iop/temperature.c:1926 +#: ../src/iop/temperature.c:1903 msgid "yellow channel coefficient" msgstr "współczynnik kanału żółtego" -#: ../src/iop/temperature.c:1936 +#: ../src/iop/temperature.c:1913 msgid "red channel coefficient" msgstr "współczynnik kanału czerwonego" -#: ../src/iop/temperature.c:1940 +#: ../src/iop/temperature.c:1917 msgid "blue channel coefficient" msgstr "współczynnik kanału niebieskiego" -#: ../src/iop/temperature.c:1942 +#: ../src/iop/temperature.c:1918 +msgid "emerald" +msgstr "szmaragdowy" + +#: ../src/iop/temperature.c:1919 msgid "emerald channel coefficient" msgstr "współczynnik kanału szmaragdowego" #. relabel to settings to remove confusion between module presets #. and white balance settings -#: ../src/iop/temperature.c:2029 ../src/iop/temperature.c:2042 -#: ../src/iop/temperature.c:2049 ../src/iop/temperature.c:2055 -#: ../src/iop/temperature.c:2074 +#: ../src/iop/temperature.c:1997 ../src/iop/temperature.c:2010 +#: ../src/iop/temperature.c:2017 ../src/iop/temperature.c:2023 +#: ../src/iop/temperature.c:2042 msgid "settings" msgstr "ustawienia" -#: ../src/iop/temperature.c:2029 +#: ../src/iop/temperature.c:1997 msgid "as shot" msgstr "jak z aparatu" -#: ../src/iop/temperature.c:2032 +#: ../src/iop/temperature.c:2000 msgid "set white balance to as shot" msgstr "ustaw balans bieli jak z aparatu" -#: ../src/iop/temperature.c:2042 +#: ../src/iop/temperature.c:2010 msgid "from image area" msgstr "z obszaru obrazu" -#: ../src/iop/temperature.c:2049 +#: ../src/iop/temperature.c:2017 msgid "user modified" msgstr "ustawiony przez użytkownika" -#: ../src/iop/temperature.c:2052 +#: ../src/iop/temperature.c:2020 msgid "set white balance to user modified" msgstr "ustaw balans bieli na wybrany przez użytkownia" -#: ../src/iop/temperature.c:2055 +#: ../src/iop/temperature.c:2023 msgid "camera reference" msgstr "referencyjny aparatu" -#: ../src/iop/temperature.c:2060 +#: ../src/iop/temperature.c:2028 msgid "" "set white balance to camera reference point\n" "in most cases it should be D65" @@ -19414,56 +20167,60 @@ "ustaw balans bieli na referencyjny aparatu\n" "w większości przypadków powinno to być D65" -#: ../src/iop/temperature.c:2075 +#: ../src/iop/temperature.c:2043 msgid "choose white balance setting" msgstr "wybierz ustawienia balansu bieli" -#: ../src/iop/temperature.c:2080 +#: ../src/iop/temperature.c:2048 msgid "finetune" msgstr "dostrajanie" -#: ../src/iop/temperature.c:2082 +#: ../src/iop/temperature.c:2050 msgid "fine tune camera's white balance setting" msgstr "dostrojenie ustawienia balansu bieli" -#: ../src/iop/temperature.c:2093 +#: ../src/iop/temperature.c:2058 msgctxt "section" msgid "scene illuminant temp" msgstr "temperatura barwowa oświetlenia" -#: ../src/iop/temperature.c:2094 +#: ../src/iop/temperature.c:2059 msgid "click to cycle color mode on sliders" msgstr "kliknij, aby przełączyć tryb koloru na suwakach" -#: ../src/iop/temperature.c:2108 +#: ../src/iop/temperature.c:2073 msgid "color temperature (in Kelvin)" msgstr "temperatura koloru (w Kelwinach)" -#: ../src/iop/temperature.c:2114 +#: ../src/iop/temperature.c:2079 msgid "tint" msgstr "odcień" -#: ../src/iop/temperature.c:2117 +#: ../src/iop/temperature.c:2082 msgid "color tint of the image, from magenta (value < 1) to green (value > 1)" msgstr "odcień obrazu, od magenty (wartości < 1) do zieleni (wartości > 1)" -#: ../src/iop/temperature.c:2123 +#: ../src/iop/temperature.c:2088 msgid "channel coefficients" msgstr "współczynniki dla kanałów" -#: ../src/iop/temperature.c:2158 +#: ../src/iop/temperature.c:2097 +msgid "various" +msgstr "różne" + +#: ../src/iop/temperature.c:2123 msgid "white balance disabled for camera" msgstr "balans bieli niedostępny dla tego aparatu" -#: ../src/iop/tonecurve.c:190 +#: ../src/iop/tonecurve.c:161 msgid "tone curve" msgstr "krzywa tonalna" -#: ../src/iop/tonecurve.c:210 +#: ../src/iop/tonecurve.c:183 msgid "alter an image’s tones using curves" msgstr "zmienia tonalność obrazu używając krzywych" -#: ../src/iop/tonecurve.c:1125 +#: ../src/iop/tonecurve.c:1147 msgid "" "if set to auto, a and b curves have no effect and are not displayed. chroma " "values (a and b) of each pixel are then adjusted based on L curve data. auto " @@ -19474,116 +20231,108 @@ "na podstawie krzywej L. auto XYZ działa podobnie, ale wprowadza zmiany " "saturacji w przestrzeni XYZ." -#: ../src/iop/tonecurve.c:1134 +#: ../src/iop/tonecurve.c:1156 msgid "tonecurve for L channel" msgstr "krzywa tonalna kanału L" -#: ../src/iop/tonecurve.c:1135 +#: ../src/iop/tonecurve.c:1157 msgid "tonecurve for a channel" msgstr "krzywa tonalna kanału a" -#: ../src/iop/tonecurve.c:1136 +#: ../src/iop/tonecurve.c:1158 msgid "tonecurve for b channel" msgstr "krzywa tonalna kanału b" -#: ../src/iop/tonecurve.c:1143 ../src/iop/watermark.c:1305 -#: ../src/libs/colorpicker.c:597 +#: ../src/iop/tonecurve.c:1165 ../src/iop/watermark.c:1353 +#: ../src/libs/colorpicker.c:675 msgid "pick color" msgstr "wybierz kolor" -#: ../src/iop/toneequal.c:311 +#: ../src/iop/toneequal.c:319 msgid "tone equalizer" msgstr "korektor tonów" -#: ../src/iop/toneequal.c:316 +#: ../src/iop/toneequal.c:324 msgid "tone curve|tone mapping|relight|background light|shadows highlights" msgstr "krzywa tonalna|tony|doświetlenie|pod światło|cienie" -#: ../src/iop/toneequal.c:323 +#: ../src/iop/toneequal.c:331 msgid "relight the scene as if the lighting was done directly on the scene" msgstr "doświetla scenę tak, jakby było ono zrobione podczas robienia zdjęcia" -#: ../src/iop/toneequal.c:326 +#: ../src/iop/toneequal.c:334 msgid "quasi-linear, RGB" msgstr "quasi-liniowe, RGB" -#: ../src/iop/toneequal.c:327 +#: ../src/iop/toneequal.c:335 msgid "quasi-linear, RGB, scene-referred" msgstr "quasi-liniowe, RGB, scenocentryczny" -#: ../src/iop/toneequal.c:458 +#: ../src/iop/toneequal.c:489 msgid "simple tone curve" msgstr "podstawowa krzywa tonalna" -#: ../src/iop/toneequal.c:472 +#: ../src/iop/toneequal.c:503 msgid "mask blending: all purposes" msgstr "mieszanie maski: ogólne przeznaczenie" -#: ../src/iop/toneequal.c:479 +#: ../src/iop/toneequal.c:510 msgid "mask blending: people with backlight" msgstr "mieszanie maski: ludzie, pod światło" -#: ../src/iop/toneequal.c:496 +#: ../src/iop/toneequal.c:527 msgid "compress shadows/highlights (EIGF): strong" msgstr "kompresja cieni/świateł (EIGF): mocna" -#: ../src/iop/toneequal.c:501 +#: ../src/iop/toneequal.c:532 msgid "compress shadows/highlights (GF): strong" msgstr "kompresja cieni/świateł (GF): mocna" -#: ../src/iop/toneequal.c:510 +#: ../src/iop/toneequal.c:541 msgid "compress shadows/highlights (EIGF): medium" msgstr "kompresja cieni/świateł (EIFG): średnia" -#: ../src/iop/toneequal.c:515 +#: ../src/iop/toneequal.c:546 msgid "compress shadows/highlights (GF): medium" msgstr "kompresja cieni/świateł (GF): średnia" -#: ../src/iop/toneequal.c:524 +#: ../src/iop/toneequal.c:555 msgid "compress shadows/highlights (EIGF): soft" msgstr "kompresja cieni/świateł (EIGF): delikatna" -#: ../src/iop/toneequal.c:529 +#: ../src/iop/toneequal.c:560 msgid "compress shadows/highlights (GF): soft" msgstr "kompresja cieni/świateł (GF): delikatna" -#: ../src/iop/toneequal.c:537 +#: ../src/iop/toneequal.c:568 msgid "contrast tone curve: soft" msgstr "krzywa tonalna kontrastu: delikatna" -#: ../src/iop/toneequal.c:542 +#: ../src/iop/toneequal.c:573 msgid "contrast tone curve: medium" msgstr "krzywa tonalna kontrastu średnia" -#: ../src/iop/toneequal.c:547 +#: ../src/iop/toneequal.c:578 msgid "contrast tone curve: strong" msgstr "krzywa tonalna kontrastu: mocna" -#: ../src/iop/toneequal.c:570 +#: ../src/iop/toneequal.c:601 msgid "relight: fill-in" msgstr "doświetlanie: wypełnienie" -#: ../src/iop/toneequal.c:627 -msgid "" -"tone equalizer needs to be after distortion modules in the pipeline – " -"disabled" -msgstr "" -"korektor tonów musi być ulokowany w potoku przetwarzania za modułami " -"zniekształceń – wyłączony" - -#: ../src/iop/toneequal.c:1091 +#: ../src/iop/toneequal.c:1120 msgid "tone equalizer failed to allocate memory, check your RAM settings" msgstr "korektor tonów nie mógł zaalokować pamięci, sprawdź ustawienia RAM" -#: ../src/iop/toneequal.c:1795 ../src/iop/toneequal.c:2180 +#: ../src/iop/toneequal.c:1825 ../src/iop/toneequal.c:2196 msgid "the interpolation is unstable, decrease the curve smoothing" msgstr "interpolacja jest niestabilna, zmniejsz stopień wygładzania krzywej" -#: ../src/iop/toneequal.c:1830 ../src/iop/toneequal.c:1897 +#: ../src/iop/toneequal.c:1860 ../src/iop/toneequal.c:1927 msgid "wait for the preview to finish recomputing" msgstr "poczekaj na odświeżanie podglądu" -#: ../src/iop/toneequal.c:2037 ../src/iop/toneequal.c:2587 +#: ../src/iop/toneequal.c:2069 ../src/iop/toneequal.c:2628 msgid "" "scroll over image to change tone exposure\n" "shift+scroll for large steps; ctrl+scroll for small steps" @@ -19592,89 +20341,89 @@ "shift+rolka myszy daje większe kroki,\n" "ctrl+rolka myszy daje mniejsze kroki" -#: ../src/iop/toneequal.c:2185 +#: ../src/iop/toneequal.c:2201 msgid "some parameters are out-of-bounds" msgstr "niektóre parametry są poza zakresem" -#: ../src/iop/toneequal.c:2524 +#: ../src/iop/toneequal.c:2518 #, c-format msgid "%+.1f EV" msgstr "%+.1f EV" -#: ../src/iop/toneequal.c:3236 +#: ../src/iop/toneequal.c:3283 #, c-format msgid "[%s over image] change tone exposure" msgstr "[%s na obrazie] zmień ekspozycję tonów" -#: ../src/iop/toneequal.c:3239 +#: ../src/iop/toneequal.c:3286 #, c-format msgid "[%s over image] change tone exposure in large steps" msgstr "[%s na obrazie] zmień ekspozycję tonów w dużych krokach" -#: ../src/iop/toneequal.c:3242 +#: ../src/iop/toneequal.c:3289 #, c-format msgid "[%s over image] change tone exposure in small steps" msgstr "[%s na obrazie] zmień ekspozycję tonów w małychkrokach" #. Simple view -#: ../src/iop/toneequal.c:3323 ../src/iop/toneequal.c:3352 -#: ../src/iop/toneequal.c:3353 ../src/iop/toneequal.c:3354 -#: ../src/iop/toneequal.c:3355 ../src/iop/toneequal.c:3356 -#: ../src/iop/toneequal.c:3357 ../src/iop/toneequal.c:3358 -#: ../src/iop/toneequal.c:3359 ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3376 ../src/iop/toneequal.c:3405 +#: ../src/iop/toneequal.c:3406 ../src/iop/toneequal.c:3407 +#: ../src/iop/toneequal.c:3408 ../src/iop/toneequal.c:3409 +#: ../src/iop/toneequal.c:3410 ../src/iop/toneequal.c:3411 +#: ../src/iop/toneequal.c:3412 ../src/iop/toneequal.c:3413 msgid "simple" msgstr "podstawowe" -#: ../src/iop/toneequal.c:3352 +#: ../src/iop/toneequal.c:3405 msgid "-8 EV" msgstr "-8 EV" -#: ../src/iop/toneequal.c:3353 +#: ../src/iop/toneequal.c:3406 msgid "-7 EV" msgstr "-7 EV" -#: ../src/iop/toneequal.c:3354 +#: ../src/iop/toneequal.c:3407 msgid "-6 EV" msgstr "-6 EV" -#: ../src/iop/toneequal.c:3355 +#: ../src/iop/toneequal.c:3408 msgid "-5 EV" msgstr "-5 EV" -#: ../src/iop/toneequal.c:3356 +#: ../src/iop/toneequal.c:3409 msgid "-4 EV" msgstr "-4 EV" -#: ../src/iop/toneequal.c:3357 +#: ../src/iop/toneequal.c:3410 msgid "-3 EV" msgstr "-3 EV" -#: ../src/iop/toneequal.c:3358 +#: ../src/iop/toneequal.c:3411 msgid "-2 EV" msgstr "-2 EV" -#: ../src/iop/toneequal.c:3359 +#: ../src/iop/toneequal.c:3412 msgid "-1 EV" msgstr "-1 EV" -#: ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3413 msgid "+0 EV" msgstr "+0 EV" #. Advanced view -#: ../src/iop/toneequal.c:3364 +#: ../src/iop/toneequal.c:3417 msgid "advanced" msgstr "zaawansowane" -#: ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3444 msgid "double-click to reset the curve" msgstr "kliknij dwukrotnie, aby zresetować krzywą" -#: ../src/iop/toneequal.c:3395 +#: ../src/iop/toneequal.c:3448 msgid "curve smoothing" msgstr "wygładzanie krzywej" -#: ../src/iop/toneequal.c:3398 +#: ../src/iop/toneequal.c:3451 msgid "" "positive values will produce more progressive tone transitions\n" "but the curve might become oscillatory in some settings.\n" @@ -19688,11 +20437,11 @@ "kontrastu." #. Masking options -#: ../src/iop/toneequal.c:3408 +#: ../src/iop/toneequal.c:3461 msgid "masking" msgstr "maska" -#: ../src/iop/toneequal.c:3413 +#: ../src/iop/toneequal.c:3466 msgid "" "preview the mask and chose the estimator that gives you the\n" "higher contrast between areas to dodge and areas to burn" @@ -19700,15 +20449,15 @@ "podejrzyj maskę i wybierz estymator, który daje ci\n" "większy kontrast między obszarami do rozjaśnienia i przyciemnienia" -#: ../src/iop/toneequal.c:3416 +#: ../src/iop/toneequal.c:3469 msgid "details" msgstr "szczegóły" -#: ../src/iop/toneequal.c:3417 +#: ../src/iop/toneequal.c:3470 msgid "preserve details" msgstr "ochrona detali" -#: ../src/iop/toneequal.c:3420 +#: ../src/iop/toneequal.c:3473 msgid "" "'no' affects global and local contrast (safe if you only add contrast)\n" "'guided filter' only affects global contrast and tries to preserve local " @@ -19733,7 +20482,7 @@ "który słabiej wygładza światła)\n" "'uśredniony EIGF; - jest średnią geometryczną metod 'nie' i 'EIGF'" -#: ../src/iop/toneequal.c:3433 +#: ../src/iop/toneequal.c:3486 msgid "" "number of passes of guided filter to apply\n" "helps diffusing the edges of the filter at the expense of speed" @@ -19741,7 +20490,7 @@ "ilość przejść filtra prowadzonego\n" "pomaga rozproszyć krawędzie filtra kosztem prędkości działania" -#: ../src/iop/toneequal.c:3441 +#: ../src/iop/toneequal.c:3494 msgid "" "diameter of the blur in percent of the largest image size\n" "warning: big values of this parameter can make the darkroom\n" @@ -19752,7 +20501,7 @@ "że podgląd w trybie ciemni będzie znacznie wolniejszy, jeśli\n" "w użyciu jest odszumianie profilowane." -#: ../src/iop/toneequal.c:3449 +#: ../src/iop/toneequal.c:3502 msgid "" "precision of the feathering:\n" "higher values force the mask to follow edges more closely\n" @@ -19766,12 +20515,12 @@ "niższe wartości dają gładszy gradient i lepsze wygładzanie,\n" "ale może to prowadzić do niedokładności w podążaniu za krawędziami" -#: ../src/iop/toneequal.c:3456 +#: ../src/iop/toneequal.c:3509 msgctxt "section" msgid "mask post-processing" msgstr "przetwarzanie maski" -#: ../src/iop/toneequal.c:3467 +#: ../src/iop/toneequal.c:3520 msgid "" "mask histogram span between the first and last deciles.\n" "the central line shows the average. orange bars appear at extrema if " @@ -19781,7 +20530,7 @@ "środkowa linia wskazuje średnią. pomarańczowe linie na krańcach oznaczają " "przekroczenie zakresu." -#: ../src/iop/toneequal.c:3475 +#: ../src/iop/toneequal.c:3528 msgid "" "0 disables the quantization.\n" "higher values posterize the luminance mask to help the guiding\n" @@ -19792,7 +20541,7 @@ "co daje gładkie obszary na poziomie elementów,\n" "gdy używane są wyższe wartości wtapiania" -#: ../src/iop/toneequal.c:3484 +#: ../src/iop/toneequal.c:3537 msgid "" "use this to slide the mask average exposure along channels\n" "for a better control of the exposure correction with the available nodes.\n" @@ -19802,7 +20551,7 @@ "dla lepszej kontroli nad korekcją ekspozycji.\n" "magiczna różdżka automatycznie ustawi średnią ekspozycję" -#: ../src/iop/toneequal.c:3497 +#: ../src/iop/toneequal.c:3550 msgid "" "use this to counter the averaging effect of the guided filter\n" "and dilate the mask contrast around -4EV\n" @@ -19816,7 +20565,7 @@ "dla lepszej kontroli nad korekcją ekspozycji.\n" "różdżka automatycznie dostosowuje kontrast" -#: ../src/iop/toneequal.c:3520 ../src/iop/toneequal.c:3523 +#: ../src/iop/toneequal.c:3573 ../src/iop/toneequal.c:3576 msgid "display exposure mask" msgstr "wyświetl maskę ekspozycji" @@ -19832,22 +20581,22 @@ "ten moduł jest przestarzały. lepiej użyć modułów kontrastu lokalnego lub " "korektora tonów." -#: ../src/iop/velvia.c:79 +#: ../src/iop/velvia.c:70 msgid "velvia" msgstr "velvia" -#: ../src/iop/velvia.c:104 +#: ../src/iop/velvia.c:97 msgid "" "resaturate giving more weight to blacks, whites and low-saturation pixels" msgstr "" "nasyca kolory dając większą wagę czerni, bieli i pikselom o niskim nasyceniu " "koloru" -#: ../src/iop/velvia.c:281 +#: ../src/iop/velvia.c:290 msgid "the strength of saturation boost" msgstr "siła wzmocnienia nasycenia" -#: ../src/iop/velvia.c:284 +#: ../src/iop/velvia.c:293 msgid "how much to spare highlights and shadows" msgstr "ilość pozostawionych świateł i cieni" @@ -19859,7 +20608,7 @@ "ten moduł jest przestarzały, lepiej użyć suwaka blasku w module balans " "kolorów RGB." -#: ../src/iop/vibrance.c:93 +#: ../src/iop/vibrance.c:95 msgid "" "saturate and reduce the lightness of the most saturated pixels\n" "to make the colors more vivid." @@ -19867,56 +20616,52 @@ "nasyca kolor i redukuje jasność najbardziej nasyconych pikseli\n" "aby kolory wydawały się żywsze." -#: ../src/iop/vibrance.c:217 +#: ../src/iop/vibrance.c:211 msgid "the amount of vibrance" msgstr "ilość ożywienia" -#: ../src/iop/vignette.c:153 -msgid "vignetting" -msgstr "winietowanie" - -#: ../src/iop/vignette.c:158 +#: ../src/iop/vignette.c:119 msgid "simulate a lens fall-off close to edges" msgstr "symuluje efekt przyciemniania fotografii na brzegach" -#: ../src/iop/vignette.c:940 +#: ../src/iop/vignette.c:1022 msgid "lomo" msgstr "lomo" -#: ../src/iop/vignette.c:974 +#: ../src/iop/vignette.c:1061 msgctxt "section" msgid "position / form" msgstr "pozycja / forma" -#: ../src/iop/vignette.c:981 +#: ../src/iop/vignette.c:1069 msgid "dithering" msgstr "dithering" -#: ../src/iop/vignette.c:992 +#: ../src/iop/vignette.c:1081 msgid "the radii scale of vignette for start of fall-off" msgstr "rozmiar promienia winietowania do początku zanikania" -#: ../src/iop/vignette.c:993 +#: ../src/iop/vignette.c:1083 msgid "the radii scale of vignette for end of fall-off" msgstr "rozmiar promienia winietowania do końca zanikania" -#: ../src/iop/vignette.c:994 +#: ../src/iop/vignette.c:1084 msgid "strength of effect on brightness" msgstr "siła efektu dla jasności" -#: ../src/iop/vignette.c:995 +#: ../src/iop/vignette.c:1085 msgid "strength of effect on saturation" msgstr "siła efektu dla nasycenia" -#: ../src/iop/vignette.c:996 +#: ../src/iop/vignette.c:1086 msgid "horizontal offset of center of the effect" msgstr "poziome przesunięcie środka efektu" -#: ../src/iop/vignette.c:997 +#: ../src/iop/vignette.c:1087 msgid "vertical offset of center of the effect" msgstr "pionowe przesunięcie środka efektu" -#: ../src/iop/vignette.c:998 +#: ../src/iop/vignette.c:1090 msgid "" "shape factor\n" "0 produces a rectangle\n" @@ -19928,57 +20673,57 @@ "1 tworzy koło lub elipsę\n" "2 tworzy romb" -#: ../src/iop/vignette.c:1000 +#: ../src/iop/vignette.c:1094 msgid "enable to have the ratio automatically follow the image size" msgstr "włącza automatyczne dostosowanie proporcji do rozmiaru zdjęcia" -#: ../src/iop/vignette.c:1001 +#: ../src/iop/vignette.c:1095 msgid "width-to-height ratio" msgstr "stosunek szerokości do wysokości" -#: ../src/iop/vignette.c:1002 +#: ../src/iop/vignette.c:1097 msgid "add some level of random noise to prevent banding" msgstr "dodaj nieco szumu, aby pozbyć się bandingu" -#: ../src/iop/vignette.c:1009 +#: ../src/iop/vignette.c:1105 #, c-format msgid "[%s on node] change vignette/feather size" msgstr "[%s na węźle] zmień rozmiar winietowania/wtapiania" -#: ../src/iop/vignette.c:1011 +#: ../src/iop/vignette.c:1108 #, c-format msgid "[%s on node] change vignette/feather size keeping ratio" msgstr "" "[%s na węźle] zmień rozmiar winietowania/wtapiania zachowując proporcje" -#: ../src/iop/vignette.c:1013 +#: ../src/iop/vignette.c:1111 #, c-format msgid "[%s on center] move vignette" msgstr "[%s w centrum] przesuń winietowanie" -#: ../src/iop/watermark.c:371 +#: ../src/iop/watermark.c:416 msgid "watermark" msgstr "znak wodny" -#: ../src/iop/watermark.c:376 +#: ../src/iop/watermark.c:421 msgid "overlay an SVG watermark like a signature on the picture" msgstr "nakłada znak wodny SVG, np. podpis na zdjęciu" -#: ../src/iop/watermark.c:1258 +#: ../src/iop/watermark.c:1306 msgid "marker" msgstr "znacznik" -#: ../src/iop/watermark.c:1261 +#: ../src/iop/watermark.c:1309 #, c-format msgid "SVG watermarks in %s/watermarks or %s/watermarks" msgstr "znaki wodne SVG w %s/watermarks lub %s/watermarks" #. Simple text -#: ../src/iop/watermark.c:1271 ../src/iop/watermark.c:1272 +#: ../src/iop/watermark.c:1319 ../src/iop/watermark.c:1320 msgid "text" msgstr "tekst" -#: ../src/iop/watermark.c:1273 +#: ../src/iop/watermark.c:1321 msgid "" "text string, tag:\n" "$(WATERMARK_TEXT)" @@ -19986,16 +20731,16 @@ "tekst, tag:\n" "$(WATERMARK_TEXT)" -#: ../src/iop/watermark.c:1275 +#: ../src/iop/watermark.c:1323 msgid "content" msgstr "treść" #. Text font -#: ../src/iop/watermark.c:1280 +#: ../src/iop/watermark.c:1328 msgid "font" msgstr "font" -#: ../src/iop/watermark.c:1285 +#: ../src/iop/watermark.c:1333 msgid "" "text font, tags:\n" "$(WATERMARK_FONT_FAMILY)\n" @@ -20007,7 +20752,7 @@ "$(WATERMARK_FONT_STYLE)\n" "$(WATERMARK_FONT_WEIGHT)" -#: ../src/iop/watermark.c:1300 +#: ../src/iop/watermark.c:1348 msgid "" "watermark color, tag:\n" "$(WATERMARK_COLOR)" @@ -20015,58 +20760,60 @@ "kolor znaku wodnego, tag:\n" "$(WATERMARK_COLOR)" -#: ../src/iop/watermark.c:1302 +#: ../src/iop/watermark.c:1350 msgid "select watermark color" msgstr "wybór koloru znaku wodnego" -#: ../src/iop/watermark.c:1304 +#: ../src/iop/watermark.c:1352 msgid "pick color from image" msgstr "pobierz kolor ze zdjęcia" -#: ../src/iop/watermark.c:1317 +#: ../src/iop/watermark.c:1365 msgctxt "section" msgid "placement" msgstr "umiejscowienie" -#: ../src/iop/watermark.c:1330 +#: ../src/iop/watermark.c:1378 msgid "" -"scaling is done relative to this object\n" -"• image: fits marker into whole image\n" -"• larger border: fits larger marker border to larger image border\n" -"• smaller border: fits larger marker border to smaller image border\n" -"• height: fits marker height to image height, e.g. suitable for texts\n" -"• advanced options: activates two additional drop-down menus" +"choose how to scale the watermark\n" +"• image: scale watermark relative to whole image\n" +"• larger border: scale larger watermark border relative to larger image " +"border\n" +"• smaller border: scale larger watermark border relative to smaller image " +"border\n" +"• height: scale watermark height to image height\n" +"• advanced options: choose watermark and image dimensions independently" msgstr "" -"skalowanie względem tego obiektu\n" +"wybierz względem czego skalować znak wodny\n" "• obraz: dopasowuje znak wodny do całego obrazu\n" "• dłuższy bok: dopasowuje dłuższy bok znaku do dłuższego boku obrazu\n" "• krótszy bok: dopasowuje krótszy bok znaku do krótszego boku obrazu\n" "• wysokość: dopasowuje wysokość znaku do wysokości obrazu, właściwe dla " "tekstów \n" -"• opcje zaawansowane: aktywuje dwa dodatkowe menu rozwijalne" +"• opcje zaawansowane: wybór niezależych wymiarów znaku i obrazu" -#: ../src/iop/watermark.c:1339 -msgid "reference to which the marker should be scaled to" -msgstr "referencja do skalowania znaku" +#: ../src/iop/watermark.c:1387 +msgid "reference image dimension against which to scale the watermark" +msgstr "rozmiary referencyjne dla skalowania znaku wodnego" -#: ../src/iop/watermark.c:1343 -msgid "length of the marker which is used as scaling reference" -msgstr "długość znaku wodnego, używana jako odniesienie do skalowania" +#: ../src/iop/watermark.c:1391 +msgid "watermark dimension to scale" +msgstr "wymiary znaku wodnego do skalowania" -#: ../src/iop/watermark.c:1347 ../src/libs/print_settings.c:2675 +#: ../src/iop/watermark.c:1395 ../src/libs/print_settings.c:2675 msgid "alignment" msgstr "rozmieszczenie" #. Let's add some tooltips and hook up some signals... -#: ../src/iop/watermark.c:1368 +#: ../src/iop/watermark.c:1416 msgid "the opacity of the watermark" msgstr "krycie znaku wodnego" -#: ../src/iop/watermark.c:1369 +#: ../src/iop/watermark.c:1417 msgid "the scale of the watermark" msgstr "skala znaku wodnego" -#: ../src/iop/watermark.c:1370 +#: ../src/iop/watermark.c:1418 msgid "the rotation of the watermark" msgstr "obrót znaku wodnego" @@ -20074,7 +20821,7 @@ msgid "zone system" msgstr "system strefowy" -#: ../src/iop/zonesystem.c:490 +#: ../src/iop/zonesystem.c:486 msgid "" "lightness zones\n" "use mouse scrollwheel to change the number of zones\n" @@ -20116,7 +20863,7 @@ msgid "camera control" msgstr "kontrola aparatu" -#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2360 +#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2679 msgid "modes" msgstr "tryby" @@ -20221,36 +20968,49 @@ msgid "WB" msgstr "BB" -#: ../src/libs/collect.c:151 +#: ../src/libs/collect.c:164 msgid "collections" msgstr "kolekcje" -#: ../src/libs/collect.c:407 +#: ../src/libs/collect.c:424 msgid "search filmroll" msgstr "wyszukaj rolkę filmu" -#: ../src/libs/collect.c:490 +#: ../src/libs/collect.c:507 #, c-format msgid "problem selecting new path for the filmroll in %s" msgstr "problem przy wybieraniu nowej ścieżki dla rolki filmu %s" -#: ../src/libs/collect.c:553 +#: ../src/libs/collect.c:579 msgid "search filmroll..." msgstr "wyszukaj rolkę filmu..." -#: ../src/libs/collect.c:557 +#: ../src/libs/collect.c:584 msgid "remove..." msgstr "usuń..." -#: ../src/libs/collect.c:1225 +#: ../src/libs/collect.c:1310 msgid "uncategorized" msgstr "nieprzypisane" -#: ../src/libs/collect.c:2138 +#: ../src/libs/collect.c:2172 ../src/libs/filters/rating_range.c:120 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:151 +#: ../src/libs/filters/rating_range.c:302 +msgid "rejected" +msgstr "odrzucone" + +#: ../src/libs/collect.c:2175 ../src/libs/filters/rating_range.c:122 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:303 +msgid "not rated" +msgstr "bez oceny" + +#: ../src/libs/collect.c:2359 msgid "use <, <=, >, >=, <>, =, [;] as operators" msgstr "użyj <, <=, >, >=, <>, =, [;] jako operatorów" -#: ../src/libs/collect.c:2142 +#: ../src/libs/collect.c:2363 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "star rating: 0-5\n" @@ -20260,7 +21020,7 @@ "ocena gwiazdkowa: 0-5\n" "zdjęcia odrzucone: -1" -#: ../src/libs/collect.c:2149 +#: ../src/libs/collect.c:2371 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)" @@ -20268,12 +21028,12 @@ "użyj <, <=, >, >=, <>, =, [;] jako operatorów\n" "wpisz daty w postaci : RRRR:MM:DD GG:MM:SS.SSSS (konieczny jest tylko rok)" -#: ../src/libs/collect.c:2156 +#: ../src/libs/collect.c:2378 #, no-c-format msgid "use `%' as wildcard and `,' to separate values" msgstr "użyj „%” jako wieloznacznika i ',' do separacji wartości" -#: ../src/libs/collect.c:2162 +#: ../src/libs/collect.c:2385 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20286,7 +21046,7 @@ "użyj `|%' aby dołączyć tylko hierarchie podrzędne (klik z ctrl)\n" "aby dołączyć tylko bieżącą hierarchię, kliknij z shift" -#: ../src/libs/collect.c:2174 +#: ../src/libs/collect.c:2398 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20299,7 +21059,7 @@ "użyj `|%' aby dołączyć tylko lokacje podrzędne (klik z ctrl)\n" "aby dołączyć tylko bieżącą lokację, kliknij z shift" -#: ../src/libs/collect.c:2186 +#: ../src/libs/collect.c:2411 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20312,111 +21072,103 @@ "kliknij z Shiftem aby zawrzeć tylko obecny folder (brak końcówki)\n" "kliknij z Ctrlaby zawrzeć tylko podfoldery (końcówka \"|%\")" -#: ../src/libs/collect.c:2197 +#: ../src/libs/collect.c:2422 #, no-c-format msgid "use `%' as wildcard" msgstr "użyj „%” jako wieloznacznika" -#: ../src/libs/collect.c:2263 ../src/libs/collect.c:2277 -#: ../src/libs/collect.c:2800 +#: ../src/libs/collect.c:2488 ../src/libs/collect.c:2502 +#: ../src/libs/collect.c:3111 msgid "clear this rule" msgstr "usuń tę regułę" -#: ../src/libs/collect.c:2267 +#: ../src/libs/collect.c:2492 msgid "clear this rule or add new rules" msgstr "usuń tę regułę albo dodaj nową" -#: ../src/libs/collect.c:2806 +#: ../src/libs/collect.c:3117 msgid "narrow down search" msgstr "zawęź wyszukiwanie" -#: ../src/libs/collect.c:2811 +#: ../src/libs/collect.c:3124 msgid "add more images" msgstr "dodaj więcej obrazów" -#: ../src/libs/collect.c:2816 +#: ../src/libs/collect.c:3131 msgid "exclude images" msgstr "wyklucz obrazy" -#: ../src/libs/collect.c:2823 +#: ../src/libs/collect.c:3140 msgid "change to: and" msgstr "zmienia na: oraz" -#: ../src/libs/collect.c:2828 +#: ../src/libs/collect.c:3147 msgid "change to: or" msgstr "zmienia na: albo" -#: ../src/libs/collect.c:2833 +#: ../src/libs/collect.c:3154 msgid "change to: except" msgstr "zmienia na: oprócz" #. the different categories -#: ../src/libs/collect.c:2859 ../src/libs/filtering.c:857 -#: ../src/libs/filtering.c:924 ../src/libs/filtering.c:1558 -#: ../src/libs/filtering.c:1890 +#: ../src/libs/collect.c:3184 ../src/libs/filtering.c:883 +#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1620 +#: ../src/libs/filtering.c:1964 msgid "files" msgstr "pliki" -#: ../src/libs/collect.c:2864 ../src/libs/export_metadata.c:312 -#: ../src/libs/filtering.c:862 ../src/libs/filtering.c:929 -#: ../src/libs/filtering.c:1566 ../src/libs/filtering.c:1894 -#: ../src/libs/image.c:464 ../src/libs/image.c:574 ../src/libs/image.c:582 -#: ../src/libs/metadata.c:676 ../src/libs/metadata_view.c:1226 +#: ../src/libs/collect.c:3189 ../src/libs/export_metadata.c:301 +#: ../src/libs/filtering.c:888 ../src/libs/filtering.c:955 +#: ../src/libs/filtering.c:1628 ../src/libs/filtering.c:1968 +#: ../src/libs/image.c:495 ../src/libs/image.c:633 ../src/libs/image.c:645 +#: ../src/libs/metadata.c:509 ../src/libs/metadata_view.c:1256 msgid "metadata" msgstr "metadane" -#: ../src/libs/collect.c:2883 ../src/libs/filtering.c:883 -#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1892 +#: ../src/libs/collect.c:3208 ../src/libs/filtering.c:909 +#: ../src/libs/filtering.c:976 ../src/libs/filtering.c:1966 msgid "times" msgstr "czasy" -#: ../src/libs/collect.c:2891 ../src/libs/filtering.c:891 -#: ../src/libs/filtering.c:958 ../src/libs/filtering.c:1590 +#: ../src/libs/collect.c:3216 ../src/libs/filtering.c:917 +#: ../src/libs/filtering.c:984 ../src/libs/filtering.c:1652 msgid "capture details" msgstr "szczegóły zdjęcia" -#: ../src/libs/collect.c:2900 ../src/libs/filtering.c:900 -#: ../src/libs/filtering.c:967 ../src/libs/filtering.c:1602 -#: ../src/libs/filtering.c:1896 ../src/libs/tools/darktable.c:65 +#: ../src/libs/collect.c:3225 ../src/libs/filtering.c:926 +#: ../src/libs/filtering.c:993 ../src/libs/filtering.c:1664 +#: ../src/libs/filtering.c:1970 ../src/libs/tools/darktable.c:61 msgid "darktable" msgstr "darktable" -#: ../src/libs/collect.c:2913 +#: ../src/libs/collect.c:3240 msgid "collections settings" msgstr "ustawienia kolekcji" -#: ../src/libs/collect.c:2916 ../src/libs/export_metadata.c:288 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:228 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3472 -msgid "save" -msgstr "zapisz" - -#: ../src/libs/collect.c:2936 ../src/libs/export.c:1046 -#: ../src/libs/metadata.c:779 ../src/libs/metadata_view.c:1306 -#: ../src/libs/recentcollect.c:293 ../src/libs/tagging.c:3494 +#: ../src/libs/collect.c:3267 ../src/libs/export.c:1126 +#: ../src/libs/metadata.c:615 ../src/libs/metadata_view.c:1339 +#: ../src/libs/recentcollect.c:295 ../src/libs/tagging.c:3526 msgid "preferences..." msgstr "ustawienia..." -#: ../src/libs/collect.c:3041 ../src/libs/filtering.c:1432 +#: ../src/libs/collect.c:3388 ../src/libs/filtering.c:1494 msgid "AND" msgstr "i" -#: ../src/libs/collect.c:3046 ../src/libs/filtering.c:1437 +#: ../src/libs/collect.c:3393 ../src/libs/filtering.c:1499 msgid "OR" msgstr "lub" #. case DT_LIB_COLLECT_MODE_AND_NOT: -#: ../src/libs/collect.c:3051 ../src/libs/filtering.c:1442 +#: ../src/libs/collect.c:3398 ../src/libs/filtering.c:1504 msgid "BUT NOT" msgstr "ale nie" -#: ../src/libs/collect.c:3223 ../src/libs/filtering.c:2164 +#: ../src/libs/collect.c:3588 ../src/libs/filtering.c:2238 msgid "revert to a previous set of rules" msgstr "powróć do poprzedniego zestawu reguł" -#: ../src/libs/collect.c:3280 +#: ../src/libs/collect.c:3671 msgid "jump back to previous collection" msgstr "przejdź do poprzedniej kolekcji" @@ -20440,7 +21192,7 @@ msgid "color picker" msgstr "próbnik koloru" -#: ../src/libs/colorpicker.c:463 +#: ../src/libs/colorpicker.c:513 msgid "" "hover to highlight sample on canvas,\n" "click to lock sample,\n" @@ -20449,23 +21201,23 @@ "najedź, aby podświetlić próbkę na obrazie, kliknij, aby zablokować próbkę\n" "kliknij prawym, aby załadować próbkę do aktywnego próbnika kolorów" -#: ../src/libs/colorpicker.c:561 ../src/libs/colorpicker.c:612 +#: ../src/libs/colorpicker.c:626 ../src/libs/colorpicker.c:693 msgid "click to (un)hide large color patch" msgstr "kliknij, aby pokazać/ukryć dużą próbkę koloru" -#: ../src/libs/colorpicker.c:575 +#: ../src/libs/colorpicker.c:649 msgid "statistic" msgstr "statystyki" -#: ../src/libs/colorpicker.c:576 +#: ../src/libs/colorpicker.c:650 msgid "select which statistic to show" msgstr "wybierz statystykę do pokazania" -#: ../src/libs/colorpicker.c:585 +#: ../src/libs/colorpicker.c:660 msgid "select which color mode to use" msgstr "wybierz tryb koloru" -#: ../src/libs/colorpicker.c:594 +#: ../src/libs/colorpicker.c:671 msgid "" "turn on color picker\n" "ctrl+click or right-click to select an area" @@ -20473,21 +21225,21 @@ "włącz próbnik kolorów\n" "ctrl-klik lub prawy klik, aby wybrać obszar" -#: ../src/libs/colorpicker.c:636 +#: ../src/libs/colorpicker.c:722 msgid "add sample" msgstr "dodaj próbkę" #. Adding the live samples section -#: ../src/libs/colorpicker.c:640 +#: ../src/libs/colorpicker.c:727 msgctxt "section" msgid "live samples" msgstr "próbka na żywo" -#: ../src/libs/colorpicker.c:648 +#: ../src/libs/colorpicker.c:738 msgid "display samples on image/vectorscope" msgstr "pokaż próbki na obrazie/ wektoroskopie" -#: ../src/libs/colorpicker.c:657 +#: ../src/libs/colorpicker.c:749 msgid "restrict scope to selection" msgstr "ogranicz zakres do wybranych" @@ -20499,10 +21251,6 @@ msgid "open sidecar file" msgstr "otwarcie pliku pobocznego" -#: ../src/libs/copy_history.c:149 -msgid "XMP sidecar files" -msgstr "skojarzone pliki XMP" - #: ../src/libs/copy_history.c:166 #, c-format msgid "error loading file '%s'" @@ -20552,7 +21300,7 @@ msgid "choose which modules to paste to the target image(s)" msgstr "wybierz moduły do wklejenia do zdj. docelowego" -#: ../src/libs/copy_history.c:382 ../src/libs/image.c:588 +#: ../src/libs/copy_history.c:382 ../src/libs/image.c:655 msgid "paste" msgstr "wklej" @@ -20584,11 +21332,11 @@ "porzuca historię edycji\n" "wszystkich wybranych zdjęć" -#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:847 +#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:851 msgid "how to handle existing history" msgstr "jak traktować istniejącą historię edycji" -#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:850 +#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:854 msgid "append" msgstr "dołącz" @@ -20608,89 +21356,96 @@ msgid "write history stack and tags to XMP sidecar files" msgstr "zapisuje historię edycji i etykiety do pobocznych plików XMP" -#: ../src/libs/duplicate.c:56 +#: ../src/libs/duplicate.c:60 msgid "duplicate manager" msgstr "manager duplikatów" -#: ../src/libs/duplicate.c:401 +#: ../src/libs/duplicate.c:407 msgid "create a 'virgin' duplicate of the image without any development" msgstr "tworzy „dziewiczy” duplikat zdjęcia przed modyfikacjami" -#: ../src/libs/duplicate.c:406 +#: ../src/libs/duplicate.c:412 msgid "create a duplicate of the image with same history stack" msgstr "tworzy duplikat zdjęcia z tą samą historią" -#. Export button -#: ../src/libs/export.c:153 ../src/libs/export.c:1281 +#: ../src/libs/export.c:160 msgid "export" msgstr "eksportuj" #: ../src/libs/export.c:306 +msgid "invalid format for export selected" +msgstr "wybrano nieprawidłowy format eksportu" + +#: ../src/libs/export.c:311 +msgid "invalid storage for export selected" +msgstr "wybrano nieprawidłowe miejsce zapisu do eksportu" + +#: ../src/libs/export.c:322 msgid "export to disk" msgstr "eksportuj na dysk" -#: ../src/libs/export.c:485 +#: ../src/libs/export.c:516 #, c-format msgid "which is equal to %s × %s px" msgstr "równoważne rozmiarowi %s × %s px" -#: ../src/libs/export.c:520 +#: ../src/libs/export.c:555 msgctxt "unit" msgid "in" msgstr "cale" -#: ../src/libs/export.c:1060 +#: ../src/libs/export.c:1141 msgctxt "section" msgid "storage options" msgstr "opcje lokalizacji" -#: ../src/libs/export.c:1064 +#: ../src/libs/export.c:1145 msgid "target storage" msgstr "miejsce docelowe" -#: ../src/libs/export.c:1086 +#: ../src/libs/export.c:1171 msgctxt "section" msgid "format options" msgstr "opcje formatu" -#: ../src/libs/export.c:1090 +#: ../src/libs/export.c:1175 msgid "file format" msgstr "format pliku" -#: ../src/libs/export.c:1107 +#: ../src/libs/export.c:1193 msgctxt "section" msgid "global options" msgstr "ustawienia globalne" -#: ../src/libs/export.c:1110 +#: ../src/libs/export.c:1196 msgid "set size" msgstr "ustaw rozmiar" -#: ../src/libs/export.c:1111 +#: ../src/libs/export.c:1197 msgid "choose a method for setting the output size" msgstr "wybierz metodę ustawiania rozmiaru pliku wyjściowego" -#: ../src/libs/export.c:1114 +#: ../src/libs/export.c:1200 msgid "in pixels (for file)" msgstr "w pikselach (dla plików)" -#: ../src/libs/export.c:1115 +#: ../src/libs/export.c:1201 msgid "in cm (for print)" msgstr "w cm (do wydruku)" -#: ../src/libs/export.c:1116 +#: ../src/libs/export.c:1202 msgid "in inch (for print)" msgstr "w calach (do wydruku)" -#: ../src/libs/export.c:1117 +#: ../src/libs/export.c:1203 msgid "by scale (for file)" msgstr "według skali (dla plików)" -#: ../src/libs/export.c:1119 +#: ../src/libs/export.c:1206 msgid "print width" msgstr "szerokość wydruku" -#: ../src/libs/export.c:1120 ../src/libs/export.c:1132 +#: ../src/libs/export.c:1208 ../src/libs/export.c:1225 msgid "" "maximum output width limit.\n" "click middle mouse button to reset to 0." @@ -20698,11 +21453,11 @@ "maksymalna szerokość obrazu wyjściowego\n" "środkowy przycisk myszy ustawia na 0." -#: ../src/libs/export.c:1123 +#: ../src/libs/export.c:1212 msgid "print height" msgstr "wysokość wydruku" -#: ../src/libs/export.c:1124 ../src/libs/export.c:1136 +#: ../src/libs/export.c:1214 ../src/libs/export.c:1231 msgid "" "maximum output height limit.\n" "click middle mouse button to reset to 0." @@ -20710,19 +21465,19 @@ "maksymalna wysokość obrazu wyjściowego\n" "środkowy przycisk myszy ustawia na 0." -#: ../src/libs/export.c:1128 +#: ../src/libs/export.c:1220 msgid "resolution in dot per inch" msgstr "rozdzielczość w punktach na cal" -#: ../src/libs/export.c:1148 +#: ../src/libs/export.c:1244 msgid "@" msgstr "@" -#: ../src/libs/export.c:1161 ../src/libs/tools/global_toolbox.c:217 +#: ../src/libs/export.c:1258 ../src/libs/tools/global_toolbox.c:217 msgid "px" msgstr "px" -#: ../src/libs/export.c:1166 +#: ../src/libs/export.c:1266 msgid "" "it can be an integer, decimal number or simple fraction.\n" "zero or empty values are equal to 1.\n" @@ -20732,38 +21487,38 @@ "zero i pusta wartość są równoważne wartości 1\n" "kliknij środkowym przyciskiem myszy aby ustawić na 0" -#: ../src/libs/export.c:1185 +#: ../src/libs/export.c:1292 msgid "allow upscaling" msgstr "zezwól na powiększanie" -#: ../src/libs/export.c:1191 +#: ../src/libs/export.c:1301 msgid "high quality resampling" msgstr "skalowanie wysokiej jakości" -#: ../src/libs/export.c:1192 +#: ../src/libs/export.c:1302 msgid "do high quality resampling during export" msgstr "eksport z użyciem wysokiej jakości próbkowania" -#: ../src/libs/export.c:1198 +#: ../src/libs/export.c:1310 msgid "store masks" msgstr "zachowaj maski" -#: ../src/libs/export.c:1199 +#: ../src/libs/export.c:1311 msgid "store masks as layers in exported images. only works for some formats." msgstr "" "zachowuj maski jako warstwy w eksportowanych obrazach. działa tylko dla " "niektórych formatów." -#: ../src/libs/export.c:1210 ../src/libs/export.c:1245 +#: ../src/libs/export.c:1322 ../src/libs/export.c:1357 #: ../src/libs/print_settings.c:2777 ../src/libs/print_settings.c:2823 msgid "image settings" msgstr "ustawienia zdjęcia" -#: ../src/libs/export.c:1220 ../src/libs/print_settings.c:2811 +#: ../src/libs/export.c:1332 ../src/libs/print_settings.c:2811 msgid "output ICC profiles" msgstr "wyjściowe profile ICC" -#: ../src/libs/export.c:1228 +#: ../src/libs/export.c:1340 msgid "" "• perceptual: smoothly moves out-of-gamut colors into gamut, preserving " "gradations,\n" @@ -20798,45 +21553,54 @@ "docelowego medium i nic ponad to. Używany głównie do proofowania kolorów. " "Nieprzeznaczony do fotografii." -#: ../src/libs/export.c:1255 ../src/libs/print_settings.c:2833 +#: ../src/libs/export.c:1367 ../src/libs/print_settings.c:2833 msgid "style" msgstr "styl" -#: ../src/libs/export.c:1258 +#: ../src/libs/export.c:1370 msgid "temporary style to use while exporting" msgstr "tymczasowy styl, który ma zostać użyty podczas eksportu" -#: ../src/libs/export.c:1263 ../src/libs/print_settings.c:2876 +#: ../src/libs/export.c:1377 ../src/libs/print_settings.c:2876 msgid "" "whether the style items are appended to the history or replacing the history" msgstr "" "określa, czy elementy stylu są dodawane do historii edycji, czy ją zastępują" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "replace history" msgstr "zastąp historię" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "append history" msgstr "dodaj do historii" -#: ../src/libs/export.c:1282 +#: ../src/libs/export.c:1398 +msgctxt "actionbutton" +msgid "export" +msgstr "eksportuj" + +#: ../src/libs/export.c:1400 msgid "export with current settings" msgstr "eksportuje używając bieżących ustawień" -#: ../src/libs/export_metadata.c:163 +#: ../src/libs/export_metadata.c:148 msgid "select tag" msgstr "wybierz etykietę" -#: ../src/libs/export_metadata.c:164 -msgid "add" -msgstr "dodaj" +#: ../src/libs/export_metadata.c:150 +msgid "_add" +msgstr "_dodaj" + +#: ../src/libs/export_metadata.c:151 ../src/libs/geotagging.c:811 +msgid "_done" +msgstr "_gotowe" -#: ../src/libs/export_metadata.c:175 +#: ../src/libs/export_metadata.c:162 msgid "list filter" msgstr "filtr listy" -#: ../src/libs/export_metadata.c:186 +#: ../src/libs/export_metadata.c:173 msgid "" "list of available tags. click 'add' button or double-click on tag to add the " "selected one" @@ -20844,31 +21608,31 @@ "lista dostępnych etykiet. kliknij 'dodaj' lub dwukrotnie kliknij na " "etykiecie aby dodać wybraną" -#: ../src/libs/export_metadata.c:287 +#: ../src/libs/export_metadata.c:274 msgid "edit metadata exportation" msgstr "edytuj eksport metadanych" -#: ../src/libs/export_metadata.c:304 +#: ../src/libs/export_metadata.c:293 msgid "general settings" msgstr "ustawienia ogólne" -#: ../src/libs/export_metadata.c:309 +#: ../src/libs/export_metadata.c:298 msgid "EXIF data" msgstr "dane EXIF" -#: ../src/libs/export_metadata.c:310 +#: ../src/libs/export_metadata.c:299 msgid "export EXIF metadata" msgstr "eksportuj metadane EXIF" -#: ../src/libs/export_metadata.c:313 +#: ../src/libs/export_metadata.c:302 msgid "export darktable XMP metadata (from metadata editor module)" msgstr "eksportuj metadane XMP darktabla (z modułu edycji metadanych)" -#: ../src/libs/export_metadata.c:323 +#: ../src/libs/export_metadata.c:312 msgid "only embedded" msgstr "tylko wbudowane" -#: ../src/libs/export_metadata.c:324 +#: ../src/libs/export_metadata.c:313 msgid "" "per default the interface sends some (limited) metadata beside the image to " "remote storage.\n" @@ -20884,39 +21648,39 @@ "jeśli zdalna przestrzeń dyskowa nie rozumie metadanych XMP darktable, możesz " "w zamian użyć przeliczonych metadanych" -#: ../src/libs/export_metadata.c:330 ../src/libs/image.c:566 +#: ../src/libs/export_metadata.c:319 ../src/libs/image.c:623 msgid "geo tags" msgstr "etykiety geolokacji" -#: ../src/libs/export_metadata.c:331 +#: ../src/libs/export_metadata.c:320 msgid "export geo tags" msgstr "eksportuj etykiety geolokacji" -#: ../src/libs/export_metadata.c:334 +#: ../src/libs/export_metadata.c:323 msgid "export tags (to Xmp.dc.Subject)" msgstr "eksportuj etykiety (do Xmp.dc.Subject)" -#: ../src/libs/export_metadata.c:342 +#: ../src/libs/export_metadata.c:331 msgid "private tags" msgstr "prywatne etykiety" -#: ../src/libs/export_metadata.c:343 +#: ../src/libs/export_metadata.c:332 msgid "export private tags" msgstr "eksportuj prywatne etykiety" -#: ../src/libs/export_metadata.c:345 +#: ../src/libs/export_metadata.c:334 msgid "synonyms" msgstr "synonimy" -#: ../src/libs/export_metadata.c:346 +#: ../src/libs/export_metadata.c:335 msgid "export tags synonyms" msgstr "eksportuj synonimy etykiet" -#: ../src/libs/export_metadata.c:348 +#: ../src/libs/export_metadata.c:337 msgid "omit hierarchy" msgstr "pomiń hierarchię" -#: ../src/libs/export_metadata.c:349 +#: ../src/libs/export_metadata.c:338 msgid "" "only the last part of the hierarchical tags is included. can be useful if " "categories are not used" @@ -20924,19 +21688,19 @@ "tylko ostatnia część tagów hierarchicznych jest brana pod uwagę. może być " "przydatne, jeśli kategorie nie są używane" -#: ../src/libs/export_metadata.c:352 +#: ../src/libs/export_metadata.c:341 msgid "hierarchical tags" msgstr "etykiety hierarchiczne" -#: ../src/libs/export_metadata.c:353 +#: ../src/libs/export_metadata.c:342 msgid "export hierarchical tags (to Xmp.lr.Hierarchical Subject)" msgstr "eksportuj hierarchiczne etykiety (do Xmp.lr.Hierarchical Subject)" -#: ../src/libs/export_metadata.c:355 +#: ../src/libs/export_metadata.c:344 msgid "develop history" msgstr "historia edycji" -#: ../src/libs/export_metadata.c:356 +#: ../src/libs/export_metadata.c:345 msgid "" "export darktable development data (recovery purpose in case of loss of " "database or XMP file)" @@ -20944,19 +21708,19 @@ "eksportuj dane przetwarzania darktable (umożliwia odzyskanie w przypadku " "utraty bazy danych lub pliku XMP)" -#: ../src/libs/export_metadata.c:363 +#: ../src/libs/export_metadata.c:352 msgid "per metadata settings" msgstr "ustawienia per metadane" -#: ../src/libs/export_metadata.c:376 +#: ../src/libs/export_metadata.c:364 msgid "redefined tag" msgstr "przedefiniowana etykieta" -#: ../src/libs/export_metadata.c:382 +#: ../src/libs/export_metadata.c:370 msgid "formula" msgstr "formuła" -#: ../src/libs/export_metadata.c:385 +#: ../src/libs/export_metadata.c:373 msgid "" "list of calculated metadata\n" "click on '+' button to select and add new metadata\n" @@ -20980,15 +21744,15 @@ "kliknij na komórkę formuły aby edytować\n" "wpisz \"$\" aby aktywować uzupełnianie i zobaczyć listę zmiennych" -#: ../src/libs/export_metadata.c:442 +#: ../src/libs/export_metadata.c:430 msgid "add an output metadata tag" msgstr "dodaj etykietę metadanych wyjściowych" -#: ../src/libs/export_metadata.c:447 +#: ../src/libs/export_metadata.c:435 msgid "delete metadata tag" msgstr "usuń etykietę metadanych" -#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:128 +#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:130 msgid "full path" msgstr "pełna ścieżka" @@ -21008,48 +21772,48 @@ msgid "shuffle" msgstr "nieuporządkowane" -#: ../src/libs/filtering.c:263 +#: ../src/libs/filtering.c:269 msgid "collection filters" msgstr "filtr kolekcji" -#: ../src/libs/filtering.c:296 +#: ../src/libs/filtering.c:302 msgid "initial setting" msgstr "początkowe ustawienie" -#: ../src/libs/filtering.c:315 +#: ../src/libs/filtering.c:321 msgid "imported: last 24h" msgstr "zaimportowano: ostatnie 24h" -#: ../src/libs/filtering.c:320 +#: ../src/libs/filtering.c:326 msgid "imported: last 30 days" msgstr "zaimportowano: ostatnie 30 dni" -#: ../src/libs/filtering.c:326 +#: ../src/libs/filtering.c:332 msgid "taken: last 24h" msgstr "zrobione: ostatnie 24h" -#: ../src/libs/filtering.c:330 +#: ../src/libs/filtering.c:336 msgid "taken: last 30 days" msgstr "zrobione: ostatnie 30 dni" -#: ../src/libs/filtering.c:702 +#: ../src/libs/filtering.c:728 msgid "click or click&drag to select one or multiple values" msgstr "klik lub klik&przeciągnij aby zaznaczyć jedną lub wiele wartości" -#: ../src/libs/filtering.c:703 +#: ../src/libs/filtering.c:729 msgid "right-click opens a menu to select the available values" msgstr "prawy klik otwiera menu z możliwymi wartościami" -#: ../src/libs/filtering.c:800 +#: ../src/libs/filtering.c:826 #, c-format msgid "you can't have more than %d rules" msgstr "nie możesz mieć więcej niż %d reguł" -#: ../src/libs/filtering.c:922 ../src/libs/filtering.c:1556 +#: ../src/libs/filtering.c:948 ../src/libs/filtering.c:1618 msgid "rule property" msgstr "właściwość reguły" -#: ../src/libs/filtering.c:987 +#: ../src/libs/filtering.c:1013 msgid "" "rule property\n" "this can't be changed as the rule is pinned to the toolbar" @@ -21057,12 +21821,12 @@ "właściwości reguły\n" "nie mogą być zmienione, gdy reguła jest przypięta do zasobnika" -#: ../src/libs/filtering.c:1035 +#: ../src/libs/filtering.c:1095 msgctxt "quickfilter" msgid "filter" msgstr "filtr" -#: ../src/libs/filtering.c:1062 +#: ../src/libs/filtering.c:1124 msgid "" "this rule is pinned to the top toolbar\n" "click to un-pin" @@ -21070,114 +21834,122 @@ "ta reguła jest przypięta do górnego zasobnika\n" "kliknij, aby odpiąć" -#: ../src/libs/filtering.c:1063 +#: ../src/libs/filtering.c:1125 msgid "you can't disable the rule as it is pinned to the toolbar" msgstr "nie możesz wyłączyć reguły, jeśli jest przypięta do zasobnika" -#: ../src/libs/filtering.c:1064 +#: ../src/libs/filtering.c:1126 msgid "you can't remove the rule as it is pinned to the toolbar" msgstr "nie możesz usunąć reguły, jeśli jest przypięta do zasobnika" -#: ../src/libs/filtering.c:1069 +#: ../src/libs/filtering.c:1131 msgid "click to pin this rule to the top toolbar" msgstr "kliknij, aby przypiąć tę regułę do górnego zasobnika" -#: ../src/libs/filtering.c:1070 +#: ../src/libs/filtering.c:1132 msgid "remove this collect rule" msgstr "usuń tę regułę kolekcji" -#: ../src/libs/filtering.c:1072 +#: ../src/libs/filtering.c:1134 msgid "this rule is enabled" msgstr "ta reguła jest aktywna" -#: ../src/libs/filtering.c:1074 +#: ../src/libs/filtering.c:1136 msgid "this rule is disabled" msgstr "ta reguła jest nieaktywna" -#: ../src/libs/filtering.c:1202 +#: ../src/libs/filtering.c:1264 msgid "or" msgstr "lub" -#: ../src/libs/filtering.c:1203 +#: ../src/libs/filtering.c:1265 msgid "and not" msgstr "oraz nie" -#: ../src/libs/filtering.c:1205 +#: ../src/libs/filtering.c:1267 msgid "define how this rule should interact with the previous one" msgstr "zdefiniuj jak ta reguła powinna współpracować z poprzednią" -#: ../src/libs/filtering.c:1466 +#: ../src/libs/filtering.c:1528 msgid " (off)" msgstr " (wyłączony)" -#: ../src/libs/filtering.c:1663 +#: ../src/libs/filtering.c:1725 msgid "you can't add more rules." msgstr "nie możesz mieć więcej reguł." -#. fill the popover with all pinned rules -#: ../src/libs/filtering.c:1696 +#: ../src/libs/filtering.c:1759 msgid "shown filters" msgstr "widoczne filtry" -#: ../src/libs/filtering.c:1711 +#: ../src/libs/filtering.c:1774 msgid "new filter" msgstr "nowy filtr" -#: ../src/libs/filtering.c:1884 +#. the actions part of the popover +#: ../src/libs/filtering.c:1781 +msgid "actions" +msgstr "akcje" + +#: ../src/libs/filtering.c:1784 +msgid "reset quickfilters" +msgstr "resetuj szybkie filtry" + +#: ../src/libs/filtering.c:1957 msgid "sort order" msgstr "bieżąca kolejność" -#: ../src/libs/filtering.c:1886 +#: ../src/libs/filtering.c:1960 msgid "determine the sort order of shown images" msgstr "wybierz porządek sortowania filtrowanych zdjęć" -#: ../src/libs/filtering.c:1906 +#: ../src/libs/filtering.c:1980 msgid "sort direction" msgstr "kierunek sortowania" -#: ../src/libs/filtering.c:1911 +#: ../src/libs/filtering.c:1985 msgid "remove this sort order" msgstr "usuń ten porządek sortowania" -#: ../src/libs/filtering.c:1995 +#: ../src/libs/filtering.c:2069 #, c-format msgid "you can't have more than %d sort orders" msgstr "nie możesz mieć więcej niż %d kolejności sortowania" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "DESC" msgstr "malejący" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "ASC" msgstr "rosnący" -#: ../src/libs/filtering.c:2160 +#: ../src/libs/filtering.c:2234 msgid "new rule" msgstr "nowa reguła" -#: ../src/libs/filtering.c:2161 +#: ../src/libs/filtering.c:2235 msgid "append new rule to collect images" msgstr "dodaj nową regułę do kolekcji obrazów" -#: ../src/libs/filtering.c:2172 ../src/libs/tools/filter.c:116 +#: ../src/libs/filtering.c:2246 ../src/libs/tools/filter.c:116 msgid "sort by" msgstr "sortowanie:" -#: ../src/libs/filtering.c:2180 +#: ../src/libs/filtering.c:2254 msgid "new sort" msgstr "nowe sortowanie" -#: ../src/libs/filtering.c:2181 +#: ../src/libs/filtering.c:2255 msgid "append new sort to order images" msgstr "dodaj nowe sortowanie do zdjęć" -#: ../src/libs/filtering.c:2184 +#: ../src/libs/filtering.c:2258 msgid "revert to a previous set of sort orders" msgstr "powróć do poprzedniego zestawu reguł sortowania" #. we change the tooltip of the reset button here, as we are sure the header is defined now -#: ../src/libs/filtering.c:2234 +#: ../src/libs/filtering.c:2308 msgid "" "reset\n" "ctrl+click to remove pinned rules too" @@ -21214,7 +21986,7 @@ #: ../src/libs/filters/grouping.c:167 ../src/libs/filters/history.c:153 #: ../src/libs/filters/local_copy.c:142 ../src/libs/filters/module_order.c:161 #: ../src/libs/filters/rating.c:199 ../src/libs/filters/rating.c:210 -#: ../src/libs/filters/rating_range.c:325 +#: ../src/libs/filters/rating_range.c:356 msgid "rules" msgstr "reguły" @@ -21228,7 +22000,7 @@ "i (∩): obrazy posiadające wybrane kolory etykiet łącznie\n" "lub (∪): obrazy posiadające co najmniej jeden wybrany kolor etykiety." -#: ../src/libs/filters/filename.c:365 +#: ../src/libs/filters/filename.c:370 msgid "" "enter filename to search.\n" "multiple values can be separated by ','\n" @@ -21240,11 +22012,11 @@ "\n" "prawy klik aby pobrać istniejące nazwy plików" -#: ../src/libs/filters/filename.c:376 +#: ../src/libs/filters/filename.c:381 msgid "extension" msgstr "rozszerzenie" -#: ../src/libs/filters/filename.c:377 +#: ../src/libs/filters/filename.c:382 msgid "" "enter extension to search with starting dot\n" "multiple values can be separated by ','\n" @@ -21258,7 +22030,7 @@ "\n" "prawy klik aby pobrać występujące rozszerzenia" -#: ../src/libs/filters/filename.c:405 +#: ../src/libs/filters/filename.c:410 msgid "" "click to select filename\n" "ctrl+click to select multiple values" @@ -21266,7 +22038,7 @@ "klik wybiera nazwę pliku\n" "ctrl+klik wybiera wiele wartości" -#: ../src/libs/filters/filename.c:432 +#: ../src/libs/filters/filename.c:437 msgid "" "click to select extension\n" "ctrl+click to select multiple values" @@ -21274,6 +22046,11 @@ "klik wybiera rozszerzenie\n" "ctrl+klik wybiera wiele wartości" +#. the button to close the popup +#: ../src/libs/filters/filename.c:457 +msgid "ok" +msgstr "ok" + #: ../src/libs/filters/grouping.c:141 ../src/libs/filters/grouping.c:169 msgid "ungrouped images" msgstr "niezgrupowane zdjęcia" @@ -21285,8 +22062,8 @@ #. predefined selections #: ../src/libs/filters/grouping.c:169 ../src/libs/filters/history.c:38 #: ../src/libs/filters/local_copy.c:38 ../src/libs/filters/module_order.c:155 -#: ../src/libs/filters/rating_range.c:56 ../src/libs/filters/rating_range.c:72 -#: ../src/libs/filters/rating_range.c:109 ../src/libs/filters/ratio.c:68 +#: ../src/libs/filters/rating_range.c:59 ../src/libs/filters/rating_range.c:83 +#: ../src/libs/filters/rating_range.c:131 ../src/libs/filters/ratio.c:68 #: ../src/libs/filters/ratio.c:81 msgid "all images" msgstr "wszystkie obrazy" @@ -21311,7 +22088,7 @@ msgid "filter by images rating" msgstr "filtruj po ocenie" -#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:542 +#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:596 #: ../src/libs/tools/ratings.c:56 msgid "ratings" msgstr "oceny" @@ -21320,49 +22097,33 @@ msgid "unstarred only" msgstr "tylko bez gwiazdek" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:60 -#: ../src/libs/filters/rating_range.c:75 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:65 +#: ../src/libs/filters/rating_range.c:89 msgid "rejected only" msgstr "tylko odrzucone" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:58 -#: ../src/libs/filters/rating_range.c:73 ../src/libs/filters/rating_range.c:138 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:62 +#: ../src/libs/filters/rating_range.c:86 ../src/libs/filters/rating_range.c:158 msgid "all except rejected" msgstr "wszystkie oprócz odrzuconych" -#: ../src/libs/filters/rating_range.c:61 ../src/libs/filters/rating_range.c:76 +#: ../src/libs/filters/rating_range.c:67 ../src/libs/filters/rating_range.c:91 msgid "not rated only" msgstr "tylko bez gwiazdek" -#: ../src/libs/filters/rating_range.c:99 ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:131 -#: ../src/libs/filters/rating_range.c:275 -msgid "rejected" -msgstr "odrzucone" - -#: ../src/libs/filters/rating_range.c:101 -#: ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:276 -msgid "not rated" -msgstr "bez oceny" - -#: ../src/libs/filters/rating_range.c:117 -msgid "only" -msgstr "tylko" - -#: ../src/libs/filters/rating_range.c:269 +#: ../src/libs/filters/rating_range.c:296 msgid "better" msgstr "lepszy" -#: ../src/libs/filters/rating_range.c:270 +#: ../src/libs/filters/rating_range.c:297 msgid "worse" msgstr "gorsze" -#: ../src/libs/filters/rating_range.c:271 +#: ../src/libs/filters/rating_range.c:298 msgid "cap" msgstr "nakrycie" -#: ../src/libs/filters/rating_range.c:286 +#: ../src/libs/filters/rating_range.c:313 msgid "rating filter" msgstr "filtr oceny zdjęcia" @@ -21400,7 +22161,7 @@ msgid "apply offset and geo-location" msgstr "zastosuj przesunięcie i geolokację" -#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1910 +#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1914 msgid "apply geo-location" msgstr "zastosuj geolokację" @@ -21412,49 +22173,49 @@ "zastosuj przesunięcie i geolokację do pasujących obrazów\n" "operacja podwójna: aby anulować, wciśnij Ctrl-Z dwukrotnie" -#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1911 +#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1915 msgid "apply geo-location to matching images" msgstr "zastosuj geolokację do pasujących zdjęć" -#: ../src/libs/geotagging.c:810 +#: ../src/libs/geotagging.c:809 msgid "GPX file track segments" msgstr "segmenty trasy z pliku GPX" -#: ../src/libs/geotagging.c:830 ../src/libs/geotagging.c:1869 +#: ../src/libs/geotagging.c:831 ../src/libs/geotagging.c:1873 msgid "start time" msgstr "czas początkowy" -#: ../src/libs/geotagging.c:831 +#: ../src/libs/geotagging.c:832 msgid "end time" msgstr "czas końcowy" -#: ../src/libs/geotagging.c:832 ../src/libs/geotagging.c:1871 +#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1875 msgid "points" msgstr "punkty" -#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1873 -#: ../src/libs/image.c:463 +#: ../src/libs/geotagging.c:834 ../src/libs/geotagging.c:1877 +#: ../src/libs/image.c:494 msgid "images" msgstr "zdjęcia" -#: ../src/libs/geotagging.c:926 +#: ../src/libs/geotagging.c:927 msgid "open GPX file" msgstr "otwórz plik GPX" -#: ../src/libs/geotagging.c:927 ../src/libs/tools/lighttable.c:333 -#: ../src/libs/tools/lighttable.c:402 ../src/views/darkroom.c:2232 +#: ../src/libs/geotagging.c:928 ../src/libs/tools/lighttable.c:330 +#: ../src/libs/tools/lighttable.c:399 ../src/views/darkroom.c:2091 msgid "preview" msgstr "podgląd" -#: ../src/libs/geotagging.c:940 +#: ../src/libs/geotagging.c:941 msgid "GPS data exchange format" msgstr "format wymiany danych GPS" -#: ../src/libs/geotagging.c:1739 +#: ../src/libs/geotagging.c:1743 msgid "date/time" msgstr "data/czas" -#: ../src/libs/geotagging.c:1740 +#: ../src/libs/geotagging.c:1744 msgid "" "enter the new date/time (YYYY:MM:DD hh:mm:ss[.sss])\n" "key in the new numbers or scroll over the cell" @@ -21462,42 +22223,42 @@ "wprowadź nową datę/godzinę (rrrr:mm:dd gg:mm:ss[.sss])\n" "wprowadź nowe wartości, lub kręć rolką nad danym polem" -#: ../src/libs/geotagging.c:1744 +#: ../src/libs/geotagging.c:1748 msgid "original date/time" msgstr "oryginalna data/czas" -#: ../src/libs/geotagging.c:1748 +#: ../src/libs/geotagging.c:1752 msgid "lock date/time offset value to apply it onto another selection" msgstr "" "zablokuj wartość przesunięcia daty/godziny aby zaaplikować je do innego " "zaznaczenia" -#: ../src/libs/geotagging.c:1752 +#: ../src/libs/geotagging.c:1756 msgid "date/time offset" msgstr "różnica czasu" -#: ../src/libs/geotagging.c:1753 +#: ../src/libs/geotagging.c:1757 msgid "offset or difference ([-]dd hh:mm:ss[.sss])" msgstr "przesunięcie lub różnica ([-]dd hh:mm:ss[.sss])" #. apply -#: ../src/libs/geotagging.c:1757 +#: ../src/libs/geotagging.c:1761 msgid "apply offset" msgstr "zastosuj różnicę" -#: ../src/libs/geotagging.c:1758 +#: ../src/libs/geotagging.c:1762 msgid "apply offset to selected images" msgstr "zastosuj różnicę czasu do wybranych zdjęć" -#: ../src/libs/geotagging.c:1761 +#: ../src/libs/geotagging.c:1765 msgid "apply date/time" msgstr "zastosuj datę/czas" -#: ../src/libs/geotagging.c:1762 +#: ../src/libs/geotagging.c:1766 msgid "apply the same date/time to selected images" msgstr "zastosuj tę samą datę/czas do wybranych zdjęć" -#: ../src/libs/geotagging.c:1772 +#: ../src/libs/geotagging.c:1776 msgid "" "start typing to show a list of permitted values and select your timezone.\n" "press enter to confirm, so that the asterisk * disappears" @@ -21507,24 +22268,24 @@ "wciśnij enter aby zatwierdzić, znak \"*\" zniknie" #. gpx -#: ../src/libs/geotagging.c:1815 +#: ../src/libs/geotagging.c:1819 msgid "apply GPX track file..." msgstr "zastosuj plik ścieżki GPX..." -#: ../src/libs/geotagging.c:1816 +#: ../src/libs/geotagging.c:1820 msgid "parses a GPX file and updates location of selected images" msgstr "przetwarza plik GPX i aktualizuje lokalizację wybranych zdjęć" -#: ../src/libs/geotagging.c:1827 +#: ../src/libs/geotagging.c:1831 msgctxt "section" msgid "GPX file" msgstr "plik GPX" -#: ../src/libs/geotagging.c:1834 +#: ../src/libs/geotagging.c:1838 msgid "select a GPX track file..." msgstr "zastosuj plik ścieżki GPX..." -#: ../src/libs/geotagging.c:1851 +#: ../src/libs/geotagging.c:1855 msgid "" "list of track segments in the GPX file, for each segment:\n" "- the start date/time in local time (LT)\n" @@ -21540,173 +22301,180 @@ "strefy czasowej\n" "-szczegółowe informacje o czasie po najechaniu myszą" -#: ../src/libs/geotagging.c:1890 +#: ../src/libs/geotagging.c:1894 msgid "preview images" msgstr "podgląd zdjęć" -#: ../src/libs/geotagging.c:1895 +#: ../src/libs/geotagging.c:1899 msgid "show on map matching images" msgstr "pokaż na mapie pasujące zdjęcia" -#: ../src/libs/geotagging.c:1898 +#: ../src/libs/geotagging.c:1902 msgid "select images" msgstr "wybierz zdjęcia" -#: ../src/libs/geotagging.c:1899 +#: ../src/libs/geotagging.c:1903 msgid "select matching images" msgstr "wybierz pasujące zdjęcia" -#: ../src/libs/geotagging.c:1907 +#: ../src/libs/geotagging.c:1911 msgid "number of matching images versus selected images" msgstr "liczba pasujących zdjęć a liczba wybranych zdjęć" -#: ../src/libs/histogram.c:133 +#: ../src/libs/histogram.c:110 msgid "monochromatic" msgstr "monochromatyczność" -#: ../src/libs/histogram.c:134 +#: ../src/libs/histogram.c:111 msgid "analogous" msgstr "analogiczne" -#: ../src/libs/histogram.c:135 +#: ../src/libs/histogram.c:112 msgid "analogous complementary" msgstr "analogiczne komplementarne" -#: ../src/libs/histogram.c:136 +#: ../src/libs/histogram.c:113 msgid "complementary" msgstr "komplementarne" -#: ../src/libs/histogram.c:137 +#: ../src/libs/histogram.c:114 msgid "split complementary" msgstr "komplementarne rozdzielone" -#: ../src/libs/histogram.c:138 +#: ../src/libs/histogram.c:115 msgid "dyad" msgstr "diada" -#: ../src/libs/histogram.c:139 +#: ../src/libs/histogram.c:116 msgid "triad" msgstr "triada" -#: ../src/libs/histogram.c:140 +#: ../src/libs/histogram.c:117 msgid "tetrad" msgstr "tetrada" -#: ../src/libs/histogram.c:146 +#: ../src/libs/histogram.c:123 msgid "vectorscope" msgstr "wektoroskop" # nie bardzo jest polski termin na to -#: ../src/libs/histogram.c:147 +#: ../src/libs/histogram.c:124 msgid "waveform" msgstr "rozkład jasności (waveform)" -#: ../src/libs/histogram.c:148 +#: ../src/libs/histogram.c:125 msgid "RGB parade" msgstr "wykres falowy RGB" -#: ../src/libs/histogram.c:149 ../src/libs/histogram.c:2309 +#: ../src/libs/histogram.c:126 ../src/libs/histogram.c:2622 msgid "histogram" msgstr "histogram" -#: ../src/libs/histogram.c:243 +#: ../src/libs/histogram.c:218 msgid "scopes" msgstr "analizy obrazu" -#: ../src/libs/histogram.c:1542 +#: ../src/libs/histogram.c:757 +msgid "" +"unsupported vectorscope profile selected, it will be replaced with linear " +"Rec2020" +msgstr "" +"nieobsługiwany profil wektoroskopu, zostanie zastąpiony przez liniowy Rec2020" + +#: ../src/libs/histogram.c:1715 msgid "scroll to coarse-rotate" msgstr "przewiń rolką aby zgrubnie obrócić" -#: ../src/libs/histogram.c:1543 +#: ../src/libs/histogram.c:1716 msgid "ctrl+scroll to fine rotate" msgstr "Przewiń z Ctrl aby dokładnie obrócić" -#: ../src/libs/histogram.c:1544 +#: ../src/libs/histogram.c:1717 msgid "shift+scroll to change width" msgstr "przewija z shift aby zmienić szerokość" -#: ../src/libs/histogram.c:1545 +#: ../src/libs/histogram.c:1718 msgid "alt+scroll to cycle" msgstr "przewija z alt aby przeskakiwać" -#: ../src/libs/histogram.c:1556 +#: ../src/libs/histogram.c:1732 msgid "drag to change black point" msgstr "przeciągnij, żeby zmienić punkt czerni" -#: ../src/libs/histogram.c:1557 ../src/libs/histogram.c:1564 +#: ../src/libs/histogram.c:1733 ../src/libs/histogram.c:1740 msgid "double-click resets" msgstr "kliknij dwukrotnie, aby zresetować" -#: ../src/libs/histogram.c:1563 +#: ../src/libs/histogram.c:1739 msgid "drag to change exposure" msgstr "przeciągnij, żeby zmienić ekspozycję" -#: ../src/libs/histogram.c:1725 ../src/libs/histogram.c:1765 +#: ../src/libs/histogram.c:1923 ../src/libs/histogram.c:1965 msgid "set scale to linear" msgstr "ustaw skalę liniową" -#: ../src/libs/histogram.c:1730 ../src/libs/histogram.c:1770 +#: ../src/libs/histogram.c:1928 ../src/libs/histogram.c:1970 msgid "set scale to logarithmic" msgstr "ustaw skalę logarytmiczną" -#: ../src/libs/histogram.c:1746 +#: ../src/libs/histogram.c:1946 msgid "set scope to vertical" msgstr "ustaw zakres na pionowy" -#: ../src/libs/histogram.c:1751 +#: ../src/libs/histogram.c:1951 msgid "set scope to horizontal" msgstr "ustaw zakres na poziomy" -#: ../src/libs/histogram.c:1780 +#: ../src/libs/histogram.c:1980 msgid "set view to AzBz" msgstr "ustaw widok na AzBz" -#: ../src/libs/histogram.c:1786 +#: ../src/libs/histogram.c:1986 msgid "set view to RYB" msgstr "ustaw widok na RYB" -#: ../src/libs/histogram.c:1792 +#: ../src/libs/histogram.c:1992 msgid "set view to u*v*" msgstr "ustaw widok na u*v*" -#: ../src/libs/histogram.c:2312 ../src/libs/histogram.c:2370 +#: ../src/libs/histogram.c:2625 ../src/libs/histogram.c:2691 msgid "cycle histogram modes" msgstr "cyklicznie przełączaj tryby histogramu" -#: ../src/libs/histogram.c:2316 ../src/libs/histogram.c:2371 +#: ../src/libs/histogram.c:2630 ../src/libs/histogram.c:2693 msgid "hide histogram" msgstr "ukryj histogram" -#: ../src/libs/histogram.c:2372 ../src/libs/histogram.c:2401 +#: ../src/libs/histogram.c:2696 ../src/libs/histogram.c:2729 msgid "switch histogram view" msgstr "przełącz tryb histogramu" -#: ../src/libs/histogram.c:2379 +#: ../src/libs/histogram.c:2704 msgid "toggle blue channel" msgstr "przełącz niebieski kanał" -#: ../src/libs/histogram.c:2381 ../src/libs/histogram.c:2389 -#: ../src/libs/histogram.c:2397 +#: ../src/libs/histogram.c:2706 ../src/libs/histogram.c:2715 +#: ../src/libs/histogram.c:2724 msgid "toggle colors" msgstr "przełącz kolory" -#: ../src/libs/histogram.c:2387 +#: ../src/libs/histogram.c:2713 msgid "toggle green channel" msgstr "przełącz zielony kanał" -#: ../src/libs/histogram.c:2395 +#: ../src/libs/histogram.c:2722 msgid "toggle red channel" msgstr "przełącz czerwony kanał" -#: ../src/libs/histogram.c:2405 +#: ../src/libs/histogram.c:2734 msgid "cycle vectorscope types" msgstr "przestaw typ wektoroskopu" -#: ../src/libs/histogram.c:2413 +#: ../src/libs/histogram.c:2745 msgid "color harmonies" msgstr "schematy kolorystyczne" -#: ../src/libs/histogram.c:2425 +#: ../src/libs/histogram.c:2759 msgid "cycle color harmonies" msgstr "przełaczaj schematy kolorystyczne" @@ -21750,10 +22518,18 @@ msgid "mask mode" msgstr "tryb maski" +#: ../src/libs/history.c:949 +msgid "blend mode" +msgstr "tryb mieszania" + #: ../src/libs/history.c:951 msgid "blend operation" msgstr "operacja mieszania" +#: ../src/libs/history.c:953 +msgid "blend fulcrum" +msgstr "punkt podparcia mieszania" + #: ../src/libs/history.c:961 msgid "mask blur" msgstr "rozmycie maski" @@ -21797,196 +22573,196 @@ msgid "parametric input mask:" msgstr "parametryczna maska wejściowa:" -#: ../src/libs/history.c:1323 +#: ../src/libs/history.c:1322 msgid "delete image's history?" msgstr "skasować historię zdjęcia?" -#: ../src/libs/history.c:1324 +#: ../src/libs/history.c:1323 msgid "do you really want to clear history of current image?" msgstr "czy na pewno wyczyścić historię wybranego zdjęcia?" -#: ../src/libs/image.c:72 -msgid "selected image[s]" -msgstr "wybrane zdjęcia" +#: ../src/libs/image.c:74 +msgid "actions on selection" +msgstr "akcje na zaznaczonych" -#: ../src/libs/image.c:284 +#: ../src/libs/image.c:302 msgid "delete (trash)" msgstr "usuń (kosz)" -#: ../src/libs/image.c:287 +#: ../src/libs/image.c:305 msgid "physically delete from disk (using trash if possible)" msgstr "fizycznie usuń z dysku (jeśli możliwe – do kosza)" -#: ../src/libs/image.c:288 +#: ../src/libs/image.c:306 msgid "physically delete from disk immediately" msgstr "fizycznie usuń natychmiast obrazy z dysku" -#: ../src/libs/image.c:474 ../src/libs/modulegroups.c:3811 -#: ../src/libs/styles.c:876 +#: ../src/libs/image.c:506 ../src/libs/modulegroups.c:3813 +#: ../src/libs/styles.c:880 msgid "remove" msgstr "usuń" -#: ../src/libs/image.c:475 +#: ../src/libs/image.c:508 msgid "remove images from the image library, without deleting" msgstr "usuń zdjęcia z bazy danych, bez fizycznego usunięcia" -#: ../src/libs/image.c:483 +#: ../src/libs/image.c:517 msgid "move..." msgstr "przenieś..." -#: ../src/libs/image.c:484 +#: ../src/libs/image.c:519 msgid "move to other folder" msgstr "przenosi do innego katalogu" -#: ../src/libs/image.c:487 +#: ../src/libs/image.c:522 msgid "copy..." msgstr "kopiuj..." -#: ../src/libs/image.c:488 +#: ../src/libs/image.c:524 msgid "copy to other folder" msgstr "kopiuje do innego katalogu" -#: ../src/libs/image.c:491 +#: ../src/libs/image.c:528 msgid "create HDR" msgstr "utwórz HDR" -#: ../src/libs/image.c:492 +#: ../src/libs/image.c:530 msgid "create a high dynamic range image from selected shots" msgstr "tworzy obraz hdr z wybranych zdjęć" -#: ../src/libs/image.c:496 +#: ../src/libs/image.c:535 msgid "add a duplicate to the image library, including its history stack" msgstr "dodaje duplikat do kolekcji, razem z jego historią" -#: ../src/libs/image.c:502 ../src/libs/image.c:505 +#: ../src/libs/image.c:542 ../src/libs/image.c:547 msgid "rotate selected images 90 degrees CCW" msgstr "obraca wybrane obrazy o 90 stopni w lewo" -#: ../src/libs/image.c:509 ../src/libs/image.c:512 +#: ../src/libs/image.c:553 ../src/libs/image.c:558 msgid "rotate selected images 90 degrees CW" msgstr "obraca wybrane obrazy o 90 stopni w prawo" -#: ../src/libs/image.c:514 +#: ../src/libs/image.c:561 msgid "reset rotation" msgstr "resetuj obrót" -#: ../src/libs/image.c:515 +#: ../src/libs/image.c:563 msgid "reset rotation to EXIF data" msgstr "przywraca domyślny obrót zdjęcia" -#: ../src/libs/image.c:518 +#: ../src/libs/image.c:566 msgid "copy locally" msgstr "skopiuj lokalnie" -#: ../src/libs/image.c:519 +#: ../src/libs/image.c:568 msgid "copy the image locally" msgstr "tworzy lokalną kopię obrazu" -#: ../src/libs/image.c:522 +#: ../src/libs/image.c:572 msgid "resync local copy" msgstr "synch. kopię lokalną" -#: ../src/libs/image.c:523 +#: ../src/libs/image.c:574 msgid "synchronize the image's XMP and remove the local copy" msgstr "synchronizuje dane XMP zdjęcia i usuwa kopię lokalną" -#: ../src/libs/image.c:526 +#: ../src/libs/image.c:578 msgctxt "selected images action" msgid "group" msgstr "grupuj" -#: ../src/libs/image.c:527 +#: ../src/libs/image.c:580 msgid "add selected images to expanded group or create a new one" msgstr "dodaje wybrane zdjęcia do widocznej grupy lub tworzy nową" -#: ../src/libs/image.c:531 +#: ../src/libs/image.c:584 msgid "ungroup" msgstr "rozgrupuj" -#: ../src/libs/image.c:532 +#: ../src/libs/image.c:586 msgid "remove selected images from the group" msgstr "usuwa wybrane zdjęcia z grupy" -#: ../src/libs/image.c:544 +#: ../src/libs/image.c:598 msgid "select ratings metadata" msgstr "wybierz metadane ocen" -#: ../src/libs/image.c:550 +#: ../src/libs/image.c:605 msgid "colors" msgstr "kolory" -#: ../src/libs/image.c:552 +#: ../src/libs/image.c:607 msgid "select colors metadata" msgstr "wybierz metadane koloru" -#: ../src/libs/image.c:560 +#: ../src/libs/image.c:616 msgid "select tags metadata" msgstr "wybierz metadane etykiet" -#: ../src/libs/image.c:568 +#: ../src/libs/image.c:625 msgid "select geo tags metadata" msgstr "wybierz metadane etykiet geo" -#: ../src/libs/image.c:576 +#: ../src/libs/image.c:636 msgid "select darktable metadata (from metadata editor module)" msgstr "wybierz metadane darktable (z modułu edytora metadanych)" -#: ../src/libs/image.c:584 +#: ../src/libs/image.c:649 msgid "set the selected image as source of metadata" msgstr "ustaw wybrany obraz jako źródło metadanych" -#: ../src/libs/image.c:589 +#: ../src/libs/image.c:656 msgid "paste selected metadata on selected images" msgstr "zapisuje metadane dla wybranych zdjęć" -#: ../src/libs/image.c:593 +#: ../src/libs/image.c:661 msgid "clear selected metadata on selected images" msgstr "czyści metadane dla wybranych zdjęć" -#: ../src/libs/image.c:598 +#: ../src/libs/image.c:667 msgid "how to handle existing metadata" msgstr "jak traktować istniejące metadane" -#: ../src/libs/image.c:601 +#: ../src/libs/image.c:670 msgid "merge" msgstr "połącz" -#: ../src/libs/image.c:605 +#: ../src/libs/image.c:675 msgid "update image information to match changes to file" msgstr "aktualizuje informacje o zdjęciu na podstawie zmian w pliku" -#: ../src/libs/image.c:609 +#: ../src/libs/image.c:680 msgid "set selection as monochrome images and activate monochrome workflow" msgstr "" "oznacz wybrane obrazy jako monochromatyczne i aktywuj tryb pracy dla obrazów " "monochromatycznych" -#: ../src/libs/image.c:613 +#: ../src/libs/image.c:684 msgid "set selection as color images" msgstr "oznacz wybrane zdjęcia jako kolorowe" -#: ../src/libs/image.c:625 +#: ../src/libs/image.c:696 msgid "duplicate virgin" msgstr "zduplikuj bez obróbki" -#: ../src/libs/import.c:263 +#: ../src/libs/import.c:264 #, c-format msgid "device \"%s\" connected on port \"%s\"." msgstr "urządzenie „%s” podłączone do portu „%s”." -#: ../src/libs/import.c:273 ../src/libs/import.c:334 ../src/libs/import.c:1692 +#: ../src/libs/import.c:274 ../src/libs/import.c:335 ../src/libs/import.c:1701 msgid "copy & import from camera" msgstr "kopiuj i importuj z aparatu" -#: ../src/libs/import.c:284 ../src/libs/import.c:336 +#: ../src/libs/import.c:285 ../src/libs/import.c:337 msgid "tethered shoot" msgstr "robienie zdjęć" -#: ../src/libs/import.c:291 ../src/libs/import.c:337 +#: ../src/libs/import.c:292 ../src/libs/import.c:338 msgid "unmount camera" msgstr "odmontuj aparat" -#: ../src/libs/import.c:312 +#: ../src/libs/import.c:313 msgid "" "camera is locked by another application\n" "make sure it is no longer mounted\n" @@ -21996,15 +22772,15 @@ "upewnij się, że nie jest już zamontowany\n" "lub zamknij blokującą aplikację" -#: ../src/libs/import.c:315 +#: ../src/libs/import.c:316 msgid "tethering and importing is disabled for this camera" msgstr "tethering i import z tego aparatu jest wyłączony" -#: ../src/libs/import.c:317 ../src/libs/import.c:335 +#: ../src/libs/import.c:318 ../src/libs/import.c:336 msgid "mount camera" msgstr "zamontuj aparat" -#: ../src/libs/import.c:747 +#: ../src/libs/import.c:754 #, c-format msgid "%d image out of %d selected" msgid_plural "%d images out of %d selected" @@ -22012,23 +22788,23 @@ msgstr[1] "wybrane zdjęcia: %d z %d" msgstr[2] "wybrane zdjęcia: %d z %d" -#: ../src/libs/import.c:1039 +#: ../src/libs/import.c:1046 msgid "you can't delete the selected place" msgstr "nie możesz usunąć wybranego miejsca" -#: ../src/libs/import.c:1153 +#: ../src/libs/import.c:1160 msgid "choose the root of the folder tree below" msgstr "wybierz początkowy folder drzewa folderów" -#: ../src/libs/import.c:1156 +#: ../src/libs/import.c:1163 msgid "places" msgstr "miejsca" -#: ../src/libs/import.c:1162 +#: ../src/libs/import.c:1169 msgid "restore all default places you have removed by right-click" msgstr "przywróć wszystkie domyślne miejsca, usunięte prawym klikiem" -#: ../src/libs/import.c:1167 +#: ../src/libs/import.c:1174 msgid "" "add a custom place\n" "\n" @@ -22038,79 +22814,107 @@ "\n" "prawy klik na miejscu usuwa je" -#: ../src/libs/import.c:1174 +#: ../src/libs/import.c:1181 msgid "you can add custom places using the plus icon" msgstr "możesz dodawać własne miejsca z pomocą ikony plusa" -#: ../src/libs/import.c:1199 +#: ../src/libs/import.c:1206 msgid "select a folder to see the content" msgstr "wybierz folder, żeby zobaczyć jego zawartość" -#: ../src/libs/import.c:1202 +#: ../src/libs/import.c:1209 msgid "folders" msgstr "katalogi" -#: ../src/libs/import.c:1272 +#: ../src/libs/import.c:1279 msgid "home" msgstr "dom" -#: ../src/libs/import.c:1284 +#: ../src/libs/import.c:1291 msgid "pictures" msgstr "zdjęcia" -#: ../src/libs/import.c:1548 +#: ../src/libs/import.c:1557 msgid "mark already imported pictures" msgstr "zaznacz już zaimportowane zdjęcia" -#: ../src/libs/import.c:1562 +#: ../src/libs/import.c:1571 msgid "modified" msgstr "zmodyfikowano" -#: ../src/libs/import.c:1567 +#: ../src/libs/import.c:1576 msgid "file 'modified date/time', may be different from 'Exif date/time'" msgstr "plikowa 'data/czas modyfikacji' może różnio" -#: ../src/libs/import.c:1579 +#: ../src/libs/import.c:1588 msgid "show/hide thumbnails" msgstr "pokaż/ukryj miniaturki" -#: ../src/libs/import.c:1649 +#: ../src/libs/import.c:1658 msgid "naming rules" msgstr "reguły tworzenia nazw" -#: ../src/libs/import.c:1690 +#: ../src/libs/import.c:1699 msgid "add to library" msgstr "dodaj do biblioteki" -#: ../src/libs/import.c:1691 +#: ../src/libs/import.c:1700 msgid "copy & import" msgstr "kopiuj i importuj" -#: ../src/libs/import.c:1730 +#: ../src/libs/import.c:1740 msgid "select new" msgstr "wybierz nowy" -#: ../src/libs/import.c:1773 +#: ../src/libs/import.c:1783 msgid "please wait while prefetching the list of images from camera..." msgstr "proszę czekać, trwa pobieranie listy zdjęć z aparatu..." -#: ../src/libs/import.c:1907 +#: ../src/libs/import.c:1922 msgid "invalid override date/time format" msgstr "niewłaściwy format daty/czasu do nadpisania" -#: ../src/libs/import.c:2022 +#: ../src/libs/import.c:1986 +msgid "import base directory" +msgstr "importuj katalog bazowy" + +#: ../src/libs/import.c:1987 +msgid "" +"before copying images to the darktable base directory make sure it is " +"defined as you prefer.\n" +"further information can be found in the darktable manual.\n" +"\n" +"inspect darktable preferences -> import.\n" +"check and possibly correct the 'base directory naming pattern'" +msgstr "" +"przed kopiowaniem obrazów do katalogu bazowego darktable upewnij się, że " +"proces jest zdefiniowany tak jak preferujesz.\n" +"dalsze informacje w manualu darktable.\n" +"\n" +"sprawdź preferencje darktable -> import.\n" +"skontroluj i ewentualnie popraw 'wzór nazewnictwa kataloku bazowego'" + +#: ../src/libs/import.c:1991 +msgid "_come back & check" +msgstr "_powróć i sprawdź" + +#: ../src/libs/import.c:1991 +msgid "_understood & done" +msgstr "_zrozumiane i zrobione" + +#: ../src/libs/import.c:2057 msgid "add to library..." msgstr "dodaj do biblioteki..." -#: ../src/libs/import.c:2023 +#: ../src/libs/import.c:2058 msgid "add existing images to the library" msgstr "dodaj istniejące zdjęcia do biblioteki" -#: ../src/libs/import.c:2029 +#: ../src/libs/import.c:2064 msgid "copy & import..." msgstr "kopiuj i importuj..." -#: ../src/libs/import.c:2030 +#: ../src/libs/import.c:2065 msgid "" "copy and optionally rename images before adding them to the library\n" "patterns can be defined to rename the images and specify the destination " @@ -22120,15 +22924,15 @@ "do zmiany nazw zdjęć i docelowych folderów możesz wykorzystać wzorce" #. collapsible section -#: ../src/libs/import.c:2053 +#: ../src/libs/import.c:2088 msgid "parameters" msgstr "parametry" -#: ../src/libs/ioporder.c:204 +#: ../src/libs/ioporder.c:202 msgid "v3.0 for RAW input (default)" msgstr "wer. 3.0 dla wejścia raw (domyślny)" -#: ../src/libs/ioporder.c:210 +#: ../src/libs/ioporder.c:208 msgid "v3.0 for JPEG/non-RAW input" msgstr "wer. 3.0 dla wejścia JPEG/nie-raw" @@ -22144,11 +22948,11 @@ msgid "nothing to save" msgstr "nic do zapisania" -#: ../src/libs/lib.c:1105 +#: ../src/libs/lib.c:1106 msgid "show module" msgstr "wyświetl moduł" -#: ../src/libs/lib.c:1430 +#: ../src/libs/lib.c:1431 msgid "utility module" msgstr "moduły użytkowe" @@ -22380,167 +23184,109 @@ msgid "map settings" msgstr "ustawienia mapy" -#: ../src/libs/map_settings.c:107 +#: ../src/libs/map_settings.c:89 msgid "map source" msgstr "źródło mapy" -#: ../src/libs/map_settings.c:112 +#: ../src/libs/map_settings.c:90 msgid "select the source of the map. some entries might not work" msgstr "wybór źródła mapy. niektóre opcje mogą nie działać" -#: ../src/libs/masks.c:107 +#: ../src/libs/masks.c:108 msgid "feather" msgstr "wtapianie" -#: ../src/libs/masks.c:114 -msgid "hardness (relative)" -msgstr "twardość (względna)" - -#: ../src/libs/masks.c:115 -msgid "hardness (absolute)" -msgstr "twardość (bezwzględna)" - -#: ../src/libs/masks.c:116 -msgid "opacity (relative)" -msgstr "krycie (względne)" - -#: ../src/libs/masks.c:117 -msgid "opacity (absolute)" -msgstr "krycie (bezwzględne)" - -#: ../src/libs/masks.c:118 -msgid "brush size (relative)" -msgstr "rozmiar pędzla (względny)" - -#: ../src/libs/masks.c:121 -msgid "low" -msgstr "niska" - -#: ../src/libs/masks.c:122 -msgid "medium" -msgstr "średnia" - -#: ../src/libs/masks.c:123 -msgid "high" -msgstr "wysoka" - -#: ../src/libs/masks.c:381 +#: ../src/libs/masks.c:357 #, c-format msgid "group #%d" msgstr "grupa nr %d" -#: ../src/libs/masks.c:1081 +#: ../src/libs/masks.c:1097 msgid "duplicate this shape" msgstr "utwórz kopię tego kształtu" -#: ../src/libs/masks.c:1085 +#: ../src/libs/masks.c:1101 msgid "delete this shape" msgstr "usuń ten kształt" -#: ../src/libs/masks.c:1091 +#: ../src/libs/masks.c:1107 msgid "delete group" msgstr "usuń grupę" -#: ../src/libs/masks.c:1098 +#: ../src/libs/masks.c:1114 msgid "remove from group" msgstr "usuń z grupy" -#: ../src/libs/masks.c:1106 +#: ../src/libs/masks.c:1122 msgid "group the forms" msgstr "zgrupuj formy" -#: ../src/libs/masks.c:1114 +#: ../src/libs/masks.c:1130 msgid "use inverted shape" msgstr "użyj odwróconego kształtu" -#: ../src/libs/masks.c:1121 +#: ../src/libs/masks.c:1134 msgid "mode: union" msgstr "tryb : suma" -#: ../src/libs/masks.c:1127 +#: ../src/libs/masks.c:1136 msgid "mode: intersection" msgstr "tryb : część wspólna" -#: ../src/libs/masks.c:1133 +#: ../src/libs/masks.c:1138 msgid "mode: difference" msgstr "tryb : różnica" -#: ../src/libs/masks.c:1139 +#: ../src/libs/masks.c:1140 msgid "mode: sum" msgstr "tryb: suma" -#: ../src/libs/masks.c:1145 +#: ../src/libs/masks.c:1142 msgid "mode: exclusion" msgstr "tryb : różnica" -#: ../src/libs/masks.c:1164 +#: ../src/libs/masks.c:1158 msgid "cleanup unused shapes" msgstr "usuń nieużywane kształty" -#: ../src/libs/masks.c:1811 +#: ../src/libs/masks.c:1807 msgid "created shapes" msgstr "utworzone kształty" -#: ../src/libs/masks.c:1904 ../src/libs/masks.c:1919 ../src/libs/masks.c:1939 -#: ../src/libs/masks.c:1955 +#: ../src/libs/masks.c:1900 ../src/libs/masks.c:1915 ../src/libs/masks.c:1929 +#: ../src/libs/masks.c:1933 msgid "properties" msgstr "właściwości" -#: ../src/libs/masks.c:1907 +#: ../src/libs/masks.c:1903 msgid "no shapes selected" msgstr "żaden kształt nie został wybrany" -#: ../src/libs/masks.c:1940 +#: ../src/libs/masks.c:1929 msgid "pressure" msgstr "nacisk" -#: ../src/libs/masks.c:1941 -msgid "" -"pen pressure control for brush masks\n" -"'off': pressure reading ignored,\n" -"'hardness'/'opacity'/'brush size': pressure reading controls specified " -"attribute,\n" -"'absolute'/'relative': pressure reading is taken directly as attribute value " -"or multiplied with pre-defined setting." -msgstr "" -"kontrola pędzli maski naciskiem rysika\n" -"\"brak\" - nacisk będzie ignorowany, \n" -"\"twardość\"/\"krycie\"/\"rozmiar pędzla\" - nacisk steruje wybranym " -"parametrem,\n" -"bezwzględne/względne - nacisk będzie stosowany bezpośrednio lub mnożony " -"przez wstępnie ustawiony współczynnik." - -#: ../src/libs/masks.c:1956 +#: ../src/libs/masks.c:1933 msgid "smoothing" msgstr "wygładzanie" -#: ../src/libs/masks.c:1957 -msgid "" -"smoothing of brush strokes\n" -"stronger smoothing leads to fewer nodes and easier editing but with lower " -"control of accuracy." -msgstr "" -"wygładzanie pociągnięć pędzla\n" -"silniejsze wygładzanie prowadzi do mniejszej ilości węzłów i skutkuje " -"łatwiejszą edycją, ale daje mniejszą kontrolę nad dokładnością." - -#: ../src/libs/metadata.c:64 +#: ../src/libs/metadata.c:60 msgid "metadata editor" msgstr "edytor metadanych" -#: ../src/libs/metadata.c:206 ../src/libs/metadata.c:496 -msgid "<leave unchanged>" -msgstr "<zostaw niezmienione>" - -#: ../src/libs/metadata.c:630 ../src/libs/metadata_view.c:1192 +#: ../src/libs/metadata.c:459 ../src/libs/metadata_view.c:1219 msgid "metadata settings" msgstr "ustawienia metadanych" -#: ../src/libs/metadata.c:683 ../src/libs/metadata_view.c:1237 +#: ../src/libs/metadata.c:461 ../src/libs/metadata_view.c:1221 +msgid "_default" +msgstr "_domyślne" + +#: ../src/libs/metadata.c:516 ../src/libs/metadata_view.c:1267 msgid "visible" msgstr "widoczne" -#: ../src/libs/metadata.c:688 +#: ../src/libs/metadata.c:524 msgid "" "tick if the corresponding metadata is of interest for you\n" "it will be visible from metadata editor, collection and import module\n" @@ -22550,19 +23296,19 @@ "będą widoczne w edytorze metadanych, kolekcji, i module importu\n" "będą też eksportowane" -#: ../src/libs/metadata.c:693 ../src/libs/tagging.c:1683 -#: ../src/libs/tagging.c:1827 +#: ../src/libs/metadata.c:529 ../src/libs/tagging.c:1705 +#: ../src/libs/tagging.c:1854 msgid "private" msgstr "prywatne" -#: ../src/libs/metadata.c:698 +#: ../src/libs/metadata.c:534 msgid "" "tick if you want to keep this information private (not exported with images)" msgstr "" "zaznacz, jeśli chcesz, żeby informacje pozostały prywatne (nie będą " "eksportowane ze zdjęciami)" -#: ../src/libs/metadata.c:857 +#: ../src/libs/metadata.c:691 msgid "" "metadata text\n" "ctrl+enter inserts a new line (caution, may not be compatible with standard " @@ -22578,157 +23324,169 @@ "w takim wypadku kliknięcie prawym umożliwia wybranie jednej z nich.\n" "naciśnij escape aby zamknąć okienko" -#: ../src/libs/metadata.c:902 +#: ../src/libs/metadata.c:736 msgid "write metadata for selected images" msgstr "zapisuje metadane dla wybranych zdjęć" +#: ../src/libs/metadata.c:737 +msgid "cancel" +msgstr "anuluj" + +#: ../src/libs/metadata.c:738 +msgid "ignore changed metadata" +msgstr "ignoruj zmienione metadane" + #. <title>\0<description>\0<rights>\0<creator>\0<publisher> -#: ../src/libs/metadata.c:958 +#: ../src/libs/metadata.c:793 msgid "CC BY" msgstr "CC BY" -#: ../src/libs/metadata.c:959 +#: ../src/libs/metadata.c:794 msgid "Creative Commons Attribution (CC BY)" msgstr "Creative Commons Uznanie autorstwa (CC BY)" -#: ../src/libs/metadata.c:960 +#: ../src/libs/metadata.c:795 msgid "CC BY-SA" msgstr "CC BY-SA" -#: ../src/libs/metadata.c:961 +#: ../src/libs/metadata.c:796 msgid "Creative Commons Attribution-ShareAlike (CC BY-SA)" msgstr "Creative Commons Uznanie autorstwa-Na tych samych warunkach (CC BY-SA)" -#: ../src/libs/metadata.c:962 +#: ../src/libs/metadata.c:797 msgid "CC BY-ND" msgstr "CC BY-ND" -#: ../src/libs/metadata.c:963 +#: ../src/libs/metadata.c:798 msgid "Creative Commons Attribution-NoDerivs (CC BY-ND)" msgstr "Creative Commons Uznanie autorstwa-Bez utworów zależnych (CC BY-ND)" -#: ../src/libs/metadata.c:964 +#: ../src/libs/metadata.c:799 msgid "CC BY-NC" msgstr "CC BY-NC" -#: ../src/libs/metadata.c:965 +#: ../src/libs/metadata.c:800 msgid "Creative Commons Attribution-NonCommercial (CC BY-NC)" msgstr "Creative Commons Uznanie autorstwa-Użycie niekomercyjne (CC BY-NC)" -#: ../src/libs/metadata.c:966 +#: ../src/libs/metadata.c:801 msgid "CC BY-NC-SA" msgstr "CC BY-NC-SA" -#: ../src/libs/metadata.c:967 +#: ../src/libs/metadata.c:802 msgid "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" msgstr "" "Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Na tych samych " "warunkach (CC BY-NC-SA)" -#: ../src/libs/metadata.c:968 +#: ../src/libs/metadata.c:803 msgid "CC BY-NC-ND" msgstr "CC BY-NC-ND" -#: ../src/libs/metadata.c:969 +#: ../src/libs/metadata.c:804 msgid "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" msgstr "" "Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Bez utworów " "zależnych (CC BY-NC-ND)" -#: ../src/libs/metadata.c:970 ../src/libs/metadata.c:971 +#: ../src/libs/metadata.c:805 ../src/libs/metadata.c:806 msgid "all rights reserved" msgstr "wszystkie prawa zastrzeżone" #. internal -#: ../src/libs/metadata_view.c:123 +#: ../src/libs/metadata_view.c:125 msgid "filmroll" msgstr "rolka filmu" -#: ../src/libs/metadata_view.c:125 +#: ../src/libs/metadata_view.c:127 msgid "group id" msgstr "id grupy" -#: ../src/libs/metadata_view.c:127 +#: ../src/libs/metadata_view.c:129 msgid "version" msgstr "wersja" -#: ../src/libs/metadata_view.c:130 +#: ../src/libs/metadata_view.c:132 msgid "import timestamp" msgstr "znacznik czasu importu" -#: ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:133 msgid "change timestamp" msgstr "znacznik czasu zmiany" -#: ../src/libs/metadata_view.c:132 +#: ../src/libs/metadata_view.c:134 msgid "export timestamp" msgstr "znacznik czasu eksportu" -#: ../src/libs/metadata_view.c:133 +#: ../src/libs/metadata_view.c:135 msgid "print timestamp" msgstr "znacznik czasu wydruku" -#: ../src/libs/metadata_view.c:134 +#: ../src/libs/metadata_view.c:136 msgid "flags" msgstr "flagi" -#: ../src/libs/metadata_view.c:144 +#: ../src/libs/metadata_view.c:146 +msgid "35mm equiv focal length" +msgstr "ekwiwalent ogniskowej dla 35mm" + +#: ../src/libs/metadata_view.c:148 msgid "focus distance" msgstr "odległość" -#: ../src/libs/metadata_view.c:146 +#: ../src/libs/metadata_view.c:150 msgid "datetime" msgstr "data/czas" -#: ../src/libs/metadata_view.c:149 +#: ../src/libs/metadata_view.c:153 msgid "export width" msgstr "szerokość (eksport)" -#: ../src/libs/metadata_view.c:150 +#: ../src/libs/metadata_view.c:154 msgid "export height" msgstr "wysokość (eksport)" -#: ../src/libs/metadata_view.c:158 +#: ../src/libs/metadata_view.c:162 msgid "longitude" msgstr "długość geograficzna" -#: ../src/libs/metadata_view.c:159 +#: ../src/libs/metadata_view.c:163 msgid "elevation" msgstr "wysokość" -#: ../src/libs/metadata_view.c:163 +#: ../src/libs/metadata_view.c:167 msgid "categories" msgstr "kategorie" -#: ../src/libs/metadata_view.c:170 +#: ../src/libs/metadata_view.c:174 msgid "image information" msgstr "informacje o obrazie" -#: ../src/libs/metadata_view.c:330 +#: ../src/libs/metadata_view.c:334 msgid "unused/deprecated" msgstr "nieużywana (zdezaktualizowana)" -#: ../src/libs/metadata_view.c:331 +#: ../src/libs/metadata_view.c:335 msgid "LDR" msgstr "LDR" -#: ../src/libs/metadata_view.c:334 +#: ../src/libs/metadata_view.c:338 msgid "marked for deletion" msgstr "zaznaczony do skasowania" -#: ../src/libs/metadata_view.c:335 +#: ../src/libs/metadata_view.c:339 msgid "auto-applying presets applied" msgstr "zastosowano ustawienia automatyczne" -#: ../src/libs/metadata_view.c:337 +#: ../src/libs/metadata_view.c:341 msgid "has .txt" msgstr "ma .txt" -#: ../src/libs/metadata_view.c:338 +#: ../src/libs/metadata_view.c:342 msgid "has .wav" msgstr "ma .wav" -#: ../src/libs/metadata_view.c:356 +#: ../src/libs/metadata_view.c:360 #, c-format msgid "image has %d star" msgid_plural "image has %d stars" @@ -22736,16 +23494,16 @@ msgstr[1] "zdjęcie ma %d gwiazdki" msgstr[2] "zdjęcie ma %d gwiazdek" -#: ../src/libs/metadata_view.c:432 +#: ../src/libs/metadata_view.c:436 #, c-format msgid "loader: %s" msgstr "loader: %s" -#: ../src/libs/metadata_view.c:623 +#: ../src/libs/metadata_view.c:626 msgid "<various values>" msgstr "<różne wartości>" -#: ../src/libs/metadata_view.c:636 +#: ../src/libs/metadata_view.c:639 #, c-format msgid "" "double-click to jump to film roll\n" @@ -22754,32 +23512,28 @@ "kliknij dwukrotnie, aby przejść do rolki filmu\n" "%s" -#: ../src/libs/metadata_view.c:728 +#: ../src/libs/metadata_view.c:731 #, c-format msgid "%+.2f EV" msgstr "%+.2f EV" -#: ../src/libs/metadata_view.c:735 -#, c-format -msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" -msgstr "%.1f mm (%.1f mm ekwiwalent 35mm, mnożnik %.1f)" - -#: ../src/libs/metadata_view.c:740 +#: ../src/libs/metadata_view.c:737 ../src/libs/metadata_view.c:749 +#: ../src/libs/metadata_view.c:754 #, c-format msgid "%.1f mm" msgstr "%.1f mm" -#: ../src/libs/metadata_view.c:751 +#: ../src/libs/metadata_view.c:778 #, c-format msgid "infinity" msgstr "nieskończoność" -#: ../src/libs/metadata_view.c:755 +#: ../src/libs/metadata_view.c:782 #, c-format msgid "%.2f m" msgstr "%.2f m" -#: ../src/libs/metadata_view.c:1232 +#: ../src/libs/metadata_view.c:1262 msgid "" "drag and drop one row at a time until you get the desired order\n" "untick to hide metadata which are not of interest for you\n" @@ -22789,7 +23543,7 @@ "odznacz aby ukryć metadane, które Cię nie interesują\n" "jeśli potrzebujesz innych ustawień, użyj styli" -#: ../src/libs/metadata_view.c:1388 +#: ../src/libs/metadata_view.c:1423 msgid "jump to film roll" msgstr "przejdź do rolki filmu" @@ -22814,7 +23568,7 @@ msgid "recent collections settings" msgstr "ustawienia ostatnich kolekcji" -#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1769 +#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1753 msgid "workflow: scene-referred" msgstr "organizacja pracy: scenocentryczna" @@ -22832,12 +23586,12 @@ #. FIXME don't check here if on/off is enabled, because it depends on image (reload_defaults) #. respond later to image changed signal -#: ../src/libs/modulegroups.c:306 ../src/libs/modulegroups.c:318 -#: ../src/libs/modulegroups.c:2427 ../src/libs/modulegroups.c:2429 +#: ../src/libs/modulegroups.c:307 ../src/libs/modulegroups.c:319 +#: ../src/libs/modulegroups.c:2411 ../src/libs/modulegroups.c:2413 msgid "on-off" msgstr "wł.-wył." -#: ../src/libs/modulegroups.c:498 ../src/libs/modulegroups.c:501 +#: ../src/libs/modulegroups.c:501 ../src/libs/modulegroups.c:504 msgid "" "this quick access widget is disabled as there are multiple instances of this " "module present. Please use the full module to access this widget..." @@ -22846,157 +23600,157 @@ "instancji tego modułu. Użyj pełnego modułu, żeby uzyskać dostęp do tego " "widżetu..." -#: ../src/libs/modulegroups.c:591 +#: ../src/libs/modulegroups.c:594 msgid "(some features may only be available in the full module interface)" msgstr "(niektóre funkcje dostępne są tylko w pełnej wersji modułu)" -#: ../src/libs/modulegroups.c:635 +#: ../src/libs/modulegroups.c:632 #, c-format msgid "go to the full version of the %s module" msgstr "przejdź do pełnej wersji modułu %s" -#: ../src/libs/modulegroups.c:1556 ../src/libs/modulegroups.c:1641 -#: ../src/libs/modulegroups.c:1677 ../src/libs/modulegroups.c:1727 -#: ../src/libs/modulegroups.c:1817 +#: ../src/libs/modulegroups.c:1538 ../src/libs/modulegroups.c:1624 +#: ../src/libs/modulegroups.c:1660 ../src/libs/modulegroups.c:1710 +#: ../src/libs/modulegroups.c:1801 msgctxt "modulegroup" msgid "base" msgstr "podstawowe" -#: ../src/libs/modulegroups.c:1575 +#: ../src/libs/modulegroups.c:1557 msgctxt "modulegroup" msgid "tone" msgstr "tony" -#: ../src/libs/modulegroups.c:1584 ../src/libs/modulegroups.c:1691 -#: ../src/libs/modulegroups.c:1741 +#: ../src/libs/modulegroups.c:1566 ../src/libs/modulegroups.c:1674 +#: ../src/libs/modulegroups.c:1724 msgctxt "modulegroup" msgid "color" msgstr "kolor" -#: ../src/libs/modulegroups.c:1599 ../src/libs/modulegroups.c:1699 -#: ../src/libs/modulegroups.c:1746 +#: ../src/libs/modulegroups.c:1582 ../src/libs/modulegroups.c:1682 +#: ../src/libs/modulegroups.c:1730 msgctxt "modulegroup" msgid "correct" msgstr "korekcja" -#: ../src/libs/modulegroups.c:1617 ../src/libs/modulegroups.c:1711 -#: ../src/libs/modulegroups.c:1758 ../src/libs/modulegroups.c:2321 +#: ../src/libs/modulegroups.c:1600 ../src/libs/modulegroups.c:1694 +#: ../src/libs/modulegroups.c:1742 ../src/libs/modulegroups.c:2305 msgctxt "modulegroup" msgid "effect" msgstr "efekt" -#: ../src/libs/modulegroups.c:1635 +#: ../src/libs/modulegroups.c:1618 msgid "modules: all" msgstr "moduły: wszystkie" -#: ../src/libs/modulegroups.c:1656 +#: ../src/libs/modulegroups.c:1639 msgctxt "modulegroup" msgid "grading" msgstr "korekcja koloru" -#: ../src/libs/modulegroups.c:1664 ../src/libs/modulegroups.c:2325 +#: ../src/libs/modulegroups.c:1647 ../src/libs/modulegroups.c:2309 msgctxt "modulegroup" msgid "effects" msgstr "efekty" -#: ../src/libs/modulegroups.c:1672 +#: ../src/libs/modulegroups.c:1655 msgid "workflow: beginner" msgstr "organizacja pracy: dla początkujących" -#: ../src/libs/modulegroups.c:1721 +#: ../src/libs/modulegroups.c:1704 msgid "workflow: display-referred" msgstr "organizacja pracy: ekranocentryczny" -#: ../src/libs/modulegroups.c:1773 +#: ../src/libs/modulegroups.c:1757 msgid "search only" msgstr "tylko wyszukiwarka" -#: ../src/libs/modulegroups.c:1779 ../src/libs/modulegroups.c:2090 -#: ../src/libs/modulegroups.c:2599 +#: ../src/libs/modulegroups.c:1763 ../src/libs/modulegroups.c:2074 +#: ../src/libs/modulegroups.c:2583 msgctxt "modulegroup" msgid "deprecated" msgstr "przestarzałe" -#: ../src/libs/modulegroups.c:1792 +#: ../src/libs/modulegroups.c:1776 msgid "previous config" msgstr "poprzednia konfiguracja" -#: ../src/libs/modulegroups.c:1793 +#: ../src/libs/modulegroups.c:1777 msgid "previous layout" msgstr "poprzedni układ" -#: ../src/libs/modulegroups.c:1797 +#: ../src/libs/modulegroups.c:1781 msgid "previous config with new layout" msgstr "poprzednia konfiguracja z nowym układem" -#: ../src/libs/modulegroups.c:1957 ../src/libs/modulegroups.c:2472 -#: ../src/libs/modulegroups.c:2484 +#: ../src/libs/modulegroups.c:1941 ../src/libs/modulegroups.c:2456 +#: ../src/libs/modulegroups.c:2468 msgid "remove this widget" msgstr "usuń ten widget" -#: ../src/libs/modulegroups.c:2107 ../src/libs/modulegroups.c:2347 +#: ../src/libs/modulegroups.c:2091 ../src/libs/modulegroups.c:2331 msgid "remove this module" msgstr "usuń ten moduł" #. does it belong to recommended modules ? -#: ../src/libs/modulegroups.c:2316 +#: ../src/libs/modulegroups.c:2300 msgid "base" msgstr "baza danych" -#: ../src/libs/modulegroups.c:2319 +#: ../src/libs/modulegroups.c:2303 msgid "tone" msgstr "tony" -#: ../src/libs/modulegroups.c:2322 +#: ../src/libs/modulegroups.c:2306 msgid "technical" msgstr "techniczne" -#: ../src/libs/modulegroups.c:2323 +#: ../src/libs/modulegroups.c:2307 msgid "grading" msgstr "korekcja koloru" -#: ../src/libs/modulegroups.c:2329 ../src/libs/modulegroups.c:2337 +#: ../src/libs/modulegroups.c:2313 ../src/libs/modulegroups.c:2321 msgid "add this module" msgstr "dodaj ten moduł" #. show the submenu with all the modules -#: ../src/libs/modulegroups.c:2359 ../src/libs/modulegroups.c:2559 +#: ../src/libs/modulegroups.c:2343 ../src/libs/modulegroups.c:2543 msgid "all available modules" msgstr "wszystkie dostępne moduły" -#: ../src/libs/modulegroups.c:2367 +#: ../src/libs/modulegroups.c:2351 msgid "add module" msgstr "dodaj moduł" -#: ../src/libs/modulegroups.c:2372 +#: ../src/libs/modulegroups.c:2356 msgid "remove module" msgstr "usuń moduł" -#: ../src/libs/modulegroups.c:2478 +#: ../src/libs/modulegroups.c:2462 msgid "header needed for other widgets" msgstr "nagłówek potrzebny dla innych widżetów" -#: ../src/libs/modulegroups.c:2494 ../src/libs/modulegroups.c:2501 +#: ../src/libs/modulegroups.c:2478 ../src/libs/modulegroups.c:2485 msgid "add this widget" msgstr "dodaj ten widget" -#: ../src/libs/modulegroups.c:2514 +#: ../src/libs/modulegroups.c:2498 msgid "currently invisible" msgstr "obecnie niewidoczne" -#: ../src/libs/modulegroups.c:2543 +#: ../src/libs/modulegroups.c:2527 msgid "add widget" msgstr "dodaj widget" -#: ../src/libs/modulegroups.c:2548 +#: ../src/libs/modulegroups.c:2532 msgid "remove widget" msgstr "usuń widget" -#: ../src/libs/modulegroups.c:2653 +#: ../src/libs/modulegroups.c:2637 msgid "show all history modules" msgstr "wyświetl wszystkie moduły w historii" -#: ../src/libs/modulegroups.c:2656 ../src/libs/modulegroups.c:3834 +#: ../src/libs/modulegroups.c:2640 ../src/libs/modulegroups.c:3836 msgid "" "show modules that are present in the history stack, regardless of whether or " "not they are currently enabled" @@ -23004,7 +23758,7 @@ "pokaż moduły, które są obecne w historii, niezależnie od tego, czy są " "aktualnie używane, czy nie" -#: ../src/libs/modulegroups.c:2747 ../src/libs/modulegroups.c:2816 +#: ../src/libs/modulegroups.c:2731 ../src/libs/modulegroups.c:2823 msgid "" "the following modules are deprecated because they have internal design " "mistakes that can't be corrected and alternative modules that correct them.\n" @@ -23014,19 +23768,19 @@ "być naprawione,a istnieją alternatywne moduły, które działają poprawnie.\n" "będą one usunięte dla nowych edycji w kolejnym wydaniu darktable." -#: ../src/libs/modulegroups.c:2775 ../src/libs/modulegroups.c:2776 +#: ../src/libs/modulegroups.c:2782 ../src/libs/modulegroups.c:2783 msgid "quick access panel" msgstr "panel szybkiego dostępu" -#: ../src/libs/modulegroups.c:2786 +#: ../src/libs/modulegroups.c:2793 msgid "show only active modules" msgstr "wyświetl tylko aktywne moduły" -#: ../src/libs/modulegroups.c:2787 +#: ../src/libs/modulegroups.c:2794 msgid "active modules" msgstr "aktywny moduł" -#: ../src/libs/modulegroups.c:2792 +#: ../src/libs/modulegroups.c:2799 msgid "" "presets\n" "ctrl+click to manage" @@ -23034,143 +23788,147 @@ "presety\n" "ctrl+klik, aby zarządzać" -#: ../src/libs/modulegroups.c:2798 +#: ../src/libs/modulegroups.c:2805 msgid "search modules" msgstr "znajdź moduły" -#: ../src/libs/modulegroups.c:2799 +#: ../src/libs/modulegroups.c:2806 msgid "search modules by name or tag" msgstr "znajdź moduły po nazwie lub tagu" -#: ../src/libs/modulegroups.c:2809 +#: ../src/libs/modulegroups.c:2816 msgid "clear text" msgstr "wyczyść tekst" -#: ../src/libs/modulegroups.c:3051 +#: ../src/libs/modulegroups.c:3056 msgid "basic icon" msgstr "ikona podstawowych" -#: ../src/libs/modulegroups.c:3061 +#: ../src/libs/modulegroups.c:3066 msgid "active icon" msgstr "ikona aktywnych" -#: ../src/libs/modulegroups.c:3071 +#: ../src/libs/modulegroups.c:3076 msgid "color icon" msgstr "ikona koloru" -#: ../src/libs/modulegroups.c:3081 +#: ../src/libs/modulegroups.c:3086 msgid "correct icon" msgstr "ikona korekcji" -#: ../src/libs/modulegroups.c:3091 +#: ../src/libs/modulegroups.c:3096 msgid "effect icon" msgstr "ikona efektów" -#: ../src/libs/modulegroups.c:3101 +#: ../src/libs/modulegroups.c:3106 msgid "favorites icon" msgstr "ikona ulubionych" -#: ../src/libs/modulegroups.c:3111 +#: ../src/libs/modulegroups.c:3116 msgid "tone icon" msgstr "ikona tonów" -#: ../src/libs/modulegroups.c:3121 +#: ../src/libs/modulegroups.c:3126 msgid "grading icon" msgstr "ikona korekcji kolorów" -#: ../src/libs/modulegroups.c:3131 +#: ../src/libs/modulegroups.c:3136 msgid "technical icon" msgstr "ikona technicznych" -#: ../src/libs/modulegroups.c:3164 +#: ../src/libs/modulegroups.c:3169 msgid "quick access panel widgets" msgstr "widżety panelu szybkiego dostępu" -#: ../src/libs/modulegroups.c:3166 +#: ../src/libs/modulegroups.c:3171 msgid "quick access" msgstr "szybki dostęp" -#: ../src/libs/modulegroups.c:3186 +#: ../src/libs/modulegroups.c:3191 msgid "add widget to the quick access panel" msgstr "dodaj widżet do panelu szybkiego dostępu" -#: ../src/libs/modulegroups.c:3218 +#: ../src/libs/modulegroups.c:3223 msgid "group icon" msgstr "ikona grupy" -#: ../src/libs/modulegroups.c:3227 +#: ../src/libs/modulegroups.c:3232 msgid "group name" msgstr "nazwa grupy" -#: ../src/libs/modulegroups.c:3238 +#: ../src/libs/modulegroups.c:3243 msgid "remove group" msgstr "usuń grupę" -#: ../src/libs/modulegroups.c:3264 +#: ../src/libs/modulegroups.c:3269 msgid "move group to the left" msgstr "przesuń grupę w lewo" -#: ../src/libs/modulegroups.c:3272 +#: ../src/libs/modulegroups.c:3277 msgid "add module to the group" msgstr "dodaj moduł do grupy" -#: ../src/libs/modulegroups.c:3283 +#: ../src/libs/modulegroups.c:3288 msgid "move group to the right" msgstr "przesuń grupę w prawo" -#: ../src/libs/modulegroups.c:3463 +#: ../src/libs/modulegroups.c:3464 msgid "rename preset" msgstr "zmień nazwę presetu" -#: ../src/libs/modulegroups.c:3470 +#: ../src/libs/modulegroups.c:3467 +msgid "_rename" +msgstr "_zmień nazwę" + +#: ../src/libs/modulegroups.c:3473 msgid "new preset name:" msgstr "nazwa nowego stylu:" -#: ../src/libs/modulegroups.c:3471 +#: ../src/libs/modulegroups.c:3474 msgid "a preset with this name already exists!" msgstr "preset o takiej nazwie już istnieje!" -#: ../src/libs/modulegroups.c:3804 +#: ../src/libs/modulegroups.c:3806 msgid "preset: " msgstr "preset: " -#: ../src/libs/modulegroups.c:3811 +#: ../src/libs/modulegroups.c:3813 msgid "remove the preset" msgstr "usuń preset" -#: ../src/libs/modulegroups.c:3813 +#: ../src/libs/modulegroups.c:3815 msgid "duplicate the preset" msgstr "zduplikuj preset" -#: ../src/libs/modulegroups.c:3815 +#: ../src/libs/modulegroups.c:3817 msgid "rename the preset" msgstr "zmień nazwę presetu" -#: ../src/libs/modulegroups.c:3817 +#: ../src/libs/modulegroups.c:3819 msgid "create a new empty preset" msgstr "dodaj nowy, pusty preset" -#: ../src/libs/modulegroups.c:3825 +#: ../src/libs/modulegroups.c:3827 msgid "show search line" msgstr "pokaż wyszukiwarkę tekstową" -#: ../src/libs/modulegroups.c:3828 +#: ../src/libs/modulegroups.c:3830 msgid "show quick access panel" msgstr "szybki dostęp do presetów" -#: ../src/libs/modulegroups.c:3831 +#: ../src/libs/modulegroups.c:3833 msgid "show all history modules in active group" msgstr "pokaż wszystkie moduły historii w zaznaczonym zakresie" -#: ../src/libs/modulegroups.c:3843 +#: ../src/libs/modulegroups.c:3845 msgid "auto-apply this preset" msgstr "automatycznie zastosuj ten preset" -#: ../src/libs/modulegroups.c:3858 +#: ../src/libs/modulegroups.c:3860 msgid "module groups" msgstr "grupy modułów" -#: ../src/libs/modulegroups.c:3875 +#: ../src/libs/modulegroups.c:3877 msgid "" "this is a built-in read-only preset. duplicate it if you want to make changes" msgstr "" @@ -23181,16 +23939,16 @@ msgid "navigation" msgstr "nawigacja" -#: ../src/libs/navigation.c:111 ../src/libs/navigation.c:191 +#: ../src/libs/navigation.c:112 ../src/libs/navigation.c:194 msgctxt "navigationbox" msgid "fill" msgstr "wypełnienie" -#: ../src/libs/navigation.c:114 ../src/libs/navigation.c:189 +#: ../src/libs/navigation.c:115 ../src/libs/navigation.c:192 msgid "small" msgstr "małe" -#: ../src/libs/navigation.c:151 +#: ../src/libs/navigation.c:154 msgid "" "navigation\n" "click or drag to position zoomed area in center view" @@ -23198,35 +23956,35 @@ "nawigacja\n" "kliknij lub przesuń pole powiększenia w widoku centralnym" -#: ../src/libs/navigation.c:173 +#: ../src/libs/navigation.c:176 msgid "hide navigation thumbnail" msgstr "ukryj miniaturę nawigacji" -#: ../src/libs/navigation.c:187 +#: ../src/libs/navigation.c:190 msgid "image zoom level" msgstr "poziom powiększenia" -#: ../src/libs/navigation.c:192 +#: ../src/libs/navigation.c:195 msgid "50%" msgstr "50%" -#: ../src/libs/navigation.c:193 +#: ../src/libs/navigation.c:196 msgid "100%" msgstr "100%" -#: ../src/libs/navigation.c:194 +#: ../src/libs/navigation.c:197 msgid "200%" msgstr "200%" -#: ../src/libs/navigation.c:195 +#: ../src/libs/navigation.c:198 msgid "400%" msgstr "400%" -#: ../src/libs/navigation.c:196 +#: ../src/libs/navigation.c:199 msgid "800%" msgstr "800%" -#: ../src/libs/navigation.c:197 +#: ../src/libs/navigation.c:200 msgid "1600%" msgstr "1600%" @@ -23470,15 +24228,15 @@ msgid "print with current settings" msgstr "drukuj używając bieżących ustawień" -#: ../src/libs/select.c:136 +#: ../src/libs/select.c:137 msgid "select all images in current collection" msgstr "wybiera wszystkie zdjęcia w bieżącej kolekcji" -#: ../src/libs/select.c:140 +#: ../src/libs/select.c:141 msgid "clear selection" msgstr "odznacz wszystkie zdjęcia" -#: ../src/libs/select.c:144 +#: ../src/libs/select.c:145 msgid "" "select unselected images\n" "in current collection" @@ -23486,7 +24244,7 @@ "zaznacza niezaznaczone zdjęcia\n" "w bieżącej kolekcji" -#: ../src/libs/select.c:148 +#: ../src/libs/select.c:149 msgid "" "select all images which are in the same\n" "film roll as the selected images" @@ -23494,7 +24252,7 @@ "wybierz wszystkie zdjęcia, które są na tej samej\n" "rolce filmu, co zaznaczone zdjęcia" -#: ../src/libs/select.c:152 +#: ../src/libs/select.c:153 msgid "" "select untouched images in\n" "current collection" @@ -23514,29 +24272,33 @@ msgid "create" msgstr "utwórz" -#: ../src/libs/snapshots.c:92 +#: ../src/libs/snapshots.c:88 msgid "snapshots" msgstr "zrzuty obrazu" -#: ../src/libs/snapshots.c:141 +#: ../src/libs/snapshots.c:137 msgctxt "snapshot sign" msgid "S" msgstr "S" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:662 +msgid "snapshots for removed image have been deleted" +msgstr "zrzuty do usuniętego obrazu zostały usunięte" + +#: ../src/libs/snapshots.c:703 #, c-format msgid "↗ %s '%s'" msgstr "↗ %s '%s'" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:703 msgid "this snapshot was taken from" msgstr "ten zrzut był pobrany z" -#: ../src/libs/snapshots.c:663 +#: ../src/libs/snapshots.c:742 msgid "take snapshot" msgstr "zrób zrzut obrazu" -#: ../src/libs/snapshots.c:665 +#: ../src/libs/snapshots.c:744 msgid "" "take snapshot to compare with another image or the same image at another " "stage of development" @@ -23544,7 +24306,7 @@ "robi zrzut obrazu przydatny w porównaniu go z innym, lub tym samym obrazem w " "innym stadium przetwarzania" -#: ../src/libs/snapshots.c:734 +#: ../src/libs/snapshots.c:790 msgid "toggle last snapshot" msgstr "pokaż/ukryj ostatni zrzut obrazu" @@ -23563,7 +24325,11 @@ msgstr[1] "czy naprawdę chcesz usunąć %d style?" msgstr[2] "czy naprawdę chcesz usunąć %d stylów?" -#: ../src/libs/styles.c:444 ../src/libs/styles.c:627 +#: ../src/libs/styles.c:441 ../src/libs/styles.c:626 +msgid "_overwrite" +msgstr "_nadpisz" + +#: ../src/libs/styles.c:446 ../src/libs/styles.c:631 #, c-format msgid "" "style `%s' already exists.\n" @@ -23572,24 +24338,24 @@ "styl „%s” już istnieje.\n" "czy chcesz go nadpisać?\n" -#: ../src/libs/styles.c:446 ../src/libs/styles.c:629 +#: ../src/libs/styles.c:448 ../src/libs/styles.c:633 msgid "apply this option to all existing styles" msgstr "zastosuj opcję do wszystkich istniejących stylów" -#: ../src/libs/styles.c:509 +#: ../src/libs/styles.c:511 #, c-format msgid "style %s was successfully exported" msgstr "styl %s został wyeksportowany" -#: ../src/libs/styles.c:526 +#: ../src/libs/styles.c:528 msgid "select style" msgstr "wybór stylu" -#: ../src/libs/styles.c:536 +#: ../src/libs/styles.c:538 msgid "darktable style files" msgstr "plik stylów darktable" -#: ../src/libs/styles.c:815 +#: ../src/libs/styles.c:819 msgid "" "available styles,\n" "double-click to apply" @@ -23597,73 +24363,73 @@ "dostępne style,\n" "kliknij dwukrotnie, aby zastosować" -#: ../src/libs/styles.c:824 ../src/libs/styles.c:825 +#: ../src/libs/styles.c:828 ../src/libs/styles.c:829 msgid "filter style names" msgstr "filtruj nazwy stylów" -#: ../src/libs/styles.c:837 +#: ../src/libs/styles.c:841 msgid "create duplicate" msgstr "zduplikuj" -#: ../src/libs/styles.c:844 +#: ../src/libs/styles.c:848 msgid "creates a duplicate of the image before applying style" msgstr "tworzy duplikat zdjęcia przed zastosowaniem stylu" -#: ../src/libs/styles.c:862 +#: ../src/libs/styles.c:866 msgid "create..." msgstr "utwórz..." -#: ../src/libs/styles.c:864 +#: ../src/libs/styles.c:868 msgid "create styles from history stack of selected images" msgstr "tworzy style na podstawie historii edycji wybranych zdjęć" -#: ../src/libs/styles.c:869 ../src/libs/tagging.c:2252 +#: ../src/libs/styles.c:873 ../src/libs/tagging.c:2283 msgid "edit..." msgstr "edytuj..." -#: ../src/libs/styles.c:871 +#: ../src/libs/styles.c:875 msgid "edit the selected styles in list above" msgstr "edytuje style wybrane z listy powyżej" -#: ../src/libs/styles.c:878 +#: ../src/libs/styles.c:882 msgid "removes the selected styles in list above" msgstr "usuwa style wybrane z listy powyżej" -#: ../src/libs/styles.c:885 +#: ../src/libs/styles.c:889 msgid "import styles from a style files" msgstr "importuje style z plików" -#: ../src/libs/styles.c:892 +#: ../src/libs/styles.c:896 msgid "export the selected styles into a style files" msgstr "eksportuje wybrane style do plików" -#: ../src/libs/styles.c:899 +#: ../src/libs/styles.c:903 msgid "apply the selected styles in list above to selected images" msgstr "aplikuje wybrane style do wybranego obrazu" -#: ../src/libs/tagging.c:105 +#: ../src/libs/tagging.c:109 msgid "tagging" msgstr "etykiety" -#: ../src/libs/tagging.c:1255 +#: ../src/libs/tagging.c:1258 msgid "attach tag to all" msgstr "dołącz etykietę do wszystkich wybranych zdjęć" -#: ../src/libs/tagging.c:1263 ../src/libs/tagging.c:2225 +#: ../src/libs/tagging.c:1266 ../src/libs/tagging.c:2256 msgid "detach tag" msgstr "odłącz etykietę" -#: ../src/libs/tagging.c:1483 +#: ../src/libs/tagging.c:1486 msgid "delete tag?" msgstr "usunąć etykietę?" -#: ../src/libs/tagging.c:1490 ../src/libs/tagging.c:1578 -#: ../src/libs/tagging.c:1789 ../src/libs/tagging.c:2063 +#: ../src/libs/tagging.c:1496 ../src/libs/tagging.c:1587 +#: ../src/libs/tagging.c:1814 ../src/libs/tagging.c:2093 #, c-format msgid "selected: %s" msgstr "wybranych: %s" -#: ../src/libs/tagging.c:1497 +#: ../src/libs/tagging.c:1503 #, c-format msgid "" "do you really want to delete the tag `%s'?\n" @@ -23681,16 +24447,16 @@ "całkowicie usunąć etykietę „%s”?\n" "%d obrazów jest skojarzonych z tą etykietą!" -#: ../src/libs/tagging.c:1531 +#: ../src/libs/tagging.c:1537 #, c-format msgid "tag %s removed" msgstr "etykieta „%s” usuięta" -#: ../src/libs/tagging.c:1571 +#: ../src/libs/tagging.c:1577 msgid "delete node?" msgstr "usunąć węzeł?" -#: ../src/libs/tagging.c:1585 +#: ../src/libs/tagging.c:1594 #, c-format msgid "<u>%d</u> tag will be deleted" msgid_plural "<u>%d</u> tags will be deleted" @@ -23698,8 +24464,8 @@ msgstr[1] "<u>%d</u> etykiety zostaną usunięte" msgstr[2] "<u>%d</u> etykiet zostanie usuniętych" -#: ../src/libs/tagging.c:1590 ../src/libs/tagging.c:1801 -#: ../src/libs/tagging.c:2075 +#: ../src/libs/tagging.c:1599 ../src/libs/tagging.c:1826 +#: ../src/libs/tagging.c:2105 #, c-format msgid "<u>%d</u> image will be updated" msgid_plural "<u>%d</u> images will be updated" @@ -23707,42 +24473,42 @@ msgstr[1] "<u>%d</u> zdjęcia zostaną zaktualizowane" msgstr[2] "<u>%d</u> zdjęć zostanie zaktualizowanych" -#: ../src/libs/tagging.c:1616 +#: ../src/libs/tagging.c:1625 #, c-format msgid "%d tags removed" msgstr "usunięto %d etykiet" -#: ../src/libs/tagging.c:1652 +#: ../src/libs/tagging.c:1668 msgid "create tag" msgstr "utwórz etykietę" -#: ../src/libs/tagging.c:1662 ../src/libs/tagging.c:1809 +#: ../src/libs/tagging.c:1681 ../src/libs/tagging.c:1834 msgid "name: " msgstr "nazwa: " -#: ../src/libs/tagging.c:1674 +#: ../src/libs/tagging.c:1696 #, c-format msgid "add to: \"%s\" " msgstr "dodaj do: \"%s\" " -#: ../src/libs/tagging.c:1680 ../src/libs/tagging.c:1824 +#: ../src/libs/tagging.c:1702 ../src/libs/tagging.c:1851 msgid "category" msgstr "kategoria" -#: ../src/libs/tagging.c:1689 ../src/libs/tagging.c:1833 +#: ../src/libs/tagging.c:1711 ../src/libs/tagging.c:1860 msgid "synonyms: " msgstr "synonimy:" -#: ../src/libs/tagging.c:1706 ../src/libs/tagging.c:1855 -#: ../src/libs/tagging.c:2097 +#: ../src/libs/tagging.c:1728 ../src/libs/tagging.c:1882 +#: ../src/libs/tagging.c:2128 msgid "empty tag is not allowed, aborting" msgstr "pusta etykieta jest niedozwolona" -#: ../src/libs/tagging.c:1717 +#: ../src/libs/tagging.c:1739 msgid "tag name already exists. aborting." msgstr "etykieta o tej nazwie już istnieje." -#: ../src/libs/tagging.c:1796 ../src/libs/tagging.c:2070 +#: ../src/libs/tagging.c:1821 ../src/libs/tagging.c:2100 #, c-format msgid "<u>%d</u> tag will be updated" msgid_plural "<u>%d</u> tags will be updated" @@ -23750,7 +24516,7 @@ msgstr[1] "<u>%d</u> etykiety zostaną zaktualizowane" msgstr[2] "<u>%d</u> etykiet zostanie zaktualizowanych" -#: ../src/libs/tagging.c:1857 +#: ../src/libs/tagging.c:1884 msgid "" "'|' character is not allowed for renaming tag.\n" "to modify the hierarchy use rename path instead. Aborting." @@ -23758,101 +24524,101 @@ "znak '|' jest niedozwolony przy zmianie nazwy etykiety. aby zmienić " "hierarchię dla etykiety, użyj zmiany ścieżki. Anulowano." -#: ../src/libs/tagging.c:1896 ../src/libs/tagging.c:2004 +#: ../src/libs/tagging.c:1923 ../src/libs/tagging.c:2031 #, c-format msgid "at least one new tag name (%s) already exists, aborting" msgstr "istnieje już przynajmniej jedna etykieta o nazwie „%s”" -#: ../src/libs/tagging.c:2056 +#: ../src/libs/tagging.c:2083 msgid "change path" msgstr "zmień ścieżkę" -#: ../src/libs/tagging.c:2099 +#: ../src/libs/tagging.c:2130 msgid "'|' misplaced, empty tag is not allowed, aborting" msgstr "Zła pozycja znaku '|', pusta etykieta jest niedozwolona" -#: ../src/libs/tagging.c:2195 +#: ../src/libs/tagging.c:2226 #, c-format msgid "tag %s created" msgstr "etykieta „%s” utworzona" -#: ../src/libs/tagging.c:2221 +#: ../src/libs/tagging.c:2252 msgid "attach tag" msgstr "dołącz etykietę" -#: ../src/libs/tagging.c:2234 +#: ../src/libs/tagging.c:2265 msgid "create tag..." msgstr "utwórz etykietę..." -#: ../src/libs/tagging.c:2240 +#: ../src/libs/tagging.c:2271 msgid "delete tag" msgstr "usuń etykietę" -#: ../src/libs/tagging.c:2247 +#: ../src/libs/tagging.c:2278 msgid "delete node" msgstr "usuń węzeł" -#: ../src/libs/tagging.c:2260 +#: ../src/libs/tagging.c:2291 msgid "change path..." msgstr "zmień ścieżkę..." -#: ../src/libs/tagging.c:2270 +#: ../src/libs/tagging.c:2301 msgid "set as a tag" msgstr "ustaw jako etykietę" -#: ../src/libs/tagging.c:2281 +#: ../src/libs/tagging.c:2312 msgid "copy to entry" msgstr "kopiuj do pola nazwy etykiety" -#: ../src/libs/tagging.c:2298 +#: ../src/libs/tagging.c:2329 msgid "go to tag collection" msgstr "otwórz kolekcję zdjęć z etykietą" -#: ../src/libs/tagging.c:2304 +#: ../src/libs/tagging.c:2335 msgid "go back to work" msgstr "wróć do poprzedniego widoku kolekcji" -#: ../src/libs/tagging.c:2461 +#: ../src/libs/tagging.c:2492 #, c-format msgid "%s" msgstr "`%s'" -#: ../src/libs/tagging.c:2462 +#: ../src/libs/tagging.c:2493 msgid "(private)" msgstr "(prywatne)" -#: ../src/libs/tagging.c:2488 +#: ../src/libs/tagging.c:2519 msgid "select a keyword file" msgstr "wybierz słowo kluczowe" -#: ../src/libs/tagging.c:2501 +#: ../src/libs/tagging.c:2532 msgid "error importing tags" msgstr "błąd importu etykiet" -#: ../src/libs/tagging.c:2503 +#: ../src/libs/tagging.c:2534 #, c-format msgid "%zd tags imported" msgstr "zaimportowano %zd tagów" -#: ../src/libs/tagging.c:2524 +#: ../src/libs/tagging.c:2555 msgid "select file to export to" msgstr "wybierz plik do eksportu" -#: ../src/libs/tagging.c:2538 +#: ../src/libs/tagging.c:2569 msgid "error exporting tags" msgstr "błąd eksportu etykiet" -#: ../src/libs/tagging.c:2540 +#: ../src/libs/tagging.c:2571 #, c-format msgid "%zd tags exported" msgstr "wyeksportowano %zd tagów" -#: ../src/libs/tagging.c:2964 +#: ../src/libs/tagging.c:2995 msgid "drop to root" msgstr "przerzuć do głównego folderu" # focus to entry? -#: ../src/libs/tagging.c:3100 +#: ../src/libs/tagging.c:3131 msgid "" "attached tags\n" "press Delete or double-click to detach\n" @@ -23864,47 +24630,47 @@ "kliknij prawym dla pozostałych akcji na etykiecie,\n" "wciśnij Tab aby przenieść kursor do pola" -#: ../src/libs/tagging.c:3111 +#: ../src/libs/tagging.c:3142 msgid "attach" msgstr "dołącz" -#: ../src/libs/tagging.c:3112 +#: ../src/libs/tagging.c:3143 msgid "attach tag to all selected images" msgstr "dołącza etykiety do wybranych zdjęć" -#: ../src/libs/tagging.c:3115 +#: ../src/libs/tagging.c:3146 msgid "detach" msgstr "odłącz" -#: ../src/libs/tagging.c:3116 +#: ../src/libs/tagging.c:3147 msgid "detach tag from all selected images" msgstr "odłącza etykiety od wybranych zdjęć" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "toggle list with / without hierarchy" msgstr "przełącza widok listy między płaskim a hierarchicznym" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "hide" msgstr "ukryj" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "toggle sort by name or by count" msgstr "przełącza sposób sortowania: po nazwie lub ilości" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "sort" msgstr "sortowanie" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "toggle show or not darktable tags" msgstr "przełącza widoczność etykiet" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "dttags" msgstr "etykiety" -#: ../src/libs/tagging.c:3149 +#: ../src/libs/tagging.c:3180 msgid "" "enter tag name\n" "press Enter to create a new tag and attach it on selected images\n" @@ -23916,11 +24682,11 @@ "wciśnij Tab lub strzałkę w dół aby przejść do pierwszej zgodnej etykiety\n" "wciśnij shift+Tab aby wybrać pierwszą załączoną etykietę użytkownika" -#: ../src/libs/tagging.c:3160 ../src/libs/tagging.c:3166 +#: ../src/libs/tagging.c:3191 ../src/libs/tagging.c:3197 msgid "clear entry" msgstr "wyczyść tekst" -#: ../src/libs/tagging.c:3213 +#: ../src/libs/tagging.c:3244 msgid "" "tag dictionary,\n" "Enter or double-click to attach selected tag on selected images\n" @@ -23937,7 +24703,7 @@ "prawy klik dla pozostałych akcji na zaznaczonej etykiecie,\n" "wciśnij shift+Tab aby przenieść kursor do wpisu," -#: ../src/libs/tagging.c:3248 +#: ../src/libs/tagging.c:3279 msgid "" "create a new tag with the\n" "name you entered" @@ -23945,42 +24711,42 @@ "tworzy nową etykietę\n" "z wprowadzoną nazwą" -#: ../src/libs/tagging.c:3251 +#: ../src/libs/tagging.c:3282 msgid "import tags from a Lightroom keyword file" msgstr "importuje etykiety z pliku słów kluczowych Lightrooma" -#: ../src/libs/tagging.c:3254 +#: ../src/libs/tagging.c:3285 msgid "export all tags to a Lightroom keyword file" msgstr "eksportuje wszystkie etykiety do pliku słów kluczowych Lightrooma" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "toggle list / tree view" msgstr "przełącza widok listy / drzewa" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "tree" msgstr "drzewo" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "toggle list with / without suggestion" msgstr "przełącza widoczność podpowiedzi" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "suggestion" msgstr "sugestia" -#: ../src/libs/tagging.c:3282 +#: ../src/libs/tagging.c:3313 msgid "redo last tag" msgstr "powtórz ostatnią etykietę" -#: ../src/libs/tagging.c:3365 +#: ../src/libs/tagging.c:3396 msgid "" "tag shortcut is not active with tag tree view. please switch to list view" msgstr "" "skrót etykiety jest nieaktywny w widoku drzewa etykiet. przełącz do widoku " "listy" -#: ../src/libs/tagging.c:3469 +#: ../src/libs/tagging.c:3500 msgid "tagging settings" msgstr "ustawienia etykietowania" @@ -23997,33 +24763,6 @@ msgid "toggle color label of selected images" msgstr "przełącz kolorową etykietę dla wybranych zdjęć" -#: ../src/libs/tools/darktable.c:284 -#, c-format -msgid "copyright (c) the authors 2009-%s" -msgstr "copyright (c) autorzy 2009-%s" - -#: ../src/libs/tools/darktable.c:288 -msgid "organize and develop images from digital cameras" -msgstr "organizuj i przetwarzaj zdjęcia z aparatów cyfrowych" - -#: ../src/libs/tools/darktable.c:300 -msgid "all those of you that made previous releases possible" -msgstr "wszyscy z was, którzy sprawili, że poprzednie wydania były możliwe" - -#: ../src/libs/tools/darktable.c:305 -msgid "and..." -msgstr "i..." - -#: ../src/libs/tools/darktable.c:307 -msgid "translator-credits" -msgstr "" -"Michał Prędotka <mpredotka@gmail.com>\n" -"Artur de Sousa Rocha <adsr@poczta.onet.pl>\n" -"Zbigniew Malach (Zbyma72age) <zbigniew.malach@gmail.com>\n" -"Tomasz Goliński <tomaszg@math.uwb.edu.pl>\n" -"Łukasz Karcz <pan.karcz@gmail.com>\n" -"Wiktor Nowak <kontakt.bajdero@gmail.com>" - #: ../src/libs/tools/filmstrip.c:45 msgid "filmstrip" msgstr "taśma filmowa" @@ -24338,35 +25077,35 @@ msgid "click to enter culling layout in dynamic mode." msgstr "kliknij, aby wejść do układu selektywnego w trybie dynamicznym." -#: ../src/libs/tools/lighttable.c:368 +#: ../src/libs/tools/lighttable.c:365 msgid "toggle filemanager layout" msgstr "przełącz układ menedżera plików" -#: ../src/libs/tools/lighttable.c:371 +#: ../src/libs/tools/lighttable.c:368 msgid "click to enter filemanager layout." msgstr "kliknij, aby przełączyć układ na menedżera plików." -#: ../src/libs/tools/lighttable.c:377 +#: ../src/libs/tools/lighttable.c:374 msgid "toggle zoomable lighttable layout" msgstr "przełącz układ powiększanego stołu podświetlanego" -#: ../src/libs/tools/lighttable.c:380 +#: ../src/libs/tools/lighttable.c:377 msgid "click to enter zoomable lighttable layout." msgstr "kliknij, żeby wejść do układku powiększanego stołu podświetlanego." -#: ../src/libs/tools/lighttable.c:386 +#: ../src/libs/tools/lighttable.c:383 msgid "toggle culling mode" msgstr "przełącz tryb selekcji zdjęć" -#: ../src/libs/tools/lighttable.c:394 +#: ../src/libs/tools/lighttable.c:391 msgid "toggle culling dynamic mode" msgstr "przełącz dynamiczny tryb selekcji zdjęć" -#: ../src/libs/tools/lighttable.c:441 +#: ../src/libs/tools/lighttable.c:438 msgid "toggle culling zoom mode" msgstr "przełącz sposób przybliżania dla selekcji zdjęć" -#: ../src/libs/tools/lighttable.c:443 +#: ../src/libs/tools/lighttable.c:440 msgid "exit current layout" msgstr "wyjdź z bieżącego układu" @@ -24451,7 +25190,7 @@ msgid "Lua options" msgstr "opcje Lua" -#: ../src/views/darkroom.c:607 +#: ../src/views/darkroom.c:503 #, c-format msgid "" "darktable could not load `%s', switching to lighttable now.\n" @@ -24472,63 +25211,63 @@ "jeśli model na pewno jest wspierany, pomyśl o zgłoszeniu błędu\n" "na https://github.com/darktable-org/darktable" -#: ../src/views/darkroom.c:625 +#: ../src/views/darkroom.c:521 #, c-format msgctxt "darkroom" msgid "loading `%s' ..." msgstr "ładuję „%s”..." -#: ../src/views/darkroom.c:749 ../src/views/darkroom.c:2496 +#: ../src/views/darkroom.c:668 ../src/views/darkroom.c:2335 msgid "gamut check" msgstr "sprawdzanie gamutu" -#: ../src/views/darkroom.c:749 +#: ../src/views/darkroom.c:668 msgid "soft proof" msgstr "korekta ekranowa" #. fail :( -#: ../src/views/darkroom.c:787 ../src/views/print.c:356 +#: ../src/views/darkroom.c:708 ../src/views/print.c:356 msgid "no image to open!" msgstr "brak obrazu do otwarcia!" -#: ../src/views/darkroom.c:1331 +#: ../src/views/darkroom.c:1232 msgid "no user-defined presets for favorite modules were found" msgstr "" "nie znaleziono zapisanych przez użytkownika ustawień dla ulubionych modułów" -#: ../src/views/darkroom.c:1476 +#: ../src/views/darkroom.c:1377 msgid "no styles have been created yet" msgstr "nie utworzono jeszcze stylu" -#: ../src/views/darkroom.c:2331 ../src/views/darkroom.c:2332 +#: ../src/views/darkroom.c:2170 ../src/views/darkroom.c:2171 msgid "quick access to presets" msgstr "szybki dostęp do presetów" -#: ../src/views/darkroom.c:2340 +#: ../src/views/darkroom.c:2179 msgid "quick access to styles" msgstr "szybki dostęp do styli" -#: ../src/views/darkroom.c:2342 +#: ../src/views/darkroom.c:2181 msgid "quick access for applying any of your styles" msgstr "szybki dostęp do utworzonych stylów" -#: ../src/views/darkroom.c:2348 +#: ../src/views/darkroom.c:2187 msgid "second window" msgstr "drugie okno" -#: ../src/views/darkroom.c:2351 +#: ../src/views/darkroom.c:2190 msgid "display a second darkroom image window" msgstr "wyświetl dodatkowe okno podglądu zdjęcia w ciemni" -#: ../src/views/darkroom.c:2356 +#: ../src/views/darkroom.c:2195 msgid "color assessment" msgstr "ocena kolorów" -#: ../src/views/darkroom.c:2359 +#: ../src/views/darkroom.c:2198 msgid "toggle ISO 12646 color assessment conditions" msgstr "włącz/wyłącz środowisko oceny kolorów ISO 12646" -#: ../src/views/darkroom.c:2372 +#: ../src/views/darkroom.c:2211 msgid "" "toggle raw over exposed indication\n" "right click for options" @@ -24536,27 +25275,27 @@ "przełącz wskaźnik prześwietlenia raw\n" "kliknij prawym przyciskiem, by wyświetlić opcje" -#: ../src/views/darkroom.c:2388 +#: ../src/views/darkroom.c:2227 msgid "select how to mark the clipped pixels" msgstr "wybierz, jak zaznaczać prześwietlone piksele" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with CFA color" msgstr "oznacz kolorem CFA" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with solid color" msgstr "oznacz jednolitym kolorem" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "false color" msgstr "fałszywy kolor" -#: ../src/views/darkroom.c:2393 ../src/views/darkroom.c:2444 +#: ../src/views/darkroom.c:2232 ../src/views/darkroom.c:2283 msgid "color scheme" msgstr "schemat kolorów" -#: ../src/views/darkroom.c:2394 +#: ../src/views/darkroom.c:2233 msgid "" "select the solid color to indicate over exposure.\n" "will only be used if mode = mark with solid color" @@ -24564,27 +25303,27 @@ "wybierz jednolity kolor do oznaczania prześwietlenia.\n" "będzie tylko używany, jeśli tryb = oznacz jednolitym kolorem" -#: ../src/views/darkroom.c:2397 +#: ../src/views/darkroom.c:2236 msgctxt "solidcolor" msgid "red" msgstr "czerwony" -#: ../src/views/darkroom.c:2398 +#: ../src/views/darkroom.c:2237 msgctxt "solidcolor" msgid "green" msgstr "zielony" -#: ../src/views/darkroom.c:2399 +#: ../src/views/darkroom.c:2238 msgctxt "solidcolor" msgid "blue" msgstr "niebieski" -#: ../src/views/darkroom.c:2400 +#: ../src/views/darkroom.c:2239 msgctxt "solidcolor" msgid "black" msgstr "czerń" -#: ../src/views/darkroom.c:2408 +#: ../src/views/darkroom.c:2247 msgid "" "threshold of what shall be considered overexposed\n" "1.0 - white level\n" @@ -24594,7 +25333,7 @@ "1.0 - poziom bieli\n" "0.0 - poziom czerni" -#: ../src/views/darkroom.c:2422 +#: ../src/views/darkroom.c:2261 msgid "" "toggle clipping indication\n" "right click for options" @@ -24602,11 +25341,11 @@ "przełącz wskaźnik prześwietleń\n" "kliknij prawym przyciskiem aby wyświetlić opcje" -#: ../src/views/darkroom.c:2437 +#: ../src/views/darkroom.c:2276 msgid "clipping preview mode" msgstr "tryb podglądu prześwietleń" -#: ../src/views/darkroom.c:2438 +#: ../src/views/darkroom.c:2277 msgid "" "select the metric you want to preview\n" "full gamut is the combination of all other modes" @@ -24614,39 +25353,39 @@ "wybierz metrykę, jaką chcesz zobaczyć\n" "pełny gamut jest kombinacją pozostałych trybów" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "full gamut" msgstr "pełny gamut" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "any RGB channel" msgstr "dowolny kanał RGB" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "luminance only" msgstr "tylko luminancja" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "saturation only" msgstr "tylko nasycenie" -#: ../src/views/darkroom.c:2445 +#: ../src/views/darkroom.c:2284 msgid "select colors to indicate clipping" msgstr "wybór kolorów dla oznaczenia prześwietleń/niedoświetleń" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "red & blue" msgstr "czerwony i niebieski" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "purple & green" msgstr "fioletowy i zielony" -#: ../src/views/darkroom.c:2454 +#: ../src/views/darkroom.c:2293 msgid "lower threshold" msgstr "próg dolny" -#: ../src/views/darkroom.c:2455 +#: ../src/views/darkroom.c:2294 msgid "" "clipping threshold for the black point,\n" "in EV, relatively to white (0 EV).\n" @@ -24666,11 +25405,11 @@ "typowa odbitka błyszcząca przy -8.00 EV,\n" "a błyszcząca czarno-biała przy -9.00 EV." -#: ../src/views/darkroom.c:2471 +#: ../src/views/darkroom.c:2310 msgid "upper threshold" msgstr "próg górny" -#: ../src/views/darkroom.c:2473 +#: ../src/views/darkroom.c:2312 #, no-c-format msgid "" "clipping threshold for the white point.\n" @@ -24679,11 +25418,11 @@ "próg prześwietleń dla punktu bieli.\n" "100% to najwyższa luminancja." -#: ../src/views/darkroom.c:2485 +#: ../src/views/darkroom.c:2324 msgid "softproof" msgstr "korekta ekranowa" -#: ../src/views/darkroom.c:2488 +#: ../src/views/darkroom.c:2327 msgid "" "toggle softproofing\n" "right click for profile options" @@ -24691,7 +25430,7 @@ "przełącz korektę ekranową\n" "kliknij prawym przyciskiem, by wyświetlić opcje" -#: ../src/views/darkroom.c:2499 +#: ../src/views/darkroom.c:2338 msgid "" "toggle gamut checking\n" "right click for profile options" @@ -24699,46 +25438,54 @@ "przełącz sprawdzanie gamutu\n" "kliknij prawym przyciskiem, by wyświetlić opcje" -#: ../src/views/darkroom.c:2524 ../src/views/darkroom.c:2526 -#: ../src/views/darkroom.c:2540 ../src/views/darkroom.c:2541 -#: ../src/views/darkroom.c:2542 ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2365 ../src/views/darkroom.c:2367 +#: ../src/views/darkroom.c:2381 ../src/views/darkroom.c:2382 +#: ../src/views/darkroom.c:2383 ../src/views/darkroom.c:2384 #: ../src/views/lighttable.c:1182 ../src/views/lighttable.c:1184 msgid "profiles" msgstr "profile" -#: ../src/views/darkroom.c:2526 ../src/views/lighttable.c:1184 +#: ../src/views/darkroom.c:2367 ../src/views/lighttable.c:1184 msgid "preview intent" msgstr "odwzorowanie barw podglądu" -#: ../src/views/darkroom.c:2540 ../src/views/lighttable.c:1188 +#: ../src/views/darkroom.c:2381 ../src/views/lighttable.c:1188 msgid "display profile" msgstr "profil monitora" -#: ../src/views/darkroom.c:2541 ../src/views/lighttable.c:1191 +#: ../src/views/darkroom.c:2382 ../src/views/lighttable.c:1191 msgid "preview display profile" msgstr "profil monitora dla podglądu" -#: ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2384 msgid "histogram profile" msgstr "profil histogramu" -#: ../src/views/darkroom.c:2605 ../src/views/lighttable.c:1225 +#: ../src/views/darkroom.c:2391 +msgid "second preview window ISO 12646 color assessment" +msgstr "środowisko oceny kolorów ISO 12646 w osobnym oknie" + +#: ../src/views/darkroom.c:2393 +msgid "color assessment second preview" +msgstr "ocena kolorów w osobnym oknie" + +#: ../src/views/darkroom.c:2452 ../src/views/lighttable.c:1225 msgid "display ICC profiles" msgstr "wyświetl profile ICC" -#: ../src/views/darkroom.c:2609 ../src/views/lighttable.c:1229 +#: ../src/views/darkroom.c:2456 ../src/views/lighttable.c:1229 msgid "preview display ICC profiles" msgstr "profil ICC dla monitora podglądu" -#: ../src/views/darkroom.c:2613 +#: ../src/views/darkroom.c:2460 msgid "softproof ICC profiles" msgstr "profil ICC korekty ekranowej (softproof)" -#: ../src/views/darkroom.c:2617 +#: ../src/views/darkroom.c:2464 msgid "histogram and color picker ICC profiles" msgstr "profile ICC dla histogramu i próbnika koloru" -#: ../src/views/darkroom.c:2651 +#: ../src/views/darkroom.c:2497 msgid "" "toggle guide lines\n" "right click for guides options" @@ -24747,137 +25494,137 @@ "klik prawym – opcje prowadnic" #. Fullscreen preview key -#: ../src/views/darkroom.c:2668 +#: ../src/views/darkroom.c:2514 msgid "full preview" msgstr "pełny podgląd" #. add an option to allow skip mouse events while other overlays are consuming mouse actions -#: ../src/views/darkroom.c:2672 +#: ../src/views/darkroom.c:2518 msgid "force pan/zoom/rotate with mouse" msgstr "wymuś przesuwanie i przybliżanie myszą" #. Zoom shortcuts -#: ../src/views/darkroom.c:2684 +#: ../src/views/darkroom.c:2530 msgid "zoom close-up" msgstr "przybliż mocno" #. zoom in/out #. zoom in/out/min/max -#: ../src/views/darkroom.c:2687 ../src/views/lighttable.c:1283 +#: ../src/views/darkroom.c:2533 ../src/views/lighttable.c:1283 msgid "zoom in" msgstr "przybliż" -#: ../src/views/darkroom.c:2688 ../src/views/lighttable.c:1285 +#: ../src/views/darkroom.c:2534 ../src/views/lighttable.c:1285 msgid "zoom out" msgstr "oddal" #. Shortcut to skip images -#: ../src/views/darkroom.c:2691 +#: ../src/views/darkroom.c:2537 msgid "image forward" msgstr "następne zdjęcie" -#: ../src/views/darkroom.c:2692 +#: ../src/views/darkroom.c:2538 msgid "image back" msgstr "poprzednie zdjęcie" #. cycle overlay colors -#: ../src/views/darkroom.c:2695 +#: ../src/views/darkroom.c:2541 msgid "cycle overlay colors" msgstr "przełącz kolor nakładki" #. toggle visibility of drawn masks for current gui module -#: ../src/views/darkroom.c:2698 +#: ../src/views/darkroom.c:2544 msgid "show drawn masks" msgstr "pokaż maski wektorowe" #. brush size +/- -#: ../src/views/darkroom.c:2701 +#: ../src/views/darkroom.c:2547 msgid "increase brush size" msgstr "zwiększenie rozmiaru pędzla" -#: ../src/views/darkroom.c:2702 +#: ../src/views/darkroom.c:2548 msgid "decrease brush size" msgstr "zmniejszenie rozmiaru pędzla" #. brush hardness +/- -#: ../src/views/darkroom.c:2705 +#: ../src/views/darkroom.c:2551 msgid "increase brush hardness" msgstr "zwiększenie twardości pędzla" -#: ../src/views/darkroom.c:2706 +#: ../src/views/darkroom.c:2552 msgid "decrease brush hardness" msgstr "zmniejszenie twardości pędzla" #. brush opacity +/- -#: ../src/views/darkroom.c:2709 +#: ../src/views/darkroom.c:2555 msgid "increase brush opacity" msgstr "zwiększenie krycia pędzla" -#: ../src/views/darkroom.c:2710 +#: ../src/views/darkroom.c:2556 msgid "decrease brush opacity" msgstr "zmniejszenie krycia pędzla" #. undo/redo -#: ../src/views/darkroom.c:2713 ../src/views/lighttable.c:1275 +#: ../src/views/darkroom.c:2559 ../src/views/lighttable.c:1275 #: ../src/views/map.c:2115 msgid "undo" msgstr "cofnij" -#: ../src/views/darkroom.c:2714 ../src/views/lighttable.c:1276 +#: ../src/views/darkroom.c:2560 ../src/views/lighttable.c:1276 #: ../src/views/map.c:2116 msgid "redo" msgstr "powtórz" #. change the precision for adjusting sliders with keyboard shortcuts -#: ../src/views/darkroom.c:2717 +#: ../src/views/darkroom.c:2563 msgid "change keyboard shortcut slider precision" msgstr "zmień skok skrótu klawiszowego dla suwaków" -#: ../src/views/darkroom.c:3989 +#: ../src/views/darkroom.c:3565 msgid "keyboard shortcut slider precision: fine" msgstr "skok klawiszy skrótów dla suwaków: dokładny" -#: ../src/views/darkroom.c:3991 +#: ../src/views/darkroom.c:3567 msgid "keyboard shortcut slider precision: normal" msgstr "skok klawiszy skrótów dla suwaków: średni" -#: ../src/views/darkroom.c:3993 +#: ../src/views/darkroom.c:3569 msgid "keyboard shortcut slider precision: coarse" msgstr "skok klawiszy skrótów dla suwaków: zgrubny" -#: ../src/views/darkroom.c:4009 +#: ../src/views/darkroom.c:3584 msgid "switch to lighttable" msgstr "przełącz na widok stołu podświetlanego" -#: ../src/views/darkroom.c:4010 ../src/views/lighttable.c:882 +#: ../src/views/darkroom.c:3585 ../src/views/lighttable.c:882 msgid "zoom in the image" msgstr "przybliżenie podglądu" -#: ../src/views/darkroom.c:4011 +#: ../src/views/darkroom.c:3586 msgid "unbounded zoom in the image" msgstr "nieograniczone przybliżenie podglądu" -#: ../src/views/darkroom.c:4012 +#: ../src/views/darkroom.c:3587 msgid "zoom to 100% 200% and back" msgstr "przełącz przybliżenie między 100% a 200%" -#: ../src/views/darkroom.c:4013 ../src/views/lighttable.c:885 +#: ../src/views/darkroom.c:3588 ../src/views/lighttable.c:885 msgid "pan a zoomed image" msgstr "przewiń przybliżany obraz" -#: ../src/views/darkroom.c:4015 ../src/views/lighttable.c:927 +#: ../src/views/darkroom.c:3590 ../src/views/lighttable.c:927 msgid "[modules] expand module without closing others" msgstr "[moduły] rozwiń moduł bez zwijania pozostałych" -#: ../src/views/darkroom.c:4016 ../src/views/lighttable.c:928 +#: ../src/views/darkroom.c:3591 ../src/views/lighttable.c:928 msgid "[modules] expand module and close others" msgstr "[moduły] rozwiń moduł i zwiń pozostałe" -#: ../src/views/darkroom.c:4018 +#: ../src/views/darkroom.c:3593 msgid "[modules] rename module" msgstr "[moduły] zmień nazwę modułu" -#: ../src/views/darkroom.c:4020 +#: ../src/views/darkroom.c:3595 msgid "[modules] change module position in pipe" msgstr "[moduły] zmień pozycję modułu" @@ -25022,25 +25769,25 @@ msgid "print" msgstr "wydruk" -#: ../src/views/slideshow.c:353 +#: ../src/views/slideshow.c:355 msgid "end of images" msgstr "koniec zdjęć" -#: ../src/views/slideshow.c:374 +#: ../src/views/slideshow.c:376 msgid "end of images. press any key to return to lighttable mode" msgstr "" "koniec zdjęć. naciśnij dowolny klawisz, aby powrócić do stołu podświetlanego" -#: ../src/views/slideshow.c:504 +#: ../src/views/slideshow.c:509 msgid "waiting to start slideshow" msgstr "oczekiwanie na rozpoczęcie pokazu slajdów" -#: ../src/views/slideshow.c:640 ../src/views/slideshow.c:661 -#: ../src/views/slideshow.c:669 +#: ../src/views/slideshow.c:678 ../src/views/slideshow.c:705 +#: ../src/views/slideshow.c:713 msgid "slideshow paused" msgstr "pokaz slajdów zapauzowany" -#: ../src/views/slideshow.c:648 ../src/views/slideshow.c:655 +#: ../src/views/slideshow.c:686 ../src/views/slideshow.c:696 #, c-format msgid "slideshow delay set to %d second" msgid_plural "slideshow delay set to %d seconds" @@ -25048,35 +25795,35 @@ msgstr[1] "opóźnienie pokazu slajdów ustawione na %d sekundy" msgstr[2] "opóźnienie pokazu slajdów ustawione na %d sekund" -#: ../src/views/slideshow.c:684 +#: ../src/views/slideshow.c:728 msgid "start and stop" msgstr "start i stop" -#: ../src/views/slideshow.c:685 +#: ../src/views/slideshow.c:730 msgid "exit slideshow" msgstr "wyjdź z pokazu slajdów" -#: ../src/views/slideshow.c:688 +#: ../src/views/slideshow.c:734 msgid "slow down" msgstr "zwolnij" -#: ../src/views/slideshow.c:691 +#: ../src/views/slideshow.c:738 msgid "speed up" msgstr "przyspiesz" -#: ../src/views/slideshow.c:695 +#: ../src/views/slideshow.c:743 msgid "step forward" msgstr "krok naprzód" -#: ../src/views/slideshow.c:696 +#: ../src/views/slideshow.c:745 msgid "step back" msgstr "poprzedni krok" -#: ../src/views/slideshow.c:702 +#: ../src/views/slideshow.c:753 msgid "go to next image" msgstr "przejdź do następnego zdjęcia" -#: ../src/views/slideshow.c:703 +#: ../src/views/slideshow.c:755 msgid "go to previous image" msgstr "przejdź do poprzedniego zdjęcia" @@ -25089,53 +25836,303 @@ msgid "no camera with tethering support available for use..." msgstr "brak aparatu obsługującego tethering..." -#: ../src/views/view.c:1193 +#: ../src/views/view.c:1352 msgid "left click" msgstr "lewy klik" -#: ../src/views/view.c:1196 +#: ../src/views/view.c:1355 msgid "right click" msgstr "prawy klik" -#: ../src/views/view.c:1199 +#: ../src/views/view.c:1358 msgid "middle click" msgstr "środkowy klik" -#: ../src/views/view.c:1205 +#: ../src/views/view.c:1364 msgid "left double-click" msgstr "podwójny klik lewym" -#: ../src/views/view.c:1208 +#: ../src/views/view.c:1367 msgid "right double-click" msgstr "podwójny klik prawym" -#: ../src/views/view.c:1211 +#: ../src/views/view.c:1370 msgid "drag and drop" msgstr "przeciąganie i upuszczanie" -#: ../src/views/view.c:1214 +#: ../src/views/view.c:1373 msgid "left click+drag" msgstr "przeciąganie z lewym" -#: ../src/views/view.c:1217 +#: ../src/views/view.c:1376 msgid "right click+drag" msgstr "przeciąganie z prawym" -#: ../src/views/view.c:1237 +#: ../src/views/view.c:1398 msgid "darktable - accels window" msgstr "darktable - okno skrótów" -#: ../src/views/view.c:1285 +#: ../src/views/view.c:1447 msgid "switch to a classic window which will stay open after key release" msgstr "" "przełącz do zwykłego okna, które pozostanie otwarte po zwolnieniu klawisza" #. we add the mouse actions too -#: ../src/views/view.c:1344 +#: ../src/views/view.c:1514 msgid "mouse actions" msgstr "akcje myszą" #~ msgctxt "preferences" +#~ msgid "nothing" +#~ msgstr "nic" + +#~ msgctxt "preferences" +#~ msgid "memory size" +#~ msgstr "rozmiar pamięci" + +#~ msgctxt "preferences" +#~ msgid "memory transfer" +#~ msgstr "transfer pamięci" + +#~ msgctxt "preferences" +#~ msgid "memory size and transfer" +#~ msgstr "wielkość pamięci i transfer" + +#~ msgctxt "preferences" +#~ msgid "id" +#~ msgstr "id" + +#~ msgctxt "preferences" +#~ msgid "folder" +#~ msgstr "katalog" + +#~ msgid "" +#~ "when having raw+JPEG images together in one directory it makes no sense " +#~ "to import both. with this flag one can ignore all JPEGs found." +#~ msgstr "" +#~ "jeśli w danym katalogu znajdują się te same zdjęcia w formatach raw i " +#~ "JPEG, to importowanie obu może być niepotrzebne. to ustawienie umożliwia " +#~ "pominięcie plików JPEG przy imporcie." + +#~ msgid "tune OpenCL performance" +#~ msgstr "dostosuj wydajność OpenCL" + +#~ msgid "" +#~ "allows runtime tuning of OpenCL devices:\n" +#~ " - 'memory size': uses a fixed headroom (400MB as default),\n" +#~ " - 'memory transfer': tries a faster memory access mode (pinned memory) " +#~ "used for tiling." +#~ msgstr "" +#~ "zezwala na dostrajanie urządzeń OpenCL:\n" +#~ "-\"rozmiar pamięci\" - używa stałego zapasu (400MB domyślnie), \n" +#~ "-\"transfer pamięci\" - próbuje używać szybszego trybu dostępu (pinned " +#~ "memory) dla kafelkowania." + +#~ msgid "write sidecar file for each image" +#~ msgstr "zapisuj plik poboczny dla każdego zdjęcia" + +#~ msgid "" +#~ "if an instance of the module has focus, apply shortcut to that instance\n" +#~ "note: blending shortcuts always apply to the focused instance" +#~ msgstr "" +#~ "jeśli instancja modułu jest wybrana, zastosuj skrót do tej instancji\n" +#~ "nota: skróty trybu krycia zawsze działają na wybranej instancji" + +#~ msgid "distortion fine-tune" +#~ msgstr "dostrojenie dystorsji" + +#~ msgid "vignetting fine-tune" +#~ msgstr "dostrojenie winietowania" + +#~ msgid "TCA red fine-tune" +#~ msgstr "TCA dostrajanie czerwonego" + +#~ msgid "TCA blue fine-tune" +#~ msgstr "TCA dostrajanie niebieskiego" + +#~ msgid "tiff" +#~ msgstr "tiff" + +#~ msgid "png" +#~ msgstr "png" + +#~ msgid "j2k" +#~ msgstr "j2k" + +#~ msgid "jpeg" +#~ msgstr "jpeg" + +#~ msgid "exr" +#~ msgstr "exr" + +#~ msgid "rgbe" +#~ msgstr "rgbe" + +#~ msgid "pfm" +#~ msgstr "pfm" + +#~ msgid "netpnm" +#~ msgstr "netpnm" + +#~ msgid "avif" +#~ msgstr "avif" + +#~ msgid "heif" +#~ msgstr "heif" + +#~ msgid "libraw" +#~ msgstr "libraw" + +#~ msgid "webp" +#~ msgstr "webp" + +#~ msgid "jpeg xl" +#~ msgstr "jpeg xl" + +#~ msgid "" +#~ "due to a slow GPU hardware acceleration using OpenCL has been deactivated" +#~ msgstr "" +#~ "z powodu wolnej karty graficznej akceleracja przez opencl została " +#~ "wyłączona" + +#~ msgid "" +#~ "multiple GPUs detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "wykryto kilka kart graficznych – profil szeregowania opencl został " +#~ "ustawiony odpowiednio" + +#~ msgid "" +#~ "very fast GPU detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "wykryto bardzo szybką kartę graficzną – profil szeregowania opencl " +#~ "ustawiony odpowiednio" + +#~ msgid "" +#~ "darktable discovered problems with your OpenCL setup; disabling OpenCL " +#~ "for this session!" +#~ msgstr "" +#~ "program darktable wykrył problem z konfiguracją OpenCL; OpenCL został " +#~ "wyłączony dla tej sesji!" + +#~ msgid "no-op" +#~ msgstr "brak operacji" + +#~ msgid "RGB colors" +#~ msgstr "kolory RGB" + +#~ msgid "compression type" +#~ msgstr "rodzaj kompresji" + +#~ msgid "jp2" +#~ msgstr "jp2" + +#~ msgid "b&w image" +#~ msgstr "obraz czarno-biały" + +#~ msgid "write RGB colors" +#~ msgstr "zapisuj kolory RGB" + +#~ msgid "write grayscale" +#~ msgstr "zapisuj skalę szarości" + +#~ msgid "spot color mapping" +#~ msgstr "punktowe mapowanie kolorów" + +#~ msgid "spot mode" +#~ msgstr "tryb skupiony" + +#~ msgid "" +#~ "set strength of rebuilding in regions with all photosites clipped.\n" +#~ "the mask buttons shows the effect that is added to already reconstructed " +#~ "data." +#~ msgstr "" +#~ "ustal siłę rekonstrukcji w regionach z przepaleniem na wszystkich " +#~ "kanałach.\n" +#~ "przyciski maski pokazują efekt dodany do już zrekonstruowanego obrazu." + +#~ msgid "" +#~ "tone equalizer needs to be after distortion modules in the pipeline – " +#~ "disabled" +#~ msgstr "" +#~ "korektor tonów musi być ulokowany w potoku przetwarzania za modułami " +#~ "zniekształceń – wyłączony" + +#~ msgid "reference to which the marker should be scaled to" +#~ msgstr "referencja do skalowania znaku" + +#~ msgid "length of the marker which is used as scaling reference" +#~ msgstr "długość znaku wodnego, używana jako odniesienie do skalowania" + +#~ msgid "save" +#~ msgstr "zapisz" + +#~ msgid "add" +#~ msgstr "dodaj" + +#~ msgid "only" +#~ msgstr "tylko" + +#~ msgid "selected image[s]" +#~ msgstr "wybrane zdjęcia" + +#~ msgid "hardness (relative)" +#~ msgstr "twardość (względna)" + +#~ msgid "hardness (absolute)" +#~ msgstr "twardość (bezwzględna)" + +#~ msgid "opacity (relative)" +#~ msgstr "krycie (względne)" + +#~ msgid "opacity (absolute)" +#~ msgstr "krycie (bezwzględne)" + +#~ msgid "brush size (relative)" +#~ msgstr "rozmiar pędzla (względny)" + +#~ msgid "low" +#~ msgstr "niska" + +#~ msgid "medium" +#~ msgstr "średnia" + +#~ msgid "high" +#~ msgstr "wysoka" + +#~ msgid "" +#~ "pen pressure control for brush masks\n" +#~ "'off': pressure reading ignored,\n" +#~ "'hardness'/'opacity'/'brush size': pressure reading controls specified " +#~ "attribute,\n" +#~ "'absolute'/'relative': pressure reading is taken directly as attribute " +#~ "value or multiplied with pre-defined setting." +#~ msgstr "" +#~ "kontrola pędzli maski naciskiem rysika\n" +#~ "\"brak\" - nacisk będzie ignorowany, \n" +#~ "\"twardość\"/\"krycie\"/\"rozmiar pędzla\" - nacisk steruje wybranym " +#~ "parametrem,\n" +#~ "bezwzględne/względne - nacisk będzie stosowany bezpośrednio lub mnożony " +#~ "przez wstępnie ustawiony współczynnik." + +#~ msgid "" +#~ "smoothing of brush strokes\n" +#~ "stronger smoothing leads to fewer nodes and easier editing but with lower " +#~ "control of accuracy." +#~ msgstr "" +#~ "wygładzanie pociągnięć pędzla\n" +#~ "silniejsze wygładzanie prowadzi do mniejszej ilości węzłów i skutkuje " +#~ "łatwiejszą edycją, ale daje mniejszą kontrolę nad dokładnością." + +#~ msgid "<leave unchanged>" +#~ msgstr "<zostaw niezmienione>" + +#, c-format +#~ msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" +#~ msgstr "%.1f mm (%.1f mm ekwiwalent 35mm, mnożnik %.1f)" + +#~ msgctxt "preferences" #~ msgid "always bilinear (fast)" #~ msgstr "zawsze bilinearne (szybkie)" @@ -25212,9 +26209,6 @@ #~ msgid "3:2" #~ msgstr "3:2" -#~ msgid "set the custom aspect ratio" -#~ msgstr "ustaw dowolny stosunek proporcji" - #~ msgid "ICC profiles in %s or %s" #~ msgstr "profile ICC w %s lub %s" @@ -25354,9 +26348,6 @@ #~ msgid "output ICC profiles in %s or %s" #~ msgstr "wyjściowe profile ICC w %s lub %s" -#~ msgid "rgb parade" -#~ msgstr "wykres falowy RGB (parade)" - #~ msgid "rotate 90 degrees ccw" #~ msgstr "obróć o 90 stopni w lewo" @@ -25645,9 +26636,6 @@ #~ msgid "xmp" #~ msgstr "xmp" -#~ msgid "recovery" -#~ msgstr "odzyskiwanie" - #~ msgid "error: can't open xmp file %s" #~ msgstr "błąd: nie można otworzyć pliku xmp %s" @@ -25740,17 +26728,9 @@ #~ msgid "xcf" #~ msgstr "xcf" -#~ msgid "" -#~ "set strength of reconstruction in regions with all photosites clipped" -#~ msgstr "" -#~ "ustal siłę rekonstrukcji w regionach z przepaleniem na wszystkich kanałach" - #~ msgid "preview is only possible for zoom lower than 200%%" #~ msgstr "podgląd możliwy tylko dla powiększenia mniejszego, niż 200%" -#~ msgid "actual selection" -#~ msgstr "bieżąca selekcja" - #~ msgid "v3.0" #~ msgstr "v3.0" @@ -25828,9 +26808,6 @@ #~ msgid "lift chroma" #~ msgstr "chroma uniesienia" -#~ msgid "lift hue" -#~ msgstr "barwa uniesienia" - #~ msgid "power luminance" #~ msgstr "potęga luminancji" @@ -25864,9 +26841,6 @@ #~ msgid "chroma highlights" #~ msgstr "barwa świateł" -#~ msgid "chroma global" -#~ msgstr "chroma globalna" - #~ msgid "chroma mid-tones" #~ msgstr "barwa tonów średnich" @@ -26202,9 +27176,6 @@ #~ msgid "grey" #~ msgstr "szarości" -#~ msgid "white balance settings" -#~ msgstr "ustawienia balansu bieli" - #~ msgid "%.0f mired" #~ msgstr "%.0f mired" @@ -26673,9 +27644,6 @@ #~ "podręczniku - zdjęcie dwukrotnie ocenione na jedną gwiazdkę otrzyma ocenę " #~ "zero." -#~ msgid "color manage cached thumbnails" -#~ msgstr "włącz zarządzanie kolorem zapisanych miniaturek" - #~ msgid "" #~ "if enabled, cached thumbnails will be color managed so that lighttable " #~ "and filmstrip can show correct colors. otherwise the results may look " @@ -27345,9 +28313,6 @@ #~ "wkleja wybrane elementy historii edycji\n" #~ "do wszystkich wybranych zdjęć" -#~ msgid "export selected" -#~ msgstr "eksport wybranych obrazów" - #~ msgid "edit metadata exportation details" #~ msgstr "edytuj szczegóły eksportu metadanych" @@ -27382,10 +28347,6 @@ #~ msgstr "usuń z kolekcji" #~ msgctxt "accel" -#~ msgid "replace metadata" -#~ msgstr "zastąp metadane" - -#~ msgctxt "accel" #~ msgid "import image" #~ msgstr "importuj zdjęcie" @@ -28656,9 +29617,6 @@ #~ msgid "scan for devices" #~ msgstr "wyszukaj urządzenia" -#~ msgid "no supported devices found" -#~ msgstr "nie znaleziono obsługiwanych urządzeń" - #~ msgid "to be imported" #~ msgstr "do zaimportowania" @@ -29477,9 +30435,6 @@ #~ "importowanych obrazów; w przypadku braku wiedzy jak ich użyć, proszę " #~ "pozostać przy ustawieniach domyślnych." -#~ msgid "storage directory" -#~ msgstr "katalog przechowywania" - #~ msgid "directory structure" #~ msgstr "struktura katalogu" @@ -30189,9 +31144,6 @@ #~ msgid "blend hue (0 is same as clipping)" #~ msgstr "mieszanie odcienia (0 równe jest przycinaniu)" -#~ msgid "blend L" -#~ msgstr "mieszanie L" - #~ msgid "blend C" #~ msgstr "mieszanie C" @@ -30650,9 +31602,6 @@ #~ msgid "median filter before demosaicing" #~ msgstr "filtr mediany przed demozaikowaniem" -#~ msgid "green equilibration" -#~ msgstr "zrównoważenie zieleni" - #~ msgid "" #~ "work around unequal green channels in some mid-range\n" #~ "cameras, e.g. canon eos 400d" diff -Nru darktable-4.4.2/po/pt_BR.po darktable-4.6.1/po/pt_BR.po --- darktable-4.4.2/po/pt_BR.po 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/po/pt_BR.po 2024-02-16 17:31:09.000000000 +0000 @@ -6,8 +6,8 @@ msgstr "" "Project-Id-Version: darktable\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-04 14:41-0300\n" -"PO-Revision-Date: 2023-06-04 14:44-0300\n" +"POT-Creation-Date: 2023-11-30 20:36-0300\n" +"PO-Revision-Date: 2023-11-30 20:36-0300\n" "Last-Translator: Marcus Gama <marcus.gama@gmail.com>\n" "Language-Team: Portuguese <darktable-dev@lists.darktable.org>\n" "Language: pt_BR\n" @@ -18,270 +18,235 @@ "X-Generator: Poedit 3.3.1\n" "X-Poedit-Bookmarks: 722,-1,-1,-1,-1,-1,-1,-1,-1,-1\n" -#: ../build/bin/conf_gen.h:172 ../build/bin/preferences_gen.h:7632 +#: ../build/bin/conf_gen.h:174 msgctxt "preferences" msgid "first instance" msgstr "primeira instância" -#: ../build/bin/conf_gen.h:173 ../build/bin/preferences_gen.h:7637 -#: ../build/bin/preferences_gen.h:7656 +#: ../build/bin/conf_gen.h:175 ../build/bin/preferences_gen.h:7922 msgctxt "preferences" msgid "last instance" msgstr "última instância" -#: ../build/bin/conf_gen.h:240 ../build/bin/conf_gen.h:346 -#: ../build/bin/conf_gen.h:356 ../build/bin/conf_gen.h:1186 -#: ../build/bin/conf_gen.h:1202 ../build/bin/preferences_gen.h:4137 -#: ../build/bin/preferences_gen.h:4156 ../build/bin/preferences_gen.h:4232 -#: ../build/bin/preferences_gen.h:6706 ../build/bin/preferences_gen.h:6834 -#: ../build/bin/preferences_gen.h:6899 +#: ../build/bin/conf_gen.h:252 ../build/bin/conf_gen.h:352 +#: ../build/bin/conf_gen.h:362 ../build/bin/conf_gen.h:1239 +#: ../build/bin/conf_gen.h:1255 ../build/bin/conf_gen.h:1275 +#: ../build/bin/preferences_gen.h:4747 ../build/bin/preferences_gen.h:4885 msgctxt "preferences" msgid "never" msgstr "nunca" -#: ../build/bin/conf_gen.h:241 ../build/bin/preferences_gen.h:6711 +#: ../build/bin/conf_gen.h:253 msgctxt "preferences" msgid "once a month" msgstr "uma vez por mês" -#: ../build/bin/conf_gen.h:242 ../build/bin/preferences_gen.h:6716 -#: ../build/bin/preferences_gen.h:6745 +#: ../build/bin/conf_gen.h:254 ../build/bin/preferences_gen.h:7138 msgctxt "preferences" msgid "once a week" msgstr "uma vez por semana" -#: ../build/bin/conf_gen.h:243 ../build/bin/preferences_gen.h:6721 +#: ../build/bin/conf_gen.h:255 msgctxt "preferences" msgid "once a day" msgstr "uma vez por dia" -#: ../build/bin/conf_gen.h:244 ../build/bin/preferences_gen.h:6726 +#: ../build/bin/conf_gen.h:256 msgctxt "preferences" msgid "on close" msgstr "ao fechar" -#: ../build/bin/conf_gen.h:280 ../build/bin/conf_gen.h:1179 -#: ../build/bin/conf_gen.h:1195 ../build/bin/preferences_gen.h:4102 -#: ../build/bin/preferences_gen.h:4197 ../build/bin/preferences_gen.h:5748 +#: ../build/bin/conf_gen.h:292 ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1248 ../build/bin/conf_gen.h:1276 msgctxt "preferences" msgid "small" msgstr "pequeno" -#: ../build/bin/conf_gen.h:281 ../build/bin/conf_gen.h:393 -#: ../build/bin/preferences_gen.h:5753 ../build/bin/preferences_gen.h:5782 -#: ../build/bin/preferences_gen.h:5969 ../build/bin/preferences_gen.h:5998 +#: ../build/bin/conf_gen.h:293 ../build/bin/conf_gen.h:405 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6223 msgctxt "preferences" msgid "default" msgstr "padrão" -#: ../build/bin/conf_gen.h:282 ../build/bin/conf_gen.h:2814 -#: ../build/bin/preferences_gen.h:5758 +#: ../build/bin/conf_gen.h:294 ../build/bin/conf_gen.h:2904 msgctxt "preferences" msgid "large" msgstr "grande" -#: ../build/bin/conf_gen.h:283 ../build/bin/preferences_gen.h:5763 +#: ../build/bin/conf_gen.h:295 msgctxt "preferences" msgid "unrestricted" msgstr "irrestrito" -#: ../build/bin/conf_gen.h:347 ../build/bin/preferences_gen.h:6839 +#: ../build/bin/conf_gen.h:353 msgctxt "preferences" msgid "after edit" msgstr "após edição" -#: ../build/bin/conf_gen.h:348 ../build/bin/preferences_gen.h:6844 -#: ../build/bin/preferences_gen.h:6863 +#: ../build/bin/conf_gen.h:354 ../build/bin/preferences_gen.h:7224 msgctxt "preferences" msgid "on import" msgstr "ao importar" -#: ../build/bin/conf_gen.h:357 ../build/bin/conf_gen.h:1178 -#: ../build/bin/conf_gen.h:1194 ../build/bin/conf_gen.h:3214 -#: ../build/bin/preferences_gen.h:4097 ../build/bin/preferences_gen.h:4192 -#: ../build/bin/preferences_gen.h:5112 ../build/bin/preferences_gen.h:5166 -#: ../build/bin/preferences_gen.h:6904 +#: ../build/bin/conf_gen.h:363 ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1247 ../build/bin/conf_gen.h:3300 +#: ../build/bin/preferences_gen.h:5644 msgctxt "preferences" msgid "always" msgstr "sempre" -#: ../build/bin/conf_gen.h:358 ../build/bin/preferences_gen.h:6909 -#: ../build/bin/preferences_gen.h:6928 +#: ../build/bin/conf_gen.h:364 ../build/bin/preferences_gen.h:7259 msgctxt "preferences" msgid "only large entries" msgstr "apenas entradas grandes" -#: ../build/bin/conf_gen.h:378 ../build/bin/preferences_gen.h:8069 +#: ../build/bin/conf_gen.h:390 msgctxt "preferences" msgid "sensitive" msgstr "sensível" -#: ../build/bin/conf_gen.h:379 ../build/bin/preferences_gen.h:8074 -#: ../build/bin/preferences_gen.h:8093 +#: ../build/bin/conf_gen.h:391 ../build/bin/preferences_gen.h:8133 msgctxt "preferences" msgid "insensitive" msgstr "não sensível" -#: ../build/bin/conf_gen.h:394 ../build/bin/preferences_gen.h:5974 +#: ../build/bin/conf_gen.h:406 msgctxt "preferences" msgid "multiple GPUs" msgstr "múltiplas GPUs" -#: ../build/bin/conf_gen.h:395 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/conf_gen.h:407 msgctxt "preferences" msgid "very fast GPU" msgstr "GPU muito rápida" -#: ../build/bin/conf_gen.h:403 ../build/bin/preferences_gen.h:6040 -#: ../build/bin/preferences_gen.h:6074 +#: ../build/bin/conf_gen.h:755 msgctxt "preferences" -msgid "nothing" -msgstr "nada" - -#: ../build/bin/conf_gen.h:404 ../build/bin/preferences_gen.h:6045 -msgctxt "preferences" -msgid "memory size" -msgstr "tamanho da memória" - -#: ../build/bin/conf_gen.h:405 ../build/bin/preferences_gen.h:6050 -msgctxt "preferences" -msgid "memory transfer" -msgstr "transferência de memória" - -#: ../build/bin/conf_gen.h:406 ../build/bin/preferences_gen.h:6055 -msgctxt "preferences" -msgid "memory size and transfer" -msgstr "tamanho e transferência de memória" +msgid "import time" +msgstr "data/hora de importação" -#: ../build/bin/conf_gen.h:706 ../build/bin/preferences_gen.h:8257 -#: ../build/bin/preferences_gen.h:8281 +#: ../build/bin/conf_gen.h:756 msgctxt "preferences" -msgid "id" -msgstr "id" +msgid "folder name" +msgstr "nome da pasta" -#: ../build/bin/conf_gen.h:707 ../build/bin/preferences_gen.h:8262 -msgctxt "preferences" -msgid "folder" -msgstr "pasta" - -#: ../build/bin/conf_gen.h:721 +#: ../build/bin/conf_gen.h:770 msgctxt "preferences" msgid "RGB" msgstr "RGB" -#: ../build/bin/conf_gen.h:722 +#: ../build/bin/conf_gen.h:771 msgctxt "preferences" msgid "Lab" msgstr "Lab" -#: ../build/bin/conf_gen.h:723 +#: ../build/bin/conf_gen.h:772 msgctxt "preferences" msgid "LCh" msgstr "LCh" -#: ../build/bin/conf_gen.h:724 +#: ../build/bin/conf_gen.h:773 msgctxt "preferences" msgid "HSL" msgstr "HSL" -#: ../build/bin/conf_gen.h:725 +#: ../build/bin/conf_gen.h:774 msgctxt "preferences" msgid "Hex" msgstr "Hex" -#: ../build/bin/conf_gen.h:726 ../build/bin/conf_gen.h:1830 -#: ../build/bin/conf_gen.h:2488 ../build/bin/conf_gen.h:2790 -#: ../build/bin/conf_gen.h:3044 ../build/bin/preferences_gen.h:5577 -#: ../build/bin/preferences_gen.h:6561 +#: ../build/bin/conf_gen.h:775 ../build/bin/conf_gen.h:1916 +#: ../build/bin/conf_gen.h:2578 ../build/bin/conf_gen.h:2880 +#: ../build/bin/conf_gen.h:3136 msgctxt "preferences" msgid "none" msgstr "nenhum" -#: ../build/bin/conf_gen.h:734 +#: ../build/bin/conf_gen.h:783 msgctxt "preferences" msgid "mean" msgstr "média" -#: ../build/bin/conf_gen.h:735 +#: ../build/bin/conf_gen.h:784 msgctxt "preferences" msgid "min" msgstr "mín" -#: ../build/bin/conf_gen.h:736 +#: ../build/bin/conf_gen.h:785 msgctxt "preferences" msgid "max" msgstr "máx" -#: ../build/bin/conf_gen.h:924 +#: ../build/bin/conf_gen.h:973 msgid "select only new pictures" msgstr "selecionar apenas imagens novas" -#: ../build/bin/conf_gen.h:925 +#: ../build/bin/conf_gen.h:974 msgid "only select images that have not already been imported" msgstr "apenas selecionar imagens que ainda não tenham sido importadas" -#: ../build/bin/conf_gen.h:930 -msgid "ignore JPEG images" -msgstr "ignorar imagens JPEG" +#: ../build/bin/conf_gen.h:979 +msgid "ignore non-raw images" +msgstr "ignorar imagens não-raw" -#: ../build/bin/conf_gen.h:931 +#: ../build/bin/conf_gen.h:980 msgid "" -"when having raw+JPEG images together in one directory it makes no sense to " -"import both. with this flag one can ignore all JPEGs found." +"if enabled, only raw files will be allowed to import. non-raw files will not " +"be visible in the dialog and will not be imported." msgstr "" -"quando houverem imagens raw+jpeg juntas em uma pasta, não faz sentido " -"importar ambos. com esta opção pode-se ignorar todos os jpegs encontrados." +"se habilitado, somente arquivos raw poderão ser importados. arquivos não-raw " +"não serão visíveis no diálogo de importação." -#: ../build/bin/conf_gen.h:936 +#: ../build/bin/conf_gen.h:985 msgid "apply metadata" msgstr "aplicar metadados" -#: ../build/bin/conf_gen.h:937 +#: ../build/bin/conf_gen.h:986 msgid "apply some metadata to all newly imported images." msgstr "aplicar alguns metadados a todas imagens importadas recentemente." -#: ../build/bin/conf_gen.h:942 +#: ../build/bin/conf_gen.h:991 msgid "recursive directory" msgstr "pasta recursiva" -#: ../build/bin/conf_gen.h:943 +#: ../build/bin/conf_gen.h:992 msgid "recursive directory traversal when importing filmrolls" msgstr "pesquisa pastas recursivamente ao importar rolos de filme" -#: ../build/bin/conf_gen.h:948 +#: ../build/bin/conf_gen.h:997 msgid "creator to be applied when importing" msgstr "criador a ser aplicado ao importar" -#: ../build/bin/conf_gen.h:954 +#: ../build/bin/conf_gen.h:1003 msgid "publisher to be applied when importing" msgstr "editor a ser aplicado ao importar" -#: ../build/bin/conf_gen.h:960 +#: ../build/bin/conf_gen.h:1009 msgid "rights to be applied when importing" msgstr "direitos a ser aplicado ao importar" -#: ../build/bin/conf_gen.h:966 +#: ../build/bin/conf_gen.h:1015 msgid "comma separated tags to be applied when importing" msgstr "etiquetas separadas por vírgulas a serem aplicadas ao importar" -#: ../build/bin/conf_gen.h:972 +#: ../build/bin/conf_gen.h:1021 msgid "import tags from XMP" msgstr "importar etiquetas do XMP" -#: ../build/bin/conf_gen.h:998 +#: ../build/bin/conf_gen.h:1051 msgid "initial rating" msgstr "classificação inicial" -#: ../build/bin/conf_gen.h:999 +#: ../build/bin/conf_gen.h:1052 msgid "initial star rating for all images when importing a filmroll" msgstr "" "valor inicial em estrelas para todas imagens ao importar um rolo de filme" -#: ../build/bin/conf_gen.h:1004 +#: ../build/bin/conf_gen.h:1057 msgid "ignore EXIF rating" msgstr "ignorar classificação EXIF" -#: ../build/bin/conf_gen.h:1005 +#: ../build/bin/conf_gen.h:1058 msgid "" "ignore EXIF rating. if not set and EXIF rating is found, it overrides " "'initial rating'" @@ -289,19 +254,19 @@ "ignorar classificação em EXIF. se desligado e uma classificação for " "encontrada nos dados EXIF, ela sobrescreverá a classificação inicial" -#: ../build/bin/conf_gen.h:1010 +#: ../build/bin/conf_gen.h:1063 msgid "import job" msgstr "trabalho de importação" -#: ../build/bin/conf_gen.h:1011 +#: ../build/bin/conf_gen.h:1064 msgid "name of the import job" msgstr "nome do trabalho de importação" -#: ../build/bin/conf_gen.h:1016 +#: ../build/bin/conf_gen.h:1069 msgid "override today's date" msgstr "sobrescrever data de hoje" -#: ../build/bin/conf_gen.h:1017 +#: ../build/bin/conf_gen.h:1070 msgid "" "type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override " "the current date/time used when expanding variables:\n" @@ -313,162 +278,159 @@ "$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS), $(MSEC).\n" "deixe o campo vazio se não quiser modificá-las" -#: ../build/bin/conf_gen.h:1022 +#: ../build/bin/conf_gen.h:1075 msgid "keep this window open" msgstr "manter esta janela aberta" -#: ../build/bin/conf_gen.h:1023 +#: ../build/bin/conf_gen.h:1076 msgid "keep this window open to run several imports" msgstr "manter esta janela aberta para rodar várias importações" -#: ../build/bin/conf_gen.h:1180 ../build/bin/conf_gen.h:1196 -#: ../build/bin/preferences_gen.h:4107 ../build/bin/preferences_gen.h:4202 +#: ../build/bin/conf_gen.h:1233 ../build/bin/conf_gen.h:1249 +#: ../build/bin/conf_gen.h:1277 msgctxt "preferences" msgid "VGA" msgstr "VGA" -#: ../build/bin/conf_gen.h:1181 ../build/bin/conf_gen.h:1197 -#: ../build/bin/preferences_gen.h:4112 ../build/bin/preferences_gen.h:4207 -#: ../build/bin/preferences_gen.h:4251 +#: ../build/bin/conf_gen.h:1234 ../build/bin/conf_gen.h:1250 +#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4782 msgctxt "preferences" msgid "720p" msgstr "720p" -#: ../build/bin/conf_gen.h:1182 ../build/bin/conf_gen.h:1198 -#: ../build/bin/preferences_gen.h:4117 ../build/bin/preferences_gen.h:4212 +#: ../build/bin/conf_gen.h:1235 ../build/bin/conf_gen.h:1251 +#: ../build/bin/conf_gen.h:1279 msgctxt "preferences" msgid "1080p" msgstr "2080p" -#: ../build/bin/conf_gen.h:1183 ../build/bin/conf_gen.h:1199 -#: ../build/bin/preferences_gen.h:4122 ../build/bin/preferences_gen.h:4217 +#: ../build/bin/conf_gen.h:1236 ../build/bin/conf_gen.h:1252 +#: ../build/bin/conf_gen.h:1280 msgctxt "preferences" msgid "WQXGA" msgstr "WQXGA" -#: ../build/bin/conf_gen.h:1184 ../build/bin/conf_gen.h:1200 -#: ../build/bin/preferences_gen.h:4127 ../build/bin/preferences_gen.h:4222 +#: ../build/bin/conf_gen.h:1237 ../build/bin/conf_gen.h:1253 +#: ../build/bin/conf_gen.h:1281 msgctxt "preferences" msgid "4K" msgstr "4K" -#: ../build/bin/conf_gen.h:1185 ../build/bin/conf_gen.h:1201 -#: ../build/bin/preferences_gen.h:4132 ../build/bin/preferences_gen.h:4227 +#: ../build/bin/conf_gen.h:1238 ../build/bin/conf_gen.h:1254 +#: ../build/bin/conf_gen.h:1282 msgctxt "preferences" msgid "5K" msgstr "5K" -#: ../build/bin/conf_gen.h:1228 +#: ../build/bin/conf_gen.h:1314 msgctxt "preferences" msgid "off" msgstr "desligado" -#: ../build/bin/conf_gen.h:1229 +#: ../build/bin/conf_gen.h:1315 msgctxt "preferences" msgid "hardness (relative)" msgstr "dureza (relativa)" -#: ../build/bin/conf_gen.h:1230 +#: ../build/bin/conf_gen.h:1316 msgctxt "preferences" msgid "hardness (absolute)" msgstr "dureza (absoluta)" -#: ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1317 msgctxt "preferences" msgid "opacity (relative)" msgstr "opacidade (relativa)" -#: ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1318 msgctxt "preferences" msgid "opacity (absolute)" msgstr "opacidade (absoluta)" -#: ../build/bin/conf_gen.h:1233 +#: ../build/bin/conf_gen.h:1319 msgctxt "preferences" msgid "brush size (relative)" msgstr "tamanho do pincel (relativo)" -#: ../build/bin/conf_gen.h:1241 +#: ../build/bin/conf_gen.h:1327 msgctxt "preferences" msgid "low" msgstr "baixa" -#: ../build/bin/conf_gen.h:1242 +#: ../build/bin/conf_gen.h:1328 msgctxt "preferences" msgid "medium" msgstr "média" -#: ../build/bin/conf_gen.h:1243 +#: ../build/bin/conf_gen.h:1329 msgctxt "preferences" msgid "high" msgstr "alta" -#: ../build/bin/conf_gen.h:1263 ../build/bin/preferences_gen.h:4836 -#: ../build/bin/preferences_gen.h:4860 +#: ../build/bin/conf_gen.h:1349 ../build/bin/preferences_gen.h:5405 msgctxt "preferences" msgid "false color" msgstr "falsa cor" -#: ../build/bin/conf_gen.h:1264 ../build/bin/preferences_gen.h:4841 +#: ../build/bin/conf_gen.h:1350 msgctxt "preferences" msgid "grayscale" msgstr "tons de cinza" -#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4567 +#: ../build/bin/conf_gen.h:1364 msgctxt "preferences" msgid "top left" msgstr "acima, à esquerda" -#: ../build/bin/conf_gen.h:1279 ../build/bin/preferences_gen.h:4572 +#: ../build/bin/conf_gen.h:1365 msgctxt "preferences" msgid "top right" msgstr "acima, à direita" -#: ../build/bin/conf_gen.h:1280 ../build/bin/preferences_gen.h:4577 +#: ../build/bin/conf_gen.h:1366 msgctxt "preferences" msgid "top center" msgstr "acima, no centro" -#: ../build/bin/conf_gen.h:1281 ../build/bin/preferences_gen.h:4582 -#: ../build/bin/preferences_gen.h:4606 +#: ../build/bin/conf_gen.h:1367 ../build/bin/preferences_gen.h:5217 msgctxt "preferences" msgid "bottom" msgstr "inferior" -#: ../build/bin/conf_gen.h:1282 ../build/bin/preferences_gen.h:4587 +#: ../build/bin/conf_gen.h:1368 msgctxt "preferences" msgid "hidden" msgstr "oculto" -#: ../build/bin/conf_gen.h:1792 +#: ../build/bin/conf_gen.h:1878 msgid "show OSD" msgstr "mostrar controles na tela" -#: ../build/bin/conf_gen.h:1793 +#: ../build/bin/conf_gen.h:1879 msgid "toggle the visibility of the map overlays" msgstr "alterna a visibilidade das sobreposições do mapa" -#: ../build/bin/conf_gen.h:1798 ../src/libs/map_settings.c:146 +#: ../build/bin/conf_gen.h:1884 ../src/libs/map_settings.c:119 msgid "filtered images" msgstr "imagens filtradas" -#: ../build/bin/conf_gen.h:1799 +#: ../build/bin/conf_gen.h:1885 msgid "when set limit the images drawn to the current filmstrip" msgstr "quando definido, limita as imagens ao rolo de filme atual" -#: ../build/bin/conf_gen.h:1806 +#: ../build/bin/conf_gen.h:1892 msgid "max images" msgstr "máximo de imagens" -#: ../build/bin/conf_gen.h:1807 +#: ../build/bin/conf_gen.h:1893 msgid "the maximum number of image thumbnails drawn on the map" msgstr "número máximo de miniaturas de imagens desenhadas no mapa" -#: ../build/bin/conf_gen.h:1814 +#: ../build/bin/conf_gen.h:1900 msgid "group size factor" msgstr "fator de tamanho de grupo" -#: ../build/bin/conf_gen.h:1815 +#: ../build/bin/conf_gen.h:1901 msgid "" "increase or decrease the spatial size of images groups on the map. can " "influence the calculation time" @@ -476,11 +438,11 @@ "aumenta ou diminui o tamanho espacial dos grupos de imagens no mapa. pode " "influenciar o tempo de cálculo" -#: ../build/bin/conf_gen.h:1822 +#: ../build/bin/conf_gen.h:1908 msgid "min images per group" msgstr "mínimo de imagens por grupo" -#: ../build/bin/conf_gen.h:1823 +#: ../build/bin/conf_gen.h:1909 msgid "" "the minimum number of images to set up an images group. can influence the " "calculation time." @@ -488,21 +450,21 @@ "o número mínimo de imagens para constituir um grupo de imagens. pode " "influenciar o tempo de cálculo." -#: ../build/bin/conf_gen.h:1828 +#: ../build/bin/conf_gen.h:1914 msgctxt "preferences" msgid "thumbnail" msgstr "miniatura" -#: ../build/bin/conf_gen.h:1829 +#: ../build/bin/conf_gen.h:1915 msgctxt "preferences" msgid "count" msgstr "contagem" -#: ../build/bin/conf_gen.h:1832 ../src/libs/map_settings.c:159 +#: ../build/bin/conf_gen.h:1918 msgid "thumbnail display" msgstr "mostrar nas miniaturas" -#: ../build/bin/conf_gen.h:1833 +#: ../build/bin/conf_gen.h:1919 msgid "" "three options are available: images thumbnails, only the count of images of " "the group or nothing" @@ -510,268 +472,259 @@ "há três opções disponíveis: miniaturas de imagens, somente a contagem de " "imagens do grupo ou nada" -#: ../build/bin/conf_gen.h:1844 +#: ../build/bin/conf_gen.h:1930 msgid "max polygon points" msgstr "máximo de pontos de polígono" -#: ../build/bin/conf_gen.h:1845 +#: ../build/bin/conf_gen.h:1931 msgid "" "limit the number of points imported with polygon in find location module" msgstr "" "limita o número de pontos importados com polígono no módulo encontrar " "localização" -#: ../build/bin/conf_gen.h:2135 ../build/bin/preferences_gen.h:4722 -#: ../build/bin/preferences_gen.h:4756 +#: ../build/bin/conf_gen.h:2221 ../build/bin/preferences_gen.h:5329 msgctxt "preferences" msgid "original" msgstr "original" -#: ../build/bin/conf_gen.h:2136 ../build/bin/preferences_gen.h:4727 +#: ../build/bin/conf_gen.h:2222 msgctxt "preferences" msgid "to 1/2" msgstr "para 1/2" -#: ../build/bin/conf_gen.h:2137 ../build/bin/preferences_gen.h:4732 +#: ../build/bin/conf_gen.h:2223 msgctxt "preferences" msgid "to 1/3" msgstr "para 1/3" -#: ../build/bin/conf_gen.h:2138 ../build/bin/preferences_gen.h:4737 +#: ../build/bin/conf_gen.h:2224 msgctxt "preferences" msgid "to 1/4" msgstr "para 1/4" -#: ../build/bin/conf_gen.h:2152 ../build/bin/conf_gen.h:2162 -#: ../build/bin/preferences_gen.h:5384 ../build/bin/preferences_gen.h:5449 +#: ../build/bin/conf_gen.h:2244 ../build/bin/conf_gen.h:2254 msgctxt "preferences" msgid "bilinear" msgstr "bilinear" -#: ../build/bin/conf_gen.h:2153 ../build/bin/conf_gen.h:2163 -#: ../build/bin/preferences_gen.h:5389 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5454 +#: ../build/bin/conf_gen.h:2245 ../build/bin/conf_gen.h:2255 +#: ../build/bin/preferences_gen.h:5847 msgctxt "preferences" msgid "bicubic" msgstr "bicúbico" -#: ../build/bin/conf_gen.h:2154 ../build/bin/conf_gen.h:2164 -#: ../build/bin/preferences_gen.h:5394 ../build/bin/preferences_gen.h:5459 +#: ../build/bin/conf_gen.h:2246 ../build/bin/conf_gen.h:2256 msgctxt "preferences" msgid "lanczos2" msgstr "lanczos2" -#: ../build/bin/conf_gen.h:2165 ../build/bin/preferences_gen.h:5464 -#: ../build/bin/preferences_gen.h:5483 +#: ../build/bin/conf_gen.h:2257 ../build/bin/preferences_gen.h:5882 msgctxt "preferences" msgid "lanczos3" msgstr "lanczos3" -#: ../build/bin/conf_gen.h:2487 ../build/bin/conf_gen.h:3217 -#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:6556 -#: ../build/bin/preferences_gen.h:6592 +#: ../build/bin/conf_gen.h:2577 ../build/bin/conf_gen.h:3303 +#: ../build/bin/preferences_gen.h:7032 msgctxt "preferences" msgid "auto" msgstr "automático" -#: ../build/bin/conf_gen.h:2489 ../build/bin/preferences_gen.h:6566 +#: ../build/bin/conf_gen.h:2579 msgctxt "preferences" msgid "libsecret" msgstr "libsecret" -#: ../build/bin/conf_gen.h:2490 ../build/bin/preferences_gen.h:6572 +#: ../build/bin/conf_gen.h:2580 msgctxt "preferences" msgid "kwallet" msgstr "kwallet" -#: ../build/bin/conf_gen.h:2700 +#: ../build/bin/conf_gen.h:2790 msgctxt "preferences" msgid "vectorscope" msgstr "vetorscópio" -#: ../build/bin/conf_gen.h:2701 +#: ../build/bin/conf_gen.h:2791 msgctxt "preferences" msgid "waveform" msgstr "forma de onda" -#: ../build/bin/conf_gen.h:2702 +#: ../build/bin/conf_gen.h:2792 msgctxt "preferences" msgid "RGB parade" msgstr "parada RGB" -#: ../build/bin/conf_gen.h:2703 +#: ../build/bin/conf_gen.h:2793 msgctxt "preferences" msgid "histogram" msgstr "histograma" -#: ../build/bin/conf_gen.h:2711 ../build/bin/preferences_gen.h:7264 +#: ../build/bin/conf_gen.h:2801 msgctxt "preferences" msgid "left" msgstr "esquerda" -#: ../build/bin/conf_gen.h:2712 ../build/bin/preferences_gen.h:7269 -#: ../build/bin/preferences_gen.h:7288 +#: ../build/bin/conf_gen.h:2802 ../build/bin/preferences_gen.h:7619 msgctxt "preferences" msgid "right" msgstr "direita" -#: ../build/bin/conf_gen.h:2720 ../build/bin/conf_gen.h:2757 +#: ../build/bin/conf_gen.h:2810 ../build/bin/conf_gen.h:2847 msgctxt "preferences" msgid "logarithmic" msgstr "logarítmico" -#: ../build/bin/conf_gen.h:2721 ../build/bin/conf_gen.h:2758 +#: ../build/bin/conf_gen.h:2811 ../build/bin/conf_gen.h:2848 msgctxt "preferences" msgid "linear" msgstr "linear" -#: ../build/bin/conf_gen.h:2729 +#: ../build/bin/conf_gen.h:2819 msgctxt "preferences" msgid "horizontal" msgstr "horizontal" -#: ../build/bin/conf_gen.h:2730 +#: ../build/bin/conf_gen.h:2820 msgctxt "preferences" msgid "vertical" msgstr "vertical" -#: ../build/bin/conf_gen.h:2738 +#: ../build/bin/conf_gen.h:2828 msgctxt "preferences" msgid "overlaid" msgstr "sobreposto" -#: ../build/bin/conf_gen.h:2739 +#: ../build/bin/conf_gen.h:2829 msgctxt "preferences" msgid "parade" msgstr "parada (canais lado a lado)" -#: ../build/bin/conf_gen.h:2747 +#: ../build/bin/conf_gen.h:2837 msgctxt "preferences" msgid "u*v*" msgstr "u*v*" -#: ../build/bin/conf_gen.h:2748 +#: ../build/bin/conf_gen.h:2838 msgctxt "preferences" msgid "AzBz" msgstr "AzBz" -#: ../build/bin/conf_gen.h:2749 +#: ../build/bin/conf_gen.h:2839 msgctxt "preferences" msgid "RYB" msgstr "RYB" -#: ../build/bin/conf_gen.h:2791 +#: ../build/bin/conf_gen.h:2881 msgctxt "preferences" msgid "monochromatic" msgstr "monocromático" -#: ../build/bin/conf_gen.h:2792 +#: ../build/bin/conf_gen.h:2882 msgctxt "preferences" msgid "analogous" msgstr "análogo" -#: ../build/bin/conf_gen.h:2793 +#: ../build/bin/conf_gen.h:2883 msgctxt "preferences" msgid "analogous complementary" msgstr "complementar análogo" -#: ../build/bin/conf_gen.h:2794 +#: ../build/bin/conf_gen.h:2884 msgctxt "preferences" msgid "complementary" msgstr "complementar" -#: ../build/bin/conf_gen.h:2795 +#: ../build/bin/conf_gen.h:2885 msgctxt "preferences" msgid "split complementary" msgstr "complementar dividido" -#: ../build/bin/conf_gen.h:2796 +#: ../build/bin/conf_gen.h:2886 msgctxt "preferences" msgid "dyad" msgstr "díade" -#: ../build/bin/conf_gen.h:2797 +#: ../build/bin/conf_gen.h:2887 msgctxt "preferences" msgid "triad" msgstr "tríade" -#: ../build/bin/conf_gen.h:2798 +#: ../build/bin/conf_gen.h:2888 msgctxt "preferences" msgid "tetrad" msgstr "térade" -#: ../build/bin/conf_gen.h:2799 +#: ../build/bin/conf_gen.h:2889 msgctxt "preferences" msgid "square" msgstr "quadrado" -#: ../build/bin/conf_gen.h:2813 +#: ../build/bin/conf_gen.h:2903 msgctxt "preferences" msgid "normal" msgstr "normal" -#: ../build/bin/conf_gen.h:2815 +#: ../build/bin/conf_gen.h:2905 msgctxt "preferences" msgid "narrow" msgstr "estreito" -#: ../build/bin/conf_gen.h:2816 +#: ../build/bin/conf_gen.h:2906 msgctxt "preferences" msgid "line" msgstr "linha" -#: ../build/bin/conf_gen.h:2956 +#: ../build/bin/conf_gen.h:3046 msgctxt "preferences" msgid "mm" msgstr "mm" -#: ../build/bin/conf_gen.h:2957 +#: ../build/bin/conf_gen.h:3047 msgctxt "preferences" msgid "cm" msgstr "cm" -#: ../build/bin/conf_gen.h:2958 +#: ../build/bin/conf_gen.h:3048 msgctxt "preferences" msgid "inch" msgstr "polegada" -#: ../build/bin/conf_gen.h:3003 ../build/bin/preferences_gen.h:7324 -#: ../build/bin/preferences_gen.h:7353 +#: ../build/bin/conf_gen.h:3093 ../build/bin/preferences_gen.h:7654 msgctxt "preferences" msgid "all" msgstr "todos" -#: ../build/bin/conf_gen.h:3004 ../build/bin/preferences_gen.h:7329 +#: ../build/bin/conf_gen.h:3094 msgctxt "preferences" msgid "xatom" msgstr "xatom" -#: ../build/bin/conf_gen.h:3005 ../build/bin/preferences_gen.h:7334 +#: ../build/bin/conf_gen.h:3095 msgctxt "preferences" msgid "colord" msgstr "colord" -#: ../build/bin/conf_gen.h:3041 ../build/bin/preferences_gen.h:5562 -#: ../build/bin/preferences_gen.h:5596 +#: ../build/bin/conf_gen.h:3133 ../build/bin/preferences_gen.h:5958 msgctxt "preferences" msgid "scene-referred (filmic)" msgstr "relativo à cena (fílmico)" -#: ../build/bin/conf_gen.h:3042 ../build/bin/preferences_gen.h:5567 +#: ../build/bin/conf_gen.h:3134 msgctxt "preferences" msgid "scene-referred (sigmoid)" msgstr "relativo à cena (sigmóide)" -#: ../build/bin/conf_gen.h:3043 ../build/bin/preferences_gen.h:5572 +#: ../build/bin/conf_gen.h:3135 msgctxt "preferences" msgid "display-referred (legacy)" msgstr "relativo à exibição (legado)" -#: ../build/bin/conf_gen.h:3144 +#: ../build/bin/conf_gen.h:3230 msgid "camera time zone" msgstr "fuso horário da câmera" -#: ../build/bin/conf_gen.h:3145 +#: ../build/bin/conf_gen.h:3231 msgid "" "most cameras don't store the time zone in EXIF. give the correct time zone " "so the GPX data can be correctly matched" @@ -779,214 +732,274 @@ "a maioria das câmeras não armazena a fuso horário no EXIF. indique o fuso " "horário correto para que os dados GPX possam ser processados corretamente" -#: ../build/bin/conf_gen.h:3156 +#: ../build/bin/conf_gen.h:3242 msgctxt "preferences" msgid "no color" msgstr "sem cor" -#: ../build/bin/conf_gen.h:3157 +#: ../build/bin/conf_gen.h:3243 msgctxt "preferences" msgid "illuminant color" msgstr "cor do iluminante" -#: ../build/bin/conf_gen.h:3158 +#: ../build/bin/conf_gen.h:3244 msgctxt "preferences" msgid "effect emulation" msgstr "emulação do efeito" -#: ../build/bin/conf_gen.h:3204 +#: ../build/bin/conf_gen.h:3290 msgctxt "preferences" msgid "list" msgstr "lista" -#: ../build/bin/conf_gen.h:3205 +#: ../build/bin/conf_gen.h:3291 msgctxt "preferences" msgid "tabs" msgstr "abas" -#: ../build/bin/conf_gen.h:3206 +#: ../build/bin/conf_gen.h:3292 msgctxt "preferences" msgid "columns" msgstr "colunas" -#: ../build/bin/conf_gen.h:3215 ../build/bin/preferences_gen.h:5117 +#: ../build/bin/conf_gen.h:3301 msgctxt "preferences" msgid "active" msgstr "ativo" -#: ../build/bin/conf_gen.h:3216 ../build/bin/preferences_gen.h:5122 +#: ../build/bin/conf_gen.h:3302 msgctxt "preferences" msgid "dim" msgstr "atenuar" -#: ../build/bin/conf_gen.h:3218 ../build/bin/preferences_gen.h:5132 +#: ../build/bin/conf_gen.h:3304 msgctxt "preferences" msgid "fade" msgstr "esmaecer" -#: ../build/bin/conf_gen.h:3219 ../build/bin/preferences_gen.h:5137 +#: ../build/bin/conf_gen.h:3305 msgctxt "preferences" msgid "fit" msgstr "ajustar" -#: ../build/bin/conf_gen.h:3220 ../build/bin/preferences_gen.h:5142 +#: ../build/bin/conf_gen.h:3306 msgctxt "preferences" msgid "smooth" msgstr "suavizar" -#: ../build/bin/conf_gen.h:3221 ../build/bin/preferences_gen.h:5147 +#: ../build/bin/conf_gen.h:3307 msgctxt "preferences" msgid "glide" msgstr "deslizar" -#: ../build/bin/preferences_gen.h:81 ../build/bin/preferences_gen.h:3823 -#: ../build/bin/preferences_gen.h:3859 ../build/bin/preferences_gen.h:3895 -#: ../build/bin/preferences_gen.h:3931 ../build/bin/preferences_gen.h:3967 -#: ../build/bin/preferences_gen.h:4003 ../build/bin/preferences_gen.h:4039 -#: ../build/bin/preferences_gen.h:4083 ../build/bin/preferences_gen.h:4178 -#: ../build/bin/preferences_gen.h:4273 ../build/bin/preferences_gen.h:4313 -#: ../build/bin/preferences_gen.h:4356 ../build/bin/preferences_gen.h:4437 -#: ../build/bin/preferences_gen.h:4473 ../build/bin/preferences_gen.h:4510 -#: ../build/bin/preferences_gen.h:4553 ../build/bin/preferences_gen.h:4627 -#: ../build/bin/preferences_gen.h:4672 ../build/bin/preferences_gen.h:4708 -#: ../build/bin/preferences_gen.h:4778 ../build/bin/preferences_gen.h:4822 -#: ../build/bin/preferences_gen.h:4882 ../build/bin/preferences_gen.h:4918 -#: ../build/bin/preferences_gen.h:4954 ../build/bin/preferences_gen.h:4990 -#: ../build/bin/preferences_gen.h:5026 ../build/bin/preferences_gen.h:5062 -#: ../build/bin/preferences_gen.h:5098 ../build/bin/preferences_gen.h:5188 -#: ../build/bin/preferences_gen.h:5224 ../build/bin/preferences_gen.h:5260 -#: ../build/bin/preferences_gen.h:5334 ../build/bin/preferences_gen.h:5370 -#: ../build/bin/preferences_gen.h:5435 ../build/bin/preferences_gen.h:5505 -#: ../build/bin/preferences_gen.h:5548 ../build/bin/preferences_gen.h:5618 -#: ../build/bin/preferences_gen.h:5654 ../build/bin/preferences_gen.h:5690 -#: ../build/bin/preferences_gen.h:5734 ../build/bin/preferences_gen.h:5805 -#: ../build/bin/preferences_gen.h:5841 ../build/bin/preferences_gen.h:5877 -#: ../build/bin/preferences_gen.h:5913 ../build/bin/preferences_gen.h:5955 -#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6140 -#: ../build/bin/preferences_gen.h:6176 ../build/bin/preferences_gen.h:6212 -#: ../build/bin/preferences_gen.h:6248 ../build/bin/preferences_gen.h:6284 -#: ../build/bin/preferences_gen.h:6320 ../build/bin/preferences_gen.h:6356 -#: ../build/bin/preferences_gen.h:6392 ../build/bin/preferences_gen.h:6427 -#: ../build/bin/preferences_gen.h:6462 ../build/bin/preferences_gen.h:6498 -#: ../build/bin/preferences_gen.h:6542 ../build/bin/preferences_gen.h:6614 -#: ../build/bin/preferences_gen.h:6692 ../build/bin/preferences_gen.h:6767 -#: ../build/bin/preferences_gen.h:6820 ../build/bin/preferences_gen.h:6885 -#: ../build/bin/preferences_gen.h:6950 ../build/bin/preferences_gen.h:7024 -#: ../build/bin/preferences_gen.h:7060 ../build/bin/preferences_gen.h:7096 -#: ../build/bin/preferences_gen.h:7132 ../build/bin/preferences_gen.h:7168 -#: ../build/bin/preferences_gen.h:7204 ../build/bin/preferences_gen.h:7250 -#: ../build/bin/preferences_gen.h:7310 ../build/bin/preferences_gen.h:7375 -#: ../build/bin/preferences_gen.h:7429 ../build/bin/preferences_gen.h:7474 -#: ../build/bin/preferences_gen.h:7510 ../build/bin/preferences_gen.h:7546 -#: ../build/bin/preferences_gen.h:7582 ../build/bin/preferences_gen.h:7618 -#: ../build/bin/preferences_gen.h:7678 ../build/bin/preferences_gen.h:7722 -#: ../build/bin/preferences_gen.h:7766 ../build/bin/preferences_gen.h:7848 -#: ../build/bin/preferences_gen.h:7888 ../build/bin/preferences_gen.h:7928 -#: ../build/bin/preferences_gen.h:7964 ../build/bin/preferences_gen.h:8019 -#: ../build/bin/preferences_gen.h:8055 ../build/bin/preferences_gen.h:8115 -#: ../build/bin/preferences_gen.h:8161 ../build/bin/preferences_gen.h:8197 -#: ../build/bin/preferences_gen.h:8243 ../build/bin/preferences_gen.h:8303 -#: ../build/bin/preferences_gen.h:8355 ../build/bin/preferences_gen.h:8401 -#: ../build/bin/preferences_gen.h:8469 ../build/bin/preferences_gen.h:8516 +#: ../build/bin/preferences_gen.h:77 ../build/bin/preferences_gen.h:4305 +#: ../build/bin/preferences_gen.h:4344 ../build/bin/preferences_gen.h:4383 +#: ../build/bin/preferences_gen.h:4417 ../build/bin/preferences_gen.h:4488 +#: ../build/bin/preferences_gen.h:4522 ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:4590 ../build/bin/preferences_gen.h:4624 +#: ../build/bin/preferences_gen.h:4658 ../build/bin/preferences_gen.h:4692 +#: ../build/bin/preferences_gen.h:4733 ../build/bin/preferences_gen.h:4768 +#: ../build/bin/preferences_gen.h:4803 ../build/bin/preferences_gen.h:4837 +#: ../build/bin/preferences_gen.h:4871 ../build/bin/preferences_gen.h:4906 +#: ../build/bin/preferences_gen.h:4940 ../build/bin/preferences_gen.h:4979 +#: ../build/bin/preferences_gen.h:5020 ../build/bin/preferences_gen.h:5093 +#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:5162 +#: ../build/bin/preferences_gen.h:5203 ../build/bin/preferences_gen.h:5237 +#: ../build/bin/preferences_gen.h:5281 ../build/bin/preferences_gen.h:5315 +#: ../build/bin/preferences_gen.h:5350 ../build/bin/preferences_gen.h:5391 +#: ../build/bin/preferences_gen.h:5426 ../build/bin/preferences_gen.h:5460 +#: ../build/bin/preferences_gen.h:5494 ../build/bin/preferences_gen.h:5528 +#: ../build/bin/preferences_gen.h:5562 ../build/bin/preferences_gen.h:5596 +#: ../build/bin/preferences_gen.h:5630 ../build/bin/preferences_gen.h:5665 +#: ../build/bin/preferences_gen.h:5699 ../build/bin/preferences_gen.h:5733 +#: ../build/bin/preferences_gen.h:5799 ../build/bin/preferences_gen.h:5833 +#: ../build/bin/preferences_gen.h:5868 ../build/bin/preferences_gen.h:5903 +#: ../build/bin/preferences_gen.h:5944 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/preferences_gen.h:6013 ../build/bin/preferences_gen.h:6047 +#: ../build/bin/preferences_gen.h:6088 ../build/bin/preferences_gen.h:6124 +#: ../build/bin/preferences_gen.h:6165 ../build/bin/preferences_gen.h:6209 +#: ../build/bin/preferences_gen.h:6254 ../build/bin/preferences_gen.h:6305 +#: ../build/bin/preferences_gen.h:6349 ../build/bin/preferences_gen.h:6393 +#: ../build/bin/preferences_gen.h:6437 ../build/bin/preferences_gen.h:6481 +#: ../build/bin/preferences_gen.h:6525 ../build/bin/preferences_gen.h:6569 +#: ../build/bin/preferences_gen.h:6635 ../build/bin/preferences_gen.h:6669 +#: ../build/bin/preferences_gen.h:6703 ../build/bin/preferences_gen.h:6737 +#: ../build/bin/preferences_gen.h:6771 ../build/bin/preferences_gen.h:6805 +#: ../build/bin/preferences_gen.h:6839 ../build/bin/preferences_gen.h:6873 +#: ../build/bin/preferences_gen.h:6906 ../build/bin/preferences_gen.h:6939 +#: ../build/bin/preferences_gen.h:6973 ../build/bin/preferences_gen.h:7014 +#: ../build/bin/preferences_gen.h:7053 ../build/bin/preferences_gen.h:7124 +#: ../build/bin/preferences_gen.h:7159 ../build/bin/preferences_gen.h:7210 +#: ../build/bin/preferences_gen.h:7245 ../build/bin/preferences_gen.h:7280 +#: ../build/bin/preferences_gen.h:7324 ../build/bin/preferences_gen.h:7390 +#: ../build/bin/preferences_gen.h:7424 ../build/bin/preferences_gen.h:7458 +#: ../build/bin/preferences_gen.h:7492 ../build/bin/preferences_gen.h:7526 +#: ../build/bin/preferences_gen.h:7560 ../build/bin/preferences_gen.h:7605 +#: ../build/bin/preferences_gen.h:7640 ../build/bin/preferences_gen.h:7675 +#: ../build/bin/preferences_gen.h:7731 ../build/bin/preferences_gen.h:7772 +#: ../build/bin/preferences_gen.h:7806 ../build/bin/preferences_gen.h:7840 +#: ../build/bin/preferences_gen.h:7874 ../build/bin/preferences_gen.h:7908 +#: ../build/bin/preferences_gen.h:7943 ../build/bin/preferences_gen.h:7984 +#: ../build/bin/preferences_gen.h:8025 ../build/bin/preferences_gen.h:8085 +#: ../build/bin/preferences_gen.h:8119 ../build/bin/preferences_gen.h:8154 +#: ../build/bin/preferences_gen.h:8199 ../build/bin/preferences_gen.h:8233 +#: ../build/bin/preferences_gen.h:8278 ../build/bin/preferences_gen.h:8313 +#: ../build/bin/preferences_gen.h:8365 ../build/bin/preferences_gen.h:8410 +#: ../build/bin/preferences_gen.h:8480 ../build/bin/preferences_gen.h:8526 msgid "this setting has been modified" msgstr "esta predefinição foi modificada" #. doesn't seem to work from gtkrc -#: ../build/bin/preferences_gen.h:3793 ../build/bin/preferences_gen.h:4407 -#: ../build/bin/preferences_gen.h:5304 ../build/bin/preferences_gen.h:6110 -#: ../build/bin/preferences_gen.h:6662 ../build/bin/preferences_gen.h:6994 -#: ../build/bin/preferences_gen.h:7818 ../src/gui/accelerators.c:2724 -#: ../src/gui/gtk.c:2580 ../src/gui/preferences.c:421 -#: ../src/gui/preferences.c:876 ../src/libs/modulegroups.c:3886 +#: ../build/bin/preferences_gen.h:4277 ../build/bin/preferences_gen.h:4460 +#: ../build/bin/preferences_gen.h:5065 ../build/bin/preferences_gen.h:5771 +#: ../build/bin/preferences_gen.h:6607 ../build/bin/preferences_gen.h:7096 +#: ../build/bin/preferences_gen.h:7362 ../src/gui/accelerators.c:2996 +#: ../src/gui/gtk.c:2641 ../src/gui/preferences.c:424 +#: ../src/gui/preferences.c:874 ../src/libs/modulegroups.c:3888 msgid "?" msgstr "?" -#: ../build/bin/preferences_gen.h:3806 ../build/bin/preferences_gen.h:4420 -#: ../build/bin/preferences_gen.h:6123 ../src/gui/preferences.c:270 -msgid "general" -msgstr "geral" +#: ../build/bin/preferences_gen.h:4287 ../src/control/jobs/control_jobs.c:2352 +#: ../src/libs/import.c:173 +msgid "import" +msgstr "importar" -#: ../build/bin/preferences_gen.h:3826 -msgid "hide built-in presets for utility modules" -msgstr "ocultar predefinições nativas para módulos utilitários" +#: ../build/bin/preferences_gen.h:4289 +msgid "session options" +msgstr "opções da sessão" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4017 -#: ../build/bin/preferences_gen.h:4053 ../build/bin/preferences_gen.h:4156 -#: ../build/bin/preferences_gen.h:4251 ../build/bin/preferences_gen.h:4291 -#: ../build/bin/preferences_gen.h:4334 ../build/bin/preferences_gen.h:4377 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4531 ../build/bin/preferences_gen.h:4606 -#: ../build/bin/preferences_gen.h:4686 ../build/bin/preferences_gen.h:4756 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4860 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5040 ../build/bin/preferences_gen.h:5076 -#: ../build/bin/preferences_gen.h:5166 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5274 -#: ../build/bin/preferences_gen.h:5348 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5483 ../build/bin/preferences_gen.h:5525 -#: ../build/bin/preferences_gen.h:5596 ../build/bin/preferences_gen.h:5632 -#: ../build/bin/preferences_gen.h:5668 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5782 ../build/bin/preferences_gen.h:5819 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:5927 ../build/bin/preferences_gen.h:5998 -#: ../build/bin/preferences_gen.h:6074 ../build/bin/preferences_gen.h:6154 -#: ../build/bin/preferences_gen.h:6190 ../build/bin/preferences_gen.h:6226 -#: ../build/bin/preferences_gen.h:6262 ../build/bin/preferences_gen.h:6298 -#: ../build/bin/preferences_gen.h:6334 ../build/bin/preferences_gen.h:6370 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:6592 ../build/bin/preferences_gen.h:6632 -#: ../build/bin/preferences_gen.h:6745 ../build/bin/preferences_gen.h:6863 -#: ../build/bin/preferences_gen.h:6928 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7146 -#: ../build/bin/preferences_gen.h:7182 ../build/bin/preferences_gen.h:7288 -#: ../build/bin/preferences_gen.h:7353 ../build/bin/preferences_gen.h:7393 -#: ../build/bin/preferences_gen.h:7443 ../build/bin/preferences_gen.h:7488 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7656 -#: ../build/bin/preferences_gen.h:7692 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:7866 ../build/bin/preferences_gen.h:7906 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:7982 -#: ../build/bin/preferences_gen.h:8033 ../build/bin/preferences_gen.h:8093 -#: ../build/bin/preferences_gen.h:8175 ../build/bin/preferences_gen.h:8281 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4308 +msgid "base directory naming pattern" +msgstr "padrão de nomeação de diretório base" + +#: ../build/bin/preferences_gen.h:4323 ../build/bin/preferences_gen.h:4362 +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4435 +#: ../build/bin/preferences_gen.h:4501 ../build/bin/preferences_gen.h:4535 +#: ../build/bin/preferences_gen.h:4569 ../build/bin/preferences_gen.h:4603 +#: ../build/bin/preferences_gen.h:4637 ../build/bin/preferences_gen.h:4671 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4747 +#: ../build/bin/preferences_gen.h:4782 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:4850 ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:4958 +#: ../build/bin/preferences_gen.h:4999 ../build/bin/preferences_gen.h:5040 +#: ../build/bin/preferences_gen.h:5106 ../build/bin/preferences_gen.h:5140 +#: ../build/bin/preferences_gen.h:5182 ../build/bin/preferences_gen.h:5217 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5329 +#: ../build/bin/preferences_gen.h:5363 ../build/bin/preferences_gen.h:5405 +#: ../build/bin/preferences_gen.h:5439 ../build/bin/preferences_gen.h:5473 +#: ../build/bin/preferences_gen.h:5507 ../build/bin/preferences_gen.h:5541 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5644 ../build/bin/preferences_gen.h:5678 +#: ../build/bin/preferences_gen.h:5712 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5847 +#: ../build/bin/preferences_gen.h:5882 ../build/bin/preferences_gen.h:5922 +#: ../build/bin/preferences_gen.h:5958 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6060 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6178 ../build/bin/preferences_gen.h:6223 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6318 +#: ../build/bin/preferences_gen.h:6362 ../build/bin/preferences_gen.h:6406 +#: ../build/bin/preferences_gen.h:6450 ../build/bin/preferences_gen.h:6494 +#: ../build/bin/preferences_gen.h:6538 ../build/bin/preferences_gen.h:6582 +#: ../build/bin/preferences_gen.h:6648 ../build/bin/preferences_gen.h:6682 +#: ../build/bin/preferences_gen.h:6716 ../build/bin/preferences_gen.h:6750 +#: ../build/bin/preferences_gen.h:6784 ../build/bin/preferences_gen.h:6818 +#: ../build/bin/preferences_gen.h:6852 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7032 +#: ../build/bin/preferences_gen.h:7071 ../build/bin/preferences_gen.h:7138 +#: ../build/bin/preferences_gen.h:7224 ../build/bin/preferences_gen.h:7259 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7505 ../build/bin/preferences_gen.h:7539 +#: ../build/bin/preferences_gen.h:7619 ../build/bin/preferences_gen.h:7654 +#: ../build/bin/preferences_gen.h:7693 ../build/bin/preferences_gen.h:7744 +#: ../build/bin/preferences_gen.h:7785 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7922 ../build/bin/preferences_gen.h:7956 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8133 ../build/bin/preferences_gen.h:8212 +#: ../build/bin/preferences_gen.h:8292 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 #, c-format msgid "double click to reset to `%s'" msgstr "clique-duplo para redefinir para `%s'" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4053 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4686 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:5040 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5348 -#: ../build/bin/preferences_gen.h:5632 ../build/bin/preferences_gen.h:5668 -#: ../build/bin/preferences_gen.h:5819 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:6370 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7146 ../build/bin/preferences_gen.h:7443 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7692 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:8033 -#: ../build/bin/preferences_gen.h:8175 +#: ../build/bin/preferences_gen.h:4326 ../build/bin/preferences_gen.h:4365 +msgid "part of full import path for an import session" +msgstr "parte do caminho completo para uma sessão de importação" + +#: ../build/bin/preferences_gen.h:4347 +msgid "sub directory naming pattern" +msgstr "padrão de nomeação de subdiretórios" + +#: ../build/bin/preferences_gen.h:4386 +msgid "keep original filename" +msgstr "manter nome de arquivo original" + +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4501 +#: ../build/bin/preferences_gen.h:4535 ../build/bin/preferences_gen.h:4569 +#: ../build/bin/preferences_gen.h:4603 ../build/bin/preferences_gen.h:4637 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4850 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:5106 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5439 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5712 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6450 +#: ../build/bin/preferences_gen.h:6494 ../build/bin/preferences_gen.h:6538 +#: ../build/bin/preferences_gen.h:6582 ../build/bin/preferences_gen.h:6852 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7505 +#: ../build/bin/preferences_gen.h:7744 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7956 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8212 msgctxt "preferences" msgid "FALSE" msgstr "FALSO" -#: ../build/bin/preferences_gen.h:3840 +#: ../build/bin/preferences_gen.h:4399 +msgid "" +"keep original filename instead of a pattern while importing from camera or " +"card" +msgstr "" +"manter nome de arquivo original ao invés de usar um padrão quando importar " +"da câmera ou cartão" + +#: ../build/bin/preferences_gen.h:4420 +msgid "file naming pattern" +msgstr "padrão de nomeação de arquivos" + +#: ../build/bin/preferences_gen.h:4438 +msgid "file naming pattern used for a import session" +msgstr "padrão de nomeação de arquivos utilizado para a sessão de importação" + +#: ../build/bin/preferences_gen.h:4470 ../src/gui/gtk.c:1266 +#: ../src/gui/preferences.c:544 ../src/libs/tools/lighttable.c:66 +#: ../src/views/lighttable.c:91 +msgid "lighttable" +msgstr "mesa de luz" + +#: ../build/bin/preferences_gen.h:4472 ../build/bin/preferences_gen.h:5077 +#: ../build/bin/preferences_gen.h:6619 ../src/gui/preferences.c:270 +msgid "general" +msgstr "geral" + +#: ../build/bin/preferences_gen.h:4491 +msgid "hide built-in presets for utility modules" +msgstr "ocultar predefinições nativas para módulos utilitários" + +#: ../build/bin/preferences_gen.h:4504 msgid "hides built-in presets of utility modules in presets menu." msgstr "" "oculta predefinições nativas dos módulos utilitários nos menus de " "predefinições e favoritos." -#: ../build/bin/preferences_gen.h:3862 +#: ../build/bin/preferences_gen.h:4525 msgid "use single-click in the collections module" msgstr "usar clique único no módulo coleções" -#: ../build/bin/preferences_gen.h:3876 +#: ../build/bin/preferences_gen.h:4538 msgid "" "check this option to use single-click to select items in the collections " "module. this will allow you to do range selections for date-time and numeric " @@ -996,19 +1009,19 @@ "coleções. isto permitirá fazer seleções de faixas por data e valores " "numéricos." -#: ../build/bin/preferences_gen.h:3898 +#: ../build/bin/preferences_gen.h:4559 msgid "expand a single utility module at a time" msgstr "expandir um único módulo de cada vez" -#: ../build/bin/preferences_gen.h:3912 +#: ../build/bin/preferences_gen.h:4572 msgid "this option toggles the behavior of shift clicking in lighttable mode" msgstr "esta opção alterna o comportamento do shift+clique no modo mesa de luz" -#: ../build/bin/preferences_gen.h:3934 +#: ../build/bin/preferences_gen.h:4593 msgid "scroll utility modules to the top when expanded" msgstr "deslizar módulos utilitários para o topo quanto expandidos" -#: ../build/bin/preferences_gen.h:3948 ../build/bin/preferences_gen.h:5079 +#: ../build/bin/preferences_gen.h:4606 ../build/bin/preferences_gen.h:5612 msgid "" "when this option is enabled then darktable will try to scroll the module to " "the top of the visible list" @@ -1016,60 +1029,62 @@ "quando esta opção está habilitada o darktable tentará rolar o módulo até o " "topo da lista visível" -#: ../build/bin/preferences_gen.h:3970 +#: ../build/bin/preferences_gen.h:4627 msgid "rating an image one star twice will not zero out the rating" msgstr "dar uma estrela duas vezes a uma imagem não resultará em zero estrelas" -#: ../build/bin/preferences_gen.h:3984 +#: ../build/bin/preferences_gen.h:4640 msgid "" "defines whether rating an image one star twice will zero out star rating" msgstr "" "define se dar uma estrela duas vezes a uma imagem resultará em zero estrelas" -#: ../build/bin/preferences_gen.h:4006 ../build/bin/preferences_gen.h:4675 +#: ../build/bin/preferences_gen.h:4661 ../build/bin/preferences_gen.h:5284 msgid "show scrollbars for central view" msgstr "mostrar barras de rolagem para visualização central" -#: ../build/bin/preferences_gen.h:4017 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5076 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5274 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5927 -#: ../build/bin/preferences_gen.h:6154 ../build/bin/preferences_gen.h:6190 -#: ../build/bin/preferences_gen.h:6226 ../build/bin/preferences_gen.h:6262 -#: ../build/bin/preferences_gen.h:6298 ../build/bin/preferences_gen.h:6334 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7182 -#: ../build/bin/preferences_gen.h:7488 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4671 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:5140 ../build/bin/preferences_gen.h:5363 +#: ../build/bin/preferences_gen.h:5473 ../build/bin/preferences_gen.h:5507 +#: ../build/bin/preferences_gen.h:5541 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5678 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:6060 ../build/bin/preferences_gen.h:6178 +#: ../build/bin/preferences_gen.h:6318 ../build/bin/preferences_gen.h:6362 +#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6648 +#: ../build/bin/preferences_gen.h:6682 ../build/bin/preferences_gen.h:6716 +#: ../build/bin/preferences_gen.h:6750 ../build/bin/preferences_gen.h:6784 +#: ../build/bin/preferences_gen.h:6818 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7539 ../build/bin/preferences_gen.h:7785 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 msgctxt "preferences" msgid "TRUE" msgstr "VERDADEIRO" -#: ../build/bin/preferences_gen.h:4020 ../build/bin/preferences_gen.h:4689 +#: ../build/bin/preferences_gen.h:4674 ../build/bin/preferences_gen.h:5297 msgid "defines whether scrollbars should be displayed" msgstr "define onde as barras de rolagem devem ser mostradas" -#: ../build/bin/preferences_gen.h:4042 +#: ../build/bin/preferences_gen.h:4695 msgid "show image time with milliseconds" msgstr "mostrar data/hora da imagem com milisegundos" -#: ../build/bin/preferences_gen.h:4056 +#: ../build/bin/preferences_gen.h:4708 msgid "defines whether time should be displayed with milliseconds" msgstr "define se o tempo deveria ser mostrado com milisegundos" -#: ../build/bin/preferences_gen.h:4066 +#: ../build/bin/preferences_gen.h:4717 msgid "thumbnails" msgstr "miniaturas" -#: ../build/bin/preferences_gen.h:4086 +#: ../build/bin/preferences_gen.h:4736 msgid "use raw file instead of embedded JPEG from size" msgstr "usar arquivo RAW ao invés de JPEG embutido a partir do tamanho" -#: ../build/bin/preferences_gen.h:4159 +#: ../build/bin/preferences_gen.h:4750 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "raw file instead of the embedded preview JPEG (better but slower).\n" @@ -1084,11 +1099,11 @@ "qualidade você deveria escolher a opção *sempre*.\n" "(mais comentários no manual)" -#: ../build/bin/preferences_gen.h:4181 +#: ../build/bin/preferences_gen.h:4771 msgid "high quality processing from size" msgstr "processamento de alta qualidade a partir do tamanho" -#: ../build/bin/preferences_gen.h:4254 +#: ../build/bin/preferences_gen.h:4785 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "the full quality rendering path (better but slower).\n" @@ -1102,11 +1117,82 @@ " qualidade você deveria escolher a opção *sempre*.\n" "(mais comentários no manual)" -#: ../build/bin/preferences_gen.h:4276 +#: ../build/bin/preferences_gen.h:4806 +msgid "enable disk backend for thumbnail cache" +msgstr "armazenar em disco cache de miniaturas" + +#: ../build/bin/preferences_gen.h:4819 +msgid "" +"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want. light table " +"performance will be increased greatly when browsing a lot.\n" +"to generate all thumbnails of your entire collection offline, run 'darktable-" +"generate-cache'." +msgstr "" +"se habilitado, escreve miniaturas no disco (.cache/darktable/) quando " +"despejados do cache em memória.\n" +"note que isto pode usar muita memória (vários gigabytes para 20k imagens) e " +"nunca apagará miniaturas cacheadas novamente.\n" +"é seguro, no entanto, apagá-las manualmente, se você quiser. o desempenho da " +"mesa de luz aumentará muito durante a navegação pelas fotos.\n" +"para gerar miniaturas de toda a coleção, offline, execute 'darktable-" +"generate-cache'." + +#: ../build/bin/preferences_gen.h:4840 +msgid "enable disk backend for full preview cache" +msgstr "armazenar em disco cache de visualização completa" + +#: ../build/bin/preferences_gen.h:4853 +msgid "" +"if enabled, write full preview to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want.\n" +"light table performance will be increased greatly when zooming image in full " +"preview mode." +msgstr "" +"se habilitado, escreve miniaturas no disco (.cache/darktable/) quando " +"despejados do cache em memória.\n" +"note que isto pode usar muita memória (vários gigabytes para 20k imagens) e " +"nunca apagará miniaturas cacheadas novamente.\n" +"é seguro, no entanto, apagá-las manualmente, se você quiser.\n" +"o desempenho da mesa de luz aumentará muito durante a navegação pelas fotos." + +#: ../build/bin/preferences_gen.h:4874 +msgid "generate thumbnails in background" +msgstr "gerar miniaturas em background" + +#: ../build/bin/preferences_gen.h:4888 +msgid "" +"if 'enable disk backend for thumbnail cache' is enabled thumbnails/mipmaps " +"up to the selected size are generated while user is inactive in lighttable." +msgstr "" +"se 'armazenar em disco cache de miniaturas' estiver habilitado as miniaturas " +"até o tamanho selecionado são geradas enquanto o usuário estiver inativo na " +"mesa de luz." + +#: ../build/bin/preferences_gen.h:4909 +msgid "reset cached thumbnails" +msgstr "refazer miniaturas em cache" + +#: ../build/bin/preferences_gen.h:4922 +msgid "" +"force thumbnails to be regenerated by resetting the database. this may be " +"needed in case some thumbnails have been manually removed or corrupted." +msgstr "" +"força as re-geração das miniaturas reiniciando a base de dados. isto pode " +"ser necesśario caso algumas miniaturas tenham sido manualmente removidas ou " +"corrompidas." + +#: ../build/bin/preferences_gen.h:4943 msgid "delimiters for size categories" msgstr "delimitadores para categorias de tamanho" -#: ../build/bin/preferences_gen.h:4294 +#: ../build/bin/preferences_gen.h:4961 msgid "" "size categories are used to be able to set different overlays and CSS values " "depending of the size of the thumbnail, separated by |.\n" @@ -1119,23 +1205,28 @@ "por exemplo, 120|400 significa 3 categorias de miniaturas: <120px, 120px-" ">400px e >400px" -#: ../build/bin/preferences_gen.h:4316 +#: ../build/bin/preferences_gen.h:4982 msgid "pattern for the thumbnail extended overlay text" msgstr "padrão para o texto de informações estendidas nas miniaturas" -#: ../build/bin/preferences_gen.h:4337 ../build/bin/preferences_gen.h:4380 +#: ../build/bin/preferences_gen.h:5002 ../build/bin/preferences_gen.h:5043 msgid "see manual to know all the tags you can use." msgstr "veja o manual para saber todos as etiquetas que pode usar" -#: ../build/bin/preferences_gen.h:4359 +#: ../build/bin/preferences_gen.h:5023 msgid "pattern for the thumbnail tooltip (empty to disable)" msgstr "padrão para a dica da miniatura (vazio desabilita)" -#: ../build/bin/preferences_gen.h:4440 +#: ../build/bin/preferences_gen.h:5075 ../src/gui/gtk.c:1267 +#: ../src/gui/preferences.c:544 ../src/views/darkroom.c:94 +msgid "darkroom" +msgstr "sala escura" + +#: ../build/bin/preferences_gen.h:5096 msgid "scroll down to increase mask parameters" msgstr "deslize para baixo para aumentar os parâmetros da máscara" -#: ../build/bin/preferences_gen.h:4454 +#: ../build/bin/preferences_gen.h:5109 msgid "" "when using the mouse scroll wheel to change mask parameters, scroll down to " "increase the mask size, feather size, opacity, brush hardness and gradient " @@ -1147,11 +1238,11 @@ "opacidade, a dureza do pincel e a curvatura do gradiente\n" "por padrão deslizar para cima aumenta esses parâmetros" -#: ../build/bin/preferences_gen.h:4476 +#: ../build/bin/preferences_gen.h:5130 msgid "middle mouse button zooms to 200%" msgstr "botão do meio do mouse fa zoom em 200%" -#: ../build/bin/preferences_gen.h:4491 +#: ../build/bin/preferences_gen.h:5144 #, no-c-format msgid "" "if enabled, the zoom level will cycle between 100%, 200% and fit to viewport " @@ -1163,32 +1254,32 @@ "entre encaixar na tela e 100%, e a tecla 'ctrl' pode ser usada para " "controlar o nível de zoom." -#: ../build/bin/preferences_gen.h:4513 +#: ../build/bin/preferences_gen.h:5165 msgid "pattern for the image information line" msgstr "padrão para a linha de informações da imagem" -#: ../build/bin/preferences_gen.h:4534 +#: ../build/bin/preferences_gen.h:5185 msgid "see manual for a list of the tags you can use." msgstr "veja o manual para uma lista de etiquetas que pode usar" -#: ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:5206 msgid "position of the image information line" msgstr "posição da linha de informações da imagem" -#: ../build/bin/preferences_gen.h:4630 +#: ../build/bin/preferences_gen.h:5240 msgid "border around image in darkroom mode" msgstr "borda ao redor da imagem no modo sala escura" -#: ../build/bin/preferences_gen.h:4650 ../build/bin/preferences_gen.h:6790 -#: ../build/bin/preferences_gen.h:7228 ../build/bin/preferences_gen.h:7789 -#: ../build/bin/preferences_gen.h:8139 ../build/bin/preferences_gen.h:8221 -#: ../build/bin/preferences_gen.h:8379 ../build/bin/preferences_gen.h:8493 -#: ../build/bin/preferences_gen.h:8540 +#: ../build/bin/preferences_gen.h:5260 ../build/bin/preferences_gen.h:7182 +#: ../build/bin/preferences_gen.h:7303 ../build/bin/preferences_gen.h:7584 +#: ../build/bin/preferences_gen.h:8048 ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8257 ../build/bin/preferences_gen.h:8389 +#: ../build/bin/preferences_gen.h:8504 ../build/bin/preferences_gen.h:8550 #, c-format msgid "double click to reset to `%d'" msgstr "clique-duplo para redefinir para `%d'" -#: ../build/bin/preferences_gen.h:4653 +#: ../build/bin/preferences_gen.h:5263 msgid "" "process the image in darkroom mode with a small border. set to 0 if you " "don't want any border." @@ -1196,21 +1287,21 @@ "processar a imagem no modo sala escura com uma borda pequena. defina 0 se " "você não quer nenhuma borda." -#: ../build/bin/preferences_gen.h:4711 +#: ../build/bin/preferences_gen.h:5318 msgid "reduce resolution of preview image" msgstr "reduzir resolução da imagem de pré-visualização" -#: ../build/bin/preferences_gen.h:4759 +#: ../build/bin/preferences_gen.h:5332 msgid "decrease to speed up preview rendering, may hinder accurate masking" msgstr "" "diminua para acelerar a renderização de pré-visualização; pode prejudicar a " "precisão do mascaramento" -#: ../build/bin/preferences_gen.h:4781 +#: ../build/bin/preferences_gen.h:5353 msgid "show loading screen between images" msgstr "mostrar tela de carregamento entre imagens" -#: ../build/bin/preferences_gen.h:4795 +#: ../build/bin/preferences_gen.h:5366 msgid "" "show gray loading screen when navigating between images in the darkroom\n" "disable to just show a toast message" @@ -1218,15 +1309,15 @@ "mostrar tela cinza de carregamento ao navegar entre imagens na sala escura\n" "desabilite para mostrar somente uma mensagem" -#: ../build/bin/preferences_gen.h:4805 +#: ../build/bin/preferences_gen.h:5375 msgid "modules" msgstr "módulos" -#: ../build/bin/preferences_gen.h:4825 +#: ../build/bin/preferences_gen.h:5394 msgid "display of individual color channels" msgstr "mostrar canais individuais de cor" -#: ../build/bin/preferences_gen.h:4863 +#: ../build/bin/preferences_gen.h:5408 msgid "" "defines how color channels are displayed when activated in the parametric " "masks feature." @@ -1234,11 +1325,11 @@ "define como os canais de cor são mostrados ao ativar o módulo de máscaras " "paramétricas." -#: ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:5429 msgid "hide built-in presets for processing modules" msgstr "ocultar predefinições nativas para módulos de processamento" -#: ../build/bin/preferences_gen.h:4899 +#: ../build/bin/preferences_gen.h:5442 msgid "" "hides built-in presets of processing modules in both presets and favourites " "menu." @@ -1246,23 +1337,23 @@ "oculta predefinições nativas dos módulos de processamento nos menus de " "predefinições e favoritos." -#: ../build/bin/preferences_gen.h:4921 ../build/bin/preferences_gen.h:4935 +#: ../build/bin/preferences_gen.h:5463 ../build/bin/preferences_gen.h:5476 msgid "show the guides widget in modules UI" msgstr "mostrar a ferramenta de linhas guia na interface dos módulos" -#: ../build/bin/preferences_gen.h:4957 +#: ../build/bin/preferences_gen.h:5497 msgid "expand a single processing module at a time" msgstr "expandir um único módulo de processamento de cada vez" -#: ../build/bin/preferences_gen.h:4971 +#: ../build/bin/preferences_gen.h:5510 msgid "this option toggles the behavior of shift clicking in darkroom mode" msgstr "esta opção alterna o comportamento do shift+clique no modo sala escura" -#: ../build/bin/preferences_gen.h:4993 +#: ../build/bin/preferences_gen.h:5531 msgid "only collapse modules in current group" msgstr "somente recolher módulos no grupo atual" -#: ../build/bin/preferences_gen.h:5007 +#: ../build/bin/preferences_gen.h:5544 msgid "" "if only expanding a single module at a time, only collapse other modules in " "the current group - ignore modules in other groups" @@ -1270,12 +1361,12 @@ "se estiver somente expandindo um único módulo por vez, somente recolhe " "outros módulos no mesmo grupo - ignora módulos em outros grupos" -#: ../build/bin/preferences_gen.h:5029 +#: ../build/bin/preferences_gen.h:5565 msgid "expand the module when it is activated, and collapse it when disabled" msgstr "" "expandir módulo quando estiver ativado e recolhê-lo quando estiver desativado" -#: ../build/bin/preferences_gen.h:5043 +#: ../build/bin/preferences_gen.h:5578 msgid "" "this option allows to expand or collapse automatically the module when it is " "enabled or disabled." @@ -1283,16 +1374,16 @@ "esta opção permite expandir o módulo quando estiver ativado e recolhê-lo " "quando estiver desabilitado." -#: ../build/bin/preferences_gen.h:5065 +#: ../build/bin/preferences_gen.h:5599 msgid "scroll processing modules to the top when expanded" msgstr "deslizar módulos de processamento para o topo quando expandidos" -#: ../build/bin/preferences_gen.h:5101 +#: ../build/bin/preferences_gen.h:5633 msgid "show right-side buttons in processing module headers" msgstr "" "mostrar botões do lado direito nos cabeçalhos de módulos de processamento" -#: ../build/bin/preferences_gen.h:5169 +#: ../build/bin/preferences_gen.h:5647 msgid "" "when the mouse is not over a module, the multi-instance, reset and preset " "buttons can be hidden:\n" @@ -1316,11 +1407,11 @@ " - 'suave': atenuar gradualmente os botões em um cabeçalho simultaneamente,\n" " - 'deslizar': gradualmente ocultar botões individuais conforme necessário" -#: ../build/bin/preferences_gen.h:5191 +#: ../build/bin/preferences_gen.h:5668 msgid "show mask indicator in module headers" msgstr "mostrar indicador de máscara no cabeçalho do módulo" -#: ../build/bin/preferences_gen.h:5205 +#: ../build/bin/preferences_gen.h:5681 msgid "" "if enabled, an icon will be shown in the header of any processing modules " "that have a mask applied" @@ -1328,11 +1419,11 @@ "se habilitado, um ícone será mostrado nos cabeçalhos do módulo para indicar " "os módulos que possuem uma máscara aplicada" -#: ../build/bin/preferences_gen.h:5227 +#: ../build/bin/preferences_gen.h:5702 msgid "prompt for name on addition of new instance" msgstr "perguntar por nome ao adicionar uma nova instância" -#: ../build/bin/preferences_gen.h:5241 +#: ../build/bin/preferences_gen.h:5715 msgid "" "if enabled, a rename prompt will be present for each new module instance " "(either new instance or duplicate)" @@ -1340,11 +1431,11 @@ "se habilitada, um prompt de renomeação será apresentado para cada nova " "instância de módulo (tanto novas instâncias como duplicatas)" -#: ../build/bin/preferences_gen.h:5263 +#: ../build/bin/preferences_gen.h:5736 msgid "automatically update module name" msgstr "atualizar o nome do módulo automaticamente" -#: ../build/bin/preferences_gen.h:5277 +#: ../build/bin/preferences_gen.h:5749 msgid "" "if enabled, the module name will be automatically updated to match a preset " "name or a preset instance name if present." @@ -1353,23 +1444,27 @@ "combinar com um nome de predefinição ou um nome de instância de " "predefinição, se houver." -#: ../build/bin/preferences_gen.h:5317 +#: ../build/bin/preferences_gen.h:5781 +msgid "processing" +msgstr "processamento" + +#: ../build/bin/preferences_gen.h:5783 msgid "image processing" msgstr "processamento da imagem" -#: ../build/bin/preferences_gen.h:5337 +#: ../build/bin/preferences_gen.h:5802 msgid "always use LittleCMS 2 to apply output color profile" msgstr "usar sempre LittleCMS 2 ao aplicar perfil de cor de saída" -#: ../build/bin/preferences_gen.h:5351 +#: ../build/bin/preferences_gen.h:5815 msgid "this is slower than the default." msgstr "isto é mais lento que o padrão." -#: ../build/bin/preferences_gen.h:5373 +#: ../build/bin/preferences_gen.h:5836 msgid "pixel interpolator (warp)" msgstr "interpolador de pixel (distorção)" -#: ../build/bin/preferences_gen.h:5416 +#: ../build/bin/preferences_gen.h:5850 msgid "" "pixel interpolator used in modules for rotation, lens correction, liquify, " "cropping and final scaling (bilinear, bicubic, lanczos2)." @@ -1377,33 +1472,33 @@ "interpolador de pixel usado em módulos para rotação, correção da lente, " "distorcer, corte e mudança final de escala (bilinear, bicúbico, lanczos2)." -#: ../build/bin/preferences_gen.h:5438 +#: ../build/bin/preferences_gen.h:5871 msgid "pixel interpolator (scaling)" msgstr "interpolador de pixel (mudança de escala)" -#: ../build/bin/preferences_gen.h:5486 +#: ../build/bin/preferences_gen.h:5885 msgid "" "pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." msgstr "" "interpolador de pixel usado para mudança de escala (bilinear, bicúbico, " "lanczos2, lanczos3)." -#: ../build/bin/preferences_gen.h:5508 +#: ../build/bin/preferences_gen.h:5906 msgid "LUT 3D root folder" msgstr "pasta raiz do LUT 3D" -#: ../build/bin/preferences_gen.h:5513 ../src/control/jobs/control_jobs.c:1688 -#: ../src/control/jobs/control_jobs.c:1742 ../src/gui/preferences.c:1081 -#: ../src/gui/presets.c:419 ../src/imageio/storage/disk.c:122 -#: ../src/imageio/storage/disk.c:178 ../src/imageio/storage/gallery.c:109 -#: ../src/imageio/storage/gallery.c:163 ../src/imageio/storage/latex.c:108 -#: ../src/imageio/storage/latex.c:162 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/import.c:1664 ../src/libs/styles.c:391 +#: ../build/bin/preferences_gen.h:5912 ../src/control/jobs/control_jobs.c:1691 +#: ../src/control/jobs/control_jobs.c:1745 ../src/gui/preferences.c:1080 +#: ../src/gui/presets.c:421 ../src/imageio/storage/disk.c:197 +#: ../src/imageio/storage/disk.c:261 ../src/imageio/storage/gallery.c:149 +#: ../src/imageio/storage/gallery.c:213 ../src/imageio/storage/latex.c:145 +#: ../src/imageio/storage/latex.c:199 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1673 ../src/libs/styles.c:391 #: ../src/lua/preferences.c:668 msgid "select directory" msgstr "selecione pasta" -#: ../build/bin/preferences_gen.h:5529 +#: ../build/bin/preferences_gen.h:5926 msgid "" "this folder (and sub-folders) contains LUT files used by LUT 3D module. " "(need a restart)." @@ -1411,11 +1506,11 @@ "esta pasta (e subpastas) contém arquivos LUT usados pelo módulo LUT 3D. " "precisa reiniciar o darktable." -#: ../build/bin/preferences_gen.h:5551 +#: ../build/bin/preferences_gen.h:5947 msgid "auto-apply pixel workflow defaults" msgstr "auto-aplicar padrões do fluxo de trabalho" -#: ../build/bin/preferences_gen.h:5599 +#: ../build/bin/preferences_gen.h:5961 msgid "" "scene-referred workflow is based on linear modules and will auto-apply " "filmic or sigmoid, color calibration and exposure,\n" @@ -1428,11 +1523,11 @@ "aplicará a curva base, balanço de branco e a ordem legada de módulos da " "pixelpipe." -#: ../build/bin/preferences_gen.h:5621 +#: ../build/bin/preferences_gen.h:5982 msgid "auto-apply per camera basecurve presets" msgstr "auto-aplicar predefinições de curva base por câmera" -#: ../build/bin/preferences_gen.h:5635 +#: ../build/bin/preferences_gen.h:5995 msgid "" "use the per-camera basecurve by default instead of the generic manufacturer " "one if there is one available (needs a restart).\n" @@ -1448,11 +1543,11 @@ "para prevenir a aplicação automática de definições de curva base, \"auto-" "aplicar padrões do fluxo de trabalho\" deve ser configurado como \"nenhum\"" -#: ../build/bin/preferences_gen.h:5657 +#: ../build/bin/preferences_gen.h:6016 msgid "detect monochrome previews" msgstr "detectar imagens monocromáticas" -#: ../build/bin/preferences_gen.h:5671 +#: ../build/bin/preferences_gen.h:6029 msgid "" "many monochrome images can be identified via EXIF and preview data. beware: " "this slows down imports and reading of EXIF data" @@ -1461,11 +1556,11 @@ "pré-visualização. cuidado: isto torna a importação e leitura de dados EXIF " "lentos" -#: ../build/bin/preferences_gen.h:5693 +#: ../build/bin/preferences_gen.h:6050 msgid "show warning messages" msgstr "mostrar mensagens de alerta" -#: ../build/bin/preferences_gen.h:5707 +#: ../build/bin/preferences_gen.h:6063 msgid "" "display messages in modules to warn beginner users when non-standard and " "possibly harmful settings are used in the pipeline.\n" @@ -1477,15 +1572,15 @@ "estas mensagens podem ser falsos positivos e devem ser ignoradas se você " "sabe o que está fazendo. esta opção as esconderá o tempo todo." -#: ../build/bin/preferences_gen.h:5717 -msgid "CPU / GPU / memory" -msgstr "CPU / GPU / memória" +#: ../build/bin/preferences_gen.h:6072 +msgid "CPU / memory" +msgstr "CPU / memória" -#: ../build/bin/preferences_gen.h:5737 +#: ../build/bin/preferences_gen.h:6091 msgid "darktable resources" msgstr "recursos do darktable" -#: ../build/bin/preferences_gen.h:5786 +#: ../build/bin/preferences_gen.h:6106 #, no-c-format msgid "" "defines how much darktable may take from your system resources:\n" @@ -1515,11 +1610,11 @@ "levar a swapping e quedas de desempenho. use com cuidado, não é recomendado " "para uso geral!" -#: ../build/bin/preferences_gen.h:5808 +#: ../build/bin/preferences_gen.h:6127 msgid "prefer performance over quality" msgstr "priorizar desempenho sobre qualidade" -#: ../build/bin/preferences_gen.h:5822 +#: ../build/bin/preferences_gen.h:6140 msgid "" "if switched on, thumbnails and previews are rendered at lower quality but 4 " "times faster" @@ -1527,56 +1622,15 @@ "se ligado as miniaturas e pré-visualizações são renderizadas com qualidade " "menor, mas quatro vezes mais rápido." -#: ../build/bin/preferences_gen.h:5844 -msgid "enable disk backend for thumbnail cache" -msgstr "armazenar em disco cache de miniaturas" +#: ../build/bin/preferences_gen.h:6149 +msgid "OpenCL" +msgstr "OpenCL" -#: ../build/bin/preferences_gen.h:5858 -msgid "" -"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want. light table " -"performance will be increased greatly when browsing a lot.\n" -"to generate all thumbnails of your entire collection offline, run 'darktable-" -"generate-cache'." -msgstr "" -"se habilitado, escreve miniaturas no disco (.cache/darktable/) quando " -"despejados do cache em memória.\n" -"note que isto pode usar muita memória (vários gigabytes para 20k imagens) e " -"nunca apagará miniaturas cacheadas novamente.\n" -"é seguro, no entanto, apagá-las manualmente, se você quiser. o desempenho da " -"mesa de luz aumentará muito durante a navegação pelas fotos.\n" -"para gerar miniaturas de toda a coleção, offline, execute 'darktable-" -"generate-cache'." - -#: ../build/bin/preferences_gen.h:5880 -msgid "enable disk backend for full preview cache" -msgstr "armazenar em disco cache de visualização completa" - -#: ../build/bin/preferences_gen.h:5894 -msgid "" -"if enabled, write full preview to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want.\n" -"light table performance will be increased greatly when zooming image in full " -"preview mode." -msgstr "" -"se habilitado, escreve miniaturas no disco (.cache/darktable/) quando " -"despejados do cache em memória.\n" -"note que isto pode usar muita memória (vários gigabytes para 20k imagens) e " -"nunca apagará miniaturas cacheadas novamente.\n" -"é seguro, no entanto, apagá-las manualmente, se você quiser.\n" -"o desempenho da mesa de luz aumentará muito durante a navegação pelas fotos." - -#: ../build/bin/preferences_gen.h:5916 +#: ../build/bin/preferences_gen.h:6168 msgid "activate OpenCL support" msgstr "ativar suporte ao OpenCL" -#: ../build/bin/preferences_gen.h:5930 +#: ../build/bin/preferences_gen.h:6181 msgid "" "if found, use OpenCL runtime on your system to speed up processing.\n" "can be switched on and off at any time." @@ -1584,23 +1638,32 @@ "se encontrado, utilizar OpenCL no sistema para aumentar desempenho na " "velocidade de processamento. pode ser ligado e desligado a qualquer momento." -#: ../build/bin/preferences_gen.h:5931 ../build/bin/preferences_gen.h:6002 -#: ../build/bin/preferences_gen.h:6078 ../build/bin/preferences_gen.h:7397 +#: ../build/bin/preferences_gen.h:6185 ../build/bin/preferences_gen.h:6230 +#: ../build/bin/preferences_gen.h:6274 ../build/bin/preferences_gen.h:6325 +#: ../build/bin/preferences_gen.h:6369 ../build/bin/preferences_gen.h:6413 +#: ../build/bin/preferences_gen.h:6457 ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6545 ../build/bin/preferences_gen.h:7700 msgid "not available" msgstr "não disponível" -#: ../build/bin/preferences_gen.h:5934 ../build/bin/preferences_gen.h:5938 -#: ../build/bin/preferences_gen.h:6005 ../build/bin/preferences_gen.h:6009 -#: ../build/bin/preferences_gen.h:6081 ../build/bin/preferences_gen.h:6085 -#: ../build/bin/preferences_gen.h:7400 ../build/bin/preferences_gen.h:7404 +#: ../build/bin/preferences_gen.h:6187 ../build/bin/preferences_gen.h:6188 +#: ../build/bin/preferences_gen.h:6232 ../build/bin/preferences_gen.h:6233 +#: ../build/bin/preferences_gen.h:6276 ../build/bin/preferences_gen.h:6277 +#: ../build/bin/preferences_gen.h:6327 ../build/bin/preferences_gen.h:6328 +#: ../build/bin/preferences_gen.h:6371 ../build/bin/preferences_gen.h:6372 +#: ../build/bin/preferences_gen.h:6415 ../build/bin/preferences_gen.h:6416 +#: ../build/bin/preferences_gen.h:6459 ../build/bin/preferences_gen.h:6460 +#: ../build/bin/preferences_gen.h:6503 ../build/bin/preferences_gen.h:6504 +#: ../build/bin/preferences_gen.h:6547 ../build/bin/preferences_gen.h:6548 +#: ../build/bin/preferences_gen.h:7702 ../build/bin/preferences_gen.h:7703 msgid "not available on this system" msgstr "não disponível neste sistema" -#: ../build/bin/preferences_gen.h:5958 +#: ../build/bin/preferences_gen.h:6212 msgid "OpenCL scheduling profile" msgstr "perfil de agendamento do OpenCL" -#: ../build/bin/preferences_gen.h:6001 +#: ../build/bin/preferences_gen.h:6226 msgid "" "defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled " "systems:\n" @@ -1618,56 +1681,130 @@ "diferentes GPUs;\n" " - 'GPU muito rápida' -- processa as duas pixelpipes sequencialmente na GPU." -#: ../build/bin/preferences_gen.h:6029 -msgid "tune OpenCL performance" -msgstr "ajustar desempenho do OpenCL" +#: ../build/bin/preferences_gen.h:6257 +msgid "use all device memory" +msgstr "usar toda a memória do dispositivo" + +#: ../build/bin/preferences_gen.h:6270 +msgid "" +"if enabled darktable will use all device memory except a safety margin " +"(headroom, default is 600MB)" +msgstr "" +"se habilitado o darktable usará toda a memória do dispositivo exceto uma " +"margem de segurança (headroom, o padrão é 600Mb)" + +#: ../build/bin/preferences_gen.h:6289 +msgid "OpenCL drivers" +msgstr "drivers OpenCL" + +#: ../build/bin/preferences_gen.h:6308 +msgid "Intel GPU" +msgstr "Intel GPU" + +#: ../build/bin/preferences_gen.h:6321 +msgid "Intel(R) OpenCL Graphics for all supported platforms (vendor provided)" +msgstr "" +"Intel(R) OpenCL Graphics para todas as plataformas suportadas (vendor " +"provided)" + +#: ../build/bin/preferences_gen.h:6352 +msgid "Nvidia CUDA" +msgstr "Nvidia CUDA" + +#: ../build/bin/preferences_gen.h:6365 +msgid "Nvidia CUDA based OpenCL (vendor provided)" +msgstr "Nvidia CUDA based OpenCL (vendor provided)" + +#: ../build/bin/preferences_gen.h:6396 +msgid "AMD ROCm" +msgstr "AMD ROCm" + +#: ../build/bin/preferences_gen.h:6409 +msgid "AMD Accelerated Parallel Processing (vendor provided)" +msgstr "AMD Accelerated Parallel Processing (vendor provided)" + +#: ../build/bin/preferences_gen.h:6440 +msgid "RustiCL" +msgstr "RustiCL" -#: ../build/bin/preferences_gen.h:6077 +#: ../build/bin/preferences_gen.h:6453 msgid "" -"allows runtime tuning of OpenCL devices:\n" -" - 'memory size': uses a fixed headroom (400MB as default),\n" -" - 'memory transfer': tries a faster memory access mode (pinned memory) used " -"for tiling." -msgstr "" -"permite ajuste dos dispositivos OpenCL durante excução:\n" -" - 'tamanho da memória': usa um espaço fixo (400MB por padrão),\n" -" - 'transferência de memória': tenta um modo mais rápido de acesso à memória " -"(memória fixada) usado para ladrilhamento." +"RustiCL Mesa OpenCL, still unstable. if you want to use this, you should " +"disable the vendor driver" +msgstr "" +"RustiCL Mesa OpenCL, ainda instável. se quiser usar, deve desabilitar o " +"driver do fornecedor" + +#: ../build/bin/preferences_gen.h:6484 +msgid "Apple" +msgstr "Apple" + +#: ../build/bin/preferences_gen.h:6497 +msgid "Apple OpenCL (vendor provided)" +msgstr "Apple OpenCL (vendor provided)" + +#: ../build/bin/preferences_gen.h:6528 +msgid "Microsoft OpenCLOn12" +msgstr "Microsoft OpenCLOn12" + +#: ../build/bin/preferences_gen.h:6541 +msgid "" +"Microsoft OpenCLOn12, only use this if the vendor provided driver does not " +"work or there is none provided." +msgstr "" +"Microsoft OpenCLOn12, só use se o driver do fornecedor não funcionar, ou se " +"não houver um." + +#: ../build/bin/preferences_gen.h:6572 +msgid "other platforms" +msgstr "outras plataformas" + +#: ../build/bin/preferences_gen.h:6585 +msgid "" +"if set, all unspecified platforms are accepted. only do this if no vendor " +"driver is available" +msgstr "" +"se configurado, todas as plataformas não especificadas são aceitas. só faça " +"isso se não houver driver do fornecedor disponível" -#: ../build/bin/preferences_gen.h:6143 +#: ../build/bin/preferences_gen.h:6617 +msgid "security" +msgstr "segurança" + +#: ../build/bin/preferences_gen.h:6638 msgid "ask before removing images from the library" msgstr "perguntar antes de remover imagens da biblioteca" -#: ../build/bin/preferences_gen.h:6157 +#: ../build/bin/preferences_gen.h:6651 msgid "always ask the user before removing image information from the library" msgstr "" "sempre perguntar o usuário antes de remover informação de imagens da " "biblioteca" -#: ../build/bin/preferences_gen.h:6179 +#: ../build/bin/preferences_gen.h:6672 msgid "ask before deleting images from disk" msgstr "perguntar antes de apagar imagens do disco" -#: ../build/bin/preferences_gen.h:6193 +#: ../build/bin/preferences_gen.h:6685 msgid "always ask the user before any image file is deleted" msgstr "" "sempre perguntar ao usuário antes de remover qualquer arquivo de imagem." -#: ../build/bin/preferences_gen.h:6215 +#: ../build/bin/preferences_gen.h:6706 msgid "ask before discarding history stack" msgstr "perguntar antes de descartar pilha de histórico" -#: ../build/bin/preferences_gen.h:6229 +#: ../build/bin/preferences_gen.h:6719 msgid "always ask the user before history stack is discarded on any image" msgstr "" "sempre perguntar ao usuário antes de excluir a pilha de histórico em " "qualquer imagem." -#: ../build/bin/preferences_gen.h:6251 +#: ../build/bin/preferences_gen.h:6740 msgid "try to use trash when deleting images" msgstr "tentar enviar arquivos para a lixeira quando apagar arquivos de imagem" -#: ../build/bin/preferences_gen.h:6265 +#: ../build/bin/preferences_gen.h:6753 msgid "" "send files to trash instead of permanently deleting files on system that " "supports it" @@ -1675,28 +1812,28 @@ "enviar arquivos para a lixeira em vez de apagar permanentemente(em sistemas " "que permitem isso)" -#: ../build/bin/preferences_gen.h:6287 +#: ../build/bin/preferences_gen.h:6774 msgid "ask before moving images from film roll folder" msgstr "perguntar antes de mover imagens da pasta de rolo de filme" -#: ../build/bin/preferences_gen.h:6301 +#: ../build/bin/preferences_gen.h:6787 msgid "always ask the user before any image file is moved." msgstr "sempre perguntar ao usuário antes de mover qualquer arquivo de imagem." -#: ../build/bin/preferences_gen.h:6323 +#: ../build/bin/preferences_gen.h:6808 msgid "ask before copying images to new film roll folder" msgstr "perguntar antes de copiar imagens para uma nova pasta de rolo de filme" -#: ../build/bin/preferences_gen.h:6337 +#: ../build/bin/preferences_gen.h:6821 msgid "always ask the user before any image file is copied." msgstr "" "sempre perguntar ao usuário antes de copiar qualquer arquivo de imagem." -#: ../build/bin/preferences_gen.h:6359 +#: ../build/bin/preferences_gen.h:6842 msgid "ask before removing empty folders" msgstr "perguntar antes de remover pastas vazias" -#: ../build/bin/preferences_gen.h:6373 +#: ../build/bin/preferences_gen.h:6855 msgid "" "always ask the user before removing any empty folder. this can happen after " "moving or deleting images." @@ -1704,50 +1841,50 @@ "sempre perguntar ao usuário antes de excluir qualquer pasta vazia. isto pode " "acontecer depois de mover ou remover imagens." -#: ../build/bin/preferences_gen.h:6395 +#: ../build/bin/preferences_gen.h:6876 msgid "ask before deleting a tag" msgstr "perguntar antes de excluir uma etiqueta" -#: ../build/bin/preferences_gen.h:6430 +#: ../build/bin/preferences_gen.h:6909 msgid "ask before deleting a style" msgstr "perguntar antes de excluir um estilo" -#: ../build/bin/preferences_gen.h:6465 +#: ../build/bin/preferences_gen.h:6942 msgid "ask before deleting a preset" msgstr "perguntar antes de excluir uma predefinição" -#: ../build/bin/preferences_gen.h:6479 +#: ../build/bin/preferences_gen.h:6955 msgid "will ask for confirmation before deleting or overwriting a preset" msgstr "pedir confirmação antes de remover ou sobrescrever uma predefinição" -#: ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6976 msgid "ask before exporting in overwrite mode" msgstr "perguntar antes de exportar em modo de sobrescrita" -#: ../build/bin/preferences_gen.h:6515 +#: ../build/bin/preferences_gen.h:6989 msgid "will ask for confirmation before exporting files in overwrite mode" msgstr "pedir confirmação antes de exportar arquivos em modo de sobrescrita" #. italic -#: ../build/bin/preferences_gen.h:6525 ../src/libs/tools/viewswitcher.c:148 +#: ../build/bin/preferences_gen.h:6998 ../src/libs/tools/viewswitcher.c:148 msgid "other" msgstr "outro" -#: ../build/bin/preferences_gen.h:6545 +#: ../build/bin/preferences_gen.h:7017 msgid "password storage backend to use" msgstr "backend a usar para armazenamento de senhas" -#: ../build/bin/preferences_gen.h:6595 +#: ../build/bin/preferences_gen.h:7035 msgid "" "the storage backend for password storage: auto, none, libsecret, kwallet" msgstr "" "o backend the armazenamento para senhas: auto, nenhum, libsecret, kwallet" -#: ../build/bin/preferences_gen.h:6617 +#: ../build/bin/preferences_gen.h:7056 msgid "executable for playing audio files" msgstr "executável para tocar arquivos de áudio" -#: ../build/bin/preferences_gen.h:6635 +#: ../build/bin/preferences_gen.h:7074 msgid "" "this external program is used to play audio files some cameras record to " "keep notes for images" @@ -1755,15 +1892,19 @@ "este programa externo é usado para tocar arquivos de áudio que algumas " "câmeras gravam para manter notas sobre imagens" -#: ../build/bin/preferences_gen.h:6675 ../src/control/crawler.c:724 +#: ../build/bin/preferences_gen.h:7106 +msgid "storage" +msgstr "armazenamento" + +#: ../build/bin/preferences_gen.h:7108 ../src/control/crawler.c:717 msgid "database" msgstr "base de dados" -#: ../build/bin/preferences_gen.h:6695 +#: ../build/bin/preferences_gen.h:7127 msgid "create database snapshot" msgstr "criar cópia instantânea da base de dados" -#: ../build/bin/preferences_gen.h:6748 +#: ../build/bin/preferences_gen.h:7141 msgid "" "database snapshots are created right before closing darktable. options allow " "you to choose how often to make snapshots:\n" @@ -1790,11 +1931,11 @@ " - 'ao fechar': crie uma cópia instantânea toda vez que o darktable for " "fechado" -#: ../build/bin/preferences_gen.h:6770 +#: ../build/bin/preferences_gen.h:7162 msgid "how many snapshots to keep" msgstr "quantas cópias de segurança manter" -#: ../build/bin/preferences_gen.h:6793 +#: ../build/bin/preferences_gen.h:7185 msgid "" "after successfully creating snapshot, how many older snapshots to keep " "(excluding mandatory version update ones). enter -1 to keep all snapshots\n" @@ -1809,38 +1950,39 @@ "recente\n" "para uma recuperação." -#: ../build/bin/preferences_gen.h:6803 ../src/control/crawler.c:723 -msgid "XMP" -msgstr "XMP" +#: ../build/bin/preferences_gen.h:7194 ../src/libs/copy_history.c:149 +msgid "XMP sidecar files" +msgstr "arquivos auxiliares XMP" -#: ../build/bin/preferences_gen.h:6823 -msgid "write sidecar file for each image" -msgstr "salvar arquivo auxiliar para cada imagem" +#: ../build/bin/preferences_gen.h:7213 +msgid "create XMP files" +msgstr "criar arquivos XMP" -#: ../build/bin/preferences_gen.h:6866 +#: ../build/bin/preferences_gen.h:7227 msgid "" -"the sidecar files hold information about all your development steps to allow " +"XMP sidecar files hold information about all your development steps to allow " "flawless re-importing of image files.\n" "\n" -"depending on the selected mode sidecar files will be written:\n" +"depending on the selected mode sidecar files will be created:\n" " - 'never'\n" " - 'on import': immediately after importing the image\n" -" - 'after edit': after any user change on the image." +" - 'after edit': after any user change on the image or adding tags." msgstr "" -"os arquivos associados mantém informações sobre todos os seus passos de " +"os arquivos XMP associados mantém informações sobre todos os seus passos de " "desenvolvimento para permitir a re-importação de arquivos de imagem sem " -"problemas\n" +"problemas.\n" "\n" "dependendo do modo selecionado, os arquivos associados serão escritos:\n" " - 'nunca'\n" " - 'ao importar': imediatamente após importar a imagem\n" -" - 'após edição': depois de qualquer mudança feita na imagem" +" - 'após edição': depois de qualquer mudança feita na imagem ou após " +"adicionar etiquetas." -#: ../build/bin/preferences_gen.h:6888 +#: ../build/bin/preferences_gen.h:7248 msgid "store XMP tags in compressed format" msgstr "salvar etiquetas XMP em formato comprimido" -#: ../build/bin/preferences_gen.h:6931 +#: ../build/bin/preferences_gen.h:7262 msgid "" "entries in XMP tags can get rather large and may exceed the available space " "to store the history stack in output files.\n" @@ -1850,11 +1992,25 @@ "espaço disponível para armazenar o histórico em arquivos de saída.\n" "esta opção permite que etiquetas XMP sejam comprimidos e economizem espaço." -#: ../build/bin/preferences_gen.h:6953 +#: ../build/bin/preferences_gen.h:7283 +msgid "auto-save interval" +msgstr "intervalo para auto-salvar" + +#: ../build/bin/preferences_gen.h:7306 +msgid "" +"automatically save history while developing using the given interval (in " +"seconds); set to zero to disable auto-saving. auto-saving might be disabled " +"on slow drives." +msgstr "" +"salvar o histórico periodicamente no intervalo dado (em segundaos); defina " +"em zero para desabilitar a auto-gravação. a gravação automática pode ser " +"desabilitada em drives lentos." + +#: ../build/bin/preferences_gen.h:7327 msgid "look for updated XMP files on startup" msgstr "procurar por arquivos XMP atualizados ao iniciar" -#: ../build/bin/preferences_gen.h:6967 +#: ../build/bin/preferences_gen.h:7340 msgid "" "check file modification times of all XMP files on startup to check if any " "got updated in the meantime" @@ -1862,15 +2018,19 @@ "verificar tempo de modificação de todos os arquivos XMP ao iniciar para ver " "se algum foi modificado" -#: ../build/bin/preferences_gen.h:7007 +#: ../build/bin/preferences_gen.h:7372 +msgid "miscellaneous" +msgstr "miscelânea" + +#: ../build/bin/preferences_gen.h:7374 msgid "interface" msgstr "interface" -#: ../build/bin/preferences_gen.h:7027 +#: ../build/bin/preferences_gen.h:7393 msgid "load default shortcuts at startup" msgstr "carregar atalhos padrão ao iniciar" -#: ../build/bin/preferences_gen.h:7041 +#: ../build/bin/preferences_gen.h:7406 msgid "" "load default shortcuts before user settings. switch off to prevent deleted " "defaults returning" @@ -1878,30 +2038,30 @@ "carregar atalhos padrão antes de usar as configurações. defina como " "desligado para prevenir padrões removidos de retornarem" -#: ../build/bin/preferences_gen.h:7063 +#: ../build/bin/preferences_gen.h:7427 msgid "scale slider step with min/max" msgstr "escalonar passo do controle deslizante com mín/máx" -#: ../build/bin/preferences_gen.h:7077 +#: ../build/bin/preferences_gen.h:7440 msgid "vary slider step size with min/max range" msgstr "variar o tamanho do passo do deslizador com faixa min/max" -#: ../build/bin/preferences_gen.h:7099 +#: ../build/bin/preferences_gen.h:7461 msgid "sort built-in presets first" msgstr "ordenar predefinições nativas primeiro" -#: ../build/bin/preferences_gen.h:7113 +#: ../build/bin/preferences_gen.h:7474 msgid "" "whether to show built-in presets first before user's presets in presets menu." msgstr "" "se as predefinições nativas devem ser mostradas primeiro no menu de " "predefinições do usuário." -#: ../build/bin/preferences_gen.h:7135 +#: ../build/bin/preferences_gen.h:7495 msgid "mouse wheel scrolls modules side panel by default" msgstr "roda do mouse movimenta o painel lateral por padrão" -#: ../build/bin/preferences_gen.h:7149 +#: ../build/bin/preferences_gen.h:7508 msgid "" "when enabled, use mouse wheel to scroll modules side panel. use ctrl+alt to " "use mouse wheel for data entry. when disabled, this behavior is reversed" @@ -1910,11 +2070,11 @@ "por padrão. se ctrl+alt para usar o botão de rolagem para entrada de dados. " "quando desabilitado, este comportamento é revertido" -#: ../build/bin/preferences_gen.h:7171 +#: ../build/bin/preferences_gen.h:7529 msgid "always show panels' scrollbars" msgstr "sempre mostrar barras de rolagem dos painéis" -#: ../build/bin/preferences_gen.h:7185 +#: ../build/bin/preferences_gen.h:7542 msgid "" "defines whether the panel scrollbars should be always visible or activated " "only depending on the content. (need a restart)" @@ -1922,11 +2082,11 @@ "define se as barras de rolagem dos painéis sempre devem ficar visíveis ou se " "ativadas somente dependendo do contexto. (precisa reiniciar)" -#: ../build/bin/preferences_gen.h:7207 +#: ../build/bin/preferences_gen.h:7563 msgid "duration of the UI transitions in ms" msgstr "duração das transições da interface em ms" -#: ../build/bin/preferences_gen.h:7231 +#: ../build/bin/preferences_gen.h:7587 msgid "" "how long the transitions take (in ms) for expanding or collapsing modules " "and other UI elements" @@ -1934,21 +2094,21 @@ "quanto tempo as transições levam (em ms) para expandir ou colapsar módulos e " "outros elementos da interface" -#: ../build/bin/preferences_gen.h:7253 +#: ../build/bin/preferences_gen.h:7608 msgid "position of the scopes module" msgstr "posição do módulo histograma" -#: ../build/bin/preferences_gen.h:7291 +#: ../build/bin/preferences_gen.h:7622 msgid "position the scopes at the top-left or top-right of the screen" msgstr "" "posicionar do histograma na parte superior esquerda ou parte superior " "direita da tela" -#: ../build/bin/preferences_gen.h:7313 +#: ../build/bin/preferences_gen.h:7643 msgid "method to use for getting the display profile" msgstr "método usado para obter o perfil do monitor" -#: ../build/bin/preferences_gen.h:7356 +#: ../build/bin/preferences_gen.h:7657 msgid "" "this option allows to force a specific means of getting the current display " "profile.\n" @@ -1958,11 +2118,11 @@ "atual.\n" "é útil quando uma alternativa dá resultados errados" -#: ../build/bin/preferences_gen.h:7378 +#: ../build/bin/preferences_gen.h:7678 msgid "order or exclude MIDI devices" msgstr "carregar ou excluir dispositivos MIDI" -#: ../build/bin/preferences_gen.h:7396 +#: ../build/bin/preferences_gen.h:7696 msgid "" "comma-separated list of device name fragments that if matched load MIDI " "device at id given by location in list\n" @@ -1977,71 +2137,67 @@ "'BeatStep:63:16'" #. tags -#: ../build/bin/preferences_gen.h:7412 ../src/develop/lightroom.c:1516 -#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:333 -#: ../src/libs/image.c:558 ../src/libs/metadata_view.c:162 +#: ../build/bin/preferences_gen.h:7715 ../src/develop/lightroom.c:1573 +#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:322 +#: ../src/libs/image.c:614 ../src/libs/metadata_view.c:166 msgid "tags" msgstr "etiquetas" -#: ../build/bin/preferences_gen.h:7432 +#: ../build/bin/preferences_gen.h:7734 msgid "omit hierarchy in simple tag lists" msgstr "omitir hierarquia em listas simples de etiquetas" -#: ../build/bin/preferences_gen.h:7446 +#: ../build/bin/preferences_gen.h:7747 msgid "" -"when creating XMP file the hierarchical tags are also added as a simple " -"list\n" +"when creating an XMP sidecar file the hierarchical tags are also added as a " +"simple list\n" "of non-hierarchical ones to make them visible to some other programs.\n" "when this option is checked darktable will only include their last part\n" "and ignore the rest. so 'foo|bar|baz' will only add 'baz'." msgstr "" -"ao criar um arquivo XMP, as etiquetas hierárquicas também são adicionados " -"como simples lista não-hierárquica para fazê-los visíveis por outros " -"programas. quando esta opção é habilitada, o darktable somente incluirá a " -"última parte das etiquetas e ignorará o resto. assim, 'foo|bar|baz' somente " -"adicionará 'baz'." +"ao criar um arquivo associado XMP, as etiquetas hierárquicas também são " +"adicionados como simples lista não-hierárquica para fazê-los visíveis por " +"outros programas. quando esta opção é habilitada, o darktable somente " +"incluirá a última parte das etiquetas e ignorará o resto. assim, 'foo|bar|" +"baz' somente adicionará 'baz'." -#: ../build/bin/preferences_gen.h:7456 +#: ../build/bin/preferences_gen.h:7756 msgid "shortcuts with multiple instances" msgstr "atalhos de teclado com múltiplas instâncias" -#: ../build/bin/preferences_gen.h:7461 -msgid "" -"where multiple module instances are present, these preferences control rules " -"that are applied (in order) to decide which module instance shortcuts will " -"be applied to" -msgstr "" -"onde múltiplas instâncias de um módulo estiverem presentes, estas " -"preferencias controlam as regras que são aplicadas (em ordem) para decidir a " -"que instância do módulo os atalhos serão aplicados" - -#: ../build/bin/preferences_gen.h:7477 +#: ../build/bin/preferences_gen.h:7775 msgid "prefer focused instance" msgstr "preferir instância em foco" -#: ../build/bin/preferences_gen.h:7491 +#: ../build/bin/preferences_gen.h:7788 msgid "" -"if an instance of the module has focus, apply shortcut to that instance\n" +"where multiple instances of a module are present, apply shortcuts to the " +"instance that has focus\n" +"if none are focused, the preferences below control rules that are followed " +"(in order) to decide which module instance shortcuts will be applied to.\n" "note: blending shortcuts always apply to the focused instance" msgstr "" -"se uma instância de um módulo está em foco, aplicar o atalho àquela " -"instância\n" -"nota: mesclar atalhos sempre se aplica à instância em foco" +"onde múltiplas instâncias de um módulo estiverem presentes, aplicar atalhos " +"para a instancia que tiver o foco\n" +"se nenhuma tiver foco, as preferência abaixo controlam as regras que são " +"aplicadas (em ordem) para decidir a que instância do módulo os atalhos serão " +"aplicados.\n" +"nota: misturar atalhos sempre aplica à instância em foco" -#: ../build/bin/preferences_gen.h:7513 +#: ../build/bin/preferences_gen.h:7809 msgid "prefer expanded instances" msgstr "preferir instâncias expandidas" -#: ../build/bin/preferences_gen.h:7527 +#: ../build/bin/preferences_gen.h:7822 msgid "if instances of the module are expanded, ignore collapsed instances" msgstr "" "se instâncias do módulo estão expandidas, ignorar as instâncias recolhidas" -#: ../build/bin/preferences_gen.h:7549 +#: ../build/bin/preferences_gen.h:7843 msgid "prefer enabled instances" msgstr "preferir instâncias ativas" -#: ../build/bin/preferences_gen.h:7563 +#: ../build/bin/preferences_gen.h:7856 msgid "" "after applying the above rule, if instances of the module are active, ignore " "inactive instances" @@ -2049,11 +2205,11 @@ "depois de aplicar as regras acima, se instâncias de um módulo estiverem " "ativas, ignore as instâncias inativas" -#: ../build/bin/preferences_gen.h:7585 +#: ../build/bin/preferences_gen.h:7877 msgid "prefer unmasked instances" msgstr "preferir instâncias não mascaradas" -#: ../build/bin/preferences_gen.h:7599 +#: ../build/bin/preferences_gen.h:7890 msgid "" "after applying the above rules, if instances of the module are unmasked, " "ignore masked instances" @@ -2061,11 +2217,11 @@ "depois de aplicar as regras acima, se instâncias de um módulo estiverem não-" "mascaradas, ignore as instâncias mascaradas" -#: ../build/bin/preferences_gen.h:7621 +#: ../build/bin/preferences_gen.h:7911 msgid "selection order" msgstr "ordem de seleção" -#: ../build/bin/preferences_gen.h:7659 +#: ../build/bin/preferences_gen.h:7925 msgid "" "after applying the above rules, apply the shortcut based on its position in " "the pixelpipe" @@ -2073,11 +2229,11 @@ "depois de aplicar as regras acima, aplique o atalho baseando-se na sua " "posição no pixelpipe" -#: ../build/bin/preferences_gen.h:7681 +#: ../build/bin/preferences_gen.h:7946 msgid "allow visual assignment to specific instances" msgstr "permitir atribuição visual para instâncias específicas" -#: ../build/bin/preferences_gen.h:7695 +#: ../build/bin/preferences_gen.h:7959 msgid "" "when multiple instances are present on an image this allows shortcuts to be " "visually assigned to those specific instances\n" @@ -2088,15 +2244,15 @@ "os\n" "atalhos serão sempre atribuídos à instância preferencial" -#: ../build/bin/preferences_gen.h:7705 +#: ../build/bin/preferences_gen.h:7968 msgid "map / geolocalization view" msgstr "vista de mapa / geolocalização" -#: ../build/bin/preferences_gen.h:7725 +#: ../build/bin/preferences_gen.h:7987 msgid "pretty print the image location" msgstr "impressão clara da localização da imagem" -#: ../build/bin/preferences_gen.h:7739 +#: ../build/bin/preferences_gen.h:8000 msgid "" "show a more readable representation of the location in the image information " "module" @@ -2104,64 +2260,28 @@ "mostra uma representação mais legível da localização no módulo de informação " "da imagem" -#: ../build/bin/preferences_gen.h:7749 +#: ../build/bin/preferences_gen.h:8009 msgid "slideshow view" msgstr "vista de apresentação" -#: ../build/bin/preferences_gen.h:7769 +#: ../build/bin/preferences_gen.h:8028 msgid "waiting time between each picture in slideshow" msgstr "tempo entre fotos na apresentação" -#: ../build/bin/preferences_gen.h:7831 -msgid "session options" -msgstr "opções da sessão" - -#: ../build/bin/preferences_gen.h:7851 -msgid "base directory naming pattern" -msgstr "padrão de nomeação de diretório base" - -#: ../build/bin/preferences_gen.h:7869 ../build/bin/preferences_gen.h:7909 -msgid "part of full import path for an import session" -msgstr "parte do caminho completo para uma sessão de importação" - -#: ../build/bin/preferences_gen.h:7891 -msgid "sub directory naming pattern" -msgstr "padrão de nomeação de subdiretórios" - -#: ../build/bin/preferences_gen.h:7931 -msgid "keep original filename" -msgstr "manter nome de arquivo original" - -#: ../build/bin/preferences_gen.h:7945 -msgid "" -"keep original filename instead of a pattern while importing from camera or " -"card" -msgstr "" -"manter nome de arquivo original ao invés de usar um padrão quando importar " -"da câmera ou cartão" - -#: ../build/bin/preferences_gen.h:7967 -msgid "file naming pattern" -msgstr "padrão de nomeação de arquivos" - -#: ../build/bin/preferences_gen.h:7985 -msgid "file naming pattern used for a import session" -msgstr "padrão de nomeação de arquivos utilizado para a sessão de importação" - -#: ../build/bin/preferences_gen.h:8022 +#: ../build/bin/preferences_gen.h:8088 msgid "do not set the 'uncategorized' entry for tags" msgstr "não definir entrada 'sem categoria' para etiquetas" -#: ../build/bin/preferences_gen.h:8036 +#: ../build/bin/preferences_gen.h:8101 msgid "" "do not set the 'uncategorized' entry for tags which do not have children" msgstr "não definir entrada 'sem categoria' para etiquetas que não têm filhas" -#: ../build/bin/preferences_gen.h:8058 +#: ../build/bin/preferences_gen.h:8122 msgid "tags case sensitivity" msgstr "sensibilidade à caixa alta/baixa nas etiquetas" -#: ../build/bin/preferences_gen.h:8096 +#: ../build/bin/preferences_gen.h:8136 msgid "" "tags case sensitivity. without the Sqlite ICU extension, insensitivity works " "only for the 26 latin letters" @@ -2169,30 +2289,30 @@ "sensibilidade à caixa alta/baixa nas etiquetas. sem a extensão Sqlite ICU, a " "insensibilidade funciona apenas para as 26 letras latinas" -#: ../build/bin/preferences_gen.h:8118 ../build/bin/preferences_gen.h:8358 +#: ../build/bin/preferences_gen.h:8157 ../build/bin/preferences_gen.h:8368 msgid "number of collections to be stored" msgstr "número de coleções a serem armazenadas" -#: ../build/bin/preferences_gen.h:8142 ../build/bin/preferences_gen.h:8382 +#: ../build/bin/preferences_gen.h:8181 ../build/bin/preferences_gen.h:8392 msgid "the number of recent collections to store and show in this list" msgstr "" "o número de coleções recentes a serem armazenadas e mostradas nesta lista" -#: ../build/bin/preferences_gen.h:8164 +#: ../build/bin/preferences_gen.h:8202 msgid "hide the history button and show a specific module instead" msgstr "ocultar o botão de histórico e mostrar um módulo específico" -#: ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8215 msgid "hide the history button and show the recent collections module instead" msgstr "" "ocultar o botão de histórico e mostrar o módulo coleções recentes ao invés " "disso" -#: ../build/bin/preferences_gen.h:8200 +#: ../build/bin/preferences_gen.h:8236 msgid "number of folder levels to show in lists" msgstr "número de níveis de pasta para mostrar nas listas" -#: ../build/bin/preferences_gen.h:8224 +#: ../build/bin/preferences_gen.h:8260 msgid "" "the number of folder levels to show in film roll names, starting from the " "right" @@ -2200,19 +2320,24 @@ "o número de níveis de pastas para mostrar em nomes de rolo de filme, a " "partir da direita" -#: ../build/bin/preferences_gen.h:8246 +#: ../build/bin/preferences_gen.h:8281 msgid "sort film rolls by" msgstr "ordenar rolos de filme por" -#: ../build/bin/preferences_gen.h:8284 +#: ../build/bin/preferences_gen.h:8292 +msgctxt "preferences" +msgid "chronological" +msgstr "cronológica" + +#: ../build/bin/preferences_gen.h:8295 msgid "sets the collections-list order for film rolls" msgstr "determina a ordem da lista de coleções para rolos de filme" -#: ../build/bin/preferences_gen.h:8306 +#: ../build/bin/preferences_gen.h:8316 msgid "sort collection descending" msgstr "ordenar coleção em ordem decrescente" -#: ../build/bin/preferences_gen.h:8320 +#: ../build/bin/preferences_gen.h:8329 msgid "" "sort the following collections in descending order: 'film roll' by folder, " "'folder', 'times' (e.g. 'capture date')" @@ -2220,11 +2345,11 @@ "ordena as seguintes coleções em ordem descendente: 'rolo de filme' por " "pasta, 'pasta', 'tempos' (por exemplo 'data da captura')" -#: ../build/bin/preferences_gen.h:8404 +#: ../build/bin/preferences_gen.h:8413 msgid "prefer a history button in the collections module" msgstr "preferir um botão de histórico no módulo de coleções" -#: ../build/bin/preferences_gen.h:8418 +#: ../build/bin/preferences_gen.h:8426 msgid "" "hide this module and instead access collections history with a button in the " "collections module" @@ -2232,11 +2357,11 @@ "preferir esconder este módulo e acessar o histórico com um botão no " "histórico de coleções" -#: ../build/bin/preferences_gen.h:8472 +#: ../build/bin/preferences_gen.h:8483 msgid "suggested tags level of confidence" msgstr "nível de confiança para etiquetas sugeridas" -#: ../build/bin/preferences_gen.h:8497 +#: ../build/bin/preferences_gen.h:8508 #, no-c-format msgid "" "level of confidence to include the tag in the suggestions list, 0: all " @@ -2248,11 +2373,11 @@ "combinam, 100: nenhuma etiqueta combinando para mostrar somente as etiquetas " "recentes (mais rápido)" -#: ../build/bin/preferences_gen.h:8519 +#: ../build/bin/preferences_gen.h:8529 msgid "number of recently attached tags" msgstr "número de etiquetas anexadas recentemente" -#: ../build/bin/preferences_gen.h:8543 +#: ../build/bin/preferences_gen.h:8553 msgid "" "number of recently attached tags which are included in the suggestions list. " "the value `-1' disables the recent list" @@ -2278,14 +2403,15 @@ #. focal length #: ../build/lib/darktable/plugins/introspection_ashift.c:148 #: ../build/lib/darktable/plugins/introspection_ashift.c:291 -#: ../src/common/collection.c:714 ../src/gui/preferences.c:844 -#: ../src/gui/presets.c:718 ../src/libs/camera.c:550 -#: ../src/libs/metadata_view.c:143 +#: ../src/common/collection.c:627 ../src/gui/preferences.c:842 +#: ../src/gui/presets.c:721 ../src/libs/camera.c:550 +#: ../src/libs/metadata_view.c:145 msgid "focal length" msgstr "distância focal" #: ../build/lib/darktable/plugins/introspection_ashift.c:154 #: ../build/lib/darktable/plugins/introspection_ashift.c:295 +#: ../src/libs/metadata_view.c:147 msgid "crop factor" msgstr "fator de corte (crop)" @@ -2301,7 +2427,7 @@ #: ../build/lib/darktable/plugins/introspection_ashift.c:172 #: ../build/lib/darktable/plugins/introspection_ashift.c:307 -#: ../src/iop/lens.cc:3784 +#: ../src/iop/lens.cc:4438 msgid "lens model" msgstr "modelo da lente" @@ -2323,14 +2449,14 @@ #. DEVELOP_MASK_DISABLED #: ../build/lib/darktable/plugins/introspection_ashift.c:366 -#: ../build/lib/darktable/plugins/introspection_colorin.c:300 +#: ../build/lib/darktable/plugins/introspection_colorin.c:303 #: ../build/lib/darktable/plugins/introspection_highlights.c:310 #: ../build/lib/darktable/plugins/introspection_vignette.c:264 #: ../src/develop/blend_gui.c:153 ../src/develop/blend_gui.c:182 -#: ../src/develop/blend_gui.c:3410 ../src/gui/accelerators.c:130 -#: ../src/gui/accelerators.c:140 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/imageio/format/j2k.c:669 -#: ../src/libs/live_view.c:361 ../src/libs/masks.c:113 +#: ../src/develop/blend_gui.c:3429 ../src/gui/accelerators.c:148 +#: ../src/gui/accelerators.c:158 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/imageio/format/j2k.c:686 +#: ../src/libs/live_view.c:361 msgid "off" msgstr "desligado" @@ -2354,7 +2480,7 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:146 #: ../build/lib/darktable/plugins/introspection_basecurve.c:239 -#: ../src/libs/metadata_view.c:142 +#: ../src/libs/metadata_view.c:144 msgid "exposure bias" msgstr "viés de exposição" @@ -2374,16 +2500,16 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:262 #: ../build/lib/darktable/plugins/introspection_basicadj.c:249 #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:153 -#: ../build/lib/darktable/plugins/introspection_lens.cc:444 +#: ../build/lib/darktable/plugins/introspection_lens.cc:533 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:251 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:153 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:270 -#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2193 -#: ../src/iop/channelmixerrgb.c:4667 ../src/iop/clipping.c:1900 -#: ../src/iop/clipping.c:2093 ../src/iop/clipping.c:2108 -#: ../src/iop/retouch.c:463 ../src/libs/collect.c:1907 -#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1023 -#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:132 +#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2214 +#: ../src/iop/channelmixerrgb.c:4735 ../src/iop/clipping.c:1953 +#: ../src/iop/clipping.c:2146 ../src/iop/clipping.c:2161 +#: ../src/iop/retouch.c:507 ../src/libs/collect.c:2043 +#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1101 +#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:109 #: ../src/libs/live_view.c:311 ../src/libs/print_settings.c:2835 msgid "none" msgstr "nenhum" @@ -2401,7 +2527,7 @@ #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:252 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:154 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:271 -#: ../src/develop/blend_gui.c:2363 ../src/develop/blend_gui.c:2397 +#: ../src/develop/blend_gui.c:2379 ../src/develop/blend_gui.c:2413 msgid "luminance" msgstr "luminância" @@ -2511,7 +2637,7 @@ #: ../build/lib/darktable/plugins/introspection_graduatednd.c:144 #: ../build/lib/darktable/plugins/introspection_watermark.c:136 #: ../build/lib/darktable/plugins/introspection_watermark.c:265 -#: ../src/iop/ashift.c:6112 ../src/libs/masks.c:108 +#: ../src/iop/ashift.c:6059 ../src/libs/masks.c:109 msgid "rotation" msgstr "rotação" @@ -2522,7 +2648,7 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:125 #: ../build/lib/darktable/plugins/introspection_blurs.c:202 -#: ../src/libs/masks.c:109 +#: ../src/libs/masks.c:110 msgid "curvature" msgstr "curvatura" @@ -2530,13 +2656,13 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:206 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:81 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:148 -#: ../src/iop/colorbalancergb.c:1968 +#: ../src/iop/colorbalancergb.c:2039 msgid "offset" msgstr "deslocamento" #: ../build/lib/darktable/plugins/introspection_blurs.c:220 -#: ../src/common/collection.c:712 ../src/gui/preferences.c:828 -#: ../src/gui/presets.c:660 ../src/libs/metadata_view.c:139 +#: ../src/common/collection.c:625 ../src/gui/preferences.c:826 +#: ../src/gui/presets.c:663 ../src/libs/metadata_view.c:141 msgid "lens" msgstr "lente" @@ -2552,63 +2678,90 @@ msgid "gaussian" msgstr "gaussiano" -#: ../build/lib/darktable/plugins/introspection_borders.c:112 -#: ../build/lib/darktable/plugins/introspection_borders.c:253 -#: ../src/common/collection.c:722 ../src/libs/filtering.c:59 +#: ../build/lib/darktable/plugins/introspection_borders.c:122 +#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../src/common/collection.c:635 ../src/libs/filtering.c:59 msgid "aspect ratio" msgstr "proporção da imagem" #. // portrait / landscape -#: ../build/lib/darktable/plugins/introspection_borders.c:130 -#: ../build/lib/darktable/plugins/introspection_borders.c:265 +#: ../build/lib/darktable/plugins/introspection_borders.c:140 +#: ../build/lib/darktable/plugins/introspection_borders.c:281 #: ../src/iop/flip.c:75 ../src/libs/print_settings.c:2517 msgid "orientation" msgstr "orientação" -#: ../build/lib/darktable/plugins/introspection_borders.c:136 -#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../build/lib/darktable/plugins/introspection_borders.c:146 +#: ../build/lib/darktable/plugins/introspection_borders.c:285 msgid "border size" msgstr "tamanho da borda" -#: ../build/lib/darktable/plugins/introspection_borders.c:142 -#: ../build/lib/darktable/plugins/introspection_borders.c:273 +#: ../build/lib/darktable/plugins/introspection_borders.c:152 +#: ../build/lib/darktable/plugins/introspection_borders.c:289 msgid "horizontal offset" msgstr "deslocamento horizontal" -#: ../build/lib/darktable/plugins/introspection_borders.c:160 -#: ../build/lib/darktable/plugins/introspection_borders.c:285 +#: ../build/lib/darktable/plugins/introspection_borders.c:170 +#: ../build/lib/darktable/plugins/introspection_borders.c:301 msgid "vertical offset" msgstr "deslocamento vertical" -#: ../build/lib/darktable/plugins/introspection_borders.c:178 -#: ../build/lib/darktable/plugins/introspection_borders.c:297 +#: ../build/lib/darktable/plugins/introspection_borders.c:188 +#: ../build/lib/darktable/plugins/introspection_borders.c:313 msgid "frame line size" msgstr "tamanho da linha da moldura" -#: ../build/lib/darktable/plugins/introspection_borders.c:184 -#: ../build/lib/darktable/plugins/introspection_borders.c:301 +#: ../build/lib/darktable/plugins/introspection_borders.c:194 +#: ../build/lib/darktable/plugins/introspection_borders.c:317 msgid "frame line offset" msgstr "deslocamento da linha da moldura" -#: ../build/lib/darktable/plugins/introspection_borders.c:327 -#: ../src/gui/preferences.c:849 ../src/iop/ashift.c:6291 -#: ../src/iop/basicadj.c:632 ../src/iop/flip.c:472 ../src/iop/flip.c:474 -#: ../src/iop/levels.c:641 ../src/iop/rgblevels.c:1050 +#: ../build/lib/darktable/plugins/introspection_borders.c:218 +#: ../build/lib/darktable/plugins/introspection_borders.c:333 +msgid "basis" +msgstr "base" + +#: ../build/lib/darktable/plugins/introspection_borders.c:347 +#: ../build/lib/darktable/plugins/introspection_borders.c:353 +#: ../src/gui/preferences.c:847 ../src/imageio/format/jpeg.c:604 +#: ../src/iop/ashift.c:6238 ../src/iop/basicadj.c:662 ../src/iop/flip.c:470 +#: ../src/iop/flip.c:472 ../src/iop/levels.c:657 ../src/iop/rgblevels.c:1105 msgid "auto" msgstr "auto" -#: ../build/lib/darktable/plugins/introspection_borders.c:328 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:309 +#: ../build/lib/darktable/plugins/introspection_borders.c:348 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:315 #: ../src/libs/filters/ratio.c:122 ../src/libs/print_settings.c:2519 msgid "portrait" msgstr "retrato" -#: ../build/lib/darktable/plugins/introspection_borders.c:329 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:305 +#: ../build/lib/darktable/plugins/introspection_borders.c:349 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:311 #: ../src/libs/filters/ratio.c:124 ../src/libs/print_settings.c:2519 msgid "landscape" msgstr "paisagem" +#: ../build/lib/darktable/plugins/introspection_borders.c:354 +#: ../src/iop/relight.c:275 ../src/libs/export.c:1223 +#: ../src/libs/metadata_view.c:151 ../src/libs/print_settings.c:2537 +msgid "width" +msgstr "largura" + +#: ../build/lib/darktable/plugins/introspection_borders.c:355 +#: ../build/lib/darktable/plugins/introspection_watermark.c:326 +#: ../src/libs/export.c:1229 ../src/libs/metadata_view.c:152 +#: ../src/libs/print_settings.c:2541 +msgid "height" +msgstr "altura" + +#: ../build/lib/darktable/plugins/introspection_borders.c:356 +msgid "shorter" +msgstr "mais curto" + +#: ../build/lib/darktable/plugins/introspection_borders.c:357 +msgid "longer" +msgstr "mais longo" + #: ../build/lib/darktable/plugins/introspection_cacorrect.c:42 #: ../build/lib/darktable/plugins/introspection_cacorrect.c:91 msgid "avoid colorshift" @@ -2655,9 +2808,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:67 #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:132 -#: ../src/iop/atrous.c:1522 ../src/iop/bilateral.cc:350 ../src/iop/clahe.c:335 -#: ../src/iop/dither.c:760 ../src/iop/lowpass.c:584 ../src/iop/shadhi.c:675 -#: ../src/iop/sharpen.c:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:340 +#: ../build/lib/darktable/plugins/introspection_lens.cc:501 +#: ../src/iop/atrous.c:1636 ../src/iop/bilateral.cc:352 ../src/iop/clahe.c:337 +#: ../src/iop/dither.c:762 ../src/iop/lowpass.c:597 ../src/iop/shadhi.c:710 +#: ../src/iop/sharpen.c:435 msgid "radius" msgstr "raio" @@ -2665,9 +2820,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:136 #: ../build/lib/darktable/plugins/introspection_highlights.c:137 #: ../build/lib/darktable/plugins/introspection_highlights.c:240 -#: ../src/iop/bloom.c:376 ../src/iop/denoiseprofile.c:3818 -#: ../src/iop/grain.c:584 ../src/iop/hazeremoval.c:201 -#: ../src/iop/hotpixels.c:388 ../src/iop/nlmeans.c:460 ../src/iop/velvia.c:279 +#: ../build/lib/darktable/plugins/introspection_lens.cc:334 +#: ../build/lib/darktable/plugins/introspection_lens.cc:497 +#: ../src/iop/bloom.c:372 ../src/iop/denoiseprofile.c:3822 +#: ../src/iop/grain.c:602 ../src/iop/hazeremoval.c:203 +#: ../src/iop/hotpixels.c:467 ../src/iop/nlmeans.c:463 ../src/iop/velvia.c:288 msgid "strength" msgstr "força" @@ -2682,41 +2839,41 @@ msgstr "aberração cromática muito grande" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:158 -#: ../src/common/collection.c:1507 ../src/common/color_vocabulary.c:232 -#: ../src/common/colorlabels.c:334 ../src/develop/blend_gui.c:2330 -#: ../src/develop/blend_gui.c:2378 ../src/develop/lightroom.c:834 -#: ../src/gui/gtk.c:3137 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:354 -#: ../src/iop/channelmixer.c:618 ../src/iop/channelmixer.c:628 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/colorzones.c:2263 -#: ../src/iop/temperature.c:1935 ../src/iop/temperature.c:2129 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:260 -#: ../src/libs/histogram.c:2397 +#: ../src/common/collection.c:1374 ../src/common/color_vocabulary.c:232 +#: ../src/common/colorlabels.c:333 ../src/develop/blend_gui.c:2346 +#: ../src/develop/blend_gui.c:2394 ../src/develop/lightroom.c:887 +#: ../src/gui/gtk.c:3183 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:356 +#: ../src/iop/channelmixer.c:637 ../src/iop/channelmixer.c:647 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/colorzones.c:2499 +#: ../src/iop/temperature.c:1912 ../src/iop/temperature.c:2094 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:260 +#: ../src/libs/histogram.c:2724 msgid "red" msgstr "vermelho" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:159 -#: ../src/common/collection.c:1511 ../src/common/color_vocabulary.c:277 -#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2336 -#: ../src/develop/blend_gui.c:2384 ../src/develop/lightroom.c:838 -#: ../src/gui/gtk.c:3138 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:359 -#: ../src/iop/channelmixer.c:619 ../src/iop/channelmixer.c:634 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/colorzones.c:2266 -#: ../src/iop/temperature.c:1919 ../src/iop/temperature.c:1937 -#: ../src/iop/temperature.c:2130 ../src/libs/collect.c:1791 -#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2389 +#: ../src/common/collection.c:1378 ../src/common/color_vocabulary.c:277 +#: ../src/common/colorlabels.c:335 ../src/develop/blend_gui.c:2352 +#: ../src/develop/blend_gui.c:2400 ../src/develop/lightroom.c:891 +#: ../src/gui/gtk.c:3184 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:361 +#: ../src/iop/channelmixer.c:638 ../src/iop/channelmixer.c:653 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/colorzones.c:2502 +#: ../src/iop/temperature.c:1896 ../src/iop/temperature.c:1914 +#: ../src/iop/temperature.c:2095 ../src/libs/collect.c:1916 +#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2715 msgid "green" msgstr "verde" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:160 -#: ../src/common/collection.c:1513 ../src/common/color_vocabulary.c:324 -#: ../src/common/colorlabels.c:337 ../src/develop/blend_gui.c:2342 -#: ../src/develop/blend_gui.c:2390 ../src/develop/lightroom.c:840 -#: ../src/gui/gtk.c:3139 ../src/iop/bilateral.cc:364 -#: ../src/iop/channelmixer.c:620 ../src/iop/channelmixer.c:640 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/colorzones.c:2268 -#: ../src/iop/temperature.c:1939 ../src/iop/temperature.c:2131 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:263 -#: ../src/libs/histogram.c:2381 +#: ../src/common/collection.c:1380 ../src/common/color_vocabulary.c:324 +#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2358 +#: ../src/develop/blend_gui.c:2406 ../src/develop/lightroom.c:893 +#: ../src/gui/gtk.c:3185 ../src/iop/bilateral.cc:366 +#: ../src/iop/channelmixer.c:639 ../src/iop/channelmixer.c:659 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/colorzones.c:2504 +#: ../src/iop/temperature.c:1916 ../src/iop/temperature.c:2096 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:263 +#: ../src/libs/histogram.c:2706 msgid "blue" msgstr "azul" @@ -2959,7 +3116,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:303 #: ../build/lib/darktable/plugins/introspection_crop.c:61 #: ../build/lib/darktable/plugins/introspection_crop.c:134 -#: ../src/gui/gtk.c:1141 ../src/iop/atrous.c:1518 +#: ../src/gui/gtk.c:1234 ../src/iop/atrous.c:1632 msgid "left" msgstr "esquerda" @@ -2967,7 +3124,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:307 #: ../build/lib/darktable/plugins/introspection_crop.c:67 #: ../build/lib/darktable/plugins/introspection_crop.c:138 -#: ../src/gui/accelerators.c:113 ../src/gui/gtk.c:1155 +#: ../src/gui/accelerators.c:131 ../src/gui/gtk.c:1240 msgid "top" msgstr "superior" @@ -2975,7 +3132,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:311 #: ../build/lib/darktable/plugins/introspection_crop.c:73 #: ../build/lib/darktable/plugins/introspection_crop.c:142 -#: ../src/gui/gtk.c:1148 ../src/iop/atrous.c:1517 +#: ../src/gui/gtk.c:1237 ../src/iop/atrous.c:1631 msgid "right" msgstr "direita" @@ -2983,7 +3140,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:315 #: ../build/lib/darktable/plugins/introspection_crop.c:79 #: ../build/lib/darktable/plugins/introspection_crop.c:146 -#: ../src/gui/accelerators.c:114 ../src/gui/gtk.c:1162 +#: ../src/gui/accelerators.c:132 ../src/gui/gtk.c:1243 msgid "bottom" msgstr "inferior" @@ -3022,10 +3179,11 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:477 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:489 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:501 -#: ../src/develop/blend_gui.c:2356 ../src/develop/blend_gui.c:2404 -#: ../src/iop/atrous.c:1667 ../src/iop/channelmixerrgb.c:4457 -#: ../src/iop/channelmixerrgb.c:4573 ../src/iop/colorbalancergb.c:1895 -#: ../src/iop/colorzones.c:2402 ../src/iop/nlmeans.c:468 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 +#: ../src/develop/blend_gui.c:2372 ../src/develop/blend_gui.c:2420 +#: ../src/iop/atrous.c:1801 ../src/iop/channelmixerrgb.c:4525 +#: ../src/iop/channelmixerrgb.c:4641 ../src/iop/colorbalancergb.c:1966 +#: ../src/iop/colorzones.c:2645 ../src/iop/nlmeans.c:471 msgid "chroma" msgstr "croma" @@ -3045,11 +3203,11 @@ #: ../build/lib/darktable/plugins/introspection_splittoning.c:73 #: ../build/lib/darktable/plugins/introspection_splittoning.c:134 #: ../build/lib/darktable/plugins/introspection_splittoning.c:142 -#: ../src/develop/blend_gui.c:2315 ../src/develop/blend_gui.c:2349 -#: ../src/develop/blend_gui.c:2411 ../src/iop/channelmixer.c:615 -#: ../src/iop/channelmixerrgb.c:4450 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/colorbalance.c:2042 ../src/iop/colorize.c:330 -#: ../src/iop/colorreconstruction.c:1240 ../src/iop/colorzones.c:2403 +#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2365 +#: ../src/develop/blend_gui.c:2427 ../src/iop/channelmixer.c:634 +#: ../src/iop/channelmixerrgb.c:4518 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/colorbalance.c:2017 ../src/iop/colorize.c:343 +#: ../src/iop/colorreconstruction.c:1249 ../src/iop/colorzones.c:2646 msgid "hue" msgstr "matiz" @@ -3076,9 +3234,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:569 #: ../build/lib/darktable/plugins/introspection_toneequal.c:156 #: ../build/lib/darktable/plugins/introspection_toneequal.c:297 -#: ../src/iop/bilat.c:469 ../src/iop/colorbalance.c:2099 -#: ../src/iop/negadoctor.c:915 ../src/iop/shadhi.c:671 -#: ../src/iop/splittoning.c:507 +#: ../src/iop/bilat.c:479 ../src/iop/colorbalance.c:2074 +#: ../src/iop/negadoctor.c:934 ../src/iop/shadhi.c:706 +#: ../src/iop/splittoning.c:503 msgid "shadows" msgstr "sombras" @@ -3090,9 +3248,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:561 #: ../build/lib/darktable/plugins/introspection_toneequal.c:180 #: ../build/lib/darktable/plugins/introspection_toneequal.c:313 -#: ../src/iop/bilat.c:463 ../src/iop/colorbalance.c:2101 -#: ../src/iop/monochrome.c:561 ../src/iop/shadhi.c:672 -#: ../src/iop/splittoning.c:514 +#: ../src/iop/bilat.c:473 ../src/iop/colorbalance.c:2076 +#: ../src/iop/monochrome.c:583 ../src/iop/shadhi.c:707 +#: ../src/iop/splittoning.c:510 msgid "highlights" msgstr "realces" @@ -3109,13 +3267,13 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:565 #: ../build/lib/darktable/plugins/introspection_toneequal.c:168 #: ../build/lib/darktable/plugins/introspection_toneequal.c:305 -#: ../src/iop/colorbalance.c:2100 +#: ../src/iop/colorbalance.c:2075 msgid "mid-tones" msgstr "meios-tons" #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:340 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:537 -#: ../src/iop/filmic.c:1576 +#: ../src/iop/filmic.c:1601 msgid "global saturation" msgstr "saturação global" @@ -3146,12 +3304,12 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:412 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:585 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:64 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:137 -#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:607 ../src/iop/bilat.c:458 -#: ../src/iop/colisa.c:304 ../src/iop/colorbalance.c:1947 -#: ../src/iop/colorbalance.c:1953 ../src/iop/filmic.c:1548 -#: ../src/iop/filmicrgb.c:4551 ../src/iop/lowpass.c:586 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:116 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:237 +#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:637 ../src/iop/bilat.c:468 +#: ../src/iop/colisa.c:298 ../src/iop/colorbalance.c:1922 +#: ../src/iop/colorbalance.c:1928 ../src/iop/filmic.c:1573 +#: ../src/iop/filmicrgb.c:4615 ../src/iop/lowpass.c:599 msgid "contrast" msgstr "contraste" @@ -3178,33 +3336,35 @@ msgid "blue-yellow contrast" msgstr "contraste azul-amarelo" -#: ../build/lib/darktable/plugins/introspection_colorin.c:148 -#: ../build/lib/darktable/plugins/introspection_colorin.c:231 +#: ../build/lib/darktable/plugins/introspection_colorin.c:150 +#: ../build/lib/darktable/plugins/introspection_colorin.c:233 msgid "gamut clipping" msgstr "recorte de gama" -#: ../build/lib/darktable/plugins/introspection_colorin.c:301 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:201 -#: ../src/common/colorspaces.c:1251 ../src/common/colorspaces.c:1484 +#: ../build/lib/darktable/plugins/introspection_colorin.c:304 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:312 +#: ../src/common/colorspaces.c:1410 ../src/common/colorspaces.c:1700 #: ../src/libs/print_settings.c:1356 msgid "sRGB" msgstr "sRGB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:302 -#: ../src/common/colorspaces.c:1260 ../src/common/colorspaces.c:1486 +#: ../build/lib/darktable/plugins/introspection_colorin.c:305 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:311 +#: ../src/common/colorspaces.c:1421 ../src/common/colorspaces.c:1702 #: ../src/libs/print_settings.c:1363 msgid "Adobe RGB (compatible)" msgstr "Adobe RGB (compatível)" -#: ../build/lib/darktable/plugins/introspection_colorin.c:303 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 -#: ../src/common/colorspaces.c:1265 ../src/common/colorspaces.c:1488 +#: ../build/lib/darktable/plugins/introspection_colorin.c:306 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 +#: ../src/common/colorspaces.c:1428 ../src/common/colorspaces.c:1704 msgid "linear Rec709 RGB" msgstr "RGB Rec709 linear" -#: ../build/lib/darktable/plugins/introspection_colorin.c:304 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 -#: ../src/common/colorspaces.c:1274 ../src/common/colorspaces.c:1490 +#: ../build/lib/darktable/plugins/introspection_colorin.c:307 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:206 +#: ../src/common/colorspaces.c:1442 ../src/common/colorspaces.c:1706 msgid "linear Rec2020 RGB" msgstr "RGB Rec2020 linear" @@ -3232,7 +3392,7 @@ #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:127 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:45 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:92 -#: ../src/iop/shadhi.c:686 +#: ../src/iop/shadhi.c:721 msgid "spatial extent" msgstr "extensão espacial" @@ -3242,7 +3402,7 @@ msgstr "extensão da faixa" #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:154 -#: ../src/iop/channelmixerrgb.c:4669 +#: ../src/iop/channelmixerrgb.c:4737 msgid "saturated colors" msgstr "cores saturadas" @@ -3256,7 +3416,7 @@ #: ../build/lib/darktable/plugins/introspection_colorzones.c:233 #: ../build/lib/darktable/plugins/introspection_soften.c:66 #: ../build/lib/darktable/plugins/introspection_soften.c:121 -#: ../src/iop/atrous.c:1689 +#: ../src/iop/atrous.c:1835 msgid "mix" msgstr "mistura" @@ -3266,33 +3426,17 @@ msgstr "modo de processamento" #: ../build/lib/darktable/plugins/introspection_colorzones.c:255 -#: ../src/develop/blend_gui.c:2294 ../src/iop/channelmixer.c:617 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/colorchecker.c:1448 -#: ../src/iop/colorize.c:349 ../src/iop/colorzones.c:2401 -#: ../src/iop/exposure.c:1239 +#: ../src/develop/blend_gui.c:2310 ../src/iop/channelmixer.c:636 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/colorchecker.c:1453 +#: ../src/iop/colorize.c:362 ../src/iop/colorzones.c:2644 +#: ../src/iop/exposure.c:1257 msgid "lightness" msgstr "luminosidade" -#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 -#: ../src/develop/blend_gui.c:2310 ../src/iop/basicadj.c:624 -#: ../src/iop/channelmixer.c:616 ../src/iop/colisa.c:306 -#: ../src/iop/colorbalance.c:2059 ../src/iop/colorbalancergb.c:1919 -#: ../src/iop/colorchecker.c:1483 ../src/iop/colorcontrast.c:90 -#: ../src/iop/colorcorrection.c:275 ../src/iop/colorize.c:343 -#: ../src/iop/lowpass.c:588 ../src/iop/soften.c:373 ../src/iop/velvia.c:84 -#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:971 -msgid "saturation" -msgstr "saturação" - #: ../build/lib/darktable/plugins/introspection_colorzones.c:267 -#: ../src/iop/atrous.c:1309 ../src/iop/atrous.c:1313 -#: ../src/iop/denoiseprofile.c:3527 ../src/iop/rawdenoise.c:755 +#: ../src/iop/atrous.c:1410 ../src/iop/atrous.c:1414 +#: ../src/iop/denoiseprofile.c:3531 ../src/iop/rawdenoise.c:771 +#: ../src/iop/sigmoid.c:292 msgid "smooth" msgstr "suave" @@ -3309,9 +3453,9 @@ #: ../build/lib/darktable/plugins/introspection_defringe.c:106 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:230 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:435 -#: ../src/iop/atrous.c:1572 ../src/iop/bloom.c:372 -#: ../src/iop/colorreconstruction.c:1236 ../src/iop/hotpixels.c:384 -#: ../src/iop/sharpen.c:449 +#: ../src/iop/atrous.c:1695 ../src/iop/bloom.c:368 +#: ../src/iop/colorreconstruction.c:1245 ../src/iop/hotpixels.c:463 +#: ../src/iop/sharpen.c:444 msgid "threshold" msgstr "limite" @@ -3446,7 +3590,7 @@ #. history #: ../build/lib/darktable/plugins/introspection_demosaic.c:232 -#: ../src/common/collection.c:1526 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1394 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "basic" msgstr "básico" @@ -3519,12 +3663,9 @@ msgid "upgrade profiled transform" msgstr "atualização do modelo" -#. -#. * Color mode combo box -#. #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:257 #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:388 -#: ../src/imageio/format/avif.c:786 ../src/libs/colorpicker.c:584 +#: ../src/libs/colorpicker.c:659 msgid "color mode" msgstr "modo de cor" @@ -3549,7 +3690,7 @@ msgstr "calcula variância" #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:410 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:266 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:292 msgid "RGB" msgstr "RGB" @@ -3560,7 +3701,7 @@ #. two more sharpness (standard & strong) #: ../build/lib/darktable/plugins/introspection_diffuse.c:123 #: ../build/lib/darktable/plugins/introspection_diffuse.c:248 -#: ../src/iop/atrous.c:1564 ../src/iop/diffuse.c:630 ../src/iop/highpass.c:381 +#: ../src/iop/atrous.c:1685 ../src/iop/diffuse.c:657 ../src/iop/highpass.c:376 msgid "sharpness" msgstr "nitidez" @@ -3724,7 +3865,7 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:212 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:423 -#: ../src/iop/filmic.c:1489 +#: ../src/iop/filmic.c:1514 msgid "middle gray luminance" msgstr "luminância de cinza médio" @@ -3732,13 +3873,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:427 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:97 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:166 -#: ../src/iop/filmic.c:1514 +#: ../src/iop/filmic.c:1539 msgid "black relative exposure" msgstr "exposição relativa de preto" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:224 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:431 -#: ../src/iop/filmic.c:1501 +#: ../src/iop/filmic.c:1526 msgid "white relative exposure" msgstr "exposição relativa de branco" @@ -3769,19 +3910,19 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:266 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:459 -#: ../src/iop/filmic.c:1646 +#: ../src/iop/filmic.c:1671 msgid "target middle gray" msgstr "cinza médio alvo" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:272 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:463 -#: ../src/iop/filmic.c:1637 +#: ../src/iop/filmic.c:1662 msgid "target black luminance" msgstr "luminância de preto alvo" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:278 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:467 -#: ../src/iop/filmic.c:1655 +#: ../src/iop/filmic.c:1680 msgid "target white luminance" msgstr "luminância de branco alvo" @@ -3789,13 +3930,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:471 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:69 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:140 -#: ../src/libs/masks.c:106 +#: ../src/libs/masks.c:107 msgid "hardness" msgstr "dureza" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:302 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:483 -#: ../src/iop/filmic.c:1586 ../src/iop/filmicrgb.c:4729 +#: ../src/iop/filmic.c:1611 ../src/iop/filmicrgb.c:4793 msgid "extreme luminance saturation" msgstr "saturação para luminância extrema" @@ -3866,11 +4007,11 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:549 #: ../build/lib/darktable/plugins/introspection_toneequal.c:371 -#: ../src/common/database.c:2785 ../src/common/variables.c:705 -#: ../src/develop/imageop_gui.c:209 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 +#: ../src/common/variables.c:714 ../src/develop/imageop_gui.c:209 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 msgid "no" msgstr "não" @@ -3972,9 +4113,25 @@ msgid "density" msgstr "densidade" +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 +#: ../src/develop/blend_gui.c:2326 ../src/iop/basicadj.c:654 +#: ../src/iop/channelmixer.c:635 ../src/iop/colisa.c:300 +#: ../src/iop/colorbalance.c:2034 ../src/iop/colorbalancergb.c:1990 +#: ../src/iop/colorchecker.c:1488 ../src/iop/colorcontrast.c:82 +#: ../src/iop/colorcorrection.c:268 ../src/iop/colorize.c:356 +#: ../src/iop/lowpass.c:601 ../src/iop/soften.c:368 ../src/iop/velvia.c:75 +#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:1058 +msgid "saturation" +msgstr "saturação" + #: ../build/lib/darktable/plugins/introspection_grain.c:58 #: ../build/lib/darktable/plugins/introspection_grain.c:117 -#: ../src/iop/bilat.c:450 +#: ../src/iop/bilat.c:460 msgid "coarseness" msgstr "granularidade" @@ -3987,7 +4144,7 @@ #: ../build/lib/darktable/plugins/introspection_highlights.c:143 #: ../build/lib/darktable/plugins/introspection_highlights.c:244 -#: ../src/views/darkroom.c:2406 +#: ../src/views/darkroom.c:2245 msgid "clipping threshold" msgstr "limiar de corte" @@ -4123,168 +4280,172 @@ msgid "detect by 3 neighbors" msgstr "detectar por 3 vizinhos" -#: ../build/lib/darktable/plugins/introspection_lens.cc:162 -#: ../build/lib/darktable/plugins/introspection_lens.cc:337 +#: ../build/lib/darktable/plugins/introspection_lens.cc:190 +#: ../build/lib/darktable/plugins/introspection_lens.cc:401 msgid "correction method" msgstr "modo de correção" #. Page CORRECTIONS -#: ../build/lib/darktable/plugins/introspection_lens.cc:168 -#: ../build/lib/darktable/plugins/introspection_lens.cc:341 -#: ../src/iop/negadoctor.c:900 +#: ../build/lib/darktable/plugins/introspection_lens.cc:196 +#: ../build/lib/darktable/plugins/introspection_lens.cc:405 +#: ../src/iop/negadoctor.c:919 msgid "corrections" msgstr "correções" #. mode choice -#. Add check to control whether the style is to replace or append the current module -#: ../build/lib/darktable/plugins/introspection_lens.cc:174 -#: ../build/lib/darktable/plugins/introspection_lens.cc:345 +#: ../build/lib/darktable/plugins/introspection_lens.cc:202 +#: ../build/lib/darktable/plugins/introspection_lens.cc:409 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:128 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:219 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:51 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:118 -#: ../src/iop/bilat.c:428 ../src/iop/colorbalance.c:1909 -#: ../src/iop/denoiseprofile.c:3806 ../src/iop/exposure.c:1157 -#: ../src/iop/levels.c:684 ../src/iop/profile_gamma.c:668 -#: ../src/libs/copy_history.c:399 ../src/libs/export.c:1262 -#: ../src/libs/image.c:597 ../src/libs/print_settings.c:2875 -#: ../src/libs/styles.c:846 ../src/views/darkroom.c:2387 +#: ../src/develop/blend_gui.c:3546 ../src/iop/bilat.c:438 +#: ../src/iop/colorbalance.c:1884 ../src/iop/denoiseprofile.c:3810 +#: ../src/iop/exposure.c:1175 ../src/iop/levels.c:700 +#: ../src/iop/profile_gamma.c:682 ../src/libs/copy_history.c:399 +#: ../src/libs/export.c:1376 ../src/libs/image.c:666 +#: ../src/libs/print_settings.c:2875 ../src/libs/styles.c:850 +#: ../src/views/darkroom.c:2226 msgid "mode" msgstr "modo" -#: ../build/lib/darktable/plugins/introspection_lens.cc:210 -#: ../build/lib/darktable/plugins/introspection_lens.cc:369 -#: ../src/iop/lens.cc:3820 +#: ../build/lib/darktable/plugins/introspection_lens.cc:238 +#: ../build/lib/darktable/plugins/introspection_lens.cc:433 +#: ../src/iop/lens.cc:4474 msgid "target geometry" msgstr "geometria alvo" -#: ../build/lib/darktable/plugins/introspection_lens.cc:240 -#: ../build/lib/darktable/plugins/introspection_lens.cc:389 +#: ../build/lib/darktable/plugins/introspection_lens.cc:268 +#: ../build/lib/darktable/plugins/introspection_lens.cc:453 msgid "TCA overwrite" msgstr "sobrescrever ACT" -#: ../build/lib/darktable/plugins/introspection_lens.cc:246 -#: ../build/lib/darktable/plugins/introspection_lens.cc:393 +#: ../build/lib/darktable/plugins/introspection_lens.cc:274 +#: ../build/lib/darktable/plugins/introspection_lens.cc:298 +#: ../build/lib/darktable/plugins/introspection_lens.cc:457 +#: ../build/lib/darktable/plugins/introspection_lens.cc:473 msgid "TCA red" msgstr "ACT vermelho" -#: ../build/lib/darktable/plugins/introspection_lens.cc:252 -#: ../build/lib/darktable/plugins/introspection_lens.cc:397 +#: ../build/lib/darktable/plugins/introspection_lens.cc:280 +#: ../build/lib/darktable/plugins/introspection_lens.cc:304 +#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:477 msgid "TCA blue" msgstr "ACT azul" -#: ../build/lib/darktable/plugins/introspection_lens.cc:258 -#: ../build/lib/darktable/plugins/introspection_lens.cc:401 -msgid "distortion fine-tune" -msgstr "ajuste fino de distorção" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:264 -#: ../build/lib/darktable/plugins/introspection_lens.cc:405 -msgid "vignetting fine-tune" -msgstr "ajuste fino de vinheta" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:270 -#: ../build/lib/darktable/plugins/introspection_lens.cc:409 -msgid "TCA red fine-tune" -msgstr "ajuste fino de TCA vermelho" +#: ../build/lib/darktable/plugins/introspection_lens.cc:286 +#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +msgid "distortion" +msgstr "distorção" -#: ../build/lib/darktable/plugins/introspection_lens.cc:276 -#: ../build/lib/darktable/plugins/introspection_lens.cc:413 -msgid "TCA blue fine-tune" -msgstr "ajuste fino de TCA azul" +#: ../build/lib/darktable/plugins/introspection_lens.cc:292 +#: ../build/lib/darktable/plugins/introspection_lens.cc:469 +#: ../src/iop/vignette.c:114 +msgid "vignetting" +msgstr "vinheta" -#: ../build/lib/darktable/plugins/introspection_lens.cc:282 -#: ../build/lib/darktable/plugins/introspection_lens.cc:417 +#: ../build/lib/darktable/plugins/introspection_lens.cc:310 +#: ../build/lib/darktable/plugins/introspection_lens.cc:481 msgid "scale fine-tune" msgstr "ajuste fino de escala" -#: ../build/lib/darktable/plugins/introspection_lens.cc:294 -#: ../build/lib/darktable/plugins/introspection_lens.cc:425 +#: ../build/lib/darktable/plugins/introspection_lens.cc:322 +#: ../build/lib/darktable/plugins/introspection_lens.cc:489 msgid "image scale" msgstr "escala da imagem" -#: ../build/lib/darktable/plugins/introspection_lens.cc:439 +#: ../build/lib/darktable/plugins/introspection_lens.cc:346 +#: ../build/lib/darktable/plugins/introspection_lens.cc:505 +msgid "steepness" +msgstr "inclunação" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:527 msgid "embedded metadata" msgstr "metadados embutidos" -#: ../build/lib/darktable/plugins/introspection_lens.cc:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:528 msgid "Lensfun database" msgstr "base de dados Lensfun" +#: ../build/lib/darktable/plugins/introspection_lens.cc:529 +msgid "only manual vignette" +msgstr "apenas vinheta manual" + #. get nice text for bounds #. Side-border hide/show -#: ../build/lib/darktable/plugins/introspection_lens.cc:445 -#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2367 -#: ../src/gui/accelerators.c:2447 ../src/gui/gtk.c:1204 ../src/gui/gtk.c:3136 -#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3709 -#: ../src/iop/rawdenoise.c:893 ../src/libs/collect.c:3066 -#: ../src/libs/filtering.c:1459 ../src/libs/filters/colors.c:157 +#: ../build/lib/darktable/plugins/introspection_lens.cc:534 +#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2592 +#: ../src/gui/accelerators.c:2674 ../src/gui/gtk.c:1282 ../src/gui/gtk.c:3182 +#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3713 +#: ../src/iop/rawdenoise.c:909 ../src/libs/collect.c:3413 +#: ../src/libs/filtering.c:1521 ../src/libs/filters/colors.c:157 #: ../src/libs/filters/colors.c:265 ../src/libs/filters/rating.c:211 msgid "all" msgstr "tudo" -#: ../build/lib/darktable/plugins/introspection_lens.cc:446 +#: ../build/lib/darktable/plugins/introspection_lens.cc:535 msgid "distortion & TCA" msgstr "distorção & ACT" -#: ../build/lib/darktable/plugins/introspection_lens.cc:447 +#: ../build/lib/darktable/plugins/introspection_lens.cc:536 msgid "distortion & vignetting" msgstr "distorção & vinheta" -#: ../build/lib/darktable/plugins/introspection_lens.cc:448 +#: ../build/lib/darktable/plugins/introspection_lens.cc:537 msgid "TCA & vignetting" msgstr "ACT & vinheta" -#: ../build/lib/darktable/plugins/introspection_lens.cc:449 +#: ../build/lib/darktable/plugins/introspection_lens.cc:538 msgid "only distortion" msgstr "apenas distorção" -#: ../build/lib/darktable/plugins/introspection_lens.cc:450 +#: ../build/lib/darktable/plugins/introspection_lens.cc:539 msgid "only TCA" msgstr "apenas ACT" -#: ../build/lib/darktable/plugins/introspection_lens.cc:451 +#: ../build/lib/darktable/plugins/introspection_lens.cc:540 msgid "only vignetting" msgstr "apenas vinheta" -#: ../build/lib/darktable/plugins/introspection_lens.cc:455 -#: ../src/libs/modulegroups.c:2318 +#: ../build/lib/darktable/plugins/introspection_lens.cc:544 +#: ../src/libs/modulegroups.c:2302 msgid "correct" msgstr "corrigir" -#: ../build/lib/darktable/plugins/introspection_lens.cc:456 +#: ../build/lib/darktable/plugins/introspection_lens.cc:545 msgid "distort" msgstr "distorcer" -#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:550 msgid "rectilinear" msgstr "retilínea" -#: ../build/lib/darktable/plugins/introspection_lens.cc:462 +#: ../build/lib/darktable/plugins/introspection_lens.cc:551 msgid "fisheye" msgstr "olho de peixe" -#: ../build/lib/darktable/plugins/introspection_lens.cc:463 +#: ../build/lib/darktable/plugins/introspection_lens.cc:552 msgid "panoramic" msgstr "panorâmica" -#: ../build/lib/darktable/plugins/introspection_lens.cc:464 +#: ../build/lib/darktable/plugins/introspection_lens.cc:553 msgid "equirectangular" msgstr "equiretangular" -#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +#: ../build/lib/darktable/plugins/introspection_lens.cc:554 msgid "orthographic" msgstr "ortográfica" -#: ../build/lib/darktable/plugins/introspection_lens.cc:466 +#: ../build/lib/darktable/plugins/introspection_lens.cc:555 msgid "stereographic" msgstr "estereográfica" -#: ../build/lib/darktable/plugins/introspection_lens.cc:467 +#: ../build/lib/darktable/plugins/introspection_lens.cc:556 msgid "equisolid angle" msgstr "ângulo equisólido" -#: ../build/lib/darktable/plugins/introspection_lens.cc:468 +#: ../build/lib/darktable/plugins/introspection_lens.cc:557 msgid "Thoby fisheye" msgstr "olho de peixe Thoby" @@ -4294,8 +4455,8 @@ #. move left/right/up/down #: ../build/lib/darktable/plugins/introspection_liquify.c:429 -#: ../src/views/darkroom.c:2282 ../src/views/darkroom.c:2676 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:765 +#: ../src/views/darkroom.c:2121 ../src/views/darkroom.c:2522 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:765 #: ../src/views/lighttable.c:774 ../src/views/lighttable.c:1246 #: ../src/views/lighttable.c:1250 ../src/views/lighttable.c:1254 #: ../src/views/lighttable.c:1258 ../src/views/lighttable.c:1262 @@ -4307,8 +4468,8 @@ msgstr "linha" #: ../build/lib/darktable/plugins/introspection_liquify.c:431 -#: ../src/iop/basecurve.c:2186 ../src/iop/rgbcurve.c:1387 -#: ../src/iop/tonecurve.c:1149 +#: ../src/iop/basecurve.c:2207 ../src/iop/rgbcurve.c:1387 +#: ../src/iop/tonecurve.c:1171 msgid "curve" msgstr "curva" @@ -4344,28 +4505,33 @@ msgid "bilateral filter" msgstr "filtro bilateral" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:76 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:163 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:77 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:164 msgid "application color space" msgstr "espaço de cor" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 msgid "Adobe RGB" msgstr "Adobe RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 msgid "gamma Rec709 RGB" msgstr "gama Rec709 RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:209 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:207 +#: ../src/common/colorspaces.c:1486 ../src/common/colorspaces.c:1740 +msgid "linear ProPhoto RGB" +msgstr "RGB ProPhoto linear" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 msgid "tetrahedral" msgstr "tetraédrico" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:210 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:212 msgid "trilinear" msgstr "trilinear" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:213 msgid "pyramid" msgstr "piramidal" @@ -4386,7 +4552,7 @@ #: ../build/lib/darktable/plugins/introspection_negadoctor.c:144 #: ../build/lib/darktable/plugins/introspection_negadoctor.c:239 -#: ../src/iop/negadoctor.c:992 +#: ../src/iop/negadoctor.c:1011 msgid "paper grade (gamma)" msgstr "graduação do papel (gama)" @@ -4401,15 +4567,57 @@ msgstr "ajustar a exposição" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:261 -#: ../src/iop/negadoctor.c:417 +#: ../src/iop/negadoctor.c:431 msgid "black and white film" msgstr "filme preto e branco" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:262 -#: ../src/iop/negadoctor.c:402 +#: ../src/iop/negadoctor.c:416 msgid "color film" msgstr "filme colorido" +#: ../build/lib/darktable/plugins/introspection_primaries.c:75 +#: ../build/lib/darktable/plugins/introspection_primaries.c:160 +#: ../src/iop/primaries.c:406 +msgid "tint hue" +msgstr "matiz" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:81 +#: ../build/lib/darktable/plugins/introspection_primaries.c:164 +#: ../src/iop/primaries.c:413 +msgid "tint purity" +msgstr "pureza da matiz" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:87 +#: ../build/lib/darktable/plugins/introspection_primaries.c:168 +msgid "red hue" +msgstr "matiz vermelho" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:93 +#: ../build/lib/darktable/plugins/introspection_primaries.c:172 +msgid "red purity" +msgstr "pureza do vermelho" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:99 +#: ../build/lib/darktable/plugins/introspection_primaries.c:176 +msgid "green hue" +msgstr "matiz verde" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:105 +#: ../build/lib/darktable/plugins/introspection_primaries.c:180 +msgid "green purity" +msgstr "pureza do verde" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:111 +#: ../build/lib/darktable/plugins/introspection_primaries.c:184 +msgid "blue hue" +msgstr "matiz azul" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:117 +#: ../build/lib/darktable/plugins/introspection_primaries.c:188 +msgid "blue purity" +msgstr "pureza do azul" + #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:85 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:158 msgid "dynamic range" @@ -4422,7 +4630,7 @@ #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:103 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:170 -#: ../src/iop/filmic.c:1526 +#: ../src/iop/filmic.c:1551 msgid "safety factor" msgstr "fator de segurança" @@ -4431,7 +4639,7 @@ msgstr "logarítmico" #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:185 -#: ../src/iop/profile_gamma.c:625 +#: ../src/iop/profile_gamma.c:639 msgid "gamma" msgstr "gama" @@ -4469,7 +4677,7 @@ #: ../build/lib/darktable/plugins/introspection_rawprepare.c:106 #: ../build/lib/darktable/plugins/introspection_rawprepare.c:179 -#: ../src/iop/rawprepare.c:946 +#: ../src/iop/rawprepare.c:954 msgid "white point" msgstr "ponto de branco" @@ -4485,9 +4693,9 @@ #. exposure #: ../build/lib/darktable/plugins/introspection_relight.c:43 #: ../build/lib/darktable/plugins/introspection_relight.c:98 -#: ../src/common/collection.c:720 ../src/gui/preferences.c:836 -#: ../src/gui/presets.c:684 ../src/iop/basicadj.c:598 ../src/iop/exposure.c:122 -#: ../src/iop/exposure.c:1117 ../src/libs/metadata_view.c:141 +#: ../src/common/collection.c:633 ../src/gui/preferences.c:834 +#: ../src/gui/presets.c:687 ../src/iop/basicadj.c:628 ../src/iop/exposure.c:122 +#: ../src/iop/exposure.c:1135 ../src/libs/metadata_view.c:143 msgid "exposure" msgstr "exposição" @@ -4498,9 +4706,9 @@ #: ../build/lib/darktable/plugins/introspection_retouch.c:285 #: ../build/lib/darktable/plugins/introspection_retouch.c:426 -#: ../src/iop/basicadj.c:620 ../src/iop/channelmixerrgb.c:4617 -#: ../src/iop/colisa.c:305 ../src/iop/lowpass.c:587 ../src/iop/soften.c:377 -#: ../src/iop/vignette.c:970 ../src/libs/history.c:963 +#: ../src/iop/basicadj.c:650 ../src/iop/channelmixerrgb.c:4685 +#: ../src/iop/colisa.c:299 ../src/iop/lowpass.c:600 ../src/iop/soften.c:372 +#: ../src/iop/vignette.c:1057 ../src/libs/history.c:963 msgid "brightness" msgstr "brilho" @@ -4510,7 +4718,7 @@ msgstr "max_iter" #: ../build/lib/darktable/plugins/introspection_retouch.c:444 -#: ../src/libs/metadata_view.c:329 +#: ../src/libs/metadata_view.c:333 msgid "unused" msgstr "não utilizado" @@ -4523,12 +4731,12 @@ msgstr "reparar" #: ../build/lib/darktable/plugins/introspection_retouch.c:447 -#: ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2051 msgid "blur" msgstr "desfoque" #: ../build/lib/darktable/plugins/introspection_retouch.c:448 -#: ../src/iop/retouch.c:1865 +#: ../src/iop/retouch.c:2049 msgid "fill" msgstr "preenchimento" @@ -4541,9 +4749,9 @@ msgstr "apagar" #: ../build/lib/darktable/plugins/introspection_retouch.c:458 -#: ../src/gui/presets.c:59 ../src/iop/watermark.c:1298 -#: ../src/libs/colorpicker.c:291 ../src/libs/image.c:612 -#: ../src/libs/modulegroups.c:2317 +#: ../src/gui/presets.c:61 ../src/iop/watermark.c:1346 +#: ../src/libs/colorpicker.c:320 ../src/libs/image.c:683 +#: ../src/libs/modulegroups.c:2301 msgid "color" msgstr "cor" @@ -4579,45 +4787,93 @@ msgid "highlights color adjustment" msgstr "ajuste de cor nos realces" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:70 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:141 -#: ../src/gui/accelerators.c:85 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:122 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:241 +#: ../src/gui/accelerators.c:101 msgid "skew" msgstr "inclinar" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:76 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:145 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:128 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:245 msgid "target white" msgstr "branco alvo" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:82 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:149 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:134 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:249 msgid "target black" msgstr "preto alvo" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:88 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:153 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:140 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:253 msgid "color processing" msgstr "processamento de cor" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:94 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:157 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:146 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:257 msgid "preserve hue" msgstr "preservar matiz" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:171 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:152 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:261 +msgid "red attenuation" +msgstr "atenuação do vermelho" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:158 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:265 +msgid "red rotation" +msgstr "rotação do vermelho" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:164 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:269 +msgid "green attenuation" +msgstr "atenuação do verde" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:170 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:273 +msgid "green rotation" +msgstr "rotação do verde" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:176 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:277 +msgid "blue attenuation" +msgstr "atenuação do azul" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:182 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:281 +msgid "blue rotation" +msgstr "rotação do azul" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:188 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:285 +msgid "recover purity" +msgstr "recuperar a pureza" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:194 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:289 +msgid "base primaries" +msgstr "primárias base" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:303 msgid "per channel" msgstr "por canal" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:172 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:304 msgid "RGB ratio" msgstr "porporção RGB" -#: ../build/lib/darktable/plugins/introspection_temperature.c:66 -#: ../build/lib/darktable/plugins/introspection_temperature.c:121 -#: ../src/iop/temperature.c:1941 -msgid "emerald" -msgstr "esmeralda" +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:308 +#: ../src/common/colorspaces.c:1377 ../src/common/colorspaces.c:1734 +msgid "work profile" +msgstr "perfil de trabalho" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:309 +msgid "Rec2020" +msgstr "Rec2020" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:310 +#: ../src/common/colorspaces.c:1750 +msgid "Display P3" +msgstr "Display P3" #: ../build/lib/darktable/plugins/introspection_tonecurve.c:135 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:232 @@ -4739,13 +4995,13 @@ #: ../build/lib/darktable/plugins/introspection_tonemap.cc:39 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:88 -#: ../src/iop/rgbcurve.c:184 ../src/iop/tonecurve.c:539 +#: ../src/iop/rgbcurve.c:186 ../src/iop/tonecurve.c:560 msgid "contrast compression" msgstr "compressão de contraste" #: ../build/lib/darktable/plugins/introspection_vibrance.c:33 #: ../build/lib/darktable/plugins/introspection_vibrance.c:76 -#: ../src/iop/basicadj.c:627 ../src/iop/vibrance.c:67 +#: ../src/iop/basicadj.c:657 ../src/iop/vibrance.c:67 msgid "vibrance" msgstr "vivacidade" @@ -4781,7 +5037,7 @@ #: ../build/lib/darktable/plugins/introspection_vignette.c:146 #: ../build/lib/darktable/plugins/introspection_vignette.c:237 -#: ../src/iop/vignette.c:978 +#: ../src/iop/vignette.c:1066 msgid "shape" msgstr "forma" @@ -4820,7 +5076,7 @@ #: ../build/lib/darktable/plugins/introspection_watermark.c:323 #: ../src/imageio/format/tiff.c:125 ../src/imageio/format/xcf.c:159 -#: ../src/iop/borders.c:947 +#: ../src/iop/borders.c:960 msgid "image" msgstr "imagem" @@ -4832,12 +5088,6 @@ msgid "smaller border" msgstr "borda menor" -#: ../build/lib/darktable/plugins/introspection_watermark.c:326 -#: ../src/libs/export.c:1135 ../src/libs/metadata_view.c:148 -#: ../src/libs/print_settings.c:2541 -msgid "height" -msgstr "altura" - #: ../build/lib/darktable/plugins/introspection_watermark.c:327 msgid "advanced options" msgstr "opções avançadas" @@ -4866,23 +5116,23 @@ msgid "marker height" msgstr "altura do marcador" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:6 +#: ../build/bin/tools/darktable_authors.h:6 msgid "developers" msgstr "desenvolvedores" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:11 +#: ../build/bin/tools/darktable_authors.h:11 msgid "translators" msgstr "tradutores" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:16 +#: ../build/bin/tools/darktable_authors.h:16 msgid "contributors" msgstr "contribuidores" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:21 +#: ../build/bin/tools/darktable_authors.h:21 msgid "rawspeed contributors" msgstr "contribuidores do rawspeed" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:26 +#: ../build/bin/tools/darktable_authors.h:26 msgid "integration contributors" msgstr "contribuidores de integração" @@ -4949,90 +5199,104 @@ msgid "Print your images" msgstr "Imprimir suas imagens" -#: ../src/bauhaus/bauhaus.c:752 ../src/bauhaus/bauhaus.c:3689 +#: ../src/bauhaus/bauhaus.c:845 ../src/bauhaus/bauhaus.c:3957 msgid "sliders" msgstr "controles deslizantes" -#: ../src/bauhaus/bauhaus.c:753 ../src/bauhaus/bauhaus.c:3694 +#: ../src/bauhaus/bauhaus.c:847 ../src/bauhaus/bauhaus.c:3962 msgid "dropdowns" msgstr "menus flutuantes" -#: ../src/bauhaus/bauhaus.c:754 ../src/bauhaus/bauhaus.c:3699 +#: ../src/bauhaus/bauhaus.c:849 ../src/bauhaus/bauhaus.c:3967 msgid "buttons" msgstr "botões" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button on" msgstr "botão ligado" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button off" msgstr "botão desligado" -#: ../src/bauhaus/bauhaus.c:3406 +#: ../src/bauhaus/bauhaus.c:3624 msgid "button pressed" msgstr "botão pressionado" -#: ../src/bauhaus/bauhaus.c:3623 +#: ../src/bauhaus/bauhaus.c:3862 msgid "not that many sliders" msgstr "nem tantos controles deslizantes" -#: ../src/bauhaus/bauhaus.c:3633 +#: ../src/bauhaus/bauhaus.c:3876 msgid "not that many dropdowns" msgstr "nem tantos menus flutuantes" -#: ../src/bauhaus/bauhaus.c:3648 +#: ../src/bauhaus/bauhaus.c:3895 msgid "not that many buttons" msgstr "nem tantos botões" -#: ../src/bauhaus/bauhaus.c:3653 ../src/gui/accelerators.c:348 +#: ../src/bauhaus/bauhaus.c:3900 ../src/gui/accelerators.c:389 msgid "value" msgstr "valor" -#: ../src/bauhaus/bauhaus.c:3654 ../src/bauhaus/bauhaus.c:3660 -#: ../src/gui/accelerators.c:326 +#: ../src/bauhaus/bauhaus.c:3901 ../src/bauhaus/bauhaus.c:3907 +#: ../src/gui/accelerators.c:368 msgid "button" msgstr "botão" -#: ../src/bauhaus/bauhaus.c:3655 +#: ../src/bauhaus/bauhaus.c:3902 msgid "force" msgstr "força" -#: ../src/bauhaus/bauhaus.c:3656 ../src/libs/navigation.c:187 -#: ../src/libs/navigation.c:199 +#: ../src/bauhaus/bauhaus.c:3903 ../src/libs/navigation.c:190 +#: ../src/libs/navigation.c:202 msgid "zoom" msgstr "zoom" -#: ../src/bauhaus/bauhaus.c:3659 +#: ../src/bauhaus/bauhaus.c:3906 ../src/libs/select.c:40 msgid "selection" msgstr "seleção" -#: ../src/bauhaus/bauhaus.c:3678 +#: ../src/bauhaus/bauhaus.c:3946 msgid "slider" msgstr "controle deslizante" -#: ../src/bauhaus/bauhaus.c:3683 +#: ../src/bauhaus/bauhaus.c:3951 msgid "dropdown" msgstr "menu flutuante" -#: ../src/chart/main.c:504 ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 ../src/gui/accelerators.c:2278 -#: ../src/gui/accelerators.c:2355 ../src/gui/accelerators.c:2407 -#: ../src/gui/accelerators.c:2435 ../src/gui/accelerators.c:2495 -#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1043 -#: ../src/gui/preferences.c:1082 ../src/gui/presets.c:420 -#: ../src/gui/presets.c:563 ../src/gui/styles_dialog.c:519 -#: ../src/imageio/storage/disk.c:123 ../src/imageio/storage/gallery.c:110 -#: ../src/imageio/storage/latex.c:109 ../src/iop/lut3d.c:1546 -#: ../src/libs/collect.c:408 ../src/libs/copy_history.c:115 -#: ../src/libs/geotagging.c:928 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/styles.c:392 ../src/libs/styles.c:527 -#: ../src/libs/tagging.c:2489 ../src/libs/tagging.c:2525 +#: ../src/chart/main.c:504 ../src/common/database.c:3372 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 ../src/gui/accelerators.c:2497 +#: ../src/gui/accelerators.c:2579 ../src/gui/accelerators.c:2632 +#: ../src/gui/accelerators.c:2661 ../src/gui/accelerators.c:2723 +#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1081 ../src/gui/presets.c:422 +#: ../src/gui/presets.c:565 ../src/gui/styles_dialog.c:526 +#: ../src/imageio/storage/disk.c:198 ../src/imageio/storage/gallery.c:150 +#: ../src/imageio/storage/latex.c:146 ../src/iop/lut3d.c:1560 +#: ../src/libs/collect.c:425 ../src/libs/collect.c:3242 +#: ../src/libs/copy_history.c:115 ../src/libs/export_metadata.c:276 +#: ../src/libs/geotagging.c:929 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1711 +#: ../src/libs/metadata.c:462 ../src/libs/metadata_view.c:1222 +#: ../src/libs/recentcollect.c:228 ../src/libs/modulegroups.c:3466 +#: ../src/libs/styles.c:392 ../src/libs/styles.c:439 ../src/libs/styles.c:529 +#: ../src/libs/styles.c:624 ../src/libs/tagging.c:1488 +#: ../src/libs/tagging.c:1579 ../src/libs/tagging.c:1670 +#: ../src/libs/tagging.c:1806 ../src/libs/tagging.c:2085 +#: ../src/libs/tagging.c:2520 ../src/libs/tagging.c:2556 +#: ../src/libs/tagging.c:3502 msgid "_cancel" msgstr "_cancelar" -#: ../src/chart/main.c:504 ../src/gui/preferences.c:1082 -#: ../src/gui/styles_dialog.c:520 ../src/libs/styles.c:392 +#: ../src/chart/main.c:504 ../src/gui/preferences.c:1081 +#: ../src/gui/styles_dialog.c:527 ../src/libs/collect.c:3243 +#: ../src/libs/export_metadata.c:277 ../src/libs/metadata.c:463 +#: ../src/libs/metadata_view.c:1223 ../src/libs/recentcollect.c:229 +#: ../src/libs/styles.c:392 ../src/libs/tagging.c:1671 +#: ../src/libs/tagging.c:1807 ../src/libs/tagging.c:2086 +#: ../src/libs/tagging.c:3503 msgid "_save" msgstr "_salvar" @@ -5046,64 +5310,64 @@ "média dE: %.02f\n" "máximo dE: %.02f" -#: ../src/cli/main.c:247 +#: ../src/cli/main.c:270 msgid "TODO: sorry, due to API restrictions we currently cannot set the BPP to" msgstr "" "TODO: desculpa, devido a restrições na API não podemos definir BPP para" -#: ../src/cli/main.c:259 +#: ../src/cli/main.c:282 msgid "unknown option for --hq" msgstr "opção desconhecida para --hq" -#: ../src/cli/main.c:275 +#: ../src/cli/main.c:298 msgid "unknown option for --export_masks" msgstr "opção desconhecida para --export_masks" -#: ../src/cli/main.c:291 +#: ../src/cli/main.c:314 msgid "unknown option for --upscale" msgstr "opção desconhecida para --upscale" -#: ../src/cli/main.c:316 +#: ../src/cli/main.c:339 msgid "unknown option for --apply-custom-presets" msgstr "opção desconhecida para --apply-custom-presets" -#: ../src/cli/main.c:327 +#: ../src/cli/main.c:350 msgid "too long ext for --out-ext" msgstr "ext muito longo para --out-ext" -#: ../src/cli/main.c:344 +#: ../src/cli/main.c:367 #, c-format msgid "notice: input file or dir '%s' doesn't exist, skipping\n" msgstr "nota: arquivo de entrada ou diretório '%s' não existe, ignorando\n" -#: ../src/cli/main.c:353 +#: ../src/cli/main.c:376 #, c-format msgid "incorrect ICC type for --icc-type: '%s'\n" msgstr "tipo de ICC incorreto para --icc-type: '%s'\n" -#: ../src/cli/main.c:369 +#: ../src/cli/main.c:392 #, c-format msgid "notice: ICC file '%s' doesn't exist, skipping\n" msgstr "nota: arquivo ICC '%s' não existe, ignorando\n" -#: ../src/cli/main.c:378 +#: ../src/cli/main.c:401 #, c-format msgid "incorrect ICC intent for --icc-intent: '%s'\n" msgstr "intenção ICC incorreta para --icc-intent: '%s'\n" -#: ../src/cli/main.c:396 +#: ../src/cli/main.c:419 #, c-format msgid "warning: unknown option '%s'\n" msgstr "aviso: opção desconhecida: '%s'\n" -#: ../src/cli/main.c:454 +#: ../src/cli/main.c:477 #, c-format msgid "error: input file and import opts specified! that's not supported!\n" msgstr "" "erro: arquivo de entrada e opções de importação especificados! isto não é " "suportado!\n" -#: ../src/cli/main.c:487 +#: ../src/cli/main.c:510 #, c-format msgid "" "notice: output location is a directory. assuming '%s/$(FILE_NAME).%s' output " @@ -5113,48 +5377,48 @@ "$(FILE_NAME).%s'\"" #. output file exists or there's output ext specified and it's same as file... -#: ../src/cli/main.c:502 +#: ../src/cli/main.c:525 msgid "output file already exists, it will get renamed" msgstr "arquivo de saída já existente, ele será renomeado" #. one of inputs was a failure, no prob -#: ../src/cli/main.c:532 +#: ../src/cli/main.c:555 #, c-format msgid "error: can't open folder %s" msgstr "erro: não foi possível abrir a pasta %s" -#: ../src/cli/main.c:549 +#: ../src/cli/main.c:572 #, c-format msgid "error: can't open file %s" msgstr "erro: não foi possível abrir o arquivo %s" -#: ../src/cli/main.c:566 +#: ../src/cli/main.c:589 #, c-format msgid "no images to export, aborting\n" msgstr "nenhuma imagem para exportar, cancelando\n" -#: ../src/cli/main.c:583 +#: ../src/cli/main.c:606 #, c-format msgid "error: can't open XMP file %s" msgstr "erro: não foi possível abrir o arquivo XMP %s" -#: ../src/cli/main.c:604 +#: ../src/cli/main.c:627 msgid "empty history stack" msgstr "esvazia histórico de ações" #. too long ext, no point in wasting time -#: ../src/cli/main.c:616 +#: ../src/cli/main.c:639 #, c-format msgid "too long output file extension: %s\n" msgstr "extensão de arquivo muito longa: %s\n" #. no ext or empty ext, no point in wasting time -#: ../src/cli/main.c:624 +#: ../src/cli/main.c:647 #, c-format msgid "no output file extension given\n" msgstr "nenhuma extensão de arquivo foi dada\n" -#: ../src/cli/main.c:663 +#: ../src/cli/main.c:692 msgid "" "cannot find disk storage module. please check your installation, something " "seems to be broken." @@ -5162,17 +5426,17 @@ "não foi possível encontrar o módulo de armazenamento em disco. por favor, " "verifique sua instalação, algo parece defeituoso." -#: ../src/cli/main.c:673 +#: ../src/cli/main.c:702 msgid "failed to get parameters from storage module, aborting export ..." msgstr "" "falha ao obter parâmetros do módulo de armazenamento, abortando exportação..." -#: ../src/cli/main.c:689 +#: ../src/cli/main.c:718 #, c-format msgid "unknown extension '.%s'" msgstr "extensão desconhecida '.%s'" -#: ../src/cli/main.c:699 +#: ../src/cli/main.c:728 msgid "failed to get parameters from format module, aborting export ..." msgstr "" "falha ao obter parâmetros do módulo de formato, abortando exportação..." @@ -5220,203 +5484,209 @@ "câmera `%s' na porta `%s' precisa ser remontada\n" "certifique-se de que sua câmera permite acesso e que não está montada" -#: ../src/common/collection.c:673 +#: ../src/common/collection.c:586 msgid "too much time to update aspect ratio for the collection" msgstr "tempo demais para ajustar o aspecto da coleção" -#: ../src/common/collection.c:688 +#: ../src/common/collection.c:601 msgid "film roll" msgstr "rolo de filme" -#: ../src/common/collection.c:690 +#: ../src/common/collection.c:603 msgid "folder" msgstr "pasta" -#: ../src/common/collection.c:692 +#: ../src/common/collection.c:605 msgid "camera" msgstr "câmera" -#: ../src/common/collection.c:694 ../src/libs/export_metadata.c:189 -#: ../src/libs/tagging.c:3281 +#: ../src/common/collection.c:607 ../src/libs/export_metadata.c:176 +#: ../src/libs/tagging.c:3312 msgid "tag" msgstr "etiqueta" -#: ../src/common/collection.c:696 +#: ../src/common/collection.c:609 msgid "capture date" msgstr "data de captura" -#: ../src/common/collection.c:698 ../src/libs/filtering.c:61 +#: ../src/common/collection.c:611 ../src/libs/filtering.c:61 msgid "capture time" msgstr "data/hora captura" -#: ../src/common/collection.c:700 ../src/libs/filtering.c:62 +#: ../src/common/collection.c:613 ../src/libs/filtering.c:62 msgid "import time" msgstr "data/hora importação" -#: ../src/common/collection.c:702 ../src/libs/filtering.c:63 +#: ../src/common/collection.c:615 ../src/libs/filtering.c:63 msgid "modification time" msgstr "data/hora modificação" -#: ../src/common/collection.c:704 ../src/libs/filtering.c:64 +#: ../src/common/collection.c:617 ../src/libs/filtering.c:64 msgid "export time" msgstr "data/hora exportação" -#: ../src/common/collection.c:706 ../src/libs/filtering.c:65 +#: ../src/common/collection.c:619 ../src/libs/filtering.c:65 msgid "print time" msgstr "data/hora impressão" -#: ../src/common/collection.c:708 ../src/libs/collect.c:3222 -#: ../src/libs/filtering.c:2163 ../src/libs/filtering.c:2183 +#: ../src/common/collection.c:621 ../src/libs/collect.c:3586 +#: ../src/libs/filtering.c:2237 ../src/libs/filtering.c:2257 #: ../src/libs/filters/history.c:153 ../src/libs/history.c:92 msgid "history" msgstr "histórico" -#: ../src/common/collection.c:710 ../src/common/colorlabels.c:342 -#: ../src/develop/lightroom.c:1550 ../src/dtgtk/thumbnail.c:1560 +#: ../src/common/collection.c:623 ../src/common/colorlabels.c:341 +#: ../src/develop/lightroom.c:1607 ../src/dtgtk/thumbnail.c:1548 #: ../src/libs/filtering.c:68 ../src/libs/filters/colors.c:301 #: ../src/libs/filters/colors.c:312 ../src/libs/tools/colorlabels.c:93 msgid "color label" msgstr "etiqueta de cor" #. iso -#: ../src/common/collection.c:716 ../src/gui/preferences.c:832 -#: ../src/gui/presets.c:666 ../src/libs/camera.c:558 -#: ../src/libs/metadata_view.c:145 +#: ../src/common/collection.c:629 ../src/gui/preferences.c:830 +#: ../src/gui/presets.c:669 ../src/libs/camera.c:558 +#: ../src/libs/metadata_view.c:149 msgid "ISO" msgstr "ISO" #. aperture -#: ../src/common/collection.c:718 ../src/gui/preferences.c:840 -#: ../src/gui/presets.c:701 ../src/libs/camera.c:545 ../src/libs/camera.c:547 -#: ../src/libs/metadata_view.c:140 +#: ../src/common/collection.c:631 ../src/gui/preferences.c:838 +#: ../src/gui/presets.c:704 ../src/libs/camera.c:545 ../src/libs/camera.c:547 +#: ../src/libs/metadata_view.c:142 msgid "aperture" msgstr "abertura" -#: ../src/common/collection.c:724 ../src/libs/filtering.c:57 -#: ../src/libs/filters/filename.c:364 ../src/libs/metadata_view.c:126 +#: ../src/common/collection.c:637 ../src/libs/filtering.c:57 +#: ../src/libs/filters/filename.c:369 ../src/libs/metadata_view.c:128 msgid "filename" msgstr "nome do arquivo" -#: ../src/common/collection.c:726 ../src/develop/lightroom.c:1541 +#: ../src/common/collection.c:639 ../src/develop/lightroom.c:1598 #: ../src/libs/geotagging.c:141 msgid "geotagging" msgstr "geoetiquetas" -#: ../src/common/collection.c:728 ../src/libs/filters/grouping.c:167 +#: ../src/common/collection.c:641 ../src/libs/filters/grouping.c:167 #: ../src/libs/tools/global_toolbox.c:394 msgid "grouping" msgstr "agrupamento" -#: ../src/common/collection.c:730 ../src/dtgtk/thumbnail.c:1575 -#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:129 -#: ../src/libs/metadata_view.c:336 +#: ../src/common/collection.c:643 ../src/dtgtk/thumbnail.c:1563 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:340 msgid "local copy" msgstr "cópia local" -#: ../src/common/collection.c:732 ../src/gui/preferences.c:808 +#: ../src/common/collection.c:645 ../src/gui/preferences.c:806 msgid "module" msgstr "módulo" -#: ../src/common/collection.c:734 ../src/gui/hist_dialog.c:346 -#: ../src/gui/styles_dialog.c:722 ../src/gui/styles_dialog.c:771 +#: ../src/common/collection.c:647 ../src/gui/hist_dialog.c:346 +#: ../src/gui/styles_dialog.c:734 ../src/gui/styles_dialog.c:783 #: ../src/libs/filters/module_order.c:161 ../src/libs/ioporder.c:39 msgid "module order" msgstr "ordem dos módulos" -#: ../src/common/collection.c:736 +#: ../src/common/collection.c:649 msgid "range rating" msgstr "faixa de classificação" -#: ../src/common/collection.c:738 ../src/common/ratings.c:322 -#: ../src/develop/lightroom.c:1525 ../src/libs/filtering.c:67 +#: ../src/common/collection.c:651 ../src/common/ratings.c:321 +#: ../src/develop/lightroom.c:1582 ../src/libs/filtering.c:67 #: ../src/libs/tools/ratings.c:110 msgid "rating" msgstr "classificação" -#: ../src/common/collection.c:740 +#: ../src/common/collection.c:653 msgid "search" msgstr "buscar" -#: ../src/common/collection.c:1509 ../src/common/colorlabels.c:335 -#: ../src/develop/lightroom.c:836 ../src/gui/guides.c:732 -#: ../src/iop/colorzones.c:2265 ../src/iop/temperature.c:1925 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:261 +#: ../src/common/collection.c:1376 ../src/common/colorlabels.c:334 +#: ../src/develop/lightroom.c:889 ../src/gui/guides.c:732 +#: ../src/iop/colorzones.c:2501 ../src/iop/temperature.c:1902 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:261 msgid "yellow" msgstr "amarelo" -#: ../src/common/collection.c:1515 ../src/common/color_vocabulary.c:339 -#: ../src/common/colorlabels.c:338 ../src/iop/colorzones.c:2269 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:264 +#: ../src/common/collection.c:1382 ../src/common/color_vocabulary.c:339 +#: ../src/common/colorlabels.c:337 ../src/iop/colorzones.c:2505 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:264 msgid "purple" msgstr "roxo" -#: ../src/common/collection.c:1532 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1400 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "auto applied" msgstr "auto-aplicado" -#: ../src/common/collection.c:1536 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1406 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "altered" msgstr "alterado" -#: ../src/common/collection.c:1553 ../src/common/collection.c:1649 -#: ../src/libs/collect.c:1166 ../src/libs/collect.c:1330 -#: ../src/libs/collect.c:1354 ../src/libs/collect.c:1473 -#: ../src/libs/collect.c:2432 +#: ../src/common/collection.c:1424 ../src/common/collection.c:1535 +#: ../src/libs/collect.c:1242 ../src/libs/collect.c:1426 +#: ../src/libs/collect.c:1452 ../src/libs/collect.c:1592 +#: ../src/libs/collect.c:2662 msgid "not tagged" msgstr "não etiquetado" -#: ../src/common/collection.c:1554 ../src/libs/collect.c:1354 +#: ../src/common/collection.c:1425 ../src/libs/collect.c:1452 #: ../src/libs/map_locations.c:742 msgid "tagged" msgstr "etiquetado" -#: ../src/common/collection.c:1555 +#: ../src/common/collection.c:1426 msgid "tagged*" msgstr "etiquetado*" #. local copy -#: ../src/common/collection.c:1588 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1460 ../src/libs/collect.c:1883 #: ../src/libs/filters/local_copy.c:38 msgid "not copied locally" msgstr "não copiado localmente" -#: ../src/common/collection.c:1592 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1465 ../src/libs/collect.c:1882 #: ../src/libs/filters/local_copy.c:38 msgid "copied locally" msgstr "copiado localmente" -#: ../src/common/collection.c:1974 ../src/libs/collect.c:1879 +#. if its undefined +#: ../src/common/collection.c:1507 ../src/common/collection.c:1619 +#: ../src/libs/collect.c:2209 ../src/libs/collect.c:2210 +msgid "unnamed" +msgstr "sem nome" + +#: ../src/common/collection.c:1905 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:147 ../src/libs/filters/grouping.c:170 msgid "group leaders" msgstr "líderes de grupo" -#: ../src/common/collection.c:1978 ../src/libs/collect.c:1879 +#: ../src/common/collection.c:1909 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:150 ../src/libs/filters/grouping.c:170 msgid "group followers" msgstr "seguidores de grupo" -#: ../src/common/collection.c:2126 ../src/libs/collect.c:1959 +#: ../src/common/collection.c:2066 ../src/libs/collect.c:2100 msgid "not defined" msgstr "não definido" -#: ../src/common/collection.c:2575 +#: ../src/common/collection.c:2521 #, c-format msgid "<b>%d</b> image (#<b>%d</b>) selected of <b>%d</b>" msgstr "<b>%d</b> imagens (#<b>%d</b>) selecionadas de <b>%d</b>" -#: ../src/common/collection.c:2582 +#: ../src/common/collection.c:2528 #, c-format msgid "<b>%d</b> image selected of <b>%d</b>" msgid_plural "<b>%d</b> images selected of <b>%d</b>" msgstr[0] "<b>%d</b> imagem selecionada de <b>%d</b>" msgstr[1] "<b>%d</b> imagens selecionadas de <b>%d</b>" -#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2324 -#: ../src/develop/blend_gui.c:2372 ../src/gui/guides.c:729 -#: ../src/iop/channelmixerrgb.c:4620 ../src/iop/levels.c:671 -#: ../src/iop/rgblevels.c:937 ../src/iop/rgblevels.c:1032 +#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2340 +#: ../src/develop/blend_gui.c:2388 ../src/gui/guides.c:729 +#: ../src/iop/channelmixerrgb.c:4688 ../src/iop/levels.c:687 +#: ../src/iop/rgblevels.c:969 ../src/iop/rgblevels.c:1083 msgid "gray" msgstr "cinza" @@ -5625,12 +5895,12 @@ msgstr "ciano escuro" #: ../src/common/color_vocabulary.c:297 ../src/common/color_vocabulary.c:317 -#: ../src/iop/colorzones.c:2267 +#: ../src/iop/colorzones.c:2503 msgid "aqua" msgstr "aqua" #: ../src/common/color_vocabulary.c:298 ../src/gui/guides.c:733 -#: ../src/iop/temperature.c:1923 +#: ../src/iop/temperature.c:1900 msgid "cyan" msgstr "ciano" @@ -5696,7 +5966,7 @@ msgstr "magenta escuro" #: ../src/common/color_vocabulary.c:341 ../src/gui/guides.c:734 -#: ../src/iop/colorzones.c:2270 ../src/iop/temperature.c:1921 +#: ../src/iop/colorzones.c:2506 ../src/iop/temperature.c:1898 msgid "magenta" msgstr "magenta" @@ -5708,137 +5978,132 @@ msgid "color not found" msgstr "cor não encontrada" -#: ../src/common/colorlabels.c:310 +#: ../src/common/colorlabels.c:309 #, c-format msgid "colorlabels set to %s" msgstr "etiquetas coloridas definidas como %s" -#: ../src/common/colorlabels.c:312 +#: ../src/common/colorlabels.c:311 msgid "all colorlabels removed" msgstr "todas as etiquetas coloridas foram removidas" -#: ../src/common/colorlabels.c:333 ../src/gui/accelerators.c:170 -#: ../src/libs/image.c:592 +#: ../src/common/colorlabels.c:332 ../src/gui/accelerators.c:188 +#: ../src/libs/image.c:660 msgid "clear" msgstr "limpar" -#. init the category profile with NULL profile, the actual profile must be retrieved dynamically by the caller -#: ../src/common/colorspaces.c:1229 ../src/common/colorspaces.c:1518 -msgid "work profile" -msgstr "perfil de trabalho" - -#: ../src/common/colorspaces.c:1232 ../src/common/colorspaces.c:1514 -#: ../src/iop/colorout.c:885 +#: ../src/common/colorspaces.c:1382 ../src/common/colorspaces.c:1730 +#: ../src/iop/colorout.c:901 msgid "export profile" msgstr "perfil de exportação" -#: ../src/common/colorspaces.c:1236 ../src/common/colorspaces.c:1516 -#: ../src/views/darkroom.c:2542 +#: ../src/common/colorspaces.c:1387 ../src/common/colorspaces.c:1732 +#: ../src/views/darkroom.c:2383 msgid "softproof profile" msgstr "perfil de prova digital" -#: ../src/common/colorspaces.c:1242 ../src/common/colorspaces.c:1498 +#: ../src/common/colorspaces.c:1397 ../src/common/colorspaces.c:1714 msgid "system display profile" msgstr "perfil do monitor do sistema" -#: ../src/common/colorspaces.c:1245 ../src/common/colorspaces.c:1520 +#: ../src/common/colorspaces.c:1402 ../src/common/colorspaces.c:1736 msgid "system display profile (second window)" msgstr "perfil do monitor do sistema (segunda janela)" -#: ../src/common/colorspaces.c:1255 +#: ../src/common/colorspaces.c:1415 msgid "sRGB (web-safe)" msgstr "sRGB (seguro para Web)" -#: ../src/common/colorspaces.c:1269 ../src/common/colorspaces.c:1522 +#: ../src/common/colorspaces.c:1435 ../src/common/colorspaces.c:1738 msgid "Rec709 RGB" msgstr "RGB Rec709" -#: ../src/common/colorspaces.c:1279 +#: ../src/common/colorspaces.c:1450 msgid "PQ Rec2020 RGB" msgstr "RGB PQ Rec2020" -#: ../src/common/colorspaces.c:1284 +#: ../src/common/colorspaces.c:1458 msgid "HLG Rec2020 RGB" msgstr "RGB HLG Rec2020" -#: ../src/common/colorspaces.c:1289 +#: ../src/common/colorspaces.c:1465 msgid "PQ P3 RGB" msgstr "RGB PQ P3" -#: ../src/common/colorspaces.c:1294 +#: ../src/common/colorspaces.c:1471 msgid "HLG P3 RGB" msgstr "RGB HLG P3" -#: ../src/common/colorspaces.c:1299 ../src/common/colorspaces.c:1524 -msgid "linear ProPhoto RGB" -msgstr "RGB ProPhoto linear" +#: ../src/common/colorspaces.c:1478 +msgid "Display P3 RGB" +msgstr "Display P3 RGB" -#: ../src/common/colorspaces.c:1304 ../src/common/colorspaces.c:1492 +#: ../src/common/colorspaces.c:1493 ../src/common/colorspaces.c:1708 msgid "linear XYZ" msgstr "XYZ linear" -#: ../src/common/colorspaces.c:1308 ../src/common/colorspaces.c:1494 -#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2000 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:267 +#: ../src/common/colorspaces.c:1500 ../src/common/colorspaces.c:1710 +#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2016 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:293 msgid "Lab" msgstr "Lab" -#: ../src/common/colorspaces.c:1313 ../src/common/colorspaces.c:1496 +#: ../src/common/colorspaces.c:1508 ../src/common/colorspaces.c:1712 msgid "linear infrared BGR" msgstr "BGR infravermelho linear" -#: ../src/common/colorspaces.c:1317 +#: ../src/common/colorspaces.c:1513 msgid "BRG (for testing)" msgstr "BRG (para teste)" -#: ../src/common/colorspaces.c:1409 +#: ../src/common/colorspaces.c:1619 #, c-format msgid "" "profile `%s' not usable as histogram profile. it has been replaced by sRGB!" msgstr "" "perfil `%s` não usável como perfil de histograma. foi substituído por sRGB!" -#: ../src/common/colorspaces.c:1500 +#: ../src/common/colorspaces.c:1716 msgid "embedded ICC profile" msgstr "perfil ICC embutido" -#: ../src/common/colorspaces.c:1502 +#: ../src/common/colorspaces.c:1718 msgid "embedded matrix" msgstr "matriz embutida" -#: ../src/common/colorspaces.c:1504 +#: ../src/common/colorspaces.c:1720 msgid "standard color matrix" msgstr "matriz de cor padrão" -#: ../src/common/colorspaces.c:1506 +#: ../src/common/colorspaces.c:1722 msgid "enhanced color matrix" msgstr "matriz de cor aprimorada" -#: ../src/common/colorspaces.c:1508 +#: ../src/common/colorspaces.c:1724 msgid "vendor color matrix" msgstr "matriz de cor do fabricante" -#: ../src/common/colorspaces.c:1510 +#: ../src/common/colorspaces.c:1726 msgid "alternate color matrix" msgstr "matriz de cor alternativa" -#: ../src/common/colorspaces.c:1512 +#: ../src/common/colorspaces.c:1728 msgid "BRG (experimental)" msgstr "BRG (experimental)" -#: ../src/common/colorspaces.c:1526 +#: ../src/common/colorspaces.c:1742 msgid "PQ Rec2020" msgstr "PQ Rec2020" -#: ../src/common/colorspaces.c:1528 +#: ../src/common/colorspaces.c:1744 msgid "HLG Rec2020" msgstr "HLG Rec2020" -#: ../src/common/colorspaces.c:1530 +#: ../src/common/colorspaces.c:1746 msgid "PQ P3" msgstr "PQ P3" -#: ../src/common/colorspaces.c:1532 +#: ../src/common/colorspaces.c:1748 msgid "HLG P3" msgstr "HLG P3" @@ -5866,40 +6131,40 @@ msgid "printing `%s' on `%s'" msgstr "imprimindo `%s' em `%s'" -#: ../src/common/darktable.c:250 +#: ../src/common/darktable.c:375 #, c-format msgid "found strange path `%s'" msgstr "caminho estranho encontrado `%s'" -#: ../src/common/darktable.c:265 +#: ../src/common/darktable.c:390 #, c-format msgid "error loading directory `%s'" msgstr "erro carregando pasta `%s'" -#: ../src/common/darktable.c:289 +#: ../src/common/darktable.c:414 #, c-format msgid "file `%s' has unknown format!" msgstr "arquivo `%s' é de formato desconhecido!" -#: ../src/common/darktable.c:302 ../src/control/jobs/control_jobs.c:2118 -#: ../src/control/jobs/control_jobs.c:2177 +#: ../src/common/darktable.c:427 ../src/control/jobs/control_jobs.c:2121 +#: ../src/control/jobs/control_jobs.c:2180 #, c-format msgid "error loading file `%s'" msgstr "erro carregando arquivo `%s'" -#: ../src/common/darktable.c:1509 +#: ../src/common/darktable.c:1650 msgid "configuration information" msgstr "informações de configuração" -#: ../src/common/darktable.c:1511 -msgid "show this information again" -msgstr "mostrar esta informação novamente" - -#: ../src/common/darktable.c:1511 -msgid "understood" -msgstr "entendido" +#: ../src/common/darktable.c:1652 +msgid "_show this information again" +msgstr "_mostrar esta informação novamente" + +#: ../src/common/darktable.c:1652 +msgid "_understood" +msgstr "_entendido" -#: ../src/common/darktable.c:1968 +#: ../src/common/darktable.c:2106 msgid "" "the RCD demosaicer has been defined as default instead of PPG because of " "better quality and performance." @@ -5907,12 +6172,12 @@ "O interpolador RCD foi definido como padrão ao invés do PPG porque tem " "melhor desempenho e qualidade." -#: ../src/common/darktable.c:1970 +#: ../src/common/darktable.c:2108 msgid "see preferences/darkroom/demosaicing for zoomed out darkroom mode" msgstr "" "veja preferências/sala escura/interpolação cromática para zoom na sala escura" -#: ../src/common/darktable.c:1976 +#: ../src/common/darktable.c:2114 msgid "" "the user interface and the underlying internals for tuning darktable " "performance have changed." @@ -5920,7 +6185,7 @@ "a interface com o usuário e os mecanismos internos para ajuste fino de " "desempenho do darktable mudaram." -#: ../src/common/darktable.c:1978 +#: ../src/common/darktable.c:2116 msgid "" "you won't find headroom and friends any longer, instead in preferences/" "processing use:" @@ -5928,15 +6193,15 @@ "você não encontrará mais headroom e amigos, ao invés disso em preferências/" "processamento use:" -#: ../src/common/darktable.c:1980 +#: ../src/common/darktable.c:2118 msgid "1) darktable resources" msgstr "1) recursos do darktable" -#: ../src/common/darktable.c:1982 +#: ../src/common/darktable.c:2120 msgid "2) tune OpenCL performance" msgstr "2) ajustar desempenho do OpenCL" -#: ../src/common/darktable.c:1989 +#: ../src/common/darktable.c:2127 msgid "" "some global config parameters relevant for OpenCL performance are not used " "any longer." @@ -5944,34 +6209,35 @@ "alguns valores de configuração globais relevantes para o desempenho de " "OpenCL não são mais usados." -#: ../src/common/darktable.c:1991 +#: ../src/common/darktable.c:2129 msgid "" -"instead you will find 'per device' data in 'cl_device_v4_canonical-name'. " +"instead you will find 'per device' data in 'cldevice_v5_canonical-name'. " "content is:" msgstr "" "ao invés disso você encontrará dados 'por dispositivo' em " -"'cl_device_v4_canonical-name'. o conteúdo é:" +"'cldevice_v5_canonical-name'. o conteúdo é:" -#: ../src/common/darktable.c:1993 ../src/common/darktable.c:2012 +#: ../src/common/darktable.c:2131 ../src/common/darktable.c:2150 +#: ../src/common/darktable.c:2165 msgid "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" msgstr "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" -#: ../src/common/darktable.c:1995 ../src/common/darktable.c:2014 +#: ../src/common/darktable.c:2133 ../src/common/darktable.c:2152 msgid "you may tune as before except 'magic'" msgstr "você pode ajustar como antes exceto por 'magic'" -#: ../src/common/darktable.c:2001 +#: ../src/common/darktable.c:2139 msgid "" "your OpenCL compiler settings for all devices have been reset to default." msgstr "" "Suas configurações de compilador OpenCL para todos os dispositivos foram " "redefinidas para o padrão." -#: ../src/common/darktable.c:2008 +#: ../src/common/darktable.c:2146 msgid "" "OpenCL global config parameters 'per device' data has been recreated with an " "updated name." @@ -5979,14 +6245,14 @@ "Os dados de parâmetros globais OpenCL 'por dispositivo' foram recriados com " "nome atualizado." -#: ../src/common/darktable.c:2010 +#: ../src/common/darktable.c:2148 ../src/common/darktable.c:2163 msgid "" -"you will find 'per device' data in 'cl_device_v5_canonical-name'. content is:" +"you will find 'per device' data in 'cldevice_v5_canonical-name'. content is:" msgstr "" -"você encontrará dados 'por dispositivo' em 'cl_device_v5_canonical-name'. o " +"você encontrará dados 'por dispositivo' em 'cldevice_v5_canonical-name'. o " "conteúdo é:" -#: ../src/common/darktable.c:2016 +#: ../src/common/darktable.c:2154 msgid "" "If you're using device names in 'opencl_device_priority' you should update " "them to the new names." @@ -5994,7 +6260,23 @@ "Se você está usando nomes de dispositivo como 'opencl_device_priority' você " "deveria atualizá-los para os novos nomes." -#: ../src/common/database.c:2756 +#: ../src/common/darktable.c:2161 +msgid "" +"OpenCL 'per device' config data have been automatically extended by 'unified-" +"fraction'." +msgstr "" +"dados de configuração OpenCL 'por dispositivo' foram estendidos " +"automaticamente por 'unified-fraction'." + +#: ../src/common/darktable.c:2172 +msgid "" +"OpenCL 'per device' compiler settings might have been updated.\n" +"\n" +msgstr "" +"As configurações OpenCL 'por dispositivo' podem ter sido atualizadas.\n" +"\n" + +#: ../src/common/database.c:3350 #, c-format msgid "" "\n" @@ -6053,30 +6335,19 @@ "sua base de dados.</i>\n" #. clang-format on -#: ../src/common/database.c:2777 +#: ../src/common/database.c:3371 msgid "error starting darktable" msgstr "erro ao iniciar o darktable" -#: ../src/common/database.c:2778 ../src/libs/collect.c:2915 -#: ../src/libs/export_metadata.c:288 ../src/libs/import.c:1702 -#: ../src/libs/metadata.c:634 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:227 ../src/libs/modulegroups.c:3464 -#: ../src/libs/styles.c:438 ../src/libs/styles.c:621 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3471 -msgid "cancel" -msgstr "cancelar" +#: ../src/common/database.c:3372 +msgid "_delete database lock files" +msgstr "_apagar arquivos de travas (locks) da base de dados" -#: ../src/common/database.c:2778 -msgid "delete database lock files" -msgstr "apagar arquivos de travas (locks) da base de dados" - -#: ../src/common/database.c:2784 +#: ../src/common/database.c:3378 msgid "are you sure?" msgstr "tem certeza?" -#: ../src/common/database.c:2785 +#: ../src/common/database.c:3379 msgid "" "\n" "do you really want to delete the lock files?\n" @@ -6084,20 +6355,19 @@ "\n" "você realmente deseja excluir os arquivos de trava?\n" -#: ../src/common/database.c:2785 ../src/common/variables.c:703 -#: ../src/develop/imageop_gui.c:210 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 -msgid "yes" -msgstr "sim" +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2597 +msgid "_no" +msgstr "_não" -#: ../src/common/database.c:2801 ../src/libs/export_metadata.c:164 -#: ../src/libs/geotagging.c:811 +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2596 +msgid "_yes" +msgstr "_sim" + +#: ../src/common/database.c:3395 msgid "done" msgstr "feito" -#: ../src/common/database.c:2802 +#: ../src/common/database.c:3396 msgid "" "\n" "successfully deleted the lock files.\n" @@ -6107,17 +6377,17 @@ "arquivos de trava removidos com sucesso.\n" "você agora pode reiniciar o darktable\n" -#. the button to close the popup -#: ../src/common/database.c:2803 ../src/common/database.c:2810 -#: ../src/libs/filters/filename.c:452 -msgid "ok" -msgstr "ok" +#: ../src/common/database.c:3397 ../src/common/database.c:3404 +#: ../src/gui/accelerators.c:2580 ../src/gui/accelerators.c:2662 +#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:566 +msgid "_ok" +msgstr "_ok" -#: ../src/common/database.c:2806 +#: ../src/common/database.c:3400 msgid "error" msgstr "erro" -#: ../src/common/database.c:2807 +#: ../src/common/database.c:3401 #, c-format msgid "" "\n" @@ -6132,7 +6402,7 @@ "<i>library.db.lock</i>\n" "na pasta <a href=\"file:///%s\">%s</a>\n" -#: ../src/common/database.c:2924 +#: ../src/common/database.c:3518 #, c-format msgid "" "the database lock file contains a pid that seems to be alive in your system: " @@ -6141,18 +6411,44 @@ "o arquivo de lock da base de dados contém um pid que parece estar vivo no " "seu sistema: %d" -#: ../src/common/database.c:2931 +#: ../src/common/database.c:3525 #, c-format msgid "the database lock file seems to be empty" msgstr "o lock da base de dados parece estar vazio" -#: ../src/common/database.c:2941 +#: ../src/common/database.c:3535 #, c-format msgid "error opening the database lock file for reading: %s" msgstr "erro ao abrir a base de dados para leitura: %s" +#: ../src/common/database.c:3605 +#, c-format +msgid "" +"the database schema version of\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"is too new for this build of darktable (this means the database was created " +"or upgraded by a newer darktable version)\n" +msgstr "" +"a versão do esquema de base de dados de\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"é novo demais para este build do darktable (isto significa que a base de " +"dados foi criada ou passou por upgrade por uma versão mais nova do " +"darktable)\n" + +#: ../src/common/database.c:3612 +msgid "darktable - too new db version" +msgstr "darktable - versão de bd muito nova" + +#: ../src/common/database.c:3613 +msgid "_quit darktable" +msgstr "_terminar o darktable" + #. the database has to be upgraded, let's ask user -#: ../src/common/database.c:2978 +#: ../src/common/database.c:3628 #, c-format msgid "" "the database schema has to be upgraded for\n" @@ -6171,21 +6467,21 @@ "\n" "você quer continuar ou parar agora para fazer um backup\n" -#: ../src/common/database.c:2986 +#: ../src/common/database.c:3636 msgid "darktable - schema migration" msgstr "darktable - migrar esquema" -#: ../src/common/database.c:2987 ../src/common/database.c:3306 -#: ../src/common/database.c:3324 ../src/common/database.c:3491 -#: ../src/common/database.c:3509 -msgid "close darktable" -msgstr "fechar o darktable" - -#: ../src/common/database.c:2987 -msgid "upgrade database" -msgstr "atualizar base de dados" +#: ../src/common/database.c:3637 ../src/common/database.c:3959 +#: ../src/common/database.c:3974 ../src/common/database.c:4142 +#: ../src/common/database.c:4157 +msgid "_close darktable" +msgstr "_fechar o darktable" + +#: ../src/common/database.c:3637 +msgid "_upgrade database" +msgstr "_atualizar base de dados" -#: ../src/common/database.c:3286 ../src/common/database.c:3471 +#: ../src/common/database.c:3939 ../src/common/database.c:4122 #, c-format msgid "" "quick_check said:\n" @@ -6194,21 +6490,21 @@ "quick_check disse:\n" "%s \n" -#: ../src/common/database.c:3303 ../src/common/database.c:3321 -#: ../src/common/database.c:3488 ../src/common/database.c:3506 +#: ../src/common/database.c:3956 ../src/common/database.c:3971 +#: ../src/common/database.c:4139 ../src/common/database.c:4154 msgid "darktable - error opening database" msgstr "darktable - erro ao abrir a base de dados" -#: ../src/common/database.c:3308 ../src/common/database.c:3493 -msgid "attempt restore" -msgstr "tentar recuperar" - -#: ../src/common/database.c:3310 ../src/common/database.c:3326 -#: ../src/common/database.c:3495 ../src/common/database.c:3511 -msgid "delete database" -msgstr "apagar base de dados" +#: ../src/common/database.c:3960 ../src/common/database.c:4143 +msgid "_attempt restore" +msgstr "_tentar recuperar" + +#: ../src/common/database.c:3961 ../src/common/database.c:3975 +#: ../src/common/database.c:4144 ../src/common/database.c:4158 +msgid "_delete database" +msgstr "_apagar base de dados" -#: ../src/common/database.c:3314 ../src/common/database.c:3499 +#: ../src/common/database.c:3964 ../src/common/database.c:4147 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup, attempt an automatic restore\n" @@ -6220,7 +6516,7 @@ "do snapshot mais recente ou remover a base de dados corrompida\n" "e iniciar com uma nova?" -#: ../src/common/database.c:3330 ../src/common/database.c:3515 +#: ../src/common/database.c:3978 ../src/common/database.c:4161 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup or delete the corrupted database\n" @@ -6230,7 +6526,7 @@ "a base de dados de um backup ou remover a base de dados corrompida\n" "e iniciar com uma nova?" -#: ../src/common/database.c:3337 ../src/common/database.c:3520 +#: ../src/common/database.c:3985 ../src/common/database.c:4166 #, c-format msgid "" "an error has occurred while trying to open the database from\n" @@ -6255,12 +6551,12 @@ "o filtro guiado independente de exposição não conseguiu alocar memória, " "verifique sua configuração de RAM" -#: ../src/common/exif.cc:5200 +#: ../src/common/exif.cc:5482 #, c-format msgid "cannot read XMP file '%s': '%s'" msgstr "não foi possível abrir o arquivo XMP '%s': '%s'" -#: ../src/common/exif.cc:5258 +#: ../src/common/exif.cc:5540 #, c-format msgid "cannot write XMP file '%s': '%s'" msgstr "não foi possível escrever o arquivo XMP '%s': '%s'" @@ -6271,124 +6567,124 @@ "o filtro fast guided não conseguiu alocar memória, verifique sua " "configuração de RAM" -#: ../src/common/film.c:345 +#: ../src/common/film.c:356 msgid "do you want to remove this empty directory?" msgid_plural "do you want to remove these empty directories?" msgstr[0] "você realmente deseja remover esta pasta vazia?" msgstr[1] "você realmente deseja remover estes diretórios vazios?" -#: ../src/common/film.c:352 +#: ../src/common/film.c:363 msgid "remove empty directory?" msgid_plural "remove empty directories?" msgstr[0] "remover pasta vazia?" msgstr[1] "remover pastas vazias?" -#: ../src/common/film.c:371 ../src/gui/preferences.c:816 -#: ../src/gui/styles_dialog.c:548 ../src/libs/geotagging.c:829 -#: ../src/libs/import.c:1551 +#: ../src/common/film.c:383 ../src/gui/preferences.c:814 +#: ../src/gui/styles_dialog.c:556 ../src/libs/geotagging.c:830 +#: ../src/libs/import.c:1560 msgid "name" msgstr "nome" -#: ../src/common/film.c:477 +#: ../src/common/film.c:492 msgid "" "cannot remove film roll having local copies with non accessible originals" msgstr "" "não é possível remover rolo de filme contendo cópias locais sem acesso aos " "originais" -#: ../src/common/history.c:840 +#: ../src/common/history.c:876 msgid "you need to copy history from an image before you paste it onto another" msgstr "você precisa copiar o histórico de uma imagem antes de colar em outra" -#: ../src/common/image.c:325 +#: ../src/common/image.c:333 msgid "orphaned image" msgstr "imagem órfã" -#: ../src/common/image.c:620 +#: ../src/common/image.c:629 #, c-format msgid "geo-location undone for %d image" msgid_plural "geo-location undone for %d images" msgstr[0] "geolocalização desfeita para %d imagem" msgstr[1] "geolocalização desfeita para %d imagens" -#: ../src/common/image.c:622 +#: ../src/common/image.c:631 #, c-format msgid "geo-location re-applied to %d image" msgid_plural "geo-location re-applied to %d images" msgstr[0] "geolocalização re-aplicada a %d imagem" msgstr[1] "geolocalização re-aplicada a %d imagens" -#: ../src/common/image.c:645 +#: ../src/common/image.c:654 #, c-format msgid "date/time undone for %d image" msgid_plural "date/time undone for %d images" msgstr[0] "definição de data/hora desfeita em %d imagem" msgstr[1] "definição de data/hora desfeita em %d imagens" -#: ../src/common/image.c:647 +#: ../src/common/image.c:656 #, c-format msgid "date/time re-applied to %d image" msgid_plural "date/time re-applied to %d images" msgstr[0] "data/hora re-aplicada em %d imagem" msgstr[1] "data/hora re-aplicada em %d imagens" -#: ../src/common/image.c:2188 +#: ../src/common/image.c:2260 #, c-format msgid "cannot access local copy `%s'" msgstr "não pude acessar cópia local `%s'" -#: ../src/common/image.c:2195 +#: ../src/common/image.c:2267 #, c-format msgid "cannot write local copy `%s'" msgstr "não pude escrever cópia local `%s'" -#: ../src/common/image.c:2202 +#: ../src/common/image.c:2274 #, c-format msgid "error moving local copy `%s' -> `%s'" msgstr "erro movendo cópia local `%s' -> `%s'" -#: ../src/common/image.c:2219 +#: ../src/common/image.c:2291 #, c-format msgid "error moving `%s': file not found" msgstr "erro movendo `%s': arquivo não encontrado" -#: ../src/common/image.c:2229 +#: ../src/common/image.c:2301 #, c-format msgid "error moving `%s' -> `%s': file exists" msgstr "erro movendo `%s' -> `%s': arquivo já existe" -#: ../src/common/image.c:2233 +#: ../src/common/image.c:2305 #, c-format msgid "error moving `%s' -> `%s'" msgstr "erro movendo `%s' -> `%s'" -#: ../src/common/image.c:2562 +#: ../src/common/image.c:2634 msgid "cannot create local copy when the original file is not accessible." msgstr "" "não é possível criar cópia local quando o arquivo original está inacessível." -#: ../src/common/image.c:2576 +#: ../src/common/image.c:2648 msgid "cannot create local copy." msgstr "não pude criar cópia local." -#: ../src/common/image.c:2656 ../src/control/jobs/control_jobs.c:777 +#: ../src/common/image.c:2728 ../src/control/jobs/control_jobs.c:777 msgid "cannot remove local copy when the original file is not accessible." msgstr "" "não é possível remover cópias local quando o arquivo original está " "inacessível." -#: ../src/common/image.c:2821 +#: ../src/common/image.c:2901 #, c-format msgid "%d local copy has been synchronized" msgid_plural "%d local copies have been synchronized" msgstr[0] "cópia local %d foi sincronizada" msgstr[1] "cópias locais %d foram sincronizadas" -#: ../src/common/image.c:3022 +#: ../src/common/image.c:3102 msgid "<b>WARNING</b>: camera is missing samples!" msgstr "<b>ALERTA</b> : amostras faltando para câmera!" -#: ../src/common/image.c:3023 +#: ../src/common/image.c:3103 msgid "" "You must provide samples in <a href='https://raw.pixls.us/'>https://raw." "pixls.us/</a>" @@ -6396,7 +6692,7 @@ "Você precisa prover amostras em <a href='https://raw.pixls.us/'>https://raw." "pixls.us/</a>" -#: ../src/common/image.c:3024 +#: ../src/common/image.c:3104 #, c-format msgid "" "for `%s' `%s'\n" @@ -6405,81 +6701,82 @@ "para `%s' `%s'\n" "em tantos formatos/compressão/profundidade de bits quanto possível" -#: ../src/common/image.c:3027 +#: ../src/common/image.c:3107 msgid "or the <b>RAW won't be readable</b> in next version." msgstr "ou o <b>RAW não será legível</b> na próxima versão." -#: ../src/common/image.h:209 ../src/common/ratings.c:284 -#: ../src/libs/history.c:843 ../src/libs/snapshots.c:779 +#: ../src/common/image.h:217 ../src/common/ratings.c:283 +#: ../src/imageio/format/avif.c:114 ../src/libs/history.c:843 +#: ../src/libs/snapshots.c:837 msgid "unknown" msgstr "desconhecido" #. EMPTY_FIELD -#: ../src/common/image.h:210 -msgid "tiff" -msgstr "tiff" - -#: ../src/common/image.h:211 -msgid "png" -msgstr "png" - -#: ../src/common/image.h:212 ../src/imageio/format/j2k.c:652 -msgid "j2k" -msgstr "j2k" - -#: ../src/common/image.h:213 -msgid "jpeg" -msgstr "jpeg" - -#: ../src/common/image.h:214 -msgid "exr" -msgstr "exr" - -#: ../src/common/image.h:215 -msgid "rgbe" -msgstr "rgbe" - -#: ../src/common/image.h:216 -msgid "pfm" -msgstr "pfm" - -#: ../src/common/image.h:217 -msgid "GraphicsMagick" -msgstr "GraphicsMagick" +#: ../src/common/image.h:218 ../src/imageio/format/tiff.c:831 +msgid "TIFF" +msgstr "TIFF" -#: ../src/common/image.h:218 -msgid "rawspeed" -msgstr "rawspeed" - -#: ../src/common/image.h:219 -msgid "netpnm" -msgstr "netpnm" +#: ../src/common/image.h:219 ../src/imageio/format/png.c:599 +msgid "PNG" +msgstr "PNG" #: ../src/common/image.h:220 -msgid "avif" -msgstr "avif" +msgid "JPEG 2000" +msgstr "JPEG 2000" #: ../src/common/image.h:221 -msgid "ImageMagick" -msgstr "ImageMagick" +msgid "JPEG" +msgstr "JPEG" #: ../src/common/image.h:222 -msgid "heif" -msgstr "heif" +msgid "EXR" +msgstr "EXR" #: ../src/common/image.h:223 -msgid "libraw" -msgstr "libraw" +msgid "RGBE" +msgstr "RGBE" -#: ../src/common/image.h:224 -msgid "webp" -msgstr "webp" +#: ../src/common/image.h:224 ../src/imageio/format/pfm.c:120 +msgid "PFM" +msgstr "PFM" #: ../src/common/image.h:225 -msgid "jpeg xl" -msgstr "jpeg xl" +msgid "GraphicsMagick" +msgstr "GraphicsMagick" #: ../src/common/image.h:226 +msgid "RawSpeed" +msgstr "RawSpeed" + +#: ../src/common/image.h:227 +msgid "Netpbm" +msgstr "Netpbm" + +#: ../src/common/image.h:228 ../src/imageio/format/avif.c:728 +msgid "AVIF" +msgstr "AVIF" + +#: ../src/common/image.h:229 +msgid "ImageMagick" +msgstr "ImageMagick" + +#: ../src/common/image.h:230 +msgid "HEIF" +msgstr "HEIF" + +#: ../src/common/image.h:231 +msgid "LibRaw" +msgstr "LibRaw" + +#: ../src/common/image.h:232 ../src/imageio/format/webp.c:380 +msgid "WebP" +msgstr "WebP" + +#: ../src/common/image.h:233 ../src/imageio/format/jxl.c:482 +msgid "JPEG XL" +msgstr "JPEG XL" + +#: ../src/common/image.h:234 msgid "QOI" msgstr "QOI" @@ -6513,7 +6810,7 @@ "o caminho da sessão requisitada não está disponível. o dispositivo não está " "montado?" -#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:197 +#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:195 msgid "legacy" msgstr "legado" @@ -6525,7 +6822,7 @@ msgid "v3.0 JPEG" msgstr "v3.0 JPEG" -#: ../src/common/iop_profile.c:1205 +#: ../src/common/iop_profile.c:1207 #, c-format msgid "" "darktable loads %s from\n" @@ -6549,13 +6846,13 @@ #. title #: ../src/common/metadata.c:48 ../src/imageio/format/pdf.c:574 -#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:169 -#: ../src/imageio/storage/gallery.c:170 ../src/imageio/storage/latex.c:169 -#: ../src/imageio/storage/piwigo.c:1058 ../src/libs/filtering.c:69 +#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:219 +#: ../src/imageio/storage/gallery.c:222 ../src/imageio/storage/latex.c:206 +#: ../src/imageio/storage/piwigo.c:1091 ../src/libs/filtering.c:69 msgid "title" msgstr "título" -#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:552 +#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:563 #: ../src/libs/filtering.c:70 msgid "description" msgstr "descrição" @@ -6573,11 +6870,11 @@ msgstr "nome de versão" #: ../src/common/metadata.c:53 ../src/libs/live_view.c:319 -#: ../src/libs/metadata_view.c:124 +#: ../src/libs/metadata_view.c:126 msgid "image id" msgstr "id da imagem" -#: ../src/common/mipmap_cache.c:1065 ../src/imageio/imageio.c:787 +#: ../src/common/mipmap_cache.c:1070 ../src/imageio/imageio.c:799 #, c-format msgid "image `%s' is not available!" msgstr "imagem `%s' não disponível!" @@ -6591,7 +6888,43 @@ msgid "noiseprofile file `%s' is not valid" msgstr "perfil de controle de ruído `%s' não é válido" -#: ../src/common/opencl.c:1376 +#: ../src/common/opencl.c:1165 +msgid "no working OpenCL library found" +msgstr "nenhuma biblioteca OpenCL funcional encontrada" + +#: ../src/common/opencl.c:1185 +msgid "" +"platform detection failed. some possible causes:\n" +" - OpenCL ICD (ocl-icd) missing,\n" +" - previous OpenCL errors leading to blocked devices,\n" +" - power management problems,\n" +" - buggy drivers,\n" +" - no OpenCL driver installed." +msgstr "" +"a detecção de plataforma falhou. algumas razões possíveis:\n" +" - OpenCL ICD (ocl-icd) faltando,\n" +" - erros OpenCL anteriores levando a dispositivos bloqueados,\n" +" - problemas de gerenciamento de energia,\n" +" - drivers com bugs,\n" +" - nenhum driver OpenCL instalado." + +#: ../src/common/opencl.c:1277 +msgid "no devices found for unknown platform" +msgstr "nenhum dispositivo encontrado para plataforma desconhecida" + +#: ../src/common/opencl.c:1323 +msgid "not enough memory for OpenCL devices" +msgstr "não há memória suficiente para dispositivos OpenCL" + +#: ../src/common/opencl.c:1358 +msgid "no OpenCL devices found" +msgstr "nenhum dispositivo OpenCL encontrado" + +#: ../src/common/opencl.c:1401 +msgid "no suitable OpenCL devices found" +msgstr "nenhum dispositivo OpenCL adequado encontrado" + +#: ../src/common/opencl.c:1422 #, c-format msgid "" "OpenCL initializing problem:\n" @@ -6600,33 +6933,22 @@ "problema ao inicializar o OpenCL:\n" "%s" -#: ../src/common/opencl.c:1439 -msgid "" -"due to a slow GPU hardware acceleration using OpenCL has been deactivated" -msgstr "devido a baixa aceleração de hardware da GPU o opencl foi desativado" - -#: ../src/common/opencl.c:1449 -msgid "" -"multiple GPUs detected - OpenCL scheduling profile has been set accordingly" +#: ../src/common/opencl.c:1454 +msgid "OpenCL scheduling profile set to default, setup has changed" msgstr "" -"detectadas múltiplas GPUs - o perfil de escalonamento foi ajustado de acordo" +"perfil de escalonamento OpenCL ajustado para padrão, a configuração mudou" -#: ../src/common/opencl.c:1462 -msgid "" -"very fast GPU detected - OpenCL scheduling profile has been set accordingly" -msgstr "" -"GPU muito rápida detectada - o perfil de escalonamento foi ajustado de acordo" - -#: ../src/common/opencl.c:1471 -msgid "OpenCL scheduling profile set to default" -msgstr "perfil de escalonamento OpenCL ajustado para padrão" +#: ../src/common/opencl.c:2283 +#, c-format +msgid "building OpenCL program %s for %s" +msgstr "construindo programa OpenCL %s para %s" -#: ../src/common/pdf.h:88 ../src/iop/lens.cc:3441 +#: ../src/common/pdf.h:88 ../src/iop/lens.cc:4071 #: ../src/libs/filters/focal.c:74 ../src/libs/print_settings.c:81 msgid "mm" msgstr "mm" -#: ../src/common/pdf.h:89 ../src/libs/export.c:520 ../src/libs/export.c:1145 +#: ../src/common/pdf.h:89 ../src/libs/export.c:555 ../src/libs/export.c:1241 #: ../src/libs/print_settings.c:81 msgid "cm" msgstr "cm" @@ -6639,7 +6961,7 @@ msgid "\"" msgstr "\"" -#: ../src/common/pdf.h:104 ../src/iop/borders.c:958 +#: ../src/common/pdf.h:104 ../src/iop/borders.c:971 msgid "A4" msgstr "A4" @@ -6678,66 +7000,65 @@ msgid "no images selected to apply rating" msgstr "nenhuma imagem selecionada para aplicar valores" -#: ../src/common/ratings.c:275 ../src/libs/metadata_view.c:351 +#: ../src/common/ratings.c:274 ../src/libs/metadata_view.c:355 msgid "image rejected" msgstr "imagem rejeitada" -#: ../src/common/ratings.c:277 +#: ../src/common/ratings.c:276 msgid "image rated to 0 star" msgstr "imagem classificada em 0 estrelas" -#: ../src/common/ratings.c:279 +#: ../src/common/ratings.c:278 #, c-format msgid "image rated to %s" msgstr "imagem classificada em %s" -#: ../src/common/ratings.c:306 ../src/libs/select.c:39 -#: ../src/views/lighttable.c:766 +#: ../src/common/ratings.c:305 ../src/views/lighttable.c:766 msgid "select" msgstr "selecionar" -#: ../src/common/ratings.c:307 +#: ../src/common/ratings.c:306 msgid "upgrade" msgstr "promover" -#: ../src/common/ratings.c:308 +#: ../src/common/ratings.c:307 msgid "downgrade" msgstr "rebaixar" -#: ../src/common/ratings.c:312 +#: ../src/common/ratings.c:311 msgid "zero" msgstr "zero" -#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:277 +#: ../src/common/ratings.c:312 ../src/libs/filters/rating_range.c:304 msgid "one" msgstr "um" -#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:278 +#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:305 msgid "two" msgstr "dois" -#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:279 +#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:306 msgid "three" msgstr "três" -#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:280 +#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:307 msgid "four" msgstr "quatro" -#: ../src/common/ratings.c:317 ../src/libs/filters/rating_range.c:281 +#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:308 msgid "five" msgstr "cinco" -#: ../src/common/ratings.c:318 +#: ../src/common/ratings.c:317 msgid "reject" msgstr "rejeitar" -#: ../src/common/styles.c:244 +#: ../src/common/styles.c:243 #, c-format msgid "style with name '%s' already exists" msgstr "estilo com nome '%s' já existente" -#: ../src/common/styles.c:270 ../src/common/styles.c:1776 +#: ../src/common/styles.c:270 ../src/common/styles.c:1783 #: ../src/libs/styles.c:54 msgid "styles" msgstr "estilos" @@ -6747,57 +7068,57 @@ msgid "style named '%s' successfully created" msgstr "estilo nomeado '%s' criado com sucesso" -#: ../src/common/styles.c:689 ../src/common/styles.c:719 -#: ../src/common/styles.c:759 ../src/dtgtk/culling.c:1097 +#: ../src/common/styles.c:688 ../src/common/styles.c:718 +#: ../src/common/styles.c:758 ../src/dtgtk/culling.c:1066 msgid "no image selected!" msgstr "nenhuma imagem selecionada!" -#: ../src/common/styles.c:693 +#: ../src/common/styles.c:692 #, c-format msgid "style %s successfully applied!" msgstr "estilo %s aplicado com sucesso!" -#: ../src/common/styles.c:709 +#: ../src/common/styles.c:708 msgid "no images nor styles selected!" msgstr "nenhuma imagem ou estilo selecionados!" -#: ../src/common/styles.c:714 +#: ../src/common/styles.c:713 msgid "no styles selected!" msgstr "nenhum estilo selecionado!" -#: ../src/common/styles.c:744 +#: ../src/common/styles.c:743 msgid "style successfully applied!" msgid_plural "styles successfully applied!" msgstr[0] "estilo aplicado com sucesso!" msgstr[1] "estilos aplicados com sucesso" -#: ../src/common/styles.c:840 +#: ../src/common/styles.c:838 #, c-format msgid "module `%s' version mismatch: %d != %d" msgstr "módulo `%s' versão incompatível: %d != %d" -#: ../src/common/styles.c:1124 +#: ../src/common/styles.c:1125 #, c-format msgid "applied style `%s' on current image" msgstr "estilo aplicado `%s' na imagem atual" -#: ../src/common/styles.c:1378 +#: ../src/common/styles.c:1383 #, c-format msgid "failed to overwrite style file for %s" msgstr "falha o sobrescrever arquivo de estilo para %s" -#: ../src/common/styles.c:1384 +#: ../src/common/styles.c:1389 #, c-format msgid "style file for %s exists" msgstr "arquivo de estilo para %s existente" -#: ../src/common/styles.c:1667 +#: ../src/common/styles.c:1674 #, c-format msgid "style %s was successfully imported" msgstr "estilo %s foi importado com sucesso" #. Failed to open file, clean up. -#: ../src/common/styles.c:1711 +#: ../src/common/styles.c:1718 #, c-format msgid "could not read file `%s'" msgstr "não foi possível abrir o arquivo de entrada `%s'" @@ -6810,10 +7131,18 @@ msgid "below sea level" msgstr "abaixo do nível do mar" -#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:880 +#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:907 msgid "m" msgstr "m" +#: ../src/common/variables.c:712 ../src/develop/imageop_gui.c:210 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "yes" +msgstr "sim" + #. Column 1 - "make" of the camera. #. * Column 2 - "model" (use the "make" and "model" as provided by DCRaw). #. * Column 3 - WB name. @@ -6826,7 +7155,7 @@ #. * #. * WB name is standardized to one of the following: #. "Sunlight" and other variation should be switched to this: -#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:323 +#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:320 msgid "daylight" msgstr "luz diurna" @@ -6926,7 +7255,7 @@ msgid "underwater" msgstr "subaquática" -#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2447 +#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2286 msgid "black & white" msgstr "preto & branco" @@ -6946,85 +7275,85 @@ msgid "auto WB" msgstr "balanço de branco automático" -#: ../src/control/control.c:66 ../src/gui/accelerators.c:138 -#: ../src/views/darkroom.c:2162 +#: ../src/control/control.c:69 ../src/gui/accelerators.c:156 +#: ../src/views/darkroom.c:2029 msgid "hold" msgstr "segurar" -#: ../src/control/control.c:102 ../src/control/control.c:205 +#: ../src/control/control.c:108 ../src/control/control.c:214 msgid "modifiers" msgstr "modificador" -#: ../src/control/control.c:111 +#: ../src/control/control.c:117 msgctxt "accel" msgid "global" msgstr "global" -#: ../src/control/control.c:118 +#: ../src/control/control.c:124 msgctxt "accel" msgid "views" msgstr "vistas" -#: ../src/control/control.c:125 +#: ../src/control/control.c:131 msgctxt "accel" msgid "thumbtable" msgstr "tabela de miniaturas" -#: ../src/control/control.c:132 +#: ../src/control/control.c:138 msgctxt "accel" msgid "utility modules" msgstr "módulos utilitários" -#: ../src/control/control.c:139 +#: ../src/control/control.c:145 msgctxt "accel" msgid "format" msgstr "formato" -#: ../src/control/control.c:146 +#: ../src/control/control.c:152 msgctxt "accel" msgid "storage" msgstr "armazenamento" -#: ../src/control/control.c:153 +#: ../src/control/control.c:159 msgctxt "accel" msgid "processing modules" msgstr "módulos de processamento" -#: ../src/control/control.c:160 +#: ../src/control/control.c:166 msgctxt "accel" msgid "<blending>" msgstr "<mesclagem>" -#: ../src/control/control.c:167 +#: ../src/control/control.c:173 msgctxt "accel" msgid "Lua scripts" msgstr "scripts Lua" -#: ../src/control/control.c:174 +#: ../src/control/control.c:180 msgctxt "accel" msgid "fallbacks" msgstr "alternativos" -#: ../src/control/control.c:183 +#: ../src/control/control.c:189 msgctxt "accel" msgid "<focused>" msgstr "<em foco>" -#: ../src/control/control.c:202 +#: ../src/control/control.c:209 msgid "show accels window" msgstr "mostra janela de atalhos" -#: ../src/control/control.c:363 +#: ../src/control/control.c:371 msgid "working..." msgstr "processando..." -#: ../src/control/crawler.c:425 +#: ../src/control/crawler.c:418 #, c-format msgid "ERROR: %s NOT synced XMP → DB" msgstr "ERRO: %s NÃO sincronizado XMP → DB" -#: ../src/control/crawler.c:426 ../src/control/crawler.c:492 -#: ../src/control/crawler.c:561 +#: ../src/control/crawler.c:419 ../src/control/crawler.c:485 +#: ../src/control/crawler.c:554 msgid "" "ERROR: cannot write the database. the destination may be full, offline or " "read-only." @@ -7032,18 +7361,18 @@ "ERRO: não é possível escrever na base de dados. o destino pode estar cheio, " "offline ou disponível somente para leitura." -#: ../src/control/crawler.c:433 +#: ../src/control/crawler.c:426 #, c-format msgid "SUCCESS: %s synced XMP → DB" msgstr "SUCESSO: %s sincronizado XMP → DB" -#: ../src/control/crawler.c:455 +#: ../src/control/crawler.c:448 #, c-format msgid "ERROR: %s NOT synced DB → XMP" msgstr "ERRO: %s NÃO sincronizado DB → XMP" -#: ../src/control/crawler.c:457 ../src/control/crawler.c:516 -#: ../src/control/crawler.c:582 +#: ../src/control/crawler.c:450 ../src/control/crawler.c:509 +#: ../src/control/crawler.c:575 #, c-format msgid "" "ERROR: cannot write %s \n" @@ -7052,129 +7381,133 @@ "ERRO: não é possível escrever %s \n" "o destino pode estar cheio, offline ou disponível somente para leitura." -#: ../src/control/crawler.c:463 +#: ../src/control/crawler.c:456 #, c-format msgid "SUCCESS: %s synced DB → XMP" msgstr "SUCESSO: %s sincronizado DB → XMP" -#: ../src/control/crawler.c:489 +#: ../src/control/crawler.c:482 #, c-format msgid "ERROR: %s NOT synced new (XMP) → old (DB)" msgstr "ERRO: %s NÃO sincronizado novo (XMP) → antigo (DB)" -#: ../src/control/crawler.c:499 +#: ../src/control/crawler.c:492 #, c-format msgid "SUCCESS: %s synced new (XMP) → old (DB)" msgstr "SUCESSO: %s sincronizado novo (XMP) → antigo (DB)" -#: ../src/control/crawler.c:513 +#: ../src/control/crawler.c:506 #, c-format msgid "ERROR: %s NOT synced new (DB) → old (XMP)" msgstr "ERRO: %s NÃO sincronizado novo (DB) → antigo (XMP)" -#: ../src/control/crawler.c:521 +#: ../src/control/crawler.c:514 #, c-format msgid "SUCCESS: %s synced new (DB) → old (XMP)" msgstr "SUCESSO: %s sincronizado novo (DB) → antigo (XMP)" -#: ../src/control/crawler.c:530 ../src/control/crawler.c:598 +#: ../src/control/crawler.c:523 ../src/control/crawler.c:591 #, c-format msgid "EXCEPTION: %s has inconsistent timestamps" msgstr "EXCEÇÃO: %s possui marcas de tempo inconsistente" -#: ../src/control/crawler.c:558 +#: ../src/control/crawler.c:551 #, c-format msgid "ERROR: %s NOT synced old (XMP) → new (DB)" msgstr "ERRO: %s NÃO sincronizado antigo (XMP) → novo (DB)" -#: ../src/control/crawler.c:567 +#: ../src/control/crawler.c:560 #, c-format msgid "SUCCESS: %s synced old (XMP) → new (DB)" msgstr "SUCESSO: %s sincronizado antigo (XMP) → novo (DB)" -#: ../src/control/crawler.c:579 +#: ../src/control/crawler.c:572 #, c-format msgid "ERROR: %s NOT synced old (DB) → new (XMP)" msgstr "ERRO: %s NÃO sincronizado antigo (DB) → novo (XMP)" -#: ../src/control/crawler.c:588 +#: ../src/control/crawler.c:581 #, c-format msgid "SUCCESS: %s synced old (DB) → new (XMP)" msgstr "SUCESSO: %s sincronizado antigo (DB) → novo (XMP)" -#: ../src/control/crawler.c:670 +#: ../src/control/crawler.c:663 #, c-format msgid "%id %02dh %02dm %02ds" msgstr "%id %02dh %02dm %02ds" -#: ../src/control/crawler.c:740 ../src/imageio/storage/disk.c:168 -#: ../src/imageio/storage/gallery.c:154 ../src/imageio/storage/latex.c:153 -#: ../src/imageio/storage/latex.c:171 +#: ../src/control/crawler.c:716 +msgid "XMP" +msgstr "XMP" + +#: ../src/control/crawler.c:733 ../src/imageio/storage/disk.c:250 +#: ../src/imageio/storage/gallery.c:202 ../src/imageio/storage/latex.c:190 +#: ../src/imageio/storage/latex.c:208 msgid "path" msgstr "caminho" -#: ../src/control/crawler.c:749 +#: ../src/control/crawler.c:742 msgid "XMP timestamp" msgstr "data/hora do XMP" -#: ../src/control/crawler.c:754 +#: ../src/control/crawler.c:747 msgid "database timestamp" msgstr "data/hora base de dados" -#: ../src/control/crawler.c:759 +#: ../src/control/crawler.c:752 msgid "newest" msgstr "o mais novo" -#: ../src/control/crawler.c:765 +#: ../src/control/crawler.c:758 msgid "time difference" msgstr "diferença de tempo" -#: ../src/control/crawler.c:777 +#: ../src/control/crawler.c:770 msgid "updated XMP sidecar files found" msgstr "arquivo auxiliar XMP atualizado não encontrado" -#: ../src/control/crawler.c:778 +#: ../src/control/crawler.c:771 msgid "_close" msgstr "_fechar" #. setup selection accelerators #. action-box -#: ../src/control/crawler.c:793 ../src/dtgtk/thumbtable.c:2578 -#: ../src/libs/import.c:1722 ../src/libs/select.c:135 +#: ../src/control/crawler.c:786 ../src/dtgtk/thumbtable.c:2755 +#: ../src/libs/import.c:1732 ../src/libs/select.c:136 msgid "select all" msgstr "selecionar tudo" -#: ../src/control/crawler.c:794 ../src/dtgtk/thumbtable.c:2580 -#: ../src/libs/import.c:1726 ../src/libs/select.c:139 +#: ../src/control/crawler.c:787 ../src/dtgtk/thumbtable.c:2757 +#: ../src/libs/import.c:1736 ../src/libs/select.c:140 msgid "select none" msgstr "selecionar nenhuma" -#: ../src/control/crawler.c:795 ../src/dtgtk/thumbtable.c:2582 -#: ../src/libs/select.c:143 +#: ../src/control/crawler.c:788 ../src/dtgtk/thumbtable.c:2759 +#: ../src/libs/select.c:144 msgid "invert selection" msgstr "inverter seleção" -#: ../src/control/crawler.c:807 +#: ../src/control/crawler.c:800 msgid "on the selection:" msgstr "na seleção:" -#: ../src/control/crawler.c:808 +#: ../src/control/crawler.c:801 msgid "keep the XMP edit" msgstr "manter a edição do XMP" -#: ../src/control/crawler.c:809 +#: ../src/control/crawler.c:802 msgid "keep the database edit" msgstr "manter a edição da base de dados" -#: ../src/control/crawler.c:810 +#: ../src/control/crawler.c:803 msgid "keep the newest edit" msgstr "manter a edição mais nova" -#: ../src/control/crawler.c:811 +#: ../src/control/crawler.c:804 msgid "keep the oldest edit" msgstr "manter a edição mais antiga" -#: ../src/control/crawler.c:836 +#: ../src/control/crawler.c:829 msgid "synchronization log" msgstr "log de sincronização" @@ -7204,6 +7537,10 @@ msgid "starting to import images from camera" msgstr "começando a importar imagens da câmera" +#: ../src/control/jobs/camera_jobs.c:302 +msgid "failed to import images from camera." +msgstr "não foi possível importar imagens da câmera" + #: ../src/control/jobs/camera_jobs.c:309 #, c-format msgid "importing %d image from camera" @@ -7309,7 +7646,8 @@ msgid "_remove from library" msgstr "_remover da biblioteca de imagens" -#: ../src/control/jobs/control_jobs.c:884 +#: ../src/control/jobs/control_jobs.c:884 ../src/libs/styles.c:440 +#: ../src/libs/styles.c:625 msgid "_skip" msgstr "_pular" @@ -7407,42 +7745,42 @@ msgid "exporting %d / %d to %s" msgstr "exportando %d / %d para %s" -#: ../src/control/jobs/control_jobs.c:1459 ../src/views/darkroom.c:800 +#: ../src/control/jobs/control_jobs.c:1451 ../src/views/darkroom.c:721 #: ../src/views/print.c:369 #, c-format msgid "image `%s' is currently unavailable" msgstr "imagem `%s' não está disponível" -#: ../src/control/jobs/control_jobs.c:1551 +#: ../src/control/jobs/control_jobs.c:1554 msgid "merge HDR image" msgstr "fundir imagem HDR" -#: ../src/control/jobs/control_jobs.c:1565 +#: ../src/control/jobs/control_jobs.c:1568 msgid "duplicate images" msgstr "duplicar imagens" -#: ../src/control/jobs/control_jobs.c:1571 +#: ../src/control/jobs/control_jobs.c:1574 msgid "flip images" msgstr "inverter (espelhar) imagens" -#: ../src/control/jobs/control_jobs.c:1578 +#: ../src/control/jobs/control_jobs.c:1581 msgid "set monochrome images" msgstr "definir imagens monocromáticas" #. get all selected images now, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1585 +#: ../src/control/jobs/control_jobs.c:1588 msgid "remove images" msgstr "remover imagens" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove image?" msgstr "remover imagem?" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove images?" msgstr "remover imagens?" -#: ../src/control/jobs/control_jobs.c:1599 +#: ../src/control/jobs/control_jobs.c:1602 #, c-format msgid "" "do you really want to remove %d image from darktable\n" @@ -7458,21 +7796,21 @@ "(sem remover o arquivo do disco)?" #. first get all selected images, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1614 -#: ../src/control/jobs/control_jobs.c:1647 +#: ../src/control/jobs/control_jobs.c:1617 +#: ../src/control/jobs/control_jobs.c:1650 msgid "delete images" msgstr "excluir imagens" -#: ../src/control/jobs/control_jobs.c:1630 -#: ../src/control/jobs/control_jobs.c:1660 +#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1663 msgid "delete image?" msgstr "excluir imagem?" -#: ../src/control/jobs/control_jobs.c:1630 +#: ../src/control/jobs/control_jobs.c:1633 msgid "delete images?" msgstr "excluir imagens?" -#: ../src/control/jobs/control_jobs.c:1631 +#: ../src/control/jobs/control_jobs.c:1634 #, c-format msgid "" "do you really want to physically delete %d image\n" @@ -7487,14 +7825,14 @@ "você realmente deseja excluir fisicamente %d imagens do disco?\n" "(usando a lixeira se possível)?" -#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1636 #, c-format msgid "do you really want to physically delete %d image from disk?" msgid_plural "do you really want to physically delete %d images from disk?" msgstr[0] "você realmente deseja excluir fisicamente %d imagem do disco?" msgstr[1] "você realmente deseja excluir fisicamente %d imagens do disco?" -#: ../src/control/jobs/control_jobs.c:1661 +#: ../src/control/jobs/control_jobs.c:1664 msgid "" "do you really want to physically delete selected image (using trash if " "possible)?" @@ -7502,27 +7840,27 @@ "você realmente deseja excluir fisicamente a imagem selecionada do disco " "(usando a lixeira se possível)?" -#: ../src/control/jobs/control_jobs.c:1662 +#: ../src/control/jobs/control_jobs.c:1665 msgid "do you really want to physically delete selected image from disk?" msgstr "" "você realmente deseja excluir fisicamente a imagem selecionada do disco?" -#: ../src/control/jobs/control_jobs.c:1677 +#: ../src/control/jobs/control_jobs.c:1680 msgid "move images" msgstr "mover imagens" -#: ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 msgid "_select as destination" msgstr "_selecionar como destino" -#: ../src/control/jobs/control_jobs.c:1708 +#: ../src/control/jobs/control_jobs.c:1711 msgid "move image?" msgid_plural "move images?" msgstr[0] "mover imagem?" msgstr[1] "mover imagens?" -#: ../src/control/jobs/control_jobs.c:1709 +#: ../src/control/jobs/control_jobs.c:1712 #, c-format msgid "" "do you really want to physically move %d image to %s?\n" @@ -7537,117 +7875,112 @@ "você realmente deseja mover fisicamente as %d imagens para %s?\n" "(todas duplicatas serão movidas também)" -#: ../src/control/jobs/control_jobs.c:1731 +#: ../src/control/jobs/control_jobs.c:1734 msgid "copy images" msgstr "copiar imagens" -#: ../src/control/jobs/control_jobs.c:1762 +#: ../src/control/jobs/control_jobs.c:1765 msgid "copy image?" msgid_plural "copy images?" msgstr[0] "copiar imagem?" msgstr[1] "copiar imagens?" -#: ../src/control/jobs/control_jobs.c:1763 +#: ../src/control/jobs/control_jobs.c:1766 #, c-format msgid "do you really want to physically copy %d image to %s?" msgid_plural "do you really want to physically copy %d images to %s?" msgstr[0] "você realmente deseja copiar fisicamente %d imagem para %s?" msgstr[1] "você realmente deseja copiar fisicamente %d imagens para %s?" -#: ../src/control/jobs/control_jobs.c:1781 -#: ../src/control/jobs/control_jobs.c:1789 +#: ../src/control/jobs/control_jobs.c:1784 +#: ../src/control/jobs/control_jobs.c:1792 msgid "local copy images" msgstr "copia imagens localmente" -#: ../src/control/jobs/control_jobs.c:1796 ../src/libs/image.c:604 +#: ../src/control/jobs/control_jobs.c:1799 ../src/libs/image.c:674 msgid "refresh EXIF" msgstr "atualizar EXIF" -#: ../src/control/jobs/control_jobs.c:1860 +#: ../src/control/jobs/control_jobs.c:1863 #, c-format msgid "failed to get parameters from storage module `%s', aborting export.." msgstr "" "falha o obter parâmetros do módulo de armazenamento `%s', abortando " "exportação.." -#: ../src/control/jobs/control_jobs.c:1876 +#: ../src/control/jobs/control_jobs.c:1879 msgid "export images" msgstr "exportar imagens" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "adding time offset to %d image" msgstr "adicionando compensação de tempo a %d imagem" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "setting date/time of %d image" msgstr "definindo data/hora em %d imagem" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "adding time offset to %d images" msgstr "adicionando compensação de tempo a %d imagens" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "setting date/time of %d images" msgstr "definindo data/hora em %d imagens" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "added time offset to %d image" msgstr "compensação de tempo adicionada a %d imagem" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "set date/time of %d image" msgstr "define data/hora em %d imagem" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "added time offset to %d images" msgstr "compensação de tempo adicionada a %d imagem" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "set date/time of %d images" msgstr "definida data/hora em %d imagens" -#: ../src/control/jobs/control_jobs.c:2014 +#: ../src/control/jobs/control_jobs.c:2017 msgid "time offset" msgstr "intervalo de tempo" -#: ../src/control/jobs/control_jobs.c:2042 ../src/libs/copy_history.c:414 +#: ../src/control/jobs/control_jobs.c:2045 ../src/libs/copy_history.c:414 msgid "write sidecar files" msgstr "salvar nos arquivos XMP" -#: ../src/control/jobs/control_jobs.c:2256 ../src/control/jobs/film_jobs.c:297 +#: ../src/control/jobs/control_jobs.c:2259 ../src/control/jobs/film_jobs.c:297 #, c-format msgid "importing %d image" msgid_plural "importing %d images" msgstr[0] "importando %d imagem" msgstr[1] "importando %d imagens" -#: ../src/control/jobs/control_jobs.c:2292 +#: ../src/control/jobs/control_jobs.c:2295 #, c-format msgid "importing %d/%d image" msgid_plural "importing %d/%d images" msgstr[0] "importando %d/%d imagem" msgstr[1] "importando %d/%d imagens" -#: ../src/control/jobs/control_jobs.c:2300 +#: ../src/control/jobs/control_jobs.c:2305 #, c-format msgid "imported %d image" msgid_plural "imported %d images" msgstr[0] "importada %d imagem" msgstr[1] "importadas %d imagens" -#: ../src/control/jobs/control_jobs.c:2347 ../src/gui/preferences.c:530 -#: ../src/libs/import.c:172 -msgid "import" -msgstr "importar" - #: ../src/control/jobs/film_jobs.c:73 ../src/control/jobs/film_jobs.c:109 msgid "import images" msgstr "importar imagens" @@ -7665,11 +7998,11 @@ msgid "import image" msgstr "importar imagem" -#: ../src/develop/blend.c:322 +#: ../src/develop/blend.c:315 msgid "detail mask blending error" msgstr "erro na mesclagem da máscara de detalhes" -#: ../src/develop/blend.c:864 +#: ../src/develop/blend.c:904 msgid "detail mask CL blending problem" msgstr "problema na mesclagem da máscara CL" @@ -7870,8 +8203,7 @@ msgid "reverse" msgstr "reverter" -#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:413 -#: ../src/libs/metadata.c:633 ../src/libs/metadata_view.c:1193 +#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:442 msgid "default" msgstr "padrão" @@ -7879,35 +8211,35 @@ msgid "RAW" msgstr "RAW" -#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2014 +#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2030 msgid "RGB (display)" msgstr "RGB (exibição)" -#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2027 +#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2043 msgid "RGB (scene)" msgstr "RGB (cena)" #. DEVELOP_MASK_ENABLED -#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3419 +#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3438 msgid "uniformly" msgstr "uniforme" -#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:3429 ../src/develop/imageop.c:2660 +#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:3448 ../src/develop/imageop.c:2669 msgid "drawn mask" msgstr " máscara desenhada" -#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2512 -#: ../src/develop/blend_gui.c:3440 ../src/develop/imageop.c:2662 +#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2528 +#: ../src/develop/blend_gui.c:3459 ../src/develop/imageop.c:2671 msgid "parametric mask" msgstr "máscara paramétrica" -#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2951 -#: ../src/develop/blend_gui.c:3467 ../src/develop/imageop.c:2664 +#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2966 +#: ../src/develop/blend_gui.c:3486 ../src/develop/imageop.c:2673 msgid "raster mask" msgstr "máscara rasterizada" -#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3454 +#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3473 msgid "drawn & parametric mask" msgstr "máscara desenhada & paramétrica" @@ -7943,177 +8275,177 @@ msgid "input after blur" msgstr "entrada depois do desfoque" -#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:129 -#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/libs/live_view.c:362 +#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:157 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/libs/live_view.c:362 msgid "on" msgstr "ligado" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "input" msgstr "entrada" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "output" msgstr "saída" -#: ../src/develop/blend_gui.c:995 +#: ../src/develop/blend_gui.c:998 msgid " (zoom)" msgstr " (zoom)" -#: ../src/develop/blend_gui.c:1003 +#: ../src/develop/blend_gui.c:1006 msgid " (log)" msgstr " (log)" -#: ../src/develop/blend_gui.c:1988 +#: ../src/develop/blend_gui.c:2004 msgid "reset to default blend colorspace" msgstr "redefinir para o espaço de cor padrão" -#: ../src/develop/blend_gui.c:2044 +#: ../src/develop/blend_gui.c:2060 msgid "reset and hide output channels" msgstr "redefinir e ocultar canais de saída" -#: ../src/develop/blend_gui.c:2051 +#: ../src/develop/blend_gui.c:2067 msgid "show output channels" msgstr "mostrar canais de saída" -#: ../src/develop/blend_gui.c:2290 ../src/develop/blend_gui.c:2357 -#: ../src/iop/tonecurve.c:1134 +#: ../src/develop/blend_gui.c:2306 ../src/develop/blend_gui.c:2373 +#: ../src/iop/tonecurve.c:1156 msgid "L" msgstr "L" -#: ../src/develop/blend_gui.c:2290 +#: ../src/develop/blend_gui.c:2306 msgid "sliders for L channel" msgstr "deslizante para canal L" -#: ../src/develop/blend_gui.c:2295 ../src/iop/tonecurve.c:1135 +#: ../src/develop/blend_gui.c:2311 ../src/iop/tonecurve.c:1157 msgid "a" msgstr "a" -#: ../src/develop/blend_gui.c:2295 +#: ../src/develop/blend_gui.c:2311 msgid "sliders for a channel" msgstr "deslizante para canal a" -#: ../src/develop/blend_gui.c:2299 +#: ../src/develop/blend_gui.c:2315 msgid "green/red" msgstr "verde/vermelho" -#: ../src/develop/blend_gui.c:2300 ../src/iop/tonecurve.c:1136 +#: ../src/develop/blend_gui.c:2316 ../src/iop/tonecurve.c:1158 msgid "b" msgstr "b" -#: ../src/develop/blend_gui.c:2300 +#: ../src/develop/blend_gui.c:2316 msgid "sliders for b channel" msgstr "deslizante para canal b" -#: ../src/develop/blend_gui.c:2304 +#: ../src/develop/blend_gui.c:2320 msgid "blue/yellow" msgstr "azul/amarelo" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "C" msgstr "C" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "sliders for chroma channel (of LCh)" msgstr "deslizante para canal croma (de LCh)" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "h" msgstr "h" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "sliders for hue channel (of LCh)" msgstr "deslizante para canal matiz (de LCh)" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "g" msgstr "g" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "sliders for gray value" msgstr "deslizante para valor cinza" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/denoiseprofile.c:3710 -#: ../src/iop/rawdenoise.c:894 ../src/iop/rgbcurve.c:1358 -#: ../src/iop/rgblevels.c:1003 ../src/libs/filters/colors.c:137 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/denoiseprofile.c:3714 +#: ../src/iop/rawdenoise.c:910 ../src/iop/rgbcurve.c:1358 +#: ../src/iop/rgblevels.c:1043 ../src/libs/filters/colors.c:137 msgid "R" msgstr "R" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 msgid "sliders for red channel" msgstr "deslizante para canal vermelho" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/denoiseprofile.c:3711 -#: ../src/iop/rawdenoise.c:895 ../src/iop/rgbcurve.c:1359 -#: ../src/iop/rgblevels.c:1004 ../src/libs/filters/colors.c:143 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/denoiseprofile.c:3715 +#: ../src/iop/rawdenoise.c:911 ../src/iop/rgbcurve.c:1359 +#: ../src/iop/rgblevels.c:1044 ../src/libs/filters/colors.c:143 msgid "G" msgstr "G" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 msgid "sliders for green channel" msgstr "deslizante para canal verde" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/denoiseprofile.c:3712 -#: ../src/iop/rawdenoise.c:896 ../src/iop/rgbcurve.c:1360 -#: ../src/iop/rgblevels.c:1005 ../src/libs/filters/colors.c:146 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/denoiseprofile.c:3716 +#: ../src/iop/rawdenoise.c:912 ../src/iop/rgbcurve.c:1360 +#: ../src/iop/rgblevels.c:1045 ../src/libs/filters/colors.c:146 msgid "B" msgstr "B" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 msgid "sliders for blue channel" msgstr "deslizante para canal azul" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "H" msgstr "H" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "sliders for hue channel (of HSL)" msgstr "deslizante para canal matiz (de HSL)" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "S" msgstr "S" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "sliders for chroma channel (of HSL)" msgstr "deslizante para canal croma (de HSL)" -#: ../src/develop/blend_gui.c:2357 +#: ../src/develop/blend_gui.c:2373 msgid "sliders for value channel (of HSL)" msgstr "deslizante para canal valor (de HSL)" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "Jz" msgstr "Jz" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "sliders for value channel (of JzCzhz)" msgstr "deslizantes para canal valor (de JzCzhz)" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "Cz" msgstr "Cz" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "sliders for chroma channel (of JzCzhz)" msgstr "deslizantes para canal croma (de JzCzhz)" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "hz" msgstr "hz" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "sliders for hue channel (of JzCzhz)" msgstr "deslizantes para canal matiz (de JzCzhz)" -#: ../src/develop/blend_gui.c:2415 +#: ../src/develop/blend_gui.c:2431 msgid "" "adjustment based on input received by this module:\n" "* range defined by upper markers: blend fully\n" @@ -8126,7 +8458,7 @@ "* faixa entre marcadores superiores/inferiores adjacentes: mesclar " "gradualmente" -#: ../src/develop/blend_gui.c:2419 +#: ../src/develop/blend_gui.c:2435 msgid "" "adjustment based on unblended output of this module:\n" "* range defined by upper markers: blend fully\n" @@ -8139,19 +8471,19 @@ "* faixa entre marcadores superiores/inferiores adjacentes: mesclar " "gradualmente" -#: ../src/develop/blend_gui.c:2516 +#: ../src/develop/blend_gui.c:2532 msgid "reset blend mask settings" msgstr "redefine configurações da mascara de mesclagem" -#: ../src/develop/blend_gui.c:2527 ../src/iop/atrous.c:1665 -#: ../src/iop/colorzones.c:2399 ../src/iop/denoiseprofile.c:3707 -#: ../src/iop/rawdenoise.c:891 ../src/iop/rgbcurve.c:1357 -#: ../src/iop/rgblevels.c:1002 ../src/iop/tonecurve.c:1133 +#: ../src/develop/blend_gui.c:2543 ../src/iop/atrous.c:1797 +#: ../src/iop/colorzones.c:2641 ../src/iop/denoiseprofile.c:3711 +#: ../src/iop/rawdenoise.c:907 ../src/iop/rgbcurve.c:1357 +#: ../src/iop/rgblevels.c:1041 ../src/iop/tonecurve.c:1155 msgid "channel" msgstr "canal" -#: ../src/develop/blend_gui.c:2542 ../src/iop/colorzones.c:2413 -#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1142 +#: ../src/develop/blend_gui.c:2558 ../src/iop/colorzones.c:2660 +#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1164 msgid "" "pick GUI color from image\n" "ctrl+click or right-click to select an area" @@ -8159,12 +8491,12 @@ "obtém cor a partir da imagem\n" "ctrl+clique para selecionar uma área" -#: ../src/develop/blend_gui.c:2545 ../src/iop/colorzones.c:2415 +#: ../src/develop/blend_gui.c:2561 ../src/iop/colorzones.c:2662 #: ../src/iop/rgbcurve.c:1369 msgid "show color" msgstr "mostrar cor" -#: ../src/develop/blend_gui.c:2554 +#: ../src/develop/blend_gui.c:2570 msgid "" "set the range based on an area from the image\n" "drag to use the input image\n" @@ -8174,19 +8506,19 @@ "arraste para usar a imagem de entrada\n" "ctrl+arraste para usar a imagem de saída" -#: ../src/develop/blend_gui.c:2557 +#: ../src/develop/blend_gui.c:2573 msgid "set range" msgstr "determinar faixa" -#: ../src/develop/blend_gui.c:2560 +#: ../src/develop/blend_gui.c:2576 msgid "invert all channel's polarities" msgstr "inverter as polaridades de todos canais" -#: ../src/develop/blend_gui.c:2584 +#: ../src/develop/blend_gui.c:2600 msgid "toggle polarity. best seen by enabling 'display mask'" msgstr "alterna polaridade. melhor visto habilitando 'mostra máscara'" -#: ../src/develop/blend_gui.c:2613 +#: ../src/develop/blend_gui.c:2629 msgid "" "double-click to reset.\n" "press 'a' to toggle available slider modes.\n" @@ -8198,170 +8530,204 @@ "pressione 'c' para alternar visualização de dados de canal.\n" "pressione 'm' para alternar visualização de máscara." -#: ../src/develop/blend_gui.c:2640 ../src/develop/blend_gui.c:3531 -#: ../src/iop/basicadj.c:600 ../src/iop/colorbalancergb.c:2090 -#: ../src/iop/exposure.c:1120 ../src/iop/exposure.c:1135 -#: ../src/iop/filmic.c:1503 ../src/iop/filmic.c:1516 ../src/iop/filmic.c:1558 -#: ../src/iop/filmicrgb.c:4440 ../src/iop/filmicrgb.c:4451 -#: ../src/iop/filmicrgb.c:4485 ../src/iop/filmicrgb.c:4495 -#: ../src/iop/graduatednd.c:1113 ../src/iop/negadoctor.c:1011 -#: ../src/iop/profile_gamma.c:643 ../src/iop/profile_gamma.c:649 -#: ../src/iop/relight.c:262 ../src/iop/soften.c:378 ../src/iop/toneequal.c:3326 -#: ../src/iop/toneequal.c:3329 ../src/iop/toneequal.c:3332 -#: ../src/iop/toneequal.c:3335 ../src/iop/toneequal.c:3338 -#: ../src/iop/toneequal.c:3341 ../src/iop/toneequal.c:3344 -#: ../src/iop/toneequal.c:3347 ../src/iop/toneequal.c:3350 -#: ../src/iop/toneequal.c:3472 ../src/iop/toneequal.c:3481 -#: ../src/iop/toneequal.c:3494 ../src/views/darkroom.c:2453 +#: ../src/develop/blend_gui.c:2656 ../src/develop/blend_gui.c:3577 +#: ../src/iop/basicadj.c:630 ../src/iop/colorbalancergb.c:2161 +#: ../src/iop/exposure.c:1138 ../src/iop/exposure.c:1153 +#: ../src/iop/filmic.c:1528 ../src/iop/filmic.c:1541 ../src/iop/filmic.c:1583 +#: ../src/iop/filmicrgb.c:4504 ../src/iop/filmicrgb.c:4515 +#: ../src/iop/filmicrgb.c:4549 ../src/iop/filmicrgb.c:4559 +#: ../src/iop/graduatednd.c:1082 ../src/iop/negadoctor.c:1030 +#: ../src/iop/profile_gamma.c:657 ../src/iop/profile_gamma.c:663 +#: ../src/iop/relight.c:258 ../src/iop/soften.c:373 ../src/iop/toneequal.c:3379 +#: ../src/iop/toneequal.c:3382 ../src/iop/toneequal.c:3385 +#: ../src/iop/toneequal.c:3388 ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3394 ../src/iop/toneequal.c:3397 +#: ../src/iop/toneequal.c:3400 ../src/iop/toneequal.c:3403 +#: ../src/iop/toneequal.c:3525 ../src/iop/toneequal.c:3534 +#: ../src/iop/toneequal.c:3547 ../src/views/darkroom.c:2292 msgid " EV" msgstr " EV" -#: ../src/develop/blend_gui.c:2642 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:2951 ../src/develop/blend_gui.c:3014 -#: ../src/develop/blend_gui.c:3499 ../src/develop/blend_gui.c:3529 -#: ../src/develop/blend_gui.c:3542 ../src/develop/blend_gui.c:3559 -#: ../src/develop/blend_gui.c:3583 ../src/develop/blend_gui.c:3593 -#: ../src/develop/blend_gui.c:3602 ../src/develop/blend_gui.c:3613 +#: ../src/develop/blend_gui.c:2658 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:2966 ../src/develop/blend_gui.c:3029 +#: ../src/develop/blend_gui.c:3545 ../src/develop/blend_gui.c:3575 +#: ../src/develop/blend_gui.c:3588 ../src/develop/blend_gui.c:3605 +#: ../src/develop/blend_gui.c:3629 ../src/develop/blend_gui.c:3641 +#: ../src/develop/blend_gui.c:3652 ../src/develop/blend_gui.c:3663 msgid "blend" msgstr "mesclar" -#: ../src/develop/blend_gui.c:2642 +#: ../src/develop/blend_gui.c:2658 msgid "boost factor" msgstr "fator de ganho" -#: ../src/develop/blend_gui.c:2645 +#: ../src/develop/blend_gui.c:2661 msgid "adjust the boost factor of the channel mask" msgstr "ajustar o fator de ganho da máscara de canal" -#: ../src/develop/blend_gui.c:2682 +#: ../src/develop/blend_gui.c:2698 #, c-format msgid "%d shape used" msgid_plural "%d shapes used" msgstr[0] "%d forma usada" msgstr[1] "%d formas usadas" -#: ../src/develop/blend_gui.c:2687 ../src/develop/blend_gui.c:2743 -#: ../src/develop/blend_gui.c:2831 ../src/develop/blend_gui.c:2952 +#: ../src/develop/blend_gui.c:2703 ../src/develop/blend_gui.c:2759 +#: ../src/develop/blend_gui.c:2847 ../src/develop/blend_gui.c:2967 msgid "no mask used" msgstr "nenhuma máscara utilizada" -#: ../src/develop/blend_gui.c:2751 +#: ../src/develop/blend_gui.c:2767 msgid "toggle polarity of drawn mask" msgstr "inverter polaridade da mascara desenhada" -#: ../src/develop/blend_gui.c:2760 +#: ../src/develop/blend_gui.c:2776 msgid "show and edit mask elements" msgstr "mostrar e editar elementos da máscara" -#: ../src/develop/blend_gui.c:2761 +#: ../src/develop/blend_gui.c:2777 msgid "show and edit in restricted mode" msgstr "mostrar e editar no modo restrito" -#: ../src/develop/blend_gui.c:2768 ../src/libs/masks.c:998 -#: ../src/libs/masks.c:1816 ../src/libs/masks.c:1820 +#: ../src/develop/blend_gui.c:2784 ../src/libs/masks.c:1014 +#: ../src/libs/masks.c:1812 ../src/libs/masks.c:1816 msgid "add gradient" msgstr "adicionar gradiente" -#: ../src/develop/blend_gui.c:2769 +#: ../src/develop/blend_gui.c:2785 msgid "add multiple gradients" msgstr "adicionar múltiplos gradientes" -#: ../src/develop/blend_gui.c:2776 ../src/iop/retouch.c:2238 -#: ../src/libs/masks.c:978 ../src/libs/masks.c:1852 ../src/libs/masks.c:1856 +#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2466 +#: ../src/libs/masks.c:994 ../src/libs/masks.c:1848 ../src/libs/masks.c:1852 msgid "add brush" msgstr "adicionar pincel" -#: ../src/develop/blend_gui.c:2777 ../src/iop/retouch.c:2238 +#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2466 msgid "add multiple brush strokes" msgstr "adicionar múltiplas pinceladas" -#: ../src/develop/blend_gui.c:2784 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 ../src/libs/masks.c:993 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1829 +#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 ../src/libs/masks.c:1009 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1825 msgid "add path" msgstr "adicionar caminho" -#: ../src/develop/blend_gui.c:2785 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 +#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 msgid "add multiple paths" msgstr "adicionar múltiplos caminhos" -#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 ../src/libs/masks.c:988 ../src/libs/masks.c:1834 -#: ../src/libs/masks.c:1838 +#: ../src/develop/blend_gui.c:2808 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 ../src/libs/masks.c:1004 ../src/libs/masks.c:1830 +#: ../src/libs/masks.c:1834 msgid "add ellipse" msgstr "adicionar elipse" -#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 +#: ../src/develop/blend_gui.c:2809 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 msgid "add multiple ellipses" msgstr "adiciona múltiplas elipses" -#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 ../src/libs/masks.c:983 ../src/libs/masks.c:1843 -#: ../src/libs/masks.c:1847 +#: ../src/develop/blend_gui.c:2816 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 ../src/libs/masks.c:999 ../src/libs/masks.c:1839 +#: ../src/libs/masks.c:1843 msgid "add circle" msgstr "adicionar círculo" -#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 +#: ../src/develop/blend_gui.c:2817 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 msgid "add multiple circles" msgstr "adicionar múltiplos círculos" -#: ../src/develop/blend_gui.c:2961 +#: ../src/develop/blend_gui.c:2976 msgid "toggle polarity of raster mask" msgstr "alterna polaridade da máscara raster" -#: ../src/develop/blend_gui.c:3101 +#: ../src/develop/blend_gui.c:3119 msgid "normal & difference" msgstr "normal & diferença" -#: ../src/develop/blend_gui.c:3106 +#: ../src/develop/blend_gui.c:3124 msgid "lighten" msgstr "clarear" -#: ../src/develop/blend_gui.c:3113 +#: ../src/develop/blend_gui.c:3131 msgid "darken" msgstr "escurecer" -#: ../src/develop/blend_gui.c:3120 +#: ../src/develop/blend_gui.c:3138 msgid "contrast enhancing" msgstr "melhoria de contraste" -#: ../src/develop/blend_gui.c:3127 ../src/develop/blend_gui.c:3150 +#: ../src/develop/blend_gui.c:3145 ../src/develop/blend_gui.c:3168 msgid "color channel" msgstr "canal de cor" -#: ../src/develop/blend_gui.c:3138 ../src/develop/blend_gui.c:3153 +#: ../src/develop/blend_gui.c:3156 ../src/develop/blend_gui.c:3171 msgid "chromaticity & lightness" msgstr "cromaticidade e luminância" -#: ../src/develop/blend_gui.c:3145 +#: ../src/develop/blend_gui.c:3163 msgid "normal & arithmetic" msgstr "normal & aritmético" #. add deprecated blend mode -#: ../src/develop/blend_gui.c:3166 +#: ../src/develop/blend_gui.c:3184 msgid "deprecated" msgstr "descontinuados/obsoletos" -#: ../src/develop/blend_gui.c:3478 +#. should never happen: unknown blend mode +#: ../src/develop/blend_gui.c:3188 +#, c-format +msgid "unknown blend mode '%d' in module '%s'" +msgstr "modo de mesclagem '%d' desconhecido no módulo '%s'" + +#: ../src/develop/blend_gui.c:3497 msgid "blending options" msgstr "opções de mesclagem" -#: ../src/develop/blend_gui.c:3500 ../src/libs/history.c:949 -msgid "blend mode" -msgstr "modo de mesclagem" +#: ../src/develop/blend_gui.c:3516 +msgid "blend mask" +msgstr "máscara de mesclagem" -#: ../src/develop/blend_gui.c:3503 +#: ../src/develop/blend_gui.c:3520 +msgid "display mask and/or color channel" +msgstr "mostrar máscaras e/ou canal de cor" + +#: ../src/develop/blend_gui.c:3525 +msgid "" +"display mask and/or color channel.\n" +"ctrl+click to display mask,\n" +"shift+click to display channel.\n" +"hover over parametric mask slider to select channel for display" +msgstr "" +"mostra máscara e/ou canal de cor.\n" +"ctrl-clique mostra máscara,\n" +"shift-clique mostra canal.\n" +"passe pelo slider da máscara paramétrica para escolher o canal a mostrar" + +#: ../src/develop/blend_gui.c:3532 +msgid "temporarily switch off blend mask" +msgstr "desligar temporariamente a máscara de mesclagem" + +#: ../src/develop/blend_gui.c:3537 +msgid "" +"temporarily switch off blend mask.\n" +"only for module in focus" +msgstr "" +"desliga temporariamente a máscara de mesclagem.\n" +"apenas para módulo em uso" + +#: ../src/develop/blend_gui.c:3549 msgid "choose blending mode" msgstr "seleciona modo de mesclagem" -#: ../src/develop/blend_gui.c:3513 +#: ../src/develop/blend_gui.c:3559 msgid "toggle blend order" msgstr "alterna ordem de mesclagem" -#: ../src/develop/blend_gui.c:3519 +#: ../src/develop/blend_gui.c:3565 msgid "" "toggle the blending order between the input and the output of the module,\n" "by default the output will be blended on top of the input,\n" @@ -8371,29 +8737,29 @@ "por padrão a saída será mesclada sobre a entrada,\n" "mas a ordem pode ser revertida clicando no ícone (entrada sobre a saída)" -#: ../src/develop/blend_gui.c:3530 ../src/libs/history.c:953 -msgid "blend fulcrum" -msgstr "pivô (fulcrum) de mesclagem" +#: ../src/develop/blend_gui.c:3576 +msgid "fulcrum" +msgstr "pivô (fulcrum)" -#: ../src/develop/blend_gui.c:3534 +#: ../src/develop/blend_gui.c:3580 msgid "adjust the fulcrum used by some blending operations" msgstr "ajusta o pivô (fulcrum) usado por algumas operações de mesclagem" #. Add opacity/scale sliders to table -#: ../src/develop/blend_gui.c:3542 ../src/iop/watermark.c:1314 -#: ../src/libs/masks.c:104 +#: ../src/develop/blend_gui.c:3588 ../src/iop/watermark.c:1362 +#: ../src/libs/masks.c:105 msgid "opacity" msgstr "opacidade" -#: ../src/develop/blend_gui.c:3546 +#: ../src/develop/blend_gui.c:3591 msgid "set the opacity of the blending" msgstr "defina a opacidade da mesclagem" -#: ../src/develop/blend_gui.c:3550 ../src/libs/history.c:956 +#: ../src/develop/blend_gui.c:3596 ../src/libs/history.c:956 msgid "combine masks" msgstr "combinar máscaras" -#: ../src/develop/blend_gui.c:3552 +#: ../src/develop/blend_gui.c:3598 msgid "" "how to combine individual drawn mask and different channels of parametric " "mask" @@ -8401,11 +8767,11 @@ "como combinar máscara desenhada individualmente e diferentes canais da " "máscara paramétrica" -#: ../src/develop/blend_gui.c:3559 +#: ../src/develop/blend_gui.c:3605 msgid "details threshold" msgstr "limiar de detalhes" -#: ../src/develop/blend_gui.c:3563 +#: ../src/develop/blend_gui.c:3609 msgid "" "adjust the threshold for the details mask (using raw data),\n" "positive values select areas with strong details,\n" @@ -8415,11 +8781,11 @@ "valores positivos selecionam áreas com detalhes fortes,\n" "valores negativos selecionam áreas planas" -#: ../src/develop/blend_gui.c:3571 ../src/libs/history.c:959 +#: ../src/develop/blend_gui.c:3617 ../src/libs/history.c:959 msgid "feathering guide" msgstr "guia de enevoamento" -#: ../src/develop/blend_gui.c:3574 +#: ../src/develop/blend_gui.c:3620 msgid "" "choose to guide mask by input or output image and\n" "choose to apply feathering before or after mask blur" @@ -8427,28 +8793,28 @@ "seleciona guiar a máscara pela imagem de entrada ou pela imagem de saída e\n" "seleciona aplicar enevoamento antes ou depois do desfoque da máscara" -#: ../src/develop/blend_gui.c:3583 ../src/libs/history.c:958 +#: ../src/develop/blend_gui.c:3629 ../src/libs/history.c:958 msgid "feathering radius" msgstr "raio de enevoamento" -#: ../src/develop/blend_gui.c:3586 +#: ../src/develop/blend_gui.c:3632 msgid "spatial radius of feathering" msgstr "raio espacial do enevoamento" -#: ../src/develop/blend_gui.c:3593 +#: ../src/develop/blend_gui.c:3641 msgid "blurring radius" msgstr "raio para desfoque" -#: ../src/develop/blend_gui.c:3596 +#: ../src/develop/blend_gui.c:3644 msgid "radius for gaussian blur of blend mask" msgstr "raio para desfoque gaussiano da máscara de mesclagem" -#: ../src/develop/blend_gui.c:3602 ../src/iop/retouch.c:2453 +#: ../src/develop/blend_gui.c:3652 ../src/iop/retouch.c:2738 #: ../src/libs/history.c:954 msgid "mask opacity" msgstr "opacidade da máscara" -#: ../src/develop/blend_gui.c:3606 +#: ../src/develop/blend_gui.c:3656 msgid "" "shifts and tilts the tone curve of the blend mask to adjust its brightness\n" "without affecting fully transparent/fully opaque regions" @@ -8457,56 +8823,36 @@ "luminosidade\n" "sem afetar regiões completamente transparentes ou completamente opacas" -#: ../src/develop/blend_gui.c:3613 ../src/libs/history.c:962 +#: ../src/develop/blend_gui.c:3663 ../src/libs/history.c:962 msgid "mask contrast" msgstr "contraste da máscara" -#: ../src/develop/blend_gui.c:3617 +#: ../src/develop/blend_gui.c:3667 msgid "" "gives the tone curve of the blend mask an s-like shape to adjust its contrast" msgstr "" "dá a curva de tons da máscara de mesclagem como uma forma em S para ajustar " "seu contraste" -#: ../src/develop/blend_gui.c:3621 +#: ../src/develop/blend_gui.c:3671 msgid "mask refinement" msgstr "refinamento da máscara" -#: ../src/develop/blend_gui.c:3625 -msgid "display mask and/or color channel" -msgstr "mostrar máscaras e/ou canal de cor" - -#: ../src/develop/blend_gui.c:3630 +#: ../src/develop/develop.c:732 msgid "" -"display mask and/or color channel.\n" -"ctrl+click to display mask,\n" -"shift+click to display channel.\n" -"hover over parametric mask slider to select channel for display" -msgstr "" -"mostra máscara e/ou canal de cor.\n" -"ctrl-clique mostra máscara,\n" -"shift-clique mostra canal.\n" -"passe pelo slider da máscara paramétrica para escolher o canal a mostrar" - -#: ../src/develop/blend_gui.c:3637 -msgid "temporarily switch off blend mask" -msgstr "desligar temporariamente a máscara de mesclagem" - -#: ../src/develop/blend_gui.c:3642 -msgid "" -"temporarily switch off blend mask.\n" -"only for module in focus" +"autosaving history has been disabled for this session because of a slow " +"drive used" msgstr "" -"desliga temporariamente a máscara de mesclagem.\n" -"apenas para módulo em uso" +"a gravação automática do histórico foi desabilitada para esta sessão por " +"causa de um drive lento usado" -#: ../src/develop/develop.c:2303 +#: ../src/develop/develop.c:2202 #, c-format msgid "%s: module `%s' version mismatch: %d != %d" msgstr "%s: módulo `%s' versão incompatível: %d != %d" -#: ../src/develop/develop.c:2834 -msgid "module duplicate, can't move new instance after the base one\n" +#: ../src/develop/develop.c:3016 +msgid "duplicate module, can't move new instance after the base one\n" msgstr "" "duplicação de módulos, não é possível mover a nova instância para depois da " "instância base\n" @@ -8519,70 +8865,69 @@ msgid "duplicate instance" msgstr "duplicar instância" -#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3739 -#: ../src/libs/masks.c:1152 +#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3755 +#: ../src/libs/masks.c:1146 msgid "move up" msgstr "mover para cima" -#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3740 -#: ../src/libs/masks.c:1157 +#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3756 +#: ../src/libs/masks.c:1151 msgid "move down" msgstr "mover para baixo" #. delete button label and tooltip will be updated based on trash pref -#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3742 -#: ../src/gui/accelerators.c:155 ../src/gui/presets.c:562 -#: ../src/libs/image.c:285 ../src/libs/image.c:480 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 +#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3758 +#: ../src/gui/accelerators.c:173 ../src/libs/image.c:303 +#: ../src/libs/image.c:513 msgid "delete" msgstr "excluir" -#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3743 -#: ../src/libs/modulegroups.c:3464 ../src/libs/modulegroups.c:3815 +#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3759 +#: ../src/libs/modulegroups.c:3817 msgid "rename" msgstr "renomear" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched on" msgstr "'%s' está ativado" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched off" msgstr "'%s' está desativado" -#: ../src/develop/imageop.c:2654 +#: ../src/develop/imageop.c:2663 msgid "unknown mask" msgstr "máscara desconhecida" -#: ../src/develop/imageop.c:2658 +#: ../src/develop/imageop.c:2667 msgid "drawn + parametric mask" msgstr "máscara desenhada + paramétrica" -#: ../src/develop/imageop.c:2667 +#: ../src/develop/imageop.c:2676 #, c-format msgid "this module has a `%s'" msgstr "este módulo tem uma `%s'" -#: ../src/develop/imageop.c:2672 +#: ../src/develop/imageop.c:2681 #, c-format msgid "taken from module %s" msgstr "tomada do módulo %s" -#: ../src/develop/imageop.c:2677 +#: ../src/develop/imageop.c:2686 msgid "click to display (module must be activated first)" msgstr "clique para mostrar (o módulo deve ser ativado antes)" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "purpose" msgstr "propósito" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "process" msgstr "processamento" -#: ../src/develop/imageop.c:2906 +#: ../src/develop/imageop.c:2917 msgid "" "multiple instance actions\n" "right-click creates new instance" @@ -8590,7 +8935,7 @@ "ações em múltiplas instâncias\n" "clique-direito cria nova instância" -#: ../src/develop/imageop.c:2921 +#: ../src/develop/imageop.c:2932 msgid "" "reset parameters\n" "ctrl+click to reapply any automatic presets" @@ -8598,7 +8943,7 @@ "redefinir parâmetros\n" "ctrl+clique para reaplicar quaisquer predefinições automáticas" -#: ../src/develop/imageop.c:2933 +#: ../src/develop/imageop.c:2944 msgid "" "presets\n" "right-click to apply on new instance" @@ -8606,15 +8951,15 @@ "predefinições\n" "clique-direito para aplicar em nova instância" -#: ../src/develop/imageop.c:3183 ../src/develop/imageop.c:3205 +#: ../src/develop/imageop.c:3194 ../src/develop/imageop.c:3216 msgid "ERROR" msgstr "ERRO" -#: ../src/develop/imageop.c:3620 +#: ../src/develop/imageop.c:3622 msgid "unsupported input" msgstr "entrada não suportada" -#: ../src/develop/imageop.c:3621 +#: ../src/develop/imageop.c:3623 msgid "" "you have placed this module at\n" "a position in the pipeline where\n" @@ -8626,49 +8971,49 @@ "formato de dados não combina\n" "com os requisitos." -#: ../src/develop/imageop.c:3738 ../src/develop/imageop.c:3748 -#: ../src/gui/accelerators.c:151 ../src/libs/lib.c:1415 +#: ../src/develop/imageop.c:3754 ../src/develop/imageop.c:3764 +#: ../src/gui/accelerators.c:169 ../src/libs/lib.c:1415 msgid "show" msgstr "mostrar" -#: ../src/develop/imageop.c:3741 ../src/libs/modulegroups.c:3310 -#: ../src/libs/modulegroups.c:3436 ../src/libs/modulegroups.c:3817 -#: ../src/libs/tagging.c:3248 +#: ../src/develop/imageop.c:3757 ../src/libs/modulegroups.c:3315 +#: ../src/libs/modulegroups.c:3438 ../src/libs/modulegroups.c:3819 +#: ../src/libs/tagging.c:3279 msgid "new" msgstr "novo" -#: ../src/develop/imageop.c:3744 ../src/libs/duplicate.c:405 -#: ../src/libs/image.c:495 ../src/libs/modulegroups.c:3813 +#: ../src/develop/imageop.c:3760 ../src/libs/duplicate.c:411 +#: ../src/libs/image.c:534 ../src/libs/modulegroups.c:3815 msgid "duplicate" msgstr "duplicar" -#: ../src/develop/imageop.c:3749 +#: ../src/develop/imageop.c:3765 msgid "enable" msgstr "ativar" -#: ../src/develop/imageop.c:3750 ../src/gui/accelerators.c:167 +#: ../src/develop/imageop.c:3766 ../src/gui/accelerators.c:185 msgid "focus" msgstr "foco" -#: ../src/develop/imageop.c:3751 ../src/gui/accelerators.c:2617 +#: ../src/develop/imageop.c:3767 ../src/gui/accelerators.c:2874 msgid "instance" msgstr "instância" -#: ../src/develop/imageop.c:3752 ../src/gui/accelerators.c:112 -#: ../src/gui/accelerators.c:122 ../src/gui/gtk.c:3009 ../src/gui/gtk.c:3056 -#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:603 -#: ../src/gui/styles_dialog.c:625 ../src/iop/atrous.c:1512 -#: ../src/libs/lib.c:1416 ../src/libs/modulegroups.c:3882 +#: ../src/develop/imageop.c:3768 ../src/gui/accelerators.c:130 +#: ../src/gui/accelerators.c:140 ../src/gui/gtk.c:3055 ../src/gui/gtk.c:3102 +#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:615 +#: ../src/gui/styles_dialog.c:637 ../src/iop/atrous.c:1626 +#: ../src/libs/lib.c:1416 ../src/libs/modulegroups.c:3884 msgid "reset" msgstr "redefinir" #. Adding the outer container -#: ../src/develop/imageop.c:3753 ../src/gui/preferences.c:798 +#: ../src/develop/imageop.c:3769 ../src/gui/preferences.c:796 #: ../src/libs/lib.c:1417 msgid "presets" msgstr "predefinições" -#: ../src/develop/imageop.c:3773 +#: ../src/develop/imageop.c:3789 msgid "processing module" msgstr "módulo de processamento" @@ -8681,54 +9026,54 @@ "%s\n" "ctrl+clique para %s" -#: ../src/develop/lightroom.c:1083 +#: ../src/develop/lightroom.c:1137 msgid "cannot find Lightroom XMP!" msgstr "não foi possível encontrar XMP do Lightroom!" -#: ../src/develop/lightroom.c:1115 ../src/develop/lightroom.c:1137 -#: ../src/develop/lightroom.c:1157 +#: ../src/develop/lightroom.c:1169 ../src/develop/lightroom.c:1191 +#: ../src/develop/lightroom.c:1211 #, c-format msgid "`%s' is not a Lightroom XMP!" msgstr "`%s' não é um XMP do Lightroom!" -#: ../src/develop/lightroom.c:1556 +#: ../src/develop/lightroom.c:1613 #, c-format msgid "%s has been imported" msgid_plural "%s have been imported" msgstr[0] "%s foi importado" msgstr[1] "%s foram importadas" -#: ../src/develop/masks/brush.c:1356 ../src/develop/masks/brush.c:1410 +#: ../src/develop/masks/brush.c:1346 ../src/develop/masks/brush.c:1400 #, c-format msgid "hardness: %3.2f%%" msgstr "dureza: %3.2f%%" -#: ../src/develop/masks/brush.c:1372 ../src/develop/masks/brush.c:1470 +#: ../src/develop/masks/brush.c:1362 ../src/develop/masks/brush.c:1460 #: ../src/develop/masks/circle.c:148 ../src/develop/masks/circle.c:193 #: ../src/develop/masks/ellipse.c:484 ../src/develop/masks/ellipse.c:546 -#: ../src/develop/masks/path.c:1273 +#: ../src/develop/masks/path.c:1255 #, c-format msgid "size: %3.2f%%" msgstr "tamanho: %3.2f%%" -#: ../src/develop/masks/brush.c:3247 +#: ../src/develop/masks/brush.c:3191 msgid "[BRUSH] change size" msgstr "[PINCEL] mudar tamanho" -#: ../src/develop/masks/brush.c:3249 +#: ../src/develop/masks/brush.c:3193 msgid "[BRUSH] change hardness" msgstr "[PINCEL] mudar dureza" -#: ../src/develop/masks/brush.c:3251 +#: ../src/develop/masks/brush.c:3195 msgid "[BRUSH] change opacity" msgstr "[PINCEL] mudar opacidade" -#: ../src/develop/masks/brush.c:3263 +#: ../src/develop/masks/brush.c:3207 #, c-format msgid "brush #%d" msgstr "pincel #%d" -#: ../src/develop/masks/brush.c:3276 +#: ../src/develop/masks/brush.c:3220 #, c-format msgid "" "<b>size</b>: scroll, <b>hardness</b>: shift+scroll\n" @@ -8737,35 +9082,35 @@ "<b>tamanho</b>: scroll, <b>dureza</b>: shift+scroll\n" "<b>opacidade</b>: ctrl+scroll (%d%%)" -#: ../src/develop/masks/brush.c:3279 +#: ../src/develop/masks/brush.c:3223 msgid "<b>size</b>: scroll" msgstr "<b>tamanho</b>: scroll" #: ../src/develop/masks/circle.c:137 ../src/develop/masks/circle.c:181 #: ../src/develop/masks/ellipse.c:470 ../src/develop/masks/ellipse.c:531 -#: ../src/develop/masks/path.c:1205 +#: ../src/develop/masks/path.c:1187 #, c-format msgid "feather size: %3.2f%%" msgstr "tamanho do enevoamento: %3.2f%%" -#: ../src/develop/masks/circle.c:1510 +#: ../src/develop/masks/circle.c:1462 msgid "[CIRCLE] change size" msgstr "[CÍRCULO] mudar tamanho" -#: ../src/develop/masks/circle.c:1512 +#: ../src/develop/masks/circle.c:1464 msgid "[CIRCLE] change feather size" msgstr "[CÍRCULO] muda tamanho do enevoamento" -#: ../src/develop/masks/circle.c:1514 +#: ../src/develop/masks/circle.c:1466 msgid "[CIRCLE] change opacity" msgstr "[CÍRCULO] mudar opacidade" -#: ../src/develop/masks/circle.c:1527 +#: ../src/develop/masks/circle.c:1479 #, c-format msgid "circle #%d" msgstr "círculo #%d" -#: ../src/develop/masks/circle.c:1538 ../src/develop/masks/path.c:3490 +#: ../src/develop/masks/circle.c:1490 ../src/develop/masks/path.c:3406 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8779,32 +9124,32 @@ msgid "rotation: %3.f°" msgstr "rotação: %3.f°" -#: ../src/develop/masks/ellipse.c:2068 +#: ../src/develop/masks/ellipse.c:2015 msgid "[ELLIPSE] change size" msgstr "[ELIPSE] mudar tamanho" -#: ../src/develop/masks/ellipse.c:2071 +#: ../src/develop/masks/ellipse.c:2018 msgid "[ELLIPSE] change feather size" msgstr "[ELIPSE] muda tamanho do enevoamento" -#: ../src/develop/masks/ellipse.c:2074 ../src/develop/masks/ellipse.c:2083 +#: ../src/develop/masks/ellipse.c:2021 ../src/develop/masks/ellipse.c:2030 msgid "[ELLIPSE] rotate shape" msgstr "[ELIPSE] girar a forma" -#: ../src/develop/masks/ellipse.c:2077 +#: ../src/develop/masks/ellipse.c:2024 msgid "[ELLIPSE] change opacity" msgstr "[ELIPSE] mudar opacidade" -#: ../src/develop/masks/ellipse.c:2080 +#: ../src/develop/masks/ellipse.c:2027 msgid "[ELLIPSE] switch feathering mode" msgstr "[ELIPSE] mudar modo de enevoamento" -#: ../src/develop/masks/ellipse.c:2090 +#: ../src/develop/masks/ellipse.c:2037 #, c-format msgid "ellipse #%d" msgstr "elipse #%d" -#: ../src/develop/masks/ellipse.c:2128 +#: ../src/develop/masks/ellipse.c:2075 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8813,11 +9158,11 @@ "<b>tamanho</b>: scroll, <b>tamanho da névoa</b>: shift+scroll\n" "<b>rotação</b>: ctrl+shift+scroll, <b>opacidade</b>: ctrl+scroll (%d%%)" -#: ../src/develop/masks/ellipse.c:2132 +#: ../src/develop/masks/ellipse.c:2079 msgid "<b>rotate</b>: ctrl+drag" msgstr "<b>girar</b>: ctrl+arrastar" -#: ../src/develop/masks/ellipse.c:2135 +#: ../src/develop/masks/ellipse.c:2082 #, c-format msgid "" "<b>feather mode</b>: shift+click, <b>rotate</b>: ctrl+drag\n" @@ -8838,32 +9183,32 @@ msgid "curvature: %3.2f%%" msgstr "curvatura: %3.2f%%" -#: ../src/develop/masks/gradient.c:1555 +#: ../src/develop/masks/gradient.c:1514 msgid "[GRADIENT on pivot] rotate shape" msgstr "[GRADIENTE em pivô] girar a forma" -#: ../src/develop/masks/gradient.c:1557 +#: ../src/develop/masks/gradient.c:1516 msgid "[GRADIENT creation] set rotation" msgstr "[GRADIENTE criação] estabelecer rotação" -#: ../src/develop/masks/gradient.c:1559 +#: ../src/develop/masks/gradient.c:1518 msgid "[GRADIENT] change curvature" msgstr "[GRADIENTE] mudar curvatura" -#: ../src/develop/masks/gradient.c:1561 +#: ../src/develop/masks/gradient.c:1520 msgid "[GRADIENT] change compression" msgstr "[GRADIENTE] mudar compressão" -#: ../src/develop/masks/gradient.c:1563 +#: ../src/develop/masks/gradient.c:1522 msgid "[GRADIENT] change opacity" msgstr "[GRADIENTE] mudar opacidade" -#: ../src/develop/masks/gradient.c:1576 +#: ../src/develop/masks/gradient.c:1535 #, c-format msgid "gradient #%d" msgstr "gradiente #%d" -#: ../src/develop/masks/gradient.c:1587 +#: ../src/develop/masks/gradient.c:1546 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8872,7 +9217,7 @@ "<b>curvatura</b>: scroll, <b>compressão</b>: shift+scroll\n" "<b>rotação</b>: clique+arrastar, <b>opacidade</b> ctrl+scroll (%d%%)" -#: ../src/develop/masks/gradient.c:1592 +#: ../src/develop/masks/gradient.c:1551 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8881,7 +9226,7 @@ "<b>curvatura</b>: scroll, <b>compressão</b>: shift+scroll\n" "<b>opacidade</b>: ctrl+scroll (%d%%)" -#: ../src/develop/masks/gradient.c:1595 +#: ../src/develop/masks/gradient.c:1554 msgid "<b>rotate</b>: drag" msgstr "<b>girar</b>: arrastar" @@ -8889,84 +9234,84 @@ msgid "[SHAPE] remove shape" msgstr "[FORMA] remover forma" -#: ../src/develop/masks/masks.c:306 +#: ../src/develop/masks/masks.c:305 #, c-format msgid "group `%s'" msgstr "grupo `%s`" -#: ../src/develop/masks/masks.c:423 +#: ../src/develop/masks/masks.c:422 #, c-format msgid "copy of `%s'" msgstr "cópia de `%s`" -#: ../src/develop/masks/masks.c:984 +#: ../src/develop/masks/masks.c:985 #, c-format msgid "%s: mask version mismatch: %d != %d" msgstr "%s: versão de máscara incompatível: %d != %d" -#: ../src/develop/masks/masks.c:1239 ../src/develop/masks/masks.c:1906 +#: ../src/develop/masks/masks.c:1230 ../src/develop/masks/masks.c:1881 #, c-format msgid "opacity: %.0f%%" msgstr "opacidade: %.0f%%" -#: ../src/develop/masks/masks.c:1650 ../src/libs/masks.c:1068 +#: ../src/develop/masks/masks.c:1625 ../src/libs/masks.c:1084 msgid "add existing shape" msgstr "adicionar forma existente" -#: ../src/develop/masks/masks.c:1677 +#: ../src/develop/masks/masks.c:1652 msgid "use same shapes as" msgstr "usar as mesmas formas que" -#: ../src/develop/masks/masks.c:1990 +#: ../src/develop/masks/masks.c:1965 msgid "masks can not contain themselves" msgstr "máscaras não podem conter a si mesmas" -#: ../src/develop/masks/path.c:3433 +#: ../src/develop/masks/path.c:3349 msgid "[PATH creation] add a smooth node" msgstr "[CAMINHO criação] adiciona nó suave" -#: ../src/develop/masks/path.c:3435 +#: ../src/develop/masks/path.c:3351 msgid "[PATH creation] add a sharp node" msgstr "[CAMINHO criação] adicionar um nó nítido" -#: ../src/develop/masks/path.c:3437 +#: ../src/develop/masks/path.c:3353 msgid "[PATH creation] terminate path creation" msgstr "[CAMINHO em nó] terminar criação de caminho" -#: ../src/develop/masks/path.c:3439 +#: ../src/develop/masks/path.c:3355 msgid "[PATH on node] switch between smooth/sharp node" msgstr "[CAMINHO em nó] mudar entre nó suave/nítido" -#: ../src/develop/masks/path.c:3441 +#: ../src/develop/masks/path.c:3357 msgid "[PATH on node] remove the node" msgstr "[CAMINHO em nó] remover o nó" -#: ../src/develop/masks/path.c:3443 +#: ../src/develop/masks/path.c:3359 msgid "[PATH on feather] reset curvature" msgstr "[CAMINHO em enevoamento] redefinir curvatura" -#: ../src/develop/masks/path.c:3445 +#: ../src/develop/masks/path.c:3361 msgid "[PATH on segment] add node" msgstr "[CAMINHO em segmento] adicionar nó" -#: ../src/develop/masks/path.c:3447 +#: ../src/develop/masks/path.c:3363 msgid "[PATH] change size" msgstr "[CAMINHO] mudar tamanho" -#: ../src/develop/masks/path.c:3449 +#: ../src/develop/masks/path.c:3365 msgid "[PATH] change feather size" msgstr "[CAMINHO] muda tamanho do enevoamento" -#: ../src/develop/masks/path.c:3451 +#: ../src/develop/masks/path.c:3367 msgid "[PATH] change opacity" msgstr "[CAMINHO] mudar opacidade" -#: ../src/develop/masks/path.c:3463 +#: ../src/develop/masks/path.c:3379 #, c-format msgid "path #%d" msgstr "caminho #%d" -#: ../src/develop/masks/path.c:3473 +#: ../src/develop/masks/path.c:3389 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>cancel</b>: right-click" @@ -8974,7 +9319,7 @@ "<b>adicionar nó</b>: clique, <b>adicionar nó nítido</b>:ctrl+clique\n" "<b>cancelar</b>: clique-direito" -#: ../src/develop/masks/path.c:3476 +#: ../src/develop/masks/path.c:3392 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>finish path</b>: right-click" @@ -8982,7 +9327,7 @@ "<b>adicionar nó</b>: clique, <b>adicionar nó nítido</b>:ctrl+clique\n" "<b>finalizar caminho</b>: clique-direito" -#: ../src/develop/masks/path.c:3479 +#: ../src/develop/masks/path.c:3395 msgid "" "<b>move node</b>: drag, <b>remove node</b>: right-click\n" "<b>switch smooth/sharp mode</b>: ctrl+click" @@ -8990,7 +9335,7 @@ "<b>mover nó</b>: arrastar, <b>remover nó</b>: clique-direito\n" "<b>alternar modo entre nó suave/nítido</b>: ctrl+clique" -#: ../src/develop/masks/path.c:3483 +#: ../src/develop/masks/path.c:3399 msgid "" "<b>node curvature</b>: drag\n" "<b>reset curvature</b>: right-click" @@ -8998,7 +9343,7 @@ "<b>curvatura do nó</b>: arrastar\n" "<b>redefinir curvatura</b>: clique-direito" -#: ../src/develop/masks/path.c:3487 +#: ../src/develop/masks/path.c:3403 msgid "" "<b>move segment</b>: drag\n" "<b>add node</b>: ctrl+click" @@ -9006,11 +9351,11 @@ "<b>mover segmento</b>: arrastar\n" "<b>adicionar nó</b>: ctrl+clique" -#: ../src/develop/pixelpipe_hb.c:500 +#: ../src/develop/pixelpipe_hb.c:486 msgid "enabled as required" msgstr "habilitado porque necessário" -#: ../src/develop/pixelpipe_hb.c:501 +#: ../src/develop/pixelpipe_hb.c:487 msgid "" "history had module disabled but it is required for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -9020,11 +9365,11 @@ "provavelmente foi introduzido ao aplicar uma predefinição, estilo ou " "copiar&colar de histórico" -#: ../src/develop/pixelpipe_hb.c:508 +#: ../src/develop/pixelpipe_hb.c:494 msgid "disabled as not appropriate" msgstr "desabilitado porque não é apropriado" -#: ../src/develop/pixelpipe_hb.c:509 +#: ../src/develop/pixelpipe_hb.c:495 msgid "" "history had module enabled but it is not allowed for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -9034,15 +9379,28 @@ "provavelmente foi introduzido ao aplicar uma predefinição, estilo ou " "copiar&colar de histórico" -#: ../src/develop/pixelpipe_hb.c:2705 +#: ../src/develop/pixelpipe_hb.c:2697 msgid "" -"darktable discovered problems with your OpenCL setup; disabling OpenCL for " -"this session!" -msgstr "" -"darktable encontrou problemas com o sua configuração de OpenCL; " -"desabilitando OpenCL para esta sessão!" +"OpenCL errors encountered; disabling OpenCL for this session! some possible " +"causes:\n" +" - OpenCL out of resources due to preference settings. please try with " +"defaults,\n" +" - buggy driver for some device. please run darktable with `-d opencl' to " +"identify,\n" +" - some drivers don't support needed number of events,\n" +" - too small headroom settings while using 'use all device memory'." +msgstr "" +"Erros de OpenCL encontrados; desabilitando o OpenCL para esta seção! algumas " +"prováveis causas:\n" +" - o OpenCL não conseguiu recursos devido a configuração de preferências. " +"por favor tente com os valores padrão,\n" +" - driver com bugs para algum dispositivo. por favor execute o darktable " +"com `-d opencl' para identificar,\n" +" - alguns drivers não suportam o número necessário de eventos,\n" +" - configuração de espaço muito pequeno com 'use toda a memória do " +"dispositivo'." -#: ../src/develop/pixelpipe_hb.c:2853 +#: ../src/develop/pixelpipe_hb.c:2847 #, c-format msgid "" "module '%s' can't get raster mask from module\n" @@ -9053,29 +9411,32 @@ "porque ela é processada mais tarde na pixel pipe.\n" "a máscara de matriz de pixels será ignorada" -#: ../src/develop/tiling.c:820 ../src/develop/tiling.c:1173 +#: ../src/develop/tiling.c:819 ../src/develop/tiling.c:1172 #, c-format -msgid "tiling failed for module '%s'. output might be garbled." +msgid "" +"tiling failed for module '%s'. the output most likely will be OK, but you " +"might want to check." msgstr "" -"processamento de ladrilhos falhou no módulo '%s'. saída pode estar ilegível." +"processamento de ladrilhos falhou no módulo '%s'. a saída provavelmente está " +"OK, mas você pode querer verificar." -#: ../src/dtgtk/culling.c:254 +#: ../src/dtgtk/culling.c:223 msgid "you have reached the start of your selection" msgstr "você chegou ao começo da sua seleção" -#: ../src/dtgtk/culling.c:263 +#: ../src/dtgtk/culling.c:232 msgid "you have reached the start of your collection" msgstr "você chegou ao começo da sua coleção" -#: ../src/dtgtk/culling.c:310 +#: ../src/dtgtk/culling.c:279 msgid "you have reached the end of your selection" msgstr "você chegou ao final da sua seleção" -#: ../src/dtgtk/culling.c:337 +#: ../src/dtgtk/culling.c:306 msgid "you have reached the end of your collection" msgstr "você chegou ao final da sua coleção" -#: ../src/dtgtk/culling.c:446 +#: ../src/dtgtk/culling.c:415 #, c-format msgid "zooming is limited to %d images" msgstr "zoom é limitado a %d imagens" @@ -9166,7 +9527,7 @@ msgid "fixed" msgstr "fixa" -#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1493 +#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1498 msgid "relative" msgstr "relativa" @@ -9180,7 +9541,7 @@ msgstr "mín" #: ../src/dtgtk/range.c:630 ../src/dtgtk/range.c:1780 ../src/dtgtk/range.c:1831 -#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:282 +#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:309 msgid "max" msgstr "máx" @@ -9189,7 +9550,7 @@ msgstr "tipo de data" #. the date section -#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1505 msgid "date" msgstr "data" @@ -9214,7 +9575,7 @@ msgstr "dias: " #. the time section -#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1505 msgid "time" msgstr "tempo" @@ -9232,8 +9593,8 @@ msgstr "determinar o valor para sempre casar com a data-hora corrente" #. apply button -#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:162 -#: ../src/libs/metadata.c:904 ../src/libs/styles.c:897 +#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:180 +#: ../src/libs/metadata.c:735 ../src/libs/styles.c:901 msgid "apply" msgstr "aplicar" @@ -9267,40 +9628,40 @@ msgid "grouped images" msgstr "imagens agrupadas" -#: ../src/dtgtk/thumbnail.c:820 ../src/dtgtk/thumbnail.c:1635 -#: ../src/iop/ashift.c:6191 ../src/iop/ashift.c:6280 ../src/iop/ashift.c:6282 -#: ../src/iop/ashift.c:6284 ../src/libs/navigation.c:110 -#: ../src/libs/navigation.c:190 +#: ../src/dtgtk/thumbnail.c:814 ../src/dtgtk/thumbnail.c:1623 +#: ../src/iop/ashift.c:6138 ../src/iop/ashift.c:6227 ../src/iop/ashift.c:6229 +#: ../src/iop/ashift.c:6231 ../src/libs/navigation.c:111 +#: ../src/libs/navigation.c:193 msgid "fit" msgstr "ajustar" -#: ../src/dtgtk/thumbtable.c:1041 ../src/views/slideshow.c:421 +#: ../src/dtgtk/thumbtable.c:1139 ../src/views/slideshow.c:422 msgid "there are no images in this collection" msgstr "não existem imagens nesta coleção" -#: ../src/dtgtk/thumbtable.c:1048 +#: ../src/dtgtk/thumbtable.c:1146 msgid "if you have not imported any images yet" msgstr "se você ainda ainda importou nenhuma imagem" -#: ../src/dtgtk/thumbtable.c:1052 +#: ../src/dtgtk/thumbtable.c:1150 msgid "you can do so in the import module" msgstr "você pode fazer no módulo de importação" -#: ../src/dtgtk/thumbtable.c:1061 +#: ../src/dtgtk/thumbtable.c:1159 msgid "try to relax the filter settings in the top panel" msgstr "tente relaxar as configurações do filtro no painel superior" -#: ../src/dtgtk/thumbtable.c:1072 +#: ../src/dtgtk/thumbtable.c:1170 msgid "or add images in the collections module in the left panel" msgstr "ou adicione imagens no módulo coleções no painel esquerdo" -#: ../src/dtgtk/thumbtable.c:1338 +#: ../src/dtgtk/thumbtable.c:1455 msgid "" "you have changed the settings related to how thumbnails are generated.\n" msgstr "" "você mudou as configurações relacionadas a como miniaturas são geradas.\n" -#: ../src/dtgtk/thumbtable.c:1341 +#: ../src/dtgtk/thumbtable.c:1458 msgid "" "all cached thumbnails need to be invalidated.\n" "\n" @@ -9308,7 +9669,7 @@ "todas as miniaturas em cache precisam ser invalidadas.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1345 +#: ../src/dtgtk/thumbtable.c:1462 #, c-format msgid "" "cached thumbnails starting from level %d need to be invalidated.\n" @@ -9317,7 +9678,7 @@ "as miniaturas em cache começando no nível %d precisam ser invalidadas.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1350 +#: ../src/dtgtk/thumbtable.c:1467 #, c-format msgid "" "cached thumbnails below level %d need to be invalidated.\n" @@ -9326,7 +9687,7 @@ "as miniaturas no cache abaixo do nível %d precisam ser invalidadas.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1355 +#: ../src/dtgtk/thumbtable.c:1472 #, c-format msgid "" "cached thumbnails between level %d and %d need to be invalidated.\n" @@ -9335,48 +9696,48 @@ "as miniaturas no cache entre nível %d e %d precisam ser invalidadas.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1358 +#: ../src/dtgtk/thumbtable.c:1475 msgid "do you want to do that now?" msgstr "você quer fazer isto agora?" -#: ../src/dtgtk/thumbtable.c:1360 +#: ../src/dtgtk/thumbtable.c:1477 msgid "cached thumbnails invalidation" msgstr "invalidação do cache de miniaturas" #. setup history key accelerators -#: ../src/dtgtk/thumbtable.c:2561 +#: ../src/dtgtk/thumbtable.c:2738 msgid "copy history" msgstr "copiar histórico" -#: ../src/dtgtk/thumbtable.c:2563 +#: ../src/dtgtk/thumbtable.c:2740 msgid "copy history parts" msgstr "copiar partes do histórico" -#: ../src/dtgtk/thumbtable.c:2565 +#: ../src/dtgtk/thumbtable.c:2742 msgid "paste history" msgstr "colar histórico" -#: ../src/dtgtk/thumbtable.c:2567 +#: ../src/dtgtk/thumbtable.c:2744 msgid "paste history parts" msgstr "colar partes do histórico" -#: ../src/dtgtk/thumbtable.c:2569 ../src/libs/copy_history.c:394 +#: ../src/dtgtk/thumbtable.c:2746 ../src/libs/copy_history.c:394 msgid "discard history" msgstr "descartar histórico" -#: ../src/dtgtk/thumbtable.c:2572 +#: ../src/dtgtk/thumbtable.c:2749 msgid "duplicate image" msgstr "duplicar imagem" -#: ../src/dtgtk/thumbtable.c:2574 +#: ../src/dtgtk/thumbtable.c:2751 msgid "duplicate image virgin" msgstr "duplicar imagem sem desenvolvimento" -#: ../src/dtgtk/thumbtable.c:2584 ../src/libs/select.c:147 +#: ../src/dtgtk/thumbtable.c:2761 ../src/libs/select.c:148 msgid "select film roll" msgstr "selecionar rolo de filme" -#: ../src/dtgtk/thumbtable.c:2586 ../src/libs/select.c:151 +#: ../src/dtgtk/thumbtable.c:2763 ../src/libs/select.c:152 msgid "select untouched" msgstr "selecionar não modificadas" @@ -9444,265 +9805,299 @@ msgid "creating complete lighttable thumbnail cache\n" msgstr "criando cache completo de miniaturas para mesa de luz\n" -#: ../src/gui/accelerators.c:61 -msgid "active view" -msgstr "vista ativa" - -#: ../src/gui/accelerators.c:62 -msgid "other views" -msgstr "outras vistas" +#: ../src/gui/about.c:34 +#, c-format +msgid "copyright (c) the authors 2009-%s" +msgstr "copyright (c) os autores 2009-%s" + +#: ../src/gui/about.c:39 +msgid "organize and develop images from digital cameras" +msgstr "organize e trate imagens de câmeras digitais" + +#: ../src/gui/about.c:51 +msgid "all those of you that made previous releases possible" +msgstr "e aqueles de vocês que tornaram as releases anteriores possíveis" + +#: ../src/gui/about.c:56 +msgid "and..." +msgstr "e..." -#: ../src/gui/accelerators.c:63 +#: ../src/gui/about.c:59 +msgid "translator-credits" +msgstr "" +"Guilherme Brondani Torri\n" +"Frido Claudino\n" +"Jerônimo Pellegrini" + +#: ../src/gui/accelerators.c:72 +msgid "in active view" +msgstr "na vista ativa" + +#: ../src/gui/accelerators.c:73 +msgid "in other views" +msgstr "em outras vistas" + +#: ../src/gui/accelerators.c:74 msgid "fallbacks" msgstr "alternativos" -#: ../src/gui/accelerators.c:64 ../src/gui/accelerators.c:722 -#: ../src/gui/accelerators.c:2607 ../src/gui/accelerators.c:3470 -msgid "speed" -msgstr "velocidade" +#: ../src/gui/accelerators.c:75 +msgid "speed adjustments" +msgstr "ajustes rápidos" + +#: ../src/gui/accelerators.c:76 +msgid "disabled defaults" +msgstr "padrões desabilitados" -#: ../src/gui/accelerators.c:80 ../src/views/view.c:1202 +#: ../src/gui/accelerators.c:96 ../src/views/view.c:1361 msgid "scroll" msgstr "rolar" -#: ../src/gui/accelerators.c:81 +#: ../src/gui/accelerators.c:97 msgid "pan" msgstr "arrastar" -#: ../src/gui/accelerators.c:82 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6283 ../src/iop/clipping.c:1902 -#: ../src/iop/clipping.c:2094 ../src/iop/clipping.c:2110 -#: ../src/views/darkroom.c:2676 ../src/views/lighttable.c:1250 +#: ../src/gui/accelerators.c:98 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6230 ../src/iop/clipping.c:1955 +#: ../src/iop/clipping.c:2147 ../src/iop/clipping.c:2163 +#: ../src/views/darkroom.c:2522 ../src/views/lighttable.c:1250 msgid "horizontal" msgstr "horizontal" -#: ../src/gui/accelerators.c:83 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6281 ../src/iop/clipping.c:1901 -#: ../src/iop/clipping.c:2095 ../src/iop/clipping.c:2109 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:1254 +#: ../src/gui/accelerators.c:99 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6228 ../src/iop/clipping.c:1954 +#: ../src/iop/clipping.c:2148 ../src/iop/clipping.c:2162 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:1254 msgid "vertical" msgstr "vertical" -#: ../src/gui/accelerators.c:84 +#: ../src/gui/accelerators.c:100 msgid "diagonal" msgstr "diagonal" -#: ../src/gui/accelerators.c:86 +#: ../src/gui/accelerators.c:102 msgid "leftright" msgstr "esquerda-direita" -#: ../src/gui/accelerators.c:87 +#: ../src/gui/accelerators.c:103 msgid "updown" msgstr "acima-abaixo" -#: ../src/gui/accelerators.c:88 +#: ../src/gui/accelerators.c:104 msgid "pgupdown" msgstr "pgupdown" -#: ../src/gui/accelerators.c:96 ../src/views/view.c:1186 +#: ../src/gui/accelerators.c:112 ../src/views/view.c:1343 msgid "shift" msgstr "shift" -#: ../src/gui/accelerators.c:97 ../src/views/view.c:1187 +#: ../src/gui/accelerators.c:113 ../src/views/view.c:1345 msgid "ctrl" msgstr "ctrl" -#: ../src/gui/accelerators.c:98 ../src/views/view.c:1188 +#: ../src/gui/accelerators.c:114 ../src/views/view.c:1347 msgid "alt" msgstr "alt" -#: ../src/gui/accelerators.c:99 +#: ../src/gui/accelerators.c:115 msgid "cmd" msgstr "cmd" -#: ../src/gui/accelerators.c:100 +#: ../src/gui/accelerators.c:116 msgid "altgr" msgstr "altgr" -#: ../src/gui/accelerators.c:109 ../src/gui/accelerators.c:156 -#: ../src/libs/tagging.c:1782 +#: ../src/gui/accelerators.c:127 ../src/gui/accelerators.c:174 +#: ../src/libs/tagging.c:1804 msgid "edit" msgstr "editar" -#: ../src/gui/accelerators.c:110 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "up" msgstr "para cima" -#: ../src/gui/accelerators.c:111 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:129 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "down" msgstr "para baixo" -#: ../src/gui/accelerators.c:115 +#: ../src/gui/accelerators.c:133 msgid "set" msgstr "definir" -#: ../src/gui/accelerators.c:119 +#: ../src/gui/accelerators.c:137 msgid "popup" msgstr "popup" -#: ../src/gui/accelerators.c:120 ../src/gui/accelerators.c:153 -#: ../src/gui/gtk.c:3054 ../src/views/lighttable.c:760 +#: ../src/gui/accelerators.c:138 ../src/gui/accelerators.c:171 +#: ../src/gui/gtk.c:3100 ../src/views/lighttable.c:760 msgid "next" msgstr "próxima" -#: ../src/gui/accelerators.c:121 ../src/gui/accelerators.c:152 -#: ../src/gui/gtk.c:3055 ../src/views/lighttable.c:761 +#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:170 +#: ../src/gui/gtk.c:3101 ../src/views/lighttable.c:761 msgid "previous" msgstr "anterior" -#: ../src/gui/accelerators.c:123 ../src/gui/accelerators.c:1462 +#: ../src/gui/accelerators.c:141 ../src/gui/accelerators.c:1598 msgid "last" msgstr "última" -#: ../src/gui/accelerators.c:124 ../src/gui/accelerators.c:1461 +#: ../src/gui/accelerators.c:142 ../src/gui/accelerators.c:1597 msgid "first" msgstr "primeira" -#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:141 -#: ../src/gui/accelerators.c:314 ../src/libs/filters/rating_range.c:268 -#: ../src/libs/tagging.c:3119 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2419 ../src/views/darkroom.c:2648 +#: ../src/gui/accelerators.c:146 ../src/gui/accelerators.c:159 +#: ../src/gui/accelerators.c:356 ../src/libs/filters/rating_range.c:295 +#: ../src/libs/tagging.c:3150 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2258 ../src/views/darkroom.c:2494 msgid "toggle" msgstr "ligar/desligar" -#: ../src/gui/accelerators.c:131 +#: ../src/gui/accelerators.c:149 msgid "ctrl-toggle" msgstr "ctrl-alternar" -#: ../src/gui/accelerators.c:132 +#: ../src/gui/accelerators.c:150 msgid "ctrl-on" msgstr "ctrl-ligado" -#: ../src/gui/accelerators.c:133 +#: ../src/gui/accelerators.c:151 msgid "right-toggle" msgstr "alternar-direita" -#: ../src/gui/accelerators.c:134 +#: ../src/gui/accelerators.c:152 msgid "right-on" msgstr "à direita" -#: ../src/gui/accelerators.c:145 ../src/gui/gtk.c:3053 +#: ../src/gui/accelerators.c:163 ../src/gui/gtk.c:3099 msgid "activate" msgstr "ativar" -#: ../src/gui/accelerators.c:146 +#: ../src/gui/accelerators.c:164 msgid "ctrl-activate" msgstr "ctrl-ativar" -#: ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:165 msgid "right-activate" msgstr "direita-ativar" -#: ../src/gui/accelerators.c:154 +#: ../src/gui/accelerators.c:172 msgid "store" msgstr "armazenar" -#: ../src/gui/accelerators.c:157 ../src/gui/styles_dialog.c:639 +#: ../src/gui/accelerators.c:175 ../src/gui/styles_dialog.c:651 msgid "update" msgstr "atualizar" -#: ../src/gui/accelerators.c:158 ../src/libs/tools/global_toolbox.c:60 +#: ../src/gui/accelerators.c:176 ../src/libs/tools/global_toolbox.c:60 #: ../src/libs/tools/global_toolbox.c:510 msgid "preferences" msgstr "preferências" -#: ../src/gui/accelerators.c:163 +#: ../src/gui/accelerators.c:181 msgid "apply on new instance" msgstr "aplicar em nova instância" -#: ../src/gui/accelerators.c:168 +#: ../src/gui/accelerators.c:186 msgid "start" msgstr "início" -#: ../src/gui/accelerators.c:169 +#: ../src/gui/accelerators.c:187 msgid "end" msgstr "final" -#: ../src/gui/accelerators.c:332 +#: ../src/gui/accelerators.c:374 msgid "entry" msgstr "entrada" -#: ../src/gui/accelerators.c:409 +#: ../src/gui/accelerators.c:450 msgid "combo effect not found" msgstr "efeito da combinação não encontrado" -#: ../src/gui/accelerators.c:578 +#: ../src/gui/accelerators.c:627 msgid "(keypad)" msgstr "(keypad)" -#: ../src/gui/accelerators.c:587 +#: ../src/gui/accelerators.c:636 msgid "tablet button" msgstr "botão do tablet" -#: ../src/gui/accelerators.c:596 +#: ../src/gui/accelerators.c:645 msgid "unknown driver" msgstr "driver desconhecido" -#: ../src/gui/accelerators.c:663 +#: ../src/gui/accelerators.c:718 msgid "long" msgstr "longo" -#: ../src/gui/accelerators.c:664 +#: ../src/gui/accelerators.c:719 msgid "double-press" msgstr "pressionar duplo" -#: ../src/gui/accelerators.c:665 +#: ../src/gui/accelerators.c:720 msgid "triple-press" msgstr "pressionar triplo" -#: ../src/gui/accelerators.c:666 +#: ../src/gui/accelerators.c:721 msgid "press" msgstr "pressionar" -#: ../src/gui/accelerators.c:670 +#: ../src/gui/accelerators.c:725 msgctxt "accel" msgid "left" msgstr "esquerda" -#: ../src/gui/accelerators.c:671 +#: ../src/gui/accelerators.c:726 msgctxt "accel" msgid "right" msgstr "direita" -#: ../src/gui/accelerators.c:672 +#: ../src/gui/accelerators.c:727 msgctxt "accel" msgid "middle" msgstr "meio" -#: ../src/gui/accelerators.c:673 +#: ../src/gui/accelerators.c:728 msgctxt "accel" msgid "long" msgstr "longo" -#: ../src/gui/accelerators.c:674 +#: ../src/gui/accelerators.c:729 msgctxt "accel" msgid "double-click" msgstr "clique-duplo" -#: ../src/gui/accelerators.c:675 +#: ../src/gui/accelerators.c:730 msgctxt "accel" msgid "triple-click" msgstr "clique triplo" -#: ../src/gui/accelerators.c:676 +#: ../src/gui/accelerators.c:731 msgid "click" msgstr "clique" -#: ../src/gui/accelerators.c:704 +#: ../src/gui/accelerators.c:759 msgid "first instance" msgstr "primeira instância" -#: ../src/gui/accelerators.c:706 +#: ../src/gui/accelerators.c:761 msgid "last instance" msgstr "última instância" -#: ../src/gui/accelerators.c:708 +#: ../src/gui/accelerators.c:763 msgid "relative instance" msgstr "instância relativa" -#: ../src/gui/accelerators.c:867 +#: ../src/gui/accelerators.c:780 ../src/gui/accelerators.c:2864 +#: ../src/gui/accelerators.c:3811 +msgid "speed" +msgstr "velocidade" + +#: ../src/gui/accelerators.c:923 #, c-format msgid "" "Lua script command copied to clipboard:\n" @@ -9713,11 +10108,11 @@ "\n" "<tt>%s</tt>" -#: ../src/gui/accelerators.c:965 ../src/gui/accelerators.c:978 +#: ../src/gui/accelerators.c:1025 ../src/gui/accelerators.c:1044 msgid "start typing for incremental search" msgstr "comece a digitar para busca incremental" -#: ../src/gui/accelerators.c:966 +#: ../src/gui/accelerators.c:1028 msgid "" "\n" "press Delete to delete selected shortcut" @@ -9725,7 +10120,23 @@ "\n" "pressione Delete para excluir o atalho selecionado" -#: ../src/gui/accelerators.c:968 +#: ../src/gui/accelerators.c:1030 +msgid "" +"\n" +"press Delete to disable selected default shortcut" +msgstr "" +"\n" +"pressione Delete para excluir o atalho default selecionado" + +#: ../src/gui/accelerators.c:1031 +msgid "" +"\n" +"press Delete to restore selected default shortcut" +msgstr "" +"\n" +"pressione Delete para excluir o atalho default selecionado" + +#: ../src/gui/accelerators.c:1033 msgid "" "\n" "double-click to add new shortcut" @@ -9733,11 +10144,11 @@ "\n" "clique-duplo para adicionar um novo atalho" -#: ../src/gui/accelerators.c:979 +#: ../src/gui/accelerators.c:1045 msgid "click to filter shortcuts list" msgstr "clique para filtrar a lista de atalhos" -#: ../src/gui/accelerators.c:981 +#: ../src/gui/accelerators.c:1047 msgid "" "\n" "right click to show action of selected shortcut" @@ -9745,7 +10156,7 @@ "\n" "clique-direito para mostrar a ação do atalho selecionado" -#: ../src/gui/accelerators.c:984 +#: ../src/gui/accelerators.c:1050 msgid "" "\n" "double-click to define new shortcut" @@ -9753,11 +10164,11 @@ "\n" "clique-duplo para definir um novo atalho" -#: ../src/gui/accelerators.c:1015 +#: ../src/gui/accelerators.c:1081 msgid "shift+alt+scroll to change height" msgstr "shift+alt+scroll muda altura" -#: ../src/gui/accelerators.c:1035 +#: ../src/gui/accelerators.c:1101 msgid "" "press keys with mouse click and scroll or move combinations to create a " "shortcut" @@ -9765,27 +10176,27 @@ "pressione teclas com combinações de clique, rolar e movimentos do mouse para " "criar um atalho" -#: ../src/gui/accelerators.c:1036 +#: ../src/gui/accelerators.c:1102 msgid "click to open shortcut configuration" msgstr "clique para abrir configuração de atalho" -#: ../src/gui/accelerators.c:1037 +#: ../src/gui/accelerators.c:1103 msgid "ctrl+click to add to quick access panel\n" msgstr "ctrl+clique para adicionar ao painel de acesso rápido\n" -#: ../src/gui/accelerators.c:1038 +#: ../src/gui/accelerators.c:1104 msgid "ctrl+click to remove from quick access panel\n" msgstr "ctrl+clique para remover do painel de acesso rápido\n" -#: ../src/gui/accelerators.c:1039 +#: ../src/gui/accelerators.c:1105 msgid "scroll to change default speed" msgstr "scroll muda velocidade padrão" -#: ../src/gui/accelerators.c:1040 +#: ../src/gui/accelerators.c:1106 msgid "right click to exit mapping mode" msgstr "clique-direito para sair do modo de mapeamento" -#: ../src/gui/accelerators.c:1051 +#: ../src/gui/accelerators.c:1119 #, c-format msgid "" "%sright-click to type a specific value between <b>%s</b> and <b>%s</b>\n" @@ -9794,74 +10205,89 @@ "%sclique direito para digitar um valor entra <b>%s</b> e <b>%s</b>\n" "ou segure control+shift enquanto arrastar para ignorar os limites." -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "ctrl+v" msgstr "ctrl+v" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "right long click" msgstr "clique direito longo" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "to copy Lua command" msgstr "para copiar o comando Lua" -#: ../src/gui/accelerators.c:1344 +#: ../src/gui/accelerators.c:1451 msgid "shortcut for move exists with single effect" msgstr "atalho para movimento existe com único efeito" -#: ../src/gui/accelerators.c:1345 +#: ../src/gui/accelerators.c:1452 +#, c-format +msgid "" +"%s\n" +"\n" +"(assign %s to %s)" +msgstr "" +"%s\n" +"\n" +"(associar %s a %s)" + +#: ../src/gui/accelerators.c:1453 msgid "create separate shortcuts for up and down move?" msgstr "criar atalhos separados para movimentos para cima e para baixo?" -#: ../src/gui/accelerators.c:1368 +#: ../src/gui/accelerators.c:1479 #, c-format msgid "%s, speed reset" msgstr "%s, redefinir velocidade" -#: ../src/gui/accelerators.c:1377 +#: ../src/gui/accelerators.c:1497 msgid "shortcut exists with different settings" msgstr "existe um atalho com configuração diferente" -#: ../src/gui/accelerators.c:1378 +#: ../src/gui/accelerators.c:1498 msgid "reset the settings of the shortcut?" msgstr "redefinir a configuração do atalho?" -#: ../src/gui/accelerators.c:1389 +#: ../src/gui/accelerators.c:1507 msgid "shortcut already exists" msgstr "o atalho já existe" -#: ../src/gui/accelerators.c:1390 +#: ../src/gui/accelerators.c:1509 +msgid "disable this default shortcut?" +msgstr "desabilitar este atalho default?" + +#: ../src/gui/accelerators.c:1510 msgid "remove the shortcut?" msgstr "remover o atalho?" -#: ../src/gui/accelerators.c:1423 +#: ../src/gui/accelerators.c:1550 msgid "clashing shortcuts exist" msgstr "há atalhos conflitantes" -#: ../src/gui/accelerators.c:1424 +#: ../src/gui/accelerators.c:1551 msgid "remove these existing shortcuts?" msgstr "remover estes atalhos existentes?" #. or 3, but change char relative[] = "-2" to "-1" #. NUM_INSTANCES -#: ../src/gui/accelerators.c:1460 +#: ../src/gui/accelerators.c:1596 msgid "preferred" msgstr "preferido" -#: ../src/gui/accelerators.c:1463 +#: ../src/gui/accelerators.c:1599 msgid "second" msgstr "segundo" -#: ../src/gui/accelerators.c:1464 +#: ../src/gui/accelerators.c:1600 msgid "last but one" msgstr "penúltimo" -#: ../src/gui/accelerators.c:1610 ../src/gui/accelerators.c:1670 +#: ../src/gui/accelerators.c:1761 ../src/gui/accelerators.c:1826 msgid "(unchanged)" msgstr "(não modificado)" -#: ../src/gui/accelerators.c:1776 +#: ../src/gui/accelerators.c:1941 msgid "" "define a shortcut by pressing a key, optionally combined with modifier keys " "(ctrl/shift/alt)\n" @@ -9886,39 +10312,47 @@ "\n" "clique-direito para cancelar" -#: ../src/gui/accelerators.c:1847 +#: ../src/gui/accelerators.c:2014 msgid "removing shortcut" msgstr "removendo atalho" -#: ../src/gui/accelerators.c:1848 +#: ../src/gui/accelerators.c:2016 +msgid "disable the selected default shortcut?" +msgstr "excluir os atalhos default selecionados?" + +#: ../src/gui/accelerators.c:2017 +msgid "restore the selected default shortcut?" +msgstr "restaurar os atalhos efault selecionados?" + +#: ../src/gui/accelerators.c:2018 msgid "remove the selected shortcut?" msgstr "excluir os atalhos selecionados?" -#: ../src/gui/accelerators.c:1938 +#: ../src/gui/accelerators.c:2107 msgid "command" msgstr "comando" -#: ../src/gui/accelerators.c:1939 +#: ../src/gui/accelerators.c:2108 msgid "preset" msgstr "predefinição" -#: ../src/gui/accelerators.c:2272 +#: ../src/gui/accelerators.c:2491 msgid "restore shortcuts" msgstr "restaurar atalhos" -#: ../src/gui/accelerators.c:2275 +#: ../src/gui/accelerators.c:2494 msgid "_defaults" msgstr "_padrões" -#: ../src/gui/accelerators.c:2276 +#: ../src/gui/accelerators.c:2495 msgid "_startup" msgstr "_ao iniciar" -#: ../src/gui/accelerators.c:2277 +#: ../src/gui/accelerators.c:2496 msgid "_edits" msgstr "_antes do diálogo" -#: ../src/gui/accelerators.c:2283 +#: ../src/gui/accelerators.c:2503 msgid "" "restore shortcuts from one of these states:\n" " - default\n" @@ -9930,7 +10364,7 @@ " - como ao iniciar\n" " - como quando este diálogo foi aberto\n" -#: ../src/gui/accelerators.c:2289 +#: ../src/gui/accelerators.c:2510 msgid "" "clear all newer shortcuts\n" "(instead of just restoring changed ones)" @@ -9938,22 +10372,17 @@ "limpar todos os atalhos novos criados\n" "(ao invés de simplesmente restaurar os modificados)" -#: ../src/gui/accelerators.c:2344 ../src/gui/preferences.c:906 +#: ../src/gui/accelerators.c:2567 ../src/gui/preferences.c:905 #: ../src/libs/tools/global_toolbox.c:494 -#: ../src/libs/tools/global_toolbox.c:645 +#: ../src/libs/tools/global_toolbox.c:652 msgid "shortcuts" msgstr "atalhos" -#: ../src/gui/accelerators.c:2353 +#: ../src/gui/accelerators.c:2577 msgid "export shortcuts" msgstr "exportar atalhos" -#: ../src/gui/accelerators.c:2356 ../src/gui/accelerators.c:2436 -#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:564 -msgid "_ok" -msgstr "_ok" - -#: ../src/gui/accelerators.c:2361 +#: ../src/gui/accelerators.c:2586 msgid "" "export all shortcuts to a file\n" "or just for one selected device\n" @@ -9961,27 +10390,27 @@ "exportar todos os atalhos para um arquivo\n" "ou somente para um dispositivo selecionado\n" -#: ../src/gui/accelerators.c:2368 ../src/gui/accelerators.c:2448 +#: ../src/gui/accelerators.c:2593 ../src/gui/accelerators.c:2675 msgid "keyboard" msgstr "teclado" -#: ../src/gui/accelerators.c:2380 +#: ../src/gui/accelerators.c:2605 msgid "device id" msgstr "id do dispositivo" -#: ../src/gui/accelerators.c:2406 +#: ../src/gui/accelerators.c:2631 msgid "select file to export" msgstr "selecione arquivo para exportar" -#: ../src/gui/accelerators.c:2407 ../src/libs/tagging.c:2525 +#: ../src/gui/accelerators.c:2632 ../src/libs/tagging.c:2556 msgid "_export" msgstr "_exportar" -#: ../src/gui/accelerators.c:2433 +#: ../src/gui/accelerators.c:2659 msgid "import shortcuts" msgstr "importar atalhos" -#: ../src/gui/accelerators.c:2441 +#: ../src/gui/accelerators.c:2668 msgid "" "import all shortcuts from a file\n" "or just for one selected device\n" @@ -9989,31 +10418,31 @@ "importar todos os atalhos de um arquivo\n" "ou somente para um dispositivo selecionado\n" -#: ../src/gui/accelerators.c:2460 +#: ../src/gui/accelerators.c:2687 msgid "id in file" msgstr "id no arquivo" -#: ../src/gui/accelerators.c:2466 +#: ../src/gui/accelerators.c:2693 msgid "id when loaded" msgstr "id quando carregado" -#: ../src/gui/accelerators.c:2470 +#: ../src/gui/accelerators.c:2697 msgid "clear device first" msgstr "limpar o dispositivo primeiro" -#: ../src/gui/accelerators.c:2494 +#: ../src/gui/accelerators.c:2722 msgid "select file to import" msgstr "selecione arquivo para importar" -#: ../src/gui/accelerators.c:2495 ../src/libs/tagging.c:2489 +#: ../src/gui/accelerators.c:2723 ../src/libs/tagging.c:2520 msgid "_import" msgstr "_importar" -#: ../src/gui/accelerators.c:2568 +#: ../src/gui/accelerators.c:2815 msgid "search shortcuts list" msgstr "buscar na lista de atalhos" -#: ../src/gui/accelerators.c:2569 +#: ../src/gui/accelerators.c:2817 msgid "" "incrementally search the list of shortcuts\n" "press up or down keys to cycle through matches" @@ -10022,29 +10451,28 @@ "pressione as teclas para cima e para baixo para percorrer ciclicamente os " "resultados" -#. Setting up the cell renderers -#: ../src/gui/accelerators.c:2583 ../src/views/view.c:1383 +#: ../src/gui/accelerators.c:2837 ../src/views/view.c:1554 msgid "shortcut" msgstr "atalho" -#: ../src/gui/accelerators.c:2585 ../src/gui/accelerators.c:2676 -#: ../src/views/view.c:1385 +#: ../src/gui/accelerators.c:2840 ../src/gui/accelerators.c:2942 +#: ../src/views/view.c:1556 msgid "action" msgstr "ação" -#: ../src/gui/accelerators.c:2594 +#: ../src/gui/accelerators.c:2850 msgid "element" msgstr "elemento" -#: ../src/gui/accelerators.c:2601 +#: ../src/gui/accelerators.c:2858 msgid "effect" msgstr "efeito" -#: ../src/gui/accelerators.c:2658 +#: ../src/gui/accelerators.c:2918 msgid "search actions list" msgstr "buscar na lista de ações" -#: ../src/gui/accelerators.c:2659 +#: ../src/gui/accelerators.c:2920 msgid "" "incrementally search the list of actions\n" "press up or down keys to cycle through matches" @@ -10053,16 +10481,16 @@ "pressione as teclas para cima e para baixo para percorrer ciclicamente os " "resultados" -#: ../src/gui/accelerators.c:2682 ../src/gui/guides.c:719 -#: ../src/libs/export_metadata.c:192 +#: ../src/gui/accelerators.c:2950 ../src/gui/guides.c:719 +#: ../src/libs/export_metadata.c:179 msgid "type" msgstr "tipo" -#: ../src/gui/accelerators.c:2717 +#: ../src/gui/accelerators.c:2988 msgid "enable fallbacks" msgstr "ativar alternativos" -#: ../src/gui/accelerators.c:2718 +#: ../src/gui/accelerators.c:2989 msgid "" "enables default meanings for additional buttons, modifiers or moves\n" "when used in combination with a base shortcut" @@ -10071,67 +10499,113 @@ "adicionais,\n" "quando usados em combinação com um atalho base" -#: ../src/gui/accelerators.c:2725 +#: ../src/gui/accelerators.c:2997 msgid "open help page for shortcuts" msgstr "abrir página de ajuda para atalhos" -#: ../src/gui/accelerators.c:2730 +#: ../src/gui/accelerators.c:3002 msgid "restore..." msgstr "restaurar..." -#: ../src/gui/accelerators.c:2731 +#: ../src/gui/accelerators.c:3003 msgid "restore default shortcuts or previous state" msgstr "restaurar atalhos padrão ou estado anterior" -#: ../src/gui/accelerators.c:2735 ../src/libs/styles.c:883 -#: ../src/libs/tagging.c:3251 +#: ../src/gui/accelerators.c:3007 ../src/libs/styles.c:887 +#: ../src/libs/tagging.c:3282 msgid "import..." msgstr "importar..." -#: ../src/gui/accelerators.c:2736 +#: ../src/gui/accelerators.c:3008 msgid "fully or partially import shortcuts from file" msgstr "importar atalhos completamente ou parcialmente de um arquivo" -#: ../src/gui/accelerators.c:2740 ../src/libs/styles.c:890 -#: ../src/libs/tagging.c:3254 +#: ../src/gui/accelerators.c:3012 ../src/libs/styles.c:894 +#: ../src/libs/tagging.c:3285 msgid "export..." msgstr "exportar..." -#: ../src/gui/accelerators.c:2741 +#: ../src/gui/accelerators.c:3013 msgid "fully or partially export shortcuts to file" msgstr "exportar atalhos completamente ou parcialmente para um arquivo" -#: ../src/gui/accelerators.c:3139 +#: ../src/gui/accelerators.c:3021 +msgid "" +"the recommended way to assign shortcuts to visual elements is the <b>visual " +"shortcut mapping</b> mode.\n" +"this is switched on by toggling the <i>\"keyboard\"</i> button next to " +"preferences in the top panel. in this mode, clicking on a widget or area " +"will open this dialog with the appropriate selection for advanced " +"configuration.\n" +"\n" +"multiple shortcuts can be assigned to the same action. this is especially " +"useful if it has multiple <i>elements</i>, like the module buttons or the " +"colorpickers attached to sliders. however, with <i>fallbacks</i> enabled one " +"can use the same simple shortcuts and change their <i>element</i> or " +"<i>effect</i> by adding mouse clicks.\n" +"\n" +"<i>click <b> three times </b> to dismiss this notice permanently</i>" +msgstr "" +"a maneira recomendada para atribuir atalhos a elementos visuais é o modo\n" +"<b> mapeamento de atalhos visuais</b>.\n" +"ele é ligado ao pressioar o botão de <i>\"teclado\"</i> próximo às " +"preferências\n" +"no painel superior. neste modo, clicar em uma ferramenta ou área abrirá\n" +"este diálogo com a seleção apropriada para configuração avançada.\n" +"\n" +"múltiplos atalhos podem ser atribuídas à mesma ação. isto é especialmente\n" +"útil se há múltiplos <i>elementos</i>, como os botões de módulos ou os\n" +"selecionadores de cor associados aos deslizadores. no entanto, com\n" +"<i>alternativas</i> habilitadas pode-se usar os mesmos atalhos simples e " +"mudar\n" +"seus <i>elementos</i> ou <i>efeitos</i> adicionando cliques de mouse.\n" +"\n" +"<i>clique <b> três vezes </b> para desabilitar esta mensagem " +"permanentemente</i>" + +#: ../src/gui/accelerators.c:3452 msgid "reinitialising input devices" msgstr "reiniciando os dispositivos de entrada" -#: ../src/gui/accelerators.c:3342 +#: ../src/gui/accelerators.c:3594 +msgid "down move" +msgstr "movimento para baixo" + +#: ../src/gui/accelerators.c:3594 +msgid "flip top/bottom first/last" +msgstr "espelhar topo/base primeiro/último" + +#: ../src/gui/accelerators.c:3679 msgid "fallback to move" msgstr "alternativo para mover" -#: ../src/gui/accelerators.c:3578 +#: ../src/gui/accelerators.c:3921 #, c-format msgid "%s not assigned" msgstr "%s não associado" -#: ../src/gui/accelerators.c:3751 +#: ../src/gui/accelerators.c:4102 #, c-format msgid "%s assigned to %s" msgstr "%s associado a %s" -#: ../src/gui/gtk.c:173 ../src/views/darkroom.c:4650 +#: ../src/gui/accelerators.c:4321 +msgid "short key press resets stuck keys" +msgstr "pressionamento curto de tecla reinicializa teclas bloqueadas" + +#: ../src/gui/gtk.c:175 ../src/views/darkroom.c:3861 msgid "darktable - darkroom preview" msgstr "darktable - pré-visualização de sala escura" -#: ../src/gui/gtk.c:184 +#: ../src/gui/gtk.c:186 msgid "tooltips off" msgstr "não mostrar dicas" -#: ../src/gui/gtk.c:186 +#: ../src/gui/gtk.c:188 msgid "tooltips on" msgstr "mostrar dica" -#: ../src/gui/gtk.c:191 +#: ../src/gui/gtk.c:193 msgid "" "tooltip visibility can only be toggled if compositing is enabled in your " "window manager" @@ -10139,184 +10613,217 @@ "a visibilidade de dicas só pode ser alterada se compositing estiver " "habilitado em seu gerenciador de janelas" -#: ../src/gui/gtk.c:814 +#: ../src/gui/gtk.c:809 msgid "closing darktable..." msgstr "fechando o darktable..." -#: ../src/gui/gtk.c:1135 +#: ../src/gui/gtk.c:1032 +msgid "URL opened in web browser" +msgstr "URL aberta no navegador" + +#: ../src/gui/gtk.c:1036 +msgid "error while opening URL in web browser" +msgstr "erro abrindo URL no navegador" + +#. View menu +#: ../src/gui/gtk.c:1104 +msgctxt "menu" +msgid "Views" +msgstr "Vistas" + +#: ../src/gui/gtk.c:1108 +msgctxt "menu" +msgid "lighttable" +msgstr "mesa de luz" + +#: ../src/gui/gtk.c:1109 +msgctxt "menu" +msgid "darkroom" +msgstr "sala escura" + +#: ../src/gui/gtk.c:1115 +msgctxt "menu" +msgid "slideshow" +msgstr "apresentação" + +#: ../src/gui/gtk.c:1117 +msgctxt "menu" +msgid "map" +msgstr "mapa" + +#: ../src/gui/gtk.c:1119 +msgctxt "menu" +msgid "print" +msgstr "imprimir" + +#: ../src/gui/gtk.c:1121 +msgctxt "menu" +msgid "tethering" +msgstr "acesso remoto" + +#. Help menu +#: ../src/gui/gtk.c:1127 +msgctxt "menu" +msgid "Help" +msgstr "Ajuda" + +#: ../src/gui/gtk.c:1131 +msgctxt "menu" +msgid "darktable Manual" +msgstr "Manual do darktable" + +#: ../src/gui/gtk.c:1138 +msgctxt "menu" +msgid "darktable Homepage" +msgstr "Homepage do darktable" + +#: ../src/gui/gtk.c:1162 +msgctxt "menu" +msgid "Preferences" +msgstr "Preferências" + +#: ../src/gui/gtk.c:1232 msgid "panels" msgstr "painéis" -#. an action that does nothing - used for overriding/removing default shortcuts -#: ../src/gui/gtk.c:1184 -msgid "no-op" -msgstr "nada-faz" - -#: ../src/gui/gtk.c:1186 +#: ../src/gui/gtk.c:1264 msgid "switch views" msgstr "alternar vistas" -#: ../src/gui/gtk.c:1187 ../src/views/tethering.c:102 +#: ../src/gui/gtk.c:1265 ../src/views/tethering.c:102 msgid "tethering" msgstr "acesso remoto" -#: ../src/gui/gtk.c:1188 ../src/gui/preferences.c:531 -#: ../src/gui/preferences.c:542 ../src/libs/tools/lighttable.c:66 -#: ../src/views/lighttable.c:91 -msgid "lighttable" -msgstr "mesa de luz" - -#: ../src/gui/gtk.c:1189 ../src/gui/preferences.c:532 -#: ../src/gui/preferences.c:542 ../src/views/darkroom.c:94 -msgid "darkroom" -msgstr "sala escura" - -#: ../src/gui/gtk.c:1190 ../src/views/map.c:197 +#: ../src/gui/gtk.c:1268 ../src/views/map.c:197 msgid "map" msgstr "mapa" -#: ../src/gui/gtk.c:1191 ../src/views/slideshow.c:389 +#: ../src/gui/gtk.c:1269 ../src/views/slideshow.c:390 msgid "slideshow" msgstr "apresentação" #. Print button -#: ../src/gui/gtk.c:1192 ../src/libs/print_settings.c:2885 +#: ../src/gui/gtk.c:1270 ../src/libs/print_settings.c:2885 msgid "print" msgstr "imprimir" #. register ctrl-q to quit: -#: ../src/gui/gtk.c:1198 +#: ../src/gui/gtk.c:1276 msgid "quit" msgstr "sair" #. Full-screen accelerator (no ESC handler here to enable quit-slideshow using ESC) -#: ../src/gui/gtk.c:1201 +#: ../src/gui/gtk.c:1279 msgid "fullscreen" msgstr "tela cheia" -#: ../src/gui/gtk.c:1205 +#: ../src/gui/gtk.c:1283 msgid "collapsing controls" msgstr "recolhimento de controles" #. specific top/bottom toggles -#: ../src/gui/gtk.c:1207 +#: ../src/gui/gtk.c:1285 msgid "header" msgstr "cabeçalho" -#: ../src/gui/gtk.c:1208 +#: ../src/gui/gtk.c:1286 msgid "filmstrip and timeline" msgstr "rolo de filme e linha do tempo" -#: ../src/gui/gtk.c:1209 +#: ../src/gui/gtk.c:1287 msgid "top toolbar" msgstr "barra de ferramentas superior" -#: ../src/gui/gtk.c:1210 +#: ../src/gui/gtk.c:1288 msgid "bottom toolbar" msgstr "barra de ferramentas inferior" -#: ../src/gui/gtk.c:1211 +#: ../src/gui/gtk.c:1289 msgid "all top" msgstr "tudo acima" -#: ../src/gui/gtk.c:1212 +#: ../src/gui/gtk.c:1290 msgid "all bottom" msgstr "tudo abaixo" -#: ../src/gui/gtk.c:1214 +#: ../src/gui/gtk.c:1292 msgid "toggle tooltip visibility" msgstr "alternar visibilidade de dicas" -#: ../src/gui/gtk.c:1215 +#: ../src/gui/gtk.c:1293 msgid "reinitialise input devices" msgstr "reiniciar os dispositivos de entrada" -#: ../src/gui/gtk.c:1253 +#: ../src/gui/gtk.c:1331 msgid "toggle focus-peaking mode" msgstr "alterna foco máximo" #. toggle focus peaking everywhere -#: ../src/gui/gtk.c:1258 +#: ../src/gui/gtk.c:1336 msgid "toggle focus peaking" msgstr "alternar foco máximo" -#: ../src/gui/gtk.c:1594 ../src/gui/gtk.c:3143 ../src/gui/gtk.c:3148 -#: ../src/gui/gtk.c:3153 ../src/gui/gtk.c:3158 +#: ../src/gui/gtk.c:1654 ../src/gui/gtk.c:3189 ../src/gui/gtk.c:3194 +#: ../src/gui/gtk.c:3199 ../src/gui/gtk.c:3204 msgid "tabs" msgstr "abas" -#: ../src/gui/gtk.c:2535 -msgid "_yes" -msgstr "_sim" - -#: ../src/gui/gtk.c:2536 -msgid "_no" -msgstr "_não" - #. ask the user if darktable.org may be accessed -#: ../src/gui/gtk.c:2647 +#: ../src/gui/gtk.c:2707 msgid "access the online user manual?" msgstr "acessar o manual do usuário online?" -#: ../src/gui/gtk.c:2648 +#: ../src/gui/gtk.c:2708 #, c-format msgid "do you want to access `%s'?" msgstr "você deseja acessar `%s'?" -#: ../src/gui/gtk.c:2717 -msgid "help url opened in web browser" -msgstr "url de ajuda aberta no navegador" - -#: ../src/gui/gtk.c:2721 -msgid "error while opening help url in web browser" -msgstr "erro abrindo url de ajuda aberta no navegador" - -#: ../src/gui/gtk.c:2732 +#: ../src/gui/gtk.c:2778 msgid "there is no help available for this element" msgstr "não há ajuda disponível para este elemento" #. font name can only use period as decimal separator #. but printf format strings use comma for some locales, so replace comma with period -#: ../src/gui/gtk.c:2752 +#: ../src/gui/gtk.c:2798 ../src/libs/metadata_view.c:762 #, c-format msgid "%.1f" msgstr "%.1f" -#: ../src/gui/gtk.c:2754 +#: ../src/gui/gtk.c:2800 #, c-format msgid "Sans %s" msgstr "Sans %s" -#: ../src/gui/gtk.c:3048 +#: ../src/gui/gtk.c:3094 msgid "does not contain pages" msgstr "não contém páginas" -#: ../src/gui/gtk.c:3265 +#: ../src/gui/gtk.c:3313 #, c-format msgid "never show more than %d lines" msgstr "nunca mostrar mais que %d linhas" -#: ../src/gui/gtkentry.c:172 +#: ../src/gui/gtkentry.c:173 msgid "$(ROLL.NAME) - roll of the input image" msgstr "$(ROLL.NAME) - rolo da imagem de entrada" -#: ../src/gui/gtkentry.c:173 +#: ../src/gui/gtkentry.c:174 msgid "$(FILE.FOLDER) - folder containing the input image" msgstr "$(FILE.FOLDER) - pasta contendo a imagem de entrada" -#: ../src/gui/gtkentry.c:174 +#: ../src/gui/gtkentry.c:175 msgid "$(FILE.NAME) - basename of the input image" msgstr "$(FILE.NAME) - nome base do arquivo de entrada" -#: ../src/gui/gtkentry.c:175 +#: ../src/gui/gtkentry.c:176 msgid "$(FILE.EXTENSION) - extension of the input image" msgstr "$(FILE.EXTENSION) - extensão do arquivo de entrada" -#: ../src/gui/gtkentry.c:176 +#: ../src/gui/gtkentry.c:177 msgid "$(VERSION) - duplicate version" msgstr "$(VERSION) - versão duplicada" -#: ../src/gui/gtkentry.c:177 +#: ../src/gui/gtkentry.c:178 msgid "" "$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version " "exists" @@ -10324,115 +10831,115 @@ "$(VERSION.IF_MULTI) - mesmo que $(VERSION) mas é string nula quando só uma " "versão existe" -#: ../src/gui/gtkentry.c:178 +#: ../src/gui/gtkentry.c:179 msgid "$(VERSION.NAME) - version name from metadata" msgstr "$(VERSION.NAME) - nome de versão nos metadados" -#: ../src/gui/gtkentry.c:179 +#: ../src/gui/gtkentry.c:180 msgid "$(JOBCODE) - job code for import" msgstr "$(JOBCODE) - código da tarefa para importação" -#: ../src/gui/gtkentry.c:180 +#: ../src/gui/gtkentry.c:181 msgid "$(SEQUENCE) - sequence number" msgstr "$(SEQUENCE) - número de sequência" -#: ../src/gui/gtkentry.c:181 +#: ../src/gui/gtkentry.c:182 msgid "$(WIDTH.MAX) - maximum image export width" msgstr "$(WIDTH.MAX) - largura máxima de imagem exportada" -#: ../src/gui/gtkentry.c:182 +#: ../src/gui/gtkentry.c:183 msgid "$(WIDTH.SENSOR) - image sensor width" msgstr "$(WIDTH.SENSOR) - largura do sensor de imagem" -#: ../src/gui/gtkentry.c:183 +#: ../src/gui/gtkentry.c:184 msgid "$(WIDTH.RAW) - RAW image width" msgstr "$(WIDTH.RAW) - largura da imagem RAW" -#: ../src/gui/gtkentry.c:184 +#: ../src/gui/gtkentry.c:185 msgid "$(WIDTH.CROP) - image width after crop" msgstr "$(WIDTH.CROP) - largura da imagem após o recorte" -#: ../src/gui/gtkentry.c:185 +#: ../src/gui/gtkentry.c:186 msgid "$(WIDTH.EXPORT) - exported image width" msgstr "$(WIDTH.EXPORT) - largura da imagem exportada" -#: ../src/gui/gtkentry.c:186 +#: ../src/gui/gtkentry.c:187 msgid "$(HEIGHT.MAX) - maximum image export height" msgstr "$(HEIGHT.MAX) - altura máxima de imagem exportada" -#: ../src/gui/gtkentry.c:187 +#: ../src/gui/gtkentry.c:188 msgid "$(HEIGHT.SENSOR) - image sensor height" msgstr "$(HEIGHT.SENSOR) - altura do sensor de imagem" -#: ../src/gui/gtkentry.c:188 +#: ../src/gui/gtkentry.c:189 msgid "$(HEIGHT.RAW) - RAW image height" msgstr "$(HEIGHT.RAW) - altura da imagem RAW" -#: ../src/gui/gtkentry.c:189 +#: ../src/gui/gtkentry.c:190 msgid "$(HEIGHT.CROP) - image height after crop" msgstr "$(HEIGHT.CROP) - altura da imagem após o recorte" -#: ../src/gui/gtkentry.c:190 +#: ../src/gui/gtkentry.c:191 msgid "$(HEIGHT.EXPORT) - exported image height" msgstr "$(HEIGHT.EXPORT) - altura da imagem exportada" -#: ../src/gui/gtkentry.c:191 +#: ../src/gui/gtkentry.c:192 msgid "$(YEAR) - year" msgstr "$(YEAR) - ano" -#: ../src/gui/gtkentry.c:192 +#: ../src/gui/gtkentry.c:193 msgid "$(YEAR.SHORT) - year without century" msgstr "$(YEAR.SHORT) - ano sem século" -#: ../src/gui/gtkentry.c:193 +#: ../src/gui/gtkentry.c:194 msgid "$(MONTH) - month" msgstr "$(MONTH) - mês" -#: ../src/gui/gtkentry.c:194 +#: ../src/gui/gtkentry.c:195 msgid "$(MONTH.SHORT) - abbreviated month name according to the current locale" msgstr "$(MONTH.SHORT) - nome abreviado do mês, de acordo com o locale atual" -#: ../src/gui/gtkentry.c:195 +#: ../src/gui/gtkentry.c:196 msgid "$(MONTH.LONG) - full month name according to the current locale" msgstr "$(MONTH.LONG) - nome completo do mês, de acordo com o locale atual" -#: ../src/gui/gtkentry.c:196 +#: ../src/gui/gtkentry.c:197 msgid "$(DAY) - day" msgstr "$(DAY) - dia" -#: ../src/gui/gtkentry.c:197 +#: ../src/gui/gtkentry.c:198 msgid "$(HOUR) - hour" msgstr "$(HOUR) - hora" -#: ../src/gui/gtkentry.c:198 +#: ../src/gui/gtkentry.c:199 msgid "$(HOUR.AMPM) - hour, 12-hour clock" msgstr "$(HOUR.AMPM) - hora, relógio de 12 horas" -#: ../src/gui/gtkentry.c:199 +#: ../src/gui/gtkentry.c:200 msgid "$(MINUTE) - minute" msgstr "$(MINUTE) - minuto" -#: ../src/gui/gtkentry.c:200 +#: ../src/gui/gtkentry.c:201 msgid "$(SECOND) - second" msgstr "$(SECOND) - segundo" -#: ../src/gui/gtkentry.c:201 +#: ../src/gui/gtkentry.c:202 msgid "$(MSEC) - millisecond" msgstr "$(MSEC) - milisegundo" -#: ../src/gui/gtkentry.c:202 +#: ../src/gui/gtkentry.c:203 msgid "$(EXIF.YEAR) - EXIF year" msgstr "$(EXIF.YEAR) - ano no EXIF" -#: ../src/gui/gtkentry.c:203 +#: ../src/gui/gtkentry.c:204 msgid "$(EXIF.YEAR.SHORT) - EXIF year without century" msgstr "$(EXIF.YEAR.SHORT) - ano no EXIF, sem século" -#: ../src/gui/gtkentry.c:204 +#: ../src/gui/gtkentry.c:205 msgid "$(EXIF.MONTH) - EXIF month" msgstr "$(EXIF.MONTH) - mês no EXIF" -#: ../src/gui/gtkentry.c:205 +#: ../src/gui/gtkentry.c:206 msgid "" "$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current " "locale" @@ -10440,163 +10947,171 @@ "$(EXIF.MONTH.SHORT) - nome abreviado do mês no EXIF, de acordo com o locale " "atual" -#: ../src/gui/gtkentry.c:206 +#: ../src/gui/gtkentry.c:207 msgid "" "$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" msgstr "" "$(EXIF.MONTH.LONG) - nome completo do mês no EXIF, de acordo com o locale " "atual" -#: ../src/gui/gtkentry.c:207 +#: ../src/gui/gtkentry.c:208 msgid "$(EXIF.DAY) - EXIF day" msgstr "$(EXIF.DAY) - dia no EXIF" -#: ../src/gui/gtkentry.c:208 +#: ../src/gui/gtkentry.c:209 msgid "$(EXIF.HOUR) - EXIF hour" msgstr "$(EXIF.HOUR) - hora no EXIF" -#: ../src/gui/gtkentry.c:209 +#: ../src/gui/gtkentry.c:210 msgid "$(EXIF.HOUR.AMPM) - EXIF hour, 12-hour clock" msgstr "$(EXIF.HOUR.AMPM) - hora no EXIF, relógio de 12 horas" -#: ../src/gui/gtkentry.c:210 +#: ../src/gui/gtkentry.c:211 msgid "$(EXIF.MINUTE) - EXIF minute" msgstr "$(EXIF.MINUTE) - minuto no EXIF" -#: ../src/gui/gtkentry.c:211 +#: ../src/gui/gtkentry.c:212 msgid "$(EXIF.SECOND) - EXIF second" msgstr "$(EXIF.SECOND) - segundo no EXIF" -#: ../src/gui/gtkentry.c:212 +#: ../src/gui/gtkentry.c:213 msgid "$(EXIF.MSEC) - EXIF millisecond" msgstr "$(EXIF.MSEC) - milisegundo no EXIF" -#: ../src/gui/gtkentry.c:213 +#: ../src/gui/gtkentry.c:214 msgid "$(EXIF.ISO) - ISO value" msgstr "$(EXIF.ISO) - valor ISO" -#: ../src/gui/gtkentry.c:214 +#: ../src/gui/gtkentry.c:215 msgid "$(EXIF.EXPOSURE) - EXIF exposure" msgstr "$(EXIF.EXPOSURE) - exposição no EXIF" -#: ../src/gui/gtkentry.c:215 +#: ../src/gui/gtkentry.c:216 msgid "$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias" msgstr "$(EXIF.EXPOSURE.BIAS) - viés de exposição no EXIF" -#: ../src/gui/gtkentry.c:216 +#: ../src/gui/gtkentry.c:217 msgid "$(EXIF.APERTURE) - EXIF aperture" msgstr "$(EXIF.APERTURE) - abertura no EXIF" -#: ../src/gui/gtkentry.c:217 +#: ../src/gui/gtkentry.c:218 +msgid "$(EXIF.CROP_FACTOR) - EXIF crop factor" +msgstr "$(EXIF.CROP_FACTOR) - EXIF fator de crop" + +#: ../src/gui/gtkentry.c:219 msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" msgstr "$(EXIT.FOCAL.LENGTH) - distância focal no EXIF" -#: ../src/gui/gtkentry.c:218 +#: ../src/gui/gtkentry.c:220 +msgid "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent focal length" +msgstr "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF distância focal equivalente 35 mm" + +#: ../src/gui/gtkentry.c:221 msgid "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" -msgstr "$(EXIF.FOCUS.DISTANCE) - distância de foco no EXIF" +msgstr "$(EXIF.FOCUS.DISTANCE) - distância focal no EXIF" -#: ../src/gui/gtkentry.c:219 +#: ../src/gui/gtkentry.c:222 msgid "$(EXIF.MAKER) - camera maker" msgstr "$(EXIF.MAKER) - fabricante da câmera" -#: ../src/gui/gtkentry.c:220 +#: ../src/gui/gtkentry.c:223 msgid "$(EXIF.MODEL) - camera model" msgstr "$(EXIF.MODEL) - modelo da câmera" -#: ../src/gui/gtkentry.c:221 +#: ../src/gui/gtkentry.c:224 msgid "$(EXIF.LENS) - lens" msgstr "$(EXIF.LENS) - lente" -#: ../src/gui/gtkentry.c:222 +#: ../src/gui/gtkentry.c:225 msgid "$(LONGITUDE) - longitude" msgstr "$(LONGITUDE) - longitude" -#: ../src/gui/gtkentry.c:223 +#: ../src/gui/gtkentry.c:226 msgid "$(LATITUDE) - latitude" msgstr "$(LATITUDE) - latitude" -#: ../src/gui/gtkentry.c:224 +#: ../src/gui/gtkentry.c:227 msgid "$(ELEVATION) - elevation" msgstr "$(ELEVATION) - elevação" -#: ../src/gui/gtkentry.c:225 +#: ../src/gui/gtkentry.c:228 msgid "$(STARS) - star rating as number (-1 for rejected)" msgstr "$(STARS) - classificação em estrelas como número (-1 para rejeitado)" -#: ../src/gui/gtkentry.c:226 +#: ../src/gui/gtkentry.c:229 msgid "$(RATING.ICONS) - star/reject rating in icon form" msgstr "$(RATING.ICONS) - classificar com estrela/rejeitar em forma de ícone" -#: ../src/gui/gtkentry.c:227 +#: ../src/gui/gtkentry.c:230 msgid "$(LABELS) - color labels as text" msgstr "$(LABELS) - etiquetas coloridas como texto" -#: ../src/gui/gtkentry.c:228 +#: ../src/gui/gtkentry.c:231 msgid "$(LABELS.ICONS) - color labels as icons" msgstr "$(LABELS.ICONS) - etiquetas coloridas como ícones" -#: ../src/gui/gtkentry.c:229 +#: ../src/gui/gtkentry.c:232 msgid "$(ID) - image ID" msgstr "$(ID) - ID da imagem" -#: ../src/gui/gtkentry.c:230 +#: ../src/gui/gtkentry.c:233 msgid "$(TITLE) - title from metadata" msgstr "$(TITLE) - título dos metadados" -#: ../src/gui/gtkentry.c:231 +#: ../src/gui/gtkentry.c:234 msgid "$(DESCRIPTION) - description from metadata" msgstr "$(DESCRIPTION) - descrição nos metadados" -#: ../src/gui/gtkentry.c:232 +#: ../src/gui/gtkentry.c:235 msgid "$(CREATOR) - creator from metadata" msgstr "$(CREATOR) - criador nos metadados" -#: ../src/gui/gtkentry.c:233 +#: ../src/gui/gtkentry.c:236 msgid "$(PUBLISHER) - publisher from metadata" msgstr "$(PUBLISHER) - editor dos metadados" -#: ../src/gui/gtkentry.c:234 +#: ../src/gui/gtkentry.c:237 msgid "$(RIGHTS) - rights from metadata" msgstr "$(RIGHTS) - direitos dos metadados" -#: ../src/gui/gtkentry.c:235 +#: ../src/gui/gtkentry.c:238 msgid "$(USERNAME) - login name" msgstr "$(USERNAME) - nome de login" -#: ../src/gui/gtkentry.c:236 +#: ../src/gui/gtkentry.c:239 msgid "$(FOLDER.PICTURES) - pictures folder" msgstr "$(FOLDER.PICTURES) - pasta de imagens" -#: ../src/gui/gtkentry.c:237 +#: ../src/gui/gtkentry.c:240 msgid "$(FOLDER.HOME) - home folder" msgstr "$(FOLDER.HOME) - pasta home" -#: ../src/gui/gtkentry.c:238 +#: ../src/gui/gtkentry.c:241 msgid "$(FOLDER.DESKTOP) - desktop folder" msgstr "$(FOLDER.DESKTOP) - pasta desktop" -#: ../src/gui/gtkentry.c:239 +#: ../src/gui/gtkentry.c:242 msgid "$(OPENCL.ACTIVATED) - whether OpenCL is activated" msgstr "$(OPENCL.ACTIVATED) - se OpenCL é ativado" -#: ../src/gui/gtkentry.c:240 +#: ../src/gui/gtkentry.c:243 msgid "$(CATEGORY0(category)) - subtag of level 0 in hierarchical tags" msgstr "" "$(CATEGORY0(category)) - subetiqueta de nível 0 em etiquetas hierárquicas" -#: ../src/gui/gtkentry.c:241 +#: ../src/gui/gtkentry.c:244 msgid "$(TAGS) - tags as set in metadata settings" msgstr "$(TAGS) - etiquetas estabelecidas na configuração de metadados" -#: ../src/gui/gtkentry.c:242 +#: ../src/gui/gtkentry.c:245 msgid "$(DARKTABLE.NAME) - darktable name" msgstr "$(DARKTABLE.NAME) - nome do darktable" -#: ../src/gui/gtkentry.c:243 +#: ../src/gui/gtkentry.c:246 msgid "$(DARKTABLE.VERSION) - current darktable version" msgstr "$(DARKTABLE.VERSION) - versão atual do darktable" -#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:255 +#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:248 msgid "grid" msgstr "grade" @@ -10666,11 +11181,11 @@ msgstr "configurações globais de sobreposições de linhas guia" #: ../src/gui/guides.c:710 ../src/gui/guides.c:719 ../src/gui/guides.c:727 -#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2648 +#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2494 msgid "guide lines" msgstr "linhas guia" -#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2092 +#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2145 msgid "flip" msgstr "espelhar" @@ -10686,8 +11201,8 @@ msgid "vertically" msgstr "verticalmente" -#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6285 ../src/iop/clipping.c:2096 -#: ../src/iop/colorbalance.c:1917 +#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6232 ../src/iop/clipping.c:2149 +#: ../src/iop/colorbalance.c:1892 msgid "both" msgstr "ambos" @@ -10735,26 +11250,26 @@ msgid "select parts to paste" msgstr "selecione as partes a colar" -#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:517 +#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:524 msgid "select _all" msgstr "selecionar tudo" -#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:518 +#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:525 msgid "select _none" msgstr "limpa seleção" -#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:593 -#: ../src/gui/styles_dialog.c:615 +#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:605 +#: ../src/gui/styles_dialog.c:627 msgid "include" msgstr "incluir" -#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:669 -#: ../src/gui/styles_dialog.c:675 +#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:681 +#: ../src/gui/styles_dialog.c:687 msgid "item" msgstr "item" -#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:682 -#: ../src/gui/styles_dialog.c:691 +#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:694 +#: ../src/gui/styles_dialog.c:703 msgid "mask" msgstr "máscara" @@ -10809,11 +11324,11 @@ msgid "interface language" msgstr "idioma da interface" -#: ../src/gui/preferences.c:289 +#: ../src/gui/preferences.c:290 msgid "double-click to reset to the system language" msgstr "clique-duplo para voltar para a linguagem do sistema" -#: ../src/gui/preferences.c:291 +#: ../src/gui/preferences.c:292 msgid "" "set the language of the user interface. the system default is marked with an " "* (needs a restart)" @@ -10821,27 +11336,27 @@ "determina a linguagem da interface com o usuário. o padrão do sistema está " "marcado com * (necessário reiniciar)" -#: ../src/gui/preferences.c:300 +#: ../src/gui/preferences.c:301 msgid "theme" msgstr "tema" -#: ../src/gui/preferences.c:328 +#: ../src/gui/preferences.c:331 msgid "set the theme for the user interface" msgstr "define o tema para a interface de usuário" -#: ../src/gui/preferences.c:341 ../src/gui/preferences.c:348 +#: ../src/gui/preferences.c:344 ../src/gui/preferences.c:351 msgid "use system font size" msgstr "usar o tamanho de fonte do sistema" -#: ../src/gui/preferences.c:357 ../src/gui/preferences.c:364 +#: ../src/gui/preferences.c:360 ../src/gui/preferences.c:367 msgid "font size in points" msgstr "tamanho da fonte em pontos" -#: ../src/gui/preferences.c:369 +#: ../src/gui/preferences.c:372 msgid "GUI controls and text DPI" msgstr "controles da interface gráfica e resolução (DPI) do texto" -#: ../src/gui/preferences.c:376 +#: ../src/gui/preferences.c:379 msgid "" "adjust the global GUI resolution to rescale controls, buttons, labels, etc.\n" "increase for a magnified GUI, decrease to fit more content in window.\n" @@ -10858,77 +11373,61 @@ "é necessário reiniciar para que as mudanças façam efeito." #. checkbox to allow user to modify theme with user.css -#: ../src/gui/preferences.c:385 +#: ../src/gui/preferences.c:388 msgid "modify selected theme with CSS tweaks below" msgstr "modificar o tema selecionado com os ajustes CSS abaixo" -#: ../src/gui/preferences.c:393 +#: ../src/gui/preferences.c:396 msgid "modify theme with CSS keyed below (saved to user.css)" msgstr "modificar o tema com o CSS abaixo (gravado no arquivo user.css)" -#: ../src/gui/preferences.c:415 +#: ../src/gui/preferences.c:418 msgctxt "usercss" msgid "save CSS and apply" msgstr "salvar CSS e aplicar" -#: ../src/gui/preferences.c:420 +#: ../src/gui/preferences.c:423 msgid "click to save and apply the CSS tweaks entered in this editor" msgstr "clique para salvar e aplicar os ajustes CSS inseridos neste editor" -#: ../src/gui/preferences.c:422 +#: ../src/gui/preferences.c:425 msgid "open help page for CSS tweaks" msgstr "abrir pátina de ajuda para ajustes de CSS" #. load default text with some pointers -#: ../src/gui/preferences.c:443 +#: ../src/gui/preferences.c:446 msgid "ERROR Loading user.css" msgstr "ERRO Carregando user.css" #. load default text -#: ../src/gui/preferences.c:452 +#: ../src/gui/preferences.c:455 msgid "Enter CSS theme tweaks here" msgstr "Entre ajustes ao tema CSS aqui" -#: ../src/gui/preferences.c:488 +#: ../src/gui/preferences.c:491 msgid "darktable preferences" msgstr "preferências do darktable" -#: ../src/gui/preferences.c:533 -msgid "processing" -msgstr "processamento" - -#: ../src/gui/preferences.c:534 -msgid "security" -msgstr "segurança" - -#: ../src/gui/preferences.c:535 -msgid "storage" -msgstr "armazenamento" - -#: ../src/gui/preferences.c:536 -msgid "miscellaneous" -msgstr "miscelânea" - -#: ../src/gui/preferences.c:561 +#: ../src/gui/preferences.c:559 msgid "darktable needs to be restarted for settings to take effect" msgstr "O darktable precisa ser reiniciado para as configurações terem efeito" #. exif -#: ../src/gui/preferences.c:820 ../src/gui/presets.c:644 -#: ../src/libs/metadata_view.c:137 +#: ../src/gui/preferences.c:818 ../src/gui/presets.c:647 +#: ../src/libs/metadata_view.c:139 msgid "model" msgstr "modelo" -#: ../src/gui/preferences.c:824 ../src/gui/presets.c:652 -#: ../src/libs/metadata_view.c:138 +#: ../src/gui/preferences.c:822 ../src/gui/presets.c:655 +#: ../src/libs/metadata_view.c:140 msgid "maker" msgstr "fabricante" -#: ../src/gui/preferences.c:861 +#: ../src/gui/preferences.c:859 msgid "search presets list" msgstr "buscar na lista de predefinições" -#: ../src/gui/preferences.c:862 +#: ../src/gui/preferences.c:860 msgid "" "incrementally search the list of presets\n" "press up or down keys to cycle through matches" @@ -10937,71 +11436,71 @@ "pressione as teclas para cima e para baixo para percorrer ciclicamente os " "resultados" -#: ../src/gui/preferences.c:868 +#: ../src/gui/preferences.c:866 msgctxt "preferences" msgid "import..." msgstr "importar..." -#: ../src/gui/preferences.c:872 +#: ../src/gui/preferences.c:870 msgctxt "preferences" msgid "export..." msgstr "exportar..." -#: ../src/gui/preferences.c:1031 +#: ../src/gui/preferences.c:1030 #, c-format msgid "failed to import preset %s" msgstr "falha ao importar predefinição %s" -#: ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1041 msgid "select preset(s) to import" msgstr "selecione predefinições para importar" -#: ../src/gui/preferences.c:1043 ../src/libs/collect.c:408 -#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:929 -#: ../src/libs/import.c:1506 ../src/libs/import.c:1610 ../src/libs/styles.c:527 +#: ../src/gui/preferences.c:1042 ../src/libs/collect.c:425 +#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:930 +#: ../src/libs/import.c:1515 ../src/libs/import.c:1619 ../src/libs/styles.c:529 msgid "_open" msgstr "_abrir" -#: ../src/gui/preferences.c:1052 +#: ../src/gui/preferences.c:1051 msgid "darktable preset files" msgstr "arquivos de predefinição do darktable" -#: ../src/gui/preferences.c:1057 ../src/iop/lut3d.c:1577 -#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:945 -#: ../src/libs/styles.c:541 +#: ../src/gui/preferences.c:1056 ../src/iop/lut3d.c:1591 +#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:946 +#: ../src/libs/styles.c:543 msgid "all files" msgstr "todos arquivos" -#: ../src/gui/presets.c:59 +#: ../src/gui/presets.c:61 msgid "non-raw" msgstr "não-raw" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:332 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:336 msgid "raw" msgstr "raw" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:333 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:337 msgid "HDR" msgstr "HDR" -#: ../src/gui/presets.c:59 ../src/iop/monochrome.c:77 ../src/libs/image.c:608 -#: ../src/libs/metadata_view.c:339 +#: ../src/gui/presets.c:61 ../src/iop/monochrome.c:77 ../src/libs/image.c:679 +#: ../src/libs/metadata_view.c:343 msgid "monochrome" msgstr "monocromático" -#: ../src/gui/presets.c:151 +#: ../src/gui/presets.c:153 #, c-format msgid "preset `%s' is write-protected, can't delete!" msgstr "" "predefinição `%s' está protegida contra gravação, não é possível remover!" -#: ../src/gui/presets.c:157 ../src/gui/presets.c:461 ../src/libs/lib.c:238 -#: ../src/libs/modulegroups.c:3701 +#: ../src/gui/presets.c:159 ../src/gui/presets.c:463 ../src/libs/lib.c:238 +#: ../src/libs/modulegroups.c:3703 msgid "delete preset?" msgstr "excluir predefinição?" -#: ../src/gui/presets.c:158 ../src/gui/presets.c:462 ../src/libs/lib.c:239 -#: ../src/libs/modulegroups.c:3702 +#: ../src/gui/presets.c:160 ../src/gui/presets.c:464 ../src/libs/lib.c:239 +#: ../src/libs/modulegroups.c:3704 #, c-format msgid "do you really want to delete the preset `%s'?" msgstr "você realmente deseja excluir a predefinição `%s'?" @@ -11012,25 +11511,25 @@ #. clang-format on #. create a shortcut for the new entry #. then show edit dialog -#: ../src/gui/presets.c:200 ../src/gui/presets.c:1035 ../src/gui/presets.c:1038 -#: ../src/gui/presets.c:1041 ../src/libs/lib.c:188 ../src/libs/lib.c:205 +#: ../src/gui/presets.c:202 ../src/gui/presets.c:1022 ../src/gui/presets.c:1025 +#: ../src/gui/presets.c:1028 ../src/libs/lib.c:188 ../src/libs/lib.c:205 #: ../src/libs/lib.c:213 ../src/libs/lib.c:216 msgid "new preset" msgstr "nova predefinição" -#: ../src/gui/presets.c:207 +#: ../src/gui/presets.c:209 msgid "please give preset a name" msgstr "favor nomear predefinição" -#: ../src/gui/presets.c:212 +#: ../src/gui/presets.c:214 msgid "unnamed preset" msgstr "predefinição sem nome" -#: ../src/gui/presets.c:241 +#: ../src/gui/presets.c:243 msgid "overwrite preset?" msgstr "sobrescrever predefinição?" -#: ../src/gui/presets.c:242 +#: ../src/gui/presets.c:244 #, c-format msgid "" "preset `%s' already exists.\n" @@ -11039,38 +11538,43 @@ "predefinição `%s' existente.\n" "Deseja sobrescrever?" -#: ../src/gui/presets.c:420 ../src/imageio/storage/disk.c:123 -#: ../src/imageio/storage/gallery.c:110 ../src/imageio/storage/latex.c:109 +#: ../src/gui/presets.c:422 ../src/imageio/storage/disk.c:198 +#: ../src/imageio/storage/gallery.c:150 ../src/imageio/storage/latex.c:146 msgid "_select as output destination" msgstr "_selecionar como destino" -#: ../src/gui/presets.c:429 +#: ../src/gui/presets.c:431 #, c-format msgid "preset %s was successfully exported" msgstr "predefinição %s foi exportada com sucesso" -#: ../src/gui/presets.c:557 +#: ../src/gui/presets.c:559 #, c-format msgid "edit `%s' for module `%s'" msgstr "editar `%s' para o módulo `%s'" -#: ../src/gui/presets.c:561 +#: ../src/gui/presets.c:563 msgid "_export..." msgstr "_exportar..." -#: ../src/gui/presets.c:585 +#: ../src/gui/presets.c:564 ../src/libs/tagging.c:1489 +#: ../src/libs/tagging.c:1580 +msgid "_delete" +msgstr "_excluir" + +#: ../src/gui/presets.c:588 msgid "name of the preset" msgstr "nome da predefinição" -#: ../src/gui/presets.c:594 +#: ../src/gui/presets.c:597 msgid "description or further information" msgstr "descrição ou informação adicional" -#: ../src/gui/presets.c:598 +#: ../src/gui/presets.c:601 msgid "reset all module parameters to their default values" msgstr "redefinir todos os parâmetros do módulo para seus valores padrão" -#: ../src/gui/presets.c:601 +#: ../src/gui/presets.c:604 msgid "" "the parameters will be reset to their default values, which may be " "automatically set based on image metadata" @@ -11078,41 +11582,41 @@ "os parâmetros serão redefinidos para seus valores padrão, que podem ser " "determinados automaticamente a partir de metadados da imagem" -#: ../src/gui/presets.c:607 +#: ../src/gui/presets.c:610 msgid "auto apply this preset to matching images" msgstr "auto-aplicar predefinição às imagens correspondentes" -#: ../src/gui/presets.c:611 +#: ../src/gui/presets.c:614 msgid "only show this preset for matching images" msgstr "somente mostrar esta predefinição para imagens correspondentes" -#: ../src/gui/presets.c:613 +#: ../src/gui/presets.c:616 msgid "" "be very careful with this option. this might be the last time you see your " "preset." msgstr "" "cuidado com esta opção. esta pode ser a última vez que veja sua predefinição." -#: ../src/gui/presets.c:643 +#: ../src/gui/presets.c:646 #, no-c-format msgid "string to match model (use % as wildcard)" msgstr "sequência para coincidir com modelo (use % como coringa)" -#: ../src/gui/presets.c:651 +#: ../src/gui/presets.c:654 #, no-c-format msgid "string to match maker (use % as wildcard)" msgstr "sequência para coincidir o fabricante (use % como coringa)" -#: ../src/gui/presets.c:659 +#: ../src/gui/presets.c:662 #, no-c-format msgid "string to match lens (use % as wildcard)" msgstr "sequência para coincidir a lente (use % como coringa)" -#: ../src/gui/presets.c:669 +#: ../src/gui/presets.c:672 msgid "minimum ISO value" msgstr "mínimo valor de ISO" -#: ../src/gui/presets.c:675 +#: ../src/gui/presets.c:678 msgid "" "maximum ISO value\n" "if left blank, it is equivalent to no upper limit" @@ -11120,73 +11624,73 @@ "valor ISO máximo\n" "se deixado em branco, é equivalente a nenhum limite superior" -#: ../src/gui/presets.c:688 +#: ../src/gui/presets.c:691 msgid "minimum exposure time" msgstr "mínimo tempo de exposição" -#: ../src/gui/presets.c:689 +#: ../src/gui/presets.c:692 msgid "maximum exposure time" msgstr "máximo tempo de exposição" -#: ../src/gui/presets.c:705 +#: ../src/gui/presets.c:708 msgid "minimum aperture value" msgstr "valor mínimo de abertura" -#: ../src/gui/presets.c:706 +#: ../src/gui/presets.c:709 msgid "maximum aperture value" msgstr "valor máximo de abertura" -#: ../src/gui/presets.c:724 +#: ../src/gui/presets.c:727 msgid "minimum focal length" msgstr "distância focal mínima" -#: ../src/gui/presets.c:725 +#: ../src/gui/presets.c:728 msgid "maximum focal length" msgstr "distância focal máxima" #. raw/hdr/ldr/mono/color -#: ../src/gui/presets.c:733 ../src/imageio/format/j2k.c:650 +#: ../src/gui/presets.c:736 msgid "format" msgstr "formato" -#: ../src/gui/presets.c:738 +#: ../src/gui/presets.c:741 msgid "select image types you want this preset to be available for" msgstr "" "selecione os tipos de imagem para os quais você quer que esta predefinição " "esteja disponível" -#: ../src/gui/presets.c:751 ../src/libs/filtering.c:1201 +#: ../src/gui/presets.c:754 ../src/libs/filtering.c:1263 msgid "and" msgstr "e" -#: ../src/gui/presets.c:795 ../src/gui/presets.c:847 +#: ../src/gui/presets.c:798 ../src/gui/presets.c:850 msgid "∞" msgstr "∞" -#: ../src/gui/presets.c:979 +#: ../src/gui/presets.c:966 #, c-format msgid "preset `%s' is write-protected! can't edit it!" msgstr "" "predefinição `%s' está protegida contra gravação, não é possível editar!" -#: ../src/gui/presets.c:1003 ../src/libs/lib.c:158 +#: ../src/gui/presets.c:990 ../src/libs/lib.c:158 msgid "update preset?" msgstr "atualizar predefinição?" -#: ../src/gui/presets.c:1004 ../src/libs/lib.c:159 +#: ../src/gui/presets.c:991 ../src/libs/lib.c:159 #, c-format msgid "do you really want to update the preset `%s'?" msgstr "você realmente deseja atualizar a predefinição `%s'?" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(first)" msgstr "(primeira)" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(last)" msgstr "(última)" -#: ../src/gui/presets.c:1165 +#: ../src/gui/presets.c:1152 #, c-format msgid "" "preset %s\n" @@ -11195,63 +11699,63 @@ "predefinição %s\n" "%s" -#: ../src/gui/presets.c:1166 +#: ../src/gui/presets.c:1153 msgid "no presets" msgstr "nenhuma predefinição" -#: ../src/gui/presets.c:1199 ../src/iop/basecurve.c:528 -#: ../src/iop/basecurve.c:532 ../src/iop/basecurve.c:535 +#: ../src/gui/presets.c:1188 ../src/iop/basecurve.c:575 +#: ../src/iop/basecurve.c:579 ../src/iop/basecurve.c:582 msgid "display-referred default" msgstr "padrão relativo à exibição" -#: ../src/gui/presets.c:1201 ../src/iop/channelmixerrgb.c:332 -#: ../src/iop/channelmixerrgb.c:336 ../src/iop/channelmixerrgb.c:339 -#: ../src/iop/exposure.c:297 ../src/iop/exposure.c:301 -#: ../src/iop/exposure.c:304 ../src/iop/filmicrgb.c:3248 -#: ../src/iop/filmicrgb.c:3252 ../src/iop/filmicrgb.c:3255 -#: ../src/iop/sigmoid.c:134 ../src/iop/sigmoid.c:138 ../src/iop/sigmoid.c:141 +#: ../src/gui/presets.c:1190 ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:400 ../src/iop/channelmixerrgb.c:403 +#: ../src/iop/exposure.c:319 ../src/iop/exposure.c:323 +#: ../src/iop/exposure.c:326 ../src/iop/filmicrgb.c:3311 +#: ../src/iop/filmicrgb.c:3315 ../src/iop/filmicrgb.c:3318 +#: ../src/iop/sigmoid.c:240 ../src/iop/sigmoid.c:243 ../src/iop/sigmoid.c:245 msgid "scene-referred default" msgstr "padrão relativo à cena" -#: ../src/gui/presets.c:1393 ../src/libs/modulegroups.c:3781 -#: ../src/libs/modulegroups.c:3790 +#: ../src/gui/presets.c:1394 ../src/libs/modulegroups.c:3783 +#: ../src/libs/modulegroups.c:3792 msgid "manage module layouts" msgstr "gerenciar disposição dos módulos" -#: ../src/gui/presets.c:1402 +#: ../src/gui/presets.c:1403 msgid "manage quick presets" msgstr "gerenciar predefinições rápidas" -#: ../src/gui/presets.c:1586 +#: ../src/gui/presets.c:1587 msgid "manage quick presets list..." msgstr "gerenciar lista de predefinições..." -#: ../src/gui/presets.c:1727 +#: ../src/gui/presets.c:1728 msgid "(default)" msgstr "(padrão)" -#: ../src/gui/presets.c:1754 +#: ../src/gui/presets.c:1755 msgid "disabled: wrong module version" msgstr "desabilitado: versão do módulo incorreta" -#: ../src/gui/presets.c:1776 ../src/libs/lib.c:551 +#: ../src/gui/presets.c:1777 ../src/libs/lib.c:551 msgid "edit this preset.." msgstr "editar esta predefinição..." -#: ../src/gui/presets.c:1781 ../src/libs/lib.c:555 +#: ../src/gui/presets.c:1782 ../src/libs/lib.c:555 msgid "delete this preset" msgstr "excluir esta predefinição" -#: ../src/gui/presets.c:1788 ../src/libs/lib.c:563 +#: ../src/gui/presets.c:1789 ../src/libs/lib.c:563 msgid "store new preset.." msgstr "armazenar nova predefinição..." -#: ../src/gui/presets.c:1796 ../src/libs/lib.c:576 +#: ../src/gui/presets.c:1797 ../src/libs/lib.c:576 msgid "update preset" msgstr "atualizar predefinição" #: ../src/gui/styles_dialog.c:221 ../src/libs/styles.c:437 -#: ../src/libs/styles.c:620 +#: ../src/libs/styles.c:622 msgid "overwrite style?" msgstr "sobrescrever estilo?" @@ -11277,39 +11781,39 @@ msgid "style %s was successfully saved" msgstr "estilo %s foi salvo com sucesso" -#: ../src/gui/styles_dialog.c:505 +#: ../src/gui/styles_dialog.c:512 msgid "edit style" msgstr "editar estilo" -#: ../src/gui/styles_dialog.c:506 +#: ../src/gui/styles_dialog.c:513 msgid "duplicate style" msgstr "duplicar estilo" -#: ../src/gui/styles_dialog.c:507 +#: ../src/gui/styles_dialog.c:514 msgid "creates a duplicate of the style before applying changes" msgstr "cria duplicata do estilo antes de aplicar modificações" -#: ../src/gui/styles_dialog.c:511 +#: ../src/gui/styles_dialog.c:518 msgid "create new style" msgstr "criar novo estilo" -#: ../src/gui/styles_dialog.c:549 +#: ../src/gui/styles_dialog.c:557 msgid "enter a name for the new style" msgstr "digite um nome para o novo estilo" -#: ../src/gui/styles_dialog.c:554 +#: ../src/gui/styles_dialog.c:565 msgid "enter a description for the new style, this description is searchable" msgstr "digite uma descrição para o novo estilo, esta descrição é pesquisável" -#: ../src/gui/styles_dialog.c:593 +#: ../src/gui/styles_dialog.c:605 msgid "keep" msgstr "manter" -#: ../src/gui/styles_dialog.c:820 +#: ../src/gui/styles_dialog.c:832 msgid "can't create style out of unaltered image" msgstr "não é possível criar estilo de uma imagem inalterada" -#: ../src/imageio/imageio.c:804 +#: ../src/imageio/imageio.c:816 #, c-format msgid "" "failed to allocate memory for %s, please lower the threads used for export " @@ -11318,93 +11822,118 @@ "falha ao reservar memória para %s, favor reduza as threads usadas para " "exportação ou acrescente mais memória." -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "thumbnail export" msgstr "exporta miniatura" -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "export" msgstr "exporta" -#: ../src/imageio/imageio.c:819 +#: ../src/imageio/imageio.c:831 #, c-format msgid "cannot find the style '%s' to apply during export." msgstr "" "não foi possível encontrar o estilo '%s' para aplicar durante exportação." -#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:536 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/imageio_libraw.c:295 +msgid "" +"<span foreground='red'><b>WARNING</b></span>: camera is not fully supported!" +msgstr "" +"<span foreground='red'><b>ATENÇÃO</b></span>: a camera não é completamente " +"suportada!" + +#: ../src/imageio/imageio_libraw.c:297 +#, c-format +msgid "" +"colors for `%s' could be misrepresented,\n" +"and edits might not be compatible with future versions." +msgstr "" +"as cores para `%s' poderiam ser representadas erroneamente,\n" +"e as edições podem não ser compatíveis com versões futuras." + +#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:641 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "8 bit" msgstr "8 bit" -#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:567 msgid "10 bit" msgstr "10 bit" -#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:567 msgid "12 bit" msgstr "12 bit" -#: ../src/imageio/format/avif.c:431 +#: ../src/imageio/format/avif.c:110 ../src/imageio/format/webp.c:416 +msgid "lossless" +msgstr "sem perdas" + +#: ../src/imageio/format/avif.c:112 ../src/imageio/format/webp.c:416 +msgid "lossy" +msgstr "com perdas" + +#: ../src/imageio/format/avif.c:463 msgid "invalid AVIF bit depth!" msgstr "profundidade de bits AVIF inválida!" -#: ../src/imageio/format/avif.c:694 -msgid "AVIF" -msgstr "AVIF" - #. Bit depth combo box -#: ../src/imageio/format/avif.c:766 ../src/imageio/format/exr.cc:565 -#: ../src/imageio/format/jxl.c:555 ../src/imageio/format/pdf.c:661 -#: ../src/imageio/format/png.c:534 ../src/imageio/format/tiff.c:843 +#: ../src/imageio/format/avif.c:800 ../src/imageio/format/exr.cc:601 +#: ../src/imageio/format/jxl.c:566 ../src/imageio/format/pdf.c:661 +#: ../src/imageio/format/png.c:639 ../src/imageio/format/tiff.c:900 #: ../src/imageio/format/xcf.c:354 msgid "bit depth" msgstr "profundidade de bits" -#: ../src/imageio/format/avif.c:779 +#: ../src/imageio/format/avif.c:813 msgid "color information stored in an image, higher is better" msgstr "informação de cores guardada na imagem, mais alto é melhor" -#: ../src/imageio/format/avif.c:787 +#. +#. * Color mode combo box +#. +#. shortfile option combo box +#: ../src/imageio/format/avif.c:820 ../src/imageio/format/tiff.c:944 +msgid "B&W as grayscale" +msgstr "P&B como escala de cinza" + +#: ../src/imageio/format/avif.c:821 ../src/imageio/format/tiff.c:945 msgid "saving as grayscale will reduce the size for black & white images" msgstr "" "gravar como tons de cinza reduzirá o tamanho para imagens em preto e branco" -#: ../src/imageio/format/avif.c:789 -msgid "RGB colors" -msgstr "cores RGB" - -#: ../src/imageio/format/avif.c:789 -msgid "grayscale" -msgstr "tons de cinza" - #. #. * Tiling combo box #. -#: ../src/imageio/format/avif.c:799 +#: ../src/imageio/format/avif.c:832 msgid "tiling" msgstr "ladrilhamento" -#: ../src/imageio/format/avif.c:800 +#: ../src/imageio/format/avif.c:833 msgid "" "tile an image into segments.\n" "\n" -"makes encoding faster. the impact on quality reduction is negligible, but " -"increases the file size." +"makes encoding faster, but increases the file size. the loss of image " +"quality is negligible." msgstr "" "quebra a imagem em segmentos.\n" "\n" -"torna a codificação mais rápida. o impacto na redução da qualidade é " -"desprezível, mas aumenta o tamanho do arquivo." +"torna a codificação mais rápida, mas aumenta o tamanho do arquivo. a perda " +"de qualidade na imagem é desprezível." -#: ../src/imageio/format/avif.c:817 ../src/imageio/format/webp.c:383 -msgid "compression type" -msgstr "tipo de compressão" +#. compression +#. Compression method combo box +#: ../src/imageio/format/avif.c:850 ../src/imageio/format/exr.cc:611 +#: ../src/imageio/format/pdf.c:676 ../src/imageio/format/png.c:653 +#: ../src/imageio/format/tiff.c:923 ../src/imageio/format/webp.c:414 +#: ../src/libs/masks.c:111 +msgid "compression" +msgstr "compressão" -#: ../src/imageio/format/avif.c:825 +#: ../src/imageio/format/avif.c:858 msgid "the compression for the image" msgstr "a compressão para a imagem" @@ -11413,36 +11942,28 @@ #. step #. default #. digits -#: ../src/imageio/format/avif.c:842 ../src/imageio/format/j2k.c:661 -#: ../src/imageio/format/jpeg.c:443 ../src/imageio/format/jxl.c:579 -#: ../src/imageio/format/webp.c:394 ../src/libs/camera.c:564 +#: ../src/imageio/format/avif.c:878 ../src/imageio/format/j2k.c:679 +#: ../src/imageio/format/jpeg.c:584 ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/webp.c:425 ../src/libs/camera.c:564 msgid "quality" msgstr "qualidade" -#: ../src/imageio/format/avif.c:847 +#: ../src/imageio/format/avif.c:881 msgid "" "the quality of an image, less quality means fewer details.\n" "\n" -"the following applies only to lossy setting\n" +"pixel format is controlled by quality:\n" "\n" -"pixelformat based on quality:\n" -"\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" msgstr "" "a qualidade da imagem, menos qualidade significa menos detalhes.\n" "\n" -"a tabela a seguir se aplica somente à configuração com perda\n" -"\n" -"pixelformat baseado em qualidade:\n" +"pixel format é controlado por qualidade:\n" "\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" #: ../src/imageio/format/copy.c:109 ../src/libs/copy_history.c:370 -#: ../src/libs/image.c:583 +#: ../src/libs/image.c:647 msgid "copy" msgstr "copiar" @@ -11458,120 +11979,141 @@ msgid "the selected output profile doesn't work well with EXR" msgstr "o perfil de saída selecionado não funciona bem com EXR" -#: ../src/imageio/format/exr.cc:540 +#: ../src/imageio/format/exr.cc:576 msgid "OpenEXR" msgstr "OpenEXR" -#: ../src/imageio/format/exr.cc:567 +#: ../src/imageio/format/exr.cc:603 msgid "16 bit (float)" msgstr "16 bit (ponto flutuante)" -#: ../src/imageio/format/exr.cc:567 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/format/exr.cc:603 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "32 bit (float)" msgstr "32 bit (ponto flutuante)" -#. compression -#. Compression method combo box -#: ../src/imageio/format/exr.cc:575 ../src/imageio/format/pdf.c:676 -#: ../src/imageio/format/png.c:548 ../src/imageio/format/tiff.c:866 -#: ../src/libs/masks.c:110 -msgid "compression" -msgstr "compressão" - -#: ../src/imageio/format/exr.cc:577 ../src/imageio/format/pdf.c:682 -#: ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/exr.cc:613 ../src/imageio/format/pdf.c:682 +#: ../src/imageio/format/tiff.c:924 msgid "uncompressed" msgstr "não comprimido" -#: ../src/imageio/format/exr.cc:578 +#: ../src/imageio/format/exr.cc:614 msgid "RLE" msgstr "RLE" -#: ../src/imageio/format/exr.cc:579 +#: ../src/imageio/format/exr.cc:615 msgid "ZIPS" msgstr "ZIPS" -#: ../src/imageio/format/exr.cc:580 +#: ../src/imageio/format/exr.cc:616 msgid "ZIP" msgstr "ZIP" -#: ../src/imageio/format/exr.cc:581 +#: ../src/imageio/format/exr.cc:617 msgid "PIZ" msgstr "PIZ" -#: ../src/imageio/format/exr.cc:582 +#: ../src/imageio/format/exr.cc:618 msgid "PXR24" msgstr "PXR24" -#: ../src/imageio/format/exr.cc:583 +#: ../src/imageio/format/exr.cc:619 msgid "B44" msgstr "B44" -#: ../src/imageio/format/exr.cc:584 +#: ../src/imageio/format/exr.cc:620 msgid "B44A" msgstr "B44A" -#: ../src/imageio/format/exr.cc:585 +#: ../src/imageio/format/exr.cc:621 msgid "DWAA" msgstr "DWAA" -#: ../src/imageio/format/exr.cc:586 +#: ../src/imageio/format/exr.cc:622 msgid "DWAB" msgstr "DWAB" -#: ../src/imageio/format/j2k.c:618 +#: ../src/imageio/format/j2k.c:648 msgid "JPEG 2000 (12-bit)" msgstr "JPEG 2000 (12-bit)" -#: ../src/imageio/format/j2k.c:652 -msgid "jp2" -msgstr "jp2" - -#: ../src/imageio/format/j2k.c:667 +#: ../src/imageio/format/j2k.c:684 msgid "DCP mode" msgstr "modo DCP" -#: ../src/imageio/format/j2k.c:670 +#: ../src/imageio/format/j2k.c:687 msgid "Cinema2K, 24FPS" msgstr "Cinema2K, 24FPS" -#: ../src/imageio/format/j2k.c:671 +#: ../src/imageio/format/j2k.c:688 msgid "Cinema2K, 48FPS" msgstr "Cinema2K, 48FPS" -#: ../src/imageio/format/j2k.c:672 +#: ../src/imageio/format/j2k.c:689 msgid "Cinema4K, 24FPS" msgstr "Cinema4K, 24FPS" -#: ../src/imageio/format/jpeg.c:420 +#: ../src/imageio/format/jpeg.c:546 msgid "JPEG (8-bit)" msgstr "JPEG (8-bit)" -#: ../src/imageio/format/jxl.c:471 -msgid "JPEG XL" -msgstr "JPEG XL" +#: ../src/imageio/format/jpeg.c:594 +msgid "chroma subsampling" +msgstr "subamostragem de croma" + +#: ../src/imageio/format/jpeg.c:595 +msgid "" +"chroma subsampling setting for JPEG encoder.\n" +"auto - use subsampling determined by the quality value\n" +"4:4:4 - no chroma subsampling\n" +"4:4:0 - color sampling rate halved vertically\n" +"4:2:2 - color sampling rate halved horizontally\n" +"4:2:0 - color sampling rate halved horizontally and vertically" +msgstr "" +"subamostragem de croma para codificação JPEG.\n" +"auto - use subamostragem determinado pelo valor de qualidade\n" +"4:4:4 - nenhuma subamostragem de croma\n" +"4:4:0 - taxa de amostragem de cor dividida pela metade verticalmente\n" +"4:2:2 - taxa de amostragem de cor dividida pela metade horizontalmente\n" +"4:2:0 - taxa de amostragem de cor dividida pela metade horizontalmente e " +"verticalmente" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:4" +msgstr "4:4:4" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:0" +msgstr "4:4:0" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:2" +msgstr "4:2:2" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:0" +msgstr "4:2:0" -#: ../src/imageio/format/jxl.c:556 ../src/imageio/format/pdf.c:81 -#: ../src/imageio/format/png.c:536 ../src/imageio/format/tiff.c:847 +#: ../src/imageio/format/jxl.c:567 ../src/imageio/format/pdf.c:81 +#: ../src/imageio/format/png.c:641 ../src/imageio/format/tiff.c:904 #: ../src/imageio/format/xcf.c:357 msgid "16 bit" msgstr "16 bit" #. Pixel format combo box -#: ../src/imageio/format/jxl.c:562 ../src/imageio/format/tiff.c:852 +#: ../src/imageio/format/jxl.c:573 ../src/imageio/format/tiff.c:909 msgid "pixel type" msgstr "tipo do pixel" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "unsigned integer" msgstr "inteiro sem sinal" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "floating point" msgstr "ponto flutuante" -#: ../src/imageio/format/jxl.c:580 +#: ../src/imageio/format/jxl.c:591 msgid "" "the quality of the output image\n" "0-29 = very lossy\n" @@ -11583,11 +12125,11 @@ "30-99 = qualidade comparável com JPEG\n" "100 = sem perda (somente para profundidade de bits inteira)" -#: ../src/imageio/format/jxl.c:589 +#: ../src/imageio/format/jxl.c:600 msgid "encoding color profile" msgstr "perfil de codificação de cores" -#: ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/jxl.c:601 msgid "" "the color profile used by the encoder\n" "permit internal XYB color space conversion for more efficient lossy " @@ -11601,20 +12143,20 @@ "ou garante que nenhuma conversão ocorre para manter o espaço de cores da " "imagem original (sem perda implica nisto)" -#: ../src/imageio/format/jxl.c:593 +#: ../src/imageio/format/jxl.c:604 msgid "internal" msgstr "interno" -#: ../src/imageio/format/jxl.c:593 ../src/libs/duplicate.c:399 -#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:782 +#: ../src/imageio/format/jxl.c:604 ../src/libs/duplicate.c:405 +#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:840 msgid "original" msgstr "original" -#: ../src/imageio/format/jxl.c:607 +#: ../src/imageio/format/jxl.c:618 msgid "encoding effort" msgstr "esforço de codificação" -#: ../src/imageio/format/jxl.c:608 +#: ../src/imageio/format/jxl.c:619 msgid "" "the effort used to encode the image, higher efforts will have better results " "at the expense of longer encoding times" @@ -11622,11 +12164,11 @@ "o esforço usado para codificar a imagem, esforço maior terá melhor resultado " "com o custo de tempos de codificação maiores" -#: ../src/imageio/format/jxl.c:619 +#: ../src/imageio/format/jxl.c:630 msgid "decoding speed" msgstr "velocidade de decodificação" -#: ../src/imageio/format/jxl.c:620 +#: ../src/imageio/format/jxl.c:631 msgid "the preferred decoding speed with some sacrifice of quality" msgstr "" "a velocidade preferida para decodificação com algum sacrifício de qualidade" @@ -11639,9 +12181,9 @@ msgid "invalid border size, using 0" msgstr "tamanho de borda inválido, utilizando 0" -#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:316 -#: ../src/imageio/storage/email.c:137 ../src/imageio/storage/gallery.c:331 -#: ../src/imageio/storage/gallery.c:370 ../src/imageio/storage/piwigo.c:1202 +#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:460 +#: ../src/imageio/storage/email.c:187 ../src/imageio/storage/gallery.c:409 +#: ../src/imageio/storage/gallery.c:450 ../src/imageio/storage/piwigo.c:1236 #, c-format msgid "could not export to file `%s'!" msgstr "não foi possível exportar para o arquivo `%s'!" @@ -11695,8 +12237,8 @@ "exemplos: 10 mm, 1 inch" #. dpi -#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1127 -#: ../src/libs/export.c:1150 +#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1218 +#: ../src/libs/export.c:1246 msgid "dpi" msgstr "dpi" @@ -11758,7 +12300,7 @@ "sem compressão -- rápido com arquivos grandes\n" "esvaziar -- devagar com arquivos pequenos" -#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:924 msgid "deflate" msgstr "deflate" @@ -11789,60 +12331,23 @@ msgid "debug" msgstr "depurar (debug)" -#: ../src/imageio/format/pfm.c:120 -msgid "PFM" -msgstr "PFM" - -#: ../src/imageio/format/png.c:493 -msgid "PNG" -msgstr "PNG" - #: ../src/imageio/format/ppm.c:111 msgid "PPM (16-bit)" msgstr "PPM (16-bit)" -#: ../src/imageio/format/tiff.c:228 -msgid "will export as a grayscale image" -msgstr "exportará como imagem em tons de cinza" +#: ../src/imageio/format/tiff.c:246 +msgid "not a B&W image, will not export as grayscale" +msgstr "imagem não P&B, não será exportada em tons de cinza" -#: ../src/imageio/format/tiff.c:774 -msgid "TIFF" -msgstr "TIFF" - -#: ../src/imageio/format/tiff.c:868 +#: ../src/imageio/format/tiff.c:925 msgid "deflate with predictor" msgstr "deflate com preditor" -#: ../src/imageio/format/tiff.c:878 +#: ../src/imageio/format/tiff.c:935 msgid "compression level" msgstr "nível de compressão" -#. shortfile option combo box -#: ../src/imageio/format/tiff.c:887 -msgid "b&w image" -msgstr "imagem preto & branco" - -#: ../src/imageio/format/tiff.c:888 -msgid "write RGB colors" -msgstr "salvar cores RGB" - -#: ../src/imageio/format/tiff.c:888 -msgid "write grayscale" -msgstr "salvar escala de cinza" - -#: ../src/imageio/format/webp.c:349 -msgid "WebP" -msgstr "WebP" - -#: ../src/imageio/format/webp.c:385 -msgid "lossy" -msgstr "com perdas" - -#: ../src/imageio/format/webp.c:385 -msgid "lossless" -msgstr "sem perdas" - -#: ../src/imageio/format/webp.c:397 +#: ../src/imageio/format/webp.c:426 msgid "" "for lossy, 0 gives the smallest size and 100 the best quality.\n" "for lossless, 0 is the fastest but gives larger files compared\n" @@ -11852,11 +12357,11 @@ "sem perda, 0 é o mais rápido, mas resulta em arquivos maiores comparado\n" "com o mais lento 100." -#: ../src/imageio/format/webp.c:407 +#: ../src/imageio/format/webp.c:436 msgid "image hint" msgstr "dica imagem" -#: ../src/imageio/format/webp.c:408 +#: ../src/imageio/format/webp.c:437 msgid "" "image characteristics hint for the underlying encoder.\n" "picture: digital picture, like portrait, inner shot\n" @@ -11868,15 +12373,15 @@ "foto : fotografia ao ar livre, com iluminação natural\n" "gráfico : image em tons discretos (gráfico, map-tile etc)" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "picture" msgstr "imagem" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "photo" msgstr "foto" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "graphic" msgstr "gráfico" @@ -11884,12 +12389,12 @@ msgid "XCF" msgstr "XCF" -#: ../src/imageio/storage/disk.c:71 ../src/libs/export.c:1040 +#: ../src/imageio/storage/disk.c:74 ../src/libs/export.c:1119 msgid "file on disk" msgstr "arquivo no disco" -#: ../src/imageio/storage/disk.c:169 ../src/imageio/storage/gallery.c:155 -#: ../src/imageio/storage/latex.c:154 +#: ../src/imageio/storage/disk.c:251 ../src/imageio/storage/gallery.c:204 +#: ../src/imageio/storage/latex.c:191 msgid "" "enter the path where to put exported images\n" "variables support bash like string manipulation\n" @@ -11899,53 +12404,63 @@ "as variáveis suportam manipulação de strings no estilo bash\n" "digite $( para ativar o auto-completamento e ver a lista de variáveis" -#: ../src/imageio/storage/disk.c:182 ../src/imageio/storage/piwigo.c:1079 +#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/piwigo.c:1113 msgid "on conflict" msgstr "em caso de conflito" -#: ../src/imageio/storage/disk.c:185 +#: ../src/imageio/storage/disk.c:268 msgid "create unique filename" msgstr "criar nome de arquivo único" #. DT_COPY_HISTORY_APPEND -#: ../src/imageio/storage/disk.c:186 ../src/imageio/storage/piwigo.c:1083 -#: ../src/libs/copy_history.c:404 ../src/libs/image.c:601 -#: ../src/libs/styles.c:440 ../src/libs/styles.c:623 ../src/libs/styles.c:850 +#: ../src/imageio/storage/disk.c:269 ../src/imageio/storage/piwigo.c:1117 +#: ../src/libs/copy_history.c:404 ../src/libs/image.c:670 +#: ../src/libs/styles.c:854 msgid "overwrite" msgstr "sobrescrever" -#: ../src/imageio/storage/disk.c:187 ../src/imageio/storage/piwigo.c:1081 -#: ../src/libs/styles.c:439 ../src/libs/styles.c:622 +#: ../src/imageio/storage/disk.c:270 +msgid "overwrite if changed" +msgstr "sobrescrever se modificado" + +#: ../src/imageio/storage/disk.c:271 ../src/imageio/storage/piwigo.c:1115 msgid "skip" msgstr "pular" -#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/gallery.c:253 -#: ../src/imageio/storage/latex.c:252 +#: ../src/imageio/storage/disk.c:371 ../src/imageio/storage/gallery.c:326 +#: ../src/imageio/storage/latex.c:289 #, c-format msgid "could not create directory `%s'!" msgstr "não foi possível criar a pasta `%s'!" -#: ../src/imageio/storage/disk.c:272 +#: ../src/imageio/storage/disk.c:382 #, c-format msgid "could not write to directory `%s'!" msgstr "não foi possível salvar na pasta `%s'!" -#: ../src/imageio/storage/disk.c:302 +#: ../src/imageio/storage/disk.c:419 #, c-format msgid "%d/%d skipping `%s'" msgid_plural "%d/%d skipping `%s'" msgstr[0] "%d/%d pulando `%s'" msgstr[1] "%d/%d pulando `%s'" -#: ../src/imageio/storage/disk.c:321 ../src/imageio/storage/email.c:144 -#: ../src/imageio/storage/gallery.c:378 ../src/imageio/storage/latex.c:340 +#: ../src/imageio/storage/disk.c:441 +#, c-format +msgid "%d/%d skipping (not modified since export) `%s'" +msgid_plural "%d/%d skipping (not modified since export) `%s'" +msgstr[0] "%d/%d ignoradas (não modificada desde a exportação) `%s'" +msgstr[1] "%d/%d ignorada (não modificada desde a exportação) `%s'" + +#: ../src/imageio/storage/disk.c:465 ../src/imageio/storage/email.c:194 +#: ../src/imageio/storage/gallery.c:458 ../src/imageio/storage/latex.c:377 #, c-format msgid "%d/%d exported to `%s'" msgid_plural "%d/%d exported to `%s'" msgstr[0] "%d/%d exportada para `%s'" msgstr[1] "%d/%d exportadas para `%s'" -#: ../src/imageio/storage/disk.c:380 +#: ../src/imageio/storage/disk.c:530 msgid "" "you are going to export in overwrite mode, this will overwrite any existing " "images\n" @@ -11957,23 +12472,33 @@ "\n" "tem certeza que quer continuar?" -#: ../src/imageio/storage/email.c:52 +#: ../src/imageio/storage/email.c:57 msgid "send as email" msgstr "enviar como e-mail" -#: ../src/imageio/storage/email.c:198 +#. Unlikely in normal Windows installations, but let's notify the user if it happens +#: ../src/imageio/storage/email.c:265 +msgid "could not open mapi32.dll" +msgstr "não foi possível abrir mapi32.dll" + +#. Even more unlikely +#: ../src/imageio/storage/email.c:275 +msgid "could not get SendMail function" +msgstr "não foi possível ober a função SendMail" + +#: ../src/imageio/storage/email.c:319 ../src/imageio/storage/email.c:409 msgid "images exported from darktable" msgstr "imagens exportadas do darktable" -#: ../src/imageio/storage/email.c:251 +#: ../src/imageio/storage/email.c:388 ../src/imageio/storage/email.c:467 msgid "could not launch email client!" msgstr "não é possível iniciar o programa de email!" -#: ../src/imageio/storage/gallery.c:73 +#: ../src/imageio/storage/gallery.c:76 msgid "website gallery" msgstr "galeria na web" -#: ../src/imageio/storage/gallery.c:171 +#: ../src/imageio/storage/gallery.c:224 msgid "enter the title of the website" msgstr "inserir o título do website" @@ -11981,149 +12506,149 @@ msgid "LaTeX book template" msgstr "modelo de livro LaTeX" -#: ../src/imageio/storage/latex.c:172 +#: ../src/imageio/storage/latex.c:209 msgid "enter the title of the book" msgstr "inserir o nome do livro" -#: ../src/imageio/storage/piwigo.c:522 +#: ../src/imageio/storage/piwigo.c:525 msgid "authenticated" msgstr "autenticado" -#: ../src/imageio/storage/piwigo.c:532 ../src/imageio/storage/piwigo.c:547 -#: ../src/imageio/storage/piwigo.c:559 +#: ../src/imageio/storage/piwigo.c:536 ../src/imageio/storage/piwigo.c:552 +#: ../src/imageio/storage/piwigo.c:565 msgid "not authenticated" msgstr "não autenticado" -#: ../src/imageio/storage/piwigo.c:538 +#: ../src/imageio/storage/piwigo.c:542 msgid "not authenticated, cannot reach server" msgstr "não autenticado, não pude chegar ao servidor" -#: ../src/imageio/storage/piwigo.c:587 ../src/imageio/storage/piwigo.c:675 +#: ../src/imageio/storage/piwigo.c:595 ../src/imageio/storage/piwigo.c:684 msgid "create new album" msgstr "criar novo álbum" -#: ../src/imageio/storage/piwigo.c:676 +#: ../src/imageio/storage/piwigo.c:685 msgid "---" msgstr "---" -#: ../src/imageio/storage/piwigo.c:721 +#: ../src/imageio/storage/piwigo.c:735 msgid "cannot refresh albums" msgstr "não é possível atualizar lista de álbuns" -#: ../src/imageio/storage/piwigo.c:929 +#: ../src/imageio/storage/piwigo.c:950 msgid "Piwigo" msgstr "Piwigo" -#: ../src/imageio/storage/piwigo.c:954 +#: ../src/imageio/storage/piwigo.c:976 msgid "accounts" msgstr "contas" -#: ../src/imageio/storage/piwigo.c:972 ../src/imageio/storage/piwigo.c:978 +#: ../src/imageio/storage/piwigo.c:995 ../src/imageio/storage/piwigo.c:1004 msgid "server" msgstr "servidor" -#: ../src/imageio/storage/piwigo.c:974 ../src/imageio/storage/piwigo.c:989 +#: ../src/imageio/storage/piwigo.c:998 msgid "" "the server name\n" "default protocol is https\n" -"specify http:// if non secure server" +"specify insecure protocol http:// explicitly if that protocol is required" msgstr "" "o nome do servidor\n" "o protocolo padrão é https\n" -"especifique http:// para servidor não seguro" +"especifique o protocolo inseguro http:// explicitamente se este protocolo é " +"necessário" -#: ../src/imageio/storage/piwigo.c:987 ../src/imageio/storage/piwigo.c:993 +#: ../src/imageio/storage/piwigo.c:1014 ../src/imageio/storage/piwigo.c:1021 msgid "user" msgstr "usuário" -#: ../src/imageio/storage/piwigo.c:1000 ../src/imageio/storage/piwigo.c:1005 +#: ../src/imageio/storage/piwigo.c:1029 ../src/imageio/storage/piwigo.c:1034 msgid "password" msgstr "senha" #. login button -#: ../src/imageio/storage/piwigo.c:1010 +#: ../src/imageio/storage/piwigo.c:1039 msgid "login" msgstr "entrar" -#: ../src/imageio/storage/piwigo.c:1011 +#: ../src/imageio/storage/piwigo.c:1040 msgid "Piwigo login" msgstr "login Piwigo" #. permissions list -#: ../src/imageio/storage/piwigo.c:1025 +#: ../src/imageio/storage/piwigo.c:1056 msgid "visible to" msgstr "visível para" -#: ../src/imageio/storage/piwigo.c:1027 +#: ../src/imageio/storage/piwigo.c:1058 msgid "everyone" msgstr "todos" -#: ../src/imageio/storage/piwigo.c:1028 +#: ../src/imageio/storage/piwigo.c:1059 msgid "contacts" msgstr "contatos" -#: ../src/imageio/storage/piwigo.c:1029 +#: ../src/imageio/storage/piwigo.c:1060 msgid "friends" msgstr "amigos" -#: ../src/imageio/storage/piwigo.c:1030 +#: ../src/imageio/storage/piwigo.c:1061 msgid "family" msgstr "família" -#: ../src/imageio/storage/piwigo.c:1031 +#: ../src/imageio/storage/piwigo.c:1062 msgid "you" msgstr "você" #. Available albums -#: ../src/imageio/storage/piwigo.c:1038 +#: ../src/imageio/storage/piwigo.c:1069 msgid "album" msgstr "álbum" -#: ../src/imageio/storage/piwigo.c:1045 +#: ../src/imageio/storage/piwigo.c:1076 msgid "refresh album list" msgstr "atualiza lista de álbuns" #. Album title -#: ../src/imageio/storage/piwigo.c:1063 +#: ../src/imageio/storage/piwigo.c:1096 msgid "new album" msgstr "novo álbum" -#. parent album list #. Available albums -#: ../src/imageio/storage/piwigo.c:1071 +#: ../src/imageio/storage/piwigo.c:1105 msgid "parent album" msgstr "album pai" -#: ../src/imageio/storage/piwigo.c:1075 +#: ../src/imageio/storage/piwigo.c:1109 msgid "click login button to start" msgstr "clique login para iniciar" -#: ../src/imageio/storage/piwigo.c:1080 +#: ../src/imageio/storage/piwigo.c:1114 msgid "don't check" msgstr "não verificar" -#: ../src/imageio/storage/piwigo.c:1082 +#: ../src/imageio/storage/piwigo.c:1116 msgid "update metadata" msgstr "atualizar metadados" -#: ../src/imageio/storage/piwigo.c:1221 +#: ../src/imageio/storage/piwigo.c:1255 msgid "cannot create a new Piwigo album!" msgstr "não é possível criar novo álbum Piwigo!" -#: ../src/imageio/storage/piwigo.c:1240 +#: ../src/imageio/storage/piwigo.c:1274 msgid "could not update to Piwigo!" msgstr "não foi possível atualizar no Piwigo!" -#: ../src/imageio/storage/piwigo.c:1255 +#: ../src/imageio/storage/piwigo.c:1290 msgid "could not upload to Piwigo!" msgstr "não foi possível exportar para Piwigo!" -#: ../src/imageio/storage/piwigo.c:1284 +#: ../src/imageio/storage/piwigo.c:1319 #, c-format msgid "%d/%d skipped (already exists)" msgstr "%d/%d não feitos (já existem)" -#: ../src/imageio/storage/piwigo.c:1290 +#: ../src/imageio/storage/piwigo.c:1325 #, c-format msgid "%d/%d exported to Piwigo webalbum" msgid_plural "%d/%d exported to Piwigo webalbum" @@ -12143,54 +12668,54 @@ msgstr "rotaciona ou distorce a perspectiva automaticamente" #: ../src/iop/ashift.c:131 ../src/iop/channelmixer.c:139 -#: ../src/iop/channelmixerrgb.c:232 ../src/iop/clipping.c:320 -#: ../src/iop/colorbalance.c:161 ../src/iop/colorbalancergb.c:185 +#: ../src/iop/channelmixerrgb.c:233 ../src/iop/clipping.c:363 +#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:185 #: ../src/iop/colorchecker.c:130 ../src/iop/colorcorrection.c:77 -#: ../src/iop/crop.c:144 ../src/iop/lut3d.c:141 +#: ../src/iop/crop.c:134 ../src/iop/lut3d.c:142 ../src/iop/primaries.c:80 msgid "corrective or creative" msgstr "corretivo ou criativo" -#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:148 -#: ../src/iop/bilateral.cc:101 ../src/iop/bilateral.cc:103 -#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:233 -#: ../src/iop/channelmixerrgb.c:235 ../src/iop/clipping.c:321 -#: ../src/iop/clipping.c:323 ../src/iop/colorbalancergb.c:186 -#: ../src/iop/colorin.c:136 ../src/iop/crop.c:145 ../src/iop/crop.c:147 -#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:728 -#: ../src/iop/denoiseprofile.c:730 ../src/iop/diffuse.c:146 +#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:174 +#: ../src/iop/bilateral.cc:103 ../src/iop/bilateral.cc:105 +#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:236 ../src/iop/clipping.c:364 +#: ../src/iop/clipping.c:366 ../src/iop/colorbalancergb.c:186 +#: ../src/iop/colorin.c:136 ../src/iop/crop.c:135 ../src/iop/crop.c:137 +#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:780 +#: ../src/iop/denoiseprofile.c:782 ../src/iop/diffuse.c:146 #: ../src/iop/diffuse.c:148 ../src/iop/exposure.c:132 ../src/iop/exposure.c:134 #: ../src/iop/flip.c:111 ../src/iop/flip.c:112 ../src/iop/hazeremoval.c:113 -#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:242 ../src/iop/lens.cc:244 -#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/retouch.c:210 -#: ../src/iop/retouch.c:212 ../src/iop/sigmoid.c:103 -#: ../src/iop/splittoning.c:104 ../src/iop/splittoning.c:106 -#: ../src/iop/spots.c:70 ../src/iop/spots.c:72 ../src/iop/toneequal.c:325 -#: ../src/iop/velvia.c:106 ../src/iop/velvia.c:108 +#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:263 ../src/iop/lens.cc:265 +#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/primaries.c:81 +#: ../src/iop/primaries.c:83 ../src/iop/retouch.c:210 ../src/iop/retouch.c:212 +#: ../src/iop/sigmoid.c:209 ../src/iop/splittoning.c:106 +#: ../src/iop/splittoning.c:108 ../src/iop/spots.c:70 ../src/iop/spots.c:72 +#: ../src/iop/toneequal.c:333 ../src/iop/velvia.c:99 ../src/iop/velvia.c:101 msgid "linear, RGB, scene-referred" msgstr "linear, RGB, relativo à cena" -#: ../src/iop/ashift.c:133 ../src/iop/borders.c:200 ../src/iop/clipping.c:322 -#: ../src/iop/crop.c:146 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 +#: ../src/iop/ashift.c:133 ../src/iop/borders.c:325 ../src/iop/clipping.c:365 +#: ../src/iop/crop.c:136 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 msgid "geometric, RGB" msgstr "geométrico, RGB" -#: ../src/iop/ashift.c:2820 +#: ../src/iop/ashift.c:2866 msgid "automatic cropping failed" msgstr "corte automático falhou" -#: ../src/iop/ashift.c:3234 ../src/iop/ashift.c:3286 ../src/iop/ashift.c:3334 +#: ../src/iop/ashift.c:3276 ../src/iop/ashift.c:3328 ../src/iop/ashift.c:3375 msgid "data pending - please repeat" msgstr "dados pendentes - por favor repita" -#: ../src/iop/ashift.c:3243 +#: ../src/iop/ashift.c:3285 msgid "could not detect structural data in image" msgstr "não foi possível detectar dados estruturais na imagem" -#: ../src/iop/ashift.c:3255 +#: ../src/iop/ashift.c:3297 msgid "could not run outlier removal" msgstr "não foi possível executar a remoção" -#: ../src/iop/ashift.c:3434 +#: ../src/iop/ashift.c:3474 #, c-format msgid "" "not enough structure for automatic correction\n" @@ -12199,41 +12724,41 @@ "não há estrutura suficiente para correção automática\n" "no mínimo %d linhas em cada direção relevante" -#: ../src/iop/ashift.c:3440 +#: ../src/iop/ashift.c:3480 msgid "automatic correction failed, please correct manually" msgstr "a correção automática falhou, faça manualmente" -#: ../src/iop/ashift.c:5096 +#: ../src/iop/ashift.c:5077 #, c-format msgid "only %d lines can be saved in parameters" msgstr "somente %d linhas podem ser guardadas em parâmetros" -#: ../src/iop/ashift.c:5201 +#: ../src/iop/ashift.c:5157 #, c-format -msgid "rotation adjusted by %3.1f° to %3.1f°" -msgstr "rotação ajustada em %3.1f° para %3.1f°" +msgid "rotation adjusted by %3.2f° to %3.2f°" +msgstr "rotação ajustada em %3.2f° para %3.2f°" -#: ../src/iop/ashift.c:5852 ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 -#: ../src/iop/ashift.c:5961 +#: ../src/iop/ashift.c:5797 ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 +#: ../src/iop/ashift.c:5906 #, c-format msgid "lens shift (%s)" msgstr "deslocamento da lente (%s)" -#: ../src/iop/ashift.c:6125 +#: ../src/iop/ashift.c:6072 msgid "manual perspective" msgstr "perspectiva manual" -#: ../src/iop/ashift.c:6170 +#: ../src/iop/ashift.c:6117 msgctxt "section" msgid "perspective" msgstr "perspectiva" -#: ../src/iop/ashift.c:6177 ../src/iop/ashift.c:6286 ../src/iop/ashift.c:6288 -#: ../src/iop/ashift.c:6290 +#: ../src/iop/ashift.c:6124 ../src/iop/ashift.c:6233 ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6237 msgid "structure" msgstr "estrutura" -#: ../src/iop/ashift.c:6212 +#: ../src/iop/ashift.c:6159 msgid "" "rotate image\n" "right-click and drag to define a horizontal or vertical line by drawing on " @@ -12243,19 +12768,19 @@ "clique com o botão direito e arraste para definir uma linha horizontal ou " "vertical ao desenhar na imagem" -#: ../src/iop/ashift.c:6215 ../src/iop/ashift.c:6217 +#: ../src/iop/ashift.c:6162 ../src/iop/ashift.c:6164 msgid "apply lens shift correction in one direction" msgstr "aplica a correção de deslocamento de lente em somente uma direção" -#: ../src/iop/ashift.c:6219 +#: ../src/iop/ashift.c:6166 msgid "shear the image along one diagonal" msgstr "inclina a imagem ao longo de uma diagonal" -#: ../src/iop/ashift.c:6220 ../src/iop/clipping.c:2117 +#: ../src/iop/ashift.c:6167 ../src/iop/clipping.c:2170 msgid "automatically crop to avoid black edges" msgstr "corta automaticamente para evitar bordas pretas" -#: ../src/iop/ashift.c:6221 +#: ../src/iop/ashift.c:6168 msgid "" "lens model of the perspective correction: generic or according to the focal " "length" @@ -12263,13 +12788,13 @@ "modelo de lente da correção de perspectiva: genérico ou de acordo com a " "distância focal" -#: ../src/iop/ashift.c:6224 +#: ../src/iop/ashift.c:6171 msgid "focal length of the lens, default value set from EXIF data if available" msgstr "" "distância focal da lente, valor padrão ajustado a partir dos dados EXIF, se " "disponíveis" -#: ../src/iop/ashift.c:6227 +#: ../src/iop/ashift.c:6174 msgid "" "crop factor of the camera sensor, default value set from EXIF data if " "available, manual setting is often required" @@ -12277,7 +12802,7 @@ "fator de crop do sensor da câmera, o valor padrão é definido a partir dos " "dados EXIF se disponíveis, ajuste manual é usualmente necessário" -#: ../src/iop/ashift.c:6231 +#: ../src/iop/ashift.c:6178 msgid "" "the level of lens dependent correction, set to maximum for full lens " "dependency, set to zero for the generic case" @@ -12285,12 +12810,12 @@ "o nível de correção dependente de lente, ajuste para o máximo para completa " "dependência da lente, e zero para o caso genérico" -#: ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6182 msgid "adjust aspect ratio of image by horizontal and vertical scaling" msgstr "" "ajusta a proporção da imagem mudando escala horizontalmente e verticalmente" -#: ../src/iop/ashift.c:6237 +#: ../src/iop/ashift.c:6184 msgid "" "automatically correct for vertical perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12300,7 +12825,7 @@ "ctrl-clique para ajustar apenas rotação\n" "shift-clique para ajustar somente correção de lente" -#: ../src/iop/ashift.c:6241 +#: ../src/iop/ashift.c:6188 msgid "" "automatically correct for horizontal perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12310,7 +12835,7 @@ "ctrl-clique para ajustar apenas rotação\n" "shift-clique para ajustar somente correção de lente" -#: ../src/iop/ashift.c:6245 +#: ../src/iop/ashift.c:6192 msgid "" "automatically correct for vertical and horizontal perspective distortions, " "fitting rotation, lens shift in both directions, and shear\n" @@ -12324,7 +12849,7 @@ "shift-clique para ajustar somente correção de lente\n" "ctrl-shift-clique para ajustar somente rotação e correção de lente" -#: ../src/iop/ashift.c:6252 +#: ../src/iop/ashift.c:6199 msgid "" "automatically analyse line structure in image\n" "ctrl+click for an additional edge enhancement\n" @@ -12336,225 +12861,225 @@ "shift-clique para melhoria adicional de detalhes\n" "ctrl-shift-clique para uma combinação dos dois métodos" -#: ../src/iop/ashift.c:6257 +#: ../src/iop/ashift.c:6204 msgid "manually define perspective rectangle" msgstr "definir manualmente o retângulo de prespectiva" -#: ../src/iop/ashift.c:6258 +#: ../src/iop/ashift.c:6205 msgid "manually draw structure lines" msgstr "desenhar manualmente as linhas estruturais" -#: ../src/iop/ashift.c:6287 +#: ../src/iop/ashift.c:6234 msgid "rectangle" msgstr "retângulo" -#: ../src/iop/ashift.c:6289 +#: ../src/iop/ashift.c:6236 msgid "lines" msgstr "linhas" -#: ../src/iop/ashift.c:6323 ../src/iop/clipping.c:3343 +#: ../src/iop/ashift.c:6270 ../src/iop/clipping.c:3383 #, c-format msgid "[%s] define/rotate horizon" msgstr "[%s] definir/rotacionar horizonte" -#: ../src/iop/ashift.c:6326 +#: ../src/iop/ashift.c:6273 #, c-format msgid "[%s on segment] select segment" msgstr "[%s no segmento] selecionar segmento" -#: ../src/iop/ashift.c:6330 +#: ../src/iop/ashift.c:6277 #, c-format msgid "[%s on segment] unselect segment" msgstr "[%s no segmento] deselecionar segmento" -#: ../src/iop/ashift.c:6334 +#: ../src/iop/ashift.c:6281 #, c-format msgid "[%s] select all segments from zone" msgstr "[%s] selecionar todos os segmentos de uma zona" -#: ../src/iop/ashift.c:6338 +#: ../src/iop/ashift.c:6285 #, c-format msgid "[%s] unselect all segments from zone" msgstr "[%s] de-selecionar todos os segmentos de uma zona" -#: ../src/iop/atrous.c:123 ../src/iop/atrous.c:1638 +#: ../src/iop/atrous.c:122 ../src/iop/atrous.c:1770 msgid "contrast equalizer" msgstr "equalizador de contraste" -#: ../src/iop/atrous.c:128 +#: ../src/iop/atrous.c:127 msgid "sharpness|acutance|local contrast" msgstr "nitidez|agudez|contraste local" -#: ../src/iop/atrous.c:133 +#: ../src/iop/atrous.c:132 msgid "add or remove local contrast, sharpness, acutance" msgstr "adiciona ou remove contraste local, nitidez, agudez" -#: ../src/iop/atrous.c:134 ../src/iop/bilateral.cc:100 ../src/iop/diffuse.c:145 +#: ../src/iop/atrous.c:133 ../src/iop/bilateral.cc:102 ../src/iop/diffuse.c:145 #: ../src/iop/exposure.c:131 ../src/iop/filmicrgb.c:352 #: ../src/iop/graduatednd.c:146 ../src/iop/negadoctor.c:146 -#: ../src/iop/rgbcurve.c:143 ../src/iop/rgblevels.c:123 ../src/iop/shadhi.c:197 -#: ../src/iop/sigmoid.c:102 ../src/iop/tonecurve.c:211 -#: ../src/iop/toneequal.c:324 +#: ../src/iop/rgbcurve.c:145 ../src/iop/rgblevels.c:125 ../src/iop/shadhi.c:144 +#: ../src/iop/sigmoid.c:209 ../src/iop/tonecurve.c:184 +#: ../src/iop/toneequal.c:332 msgid "corrective and creative" msgstr "corretivo e criativo" -#: ../src/iop/atrous.c:135 ../src/iop/atrous.c:137 -#: ../src/iop/colorbalance.c:162 +#: ../src/iop/atrous.c:134 ../src/iop/atrous.c:136 +#: ../src/iop/colorbalance.c:164 msgid "linear, Lab, scene-referred" msgstr "linear, Lab, relativo à cena" -#: ../src/iop/atrous.c:136 ../src/iop/censorize.c:85 +#: ../src/iop/atrous.c:135 ../src/iop/censorize.c:85 #: ../src/iop/hazeremoval.c:114 msgid "frequential, RGB" msgstr "frequencial, RGB" -#: ../src/iop/atrous.c:727 +#: ../src/iop/atrous.c:799 msgctxt "eq_preset" msgid "coarse" msgstr "grosso" -#: ../src/iop/atrous.c:742 +#: ../src/iop/atrous.c:815 msgid "denoise & sharpen" msgstr "reduz ruído & melhora nitidez" -#: ../src/iop/atrous.c:757 +#: ../src/iop/atrous.c:831 msgctxt "atrous" msgid "sharpen" msgstr "nitidez" -#: ../src/iop/atrous.c:772 +#: ../src/iop/atrous.c:847 msgid "denoise chroma" msgstr "reduz ruido do croma" -#: ../src/iop/atrous.c:787 +#: ../src/iop/atrous.c:863 msgid "denoise" msgstr "reduz ruído" -#: ../src/iop/atrous.c:803 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:421 +#: ../src/iop/atrous.c:880 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:448 msgid "bloom" msgstr "luz suave" -#: ../src/iop/atrous.c:818 ../src/iop/bilat.c:169 +#: ../src/iop/atrous.c:896 ../src/iop/bilat.c:186 msgid "clarity" msgstr "claridade" -#: ../src/iop/atrous.c:838 +#: ../src/iop/atrous.c:917 msgid "deblur: large blur, strength 3" msgstr "nitidez: desfoque grande, força 3" -#: ../src/iop/atrous.c:855 +#: ../src/iop/atrous.c:935 msgid "deblur: medium blur, strength 3" msgstr "nitidez: desfoque médio, força 3" -#: ../src/iop/atrous.c:871 +#: ../src/iop/atrous.c:952 msgid "deblur: fine blur, strength 3" msgstr "nitidez: desfoque pequeno, força 3" -#: ../src/iop/atrous.c:889 +#: ../src/iop/atrous.c:971 msgid "deblur: large blur, strength 2" msgstr "nitidez: desfoque grande, força 2" -#: ../src/iop/atrous.c:906 +#: ../src/iop/atrous.c:989 msgid "deblur: medium blur, strength 2" msgstr "nitidez: desfoque médio, força 2" -#: ../src/iop/atrous.c:922 +#: ../src/iop/atrous.c:1006 msgid "deblur: fine blur, strength 2" msgstr "nitidez: desfoque pequeno, força 2" -#: ../src/iop/atrous.c:940 +#: ../src/iop/atrous.c:1025 msgid "deblur: large blur, strength 1" msgstr "nitidez: desfoque grande, força 1" -#: ../src/iop/atrous.c:957 +#: ../src/iop/atrous.c:1043 msgid "deblur: medium blur, strength 1" msgstr "nitidez: desfoque médio, força 1" -#: ../src/iop/atrous.c:973 +#: ../src/iop/atrous.c:1060 msgid "deblur: fine blur, strength 1" msgstr "nitidez: desfoque pequeno, força 1" -#: ../src/iop/atrous.c:1289 ../src/iop/atrous.c:1525 -#: ../src/iop/denoiseprofile.c:3510 ../src/iop/rawdenoise.c:738 +#: ../src/iop/atrous.c:1390 ../src/iop/atrous.c:1639 +#: ../src/iop/denoiseprofile.c:3514 ../src/iop/rawdenoise.c:754 msgid "coarse" msgstr "grosso" -#: ../src/iop/atrous.c:1296 ../src/iop/atrous.c:1526 -#: ../src/iop/denoiseprofile.c:3518 ../src/iop/rawdenoise.c:746 +#: ../src/iop/atrous.c:1397 ../src/iop/atrous.c:1640 +#: ../src/iop/denoiseprofile.c:3522 ../src/iop/rawdenoise.c:762 msgid "fine" msgstr "fino" -#: ../src/iop/atrous.c:1308 +#: ../src/iop/atrous.c:1409 msgid "contrasty" msgstr "contrastado" -#: ../src/iop/atrous.c:1314 ../src/iop/denoiseprofile.c:3532 -#: ../src/iop/rawdenoise.c:760 +#: ../src/iop/atrous.c:1415 ../src/iop/denoiseprofile.c:3536 +#: ../src/iop/rawdenoise.c:776 msgid "noisy" msgstr "ruidoso" #. case atrous_s: -#: ../src/iop/atrous.c:1317 +#: ../src/iop/atrous.c:1418 msgid "bold" msgstr "distinto" -#: ../src/iop/atrous.c:1318 +#: ../src/iop/atrous.c:1419 msgid "dull" msgstr "opaco" -#: ../src/iop/atrous.c:1513 ../src/iop/atrous.c:1564 +#: ../src/iop/atrous.c:1627 ../src/iop/atrous.c:1685 msgid "boost" msgstr "impulsionar" -#: ../src/iop/atrous.c:1514 +#: ../src/iop/atrous.c:1628 msgid "reduce" msgstr "reduzir" -#: ../src/iop/atrous.c:1515 +#: ../src/iop/atrous.c:1629 msgid "raise" msgstr "aumentar" -#: ../src/iop/atrous.c:1516 +#: ../src/iop/atrous.c:1630 msgid "lower" msgstr "baixar" -#: ../src/iop/atrous.c:1523 +#: ../src/iop/atrous.c:1637 msgid "coarsest" msgstr "o mais grosso" -#: ../src/iop/atrous.c:1524 +#: ../src/iop/atrous.c:1638 msgid "coarser" msgstr "mais grosso" -#: ../src/iop/atrous.c:1527 +#: ../src/iop/atrous.c:1641 msgid "finer" msgstr "mais fino" -#: ../src/iop/atrous.c:1528 +#: ../src/iop/atrous.c:1642 msgid "finest" msgstr "o mais fino" -#: ../src/iop/atrous.c:1586 ../src/libs/export.c:1143 ../src/libs/export.c:1158 +#: ../src/iop/atrous.c:1710 ../src/libs/export.c:1239 ../src/libs/export.c:1255 msgid "x" msgstr "x" -#: ../src/iop/atrous.c:1666 ../src/iop/nlmeans.c:465 +#: ../src/iop/atrous.c:1799 ../src/iop/nlmeans.c:468 msgid "luma" msgstr "luma" -#: ../src/iop/atrous.c:1666 +#: ../src/iop/atrous.c:1800 msgid "change lightness at each feature size" msgstr "muda luminosidade a cada dimensão característica" -#: ../src/iop/atrous.c:1667 +#: ../src/iop/atrous.c:1802 msgid "change color saturation at each feature size" msgstr "muda saturação de cor a cada dimensão característica" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1804 msgid "edges" msgstr "bordas" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1805 msgid "" "change edge halos at each feature size\n" "only changes results of luma and chroma tabs" @@ -12562,97 +13087,97 @@ "muda halos das bordas a cada dimensão característica\n" "só muda resultado das abas de luma e croma" -#: ../src/iop/atrous.c:1679 ../src/iop/colorbalancergb.c:2058 -#: ../src/iop/colorzones.c:2473 ../src/iop/denoiseprofile.c:3743 -#: ../src/iop/filmicrgb.c:4407 ../src/iop/lowlight.c:823 -#: ../src/iop/rawdenoise.c:919 ../src/iop/toneequal.c:3371 +#: ../src/iop/atrous.c:1818 ../src/iop/colorbalancergb.c:2129 +#: ../src/iop/colorzones.c:2732 ../src/iop/denoiseprofile.c:3747 +#: ../src/iop/filmicrgb.c:4471 ../src/iop/lowlight.c:821 +#: ../src/iop/rawdenoise.c:935 ../src/iop/toneequal.c:3424 msgid "graph" msgstr "gráfico" -#: ../src/iop/atrous.c:1690 ../src/iop/colorzones.c:2470 +#: ../src/iop/atrous.c:1836 ../src/iop/colorzones.c:2729 msgid "make effect stronger or weaker" msgstr "torna efeito mais forte ou fraco" -#: ../src/iop/basecurve.c:213 +#: ../src/iop/basecurve.c:260 msgid "neutral" msgstr "neutro" -#: ../src/iop/basecurve.c:214 +#: ../src/iop/basecurve.c:261 msgid "canon eos like" msgstr "similar à Canon EOS" -#: ../src/iop/basecurve.c:215 +#: ../src/iop/basecurve.c:262 msgid "canon eos like alternate" msgstr "similar à Canon EOS (alternativa)" -#: ../src/iop/basecurve.c:216 +#: ../src/iop/basecurve.c:263 msgid "nikon like" msgstr "similar à Nikon" -#: ../src/iop/basecurve.c:217 +#: ../src/iop/basecurve.c:264 msgid "nikon like alternate" msgstr "similar à Nikon (alternativa)" -#: ../src/iop/basecurve.c:218 +#: ../src/iop/basecurve.c:265 msgid "sony alpha like" msgstr "similar à Sony Alpha" -#: ../src/iop/basecurve.c:219 +#: ../src/iop/basecurve.c:266 msgid "pentax like" msgstr "similar à Pentax" -#: ../src/iop/basecurve.c:220 +#: ../src/iop/basecurve.c:267 msgid "ricoh like" msgstr "similar à Ricoh" -#: ../src/iop/basecurve.c:221 +#: ../src/iop/basecurve.c:268 msgid "olympus like" msgstr "similar à Olympus" -#: ../src/iop/basecurve.c:222 +#: ../src/iop/basecurve.c:269 msgid "olympus like alternate" msgstr "similar à Olympus (alternativa)" -#: ../src/iop/basecurve.c:223 +#: ../src/iop/basecurve.c:270 msgid "panasonic like" msgstr "similar à Panasonic" -#: ../src/iop/basecurve.c:224 +#: ../src/iop/basecurve.c:271 msgid "leica like" msgstr "similar à Leica" -#: ../src/iop/basecurve.c:225 +#: ../src/iop/basecurve.c:272 msgid "kodak easyshare like" msgstr "similar à Kodak Easyshare" -#: ../src/iop/basecurve.c:226 +#: ../src/iop/basecurve.c:273 msgid "konica minolta like" msgstr "similar à Konica Minolta" -#: ../src/iop/basecurve.c:227 +#: ../src/iop/basecurve.c:274 msgid "samsung like" msgstr "similar à Samsung" -#: ../src/iop/basecurve.c:228 +#: ../src/iop/basecurve.c:275 msgid "fujifilm like" msgstr "similar à Fujifilm" -#: ../src/iop/basecurve.c:229 +#: ../src/iop/basecurve.c:276 msgid "nokia like" msgstr "similar à Nokia" #. clang-format off #. smoother cubic spline curve -#: ../src/iop/basecurve.c:284 ../src/iop/colorzones.c:2495 -#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1173 +#: ../src/iop/basecurve.c:331 ../src/iop/colorzones.c:2763 +#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1195 msgid "cubic spline" msgstr "curva-S cúbica" -#: ../src/iop/basecurve.c:343 +#: ../src/iop/basecurve.c:390 msgid "base curve" msgstr "curva base" -#: ../src/iop/basecurve.c:350 +#: ../src/iop/basecurve.c:397 msgid "" "apply a view transform based on personal or camera manufacturer look,\n" "for corrective purposes, to prepare images for display" @@ -12662,65 +13187,65 @@ "ou gosto pessoal, com fins corretivos, de modo a preparar a imagem para " "exibição" -#: ../src/iop/basecurve.c:352 ../src/iop/cacorrect.c:78 -#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:135 -#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:727 +#: ../src/iop/basecurve.c:399 ../src/iop/cacorrect.c:84 +#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:120 +#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:779 #: ../src/iop/flip.c:110 ../src/iop/hazeremoval.c:112 -#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:73 -#: ../src/iop/invert.c:119 ../src/iop/lens.cc:241 ../src/iop/nlmeans.c:95 -#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:130 -#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:94 ../src/iop/spots.c:69 -#: ../src/iop/temperature.c:212 +#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:75 +#: ../src/iop/invert.c:136 ../src/iop/lens.cc:262 ../src/iop/nlmeans.c:89 +#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:144 +#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:96 ../src/iop/spots.c:69 +#: ../src/iop/temperature.c:220 msgid "corrective" msgstr "corretivo" -#: ../src/iop/basecurve.c:353 ../src/iop/channelmixer.c:140 -#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:142 +#: ../src/iop/basecurve.c:400 ../src/iop/channelmixer.c:140 +#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:143 #: ../src/iop/negadoctor.c:147 ../src/iop/profile_gamma.c:103 -#: ../src/iop/rgbcurve.c:144 ../src/iop/rgbcurve.c:146 -#: ../src/iop/rgblevels.c:124 ../src/iop/sigmoid.c:105 ../src/iop/soften.c:102 -#: ../src/iop/soften.c:104 +#: ../src/iop/rgbcurve.c:146 ../src/iop/rgbcurve.c:148 +#: ../src/iop/rgblevels.c:126 ../src/iop/sigmoid.c:210 ../src/iop/soften.c:104 +#: ../src/iop/soften.c:106 msgid "linear, RGB, display-referred" msgstr "linear, RGB, relativo à exibição" -#: ../src/iop/basecurve.c:354 ../src/iop/basicadj.c:149 -#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:187 +#: ../src/iop/basecurve.c:401 ../src/iop/basicadj.c:175 +#: ../src/iop/colorbalance.c:165 ../src/iop/colorbalancergb.c:187 #: ../src/iop/dither.c:121 ../src/iop/filmicrgb.c:354 #: ../src/iop/graduatednd.c:148 ../src/iop/negadoctor.c:148 -#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:145 -#: ../src/iop/rgblevels.c:125 ../src/iop/sigmoid.c:104 -#: ../src/iop/vignette.c:161 ../src/iop/watermark.c:379 +#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:147 +#: ../src/iop/rgblevels.c:127 ../src/iop/sigmoid.c:210 +#: ../src/iop/vignette.c:122 ../src/iop/watermark.c:424 msgid "non-linear, RGB" msgstr "não-linear, RGB" -#: ../src/iop/basecurve.c:355 ../src/iop/dither.c:120 ../src/iop/dither.c:122 +#: ../src/iop/basecurve.c:402 ../src/iop/dither.c:120 ../src/iop/dither.c:122 #: ../src/iop/filmicrgb.c:355 ../src/iop/graduatednd.c:149 #: ../src/iop/negadoctor.c:149 ../src/iop/profile_gamma.c:105 -#: ../src/iop/rgblevels.c:126 ../src/iop/vignette.c:160 -#: ../src/iop/vignette.c:162 ../src/iop/watermark.c:378 -#: ../src/iop/watermark.c:380 +#: ../src/iop/rgblevels.c:128 ../src/iop/vignette.c:121 +#: ../src/iop/vignette.c:123 ../src/iop/watermark.c:423 +#: ../src/iop/watermark.c:425 msgid "non-linear, RGB, display-referred" msgstr "não-linear, RGB, relativo à exibição" -#: ../src/iop/basecurve.c:2184 +#: ../src/iop/basecurve.c:2205 msgid "abscissa: input, ordinate: output. works on RGB channels" msgstr "abscissa: entrada, ordenada: saída. trabalha nos canais RGB" -#: ../src/iop/basecurve.c:2190 ../src/iop/basicadj.c:612 -#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1072 -#: ../src/iop/tonecurve.c:1184 +#: ../src/iop/basecurve.c:2211 ../src/iop/basicadj.c:642 +#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1133 +#: ../src/iop/tonecurve.c:1206 msgid "method to preserve colors when applying contrast" msgstr "método para preservar cores ao aplicar contraste" -#: ../src/iop/basecurve.c:2194 +#: ../src/iop/basecurve.c:2215 msgid "two exposures" msgstr "duas exposições" -#: ../src/iop/basecurve.c:2195 +#: ../src/iop/basecurve.c:2216 msgid "three exposures" msgstr "três exposições" -#: ../src/iop/basecurve.c:2196 +#: ../src/iop/basecurve.c:2217 msgid "" "fuse this image stopped up/down a couple of times with itself, to compress " "high dynamic range. expose for the highlights before use." @@ -12729,11 +13254,11 @@ "exposição para comprimir o alcance dinâmico. expor para realces antes de " "usar." -#: ../src/iop/basecurve.c:2201 +#: ../src/iop/basecurve.c:2222 msgid "how many stops to shift the individual exposures apart" msgstr "quantos stops de separação entre exposições individuais" -#: ../src/iop/basecurve.c:2210 +#: ../src/iop/basecurve.c:2231 msgid "" "whether to shift exposure up or down (-1: reduce highlight, +1: reduce " "shadows)" @@ -12741,40 +13266,39 @@ "se desloca exposição para cima ou para baixo (-1: reduz realces, +1: reduz " "sombras)" -#: ../src/iop/basecurve.c:2215 ../src/iop/tonecurve.c:1187 +#: ../src/iop/basecurve.c:2236 ../src/iop/tonecurve.c:1209 msgid "scale for graph" msgstr "escala para o gráfico" -#: ../src/iop/basicadj.c:136 +#: ../src/iop/basicadj.c:162 msgid "this module is deprecated. please use the quick access panel instead." msgstr "este módulo está obsoleto. use o painel de acesso rápido em seu lugar." -#: ../src/iop/basicadj.c:141 +#: ../src/iop/basicadj.c:167 msgid "basic adjustments" msgstr "ajustes básicos" -#: ../src/iop/basicadj.c:146 +#: ../src/iop/basicadj.c:172 msgid "apply usual image adjustments" msgstr "aplicar ajustes usuais à imagem" -#: ../src/iop/basicadj.c:147 ../src/iop/bilat.c:102 ../src/iop/bloom.c:81 -#: ../src/iop/blurs.c:93 ../src/iop/borders.c:198 ../src/iop/censorize.c:83 -#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:97 -#: ../src/iop/colorize.c:105 ../src/iop/colormapping.c:153 -#: ../src/iop/colorzones.c:145 ../src/iop/grain.c:434 ../src/iop/highpass.c:78 -#: ../src/iop/levels.c:138 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 -#: ../src/iop/lowpass.c:134 ../src/iop/monochrome.c:98 ../src/iop/soften.c:101 -#: ../src/iop/splittoning.c:103 ../src/iop/velvia.c:105 -#: ../src/iop/vibrance.c:95 ../src/iop/vignette.c:159 -#: ../src/iop/watermark.c:377 +#: ../src/iop/basicadj.c:173 ../src/iop/bilat.c:83 ../src/iop/bloom.c:81 +#: ../src/iop/blurs.c:93 ../src/iop/borders.c:323 ../src/iop/censorize.c:83 +#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:89 +#: ../src/iop/colorize.c:98 ../src/iop/colormapping.c:153 +#: ../src/iop/colorzones.c:146 ../src/iop/grain.c:450 ../src/iop/highpass.c:78 +#: ../src/iop/levels.c:140 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 +#: ../src/iop/lowpass.c:106 ../src/iop/monochrome.c:100 ../src/iop/soften.c:103 +#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:98 ../src/iop/vibrance.c:97 +#: ../src/iop/vignette.c:120 ../src/iop/watermark.c:422 msgid "creative" msgstr "criativo" -#: ../src/iop/basicadj.c:150 ../src/iop/colorbalancergb.c:188 +#: ../src/iop/basicadj.c:176 ../src/iop/colorbalancergb.c:188 msgid "non-linear, RGB, scene-referred" msgstr "não-linear, RGB, relativo à cena" -#: ../src/iop/basicadj.c:593 +#: ../src/iop/basicadj.c:623 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -12786,39 +13310,39 @@ "se mal ajustado, forçará os valores das cores que estão próximas\n" "do preto para fora do gama tornando valores RGB negativos" -#: ../src/iop/basicadj.c:601 ../src/iop/exposure.c:1118 +#: ../src/iop/basicadj.c:631 ../src/iop/exposure.c:1136 msgid "adjust the exposure correction" msgstr "ajusta a correção de exposição" -#: ../src/iop/basicadj.c:605 +#: ../src/iop/basicadj.c:635 msgid "highlight compression adjustment" msgstr "ajusta a compressão de realces" -#: ../src/iop/basicadj.c:609 ../src/iop/colisa.c:308 +#: ../src/iop/basicadj.c:639 ../src/iop/colisa.c:302 msgid "contrast adjustment" msgstr "ajusta o contraste" -#: ../src/iop/basicadj.c:617 +#: ../src/iop/basicadj.c:647 msgid "middle gray adjustment" msgstr "ajusta o cinza médio" -#: ../src/iop/basicadj.c:622 ../src/iop/colisa.c:309 +#: ../src/iop/basicadj.c:652 ../src/iop/colisa.c:303 msgid "brightness adjustment" msgstr "ajusta o brilho" -#: ../src/iop/basicadj.c:625 +#: ../src/iop/basicadj.c:655 msgid "saturation adjustment" msgstr "ajusta a saturação" -#: ../src/iop/basicadj.c:628 +#: ../src/iop/basicadj.c:658 msgid "vibrance adjustment" msgstr "ajusta a vivacidade" -#: ../src/iop/basicadj.c:632 +#: ../src/iop/basicadj.c:662 msgid "apply auto exposure based on the entire image" msgstr "aplica exposição automática baseado em toda a imagem" -#: ../src/iop/basicadj.c:639 +#: ../src/iop/basicadj.c:669 msgid "" "apply auto exposure based on a region defined by the user\n" "click and drag to draw the area\n" @@ -12828,51 +13352,51 @@ "clique e arraste para desenhar a área\n" "clique-direito para cancelar" -#: ../src/iop/basicadj.c:647 +#: ../src/iop/basicadj.c:677 msgid "clip" msgstr "recortar" -#: ../src/iop/basicadj.c:649 +#: ../src/iop/basicadj.c:679 msgid "adjusts clipping value for auto exposure calculation" msgstr "ajusta o valor de corte para cálculo da exposição automática" #. local contrast -#: ../src/iop/bilat.c:96 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:551 +#: ../src/iop/bilat.c:77 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:578 msgid "local contrast" msgstr "contraste local" -#: ../src/iop/bilat.c:101 +#: ../src/iop/bilat.c:82 msgid "manipulate local and global contrast separately" msgstr "manipula contrastes local e global separadamente" -#: ../src/iop/bilat.c:103 ../src/iop/bilat.c:105 ../src/iop/bloom.c:82 +#: ../src/iop/bilat.c:84 ../src/iop/bilat.c:86 ../src/iop/bloom.c:82 #: ../src/iop/bloom.c:84 ../src/iop/colisa.c:91 ../src/iop/colisa.c:93 -#: ../src/iop/colorcontrast.c:98 ../src/iop/colorcontrast.c:100 +#: ../src/iop/colorcontrast.c:90 ../src/iop/colorcontrast.c:92 #: ../src/iop/colorcorrection.c:78 ../src/iop/colorcorrection.c:80 -#: ../src/iop/colorize.c:108 ../src/iop/colormapping.c:156 -#: ../src/iop/colorreconstruction.c:138 ../src/iop/colorzones.c:148 -#: ../src/iop/defringe.c:85 ../src/iop/grain.c:435 ../src/iop/grain.c:437 -#: ../src/iop/levels.c:141 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 -#: ../src/iop/monochrome.c:101 ../src/iop/nlmeans.c:96 ../src/iop/nlmeans.c:98 -#: ../src/iop/shadhi.c:200 ../src/iop/tonecurve.c:214 ../src/iop/vibrance.c:98 +#: ../src/iop/colorize.c:101 ../src/iop/colormapping.c:156 +#: ../src/iop/colorreconstruction.c:123 ../src/iop/colorzones.c:149 +#: ../src/iop/defringe.c:85 ../src/iop/grain.c:451 ../src/iop/grain.c:453 +#: ../src/iop/levels.c:143 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 +#: ../src/iop/monochrome.c:103 ../src/iop/nlmeans.c:90 ../src/iop/nlmeans.c:92 +#: ../src/iop/shadhi.c:147 ../src/iop/tonecurve.c:187 ../src/iop/vibrance.c:100 msgid "non-linear, Lab, display-referred" msgstr "não-linear, Lab, relativo à exibição" -#: ../src/iop/bilat.c:104 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 -#: ../src/iop/colorcontrast.c:99 ../src/iop/colorcorrection.c:79 -#: ../src/iop/colorize.c:107 ../src/iop/colormapping.c:155 -#: ../src/iop/colorreconstruction.c:137 ../src/iop/colorzones.c:147 -#: ../src/iop/defringe.c:84 ../src/iop/grain.c:436 ../src/iop/levels.c:140 -#: ../src/iop/monochrome.c:100 ../src/iop/nlmeans.c:97 ../src/iop/shadhi.c:199 -#: ../src/iop/tonecurve.c:213 ../src/iop/vibrance.c:97 +#: ../src/iop/bilat.c:85 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 +#: ../src/iop/colorcontrast.c:91 ../src/iop/colorcorrection.c:79 +#: ../src/iop/colorize.c:100 ../src/iop/colormapping.c:155 +#: ../src/iop/colorreconstruction.c:122 ../src/iop/colorzones.c:148 +#: ../src/iop/defringe.c:84 ../src/iop/grain.c:452 ../src/iop/levels.c:142 +#: ../src/iop/monochrome.c:102 ../src/iop/nlmeans.c:91 ../src/iop/shadhi.c:146 +#: ../src/iop/tonecurve.c:186 ../src/iop/vibrance.c:99 msgid "non-linear, Lab" msgstr "não-linear, Lab" -#: ../src/iop/bilat.c:178 +#: ../src/iop/bilat.c:195 msgid "HDR local tone-mapping" msgstr "mapeamento tonal local HDR" -#: ../src/iop/bilat.c:431 +#: ../src/iop/bilat.c:441 msgid "" "the filter used for local contrast enhancement. bilateral is faster but can " "lead to artifacts around edges for extreme settings." @@ -12880,33 +13404,33 @@ "o filtro usado para melhoria de contraste. o bilateral é mais rápido, mas " "pode gerar artefatos ao redor das bordas em caso de ajustes extremos." -#: ../src/iop/bilat.c:435 ../src/iop/globaltonemap.c:635 +#: ../src/iop/bilat.c:445 ../src/iop/globaltonemap.c:668 msgid "detail" msgstr "detalhe" -#: ../src/iop/bilat.c:438 +#: ../src/iop/bilat.c:448 msgid "changes the local contrast" msgstr "ajusta contraste local" -#: ../src/iop/bilat.c:453 +#: ../src/iop/bilat.c:463 msgid "feature size of local details (spatial sigma of bilateral filter)" msgstr "" "tamanho de característica de detalhes locais (sigma espacial do filtro " "bilateral)" -#: ../src/iop/bilat.c:461 +#: ../src/iop/bilat.c:471 msgid "L difference to detect edges (range sigma of bilateral filter)" msgstr "diferença L para detectar bordas (faixa sigma do filtro bilateral)" -#: ../src/iop/bilat.c:467 +#: ../src/iop/bilat.c:477 msgid "changes the local contrast of highlights" msgstr "ajusta o contraste local dos realces" -#: ../src/iop/bilat.c:473 +#: ../src/iop/bilat.c:483 msgid "changes the local contrast of shadows" msgstr "ajusta o contraste local das sombras" -#: ../src/iop/bilat.c:479 +#: ../src/iop/bilat.c:489 msgid "" "defines what counts as mid-tones. lower for better dynamic range compression " "(reduce shadow and highlight contrast), increase for more powerful local " @@ -12916,7 +13440,7 @@ "alcance dinâmico (reduz sombra e aumenta contraste), mais alto para " "contraste local melhor" -#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:396 +#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:423 msgid "surface blur" msgstr "desfoque de superfície" @@ -12924,22 +13448,22 @@ msgid "denoise (bilateral filter)" msgstr "redução ruído (filtro bilateral)" -#: ../src/iop/bilateral.cc:99 +#: ../src/iop/bilateral.cc:101 msgid "apply edge-aware surface blur to denoise or smoothen textures" msgstr "aplica desfoque de superfície para remover ruído ou suavizar texturas" -#: ../src/iop/bilateral.cc:102 ../src/iop/blurs.c:93 -#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:729 -#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/soften.c:103 -#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:107 +#: ../src/iop/bilateral.cc:104 ../src/iop/blurs.c:93 +#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:781 +#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/primaries.c:82 +#: ../src/iop/soften.c:105 ../src/iop/splittoning.c:107 ../src/iop/velvia.c:100 msgid "linear, RGB" msgstr "linear, RGB" -#: ../src/iop/bilateral.cc:136 +#: ../src/iop/bilateral.cc:138 msgid "image too large" msgstr "imagem grande demais" -#: ../src/iop/bilateral.cc:137 +#: ../src/iop/bilateral.cc:139 msgid "" "this module is unable to process\n" "images with more than 2 gigapixels.\n" @@ -12949,19 +13473,19 @@ "imagens com mais de 2 gigapixels.\n" "o processamento não foi feito." -#: ../src/iop/bilateral.cc:351 +#: ../src/iop/bilateral.cc:353 msgid "spatial extent of the gaussian" msgstr "extensão espacial do gaussiano" -#: ../src/iop/bilateral.cc:355 +#: ../src/iop/bilateral.cc:357 msgid "how much to blur red" msgstr "quanto desfoque vermelho" -#: ../src/iop/bilateral.cc:360 +#: ../src/iop/bilateral.cc:362 msgid "how much to blur green" msgstr "quanto desfoque verde" -#: ../src/iop/bilateral.cc:365 +#: ../src/iop/bilateral.cc:367 msgid "how much to blur blue" msgstr "quanto desfoque azul" @@ -12969,20 +13493,20 @@ msgid "apply Orton effect for a dreamy aetherical look" msgstr "aplica o efeito Orton para um visual etéreo onírico" -#: ../src/iop/bloom.c:368 ../src/iop/soften.c:369 ../src/libs/camera.c:567 -#: ../src/libs/masks.c:105 +#: ../src/iop/bloom.c:364 ../src/iop/soften.c:364 ../src/libs/camera.c:567 +#: ../src/libs/masks.c:106 msgid "size" msgstr "tamanho" -#: ../src/iop/bloom.c:370 +#: ../src/iop/bloom.c:366 msgid "the size of bloom" msgstr "o tamanho da luz suave" -#: ../src/iop/bloom.c:374 +#: ../src/iop/bloom.c:370 msgid "the threshold of light" msgstr "o limiar de luz" -#: ../src/iop/bloom.c:378 +#: ../src/iop/bloom.c:374 msgid "the strength of bloom" msgstr "a força da luz suave" @@ -12998,266 +13522,275 @@ msgid "simulate physically-accurate lens and motion blurs" msgstr "simula fisicamente e com precisão o desfoque de lente e de movimento" -#: ../src/iop/borders.c:187 +#: ../src/iop/borders.c:312 msgid "framing" msgstr "moldura" -#: ../src/iop/borders.c:192 +#: ../src/iop/borders.c:317 msgid "borders|enlarge canvas|expand canvas" msgstr "bordas|aumentar canvas|expandir canvas" -#: ../src/iop/borders.c:197 +#: ../src/iop/borders.c:322 msgid "add solid borders or margins around the picture" msgstr "adiciona bordas sólidas ou margens ao redor da figura" -#: ../src/iop/borders.c:199 ../src/iop/borders.c:201 ../src/iop/lut3d.c:144 +#: ../src/iop/borders.c:324 ../src/iop/borders.c:326 ../src/iop/lut3d.c:145 msgid "linear or non-linear, RGB, display-referred" msgstr "linear ou não-linear, RGB, relativo à exibição" -#: ../src/iop/borders.c:727 +#: ../src/iop/borders.c:737 msgid "15:10 postcard white" msgstr "15:10 cartão-postal branco" -#: ../src/iop/borders.c:732 +#: ../src/iop/borders.c:742 msgid "15:10 postcard black" msgstr "15:10 cartão-postal preto" -#: ../src/iop/borders.c:942 -msgid "size of the border in percent of the full image" -msgstr "tamanho da borda em percentagem da imagem inteira" +#: ../src/iop/borders.c:948 +msgid "which dimension to use for the size calculation" +msgstr "que dimensão usar para o cálculo do tamanho" + +#: ../src/iop/borders.c:954 +msgid "size of the border in percent of the chosen basis" +msgstr "tamanho da borda em percentagem da base escolhida" -#: ../src/iop/borders.c:944 ../src/iop/clipping.c:2218 ../src/iop/crop.c:1224 +#: ../src/iop/borders.c:956 ../src/iop/clipping.c:2271 ../src/iop/crop.c:1208 msgid "aspect" msgstr "proporção" -#: ../src/iop/borders.c:945 +#: ../src/iop/borders.c:957 msgid "" -"select the aspect ratio (right click on slider below to type your own w:h)" +"select the aspect ratio\n" +"(right click on slider below to type your own w:h)" msgstr "" -"selecione a proporção (clique-direito no deslizador abaixo e digite sua " -"própria larg:alt)" +"selecione a proporção\n" +"(clique-direito no deslizador abaixo e digite sua própria larg:alt)" -#: ../src/iop/borders.c:948 +#: ../src/iop/borders.c:961 msgid "3:1" msgstr "3:1" -#: ../src/iop/borders.c:949 +#: ../src/iop/borders.c:962 msgid "95:33" msgstr "95:33" -#: ../src/iop/borders.c:950 +#: ../src/iop/borders.c:963 msgid "CinemaScope 2.39:1" msgstr "CinemaScope 2.39:1" -#: ../src/iop/borders.c:951 +#: ../src/iop/borders.c:964 msgid "2:1" msgstr "2:1" -#: ../src/iop/borders.c:952 +#: ../src/iop/borders.c:965 msgid "16:9" msgstr "16:9" -#: ../src/iop/borders.c:953 +#: ../src/iop/borders.c:966 msgid "5:3" msgstr "5:3" -#: ../src/iop/borders.c:954 +#: ../src/iop/borders.c:967 msgid "US Legal 8.5x14" msgstr "US Legal 8.5x14" -#: ../src/iop/borders.c:955 ../src/iop/clipping.c:2131 ../src/iop/crop.c:1128 +#: ../src/iop/borders.c:968 ../src/iop/clipping.c:2184 ../src/iop/crop.c:1112 msgid "golden cut" msgstr "proporção áurea" -#: ../src/iop/borders.c:956 +#: ../src/iop/borders.c:969 msgid "16:10" msgstr "16:10" -#: ../src/iop/borders.c:957 +#: ../src/iop/borders.c:970 msgid "3:2 (4x6, 10x15cm)" msgstr "3:2 (4x6, 10x15cm)" -#: ../src/iop/borders.c:959 +#: ../src/iop/borders.c:972 msgid "DIN" msgstr "DIN" -#: ../src/iop/borders.c:960 +#: ../src/iop/borders.c:973 msgid "7:5" msgstr "7:5" -#: ../src/iop/borders.c:961 +#: ../src/iop/borders.c:974 msgid "4:3" msgstr "4:3" -#: ../src/iop/borders.c:962 +#: ../src/iop/borders.c:975 msgid "US Letter 8.5x11" msgstr "US Letter 8.5x11" -#: ../src/iop/borders.c:963 +#: ../src/iop/borders.c:976 msgid "14:11" msgstr "14:11" -#: ../src/iop/borders.c:964 +#: ../src/iop/borders.c:977 msgid "5:4 (8x10)" msgstr "5:4 (8x10)" -#: ../src/iop/borders.c:965 ../src/iop/clipping.c:2121 ../src/iop/crop.c:1118 -#: ../src/libs/filtering.c:301 ../src/libs/filters/ratio.c:126 -#: ../src/libs/histogram.c:141 +#: ../src/iop/borders.c:978 ../src/iop/clipping.c:2174 ../src/iop/crop.c:1102 +#: ../src/libs/filtering.c:307 ../src/libs/filters/ratio.c:126 +#: ../src/libs/histogram.c:118 msgid "square" msgstr "quadrado" -#: ../src/iop/borders.c:966 +#: ../src/iop/borders.c:979 msgid "constant border" msgstr "borda constante" -#: ../src/iop/borders.c:967 ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:980 ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "custom..." msgstr "personalizado..." -#: ../src/iop/borders.c:972 -msgid "set the custom aspect ratio (right click to enter number or w:h)" -msgstr "selecione a proporção (clique-direito para entrar número ou larg:alt)" +#: ../src/iop/borders.c:984 +msgid "" +"set the custom aspect ratio\n" +"(right click to enter number or w:h)" +msgstr "" +"selecione a proporção\n" +"(clique-direito para entrar número ou larg:alt)" -#: ../src/iop/borders.c:975 +#: ../src/iop/borders.c:989 msgid "aspect ratio orientation of the image with border" msgstr "orientação da proporção da imagem com borda" -#: ../src/iop/borders.c:977 +#: ../src/iop/borders.c:991 msgid "horizontal position" msgstr "posição horizontal" -#: ../src/iop/borders.c:978 +#: ../src/iop/borders.c:992 msgid "" -"select the horizontal position ratio relative to top or right click and type " -"your own (y:h)" +"select the horizontal position ratio relative to top\n" +"(right click on slider below to type your own x:w)" msgstr "" -"selecione a relação de posição horizontal relativa ao topo ou clique -" -"direito e digite sua própria (y:alt)" +"selecione a relação de posição horizontal relativa ao topo\n" +"(clique-direito no deslizador e digite sua própria x:larg)" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "center" msgstr "centro" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "1/3" msgstr "1/3" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "3/8" msgstr "3/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "5/8" msgstr "5/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "2/3" msgstr "2/3" -#: ../src/iop/borders.c:986 +#: ../src/iop/borders.c:1000 msgid "custom horizontal position" msgstr "posição horizontal personalizada" -#: ../src/iop/borders.c:988 +#: ../src/iop/borders.c:1002 msgid "vertical position" msgstr "posição vertical" -#: ../src/iop/borders.c:989 +#: ../src/iop/borders.c:1003 msgid "" -"select the vertical position ratio relative to left or right click and type " -"your own (x:w)" +"select the vertical position ratio relative to left\n" +"(right click on slider below to type your own y:h)" msgstr "" -"selecione a relação de posição vertical relativa a esquerda ou clique-" -"direito e digite sua própria (x:lar)" +"selecione a relação de posição vertical relativa a esquerda\n" +"(clique-direito no deslizador e digite sua própria x:alt)" -#: ../src/iop/borders.c:997 +#: ../src/iop/borders.c:1011 msgid "custom vertical position" msgstr "posição vertical personalizada" -#: ../src/iop/borders.c:1002 +#: ../src/iop/borders.c:1017 msgid "size of the frame line in percent of min border width" msgstr "tamanho da linha da moldura em percentagem da largura mínima da borda" -#: ../src/iop/borders.c:1007 +#: ../src/iop/borders.c:1023 msgid "offset of the frame line beginning on picture side" msgstr "deslocamento da linha da moldura começando na borda da imagem" -#: ../src/iop/borders.c:1014 ../src/iop/borders.c:1023 +#: ../src/iop/borders.c:1033 ../src/iop/borders.c:1044 msgid "border color" msgstr "cor da borda" -#: ../src/iop/borders.c:1018 +#: ../src/iop/borders.c:1037 msgid "select border color" msgstr "seleciona cor da borda" -#: ../src/iop/borders.c:1022 +#: ../src/iop/borders.c:1043 msgid "pick border color from image" msgstr "seleciona cor da borda a partir da imagem" -#: ../src/iop/borders.c:1023 ../src/iop/borders.c:1036 -#: ../src/iop/colorzones.c:2415 ../src/iop/colorzones.c:2425 -#: ../src/iop/negadoctor.c:848 ../src/iop/negadoctor.c:915 -#: ../src/iop/negadoctor.c:953 ../src/iop/rgbcurve.c:1369 -#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1026 -#: ../src/iop/rgblevels.c:1032 ../src/iop/rgblevels.c:1038 +#: ../src/iop/borders.c:1044 ../src/iop/borders.c:1061 +#: ../src/iop/colorzones.c:2662 ../src/iop/colorzones.c:2677 +#: ../src/iop/negadoctor.c:867 ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:972 ../src/iop/rgbcurve.c:1369 +#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1075 +#: ../src/iop/rgblevels.c:1083 ../src/iop/rgblevels.c:1091 msgid "pickers" msgstr "seletores" -#: ../src/iop/borders.c:1027 ../src/iop/borders.c:1036 +#: ../src/iop/borders.c:1049 ../src/iop/borders.c:1061 msgid "frame line color" msgstr "cor da linha da moldura" -#: ../src/iop/borders.c:1031 +#: ../src/iop/borders.c:1054 msgid "select frame line color" msgstr "seleciona cor da linha da moldura" -#: ../src/iop/borders.c:1035 +#: ../src/iop/borders.c:1060 msgid "pick frame line color from image" msgstr "seleciona cor da linha da moldura a partir da imagem" #. make sure you put all your translatable strings into _() ! -#: ../src/iop/cacorrect.c:72 +#: ../src/iop/cacorrect.c:78 msgid "raw chromatic aberrations" msgstr "aberrações cromáticas em raw" -#: ../src/iop/cacorrect.c:77 +#: ../src/iop/cacorrect.c:83 msgid "correct chromatic aberrations for Bayer sensors" msgstr "corrige aberrações cromáticas para sensores Bayer" -#: ../src/iop/cacorrect.c:79 ../src/iop/cacorrect.c:81 +#: ../src/iop/cacorrect.c:85 ../src/iop/cacorrect.c:87 #: ../src/iop/cacorrectrgb.c:171 ../src/iop/cacorrectrgb.c:173 #: ../src/iop/demosaic.c:294 ../src/iop/highlights.c:180 -#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:74 -#: ../src/iop/hotpixels.c:76 ../src/iop/rawdenoise.c:131 -#: ../src/iop/rawdenoise.c:133 ../src/iop/rawprepare.c:159 -#: ../src/iop/rawprepare.c:161 ../src/iop/temperature.c:213 -#: ../src/iop/temperature.c:215 +#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:76 +#: ../src/iop/hotpixels.c:78 ../src/iop/rawdenoise.c:145 +#: ../src/iop/rawdenoise.c:147 ../src/iop/rawprepare.c:175 +#: ../src/iop/rawprepare.c:177 ../src/iop/temperature.c:221 +#: ../src/iop/temperature.c:223 msgid "linear, raw, scene-referred" msgstr "linear, raw, relativo à cena" -#: ../src/iop/cacorrect.c:80 ../src/iop/cacorrectrgb.c:172 -#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:121 -#: ../src/iop/rawdenoise.c:132 ../src/iop/rawprepare.c:160 -#: ../src/iop/temperature.c:214 +#: ../src/iop/cacorrect.c:86 ../src/iop/cacorrectrgb.c:172 +#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:138 +#: ../src/iop/rawdenoise.c:146 ../src/iop/rawprepare.c:176 +#: ../src/iop/temperature.c:222 msgid "linear, raw" msgstr "linear, raw" -#: ../src/iop/cacorrect.c:1405 +#: ../src/iop/cacorrect.c:1424 msgid "iteration runs, default is twice" msgstr "quantidade de iterações, o padrão são duas" -#: ../src/iop/cacorrect.c:1408 +#: ../src/iop/cacorrect.c:1427 msgid "activate colorshift correction for blue & red channels" msgstr "ativa correção de desvio de cor para canais azul e vermelho" -#: ../src/iop/cacorrect.c:1415 +#: ../src/iop/cacorrect.c:1434 msgid "" "automatic chromatic aberration correction\n" -"only for Bayer raw files" +"only for Bayer raw files with 3 color channels" msgstr "" "correção automática de aberração cromática\n" -"somente para imagens raw Bayer" +"somente para imagens raw Bayer com 3 canais de cor" #: ../src/iop/cacorrectrgb.c:164 ../src/iop/defringe.c:76 msgid "chromatic aberrations" @@ -13267,7 +13800,7 @@ msgid "correct chromatic aberrations" msgstr "corrige aberrações cromáticas" -#: ../src/iop/cacorrectrgb.c:743 +#: ../src/iop/cacorrectrgb.c:745 msgid "" "channel used as a reference to\n" "correct the other channels.\n" @@ -13283,11 +13816,11 @@ "tente mudar o canal guia se houver\n" "artefatos." -#: ../src/iop/cacorrectrgb.c:750 +#: ../src/iop/cacorrectrgb.c:752 msgid "increase for stronger correction" msgstr "aumente para correção mais forte" -#: ../src/iop/cacorrectrgb.c:752 +#: ../src/iop/cacorrectrgb.c:754 msgid "" "balance between smoothing colors\n" "and preserving them.\n" @@ -13299,12 +13832,12 @@ "valores altos podem levar a exageros\n" "e vazamento das bordas." -#: ../src/iop/cacorrectrgb.c:757 +#: ../src/iop/cacorrectrgb.c:759 msgctxt "section" msgid "advanced parameters" msgstr "parâmetros avançados" -#: ../src/iop/cacorrectrgb.c:759 +#: ../src/iop/cacorrectrgb.c:761 msgid "" "correction mode to use.\n" "can help with multiple\n" @@ -13322,7 +13855,7 @@ "eficiente para corrigir aberração\n" "cromática azul." -#: ../src/iop/cacorrectrgb.c:767 +#: ../src/iop/cacorrectrgb.c:769 msgid "" "runs an iterative approach\n" "with several radii.\n" @@ -13356,35 +13889,35 @@ msgid "special, RGB, scene-referred" msgstr "especial, RGB, relativo à cena" -#: ../src/iop/censorize.c:412 +#: ../src/iop/censorize.c:404 msgid "radius_1" msgstr "radius_1" -#: ../src/iop/censorize.c:414 +#: ../src/iop/censorize.c:406 msgid "pixelate" msgstr "pixelar" -#: ../src/iop/censorize.c:416 +#: ../src/iop/censorize.c:408 msgid "radius_2" msgstr "radius_2" -#: ../src/iop/censorize.c:418 +#: ../src/iop/censorize.c:410 msgid "noise" msgstr "ruído" -#: ../src/iop/censorize.c:420 +#: ../src/iop/censorize.c:412 msgid "radius of gaussian blur before pixellation" msgstr "raio para desfoque gaussiano antes do pixelamento" -#: ../src/iop/censorize.c:421 +#: ../src/iop/censorize.c:413 msgid "radius of gaussian blur after pixellation" msgstr "raio do desfoque gaussiano após o pixelamento" -#: ../src/iop/censorize.c:422 +#: ../src/iop/censorize.c:414 msgid "radius of the intermediate pixellation" msgstr "raio do pixelamento intermediário" -#: ../src/iop/censorize.c:423 +#: ../src/iop/censorize.c:415 msgid "amount of noise to add at the end" msgstr "quantidade de ruído a adicionar no final" @@ -13398,7 +13931,7 @@ msgstr "" "este módulo está obsoleto. use o módulo de calibração de cor em seu lugar." -#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:229 +#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:230 msgid "" "perform color space corrections\n" "such as white balance, channels mixing\n" @@ -13408,168 +13941,168 @@ "de branco, mistura de canais e conversões\n" "para monocromático emulando filme" -#: ../src/iop/channelmixer.c:614 +#: ../src/iop/channelmixer.c:633 msgid "destination" msgstr "destino" -#: ../src/iop/channelmixer.c:621 +#: ../src/iop/channelmixer.c:640 msgctxt "channelmixer" msgid "gray" msgstr "cinza" -#: ../src/iop/channelmixer.c:627 +#: ../src/iop/channelmixer.c:646 msgid "amount of red channel in the output channel" msgstr "quantidade do canal vermelho no canal de saída" -#: ../src/iop/channelmixer.c:633 +#: ../src/iop/channelmixer.c:652 msgid "amount of green channel in the output channel" msgstr "quantidade do canal verde no canal de saída" -#: ../src/iop/channelmixer.c:639 +#: ../src/iop/channelmixer.c:658 msgid "amount of blue channel in the output channel" msgstr "quantidade do canal azul no canal de saída" -#: ../src/iop/channelmixer.c:655 ../src/iop/channelmixerrgb.c:524 +#: ../src/iop/channelmixer.c:674 ../src/iop/channelmixerrgb.c:588 msgid "swap R and B" msgstr "trocar R e B" -#: ../src/iop/channelmixer.c:661 ../src/iop/channelmixerrgb.c:498 +#: ../src/iop/channelmixer.c:680 ../src/iop/channelmixerrgb.c:562 msgid "swap G and B" msgstr "trocar G e B" -#: ../src/iop/channelmixer.c:667 +#: ../src/iop/channelmixer.c:686 msgid "color contrast boost" msgstr "ganho contraste de cor" -#: ../src/iop/channelmixer.c:673 +#: ../src/iop/channelmixer.c:692 msgid "color details boost" msgstr "ganho detalhes de cor" -#: ../src/iop/channelmixer.c:679 +#: ../src/iop/channelmixer.c:698 msgid "color artifacts boost" msgstr "ganho artefatos de cor" -#: ../src/iop/channelmixer.c:685 +#: ../src/iop/channelmixer.c:704 msgid "B/W luminance-based" msgstr "baseado em luminância B/P" -#: ../src/iop/channelmixer.c:691 +#: ../src/iop/channelmixer.c:710 msgid "B/W artifacts boost" msgstr "ganho artefatos B/P" -#: ../src/iop/channelmixer.c:697 +#: ../src/iop/channelmixer.c:716 msgid "B/W smooth skin" msgstr "pele suave B/P" -#: ../src/iop/channelmixer.c:703 +#: ../src/iop/channelmixer.c:722 msgid "B/W blue artifacts reduce" msgstr "reduzir artefatos azul B/P" -#: ../src/iop/channelmixer.c:710 +#: ../src/iop/channelmixer.c:729 msgid "B/W Ilford Delta 100-400" msgstr "Ilford Delta 100-400 B/P" -#: ../src/iop/channelmixer.c:717 +#: ../src/iop/channelmixer.c:736 msgid "B/W Ilford Delta 3200" msgstr "Ilford Delta 3200 B/P" -#: ../src/iop/channelmixer.c:724 +#: ../src/iop/channelmixer.c:743 msgid "B/W Ilford FP4" msgstr "Ilford FP4 B/P" -#: ../src/iop/channelmixer.c:731 +#: ../src/iop/channelmixer.c:750 msgid "B/W Ilford HP5" msgstr "Ilford HP5 B/P" -#: ../src/iop/channelmixer.c:738 +#: ../src/iop/channelmixer.c:757 msgid "B/W Ilford SFX" msgstr "Ilford SFX B/P" -#: ../src/iop/channelmixer.c:745 +#: ../src/iop/channelmixer.c:764 msgid "B/W Kodak T-Max 100" msgstr "Kodak T-Max 100 B/P" -#: ../src/iop/channelmixer.c:752 +#: ../src/iop/channelmixer.c:771 msgid "B/W Kodak T-max 400" msgstr "Kodak T-max 400 B/P" -#: ../src/iop/channelmixer.c:759 +#: ../src/iop/channelmixer.c:778 msgid "B/W Kodak Tri-X 400" msgstr "Kodak Tri-X 400 B/P" -#: ../src/iop/channelmixerrgb.c:219 +#: ../src/iop/channelmixerrgb.c:220 msgid "color calibration" msgstr "calibração de cor" -#: ../src/iop/channelmixerrgb.c:224 +#: ../src/iop/channelmixerrgb.c:225 msgid "channel mixer|white balance|monochrome" msgstr "misturador de canais|balanço de branco|monocromático" -#: ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:235 msgid "linear, RGB or XYZ" msgstr "linear, RGB ou XYZ" -#: ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:460 msgid "B&W: luminance-based" msgstr "P&B: baseado em luminância" -#: ../src/iop/channelmixerrgb.c:431 +#: ../src/iop/channelmixerrgb.c:495 msgid "B&W: ILFORD HP5+" msgstr "P&B: ILFORD HP5+" -#: ../src/iop/channelmixerrgb.c:440 +#: ../src/iop/channelmixerrgb.c:504 msgid "B&W: ILFORD DELTA 100" msgstr "P&B: ILFORD DELTA 100" -#: ../src/iop/channelmixerrgb.c:450 +#: ../src/iop/channelmixerrgb.c:514 msgid "B&W: ILFORD DELTA 400 - 3200" msgstr "P&B: ILFORD DELTA 400 - 3200" -#: ../src/iop/channelmixerrgb.c:459 +#: ../src/iop/channelmixerrgb.c:523 msgid "B&W: ILFORD FP4+" msgstr "P&B: ILFORD FP4+" -#: ../src/iop/channelmixerrgb.c:468 +#: ../src/iop/channelmixerrgb.c:532 msgid "B&W: Fuji Acros 100" msgstr "P&B: Fuji Acros 100" -#: ../src/iop/channelmixerrgb.c:485 +#: ../src/iop/channelmixerrgb.c:549 msgid "basic channel mixer" msgstr "misturador de canais básico" -#: ../src/iop/channelmixerrgb.c:511 +#: ../src/iop/channelmixerrgb.c:575 msgid "swap G and R" msgstr "trocar G e R" -#: ../src/iop/channelmixerrgb.c:1869 +#: ../src/iop/channelmixerrgb.c:1926 msgid "(daylight)" msgstr "(luz diurna)" -#: ../src/iop/channelmixerrgb.c:1871 +#: ../src/iop/channelmixerrgb.c:1928 msgid "(black body)" msgstr "(corpo negro)" -#: ../src/iop/channelmixerrgb.c:1873 +#: ../src/iop/channelmixerrgb.c:1930 msgid "(invalid)" msgstr "(inválido)" -#: ../src/iop/channelmixerrgb.c:1877 ../src/iop/channelmixerrgb.c:1935 +#: ../src/iop/channelmixerrgb.c:1934 ../src/iop/channelmixerrgb.c:1992 msgid "very good" msgstr "muito bom" -#: ../src/iop/channelmixerrgb.c:1879 ../src/iop/channelmixerrgb.c:1937 +#: ../src/iop/channelmixerrgb.c:1936 ../src/iop/channelmixerrgb.c:1994 msgid "good" msgstr "bom" -#: ../src/iop/channelmixerrgb.c:1881 ../src/iop/channelmixerrgb.c:1939 +#: ../src/iop/channelmixerrgb.c:1938 ../src/iop/channelmixerrgb.c:1996 msgid "passable" msgstr "passável" -#: ../src/iop/channelmixerrgb.c:1883 ../src/iop/channelmixerrgb.c:1941 +#: ../src/iop/channelmixerrgb.c:1940 ../src/iop/channelmixerrgb.c:1998 msgid "bad" msgstr "ruim" -#: ../src/iop/channelmixerrgb.c:1890 +#: ../src/iop/channelmixerrgb.c:1947 #, c-format msgid "" "\n" @@ -13606,7 +14139,7 @@ "compensação de exposição: \t%+.2f EV\n" "desvio de preto: \t%+.4f" -#: ../src/iop/channelmixerrgb.c:1946 +#: ../src/iop/channelmixerrgb.c:2003 #, c-format msgid "" "\n" @@ -13625,15 +14158,15 @@ "compensação de exposição: \t%+.2f EV\n" "desvio de preto: \t%+.4f" -#: ../src/iop/channelmixerrgb.c:1978 +#: ../src/iop/channelmixerrgb.c:2054 msgid "double CAT applied" msgstr "TAC duplo aplicado" -#: ../src/iop/channelmixerrgb.c:1979 +#: ../src/iop/channelmixerrgb.c:2055 msgid "" "you have 2 instances or more of color calibration,\n" -"all performing chromatic adaptation.\n" -"this can lead to inconsistencies, unless you\n" +"all providing chromatic adaptation.\n" +"this can lead to inconsistencies unless you\n" "use them with masks or know what you are doing." msgstr "" "você tem 2 instâncias ou mais de calibração de cor,\n" @@ -13641,11 +14174,27 @@ "isto pode levar a inconsistências, a não ser que você\n" "as use com máscaras ou saiba o que está fazendo." -#: ../src/iop/channelmixerrgb.c:1991 +#: ../src/iop/channelmixerrgb.c:2071 +msgid "white balance applied twice" +msgstr "balanço de branco aplicado duas vezes" + +#: ../src/iop/channelmixerrgb.c:2072 +msgid "" +"the color calibration module is enabled and already provides\n" +"chromatic adaptation.\n" +"set the white balance here to camera reference (D65)\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"o módulo de calibração de cor está ativado,\n" +"e já está realizando adaptação cromática.\n" +"defina o balanço de branco aqui para a referência da câmera (D65)\n" +"ou desabilite a adaptação cromática na calibração de cor." + +#: ../src/iop/channelmixerrgb.c:2080 msgid "white balance module error" msgstr "erro no módulo balanço de branco" -#: ../src/iop/channelmixerrgb.c:1992 +#: ../src/iop/channelmixerrgb.c:2081 msgid "" "the white balance module is not using the camera\n" "reference illuminant, which will cause issues here\n" @@ -13657,20 +14206,48 @@ "com a adaptação cromática. defina para referência ou\n" "desabilite a adaptação cromática aqui." -#: ../src/iop/channelmixerrgb.c:2083 +#: ../src/iop/channelmixerrgb.c:2095 ../src/iop/channelmixerrgb.c:2104 +msgid "white balance missing" +msgstr "balanço de branco faltando" + +#: ../src/iop/channelmixerrgb.c:2096 +msgid "" +"this module is not providing a valid reference illuminant\n" +"causing chromatic adaptation issues in color calibration.\n" +"enable this module and either set it to reference\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"este módulo não está oferecendo uma referência válida de iluminante,\n" +"causando problemas de adaptação cromática na calibração de cores.\n" +"habilite este módulo e o defina para referência, ou desabilite\n" +"adaptação cromática em calibração de cores." + +#: ../src/iop/channelmixerrgb.c:2105 +msgid "" +"the white balance module is not providing a valid reference\n" +"illuminant causing issues with chromatic adaptation here.\n" +"enable white balance and either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" +"o módulo balanço de branco não está oferecendo um iluminante\n" +"de referência da válido, causando problemas aqui com a adaptação\n" +"cromática. habilite o balanço de branco e o defina para referência\n" +"ou desabilite a adaptação cromática aqui." + +#: ../src/iop/channelmixerrgb.c:2196 msgid "auto-detection of white balance completed" msgstr "auto-detecção de balanço de branco completada" -#: ../src/iop/channelmixerrgb.c:2236 +#: ../src/iop/channelmixerrgb.c:2346 msgid "channelmixerrgb works only on RGB input" msgstr "O misturador de canais RGB funciona somente com entrada RGB" -#: ../src/iop/channelmixerrgb.c:3621 +#: ../src/iop/channelmixerrgb.c:3692 #, c-format msgid "CCT: %.0f K (daylight)" msgstr "TCC: %.0f K (luz do dia)" -#: ../src/iop/channelmixerrgb.c:3624 +#: ../src/iop/channelmixerrgb.c:3695 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a daylight spectrum,\n" @@ -13681,12 +14258,12 @@ "de luz diurna, então sua temperatura é relevante e faz sentido com\n" "um iluminante D." -#: ../src/iop/channelmixerrgb.c:3630 +#: ../src/iop/channelmixerrgb.c:3701 #, c-format msgid "CCT: %.0f K (black body)" msgstr "TCC: %.0f K (corpo negro)" -#: ../src/iop/channelmixerrgb.c:3633 +#: ../src/iop/channelmixerrgb.c:3704 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a black body spectrum,\n" @@ -13697,12 +14274,12 @@ "de corpo negro, então sua temperatura é relevante e faz sentido\n" "com um iluminante Planckiano." -#: ../src/iop/channelmixerrgb.c:3639 +#: ../src/iop/channelmixerrgb.c:3710 #, c-format msgid "CCT: %.0f K (invalid)" msgstr "TCC: %.0f K (inválido)" -#: ../src/iop/channelmixerrgb.c:3642 +#: ../src/iop/channelmixerrgb.c:3713 msgid "" "approximated correlated color temperature.\n" "this illuminant cannot be accurately modeled by a daylight or black body " @@ -13715,12 +14292,12 @@ "espectro de luz diurna ou de corpo negro, então sua temperatura\n" "não é relevante e você precisa usar um iluminante customizado." -#: ../src/iop/channelmixerrgb.c:3651 +#: ../src/iop/channelmixerrgb.c:3722 #, c-format msgid "CCT: undefined" msgstr "TCC: não definido" -#: ../src/iop/channelmixerrgb.c:3654 +#: ../src/iop/channelmixerrgb.c:3725 msgid "" "the approximated correlated color temperature\n" "cannot be computed at all so you need to use a custom illuminant." @@ -13728,16 +14305,16 @@ "a temperatura de cor correlacionada aproximada não pôde\n" "ser calculada então você precisa usar um iluminante customizado." -#: ../src/iop/channelmixerrgb.c:3967 +#: ../src/iop/channelmixerrgb.c:4038 msgid "white balance successfully extracted from raw image" msgstr "balanço de branco extraído com sucesso da imagem RAW" #. We need to recompute only the full preview -#: ../src/iop/channelmixerrgb.c:3973 +#: ../src/iop/channelmixerrgb.c:4044 msgid "auto-detection of white balance started…" msgstr "auto-detecção de balanço de branco iniciada..." -#: ../src/iop/channelmixerrgb.c:4078 +#: ../src/iop/channelmixerrgb.c:4149 msgid "" "color calibration: the sum of the gray channel parameters is zero, " "normalization will be disabled." @@ -13746,7 +14323,7 @@ "normalização será desabilitada." #. Write report in GUI -#: ../src/iop/channelmixerrgb.c:4126 +#: ../src/iop/channelmixerrgb.c:4194 #, c-format msgid "" "L: \t%.1f %%\n" @@ -13757,27 +14334,27 @@ "h: \t%.1f °\n" "c: \t%.1f" -#: ../src/iop/channelmixerrgb.c:4394 ../src/iop/clipping.c:2087 -#: ../src/iop/colorbalancergb.c:1873 ../src/iop/filmicrgb.c:4419 -#: ../src/iop/negadoctor.c:829 ../src/iop/toneequal.c:3319 -#: ../src/libs/image.c:460 ../src/views/lighttable.c:1258 +#: ../src/iop/channelmixerrgb.c:4462 ../src/iop/clipping.c:2140 +#: ../src/iop/colorbalancergb.c:1944 ../src/iop/filmicrgb.c:4483 +#: ../src/iop/negadoctor.c:848 ../src/iop/toneequal.c:3372 +#: ../src/libs/image.c:490 ../src/views/lighttable.c:1258 msgid "page" msgstr "página" #. Page CAT -#: ../src/iop/channelmixerrgb.c:4397 +#: ../src/iop/channelmixerrgb.c:4465 msgid "CAT" msgstr "TAC" -#: ../src/iop/channelmixerrgb.c:4398 +#: ../src/iop/channelmixerrgb.c:4466 msgid "chromatic adaptation transform" msgstr "transformação de adaptação cromática" -#: ../src/iop/channelmixerrgb.c:4400 +#: ../src/iop/channelmixerrgb.c:4468 msgid "adaptation" msgstr "adaptação" -#: ../src/iop/channelmixerrgb.c:4403 +#: ../src/iop/channelmixerrgb.c:4471 msgid "" "choose the method to adapt the illuminant\n" "and the colorspace in which the module works: \n" @@ -13798,7 +14375,7 @@ "De maneira geral, não é recomendado.\n" "• nenhuma desabilita qualquer adaptação e usa o RGB do pipeline." -#: ../src/iop/channelmixerrgb.c:4423 +#: ../src/iop/channelmixerrgb.c:4491 msgid "" "this is the color of the scene illuminant before chromatic adaptation\n" "this color will be turned into pure white by the adaptation." @@ -13806,27 +14383,27 @@ "esta é a cor do iluminante da cena antes da adaptação cromática\n" "esta cor será transformada em branco puro pela adaptação." -#: ../src/iop/channelmixerrgb.c:4431 +#: ../src/iop/channelmixerrgb.c:4499 msgid "picker" msgstr "seletor" -#: ../src/iop/channelmixerrgb.c:4433 ../src/iop/temperature.c:2047 +#: ../src/iop/channelmixerrgb.c:4501 ../src/iop/temperature.c:2015 msgid "set white balance to detected from area" msgstr "define o balanço de branco para o detectado em uma área" -#: ../src/iop/channelmixerrgb.c:4437 ../src/iop/negadoctor.c:953 +#: ../src/iop/channelmixerrgb.c:4505 ../src/iop/negadoctor.c:972 msgid "illuminant" msgstr "iluminante" -#: ../src/iop/channelmixerrgb.c:4443 ../src/iop/temperature.c:2107 +#: ../src/iop/channelmixerrgb.c:4511 ../src/iop/temperature.c:2072 msgid "temperature" msgstr "temperatura" -#: ../src/iop/channelmixerrgb.c:4474 -msgid "spot color mapping" -msgstr "mapeamento de cor pontual" +#: ../src/iop/channelmixerrgb.c:4542 +msgid "area color mapping" +msgstr "mapeamento de cor por área" -#: ../src/iop/channelmixerrgb.c:4480 +#: ../src/iop/channelmixerrgb.c:4548 msgid "" "define a target chromaticity (hue and chroma) for a particular region of the " "image (the control sample), which you then match against the same target " @@ -13840,17 +14417,17 @@ "crítica de seu objeto ou uma superfície que permameça estática (nos mesmos " "locais) e consistentemente iluminada em sua série de imagens" -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/channelmixerrgb.c:4502 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/channelmixerrgb.c:4573 +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/channelmixerrgb.c:4570 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/channelmixerrgb.c:4641 msgid "mapping" msgstr "mapeamento" -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/exposure.c:1188 -msgid "spot mode" -msgstr "modo pontual" +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/exposure.c:1206 +msgid "area mode" +msgstr "mode de área" -#: ../src/iop/channelmixerrgb.c:4488 +#: ../src/iop/channelmixerrgb.c:4556 msgid "" "\"correction\" automatically adjust the illuminant\n" "such that the input color is mapped to the target.\n" @@ -13862,19 +14439,19 @@ "\"medida\" simplesmente mostra como uma cor de entrada é mapeada pelo CAT\n" "e pode ser usada para amostrar um alvo." -#: ../src/iop/channelmixerrgb.c:4493 ../src/iop/exposure.c:1194 +#: ../src/iop/channelmixerrgb.c:4561 ../src/iop/exposure.c:1212 msgid "correction" msgstr "correção" -#: ../src/iop/channelmixerrgb.c:4494 ../src/iop/exposure.c:1195 +#: ../src/iop/channelmixerrgb.c:4562 ../src/iop/exposure.c:1213 msgid "measure" msgstr "medição" -#: ../src/iop/channelmixerrgb.c:4500 +#: ../src/iop/channelmixerrgb.c:4568 msgid "take channel mixing into account" msgstr "levar mistura de canais em consideração" -#: ../src/iop/channelmixerrgb.c:4507 +#: ../src/iop/channelmixerrgb.c:4575 msgid "" "compute the target by taking the channel mixing into account.\n" "if disabled, only the CAT is considered." @@ -13882,16 +14459,16 @@ "calcular o alvo levando em conta a mistura de canais.\n" "se desabilitado, somente o CAT é considerado." -#: ../src/iop/channelmixerrgb.c:4519 ../src/iop/exposure.c:1202 +#: ../src/iop/channelmixerrgb.c:4587 ../src/iop/exposure.c:1220 msgctxt "section" msgid "input" msgstr "entrada" -#: ../src/iop/channelmixerrgb.c:4526 ../src/iop/exposure.c:1210 +#: ../src/iop/channelmixerrgb.c:4594 ../src/iop/exposure.c:1228 msgid "the input color that should be mapped to the target" msgstr "a cor de entrada que deveria ser mapeada no alvo" -#: ../src/iop/channelmixerrgb.c:4532 +#: ../src/iop/channelmixerrgb.c:4600 msgid "" "L: \tN/A\n" "h: \tN/A\n" @@ -13901,115 +14478,115 @@ "h: \tN/A\n" "c: \tN/A" -#: ../src/iop/channelmixerrgb.c:4535 ../src/iop/exposure.c:1218 +#: ../src/iop/channelmixerrgb.c:4603 ../src/iop/exposure.c:1236 msgid "these LCh coordinates are computed from CIE Lab 1976 coordinates" msgstr "" "estas coordeanaas LCh são computadas a partir de coordenadas CIE Lab 1976" -#: ../src/iop/channelmixerrgb.c:4543 ../src/iop/exposure.c:1225 +#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/exposure.c:1243 msgctxt "section" msgid "target" msgstr "alvo" -#: ../src/iop/channelmixerrgb.c:4550 +#: ../src/iop/channelmixerrgb.c:4618 msgid "the desired target color after mapping" msgstr "a cor alvo desejada após o mapeamento" -#: ../src/iop/channelmixerrgb.c:4589 +#: ../src/iop/channelmixerrgb.c:4657 msgid "input R" msgstr "entrada R" -#: ../src/iop/channelmixerrgb.c:4594 +#: ../src/iop/channelmixerrgb.c:4662 msgid "input G" msgstr "entrada G" -#: ../src/iop/channelmixerrgb.c:4599 +#: ../src/iop/channelmixerrgb.c:4667 msgid "input B" msgstr "entrada B" -#: ../src/iop/channelmixerrgb.c:4609 +#: ../src/iop/channelmixerrgb.c:4677 msgid "output R" msgstr "saída R" -#: ../src/iop/channelmixerrgb.c:4610 +#: ../src/iop/channelmixerrgb.c:4678 msgid "output G" msgstr "saída G" -#: ../src/iop/channelmixerrgb.c:4611 +#: ../src/iop/channelmixerrgb.c:4679 msgid "output B" msgstr "saída B" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "colorfulness" msgstr "saturação" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "output colorfulness" msgstr "saturação de saída" -#: ../src/iop/channelmixerrgb.c:4617 +#: ../src/iop/channelmixerrgb.c:4685 msgid "output brightness" msgstr "brilho de saída" -#: ../src/iop/channelmixerrgb.c:4620 +#: ../src/iop/channelmixerrgb.c:4688 msgid "output gray" msgstr "cinza de saída" -#: ../src/iop/channelmixerrgb.c:4635 +#: ../src/iop/channelmixerrgb.c:4703 msgid "calibrate with a color checker" msgstr "calibrar com um cartão de cores" -#: ../src/iop/channelmixerrgb.c:4640 +#: ../src/iop/channelmixerrgb.c:4708 msgid "use a color checker target to autoset CAT and channels" msgstr "usa uma tabela de cores para autodefinir TAC e canais" -#: ../src/iop/channelmixerrgb.c:4647 ../src/iop/channelmixerrgb.c:4660 -#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/channelmixerrgb.c:4696 -#: ../src/iop/channelmixerrgb.c:4705 ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4715 ../src/iop/channelmixerrgb.c:4728 +#: ../src/iop/channelmixerrgb.c:4746 ../src/iop/channelmixerrgb.c:4764 +#: ../src/iop/channelmixerrgb.c:4773 ../src/iop/channelmixerrgb.c:4781 msgid "calibrate" msgstr "calibrar" -#: ../src/iop/channelmixerrgb.c:4647 +#: ../src/iop/channelmixerrgb.c:4715 msgid "chart" msgstr "cartão (tabela)" -#: ../src/iop/channelmixerrgb.c:4648 +#: ../src/iop/channelmixerrgb.c:4716 msgid "choose the vendor and the type of your chart" msgstr "seleciona a marca e o tipo da sua tabela" -#: ../src/iop/channelmixerrgb.c:4650 +#: ../src/iop/channelmixerrgb.c:4718 msgid "Xrite ColorChecker 24 pre-2014" msgstr "Xrite ColorChecker 24 pre-2014" -#: ../src/iop/channelmixerrgb.c:4651 +#: ../src/iop/channelmixerrgb.c:4719 msgid "Xrite ColorChecker 24 post-2014" msgstr "Xrite ColorChecker 24 post-2014" -#: ../src/iop/channelmixerrgb.c:4652 +#: ../src/iop/channelmixerrgb.c:4720 msgid "Datacolor SpyderCheckr 24 pre-2018" msgstr "Datacolor SpyderCheckr 24 pre-2018" -#: ../src/iop/channelmixerrgb.c:4653 +#: ../src/iop/channelmixerrgb.c:4721 msgid "Datacolor SpyderCheckr 24 post-2018" msgstr "Datacolor SpyderCheckr 24 pós-2018" -#: ../src/iop/channelmixerrgb.c:4654 +#: ../src/iop/channelmixerrgb.c:4722 msgid "Datacolor SpyderCheckr 48 pre-2018" msgstr "Datacolor SpyderCheckr 48 pre-2018" -#: ../src/iop/channelmixerrgb.c:4655 +#: ../src/iop/channelmixerrgb.c:4723 msgid "Datacolor SpyderCheckr 48 post-2018" msgstr "Datacolor SpyderCheckr 48 pós-2018" -#: ../src/iop/channelmixerrgb.c:4656 +#: ../src/iop/channelmixerrgb.c:4724 msgid "Datacolor SpyderCheckr Photo" msgstr "Datacolor SpyderCheckr Photo" -#: ../src/iop/channelmixerrgb.c:4660 +#: ../src/iop/channelmixerrgb.c:4728 msgid "optimize for" msgstr "otimizar para" -#: ../src/iop/channelmixerrgb.c:4661 +#: ../src/iop/channelmixerrgb.c:4729 msgid "" "choose the colors that will be optimized with higher priority.\n" "neutral colors gives the lowest average delta E but a high maximum delta E\n" @@ -14026,35 +14603,35 @@ "nenhum é um meio-termo entre os dois\n" "os outros são comportamentos especiais para proteger algumas matizes" -#: ../src/iop/channelmixerrgb.c:4668 +#: ../src/iop/channelmixerrgb.c:4736 msgid "neutral colors" msgstr "cores neutras" -#: ../src/iop/channelmixerrgb.c:4670 +#: ../src/iop/channelmixerrgb.c:4738 msgid "skin and soil colors" msgstr "cores de pele e solo" -#: ../src/iop/channelmixerrgb.c:4671 +#: ../src/iop/channelmixerrgb.c:4739 msgid "foliage colors" msgstr "cores de folhagem" -#: ../src/iop/channelmixerrgb.c:4672 +#: ../src/iop/channelmixerrgb.c:4740 msgid "sky and water colors" msgstr "cores de céu e água" -#: ../src/iop/channelmixerrgb.c:4673 +#: ../src/iop/channelmixerrgb.c:4741 msgid "average delta E" msgstr "delta E médio" -#: ../src/iop/channelmixerrgb.c:4674 +#: ../src/iop/channelmixerrgb.c:4742 msgid "maximum delta E" msgstr "delta E máximo" -#: ../src/iop/channelmixerrgb.c:4678 +#: ../src/iop/channelmixerrgb.c:4746 msgid "patch scale" msgstr "escala do patch" -#: ../src/iop/channelmixerrgb.c:4681 +#: ../src/iop/channelmixerrgb.c:4749 msgid "" "reduce the radius of the patches to select the more or less central part.\n" "useful when the perspective correction is sloppy or\n" @@ -14064,31 +14641,31 @@ "útil quando a correção de perspectiva não é boa ou\n" "a moldura fazem sombra sobre as bordas do patch." -#: ../src/iop/channelmixerrgb.c:4691 +#: ../src/iop/channelmixerrgb.c:4759 msgid "the delta E is using the CIE 2000 formula" msgstr "o delta E está usando a fórmula CIE 2000" -#: ../src/iop/channelmixerrgb.c:4696 +#: ../src/iop/channelmixerrgb.c:4764 msgid "accept" msgstr "aceitar" -#: ../src/iop/channelmixerrgb.c:4702 +#: ../src/iop/channelmixerrgb.c:4770 msgid "accept the computed profile and set it in the module" msgstr "aceitar o perfil calculado e defini-lo no módulo" -#: ../src/iop/channelmixerrgb.c:4705 +#: ../src/iop/channelmixerrgb.c:4773 msgid "recompute" msgstr "recalcular" -#: ../src/iop/channelmixerrgb.c:4709 +#: ../src/iop/channelmixerrgb.c:4777 msgid "recompute the profile" msgstr "recalcular o perfil" -#: ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4781 msgid "validate" msgstr "validar" -#: ../src/iop/channelmixerrgb.c:4717 +#: ../src/iop/channelmixerrgb.c:4785 msgid "check the output delta E" msgstr "verificar a saída delta E" @@ -14105,19 +14682,19 @@ msgstr "" "este módulo está obsoleto. use o módulo de contraste local em seu lugar." -#: ../src/iop/clahe.c:337 ../src/iop/sharpen.c:445 +#: ../src/iop/clahe.c:339 ../src/iop/sharpen.c:440 msgid "amount" msgstr "quantidade" -#: ../src/iop/clahe.c:346 +#: ../src/iop/clahe.c:348 msgid "size of features to preserve" msgstr "tamanho da característica a preservar" -#: ../src/iop/clahe.c:347 ../src/iop/nlmeans.c:464 +#: ../src/iop/clahe.c:349 ../src/iop/nlmeans.c:467 msgid "strength of the effect" msgstr "força do efeito" -#: ../src/iop/clipping.c:304 +#: ../src/iop/clipping.c:347 msgid "" "this module is deprecated. please use the crop, orientation and/or rotate " "and perspective modules instead." @@ -14125,143 +14702,143 @@ "este módulo está obsoleto. use o módulo cortar, orientação e/ou rotação e " "perspectiva em seu lugar." -#: ../src/iop/clipping.c:309 +#: ../src/iop/clipping.c:352 msgid "crop and rotate" msgstr "cortar e girar" -#: ../src/iop/clipping.c:314 +#: ../src/iop/clipping.c:357 msgid "reframe|perspective|keystone|distortion" msgstr "reenquadrar|perspectiva|distorção de perspectiva|distorção" -#: ../src/iop/clipping.c:319 +#: ../src/iop/clipping.c:362 msgid "change the framing and correct the perspective" msgstr "muda o enquadramento e corrige a perspectiva" -#: ../src/iop/clipping.c:1394 ../src/iop/clipping.c:2120 ../src/iop/crop.c:517 -#: ../src/iop/crop.c:1117 +#: ../src/iop/clipping.c:1447 ../src/iop/clipping.c:2173 ../src/iop/crop.c:501 +#: ../src/iop/crop.c:1101 msgid "original image" msgstr "imagem original" -#: ../src/iop/clipping.c:1698 ../src/iop/crop.c:824 +#: ../src/iop/clipping.c:1751 ../src/iop/crop.c:808 msgid "invalid ratio format. it should be \"number:number\"" msgstr "formato da proporção inválido. deveria ser \"número:número\"" -#: ../src/iop/clipping.c:1714 ../src/iop/crop.c:840 +#: ../src/iop/clipping.c:1767 ../src/iop/crop.c:824 msgid "invalid ratio format. it should be a positive number" msgstr "formato da proporção inválido. deveria ser um número positivo" -#: ../src/iop/clipping.c:1903 ../src/iop/clipping.c:2111 +#: ../src/iop/clipping.c:1956 ../src/iop/clipping.c:2164 msgid "full" msgstr "completo" -#: ../src/iop/clipping.c:1904 +#: ../src/iop/clipping.c:1957 msgid "old system" msgstr "sistema antigo" -#: ../src/iop/clipping.c:1905 +#: ../src/iop/clipping.c:1958 msgid "correction applied" msgstr "correção aplicada" -#: ../src/iop/clipping.c:2089 +#: ../src/iop/clipping.c:2142 msgid "main" msgstr "principal" -#: ../src/iop/clipping.c:2098 +#: ../src/iop/clipping.c:2151 msgid "mirror image horizontally and/or vertically" msgstr "espelha a imagem horizontalmente e/ou verticalmente" -#: ../src/iop/clipping.c:2101 +#: ../src/iop/clipping.c:2154 msgid "angle" msgstr "ângulo" -#: ../src/iop/clipping.c:2104 +#: ../src/iop/clipping.c:2157 msgid "right-click and drag a line on the image to drag a straight line" msgstr "" "clique-direito e arraste uma linha na imagem para arrastar uma linha reta" -#: ../src/iop/clipping.c:2107 +#: ../src/iop/clipping.c:2160 msgid "keystone" msgstr "distorção de perspectiva" -#: ../src/iop/clipping.c:2112 +#: ../src/iop/clipping.c:2165 msgid "set perspective correction for your image" msgstr "define a correção de perspectiva para sua imagem" -#: ../src/iop/clipping.c:2119 ../src/iop/crop.c:1116 +#: ../src/iop/clipping.c:2172 ../src/iop/crop.c:1100 msgid "freehand" msgstr "mão livre" -#: ../src/iop/clipping.c:2122 ../src/iop/crop.c:1119 +#: ../src/iop/clipping.c:2175 ../src/iop/crop.c:1103 msgid "10:8 in print" msgstr "10:8 em impressão" -#: ../src/iop/clipping.c:2123 ../src/iop/crop.c:1120 +#: ../src/iop/clipping.c:2176 ../src/iop/crop.c:1104 msgid "5:4, 4x5, 8x10" msgstr "5:4, 4x5, 8x10" -#: ../src/iop/clipping.c:2124 ../src/iop/crop.c:1121 +#: ../src/iop/clipping.c:2177 ../src/iop/crop.c:1105 msgid "11x14" msgstr "11x14" -#: ../src/iop/clipping.c:2125 ../src/iop/crop.c:1122 +#: ../src/iop/clipping.c:2178 ../src/iop/crop.c:1106 msgid "8.5x11, letter" msgstr "8.5x11, carta" -#: ../src/iop/clipping.c:2126 ../src/iop/crop.c:1123 +#: ../src/iop/clipping.c:2179 ../src/iop/crop.c:1107 msgid "4:3, VGA, TV" msgstr "4:3, VGA, TV" -#: ../src/iop/clipping.c:2127 ../src/iop/crop.c:1124 +#: ../src/iop/clipping.c:2180 ../src/iop/crop.c:1108 msgid "5x7" msgstr "5x7" -#: ../src/iop/clipping.c:2128 ../src/iop/crop.c:1125 +#: ../src/iop/clipping.c:2181 ../src/iop/crop.c:1109 msgid "ISO 216, DIN 476, A4" msgstr "ISO 216, DIN 476, A4" -#: ../src/iop/clipping.c:2129 ../src/iop/crop.c:1126 +#: ../src/iop/clipping.c:2182 ../src/iop/crop.c:1110 msgid "3:2, 4x6, 35mm" msgstr "3:2, 4x6, 35mm" -#: ../src/iop/clipping.c:2130 ../src/iop/crop.c:1127 +#: ../src/iop/clipping.c:2183 ../src/iop/crop.c:1111 msgid "16:10, 8x5" msgstr "16:10, 8x5" -#: ../src/iop/clipping.c:2132 ../src/iop/crop.c:1129 +#: ../src/iop/clipping.c:2185 ../src/iop/crop.c:1113 msgid "16:9, HDTV" msgstr "16:9, HDTV" -#: ../src/iop/clipping.c:2133 ../src/iop/crop.c:1130 +#: ../src/iop/clipping.c:2186 ../src/iop/crop.c:1114 msgid "widescreen" msgstr "widescreen" -#: ../src/iop/clipping.c:2134 ../src/iop/crop.c:1131 +#: ../src/iop/clipping.c:2187 ../src/iop/crop.c:1115 msgid "2:1, univisium" msgstr "2:1, univisium" -#: ../src/iop/clipping.c:2135 ../src/iop/crop.c:1132 +#: ../src/iop/clipping.c:2188 ../src/iop/crop.c:1116 msgid "cinemascope" msgstr "cinemascópio" -#: ../src/iop/clipping.c:2136 ../src/iop/crop.c:1133 +#: ../src/iop/clipping.c:2189 ../src/iop/crop.c:1117 msgid "21:9" msgstr "21:9" -#: ../src/iop/clipping.c:2137 ../src/iop/crop.c:1134 +#: ../src/iop/clipping.c:2190 ../src/iop/crop.c:1118 msgid "anamorphic" msgstr "anamórfico" -#: ../src/iop/clipping.c:2138 ../src/iop/crop.c:1135 +#: ../src/iop/clipping.c:2191 ../src/iop/crop.c:1119 msgid "3:1, panorama" msgstr "3:1, panorâmica" -#: ../src/iop/clipping.c:2170 ../src/iop/clipping.c:2182 ../src/iop/crop.c:1171 -#: ../src/iop/crop.c:1187 +#: ../src/iop/clipping.c:2223 ../src/iop/clipping.c:2235 ../src/iop/crop.c:1155 +#: ../src/iop/crop.c:1171 #, c-format msgid "invalid ratio format for `%s'. it should be \"number:number\"" msgstr "formato da proporção inválido para `%s'. deveria ser \"número:número\"" -#: ../src/iop/clipping.c:2229 ../src/iop/crop.c:1238 +#: ../src/iop/clipping.c:2282 ../src/iop/crop.c:1222 msgid "" "set the aspect ratio\n" "the list is sorted: from most square to least square\n" @@ -14273,32 +14850,32 @@ "para entrar uma proporção personalizada, abra o o menu\n" "suspenso e digite a proporção como x:y ou em formato decimal" -#: ../src/iop/clipping.c:2236 ../src/iop/crop.c:1252 +#: ../src/iop/clipping.c:2289 ../src/iop/crop.c:1236 msgid "margins" msgstr "margens" -#: ../src/iop/clipping.c:2241 ../src/iop/crop.c:1262 +#: ../src/iop/clipping.c:2294 ../src/iop/crop.c:1246 msgid "the left margin cannot overlap with the right margin" msgstr "a margem esquerda não pode sobrepor a margem direita" -#: ../src/iop/clipping.c:2248 ../src/iop/crop.c:1270 +#: ../src/iop/clipping.c:2301 ../src/iop/crop.c:1254 msgid "the right margin cannot overlap with the left margin" msgstr "a margem direita não pode sobrepor a margem esquerda" -#: ../src/iop/clipping.c:2253 ../src/iop/crop.c:1276 +#: ../src/iop/clipping.c:2306 ../src/iop/crop.c:1260 msgid "the top margin cannot overlap with the bottom margin" msgstr "a margem superior não pode sobrepor a margem inferior" -#: ../src/iop/clipping.c:2260 ../src/iop/crop.c:1284 +#: ../src/iop/clipping.c:2313 ../src/iop/crop.c:1268 msgid "the bottom margin cannot overlap with the top margin" msgstr "a margem inferior não pode sobrepor a margem superior" -#: ../src/iop/clipping.c:3019 +#: ../src/iop/clipping.c:3059 msgid "<b>commit</b>: double-click, <b>straighten</b>: right-drag" msgstr "" "<b>finalizar</b>: clique-duplo, <b>endireitar</b>: arrastar com botão direito" -#: ../src/iop/clipping.c:3023 +#: ../src/iop/clipping.c:3063 msgid "" "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag\n" "<b>straighten</b>: right-drag" @@ -14306,15 +14883,15 @@ "<b>mudar tamanho</b>: arrastar, <b>manter proporção</b>: shift+arrastar\n" "<b>endireitar</b>: arrastar com botão direito" -#: ../src/iop/clipping.c:3066 +#: ../src/iop/clipping.c:3104 msgid "<b>move control point</b>: drag" msgstr "<b>mover ponto de controle<b>: arrastar" -#: ../src/iop/clipping.c:3071 +#: ../src/iop/clipping.c:3109 msgid "<b>move line</b>: drag, <b>toggle symmetry</b>: click ꝏ" msgstr "<b>mover linha</b>: arrastar, <b>alternar simetria</b>: clique ꝏ" -#: ../src/iop/clipping.c:3076 +#: ../src/iop/clipping.c:3114 msgid "" "<b>apply</b>: click <tt>ok</tt>, <b>toggle symmetry</b>: click ꝏ\n" "<b>move line/control point</b>: drag" @@ -14322,7 +14899,7 @@ "<b>aplicar</b>: clique <tt>ok</tt>, <b>alternar simetria</b>: clique ꝏ\n" "<b>mover linha/ponto de controle</b>: arrastar" -#: ../src/iop/clipping.c:3083 +#: ../src/iop/clipping.c:3121 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag\n" @@ -14332,12 +14909,12 @@ "horizontalmente</b>: ctrl+arrastar\n" "<b>endireitar</b>: arrastar com botão direito, <b>finalizar</b>: clique-duplo" -#: ../src/iop/clipping.c:3340 ../src/iop/crop.c:1796 +#: ../src/iop/clipping.c:3380 ../src/iop/crop.c:1770 #, c-format msgid "[%s on borders] crop" msgstr "[%s em bordas] cortar" -#: ../src/iop/clipping.c:3342 ../src/iop/crop.c:1798 +#: ../src/iop/clipping.c:3382 ../src/iop/crop.c:1772 #, c-format msgid "[%s on borders] crop keeping ratio" msgstr "[%s em bordas] cortar mantendo aspecto" @@ -14355,225 +14932,225 @@ msgid "adjust the look of the image" msgstr "ajusta a aparência da imagem" -#: ../src/iop/colisa.c:310 +#: ../src/iop/colisa.c:304 msgid "color saturation adjustment" msgstr "ajusta a saturação de cor" -#: ../src/iop/colorbalance.c:150 +#: ../src/iop/colorbalance.c:152 msgid "color balance" msgstr "balanço de cor" -#: ../src/iop/colorbalance.c:155 +#: ../src/iop/colorbalance.c:157 msgid "lift gamma gain|cdl|color grading|contrast|saturation|hue" msgstr "" "elevação de ganho de gama|cdl|gradação de cores|contraste|saturação|matiz" -#: ../src/iop/colorbalance.c:160 +#: ../src/iop/colorbalance.c:162 msgid "shift colors selectively by luminance range" msgstr "deslocar cores seletivamente por faixa de luminância" -#: ../src/iop/colorbalance.c:164 +#: ../src/iop/colorbalance.c:166 msgid "non-linear, Lab, scene-referred" msgstr "não-linear, Lab, relativo à cena" #. these blobs were exported as dtstyle and copied from there: -#: ../src/iop/colorbalance.c:275 +#: ../src/iop/colorbalance.c:304 msgid "split-toning teal-orange (2nd instance)" msgstr "gradação de cor azul-petróleo/laranja (2ª instância)" -#: ../src/iop/colorbalance.c:278 +#: ../src/iop/colorbalance.c:307 msgid "split-toning teal-orange (1st instance)" msgstr "gradação de cor azul-petróleo/laranja (1ª instância)" -#: ../src/iop/colorbalance.c:282 +#: ../src/iop/colorbalance.c:311 msgid "generic film" msgstr "filme genérico" -#: ../src/iop/colorbalance.c:286 +#: ../src/iop/colorbalance.c:315 msgid "similar to Kodak Portra" msgstr "similar à Kodak Portra" -#: ../src/iop/colorbalance.c:290 +#: ../src/iop/colorbalance.c:319 msgid "similar to Kodak Ektar" msgstr "similar à Kodak Ektar" -#: ../src/iop/colorbalance.c:294 +#: ../src/iop/colorbalance.c:323 msgid "similar to Kodachrome" msgstr "similar à Kodachrome" -#: ../src/iop/colorbalance.c:990 +#: ../src/iop/colorbalance.c:964 msgid "optimize luma from patches" msgstr "otimizar luma dos patches" -#: ../src/iop/colorbalance.c:992 ../src/iop/colorbalance.c:2110 +#: ../src/iop/colorbalance.c:966 ../src/iop/colorbalance.c:2085 msgid "optimize luma" msgstr "otimizar luma" -#: ../src/iop/colorbalance.c:996 +#: ../src/iop/colorbalance.c:970 msgid "neutralize colors from patches" msgstr "neutralizar cores dos patches" -#: ../src/iop/colorbalance.c:998 ../src/iop/colorbalance.c:2116 +#: ../src/iop/colorbalance.c:972 ../src/iop/colorbalance.c:2091 msgid "neutralize colors" msgstr "neutralizar cores" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "offset" msgstr "deslocamento" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "power" msgstr "potência" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "slope" msgstr "inclinação" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "lift" msgstr "levantar" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gamma" msgstr "gama" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gain" msgstr "ganho" -#: ../src/iop/colorbalance.c:1787 +#: ../src/iop/colorbalance.c:1762 msgctxt "section" msgid "shadows: lift / offset" msgstr "sombras: elevação / deslocamento" -#: ../src/iop/colorbalance.c:1788 +#: ../src/iop/colorbalance.c:1763 msgctxt "section" msgid "mid-tones: gamma / power" msgstr "meios-tons: gama / potência" -#: ../src/iop/colorbalance.c:1789 +#: ../src/iop/colorbalance.c:1764 msgctxt "section" msgid "highlights: gain / slope" msgstr "realces: ganho / inclinação" -#: ../src/iop/colorbalance.c:1813 +#: ../src/iop/colorbalance.c:1788 msgid "shadows / mid-tones / highlights" msgstr "sombras / meios-tons / realces" -#: ../src/iop/colorbalance.c:1910 ../src/iop/colorbalance.c:1919 +#: ../src/iop/colorbalance.c:1885 ../src/iop/colorbalance.c:1894 msgid "color-grading mapping method" msgstr "método de gradação para mapeamento de cor" -#: ../src/iop/colorbalance.c:1914 +#: ../src/iop/colorbalance.c:1889 msgid "color control sliders" msgstr "controles de cor" -#: ../src/iop/colorbalance.c:1915 ../src/libs/colorpicker.c:51 +#: ../src/iop/colorbalance.c:1890 ../src/libs/colorpicker.c:51 msgid "HSL" msgstr "HSL" -#: ../src/iop/colorbalance.c:1916 +#: ../src/iop/colorbalance.c:1891 msgid "RGBL" msgstr "RGBL" -#: ../src/iop/colorbalance.c:1928 +#: ../src/iop/colorbalance.c:1903 msgctxt "section" msgid "master" msgstr "mestre" -#: ../src/iop/colorbalance.c:1934 +#: ../src/iop/colorbalance.c:1909 msgid "saturation correction before the color balance" msgstr "correção de saturação antes do balanço de cor" -#: ../src/iop/colorbalance.c:1940 +#: ../src/iop/colorbalance.c:1915 msgid "saturation correction after the color balance" msgstr "correção de saturação depois do balanço de cor" -#: ../src/iop/colorbalance.c:1945 +#: ../src/iop/colorbalance.c:1920 msgid "adjust to match a neutral tone" msgstr "ajustar para casar com tom neutro" #. is set in _configure_slider_blocks -#: ../src/iop/colorbalance.c:2003 +#: ../src/iop/colorbalance.c:1978 msgid "click to cycle layout" msgstr "clique para alternar pelas disposições" -#: ../src/iop/colorbalance.c:2037 +#: ../src/iop/colorbalance.c:2012 msgid "factor" msgstr "fator" -#: ../src/iop/colorbalance.c:2051 +#: ../src/iop/colorbalance.c:2026 msgid "select the hue" msgstr "seleciona a matiz" -#: ../src/iop/colorbalance.c:2063 +#: ../src/iop/colorbalance.c:2038 msgid "select the saturation" msgstr "seleciona a saturação" -#: ../src/iop/colorbalance.c:2082 +#: ../src/iop/colorbalance.c:2057 msgid "factor of lift/offset" msgstr "fator de elevação/deslocamento" -#: ../src/iop/colorbalance.c:2083 +#: ../src/iop/colorbalance.c:2058 msgid "factor of red for lift/offset" msgstr "fator de vermelho para levante/deslocamento" -#: ../src/iop/colorbalance.c:2084 +#: ../src/iop/colorbalance.c:2059 msgid "factor of green for lift/offset" msgstr "fator de verde para levante/deslocamento" -#: ../src/iop/colorbalance.c:2085 +#: ../src/iop/colorbalance.c:2060 msgid "factor of blue for lift/offset" msgstr "fator de azul para levante/deslocamento" -#: ../src/iop/colorbalance.c:2088 +#: ../src/iop/colorbalance.c:2063 msgid "factor of gamma/power" msgstr "fator de gama/potência" -#: ../src/iop/colorbalance.c:2089 +#: ../src/iop/colorbalance.c:2064 msgid "factor of red for gamma/power" msgstr "fator de vermelho para gama/potência" -#: ../src/iop/colorbalance.c:2090 +#: ../src/iop/colorbalance.c:2065 msgid "factor of green for gamma/power" msgstr "fator de verde para gama/potência" -#: ../src/iop/colorbalance.c:2091 +#: ../src/iop/colorbalance.c:2066 msgid "factor of blue for gamma/power" msgstr "fator de azul para gama/potência" -#: ../src/iop/colorbalance.c:2094 +#: ../src/iop/colorbalance.c:2069 msgid "factor of gain/slope" msgstr "fator de ganho/inclinação" -#: ../src/iop/colorbalance.c:2095 +#: ../src/iop/colorbalance.c:2070 msgid "factor of red for gain/slope" msgstr "fator de vermelho para ganho/inclinação" -#: ../src/iop/colorbalance.c:2096 +#: ../src/iop/colorbalance.c:2071 msgid "factor of green for gain/slope" msgstr "fator de verde para ganho/inclinação" -#: ../src/iop/colorbalance.c:2097 +#: ../src/iop/colorbalance.c:2072 msgid "factor of blue for gain/slope" msgstr "fator de azul para ganho/inclinação" -#: ../src/iop/colorbalance.c:2106 +#: ../src/iop/colorbalance.c:2081 msgctxt "section" msgid "auto optimizers" msgstr "otimizadores automáticos" -#: ../src/iop/colorbalance.c:2111 +#: ../src/iop/colorbalance.c:2086 msgid "fit the whole histogram and center the average luma" msgstr "ajusta todo o histograma e centraliza o luma médio" -#: ../src/iop/colorbalance.c:2117 +#: ../src/iop/colorbalance.c:2092 msgid "optimize the RGB curves to remove color casts" msgstr "otimiza curvas RGB para remover desvios de cor" @@ -14597,88 +15174,88 @@ "ferramentas de gradação de cor usando máscaras alfa para separar sombras, " "meios-tins e realces" -#: ../src/iop/colorbalancergb.c:443 +#: ../src/iop/colorbalancergb.c:536 msgid "add basic colorfulness (legacy)" msgstr "adicionar colorido básico (legado)" -#: ../src/iop/colorbalancergb.c:452 +#: ../src/iop/colorbalancergb.c:545 msgid "basic colorfulness: natural skin" msgstr "colorido básico: pele natural" -#: ../src/iop/colorbalancergb.c:458 +#: ../src/iop/colorbalancergb.c:551 msgid "basic colorfulness: vibrant colors" msgstr "colorido básico: cores vibrantes" -#: ../src/iop/colorbalancergb.c:464 +#: ../src/iop/colorbalancergb.c:557 msgid "basic colorfulness: standard" msgstr "colorido básico: padrão" -#: ../src/iop/colorbalancergb.c:937 +#: ../src/iop/colorbalancergb.c:1022 msgid "colorbalance works only on RGB input" msgstr "balanço de cor somente funciona com entrada RGB" -#: ../src/iop/colorbalancergb.c:1506 ../src/iop/colorzones.c:2164 -#: ../src/iop/retouch.c:1884 ../src/iop/toneequal.c:1966 +#: ../src/iop/colorbalancergb.c:1577 ../src/iop/colorzones.c:2394 +#: ../src/iop/retouch.c:2069 ../src/iop/toneequal.c:1996 msgid "cannot display masks when the blending mask is displayed" msgstr "" "não é possível mostrar máscaras quando a máscara de mesclagem é mostrada" #. Page master -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "master" msgstr "mestre" -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "global grading" msgstr "gradação global" -#: ../src/iop/colorbalancergb.c:1880 +#: ../src/iop/colorbalancergb.c:1951 msgid "rotate all hues by an angle, at the same luminance" msgstr "rotaciona todas as matizes por um ângulo, na mesma luminância" -#: ../src/iop/colorbalancergb.c:1886 +#: ../src/iop/colorbalancergb.c:1957 msgid "increase colorfulness mostly on low-chroma colors" msgstr "aumenta a riqueza de cores principalmente em cores com croma baixo" -#: ../src/iop/colorbalancergb.c:1892 +#: ../src/iop/colorbalancergb.c:1963 msgid "increase the contrast at constant chromaticity" msgstr "aumenta o contraste com cromaticidade constante" -#: ../src/iop/colorbalancergb.c:1894 +#: ../src/iop/colorbalancergb.c:1965 msgctxt "section" msgid "linear chroma grading" msgstr "gradação linear de croma" -#: ../src/iop/colorbalancergb.c:1901 +#: ../src/iop/colorbalancergb.c:1972 msgid "increase colorfulness at same luminance globally" msgstr "aumenta a riqueza de cores na mesma luminância globalmente" -#: ../src/iop/colorbalancergb.c:1906 +#: ../src/iop/colorbalancergb.c:1977 msgid "increase colorfulness at same luminance mostly in shadows" msgstr "" "aumenta a riqueza de cores na mesma luminância principalmente nas sombras" -#: ../src/iop/colorbalancergb.c:1911 +#: ../src/iop/colorbalancergb.c:1982 msgid "increase colorfulness at same luminance mostly in mid-tones" msgstr "" "aumenta a riqueza de cores na mesma luminância principalmente nos meios-tons" -#: ../src/iop/colorbalancergb.c:1916 +#: ../src/iop/colorbalancergb.c:1987 msgid "increase colorfulness at same luminance mostly in highlights" msgstr "" "aumenta a riqueza de cores na mesma luminância principalmente nos realces" -#: ../src/iop/colorbalancergb.c:1918 +#: ../src/iop/colorbalancergb.c:1989 msgctxt "section" msgid "perceptual saturation grading" msgstr "gradação de saturação perceptual" -#: ../src/iop/colorbalancergb.c:1924 +#: ../src/iop/colorbalancergb.c:1995 msgid "add or remove saturation by an absolute amount" msgstr "adiciona ou remove saturação em quantidade absoluta" -#: ../src/iop/colorbalancergb.c:1929 ../src/iop/colorbalancergb.c:1934 -#: ../src/iop/colorbalancergb.c:1939 +#: ../src/iop/colorbalancergb.c:2000 ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2010 msgid "" "increase or decrease saturation proportionally to the original pixel " "saturation" @@ -14686,21 +15263,21 @@ "aumenta ou diminui a saturação proporcionalmente à saturação original do " "pixel" -#: ../src/iop/colorbalancergb.c:1941 +#: ../src/iop/colorbalancergb.c:2012 msgctxt "section" msgid "perceptual brilliance grading" msgstr "gradação de brilhância perceptual" -#: ../src/iop/colorbalancergb.c:1942 +#: ../src/iop/colorbalancergb.c:2013 msgid "brilliance" msgstr "brilhância" -#: ../src/iop/colorbalancergb.c:1947 +#: ../src/iop/colorbalancergb.c:2018 msgid "add or remove brilliance by an absolute amount" msgstr "adiciona ou remove brilhância em quantidade absoluta" -#: ../src/iop/colorbalancergb.c:1952 ../src/iop/colorbalancergb.c:1957 -#: ../src/iop/colorbalancergb.c:1962 +#: ../src/iop/colorbalancergb.c:2023 ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2033 msgid "" "increase or decrease brilliance proportionally to the original pixel " "brilliance" @@ -14709,159 +15286,159 @@ "pixel" #. Page 4-ways -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "4 ways" msgstr "4 vias" -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "selective color grading" msgstr "gradação de cores seletiva" -#: ../src/iop/colorbalancergb.c:1967 +#: ../src/iop/colorbalancergb.c:2038 msgctxt "section" msgid "global offset" msgstr "deslocamento global" -#: ../src/iop/colorbalancergb.c:1974 +#: ../src/iop/colorbalancergb.c:2045 msgid "global luminance offset" msgstr "deslocamento global de luminância" -#: ../src/iop/colorbalancergb.c:1979 +#: ../src/iop/colorbalancergb.c:2050 msgid "hue of the global color offset" msgstr "matiz do deslocamento global de cor" -#: ../src/iop/colorbalancergb.c:1985 +#: ../src/iop/colorbalancergb.c:2056 msgid "chroma of the global color offset" msgstr "croma do deslocamento global de cor" -#: ../src/iop/colorbalancergb.c:1987 +#: ../src/iop/colorbalancergb.c:2058 msgctxt "section" msgid "shadows lift" msgstr "elevação nas sombras" -#: ../src/iop/colorbalancergb.c:1988 +#: ../src/iop/colorbalancergb.c:2059 msgid "lift" msgstr "elevação" -#: ../src/iop/colorbalancergb.c:1994 +#: ../src/iop/colorbalancergb.c:2065 msgid "luminance gain in shadows" msgstr "ganho de luminância nas sombras" -#: ../src/iop/colorbalancergb.c:1999 +#: ../src/iop/colorbalancergb.c:2070 msgid "hue of the color gain in shadows" msgstr "ganho de matiz de cor nas sombras" -#: ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2076 msgid "chroma of the color gain in shadows" msgstr "ganho de croma de cor nas sombras" -#: ../src/iop/colorbalancergb.c:2007 +#: ../src/iop/colorbalancergb.c:2078 msgctxt "section" msgid "highlights gain" msgstr "ganho nos realces" -#: ../src/iop/colorbalancergb.c:2008 +#: ../src/iop/colorbalancergb.c:2079 msgid "gain" msgstr "ganho" -#: ../src/iop/colorbalancergb.c:2014 +#: ../src/iop/colorbalancergb.c:2085 msgid "luminance gain in highlights" msgstr "ganho de luminância nos realces" -#: ../src/iop/colorbalancergb.c:2019 +#: ../src/iop/colorbalancergb.c:2090 msgid "hue of the color gain in highlights" msgstr "ganho de matiz de cor nos realces" -#: ../src/iop/colorbalancergb.c:2025 +#: ../src/iop/colorbalancergb.c:2096 msgid "chroma of the color gain in highlights" msgstr "ganho de croma de cor nos realces" -#: ../src/iop/colorbalancergb.c:2027 +#: ../src/iop/colorbalancergb.c:2098 msgctxt "section" msgid "power" msgstr "potência" -#: ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2099 msgid "power" msgstr "potência" -#: ../src/iop/colorbalancergb.c:2034 +#: ../src/iop/colorbalancergb.c:2105 msgid "luminance exponent in mid-tones" msgstr "expoente de luminância nos meios-tons" -#: ../src/iop/colorbalancergb.c:2039 +#: ../src/iop/colorbalancergb.c:2110 msgid "hue of the color exponent in mid-tones" msgstr "expoente de matiz de cor nos meios-tons" -#: ../src/iop/colorbalancergb.c:2045 +#: ../src/iop/colorbalancergb.c:2116 msgid "chroma of the color exponent in mid-tones" msgstr "expoente de croma de cor nos meios-tons" #. Page masks -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "masks" msgstr "máscaras" -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "isolate luminances" msgstr "isolar luminâncias" -#: ../src/iop/colorbalancergb.c:2052 +#: ../src/iop/colorbalancergb.c:2123 msgid "choose in which uniform color space the saturation is computed" msgstr "escolher em que espaço uniforme de cores a saturação é calculada." -#: ../src/iop/colorbalancergb.c:2054 +#: ../src/iop/colorbalancergb.c:2125 msgctxt "section" msgid "luminance ranges" msgstr "faixas de luminância" -#: ../src/iop/colorbalancergb.c:2065 +#: ../src/iop/colorbalancergb.c:2136 msgid "weight of the shadows over the whole tonal range" msgstr "peso das sombras sobre a faixa tonal total" -#: ../src/iop/colorbalancergb.c:2073 +#: ../src/iop/colorbalancergb.c:2144 msgid "position of the middle-gray reference for masking" msgstr "posição da referência de cinza médio para mascaramento" -#: ../src/iop/colorbalancergb.c:2081 +#: ../src/iop/colorbalancergb.c:2152 msgid "weights of highlights over the whole tonal range" msgstr "peso dos realces sobre a faixa tonal total" -#: ../src/iop/colorbalancergb.c:2086 +#: ../src/iop/colorbalancergb.c:2157 msgctxt "section" msgid "threshold" msgstr "limite" -#: ../src/iop/colorbalancergb.c:2091 +#: ../src/iop/colorbalancergb.c:2162 msgid "peak white luminance value used to normalize the power function" msgstr "" "valor de pico de luminância de branco usado para normalizar a função de " "potência" -#: ../src/iop/colorbalancergb.c:2097 +#: ../src/iop/colorbalancergb.c:2168 msgid "peak gray luminance value used to normalize the power function" msgstr "" "valor de pico de luminância de cinza usado para normalizar a função de " "potência" -#: ../src/iop/colorbalancergb.c:2099 +#: ../src/iop/colorbalancergb.c:2170 msgctxt "section" msgid "mask preview settings" msgstr "configurações de pré-visualização de máscara" -#: ../src/iop/colorbalancergb.c:2102 +#: ../src/iop/colorbalancergb.c:2173 msgid "checkerboard color 1" msgstr "cor 1 do tabuleiro" -#: ../src/iop/colorbalancergb.c:2105 ../src/iop/colorbalancergb.c:2114 +#: ../src/iop/colorbalancergb.c:2176 ../src/iop/colorbalancergb.c:2185 msgid "select color of the checkerboard from a swatch" msgstr "seleciona a cor do tabuleiro em uma amostra" -#: ../src/iop/colorbalancergb.c:2111 +#: ../src/iop/colorbalancergb.c:2182 msgid "checkerboard color 2" msgstr "cor 2 do tabuleiro" -#: ../src/iop/colorbalancergb.c:2121 +#: ../src/iop/colorbalancergb.c:2192 msgid "checkerboard size" msgstr "tamanho do tabuleiro" @@ -14878,11 +15455,11 @@ msgstr "faz correções de espaço de cor e aplica aparências" #: ../src/iop/colorchecker.c:131 ../src/iop/colorchecker.c:133 -#: ../src/iop/colorize.c:106 ../src/iop/colormapping.c:154 -#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:136 -#: ../src/iop/colorzones.c:146 ../src/iop/defringe.c:83 ../src/iop/levels.c:139 -#: ../src/iop/monochrome.c:99 ../src/iop/shadhi.c:198 -#: ../src/iop/tonecurve.c:212 ../src/iop/vibrance.c:96 +#: ../src/iop/colorize.c:99 ../src/iop/colormapping.c:154 +#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:121 +#: ../src/iop/colorzones.c:147 ../src/iop/defringe.c:83 ../src/iop/levels.c:141 +#: ../src/iop/monochrome.c:101 ../src/iop/shadhi.c:145 +#: ../src/iop/tonecurve.c:185 ../src/iop/vibrance.c:98 msgid "linear or non-linear, Lab, display-referred" msgstr "linear ou não-linear, Lab, relativo à exibição" @@ -14890,40 +15467,40 @@ msgid "defined by profile, Lab" msgstr "definido pelo perfil, Lab" -#: ../src/iop/colorchecker.c:294 +#: ../src/iop/colorchecker.c:308 msgid "it8 skin tones" msgstr "tons de pele it8" -#: ../src/iop/colorchecker.c:310 +#: ../src/iop/colorchecker.c:324 msgid "Helmholtz/Kohlrausch monochrome" msgstr "monocromático Helmholtz/Kohlrausch" -#: ../src/iop/colorchecker.c:327 +#: ../src/iop/colorchecker.c:341 msgid "Fuji Astia emulation" msgstr "emulação de Fuji Astia" -#: ../src/iop/colorchecker.c:341 +#: ../src/iop/colorchecker.c:355 msgid "Fuji Classic Chrome emulation" msgstr "emulação de Fuji Classic Chrome" -#: ../src/iop/colorchecker.c:355 +#: ../src/iop/colorchecker.c:369 msgid "Fuji Monochrome emulation" msgstr "emulação de Fuji Monochrome" -#: ../src/iop/colorchecker.c:369 +#: ../src/iop/colorchecker.c:383 msgid "Fuji Provia emulation" msgstr "emulação de Fuji Provia" -#: ../src/iop/colorchecker.c:383 +#: ../src/iop/colorchecker.c:397 msgid "Fuji Velvia emulation" msgstr "emulação de Fuji Velvia" -#: ../src/iop/colorchecker.c:841 ../src/iop/colorchecker.c:1436 +#: ../src/iop/colorchecker.c:846 ../src/iop/colorchecker.c:1441 #, c-format msgid "patch #%d" msgstr "patch #%d" -#: ../src/iop/colorchecker.c:1283 +#: ../src/iop/colorchecker.c:1288 #, c-format msgid "" "(%2.2f %2.2f %2.2f)\n" @@ -14940,15 +15517,15 @@ "clique-direito para remover patch\n" "shift-clique enquanto escolhe cor para substituir patch" -#: ../src/iop/colorchecker.c:1431 +#: ../src/iop/colorchecker.c:1436 msgid "patch" msgstr "patch" -#: ../src/iop/colorchecker.c:1432 +#: ../src/iop/colorchecker.c:1437 msgid "color checker patch" msgstr "patch da tabela de cores" -#: ../src/iop/colorchecker.c:1446 +#: ../src/iop/colorchecker.c:1451 msgid "" "adjust target color Lab 'L' channel\n" "lower values darken target color while higher brighten it" @@ -14957,7 +15534,7 @@ "valores mais baixos escurecem a cor enquanto valores mais autos a tornam " "mais brilhante" -#: ../src/iop/colorchecker.c:1454 +#: ../src/iop/colorchecker.c:1459 msgid "" "adjust target color Lab 'a' channel\n" "lower values shift target color towards greens while higher shift towards " @@ -14967,11 +15544,11 @@ "valores mais baixos deslocam a cor alvo para os verdes enquanto valores mais " "altos deslocam para magentas." -#: ../src/iop/colorchecker.c:1457 +#: ../src/iop/colorchecker.c:1462 msgid "green-magenta offset" msgstr "contraste verde-magenta" -#: ../src/iop/colorchecker.c:1466 +#: ../src/iop/colorchecker.c:1471 msgid "" "adjust target color Lab 'b' channel\n" "lower values shift target color towards blues while higher shift towards " @@ -14981,11 +15558,11 @@ "valores menores deslocam a cor alvo para azuis enquanto valores mais altos " "deslocam para amarelos" -#: ../src/iop/colorchecker.c:1469 +#: ../src/iop/colorchecker.c:1474 msgid "blue-yellow offset" msgstr "contraste azul-amarelo" -#: ../src/iop/colorchecker.c:1478 +#: ../src/iop/colorchecker.c:1483 msgid "" "adjust target color saturation\n" "adjusts 'a' and 'b' channels of target color in Lab space simultaneously\n" @@ -14996,11 +15573,11 @@ "valores mais baixos levam à saturação mais baixa enquanto valores mais altos " "levam à saturação mais alta" -#: ../src/iop/colorchecker.c:1487 +#: ../src/iop/colorchecker.c:1492 msgid "target color" msgstr "cor alvo" -#: ../src/iop/colorchecker.c:1490 +#: ../src/iop/colorchecker.c:1495 msgid "" "control target color of the patches\n" "relative - target color is relative from the patch original color\n" @@ -15010,21 +15587,21 @@ "relativo - a cor alvo é relativa à cor original do patch\n" "absoluto - a cor alvo é um valor Lab absoluto" -#: ../src/iop/colorchecker.c:1494 +#: ../src/iop/colorchecker.c:1499 msgid "absolute" msgstr "absoluto" -#: ../src/iop/colorcontrast.c:85 +#: ../src/iop/colorcontrast.c:77 msgid "color contrast" msgstr "contraste de cor" -#: ../src/iop/colorcontrast.c:95 +#: ../src/iop/colorcontrast.c:87 msgid "" "increase saturation and separation between\n" "opposite colors" msgstr "aumenta a saturação e a separação entre cores opostas" -#: ../src/iop/colorcontrast.c:324 +#: ../src/iop/colorcontrast.c:330 msgid "" "steepness of the a* curve in Lab\n" "lower values desaturate greens and magenta while higher saturate them" @@ -15033,7 +15610,7 @@ "valores mais baixos dessaturam verdes e magentas enquanto valores mais altos " "os saturam" -#: ../src/iop/colorcontrast.c:331 +#: ../src/iop/colorcontrast.c:337 msgid "" "steepness of the b* curve in Lab\n" "lower values desaturate blues and yellows while higher saturate them" @@ -15050,19 +15627,19 @@ msgid "correct white balance selectively for blacks and whites" msgstr "corrige balanço de branco seletivamente para pretos e brancos" -#: ../src/iop/colorcorrection.c:107 +#: ../src/iop/colorcorrection.c:109 msgid "warm tone" msgstr "tom quente" -#: ../src/iop/colorcorrection.c:115 +#: ../src/iop/colorcorrection.c:117 msgid "warming filter" msgstr "filtro de aquecimento" -#: ../src/iop/colorcorrection.c:123 +#: ../src/iop/colorcorrection.c:125 msgid "cooling filter" msgstr "filtro de resfriamento" -#: ../src/iop/colorcorrection.c:257 +#: ../src/iop/colorcorrection.c:250 msgid "" "drag the line for split-toning. bright means highlights, dark means shadows. " "use mouse wheel to change saturation." @@ -15070,7 +15647,7 @@ "arraste a linha para divisão de tons. claro significa realces, escuro " "significa sombras. role com o mouse para mudar a saturação." -#: ../src/iop/colorcorrection.c:276 +#: ../src/iop/colorcorrection.c:269 msgid "set the global saturation" msgstr "seleciona a saturação global" @@ -15087,7 +15664,7 @@ "pipeline usando perfis de cor para remapear valores RGB" #: ../src/iop/colorin.c:133 ../src/iop/colorout.c:89 ../src/iop/demosaic.c:293 -#: ../src/iop/rawprepare.c:158 +#: ../src/iop/rawprepare.c:174 msgid "mandatory" msgstr "obrigatório" @@ -15095,7 +15672,7 @@ msgid "defined by profile" msgstr "definido pelo perfil" -#: ../src/iop/colorin.c:542 +#: ../src/iop/colorin.c:582 #, c-format msgid "" "can't extract matrix from colorspace `%s', it will be replaced by Rec2020 " @@ -15104,24 +15681,24 @@ "não consegui extrair matriz do espaço de cores `%s', será substituída pelo " "RGB Rec2020!" -#: ../src/iop/colorin.c:1424 +#: ../src/iop/colorin.c:1362 #, c-format msgid "`%s' color matrix not found!" msgstr "`%s' matriz de cor não encontrada!" -#: ../src/iop/colorin.c:1463 +#: ../src/iop/colorin.c:1401 msgid "input profile could not be generated!" msgstr "perfil de entrada não pode ser gerado!" -#: ../src/iop/colorin.c:1560 +#: ../src/iop/colorin.c:1498 msgid "unsupported input profile has been replaced by linear Rec709 RGB!" msgstr "perfil de entrada não suportado foi substituído por RGB Rec709 linear!" -#: ../src/iop/colorin.c:1844 +#: ../src/iop/colorin.c:1782 msgid "external ICC profiles" msgstr "perfis ICC externos" -#: ../src/iop/colorin.c:1889 +#: ../src/iop/colorin.c:1827 #, c-format msgid "" "embedded ICC profile properties:\n" @@ -15143,43 +15720,43 @@ "modelo: <b>%s</b>\n" "copyright: <b>%s</b>\n" -#: ../src/iop/colorin.c:2084 +#: ../src/iop/colorin.c:2022 msgid "input profile" msgstr "perfil de entrada" -#: ../src/iop/colorin.c:2088 +#: ../src/iop/colorin.c:2026 msgid "working profile" msgstr "perfil de trabalho" -#: ../src/iop/colorin.c:2097 +#: ../src/iop/colorin.c:2035 msgid "working ICC profiles" msgstr "perfil de trabalho ICC" -#: ../src/iop/colorin.c:2109 +#: ../src/iop/colorin.c:2047 msgid "confine Lab values to gamut of RGB color space" msgstr "delimita valores Lab para tonalidades do espaço de cores RGB" -#: ../src/iop/colorize.c:84 +#: ../src/iop/colorize.c:75 msgid "colorize" msgstr "colorir" -#: ../src/iop/colorize.c:104 +#: ../src/iop/colorize.c:97 msgid "overlay a solid color on the image" msgstr "sobrepõe a imagem com uma cor sólida" -#: ../src/iop/colorize.c:341 ../src/iop/splittoning.c:485 +#: ../src/iop/colorize.c:354 ../src/iop/splittoning.c:481 msgid "select the hue tone" msgstr "seleciona o tom de matiz" -#: ../src/iop/colorize.c:347 +#: ../src/iop/colorize.c:360 msgid "select the saturation shadow tone" msgstr "seleciona o tom de saturação de sombra" -#: ../src/iop/colorize.c:351 +#: ../src/iop/colorize.c:364 msgid "lightness of color" msgstr "luminosidade da cor" -#: ../src/iop/colorize.c:355 +#: ../src/iop/colorize.c:368 msgid "mix value of source lightness" msgstr "valor da mistura da fonte de luminosidade" @@ -15192,37 +15769,37 @@ "transfer a color palette and tonal repartition from one image to another" msgstr "transfere a paleta de cores e divisão tonal de uma imagem para outra" -#: ../src/iop/colormapping.c:1030 +#: ../src/iop/colormapping.c:1019 msgid "source clusters:" msgstr "clusters fonte:" -#: ../src/iop/colormapping.c:1036 +#: ../src/iop/colormapping.c:1025 msgid "target clusters:" msgstr "clusters alvo:" -#: ../src/iop/colormapping.c:1045 +#: ../src/iop/colormapping.c:1034 msgid "acquire as source" msgstr "adquirir como fonte" -#: ../src/iop/colormapping.c:1049 +#: ../src/iop/colormapping.c:1038 msgid "analyze this image as a source image" msgstr "analisa esta imagem como imagem fonte" -#: ../src/iop/colormapping.c:1051 +#: ../src/iop/colormapping.c:1040 msgid "acquire as target" msgstr "adquirir como alvo" -#: ../src/iop/colormapping.c:1055 +#: ../src/iop/colormapping.c:1044 msgid "analyze this image as a target image" msgstr "analisa esta imagem como imagem alvo" -#: ../src/iop/colormapping.c:1058 +#: ../src/iop/colormapping.c:1047 msgid "number of clusters to find in image. value change resets all clusters" msgstr "" "número de clusters a procurar na imagem. alteração de valor redefine todos " "os clusters" -#: ../src/iop/colormapping.c:1061 +#: ../src/iop/colormapping.c:1050 msgid "" "how clusters are mapped. low values: based on color proximity, high values: " "based on color dominance" @@ -15230,7 +15807,7 @@ "como clusters são mapeados. valores baixos: baseado em proximidade de cores, " "valores altos: baseados em domínio de cores" -#: ../src/iop/colormapping.c:1066 +#: ../src/iop/colormapping.c:1055 msgid "level of histogram equalization" msgstr "nível de equalização do histograma" @@ -15250,113 +15827,113 @@ msgid "non-linear, RGB or Lab, display-referred" msgstr "não-linear, RGB ou Lab, relativo à exibição" -#: ../src/iop/colorout.c:679 +#: ../src/iop/colorout.c:695 msgid "missing output profile has been replaced by sRGB!" msgstr "perfil de saída não encontrado foi substituído por linear sRGB!" -#: ../src/iop/colorout.c:701 +#: ../src/iop/colorout.c:717 msgid "missing softproof profile has been replaced by sRGB!" msgstr "o perfil de prova digital não encontrado foi substituído pelo sRGB!" -#: ../src/iop/colorout.c:744 +#: ../src/iop/colorout.c:760 msgid "unsupported output profile has been replaced by sRGB!" msgstr "perfil de saída não suportado foi substituído por linear sRGB!" -#: ../src/iop/colorout.c:869 +#: ../src/iop/colorout.c:885 msgid "output intent" msgstr "intenção de saída" -#: ../src/iop/colorout.c:870 +#: ../src/iop/colorout.c:886 msgid "rendering intent" msgstr "intenção de renderização" -#: ../src/iop/colorout.c:872 ../src/libs/export.c:1246 +#: ../src/iop/colorout.c:888 ../src/libs/export.c:1358 #: ../src/libs/print_settings.c:2475 ../src/libs/print_settings.c:2824 -#: ../src/views/darkroom.c:2518 ../src/views/lighttable.c:1176 +#: ../src/views/darkroom.c:2359 ../src/views/lighttable.c:1176 msgid "perceptual" msgstr "perceptual" -#: ../src/iop/colorout.c:873 ../src/libs/export.c:1247 +#: ../src/iop/colorout.c:889 ../src/libs/export.c:1359 #: ../src/libs/print_settings.c:2476 ../src/libs/print_settings.c:2825 -#: ../src/views/darkroom.c:2519 ../src/views/lighttable.c:1177 +#: ../src/views/darkroom.c:2360 ../src/views/lighttable.c:1177 msgid "relative colorimetric" msgstr "colorimétrico relativo" -#: ../src/iop/colorout.c:874 ../src/libs/export.c:1248 +#: ../src/iop/colorout.c:890 ../src/libs/export.c:1360 #: ../src/libs/print_settings.c:2477 ../src/libs/print_settings.c:2826 -#: ../src/views/darkroom.c:2520 ../src/views/lighttable.c:1178 +#: ../src/views/darkroom.c:2361 ../src/views/lighttable.c:1178 msgctxt "rendering intent" msgid "saturation" msgstr "saturação" -#: ../src/iop/colorout.c:875 ../src/libs/export.c:1249 +#: ../src/iop/colorout.c:891 ../src/libs/export.c:1361 #: ../src/libs/print_settings.c:2478 ../src/libs/print_settings.c:2827 -#: ../src/views/darkroom.c:2521 ../src/views/lighttable.c:1179 +#: ../src/views/darkroom.c:2362 ../src/views/lighttable.c:1179 msgid "absolute colorimetric" msgstr "colorimétrico absoluto" -#: ../src/iop/colorout.c:893 +#: ../src/iop/colorout.c:909 msgid "export ICC profiles" msgstr "perfil ICC de exportação" -#: ../src/iop/colorreconstruction.c:129 +#: ../src/iop/colorreconstruction.c:114 msgid "color reconstruction" msgstr "reconstrução de cor" -#: ../src/iop/colorreconstruction.c:134 +#: ../src/iop/colorreconstruction.c:119 msgid "recover clipped highlights by propagating surrounding colors" msgstr "recupera realces recortados propagando cores vizinhas" -#: ../src/iop/colorreconstruction.c:628 ../src/iop/colorreconstruction.c:1040 -#: ../src/iop/globaltonemap.c:193 ../src/iop/globaltonemap.c:362 -#: ../src/iop/hazeremoval.c:553 ../src/iop/hazeremoval.c:788 -#: ../src/iop/levels.c:336 +#: ../src/iop/colorreconstruction.c:647 ../src/iop/colorreconstruction.c:1053 +#: ../src/iop/globaltonemap.c:227 ../src/iop/globaltonemap.c:396 +#: ../src/iop/hazeremoval.c:541 ../src/iop/hazeremoval.c:776 +#: ../src/iop/levels.c:358 msgid "inconsistent output" msgstr "saída inconsistente" -#: ../src/iop/colorreconstruction.c:666 +#: ../src/iop/colorreconstruction.c:685 msgid "module `color reconstruction' failed" msgstr "módulo `reconstrução de cor' falhou" -#: ../src/iop/colorreconstruction.c:1237 +#: ../src/iop/colorreconstruction.c:1246 msgid "spatial" msgstr "espacial" -#: ../src/iop/colorreconstruction.c:1238 +#: ../src/iop/colorreconstruction.c:1247 msgid "range" msgstr "faixa" -#: ../src/iop/colorreconstruction.c:1239 +#: ../src/iop/colorreconstruction.c:1248 msgid "precedence" msgstr "precedência" -#: ../src/iop/colorreconstruction.c:1255 +#: ../src/iop/colorreconstruction.c:1264 msgid "pixels with lightness values above this threshold are corrected" msgstr "pixels com valor de luminosidade acima deste limite são corrigidos" -#: ../src/iop/colorreconstruction.c:1256 +#: ../src/iop/colorreconstruction.c:1265 msgid "how far to look for replacement colors in spatial dimensions" msgstr "quão longe procurar por cores substitutas em dimensões espaciais" -#: ../src/iop/colorreconstruction.c:1257 +#: ../src/iop/colorreconstruction.c:1266 msgid "how far to look for replacement colors in the luminance dimension" msgstr "quão longe procurar por cores substitutas na dimensão luminosidade" -#: ../src/iop/colorreconstruction.c:1258 +#: ../src/iop/colorreconstruction.c:1267 msgid "if and how to give precedence to specific replacement colors" msgstr "se e como dar precedência para cores substitutas específicas" -#: ../src/iop/colorreconstruction.c:1259 +#: ../src/iop/colorreconstruction.c:1268 msgid "the hue tone which should be given precedence over other hue tones" msgstr "" "tom de matiz ao qual deve ser dada precedência sobre outros tons de matiz" -#: ../src/iop/colorreconstruction.c:1261 ../src/iop/demosaic.c:1277 -#: ../src/iop/highlights.c:1168 +#: ../src/iop/colorreconstruction.c:1270 ../src/iop/demosaic.c:1324 +#: ../src/iop/highlights.c:1258 msgid "not applicable" msgstr "não aplicável" -#: ../src/iop/colorreconstruction.c:1262 +#: ../src/iop/colorreconstruction.c:1271 msgid "no highlights reconstruction for monochrome images" msgstr "sem reconstrução de realces para imagens monocromáticas" @@ -15369,7 +15946,7 @@ msgstr "" "este módulo está obsoleto. use o módulo de mapeamento de cor em seu lugar." -#: ../src/iop/colortransfer.c:439 +#: ../src/iop/colortransfer.c:441 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -15379,43 +15956,43 @@ "e está aqui apenas para que você o desative\n" "e use o novo mapeamento de cor." -#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2332 +#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2573 msgid "color zones" msgstr "zonas de cor" -#: ../src/iop/colorzones.c:144 +#: ../src/iop/colorzones.c:145 msgid "selectively shift hues, chroma and lightness of pixels" msgstr "seletivamente ajusta matiz, croma e brilho de pixels" -#: ../src/iop/colorzones.c:606 +#: ../src/iop/colorzones.c:684 msgid "B&W: with red" msgstr "P&B: com vermelho" -#: ../src/iop/colorzones.c:629 +#: ../src/iop/colorzones.c:707 msgid "B&W: with skin tones" msgstr "P&B: tons de pele it8" -#: ../src/iop/colorzones.c:652 +#: ../src/iop/colorzones.c:732 msgid "polarizing filter" msgstr "filtro polarizador" -#: ../src/iop/colorzones.c:673 +#: ../src/iop/colorzones.c:753 msgid "natural skin tones" msgstr "tons de pele natural" -#: ../src/iop/colorzones.c:704 +#: ../src/iop/colorzones.c:784 msgid "B&W: film" msgstr "P&B: filme" -#: ../src/iop/colorzones.c:724 +#: ../src/iop/colorzones.c:804 msgid "HSL base setting" msgstr "configuração de base HSL" -#: ../src/iop/colorzones.c:2264 +#: ../src/iop/colorzones.c:2500 msgid "orange" msgstr "laranja" -#: ../src/iop/colorzones.c:2421 ../src/iop/rgbcurve.c:1375 +#: ../src/iop/colorzones.c:2673 ../src/iop/rgbcurve.c:1375 msgid "" "create a curve based on an area from the image\n" "drag to create a flat curve\n" @@ -15427,48 +16004,48 @@ "ctrl+arraste para criar uma curva positiva\n" "shift+arraste para criar uma curva negativa" -#: ../src/iop/colorzones.c:2425 ../src/iop/rgbcurve.c:1379 +#: ../src/iop/colorzones.c:2677 ../src/iop/rgbcurve.c:1379 msgid "create curve" msgstr "criar curva" #. edit by area -#: ../src/iop/colorzones.c:2442 +#: ../src/iop/colorzones.c:2696 msgid "edit by area" msgstr "editar por área" -#: ../src/iop/colorzones.c:2447 +#: ../src/iop/colorzones.c:2702 msgid "edit the curve nodes by area" msgstr "editar os nós da curva pela área" -#: ../src/iop/colorzones.c:2454 +#: ../src/iop/colorzones.c:2710 msgid "display selection" msgstr "mostra seleção" -#: ../src/iop/colorzones.c:2463 +#: ../src/iop/colorzones.c:2722 msgid "choose selection criterion, will be the abscissa in the graph" msgstr "seleciona o critério de seleção, será a abscissa no gráfico" -#: ../src/iop/colorzones.c:2466 +#: ../src/iop/colorzones.c:2725 msgid "choose between a smoother or stronger effect" msgstr "seleciona entre um efeito mais suave ou mais forte" -#: ../src/iop/colorzones.c:2494 ../src/iop/rgbcurve.c:1410 -#: ../src/iop/tonecurve.c:1172 +#: ../src/iop/colorzones.c:2762 ../src/iop/rgbcurve.c:1410 +#: ../src/iop/tonecurve.c:1194 msgid "interpolation method" msgstr "método de interpolação" -#: ../src/iop/colorzones.c:2496 ../src/iop/rgbcurve.c:1412 -#: ../src/iop/tonecurve.c:1174 +#: ../src/iop/colorzones.c:2764 ../src/iop/rgbcurve.c:1412 +#: ../src/iop/tonecurve.c:1196 msgid "centripetal spline" msgstr "curva-S centrípeta" -#: ../src/iop/colorzones.c:2497 ../src/iop/rgbcurve.c:1413 -#: ../src/iop/tonecurve.c:1175 +#: ../src/iop/colorzones.c:2765 ../src/iop/rgbcurve.c:1413 +#: ../src/iop/tonecurve.c:1197 msgid "monotonic spline" msgstr "curva-S monotônica" -#: ../src/iop/colorzones.c:2500 ../src/iop/rgbcurve.c:1416 -#: ../src/iop/tonecurve.c:1177 +#: ../src/iop/colorzones.c:2768 ../src/iop/rgbcurve.c:1416 +#: ../src/iop/tonecurve.c:1199 msgid "" "change this method if you see oscillations or cusps in the curve\n" "- cubic spline is better to produce smooth curves but oscillates when nodes " @@ -15486,24 +16063,24 @@ "- monotônica é melhor para acurácia de funções puramente analíticas (log, " "gama, exp)" -#: ../src/iop/crop.c:132 +#: ../src/iop/crop.c:122 msgid "crop" msgstr "cortar" -#: ../src/iop/crop.c:137 +#: ../src/iop/crop.c:127 msgid "reframe|distortion" msgstr "reenquadramento|distorção" -#: ../src/iop/crop.c:143 +#: ../src/iop/crop.c:133 msgid "change the framing" msgstr "muda o enquadramento" -#: ../src/iop/crop.c:1667 +#: ../src/iop/crop.c:1651 msgid "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag" msgstr "" "<b>mudar tamanho</b>: arrastar, <b>manter proporção</b>: shift+arrastar" -#: ../src/iop/crop.c:1676 +#: ../src/iop/crop.c:1660 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag" @@ -15528,7 +16105,7 @@ "este módulo está obsoleto. use o módulo de aberrações cromáticas em seu " "lugar." -#: ../src/iop/defringe.c:415 +#: ../src/iop/defringe.c:417 msgid "" "method for color protection:\n" " - global average: fast, might show slightly wrong previews in high " @@ -15548,11 +16125,11 @@ "dessaturação do que o requerido\n" "- limite estático: rápido, só usa limiar como limite estático" -#: ../src/iop/defringe.c:422 +#: ../src/iop/defringe.c:424 msgid "radius for detecting fringe" msgstr "raio para detecção de halo" -#: ../src/iop/defringe.c:425 +#: ../src/iop/defringe.c:427 msgid "threshold for defringe, higher values mean less defringing" msgstr "" "limite para mesclagem de borda, valores altos significam menos mesclagem" @@ -15567,12 +16144,12 @@ "reconstrói pixels RGB completamente a partir de uma leitura da\n" "matriz de filtro de cor do sensor da câmera" -#: ../src/iop/demosaic.c:1086 +#: ../src/iop/demosaic.c:1133 #, c-format msgid "`%s' color matrix not found for 4bayer image!" msgstr "`%s' matriz de cor não encontrada para imagem 4bayer!" -#: ../src/iop/demosaic.c:1238 +#: ../src/iop/demosaic.c:1285 msgid "" "Bayer sensor demosaicing method, PPG and RCD are fast, AMaZE and LMMSE are " "slow.\n" @@ -15584,7 +16161,7 @@ "LMMSE é melhor para imagens com ISO alto.\n" "interpoladores cromáticos duplos duplicam tempo de processamento." -#: ../src/iop/demosaic.c:1242 +#: ../src/iop/demosaic.c:1289 msgid "" "X-Trans sensor demosaicing method, Markesteijn 3-pass and frequency domain " "chroma are slow.\n" @@ -15594,11 +16171,11 @@ "croma no domínio da frequência são lentos.\n" "interpoladores cromáticos duplos duplicam tempo de processamento." -#: ../src/iop/demosaic.c:1248 +#: ../src/iop/demosaic.c:1295 msgid "Bayer4 sensor demosaicing methods." msgstr "métodos de interpolação cromática para sensores Bayer4." -#: ../src/iop/demosaic.c:1252 +#: ../src/iop/demosaic.c:1299 msgid "" "threshold for edge-aware median.\n" "set to 0.0 to switch off\n" @@ -15608,7 +16185,7 @@ "defina 0.0 para desativar.\n" "defina 1.0 para ignorar bordas." -#: ../src/iop/demosaic.c:1257 +#: ../src/iop/demosaic.c:1304 msgid "" "contrast threshold for dual demosaic.\n" "set to 0.0 for high frequency content\n" @@ -15620,7 +16197,7 @@ "defina em 1.0 para conteúdo plano\n" "alterne para visualizar a máscara" -#: ../src/iop/demosaic.c:1265 +#: ../src/iop/demosaic.c:1312 msgid "" "LMMSE refinement steps. the median steps average the output,\n" "refine adds some recalculation of red & blue channels" @@ -15628,49 +16205,49 @@ "passos de refinamento LMMSE. os passos de mediana calculam média da saída,\n" "os de refinamento adicionam algum recálculo de canais vermelho & azul." -#: ../src/iop/demosaic.c:1268 +#: ../src/iop/demosaic.c:1315 msgid "how many color smoothing median steps after demosaicing" msgstr "quantos passos de suavização média após interpolação cromática" -#: ../src/iop/demosaic.c:1271 +#: ../src/iop/demosaic.c:1318 msgid "green channels matching method" msgstr "método de correspondência canal verde" -#: ../src/iop/demosaic.c:1278 +#: ../src/iop/demosaic.c:1325 msgid "demosaicing is only used for color raw images" msgstr "demosaic só é usado em imagens RAW." -#: ../src/iop/denoiseprofile.c:714 +#: ../src/iop/denoiseprofile.c:766 msgid "wavelets: chroma only" msgstr "wavelets: croma apenas" -#: ../src/iop/denoiseprofile.c:720 +#: ../src/iop/denoiseprofile.c:772 msgid "denoise (profiled)" msgstr "redução de ruído (perfilado)" -#: ../src/iop/denoiseprofile.c:726 +#: ../src/iop/denoiseprofile.c:778 msgid "denoise using noise statistics profiled on sensors" msgstr "remove ruído usando estatísticas perfiladas em sensores" -#: ../src/iop/denoiseprofile.c:2846 +#: ../src/iop/denoiseprofile.c:2850 #, c-format msgid "found match for ISO %d" msgstr "encontrada correspondência para ISO %d" -#: ../src/iop/denoiseprofile.c:2855 +#: ../src/iop/denoiseprofile.c:2859 #, c-format msgid "interpolated from ISO %d and %d" msgstr "interpolado de ISO %d e %d" -#: ../src/iop/denoiseprofile.c:3719 +#: ../src/iop/denoiseprofile.c:3723 msgid "Y0" msgstr "Y0" -#: ../src/iop/denoiseprofile.c:3720 +#: ../src/iop/denoiseprofile.c:3724 msgid "U0V0" msgstr "U0V0" -#: ../src/iop/denoiseprofile.c:3760 +#: ../src/iop/denoiseprofile.c:3764 msgid "" "use only with a perfectly\n" "uniform image if you want to\n" @@ -15680,36 +16257,36 @@ "uniforme se você quiser\n" "estimar a variância de ruído" -#: ../src/iop/denoiseprofile.c:3766 +#: ../src/iop/denoiseprofile.c:3770 msgid "variance red: " msgstr "variância de vermelho: " -#: ../src/iop/denoiseprofile.c:3770 +#: ../src/iop/denoiseprofile.c:3774 msgid "variance computed on the red channel" msgstr "variância calculada no canal vermelho" -#: ../src/iop/denoiseprofile.c:3775 +#: ../src/iop/denoiseprofile.c:3779 msgid "variance green: " msgstr "variância de verde: " -#: ../src/iop/denoiseprofile.c:3779 +#: ../src/iop/denoiseprofile.c:3783 msgid "variance computed on the green channel" msgstr "variância calculada no canal verde" -#: ../src/iop/denoiseprofile.c:3784 +#: ../src/iop/denoiseprofile.c:3788 msgid "variance blue: " msgstr "variância de azul: " -#: ../src/iop/denoiseprofile.c:3788 +#: ../src/iop/denoiseprofile.c:3792 msgid "variance computed on the blue channel" msgstr "variância calculada no canal azul" -#: ../src/iop/denoiseprofile.c:3799 ../src/libs/export.c:1208 +#: ../src/iop/denoiseprofile.c:3803 ../src/libs/export.c:1320 #: ../src/libs/print_settings.c:2418 ../src/libs/print_settings.c:2774 msgid "profile" msgstr "perfil" -#: ../src/iop/denoiseprofile.c:3833 +#: ../src/iop/denoiseprofile.c:3837 msgid "" "adapt denoising according to the\n" "white balance coefficients.\n" @@ -15725,7 +16302,7 @@ "deve ser desabilitado se uma instância anterior\n" "foi usada com um modo de fusão de cor." -#: ../src/iop/denoiseprofile.c:3840 +#: ../src/iop/denoiseprofile.c:3844 msgid "" "fix bugs in Anscombe transform resulting\n" "in undersmoothing of the green channel in\n" @@ -15747,11 +16324,11 @@ "uma vez ativado, não será mais possível\n" "reverter para o algoritmo antigo." -#: ../src/iop/denoiseprofile.c:3850 +#: ../src/iop/denoiseprofile.c:3854 msgid "profile used for variance stabilization" msgstr "perfil utilizado para estabilização de variância" -#: ../src/iop/denoiseprofile.c:3852 +#: ../src/iop/denoiseprofile.c:3856 msgid "" "method used in the denoising core.\n" "non-local means works best for `lightness' blending,\n" @@ -15761,7 +16338,7 @@ "médias não-locais funcionam melhor para mesclagem em `luminosidade',\n" "wavelets funcionam melhor para mesclagem em `cor`" -#: ../src/iop/denoiseprofile.c:3856 +#: ../src/iop/denoiseprofile.c:3860 msgid "" "color representation used within the algorithm.\n" "RGB keeps the RGB channels separated,\n" @@ -15773,7 +16350,7 @@ "enquanto Y0U0V0 combina os canais para\n" "remoção de ruído de croma e luma separadamente." -#: ../src/iop/denoiseprofile.c:3861 +#: ../src/iop/denoiseprofile.c:3865 msgid "" "radius of the patches to match.\n" "increase for more sharpness on strong edges, and better denoising of smooth " @@ -15787,7 +16364,7 @@ "se detalhes são suavizados demais, reduza este valor ou aumente o controle " "deslizante de peso do pixel central." -#: ../src/iop/denoiseprofile.c:3867 +#: ../src/iop/denoiseprofile.c:3871 msgid "" "emergency use only: radius of the neighborhood to search patches in. " "increase for better denoising performance, but watch the long runtimes! " @@ -15797,7 +16374,7 @@ "para melhor denoising, mas cuidado com os longos tempos de execução! raios " "grandes podem ser muito lentos. você foi avisado" -#: ../src/iop/denoiseprofile.c:3873 +#: ../src/iop/denoiseprofile.c:3877 msgid "" "scattering of the neighborhood to search patches in.\n" "increase for better coarse-grain noise reduction.\n" @@ -15807,7 +16384,7 @@ "aumente para melhor redução de ruídos grossos.\n" "não afeta o tempo de execução." -#: ../src/iop/denoiseprofile.c:3877 +#: ../src/iop/denoiseprofile.c:3881 msgid "" "increase the weight of the central pixel\n" "of the patch in the patch comparison.\n" @@ -15819,11 +16396,11 @@ "útil para recuperar detalhes quando o tamanho do patch\n" "é grande." -#: ../src/iop/denoiseprofile.c:3881 +#: ../src/iop/denoiseprofile.c:3885 msgid "finetune denoising strength" msgstr "ajuste fino da intensidade redução de ruido" -#: ../src/iop/denoiseprofile.c:3883 +#: ../src/iop/denoiseprofile.c:3887 msgid "" "controls the way parameters are autoset\n" "increase if shadows are not denoised enough\n" @@ -15835,7 +16412,7 @@ "ou se sobra ruído de croma.\n" "isto pode acontecer se sua foto for superexposta." -#: ../src/iop/denoiseprofile.c:3888 +#: ../src/iop/denoiseprofile.c:3892 msgid "" "finetune shadows denoising.\n" "decrease to denoise more aggressively\n" @@ -15845,7 +16422,7 @@ "diminua para remover ruído mais agressivamente\n" "em áreas escuras da imagem." -#: ../src/iop/denoiseprofile.c:3892 +#: ../src/iop/denoiseprofile.c:3896 msgid "" "correct color cast in shadows.\n" "decrease if shadows are too purple.\n" @@ -15855,7 +16432,7 @@ "diminuir se as sombras são muito roxas.\n" "aumentar se as sombras são muito verdes." -#: ../src/iop/denoiseprofile.c:3896 +#: ../src/iop/denoiseprofile.c:3900 msgid "" "upgrade the variance stabilizing algorithm.\n" "new algorithm extends the current one.\n" @@ -15888,68 +16465,68 @@ "ou remover desfoque com deconvolução cega." #. deblurring presets -#: ../src/iop/diffuse.c:219 +#: ../src/iop/diffuse.c:246 msgid "lens deblur: soft" msgstr "correção de desfoque de lente: suave" -#: ../src/iop/diffuse.c:244 +#: ../src/iop/diffuse.c:271 msgid "lens deblur: medium" msgstr "correção de desfoque de lente: médio" -#: ../src/iop/diffuse.c:269 +#: ../src/iop/diffuse.c:296 msgid "lens deblur: hard" msgstr "correção de desfoque de lente: forte" -#: ../src/iop/diffuse.c:295 +#: ../src/iop/diffuse.c:322 msgid "dehaze" msgstr "remoção de névoa" -#: ../src/iop/diffuse.c:321 +#: ../src/iop/diffuse.c:348 msgid "denoise: fine" msgstr "redução de ruído: suave" -#: ../src/iop/diffuse.c:346 +#: ../src/iop/diffuse.c:373 msgid "denoise: medium" msgstr "redução de ruído: médio" -#: ../src/iop/diffuse.c:371 +#: ../src/iop/diffuse.c:398 msgid "denoise: coarse" msgstr "redução de ruído: grosso" -#: ../src/iop/diffuse.c:446 +#: ../src/iop/diffuse.c:473 msgid "sharpen demosaicing: no AA filter" msgstr "aumentar nitidez da interpolação cromática: sem filtro AA" -#: ../src/iop/diffuse.c:472 +#: ../src/iop/diffuse.c:499 msgid "sharpen demosaicing: AA filter" msgstr "aumentar nitidez da interpolação cromática: com filtro AA" -#: ../src/iop/diffuse.c:499 +#: ../src/iop/diffuse.c:526 msgid "simulate watercolor" msgstr "simular aquarela" -#: ../src/iop/diffuse.c:524 +#: ../src/iop/diffuse.c:551 msgid "simulate line drawing" msgstr "simular desenho" -#: ../src/iop/diffuse.c:576 +#: ../src/iop/diffuse.c:603 msgid "inpaint highlights" msgstr "reconstruir realces" #. fast presets for slow hardware -#: ../src/iop/diffuse.c:603 +#: ../src/iop/diffuse.c:630 msgid "sharpness: fast" msgstr "nitidez: rápido" -#: ../src/iop/diffuse.c:655 +#: ../src/iop/diffuse.c:682 msgid "sharpness: strong" msgstr "nitidez: forte" -#: ../src/iop/diffuse.c:680 +#: ../src/iop/diffuse.c:707 msgid "local contrast: fast" msgstr "máscara de constaste local: rápido" -#: ../src/iop/diffuse.c:1391 ../src/iop/diffuse.c:1666 +#: ../src/iop/diffuse.c:1418 ../src/iop/diffuse.c:1693 msgid "diffuse/sharpen failed to allocate memory, check your RAM settings" msgstr "" "difusão/nitidez não conseguiu alocar memória, verifique sua configuração de " @@ -15957,13 +16534,13 @@ #. Additional parameters #. Camera settings -#: ../src/iop/diffuse.c:1782 ../src/iop/splittoning.c:537 +#: ../src/iop/diffuse.c:1797 ../src/iop/splittoning.c:533 #: ../src/libs/camera.c:486 msgctxt "section" msgid "properties" msgstr "propriedades" -#: ../src/iop/diffuse.c:1788 +#: ../src/iop/diffuse.c:1803 msgid "" "more iterations make the effect stronger but the module slower.\n" "this is analogous to giving more time to the diffusion reaction.\n" @@ -15975,7 +16552,7 @@ "se planeja aumentar nitidez ou reconstruir, mais iterações ajudam na " "reconstrução." -#: ../src/iop/diffuse.c:1797 +#: ../src/iop/diffuse.c:1812 msgid "" "main scale of the diffusion.\n" "zero makes diffusion act on the finest details more heavily.\n" @@ -15989,7 +16566,7 @@ "para remoção de desfoque e de ruído, escolha zero.\n" "aumente para, ao invés disso, atuar no contraste local." -#: ../src/iop/diffuse.c:1807 +#: ../src/iop/diffuse.c:1822 msgid "" "width of the diffusion around the central radius.\n" "high values diffuse on a large band of radii.\n" @@ -16003,12 +16580,12 @@ "se planeja reduzir ruído,\n" "o raio deve estar perto da largura do desfoque da sua lente." -#: ../src/iop/diffuse.c:1814 +#: ../src/iop/diffuse.c:1829 msgctxt "section" msgid "speed (sharpen ↔ diffuse)" msgstr "velocidade (nitidez ↔ difusão)" -#: ../src/iop/diffuse.c:1821 +#: ../src/iop/diffuse.c:1836 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 1st order anisotropy (set below).\n" @@ -16024,7 +16601,7 @@ "valores positivos tornam difuso e borram,\n" "zero não faz nada." -#: ../src/iop/diffuse.c:1831 +#: ../src/iop/diffuse.c:1846 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 2nd order anisotropy (set below).\n" @@ -16040,7 +16617,7 @@ "valores positivos tornam difuso e borram,\n" "zero não faz nada." -#: ../src/iop/diffuse.c:1841 +#: ../src/iop/diffuse.c:1856 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 3rd order anisotropy (set below).\n" @@ -16056,7 +16633,7 @@ "valores positivos tornam difuso e borram,\n" "zero não faz nada." -#: ../src/iop/diffuse.c:1851 +#: ../src/iop/diffuse.c:1866 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 4th order anisotropy (set below).\n" @@ -16072,12 +16649,12 @@ "valores positivos tornam difuso e borram,\n" "zero não faz nada." -#: ../src/iop/diffuse.c:1857 +#: ../src/iop/diffuse.c:1872 msgctxt "section" msgid "direction" msgstr "direção" -#: ../src/iop/diffuse.c:1864 +#: ../src/iop/diffuse.c:1879 msgid "" "direction of 1st order speed (set above).\n" "\n" @@ -16091,7 +16668,7 @@ "valores positivos tendem a evitar arestas (isofotos),\n" "zero afeta ambos igualmente (isotrópico)." -#: ../src/iop/diffuse.c:1873 +#: ../src/iop/diffuse.c:1888 msgid "" "direction of 2nd order speed (set above).\n" "\n" @@ -16105,7 +16682,7 @@ "valores positivos tendem a evitar arestas (isofotos),\n" "zero afeta ambos igualmente (isotrópico)." -#: ../src/iop/diffuse.c:1882 +#: ../src/iop/diffuse.c:1897 msgid "" "direction of 3rd order speed (set above).\n" "\n" @@ -16119,7 +16696,7 @@ "valores positivos tendem a evitar arestas (isofotos),\n" "zero afeta ambos igualmente (isotrópico)." -#: ../src/iop/diffuse.c:1891 +#: ../src/iop/diffuse.c:1906 msgid "" "direction of 4th order speed (set above).\n" "\n" @@ -16133,12 +16710,12 @@ "valores positivos tendem a evitar arestas (isofotos),\n" "zero afeta ambos igualmente (isotrópico)." -#: ../src/iop/diffuse.c:1897 +#: ../src/iop/diffuse.c:1912 msgctxt "section" msgid "edge management" msgstr "tratamento de borda" -#: ../src/iop/diffuse.c:1904 +#: ../src/iop/diffuse.c:1919 msgid "" "increase or decrease the sharpness of the highest frequencies.\n" "can be used to keep details after blooming,\n" @@ -16148,7 +16725,7 @@ "pode ser usado para manter detalhes após florescer,\n" "para simples aumento de nitidez ajuste a velocidade para valores negativos." -#: ../src/iop/diffuse.c:1911 +#: ../src/iop/diffuse.c:1926 msgid "" "define the sensitivity of the variance penalty for edges.\n" "increase to exclude more edges from diffusion,\n" @@ -16158,7 +16735,7 @@ "aumente para excluir mais bordas da difusão,\n" "se franjas ou halos surgirem." -#: ../src/iop/diffuse.c:1918 +#: ../src/iop/diffuse.c:1933 msgid "" "define the variance threshold between edge amplification and penalty.\n" "decrease if you want pixels on smooth surfaces get a boost,\n" @@ -16171,12 +16748,12 @@ "se áreas escuras parecerem demasiado nítidas quando comparadas com áreas " "claras." -#: ../src/iop/diffuse.c:1924 +#: ../src/iop/diffuse.c:1939 msgctxt "section" msgid "diffusion spatiality" msgstr "espacialidade da difusão" -#: ../src/iop/diffuse.c:1931 +#: ../src/iop/diffuse.c:1946 msgid "" "luminance threshold for the mask.\n" "0. disables the luminance masking and applies the module on the whole " @@ -16196,7 +16773,7 @@ msgstr "Matizar ou posterizar" #: ../src/iop/dither.c:112 -msgid "dithering|posterization|reduce bit-depth" +msgid "dithering|posterization|reduce bit depth" msgstr "matização|posterização|redução de profundidade de bit" #: ../src/iop/dither.c:117 @@ -16212,23 +16789,23 @@ msgstr "corretivo, artístico" #. add the preset. -#: ../src/iop/dither.c:147 +#: ../src/iop/dither.c:149 msgid "dither" msgstr "matizar" -#: ../src/iop/dither.c:759 +#: ../src/iop/dither.c:761 msgid "radius for blurring step" msgstr "raio para etapa de desfoque" -#: ../src/iop/dither.c:771 +#: ../src/iop/dither.c:773 msgid "the gradient range where to apply random dither" msgstr "a faixa de gradiente onde aplicar o dither aleatório" -#: ../src/iop/dither.c:772 +#: ../src/iop/dither.c:774 msgid "gradient range" msgstr "faixa de gradiente" -#: ../src/iop/dither.c:780 +#: ../src/iop/dither.c:782 msgid "damping level of random dither" msgstr "nível de amortecimento do dither aleatório" @@ -16236,13 +16813,13 @@ msgid "legacy equalizer" msgstr "equalizador (obsoleto)" -#: ../src/iop/equalizer.c:110 +#: ../src/iop/equalizer.c:112 msgid "" "this module is deprecated. better use contrast equalizer module instead." msgstr "" "este módulo está obsoleto. use o equalizador de contraste em seu lugar." -#: ../src/iop/equalizer.c:238 +#: ../src/iop/equalizer.c:240 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -16260,33 +16837,33 @@ "refaz a exposição da foto como se você ainda estivesse com a câmera\n" "usando uma iluminação segura para cores semelhante ao aumento do ISO" -#: ../src/iop/exposure.c:279 +#: ../src/iop/exposure.c:301 msgid "magic lantern defaults" msgstr "padrões para lanterna mágica" -#: ../src/iop/exposure.c:351 ../src/iop/rawoverexposed.c:135 -#: ../src/iop/rawoverexposed.c:254 +#: ../src/iop/exposure.c:373 ../src/iop/rawoverexposed.c:137 +#: ../src/iop/rawoverexposed.c:256 #, c-format msgid "failed to get raw buffer from image `%s'" msgstr "falha em obter buffer raw da imagem `%s'" -#: ../src/iop/exposure.c:629 +#: ../src/iop/exposure.c:647 #, no-c-format msgid "compensate camera exposure (%+.1f EV)" msgstr "compensar exposição da câmera (%+.1f EV)" #. Write report in GUI -#: ../src/iop/exposure.c:813 +#: ../src/iop/exposure.c:831 #, c-format msgid "L : \t%.1f %%" msgstr "L : \t%.1f %%" -#: ../src/iop/exposure.c:945 ../src/libs/history.c:953 +#: ../src/iop/exposure.c:963 ../src/libs/history.c:953 #, c-format msgid "%.2f EV" msgstr "%.2f EV" -#: ../src/iop/exposure.c:1113 +#: ../src/iop/exposure.c:1131 msgid "" "automatically remove the camera exposure bias\n" "this is useful if you exposed the image to the right." @@ -16294,27 +16871,27 @@ "automaticamente remove o viés de exposição da câmera\n" "isto é útil se você expôs a imagem à direita." -#: ../src/iop/exposure.c:1132 +#: ../src/iop/exposure.c:1150 #, no-c-format msgid "where in the histogram to meter for deflicking. E.g. 50% is median" msgstr "onde no histograma medir para deflicking. Por exemplo, 50% é a mediana" -#: ../src/iop/exposure.c:1138 +#: ../src/iop/exposure.c:1156 msgid "" "where to place the exposure level for processed pics, EV below overexposure." msgstr "" "onde por o nível de exposição para fotos processadas, EV abaixo de " "sobrexposição." -#: ../src/iop/exposure.c:1142 +#: ../src/iop/exposure.c:1160 msgid "computed EC: " msgstr "EC calculado: " -#: ../src/iop/exposure.c:1145 +#: ../src/iop/exposure.c:1163 msgid "what exposure correction has actually been used" msgstr "quais correções de exposição foram utilizadas" -#: ../src/iop/exposure.c:1164 +#: ../src/iop/exposure.c:1182 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -16326,11 +16903,11 @@ "se mal ajustado, forçará os valores das cores que estão próximas\n" "do preto para fora do gama tornando valores RGB negativos." -#: ../src/iop/exposure.c:1174 -msgid "spot exposure mapping" -msgstr "mapeamento de exposição pontual" +#: ../src/iop/exposure.c:1192 +msgid "area exposure mapping" +msgstr "mapeamento de exposição por área" -#: ../src/iop/exposure.c:1180 +#: ../src/iop/exposure.c:1198 msgid "" "define a target brightness, in terms of exposure,\n" "for a selected region of the image (the control sample),\n" @@ -16346,7 +16923,7 @@ "uma parte crítica de seu objeto ou uma superfície que permameça estática\n" "(nos mesmos locais) e consistentemente iluminada em sua série de imagens." -#: ../src/iop/exposure.c:1189 +#: ../src/iop/exposure.c:1207 msgid "" "\"correction\" automatically adjust exposure\n" "such that the input lightness is mapped to the target.\n" @@ -16358,11 +16935,11 @@ "\"medida\" simplesmente mostra como uma cor de entrada é mapeada\n" "pela compensação de exposição e pode ser usada para definir um alvo." -#: ../src/iop/exposure.c:1215 +#: ../src/iop/exposure.c:1233 msgid "L : \tN/A" msgstr "L : \tN/A" -#: ../src/iop/exposure.c:1233 +#: ../src/iop/exposure.c:1251 msgid "the desired target exposure after mapping" msgstr "a cor alvo desejada após o mapeamento" @@ -16370,53 +16947,53 @@ msgid "this module is deprecated. better use filmic rgb module instead." msgstr "este módulo está obsoleto. use o módulo rgb fílmico em seu lugar." -#: ../src/iop/filmic.c:304 +#: ../src/iop/filmic.c:333 msgid "09 EV (low-key)" msgstr "09 EV (iluminação baixa)" -#: ../src/iop/filmic.c:312 +#: ../src/iop/filmic.c:341 msgid "10 EV (indoors)" msgstr "10 EV (interior)" -#: ../src/iop/filmic.c:320 +#: ../src/iop/filmic.c:349 msgid "11 EV (dim outdoors)" msgstr "11 EV (exterior com iluminação tênue)" -#: ../src/iop/filmic.c:328 +#: ../src/iop/filmic.c:357 msgid "12 EV (outdoors)" msgstr "12 EV (exterior)" -#: ../src/iop/filmic.c:336 +#: ../src/iop/filmic.c:365 msgid "13 EV (bright outdoors)" msgstr "13 EV (exterior iluminado)" -#: ../src/iop/filmic.c:344 +#: ../src/iop/filmic.c:373 msgid "14 EV (backlighting)" msgstr "14 EV (backlighting)" -#: ../src/iop/filmic.c:352 +#: ../src/iop/filmic.c:381 msgid "15 EV (sunset)" msgstr "15 EV (pôr do sol)" -#: ../src/iop/filmic.c:360 +#: ../src/iop/filmic.c:389 msgid "16 EV (HDR)" msgstr "16 EV (HDR)" -#: ../src/iop/filmic.c:368 +#: ../src/iop/filmic.c:397 msgid "18 EV (HDR++)" msgstr "18 EV (HDR++)" -#: ../src/iop/filmic.c:1480 +#: ../src/iop/filmic.c:1505 msgid "read-only graph, use the parameters below to set the nodes" msgstr "" "gráfico somente de leitura, use os parâmetros abaixo para configurar os nós" -#: ../src/iop/filmic.c:1484 +#: ../src/iop/filmic.c:1509 msgctxt "section" msgid "logarithmic shaper" msgstr "modelador logarítmico" -#: ../src/iop/filmic.c:1492 +#: ../src/iop/filmic.c:1517 msgid "" "adjust to match the average luminance of the subject.\n" "except in back-lighting situations, this should be around 18%." @@ -16424,7 +17001,7 @@ "ajuste para casar com a luminância média do objeto.\n" "exceto em situações com back-lighting, isto deveria ser em torno de 18%." -#: ../src/iop/filmic.c:1504 ../src/iop/filmicrgb.c:4442 +#: ../src/iop/filmic.c:1529 ../src/iop/filmicrgb.c:4506 msgid "" "number of stops between middle gray and pure white.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16434,7 +17011,7 @@ "esta é a leitura que um exposímetro daria na cena\n" "ajuste para evitar highlight clipping" -#: ../src/iop/filmic.c:1517 ../src/iop/filmicrgb.c:4453 +#: ../src/iop/filmic.c:1542 ../src/iop/filmicrgb.c:4517 msgid "" "number of stops between middle gray and pure black.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16446,20 +17023,20 @@ "aumente para obter mais contraste.\n" "diminua para recuperar mais detalhes com pouca luz." -#: ../src/iop/filmic.c:1529 +#: ../src/iop/filmic.c:1554 msgid "" -"enlarge or shrink the computed dynamic range.\n" +"increase or decrease the computed dynamic range.\n" "useful in conjunction with \"auto tune levels\"." msgstr "" "aumenta ou diminui o alcance dinâmico calculado.\n" "útil junto com \"ajustar níveis automaticamente\"." -#: ../src/iop/filmic.c:1535 ../src/iop/filmicrgb.c:4467 -#: ../src/iop/profile_gamma.c:659 +#: ../src/iop/filmic.c:1560 ../src/iop/filmicrgb.c:4531 +#: ../src/iop/profile_gamma.c:673 msgid "auto tune levels" msgstr "ajustar níveis automaticamente" -#: ../src/iop/filmic.c:1538 +#: ../src/iop/filmic.c:1563 msgid "" "try to optimize the settings with some guessing.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16471,12 +17048,12 @@ "funciona melhor para paisagens e figuras com iluminação uniforme\n" "mas falha para high-key e low-key" -#: ../src/iop/filmic.c:1543 +#: ../src/iop/filmic.c:1568 msgctxt "section" msgid "filmic S curve" msgstr "curva S fílmica" -#: ../src/iop/filmic.c:1550 ../src/iop/filmicrgb.c:4554 +#: ../src/iop/filmic.c:1575 ../src/iop/filmicrgb.c:4618 msgid "" "slope of the linear part of the curve\n" "affects mostly the mid-tones" @@ -16485,12 +17062,12 @@ "afeta principalmente os meios-tons" #. geotagging -#: ../src/iop/filmic.c:1557 ../src/iop/filmicrgb.c:4563 -#: ../src/libs/metadata_view.c:157 +#: ../src/iop/filmic.c:1582 ../src/iop/filmicrgb.c:4627 +#: ../src/libs/metadata_view.c:161 msgid "latitude" msgstr "latitude" -#: ../src/iop/filmic.c:1560 +#: ../src/iop/filmic.c:1585 msgid "" "width of the linear domain in the middle of the curve.\n" "increase to get more contrast at the extreme luminances.\n" @@ -16500,11 +17077,11 @@ "aumente para obter mais contraste nas luminâncias extremas.\n" "não tem efeito sobre os meios-tons." -#: ../src/iop/filmic.c:1567 +#: ../src/iop/filmic.c:1592 msgid "shadows/highlights balance" msgstr "balanço de sombras e realces" -#: ../src/iop/filmic.c:1570 ../src/iop/filmicrgb.c:4574 +#: ../src/iop/filmic.c:1595 ../src/iop/filmicrgb.c:4638 msgid "" "slides the latitude along the slope\n" "to give more room to shadows or highlights.\n" @@ -16516,7 +17093,7 @@ "use se precisar proteger detalhes\n" "em uma extremidade do histograma" -#: ../src/iop/filmic.c:1580 +#: ../src/iop/filmic.c:1605 msgid "" "desaturates the input of the module globally.\n" "you need to set this value below 100%\n" @@ -16526,7 +17103,7 @@ "você precisa determinar um valor abaixo de 100%\n" "se a preservação de crominância está habilitada." -#: ../src/iop/filmic.c:1590 +#: ../src/iop/filmic.c:1615 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16537,41 +17114,41 @@ "diminua se sombras e/ou realces estão saturados demais." #. Add export intent combo -#: ../src/iop/filmic.c:1600 ../src/libs/export.c:1227 +#: ../src/iop/filmic.c:1625 ../src/libs/export.c:1339 #: ../src/libs/print_settings.c:2473 ../src/libs/print_settings.c:2820 -#: ../src/views/darkroom.c:2524 ../src/views/lighttable.c:1182 +#: ../src/views/darkroom.c:2365 ../src/views/lighttable.c:1182 msgid "intent" msgstr "intenção" -#: ../src/iop/filmic.c:1601 +#: ../src/iop/filmic.c:1626 msgid "contrasted" msgstr "contrastado" #. cubic spline -#: ../src/iop/filmic.c:1602 +#: ../src/iop/filmic.c:1627 msgid "faded" msgstr "esmaecendo" #. centripetal spline -#: ../src/iop/filmic.c:1603 ../src/iop/profile_gamma.c:621 +#: ../src/iop/filmic.c:1628 ../src/iop/profile_gamma.c:635 msgid "linear" msgstr "linear" #. monotonic spline -#: ../src/iop/filmic.c:1604 +#: ../src/iop/filmic.c:1629 msgid "optimized" msgstr "otimizado" -#: ../src/iop/filmic.c:1606 +#: ../src/iop/filmic.c:1631 msgid "change this method if you see reversed contrast or faded blacks" msgstr "mude este método se perceber contraste revertido ou preto esmaecido" #. Preserve color -#: ../src/iop/filmic.c:1610 +#: ../src/iop/filmic.c:1635 msgid "preserve the chrominance" msgstr "preservar a crominância" -#: ../src/iop/filmic.c:1612 +#: ../src/iop/filmic.c:1637 msgid "" "ensure the original color are preserved.\n" "may reinforce chromatic aberrations.\n" @@ -16580,12 +17157,12 @@ "assegurar que as cores originais são preservadas.\n" "pode produzir cores supersaturadas e reforçar aberrações cromáticas da lente." -#: ../src/iop/filmic.c:1622 +#: ../src/iop/filmic.c:1647 msgctxt "section" msgid "destination/display" msgstr "destino/display" -#: ../src/iop/filmic.c:1640 ../src/iop/filmicrgb.c:4593 +#: ../src/iop/filmic.c:1665 ../src/iop/filmicrgb.c:4657 msgid "" "luminance of output pure black, this should be 0%\n" "except if you want a faded look" @@ -16593,7 +17170,7 @@ "luminância do preto puro de saída, isto deveria ser 0%\n" "exceto se quiser uma aparência esmaecida" -#: ../src/iop/filmic.c:1649 ../src/iop/filmicrgb.c:4600 +#: ../src/iop/filmic.c:1674 ../src/iop/filmicrgb.c:4664 msgid "" "middle gray value of the target display or color space.\n" "you should never touch that unless you know what you are doing." @@ -16601,7 +17178,7 @@ "valor de cinza médio do display alvo ou espaço de cor.\n" "você não deve tocar nisto a não ser que saiba o que está fazendo." -#: ../src/iop/filmic.c:1658 ../src/iop/filmicrgb.c:4607 +#: ../src/iop/filmic.c:1683 ../src/iop/filmicrgb.c:4671 msgid "" "luminance of output pure white, this should be 100%\n" "except if you want a faded look" @@ -16609,11 +17186,11 @@ "luminância do branco puro de saída, isto deveria ser 100%\n" "exceto se quiser uma aparência esmaecida" -#: ../src/iop/filmic.c:1664 +#: ../src/iop/filmic.c:1689 msgid "target gamma" msgstr "gama alvo" -#: ../src/iop/filmic.c:1666 +#: ../src/iop/filmic.c:1691 msgid "" "power or gamma of the transfer function\n" "of the display or color space.\n" @@ -16642,7 +17219,7 @@ "à cena para exibição em telas SDR e impressão em papel,\n" "prevenindo recorte de forma não-destrutiva" -#: ../src/iop/filmicrgb.c:1310 +#: ../src/iop/filmicrgb.c:1365 msgid "" "filmic highlights reconstruction failed to allocate memory, check your RAM " "settings" @@ -16650,72 +17227,72 @@ "A reconstrução de realces do fílmico não conseguiu alocar memória, verifique " "sua configuração de RAM" -#: ../src/iop/filmicrgb.c:2301 +#: ../src/iop/filmicrgb.c:2369 msgid "filmic highlights reconstruction failed to allocate memory on GPU" msgstr "" "A reconstrução de realces do fílmico não conseguiu alocar memória na GPU" -#: ../src/iop/filmicrgb.c:2419 +#: ../src/iop/filmicrgb.c:2487 msgid "filmic works only on RGB input" msgstr "O fílmico funciona somente com entrada RGB" -#: ../src/iop/filmicrgb.c:3484 +#: ../src/iop/filmicrgb.c:3548 msgid "look only" msgstr "aparência apenas" -#: ../src/iop/filmicrgb.c:3486 +#: ../src/iop/filmicrgb.c:3550 msgid "look + mapping (lin)" msgstr "aparência + mapeamento (linear)" -#: ../src/iop/filmicrgb.c:3488 +#: ../src/iop/filmicrgb.c:3552 msgid "look + mapping (log)" msgstr "aparência + mapeamento (log)" -#: ../src/iop/filmicrgb.c:3490 +#: ../src/iop/filmicrgb.c:3554 msgid "dynamic range mapping" msgstr "mapeamento de alcance dinâmico" -#: ../src/iop/filmicrgb.c:3857 +#: ../src/iop/filmicrgb.c:3921 #, c-format msgid "(%.0f %%)" msgstr "(%.0f %%)" -#: ../src/iop/filmicrgb.c:3873 +#: ../src/iop/filmicrgb.c:3937 #, no-c-format msgid "% display" msgstr "% tela" -#: ../src/iop/filmicrgb.c:3885 +#: ../src/iop/filmicrgb.c:3949 msgid "EV scene" msgstr "EV da cena" -#: ../src/iop/filmicrgb.c:3889 +#: ../src/iop/filmicrgb.c:3953 #, no-c-format msgid "% camera" msgstr "% câmera" #. Page DISPLAY -#: ../src/iop/filmicrgb.c:3925 ../src/iop/filmicrgb.c:4587 +#: ../src/iop/filmicrgb.c:3989 ../src/iop/filmicrgb.c:4651 msgid "display" msgstr "tela" #. axis legend -#: ../src/iop/filmicrgb.c:3934 +#: ../src/iop/filmicrgb.c:3998 msgid "(%)" msgstr "(%)" #. Page SCENE -#: ../src/iop/filmicrgb.c:3943 ../src/iop/filmicrgb.c:4422 +#: ../src/iop/filmicrgb.c:4007 ../src/iop/filmicrgb.c:4486 msgid "scene" msgstr "cena" #. axis legend -#: ../src/iop/filmicrgb.c:3952 +#: ../src/iop/filmicrgb.c:4016 msgid "(EV)" msgstr "(EV)" #. we are over the graph area -#: ../src/iop/filmicrgb.c:4364 +#: ../src/iop/filmicrgb.c:4428 msgid "" "use the parameters below to set the nodes.\n" "the bright curve is the filmic tone mapping curve\n" @@ -16725,11 +17302,11 @@ "a curva clara é a curva de mapeamento de tons do fílmico.\n" "a curva escura é a de dessaturação." -#: ../src/iop/filmicrgb.c:4370 +#: ../src/iop/filmicrgb.c:4434 msgid "toggle axis labels and values display" msgstr "alterna exibição de rótulos dos eixos e valores." -#: ../src/iop/filmicrgb.c:4374 +#: ../src/iop/filmicrgb.c:4438 msgid "" "cycle through graph views.\n" "left click: cycle forward.\n" @@ -16741,7 +17318,7 @@ "clique-direito: para trás.\n" "clique-duplo: volta à visão de aparência." -#: ../src/iop/filmicrgb.c:4431 +#: ../src/iop/filmicrgb.c:4495 #, no-c-format msgid "" "adjust to match the average luminance of the image's subject.\n" @@ -16752,15 +17329,15 @@ "o valor entrado aqui será reajustado para corresponder a 18.45%.\n" "diminua o valor para aumentar o brilho geral." -#: ../src/iop/filmicrgb.c:4461 +#: ../src/iop/filmicrgb.c:4525 msgid "" -"symmetrically enlarge or shrink the computed dynamic range.\n" +"symmetrically increase or decrease the computed dynamic range.\n" "useful to give a safety margin to extreme luminances." msgstr "" "simetricamente aumenta ou diminui o alcance dinâmico calculado.\n" -"útil junto para dar margem de segurança em luminâncias extremas." +"útil para dar margem de segurança em luminâncias extremas." -#: ../src/iop/filmicrgb.c:4468 +#: ../src/iop/filmicrgb.c:4532 msgid "" "try to optimize the settings with some statistical assumptions.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16777,16 +17354,16 @@ "certifique-se de entender suas suposições antes de usá-lo." #. Page RECONSTRUCT -#: ../src/iop/filmicrgb.c:4477 +#: ../src/iop/filmicrgb.c:4541 msgid "reconstruct" msgstr "reconstruir" -#: ../src/iop/filmicrgb.c:4479 +#: ../src/iop/filmicrgb.c:4543 msgctxt "section" msgid "highlights clipping" msgstr "recorte de realces" -#: ../src/iop/filmicrgb.c:4487 +#: ../src/iop/filmicrgb.c:4551 msgid "" "set the exposure threshold upon which\n" "clipped highlights get reconstructed.\n" @@ -16802,7 +17379,7 @@ "diminua para incluir mais áreas,\n" "aumente para excluir mais áreas." -#: ../src/iop/filmicrgb.c:4497 +#: ../src/iop/filmicrgb.c:4561 msgid "" "soften the transition between clipped highlights and valid pixels.\n" "decrease to make the transition harder and sharper,\n" @@ -16812,20 +17389,20 @@ "diminua para tornar a transição mais dura e nítida,\n" "aumente para tornar a transição mais suave e menos nítida." -#: ../src/iop/filmicrgb.c:4503 ../src/iop/filmicrgb.c:4504 +#: ../src/iop/filmicrgb.c:4567 ../src/iop/filmicrgb.c:4568 msgid "display highlight reconstruction mask" msgstr "mostrar máscara de reconstrução de realce" -#: ../src/iop/filmicrgb.c:4511 +#: ../src/iop/filmicrgb.c:4575 msgctxt "section" msgid "balance" msgstr "balanço" -#: ../src/iop/filmicrgb.c:4518 +#: ../src/iop/filmicrgb.c:4582 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between inpainting a smooth color gradient,\n" +"inpainting a smooth color gradient\n" "or trying to recover the textured details.\n" "0% is an equal mix of both.\n" "increase if at least one RGB channel is not clipped.\n" @@ -16838,11 +17415,11 @@ "aumente se pelo menos um canal RGB não estiver recortado.\n" "diminua se todos os canais RGB estiverem recortados em grandes áreas." -#: ../src/iop/filmicrgb.c:4529 +#: ../src/iop/filmicrgb.c:4593 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between blooming highlights like film does,\n" +"blooming highlights like film does\n" "or trying to recover sharp details.\n" "0% is an equal mix of both.\n" "increase if you want more details.\n" @@ -16855,11 +17432,11 @@ "aumente se quiser mais detalhes.\n" "diminua se quiser mais desfoque." -#: ../src/iop/filmicrgb.c:4541 +#: ../src/iop/filmicrgb.c:4605 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between recovering monochromatic highlights,\n" +"recovering monochromatic highlights\n" "or trying to recover colorful highlights.\n" "0% is an equal mix of both.\n" "increase if you want more color.\n" @@ -16873,11 +17450,11 @@ "diminua se perceber realces magenta ou fora da gama." #. Page LOOK -#: ../src/iop/filmicrgb.c:4549 +#: ../src/iop/filmicrgb.c:4613 msgid "look" msgstr "aparência" -#: ../src/iop/filmicrgb.c:4559 +#: ../src/iop/filmicrgb.c:4623 msgid "" "equivalent to paper grade in analog.\n" "increase to make highlights brighter and less compressed.\n" @@ -16887,7 +17464,7 @@ "aumente para tornar os realces mais claros e menos comprimidos.\n" "diminua para deixar os realces menos expressivos." -#: ../src/iop/filmicrgb.c:4567 +#: ../src/iop/filmicrgb.c:4631 msgid "" "width of the linear domain in the middle of the curve,\n" "increase to get more contrast and less desaturation at extreme luminances,\n" @@ -16900,7 +17477,7 @@ "de outra forma, diminua. nenhuma dessaturação é feita na faixa da latitude.\n" "não tem efeitos em tons médios." -#: ../src/iop/filmicrgb.c:4582 ../src/iop/filmicrgb.c:4730 +#: ../src/iop/filmicrgb.c:4646 ../src/iop/filmicrgb.c:4794 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16911,11 +17488,11 @@ "aumente se sombras e/ou realces estão subsaturados." #. Page OPTIONS -#: ../src/iop/filmicrgb.c:4611 +#: ../src/iop/filmicrgb.c:4675 msgid "options" msgstr "opções" -#: ../src/iop/filmicrgb.c:4616 +#: ../src/iop/filmicrgb.c:4680 msgid "" "v3 is darktable 3.0 desaturation method, same as color balance.\n" "v4 is a newer desaturation method, based on spectral purity of light." @@ -16923,7 +17500,7 @@ "v3 é o método de dessaturação do darktable 3.0, o mesmo que balanço de cor.\n" "v4 é um método mais novo de de saturação, baseado na pureza espectral da luz." -#: ../src/iop/filmicrgb.c:4620 +#: ../src/iop/filmicrgb.c:4684 msgid "" "ensure the original colors are preserved.\n" "may reinforce chromatic aberrations and chroma noise,\n" @@ -16933,7 +17510,7 @@ "pode reforçar aberrações cromáticas e ruído de croma,\n" "portanto garanta que sejam corrigidos apropriadamente em outro lugar." -#: ../src/iop/filmicrgb.c:4629 +#: ../src/iop/filmicrgb.c:4693 msgid "" "choose the desired curvature of the filmic spline in highlights.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -16943,7 +17520,7 @@ "dura usa uma curvatura resultando em mais compressão tonal.\n" "suave usa uma curvatura resultando em menos compressão tonal" -#: ../src/iop/filmicrgb.c:4634 +#: ../src/iop/filmicrgb.c:4698 msgid "" "choose the desired curvature of the filmic spline in shadows.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -16953,7 +17530,7 @@ "dura usa uma curvatura resultando em mais compressão tonal.\n" "suave usa uma curvatura resultando em menos compressão tonal." -#: ../src/iop/filmicrgb.c:4641 +#: ../src/iop/filmicrgb.c:4705 #, no-c-format msgid "" "enable to input custom middle-gray values.\n" @@ -16966,7 +17543,7 @@ "ao invés disso, ajuste a exposição global no módulo exposição.\n" "desabilite para usar o padrão de 18.45% de cinza médio." -#: ../src/iop/filmicrgb.c:4648 +#: ../src/iop/filmicrgb.c:4712 msgid "" "enable to auto-set the look hardness depending on the scene white and black " "points.\n" @@ -16978,7 +17555,7 @@ "isto mantém o cinza médio na linha da identidade e melhora o ajusta rápido.\n" "desabilite se quiser controle manual." -#: ../src/iop/filmicrgb.c:4654 +#: ../src/iop/filmicrgb.c:4718 msgid "" "run extra passes of chromaticity reconstruction.\n" "more iterations means more color propagation from neighborhood.\n" @@ -16990,7 +17567,7 @@ "isto será mais lento, mas resultará em realces mais neutros.\n" "também ajuda em casos difíceis de realces magenta." -#: ../src/iop/filmicrgb.c:4661 +#: ../src/iop/filmicrgb.c:4725 msgid "" "add statistical noise in reconstructed highlights.\n" "this avoids highlights to look too smooth\n" @@ -17002,7 +17579,7 @@ "quando a imagem é muito ruidosa,\n" "e os realces se misturam com o resto da imagem." -#: ../src/iop/filmicrgb.c:4668 +#: ../src/iop/filmicrgb.c:4732 msgid "" "choose the statistical distribution of noise.\n" "this is useful to match natural sensor noise pattern." @@ -17010,11 +17587,11 @@ "seleciona a distribuição estatística do ruído.\n" "isto é útil para combinar com o padrão natural de ruído do sensor." -#: ../src/iop/filmicrgb.c:4736 +#: ../src/iop/filmicrgb.c:4800 msgid "mid-tones saturation" msgstr "saturação dos meios-tons" -#: ../src/iop/filmicrgb.c:4737 +#: ../src/iop/filmicrgb.c:4801 msgid "" "desaturates the output of the module\n" "specifically at medium luminances.\n" @@ -17024,11 +17601,11 @@ "especificamente em luminâncias médias.\n" "aumente se os meios-tons estão subsaturados." -#: ../src/iop/filmicrgb.c:4743 +#: ../src/iop/filmicrgb.c:4807 msgid "highlights saturation mix" msgstr "mistura de realces e saturação" -#: ../src/iop/filmicrgb.c:4744 +#: ../src/iop/filmicrgb.c:4808 msgid "" "positive values ensure saturation is kept unchanged over the whole range.\n" "negative values bleach highlights at constant hue and luminance.\n" @@ -17052,39 +17629,39 @@ msgid "flip or rotate image by step of 90 degrees" msgstr "espelha ou gira a imagem em passos de 90 graus" -#: ../src/iop/flip.c:477 +#: ../src/iop/flip.c:475 msgid "no rotation" msgstr "não girar" -#: ../src/iop/flip.c:481 ../src/iop/flip.c:624 +#: ../src/iop/flip.c:479 ../src/iop/flip.c:622 msgid "flip horizontally" msgstr "girar horizontalmente" -#: ../src/iop/flip.c:485 ../src/iop/flip.c:628 +#: ../src/iop/flip.c:483 ../src/iop/flip.c:626 msgid "flip vertically" msgstr "girar verticalmente" -#: ../src/iop/flip.c:489 +#: ../src/iop/flip.c:487 msgid "rotate by -90 degrees" msgstr "girar -90 graus" -#: ../src/iop/flip.c:493 +#: ../src/iop/flip.c:491 msgid "rotate by 90 degrees" msgstr "girar 90 graus" -#: ../src/iop/flip.c:497 +#: ../src/iop/flip.c:495 msgid "rotate by 180 degrees" msgstr "girar 180 graus" -#: ../src/iop/flip.c:612 +#: ../src/iop/flip.c:610 msgid "transform" msgstr "transformar" -#: ../src/iop/flip.c:616 ../src/libs/live_view.c:293 +#: ../src/iop/flip.c:614 ../src/libs/live_view.c:293 msgid "rotate 90 degrees CCW" msgstr "girar 90 graus sentido anti-horário" -#: ../src/iop/flip.c:620 ../src/libs/live_view.c:294 +#: ../src/iop/flip.c:618 ../src/libs/live_view.c:294 msgid "rotate 90 degrees CW" msgstr "girar 90 graus sentido horário" @@ -17101,15 +17678,15 @@ msgid "this module is deprecated. please use the filmic rgb module instead." msgstr "este módulo está obsoleto. use o módulo rgb fílmico em seu lugar." -#: ../src/iop/globaltonemap.c:625 ../src/libs/filters/colors.c:259 +#: ../src/iop/globaltonemap.c:658 ../src/libs/filters/colors.c:259 msgid "operator" msgstr "operador" -#: ../src/iop/globaltonemap.c:626 +#: ../src/iop/globaltonemap.c:659 msgid "the global tonemap operator" msgstr "operador de mapeamento tonal global" -#: ../src/iop/globaltonemap.c:629 +#: ../src/iop/globaltonemap.c:662 msgid "" "the bias for tonemapper controls the linearity, the higher the more details " "in blacks" @@ -17117,7 +17694,7 @@ "o viés para o mapeador tonal controlar a linearidade, quanto mais alto mais " "detalhes nos pretos" -#: ../src/iop/globaltonemap.c:633 +#: ../src/iop/globaltonemap.c:666 msgid "the target light for tonemapper specified as cd/m2" msgstr "a luz alvo para o mapeador tonal especificado em cd/m2" @@ -17181,11 +17758,11 @@ msgid "simulate an optical graduated neutral density filter" msgstr "simula um filtro óptico graduado de densidade neutra" -#: ../src/iop/graduatednd.c:1114 +#: ../src/iop/graduatednd.c:1083 msgid "the density in EV for the filter" msgstr "a densidade em EV para o filtro" -#: ../src/iop/graduatednd.c:1119 +#: ../src/iop/graduatednd.c:1088 #, no-c-format msgid "" "hardness of graduation:\n" @@ -17194,55 +17771,55 @@ "dureza da graduação:\n" "0% = soft, 100% = hard" -#: ../src/iop/graduatednd.c:1123 +#: ../src/iop/graduatednd.c:1092 msgid "rotation of filter -180 to 180 degrees" msgstr "girar o filtro -180 a 180 graus" -#: ../src/iop/graduatednd.c:1136 +#: ../src/iop/graduatednd.c:1105 msgid "select the hue tone of filter" msgstr "selecione o tom de matiz do filtro" -#: ../src/iop/graduatednd.c:1142 +#: ../src/iop/graduatednd.c:1111 msgid "select the saturation of filter" msgstr "selecione a saturação do filtro" -#: ../src/iop/graduatednd.c:1153 +#: ../src/iop/graduatednd.c:1122 #, c-format msgid "[%s on nodes] change line rotation" msgstr "[%s em nós] mudar rotação da linha" -#: ../src/iop/graduatednd.c:1154 +#: ../src/iop/graduatednd.c:1123 #, c-format msgid "[%s on line] move line" msgstr "[%s em linha] mover linha" -#: ../src/iop/graduatednd.c:1156 +#: ../src/iop/graduatednd.c:1125 #, c-format msgid "[%s on line] change density" msgstr "[%s em linha] mudar densidade" -#: ../src/iop/graduatednd.c:1158 +#: ../src/iop/graduatednd.c:1127 #, c-format msgid "[%s on line] change hardness" msgstr "[%s em linha] mudar dureza" -#: ../src/iop/grain.c:428 +#: ../src/iop/grain.c:444 msgid "grain" msgstr "grão" -#: ../src/iop/grain.c:433 +#: ../src/iop/grain.c:449 msgid "simulate silver grains from film" msgstr "simula grãos de prata do filme" -#: ../src/iop/grain.c:582 +#: ../src/iop/grain.c:600 msgid "the grain size (~ISO of the film)" msgstr "o tamanho do grão (~ISO do filme)" -#: ../src/iop/grain.c:586 +#: ../src/iop/grain.c:604 msgid "the strength of applied grain" msgstr "a força do grão aplicado" -#: ../src/iop/grain.c:590 +#: ../src/iop/grain.c:608 msgid "" "amount of mid-tones bias from the photographic paper response modeling. the " "greater the bias, the more pronounced the fall off of the grain in shadows " @@ -17264,15 +17841,15 @@ msgid "remove fog and atmospheric hazing from pictures" msgstr "remove neblina e névoa atmosférica das imagens" -#: ../src/iop/hazeremoval.c:202 +#: ../src/iop/hazeremoval.c:204 msgid "amount of haze reduction" msgstr "quantidade de redução de névoa" -#: ../src/iop/hazeremoval.c:204 +#: ../src/iop/hazeremoval.c:206 msgid "distance" msgstr "distância" -#: ../src/iop/hazeremoval.c:206 +#: ../src/iop/hazeremoval.c:208 msgid "limit haze removal up to a specific spatial depth" msgstr "limita remoção de névoa a uma profundidade espacial específica" @@ -17284,11 +17861,11 @@ msgid "avoid magenta highlights and try to recover highlights colors" msgstr "evita realces magenta e tenta recuperar as cores dos realces" -#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:75 +#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:77 msgid "reconstruction, raw" msgstr "reconstrução, raw" -#: ../src/iop/highlights.c:923 +#: ../src/iop/highlights.c:1004 msgid "" "highlights: mode not available for this type of image. falling back to " "inpaint opposed." @@ -17296,48 +17873,65 @@ "realces: modo não está disponível para este tipo de imagem. revertendo para " "inpaint opposed." -#: ../src/iop/highlights.c:1101 +#: ../src/iop/highlights.c:1184 msgid "highlight reconstruction method" msgstr "método de reconstrução de realce" -#: ../src/iop/highlights.c:1106 +#: ../src/iop/highlights.c:1189 msgid "" "manually adjust the clipping threshold mostly used against magenta " -"highlights\n" -"the mask icon shows the clipped areas.\n" +"highlights.\n" "you might use this for tuning 'laplacian', 'inpaint opposed' or " "'segmentation' modes,\n" "especially if camera white point is incorrect." msgstr "" -"ajusta manualmente o limiar de recorte contra realces magenta\n" -"o ícone de máscara mostra a área recortada.\n" +"ajusta manualmente o limiar de recorte contra realces magenta.\n" "você pode usar isto para ajustar os modos 'laplaciano', 'inpaint opposed' ou " "segmentação',\n" "especialmente se o ponto branco da câmera estiver incorreto." -#: ../src/iop/highlights.c:1117 +#: ../src/iop/highlights.c:1193 +msgid "" +"visualize clipped highlights in a false color representation.\n" +"the effective clipping level also depends on the reconstruction method." +msgstr "" +"visualizar realces recortados em uma representação de cor falsa.\n" +"o nível efetivo de recorte também depende do método de reconstrução." + +#: ../src/iop/highlights.c:1203 msgid "" "combine closely related clipped segments by morphological operations.\n" -"the mask button shows the exact positions of resulting segment borders." +"this often leads to improved color reconstruction for tiny segments before " +"dark background." msgstr "" "combinar segmentos recortados que tenham forte relação por operações " "morfológicas.\n" -"o botão de máscara mostra as posições exatas das bordas de segmentos " -"resultantes." +"isto frequentemente leva a melhoria da reconstrução de cor para segmentos " +"muito pequenos contra fundo escuro." + +#: ../src/iop/highlights.c:1206 +msgid "visualize the combined segments in a false color representation." +msgstr "visualizar os segmentos combinados em uma representação com cor falsa." -#: ../src/iop/highlights.c:1125 +#: ../src/iop/highlights.c:1213 msgid "" "select inpainting after segmentation analysis.\n" -"increase to favour candidates found in segmentation analysis, decrease for " -"opposed means inpainting.\n" -"the mask button shows segments that are considered to have a good candidate." +"increase to favor candidates found in segmentation analysis, decrease for " +"opposed means inpainting." msgstr "" "selecione a reconstrução depois da análise de segmentos.\n" "aumente para favorecer candidatos encontrados na análise de segmentação, " -"diminua para reconstrução por média oposta.\n" -"o botão de máscara mostra os segmentos que se considera terem bom candidato." +"diminua para reconstrução por média oposta." + +#: ../src/iop/highlights.c:1216 +msgid "" +"visualize segments that are considered to have a good candidate in a false " +"color representation." +msgstr "" +"visualizar os segmentos considerados como tendo bom candidato em uma " +"representação com cor falsa." -#: ../src/iop/highlights.c:1136 +#: ../src/iop/highlights.c:1225 msgid "" "approximate lost data in regions with all photosites clipped, the effect " "depends on segment size and border gradients.\n" @@ -17357,17 +17951,16 @@ "o modo uniforme ignora estruturas truncadas estreitas para manter realces " "reconstruidos e evitar gradientes." -#: ../src/iop/highlights.c:1142 -msgid "" -"set strength of rebuilding in regions with all photosites clipped.\n" -"the mask buttons shows the effect that is added to already reconstructed " -"data." +#: ../src/iop/highlights.c:1231 +msgid "set strength of rebuilding in regions with all photosites clipped." msgstr "" -"define a força da reconstrução em regiões com todos os canais truncados.\n" -"os botões de máscara mostram o efeito que é adicionado aos dados já " -"reconstruídos." +"dfine a força da reconstrução em regiões com todos os canais truncados." -#: ../src/iop/highlights.c:1152 +#: ../src/iop/highlights.c:1233 +msgid "show the effect that is added to already reconstructed data." +msgstr "mostrar o efeito que é adicionado aos dados já reconstruídos." + +#: ../src/iop/highlights.c:1242 msgid "" "add noise to visually blend the reconstructed areas\n" "into the rest of the noisy image. useful at high ISO." @@ -17375,7 +17968,7 @@ "adiciona ruído para mesclar visualmente as áreas reconstruídas no resto da " "imagem ruidosa. útil com ISO alto." -#: ../src/iop/highlights.c:1156 +#: ../src/iop/highlights.c:1246 msgid "" "increase if magenta highlights don't get fully corrected\n" "each new iteration brings a performance penalty." @@ -17383,7 +17976,7 @@ "aumente se os realces magenta não forem corretamente corrigidos.\n" "cada nova iteração tem uma nova penalidade de desempenho." -#: ../src/iop/highlights.c:1161 +#: ../src/iop/highlights.c:1251 msgid "" "increase if magenta highlights don't get fully corrected.\n" "this may produce non-smooth boundaries between valid and clipped regions." @@ -17391,7 +17984,7 @@ "aumente se os realces magenta não forem completamente corrigidos.\n" "isto pode produzir fronteiras não suaves entre regiões válidas e recortadas." -#: ../src/iop/highlights.c:1165 +#: ../src/iop/highlights.c:1255 msgid "" "increase to correct larger clipped areas.\n" "large values bring huge performance penalties" @@ -17399,9 +17992,9 @@ "aumente para corrigir áreas recortadas maiores.\n" "valores altos trazem grandes penalidades de desempenho" -#: ../src/iop/highlights.c:1169 -msgid "this module only works with non-monochrome RAW and sRAW" -msgstr "Este módulo somente funciona com RAW e sRAW monotromáticos" +#: ../src/iop/highlights.c:1259 +msgid "this module does not work with monochrome RAW files" +msgstr "este módulo não funciona com arquivos RAW monocromáticos" #: ../src/iop/highpass.c:72 msgid "highpass" @@ -17411,52 +18004,52 @@ msgid "isolate high frequencies in the image" msgstr "isola frequências altas na imagem" -#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:135 +#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:107 msgid "linear or non-linear, Lab, scene-referred" msgstr "linear ou não-linear, Lab, relativo à cena" -#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:136 ../src/iop/sharpen.c:96 +#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:108 ../src/iop/sharpen.c:98 msgid "frequential, Lab" msgstr "frequencial, Lab" -#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:137 +#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:109 msgid "special, Lab, scene-referred" msgstr "especial, Lab, relativo à cena" -#: ../src/iop/highpass.c:383 +#: ../src/iop/highpass.c:378 msgid "the sharpness of highpass filter" msgstr "a nitidez do filtro passa-altas" -#: ../src/iop/highpass.c:387 +#: ../src/iop/highpass.c:382 msgid "the contrast of highpass filter" msgstr "o contraste do filtro passa-altas" -#: ../src/iop/hotpixels.c:67 +#: ../src/iop/hotpixels.c:69 msgid "hot pixels" msgstr "pixels quentes" -#: ../src/iop/hotpixels.c:72 +#: ../src/iop/hotpixels.c:74 msgid "remove abnormally bright pixels by dampening them with neighbors" msgstr "" "remove pixels exageradamente brilhantes harmonizando-os com os pixels " "vizinhos" -#: ../src/iop/hotpixels.c:363 +#: ../src/iop/hotpixels.c:442 #, c-format msgid "fixed %d pixel" msgid_plural "fixed %d pixels" msgstr[0] "corrigidos %d pixels" msgstr[1] "corrigidos %d pixels" -#: ../src/iop/hotpixels.c:386 +#: ../src/iop/hotpixels.c:465 msgid "lower threshold for hot pixel" msgstr "limite inferior para pixel quente" -#: ../src/iop/hotpixels.c:390 +#: ../src/iop/hotpixels.c:469 msgid "strength of hot pixel correction" msgstr "força da correção de pixel quente" -#: ../src/iop/hotpixels.c:406 +#: ../src/iop/hotpixels.c:485 msgid "" "hot pixel correction\n" "only works for raw images." @@ -17464,63 +18057,63 @@ "correção automática de pixels quentes\n" "somente funciona para imagens raw." -#: ../src/iop/invert.c:92 ../src/iop/invert.c:427 +#: ../src/iop/invert.c:106 ../src/iop/invert.c:442 #, c-format msgid "`%s' color matrix not found for 4bayer image" msgstr "`%s' matriz de cor não encontrada para imagem 4bayer" -#: ../src/iop/invert.c:108 +#: ../src/iop/invert.c:125 msgid "invert" msgstr "inverter" -#: ../src/iop/invert.c:113 +#: ../src/iop/invert.c:130 msgid "this module is deprecated. please use the negadoctor module instead." msgstr "" "este módulo está obsoleto. use o módulo analista de negativos em seu lugar." -#: ../src/iop/invert.c:118 +#: ../src/iop/invert.c:135 msgid "invert film negatives" msgstr "inverter negativos" -#: ../src/iop/invert.c:120 ../src/iop/invert.c:122 +#: ../src/iop/invert.c:137 ../src/iop/invert.c:139 msgid "linear, raw, display-referred" msgstr "linear, raw, relativo à exibição" #. Here we could provide more for monochrome special cases. As no monochrome camera #. has a bayer sensor we don't need g->RGB_to_CAM and g->CAM_to_RGB corrections -#: ../src/iop/invert.c:412 +#: ../src/iop/invert.c:427 msgid "brightness of film material" msgstr "brilho do material do filme" -#: ../src/iop/invert.c:416 +#: ../src/iop/invert.c:431 msgid "color of film material" msgstr "cor do material do filme" -#: ../src/iop/invert.c:500 ../src/iop/negadoctor.c:847 +#: ../src/iop/invert.c:515 ../src/iop/negadoctor.c:866 msgid "pick color of film material from image" msgstr "seleciona a cor do material do filme na imagem" -#: ../src/iop/invert.c:502 +#: ../src/iop/invert.c:517 msgid "select color of film material" msgstr "seleciona a cor do material do filme" -#: ../src/iop/lens.cc:230 +#: ../src/iop/lens.cc:251 msgid "lens correction" msgstr "correção da lente" -#: ../src/iop/lens.cc:235 +#: ../src/iop/lens.cc:256 msgid "vignette|chromatic aberrations|distortion" msgstr "vinheta|aberrações cromáticas|distorção" -#: ../src/iop/lens.cc:240 +#: ../src/iop/lens.cc:261 msgid "correct lenses optical flaws" msgstr "corrige falhas óticas das lentes" -#: ../src/iop/lens.cc:243 +#: ../src/iop/lens.cc:264 msgid "geometric and reconstruction, RGB" msgstr "geométrico e reconstrução, RGB" -#: ../src/iop/lens.cc:3148 +#: ../src/iop/lens.cc:3773 #, c-format msgid "" "maker:\t\t%s\n" @@ -17533,7 +18126,7 @@ "montagem:\t\t%s\n" "fator de corte:\t%.1f" -#: ../src/iop/lens.cc:3396 +#: ../src/iop/lens.cc:4026 #, c-format msgid "" "maker:\t\t%s\n" @@ -17552,31 +18145,31 @@ "tipo:\t\t\t%s\n" "montagem:\t\t%s" -#: ../src/iop/lens.cc:3442 +#: ../src/iop/lens.cc:4072 msgid "focal length (mm)" msgstr "distância focal (mm)" -#: ../src/iop/lens.cc:3468 +#: ../src/iop/lens.cc:4098 msgid "f/" msgstr "f/" -#: ../src/iop/lens.cc:3469 +#: ../src/iop/lens.cc:4099 msgid "f-number (aperture)" msgstr "número f (abertura)" -#: ../src/iop/lens.cc:3485 +#: ../src/iop/lens.cc:4115 msgid "d" msgstr "d" -#: ../src/iop/lens.cc:3486 +#: ../src/iop/lens.cc:4116 msgid "distance to subject" msgstr "distância do objeto" -#: ../src/iop/lens.cc:3645 +#: ../src/iop/lens.cc:4277 msgid "camera/lens not found" msgstr "câmera/lente não encontrados" -#: ../src/iop/lens.cc:3646 +#: ../src/iop/lens.cc:4278 msgid "" "please select your lens manually\n" "you might also want to check if your Lensfun database is up-to-date\n" @@ -17587,45 +18180,51 @@ "atualizada\n" "executando lensfun-update-data" -#: ../src/iop/lens.cc:3769 +#: ../src/iop/lens.cc:4423 msgid "camera model" msgstr "modelo da câmera" -#: ../src/iop/lens.cc:3774 +#: ../src/iop/lens.cc:4428 msgid "find camera" msgstr "encontrar câmera" -#: ../src/iop/lens.cc:3789 +#: ../src/iop/lens.cc:4443 msgid "find lens" msgstr "encontrar lentes" #. scale -#: ../src/iop/lens.cc:3823 ../src/iop/vignette.c:968 -#: ../src/iop/watermark.c:1324 ../src/libs/export.c:1165 +#: ../src/iop/lens.cc:4477 ../src/iop/vignette.c:1055 +#: ../src/iop/watermark.c:1372 ../src/libs/export.c:1264 msgid "scale" msgstr "escala" -#: ../src/iop/lens.cc:3828 +#: ../src/iop/lens.cc:4482 msgid "auto scale" msgstr "escalonamento automático" -#: ../src/iop/lens.cc:3832 +#: ../src/iop/lens.cc:4484 +msgid "automatic scale to available image size due to Lensfun data" +msgstr "" +"mudar automaticamente a escala para o tamanho de imagem de acordo com dados " +"lensfun" + +#: ../src/iop/lens.cc:4488 msgid "correct distortions or apply them" msgstr "corrige ou aplica distorções" -#: ../src/iop/lens.cc:3839 +#: ../src/iop/lens.cc:4495 msgid "transversal chromatic aberration red" msgstr "aberrações cromáticas transversais vermelho" -#: ../src/iop/lens.cc:3843 +#: ../src/iop/lens.cc:4499 msgid "transversal chromatic aberration blue" msgstr "aberrações cromáticas transversais azul" -#: ../src/iop/lens.cc:3849 +#: ../src/iop/lens.cc:4509 msgid "use latest algorithm" msgstr "usar o algoritmo mais recente" -#: ../src/iop/lens.cc:3851 +#: ../src/iop/lens.cc:4511 msgid "" "you're using an old version of the algorithm.\n" "once enabled, you won't be able to\n" @@ -17635,93 +18234,144 @@ "uma vez que habilitá-lo, não poderá\n" "retornar ao algoritmo antigo." -#: ../src/iop/lens.cc:3860 +#: ../src/iop/lens.cc:4521 +msgid "fine-tuning" +msgstr "ajuste fino" + +#. DT_IOP_SECTION_FOR_PARAMS doesn't work in C++ so create section module manually +#: ../src/iop/lens.cc:4526 +msgid "fine-tune" +msgstr "realizar ajuste fino" + +#: ../src/iop/lens.cc:4532 msgid "tune the warp and chromatic aberration correction" msgstr "ajusta a correção de distorção e de aberração cromática" -#: ../src/iop/lens.cc:3864 +#: ../src/iop/lens.cc:4536 msgid "tune the vignette correction" msgstr "ajusta a correção da vinheta" -#: ../src/iop/lens.cc:3868 +#: ../src/iop/lens.cc:4540 msgid "tune the TCA red correction" msgstr "ajusta a correção dde TCA vermelho" -#: ../src/iop/lens.cc:3872 +#: ../src/iop/lens.cc:4544 msgid "tune the TCA blue correction" msgstr "ajusta a correção dde TCA azul" -#: ../src/iop/lens.cc:3879 +#: ../src/iop/lens.cc:4551 msgid "image scaling" msgstr "mudança de escala da imagem" -#: ../src/iop/lens.cc:3891 +#: ../src/iop/lens.cc:4553 +msgid "automatic scale to available image size" +msgstr "mudar automaticamente a escala para o tamanho de imagem disponível" + +#: ../src/iop/lens.cc:4561 +msgid "" +"select a correction mode either based on\n" +" a) data and algorithms provided by the Lensfun project\n" +" b) embedded metadata provided by the camera or software vendor" +msgstr "" +"selecione um modo de correção baseado em\n" +" a) dados e algoritmos providos pelo projeto lensfun\n" +" b) metadados embarcados providos pela câmera ou por fornecedor de software" + +#: ../src/iop/lens.cc:4568 msgid "which corrections to apply" msgstr "quais correções aplicar" -#: ../src/iop/lens.cc:3904 +#: ../src/iop/lens.cc:4574 msgid "corrections done: " msgstr "correções feitas: " -#: ../src/iop/lens.cc:3906 +#: ../src/iop/lens.cc:4576 msgid "which corrections have actually been done" msgstr "quais correções foram realizadas efetivamente" +#: ../src/iop/lens.cc:4595 +msgid "manual vignette correction" +msgstr "correção manual de vinheta" + +#: ../src/iop/lens.cc:4599 +msgid "additional manually controlled optical vignetting correction" +msgstr "correção adicional de vinheta manualmente controlada" + +#: ../src/iop/lens.cc:4602 +msgid "vignette" +msgstr "vinheta" + +#: ../src/iop/lens.cc:4606 +msgid "amount of the applied optical vignetting correction" +msgstr "quantidade aplicada de correção vinheta óptica" + +#: ../src/iop/lens.cc:4608 +msgid "show applied optical vignette correction mask" +msgstr "mostrar máscara aplicada de correção vinheta óptica" + +#: ../src/iop/lens.cc:4618 +msgid "radius of uncorrected centre" +msgstr "raio do centro não corrigido" + +#: ../src/iop/lens.cc:4624 +msgid "steepness of the correction effect outside of radius" +msgstr "inclinação do efeito da correção fora do raio" + #: ../src/iop/levels.c:112 msgid "this module is deprecated. please use the RGB levels module instead." msgstr "este módulo está obsoleto. use o módulo níveis RGB em seu lugar." -#: ../src/iop/levels.c:117 ../src/iop/levels.c:630 ../src/iop/rgblevels.c:984 -#: ../src/iop/rgblevels.c:1014 +#: ../src/iop/levels.c:117 ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1022 +#: ../src/iop/rgblevels.c:1056 msgid "levels" msgstr "níveis" -#: ../src/iop/levels.c:137 +#: ../src/iop/levels.c:139 msgid "adjust black, white and mid-gray points" msgstr "ajusta pontos preto, branco e cinza médio" -#: ../src/iop/levels.c:628 ../src/iop/rgblevels.c:1016 +#: ../src/iop/levels.c:644 ../src/iop/rgblevels.c:1059 msgid "" "drag handles to set black, gray, and white points. operates on L channel." msgstr "" "arraste os alças para ajustar pontos de preto, cinza e branco. opera no " "canal L." -#: ../src/iop/levels.c:642 ../src/iop/rgblevels.c:1052 +#: ../src/iop/levels.c:658 ../src/iop/rgblevels.c:1108 msgid "apply auto levels" msgstr "aplica níveis automáticos" -#: ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1027 +#: ../src/iop/levels.c:662 ../src/iop/rgblevels.c:1077 msgid "pick black point from image" msgstr "seleciona ponto de preto a partir da imagem" -#: ../src/iop/levels.c:650 ../src/iop/rgblevels.c:1033 +#: ../src/iop/levels.c:666 ../src/iop/rgblevels.c:1085 msgid "pick medium gray point from image" msgstr "seleciona ponto de cinza médio a partir da imagem" -#: ../src/iop/levels.c:654 ../src/iop/rgblevels.c:1039 +#: ../src/iop/levels.c:670 ../src/iop/rgblevels.c:1093 msgid "pick white point from image" msgstr "seleciona ponto de branco a partir da imagem" -#: ../src/iop/levels.c:667 ../src/iop/rgblevels.c:936 -#: ../src/iop/rgblevels.c:1026 +#: ../src/iop/levels.c:683 ../src/iop/rgblevels.c:968 +#: ../src/iop/rgblevels.c:1075 msgid "black" msgstr "preto" -#: ../src/iop/levels.c:668 +#: ../src/iop/levels.c:684 msgid "black percentile" msgstr "preto percentil" -#: ../src/iop/levels.c:672 +#: ../src/iop/levels.c:688 msgid "gray percentile" msgstr "cinza percentil" -#: ../src/iop/levels.c:675 ../src/iop/rgblevels.c:938 -#: ../src/iop/rgblevels.c:1038 +#: ../src/iop/levels.c:691 ../src/iop/rgblevels.c:970 +#: ../src/iop/rgblevels.c:1091 msgid "white" msgstr "branco" -#: ../src/iop/levels.c:676 +#: ../src/iop/levels.c:692 msgid "white percentile" msgstr "branco percentil" @@ -17733,11 +18383,11 @@ msgid "distort parts of the image" msgstr "distorce partes da imagem" -#: ../src/iop/liquify.c:2933 +#: ../src/iop/liquify.c:2895 msgid "click to edit nodes" msgstr "clique para adicionar nós" -#: ../src/iop/liquify.c:3636 +#: ../src/iop/liquify.c:3599 msgid "" "<b>add point</b>: click and drag\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17747,7 +18397,7 @@ "<b>tamanho</b>: scroll - <b>força</b>: shift+rola - <b>direção</b>: " "crtl+scroll" -#: ../src/iop/liquify.c:3639 +#: ../src/iop/liquify.c:3602 msgid "" "<b>add line</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17757,7 +18407,7 @@ "<b>tamanho</b>: scroll - <b>força</b>: shift+scroll - <b>direção</b>: " "ctrl+scroll" -#: ../src/iop/liquify.c:3642 +#: ../src/iop/liquify.c:3605 msgid "" "<b>add curve</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17767,7 +18417,7 @@ "<b>tamanho</b>: scroll - <b>força</b>: shift+scroll - <b>direção</b>: " "ctrl+scroll" -#: ../src/iop/liquify.c:3693 +#: ../src/iop/liquify.c:3656 msgid "" "use a tool to add warps\n" "<b>remove a warp</b>: right-click" @@ -17775,48 +18425,48 @@ "use uma ferramenta para adicionar distorções.\n" "<b>remover uma distorção</b>:clique-direito" -#: ../src/iop/liquify.c:3696 +#: ../src/iop/liquify.c:3659 msgid "warps|nodes count:" msgstr "número de distorções|nós:" -#: ../src/iop/liquify.c:3705 +#: ../src/iop/liquify.c:3668 msgid "edit, add and delete nodes" msgstr "edita, adiciona e exclui nós" -#: ../src/iop/liquify.c:3710 ../src/iop/liquify.c:3716 -#: ../src/iop/liquify.c:3722 ../src/iop/retouch.c:2238 -#: ../src/iop/retouch.c:2242 ../src/iop/retouch.c:2246 -#: ../src/iop/retouch.c:2250 ../src/iop/spots.c:883 ../src/iop/spots.c:888 -#: ../src/iop/spots.c:893 ../src/libs/masks.c:1816 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1834 ../src/libs/masks.c:1843 ../src/libs/masks.c:1852 +#: ../src/iop/liquify.c:3673 ../src/iop/liquify.c:3679 +#: ../src/iop/liquify.c:3685 ../src/iop/retouch.c:2465 +#: ../src/iop/retouch.c:2471 ../src/iop/retouch.c:2476 +#: ../src/iop/retouch.c:2481 ../src/iop/spots.c:885 ../src/iop/spots.c:890 +#: ../src/iop/spots.c:895 ../src/libs/masks.c:1812 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1830 ../src/libs/masks.c:1839 ../src/libs/masks.c:1848 msgid "shapes" msgstr "formas" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw curves" msgstr "desenha curvas" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw multiple curves" msgstr "desenha múltiplas curvas" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw lines" msgstr "desenha linhas" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw multiple lines" msgstr "desenha múltiplas linhas" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw points" msgstr "desenha pontos" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw multiple points" msgstr "desenha múltiplos pontos" -#: ../src/iop/liquify.c:3729 +#: ../src/iop/liquify.c:3692 msgid "" "<b>add node</b>: ctrl+click - <b>remove path</b>: right click\n" "<b>toggle line/curve</b>: ctrl+alt+click" @@ -17824,7 +18474,7 @@ "<b>adicionar nó</b>: ctrl+clique - <b>remover caminho</b>: clique direito\n" "<b>alternar entre linha/curva</b>: ctrl+alt+clique" -#: ../src/iop/liquify.c:3732 +#: ../src/iop/liquify.c:3695 msgid "" "<b>move</b>: click and drag - <b>show/hide feathering controls</b>: click\n" "<b>autosmooth, cusp, smooth, symmetrical</b>: ctrl+click - <b>remove</b>: " @@ -17835,23 +18485,23 @@ "<b>autosuavizar, cúspides, suavizar, simétrico</b>: ctrl_clique - " "<b>remover</b>: clique direito" -#: ../src/iop/liquify.c:3736 ../src/iop/liquify.c:3738 +#: ../src/iop/liquify.c:3699 ../src/iop/liquify.c:3701 msgid "<b>shape of path</b>: drag" msgstr "<b>forma do caminho</b>: arrastar" -#: ../src/iop/liquify.c:3740 +#: ../src/iop/liquify.c:3703 msgid "<b>radius</b>: drag" msgstr "<b>raio</b>: arrastar" -#: ../src/iop/liquify.c:3742 +#: ../src/iop/liquify.c:3705 msgid "<b>hardness (center)</b>: drag" msgstr "<b>dureza (centro)</b>: arrastar" -#: ../src/iop/liquify.c:3744 +#: ../src/iop/liquify.c:3707 msgid "<b>hardness (feather)</b>: drag" msgstr "<b>dureza (enevoamento)</b>: arrastar" -#: ../src/iop/liquify.c:3746 +#: ../src/iop/liquify.c:3709 msgid "" "<b>strength</b>: drag\n" "<b>linear, grow, and shrink</b>: ctrl+click" @@ -17871,235 +18521,235 @@ msgid "linear, XYZ" msgstr "linear, XYZ" -#: ../src/iop/lowlight.c:341 +#: ../src/iop/lowlight.c:338 msgid "indoor bright" msgstr "ambiente fechado claro" -#: ../src/iop/lowlight.c:359 +#: ../src/iop/lowlight.c:356 msgid "indoor dim" msgstr "ambiente fechado com luz suave" -#: ../src/iop/lowlight.c:377 +#: ../src/iop/lowlight.c:374 msgid "indoor dark" msgstr "ambiente fechado escuro" -#: ../src/iop/lowlight.c:395 +#: ../src/iop/lowlight.c:392 msgid "twilight" msgstr "crepúsculo" -#: ../src/iop/lowlight.c:413 +#: ../src/iop/lowlight.c:410 msgid "night street lit" msgstr "rua noturno iluminado" -#: ../src/iop/lowlight.c:431 +#: ../src/iop/lowlight.c:428 msgid "night street" msgstr "rua noturno" -#: ../src/iop/lowlight.c:449 +#: ../src/iop/lowlight.c:446 msgid "night street dark" msgstr "rua noturno escuro" -#: ../src/iop/lowlight.c:468 +#: ../src/iop/lowlight.c:465 msgid "night" msgstr "noite" -#: ../src/iop/lowlight.c:641 +#: ../src/iop/lowlight.c:639 msgid "dark" msgstr "escuro" -#: ../src/iop/lowlight.c:649 +#: ../src/iop/lowlight.c:647 msgid "bright" msgstr "claro" -#: ../src/iop/lowlight.c:658 +#: ../src/iop/lowlight.c:656 msgid "day vision" msgstr "visão de dia" -#: ../src/iop/lowlight.c:663 +#: ../src/iop/lowlight.c:661 msgid "night vision" msgstr "visão de noite" -#: ../src/iop/lowlight.c:835 +#: ../src/iop/lowlight.c:833 msgid "blueness in shadows" msgstr "azulamento nas sombras" -#: ../src/iop/lowpass.c:128 +#: ../src/iop/lowpass.c:100 msgid "lowpass" msgstr "passa-baixas" -#: ../src/iop/lowpass.c:133 +#: ../src/iop/lowpass.c:105 msgid "isolate low frequencies in the image" msgstr "isola frequências baixas na imagem" -#: ../src/iop/lowpass.c:565 +#: ../src/iop/lowpass.c:578 msgid "local contrast mask" msgstr "máscara de constaste local" -#: ../src/iop/lowpass.c:590 +#: ../src/iop/lowpass.c:603 msgid "radius of gaussian/bilateral blur" msgstr "raio do desfoque gaussiano/bilateral" -#: ../src/iop/lowpass.c:591 +#: ../src/iop/lowpass.c:604 msgid "contrast of lowpass filter" msgstr "contraste do filtro passa-baixas" -#: ../src/iop/lowpass.c:592 +#: ../src/iop/lowpass.c:605 msgid "brightness adjustment of lowpass filter" msgstr "ajuste de brilho do filtro passa-baixas" -#: ../src/iop/lowpass.c:593 +#: ../src/iop/lowpass.c:606 msgid "color saturation of lowpass filter" msgstr "saturação de cor do filtro passa-baixas" -#: ../src/iop/lowpass.c:594 +#: ../src/iop/lowpass.c:607 msgid "which filter to use for blurring" msgstr "qual filtro usar para desfoque" -#: ../src/iop/lut3d.c:135 +#: ../src/iop/lut3d.c:136 msgid "LUT 3D" msgstr "LUT 3D" -#: ../src/iop/lut3d.c:140 +#: ../src/iop/lut3d.c:141 msgid "perform color space corrections and apply look" msgstr "faz correções de espaço de cor e aplica aparência" -#: ../src/iop/lut3d.c:143 +#: ../src/iop/lut3d.c:144 msgid "defined by profile, RGB" msgstr "definido pelo perfil, RGB" -#: ../src/iop/lut3d.c:468 +#: ../src/iop/lut3d.c:486 msgid "error allocating buffer for gmz LUT" msgstr "erro ao alocar buffer para gmz LUT" -#: ../src/iop/lut3d.c:494 +#: ../src/iop/lut3d.c:512 #, c-format msgid "invalid png file %s" msgstr "arquivo png inválido %s" -#: ../src/iop/lut3d.c:502 +#: ../src/iop/lut3d.c:520 #, c-format -msgid "png bit-depth %d not supported" +msgid "png bit depth %d is not supported" msgstr "png com profundidade de bits %d não suportado" -#: ../src/iop/lut3d.c:516 ../src/iop/lut3d.c:526 +#: ../src/iop/lut3d.c:534 ../src/iop/lut3d.c:544 #, c-format msgid "invalid level in png file %d %d" msgstr "nível inválido em arquivo png %d %d" -#: ../src/iop/lut3d.c:521 +#: ../src/iop/lut3d.c:539 msgid "this darktable build is not compatible with compressed CLUT" msgstr "este build do darktable não é compatível com compressão de CLUT" -#: ../src/iop/lut3d.c:538 ../src/iop/lut3d.c:788 +#: ../src/iop/lut3d.c:556 ../src/iop/lut3d.c:808 #, c-format msgid "error - LUT 3D size %d exceeds the maximum supported" msgstr "erro - tamanho do LUT 3D %d excede o máximo suportado" -#: ../src/iop/lut3d.c:550 +#: ../src/iop/lut3d.c:568 msgid "error allocating buffer for png LUT" msgstr "erro ao alocar buffer para png LUT" -#: ../src/iop/lut3d.c:558 +#: ../src/iop/lut3d.c:576 #, c-format msgid "error - could not read png image %s" msgstr "erro - não é possível ler imagem png `%s'" -#: ../src/iop/lut3d.c:568 +#: ../src/iop/lut3d.c:586 msgid "error - allocating buffer for png LUT" msgstr "erro ao alocar buffer para png LUT" -#: ../src/iop/lut3d.c:743 +#: ../src/iop/lut3d.c:761 #, c-format msgid "error - invalid cube file: %s" msgstr "erro: arquivo de cubo inválido: %s" -#: ../src/iop/lut3d.c:757 -msgid "DOMAIN MIN <> 0.0 is not supported" -msgstr "DOMINIO MIN <> 0.0 não é suportado" - -#: ../src/iop/lut3d.c:768 -msgid "DOMAIN MAX <> 1.0 is not supported" -msgstr "DOMINIO MAX <> 1.0 não é suportado" +#: ../src/iop/lut3d.c:775 +msgid "DOMAIN MIN other than 0 is not supported" +msgstr "DOMINIO MIN diferente de 0.0 não é suportado" + +#: ../src/iop/lut3d.c:787 +msgid "DOMAIN MAX other than 1 is not supported" +msgstr "DOMINIO MAX diferente de 1.0 não é suportado" -#: ../src/iop/lut3d.c:777 +#: ../src/iop/lut3d.c:797 msgid "1D cube LUT is not supported" msgstr "cubo LUT 1D não é suportado" -#: ../src/iop/lut3d.c:799 +#: ../src/iop/lut3d.c:819 msgid "error - allocating buffer for cube LUT" msgstr "arro ao alocar buffer para cubo LUT" -#: ../src/iop/lut3d.c:810 +#: ../src/iop/lut3d.c:830 msgid "error - cube LUT size is not defined" msgstr "erro - tamanho do cubo LUT não definido" -#: ../src/iop/lut3d.c:821 +#: ../src/iop/lut3d.c:841 #, c-format msgid "error - cube LUT invalid number line %d" msgstr "erro - número de linha de cubo LUT inválido %d" -#: ../src/iop/lut3d.c:837 +#: ../src/iop/lut3d.c:857 #, c-format msgid "error - cube LUT lines number %d is not correct, should be %d" msgstr "erro - número de linhas do cubo LUT %d está errado, deveria ser %d" -#: ../src/iop/lut3d.c:847 +#: ../src/iop/lut3d.c:867 #, c-format msgid "warning - cube LUT has %d values out of range [0,1]" msgstr "advertência - cubo LUT tem %d valores fora do intervalo [0,1]" -#: ../src/iop/lut3d.c:872 +#: ../src/iop/lut3d.c:892 #, c-format msgid "error - invalid 3dl file: %s" msgstr "erro: arquivo 3dl inválido: %s" -#: ../src/iop/lut3d.c:893 +#: ../src/iop/lut3d.c:913 #, c-format msgid "error - the maximum shaper LUT value %d is too low" msgstr "erro - o valor máximo de LUT shaper %d é muito baixo" -#: ../src/iop/lut3d.c:904 +#: ../src/iop/lut3d.c:924 msgid "error - allocating buffer for 3dl LUT" msgstr "erro - ao alocar buffer para 3dl LUT" -#: ../src/iop/lut3d.c:917 +#: ../src/iop/lut3d.c:937 msgid "error - 3dl LUT size is not defined" msgstr "erro - tamanho do 3dl LUT não definido" -#: ../src/iop/lut3d.c:945 +#: ../src/iop/lut3d.c:965 msgid "error - 3dl LUT lines number is not correct" msgstr "erro - número de linhas do 3dl LUT não está correto" -#: ../src/iop/lut3d.c:961 +#: ../src/iop/lut3d.c:981 msgid "error - the maximum LUT value does not match any valid bit depth" msgstr "" "erro - o valor LUT máximo não casa com nenhuma profundidade de bits válida" -#: ../src/iop/lut3d.c:1539 +#: ../src/iop/lut3d.c:1553 msgid "LUT root folder not defined" msgstr "pasta raiz do LUT não definida" -#: ../src/iop/lut3d.c:1545 +#: ../src/iop/lut3d.c:1559 msgid "select LUT file" msgstr "selecionar arquivo LUT" -#: ../src/iop/lut3d.c:1546 +#: ../src/iop/lut3d.c:1560 msgid "_select" msgstr "_selecionar" -#: ../src/iop/lut3d.c:1566 +#: ../src/iop/lut3d.c:1580 msgid "hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" msgstr "hald CLUTS (png), 3D LUT (cubo ou 3dl) ou LUT comprimido de gmic (gmz)" -#: ../src/iop/lut3d.c:1568 +#: ../src/iop/lut3d.c:1582 msgid "hald CLUT (png) or 3D LUT (cube or 3dl)" msgstr "hald CLUTS (png) ou 3D LUT (cubo ou 3dl)" -#: ../src/iop/lut3d.c:1592 +#: ../src/iop/lut3d.c:1606 msgid "select file outside LUT root folder is not allowed" msgstr "seleção de arquivo fora da pasta raiz do LUT não é permitida" -#: ../src/iop/lut3d.c:1663 +#: ../src/iop/lut3d.c:1677 msgid "" "select a png (haldclut), a cube, a 3dl or a gmz (compressed LUT) file " "CAUTION: 3D LUT folder must be set in preferences/processing before choosing " @@ -18111,7 +18761,7 @@ "cor/miscelânea\n" "antes de escolher o arquivo LUT" -#: ../src/iop/lut3d.c:1667 +#: ../src/iop/lut3d.c:1681 msgid "" "select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be " "set in preferences/processing before choosing the LUT file" @@ -18120,7 +18770,7 @@ "LUT 3d deve ser configurada em preferências/processamento antes de escolher " "o arquivo LUT" -#: ../src/iop/lut3d.c:1679 +#: ../src/iop/lut3d.c:1693 msgid "" "the file path (relative to LUT folder) is saved with image along with the " "LUT data if it's a compressed LUT (gmz)" @@ -18129,7 +18779,7 @@ "com\n" "os dados LUT se é um LUT comprimido (gmz)" -#: ../src/iop/lut3d.c:1682 +#: ../src/iop/lut3d.c:1696 msgid "" "the file path (relative to LUT folder) is saved with image (and not the LUT " "data themselves)" @@ -18137,45 +18787,45 @@ "o caminho do arquivo (relativo à pasta LUT) é gravado com a imagem (e não\n" "os próprios dados LUT)" -#: ../src/iop/lut3d.c:1691 +#: ../src/iop/lut3d.c:1705 msgid "enter LUT name" msgstr "entre nome do LUT" -#: ../src/iop/lut3d.c:1712 +#: ../src/iop/lut3d.c:1726 msgid "select the LUT" msgstr "selecionar o LUT" -#: ../src/iop/lut3d.c:1725 +#: ../src/iop/lut3d.c:1739 msgid "select the color space in which the LUT has to be applied" msgstr "escolher o espaço de cor em que o LUT será aplicado" -#: ../src/iop/lut3d.c:1727 +#: ../src/iop/lut3d.c:1741 msgid "interpolation" msgstr "interpolação" -#: ../src/iop/lut3d.c:1728 +#: ../src/iop/lut3d.c:1742 msgid "select the interpolation method" msgstr "selecione o modo de interpolação" -#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:62 +#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:63 msgid "mask manager" msgstr "gerenciador de máscaras" -#: ../src/iop/monochrome.c:97 +#: ../src/iop/monochrome.c:99 msgid "quickly convert an image to black & white using a variable color filter" msgstr "" "converte rapidamente uma imagem para preto & branco usando um filtro de cor " "variável" -#: ../src/iop/monochrome.c:127 +#: ../src/iop/monochrome.c:153 msgid "red filter" msgstr "filtro vermelho" -#: ../src/iop/monochrome.c:546 +#: ../src/iop/monochrome.c:568 msgid "drag and scroll mouse wheel to adjust the virtual color filter" msgstr "arraste e role a roda do mouse para ajustar o filtro de cor virtual" -#: ../src/iop/monochrome.c:562 +#: ../src/iop/monochrome.c:584 msgid "how much to keep highlights" msgstr "quanto manter dos realces" @@ -18191,35 +18841,35 @@ msgid "invert film negative scans and simulate printing on paper" msgstr "inverte negativos de filme digitalizados e simula impressão em papel" -#: ../src/iop/negadoctor.c:469 +#: ../src/iop/negadoctor.c:483 msgid "D min" msgstr "D mín" -#: ../src/iop/negadoctor.c:475 ../src/iop/negadoctor.c:856 +#: ../src/iop/negadoctor.c:489 ../src/iop/negadoctor.c:875 msgid "D min red component" msgstr "D mín componente vermelho" #. Page FILM PROPERTIES -#: ../src/iop/negadoctor.c:832 +#: ../src/iop/negadoctor.c:851 msgid "film properties" msgstr "filme" #. Dmin -#: ../src/iop/negadoctor.c:836 +#: ../src/iop/negadoctor.c:855 msgctxt "section" msgid "color of the film base" msgstr "cor do filme" -#: ../src/iop/negadoctor.c:842 +#: ../src/iop/negadoctor.c:861 msgid "select color of film material from a swatch" msgstr "seleciona a cor do filme" -#: ../src/iop/negadoctor.c:848 +#: ../src/iop/negadoctor.c:867 msgid "film material" msgstr "material do filme" -#: ../src/iop/negadoctor.c:857 ../src/iop/negadoctor.c:867 -#: ../src/iop/negadoctor.c:877 +#: ../src/iop/negadoctor.c:876 ../src/iop/negadoctor.c:886 +#: ../src/iop/negadoctor.c:896 msgid "" "adjust the color and shade of the film transparent base.\n" "this value depends on the film material, \n" @@ -18231,21 +18881,21 @@ "químicos produzidos durante a revelação do filme, e do\n" "balanço de branco do digitalizador." -#: ../src/iop/negadoctor.c:866 +#: ../src/iop/negadoctor.c:885 msgid "D min green component" msgstr "D mín componente verde" -#: ../src/iop/negadoctor.c:876 +#: ../src/iop/negadoctor.c:895 msgid "D min blue component" msgstr "D mín componente azul" #. D max and scanner bias -#: ../src/iop/negadoctor.c:884 +#: ../src/iop/negadoctor.c:903 msgctxt "section" msgid "dynamic range of the film" msgstr "alcance dinâmico do filme" -#: ../src/iop/negadoctor.c:888 +#: ../src/iop/negadoctor.c:907 msgid "" "maximum density of the film, corresponding to white after inversion.\n" "this value depends on the film specifications, the developing process,\n" @@ -18256,12 +18906,12 @@ "revelação, do alcance dinâmico da cena e das configurações de\n" "exposição do digitalizador." -#: ../src/iop/negadoctor.c:892 +#: ../src/iop/negadoctor.c:911 msgctxt "section" msgid "scanner exposure settings" msgstr "configurações da exposição do digitalizador" -#: ../src/iop/negadoctor.c:896 +#: ../src/iop/negadoctor.c:915 msgid "" "correct the exposure of the scanner, for all RGB channels,\n" "before the inversion, so blacks are neither clipped or too pale." @@ -18271,25 +18921,25 @@ "ou fiquem muito pálidos." #. WB shadows -#: ../src/iop/negadoctor.c:903 +#: ../src/iop/negadoctor.c:922 msgctxt "section" msgid "shadows color cast" msgstr "desvio de cor nas sombras" -#: ../src/iop/negadoctor.c:909 +#: ../src/iop/negadoctor.c:928 msgid "select color of shadows from a swatch" msgstr "seleciona a cor das sombras em uma amostra" -#: ../src/iop/negadoctor.c:914 +#: ../src/iop/negadoctor.c:933 msgid "pick shadows color from image" msgstr "seleciona cor das sombras a partir da imagem" -#: ../src/iop/negadoctor.c:920 +#: ../src/iop/negadoctor.c:939 msgid "shadows red offset" msgstr "compensação de vermelho nas sombras" -#: ../src/iop/negadoctor.c:921 ../src/iop/negadoctor.c:928 -#: ../src/iop/negadoctor.c:935 +#: ../src/iop/negadoctor.c:940 ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:954 msgid "" "correct the color cast in shadows so blacks are\n" "truly achromatic. Setting this value before\n" @@ -18301,34 +18951,34 @@ "do balanço de branco dos realces do iluminante ajudará a\n" "recuperar o balanço de branco global em casos difíceis." -#: ../src/iop/negadoctor.c:927 +#: ../src/iop/negadoctor.c:946 msgid "shadows green offset" msgstr "compensação de verde nas sombras" -#: ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:953 msgid "shadows blue offset" msgstr "compensação de azul nas sombras" #. WB highlights -#: ../src/iop/negadoctor.c:941 +#: ../src/iop/negadoctor.c:960 msgctxt "section" msgid "highlights white balance" msgstr "balanço de branco nos realces" -#: ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:966 msgid "select color of illuminant from a swatch" msgstr "seleciona a cor do iluminante de uma amostra" -#: ../src/iop/negadoctor.c:952 +#: ../src/iop/negadoctor.c:971 msgid "pick illuminant color from image" msgstr "seleciona cor do iluminante a partir da imagem" -#: ../src/iop/negadoctor.c:958 +#: ../src/iop/negadoctor.c:977 msgid "illuminant red gain" msgstr "ganho de vermelho no iluminante" -#: ../src/iop/negadoctor.c:959 ../src/iop/negadoctor.c:966 -#: ../src/iop/negadoctor.c:973 +#: ../src/iop/negadoctor.c:978 ../src/iop/negadoctor.c:985 +#: ../src/iop/negadoctor.c:992 msgid "" "correct the color of the illuminant so whites are\n" "truly achromatic. Setting this value after\n" @@ -18340,26 +18990,26 @@ "da correção de desvio de cor em sombras ajudará a\n" "recuperar o balanço de branco global em casos difíceis." -#: ../src/iop/negadoctor.c:965 +#: ../src/iop/negadoctor.c:984 msgid "illuminant green gain" msgstr "ganho de verde no iluminante" -#: ../src/iop/negadoctor.c:972 +#: ../src/iop/negadoctor.c:991 msgid "illuminant blue gain" msgstr "ganho de azul no iluminante" #. Page PRINT PROPERTIES -#: ../src/iop/negadoctor.c:979 +#: ../src/iop/negadoctor.c:998 msgid "print properties" msgstr "impressão" #. print corrections -#: ../src/iop/negadoctor.c:982 +#: ../src/iop/negadoctor.c:1001 msgctxt "section" msgid "virtual paper properties" msgstr "propriedades do papel virtual" -#: ../src/iop/negadoctor.c:988 +#: ../src/iop/negadoctor.c:1007 msgid "" "correct the density of black after the inversion,\n" "to adjust the global contrast while avoiding clipping shadows." @@ -18367,7 +19017,7 @@ "corrige a densidade do preto após a inversão,\n" "para ajustar o contraste global evitando corte de sombras." -#: ../src/iop/negadoctor.c:993 +#: ../src/iop/negadoctor.c:1012 msgid "" "select the grade of the virtual paper, which is actually\n" "equivalent to applying a gamma. it compensates the film D max\n" @@ -18377,7 +19027,7 @@ "equivalente a aplicar gama. compensa o D max do filme\n" "e recupera contraste. use uma graduação alta para D max alto." -#: ../src/iop/negadoctor.c:1001 +#: ../src/iop/negadoctor.c:1020 msgid "" "gradually compress specular highlights past this value\n" "to avoid clipping while pushing the exposure for mid-tones.\n" @@ -18387,12 +19037,12 @@ "para evitar corte enquanto força a exposição para os tons médios.\n" "isto reproduz, de certa forma, o comportamento de papel matte." -#: ../src/iop/negadoctor.c:1005 +#: ../src/iop/negadoctor.c:1024 msgctxt "section" msgid "virtual print emulation" msgstr "simulação de impressão virtual" -#: ../src/iop/negadoctor.c:1012 +#: ../src/iop/negadoctor.c:1031 msgid "" "correct the printing exposure after inversion to adjust\n" "the global contrast and avoid clipping highlights." @@ -18400,51 +19050,83 @@ "corrige a exposição da impressão depois da inversão para ajustar\n" "o contraste global e evitar corte de realces." -#: ../src/iop/negadoctor.c:1020 +#: ../src/iop/negadoctor.c:1039 msgid "toggle on or off the color controls" msgstr "alterna (liga/desliga) os controles de cor" -#: ../src/iop/nlmeans.c:84 +#: ../src/iop/nlmeans.c:78 msgid "astrophoto denoise" msgstr "redução de ruído em astrofotografia" -#: ../src/iop/nlmeans.c:89 +#: ../src/iop/nlmeans.c:83 msgid "denoise (non-local means)" msgstr "redução de ruído (média não local)" -#: ../src/iop/nlmeans.c:94 +#: ../src/iop/nlmeans.c:88 msgid "apply a poisson noise removal best suited for astrophotography" msgstr "aplica remoção de ruído poissoniano, apropriado para astrofotografia" -#: ../src/iop/nlmeans.c:459 +#: ../src/iop/nlmeans.c:462 msgid "radius of the patches to match" msgstr "raio dos patches a corresponder" -#: ../src/iop/nlmeans.c:467 +#: ../src/iop/nlmeans.c:470 msgid "how much to smooth brightness" msgstr "quanto suavizar o brilho" -#: ../src/iop/nlmeans.c:470 +#: ../src/iop/nlmeans.c:473 msgid "how much to smooth colors" msgstr "quanto suavizar as cores" #. * let's fill the encapsulating widgets #. preview mode #. color scheme -#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2419 -#: ../src/views/darkroom.c:2437 ../src/views/darkroom.c:2444 -#: ../src/views/darkroom.c:2454 ../src/views/darkroom.c:2471 +#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2258 +#: ../src/views/darkroom.c:2276 ../src/views/darkroom.c:2283 +#: ../src/views/darkroom.c:2293 ../src/views/darkroom.c:2310 msgid "overexposed" msgstr "superexposição" -#: ../src/iop/overexposed.c:130 ../src/iop/overexposed.c:360 +#: ../src/iop/overexposed.c:123 ../src/iop/overexposed.c:352 msgid "module overexposed failed in buffer allocation" msgstr "módulo superexposição falhou ao alocar buffer" -#: ../src/iop/overexposed.c:156 ../src/iop/overexposed.c:370 +#: ../src/iop/overexposed.c:149 ../src/iop/overexposed.c:362 msgid "module overexposed failed in color conversion" msgstr "módulo superexposição falhou na conversão de cores" +#: ../src/iop/primaries.c:74 +msgid "rgb primaries" +msgstr "primárias RGB" + +#: ../src/iop/primaries.c:79 +msgid "adjustment of the RGB color primaries for color grading" +msgstr "ajuste das cores primárias RGB para grading de cores" + +#: ../src/iop/primaries.c:395 +msgid "shift red towards yellow or magenta" +msgstr "deslocar vermelho na direção do amarelo ou magenta" + +#: ../src/iop/primaries.c:396 +msgid "red primary purity" +msgstr "pureza primária do vermelho" + +#: ../src/iop/primaries.c:397 +msgid "shift green towards cyan or yellow" +msgstr "deslocar verde na direção do ciano ou amarelo" + +#: ../src/iop/primaries.c:398 +msgid "green primary purity" +msgstr "pureza primária do verde" + +#: ../src/iop/primaries.c:399 +msgid "shift blue towards magenta or cyan" +msgstr "deslocar o azul na direção do magenta ou ciano" + +#: ../src/iop/primaries.c:400 +msgid "blue primary purity" +msgstr "pureza primária do azul" + #: ../src/iop/profile_gamma.c:96 msgid "unbreak input profile" msgstr "correção de perfil de entrada" @@ -18453,39 +19135,39 @@ msgid "correct input color profiles meant to be applied on non-linear RGB" msgstr "corrige perfis de cor a serem aplicados em RGB não-linear" -#: ../src/iop/profile_gamma.c:136 +#: ../src/iop/profile_gamma.c:138 msgid "16 EV dynamic range (generic)" msgstr "alcance dinâmico 16 EV (genérico)" -#: ../src/iop/profile_gamma.c:142 +#: ../src/iop/profile_gamma.c:144 msgid "14 EV dynamic range (generic)" msgstr "alcance dinâmico 14 EV (genérico)" -#: ../src/iop/profile_gamma.c:148 +#: ../src/iop/profile_gamma.c:150 msgid "12 EV dynamic range (generic)" msgstr "alcance dinâmico 12EV (genérico)" -#: ../src/iop/profile_gamma.c:154 +#: ../src/iop/profile_gamma.c:156 msgid "10 EV dynamic range (generic)" msgstr "alcance dinâmico 10 EV (genérico)" -#: ../src/iop/profile_gamma.c:160 +#: ../src/iop/profile_gamma.c:162 msgid "08 EV dynamic range (generic)" msgstr "alcance dinâmico 08 EV (genérico)" -#: ../src/iop/profile_gamma.c:623 +#: ../src/iop/profile_gamma.c:637 msgid "linear part" msgstr "parte linear" -#: ../src/iop/profile_gamma.c:627 +#: ../src/iop/profile_gamma.c:641 msgid "gamma exponential factor" msgstr "gama fator exponencial" -#: ../src/iop/profile_gamma.c:638 +#: ../src/iop/profile_gamma.c:652 msgid "adjust to match the average luma of the subject" msgstr "ajuste para casar com luma médio do objeto" -#: ../src/iop/profile_gamma.c:644 +#: ../src/iop/profile_gamma.c:658 msgid "" "number of stops between middle gray and pure black\n" "this is a reading a light meter would give you on the scene" @@ -18493,7 +19175,7 @@ "quantidade de stops entre cinza médio e preto puro\n" "esta é a leitura que um exposímetro daria na cena" -#: ../src/iop/profile_gamma.c:650 +#: ../src/iop/profile_gamma.c:664 msgid "" "number of stops between pure black and pure white\n" "this is a reading a light meter would give you on the scene" @@ -18501,36 +19183,36 @@ "quantidade de stops entre preto puro e branco puro\n" "esta é a leitura que um exposímetro daria na cena" -#: ../src/iop/profile_gamma.c:652 +#: ../src/iop/profile_gamma.c:666 msgctxt "section" msgid "optimize automatically" msgstr "otimizar automaticamente" -#: ../src/iop/profile_gamma.c:656 +#: ../src/iop/profile_gamma.c:670 msgid "" -"enlarge or shrink the computed dynamic range\n" -"this is useful when noise perturbates the measurements" +"increase or decrease the computed dynamic range\n" +"this is useful when noise distorts the measurement" msgstr "" "aumenta ou diminui o alcance dinâmico calculado\n" -"é útil quando o ruído perturba as medidas" +"é útil quando o ruído distorce as medidas" -#: ../src/iop/profile_gamma.c:660 +#: ../src/iop/profile_gamma.c:674 msgid "make an optimization with some guessing" msgstr "tenta otimizar com alguns chutes" -#: ../src/iop/profile_gamma.c:669 +#: ../src/iop/profile_gamma.c:683 msgid "tone mapping method" msgstr "método de mapeamento de tom" -#: ../src/iop/rawdenoise.c:124 +#: ../src/iop/rawdenoise.c:138 msgid "raw denoise" msgstr "redução de ruído raw" -#: ../src/iop/rawdenoise.c:129 +#: ../src/iop/rawdenoise.c:143 msgid "denoise the raw picture early in the pipeline" msgstr "remove ruídos de imagens raw cedo no pipeline" -#: ../src/iop/rawdenoise.c:939 +#: ../src/iop/rawdenoise.c:955 msgid "" "raw denoising\n" "only works for raw images." @@ -18540,9 +19222,9 @@ #. * let's fill the encapsulating widgets #. mode of operation -#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2387 ../src/views/darkroom.c:2393 -#: ../src/views/darkroom.c:2406 +#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2226 ../src/views/darkroom.c:2232 +#: ../src/views/darkroom.c:2245 msgid "raw overexposed" msgstr "superexposição raw" @@ -18551,7 +19233,7 @@ msgid "raw black/white point" msgstr "ponto preto/branco em raw" -#: ../src/iop/rawprepare.c:156 +#: ../src/iop/rawprepare.c:172 msgid "" "sets technical specificities of the raw sensor.\n" "touch with great care!" @@ -18559,63 +19241,63 @@ "modifica especificidades técnicas do sensor raw\n" "ajuste com muito cuidado!" -#: ../src/iop/rawprepare.c:168 +#: ../src/iop/rawprepare.c:184 msgid "passthrough" msgstr "passar direto" -#: ../src/iop/rawprepare.c:655 +#: ../src/iop/rawprepare.c:663 msgid "invalid crop parameters" msgstr "parâmetros inválidos de corte" -#: ../src/iop/rawprepare.c:656 +#: ../src/iop/rawprepare.c:664 msgid "" "please reset to defaults, update your preset or set to something correct" msgstr "" "por favor reinicialize para o padrão, atualize suas predefinições, ou " "configure para algo correto" -#: ../src/iop/rawprepare.c:922 +#: ../src/iop/rawprepare.c:930 msgid "black level 0" msgstr "nível de preto 0" -#: ../src/iop/rawprepare.c:923 +#: ../src/iop/rawprepare.c:931 msgid "black level 1" msgstr "nível de preto 1" -#: ../src/iop/rawprepare.c:924 +#: ../src/iop/rawprepare.c:932 msgid "black level 2" msgstr "nível de preto 2" -#: ../src/iop/rawprepare.c:925 +#: ../src/iop/rawprepare.c:933 msgid "black level 3" msgstr "nível de preto 3" -#: ../src/iop/rawprepare.c:952 +#: ../src/iop/rawprepare.c:960 msgid "raw flat field correction to compensate for lens shading" msgstr "correção de não-uniformidade para compensar gradientes da lente" -#: ../src/iop/rawprepare.c:957 +#: ../src/iop/rawprepare.c:965 msgctxt "section" msgid "crop" msgstr "cortar" -#: ../src/iop/rawprepare.c:960 +#: ../src/iop/rawprepare.c:968 msgid "crop left border" msgstr "corte a partir da borda esquerda" -#: ../src/iop/rawprepare.c:964 +#: ../src/iop/rawprepare.c:972 msgid "crop top border" msgstr "corte a partir da borda esquerda" -#: ../src/iop/rawprepare.c:968 +#: ../src/iop/rawprepare.c:976 msgid "crop right border" msgstr "corte a partir da borda direita" -#: ../src/iop/rawprepare.c:972 +#: ../src/iop/rawprepare.c:980 msgid "crop bottom border" msgstr "corte a partir de baixo" -#: ../src/iop/rawprepare.c:981 +#: ../src/iop/rawprepare.c:989 msgid "" "raw black/white point correction\n" "only works for the sensors that need it." @@ -18641,11 +19323,11 @@ msgstr "" "este módulo está obsoleto. use o módulo equalizador de tons em seu lugar." -#: ../src/iop/relight.c:263 +#: ../src/iop/relight.c:259 msgid "the fill-light in EV" msgstr "a luz de preenchimento em EV" -#: ../src/iop/relight.c:272 +#: ../src/iop/relight.c:268 msgid "" "select the center of fill-light\n" "ctrl+click to select an area" @@ -18653,16 +19335,11 @@ "selecione o centro da luz de preenchimento\n" "ctrl+clique para selecionar uma área" -#: ../src/iop/relight.c:276 +#: ../src/iop/relight.c:272 msgid "toggle tool for picking median lightness in image" msgstr "alterna ferramenta para selecionar luminosidade media na imagem" -#: ../src/iop/relight.c:279 ../src/libs/export.c:1131 -#: ../src/libs/metadata_view.c:147 ../src/libs/print_settings.c:2537 -msgid "width" -msgstr "largura" - -#: ../src/iop/relight.c:280 +#: ../src/iop/relight.c:276 msgid "width of fill-light area defined in zones" msgstr "largura da área da luz de preenchimento em zonas" @@ -18684,30 +19361,30 @@ msgid "geometric and frequential, RGB" msgstr "geométrico e frequencial, RGB" -#: ../src/iop/retouch.c:1538 +#: ../src/iop/retouch.c:1689 msgid "cannot display scales when the blending mask is displayed" msgstr "" "não é possível mostrar escalas quando a máscara de mesclagem é mostrada" -#: ../src/iop/retouch.c:1861 ../src/iop/retouch.c:1863 -#: ../src/iop/retouch.c:1865 ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2045 ../src/iop/retouch.c:2047 +#: ../src/iop/retouch.c:2049 ../src/iop/retouch.c:2051 #, c-format msgid "default tool changed to %s" msgstr "ferramenta padrão mudada para %s" -#: ../src/iop/retouch.c:1861 +#: ../src/iop/retouch.c:2045 msgid "cloning" msgstr "clonar" -#: ../src/iop/retouch.c:1863 +#: ../src/iop/retouch.c:2047 msgid "healing" msgstr "reparar" -#: ../src/iop/retouch.c:2226 +#: ../src/iop/retouch.c:2448 msgid "shapes:" msgstr "formas:" -#: ../src/iop/retouch.c:2230 +#: ../src/iop/retouch.c:2454 msgid "" "to add a shape select an algorithm and a shape type and click on the image.\n" "shapes are added to the current scale" @@ -18716,77 +19393,73 @@ "na imagem\n" "formas são adicionadas à escala atual" -#. display & suppress masks -#. copy/paste shapes -#. display final image/current scale -#. auto-levels button -#: ../src/iop/retouch.c:2233 ../src/iop/retouch.c:2334 -#: ../src/iop/retouch.c:2339 ../src/iop/retouch.c:2347 -#: ../src/iop/retouch.c:2351 ../src/iop/retouch.c:2358 -#: ../src/iop/retouch.c:2392 +#: ../src/iop/retouch.c:2458 ../src/iop/retouch.c:2591 +#: ../src/iop/retouch.c:2597 ../src/iop/retouch.c:2606 +#: ../src/iop/retouch.c:2611 ../src/iop/retouch.c:2619 +#: ../src/iop/retouch.c:2664 msgid "editing" msgstr "edição" -#: ../src/iop/retouch.c:2233 +#: ../src/iop/retouch.c:2459 msgid "show and edit shapes on the current scale" msgstr "mostrar e editar formas na escala atual" -#: ../src/iop/retouch.c:2234 +#: ../src/iop/retouch.c:2460 msgid "show and edit shapes in restricted mode" msgstr "mostrar e editar formas no modo restrito" -#: ../src/iop/retouch.c:2257 +#: ../src/iop/retouch.c:2489 msgid "algorithms:" msgstr "algoritmos:" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2498 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2510 msgid "tools" msgstr "ferramentas" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2278 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2518 msgid "activate blur tool" msgstr "ativa ferramenta de desfoque" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2493 ../src/iop/retouch.c:2499 +#: ../src/iop/retouch.c:2505 ../src/iop/retouch.c:2511 msgid "change algorithm for current form" msgstr "mudar algoritmo para forma atual" -#: ../src/iop/retouch.c:2264 ../src/iop/retouch.c:2281 +#: ../src/iop/retouch.c:2498 ../src/iop/retouch.c:2521 msgid "activate fill tool" msgstr "ativar ferramenta de preenchimento" -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2284 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2524 msgid "activate cloning tool" msgstr "ativar ferramenta de clonagem" -#: ../src/iop/retouch.c:2272 ../src/iop/retouch.c:2287 +#: ../src/iop/retouch.c:2510 ../src/iop/retouch.c:2527 msgid "activate healing tool" msgstr "ativa ferramenta de reparação (recupera irregularidades na imagem)" #. overwrite tooltip ourself to handle shift+click -#: ../src/iop/retouch.c:2276 +#: ../src/iop/retouch.c:2516 msgid "ctrl+click to change tool for current form" msgstr "ctrl+clique para mudar a ferramenta para a forma atual" -#: ../src/iop/retouch.c:2277 +#: ../src/iop/retouch.c:2517 msgid "shift+click to set the tool as default" msgstr "shift+clique para definir a ferramenta como padrão" -#: ../src/iop/retouch.c:2296 +#: ../src/iop/retouch.c:2537 msgid "scales:" msgstr "escalas:" -#: ../src/iop/retouch.c:2301 +#: ../src/iop/retouch.c:2544 msgid "current:" msgstr "atual:" -#: ../src/iop/retouch.c:2306 +#: ../src/iop/retouch.c:2551 msgid "merge from:" msgstr "mesclar de:" -#: ../src/iop/retouch.c:2314 +#: ../src/iop/retouch.c:2562 msgid "" "top slider adjusts where the merge scales start\n" "bottom slider adjusts the number of scales\n" @@ -18800,44 +19473,44 @@ "a linha superior indica que a escala é visível no nível atual de zoom\n" "a linha inferior indica que a escala contém formas" -#: ../src/iop/retouch.c:2334 +#: ../src/iop/retouch.c:2591 msgid "display masks" msgstr "mostrar máscara" -#: ../src/iop/retouch.c:2339 +#: ../src/iop/retouch.c:2597 msgid "temporarily switch off shapes" msgstr "desligar temporariamente as formas" -#: ../src/iop/retouch.c:2347 +#: ../src/iop/retouch.c:2606 msgid "paste cut shapes to current scale" msgstr "colar formas na escala atual" -#: ../src/iop/retouch.c:2351 +#: ../src/iop/retouch.c:2611 msgid "cut shapes from current scale" msgstr "cortar formas a na escala atual" -#: ../src/iop/retouch.c:2358 +#: ../src/iop/retouch.c:2619 msgid "display wavelet scale" msgstr "mostrar escala de wavelet" -#: ../src/iop/retouch.c:2366 +#: ../src/iop/retouch.c:2627 msgctxt "section" msgid "preview single scale" msgstr "pré-visualizar em escala única" -#: ../src/iop/retouch.c:2377 +#: ../src/iop/retouch.c:2641 msgid "adjust preview levels" msgstr "ajuste nível de pré-visualização" -#: ../src/iop/retouch.c:2392 ../src/iop/rgblevels.c:1051 +#: ../src/iop/retouch.c:2664 ../src/iop/rgblevels.c:1106 msgid "auto levels" msgstr "níveis automáticos" -#: ../src/iop/retouch.c:2400 +#: ../src/iop/retouch.c:2672 msgid "shape selected:" msgstr "forma selecionada: " -#: ../src/iop/retouch.c:2405 +#: ../src/iop/retouch.c:2678 msgid "" "click on a shape to select it,\n" "to unselect click on an empty space" @@ -18845,60 +19518,60 @@ "clique em uma forma para selecioná-la,\n" "para de-selecionar clique em um espaço vazio" -#: ../src/iop/retouch.c:2412 +#: ../src/iop/retouch.c:2687 msgid "erase the detail or fills with chosen color" msgstr "apagar detalhes ou preencher com a cor escolhida" -#: ../src/iop/retouch.c:2419 +#: ../src/iop/retouch.c:2697 msgid "fill color: " msgstr "cor de preenchimento: " -#: ../src/iop/retouch.c:2424 ../src/iop/retouch.c:2425 +#: ../src/iop/retouch.c:2702 ../src/iop/retouch.c:2703 msgid "select fill color" msgstr "seleciona cor de preenchimento" -#: ../src/iop/retouch.c:2430 +#: ../src/iop/retouch.c:2713 msgid "pick fill color from image" msgstr "seleciona cor de preenchimento a partir da imagem" -#: ../src/iop/retouch.c:2431 +#: ../src/iop/retouch.c:2714 msgid "pick fill color" msgstr "escolher cor de preenchimento" -#: ../src/iop/retouch.c:2439 +#: ../src/iop/retouch.c:2724 msgid "adjusts color brightness to fine-tune it. works with erase as well" msgstr "ajusta brilho de cor para ajuste fino. funciona com apagar também" -#: ../src/iop/retouch.c:2445 +#: ../src/iop/retouch.c:2730 msgid "type for the blur algorithm" msgstr "tipo do algoritmo de desfoque" -#: ../src/iop/retouch.c:2449 +#: ../src/iop/retouch.c:2734 msgid "radius of the selected blur type" msgstr "raio do tipo selecionado de desfoque" -#: ../src/iop/retouch.c:2455 +#: ../src/iop/retouch.c:2741 msgid "set the opacity on the selected shape" msgstr "define a opacidade na forma selecionada" -#: ../src/iop/retouch.c:2461 +#: ../src/iop/retouch.c:2748 msgctxt "section" msgid "retouch tools" msgstr "ferramentas de retoque" #. wavelet decompose -#: ../src/iop/retouch.c:2470 +#: ../src/iop/retouch.c:2757 msgctxt "section" msgid "wavelet decompose" msgstr "decomposição em wavelet" #. shapes -#: ../src/iop/retouch.c:2484 +#: ../src/iop/retouch.c:2771 msgctxt "section" msgid "shapes" msgstr "formas" -#: ../src/iop/retouch.c:3589 ../src/iop/retouch.c:4427 +#: ../src/iop/retouch.c:3986 ../src/iop/retouch.c:4956 #, c-format msgid "max scale is %i for this image size" msgstr "a escala máxima é %i para este tamanho de imagem" @@ -18907,59 +19580,59 @@ msgid "rgb curve" msgstr "curva rgb" -#: ../src/iop/rgbcurve.c:142 +#: ../src/iop/rgbcurve.c:144 msgid "alter an image’s tones using curves in RGB color space" msgstr "altera os tons de uma imagem usando curvas no espaço de cores RGB" -#: ../src/iop/rgbcurve.c:193 ../src/iop/tonecurve.c:548 +#: ../src/iop/rgbcurve.c:195 ../src/iop/tonecurve.c:569 msgid "gamma 1.0 (linear)" msgstr "gama 1.0 (linear)" -#: ../src/iop/rgbcurve.c:203 ../src/iop/tonecurve.c:558 +#: ../src/iop/rgbcurve.c:205 ../src/iop/tonecurve.c:579 msgid "contrast - med (linear)" msgstr "contraste - médio (linear)" -#: ../src/iop/rgbcurve.c:212 ../src/iop/tonecurve.c:567 +#: ../src/iop/rgbcurve.c:214 ../src/iop/tonecurve.c:588 msgid "contrast - high (linear)" msgstr "contraste - alto (linear)" -#: ../src/iop/rgbcurve.c:226 ../src/iop/tonecurve.c:579 +#: ../src/iop/rgbcurve.c:228 ../src/iop/tonecurve.c:600 msgid "contrast - med (gamma 2.2)" msgstr "contraste - médio (gama 2.2)" -#: ../src/iop/rgbcurve.c:239 ../src/iop/tonecurve.c:590 +#: ../src/iop/rgbcurve.c:241 ../src/iop/tonecurve.c:611 msgid "contrast - high (gamma 2.2)" msgstr "contraste - alto (gama 2.2)" -#: ../src/iop/rgbcurve.c:252 ../src/iop/tonecurve.c:603 +#: ../src/iop/rgbcurve.c:254 ../src/iop/tonecurve.c:624 msgid "gamma 2.0" msgstr "gama 2.0" -#: ../src/iop/rgbcurve.c:258 ../src/iop/tonecurve.c:609 +#: ../src/iop/rgbcurve.c:260 ../src/iop/tonecurve.c:630 msgid "gamma 0.5" msgstr "gama 0.5" -#: ../src/iop/rgbcurve.c:263 ../src/iop/tonecurve.c:614 +#: ../src/iop/rgbcurve.c:265 ../src/iop/tonecurve.c:635 msgid "logarithm (base 2)" msgstr "logaritmo (base 2)" -#: ../src/iop/rgbcurve.c:268 ../src/iop/tonecurve.c:619 +#: ../src/iop/rgbcurve.c:270 ../src/iop/tonecurve.c:640 msgid "exponential (base 2)" msgstr "exponencial (base 2)" -#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:999 +#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:1038 msgid "choose between linked and independent channels." msgstr "seleciona entre canais ligados ou independentes." -#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1003 +#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1043 msgid "curve nodes for r channel" msgstr "nós da curva para canal R" -#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1004 +#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1044 msgid "curve nodes for g channel" msgstr "nós da curva para canal G" -#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1005 +#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1045 msgid "curve nodes for b channel" msgstr "nós da curva para canal B" @@ -18967,15 +19640,15 @@ msgid "rgb levels" msgstr "níveis rgb" -#: ../src/iop/rgblevels.c:122 +#: ../src/iop/rgblevels.c:124 msgid "adjust black, white and mid-gray points in RGB color space" msgstr "ajusta pontos preto, branco e cinza-médio no espaço de cores RGB" -#: ../src/iop/rgblevels.c:1056 +#: ../src/iop/rgblevels.c:1112 msgid "auto region" msgstr "automático por região" -#: ../src/iop/rgblevels.c:1058 +#: ../src/iop/rgblevels.c:1115 msgid "" "apply auto levels based on a region defined by the user\n" "click and drag to draw the area\n" @@ -18990,7 +19663,7 @@ msgid "rotate pixels" msgstr "rotacionar pixels" -#: ../src/iop/rotatepixels.c:97 ../src/iop/scalepixels.c:82 +#: ../src/iop/rotatepixels.c:99 ../src/iop/scalepixels.c:84 msgid "" "internal module to setup technical specificities of raw sensor.\n" "\n" @@ -19000,11 +19673,11 @@ "\n" "você não deveria tocar nos valores aqui!" -#: ../src/iop/rotatepixels.c:366 +#: ../src/iop/rotatepixels.c:381 msgid "automatic pixel rotation" msgstr "rotação automática de pixels" -#: ../src/iop/rotatepixels.c:367 +#: ../src/iop/rotatepixels.c:382 msgid "" "automatic pixel rotation\n" "only works for the sensors that need it." @@ -19017,11 +19690,11 @@ msgid "scale pixels" msgstr "mudar escala de pixels" -#: ../src/iop/scalepixels.c:271 +#: ../src/iop/scalepixels.c:281 msgid "automatic pixel scaling" msgstr "escala automática de pixels" -#: ../src/iop/scalepixels.c:272 +#: ../src/iop/scalepixels.c:282 msgid "" "automatic pixel scaling\n" "only works for the sensors that need it." @@ -19029,11 +19702,11 @@ "ajusta a escala automática de pixel\n" "só funciona para sensores que precisam disto." -#: ../src/iop/shadhi.c:175 +#: ../src/iop/shadhi.c:120 msgid "shadows and highlights" msgstr "sombras e realces" -#: ../src/iop/shadhi.c:195 +#: ../src/iop/shadhi.c:142 msgid "" "modify the tonal range of the shadows and highlights\n" "of an image by enhancing local contrast." @@ -19041,27 +19714,27 @@ "modifica a faixa tonal das sombras e realces de uma imagem através de " "melhoria do contraste local." -#: ../src/iop/shadhi.c:676 ../src/iop/splittoning.c:548 +#: ../src/iop/shadhi.c:711 ../src/iop/splittoning.c:544 msgid "compress" msgstr "comprimir" -#: ../src/iop/shadhi.c:683 +#: ../src/iop/shadhi.c:718 msgid "correct shadows" msgstr "corrige as sombras" -#: ../src/iop/shadhi.c:684 +#: ../src/iop/shadhi.c:719 msgid "correct highlights" msgstr "corrige os realces" -#: ../src/iop/shadhi.c:685 +#: ../src/iop/shadhi.c:720 msgid "shift white point" msgstr "desloca o ponto de branco" -#: ../src/iop/shadhi.c:687 +#: ../src/iop/shadhi.c:722 msgid "filter to use for softening. bilateral avoids halos" msgstr "filtro usado para suavizar. bilateral evita auréolas" -#: ../src/iop/shadhi.c:688 +#: ../src/iop/shadhi.c:723 msgid "" "compress the effect on shadows/highlights and\n" "preserve mid-tones" @@ -19069,11 +19742,11 @@ "comprime o efeito em sombras/realces e\n" "preserva tons médios" -#: ../src/iop/shadhi.c:689 +#: ../src/iop/shadhi.c:724 msgid "adjust saturation of shadows" msgstr "ajusta a saturação das sombras" -#: ../src/iop/shadhi.c:690 +#: ../src/iop/shadhi.c:725 msgid "adjust saturation of highlights" msgstr "ajusta a saturação dos realces" @@ -19082,47 +19755,47 @@ msgid "sharpen" msgstr "melhorar nitidez" -#: ../src/iop/sharpen.c:93 +#: ../src/iop/sharpen.c:95 msgid "sharpen the details in the image using a standard UnSharp Mask (USM)" msgstr "" "melhora a nitidez nos detalhes da imagem usando uma\n" "máscara padrão (UnSharp Mask, USM)" -#: ../src/iop/sharpen.c:95 +#: ../src/iop/sharpen.c:97 msgid "linear or non-linear, Lab, display or scene-referred" msgstr "linear ou não-linear, Lab, relativo à exibição ou à cena" -#: ../src/iop/sharpen.c:97 +#: ../src/iop/sharpen.c:99 msgid "quasi-linear, Lab, display or scene-referred" msgstr "quase-linear, Lab, relativo à exibição ou à cena" #. add the preset. #. restrict to raw images -#: ../src/iop/sharpen.c:104 ../src/iop/sharpen.c:108 +#: ../src/iop/sharpen.c:106 ../src/iop/sharpen.c:110 msgid "sharpen" msgstr "melhorar nitidez" -#: ../src/iop/sharpen.c:443 +#: ../src/iop/sharpen.c:438 msgid "spatial extent of the unblurring" msgstr "extensão espacial da melhoria de nitidez" -#: ../src/iop/sharpen.c:447 +#: ../src/iop/sharpen.c:442 msgid "strength of the sharpen" msgstr "intensidade da melhoria de nitidez" -#: ../src/iop/sharpen.c:451 +#: ../src/iop/sharpen.c:446 msgid "threshold to activate sharpen" msgstr "limite para ativar melhoria de nitidez" -#: ../src/iop/sigmoid.c:89 +#: ../src/iop/sigmoid.c:195 msgid "sigmoid" msgstr "sigmóide" -#: ../src/iop/sigmoid.c:94 +#: ../src/iop/sigmoid.c:200 msgid "tone mapping|view transform|display transform" msgstr "mapeamento de tons|transformação de visão|transformação de exibição" -#: ../src/iop/sigmoid.c:99 +#: ../src/iop/sigmoid.c:206 msgid "" "apply a view transform to make a image displayable\n" "on a screen or print. uses a robust and smooth\n" @@ -19132,19 +19805,19 @@ "em uma tela ou impressão. Usa uma curva de tons robusta e suave\n" "com métodos opcionais de preservação de cor." -#: ../src/iop/sigmoid.c:155 +#: ../src/iop/sigmoid.c:258 msgid "neutral gray" msgstr "cinza neutro" -#: ../src/iop/sigmoid.c:160 +#: ../src/iop/sigmoid.c:264 msgid "ACES 100-nit like" msgstr "similar a ACES 100-nit" -#: ../src/iop/sigmoid.c:165 +#: ../src/iop/sigmoid.c:270 msgid "Reinhard" msgstr "Reinhard" -#: ../src/iop/sigmoid.c:683 +#: ../src/iop/sigmoid.c:917 msgid "" "compression of the applied curve\n" "implicitly defines the supported input dynamic range" @@ -19152,7 +19825,7 @@ "compressão da curva aplicada\n" "implicitamente define a faixa dinâmica suportada na entrada" -#: ../src/iop/sigmoid.c:686 +#: ../src/iop/sigmoid.c:920 msgid "" "shift the compression towards shadows or highlights.\n" "negative values increase contrast in shadows.\n" @@ -19164,7 +19837,7 @@ "valores positivos aumentam contraste nos realces.\n" "o lado oposto verá uma redução no contraste." -#: ../src/iop/sigmoid.c:695 +#: ../src/iop/sigmoid.c:929 msgid "" "optional correction of the hue twist introduced by\n" "the per-channel processing method." @@ -19172,15 +19845,55 @@ "correção opcional do desvio de matiz introduzido pelo\n" "método de processamento por canal." -#: ../src/iop/sigmoid.c:702 +#: ../src/iop/sigmoid.c:936 ../src/iop/sigmoid.c:940 +msgid "primaries" +msgstr "primárias" + +#: ../src/iop/sigmoid.c:937 +msgid "set custom primaries" +msgstr "define primárias customizadas" + +#: ../src/iop/sigmoid.c:943 +msgid "primaries to use as the base for below adjustments" +msgstr "primárias para usar como base para os ajustes abaixo" + +#: ../src/iop/sigmoid.c:962 +msgid "attenuate the purity of the red primary" +msgstr "atenuar a pureza do vermelho primário" + +#: ../src/iop/sigmoid.c:963 +msgid "rotate the red primary" +msgstr "rotacionar o vermelho primário" + +#: ../src/iop/sigmoid.c:964 +msgid "attenuate the purity of the green primary" +msgstr "atenuar a pureza do verde primário" + +#: ../src/iop/sigmoid.c:965 +msgid "rotate the green primary" +msgstr "rotacionar o verde primário" + +#: ../src/iop/sigmoid.c:966 +msgid "attenuate the purity of the blue primary" +msgstr "atenuar a pureza do azul primário" + +#: ../src/iop/sigmoid.c:967 +msgid "rotate the blue primary" +msgstr "rotacionar o azul primário" + +#: ../src/iop/sigmoid.c:974 +msgid "recover some of the original purity after the inset" +msgstr "recuperar um pouco da pureza original depois da sobreposição" + +#: ../src/iop/sigmoid.c:978 msgid "display luminance" msgstr "isolar luminância de exibição" -#: ../src/iop/sigmoid.c:706 +#: ../src/iop/sigmoid.c:979 msgid "set display black/white targets" msgstr "determina alvos de preto/branco para o display" -#: ../src/iop/sigmoid.c:714 +#: ../src/iop/sigmoid.c:987 msgid "" "the black luminance of the target display or print.\n" "can be used creatively for a faded look." @@ -19188,7 +19901,7 @@ "a luminância de preto na exibição ou impressão alvo.\n" "pode ser usado criativamente para um visual apagado." -#: ../src/iop/sigmoid.c:719 +#: ../src/iop/sigmoid.c:992 msgid "" "the white luminance of the target display or print.\n" "can be used creatively for a faded look or blowing out whites earlier." @@ -19201,23 +19914,23 @@ msgid "soften" msgstr "suavização" -#: ../src/iop/soften.c:100 +#: ../src/iop/soften.c:102 msgid "create a softened image using the Orton effect" msgstr "cria uma imagem suavizada usando o efeito Orton." -#: ../src/iop/soften.c:371 +#: ../src/iop/soften.c:366 msgid "the size of blur" msgstr "o tamanho do desfoque" -#: ../src/iop/soften.c:375 +#: ../src/iop/soften.c:370 msgid "the saturation of blur" msgstr "a saturação do desfoque" -#: ../src/iop/soften.c:379 +#: ../src/iop/soften.c:374 msgid "the brightness of blur" msgstr "o brilho do desfoque" -#: ../src/iop/soften.c:383 +#: ../src/iop/soften.c:378 msgid "the mix of effect" msgstr "a mistura do efeito" @@ -19225,7 +19938,7 @@ msgid "split-toning" msgstr "divisão de tons" -#: ../src/iop/splittoning.c:101 +#: ../src/iop/splittoning.c:103 msgid "" "use two specific colors for shadows and highlights and\n" "create a linear toning effect between them up to a pivot." @@ -19233,49 +19946,49 @@ "usa duas cores específicas para sombras e realces e\n" "cria um efeito tonalizante linear entre elas e um pivô." -#: ../src/iop/splittoning.c:118 +#: ../src/iop/splittoning.c:120 msgid "authentic sepia" msgstr "sépia autêntico" -#: ../src/iop/splittoning.c:127 +#: ../src/iop/splittoning.c:129 msgid "authentic cyanotype" msgstr "cianótipo autêntico" -#: ../src/iop/splittoning.c:136 +#: ../src/iop/splittoning.c:138 msgid "authentic platinotype" msgstr "platinotipia autêntico" -#: ../src/iop/splittoning.c:145 +#: ../src/iop/splittoning.c:147 msgid "chocolate brown" msgstr "marrom chocolate" -#: ../src/iop/splittoning.c:490 +#: ../src/iop/splittoning.c:486 msgid "select the saturation tone" msgstr "seleciona o tom de saturação" -#: ../src/iop/splittoning.c:494 +#: ../src/iop/splittoning.c:490 msgid "select tone color" msgstr "seleciona o tom de cor" -#: ../src/iop/splittoning.c:524 +#: ../src/iop/splittoning.c:520 msgctxt "section" msgid "shadows" msgstr "sombras" -#: ../src/iop/splittoning.c:530 +#: ../src/iop/splittoning.c:526 msgctxt "section" msgid "highlights" msgstr "realces" -#: ../src/iop/splittoning.c:539 +#: ../src/iop/splittoning.c:535 msgid "balance" msgstr "balanço" -#: ../src/iop/splittoning.c:546 +#: ../src/iop/splittoning.c:542 msgid "the balance of center of split-toning" msgstr "o balanço do centro da divisão de tons" -#: ../src/iop/splittoning.c:550 +#: ../src/iop/splittoning.c:546 msgid "" "compress the effect on highlights/shadows and\n" "preserve mid-tones" @@ -19299,17 +20012,17 @@ msgid "geometric, raw" msgstr "geométrico, raw" -#: ../src/iop/spots.c:226 +#: ../src/iop/spots.c:238 msgid "spot module is limited to 64 shapes. please add a new instance!" msgstr "" "o módulo de eliminação de manchas é limitado a 64 formas. por favor, " "adicione uma nova instância!" -#: ../src/iop/spots.c:872 +#: ../src/iop/spots.c:874 msgid "number of strokes:" msgstr "número de traços:" -#: ../src/iop/spots.c:876 +#: ../src/iop/spots.c:878 msgid "" "click on a shape and drag on canvas.\n" "use the mouse wheel to adjust size.\n" @@ -19319,130 +20032,118 @@ "use a roda do mouse para ajustar o tamanho.\n" "clique-direito para remover a forma." -#: ../src/iop/spots.c:879 +#: ../src/iop/spots.c:881 msgid "show and edit shapes" msgstr "mostrar e editar formas" -#: ../src/iop/temperature.c:204 +#: ../src/iop/temperature.c:212 msgctxt "modulename" msgid "white balance" msgstr "balanço de branco" -#: ../src/iop/temperature.c:211 +#: ../src/iop/temperature.c:219 msgid "scale raw RGB channels to balance white and help demosaicing" msgstr "" "escalona os canais de RGB raw para balancear o branco\n" "e ajudar na interpolação cromática" -#: ../src/iop/temperature.c:1149 -msgid "white balance applied twice" -msgstr "balanço de branco aplicado duas vezes" - -#: ../src/iop/temperature.c:1150 -msgid "" -"the color calibration module is enabled,\n" -"and performing chromatic adaptation.\n" -"set the white balance here to camera reference (D65)\n" -"or disable chromatic adaptation in color calibration." -msgstr "" -"o módulo de calibração de cor está ativado,\n" -"e realizando adaptação cromática.\n" -"defina o balanço de branco aqui para a referência da câmera (D65)\n" -"ou desabilite a adaptação cromática na calibração de cor." - -#: ../src/iop/temperature.c:1430 +#: ../src/iop/temperature.c:1388 #, c-format msgid "`%s' color matrix not found for image" msgstr "matriz de cores `%s' não encontrada para imagem" -#: ../src/iop/temperature.c:1459 +#: ../src/iop/temperature.c:1418 #, c-format msgid "failed to read camera white balance information from `%s'!" msgstr "falha ao ler informação de balanço de branco de `%s' da câmera!" -#: ../src/iop/temperature.c:1631 +#: ../src/iop/temperature.c:1612 msgctxt "white balance" msgid "as shot" msgstr "como ao tirar a foto" #. old "spot", reason: describes exactly what'll happen -#: ../src/iop/temperature.c:1634 +#: ../src/iop/temperature.c:1615 msgctxt "white balance" msgid "from image area" msgstr "de área na imagem" -#: ../src/iop/temperature.c:1635 +#: ../src/iop/temperature.c:1616 msgctxt "white balance" msgid "user modified" msgstr "modificado pelo usuário" #. old "camera neutral", reason: better matches intent -#: ../src/iop/temperature.c:1637 +#: ../src/iop/temperature.c:1618 msgctxt "white balance" msgid "camera reference" msgstr "referência da câmera" -#: ../src/iop/temperature.c:1920 ../src/iop/temperature.c:1938 +#: ../src/iop/temperature.c:1897 ../src/iop/temperature.c:1915 msgid "green channel coefficient" msgstr "coeficiente para canal verde" -#: ../src/iop/temperature.c:1922 +#: ../src/iop/temperature.c:1899 msgid "magenta channel coefficient" msgstr "coeficiente para canal magenta" -#: ../src/iop/temperature.c:1924 +#: ../src/iop/temperature.c:1901 msgid "cyan channel coefficient" msgstr "coeficiente para canal ciano" -#: ../src/iop/temperature.c:1926 +#: ../src/iop/temperature.c:1903 msgid "yellow channel coefficient" msgstr "coeficiente para canal amarelo" -#: ../src/iop/temperature.c:1936 +#: ../src/iop/temperature.c:1913 msgid "red channel coefficient" msgstr "coeficiente para canal vermelho" -#: ../src/iop/temperature.c:1940 +#: ../src/iop/temperature.c:1917 msgid "blue channel coefficient" msgstr "coeficiente para canal azul" -#: ../src/iop/temperature.c:1942 +#: ../src/iop/temperature.c:1918 +msgid "emerald" +msgstr "esmeralda" + +#: ../src/iop/temperature.c:1919 msgid "emerald channel coefficient" msgstr "coeficiente para canal esmeralda" #. relabel to settings to remove confusion between module presets #. and white balance settings -#: ../src/iop/temperature.c:2029 ../src/iop/temperature.c:2042 -#: ../src/iop/temperature.c:2049 ../src/iop/temperature.c:2055 -#: ../src/iop/temperature.c:2074 +#: ../src/iop/temperature.c:1997 ../src/iop/temperature.c:2010 +#: ../src/iop/temperature.c:2017 ../src/iop/temperature.c:2023 +#: ../src/iop/temperature.c:2042 msgid "settings" msgstr "configurações" -#: ../src/iop/temperature.c:2029 +#: ../src/iop/temperature.c:1997 msgid "as shot" msgstr "como ao tirar a foto" -#: ../src/iop/temperature.c:2032 +#: ../src/iop/temperature.c:2000 msgid "set white balance to as shot" msgstr "define balanço de branco para como ao tirar a foto" -#: ../src/iop/temperature.c:2042 +#: ../src/iop/temperature.c:2010 msgid "from image area" msgstr "de área na imagem" -#: ../src/iop/temperature.c:2049 +#: ../src/iop/temperature.c:2017 msgid "user modified" msgstr "modificado pelo usuário" -#: ../src/iop/temperature.c:2052 +#: ../src/iop/temperature.c:2020 msgid "set white balance to user modified" msgstr "define balanço de branco para modificado pelo usuário" -#: ../src/iop/temperature.c:2055 +#: ../src/iop/temperature.c:2023 msgid "camera reference" msgstr "referência da câmera" -#: ../src/iop/temperature.c:2060 +#: ../src/iop/temperature.c:2028 msgid "" "set white balance to camera reference point\n" "in most cases it should be D65" @@ -19450,57 +20151,61 @@ "define balanço de branco para ponto de referência da câmera\n" "na maioria dos casos deveria ser D65" -#: ../src/iop/temperature.c:2075 +#: ../src/iop/temperature.c:2043 msgid "choose white balance setting" msgstr "seleciona configuração de balanço de branco" -#: ../src/iop/temperature.c:2080 +#: ../src/iop/temperature.c:2048 msgid "finetune" msgstr "ajuste fino" -#: ../src/iop/temperature.c:2082 +#: ../src/iop/temperature.c:2050 msgid "fine tune camera's white balance setting" msgstr "ajuste fino do balanço de branco da câmera" -#: ../src/iop/temperature.c:2093 +#: ../src/iop/temperature.c:2058 msgctxt "section" msgid "scene illuminant temp" msgstr "temperatura do iluminante da cena" -#: ../src/iop/temperature.c:2094 +#: ../src/iop/temperature.c:2059 msgid "click to cycle color mode on sliders" msgstr "clique para alternar o modo de cor nos deslizadores" -#: ../src/iop/temperature.c:2108 +#: ../src/iop/temperature.c:2073 msgid "color temperature (in Kelvin)" msgstr "temperatura da cor (em Kelvin)" -#: ../src/iop/temperature.c:2114 +#: ../src/iop/temperature.c:2079 msgid "tint" msgstr "tonalidade" -#: ../src/iop/temperature.c:2117 +#: ../src/iop/temperature.c:2082 msgid "color tint of the image, from magenta (value < 1) to green (value > 1)" msgstr "" "tonalidade de cor da imagem, de magenta (valor < 1) à verde (valor > 1)" -#: ../src/iop/temperature.c:2123 +#: ../src/iop/temperature.c:2088 msgid "channel coefficients" msgstr "coeficientes de canais" -#: ../src/iop/temperature.c:2158 +#: ../src/iop/temperature.c:2097 +msgid "various" +msgstr "vários" + +#: ../src/iop/temperature.c:2123 msgid "white balance disabled for camera" msgstr "balanço de branco desabilitado para câmera" -#: ../src/iop/tonecurve.c:190 +#: ../src/iop/tonecurve.c:161 msgid "tone curve" msgstr "curva de tons" -#: ../src/iop/tonecurve.c:210 +#: ../src/iop/tonecurve.c:183 msgid "alter an image’s tones using curves" msgstr "altera os tons de uma imagem usando curvas" -#: ../src/iop/tonecurve.c:1125 +#: ../src/iop/tonecurve.c:1147 msgid "" "if set to auto, a and b curves have no effect and are not displayed. chroma " "values (a and b) of each pixel are then adjusted based on L curve data. auto " @@ -19511,120 +20216,112 @@ "dados da curva L. auto XYZ é similar mas se aplica a mudanças de saturação " "no espaço XYZ." -#: ../src/iop/tonecurve.c:1134 +#: ../src/iop/tonecurve.c:1156 msgid "tonecurve for L channel" msgstr "curva de tons para canal L" -#: ../src/iop/tonecurve.c:1135 +#: ../src/iop/tonecurve.c:1157 msgid "tonecurve for a channel" msgstr "curva de tons para canal a" -#: ../src/iop/tonecurve.c:1136 +#: ../src/iop/tonecurve.c:1158 msgid "tonecurve for b channel" msgstr "curva de tons para canal b" -#: ../src/iop/tonecurve.c:1143 ../src/iop/watermark.c:1305 -#: ../src/libs/colorpicker.c:597 +#: ../src/iop/tonecurve.c:1165 ../src/iop/watermark.c:1353 +#: ../src/libs/colorpicker.c:675 msgid "pick color" msgstr "seleciona cor" -#: ../src/iop/toneequal.c:311 +#: ../src/iop/toneequal.c:319 msgid "tone equalizer" msgstr "equalizador de tons" -#: ../src/iop/toneequal.c:316 +#: ../src/iop/toneequal.c:324 msgid "tone curve|tone mapping|relight|background light|shadows highlights" msgstr "" "curva de tons|mapeamento de tons|reiluminação|luz de fundo|sombras realces" -#: ../src/iop/toneequal.c:323 +#: ../src/iop/toneequal.c:331 msgid "relight the scene as if the lighting was done directly on the scene" msgstr "" "reilumina a imagem como se a iluminação fosse feita diretamente na cena" -#: ../src/iop/toneequal.c:326 +#: ../src/iop/toneequal.c:334 msgid "quasi-linear, RGB" msgstr "quase-linear, RGB" -#: ../src/iop/toneequal.c:327 +#: ../src/iop/toneequal.c:335 msgid "quasi-linear, RGB, scene-referred" msgstr "quase-linear, RGB, relativo à cena" -#: ../src/iop/toneequal.c:458 +#: ../src/iop/toneequal.c:489 msgid "simple tone curve" msgstr "curva de tons simples" -#: ../src/iop/toneequal.c:472 +#: ../src/iop/toneequal.c:503 msgid "mask blending: all purposes" msgstr "mesclagem de máscara: propósito geral" -#: ../src/iop/toneequal.c:479 +#: ../src/iop/toneequal.c:510 msgid "mask blending: people with backlight" msgstr "mesclagem de máscara: pessoas com luz de fundo" -#: ../src/iop/toneequal.c:496 +#: ../src/iop/toneequal.c:527 msgid "compress shadows/highlights (EIGF): strong" msgstr "comprimir sombras/realces (EIGF): forte" -#: ../src/iop/toneequal.c:501 +#: ../src/iop/toneequal.c:532 msgid "compress shadows/highlights (GF): strong" msgstr "comprimir sombras/realces (GF): forte" -#: ../src/iop/toneequal.c:510 +#: ../src/iop/toneequal.c:541 msgid "compress shadows/highlights (EIGF): medium" msgstr "comprimir sombras/realces (EIGF): médio" -#: ../src/iop/toneequal.c:515 +#: ../src/iop/toneequal.c:546 msgid "compress shadows/highlights (GF): medium" msgstr "comprimir sombras/realces (GF): médio" -#: ../src/iop/toneequal.c:524 +#: ../src/iop/toneequal.c:555 msgid "compress shadows/highlights (EIGF): soft" msgstr "comprimir sombras/realces (EIGF): suave" -#: ../src/iop/toneequal.c:529 +#: ../src/iop/toneequal.c:560 msgid "compress shadows/highlights (GF): soft" msgstr "comprimir sombras/realces (GF): suave" -#: ../src/iop/toneequal.c:537 +#: ../src/iop/toneequal.c:568 msgid "contrast tone curve: soft" msgstr "curva de tons de contraste: suave" -#: ../src/iop/toneequal.c:542 +#: ../src/iop/toneequal.c:573 msgid "contrast tone curve: medium" msgstr "curva de tons de contraste: médio" -#: ../src/iop/toneequal.c:547 +#: ../src/iop/toneequal.c:578 msgid "contrast tone curve: strong" msgstr "curva de tons de contraste: forte" -#: ../src/iop/toneequal.c:570 +#: ../src/iop/toneequal.c:601 msgid "relight: fill-in" msgstr "reiluminação: preenchimento" -#: ../src/iop/toneequal.c:627 -msgid "" -"tone equalizer needs to be after distortion modules in the pipeline – " -"disabled" -msgstr "" -"o equalizador de tons precisa estar depois dos módulos de distorção na " -"pipeline - desativado" - -#: ../src/iop/toneequal.c:1091 +#: ../src/iop/toneequal.c:1120 msgid "tone equalizer failed to allocate memory, check your RAM settings" msgstr "" "o equalizador de tons não conseguiu alocar memória, verifique sua " "configuração de RAM" -#: ../src/iop/toneequal.c:1795 ../src/iop/toneequal.c:2180 +#: ../src/iop/toneequal.c:1825 ../src/iop/toneequal.c:2196 msgid "the interpolation is unstable, decrease the curve smoothing" msgstr "a interpolação está instável, diminua a suavização da curva" -#: ../src/iop/toneequal.c:1830 ../src/iop/toneequal.c:1897 +#: ../src/iop/toneequal.c:1860 ../src/iop/toneequal.c:1927 msgid "wait for the preview to finish recomputing" msgstr "aguardar a pré-visualização para terminar de recomputar" -#: ../src/iop/toneequal.c:2037 ../src/iop/toneequal.c:2587 +#: ../src/iop/toneequal.c:2069 ../src/iop/toneequal.c:2628 msgid "" "scroll over image to change tone exposure\n" "shift+scroll for large steps; ctrl+scroll for small steps" @@ -19633,89 +20330,89 @@ "shift+scroll para mudar em passos largos; ctrl+scroll para mudar em passos " "curtos" -#: ../src/iop/toneequal.c:2185 +#: ../src/iop/toneequal.c:2201 msgid "some parameters are out-of-bounds" msgstr "alguns parâmetros estão fora dos limites" -#: ../src/iop/toneequal.c:2524 +#: ../src/iop/toneequal.c:2518 #, c-format msgid "%+.1f EV" msgstr "%+.1f EV" -#: ../src/iop/toneequal.c:3236 +#: ../src/iop/toneequal.c:3283 #, c-format msgid "[%s over image] change tone exposure" msgstr "[%s sobre a imagem] mudar exposição do tom" -#: ../src/iop/toneequal.c:3239 +#: ../src/iop/toneequal.c:3286 #, c-format msgid "[%s over image] change tone exposure in large steps" msgstr "[%s sobre a imagem] mudar exposição do tom em passos largos" -#: ../src/iop/toneequal.c:3242 +#: ../src/iop/toneequal.c:3289 #, c-format msgid "[%s over image] change tone exposure in small steps" msgstr "[%s sobre a imagem] mudar exposição do tom em passos curtos" #. Simple view -#: ../src/iop/toneequal.c:3323 ../src/iop/toneequal.c:3352 -#: ../src/iop/toneequal.c:3353 ../src/iop/toneequal.c:3354 -#: ../src/iop/toneequal.c:3355 ../src/iop/toneequal.c:3356 -#: ../src/iop/toneequal.c:3357 ../src/iop/toneequal.c:3358 -#: ../src/iop/toneequal.c:3359 ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3376 ../src/iop/toneequal.c:3405 +#: ../src/iop/toneequal.c:3406 ../src/iop/toneequal.c:3407 +#: ../src/iop/toneequal.c:3408 ../src/iop/toneequal.c:3409 +#: ../src/iop/toneequal.c:3410 ../src/iop/toneequal.c:3411 +#: ../src/iop/toneequal.c:3412 ../src/iop/toneequal.c:3413 msgid "simple" msgstr "simples" -#: ../src/iop/toneequal.c:3352 +#: ../src/iop/toneequal.c:3405 msgid "-8 EV" msgstr "-8 EV" -#: ../src/iop/toneequal.c:3353 +#: ../src/iop/toneequal.c:3406 msgid "-7 EV" msgstr "-7 EV" -#: ../src/iop/toneequal.c:3354 +#: ../src/iop/toneequal.c:3407 msgid "-6 EV" msgstr "-6 EV" -#: ../src/iop/toneequal.c:3355 +#: ../src/iop/toneequal.c:3408 msgid "-5 EV" msgstr "-5 EV" -#: ../src/iop/toneequal.c:3356 +#: ../src/iop/toneequal.c:3409 msgid "-4 EV" msgstr "-4 EV" -#: ../src/iop/toneequal.c:3357 +#: ../src/iop/toneequal.c:3410 msgid "-3 EV" msgstr "-3 EV" -#: ../src/iop/toneequal.c:3358 +#: ../src/iop/toneequal.c:3411 msgid "-2 EV" msgstr "-2 EV" -#: ../src/iop/toneequal.c:3359 +#: ../src/iop/toneequal.c:3412 msgid "-1 EV" msgstr "-1 EV" -#: ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3413 msgid "+0 EV" msgstr "+0 EV" #. Advanced view -#: ../src/iop/toneequal.c:3364 +#: ../src/iop/toneequal.c:3417 msgid "advanced" msgstr "avançado" -#: ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3444 msgid "double-click to reset the curve" msgstr "clique-duplo para redefinir curva" -#: ../src/iop/toneequal.c:3395 +#: ../src/iop/toneequal.c:3448 msgid "curve smoothing" msgstr "suavização de curva" -#: ../src/iop/toneequal.c:3398 +#: ../src/iop/toneequal.c:3451 msgid "" "positive values will produce more progressive tone transitions\n" "but the curve might become oscillatory in some settings.\n" @@ -19728,11 +20425,11 @@ "mas podem produzir transições de tons brutais e danificar o contraste local." #. Masking options -#: ../src/iop/toneequal.c:3408 +#: ../src/iop/toneequal.c:3461 msgid "masking" msgstr "máscara" -#: ../src/iop/toneequal.c:3413 +#: ../src/iop/toneequal.c:3466 msgid "" "preview the mask and chose the estimator that gives you the\n" "higher contrast between areas to dodge and areas to burn" @@ -19740,15 +20437,15 @@ "pré-visualiza a máscara e escolhe o estimador que te dá o\n" "maior contraste entre áreas a aclarar e áreas a escurecer" -#: ../src/iop/toneequal.c:3416 +#: ../src/iop/toneequal.c:3469 msgid "details" msgstr "detalhes" -#: ../src/iop/toneequal.c:3417 +#: ../src/iop/toneequal.c:3470 msgid "preserve details" msgstr "preservar detalhes" -#: ../src/iop/toneequal.c:3420 +#: ../src/iop/toneequal.c:3473 msgid "" "'no' affects global and local contrast (safe if you only add contrast)\n" "'guided filter' only affects global contrast and tries to preserve local " @@ -19772,7 +20469,7 @@ "contrário do filtro guiado que suaviza menos os realces)\n" "'EIGF por média' é uma média geométrica dos métodos 'não' e 'EIGF'" -#: ../src/iop/toneequal.c:3433 +#: ../src/iop/toneequal.c:3486 msgid "" "number of passes of guided filter to apply\n" "helps diffusing the edges of the filter at the expense of speed" @@ -19780,7 +20477,7 @@ "número de passos do filtro guiado a aplicar\n" "ajuda a dispersão das bordas do filtro, mas é lento" -#: ../src/iop/toneequal.c:3441 +#: ../src/iop/toneequal.c:3494 msgid "" "diameter of the blur in percent of the largest image size\n" "warning: big values of this parameter can make the darkroom\n" @@ -19790,7 +20487,7 @@ "atenção: valores altos deste parâmetro podem fazer a pré-visualização\n" "da sala escura muito mais lenta se o módulo de redução de ruído for usado." -#: ../src/iop/toneequal.c:3449 +#: ../src/iop/toneequal.c:3502 msgid "" "precision of the feathering:\n" "higher values force the mask to follow edges more closely\n" @@ -19804,12 +20501,12 @@ "valores baixos dão gradientes mais suaves e melhor suavização\n" "mas podem levar a arestas imprecisas e halos" -#: ../src/iop/toneequal.c:3456 +#: ../src/iop/toneequal.c:3509 msgctxt "section" msgid "mask post-processing" msgstr "pós-processamento da máscara" -#: ../src/iop/toneequal.c:3467 +#: ../src/iop/toneequal.c:3520 msgid "" "mask histogram span between the first and last deciles.\n" "the central line shows the average. orange bars appear at extrema if " @@ -19819,7 +20516,7 @@ "a linha central mostra a média. as barras laranja aparecem nos extremos se " "houver corte." -#: ../src/iop/toneequal.c:3475 +#: ../src/iop/toneequal.c:3528 msgid "" "0 disables the quantization.\n" "higher values posterize the luminance mask to help the guiding\n" @@ -19830,7 +20527,7 @@ "para produzir áreas mais suaves quando valores altos de enevoamento são " "usados" -#: ../src/iop/toneequal.c:3484 +#: ../src/iop/toneequal.c:3537 msgid "" "use this to slide the mask average exposure along channels\n" "for a better control of the exposure correction with the available nodes.\n" @@ -19840,7 +20537,7 @@ "para melhor controle da correção de exposição com os nós disponíveis.\n" "o seletor ajustará automaticamente a exposição média" -#: ../src/iop/toneequal.c:3497 +#: ../src/iop/toneequal.c:3550 msgid "" "use this to counter the averaging effect of the guided filter\n" "and dilate the mask contrast around -4EV\n" @@ -19854,7 +20551,7 @@ "para um controle melhor da correção de exposição.\n" "a varinha mágica auto-ajustará o contraste" -#: ../src/iop/toneequal.c:3520 ../src/iop/toneequal.c:3523 +#: ../src/iop/toneequal.c:3573 ../src/iop/toneequal.c:3576 msgid "display exposure mask" msgstr "mostrar máscara de exposição" @@ -19870,21 +20567,21 @@ "este módulo está obsoleto. use o módulo de contraste local ou o de " "equalização de tons em seu lugar." -#: ../src/iop/velvia.c:79 +#: ../src/iop/velvia.c:70 msgid "velvia" msgstr "vélvia" -#: ../src/iop/velvia.c:104 +#: ../src/iop/velvia.c:97 msgid "" "resaturate giving more weight to blacks, whites and low-saturation pixels" msgstr "" "restaura dando mais peso aos pretos, brancos e pixels de baixa saturação" -#: ../src/iop/velvia.c:281 +#: ../src/iop/velvia.c:290 msgid "the strength of saturation boost" msgstr "a força do aumento de saturação" -#: ../src/iop/velvia.c:284 +#: ../src/iop/velvia.c:293 msgid "how much to spare highlights and shadows" msgstr "quanto para resguardar realces e sombras" @@ -19896,7 +20593,7 @@ "este módulo está obsoleto. use o controle de vivacidade no módulo balanço de " "cor rgb em seu lugar." -#: ../src/iop/vibrance.c:93 +#: ../src/iop/vibrance.c:95 msgid "" "saturate and reduce the lightness of the most saturated pixels\n" "to make the colors more vivid." @@ -19904,56 +20601,52 @@ "satura e reduz a luminosidade da maioria dos pixels saturados para tornar as " "cores mais vívidas." -#: ../src/iop/vibrance.c:217 +#: ../src/iop/vibrance.c:211 msgid "the amount of vibrance" msgstr "quantidade de vivacidade" -#: ../src/iop/vignette.c:153 -msgid "vignetting" -msgstr "vinheta" - -#: ../src/iop/vignette.c:158 +#: ../src/iop/vignette.c:119 msgid "simulate a lens fall-off close to edges" msgstr "simula um suave escurecimento perto das bordas da lente" -#: ../src/iop/vignette.c:940 +#: ../src/iop/vignette.c:1022 msgid "lomo" msgstr "lomo" -#: ../src/iop/vignette.c:974 +#: ../src/iop/vignette.c:1061 msgctxt "section" msgid "position / form" msgstr "posição / forma" -#: ../src/iop/vignette.c:981 +#: ../src/iop/vignette.c:1069 msgid "dithering" msgstr "matização" -#: ../src/iop/vignette.c:992 +#: ../src/iop/vignette.c:1081 msgid "the radii scale of vignette for start of fall-off" msgstr "a escala dos raios de vinheta para começar a decair" -#: ../src/iop/vignette.c:993 +#: ../src/iop/vignette.c:1083 msgid "the radii scale of vignette for end of fall-off" msgstr "a escala dos raios de vinheta para terminar de decair" -#: ../src/iop/vignette.c:994 +#: ../src/iop/vignette.c:1084 msgid "strength of effect on brightness" msgstr "força do efeito no brilho" -#: ../src/iop/vignette.c:995 +#: ../src/iop/vignette.c:1085 msgid "strength of effect on saturation" msgstr "força do efeito na saturação" -#: ../src/iop/vignette.c:996 +#: ../src/iop/vignette.c:1086 msgid "horizontal offset of center of the effect" msgstr "deslocamento horizontal do centro do efeito" -#: ../src/iop/vignette.c:997 +#: ../src/iop/vignette.c:1087 msgid "vertical offset of center of the effect" msgstr "deslocamento vertical do centro do efeito" -#: ../src/iop/vignette.c:998 +#: ../src/iop/vignette.c:1090 msgid "" "shape factor\n" "0 produces a rectangle\n" @@ -19965,56 +20658,56 @@ "1 produz um círculo ou elipse\n" "2 produz um losango" -#: ../src/iop/vignette.c:1000 +#: ../src/iop/vignette.c:1094 msgid "enable to have the ratio automatically follow the image size" msgstr "habilite para proporção seguir automaticamente o tamanho da imagem" -#: ../src/iop/vignette.c:1001 +#: ../src/iop/vignette.c:1095 msgid "width-to-height ratio" msgstr "relação de largura-altura" -#: ../src/iop/vignette.c:1002 +#: ../src/iop/vignette.c:1097 msgid "add some level of random noise to prevent banding" msgstr "adiciona um certo nível de ruído aleatório para prevenir bandas de cor" -#: ../src/iop/vignette.c:1009 +#: ../src/iop/vignette.c:1105 #, c-format msgid "[%s on node] change vignette/feather size" msgstr "[%s no nó] muda vinheta/enevoamento" -#: ../src/iop/vignette.c:1011 +#: ../src/iop/vignette.c:1108 #, c-format msgid "[%s on node] change vignette/feather size keeping ratio" msgstr "[%s no nó] muda vinheta/enevoamento, mantendo aspecto" -#: ../src/iop/vignette.c:1013 +#: ../src/iop/vignette.c:1111 #, c-format msgid "[%s on center] move vignette" msgstr "[%s no centro] mover vinheta" -#: ../src/iop/watermark.c:371 +#: ../src/iop/watermark.c:416 msgid "watermark" msgstr "marca d'água" -#: ../src/iop/watermark.c:376 +#: ../src/iop/watermark.c:421 msgid "overlay an SVG watermark like a signature on the picture" msgstr "sobrepõe uma marca d'água SVG como uma assinatura na imagem" -#: ../src/iop/watermark.c:1258 +#: ../src/iop/watermark.c:1306 msgid "marker" msgstr "marcador" -#: ../src/iop/watermark.c:1261 +#: ../src/iop/watermark.c:1309 #, c-format msgid "SVG watermarks in %s/watermarks or %s/watermarks" msgstr "marcas d'água SVG em %s/watermarks ou %s/watermarks" #. Simple text -#: ../src/iop/watermark.c:1271 ../src/iop/watermark.c:1272 +#: ../src/iop/watermark.c:1319 ../src/iop/watermark.c:1320 msgid "text" msgstr "texto" -#: ../src/iop/watermark.c:1273 +#: ../src/iop/watermark.c:1321 msgid "" "text string, tag:\n" "$(WATERMARK_TEXT)" @@ -20022,16 +20715,16 @@ "texto, etiqueta:\n" "$(WATERMARK_TEXT)" -#: ../src/iop/watermark.c:1275 +#: ../src/iop/watermark.c:1323 msgid "content" msgstr "conteúdo" #. Text font -#: ../src/iop/watermark.c:1280 +#: ../src/iop/watermark.c:1328 msgid "font" msgstr "fonte" -#: ../src/iop/watermark.c:1285 +#: ../src/iop/watermark.c:1333 msgid "" "text font, tags:\n" "$(WATERMARK_FONT_FAMILY)\n" @@ -20043,7 +20736,7 @@ "$(WATERMARK_FONT_STYLE)\n" "$(WATERMARK_FONT_WEIGHT)" -#: ../src/iop/watermark.c:1300 +#: ../src/iop/watermark.c:1348 msgid "" "watermark color, tag:\n" "$(WATERMARK_COLOR)" @@ -20051,58 +20744,62 @@ "cor da marca d'água, etiqueta:\n" "$(WATERMARK_COLOR)" -#: ../src/iop/watermark.c:1302 +#: ../src/iop/watermark.c:1350 msgid "select watermark color" msgstr "seleciona cor da marca d'água" -#: ../src/iop/watermark.c:1304 +#: ../src/iop/watermark.c:1352 msgid "pick color from image" msgstr "seleciona cor a partir da imagem" -#: ../src/iop/watermark.c:1317 +#: ../src/iop/watermark.c:1365 msgctxt "section" msgid "placement" msgstr "posicionamento" -#: ../src/iop/watermark.c:1330 +#: ../src/iop/watermark.c:1378 msgid "" -"scaling is done relative to this object\n" -"• image: fits marker into whole image\n" -"• larger border: fits larger marker border to larger image border\n" -"• smaller border: fits larger marker border to smaller image border\n" -"• height: fits marker height to image height, e.g. suitable for texts\n" -"• advanced options: activates two additional drop-down menus" -msgstr "" -"mudança de escala é feita de maneira relativa a este objeto\n" -"• imagem: encaixa o marcador na imagem inteira\n" -"• maior borda: encaixa a maior borda do marcador na maior borda da imagem\n" -"• border menor: encaixa a menor borda do marcador na menor borda da imagem\n" -"• height: encaixa a algira do marcador na altura da image, i.e., apropriado " -"para textos\n" -"• opções avançadas: ativa dois menus adicionais" - -#: ../src/iop/watermark.c:1339 -msgid "reference to which the marker should be scaled to" -msgstr "referência para a qual o marcador terá sua escala mudada" - -#: ../src/iop/watermark.c:1343 -msgid "length of the marker which is used as scaling reference" -msgstr "comprimento do marcador que será usado como referência de escala" +"choose how to scale the watermark\n" +"• image: scale watermark relative to whole image\n" +"• larger border: scale larger watermark border relative to larger image " +"border\n" +"• smaller border: scale larger watermark border relative to smaller image " +"border\n" +"• height: scale watermark height to image height\n" +"• advanced options: choose watermark and image dimensions independently" +msgstr "" +"escolha como ajustar a escala da marca d'água\n" +"• imagem: encaixa a marca d'água na imagem inteira\n" +"• maior borda: ajusta a maior borda da marca d'água à maior borda da imagem\n" +"• menor borda: ajusta a maior borda da marca d'água à menor borda da imagem\n" +"• altura: ajusta a marca d'água para a altura da imagem\n" +"• opções avançadas: escolher dimensões da marca d'água e da imagem " +"independentemente" + +#: ../src/iop/watermark.c:1387 +msgid "reference image dimension against which to scale the watermark" +msgstr "" +"dimensão da imagem de referência contra a qual a marca d'água terá a escala " +"ajustada" + +#: ../src/iop/watermark.c:1391 +msgid "watermark dimension to scale" +msgstr "dimensão da marca d'água para ajuste de escala" -#: ../src/iop/watermark.c:1347 ../src/libs/print_settings.c:2675 +#: ../src/iop/watermark.c:1395 ../src/libs/print_settings.c:2675 msgid "alignment" msgstr "alinhamento" #. Let's add some tooltips and hook up some signals... -#: ../src/iop/watermark.c:1368 +#: ../src/iop/watermark.c:1416 msgid "the opacity of the watermark" msgstr "a opacidade da marca d'água" -#: ../src/iop/watermark.c:1369 +#: ../src/iop/watermark.c:1417 msgid "the scale of the watermark" msgstr "a escala da marca d'água" -#: ../src/iop/watermark.c:1370 +#: ../src/iop/watermark.c:1418 msgid "the rotation of the watermark" msgstr "a rotação da marca d'água" @@ -20110,7 +20807,7 @@ msgid "zone system" msgstr "sistema de zona" -#: ../src/iop/zonesystem.c:490 +#: ../src/iop/zonesystem.c:486 msgid "" "lightness zones\n" "use mouse scrollwheel to change the number of zones\n" @@ -20152,7 +20849,7 @@ msgid "camera control" msgstr "controle da câmera" -#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2360 +#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2679 msgid "modes" msgstr "modos" @@ -20258,36 +20955,49 @@ msgid "WB" msgstr "balanço de branco" -#: ../src/libs/collect.c:151 +#: ../src/libs/collect.c:164 msgid "collections" msgstr "coleções" -#: ../src/libs/collect.c:407 +#: ../src/libs/collect.c:424 msgid "search filmroll" msgstr "procura rolo de filme" -#: ../src/libs/collect.c:490 +#: ../src/libs/collect.c:507 #, c-format msgid "problem selecting new path for the filmroll in %s" msgstr "problema selecionando novo caminho para o rolo de filme em %s" -#: ../src/libs/collect.c:553 +#: ../src/libs/collect.c:579 msgid "search filmroll..." msgstr "procura rolo de filme..." -#: ../src/libs/collect.c:557 +#: ../src/libs/collect.c:584 msgid "remove..." msgstr "remove..." -#: ../src/libs/collect.c:1225 +#: ../src/libs/collect.c:1310 msgid "uncategorized" msgstr "sem categoria" -#: ../src/libs/collect.c:2138 +#: ../src/libs/collect.c:2172 ../src/libs/filters/rating_range.c:120 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:151 +#: ../src/libs/filters/rating_range.c:302 +msgid "rejected" +msgstr "rejeitadas" + +#: ../src/libs/collect.c:2175 ../src/libs/filters/rating_range.c:122 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:303 +msgid "not rated" +msgstr "não classificado" + +#: ../src/libs/collect.c:2359 msgid "use <, <=, >, >=, <>, =, [;] as operators" msgstr "use <, <=, >, >=, <>, =, [;] como operadores" -#: ../src/libs/collect.c:2142 +#: ../src/libs/collect.c:2363 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "star rating: 0-5\n" @@ -20297,7 +21007,7 @@ "classificação em estrelas: 0-5\n" "imagens rejeitadas: -1" -#: ../src/libs/collect.c:2149 +#: ../src/libs/collect.c:2371 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)" @@ -20305,12 +21015,12 @@ "use <, <=, >, >=, <>, =, [;] como operadores\n" "digite datas no formato : YYYY:MM:DD hh:mm:ss.sss (só o ano é obrigatório)" -#: ../src/libs/collect.c:2156 +#: ../src/libs/collect.c:2378 #, no-c-format msgid "use `%' as wildcard and `,' to separate values" msgstr "use `%' como curinga e `,' para separar valores" -#: ../src/libs/collect.c:2162 +#: ../src/libs/collect.c:2385 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20323,7 +21033,7 @@ "shift+clique para incluir somente a hierarquia corrente (sem sufixo)\n" "ctrl+clique para incluir somente sub-hierarquias (sufixo `|%')" -#: ../src/libs/collect.c:2174 +#: ../src/libs/collect.c:2398 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20336,7 +21046,7 @@ "shift+clique para incluir somente o local atual (sem sufixo)\n" "ctrl+clique para incluir somente sub-locais (sufixo `|%`)" -#: ../src/libs/collect.c:2186 +#: ../src/libs/collect.c:2411 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20349,111 +21059,103 @@ "shift+clique para incluir somente a pasta atual (sem sufixo)\n" "ctrl+clique para incluir somente sub-pastas (sufixo `|%`)" -#: ../src/libs/collect.c:2197 +#: ../src/libs/collect.c:2422 #, no-c-format msgid "use `%' as wildcard" msgstr "use `%' como curinga" -#: ../src/libs/collect.c:2263 ../src/libs/collect.c:2277 -#: ../src/libs/collect.c:2800 +#: ../src/libs/collect.c:2488 ../src/libs/collect.c:2502 +#: ../src/libs/collect.c:3111 msgid "clear this rule" msgstr "limpar esta regra" -#: ../src/libs/collect.c:2267 +#: ../src/libs/collect.c:2492 msgid "clear this rule or add new rules" msgstr "limpar esta regra ou adicionar nova regra" -#: ../src/libs/collect.c:2806 +#: ../src/libs/collect.c:3117 msgid "narrow down search" msgstr "restringir pesquisa" -#: ../src/libs/collect.c:2811 +#: ../src/libs/collect.c:3124 msgid "add more images" msgstr "adicionar mais imagens" -#: ../src/libs/collect.c:2816 +#: ../src/libs/collect.c:3131 msgid "exclude images" msgstr "excluir imagens" -#: ../src/libs/collect.c:2823 +#: ../src/libs/collect.c:3140 msgid "change to: and" msgstr "muda para: and" -#: ../src/libs/collect.c:2828 +#: ../src/libs/collect.c:3147 msgid "change to: or" msgstr "muda para: ou" -#: ../src/libs/collect.c:2833 +#: ../src/libs/collect.c:3154 msgid "change to: except" msgstr "muda para: exceto" #. the different categories -#: ../src/libs/collect.c:2859 ../src/libs/filtering.c:857 -#: ../src/libs/filtering.c:924 ../src/libs/filtering.c:1558 -#: ../src/libs/filtering.c:1890 +#: ../src/libs/collect.c:3184 ../src/libs/filtering.c:883 +#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1620 +#: ../src/libs/filtering.c:1964 msgid "files" msgstr "arquivos" -#: ../src/libs/collect.c:2864 ../src/libs/export_metadata.c:312 -#: ../src/libs/filtering.c:862 ../src/libs/filtering.c:929 -#: ../src/libs/filtering.c:1566 ../src/libs/filtering.c:1894 -#: ../src/libs/image.c:464 ../src/libs/image.c:574 ../src/libs/image.c:582 -#: ../src/libs/metadata.c:678 ../src/libs/metadata_view.c:1226 +#: ../src/libs/collect.c:3189 ../src/libs/export_metadata.c:301 +#: ../src/libs/filtering.c:888 ../src/libs/filtering.c:955 +#: ../src/libs/filtering.c:1628 ../src/libs/filtering.c:1968 +#: ../src/libs/image.c:495 ../src/libs/image.c:633 ../src/libs/image.c:645 +#: ../src/libs/metadata.c:509 ../src/libs/metadata_view.c:1256 msgid "metadata" msgstr "metadados" -#: ../src/libs/collect.c:2883 ../src/libs/filtering.c:883 -#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1892 +#: ../src/libs/collect.c:3208 ../src/libs/filtering.c:909 +#: ../src/libs/filtering.c:976 ../src/libs/filtering.c:1966 msgid "times" msgstr "tempo" -#: ../src/libs/collect.c:2891 ../src/libs/filtering.c:891 -#: ../src/libs/filtering.c:958 ../src/libs/filtering.c:1590 +#: ../src/libs/collect.c:3216 ../src/libs/filtering.c:917 +#: ../src/libs/filtering.c:984 ../src/libs/filtering.c:1652 msgid "capture details" msgstr "detalhes da captura da foto" -#: ../src/libs/collect.c:2900 ../src/libs/filtering.c:900 -#: ../src/libs/filtering.c:967 ../src/libs/filtering.c:1602 -#: ../src/libs/filtering.c:1896 ../src/libs/tools/darktable.c:65 +#: ../src/libs/collect.c:3225 ../src/libs/filtering.c:926 +#: ../src/libs/filtering.c:993 ../src/libs/filtering.c:1664 +#: ../src/libs/filtering.c:1970 ../src/libs/tools/darktable.c:61 msgid "darktable" msgstr "darktable" -#: ../src/libs/collect.c:2913 +#: ../src/libs/collect.c:3240 msgid "collections settings" msgstr "preferências de coleções" -#: ../src/libs/collect.c:2916 ../src/libs/export_metadata.c:288 -#: ../src/libs/metadata.c:634 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:228 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3472 -msgid "save" -msgstr "salvar" - -#: ../src/libs/collect.c:2936 ../src/libs/export.c:1046 -#: ../src/libs/metadata.c:781 ../src/libs/metadata_view.c:1306 -#: ../src/libs/recentcollect.c:293 ../src/libs/tagging.c:3494 +#: ../src/libs/collect.c:3267 ../src/libs/export.c:1126 +#: ../src/libs/metadata.c:615 ../src/libs/metadata_view.c:1339 +#: ../src/libs/recentcollect.c:295 ../src/libs/tagging.c:3526 msgid "preferences..." msgstr "preferências..." -#: ../src/libs/collect.c:3041 ../src/libs/filtering.c:1432 +#: ../src/libs/collect.c:3388 ../src/libs/filtering.c:1494 msgid "AND" msgstr "E" -#: ../src/libs/collect.c:3046 ../src/libs/filtering.c:1437 +#: ../src/libs/collect.c:3393 ../src/libs/filtering.c:1499 msgid "OR" msgstr "OU" #. case DT_LIB_COLLECT_MODE_AND_NOT: -#: ../src/libs/collect.c:3051 ../src/libs/filtering.c:1442 +#: ../src/libs/collect.c:3398 ../src/libs/filtering.c:1504 msgid "BUT NOT" msgstr "MAS NÃO" -#: ../src/libs/collect.c:3223 ../src/libs/filtering.c:2164 +#: ../src/libs/collect.c:3588 ../src/libs/filtering.c:2238 msgid "revert to a previous set of rules" msgstr "reverte para um conjunto de regras anterior" -#: ../src/libs/collect.c:3280 +#: ../src/libs/collect.c:3671 msgid "jump back to previous collection" msgstr "pula para coleção anterior" @@ -20477,7 +21179,7 @@ msgid "color picker" msgstr "seletor de cores" -#: ../src/libs/colorpicker.c:463 +#: ../src/libs/colorpicker.c:513 msgid "" "hover to highlight sample on canvas,\n" "click to lock sample,\n" @@ -20488,23 +21190,23 @@ "clique-direito para carregar a área da amostra\n" "no seletor de cor ativo" -#: ../src/libs/colorpicker.c:561 ../src/libs/colorpicker.c:612 +#: ../src/libs/colorpicker.c:626 ../src/libs/colorpicker.c:693 msgid "click to (un)hide large color patch" msgstr "clique para esconder ou mostrar o patch grande de cor" -#: ../src/libs/colorpicker.c:575 +#: ../src/libs/colorpicker.c:649 msgid "statistic" msgstr "estatística" -#: ../src/libs/colorpicker.c:576 +#: ../src/libs/colorpicker.c:650 msgid "select which statistic to show" msgstr "selecionar que estatística mostrar" -#: ../src/libs/colorpicker.c:585 +#: ../src/libs/colorpicker.c:660 msgid "select which color mode to use" msgstr "selecionar que modo de cor usar" -#: ../src/libs/colorpicker.c:594 +#: ../src/libs/colorpicker.c:671 msgid "" "turn on color picker\n" "ctrl+click or right-click to select an area" @@ -20512,21 +21214,21 @@ "acionar o seletor de cores\n" "ctrl+clique ou clique-direito para selecionar uma área" -#: ../src/libs/colorpicker.c:636 +#: ../src/libs/colorpicker.c:722 msgid "add sample" msgstr "adiciona amostra" #. Adding the live samples section -#: ../src/libs/colorpicker.c:640 +#: ../src/libs/colorpicker.c:727 msgctxt "section" msgid "live samples" msgstr "amostras colhidas" -#: ../src/libs/colorpicker.c:648 +#: ../src/libs/colorpicker.c:738 msgid "display samples on image/vectorscope" msgstr "exibir amostras na imagem/vetorscópio" -#: ../src/libs/colorpicker.c:657 +#: ../src/libs/colorpicker.c:749 msgid "restrict scope to selection" msgstr "restringir escopo à seleção" @@ -20538,10 +21240,6 @@ msgid "open sidecar file" msgstr "abrir arquivo auxiliar" -#: ../src/libs/copy_history.c:149 -msgid "XMP sidecar files" -msgstr "arquivos auxiliares XMP" - #: ../src/libs/copy_history.c:166 #, c-format msgid "error loading file '%s'" @@ -20590,7 +21288,7 @@ msgid "choose which modules to paste to the target image(s)" msgstr "seleciona quais módulos colar na(s) imagem(ns) destino" -#: ../src/libs/copy_history.c:382 ../src/libs/image.c:588 +#: ../src/libs/copy_history.c:382 ../src/libs/image.c:655 msgid "paste" msgstr "colar" @@ -20622,11 +21320,11 @@ "descarta histórico de\n" "todas imagens selecionadas" -#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:847 +#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:851 msgid "how to handle existing history" msgstr "como gerenciar histórico existente" -#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:850 +#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:854 msgid "append" msgstr "anexar" @@ -20646,89 +21344,96 @@ msgid "write history stack and tags to XMP sidecar files" msgstr "salva histórico e etiquetas no arquivo XMP auxiliar" -#: ../src/libs/duplicate.c:56 +#: ../src/libs/duplicate.c:60 msgid "duplicate manager" msgstr "gerenciador de duplicatas" -#: ../src/libs/duplicate.c:401 +#: ../src/libs/duplicate.c:407 msgid "create a 'virgin' duplicate of the image without any development" msgstr "cria uma duplicata da imagem sem nenhum processamento" -#: ../src/libs/duplicate.c:406 +#: ../src/libs/duplicate.c:412 msgid "create a duplicate of the image with same history stack" msgstr "cria uma duplicata da imagem com o mesmo histórico" -#. Export button -#: ../src/libs/export.c:153 ../src/libs/export.c:1281 +#: ../src/libs/export.c:160 msgid "export" msgstr "exportar" #: ../src/libs/export.c:306 +msgid "invalid format for export selected" +msgstr "formato inválido selecionado para exportação" + +#: ../src/libs/export.c:311 +msgid "invalid storage for export selected" +msgstr "armazenamento inválido selecionado para exportação" + +#: ../src/libs/export.c:322 msgid "export to disk" msgstr "exportar para o disco" -#: ../src/libs/export.c:485 +#: ../src/libs/export.c:516 #, c-format msgid "which is equal to %s × %s px" msgstr "que é igual a %s x %s px" -#: ../src/libs/export.c:520 +#: ../src/libs/export.c:555 msgctxt "unit" msgid "in" msgstr "in" -#: ../src/libs/export.c:1060 +#: ../src/libs/export.c:1141 msgctxt "section" msgid "storage options" msgstr "opções de armazenamento" -#: ../src/libs/export.c:1064 +#: ../src/libs/export.c:1145 msgid "target storage" msgstr "armazenar em" -#: ../src/libs/export.c:1086 +#: ../src/libs/export.c:1171 msgctxt "section" msgid "format options" msgstr "opções de formato" -#: ../src/libs/export.c:1090 +#: ../src/libs/export.c:1175 msgid "file format" msgstr "formato do arquivo" -#: ../src/libs/export.c:1107 +#: ../src/libs/export.c:1193 msgctxt "section" msgid "global options" msgstr "opções globais" -#: ../src/libs/export.c:1110 +#: ../src/libs/export.c:1196 msgid "set size" msgstr "definir tamanho" -#: ../src/libs/export.c:1111 +#: ../src/libs/export.c:1197 msgid "choose a method for setting the output size" msgstr "seleciona um método para determinar o tamanho da saída" -#: ../src/libs/export.c:1114 +#: ../src/libs/export.c:1200 msgid "in pixels (for file)" msgstr "em pixels (para arquivo)" -#: ../src/libs/export.c:1115 +#: ../src/libs/export.c:1201 msgid "in cm (for print)" msgstr "em cm (para impressão)" -#: ../src/libs/export.c:1116 +#: ../src/libs/export.c:1202 msgid "in inch (for print)" msgstr "em polegadas (para impressão)" -#: ../src/libs/export.c:1117 +#: ../src/libs/export.c:1203 msgid "by scale (for file)" msgstr "por escala (para arquivo)" -#: ../src/libs/export.c:1119 +#: ../src/libs/export.c:1206 msgid "print width" msgstr "largura para impressão" -#: ../src/libs/export.c:1120 ../src/libs/export.c:1132 +#: ../src/libs/export.c:1208 ../src/libs/export.c:1225 msgid "" "maximum output width limit.\n" "click middle mouse button to reset to 0." @@ -20736,11 +21441,11 @@ "limite máximo para largura da saída.\n" "clique com o botão do meio para redefinir como 0." -#: ../src/libs/export.c:1123 +#: ../src/libs/export.c:1212 msgid "print height" msgstr "altura para impressão" -#: ../src/libs/export.c:1124 ../src/libs/export.c:1136 +#: ../src/libs/export.c:1214 ../src/libs/export.c:1231 msgid "" "maximum output height limit.\n" "click middle mouse button to reset to 0." @@ -20748,19 +21453,19 @@ "limite máximo para altura da saída.\n" "clique com o botão do meio para redefinir como 0." -#: ../src/libs/export.c:1128 +#: ../src/libs/export.c:1220 msgid "resolution in dot per inch" msgstr "resolução em pontos por polegada" -#: ../src/libs/export.c:1148 +#: ../src/libs/export.c:1244 msgid "@" msgstr "@" -#: ../src/libs/export.c:1161 ../src/libs/tools/global_toolbox.c:217 +#: ../src/libs/export.c:1258 ../src/libs/tools/global_toolbox.c:217 msgid "px" msgstr "px" -#: ../src/libs/export.c:1166 +#: ../src/libs/export.c:1266 msgid "" "it can be an integer, decimal number or simple fraction.\n" "zero or empty values are equal to 1.\n" @@ -20770,38 +21475,38 @@ "zero ou vazio são iguais a 1.\n" "clique com o botão do meio para redefinir em 1." -#: ../src/libs/export.c:1185 +#: ../src/libs/export.c:1292 msgid "allow upscaling" msgstr "permitir aumento da escala" -#: ../src/libs/export.c:1191 +#: ../src/libs/export.c:1301 msgid "high quality resampling" msgstr "reamostragem de alta qualidade" -#: ../src/libs/export.c:1192 +#: ../src/libs/export.c:1302 msgid "do high quality resampling during export" msgstr "fazer reamostragem de alta qualidade durante exportação" -#: ../src/libs/export.c:1198 +#: ../src/libs/export.c:1310 msgid "store masks" msgstr "armazenar máscaras" -#: ../src/libs/export.c:1199 +#: ../src/libs/export.c:1311 msgid "store masks as layers in exported images. only works for some formats." msgstr "" "armazena máscaras como camadas nas imagens exportadas.\n" "só funciona com alguns formatos." -#: ../src/libs/export.c:1210 ../src/libs/export.c:1245 +#: ../src/libs/export.c:1322 ../src/libs/export.c:1357 #: ../src/libs/print_settings.c:2777 ../src/libs/print_settings.c:2823 msgid "image settings" msgstr "configurações da imagem" -#: ../src/libs/export.c:1220 ../src/libs/print_settings.c:2811 +#: ../src/libs/export.c:1332 ../src/libs/print_settings.c:2811 msgid "output ICC profiles" msgstr "perfil ICC de saída" -#: ../src/libs/export.c:1228 +#: ../src/libs/export.c:1340 msgid "" "• perceptual: smoothly moves out-of-gamut colors into gamut, preserving " "gradations,\n" @@ -20839,46 +21544,55 @@ "verificar cores.\n" "(não serve para fotografia)." -#: ../src/libs/export.c:1255 ../src/libs/print_settings.c:2833 +#: ../src/libs/export.c:1367 ../src/libs/print_settings.c:2833 msgid "style" msgstr "estilo" -#: ../src/libs/export.c:1258 +#: ../src/libs/export.c:1370 msgid "temporary style to use while exporting" msgstr "estilo temporário a ser usado ao exportar" -#: ../src/libs/export.c:1263 ../src/libs/print_settings.c:2876 +#: ../src/libs/export.c:1377 ../src/libs/print_settings.c:2876 msgid "" "whether the style items are appended to the history or replacing the history" msgstr "" "se os itens de estilo são adicionados ao final do histórico ou se substituem " "o histórico" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "replace history" msgstr "substituir histórico" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "append history" msgstr "adicionar ao final do histórico" -#: ../src/libs/export.c:1282 +#: ../src/libs/export.c:1398 +msgctxt "actionbutton" +msgid "export" +msgstr "exportar" + +#: ../src/libs/export.c:1400 msgid "export with current settings" msgstr "exporta com configuração atual (ctrl-e)" -#: ../src/libs/export_metadata.c:163 +#: ../src/libs/export_metadata.c:148 msgid "select tag" msgstr "seleciona etiqueta" -#: ../src/libs/export_metadata.c:164 -msgid "add" -msgstr "adicionar" +#: ../src/libs/export_metadata.c:150 +msgid "_add" +msgstr "_adicionar" + +#: ../src/libs/export_metadata.c:151 ../src/libs/geotagging.c:811 +msgid "_done" +msgstr "_feito" -#: ../src/libs/export_metadata.c:175 +#: ../src/libs/export_metadata.c:162 msgid "list filter" msgstr "filtrar a lista" -#: ../src/libs/export_metadata.c:186 +#: ../src/libs/export_metadata.c:173 msgid "" "list of available tags. click 'add' button or double-click on tag to add the " "selected one" @@ -20886,31 +21600,31 @@ "lista de etiquetas disponíveis. clique 'adicionar' ou clique-duplo na " "etiqueta para adicionar a etiqueta selecionado" -#: ../src/libs/export_metadata.c:287 +#: ../src/libs/export_metadata.c:274 msgid "edit metadata exportation" msgstr "editar exportação de metadados" -#: ../src/libs/export_metadata.c:304 +#: ../src/libs/export_metadata.c:293 msgid "general settings" msgstr "configurações gerais" -#: ../src/libs/export_metadata.c:309 +#: ../src/libs/export_metadata.c:298 msgid "EXIF data" msgstr "dados EXIF" -#: ../src/libs/export_metadata.c:310 +#: ../src/libs/export_metadata.c:299 msgid "export EXIF metadata" msgstr "exportar metadados EXIF" -#: ../src/libs/export_metadata.c:313 +#: ../src/libs/export_metadata.c:302 msgid "export darktable XMP metadata (from metadata editor module)" msgstr "exportar metadados xmp do darktable (do módulo editor de metadados)" -#: ../src/libs/export_metadata.c:323 +#: ../src/libs/export_metadata.c:312 msgid "only embedded" msgstr "só embarcado" -#: ../src/libs/export_metadata.c:324 +#: ../src/libs/export_metadata.c:313 msgid "" "per default the interface sends some (limited) metadata beside the image to " "remote storage.\n" @@ -20926,39 +21640,39 @@ "se o armazenamento remoto não entende metadados do darktable, você pode usar " "metadados XMP calculados." -#: ../src/libs/export_metadata.c:330 ../src/libs/image.c:566 +#: ../src/libs/export_metadata.c:319 ../src/libs/image.c:623 msgid "geo tags" msgstr "geoetiquetas" -#: ../src/libs/export_metadata.c:331 +#: ../src/libs/export_metadata.c:320 msgid "export geo tags" msgstr "exportar etiquetas de geolocalização" -#: ../src/libs/export_metadata.c:334 +#: ../src/libs/export_metadata.c:323 msgid "export tags (to Xmp.dc.Subject)" msgstr "exportar etiquetas (para Xmp.dc.Subject)" -#: ../src/libs/export_metadata.c:342 +#: ../src/libs/export_metadata.c:331 msgid "private tags" msgstr "etiquetas privadas" -#: ../src/libs/export_metadata.c:343 +#: ../src/libs/export_metadata.c:332 msgid "export private tags" msgstr "exportar etiquetas privadas" -#: ../src/libs/export_metadata.c:345 +#: ../src/libs/export_metadata.c:334 msgid "synonyms" msgstr "sinônimos" -#: ../src/libs/export_metadata.c:346 +#: ../src/libs/export_metadata.c:335 msgid "export tags synonyms" msgstr "exportar sinônimos de etiquetas" -#: ../src/libs/export_metadata.c:348 +#: ../src/libs/export_metadata.c:337 msgid "omit hierarchy" msgstr "omitir hierarquia" -#: ../src/libs/export_metadata.c:349 +#: ../src/libs/export_metadata.c:338 msgid "" "only the last part of the hierarchical tags is included. can be useful if " "categories are not used" @@ -20966,19 +21680,19 @@ "somente a última parte das etiquetas hierárquicas é incluída. pode ser útil " "se categorias não são usadas" -#: ../src/libs/export_metadata.c:352 +#: ../src/libs/export_metadata.c:341 msgid "hierarchical tags" msgstr "etiquetas hierárquicas" -#: ../src/libs/export_metadata.c:353 +#: ../src/libs/export_metadata.c:342 msgid "export hierarchical tags (to Xmp.lr.Hierarchical Subject)" msgstr "exportar etiquetas hierárquicas (para Xmp.lr.Hierarchical Subject)" -#: ../src/libs/export_metadata.c:355 +#: ../src/libs/export_metadata.c:344 msgid "develop history" msgstr "histórico de processamento" -#: ../src/libs/export_metadata.c:356 +#: ../src/libs/export_metadata.c:345 msgid "" "export darktable development data (recovery purpose in case of loss of " "database or XMP file)" @@ -20986,19 +21700,19 @@ "exportar dados de desenvolvimento darktable (para recuperação em caso de " "perda da base de dados ou arquivo XMP)" -#: ../src/libs/export_metadata.c:363 +#: ../src/libs/export_metadata.c:352 msgid "per metadata settings" msgstr "configurações por metadados" -#: ../src/libs/export_metadata.c:376 +#: ../src/libs/export_metadata.c:364 msgid "redefined tag" msgstr "etiqueta redefinida" -#: ../src/libs/export_metadata.c:382 +#: ../src/libs/export_metadata.c:370 msgid "formula" msgstr "fórmula" -#: ../src/libs/export_metadata.c:385 +#: ../src/libs/export_metadata.c:373 msgid "" "list of calculated metadata\n" "click on '+' button to select and add new metadata\n" @@ -21022,15 +21736,15 @@ "clique na célula da fórmula para editar\n" "digite $( para ativar o auto-completamento e ver a lista de variáveis" -#: ../src/libs/export_metadata.c:442 +#: ../src/libs/export_metadata.c:430 msgid "add an output metadata tag" msgstr "adicionar uma etiqueta de metadados de saída" -#: ../src/libs/export_metadata.c:447 +#: ../src/libs/export_metadata.c:435 msgid "delete metadata tag" msgstr "excluir etiqueta de metadados" -#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:128 +#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:130 msgid "full path" msgstr "caminho completo" @@ -21050,48 +21764,48 @@ msgid "shuffle" msgstr "embaralhar" -#: ../src/libs/filtering.c:263 +#: ../src/libs/filtering.c:269 msgid "collection filters" msgstr "filtros de coleção" -#: ../src/libs/filtering.c:296 +#: ../src/libs/filtering.c:302 msgid "initial setting" msgstr "configuração inicial" -#: ../src/libs/filtering.c:315 +#: ../src/libs/filtering.c:321 msgid "imported: last 24h" msgstr "importada: últimas 24h" -#: ../src/libs/filtering.c:320 +#: ../src/libs/filtering.c:326 msgid "imported: last 30 days" msgstr "importada: últimos 30 dias" -#: ../src/libs/filtering.c:326 +#: ../src/libs/filtering.c:332 msgid "taken: last 24h" msgstr "tirada: últimas 24h" -#: ../src/libs/filtering.c:330 +#: ../src/libs/filtering.c:336 msgid "taken: last 30 days" msgstr "tirada: últimos 30 dias" -#: ../src/libs/filtering.c:702 +#: ../src/libs/filtering.c:728 msgid "click or click&drag to select one or multiple values" msgstr "clique ou clique&arraste para selecionar múltiplos valores" -#: ../src/libs/filtering.c:703 +#: ../src/libs/filtering.c:729 msgid "right-click opens a menu to select the available values" msgstr "clique-direito abre um menu para selecionar valores disponíveis" -#: ../src/libs/filtering.c:800 +#: ../src/libs/filtering.c:826 #, c-format msgid "you can't have more than %d rules" msgstr "voce não pode ter mais que %d regras" -#: ../src/libs/filtering.c:922 ../src/libs/filtering.c:1556 +#: ../src/libs/filtering.c:948 ../src/libs/filtering.c:1618 msgid "rule property" msgstr "propriedade da regra" -#: ../src/libs/filtering.c:987 +#: ../src/libs/filtering.c:1013 msgid "" "rule property\n" "this can't be changed as the rule is pinned to the toolbar" @@ -21100,12 +21814,12 @@ "isto não pode ser modificado porque a regra está fixada na barra de " "ferramentas" -#: ../src/libs/filtering.c:1035 +#: ../src/libs/filtering.c:1095 msgctxt "quickfilter" msgid "filter" msgstr "filtro" -#: ../src/libs/filtering.c:1062 +#: ../src/libs/filtering.c:1124 msgid "" "this rule is pinned to the top toolbar\n" "click to un-pin" @@ -21113,118 +21827,126 @@ "como esta regra está fixada na barra de ferramentas superior\n" "clique para retirá-la" -#: ../src/libs/filtering.c:1063 +#: ../src/libs/filtering.c:1125 msgid "you can't disable the rule as it is pinned to the toolbar" msgstr "" "você não pode desabilitar esta regra porque ela está fixada na barra de " "ferramentas" -#: ../src/libs/filtering.c:1064 +#: ../src/libs/filtering.c:1126 msgid "you can't remove the rule as it is pinned to the toolbar" msgstr "" "você não pode remover esta regra porque ela está fixada na barra de " "ferramentas" -#: ../src/libs/filtering.c:1069 +#: ../src/libs/filtering.c:1131 msgid "click to pin this rule to the top toolbar" msgstr "crtl-clique para fixar esta regra na barra de ferramentas superior" -#: ../src/libs/filtering.c:1070 +#: ../src/libs/filtering.c:1132 msgid "remove this collect rule" msgstr "remover esta regra de coleta" -#: ../src/libs/filtering.c:1072 +#: ../src/libs/filtering.c:1134 msgid "this rule is enabled" msgstr "esta regra está habilitada" -#: ../src/libs/filtering.c:1074 +#: ../src/libs/filtering.c:1136 msgid "this rule is disabled" msgstr "esta regra está desabilitada" -#: ../src/libs/filtering.c:1202 +#: ../src/libs/filtering.c:1264 msgid "or" msgstr "ou" -#: ../src/libs/filtering.c:1203 +#: ../src/libs/filtering.c:1265 msgid "and not" msgstr "e não" -#: ../src/libs/filtering.c:1205 +#: ../src/libs/filtering.c:1267 msgid "define how this rule should interact with the previous one" msgstr "definir como esta regra deveria interagir com a anterior" -#: ../src/libs/filtering.c:1466 +#: ../src/libs/filtering.c:1528 msgid " (off)" msgstr " (desligado)" -#: ../src/libs/filtering.c:1663 +#: ../src/libs/filtering.c:1725 msgid "you can't add more rules." msgstr "voce não pode adicionar mais regras." -#. fill the popover with all pinned rules -#: ../src/libs/filtering.c:1696 +#: ../src/libs/filtering.c:1759 msgid "shown filters" msgstr "filtros mostrados" -#: ../src/libs/filtering.c:1711 +#: ../src/libs/filtering.c:1774 msgid "new filter" msgstr "novo filtro" -#: ../src/libs/filtering.c:1884 +#. the actions part of the popover +#: ../src/libs/filtering.c:1781 +msgid "actions" +msgstr "ações" + +#: ../src/libs/filtering.c:1784 +msgid "reset quickfilters" +msgstr "redefinir (reset) filtros" + +#: ../src/libs/filtering.c:1957 msgid "sort order" msgstr "ordem de classificação" -#: ../src/libs/filtering.c:1886 +#: ../src/libs/filtering.c:1960 msgid "determine the sort order of shown images" msgstr "determina a ordem em que as imagens são mostradas" -#: ../src/libs/filtering.c:1906 +#: ../src/libs/filtering.c:1980 msgid "sort direction" msgstr "direção da ordenação" -#: ../src/libs/filtering.c:1911 +#: ../src/libs/filtering.c:1985 msgid "remove this sort order" msgstr "remover esta forma de ordenação" -#: ../src/libs/filtering.c:1995 +#: ../src/libs/filtering.c:2069 #, c-format msgid "you can't have more than %d sort orders" msgstr "você não pode ter mais que %d formas de ordenação" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "DESC" msgstr "DESC" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "ASC" msgstr "ASC" -#: ../src/libs/filtering.c:2160 +#: ../src/libs/filtering.c:2234 msgid "new rule" msgstr "nova regra" -#: ../src/libs/filtering.c:2161 +#: ../src/libs/filtering.c:2235 msgid "append new rule to collect images" msgstr "adicionar nova regra para coletar imagens" -#: ../src/libs/filtering.c:2172 ../src/libs/tools/filter.c:116 +#: ../src/libs/filtering.c:2246 ../src/libs/tools/filter.c:116 msgid "sort by" msgstr "ordenar por" -#: ../src/libs/filtering.c:2180 +#: ../src/libs/filtering.c:2254 msgid "new sort" msgstr "nova forma de ordenação" -#: ../src/libs/filtering.c:2181 +#: ../src/libs/filtering.c:2255 msgid "append new sort to order images" msgstr "adiciona nova forma de ordenação de imagens" -#: ../src/libs/filtering.c:2184 +#: ../src/libs/filtering.c:2258 msgid "revert to a previous set of sort orders" msgstr "reverte para um conjunto anterior de forma de ordenação" #. we change the tooltip of the reset button here, as we are sure the header is defined now -#: ../src/libs/filtering.c:2234 +#: ../src/libs/filtering.c:2308 msgid "" "reset\n" "ctrl+click to remove pinned rules too" @@ -21261,7 +21983,7 @@ #: ../src/libs/filters/grouping.c:167 ../src/libs/filters/history.c:153 #: ../src/libs/filters/local_copy.c:142 ../src/libs/filters/module_order.c:161 #: ../src/libs/filters/rating.c:199 ../src/libs/filters/rating.c:210 -#: ../src/libs/filters/rating_range.c:325 +#: ../src/libs/filters/rating_range.c:356 msgid "rules" msgstr "regras" @@ -21275,7 +21997,7 @@ "e (n): imagens tendo as mesmas etiquetas de cor\n" "ou (u): imagens tendo ao menos uma das etiquetas de cor selecionadas" -#: ../src/libs/filters/filename.c:365 +#: ../src/libs/filters/filename.c:370 msgid "" "enter filename to search.\n" "multiple values can be separated by ','\n" @@ -21287,11 +22009,11 @@ "\n" "clique-direito para obter nomes de arquivos existentes" -#: ../src/libs/filters/filename.c:376 +#: ../src/libs/filters/filename.c:381 msgid "extension" msgstr "extensão" -#: ../src/libs/filters/filename.c:377 +#: ../src/libs/filters/filename.c:382 msgid "" "enter extension to search with starting dot\n" "multiple values can be separated by ','\n" @@ -21305,7 +22027,7 @@ "\n" "clique-direito para obter as extensões existentes" -#: ../src/libs/filters/filename.c:405 +#: ../src/libs/filters/filename.c:410 msgid "" "click to select filename\n" "ctrl+click to select multiple values" @@ -21313,7 +22035,7 @@ "clique-simples para selecionar o nome de arquivo\n" "ctrl-clique para selecionar múltiplos valores" -#: ../src/libs/filters/filename.c:432 +#: ../src/libs/filters/filename.c:437 msgid "" "click to select extension\n" "ctrl+click to select multiple values" @@ -21321,6 +22043,11 @@ "clique-simples para selecionar extensão\n" "ctrl-clique para selecionar múltiplos valores" +#. the button to close the popup +#: ../src/libs/filters/filename.c:457 +msgid "ok" +msgstr "ok" + #: ../src/libs/filters/grouping.c:141 ../src/libs/filters/grouping.c:169 msgid "ungrouped images" msgstr "imagens não agrupadas" @@ -21332,8 +22059,8 @@ #. predefined selections #: ../src/libs/filters/grouping.c:169 ../src/libs/filters/history.c:38 #: ../src/libs/filters/local_copy.c:38 ../src/libs/filters/module_order.c:155 -#: ../src/libs/filters/rating_range.c:56 ../src/libs/filters/rating_range.c:72 -#: ../src/libs/filters/rating_range.c:109 ../src/libs/filters/ratio.c:68 +#: ../src/libs/filters/rating_range.c:59 ../src/libs/filters/rating_range.c:83 +#: ../src/libs/filters/rating_range.c:131 ../src/libs/filters/ratio.c:68 #: ../src/libs/filters/ratio.c:81 msgid "all images" msgstr "todas as imagens" @@ -21358,7 +22085,7 @@ msgid "filter by images rating" msgstr "filtrar por classificação das imagens" -#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:542 +#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:596 #: ../src/libs/tools/ratings.c:56 msgid "ratings" msgstr "classificações" @@ -21367,49 +22094,33 @@ msgid "unstarred only" msgstr "apenas sem estrelas" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:60 -#: ../src/libs/filters/rating_range.c:75 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:65 +#: ../src/libs/filters/rating_range.c:89 msgid "rejected only" msgstr "apenas rejeitadas" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:58 -#: ../src/libs/filters/rating_range.c:73 ../src/libs/filters/rating_range.c:138 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:62 +#: ../src/libs/filters/rating_range.c:86 ../src/libs/filters/rating_range.c:158 msgid "all except rejected" msgstr "todas exceto rejeitadas" -#: ../src/libs/filters/rating_range.c:61 ../src/libs/filters/rating_range.c:76 +#: ../src/libs/filters/rating_range.c:67 ../src/libs/filters/rating_range.c:91 msgid "not rated only" msgstr "apenas não classificadas" -#: ../src/libs/filters/rating_range.c:99 ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:131 -#: ../src/libs/filters/rating_range.c:275 -msgid "rejected" -msgstr "rejeitadas" - -#: ../src/libs/filters/rating_range.c:101 -#: ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:276 -msgid "not rated" -msgstr "não classificado" - -#: ../src/libs/filters/rating_range.c:117 -msgid "only" -msgstr "apenas" - -#: ../src/libs/filters/rating_range.c:269 +#: ../src/libs/filters/rating_range.c:296 msgid "better" msgstr "melhor" -#: ../src/libs/filters/rating_range.c:270 +#: ../src/libs/filters/rating_range.c:297 msgid "worse" msgstr "pior" -#: ../src/libs/filters/rating_range.c:271 +#: ../src/libs/filters/rating_range.c:298 msgid "cap" msgstr "limite de altura" -#: ../src/libs/filters/rating_range.c:286 +#: ../src/libs/filters/rating_range.c:313 msgid "rating filter" msgstr "filtro de classificação" @@ -21446,7 +22157,7 @@ msgid "apply offset and geo-location" msgstr "aplicar deslocamento e geolocalização" -#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1910 +#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1914 msgid "apply geo-location" msgstr "aplicar geolocalização" @@ -21458,49 +22169,49 @@ "aplica deslocamento e geolocalização às imagens que combinam\n" "operação dupla: dois ctrl-z para desfazer" -#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1911 +#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1915 msgid "apply geo-location to matching images" msgstr "aplica geolocalização a imagens que casam com os padrões definidos" -#: ../src/libs/geotagging.c:810 +#: ../src/libs/geotagging.c:809 msgid "GPX file track segments" msgstr "segmentos de trilha do arquivo GPX" -#: ../src/libs/geotagging.c:830 ../src/libs/geotagging.c:1869 +#: ../src/libs/geotagging.c:831 ../src/libs/geotagging.c:1873 msgid "start time" msgstr "data/hora de início" -#: ../src/libs/geotagging.c:831 +#: ../src/libs/geotagging.c:832 msgid "end time" msgstr "tempo final" -#: ../src/libs/geotagging.c:832 ../src/libs/geotagging.c:1871 +#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1875 msgid "points" msgstr "pontos" -#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1873 -#: ../src/libs/image.c:463 +#: ../src/libs/geotagging.c:834 ../src/libs/geotagging.c:1877 +#: ../src/libs/image.c:494 msgid "images" msgstr "imagens" -#: ../src/libs/geotagging.c:926 +#: ../src/libs/geotagging.c:927 msgid "open GPX file" msgstr "abrir arquivo GPX" -#: ../src/libs/geotagging.c:927 ../src/libs/tools/lighttable.c:333 -#: ../src/libs/tools/lighttable.c:402 ../src/views/darkroom.c:2232 +#: ../src/libs/geotagging.c:928 ../src/libs/tools/lighttable.c:330 +#: ../src/libs/tools/lighttable.c:399 ../src/views/darkroom.c:2091 msgid "preview" msgstr "pré-visualização" -#: ../src/libs/geotagging.c:940 +#: ../src/libs/geotagging.c:941 msgid "GPS data exchange format" msgstr "formato de intercâmbio de dados GPS" -#: ../src/libs/geotagging.c:1739 +#: ../src/libs/geotagging.c:1743 msgid "date/time" msgstr "data/hora" -#: ../src/libs/geotagging.c:1740 +#: ../src/libs/geotagging.c:1744 msgid "" "enter the new date/time (YYYY:MM:DD hh:mm:ss[.sss])\n" "key in the new numbers or scroll over the cell" @@ -21508,40 +22219,40 @@ "insira o novo valor de data/hora (yyyy:mm:dd hh:mm:ss[.sss])\n" "digite os novos valores ou use o scroll na célula" -#: ../src/libs/geotagging.c:1744 +#: ../src/libs/geotagging.c:1748 msgid "original date/time" msgstr "data/hora original" -#: ../src/libs/geotagging.c:1748 +#: ../src/libs/geotagging.c:1752 msgid "lock date/time offset value to apply it onto another selection" msgstr "bloquear valor de deslocamento de tempo para aplicar em outra seleção" -#: ../src/libs/geotagging.c:1752 +#: ../src/libs/geotagging.c:1756 msgid "date/time offset" msgstr "deslocamento de data/hora" -#: ../src/libs/geotagging.c:1753 +#: ../src/libs/geotagging.c:1757 msgid "offset or difference ([-]dd hh:mm:ss[.sss])" msgstr "deslocamento ou diferença ([-]dd hh:mm:ss[.sss])" #. apply -#: ../src/libs/geotagging.c:1757 +#: ../src/libs/geotagging.c:1761 msgid "apply offset" msgstr "aplicar deslocamento" -#: ../src/libs/geotagging.c:1758 +#: ../src/libs/geotagging.c:1762 msgid "apply offset to selected images" msgstr "aplicar deslocamento às imagens selecionadas" -#: ../src/libs/geotagging.c:1761 +#: ../src/libs/geotagging.c:1765 msgid "apply date/time" msgstr "aplicar data/hora" -#: ../src/libs/geotagging.c:1762 +#: ../src/libs/geotagging.c:1766 msgid "apply the same date/time to selected images" msgstr "aplica a mesma data/hora nas imagens selecionadas" -#: ../src/libs/geotagging.c:1772 +#: ../src/libs/geotagging.c:1776 msgid "" "start typing to show a list of permitted values and select your timezone.\n" "press enter to confirm, so that the asterisk * disappears" @@ -21551,25 +22262,25 @@ "pressione enter para confirmar, de forma que o asterisco * desapareça" #. gpx -#: ../src/libs/geotagging.c:1815 +#: ../src/libs/geotagging.c:1819 msgid "apply GPX track file..." msgstr "aplicar arquivo de trilha GPX..." -#: ../src/libs/geotagging.c:1816 +#: ../src/libs/geotagging.c:1820 msgid "parses a GPX file and updates location of selected images" msgstr "" "analisa o arquivo GPX e atualiza a localização das imagens selecionadas" -#: ../src/libs/geotagging.c:1827 +#: ../src/libs/geotagging.c:1831 msgctxt "section" msgid "GPX file" msgstr "arquivo GPX" -#: ../src/libs/geotagging.c:1834 +#: ../src/libs/geotagging.c:1838 msgid "select a GPX track file..." msgstr "selecionar arquivo de trilha GPX..." -#: ../src/libs/geotagging.c:1851 +#: ../src/libs/geotagging.c:1855 msgid "" "list of track segments in the GPX file, for each segment:\n" "- the start date/time in local time (LT)\n" @@ -21585,172 +22296,180 @@ "fuso horário\n" "- informações mais detalhadas de tempo, passe o mouse sobre a linha" -#: ../src/libs/geotagging.c:1890 +#: ../src/libs/geotagging.c:1894 msgid "preview images" msgstr "pré-visualizar imagens" -#: ../src/libs/geotagging.c:1895 +#: ../src/libs/geotagging.c:1899 msgid "show on map matching images" msgstr "mostrar no mapa as imagens que combinam" -#: ../src/libs/geotagging.c:1898 +#: ../src/libs/geotagging.c:1902 msgid "select images" msgstr "selecionar imagens" -#: ../src/libs/geotagging.c:1899 +#: ../src/libs/geotagging.c:1903 msgid "select matching images" msgstr "seleciona imagens que combinam" -#: ../src/libs/geotagging.c:1907 +#: ../src/libs/geotagging.c:1911 msgid "number of matching images versus selected images" msgstr "número de imagens que combinam versus imagens selecionadas" -#: ../src/libs/histogram.c:133 +#: ../src/libs/histogram.c:110 msgid "monochromatic" msgstr "monocromático" -#: ../src/libs/histogram.c:134 +#: ../src/libs/histogram.c:111 msgid "analogous" msgstr "análogo" -#: ../src/libs/histogram.c:135 +#: ../src/libs/histogram.c:112 msgid "analogous complementary" msgstr "complementar análogo" -#: ../src/libs/histogram.c:136 +#: ../src/libs/histogram.c:113 msgid "complementary" msgstr "complementar" -#: ../src/libs/histogram.c:137 +#: ../src/libs/histogram.c:114 msgid "split complementary" msgstr "complementar dividido" -#: ../src/libs/histogram.c:138 +#: ../src/libs/histogram.c:115 msgid "dyad" msgstr "díade" -#: ../src/libs/histogram.c:139 +#: ../src/libs/histogram.c:116 msgid "triad" msgstr "tríade" -#: ../src/libs/histogram.c:140 +#: ../src/libs/histogram.c:117 msgid "tetrad" msgstr "tétrade" -#: ../src/libs/histogram.c:146 +#: ../src/libs/histogram.c:123 msgid "vectorscope" msgstr "vetorscópio" -#: ../src/libs/histogram.c:147 +#: ../src/libs/histogram.c:124 msgid "waveform" msgstr "forma de onda" -#: ../src/libs/histogram.c:148 +#: ../src/libs/histogram.c:125 msgid "RGB parade" msgstr "parada RGB" -#: ../src/libs/histogram.c:149 ../src/libs/histogram.c:2309 +#: ../src/libs/histogram.c:126 ../src/libs/histogram.c:2622 msgid "histogram" msgstr "histograma" -#: ../src/libs/histogram.c:243 +#: ../src/libs/histogram.c:218 msgid "scopes" msgstr "histograma" -#: ../src/libs/histogram.c:1542 +#: ../src/libs/histogram.c:757 +msgid "" +"unsupported vectorscope profile selected, it will be replaced with linear " +"Rec2020" +msgstr "" +"perfil de vetorscópio não suportado escolhido, será substituído por Rec2020 " +"linear" + +#: ../src/libs/histogram.c:1715 msgid "scroll to coarse-rotate" msgstr "scroll para rotacionar grosseiramente" -#: ../src/libs/histogram.c:1543 +#: ../src/libs/histogram.c:1716 msgid "ctrl+scroll to fine rotate" msgstr "ctrl+scroll para rotacionar de maneira fina" -#: ../src/libs/histogram.c:1544 +#: ../src/libs/histogram.c:1717 msgid "shift+scroll to change width" msgstr "shift+scroll muda largura" -#: ../src/libs/histogram.c:1545 +#: ../src/libs/histogram.c:1718 msgid "alt+scroll to cycle" msgstr "alt+scroll alterna ciclicamente" -#: ../src/libs/histogram.c:1556 +#: ../src/libs/histogram.c:1732 msgid "drag to change black point" msgstr "arrastar para mudar o ponto preto" -#: ../src/libs/histogram.c:1557 ../src/libs/histogram.c:1564 +#: ../src/libs/histogram.c:1733 ../src/libs/histogram.c:1740 msgid "double-click resets" msgstr "clique-duplo para redefinir" -#: ../src/libs/histogram.c:1563 +#: ../src/libs/histogram.c:1739 msgid "drag to change exposure" msgstr "arraste para mudar exposição" -#: ../src/libs/histogram.c:1725 ../src/libs/histogram.c:1765 +#: ../src/libs/histogram.c:1923 ../src/libs/histogram.c:1965 msgid "set scale to linear" msgstr "mudar escala para linear" -#: ../src/libs/histogram.c:1730 ../src/libs/histogram.c:1770 +#: ../src/libs/histogram.c:1928 ../src/libs/histogram.c:1970 msgid "set scale to logarithmic" msgstr "mudar escala para logarítmica" -#: ../src/libs/histogram.c:1746 +#: ../src/libs/histogram.c:1946 msgid "set scope to vertical" msgstr "mudar escopo para vertical" -#: ../src/libs/histogram.c:1751 +#: ../src/libs/histogram.c:1951 msgid "set scope to horizontal" msgstr "mudar escopo para horizontal" -#: ../src/libs/histogram.c:1780 +#: ../src/libs/histogram.c:1980 msgid "set view to AzBz" msgstr "mudar visão para AzBz" -#: ../src/libs/histogram.c:1786 +#: ../src/libs/histogram.c:1986 msgid "set view to RYB" msgstr "mudar visão para RYB" -#: ../src/libs/histogram.c:1792 +#: ../src/libs/histogram.c:1992 msgid "set view to u*v*" msgstr "mudar visão para u*v*" -#: ../src/libs/histogram.c:2312 ../src/libs/histogram.c:2370 +#: ../src/libs/histogram.c:2625 ../src/libs/histogram.c:2691 msgid "cycle histogram modes" msgstr "alterna ciclicamente opções de histograma" -#: ../src/libs/histogram.c:2316 ../src/libs/histogram.c:2371 +#: ../src/libs/histogram.c:2630 ../src/libs/histogram.c:2693 msgid "hide histogram" msgstr "esconder histograma" -#: ../src/libs/histogram.c:2372 ../src/libs/histogram.c:2401 +#: ../src/libs/histogram.c:2696 ../src/libs/histogram.c:2729 msgid "switch histogram view" msgstr "alterna modo de visão do histograma" -#: ../src/libs/histogram.c:2379 +#: ../src/libs/histogram.c:2704 msgid "toggle blue channel" msgstr "alternar mostrar/esconder o canal azul" -#: ../src/libs/histogram.c:2381 ../src/libs/histogram.c:2389 -#: ../src/libs/histogram.c:2397 +#: ../src/libs/histogram.c:2706 ../src/libs/histogram.c:2715 +#: ../src/libs/histogram.c:2724 msgid "toggle colors" msgstr "alternar cores" -#: ../src/libs/histogram.c:2387 +#: ../src/libs/histogram.c:2713 msgid "toggle green channel" msgstr "alternar mostrar/esconder o canal verde" -#: ../src/libs/histogram.c:2395 +#: ../src/libs/histogram.c:2722 msgid "toggle red channel" msgstr "alternar mostrar/esconder o canal vermelho" -#: ../src/libs/histogram.c:2405 +#: ../src/libs/histogram.c:2734 msgid "cycle vectorscope types" msgstr "alternar tipos de vetorscópio" -#: ../src/libs/histogram.c:2413 +#: ../src/libs/histogram.c:2745 msgid "color harmonies" msgstr "harmonias de cor" -#: ../src/libs/histogram.c:2425 +#: ../src/libs/histogram.c:2759 msgid "cycle color harmonies" msgstr "alternar ciclicamente harmonias de cor" @@ -21794,10 +22513,18 @@ msgid "mask mode" msgstr "modo da máscara" +#: ../src/libs/history.c:949 +msgid "blend mode" +msgstr "modo de mesclagem" + #: ../src/libs/history.c:951 msgid "blend operation" msgstr "operação de mesclagem" +#: ../src/libs/history.c:953 +msgid "blend fulcrum" +msgstr "pivô (fulcrum) de mesclagem" + #: ../src/libs/history.c:961 msgid "mask blur" msgstr "mascara de desfoque" @@ -21841,200 +22568,200 @@ msgid "parametric input mask:" msgstr "máscara paramétrica de entrada:" -#: ../src/libs/history.c:1323 +#: ../src/libs/history.c:1322 msgid "delete image's history?" msgstr "excluir histórico da imagem?" -#: ../src/libs/history.c:1324 +#: ../src/libs/history.c:1323 msgid "do you really want to clear history of current image?" msgstr "você realmente deseja remover o histórico da imagem atual?" -#: ../src/libs/image.c:72 -msgid "selected image[s]" -msgstr "imagens selecionadas" +#: ../src/libs/image.c:74 +msgid "actions on selection" +msgstr "ações na seleção" -#: ../src/libs/image.c:284 +#: ../src/libs/image.c:302 msgid "delete (trash)" msgstr "remover (lixeira)" -#: ../src/libs/image.c:287 +#: ../src/libs/image.c:305 msgid "physically delete from disk (using trash if possible)" msgstr "exclui fisicamente do disco (usando a lixeira se possível)" -#: ../src/libs/image.c:288 +#: ../src/libs/image.c:306 msgid "physically delete from disk immediately" msgstr "excluir fisicamente do disco imediatamente" -#: ../src/libs/image.c:474 ../src/libs/modulegroups.c:3811 -#: ../src/libs/styles.c:876 +#: ../src/libs/image.c:506 ../src/libs/modulegroups.c:3813 +#: ../src/libs/styles.c:880 msgid "remove" msgstr "remover" -#: ../src/libs/image.c:475 +#: ../src/libs/image.c:508 msgid "remove images from the image library, without deleting" msgstr "remove imagens da biblioteca de imagens, sem excluí-las" -#: ../src/libs/image.c:483 +#: ../src/libs/image.c:517 msgid "move..." msgstr "mover..." -#: ../src/libs/image.c:484 +#: ../src/libs/image.c:519 msgid "move to other folder" msgstr "move para outra pasta" -#: ../src/libs/image.c:487 +#: ../src/libs/image.c:522 msgid "copy..." msgstr "copiar..." -#: ../src/libs/image.c:488 +#: ../src/libs/image.c:524 msgid "copy to other folder" msgstr "copia para outra pasta" -#: ../src/libs/image.c:491 +#: ../src/libs/image.c:528 msgid "create HDR" msgstr "criar HDR" -#: ../src/libs/image.c:492 +#: ../src/libs/image.c:530 msgid "create a high dynamic range image from selected shots" msgstr "" "cria imagem de grande alcance dinâmico (HDR)\n" "das fotos selecionadas" -#: ../src/libs/image.c:496 +#: ../src/libs/image.c:535 msgid "add a duplicate to the image library, including its history stack" msgstr "" "adiciona uma duplicata à biblioteca de imagens, incluindo seu histórico" -#: ../src/libs/image.c:502 ../src/libs/image.c:505 +#: ../src/libs/image.c:542 ../src/libs/image.c:547 msgid "rotate selected images 90 degrees CCW" msgstr "gira seleção 90 graus sentido anti-horário" -#: ../src/libs/image.c:509 ../src/libs/image.c:512 +#: ../src/libs/image.c:553 ../src/libs/image.c:558 msgid "rotate selected images 90 degrees CW" msgstr "gira seleção 90 graus sentido horário" -#: ../src/libs/image.c:514 +#: ../src/libs/image.c:561 msgid "reset rotation" msgstr "redefinir rotação" -#: ../src/libs/image.c:515 +#: ../src/libs/image.c:563 msgid "reset rotation to EXIF data" msgstr "redefine rotação conforme dados EXIF" -#: ../src/libs/image.c:518 +#: ../src/libs/image.c:566 msgid "copy locally" msgstr "copiar localmente" -#: ../src/libs/image.c:519 +#: ../src/libs/image.c:568 msgid "copy the image locally" msgstr "copiar a imagem localmente" -#: ../src/libs/image.c:522 +#: ../src/libs/image.c:572 msgid "resync local copy" msgstr "atualizar cópia local" -#: ../src/libs/image.c:523 +#: ../src/libs/image.c:574 msgid "synchronize the image's XMP and remove the local copy" msgstr "sincroniza o XMP da imagem e remove a cópia local" -#: ../src/libs/image.c:526 +#: ../src/libs/image.c:578 msgctxt "selected images action" msgid "group" msgstr "agrupar" -#: ../src/libs/image.c:527 +#: ../src/libs/image.c:580 msgid "add selected images to expanded group or create a new one" msgstr "adiciona imagens selecionadas ao grupo expandido ou criar um novo" -#: ../src/libs/image.c:531 +#: ../src/libs/image.c:584 msgid "ungroup" msgstr "desagrupar" -#: ../src/libs/image.c:532 +#: ../src/libs/image.c:586 msgid "remove selected images from the group" msgstr "remove imagens selecionadas do grupo" -#: ../src/libs/image.c:544 +#: ../src/libs/image.c:598 msgid "select ratings metadata" msgstr "selecione metadados de classificação" -#: ../src/libs/image.c:550 +#: ../src/libs/image.c:605 msgid "colors" msgstr "cores" -#: ../src/libs/image.c:552 +#: ../src/libs/image.c:607 msgid "select colors metadata" msgstr "selecione metadados de cores" -#: ../src/libs/image.c:560 +#: ../src/libs/image.c:616 msgid "select tags metadata" msgstr "seleciona metadados das etiquetas" -#: ../src/libs/image.c:568 +#: ../src/libs/image.c:625 msgid "select geo tags metadata" msgstr "selecionar metadados de etiquetas de geolocalização" -#: ../src/libs/image.c:576 +#: ../src/libs/image.c:636 msgid "select darktable metadata (from metadata editor module)" msgstr "selecionar metadados darktable (do módulo editor de metadados)" -#: ../src/libs/image.c:584 +#: ../src/libs/image.c:649 msgid "set the selected image as source of metadata" msgstr "determinar a imagem selecionada como fonte de metadados" -#: ../src/libs/image.c:589 +#: ../src/libs/image.c:656 msgid "paste selected metadata on selected images" msgstr "cola metadados para imagens selecionadas" -#: ../src/libs/image.c:593 +#: ../src/libs/image.c:661 msgid "clear selected metadata on selected images" msgstr "limpar metadados selecionados para imagens selecionadas" -#: ../src/libs/image.c:598 +#: ../src/libs/image.c:667 msgid "how to handle existing metadata" msgstr "como gerenciar metadados existentes" -#: ../src/libs/image.c:601 +#: ../src/libs/image.c:670 msgid "merge" msgstr "mesclar" -#: ../src/libs/image.c:605 +#: ../src/libs/image.c:675 msgid "update image information to match changes to file" msgstr "" "atualizar informações da imagem para corresponder às mudanças no arquivo" -#: ../src/libs/image.c:609 +#: ../src/libs/image.c:680 msgid "set selection as monochrome images and activate monochrome workflow" msgstr "" "define a seleção como imagens monocromáticas e ativa o fluxo de trabalho em " "monocromático" -#: ../src/libs/image.c:613 +#: ../src/libs/image.c:684 msgid "set selection as color images" msgstr "define a seleção como imagens coloridas" -#: ../src/libs/image.c:625 +#: ../src/libs/image.c:696 msgid "duplicate virgin" msgstr "duplicar imagem sem desenvolvimento" -#: ../src/libs/import.c:263 +#: ../src/libs/import.c:264 #, c-format msgid "device \"%s\" connected on port \"%s\"." msgstr "dispositivo \"%s\" conectado na porta \"%s\"." -#: ../src/libs/import.c:273 ../src/libs/import.c:334 ../src/libs/import.c:1692 +#: ../src/libs/import.c:274 ../src/libs/import.c:335 ../src/libs/import.c:1701 msgid "copy & import from camera" msgstr "copiar & importar da câmera" -#: ../src/libs/import.c:284 ../src/libs/import.c:336 +#: ../src/libs/import.c:285 ../src/libs/import.c:337 msgid "tethered shoot" msgstr "acesso remoto" -#: ../src/libs/import.c:291 ../src/libs/import.c:337 +#: ../src/libs/import.c:292 ../src/libs/import.c:338 msgid "unmount camera" msgstr "desmontar câmera" -#: ../src/libs/import.c:312 +#: ../src/libs/import.c:313 msgid "" "camera is locked by another application\n" "make sure it is no longer mounted\n" @@ -22044,38 +22771,38 @@ "certifique-se de que ela não está mais montada no computador\n" "ou feche a aplicação que a travou" -#: ../src/libs/import.c:315 +#: ../src/libs/import.c:316 msgid "tethering and importing is disabled for this camera" msgstr "o acesso remoto e a importação foram desabilitados para esta câmera" -#: ../src/libs/import.c:317 ../src/libs/import.c:335 +#: ../src/libs/import.c:318 ../src/libs/import.c:336 msgid "mount camera" msgstr "montar câmera" -#: ../src/libs/import.c:747 +#: ../src/libs/import.c:754 #, c-format msgid "%d image out of %d selected" msgid_plural "%d images out of %d selected" msgstr[0] "%d imagem de %d selecionada" msgstr[1] "%d imagens de %d selecionadas" -#: ../src/libs/import.c:1039 +#: ../src/libs/import.c:1046 msgid "you can't delete the selected place" msgstr "você não pode remover o local selecionado" -#: ../src/libs/import.c:1153 +#: ../src/libs/import.c:1160 msgid "choose the root of the folder tree below" msgstr "selecione a raiz ou a árvore de pastas abaixo" -#: ../src/libs/import.c:1156 +#: ../src/libs/import.c:1163 msgid "places" msgstr "locais" -#: ../src/libs/import.c:1162 +#: ../src/libs/import.c:1169 msgid "restore all default places you have removed by right-click" msgstr "restaurar todos os lugares padrão que você removeu com clique-direito" -#: ../src/libs/import.c:1167 +#: ../src/libs/import.c:1174 msgid "" "add a custom place\n" "\n" @@ -22085,80 +22812,108 @@ "\n" "clique-direito em um lugar para removê-lo" -#: ../src/libs/import.c:1174 +#: ../src/libs/import.c:1181 msgid "you can add custom places using the plus icon" msgstr "você pode adicionar lugares customizados usando o ícone \"mais\"" -#: ../src/libs/import.c:1199 +#: ../src/libs/import.c:1206 msgid "select a folder to see the content" msgstr "selecione uma pasta para ver o conteúdo" -#: ../src/libs/import.c:1202 +#: ../src/libs/import.c:1209 msgid "folders" msgstr "pastas" -#: ../src/libs/import.c:1272 +#: ../src/libs/import.c:1279 msgid "home" msgstr "home" -#: ../src/libs/import.c:1284 +#: ../src/libs/import.c:1291 msgid "pictures" msgstr "imagens" -#: ../src/libs/import.c:1548 +#: ../src/libs/import.c:1557 msgid "mark already imported pictures" msgstr "marcar imagens já importadas" -#: ../src/libs/import.c:1562 +#: ../src/libs/import.c:1571 msgid "modified" msgstr "modificado" -#: ../src/libs/import.c:1567 +#: ../src/libs/import.c:1576 msgid "file 'modified date/time', may be different from 'Exif date/time'" msgstr "" "data/hora de modificação do arquivo, pode ser diferente de data/hora Exif" -#: ../src/libs/import.c:1579 +#: ../src/libs/import.c:1588 msgid "show/hide thumbnails" msgstr "mostrar/esconder miniaturas" -#: ../src/libs/import.c:1649 +#: ../src/libs/import.c:1658 msgid "naming rules" msgstr "regras para nomes" -#: ../src/libs/import.c:1690 +#: ../src/libs/import.c:1699 msgid "add to library" msgstr "adicionar à biblioteca" -#: ../src/libs/import.c:1691 +#: ../src/libs/import.c:1700 msgid "copy & import" msgstr "copiar & importar" -#: ../src/libs/import.c:1730 +#: ../src/libs/import.c:1740 msgid "select new" msgstr "selecionar novas" -#: ../src/libs/import.c:1773 +#: ../src/libs/import.c:1783 msgid "please wait while prefetching the list of images from camera..." msgstr "por favor aguarde durante pre-busca da lista de imagens da câmera..." -#: ../src/libs/import.c:1907 +#: ../src/libs/import.c:1922 msgid "invalid override date/time format" msgstr "formato inválido para sobrescrever data/hora" -#: ../src/libs/import.c:2022 +#: ../src/libs/import.c:1986 +msgid "import base directory" +msgstr "diretório base para importar" + +#: ../src/libs/import.c:1987 +msgid "" +"before copying images to the darktable base directory make sure it is " +"defined as you prefer.\n" +"further information can be found in the darktable manual.\n" +"\n" +"inspect darktable preferences -> import.\n" +"check and possibly correct the 'base directory naming pattern'" +msgstr "" +"antes de copiar imagens para o diretório base do darktable, certifique-se de " +"que ele está definido como você prefere.\n" +"mais informações podem ser obtidas no manual do darktable.\n" +"\n" +"veja preferências do darktable -> importar.\n" +"verifique e possivelmente corrija o 'padrão de nomeação de diretório base'" + +#: ../src/libs/import.c:1991 +msgid "_come back & check" +msgstr "_voltar & verificar" + +#: ../src/libs/import.c:1991 +msgid "_understood & done" +msgstr "_entendido & feito" + +#: ../src/libs/import.c:2057 msgid "add to library..." msgstr "adicionar à biblioteca..." -#: ../src/libs/import.c:2023 +#: ../src/libs/import.c:2058 msgid "add existing images to the library" msgstr "adiciona imagens existentes à biblioteca de imagens" -#: ../src/libs/import.c:2029 +#: ../src/libs/import.c:2064 msgid "copy & import..." msgstr "copiar & importar..." -#: ../src/libs/import.c:2030 +#: ../src/libs/import.c:2065 msgid "" "copy and optionally rename images before adding them to the library\n" "patterns can be defined to rename the images and specify the destination " @@ -22169,15 +22924,15 @@ "de destino" #. collapsible section -#: ../src/libs/import.c:2053 +#: ../src/libs/import.c:2088 msgid "parameters" msgstr "parâmetros" -#: ../src/libs/ioporder.c:204 +#: ../src/libs/ioporder.c:202 msgid "v3.0 for RAW input (default)" msgstr "v3.0 para entrada RAW (padrão)" -#: ../src/libs/ioporder.c:210 +#: ../src/libs/ioporder.c:208 msgid "v3.0 for JPEG/non-RAW input" msgstr "v3.0 para entrada JPEG/não RAW" @@ -22429,167 +23184,109 @@ msgid "map settings" msgstr "configurações do mapa" -#: ../src/libs/map_settings.c:107 +#: ../src/libs/map_settings.c:89 msgid "map source" msgstr "origem do mapa" -#: ../src/libs/map_settings.c:112 +#: ../src/libs/map_settings.c:90 msgid "select the source of the map. some entries might not work" msgstr "seleciona a origem do mapa. algumas entradas podem não funcionar" -#: ../src/libs/masks.c:107 +#: ../src/libs/masks.c:108 msgid "feather" msgstr "enevoamento" -#: ../src/libs/masks.c:114 -msgid "hardness (relative)" -msgstr "dureza (relativa)" - -#: ../src/libs/masks.c:115 -msgid "hardness (absolute)" -msgstr "dureza (absoluta)" - -#: ../src/libs/masks.c:116 -msgid "opacity (relative)" -msgstr "opacidade (relativa)" - -#: ../src/libs/masks.c:117 -msgid "opacity (absolute)" -msgstr "opacidade (absoluta)" - -#: ../src/libs/masks.c:118 -msgid "brush size (relative)" -msgstr "tamanho do pincel (relativo)" - -#: ../src/libs/masks.c:121 -msgid "low" -msgstr "baixa" - -#: ../src/libs/masks.c:122 -msgid "medium" -msgstr "média" - -#: ../src/libs/masks.c:123 -msgid "high" -msgstr "alta" - -#: ../src/libs/masks.c:381 +#: ../src/libs/masks.c:357 #, c-format msgid "group #%d" msgstr "grupo #%d" -#: ../src/libs/masks.c:1081 +#: ../src/libs/masks.c:1097 msgid "duplicate this shape" msgstr "duplicar esta forma" -#: ../src/libs/masks.c:1085 +#: ../src/libs/masks.c:1101 msgid "delete this shape" msgstr "excluir esta forma" -#: ../src/libs/masks.c:1091 +#: ../src/libs/masks.c:1107 msgid "delete group" msgstr "excluir grupo" -#: ../src/libs/masks.c:1098 +#: ../src/libs/masks.c:1114 msgid "remove from group" msgstr "remover do grupo" -#: ../src/libs/masks.c:1106 +#: ../src/libs/masks.c:1122 msgid "group the forms" msgstr "agrupar as formas" -#: ../src/libs/masks.c:1114 +#: ../src/libs/masks.c:1130 msgid "use inverted shape" msgstr "usar forma invertida" -#: ../src/libs/masks.c:1121 +#: ../src/libs/masks.c:1134 msgid "mode: union" msgstr "modo: união" -#: ../src/libs/masks.c:1127 +#: ../src/libs/masks.c:1136 msgid "mode: intersection" msgstr "modo: intersecção" -#: ../src/libs/masks.c:1133 +#: ../src/libs/masks.c:1138 msgid "mode: difference" msgstr "modo: diferença" -#: ../src/libs/masks.c:1139 +#: ../src/libs/masks.c:1140 msgid "mode: sum" msgstr "modo: soma" -#: ../src/libs/masks.c:1145 +#: ../src/libs/masks.c:1142 msgid "mode: exclusion" msgstr "modo: exclusão" -#: ../src/libs/masks.c:1164 +#: ../src/libs/masks.c:1158 msgid "cleanup unused shapes" msgstr "limpar formas não usadas" -#: ../src/libs/masks.c:1811 +#: ../src/libs/masks.c:1807 msgid "created shapes" msgstr "formas criadas" -#: ../src/libs/masks.c:1904 ../src/libs/masks.c:1919 ../src/libs/masks.c:1939 -#: ../src/libs/masks.c:1955 +#: ../src/libs/masks.c:1900 ../src/libs/masks.c:1915 ../src/libs/masks.c:1929 +#: ../src/libs/masks.c:1933 msgid "properties" msgstr "propriedades" -#: ../src/libs/masks.c:1907 +#: ../src/libs/masks.c:1903 msgid "no shapes selected" msgstr "nenhuma forma selecionada" -#: ../src/libs/masks.c:1940 +#: ../src/libs/masks.c:1929 msgid "pressure" msgstr "pressão" -#: ../src/libs/masks.c:1941 -msgid "" -"pen pressure control for brush masks\n" -"'off': pressure reading ignored,\n" -"'hardness'/'opacity'/'brush size': pressure reading controls specified " -"attribute,\n" -"'absolute'/'relative': pressure reading is taken directly as attribute value " -"or multiplied with pre-defined setting." -msgstr "" -"controle de pressão da caneta para máscaras de pincel\n" -"- 'desligado': leitura de pressão ignorada,\n" -" - 'dureza'/'opacidade'/'tamanho do pincel': atributos especificados nos " -"controles de leitura de pressão,\n" -" - 'absoluto'/'relativo': leitura de pressão é definida diretamente como " -"valor atribuído ou multiplicado com valor predefinido." - -#: ../src/libs/masks.c:1956 +#: ../src/libs/masks.c:1933 msgid "smoothing" msgstr "suavização" -#: ../src/libs/masks.c:1957 -msgid "" -"smoothing of brush strokes\n" -"stronger smoothing leads to fewer nodes and easier editing but with lower " -"control of accuracy." -msgstr "" -"suavização dos traços do pincel\n" -"quanto maior a suavização menor a quantidade de nós e mais fácil a edição, " -"no entanto há menor controle de precisão." - -#: ../src/libs/metadata.c:64 +#: ../src/libs/metadata.c:60 msgid "metadata editor" msgstr "editor de metadados" -#: ../src/libs/metadata.c:206 ../src/libs/metadata.c:496 -msgid "<leave unchanged>" -msgstr "<deixar sem modificações>" - -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1192 +#: ../src/libs/metadata.c:459 ../src/libs/metadata_view.c:1219 msgid "metadata settings" msgstr "configurações de metadados" -#: ../src/libs/metadata.c:685 ../src/libs/metadata_view.c:1237 +#: ../src/libs/metadata.c:461 ../src/libs/metadata_view.c:1221 +msgid "_default" +msgstr "_padrões" + +#: ../src/libs/metadata.c:516 ../src/libs/metadata_view.c:1267 msgid "visible" msgstr "visível" -#: ../src/libs/metadata.c:690 +#: ../src/libs/metadata.c:524 msgid "" "tick if the corresponding metadata is of interest for you\n" "it will be visible from metadata editor, collection and import module\n" @@ -22599,18 +23296,18 @@ "ele será visível no editor de metadados, coleção, e módulo de importação\n" "também será exportado" -#: ../src/libs/metadata.c:695 ../src/libs/tagging.c:1683 -#: ../src/libs/tagging.c:1827 +#: ../src/libs/metadata.c:529 ../src/libs/tagging.c:1705 +#: ../src/libs/tagging.c:1854 msgid "private" msgstr "privado" -#: ../src/libs/metadata.c:700 +#: ../src/libs/metadata.c:534 msgid "" "tick if you want to keep this information private (not exported with images)" msgstr "" "escolha se quiser manter esta informação privada (não exportada com a imagem)" -#: ../src/libs/metadata.c:860 +#: ../src/libs/metadata.c:691 msgid "" "metadata text\n" "ctrl+enter inserts a new line (caution, may not be compatible with standard " @@ -22628,169 +23325,181 @@ "disponíveis.\n" "pressione esc para sair da janela pop-up" -#: ../src/libs/metadata.c:905 +#: ../src/libs/metadata.c:736 msgid "write metadata for selected images" msgstr "salva os metadados nas imagens selecionadas" +#: ../src/libs/metadata.c:737 +msgid "cancel" +msgstr "cancelar" + +#: ../src/libs/metadata.c:738 +msgid "ignore changed metadata" +msgstr "ignorar metadados modificados" + #. <title>\0<description>\0<rights>\0<creator>\0<publisher> -#: ../src/libs/metadata.c:964 +#: ../src/libs/metadata.c:793 msgid "CC BY" msgstr "CC BY" -#: ../src/libs/metadata.c:965 +#: ../src/libs/metadata.c:794 msgid "Creative Commons Attribution (CC BY)" msgstr "Creative Commons Attribution (CC-BY)" -#: ../src/libs/metadata.c:966 +#: ../src/libs/metadata.c:795 msgid "CC BY-SA" msgstr "CC BY-SA" -#: ../src/libs/metadata.c:967 +#: ../src/libs/metadata.c:796 msgid "Creative Commons Attribution-ShareAlike (CC BY-SA)" msgstr "Creative Commons Attribution-ShareAlike (CC-BY-SA)" -#: ../src/libs/metadata.c:968 +#: ../src/libs/metadata.c:797 msgid "CC BY-ND" msgstr "CC BY-ND" -#: ../src/libs/metadata.c:969 +#: ../src/libs/metadata.c:798 msgid "Creative Commons Attribution-NoDerivs (CC BY-ND)" msgstr "Creative Commons Attribution-NoDerivs (CC-BY-ND)" -#: ../src/libs/metadata.c:970 +#: ../src/libs/metadata.c:799 msgid "CC BY-NC" msgstr "CC BY-NC" -#: ../src/libs/metadata.c:971 +#: ../src/libs/metadata.c:800 msgid "Creative Commons Attribution-NonCommercial (CC BY-NC)" msgstr "Creative Commons Attribution-NonCommercial (CC-BY-NC)" -#: ../src/libs/metadata.c:972 +#: ../src/libs/metadata.c:801 msgid "CC BY-NC-SA" msgstr "CC BY-NC-SA" -#: ../src/libs/metadata.c:973 +#: ../src/libs/metadata.c:802 msgid "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" msgstr "Creative Commons Attribution-NonCommercial-ShareAlike (CC-BY-NC-SA)" -#: ../src/libs/metadata.c:974 +#: ../src/libs/metadata.c:803 msgid "CC BY-NC-ND" msgstr "CC BY-NC-ND" -#: ../src/libs/metadata.c:975 +#: ../src/libs/metadata.c:804 msgid "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" msgstr "Creative Commons Attribution-NonCommercial-NoDerivs (CC-BY-NC-ND)" -#: ../src/libs/metadata.c:976 ../src/libs/metadata.c:977 +#: ../src/libs/metadata.c:805 ../src/libs/metadata.c:806 msgid "all rights reserved" msgstr "todos os direitos reservados" #. internal -#: ../src/libs/metadata_view.c:123 +#: ../src/libs/metadata_view.c:125 msgid "filmroll" msgstr "rolo de filme" -#: ../src/libs/metadata_view.c:125 +#: ../src/libs/metadata_view.c:127 msgid "group id" msgstr "identificação de grupo" -#: ../src/libs/metadata_view.c:127 +#: ../src/libs/metadata_view.c:129 msgid "version" msgstr "versão" -#: ../src/libs/metadata_view.c:130 +#: ../src/libs/metadata_view.c:132 msgid "import timestamp" msgstr "data/hora importação" -#: ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:133 msgid "change timestamp" msgstr "data/hora modificação" -#: ../src/libs/metadata_view.c:132 +#: ../src/libs/metadata_view.c:134 msgid "export timestamp" msgstr "data/hora exportação" -#: ../src/libs/metadata_view.c:133 +#: ../src/libs/metadata_view.c:135 msgid "print timestamp" msgstr "data/hora impressão" -#: ../src/libs/metadata_view.c:134 +#: ../src/libs/metadata_view.c:136 msgid "flags" msgstr "flags" -#: ../src/libs/metadata_view.c:144 +#: ../src/libs/metadata_view.c:146 +msgid "35mm equiv focal length" +msgstr "distância focal equiv 35mm" + +#: ../src/libs/metadata_view.c:148 msgid "focus distance" msgstr "distância de foco" -#: ../src/libs/metadata_view.c:146 +#: ../src/libs/metadata_view.c:150 msgid "datetime" msgstr "data/hora" -#: ../src/libs/metadata_view.c:149 +#: ../src/libs/metadata_view.c:153 msgid "export width" msgstr "largura exportada" -#: ../src/libs/metadata_view.c:150 +#: ../src/libs/metadata_view.c:154 msgid "export height" msgstr "altura exportada" -#: ../src/libs/metadata_view.c:158 +#: ../src/libs/metadata_view.c:162 msgid "longitude" msgstr "longitude" -#: ../src/libs/metadata_view.c:159 +#: ../src/libs/metadata_view.c:163 msgid "elevation" msgstr "elevação" -#: ../src/libs/metadata_view.c:163 +#: ../src/libs/metadata_view.c:167 msgid "categories" msgstr "categorias" -#: ../src/libs/metadata_view.c:170 +#: ../src/libs/metadata_view.c:174 msgid "image information" msgstr "informações da imagem" -#: ../src/libs/metadata_view.c:330 +#: ../src/libs/metadata_view.c:334 msgid "unused/deprecated" msgstr "não utilizado/obsoleto" -#: ../src/libs/metadata_view.c:331 +#: ../src/libs/metadata_view.c:335 msgid "LDR" msgstr "LDR" -#: ../src/libs/metadata_view.c:334 +#: ../src/libs/metadata_view.c:338 msgid "marked for deletion" msgstr "marcado para remoção" -#: ../src/libs/metadata_view.c:335 +#: ../src/libs/metadata_view.c:339 msgid "auto-applying presets applied" msgstr "predefinições automáticas aplicadas" -#: ../src/libs/metadata_view.c:337 +#: ../src/libs/metadata_view.c:341 msgid "has .txt" msgstr "possui .txt" -#: ../src/libs/metadata_view.c:338 +#: ../src/libs/metadata_view.c:342 msgid "has .wav" msgstr "possui .wav" -#: ../src/libs/metadata_view.c:356 +#: ../src/libs/metadata_view.c:360 #, c-format msgid "image has %d star" msgid_plural "image has %d stars" msgstr[0] "a imagem tem %d estrela" msgstr[1] "a imagem tem %d estrelas" -#: ../src/libs/metadata_view.c:432 +#: ../src/libs/metadata_view.c:436 #, c-format msgid "loader: %s" msgstr "carregador: %s" -#: ../src/libs/metadata_view.c:623 +#: ../src/libs/metadata_view.c:626 msgid "<various values>" msgstr "<vários valores>" -#: ../src/libs/metadata_view.c:636 +#: ../src/libs/metadata_view.c:639 #, c-format msgid "" "double-click to jump to film roll\n" @@ -22799,32 +23508,28 @@ "clique-duplo para pular para rolo de filme\n" "%s" -#: ../src/libs/metadata_view.c:728 +#: ../src/libs/metadata_view.c:731 #, c-format msgid "%+.2f EV" msgstr "%+.2f EV" -#: ../src/libs/metadata_view.c:735 -#, c-format -msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" -msgstr "%.1f mm (%.1f mm FF equiv, crop %.1f)" - -#: ../src/libs/metadata_view.c:740 +#: ../src/libs/metadata_view.c:737 ../src/libs/metadata_view.c:749 +#: ../src/libs/metadata_view.c:754 #, c-format msgid "%.1f mm" msgstr "%.1f mm" -#: ../src/libs/metadata_view.c:751 +#: ../src/libs/metadata_view.c:778 #, c-format msgid "infinity" msgstr "infinito" -#: ../src/libs/metadata_view.c:755 +#: ../src/libs/metadata_view.c:782 #, c-format msgid "%.2f m" msgstr "%.2f m" -#: ../src/libs/metadata_view.c:1232 +#: ../src/libs/metadata_view.c:1262 msgid "" "drag and drop one row at a time until you get the desired order\n" "untick to hide metadata which are not of interest for you\n" @@ -22834,7 +23539,7 @@ "desmarque para esconder metadados que não são de interesse\n" "se configurações diferentes forem necessárias, use predefinições" -#: ../src/libs/metadata_view.c:1388 +#: ../src/libs/metadata_view.c:1423 msgid "jump to film roll" msgstr "pula para rolo de filme" @@ -22859,7 +23564,7 @@ msgid "recent collections settings" msgstr "preferências de coleções recentes" -#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1769 +#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1753 msgid "workflow: scene-referred" msgstr "fluxo de trabalho: relativo à cena" @@ -22877,12 +23582,12 @@ #. FIXME don't check here if on/off is enabled, because it depends on image (reload_defaults) #. respond later to image changed signal -#: ../src/libs/modulegroups.c:306 ../src/libs/modulegroups.c:318 -#: ../src/libs/modulegroups.c:2427 ../src/libs/modulegroups.c:2429 +#: ../src/libs/modulegroups.c:307 ../src/libs/modulegroups.c:319 +#: ../src/libs/modulegroups.c:2411 ../src/libs/modulegroups.c:2413 msgid "on-off" msgstr "liga-desliga" -#: ../src/libs/modulegroups.c:498 ../src/libs/modulegroups.c:501 +#: ../src/libs/modulegroups.c:501 ../src/libs/modulegroups.c:504 msgid "" "this quick access widget is disabled as there are multiple instances of this " "module present. Please use the full module to access this widget..." @@ -22890,158 +23595,158 @@ "esta ferramenta básica está desligada porque há múltiplas instâncias deste " "módulo. Por favor use o módulo completo para acessar esta ferramenta." -#: ../src/libs/modulegroups.c:591 +#: ../src/libs/modulegroups.c:594 msgid "(some features may only be available in the full module interface)" msgstr "" "(algumas features podem só estar disponíveis na interface do módulo completo)" -#: ../src/libs/modulegroups.c:635 +#: ../src/libs/modulegroups.c:632 #, c-format msgid "go to the full version of the %s module" msgstr "ir para versão completa do módulo %s" -#: ../src/libs/modulegroups.c:1556 ../src/libs/modulegroups.c:1641 -#: ../src/libs/modulegroups.c:1677 ../src/libs/modulegroups.c:1727 -#: ../src/libs/modulegroups.c:1817 +#: ../src/libs/modulegroups.c:1538 ../src/libs/modulegroups.c:1624 +#: ../src/libs/modulegroups.c:1660 ../src/libs/modulegroups.c:1710 +#: ../src/libs/modulegroups.c:1801 msgctxt "modulegroup" msgid "base" msgstr "base" -#: ../src/libs/modulegroups.c:1575 +#: ../src/libs/modulegroups.c:1557 msgctxt "modulegroup" msgid "tone" msgstr "tom" -#: ../src/libs/modulegroups.c:1584 ../src/libs/modulegroups.c:1691 -#: ../src/libs/modulegroups.c:1741 +#: ../src/libs/modulegroups.c:1566 ../src/libs/modulegroups.c:1674 +#: ../src/libs/modulegroups.c:1724 msgctxt "modulegroup" msgid "color" msgstr "cor" -#: ../src/libs/modulegroups.c:1599 ../src/libs/modulegroups.c:1699 -#: ../src/libs/modulegroups.c:1746 +#: ../src/libs/modulegroups.c:1582 ../src/libs/modulegroups.c:1682 +#: ../src/libs/modulegroups.c:1730 msgctxt "modulegroup" msgid "correct" msgstr "correção" -#: ../src/libs/modulegroups.c:1617 ../src/libs/modulegroups.c:1711 -#: ../src/libs/modulegroups.c:1758 ../src/libs/modulegroups.c:2321 +#: ../src/libs/modulegroups.c:1600 ../src/libs/modulegroups.c:1694 +#: ../src/libs/modulegroups.c:1742 ../src/libs/modulegroups.c:2305 msgctxt "modulegroup" msgid "effect" msgstr "efeito" -#: ../src/libs/modulegroups.c:1635 +#: ../src/libs/modulegroups.c:1618 msgid "modules: all" msgstr "módulos: todos" -#: ../src/libs/modulegroups.c:1656 +#: ../src/libs/modulegroups.c:1639 msgctxt "modulegroup" msgid "grading" msgstr "gradação de cores" -#: ../src/libs/modulegroups.c:1664 ../src/libs/modulegroups.c:2325 +#: ../src/libs/modulegroups.c:1647 ../src/libs/modulegroups.c:2309 msgctxt "modulegroup" msgid "effects" msgstr "efeitos" -#: ../src/libs/modulegroups.c:1672 +#: ../src/libs/modulegroups.c:1655 msgid "workflow: beginner" msgstr "fluxo de trabalho: iniciante" -#: ../src/libs/modulegroups.c:1721 +#: ../src/libs/modulegroups.c:1704 msgid "workflow: display-referred" msgstr "fluxo de trabalho: relativo à exibição" -#: ../src/libs/modulegroups.c:1773 +#: ../src/libs/modulegroups.c:1757 msgid "search only" msgstr "buscar apenas" -#: ../src/libs/modulegroups.c:1779 ../src/libs/modulegroups.c:2090 -#: ../src/libs/modulegroups.c:2599 +#: ../src/libs/modulegroups.c:1763 ../src/libs/modulegroups.c:2074 +#: ../src/libs/modulegroups.c:2583 msgctxt "modulegroup" msgid "deprecated" msgstr "descontinuados/obsoletos" -#: ../src/libs/modulegroups.c:1792 +#: ../src/libs/modulegroups.c:1776 msgid "previous config" msgstr "configuração anterior" -#: ../src/libs/modulegroups.c:1793 +#: ../src/libs/modulegroups.c:1777 msgid "previous layout" msgstr "disposição anterior" -#: ../src/libs/modulegroups.c:1797 +#: ../src/libs/modulegroups.c:1781 msgid "previous config with new layout" msgstr "configuração anterior com nova disposição" -#: ../src/libs/modulegroups.c:1957 ../src/libs/modulegroups.c:2472 -#: ../src/libs/modulegroups.c:2484 +#: ../src/libs/modulegroups.c:1941 ../src/libs/modulegroups.c:2456 +#: ../src/libs/modulegroups.c:2468 msgid "remove this widget" msgstr "remover esta ferramenta" -#: ../src/libs/modulegroups.c:2107 ../src/libs/modulegroups.c:2347 +#: ../src/libs/modulegroups.c:2091 ../src/libs/modulegroups.c:2331 msgid "remove this module" msgstr "remover este módulo" #. does it belong to recommended modules ? -#: ../src/libs/modulegroups.c:2316 +#: ../src/libs/modulegroups.c:2300 msgid "base" msgstr "base" -#: ../src/libs/modulegroups.c:2319 +#: ../src/libs/modulegroups.c:2303 msgid "tone" msgstr "tom" -#: ../src/libs/modulegroups.c:2322 +#: ../src/libs/modulegroups.c:2306 msgid "technical" msgstr "técnico" -#: ../src/libs/modulegroups.c:2323 +#: ../src/libs/modulegroups.c:2307 msgid "grading" msgstr "gradação de cores" -#: ../src/libs/modulegroups.c:2329 ../src/libs/modulegroups.c:2337 +#: ../src/libs/modulegroups.c:2313 ../src/libs/modulegroups.c:2321 msgid "add this module" msgstr "adicionar este módulo" #. show the submenu with all the modules -#: ../src/libs/modulegroups.c:2359 ../src/libs/modulegroups.c:2559 +#: ../src/libs/modulegroups.c:2343 ../src/libs/modulegroups.c:2543 msgid "all available modules" msgstr "todos os módulos disponíveis" -#: ../src/libs/modulegroups.c:2367 +#: ../src/libs/modulegroups.c:2351 msgid "add module" msgstr "adicionar módulo" -#: ../src/libs/modulegroups.c:2372 +#: ../src/libs/modulegroups.c:2356 msgid "remove module" msgstr "remover módulo" -#: ../src/libs/modulegroups.c:2478 +#: ../src/libs/modulegroups.c:2462 msgid "header needed for other widgets" msgstr "cabeçalho necessário para outras ferramentas" -#: ../src/libs/modulegroups.c:2494 ../src/libs/modulegroups.c:2501 +#: ../src/libs/modulegroups.c:2478 ../src/libs/modulegroups.c:2485 msgid "add this widget" msgstr "adicionar esta ferramenta" -#: ../src/libs/modulegroups.c:2514 +#: ../src/libs/modulegroups.c:2498 msgid "currently invisible" msgstr "autalmente invisível" -#: ../src/libs/modulegroups.c:2543 +#: ../src/libs/modulegroups.c:2527 msgid "add widget" msgstr "adicionar ferramenta" -#: ../src/libs/modulegroups.c:2548 +#: ../src/libs/modulegroups.c:2532 msgid "remove widget" msgstr "remover ferramenta" -#: ../src/libs/modulegroups.c:2653 +#: ../src/libs/modulegroups.c:2637 msgid "show all history modules" msgstr "mostrar todos os módulos do histórico" -#: ../src/libs/modulegroups.c:2656 ../src/libs/modulegroups.c:3834 +#: ../src/libs/modulegroups.c:2640 ../src/libs/modulegroups.c:3836 msgid "" "show modules that are present in the history stack, regardless of whether or " "not they are currently enabled" @@ -23049,7 +23754,7 @@ "mostrar módulos presenta na pilha do histórico, independente de estarem " "habilitados" -#: ../src/libs/modulegroups.c:2747 ../src/libs/modulegroups.c:2816 +#: ../src/libs/modulegroups.c:2731 ../src/libs/modulegroups.c:2823 msgid "" "the following modules are deprecated because they have internal design " "mistakes that can't be corrected and alternative modules that correct them.\n" @@ -23060,19 +23765,19 @@ "esses problemas.\n" "eles serão removidos para novas edições na próxima versão." -#: ../src/libs/modulegroups.c:2775 ../src/libs/modulegroups.c:2776 +#: ../src/libs/modulegroups.c:2782 ../src/libs/modulegroups.c:2783 msgid "quick access panel" msgstr "painel de acesso rápido" -#: ../src/libs/modulegroups.c:2786 +#: ../src/libs/modulegroups.c:2793 msgid "show only active modules" msgstr "mostrar apenas módulos ativos" -#: ../src/libs/modulegroups.c:2787 +#: ../src/libs/modulegroups.c:2794 msgid "active modules" msgstr "módulos ativos" -#: ../src/libs/modulegroups.c:2792 +#: ../src/libs/modulegroups.c:2799 msgid "" "presets\n" "ctrl+click to manage" @@ -23080,143 +23785,147 @@ "predefinições\n" "ctrl+clique para gerenciar" -#: ../src/libs/modulegroups.c:2798 +#: ../src/libs/modulegroups.c:2805 msgid "search modules" msgstr "busca módulos" -#: ../src/libs/modulegroups.c:2799 +#: ../src/libs/modulegroups.c:2806 msgid "search modules by name or tag" msgstr "procurar módulos por nome ou etiqueta" -#: ../src/libs/modulegroups.c:2809 +#: ../src/libs/modulegroups.c:2816 msgid "clear text" msgstr "limpar texto" -#: ../src/libs/modulegroups.c:3051 +#: ../src/libs/modulegroups.c:3056 msgid "basic icon" msgstr "ícone de básico" -#: ../src/libs/modulegroups.c:3061 +#: ../src/libs/modulegroups.c:3066 msgid "active icon" msgstr "ícone ativo" -#: ../src/libs/modulegroups.c:3071 +#: ../src/libs/modulegroups.c:3076 msgid "color icon" msgstr "ícone de cor" -#: ../src/libs/modulegroups.c:3081 +#: ../src/libs/modulegroups.c:3086 msgid "correct icon" msgstr "ícone de correções" -#: ../src/libs/modulegroups.c:3091 +#: ../src/libs/modulegroups.c:3096 msgid "effect icon" msgstr "ícone de efeitos" -#: ../src/libs/modulegroups.c:3101 +#: ../src/libs/modulegroups.c:3106 msgid "favorites icon" msgstr "ícone de favoritos" -#: ../src/libs/modulegroups.c:3111 +#: ../src/libs/modulegroups.c:3116 msgid "tone icon" msgstr "ícone de tom" -#: ../src/libs/modulegroups.c:3121 +#: ../src/libs/modulegroups.c:3126 msgid "grading icon" msgstr "ícone de gradação" -#: ../src/libs/modulegroups.c:3131 +#: ../src/libs/modulegroups.c:3136 msgid "technical icon" msgstr "ícone de técnico" -#: ../src/libs/modulegroups.c:3164 +#: ../src/libs/modulegroups.c:3169 msgid "quick access panel widgets" msgstr "ferramentas do painel de acesso rápido" -#: ../src/libs/modulegroups.c:3166 +#: ../src/libs/modulegroups.c:3171 msgid "quick access" msgstr "acesso rápido" -#: ../src/libs/modulegroups.c:3186 +#: ../src/libs/modulegroups.c:3191 msgid "add widget to the quick access panel" msgstr "adicionar ferramenta ao painel de acesso rápido" -#: ../src/libs/modulegroups.c:3218 +#: ../src/libs/modulegroups.c:3223 msgid "group icon" msgstr "ícone de grupo" -#: ../src/libs/modulegroups.c:3227 +#: ../src/libs/modulegroups.c:3232 msgid "group name" msgstr "nome do grupo" -#: ../src/libs/modulegroups.c:3238 +#: ../src/libs/modulegroups.c:3243 msgid "remove group" msgstr "remover grupo" -#: ../src/libs/modulegroups.c:3264 +#: ../src/libs/modulegroups.c:3269 msgid "move group to the left" msgstr "mover grupo para a esquerda" -#: ../src/libs/modulegroups.c:3272 +#: ../src/libs/modulegroups.c:3277 msgid "add module to the group" msgstr "adicionar módulo ao grupo" -#: ../src/libs/modulegroups.c:3283 +#: ../src/libs/modulegroups.c:3288 msgid "move group to the right" msgstr "mover grupo para a direita" -#: ../src/libs/modulegroups.c:3463 +#: ../src/libs/modulegroups.c:3464 msgid "rename preset" msgstr "renomear predefinição" -#: ../src/libs/modulegroups.c:3470 +#: ../src/libs/modulegroups.c:3467 +msgid "_rename" +msgstr "_renomear" + +#: ../src/libs/modulegroups.c:3473 msgid "new preset name:" msgstr "novo nome da predefinição: " -#: ../src/libs/modulegroups.c:3471 +#: ../src/libs/modulegroups.c:3474 msgid "a preset with this name already exists!" msgstr "uma predefinição com este nome já existe!" -#: ../src/libs/modulegroups.c:3804 +#: ../src/libs/modulegroups.c:3806 msgid "preset: " msgstr "predefinição: " -#: ../src/libs/modulegroups.c:3811 +#: ../src/libs/modulegroups.c:3813 msgid "remove the preset" msgstr "remover a predefinição" -#: ../src/libs/modulegroups.c:3813 +#: ../src/libs/modulegroups.c:3815 msgid "duplicate the preset" msgstr "duplicar a predefinição" -#: ../src/libs/modulegroups.c:3815 +#: ../src/libs/modulegroups.c:3817 msgid "rename the preset" msgstr "renomear a predefinição" -#: ../src/libs/modulegroups.c:3817 +#: ../src/libs/modulegroups.c:3819 msgid "create a new empty preset" msgstr "criar nova predefinição vazia" -#: ../src/libs/modulegroups.c:3825 +#: ../src/libs/modulegroups.c:3827 msgid "show search line" msgstr "mostrar linha de busca" -#: ../src/libs/modulegroups.c:3828 +#: ../src/libs/modulegroups.c:3830 msgid "show quick access panel" msgstr "mostrar painel de acesso rápido" -#: ../src/libs/modulegroups.c:3831 +#: ../src/libs/modulegroups.c:3833 msgid "show all history modules in active group" msgstr "mostrar todos os módulos do histórico no grupo atual" -#: ../src/libs/modulegroups.c:3843 +#: ../src/libs/modulegroups.c:3845 msgid "auto-apply this preset" msgstr "auto-aplicar esta predefinição" -#: ../src/libs/modulegroups.c:3858 +#: ../src/libs/modulegroups.c:3860 msgid "module groups" msgstr "grupos de módulos" -#: ../src/libs/modulegroups.c:3875 +#: ../src/libs/modulegroups.c:3877 msgid "" "this is a built-in read-only preset. duplicate it if you want to make changes" msgstr "" @@ -23227,16 +23936,16 @@ msgid "navigation" msgstr "navegação" -#: ../src/libs/navigation.c:111 ../src/libs/navigation.c:191 +#: ../src/libs/navigation.c:112 ../src/libs/navigation.c:194 msgctxt "navigationbox" msgid "fill" msgstr "preenchimento" -#: ../src/libs/navigation.c:114 ../src/libs/navigation.c:189 +#: ../src/libs/navigation.c:115 ../src/libs/navigation.c:192 msgid "small" msgstr "pequeno" -#: ../src/libs/navigation.c:151 +#: ../src/libs/navigation.c:154 msgid "" "navigation\n" "click or drag to position zoomed area in center view" @@ -23244,35 +23953,35 @@ "navegação\n" "clique ou arraste para posicionar a área em zoom na visão central" -#: ../src/libs/navigation.c:173 +#: ../src/libs/navigation.c:176 msgid "hide navigation thumbnail" msgstr "esconde miniatura de navegação" -#: ../src/libs/navigation.c:187 +#: ../src/libs/navigation.c:190 msgid "image zoom level" msgstr "nível de zoom da imagem" -#: ../src/libs/navigation.c:192 +#: ../src/libs/navigation.c:195 msgid "50%" msgstr "50%" -#: ../src/libs/navigation.c:193 +#: ../src/libs/navigation.c:196 msgid "100%" msgstr "100%" -#: ../src/libs/navigation.c:194 +#: ../src/libs/navigation.c:197 msgid "200%" msgstr "200%" -#: ../src/libs/navigation.c:195 +#: ../src/libs/navigation.c:198 msgid "400%" msgstr "400%" -#: ../src/libs/navigation.c:196 +#: ../src/libs/navigation.c:199 msgid "800%" msgstr "800%" -#: ../src/libs/navigation.c:197 +#: ../src/libs/navigation.c:200 msgid "1600%" msgstr "1600%" @@ -23516,15 +24225,15 @@ msgid "print with current settings" msgstr "imprime com configuração atual" -#: ../src/libs/select.c:136 +#: ../src/libs/select.c:137 msgid "select all images in current collection" msgstr "seleciona todas imagens na coleção atual" -#: ../src/libs/select.c:140 +#: ../src/libs/select.c:141 msgid "clear selection" msgstr "limpa seleção" -#: ../src/libs/select.c:144 +#: ../src/libs/select.c:145 msgid "" "select unselected images\n" "in current collection" @@ -23532,7 +24241,7 @@ "seleciona images não selecionadas\n" "na coleção atual" -#: ../src/libs/select.c:148 +#: ../src/libs/select.c:149 msgid "" "select all images which are in the same\n" "film roll as the selected images" @@ -23540,7 +24249,7 @@ "seleciona todas as imagens que estão no mesmo\n" "rolo de filme que as imagens selecionadas" -#: ../src/libs/select.c:152 +#: ../src/libs/select.c:153 msgid "" "select untouched images in\n" "current collection" @@ -23560,29 +24269,33 @@ msgid "create" msgstr "criar" -#: ../src/libs/snapshots.c:92 +#: ../src/libs/snapshots.c:88 msgid "snapshots" msgstr "instantânea" -#: ../src/libs/snapshots.c:141 +#: ../src/libs/snapshots.c:137 msgctxt "snapshot sign" msgid "S" msgstr "S" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:662 +msgid "snapshots for removed image have been deleted" +msgstr "instantâneas da imagem removida foram removidos" + +#: ../src/libs/snapshots.c:703 #, c-format msgid "↗ %s '%s'" msgstr "↗ %s '%s'" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:703 msgid "this snapshot was taken from" msgstr "esta captura instantânea foi tirada de" -#: ../src/libs/snapshots.c:663 +#: ../src/libs/snapshots.c:742 msgid "take snapshot" msgstr "captura instantânea" -#: ../src/libs/snapshots.c:665 +#: ../src/libs/snapshots.c:744 msgid "" "take snapshot to compare with another image or the same image at another " "stage of development" @@ -23590,7 +24303,7 @@ "tira uma instantânea para comparar com outra imagem ou a mesma imagem em " "outro estágio de revelação" -#: ../src/libs/snapshots.c:734 +#: ../src/libs/snapshots.c:790 msgid "toggle last snapshot" msgstr "alterna última instantânea" @@ -23607,7 +24320,11 @@ msgstr[0] "você realmente deseja excluir %d estilo?" msgstr[1] "você realmente deseja excluir %d estilos?" -#: ../src/libs/styles.c:444 ../src/libs/styles.c:627 +#: ../src/libs/styles.c:441 ../src/libs/styles.c:626 +msgid "_overwrite" +msgstr "_sobrescrever" + +#: ../src/libs/styles.c:446 ../src/libs/styles.c:631 #, c-format msgid "" "style `%s' already exists.\n" @@ -23616,24 +24333,24 @@ "estilo `%s' já existe.\n" "Deseja sobrescrever?\n" -#: ../src/libs/styles.c:446 ../src/libs/styles.c:629 +#: ../src/libs/styles.c:448 ../src/libs/styles.c:633 msgid "apply this option to all existing styles" msgstr "auto-aplicar esta opção a todos os estilos existentes" -#: ../src/libs/styles.c:509 +#: ../src/libs/styles.c:511 #, c-format msgid "style %s was successfully exported" msgstr "estilo %s foi exportado com sucesso" -#: ../src/libs/styles.c:526 +#: ../src/libs/styles.c:528 msgid "select style" msgstr "selecionar estilo" -#: ../src/libs/styles.c:536 +#: ../src/libs/styles.c:538 msgid "darktable style files" msgstr "arquivos de estilo do darktable" -#: ../src/libs/styles.c:815 +#: ../src/libs/styles.c:819 msgid "" "available styles,\n" "double-click to apply" @@ -23641,73 +24358,73 @@ "estilos disponíveis,\n" "clique-duplo para aplicar" -#: ../src/libs/styles.c:824 ../src/libs/styles.c:825 +#: ../src/libs/styles.c:828 ../src/libs/styles.c:829 msgid "filter style names" msgstr "filtrar nomes de estilo" -#: ../src/libs/styles.c:837 +#: ../src/libs/styles.c:841 msgid "create duplicate" msgstr "criar duplicata" -#: ../src/libs/styles.c:844 +#: ../src/libs/styles.c:848 msgid "creates a duplicate of the image before applying style" msgstr "cria uma duplicata da imagem antes de aplicar o estilo" -#: ../src/libs/styles.c:862 +#: ../src/libs/styles.c:866 msgid "create..." msgstr "criar..." -#: ../src/libs/styles.c:864 +#: ../src/libs/styles.c:868 msgid "create styles from history stack of selected images" msgstr "cria estilos a partir do histórico das imagens selecionadas" -#: ../src/libs/styles.c:869 ../src/libs/tagging.c:2252 +#: ../src/libs/styles.c:873 ../src/libs/tagging.c:2283 msgid "edit..." msgstr "editar..." -#: ../src/libs/styles.c:871 +#: ../src/libs/styles.c:875 msgid "edit the selected styles in list above" msgstr "edita os estilos selecionados na lista acima" -#: ../src/libs/styles.c:878 +#: ../src/libs/styles.c:882 msgid "removes the selected styles in list above" msgstr "exclui os estilos selecionados na lista acima" -#: ../src/libs/styles.c:885 +#: ../src/libs/styles.c:889 msgid "import styles from a style files" msgstr "importa estilo de um arquivo de estilo" -#: ../src/libs/styles.c:892 +#: ../src/libs/styles.c:896 msgid "export the selected styles into a style files" msgstr "exporta os estilos selecionados para um arquivo de estilo" -#: ../src/libs/styles.c:899 +#: ../src/libs/styles.c:903 msgid "apply the selected styles in list above to selected images" msgstr "aplica os estilos selecionados na lista acima às imagens selecionadas" -#: ../src/libs/tagging.c:105 +#: ../src/libs/tagging.c:109 msgid "tagging" msgstr "etiquetas" -#: ../src/libs/tagging.c:1255 +#: ../src/libs/tagging.c:1258 msgid "attach tag to all" msgstr "anexar etiqueta a todas" -#: ../src/libs/tagging.c:1263 ../src/libs/tagging.c:2225 +#: ../src/libs/tagging.c:1266 ../src/libs/tagging.c:2256 msgid "detach tag" msgstr "desanexar etiqueta" -#: ../src/libs/tagging.c:1483 +#: ../src/libs/tagging.c:1486 msgid "delete tag?" msgstr "excluir etiqueta?" -#: ../src/libs/tagging.c:1490 ../src/libs/tagging.c:1578 -#: ../src/libs/tagging.c:1789 ../src/libs/tagging.c:2063 +#: ../src/libs/tagging.c:1496 ../src/libs/tagging.c:1587 +#: ../src/libs/tagging.c:1814 ../src/libs/tagging.c:2093 #, c-format msgid "selected: %s" msgstr "selecionado: %s " -#: ../src/libs/tagging.c:1497 +#: ../src/libs/tagging.c:1503 #, c-format msgid "" "do you really want to delete the tag `%s'?\n" @@ -23722,73 +24439,73 @@ "você realmente deseja excluir a etiqueta `%s'?\n" "%d imagens atribuídas a esta etiqueta!" -#: ../src/libs/tagging.c:1531 +#: ../src/libs/tagging.c:1537 #, c-format msgid "tag %s removed" msgstr "etiqueta %s removida" -#: ../src/libs/tagging.c:1571 +#: ../src/libs/tagging.c:1577 msgid "delete node?" msgstr "excluir nó?" -#: ../src/libs/tagging.c:1585 +#: ../src/libs/tagging.c:1594 #, c-format msgid "<u>%d</u> tag will be deleted" msgid_plural "<u>%d</u> tags will be deleted" msgstr[0] "<u>%d</u> etiqueta será removida." msgstr[1] "<u>%d</u> etiquetas serão removidas." -#: ../src/libs/tagging.c:1590 ../src/libs/tagging.c:1801 -#: ../src/libs/tagging.c:2075 +#: ../src/libs/tagging.c:1599 ../src/libs/tagging.c:1826 +#: ../src/libs/tagging.c:2105 #, c-format msgid "<u>%d</u> image will be updated" msgid_plural "<u>%d</u> images will be updated" msgstr[0] "<u>%d</u> imagem será atualizada" msgstr[1] "<u>%d</u> imagens serão atualizadas" -#: ../src/libs/tagging.c:1616 +#: ../src/libs/tagging.c:1625 #, c-format msgid "%d tags removed" msgstr "%d etiquetas removidas" -#: ../src/libs/tagging.c:1652 +#: ../src/libs/tagging.c:1668 msgid "create tag" msgstr "criar etiqueta" -#: ../src/libs/tagging.c:1662 ../src/libs/tagging.c:1809 +#: ../src/libs/tagging.c:1681 ../src/libs/tagging.c:1834 msgid "name: " msgstr "nome: " -#: ../src/libs/tagging.c:1674 +#: ../src/libs/tagging.c:1696 #, c-format msgid "add to: \"%s\" " msgstr "adicionar a: \"%s\" " -#: ../src/libs/tagging.c:1680 ../src/libs/tagging.c:1824 +#: ../src/libs/tagging.c:1702 ../src/libs/tagging.c:1851 msgid "category" msgstr "categoria" -#: ../src/libs/tagging.c:1689 ../src/libs/tagging.c:1833 +#: ../src/libs/tagging.c:1711 ../src/libs/tagging.c:1860 msgid "synonyms: " msgstr "sinônimos: " -#: ../src/libs/tagging.c:1706 ../src/libs/tagging.c:1855 -#: ../src/libs/tagging.c:2097 +#: ../src/libs/tagging.c:1728 ../src/libs/tagging.c:1882 +#: ../src/libs/tagging.c:2128 msgid "empty tag is not allowed, aborting" msgstr "etiqueta vazia não permitido, abortando" -#: ../src/libs/tagging.c:1717 +#: ../src/libs/tagging.c:1739 msgid "tag name already exists. aborting." msgstr "etiqueta já existe. abortando." -#: ../src/libs/tagging.c:1796 ../src/libs/tagging.c:2070 +#: ../src/libs/tagging.c:1821 ../src/libs/tagging.c:2100 #, c-format msgid "<u>%d</u> tag will be updated" msgid_plural "<u>%d</u> tags will be updated" msgstr[0] "<u>%d</u> etiqueta será atualizada." msgstr[1] "<u>%d</u> etiquetas serão atualizadas." -#: ../src/libs/tagging.c:1857 +#: ../src/libs/tagging.c:1884 msgid "" "'|' character is not allowed for renaming tag.\n" "to modify the hierarchy use rename path instead. Aborting." @@ -23796,100 +24513,100 @@ "caractere '|' não é permitido para renomear etiqueta.\n" "para modificar a hierarquia use renomear caminho. Abortando." -#: ../src/libs/tagging.c:1896 ../src/libs/tagging.c:2004 +#: ../src/libs/tagging.c:1923 ../src/libs/tagging.c:2031 #, c-format msgid "at least one new tag name (%s) already exists, aborting" msgstr "pelo menos um nome de etiqueta ('%s') já existe, abortando" -#: ../src/libs/tagging.c:2056 +#: ../src/libs/tagging.c:2083 msgid "change path" msgstr "mudar caminho" -#: ../src/libs/tagging.c:2099 +#: ../src/libs/tagging.c:2130 msgid "'|' misplaced, empty tag is not allowed, aborting" msgstr "'|' em local incorreto, etiqueta vazio não permitido, abortando" -#: ../src/libs/tagging.c:2195 +#: ../src/libs/tagging.c:2226 #, c-format msgid "tag %s created" msgstr "etiqueta %s criada" -#: ../src/libs/tagging.c:2221 +#: ../src/libs/tagging.c:2252 msgid "attach tag" msgstr "anexar etiqueta" -#: ../src/libs/tagging.c:2234 +#: ../src/libs/tagging.c:2265 msgid "create tag..." msgstr "criar etiqueta..." -#: ../src/libs/tagging.c:2240 +#: ../src/libs/tagging.c:2271 msgid "delete tag" msgstr "excluir etiqueta" -#: ../src/libs/tagging.c:2247 +#: ../src/libs/tagging.c:2278 msgid "delete node" msgstr "excluir nó" -#: ../src/libs/tagging.c:2260 +#: ../src/libs/tagging.c:2291 msgid "change path..." msgstr "mudar caminho..." -#: ../src/libs/tagging.c:2270 +#: ../src/libs/tagging.c:2301 msgid "set as a tag" msgstr "definir como etiqueta" -#: ../src/libs/tagging.c:2281 +#: ../src/libs/tagging.c:2312 msgid "copy to entry" msgstr "copiar para entrada de dados" -#: ../src/libs/tagging.c:2298 +#: ../src/libs/tagging.c:2329 msgid "go to tag collection" msgstr "ir para a coleção de etiquetas" -#: ../src/libs/tagging.c:2304 +#: ../src/libs/tagging.c:2335 msgid "go back to work" msgstr "voltar ao trabalho" -#: ../src/libs/tagging.c:2461 +#: ../src/libs/tagging.c:2492 #, c-format msgid "%s" msgstr "%s" -#: ../src/libs/tagging.c:2462 +#: ../src/libs/tagging.c:2493 msgid "(private)" msgstr "(privado)" -#: ../src/libs/tagging.c:2488 +#: ../src/libs/tagging.c:2519 msgid "select a keyword file" msgstr "selecione um arquivo de palavras-chave" -#: ../src/libs/tagging.c:2501 +#: ../src/libs/tagging.c:2532 msgid "error importing tags" msgstr "erro importando etiquetas" -#: ../src/libs/tagging.c:2503 +#: ../src/libs/tagging.c:2534 #, c-format msgid "%zd tags imported" msgstr "%zd etiquetas importadas" -#: ../src/libs/tagging.c:2524 +#: ../src/libs/tagging.c:2555 msgid "select file to export to" msgstr "selecione arquivo para exportar" -#: ../src/libs/tagging.c:2538 +#: ../src/libs/tagging.c:2569 msgid "error exporting tags" msgstr "erro exportando etiquetas" -#: ../src/libs/tagging.c:2540 +#: ../src/libs/tagging.c:2571 #, c-format msgid "%zd tags exported" msgstr "%zd etiquetas exportadas" -#: ../src/libs/tagging.c:2964 +#: ../src/libs/tagging.c:2995 msgid "drop to root" msgstr "soltar na raiz" -#: ../src/libs/tagging.c:3100 +#: ../src/libs/tagging.c:3131 msgid "" "attached tags\n" "press Delete or double-click to detach\n" @@ -23901,47 +24618,47 @@ "clique-direito para outras ações em etiquetas anexadas,\n" "Tab para dar o foco à entrada" -#: ../src/libs/tagging.c:3111 +#: ../src/libs/tagging.c:3142 msgid "attach" msgstr "anexar" -#: ../src/libs/tagging.c:3112 +#: ../src/libs/tagging.c:3143 msgid "attach tag to all selected images" msgstr "anexa etiqueta a todas as imagens selecionadas" -#: ../src/libs/tagging.c:3115 +#: ../src/libs/tagging.c:3146 msgid "detach" msgstr "desanexar" -#: ../src/libs/tagging.c:3116 +#: ../src/libs/tagging.c:3147 msgid "detach tag from all selected images" msgstr "desanexa etiqueta das imagens selecionadas" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "toggle list with / without hierarchy" msgstr "alterna lista com / sem hierarquia" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "hide" msgstr "esconder" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "toggle sort by name or by count" msgstr "escolhe ordenar por nome ou contagem" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "sort" msgstr "ordenar" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "toggle show or not darktable tags" msgstr "alterna mostrar etiquetas darktable" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "dttags" msgstr "etiquetas do darktable" -#: ../src/libs/tagging.c:3149 +#: ../src/libs/tagging.c:3180 msgid "" "enter tag name\n" "press Enter to create a new tag and attach it on selected images\n" @@ -23955,11 +24672,11 @@ "pressione shift+Tab para selecionar somente a primeira etiqueta de usuário " "anexada" -#: ../src/libs/tagging.c:3160 ../src/libs/tagging.c:3166 +#: ../src/libs/tagging.c:3191 ../src/libs/tagging.c:3197 msgid "clear entry" msgstr "limpar texto" -#: ../src/libs/tagging.c:3213 +#: ../src/libs/tagging.c:3244 msgid "" "tag dictionary,\n" "Enter or double-click to attach selected tag on selected images\n" @@ -23976,7 +24693,7 @@ "clique-direito para outras ações na etiqueta selecionada,\n" "shift+Tab para dar foco à entrada" -#: ../src/libs/tagging.c:3248 +#: ../src/libs/tagging.c:3279 msgid "" "create a new tag with the\n" "name you entered" @@ -23984,43 +24701,43 @@ "cria nova etiqueta com o\n" "nome inserido" -#: ../src/libs/tagging.c:3251 +#: ../src/libs/tagging.c:3282 msgid "import tags from a Lightroom keyword file" msgstr "importa etiquetas de um arquivo de palavras-chave do Lightroom" -#: ../src/libs/tagging.c:3254 +#: ../src/libs/tagging.c:3285 msgid "export all tags to a Lightroom keyword file" msgstr "" "exporta todas as etiquetas para um arquivo de palavras-chave do Lightroom" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "toggle list / tree view" msgstr "alterna visualização em árvore" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "tree" msgstr "árvore" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "toggle list with / without suggestion" msgstr "alterna lista com / sem sugestão" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "suggestion" msgstr "sugestão" -#: ../src/libs/tagging.c:3282 +#: ../src/libs/tagging.c:3313 msgid "redo last tag" msgstr "repetir última etiqueta" -#: ../src/libs/tagging.c:3365 +#: ../src/libs/tagging.c:3396 msgid "" "tag shortcut is not active with tag tree view. please switch to list view" msgstr "" "atalho de etiqueta não é ativo na visualização de árvore de etiquetas. por " "favor, mude para visualização de lista" -#: ../src/libs/tagging.c:3469 +#: ../src/libs/tagging.c:3500 msgid "tagging settings" msgstr "configurações de etiquetagem" @@ -24037,30 +24754,6 @@ msgid "toggle color label of selected images" msgstr "alterna etiqueta de cor das imagens selecionadas" -#: ../src/libs/tools/darktable.c:284 -#, c-format -msgid "copyright (c) the authors 2009-%s" -msgstr "copyright (c) os autores 2009-%s" - -#: ../src/libs/tools/darktable.c:288 -msgid "organize and develop images from digital cameras" -msgstr "organize e trate imagens de câmeras digitais" - -#: ../src/libs/tools/darktable.c:300 -msgid "all those of you that made previous releases possible" -msgstr "e aqueles de vocês que tornaram as releases anteriores possíveis" - -#: ../src/libs/tools/darktable.c:305 -msgid "and..." -msgstr "e..." - -#: ../src/libs/tools/darktable.c:307 -msgid "translator-credits" -msgstr "" -"Guilherme Brondani Torri\n" -"Frido Claudino\n" -"Jerônimo Pellegrini" - #: ../src/libs/tools/filmstrip.c:45 msgid "filmstrip" msgstr "rolo de filme" @@ -24380,35 +25073,35 @@ msgid "click to enter culling layout in dynamic mode." msgstr "clique para entrar no modo de seleção dinâmico" -#: ../src/libs/tools/lighttable.c:368 +#: ../src/libs/tools/lighttable.c:365 msgid "toggle filemanager layout" msgstr "alternar modo de gerenciador de arquivos" -#: ../src/libs/tools/lighttable.c:371 +#: ../src/libs/tools/lighttable.c:368 msgid "click to enter filemanager layout." msgstr "clique para entrar no modo de gerenciador de arquivos" -#: ../src/libs/tools/lighttable.c:377 +#: ../src/libs/tools/lighttable.c:374 msgid "toggle zoomable lighttable layout" msgstr "alternar disposição de mesa de luz ampliável" -#: ../src/libs/tools/lighttable.c:380 +#: ../src/libs/tools/lighttable.c:377 msgid "click to enter zoomable lighttable layout." msgstr "clique para entrar no modo de mesa de luz ampliável" -#: ../src/libs/tools/lighttable.c:386 +#: ../src/libs/tools/lighttable.c:383 msgid "toggle culling mode" msgstr "alterna modo de seleção" -#: ../src/libs/tools/lighttable.c:394 +#: ../src/libs/tools/lighttable.c:391 msgid "toggle culling dynamic mode" msgstr "alterna modo de seleção dinâmico" -#: ../src/libs/tools/lighttable.c:441 +#: ../src/libs/tools/lighttable.c:438 msgid "toggle culling zoom mode" msgstr "alterna modo de seleção com zoom" -#: ../src/libs/tools/lighttable.c:443 +#: ../src/libs/tools/lighttable.c:440 msgid "exit current layout" msgstr "sair da disposição atual" @@ -24491,7 +25184,7 @@ msgid "Lua options" msgstr "opções do Lua" -#: ../src/views/darkroom.c:607 +#: ../src/views/darkroom.c:503 #, c-format msgid "" "darktable could not load `%s', switching to lighttable now.\n" @@ -24513,62 +25206,62 @@ "se você está certo de que o modelo da câmera é suportado, por favor " "considere abrir um issue em https://github.com/darktable-org/darktable" -#: ../src/views/darkroom.c:625 +#: ../src/views/darkroom.c:521 #, c-format msgctxt "darkroom" msgid "loading `%s' ..." msgstr "carregando `%s' ..." -#: ../src/views/darkroom.c:749 ../src/views/darkroom.c:2496 +#: ../src/views/darkroom.c:668 ../src/views/darkroom.c:2335 msgid "gamut check" msgstr "verificação de gama" -#: ../src/views/darkroom.c:749 +#: ../src/views/darkroom.c:668 msgid "soft proof" msgstr "prova digital" #. fail :( -#: ../src/views/darkroom.c:787 ../src/views/print.c:356 +#: ../src/views/darkroom.c:708 ../src/views/print.c:356 msgid "no image to open!" msgstr "nenhuma imagem para abrir!" -#: ../src/views/darkroom.c:1331 +#: ../src/views/darkroom.c:1232 msgid "no user-defined presets for favorite modules were found" msgstr "nenhuma predefinição do módulo de favoritos foi encontrada" -#: ../src/views/darkroom.c:1476 +#: ../src/views/darkroom.c:1377 msgid "no styles have been created yet" msgstr "nenhum estilo foi criado ainda" -#: ../src/views/darkroom.c:2331 ../src/views/darkroom.c:2332 +#: ../src/views/darkroom.c:2170 ../src/views/darkroom.c:2171 msgid "quick access to presets" msgstr "acesso rápido para as predefinições" -#: ../src/views/darkroom.c:2340 +#: ../src/views/darkroom.c:2179 msgid "quick access to styles" msgstr "acesso rápido para os estilos" -#: ../src/views/darkroom.c:2342 +#: ../src/views/darkroom.c:2181 msgid "quick access for applying any of your styles" msgstr "acesso rápido para aplicação dos estilos" -#: ../src/views/darkroom.c:2348 +#: ../src/views/darkroom.c:2187 msgid "second window" msgstr "segunda janela" -#: ../src/views/darkroom.c:2351 +#: ../src/views/darkroom.c:2190 msgid "display a second darkroom image window" msgstr "mostra uma segunda janela da sala escura" -#: ../src/views/darkroom.c:2356 +#: ../src/views/darkroom.c:2195 msgid "color assessment" msgstr "avaliação de cores" -#: ../src/views/darkroom.c:2359 +#: ../src/views/darkroom.c:2198 msgid "toggle ISO 12646 color assessment conditions" msgstr "alterna avaliação de cores ISO 12646" -#: ../src/views/darkroom.c:2372 +#: ../src/views/darkroom.c:2211 msgid "" "toggle raw over exposed indication\n" "right click for options" @@ -24576,27 +25269,27 @@ "alterna indicação de superexposição\n" "clique-direito para opções" -#: ../src/views/darkroom.c:2388 +#: ../src/views/darkroom.c:2227 msgid "select how to mark the clipped pixels" msgstr "selecione como marcar os pixels cortados" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with CFA color" msgstr "marcar com cor CFA" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with solid color" msgstr "marcar com cor sólida" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "false color" msgstr "falsa cor" -#: ../src/views/darkroom.c:2393 ../src/views/darkroom.c:2444 +#: ../src/views/darkroom.c:2232 ../src/views/darkroom.c:2283 msgid "color scheme" msgstr "esquema de cor" -#: ../src/views/darkroom.c:2394 +#: ../src/views/darkroom.c:2233 msgid "" "select the solid color to indicate over exposure.\n" "will only be used if mode = mark with solid color" @@ -24604,27 +25297,27 @@ "selecione uma cor para indicar superexposição.\n" "só será utilizada caso modo seja = marcar com cor sólida" -#: ../src/views/darkroom.c:2397 +#: ../src/views/darkroom.c:2236 msgctxt "solidcolor" msgid "red" msgstr "vermelho" -#: ../src/views/darkroom.c:2398 +#: ../src/views/darkroom.c:2237 msgctxt "solidcolor" msgid "green" msgstr "verde" -#: ../src/views/darkroom.c:2399 +#: ../src/views/darkroom.c:2238 msgctxt "solidcolor" msgid "blue" msgstr "azul" -#: ../src/views/darkroom.c:2400 +#: ../src/views/darkroom.c:2239 msgctxt "solidcolor" msgid "black" msgstr "preto" -#: ../src/views/darkroom.c:2408 +#: ../src/views/darkroom.c:2247 msgid "" "threshold of what shall be considered overexposed\n" "1.0 - white level\n" @@ -24634,7 +25327,7 @@ "1.0 - nível de branco\n" "0.0 - nível de preto" -#: ../src/views/darkroom.c:2422 +#: ../src/views/darkroom.c:2261 msgid "" "toggle clipping indication\n" "right click for options" @@ -24642,11 +25335,11 @@ "alterna indicação de recorte \n" "clique-direito para opções" -#: ../src/views/darkroom.c:2437 +#: ../src/views/darkroom.c:2276 msgid "clipping preview mode" msgstr "modo de visualização de recorte" -#: ../src/views/darkroom.c:2438 +#: ../src/views/darkroom.c:2277 msgid "" "select the metric you want to preview\n" "full gamut is the combination of all other modes" @@ -24654,39 +25347,39 @@ "selecione a métrica que quer pré-visualizar\n" "gama completo é a combinação de todos os outros modos" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "full gamut" msgstr "gama completo" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "any RGB channel" msgstr "qualquer canal RGB" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "luminance only" msgstr "luminância apenas" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "saturation only" msgstr "saturação apenas" -#: ../src/views/darkroom.c:2445 +#: ../src/views/darkroom.c:2284 msgid "select colors to indicate clipping" msgstr "selecione cores para indicar recorte" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "red & blue" msgstr "vermelho & azul" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "purple & green" msgstr "roxo & verde" -#: ../src/views/darkroom.c:2454 +#: ../src/views/darkroom.c:2293 msgid "lower threshold" msgstr "limite inferior" -#: ../src/views/darkroom.c:2455 +#: ../src/views/darkroom.c:2294 msgid "" "clipping threshold for the black point,\n" "in EV, relatively to white (0 EV).\n" @@ -24706,11 +25399,11 @@ "impressão em papel colorido glossy típico produz preto em -8.00 EV,\n" "impressão em papel P&B glossy típico produz preto em -9.00 EV." -#: ../src/views/darkroom.c:2471 +#: ../src/views/darkroom.c:2310 msgid "upper threshold" msgstr "limite superior" -#: ../src/views/darkroom.c:2473 +#: ../src/views/darkroom.c:2312 #, no-c-format msgid "" "clipping threshold for the white point.\n" @@ -24719,11 +25412,11 @@ "limiar de recorte para ponto de branco\n" "100 % é o pico de luminância média" -#: ../src/views/darkroom.c:2485 +#: ../src/views/darkroom.c:2324 msgid "softproof" msgstr "prova digital" -#: ../src/views/darkroom.c:2488 +#: ../src/views/darkroom.c:2327 msgid "" "toggle softproofing\n" "right click for profile options" @@ -24731,7 +25424,7 @@ "alterna perfil de prova digital\n" "clique-direito para opções" -#: ../src/views/darkroom.c:2499 +#: ../src/views/darkroom.c:2338 msgid "" "toggle gamut checking\n" "right click for profile options" @@ -24739,46 +25432,54 @@ "alterna verificação de gama\n" "clique-direito para opções" -#: ../src/views/darkroom.c:2524 ../src/views/darkroom.c:2526 -#: ../src/views/darkroom.c:2540 ../src/views/darkroom.c:2541 -#: ../src/views/darkroom.c:2542 ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2365 ../src/views/darkroom.c:2367 +#: ../src/views/darkroom.c:2381 ../src/views/darkroom.c:2382 +#: ../src/views/darkroom.c:2383 ../src/views/darkroom.c:2384 #: ../src/views/lighttable.c:1182 ../src/views/lighttable.c:1184 msgid "profiles" msgstr "perfis" -#: ../src/views/darkroom.c:2526 ../src/views/lighttable.c:1184 +#: ../src/views/darkroom.c:2367 ../src/views/lighttable.c:1184 msgid "preview intent" msgstr "intenção de visualização" -#: ../src/views/darkroom.c:2540 ../src/views/lighttable.c:1188 +#: ../src/views/darkroom.c:2381 ../src/views/lighttable.c:1188 msgid "display profile" msgstr "perfil do monitor" -#: ../src/views/darkroom.c:2541 ../src/views/lighttable.c:1191 +#: ../src/views/darkroom.c:2382 ../src/views/lighttable.c:1191 msgid "preview display profile" msgstr "perfil do monitor (segunda janela)" -#: ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2384 msgid "histogram profile" msgstr "perfil de histograma" -#: ../src/views/darkroom.c:2605 ../src/views/lighttable.c:1225 +#: ../src/views/darkroom.c:2391 +msgid "second preview window ISO 12646 color assessment" +msgstr "segunda janela para pré-visualização de avaliação de cores ISO 12646" + +#: ../src/views/darkroom.c:2393 +msgid "color assessment second preview" +msgstr "esgunda pré-visualização de avaliação de cores" + +#: ../src/views/darkroom.c:2452 ../src/views/lighttable.c:1225 msgid "display ICC profiles" msgstr "perfis ICC de monitor" -#: ../src/views/darkroom.c:2609 ../src/views/lighttable.c:1229 +#: ../src/views/darkroom.c:2456 ../src/views/lighttable.c:1229 msgid "preview display ICC profiles" msgstr "pré-visualizar perfis ICC do monitor" -#: ../src/views/darkroom.c:2613 +#: ../src/views/darkroom.c:2460 msgid "softproof ICC profiles" msgstr "perfil ICC de prova digital" -#: ../src/views/darkroom.c:2617 +#: ../src/views/darkroom.c:2464 msgid "histogram and color picker ICC profiles" msgstr "perfis ICC de histograma e seletor de cores" -#: ../src/views/darkroom.c:2651 +#: ../src/views/darkroom.c:2497 msgid "" "toggle guide lines\n" "right click for guides options" @@ -24787,137 +25488,137 @@ "clique-direito para opções" #. Fullscreen preview key -#: ../src/views/darkroom.c:2668 +#: ../src/views/darkroom.c:2514 msgid "full preview" msgstr "visualização total" #. add an option to allow skip mouse events while other overlays are consuming mouse actions -#: ../src/views/darkroom.c:2672 +#: ../src/views/darkroom.c:2518 msgid "force pan/zoom/rotate with mouse" msgstr "forçar arrastar/zoom/girar com o mouse" #. Zoom shortcuts -#: ../src/views/darkroom.c:2684 +#: ../src/views/darkroom.c:2530 msgid "zoom close-up" msgstr "zoom primeiro plano" #. zoom in/out #. zoom in/out/min/max -#: ../src/views/darkroom.c:2687 ../src/views/lighttable.c:1283 +#: ../src/views/darkroom.c:2533 ../src/views/lighttable.c:1283 msgid "zoom in" msgstr "aproximar" -#: ../src/views/darkroom.c:2688 ../src/views/lighttable.c:1285 +#: ../src/views/darkroom.c:2534 ../src/views/lighttable.c:1285 msgid "zoom out" msgstr "afastar" #. Shortcut to skip images -#: ../src/views/darkroom.c:2691 +#: ../src/views/darkroom.c:2537 msgid "image forward" msgstr "imagem adiante" -#: ../src/views/darkroom.c:2692 +#: ../src/views/darkroom.c:2538 msgid "image back" msgstr "imagem anterior" #. cycle overlay colors -#: ../src/views/darkroom.c:2695 +#: ../src/views/darkroom.c:2541 msgid "cycle overlay colors" msgstr "passa por cores de overlay" #. toggle visibility of drawn masks for current gui module -#: ../src/views/darkroom.c:2698 +#: ../src/views/darkroom.c:2544 msgid "show drawn masks" msgstr "mostrar máscara desenhada" #. brush size +/- -#: ../src/views/darkroom.c:2701 +#: ../src/views/darkroom.c:2547 msgid "increase brush size" msgstr "aumentar tamanho do pincel" -#: ../src/views/darkroom.c:2702 +#: ../src/views/darkroom.c:2548 msgid "decrease brush size" msgstr "diminuir tamanho do pincel" #. brush hardness +/- -#: ../src/views/darkroom.c:2705 +#: ../src/views/darkroom.c:2551 msgid "increase brush hardness" msgstr "aumentar dureza do pincel" -#: ../src/views/darkroom.c:2706 +#: ../src/views/darkroom.c:2552 msgid "decrease brush hardness" msgstr "diminuir dureza do pincel" #. brush opacity +/- -#: ../src/views/darkroom.c:2709 +#: ../src/views/darkroom.c:2555 msgid "increase brush opacity" msgstr "aumentar opacidade do pincel" -#: ../src/views/darkroom.c:2710 +#: ../src/views/darkroom.c:2556 msgid "decrease brush opacity" msgstr "diminuir opacidade do pincel" #. undo/redo -#: ../src/views/darkroom.c:2713 ../src/views/lighttable.c:1275 +#: ../src/views/darkroom.c:2559 ../src/views/lighttable.c:1275 #: ../src/views/map.c:2115 msgid "undo" msgstr "desfazer" -#: ../src/views/darkroom.c:2714 ../src/views/lighttable.c:1276 +#: ../src/views/darkroom.c:2560 ../src/views/lighttable.c:1276 #: ../src/views/map.c:2116 msgid "redo" msgstr "refazer" #. change the precision for adjusting sliders with keyboard shortcuts -#: ../src/views/darkroom.c:2717 +#: ../src/views/darkroom.c:2563 msgid "change keyboard shortcut slider precision" msgstr "mudar a precisão dos atalhos de teclado para controles deslizantes" -#: ../src/views/darkroom.c:3989 +#: ../src/views/darkroom.c:3565 msgid "keyboard shortcut slider precision: fine" msgstr "precisão do atalho de teclado para deslizadores: leve" -#: ../src/views/darkroom.c:3991 +#: ../src/views/darkroom.c:3567 msgid "keyboard shortcut slider precision: normal" msgstr "precisão do atalho de teclado para deslizadores: normal" -#: ../src/views/darkroom.c:3993 +#: ../src/views/darkroom.c:3569 msgid "keyboard shortcut slider precision: coarse" msgstr "precisão do atalho de teclado para deslizadores: pesada" -#: ../src/views/darkroom.c:4009 +#: ../src/views/darkroom.c:3584 msgid "switch to lighttable" msgstr "mudar para mesa de luz" -#: ../src/views/darkroom.c:4010 ../src/views/lighttable.c:882 +#: ../src/views/darkroom.c:3585 ../src/views/lighttable.c:882 msgid "zoom in the image" msgstr "zoom na imagem" -#: ../src/views/darkroom.c:4011 +#: ../src/views/darkroom.c:3586 msgid "unbounded zoom in the image" msgstr "zoom ilimitado na imagem" -#: ../src/views/darkroom.c:4012 +#: ../src/views/darkroom.c:3587 msgid "zoom to 100% 200% and back" msgstr "zoom para 100% 200% e volta" -#: ../src/views/darkroom.c:4013 ../src/views/lighttable.c:885 +#: ../src/views/darkroom.c:3588 ../src/views/lighttable.c:885 msgid "pan a zoomed image" msgstr "arrastar uma imagem em zoom" -#: ../src/views/darkroom.c:4015 ../src/views/lighttable.c:927 +#: ../src/views/darkroom.c:3590 ../src/views/lighttable.c:927 msgid "[modules] expand module without closing others" msgstr "[módulos] expande módulo sem fechar outros" -#: ../src/views/darkroom.c:4016 ../src/views/lighttable.c:928 +#: ../src/views/darkroom.c:3591 ../src/views/lighttable.c:928 msgid "[modules] expand module and close others" msgstr "[módulos] expande módulo e fecha outros" -#: ../src/views/darkroom.c:4018 +#: ../src/views/darkroom.c:3593 msgid "[modules] rename module" msgstr "[módulos] renomeia módulo" -#: ../src/views/darkroom.c:4020 +#: ../src/views/darkroom.c:3595 msgid "[modules] change module position in pipe" msgstr "[módulos] muda posição do módulo no fluxo" @@ -25062,60 +25763,60 @@ msgid "print" msgstr "impressão" -#: ../src/views/slideshow.c:353 +#: ../src/views/slideshow.c:355 msgid "end of images" msgstr "fim das imagens" -#: ../src/views/slideshow.c:374 +#: ../src/views/slideshow.c:376 msgid "end of images. press any key to return to lighttable mode" msgstr "" "final das imagens. pressione uma tecla para retornar ao modo mesa de luz" -#: ../src/views/slideshow.c:504 +#: ../src/views/slideshow.c:509 msgid "waiting to start slideshow" msgstr "aguardando para iniciar slideshow" -#: ../src/views/slideshow.c:640 ../src/views/slideshow.c:661 -#: ../src/views/slideshow.c:669 +#: ../src/views/slideshow.c:678 ../src/views/slideshow.c:705 +#: ../src/views/slideshow.c:713 msgid "slideshow paused" msgstr "apresentação pausada" -#: ../src/views/slideshow.c:648 ../src/views/slideshow.c:655 +#: ../src/views/slideshow.c:686 ../src/views/slideshow.c:696 #, c-format msgid "slideshow delay set to %d second" msgid_plural "slideshow delay set to %d seconds" msgstr[0] "pausa do slideshow ajustada para %d segundo" msgstr[1] "pausa do slideshow ajustada para %d segundos" -#: ../src/views/slideshow.c:684 +#: ../src/views/slideshow.c:728 msgid "start and stop" msgstr "iniciar e parar" -#: ../src/views/slideshow.c:685 +#: ../src/views/slideshow.c:730 msgid "exit slideshow" msgstr "sair da apresentação" -#: ../src/views/slideshow.c:688 +#: ../src/views/slideshow.c:734 msgid "slow down" msgstr "desacelerar" -#: ../src/views/slideshow.c:691 +#: ../src/views/slideshow.c:738 msgid "speed up" msgstr "acelerar" -#: ../src/views/slideshow.c:695 +#: ../src/views/slideshow.c:743 msgid "step forward" msgstr "próxima imagem" -#: ../src/views/slideshow.c:696 +#: ../src/views/slideshow.c:745 msgid "step back" msgstr "imagem anterior" -#: ../src/views/slideshow.c:702 +#: ../src/views/slideshow.c:753 msgid "go to next image" msgstr "ir para o próxima imagem" -#: ../src/views/slideshow.c:703 +#: ../src/views/slideshow.c:755 msgid "go to previous image" msgstr "muda para imagem anterior" @@ -25128,51 +25829,349 @@ msgid "no camera with tethering support available for use..." msgstr "nenhuma câmera com acesso remoto disponível para uso..." -#: ../src/views/view.c:1193 +#: ../src/views/view.c:1352 msgid "left click" msgstr "clique-esquerdo" -#: ../src/views/view.c:1196 +#: ../src/views/view.c:1355 msgid "right click" msgstr "clique-direito" -#: ../src/views/view.c:1199 +#: ../src/views/view.c:1358 msgid "middle click" msgstr "clique do meio" -#: ../src/views/view.c:1205 +#: ../src/views/view.c:1364 msgid "left double-click" msgstr "clique-esquerdo-duplo" -#: ../src/views/view.c:1208 +#: ../src/views/view.c:1367 msgid "right double-click" msgstr "clique-direito duplo" -#: ../src/views/view.c:1211 +#: ../src/views/view.c:1370 msgid "drag and drop" msgstr "arrastar e soltar" -#: ../src/views/view.c:1214 +#: ../src/views/view.c:1373 msgid "left click+drag" msgstr "clique-esquerdo+arrastar" -#: ../src/views/view.c:1217 +#: ../src/views/view.c:1376 msgid "right click+drag" msgstr "clique-direito+arrastar" -#: ../src/views/view.c:1237 +#: ../src/views/view.c:1398 msgid "darktable - accels window" msgstr "darktable - janela de atalhos" -#: ../src/views/view.c:1285 +#: ../src/views/view.c:1447 msgid "switch to a classic window which will stay open after key release" msgstr "mudar para uma janela clássica que ficará aberta após soltar a tecla." #. we add the mouse actions too -#: ../src/views/view.c:1344 +#: ../src/views/view.c:1514 msgid "mouse actions" msgstr "ações com mouse" +#~ msgid "selected image[s]" +#~ msgstr "imagens selecionadas" + +#~ msgid "spot color mapping" +#~ msgstr "mapeamento de cor pontual" + +#~ msgid "spot mode" +#~ msgstr "modo pontual" + +#~ msgid "save history while developing" +#~ msgstr "salvar histórico enquanto desenvolve" + +#~ msgid "longest" +#~ msgstr "mais longo" + +#~ msgid "b&w as grayscale" +#~ msgstr "p&b como escala de cinza" + +#~ msgid "" +#~ "when having raw+JPEG images together in one directory it makes no sense " +#~ "to import both. with this flag one can ignore all JPEGs found." +#~ msgstr "" +#~ "quando houverem imagens raw+jpeg juntas em uma pasta, não faz sentido " +#~ "importar ambos. com esta opção pode-se ignorar todos os jpegs encontrados." + +#~ msgid "" +#~ "tone equalizer needs to be after distortion modules in the pipeline – " +#~ "disabled" +#~ msgstr "" +#~ "o equalizador de tons precisa estar depois dos módulos de distorção na " +#~ "pipeline - desativado" + +#~ msgid "red inset" +#~ msgstr "sobreposição de vermelho" + +#~ msgid "green inset" +#~ msgstr "sobreposição de verde" + +#~ msgid "blue inset" +#~ msgstr "sobreposição de azul" + +#~ msgid "red primary inset" +#~ msgstr "sobreposição de vermelho primário" + +#~ msgid "red primary rotation" +#~ msgstr "rotação de vermelho primário" + +#~ msgid "green primary inset" +#~ msgstr "sobreposição de verde primário" + +#~ msgid "green primary rotation" +#~ msgstr "rotação de verde primário" + +#~ msgid "blue primary inset" +#~ msgstr "sobreposição de azul primário" + +#~ msgid "blue primary rotation" +#~ msgstr "rotação de azul primário" + +#~ msgid "red primary hue" +#~ msgstr "matiz primária do vermelho" + +#~ msgctxt "preferences" +#~ msgid "4k" +#~ msgstr "4k" + +#~ msgctxt "preferences" +#~ msgid "id" +#~ msgstr "id" + +#~ msgctxt "preferences" +#~ msgid "folder" +#~ msgstr "pasta" + +#~ msgid "only" +#~ msgstr "apenas" + +#~ msgid "" +#~ "if an instance of the module has focus, apply shortcut to that instance\n" +#~ "note: blending shortcuts always apply to the focused instance" +#~ msgstr "" +#~ "se uma instância de um módulo está em foco, aplicar o atalho àquela " +#~ "instância\n" +#~ "nota: mesclar atalhos sempre se aplica à instância em foco" + +#~ msgid "click to dismiss this notice permanently" +#~ msgstr "clique para remover este aviso permanentemente" + +#~ msgid "hardness (relative)" +#~ msgstr "dureza (relativa)" + +#~ msgid "hardness (absolute)" +#~ msgstr "dureza (absoluta)" + +#~ msgid "opacity (relative)" +#~ msgstr "opacidade (relativa)" + +#~ msgid "opacity (absolute)" +#~ msgstr "opacidade (absoluta)" + +#~ msgid "brush size (relative)" +#~ msgstr "tamanho do pincel (relativo)" + +#~ msgid "low" +#~ msgstr "baixa" + +#~ msgid "medium" +#~ msgstr "média" + +#~ msgid "high" +#~ msgstr "alta" + +#~ msgid "" +#~ "pen pressure control for brush masks\n" +#~ "'off': pressure reading ignored,\n" +#~ "'hardness'/'opacity'/'brush size': pressure reading controls specified " +#~ "attribute,\n" +#~ "'absolute'/'relative': pressure reading is taken directly as attribute " +#~ "value or multiplied with pre-defined setting." +#~ msgstr "" +#~ "controle de pressão da caneta para máscaras de pincel\n" +#~ "- 'desligado': leitura de pressão ignorada,\n" +#~ " - 'dureza'/'opacidade'/'tamanho do pincel': atributos especificados nos " +#~ "controles de leitura de pressão,\n" +#~ " - 'absoluto'/'relativo': leitura de pressão é definida diretamente como " +#~ "valor atribuído ou multiplicado com valor predefinido." + +#~ msgid "" +#~ "smoothing of brush strokes\n" +#~ "stronger smoothing leads to fewer nodes and easier editing but with lower " +#~ "control of accuracy." +#~ msgstr "" +#~ "suavização dos traços do pincel\n" +#~ "quanto maior a suavização menor a quantidade de nós e mais fácil a " +#~ "edição, no entanto há menor controle de precisão." + +#~ msgid "" +#~ "set strength of rebuilding in regions with all photosites clipped.\n" +#~ "the mask buttons shows the effect that is added to already reconstructed " +#~ "data." +#~ msgstr "" +#~ "define a força da reconstrução em regiões com todos os canais truncados.\n" +#~ "os botões de máscara mostram o efeito que é adicionado aos dados já " +#~ "reconstruídos." + +#~ msgid "" +#~ "darktable discovered problems with your OpenCL setup; disabling OpenCL " +#~ "for this session!" +#~ msgstr "" +#~ "darktable encontrou problemas com o sua configuração de OpenCL; " +#~ "desabilitando OpenCL para esta sessão!" + +#~ msgid "RGB colors" +#~ msgstr "cores RGB" + +#~ msgid "compression type" +#~ msgstr "tipo de compressão" + +#~ msgid "b&w image" +#~ msgstr "imagem preto & branco" + +#~ msgid "write RGB colors" +#~ msgstr "salvar cores RGB" + +#~ msgid "write grayscale" +#~ msgstr "salvar escala de cinza" + +#~ msgid "tiff" +#~ msgstr "tiff" + +#~ msgid "png" +#~ msgstr "png" + +#~ msgid "j2k" +#~ msgstr "j2k" + +#~ msgid "jpeg" +#~ msgstr "jpeg" + +#~ msgid "exr" +#~ msgstr "exr" + +#~ msgid "rgbe" +#~ msgstr "rgbe" + +#~ msgid "pfm" +#~ msgstr "pfm" + +#~ msgid "netpnm" +#~ msgstr "netpnm" + +#~ msgid "avif" +#~ msgstr "avif" + +#~ msgid "heif" +#~ msgstr "heif" + +#~ msgid "libraw" +#~ msgstr "libraw" + +#~ msgid "webp" +#~ msgstr "webp" + +#~ msgid "jpeg xl" +#~ msgstr "jpeg xl" + +#~ msgid "save" +#~ msgstr "salvar" + +#~ msgid "add" +#~ msgstr "adicionar" + +#~ msgid "write sidecar file for each image" +#~ msgstr "salvar arquivo auxiliar para cada imagem" + +#~ msgctxt "preferences" +#~ msgid "nothing" +#~ msgstr "nada" + +#~ msgctxt "preferences" +#~ msgid "memory size" +#~ msgstr "tamanho da memória" + +#~ msgctxt "preferences" +#~ msgid "memory transfer" +#~ msgstr "transferência de memória" + +#~ msgctxt "preferences" +#~ msgid "memory size and transfer" +#~ msgstr "tamanho e transferência de memória" + +#~ msgid "tune OpenCL performance" +#~ msgstr "ajustar desempenho do OpenCL" + +#~ msgid "" +#~ "allows runtime tuning of OpenCL devices:\n" +#~ " - 'memory size': uses a fixed headroom (400MB as default),\n" +#~ " - 'memory transfer': tries a faster memory access mode (pinned memory) " +#~ "used for tiling." +#~ msgstr "" +#~ "permite ajuste dos dispositivos OpenCL durante excução:\n" +#~ " - 'tamanho da memória': usa um espaço fixo (400MB por padrão),\n" +#~ " - 'transferência de memória': tenta um modo mais rápido de acesso à " +#~ "memória (memória fixada) usado para ladrilhamento." + +#~ msgid "" +#~ "due to a slow GPU hardware acceleration using OpenCL has been deactivated" +#~ msgstr "" +#~ "devido a baixa aceleração de hardware da GPU o opencl foi desativado" + +#~ msgid "" +#~ "multiple GPUs detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "detectadas múltiplas GPUs - o perfil de escalonamento foi ajustado de " +#~ "acordo" + +#~ msgid "" +#~ "very fast GPU detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "GPU muito rápida detectada - o perfil de escalonamento foi ajustado de " +#~ "acordo" + +#~ msgid "jp2" +#~ msgstr "jp2" + +#~ msgid "no-op" +#~ msgstr "nada-faz" + +#~ msgid "distortion fine-tune" +#~ msgstr "ajuste fino de distorção" + +#~ msgid "vignetting fine-tune" +#~ msgstr "ajuste fino de vinheta" + +#~ msgid "TCA red fine-tune" +#~ msgstr "ajuste fino de TCA vermelho" + +#~ msgid "TCA blue fine-tune" +#~ msgstr "ajuste fino de TCA azul" + +#~ msgid "linear Prophoto RGB" +#~ msgstr "RGB Prophoto linear" + +#~ msgid "<leave unchanged>" +#~ msgstr "<deixar sem modificações>" + +#~ msgid "reference to which the marker should be scaled to" +#~ msgstr "referência para a qual o marcador terá sua escala mudada" + +#~ msgid "length of the marker which is used as scaling reference" +#~ msgstr "comprimento do marcador que será usado como referência de escala" + +#, c-format +#~ msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" +#~ msgstr "%.1f mm (%.1f mm FF equiv, crop %.1f)" + #~ msgid "_yes, physically delete" #~ msgstr "_sim, excluir fisicamente" @@ -25236,9 +26235,6 @@ #~ msgid "stop process" #~ msgstr "parar processo" -#~ msgid "set the custom aspect ratio" -#~ msgstr "define a proporção (larg:alt)" - #~ msgid "blend`pickers" #~ msgstr "mesclar`seletores" @@ -25252,9 +26248,6 @@ #~ msgid "rgb colors" #~ msgstr "cores RGB" -#~ msgid "rgb parade" -#~ msgstr "parada rgb (canais lado a lado)" - #~ msgid "rotate 90 degrees ccw" #~ msgstr "girar imagens selecionadas 90 graus sentido anti-horário" @@ -25707,9 +26700,6 @@ #~ msgid "no image selected !" #~ msgstr "nenhuma imagem selecionada !" -#~ msgid "actual selection" -#~ msgstr "a seleção de fato" - #~ msgid "allow to pan & zoom while editing masks" #~ msgstr "permitir pan & zoom ao editar máscaras" @@ -25753,11 +26743,6 @@ #~ msgid "xcf" #~ msgstr "xcf" -#~ msgid "" -#~ "set strength of reconstruction in regions with all photosites clipped" -#~ msgstr "" -#~ "dfine a força da reconstrução em regiões com todos os canais truncados" - #~ msgctxt "preferences" #~ msgid "on startup" #~ msgstr "ao iniciar" @@ -25890,9 +26875,6 @@ #~ msgid "lift chroma" #~ msgstr "elevação de croma" -#~ msgid "lift hue" -#~ msgstr "elevação de matiz" - #~ msgid "power luminance" #~ msgstr "potência de luminância" @@ -25926,9 +26908,6 @@ #~ msgid "chroma highlights" #~ msgstr "croma nos realces" -#~ msgid "chroma global" -#~ msgstr "croma global" - #~ msgid "chroma mid-tones" #~ msgstr "croma nos meios-tons" @@ -26647,9 +27626,6 @@ #~ msgid "crop settings" #~ msgstr "configurações de corte" -#~ msgid "white balance settings" -#~ msgstr "configurações do balanço de branco" - #~ msgid "position" #~ msgstr "posição" diff -Nru darktable-4.4.2/po/ru.po darktable-4.6.1/po/ru.po --- darktable-4.4.2/po/ru.po 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/po/ru.po 2024-02-16 17:31:09.000000000 +0000 @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: darktable 3.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-31 13:24+0200\n" -"PO-Revision-Date: 2023-06-15 00:07+0700\n" +"POT-Creation-Date: 2023-11-30 19:32+0100\n" +"PO-Revision-Date: 2023-12-12 01:29+0300\n" "Last-Translator: Timur Davletshin <timur.davletshin@gmail.com>\n" "Language-Team: русский\n" "Language: ru\n" @@ -20,269 +20,234 @@ "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Poedit 3.0.1\n" -#: ../build/bin/conf_gen.h:172 ../build/bin/preferences_gen.h:7632 +#: ../build/bin/conf_gen.h:174 msgctxt "preferences" msgid "first instance" msgstr "Первая копия" -#: ../build/bin/conf_gen.h:173 ../build/bin/preferences_gen.h:7637 -#: ../build/bin/preferences_gen.h:7656 +#: ../build/bin/conf_gen.h:175 ../build/bin/preferences_gen.h:7922 msgctxt "preferences" msgid "last instance" msgstr "Последняя копия" -#: ../build/bin/conf_gen.h:240 ../build/bin/conf_gen.h:346 -#: ../build/bin/conf_gen.h:356 ../build/bin/conf_gen.h:1186 -#: ../build/bin/conf_gen.h:1202 ../build/bin/preferences_gen.h:4137 -#: ../build/bin/preferences_gen.h:4156 ../build/bin/preferences_gen.h:4232 -#: ../build/bin/preferences_gen.h:6706 ../build/bin/preferences_gen.h:6834 -#: ../build/bin/preferences_gen.h:6899 +#: ../build/bin/conf_gen.h:252 ../build/bin/conf_gen.h:352 +#: ../build/bin/conf_gen.h:362 ../build/bin/conf_gen.h:1239 +#: ../build/bin/conf_gen.h:1255 ../build/bin/conf_gen.h:1275 +#: ../build/bin/preferences_gen.h:4747 ../build/bin/preferences_gen.h:4885 msgctxt "preferences" msgid "never" msgstr "Никогда" -#: ../build/bin/conf_gen.h:241 ../build/bin/preferences_gen.h:6711 +#: ../build/bin/conf_gen.h:253 msgctxt "preferences" msgid "once a month" msgstr "Раз в месяц" -#: ../build/bin/conf_gen.h:242 ../build/bin/preferences_gen.h:6716 -#: ../build/bin/preferences_gen.h:6745 +#: ../build/bin/conf_gen.h:254 ../build/bin/preferences_gen.h:7138 msgctxt "preferences" msgid "once a week" msgstr "Раз в неделю" -#: ../build/bin/conf_gen.h:243 ../build/bin/preferences_gen.h:6721 +#: ../build/bin/conf_gen.h:255 msgctxt "preferences" msgid "once a day" msgstr "Раз в день" -#: ../build/bin/conf_gen.h:244 ../build/bin/preferences_gen.h:6726 +#: ../build/bin/conf_gen.h:256 msgctxt "preferences" msgid "on close" msgstr "Закрытие dt" -#: ../build/bin/conf_gen.h:280 ../build/bin/conf_gen.h:1179 -#: ../build/bin/conf_gen.h:1195 ../build/bin/preferences_gen.h:4102 -#: ../build/bin/preferences_gen.h:4197 ../build/bin/preferences_gen.h:5748 +#: ../build/bin/conf_gen.h:292 ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1248 ../build/bin/conf_gen.h:1276 msgctxt "preferences" msgid "small" msgstr "Маленькое изображение" -#: ../build/bin/conf_gen.h:281 ../build/bin/conf_gen.h:393 -#: ../build/bin/preferences_gen.h:5753 ../build/bin/preferences_gen.h:5782 -#: ../build/bin/preferences_gen.h:5969 ../build/bin/preferences_gen.h:5998 +#: ../build/bin/conf_gen.h:293 ../build/bin/conf_gen.h:405 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6223 msgctxt "preferences" msgid "default" msgstr "По умолчанию" -#: ../build/bin/conf_gen.h:282 ../build/bin/conf_gen.h:2814 -#: ../build/bin/preferences_gen.h:5758 +#: ../build/bin/conf_gen.h:294 ../build/bin/conf_gen.h:2904 msgctxt "preferences" msgid "large" msgstr "Высокая" -#: ../build/bin/conf_gen.h:283 ../build/bin/preferences_gen.h:5763 +#: ../build/bin/conf_gen.h:295 msgctxt "preferences" msgid "unrestricted" msgstr "Неограниченная" -#: ../build/bin/conf_gen.h:347 ../build/bin/preferences_gen.h:6839 +#: ../build/bin/conf_gen.h:353 msgctxt "preferences" msgid "after edit" msgstr "После редактирования" -#: ../build/bin/conf_gen.h:348 ../build/bin/preferences_gen.h:6844 -#: ../build/bin/preferences_gen.h:6863 +#: ../build/bin/conf_gen.h:354 ../build/bin/preferences_gen.h:7224 msgctxt "preferences" msgid "on import" msgstr "Импорт" -#: ../build/bin/conf_gen.h:357 ../build/bin/conf_gen.h:1178 -#: ../build/bin/conf_gen.h:1194 ../build/bin/conf_gen.h:3214 -#: ../build/bin/preferences_gen.h:4097 ../build/bin/preferences_gen.h:4192 -#: ../build/bin/preferences_gen.h:5112 ../build/bin/preferences_gen.h:5166 -#: ../build/bin/preferences_gen.h:6904 +#: ../build/bin/conf_gen.h:363 ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1247 ../build/bin/conf_gen.h:3300 +#: ../build/bin/preferences_gen.h:5644 msgctxt "preferences" msgid "always" msgstr "Всегда" -#: ../build/bin/conf_gen.h:358 ../build/bin/preferences_gen.h:6909 -#: ../build/bin/preferences_gen.h:6928 +#: ../build/bin/conf_gen.h:364 ../build/bin/preferences_gen.h:7259 msgctxt "preferences" msgid "only large entries" msgstr "Только большие записи" -#: ../build/bin/conf_gen.h:378 ../build/bin/preferences_gen.h:8069 +#: ../build/bin/conf_gen.h:390 msgctxt "preferences" msgid "sensitive" msgstr "Вкл." -#: ../build/bin/conf_gen.h:379 ../build/bin/preferences_gen.h:8074 -#: ../build/bin/preferences_gen.h:8093 +#: ../build/bin/conf_gen.h:391 ../build/bin/preferences_gen.h:8133 msgctxt "preferences" msgid "insensitive" msgstr "Откл." -#: ../build/bin/conf_gen.h:394 ../build/bin/preferences_gen.h:5974 +#: ../build/bin/conf_gen.h:406 msgctxt "preferences" msgid "multiple GPUs" msgstr "Несколько GPU" -#: ../build/bin/conf_gen.h:395 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/conf_gen.h:407 msgctxt "preferences" msgid "very fast GPU" msgstr "Очень быстрый GPU" -#: ../build/bin/conf_gen.h:403 ../build/bin/preferences_gen.h:6040 -#: ../build/bin/preferences_gen.h:6074 +#: ../build/bin/conf_gen.h:755 msgctxt "preferences" -msgid "nothing" -msgstr "Ничего" - -#: ../build/bin/conf_gen.h:404 ../build/bin/preferences_gen.h:6045 -msgctxt "preferences" -msgid "memory size" -msgstr "Объем памяти" - -#: ../build/bin/conf_gen.h:405 ../build/bin/preferences_gen.h:6050 -msgctxt "preferences" -msgid "memory transfer" -msgstr "Перенос данных" - -#: ../build/bin/conf_gen.h:406 ../build/bin/preferences_gen.h:6055 -msgctxt "preferences" -msgid "memory size and transfer" -msgstr "Объем памяти и перенос данных" +msgid "import time" +msgstr "Время импорта" -#: ../build/bin/conf_gen.h:706 ../build/bin/preferences_gen.h:8257 -#: ../build/bin/preferences_gen.h:8281 +#: ../build/bin/conf_gen.h:756 msgctxt "preferences" -msgid "id" -msgstr "По идентификатору" +msgid "folder name" +msgstr "Имя папки" -#: ../build/bin/conf_gen.h:707 ../build/bin/preferences_gen.h:8262 -msgctxt "preferences" -msgid "folder" -msgstr "По каталогу" - -#: ../build/bin/conf_gen.h:721 +#: ../build/bin/conf_gen.h:770 msgctxt "preferences" msgid "RGB" msgstr "RGB" -#: ../build/bin/conf_gen.h:722 +#: ../build/bin/conf_gen.h:771 msgctxt "preferences" msgid "Lab" msgstr "Lab" -#: ../build/bin/conf_gen.h:723 +#: ../build/bin/conf_gen.h:772 msgctxt "preferences" msgid "LCh" msgstr "LCh" -#: ../build/bin/conf_gen.h:724 +#: ../build/bin/conf_gen.h:773 msgctxt "preferences" msgid "HSL" msgstr "HSL" -#: ../build/bin/conf_gen.h:725 +#: ../build/bin/conf_gen.h:774 msgctxt "preferences" msgid "Hex" msgstr "Hex" -#: ../build/bin/conf_gen.h:726 ../build/bin/conf_gen.h:1830 -#: ../build/bin/conf_gen.h:2488 ../build/bin/conf_gen.h:2790 -#: ../build/bin/conf_gen.h:3044 ../build/bin/preferences_gen.h:5577 -#: ../build/bin/preferences_gen.h:6561 +#: ../build/bin/conf_gen.h:775 ../build/bin/conf_gen.h:1916 +#: ../build/bin/conf_gen.h:2578 ../build/bin/conf_gen.h:2880 +#: ../build/bin/conf_gen.h:3136 msgctxt "preferences" msgid "none" msgstr "Нет" -#: ../build/bin/conf_gen.h:734 +#: ../build/bin/conf_gen.h:783 msgctxt "preferences" msgid "mean" msgstr "Среднее" -#: ../build/bin/conf_gen.h:735 +#: ../build/bin/conf_gen.h:784 msgctxt "preferences" msgid "min" msgstr "Минимальное" -#: ../build/bin/conf_gen.h:736 +#: ../build/bin/conf_gen.h:785 msgctxt "preferences" msgid "max" msgstr "Максимальное" -#: ../build/bin/conf_gen.h:924 +#: ../build/bin/conf_gen.h:973 msgid "select only new pictures" msgstr "Выделить новые снимки" -#: ../build/bin/conf_gen.h:925 +#: ../build/bin/conf_gen.h:974 msgid "only select images that have not already been imported" msgstr "Выделить только новые снимки, которые не были импортированы ранее" -#: ../build/bin/conf_gen.h:930 -msgid "ignore JPEG images" -msgstr "Игнорировать файлы JPEG" +#: ../build/bin/conf_gen.h:979 +msgid "ignore non-raw images" +msgstr "Игнорировать изображения, не являющиеся RAW" -#: ../build/bin/conf_gen.h:931 +#: ../build/bin/conf_gen.h:980 msgid "" -"when having raw+JPEG images together in one directory it makes no sense to " -"import both. with this flag one can ignore all JPEGs found." +"if enabled, only raw files will be allowed to import. non-raw files will not " +"be visible in the dialog and will not be imported." msgstr "" -"Данная опция игнорирует файлы JPEG при импорте. Включите эту опцию, если в " -"каталогах хранятся одновременно файлы Raw и JPEG." +"Если включено, будет возможен импорт только файлов RAW. другие файлы не " +"будут отображаться в диалоговом окне и импортироваться." -#: ../build/bin/conf_gen.h:936 +#: ../build/bin/conf_gen.h:985 msgid "apply metadata" msgstr "Применить метаданные" -#: ../build/bin/conf_gen.h:937 +#: ../build/bin/conf_gen.h:986 msgid "apply some metadata to all newly imported images." msgstr "Применить указанные метаданные к импортируемым снимкам" -#: ../build/bin/conf_gen.h:942 +#: ../build/bin/conf_gen.h:991 msgid "recursive directory" msgstr "Импортировать из вложенных каталогов" -#: ../build/bin/conf_gen.h:943 +#: ../build/bin/conf_gen.h:992 msgid "recursive directory traversal when importing filmrolls" msgstr "Импортировать снимки из вложенных каталогов" -#: ../build/bin/conf_gen.h:948 +#: ../build/bin/conf_gen.h:997 msgid "creator to be applied when importing" msgstr "Создатель (добавить при импорте)" -#: ../build/bin/conf_gen.h:954 +#: ../build/bin/conf_gen.h:1003 msgid "publisher to be applied when importing" msgstr "Издатель (добавить при импорте)" -#: ../build/bin/conf_gen.h:960 +#: ../build/bin/conf_gen.h:1009 msgid "rights to be applied when importing" msgstr "Права (добавить при импорте)" -#: ../build/bin/conf_gen.h:966 +#: ../build/bin/conf_gen.h:1015 msgid "comma separated tags to be applied when importing" msgstr "Метки (добавить при импорте)" -#: ../build/bin/conf_gen.h:972 +#: ../build/bin/conf_gen.h:1021 msgid "import tags from XMP" msgstr "Импортировать метки XMP" -#: ../build/bin/conf_gen.h:998 +#: ../build/bin/conf_gen.h:1051 msgid "initial rating" msgstr "Начальная оценка" -#: ../build/bin/conf_gen.h:999 +#: ../build/bin/conf_gen.h:1052 msgid "initial star rating for all images when importing a filmroll" msgstr "Оценка, присваиваемая снимкам при импорте" -#: ../build/bin/conf_gen.h:1004 +#: ../build/bin/conf_gen.h:1057 msgid "ignore EXIF rating" msgstr "Игнорировать оценки Exif" -#: ../build/bin/conf_gen.h:1005 +#: ../build/bin/conf_gen.h:1058 msgid "" "ignore EXIF rating. if not set and EXIF rating is found, it overrides " "'initial rating'" @@ -290,19 +255,19 @@ "Игнорировать оценки Exif при импорте снимков и присвоить значение «Начальная " "оценка»" -#: ../build/bin/conf_gen.h:1010 +#: ../build/bin/conf_gen.h:1063 msgid "import job" msgstr "Имя задачи" -#: ../build/bin/conf_gen.h:1011 +#: ../build/bin/conf_gen.h:1064 msgid "name of the import job" msgstr "Присвоить имя данной задаче импорта" -#: ../build/bin/conf_gen.h:1016 +#: ../build/bin/conf_gen.h:1069 msgid "override today's date" msgstr "Выставить другую дату" -#: ../build/bin/conf_gen.h:1017 +#: ../build/bin/conf_gen.h:1070 msgid "" "type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override " "the current date/time used when expanding variables:\n" @@ -313,459 +278,447 @@ "$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS), $(MSEC).\n" "В противном случае, оставьте поле пустым" -#: ../build/bin/conf_gen.h:1022 +#: ../build/bin/conf_gen.h:1075 msgid "keep this window open" msgstr "Не закрывать окно" -#: ../build/bin/conf_gen.h:1023 +#: ../build/bin/conf_gen.h:1076 msgid "keep this window open to run several imports" msgstr "Не закрывать окно после завершения импорта" -#: ../build/bin/conf_gen.h:1180 ../build/bin/conf_gen.h:1196 -#: ../build/bin/preferences_gen.h:4107 ../build/bin/preferences_gen.h:4202 +#: ../build/bin/conf_gen.h:1233 ../build/bin/conf_gen.h:1249 +#: ../build/bin/conf_gen.h:1277 msgctxt "preferences" msgid "VGA" msgstr "VGA" -#: ../build/bin/conf_gen.h:1181 ../build/bin/conf_gen.h:1197 -#: ../build/bin/preferences_gen.h:4112 ../build/bin/preferences_gen.h:4207 -#: ../build/bin/preferences_gen.h:4251 +#: ../build/bin/conf_gen.h:1234 ../build/bin/conf_gen.h:1250 +#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4782 msgctxt "preferences" msgid "720p" msgstr "720p" -#: ../build/bin/conf_gen.h:1182 ../build/bin/conf_gen.h:1198 -#: ../build/bin/preferences_gen.h:4117 ../build/bin/preferences_gen.h:4212 +#: ../build/bin/conf_gen.h:1235 ../build/bin/conf_gen.h:1251 +#: ../build/bin/conf_gen.h:1279 msgctxt "preferences" msgid "1080p" msgstr "1080p" -#: ../build/bin/conf_gen.h:1183 ../build/bin/conf_gen.h:1199 -#: ../build/bin/preferences_gen.h:4122 ../build/bin/preferences_gen.h:4217 +#: ../build/bin/conf_gen.h:1236 ../build/bin/conf_gen.h:1252 +#: ../build/bin/conf_gen.h:1280 msgctxt "preferences" msgid "WQXGA" msgstr "WQXGA" -#: ../build/bin/conf_gen.h:1184 ../build/bin/conf_gen.h:1200 -#: ../build/bin/preferences_gen.h:4127 ../build/bin/preferences_gen.h:4222 +#: ../build/bin/conf_gen.h:1237 ../build/bin/conf_gen.h:1253 +#: ../build/bin/conf_gen.h:1281 msgctxt "preferences" msgid "4K" msgstr "4K" -#: ../build/bin/conf_gen.h:1185 ../build/bin/conf_gen.h:1201 -#: ../build/bin/preferences_gen.h:4132 ../build/bin/preferences_gen.h:4227 +#: ../build/bin/conf_gen.h:1238 ../build/bin/conf_gen.h:1254 +#: ../build/bin/conf_gen.h:1282 msgctxt "preferences" msgid "5K" msgstr "5K" -#: ../build/bin/conf_gen.h:1228 +#: ../build/bin/conf_gen.h:1314 msgctxt "preferences" msgid "off" msgstr "Выкл." -#: ../build/bin/conf_gen.h:1229 +#: ../build/bin/conf_gen.h:1315 msgctxt "preferences" msgid "hardness (relative)" msgstr "Растушёвка (относительная)" -#: ../build/bin/conf_gen.h:1230 +#: ../build/bin/conf_gen.h:1316 msgctxt "preferences" msgid "hardness (absolute)" msgstr "Растушёвка (абсолютная)" -#: ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1317 msgctxt "preferences" msgid "opacity (relative)" msgstr "Непрозрачность (относительная)" -#: ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1318 msgctxt "preferences" msgid "opacity (absolute)" msgstr "Непрозрачность (абсолютная)" -#: ../build/bin/conf_gen.h:1233 +#: ../build/bin/conf_gen.h:1319 msgctxt "preferences" msgid "brush size (relative)" msgstr "Размер кисти (относительный)" -#: ../build/bin/conf_gen.h:1241 +#: ../build/bin/conf_gen.h:1327 msgctxt "preferences" msgid "low" msgstr "Слабое" -#: ../build/bin/conf_gen.h:1242 +#: ../build/bin/conf_gen.h:1328 msgctxt "preferences" msgid "medium" msgstr "Среднее" -#: ../build/bin/conf_gen.h:1243 +#: ../build/bin/conf_gen.h:1329 msgctxt "preferences" msgid "high" msgstr "Сильное" -#: ../build/bin/conf_gen.h:1263 ../build/bin/preferences_gen.h:4836 -#: ../build/bin/preferences_gen.h:4860 +#: ../build/bin/conf_gen.h:1349 ../build/bin/preferences_gen.h:5405 msgctxt "preferences" msgid "false color" msgstr "Псевдоцвет" -#: ../build/bin/conf_gen.h:1264 ../build/bin/preferences_gen.h:4841 +#: ../build/bin/conf_gen.h:1350 msgctxt "preferences" msgid "grayscale" msgstr "В градациях серого" -#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4567 +#: ../build/bin/conf_gen.h:1364 msgctxt "preferences" msgid "top left" msgstr "Слева вверху" -#: ../build/bin/conf_gen.h:1279 ../build/bin/preferences_gen.h:4572 +#: ../build/bin/conf_gen.h:1365 msgctxt "preferences" msgid "top right" msgstr "Справа вверху" -#: ../build/bin/conf_gen.h:1280 ../build/bin/preferences_gen.h:4577 +#: ../build/bin/conf_gen.h:1366 msgctxt "preferences" msgid "top center" msgstr "По центру вверху" -#: ../build/bin/conf_gen.h:1281 ../build/bin/preferences_gen.h:4582 -#: ../build/bin/preferences_gen.h:4606 +#: ../build/bin/conf_gen.h:1367 ../build/bin/preferences_gen.h:5217 msgctxt "preferences" msgid "bottom" msgstr "Внизу" -#: ../build/bin/conf_gen.h:1282 ../build/bin/preferences_gen.h:4587 +#: ../build/bin/conf_gen.h:1368 msgctxt "preferences" msgid "hidden" msgstr "Скрыть" -#: ../build/bin/conf_gen.h:1792 +#: ../build/bin/conf_gen.h:1878 msgid "show OSD" msgstr "Элементы управления" -#: ../build/bin/conf_gen.h:1793 +#: ../build/bin/conf_gen.h:1879 msgid "toggle the visibility of the map overlays" msgstr "Показывать элементы управления на карте" -#: ../build/bin/conf_gen.h:1798 ../src/libs/map_settings.c:146 +#: ../build/bin/conf_gen.h:1884 ../src/libs/map_settings.c:119 msgid "filtered images" msgstr "Фильтр" -#: ../build/bin/conf_gen.h:1799 +#: ../build/bin/conf_gen.h:1885 msgid "when set limit the images drawn to the current filmstrip" msgstr "Показывать только снимки из текущей коллекции" -#: ../build/bin/conf_gen.h:1806 +#: ../build/bin/conf_gen.h:1892 msgid "max images" msgstr "Макс. количество снимков" -#: ../build/bin/conf_gen.h:1807 +#: ../build/bin/conf_gen.h:1893 msgid "the maximum number of image thumbnails drawn on the map" msgstr "Максимальное количество снимков на карте" -#: ../build/bin/conf_gen.h:1814 +#: ../build/bin/conf_gen.h:1900 msgid "group size factor" msgstr "Размер группы" -#: ../build/bin/conf_gen.h:1815 +#: ../build/bin/conf_gen.h:1901 msgid "" "increase or decrease the spatial size of images groups on the map. can " "influence the calculation time" msgstr "Размер области, в пределах которой снимки объединяются в одну группу" -#: ../build/bin/conf_gen.h:1822 +#: ../build/bin/conf_gen.h:1908 msgid "min images per group" msgstr "Мин. количество в группе" -#: ../build/bin/conf_gen.h:1823 +#: ../build/bin/conf_gen.h:1909 msgid "" "the minimum number of images to set up an images group. can influence the " "calculation time." msgstr "Минимальное количество снимков в группе" -#: ../build/bin/conf_gen.h:1828 +#: ../build/bin/conf_gen.h:1914 msgctxt "preferences" msgid "thumbnail" msgstr "Вкл." -#: ../build/bin/conf_gen.h:1829 +#: ../build/bin/conf_gen.h:1915 msgctxt "preferences" msgid "count" msgstr "Количество снимков" -#: ../build/bin/conf_gen.h:1832 ../src/libs/map_settings.c:159 +#: ../build/bin/conf_gen.h:1918 msgid "thumbnail display" msgstr "Миниатюры" -#: ../build/bin/conf_gen.h:1833 +#: ../build/bin/conf_gen.h:1919 msgid "" "three options are available: images thumbnails, only the count of images of " "the group or nothing" msgstr "Показ миниатюр или количества снимков, расположенных в данном месте" -#: ../build/bin/conf_gen.h:1844 +#: ../build/bin/conf_gen.h:1930 msgid "max polygon points" msgstr "Макс. сложность места" -#: ../build/bin/conf_gen.h:1845 +#: ../build/bin/conf_gen.h:1931 msgid "" "limit the number of points imported with polygon in find location module" msgstr "" "Максимальное количество опорных точек, импортируемых в качестве описателя " "места из модуля «Поиск на карте»" -#: ../build/bin/conf_gen.h:2135 ../build/bin/preferences_gen.h:4722 -#: ../build/bin/preferences_gen.h:4756 +#: ../build/bin/conf_gen.h:2221 ../build/bin/preferences_gen.h:5329 msgctxt "preferences" msgid "original" msgstr "Оригинал" -#: ../build/bin/conf_gen.h:2136 ../build/bin/preferences_gen.h:4727 +#: ../build/bin/conf_gen.h:2222 msgctxt "preferences" msgid "to 1/2" msgstr "1/2" -#: ../build/bin/conf_gen.h:2137 ../build/bin/preferences_gen.h:4732 +#: ../build/bin/conf_gen.h:2223 msgctxt "preferences" msgid "to 1/3" msgstr "1/3" -#: ../build/bin/conf_gen.h:2138 ../build/bin/preferences_gen.h:4737 +#: ../build/bin/conf_gen.h:2224 msgctxt "preferences" msgid "to 1/4" msgstr "1/4" -#: ../build/bin/conf_gen.h:2152 ../build/bin/conf_gen.h:2162 -#: ../build/bin/preferences_gen.h:5384 ../build/bin/preferences_gen.h:5449 +#: ../build/bin/conf_gen.h:2244 ../build/bin/conf_gen.h:2254 msgctxt "preferences" msgid "bilinear" msgstr "Билинейный" -#: ../build/bin/conf_gen.h:2153 ../build/bin/conf_gen.h:2163 -#: ../build/bin/preferences_gen.h:5389 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5454 +#: ../build/bin/conf_gen.h:2245 ../build/bin/conf_gen.h:2255 +#: ../build/bin/preferences_gen.h:5847 msgctxt "preferences" msgid "bicubic" msgstr "Бикубический" -#: ../build/bin/conf_gen.h:2154 ../build/bin/conf_gen.h:2164 -#: ../build/bin/preferences_gen.h:5394 ../build/bin/preferences_gen.h:5459 +#: ../build/bin/conf_gen.h:2246 ../build/bin/conf_gen.h:2256 msgctxt "preferences" msgid "lanczos2" msgstr "Lanczos2" -#: ../build/bin/conf_gen.h:2165 ../build/bin/preferences_gen.h:5464 -#: ../build/bin/preferences_gen.h:5483 +#: ../build/bin/conf_gen.h:2257 ../build/bin/preferences_gen.h:5882 msgctxt "preferences" msgid "lanczos3" msgstr "Lanczos3" -#: ../build/bin/conf_gen.h:2487 ../build/bin/conf_gen.h:3217 -#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:6556 -#: ../build/bin/preferences_gen.h:6592 +#: ../build/bin/conf_gen.h:2577 ../build/bin/conf_gen.h:3303 +#: ../build/bin/preferences_gen.h:7032 msgctxt "preferences" msgid "auto" msgstr "Автоширина" -#: ../build/bin/conf_gen.h:2489 ../build/bin/preferences_gen.h:6566 +#: ../build/bin/conf_gen.h:2579 msgctxt "preferences" msgid "libsecret" msgstr "libsecret" -#: ../build/bin/conf_gen.h:2490 ../build/bin/preferences_gen.h:6572 +#: ../build/bin/conf_gen.h:2580 msgctxt "preferences" msgid "kwallet" msgstr "KWallet" -#: ../build/bin/conf_gen.h:2700 +#: ../build/bin/conf_gen.h:2790 msgctxt "preferences" msgid "vectorscope" msgstr "Вектороскоп" -#: ../build/bin/conf_gen.h:2701 +#: ../build/bin/conf_gen.h:2791 msgctxt "preferences" msgid "waveform" msgstr "Волновая гистограмма" -#: ../build/bin/conf_gen.h:2702 +#: ../build/bin/conf_gen.h:2792 msgctxt "preferences" msgid "RGB parade" msgstr "RGB parade" -#: ../build/bin/conf_gen.h:2703 +#: ../build/bin/conf_gen.h:2793 msgctxt "preferences" msgid "histogram" msgstr "Гистограмма" -#: ../build/bin/conf_gen.h:2711 ../build/bin/preferences_gen.h:7264 +#: ../build/bin/conf_gen.h:2801 msgctxt "preferences" msgid "left" msgstr "Слева" -#: ../build/bin/conf_gen.h:2712 ../build/bin/preferences_gen.h:7269 -#: ../build/bin/preferences_gen.h:7288 +#: ../build/bin/conf_gen.h:2802 ../build/bin/preferences_gen.h:7619 msgctxt "preferences" msgid "right" msgstr "Справа" -#: ../build/bin/conf_gen.h:2720 ../build/bin/conf_gen.h:2757 +#: ../build/bin/conf_gen.h:2810 ../build/bin/conf_gen.h:2847 msgctxt "preferences" msgid "logarithmic" msgstr "Логарифмический" -#: ../build/bin/conf_gen.h:2721 ../build/bin/conf_gen.h:2758 +#: ../build/bin/conf_gen.h:2811 ../build/bin/conf_gen.h:2848 msgctxt "preferences" msgid "linear" msgstr "Линейный" -#: ../build/bin/conf_gen.h:2729 +#: ../build/bin/conf_gen.h:2819 msgctxt "preferences" msgid "horizontal" msgstr "Горизонтально" -#: ../build/bin/conf_gen.h:2730 +#: ../build/bin/conf_gen.h:2820 msgctxt "preferences" msgid "vertical" msgstr "Вертикально" -#: ../build/bin/conf_gen.h:2738 +#: ../build/bin/conf_gen.h:2828 msgctxt "preferences" msgid "overlaid" msgstr "Наложение" -#: ../build/bin/conf_gen.h:2739 +#: ../build/bin/conf_gen.h:2829 msgctxt "preferences" msgid "parade" msgstr "RGB Parade" -#: ../build/bin/conf_gen.h:2747 +#: ../build/bin/conf_gen.h:2837 msgctxt "preferences" msgid "u*v*" msgstr "u*v*" -#: ../build/bin/conf_gen.h:2748 +#: ../build/bin/conf_gen.h:2838 msgctxt "preferences" msgid "AzBz" msgstr "AzBz" -#: ../build/bin/conf_gen.h:2749 +#: ../build/bin/conf_gen.h:2839 msgctxt "preferences" msgid "RYB" msgstr "RYB" -#: ../build/bin/conf_gen.h:2791 +#: ../build/bin/conf_gen.h:2881 msgctxt "preferences" msgid "monochromatic" msgstr "Ч/б" -#: ../build/bin/conf_gen.h:2792 +#: ../build/bin/conf_gen.h:2882 msgctxt "preferences" msgid "analogous" msgstr "Аналоговая" -#: ../build/bin/conf_gen.h:2793 +#: ../build/bin/conf_gen.h:2883 msgctxt "preferences" msgid "analogous complementary" msgstr "Аналоговая комплементарная" -#: ../build/bin/conf_gen.h:2794 +#: ../build/bin/conf_gen.h:2884 msgctxt "preferences" msgid "complementary" msgstr "комплементарная" -#: ../build/bin/conf_gen.h:2795 +#: ../build/bin/conf_gen.h:2885 msgctxt "preferences" msgid "split complementary" msgstr "Разделенная комплементарная" -#: ../build/bin/conf_gen.h:2796 +#: ../build/bin/conf_gen.h:2886 msgctxt "preferences" msgid "dyad" msgstr "диада" -#: ../build/bin/conf_gen.h:2797 +#: ../build/bin/conf_gen.h:2887 msgctxt "preferences" msgid "triad" msgstr "триада" -#: ../build/bin/conf_gen.h:2798 +#: ../build/bin/conf_gen.h:2888 msgctxt "preferences" msgid "tetrad" msgstr "тетрада" -#: ../build/bin/conf_gen.h:2799 +#: ../build/bin/conf_gen.h:2889 msgctxt "preferences" msgid "square" msgstr "Квадрат" -#: ../build/bin/conf_gen.h:2813 +#: ../build/bin/conf_gen.h:2903 msgctxt "preferences" msgid "normal" msgstr "Обычн." -#: ../build/bin/conf_gen.h:2815 +#: ../build/bin/conf_gen.h:2905 msgctxt "preferences" msgid "narrow" msgstr "Огранич." -#: ../build/bin/conf_gen.h:2816 +#: ../build/bin/conf_gen.h:2906 msgctxt "preferences" msgid "line" msgstr "прямая" -#: ../build/bin/conf_gen.h:2956 +#: ../build/bin/conf_gen.h:3046 msgctxt "preferences" msgid "mm" msgstr "мм" -#: ../build/bin/conf_gen.h:2957 +#: ../build/bin/conf_gen.h:3047 msgctxt "preferences" msgid "cm" msgstr "см" -#: ../build/bin/conf_gen.h:2958 +#: ../build/bin/conf_gen.h:3048 msgctxt "preferences" msgid "inch" msgstr "дюйм" -#: ../build/bin/conf_gen.h:3003 ../build/bin/preferences_gen.h:7324 -#: ../build/bin/preferences_gen.h:7353 +#: ../build/bin/conf_gen.h:3093 ../build/bin/preferences_gen.h:7654 msgctxt "preferences" msgid "all" msgstr "Все" -#: ../build/bin/conf_gen.h:3004 ../build/bin/preferences_gen.h:7329 +#: ../build/bin/conf_gen.h:3094 msgctxt "preferences" msgid "xatom" msgstr "X.Org" -#: ../build/bin/conf_gen.h:3005 ../build/bin/preferences_gen.h:7334 +#: ../build/bin/conf_gen.h:3095 msgctxt "preferences" msgid "colord" msgstr "colord" -#: ../build/bin/conf_gen.h:3041 ../build/bin/preferences_gen.h:5562 -#: ../build/bin/preferences_gen.h:5596 +#: ../build/bin/conf_gen.h:3133 ../build/bin/preferences_gen.h:5958 msgctxt "preferences" msgid "scene-referred (filmic)" msgstr "Тональная кривая (плёночная)" -#: ../build/bin/conf_gen.h:3042 ../build/bin/preferences_gen.h:5567 +#: ../build/bin/conf_gen.h:3134 msgctxt "preferences" msgid "scene-referred (sigmoid)" msgstr "Тональная кривая (сигмоида)" -#: ../build/bin/conf_gen.h:3043 ../build/bin/preferences_gen.h:5572 +#: ../build/bin/conf_gen.h:3135 msgctxt "preferences" msgid "display-referred (legacy)" msgstr "Базовая кривая (старая)" -#: ../build/bin/conf_gen.h:3144 +#: ../build/bin/conf_gen.h:3230 msgid "camera time zone" msgstr "Часовой пояс камеры" -#: ../build/bin/conf_gen.h:3145 +#: ../build/bin/conf_gen.h:3231 msgid "" "most cameras don't store the time zone in EXIF. give the correct time zone " "so the GPX data can be correctly matched" @@ -773,212 +726,270 @@ "Большинство камер не записывает часовой пояс в Exif. Укажите правильно " "часовой пояс, чтобы данные GPX были корректно применены." -#: ../build/bin/conf_gen.h:3156 +#: ../build/bin/conf_gen.h:3242 msgctxt "preferences" msgid "no color" msgstr "Откл." -#: ../build/bin/conf_gen.h:3157 +#: ../build/bin/conf_gen.h:3243 msgctxt "preferences" msgid "illuminant color" msgstr "Источник света" -#: ../build/bin/conf_gen.h:3158 +#: ../build/bin/conf_gen.h:3244 msgctxt "preferences" msgid "effect emulation" msgstr "Эмуляция эффекта" -#: ../build/bin/conf_gen.h:3204 +#: ../build/bin/conf_gen.h:3290 msgctxt "preferences" msgid "list" msgstr "Список" -#: ../build/bin/conf_gen.h:3205 +#: ../build/bin/conf_gen.h:3291 msgctxt "preferences" msgid "tabs" msgstr "Закладки" -#: ../build/bin/conf_gen.h:3206 +#: ../build/bin/conf_gen.h:3292 msgctxt "preferences" msgid "columns" msgstr "Колонки" -#: ../build/bin/conf_gen.h:3215 ../build/bin/preferences_gen.h:5117 +#: ../build/bin/conf_gen.h:3301 msgctxt "preferences" msgid "active" msgstr "Показывать при наведении" -#: ../build/bin/conf_gen.h:3216 ../build/bin/preferences_gen.h:5122 +#: ../build/bin/conf_gen.h:3302 msgctxt "preferences" msgid "dim" msgstr "Затемнение" -#: ../build/bin/conf_gen.h:3218 ../build/bin/preferences_gen.h:5132 +#: ../build/bin/conf_gen.h:3304 msgctxt "preferences" msgid "fade" msgstr "Плавно скрывать" -#: ../build/bin/conf_gen.h:3219 ../build/bin/preferences_gen.h:5137 +#: ../build/bin/conf_gen.h:3305 msgctxt "preferences" msgid "fit" msgstr "Вписать блоком" -#: ../build/bin/conf_gen.h:3220 ../build/bin/preferences_gen.h:5142 +#: ../build/bin/conf_gen.h:3306 msgctxt "preferences" msgid "smooth" msgstr "Скрывать блоком" -#: ../build/bin/conf_gen.h:3221 ../build/bin/preferences_gen.h:5147 +#: ../build/bin/conf_gen.h:3307 msgctxt "preferences" msgid "glide" msgstr "Скрывать индивидуально" -#: ../build/bin/preferences_gen.h:81 ../build/bin/preferences_gen.h:3823 -#: ../build/bin/preferences_gen.h:3859 ../build/bin/preferences_gen.h:3895 -#: ../build/bin/preferences_gen.h:3931 ../build/bin/preferences_gen.h:3967 -#: ../build/bin/preferences_gen.h:4003 ../build/bin/preferences_gen.h:4039 -#: ../build/bin/preferences_gen.h:4083 ../build/bin/preferences_gen.h:4178 -#: ../build/bin/preferences_gen.h:4273 ../build/bin/preferences_gen.h:4313 -#: ../build/bin/preferences_gen.h:4356 ../build/bin/preferences_gen.h:4437 -#: ../build/bin/preferences_gen.h:4473 ../build/bin/preferences_gen.h:4510 -#: ../build/bin/preferences_gen.h:4553 ../build/bin/preferences_gen.h:4627 -#: ../build/bin/preferences_gen.h:4672 ../build/bin/preferences_gen.h:4708 -#: ../build/bin/preferences_gen.h:4778 ../build/bin/preferences_gen.h:4822 -#: ../build/bin/preferences_gen.h:4882 ../build/bin/preferences_gen.h:4918 -#: ../build/bin/preferences_gen.h:4954 ../build/bin/preferences_gen.h:4990 -#: ../build/bin/preferences_gen.h:5026 ../build/bin/preferences_gen.h:5062 -#: ../build/bin/preferences_gen.h:5098 ../build/bin/preferences_gen.h:5188 -#: ../build/bin/preferences_gen.h:5224 ../build/bin/preferences_gen.h:5260 -#: ../build/bin/preferences_gen.h:5334 ../build/bin/preferences_gen.h:5370 -#: ../build/bin/preferences_gen.h:5435 ../build/bin/preferences_gen.h:5505 -#: ../build/bin/preferences_gen.h:5548 ../build/bin/preferences_gen.h:5618 -#: ../build/bin/preferences_gen.h:5654 ../build/bin/preferences_gen.h:5690 -#: ../build/bin/preferences_gen.h:5734 ../build/bin/preferences_gen.h:5805 -#: ../build/bin/preferences_gen.h:5841 ../build/bin/preferences_gen.h:5877 -#: ../build/bin/preferences_gen.h:5913 ../build/bin/preferences_gen.h:5955 -#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6140 -#: ../build/bin/preferences_gen.h:6176 ../build/bin/preferences_gen.h:6212 -#: ../build/bin/preferences_gen.h:6248 ../build/bin/preferences_gen.h:6284 -#: ../build/bin/preferences_gen.h:6320 ../build/bin/preferences_gen.h:6356 -#: ../build/bin/preferences_gen.h:6392 ../build/bin/preferences_gen.h:6427 -#: ../build/bin/preferences_gen.h:6462 ../build/bin/preferences_gen.h:6498 -#: ../build/bin/preferences_gen.h:6542 ../build/bin/preferences_gen.h:6614 -#: ../build/bin/preferences_gen.h:6692 ../build/bin/preferences_gen.h:6767 -#: ../build/bin/preferences_gen.h:6820 ../build/bin/preferences_gen.h:6885 -#: ../build/bin/preferences_gen.h:6950 ../build/bin/preferences_gen.h:7024 -#: ../build/bin/preferences_gen.h:7060 ../build/bin/preferences_gen.h:7096 -#: ../build/bin/preferences_gen.h:7132 ../build/bin/preferences_gen.h:7168 -#: ../build/bin/preferences_gen.h:7204 ../build/bin/preferences_gen.h:7250 -#: ../build/bin/preferences_gen.h:7310 ../build/bin/preferences_gen.h:7375 -#: ../build/bin/preferences_gen.h:7429 ../build/bin/preferences_gen.h:7474 -#: ../build/bin/preferences_gen.h:7510 ../build/bin/preferences_gen.h:7546 -#: ../build/bin/preferences_gen.h:7582 ../build/bin/preferences_gen.h:7618 -#: ../build/bin/preferences_gen.h:7678 ../build/bin/preferences_gen.h:7722 -#: ../build/bin/preferences_gen.h:7766 ../build/bin/preferences_gen.h:7848 -#: ../build/bin/preferences_gen.h:7888 ../build/bin/preferences_gen.h:7928 -#: ../build/bin/preferences_gen.h:7964 ../build/bin/preferences_gen.h:8019 -#: ../build/bin/preferences_gen.h:8055 ../build/bin/preferences_gen.h:8115 -#: ../build/bin/preferences_gen.h:8161 ../build/bin/preferences_gen.h:8197 -#: ../build/bin/preferences_gen.h:8243 ../build/bin/preferences_gen.h:8303 -#: ../build/bin/preferences_gen.h:8355 ../build/bin/preferences_gen.h:8401 -#: ../build/bin/preferences_gen.h:8469 ../build/bin/preferences_gen.h:8516 +#: ../build/bin/preferences_gen.h:77 ../build/bin/preferences_gen.h:4305 +#: ../build/bin/preferences_gen.h:4344 ../build/bin/preferences_gen.h:4383 +#: ../build/bin/preferences_gen.h:4417 ../build/bin/preferences_gen.h:4488 +#: ../build/bin/preferences_gen.h:4522 ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:4590 ../build/bin/preferences_gen.h:4624 +#: ../build/bin/preferences_gen.h:4658 ../build/bin/preferences_gen.h:4692 +#: ../build/bin/preferences_gen.h:4733 ../build/bin/preferences_gen.h:4768 +#: ../build/bin/preferences_gen.h:4803 ../build/bin/preferences_gen.h:4837 +#: ../build/bin/preferences_gen.h:4871 ../build/bin/preferences_gen.h:4906 +#: ../build/bin/preferences_gen.h:4940 ../build/bin/preferences_gen.h:4979 +#: ../build/bin/preferences_gen.h:5020 ../build/bin/preferences_gen.h:5093 +#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:5162 +#: ../build/bin/preferences_gen.h:5203 ../build/bin/preferences_gen.h:5237 +#: ../build/bin/preferences_gen.h:5281 ../build/bin/preferences_gen.h:5315 +#: ../build/bin/preferences_gen.h:5350 ../build/bin/preferences_gen.h:5391 +#: ../build/bin/preferences_gen.h:5426 ../build/bin/preferences_gen.h:5460 +#: ../build/bin/preferences_gen.h:5494 ../build/bin/preferences_gen.h:5528 +#: ../build/bin/preferences_gen.h:5562 ../build/bin/preferences_gen.h:5596 +#: ../build/bin/preferences_gen.h:5630 ../build/bin/preferences_gen.h:5665 +#: ../build/bin/preferences_gen.h:5699 ../build/bin/preferences_gen.h:5733 +#: ../build/bin/preferences_gen.h:5799 ../build/bin/preferences_gen.h:5833 +#: ../build/bin/preferences_gen.h:5868 ../build/bin/preferences_gen.h:5903 +#: ../build/bin/preferences_gen.h:5944 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/preferences_gen.h:6013 ../build/bin/preferences_gen.h:6047 +#: ../build/bin/preferences_gen.h:6088 ../build/bin/preferences_gen.h:6124 +#: ../build/bin/preferences_gen.h:6165 ../build/bin/preferences_gen.h:6209 +#: ../build/bin/preferences_gen.h:6254 ../build/bin/preferences_gen.h:6305 +#: ../build/bin/preferences_gen.h:6349 ../build/bin/preferences_gen.h:6393 +#: ../build/bin/preferences_gen.h:6437 ../build/bin/preferences_gen.h:6481 +#: ../build/bin/preferences_gen.h:6525 ../build/bin/preferences_gen.h:6569 +#: ../build/bin/preferences_gen.h:6635 ../build/bin/preferences_gen.h:6669 +#: ../build/bin/preferences_gen.h:6703 ../build/bin/preferences_gen.h:6737 +#: ../build/bin/preferences_gen.h:6771 ../build/bin/preferences_gen.h:6805 +#: ../build/bin/preferences_gen.h:6839 ../build/bin/preferences_gen.h:6873 +#: ../build/bin/preferences_gen.h:6906 ../build/bin/preferences_gen.h:6939 +#: ../build/bin/preferences_gen.h:6973 ../build/bin/preferences_gen.h:7014 +#: ../build/bin/preferences_gen.h:7053 ../build/bin/preferences_gen.h:7124 +#: ../build/bin/preferences_gen.h:7159 ../build/bin/preferences_gen.h:7210 +#: ../build/bin/preferences_gen.h:7245 ../build/bin/preferences_gen.h:7280 +#: ../build/bin/preferences_gen.h:7324 ../build/bin/preferences_gen.h:7390 +#: ../build/bin/preferences_gen.h:7424 ../build/bin/preferences_gen.h:7458 +#: ../build/bin/preferences_gen.h:7492 ../build/bin/preferences_gen.h:7526 +#: ../build/bin/preferences_gen.h:7560 ../build/bin/preferences_gen.h:7605 +#: ../build/bin/preferences_gen.h:7640 ../build/bin/preferences_gen.h:7675 +#: ../build/bin/preferences_gen.h:7731 ../build/bin/preferences_gen.h:7772 +#: ../build/bin/preferences_gen.h:7806 ../build/bin/preferences_gen.h:7840 +#: ../build/bin/preferences_gen.h:7874 ../build/bin/preferences_gen.h:7908 +#: ../build/bin/preferences_gen.h:7943 ../build/bin/preferences_gen.h:7984 +#: ../build/bin/preferences_gen.h:8025 ../build/bin/preferences_gen.h:8085 +#: ../build/bin/preferences_gen.h:8119 ../build/bin/preferences_gen.h:8154 +#: ../build/bin/preferences_gen.h:8199 ../build/bin/preferences_gen.h:8233 +#: ../build/bin/preferences_gen.h:8278 ../build/bin/preferences_gen.h:8313 +#: ../build/bin/preferences_gen.h:8365 ../build/bin/preferences_gen.h:8410 +#: ../build/bin/preferences_gen.h:8480 ../build/bin/preferences_gen.h:8526 msgid "this setting has been modified" msgstr "Изменено пользователем" #. doesn't seem to work from gtkrc -#: ../build/bin/preferences_gen.h:3793 ../build/bin/preferences_gen.h:4407 -#: ../build/bin/preferences_gen.h:5304 ../build/bin/preferences_gen.h:6110 -#: ../build/bin/preferences_gen.h:6662 ../build/bin/preferences_gen.h:6994 -#: ../build/bin/preferences_gen.h:7818 ../src/gui/accelerators.c:2724 -#: ../src/gui/gtk.c:2580 ../src/gui/preferences.c:421 -#: ../src/gui/preferences.c:876 ../src/libs/modulegroups.c:3886 +#: ../build/bin/preferences_gen.h:4277 ../build/bin/preferences_gen.h:4460 +#: ../build/bin/preferences_gen.h:5065 ../build/bin/preferences_gen.h:5771 +#: ../build/bin/preferences_gen.h:6607 ../build/bin/preferences_gen.h:7096 +#: ../build/bin/preferences_gen.h:7362 ../src/gui/accelerators.c:2996 +#: ../src/gui/gtk.c:2641 ../src/gui/preferences.c:424 +#: ../src/gui/preferences.c:874 ../src/libs/modulegroups.c:3888 msgid "?" msgstr "?" -#: ../build/bin/preferences_gen.h:3806 ../build/bin/preferences_gen.h:4420 -#: ../build/bin/preferences_gen.h:6123 ../src/gui/preferences.c:270 -msgid "general" -msgstr "Общие" +#: ../build/bin/preferences_gen.h:4287 ../src/control/jobs/control_jobs.c:2352 +#: ../src/libs/import.c:173 +msgid "import" +msgstr "Импорт" -#: ../build/bin/preferences_gen.h:3826 -msgid "hide built-in presets for utility modules" -msgstr "Скрыть встроенные профили модулей" +#: ../build/bin/preferences_gen.h:4289 +msgid "session options" +msgstr "Каталоги и файлы" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4017 -#: ../build/bin/preferences_gen.h:4053 ../build/bin/preferences_gen.h:4156 -#: ../build/bin/preferences_gen.h:4251 ../build/bin/preferences_gen.h:4291 -#: ../build/bin/preferences_gen.h:4334 ../build/bin/preferences_gen.h:4377 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4531 ../build/bin/preferences_gen.h:4606 -#: ../build/bin/preferences_gen.h:4686 ../build/bin/preferences_gen.h:4756 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4860 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5040 ../build/bin/preferences_gen.h:5076 -#: ../build/bin/preferences_gen.h:5166 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5274 -#: ../build/bin/preferences_gen.h:5348 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5483 ../build/bin/preferences_gen.h:5525 -#: ../build/bin/preferences_gen.h:5596 ../build/bin/preferences_gen.h:5632 -#: ../build/bin/preferences_gen.h:5668 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5782 ../build/bin/preferences_gen.h:5819 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:5927 ../build/bin/preferences_gen.h:5998 -#: ../build/bin/preferences_gen.h:6074 ../build/bin/preferences_gen.h:6154 -#: ../build/bin/preferences_gen.h:6190 ../build/bin/preferences_gen.h:6226 -#: ../build/bin/preferences_gen.h:6262 ../build/bin/preferences_gen.h:6298 -#: ../build/bin/preferences_gen.h:6334 ../build/bin/preferences_gen.h:6370 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:6592 ../build/bin/preferences_gen.h:6632 -#: ../build/bin/preferences_gen.h:6745 ../build/bin/preferences_gen.h:6863 -#: ../build/bin/preferences_gen.h:6928 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7146 -#: ../build/bin/preferences_gen.h:7182 ../build/bin/preferences_gen.h:7288 -#: ../build/bin/preferences_gen.h:7353 ../build/bin/preferences_gen.h:7393 -#: ../build/bin/preferences_gen.h:7443 ../build/bin/preferences_gen.h:7488 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7656 -#: ../build/bin/preferences_gen.h:7692 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:7866 ../build/bin/preferences_gen.h:7906 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:7982 -#: ../build/bin/preferences_gen.h:8033 ../build/bin/preferences_gen.h:8093 -#: ../build/bin/preferences_gen.h:8175 ../build/bin/preferences_gen.h:8281 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4308 +msgid "base directory naming pattern" +msgstr "Шаблон имени основного каталога" + +#: ../build/bin/preferences_gen.h:4323 ../build/bin/preferences_gen.h:4362 +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4435 +#: ../build/bin/preferences_gen.h:4501 ../build/bin/preferences_gen.h:4535 +#: ../build/bin/preferences_gen.h:4569 ../build/bin/preferences_gen.h:4603 +#: ../build/bin/preferences_gen.h:4637 ../build/bin/preferences_gen.h:4671 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4747 +#: ../build/bin/preferences_gen.h:4782 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:4850 ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:4958 +#: ../build/bin/preferences_gen.h:4999 ../build/bin/preferences_gen.h:5040 +#: ../build/bin/preferences_gen.h:5106 ../build/bin/preferences_gen.h:5140 +#: ../build/bin/preferences_gen.h:5182 ../build/bin/preferences_gen.h:5217 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5329 +#: ../build/bin/preferences_gen.h:5363 ../build/bin/preferences_gen.h:5405 +#: ../build/bin/preferences_gen.h:5439 ../build/bin/preferences_gen.h:5473 +#: ../build/bin/preferences_gen.h:5507 ../build/bin/preferences_gen.h:5541 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5644 ../build/bin/preferences_gen.h:5678 +#: ../build/bin/preferences_gen.h:5712 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5847 +#: ../build/bin/preferences_gen.h:5882 ../build/bin/preferences_gen.h:5922 +#: ../build/bin/preferences_gen.h:5958 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6060 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6178 ../build/bin/preferences_gen.h:6223 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6318 +#: ../build/bin/preferences_gen.h:6362 ../build/bin/preferences_gen.h:6406 +#: ../build/bin/preferences_gen.h:6450 ../build/bin/preferences_gen.h:6494 +#: ../build/bin/preferences_gen.h:6538 ../build/bin/preferences_gen.h:6582 +#: ../build/bin/preferences_gen.h:6648 ../build/bin/preferences_gen.h:6682 +#: ../build/bin/preferences_gen.h:6716 ../build/bin/preferences_gen.h:6750 +#: ../build/bin/preferences_gen.h:6784 ../build/bin/preferences_gen.h:6818 +#: ../build/bin/preferences_gen.h:6852 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7032 +#: ../build/bin/preferences_gen.h:7071 ../build/bin/preferences_gen.h:7138 +#: ../build/bin/preferences_gen.h:7224 ../build/bin/preferences_gen.h:7259 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7505 ../build/bin/preferences_gen.h:7539 +#: ../build/bin/preferences_gen.h:7619 ../build/bin/preferences_gen.h:7654 +#: ../build/bin/preferences_gen.h:7693 ../build/bin/preferences_gen.h:7744 +#: ../build/bin/preferences_gen.h:7785 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7922 ../build/bin/preferences_gen.h:7956 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8133 ../build/bin/preferences_gen.h:8212 +#: ../build/bin/preferences_gen.h:8292 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 #, c-format msgid "double click to reset to `%s'" msgstr "Двойной щелчок сбрасывает значение до «%s»" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4053 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4686 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:5040 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5348 -#: ../build/bin/preferences_gen.h:5632 ../build/bin/preferences_gen.h:5668 -#: ../build/bin/preferences_gen.h:5819 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:6370 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7146 ../build/bin/preferences_gen.h:7443 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7692 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:8033 -#: ../build/bin/preferences_gen.h:8175 +#: ../build/bin/preferences_gen.h:4326 ../build/bin/preferences_gen.h:4365 +msgid "part of full import path for an import session" +msgstr "Шаблон именования каталога, применяемый при импорте" + +#: ../build/bin/preferences_gen.h:4347 +msgid "sub directory naming pattern" +msgstr "Шаблон имени подкаталогов" + +#: ../build/bin/preferences_gen.h:4386 +msgid "keep original filename" +msgstr "Сохранять исходное имя файлов" + +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4501 +#: ../build/bin/preferences_gen.h:4535 ../build/bin/preferences_gen.h:4569 +#: ../build/bin/preferences_gen.h:4603 ../build/bin/preferences_gen.h:4637 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4850 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:5106 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5439 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5712 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6450 +#: ../build/bin/preferences_gen.h:6494 ../build/bin/preferences_gen.h:6538 +#: ../build/bin/preferences_gen.h:6582 ../build/bin/preferences_gen.h:6852 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7505 +#: ../build/bin/preferences_gen.h:7744 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7956 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8212 msgctxt "preferences" msgid "FALSE" msgstr "ОТКЛЮЧЕНО" -#: ../build/bin/preferences_gen.h:3840 +#: ../build/bin/preferences_gen.h:4399 +msgid "" +"keep original filename instead of a pattern while importing from camera or " +"card" +msgstr "Сохранять исходное имя файлов при импорте" + +#: ../build/bin/preferences_gen.h:4420 +msgid "file naming pattern" +msgstr "Шаблон имени файлов" + +#: ../build/bin/preferences_gen.h:4438 +msgid "file naming pattern used for a import session" +msgstr "Шаблон именования файлов, применяемый при импорте" + +#: ../build/bin/preferences_gen.h:4470 ../src/gui/gtk.c:1266 +#: ../src/gui/preferences.c:544 ../src/libs/tools/lighttable.c:66 +#: ../src/views/lighttable.c:91 +msgid "lighttable" +msgstr "Обзор" + +#: ../build/bin/preferences_gen.h:4472 ../build/bin/preferences_gen.h:5077 +#: ../build/bin/preferences_gen.h:6619 ../src/gui/preferences.c:270 +msgid "general" +msgstr "Общие" + +#: ../build/bin/preferences_gen.h:4491 +msgid "hide built-in presets for utility modules" +msgstr "Скрыть встроенные профили модулей" + +#: ../build/bin/preferences_gen.h:4504 msgid "hides built-in presets of utility modules in presets menu." msgstr "Скрыть встроенные профили модулей в режиме обзора" -#: ../build/bin/preferences_gen.h:3862 +#: ../build/bin/preferences_gen.h:4525 msgid "use single-click in the collections module" msgstr "Одиночный щелчок в панели коллекций" -#: ../build/bin/preferences_gen.h:3876 +#: ../build/bin/preferences_gen.h:4538 msgid "" "check this option to use single-click to select items in the collections " "module. this will allow you to do range selections for date-time and numeric " @@ -988,81 +999,83 @@ "осуществлять групповой выбор снимков по дате, времени съёмки и числовым " "критериям." -#: ../build/bin/preferences_gen.h:3898 +#: ../build/bin/preferences_gen.h:4559 msgid "expand a single utility module at a time" msgstr "Сворачивать неактивные модули в режиме обзора" -#: ../build/bin/preferences_gen.h:3912 +#: ../build/bin/preferences_gen.h:4572 msgid "this option toggles the behavior of shift clicking in lighttable mode" msgstr "" "Эта опция переключает поведение комбинации Shift+Щелчок в режиме обзора" -#: ../build/bin/preferences_gen.h:3934 +#: ../build/bin/preferences_gen.h:4593 msgid "scroll utility modules to the top when expanded" msgstr "Прокрутка активного модуля в режиме обзора" -#: ../build/bin/preferences_gen.h:3948 ../build/bin/preferences_gen.h:5079 +#: ../build/bin/preferences_gen.h:4606 ../build/bin/preferences_gen.h:5612 msgid "" "when this option is enabled then darktable will try to scroll the module to " "the top of the visible list" msgstr "" "Если опция включена, то активный модуль будет прокручен в видимую область" -#: ../build/bin/preferences_gen.h:3970 +#: ../build/bin/preferences_gen.h:4627 msgid "rating an image one star twice will not zero out the rating" msgstr "Отключить снятие рейтинга по двукратному выставлению одной звезды" -#: ../build/bin/preferences_gen.h:3984 +#: ../build/bin/preferences_gen.h:4640 msgid "" "defines whether rating an image one star twice will zero out star rating" msgstr "" "Определяет, будет ли оценивание изображения одной звездой дважды обнулять " "звездный рейтинг" -#: ../build/bin/preferences_gen.h:4006 ../build/bin/preferences_gen.h:4675 +#: ../build/bin/preferences_gen.h:4661 ../build/bin/preferences_gen.h:5284 msgid "show scrollbars for central view" msgstr "Показывать полосы прокрутки центрального окна" -#: ../build/bin/preferences_gen.h:4017 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5076 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5274 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5927 -#: ../build/bin/preferences_gen.h:6154 ../build/bin/preferences_gen.h:6190 -#: ../build/bin/preferences_gen.h:6226 ../build/bin/preferences_gen.h:6262 -#: ../build/bin/preferences_gen.h:6298 ../build/bin/preferences_gen.h:6334 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7182 -#: ../build/bin/preferences_gen.h:7488 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4671 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:5140 ../build/bin/preferences_gen.h:5363 +#: ../build/bin/preferences_gen.h:5473 ../build/bin/preferences_gen.h:5507 +#: ../build/bin/preferences_gen.h:5541 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5678 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:6060 ../build/bin/preferences_gen.h:6178 +#: ../build/bin/preferences_gen.h:6318 ../build/bin/preferences_gen.h:6362 +#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6648 +#: ../build/bin/preferences_gen.h:6682 ../build/bin/preferences_gen.h:6716 +#: ../build/bin/preferences_gen.h:6750 ../build/bin/preferences_gen.h:6784 +#: ../build/bin/preferences_gen.h:6818 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7539 ../build/bin/preferences_gen.h:7785 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 msgctxt "preferences" msgid "TRUE" msgstr "ВКЛЮЧЕНО" -#: ../build/bin/preferences_gen.h:4020 ../build/bin/preferences_gen.h:4689 +#: ../build/bin/preferences_gen.h:4674 ../build/bin/preferences_gen.h:5297 msgid "defines whether scrollbars should be displayed" msgstr "Настройки показа полос прокрутки" -#: ../build/bin/preferences_gen.h:4042 +#: ../build/bin/preferences_gen.h:4695 msgid "show image time with milliseconds" msgstr "Отображать миллисекунды" -#: ../build/bin/preferences_gen.h:4056 +#: ../build/bin/preferences_gen.h:4708 msgid "defines whether time should be displayed with milliseconds" msgstr "Отображение миллисекунд" -#: ../build/bin/preferences_gen.h:4066 +#: ../build/bin/preferences_gen.h:4717 msgid "thumbnails" msgstr "Миниатюры" -#: ../build/bin/preferences_gen.h:4086 +#: ../build/bin/preferences_gen.h:4736 msgid "use raw file instead of embedded JPEG from size" msgstr "Мин. размер для обработки Raw вместо JPEG" -#: ../build/bin/preferences_gen.h:4159 +#: ../build/bin/preferences_gen.h:4750 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "raw file instead of the embedded preview JPEG (better but slower).\n" @@ -1073,11 +1086,11 @@ "Если миниатюра больше указанного размера, то она будет обработана с высокими " "настройками качества вместо встроенного JPEG." -#: ../build/bin/preferences_gen.h:4181 +#: ../build/bin/preferences_gen.h:4771 msgid "high quality processing from size" msgstr "Мин. размер для качественной обработки" -#: ../build/bin/preferences_gen.h:4254 +#: ../build/bin/preferences_gen.h:4785 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "the full quality rendering path (better but slower).\n" @@ -1088,11 +1101,82 @@ "Если миниатюра больше указанного размера, то она будет обработана с высокими " "настройками качества" -#: ../build/bin/preferences_gen.h:4276 +#: ../build/bin/preferences_gen.h:4806 +msgid "enable disk backend for thumbnail cache" +msgstr "Кэшировать миниатюры" + +#: ../build/bin/preferences_gen.h:4819 +msgid "" +"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want. light table " +"performance will be increased greatly when browsing a lot.\n" +"to generate all thumbnails of your entire collection offline, run 'darktable-" +"generate-cache'." +msgstr "" +"Кэшировать сгенерированные миниатюры на диск (.cache/darktable/).\n" +"Для хранения миниатюр может потребоваться значительный объём дисковой памяти " +"(несколько гигабайт на коллекцию 20 тыс. снимков) и они автоматически не " +"удаляются.\n" +"Их можно очистить вручную, это может положительно сказаться на " +"производительности режима обзора. Чтобы сгенерировать новые миниатюры для " +"всей коллекции используйте утилиту командной строки «darktable-generate-" +"cache»." + +#: ../build/bin/preferences_gen.h:4840 +msgid "enable disk backend for full preview cache" +msgstr "Кэшировать полноразмерные изображения" + +#: ../build/bin/preferences_gen.h:4853 +msgid "" +"if enabled, write full preview to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want.\n" +"light table performance will be increased greatly when zooming image in full " +"preview mode." +msgstr "" +"Кэшировать полноразмерные изображения на диск (.cache/darktable/)..\n" +"Для хранения миниатюр может потребоваться значительный объём дисковой памяти " +"(несколько гигабайт на коллекцию 20 тыс. снимков) и они автоматически не " +"удаляются..\n" +"Их можно очистить вручную,.\n" +"это может положительно сказаться на производительности режима обзора." + +#: ../build/bin/preferences_gen.h:4874 +msgid "generate thumbnails in background" +msgstr "Генерировать миниатюры в фоновом режиме" + +#: ../build/bin/preferences_gen.h:4888 +msgid "" +"if 'enable disk backend for thumbnail cache' is enabled thumbnails/mipmaps " +"up to the selected size are generated while user is inactive in lighttable." +msgstr "" +"Если включена опция \"Кэшировать миниатюры\", миниатюры/MIP-карты до " +"выбранного размера генерируются, пока пользователь не использует режим " +"просмотра." + +#: ../build/bin/preferences_gen.h:4909 +msgid "reset cached thumbnails" +msgstr "Сбросить кэш миниатюр" + +#: ../build/bin/preferences_gen.h:4922 +msgid "" +"force thumbnails to be regenerated by resetting the database. this may be " +"needed in case some thumbnails have been manually removed or corrupted." +msgstr "" +"Принудительное восстановление миниатюр путем сброса базы данных. Это может " +"потребоваться в случае, если некоторые миниатюры были удалены вручную или " +"повреждены." + +#: ../build/bin/preferences_gen.h:4943 msgid "delimiters for size categories" msgstr "Деление на размерные группы" -#: ../build/bin/preferences_gen.h:4294 +#: ../build/bin/preferences_gen.h:4961 msgid "" "size categories are used to be able to set different overlays and CSS values " "depending of the size of the thumbnail, separated by |.\n" @@ -1104,25 +1188,30 @@ "Используйте «|» в качестве разделителя. Например, 120|400 определяет три " "категории: 0-120px, 120-400px и 400px и более." -#: ../build/bin/preferences_gen.h:4316 +#: ../build/bin/preferences_gen.h:4982 msgid "pattern for the thumbnail extended overlay text" msgstr "Содержимое расширенных подсказок" -#: ../build/bin/preferences_gen.h:4337 ../build/bin/preferences_gen.h:4380 +#: ../build/bin/preferences_gen.h:5002 ../build/bin/preferences_gen.h:5043 msgid "see manual to know all the tags you can use." msgstr "" "Обратитесь к документации, чтобы узнать доступные типы отображаемой " "информации о снимке" -#: ../build/bin/preferences_gen.h:4359 +#: ../build/bin/preferences_gen.h:5023 msgid "pattern for the thumbnail tooltip (empty to disable)" msgstr "Содержимое всплывающих подсказок" -#: ../build/bin/preferences_gen.h:4440 +#: ../build/bin/preferences_gen.h:5075 ../src/gui/gtk.c:1267 +#: ../src/gui/preferences.c:544 ../src/views/darkroom.c:94 +msgid "darkroom" +msgstr "Обработка" + +#: ../build/bin/preferences_gen.h:5096 msgid "scroll down to increase mask parameters" msgstr "прокрутите вниз, чтобы увеличить параметры маски" -#: ../build/bin/preferences_gen.h:4454 +#: ../build/bin/preferences_gen.h:5109 msgid "" "when using the mouse scroll wheel to change mask parameters, scroll down to " "increase the mask size, feather size, opacity, brush hardness and gradient " @@ -1134,11 +1223,11 @@ "непрозрачность, жесткость кисти и кривизну градиента\n" "по умолчанию прокрутка вверх увеличивает эти параметры" -#: ../build/bin/preferences_gen.h:4476 +#: ../build/bin/preferences_gen.h:5130 msgid "middle mouse button zooms to 200%" msgstr "Средняя кнопка мыши увеличивает масштаб до 200%" -#: ../build/bin/preferences_gen.h:4491 +#: ../build/bin/preferences_gen.h:5144 #, no-c-format msgid "" "if enabled, the zoom level will cycle between 100%, 200% and fit to viewport " @@ -1150,34 +1239,34 @@ "отключено, то будет переключаться между размером области просмотра и 100%, а " "клавишу \"Ctrl\" можно использовать для управления уровнем масштабирования." -#: ../build/bin/preferences_gen.h:4513 +#: ../build/bin/preferences_gen.h:5165 msgid "pattern for the image information line" msgstr "Шаблон информации о снимке" -#: ../build/bin/preferences_gen.h:4534 +#: ../build/bin/preferences_gen.h:5185 msgid "see manual for a list of the tags you can use." msgstr "" "Обратитесь к документации, чтобы узнать доступные типы отображаемой " "информации о снимке" -#: ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:5206 msgid "position of the image information line" msgstr "Положение информации о снимке" -#: ../build/bin/preferences_gen.h:4630 +#: ../build/bin/preferences_gen.h:5240 msgid "border around image in darkroom mode" msgstr "Поля вокруг изображения" -#: ../build/bin/preferences_gen.h:4650 ../build/bin/preferences_gen.h:6790 -#: ../build/bin/preferences_gen.h:7228 ../build/bin/preferences_gen.h:7789 -#: ../build/bin/preferences_gen.h:8139 ../build/bin/preferences_gen.h:8221 -#: ../build/bin/preferences_gen.h:8379 ../build/bin/preferences_gen.h:8493 -#: ../build/bin/preferences_gen.h:8540 +#: ../build/bin/preferences_gen.h:5260 ../build/bin/preferences_gen.h:7182 +#: ../build/bin/preferences_gen.h:7303 ../build/bin/preferences_gen.h:7584 +#: ../build/bin/preferences_gen.h:8048 ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8257 ../build/bin/preferences_gen.h:8389 +#: ../build/bin/preferences_gen.h:8504 ../build/bin/preferences_gen.h:8550 #, c-format msgid "double click to reset to `%d'" msgstr "Двойной щелчок сбрасывает значение до «%d»" -#: ../build/bin/preferences_gen.h:4653 +#: ../build/bin/preferences_gen.h:5263 msgid "" "process the image in darkroom mode with a small border. set to 0 if you " "don't want any border." @@ -1185,19 +1274,19 @@ "Показывать небольшую границу вокруг изображения в режиме обработки. " "Установите 0, чтобы отключить её." -#: ../build/bin/preferences_gen.h:4711 +#: ../build/bin/preferences_gen.h:5318 msgid "reduce resolution of preview image" msgstr "Разрешение предпросмотра" -#: ../build/bin/preferences_gen.h:4759 +#: ../build/bin/preferences_gen.h:5332 msgid "decrease to speed up preview rendering, may hinder accurate masking" msgstr "Снизить разрешение предпросмотра для увеличения скорости обработки" -#: ../build/bin/preferences_gen.h:4781 +#: ../build/bin/preferences_gen.h:5353 msgid "show loading screen between images" msgstr "Показывать серый экран загрузки изображения" -#: ../build/bin/preferences_gen.h:4795 +#: ../build/bin/preferences_gen.h:5366 msgid "" "show gray loading screen when navigating between images in the darkroom\n" "disable to just show a toast message" @@ -1205,73 +1294,73 @@ "Показывать серый экран во время загрузки следующего изображения в режиме " "обработки" -#: ../build/bin/preferences_gen.h:4805 +#: ../build/bin/preferences_gen.h:5375 msgid "modules" msgstr "Модули" -#: ../build/bin/preferences_gen.h:4825 +#: ../build/bin/preferences_gen.h:5394 msgid "display of individual color channels" msgstr "Цветовые каналы при работе с масками" -#: ../build/bin/preferences_gen.h:4863 +#: ../build/bin/preferences_gen.h:5408 msgid "" "defines how color channels are displayed when activated in the parametric " "masks feature." msgstr "" "Способ отображения цветовых каналов при работе с параметрическими масками" -#: ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:5429 msgid "hide built-in presets for processing modules" msgstr "Скрыть встроенные профили модулей" -#: ../build/bin/preferences_gen.h:4899 +#: ../build/bin/preferences_gen.h:5442 msgid "" "hides built-in presets of processing modules in both presets and favourites " "menu." msgstr "Скрыть встроенные профили модулей в режиме обработки" -#: ../build/bin/preferences_gen.h:4921 ../build/bin/preferences_gen.h:4935 +#: ../build/bin/preferences_gen.h:5463 ../build/bin/preferences_gen.h:5476 msgid "show the guides widget in modules UI" msgstr "Показать виджет руководств в пользовательском интерфейсе модулей" -#: ../build/bin/preferences_gen.h:4957 +#: ../build/bin/preferences_gen.h:5497 msgid "expand a single processing module at a time" msgstr "Сворачивать неактивные модули в режиме обработки" -#: ../build/bin/preferences_gen.h:4971 +#: ../build/bin/preferences_gen.h:5510 msgid "this option toggles the behavior of shift clicking in darkroom mode" msgstr "" "Эта опция переключает поведение комбинации Shift+Щелчок в режиме обработки" -#: ../build/bin/preferences_gen.h:4993 +#: ../build/bin/preferences_gen.h:5531 msgid "only collapse modules in current group" msgstr "Сворачивать только в текущей группе" -#: ../build/bin/preferences_gen.h:5007 +#: ../build/bin/preferences_gen.h:5544 msgid "" "if only expanding a single module at a time, only collapse other modules in " "the current group - ignore modules in other groups" msgstr "Сворачивать неактивные модули только в текущей группе" -#: ../build/bin/preferences_gen.h:5029 +#: ../build/bin/preferences_gen.h:5565 msgid "expand the module when it is activated, and collapse it when disabled" msgstr "Разворачивать модуль при включении и сворачивать неактивные модули" -#: ../build/bin/preferences_gen.h:5043 +#: ../build/bin/preferences_gen.h:5578 msgid "" "this option allows to expand or collapse automatically the module when it is " "enabled or disabled." msgstr "Разворачивать модуль при активации и сворачивать его при дезактивации" -#: ../build/bin/preferences_gen.h:5065 +#: ../build/bin/preferences_gen.h:5599 msgid "scroll processing modules to the top when expanded" msgstr "Прокрутка активного модуля в режиме обработки" -#: ../build/bin/preferences_gen.h:5101 +#: ../build/bin/preferences_gen.h:5633 msgid "show right-side buttons in processing module headers" msgstr "Видимость кнопок при наведении мыши" -#: ../build/bin/preferences_gen.h:5169 +#: ../build/bin/preferences_gen.h:5647 msgid "" "when the mouse is not over a module, the multi-instance, reset and preset " "buttons can be hidden:\n" @@ -1300,21 +1389,21 @@ "\"Скрывать индивидуально\" — скрывать индивидуальные кнопки, когда ширина " "модуля слишком мала." -#: ../build/bin/preferences_gen.h:5191 +#: ../build/bin/preferences_gen.h:5668 msgid "show mask indicator in module headers" msgstr "Показывать индикатор наличия масок" -#: ../build/bin/preferences_gen.h:5205 +#: ../build/bin/preferences_gen.h:5681 msgid "" "if enabled, an icon will be shown in the header of any processing modules " "that have a mask applied" msgstr "Показывать индикатор наличия масок в заголовке модуля" -#: ../build/bin/preferences_gen.h:5227 +#: ../build/bin/preferences_gen.h:5702 msgid "prompt for name on addition of new instance" msgstr "Запрашивать имя при добавлении нового экземпляра" -#: ../build/bin/preferences_gen.h:5241 +#: ../build/bin/preferences_gen.h:5715 msgid "" "if enabled, a rename prompt will be present for each new module instance " "(either new instance or duplicate)" @@ -1322,11 +1411,11 @@ "Если включено, запрос на переименование будет присутствовать для каждого " "нового экземпляра модуля (либо нового экземпляра, либо дубликата)" -#: ../build/bin/preferences_gen.h:5263 +#: ../build/bin/preferences_gen.h:5736 msgid "automatically update module name" msgstr "Автоматически обновлять имя модуля" -#: ../build/bin/preferences_gen.h:5277 +#: ../build/bin/preferences_gen.h:5749 msgid "" "if enabled, the module name will be automatically updated to match a preset " "name or a preset instance name if present." @@ -1334,24 +1423,28 @@ "Если включено, название модуля будет автоматически обновлено в соответствии " "с именем профиля или именем копии профиля, если оно присутствует." -#: ../build/bin/preferences_gen.h:5317 +#: ../build/bin/preferences_gen.h:5781 +msgid "processing" +msgstr "Обрабатывается" + +#: ../build/bin/preferences_gen.h:5783 msgid "image processing" msgstr "Изображенние обрабатывается" -#: ../build/bin/preferences_gen.h:5337 +#: ../build/bin/preferences_gen.h:5802 msgid "always use LittleCMS 2 to apply output color profile" msgstr "" "всегда используйте LittleCMS 2 для применения выходного цветового профиля" -#: ../build/bin/preferences_gen.h:5351 +#: ../build/bin/preferences_gen.h:5815 msgid "this is slower than the default." msgstr "это медленнее, чем по умолчанию." -#: ../build/bin/preferences_gen.h:5373 +#: ../build/bin/preferences_gen.h:5836 msgid "pixel interpolator (warp)" msgstr "Пиксельный интерполятор (деформация)" -#: ../build/bin/preferences_gen.h:5416 +#: ../build/bin/preferences_gen.h:5850 msgid "" "pixel interpolator used in modules for rotation, lens correction, liquify, " "cropping and final scaling (bilinear, bicubic, lanczos2)." @@ -1359,41 +1452,41 @@ "Алгоритм интерполяции, используемый для поворотов, коррекции оптических " "искажений и преобразований" -#: ../build/bin/preferences_gen.h:5438 +#: ../build/bin/preferences_gen.h:5871 msgid "pixel interpolator (scaling)" msgstr "Алгоритм интерполяция (масштабирование)" -#: ../build/bin/preferences_gen.h:5486 +#: ../build/bin/preferences_gen.h:5885 msgid "" "pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." msgstr "Алгоритм интерполяции, используемый для масштабирования" -#: ../build/bin/preferences_gen.h:5508 +#: ../build/bin/preferences_gen.h:5906 msgid "LUT 3D root folder" msgstr "Каталог 3D таблиц поиска цветов" -#: ../build/bin/preferences_gen.h:5513 ../src/control/jobs/control_jobs.c:1688 -#: ../src/control/jobs/control_jobs.c:1742 ../src/gui/preferences.c:1081 -#: ../src/gui/presets.c:419 ../src/imageio/storage/disk.c:122 -#: ../src/imageio/storage/disk.c:178 ../src/imageio/storage/gallery.c:109 -#: ../src/imageio/storage/gallery.c:163 ../src/imageio/storage/latex.c:108 -#: ../src/imageio/storage/latex.c:162 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/import.c:1664 ../src/libs/styles.c:391 +#: ../build/bin/preferences_gen.h:5912 ../src/control/jobs/control_jobs.c:1691 +#: ../src/control/jobs/control_jobs.c:1745 ../src/gui/preferences.c:1080 +#: ../src/gui/presets.c:421 ../src/imageio/storage/disk.c:197 +#: ../src/imageio/storage/disk.c:261 ../src/imageio/storage/gallery.c:149 +#: ../src/imageio/storage/gallery.c:213 ../src/imageio/storage/latex.c:145 +#: ../src/imageio/storage/latex.c:199 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1673 ../src/libs/styles.c:391 #: ../src/lua/preferences.c:668 msgid "select directory" msgstr "Выбор каталога" -#: ../build/bin/preferences_gen.h:5529 +#: ../build/bin/preferences_gen.h:5926 msgid "" "this folder (and sub-folders) contains LUT files used by LUT 3D module. " "(need a restart)." msgstr "Каталог для файлов 3D таблиц поиска цветов (требуется перезапуск)" -#: ../build/bin/preferences_gen.h:5551 +#: ../build/bin/preferences_gen.h:5947 msgid "auto-apply pixel workflow defaults" msgstr "Набор модулей по умолчанию" -#: ../build/bin/preferences_gen.h:5599 +#: ../build/bin/preferences_gen.h:5961 msgid "" "scene-referred workflow is based on linear modules and will auto-apply " "filmic or sigmoid, color calibration and exposure,\n" @@ -1407,11 +1500,11 @@ "предполагает использование модуля «Базовая кривая», работающего\n" "в пространстве Lab (требуется перезапуск)." -#: ../build/bin/preferences_gen.h:5621 +#: ../build/bin/preferences_gen.h:5982 msgid "auto-apply per camera basecurve presets" msgstr "Индивидуальная базовая кривая" -#: ../build/bin/preferences_gen.h:5635 +#: ../build/bin/preferences_gen.h:5995 msgid "" "use the per-camera basecurve by default instead of the generic manufacturer " "one if there is one available (needs a restart).\n" @@ -1425,21 +1518,21 @@ "Данная опция применяется, когда когда набор модулей по умолчанию выставлен\n" "в значение «Базовая кривая»." -#: ../build/bin/preferences_gen.h:5657 +#: ../build/bin/preferences_gen.h:6016 msgid "detect monochrome previews" msgstr "Определять ч/б снимки по Exif" -#: ../build/bin/preferences_gen.h:5671 +#: ../build/bin/preferences_gen.h:6029 msgid "" "many monochrome images can be identified via EXIF and preview data. beware: " "this slows down imports and reading of EXIF data" msgstr "Определять ч/б снимки по Exif и миниатюрам. Может замедлить импорт." -#: ../build/bin/preferences_gen.h:5693 +#: ../build/bin/preferences_gen.h:6050 msgid "show warning messages" msgstr "Показывать предупреждения" -#: ../build/bin/preferences_gen.h:5707 +#: ../build/bin/preferences_gen.h:6063 msgid "" "display messages in modules to warn beginner users when non-standard and " "possibly harmful settings are used in the pipeline.\n" @@ -1449,15 +1542,15 @@ "Показывать предупреждения об использовании потенциально опасных параметров в " "настройках модулей" -#: ../build/bin/preferences_gen.h:5717 -msgid "CPU / GPU / memory" -msgstr "ЦПУ / Видеокарта / Память" +#: ../build/bin/preferences_gen.h:6072 +msgid "CPU / memory" +msgstr "ЦПУ / Память" -#: ../build/bin/preferences_gen.h:5737 +#: ../build/bin/preferences_gen.h:6091 msgid "darktable resources" msgstr "Настройки darktable" -#: ../build/bin/preferences_gen.h:5786 +#: ../build/bin/preferences_gen.h:6106 #, no-c-format msgid "" "defines how much darktable may take from your system resources:\n" @@ -1488,11 +1581,11 @@ "работе системы. Используйте с осторожностью. Не рекомендуем использовать " "этот режим постоянно!" -#: ../build/bin/preferences_gen.h:5808 +#: ../build/bin/preferences_gen.h:6127 msgid "prefer performance over quality" msgstr "Приоритет производительности над качеством" -#: ../build/bin/preferences_gen.h:5822 +#: ../build/bin/preferences_gen.h:6140 msgid "" "if switched on, thumbnails and previews are rendered at lower quality but 4 " "times faster" @@ -1500,56 +1593,15 @@ "Приоритет производительности над качеством при работе с миниатюрами и " "предпросмотром" -#: ../build/bin/preferences_gen.h:5844 -msgid "enable disk backend for thumbnail cache" -msgstr "Кэшировать миниатюры" - -#: ../build/bin/preferences_gen.h:5858 -msgid "" -"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want. light table " -"performance will be increased greatly when browsing a lot.\n" -"to generate all thumbnails of your entire collection offline, run 'darktable-" -"generate-cache'." -msgstr "" -"Кэшировать сгенерированные миниатюры на диск (.cache/darktable/).\n" -"Для хранения миниатюр может потребоваться значительный объём дисковой памяти " -"(несколько гигабайт на коллекцию 20 тыс. снимков) и они автоматически не " -"удаляются.\n" -"Их можно очистить вручную, это может положительно сказаться на " -"производительности режима обзора. Чтобы сгенерировать новые миниатюры для " -"всей коллекции используйте утилиту командной строки «darktable-generate-" -"cache»." - -#: ../build/bin/preferences_gen.h:5880 -msgid "enable disk backend for full preview cache" -msgstr "Кэшировать полноразмерные изображения" +#: ../build/bin/preferences_gen.h:6149 +msgid "OpenCL" +msgstr "OpenCL" -#: ../build/bin/preferences_gen.h:5894 -msgid "" -"if enabled, write full preview to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want.\n" -"light table performance will be increased greatly when zooming image in full " -"preview mode." -msgstr "" -"Кэшировать полноразмерные изображения на диск (.cache/darktable/)..\n" -"Для хранения миниатюр может потребоваться значительный объём дисковой памяти " -"(несколько гигабайт на коллекцию 20 тыс. снимков) и они автоматически не " -"удаляются..\n" -"Их можно очистить вручную,.\n" -"это может положительно сказаться на производительности режима обзора." - -#: ../build/bin/preferences_gen.h:5916 +#: ../build/bin/preferences_gen.h:6168 msgid "activate OpenCL support" msgstr "Поддержка OpenCL" -#: ../build/bin/preferences_gen.h:5930 +#: ../build/bin/preferences_gen.h:6181 msgid "" "if found, use OpenCL runtime on your system to speed up processing.\n" "can be switched on and off at any time." @@ -1558,23 +1610,32 @@ "будет использовано аппаратное ускорение..\n" "Эту функцию можно включать и отключать в любой момент." -#: ../build/bin/preferences_gen.h:5931 ../build/bin/preferences_gen.h:6002 -#: ../build/bin/preferences_gen.h:6078 ../build/bin/preferences_gen.h:7397 +#: ../build/bin/preferences_gen.h:6185 ../build/bin/preferences_gen.h:6230 +#: ../build/bin/preferences_gen.h:6274 ../build/bin/preferences_gen.h:6325 +#: ../build/bin/preferences_gen.h:6369 ../build/bin/preferences_gen.h:6413 +#: ../build/bin/preferences_gen.h:6457 ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6545 ../build/bin/preferences_gen.h:7700 msgid "not available" msgstr "Не поддерживается" -#: ../build/bin/preferences_gen.h:5934 ../build/bin/preferences_gen.h:5938 -#: ../build/bin/preferences_gen.h:6005 ../build/bin/preferences_gen.h:6009 -#: ../build/bin/preferences_gen.h:6081 ../build/bin/preferences_gen.h:6085 -#: ../build/bin/preferences_gen.h:7400 ../build/bin/preferences_gen.h:7404 +#: ../build/bin/preferences_gen.h:6187 ../build/bin/preferences_gen.h:6188 +#: ../build/bin/preferences_gen.h:6232 ../build/bin/preferences_gen.h:6233 +#: ../build/bin/preferences_gen.h:6276 ../build/bin/preferences_gen.h:6277 +#: ../build/bin/preferences_gen.h:6327 ../build/bin/preferences_gen.h:6328 +#: ../build/bin/preferences_gen.h:6371 ../build/bin/preferences_gen.h:6372 +#: ../build/bin/preferences_gen.h:6415 ../build/bin/preferences_gen.h:6416 +#: ../build/bin/preferences_gen.h:6459 ../build/bin/preferences_gen.h:6460 +#: ../build/bin/preferences_gen.h:6503 ../build/bin/preferences_gen.h:6504 +#: ../build/bin/preferences_gen.h:6547 ../build/bin/preferences_gen.h:6548 +#: ../build/bin/preferences_gen.h:7702 ../build/bin/preferences_gen.h:7703 msgid "not available on this system" msgstr "Не поддерживается в данной системе" -#: ../build/bin/preferences_gen.h:5958 +#: ../build/bin/preferences_gen.h:6212 msgid "OpenCL scheduling profile" msgstr "Планировщик OpenCL" -#: ../build/bin/preferences_gen.h:6001 +#: ../build/bin/preferences_gen.h:6226 msgid "" "defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled " "systems:\n" @@ -1590,54 +1651,127 @@ "Несколько GPU — обработкой каждой задачи занимается выделенный GPU..\n" "Очень быстрый GPU — обе задачи выполняются на одном GPU параллельно." -#: ../build/bin/preferences_gen.h:6029 -msgid "tune OpenCL performance" -msgstr "Настройка производительности OpenCL" +#: ../build/bin/preferences_gen.h:6257 +msgid "use all device memory" +msgstr "Использовать всю память устройства" + +#: ../build/bin/preferences_gen.h:6270 +msgid "" +"if enabled darktable will use all device memory except a safety margin " +"(headroom, default is 600MB)" +msgstr "" +"Если включено, darktable будет использовать всю память устройства, за " +"исключением резервной (резерв по умолчанию равен 600 мб.)." + +#: ../build/bin/preferences_gen.h:6289 +msgid "OpenCL drivers" +msgstr "Драйверы OpenCL" + +#: ../build/bin/preferences_gen.h:6308 +msgid "Intel GPU" +msgstr "Intel GPU" + +#: ../build/bin/preferences_gen.h:6321 +msgid "Intel(R) OpenCL Graphics for all supported platforms (vendor provided)" +msgstr "" +"Intel(R) OpenCL Graphics для всех поддерживаемых платформ (предоставляется " +"вендором)" + +#: ../build/bin/preferences_gen.h:6352 +msgid "Nvidia CUDA" +msgstr "Nvidia CUDA" + +#: ../build/bin/preferences_gen.h:6365 +msgid "Nvidia CUDA based OpenCL (vendor provided)" +msgstr "OpenCL на базе Nvidia CUDA (предоставляется вендором)" + +#: ../build/bin/preferences_gen.h:6396 +msgid "AMD ROCm" +msgstr "AMD ROCm" + +#: ../build/bin/preferences_gen.h:6409 +msgid "AMD Accelerated Parallel Processing (vendor provided)" +msgstr "Ускоренная параллельная обработка AMD (предоставляется вендором)" + +#: ../build/bin/preferences_gen.h:6440 +msgid "RustiCL" +msgstr "RustiCL" + +#: ../build/bin/preferences_gen.h:6453 +msgid "" +"RustiCL Mesa OpenCL, still unstable. if you want to use this, you should " +"disable the vendor driver" +msgstr "" +"RustiCL Mesa OpenCL, пока работает нестабильно. если хотите использовать, " +"нужно отключить драйвер вендора" + +#: ../build/bin/preferences_gen.h:6484 +msgid "Apple" +msgstr "Apple" + +#: ../build/bin/preferences_gen.h:6497 +msgid "Apple OpenCL (vendor provided)" +msgstr "Apple OpenCL (предоставляется вендором)" -#: ../build/bin/preferences_gen.h:6077 +#: ../build/bin/preferences_gen.h:6528 +msgid "Microsoft OpenCLOn12" +msgstr "Microsoft OpenCLOn12" + +#: ../build/bin/preferences_gen.h:6541 +msgid "" +"Microsoft OpenCLOn12, only use this if the vendor provided driver does not " +"work or there is none provided." +msgstr "" +"Microsoft OpenCLOn12, используйте только в том случае, если предоставленный " +"поставщиком драйвер не работает или отсутствует." + +#: ../build/bin/preferences_gen.h:6572 +msgid "other platforms" +msgstr "Другие платформы" + +#: ../build/bin/preferences_gen.h:6585 msgid "" -"allows runtime tuning of OpenCL devices:\n" -" - 'memory size': uses a fixed headroom (400MB as default),\n" -" - 'memory transfer': tries a faster memory access mode (pinned memory) used " -"for tiling." -msgstr "" -"Позволяет настраивать устройства OpenCL во время работы:.\n" -"- объем памяти использует фиксированный объем оперативной памяти (400 мб по " -"умолчанию);\n" -"- перенос данных подбирает более быстрый режим доступа к памяти, " -"используемый для сегментирования." +"if set, all unspecified platforms are accepted. only do this if no vendor " +"driver is available" +msgstr "" +"Если установлено, принимаются все неуказанные платформы. Используйте только " +"в том случае, если драйвер вендора недоступен" -#: ../build/bin/preferences_gen.h:6143 +#: ../build/bin/preferences_gen.h:6617 +msgid "security" +msgstr "Подтверждения" + +#: ../build/bin/preferences_gen.h:6638 msgid "ask before removing images from the library" msgstr "Подтверждать удаление из коллекции" -#: ../build/bin/preferences_gen.h:6157 +#: ../build/bin/preferences_gen.h:6651 msgid "always ask the user before removing image information from the library" msgstr "" "Всегда запрашивать подтверждение на удаление информации о изображении из " "коллекции" -#: ../build/bin/preferences_gen.h:6179 +#: ../build/bin/preferences_gen.h:6672 msgid "ask before deleting images from disk" msgstr "Запрашивать подтверждение на удаление файлов с диска" -#: ../build/bin/preferences_gen.h:6193 +#: ../build/bin/preferences_gen.h:6685 msgid "always ask the user before any image file is deleted" msgstr "Всегда запрашивать подтверждение на удаление файлов с диска" -#: ../build/bin/preferences_gen.h:6215 +#: ../build/bin/preferences_gen.h:6706 msgid "ask before discarding history stack" msgstr "Подтверждать удаление истории изменений" -#: ../build/bin/preferences_gen.h:6229 +#: ../build/bin/preferences_gen.h:6719 msgid "always ask the user before history stack is discarded on any image" msgstr "Всегда запрашивать подтверждение на удаление истории изменений" -#: ../build/bin/preferences_gen.h:6251 +#: ../build/bin/preferences_gen.h:6740 msgid "try to use trash when deleting images" msgstr "Перемещать файлы в корзину" -#: ../build/bin/preferences_gen.h:6265 +#: ../build/bin/preferences_gen.h:6753 msgid "" "send files to trash instead of permanently deleting files on system that " "supports it" @@ -1645,28 +1779,28 @@ "Перемещать файлы в корзину вместо удаления с диска (работает не во всех " "системах)" -#: ../build/bin/preferences_gen.h:6287 +#: ../build/bin/preferences_gen.h:6774 msgid "ask before moving images from film roll folder" msgstr "Подтверждать перемещение снимков" -#: ../build/bin/preferences_gen.h:6301 +#: ../build/bin/preferences_gen.h:6787 msgid "always ask the user before any image file is moved." msgstr "Всегда запрашивать подтверждение на перемещение снимков из каталога" -#: ../build/bin/preferences_gen.h:6323 +#: ../build/bin/preferences_gen.h:6808 msgid "ask before copying images to new film roll folder" msgstr "Подтверждать копирование снимков" -#: ../build/bin/preferences_gen.h:6337 +#: ../build/bin/preferences_gen.h:6821 msgid "always ask the user before any image file is copied." msgstr "" "Всегда запрашивать подтверждение на копирование снимков в новый каталог" -#: ../build/bin/preferences_gen.h:6359 +#: ../build/bin/preferences_gen.h:6842 msgid "ask before removing empty folders" msgstr "Подтверждение удаления пустых каталогов" -#: ../build/bin/preferences_gen.h:6373 +#: ../build/bin/preferences_gen.h:6855 msgid "" "always ask the user before removing any empty folder. this can happen after " "moving or deleting images." @@ -1674,49 +1808,49 @@ "Всегда запрашивать подтверждение на удаление пустых каталогов. Может " "произойти после перемещения или удаления последнего снимка из каталога." -#: ../build/bin/preferences_gen.h:6395 +#: ../build/bin/preferences_gen.h:6876 msgid "ask before deleting a tag" msgstr "Подтверждать удаление меток" -#: ../build/bin/preferences_gen.h:6430 +#: ../build/bin/preferences_gen.h:6909 msgid "ask before deleting a style" msgstr "Подтверждать удаление стилей" -#: ../build/bin/preferences_gen.h:6465 +#: ../build/bin/preferences_gen.h:6942 msgid "ask before deleting a preset" msgstr "Подтверждать удаление профилей" -#: ../build/bin/preferences_gen.h:6479 +#: ../build/bin/preferences_gen.h:6955 msgid "will ask for confirmation before deleting or overwriting a preset" msgstr "Всегда запрашивать подтверждение на удаление профилей" -#: ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6976 msgid "ask before exporting in overwrite mode" msgstr "Подтверждать перезапись при экспорте" -#: ../build/bin/preferences_gen.h:6515 +#: ../build/bin/preferences_gen.h:6989 msgid "will ask for confirmation before exporting files in overwrite mode" msgstr "Всегда запрашивать подтверждение о перезаписи файлов при экспорте" #. italic -#: ../build/bin/preferences_gen.h:6525 ../src/libs/tools/viewswitcher.c:148 +#: ../build/bin/preferences_gen.h:6998 ../src/libs/tools/viewswitcher.c:148 msgid "other" msgstr "Прочее" -#: ../build/bin/preferences_gen.h:6545 +#: ../build/bin/preferences_gen.h:7017 msgid "password storage backend to use" msgstr "Хранилище паролей" -#: ../build/bin/preferences_gen.h:6595 +#: ../build/bin/preferences_gen.h:7035 msgid "" "the storage backend for password storage: auto, none, libsecret, kwallet" msgstr "Тип хранилища паролей: Авто, libsecret, KWallet или никакого" -#: ../build/bin/preferences_gen.h:6617 +#: ../build/bin/preferences_gen.h:7056 msgid "executable for playing audio files" msgstr "Приложение для воспроизведения звука" -#: ../build/bin/preferences_gen.h:6635 +#: ../build/bin/preferences_gen.h:7074 msgid "" "this external program is used to play audio files some cameras record to " "keep notes for images" @@ -1724,15 +1858,19 @@ "Внешнее приложение для воспроизведения звуковых записей, используемых " "некоторыми камерами для сохранения заметок о снимках" -#: ../build/bin/preferences_gen.h:6675 ../src/control/crawler.c:724 +#: ../build/bin/preferences_gen.h:7106 +msgid "storage" +msgstr "Хранилище" + +#: ../build/bin/preferences_gen.h:7108 ../src/control/crawler.c:717 msgid "database" msgstr "База данных" -#: ../build/bin/preferences_gen.h:6695 +#: ../build/bin/preferences_gen.h:7127 msgid "create database snapshot" msgstr "Резервирование базы данных" -#: ../build/bin/preferences_gen.h:6748 +#: ../build/bin/preferences_gen.h:7141 msgid "" "database snapshots are created right before closing darktable. options allow " "you to choose how often to make snapshots:\n" @@ -1747,11 +1885,11 @@ "Резервирование базы данных осуществляется перед закрытием darktable в " "соответствии с указанной частотой" -#: ../build/bin/preferences_gen.h:6770 +#: ../build/bin/preferences_gen.h:7162 msgid "how many snapshots to keep" msgstr "Макс. количество резервных копий" -#: ../build/bin/preferences_gen.h:6793 +#: ../build/bin/preferences_gen.h:7185 msgid "" "after successfully creating snapshot, how many older snapshots to keep " "(excluding mandatory version update ones). enter -1 to keep all snapshots\n" @@ -1762,23 +1900,23 @@ "настроек darktable.\n" "Установите -1.0 для отключения удаления резервных копий." -#: ../build/bin/preferences_gen.h:6803 ../src/control/crawler.c:723 -msgid "XMP" -msgstr "XMP" +#: ../build/bin/preferences_gen.h:7194 ../src/libs/copy_history.c:149 +msgid "XMP sidecar files" +msgstr "Файлы XMP" -#: ../build/bin/preferences_gen.h:6823 -msgid "write sidecar file for each image" -msgstr "Сохранять историю в файл XMP" +#: ../build/bin/preferences_gen.h:7213 +msgid "create XMP files" +msgstr "Создать файлы XMP" -#: ../build/bin/preferences_gen.h:6866 +#: ../build/bin/preferences_gen.h:7227 msgid "" -"the sidecar files hold information about all your development steps to allow " +"XMP sidecar files hold information about all your development steps to allow " "flawless re-importing of image files.\n" "\n" -"depending on the selected mode sidecar files will be written:\n" +"depending on the selected mode sidecar files will be created:\n" " - 'never'\n" " - 'on import': immediately after importing the image\n" -" - 'after edit': after any user change on the image." +" - 'after edit': after any user change on the image or adding tags." msgstr "" "Файлы sidecar содержат информацию обо всех ваших этапах разработки, чтобы " "обеспечить безупречный повторный импорт файлов изображений.\n" @@ -1786,13 +1924,14 @@ "В зависимости от выбранного режима будут записаны файлы sidecar:\n" " - никогда;\n" " - при импорте: сразу после импорта изображения;\n" -" - после редактирования: после любого изменения изображения пользователем." +" - после редактирования: после любого изменения изображения пользователем " +"или добавления меток." -#: ../build/bin/preferences_gen.h:6888 +#: ../build/bin/preferences_gen.h:7248 msgid "store XMP tags in compressed format" msgstr "Сжатие файлов XMP" -#: ../build/bin/preferences_gen.h:6931 +#: ../build/bin/preferences_gen.h:7262 msgid "" "entries in XMP tags can get rather large and may exceed the available space " "to store the history stack in output files.\n" @@ -1801,11 +1940,25 @@ "Записи в файлах XMP могут достигать довольно значительных размеров..\n" "Эта опция позволяет сжимать теги XMP и экономить место на диске." -#: ../build/bin/preferences_gen.h:6953 +#: ../build/bin/preferences_gen.h:7283 +msgid "auto-save interval" +msgstr "Интервал автосохранения" + +#: ../build/bin/preferences_gen.h:7306 +msgid "" +"automatically save history while developing using the given interval (in " +"seconds); set to zero to disable auto-saving. auto-saving might be disabled " +"on slow drives." +msgstr "" +"Автосохранение истории во время работы с использованием заданного интервала " +"(в секундах); установите значение ноль, чтобы отключить автосохранение. " +"автосохранение может быть отключено, чтобы ускорить работу компьютера." + +#: ../build/bin/preferences_gen.h:7327 msgid "look for updated XMP files on startup" msgstr "Проверять изменения файлов XMP" -#: ../build/bin/preferences_gen.h:6967 +#: ../build/bin/preferences_gen.h:7340 msgid "" "check file modification times of all XMP files on startup to check if any " "got updated in the meantime" @@ -1813,15 +1966,19 @@ "Проверять дату модификации файлов XMP при запуске для отображения изменений, " "внесённых другими приложениями" -#: ../build/bin/preferences_gen.h:7007 +#: ../build/bin/preferences_gen.h:7372 +msgid "miscellaneous" +msgstr "Прочее" + +#: ../build/bin/preferences_gen.h:7374 msgid "interface" msgstr "Интерфейc" -#: ../build/bin/preferences_gen.h:7027 +#: ../build/bin/preferences_gen.h:7393 msgid "load default shortcuts at startup" msgstr "Загрузить ярлыки по умолчанию или предыдущее состояние" -#: ../build/bin/preferences_gen.h:7041 +#: ../build/bin/preferences_gen.h:7406 msgid "" "load default shortcuts before user settings. switch off to prevent deleted " "defaults returning" @@ -1829,28 +1986,28 @@ "Загрузите ярлыки по умолчанию до пользовательских настроек. Отключите, чтобы " "предотвратить возврат удаленных значений по умолчанию." -#: ../build/bin/preferences_gen.h:7063 +#: ../build/bin/preferences_gen.h:7427 msgid "scale slider step with min/max" msgstr "Шаг ползунка в диапазоне min/max" -#: ../build/bin/preferences_gen.h:7077 +#: ../build/bin/preferences_gen.h:7440 msgid "vary slider step size with min/max range" msgstr "Варьировать шаг ползунка в диапазоне min/max" -#: ../build/bin/preferences_gen.h:7099 +#: ../build/bin/preferences_gen.h:7461 msgid "sort built-in presets first" msgstr "Сортировать встроенные профили первыми" -#: ../build/bin/preferences_gen.h:7113 +#: ../build/bin/preferences_gen.h:7474 msgid "" "whether to show built-in presets first before user's presets in presets menu." msgstr "Сортировать встроенные профили в меню первыми" -#: ../build/bin/preferences_gen.h:7135 +#: ../build/bin/preferences_gen.h:7495 msgid "mouse wheel scrolls modules side panel by default" msgstr "Отключить ввод данных при помощи колеса мыши" -#: ../build/bin/preferences_gen.h:7149 +#: ../build/bin/preferences_gen.h:7508 msgid "" "when enabled, use mouse wheel to scroll modules side panel. use ctrl+alt to " "use mouse wheel for data entry. when disabled, this behavior is reversed" @@ -1859,22 +2016,22 @@ "Колесо мыши используется для прокрутки, а ввод данных осуществляется после " "нажатия Ctrl+Alt." -#: ../build/bin/preferences_gen.h:7171 +#: ../build/bin/preferences_gen.h:7529 msgid "always show panels' scrollbars" msgstr "Всегда показывать полосы прокрутки панелей" -#: ../build/bin/preferences_gen.h:7185 +#: ../build/bin/preferences_gen.h:7542 msgid "" "defines whether the panel scrollbars should be always visible or activated " "only depending on the content. (need a restart)" msgstr "" "Показывать полосы прокрутки панелей всегда или только при необходимости" -#: ../build/bin/preferences_gen.h:7207 +#: ../build/bin/preferences_gen.h:7563 msgid "duration of the UI transitions in ms" msgstr "Сворачивание и разворачивание модулей в миллисекундах (мс.)" -#: ../build/bin/preferences_gen.h:7231 +#: ../build/bin/preferences_gen.h:7587 msgid "" "how long the transitions take (in ms) for expanding or collapsing modules " "and other UI elements" @@ -1882,19 +2039,19 @@ "Сколько времени занимают переходы (в мс.) для разворачивания или " "сворачивания модулей и других элементов пользовательского интерфейса." -#: ../build/bin/preferences_gen.h:7253 +#: ../build/bin/preferences_gen.h:7608 msgid "position of the scopes module" msgstr "Положение модуля масштабов" -#: ../build/bin/preferences_gen.h:7291 +#: ../build/bin/preferences_gen.h:7622 msgid "position the scopes at the top-left or top-right of the screen" msgstr "Расположите возможности в левом верхнем или правом верхнем углу экрана" -#: ../build/bin/preferences_gen.h:7313 +#: ../build/bin/preferences_gen.h:7643 msgid "method to use for getting the display profile" msgstr "Способ поиска цветового профиля монитора" -#: ../build/bin/preferences_gen.h:7356 +#: ../build/bin/preferences_gen.h:7657 msgid "" "this option allows to force a specific means of getting the current display " "profile.\n" @@ -1903,11 +2060,11 @@ "Способ поиска цветового профиля монитора..\n" "Измените, если текущий способ даёт некорректный результат." -#: ../build/bin/preferences_gen.h:7378 +#: ../build/bin/preferences_gen.h:7678 msgid "order or exclude MIDI devices" msgstr "Упорядочить или исключить MIDI-устройства" -#: ../build/bin/preferences_gen.h:7396 +#: ../build/bin/preferences_gen.h:7696 msgid "" "comma-separated list of device name fragments that if matched load MIDI " "device at id given by location in list\n" @@ -1920,20 +2077,20 @@ "регуляторов, таких как 'BeatStep:63:16'" #. tags -#: ../build/bin/preferences_gen.h:7412 ../src/develop/lightroom.c:1516 -#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:333 -#: ../src/libs/image.c:558 ../src/libs/metadata_view.c:162 +#: ../build/bin/preferences_gen.h:7715 ../src/develop/lightroom.c:1573 +#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:322 +#: ../src/libs/image.c:614 ../src/libs/metadata_view.c:166 msgid "tags" msgstr "Метки" -#: ../build/bin/preferences_gen.h:7432 +#: ../build/bin/preferences_gen.h:7734 msgid "omit hierarchy in simple tag lists" msgstr "Отключить иерархию в метках" -#: ../build/bin/preferences_gen.h:7446 +#: ../build/bin/preferences_gen.h:7747 msgid "" -"when creating XMP file the hierarchical tags are also added as a simple " -"list\n" +"when creating an XMP sidecar file the hierarchical tags are also added as a " +"simple list\n" "of non-hierarchical ones to make them visible to some other programs.\n" "when this option is checked darktable will only include their last part\n" "and ignore the rest. so 'foo|bar|baz' will only add 'baz'." @@ -1944,47 +2101,44 @@ "Если опция включена, то иерархические метки вроде «foo|bar|baz».\n" "будут сокращены до «baz»." -#: ../build/bin/preferences_gen.h:7456 +#: ../build/bin/preferences_gen.h:7756 msgid "shortcuts with multiple instances" -msgstr "Ярлыки с несколькими экземплярами" +msgstr "Ярлыки с несколькими копиями" -#: ../build/bin/preferences_gen.h:7461 -msgid "" -"where multiple module instances are present, these preferences control rules " -"that are applied (in order) to decide which module instance shortcuts will " -"be applied to" -msgstr "" -"Там, где присутствует несколько экземпляров модуля, эти настройки управляют " -"правилами, которые применяются (по порядку), чтобы решить, какие ярлыки " -"экземпляра модуля будут применяться к" - -#: ../build/bin/preferences_gen.h:7477 +#: ../build/bin/preferences_gen.h:7775 msgid "prefer focused instance" msgstr "Приоритет копий в фокусе" -#: ../build/bin/preferences_gen.h:7491 +#: ../build/bin/preferences_gen.h:7788 msgid "" -"if an instance of the module has focus, apply shortcut to that instance\n" +"where multiple instances of a module are present, apply shortcuts to the " +"instance that has focus\n" +"if none are focused, the preferences below control rules that are followed " +"(in order) to decide which module instance shortcuts will be applied to.\n" "note: blending shortcuts always apply to the focused instance" msgstr "" -"Если одна из копий модуля в фокусе, примените ярлык к этому экземпляру\n" -"Примечание: ярлыки всегда применяются к экземпляру в фокусе." +"Если присутствует несколько копий модуля, примените сочетания клавиш к копии " +"в фокусе\n" +"Если ни одна из них не в фокусе, приведенные ниже настройки управляют " +"правилами, которым следует следовать (по порядку), чтобы решить, к какой " +"копии модуля будут применены сочетания клавиш.\n" +"Примечание: смешивание сочетаний клавиш всегда применяется к копии в фокусе" -#: ../build/bin/preferences_gen.h:7513 +#: ../build/bin/preferences_gen.h:7809 msgid "prefer expanded instances" msgstr "Приоритет раскрытых копий" -#: ../build/bin/preferences_gen.h:7527 +#: ../build/bin/preferences_gen.h:7822 msgid "if instances of the module are expanded, ignore collapsed instances" msgstr "" "Если одна из копий модуля раскрыта, то остальные копии игнорируют комбинации " "клавиш" -#: ../build/bin/preferences_gen.h:7549 +#: ../build/bin/preferences_gen.h:7843 msgid "prefer enabled instances" msgstr "Приоритет активных копий" -#: ../build/bin/preferences_gen.h:7563 +#: ../build/bin/preferences_gen.h:7856 msgid "" "after applying the above rule, if instances of the module are active, ignore " "inactive instances" @@ -1992,11 +2146,11 @@ "Следующее правило после обработки предыдущего. Если одна из копий модуля " "активна, то остальные копии игнорируют комбинации клавиш." -#: ../build/bin/preferences_gen.h:7585 +#: ../build/bin/preferences_gen.h:7877 msgid "prefer unmasked instances" msgstr "Приоритет незамаскированных копий" -#: ../build/bin/preferences_gen.h:7599 +#: ../build/bin/preferences_gen.h:7890 msgid "" "after applying the above rules, if instances of the module are unmasked, " "ignore masked instances" @@ -2004,11 +2158,11 @@ "Следующее правило после обработки предыдущих. Если какие-то копии модуля " "незамаскированы, то замаскированные копии игнорируют комбинации клавиш." -#: ../build/bin/preferences_gen.h:7621 +#: ../build/bin/preferences_gen.h:7911 msgid "selection order" msgstr "Порядок применения" -#: ../build/bin/preferences_gen.h:7659 +#: ../build/bin/preferences_gen.h:7925 msgid "" "after applying the above rules, apply the shortcut based on its position in " "the pixelpipe" @@ -2016,11 +2170,11 @@ "Следующее правило после обработки предыдущих. Применить комбинацию клавиш с " "учётом порядка модулей." -#: ../build/bin/preferences_gen.h:7681 +#: ../build/bin/preferences_gen.h:7946 msgid "allow visual assignment to specific instances" msgstr "Разрешить визуальное присвоение конкретным экземплярам" -#: ../build/bin/preferences_gen.h:7695 +#: ../build/bin/preferences_gen.h:7959 msgid "" "when multiple instances are present on an image this allows shortcuts to be " "visually assigned to those specific instances\n" @@ -2031,78 +2185,44 @@ "в противном случае ярлыки всегда будут назначаться предпочтительному " "экземпляру" -#: ../build/bin/preferences_gen.h:7705 +#: ../build/bin/preferences_gen.h:7968 msgid "map / geolocalization view" msgstr "Карта / вид геолокации" -#: ../build/bin/preferences_gen.h:7725 +#: ../build/bin/preferences_gen.h:7987 msgid "pretty print the image location" msgstr "Местоположение в формате градусы° минуты'" -#: ../build/bin/preferences_gen.h:7739 +#: ../build/bin/preferences_gen.h:8000 msgid "" "show a more readable representation of the location in the image information " "module" msgstr "" "Показывать местоположение в формате градусы° минуты' или в десятичном виде" -#: ../build/bin/preferences_gen.h:7749 +#: ../build/bin/preferences_gen.h:8009 msgid "slideshow view" msgstr "Просмотр слайд-шоу" -#: ../build/bin/preferences_gen.h:7769 +#: ../build/bin/preferences_gen.h:8028 msgid "waiting time between each picture in slideshow" msgstr "Время показа в режиме слайдшоу (в секундах)" -#: ../build/bin/preferences_gen.h:7831 -msgid "session options" -msgstr "Каталоги и файлы" - -#: ../build/bin/preferences_gen.h:7851 -msgid "base directory naming pattern" -msgstr "Шаблон имени основного каталога" - -#: ../build/bin/preferences_gen.h:7869 ../build/bin/preferences_gen.h:7909 -msgid "part of full import path for an import session" -msgstr "Шаблон именования каталога, применяемый при импорте" - -#: ../build/bin/preferences_gen.h:7891 -msgid "sub directory naming pattern" -msgstr "Шаблон имени подкаталогов" - -#: ../build/bin/preferences_gen.h:7931 -msgid "keep original filename" -msgstr "Сохранять исходное имя файлов" - -#: ../build/bin/preferences_gen.h:7945 -msgid "" -"keep original filename instead of a pattern while importing from camera or " -"card" -msgstr "Сохранять исходное имя файлов при импорте" - -#: ../build/bin/preferences_gen.h:7967 -msgid "file naming pattern" -msgstr "Шаблон имени файлов" - -#: ../build/bin/preferences_gen.h:7985 -msgid "file naming pattern used for a import session" -msgstr "Шаблон именования файлов, применяемый при импорте" - -#: ../build/bin/preferences_gen.h:8022 +#: ../build/bin/preferences_gen.h:8088 msgid "do not set the 'uncategorized' entry for tags" msgstr "Не использовать группу «Без категории»" -#: ../build/bin/preferences_gen.h:8036 +#: ../build/bin/preferences_gen.h:8101 msgid "" "do not set the 'uncategorized' entry for tags which do not have children" msgstr "" "Не использовать группу «Без категории» при работе с метками без подкатегорий" -#: ../build/bin/preferences_gen.h:8058 +#: ../build/bin/preferences_gen.h:8122 msgid "tags case sensitivity" msgstr "Учитывать регистр при работе с метками" -#: ../build/bin/preferences_gen.h:8096 +#: ../build/bin/preferences_gen.h:8136 msgid "" "tags case sensitivity. without the Sqlite ICU extension, insensitivity works " "only for the 26 latin letters" @@ -2110,46 +2230,51 @@ "Чувствительность к регистру при работе с метками. На данный момент " "поддерживается работа только с языками на основе латинского алфавита." -#: ../build/bin/preferences_gen.h:8118 ../build/bin/preferences_gen.h:8358 +#: ../build/bin/preferences_gen.h:8157 ../build/bin/preferences_gen.h:8368 msgid "number of collections to be stored" msgstr "Количество коллекций для хранения" -#: ../build/bin/preferences_gen.h:8142 ../build/bin/preferences_gen.h:8382 +#: ../build/bin/preferences_gen.h:8181 ../build/bin/preferences_gen.h:8392 msgid "the number of recent collections to store and show in this list" msgstr "" "Количество последних коллекций для хранения и отображения в этом списке" -#: ../build/bin/preferences_gen.h:8164 +#: ../build/bin/preferences_gen.h:8202 msgid "hide the history button and show a specific module instead" msgstr "Скрыть кнопку «История» и отобразить вместо нее определенный модуль" -#: ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8215 msgid "hide the history button and show the recent collections module instead" msgstr "Скрыть кнопку «История» и отобразить модуль «Последние коллекции»" -#: ../build/bin/preferences_gen.h:8200 +#: ../build/bin/preferences_gen.h:8236 msgid "number of folder levels to show in lists" msgstr "Количество уровней в списках съёмок" -#: ../build/bin/preferences_gen.h:8224 +#: ../build/bin/preferences_gen.h:8260 msgid "" "the number of folder levels to show in film roll names, starting from the " "right" msgstr "Количество уровней в списках съёмок, начиная справа" -#: ../build/bin/preferences_gen.h:8246 +#: ../build/bin/preferences_gen.h:8281 msgid "sort film rolls by" msgstr "Сортировка в режиме съёмка" -#: ../build/bin/preferences_gen.h:8284 +#: ../build/bin/preferences_gen.h:8292 +msgctxt "preferences" +msgid "chronological" +msgstr "По хронологии" + +#: ../build/bin/preferences_gen.h:8295 msgid "sets the collections-list order for film rolls" msgstr "Порядок сортировки в режиме «Съёмка»" -#: ../build/bin/preferences_gen.h:8306 +#: ../build/bin/preferences_gen.h:8316 msgid "sort collection descending" msgstr "Сортировка по убыванию" -#: ../build/bin/preferences_gen.h:8320 +#: ../build/bin/preferences_gen.h:8329 msgid "" "sort the following collections in descending order: 'film roll' by folder, " "'folder', 'times' (e.g. 'capture date')" @@ -2157,11 +2282,11 @@ "Порядок сортировки по убыванию в режиме «Съёмка», «Каталог» и при обработке " "времени" -#: ../build/bin/preferences_gen.h:8404 +#: ../build/bin/preferences_gen.h:8413 msgid "prefer a history button in the collections module" msgstr "Выбрать кнопку \"История\" в модуле коллекции" -#: ../build/bin/preferences_gen.h:8418 +#: ../build/bin/preferences_gen.h:8426 msgid "" "hide this module and instead access collections history with a button in the " "collections module" @@ -2169,11 +2294,11 @@ "Скрывать этот модуль и получать доступ к истории с помощью кнопки в модуле " "коллекции" -#: ../build/bin/preferences_gen.h:8472 +#: ../build/bin/preferences_gen.h:8483 msgid "suggested tags level of confidence" msgstr "Рекомендуемый уровень достоверности тегов" -#: ../build/bin/preferences_gen.h:8497 +#: ../build/bin/preferences_gen.h:8508 #, no-c-format msgid "" "level of confidence to include the tag in the suggestions list, 0: all " @@ -2184,11 +2309,11 @@ "связанные теги, 99: 99%% совпадающих связанных тегов, 100: нет " "соответствующего тега, только последние теги (быстрее)" -#: ../build/bin/preferences_gen.h:8519 +#: ../build/bin/preferences_gen.h:8529 msgid "number of recently attached tags" msgstr "Количество недавно прикрепленных тегов" -#: ../build/bin/preferences_gen.h:8543 +#: ../build/bin/preferences_gen.h:8553 msgid "" "number of recently attached tags which are included in the suggestions list. " "the value `-1' disables the recent list" @@ -2214,14 +2339,15 @@ #. focal length #: ../build/lib/darktable/plugins/introspection_ashift.c:148 #: ../build/lib/darktable/plugins/introspection_ashift.c:291 -#: ../src/common/collection.c:714 ../src/gui/preferences.c:844 -#: ../src/gui/presets.c:718 ../src/libs/camera.c:550 -#: ../src/libs/metadata_view.c:143 +#: ../src/common/collection.c:627 ../src/gui/preferences.c:842 +#: ../src/gui/presets.c:721 ../src/libs/camera.c:550 +#: ../src/libs/metadata_view.c:145 msgid "focal length" msgstr "Фокусное расстояние" #: ../build/lib/darktable/plugins/introspection_ashift.c:154 #: ../build/lib/darktable/plugins/introspection_ashift.c:295 +#: ../src/libs/metadata_view.c:147 msgid "crop factor" msgstr "Кроп-фактор" @@ -2237,7 +2363,7 @@ #: ../build/lib/darktable/plugins/introspection_ashift.c:172 #: ../build/lib/darktable/plugins/introspection_ashift.c:307 -#: ../src/iop/lens.cc:3784 +#: ../src/iop/lens.cc:4438 msgid "lens model" msgstr "Модель объектива" @@ -2259,14 +2385,14 @@ #. DEVELOP_MASK_DISABLED #: ../build/lib/darktable/plugins/introspection_ashift.c:366 -#: ../build/lib/darktable/plugins/introspection_colorin.c:300 +#: ../build/lib/darktable/plugins/introspection_colorin.c:303 #: ../build/lib/darktable/plugins/introspection_highlights.c:310 #: ../build/lib/darktable/plugins/introspection_vignette.c:264 #: ../src/develop/blend_gui.c:153 ../src/develop/blend_gui.c:182 -#: ../src/develop/blend_gui.c:3410 ../src/gui/accelerators.c:130 -#: ../src/gui/accelerators.c:140 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/imageio/format/j2k.c:669 -#: ../src/libs/live_view.c:361 ../src/libs/masks.c:113 +#: ../src/develop/blend_gui.c:3429 ../src/gui/accelerators.c:148 +#: ../src/gui/accelerators.c:158 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/imageio/format/j2k.c:686 +#: ../src/libs/live_view.c:361 msgid "off" msgstr "Выкл." @@ -2290,7 +2416,7 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:146 #: ../build/lib/darktable/plugins/introspection_basecurve.c:239 -#: ../src/libs/metadata_view.c:142 +#: ../src/libs/metadata_view.c:144 msgid "exposure bias" msgstr "Смещение экспозиции" @@ -2310,16 +2436,16 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:262 #: ../build/lib/darktable/plugins/introspection_basicadj.c:249 #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:153 -#: ../build/lib/darktable/plugins/introspection_lens.cc:444 +#: ../build/lib/darktable/plugins/introspection_lens.cc:533 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:251 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:153 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:270 -#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2193 -#: ../src/iop/channelmixerrgb.c:4667 ../src/iop/clipping.c:1900 -#: ../src/iop/clipping.c:2093 ../src/iop/clipping.c:2108 -#: ../src/iop/retouch.c:463 ../src/libs/collect.c:1907 -#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1023 -#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:132 +#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2214 +#: ../src/iop/channelmixerrgb.c:4735 ../src/iop/clipping.c:1953 +#: ../src/iop/clipping.c:2146 ../src/iop/clipping.c:2161 +#: ../src/iop/retouch.c:507 ../src/libs/collect.c:2043 +#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1101 +#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:109 #: ../src/libs/live_view.c:311 ../src/libs/print_settings.c:2835 msgid "none" msgstr "Нет" @@ -2337,7 +2463,7 @@ #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:252 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:154 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:271 -#: ../src/develop/blend_gui.c:2363 ../src/develop/blend_gui.c:2397 +#: ../src/develop/blend_gui.c:2379 ../src/develop/blend_gui.c:2413 msgid "luminance" msgstr "Светлота" @@ -2447,7 +2573,7 @@ #: ../build/lib/darktable/plugins/introspection_graduatednd.c:144 #: ../build/lib/darktable/plugins/introspection_watermark.c:136 #: ../build/lib/darktable/plugins/introspection_watermark.c:265 -#: ../src/iop/ashift.c:6112 ../src/libs/masks.c:108 +#: ../src/iop/ashift.c:6059 ../src/libs/masks.c:109 msgid "rotation" msgstr "Вращение" @@ -2458,7 +2584,7 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:125 #: ../build/lib/darktable/plugins/introspection_blurs.c:202 -#: ../src/libs/masks.c:109 +#: ../src/libs/masks.c:110 msgid "curvature" msgstr "Кривизна" @@ -2466,13 +2592,13 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:206 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:81 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:148 -#: ../src/iop/colorbalancergb.c:1968 +#: ../src/iop/colorbalancergb.c:2039 msgid "offset" msgstr "Смещение" #: ../build/lib/darktable/plugins/introspection_blurs.c:220 -#: ../src/common/collection.c:712 ../src/gui/preferences.c:828 -#: ../src/gui/presets.c:660 ../src/libs/metadata_view.c:139 +#: ../src/common/collection.c:625 ../src/gui/preferences.c:826 +#: ../src/gui/presets.c:663 ../src/libs/metadata_view.c:141 msgid "lens" msgstr "Объектив" @@ -2488,63 +2614,90 @@ msgid "gaussian" msgstr "По Гауссу" -#: ../build/lib/darktable/plugins/introspection_borders.c:112 -#: ../build/lib/darktable/plugins/introspection_borders.c:253 -#: ../src/common/collection.c:722 ../src/libs/filtering.c:59 +#: ../build/lib/darktable/plugins/introspection_borders.c:122 +#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../src/common/collection.c:635 ../src/libs/filtering.c:59 msgid "aspect ratio" msgstr "Соотношение сторон" #. // portrait / landscape -#: ../build/lib/darktable/plugins/introspection_borders.c:130 -#: ../build/lib/darktable/plugins/introspection_borders.c:265 +#: ../build/lib/darktable/plugins/introspection_borders.c:140 +#: ../build/lib/darktable/plugins/introspection_borders.c:281 #: ../src/iop/flip.c:75 ../src/libs/print_settings.c:2517 msgid "orientation" msgstr "Ориентация" -#: ../build/lib/darktable/plugins/introspection_borders.c:136 -#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../build/lib/darktable/plugins/introspection_borders.c:146 +#: ../build/lib/darktable/plugins/introspection_borders.c:285 msgid "border size" msgstr "Размер" -#: ../build/lib/darktable/plugins/introspection_borders.c:142 -#: ../build/lib/darktable/plugins/introspection_borders.c:273 +#: ../build/lib/darktable/plugins/introspection_borders.c:152 +#: ../build/lib/darktable/plugins/introspection_borders.c:289 msgid "horizontal offset" msgstr "Смещение по горизонтали" -#: ../build/lib/darktable/plugins/introspection_borders.c:160 -#: ../build/lib/darktable/plugins/introspection_borders.c:285 +#: ../build/lib/darktable/plugins/introspection_borders.c:170 +#: ../build/lib/darktable/plugins/introspection_borders.c:301 msgid "vertical offset" msgstr "Смещение по вертикали" -#: ../build/lib/darktable/plugins/introspection_borders.c:178 -#: ../build/lib/darktable/plugins/introspection_borders.c:297 +#: ../build/lib/darktable/plugins/introspection_borders.c:188 +#: ../build/lib/darktable/plugins/introspection_borders.c:313 msgid "frame line size" msgstr "Размер линии рамки" -#: ../build/lib/darktable/plugins/introspection_borders.c:184 -#: ../build/lib/darktable/plugins/introspection_borders.c:301 +#: ../build/lib/darktable/plugins/introspection_borders.c:194 +#: ../build/lib/darktable/plugins/introspection_borders.c:317 msgid "frame line offset" msgstr "Смещение линии рамки" -#: ../build/lib/darktable/plugins/introspection_borders.c:327 -#: ../src/gui/preferences.c:849 ../src/iop/ashift.c:6291 -#: ../src/iop/basicadj.c:632 ../src/iop/flip.c:472 ../src/iop/flip.c:474 -#: ../src/iop/levels.c:641 ../src/iop/rgblevels.c:1050 +#: ../build/lib/darktable/plugins/introspection_borders.c:218 +#: ../build/lib/darktable/plugins/introspection_borders.c:333 +msgid "basis" +msgstr "Основа" + +#: ../build/lib/darktable/plugins/introspection_borders.c:347 +#: ../build/lib/darktable/plugins/introspection_borders.c:353 +#: ../src/gui/preferences.c:847 ../src/imageio/format/jpeg.c:604 +#: ../src/iop/ashift.c:6238 ../src/iop/basicadj.c:662 ../src/iop/flip.c:470 +#: ../src/iop/flip.c:472 ../src/iop/levels.c:657 ../src/iop/rgblevels.c:1105 msgid "auto" msgstr "Авто" -#: ../build/lib/darktable/plugins/introspection_borders.c:328 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:309 +#: ../build/lib/darktable/plugins/introspection_borders.c:348 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:315 #: ../src/libs/filters/ratio.c:122 ../src/libs/print_settings.c:2519 msgid "portrait" msgstr "Портретная" -#: ../build/lib/darktable/plugins/introspection_borders.c:329 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:305 +#: ../build/lib/darktable/plugins/introspection_borders.c:349 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:311 #: ../src/libs/filters/ratio.c:124 ../src/libs/print_settings.c:2519 msgid "landscape" msgstr "Альбомная" +#: ../build/lib/darktable/plugins/introspection_borders.c:354 +#: ../src/iop/relight.c:275 ../src/libs/export.c:1223 +#: ../src/libs/metadata_view.c:151 ../src/libs/print_settings.c:2537 +msgid "width" +msgstr "Ширина" + +#: ../build/lib/darktable/plugins/introspection_borders.c:355 +#: ../build/lib/darktable/plugins/introspection_watermark.c:326 +#: ../src/libs/export.c:1229 ../src/libs/metadata_view.c:152 +#: ../src/libs/print_settings.c:2541 +msgid "height" +msgstr "Высота" + +#: ../build/lib/darktable/plugins/introspection_borders.c:356 +msgid "shorter" +msgstr "Короче" + +#: ../build/lib/darktable/plugins/introspection_borders.c:357 +msgid "longer" +msgstr "Длиннее" + #: ../build/lib/darktable/plugins/introspection_cacorrect.c:42 #: ../build/lib/darktable/plugins/introspection_cacorrect.c:91 msgid "avoid colorshift" @@ -2591,9 +2744,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:67 #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:132 -#: ../src/iop/atrous.c:1522 ../src/iop/bilateral.cc:350 ../src/iop/clahe.c:335 -#: ../src/iop/dither.c:760 ../src/iop/lowpass.c:584 ../src/iop/shadhi.c:675 -#: ../src/iop/sharpen.c:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:340 +#: ../build/lib/darktable/plugins/introspection_lens.cc:501 +#: ../src/iop/atrous.c:1636 ../src/iop/bilateral.cc:352 ../src/iop/clahe.c:337 +#: ../src/iop/dither.c:762 ../src/iop/lowpass.c:597 ../src/iop/shadhi.c:710 +#: ../src/iop/sharpen.c:435 msgid "radius" msgstr "Радиус" @@ -2601,9 +2756,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:136 #: ../build/lib/darktable/plugins/introspection_highlights.c:137 #: ../build/lib/darktable/plugins/introspection_highlights.c:240 -#: ../src/iop/bloom.c:376 ../src/iop/denoiseprofile.c:3818 -#: ../src/iop/grain.c:584 ../src/iop/hazeremoval.c:201 -#: ../src/iop/hotpixels.c:388 ../src/iop/nlmeans.c:460 ../src/iop/velvia.c:279 +#: ../build/lib/darktable/plugins/introspection_lens.cc:334 +#: ../build/lib/darktable/plugins/introspection_lens.cc:497 +#: ../src/iop/bloom.c:372 ../src/iop/denoiseprofile.c:3822 +#: ../src/iop/grain.c:602 ../src/iop/hazeremoval.c:203 +#: ../src/iop/hotpixels.c:467 ../src/iop/nlmeans.c:463 ../src/iop/velvia.c:288 msgid "strength" msgstr "Интенсивность" @@ -2618,41 +2775,41 @@ msgstr "Сильные хроматические аберрации" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:158 -#: ../src/common/collection.c:1507 ../src/common/color_vocabulary.c:232 -#: ../src/common/colorlabels.c:334 ../src/develop/blend_gui.c:2330 -#: ../src/develop/blend_gui.c:2378 ../src/develop/lightroom.c:834 -#: ../src/gui/gtk.c:3137 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:354 -#: ../src/iop/channelmixer.c:618 ../src/iop/channelmixer.c:628 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/colorzones.c:2263 -#: ../src/iop/temperature.c:1935 ../src/iop/temperature.c:2129 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:260 -#: ../src/libs/histogram.c:2397 +#: ../src/common/collection.c:1374 ../src/common/color_vocabulary.c:232 +#: ../src/common/colorlabels.c:333 ../src/develop/blend_gui.c:2346 +#: ../src/develop/blend_gui.c:2394 ../src/develop/lightroom.c:887 +#: ../src/gui/gtk.c:3183 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:356 +#: ../src/iop/channelmixer.c:637 ../src/iop/channelmixer.c:647 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/colorzones.c:2499 +#: ../src/iop/temperature.c:1912 ../src/iop/temperature.c:2094 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:260 +#: ../src/libs/histogram.c:2724 msgid "red" msgstr "Красный" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:159 -#: ../src/common/collection.c:1511 ../src/common/color_vocabulary.c:277 -#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2336 -#: ../src/develop/blend_gui.c:2384 ../src/develop/lightroom.c:838 -#: ../src/gui/gtk.c:3138 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:359 -#: ../src/iop/channelmixer.c:619 ../src/iop/channelmixer.c:634 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/colorzones.c:2266 -#: ../src/iop/temperature.c:1919 ../src/iop/temperature.c:1937 -#: ../src/iop/temperature.c:2130 ../src/libs/collect.c:1791 -#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2389 +#: ../src/common/collection.c:1378 ../src/common/color_vocabulary.c:277 +#: ../src/common/colorlabels.c:335 ../src/develop/blend_gui.c:2352 +#: ../src/develop/blend_gui.c:2400 ../src/develop/lightroom.c:891 +#: ../src/gui/gtk.c:3184 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:361 +#: ../src/iop/channelmixer.c:638 ../src/iop/channelmixer.c:653 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/colorzones.c:2502 +#: ../src/iop/temperature.c:1896 ../src/iop/temperature.c:1914 +#: ../src/iop/temperature.c:2095 ../src/libs/collect.c:1916 +#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2715 msgid "green" msgstr "Зелёный" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:160 -#: ../src/common/collection.c:1513 ../src/common/color_vocabulary.c:324 -#: ../src/common/colorlabels.c:337 ../src/develop/blend_gui.c:2342 -#: ../src/develop/blend_gui.c:2390 ../src/develop/lightroom.c:840 -#: ../src/gui/gtk.c:3139 ../src/iop/bilateral.cc:364 -#: ../src/iop/channelmixer.c:620 ../src/iop/channelmixer.c:640 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/colorzones.c:2268 -#: ../src/iop/temperature.c:1939 ../src/iop/temperature.c:2131 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:263 -#: ../src/libs/histogram.c:2381 +#: ../src/common/collection.c:1380 ../src/common/color_vocabulary.c:324 +#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2358 +#: ../src/develop/blend_gui.c:2406 ../src/develop/lightroom.c:893 +#: ../src/gui/gtk.c:3185 ../src/iop/bilateral.cc:366 +#: ../src/iop/channelmixer.c:639 ../src/iop/channelmixer.c:659 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/colorzones.c:2504 +#: ../src/iop/temperature.c:1916 ../src/iop/temperature.c:2096 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:263 +#: ../src/libs/histogram.c:2706 msgid "blue" msgstr "Синий" @@ -2895,7 +3052,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:303 #: ../build/lib/darktable/plugins/introspection_crop.c:61 #: ../build/lib/darktable/plugins/introspection_crop.c:134 -#: ../src/gui/gtk.c:1141 ../src/iop/atrous.c:1518 +#: ../src/gui/gtk.c:1234 ../src/iop/atrous.c:1632 msgid "left" msgstr "Левое" @@ -2903,7 +3060,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:307 #: ../build/lib/darktable/plugins/introspection_crop.c:67 #: ../build/lib/darktable/plugins/introspection_crop.c:138 -#: ../src/gui/accelerators.c:113 ../src/gui/gtk.c:1155 +#: ../src/gui/accelerators.c:131 ../src/gui/gtk.c:1240 msgid "top" msgstr "Верхнее" @@ -2911,7 +3068,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:311 #: ../build/lib/darktable/plugins/introspection_crop.c:73 #: ../build/lib/darktable/plugins/introspection_crop.c:142 -#: ../src/gui/gtk.c:1148 ../src/iop/atrous.c:1517 +#: ../src/gui/gtk.c:1237 ../src/iop/atrous.c:1631 msgid "right" msgstr "Правое" @@ -2919,7 +3076,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:315 #: ../build/lib/darktable/plugins/introspection_crop.c:79 #: ../build/lib/darktable/plugins/introspection_crop.c:146 -#: ../src/gui/accelerators.c:114 ../src/gui/gtk.c:1162 +#: ../src/gui/accelerators.c:132 ../src/gui/gtk.c:1243 msgid "bottom" msgstr "Нижнее" @@ -2958,10 +3115,11 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:477 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:489 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:501 -#: ../src/develop/blend_gui.c:2356 ../src/develop/blend_gui.c:2404 -#: ../src/iop/atrous.c:1667 ../src/iop/channelmixerrgb.c:4457 -#: ../src/iop/channelmixerrgb.c:4573 ../src/iop/colorbalancergb.c:1895 -#: ../src/iop/colorzones.c:2402 ../src/iop/nlmeans.c:468 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 +#: ../src/develop/blend_gui.c:2372 ../src/develop/blend_gui.c:2420 +#: ../src/iop/atrous.c:1801 ../src/iop/channelmixerrgb.c:4525 +#: ../src/iop/channelmixerrgb.c:4641 ../src/iop/colorbalancergb.c:1966 +#: ../src/iop/colorzones.c:2645 ../src/iop/nlmeans.c:471 msgid "chroma" msgstr "Цветность" @@ -2981,11 +3139,11 @@ #: ../build/lib/darktable/plugins/introspection_splittoning.c:73 #: ../build/lib/darktable/plugins/introspection_splittoning.c:134 #: ../build/lib/darktable/plugins/introspection_splittoning.c:142 -#: ../src/develop/blend_gui.c:2315 ../src/develop/blend_gui.c:2349 -#: ../src/develop/blend_gui.c:2411 ../src/iop/channelmixer.c:615 -#: ../src/iop/channelmixerrgb.c:4450 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/colorbalance.c:2042 ../src/iop/colorize.c:330 -#: ../src/iop/colorreconstruction.c:1240 ../src/iop/colorzones.c:2403 +#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2365 +#: ../src/develop/blend_gui.c:2427 ../src/iop/channelmixer.c:634 +#: ../src/iop/channelmixerrgb.c:4518 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/colorbalance.c:2017 ../src/iop/colorize.c:343 +#: ../src/iop/colorreconstruction.c:1249 ../src/iop/colorzones.c:2646 msgid "hue" msgstr "Тон" @@ -3012,9 +3170,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:569 #: ../build/lib/darktable/plugins/introspection_toneequal.c:156 #: ../build/lib/darktable/plugins/introspection_toneequal.c:297 -#: ../src/iop/bilat.c:469 ../src/iop/colorbalance.c:2099 -#: ../src/iop/negadoctor.c:915 ../src/iop/shadhi.c:671 -#: ../src/iop/splittoning.c:507 +#: ../src/iop/bilat.c:479 ../src/iop/colorbalance.c:2074 +#: ../src/iop/negadoctor.c:934 ../src/iop/shadhi.c:706 +#: ../src/iop/splittoning.c:503 msgid "shadows" msgstr "Тени" @@ -3026,9 +3184,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:561 #: ../build/lib/darktable/plugins/introspection_toneequal.c:180 #: ../build/lib/darktable/plugins/introspection_toneequal.c:313 -#: ../src/iop/bilat.c:463 ../src/iop/colorbalance.c:2101 -#: ../src/iop/monochrome.c:561 ../src/iop/shadhi.c:672 -#: ../src/iop/splittoning.c:514 +#: ../src/iop/bilat.c:473 ../src/iop/colorbalance.c:2076 +#: ../src/iop/monochrome.c:583 ../src/iop/shadhi.c:707 +#: ../src/iop/splittoning.c:510 msgid "highlights" msgstr "Освещенность" @@ -3045,13 +3203,13 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:565 #: ../build/lib/darktable/plugins/introspection_toneequal.c:168 #: ../build/lib/darktable/plugins/introspection_toneequal.c:305 -#: ../src/iop/colorbalance.c:2100 +#: ../src/iop/colorbalance.c:2075 msgid "mid-tones" msgstr "Средние тона" #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:340 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:537 -#: ../src/iop/filmic.c:1576 +#: ../src/iop/filmic.c:1601 msgid "global saturation" msgstr "Общая насыщенность" @@ -3082,12 +3240,12 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:412 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:585 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:64 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:137 -#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:607 ../src/iop/bilat.c:458 -#: ../src/iop/colisa.c:304 ../src/iop/colorbalance.c:1947 -#: ../src/iop/colorbalance.c:1953 ../src/iop/filmic.c:1548 -#: ../src/iop/filmicrgb.c:4551 ../src/iop/lowpass.c:586 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:116 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:237 +#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:637 ../src/iop/bilat.c:468 +#: ../src/iop/colisa.c:298 ../src/iop/colorbalance.c:1922 +#: ../src/iop/colorbalance.c:1928 ../src/iop/filmic.c:1573 +#: ../src/iop/filmicrgb.c:4615 ../src/iop/lowpass.c:599 msgid "contrast" msgstr "Контраст" @@ -3114,33 +3272,35 @@ msgid "blue-yellow contrast" msgstr "Синий — Жёлтый" -#: ../build/lib/darktable/plugins/introspection_colorin.c:148 -#: ../build/lib/darktable/plugins/introspection_colorin.c:231 +#: ../build/lib/darktable/plugins/introspection_colorin.c:150 +#: ../build/lib/darktable/plugins/introspection_colorin.c:233 msgid "gamut clipping" msgstr "Обрезка цветового охвата" -#: ../build/lib/darktable/plugins/introspection_colorin.c:301 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:201 -#: ../src/common/colorspaces.c:1251 ../src/common/colorspaces.c:1484 +#: ../build/lib/darktable/plugins/introspection_colorin.c:304 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:312 +#: ../src/common/colorspaces.c:1410 ../src/common/colorspaces.c:1700 #: ../src/libs/print_settings.c:1356 msgid "sRGB" msgstr "sRGB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:302 -#: ../src/common/colorspaces.c:1260 ../src/common/colorspaces.c:1486 +#: ../build/lib/darktable/plugins/introspection_colorin.c:305 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:311 +#: ../src/common/colorspaces.c:1421 ../src/common/colorspaces.c:1702 #: ../src/libs/print_settings.c:1363 msgid "Adobe RGB (compatible)" msgstr "Adobe RGB (совм.)" -#: ../build/lib/darktable/plugins/introspection_colorin.c:303 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 -#: ../src/common/colorspaces.c:1265 ../src/common/colorspaces.c:1488 +#: ../build/lib/darktable/plugins/introspection_colorin.c:306 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 +#: ../src/common/colorspaces.c:1428 ../src/common/colorspaces.c:1704 msgid "linear Rec709 RGB" msgstr "RGB по Rec709 (линейн.)" -#: ../build/lib/darktable/plugins/introspection_colorin.c:304 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 -#: ../src/common/colorspaces.c:1274 ../src/common/colorspaces.c:1490 +#: ../build/lib/darktable/plugins/introspection_colorin.c:307 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:206 +#: ../src/common/colorspaces.c:1442 ../src/common/colorspaces.c:1706 msgid "linear Rec2020 RGB" msgstr "RGB по Rec2020 (линейн.)" @@ -3168,7 +3328,7 @@ #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:127 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:45 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:92 -#: ../src/iop/shadhi.c:686 +#: ../src/iop/shadhi.c:721 msgid "spatial extent" msgstr "Пространственный предел" @@ -3178,7 +3338,7 @@ msgstr "Предел диапазона" #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:154 -#: ../src/iop/channelmixerrgb.c:4669 +#: ../src/iop/channelmixerrgb.c:4737 msgid "saturated colors" msgstr "Насыщенные цвета" @@ -3192,7 +3352,7 @@ #: ../build/lib/darktable/plugins/introspection_colorzones.c:233 #: ../build/lib/darktable/plugins/introspection_soften.c:66 #: ../build/lib/darktable/plugins/introspection_soften.c:121 -#: ../src/iop/atrous.c:1689 +#: ../src/iop/atrous.c:1835 msgid "mix" msgstr "Микширование" @@ -3202,33 +3362,17 @@ msgstr "Режим" #: ../build/lib/darktable/plugins/introspection_colorzones.c:255 -#: ../src/develop/blend_gui.c:2294 ../src/iop/channelmixer.c:617 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/colorchecker.c:1448 -#: ../src/iop/colorize.c:349 ../src/iop/colorzones.c:2401 -#: ../src/iop/exposure.c:1239 +#: ../src/develop/blend_gui.c:2310 ../src/iop/channelmixer.c:636 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/colorchecker.c:1453 +#: ../src/iop/colorize.c:362 ../src/iop/colorzones.c:2644 +#: ../src/iop/exposure.c:1257 msgid "lightness" msgstr "Светлота" -#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 -#: ../src/develop/blend_gui.c:2310 ../src/iop/basicadj.c:624 -#: ../src/iop/channelmixer.c:616 ../src/iop/colisa.c:306 -#: ../src/iop/colorbalance.c:2059 ../src/iop/colorbalancergb.c:1919 -#: ../src/iop/colorchecker.c:1483 ../src/iop/colorcontrast.c:90 -#: ../src/iop/colorcorrection.c:275 ../src/iop/colorize.c:343 -#: ../src/iop/lowpass.c:588 ../src/iop/soften.c:373 ../src/iop/velvia.c:84 -#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:971 -msgid "saturation" -msgstr "Насыщенность" - #: ../build/lib/darktable/plugins/introspection_colorzones.c:267 -#: ../src/iop/atrous.c:1309 ../src/iop/atrous.c:1313 -#: ../src/iop/denoiseprofile.c:3527 ../src/iop/rawdenoise.c:755 +#: ../src/iop/atrous.c:1410 ../src/iop/atrous.c:1414 +#: ../src/iop/denoiseprofile.c:3531 ../src/iop/rawdenoise.c:771 +#: ../src/iop/sigmoid.c:292 msgid "smooth" msgstr "плавно" @@ -3245,9 +3389,9 @@ #: ../build/lib/darktable/plugins/introspection_defringe.c:106 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:230 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:435 -#: ../src/iop/atrous.c:1572 ../src/iop/bloom.c:372 -#: ../src/iop/colorreconstruction.c:1236 ../src/iop/hotpixels.c:384 -#: ../src/iop/sharpen.c:449 +#: ../src/iop/atrous.c:1695 ../src/iop/bloom.c:368 +#: ../src/iop/colorreconstruction.c:1245 ../src/iop/hotpixels.c:463 +#: ../src/iop/sharpen.c:444 msgid "threshold" msgstr "Порог" @@ -3382,7 +3526,7 @@ #. history #: ../build/lib/darktable/plugins/introspection_demosaic.c:232 -#: ../src/common/collection.c:1526 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1394 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "basic" msgstr "Основные" @@ -3455,12 +3599,9 @@ msgid "upgrade profiled transform" msgstr "Обновить шумоподавление по профилю" -#. -#. * Color mode combo box -#. #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:257 #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:388 -#: ../src/imageio/format/avif.c:786 ../src/libs/colorpicker.c:584 +#: ../src/libs/colorpicker.c:659 msgid "color mode" msgstr "Цветовой режим" @@ -3485,7 +3626,7 @@ msgstr "Вычислить дисперсию" #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:410 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:266 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:292 msgid "RGB" msgstr "RGB" @@ -3496,7 +3637,7 @@ #. two more sharpness (standard & strong) #: ../build/lib/darktable/plugins/introspection_diffuse.c:123 #: ../build/lib/darktable/plugins/introspection_diffuse.c:248 -#: ../src/iop/atrous.c:1564 ../src/iop/diffuse.c:630 ../src/iop/highpass.c:381 +#: ../src/iop/atrous.c:1685 ../src/iop/diffuse.c:657 ../src/iop/highpass.c:376 msgid "sharpness" msgstr "Резкость" @@ -3660,7 +3801,7 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:212 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:423 -#: ../src/iop/filmic.c:1489 +#: ../src/iop/filmic.c:1514 msgid "middle gray luminance" msgstr "Серая точка" @@ -3668,13 +3809,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:427 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:97 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:166 -#: ../src/iop/filmic.c:1514 +#: ../src/iop/filmic.c:1539 msgid "black relative exposure" msgstr "Экспозиция чёрного (относит.)" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:224 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:431 -#: ../src/iop/filmic.c:1501 +#: ../src/iop/filmic.c:1526 msgid "white relative exposure" msgstr "Экспозиция белого (относит.)" @@ -3705,19 +3846,19 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:266 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:459 -#: ../src/iop/filmic.c:1646 +#: ../src/iop/filmic.c:1671 msgid "target middle gray" msgstr "Целевая серая точка" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:272 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:463 -#: ../src/iop/filmic.c:1637 +#: ../src/iop/filmic.c:1662 msgid "target black luminance" msgstr "Целевой чёрный" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:278 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:467 -#: ../src/iop/filmic.c:1655 +#: ../src/iop/filmic.c:1680 msgid "target white luminance" msgstr "Целевой белый" @@ -3725,13 +3866,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:471 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:69 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:140 -#: ../src/libs/masks.c:106 +#: ../src/libs/masks.c:107 msgid "hardness" msgstr "Резкость" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:302 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:483 -#: ../src/iop/filmic.c:1586 ../src/iop/filmicrgb.c:4729 +#: ../src/iop/filmic.c:1611 ../src/iop/filmicrgb.c:4793 msgid "extreme luminance saturation" msgstr "Насыщенность верхов и низов" @@ -3802,11 +3943,11 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:549 #: ../build/lib/darktable/plugins/introspection_toneequal.c:371 -#: ../src/common/database.c:2785 ../src/common/variables.c:705 -#: ../src/develop/imageop_gui.c:209 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 +#: ../src/common/variables.c:714 ../src/develop/imageop_gui.c:209 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 msgid "no" msgstr "Нет" @@ -3908,9 +4049,25 @@ msgid "density" msgstr "Плотность" +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 +#: ../src/develop/blend_gui.c:2326 ../src/iop/basicadj.c:654 +#: ../src/iop/channelmixer.c:635 ../src/iop/colisa.c:300 +#: ../src/iop/colorbalance.c:2034 ../src/iop/colorbalancergb.c:1990 +#: ../src/iop/colorchecker.c:1488 ../src/iop/colorcontrast.c:82 +#: ../src/iop/colorcorrection.c:268 ../src/iop/colorize.c:356 +#: ../src/iop/lowpass.c:601 ../src/iop/soften.c:368 ../src/iop/velvia.c:75 +#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:1058 +msgid "saturation" +msgstr "Насыщенность" + #: ../build/lib/darktable/plugins/introspection_grain.c:58 #: ../build/lib/darktable/plugins/introspection_grain.c:117 -#: ../src/iop/bilat.c:450 +#: ../src/iop/bilat.c:460 msgid "coarseness" msgstr "Зернистость" @@ -3923,7 +4080,7 @@ #: ../build/lib/darktable/plugins/introspection_highlights.c:143 #: ../build/lib/darktable/plugins/introspection_highlights.c:244 -#: ../src/views/darkroom.c:2406 +#: ../src/views/darkroom.c:2245 msgid "clipping threshold" msgstr "Порог обрезки" @@ -4059,168 +4216,172 @@ msgid "detect by 3 neighbors" msgstr "Поиск по 3 соседним" -#: ../build/lib/darktable/plugins/introspection_lens.cc:162 -#: ../build/lib/darktable/plugins/introspection_lens.cc:337 +#: ../build/lib/darktable/plugins/introspection_lens.cc:190 +#: ../build/lib/darktable/plugins/introspection_lens.cc:401 msgid "correction method" msgstr "Метод коррекции" #. Page CORRECTIONS -#: ../build/lib/darktable/plugins/introspection_lens.cc:168 -#: ../build/lib/darktable/plugins/introspection_lens.cc:341 -#: ../src/iop/negadoctor.c:900 +#: ../build/lib/darktable/plugins/introspection_lens.cc:196 +#: ../build/lib/darktable/plugins/introspection_lens.cc:405 +#: ../src/iop/negadoctor.c:919 msgid "corrections" msgstr "Коррективы" #. mode choice -#. Add check to control whether the style is to replace or append the current module -#: ../build/lib/darktable/plugins/introspection_lens.cc:174 -#: ../build/lib/darktable/plugins/introspection_lens.cc:345 +#: ../build/lib/darktable/plugins/introspection_lens.cc:202 +#: ../build/lib/darktable/plugins/introspection_lens.cc:409 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:128 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:219 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:51 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:118 -#: ../src/iop/bilat.c:428 ../src/iop/colorbalance.c:1909 -#: ../src/iop/denoiseprofile.c:3806 ../src/iop/exposure.c:1157 -#: ../src/iop/levels.c:684 ../src/iop/profile_gamma.c:668 -#: ../src/libs/copy_history.c:399 ../src/libs/export.c:1262 -#: ../src/libs/image.c:597 ../src/libs/print_settings.c:2875 -#: ../src/libs/styles.c:846 ../src/views/darkroom.c:2387 +#: ../src/develop/blend_gui.c:3546 ../src/iop/bilat.c:438 +#: ../src/iop/colorbalance.c:1884 ../src/iop/denoiseprofile.c:3810 +#: ../src/iop/exposure.c:1175 ../src/iop/levels.c:700 +#: ../src/iop/profile_gamma.c:682 ../src/libs/copy_history.c:399 +#: ../src/libs/export.c:1376 ../src/libs/image.c:666 +#: ../src/libs/print_settings.c:2875 ../src/libs/styles.c:850 +#: ../src/views/darkroom.c:2226 msgid "mode" msgstr "Режим" -#: ../build/lib/darktable/plugins/introspection_lens.cc:210 -#: ../build/lib/darktable/plugins/introspection_lens.cc:369 -#: ../src/iop/lens.cc:3820 +#: ../build/lib/darktable/plugins/introspection_lens.cc:238 +#: ../build/lib/darktable/plugins/introspection_lens.cc:433 +#: ../src/iop/lens.cc:4474 msgid "target geometry" msgstr "Целевая геометрия" -#: ../build/lib/darktable/plugins/introspection_lens.cc:240 -#: ../build/lib/darktable/plugins/introspection_lens.cc:389 +#: ../build/lib/darktable/plugins/introspection_lens.cc:268 +#: ../build/lib/darktable/plugins/introspection_lens.cc:453 msgid "TCA overwrite" msgstr "Настройка ХА" -#: ../build/lib/darktable/plugins/introspection_lens.cc:246 -#: ../build/lib/darktable/plugins/introspection_lens.cc:393 +#: ../build/lib/darktable/plugins/introspection_lens.cc:274 +#: ../build/lib/darktable/plugins/introspection_lens.cc:298 +#: ../build/lib/darktable/plugins/introspection_lens.cc:457 +#: ../build/lib/darktable/plugins/introspection_lens.cc:473 msgid "TCA red" msgstr "ХА, красный" -#: ../build/lib/darktable/plugins/introspection_lens.cc:252 -#: ../build/lib/darktable/plugins/introspection_lens.cc:397 +#: ../build/lib/darktable/plugins/introspection_lens.cc:280 +#: ../build/lib/darktable/plugins/introspection_lens.cc:304 +#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:477 msgid "TCA blue" msgstr "ХА, фиолетовый" -#: ../build/lib/darktable/plugins/introspection_lens.cc:258 -#: ../build/lib/darktable/plugins/introspection_lens.cc:401 -msgid "distortion fine-tune" -msgstr "Тонкая настройка искажений" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:264 -#: ../build/lib/darktable/plugins/introspection_lens.cc:405 -msgid "vignetting fine-tune" -msgstr "Тонкая настройка виньетирования" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:270 -#: ../build/lib/darktable/plugins/introspection_lens.cc:409 -msgid "TCA red fine-tune" -msgstr "ХА, красный, точная настройка" +#: ../build/lib/darktable/plugins/introspection_lens.cc:286 +#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +msgid "distortion" +msgstr "Искажение" -#: ../build/lib/darktable/plugins/introspection_lens.cc:276 -#: ../build/lib/darktable/plugins/introspection_lens.cc:413 -msgid "TCA blue fine-tune" -msgstr "ХА, фиолетовый, точная настройка" +#: ../build/lib/darktable/plugins/introspection_lens.cc:292 +#: ../build/lib/darktable/plugins/introspection_lens.cc:469 +#: ../src/iop/vignette.c:114 +msgid "vignetting" +msgstr "Виньетирование" -#: ../build/lib/darktable/plugins/introspection_lens.cc:282 -#: ../build/lib/darktable/plugins/introspection_lens.cc:417 +#: ../build/lib/darktable/plugins/introspection_lens.cc:310 +#: ../build/lib/darktable/plugins/introspection_lens.cc:481 msgid "scale fine-tune" msgstr "Точная настройка масштаба" -#: ../build/lib/darktable/plugins/introspection_lens.cc:294 -#: ../build/lib/darktable/plugins/introspection_lens.cc:425 +#: ../build/lib/darktable/plugins/introspection_lens.cc:322 +#: ../build/lib/darktable/plugins/introspection_lens.cc:489 msgid "image scale" msgstr "Масштабирование изображения" -#: ../build/lib/darktable/plugins/introspection_lens.cc:439 +#: ../build/lib/darktable/plugins/introspection_lens.cc:346 +#: ../build/lib/darktable/plugins/introspection_lens.cc:505 +msgid "steepness" +msgstr "Крутизна" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:527 msgid "embedded metadata" msgstr "Встроенные метаданные" -#: ../build/lib/darktable/plugins/introspection_lens.cc:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:528 msgid "Lensfun database" msgstr "База данных Lensfun" +#: ../build/lib/darktable/plugins/introspection_lens.cc:529 +msgid "only manual vignette" +msgstr "Только ручное виньетирование" + #. get nice text for bounds #. Side-border hide/show -#: ../build/lib/darktable/plugins/introspection_lens.cc:445 -#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2367 -#: ../src/gui/accelerators.c:2447 ../src/gui/gtk.c:1204 ../src/gui/gtk.c:3136 -#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3709 -#: ../src/iop/rawdenoise.c:893 ../src/libs/collect.c:3066 -#: ../src/libs/filtering.c:1459 ../src/libs/filters/colors.c:157 +#: ../build/lib/darktable/plugins/introspection_lens.cc:534 +#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2592 +#: ../src/gui/accelerators.c:2674 ../src/gui/gtk.c:1282 ../src/gui/gtk.c:3182 +#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3713 +#: ../src/iop/rawdenoise.c:909 ../src/libs/collect.c:3413 +#: ../src/libs/filtering.c:1521 ../src/libs/filters/colors.c:157 #: ../src/libs/filters/colors.c:265 ../src/libs/filters/rating.c:211 msgid "all" msgstr "Все" -#: ../build/lib/darktable/plugins/introspection_lens.cc:446 +#: ../build/lib/darktable/plugins/introspection_lens.cc:535 msgid "distortion & TCA" msgstr "Геометрия и ХА" -#: ../build/lib/darktable/plugins/introspection_lens.cc:447 +#: ../build/lib/darktable/plugins/introspection_lens.cc:536 msgid "distortion & vignetting" msgstr "Геометрия и виньетирование" -#: ../build/lib/darktable/plugins/introspection_lens.cc:448 +#: ../build/lib/darktable/plugins/introspection_lens.cc:537 msgid "TCA & vignetting" msgstr "ХА и виньетирование" -#: ../build/lib/darktable/plugins/introspection_lens.cc:449 +#: ../build/lib/darktable/plugins/introspection_lens.cc:538 msgid "only distortion" msgstr "Геометрия" -#: ../build/lib/darktable/plugins/introspection_lens.cc:450 +#: ../build/lib/darktable/plugins/introspection_lens.cc:539 msgid "only TCA" msgstr "ХА" -#: ../build/lib/darktable/plugins/introspection_lens.cc:451 +#: ../build/lib/darktable/plugins/introspection_lens.cc:540 msgid "only vignetting" msgstr "Виньетирование" -#: ../build/lib/darktable/plugins/introspection_lens.cc:455 -#: ../src/libs/modulegroups.c:2318 +#: ../build/lib/darktable/plugins/introspection_lens.cc:544 +#: ../src/libs/modulegroups.c:2302 msgid "correct" msgstr "Коррекция" -#: ../build/lib/darktable/plugins/introspection_lens.cc:456 +#: ../build/lib/darktable/plugins/introspection_lens.cc:545 msgid "distort" msgstr "Искажение" -#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:550 msgid "rectilinear" msgstr "Прямолинейная" -#: ../build/lib/darktable/plugins/introspection_lens.cc:462 +#: ../build/lib/darktable/plugins/introspection_lens.cc:551 msgid "fisheye" msgstr "Рыбий глаз" -#: ../build/lib/darktable/plugins/introspection_lens.cc:463 +#: ../build/lib/darktable/plugins/introspection_lens.cc:552 msgid "panoramic" msgstr "Панорамная" -#: ../build/lib/darktable/plugins/introspection_lens.cc:464 +#: ../build/lib/darktable/plugins/introspection_lens.cc:553 msgid "equirectangular" msgstr "Эквидистантная" -#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +#: ../build/lib/darktable/plugins/introspection_lens.cc:554 msgid "orthographic" msgstr "Ортографическая" -#: ../build/lib/darktable/plugins/introspection_lens.cc:466 +#: ../build/lib/darktable/plugins/introspection_lens.cc:555 msgid "stereographic" msgstr "Стереографическая" -#: ../build/lib/darktable/plugins/introspection_lens.cc:467 +#: ../build/lib/darktable/plugins/introspection_lens.cc:556 msgid "equisolid angle" msgstr "Равноцельная" -#: ../build/lib/darktable/plugins/introspection_lens.cc:468 +#: ../build/lib/darktable/plugins/introspection_lens.cc:557 msgid "Thoby fisheye" msgstr "Рыбий глаз Тоби" @@ -4230,8 +4391,8 @@ #. move left/right/up/down #: ../build/lib/darktable/plugins/introspection_liquify.c:429 -#: ../src/views/darkroom.c:2282 ../src/views/darkroom.c:2676 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:765 +#: ../src/views/darkroom.c:2121 ../src/views/darkroom.c:2522 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:765 #: ../src/views/lighttable.c:774 ../src/views/lighttable.c:1246 #: ../src/views/lighttable.c:1250 ../src/views/lighttable.c:1254 #: ../src/views/lighttable.c:1258 ../src/views/lighttable.c:1262 @@ -4243,8 +4404,8 @@ msgstr "Прямая" #: ../build/lib/darktable/plugins/introspection_liquify.c:431 -#: ../src/iop/basecurve.c:2186 ../src/iop/rgbcurve.c:1387 -#: ../src/iop/tonecurve.c:1149 +#: ../src/iop/basecurve.c:2207 ../src/iop/rgbcurve.c:1387 +#: ../src/iop/tonecurve.c:1171 msgid "curve" msgstr "Кривая" @@ -4280,28 +4441,33 @@ msgid "bilateral filter" msgstr "Билатеральный" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:76 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:163 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:77 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:164 msgid "application color space" msgstr "Пространство" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 msgid "Adobe RGB" msgstr "Adobe RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 msgid "gamma Rec709 RGB" msgstr "RGB по Rec709 (гамма)" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:209 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:207 +#: ../src/common/colorspaces.c:1486 ../src/common/colorspaces.c:1740 +msgid "linear ProPhoto RGB" +msgstr "ProPhoto RGB (линейн.)" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 msgid "tetrahedral" msgstr "Тетраэдрическая" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:210 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:212 msgid "trilinear" msgstr "Трилинейная" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:213 msgid "pyramid" msgstr "Пирамидальная" @@ -4322,7 +4488,7 @@ #: ../build/lib/darktable/plugins/introspection_negadoctor.c:144 #: ../build/lib/darktable/plugins/introspection_negadoctor.c:239 -#: ../src/iop/negadoctor.c:992 +#: ../src/iop/negadoctor.c:1011 msgid "paper grade (gamma)" msgstr "Гамма" @@ -4337,15 +4503,57 @@ msgstr "Экспозиция" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:261 -#: ../src/iop/negadoctor.c:417 +#: ../src/iop/negadoctor.c:431 msgid "black and white film" msgstr "Ч-б плёнка" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:262 -#: ../src/iop/negadoctor.c:402 +#: ../src/iop/negadoctor.c:416 msgid "color film" msgstr "Цветная плёнка" +#: ../build/lib/darktable/plugins/introspection_primaries.c:75 +#: ../build/lib/darktable/plugins/introspection_primaries.c:160 +#: ../src/iop/primaries.c:406 +msgid "tint hue" +msgstr "Оттенок" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:81 +#: ../build/lib/darktable/plugins/introspection_primaries.c:164 +#: ../src/iop/primaries.c:413 +msgid "tint purity" +msgstr "Чистота оттенка" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:87 +#: ../build/lib/darktable/plugins/introspection_primaries.c:168 +msgid "red hue" +msgstr "Оттенок красного" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:93 +#: ../build/lib/darktable/plugins/introspection_primaries.c:172 +msgid "red purity" +msgstr "Чистота красного" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:99 +#: ../build/lib/darktable/plugins/introspection_primaries.c:176 +msgid "green hue" +msgstr "Оттенок зеленого" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:105 +#: ../build/lib/darktable/plugins/introspection_primaries.c:180 +msgid "green purity" +msgstr "Чистота зеленого" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:111 +#: ../build/lib/darktable/plugins/introspection_primaries.c:184 +msgid "blue hue" +msgstr "Оттенок синего" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:117 +#: ../build/lib/darktable/plugins/introspection_primaries.c:188 +msgid "blue purity" +msgstr "Чистота синего" + #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:85 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:158 msgid "dynamic range" @@ -4358,7 +4566,7 @@ #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:103 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:170 -#: ../src/iop/filmic.c:1526 +#: ../src/iop/filmic.c:1551 msgid "safety factor" msgstr "Сжатие динамич. диапазона" @@ -4367,7 +4575,7 @@ msgstr "Логарифмич. кривая" #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:185 -#: ../src/iop/profile_gamma.c:625 +#: ../src/iop/profile_gamma.c:639 msgid "gamma" msgstr "Гамма" @@ -4405,7 +4613,7 @@ #: ../build/lib/darktable/plugins/introspection_rawprepare.c:106 #: ../build/lib/darktable/plugins/introspection_rawprepare.c:179 -#: ../src/iop/rawprepare.c:946 +#: ../src/iop/rawprepare.c:954 msgid "white point" msgstr "Белая точка" @@ -4421,9 +4629,9 @@ #. exposure #: ../build/lib/darktable/plugins/introspection_relight.c:43 #: ../build/lib/darktable/plugins/introspection_relight.c:98 -#: ../src/common/collection.c:720 ../src/gui/preferences.c:836 -#: ../src/gui/presets.c:684 ../src/iop/basicadj.c:598 ../src/iop/exposure.c:122 -#: ../src/iop/exposure.c:1117 ../src/libs/metadata_view.c:141 +#: ../src/common/collection.c:633 ../src/gui/preferences.c:834 +#: ../src/gui/presets.c:687 ../src/iop/basicadj.c:628 ../src/iop/exposure.c:122 +#: ../src/iop/exposure.c:1135 ../src/libs/metadata_view.c:143 msgid "exposure" msgstr "Экспозиция" @@ -4434,9 +4642,9 @@ #: ../build/lib/darktable/plugins/introspection_retouch.c:285 #: ../build/lib/darktable/plugins/introspection_retouch.c:426 -#: ../src/iop/basicadj.c:620 ../src/iop/channelmixerrgb.c:4617 -#: ../src/iop/colisa.c:305 ../src/iop/lowpass.c:587 ../src/iop/soften.c:377 -#: ../src/iop/vignette.c:970 ../src/libs/history.c:963 +#: ../src/iop/basicadj.c:650 ../src/iop/channelmixerrgb.c:4685 +#: ../src/iop/colisa.c:299 ../src/iop/lowpass.c:600 ../src/iop/soften.c:372 +#: ../src/iop/vignette.c:1057 ../src/libs/history.c:963 msgid "brightness" msgstr "Яркость" @@ -4446,7 +4654,7 @@ msgstr "max_iter" #: ../build/lib/darktable/plugins/introspection_retouch.c:444 -#: ../src/libs/metadata_view.c:329 +#: ../src/libs/metadata_view.c:333 msgid "unused" msgstr "Не используется" @@ -4459,12 +4667,12 @@ msgstr "Восстановление" #: ../build/lib/darktable/plugins/introspection_retouch.c:447 -#: ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2051 msgid "blur" msgstr "Размытие" #: ../build/lib/darktable/plugins/introspection_retouch.c:448 -#: ../src/iop/retouch.c:1865 +#: ../src/iop/retouch.c:2049 msgid "fill" msgstr "Заливка" @@ -4477,9 +4685,9 @@ msgstr "Стирание" #: ../build/lib/darktable/plugins/introspection_retouch.c:458 -#: ../src/gui/presets.c:59 ../src/iop/watermark.c:1298 -#: ../src/libs/colorpicker.c:291 ../src/libs/image.c:612 -#: ../src/libs/modulegroups.c:2317 +#: ../src/gui/presets.c:61 ../src/iop/watermark.c:1346 +#: ../src/libs/colorpicker.c:320 ../src/libs/image.c:683 +#: ../src/libs/modulegroups.c:2301 msgid "color" msgstr "Цвет" @@ -4515,45 +4723,93 @@ msgid "highlights color adjustment" msgstr "Цветность светов" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:70 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:141 -#: ../src/gui/accelerators.c:85 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:122 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:241 +#: ../src/gui/accelerators.c:101 msgid "skew" msgstr "перекос" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:76 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:145 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:128 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:245 msgid "target white" msgstr "Целевой белый" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:82 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:149 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:134 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:249 msgid "target black" msgstr "Целевой чёрный" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:88 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:153 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:140 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:253 msgid "color processing" msgstr "Обработка цвета" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:94 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:157 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:146 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:257 msgid "preserve hue" msgstr "Сохранять тона" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:171 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:152 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:261 +msgid "red attenuation" +msgstr "Ослабление красного" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:158 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:265 +msgid "red rotation" +msgstr "Вращение красного" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:164 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:269 +msgid "green attenuation" +msgstr "Ослабление зелёного" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:170 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:273 +msgid "green rotation" +msgstr "Вращение зеленого" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:176 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:277 +msgid "blue attenuation" +msgstr "Ослабление синего" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:182 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:281 +msgid "blue rotation" +msgstr "Вращение синего" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:188 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:285 +msgid "recover purity" +msgstr "Восстановить чистоту" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:194 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:289 +msgid "base primaries" +msgstr "Базовые первичные цвета" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:303 msgid "per channel" msgstr "Поканально" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:172 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:304 msgid "RGB ratio" msgstr "Коэффициент RGB" -#: ../build/lib/darktable/plugins/introspection_temperature.c:66 -#: ../build/lib/darktable/plugins/introspection_temperature.c:121 -#: ../src/iop/temperature.c:1941 -msgid "emerald" -msgstr "Изумрудный" +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:308 +#: ../src/common/colorspaces.c:1377 ../src/common/colorspaces.c:1734 +msgid "work profile" +msgstr "Рабочий профиль" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:309 +msgid "Rec2020" +msgstr "Rec2020" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:310 +#: ../src/common/colorspaces.c:1750 +msgid "Display P3" +msgstr "Монитор P3" #: ../build/lib/darktable/plugins/introspection_tonecurve.c:135 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:232 @@ -4675,13 +4931,13 @@ #: ../build/lib/darktable/plugins/introspection_tonemap.cc:39 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:88 -#: ../src/iop/rgbcurve.c:184 ../src/iop/tonecurve.c:539 +#: ../src/iop/rgbcurve.c:186 ../src/iop/tonecurve.c:560 msgid "contrast compression" msgstr "Сжатие контраста" #: ../build/lib/darktable/plugins/introspection_vibrance.c:33 #: ../build/lib/darktable/plugins/introspection_vibrance.c:76 -#: ../src/iop/basicadj.c:627 ../src/iop/vibrance.c:67 +#: ../src/iop/basicadj.c:657 ../src/iop/vibrance.c:67 msgid "vibrance" msgstr "Сочность" @@ -4717,7 +4973,7 @@ #: ../build/lib/darktable/plugins/introspection_vignette.c:146 #: ../build/lib/darktable/plugins/introspection_vignette.c:237 -#: ../src/iop/vignette.c:978 +#: ../src/iop/vignette.c:1066 msgid "shape" msgstr "Форма" @@ -4756,7 +5012,7 @@ #: ../build/lib/darktable/plugins/introspection_watermark.c:323 #: ../src/imageio/format/tiff.c:125 ../src/imageio/format/xcf.c:159 -#: ../src/iop/borders.c:947 +#: ../src/iop/borders.c:960 msgid "image" msgstr "Снимок" @@ -4768,12 +5024,6 @@ msgid "smaller border" msgstr "По меньшему краю" -#: ../build/lib/darktable/plugins/introspection_watermark.c:326 -#: ../src/libs/export.c:1135 ../src/libs/metadata_view.c:148 -#: ../src/libs/print_settings.c:2541 -msgid "height" -msgstr "Высота" - #: ../build/lib/darktable/plugins/introspection_watermark.c:327 msgid "advanced options" msgstr "Дополнительные опции" @@ -4802,23 +5052,23 @@ msgid "marker height" msgstr "Высота маркера" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:6 +#: ../build/bin/tools/darktable_authors.h:6 msgid "developers" msgstr "Разработчики" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:11 +#: ../build/bin/tools/darktable_authors.h:11 msgid "translators" msgstr "Переводчики" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:16 +#: ../build/bin/tools/darktable_authors.h:16 msgid "contributors" msgstr "Участники" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:21 +#: ../build/bin/tools/darktable_authors.h:21 msgid "rawspeed contributors" msgstr "Участники rawspeed" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:26 +#: ../build/bin/tools/darktable_authors.h:26 msgid "integration contributors" msgstr "участники интеграции" @@ -4884,90 +5134,104 @@ msgid "Print your images" msgstr "Печать снимков" -#: ../src/bauhaus/bauhaus.c:752 ../src/bauhaus/bauhaus.c:3689 +#: ../src/bauhaus/bauhaus.c:845 ../src/bauhaus/bauhaus.c:3957 msgid "sliders" msgstr "Ползунки" -#: ../src/bauhaus/bauhaus.c:753 ../src/bauhaus/bauhaus.c:3694 +#: ../src/bauhaus/bauhaus.c:847 ../src/bauhaus/bauhaus.c:3962 msgid "dropdowns" msgstr "Выпадающие списки" -#: ../src/bauhaus/bauhaus.c:754 ../src/bauhaus/bauhaus.c:3699 +#: ../src/bauhaus/bauhaus.c:849 ../src/bauhaus/bauhaus.c:3967 msgid "buttons" msgstr "Кнопки" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button on" msgstr "Кнопка включения" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button off" msgstr "Кнопка выключения" -#: ../src/bauhaus/bauhaus.c:3406 +#: ../src/bauhaus/bauhaus.c:3624 msgid "button pressed" msgstr "Кнопка нажата" -#: ../src/bauhaus/bauhaus.c:3623 +#: ../src/bauhaus/bauhaus.c:3862 msgid "not that many sliders" msgstr "Не так много ползунков" -#: ../src/bauhaus/bauhaus.c:3633 +#: ../src/bauhaus/bauhaus.c:3876 msgid "not that many dropdowns" msgstr "Не так много выпадающих списков" -#: ../src/bauhaus/bauhaus.c:3648 +#: ../src/bauhaus/bauhaus.c:3895 msgid "not that many buttons" msgstr "Не так много кнопок" -#: ../src/bauhaus/bauhaus.c:3653 ../src/gui/accelerators.c:348 +#: ../src/bauhaus/bauhaus.c:3900 ../src/gui/accelerators.c:389 msgid "value" msgstr "Значение" -#: ../src/bauhaus/bauhaus.c:3654 ../src/bauhaus/bauhaus.c:3660 -#: ../src/gui/accelerators.c:326 +#: ../src/bauhaus/bauhaus.c:3901 ../src/bauhaus/bauhaus.c:3907 +#: ../src/gui/accelerators.c:368 msgid "button" msgstr "Кнопка" -#: ../src/bauhaus/bauhaus.c:3655 +#: ../src/bauhaus/bauhaus.c:3902 msgid "force" msgstr "Сила" -#: ../src/bauhaus/bauhaus.c:3656 ../src/libs/navigation.c:187 -#: ../src/libs/navigation.c:199 +#: ../src/bauhaus/bauhaus.c:3903 ../src/libs/navigation.c:190 +#: ../src/libs/navigation.c:202 msgid "zoom" msgstr " Масштаб" -#: ../src/bauhaus/bauhaus.c:3659 +#: ../src/bauhaus/bauhaus.c:3906 ../src/libs/select.c:40 msgid "selection" msgstr "Выделение" -#: ../src/bauhaus/bauhaus.c:3678 +#: ../src/bauhaus/bauhaus.c:3946 msgid "slider" msgstr "Слайдер" -#: ../src/bauhaus/bauhaus.c:3683 +#: ../src/bauhaus/bauhaus.c:3951 msgid "dropdown" msgstr "Выпадающий список" -#: ../src/chart/main.c:504 ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 ../src/gui/accelerators.c:2278 -#: ../src/gui/accelerators.c:2355 ../src/gui/accelerators.c:2407 -#: ../src/gui/accelerators.c:2435 ../src/gui/accelerators.c:2495 -#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1043 -#: ../src/gui/preferences.c:1082 ../src/gui/presets.c:420 -#: ../src/gui/presets.c:563 ../src/gui/styles_dialog.c:519 -#: ../src/imageio/storage/disk.c:123 ../src/imageio/storage/gallery.c:110 -#: ../src/imageio/storage/latex.c:109 ../src/iop/lut3d.c:1546 -#: ../src/libs/collect.c:408 ../src/libs/copy_history.c:115 -#: ../src/libs/geotagging.c:928 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/styles.c:392 ../src/libs/styles.c:527 -#: ../src/libs/tagging.c:2489 ../src/libs/tagging.c:2525 +#: ../src/chart/main.c:504 ../src/common/database.c:3372 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 ../src/gui/accelerators.c:2497 +#: ../src/gui/accelerators.c:2579 ../src/gui/accelerators.c:2632 +#: ../src/gui/accelerators.c:2661 ../src/gui/accelerators.c:2723 +#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1081 ../src/gui/presets.c:422 +#: ../src/gui/presets.c:565 ../src/gui/styles_dialog.c:526 +#: ../src/imageio/storage/disk.c:198 ../src/imageio/storage/gallery.c:150 +#: ../src/imageio/storage/latex.c:146 ../src/iop/lut3d.c:1560 +#: ../src/libs/collect.c:425 ../src/libs/collect.c:3242 +#: ../src/libs/copy_history.c:115 ../src/libs/export_metadata.c:276 +#: ../src/libs/geotagging.c:929 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1711 +#: ../src/libs/metadata.c:462 ../src/libs/metadata_view.c:1222 +#: ../src/libs/recentcollect.c:228 ../src/libs/modulegroups.c:3466 +#: ../src/libs/styles.c:392 ../src/libs/styles.c:439 ../src/libs/styles.c:529 +#: ../src/libs/styles.c:624 ../src/libs/tagging.c:1488 +#: ../src/libs/tagging.c:1579 ../src/libs/tagging.c:1670 +#: ../src/libs/tagging.c:1806 ../src/libs/tagging.c:2085 +#: ../src/libs/tagging.c:2520 ../src/libs/tagging.c:2556 +#: ../src/libs/tagging.c:3502 msgid "_cancel" msgstr "_Отмена" -#: ../src/chart/main.c:504 ../src/gui/preferences.c:1082 -#: ../src/gui/styles_dialog.c:520 ../src/libs/styles.c:392 +#: ../src/chart/main.c:504 ../src/gui/preferences.c:1081 +#: ../src/gui/styles_dialog.c:527 ../src/libs/collect.c:3243 +#: ../src/libs/export_metadata.c:277 ../src/libs/metadata.c:463 +#: ../src/libs/metadata_view.c:1223 ../src/libs/recentcollect.c:229 +#: ../src/libs/styles.c:392 ../src/libs/tagging.c:1671 +#: ../src/libs/tagging.c:1807 ../src/libs/tagging.c:2086 +#: ../src/libs/tagging.c:3503 msgid "_save" msgstr "_Сохранить" @@ -4981,65 +5245,65 @@ "Средн. dE: %.02f\n" "Макс. dE: %.02f" -#: ../src/cli/main.c:247 +#: ../src/cli/main.c:270 msgid "TODO: sorry, due to API restrictions we currently cannot set the BPP to" msgstr "" "Извините, но из-за ограничений API установка BPP на данный момент не " "поддерживается" -#: ../src/cli/main.c:259 +#: ../src/cli/main.c:282 msgid "unknown option for --hq" msgstr "Неизвестный параметр для --hq" -#: ../src/cli/main.c:275 +#: ../src/cli/main.c:298 msgid "unknown option for --export_masks" msgstr "Неизвестный параметр для --export_masks" -#: ../src/cli/main.c:291 +#: ../src/cli/main.c:314 msgid "unknown option for --upscale" msgstr "Неизвестный параметр для --upscale" -#: ../src/cli/main.c:316 +#: ../src/cli/main.c:339 msgid "unknown option for --apply-custom-presets" msgstr "Неизвестный параметр для --apply-custom-presets" -#: ../src/cli/main.c:327 +#: ../src/cli/main.c:350 msgid "too long ext for --out-ext" msgstr "Слишком длинное расширение файла для --out-ext" -#: ../src/cli/main.c:344 +#: ../src/cli/main.c:367 #, c-format msgid "notice: input file or dir '%s' doesn't exist, skipping\n" msgstr "ВНИМАНИЕ: файл или каталог «%s» не найден!\n" -#: ../src/cli/main.c:353 +#: ../src/cli/main.c:376 #, c-format msgid "incorrect ICC type for --icc-type: '%s'\n" msgstr "Указан неверный тип ICC для --icc-type: «%s»\n" -#: ../src/cli/main.c:369 +#: ../src/cli/main.c:392 #, c-format msgid "notice: ICC file '%s' doesn't exist, skipping\n" msgstr "ВНИМАНИЕ: файл ICC «%s» не найден!\n" -#: ../src/cli/main.c:378 +#: ../src/cli/main.c:401 #, c-format msgid "incorrect ICC intent for --icc-intent: '%s'\n" msgstr "Указана неверная цветопередача для --icc-intent: «%s»\n" -#: ../src/cli/main.c:396 +#: ../src/cli/main.c:419 #, c-format msgid "warning: unknown option '%s'\n" msgstr "ВНИМАНИЕ: неизвестный параметр «.%s»\n" -#: ../src/cli/main.c:454 +#: ../src/cli/main.c:477 #, c-format msgid "error: input file and import opts specified! that's not supported!\n" msgstr "" "ВНИМАНИЕ: одновременное указание файла для загрузки и опций для импорта не " "поддерживается!\n" -#: ../src/cli/main.c:487 +#: ../src/cli/main.c:510 #, c-format msgid "" "notice: output location is a directory. assuming '%s/$(FILE_NAME).%s' output " @@ -5047,48 +5311,48 @@ msgstr "Сохранение в «%s/$(FILE_NAME).%s»" #. output file exists or there's output ext specified and it's same as file... -#: ../src/cli/main.c:502 +#: ../src/cli/main.c:525 msgid "output file already exists, it will get renamed" msgstr "Файл вывода уже существует и будет переименован" #. one of inputs was a failure, no prob -#: ../src/cli/main.c:532 +#: ../src/cli/main.c:555 #, c-format msgid "error: can't open folder %s" msgstr "Ошибка при открытии каталога «%s»!" -#: ../src/cli/main.c:549 +#: ../src/cli/main.c:572 #, c-format msgid "error: can't open file %s" msgstr "Ошибка при загрузке файла «%s»!" -#: ../src/cli/main.c:566 +#: ../src/cli/main.c:589 #, c-format msgid "no images to export, aborting\n" msgstr "Нет снимков для экспорта, операция прервана\n" -#: ../src/cli/main.c:583 +#: ../src/cli/main.c:606 #, c-format msgid "error: can't open XMP file %s" msgstr "Ошибка: невозможно открыть файл XMP %s" -#: ../src/cli/main.c:604 +#: ../src/cli/main.c:627 msgid "empty history stack" msgstr "Пустая история изменений" #. too long ext, no point in wasting time -#: ../src/cli/main.c:616 +#: ../src/cli/main.c:639 #, c-format msgid "too long output file extension: %s\n" msgstr "Слишком длинное расширение файла: «%s»\n" #. no ext or empty ext, no point in wasting time -#: ../src/cli/main.c:624 +#: ../src/cli/main.c:647 #, c-format msgid "no output file extension given\n" msgstr "Не указано расширения файла\n" -#: ../src/cli/main.c:663 +#: ../src/cli/main.c:692 msgid "" "cannot find disk storage module. please check your installation, something " "seems to be broken." @@ -5096,16 +5360,16 @@ "Невозможно найти модуль сохранения на диск. Проверьте установку программы, " "что-то явно сломалось." -#: ../src/cli/main.c:673 +#: ../src/cli/main.c:702 msgid "failed to get parameters from storage module, aborting export ..." msgstr "Ошибка получения параметров модуля сохранения! Экспорт прерван." -#: ../src/cli/main.c:689 +#: ../src/cli/main.c:718 #, c-format msgid "unknown extension '.%s'" msgstr "Неизвестное расширение «.%s»" -#: ../src/cli/main.c:699 +#: ../src/cli/main.c:728 msgid "failed to get parameters from format module, aborting export ..." msgstr "Ошибка получения параметров модуля формата! Экспорт прерван." @@ -5153,194 +5417,200 @@ "Убедитесь, что она уже не смонтирована и у вас есть соответствующие права " "доступа." -#: ../src/common/collection.c:673 +#: ../src/common/collection.c:586 msgid "too much time to update aspect ratio for the collection" msgstr "" "Обновление информации о соотношении сторон занимает продолжительное время" -#: ../src/common/collection.c:688 +#: ../src/common/collection.c:601 msgid "film roll" msgstr "Съёмка" -#: ../src/common/collection.c:690 +#: ../src/common/collection.c:603 msgid "folder" msgstr "Каталог" -#: ../src/common/collection.c:692 +#: ../src/common/collection.c:605 msgid "camera" msgstr "Камера" -#: ../src/common/collection.c:694 ../src/libs/export_metadata.c:189 -#: ../src/libs/tagging.c:3281 +#: ../src/common/collection.c:607 ../src/libs/export_metadata.c:176 +#: ../src/libs/tagging.c:3312 msgid "tag" msgstr "Метка" -#: ../src/common/collection.c:696 +#: ../src/common/collection.c:609 msgid "capture date" msgstr "Дата захвата" -#: ../src/common/collection.c:698 ../src/libs/filtering.c:61 +#: ../src/common/collection.c:611 ../src/libs/filtering.c:61 msgid "capture time" msgstr "Время захвата" -#: ../src/common/collection.c:700 ../src/libs/filtering.c:62 +#: ../src/common/collection.c:613 ../src/libs/filtering.c:62 msgid "import time" msgstr "Время импорта" -#: ../src/common/collection.c:702 ../src/libs/filtering.c:63 +#: ../src/common/collection.c:615 ../src/libs/filtering.c:63 msgid "modification time" msgstr "Время модификации" -#: ../src/common/collection.c:704 ../src/libs/filtering.c:64 +#: ../src/common/collection.c:617 ../src/libs/filtering.c:64 msgid "export time" msgstr "Время экспорта" -#: ../src/common/collection.c:706 ../src/libs/filtering.c:65 +#: ../src/common/collection.c:619 ../src/libs/filtering.c:65 msgid "print time" msgstr "Время печати" -#: ../src/common/collection.c:708 ../src/libs/collect.c:3222 -#: ../src/libs/filtering.c:2163 ../src/libs/filtering.c:2183 +#: ../src/common/collection.c:621 ../src/libs/collect.c:3586 +#: ../src/libs/filtering.c:2237 ../src/libs/filtering.c:2257 #: ../src/libs/filters/history.c:153 ../src/libs/history.c:92 msgid "history" msgstr "История" -#: ../src/common/collection.c:710 ../src/common/colorlabels.c:342 -#: ../src/develop/lightroom.c:1550 ../src/dtgtk/thumbnail.c:1560 +#: ../src/common/collection.c:623 ../src/common/colorlabels.c:341 +#: ../src/develop/lightroom.c:1607 ../src/dtgtk/thumbnail.c:1548 #: ../src/libs/filtering.c:68 ../src/libs/filters/colors.c:301 #: ../src/libs/filters/colors.c:312 ../src/libs/tools/colorlabels.c:93 msgid "color label" msgstr "Цветовая метка" #. iso -#: ../src/common/collection.c:716 ../src/gui/preferences.c:832 -#: ../src/gui/presets.c:666 ../src/libs/camera.c:558 -#: ../src/libs/metadata_view.c:145 +#: ../src/common/collection.c:629 ../src/gui/preferences.c:830 +#: ../src/gui/presets.c:669 ../src/libs/camera.c:558 +#: ../src/libs/metadata_view.c:149 msgid "ISO" msgstr "ISO" #. aperture -#: ../src/common/collection.c:718 ../src/gui/preferences.c:840 -#: ../src/gui/presets.c:701 ../src/libs/camera.c:545 ../src/libs/camera.c:547 -#: ../src/libs/metadata_view.c:140 +#: ../src/common/collection.c:631 ../src/gui/preferences.c:838 +#: ../src/gui/presets.c:704 ../src/libs/camera.c:545 ../src/libs/camera.c:547 +#: ../src/libs/metadata_view.c:142 msgid "aperture" msgstr "Диафрагма" -#: ../src/common/collection.c:724 ../src/libs/filtering.c:57 -#: ../src/libs/filters/filename.c:364 ../src/libs/metadata_view.c:126 +#: ../src/common/collection.c:637 ../src/libs/filtering.c:57 +#: ../src/libs/filters/filename.c:369 ../src/libs/metadata_view.c:128 msgid "filename" msgstr "Файл" -#: ../src/common/collection.c:726 ../src/develop/lightroom.c:1541 +#: ../src/common/collection.c:639 ../src/develop/lightroom.c:1598 #: ../src/libs/geotagging.c:141 msgid "geotagging" msgstr "Геотеггинг" -#: ../src/common/collection.c:728 ../src/libs/filters/grouping.c:167 +#: ../src/common/collection.c:641 ../src/libs/filters/grouping.c:167 #: ../src/libs/tools/global_toolbox.c:394 msgid "grouping" msgstr "Группирование" -#: ../src/common/collection.c:730 ../src/dtgtk/thumbnail.c:1575 -#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:129 -#: ../src/libs/metadata_view.c:336 +#: ../src/common/collection.c:643 ../src/dtgtk/thumbnail.c:1563 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:340 msgid "local copy" msgstr "Локальная копия" -#: ../src/common/collection.c:732 ../src/gui/preferences.c:808 +#: ../src/common/collection.c:645 ../src/gui/preferences.c:806 msgid "module" msgstr "Модуль" -#: ../src/common/collection.c:734 ../src/gui/hist_dialog.c:346 -#: ../src/gui/styles_dialog.c:722 ../src/gui/styles_dialog.c:771 +#: ../src/common/collection.c:647 ../src/gui/hist_dialog.c:346 +#: ../src/gui/styles_dialog.c:734 ../src/gui/styles_dialog.c:783 #: ../src/libs/filters/module_order.c:161 ../src/libs/ioporder.c:39 msgid "module order" msgstr "Порядок модулей" -#: ../src/common/collection.c:736 +#: ../src/common/collection.c:649 msgid "range rating" msgstr "Оценка диапазона" -#: ../src/common/collection.c:738 ../src/common/ratings.c:322 -#: ../src/develop/lightroom.c:1525 ../src/libs/filtering.c:67 +#: ../src/common/collection.c:651 ../src/common/ratings.c:321 +#: ../src/develop/lightroom.c:1582 ../src/libs/filtering.c:67 #: ../src/libs/tools/ratings.c:110 msgid "rating" msgstr "Оценка" -#: ../src/common/collection.c:740 +#: ../src/common/collection.c:653 msgid "search" msgstr "Поиск" -#: ../src/common/collection.c:1509 ../src/common/colorlabels.c:335 -#: ../src/develop/lightroom.c:836 ../src/gui/guides.c:732 -#: ../src/iop/colorzones.c:2265 ../src/iop/temperature.c:1925 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:261 +#: ../src/common/collection.c:1376 ../src/common/colorlabels.c:334 +#: ../src/develop/lightroom.c:889 ../src/gui/guides.c:732 +#: ../src/iop/colorzones.c:2501 ../src/iop/temperature.c:1902 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:261 msgid "yellow" msgstr "Жёлтый" -#: ../src/common/collection.c:1515 ../src/common/color_vocabulary.c:339 -#: ../src/common/colorlabels.c:338 ../src/iop/colorzones.c:2269 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:264 +#: ../src/common/collection.c:1382 ../src/common/color_vocabulary.c:339 +#: ../src/common/colorlabels.c:337 ../src/iop/colorzones.c:2505 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:264 msgid "purple" msgstr "Пурпурный" -#: ../src/common/collection.c:1532 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1400 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "auto applied" msgstr "Авто" -#: ../src/common/collection.c:1536 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1406 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "altered" msgstr "Изменённые" -#: ../src/common/collection.c:1553 ../src/common/collection.c:1649 -#: ../src/libs/collect.c:1166 ../src/libs/collect.c:1330 -#: ../src/libs/collect.c:1354 ../src/libs/collect.c:1473 -#: ../src/libs/collect.c:2432 +#: ../src/common/collection.c:1424 ../src/common/collection.c:1535 +#: ../src/libs/collect.c:1242 ../src/libs/collect.c:1426 +#: ../src/libs/collect.c:1452 ../src/libs/collect.c:1592 +#: ../src/libs/collect.c:2662 msgid "not tagged" msgstr "Без меток" -#: ../src/common/collection.c:1554 ../src/libs/collect.c:1354 +#: ../src/common/collection.c:1425 ../src/libs/collect.c:1452 #: ../src/libs/map_locations.c:742 msgid "tagged" msgstr "Помеченные" -#: ../src/common/collection.c:1555 +#: ../src/common/collection.c:1426 msgid "tagged*" msgstr "Помеченные*" #. local copy -#: ../src/common/collection.c:1588 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1460 ../src/libs/collect.c:1883 #: ../src/libs/filters/local_copy.c:38 msgid "not copied locally" msgstr "Нет локальных копий" -#: ../src/common/collection.c:1592 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1465 ../src/libs/collect.c:1882 #: ../src/libs/filters/local_copy.c:38 msgid "copied locally" msgstr "Локальная копия" -#: ../src/common/collection.c:1974 ../src/libs/collect.c:1879 +#. if its undefined +#: ../src/common/collection.c:1507 ../src/common/collection.c:1619 +#: ../src/libs/collect.c:2209 ../src/libs/collect.c:2210 +msgid "unnamed" +msgstr "Безымянный" + +#: ../src/common/collection.c:1905 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:147 ../src/libs/filters/grouping.c:170 msgid "group leaders" msgstr "Лидеры группы" -#: ../src/common/collection.c:1978 ../src/libs/collect.c:1879 +#: ../src/common/collection.c:1909 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:150 ../src/libs/filters/grouping.c:170 msgid "group followers" msgstr "Члены группы" -#: ../src/common/collection.c:2126 ../src/libs/collect.c:1959 +#: ../src/common/collection.c:2066 ../src/libs/collect.c:2100 msgid "not defined" msgstr "Не определено" -#: ../src/common/collection.c:2575 +#: ../src/common/collection.c:2521 #, c-format msgid "<b>%d</b> image (#<b>%d</b>) selected of <b>%d</b>" msgstr "Выбрано: <b>%d</b> снимок (#<b>%d</b>) из <b>%d</b>" -#: ../src/common/collection.c:2582 +#: ../src/common/collection.c:2528 #, c-format msgid "<b>%d</b> image selected of <b>%d</b>" msgid_plural "<b>%d</b> images selected of <b>%d</b>" @@ -5348,10 +5618,10 @@ msgstr[1] "Выбрано: <b>%d</b> снимков из <b>%d</b>" msgstr[2] "Выбрано: <b>%d</b> снимков из <b>%d</b>" -#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2324 -#: ../src/develop/blend_gui.c:2372 ../src/gui/guides.c:729 -#: ../src/iop/channelmixerrgb.c:4620 ../src/iop/levels.c:671 -#: ../src/iop/rgblevels.c:937 ../src/iop/rgblevels.c:1032 +#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2340 +#: ../src/develop/blend_gui.c:2388 ../src/gui/guides.c:729 +#: ../src/iop/channelmixerrgb.c:4688 ../src/iop/levels.c:687 +#: ../src/iop/rgblevels.c:969 ../src/iop/rgblevels.c:1083 msgid "gray" msgstr "Серый" @@ -5560,12 +5830,12 @@ msgstr "Темный зелено-голубой" #: ../src/common/color_vocabulary.c:297 ../src/common/color_vocabulary.c:317 -#: ../src/iop/colorzones.c:2267 +#: ../src/iop/colorzones.c:2503 msgid "aqua" msgstr "Вода" #: ../src/common/color_vocabulary.c:298 ../src/gui/guides.c:733 -#: ../src/iop/temperature.c:1923 +#: ../src/iop/temperature.c:1900 msgid "cyan" msgstr "Сине-зелёный" @@ -5631,7 +5901,7 @@ msgstr "Темный маджента" #: ../src/common/color_vocabulary.c:341 ../src/gui/guides.c:734 -#: ../src/iop/colorzones.c:2270 ../src/iop/temperature.c:1921 +#: ../src/iop/colorzones.c:2506 ../src/iop/temperature.c:1898 msgid "magenta" msgstr "Пурпурный" @@ -5643,136 +5913,131 @@ msgid "color not found" msgstr "Цвет не найден" -#: ../src/common/colorlabels.c:310 +#: ../src/common/colorlabels.c:309 #, c-format msgid "colorlabels set to %s" msgstr "Выставлена цветовая метка %s" -#: ../src/common/colorlabels.c:312 +#: ../src/common/colorlabels.c:311 msgid "all colorlabels removed" msgstr "Цветовые метки удалены" -#: ../src/common/colorlabels.c:333 ../src/gui/accelerators.c:170 -#: ../src/libs/image.c:592 +#: ../src/common/colorlabels.c:332 ../src/gui/accelerators.c:188 +#: ../src/libs/image.c:660 msgid "clear" msgstr "Очистить" -#. init the category profile with NULL profile, the actual profile must be retrieved dynamically by the caller -#: ../src/common/colorspaces.c:1229 ../src/common/colorspaces.c:1518 -msgid "work profile" -msgstr "Рабочий профиль" - -#: ../src/common/colorspaces.c:1232 ../src/common/colorspaces.c:1514 -#: ../src/iop/colorout.c:885 +#: ../src/common/colorspaces.c:1382 ../src/common/colorspaces.c:1730 +#: ../src/iop/colorout.c:901 msgid "export profile" msgstr "Профиль вывода" -#: ../src/common/colorspaces.c:1236 ../src/common/colorspaces.c:1516 -#: ../src/views/darkroom.c:2542 +#: ../src/common/colorspaces.c:1387 ../src/common/colorspaces.c:1732 +#: ../src/views/darkroom.c:2383 msgid "softproof profile" msgstr "Профиль цветопробы" -#: ../src/common/colorspaces.c:1242 ../src/common/colorspaces.c:1498 +#: ../src/common/colorspaces.c:1397 ../src/common/colorspaces.c:1714 msgid "system display profile" msgstr "Профиль монитора" -#: ../src/common/colorspaces.c:1245 ../src/common/colorspaces.c:1520 +#: ../src/common/colorspaces.c:1402 ../src/common/colorspaces.c:1736 msgid "system display profile (second window)" msgstr "Профиль монитора (второй)" -#: ../src/common/colorspaces.c:1255 +#: ../src/common/colorspaces.c:1415 msgid "sRGB (web-safe)" msgstr "sRGB (для веб)" -#: ../src/common/colorspaces.c:1269 ../src/common/colorspaces.c:1522 +#: ../src/common/colorspaces.c:1435 ../src/common/colorspaces.c:1738 msgid "Rec709 RGB" msgstr "Rec709 RGB" -#: ../src/common/colorspaces.c:1279 +#: ../src/common/colorspaces.c:1450 msgid "PQ Rec2020 RGB" msgstr "PQ Rec2020 RGB" -#: ../src/common/colorspaces.c:1284 +#: ../src/common/colorspaces.c:1458 msgid "HLG Rec2020 RGB" msgstr "HLG Rec2020 RGB" -#: ../src/common/colorspaces.c:1289 +#: ../src/common/colorspaces.c:1465 msgid "PQ P3 RGB" msgstr "PQ P3 RGB" -#: ../src/common/colorspaces.c:1294 +#: ../src/common/colorspaces.c:1471 msgid "HLG P3 RGB" msgstr "HLG P3 RGB" -#: ../src/common/colorspaces.c:1299 ../src/common/colorspaces.c:1524 -msgid "linear ProPhoto RGB" -msgstr "ProPhoto RGB (линейн.)" +#: ../src/common/colorspaces.c:1478 +msgid "Display P3 RGB" +msgstr "Монитор P3 RGB" -#: ../src/common/colorspaces.c:1304 ../src/common/colorspaces.c:1492 +#: ../src/common/colorspaces.c:1493 ../src/common/colorspaces.c:1708 msgid "linear XYZ" msgstr "XYZ (линейн.)" -#: ../src/common/colorspaces.c:1308 ../src/common/colorspaces.c:1494 -#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2000 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:267 +#: ../src/common/colorspaces.c:1500 ../src/common/colorspaces.c:1710 +#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2016 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:293 msgid "Lab" msgstr "Lab" -#: ../src/common/colorspaces.c:1313 ../src/common/colorspaces.c:1496 +#: ../src/common/colorspaces.c:1508 ../src/common/colorspaces.c:1712 msgid "linear infrared BGR" msgstr "Инфракрасный BGR (линейн.)" -#: ../src/common/colorspaces.c:1317 +#: ../src/common/colorspaces.c:1513 msgid "BRG (for testing)" msgstr "BRG (тестирование)" -#: ../src/common/colorspaces.c:1409 +#: ../src/common/colorspaces.c:1619 #, c-format msgid "" "profile `%s' not usable as histogram profile. it has been replaced by sRGB!" msgstr "Профиль гистограммы «%s» не может быть использован и заменён на sRGB!" -#: ../src/common/colorspaces.c:1500 +#: ../src/common/colorspaces.c:1716 msgid "embedded ICC profile" msgstr "Встроенный ICC профиль" -#: ../src/common/colorspaces.c:1502 +#: ../src/common/colorspaces.c:1718 msgid "embedded matrix" msgstr "Встроенная матрица" -#: ../src/common/colorspaces.c:1504 +#: ../src/common/colorspaces.c:1720 msgid "standard color matrix" msgstr "Стандартная матрица" -#: ../src/common/colorspaces.c:1506 +#: ../src/common/colorspaces.c:1722 msgid "enhanced color matrix" msgstr "Улучшенная матрица" -#: ../src/common/colorspaces.c:1508 +#: ../src/common/colorspaces.c:1724 msgid "vendor color matrix" msgstr "От производителя" -#: ../src/common/colorspaces.c:1510 +#: ../src/common/colorspaces.c:1726 msgid "alternate color matrix" msgstr "Альтернативная матрица" -#: ../src/common/colorspaces.c:1512 +#: ../src/common/colorspaces.c:1728 msgid "BRG (experimental)" msgstr "BRG (тестирование)" -#: ../src/common/colorspaces.c:1526 +#: ../src/common/colorspaces.c:1742 msgid "PQ Rec2020" msgstr "PQ Rec2020" -#: ../src/common/colorspaces.c:1528 +#: ../src/common/colorspaces.c:1744 msgid "HLG Rec2020" msgstr "HLG Rec2020" -#: ../src/common/colorspaces.c:1530 +#: ../src/common/colorspaces.c:1746 msgid "PQ P3" msgstr "PQ P3" -#: ../src/common/colorspaces.c:1532 +#: ../src/common/colorspaces.c:1748 msgid "HLG P3" msgstr "HLG P3" @@ -5800,40 +6065,40 @@ msgid "printing `%s' on `%s'" msgstr "Печать снимка «%s» на «%s»" -#: ../src/common/darktable.c:250 +#: ../src/common/darktable.c:375 #, c-format msgid "found strange path `%s'" msgstr "Найден сомнительный путь «%s»" -#: ../src/common/darktable.c:265 +#: ../src/common/darktable.c:390 #, c-format msgid "error loading directory `%s'" msgstr "Ошибка при загрузке каталога «%s»!" -#: ../src/common/darktable.c:289 +#: ../src/common/darktable.c:414 #, c-format msgid "file `%s' has unknown format!" msgstr "Неизвестный формат файла «%s»!" -#: ../src/common/darktable.c:302 ../src/control/jobs/control_jobs.c:2118 -#: ../src/control/jobs/control_jobs.c:2177 +#: ../src/common/darktable.c:427 ../src/control/jobs/control_jobs.c:2121 +#: ../src/control/jobs/control_jobs.c:2180 #, c-format msgid "error loading file `%s'" msgstr "Ошибка при загрузке файла «%s»!" -#: ../src/common/darktable.c:1509 +#: ../src/common/darktable.c:1650 msgid "configuration information" msgstr "Информация о конфигурации" -#: ../src/common/darktable.c:1511 -msgid "show this information again" +#: ../src/common/darktable.c:1652 +msgid "_show this information again" msgstr "Показать эту информацию еще раз" -#: ../src/common/darktable.c:1511 -msgid "understood" +#: ../src/common/darktable.c:1652 +msgid "_understood" msgstr "Понятно" -#: ../src/common/darktable.c:1968 +#: ../src/common/darktable.c:2106 msgid "" "the RCD demosaicer has been defined as default instead of PPG because of " "better quality and performance." @@ -5841,11 +6106,11 @@ "RCD был установлен в качестве алгоритма дебайеризации по умолчанию вместо " "PPG, так как дает более высокое качество и производительность." -#: ../src/common/darktable.c:1970 +#: ../src/common/darktable.c:2108 msgid "see preferences/darkroom/demosaicing for zoomed out darkroom mode" msgstr "Откройте Настройки/Обработка/Алгоритм дебайеризации" -#: ../src/common/darktable.c:1976 +#: ../src/common/darktable.c:2114 msgid "" "the user interface and the underlying internals for tuning darktable " "performance have changed." @@ -5853,21 +6118,21 @@ "Изменились пользовательский интерфейс и базовые компоненты для настройки " "производительности Darktable." -#: ../src/common/darktable.c:1978 +#: ../src/common/darktable.c:2116 msgid "" "you won't find headroom and friends any longer, instead in preferences/" "processing use:" msgstr "Теперь в разделе Настройки/Обработка вы можете использовать:" -#: ../src/common/darktable.c:1980 +#: ../src/common/darktable.c:2118 msgid "1) darktable resources" msgstr "1) Настройки darktable" -#: ../src/common/darktable.c:1982 +#: ../src/common/darktable.c:2120 msgid "2) tune OpenCL performance" msgstr "2) Настройки производительности OpenCL" -#: ../src/common/darktable.c:1989 +#: ../src/common/darktable.c:2127 msgid "" "some global config parameters relevant for OpenCL performance are not used " "any longer." @@ -5875,34 +6140,35 @@ "Некоторые значения глобальных настроек, относящиеся к производительности " "OpenCL, больше не используются." -#: ../src/common/darktable.c:1991 +#: ../src/common/darktable.c:2129 msgid "" -"instead you will find 'per device' data in 'cl_device_v4_canonical-name'. " +"instead you will find 'per device' data in 'cldevice_v5_canonical-name'. " "content is:" msgstr "" -"Вместо этого вы найдете данные «по устройству» в «cl_device_v4_canonical-" +"Вместо этого вы найдете данные «по устройству» в «cldevice_v5_canonical-" "name». Содержание:" -#: ../src/common/darktable.c:1993 ../src/common/darktable.c:2012 +#: ../src/common/darktable.c:2131 ../src/common/darktable.c:2150 +#: ../src/common/darktable.c:2165 msgid "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" msgstr "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" -#: ../src/common/darktable.c:1995 ../src/common/darktable.c:2014 +#: ../src/common/darktable.c:2133 ../src/common/darktable.c:2152 msgid "you may tune as before except 'magic'" msgstr "Все настраивается, как раньше, кроме magic" -#: ../src/common/darktable.c:2001 +#: ../src/common/darktable.c:2139 msgid "" "your OpenCL compiler settings for all devices have been reset to default." msgstr "" "Настройки вашего компилятора OpenCL для всех устройств были сброшены до " "значений по умолчанию." -#: ../src/common/darktable.c:2008 +#: ../src/common/darktable.c:2146 msgid "" "OpenCL global config parameters 'per device' data has been recreated with an " "updated name." @@ -5910,14 +6176,14 @@ "Данные глобальных параметров конфигурации OpenCL \"по устройству\" были " "воссозданы заново с обновленным именем." -#: ../src/common/darktable.c:2010 +#: ../src/common/darktable.c:2148 ../src/common/darktable.c:2163 msgid "" -"you will find 'per device' data in 'cl_device_v5_canonical-name'. content is:" +"you will find 'per device' data in 'cldevice_v5_canonical-name'. content is:" msgstr "" "Вместо этого вы найдете данные «по устройству» в «cl_device_v4_canonical-" "name». Содержание:" -#: ../src/common/darktable.c:2016 +#: ../src/common/darktable.c:2154 msgid "" "If you're using device names in 'opencl_device_priority' you should update " "them to the new names." @@ -5925,7 +6191,22 @@ "Если вы используете имена устройств в 'opencl_device_priority', вам следует " "обновить имена." -#: ../src/common/database.c:2756 +#: ../src/common/darktable.c:2161 +msgid "" +"OpenCL 'per device' config data have been automatically extended by 'unified-" +"fraction'." +msgstr "" +"Конфигурационные данные OpenCL \"по устройству\" были автоматически " +"расширены с помощью \"unified-fraction\"." + +#: ../src/common/darktable.c:2172 +msgid "" +"OpenCL 'per device' compiler settings might have been updated.\n" +"\n" +msgstr "" +"Возможно, были обновлены настройки компилятора OpenCL \"по устройству\".\n" + +#: ../src/common/database.c:3350 #, c-format msgid "" "\n" @@ -5977,30 +6258,19 @@ "проверки, это может привести к серьёзным проблемам в работе darktable.</i>\n" #. clang-format on -#: ../src/common/database.c:2777 +#: ../src/common/database.c:3371 msgid "error starting darktable" msgstr "Ошибка запуска darktable" -#: ../src/common/database.c:2778 ../src/libs/collect.c:2915 -#: ../src/libs/export_metadata.c:288 ../src/libs/import.c:1702 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:227 ../src/libs/modulegroups.c:3464 -#: ../src/libs/styles.c:438 ../src/libs/styles.c:621 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3471 -msgid "cancel" -msgstr "Отменить" - -#: ../src/common/database.c:2778 -msgid "delete database lock files" +#: ../src/common/database.c:3372 +msgid "_delete database lock files" msgstr "Удалить" -#: ../src/common/database.c:2784 +#: ../src/common/database.c:3378 msgid "are you sure?" msgstr "Вы уверены?" -#: ../src/common/database.c:2785 +#: ../src/common/database.c:3379 msgid "" "\n" "do you really want to delete the lock files?\n" @@ -6008,20 +6278,19 @@ "\n" "Вы действительно хотите удалить файлы блокировки базы данных?\n" -#: ../src/common/database.c:2785 ../src/common/variables.c:703 -#: ../src/develop/imageop_gui.c:210 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 -msgid "yes" -msgstr "Да" +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2597 +msgid "_no" +msgstr "_нет" + +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2596 +msgid "_yes" +msgstr "_да" -#: ../src/common/database.c:2801 ../src/libs/export_metadata.c:164 -#: ../src/libs/geotagging.c:811 +#: ../src/common/database.c:3395 msgid "done" msgstr "Готово" -#: ../src/common/database.c:2802 +#: ../src/common/database.c:3396 msgid "" "\n" "successfully deleted the lock files.\n" @@ -6031,17 +6300,17 @@ "Файлы блокировки базы данных успешно удалены.\n" "Перезапустите darktable.\n" -#. the button to close the popup -#: ../src/common/database.c:2803 ../src/common/database.c:2810 -#: ../src/libs/filters/filename.c:452 -msgid "ok" -msgstr "OK" +#: ../src/common/database.c:3397 ../src/common/database.c:3404 +#: ../src/gui/accelerators.c:2580 ../src/gui/accelerators.c:2662 +#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:566 +msgid "_ok" +msgstr "_ОК" -#: ../src/common/database.c:2806 +#: ../src/common/database.c:3400 msgid "error" msgstr "Ошибка" -#: ../src/common/database.c:2807 +#: ../src/common/database.c:3401 #, c-format msgid "" "\n" @@ -6056,25 +6325,50 @@ "<i>library.db.lock</i>\n" "в каталоге <a href=\"file:///%s\">%s</a>.\n" -#: ../src/common/database.c:2924 +#: ../src/common/database.c:3518 #, c-format msgid "" "the database lock file contains a pid that seems to be alive in your system: " "%d" msgstr "Файл блокировки базы данных содержит PID активного процесса: %d" -#: ../src/common/database.c:2931 +#: ../src/common/database.c:3525 #, c-format msgid "the database lock file seems to be empty" msgstr "Файл блокировки базы данных пуст" -#: ../src/common/database.c:2941 +#: ../src/common/database.c:3535 #, c-format msgid "error opening the database lock file for reading: %s" msgstr "Ошибка чтения файла блокировки базы данных: «%s»!" +#: ../src/common/database.c:3605 +#, c-format +msgid "" +"the database schema version of\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"is too new for this build of darktable (this means the database was created " +"or upgraded by a newer darktable version)\n" +msgstr "" +"Версия схемы базы данных\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"слишком новая для данного билда darktable (это означает, что база данных " +"была создана или обновлена более новой версией darktable)\n" + +#: ../src/common/database.c:3612 +msgid "darktable - too new db version" +msgstr "darktable — слишком новая версия базы данных" + +#: ../src/common/database.c:3613 +msgid "_quit darktable" +msgstr "Выйти из darktable" + #. the database has to be upgraded, let's ask user -#: ../src/common/database.c:2978 +#: ../src/common/database.c:3628 #, c-format msgid "" "the database schema has to be upgraded for\n" @@ -6091,21 +6385,21 @@ "\n" "Обновить формат или выйти для создания резервной копии?\n" -#: ../src/common/database.c:2986 +#: ../src/common/database.c:3636 msgid "darktable - schema migration" msgstr "darktable — обновление базы данных" -#: ../src/common/database.c:2987 ../src/common/database.c:3306 -#: ../src/common/database.c:3324 ../src/common/database.c:3491 -#: ../src/common/database.c:3509 -msgid "close darktable" -msgstr "Выйти" - -#: ../src/common/database.c:2987 -msgid "upgrade database" -msgstr "Обновить" +#: ../src/common/database.c:3637 ../src/common/database.c:3959 +#: ../src/common/database.c:3974 ../src/common/database.c:4142 +#: ../src/common/database.c:4157 +msgid "_close darktable" +msgstr "Закрыть darktable" + +#: ../src/common/database.c:3637 +msgid "_upgrade database" +msgstr "Обновить базу данных" -#: ../src/common/database.c:3286 ../src/common/database.c:3471 +#: ../src/common/database.c:3939 ../src/common/database.c:4122 #, c-format msgid "" "quick_check said:\n" @@ -6114,21 +6408,21 @@ "Результат быстрой проверки:\n" "%s \n" -#: ../src/common/database.c:3303 ../src/common/database.c:3321 -#: ../src/common/database.c:3488 ../src/common/database.c:3506 +#: ../src/common/database.c:3956 ../src/common/database.c:3971 +#: ../src/common/database.c:4139 ../src/common/database.c:4154 msgid "darktable - error opening database" msgstr "darktable — ошибка открытия базы данных" -#: ../src/common/database.c:3308 ../src/common/database.c:3493 -msgid "attempt restore" +#: ../src/common/database.c:3960 ../src/common/database.c:4143 +msgid "_attempt restore" msgstr "Восстановить базу данных" -#: ../src/common/database.c:3310 ../src/common/database.c:3326 -#: ../src/common/database.c:3495 ../src/common/database.c:3511 -msgid "delete database" +#: ../src/common/database.c:3961 ../src/common/database.c:3975 +#: ../src/common/database.c:4144 ../src/common/database.c:4158 +msgid "_delete database" msgstr "Удалить базу данных" -#: ../src/common/database.c:3314 ../src/common/database.c:3499 +#: ../src/common/database.c:3964 ../src/common/database.c:4147 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup, attempt an automatic restore\n" @@ -6139,7 +6433,7 @@ "данных из резервной копии, попытаться автоматически восстановить\n" "базу данных из наиболее свежей резервной копии или создать новую?" -#: ../src/common/database.c:3330 ../src/common/database.c:3515 +#: ../src/common/database.c:3978 ../src/common/database.c:4161 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup or delete the corrupted database\n" @@ -6148,7 +6442,7 @@ "Хотите ли вы закрыть darktable, чтобы вручную восстановить базу\n" "данных из резервной копии или создать новую?" -#: ../src/common/database.c:3337 ../src/common/database.c:3520 +#: ../src/common/database.c:3985 ../src/common/database.c:4166 #, c-format msgid "" "an error has occurred while trying to open the database from\n" @@ -6173,12 +6467,12 @@ "Ведущий нейтральный фильтр: ошибка выделения памяти! Проверьте настройки " "памяти." -#: ../src/common/exif.cc:5200 +#: ../src/common/exif.cc:5482 #, c-format msgid "cannot read XMP file '%s': '%s'" msgstr "Ошибка чтения файла XMP «%s»: «%s»" -#: ../src/common/exif.cc:5258 +#: ../src/common/exif.cc:5540 #, c-format msgid "cannot write XMP file '%s': '%s'" msgstr "Ошибка записи файла XMP «%s»: «%s»" @@ -6188,44 +6482,44 @@ msgstr "" "Управляемый фильтр: ошибка выделения памяти! Проверьте настройки памяти." -#: ../src/common/film.c:345 +#: ../src/common/film.c:356 msgid "do you want to remove this empty directory?" msgid_plural "do you want to remove these empty directories?" msgstr[0] "Вы действительно хотите удалить этот пустой каталог?" msgstr[1] "Вы действительно хотите удалить эти пустые каталоги?" msgstr[2] "Вы действительно хотите удалить эти пустые каталоги?" -#: ../src/common/film.c:352 +#: ../src/common/film.c:363 msgid "remove empty directory?" msgid_plural "remove empty directories?" msgstr[0] "Удаление пустого каталога" msgstr[1] "Удаление пустых каталогов" msgstr[2] "Удаление пустых каталогов" -#: ../src/common/film.c:371 ../src/gui/preferences.c:816 -#: ../src/gui/styles_dialog.c:548 ../src/libs/geotagging.c:829 -#: ../src/libs/import.c:1551 +#: ../src/common/film.c:383 ../src/gui/preferences.c:814 +#: ../src/gui/styles_dialog.c:556 ../src/libs/geotagging.c:830 +#: ../src/libs/import.c:1560 msgid "name" msgstr "Имя" -#: ../src/common/film.c:477 +#: ../src/common/film.c:492 msgid "" "cannot remove film roll having local copies with non accessible originals" msgstr "" "Невозможно удалить ленту снимков с локальными копиями и недоступными " "оригиналами" -#: ../src/common/history.c:840 +#: ../src/common/history.c:876 msgid "you need to copy history from an image before you paste it onto another" msgstr "" "Скопируйте историю изменений с одного снимка, чтобы применить её к другому " "снимку" -#: ../src/common/image.c:325 +#: ../src/common/image.c:333 msgid "orphaned image" msgstr "Одиночный снимок" -#: ../src/common/image.c:620 +#: ../src/common/image.c:629 #, c-format msgid "geo-location undone for %d image" msgid_plural "geo-location undone for %d images" @@ -6233,7 +6527,7 @@ msgstr[1] "Геотеги удалены у %d снимков" msgstr[2] "Геотеги удалены у %d снимков" -#: ../src/common/image.c:622 +#: ../src/common/image.c:631 #, c-format msgid "geo-location re-applied to %d image" msgid_plural "geo-location re-applied to %d images" @@ -6241,7 +6535,7 @@ msgstr[1] "Геотеги применены к %d снимкам" msgstr[2] "Геотеги применены к %d снимкам" -#: ../src/common/image.c:645 +#: ../src/common/image.c:654 #, c-format msgid "date/time undone for %d image" msgid_plural "date/time undone for %d images" @@ -6249,7 +6543,7 @@ msgstr[1] "Дата и время удалены у %d снимков" msgstr[2] "Дата и время удалены у %d снимков" -#: ../src/common/image.c:647 +#: ../src/common/image.c:656 #, c-format msgid "date/time re-applied to %d image" msgid_plural "date/time re-applied to %d images" @@ -6257,49 +6551,49 @@ msgstr[1] "Дата и время применены к %d снимкам" msgstr[2] "Дата и время применены к %d снимкам" -#: ../src/common/image.c:2188 +#: ../src/common/image.c:2260 #, c-format msgid "cannot access local copy `%s'" msgstr "Ошибка доступа к локальной копии «%s»!" -#: ../src/common/image.c:2195 +#: ../src/common/image.c:2267 #, c-format msgid "cannot write local copy `%s'" msgstr "Ошибка записи локальной копии «%s»!" -#: ../src/common/image.c:2202 +#: ../src/common/image.c:2274 #, c-format msgid "error moving local copy `%s' -> `%s'" msgstr "Ошибка перемещения локальной копии «%s» → «%s»!" -#: ../src/common/image.c:2219 +#: ../src/common/image.c:2291 #, c-format msgid "error moving `%s': file not found" msgstr "Ошибка перемещения «%s»: файл не найден!" -#: ../src/common/image.c:2229 +#: ../src/common/image.c:2301 #, c-format msgid "error moving `%s' -> `%s': file exists" msgstr "Ошибка перемещения «%s» → «%s»: файл уже существует!" -#: ../src/common/image.c:2233 +#: ../src/common/image.c:2305 #, c-format msgid "error moving `%s' -> `%s'" msgstr "Ошибка перемещения «%s» → «%s»!" -#: ../src/common/image.c:2562 +#: ../src/common/image.c:2634 msgid "cannot create local copy when the original file is not accessible." msgstr "Невозможно создать локальную копию, когда оригинал недоступен!" -#: ../src/common/image.c:2576 +#: ../src/common/image.c:2648 msgid "cannot create local copy." msgstr "Невозможно создать локальную копию!" -#: ../src/common/image.c:2656 ../src/control/jobs/control_jobs.c:777 +#: ../src/common/image.c:2728 ../src/control/jobs/control_jobs.c:777 msgid "cannot remove local copy when the original file is not accessible." msgstr "Невозможно удалить локальную копию, когда оригинал недоступен!" -#: ../src/common/image.c:2821 +#: ../src/common/image.c:2901 #, c-format msgid "%d local copy has been synchronized" msgid_plural "%d local copies have been synchronized" @@ -6307,11 +6601,11 @@ msgstr[1] "%d локальных копии было синхронизировано" msgstr[2] "%d локальных копий было синхронизировано" -#: ../src/common/image.c:3022 +#: ../src/common/image.c:3102 msgid "<b>WARNING</b>: camera is missing samples!" msgstr "<b>ВНИМАНИЕ</b>: образцы в камере не найдены!" -#: ../src/common/image.c:3023 +#: ../src/common/image.c:3103 msgid "" "You must provide samples in <a href='https://raw.pixls.us/'>https://raw." "pixls.us/</a>" @@ -6319,7 +6613,7 @@ "Образцы должны быть в <a href='https://raw.pixls.us/'>https://raw.pixls.us/</" "a>" -#: ../src/common/image.c:3024 +#: ../src/common/image.c:3104 #, c-format msgid "" "for `%s' `%s'\n" @@ -6328,81 +6622,82 @@ "для `%s' `%s'\n" "в максимально возможном количестве форматов/сжатия/битовой глубины" -#: ../src/common/image.c:3027 +#: ../src/common/image.c:3107 msgid "or the <b>RAW won't be readable</b> in next version." msgstr "иначе файлы <b>RAW не будут читаться</b> в следующей версии." -#: ../src/common/image.h:209 ../src/common/ratings.c:284 -#: ../src/libs/history.c:843 ../src/libs/snapshots.c:779 +#: ../src/common/image.h:217 ../src/common/ratings.c:283 +#: ../src/imageio/format/avif.c:114 ../src/libs/history.c:843 +#: ../src/libs/snapshots.c:837 msgid "unknown" msgstr "Неизвестно" #. EMPTY_FIELD -#: ../src/common/image.h:210 -msgid "tiff" +#: ../src/common/image.h:218 ../src/imageio/format/tiff.c:831 +msgid "TIFF" msgstr "TIFF" -#: ../src/common/image.h:211 -msgid "png" -msgstr "png" - -#: ../src/common/image.h:212 ../src/imageio/format/j2k.c:652 -msgid "j2k" -msgstr "J2K" - -#: ../src/common/image.h:213 -msgid "jpeg" -msgstr "JPEG 2000" - -#: ../src/common/image.h:214 -msgid "exr" -msgstr "exr" +#: ../src/common/image.h:219 ../src/imageio/format/png.c:599 +msgid "PNG" +msgstr "PNG" + +#: ../src/common/image.h:220 +msgid "JPEG 2000" +msgstr "JPEG 2000 " + +#: ../src/common/image.h:221 +msgid "JPEG" +msgstr "JPEG" + +#: ../src/common/image.h:222 +msgid "EXR" +msgstr "EXR" -#: ../src/common/image.h:215 -msgid "rgbe" +#: ../src/common/image.h:223 +msgid "RGBE" msgstr "RGBE" -#: ../src/common/image.h:216 -msgid "pfm" +#: ../src/common/image.h:224 ../src/imageio/format/pfm.c:120 +msgid "PFM" msgstr "PFM" -#: ../src/common/image.h:217 +#: ../src/common/image.h:225 msgid "GraphicsMagick" msgstr "GraphicsMagick" -#: ../src/common/image.h:218 -msgid "rawspeed" -msgstr "rawspeed" - -#: ../src/common/image.h:219 -msgid "netpnm" -msgstr "Netpnm" +#: ../src/common/image.h:226 +msgid "RawSpeed" +msgstr "RawSpeed" -#: ../src/common/image.h:220 -msgid "avif" +#: ../src/common/image.h:227 +msgid "Netpbm" +msgstr "Netpbm" + +#: ../src/common/image.h:228 ../src/imageio/format/avif.c:728 +msgid "AVIF" msgstr "AVIF" -#: ../src/common/image.h:221 +#: ../src/common/image.h:229 msgid "ImageMagick" msgstr "ImageMagick" -#: ../src/common/image.h:222 -msgid "heif" -msgstr "Heif" - -#: ../src/common/image.h:223 -msgid "libraw" -msgstr "Libraw" +#: ../src/common/image.h:230 +msgid "HEIF" +msgstr "HEIF" + +#: ../src/common/image.h:231 +msgid "LibRaw" +msgstr "LibRaw" -#: ../src/common/image.h:224 -msgid "webp" -msgstr "webp" +#: ../src/common/image.h:232 ../src/imageio/format/webp.c:380 +msgid "WebP" +msgstr "WebP" -#: ../src/common/image.h:225 -msgid "jpeg xl" +#: ../src/common/image.h:233 ../src/imageio/format/jxl.c:482 +msgid "JPEG XL" msgstr "JPEG XL" -#: ../src/common/image.h:226 +#: ../src/common/image.h:234 msgid "QOI" msgstr "QOI" @@ -6434,7 +6729,7 @@ msgstr "" "Запрошенный путь сеанса не доступен! Убедитесь, что устройство смонтировано." -#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:197 +#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:195 msgid "legacy" msgstr "Старый" @@ -6446,7 +6741,7 @@ msgid "v3.0 JPEG" msgstr "v3.0 JPEG" -#: ../src/common/iop_profile.c:1205 +#: ../src/common/iop_profile.c:1207 #, c-format msgid "" "darktable loads %s from\n" @@ -6470,13 +6765,13 @@ #. title #: ../src/common/metadata.c:48 ../src/imageio/format/pdf.c:574 -#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:169 -#: ../src/imageio/storage/gallery.c:170 ../src/imageio/storage/latex.c:169 -#: ../src/imageio/storage/piwigo.c:1058 ../src/libs/filtering.c:69 +#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:219 +#: ../src/imageio/storage/gallery.c:222 ../src/imageio/storage/latex.c:206 +#: ../src/imageio/storage/piwigo.c:1091 ../src/libs/filtering.c:69 msgid "title" msgstr "Название" -#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:552 +#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:563 #: ../src/libs/filtering.c:70 msgid "description" msgstr "Описание" @@ -6494,11 +6789,11 @@ msgstr "Имя версии" #: ../src/common/metadata.c:53 ../src/libs/live_view.c:319 -#: ../src/libs/metadata_view.c:124 +#: ../src/libs/metadata_view.c:126 msgid "image id" msgstr "ID снимка" -#: ../src/common/mipmap_cache.c:1065 ../src/imageio/imageio.c:787 +#: ../src/common/mipmap_cache.c:1070 ../src/imageio/imageio.c:799 #, c-format msgid "image `%s' is not available!" msgstr "Снимок «%s» недоступен!" @@ -6512,7 +6807,43 @@ msgid "noiseprofile file `%s' is not valid" msgstr "Файл шумового профиля «%s» некорректный" -#: ../src/common/opencl.c:1376 +#: ../src/common/opencl.c:1165 +msgid "no working OpenCL library found" +msgstr "Работающая библиотека OpenCL не найдена" + +#: ../src/common/opencl.c:1185 +msgid "" +"platform detection failed. some possible causes:\n" +" - OpenCL ICD (ocl-icd) missing,\n" +" - previous OpenCL errors leading to blocked devices,\n" +" - power management problems,\n" +" - buggy drivers,\n" +" - no OpenCL driver installed." +msgstr "" +"Не удалось определить платформу. Вот некоторые возможные причины:\n" +"- отсутствует OpenCL ICD (ocl-icd),\n" +"- предыдущие ошибки OpenCL, приводят к блокировке устройств,\n" +"- проблемы с управлением питанием,\n" +"- драйверы содержат ошибки,\n" +"- драйвер OpenCL не установлен." + +#: ../src/common/opencl.c:1277 +msgid "no devices found for unknown platform" +msgstr "Устройства для неизвестной платформы не найдены" + +#: ../src/common/opencl.c:1323 +msgid "not enough memory for OpenCL devices" +msgstr "Недостаточно памяти для устройств OpenCL" + +#: ../src/common/opencl.c:1358 +msgid "no OpenCL devices found" +msgstr "Устройства OpenCL не найдены" + +#: ../src/common/opencl.c:1401 +msgid "no suitable OpenCL devices found" +msgstr "Подходящих устройств OpenCL не найдено" + +#: ../src/common/opencl.c:1422 #, c-format msgid "" "OpenCL initializing problem:\n" @@ -6521,37 +6852,22 @@ "проблема инициализации OpenCL:\n" "%s" -#: ../src/common/opencl.c:1439 -msgid "" -"due to a slow GPU hardware acceleration using OpenCL has been deactivated" +#: ../src/common/opencl.c:1454 +msgid "OpenCL scheduling profile set to default, setup has changed" msgstr "" -"Из-за медленного аппаратного ускорения графического процессора через OpenCL " -"деактивировано" +"Профиль планирования OpenCL установлен по умолчанию, настройки изменились" -#: ../src/common/opencl.c:1449 -msgid "" -"multiple GPUs detected - OpenCL scheduling profile has been set accordingly" -msgstr "" -"Обнаружено несколько графических процессоров - профиль планирования OpenCL " -"был установлен соответствующим образом" - -#: ../src/common/opencl.c:1462 -msgid "" -"very fast GPU detected - OpenCL scheduling profile has been set accordingly" -msgstr "" -"Обнаружен очень быстрый графический процессор - профиль планирования OpenCL " -"был установлен соответствующим образом" - -#: ../src/common/opencl.c:1471 -msgid "OpenCL scheduling profile set to default" -msgstr "Профиль планирования OpenCL установлен по умолчанию" +#: ../src/common/opencl.c:2283 +#, c-format +msgid "building OpenCL program %s for %s" +msgstr "Создание программы OpenCL %s для %s" -#: ../src/common/pdf.h:88 ../src/iop/lens.cc:3441 +#: ../src/common/pdf.h:88 ../src/iop/lens.cc:4071 #: ../src/libs/filters/focal.c:74 ../src/libs/print_settings.c:81 msgid "mm" msgstr "мм" -#: ../src/common/pdf.h:89 ../src/libs/export.c:520 ../src/libs/export.c:1145 +#: ../src/common/pdf.h:89 ../src/libs/export.c:555 ../src/libs/export.c:1241 #: ../src/libs/print_settings.c:81 msgid "cm" msgstr "см" @@ -6564,7 +6880,7 @@ msgid "\"" msgstr "\"" -#: ../src/common/pdf.h:104 ../src/iop/borders.c:958 +#: ../src/common/pdf.h:104 ../src/iop/borders.c:971 msgid "A4" msgstr "A4" @@ -6606,66 +6922,65 @@ msgid "no images selected to apply rating" msgstr "Для применения оценки нужно выбрать хотя бы один снимок" -#: ../src/common/ratings.c:275 ../src/libs/metadata_view.c:351 +#: ../src/common/ratings.c:274 ../src/libs/metadata_view.c:355 msgid "image rejected" msgstr "Снимок отклонён" -#: ../src/common/ratings.c:277 +#: ../src/common/ratings.c:276 msgid "image rated to 0 star" msgstr "Выставлен рейтинг 0 звезд" -#: ../src/common/ratings.c:279 +#: ../src/common/ratings.c:278 #, c-format msgid "image rated to %s" msgstr "Выставлен рейтинг %s звезд" -#: ../src/common/ratings.c:306 ../src/libs/select.c:39 -#: ../src/views/lighttable.c:766 +#: ../src/common/ratings.c:305 ../src/views/lighttable.c:766 msgid "select" msgstr "Выделение" -#: ../src/common/ratings.c:307 +#: ../src/common/ratings.c:306 msgid "upgrade" msgstr "Обновить" -#: ../src/common/ratings.c:308 +#: ../src/common/ratings.c:307 msgid "downgrade" msgstr "Понизить рейтинг" -#: ../src/common/ratings.c:312 +#: ../src/common/ratings.c:311 msgid "zero" msgstr "Ноль" -#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:277 +#: ../src/common/ratings.c:312 ../src/libs/filters/rating_range.c:304 msgid "one" msgstr "Один" -#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:278 +#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:305 msgid "two" msgstr "Два" -#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:279 +#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:306 msgid "three" msgstr "Три" -#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:280 +#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:307 msgid "four" msgstr "4" -#: ../src/common/ratings.c:317 ../src/libs/filters/rating_range.c:281 +#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:308 msgid "five" msgstr "5" -#: ../src/common/ratings.c:318 +#: ../src/common/ratings.c:317 msgid "reject" msgstr "Отклонить" -#: ../src/common/styles.c:244 +#: ../src/common/styles.c:243 #, c-format msgid "style with name '%s' already exists" msgstr "Стиль «%s» уже существует" -#: ../src/common/styles.c:270 ../src/common/styles.c:1776 +#: ../src/common/styles.c:270 ../src/common/styles.c:1783 #: ../src/libs/styles.c:54 msgid "styles" msgstr "Стили обработки" @@ -6675,58 +6990,58 @@ msgid "style named '%s' successfully created" msgstr "Стиль «%s» успешно создан" -#: ../src/common/styles.c:689 ../src/common/styles.c:719 -#: ../src/common/styles.c:759 ../src/dtgtk/culling.c:1097 +#: ../src/common/styles.c:688 ../src/common/styles.c:718 +#: ../src/common/styles.c:758 ../src/dtgtk/culling.c:1066 msgid "no image selected!" msgstr "Не выбран ни один снимок!" -#: ../src/common/styles.c:693 +#: ../src/common/styles.c:692 #, c-format msgid "style %s successfully applied!" msgstr "Стиль «%s» успешно применён" -#: ../src/common/styles.c:709 +#: ../src/common/styles.c:708 msgid "no images nor styles selected!" msgstr "Не выбраны ни снимок, ни стиль!" -#: ../src/common/styles.c:714 +#: ../src/common/styles.c:713 msgid "no styles selected!" msgstr "Не выбран ни один стиль!" -#: ../src/common/styles.c:744 +#: ../src/common/styles.c:743 msgid "style successfully applied!" msgid_plural "styles successfully applied!" msgstr[0] "Стиль успешно применён" msgstr[1] "Стили успешно применены" msgstr[2] "Стили успешно применены" -#: ../src/common/styles.c:840 +#: ../src/common/styles.c:838 #, c-format msgid "module `%s' version mismatch: %d != %d" msgstr "Несоответствие версии модуля «%s»: %d != %d" -#: ../src/common/styles.c:1124 +#: ../src/common/styles.c:1125 #, c-format msgid "applied style `%s' on current image" msgstr "Стиль «%s» применён к текущему изображению" -#: ../src/common/styles.c:1378 +#: ../src/common/styles.c:1383 #, c-format msgid "failed to overwrite style file for %s" msgstr "Ошибка перезаписи файла стиля «%s»!" -#: ../src/common/styles.c:1384 +#: ../src/common/styles.c:1389 #, c-format msgid "style file for %s exists" msgstr "Файл стиля «%s» уже существует" -#: ../src/common/styles.c:1667 +#: ../src/common/styles.c:1674 #, c-format msgid "style %s was successfully imported" msgstr "Стиль «%s» успешно импортирован" #. Failed to open file, clean up. -#: ../src/common/styles.c:1711 +#: ../src/common/styles.c:1718 #, c-format msgid "could not read file `%s'" msgstr "Ошибка чтения файла «%s»!" @@ -6739,10 +7054,18 @@ msgid "below sea level" msgstr "ниже уровня моря" -#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:880 +#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:907 msgid "m" msgstr "м" +#: ../src/common/variables.c:712 ../src/develop/imageop_gui.c:210 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "yes" +msgstr "Да" + #. Column 1 - "make" of the camera. #. * Column 2 - "model" (use the "make" and "model" as provided by DCRaw). #. * Column 3 - WB name. @@ -6755,7 +7078,7 @@ #. * #. * WB name is standardized to one of the following: #. "Sunlight" and other variation should be switched to this: -#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:323 +#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:320 msgid "daylight" msgstr "Дневной свет" @@ -6855,7 +7178,7 @@ msgid "underwater" msgstr "Подводная съёмка" -#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2447 +#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2286 msgid "black & white" msgstr "Чёрный и белый" @@ -6875,85 +7198,85 @@ msgid "auto WB" msgstr "Автонастройка ББ" -#: ../src/control/control.c:66 ../src/gui/accelerators.c:138 -#: ../src/views/darkroom.c:2162 +#: ../src/control/control.c:69 ../src/gui/accelerators.c:156 +#: ../src/views/darkroom.c:2029 msgid "hold" msgstr "Держать " -#: ../src/control/control.c:102 ../src/control/control.c:205 +#: ../src/control/control.c:108 ../src/control/control.c:214 msgid "modifiers" msgstr "Модификаторы" -#: ../src/control/control.c:111 +#: ../src/control/control.c:117 msgctxt "accel" msgid "global" msgstr "Общие настройки" -#: ../src/control/control.c:118 +#: ../src/control/control.c:124 msgctxt "accel" msgid "views" msgstr "Режимы" -#: ../src/control/control.c:125 +#: ../src/control/control.c:131 msgctxt "accel" msgid "thumbtable" msgstr "Предпросмотр" -#: ../src/control/control.c:132 +#: ../src/control/control.c:138 msgctxt "accel" msgid "utility modules" msgstr "Вспомогательные модули" -#: ../src/control/control.c:139 +#: ../src/control/control.c:145 msgctxt "accel" msgid "format" msgstr "Контейнер" -#: ../src/control/control.c:146 +#: ../src/control/control.c:152 msgctxt "accel" msgid "storage" msgstr "Хранилище" -#: ../src/control/control.c:153 +#: ../src/control/control.c:159 msgctxt "accel" msgid "processing modules" msgstr "Модули обработки" -#: ../src/control/control.c:160 +#: ../src/control/control.c:166 msgctxt "accel" msgid "<blending>" msgstr "<blending>" -#: ../src/control/control.c:167 +#: ../src/control/control.c:173 msgctxt "accel" msgid "Lua scripts" msgstr "Скрипты Lua" -#: ../src/control/control.c:174 +#: ../src/control/control.c:180 msgctxt "accel" msgid "fallbacks" msgstr "Запасные варианты " -#: ../src/control/control.c:183 +#: ../src/control/control.c:189 msgctxt "accel" msgid "<focused>" msgstr "<focused>" -#: ../src/control/control.c:202 +#: ../src/control/control.c:209 msgid "show accels window" msgstr "Показать окно ускорения" -#: ../src/control/control.c:363 +#: ../src/control/control.c:371 msgid "working..." msgstr "Операция выполняется..." -#: ../src/control/crawler.c:425 +#: ../src/control/crawler.c:418 #, c-format msgid "ERROR: %s NOT synced XMP → DB" msgstr "ОШИБКА: %s НЕ синхронизировано XMP → БД" -#: ../src/control/crawler.c:426 ../src/control/crawler.c:492 -#: ../src/control/crawler.c:561 +#: ../src/control/crawler.c:419 ../src/control/crawler.c:485 +#: ../src/control/crawler.c:554 msgid "" "ERROR: cannot write the database. the destination may be full, offline or " "read-only." @@ -6961,18 +7284,18 @@ "ОШИБКА: невозможно записать базу данных. место назначения может быть " "заполнено, отключено или доступно только для чтения." -#: ../src/control/crawler.c:433 +#: ../src/control/crawler.c:426 #, c-format msgid "SUCCESS: %s synced XMP → DB" msgstr "УСПЕШНО: %s синхронизировано XMP → БД" -#: ../src/control/crawler.c:455 +#: ../src/control/crawler.c:448 #, c-format msgid "ERROR: %s NOT synced DB → XMP" msgstr "ОШИБКА: %s НЕ синхронизировано БД → XMP" -#: ../src/control/crawler.c:457 ../src/control/crawler.c:516 -#: ../src/control/crawler.c:582 +#: ../src/control/crawler.c:450 ../src/control/crawler.c:509 +#: ../src/control/crawler.c:575 #, c-format msgid "" "ERROR: cannot write %s \n" @@ -6982,129 +7305,133 @@ "место назначения может быть заполнено, отключено или доступно только для " "чтения." -#: ../src/control/crawler.c:463 +#: ../src/control/crawler.c:456 #, c-format msgid "SUCCESS: %s synced DB → XMP" msgstr "УСПЕШНО: %s синхронизировано БД → XMP" -#: ../src/control/crawler.c:489 +#: ../src/control/crawler.c:482 #, c-format msgid "ERROR: %s NOT synced new (XMP) → old (DB)" msgstr "ОШИБКА: %s НЕ синхронизировано новое (XMP) → старое (БД)" -#: ../src/control/crawler.c:499 +#: ../src/control/crawler.c:492 #, c-format msgid "SUCCESS: %s synced new (XMP) → old (DB)" msgstr "УСПЕШНО: %s синхронизировано новое (XMP) → старое (БД)" -#: ../src/control/crawler.c:513 +#: ../src/control/crawler.c:506 #, c-format msgid "ERROR: %s NOT synced new (DB) → old (XMP)" msgstr "ОШИБКА: %s НЕ синхронизировано новое (БД) → старое (XMP)" -#: ../src/control/crawler.c:521 +#: ../src/control/crawler.c:514 #, c-format msgid "SUCCESS: %s synced new (DB) → old (XMP)" msgstr "УСПЕШНО: %s синхронизировано новое (БД) → старое (XMP)" -#: ../src/control/crawler.c:530 ../src/control/crawler.c:598 +#: ../src/control/crawler.c:523 ../src/control/crawler.c:591 #, c-format msgid "EXCEPTION: %s has inconsistent timestamps" msgstr "ИСКЛЮЧЕНИЕ: %s имеет несогласованные временные метки." -#: ../src/control/crawler.c:558 +#: ../src/control/crawler.c:551 #, c-format msgid "ERROR: %s NOT synced old (XMP) → new (DB)" msgstr "ОШИБКА: %s НЕ синхронизировано старое (XMP) → новое (БД)" -#: ../src/control/crawler.c:567 +#: ../src/control/crawler.c:560 #, c-format msgid "SUCCESS: %s synced old (XMP) → new (DB)" msgstr "УСПЕШНО: %s синхронизировано старое (XMP) → новое (БД)" -#: ../src/control/crawler.c:579 +#: ../src/control/crawler.c:572 #, c-format msgid "ERROR: %s NOT synced old (DB) → new (XMP)" msgstr "ОШИБКА: %s НЕ синхронизировано старое (БД) → новое (XMP)" -#: ../src/control/crawler.c:588 +#: ../src/control/crawler.c:581 #, c-format msgid "SUCCESS: %s synced old (DB) → new (XMP)" msgstr "УСПЕШНО: %s синхронизировано старое (БД) → новое (XMP)" -#: ../src/control/crawler.c:670 +#: ../src/control/crawler.c:663 #, c-format msgid "%id %02dh %02dm %02ds" msgstr "%id %02dh %02dm %02ds" -#: ../src/control/crawler.c:740 ../src/imageio/storage/disk.c:168 -#: ../src/imageio/storage/gallery.c:154 ../src/imageio/storage/latex.c:153 -#: ../src/imageio/storage/latex.c:171 +#: ../src/control/crawler.c:716 +msgid "XMP" +msgstr "XMP" + +#: ../src/control/crawler.c:733 ../src/imageio/storage/disk.c:250 +#: ../src/imageio/storage/gallery.c:202 ../src/imageio/storage/latex.c:190 +#: ../src/imageio/storage/latex.c:208 msgid "path" msgstr "Путь" -#: ../src/control/crawler.c:749 +#: ../src/control/crawler.c:742 msgid "XMP timestamp" msgstr "Время из файла XMP" -#: ../src/control/crawler.c:754 +#: ../src/control/crawler.c:747 msgid "database timestamp" msgstr "Время из базы данных" -#: ../src/control/crawler.c:759 +#: ../src/control/crawler.c:752 msgid "newest" msgstr "новейший" -#: ../src/control/crawler.c:765 +#: ../src/control/crawler.c:758 msgid "time difference" msgstr "Разница во времени" -#: ../src/control/crawler.c:777 +#: ../src/control/crawler.c:770 msgid "updated XMP sidecar files found" msgstr "Найдены изменённые файлы XMP" -#: ../src/control/crawler.c:778 +#: ../src/control/crawler.c:771 msgid "_close" msgstr "_Закрыть" #. setup selection accelerators #. action-box -#: ../src/control/crawler.c:793 ../src/dtgtk/thumbtable.c:2578 -#: ../src/libs/import.c:1722 ../src/libs/select.c:135 +#: ../src/control/crawler.c:786 ../src/dtgtk/thumbtable.c:2755 +#: ../src/libs/import.c:1732 ../src/libs/select.c:136 msgid "select all" msgstr "Выделить всё" -#: ../src/control/crawler.c:794 ../src/dtgtk/thumbtable.c:2580 -#: ../src/libs/import.c:1726 ../src/libs/select.c:139 +#: ../src/control/crawler.c:787 ../src/dtgtk/thumbtable.c:2757 +#: ../src/libs/import.c:1736 ../src/libs/select.c:140 msgid "select none" msgstr "Снять выделение" -#: ../src/control/crawler.c:795 ../src/dtgtk/thumbtable.c:2582 -#: ../src/libs/select.c:143 +#: ../src/control/crawler.c:788 ../src/dtgtk/thumbtable.c:2759 +#: ../src/libs/select.c:144 msgid "invert selection" msgstr "Обратить выделение" -#: ../src/control/crawler.c:807 +#: ../src/control/crawler.c:800 msgid "on the selection:" msgstr "По выбору:" -#: ../src/control/crawler.c:808 +#: ../src/control/crawler.c:801 msgid "keep the XMP edit" msgstr "сохранить редактирование xmp" -#: ../src/control/crawler.c:809 +#: ../src/control/crawler.c:802 msgid "keep the database edit" msgstr "Сохранить редактирование базы данных" -#: ../src/control/crawler.c:810 +#: ../src/control/crawler.c:803 msgid "keep the newest edit" msgstr "сохранить последнее редактирование" -#: ../src/control/crawler.c:811 +#: ../src/control/crawler.c:804 msgid "keep the oldest edit" msgstr "оставить самое старое редактирование" -#: ../src/control/crawler.c:836 +#: ../src/control/crawler.c:829 msgid "synchronization log" msgstr "журнал синхронизации" @@ -7136,6 +7463,10 @@ msgid "starting to import images from camera" msgstr "Начинается импорт снимков с камеры" +#: ../src/control/jobs/camera_jobs.c:302 +msgid "failed to import images from camera." +msgstr "Не удалось выполнить импорт снимков с камеры" + #: ../src/control/jobs/camera_jobs.c:309 #, c-format msgid "importing %d image from camera" @@ -7248,7 +7579,8 @@ msgid "_remove from library" msgstr "_убрать из коллекции" -#: ../src/control/jobs/control_jobs.c:884 +#: ../src/control/jobs/control_jobs.c:884 ../src/libs/styles.c:440 +#: ../src/libs/styles.c:625 msgid "_skip" msgstr "_пропустить" @@ -7353,42 +7685,42 @@ msgid "exporting %d / %d to %s" msgstr "Экспорт %d / %d в «%s»" -#: ../src/control/jobs/control_jobs.c:1459 ../src/views/darkroom.c:800 +#: ../src/control/jobs/control_jobs.c:1451 ../src/views/darkroom.c:721 #: ../src/views/print.c:369 #, c-format msgid "image `%s' is currently unavailable" msgstr "Снимок «%s» сейчас недоступен" -#: ../src/control/jobs/control_jobs.c:1551 +#: ../src/control/jobs/control_jobs.c:1554 msgid "merge HDR image" msgstr "Объединить в HDR" -#: ../src/control/jobs/control_jobs.c:1565 +#: ../src/control/jobs/control_jobs.c:1568 msgid "duplicate images" msgstr "Создание копию снимков" -#: ../src/control/jobs/control_jobs.c:1571 +#: ../src/control/jobs/control_jobs.c:1574 msgid "flip images" msgstr "Поворот снимков" -#: ../src/control/jobs/control_jobs.c:1578 +#: ../src/control/jobs/control_jobs.c:1581 msgid "set monochrome images" msgstr "Пометка снимков как чёрно-белых" #. get all selected images now, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1585 +#: ../src/control/jobs/control_jobs.c:1588 msgid "remove images" msgstr "Удаление из коллекции" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove image?" msgstr "Удаление снимка из коллекции" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove images?" msgstr "Удаление снимков из коллекции" -#: ../src/control/jobs/control_jobs.c:1599 +#: ../src/control/jobs/control_jobs.c:1602 #, c-format msgid "" "do you really want to remove %d image from darktable\n" @@ -7401,21 +7733,21 @@ msgstr[2] "Вы действительно хотите убрать %d выбранных снимков из коллекции?" #. first get all selected images, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1614 -#: ../src/control/jobs/control_jobs.c:1647 +#: ../src/control/jobs/control_jobs.c:1617 +#: ../src/control/jobs/control_jobs.c:1650 msgid "delete images" msgstr "Удаление снимков" -#: ../src/control/jobs/control_jobs.c:1630 -#: ../src/control/jobs/control_jobs.c:1660 +#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1663 msgid "delete image?" msgstr "Удаление снимка" -#: ../src/control/jobs/control_jobs.c:1630 +#: ../src/control/jobs/control_jobs.c:1633 msgid "delete images?" msgstr "Удаление снимков" -#: ../src/control/jobs/control_jobs.c:1631 +#: ../src/control/jobs/control_jobs.c:1634 #, c-format msgid "" "do you really want to physically delete %d image\n" @@ -7427,7 +7759,7 @@ msgstr[1] "Вы действительно хотите переместить в корзину %d выбранных снимка?" msgstr[2] "Вы действительно хотите переместить в корзину %d выбранных снимков?" -#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1636 #, c-format msgid "do you really want to physically delete %d image from disk?" msgid_plural "do you really want to physically delete %d images from disk?" @@ -7435,33 +7767,33 @@ msgstr[1] "Вы действительно хотите удалить %d выбранных снимка с диска?" msgstr[2] "Вы действительно хотите удалить %d выбранных снимков с диска?" -#: ../src/control/jobs/control_jobs.c:1661 +#: ../src/control/jobs/control_jobs.c:1664 msgid "" "do you really want to physically delete selected image (using trash if " "possible)?" msgstr "Вы действительно хотите переместить в корзину выбранный снимок?" -#: ../src/control/jobs/control_jobs.c:1662 +#: ../src/control/jobs/control_jobs.c:1665 msgid "do you really want to physically delete selected image from disk?" msgstr "Вы действительно хотите удалить выбранный снимок с диска?" -#: ../src/control/jobs/control_jobs.c:1677 +#: ../src/control/jobs/control_jobs.c:1680 msgid "move images" msgstr "Перемещение снимков" -#: ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 msgid "_select as destination" msgstr "_Выбрать" -#: ../src/control/jobs/control_jobs.c:1708 +#: ../src/control/jobs/control_jobs.c:1711 msgid "move image?" msgid_plural "move images?" msgstr[0] "Перемещение снимка" msgstr[1] "Перемещение снимков" msgstr[2] "Перемещение снимков" -#: ../src/control/jobs/control_jobs.c:1709 +#: ../src/control/jobs/control_jobs.c:1712 #, c-format msgid "" "do you really want to physically move %d image to %s?\n" @@ -7482,18 +7814,18 @@ "%d выбранных снимков в «%s»?\n" "(все невыбранные копии также будут перемещены)" -#: ../src/control/jobs/control_jobs.c:1731 +#: ../src/control/jobs/control_jobs.c:1734 msgid "copy images" msgstr "Копирование снимков" -#: ../src/control/jobs/control_jobs.c:1762 +#: ../src/control/jobs/control_jobs.c:1765 msgid "copy image?" msgid_plural "copy images?" msgstr[0] "Копирование снимка" msgstr[1] "Копирование снимков" msgstr[2] "Копирование снимков" -#: ../src/control/jobs/control_jobs.c:1763 +#: ../src/control/jobs/control_jobs.c:1766 #, c-format msgid "do you really want to physically copy %d image to %s?" msgid_plural "do you really want to physically copy %d images to %s?" @@ -7501,73 +7833,73 @@ msgstr[1] "Вы действительно хотите копировать %d выбранных снимка в %s?" msgstr[2] "Вы действительно хотите копировать %d выбранных снимков в %s?" -#: ../src/control/jobs/control_jobs.c:1781 -#: ../src/control/jobs/control_jobs.c:1789 +#: ../src/control/jobs/control_jobs.c:1784 +#: ../src/control/jobs/control_jobs.c:1792 msgid "local copy images" msgstr "Создание локальных копий" -#: ../src/control/jobs/control_jobs.c:1796 ../src/libs/image.c:604 +#: ../src/control/jobs/control_jobs.c:1799 ../src/libs/image.c:674 msgid "refresh EXIF" msgstr "Обновить Exif" -#: ../src/control/jobs/control_jobs.c:1860 +#: ../src/control/jobs/control_jobs.c:1863 #, c-format msgid "failed to get parameters from storage module `%s', aborting export.." msgstr "Ошибка получения параметров модуля сохранения «%s»! Экспорт прерван." -#: ../src/control/jobs/control_jobs.c:1876 +#: ../src/control/jobs/control_jobs.c:1879 msgid "export images" msgstr "Экспорт снимков" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "adding time offset to %d image" msgstr "Добавление смещения времени к %d снимку" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "setting date/time of %d image" msgstr "Применение даты и времени к %d снимку" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "adding time offset to %d images" msgstr "Добавление смещения времени к %d снимкам" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "setting date/time of %d images" msgstr "Применение даты и времени к %d снимкам" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "added time offset to %d image" msgstr "Смещение времени добавлено к %d снимку" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "set date/time of %d image" msgstr "Дата и время применены к %d снимку" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "added time offset to %d images" msgstr "Смещение времени добавлено к %d снимкам" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "set date/time of %d images" msgstr "Дата и время применены к %d снимкам" -#: ../src/control/jobs/control_jobs.c:2014 +#: ../src/control/jobs/control_jobs.c:2017 msgid "time offset" msgstr "Смещ. времени" -#: ../src/control/jobs/control_jobs.c:2042 ../src/libs/copy_history.c:414 +#: ../src/control/jobs/control_jobs.c:2045 ../src/libs/copy_history.c:414 msgid "write sidecar files" msgstr "Записать XMP" -#: ../src/control/jobs/control_jobs.c:2256 ../src/control/jobs/film_jobs.c:297 +#: ../src/control/jobs/control_jobs.c:2259 ../src/control/jobs/film_jobs.c:297 #, c-format msgid "importing %d image" msgid_plural "importing %d images" @@ -7575,7 +7907,7 @@ msgstr[1] "Импортируется %d снимка..." msgstr[2] "Импортируется %d снимков..." -#: ../src/control/jobs/control_jobs.c:2292 +#: ../src/control/jobs/control_jobs.c:2295 #, c-format msgid "importing %d/%d image" msgid_plural "importing %d/%d images" @@ -7583,7 +7915,7 @@ msgstr[1] "Импортируется %d/%d снимка..." msgstr[2] "Импортируется %d/%d снимков..." -#: ../src/control/jobs/control_jobs.c:2300 +#: ../src/control/jobs/control_jobs.c:2305 #, c-format msgid "imported %d image" msgid_plural "imported %d images" @@ -7591,11 +7923,6 @@ msgstr[1] "Импортировано %d снимка" msgstr[2] "Импортировано %d снимков" -#: ../src/control/jobs/control_jobs.c:2347 ../src/gui/preferences.c:530 -#: ../src/libs/import.c:172 -msgid "import" -msgstr "Импорт" - #: ../src/control/jobs/film_jobs.c:73 ../src/control/jobs/film_jobs.c:109 msgid "import images" msgstr "Импорт снимков" @@ -7614,11 +7941,11 @@ msgid "import image" msgstr "Импорт снимков" -#: ../src/develop/blend.c:322 +#: ../src/develop/blend.c:315 msgid "detail mask blending error" msgstr "Ошибка смешивания в маске детализации" -#: ../src/develop/blend.c:864 +#: ../src/develop/blend.c:904 msgid "detail mask CL blending problem" msgstr "Проблема смешивания в маске детализации (OpenCL)" @@ -7819,8 +8146,7 @@ msgid "reverse" msgstr "Инвертированный" -#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:413 -#: ../src/libs/metadata.c:631 ../src/libs/metadata_view.c:1193 +#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:442 msgid "default" msgstr "По умолчанию" @@ -7828,35 +8154,35 @@ msgid "RAW" msgstr "Raw" -#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2014 +#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2030 msgid "RGB (display)" msgstr "RGB (выход)" -#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2027 +#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2043 msgid "RGB (scene)" msgstr "RGB (вход)" #. DEVELOP_MASK_ENABLED -#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3419 +#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3438 msgid "uniformly" msgstr "Равномерное" -#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:3429 ../src/develop/imageop.c:2660 +#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:3448 ../src/develop/imageop.c:2669 msgid "drawn mask" msgstr "Нарисованная маска" -#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2512 -#: ../src/develop/blend_gui.c:3440 ../src/develop/imageop.c:2662 +#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2528 +#: ../src/develop/blend_gui.c:3459 ../src/develop/imageop.c:2671 msgid "parametric mask" msgstr "Параметрическая маска" -#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2951 -#: ../src/develop/blend_gui.c:3467 ../src/develop/imageop.c:2664 +#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2966 +#: ../src/develop/blend_gui.c:3486 ../src/develop/imageop.c:2673 msgid "raster mask" msgstr "Растровая маска" -#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3454 +#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3473 msgid "drawn & parametric mask" msgstr "Нарисованная и параметрическая маска" @@ -7892,177 +8218,177 @@ msgid "input after blur" msgstr "После размытия (вход)" -#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:129 -#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/libs/live_view.c:362 +#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:157 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/libs/live_view.c:362 msgid "on" msgstr "Вкл." -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "input" msgstr "На входе" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "output" msgstr "На выходе" -#: ../src/develop/blend_gui.c:995 +#: ../src/develop/blend_gui.c:998 msgid " (zoom)" msgstr " (масштаб)" -#: ../src/develop/blend_gui.c:1003 +#: ../src/develop/blend_gui.c:1006 msgid " (log)" msgstr " (лог.)" -#: ../src/develop/blend_gui.c:1988 +#: ../src/develop/blend_gui.c:2004 msgid "reset to default blend colorspace" msgstr "Сбросить параметры цветового пространства" -#: ../src/develop/blend_gui.c:2044 +#: ../src/develop/blend_gui.c:2060 msgid "reset and hide output channels" msgstr "Сбросить и скрыть каналы вывода" -#: ../src/develop/blend_gui.c:2051 +#: ../src/develop/blend_gui.c:2067 msgid "show output channels" msgstr "Показать каналы вывода" -#: ../src/develop/blend_gui.c:2290 ../src/develop/blend_gui.c:2357 -#: ../src/iop/tonecurve.c:1134 +#: ../src/develop/blend_gui.c:2306 ../src/develop/blend_gui.c:2373 +#: ../src/iop/tonecurve.c:1156 msgid "L" msgstr "L" -#: ../src/develop/blend_gui.c:2290 +#: ../src/develop/blend_gui.c:2306 msgid "sliders for L channel" msgstr "Ползунки для канала 'L'" -#: ../src/develop/blend_gui.c:2295 ../src/iop/tonecurve.c:1135 +#: ../src/develop/blend_gui.c:2311 ../src/iop/tonecurve.c:1157 msgid "a" msgstr "a" -#: ../src/develop/blend_gui.c:2295 +#: ../src/develop/blend_gui.c:2311 msgid "sliders for a channel" msgstr "Ползунки для канала 'a'" -#: ../src/develop/blend_gui.c:2299 +#: ../src/develop/blend_gui.c:2315 msgid "green/red" msgstr "Зелёный / Пурпурный" -#: ../src/develop/blend_gui.c:2300 ../src/iop/tonecurve.c:1136 +#: ../src/develop/blend_gui.c:2316 ../src/iop/tonecurve.c:1158 msgid "b" msgstr "b" -#: ../src/develop/blend_gui.c:2300 +#: ../src/develop/blend_gui.c:2316 msgid "sliders for b channel" msgstr "Ползунки для канала 'b'" -#: ../src/develop/blend_gui.c:2304 +#: ../src/develop/blend_gui.c:2320 msgid "blue/yellow" msgstr "Синий / Жёлтый" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "C" msgstr "C" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "sliders for chroma channel (of LCh)" msgstr "Ползунки для канала цветности (LCh)" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "h" msgstr "h" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "sliders for hue channel (of LCh)" msgstr "Ползунки для канала тона (LCh)" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "g" msgstr "g" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "sliders for gray value" msgstr "Ползунки серого канала" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/denoiseprofile.c:3710 -#: ../src/iop/rawdenoise.c:894 ../src/iop/rgbcurve.c:1358 -#: ../src/iop/rgblevels.c:1003 ../src/libs/filters/colors.c:137 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/denoiseprofile.c:3714 +#: ../src/iop/rawdenoise.c:910 ../src/iop/rgbcurve.c:1358 +#: ../src/iop/rgblevels.c:1043 ../src/libs/filters/colors.c:137 msgid "R" msgstr "R" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 msgid "sliders for red channel" msgstr "Ползунки красного канала" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/denoiseprofile.c:3711 -#: ../src/iop/rawdenoise.c:895 ../src/iop/rgbcurve.c:1359 -#: ../src/iop/rgblevels.c:1004 ../src/libs/filters/colors.c:143 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/denoiseprofile.c:3715 +#: ../src/iop/rawdenoise.c:911 ../src/iop/rgbcurve.c:1359 +#: ../src/iop/rgblevels.c:1044 ../src/libs/filters/colors.c:143 msgid "G" msgstr "G" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 msgid "sliders for green channel" msgstr "Ползунки зелёного канала" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/denoiseprofile.c:3712 -#: ../src/iop/rawdenoise.c:896 ../src/iop/rgbcurve.c:1360 -#: ../src/iop/rgblevels.c:1005 ../src/libs/filters/colors.c:146 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/denoiseprofile.c:3716 +#: ../src/iop/rawdenoise.c:912 ../src/iop/rgbcurve.c:1360 +#: ../src/iop/rgblevels.c:1045 ../src/libs/filters/colors.c:146 msgid "B" msgstr "B" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 msgid "sliders for blue channel" msgstr "Ползунки синего канала" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "H" msgstr "H" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "sliders for hue channel (of HSL)" msgstr "Ползунки канала тона (HSL)" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "S" msgstr "S" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "sliders for chroma channel (of HSL)" msgstr "Ползунки канала насыщенности (HSL)" -#: ../src/develop/blend_gui.c:2357 +#: ../src/develop/blend_gui.c:2373 msgid "sliders for value channel (of HSL)" msgstr "Ползунки канала светлоты (HSL)" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "Jz" msgstr "Jz" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "sliders for value channel (of JzCzhz)" msgstr "Ползунки канала светлоты (JzCzhz)" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "Cz" msgstr "Cz" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "sliders for chroma channel (of JzCzhz)" msgstr "Ползунки для канала цветности (JzCzhz)" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "hz" msgstr "hz" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "sliders for hue channel (of JzCzhz)" msgstr "Ползунки для канала тона (JzCzhz)" -#: ../src/develop/blend_gui.c:2415 +#: ../src/develop/blend_gui.c:2431 msgid "" "adjustment based on input received by this module:\n" "* range defined by upper markers: blend fully\n" @@ -8074,7 +8400,7 @@ "* диапазон, заданный нижними маркерами: без смешивания\n" "* диапазон между соседними верхними/нижними маркерами: постепенное смешивание" -#: ../src/develop/blend_gui.c:2419 +#: ../src/develop/blend_gui.c:2435 msgid "" "adjustment based on unblended output of this module:\n" "* range defined by upper markers: blend fully\n" @@ -8086,19 +8412,19 @@ "* диапазон, заданный нижними маркерами: без смешивания\n" "* диапазон между соседними верхними/нижними маркерами: постепенное смешивание" -#: ../src/develop/blend_gui.c:2516 +#: ../src/develop/blend_gui.c:2532 msgid "reset blend mask settings" msgstr "Сбросить параметры маски смешивания" -#: ../src/develop/blend_gui.c:2527 ../src/iop/atrous.c:1665 -#: ../src/iop/colorzones.c:2399 ../src/iop/denoiseprofile.c:3707 -#: ../src/iop/rawdenoise.c:891 ../src/iop/rgbcurve.c:1357 -#: ../src/iop/rgblevels.c:1002 ../src/iop/tonecurve.c:1133 +#: ../src/develop/blend_gui.c:2543 ../src/iop/atrous.c:1797 +#: ../src/iop/colorzones.c:2641 ../src/iop/denoiseprofile.c:3711 +#: ../src/iop/rawdenoise.c:907 ../src/iop/rgbcurve.c:1357 +#: ../src/iop/rgblevels.c:1041 ../src/iop/tonecurve.c:1155 msgid "channel" msgstr "Канал" -#: ../src/develop/blend_gui.c:2542 ../src/iop/colorzones.c:2413 -#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1142 +#: ../src/develop/blend_gui.c:2558 ../src/iop/colorzones.c:2660 +#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1164 msgid "" "pick GUI color from image\n" "ctrl+click or right-click to select an area" @@ -8106,12 +8432,12 @@ "выбрать цвет графического интерфейса из изображения\n" "ctrl+щелчок или щелчок правой кнопкой мыши, чтобы выбрать область" -#: ../src/develop/blend_gui.c:2545 ../src/iop/colorzones.c:2415 +#: ../src/develop/blend_gui.c:2561 ../src/iop/colorzones.c:2662 #: ../src/iop/rgbcurve.c:1369 msgid "show color" msgstr "Показать цвет" -#: ../src/develop/blend_gui.c:2554 +#: ../src/develop/blend_gui.c:2570 msgid "" "set the range based on an area from the image\n" "drag to use the input image\n" @@ -8121,19 +8447,19 @@ "Перетащить для выбора исходного изображения.\n" "Ctrl+Перетащить для выбора конечного изображения." -#: ../src/develop/blend_gui.c:2557 +#: ../src/develop/blend_gui.c:2573 msgid "set range" msgstr "Установить расстояние" -#: ../src/develop/blend_gui.c:2560 +#: ../src/develop/blend_gui.c:2576 msgid "invert all channel's polarities" msgstr "Инвертировать полярность всех каналов" -#: ../src/develop/blend_gui.c:2584 +#: ../src/develop/blend_gui.c:2600 msgid "toggle polarity. best seen by enabling 'display mask'" msgstr "Переключить полярность" -#: ../src/develop/blend_gui.c:2613 +#: ../src/develop/blend_gui.c:2629 msgid "" "double-click to reset.\n" "press 'a' to toggle available slider modes.\n" @@ -8145,42 +8471,42 @@ "Нажмите «c» для переключения режимов каналов.\n" "Нажмите «m» для переключения режимов масок." -#: ../src/develop/blend_gui.c:2640 ../src/develop/blend_gui.c:3531 -#: ../src/iop/basicadj.c:600 ../src/iop/colorbalancergb.c:2090 -#: ../src/iop/exposure.c:1120 ../src/iop/exposure.c:1135 -#: ../src/iop/filmic.c:1503 ../src/iop/filmic.c:1516 ../src/iop/filmic.c:1558 -#: ../src/iop/filmicrgb.c:4440 ../src/iop/filmicrgb.c:4451 -#: ../src/iop/filmicrgb.c:4485 ../src/iop/filmicrgb.c:4495 -#: ../src/iop/graduatednd.c:1113 ../src/iop/negadoctor.c:1011 -#: ../src/iop/profile_gamma.c:643 ../src/iop/profile_gamma.c:649 -#: ../src/iop/relight.c:262 ../src/iop/soften.c:378 ../src/iop/toneequal.c:3326 -#: ../src/iop/toneequal.c:3329 ../src/iop/toneequal.c:3332 -#: ../src/iop/toneequal.c:3335 ../src/iop/toneequal.c:3338 -#: ../src/iop/toneequal.c:3341 ../src/iop/toneequal.c:3344 -#: ../src/iop/toneequal.c:3347 ../src/iop/toneequal.c:3350 -#: ../src/iop/toneequal.c:3472 ../src/iop/toneequal.c:3481 -#: ../src/iop/toneequal.c:3494 ../src/views/darkroom.c:2453 +#: ../src/develop/blend_gui.c:2656 ../src/develop/blend_gui.c:3577 +#: ../src/iop/basicadj.c:630 ../src/iop/colorbalancergb.c:2161 +#: ../src/iop/exposure.c:1138 ../src/iop/exposure.c:1153 +#: ../src/iop/filmic.c:1528 ../src/iop/filmic.c:1541 ../src/iop/filmic.c:1583 +#: ../src/iop/filmicrgb.c:4504 ../src/iop/filmicrgb.c:4515 +#: ../src/iop/filmicrgb.c:4549 ../src/iop/filmicrgb.c:4559 +#: ../src/iop/graduatednd.c:1082 ../src/iop/negadoctor.c:1030 +#: ../src/iop/profile_gamma.c:657 ../src/iop/profile_gamma.c:663 +#: ../src/iop/relight.c:258 ../src/iop/soften.c:373 ../src/iop/toneequal.c:3379 +#: ../src/iop/toneequal.c:3382 ../src/iop/toneequal.c:3385 +#: ../src/iop/toneequal.c:3388 ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3394 ../src/iop/toneequal.c:3397 +#: ../src/iop/toneequal.c:3400 ../src/iop/toneequal.c:3403 +#: ../src/iop/toneequal.c:3525 ../src/iop/toneequal.c:3534 +#: ../src/iop/toneequal.c:3547 ../src/views/darkroom.c:2292 msgid " EV" msgstr " EV" -#: ../src/develop/blend_gui.c:2642 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:2951 ../src/develop/blend_gui.c:3014 -#: ../src/develop/blend_gui.c:3499 ../src/develop/blend_gui.c:3529 -#: ../src/develop/blend_gui.c:3542 ../src/develop/blend_gui.c:3559 -#: ../src/develop/blend_gui.c:3583 ../src/develop/blend_gui.c:3593 -#: ../src/develop/blend_gui.c:3602 ../src/develop/blend_gui.c:3613 +#: ../src/develop/blend_gui.c:2658 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:2966 ../src/develop/blend_gui.c:3029 +#: ../src/develop/blend_gui.c:3545 ../src/develop/blend_gui.c:3575 +#: ../src/develop/blend_gui.c:3588 ../src/develop/blend_gui.c:3605 +#: ../src/develop/blend_gui.c:3629 ../src/develop/blend_gui.c:3641 +#: ../src/develop/blend_gui.c:3652 ../src/develop/blend_gui.c:3663 msgid "blend" msgstr "Смешивание" -#: ../src/develop/blend_gui.c:2642 +#: ../src/develop/blend_gui.c:2658 msgid "boost factor" msgstr "Коэффициент усиления" -#: ../src/develop/blend_gui.c:2645 +#: ../src/develop/blend_gui.c:2661 msgid "adjust the boost factor of the channel mask" msgstr "Коэффициент усиления маски в данном канале" -#: ../src/develop/blend_gui.c:2682 +#: ../src/develop/blend_gui.c:2698 #, c-format msgid "%d shape used" msgid_plural "%d shapes used" @@ -8188,128 +8514,162 @@ msgstr[1] "%d фигуры" msgstr[2] "%d фигур" -#: ../src/develop/blend_gui.c:2687 ../src/develop/blend_gui.c:2743 -#: ../src/develop/blend_gui.c:2831 ../src/develop/blend_gui.c:2952 +#: ../src/develop/blend_gui.c:2703 ../src/develop/blend_gui.c:2759 +#: ../src/develop/blend_gui.c:2847 ../src/develop/blend_gui.c:2967 msgid "no mask used" msgstr "Отсутствует" -#: ../src/develop/blend_gui.c:2751 +#: ../src/develop/blend_gui.c:2767 msgid "toggle polarity of drawn mask" msgstr "Инвертировать маску" -#: ../src/develop/blend_gui.c:2760 +#: ../src/develop/blend_gui.c:2776 msgid "show and edit mask elements" msgstr "Редактируемые элементы маски" -#: ../src/develop/blend_gui.c:2761 +#: ../src/develop/blend_gui.c:2777 msgid "show and edit in restricted mode" msgstr "Показывать и менять фигуры в ограниченном режиме" -#: ../src/develop/blend_gui.c:2768 ../src/libs/masks.c:998 -#: ../src/libs/masks.c:1816 ../src/libs/masks.c:1820 +#: ../src/develop/blend_gui.c:2784 ../src/libs/masks.c:1014 +#: ../src/libs/masks.c:1812 ../src/libs/masks.c:1816 msgid "add gradient" msgstr "Добавить градиент" -#: ../src/develop/blend_gui.c:2769 +#: ../src/develop/blend_gui.c:2785 msgid "add multiple gradients" msgstr "добавляет несколько градиентов" -#: ../src/develop/blend_gui.c:2776 ../src/iop/retouch.c:2238 -#: ../src/libs/masks.c:978 ../src/libs/masks.c:1852 ../src/libs/masks.c:1856 +#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2466 +#: ../src/libs/masks.c:994 ../src/libs/masks.c:1848 ../src/libs/masks.c:1852 msgid "add brush" msgstr "Добавить кисть" -#: ../src/develop/blend_gui.c:2777 ../src/iop/retouch.c:2238 +#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2466 msgid "add multiple brush strokes" msgstr "добавляет несколько элементов" -#: ../src/develop/blend_gui.c:2784 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 ../src/libs/masks.c:993 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1829 +#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 ../src/libs/masks.c:1009 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1825 msgid "add path" msgstr "Добавить контур" -#: ../src/develop/blend_gui.c:2785 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 +#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 msgid "add multiple paths" msgstr "добавляет несколько элементов" -#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 ../src/libs/masks.c:988 ../src/libs/masks.c:1834 -#: ../src/libs/masks.c:1838 +#: ../src/develop/blend_gui.c:2808 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 ../src/libs/masks.c:1004 ../src/libs/masks.c:1830 +#: ../src/libs/masks.c:1834 msgid "add ellipse" msgstr "Добавить эллипс" -#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 +#: ../src/develop/blend_gui.c:2809 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 msgid "add multiple ellipses" msgstr "добавляет несколько элементов" -#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 ../src/libs/masks.c:983 ../src/libs/masks.c:1843 -#: ../src/libs/masks.c:1847 +#: ../src/develop/blend_gui.c:2816 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 ../src/libs/masks.c:999 ../src/libs/masks.c:1839 +#: ../src/libs/masks.c:1843 msgid "add circle" msgstr "Добавить окружность" -#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 +#: ../src/develop/blend_gui.c:2817 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 msgid "add multiple circles" msgstr "добавляет несколько элементов" -#: ../src/develop/blend_gui.c:2961 +#: ../src/develop/blend_gui.c:2976 msgid "toggle polarity of raster mask" msgstr "Инвертировать маску" -#: ../src/develop/blend_gui.c:3101 +#: ../src/develop/blend_gui.c:3119 msgid "normal & difference" msgstr "Обычные и разностные" -#: ../src/develop/blend_gui.c:3106 +#: ../src/develop/blend_gui.c:3124 msgid "lighten" msgstr "Осветление" -#: ../src/develop/blend_gui.c:3113 +#: ../src/develop/blend_gui.c:3131 msgid "darken" msgstr "Затемнение" -#: ../src/develop/blend_gui.c:3120 +#: ../src/develop/blend_gui.c:3138 msgid "contrast enhancing" msgstr "Усиление контраста" -#: ../src/develop/blend_gui.c:3127 ../src/develop/blend_gui.c:3150 +#: ../src/develop/blend_gui.c:3145 ../src/develop/blend_gui.c:3168 msgid "color channel" msgstr "Цветовой канал" -#: ../src/develop/blend_gui.c:3138 ../src/develop/blend_gui.c:3153 +#: ../src/develop/blend_gui.c:3156 ../src/develop/blend_gui.c:3171 msgid "chromaticity & lightness" msgstr "Цветность и яркость" -#: ../src/develop/blend_gui.c:3145 +#: ../src/develop/blend_gui.c:3163 msgid "normal & arithmetic" msgstr "Обычные и арифметические" #. add deprecated blend mode -#: ../src/develop/blend_gui.c:3166 +#: ../src/develop/blend_gui.c:3184 msgid "deprecated" msgstr "Устаревшие" -#: ../src/develop/blend_gui.c:3478 +#. should never happen: unknown blend mode +#: ../src/develop/blend_gui.c:3188 +#, c-format +msgid "unknown blend mode '%d' in module '%s'" +msgstr "неизвестный режим смешивания '%d' в модуле '%s'" + +#: ../src/develop/blend_gui.c:3497 msgid "blending options" msgstr "Параметры смешивания" -#: ../src/develop/blend_gui.c:3500 ../src/libs/history.c:949 -msgid "blend mode" -msgstr "Режим смешивания" +#: ../src/develop/blend_gui.c:3516 +msgid "blend mask" +msgstr "Наложение маски" + +#: ../src/develop/blend_gui.c:3520 +msgid "display mask and/or color channel" +msgstr "Показать маску и/или канал." -#: ../src/develop/blend_gui.c:3503 +#: ../src/develop/blend_gui.c:3525 +msgid "" +"display mask and/or color channel.\n" +"ctrl+click to display mask,\n" +"shift+click to display channel.\n" +"hover over parametric mask slider to select channel for display" +msgstr "" +"Показать маску и/или канал.\n" +"Ctrl+Щелчок отображает маску,\n" +"Shift+Щелчок отображает канал.\n" +"Мышь поверх ползунка канала отображает его." + +#: ../src/develop/blend_gui.c:3532 +msgid "temporarily switch off blend mask" +msgstr "Временно отключить маску смешивания" + +#: ../src/develop/blend_gui.c:3537 +msgid "" +"temporarily switch off blend mask.\n" +"only for module in focus" +msgstr "" +"Временно отключить маску смешивания.\n" +"Только для активного модуля" + +#: ../src/develop/blend_gui.c:3549 msgid "choose blending mode" msgstr "Выбор режима смешивания" -#: ../src/develop/blend_gui.c:3513 +#: ../src/develop/blend_gui.c:3559 msgid "toggle blend order" msgstr "Переключить порядок смешивания" -#: ../src/develop/blend_gui.c:3519 +#: ../src/develop/blend_gui.c:3565 msgid "" "toggle the blending order between the input and the output of the module,\n" "by default the output will be blended on top of the input,\n" @@ -8319,39 +8679,39 @@ "По умолчанию изображение с выхода будет наложено поверх входного.\n" "В противном случае изображение со входа будет наложено поверх выходного." -#: ../src/develop/blend_gui.c:3530 ../src/libs/history.c:953 -msgid "blend fulcrum" -msgstr "Смешивание, опорная точка" +#: ../src/develop/blend_gui.c:3576 +msgid "fulcrum" +msgstr "Опорная точка" -#: ../src/develop/blend_gui.c:3534 +#: ../src/develop/blend_gui.c:3580 msgid "adjust the fulcrum used by some blending operations" msgstr "Опорная точка, используемая некоторыми операциями смешивания" #. Add opacity/scale sliders to table -#: ../src/develop/blend_gui.c:3542 ../src/iop/watermark.c:1314 -#: ../src/libs/masks.c:104 +#: ../src/develop/blend_gui.c:3588 ../src/iop/watermark.c:1362 +#: ../src/libs/masks.c:105 msgid "opacity" msgstr "Непрозрачность" -#: ../src/develop/blend_gui.c:3546 +#: ../src/develop/blend_gui.c:3591 msgid "set the opacity of the blending" msgstr "Непрозрачность при смешивании" -#: ../src/develop/blend_gui.c:3550 ../src/libs/history.c:956 +#: ../src/develop/blend_gui.c:3596 ../src/libs/history.c:956 msgid "combine masks" msgstr "Объединение масок" -#: ../src/develop/blend_gui.c:3552 +#: ../src/develop/blend_gui.c:3598 msgid "" "how to combine individual drawn mask and different channels of parametric " "mask" msgstr "Как объединить нарисованную маску с каналами параметрической" -#: ../src/develop/blend_gui.c:3559 +#: ../src/develop/blend_gui.c:3605 msgid "details threshold" msgstr "Порог детализации" -#: ../src/develop/blend_gui.c:3563 +#: ../src/develop/blend_gui.c:3609 msgid "" "adjust the threshold for the details mask (using raw data),\n" "positive values select areas with strong details,\n" @@ -8361,38 +8721,38 @@ "Позитивные значения выделяют области изображения с мелкими деталями.\n" "Негативные значения выделяют монотонные области изображения." -#: ../src/develop/blend_gui.c:3571 ../src/libs/history.c:959 +#: ../src/develop/blend_gui.c:3617 ../src/libs/history.c:959 msgid "feathering guide" msgstr "Тип растушёвки" -#: ../src/develop/blend_gui.c:3574 +#: ../src/develop/blend_gui.c:3620 msgid "" "choose to guide mask by input or output image and\n" "choose to apply feathering before or after mask blur" msgstr "Переключить порядок применения растушёвки" -#: ../src/develop/blend_gui.c:3583 ../src/libs/history.c:958 +#: ../src/develop/blend_gui.c:3629 ../src/libs/history.c:958 msgid "feathering radius" msgstr "Растушёвка" -#: ../src/develop/blend_gui.c:3586 +#: ../src/develop/blend_gui.c:3632 msgid "spatial radius of feathering" msgstr "Радиус растушёвки краёв маски" -#: ../src/develop/blend_gui.c:3593 +#: ../src/develop/blend_gui.c:3641 msgid "blurring radius" msgstr "Радиус размытия" -#: ../src/develop/blend_gui.c:3596 +#: ../src/develop/blend_gui.c:3644 msgid "radius for gaussian blur of blend mask" msgstr "Радиус гауссова размытия краёв маски" -#: ../src/develop/blend_gui.c:3602 ../src/iop/retouch.c:2453 +#: ../src/develop/blend_gui.c:3652 ../src/iop/retouch.c:2738 #: ../src/libs/history.c:954 msgid "mask opacity" msgstr "Непрозрачность маски" -#: ../src/develop/blend_gui.c:3606 +#: ../src/develop/blend_gui.c:3656 msgid "" "shifts and tilts the tone curve of the blend mask to adjust its brightness\n" "without affecting fully transparent/fully opaque regions" @@ -8400,54 +8760,34 @@ "Настройка яркости маски путём сдвига и наклона тональной кривой\n" "без влияния на прозрачные и полупрозрачные участки изображения." -#: ../src/develop/blend_gui.c:3613 ../src/libs/history.c:962 +#: ../src/develop/blend_gui.c:3663 ../src/libs/history.c:962 msgid "mask contrast" msgstr "Контраст маски" -#: ../src/develop/blend_gui.c:3617 +#: ../src/develop/blend_gui.c:3667 msgid "" "gives the tone curve of the blend mask an s-like shape to adjust its contrast" msgstr "Придаёт S-подобную форму тональной кривой маски" -#: ../src/develop/blend_gui.c:3621 +#: ../src/develop/blend_gui.c:3671 msgid "mask refinement" msgstr "Параметры маски" -#: ../src/develop/blend_gui.c:3625 -msgid "display mask and/or color channel" -msgstr "Показать маску и/или канал." - -#: ../src/develop/blend_gui.c:3630 -msgid "" -"display mask and/or color channel.\n" -"ctrl+click to display mask,\n" -"shift+click to display channel.\n" -"hover over parametric mask slider to select channel for display" -msgstr "" -"Показать маску и/или канал.\n" -"Ctrl+Щелчок отображает маску,\n" -"Shift+Щелчок отображает канал.\n" -"Мышь поверх ползунка канала отображает его." - -#: ../src/develop/blend_gui.c:3637 -msgid "temporarily switch off blend mask" -msgstr "Временно отключить маску смешивания" - -#: ../src/develop/blend_gui.c:3642 +#: ../src/develop/develop.c:732 msgid "" -"temporarily switch off blend mask.\n" -"only for module in focus" +"autosaving history has been disabled for this session because of a slow " +"drive used" msgstr "" -"Временно отключить маску смешивания.\n" -"Только для активного модуля" +"автосохранение истории было отключено для этого сеанса из-за использования " +"медленного диска" -#: ../src/develop/develop.c:2303 +#: ../src/develop/develop.c:2202 #, c-format msgid "%s: module `%s' version mismatch: %d != %d" msgstr "%s: несоответствие версии модуля «%s»: %d != %d" -#: ../src/develop/develop.c:2834 -msgid "module duplicate, can't move new instance after the base one\n" +#: ../src/develop/develop.c:3016 +msgid "duplicate module, can't move new instance after the base one\n" msgstr "" "Модуль дублируется, не удается переместить новый экземпляр после базового\n" @@ -8459,70 +8799,69 @@ msgid "duplicate instance" msgstr "Дублировать" -#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3739 -#: ../src/libs/masks.c:1152 +#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3755 +#: ../src/libs/masks.c:1146 msgid "move up" msgstr "Поднять" -#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3740 -#: ../src/libs/masks.c:1157 +#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3756 +#: ../src/libs/masks.c:1151 msgid "move down" msgstr "Опустить" #. delete button label and tooltip will be updated based on trash pref -#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3742 -#: ../src/gui/accelerators.c:155 ../src/gui/presets.c:562 -#: ../src/libs/image.c:285 ../src/libs/image.c:480 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 +#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3758 +#: ../src/gui/accelerators.c:173 ../src/libs/image.c:303 +#: ../src/libs/image.c:513 msgid "delete" msgstr "Удалить" -#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3743 -#: ../src/libs/modulegroups.c:3464 ../src/libs/modulegroups.c:3815 +#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3759 +#: ../src/libs/modulegroups.c:3817 msgid "rename" msgstr "Переименовать" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched on" msgstr "%s: включен" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched off" msgstr "%s: выключен" -#: ../src/develop/imageop.c:2654 +#: ../src/develop/imageop.c:2663 msgid "unknown mask" msgstr "Неизвестная маска" -#: ../src/develop/imageop.c:2658 +#: ../src/develop/imageop.c:2667 msgid "drawn + parametric mask" msgstr "Нарисованная и параметрическая маска" -#: ../src/develop/imageop.c:2667 +#: ../src/develop/imageop.c:2676 #, c-format msgid "this module has a `%s'" msgstr "Тип маски: %s" -#: ../src/develop/imageop.c:2672 +#: ../src/develop/imageop.c:2681 #, c-format msgid "taken from module %s" msgstr "взято из модуля %s" -#: ../src/develop/imageop.c:2677 +#: ../src/develop/imageop.c:2686 msgid "click to display (module must be activated first)" msgstr "Щелчок переключает видимость маски (модуль должен быть активирован)." -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "purpose" msgstr "Назначение" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "process" msgstr "Обработка" -#: ../src/develop/imageop.c:2906 +#: ../src/develop/imageop.c:2917 msgid "" "multiple instance actions\n" "right-click creates new instance" @@ -8530,7 +8869,7 @@ "Копии модуля.\n" "Щелчок правой кнопкой мыши создаёт новую копию." -#: ../src/develop/imageop.c:2921 +#: ../src/develop/imageop.c:2932 msgid "" "reset parameters\n" "ctrl+click to reapply any automatic presets" @@ -8538,7 +8877,7 @@ "Сбросить настройки.\n" "Ctrl+Щелчок для применения автоматических настроек." -#: ../src/develop/imageop.c:2933 +#: ../src/develop/imageop.c:2944 msgid "" "presets\n" "right-click to apply on new instance" @@ -8546,15 +8885,15 @@ "Профили.\n" "Щелчок правой кнопкой мыши для применения над новой копией." -#: ../src/develop/imageop.c:3183 ../src/develop/imageop.c:3205 +#: ../src/develop/imageop.c:3194 ../src/develop/imageop.c:3216 msgid "ERROR" msgstr "ОШИБКА!" -#: ../src/develop/imageop.c:3620 +#: ../src/develop/imageop.c:3622 msgid "unsupported input" msgstr "Неподдерживаемый формат" -#: ../src/develop/imageop.c:3621 +#: ../src/develop/imageop.c:3623 msgid "" "you have placed this module at\n" "a position in the pipeline where\n" @@ -8565,49 +8904,49 @@ "что формат данных на входе-выходе\n" "не соответствует требованиям модуля." -#: ../src/develop/imageop.c:3738 ../src/develop/imageop.c:3748 -#: ../src/gui/accelerators.c:151 ../src/libs/lib.c:1414 +#: ../src/develop/imageop.c:3754 ../src/develop/imageop.c:3764 +#: ../src/gui/accelerators.c:169 ../src/libs/lib.c:1415 msgid "show" msgstr "Показать" -#: ../src/develop/imageop.c:3741 ../src/libs/modulegroups.c:3310 -#: ../src/libs/modulegroups.c:3436 ../src/libs/modulegroups.c:3817 -#: ../src/libs/tagging.c:3248 +#: ../src/develop/imageop.c:3757 ../src/libs/modulegroups.c:3315 +#: ../src/libs/modulegroups.c:3438 ../src/libs/modulegroups.c:3819 +#: ../src/libs/tagging.c:3279 msgid "new" msgstr "Создать" -#: ../src/develop/imageop.c:3744 ../src/libs/duplicate.c:405 -#: ../src/libs/image.c:495 ../src/libs/modulegroups.c:3813 +#: ../src/develop/imageop.c:3760 ../src/libs/duplicate.c:411 +#: ../src/libs/image.c:534 ../src/libs/modulegroups.c:3815 msgid "duplicate" msgstr "Создать копию" -#: ../src/develop/imageop.c:3749 +#: ../src/develop/imageop.c:3765 msgid "enable" msgstr "Включить" -#: ../src/develop/imageop.c:3750 ../src/gui/accelerators.c:167 +#: ../src/develop/imageop.c:3766 ../src/gui/accelerators.c:185 msgid "focus" msgstr "Фокус" -#: ../src/develop/imageop.c:3751 ../src/gui/accelerators.c:2617 +#: ../src/develop/imageop.c:3767 ../src/gui/accelerators.c:2874 msgid "instance" msgstr "Копия" -#: ../src/develop/imageop.c:3752 ../src/gui/accelerators.c:112 -#: ../src/gui/accelerators.c:122 ../src/gui/gtk.c:3009 ../src/gui/gtk.c:3056 -#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:603 -#: ../src/gui/styles_dialog.c:625 ../src/iop/atrous.c:1512 -#: ../src/libs/lib.c:1415 ../src/libs/modulegroups.c:3882 +#: ../src/develop/imageop.c:3768 ../src/gui/accelerators.c:130 +#: ../src/gui/accelerators.c:140 ../src/gui/gtk.c:3055 ../src/gui/gtk.c:3102 +#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:615 +#: ../src/gui/styles_dialog.c:637 ../src/iop/atrous.c:1626 +#: ../src/libs/lib.c:1416 ../src/libs/modulegroups.c:3884 msgid "reset" msgstr "Сбросить" #. Adding the outer container -#: ../src/develop/imageop.c:3753 ../src/gui/preferences.c:798 -#: ../src/libs/lib.c:1416 +#: ../src/develop/imageop.c:3769 ../src/gui/preferences.c:796 +#: ../src/libs/lib.c:1417 msgid "presets" msgstr "Профили" -#: ../src/develop/imageop.c:3773 +#: ../src/develop/imageop.c:3789 msgid "processing module" msgstr "Обрабатывается модуль" @@ -8620,17 +8959,17 @@ "%s.\n" "Ctrl+Щелчок %s." -#: ../src/develop/lightroom.c:1083 +#: ../src/develop/lightroom.c:1137 msgid "cannot find Lightroom XMP!" msgstr "Ошибка при поиске файла XMP от Lightroom!" -#: ../src/develop/lightroom.c:1115 ../src/develop/lightroom.c:1137 -#: ../src/develop/lightroom.c:1157 +#: ../src/develop/lightroom.c:1169 ../src/develop/lightroom.c:1191 +#: ../src/develop/lightroom.c:1211 #, c-format msgid "`%s' is not a Lightroom XMP!" msgstr "`%s' не является файлом XMP от Lightroom!" -#: ../src/develop/lightroom.c:1556 +#: ../src/develop/lightroom.c:1613 #, c-format msgid "%s has been imported" msgid_plural "%s have been imported" @@ -8638,37 +8977,37 @@ msgstr[1] "%s импортированы" msgstr[2] "%s импортированы" -#: ../src/develop/masks/brush.c:1356 ../src/develop/masks/brush.c:1410 +#: ../src/develop/masks/brush.c:1346 ../src/develop/masks/brush.c:1400 #, c-format msgid "hardness: %3.2f%%" msgstr "Резкость: %3.2f%%" -#: ../src/develop/masks/brush.c:1372 ../src/develop/masks/brush.c:1470 +#: ../src/develop/masks/brush.c:1362 ../src/develop/masks/brush.c:1460 #: ../src/develop/masks/circle.c:148 ../src/develop/masks/circle.c:193 #: ../src/develop/masks/ellipse.c:484 ../src/develop/masks/ellipse.c:546 -#: ../src/develop/masks/path.c:1273 +#: ../src/develop/masks/path.c:1255 #, c-format msgid "size: %3.2f%%" msgstr "Размер: %3.2f%%" -#: ../src/develop/masks/brush.c:3247 +#: ../src/develop/masks/brush.c:3191 msgid "[BRUSH] change size" msgstr "[КИСТЬ] изменить размер" -#: ../src/develop/masks/brush.c:3249 +#: ../src/develop/masks/brush.c:3193 msgid "[BRUSH] change hardness" msgstr "[КИСТЬ] изменить жёсткость" -#: ../src/develop/masks/brush.c:3251 +#: ../src/develop/masks/brush.c:3195 msgid "[BRUSH] change opacity" msgstr "[КИСТЬ] изменить непрозрачность" -#: ../src/develop/masks/brush.c:3263 +#: ../src/develop/masks/brush.c:3207 #, c-format msgid "brush #%d" msgstr "Кисть #%d" -#: ../src/develop/masks/brush.c:3276 +#: ../src/develop/masks/brush.c:3220 #, c-format msgid "" "<b>size</b>: scroll, <b>hardness</b>: shift+scroll\n" @@ -8677,35 +9016,35 @@ "<b>Размер</b>: Прокрутка, <b>Растушёвка</b>: Shift+Прокрутка\n" "<b>Непрозрачность</b>: Ctrl+Прокрутка (%d%%)" -#: ../src/develop/masks/brush.c:3279 +#: ../src/develop/masks/brush.c:3223 msgid "<b>size</b>: scroll" msgstr "<b>Размер</b>: Прокрутка" #: ../src/develop/masks/circle.c:137 ../src/develop/masks/circle.c:181 #: ../src/develop/masks/ellipse.c:470 ../src/develop/masks/ellipse.c:531 -#: ../src/develop/masks/path.c:1205 +#: ../src/develop/masks/path.c:1187 #, c-format msgid "feather size: %3.2f%%" msgstr "Размер растушёвки: %3.2f%%" -#: ../src/develop/masks/circle.c:1510 +#: ../src/develop/masks/circle.c:1462 msgid "[CIRCLE] change size" msgstr "[ОКРУЖНОСТЬ] изменить размер" -#: ../src/develop/masks/circle.c:1512 +#: ../src/develop/masks/circle.c:1464 msgid "[CIRCLE] change feather size" msgstr "[ОКРУЖНОСТЬ] изменить размер растушёвки" -#: ../src/develop/masks/circle.c:1514 +#: ../src/develop/masks/circle.c:1466 msgid "[CIRCLE] change opacity" msgstr "[ОКРУЖНОСТЬ] изменить непрозрачность" -#: ../src/develop/masks/circle.c:1527 +#: ../src/develop/masks/circle.c:1479 #, c-format msgid "circle #%d" msgstr "Окружность #%d" -#: ../src/develop/masks/circle.c:1538 ../src/develop/masks/path.c:3490 +#: ../src/develop/masks/circle.c:1490 ../src/develop/masks/path.c:3406 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8719,32 +9058,32 @@ msgid "rotation: %3.f°" msgstr "Вращение: %3.f°" -#: ../src/develop/masks/ellipse.c:2068 +#: ../src/develop/masks/ellipse.c:2015 msgid "[ELLIPSE] change size" msgstr "[ЭЛЛИПС] изменить размер" -#: ../src/develop/masks/ellipse.c:2071 +#: ../src/develop/masks/ellipse.c:2018 msgid "[ELLIPSE] change feather size" msgstr "[ЭЛЛИПС] изменить размер растушёвки" -#: ../src/develop/masks/ellipse.c:2074 ../src/develop/masks/ellipse.c:2083 +#: ../src/develop/masks/ellipse.c:2021 ../src/develop/masks/ellipse.c:2030 msgid "[ELLIPSE] rotate shape" msgstr "[ЭЛЛИПС] вращение фигуры" -#: ../src/develop/masks/ellipse.c:2077 +#: ../src/develop/masks/ellipse.c:2024 msgid "[ELLIPSE] change opacity" msgstr "[ЭЛЛИПС] изменить непрозрачность" -#: ../src/develop/masks/ellipse.c:2080 +#: ../src/develop/masks/ellipse.c:2027 msgid "[ELLIPSE] switch feathering mode" msgstr "[ЭЛЛИПС] переключить режим растушёвки" -#: ../src/develop/masks/ellipse.c:2090 +#: ../src/develop/masks/ellipse.c:2037 #, c-format msgid "ellipse #%d" msgstr "Эллипс #%d" -#: ../src/develop/masks/ellipse.c:2128 +#: ../src/develop/masks/ellipse.c:2075 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8754,11 +9093,11 @@ "<b>Вращение</b>: Сtrl+Shift+Прокрутка, <b>Непрозрачность</b>: Ctrl+Прокрутка " "(%d%%)" -#: ../src/develop/masks/ellipse.c:2132 +#: ../src/develop/masks/ellipse.c:2079 msgid "<b>rotate</b>: ctrl+drag" msgstr "<b>Вращение</b>: Ctrl+Перетащить" -#: ../src/develop/masks/ellipse.c:2135 +#: ../src/develop/masks/ellipse.c:2082 #, c-format msgid "" "<b>feather mode</b>: shift+click, <b>rotate</b>: ctrl+drag\n" @@ -8779,32 +9118,32 @@ msgid "curvature: %3.2f%%" msgstr "Кривизна: %3.2f%%" -#: ../src/develop/masks/gradient.c:1555 +#: ../src/develop/masks/gradient.c:1514 msgid "[GRADIENT on pivot] rotate shape" msgstr "[ГРАДИЕНТ на оси] вращение фигуры" -#: ../src/develop/masks/gradient.c:1557 +#: ../src/develop/masks/gradient.c:1516 msgid "[GRADIENT creation] set rotation" msgstr "[ГРАДИЕНТ создание] указать вращение" -#: ../src/develop/masks/gradient.c:1559 +#: ../src/develop/masks/gradient.c:1518 msgid "[GRADIENT] change curvature" msgstr "[ГРАДИЕНТ] изменить кривизну" -#: ../src/develop/masks/gradient.c:1561 +#: ../src/develop/masks/gradient.c:1520 msgid "[GRADIENT] change compression" msgstr "[ГРАДИЕНТ] изменить сжатие" -#: ../src/develop/masks/gradient.c:1563 +#: ../src/develop/masks/gradient.c:1522 msgid "[GRADIENT] change opacity" msgstr "[ГРАДИЕНТ] изменить непрозрачность" -#: ../src/develop/masks/gradient.c:1576 +#: ../src/develop/masks/gradient.c:1535 #, c-format msgid "gradient #%d" msgstr "Градиент #%d" -#: ../src/develop/masks/gradient.c:1587 +#: ../src/develop/masks/gradient.c:1546 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8814,7 +9153,7 @@ "<b>Вращение</b>: Щелчок+Перетащить, <b>Непрозрачность</b>: Ctrl+Прокрутка (%d" "%%)" -#: ../src/develop/masks/gradient.c:1592 +#: ../src/develop/masks/gradient.c:1551 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8823,7 +9162,7 @@ "<b>Кривизна</b>: Прокрутка, <b>Сжатие</b>: Shift+Прокрутка\n" "<b>Непрозрачность</b>: Ctrl+Прокрутка (%d%%)" -#: ../src/develop/masks/gradient.c:1595 +#: ../src/develop/masks/gradient.c:1554 msgid "<b>rotate</b>: drag" msgstr "<b>Вращение</b>: Перетащить" @@ -8831,84 +9170,84 @@ msgid "[SHAPE] remove shape" msgstr "[ФИГУРА] удалить фигуру" -#: ../src/develop/masks/masks.c:306 +#: ../src/develop/masks/masks.c:305 #, c-format msgid "group `%s'" msgstr "Группа `%s'" -#: ../src/develop/masks/masks.c:423 +#: ../src/develop/masks/masks.c:422 #, c-format msgid "copy of `%s'" msgstr "Копия «%s»" -#: ../src/develop/masks/masks.c:984 +#: ../src/develop/masks/masks.c:985 #, c-format msgid "%s: mask version mismatch: %d != %d" msgstr "%s: несоответствие версий масок %d != %d" -#: ../src/develop/masks/masks.c:1239 ../src/develop/masks/masks.c:1906 +#: ../src/develop/masks/masks.c:1230 ../src/develop/masks/masks.c:1881 #, c-format msgid "opacity: %.0f%%" msgstr "Непрозрачность: %.0f%%" -#: ../src/develop/masks/masks.c:1650 ../src/libs/masks.c:1068 +#: ../src/develop/masks/masks.c:1625 ../src/libs/masks.c:1084 msgid "add existing shape" msgstr "Добавить готовую фигуру" -#: ../src/develop/masks/masks.c:1677 +#: ../src/develop/masks/masks.c:1652 msgid "use same shapes as" msgstr "Использовать ту же фигуру, что и" -#: ../src/develop/masks/masks.c:1990 +#: ../src/develop/masks/masks.c:1965 msgid "masks can not contain themselves" msgstr "Маски не могут содержать другие маски" -#: ../src/develop/masks/path.c:3433 +#: ../src/develop/masks/path.c:3349 msgid "[PATH creation] add a smooth node" msgstr "[КОНТУР создание] добавить гладкий узел" -#: ../src/develop/masks/path.c:3435 +#: ../src/develop/masks/path.c:3351 msgid "[PATH creation] add a sharp node" msgstr "[КОНТУР создание] добавить острый узел" -#: ../src/develop/masks/path.c:3437 +#: ../src/develop/masks/path.c:3353 msgid "[PATH creation] terminate path creation" msgstr "[КОНТУР создание] завершить контур" -#: ../src/develop/masks/path.c:3439 +#: ../src/develop/masks/path.c:3355 msgid "[PATH on node] switch between smooth/sharp node" msgstr "[КОНТУР на узле] переключить между гладким и острым узлом" -#: ../src/develop/masks/path.c:3441 +#: ../src/develop/masks/path.c:3357 msgid "[PATH on node] remove the node" msgstr "[КОНТУР на узле] удалить узел" -#: ../src/develop/masks/path.c:3443 +#: ../src/develop/masks/path.c:3359 msgid "[PATH on feather] reset curvature" msgstr "[КОНТУР на растушёвке] сбросить кривизну" -#: ../src/develop/masks/path.c:3445 +#: ../src/develop/masks/path.c:3361 msgid "[PATH on segment] add node" msgstr "[КОНТУР на сегменте] добавить узел" -#: ../src/develop/masks/path.c:3447 +#: ../src/develop/masks/path.c:3363 msgid "[PATH] change size" msgstr "[КОНТУР] изменить размер" -#: ../src/develop/masks/path.c:3449 +#: ../src/develop/masks/path.c:3365 msgid "[PATH] change feather size" msgstr "[КОНТУР] изменить размер растушёвки" -#: ../src/develop/masks/path.c:3451 +#: ../src/develop/masks/path.c:3367 msgid "[PATH] change opacity" msgstr "[КОНТУР] изменить непрозрачность" -#: ../src/develop/masks/path.c:3463 +#: ../src/develop/masks/path.c:3379 #, c-format msgid "path #%d" msgstr "Контур #%d" -#: ../src/develop/masks/path.c:3473 +#: ../src/develop/masks/path.c:3389 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>cancel</b>: right-click" @@ -8916,7 +9255,7 @@ "<b>Добавить узел</b>: Щелчок, <b>Добавить острый узел</b>: Сtrl+Щелчок\n" "<b>Отмена</b>: Щелчок правой кнопкой мыши" -#: ../src/develop/masks/path.c:3476 +#: ../src/develop/masks/path.c:3392 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>finish path</b>: right-click" @@ -8924,7 +9263,7 @@ "<b>Добавить узел</b>: Щелчок, <b>Добавить острый узел</b>: Сtrl+Щелчок\n" "<b>Завершить кривую</b>: Щелчок правой кнопкой мыши" -#: ../src/develop/masks/path.c:3479 +#: ../src/develop/masks/path.c:3395 msgid "" "<b>move node</b>: drag, <b>remove node</b>: right-click\n" "<b>switch smooth/sharp mode</b>: ctrl+click" @@ -8933,7 +9272,7 @@ "кнопкой мыши\n" "<b>Переключить плавный/острый узел</b>: Ctrl+Щелчок" -#: ../src/develop/masks/path.c:3483 +#: ../src/develop/masks/path.c:3399 msgid "" "<b>node curvature</b>: drag\n" "<b>reset curvature</b>: right-click" @@ -8941,7 +9280,7 @@ "<b>Кривизна узла</b>: Перетащить\n" "<b>Сбросить кривизну</b>: Щелчок правой кнопкой мыши" -#: ../src/develop/masks/path.c:3487 +#: ../src/develop/masks/path.c:3403 msgid "" "<b>move segment</b>: drag\n" "<b>add node</b>: ctrl+click" @@ -8949,11 +9288,11 @@ "<b>Переместить сегмент</b>: Перетащить\n" "<b>Добавить узел</b>: Ctrl+Щелчок" -#: ../src/develop/pixelpipe_hb.c:500 +#: ../src/develop/pixelpipe_hb.c:486 msgid "enabled as required" msgstr "Необходимый модуль" -#: ../src/develop/pixelpipe_hb.c:501 +#: ../src/develop/pixelpipe_hb.c:487 msgid "" "history had module disabled but it is required for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -8961,11 +9300,11 @@ "Модуль не может быть выключен для изображения данного типа.\n" "Может быть следствием копирования истории или применения профиля." -#: ../src/develop/pixelpipe_hb.c:508 +#: ../src/develop/pixelpipe_hb.c:494 msgid "disabled as not appropriate" msgstr "Отключенный модуль" -#: ../src/develop/pixelpipe_hb.c:509 +#: ../src/develop/pixelpipe_hb.c:495 msgid "" "history had module enabled but it is not allowed for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -8973,13 +9312,27 @@ "Модуль не может быть включен для изображения данного типа.\n" "Может быть следствием копирования истории или применения профиля." -#: ../src/develop/pixelpipe_hb.c:2705 +#: ../src/develop/pixelpipe_hb.c:2697 msgid "" -"darktable discovered problems with your OpenCL setup; disabling OpenCL for " -"this session!" -msgstr "Проблема совместимости OpenCL! OpenCL будет отключен в этом сеансе." +"OpenCL errors encountered; disabling OpenCL for this session! some possible " +"causes:\n" +" - OpenCL out of resources due to preference settings. please try with " +"defaults,\n" +" - buggy driver for some device. please run darktable with `-d opencl' to " +"identify,\n" +" - some drivers don't support needed number of events,\n" +" - too small headroom settings while using 'use all device memory'." +msgstr "" +"Обнаружены ошибки OpenCL; OpenCL отключен для этого сеанса! Вот некоторые " +"возможные причины:\n" +"- OpenCL не хватает ресурсов из-за пользовательских настроек. Пожалуйста, " +"попробуйте использовать значения по умолчанию,\n" +"- Один из драйверов содержит ошибки. Пожалуйста, запустите darktable с `-d " +"opencl', чтобы определить драйвер,\n" +"- Некоторые драйверы не поддерживают необходимое количество событий,\n" +"- слишком маленький резерв при использовании всей памяти устройства." -#: ../src/develop/pixelpipe_hb.c:2853 +#: ../src/develop/pixelpipe_hb.c:2847 #, c-format msgid "" "module '%s' can't get raster mask from module\n" @@ -8990,28 +9343,32 @@ "'%s' поскольку это обрабатывается позже в Pixel Pipe.\n" "Растровая маска игнорируется.." -#: ../src/develop/tiling.c:820 ../src/develop/tiling.c:1173 +#: ../src/develop/tiling.c:819 ../src/develop/tiling.c:1172 #, c-format -msgid "tiling failed for module '%s'. output might be garbled." -msgstr "Ошибка мозаичной обработки в модуле «%s»! Вывод может быть повреждён." +msgid "" +"tiling failed for module '%s'. the output most likely will be OK, but you " +"might want to check." +msgstr "" +"Ошибка мозаичной обработки в модуле «%s»! Вывод, скорее всего, не поврежден, " +"но вы можете проверить." -#: ../src/dtgtk/culling.c:254 +#: ../src/dtgtk/culling.c:223 msgid "you have reached the start of your selection" msgstr "Достигнуто начало выделения" -#: ../src/dtgtk/culling.c:263 +#: ../src/dtgtk/culling.c:232 msgid "you have reached the start of your collection" msgstr "Достигнуто начало коллекции" -#: ../src/dtgtk/culling.c:310 +#: ../src/dtgtk/culling.c:279 msgid "you have reached the end of your selection" msgstr "Достигнут конец выделения" -#: ../src/dtgtk/culling.c:337 +#: ../src/dtgtk/culling.c:306 msgid "you have reached the end of your collection" msgstr "Достигнут конец коллекции" -#: ../src/dtgtk/culling.c:446 +#: ../src/dtgtk/culling.c:415 #, c-format msgid "zooming is limited to %d images" msgstr "Ограничение масштабирования (максимальное количество снимков) %d" @@ -9105,7 +9462,7 @@ msgid "fixed" msgstr "Фиксированное" -#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1493 +#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1498 msgid "relative" msgstr "Относительные значения" @@ -9119,7 +9476,7 @@ msgstr "Минимальное" #: ../src/dtgtk/range.c:630 ../src/dtgtk/range.c:1780 ../src/dtgtk/range.c:1831 -#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:282 +#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:309 msgid "max" msgstr "Максимальное" @@ -9128,7 +9485,7 @@ msgstr "Тип даты" #. the date section -#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1505 msgid "date" msgstr "Дата" @@ -9153,7 +9510,7 @@ msgstr "Дни:" #. the time section -#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1505 msgid "time" msgstr "Дата и время" @@ -9172,8 +9529,8 @@ "Установите значение, чтобы оно всегда соответствовало текущей дате и времени" #. apply button -#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:162 -#: ../src/libs/metadata.c:901 ../src/libs/styles.c:897 +#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:180 +#: ../src/libs/metadata.c:735 ../src/libs/styles.c:901 msgid "apply" msgstr "Применить" @@ -9207,107 +9564,107 @@ msgid "grouped images" msgstr "Сгруппированные снимки" -#: ../src/dtgtk/thumbnail.c:820 ../src/dtgtk/thumbnail.c:1635 -#: ../src/iop/ashift.c:6191 ../src/iop/ashift.c:6280 ../src/iop/ashift.c:6282 -#: ../src/iop/ashift.c:6284 ../src/libs/navigation.c:110 -#: ../src/libs/navigation.c:190 +#: ../src/dtgtk/thumbnail.c:814 ../src/dtgtk/thumbnail.c:1623 +#: ../src/iop/ashift.c:6138 ../src/iop/ashift.c:6227 ../src/iop/ashift.c:6229 +#: ../src/iop/ashift.c:6231 ../src/libs/navigation.c:111 +#: ../src/libs/navigation.c:193 msgid "fit" msgstr "Вписать" -#: ../src/dtgtk/thumbtable.c:1041 ../src/views/slideshow.c:421 +#: ../src/dtgtk/thumbtable.c:1139 ../src/views/slideshow.c:422 msgid "there are no images in this collection" msgstr "Снимки в данной коллекции отсутствуют." -#: ../src/dtgtk/thumbtable.c:1048 +#: ../src/dtgtk/thumbtable.c:1146 msgid "if you have not imported any images yet" msgstr "Если вы ещё ничего не импортировали," -#: ../src/dtgtk/thumbtable.c:1052 +#: ../src/dtgtk/thumbtable.c:1150 msgid "you can do so in the import module" msgstr "вы можете сделать это в модуле импорта слева." -#: ../src/dtgtk/thumbtable.c:1061 +#: ../src/dtgtk/thumbtable.c:1159 msgid "try to relax the filter settings in the top panel" msgstr "Попытайтесь изменить настройки фильтра отображаемых снимков вверху" -#: ../src/dtgtk/thumbtable.c:1072 +#: ../src/dtgtk/thumbtable.c:1170 msgid "or add images in the collections module in the left panel" msgstr "или выбрать их через модуль коллекций слева." -#: ../src/dtgtk/thumbtable.c:1338 +#: ../src/dtgtk/thumbtable.c:1455 msgid "" "you have changed the settings related to how thumbnails are generated.\n" msgstr "Настройки кэша миниатюр были изменены\n" -#: ../src/dtgtk/thumbtable.c:1341 +#: ../src/dtgtk/thumbtable.c:1458 msgid "" "all cached thumbnails need to be invalidated.\n" "\n" msgstr "Требуется сброс кэша миниатюр\n" -#: ../src/dtgtk/thumbtable.c:1345 +#: ../src/dtgtk/thumbtable.c:1462 #, c-format msgid "" "cached thumbnails starting from level %d need to be invalidated.\n" "\n" msgstr "Требуется сброс кэша миниатюр начиная с уровня %d\n" -#: ../src/dtgtk/thumbtable.c:1350 +#: ../src/dtgtk/thumbtable.c:1467 #, c-format msgid "" "cached thumbnails below level %d need to be invalidated.\n" "\n" msgstr "Требуется сброс кэша миниатюр ниже уровня %d\n" -#: ../src/dtgtk/thumbtable.c:1355 +#: ../src/dtgtk/thumbtable.c:1472 #, c-format msgid "" "cached thumbnails between level %d and %d need to be invalidated.\n" "\n" msgstr "Требуется сброс кэша миниатюр между уровнями %d и %d\n" -#: ../src/dtgtk/thumbtable.c:1358 +#: ../src/dtgtk/thumbtable.c:1475 msgid "do you want to do that now?" msgstr "Вы действительно подтверждаете данное действие?" -#: ../src/dtgtk/thumbtable.c:1360 +#: ../src/dtgtk/thumbtable.c:1477 msgid "cached thumbnails invalidation" msgstr "Сброс кэша миниатюр" #. setup history key accelerators -#: ../src/dtgtk/thumbtable.c:2561 +#: ../src/dtgtk/thumbtable.c:2738 msgid "copy history" msgstr "Копировать историю" -#: ../src/dtgtk/thumbtable.c:2563 +#: ../src/dtgtk/thumbtable.c:2740 msgid "copy history parts" msgstr "Копировать часть истории" -#: ../src/dtgtk/thumbtable.c:2565 +#: ../src/dtgtk/thumbtable.c:2742 msgid "paste history" msgstr "Вставить историю" -#: ../src/dtgtk/thumbtable.c:2567 +#: ../src/dtgtk/thumbtable.c:2744 msgid "paste history parts" msgstr "Вставить часть истории" -#: ../src/dtgtk/thumbtable.c:2569 ../src/libs/copy_history.c:394 +#: ../src/dtgtk/thumbtable.c:2746 ../src/libs/copy_history.c:394 msgid "discard history" msgstr "Удалить историю" -#: ../src/dtgtk/thumbtable.c:2572 +#: ../src/dtgtk/thumbtable.c:2749 msgid "duplicate image" msgstr "Создание копию снимка" -#: ../src/dtgtk/thumbtable.c:2574 +#: ../src/dtgtk/thumbtable.c:2751 msgid "duplicate image virgin" msgstr "Создание копию оригинального снимка" -#: ../src/dtgtk/thumbtable.c:2584 ../src/libs/select.c:147 +#: ../src/dtgtk/thumbtable.c:2761 ../src/libs/select.c:148 msgid "select film roll" msgstr "Съёмка" -#: ../src/dtgtk/thumbtable.c:2586 ../src/libs/select.c:151 +#: ../src/dtgtk/thumbtable.c:2763 ../src/libs/select.c:152 msgid "select untouched" msgstr "Необработанные" @@ -9370,265 +9727,298 @@ msgid "creating complete lighttable thumbnail cache\n" msgstr "Генерирую полный набор миниатюр\n" -#: ../src/gui/accelerators.c:61 -msgid "active view" +#: ../src/gui/about.c:34 +#, c-format +msgid "copyright (c) the authors 2009-%s" +msgstr "Авторские права (c) принадлежат создателям 2009-%s" + +#: ../src/gui/about.c:39 +msgid "organize and develop images from digital cameras" +msgstr "Организация и обработка цифровых фотографий" + +#: ../src/gui/about.c:51 +msgid "all those of you that made previous releases possible" +msgstr "все, кто участвовал в подготовке предыдущих версий" + +#: ../src/gui/about.c:56 +msgid "and..." +msgstr "и..." + +#: ../src/gui/about.c:59 +msgid "translator-credits" +msgstr "" +"Тимур Давлетшин <timur.davletshin@gmail.com>, Александр Прокудин <alexandre." +"prokoudine@gmail.com>" + +#: ../src/gui/accelerators.c:72 +msgid "in active view" msgstr "Активный вид" -#: ../src/gui/accelerators.c:62 -msgid "other views" +#: ../src/gui/accelerators.c:73 +msgid "in other views" msgstr "Прочие режимы" -#: ../src/gui/accelerators.c:63 +#: ../src/gui/accelerators.c:74 msgid "fallbacks" msgstr "Запасные варианты " -#: ../src/gui/accelerators.c:64 ../src/gui/accelerators.c:722 -#: ../src/gui/accelerators.c:2607 ../src/gui/accelerators.c:3470 -msgid "speed" -msgstr "Скорость" +#: ../src/gui/accelerators.c:75 +msgid "speed adjustments" +msgstr "Настройки скорости" + +#: ../src/gui/accelerators.c:76 +msgid "disabled defaults" +msgstr "Отключенные значения по умолчанию" -#: ../src/gui/accelerators.c:80 ../src/views/view.c:1202 +#: ../src/gui/accelerators.c:96 ../src/views/view.c:1361 msgid "scroll" msgstr "Прокрутка" -#: ../src/gui/accelerators.c:81 +#: ../src/gui/accelerators.c:97 msgid "pan" msgstr "pan" -#: ../src/gui/accelerators.c:82 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6283 ../src/iop/clipping.c:1902 -#: ../src/iop/clipping.c:2094 ../src/iop/clipping.c:2110 -#: ../src/views/darkroom.c:2676 ../src/views/lighttable.c:1250 +#: ../src/gui/accelerators.c:98 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6230 ../src/iop/clipping.c:1955 +#: ../src/iop/clipping.c:2147 ../src/iop/clipping.c:2163 +#: ../src/views/darkroom.c:2522 ../src/views/lighttable.c:1250 msgid "horizontal" msgstr "Горизонтально" -#: ../src/gui/accelerators.c:83 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6281 ../src/iop/clipping.c:1901 -#: ../src/iop/clipping.c:2095 ../src/iop/clipping.c:2109 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:1254 +#: ../src/gui/accelerators.c:99 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6228 ../src/iop/clipping.c:1954 +#: ../src/iop/clipping.c:2148 ../src/iop/clipping.c:2162 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:1254 msgid "vertical" msgstr "Вертикально" -#: ../src/gui/accelerators.c:84 +#: ../src/gui/accelerators.c:100 msgid "diagonal" msgstr "Диагонали" -#: ../src/gui/accelerators.c:86 +#: ../src/gui/accelerators.c:102 msgid "leftright" msgstr "Левоправо" -#: ../src/gui/accelerators.c:87 +#: ../src/gui/accelerators.c:103 msgid "updown" msgstr "вверх вниз" -#: ../src/gui/accelerators.c:88 +#: ../src/gui/accelerators.c:104 msgid "pgupdown" msgstr "pgup вниз" -#: ../src/gui/accelerators.c:96 ../src/views/view.c:1186 +#: ../src/gui/accelerators.c:112 ../src/views/view.c:1343 msgid "shift" msgstr "Cдвиг" -#: ../src/gui/accelerators.c:97 ../src/views/view.c:1187 +#: ../src/gui/accelerators.c:113 ../src/views/view.c:1345 msgid "ctrl" msgstr "ctrl" -#: ../src/gui/accelerators.c:98 ../src/views/view.c:1188 +#: ../src/gui/accelerators.c:114 ../src/views/view.c:1347 msgid "alt" msgstr "Альтернативный " -#: ../src/gui/accelerators.c:99 +#: ../src/gui/accelerators.c:115 msgid "cmd" msgstr "cmd" -#: ../src/gui/accelerators.c:100 +#: ../src/gui/accelerators.c:116 msgid "altgr" msgstr "altgr" -#: ../src/gui/accelerators.c:109 ../src/gui/accelerators.c:156 -#: ../src/libs/tagging.c:1782 +#: ../src/gui/accelerators.c:127 ../src/gui/accelerators.c:174 +#: ../src/libs/tagging.c:1804 msgid "edit" msgstr "Изменить" -#: ../src/gui/accelerators.c:110 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "up" msgstr "Вверх" -#: ../src/gui/accelerators.c:111 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:129 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "down" msgstr "Вниз" -#: ../src/gui/accelerators.c:115 +#: ../src/gui/accelerators.c:133 msgid "set" msgstr "Установить" -#: ../src/gui/accelerators.c:119 +#: ../src/gui/accelerators.c:137 msgid "popup" msgstr "Всплывашка" -#: ../src/gui/accelerators.c:120 ../src/gui/accelerators.c:153 -#: ../src/gui/gtk.c:3054 ../src/views/lighttable.c:760 +#: ../src/gui/accelerators.c:138 ../src/gui/accelerators.c:171 +#: ../src/gui/gtk.c:3100 ../src/views/lighttable.c:760 msgid "next" msgstr "Следующий" -#: ../src/gui/accelerators.c:121 ../src/gui/accelerators.c:152 -#: ../src/gui/gtk.c:3055 ../src/views/lighttable.c:761 +#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:170 +#: ../src/gui/gtk.c:3101 ../src/views/lighttable.c:761 msgid "previous" msgstr "Предыдущий" -#: ../src/gui/accelerators.c:123 ../src/gui/accelerators.c:1462 +#: ../src/gui/accelerators.c:141 ../src/gui/accelerators.c:1598 msgid "last" msgstr "Последние" -#: ../src/gui/accelerators.c:124 ../src/gui/accelerators.c:1461 +#: ../src/gui/accelerators.c:142 ../src/gui/accelerators.c:1597 msgid "first" msgstr "Первый" -#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:141 -#: ../src/gui/accelerators.c:314 ../src/libs/filters/rating_range.c:268 -#: ../src/libs/tagging.c:3119 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2419 ../src/views/darkroom.c:2648 +#: ../src/gui/accelerators.c:146 ../src/gui/accelerators.c:159 +#: ../src/gui/accelerators.c:356 ../src/libs/filters/rating_range.c:295 +#: ../src/libs/tagging.c:3150 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2258 ../src/views/darkroom.c:2494 msgid "toggle" msgstr "Переключить" -#: ../src/gui/accelerators.c:131 +#: ../src/gui/accelerators.c:149 msgid "ctrl-toggle" msgstr "ctrl-переключить" -#: ../src/gui/accelerators.c:132 +#: ../src/gui/accelerators.c:150 msgid "ctrl-on" msgstr "ctrl-вкл." -#: ../src/gui/accelerators.c:133 +#: ../src/gui/accelerators.c:151 msgid "right-toggle" msgstr "Правый переключатель" -#: ../src/gui/accelerators.c:134 +#: ../src/gui/accelerators.c:152 msgid "right-on" msgstr "Право на" -#: ../src/gui/accelerators.c:145 ../src/gui/gtk.c:3053 +#: ../src/gui/accelerators.c:163 ../src/gui/gtk.c:3099 msgid "activate" msgstr "Активировать" -#: ../src/gui/accelerators.c:146 +#: ../src/gui/accelerators.c:164 msgid "ctrl-activate" msgstr "ctrl-активировать" -#: ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:165 msgid "right-activate" msgstr "активировать право" -#: ../src/gui/accelerators.c:154 +#: ../src/gui/accelerators.c:172 msgid "store" msgstr "Хранить" -#: ../src/gui/accelerators.c:157 ../src/gui/styles_dialog.c:639 +#: ../src/gui/accelerators.c:175 ../src/gui/styles_dialog.c:651 msgid "update" msgstr "Обновить" -#: ../src/gui/accelerators.c:158 ../src/libs/tools/global_toolbox.c:60 +#: ../src/gui/accelerators.c:176 ../src/libs/tools/global_toolbox.c:60 #: ../src/libs/tools/global_toolbox.c:510 msgid "preferences" msgstr "Параметры darktable" -#: ../src/gui/accelerators.c:163 +#: ../src/gui/accelerators.c:181 msgid "apply on new instance" msgstr "Применить к новому экземпляру" -#: ../src/gui/accelerators.c:168 +#: ../src/gui/accelerators.c:186 msgid "start" msgstr "Начало" -#: ../src/gui/accelerators.c:169 +#: ../src/gui/accelerators.c:187 msgid "end" msgstr "Конец" -#: ../src/gui/accelerators.c:332 +#: ../src/gui/accelerators.c:374 msgid "entry" msgstr "Запись" -#: ../src/gui/accelerators.c:409 +#: ../src/gui/accelerators.c:450 msgid "combo effect not found" msgstr "Комбинированный эффект не найден" -#: ../src/gui/accelerators.c:578 +#: ../src/gui/accelerators.c:627 msgid "(keypad)" msgstr "(клавиатура)" -#: ../src/gui/accelerators.c:587 +#: ../src/gui/accelerators.c:636 msgid "tablet button" msgstr "Кнопка планшета" -#: ../src/gui/accelerators.c:596 +#: ../src/gui/accelerators.c:645 msgid "unknown driver" msgstr "Неизвестный драйвер" -#: ../src/gui/accelerators.c:663 +#: ../src/gui/accelerators.c:718 msgid "long" msgstr "Долгота" -#: ../src/gui/accelerators.c:664 +#: ../src/gui/accelerators.c:719 msgid "double-press" msgstr "Двойное нажатие" -#: ../src/gui/accelerators.c:665 +#: ../src/gui/accelerators.c:720 msgid "triple-press" msgstr "Тройное нажатие" -#: ../src/gui/accelerators.c:666 +#: ../src/gui/accelerators.c:721 msgid "press" msgstr "Нажмите" -#: ../src/gui/accelerators.c:670 +#: ../src/gui/accelerators.c:725 msgctxt "accel" msgid "left" msgstr "Левое" -#: ../src/gui/accelerators.c:671 +#: ../src/gui/accelerators.c:726 msgctxt "accel" msgid "right" msgstr "Правое" -#: ../src/gui/accelerators.c:672 +#: ../src/gui/accelerators.c:727 msgctxt "accel" msgid "middle" msgstr "Середина" -#: ../src/gui/accelerators.c:673 +#: ../src/gui/accelerators.c:728 msgctxt "accel" msgid "long" msgstr "Долгота" -#: ../src/gui/accelerators.c:674 +#: ../src/gui/accelerators.c:729 msgctxt "accel" msgid "double-click" msgstr "Двойной щелчок" -#: ../src/gui/accelerators.c:675 +#: ../src/gui/accelerators.c:730 msgctxt "accel" msgid "triple-click" msgstr "Тройной щелчок" -#: ../src/gui/accelerators.c:676 +#: ../src/gui/accelerators.c:731 msgid "click" msgstr "Нажмите" -#: ../src/gui/accelerators.c:704 +#: ../src/gui/accelerators.c:759 msgid "first instance" msgstr "Первый случай" -#: ../src/gui/accelerators.c:706 +#: ../src/gui/accelerators.c:761 msgid "last instance" msgstr "Последняя случай" -#: ../src/gui/accelerators.c:708 +#: ../src/gui/accelerators.c:763 msgid "relative instance" msgstr "Относительный экземпляр" -#: ../src/gui/accelerators.c:867 +#: ../src/gui/accelerators.c:780 ../src/gui/accelerators.c:2864 +#: ../src/gui/accelerators.c:3811 +msgid "speed" +msgstr "Скорость" + +#: ../src/gui/accelerators.c:923 #, c-format msgid "" "Lua script command copied to clipboard:\n" @@ -9639,11 +10029,11 @@ "\n" "<tt>%s</tt>" -#: ../src/gui/accelerators.c:965 ../src/gui/accelerators.c:978 +#: ../src/gui/accelerators.c:1025 ../src/gui/accelerators.c:1044 msgid "start typing for incremental search" msgstr "Начните вводить для поэтапного поиска" -#: ../src/gui/accelerators.c:966 +#: ../src/gui/accelerators.c:1028 msgid "" "\n" "press Delete to delete selected shortcut" @@ -9651,7 +10041,23 @@ "\n" "Нажмите \"Удалить\", чтобы удалить выбранный ярлык" -#: ../src/gui/accelerators.c:968 +#: ../src/gui/accelerators.c:1030 +msgid "" +"\n" +"press Delete to disable selected default shortcut" +msgstr "" +"\n" +"Нажмите \"Удалить\", чтобы удалить выбранный ярлык по умолчанию" + +#: ../src/gui/accelerators.c:1031 +msgid "" +"\n" +"press Delete to restore selected default shortcut" +msgstr "" +"\n" +"Нажмите \"Удалить\", чтобы восстановить выбранный ярлык по умолчанию" + +#: ../src/gui/accelerators.c:1033 msgid "" "\n" "double-click to add new shortcut" @@ -9659,11 +10065,11 @@ "\n" "Двойной щелчок добавляет новый ярлык" -#: ../src/gui/accelerators.c:979 +#: ../src/gui/accelerators.c:1045 msgid "click to filter shortcuts list" msgstr "нажмите, чтобы отфильтровать ярлыки" -#: ../src/gui/accelerators.c:981 +#: ../src/gui/accelerators.c:1047 msgid "" "\n" "right click to show action of selected shortcut" @@ -9671,7 +10077,7 @@ "\n" "Правый щелчок отображает действие выбранного ярлыка" -#: ../src/gui/accelerators.c:984 +#: ../src/gui/accelerators.c:1050 msgid "" "\n" "double-click to define new shortcut" @@ -9679,11 +10085,11 @@ "\n" "Двойной щелчок определяет новый ярлык" -#: ../src/gui/accelerators.c:1015 +#: ../src/gui/accelerators.c:1081 msgid "shift+alt+scroll to change height" msgstr "Shift+Alt+Прокрутка меняет высоту" -#: ../src/gui/accelerators.c:1035 +#: ../src/gui/accelerators.c:1101 msgid "" "press keys with mouse click and scroll or move combinations to create a " "shortcut" @@ -9691,27 +10097,27 @@ "нажимайте клавиши щелчком мыши и прокручивайте или перемещайте комбинации, " "чтобы создать ярлык" -#: ../src/gui/accelerators.c:1036 +#: ../src/gui/accelerators.c:1102 msgid "click to open shortcut configuration" msgstr "нажмите, чтобы открыть конфигурацию ярлыка" -#: ../src/gui/accelerators.c:1037 +#: ../src/gui/accelerators.c:1103 msgid "ctrl+click to add to quick access panel\n" msgstr "ctrl+щелчок, чтобы добавить в панель быстрого доступа\n" -#: ../src/gui/accelerators.c:1038 +#: ../src/gui/accelerators.c:1104 msgid "ctrl+click to remove from quick access panel\n" msgstr "ctrl+щелчок, чтобы удалить из панели быстрого доступа\n" -#: ../src/gui/accelerators.c:1039 +#: ../src/gui/accelerators.c:1105 msgid "scroll to change default speed" msgstr "Прокрутка меняет высоту" -#: ../src/gui/accelerators.c:1040 +#: ../src/gui/accelerators.c:1106 msgid "right click to exit mapping mode" msgstr "Щелкните правой кнопкой мыши, чтобы выйти из режима отображения" -#: ../src/gui/accelerators.c:1051 +#: ../src/gui/accelerators.c:1119 #, c-format msgid "" "%sright-click to type a specific value between <b>%s</b> and <b>%s</b>\n" @@ -9721,74 +10127,89 @@ "%s</b>\n" "Или нажмите Ctrl+Shift и потяните." -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "ctrl+v" msgstr "Ctrl+V" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "right long click" msgstr "Долгое нажатие правой кнопкой," -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "to copy Lua command" msgstr "чтобы скопировать команду Lua" -#: ../src/gui/accelerators.c:1344 +#: ../src/gui/accelerators.c:1451 msgid "shortcut for move exists with single effect" msgstr "ярлык для перемещения существует с единственным эффектом" -#: ../src/gui/accelerators.c:1345 +#: ../src/gui/accelerators.c:1452 +#, c-format +msgid "" +"%s\n" +"\n" +"(assign %s to %s)" +msgstr "" +"%s \n" +"\n" +"(%s присвоено %s)" + +#: ../src/gui/accelerators.c:1453 msgid "create separate shortcuts for up and down move?" msgstr "создать отдельные ярлыки для перемещения вверх и вниз?" -#: ../src/gui/accelerators.c:1368 +#: ../src/gui/accelerators.c:1479 #, c-format msgid "%s, speed reset" msgstr "%s, сброс скорости" -#: ../src/gui/accelerators.c:1377 +#: ../src/gui/accelerators.c:1497 msgid "shortcut exists with different settings" msgstr "Ярлык существует с другими настройками" -#: ../src/gui/accelerators.c:1378 +#: ../src/gui/accelerators.c:1498 msgid "reset the settings of the shortcut?" msgstr "Сбросить настройки ярлыка?" -#: ../src/gui/accelerators.c:1389 +#: ../src/gui/accelerators.c:1507 msgid "shortcut already exists" msgstr "Ярлык уже существует" -#: ../src/gui/accelerators.c:1390 +#: ../src/gui/accelerators.c:1509 +msgid "disable this default shortcut?" +msgstr "Отключить этот ярлык по умолчанию?" + +#: ../src/gui/accelerators.c:1510 msgid "remove the shortcut?" msgstr "Убрать ярлык?" -#: ../src/gui/accelerators.c:1423 +#: ../src/gui/accelerators.c:1550 msgid "clashing shortcuts exist" msgstr "существуют конфликтующие ярлыки" -#: ../src/gui/accelerators.c:1424 +#: ../src/gui/accelerators.c:1551 msgid "remove these existing shortcuts?" msgstr "Удалить эти существующие ярлыки?" #. or 3, but change char relative[] = "-2" to "-1" #. NUM_INSTANCES -#: ../src/gui/accelerators.c:1460 +#: ../src/gui/accelerators.c:1596 msgid "preferred" msgstr "Предпочтительный" -#: ../src/gui/accelerators.c:1463 +#: ../src/gui/accelerators.c:1599 msgid "second" msgstr "Второй" -#: ../src/gui/accelerators.c:1464 +#: ../src/gui/accelerators.c:1600 msgid "last but one" msgstr "предпоследний" -#: ../src/gui/accelerators.c:1610 ../src/gui/accelerators.c:1670 +#: ../src/gui/accelerators.c:1761 ../src/gui/accelerators.c:1826 msgid "(unchanged)" msgstr "(без изменений)" -#: ../src/gui/accelerators.c:1776 +#: ../src/gui/accelerators.c:1941 msgid "" "define a shortcut by pressing a key, optionally combined with modifier keys " "(ctrl/shift/alt)\n" @@ -9813,39 +10234,47 @@ "\n" "щелкните правой кнопкой мыши, чтобы отменить" -#: ../src/gui/accelerators.c:1847 +#: ../src/gui/accelerators.c:2014 msgid "removing shortcut" msgstr "Удаление ярлыка" -#: ../src/gui/accelerators.c:1848 +#: ../src/gui/accelerators.c:2016 +msgid "disable the selected default shortcut?" +msgstr "Удалить выбранный ярлык по умолчанию?" + +#: ../src/gui/accelerators.c:2017 +msgid "restore the selected default shortcut?" +msgstr "Восстановить выбранный ярлык по умолчанию?" + +#: ../src/gui/accelerators.c:2018 msgid "remove the selected shortcut?" msgstr "Удалить выбранный ярлык?" -#: ../src/gui/accelerators.c:1938 +#: ../src/gui/accelerators.c:2107 msgid "command" msgstr "Управлять" -#: ../src/gui/accelerators.c:1939 +#: ../src/gui/accelerators.c:2108 msgid "preset" msgstr "Профиль" -#: ../src/gui/accelerators.c:2272 +#: ../src/gui/accelerators.c:2491 msgid "restore shortcuts" msgstr "Восстановить ярлыки" -#: ../src/gui/accelerators.c:2275 +#: ../src/gui/accelerators.c:2494 msgid "_defaults" msgstr "_defaults" -#: ../src/gui/accelerators.c:2276 +#: ../src/gui/accelerators.c:2495 msgid "_startup" msgstr "_startup" -#: ../src/gui/accelerators.c:2277 +#: ../src/gui/accelerators.c:2496 msgid "_edits" msgstr "Изменения" -#: ../src/gui/accelerators.c:2283 +#: ../src/gui/accelerators.c:2503 msgid "" "restore shortcuts from one of these states:\n" " - default\n" @@ -9857,7 +10286,7 @@ " - как при запуске\n" " - как при открытии этого диалога\n" -#: ../src/gui/accelerators.c:2289 +#: ../src/gui/accelerators.c:2510 msgid "" "clear all newer shortcuts\n" "(instead of just restoring changed ones)" @@ -9865,22 +10294,17 @@ "очистить все новые ярлыки\n" "(вместо того, чтобы просто восстановить измененные)" -#: ../src/gui/accelerators.c:2344 ../src/gui/preferences.c:906 +#: ../src/gui/accelerators.c:2567 ../src/gui/preferences.c:905 #: ../src/libs/tools/global_toolbox.c:494 -#: ../src/libs/tools/global_toolbox.c:645 +#: ../src/libs/tools/global_toolbox.c:652 msgid "shortcuts" msgstr "Комбинации клавиш" -#: ../src/gui/accelerators.c:2353 +#: ../src/gui/accelerators.c:2577 msgid "export shortcuts" msgstr "Ярлыки экспорта" -#: ../src/gui/accelerators.c:2356 ../src/gui/accelerators.c:2436 -#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:564 -msgid "_ok" -msgstr "_ОК" - -#: ../src/gui/accelerators.c:2361 +#: ../src/gui/accelerators.c:2586 msgid "" "export all shortcuts to a file\n" "or just for one selected device\n" @@ -9888,27 +10312,27 @@ "экспортировать все ярлыки в файл\n" "или только для одного выбранного устройства\n" -#: ../src/gui/accelerators.c:2368 ../src/gui/accelerators.c:2448 +#: ../src/gui/accelerators.c:2593 ../src/gui/accelerators.c:2675 msgid "keyboard" msgstr "клавиатура" -#: ../src/gui/accelerators.c:2380 +#: ../src/gui/accelerators.c:2605 msgid "device id" msgstr "Идентификатор устройства" -#: ../src/gui/accelerators.c:2406 +#: ../src/gui/accelerators.c:2631 msgid "select file to export" msgstr "Выбор файла для сохранения схемы клавиш" -#: ../src/gui/accelerators.c:2407 ../src/libs/tagging.c:2525 +#: ../src/gui/accelerators.c:2632 ../src/libs/tagging.c:2556 msgid "_export" msgstr "_Экспортировать" -#: ../src/gui/accelerators.c:2433 +#: ../src/gui/accelerators.c:2659 msgid "import shortcuts" msgstr "Ярлыки импорта" -#: ../src/gui/accelerators.c:2441 +#: ../src/gui/accelerators.c:2668 msgid "" "import all shortcuts from a file\n" "or just for one selected device\n" @@ -9916,31 +10340,31 @@ "импортировать все ярлыки из файла\n" "или только для одного выбранного устройства\n" -#: ../src/gui/accelerators.c:2460 +#: ../src/gui/accelerators.c:2687 msgid "id in file" msgstr "Идентификатор в файле" -#: ../src/gui/accelerators.c:2466 +#: ../src/gui/accelerators.c:2693 msgid "id when loaded" msgstr "идентификатор при загрузке" -#: ../src/gui/accelerators.c:2470 +#: ../src/gui/accelerators.c:2697 msgid "clear device first" msgstr "Сначала очистить устройство" -#: ../src/gui/accelerators.c:2494 +#: ../src/gui/accelerators.c:2722 msgid "select file to import" msgstr "Выбор файла загружаемой схемы клавиш" -#: ../src/gui/accelerators.c:2495 ../src/libs/tagging.c:2489 +#: ../src/gui/accelerators.c:2723 ../src/libs/tagging.c:2520 msgid "_import" msgstr "_Импортировать" -#: ../src/gui/accelerators.c:2568 +#: ../src/gui/accelerators.c:2815 msgid "search shortcuts list" msgstr "Список ярлыков поиска" -#: ../src/gui/accelerators.c:2569 +#: ../src/gui/accelerators.c:2817 msgid "" "incrementally search the list of shortcuts\n" "press up or down keys to cycle through matches" @@ -9948,29 +10372,28 @@ "поэтапный поиск в списке ярлыков\n" "нажимайте клавиши вверх или вниз, чтобы переключаться между совпадениями" -#. Setting up the cell renderers -#: ../src/gui/accelerators.c:2583 ../src/views/view.c:1383 +#: ../src/gui/accelerators.c:2837 ../src/views/view.c:1554 msgid "shortcut" msgstr "Ярлык" -#: ../src/gui/accelerators.c:2585 ../src/gui/accelerators.c:2676 -#: ../src/views/view.c:1385 +#: ../src/gui/accelerators.c:2840 ../src/gui/accelerators.c:2942 +#: ../src/views/view.c:1556 msgid "action" msgstr "Действие" -#: ../src/gui/accelerators.c:2594 +#: ../src/gui/accelerators.c:2850 msgid "element" msgstr "Элемент" -#: ../src/gui/accelerators.c:2601 +#: ../src/gui/accelerators.c:2858 msgid "effect" msgstr "Эффект" -#: ../src/gui/accelerators.c:2658 +#: ../src/gui/accelerators.c:2918 msgid "search actions list" msgstr "Список действий поиска" -#: ../src/gui/accelerators.c:2659 +#: ../src/gui/accelerators.c:2920 msgid "" "incrementally search the list of actions\n" "press up or down keys to cycle through matches" @@ -9978,16 +10401,16 @@ "поэтапный поиск в списке действий\n" "нажимайте клавиши вверх или вниз, чтобы переключаться между совпадениями" -#: ../src/gui/accelerators.c:2682 ../src/gui/guides.c:719 -#: ../src/libs/export_metadata.c:192 +#: ../src/gui/accelerators.c:2950 ../src/gui/guides.c:719 +#: ../src/libs/export_metadata.c:179 msgid "type" msgstr "Тип" -#: ../src/gui/accelerators.c:2717 +#: ../src/gui/accelerators.c:2988 msgid "enable fallbacks" msgstr "Включить запасные варианты" -#: ../src/gui/accelerators.c:2718 +#: ../src/gui/accelerators.c:2989 msgid "" "enables default meanings for additional buttons, modifiers or moves\n" "when used in combination with a base shortcut" @@ -9996,67 +10419,111 @@ "движений\n" "при использовании в сочетании с базовым ярлыком" -#: ../src/gui/accelerators.c:2725 +#: ../src/gui/accelerators.c:2997 msgid "open help page for shortcuts" msgstr "Откройте справку, чтобы узнать о ярлыках" -#: ../src/gui/accelerators.c:2730 +#: ../src/gui/accelerators.c:3002 msgid "restore..." msgstr "Восстановить..." -#: ../src/gui/accelerators.c:2731 +#: ../src/gui/accelerators.c:3003 msgid "restore default shortcuts or previous state" msgstr "восстановить ярлыки по умолчанию или предыдущее состояние" -#: ../src/gui/accelerators.c:2735 ../src/libs/styles.c:883 -#: ../src/libs/tagging.c:3251 +#: ../src/gui/accelerators.c:3007 ../src/libs/styles.c:887 +#: ../src/libs/tagging.c:3282 msgid "import..." msgstr "Импорт..." -#: ../src/gui/accelerators.c:2736 +#: ../src/gui/accelerators.c:3008 msgid "fully or partially import shortcuts from file" msgstr "полностью или частично импортировать ярлыки из файла" -#: ../src/gui/accelerators.c:2740 ../src/libs/styles.c:890 -#: ../src/libs/tagging.c:3254 +#: ../src/gui/accelerators.c:3012 ../src/libs/styles.c:894 +#: ../src/libs/tagging.c:3285 msgid "export..." msgstr "Экспорт..." -#: ../src/gui/accelerators.c:2741 +#: ../src/gui/accelerators.c:3013 msgid "fully or partially export shortcuts to file" msgstr "полностью или частично экспортировать ярлыки в файл" -#: ../src/gui/accelerators.c:3139 +#: ../src/gui/accelerators.c:3021 +msgid "" +"the recommended way to assign shortcuts to visual elements is the <b>visual " +"shortcut mapping</b> mode.\n" +"this is switched on by toggling the <i>\"keyboard\"</i> button next to " +"preferences in the top panel. in this mode, clicking on a widget or area " +"will open this dialog with the appropriate selection for advanced " +"configuration.\n" +"\n" +"multiple shortcuts can be assigned to the same action. this is especially " +"useful if it has multiple <i>elements</i>, like the module buttons or the " +"colorpickers attached to sliders. however, with <i>fallbacks</i> enabled one " +"can use the same simple shortcuts and change their <i>element</i> or " +"<i>effect</i> by adding mouse clicks.\n" +"\n" +"<i>click <b> three times </b> to dismiss this notice permanently</i>" +msgstr "" +"Рекомендуемый способ назначения ярлыков визуальным элементам - это режим " +"<b>визуального отображения ярлыков</b>.\n" +"Он включается переключением кнопки <i>\"клавиатура\"</i> рядом с настройками " +"на верхней панели. В этом режиме щелчок по виджету или области откроет это " +"диалоговое окно с соответствующим выбором для расширенной настройки.\n" +"\n" +"Одному и тому же действию может быть назначено несколько сочетаний клавиш. " +"Это особенно полезно, если оно содержит несколько <i>элементов </i>, таких " +"как кнопки модуля или цветовые пипетки, прикрепленные к ползункам. Однако " +"при включенных <i>запасных вариантах</i> можно использовать те же простые " +"сочетания клавиш и изменять их <i>элемент</i> или <i>эффект</i>, добавляя " +"щелчки мыши.\n" +"\n" +"<i>Нажмите <b> три раза </b>, чтобы скрыть это уведомление навсегда</i>" + +#: ../src/gui/accelerators.c:3452 msgid "reinitialising input devices" msgstr "Повторная инициализация устройства ввода" -#: ../src/gui/accelerators.c:3342 +#: ../src/gui/accelerators.c:3594 +msgid "down move" +msgstr "Переместить ниже" + +#: ../src/gui/accelerators.c:3594 +msgid "flip top/bottom first/last" +msgstr "Перевернуть верх/низ первым/последним" + +#: ../src/gui/accelerators.c:3679 msgid "fallback to move" msgstr "Запасной вариант для перемещения" -#: ../src/gui/accelerators.c:3578 +#: ../src/gui/accelerators.c:3921 #, c-format msgid "%s not assigned" msgstr "%s не присвоен" -#: ../src/gui/accelerators.c:3751 +#: ../src/gui/accelerators.c:4102 #, c-format msgid "%s assigned to %s" msgstr "%s присвоен %s" -#: ../src/gui/gtk.c:173 ../src/views/darkroom.c:4650 +#: ../src/gui/accelerators.c:4321 +msgid "short key press resets stuck keys" +msgstr "Короткое нажатие клавиши сбрасывает застрявшие клавиши" + +#: ../src/gui/gtk.c:175 ../src/views/darkroom.c:3861 msgid "darktable - darkroom preview" msgstr "darktable — предпросмотр" -#: ../src/gui/gtk.c:184 +#: ../src/gui/gtk.c:186 msgid "tooltips off" msgstr "Всплывающие подсказки выключены" -#: ../src/gui/gtk.c:186 +#: ../src/gui/gtk.c:188 msgid "tooltips on" msgstr "Всплывающие подсказки включены" -#: ../src/gui/gtk.c:191 +#: ../src/gui/gtk.c:193 msgid "" "tooltip visibility can only be toggled if compositing is enabled in your " "window manager" @@ -10064,184 +10531,217 @@ "Для поддержки всплывающих подсказок необходимо наличие композитинга на " "стороне оконного менеджера" -#: ../src/gui/gtk.c:814 +#: ../src/gui/gtk.c:809 msgid "closing darktable..." msgstr "Закрытие darktable..." -#: ../src/gui/gtk.c:1135 +#: ../src/gui/gtk.c:1032 +msgid "URL opened in web browser" +msgstr "Ссылка открыта в браузере" + +#: ../src/gui/gtk.c:1036 +msgid "error while opening URL in web browser" +msgstr "Ошибка открытия ссылки в браузере" + +#. View menu +#: ../src/gui/gtk.c:1104 +msgctxt "menu" +msgid "Views" +msgstr "Режимы" + +#: ../src/gui/gtk.c:1108 +msgctxt "menu" +msgid "lighttable" +msgstr "Обзор" + +#: ../src/gui/gtk.c:1109 +msgctxt "menu" +msgid "darkroom" +msgstr "Обработка" + +#: ../src/gui/gtk.c:1115 +msgctxt "menu" +msgid "slideshow" +msgstr "Слайдшоу" + +#: ../src/gui/gtk.c:1117 +msgctxt "menu" +msgid "map" +msgstr "Карта" + +#: ../src/gui/gtk.c:1119 +msgctxt "menu" +msgid "print" +msgstr "Печать" + +#: ../src/gui/gtk.c:1121 +msgctxt "menu" +msgid "tethering" +msgstr "Дистанционная съемка" + +#. Help menu +#: ../src/gui/gtk.c:1127 +msgctxt "menu" +msgid "Help" +msgstr "Помощь" + +#: ../src/gui/gtk.c:1131 +msgctxt "menu" +msgid "darktable Manual" +msgstr "Документация darktable" + +#: ../src/gui/gtk.c:1138 +msgctxt "menu" +msgid "darktable Homepage" +msgstr "darktable Homepage" + +#: ../src/gui/gtk.c:1162 +msgctxt "menu" +msgid "Preferences" +msgstr "Параметры darktable" + +#: ../src/gui/gtk.c:1232 msgid "panels" msgstr "Панели" -#. an action that does nothing - used for overriding/removing default shortcuts -#: ../src/gui/gtk.c:1184 -msgid "no-op" -msgstr "Нет операции" - -#: ../src/gui/gtk.c:1186 +#: ../src/gui/gtk.c:1264 msgid "switch views" msgstr "Переключить режим" -#: ../src/gui/gtk.c:1187 ../src/views/tethering.c:102 +#: ../src/gui/gtk.c:1265 ../src/views/tethering.c:102 msgid "tethering" msgstr "Камера" -#: ../src/gui/gtk.c:1188 ../src/gui/preferences.c:531 -#: ../src/gui/preferences.c:542 ../src/libs/tools/lighttable.c:66 -#: ../src/views/lighttable.c:91 -msgid "lighttable" -msgstr "Обзор" - -#: ../src/gui/gtk.c:1189 ../src/gui/preferences.c:532 -#: ../src/gui/preferences.c:542 ../src/views/darkroom.c:94 -msgid "darkroom" -msgstr "Обработка" - -#: ../src/gui/gtk.c:1190 ../src/views/map.c:197 +#: ../src/gui/gtk.c:1268 ../src/views/map.c:197 msgid "map" msgstr "Карта" -#: ../src/gui/gtk.c:1191 ../src/views/slideshow.c:389 +#: ../src/gui/gtk.c:1269 ../src/views/slideshow.c:390 msgid "slideshow" msgstr "Слайдшоу" #. Print button -#: ../src/gui/gtk.c:1192 ../src/libs/print_settings.c:2885 +#: ../src/gui/gtk.c:1270 ../src/libs/print_settings.c:2885 msgid "print" msgstr "Печать" #. register ctrl-q to quit: -#: ../src/gui/gtk.c:1198 +#: ../src/gui/gtk.c:1276 msgid "quit" msgstr "Выход" #. Full-screen accelerator (no ESC handler here to enable quit-slideshow using ESC) -#: ../src/gui/gtk.c:1201 +#: ../src/gui/gtk.c:1279 msgid "fullscreen" msgstr "Полноэкранный режим" -#: ../src/gui/gtk.c:1205 +#: ../src/gui/gtk.c:1283 msgid "collapsing controls" msgstr "Cворачивающиеся элементы управления" #. specific top/bottom toggles -#: ../src/gui/gtk.c:1207 +#: ../src/gui/gtk.c:1285 msgid "header" msgstr "Заголовок" -#: ../src/gui/gtk.c:1208 +#: ../src/gui/gtk.c:1286 msgid "filmstrip and timeline" msgstr "Диафильм и временная шкала" -#: ../src/gui/gtk.c:1209 +#: ../src/gui/gtk.c:1287 msgid "top toolbar" msgstr "Верхняя панель инструментов" -#: ../src/gui/gtk.c:1210 +#: ../src/gui/gtk.c:1288 msgid "bottom toolbar" msgstr "Нижняя панель инструментов" -#: ../src/gui/gtk.c:1211 +#: ../src/gui/gtk.c:1289 msgid "all top" msgstr "Все верхние" -#: ../src/gui/gtk.c:1212 +#: ../src/gui/gtk.c:1290 msgid "all bottom" msgstr "Все нижние" -#: ../src/gui/gtk.c:1214 +#: ../src/gui/gtk.c:1292 msgid "toggle tooltip visibility" msgstr "Переключить видимость всплывающих подсказок" -#: ../src/gui/gtk.c:1215 +#: ../src/gui/gtk.c:1293 msgid "reinitialise input devices" msgstr "Повторно инициализировать устройства ввода" -#: ../src/gui/gtk.c:1253 +#: ../src/gui/gtk.c:1331 msgid "toggle focus-peaking mode" msgstr "Переключить режим фокусировки" #. toggle focus peaking everywhere -#: ../src/gui/gtk.c:1258 +#: ../src/gui/gtk.c:1336 msgid "toggle focus peaking" msgstr "Переключить определение фокуса" -#: ../src/gui/gtk.c:1594 ../src/gui/gtk.c:3143 ../src/gui/gtk.c:3148 -#: ../src/gui/gtk.c:3153 ../src/gui/gtk.c:3158 +#: ../src/gui/gtk.c:1654 ../src/gui/gtk.c:3189 ../src/gui/gtk.c:3194 +#: ../src/gui/gtk.c:3199 ../src/gui/gtk.c:3204 msgid "tabs" msgstr "Закладки" -#: ../src/gui/gtk.c:2535 -msgid "_yes" -msgstr "_да" - -#: ../src/gui/gtk.c:2536 -msgid "_no" -msgstr "_нет" - #. ask the user if darktable.org may be accessed -#: ../src/gui/gtk.c:2647 +#: ../src/gui/gtk.c:2707 msgid "access the online user manual?" msgstr "Открыть онлайн справку?" -#: ../src/gui/gtk.c:2648 +#: ../src/gui/gtk.c:2708 #, c-format msgid "do you want to access `%s'?" msgstr "Вы действительно хотите перейти на «%s»?" -#: ../src/gui/gtk.c:2717 -msgid "help url opened in web browser" -msgstr "Онлайн справка по указанному элементу открыта в браузере" - -#: ../src/gui/gtk.c:2721 -msgid "error while opening help url in web browser" -msgstr "Ошибка открытия онлайн справки по указанному элементу!" - -#: ../src/gui/gtk.c:2732 +#: ../src/gui/gtk.c:2778 msgid "there is no help available for this element" msgstr "Онлайн справка по указанному элементу отсутствует" #. font name can only use period as decimal separator #. but printf format strings use comma for some locales, so replace comma with period -#: ../src/gui/gtk.c:2752 +#: ../src/gui/gtk.c:2798 ../src/libs/metadata_view.c:762 #, c-format msgid "%.1f" msgstr "%.1f" -#: ../src/gui/gtk.c:2754 +#: ../src/gui/gtk.c:2800 #, c-format msgid "Sans %s" msgstr "Sans %s" -#: ../src/gui/gtk.c:3048 +#: ../src/gui/gtk.c:3094 msgid "does not contain pages" msgstr "Не содержит страниц" -#: ../src/gui/gtk.c:3265 +#: ../src/gui/gtk.c:3313 #, c-format msgid "never show more than %d lines" msgstr "Не показывать более %d строк" -#: ../src/gui/gtkentry.c:172 +#: ../src/gui/gtkentry.c:173 msgid "$(ROLL.NAME) - roll of the input image" msgstr "$(ROLL.NAME) — название съёмки" -#: ../src/gui/gtkentry.c:173 +#: ../src/gui/gtkentry.c:174 msgid "$(FILE.FOLDER) - folder containing the input image" msgstr "$(FILE.FOLDER) — каталог с файлами" -#: ../src/gui/gtkentry.c:174 +#: ../src/gui/gtkentry.c:175 msgid "$(FILE.NAME) - basename of the input image" msgstr "$(FILE.NAME) — имя снимка без расширения" -#: ../src/gui/gtkentry.c:175 +#: ../src/gui/gtkentry.c:176 msgid "$(FILE.EXTENSION) - extension of the input image" msgstr "$(FILE.EXTENSION) — расширение файла снимка" -#: ../src/gui/gtkentry.c:176 +#: ../src/gui/gtkentry.c:177 msgid "$(VERSION) - duplicate version" msgstr "$(VERSION) — версия" -#: ../src/gui/gtkentry.c:177 +#: ../src/gui/gtkentry.c:178 msgid "" "$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version " "exists" @@ -10249,274 +10749,283 @@ "$(VERSION.IF_MULTI) — идентично $(VERSION), но возвращает null, если " "существует лишь одна версия" -#: ../src/gui/gtkentry.c:178 +#: ../src/gui/gtkentry.c:179 msgid "$(VERSION.NAME) - version name from metadata" msgstr "$(VERSION.NAME) — имя версии из метаданных" -#: ../src/gui/gtkentry.c:179 +#: ../src/gui/gtkentry.c:180 msgid "$(JOBCODE) - job code for import" msgstr "$(JOBCODE) - код задачи импорта" -#: ../src/gui/gtkentry.c:180 +#: ../src/gui/gtkentry.c:181 msgid "$(SEQUENCE) - sequence number" msgstr "$(SEQUENCE) — последовательная нумерация" -#: ../src/gui/gtkentry.c:181 +#: ../src/gui/gtkentry.c:182 msgid "$(WIDTH.MAX) - maximum image export width" msgstr "$(MAX.WIDTH) - максимальная ширина снимка (экспорт)" -#: ../src/gui/gtkentry.c:182 +#: ../src/gui/gtkentry.c:183 msgid "$(WIDTH.SENSOR) - image sensor width" msgstr "$(SENSOR.WIDTH) - ширина сенсора изображения" -#: ../src/gui/gtkentry.c:183 +#: ../src/gui/gtkentry.c:184 msgid "$(WIDTH.RAW) - RAW image width" msgstr "$(RAW.WIDTH) - ширина изображения RAW" -#: ../src/gui/gtkentry.c:184 +#: ../src/gui/gtkentry.c:185 msgid "$(WIDTH.CROP) - image width after crop" msgstr "$(CROP.WIDTH) - ширина изображения после обрезки" -#: ../src/gui/gtkentry.c:185 +#: ../src/gui/gtkentry.c:186 msgid "$(WIDTH.EXPORT) - exported image width" msgstr "$(EXPORT.WIDTH) - ширина экспортируемого изображения" -#: ../src/gui/gtkentry.c:186 +#: ../src/gui/gtkentry.c:187 msgid "$(HEIGHT.MAX) - maximum image export height" msgstr "$(MAX.HEIGHT) - максимальная высота снимка (экспорт)" -#: ../src/gui/gtkentry.c:187 +#: ../src/gui/gtkentry.c:188 msgid "$(HEIGHT.SENSOR) - image sensor height" msgstr "$(SENSOR.HEIGHT) - высота сенсора изображения" -#: ../src/gui/gtkentry.c:188 +#: ../src/gui/gtkentry.c:189 msgid "$(HEIGHT.RAW) - RAW image height" msgstr "$(RAW.HEIGHT) - высота изображения RAW" -#: ../src/gui/gtkentry.c:189 +#: ../src/gui/gtkentry.c:190 msgid "$(HEIGHT.CROP) - image height after crop" msgstr "$(CROP.HEIGHT) - высота изображения после обрезки" -#: ../src/gui/gtkentry.c:190 +#: ../src/gui/gtkentry.c:191 msgid "$(HEIGHT.EXPORT) - exported image height" msgstr "$(EXPORT.HEIGHT) - высота экспортируемого изображения" -#: ../src/gui/gtkentry.c:191 +#: ../src/gui/gtkentry.c:192 msgid "$(YEAR) - year" msgstr "$(YEAR) — год" -#: ../src/gui/gtkentry.c:192 +#: ../src/gui/gtkentry.c:193 msgid "$(YEAR.SHORT) - year without century" msgstr "$(YEAR.SHORT) - год (сокр.)" -#: ../src/gui/gtkentry.c:193 +#: ../src/gui/gtkentry.c:194 msgid "$(MONTH) - month" msgstr "$(MONTH) — месяц" -#: ../src/gui/gtkentry.c:194 +#: ../src/gui/gtkentry.c:195 msgid "$(MONTH.SHORT) - abbreviated month name according to the current locale" msgstr "$(MONTH.SHORT) - месяц (сокр.) на заданном языке" -#: ../src/gui/gtkentry.c:195 +#: ../src/gui/gtkentry.c:196 msgid "$(MONTH.LONG) - full month name according to the current locale" msgstr "$(MONTH.LONG) - название месяца на заданном языке" -#: ../src/gui/gtkentry.c:196 +#: ../src/gui/gtkentry.c:197 msgid "$(DAY) - day" msgstr "$(DAY) — день" -#: ../src/gui/gtkentry.c:197 +#: ../src/gui/gtkentry.c:198 msgid "$(HOUR) - hour" msgstr "$(HOUR) — час" -#: ../src/gui/gtkentry.c:198 +#: ../src/gui/gtkentry.c:199 msgid "$(HOUR.AMPM) - hour, 12-hour clock" msgstr "$(HOUR.AMPM) - час, 12-часовой формат" -#: ../src/gui/gtkentry.c:199 +#: ../src/gui/gtkentry.c:200 msgid "$(MINUTE) - minute" msgstr "$(MINUTE) — минута" -#: ../src/gui/gtkentry.c:200 +#: ../src/gui/gtkentry.c:201 msgid "$(SECOND) - second" msgstr "$(SECOND) — секунда" -#: ../src/gui/gtkentry.c:201 +#: ../src/gui/gtkentry.c:202 msgid "$(MSEC) - millisecond" msgstr "$(MSEC) — миллисекунда" -#: ../src/gui/gtkentry.c:202 +#: ../src/gui/gtkentry.c:203 msgid "$(EXIF.YEAR) - EXIF year" msgstr "$(EXIF.YEAR) — год по Exif" -#: ../src/gui/gtkentry.c:203 +#: ../src/gui/gtkentry.c:204 msgid "$(EXIF.YEAR.SHORT) - EXIF year without century" msgstr "$(EXIF.YEAR.SHORT) — год по Exif (сокр.)" -#: ../src/gui/gtkentry.c:204 +#: ../src/gui/gtkentry.c:205 msgid "$(EXIF.MONTH) - EXIF month" msgstr "$(EXIF.MONTH) — месяц по Exif" -#: ../src/gui/gtkentry.c:205 +#: ../src/gui/gtkentry.c:206 msgid "" "$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current " "locale" msgstr "$(EXIF.MONTH.SHORT) - месяц по Exif (сокр.) на заданном языке" -#: ../src/gui/gtkentry.c:206 +#: ../src/gui/gtkentry.c:207 msgid "" "$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" msgstr "$(EXIF.MONTH.LONG) - месяц по Exif на заданном языке" -#: ../src/gui/gtkentry.c:207 +#: ../src/gui/gtkentry.c:208 msgid "$(EXIF.DAY) - EXIF day" msgstr "$(EXIF.DAY) — день по Exif" -#: ../src/gui/gtkentry.c:208 +#: ../src/gui/gtkentry.c:209 msgid "$(EXIF.HOUR) - EXIF hour" msgstr "$(EXIF.HOUR) — час по Exif" -#: ../src/gui/gtkentry.c:209 +#: ../src/gui/gtkentry.c:210 msgid "$(EXIF.HOUR.AMPM) - EXIF hour, 12-hour clock" msgstr "$(EXIF.HOUR) — час по Exif" -#: ../src/gui/gtkentry.c:210 +#: ../src/gui/gtkentry.c:211 msgid "$(EXIF.MINUTE) - EXIF minute" msgstr "$(EXIF.MINUTE) — минута по Exif" -#: ../src/gui/gtkentry.c:211 +#: ../src/gui/gtkentry.c:212 msgid "$(EXIF.SECOND) - EXIF second" msgstr "$(EXIF.SECOND) — секунда по Exif" -#: ../src/gui/gtkentry.c:212 +#: ../src/gui/gtkentry.c:213 msgid "$(EXIF.MSEC) - EXIF millisecond" msgstr "$(EXIF.SECOND) — секунда по Exif" -#: ../src/gui/gtkentry.c:213 +#: ../src/gui/gtkentry.c:214 msgid "$(EXIF.ISO) - ISO value" msgstr "$(EXIF.ISO) — значение ISO" -#: ../src/gui/gtkentry.c:214 +#: ../src/gui/gtkentry.c:215 msgid "$(EXIF.EXPOSURE) - EXIF exposure" msgstr "$(EXIF.EXPOSURE) — экспозиция по Exif" -#: ../src/gui/gtkentry.c:215 +#: ../src/gui/gtkentry.c:216 msgid "$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias" msgstr "$(EXIF_EXPOSURE.BIAS) — смещение экспозиции по Exif" -#: ../src/gui/gtkentry.c:216 +#: ../src/gui/gtkentry.c:217 msgid "$(EXIF.APERTURE) - EXIF aperture" msgstr "$(EXIF.APERTURE) — диафрагма по Exif" -#: ../src/gui/gtkentry.c:217 +#: ../src/gui/gtkentry.c:218 +msgid "$(EXIF.CROP_FACTOR) - EXIF crop factor" +msgstr "$(EXIF.CROP_FACTOR) - кроп-фактор по EXIF" + +#: ../src/gui/gtkentry.c:219 msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" msgstr "$(EXIF.FOCAL.LENGTH) — фокусное расстояние по Exif" -#: ../src/gui/gtkentry.c:218 +#: ../src/gui/gtkentry.c:220 +msgid "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent focal length" +msgstr "" +"$(EXIF.FOCAL.LENGTH) — фокусное расстояние эквивалентное 35 мм. по Exif" + +#: ../src/gui/gtkentry.c:221 msgid "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" msgstr "$(EXIF.FOCUS.DISTANCE) — дистанция (фокус) по Exif" -#: ../src/gui/gtkentry.c:219 +#: ../src/gui/gtkentry.c:222 msgid "$(EXIF.MAKER) - camera maker" msgstr "$(EXIF.MAKER) - производитель камеры" -#: ../src/gui/gtkentry.c:220 +#: ../src/gui/gtkentry.c:223 msgid "$(EXIF.MODEL) - camera model" msgstr "$(EXIF.MODEL) — модель камеры" -#: ../src/gui/gtkentry.c:221 +#: ../src/gui/gtkentry.c:224 msgid "$(EXIF.LENS) - lens" msgstr "$(EXIF.LENS) — объектив" -#: ../src/gui/gtkentry.c:222 +#: ../src/gui/gtkentry.c:225 msgid "$(LONGITUDE) - longitude" msgstr "$(LONGITUDE) — долгота" -#: ../src/gui/gtkentry.c:223 +#: ../src/gui/gtkentry.c:226 msgid "$(LATITUDE) - latitude" msgstr "$(LATITUDE) — широта" -#: ../src/gui/gtkentry.c:224 +#: ../src/gui/gtkentry.c:227 msgid "$(ELEVATION) - elevation" msgstr "$(ELEVATION) — высота" -#: ../src/gui/gtkentry.c:225 +#: ../src/gui/gtkentry.c:228 msgid "$(STARS) - star rating as number (-1 for rejected)" msgstr "$(STARS) - звездный рейтинг как число (-1 для отклоненных)" -#: ../src/gui/gtkentry.c:226 +#: ../src/gui/gtkentry.c:229 msgid "$(RATING.ICONS) - star/reject rating in icon form" msgstr "$(РЕЙТИНГ. ICONS) - звездочка/отклонение рейтинга в виде иконки" -#: ../src/gui/gtkentry.c:227 +#: ../src/gui/gtkentry.c:230 msgid "$(LABELS) - color labels as text" msgstr "$(LABELS) — текстовые цветовые метки" -#: ../src/gui/gtkentry.c:228 +#: ../src/gui/gtkentry.c:231 msgid "$(LABELS.ICONS) - color labels as icons" msgstr "$(LABELS.ICONS) — графич. цветовые метки" -#: ../src/gui/gtkentry.c:229 +#: ../src/gui/gtkentry.c:232 msgid "$(ID) - image ID" msgstr "$(ID) - ID изображения" -#: ../src/gui/gtkentry.c:230 +#: ../src/gui/gtkentry.c:233 msgid "$(TITLE) - title from metadata" msgstr "$(TITLE) — название из метаданных" -#: ../src/gui/gtkentry.c:231 +#: ../src/gui/gtkentry.c:234 msgid "$(DESCRIPTION) - description from metadata" msgstr "$(DESCRIPTION) — описание из метаданных" -#: ../src/gui/gtkentry.c:232 +#: ../src/gui/gtkentry.c:235 msgid "$(CREATOR) - creator from metadata" msgstr "$(CREATOR) — создатель из метаданных" -#: ../src/gui/gtkentry.c:233 +#: ../src/gui/gtkentry.c:236 msgid "$(PUBLISHER) - publisher from metadata" msgstr "$(PUBLISHER) — издатель из метаданных" -#: ../src/gui/gtkentry.c:234 +#: ../src/gui/gtkentry.c:237 msgid "$(RIGHTS) - rights from metadata" msgstr "$(RIGHTS) — авторские права из метаданных" -#: ../src/gui/gtkentry.c:235 +#: ../src/gui/gtkentry.c:238 msgid "$(USERNAME) - login name" msgstr "$(USERNAME) - имя пользователя" -#: ../src/gui/gtkentry.c:236 +#: ../src/gui/gtkentry.c:239 msgid "$(FOLDER.PICTURES) - pictures folder" msgstr "$(PICTURES.FOLDER) — каталог со снимками" -#: ../src/gui/gtkentry.c:237 +#: ../src/gui/gtkentry.c:240 msgid "$(FOLDER.HOME) - home folder" msgstr "$(FOLDER.HOME) — домашний каталог" -#: ../src/gui/gtkentry.c:238 +#: ../src/gui/gtkentry.c:241 msgid "$(FOLDER.DESKTOP) - desktop folder" msgstr "$(FOLDER.DESKTOP) — каталог рабочего стола" -#: ../src/gui/gtkentry.c:239 +#: ../src/gui/gtkentry.c:242 msgid "$(OPENCL.ACTIVATED) - whether OpenCL is activated" msgstr "$(OPENCL.ACTIVATED) — поддержка OpenCL" -#: ../src/gui/gtkentry.c:240 +#: ../src/gui/gtkentry.c:243 msgid "$(CATEGORY0(category)) - subtag of level 0 in hierarchical tags" msgstr "$(CATEGORY0(category)) - нулевой уровень в иерархических метках" -#: ../src/gui/gtkentry.c:241 +#: ../src/gui/gtkentry.c:244 msgid "$(TAGS) - tags as set in metadata settings" msgstr "$(TAGS) - метки" -#: ../src/gui/gtkentry.c:242 +#: ../src/gui/gtkentry.c:245 msgid "$(DARKTABLE.NAME) - darktable name" msgstr "$(DARKTABLE.NAME) — имя darktable" -#: ../src/gui/gtkentry.c:243 +#: ../src/gui/gtkentry.c:246 msgid "$(DARKTABLE.VERSION) - current darktable version" msgstr "$(DARKTABLE.VERSION) — текущая версия darktable" -#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:255 +#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:248 msgid "grid" msgstr "Сетка" @@ -10586,11 +11095,11 @@ msgstr "Общие настройки" #: ../src/gui/guides.c:710 ../src/gui/guides.c:719 ../src/gui/guides.c:727 -#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2648 +#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2494 msgid "guide lines" msgstr "Линии руководства" -#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2092 +#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2145 msgid "flip" msgstr "Отразить" @@ -10606,8 +11115,8 @@ msgid "vertically" msgstr "По вертикали" -#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6285 ../src/iop/clipping.c:2096 -#: ../src/iop/colorbalance.c:1917 +#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6232 ../src/iop/clipping.c:2149 +#: ../src/iop/colorbalance.c:1892 msgid "both" msgstr "Оба направления" @@ -10655,26 +11164,26 @@ msgid "select parts to paste" msgstr "Изменения для вставки" -#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:517 +#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:524 msgid "select _all" msgstr "Выделить _всё" -#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:518 +#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:525 msgid "select _none" msgstr "С_нять выделение" -#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:593 -#: ../src/gui/styles_dialog.c:615 +#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:605 +#: ../src/gui/styles_dialog.c:627 msgid "include" msgstr "Включить" -#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:669 -#: ../src/gui/styles_dialog.c:675 +#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:681 +#: ../src/gui/styles_dialog.c:687 msgid "item" msgstr "Изменение" -#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:682 -#: ../src/gui/styles_dialog.c:691 +#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:694 +#: ../src/gui/styles_dialog.c:703 msgid "mask" msgstr "Маска" @@ -10726,40 +11235,40 @@ msgid "interface language" msgstr "Язык интерфейса" -#: ../src/gui/preferences.c:289 +#: ../src/gui/preferences.c:290 msgid "double-click to reset to the system language" msgstr "" "Двойной щелчок сбрасывает настройки языка интерфейса darktable до настроек " "операционной системы" -#: ../src/gui/preferences.c:291 +#: ../src/gui/preferences.c:292 msgid "" "set the language of the user interface. the system default is marked with an " "* (needs a restart)" msgstr "" "Язык интерфейса darktable. Системный язык помечен * (требуется перезапуск)." -#: ../src/gui/preferences.c:300 +#: ../src/gui/preferences.c:301 msgid "theme" msgstr "Тема" -#: ../src/gui/preferences.c:328 +#: ../src/gui/preferences.c:331 msgid "set the theme for the user interface" msgstr "Тема пользовательского интерфейса darktable" -#: ../src/gui/preferences.c:341 ../src/gui/preferences.c:348 +#: ../src/gui/preferences.c:344 ../src/gui/preferences.c:351 msgid "use system font size" msgstr "Использовать системный размер шрифтов" -#: ../src/gui/preferences.c:357 ../src/gui/preferences.c:364 +#: ../src/gui/preferences.c:360 ../src/gui/preferences.c:367 msgid "font size in points" msgstr "Пользовательский размер шрифтов" -#: ../src/gui/preferences.c:369 +#: ../src/gui/preferences.c:372 msgid "GUI controls and text DPI" msgstr "DPI элементов интерфейса" -#: ../src/gui/preferences.c:376 +#: ../src/gui/preferences.c:379 msgid "" "adjust the global GUI resolution to rescale controls, buttons, labels, etc.\n" "increase for a magnified GUI, decrease to fit more content in window.\n" @@ -10772,79 +11281,63 @@ "(требуется перезапуск)." #. checkbox to allow user to modify theme with user.css -#: ../src/gui/preferences.c:385 +#: ../src/gui/preferences.c:388 msgid "modify selected theme with CSS tweaks below" msgstr "Пользовательские изменения к выбранной теме" -#: ../src/gui/preferences.c:393 +#: ../src/gui/preferences.c:396 msgid "modify theme with CSS keyed below (saved to user.css)" msgstr "" "Применить пользовательские изменения в формате CSS. Настройки хранятся в " "файле user.css." -#: ../src/gui/preferences.c:415 +#: ../src/gui/preferences.c:418 msgctxt "usercss" msgid "save CSS and apply" msgstr "Сохранить CSS и применить" -#: ../src/gui/preferences.c:420 +#: ../src/gui/preferences.c:423 msgid "click to save and apply the CSS tweaks entered in this editor" msgstr "Сохранить CSS и применить изменения, введённые в редакторе" -#: ../src/gui/preferences.c:422 +#: ../src/gui/preferences.c:425 msgid "open help page for CSS tweaks" msgstr "Откройте справку для настроек CSS" #. load default text with some pointers -#: ../src/gui/preferences.c:443 +#: ../src/gui/preferences.c:446 msgid "ERROR Loading user.css" msgstr "Ошибка загрузки user.css!" #. load default text -#: ../src/gui/preferences.c:452 +#: ../src/gui/preferences.c:455 msgid "Enter CSS theme tweaks here" msgstr "Введите пользовательские изменения к выбранной теме в формате CSS " -#: ../src/gui/preferences.c:488 +#: ../src/gui/preferences.c:491 msgid "darktable preferences" msgstr "Настройки darktable" -#: ../src/gui/preferences.c:533 -msgid "processing" -msgstr "Обрабатывается" - -#: ../src/gui/preferences.c:534 -msgid "security" -msgstr "Подтверждения" - -#: ../src/gui/preferences.c:535 -msgid "storage" -msgstr "Хранилище" - -#: ../src/gui/preferences.c:536 -msgid "miscellaneous" -msgstr "Прочее" - -#: ../src/gui/preferences.c:561 +#: ../src/gui/preferences.c:559 msgid "darktable needs to be restarted for settings to take effect" msgstr "Требуется перезапуск для применения настроек" #. exif -#: ../src/gui/preferences.c:820 ../src/gui/presets.c:644 -#: ../src/libs/metadata_view.c:137 +#: ../src/gui/preferences.c:818 ../src/gui/presets.c:647 +#: ../src/libs/metadata_view.c:139 msgid "model" msgstr "Камера" -#: ../src/gui/preferences.c:824 ../src/gui/presets.c:652 -#: ../src/libs/metadata_view.c:138 +#: ../src/gui/preferences.c:822 ../src/gui/presets.c:655 +#: ../src/libs/metadata_view.c:140 msgid "maker" msgstr "Производитель" -#: ../src/gui/preferences.c:861 +#: ../src/gui/preferences.c:859 msgid "search presets list" msgstr "список пресетов поиска" -#: ../src/gui/preferences.c:862 +#: ../src/gui/preferences.c:860 msgid "" "incrementally search the list of presets\n" "press up or down keys to cycle through matches" @@ -10852,70 +11345,70 @@ "пошаговый поиск в списке пресетов\n" "нажимайте клавиши вверх или вниз, чтобы переключаться между совпадениями" -#: ../src/gui/preferences.c:868 +#: ../src/gui/preferences.c:866 msgctxt "preferences" msgid "import..." msgstr "Импорт..." -#: ../src/gui/preferences.c:872 +#: ../src/gui/preferences.c:870 msgctxt "preferences" msgid "export..." msgstr "Экспорт..." -#: ../src/gui/preferences.c:1031 +#: ../src/gui/preferences.c:1030 #, c-format msgid "failed to import preset %s" msgstr "Ошибка импорта профиля «%s»" -#: ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1041 msgid "select preset(s) to import" msgstr "Выберите пресет(ы) для импорта" -#: ../src/gui/preferences.c:1043 ../src/libs/collect.c:408 -#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:929 -#: ../src/libs/import.c:1506 ../src/libs/import.c:1610 ../src/libs/styles.c:527 +#: ../src/gui/preferences.c:1042 ../src/libs/collect.c:425 +#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:930 +#: ../src/libs/import.c:1515 ../src/libs/import.c:1619 ../src/libs/styles.c:529 msgid "_open" msgstr "_Открыть" -#: ../src/gui/preferences.c:1052 +#: ../src/gui/preferences.c:1051 msgid "darktable preset files" msgstr "Файлы пресетов darktable" -#: ../src/gui/preferences.c:1057 ../src/iop/lut3d.c:1577 -#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:945 -#: ../src/libs/styles.c:541 +#: ../src/gui/preferences.c:1056 ../src/iop/lut3d.c:1591 +#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:946 +#: ../src/libs/styles.c:543 msgid "all files" msgstr "Все файлы" -#: ../src/gui/presets.c:59 +#: ../src/gui/presets.c:61 msgid "non-raw" msgstr "не RAW" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:332 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:336 msgid "raw" msgstr "Raw" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:333 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:337 msgid "HDR" msgstr "HDR" -#: ../src/gui/presets.c:59 ../src/iop/monochrome.c:77 ../src/libs/image.c:608 -#: ../src/libs/metadata_view.c:339 +#: ../src/gui/presets.c:61 ../src/iop/monochrome.c:77 ../src/libs/image.c:679 +#: ../src/libs/metadata_view.c:343 msgid "monochrome" msgstr "Ч/б" -#: ../src/gui/presets.c:151 +#: ../src/gui/presets.c:153 #, c-format msgid "preset `%s' is write-protected, can't delete!" msgstr "Ошибка удаления! Профиль «%s» защищён от записи." -#: ../src/gui/presets.c:157 ../src/gui/presets.c:461 ../src/libs/lib.c:238 -#: ../src/libs/modulegroups.c:3701 +#: ../src/gui/presets.c:159 ../src/gui/presets.c:463 ../src/libs/lib.c:238 +#: ../src/libs/modulegroups.c:3703 msgid "delete preset?" msgstr "Удаление профиля" -#: ../src/gui/presets.c:158 ../src/gui/presets.c:462 ../src/libs/lib.c:239 -#: ../src/libs/modulegroups.c:3702 +#: ../src/gui/presets.c:160 ../src/gui/presets.c:464 ../src/libs/lib.c:239 +#: ../src/libs/modulegroups.c:3704 #, c-format msgid "do you really want to delete the preset `%s'?" msgstr "Вы действительно хотите удалить профиль «%s»?" @@ -10926,25 +11419,25 @@ #. clang-format on #. create a shortcut for the new entry #. then show edit dialog -#: ../src/gui/presets.c:200 ../src/gui/presets.c:1035 ../src/gui/presets.c:1038 -#: ../src/gui/presets.c:1041 ../src/libs/lib.c:188 ../src/libs/lib.c:205 +#: ../src/gui/presets.c:202 ../src/gui/presets.c:1022 ../src/gui/presets.c:1025 +#: ../src/gui/presets.c:1028 ../src/libs/lib.c:188 ../src/libs/lib.c:205 #: ../src/libs/lib.c:213 ../src/libs/lib.c:216 msgid "new preset" msgstr "Новый профиль" -#: ../src/gui/presets.c:207 +#: ../src/gui/presets.c:209 msgid "please give preset a name" msgstr "Дайте профилю название" -#: ../src/gui/presets.c:212 +#: ../src/gui/presets.c:214 msgid "unnamed preset" msgstr "Безымянный профиль" -#: ../src/gui/presets.c:241 +#: ../src/gui/presets.c:243 msgid "overwrite preset?" msgstr "Перезапись профиля" -#: ../src/gui/presets.c:242 +#: ../src/gui/presets.c:244 #, c-format msgid "" "preset `%s' already exists.\n" @@ -10953,38 +11446,43 @@ "Профиль «%s» уже существует.\n" "Вы хотите его перезаписать?" -#: ../src/gui/presets.c:420 ../src/imageio/storage/disk.c:123 -#: ../src/imageio/storage/gallery.c:110 ../src/imageio/storage/latex.c:109 +#: ../src/gui/presets.c:422 ../src/imageio/storage/disk.c:198 +#: ../src/imageio/storage/gallery.c:150 ../src/imageio/storage/latex.c:146 msgid "_select as output destination" msgstr "_Выбрать" -#: ../src/gui/presets.c:429 +#: ../src/gui/presets.c:431 #, c-format msgid "preset %s was successfully exported" msgstr "Профиль «%s» успешно экспортирован" -#: ../src/gui/presets.c:557 +#: ../src/gui/presets.c:559 #, c-format msgid "edit `%s' for module `%s'" msgstr "Изменение профиля «%s» для модуля «%s»" -#: ../src/gui/presets.c:561 +#: ../src/gui/presets.c:563 msgid "_export..." msgstr "Экспорт..." -#: ../src/gui/presets.c:585 +#: ../src/gui/presets.c:564 ../src/libs/tagging.c:1489 +#: ../src/libs/tagging.c:1580 +msgid "_delete" +msgstr "Удалить" + +#: ../src/gui/presets.c:588 msgid "name of the preset" msgstr "Имя профиля" -#: ../src/gui/presets.c:594 +#: ../src/gui/presets.c:597 msgid "description or further information" msgstr "Описание профиля" -#: ../src/gui/presets.c:598 +#: ../src/gui/presets.c:601 msgid "reset all module parameters to their default values" msgstr "Сбросить все параметры модуля до исходных" -#: ../src/gui/presets.c:601 +#: ../src/gui/presets.c:604 msgid "" "the parameters will be reset to their default values, which may be " "automatically set based on image metadata" @@ -10992,42 +11490,42 @@ "Параметры будут сброшены до значений по умолчанию, которые могут быть " "установлены автоматически на основе метаданных изображения." -#: ../src/gui/presets.c:607 +#: ../src/gui/presets.c:610 msgid "auto apply this preset to matching images" msgstr "Автоматически применять к снимкам, соответствующим указанным критериям" -#: ../src/gui/presets.c:611 +#: ../src/gui/presets.c:614 msgid "only show this preset for matching images" msgstr "" "Показывать профиль только для снимков, соответствующих указанным критериям" -#: ../src/gui/presets.c:613 +#: ../src/gui/presets.c:616 msgid "" "be very careful with this option. this might be the last time you see your " "preset." msgstr "Будьте осторожны! Возможно, вы видите этот профиль в последний раз." -#: ../src/gui/presets.c:643 +#: ../src/gui/presets.c:646 #, no-c-format msgid "string to match model (use % as wildcard)" msgstr "Строка для поиска модели камеры (% используется для выбора всего)" -#: ../src/gui/presets.c:651 +#: ../src/gui/presets.c:654 #, no-c-format msgid "string to match maker (use % as wildcard)" msgstr "" "Строка для поиска производителя камеры (% используется для выбора всего)" -#: ../src/gui/presets.c:659 +#: ../src/gui/presets.c:662 #, no-c-format msgid "string to match lens (use % as wildcard)" msgstr "Строка для поиска модели объектива (% используется для выбора всего)" -#: ../src/gui/presets.c:669 +#: ../src/gui/presets.c:672 msgid "minimum ISO value" msgstr "Минимальное значение ISO" -#: ../src/gui/presets.c:675 +#: ../src/gui/presets.c:678 msgid "" "maximum ISO value\n" "if left blank, it is equivalent to no upper limit" @@ -11035,70 +11533,70 @@ "Максимальное значение ISO\n" "Если оставить его пустым, верхний предел не будет установлен" -#: ../src/gui/presets.c:688 +#: ../src/gui/presets.c:691 msgid "minimum exposure time" msgstr "Минимальное время экспозиции" -#: ../src/gui/presets.c:689 +#: ../src/gui/presets.c:692 msgid "maximum exposure time" msgstr "Максимальное время экспозиции" -#: ../src/gui/presets.c:705 +#: ../src/gui/presets.c:708 msgid "minimum aperture value" msgstr "Минимальное значение диафрагмы" -#: ../src/gui/presets.c:706 +#: ../src/gui/presets.c:709 msgid "maximum aperture value" msgstr "Максимальное значение диафрагмы" -#: ../src/gui/presets.c:724 +#: ../src/gui/presets.c:727 msgid "minimum focal length" msgstr "Минимальное фокусное расстояние" -#: ../src/gui/presets.c:725 +#: ../src/gui/presets.c:728 msgid "maximum focal length" msgstr "Максимальное фокусное расстояние" #. raw/hdr/ldr/mono/color -#: ../src/gui/presets.c:733 ../src/imageio/format/j2k.c:650 +#: ../src/gui/presets.c:736 msgid "format" msgstr "Контейнер" -#: ../src/gui/presets.c:738 +#: ../src/gui/presets.c:741 msgid "select image types you want this preset to be available for" msgstr "Выберите типы изображений, к которым будет применяться данный профиль" -#: ../src/gui/presets.c:751 ../src/libs/filtering.c:1201 +#: ../src/gui/presets.c:754 ../src/libs/filtering.c:1263 msgid "and" msgstr " и " -#: ../src/gui/presets.c:795 ../src/gui/presets.c:847 +#: ../src/gui/presets.c:798 ../src/gui/presets.c:850 msgid "∞" msgstr "∞" -#: ../src/gui/presets.c:979 +#: ../src/gui/presets.c:966 #, c-format msgid "preset `%s' is write-protected! can't edit it!" msgstr "Ошибка редактирования! Профиль «%s» защищён от записи." -#: ../src/gui/presets.c:1003 ../src/libs/lib.c:158 +#: ../src/gui/presets.c:990 ../src/libs/lib.c:158 msgid "update preset?" msgstr "Обновление профиля" -#: ../src/gui/presets.c:1004 ../src/libs/lib.c:159 +#: ../src/gui/presets.c:991 ../src/libs/lib.c:159 #, c-format msgid "do you really want to update the preset `%s'?" msgstr "Вы действительно хотите обновить профиль «%s»?" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(first)" msgstr "(первый)" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(last)" msgstr "(последний)" -#: ../src/gui/presets.c:1165 +#: ../src/gui/presets.c:1152 #, c-format msgid "" "preset %s\n" @@ -11107,63 +11605,63 @@ "Профили %s\n" "%s" -#: ../src/gui/presets.c:1166 +#: ../src/gui/presets.c:1153 msgid "no presets" msgstr "Нет профилей" -#: ../src/gui/presets.c:1199 ../src/iop/basecurve.c:528 -#: ../src/iop/basecurve.c:532 ../src/iop/basecurve.c:535 +#: ../src/gui/presets.c:1188 ../src/iop/basecurve.c:575 +#: ../src/iop/basecurve.c:579 ../src/iop/basecurve.c:582 msgid "display-referred default" msgstr "По умолчанию для «Базовая кривая»" -#: ../src/gui/presets.c:1201 ../src/iop/channelmixerrgb.c:332 -#: ../src/iop/channelmixerrgb.c:336 ../src/iop/channelmixerrgb.c:339 -#: ../src/iop/exposure.c:297 ../src/iop/exposure.c:301 -#: ../src/iop/exposure.c:304 ../src/iop/filmicrgb.c:3248 -#: ../src/iop/filmicrgb.c:3252 ../src/iop/filmicrgb.c:3255 -#: ../src/iop/sigmoid.c:134 ../src/iop/sigmoid.c:138 ../src/iop/sigmoid.c:141 +#: ../src/gui/presets.c:1190 ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:400 ../src/iop/channelmixerrgb.c:403 +#: ../src/iop/exposure.c:319 ../src/iop/exposure.c:323 +#: ../src/iop/exposure.c:326 ../src/iop/filmicrgb.c:3311 +#: ../src/iop/filmicrgb.c:3315 ../src/iop/filmicrgb.c:3318 +#: ../src/iop/sigmoid.c:240 ../src/iop/sigmoid.c:243 ../src/iop/sigmoid.c:245 msgid "scene-referred default" msgstr "По умолчанию для «Плёночная тональная кривая RGB»" -#: ../src/gui/presets.c:1393 ../src/libs/modulegroups.c:3781 -#: ../src/libs/modulegroups.c:3790 +#: ../src/gui/presets.c:1394 ../src/libs/modulegroups.c:3783 +#: ../src/libs/modulegroups.c:3792 msgid "manage module layouts" msgstr "Группировка модулей" -#: ../src/gui/presets.c:1402 +#: ../src/gui/presets.c:1403 msgid "manage quick presets" msgstr "Профили модулей" -#: ../src/gui/presets.c:1586 +#: ../src/gui/presets.c:1587 msgid "manage quick presets list..." msgstr "Профили модулей..." -#: ../src/gui/presets.c:1727 +#: ../src/gui/presets.c:1728 msgid "(default)" msgstr "(по умолчанию)" -#: ../src/gui/presets.c:1754 +#: ../src/gui/presets.c:1755 msgid "disabled: wrong module version" msgstr "Отключено: неправильная версия модуля" -#: ../src/gui/presets.c:1776 ../src/libs/lib.c:551 +#: ../src/gui/presets.c:1777 ../src/libs/lib.c:551 msgid "edit this preset.." msgstr "Изменить этот профиль" -#: ../src/gui/presets.c:1781 ../src/libs/lib.c:555 +#: ../src/gui/presets.c:1782 ../src/libs/lib.c:555 msgid "delete this preset" msgstr "Удалить этот профиль" -#: ../src/gui/presets.c:1788 ../src/libs/lib.c:563 +#: ../src/gui/presets.c:1789 ../src/libs/lib.c:563 msgid "store new preset.." msgstr "Создать новый профиль..." -#: ../src/gui/presets.c:1796 ../src/libs/lib.c:576 +#: ../src/gui/presets.c:1797 ../src/libs/lib.c:576 msgid "update preset" msgstr "Обновить профиль" #: ../src/gui/styles_dialog.c:221 ../src/libs/styles.c:437 -#: ../src/libs/styles.c:620 +#: ../src/libs/styles.c:622 msgid "overwrite style?" msgstr "Перезапись стиля" @@ -11189,40 +11687,40 @@ msgid "style %s was successfully saved" msgstr "Стиль «%s» успешно сохранён" -#: ../src/gui/styles_dialog.c:505 +#: ../src/gui/styles_dialog.c:512 msgid "edit style" msgstr "Изменение стиля" -#: ../src/gui/styles_dialog.c:506 +#: ../src/gui/styles_dialog.c:513 msgid "duplicate style" msgstr "Создание копии стиля" -#: ../src/gui/styles_dialog.c:507 +#: ../src/gui/styles_dialog.c:514 msgid "creates a duplicate of the style before applying changes" msgstr "Создать копию этого стиля перед внесением изменений" -#: ../src/gui/styles_dialog.c:511 +#: ../src/gui/styles_dialog.c:518 msgid "create new style" msgstr "Создание нового стиля" -#: ../src/gui/styles_dialog.c:549 +#: ../src/gui/styles_dialog.c:557 msgid "enter a name for the new style" msgstr "Введите имя нового стиля" -#: ../src/gui/styles_dialog.c:554 +#: ../src/gui/styles_dialog.c:565 msgid "enter a description for the new style, this description is searchable" msgstr "" "Введите описание нового стиля, которое может быть использовано для поиска" -#: ../src/gui/styles_dialog.c:593 +#: ../src/gui/styles_dialog.c:605 msgid "keep" msgstr "Сохранить" -#: ../src/gui/styles_dialog.c:820 +#: ../src/gui/styles_dialog.c:832 msgid "can't create style out of unaltered image" msgstr "Невозможно создать стиль из снимка без изменений" -#: ../src/imageio/imageio.c:804 +#: ../src/imageio/imageio.c:816 #, c-format msgid "" "failed to allocate memory for %s, please lower the threads used for export " @@ -11231,90 +11729,116 @@ "Ошибка выделения памяти под «%s»! Уменьшите количество потоков для экспорта " "или установите больше памяти." -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "thumbnail export" msgstr "Экспорт миниатюр" -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "export" msgstr "Экспорт" -#: ../src/imageio/imageio.c:819 +#: ../src/imageio/imageio.c:831 #, c-format msgid "cannot find the style '%s' to apply during export." msgstr "Не найден стиль «%s», необходимый для экспорта!" -#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:536 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/imageio_libraw.c:295 +msgid "" +"<span foreground='red'><b>WARNING</b></span>: camera is not fully supported!" +msgstr "" +"<span foreground='red'><b>ВНИМАНИЕ</b></span>: камера поддерживается не " +"полностью!" + +#: ../src/imageio/imageio_libraw.c:297 +#, c-format +msgid "" +"colors for `%s' could be misrepresented,\n" +"and edits might not be compatible with future versions." +msgstr "" +"Цвета для `%s\" могут быть искажены,\n" +"Внесенные изменения могут быть несовместимы с будущими версиями." + +#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:641 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "8 bit" msgstr "8 бит" -#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:567 msgid "10 bit" msgstr "10 бит" -#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:567 msgid "12 bit" msgstr "12 бит" -#: ../src/imageio/format/avif.c:431 +#: ../src/imageio/format/avif.c:110 ../src/imageio/format/webp.c:416 +msgid "lossless" +msgstr "Без потерь" + +#: ../src/imageio/format/avif.c:112 ../src/imageio/format/webp.c:416 +msgid "lossy" +msgstr "С потерями" + +#: ../src/imageio/format/avif.c:463 msgid "invalid AVIF bit depth!" msgstr "Некорректная разрядность AVIF!" -#: ../src/imageio/format/avif.c:694 -msgid "AVIF" -msgstr "AVIF" - #. Bit depth combo box -#: ../src/imageio/format/avif.c:766 ../src/imageio/format/exr.cc:565 -#: ../src/imageio/format/jxl.c:555 ../src/imageio/format/pdf.c:661 -#: ../src/imageio/format/png.c:534 ../src/imageio/format/tiff.c:843 +#: ../src/imageio/format/avif.c:800 ../src/imageio/format/exr.cc:601 +#: ../src/imageio/format/jxl.c:566 ../src/imageio/format/pdf.c:661 +#: ../src/imageio/format/png.c:639 ../src/imageio/format/tiff.c:900 #: ../src/imageio/format/xcf.c:354 msgid "bit depth" msgstr "Разрядность" -#: ../src/imageio/format/avif.c:779 +#: ../src/imageio/format/avif.c:813 msgid "color information stored in an image, higher is better" msgstr "Количество бит информации на пиксель конечного изображения" -#: ../src/imageio/format/avif.c:787 +#. +#. * Color mode combo box +#. +#. shortfile option combo box +#: ../src/imageio/format/avif.c:820 ../src/imageio/format/tiff.c:944 +msgid "B&W as grayscale" +msgstr "В градациях серого" + +#: ../src/imageio/format/avif.c:821 ../src/imageio/format/tiff.c:945 msgid "saving as grayscale will reduce the size for black & white images" msgstr "Сохранение в градациях серого уменьшит размер конечного изображения" -#: ../src/imageio/format/avif.c:789 -msgid "RGB colors" -msgstr "Цвета RGB" - -#: ../src/imageio/format/avif.c:789 -msgid "grayscale" -msgstr "В градациях серого" - #. #. * Tiling combo box #. -#: ../src/imageio/format/avif.c:799 +#: ../src/imageio/format/avif.c:832 msgid "tiling" msgstr "Сегментирование" -#: ../src/imageio/format/avif.c:800 +#: ../src/imageio/format/avif.c:833 msgid "" "tile an image into segments.\n" "\n" -"makes encoding faster. the impact on quality reduction is negligible, but " -"increases the file size." +"makes encoding faster, but increases the file size. the loss of image " +"quality is negligible." msgstr "" "Разбивка изображения на сегменты.\n" -"Кодирование изображения происходит быстрее, но незначительно увеличивается " -"размер конечного изображения." +"\n" +"Кодирование изображения происходит быстрее, влиянее на качество " +"незначительно, но увеличивается размер конечного изображения." -#: ../src/imageio/format/avif.c:817 ../src/imageio/format/webp.c:383 -msgid "compression type" -msgstr "Тип сжатия" +#. compression +#. Compression method combo box +#: ../src/imageio/format/avif.c:850 ../src/imageio/format/exr.cc:611 +#: ../src/imageio/format/pdf.c:676 ../src/imageio/format/png.c:653 +#: ../src/imageio/format/tiff.c:923 ../src/imageio/format/webp.c:414 +#: ../src/libs/masks.c:111 +msgid "compression" +msgstr "Сжатие" -#: ../src/imageio/format/avif.c:825 +#: ../src/imageio/format/avif.c:858 msgid "the compression for the image" msgstr "Тип сжатия конечного изображения" @@ -11323,36 +11847,29 @@ #. step #. default #. digits -#: ../src/imageio/format/avif.c:842 ../src/imageio/format/j2k.c:661 -#: ../src/imageio/format/jpeg.c:587 ../src/imageio/format/jxl.c:579 -#: ../src/imageio/format/webp.c:394 ../src/libs/camera.c:564 +#: ../src/imageio/format/avif.c:878 ../src/imageio/format/j2k.c:679 +#: ../src/imageio/format/jpeg.c:584 ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/webp.c:425 ../src/libs/camera.c:564 msgid "quality" msgstr "Качество" -#: ../src/imageio/format/avif.c:847 +#: ../src/imageio/format/avif.c:881 msgid "" "the quality of an image, less quality means fewer details.\n" "\n" -"the following applies only to lossy setting\n" -"\n" -"pixelformat based on quality:\n" +"pixel format is controlled by quality:\n" "\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" msgstr "" -"Качество сжатия конечного изображения.\n" -"\n" -"Применимо только для сжатия с потерями.\n" +"Качество сжатия конечного изображения, снижение качества приводит к " +"уменьшению детализации\n" "\n" "Формат пикселей определяется качеством сжатия:\n" "\n" -" 91-100% — YUV444\n" -" 81-90% — YUV422\n" -" 5-80% — YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" #: ../src/imageio/format/copy.c:109 ../src/libs/copy_history.c:370 -#: ../src/libs/image.c:583 +#: ../src/libs/image.c:647 msgid "copy" msgstr "Копировать" @@ -11368,120 +11885,142 @@ msgid "the selected output profile doesn't work well with EXR" msgstr "Выбранный ICC-профиль вывода не может быть использован с OpenEXR" -#: ../src/imageio/format/exr.cc:540 +#: ../src/imageio/format/exr.cc:576 msgid "OpenEXR" msgstr "OpenEXR" -#: ../src/imageio/format/exr.cc:567 +#: ../src/imageio/format/exr.cc:603 msgid "16 bit (float)" msgstr "32 бит (плав. точка)" -#: ../src/imageio/format/exr.cc:567 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/format/exr.cc:603 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "32 bit (float)" msgstr "32 бит (плав. точка)" -#. compression -#. Compression method combo box -#: ../src/imageio/format/exr.cc:575 ../src/imageio/format/pdf.c:676 -#: ../src/imageio/format/png.c:548 ../src/imageio/format/tiff.c:866 -#: ../src/libs/masks.c:110 -msgid "compression" -msgstr "Сжатие" - -#: ../src/imageio/format/exr.cc:577 ../src/imageio/format/pdf.c:682 -#: ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/exr.cc:613 ../src/imageio/format/pdf.c:682 +#: ../src/imageio/format/tiff.c:924 msgid "uncompressed" msgstr "Без сжатия" -#: ../src/imageio/format/exr.cc:578 +#: ../src/imageio/format/exr.cc:614 msgid "RLE" msgstr "RLE" -#: ../src/imageio/format/exr.cc:579 +#: ../src/imageio/format/exr.cc:615 msgid "ZIPS" msgstr "ZIPS" -#: ../src/imageio/format/exr.cc:580 +#: ../src/imageio/format/exr.cc:616 msgid "ZIP" msgstr "ZIP" -#: ../src/imageio/format/exr.cc:581 +#: ../src/imageio/format/exr.cc:617 msgid "PIZ" msgstr "PIZ" -#: ../src/imageio/format/exr.cc:582 +#: ../src/imageio/format/exr.cc:618 msgid "PXR24" msgstr "PXR24" -#: ../src/imageio/format/exr.cc:583 +#: ../src/imageio/format/exr.cc:619 msgid "B44" msgstr "B44" -#: ../src/imageio/format/exr.cc:584 +#: ../src/imageio/format/exr.cc:620 msgid "B44A" msgstr "B44A" -#: ../src/imageio/format/exr.cc:585 +#: ../src/imageio/format/exr.cc:621 msgid "DWAA" msgstr "DWAA" -#: ../src/imageio/format/exr.cc:586 +#: ../src/imageio/format/exr.cc:622 msgid "DWAB" msgstr "DWAB" -#: ../src/imageio/format/j2k.c:618 +#: ../src/imageio/format/j2k.c:648 msgid "JPEG 2000 (12-bit)" msgstr "JPEG 2000 (12 бит)" -#: ../src/imageio/format/j2k.c:652 -msgid "jp2" -msgstr "JP2" - -#: ../src/imageio/format/j2k.c:667 +#: ../src/imageio/format/j2k.c:684 msgid "DCP mode" msgstr "Режим DCP" -#: ../src/imageio/format/j2k.c:670 +#: ../src/imageio/format/j2k.c:687 msgid "Cinema2K, 24FPS" msgstr "Cinema2K, 24 к/с" -#: ../src/imageio/format/j2k.c:671 +#: ../src/imageio/format/j2k.c:688 msgid "Cinema2K, 48FPS" msgstr "Cinema2K, 48 к/с" -#: ../src/imageio/format/j2k.c:672 +#: ../src/imageio/format/j2k.c:689 msgid "Cinema4K, 24FPS" msgstr "Cinema4K, 24 к/с" -#: ../src/imageio/format/jpeg.c:564 +#: ../src/imageio/format/jpeg.c:546 msgid "JPEG (8-bit)" msgstr "JPEG (8 бит)" -#: ../src/imageio/format/jxl.c:471 -msgid "JPEG XL" -msgstr "JPEG XL" +#: ../src/imageio/format/jpeg.c:594 +msgid "chroma subsampling" +msgstr "Цветовая субдискретизация" + +#: ../src/imageio/format/jpeg.c:595 +msgid "" +"chroma subsampling setting for JPEG encoder.\n" +"auto - use subsampling determined by the quality value\n" +"4:4:4 - no chroma subsampling\n" +"4:4:0 - color sampling rate halved vertically\n" +"4:2:2 - color sampling rate halved horizontally\n" +"4:2:0 - color sampling rate halved horizontally and vertically" +msgstr "" +"Настройка цветовой субдискретизации для JPEG-кодера.\n" +"автоматическое использование субдискретизации, определяемой значением " +"качества\n" +"4:4:4 - нет цветовой субдискретизации\n" +"4:4:0 - частота цветовой субдискретизации уменьшена вдвое по вертикали\n" +"4:2:2 - частота цветовой субдискретизации уменьшена вдвое по горизонтали\n" +"4:2:0 - частота цветовой субдискретизации уменьшена вдвое по горизонтали и " +"вертикали" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:4" +msgstr "4:4:4" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:0" +msgstr "4:4:0" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:2" +msgstr "4:2:2" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:0" +msgstr "4:2:0" -#: ../src/imageio/format/jxl.c:556 ../src/imageio/format/pdf.c:81 -#: ../src/imageio/format/png.c:536 ../src/imageio/format/tiff.c:847 +#: ../src/imageio/format/jxl.c:567 ../src/imageio/format/pdf.c:81 +#: ../src/imageio/format/png.c:641 ../src/imageio/format/tiff.c:904 #: ../src/imageio/format/xcf.c:357 msgid "16 bit" msgstr "16 бит" #. Pixel format combo box -#: ../src/imageio/format/jxl.c:562 ../src/imageio/format/tiff.c:852 +#: ../src/imageio/format/jxl.c:573 ../src/imageio/format/tiff.c:909 msgid "pixel type" msgstr "Тип пикселя" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "unsigned integer" msgstr "Целое число без знака" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "floating point" msgstr "Плавающая запятая" -#: ../src/imageio/format/jxl.c:580 +#: ../src/imageio/format/jxl.c:591 msgid "" "the quality of the output image\n" "0-29 = very lossy\n" @@ -11493,11 +12032,11 @@ "30-99 = сопоставимое с JPEG\n" "100 = без потерь (только целочисленная битовая глубина)" -#: ../src/imageio/format/jxl.c:589 +#: ../src/imageio/format/jxl.c:600 msgid "encoding color profile" msgstr "Кодирование цветового профиля" -#: ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/jxl.c:601 msgid "" "the color profile used by the encoder\n" "permit internal XYB color space conversion for more efficient lossy " @@ -11511,20 +12050,20 @@ "или обеспечивает отсутствие преобразования цветового пространства для " "высококачественных изображений." -#: ../src/imageio/format/jxl.c:593 +#: ../src/imageio/format/jxl.c:604 msgid "internal" msgstr "Внутренний" -#: ../src/imageio/format/jxl.c:593 ../src/libs/duplicate.c:399 -#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:782 +#: ../src/imageio/format/jxl.c:604 ../src/libs/duplicate.c:405 +#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:840 msgid "original" msgstr "Оригинал" -#: ../src/imageio/format/jxl.c:607 +#: ../src/imageio/format/jxl.c:618 msgid "encoding effort" msgstr "Затраты мощностей при кодировании" -#: ../src/imageio/format/jxl.c:608 +#: ../src/imageio/format/jxl.c:619 msgid "" "the effort used to encode the image, higher efforts will have better results " "at the expense of longer encoding times" @@ -11532,11 +12071,11 @@ "Мощности, затраченные при кодировании изображения. Большие затраты дают " "лучшие результаты за счет более длительного времени кодирования" -#: ../src/imageio/format/jxl.c:619 +#: ../src/imageio/format/jxl.c:630 msgid "decoding speed" msgstr "Скорость декодирования" -#: ../src/imageio/format/jxl.c:620 +#: ../src/imageio/format/jxl.c:631 msgid "the preferred decoding speed with some sacrifice of quality" msgstr "Предпочтительная скорость декодирования с небольшой потерей качества" @@ -11548,9 +12087,9 @@ msgid "invalid border size, using 0" msgstr "Некорректный размер полей, использую 0" -#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:316 -#: ../src/imageio/storage/email.c:137 ../src/imageio/storage/gallery.c:331 -#: ../src/imageio/storage/gallery.c:370 ../src/imageio/storage/piwigo.c:1202 +#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:460 +#: ../src/imageio/storage/email.c:187 ../src/imageio/storage/gallery.c:409 +#: ../src/imageio/storage/gallery.c:450 ../src/imageio/storage/piwigo.c:1236 #, c-format msgid "could not export to file `%s'!" msgstr "Ошибка экспорта в файл «%s»!" @@ -11604,8 +12143,8 @@ "Например: 10 mm, 1 inch" #. dpi -#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1127 -#: ../src/libs/export.c:1150 +#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1218 +#: ../src/libs/export.c:1246 msgid "dpi" msgstr "DPI" @@ -11667,7 +12206,7 @@ "Без сжатия — высокая скорость, большой размер файла\n" "Deflate — меньший размер файла, ниже скорость" -#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:924 msgid "deflate" msgstr "Deflate" @@ -11698,60 +12237,23 @@ msgid "debug" msgstr "Отладка" -#: ../src/imageio/format/pfm.c:120 -msgid "PFM" -msgstr "PFM" - -#: ../src/imageio/format/png.c:493 -msgid "PNG" -msgstr "PNG" - #: ../src/imageio/format/ppm.c:111 msgid "PPM (16-bit)" msgstr "PPM (16 бит)" -#: ../src/imageio/format/tiff.c:228 -msgid "will export as a grayscale image" -msgstr "Экспорт в градациях серого" +#: ../src/imageio/format/tiff.c:246 +msgid "not a B&W image, will not export as grayscale" +msgstr "Изображение не черно-белое, экспорт в градациях серого невозможен" -#: ../src/imageio/format/tiff.c:774 -msgid "TIFF" -msgstr "TIFF" - -#: ../src/imageio/format/tiff.c:868 +#: ../src/imageio/format/tiff.c:925 msgid "deflate with predictor" msgstr "Deflate с предиктором" -#: ../src/imageio/format/tiff.c:878 +#: ../src/imageio/format/tiff.c:935 msgid "compression level" msgstr "Уровень сжатия" -#. shortfile option combo box -#: ../src/imageio/format/tiff.c:887 -msgid "b&w image" -msgstr "Тип изображения" - -#: ../src/imageio/format/tiff.c:888 -msgid "write RGB colors" -msgstr "Цветное" - -#: ../src/imageio/format/tiff.c:888 -msgid "write grayscale" -msgstr "В градациях серого" - -#: ../src/imageio/format/webp.c:349 -msgid "WebP" -msgstr "WebP" - -#: ../src/imageio/format/webp.c:385 -msgid "lossy" -msgstr "С потерями" - -#: ../src/imageio/format/webp.c:385 -msgid "lossless" -msgstr "Без потерь" - -#: ../src/imageio/format/webp.c:397 +#: ../src/imageio/format/webp.c:426 msgid "" "for lossy, 0 gives the smallest size and 100 the best quality.\n" "for lossless, 0 is the fastest but gives larger files compared\n" @@ -11761,11 +12263,11 @@ "Для качества без потерь, 0 самый быстрый, но файлы тяжелее, чем\n" "при самых медленных 100." -#: ../src/imageio/format/webp.c:407 +#: ../src/imageio/format/webp.c:436 msgid "image hint" msgstr "Тип изображения" -#: ../src/imageio/format/webp.c:408 +#: ../src/imageio/format/webp.c:437 msgid "" "image characteristics hint for the underlying encoder.\n" "picture: digital picture, like portrait, inner shot\n" @@ -11777,15 +12279,15 @@ "Фото: снимок с природным освещением\n" "Графика: изображение с резкими тонами (графика, карты и т.д.)" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "picture" msgstr "Картинка" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "photo" msgstr "Фото" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "graphic" msgstr "Графика" @@ -11793,12 +12295,12 @@ msgid "XCF" msgstr "XCF" -#: ../src/imageio/storage/disk.c:71 ../src/libs/export.c:1040 +#: ../src/imageio/storage/disk.c:74 ../src/libs/export.c:1119 msgid "file on disk" msgstr "Файлы на диске" -#: ../src/imageio/storage/disk.c:169 ../src/imageio/storage/gallery.c:155 -#: ../src/imageio/storage/latex.c:154 +#: ../src/imageio/storage/disk.c:251 ../src/imageio/storage/gallery.c:204 +#: ../src/imageio/storage/latex.c:191 msgid "" "enter the path where to put exported images\n" "variables support bash like string manipulation\n" @@ -11808,38 +12310,41 @@ "Переменные поддерживают Bash-подобную манипуляцию строками.\n" "Возможные переменные:" -#: ../src/imageio/storage/disk.c:182 ../src/imageio/storage/piwigo.c:1079 +#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/piwigo.c:1113 msgid "on conflict" msgstr "Конфликт имён" -#: ../src/imageio/storage/disk.c:185 +#: ../src/imageio/storage/disk.c:268 msgid "create unique filename" msgstr "Уникальное имя" #. DT_COPY_HISTORY_APPEND -#: ../src/imageio/storage/disk.c:186 ../src/imageio/storage/piwigo.c:1083 -#: ../src/libs/copy_history.c:404 ../src/libs/image.c:601 -#: ../src/libs/styles.c:440 ../src/libs/styles.c:623 ../src/libs/styles.c:850 +#: ../src/imageio/storage/disk.c:269 ../src/imageio/storage/piwigo.c:1117 +#: ../src/libs/copy_history.c:404 ../src/libs/image.c:670 +#: ../src/libs/styles.c:854 msgid "overwrite" msgstr "Перезаписать" -#: ../src/imageio/storage/disk.c:187 ../src/imageio/storage/piwigo.c:1081 -#: ../src/libs/styles.c:439 ../src/libs/styles.c:622 +#: ../src/imageio/storage/disk.c:270 +msgid "overwrite if changed" +msgstr "Перезаписать, если изменено" + +#: ../src/imageio/storage/disk.c:271 ../src/imageio/storage/piwigo.c:1115 msgid "skip" msgstr "Пропустить" -#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/gallery.c:253 -#: ../src/imageio/storage/latex.c:252 +#: ../src/imageio/storage/disk.c:371 ../src/imageio/storage/gallery.c:326 +#: ../src/imageio/storage/latex.c:289 #, c-format msgid "could not create directory `%s'!" msgstr "Ошибка создания каталога «%s»!" -#: ../src/imageio/storage/disk.c:272 +#: ../src/imageio/storage/disk.c:382 #, c-format msgid "could not write to directory `%s'!" msgstr "Ошибка записи в каталог «%s»!" -#: ../src/imageio/storage/disk.c:302 +#: ../src/imageio/storage/disk.c:419 #, c-format msgid "%d/%d skipping `%s'" msgid_plural "%d/%d skipping `%s'" @@ -11847,8 +12352,16 @@ msgstr[1] "%d/%d пропущено в «%s»" msgstr[2] "%d/%d пропущено в «%s»" -#: ../src/imageio/storage/disk.c:321 ../src/imageio/storage/email.c:144 -#: ../src/imageio/storage/gallery.c:378 ../src/imageio/storage/latex.c:340 +#: ../src/imageio/storage/disk.c:441 +#, c-format +msgid "%d/%d skipping (not modified since export) `%s'" +msgid_plural "%d/%d skipping (not modified since export) `%s'" +msgstr[0] "%d/%d пропуск (нет изменений с момента экспорта) `%s'" +msgstr[1] "%d/%d пропуск (нет изменений с момента экспорта) `%s'" +msgstr[2] "%d/%d пропуск (нет изменений с момента экспорта) `%s'" + +#: ../src/imageio/storage/disk.c:465 ../src/imageio/storage/email.c:194 +#: ../src/imageio/storage/gallery.c:458 ../src/imageio/storage/latex.c:377 #, c-format msgid "%d/%d exported to `%s'" msgid_plural "%d/%d exported to `%s'" @@ -11856,7 +12369,7 @@ msgstr[1] "%d/%d экспортированы в «%s»" msgstr[2] "%d/%d экспортировано в «%s»" -#: ../src/imageio/storage/disk.c:380 +#: ../src/imageio/storage/disk.c:530 msgid "" "you are going to export in overwrite mode, this will overwrite any existing " "images\n" @@ -11867,23 +12380,33 @@ "\n" "Вы действительно хотите продолжить?" -#: ../src/imageio/storage/email.c:52 +#: ../src/imageio/storage/email.c:57 msgid "send as email" msgstr "Отправить по почте" -#: ../src/imageio/storage/email.c:198 +#. Unlikely in normal Windows installations, but let's notify the user if it happens +#: ../src/imageio/storage/email.c:265 +msgid "could not open mapi32.dll" +msgstr "Не удалось открыть mapi32.dll" + +#. Even more unlikely +#: ../src/imageio/storage/email.c:275 +msgid "could not get SendMail function" +msgstr "Функция SendMail недоступна" + +#: ../src/imageio/storage/email.c:319 ../src/imageio/storage/email.c:409 msgid "images exported from darktable" msgstr "Изображения, экспортированные из darktable" -#: ../src/imageio/storage/email.c:251 +#: ../src/imageio/storage/email.c:388 ../src/imageio/storage/email.c:467 msgid "could not launch email client!" msgstr "Ошибка запуска почтового клиента!" -#: ../src/imageio/storage/gallery.c:73 +#: ../src/imageio/storage/gallery.c:76 msgid "website gallery" msgstr "Веб-галерея" -#: ../src/imageio/storage/gallery.c:171 +#: ../src/imageio/storage/gallery.c:224 msgid "enter the title of the website" msgstr "Название веб-галереи" @@ -11891,148 +12414,148 @@ msgid "LaTeX book template" msgstr "Шаблон книги LaTeX" -#: ../src/imageio/storage/latex.c:172 +#: ../src/imageio/storage/latex.c:209 msgid "enter the title of the book" msgstr "Название книги" -#: ../src/imageio/storage/piwigo.c:522 +#: ../src/imageio/storage/piwigo.c:525 msgid "authenticated" msgstr "Авторизация выполнена" -#: ../src/imageio/storage/piwigo.c:532 ../src/imageio/storage/piwigo.c:547 -#: ../src/imageio/storage/piwigo.c:559 +#: ../src/imageio/storage/piwigo.c:536 ../src/imageio/storage/piwigo.c:552 +#: ../src/imageio/storage/piwigo.c:565 msgid "not authenticated" msgstr "Авторизация отсутствует" -#: ../src/imageio/storage/piwigo.c:538 +#: ../src/imageio/storage/piwigo.c:542 msgid "not authenticated, cannot reach server" msgstr "Авторизация отсутствует" -#: ../src/imageio/storage/piwigo.c:587 ../src/imageio/storage/piwigo.c:675 +#: ../src/imageio/storage/piwigo.c:595 ../src/imageio/storage/piwigo.c:684 msgid "create new album" msgstr "Создать новый альбом" -#: ../src/imageio/storage/piwigo.c:676 +#: ../src/imageio/storage/piwigo.c:685 msgid "---" msgstr "---" -#: ../src/imageio/storage/piwigo.c:721 +#: ../src/imageio/storage/piwigo.c:735 msgid "cannot refresh albums" msgstr "Ошибка обновления списка альбомов!" -#: ../src/imageio/storage/piwigo.c:929 +#: ../src/imageio/storage/piwigo.c:950 msgid "Piwigo" msgstr "Piwigo" -#: ../src/imageio/storage/piwigo.c:954 +#: ../src/imageio/storage/piwigo.c:976 msgid "accounts" msgstr "Учётные записи" -#: ../src/imageio/storage/piwigo.c:972 ../src/imageio/storage/piwigo.c:978 +#: ../src/imageio/storage/piwigo.c:995 ../src/imageio/storage/piwigo.c:1004 msgid "server" msgstr "Сервер" -#: ../src/imageio/storage/piwigo.c:974 ../src/imageio/storage/piwigo.c:989 +#: ../src/imageio/storage/piwigo.c:998 msgid "" "the server name\n" "default protocol is https\n" -"specify http:// if non secure server" +"specify insecure protocol http:// explicitly if that protocol is required" msgstr "" -"Имя сервера. По умолчанию используется протокол https.\n" -"Укажите http://, если необходимо отключить шифрование соединения." +"Имя сервера.\n" +"По умолчанию используется протокол https.\n" +"Укажите http://, если необходимо." -#: ../src/imageio/storage/piwigo.c:987 ../src/imageio/storage/piwigo.c:993 +#: ../src/imageio/storage/piwigo.c:1014 ../src/imageio/storage/piwigo.c:1021 msgid "user" msgstr "Пользователь" -#: ../src/imageio/storage/piwigo.c:1000 ../src/imageio/storage/piwigo.c:1005 +#: ../src/imageio/storage/piwigo.c:1029 ../src/imageio/storage/piwigo.c:1034 msgid "password" msgstr "Пароль" #. login button -#: ../src/imageio/storage/piwigo.c:1010 +#: ../src/imageio/storage/piwigo.c:1039 msgid "login" msgstr "Войти" -#: ../src/imageio/storage/piwigo.c:1011 +#: ../src/imageio/storage/piwigo.c:1040 msgid "Piwigo login" msgstr "Авторизация на Piwigo" #. permissions list -#: ../src/imageio/storage/piwigo.c:1025 +#: ../src/imageio/storage/piwigo.c:1056 msgid "visible to" msgstr "Видимость" -#: ../src/imageio/storage/piwigo.c:1027 +#: ../src/imageio/storage/piwigo.c:1058 msgid "everyone" msgstr "Публично" -#: ../src/imageio/storage/piwigo.c:1028 +#: ../src/imageio/storage/piwigo.c:1059 msgid "contacts" msgstr "Контакты" -#: ../src/imageio/storage/piwigo.c:1029 +#: ../src/imageio/storage/piwigo.c:1060 msgid "friends" msgstr "Друзья" -#: ../src/imageio/storage/piwigo.c:1030 +#: ../src/imageio/storage/piwigo.c:1061 msgid "family" msgstr "Семья" -#: ../src/imageio/storage/piwigo.c:1031 +#: ../src/imageio/storage/piwigo.c:1062 msgid "you" msgstr "Только мне" #. Available albums -#: ../src/imageio/storage/piwigo.c:1038 +#: ../src/imageio/storage/piwigo.c:1069 msgid "album" msgstr "Альбом" -#: ../src/imageio/storage/piwigo.c:1045 +#: ../src/imageio/storage/piwigo.c:1076 msgid "refresh album list" msgstr "Обновить список альбомов" #. Album title -#: ../src/imageio/storage/piwigo.c:1063 +#: ../src/imageio/storage/piwigo.c:1096 msgid "new album" msgstr "Новый альбом" -#. parent album list #. Available albums -#: ../src/imageio/storage/piwigo.c:1071 +#: ../src/imageio/storage/piwigo.c:1105 msgid "parent album" msgstr "Родительский альбом" -#: ../src/imageio/storage/piwigo.c:1075 +#: ../src/imageio/storage/piwigo.c:1109 msgid "click login button to start" msgstr "Нажмите кнопку «Войти»" -#: ../src/imageio/storage/piwigo.c:1080 +#: ../src/imageio/storage/piwigo.c:1114 msgid "don't check" msgstr "Не проверять" -#: ../src/imageio/storage/piwigo.c:1082 +#: ../src/imageio/storage/piwigo.c:1116 msgid "update metadata" msgstr "Обновить метаданные" -#: ../src/imageio/storage/piwigo.c:1221 +#: ../src/imageio/storage/piwigo.c:1255 msgid "cannot create a new Piwigo album!" msgstr "Ошибка создания нового альбома Piwigo!" -#: ../src/imageio/storage/piwigo.c:1240 +#: ../src/imageio/storage/piwigo.c:1274 msgid "could not update to Piwigo!" msgstr "Ошибка обновления на Piwigo!" -#: ../src/imageio/storage/piwigo.c:1255 +#: ../src/imageio/storage/piwigo.c:1290 msgid "could not upload to Piwigo!" msgstr "Ошибка загрузки на Piwigo!" -#: ../src/imageio/storage/piwigo.c:1284 +#: ../src/imageio/storage/piwigo.c:1319 #, c-format msgid "%d/%d skipped (already exists)" msgstr "%d/%d пропущено (уже существует)" -#: ../src/imageio/storage/piwigo.c:1290 +#: ../src/imageio/storage/piwigo.c:1325 #, c-format msgid "%d/%d exported to Piwigo webalbum" msgid_plural "%d/%d exported to Piwigo webalbum" @@ -12053,54 +12576,54 @@ msgstr "Вращать или искажать перспективу" #: ../src/iop/ashift.c:131 ../src/iop/channelmixer.c:139 -#: ../src/iop/channelmixerrgb.c:232 ../src/iop/clipping.c:320 -#: ../src/iop/colorbalance.c:161 ../src/iop/colorbalancergb.c:185 +#: ../src/iop/channelmixerrgb.c:233 ../src/iop/clipping.c:363 +#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:185 #: ../src/iop/colorchecker.c:130 ../src/iop/colorcorrection.c:77 -#: ../src/iop/crop.c:144 ../src/iop/lut3d.c:141 +#: ../src/iop/crop.c:134 ../src/iop/lut3d.c:142 ../src/iop/primaries.c:80 msgid "corrective or creative" msgstr "Коррекция, креативный" -#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:148 -#: ../src/iop/bilateral.cc:101 ../src/iop/bilateral.cc:103 -#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:233 -#: ../src/iop/channelmixerrgb.c:235 ../src/iop/clipping.c:321 -#: ../src/iop/clipping.c:323 ../src/iop/colorbalancergb.c:186 -#: ../src/iop/colorin.c:136 ../src/iop/crop.c:145 ../src/iop/crop.c:147 -#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:728 -#: ../src/iop/denoiseprofile.c:730 ../src/iop/diffuse.c:146 +#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:174 +#: ../src/iop/bilateral.cc:103 ../src/iop/bilateral.cc:105 +#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:236 ../src/iop/clipping.c:364 +#: ../src/iop/clipping.c:366 ../src/iop/colorbalancergb.c:186 +#: ../src/iop/colorin.c:136 ../src/iop/crop.c:135 ../src/iop/crop.c:137 +#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:780 +#: ../src/iop/denoiseprofile.c:782 ../src/iop/diffuse.c:146 #: ../src/iop/diffuse.c:148 ../src/iop/exposure.c:132 ../src/iop/exposure.c:134 #: ../src/iop/flip.c:111 ../src/iop/flip.c:112 ../src/iop/hazeremoval.c:113 -#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:242 ../src/iop/lens.cc:244 -#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/retouch.c:210 -#: ../src/iop/retouch.c:212 ../src/iop/sigmoid.c:103 -#: ../src/iop/splittoning.c:104 ../src/iop/splittoning.c:106 -#: ../src/iop/spots.c:70 ../src/iop/spots.c:72 ../src/iop/toneequal.c:325 -#: ../src/iop/velvia.c:106 ../src/iop/velvia.c:108 +#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:263 ../src/iop/lens.cc:265 +#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/primaries.c:81 +#: ../src/iop/primaries.c:83 ../src/iop/retouch.c:210 ../src/iop/retouch.c:212 +#: ../src/iop/sigmoid.c:209 ../src/iop/splittoning.c:106 +#: ../src/iop/splittoning.c:108 ../src/iop/spots.c:70 ../src/iop/spots.c:72 +#: ../src/iop/toneequal.c:333 ../src/iop/velvia.c:99 ../src/iop/velvia.c:101 msgid "linear, RGB, scene-referred" msgstr "Линейн., RGB, плёночная тональная кривая RGB" -#: ../src/iop/ashift.c:133 ../src/iop/borders.c:200 ../src/iop/clipping.c:322 -#: ../src/iop/crop.c:146 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 +#: ../src/iop/ashift.c:133 ../src/iop/borders.c:325 ../src/iop/clipping.c:365 +#: ../src/iop/crop.c:136 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 msgid "geometric, RGB" msgstr "Геометрия, RGB" -#: ../src/iop/ashift.c:2820 +#: ../src/iop/ashift.c:2866 msgid "automatic cropping failed" msgstr "Ошибка автокадрирования!" -#: ../src/iop/ashift.c:3234 ../src/iop/ashift.c:3286 ../src/iop/ashift.c:3334 +#: ../src/iop/ashift.c:3276 ../src/iop/ashift.c:3328 ../src/iop/ashift.c:3375 msgid "data pending - please repeat" msgstr "Ожидается ввод данных, повторите" -#: ../src/iop/ashift.c:3243 +#: ../src/iop/ashift.c:3285 msgid "could not detect structural data in image" msgstr "Не могу определить структуру линий в изображении" -#: ../src/iop/ashift.c:3255 +#: ../src/iop/ashift.c:3297 msgid "could not run outlier removal" msgstr "Ошибка удаления посторонних линий!" -#: ../src/iop/ashift.c:3434 +#: ../src/iop/ashift.c:3474 #, c-format msgid "" "not enough structure for automatic correction\n" @@ -12109,41 +12632,41 @@ "Недостаточно структуры для автоматической коррекции\n" "минимум %d строк в каждом соответствующем направлении" -#: ../src/iop/ashift.c:3440 +#: ../src/iop/ashift.c:3480 msgid "automatic correction failed, please correct manually" msgstr "Ошибка автоматической коррекции! Попытайтесь вручную." -#: ../src/iop/ashift.c:5096 +#: ../src/iop/ashift.c:5077 #, c-format msgid "only %d lines can be saved in parameters" msgstr "в параметрах можно сохранить только %d строк" -#: ../src/iop/ashift.c:5201 +#: ../src/iop/ashift.c:5157 #, c-format -msgid "rotation adjusted by %3.1f° to %3.1f°" -msgstr "Вращение регулируется с %3.1f° до %3.1f°" +msgid "rotation adjusted by %3.2f° to %3.2f°" +msgstr "Вращение регулируется с %3.2f° до %3.2f°" -#: ../src/iop/ashift.c:5852 ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 -#: ../src/iop/ashift.c:5961 +#: ../src/iop/ashift.c:5797 ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 +#: ../src/iop/ashift.c:5906 #, c-format msgid "lens shift (%s)" msgstr "Сдвиг перспективы (%s)" -#: ../src/iop/ashift.c:6125 +#: ../src/iop/ashift.c:6072 msgid "manual perspective" msgstr "Ручная коррекция перспективы" -#: ../src/iop/ashift.c:6170 +#: ../src/iop/ashift.c:6117 msgctxt "section" msgid "perspective" msgstr "Перспектива" -#: ../src/iop/ashift.c:6177 ../src/iop/ashift.c:6286 ../src/iop/ashift.c:6288 -#: ../src/iop/ashift.c:6290 +#: ../src/iop/ashift.c:6124 ../src/iop/ashift.c:6233 ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6237 msgid "structure" msgstr "Структура" -#: ../src/iop/ashift.c:6212 +#: ../src/iop/ashift.c:6159 msgid "" "rotate image\n" "right-click and drag to define a horizontal or vertical line by drawing on " @@ -12153,19 +12676,19 @@ "щелкните правой кнопкой мыши и перетащите, чтобы определить горизонтальную " "или вертикальную линию, нарисовав изображение" -#: ../src/iop/ashift.c:6215 ../src/iop/ashift.c:6217 +#: ../src/iop/ashift.c:6162 ../src/iop/ashift.c:6164 msgid "apply lens shift correction in one direction" msgstr "Коррекция сдвига перспективы в одном из направлений" -#: ../src/iop/ashift.c:6219 +#: ../src/iop/ashift.c:6166 msgid "shear the image along one diagonal" msgstr "Сдвинуть по одной из диагоналей" -#: ../src/iop/ashift.c:6220 ../src/iop/clipping.c:2117 +#: ../src/iop/ashift.c:6167 ../src/iop/clipping.c:2170 msgid "automatically crop to avoid black edges" msgstr "Автоматически кадрировать, чтобы избежать чёрных краёв" -#: ../src/iop/ashift.c:6221 +#: ../src/iop/ashift.c:6168 msgid "" "lens model of the perspective correction: generic or according to the focal " "length" @@ -12173,11 +12696,11 @@ "Модель объектива при коррекции: общая или настраиваемая по фокусному " "расстоянию" -#: ../src/iop/ashift.c:6224 +#: ../src/iop/ashift.c:6171 msgid "focal length of the lens, default value set from EXIF data if available" msgstr "Фокусное расстояние объектива, по умолчанию берётся из Exif" -#: ../src/iop/ashift.c:6227 +#: ../src/iop/ashift.c:6174 msgid "" "crop factor of the camera sensor, default value set from EXIF data if " "available, manual setting is often required" @@ -12185,19 +12708,19 @@ "Кроп-фактор сенсора камеры, по умолчанию берётся из Exif, но возможна и " "настройка вручную" -#: ../src/iop/ashift.c:6231 +#: ../src/iop/ashift.c:6178 msgid "" "the level of lens dependent correction, set to maximum for full lens " "dependency, set to zero for the generic case" msgstr "Уровень зависимости коррекции от параметров объектива" -#: ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6182 msgid "adjust aspect ratio of image by horizontal and vertical scaling" msgstr "" "Скорректировать соотношение сторон масштабированием по горизонтали или " "вертикали" -#: ../src/iop/ashift.c:6237 +#: ../src/iop/ashift.c:6184 msgid "" "automatically correct for vertical perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12207,7 +12730,7 @@ "Ctrl+Щелчок корректирует только вращение\n" "Shift+Щелчок корректирует только сдвиг перспективы" -#: ../src/iop/ashift.c:6241 +#: ../src/iop/ashift.c:6188 msgid "" "automatically correct for horizontal perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12217,7 +12740,7 @@ "Ctrl+Щелчок корректирует только вращение\n" "Shift+Щелчок корректирует только сдвиг перспективы" -#: ../src/iop/ashift.c:6245 +#: ../src/iop/ashift.c:6192 msgid "" "automatically correct for vertical and horizontal perspective distortions, " "fitting rotation, lens shift in both directions, and shear\n" @@ -12231,7 +12754,7 @@ "Shift+Щелчок корректирует только сдвиг перспективы\n" "Ctrl+Shift+Щелчок корректирует только вращение и сдвиг перспективы" -#: ../src/iop/ashift.c:6252 +#: ../src/iop/ashift.c:6199 msgid "" "automatically analyse line structure in image\n" "ctrl+click for an additional edge enhancement\n" @@ -12243,227 +12766,227 @@ "Shift+щелчок для дополнительного улучшения деталей\n" "ctrl+shift+щелчок для комбинации обоих методов" -#: ../src/iop/ashift.c:6257 +#: ../src/iop/ashift.c:6204 msgid "manually define perspective rectangle" msgstr "Вручную определить прямоугольник перспективы" -#: ../src/iop/ashift.c:6258 +#: ../src/iop/ashift.c:6205 msgid "manually draw structure lines" msgstr "Рисовать линии структуры вручную" -#: ../src/iop/ashift.c:6287 +#: ../src/iop/ashift.c:6234 msgid "rectangle" msgstr "Прямоугольник" -#: ../src/iop/ashift.c:6289 +#: ../src/iop/ashift.c:6236 msgid "lines" msgstr "Линии" -#: ../src/iop/ashift.c:6323 ../src/iop/clipping.c:3343 +#: ../src/iop/ashift.c:6270 ../src/iop/clipping.c:3383 #, c-format msgid "[%s] define/rotate horizon" msgstr "[%s] определить/изменить горизонт" -#: ../src/iop/ashift.c:6326 +#: ../src/iop/ashift.c:6273 #, c-format msgid "[%s on segment] select segment" msgstr "[%s над сегментом] выделить сегмент" -#: ../src/iop/ashift.c:6330 +#: ../src/iop/ashift.c:6277 #, c-format msgid "[%s on segment] unselect segment" msgstr "[%s над сегментом] снять выделение с сегмента" -#: ../src/iop/ashift.c:6334 +#: ../src/iop/ashift.c:6281 #, c-format msgid "[%s] select all segments from zone" msgstr "[%s] выделить все сегменты зоны" -#: ../src/iop/ashift.c:6338 +#: ../src/iop/ashift.c:6285 #, c-format msgid "[%s] unselect all segments from zone" msgstr "[%s] снять выделение со всех сегментов зоны" -#: ../src/iop/atrous.c:123 ../src/iop/atrous.c:1638 +#: ../src/iop/atrous.c:122 ../src/iop/atrous.c:1770 msgid "contrast equalizer" msgstr "Эквалайзер контраста" -#: ../src/iop/atrous.c:128 +#: ../src/iop/atrous.c:127 msgid "sharpness|acutance|local contrast" msgstr "sharpness|acutance|local contrast" -#: ../src/iop/atrous.c:133 +#: ../src/iop/atrous.c:132 msgid "add or remove local contrast, sharpness, acutance" msgstr "" "Усиление локального контраста или шумоподавление по частотным диапазонам " "яркости и цветности" -#: ../src/iop/atrous.c:134 ../src/iop/bilateral.cc:100 ../src/iop/diffuse.c:145 +#: ../src/iop/atrous.c:133 ../src/iop/bilateral.cc:102 ../src/iop/diffuse.c:145 #: ../src/iop/exposure.c:131 ../src/iop/filmicrgb.c:352 #: ../src/iop/graduatednd.c:146 ../src/iop/negadoctor.c:146 -#: ../src/iop/rgbcurve.c:143 ../src/iop/rgblevels.c:123 ../src/iop/shadhi.c:197 -#: ../src/iop/sigmoid.c:102 ../src/iop/tonecurve.c:211 -#: ../src/iop/toneequal.c:324 +#: ../src/iop/rgbcurve.c:145 ../src/iop/rgblevels.c:125 ../src/iop/shadhi.c:144 +#: ../src/iop/sigmoid.c:209 ../src/iop/tonecurve.c:184 +#: ../src/iop/toneequal.c:332 msgid "corrective and creative" msgstr "Коррекция, креативный" -#: ../src/iop/atrous.c:135 ../src/iop/atrous.c:137 -#: ../src/iop/colorbalance.c:162 +#: ../src/iop/atrous.c:134 ../src/iop/atrous.c:136 +#: ../src/iop/colorbalance.c:164 msgid "linear, Lab, scene-referred" msgstr "Линейн., Lab, плёночная тональная кривая RGB" -#: ../src/iop/atrous.c:136 ../src/iop/censorize.c:85 +#: ../src/iop/atrous.c:135 ../src/iop/censorize.c:85 #: ../src/iop/hazeremoval.c:114 msgid "frequential, RGB" msgstr "Частотный разбор, RGB" -#: ../src/iop/atrous.c:727 +#: ../src/iop/atrous.c:799 msgctxt "eq_preset" msgid "coarse" msgstr "Крупное" -#: ../src/iop/atrous.c:742 +#: ../src/iop/atrous.c:815 msgid "denoise & sharpen" msgstr "Подавить шум и повысить резкость" -#: ../src/iop/atrous.c:757 +#: ../src/iop/atrous.c:831 msgctxt "atrous" msgid "sharpen" msgstr "Повысить резкость" -#: ../src/iop/atrous.c:772 +#: ../src/iop/atrous.c:847 msgid "denoise chroma" msgstr "Подавить шум в цветностных каналах" -#: ../src/iop/atrous.c:787 +#: ../src/iop/atrous.c:863 msgid "denoise" msgstr "Подавить шум" -#: ../src/iop/atrous.c:803 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:421 +#: ../src/iop/atrous.c:880 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:448 msgid "bloom" msgstr "Свечение" -#: ../src/iop/atrous.c:818 ../src/iop/bilat.c:169 +#: ../src/iop/atrous.c:896 ../src/iop/bilat.c:186 msgid "clarity" msgstr "Чёткость" -#: ../src/iop/atrous.c:838 +#: ../src/iop/atrous.c:917 msgid "deblur: large blur, strength 3" msgstr "Удаление размытия: крупные детали, уровень 3" -#: ../src/iop/atrous.c:855 +#: ../src/iop/atrous.c:935 msgid "deblur: medium blur, strength 3" msgstr "Удаление размытия: средние детали, уровень 3" -#: ../src/iop/atrous.c:871 +#: ../src/iop/atrous.c:952 msgid "deblur: fine blur, strength 3" msgstr "Удаление размытия: мелкие детали, уровень 3" -#: ../src/iop/atrous.c:889 +#: ../src/iop/atrous.c:971 msgid "deblur: large blur, strength 2" msgstr "Удаление размытия: крупные детали, уровень 2" -#: ../src/iop/atrous.c:906 +#: ../src/iop/atrous.c:989 msgid "deblur: medium blur, strength 2" msgstr "Удаление размытия: средние детали, уровень 2" -#: ../src/iop/atrous.c:922 +#: ../src/iop/atrous.c:1006 msgid "deblur: fine blur, strength 2" msgstr "Удаление размытия: мелкие детали, уровень 2" -#: ../src/iop/atrous.c:940 +#: ../src/iop/atrous.c:1025 msgid "deblur: large blur, strength 1" msgstr "Удаление размытия: крупные детали, уровень 1" -#: ../src/iop/atrous.c:957 +#: ../src/iop/atrous.c:1043 msgid "deblur: medium blur, strength 1" msgstr "Удаление размытия: средние детали, уровень 1" -#: ../src/iop/atrous.c:973 +#: ../src/iop/atrous.c:1060 msgid "deblur: fine blur, strength 1" msgstr "Удаление размытия: мелкие детали, уровень 1" -#: ../src/iop/atrous.c:1289 ../src/iop/atrous.c:1525 -#: ../src/iop/denoiseprofile.c:3510 ../src/iop/rawdenoise.c:738 +#: ../src/iop/atrous.c:1390 ../src/iop/atrous.c:1639 +#: ../src/iop/denoiseprofile.c:3514 ../src/iop/rawdenoise.c:754 msgid "coarse" msgstr "крупные детали" -#: ../src/iop/atrous.c:1296 ../src/iop/atrous.c:1526 -#: ../src/iop/denoiseprofile.c:3518 ../src/iop/rawdenoise.c:746 +#: ../src/iop/atrous.c:1397 ../src/iop/atrous.c:1640 +#: ../src/iop/denoiseprofile.c:3522 ../src/iop/rawdenoise.c:762 msgid "fine" msgstr "мелкие детали" -#: ../src/iop/atrous.c:1308 +#: ../src/iop/atrous.c:1409 msgid "contrasty" msgstr "контрастно" -#: ../src/iop/atrous.c:1314 ../src/iop/denoiseprofile.c:3532 -#: ../src/iop/rawdenoise.c:760 +#: ../src/iop/atrous.c:1415 ../src/iop/denoiseprofile.c:3536 +#: ../src/iop/rawdenoise.c:776 msgid "noisy" msgstr "шумно" #. case atrous_s: -#: ../src/iop/atrous.c:1317 +#: ../src/iop/atrous.c:1418 msgid "bold" msgstr "чётко" -#: ../src/iop/atrous.c:1318 +#: ../src/iop/atrous.c:1419 msgid "dull" msgstr "неясно" -#: ../src/iop/atrous.c:1513 ../src/iop/atrous.c:1564 +#: ../src/iop/atrous.c:1627 ../src/iop/atrous.c:1685 msgid "boost" msgstr "Ускорять" -#: ../src/iop/atrous.c:1514 +#: ../src/iop/atrous.c:1628 msgid "reduce" msgstr "Уменьшить" -#: ../src/iop/atrous.c:1515 +#: ../src/iop/atrous.c:1629 msgid "raise" msgstr "Поднимать" -#: ../src/iop/atrous.c:1516 +#: ../src/iop/atrous.c:1630 msgid "lower" msgstr "Понизить" -#: ../src/iop/atrous.c:1523 +#: ../src/iop/atrous.c:1637 msgid "coarsest" msgstr "Очень крупно" -#: ../src/iop/atrous.c:1524 +#: ../src/iop/atrous.c:1638 msgid "coarser" msgstr "Крупнее" -#: ../src/iop/atrous.c:1527 +#: ../src/iop/atrous.c:1641 msgid "finer" msgstr "Мельче" -#: ../src/iop/atrous.c:1528 +#: ../src/iop/atrous.c:1642 msgid "finest" msgstr "Очень мелко" -#: ../src/iop/atrous.c:1586 ../src/libs/export.c:1143 ../src/libs/export.c:1158 +#: ../src/iop/atrous.c:1710 ../src/libs/export.c:1239 ../src/libs/export.c:1255 msgid "x" msgstr "×" -#: ../src/iop/atrous.c:1666 ../src/iop/nlmeans.c:465 +#: ../src/iop/atrous.c:1799 ../src/iop/nlmeans.c:468 msgid "luma" msgstr "Яркость" -#: ../src/iop/atrous.c:1666 +#: ../src/iop/atrous.c:1800 msgid "change lightness at each feature size" msgstr "Скорректировать яркость в каждом частотном диапазоне" -#: ../src/iop/atrous.c:1667 +#: ../src/iop/atrous.c:1802 msgid "change color saturation at each feature size" msgstr "Скорректировать насыщенность в каждом частотном диапазоне" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1804 msgid "edges" msgstr "Границы" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1805 msgid "" "change edge halos at each feature size\n" "only changes results of luma and chroma tabs" @@ -12471,97 +12994,97 @@ "Скорректировать ореолы по краям в каждом частотном диапазоне.\n" "Влияет только на результат на вкладках «Яркость» и «Цветность»." -#: ../src/iop/atrous.c:1679 ../src/iop/colorbalancergb.c:2058 -#: ../src/iop/colorzones.c:2473 ../src/iop/denoiseprofile.c:3743 -#: ../src/iop/filmicrgb.c:4407 ../src/iop/lowlight.c:823 -#: ../src/iop/rawdenoise.c:919 ../src/iop/toneequal.c:3371 +#: ../src/iop/atrous.c:1818 ../src/iop/colorbalancergb.c:2129 +#: ../src/iop/colorzones.c:2732 ../src/iop/denoiseprofile.c:3747 +#: ../src/iop/filmicrgb.c:4471 ../src/iop/lowlight.c:821 +#: ../src/iop/rawdenoise.c:935 ../src/iop/toneequal.c:3424 msgid "graph" msgstr "Графика" -#: ../src/iop/atrous.c:1690 ../src/iop/colorzones.c:2470 +#: ../src/iop/atrous.c:1836 ../src/iop/colorzones.c:2729 msgid "make effect stronger or weaker" msgstr "Интенсивность эффекта" -#: ../src/iop/basecurve.c:213 +#: ../src/iop/basecurve.c:260 msgid "neutral" msgstr "Нейтральная" -#: ../src/iop/basecurve.c:214 +#: ../src/iop/basecurve.c:261 msgid "canon eos like" msgstr "Canon EOS" -#: ../src/iop/basecurve.c:215 +#: ../src/iop/basecurve.c:262 msgid "canon eos like alternate" msgstr "Canon EOS (альтернативная)" -#: ../src/iop/basecurve.c:216 +#: ../src/iop/basecurve.c:263 msgid "nikon like" msgstr "Nikon" -#: ../src/iop/basecurve.c:217 +#: ../src/iop/basecurve.c:264 msgid "nikon like alternate" msgstr "Nikon (альтернативная)" -#: ../src/iop/basecurve.c:218 +#: ../src/iop/basecurve.c:265 msgid "sony alpha like" msgstr "Sony Alpha" -#: ../src/iop/basecurve.c:219 +#: ../src/iop/basecurve.c:266 msgid "pentax like" msgstr "Pentax" -#: ../src/iop/basecurve.c:220 +#: ../src/iop/basecurve.c:267 msgid "ricoh like" msgstr "Ricoh" -#: ../src/iop/basecurve.c:221 +#: ../src/iop/basecurve.c:268 msgid "olympus like" msgstr "Olympus" -#: ../src/iop/basecurve.c:222 +#: ../src/iop/basecurve.c:269 msgid "olympus like alternate" msgstr "Olympus (альтернативная)" -#: ../src/iop/basecurve.c:223 +#: ../src/iop/basecurve.c:270 msgid "panasonic like" msgstr "Panasonic" -#: ../src/iop/basecurve.c:224 +#: ../src/iop/basecurve.c:271 msgid "leica like" msgstr "Leica" -#: ../src/iop/basecurve.c:225 +#: ../src/iop/basecurve.c:272 msgid "kodak easyshare like" msgstr "Kodak EasyShare" -#: ../src/iop/basecurve.c:226 +#: ../src/iop/basecurve.c:273 msgid "konica minolta like" msgstr "Konica Minolta" -#: ../src/iop/basecurve.c:227 +#: ../src/iop/basecurve.c:274 msgid "samsung like" msgstr "Samsung" -#: ../src/iop/basecurve.c:228 +#: ../src/iop/basecurve.c:275 msgid "fujifilm like" msgstr "Fujifilm" -#: ../src/iop/basecurve.c:229 +#: ../src/iop/basecurve.c:276 msgid "nokia like" msgstr "Nokia" #. clang-format off #. smoother cubic spline curve -#: ../src/iop/basecurve.c:284 ../src/iop/colorzones.c:2495 -#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1173 +#: ../src/iop/basecurve.c:331 ../src/iop/colorzones.c:2763 +#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1195 msgid "cubic spline" msgstr "Кубический сплайн" -#: ../src/iop/basecurve.c:343 +#: ../src/iop/basecurve.c:390 msgid "base curve" msgstr "Базовая кривая" -#: ../src/iop/basecurve.c:350 +#: ../src/iop/basecurve.c:397 msgid "" "apply a view transform based on personal or camera manufacturer look,\n" "for corrective purposes, to prepare images for display" @@ -12569,65 +13092,65 @@ "Преобразование исходного изображения путём применения тональной кривой, " "подготовленной для конкретного производителя камер" -#: ../src/iop/basecurve.c:352 ../src/iop/cacorrect.c:78 -#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:135 -#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:727 +#: ../src/iop/basecurve.c:399 ../src/iop/cacorrect.c:84 +#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:120 +#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:779 #: ../src/iop/flip.c:110 ../src/iop/hazeremoval.c:112 -#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:73 -#: ../src/iop/invert.c:119 ../src/iop/lens.cc:241 ../src/iop/nlmeans.c:95 -#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:130 -#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:94 ../src/iop/spots.c:69 -#: ../src/iop/temperature.c:212 +#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:75 +#: ../src/iop/invert.c:136 ../src/iop/lens.cc:262 ../src/iop/nlmeans.c:89 +#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:144 +#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:96 ../src/iop/spots.c:69 +#: ../src/iop/temperature.c:220 msgid "corrective" msgstr "Коррекция" -#: ../src/iop/basecurve.c:353 ../src/iop/channelmixer.c:140 -#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:142 +#: ../src/iop/basecurve.c:400 ../src/iop/channelmixer.c:140 +#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:143 #: ../src/iop/negadoctor.c:147 ../src/iop/profile_gamma.c:103 -#: ../src/iop/rgbcurve.c:144 ../src/iop/rgbcurve.c:146 -#: ../src/iop/rgblevels.c:124 ../src/iop/sigmoid.c:105 ../src/iop/soften.c:102 -#: ../src/iop/soften.c:104 +#: ../src/iop/rgbcurve.c:146 ../src/iop/rgbcurve.c:148 +#: ../src/iop/rgblevels.c:126 ../src/iop/sigmoid.c:210 ../src/iop/soften.c:104 +#: ../src/iop/soften.c:106 msgid "linear, RGB, display-referred" msgstr "Линейн., RGB, базовая кривая" -#: ../src/iop/basecurve.c:354 ../src/iop/basicadj.c:149 -#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:187 +#: ../src/iop/basecurve.c:401 ../src/iop/basicadj.c:175 +#: ../src/iop/colorbalance.c:165 ../src/iop/colorbalancergb.c:187 #: ../src/iop/dither.c:121 ../src/iop/filmicrgb.c:354 #: ../src/iop/graduatednd.c:148 ../src/iop/negadoctor.c:148 -#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:145 -#: ../src/iop/rgblevels.c:125 ../src/iop/sigmoid.c:104 -#: ../src/iop/vignette.c:161 ../src/iop/watermark.c:379 +#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:147 +#: ../src/iop/rgblevels.c:127 ../src/iop/sigmoid.c:210 +#: ../src/iop/vignette.c:122 ../src/iop/watermark.c:424 msgid "non-linear, RGB" msgstr "Нелинейн., RGB" -#: ../src/iop/basecurve.c:355 ../src/iop/dither.c:120 ../src/iop/dither.c:122 +#: ../src/iop/basecurve.c:402 ../src/iop/dither.c:120 ../src/iop/dither.c:122 #: ../src/iop/filmicrgb.c:355 ../src/iop/graduatednd.c:149 #: ../src/iop/negadoctor.c:149 ../src/iop/profile_gamma.c:105 -#: ../src/iop/rgblevels.c:126 ../src/iop/vignette.c:160 -#: ../src/iop/vignette.c:162 ../src/iop/watermark.c:378 -#: ../src/iop/watermark.c:380 +#: ../src/iop/rgblevels.c:128 ../src/iop/vignette.c:121 +#: ../src/iop/vignette.c:123 ../src/iop/watermark.c:423 +#: ../src/iop/watermark.c:425 msgid "non-linear, RGB, display-referred" msgstr "Нелинейн., RGB, базовая кривая" -#: ../src/iop/basecurve.c:2184 +#: ../src/iop/basecurve.c:2205 msgid "abscissa: input, ordinate: output. works on RGB channels" msgstr "Абсцисса: ввод. Ордината: вывод. Работает в пространстве RGB." -#: ../src/iop/basecurve.c:2190 ../src/iop/basicadj.c:612 -#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1072 -#: ../src/iop/tonecurve.c:1184 +#: ../src/iop/basecurve.c:2211 ../src/iop/basicadj.c:642 +#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1133 +#: ../src/iop/tonecurve.c:1206 msgid "method to preserve colors when applying contrast" msgstr "Способ сохранения цветов при изменении контраста" -#: ../src/iop/basecurve.c:2194 +#: ../src/iop/basecurve.c:2215 msgid "two exposures" msgstr "Две экспозиции" -#: ../src/iop/basecurve.c:2195 +#: ../src/iop/basecurve.c:2216 msgid "three exposures" msgstr "Три экспозиции" -#: ../src/iop/basecurve.c:2196 +#: ../src/iop/basecurve.c:2217 msgid "" "fuse this image stopped up/down a couple of times with itself, to compress " "high dynamic range. expose for the highlights before use." @@ -12635,11 +13158,11 @@ "Для сжатия динамического диапазона совместите несколько экспозиций " "изображения. После укажите шаг и смещение экспозиции." -#: ../src/iop/basecurve.c:2201 +#: ../src/iop/basecurve.c:2222 msgid "how many stops to shift the individual exposures apart" msgstr "Шаг экспозиции между совмещаемыми изображениями" -#: ../src/iop/basecurve.c:2210 +#: ../src/iop/basecurve.c:2231 msgid "" "whether to shift exposure up or down (-1: reduce highlight, +1: reduce " "shadows)" @@ -12647,42 +13170,41 @@ "Смещение экспозиции объединённого изображения (-1 уменьшает света, +1 " "уменьшает тени)" -#: ../src/iop/basecurve.c:2215 ../src/iop/tonecurve.c:1187 +#: ../src/iop/basecurve.c:2236 ../src/iop/tonecurve.c:1209 msgid "scale for graph" msgstr "Коэфф. масштабирования" -#: ../src/iop/basicadj.c:136 +#: ../src/iop/basicadj.c:162 msgid "this module is deprecated. please use the quick access panel instead." msgstr "" "Этот модуль объявлен устаревшим.\n" "Используйте панель быстрого доступа." -#: ../src/iop/basicadj.c:141 +#: ../src/iop/basicadj.c:167 msgid "basic adjustments" msgstr "Основные настройки" -#: ../src/iop/basicadj.c:146 +#: ../src/iop/basicadj.c:172 msgid "apply usual image adjustments" msgstr "Основные настройки изображения" -#: ../src/iop/basicadj.c:147 ../src/iop/bilat.c:102 ../src/iop/bloom.c:81 -#: ../src/iop/blurs.c:93 ../src/iop/borders.c:198 ../src/iop/censorize.c:83 -#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:97 -#: ../src/iop/colorize.c:105 ../src/iop/colormapping.c:153 -#: ../src/iop/colorzones.c:145 ../src/iop/grain.c:434 ../src/iop/highpass.c:78 -#: ../src/iop/levels.c:138 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 -#: ../src/iop/lowpass.c:134 ../src/iop/monochrome.c:98 ../src/iop/soften.c:101 -#: ../src/iop/splittoning.c:103 ../src/iop/velvia.c:105 -#: ../src/iop/vibrance.c:95 ../src/iop/vignette.c:159 -#: ../src/iop/watermark.c:377 +#: ../src/iop/basicadj.c:173 ../src/iop/bilat.c:83 ../src/iop/bloom.c:81 +#: ../src/iop/blurs.c:93 ../src/iop/borders.c:323 ../src/iop/censorize.c:83 +#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:89 +#: ../src/iop/colorize.c:98 ../src/iop/colormapping.c:153 +#: ../src/iop/colorzones.c:146 ../src/iop/grain.c:450 ../src/iop/highpass.c:78 +#: ../src/iop/levels.c:140 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 +#: ../src/iop/lowpass.c:106 ../src/iop/monochrome.c:100 ../src/iop/soften.c:103 +#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:98 ../src/iop/vibrance.c:97 +#: ../src/iop/vignette.c:120 ../src/iop/watermark.c:422 msgid "creative" msgstr "Креативный" -#: ../src/iop/basicadj.c:150 ../src/iop/colorbalancergb.c:188 +#: ../src/iop/basicadj.c:176 ../src/iop/colorbalancergb.c:188 msgid "non-linear, RGB, scene-referred" msgstr "Нелинейн., RGB, плёночная тональная кривая RGB" -#: ../src/iop/basicadj.c:593 +#: ../src/iop/basicadj.c:623 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -12692,39 +13214,39 @@ "Коррекция уровня чёрного для устранения клиппинга\n" "негативных значений RGB" -#: ../src/iop/basicadj.c:601 ../src/iop/exposure.c:1118 +#: ../src/iop/basicadj.c:631 ../src/iop/exposure.c:1136 msgid "adjust the exposure correction" msgstr "Коррекция экспозиции" -#: ../src/iop/basicadj.c:605 +#: ../src/iop/basicadj.c:635 msgid "highlight compression adjustment" msgstr "Коррекция сжатия в светах" -#: ../src/iop/basicadj.c:609 ../src/iop/colisa.c:308 +#: ../src/iop/basicadj.c:639 ../src/iop/colisa.c:302 msgid "contrast adjustment" msgstr "Коррекция контраста" -#: ../src/iop/basicadj.c:617 +#: ../src/iop/basicadj.c:647 msgid "middle gray adjustment" msgstr "Коррекция серой точки" -#: ../src/iop/basicadj.c:622 ../src/iop/colisa.c:309 +#: ../src/iop/basicadj.c:652 ../src/iop/colisa.c:303 msgid "brightness adjustment" msgstr "Коррекция яркости" -#: ../src/iop/basicadj.c:625 +#: ../src/iop/basicadj.c:655 msgid "saturation adjustment" msgstr "Коррекция насыщенности цвета" -#: ../src/iop/basicadj.c:628 +#: ../src/iop/basicadj.c:658 msgid "vibrance adjustment" msgstr "Коррекция сочности" -#: ../src/iop/basicadj.c:632 +#: ../src/iop/basicadj.c:662 msgid "apply auto exposure based on the entire image" msgstr "Автоматически рассчитать экспозицию по всему изображению" -#: ../src/iop/basicadj.c:639 +#: ../src/iop/basicadj.c:669 msgid "" "apply auto exposure based on a region defined by the user\n" "click and drag to draw the area\n" @@ -12735,51 +13257,51 @@ "Щелчок+Перетащить для выбора области изображения.\n" "Щелчок правой кнопкой мыши для отмены." -#: ../src/iop/basicadj.c:647 +#: ../src/iop/basicadj.c:677 msgid "clip" msgstr "Обрезка" -#: ../src/iop/basicadj.c:649 +#: ../src/iop/basicadj.c:679 msgid "adjusts clipping value for auto exposure calculation" msgstr "Коррекция порога обрезки при автоматическом расчёте экспозиции" #. local contrast -#: ../src/iop/bilat.c:96 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:551 +#: ../src/iop/bilat.c:77 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:578 msgid "local contrast" msgstr "Локальный контраст" -#: ../src/iop/bilat.c:101 +#: ../src/iop/bilat.c:82 msgid "manipulate local and global contrast separately" msgstr "Раздельная настройка локального и глобального контраста изображения" -#: ../src/iop/bilat.c:103 ../src/iop/bilat.c:105 ../src/iop/bloom.c:82 +#: ../src/iop/bilat.c:84 ../src/iop/bilat.c:86 ../src/iop/bloom.c:82 #: ../src/iop/bloom.c:84 ../src/iop/colisa.c:91 ../src/iop/colisa.c:93 -#: ../src/iop/colorcontrast.c:98 ../src/iop/colorcontrast.c:100 +#: ../src/iop/colorcontrast.c:90 ../src/iop/colorcontrast.c:92 #: ../src/iop/colorcorrection.c:78 ../src/iop/colorcorrection.c:80 -#: ../src/iop/colorize.c:108 ../src/iop/colormapping.c:156 -#: ../src/iop/colorreconstruction.c:138 ../src/iop/colorzones.c:148 -#: ../src/iop/defringe.c:85 ../src/iop/grain.c:435 ../src/iop/grain.c:437 -#: ../src/iop/levels.c:141 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 -#: ../src/iop/monochrome.c:101 ../src/iop/nlmeans.c:96 ../src/iop/nlmeans.c:98 -#: ../src/iop/shadhi.c:200 ../src/iop/tonecurve.c:214 ../src/iop/vibrance.c:98 +#: ../src/iop/colorize.c:101 ../src/iop/colormapping.c:156 +#: ../src/iop/colorreconstruction.c:123 ../src/iop/colorzones.c:149 +#: ../src/iop/defringe.c:85 ../src/iop/grain.c:451 ../src/iop/grain.c:453 +#: ../src/iop/levels.c:143 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 +#: ../src/iop/monochrome.c:103 ../src/iop/nlmeans.c:90 ../src/iop/nlmeans.c:92 +#: ../src/iop/shadhi.c:147 ../src/iop/tonecurve.c:187 ../src/iop/vibrance.c:100 msgid "non-linear, Lab, display-referred" msgstr "Нелинейн., Lab, базовая кривая" -#: ../src/iop/bilat.c:104 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 -#: ../src/iop/colorcontrast.c:99 ../src/iop/colorcorrection.c:79 -#: ../src/iop/colorize.c:107 ../src/iop/colormapping.c:155 -#: ../src/iop/colorreconstruction.c:137 ../src/iop/colorzones.c:147 -#: ../src/iop/defringe.c:84 ../src/iop/grain.c:436 ../src/iop/levels.c:140 -#: ../src/iop/monochrome.c:100 ../src/iop/nlmeans.c:97 ../src/iop/shadhi.c:199 -#: ../src/iop/tonecurve.c:213 ../src/iop/vibrance.c:97 +#: ../src/iop/bilat.c:85 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 +#: ../src/iop/colorcontrast.c:91 ../src/iop/colorcorrection.c:79 +#: ../src/iop/colorize.c:100 ../src/iop/colormapping.c:155 +#: ../src/iop/colorreconstruction.c:122 ../src/iop/colorzones.c:148 +#: ../src/iop/defringe.c:84 ../src/iop/grain.c:452 ../src/iop/levels.c:142 +#: ../src/iop/monochrome.c:102 ../src/iop/nlmeans.c:91 ../src/iop/shadhi.c:146 +#: ../src/iop/tonecurve.c:186 ../src/iop/vibrance.c:99 msgid "non-linear, Lab" msgstr "Нелинейн., Lab" -#: ../src/iop/bilat.c:178 +#: ../src/iop/bilat.c:195 msgid "HDR local tone-mapping" msgstr "Локальное отображение тонов HDR" -#: ../src/iop/bilat.c:431 +#: ../src/iop/bilat.c:441 msgid "" "the filter used for local contrast enhancement. bilateral is faster but can " "lead to artifacts around edges for extreme settings." @@ -12787,31 +13309,31 @@ "Фильтр, используемый для усиления локального контраста. Билатеральный фильтр " "быстрее, но может приводить к артефактам при слишком высоких значениях." -#: ../src/iop/bilat.c:435 ../src/iop/globaltonemap.c:635 +#: ../src/iop/bilat.c:445 ../src/iop/globaltonemap.c:668 msgid "detail" msgstr "Детализация" -#: ../src/iop/bilat.c:438 +#: ../src/iop/bilat.c:448 msgid "changes the local contrast" msgstr "Коррекция локального контраста" -#: ../src/iop/bilat.c:453 +#: ../src/iop/bilat.c:463 msgid "feature size of local details (spatial sigma of bilateral filter)" msgstr "Размер локальной детализации" -#: ../src/iop/bilat.c:461 +#: ../src/iop/bilat.c:471 msgid "L difference to detect edges (range sigma of bilateral filter)" msgstr "Отличие в светлости, используемое для поиска границ" -#: ../src/iop/bilat.c:467 +#: ../src/iop/bilat.c:477 msgid "changes the local contrast of highlights" msgstr "Коррекция локального контраста в светах" -#: ../src/iop/bilat.c:473 +#: ../src/iop/bilat.c:483 msgid "changes the local contrast of shadows" msgstr "Коррекция локального контраста в тенях" -#: ../src/iop/bilat.c:479 +#: ../src/iop/bilat.c:489 msgid "" "defines what counts as mid-tones. lower for better dynamic range compression " "(reduce shadow and highlight contrast), increase for more powerful local " @@ -12821,7 +13343,7 @@ "динамического диапазона (уменьшить контраст в тенях и светлых участках), " "увеличить для более мощного локального контраста" -#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:396 +#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:423 msgid "surface blur" msgstr "Поверхностное размытие" @@ -12829,24 +13351,24 @@ msgid "denoise (bilateral filter)" msgstr "Шумоподавление (БЛФ)" -#: ../src/iop/bilateral.cc:99 +#: ../src/iop/bilateral.cc:101 msgid "apply edge-aware surface blur to denoise or smoothen textures" msgstr "" "Добавление поверхностного размытия для шумоподавления или сглаживания " "текстур на изображении" -#: ../src/iop/bilateral.cc:102 ../src/iop/blurs.c:93 -#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:729 -#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/soften.c:103 -#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:107 +#: ../src/iop/bilateral.cc:104 ../src/iop/blurs.c:93 +#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:781 +#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/primaries.c:82 +#: ../src/iop/soften.c:105 ../src/iop/splittoning.c:107 ../src/iop/velvia.c:100 msgid "linear, RGB" msgstr "Линейн., RGB" -#: ../src/iop/bilateral.cc:136 +#: ../src/iop/bilateral.cc:138 msgid "image too large" msgstr "Слишком большое изображение" -#: ../src/iop/bilateral.cc:137 +#: ../src/iop/bilateral.cc:139 msgid "" "this module is unable to process\n" "images with more than 2 gigapixels.\n" @@ -12856,19 +13378,19 @@ "изображения, составляющие более двух мегапикселей.\n" "Обработка была пропущена." -#: ../src/iop/bilateral.cc:351 +#: ../src/iop/bilateral.cc:353 msgid "spatial extent of the gaussian" msgstr "Пространственный предел гауссовой функции" -#: ../src/iop/bilateral.cc:355 +#: ../src/iop/bilateral.cc:357 msgid "how much to blur red" msgstr "Величина размытия в красном канале" -#: ../src/iop/bilateral.cc:360 +#: ../src/iop/bilateral.cc:362 msgid "how much to blur green" msgstr "Величина размытия в зелёном канале" -#: ../src/iop/bilateral.cc:365 +#: ../src/iop/bilateral.cc:367 msgid "how much to blur blue" msgstr "Величина размытия в синем канале" @@ -12876,20 +13398,20 @@ msgid "apply Orton effect for a dreamy aetherical look" msgstr "Симуляция свечения (эффект Ортона)" -#: ../src/iop/bloom.c:368 ../src/iop/soften.c:369 ../src/libs/camera.c:567 -#: ../src/libs/masks.c:105 +#: ../src/iop/bloom.c:364 ../src/iop/soften.c:364 ../src/libs/camera.c:567 +#: ../src/libs/masks.c:106 msgid "size" msgstr "Размер" -#: ../src/iop/bloom.c:370 +#: ../src/iop/bloom.c:366 msgid "the size of bloom" msgstr "Размер свечения" -#: ../src/iop/bloom.c:374 +#: ../src/iop/bloom.c:370 msgid "the threshold of light" msgstr "Порог света" -#: ../src/iop/bloom.c:378 +#: ../src/iop/bloom.c:374 msgid "the strength of bloom" msgstr "Интенсивность свечения" @@ -12905,267 +13427,277 @@ msgid "simulate physically-accurate lens and motion blurs" msgstr "имитировать физически точный объектив и размытие движения" -#: ../src/iop/borders.c:187 +#: ../src/iop/borders.c:312 msgid "framing" msgstr "Рамка" -#: ../src/iop/borders.c:192 +#: ../src/iop/borders.c:317 msgid "borders|enlarge canvas|expand canvas" msgstr "рамки|увеличить холст|развернуть холст" -#: ../src/iop/borders.c:197 +#: ../src/iop/borders.c:322 msgid "add solid borders or margins around the picture" msgstr "Добавление рамки или полей вокруг изображения" -#: ../src/iop/borders.c:199 ../src/iop/borders.c:201 ../src/iop/lut3d.c:144 +#: ../src/iop/borders.c:324 ../src/iop/borders.c:326 ../src/iop/lut3d.c:145 msgid "linear or non-linear, RGB, display-referred" msgstr "Линейн. или нелинейн., RGB, базовая кривая" -#: ../src/iop/borders.c:727 +#: ../src/iop/borders.c:737 msgid "15:10 postcard white" msgstr "Белый фон, 15×10" -#: ../src/iop/borders.c:732 +#: ../src/iop/borders.c:742 msgid "15:10 postcard black" msgstr "Чёрный фон, 15×10" -#: ../src/iop/borders.c:942 -msgid "size of the border in percent of the full image" -msgstr "Размер рамки в процентах от всего изображения" +#: ../src/iop/borders.c:948 +msgid "which dimension to use for the size calculation" +msgstr "Какие параметры использовать для расчета размера" + +#: ../src/iop/borders.c:954 +msgid "size of the border in percent of the chosen basis" +msgstr "Размер рамки в процентах от выделенной основы" -#: ../src/iop/borders.c:944 ../src/iop/clipping.c:2218 ../src/iop/crop.c:1224 +#: ../src/iop/borders.c:956 ../src/iop/clipping.c:2271 ../src/iop/crop.c:1208 msgid "aspect" msgstr "Формат" -#: ../src/iop/borders.c:945 +#: ../src/iop/borders.c:957 msgid "" -"select the aspect ratio (right click on slider below to type your own w:h)" +"select the aspect ratio\n" +"(right click on slider below to type your own w:h)" msgstr "" -"Выберете готовое соотношение сторон (нажмите правой кнопкой на слайдер ниже, " -"чтобы указать своё)" +"Выберете готовое соотношение сторон\n" +"(нажмите правой кнопкой на слайдер ниже, чтобы указать своё)" -#: ../src/iop/borders.c:948 +#: ../src/iop/borders.c:961 msgid "3:1" msgstr "3×1" -#: ../src/iop/borders.c:949 +#: ../src/iop/borders.c:962 msgid "95:33" msgstr "95×33" -#: ../src/iop/borders.c:950 +#: ../src/iop/borders.c:963 msgid "CinemaScope 2.39:1" msgstr "Синемаскоп 2.39:1" -#: ../src/iop/borders.c:951 +#: ../src/iop/borders.c:964 msgid "2:1" msgstr "2×1" -#: ../src/iop/borders.c:952 +#: ../src/iop/borders.c:965 msgid "16:9" msgstr "16×9" -#: ../src/iop/borders.c:953 +#: ../src/iop/borders.c:966 msgid "5:3" msgstr "5:3" -#: ../src/iop/borders.c:954 +#: ../src/iop/borders.c:967 msgid "US Legal 8.5x14" msgstr "US Legal 8.5x14" -#: ../src/iop/borders.c:955 ../src/iop/clipping.c:2131 ../src/iop/crop.c:1128 +#: ../src/iop/borders.c:968 ../src/iop/clipping.c:2184 ../src/iop/crop.c:1112 msgid "golden cut" msgstr "Золотое сечение" -#: ../src/iop/borders.c:956 +#: ../src/iop/borders.c:969 msgid "16:10" msgstr "16:10" -#: ../src/iop/borders.c:957 +#: ../src/iop/borders.c:970 msgid "3:2 (4x6, 10x15cm)" msgstr "3:2 (4x6, 10x15см)" -#: ../src/iop/borders.c:959 +#: ../src/iop/borders.c:972 msgid "DIN" msgstr "DIN" -#: ../src/iop/borders.c:960 +#: ../src/iop/borders.c:973 msgid "7:5" msgstr "7:5" -#: ../src/iop/borders.c:961 +#: ../src/iop/borders.c:974 msgid "4:3" msgstr "4×3" -#: ../src/iop/borders.c:962 +#: ../src/iop/borders.c:975 msgid "US Letter 8.5x11" msgstr "US Letter 8.5x11" -#: ../src/iop/borders.c:963 +#: ../src/iop/borders.c:976 msgid "14:11" msgstr "14:11" -#: ../src/iop/borders.c:964 +#: ../src/iop/borders.c:977 msgid "5:4 (8x10)" msgstr "5:4 (8x10)" -#: ../src/iop/borders.c:965 ../src/iop/clipping.c:2121 ../src/iop/crop.c:1118 -#: ../src/libs/filtering.c:301 ../src/libs/filters/ratio.c:126 -#: ../src/libs/histogram.c:141 +#: ../src/iop/borders.c:978 ../src/iop/clipping.c:2174 ../src/iop/crop.c:1102 +#: ../src/libs/filtering.c:307 ../src/libs/filters/ratio.c:126 +#: ../src/libs/histogram.c:118 msgid "square" msgstr "Квадрат" -#: ../src/iop/borders.c:966 +#: ../src/iop/borders.c:979 msgid "constant border" msgstr "Постоянная толщина" -#: ../src/iop/borders.c:967 ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:980 ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "custom..." msgstr "Пользовательская..." -#: ../src/iop/borders.c:972 -msgid "set the custom aspect ratio (right click to enter number or w:h)" +#: ../src/iop/borders.c:984 +msgid "" +"set the custom aspect ratio\n" +"(right click to enter number or w:h)" msgstr "" -"Укажите соотношение сторон (нажмите правую кнопку, чтобы ввести значения)" +"Укажите соотношение сторон\n" +"(нажмите правую кнопку, чтобы ввести значения)" -#: ../src/iop/borders.c:975 +#: ../src/iop/borders.c:989 msgid "aspect ratio orientation of the image with border" msgstr "Ориентация соотношения сторон изображения с рамкой" -#: ../src/iop/borders.c:977 +#: ../src/iop/borders.c:991 msgid "horizontal position" msgstr "Положение по горизонтали" -#: ../src/iop/borders.c:978 +#: ../src/iop/borders.c:992 msgid "" -"select the horizontal position ratio relative to top or right click and type " -"your own (y:h)" +"select the horizontal position ratio relative to top\n" +"(right click on slider below to type your own x:w)" msgstr "" -"Выберите горизонтальное положение относительно верха или введите своё (Y:В)" +"Выберите горизонтальное положение относительно верха\n" +"или нажмите правую кнопку, чтобы ввести своё (Y:В)" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "center" msgstr "По центру" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "1/3" msgstr "1/3" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "3/8" msgstr "3/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "5/8" msgstr "5/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "2/3" msgstr "2/3" -#: ../src/iop/borders.c:986 +#: ../src/iop/borders.c:1000 msgid "custom horizontal position" msgstr "Установить положение по горизонтали" -#: ../src/iop/borders.c:988 +#: ../src/iop/borders.c:1002 msgid "vertical position" msgstr "Положение по вертикали" -#: ../src/iop/borders.c:989 +#: ../src/iop/borders.c:1003 msgid "" -"select the vertical position ratio relative to left or right click and type " -"your own (x:w)" +"select the vertical position ratio relative to left\n" +"(right click on slider below to type your own y:h)" msgstr "" -"Выберите вертикальное положение относительно верха или введите своё (X:Ш)" +"Выберите вертикальное положение относительно верха \n" +"или нажмите правую кнопку, чтобы ввести своё (X:Ш)" -#: ../src/iop/borders.c:997 +#: ../src/iop/borders.c:1011 msgid "custom vertical position" msgstr "Установить положение по вертикали" -#: ../src/iop/borders.c:1002 +#: ../src/iop/borders.c:1017 msgid "size of the frame line in percent of min border width" msgstr "Размер линии рамки в процентах от минимальной ширины рамки" -#: ../src/iop/borders.c:1007 +#: ../src/iop/borders.c:1023 msgid "offset of the frame line beginning on picture side" msgstr "Смещение линии рамки от стороны снимка" -#: ../src/iop/borders.c:1014 ../src/iop/borders.c:1023 +#: ../src/iop/borders.c:1033 ../src/iop/borders.c:1044 msgid "border color" msgstr "Цвет рамки" -#: ../src/iop/borders.c:1018 +#: ../src/iop/borders.c:1037 msgid "select border color" msgstr "Выбор цвета рамки" -#: ../src/iop/borders.c:1022 +#: ../src/iop/borders.c:1043 msgid "pick border color from image" msgstr "Взять цвет рамки со снимка" -#: ../src/iop/borders.c:1023 ../src/iop/borders.c:1036 -#: ../src/iop/colorzones.c:2415 ../src/iop/colorzones.c:2425 -#: ../src/iop/negadoctor.c:848 ../src/iop/negadoctor.c:915 -#: ../src/iop/negadoctor.c:953 ../src/iop/rgbcurve.c:1369 -#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1026 -#: ../src/iop/rgblevels.c:1032 ../src/iop/rgblevels.c:1038 +#: ../src/iop/borders.c:1044 ../src/iop/borders.c:1061 +#: ../src/iop/colorzones.c:2662 ../src/iop/colorzones.c:2677 +#: ../src/iop/negadoctor.c:867 ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:972 ../src/iop/rgbcurve.c:1369 +#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1075 +#: ../src/iop/rgblevels.c:1083 ../src/iop/rgblevels.c:1091 msgid "pickers" msgstr "Палитра" -#: ../src/iop/borders.c:1027 ../src/iop/borders.c:1036 +#: ../src/iop/borders.c:1049 ../src/iop/borders.c:1061 msgid "frame line color" msgstr "Цвет линии рамки" -#: ../src/iop/borders.c:1031 +#: ../src/iop/borders.c:1054 msgid "select frame line color" msgstr "Выбор цвет линии рамки" -#: ../src/iop/borders.c:1035 +#: ../src/iop/borders.c:1060 msgid "pick frame line color from image" msgstr "Взять цвет линии рамки со снимка" #. make sure you put all your translatable strings into _() ! -#: ../src/iop/cacorrect.c:72 +#: ../src/iop/cacorrect.c:78 msgid "raw chromatic aberrations" msgstr "Хроматические аберрации Raw" -#: ../src/iop/cacorrect.c:77 +#: ../src/iop/cacorrect.c:83 msgid "correct chromatic aberrations for Bayer sensors" msgstr "" "Коррекция хроматических аберраций для сенсоров, использующих фильтр Байера" -#: ../src/iop/cacorrect.c:79 ../src/iop/cacorrect.c:81 +#: ../src/iop/cacorrect.c:85 ../src/iop/cacorrect.c:87 #: ../src/iop/cacorrectrgb.c:171 ../src/iop/cacorrectrgb.c:173 #: ../src/iop/demosaic.c:294 ../src/iop/highlights.c:180 -#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:74 -#: ../src/iop/hotpixels.c:76 ../src/iop/rawdenoise.c:131 -#: ../src/iop/rawdenoise.c:133 ../src/iop/rawprepare.c:159 -#: ../src/iop/rawprepare.c:161 ../src/iop/temperature.c:213 -#: ../src/iop/temperature.c:215 +#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:76 +#: ../src/iop/hotpixels.c:78 ../src/iop/rawdenoise.c:145 +#: ../src/iop/rawdenoise.c:147 ../src/iop/rawprepare.c:175 +#: ../src/iop/rawprepare.c:177 ../src/iop/temperature.c:221 +#: ../src/iop/temperature.c:223 msgid "linear, raw, scene-referred" msgstr "Линейн., Raw, плёночная тональная кривая RGB" -#: ../src/iop/cacorrect.c:80 ../src/iop/cacorrectrgb.c:172 -#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:121 -#: ../src/iop/rawdenoise.c:132 ../src/iop/rawprepare.c:160 -#: ../src/iop/temperature.c:214 +#: ../src/iop/cacorrect.c:86 ../src/iop/cacorrectrgb.c:172 +#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:138 +#: ../src/iop/rawdenoise.c:146 ../src/iop/rawprepare.c:176 +#: ../src/iop/temperature.c:222 msgid "linear, raw" msgstr "Линейн., Raw" -#: ../src/iop/cacorrect.c:1405 +#: ../src/iop/cacorrect.c:1424 msgid "iteration runs, default is twice" msgstr "Количество проходов коррекции хроматических аберраций" -#: ../src/iop/cacorrect.c:1408 +#: ../src/iop/cacorrect.c:1427 msgid "activate colorshift correction for blue & red channels" msgstr "Предотвратить сдвиг цветов в синем и красном каналах" -#: ../src/iop/cacorrect.c:1415 +#: ../src/iop/cacorrect.c:1434 msgid "" "automatic chromatic aberration correction\n" -"only for Bayer raw files" +"only for Bayer raw files with 3 color channels" msgstr "" "Автоматическая коррекция хроматических\n" "аберраций. Работает только с сенсорами,\n" -"использующими фильтр Байера." +"использующими фильтр Байера с тремя цветовыми каналами." #: ../src/iop/cacorrectrgb.c:164 ../src/iop/defringe.c:76 msgid "chromatic aberrations" @@ -13175,7 +13707,7 @@ msgid "correct chromatic aberrations" msgstr "Коррекция хроматических аберраций" -#: ../src/iop/cacorrectrgb.c:743 +#: ../src/iop/cacorrectrgb.c:745 msgid "" "channel used as a reference to\n" "correct the other channels.\n" @@ -13187,11 +13719,11 @@ "Ведущий цветовой канал для коррекции хроматических аберраций.\n" "Попытайтесь изменить, если результат вас не удовлетворяет." -#: ../src/iop/cacorrectrgb.c:750 +#: ../src/iop/cacorrectrgb.c:752 msgid "increase for stronger correction" msgstr "Интенсивность коррекции хроматических аберраций" -#: ../src/iop/cacorrectrgb.c:752 +#: ../src/iop/cacorrectrgb.c:754 msgid "" "balance between smoothing colors\n" "and preserving them.\n" @@ -13199,12 +13731,12 @@ "and edge bleeding." msgstr "Баланс между сглаживанием и сохранением цветов" -#: ../src/iop/cacorrectrgb.c:757 +#: ../src/iop/cacorrectrgb.c:759 msgctxt "section" msgid "advanced parameters" msgstr "Дополнительные параметры" -#: ../src/iop/cacorrectrgb.c:759 +#: ../src/iop/cacorrectrgb.c:761 msgid "" "correction mode to use.\n" "can help with multiple\n" @@ -13218,7 +13750,7 @@ "Может быть использован при работе с несколькими копиями модуля.\n" "Режим «Затемнение» эффективно устраняет синюю кайму вокруг объектов." -#: ../src/iop/cacorrectrgb.c:767 +#: ../src/iop/cacorrectrgb.c:769 msgid "" "runs an iterative approach\n" "with several radii.\n" @@ -13247,35 +13779,35 @@ msgid "special, RGB, scene-referred" msgstr "Специальный, RGB, плёночная тональная кривая RGB" -#: ../src/iop/censorize.c:412 +#: ../src/iop/censorize.c:404 msgid "radius_1" msgstr "Радиус_1" -#: ../src/iop/censorize.c:414 +#: ../src/iop/censorize.c:406 msgid "pixelate" msgstr "Пикселизация" -#: ../src/iop/censorize.c:416 +#: ../src/iop/censorize.c:408 msgid "radius_2" msgstr "Радиус_2" -#: ../src/iop/censorize.c:418 +#: ../src/iop/censorize.c:410 msgid "noise" msgstr "Шум" -#: ../src/iop/censorize.c:420 +#: ../src/iop/censorize.c:412 msgid "radius of gaussian blur before pixellation" msgstr "Радиус гауссова размытия до пикселизации" -#: ../src/iop/censorize.c:421 +#: ../src/iop/censorize.c:413 msgid "radius of gaussian blur after pixellation" msgstr "Радиус гауссова размытия после пикселизации" -#: ../src/iop/censorize.c:422 +#: ../src/iop/censorize.c:414 msgid "radius of the intermediate pixellation" msgstr "Радиус размытия промежуточной пикселизации" -#: ../src/iop/censorize.c:423 +#: ../src/iop/censorize.c:415 msgid "amount of noise to add at the end" msgstr "Количество добавляемого шума" @@ -13290,7 +13822,7 @@ "Этот модуль объявлен устаревшим.\n" "Используйте модуль «Цветовая калибровка»." -#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:229 +#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:230 msgid "" "perform color space corrections\n" "such as white balance, channels mixing\n" @@ -13299,168 +13831,168 @@ "Корректировка цветового пространства изображения, баланса белого, " "микширование каналов и преобразование в ч/б" -#: ../src/iop/channelmixer.c:614 +#: ../src/iop/channelmixer.c:633 msgid "destination" msgstr "Канал вывода" -#: ../src/iop/channelmixer.c:621 +#: ../src/iop/channelmixer.c:640 msgctxt "channelmixer" msgid "gray" msgstr "Серый" -#: ../src/iop/channelmixer.c:627 +#: ../src/iop/channelmixer.c:646 msgid "amount of red channel in the output channel" msgstr "Красный канал на выводе" -#: ../src/iop/channelmixer.c:633 +#: ../src/iop/channelmixer.c:652 msgid "amount of green channel in the output channel" msgstr "Зелёный канал на выводе" -#: ../src/iop/channelmixer.c:639 +#: ../src/iop/channelmixer.c:658 msgid "amount of blue channel in the output channel" msgstr "Синий канал на выводе" -#: ../src/iop/channelmixer.c:655 ../src/iop/channelmixerrgb.c:524 +#: ../src/iop/channelmixer.c:674 ../src/iop/channelmixerrgb.c:588 msgid "swap R and B" msgstr "Поменять местами R и B" -#: ../src/iop/channelmixer.c:661 ../src/iop/channelmixerrgb.c:498 +#: ../src/iop/channelmixer.c:680 ../src/iop/channelmixerrgb.c:562 msgid "swap G and B" msgstr "Поменять местами G и B" -#: ../src/iop/channelmixer.c:667 +#: ../src/iop/channelmixer.c:686 msgid "color contrast boost" msgstr "Усиление контраста в цвете" -#: ../src/iop/channelmixer.c:673 +#: ../src/iop/channelmixer.c:692 msgid "color details boost" msgstr "Усиление детализации в цвете" -#: ../src/iop/channelmixer.c:679 +#: ../src/iop/channelmixer.c:698 msgid "color artifacts boost" msgstr "Усиление цветовых артефактов" -#: ../src/iop/channelmixer.c:685 +#: ../src/iop/channelmixer.c:704 msgid "B/W luminance-based" msgstr "Ч-б, канал светлоты" -#: ../src/iop/channelmixer.c:691 +#: ../src/iop/channelmixer.c:710 msgid "B/W artifacts boost" msgstr "Ч-б, усиление артефактов" -#: ../src/iop/channelmixer.c:697 +#: ../src/iop/channelmixer.c:716 msgid "B/W smooth skin" msgstr "Ч-б, сглаживание кожи" -#: ../src/iop/channelmixer.c:703 +#: ../src/iop/channelmixer.c:722 msgid "B/W blue artifacts reduce" msgstr "Ч-б, уменьшение синих артефактов" -#: ../src/iop/channelmixer.c:710 +#: ../src/iop/channelmixer.c:729 msgid "B/W Ilford Delta 100-400" msgstr "Ч-б Ilford Delta 100-400" -#: ../src/iop/channelmixer.c:717 +#: ../src/iop/channelmixer.c:736 msgid "B/W Ilford Delta 3200" msgstr "Ч-б Ilford Delta 3200" -#: ../src/iop/channelmixer.c:724 +#: ../src/iop/channelmixer.c:743 msgid "B/W Ilford FP4" msgstr "Ч-б Ilford FP4" -#: ../src/iop/channelmixer.c:731 +#: ../src/iop/channelmixer.c:750 msgid "B/W Ilford HP5" msgstr "Ч-б Ilford HP5" -#: ../src/iop/channelmixer.c:738 +#: ../src/iop/channelmixer.c:757 msgid "B/W Ilford SFX" msgstr "Ч-б Ilford SFX" -#: ../src/iop/channelmixer.c:745 +#: ../src/iop/channelmixer.c:764 msgid "B/W Kodak T-Max 100" msgstr "Ч-б Kodak T-Max 100" -#: ../src/iop/channelmixer.c:752 +#: ../src/iop/channelmixer.c:771 msgid "B/W Kodak T-max 400" msgstr "Ч-б Kodak T-Max 400" -#: ../src/iop/channelmixer.c:759 +#: ../src/iop/channelmixer.c:778 msgid "B/W Kodak Tri-X 400" msgstr "Ч-б Kodak Tri-X 400" -#: ../src/iop/channelmixerrgb.c:219 +#: ../src/iop/channelmixerrgb.c:220 msgid "color calibration" msgstr "Цветовая калибровка" -#: ../src/iop/channelmixerrgb.c:224 +#: ../src/iop/channelmixerrgb.c:225 msgid "channel mixer|white balance|monochrome" msgstr "channel mixer|white balance|monochrome" -#: ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:235 msgid "linear, RGB or XYZ" msgstr "Линейн., RGB или XYZ" -#: ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:460 msgid "B&W: luminance-based" msgstr "Ч-б, канал светлоты" -#: ../src/iop/channelmixerrgb.c:431 +#: ../src/iop/channelmixerrgb.c:495 msgid "B&W: ILFORD HP5+" msgstr "Ч-б ILFORD HP5+" -#: ../src/iop/channelmixerrgb.c:440 +#: ../src/iop/channelmixerrgb.c:504 msgid "B&W: ILFORD DELTA 100" msgstr "Ч-б ILFORD DELTA 100" -#: ../src/iop/channelmixerrgb.c:450 +#: ../src/iop/channelmixerrgb.c:514 msgid "B&W: ILFORD DELTA 400 - 3200" msgstr "Ч-б ILFORD DELTA 400-3200" -#: ../src/iop/channelmixerrgb.c:459 +#: ../src/iop/channelmixerrgb.c:523 msgid "B&W: ILFORD FP4+" msgstr "Ч-б ILFORD FP2" -#: ../src/iop/channelmixerrgb.c:468 +#: ../src/iop/channelmixerrgb.c:532 msgid "B&W: Fuji Acros 100" msgstr "Ч-б Fuji Acros 100" -#: ../src/iop/channelmixerrgb.c:485 +#: ../src/iop/channelmixerrgb.c:549 msgid "basic channel mixer" msgstr "Базовый микшер каналов" -#: ../src/iop/channelmixerrgb.c:511 +#: ../src/iop/channelmixerrgb.c:575 msgid "swap G and R" msgstr "Поменять местами G и R" -#: ../src/iop/channelmixerrgb.c:1869 +#: ../src/iop/channelmixerrgb.c:1926 msgid "(daylight)" msgstr "(дневной свет)" -#: ../src/iop/channelmixerrgb.c:1871 +#: ../src/iop/channelmixerrgb.c:1928 msgid "(black body)" msgstr "Чёрное тело" -#: ../src/iop/channelmixerrgb.c:1873 +#: ../src/iop/channelmixerrgb.c:1930 msgid "(invalid)" msgstr "(недействительно)" -#: ../src/iop/channelmixerrgb.c:1877 ../src/iop/channelmixerrgb.c:1935 +#: ../src/iop/channelmixerrgb.c:1934 ../src/iop/channelmixerrgb.c:1992 msgid "very good" msgstr "Отличное" -#: ../src/iop/channelmixerrgb.c:1879 ../src/iop/channelmixerrgb.c:1937 +#: ../src/iop/channelmixerrgb.c:1936 ../src/iop/channelmixerrgb.c:1994 msgid "good" msgstr "Хорошее" -#: ../src/iop/channelmixerrgb.c:1881 ../src/iop/channelmixerrgb.c:1939 +#: ../src/iop/channelmixerrgb.c:1938 ../src/iop/channelmixerrgb.c:1996 msgid "passable" msgstr "Удовлетворительное" -#: ../src/iop/channelmixerrgb.c:1883 ../src/iop/channelmixerrgb.c:1941 +#: ../src/iop/channelmixerrgb.c:1940 ../src/iop/channelmixerrgb.c:1998 msgid "bad" msgstr "Плохое" -#: ../src/iop/channelmixerrgb.c:1890 +#: ../src/iop/channelmixerrgb.c:1947 #, c-format msgid "" "\n" @@ -13497,7 +14029,7 @@ "Экспокоррекция: \t\t%+.2f EV\n" "Сдвиг чёрной точки: \t%+.4f" -#: ../src/iop/channelmixerrgb.c:1946 +#: ../src/iop/channelmixerrgb.c:2003 #, c-format msgid "" "\n" @@ -13516,25 +14048,41 @@ "Экспокоррекция: \t\t%+.2f EV\n" "Сдвиг чёрной точки: \t%+.4f" -#: ../src/iop/channelmixerrgb.c:1978 +#: ../src/iop/channelmixerrgb.c:2054 msgid "double CAT applied" msgstr "Повторное преобразование цветового пространства" -#: ../src/iop/channelmixerrgb.c:1979 +#: ../src/iop/channelmixerrgb.c:2055 msgid "" "you have 2 instances or more of color calibration,\n" -"all performing chromatic adaptation.\n" -"this can lead to inconsistencies, unless you\n" +"all providing chromatic adaptation.\n" +"this can lead to inconsistencies unless you\n" "use them with masks or know what you are doing." msgstr "" "ВНИМАНИЕ: Обнаружено несколько копий модуля «Цветовая калибровка».\n" -"Это может привести к непредсказуемым результатам." +"Это может привести к непредсказуемым результатам.\n" +"Рекомендуется использовать маски." + +#: ../src/iop/channelmixerrgb.c:2071 +msgid "white balance applied twice" +msgstr "Обнаружено несколько копий модуля «Баланс белого»" -#: ../src/iop/channelmixerrgb.c:1991 +#: ../src/iop/channelmixerrgb.c:2072 +msgid "" +"the color calibration module is enabled and already provides\n" +"chromatic adaptation.\n" +"set the white balance here to camera reference (D65)\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"Укажите «Эталонное значение из камеры» в качестве\n" +"настроек баланса белого или отключите модель адаптации\n" +"цветового пространства в модуле «Цветовая калибровка»." + +#: ../src/iop/channelmixerrgb.c:2080 msgid "white balance module error" msgstr "Модуль «Баланс белого» вернул ошибку" -#: ../src/iop/channelmixerrgb.c:1992 +#: ../src/iop/channelmixerrgb.c:2081 msgid "" "the white balance module is not using the camera\n" "reference illuminant, which will cause issues here\n" @@ -13545,20 +14093,46 @@ "настроек модуля «Баланс белого» или отключите модель\n" "адаптации цветового пространства." -#: ../src/iop/channelmixerrgb.c:2083 +#: ../src/iop/channelmixerrgb.c:2095 ../src/iop/channelmixerrgb.c:2104 +msgid "white balance missing" +msgstr "Отсутствует баланс белого" + +#: ../src/iop/channelmixerrgb.c:2096 +msgid "" +"this module is not providing a valid reference illuminant\n" +"causing chromatic adaptation issues in color calibration.\n" +"enable this module and either set it to reference\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"Укажите «Эталонное значение из камеры» в качестве\n" +"настроек баланса белого или отключите модель адаптации\n" +"цветового пространства в модуле «Цветовая калибровка»." + +#: ../src/iop/channelmixerrgb.c:2105 +msgid "" +"the white balance module is not providing a valid reference\n" +"illuminant causing issues with chromatic adaptation here.\n" +"enable white balance and either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" +"Укажите «Эталонное значение из камеры» в качестве\n" +"настроек модуля «Баланс белого» или отключите модель\n" +"адаптации цветового пространства." + +#: ../src/iop/channelmixerrgb.c:2196 msgid "auto-detection of white balance completed" msgstr "Автоматическая настройка баланса белого завершена" -#: ../src/iop/channelmixerrgb.c:2236 +#: ../src/iop/channelmixerrgb.c:2346 msgid "channelmixerrgb works only on RGB input" msgstr "Микшер каналов RGB работает только с данными в формате RGB" -#: ../src/iop/channelmixerrgb.c:3621 +#: ../src/iop/channelmixerrgb.c:3692 #, c-format msgid "CCT: %.0f K (daylight)" msgstr "CCT: %.0f K (дневной свет)" -#: ../src/iop/channelmixerrgb.c:3624 +#: ../src/iop/channelmixerrgb.c:3695 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a daylight spectrum,\n" @@ -13568,12 +14142,12 @@ "Данный источник может быть описан как дневной свет.\n" "Используйте источник света «D»." -#: ../src/iop/channelmixerrgb.c:3630 +#: ../src/iop/channelmixerrgb.c:3701 #, c-format msgid "CCT: %.0f K (black body)" msgstr "CCT: %.0f K (чёрное тело)" -#: ../src/iop/channelmixerrgb.c:3633 +#: ../src/iop/channelmixerrgb.c:3704 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a black body spectrum,\n" @@ -13583,12 +14157,12 @@ "Данный источник может быть описан как планковское чёрное тело.\n" "Используйте источник света «Чёрное тело (по Планку)»." -#: ../src/iop/channelmixerrgb.c:3639 +#: ../src/iop/channelmixerrgb.c:3710 #, c-format msgid "CCT: %.0f K (invalid)" msgstr "CCT: %.0f K (ошибочн.)" -#: ../src/iop/channelmixerrgb.c:3642 +#: ../src/iop/channelmixerrgb.c:3713 msgid "" "approximated correlated color temperature.\n" "this illuminant cannot be accurately modeled by a daylight or black body " @@ -13601,12 +14175,12 @@ "чёрное тело.\n" "Используйте источник света «Пользовательский»." -#: ../src/iop/channelmixerrgb.c:3651 +#: ../src/iop/channelmixerrgb.c:3722 #, c-format msgid "CCT: undefined" msgstr "CCT: Не определено" -#: ../src/iop/channelmixerrgb.c:3654 +#: ../src/iop/channelmixerrgb.c:3725 msgid "" "the approximated correlated color temperature\n" "cannot be computed at all so you need to use a custom illuminant." @@ -13615,16 +14189,16 @@ "Данный источник не может быть описан.\n" "Используйте источник света «Пользовательский»." -#: ../src/iop/channelmixerrgb.c:3967 +#: ../src/iop/channelmixerrgb.c:4038 msgid "white balance successfully extracted from raw image" msgstr "Значение баланса белого получено из изображения в формате Raw" #. We need to recompute only the full preview -#: ../src/iop/channelmixerrgb.c:3973 +#: ../src/iop/channelmixerrgb.c:4044 msgid "auto-detection of white balance started…" msgstr "Автоматическая настройка баланса белого..." -#: ../src/iop/channelmixerrgb.c:4078 +#: ../src/iop/channelmixerrgb.c:4149 msgid "" "color calibration: the sum of the gray channel parameters is zero, " "normalization will be disabled." @@ -13633,7 +14207,7 @@ "равно нулю." #. Write report in GUI -#: ../src/iop/channelmixerrgb.c:4126 +#: ../src/iop/channelmixerrgb.c:4194 #, c-format msgid "" "L: \t%.1f %%\n" @@ -13644,27 +14218,27 @@ "h: \t%.1f °\n" "c: \t%.1f" -#: ../src/iop/channelmixerrgb.c:4394 ../src/iop/clipping.c:2087 -#: ../src/iop/colorbalancergb.c:1873 ../src/iop/filmicrgb.c:4419 -#: ../src/iop/negadoctor.c:829 ../src/iop/toneequal.c:3319 -#: ../src/libs/image.c:460 ../src/views/lighttable.c:1258 +#: ../src/iop/channelmixerrgb.c:4462 ../src/iop/clipping.c:2140 +#: ../src/iop/colorbalancergb.c:1944 ../src/iop/filmicrgb.c:4483 +#: ../src/iop/negadoctor.c:848 ../src/iop/toneequal.c:3372 +#: ../src/libs/image.c:490 ../src/views/lighttable.c:1258 msgid "page" msgstr "Страница" #. Page CAT -#: ../src/iop/channelmixerrgb.c:4397 +#: ../src/iop/channelmixerrgb.c:4465 msgid "CAT" msgstr "Модель" -#: ../src/iop/channelmixerrgb.c:4398 +#: ../src/iop/channelmixerrgb.c:4466 msgid "chromatic adaptation transform" msgstr "Модель адаптации цветового пространства" -#: ../src/iop/channelmixerrgb.c:4400 +#: ../src/iop/channelmixerrgb.c:4468 msgid "adaptation" msgstr "Модель" -#: ../src/iop/channelmixerrgb.c:4403 +#: ../src/iop/channelmixerrgb.c:4471 msgid "" "choose the method to adapt the illuminant\n" "and the colorspace in which the module works: \n" @@ -13685,33 +14259,33 @@ "XYZ — простое преобразование в пространстве XYZ. Не рекомендуется.\n" "Отключено — без адаптации, рабочее цветовое пространство RGB." -#: ../src/iop/channelmixerrgb.c:4423 +#: ../src/iop/channelmixerrgb.c:4491 msgid "" "this is the color of the scene illuminant before chromatic adaptation\n" "this color will be turned into pure white by the adaptation." msgstr "Цвет источника света до адаптации цветового пространства" -#: ../src/iop/channelmixerrgb.c:4431 +#: ../src/iop/channelmixerrgb.c:4499 msgid "picker" msgstr "Палитра" -#: ../src/iop/channelmixerrgb.c:4433 ../src/iop/temperature.c:2047 +#: ../src/iop/channelmixerrgb.c:4501 ../src/iop/temperature.c:2015 msgid "set white balance to detected from area" msgstr "Взять значение с изображения" -#: ../src/iop/channelmixerrgb.c:4437 ../src/iop/negadoctor.c:953 +#: ../src/iop/channelmixerrgb.c:4505 ../src/iop/negadoctor.c:972 msgid "illuminant" msgstr "Источник света" -#: ../src/iop/channelmixerrgb.c:4443 ../src/iop/temperature.c:2107 +#: ../src/iop/channelmixerrgb.c:4511 ../src/iop/temperature.c:2072 msgid "temperature" msgstr "Температура" -#: ../src/iop/channelmixerrgb.c:4474 -msgid "spot color mapping" -msgstr "Сопоставление плашечных цветов" +#: ../src/iop/channelmixerrgb.c:4542 +msgid "area color mapping" +msgstr "Цветовое отображение области" -#: ../src/iop/channelmixerrgb.c:4480 +#: ../src/iop/channelmixerrgb.c:4548 msgid "" "define a target chromaticity (hue and chroma) for a particular region of the " "image (the control sample), which you then match against the same target " @@ -13725,17 +14299,17 @@ "частью объекта, либо неподвижной и постоянно освещенной поверхностью в серии " "изображений." -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/channelmixerrgb.c:4502 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/channelmixerrgb.c:4573 +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/channelmixerrgb.c:4570 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/channelmixerrgb.c:4641 msgid "mapping" msgstr "Отображение" -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/exposure.c:1188 -msgid "spot mode" -msgstr "Точечный режим" +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/exposure.c:1206 +msgid "area mode" +msgstr "Режим области" -#: ../src/iop/channelmixerrgb.c:4488 +#: ../src/iop/channelmixerrgb.c:4556 msgid "" "\"correction\" automatically adjust the illuminant\n" "such that the input color is mapped to the target.\n" @@ -13747,19 +14321,19 @@ "\"Измерение\" показывает, как CAT сопоставляет исходный цвет\n" "и может использоваться для выбора целевого цвета." -#: ../src/iop/channelmixerrgb.c:4493 ../src/iop/exposure.c:1194 +#: ../src/iop/channelmixerrgb.c:4561 ../src/iop/exposure.c:1212 msgid "correction" msgstr "Коррекция" -#: ../src/iop/channelmixerrgb.c:4494 ../src/iop/exposure.c:1195 +#: ../src/iop/channelmixerrgb.c:4562 ../src/iop/exposure.c:1213 msgid "measure" msgstr "Измерение" -#: ../src/iop/channelmixerrgb.c:4500 +#: ../src/iop/channelmixerrgb.c:4568 msgid "take channel mixing into account" msgstr "Учитывать смешивание каналов" -#: ../src/iop/channelmixerrgb.c:4507 +#: ../src/iop/channelmixerrgb.c:4575 msgid "" "compute the target by taking the channel mixing into account.\n" "if disabled, only the CAT is considered." @@ -13767,16 +14341,16 @@ "Вычислить целевой цвет с учетом смешивания каналов.\n" "Если этот параметр отключен, учитывается только цветовое преобразование." -#: ../src/iop/channelmixerrgb.c:4519 ../src/iop/exposure.c:1202 +#: ../src/iop/channelmixerrgb.c:4587 ../src/iop/exposure.c:1220 msgctxt "section" msgid "input" msgstr "На входе" -#: ../src/iop/channelmixerrgb.c:4526 ../src/iop/exposure.c:1210 +#: ../src/iop/channelmixerrgb.c:4594 ../src/iop/exposure.c:1228 msgid "the input color that should be mapped to the target" msgstr "Исходный цвет, который должен быть сопоставлен с целевым" -#: ../src/iop/channelmixerrgb.c:4532 +#: ../src/iop/channelmixerrgb.c:4600 msgid "" "L: \tN/A\n" "h: \tN/A\n" @@ -13786,114 +14360,114 @@ "ч: Н/Д\n" "c: Н/Д" -#: ../src/iop/channelmixerrgb.c:4535 ../src/iop/exposure.c:1218 +#: ../src/iop/channelmixerrgb.c:4603 ../src/iop/exposure.c:1236 msgid "these LCh coordinates are computed from CIE Lab 1976 coordinates" msgstr "Эти координаты LCh вычисляются на основе координат CIE Lab 1976" -#: ../src/iop/channelmixerrgb.c:4543 ../src/iop/exposure.c:1225 +#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/exposure.c:1243 msgctxt "section" msgid "target" msgstr "Целевой цвет" -#: ../src/iop/channelmixerrgb.c:4550 +#: ../src/iop/channelmixerrgb.c:4618 msgid "the desired target color after mapping" msgstr "Желаемый целевой цвет после сопоставления" -#: ../src/iop/channelmixerrgb.c:4589 +#: ../src/iop/channelmixerrgb.c:4657 msgid "input R" msgstr "На входе красный" -#: ../src/iop/channelmixerrgb.c:4594 +#: ../src/iop/channelmixerrgb.c:4662 msgid "input G" msgstr "На входе зеленный" -#: ../src/iop/channelmixerrgb.c:4599 +#: ../src/iop/channelmixerrgb.c:4667 msgid "input B" msgstr "На входе синий" -#: ../src/iop/channelmixerrgb.c:4609 +#: ../src/iop/channelmixerrgb.c:4677 msgid "output R" msgstr "На выходе красный" -#: ../src/iop/channelmixerrgb.c:4610 +#: ../src/iop/channelmixerrgb.c:4678 msgid "output G" msgstr "На выходе зеленный" -#: ../src/iop/channelmixerrgb.c:4611 +#: ../src/iop/channelmixerrgb.c:4679 msgid "output B" msgstr "На выходе синий" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "colorfulness" msgstr "Красочность" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "output colorfulness" msgstr "Красочность на выходе " -#: ../src/iop/channelmixerrgb.c:4617 +#: ../src/iop/channelmixerrgb.c:4685 msgid "output brightness" msgstr "Яркость на выходе " -#: ../src/iop/channelmixerrgb.c:4620 +#: ../src/iop/channelmixerrgb.c:4688 msgid "output gray" msgstr "На выходе серый" -#: ../src/iop/channelmixerrgb.c:4635 +#: ../src/iop/channelmixerrgb.c:4703 msgid "calibrate with a color checker" msgstr "Калибровка по атласу цветов" -#: ../src/iop/channelmixerrgb.c:4640 +#: ../src/iop/channelmixerrgb.c:4708 msgid "use a color checker target to autoset CAT and channels" msgstr "Калибровать цветовоспроизведение при помощи атласа эталонных цветов" -#: ../src/iop/channelmixerrgb.c:4647 ../src/iop/channelmixerrgb.c:4660 -#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/channelmixerrgb.c:4696 -#: ../src/iop/channelmixerrgb.c:4705 ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4715 ../src/iop/channelmixerrgb.c:4728 +#: ../src/iop/channelmixerrgb.c:4746 ../src/iop/channelmixerrgb.c:4764 +#: ../src/iop/channelmixerrgb.c:4773 ../src/iop/channelmixerrgb.c:4781 msgid "calibrate" msgstr "Калибровать" -#: ../src/iop/channelmixerrgb.c:4647 +#: ../src/iop/channelmixerrgb.c:4715 msgid "chart" msgstr "Модель" -#: ../src/iop/channelmixerrgb.c:4648 +#: ../src/iop/channelmixerrgb.c:4716 msgid "choose the vendor and the type of your chart" msgstr "Выберите используемую модель атласа эталонных цветов" -#: ../src/iop/channelmixerrgb.c:4650 +#: ../src/iop/channelmixerrgb.c:4718 msgid "Xrite ColorChecker 24 pre-2014" msgstr "Xrite ColorChecker 24, до 2014" -#: ../src/iop/channelmixerrgb.c:4651 +#: ../src/iop/channelmixerrgb.c:4719 msgid "Xrite ColorChecker 24 post-2014" msgstr "Xrite ColorChecker 24, после 2014" -#: ../src/iop/channelmixerrgb.c:4652 +#: ../src/iop/channelmixerrgb.c:4720 msgid "Datacolor SpyderCheckr 24 pre-2018" msgstr "Datacolor SpyderCheckr 24, до 2018" -#: ../src/iop/channelmixerrgb.c:4653 +#: ../src/iop/channelmixerrgb.c:4721 msgid "Datacolor SpyderCheckr 24 post-2018" msgstr "Datacolor SpyderCheckr 24, после 2018" -#: ../src/iop/channelmixerrgb.c:4654 +#: ../src/iop/channelmixerrgb.c:4722 msgid "Datacolor SpyderCheckr 48 pre-2018" msgstr "Datacolor SpyderCheckr 48, до 2018" -#: ../src/iop/channelmixerrgb.c:4655 +#: ../src/iop/channelmixerrgb.c:4723 msgid "Datacolor SpyderCheckr 48 post-2018" msgstr "Datacolor SpyderCheckr 48, после 2018" -#: ../src/iop/channelmixerrgb.c:4656 +#: ../src/iop/channelmixerrgb.c:4724 msgid "Datacolor SpyderCheckr Photo" msgstr "Datacolor SpyderCheckr Photo" -#: ../src/iop/channelmixerrgb.c:4660 +#: ../src/iop/channelmixerrgb.c:4728 msgid "optimize for" msgstr "Тип оптимизации" -#: ../src/iop/channelmixerrgb.c:4661 +#: ../src/iop/channelmixerrgb.c:4729 msgid "" "choose the colors that will be optimized with higher priority.\n" "neutral colors gives the lowest average delta E but a high maximum delta E\n" @@ -13910,35 +14484,35 @@ "Прочие типы оптимизаций обеспечивают достоверное отображение специфических " "участков спектра." -#: ../src/iop/channelmixerrgb.c:4668 +#: ../src/iop/channelmixerrgb.c:4736 msgid "neutral colors" msgstr "Нейтральные цвета" -#: ../src/iop/channelmixerrgb.c:4670 +#: ../src/iop/channelmixerrgb.c:4738 msgid "skin and soil colors" msgstr "Кожа и цвет почвы" -#: ../src/iop/channelmixerrgb.c:4671 +#: ../src/iop/channelmixerrgb.c:4739 msgid "foliage colors" msgstr "Цвет листвы" -#: ../src/iop/channelmixerrgb.c:4672 +#: ../src/iop/channelmixerrgb.c:4740 msgid "sky and water colors" msgstr "Небо и цвет воды" -#: ../src/iop/channelmixerrgb.c:4673 +#: ../src/iop/channelmixerrgb.c:4741 msgid "average delta E" msgstr "Cредн. ΔE" -#: ../src/iop/channelmixerrgb.c:4674 +#: ../src/iop/channelmixerrgb.c:4742 msgid "maximum delta E" msgstr "Макс. ΔE" -#: ../src/iop/channelmixerrgb.c:4678 +#: ../src/iop/channelmixerrgb.c:4746 msgid "patch scale" msgstr "Размер образца" -#: ../src/iop/channelmixerrgb.c:4681 +#: ../src/iop/channelmixerrgb.c:4749 msgid "" "reduce the radius of the patches to select the more or less central part.\n" "useful when the perspective correction is sloppy or\n" @@ -13948,31 +14522,31 @@ "Подберите размер таким образом, чтобы внутри указанной области\n" "не было затенённых участков или посторонних предметов." -#: ../src/iop/channelmixerrgb.c:4691 +#: ../src/iop/channelmixerrgb.c:4759 msgid "the delta E is using the CIE 2000 formula" msgstr "ΔE использует формулу CIE 2000" -#: ../src/iop/channelmixerrgb.c:4696 +#: ../src/iop/channelmixerrgb.c:4764 msgid "accept" msgstr "Принять" -#: ../src/iop/channelmixerrgb.c:4702 +#: ../src/iop/channelmixerrgb.c:4770 msgid "accept the computed profile and set it in the module" msgstr "Применить построенный цветовой профиль" -#: ../src/iop/channelmixerrgb.c:4705 +#: ../src/iop/channelmixerrgb.c:4773 msgid "recompute" msgstr "Пересчитать" -#: ../src/iop/channelmixerrgb.c:4709 +#: ../src/iop/channelmixerrgb.c:4777 msgid "recompute the profile" msgstr "Произвести пересчёт профиля" -#: ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4781 msgid "validate" msgstr "Подтвердить" -#: ../src/iop/channelmixerrgb.c:4717 +#: ../src/iop/channelmixerrgb.c:4785 msgid "check the output delta E" msgstr "Показать рассчитанные значения ΔE" @@ -13989,19 +14563,19 @@ "Этот модуль объявлен устаревшим.\n" "Используйте модуль «Локальный контраст»." -#: ../src/iop/clahe.c:337 ../src/iop/sharpen.c:445 +#: ../src/iop/clahe.c:339 ../src/iop/sharpen.c:440 msgid "amount" msgstr "Значение" -#: ../src/iop/clahe.c:346 +#: ../src/iop/clahe.c:348 msgid "size of features to preserve" msgstr "Размер сохраняемых деталей" -#: ../src/iop/clahe.c:347 ../src/iop/nlmeans.c:464 +#: ../src/iop/clahe.c:349 ../src/iop/nlmeans.c:467 msgid "strength of the effect" msgstr "Интенсивность эффекта" -#: ../src/iop/clipping.c:304 +#: ../src/iop/clipping.c:347 msgid "" "this module is deprecated. please use the crop, orientation and/or rotate " "and perspective modules instead." @@ -14009,145 +14583,145 @@ "Этот модуль устарел. вместо этого используйте модули обрезки, ориентации и/" "или поворота и перспективы." -#: ../src/iop/clipping.c:309 +#: ../src/iop/clipping.c:352 msgid "crop and rotate" msgstr "Трансформации" -#: ../src/iop/clipping.c:314 +#: ../src/iop/clipping.c:357 msgid "reframe|perspective|keystone|distortion" msgstr "reframe|perspective|keystone|distortion" -#: ../src/iop/clipping.c:319 +#: ../src/iop/clipping.c:362 msgid "change the framing and correct the perspective" msgstr "Кадрирование и корректировка перспективы изображения" -#: ../src/iop/clipping.c:1394 ../src/iop/clipping.c:2120 ../src/iop/crop.c:517 -#: ../src/iop/crop.c:1117 +#: ../src/iop/clipping.c:1447 ../src/iop/clipping.c:2173 ../src/iop/crop.c:501 +#: ../src/iop/crop.c:1101 msgid "original image" msgstr "Исходное изображение" -#: ../src/iop/clipping.c:1698 ../src/iop/crop.c:824 +#: ../src/iop/clipping.c:1751 ../src/iop/crop.c:808 msgid "invalid ratio format. it should be \"number:number\"" msgstr "Некорректный формат соотношения сторон. Формат: \"число:число\"" -#: ../src/iop/clipping.c:1714 ../src/iop/crop.c:840 +#: ../src/iop/clipping.c:1767 ../src/iop/crop.c:824 msgid "invalid ratio format. it should be a positive number" msgstr "Некорректный формат соотношения сторон. Формат: позитивное значение" -#: ../src/iop/clipping.c:1903 ../src/iop/clipping.c:2111 +#: ../src/iop/clipping.c:1956 ../src/iop/clipping.c:2164 msgid "full" msgstr "Оба направления" -#: ../src/iop/clipping.c:1904 +#: ../src/iop/clipping.c:1957 msgid "old system" msgstr "Старая система" -#: ../src/iop/clipping.c:1905 +#: ../src/iop/clipping.c:1958 msgid "correction applied" msgstr "Применена" -#: ../src/iop/clipping.c:2089 +#: ../src/iop/clipping.c:2142 msgid "main" msgstr "Общие" -#: ../src/iop/clipping.c:2098 +#: ../src/iop/clipping.c:2151 msgid "mirror image horizontally and/or vertically" msgstr "Отражение по горизонтали и/или вертикали" -#: ../src/iop/clipping.c:2101 +#: ../src/iop/clipping.c:2154 msgid "angle" msgstr "Угол" -#: ../src/iop/clipping.c:2104 +#: ../src/iop/clipping.c:2157 msgid "right-click and drag a line on the image to drag a straight line" msgstr "" "Щёлкните правой кнопкой мыши на изображении и протяните параллельную " "горизонту линию" -#: ../src/iop/clipping.c:2107 +#: ../src/iop/clipping.c:2160 msgid "keystone" msgstr "Коррекция перспективы" -#: ../src/iop/clipping.c:2112 +#: ../src/iop/clipping.c:2165 msgid "set perspective correction for your image" msgstr "Коррекцию перспективы по горизонтали и/или вертикали" -#: ../src/iop/clipping.c:2119 ../src/iop/crop.c:1116 +#: ../src/iop/clipping.c:2172 ../src/iop/crop.c:1100 msgid "freehand" msgstr "Произвольный" -#: ../src/iop/clipping.c:2122 ../src/iop/crop.c:1119 +#: ../src/iop/clipping.c:2175 ../src/iop/crop.c:1103 msgid "10:8 in print" msgstr "10:8, печать" -#: ../src/iop/clipping.c:2123 ../src/iop/crop.c:1120 +#: ../src/iop/clipping.c:2176 ../src/iop/crop.c:1104 msgid "5:4, 4x5, 8x10" msgstr "5:4, 4x5, 8x10" -#: ../src/iop/clipping.c:2124 ../src/iop/crop.c:1121 +#: ../src/iop/clipping.c:2177 ../src/iop/crop.c:1105 msgid "11x14" msgstr "11x14" -#: ../src/iop/clipping.c:2125 ../src/iop/crop.c:1122 +#: ../src/iop/clipping.c:2178 ../src/iop/crop.c:1106 msgid "8.5x11, letter" msgstr "8.5x11, Letter" -#: ../src/iop/clipping.c:2126 ../src/iop/crop.c:1123 +#: ../src/iop/clipping.c:2179 ../src/iop/crop.c:1107 msgid "4:3, VGA, TV" msgstr "4:3, VGA, TV" -#: ../src/iop/clipping.c:2127 ../src/iop/crop.c:1124 +#: ../src/iop/clipping.c:2180 ../src/iop/crop.c:1108 msgid "5x7" msgstr "5x7" -#: ../src/iop/clipping.c:2128 ../src/iop/crop.c:1125 +#: ../src/iop/clipping.c:2181 ../src/iop/crop.c:1109 msgid "ISO 216, DIN 476, A4" msgstr "ISO 216, DIN 476, A4" -#: ../src/iop/clipping.c:2129 ../src/iop/crop.c:1126 +#: ../src/iop/clipping.c:2182 ../src/iop/crop.c:1110 msgid "3:2, 4x6, 35mm" msgstr "3:2, 4x6, 35мм" -#: ../src/iop/clipping.c:2130 ../src/iop/crop.c:1127 +#: ../src/iop/clipping.c:2183 ../src/iop/crop.c:1111 msgid "16:10, 8x5" msgstr "16:10, 8x5" -#: ../src/iop/clipping.c:2132 ../src/iop/crop.c:1129 +#: ../src/iop/clipping.c:2185 ../src/iop/crop.c:1113 msgid "16:9, HDTV" msgstr "16:9, HDTV" -#: ../src/iop/clipping.c:2133 ../src/iop/crop.c:1130 +#: ../src/iop/clipping.c:2186 ../src/iop/crop.c:1114 msgid "widescreen" msgstr "Широкий экран" -#: ../src/iop/clipping.c:2134 ../src/iop/crop.c:1131 +#: ../src/iop/clipping.c:2187 ../src/iop/crop.c:1115 msgid "2:1, univisium" msgstr "2:1, Univisium" -#: ../src/iop/clipping.c:2135 ../src/iop/crop.c:1132 +#: ../src/iop/clipping.c:2188 ../src/iop/crop.c:1116 msgid "cinemascope" msgstr "Синемаскоп" -#: ../src/iop/clipping.c:2136 ../src/iop/crop.c:1133 +#: ../src/iop/clipping.c:2189 ../src/iop/crop.c:1117 msgid "21:9" msgstr "21:9" -#: ../src/iop/clipping.c:2137 ../src/iop/crop.c:1134 +#: ../src/iop/clipping.c:2190 ../src/iop/crop.c:1118 msgid "anamorphic" msgstr "Анаморфированный" -#: ../src/iop/clipping.c:2138 ../src/iop/crop.c:1135 +#: ../src/iop/clipping.c:2191 ../src/iop/crop.c:1119 msgid "3:1, panorama" msgstr "3:1, панорама" -#: ../src/iop/clipping.c:2170 ../src/iop/clipping.c:2182 ../src/iop/crop.c:1171 -#: ../src/iop/crop.c:1187 +#: ../src/iop/clipping.c:2223 ../src/iop/clipping.c:2235 ../src/iop/crop.c:1155 +#: ../src/iop/crop.c:1171 #, c-format msgid "invalid ratio format for `%s'. it should be \"number:number\"" msgstr "" "Некорректный формат соотношения для «%s». Правильный формат: \"число:число\"" -#: ../src/iop/clipping.c:2229 ../src/iop/crop.c:1238 +#: ../src/iop/clipping.c:2282 ../src/iop/crop.c:1222 msgid "" "set the aspect ratio\n" "the list is sorted: from most square to least square\n" @@ -14159,33 +14733,33 @@ "чтобы ввести пользовательское соотношение сторон, откройте поле со списком и " "введите соотношение в x: y или десятичном формате." -#: ../src/iop/clipping.c:2236 ../src/iop/crop.c:1252 +#: ../src/iop/clipping.c:2289 ../src/iop/crop.c:1236 msgid "margins" msgstr "Поля" -#: ../src/iop/clipping.c:2241 ../src/iop/crop.c:1262 +#: ../src/iop/clipping.c:2294 ../src/iop/crop.c:1246 msgid "the left margin cannot overlap with the right margin" msgstr "Левое поле не может перекрываться правым" -#: ../src/iop/clipping.c:2248 ../src/iop/crop.c:1270 +#: ../src/iop/clipping.c:2301 ../src/iop/crop.c:1254 msgid "the right margin cannot overlap with the left margin" msgstr "Правое поле не может перекрываться левым" -#: ../src/iop/clipping.c:2253 ../src/iop/crop.c:1276 +#: ../src/iop/clipping.c:2306 ../src/iop/crop.c:1260 msgid "the top margin cannot overlap with the bottom margin" msgstr "Верхнее поле не может перекрываться нижним" -#: ../src/iop/clipping.c:2260 ../src/iop/crop.c:1284 +#: ../src/iop/clipping.c:2313 ../src/iop/crop.c:1268 msgid "the bottom margin cannot overlap with the top margin" msgstr "Нижнее поле не может перекрываться верхним" -#: ../src/iop/clipping.c:3019 +#: ../src/iop/clipping.c:3059 msgid "<b>commit</b>: double-click, <b>straighten</b>: right-drag" msgstr "" "<b>фиксация</b>: двойной щелчок, <b>выпрямление</b>: перетаскивание правой " "кнопкой мыши" -#: ../src/iop/clipping.c:3023 +#: ../src/iop/clipping.c:3063 msgid "" "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag\n" "<b>straighten</b>: right-drag" @@ -14194,16 +14768,16 @@ "Shift+перетащить\n" "<b>выпрямить</b>: перетащите правой кнопкой мыши" -#: ../src/iop/clipping.c:3066 +#: ../src/iop/clipping.c:3104 msgid "<b>move control point</b>: drag" msgstr "<b>переместить контрольную точку</b>: перетащить" -#: ../src/iop/clipping.c:3071 +#: ../src/iop/clipping.c:3109 msgid "<b>move line</b>: drag, <b>toggle symmetry</b>: click ꝏ" msgstr "" "<b>переместить линию</b>: перетащить, <b>переключить симметрию</b>: нажать ꝏ" -#: ../src/iop/clipping.c:3076 +#: ../src/iop/clipping.c:3114 msgid "" "<b>apply</b>: click <tt>ok</tt>, <b>toggle symmetry</b>: click ꝏ\n" "<b>move line/control point</b>: drag" @@ -14211,7 +14785,7 @@ "<b>применить</b>: нажмите <tt>ok</tt>, <b>включить симметрию</b>: нажмите ꝏ\n" "<b>переместить линию/контрольную точку</b>: перетащить" -#: ../src/iop/clipping.c:3083 +#: ../src/iop/clipping.c:3121 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag\n" @@ -14222,12 +14796,12 @@ "<b>выпрямить</b>: перетащить правой кнопкой мыши, <b>зафиксировать</b>: " "дважды щелкнуть" -#: ../src/iop/clipping.c:3340 ../src/iop/crop.c:1796 +#: ../src/iop/clipping.c:3380 ../src/iop/crop.c:1770 #, c-format msgid "[%s on borders] crop" msgstr "[%s на краях] обрезать" -#: ../src/iop/clipping.c:3342 ../src/iop/crop.c:1798 +#: ../src/iop/clipping.c:3382 ../src/iop/crop.c:1772 #, c-format msgid "[%s on borders] crop keeping ratio" msgstr "[%s на краях] обрезать с сохранением пропорций" @@ -14246,224 +14820,224 @@ msgid "adjust the look of the image" msgstr "Коррекция контраста, яркости и насыщенности изображения" -#: ../src/iop/colisa.c:310 +#: ../src/iop/colisa.c:304 msgid "color saturation adjustment" msgstr "Коррекция насыщенности цвета" -#: ../src/iop/colorbalance.c:150 +#: ../src/iop/colorbalance.c:152 msgid "color balance" msgstr "Цветовой баланс" -#: ../src/iop/colorbalance.c:155 +#: ../src/iop/colorbalance.c:157 msgid "lift gamma gain|cdl|color grading|contrast|saturation|hue" msgstr "lift gamma gain|cdl|color grading|contrast|saturation|hue" -#: ../src/iop/colorbalance.c:160 +#: ../src/iop/colorbalance.c:162 msgid "shift colors selectively by luminance range" msgstr "Выборочно сместить цвета в диапазоне канала светлоты" -#: ../src/iop/colorbalance.c:164 +#: ../src/iop/colorbalance.c:166 msgid "non-linear, Lab, scene-referred" msgstr "Нелинейн., Lab, плёночная тональная кривая RGB" #. these blobs were exported as dtstyle and copied from there: -#: ../src/iop/colorbalance.c:275 +#: ../src/iop/colorbalance.c:304 msgid "split-toning teal-orange (2nd instance)" msgstr "Тонирование бирюзовый-оранжевый (2-ой проход)" -#: ../src/iop/colorbalance.c:278 +#: ../src/iop/colorbalance.c:307 msgid "split-toning teal-orange (1st instance)" msgstr "Тонирование бирюзовый-оранжевый (1-ый проход)" -#: ../src/iop/colorbalance.c:282 +#: ../src/iop/colorbalance.c:311 msgid "generic film" msgstr "Обыкновенная плёнка" -#: ../src/iop/colorbalance.c:286 +#: ../src/iop/colorbalance.c:315 msgid "similar to Kodak Portra" msgstr "Эмуляция Kodak Portra" -#: ../src/iop/colorbalance.c:290 +#: ../src/iop/colorbalance.c:319 msgid "similar to Kodak Ektar" msgstr "Эмуляция Kodak Ektar" -#: ../src/iop/colorbalance.c:294 +#: ../src/iop/colorbalance.c:323 msgid "similar to Kodachrome" msgstr "Эмуляция Kodachrome" -#: ../src/iop/colorbalance.c:990 +#: ../src/iop/colorbalance.c:964 msgid "optimize luma from patches" msgstr "Оптимизировать яркость по образцам" -#: ../src/iop/colorbalance.c:992 ../src/iop/colorbalance.c:2110 +#: ../src/iop/colorbalance.c:966 ../src/iop/colorbalance.c:2085 msgid "optimize luma" msgstr "Оптимизировать яркость" -#: ../src/iop/colorbalance.c:996 +#: ../src/iop/colorbalance.c:970 msgid "neutralize colors from patches" msgstr "Нейтрализовать цвета по образцам" -#: ../src/iop/colorbalance.c:998 ../src/iop/colorbalance.c:2116 +#: ../src/iop/colorbalance.c:972 ../src/iop/colorbalance.c:2091 msgid "neutralize colors" msgstr "Нейтрализовать цвета" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "offset" msgstr "Смещение" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "power" msgstr "Степенная функция" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "slope" msgstr "Крутизна" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "lift" msgstr "Подъём" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gamma" msgstr "Гамма" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gain" msgstr "Усиление" -#: ../src/iop/colorbalance.c:1787 +#: ../src/iop/colorbalance.c:1762 msgctxt "section" msgid "shadows: lift / offset" msgstr "Тени: подъём / сдвиг" -#: ../src/iop/colorbalance.c:1788 +#: ../src/iop/colorbalance.c:1763 msgctxt "section" msgid "mid-tones: gamma / power" msgstr "Средние тона: гамма / сила" -#: ../src/iop/colorbalance.c:1789 +#: ../src/iop/colorbalance.c:1764 msgctxt "section" msgid "highlights: gain / slope" msgstr "Света: усиление / крутизна" -#: ../src/iop/colorbalance.c:1813 +#: ../src/iop/colorbalance.c:1788 msgid "shadows / mid-tones / highlights" msgstr "Тени / средние тона / света" -#: ../src/iop/colorbalance.c:1910 ../src/iop/colorbalance.c:1919 +#: ../src/iop/colorbalance.c:1885 ../src/iop/colorbalance.c:1894 msgid "color-grading mapping method" msgstr "Способ цветокоррекции" -#: ../src/iop/colorbalance.c:1914 +#: ../src/iop/colorbalance.c:1889 msgid "color control sliders" msgstr "Ползунки цветокоррекции" -#: ../src/iop/colorbalance.c:1915 ../src/libs/colorpicker.c:51 +#: ../src/iop/colorbalance.c:1890 ../src/libs/colorpicker.c:51 msgid "HSL" msgstr "HSL" -#: ../src/iop/colorbalance.c:1916 +#: ../src/iop/colorbalance.c:1891 msgid "RGBL" msgstr "RGBL" -#: ../src/iop/colorbalance.c:1928 +#: ../src/iop/colorbalance.c:1903 msgctxt "section" msgid "master" msgstr "Главные" -#: ../src/iop/colorbalance.c:1934 +#: ../src/iop/colorbalance.c:1909 msgid "saturation correction before the color balance" msgstr "Коррекция насыщенности на вводе" -#: ../src/iop/colorbalance.c:1940 +#: ../src/iop/colorbalance.c:1915 msgid "saturation correction after the color balance" msgstr "Коррекция насыщенности на выводе" -#: ../src/iop/colorbalance.c:1945 +#: ../src/iop/colorbalance.c:1920 msgid "adjust to match a neutral tone" msgstr "Коррекция нейтрального тона" #. is set in _configure_slider_blocks -#: ../src/iop/colorbalance.c:2003 +#: ../src/iop/colorbalance.c:1978 msgid "click to cycle layout" msgstr "Переключить вид" -#: ../src/iop/colorbalance.c:2037 +#: ../src/iop/colorbalance.c:2012 msgid "factor" msgstr "Коэффициент" -#: ../src/iop/colorbalance.c:2051 +#: ../src/iop/colorbalance.c:2026 msgid "select the hue" msgstr "Выбор тона" -#: ../src/iop/colorbalance.c:2063 +#: ../src/iop/colorbalance.c:2038 msgid "select the saturation" msgstr "Выбор насыщенности тона" -#: ../src/iop/colorbalance.c:2082 +#: ../src/iop/colorbalance.c:2057 msgid "factor of lift/offset" msgstr "Коэффициент для теней" -#: ../src/iop/colorbalance.c:2083 +#: ../src/iop/colorbalance.c:2058 msgid "factor of red for lift/offset" msgstr "Коэффициент красного для теней" -#: ../src/iop/colorbalance.c:2084 +#: ../src/iop/colorbalance.c:2059 msgid "factor of green for lift/offset" msgstr "Коэффициент зелёного для теней" -#: ../src/iop/colorbalance.c:2085 +#: ../src/iop/colorbalance.c:2060 msgid "factor of blue for lift/offset" msgstr "Коэффициент синего для теней" -#: ../src/iop/colorbalance.c:2088 +#: ../src/iop/colorbalance.c:2063 msgid "factor of gamma/power" msgstr "Коэффициент для средних тонов" -#: ../src/iop/colorbalance.c:2089 +#: ../src/iop/colorbalance.c:2064 msgid "factor of red for gamma/power" msgstr "Коэффициент красного для средних тонов" -#: ../src/iop/colorbalance.c:2090 +#: ../src/iop/colorbalance.c:2065 msgid "factor of green for gamma/power" msgstr "Коэффициент зелёного для средних тонов" -#: ../src/iop/colorbalance.c:2091 +#: ../src/iop/colorbalance.c:2066 msgid "factor of blue for gamma/power" msgstr "Коэффициент синего для средних тонов" -#: ../src/iop/colorbalance.c:2094 +#: ../src/iop/colorbalance.c:2069 msgid "factor of gain/slope" msgstr "Коэффициент для светов" -#: ../src/iop/colorbalance.c:2095 +#: ../src/iop/colorbalance.c:2070 msgid "factor of red for gain/slope" msgstr "Коэффициент красного для светов" -#: ../src/iop/colorbalance.c:2096 +#: ../src/iop/colorbalance.c:2071 msgid "factor of green for gain/slope" msgstr "Коэффициент зелёного для светов" -#: ../src/iop/colorbalance.c:2097 +#: ../src/iop/colorbalance.c:2072 msgid "factor of blue for gain/slope" msgstr "Коэффициент синего для светов" -#: ../src/iop/colorbalance.c:2106 +#: ../src/iop/colorbalance.c:2081 msgctxt "section" msgid "auto optimizers" msgstr "Автоматические настройки" -#: ../src/iop/colorbalance.c:2111 +#: ../src/iop/colorbalance.c:2086 msgid "fit the whole histogram and center the average luma" msgstr "Уместить всю гистограмму и выравнять среднее значение яркости" -#: ../src/iop/colorbalance.c:2117 +#: ../src/iop/colorbalance.c:2092 msgid "optimize the RGB curves to remove color casts" msgstr "Оптимизировать кривые RGB для удаление цветовых сдвигов" @@ -14486,109 +15060,109 @@ "Инструменты цветокоррекции с использованием альфа-масок для разделения\n" "тени, средние тона и света" -#: ../src/iop/colorbalancergb.c:443 +#: ../src/iop/colorbalancergb.c:536 msgid "add basic colorfulness (legacy)" msgstr "Добавить базовую красочность" -#: ../src/iop/colorbalancergb.c:452 +#: ../src/iop/colorbalancergb.c:545 msgid "basic colorfulness: natural skin" msgstr "Базовая красочность: кожа" -#: ../src/iop/colorbalancergb.c:458 +#: ../src/iop/colorbalancergb.c:551 msgid "basic colorfulness: vibrant colors" msgstr "Базовая красочность: яркие цвета" -#: ../src/iop/colorbalancergb.c:464 +#: ../src/iop/colorbalancergb.c:557 msgid "basic colorfulness: standard" msgstr "Базовая красочность: стандартная" -#: ../src/iop/colorbalancergb.c:937 +#: ../src/iop/colorbalancergb.c:1022 msgid "colorbalance works only on RGB input" msgstr "Цветовой баланс RGB работает только с данными в формате RGB" -#: ../src/iop/colorbalancergb.c:1506 ../src/iop/colorzones.c:2164 -#: ../src/iop/retouch.c:1884 ../src/iop/toneequal.c:1966 +#: ../src/iop/colorbalancergb.c:1577 ../src/iop/colorzones.c:2394 +#: ../src/iop/retouch.c:2069 ../src/iop/toneequal.c:1996 msgid "cannot display masks when the blending mask is displayed" msgstr "" "Не возможно отобразить маски при включенном режиме отображения маски " "смешивания" #. Page master -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "master" msgstr "Главные" -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "global grading" msgstr "Общая коррекция" -#: ../src/iop/colorbalancergb.c:1880 +#: ../src/iop/colorbalancergb.c:1951 msgid "rotate all hues by an angle, at the same luminance" msgstr "Угол вращения тонов при сохранении яркости изображения" -#: ../src/iop/colorbalancergb.c:1886 +#: ../src/iop/colorbalancergb.c:1957 msgid "increase colorfulness mostly on low-chroma colors" msgstr "" "Общая красочность изображения. Оказывает наибольший эффект на менее " "красочные участки." -#: ../src/iop/colorbalancergb.c:1892 +#: ../src/iop/colorbalancergb.c:1963 msgid "increase the contrast at constant chromaticity" msgstr "Контраст изображения при сохранении цветности" -#: ../src/iop/colorbalancergb.c:1894 +#: ../src/iop/colorbalancergb.c:1965 msgctxt "section" msgid "linear chroma grading" msgstr "Линейная цветокорреция" -#: ../src/iop/colorbalancergb.c:1901 +#: ../src/iop/colorbalancergb.c:1972 msgid "increase colorfulness at same luminance globally" msgstr "Настройка красочности всего изображения при сохранении яркости" -#: ../src/iop/colorbalancergb.c:1906 +#: ../src/iop/colorbalancergb.c:1977 msgid "increase colorfulness at same luminance mostly in shadows" msgstr "Настройка красочности в тенях" -#: ../src/iop/colorbalancergb.c:1911 +#: ../src/iop/colorbalancergb.c:1982 msgid "increase colorfulness at same luminance mostly in mid-tones" msgstr "Увеличить красочность при той же яркости, в основном в средних тонах" -#: ../src/iop/colorbalancergb.c:1916 +#: ../src/iop/colorbalancergb.c:1987 msgid "increase colorfulness at same luminance mostly in highlights" msgstr "Настройка красочности в светах" -#: ../src/iop/colorbalancergb.c:1918 +#: ../src/iop/colorbalancergb.c:1989 msgctxt "section" msgid "perceptual saturation grading" msgstr "Воспринимаемая насыщенность" -#: ../src/iop/colorbalancergb.c:1924 +#: ../src/iop/colorbalancergb.c:1995 msgid "add or remove saturation by an absolute amount" msgstr "Настройка воспринимаемой насыщенности всего изображения" -#: ../src/iop/colorbalancergb.c:1929 ../src/iop/colorbalancergb.c:1934 -#: ../src/iop/colorbalancergb.c:1939 +#: ../src/iop/colorbalancergb.c:2000 ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2010 msgid "" "increase or decrease saturation proportionally to the original pixel " "saturation" msgstr "" "Настройка воспринимаемой насыщенности пропорциональна оригинальному значению" -#: ../src/iop/colorbalancergb.c:1941 +#: ../src/iop/colorbalancergb.c:2012 msgctxt "section" msgid "perceptual brilliance grading" msgstr "Воспринимаемая яркость" -#: ../src/iop/colorbalancergb.c:1942 +#: ../src/iop/colorbalancergb.c:2013 msgid "brilliance" msgstr "Блеск" -#: ../src/iop/colorbalancergb.c:1947 +#: ../src/iop/colorbalancergb.c:2018 msgid "add or remove brilliance by an absolute amount" msgstr "Настройка воспринимаемой яркости всего изображения" -#: ../src/iop/colorbalancergb.c:1952 ../src/iop/colorbalancergb.c:1957 -#: ../src/iop/colorbalancergb.c:1962 +#: ../src/iop/colorbalancergb.c:2023 ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2033 msgid "" "increase or decrease brilliance proportionally to the original pixel " "brilliance" @@ -14596,156 +15170,156 @@ "Настройка воспринимаемой яркости пропорциональна оригинальному значению" #. Page 4-ways -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "4 ways" msgstr "4 параметра" -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "selective color grading" msgstr "Выборочная цветокоррекция" -#: ../src/iop/colorbalancergb.c:1967 +#: ../src/iop/colorbalancergb.c:2038 msgctxt "section" msgid "global offset" msgstr "Общие параметры" -#: ../src/iop/colorbalancergb.c:1974 +#: ../src/iop/colorbalancergb.c:2045 msgid "global luminance offset" msgstr "Коррекция общей светлоты" -#: ../src/iop/colorbalancergb.c:1979 +#: ../src/iop/colorbalancergb.c:2050 msgid "hue of the global color offset" msgstr "Коррекция общего тона" -#: ../src/iop/colorbalancergb.c:1985 +#: ../src/iop/colorbalancergb.c:2056 msgid "chroma of the global color offset" msgstr "Коррекция общей цветности" -#: ../src/iop/colorbalancergb.c:1987 +#: ../src/iop/colorbalancergb.c:2058 msgctxt "section" msgid "shadows lift" msgstr "Тени" -#: ../src/iop/colorbalancergb.c:1988 +#: ../src/iop/colorbalancergb.c:2059 msgid "lift" msgstr "Подъем" -#: ../src/iop/colorbalancergb.c:1994 +#: ../src/iop/colorbalancergb.c:2065 msgid "luminance gain in shadows" msgstr "Коррекция светлоты в тенях" -#: ../src/iop/colorbalancergb.c:1999 +#: ../src/iop/colorbalancergb.c:2070 msgid "hue of the color gain in shadows" msgstr "Коррекция тона в тенях" -#: ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2076 msgid "chroma of the color gain in shadows" msgstr "Коррекция цветности в тенях" -#: ../src/iop/colorbalancergb.c:2007 +#: ../src/iop/colorbalancergb.c:2078 msgctxt "section" msgid "highlights gain" msgstr "Света" -#: ../src/iop/colorbalancergb.c:2008 +#: ../src/iop/colorbalancergb.c:2079 msgid "gain" msgstr "Усиление" -#: ../src/iop/colorbalancergb.c:2014 +#: ../src/iop/colorbalancergb.c:2085 msgid "luminance gain in highlights" msgstr "Коррекция светлоты в светах" -#: ../src/iop/colorbalancergb.c:2019 +#: ../src/iop/colorbalancergb.c:2090 msgid "hue of the color gain in highlights" msgstr "Коррекция тона в светах" -#: ../src/iop/colorbalancergb.c:2025 +#: ../src/iop/colorbalancergb.c:2096 msgid "chroma of the color gain in highlights" msgstr "Коррекция цветности в светах" -#: ../src/iop/colorbalancergb.c:2027 +#: ../src/iop/colorbalancergb.c:2098 msgctxt "section" msgid "power" msgstr "Средние тона" -#: ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2099 msgid "power" msgstr "Средние тона" -#: ../src/iop/colorbalancergb.c:2034 +#: ../src/iop/colorbalancergb.c:2105 msgid "luminance exponent in mid-tones" msgstr "Показатель яркости в средних тонах" -#: ../src/iop/colorbalancergb.c:2039 +#: ../src/iop/colorbalancergb.c:2110 msgid "hue of the color exponent in mid-tones" msgstr "Оттенок цветового показателя в средних тонах" -#: ../src/iop/colorbalancergb.c:2045 +#: ../src/iop/colorbalancergb.c:2116 msgid "chroma of the color exponent in mid-tones" msgstr "Коррекция цветности в средних тонах" #. Page masks -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "masks" msgstr "Маска" -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "isolate luminances" msgstr "Работа над участком светлотного диапазона" -#: ../src/iop/colorbalancergb.c:2052 +#: ../src/iop/colorbalancergb.c:2123 msgid "choose in which uniform color space the saturation is computed" msgstr "" "Выберите, в каком однородном цветовом пространстве вычисляется насыщенность" -#: ../src/iop/colorbalancergb.c:2054 +#: ../src/iop/colorbalancergb.c:2125 msgctxt "section" msgid "luminance ranges" msgstr "Светлотный диапазон" -#: ../src/iop/colorbalancergb.c:2065 +#: ../src/iop/colorbalancergb.c:2136 msgid "weight of the shadows over the whole tonal range" msgstr "Вес теней относительно остальной части светлотного диапазона маски" -#: ../src/iop/colorbalancergb.c:2073 +#: ../src/iop/colorbalancergb.c:2144 msgid "position of the middle-gray reference for masking" msgstr "Положение серой точки маски" -#: ../src/iop/colorbalancergb.c:2081 +#: ../src/iop/colorbalancergb.c:2152 msgid "weights of highlights over the whole tonal range" msgstr "Вес светов относительно остальной части светлотного диапазона маски" -#: ../src/iop/colorbalancergb.c:2086 +#: ../src/iop/colorbalancergb.c:2157 msgctxt "section" msgid "threshold" msgstr "Порог" -#: ../src/iop/colorbalancergb.c:2091 +#: ../src/iop/colorbalancergb.c:2162 msgid "peak white luminance value used to normalize the power function" msgstr "Пиковое значение белого, используемое для нормализации" -#: ../src/iop/colorbalancergb.c:2097 +#: ../src/iop/colorbalancergb.c:2168 msgid "peak gray luminance value used to normalize the power function" msgstr "Пиковое значение серого, используемое для нормализации" -#: ../src/iop/colorbalancergb.c:2099 +#: ../src/iop/colorbalancergb.c:2170 msgctxt "section" msgid "mask preview settings" msgstr "Параметры предпросмотра" -#: ../src/iop/colorbalancergb.c:2102 +#: ../src/iop/colorbalancergb.c:2173 msgid "checkerboard color 1" msgstr "Цвет первого поля" -#: ../src/iop/colorbalancergb.c:2105 ../src/iop/colorbalancergb.c:2114 +#: ../src/iop/colorbalancergb.c:2176 ../src/iop/colorbalancergb.c:2185 msgid "select color of the checkerboard from a swatch" msgstr "Выбор цветов полей, используемых для предпросмотра" -#: ../src/iop/colorbalancergb.c:2111 +#: ../src/iop/colorbalancergb.c:2182 msgid "checkerboard color 2" msgstr "Цвет второго поля" -#: ../src/iop/colorbalancergb.c:2121 +#: ../src/iop/colorbalancergb.c:2192 msgid "checkerboard size" msgstr "Размер поля" @@ -14764,11 +15338,11 @@ "поиска цветов" #: ../src/iop/colorchecker.c:131 ../src/iop/colorchecker.c:133 -#: ../src/iop/colorize.c:106 ../src/iop/colormapping.c:154 -#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:136 -#: ../src/iop/colorzones.c:146 ../src/iop/defringe.c:83 ../src/iop/levels.c:139 -#: ../src/iop/monochrome.c:99 ../src/iop/shadhi.c:198 -#: ../src/iop/tonecurve.c:212 ../src/iop/vibrance.c:96 +#: ../src/iop/colorize.c:99 ../src/iop/colormapping.c:154 +#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:121 +#: ../src/iop/colorzones.c:147 ../src/iop/defringe.c:83 ../src/iop/levels.c:141 +#: ../src/iop/monochrome.c:101 ../src/iop/shadhi.c:145 +#: ../src/iop/tonecurve.c:185 ../src/iop/vibrance.c:98 msgid "linear or non-linear, Lab, display-referred" msgstr "Линейн. или нелинейн., Lab, базовая кривая" @@ -14776,40 +15350,40 @@ msgid "defined by profile, Lab" msgstr "Определяется профилем, Lab" -#: ../src/iop/colorchecker.c:294 +#: ../src/iop/colorchecker.c:308 msgid "it8 skin tones" msgstr "Телесные тона по it8" -#: ../src/iop/colorchecker.c:310 +#: ../src/iop/colorchecker.c:324 msgid "Helmholtz/Kohlrausch monochrome" msgstr "Ч/б по Гельмгольцу-Кольраушу" -#: ../src/iop/colorchecker.c:327 +#: ../src/iop/colorchecker.c:341 msgid "Fuji Astia emulation" msgstr "Эмуляция Astia" -#: ../src/iop/colorchecker.c:341 +#: ../src/iop/colorchecker.c:355 msgid "Fuji Classic Chrome emulation" msgstr "Эмуляция Fuji Classic Chrome" -#: ../src/iop/colorchecker.c:355 +#: ../src/iop/colorchecker.c:369 msgid "Fuji Monochrome emulation" msgstr "Эмуляция Fuji Monochrome" -#: ../src/iop/colorchecker.c:369 +#: ../src/iop/colorchecker.c:383 msgid "Fuji Provia emulation" msgstr "Эмуляция Fuji Provia" -#: ../src/iop/colorchecker.c:383 +#: ../src/iop/colorchecker.c:397 msgid "Fuji Velvia emulation" msgstr "Эмуляция Fuji Velvia" -#: ../src/iop/colorchecker.c:841 ../src/iop/colorchecker.c:1436 +#: ../src/iop/colorchecker.c:846 ../src/iop/colorchecker.c:1441 #, c-format msgid "patch #%d" msgstr "Образец #%d" -#: ../src/iop/colorchecker.c:1283 +#: ../src/iop/colorchecker.c:1288 #, c-format msgid "" "(%2.2f %2.2f %2.2f)\n" @@ -14826,15 +15400,15 @@ "Щелчок правой кнопкой мыши удаляет образец\n" "Shift+Щелчок при взятии цвета пипеткой заменяет образец" -#: ../src/iop/colorchecker.c:1431 +#: ../src/iop/colorchecker.c:1436 msgid "patch" msgstr "Образец" -#: ../src/iop/colorchecker.c:1432 +#: ../src/iop/colorchecker.c:1437 msgid "color checker patch" msgstr "Образец в цветовой таблице" -#: ../src/iop/colorchecker.c:1446 +#: ../src/iop/colorchecker.c:1451 msgid "" "adjust target color Lab 'L' channel\n" "lower values darken target color while higher brighten it" @@ -14842,7 +15416,7 @@ "отрегулируйте целевой цвет Лабораторный канал «L»\n" "более низкие значения затемняют целевой цвет, а более высокие делают его ярче" -#: ../src/iop/colorchecker.c:1454 +#: ../src/iop/colorchecker.c:1459 msgid "" "adjust target color Lab 'a' channel\n" "lower values shift target color towards greens while higher shift towards " @@ -14852,11 +15426,11 @@ "более низкие значения смещают целевой цвет к зеленому, а более высокие " "сдвигают к пурпурному" -#: ../src/iop/colorchecker.c:1457 +#: ../src/iop/colorchecker.c:1462 msgid "green-magenta offset" msgstr "Зелено-пурпурное смещение" -#: ../src/iop/colorchecker.c:1466 +#: ../src/iop/colorchecker.c:1471 msgid "" "adjust target color Lab 'b' channel\n" "lower values shift target color towards blues while higher shift towards " @@ -14866,11 +15440,11 @@ "более низкие значения смещают целевой цвет в сторону синего, а более высокие " "сдвигают в сторону желтого" -#: ../src/iop/colorchecker.c:1469 +#: ../src/iop/colorchecker.c:1474 msgid "blue-yellow offset" msgstr "Сине-желтый смещение" -#: ../src/iop/colorchecker.c:1478 +#: ../src/iop/colorchecker.c:1483 msgid "" "adjust target color saturation\n" "adjusts 'a' and 'b' channels of target color in Lab space simultaneously\n" @@ -14882,11 +15456,11 @@ "более низкие значения масштабируются в сторону более низкой насыщенности, а " "более высокие масштабируются в сторону более высокой насыщенности" -#: ../src/iop/colorchecker.c:1487 +#: ../src/iop/colorchecker.c:1492 msgid "target color" msgstr "Целевой цвет" -#: ../src/iop/colorchecker.c:1490 +#: ../src/iop/colorchecker.c:1495 msgid "" "control target color of the patches\n" "relative - target color is relative from the patch original color\n" @@ -14897,27 +15471,27 @@ "патча\n" "absolute - целевой цвет является абсолютным лабораторным значением" -#: ../src/iop/colorchecker.c:1494 +#: ../src/iop/colorchecker.c:1499 msgid "absolute" msgstr "Абсолютные значения" -#: ../src/iop/colorcontrast.c:85 +#: ../src/iop/colorcontrast.c:77 msgid "color contrast" msgstr "Цветовой контраст" -#: ../src/iop/colorcontrast.c:95 +#: ../src/iop/colorcontrast.c:87 msgid "" "increase saturation and separation between\n" "opposite colors" msgstr "Добавление насыщенности и увеличение цветового контраста изображение" -#: ../src/iop/colorcontrast.c:324 +#: ../src/iop/colorcontrast.c:330 msgid "" "steepness of the a* curve in Lab\n" "lower values desaturate greens and magenta while higher saturate them" msgstr "Крутизна наклона кривой a* в Lab" -#: ../src/iop/colorcontrast.c:331 +#: ../src/iop/colorcontrast.c:337 msgid "" "steepness of the b* curve in Lab\n" "lower values desaturate blues and yellows while higher saturate them" @@ -14931,19 +15505,19 @@ msgid "correct white balance selectively for blacks and whites" msgstr "Раздельная настройка баланса белого для теней и светов" -#: ../src/iop/colorcorrection.c:107 +#: ../src/iop/colorcorrection.c:109 msgid "warm tone" msgstr "Тёплые тона" -#: ../src/iop/colorcorrection.c:115 +#: ../src/iop/colorcorrection.c:117 msgid "warming filter" msgstr "Фильтр потепления" -#: ../src/iop/colorcorrection.c:123 +#: ../src/iop/colorcorrection.c:125 msgid "cooling filter" msgstr "Фильтр охлаждения" -#: ../src/iop/colorcorrection.c:257 +#: ../src/iop/colorcorrection.c:250 msgid "" "drag the line for split-toning. bright means highlights, dark means shadows. " "use mouse wheel to change saturation." @@ -14951,7 +15525,7 @@ "Нарисуйте линию для раздельного тонирования. Белый отвечает за света, чёрный " "— за тени. Колесо мыши меняет насыщенность." -#: ../src/iop/colorcorrection.c:276 +#: ../src/iop/colorcorrection.c:269 msgid "set the global saturation" msgstr "Общая насыщенность" @@ -14968,7 +15542,7 @@ "профиль" #: ../src/iop/colorin.c:133 ../src/iop/colorout.c:89 ../src/iop/demosaic.c:293 -#: ../src/iop/rawprepare.c:158 +#: ../src/iop/rawprepare.c:174 msgid "mandatory" msgstr "Обязательный" @@ -14976,7 +15550,7 @@ msgid "defined by profile" msgstr "Определяется профилем" -#: ../src/iop/colorin.c:542 +#: ../src/iop/colorin.c:582 #, c-format msgid "" "can't extract matrix from colorspace `%s', it will be replaced by Rec2020 " @@ -14984,24 +15558,24 @@ msgstr "" "Ошибка извлечения цветовой матрицы «%s»! Произведена замена на Rec2020 RGB." -#: ../src/iop/colorin.c:1424 +#: ../src/iop/colorin.c:1362 #, c-format msgid "`%s' color matrix not found!" msgstr "Цветовая матрица «%s» не найдена!" -#: ../src/iop/colorin.c:1463 +#: ../src/iop/colorin.c:1401 msgid "input profile could not be generated!" msgstr "Ошибка создания профиля ввода!" -#: ../src/iop/colorin.c:1560 +#: ../src/iop/colorin.c:1498 msgid "unsupported input profile has been replaced by linear Rec709 RGB!" msgstr "Неподдерживаемый профиль ввода заменён на линейный RGB по Rec709!" -#: ../src/iop/colorin.c:1844 +#: ../src/iop/colorin.c:1782 msgid "external ICC profiles" msgstr "Внешний ICC профиль" -#: ../src/iop/colorin.c:1889 +#: ../src/iop/colorin.c:1827 #, c-format msgid "" "embedded ICC profile properties:\n" @@ -15024,43 +15598,43 @@ "Права: <b>%s</b>\n" "\n" -#: ../src/iop/colorin.c:2084 +#: ../src/iop/colorin.c:2022 msgid "input profile" msgstr "Профиль ввода" -#: ../src/iop/colorin.c:2088 +#: ../src/iop/colorin.c:2026 msgid "working profile" msgstr "Рабочий профиль" -#: ../src/iop/colorin.c:2097 +#: ../src/iop/colorin.c:2035 msgid "working ICC profiles" msgstr "Рабочий профиль ICC" -#: ../src/iop/colorin.c:2109 +#: ../src/iop/colorin.c:2047 msgid "confine Lab values to gamut of RGB color space" msgstr "Ограничить значения Lab цветовым охватом пространства RGB" -#: ../src/iop/colorize.c:84 +#: ../src/iop/colorize.c:75 msgid "colorize" msgstr "Тонирование" -#: ../src/iop/colorize.c:104 +#: ../src/iop/colorize.c:97 msgid "overlay a solid color on the image" msgstr "Тонирование изображения" -#: ../src/iop/colorize.c:341 ../src/iop/splittoning.c:485 +#: ../src/iop/colorize.c:354 ../src/iop/splittoning.c:481 msgid "select the hue tone" msgstr "Выбор тона" -#: ../src/iop/colorize.c:347 +#: ../src/iop/colorize.c:360 msgid "select the saturation shadow tone" msgstr "Выбор насыщенности тона теней" -#: ../src/iop/colorize.c:351 +#: ../src/iop/colorize.c:364 msgid "lightness of color" msgstr "Светлота тона" -#: ../src/iop/colorize.c:355 +#: ../src/iop/colorize.c:368 msgid "mix value of source lightness" msgstr "Значение подмешиваемой исходной светлоты" @@ -15073,37 +15647,37 @@ "transfer a color palette and tonal repartition from one image to another" msgstr "Перенос палитры цветов с одного изображения на другое" -#: ../src/iop/colormapping.c:1030 +#: ../src/iop/colormapping.c:1019 msgid "source clusters:" msgstr "Исходные кластеры:" -#: ../src/iop/colormapping.c:1036 +#: ../src/iop/colormapping.c:1025 msgid "target clusters:" msgstr "Конечные кластеры:" -#: ../src/iop/colormapping.c:1045 +#: ../src/iop/colormapping.c:1034 msgid "acquire as source" msgstr "Захватить" -#: ../src/iop/colormapping.c:1049 +#: ../src/iop/colormapping.c:1038 msgid "analyze this image as a source image" msgstr "Проанализировать это изображение в качестве источника" -#: ../src/iop/colormapping.c:1051 +#: ../src/iop/colormapping.c:1040 msgid "acquire as target" msgstr "Применить" -#: ../src/iop/colormapping.c:1055 +#: ../src/iop/colormapping.c:1044 msgid "analyze this image as a target image" msgstr "Применить исходные кластеры к данному изображению" -#: ../src/iop/colormapping.c:1058 +#: ../src/iop/colormapping.c:1047 msgid "number of clusters to find in image. value change resets all clusters" msgstr "" "Количество кластеров для поиска в изображении. Смена значения сбрасывает " "предыдущие кластеры." -#: ../src/iop/colormapping.c:1061 +#: ../src/iop/colormapping.c:1050 msgid "" "how clusters are mapped. low values: based on color proximity, high values: " "based on color dominance" @@ -15111,7 +15685,7 @@ "Как проецируются кластеры. Низкие значения — на основе близости цветов, " "высокие — на основе доминирования цвета." -#: ../src/iop/colormapping.c:1066 +#: ../src/iop/colormapping.c:1055 msgid "level of histogram equalization" msgstr "Уровень выравнивания гистограммы" @@ -15131,114 +15705,114 @@ msgid "non-linear, RGB or Lab, display-referred" msgstr "Нелинейн., RGB или Lab, базовая кривая" -#: ../src/iop/colorout.c:679 +#: ../src/iop/colorout.c:695 msgid "missing output profile has been replaced by sRGB!" msgstr "Отсутствующий профиль вывода заменён на sRGB!" -#: ../src/iop/colorout.c:701 +#: ../src/iop/colorout.c:717 msgid "missing softproof profile has been replaced by sRGB!" msgstr "Отсутствующий профиль цветопробы заменён на sRGB!" -#: ../src/iop/colorout.c:744 +#: ../src/iop/colorout.c:760 msgid "unsupported output profile has been replaced by sRGB!" msgstr "Неподдерживаемый профиль вывода заменён на sRGB!" -#: ../src/iop/colorout.c:869 +#: ../src/iop/colorout.c:885 msgid "output intent" msgstr "Цветопередача" -#: ../src/iop/colorout.c:870 +#: ../src/iop/colorout.c:886 msgid "rendering intent" msgstr "Цветопередача" -#: ../src/iop/colorout.c:872 ../src/libs/export.c:1246 +#: ../src/iop/colorout.c:888 ../src/libs/export.c:1358 #: ../src/libs/print_settings.c:2475 ../src/libs/print_settings.c:2824 -#: ../src/views/darkroom.c:2518 ../src/views/lighttable.c:1176 +#: ../src/views/darkroom.c:2359 ../src/views/lighttable.c:1176 msgid "perceptual" msgstr "Воспринимаемая" -#: ../src/iop/colorout.c:873 ../src/libs/export.c:1247 +#: ../src/iop/colorout.c:889 ../src/libs/export.c:1359 #: ../src/libs/print_settings.c:2476 ../src/libs/print_settings.c:2825 -#: ../src/views/darkroom.c:2519 ../src/views/lighttable.c:1177 +#: ../src/views/darkroom.c:2360 ../src/views/lighttable.c:1177 msgid "relative colorimetric" msgstr "Отн. колориметрическая" -#: ../src/iop/colorout.c:874 ../src/libs/export.c:1248 +#: ../src/iop/colorout.c:890 ../src/libs/export.c:1360 #: ../src/libs/print_settings.c:2477 ../src/libs/print_settings.c:2826 -#: ../src/views/darkroom.c:2520 ../src/views/lighttable.c:1178 +#: ../src/views/darkroom.c:2361 ../src/views/lighttable.c:1178 msgctxt "rendering intent" msgid "saturation" msgstr "Насыщенная" -#: ../src/iop/colorout.c:875 ../src/libs/export.c:1249 +#: ../src/iop/colorout.c:891 ../src/libs/export.c:1361 #: ../src/libs/print_settings.c:2478 ../src/libs/print_settings.c:2827 -#: ../src/views/darkroom.c:2521 ../src/views/lighttable.c:1179 +#: ../src/views/darkroom.c:2362 ../src/views/lighttable.c:1179 msgid "absolute colorimetric" msgstr "Абс. колориметрическая" -#: ../src/iop/colorout.c:893 +#: ../src/iop/colorout.c:909 msgid "export ICC profiles" msgstr "Профиль вывода ICC" -#: ../src/iop/colorreconstruction.c:129 +#: ../src/iop/colorreconstruction.c:114 msgid "color reconstruction" msgstr "Восстановление цвета" -#: ../src/iop/colorreconstruction.c:134 +#: ../src/iop/colorreconstruction.c:119 msgid "recover clipped highlights by propagating surrounding colors" msgstr "" "Восстановление цветовой информации пересветов за счёт данных от соседних " "участков изображения" -#: ../src/iop/colorreconstruction.c:628 ../src/iop/colorreconstruction.c:1040 -#: ../src/iop/globaltonemap.c:193 ../src/iop/globaltonemap.c:362 -#: ../src/iop/hazeremoval.c:553 ../src/iop/hazeremoval.c:788 -#: ../src/iop/levels.c:336 +#: ../src/iop/colorreconstruction.c:647 ../src/iop/colorreconstruction.c:1053 +#: ../src/iop/globaltonemap.c:227 ../src/iop/globaltonemap.c:396 +#: ../src/iop/hazeremoval.c:541 ../src/iop/hazeremoval.c:776 +#: ../src/iop/levels.c:358 msgid "inconsistent output" msgstr "Ошибка на выходе!" -#: ../src/iop/colorreconstruction.c:666 +#: ../src/iop/colorreconstruction.c:685 msgid "module `color reconstruction' failed" msgstr "Модуль «Восстановление цвета» вернул ошибку" -#: ../src/iop/colorreconstruction.c:1237 +#: ../src/iop/colorreconstruction.c:1246 msgid "spatial" msgstr "Пространственный предел" -#: ../src/iop/colorreconstruction.c:1238 +#: ../src/iop/colorreconstruction.c:1247 msgid "range" msgstr "Расстояние" -#: ../src/iop/colorreconstruction.c:1239 +#: ../src/iop/colorreconstruction.c:1248 msgid "precedence" msgstr "Приоритет" -#: ../src/iop/colorreconstruction.c:1255 +#: ../src/iop/colorreconstruction.c:1264 msgid "pixels with lightness values above this threshold are corrected" msgstr "Порог светлости для корректируемых пикселей" -#: ../src/iop/colorreconstruction.c:1256 +#: ../src/iop/colorreconstruction.c:1265 msgid "how far to look for replacement colors in spatial dimensions" msgstr "Пространственный предел для поиска цвета для замены" -#: ../src/iop/colorreconstruction.c:1257 +#: ../src/iop/colorreconstruction.c:1266 msgid "how far to look for replacement colors in the luminance dimension" msgstr "Предел диапазона светлости для поиска цвета для замены" -#: ../src/iop/colorreconstruction.c:1258 +#: ../src/iop/colorreconstruction.c:1267 msgid "if and how to give precedence to specific replacement colors" msgstr "Приоритет для поиска специфического цвета для замены" -#: ../src/iop/colorreconstruction.c:1259 +#: ../src/iop/colorreconstruction.c:1268 msgid "the hue tone which should be given precedence over other hue tones" msgstr "Приоритетный тон" -#: ../src/iop/colorreconstruction.c:1261 ../src/iop/demosaic.c:1277 -#: ../src/iop/highlights.c:1168 +#: ../src/iop/colorreconstruction.c:1270 ../src/iop/demosaic.c:1324 +#: ../src/iop/highlights.c:1258 msgid "not applicable" msgstr "Не может быть применено" -#: ../src/iop/colorreconstruction.c:1262 +#: ../src/iop/colorreconstruction.c:1271 msgid "no highlights reconstruction for monochrome images" msgstr "Обработка пересвеченных участков для монохр. изображений недоступна." @@ -15252,7 +15826,7 @@ "Этот модуль объявлен устаревшим.\n" "Используйте модуль «Перенос цветов»." -#: ../src/iop/colortransfer.c:439 +#: ../src/iop/colortransfer.c:441 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -15263,43 +15837,43 @@ "вы могли мигрировать на новый модуль\n" "переноса цветов." -#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2332 +#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2573 msgid "color zones" msgstr "Цветовые зоны" -#: ../src/iop/colorzones.c:144 +#: ../src/iop/colorzones.c:145 msgid "selectively shift hues, chroma and lightness of pixels" msgstr "Коррекция тона, насыщенности и светлоты изображения" -#: ../src/iop/colorzones.c:606 +#: ../src/iop/colorzones.c:684 msgid "B&W: with red" msgstr "Ч-б: с красным" -#: ../src/iop/colorzones.c:629 +#: ../src/iop/colorzones.c:707 msgid "B&W: with skin tones" msgstr "Телесные тона по Ч-б" -#: ../src/iop/colorzones.c:652 +#: ../src/iop/colorzones.c:732 msgid "polarizing filter" msgstr "Поляризационный фильтр" -#: ../src/iop/colorzones.c:673 +#: ../src/iop/colorzones.c:753 msgid "natural skin tones" msgstr "Естественные телесные тона" -#: ../src/iop/colorzones.c:704 +#: ../src/iop/colorzones.c:784 msgid "B&W: film" msgstr "Ч-б: пленка" -#: ../src/iop/colorzones.c:724 +#: ../src/iop/colorzones.c:804 msgid "HSL base setting" msgstr "Базовые настройки HSL" -#: ../src/iop/colorzones.c:2264 +#: ../src/iop/colorzones.c:2500 msgid "orange" msgstr "Оранжевый" -#: ../src/iop/colorzones.c:2421 ../src/iop/rgbcurve.c:1375 +#: ../src/iop/colorzones.c:2673 ../src/iop/rgbcurve.c:1375 msgid "" "create a curve based on an area from the image\n" "drag to create a flat curve\n" @@ -15311,48 +15885,48 @@ "Ctrl+Щелчок для создания позитивной кривой.\n" "Shift+Щелчок для создания негативной кривой." -#: ../src/iop/colorzones.c:2425 ../src/iop/rgbcurve.c:1379 +#: ../src/iop/colorzones.c:2677 ../src/iop/rgbcurve.c:1379 msgid "create curve" msgstr "Создать кривую" #. edit by area -#: ../src/iop/colorzones.c:2442 +#: ../src/iop/colorzones.c:2696 msgid "edit by area" msgstr "Редактирование по областям" -#: ../src/iop/colorzones.c:2447 +#: ../src/iop/colorzones.c:2702 msgid "edit the curve nodes by area" msgstr "Редактирование узлов кривой по областям" -#: ../src/iop/colorzones.c:2454 +#: ../src/iop/colorzones.c:2710 msgid "display selection" msgstr "Показать выделение" -#: ../src/iop/colorzones.c:2463 +#: ../src/iop/colorzones.c:2722 msgid "choose selection criterion, will be the abscissa in the graph" msgstr "Критерий выбора, на графике это ось абсцисс" -#: ../src/iop/colorzones.c:2466 +#: ../src/iop/colorzones.c:2725 msgid "choose between a smoother or stronger effect" msgstr "Выбор режима обработки" -#: ../src/iop/colorzones.c:2494 ../src/iop/rgbcurve.c:1410 -#: ../src/iop/tonecurve.c:1172 +#: ../src/iop/colorzones.c:2762 ../src/iop/rgbcurve.c:1410 +#: ../src/iop/tonecurve.c:1194 msgid "interpolation method" msgstr "Интерполяция" -#: ../src/iop/colorzones.c:2496 ../src/iop/rgbcurve.c:1412 -#: ../src/iop/tonecurve.c:1174 +#: ../src/iop/colorzones.c:2764 ../src/iop/rgbcurve.c:1412 +#: ../src/iop/tonecurve.c:1196 msgid "centripetal spline" msgstr "Центростремительный сплайн" -#: ../src/iop/colorzones.c:2497 ../src/iop/rgbcurve.c:1413 -#: ../src/iop/tonecurve.c:1175 +#: ../src/iop/colorzones.c:2765 ../src/iop/rgbcurve.c:1413 +#: ../src/iop/tonecurve.c:1197 msgid "monotonic spline" msgstr "Монотонный сплайн" -#: ../src/iop/colorzones.c:2500 ../src/iop/rgbcurve.c:1416 -#: ../src/iop/tonecurve.c:1177 +#: ../src/iop/colorzones.c:2768 ../src/iop/rgbcurve.c:1416 +#: ../src/iop/tonecurve.c:1199 msgid "" "change this method if you see oscillations or cusps in the curve\n" "- cubic spline is better to produce smooth curves but oscillates when nodes " @@ -15370,25 +15944,25 @@ "Монотонный сплайн — наибольшее подобие аналитическим\n" "функциям (log, gamma, exp)." -#: ../src/iop/crop.c:132 +#: ../src/iop/crop.c:122 msgid "crop" msgstr "Кадрирование" -#: ../src/iop/crop.c:137 +#: ../src/iop/crop.c:127 msgid "reframe|distortion" msgstr "reframe|distortion" -#: ../src/iop/crop.c:143 +#: ../src/iop/crop.c:133 msgid "change the framing" msgstr "Кадрирование изображения" -#: ../src/iop/crop.c:1667 +#: ../src/iop/crop.c:1651 msgid "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag" msgstr "" "<b>изменить размер</b>: перетащить, <b>сохранить соотношение сторон</b>: " "Shift+перетащить" -#: ../src/iop/crop.c:1676 +#: ../src/iop/crop.c:1660 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag" @@ -15414,7 +15988,7 @@ "Этот модуль объявлен устаревшим.\n" "Используйте модуль «Хроматические аберрации»." -#: ../src/iop/defringe.c:415 +#: ../src/iop/defringe.c:417 msgid "" "method for color protection:\n" " - global average: fast, might show slightly wrong previews in high " @@ -15432,14 +16006,14 @@ "Локальное среднее — медленнее. Может давать лучший результат в сравнении c\n" "«Глобальное среднее» из-за использования соседних пикселей в качестве " "опорных.\n" -"Порог — быстрый, использует только значение порога в качестве статического " +"Порог — быстрый, использует только значение порога в качестве статического " "предела." -#: ../src/iop/defringe.c:422 +#: ../src/iop/defringe.c:424 msgid "radius for detecting fringe" msgstr "Радиус поиска каймы" -#: ../src/iop/defringe.c:425 +#: ../src/iop/defringe.c:427 msgid "threshold for defringe, higher values mean less defringing" msgstr "" "Порог устранения каймы. Чем выше значение, тем меньше устраняется кайма." @@ -15452,12 +16026,12 @@ msgid "reconstruct full RGB pixels from a sensor color filter array reading" msgstr "Преобразование данных сенсора в представление RGB" -#: ../src/iop/demosaic.c:1086 +#: ../src/iop/demosaic.c:1133 #, c-format msgid "`%s' color matrix not found for 4bayer image!" msgstr "Цветовая матрица «%s» не найдена!" -#: ../src/iop/demosaic.c:1238 +#: ../src/iop/demosaic.c:1285 msgid "" "Bayer sensor demosaicing method, PPG and RCD are fast, AMaZE and LMMSE are " "slow.\n" @@ -15469,7 +16043,7 @@ "LMMSE лучше всего подходит для изображений с высоким ISO.\n" "двойные демозайсеры удваивают время обработки." -#: ../src/iop/demosaic.c:1242 +#: ../src/iop/demosaic.c:1289 msgid "" "X-Trans sensor demosaicing method, Markesteijn 3-pass and frequency domain " "chroma are slow.\n" @@ -15479,11 +16053,11 @@ "«Маркестейн, 3 прохода» и «Цвет. частотный интервал» медленные.\n" "Двойной алгоритм ещё медленнее." -#: ../src/iop/demosaic.c:1248 +#: ../src/iop/demosaic.c:1295 msgid "Bayer4 sensor demosaicing methods." msgstr "Алгоритмы демозаики для сенсоров, использующих фильтр Байера." -#: ../src/iop/demosaic.c:1252 +#: ../src/iop/demosaic.c:1299 msgid "" "threshold for edge-aware median.\n" "set to 0.0 to switch off\n" @@ -15493,7 +16067,7 @@ "установите на 0.0, чтобы выключить\n" "установите значение 1.0, чтобы игнорировать края" -#: ../src/iop/demosaic.c:1257 +#: ../src/iop/demosaic.c:1304 msgid "" "contrast threshold for dual demosaic.\n" "set to 0.0 for high frequency content\n" @@ -15504,7 +16078,7 @@ "установите на 0,0 для высокочастотного контента\n" "установите значение 1.0 для плоского контента" -#: ../src/iop/demosaic.c:1265 +#: ../src/iop/demosaic.c:1312 msgid "" "LMMSE refinement steps. the median steps average the output,\n" "refine adds some recalculation of red & blue channels" @@ -15512,89 +16086,89 @@ "Этапы уточнения LMMSE. средние шаги усредняют результат,\n" "Refine добавляет некоторый пересчет красного и синего каналов" -#: ../src/iop/demosaic.c:1268 +#: ../src/iop/demosaic.c:1315 msgid "how many color smoothing median steps after demosaicing" msgstr "Количество шагов цветового сглаживания после дебайеризации" -#: ../src/iop/demosaic.c:1271 +#: ../src/iop/demosaic.c:1318 msgid "green channels matching method" msgstr "Способ усреднения зелёного канала" -#: ../src/iop/demosaic.c:1278 +#: ../src/iop/demosaic.c:1325 msgid "demosaicing is only used for color raw images" msgstr "" "Дебайеризация необходима только\n" "для снимков в Raw" -#: ../src/iop/denoiseprofile.c:714 +#: ../src/iop/denoiseprofile.c:766 msgid "wavelets: chroma only" msgstr "Вейвлеты (цветностный канал)" -#: ../src/iop/denoiseprofile.c:720 +#: ../src/iop/denoiseprofile.c:772 msgid "denoise (profiled)" msgstr "Шумоподавление (профиль)" -#: ../src/iop/denoiseprofile.c:726 +#: ../src/iop/denoiseprofile.c:778 msgid "denoise using noise statistics profiled on sensors" msgstr "" "Шумоподавление с использованием профиля, подготовленного для конкретного " "сенсора" -#: ../src/iop/denoiseprofile.c:2846 +#: ../src/iop/denoiseprofile.c:2850 #, c-format msgid "found match for ISO %d" msgstr "ISO %d" -#: ../src/iop/denoiseprofile.c:2855 +#: ../src/iop/denoiseprofile.c:2859 #, c-format msgid "interpolated from ISO %d and %d" msgstr "Интерполяция между ISO %d и %d" -#: ../src/iop/denoiseprofile.c:3719 +#: ../src/iop/denoiseprofile.c:3723 msgid "Y0" msgstr "Y0" -#: ../src/iop/denoiseprofile.c:3720 +#: ../src/iop/denoiseprofile.c:3724 msgid "U0V0" msgstr "U0V0" -#: ../src/iop/denoiseprofile.c:3760 +#: ../src/iop/denoiseprofile.c:3764 msgid "" "use only with a perfectly\n" "uniform image if you want to\n" "estimate the noise variance." msgstr "Вычисление дисперсии шума" -#: ../src/iop/denoiseprofile.c:3766 +#: ../src/iop/denoiseprofile.c:3770 msgid "variance red: " msgstr "Дисперсия (красный): " -#: ../src/iop/denoiseprofile.c:3770 +#: ../src/iop/denoiseprofile.c:3774 msgid "variance computed on the red channel" msgstr "Дисперсия в красном канале" -#: ../src/iop/denoiseprofile.c:3775 +#: ../src/iop/denoiseprofile.c:3779 msgid "variance green: " msgstr "Дисперсия (зелёный): " -#: ../src/iop/denoiseprofile.c:3779 +#: ../src/iop/denoiseprofile.c:3783 msgid "variance computed on the green channel" msgstr "Дисперсия в зелёном канале" -#: ../src/iop/denoiseprofile.c:3784 +#: ../src/iop/denoiseprofile.c:3788 msgid "variance blue: " msgstr "Дисперсия (синий): " -#: ../src/iop/denoiseprofile.c:3788 +#: ../src/iop/denoiseprofile.c:3792 msgid "variance computed on the blue channel" msgstr "Дисперсия в голубом канале" -#: ../src/iop/denoiseprofile.c:3799 ../src/libs/export.c:1208 +#: ../src/iop/denoiseprofile.c:3803 ../src/libs/export.c:1320 #: ../src/libs/print_settings.c:2418 ../src/libs/print_settings.c:2774 msgid "profile" msgstr "Профиль" -#: ../src/iop/denoiseprofile.c:3833 +#: ../src/iop/denoiseprofile.c:3837 msgid "" "adapt denoising according to the\n" "white balance coefficients.\n" @@ -15609,7 +16183,7 @@ "использовался с одним из цветовых режимов \n" "смешивания." -#: ../src/iop/denoiseprofile.c:3840 +#: ../src/iop/denoiseprofile.c:3844 msgid "" "fix bugs in Anscombe transform resulting\n" "in undersmoothing of the green channel in\n" @@ -15630,11 +16204,11 @@ "После включения этой опции вы уже не сможете\n" "вернуться к старому режиму работы." -#: ../src/iop/denoiseprofile.c:3850 +#: ../src/iop/denoiseprofile.c:3854 msgid "profile used for variance stabilization" msgstr "Используемый профиль шумоподавления" -#: ../src/iop/denoiseprofile.c:3852 +#: ../src/iop/denoiseprofile.c:3856 msgid "" "method used in the denoising core.\n" "non-local means works best for `lightness' blending,\n" @@ -15643,7 +16217,7 @@ "Алгоритм шумоподавления. «Нелокальные средние» лучше сочетается с режимом " "смешивания «Светлота», а «Вейвлеты» c режимом «Цвет»." -#: ../src/iop/denoiseprofile.c:3856 +#: ../src/iop/denoiseprofile.c:3860 msgid "" "color representation used within the algorithm.\n" "RGB keeps the RGB channels separated,\n" @@ -15655,7 +16229,7 @@ "Y0U0V0 объединяет цветностные каналы и обрабатывает\n" "их отдельно от яркостных." -#: ../src/iop/denoiseprofile.c:3861 +#: ../src/iop/denoiseprofile.c:3865 msgid "" "radius of the patches to match.\n" "increase for more sharpness on strong edges, and better denoising of smooth " @@ -15668,7 +16242,7 @@ "шумоподавления в монотонных областях изображения.\n" "Уменьшите, если детализация недостаточна." -#: ../src/iop/denoiseprofile.c:3867 +#: ../src/iop/denoiseprofile.c:3871 msgid "" "emergency use only: radius of the neighborhood to search patches in. " "increase for better denoising performance, but watch the long runtimes! " @@ -15678,7 +16252,7 @@ "шумоподавления. Однако время выполнения операции при этом значительно " "возрастёт." -#: ../src/iop/denoiseprofile.c:3873 +#: ../src/iop/denoiseprofile.c:3877 msgid "" "scattering of the neighborhood to search patches in.\n" "increase for better coarse-grain noise reduction.\n" @@ -15687,7 +16261,7 @@ "Разброс поиска образцов. Увеличьте для лучшего подавления крупнозернистого " "шума. Время выполнения операции не изменится." -#: ../src/iop/denoiseprofile.c:3877 +#: ../src/iop/denoiseprofile.c:3881 msgid "" "increase the weight of the central pixel\n" "of the patch in the patch comparison.\n" @@ -15698,11 +16272,11 @@ "Используйте для восстановления деталей, если \n" "размер образца достаточно велик." -#: ../src/iop/denoiseprofile.c:3881 +#: ../src/iop/denoiseprofile.c:3885 msgid "finetune denoising strength" msgstr "Точная настройка интенсивности шумоподавления" -#: ../src/iop/denoiseprofile.c:3883 +#: ../src/iop/denoiseprofile.c:3887 msgid "" "controls the way parameters are autoset\n" "increase if shadows are not denoised enough\n" @@ -15713,7 +16287,7 @@ "Увеличьте для лучшего шумоподавления\n" "в тенях или в цветностных каналах." -#: ../src/iop/denoiseprofile.c:3888 +#: ../src/iop/denoiseprofile.c:3892 msgid "" "finetune shadows denoising.\n" "decrease to denoise more aggressively\n" @@ -15723,7 +16297,7 @@ "Уменьшите значение для достижения более \n" "выраженного эффекта в нижних частях диапазона." -#: ../src/iop/denoiseprofile.c:3892 +#: ../src/iop/denoiseprofile.c:3896 msgid "" "correct color cast in shadows.\n" "decrease if shadows are too purple.\n" @@ -15733,7 +16307,7 @@ "Увеличьте значение, если тени слишком пурпурные.\n" "Уменьшите значение, если тени слишком зелёные." -#: ../src/iop/denoiseprofile.c:3896 +#: ../src/iop/denoiseprofile.c:3900 msgid "" "upgrade the variance stabilizing algorithm.\n" "new algorithm extends the current one.\n" @@ -15765,80 +16339,80 @@ "или удалить размытие с помощью слепой деконволюции." #. deblurring presets -#: ../src/iop/diffuse.c:219 +#: ../src/iop/diffuse.c:246 msgid "lens deblur: soft" msgstr "Размытие объектива: мягкое" -#: ../src/iop/diffuse.c:244 +#: ../src/iop/diffuse.c:271 msgid "lens deblur: medium" msgstr "Размытие объектива: среднее" -#: ../src/iop/diffuse.c:269 +#: ../src/iop/diffuse.c:296 msgid "lens deblur: hard" msgstr "Размытие объектива: жесткое" -#: ../src/iop/diffuse.c:295 +#: ../src/iop/diffuse.c:322 msgid "dehaze" msgstr "Растушевывать" -#: ../src/iop/diffuse.c:321 +#: ../src/iop/diffuse.c:348 msgid "denoise: fine" msgstr "Шумоподавление: хорошее" -#: ../src/iop/diffuse.c:346 +#: ../src/iop/diffuse.c:373 msgid "denoise: medium" msgstr "Шумоподавление: среднее" -#: ../src/iop/diffuse.c:371 +#: ../src/iop/diffuse.c:398 msgid "denoise: coarse" msgstr "Шумоподавитель: грубое" -#: ../src/iop/diffuse.c:446 +#: ../src/iop/diffuse.c:473 msgid "sharpen demosaicing: no AA filter" msgstr "Повысить резкость демозаики (без фильтра AA)" -#: ../src/iop/diffuse.c:472 +#: ../src/iop/diffuse.c:499 msgid "sharpen demosaicing: AA filter" msgstr "Повысить резкость демозаики (фильтр AA)" -#: ../src/iop/diffuse.c:499 +#: ../src/iop/diffuse.c:526 msgid "simulate watercolor" msgstr "Имитировать акварель" -#: ../src/iop/diffuse.c:524 +#: ../src/iop/diffuse.c:551 msgid "simulate line drawing" msgstr "Имитировать рисование линий" -#: ../src/iop/diffuse.c:576 +#: ../src/iop/diffuse.c:603 msgid "inpaint highlights" msgstr "Раскрасить основные моменты" #. fast presets for slow hardware -#: ../src/iop/diffuse.c:603 +#: ../src/iop/diffuse.c:630 msgid "sharpness: fast" msgstr "Резкость (быстр.)" -#: ../src/iop/diffuse.c:655 +#: ../src/iop/diffuse.c:682 msgid "sharpness: strong" msgstr "Повышенная резкость" -#: ../src/iop/diffuse.c:680 +#: ../src/iop/diffuse.c:707 msgid "local contrast: fast" msgstr "Локальный контраст (быстр.)" -#: ../src/iop/diffuse.c:1391 ../src/iop/diffuse.c:1666 +#: ../src/iop/diffuse.c:1418 ../src/iop/diffuse.c:1693 msgid "diffuse/sharpen failed to allocate memory, check your RAM settings" msgstr "Diffuse/sharpen не удалось выделить память, проверьте настройки ОЗУ." #. Additional parameters #. Camera settings -#: ../src/iop/diffuse.c:1782 ../src/iop/splittoning.c:537 +#: ../src/iop/diffuse.c:1797 ../src/iop/splittoning.c:533 #: ../src/libs/camera.c:486 msgctxt "section" msgid "properties" msgstr "Параметры" -#: ../src/iop/diffuse.c:1788 +#: ../src/iop/diffuse.c:1803 msgid "" "more iterations make the effect stronger but the module slower.\n" "this is analogous to giving more time to the diffusion reaction.\n" @@ -15850,7 +16424,7 @@ "если вы планируете повысить резкость или закрашивать, больше итераций " "поможет реконструкции." -#: ../src/iop/diffuse.c:1797 +#: ../src/iop/diffuse.c:1812 msgid "" "main scale of the diffusion.\n" "zero makes diffusion act on the finest details more heavily.\n" @@ -15864,7 +16438,7 @@ "для удаления размытия и шумоподавления установите на ноль.\n" "увеличить вместо этого, чтобы воздействовать на локальный контраст." -#: ../src/iop/diffuse.c:1807 +#: ../src/iop/diffuse.c:1822 msgid "" "width of the diffusion around the central radius.\n" "high values diffuse on a large band of radii.\n" @@ -15878,12 +16452,12 @@ "если вы планируете удаление размытия, радиус должен быть примерно равен " "ширине размытия объектива." -#: ../src/iop/diffuse.c:1814 +#: ../src/iop/diffuse.c:1829 msgctxt "section" msgid "speed (sharpen ↔ diffuse)" msgstr "Скорость (резкость ↔ диффузия)" -#: ../src/iop/diffuse.c:1821 +#: ../src/iop/diffuse.c:1836 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 1st order anisotropy (set below).\n" @@ -15899,7 +16473,7 @@ "положительные значения размывают, \n" "ноль не производит никаких действий." -#: ../src/iop/diffuse.c:1831 +#: ../src/iop/diffuse.c:1846 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 2nd order anisotropy (set below).\n" @@ -15915,7 +16489,7 @@ "положительные значения размывают, \n" "ноль не производит никаких действий." -#: ../src/iop/diffuse.c:1841 +#: ../src/iop/diffuse.c:1856 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 3rd order anisotropy (set below).\n" @@ -15931,7 +16505,7 @@ "положительные значения размывают, \n" "ноль не производит никаких действий." -#: ../src/iop/diffuse.c:1851 +#: ../src/iop/diffuse.c:1866 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 4th order anisotropy (set below).\n" @@ -15947,12 +16521,12 @@ "положительные значения размывают, \n" "ноль не производит никаких действий." -#: ../src/iop/diffuse.c:1857 +#: ../src/iop/diffuse.c:1872 msgctxt "section" msgid "direction" msgstr "Направление" -#: ../src/iop/diffuse.c:1864 +#: ../src/iop/diffuse.c:1879 msgid "" "direction of 1st order speed (set above).\n" "\n" @@ -15966,7 +16540,7 @@ "Положительные значения избегают краев (изофоты), \n" "Ноль влияет одинаково (изотропно)." -#: ../src/iop/diffuse.c:1873 +#: ../src/iop/diffuse.c:1888 msgid "" "direction of 2nd order speed (set above).\n" "\n" @@ -15980,7 +16554,7 @@ "Положительные значения избегают краев (изофоты), \n" "Ноль влияет одинаково (изотропно)." -#: ../src/iop/diffuse.c:1882 +#: ../src/iop/diffuse.c:1897 msgid "" "direction of 3rd order speed (set above).\n" "\n" @@ -15994,7 +16568,7 @@ "Положительные значения избегают краев (изофоты), \n" "Ноль влияет одинаково (изотропно)." -#: ../src/iop/diffuse.c:1891 +#: ../src/iop/diffuse.c:1906 msgid "" "direction of 4th order speed (set above).\n" "\n" @@ -16008,12 +16582,12 @@ "Положительные значения избегают краев (изофоты), \n" "Ноль влияет одинаково (изотропно)." -#: ../src/iop/diffuse.c:1897 +#: ../src/iop/diffuse.c:1912 msgctxt "section" msgid "edge management" msgstr "Управление краями" -#: ../src/iop/diffuse.c:1904 +#: ../src/iop/diffuse.c:1919 msgid "" "increase or decrease the sharpness of the highest frequencies.\n" "can be used to keep details after blooming,\n" @@ -16023,7 +16597,7 @@ "Может использоваться для сохранения деталей после их восстановления,\n" "для автономной резкости установите отрицательные значения для скорости." -#: ../src/iop/diffuse.c:1911 +#: ../src/iop/diffuse.c:1926 msgid "" "define the sensitivity of the variance penalty for edges.\n" "increase to exclude more edges from diffusion,\n" @@ -16033,7 +16607,7 @@ "увеличить, чтобы исключить больше ребер из диффузии,\n" "если появляются полосы или ореолы." -#: ../src/iop/diffuse.c:1918 +#: ../src/iop/diffuse.c:1933 msgid "" "define the variance threshold between edge amplification and penalty.\n" "decrease if you want pixels on smooth surfaces get a boost,\n" @@ -16047,12 +16621,12 @@ "если темные области кажутся чрезмерно резкими по сравнению с яркими " "областями." -#: ../src/iop/diffuse.c:1924 +#: ../src/iop/diffuse.c:1939 msgctxt "section" msgid "diffusion spatiality" msgstr "Диффузионная пространственность" -#: ../src/iop/diffuse.c:1931 +#: ../src/iop/diffuse.c:1946 msgid "" "luminance threshold for the mask.\n" "0. disables the luminance masking and applies the module on the whole " @@ -16071,7 +16645,7 @@ msgstr "Подмешать шум или постеризировать" #: ../src/iop/dither.c:112 -msgid "dithering|posterization|reduce bit-depth" +msgid "dithering|posterization|reduce bit depth" msgstr "Подмешивание шума|постеризация|уменьшение битовой глубины" #: ../src/iop/dither.c:117 @@ -16087,23 +16661,23 @@ msgstr "Коррекция, креативный" #. add the preset. -#: ../src/iop/dither.c:147 +#: ../src/iop/dither.c:149 msgid "dither" msgstr "Подмешивание шума" -#: ../src/iop/dither.c:759 +#: ../src/iop/dither.c:761 msgid "radius for blurring step" msgstr "Радиус шага размытия" -#: ../src/iop/dither.c:771 +#: ../src/iop/dither.c:773 msgid "the gradient range where to apply random dither" msgstr "Градиентный диапазон, где применяется случайное подмешивание шума" -#: ../src/iop/dither.c:772 +#: ../src/iop/dither.c:774 msgid "gradient range" msgstr "Градиентный диапазон" -#: ../src/iop/dither.c:780 +#: ../src/iop/dither.c:782 msgid "damping level of random dither" msgstr "Уровень гашения случайного подмешивания шума" @@ -16111,14 +16685,14 @@ msgid "legacy equalizer" msgstr "Старый эквалайзер" -#: ../src/iop/equalizer.c:110 +#: ../src/iop/equalizer.c:112 msgid "" "this module is deprecated. better use contrast equalizer module instead." msgstr "" "Этот модуль объявлен устаревшим.\n" "Используйте модуль «Эквалайзер контраста»." -#: ../src/iop/equalizer.c:238 +#: ../src/iop/equalizer.c:240 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -16134,61 +16708,61 @@ "using a color-safe brightening similar to increasing ISO setting" msgstr "Экспокоррекция изображения" -#: ../src/iop/exposure.c:279 +#: ../src/iop/exposure.c:301 msgid "magic lantern defaults" msgstr "Значения по умолчанию из Magic Lantern" -#: ../src/iop/exposure.c:351 ../src/iop/rawoverexposed.c:135 -#: ../src/iop/rawoverexposed.c:254 +#: ../src/iop/exposure.c:373 ../src/iop/rawoverexposed.c:137 +#: ../src/iop/rawoverexposed.c:256 #, c-format msgid "failed to get raw buffer from image `%s'" msgstr "Ошибка получения Raw буфера для снимка «%s»!" -#: ../src/iop/exposure.c:629 +#: ../src/iop/exposure.c:647 #, no-c-format msgid "compensate camera exposure (%+.1f EV)" msgstr "Компенсация экспокоррекции (%+.1f EV)" #. Write report in GUI -#: ../src/iop/exposure.c:813 +#: ../src/iop/exposure.c:831 #, c-format msgid "L : \t%.1f %%" msgstr "L : \t%.1f %%" -#: ../src/iop/exposure.c:945 ../src/libs/history.c:953 +#: ../src/iop/exposure.c:963 ../src/libs/history.c:953 #, c-format msgid "%.2f EV" msgstr "%.2f EV" -#: ../src/iop/exposure.c:1113 +#: ../src/iop/exposure.c:1131 msgid "" "automatically remove the camera exposure bias\n" "this is useful if you exposed the image to the right." msgstr "Компенсация экспокоррекции камеры" -#: ../src/iop/exposure.c:1132 +#: ../src/iop/exposure.c:1150 #, no-c-format msgid "where in the histogram to meter for deflicking. E.g. 50% is median" msgstr "" "Положение в гистограмме для измерения экспозиции. Например, 50% обозначает " "медиану." -#: ../src/iop/exposure.c:1138 +#: ../src/iop/exposure.c:1156 msgid "" "where to place the exposure level for processed pics, EV below overexposure." msgstr "" "Значение экспозиции, выставляемое для обрабатываемых снимков. EV ниже точки " "пересвета." -#: ../src/iop/exposure.c:1142 +#: ../src/iop/exposure.c:1160 msgid "computed EC: " msgstr "Рассчитанная экспокоррекция: " -#: ../src/iop/exposure.c:1145 +#: ../src/iop/exposure.c:1163 msgid "what exposure correction has actually been used" msgstr "Применённая экспокоррекция" -#: ../src/iop/exposure.c:1164 +#: ../src/iop/exposure.c:1182 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -16196,11 +16770,11 @@ "by pushing RGB values into negatives." msgstr "Коррекция уровня чёрного для устранения клиппинга в тенях" -#: ../src/iop/exposure.c:1174 -msgid "spot exposure mapping" +#: ../src/iop/exposure.c:1192 +msgid "area exposure mapping" msgstr "Отображение экспозиции" -#: ../src/iop/exposure.c:1180 +#: ../src/iop/exposure.c:1198 msgid "" "define a target brightness, in terms of exposure,\n" "for a selected region of the image (the control sample),\n" @@ -16216,7 +16790,7 @@ "неподвижной\n" "и постоянно освещенной поверхностью в серии изображений." -#: ../src/iop/exposure.c:1189 +#: ../src/iop/exposure.c:1207 msgid "" "\"correction\" automatically adjust exposure\n" "such that the input lightness is mapped to the target.\n" @@ -16228,11 +16802,11 @@ "\"Измерение\" показывает, как сопоставляется исходный цвет\n" "и может использоваться для определения целевого." -#: ../src/iop/exposure.c:1215 +#: ../src/iop/exposure.c:1233 msgid "L : \tN/A" msgstr "L : Н/Д" -#: ../src/iop/exposure.c:1233 +#: ../src/iop/exposure.c:1251 msgid "the desired target exposure after mapping" msgstr "Желаемая экспозиция после сопоставления" @@ -16242,52 +16816,52 @@ "Этот модуль объявлен устаревшим.\n" "Используйте модуль «Плёночная тональная кривая RGB»." -#: ../src/iop/filmic.c:304 +#: ../src/iop/filmic.c:333 msgid "09 EV (low-key)" msgstr "09 EV (низкий ключ)" -#: ../src/iop/filmic.c:312 +#: ../src/iop/filmic.c:341 msgid "10 EV (indoors)" msgstr "10 EV (внутри помещения)" -#: ../src/iop/filmic.c:320 +#: ../src/iop/filmic.c:349 msgid "11 EV (dim outdoors)" msgstr "11 EV (наружн. освещение, туманный день)" -#: ../src/iop/filmic.c:328 +#: ../src/iop/filmic.c:357 msgid "12 EV (outdoors)" msgstr "12 EV (наружн. освещения)" -#: ../src/iop/filmic.c:336 +#: ../src/iop/filmic.c:365 msgid "13 EV (bright outdoors)" msgstr "13 EV (наружн. освещение, яркий день)" -#: ../src/iop/filmic.c:344 +#: ../src/iop/filmic.c:373 msgid "14 EV (backlighting)" msgstr "14 EV (свет в камеру)" -#: ../src/iop/filmic.c:352 +#: ../src/iop/filmic.c:381 msgid "15 EV (sunset)" msgstr "15 EV (закат)" -#: ../src/iop/filmic.c:360 +#: ../src/iop/filmic.c:389 msgid "16 EV (HDR)" msgstr "16 EV (HDR)" -#: ../src/iop/filmic.c:368 +#: ../src/iop/filmic.c:397 msgid "18 EV (HDR++)" msgstr "18 EV (HDR++)" -#: ../src/iop/filmic.c:1480 +#: ../src/iop/filmic.c:1505 msgid "read-only graph, use the parameters below to set the nodes" msgstr "Кривая отображает текущие настройки модуля" -#: ../src/iop/filmic.c:1484 +#: ../src/iop/filmic.c:1509 msgctxt "section" msgid "logarithmic shaper" msgstr "Логарифмическая кривая" -#: ../src/iop/filmic.c:1492 +#: ../src/iop/filmic.c:1517 msgid "" "adjust to match the average luminance of the subject.\n" "except in back-lighting situations, this should be around 18%." @@ -16295,14 +16869,14 @@ "Коррекция серой точки. Значения, отличные от 18%, могут быть полезны при " "съёмке тёмного объекта на светлом фоне." -#: ../src/iop/filmic.c:1504 ../src/iop/filmicrgb.c:4442 +#: ../src/iop/filmic.c:1529 ../src/iop/filmicrgb.c:4506 msgid "" "number of stops between middle gray and pure white.\n" "this is a reading a lightmeter would give you on the scene.\n" "adjust so highlights clipping is avoided" msgstr "Диапазон между серой точкой и чистым белым" -#: ../src/iop/filmic.c:1517 ../src/iop/filmicrgb.c:4453 +#: ../src/iop/filmic.c:1542 ../src/iop/filmicrgb.c:4517 msgid "" "number of stops between middle gray and pure black.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16310,20 +16884,20 @@ "decrease to recover more details in low-lights." msgstr "Диапазон между серой точкой и абсолютно чёрным" -#: ../src/iop/filmic.c:1529 +#: ../src/iop/filmic.c:1554 msgid "" -"enlarge or shrink the computed dynamic range.\n" +"increase or decrease the computed dynamic range.\n" "useful in conjunction with \"auto tune levels\"." msgstr "" "Относительное изменение широты динамического диапазона.\n" "Полезно с функцией автоматического расчёта уровней." -#: ../src/iop/filmic.c:1535 ../src/iop/filmicrgb.c:4467 -#: ../src/iop/profile_gamma.c:659 +#: ../src/iop/filmic.c:1560 ../src/iop/filmicrgb.c:4531 +#: ../src/iop/profile_gamma.c:673 msgid "auto tune levels" msgstr "Автоуровни" -#: ../src/iop/filmic.c:1538 +#: ../src/iop/filmic.c:1563 msgid "" "try to optimize the settings with some guessing.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16331,24 +16905,24 @@ "but fails for high-keys and low-keys." msgstr "Автоматическая настройка по каналу светлоты и границам гистограммы" -#: ../src/iop/filmic.c:1543 +#: ../src/iop/filmic.c:1568 msgctxt "section" msgid "filmic S curve" msgstr "S-подобная кривая" -#: ../src/iop/filmic.c:1550 ../src/iop/filmicrgb.c:4554 +#: ../src/iop/filmic.c:1575 ../src/iop/filmicrgb.c:4618 msgid "" "slope of the linear part of the curve\n" "affects mostly the mid-tones" msgstr "Крутизна наклона линейной части кривой (контраст)" #. geotagging -#: ../src/iop/filmic.c:1557 ../src/iop/filmicrgb.c:4563 -#: ../src/libs/metadata_view.c:157 +#: ../src/iop/filmic.c:1582 ../src/iop/filmicrgb.c:4627 +#: ../src/libs/metadata_view.c:161 msgid "latitude" msgstr "Широта" -#: ../src/iop/filmic.c:1560 +#: ../src/iop/filmic.c:1585 msgid "" "width of the linear domain in the middle of the curve.\n" "increase to get more contrast at the extreme luminances.\n" @@ -16357,11 +16931,11 @@ "Размер линейной части кривой. Увеличьте значение для достижения\n" "более выраженного контраста в верхних и нижних частях диапазона." -#: ../src/iop/filmic.c:1567 +#: ../src/iop/filmic.c:1592 msgid "shadows/highlights balance" msgstr "Тени и света" -#: ../src/iop/filmic.c:1570 ../src/iop/filmicrgb.c:4574 +#: ../src/iop/filmic.c:1595 ../src/iop/filmicrgb.c:4638 msgid "" "slides the latitude along the slope\n" "to give more room to shadows or highlights.\n" @@ -16369,7 +16943,7 @@ "at one extremity of the histogram." msgstr "Баланс между тенями и светами" -#: ../src/iop/filmic.c:1580 +#: ../src/iop/filmic.c:1605 msgid "" "desaturates the input of the module globally.\n" "you need to set this value below 100%\n" @@ -16378,7 +16952,7 @@ "Общая насыщенность. Выберите значение ниже 100%,\n" "если указан параметр сохранения цветности." -#: ../src/iop/filmic.c:1590 +#: ../src/iop/filmic.c:1615 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16389,41 +16963,41 @@ "большую насыщенность." #. Add export intent combo -#: ../src/iop/filmic.c:1600 ../src/libs/export.c:1227 +#: ../src/iop/filmic.c:1625 ../src/libs/export.c:1339 #: ../src/libs/print_settings.c:2473 ../src/libs/print_settings.c:2820 -#: ../src/views/darkroom.c:2524 ../src/views/lighttable.c:1182 +#: ../src/views/darkroom.c:2365 ../src/views/lighttable.c:1182 msgid "intent" msgstr "Цветопередача" -#: ../src/iop/filmic.c:1601 +#: ../src/iop/filmic.c:1626 msgid "contrasted" msgstr "Контрастная" #. cubic spline -#: ../src/iop/filmic.c:1602 +#: ../src/iop/filmic.c:1627 msgid "faded" msgstr "Блеклая" #. centripetal spline -#: ../src/iop/filmic.c:1603 ../src/iop/profile_gamma.c:621 +#: ../src/iop/filmic.c:1628 ../src/iop/profile_gamma.c:635 msgid "linear" msgstr "Линейный график" #. monotonic spline -#: ../src/iop/filmic.c:1604 +#: ../src/iop/filmic.c:1629 msgid "optimized" msgstr "Оптимизированная" -#: ../src/iop/filmic.c:1606 +#: ../src/iop/filmic.c:1631 msgid "change this method if you see reversed contrast or faded blacks" msgstr "Измените, если видите обратный контраст или блеклые тени" #. Preserve color -#: ../src/iop/filmic.c:1610 +#: ../src/iop/filmic.c:1635 msgid "preserve the chrominance" msgstr "Сохранять цветность" -#: ../src/iop/filmic.c:1612 +#: ../src/iop/filmic.c:1637 msgid "" "ensure the original color are preserved.\n" "may reinforce chromatic aberrations.\n" @@ -16432,18 +17006,18 @@ "Сохранять оригинальные цвета.\n" "Может чрезмерно усиливать цветность или хроматические аберрации." -#: ../src/iop/filmic.c:1622 +#: ../src/iop/filmic.c:1647 msgctxt "section" msgid "destination/display" msgstr "Конечное изображение" -#: ../src/iop/filmic.c:1640 ../src/iop/filmicrgb.c:4593 +#: ../src/iop/filmic.c:1665 ../src/iop/filmicrgb.c:4657 msgid "" "luminance of output pure black, this should be 0%\n" "except if you want a faded look" msgstr "Значения, отличные от 0%, высветляют тёмные элементы изображения" -#: ../src/iop/filmic.c:1649 ../src/iop/filmicrgb.c:4600 +#: ../src/iop/filmic.c:1674 ../src/iop/filmicrgb.c:4664 msgid "" "middle gray value of the target display or color space.\n" "you should never touch that unless you know what you are doing." @@ -16451,17 +17025,17 @@ "Значения, отличные от 18%, сдвигают баланс серого в светлую или тёмную " "сторону" -#: ../src/iop/filmic.c:1658 ../src/iop/filmicrgb.c:4607 +#: ../src/iop/filmic.c:1683 ../src/iop/filmicrgb.c:4671 msgid "" "luminance of output pure white, this should be 100%\n" "except if you want a faded look" msgstr "Значения, отличные от 100%, затемняют светлые элементы изображения" -#: ../src/iop/filmic.c:1664 +#: ../src/iop/filmic.c:1689 msgid "target gamma" msgstr "Целевая геометрия" -#: ../src/iop/filmic.c:1666 +#: ../src/iop/filmic.c:1691 msgid "" "power or gamma of the transfer function\n" "of the display or color space.\n" @@ -16486,7 +17060,7 @@ "применения настраиваемой тональной кривой, имитирующей тоновоспроизведение " "плёнки" -#: ../src/iop/filmicrgb.c:1310 +#: ../src/iop/filmicrgb.c:1365 msgid "" "filmic highlights reconstruction failed to allocate memory, check your RAM " "settings" @@ -16494,73 +17068,73 @@ "Плёночная тональная кривая RGB: ошибка выделения памяти! Проверьте настройки " "памяти." -#: ../src/iop/filmicrgb.c:2301 +#: ../src/iop/filmicrgb.c:2369 msgid "filmic highlights reconstruction failed to allocate memory on GPU" msgstr "" "Плёночная тональная кривая RGB: ошибка выделения памяти! Проверьте настройки " "памяти." -#: ../src/iop/filmicrgb.c:2419 +#: ../src/iop/filmicrgb.c:2487 msgid "filmic works only on RGB input" msgstr "Плёночная тональная кривая RGB работает только с данными в формате RGB" -#: ../src/iop/filmicrgb.c:3484 +#: ../src/iop/filmicrgb.c:3548 msgid "look only" msgstr "Кривая преобразования" -#: ../src/iop/filmicrgb.c:3486 +#: ../src/iop/filmicrgb.c:3550 msgid "look + mapping (lin)" msgstr "Линейн. масштабирование" -#: ../src/iop/filmicrgb.c:3488 +#: ../src/iop/filmicrgb.c:3552 msgid "look + mapping (log)" msgstr "Логарифмич. масштабирование" -#: ../src/iop/filmicrgb.c:3490 +#: ../src/iop/filmicrgb.c:3554 msgid "dynamic range mapping" msgstr "Преобразование динамич. диапазона" -#: ../src/iop/filmicrgb.c:3857 +#: ../src/iop/filmicrgb.c:3921 #, c-format msgid "(%.0f %%)" msgstr "(%.0f %%)" -#: ../src/iop/filmicrgb.c:3873 +#: ../src/iop/filmicrgb.c:3937 #, no-c-format msgid "% display" msgstr "Выход, %" -#: ../src/iop/filmicrgb.c:3885 +#: ../src/iop/filmicrgb.c:3949 msgid "EV scene" msgstr "Вход, EV" -#: ../src/iop/filmicrgb.c:3889 +#: ../src/iop/filmicrgb.c:3953 #, no-c-format msgid "% camera" msgstr "Камера, %" #. Page DISPLAY -#: ../src/iop/filmicrgb.c:3925 ../src/iop/filmicrgb.c:4587 +#: ../src/iop/filmicrgb.c:3989 ../src/iop/filmicrgb.c:4651 msgid "display" msgstr "Выход" #. axis legend -#: ../src/iop/filmicrgb.c:3934 +#: ../src/iop/filmicrgb.c:3998 msgid "(%)" msgstr "(%)" #. Page SCENE -#: ../src/iop/filmicrgb.c:3943 ../src/iop/filmicrgb.c:4422 +#: ../src/iop/filmicrgb.c:4007 ../src/iop/filmicrgb.c:4486 msgid "scene" msgstr "Вход" #. axis legend -#: ../src/iop/filmicrgb.c:3952 +#: ../src/iop/filmicrgb.c:4016 msgid "(EV)" msgstr "(EV)" #. we are over the graph area -#: ../src/iop/filmicrgb.c:4364 +#: ../src/iop/filmicrgb.c:4428 msgid "" "use the parameters below to set the nodes.\n" "the bright curve is the filmic tone mapping curve\n" @@ -16569,11 +17143,11 @@ "Светлая кривая отображает преобразование тонов.\n" "Тёмная кривая отображает преобразование насыщенности." -#: ../src/iop/filmicrgb.c:4370 +#: ../src/iop/filmicrgb.c:4434 msgid "toggle axis labels and values display" msgstr "Переключить метки осей и отображение значений" -#: ../src/iop/filmicrgb.c:4374 +#: ../src/iop/filmicrgb.c:4438 msgid "" "cycle through graph views.\n" "left click: cycle forward.\n" @@ -16585,7 +17159,7 @@ "Щелчок правой кнопкой мыши для перехода к предыдущему.\n" "Двойной щелчок сбрасывает изменения." -#: ../src/iop/filmicrgb.c:4431 +#: ../src/iop/filmicrgb.c:4495 #, no-c-format msgid "" "adjust to match the average luminance of the image's subject.\n" @@ -16595,13 +17169,13 @@ "Коррекция серой точки.\n" "Уменьшите значение для увеличения яркости изображения." -#: ../src/iop/filmicrgb.c:4461 +#: ../src/iop/filmicrgb.c:4525 msgid "" -"symmetrically enlarge or shrink the computed dynamic range.\n" +"symmetrically increase or decrease the computed dynamic range.\n" "useful to give a safety margin to extreme luminances." msgstr "Изменение широты динамического диапазона" -#: ../src/iop/filmicrgb.c:4468 +#: ../src/iop/filmicrgb.c:4532 msgid "" "try to optimize the settings with some statistical assumptions.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16614,16 +17188,16 @@ "светлоты в пределы гистограммы" #. Page RECONSTRUCT -#: ../src/iop/filmicrgb.c:4477 +#: ../src/iop/filmicrgb.c:4541 msgid "reconstruct" msgstr "Восстановление" -#: ../src/iop/filmicrgb.c:4479 +#: ../src/iop/filmicrgb.c:4543 msgctxt "section" msgid "highlights clipping" msgstr "Восстановление пересветов" -#: ../src/iop/filmicrgb.c:4487 +#: ../src/iop/filmicrgb.c:4551 msgid "" "set the exposure threshold upon which\n" "clipped highlights get reconstructed.\n" @@ -16637,7 +17211,7 @@ "производится восстановление пересветов. Увеличение же\n" "значения уменьшает эту площадь." -#: ../src/iop/filmicrgb.c:4497 +#: ../src/iop/filmicrgb.c:4561 msgid "" "soften the transition between clipped highlights and valid pixels.\n" "decrease to make the transition harder and sharper,\n" @@ -16647,20 +17221,20 @@ "Уменьшите значение для более контрастного перехода. Увеличьте его для\n" "более плавного перехода." -#: ../src/iop/filmicrgb.c:4503 ../src/iop/filmicrgb.c:4504 +#: ../src/iop/filmicrgb.c:4567 ../src/iop/filmicrgb.c:4568 msgid "display highlight reconstruction mask" msgstr "Маска восстановления пересветов" -#: ../src/iop/filmicrgb.c:4511 +#: ../src/iop/filmicrgb.c:4575 msgctxt "section" msgid "balance" msgstr "Баланс" -#: ../src/iop/filmicrgb.c:4518 +#: ../src/iop/filmicrgb.c:4582 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between inpainting a smooth color gradient,\n" +"inpainting a smooth color gradient\n" "or trying to recover the textured details.\n" "0% is an equal mix of both.\n" "increase if at least one RGB channel is not clipped.\n" @@ -16671,11 +17245,11 @@ "один из каналов не подвергся клиппингу. Уменьшите его,\n" "если пиксели во всех каналах засвечены." -#: ../src/iop/filmicrgb.c:4529 +#: ../src/iop/filmicrgb.c:4593 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between blooming highlights like film does,\n" +"blooming highlights like film does\n" "or trying to recover sharp details.\n" "0% is an equal mix of both.\n" "increase if you want more details.\n" @@ -16686,11 +17260,11 @@ "необходимо сохранить больше деталей. Уменьшите его,\n" "если необходим эффект размытия." -#: ../src/iop/filmicrgb.c:4541 +#: ../src/iop/filmicrgb.c:4605 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between recovering monochromatic highlights,\n" +"recovering monochromatic highlights\n" "or trying to recover colorful highlights.\n" "0% is an equal mix of both.\n" "increase if you want more color.\n" @@ -16702,11 +17276,11 @@ "пурпурные пересветы." #. Page LOOK -#: ../src/iop/filmicrgb.c:4549 +#: ../src/iop/filmicrgb.c:4613 msgid "look" msgstr "Кривая" -#: ../src/iop/filmicrgb.c:4559 +#: ../src/iop/filmicrgb.c:4623 msgid "" "equivalent to paper grade in analog.\n" "increase to make highlights brighter and less compressed.\n" @@ -16715,7 +17289,7 @@ "Аналог качества бумаги при печати. Увеличьте для более ярких светов\n" "и уменьшения сжатия, уменьшите для более приглушённых светов." -#: ../src/iop/filmicrgb.c:4567 +#: ../src/iop/filmicrgb.c:4631 msgid "" "width of the linear domain in the middle of the curve,\n" "increase to get more contrast and less desaturation at extreme luminances,\n" @@ -16728,7 +17302,7 @@ "иначе уменьшить. в диапазоне широт не происходит десатурации.\n" "это не влияет на средние тона." -#: ../src/iop/filmicrgb.c:4582 ../src/iop/filmicrgb.c:4730 +#: ../src/iop/filmicrgb.c:4646 ../src/iop/filmicrgb.c:4794 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16739,11 +17313,11 @@ "слишком малую насыщенность." #. Page OPTIONS -#: ../src/iop/filmicrgb.c:4611 +#: ../src/iop/filmicrgb.c:4675 msgid "options" msgstr "Параметры" -#: ../src/iop/filmicrgb.c:4616 +#: ../src/iop/filmicrgb.c:4680 msgid "" "v3 is darktable 3.0 desaturation method, same as color balance.\n" "v4 is a newer desaturation method, based on spectral purity of light." @@ -16752,7 +17326,7 @@ "v4 в базируется на спектральной чистоте\n" "цвета и применяется в более новых версиях." -#: ../src/iop/filmicrgb.c:4620 +#: ../src/iop/filmicrgb.c:4684 msgid "" "ensure the original colors are preserved.\n" "may reinforce chromatic aberrations and chroma noise,\n" @@ -16761,21 +17335,21 @@ "Сохранять оригинальные цвета.\n" "Может чрезмерно усиливать цветовой шум или хроматические аберрации." -#: ../src/iop/filmicrgb.c:4629 +#: ../src/iop/filmicrgb.c:4693 msgid "" "choose the desired curvature of the filmic spline in highlights.\n" "hard uses a high curvature resulting in more tonal compression.\n" "soft uses a low curvature resulting in less tonal compression." msgstr "Крутизна кривой в светах" -#: ../src/iop/filmicrgb.c:4634 +#: ../src/iop/filmicrgb.c:4698 msgid "" "choose the desired curvature of the filmic spline in shadows.\n" "hard uses a high curvature resulting in more tonal compression.\n" "soft uses a low curvature resulting in less tonal compression." msgstr "Крутизна кривой в тенях" -#: ../src/iop/filmicrgb.c:4641 +#: ../src/iop/filmicrgb.c:4705 #, no-c-format msgid "" "enable to input custom middle-gray values.\n" @@ -16786,7 +17360,7 @@ "Включить возможность коррекции серой точки.\n" "Не рекомендуется, используйте модуль «Экспозиции»." -#: ../src/iop/filmicrgb.c:4648 +#: ../src/iop/filmicrgb.c:4712 msgid "" "enable to auto-set the look hardness depending on the scene white and black " "points.\n" @@ -16794,7 +17368,7 @@ "disable if you want a manual control." msgstr "Автонастройка резкости перехода исходя из белой и чёрной точек" -#: ../src/iop/filmicrgb.c:4654 +#: ../src/iop/filmicrgb.c:4718 msgid "" "run extra passes of chromaticity reconstruction.\n" "more iterations means more color propagation from neighborhood.\n" @@ -16804,7 +17378,7 @@ "Дополнительные проходы восстановления светов дают\n" "более естественное заполнение цветом засвеченных пикселей" -#: ../src/iop/filmicrgb.c:4661 +#: ../src/iop/filmicrgb.c:4725 msgid "" "add statistical noise in reconstructed highlights.\n" "this avoids highlights to look too smooth\n" @@ -16814,7 +17388,7 @@ "Добавление шума в восстановленные света для\n" "получения более естественного изображения" -#: ../src/iop/filmicrgb.c:4668 +#: ../src/iop/filmicrgb.c:4732 msgid "" "choose the statistical distribution of noise.\n" "this is useful to match natural sensor noise pattern." @@ -16822,11 +17396,11 @@ "Статистическая модель распределения,\n" "описывающая естественный шум сенсора" -#: ../src/iop/filmicrgb.c:4736 +#: ../src/iop/filmicrgb.c:4800 msgid "mid-tones saturation" msgstr "Насыщенность в средних тонах" -#: ../src/iop/filmicrgb.c:4737 +#: ../src/iop/filmicrgb.c:4801 msgid "" "desaturates the output of the module\n" "specifically at medium luminances.\n" @@ -16836,11 +17410,11 @@ "особенно при средней яркости.\n" "увеличьте, если средние тона недостаточно насыщены." -#: ../src/iop/filmicrgb.c:4743 +#: ../src/iop/filmicrgb.c:4807 msgid "highlights saturation mix" msgstr "Сочетание насыщенности светов" -#: ../src/iop/filmicrgb.c:4744 +#: ../src/iop/filmicrgb.c:4808 msgid "" "positive values ensure saturation is kept unchanged over the whole range.\n" "negative values bleach highlights at constant hue and luminance.\n" @@ -16864,39 +17438,39 @@ msgid "flip or rotate image by step of 90 degrees" msgstr "Перевернуть или повернуть изображение с шагом 90 градусов" -#: ../src/iop/flip.c:477 +#: ../src/iop/flip.c:475 msgid "no rotation" msgstr "Без вращения" -#: ../src/iop/flip.c:481 ../src/iop/flip.c:624 +#: ../src/iop/flip.c:479 ../src/iop/flip.c:622 msgid "flip horizontally" msgstr "Отразить по горизонтали" -#: ../src/iop/flip.c:485 ../src/iop/flip.c:628 +#: ../src/iop/flip.c:483 ../src/iop/flip.c:626 msgid "flip vertically" msgstr "Отразить по вертикали" -#: ../src/iop/flip.c:489 +#: ../src/iop/flip.c:487 msgid "rotate by -90 degrees" msgstr "Поворот на -90°" -#: ../src/iop/flip.c:493 +#: ../src/iop/flip.c:491 msgid "rotate by 90 degrees" msgstr "Поворот на 90°" -#: ../src/iop/flip.c:497 +#: ../src/iop/flip.c:495 msgid "rotate by 180 degrees" msgstr "Поворот на 180°" -#: ../src/iop/flip.c:612 +#: ../src/iop/flip.c:610 msgid "transform" msgstr "Трансформировать" -#: ../src/iop/flip.c:616 ../src/libs/live_view.c:293 +#: ../src/iop/flip.c:614 ../src/libs/live_view.c:293 msgid "rotate 90 degrees CCW" msgstr "Поворот на 90° против часовой стрелки" -#: ../src/iop/flip.c:620 ../src/libs/live_view.c:294 +#: ../src/iop/flip.c:618 ../src/libs/live_view.c:294 msgid "rotate 90 degrees CW" msgstr "Поворот на 90° по часовой стрелке" @@ -16915,15 +17489,15 @@ "Этот модуль объявлен устаревшим.\n" "Используйте модуль «Плёночная тональная кривая RGB»." -#: ../src/iop/globaltonemap.c:625 ../src/libs/filters/colors.c:259 +#: ../src/iop/globaltonemap.c:658 ../src/libs/filters/colors.c:259 msgid "operator" msgstr "Оператор" -#: ../src/iop/globaltonemap.c:626 +#: ../src/iop/globaltonemap.c:659 msgid "the global tonemap operator" msgstr "Оператор глобального отображения тонов" -#: ../src/iop/globaltonemap.c:629 +#: ../src/iop/globaltonemap.c:662 msgid "" "the bias for tonemapper controls the linearity, the higher the more details " "in blacks" @@ -16931,7 +17505,7 @@ "Смещение для оператора глобального отображения тонов. Чем выше значение, тем " "больше сдвиг в тёмную сторону." -#: ../src/iop/globaltonemap.c:633 +#: ../src/iop/globaltonemap.c:666 msgid "the target light for tonemapper specified as cd/m2" msgstr "Целевая освещённость, выраженная в кд/м²" @@ -16995,11 +17569,11 @@ msgid "simulate an optical graduated neutral density filter" msgstr "Симуляция градиентного фильтра" -#: ../src/iop/graduatednd.c:1114 +#: ../src/iop/graduatednd.c:1083 msgid "the density in EV for the filter" msgstr "Плотность фильтра в шагах экспозиции" -#: ../src/iop/graduatednd.c:1119 +#: ../src/iop/graduatednd.c:1088 #, no-c-format msgid "" "hardness of graduation:\n" @@ -17008,55 +17582,55 @@ "Сжатие градиента:\n" "0% — мягкий, 100% — жёсткий" -#: ../src/iop/graduatednd.c:1123 +#: ../src/iop/graduatednd.c:1092 msgid "rotation of filter -180 to 180 degrees" msgstr "Вращение фильтра, между -180° и 180°" -#: ../src/iop/graduatednd.c:1136 +#: ../src/iop/graduatednd.c:1105 msgid "select the hue tone of filter" msgstr "Укажите тон фильтра" -#: ../src/iop/graduatednd.c:1142 +#: ../src/iop/graduatednd.c:1111 msgid "select the saturation of filter" msgstr "Укажите насыщенность фильтра" -#: ../src/iop/graduatednd.c:1153 +#: ../src/iop/graduatednd.c:1122 #, c-format msgid "[%s on nodes] change line rotation" msgstr "[%s на узлах] изменить вращение линии" -#: ../src/iop/graduatednd.c:1154 +#: ../src/iop/graduatednd.c:1123 #, c-format msgid "[%s on line] move line" msgstr "[%s на линии] переместить линию" -#: ../src/iop/graduatednd.c:1156 +#: ../src/iop/graduatednd.c:1125 #, c-format msgid "[%s on line] change density" msgstr "[%s на линии] изменить плотность" -#: ../src/iop/graduatednd.c:1158 +#: ../src/iop/graduatednd.c:1127 #, c-format msgid "[%s on line] change hardness" msgstr "[%s на линии] изменить резкость" -#: ../src/iop/grain.c:428 +#: ../src/iop/grain.c:444 msgid "grain" msgstr "Зернистость" -#: ../src/iop/grain.c:433 +#: ../src/iop/grain.c:449 msgid "simulate silver grains from film" msgstr "Симуляция зернистости плёнки" -#: ../src/iop/grain.c:582 +#: ../src/iop/grain.c:600 msgid "the grain size (~ISO of the film)" msgstr "Размер зерна (примерно соответствует ISO плёнки)" -#: ../src/iop/grain.c:586 +#: ../src/iop/grain.c:604 msgid "the strength of applied grain" msgstr "Интенсивность зернистости" -#: ../src/iop/grain.c:590 +#: ../src/iop/grain.c:608 msgid "" "amount of mid-tones bias from the photographic paper response modeling. the " "greater the bias, the more pronounced the fall off of the grain in shadows " @@ -17077,15 +17651,15 @@ msgid "remove fog and atmospheric hazing from pictures" msgstr "Подавление атмосферной дымки на изображении" -#: ../src/iop/hazeremoval.c:202 +#: ../src/iop/hazeremoval.c:204 msgid "amount of haze reduction" msgstr "Интенсивность эффекта подавления дымки" -#: ../src/iop/hazeremoval.c:204 +#: ../src/iop/hazeremoval.c:206 msgid "distance" msgstr "Расстояние" -#: ../src/iop/hazeremoval.c:206 +#: ../src/iop/hazeremoval.c:208 msgid "limit haze removal up to a specific spatial depth" msgstr "Пространственный предел подавления дымки" @@ -17099,11 +17673,11 @@ "Восстановление пересвеченных участков изображения. Например, для подавления " "пурпурных артефактов в небе" -#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:75 +#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:77 msgid "reconstruction, raw" msgstr "Восстановление, Raw" -#: ../src/iop/highlights.c:923 +#: ../src/iop/highlights.c:1004 msgid "" "highlights: mode not available for this type of image. falling back to " "inpaint opposed." @@ -17111,15 +17685,14 @@ "Света: режим недоступен для изображений такого типа. Вернуться к нанесению " "цвета." -#: ../src/iop/highlights.c:1101 +#: ../src/iop/highlights.c:1184 msgid "highlight reconstruction method" msgstr "Алгоритм обработки пересвеченных участков" -#: ../src/iop/highlights.c:1106 +#: ../src/iop/highlights.c:1189 msgid "" "manually adjust the clipping threshold mostly used against magenta " -"highlights\n" -"the mask icon shows the clipped areas.\n" +"highlights.\n" "you might use this for tuning 'laplacian', 'inpaint opposed' or " "'segmentation' modes,\n" "especially if camera white point is incorrect." @@ -17127,28 +17700,45 @@ "Настройка порога обрезки для борьбы с пересветами (обычно в этом нет " "необходимости)" -#: ../src/iop/highlights.c:1117 +#: ../src/iop/highlights.c:1193 +msgid "" +"visualize clipped highlights in a false color representation.\n" +"the effective clipping level also depends on the reconstruction method." +msgstr "" +"Отобразить пересветы в условном цвете.\n" +"Эффективный уровень обрезки также зависит от метода реконструкции." + +#: ../src/iop/highlights.c:1203 msgid "" "combine closely related clipped segments by morphological operations.\n" -"the mask button shows the exact positions of resulting segment borders." +"this often leads to improved color reconstruction for tiny segments before " +"dark background." msgstr "" "Объедините тесно связанные засвеченные сегменты морфологическими " "операциями.\n" -"Кнопка маски показывает точное положение границ сегмента." +"Это часто улучшает цветопередачу для мелких сегментов на темном фоне." + +#: ../src/iop/highlights.c:1206 +msgid "visualize the combined segments in a false color representation." +msgstr "Отобразить объединенные сегменты в условном цвете." -#: ../src/iop/highlights.c:1125 +#: ../src/iop/highlights.c:1213 msgid "" "select inpainting after segmentation analysis.\n" -"increase to favour candidates found in segmentation analysis, decrease for " -"opposed means inpainting.\n" -"the mask button shows segments that are considered to have a good candidate." +"increase to favor candidates found in segmentation analysis, decrease for " +"opposed means inpainting." msgstr "" "Выберите нанесение цвета после анализа сегментов.\n" "Увеличьте в пользу кандидатов, найденных при анализе, уменьшите для " -"закрашивания противоположного.\n" -"Кнопка маски показывает подходящие сегменты." +"закрашивания противоположного." -#: ../src/iop/highlights.c:1136 +#: ../src/iop/highlights.c:1216 +msgid "" +"visualize segments that are considered to have a good candidate in a false " +"color representation." +msgstr "Отобразить сегменты, которые считаются подходящими, в условном цвете." + +#: ../src/iop/highlights.c:1225 msgid "" "approximate lost data in regions with all photosites clipped, the effect " "depends on segment size and border gradients.\n" @@ -17168,18 +17758,17 @@ "Плоскостные режимы игнорируют узкие не пересвеченные объекты (например, " "линии электропередач), чтобы сохранить света и избежать градиентов." -#: ../src/iop/highlights.c:1142 -msgid "" -"set strength of rebuilding in regions with all photosites clipped.\n" -"the mask buttons shows the effect that is added to already reconstructed " -"data." +#: ../src/iop/highlights.c:1231 +msgid "set strength of rebuilding in regions with all photosites clipped." msgstr "" "Установите интенсивность перестройки в областях со всеми засвеченными " -"сенсорами.\n" -"Кнопки маски показывают эффект, который добавляется к уже реконструированным " -"данным." +"сенсорами." + +#: ../src/iop/highlights.c:1233 +msgid "show the effect that is added to already reconstructed data." +msgstr "Показать эффект, который добавляется к уже восстановленным данным." -#: ../src/iop/highlights.c:1152 +#: ../src/iop/highlights.c:1242 msgid "" "add noise to visually blend the reconstructed areas\n" "into the rest of the noisy image. useful at high ISO." @@ -17187,7 +17776,7 @@ "Добавление шума для интеграции реконструированных областей\n" "в остальную часть изображения с шумом. Полезно при высоком ISO." -#: ../src/iop/highlights.c:1156 +#: ../src/iop/highlights.c:1246 msgid "" "increase if magenta highlights don't get fully corrected\n" "each new iteration brings a performance penalty." @@ -17196,7 +17785,7 @@ "полностью.\n" "Каждая новая итерация приводит к снижению производительности." -#: ../src/iop/highlights.c:1161 +#: ../src/iop/highlights.c:1251 msgid "" "increase if magenta highlights don't get fully corrected.\n" "this may produce non-smooth boundaries between valid and clipped regions." @@ -17206,7 +17795,7 @@ "Это может привести к несглаженным границам между допустимыми и засвеченными " "областями." -#: ../src/iop/highlights.c:1165 +#: ../src/iop/highlights.c:1255 msgid "" "increase to correct larger clipped areas.\n" "large values bring huge performance penalties" @@ -17214,9 +17803,9 @@ "Увеличение для коррекции больших участков.\n" "Большие значения приводят к значительным потерям производительности." -#: ../src/iop/highlights.c:1169 -msgid "this module only works with non-monochrome RAW and sRAW" -msgstr "Этот модуль работает только с немонохромными RAW и sRAW" +#: ../src/iop/highlights.c:1259 +msgid "this module does not work with monochrome RAW files" +msgstr "Этот модуль не работает с монохромными RAW" #: ../src/iop/highpass.c:72 msgid "highpass" @@ -17226,35 +17815,35 @@ msgid "isolate high frequencies in the image" msgstr "Работа над высокочастотной составляющей изображения" -#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:135 +#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:107 msgid "linear or non-linear, Lab, scene-referred" msgstr "Линейн. или нелинейн., Lab, плёночная тональная кривая RGB" -#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:136 ../src/iop/sharpen.c:96 +#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:108 ../src/iop/sharpen.c:98 msgid "frequential, Lab" msgstr "Частотный разбор, Lab" -#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:137 +#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:109 msgid "special, Lab, scene-referred" msgstr "Специальный, Lab, плёночная тональная кривая RGB" -#: ../src/iop/highpass.c:383 +#: ../src/iop/highpass.c:378 msgid "the sharpness of highpass filter" msgstr "Резкость высокочастотного фильтра" -#: ../src/iop/highpass.c:387 +#: ../src/iop/highpass.c:382 msgid "the contrast of highpass filter" msgstr "Контраст высокочастотного фильтра" -#: ../src/iop/hotpixels.c:67 +#: ../src/iop/hotpixels.c:69 msgid "hot pixels" msgstr "Дефектные пиксели" -#: ../src/iop/hotpixels.c:72 +#: ../src/iop/hotpixels.c:74 msgid "remove abnormally bright pixels by dampening them with neighbors" msgstr "Удаление дефектных пикселей за счёт усреднения данных от соседних" -#: ../src/iop/hotpixels.c:363 +#: ../src/iop/hotpixels.c:442 #, c-format msgid "fixed %d pixel" msgid_plural "fixed %d pixels" @@ -17262,15 +17851,15 @@ msgstr[1] "Исправлены: %d" msgstr[2] "Исправлено: %d" -#: ../src/iop/hotpixels.c:386 +#: ../src/iop/hotpixels.c:465 msgid "lower threshold for hot pixel" msgstr "Нижний порог для определения дефектных пикселей" -#: ../src/iop/hotpixels.c:390 +#: ../src/iop/hotpixels.c:469 msgid "strength of hot pixel correction" msgstr "Интенсивность коррекции" -#: ../src/iop/hotpixels.c:406 +#: ../src/iop/hotpixels.c:485 msgid "" "hot pixel correction\n" "only works for raw images." @@ -17278,64 +17867,64 @@ "Коррекция дефектных пикселей работает \n" "только с файлами Raw" -#: ../src/iop/invert.c:92 ../src/iop/invert.c:427 +#: ../src/iop/invert.c:106 ../src/iop/invert.c:442 #, c-format msgid "`%s' color matrix not found for 4bayer image" msgstr "Цветовая матрица «%s» не найдена!" -#: ../src/iop/invert.c:108 +#: ../src/iop/invert.c:125 msgid "invert" msgstr "Инверсия" -#: ../src/iop/invert.c:113 +#: ../src/iop/invert.c:130 msgid "this module is deprecated. please use the negadoctor module instead." msgstr "" "Этот модуль объявлен устаревшим.\n" "Используйте модуль «Негатив»." -#: ../src/iop/invert.c:118 +#: ../src/iop/invert.c:135 msgid "invert film negatives" msgstr "Инверсия цветов негативной плёнки" -#: ../src/iop/invert.c:120 ../src/iop/invert.c:122 +#: ../src/iop/invert.c:137 ../src/iop/invert.c:139 msgid "linear, raw, display-referred" msgstr "Линейн., Raw, базовая кривая" #. Here we could provide more for monochrome special cases. As no monochrome camera #. has a bayer sensor we don't need g->RGB_to_CAM and g->CAM_to_RGB corrections -#: ../src/iop/invert.c:412 +#: ../src/iop/invert.c:427 msgid "brightness of film material" msgstr "Яркость плёнки" -#: ../src/iop/invert.c:416 +#: ../src/iop/invert.c:431 msgid "color of film material" msgstr "Цвет плёнки" -#: ../src/iop/invert.c:500 ../src/iop/negadoctor.c:847 +#: ../src/iop/invert.c:515 ../src/iop/negadoctor.c:866 msgid "pick color of film material from image" msgstr "Взять значение с изображения" -#: ../src/iop/invert.c:502 +#: ../src/iop/invert.c:517 msgid "select color of film material" msgstr "Выбор цвета плёнки" -#: ../src/iop/lens.cc:230 +#: ../src/iop/lens.cc:251 msgid "lens correction" msgstr "Оптические искажения" -#: ../src/iop/lens.cc:235 +#: ../src/iop/lens.cc:256 msgid "vignette|chromatic aberrations|distortion" msgstr "vignette|chromatic aberrations|distortion" -#: ../src/iop/lens.cc:240 +#: ../src/iop/lens.cc:261 msgid "correct lenses optical flaws" msgstr "Корректировка оптических искажений" -#: ../src/iop/lens.cc:243 +#: ../src/iop/lens.cc:264 msgid "geometric and reconstruction, RGB" msgstr "Геометрия, восстановление, RGB" -#: ../src/iop/lens.cc:3148 +#: ../src/iop/lens.cc:3773 #, c-format msgid "" "maker:\t\t%s\n" @@ -17348,7 +17937,7 @@ "Байонет:\t\t%s\n" "Кроп-фактор:\t%.1f" -#: ../src/iop/lens.cc:3396 +#: ../src/iop/lens.cc:4026 #, c-format msgid "" "maker:\t\t%s\n" @@ -17367,31 +17956,31 @@ "Тип:\t\t\t\t%s\n" "Байонеты:\t\t\t%s" -#: ../src/iop/lens.cc:3442 +#: ../src/iop/lens.cc:4072 msgid "focal length (mm)" msgstr "Фокусное расстояние (мм)" -#: ../src/iop/lens.cc:3468 +#: ../src/iop/lens.cc:4098 msgid "f/" msgstr "f/" -#: ../src/iop/lens.cc:3469 +#: ../src/iop/lens.cc:4099 msgid "f-number (aperture)" msgstr "Число F (диафрагма)" -#: ../src/iop/lens.cc:3485 +#: ../src/iop/lens.cc:4115 msgid "d" msgstr "d" -#: ../src/iop/lens.cc:3486 +#: ../src/iop/lens.cc:4116 msgid "distance to subject" msgstr "Расстояние до объекта" -#: ../src/iop/lens.cc:3645 +#: ../src/iop/lens.cc:4277 msgid "camera/lens not found" msgstr "Камера/объектив не найден" -#: ../src/iop/lens.cc:3646 +#: ../src/iop/lens.cc:4278 msgid "" "please select your lens manually\n" "you might also want to check if your Lensfun database is up-to-date\n" @@ -17401,45 +17990,51 @@ "вы также можете проверить, актуальна ли ваша база данных LensFun.\n" "запустив lensfun_update_data" -#: ../src/iop/lens.cc:3769 +#: ../src/iop/lens.cc:4423 msgid "camera model" msgstr "Модель камеры" -#: ../src/iop/lens.cc:3774 +#: ../src/iop/lens.cc:4428 msgid "find camera" msgstr "Найти камеру" -#: ../src/iop/lens.cc:3789 +#: ../src/iop/lens.cc:4443 msgid "find lens" msgstr "Найти объектив" #. scale -#: ../src/iop/lens.cc:3823 ../src/iop/vignette.c:968 -#: ../src/iop/watermark.c:1324 ../src/libs/export.c:1165 +#: ../src/iop/lens.cc:4477 ../src/iop/vignette.c:1055 +#: ../src/iop/watermark.c:1372 ../src/libs/export.c:1264 msgid "scale" msgstr "Масштабирование" -#: ../src/iop/lens.cc:3828 +#: ../src/iop/lens.cc:4482 msgid "auto scale" msgstr "Автомасштабирование" -#: ../src/iop/lens.cc:3832 +#: ../src/iop/lens.cc:4484 +msgid "automatic scale to available image size due to Lensfun data" +msgstr "" +"Автоматическое масштабирование по доступному размеру изображения благодаря " +"данным Lensfun" + +#: ../src/iop/lens.cc:4488 msgid "correct distortions or apply them" msgstr "Скорректировать или применить искажения" -#: ../src/iop/lens.cc:3839 +#: ../src/iop/lens.cc:4495 msgid "transversal chromatic aberration red" msgstr "Поперечные хроматические аберрации, красный" -#: ../src/iop/lens.cc:3843 +#: ../src/iop/lens.cc:4499 msgid "transversal chromatic aberration blue" msgstr "Поперечные хроматические аберрации, синий" -#: ../src/iop/lens.cc:3849 +#: ../src/iop/lens.cc:4509 msgid "use latest algorithm" msgstr "Используйте последний алгоритм" -#: ../src/iop/lens.cc:3851 +#: ../src/iop/lens.cc:4511 msgid "" "you're using an old version of the algorithm.\n" "once enabled, you won't be able to\n" @@ -17449,95 +18044,147 @@ "После включения вы не сможете\n" "Вернуться к старому алгоритму." -#: ../src/iop/lens.cc:3860 +#: ../src/iop/lens.cc:4521 +msgid "fine-tuning" +msgstr "Точная настройка" + +#. DT_IOP_SECTION_FOR_PARAMS doesn't work in C++ so create section module manually +#: ../src/iop/lens.cc:4526 +msgid "fine-tune" +msgstr "Произвести точную настройку" + +#: ../src/iop/lens.cc:4532 msgid "tune the warp and chromatic aberration correction" msgstr "Настройка деформации и коррекции хроматических аберраций" -#: ../src/iop/lens.cc:3864 +#: ../src/iop/lens.cc:4536 msgid "tune the vignette correction" msgstr "Настройка коррекции виньетирования" -#: ../src/iop/lens.cc:3868 +#: ../src/iop/lens.cc:4540 msgid "tune the TCA red correction" msgstr "Настройка коррекции ХА (красный)" -#: ../src/iop/lens.cc:3872 +#: ../src/iop/lens.cc:4544 msgid "tune the TCA blue correction" msgstr "Настройка коррекции ХА (синий)" -#: ../src/iop/lens.cc:3879 +#: ../src/iop/lens.cc:4551 msgid "image scaling" msgstr "Масштабирование изображения" -#: ../src/iop/lens.cc:3891 +#: ../src/iop/lens.cc:4553 +msgid "automatic scale to available image size" +msgstr "Автоматическое масштабирование по доступному размеру изображения" + +#: ../src/iop/lens.cc:4561 +msgid "" +"select a correction mode either based on\n" +" a) data and algorithms provided by the Lensfun project\n" +" b) embedded metadata provided by the camera or software vendor" +msgstr "" +"Выберите режим коррекции на основе:\n" +"а) данных и алгоритмов, предоставленных проектом Lensfun;\n" +"б) встроенных метаданных, предоставленных камерой или вендором программного " +"обеспечения." + +#: ../src/iop/lens.cc:4568 msgid "which corrections to apply" msgstr "Корректируемые искажения" -#: ../src/iop/lens.cc:3904 +#: ../src/iop/lens.cc:4574 msgid "corrections done: " msgstr "Скорректировано: " -#: ../src/iop/lens.cc:3906 +#: ../src/iop/lens.cc:4576 msgid "which corrections have actually been done" msgstr "Перечень скорректированных искажений" +#: ../src/iop/lens.cc:4595 +msgid "manual vignette correction" +msgstr "Коррекции виньетирования вручную" + +#: ../src/iop/lens.cc:4599 +msgid "additional manually controlled optical vignetting correction" +msgstr "Дополнительная коррекция оптического виньетирования вручную" + +#: ../src/iop/lens.cc:4602 +msgid "vignette" +msgstr "Виньетирование" + +#: ../src/iop/lens.cc:4606 +msgid "amount of the applied optical vignetting correction" +msgstr "Величина применяемой коррекции оптического виньетирования" + +#: ../src/iop/lens.cc:4608 +msgid "show applied optical vignette correction mask" +msgstr "Показать примененную маску коррекции оптического виньетирования" + +#: ../src/iop/lens.cc:4618 +msgid "radius of uncorrected centre" +msgstr "Радиус при нескорректированном центре" + +#: ../src/iop/lens.cc:4624 +msgid "steepness of the correction effect outside of radius" +msgstr "Крутизна корректирующего эффекта за пределами радиуса" + #: ../src/iop/levels.c:112 msgid "this module is deprecated. please use the RGB levels module instead." msgstr "" "Этот модуль объявлен устаревшим.\n" "Используйте модуль RGB «Ретушь»." -#: ../src/iop/levels.c:117 ../src/iop/levels.c:630 ../src/iop/rgblevels.c:984 -#: ../src/iop/rgblevels.c:1014 +#: ../src/iop/levels.c:117 ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1022 +#: ../src/iop/rgblevels.c:1056 msgid "levels" msgstr "Уровни" -#: ../src/iop/levels.c:137 +#: ../src/iop/levels.c:139 msgid "adjust black, white and mid-gray points" msgstr "Коррекция чёрной, серой и белой точек изображения" -#: ../src/iop/levels.c:628 ../src/iop/rgblevels.c:1016 +#: ../src/iop/levels.c:644 ../src/iop/rgblevels.c:1059 msgid "" "drag handles to set black, gray, and white points. operates on L channel." msgstr "" "Используйте ползунки для установки чёрной, серой и белой точек. Модуль " "работает с каналом L." -#: ../src/iop/levels.c:642 ../src/iop/rgblevels.c:1052 +#: ../src/iop/levels.c:658 ../src/iop/rgblevels.c:1108 msgid "apply auto levels" msgstr "Автоматически рассчитать уровни" -#: ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1027 +#: ../src/iop/levels.c:662 ../src/iop/rgblevels.c:1077 msgid "pick black point from image" msgstr "Взять значение чёрной точки с изображения" -#: ../src/iop/levels.c:650 ../src/iop/rgblevels.c:1033 +#: ../src/iop/levels.c:666 ../src/iop/rgblevels.c:1085 msgid "pick medium gray point from image" msgstr "Взять значение серой точки с изображения" -#: ../src/iop/levels.c:654 ../src/iop/rgblevels.c:1039 +#: ../src/iop/levels.c:670 ../src/iop/rgblevels.c:1093 msgid "pick white point from image" msgstr "Взять значение белой точки с изображения" -#: ../src/iop/levels.c:667 ../src/iop/rgblevels.c:936 -#: ../src/iop/rgblevels.c:1026 +#: ../src/iop/levels.c:683 ../src/iop/rgblevels.c:968 +#: ../src/iop/rgblevels.c:1075 msgid "black" msgstr "Тени" -#: ../src/iop/levels.c:668 +#: ../src/iop/levels.c:684 msgid "black percentile" msgstr "Процентиль чёрного" -#: ../src/iop/levels.c:672 +#: ../src/iop/levels.c:688 msgid "gray percentile" msgstr "Процентиль серого" -#: ../src/iop/levels.c:675 ../src/iop/rgblevels.c:938 -#: ../src/iop/rgblevels.c:1038 +#: ../src/iop/levels.c:691 ../src/iop/rgblevels.c:970 +#: ../src/iop/rgblevels.c:1091 msgid "white" msgstr "Белый" -#: ../src/iop/levels.c:676 +#: ../src/iop/levels.c:692 msgid "white percentile" msgstr "Процентиль белого" @@ -17549,11 +18196,11 @@ msgid "distort parts of the image" msgstr "Пластическое искажение участков изображения" -#: ../src/iop/liquify.c:2933 +#: ../src/iop/liquify.c:2895 msgid "click to edit nodes" msgstr "Выберите узел для правки" -#: ../src/iop/liquify.c:3636 +#: ../src/iop/liquify.c:3599 msgid "" "<b>add point</b>: click and drag\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: ctrl" @@ -17563,7 +18210,7 @@ "<b>Размер</b>: Прокрутка, <b>Интенсивность</b>: Shift+Прокрутка, " "<b>Направление</b>: Ctrl+Прокрутка" -#: ../src/iop/liquify.c:3639 +#: ../src/iop/liquify.c:3602 msgid "" "<b>add line</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: ctrl" @@ -17573,7 +18220,7 @@ "<b>Размер</b>: Прокрутка, <b>Интенсивность</b>: Shift+Прокрутка, " "<b>Направление</b>: Ctrl+Прокрутка" -#: ../src/iop/liquify.c:3642 +#: ../src/iop/liquify.c:3605 msgid "" "<b>add curve</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: ctrl" @@ -17583,7 +18230,7 @@ "<b>Размер</b>: Прокрутка, <b>Интенсивность</b>: Shift+Прокрутка, " "<b>Направление</b>: Ctrl+Прокрутка" -#: ../src/iop/liquify.c:3693 +#: ../src/iop/liquify.c:3656 msgid "" "use a tool to add warps\n" "<b>remove a warp</b>: right-click" @@ -17591,48 +18238,48 @@ "Используйте один из инструментов для деформации.\n" "Щелчок правой кнопкой мыши удаляет правку." -#: ../src/iop/liquify.c:3696 +#: ../src/iop/liquify.c:3659 msgid "warps|nodes count:" msgstr "Деформаций | Узлов: " -#: ../src/iop/liquify.c:3705 +#: ../src/iop/liquify.c:3668 msgid "edit, add and delete nodes" msgstr "Править, добавлять и удалять узлы" -#: ../src/iop/liquify.c:3710 ../src/iop/liquify.c:3716 -#: ../src/iop/liquify.c:3722 ../src/iop/retouch.c:2238 -#: ../src/iop/retouch.c:2242 ../src/iop/retouch.c:2246 -#: ../src/iop/retouch.c:2250 ../src/iop/spots.c:883 ../src/iop/spots.c:888 -#: ../src/iop/spots.c:893 ../src/libs/masks.c:1816 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1834 ../src/libs/masks.c:1843 ../src/libs/masks.c:1852 +#: ../src/iop/liquify.c:3673 ../src/iop/liquify.c:3679 +#: ../src/iop/liquify.c:3685 ../src/iop/retouch.c:2465 +#: ../src/iop/retouch.c:2471 ../src/iop/retouch.c:2476 +#: ../src/iop/retouch.c:2481 ../src/iop/spots.c:885 ../src/iop/spots.c:890 +#: ../src/iop/spots.c:895 ../src/libs/masks.c:1812 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1830 ../src/libs/masks.c:1839 ../src/libs/masks.c:1848 msgid "shapes" msgstr "Фигуры" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw curves" msgstr "Добавить кривую" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw multiple curves" msgstr "добавляет несколько элементов" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw lines" msgstr "Добавить прямую" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw multiple lines" msgstr "добавляет несколько элементов" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw points" msgstr "Добавить точку" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw multiple points" msgstr "добавляет несколько элементов" -#: ../src/iop/liquify.c:3729 +#: ../src/iop/liquify.c:3692 msgid "" "<b>add node</b>: ctrl+click - <b>remove path</b>: right click\n" "<b>toggle line/curve</b>: ctrl+alt+click" @@ -17641,7 +18288,7 @@ "кнопкой мыши\n" "<b>Переключить линия/кривая</b>: Ctrl+Alt+Щелчок" -#: ../src/iop/liquify.c:3732 +#: ../src/iop/liquify.c:3695 msgid "" "<b>move</b>: click and drag - <b>show/hide feathering controls</b>: click\n" "<b>autosmooth, cusp, smooth, symmetrical</b>: ctrl+click - <b>remove</b>: " @@ -17652,23 +18299,23 @@ "элементов деформации. Ctrl+Щелчок переключает режим управления растушёвкой.\n" "Щелчок правой кнопкой мыши удаляет элемент." -#: ../src/iop/liquify.c:3736 ../src/iop/liquify.c:3738 +#: ../src/iop/liquify.c:3699 ../src/iop/liquify.c:3701 msgid "<b>shape of path</b>: drag" msgstr "<b>Форма пути</b>: Перетащить" -#: ../src/iop/liquify.c:3740 +#: ../src/iop/liquify.c:3703 msgid "<b>radius</b>: drag" msgstr "<b>Радиус</b>: Перетащить" -#: ../src/iop/liquify.c:3742 +#: ../src/iop/liquify.c:3705 msgid "<b>hardness (center)</b>: drag" msgstr "<b>Растушевка (центр)</b>: Перетащить" -#: ../src/iop/liquify.c:3744 +#: ../src/iop/liquify.c:3707 msgid "<b>hardness (feather)</b>: drag" msgstr "<b>Растушевка ()</b>: Перетащить" -#: ../src/iop/liquify.c:3746 +#: ../src/iop/liquify.c:3709 msgid "" "<b>strength</b>: drag\n" "<b>linear, grow, and shrink</b>: ctrl+click" @@ -17688,240 +18335,240 @@ msgid "linear, XYZ" msgstr "Линейн., XYZ" -#: ../src/iop/lowlight.c:341 +#: ../src/iop/lowlight.c:338 msgid "indoor bright" msgstr "Ярко освещённое помещение" -#: ../src/iop/lowlight.c:359 +#: ../src/iop/lowlight.c:356 msgid "indoor dim" msgstr "Едва освещённое помещение" -#: ../src/iop/lowlight.c:377 +#: ../src/iop/lowlight.c:374 msgid "indoor dark" msgstr "Неосвещённое помещение" -#: ../src/iop/lowlight.c:395 +#: ../src/iop/lowlight.c:392 msgid "twilight" msgstr "Сумерки" -#: ../src/iop/lowlight.c:413 +#: ../src/iop/lowlight.c:410 msgid "night street lit" msgstr "Освещённая ночная улица" -#: ../src/iop/lowlight.c:431 +#: ../src/iop/lowlight.c:428 msgid "night street" msgstr "Ночная улица" -#: ../src/iop/lowlight.c:449 +#: ../src/iop/lowlight.c:446 msgid "night street dark" msgstr "Неосвещённая ночная улица" -#: ../src/iop/lowlight.c:468 +#: ../src/iop/lowlight.c:465 msgid "night" msgstr "Ночь" -#: ../src/iop/lowlight.c:641 +#: ../src/iop/lowlight.c:639 msgid "dark" msgstr "тени" -#: ../src/iop/lowlight.c:649 +#: ../src/iop/lowlight.c:647 msgid "bright" msgstr "света" -#: ../src/iop/lowlight.c:658 +#: ../src/iop/lowlight.c:656 msgid "day vision" msgstr "дневное зрение" -#: ../src/iop/lowlight.c:663 +#: ../src/iop/lowlight.c:661 msgid "night vision" msgstr "ночное зрение" -#: ../src/iop/lowlight.c:835 +#: ../src/iop/lowlight.c:833 msgid "blueness in shadows" msgstr "Синева в тенях" -#: ../src/iop/lowpass.c:128 +#: ../src/iop/lowpass.c:100 msgid "lowpass" msgstr "НЧ фильтр" -#: ../src/iop/lowpass.c:133 +#: ../src/iop/lowpass.c:105 msgid "isolate low frequencies in the image" msgstr "Работа над низкочастотной составляющей изображения" -#: ../src/iop/lowpass.c:565 +#: ../src/iop/lowpass.c:578 msgid "local contrast mask" msgstr "Локальный контраст (маска)" -#: ../src/iop/lowpass.c:590 +#: ../src/iop/lowpass.c:603 msgid "radius of gaussian/bilateral blur" msgstr "Радиус гауссова размытия" -#: ../src/iop/lowpass.c:591 +#: ../src/iop/lowpass.c:604 msgid "contrast of lowpass filter" msgstr "Контраст низкочастотного фильтра" -#: ../src/iop/lowpass.c:592 +#: ../src/iop/lowpass.c:605 msgid "brightness adjustment of lowpass filter" msgstr "Коррекция яркости низкочастотного фильтра" -#: ../src/iop/lowpass.c:593 +#: ../src/iop/lowpass.c:606 msgid "color saturation of lowpass filter" msgstr "Насыщенность низкочастотного фильтра" -#: ../src/iop/lowpass.c:594 +#: ../src/iop/lowpass.c:607 msgid "which filter to use for blurring" msgstr "Алгоритм размытия" -#: ../src/iop/lut3d.c:135 +#: ../src/iop/lut3d.c:136 msgid "LUT 3D" msgstr "3D-таблица поиска цветов" -#: ../src/iop/lut3d.c:140 +#: ../src/iop/lut3d.c:141 msgid "perform color space corrections and apply look" msgstr "" "Преобразование цветового пространства изображения с использованием сторонних " "3D таблиц поиска цветов" -#: ../src/iop/lut3d.c:143 +#: ../src/iop/lut3d.c:144 msgid "defined by profile, RGB" msgstr "Определяется профилем, RGB" -#: ../src/iop/lut3d.c:468 +#: ../src/iop/lut3d.c:486 msgid "error allocating buffer for gmz LUT" msgstr "Ошибка выделения буфера под GMZ файл таблицы поиска цветов!" -#: ../src/iop/lut3d.c:494 +#: ../src/iop/lut3d.c:512 #, c-format msgid "invalid png file %s" msgstr "Некорректный файл PNG «%s»!" -#: ../src/iop/lut3d.c:502 +#: ../src/iop/lut3d.c:520 #, c-format -msgid "png bit-depth %d not supported" +msgid "png bit depth %d is not supported" msgstr "Глубина цвета %d не поддерживается!" -#: ../src/iop/lut3d.c:516 ../src/iop/lut3d.c:526 +#: ../src/iop/lut3d.c:534 ../src/iop/lut3d.c:544 #, c-format msgid "invalid level in png file %d %d" msgstr "Некорректный уровень файла PNG %d %d!" -#: ../src/iop/lut3d.c:521 +#: ../src/iop/lut3d.c:539 msgid "this darktable build is not compatible with compressed CLUT" msgstr "Сжатые таблицы поиска цветов не поддерживаются!" -#: ../src/iop/lut3d.c:538 ../src/iop/lut3d.c:788 +#: ../src/iop/lut3d.c:556 ../src/iop/lut3d.c:808 #, c-format msgid "error - LUT 3D size %d exceeds the maximum supported" msgstr "" "Ошибка: размер таблицы поиска цветов %d превышает максимально возможный!" -#: ../src/iop/lut3d.c:550 +#: ../src/iop/lut3d.c:568 msgid "error allocating buffer for png LUT" msgstr "Ошибка выделения буфера под PNG файл таблицы поиска цветов!" -#: ../src/iop/lut3d.c:558 +#: ../src/iop/lut3d.c:576 #, c-format msgid "error - could not read png image %s" msgstr "Ошибка чтения файла PNG «%s»!" -#: ../src/iop/lut3d.c:568 +#: ../src/iop/lut3d.c:586 msgid "error - allocating buffer for png LUT" msgstr "Ошибка выделения буфера под файл таблицы поиска цветов!" -#: ../src/iop/lut3d.c:743 +#: ../src/iop/lut3d.c:761 #, c-format msgid "error - invalid cube file: %s" msgstr "Неизвестный формат данных в таблице поиска цветов «%s»!" -#: ../src/iop/lut3d.c:757 -msgid "DOMAIN MIN <> 0.0 is not supported" -msgstr "DOMAIN MIN <> 0.0 не поддерживается!" - -#: ../src/iop/lut3d.c:768 -msgid "DOMAIN MAX <> 1.0 is not supported" -msgstr "DOMAIN MAX <> 1.0 не поддерживается!" +#: ../src/iop/lut3d.c:775 +msgid "DOMAIN MIN other than 0 is not supported" +msgstr "DOMAIN MIN отличный от 0 не поддерживается!" + +#: ../src/iop/lut3d.c:787 +msgid "DOMAIN MAX other than 1 is not supported" +msgstr "DOMAIN MAX отличный от 1 не поддерживается!" -#: ../src/iop/lut3d.c:777 +#: ../src/iop/lut3d.c:797 msgid "1D cube LUT is not supported" msgstr "Одномерные таблицы поиска цветов не поддерживаются!" -#: ../src/iop/lut3d.c:799 +#: ../src/iop/lut3d.c:819 msgid "error - allocating buffer for cube LUT" msgstr "Ошибка выделения буфера под таблицу поиска цветов!" -#: ../src/iop/lut3d.c:810 +#: ../src/iop/lut3d.c:830 msgid "error - cube LUT size is not defined" msgstr "Не указан размер таблицы поиска цветов!" -#: ../src/iop/lut3d.c:821 +#: ../src/iop/lut3d.c:841 #, c-format msgid "error - cube LUT invalid number line %d" msgstr "Неверная строка %d в таблице поиска цветов!" -#: ../src/iop/lut3d.c:837 +#: ../src/iop/lut3d.c:857 #, c-format msgid "error - cube LUT lines number %d is not correct, should be %d" msgstr "Неверный размер (%d) таблицы поиска цветов! Должен быть равен %d." -#: ../src/iop/lut3d.c:847 +#: ../src/iop/lut3d.c:867 #, c-format msgid "warning - cube LUT has %d values out of range [0,1]" msgstr "Значение %d в таблице поиска цветов выходит за пределы [0,1]!" -#: ../src/iop/lut3d.c:872 +#: ../src/iop/lut3d.c:892 #, c-format msgid "error - invalid 3dl file: %s" msgstr "Неизвестный формат данных в 3dl таблице поиска цветов «%s»!" -#: ../src/iop/lut3d.c:893 +#: ../src/iop/lut3d.c:913 #, c-format msgid "error - the maximum shaper LUT value %d is too low" msgstr "" "Слишком низкое максимальное значение шейпера в таблице поиска цветов: %d!" -#: ../src/iop/lut3d.c:904 +#: ../src/iop/lut3d.c:924 msgid "error - allocating buffer for 3dl LUT" msgstr "Ошибка выделения буфера под файл таблицы поиска цветов!" -#: ../src/iop/lut3d.c:917 +#: ../src/iop/lut3d.c:937 msgid "error - 3dl LUT size is not defined" msgstr "Не указан размер таблицы поиска цветов!" -#: ../src/iop/lut3d.c:945 +#: ../src/iop/lut3d.c:965 msgid "error - 3dl LUT lines number is not correct" msgstr "Неверный размер таблицы поиска цветов!" -#: ../src/iop/lut3d.c:961 +#: ../src/iop/lut3d.c:981 msgid "error - the maximum LUT value does not match any valid bit depth" msgstr "" "Максимальное значение в таблице поиска цветов не соответствует корректной " "глубине цвета!" -#: ../src/iop/lut3d.c:1539 +#: ../src/iop/lut3d.c:1553 msgid "LUT root folder not defined" msgstr "Корневая папка не определена" -#: ../src/iop/lut3d.c:1545 +#: ../src/iop/lut3d.c:1559 msgid "select LUT file" msgstr "Выберите файл таблицы поиска цветов" -#: ../src/iop/lut3d.c:1546 +#: ../src/iop/lut3d.c:1560 msgid "_select" msgstr "_Выбрать" -#: ../src/iop/lut3d.c:1566 +#: ../src/iop/lut3d.c:1580 msgid "hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" msgstr "Hald (PNG), 3D (CUBE) или сжатые GMIC (GMZ)" -#: ../src/iop/lut3d.c:1568 +#: ../src/iop/lut3d.c:1582 msgid "hald CLUT (png) or 3D LUT (cube or 3dl)" msgstr "Hald (PNG) или 3D (CUBE)" -#: ../src/iop/lut3d.c:1592 +#: ../src/iop/lut3d.c:1606 msgid "select file outside LUT root folder is not allowed" msgstr "Выбор файла за пределами каталога, указанного в настройках, запрещён" -#: ../src/iop/lut3d.c:1663 +#: ../src/iop/lut3d.c:1677 msgid "" "select a png (haldclut), a cube, a 3dl or a gmz (compressed LUT) file " "CAUTION: 3D LUT folder must be set in preferences/processing before choosing " @@ -17931,7 +18578,7 @@ "работы необходимо\n" "указать каталог в таблицами поиска цветов (Настройки/Обработка)." -#: ../src/iop/lut3d.c:1667 +#: ../src/iop/lut3d.c:1681 msgid "" "select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be " "set in preferences/processing before choosing the LUT file" @@ -17940,7 +18587,7 @@ "необходимо\n" "указать каталог в таблицами поиска цветов в настройках darktable." -#: ../src/iop/lut3d.c:1679 +#: ../src/iop/lut3d.c:1693 msgid "" "the file path (relative to LUT folder) is saved with image along with the " "LUT data if it's a compressed LUT (gmz)" @@ -17948,7 +18595,7 @@ "Путь к файлу с таблицей поиска цветов (относительно указанного в настройках\n" "каталога) сохраняется в XMP файле вместе с данными из него (только для GMZ)" -#: ../src/iop/lut3d.c:1682 +#: ../src/iop/lut3d.c:1696 msgid "" "the file path (relative to LUT folder) is saved with image (and not the LUT " "data themselves)" @@ -17956,47 +18603,47 @@ "Путь к файлу с таблицей поиска цветов (относительно указанного в настройках\n" "каталога) сохраняется в XMP файле (но не сами данные из него)" -#: ../src/iop/lut3d.c:1691 +#: ../src/iop/lut3d.c:1705 msgid "enter LUT name" msgstr "Введите имя таблицы поиска цветов" -#: ../src/iop/lut3d.c:1712 +#: ../src/iop/lut3d.c:1726 msgid "select the LUT" msgstr "Выбор таблицы поиска цветов" -#: ../src/iop/lut3d.c:1725 +#: ../src/iop/lut3d.c:1739 msgid "select the color space in which the LUT has to be applied" msgstr "Цветовое пространство для работы с 3D таблицей поиска цветов" -#: ../src/iop/lut3d.c:1727 +#: ../src/iop/lut3d.c:1741 msgid "interpolation" msgstr "Интерполяция" -#: ../src/iop/lut3d.c:1728 +#: ../src/iop/lut3d.c:1742 msgid "select the interpolation method" msgstr "Алгоритм интерполяции" -#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:62 +#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:63 msgid "mask manager" msgstr "Маски" -#: ../src/iop/monochrome.c:97 +#: ../src/iop/monochrome.c:99 msgid "quickly convert an image to black & white using a variable color filter" msgstr "" "Быстрое преобразование изображения в чёрно-белое при помощи настраиваемого " "фильтра" -#: ../src/iop/monochrome.c:127 +#: ../src/iop/monochrome.c:153 msgid "red filter" msgstr "Красный фильтр" -#: ../src/iop/monochrome.c:546 +#: ../src/iop/monochrome.c:568 msgid "drag and scroll mouse wheel to adjust the virtual color filter" msgstr "" "Используйте перетаскивание и колесо мыши для настройки виртуального цветного " "фильтра" -#: ../src/iop/monochrome.c:562 +#: ../src/iop/monochrome.c:584 msgid "how much to keep highlights" msgstr "Сохранение информации в светах" @@ -18012,35 +18659,35 @@ msgid "invert film negative scans and simulate printing on paper" msgstr "Инверсия цветов негативной плёнки и симуляция печати на бумаге" -#: ../src/iop/negadoctor.c:469 +#: ../src/iop/negadoctor.c:483 msgid "D min" msgstr "D (мин.)" -#: ../src/iop/negadoctor.c:475 ../src/iop/negadoctor.c:856 +#: ../src/iop/negadoctor.c:489 ../src/iop/negadoctor.c:875 msgid "D min red component" msgstr "D (мин.), красный" #. Page FILM PROPERTIES -#: ../src/iop/negadoctor.c:832 +#: ../src/iop/negadoctor.c:851 msgid "film properties" msgstr "Плёнка" #. Dmin -#: ../src/iop/negadoctor.c:836 +#: ../src/iop/negadoctor.c:855 msgctxt "section" msgid "color of the film base" msgstr "Цвет основы" -#: ../src/iop/negadoctor.c:842 +#: ../src/iop/negadoctor.c:861 msgid "select color of film material from a swatch" msgstr "Выбор цвета плёнки из образцов" -#: ../src/iop/negadoctor.c:848 +#: ../src/iop/negadoctor.c:867 msgid "film material" msgstr "Плёнка" -#: ../src/iop/negadoctor.c:857 ../src/iop/negadoctor.c:867 -#: ../src/iop/negadoctor.c:877 +#: ../src/iop/negadoctor.c:876 ../src/iop/negadoctor.c:886 +#: ../src/iop/negadoctor.c:896 msgid "" "adjust the color and shade of the film transparent base.\n" "this value depends on the film material, \n" @@ -18048,58 +18695,58 @@ "and the scanner white balance." msgstr "Коррекция цвета основы плёнки" -#: ../src/iop/negadoctor.c:866 +#: ../src/iop/negadoctor.c:885 msgid "D min green component" msgstr "D (мин.), зелёный" -#: ../src/iop/negadoctor.c:876 +#: ../src/iop/negadoctor.c:895 msgid "D min blue component" msgstr "D (мин.), синий" #. D max and scanner bias -#: ../src/iop/negadoctor.c:884 +#: ../src/iop/negadoctor.c:903 msgctxt "section" msgid "dynamic range of the film" msgstr "Динамический диапазон" -#: ../src/iop/negadoctor.c:888 +#: ../src/iop/negadoctor.c:907 msgid "" "maximum density of the film, corresponding to white after inversion.\n" "this value depends on the film specifications, the developing process,\n" "the dynamic range of the scene and the scanner exposure settings." msgstr "Максимальная плотность плёнки, соответствующая белому после инверсии" -#: ../src/iop/negadoctor.c:892 +#: ../src/iop/negadoctor.c:911 msgctxt "section" msgid "scanner exposure settings" msgstr "Экспозиция сканера" -#: ../src/iop/negadoctor.c:896 +#: ../src/iop/negadoctor.c:915 msgid "" "correct the exposure of the scanner, for all RGB channels,\n" "before the inversion, so blacks are neither clipped or too pale." msgstr "Коррекция экспозиции перед инвертированием" #. WB shadows -#: ../src/iop/negadoctor.c:903 +#: ../src/iop/negadoctor.c:922 msgctxt "section" msgid "shadows color cast" msgstr "Цветовой сдвиг в тенях" -#: ../src/iop/negadoctor.c:909 +#: ../src/iop/negadoctor.c:928 msgid "select color of shadows from a swatch" msgstr "Выбор значения цвета теней из образцов" -#: ../src/iop/negadoctor.c:914 +#: ../src/iop/negadoctor.c:933 msgid "pick shadows color from image" msgstr "Взять значение цвета теней с изображения" -#: ../src/iop/negadoctor.c:920 +#: ../src/iop/negadoctor.c:939 msgid "shadows red offset" msgstr "Тени красного цвета со смещением" -#: ../src/iop/negadoctor.c:921 ../src/iop/negadoctor.c:928 -#: ../src/iop/negadoctor.c:935 +#: ../src/iop/negadoctor.c:940 ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:954 msgid "" "correct the color cast in shadows so blacks are\n" "truly achromatic. Setting this value before\n" @@ -18107,34 +18754,34 @@ "recovering the global white balance in difficult cases." msgstr "Коррекция цвета теней" -#: ../src/iop/negadoctor.c:927 +#: ../src/iop/negadoctor.c:946 msgid "shadows green offset" msgstr "Тени зеленного цвета со смещением" -#: ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:953 msgid "shadows blue offset" msgstr "Тени синего цвета со смещением" #. WB highlights -#: ../src/iop/negadoctor.c:941 +#: ../src/iop/negadoctor.c:960 msgctxt "section" msgid "highlights white balance" msgstr "Цветовой сдвиг в светах" -#: ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:966 msgid "select color of illuminant from a swatch" msgstr "Выбор значения цвета светов из образцов" -#: ../src/iop/negadoctor.c:952 +#: ../src/iop/negadoctor.c:971 msgid "pick illuminant color from image" msgstr "Взять цвет светов с изображения" -#: ../src/iop/negadoctor.c:958 +#: ../src/iop/negadoctor.c:977 msgid "illuminant red gain" msgstr "Красный" -#: ../src/iop/negadoctor.c:959 ../src/iop/negadoctor.c:966 -#: ../src/iop/negadoctor.c:973 +#: ../src/iop/negadoctor.c:978 ../src/iop/negadoctor.c:985 +#: ../src/iop/negadoctor.c:992 msgid "" "correct the color of the illuminant so whites are\n" "truly achromatic. Setting this value after\n" @@ -18142,39 +18789,39 @@ "recovering the global white balance in difficult cases." msgstr "Коррекция цвета светов" -#: ../src/iop/negadoctor.c:965 +#: ../src/iop/negadoctor.c:984 msgid "illuminant green gain" msgstr "Зелёный" -#: ../src/iop/negadoctor.c:972 +#: ../src/iop/negadoctor.c:991 msgid "illuminant blue gain" msgstr "Синий" #. Page PRINT PROPERTIES -#: ../src/iop/negadoctor.c:979 +#: ../src/iop/negadoctor.c:998 msgid "print properties" msgstr "Печать" #. print corrections -#: ../src/iop/negadoctor.c:982 +#: ../src/iop/negadoctor.c:1001 msgctxt "section" msgid "virtual paper properties" msgstr "Виртуальная бумага" -#: ../src/iop/negadoctor.c:988 +#: ../src/iop/negadoctor.c:1007 msgid "" "correct the density of black after the inversion,\n" "to adjust the global contrast while avoiding clipping shadows." msgstr "Коррекция плотности чёрного" -#: ../src/iop/negadoctor.c:993 +#: ../src/iop/negadoctor.c:1012 msgid "" "select the grade of the virtual paper, which is actually\n" "equivalent to applying a gamma. it compensates the film D max\n" "and recovers the contrast. use a high grade for high D max." msgstr "Качество виртуальной бумаги (гамма)" -#: ../src/iop/negadoctor.c:1001 +#: ../src/iop/negadoctor.c:1020 msgid "" "gradually compress specular highlights past this value\n" "to avoid clipping while pushing the exposure for mid-tones.\n" @@ -18184,63 +18831,95 @@ "чтобы избежать обрезки при увеличении экспозиции для средних тонов.\n" "это несколько воспроизводит поведение матовой бумаги." -#: ../src/iop/negadoctor.c:1005 +#: ../src/iop/negadoctor.c:1024 msgctxt "section" msgid "virtual print emulation" msgstr "Эмуляция виртуального принтера" -#: ../src/iop/negadoctor.c:1012 +#: ../src/iop/negadoctor.c:1031 msgid "" "correct the printing exposure after inversion to adjust\n" "the global contrast and avoid clipping highlights." msgstr "Коррекция экспозиции после инвертирования" -#: ../src/iop/negadoctor.c:1020 +#: ../src/iop/negadoctor.c:1039 msgid "toggle on or off the color controls" msgstr "Переключить статус кнопок управления цветом" -#: ../src/iop/nlmeans.c:84 +#: ../src/iop/nlmeans.c:78 msgid "astrophoto denoise" msgstr "Шумоподавление (астрофото)" -#: ../src/iop/nlmeans.c:89 +#: ../src/iop/nlmeans.c:83 msgid "denoise (non-local means)" msgstr "Шумоподавление (НЛС)" -#: ../src/iop/nlmeans.c:94 +#: ../src/iop/nlmeans.c:88 msgid "apply a poisson noise removal best suited for astrophotography" msgstr "Подавление пуассонова шума, наиболее пригодное для астрофотографии" -#: ../src/iop/nlmeans.c:459 +#: ../src/iop/nlmeans.c:462 msgid "radius of the patches to match" msgstr "Радиус сравниваемых участков" -#: ../src/iop/nlmeans.c:467 +#: ../src/iop/nlmeans.c:470 msgid "how much to smooth brightness" msgstr "Интенсивность эффекта в яркостном канале" -#: ../src/iop/nlmeans.c:470 +#: ../src/iop/nlmeans.c:473 msgid "how much to smooth colors" msgstr "Интенсивность эффекта в цветностных каналах" #. * let's fill the encapsulating widgets #. preview mode #. color scheme -#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2419 -#: ../src/views/darkroom.c:2437 ../src/views/darkroom.c:2444 -#: ../src/views/darkroom.c:2454 ../src/views/darkroom.c:2471 +#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2258 +#: ../src/views/darkroom.c:2276 ../src/views/darkroom.c:2283 +#: ../src/views/darkroom.c:2293 ../src/views/darkroom.c:2310 msgid "overexposed" msgstr "Модуль ошибок экспозиции" -#: ../src/iop/overexposed.c:130 ../src/iop/overexposed.c:360 +#: ../src/iop/overexposed.c:123 ../src/iop/overexposed.c:352 msgid "module overexposed failed in buffer allocation" msgstr "Модуль ошибок экспозиции: Ошибка выделения буфера!" -#: ../src/iop/overexposed.c:156 ../src/iop/overexposed.c:370 +#: ../src/iop/overexposed.c:149 ../src/iop/overexposed.c:362 msgid "module overexposed failed in color conversion" msgstr "" "Модуль ошибок экспозиции: Ошибка преобразования цветового пространства!" +#: ../src/iop/primaries.c:74 +msgid "rgb primaries" +msgstr "Основные параметры RGB" + +#: ../src/iop/primaries.c:79 +msgid "adjustment of the RGB color primaries for color grading" +msgstr "Настройка основных цветов RGB для цветокоррекции" + +#: ../src/iop/primaries.c:395 +msgid "shift red towards yellow or magenta" +msgstr "Изменить красный цвет на желтый или пурпурный" + +#: ../src/iop/primaries.c:396 +msgid "red primary purity" +msgstr "Чистота основного красного" + +#: ../src/iop/primaries.c:397 +msgid "shift green towards cyan or yellow" +msgstr "Изменить зеленый цвет на циановый или желтый" + +#: ../src/iop/primaries.c:398 +msgid "green primary purity" +msgstr "Чистота основного зеленого" + +#: ../src/iop/primaries.c:399 +msgid "shift blue towards magenta or cyan" +msgstr "Изменить синий цвет на пурпурный или циановый" + +#: ../src/iop/primaries.c:400 +msgid "blue primary purity" +msgstr "Чистота основного синего" + #: ../src/iop/profile_gamma.c:96 msgid "unbreak input profile" msgstr "Починка профиля ввода" @@ -18250,80 +18929,80 @@ msgstr "" "Починка профиля ввода за счёт нелинейного преобразования в пространстве RGB" -#: ../src/iop/profile_gamma.c:136 +#: ../src/iop/profile_gamma.c:138 msgid "16 EV dynamic range (generic)" msgstr "Динамический диапазон 16 EV" -#: ../src/iop/profile_gamma.c:142 +#: ../src/iop/profile_gamma.c:144 msgid "14 EV dynamic range (generic)" msgstr "Динамический диапазон 14 EV" -#: ../src/iop/profile_gamma.c:148 +#: ../src/iop/profile_gamma.c:150 msgid "12 EV dynamic range (generic)" msgstr "Динамический диапазон 12 EV" -#: ../src/iop/profile_gamma.c:154 +#: ../src/iop/profile_gamma.c:156 msgid "10 EV dynamic range (generic)" msgstr "Динамический диапазон 10 EV" -#: ../src/iop/profile_gamma.c:160 +#: ../src/iop/profile_gamma.c:162 msgid "08 EV dynamic range (generic)" msgstr "Динамический диапазон 08 EV" -#: ../src/iop/profile_gamma.c:623 +#: ../src/iop/profile_gamma.c:637 msgid "linear part" msgstr "Линейный участок корректировочной кривой" -#: ../src/iop/profile_gamma.c:627 +#: ../src/iop/profile_gamma.c:641 msgid "gamma exponential factor" msgstr "Экспоненциальный коэффициент гаммы" -#: ../src/iop/profile_gamma.c:638 +#: ../src/iop/profile_gamma.c:652 msgid "adjust to match the average luma of the subject" msgstr "Коррекция серой точки" -#: ../src/iop/profile_gamma.c:644 +#: ../src/iop/profile_gamma.c:658 msgid "" "number of stops between middle gray and pure black\n" "this is a reading a light meter would give you on the scene" msgstr "Диапазон между серой точкой и абсолютно чёрным" -#: ../src/iop/profile_gamma.c:650 +#: ../src/iop/profile_gamma.c:664 msgid "" "number of stops between pure black and pure white\n" "this is a reading a light meter would give you on the scene" msgstr "Диапазон между абсолютно чёрным и чистым белым" -#: ../src/iop/profile_gamma.c:652 +#: ../src/iop/profile_gamma.c:666 msgctxt "section" msgid "optimize automatically" msgstr "Автоматические настройки" -#: ../src/iop/profile_gamma.c:656 +#: ../src/iop/profile_gamma.c:670 msgid "" -"enlarge or shrink the computed dynamic range\n" -"this is useful when noise perturbates the measurements" +"increase or decrease the computed dynamic range\n" +"this is useful when noise distorts the measurement" msgstr "" "Относительное изменение широты динамического диапазона.\n" "Полезно при больших значениях шума." -#: ../src/iop/profile_gamma.c:660 +#: ../src/iop/profile_gamma.c:674 msgid "make an optimization with some guessing" msgstr "Автоматический расчёт уровней" -#: ../src/iop/profile_gamma.c:669 +#: ../src/iop/profile_gamma.c:683 msgid "tone mapping method" msgstr "Отображение тонов" -#: ../src/iop/rawdenoise.c:124 +#: ../src/iop/rawdenoise.c:138 msgid "raw denoise" msgstr "Шумоподавление Raw" -#: ../src/iop/rawdenoise.c:129 +#: ../src/iop/rawdenoise.c:143 msgid "denoise the raw picture early in the pipeline" msgstr "Шумоподавление на ранней стадии обработки изображения" -#: ../src/iop/rawdenoise.c:939 +#: ../src/iop/rawdenoise.c:955 msgid "" "raw denoising\n" "only works for raw images." @@ -18333,9 +19012,9 @@ #. * let's fill the encapsulating widgets #. mode of operation -#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2387 ../src/views/darkroom.c:2393 -#: ../src/views/darkroom.c:2406 +#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2226 ../src/views/darkroom.c:2232 +#: ../src/views/darkroom.c:2245 msgid "raw overexposed" msgstr "Ошибки экспозиции" @@ -18344,69 +19023,69 @@ msgid "raw black/white point" msgstr "Чёрная и белая точки Raw" -#: ../src/iop/rawprepare.c:156 +#: ../src/iop/rawprepare.c:172 msgid "" "sets technical specificities of the raw sensor.\n" "touch with great care!" msgstr "Настройка технических параметров сенсора" -#: ../src/iop/rawprepare.c:168 +#: ../src/iop/rawprepare.c:184 msgid "passthrough" msgstr "Проброс" -#: ../src/iop/rawprepare.c:655 +#: ../src/iop/rawprepare.c:663 msgid "invalid crop parameters" msgstr "Некорректные параметры кадрирования" -#: ../src/iop/rawprepare.c:656 +#: ../src/iop/rawprepare.c:664 msgid "" "please reset to defaults, update your preset or set to something correct" msgstr "" "Пожалуйста, вернитесь к настройкам по умолчанию, обновите свой профиль или " "установите правильные параметры" -#: ../src/iop/rawprepare.c:922 +#: ../src/iop/rawprepare.c:930 msgid "black level 0" msgstr "Уровень чёрного 0" -#: ../src/iop/rawprepare.c:923 +#: ../src/iop/rawprepare.c:931 msgid "black level 1" msgstr "Уровень чёрного 1" -#: ../src/iop/rawprepare.c:924 +#: ../src/iop/rawprepare.c:932 msgid "black level 2" msgstr "Уровень чёрного 2" -#: ../src/iop/rawprepare.c:925 +#: ../src/iop/rawprepare.c:933 msgid "black level 3" msgstr "Уровень чёрного 3" -#: ../src/iop/rawprepare.c:952 +#: ../src/iop/rawprepare.c:960 msgid "raw flat field correction to compensate for lens shading" msgstr "Коррекция плоского поля для компенсации затенения объектива" -#: ../src/iop/rawprepare.c:957 +#: ../src/iop/rawprepare.c:965 msgctxt "section" msgid "crop" msgstr "Кадрирование" -#: ../src/iop/rawprepare.c:960 +#: ../src/iop/rawprepare.c:968 msgid "crop left border" msgstr "Обрезка слева" -#: ../src/iop/rawprepare.c:964 +#: ../src/iop/rawprepare.c:972 msgid "crop top border" msgstr "Обрезка сверху" -#: ../src/iop/rawprepare.c:968 +#: ../src/iop/rawprepare.c:976 msgid "crop right border" msgstr "Обрезка справа" -#: ../src/iop/rawprepare.c:972 +#: ../src/iop/rawprepare.c:980 msgid "crop bottom border" msgstr "Обрезка снизу" -#: ../src/iop/rawprepare.c:981 +#: ../src/iop/rawprepare.c:989 msgid "" "raw black/white point correction\n" "only works for the sensors that need it." @@ -18434,11 +19113,11 @@ "Этот модуль объявлен устаревшим.\n" "Используйте модуль «Эквалайзер тонов»." -#: ../src/iop/relight.c:263 +#: ../src/iop/relight.c:259 msgid "the fill-light in EV" msgstr "Заполнение светом в шагах экспозиции" -#: ../src/iop/relight.c:272 +#: ../src/iop/relight.c:268 msgid "" "select the center of fill-light\n" "ctrl+click to select an area" @@ -18446,16 +19125,11 @@ "Выбор центра заполнения светом.\n" "Ctrl+Щелчок для выбора области." -#: ../src/iop/relight.c:276 +#: ../src/iop/relight.c:272 msgid "toggle tool for picking median lightness in image" msgstr "Взять значение усреднённой светлоты с изображения" -#: ../src/iop/relight.c:279 ../src/libs/export.c:1131 -#: ../src/libs/metadata_view.c:147 ../src/libs/print_settings.c:2537 -msgid "width" -msgstr "Ширина" - -#: ../src/iop/relight.c:280 +#: ../src/iop/relight.c:276 msgid "width of fill-light area defined in zones" msgstr "Ширина области, заполняемой светом, выраженная в зонах" @@ -18475,31 +19149,31 @@ msgid "geometric and frequential, RGB" msgstr "Геометрия, частотный разбор, RGB" -#: ../src/iop/retouch.c:1538 +#: ../src/iop/retouch.c:1689 msgid "cannot display scales when the blending mask is displayed" msgstr "" "Не возможно отобразить уровни при включенном режиме отображения маски " "смешивания" -#: ../src/iop/retouch.c:1861 ../src/iop/retouch.c:1863 -#: ../src/iop/retouch.c:1865 ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2045 ../src/iop/retouch.c:2047 +#: ../src/iop/retouch.c:2049 ../src/iop/retouch.c:2051 #, c-format msgid "default tool changed to %s" msgstr "Инструмент по умолчанию изменён на «%s»" -#: ../src/iop/retouch.c:1861 +#: ../src/iop/retouch.c:2045 msgid "cloning" msgstr "Клонирование" -#: ../src/iop/retouch.c:1863 +#: ../src/iop/retouch.c:2047 msgid "healing" msgstr "Восстановление" -#: ../src/iop/retouch.c:2226 +#: ../src/iop/retouch.c:2448 msgid "shapes:" msgstr "Фигуры:" -#: ../src/iop/retouch.c:2230 +#: ../src/iop/retouch.c:2454 msgid "" "to add a shape select an algorithm and a shape type and click on the image.\n" "shapes are added to the current scale" @@ -18508,77 +19182,73 @@ "изображении.\n" "Фигуры добавляются в текущий уровень." -#. display & suppress masks -#. copy/paste shapes -#. display final image/current scale -#. auto-levels button -#: ../src/iop/retouch.c:2233 ../src/iop/retouch.c:2334 -#: ../src/iop/retouch.c:2339 ../src/iop/retouch.c:2347 -#: ../src/iop/retouch.c:2351 ../src/iop/retouch.c:2358 -#: ../src/iop/retouch.c:2392 +#: ../src/iop/retouch.c:2458 ../src/iop/retouch.c:2591 +#: ../src/iop/retouch.c:2597 ../src/iop/retouch.c:2606 +#: ../src/iop/retouch.c:2611 ../src/iop/retouch.c:2619 +#: ../src/iop/retouch.c:2664 msgid "editing" msgstr "Изменить" -#: ../src/iop/retouch.c:2233 +#: ../src/iop/retouch.c:2459 msgid "show and edit shapes on the current scale" msgstr "Показывать и менять фигуры в текущем уровне" -#: ../src/iop/retouch.c:2234 +#: ../src/iop/retouch.c:2460 msgid "show and edit shapes in restricted mode" msgstr "Показывать и менять фигуры в ограниченном режиме" -#: ../src/iop/retouch.c:2257 +#: ../src/iop/retouch.c:2489 msgid "algorithms:" msgstr "Инструменты:" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2498 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2510 msgid "tools" msgstr "Инструменты" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2278 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2518 msgid "activate blur tool" msgstr "Размытие" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2493 ../src/iop/retouch.c:2499 +#: ../src/iop/retouch.c:2505 ../src/iop/retouch.c:2511 msgid "change algorithm for current form" msgstr "Изменить алгоритм для активной фигуры" -#: ../src/iop/retouch.c:2264 ../src/iop/retouch.c:2281 +#: ../src/iop/retouch.c:2498 ../src/iop/retouch.c:2521 msgid "activate fill tool" msgstr "Заливка" -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2284 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2524 msgid "activate cloning tool" msgstr "Клонирование" -#: ../src/iop/retouch.c:2272 ../src/iop/retouch.c:2287 +#: ../src/iop/retouch.c:2510 ../src/iop/retouch.c:2527 msgid "activate healing tool" msgstr "Восстановление" #. overwrite tooltip ourself to handle shift+click -#: ../src/iop/retouch.c:2276 +#: ../src/iop/retouch.c:2516 msgid "ctrl+click to change tool for current form" msgstr "Ctrl+Щелчок для изменения инструмента для активной фигуры" -#: ../src/iop/retouch.c:2277 +#: ../src/iop/retouch.c:2517 msgid "shift+click to set the tool as default" msgstr "Shift+Щелчок для выбора инструмента по умолчанию" -#: ../src/iop/retouch.c:2296 +#: ../src/iop/retouch.c:2537 msgid "scales:" msgstr "Уровней:" -#: ../src/iop/retouch.c:2301 +#: ../src/iop/retouch.c:2544 msgid "current:" msgstr "Текущий:" -#: ../src/iop/retouch.c:2306 +#: ../src/iop/retouch.c:2551 msgid "merge from:" msgstr "Объединение с:" -#: ../src/iop/retouch.c:2314 +#: ../src/iop/retouch.c:2562 msgid "" "top slider adjusts where the merge scales start\n" "bottom slider adjusts the number of scales\n" @@ -18592,44 +19262,44 @@ "Верхняя линия показывает видимость уровня при данном масштабировании.\n" "Нижняя линия показывает наличие фигур в уровне." -#: ../src/iop/retouch.c:2334 +#: ../src/iop/retouch.c:2591 msgid "display masks" msgstr "Показать маски" -#: ../src/iop/retouch.c:2339 +#: ../src/iop/retouch.c:2597 msgid "temporarily switch off shapes" msgstr "Временно отключить фигуры" -#: ../src/iop/retouch.c:2347 +#: ../src/iop/retouch.c:2606 msgid "paste cut shapes to current scale" msgstr "Вставить вырезанные фигуры в текущий уровень" -#: ../src/iop/retouch.c:2351 +#: ../src/iop/retouch.c:2611 msgid "cut shapes from current scale" msgstr "Вырезать фигуры из текущего уровня" -#: ../src/iop/retouch.c:2358 +#: ../src/iop/retouch.c:2619 msgid "display wavelet scale" msgstr "Показать частотный уровень" -#: ../src/iop/retouch.c:2366 +#: ../src/iop/retouch.c:2627 msgctxt "section" msgid "preview single scale" msgstr "Предпросмотр одного уровня" -#: ../src/iop/retouch.c:2377 +#: ../src/iop/retouch.c:2641 msgid "adjust preview levels" msgstr "Уровни предпросмотра" -#: ../src/iop/retouch.c:2392 ../src/iop/rgblevels.c:1051 +#: ../src/iop/retouch.c:2664 ../src/iop/rgblevels.c:1106 msgid "auto levels" msgstr "Автоуровни" -#: ../src/iop/retouch.c:2400 +#: ../src/iop/retouch.c:2672 msgid "shape selected:" msgstr "Выбранная фигура: " -#: ../src/iop/retouch.c:2405 +#: ../src/iop/retouch.c:2678 msgid "" "click on a shape to select it,\n" "to unselect click on an empty space" @@ -18637,60 +19307,60 @@ "Щёлкните по фигуре, чтобы её выбрать.\n" "Щёлкните по пустому пространству, чтобы снять выделение." -#: ../src/iop/retouch.c:2412 +#: ../src/iop/retouch.c:2687 msgid "erase the detail or fills with chosen color" msgstr "Стереть детали или залить их выбранным цветом" -#: ../src/iop/retouch.c:2419 +#: ../src/iop/retouch.c:2697 msgid "fill color: " msgstr "Цвет заливки: " -#: ../src/iop/retouch.c:2424 ../src/iop/retouch.c:2425 +#: ../src/iop/retouch.c:2702 ../src/iop/retouch.c:2703 msgid "select fill color" msgstr "Выбор цвета заливки" -#: ../src/iop/retouch.c:2430 +#: ../src/iop/retouch.c:2713 msgid "pick fill color from image" msgstr "Взять цвет заливки с изображения" -#: ../src/iop/retouch.c:2431 +#: ../src/iop/retouch.c:2714 msgid "pick fill color" msgstr "Снять цвет заливки" -#: ../src/iop/retouch.c:2439 +#: ../src/iop/retouch.c:2724 msgid "adjusts color brightness to fine-tune it. works with erase as well" msgstr "Меняет яркость цвета, работает в режиме стирания" -#: ../src/iop/retouch.c:2445 +#: ../src/iop/retouch.c:2730 msgid "type for the blur algorithm" msgstr "Алгоритм размытия" -#: ../src/iop/retouch.c:2449 +#: ../src/iop/retouch.c:2734 msgid "radius of the selected blur type" msgstr "Радиус для выбранного вида размытия" -#: ../src/iop/retouch.c:2455 +#: ../src/iop/retouch.c:2741 msgid "set the opacity on the selected shape" msgstr "Непрозрачность выбранной фигуры" -#: ../src/iop/retouch.c:2461 +#: ../src/iop/retouch.c:2748 msgctxt "section" msgid "retouch tools" msgstr "Инструменты ретуши" #. wavelet decompose -#: ../src/iop/retouch.c:2470 +#: ../src/iop/retouch.c:2757 msgctxt "section" msgid "wavelet decompose" msgstr "Частотный разбор" #. shapes -#: ../src/iop/retouch.c:2484 +#: ../src/iop/retouch.c:2771 msgctxt "section" msgid "shapes" msgstr "Фигуры" -#: ../src/iop/retouch.c:3589 ../src/iop/retouch.c:4427 +#: ../src/iop/retouch.c:3986 ../src/iop/retouch.c:4956 #, c-format msgid "max scale is %i for this image size" msgstr "Максимальный масштаб %i" @@ -18699,61 +19369,61 @@ msgid "rgb curve" msgstr "Тональная кривая RGB" -#: ../src/iop/rgbcurve.c:142 +#: ../src/iop/rgbcurve.c:144 msgid "alter an image’s tones using curves in RGB color space" msgstr "" "Преобразование тоновоспроизведения изображения при помощи кривых в " "пространстве RGB" -#: ../src/iop/rgbcurve.c:193 ../src/iop/tonecurve.c:548 +#: ../src/iop/rgbcurve.c:195 ../src/iop/tonecurve.c:569 msgid "gamma 1.0 (linear)" msgstr "Гамма 1,0 (линейн.)" -#: ../src/iop/rgbcurve.c:203 ../src/iop/tonecurve.c:558 +#: ../src/iop/rgbcurve.c:205 ../src/iop/tonecurve.c:579 msgid "contrast - med (linear)" msgstr "Контраст — медиана (линейн.)" -#: ../src/iop/rgbcurve.c:212 ../src/iop/tonecurve.c:567 +#: ../src/iop/rgbcurve.c:214 ../src/iop/tonecurve.c:588 msgid "contrast - high (linear)" msgstr "Контраст — верхи (линейн.)" -#: ../src/iop/rgbcurve.c:226 ../src/iop/tonecurve.c:579 +#: ../src/iop/rgbcurve.c:228 ../src/iop/tonecurve.c:600 msgid "contrast - med (gamma 2.2)" msgstr "Контраст — медиана (гамма 2,2)" -#: ../src/iop/rgbcurve.c:239 ../src/iop/tonecurve.c:590 +#: ../src/iop/rgbcurve.c:241 ../src/iop/tonecurve.c:611 msgid "contrast - high (gamma 2.2)" msgstr "Контраст — верхи (гамма 2,2)" -#: ../src/iop/rgbcurve.c:252 ../src/iop/tonecurve.c:603 +#: ../src/iop/rgbcurve.c:254 ../src/iop/tonecurve.c:624 msgid "gamma 2.0" msgstr "Гамма 2,0" -#: ../src/iop/rgbcurve.c:258 ../src/iop/tonecurve.c:609 +#: ../src/iop/rgbcurve.c:260 ../src/iop/tonecurve.c:630 msgid "gamma 0.5" msgstr "Гамма 0,5" -#: ../src/iop/rgbcurve.c:263 ../src/iop/tonecurve.c:614 +#: ../src/iop/rgbcurve.c:265 ../src/iop/tonecurve.c:635 msgid "logarithm (base 2)" msgstr "Логарифм (основание 2)" -#: ../src/iop/rgbcurve.c:268 ../src/iop/tonecurve.c:619 +#: ../src/iop/rgbcurve.c:270 ../src/iop/tonecurve.c:640 msgid "exponential (base 2)" msgstr "Экспонента (основание 2)" -#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:999 +#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:1038 msgid "choose between linked and independent channels." msgstr "Выбор режима между объединёнными и независимыми каналами." -#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1003 +#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1043 msgid "curve nodes for r channel" msgstr "Областей в красном канале" -#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1004 +#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1044 msgid "curve nodes for g channel" msgstr "Областей в зелёном канале" -#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1005 +#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1045 msgid "curve nodes for b channel" msgstr "Областей в синем канале" @@ -18761,15 +19431,15 @@ msgid "rgb levels" msgstr "Уровни RGB" -#: ../src/iop/rgblevels.c:122 +#: ../src/iop/rgblevels.c:124 msgid "adjust black, white and mid-gray points in RGB color space" msgstr "Настройка чёрной, серой и белой точек изображения в пространстве RGB" -#: ../src/iop/rgblevels.c:1056 +#: ../src/iop/rgblevels.c:1112 msgid "auto region" msgstr "Автоматическая экспозиция области" -#: ../src/iop/rgblevels.c:1058 +#: ../src/iop/rgblevels.c:1115 msgid "" "apply auto levels based on a region defined by the user\n" "click and drag to draw the area\n" @@ -18785,18 +19455,18 @@ msgid "rotate pixels" msgstr "Вращение пикселей" -#: ../src/iop/rotatepixels.c:97 ../src/iop/scalepixels.c:82 +#: ../src/iop/rotatepixels.c:99 ../src/iop/scalepixels.c:84 msgid "" "internal module to setup technical specificities of raw sensor.\n" "\n" "you should not touch values here!" msgstr "Настройка технических параметров сенсора" -#: ../src/iop/rotatepixels.c:366 +#: ../src/iop/rotatepixels.c:381 msgid "automatic pixel rotation" msgstr "Автоматическое вращение пикселей" -#: ../src/iop/rotatepixels.c:367 +#: ../src/iop/rotatepixels.c:382 msgid "" "automatic pixel rotation\n" "only works for the sensors that need it." @@ -18810,11 +19480,11 @@ msgid "scale pixels" msgstr "Масштабирование пикселей" -#: ../src/iop/scalepixels.c:271 +#: ../src/iop/scalepixels.c:281 msgid "automatic pixel scaling" msgstr "Автоматическое масштабирование пикселей" -#: ../src/iop/scalepixels.c:272 +#: ../src/iop/scalepixels.c:282 msgid "" "automatic pixel scaling\n" "only works for the sensors that need it." @@ -18823,11 +19493,11 @@ "включается только при работе с требующими\n" "этого сенсорами" -#: ../src/iop/shadhi.c:175 +#: ../src/iop/shadhi.c:120 msgid "shadows and highlights" msgstr "Тени и света" -#: ../src/iop/shadhi.c:195 +#: ../src/iop/shadhi.c:142 msgid "" "modify the tonal range of the shadows and highlights\n" "of an image by enhancing local contrast." @@ -18835,27 +19505,27 @@ "Изменение диапазона тонов в тенях и светах за счёт усиления локального " "контраста" -#: ../src/iop/shadhi.c:676 ../src/iop/splittoning.c:548 +#: ../src/iop/shadhi.c:711 ../src/iop/splittoning.c:544 msgid "compress" msgstr "Сжатие" -#: ../src/iop/shadhi.c:683 +#: ../src/iop/shadhi.c:718 msgid "correct shadows" msgstr "Скорректировать тени" -#: ../src/iop/shadhi.c:684 +#: ../src/iop/shadhi.c:719 msgid "correct highlights" msgstr "Скорректировать света" -#: ../src/iop/shadhi.c:685 +#: ../src/iop/shadhi.c:720 msgid "shift white point" msgstr "Сдвиг белой точки" -#: ../src/iop/shadhi.c:687 +#: ../src/iop/shadhi.c:722 msgid "filter to use for softening. bilateral avoids halos" msgstr "Алгоритм размытия. Билатеральный фильтр позволяет избежать ореолов." -#: ../src/iop/shadhi.c:688 +#: ../src/iop/shadhi.c:723 msgid "" "compress the effect on shadows/highlights and\n" "preserve mid-tones" @@ -18863,11 +19533,11 @@ "Сжать эффект на тенях/бликах и\n" "сохранить полутона" -#: ../src/iop/shadhi.c:689 +#: ../src/iop/shadhi.c:724 msgid "adjust saturation of shadows" msgstr "Скорректировать насыщенность тона теней" -#: ../src/iop/shadhi.c:690 +#: ../src/iop/shadhi.c:725 msgid "adjust saturation of highlights" msgstr "Скорректировать насыщенность тона светов" @@ -18876,45 +19546,45 @@ msgid "sharpen" msgstr "Резкость" -#: ../src/iop/sharpen.c:93 +#: ../src/iop/sharpen.c:95 msgid "sharpen the details in the image using a standard UnSharp Mask (USM)" msgstr "Повышение резкости изображения при помощи нерезкого маскирования" -#: ../src/iop/sharpen.c:95 +#: ../src/iop/sharpen.c:97 msgid "linear or non-linear, Lab, display or scene-referred" msgstr "Линейн. или нелинейн., Lab, базовая или плёночная тональная кривая RGB" -#: ../src/iop/sharpen.c:97 +#: ../src/iop/sharpen.c:99 msgid "quasi-linear, Lab, display or scene-referred" msgstr "Квазилинейн., Lab, базовая или плёночная тональная кривая RGB" #. add the preset. #. restrict to raw images -#: ../src/iop/sharpen.c:104 ../src/iop/sharpen.c:108 +#: ../src/iop/sharpen.c:106 ../src/iop/sharpen.c:110 msgid "sharpen" msgstr "Увеличить резкость" -#: ../src/iop/sharpen.c:443 +#: ../src/iop/sharpen.c:438 msgid "spatial extent of the unblurring" msgstr "Пространственный предел повышения резкости" -#: ../src/iop/sharpen.c:447 +#: ../src/iop/sharpen.c:442 msgid "strength of the sharpen" msgstr "Интенсивность эффекта повышения резкости" -#: ../src/iop/sharpen.c:451 +#: ../src/iop/sharpen.c:446 msgid "threshold to activate sharpen" msgstr "Порог активации повышения резкости" -#: ../src/iop/sigmoid.c:89 +#: ../src/iop/sigmoid.c:195 msgid "sigmoid" msgstr "Сигмоида" -#: ../src/iop/sigmoid.c:94 +#: ../src/iop/sigmoid.c:200 msgid "tone mapping|view transform|display transform" msgstr "tone mapping|view transform|display transform" -#: ../src/iop/sigmoid.c:99 +#: ../src/iop/sigmoid.c:206 msgid "" "apply a view transform to make a image displayable\n" "on a screen or print. uses a robust and smooth\n" @@ -18924,19 +19594,19 @@ "для показа на экране или для печати. Использует гладкую и устойчивую\n" "тональную кривую с дополнительными методами сохранения цвета." -#: ../src/iop/sigmoid.c:155 +#: ../src/iop/sigmoid.c:258 msgid "neutral gray" msgstr "Нейтральный серый" -#: ../src/iop/sigmoid.c:160 +#: ../src/iop/sigmoid.c:264 msgid "ACES 100-nit like" msgstr "ACES 100-nit like" -#: ../src/iop/sigmoid.c:165 +#: ../src/iop/sigmoid.c:270 msgid "Reinhard" msgstr "Рейнхард" -#: ../src/iop/sigmoid.c:683 +#: ../src/iop/sigmoid.c:917 msgid "" "compression of the applied curve\n" "implicitly defines the supported input dynamic range" @@ -18944,7 +19614,7 @@ "Сжатие примененной кривой\n" "косвенно определяет поддерживаемый динамический диапазон ввода" -#: ../src/iop/sigmoid.c:686 +#: ../src/iop/sigmoid.c:920 msgid "" "shift the compression towards shadows or highlights.\n" "negative values increase contrast in shadows.\n" @@ -18956,7 +19626,7 @@ "Положительные значения усиливают контраст в светах.\n" "На противоположной стороне будет наблюдаться уменьшение контраста." -#: ../src/iop/sigmoid.c:695 +#: ../src/iop/sigmoid.c:929 msgid "" "optional correction of the hue twist introduced by\n" "the per-channel processing method." @@ -18964,15 +19634,57 @@ "Дополнительная коррекция тона\n" "методом поканальной обработки." -#: ../src/iop/sigmoid.c:702 +#: ../src/iop/sigmoid.c:936 ../src/iop/sigmoid.c:940 +msgid "primaries" +msgstr "Основные цвета" + +#: ../src/iop/sigmoid.c:937 +msgid "set custom primaries" +msgstr "Установить основные настройки" + +#: ../src/iop/sigmoid.c:943 +msgid "primaries to use as the base for below adjustments" +msgstr "" +"Основные цвета, которые будут использоваться в качестве основы для " +"приведенных ниже настроек" + +#: ../src/iop/sigmoid.c:962 +msgid "attenuate the purity of the red primary" +msgstr "Ослабление основного красного" + +#: ../src/iop/sigmoid.c:963 +msgid "rotate the red primary" +msgstr "Повернуть красный основной" + +#: ../src/iop/sigmoid.c:964 +msgid "attenuate the purity of the green primary" +msgstr "Ослабление основного зеленого" + +#: ../src/iop/sigmoid.c:965 +msgid "rotate the green primary" +msgstr "Повернуть зеленый основной" + +#: ../src/iop/sigmoid.c:966 +msgid "attenuate the purity of the blue primary" +msgstr "Ослабление основного синего" + +#: ../src/iop/sigmoid.c:967 +msgid "rotate the blue primary" +msgstr "Повернуть синий основной" + +#: ../src/iop/sigmoid.c:974 +msgid "recover some of the original purity after the inset" +msgstr "Частично восстановить первоначальную чистоту после вставки" + +#: ../src/iop/sigmoid.c:978 msgid "display luminance" msgstr "Яркость дисплея" -#: ../src/iop/sigmoid.c:706 +#: ../src/iop/sigmoid.c:979 msgid "set display black/white targets" msgstr "Установите отображение целевого черного/белого" -#: ../src/iop/sigmoid.c:714 +#: ../src/iop/sigmoid.c:987 msgid "" "the black luminance of the target display or print.\n" "can be used creatively for a faded look." @@ -18980,7 +19692,7 @@ "Целевой черный при отображении на экране или печати.\n" "Может быть использован для создания эффекта \"выцветших\" цветов." -#: ../src/iop/sigmoid.c:719 +#: ../src/iop/sigmoid.c:992 msgid "" "the white luminance of the target display or print.\n" "can be used creatively for a faded look or blowing out whites earlier." @@ -18993,23 +19705,23 @@ msgid "soften" msgstr "Смягчающий фильтр" -#: ../src/iop/soften.c:100 +#: ../src/iop/soften.c:102 msgid "create a softened image using the Orton effect" msgstr "Смягчающий фильтр (эффект Ортона)" -#: ../src/iop/soften.c:371 +#: ../src/iop/soften.c:366 msgid "the size of blur" msgstr "Величина размытия" -#: ../src/iop/soften.c:375 +#: ../src/iop/soften.c:370 msgid "the saturation of blur" msgstr "Насыщенность размытия" -#: ../src/iop/soften.c:379 +#: ../src/iop/soften.c:374 msgid "the brightness of blur" msgstr "Яркость размытия" -#: ../src/iop/soften.c:383 +#: ../src/iop/soften.c:378 msgid "the mix of effect" msgstr "Интенсивность эффекта" @@ -19017,55 +19729,55 @@ msgid "split-toning" msgstr "Раздельное тонирование" -#: ../src/iop/splittoning.c:101 +#: ../src/iop/splittoning.c:103 msgid "" "use two specific colors for shadows and highlights and\n" "create a linear toning effect between them up to a pivot." msgstr "Раздельное тонирование светов и теней" -#: ../src/iop/splittoning.c:118 +#: ../src/iop/splittoning.c:120 msgid "authentic sepia" msgstr "Аутентичная сепия" -#: ../src/iop/splittoning.c:127 +#: ../src/iop/splittoning.c:129 msgid "authentic cyanotype" msgstr "Аутентичный цианотип" -#: ../src/iop/splittoning.c:136 +#: ../src/iop/splittoning.c:138 msgid "authentic platinotype" msgstr "Аутентичный платинотип" -#: ../src/iop/splittoning.c:145 +#: ../src/iop/splittoning.c:147 msgid "chocolate brown" msgstr "Шоколадный коричневый" -#: ../src/iop/splittoning.c:490 +#: ../src/iop/splittoning.c:486 msgid "select the saturation tone" msgstr "Выбор насыщенности тона" -#: ../src/iop/splittoning.c:494 +#: ../src/iop/splittoning.c:490 msgid "select tone color" msgstr "Выбор цвета тона" -#: ../src/iop/splittoning.c:524 +#: ../src/iop/splittoning.c:520 msgctxt "section" msgid "shadows" msgstr "Тени" -#: ../src/iop/splittoning.c:530 +#: ../src/iop/splittoning.c:526 msgctxt "section" msgid "highlights" msgstr "Освещенность" -#: ../src/iop/splittoning.c:539 +#: ../src/iop/splittoning.c:535 msgid "balance" msgstr "Баланс" -#: ../src/iop/splittoning.c:546 +#: ../src/iop/splittoning.c:542 msgid "the balance of center of split-toning" msgstr "Баланс центра раздельного тонирования" -#: ../src/iop/splittoning.c:550 +#: ../src/iop/splittoning.c:546 msgid "" "compress the effect on highlights/shadows and\n" "preserve mid-tones" @@ -19089,17 +19801,17 @@ msgid "geometric, raw" msgstr "Геометрия, Raw" -#: ../src/iop/spots.c:226 +#: ../src/iop/spots.c:238 msgid "spot module is limited to 64 shapes. please add a new instance!" msgstr "" "Модуль «Удаление пятен» поддерживает не более 64 фигур. Создайте новую копию " "модуля!" -#: ../src/iop/spots.c:872 +#: ../src/iop/spots.c:874 msgid "number of strokes:" msgstr "Количество:" -#: ../src/iop/spots.c:876 +#: ../src/iop/spots.c:878 msgid "" "click on a shape and drag on canvas.\n" "use the mouse wheel to adjust size.\n" @@ -19109,182 +19821,175 @@ "Колесо мыши меняет размер.\n" "Щелчок правой кнопкой мыши удаляет фигуру." -#: ../src/iop/spots.c:879 +#: ../src/iop/spots.c:881 msgid "show and edit shapes" msgstr "Показывать и менять фигуры" -#: ../src/iop/temperature.c:204 +#: ../src/iop/temperature.c:212 msgctxt "modulename" msgid "white balance" msgstr "Баланс белого" -#: ../src/iop/temperature.c:211 +#: ../src/iop/temperature.c:219 msgid "scale raw RGB channels to balance white and help demosaicing" msgstr "Коррекция баланса белого" -#: ../src/iop/temperature.c:1149 -msgid "white balance applied twice" -msgstr "Обнаружено несколько копий модуля «Баланс белого»" - -#: ../src/iop/temperature.c:1150 -msgid "" -"the color calibration module is enabled,\n" -"and performing chromatic adaptation.\n" -"set the white balance here to camera reference (D65)\n" -"or disable chromatic adaptation in color calibration." -msgstr "" -"Укажите «Эталонное значение из камеры» в качестве\n" -"настроек баланса белого или отключите модель адаптации\n" -"цветового пространства в модуле «Цветовая калибровка»." - -#: ../src/iop/temperature.c:1430 +#: ../src/iop/temperature.c:1388 #, c-format msgid "`%s' color matrix not found for image" msgstr "Цветовая матрица «%s» не найдена!" -#: ../src/iop/temperature.c:1459 +#: ../src/iop/temperature.c:1418 #, c-format msgid "failed to read camera white balance information from `%s'!" msgstr "Ошибка чтения данных о балансе белого камеры из «%s»!" -#: ../src/iop/temperature.c:1631 +#: ../src/iop/temperature.c:1612 msgctxt "white balance" msgid "as shot" msgstr "Из камеры" #. old "spot", reason: describes exactly what'll happen -#: ../src/iop/temperature.c:1634 +#: ../src/iop/temperature.c:1615 msgctxt "white balance" msgid "from image area" msgstr "С изображения" -#: ../src/iop/temperature.c:1635 +#: ../src/iop/temperature.c:1616 msgctxt "white balance" msgid "user modified" msgstr "Пользовательское" #. old "camera neutral", reason: better matches intent -#: ../src/iop/temperature.c:1637 +#: ../src/iop/temperature.c:1618 msgctxt "white balance" msgid "camera reference" msgstr "Эталонное значение из камеры" -#: ../src/iop/temperature.c:1920 ../src/iop/temperature.c:1938 +#: ../src/iop/temperature.c:1897 ../src/iop/temperature.c:1915 msgid "green channel coefficient" msgstr "Зелёный канал" -#: ../src/iop/temperature.c:1922 +#: ../src/iop/temperature.c:1899 msgid "magenta channel coefficient" msgstr "Пурпурный канал" -#: ../src/iop/temperature.c:1924 +#: ../src/iop/temperature.c:1901 msgid "cyan channel coefficient" msgstr "Сине-зелёный канал" -#: ../src/iop/temperature.c:1926 +#: ../src/iop/temperature.c:1903 msgid "yellow channel coefficient" msgstr "Жёлтый канал" -#: ../src/iop/temperature.c:1936 +#: ../src/iop/temperature.c:1913 msgid "red channel coefficient" msgstr "Красный канал" -#: ../src/iop/temperature.c:1940 +#: ../src/iop/temperature.c:1917 msgid "blue channel coefficient" msgstr "Синий канал" -#: ../src/iop/temperature.c:1942 +#: ../src/iop/temperature.c:1918 +msgid "emerald" +msgstr "Изумрудный" + +#: ../src/iop/temperature.c:1919 msgid "emerald channel coefficient" msgstr "Изумрудный канал" #. relabel to settings to remove confusion between module presets #. and white balance settings -#: ../src/iop/temperature.c:2029 ../src/iop/temperature.c:2042 -#: ../src/iop/temperature.c:2049 ../src/iop/temperature.c:2055 -#: ../src/iop/temperature.c:2074 +#: ../src/iop/temperature.c:1997 ../src/iop/temperature.c:2010 +#: ../src/iop/temperature.c:2017 ../src/iop/temperature.c:2023 +#: ../src/iop/temperature.c:2042 msgid "settings" msgstr "Параметры" -#: ../src/iop/temperature.c:2029 +#: ../src/iop/temperature.c:1997 msgid "as shot" msgstr "Из камеры" -#: ../src/iop/temperature.c:2032 +#: ../src/iop/temperature.c:2000 msgid "set white balance to as shot" msgstr "Значение баланса белого из камеры" -#: ../src/iop/temperature.c:2042 +#: ../src/iop/temperature.c:2010 msgid "from image area" msgstr "С изображения" -#: ../src/iop/temperature.c:2049 +#: ../src/iop/temperature.c:2017 msgid "user modified" msgstr "Пользовательские" -#: ../src/iop/temperature.c:2052 +#: ../src/iop/temperature.c:2020 msgid "set white balance to user modified" msgstr "Пользовательское значение баланса белого" -#: ../src/iop/temperature.c:2055 +#: ../src/iop/temperature.c:2023 msgid "camera reference" msgstr "Эталонное значение из камеры" -#: ../src/iop/temperature.c:2060 +#: ../src/iop/temperature.c:2028 msgid "" "set white balance to camera reference point\n" "in most cases it should be D65" msgstr "Эталонное значение баланса белого из камеры (обычно D65)" -#: ../src/iop/temperature.c:2075 +#: ../src/iop/temperature.c:2043 msgid "choose white balance setting" msgstr "Выбор предустановок баланса белого" -#: ../src/iop/temperature.c:2080 +#: ../src/iop/temperature.c:2048 msgid "finetune" msgstr "Точная настройка" -#: ../src/iop/temperature.c:2082 +#: ../src/iop/temperature.c:2050 msgid "fine tune camera's white balance setting" msgstr "Корректировка профиля баланса белого" -#: ../src/iop/temperature.c:2093 +#: ../src/iop/temperature.c:2058 msgctxt "section" msgid "scene illuminant temp" msgstr "Источник света" -#: ../src/iop/temperature.c:2094 +#: ../src/iop/temperature.c:2059 msgid "click to cycle color mode on sliders" msgstr "Переключить вид" -#: ../src/iop/temperature.c:2108 +#: ../src/iop/temperature.c:2073 msgid "color temperature (in Kelvin)" msgstr "Температура, K" -#: ../src/iop/temperature.c:2114 +#: ../src/iop/temperature.c:2079 msgid "tint" msgstr "Оттенок" -#: ../src/iop/temperature.c:2117 +#: ../src/iop/temperature.c:2082 msgid "color tint of the image, from magenta (value < 1) to green (value > 1)" msgstr "Оттенок от пурпурного до зелёного" -#: ../src/iop/temperature.c:2123 +#: ../src/iop/temperature.c:2088 msgid "channel coefficients" msgstr "Каналы" -#: ../src/iop/temperature.c:2158 +#: ../src/iop/temperature.c:2097 +msgid "various" +msgstr "Разн" + +#: ../src/iop/temperature.c:2123 msgid "white balance disabled for camera" msgstr "Баланса белого отключен для данной камеры" -#: ../src/iop/tonecurve.c:190 +#: ../src/iop/tonecurve.c:161 msgid "tone curve" msgstr "Тональная кривая" -#: ../src/iop/tonecurve.c:210 +#: ../src/iop/tonecurve.c:183 msgid "alter an image’s tones using curves" msgstr "Преобразование тоновоспроизведения изображения при помощи кривых" -#: ../src/iop/tonecurve.c:1125 +#: ../src/iop/tonecurve.c:1147 msgid "" "if set to auto, a and b curves have no effect and are not displayed. chroma " "values (a and b) of each pixel are then adjusted based on L curve data. auto " @@ -19294,118 +19999,110 @@ "каждого пикселя рассчитываются по кривой L. Авто в XYZ/RGB рассчитывает " "цветностные в соответствующем цветовом пространстве." -#: ../src/iop/tonecurve.c:1134 +#: ../src/iop/tonecurve.c:1156 msgid "tonecurve for L channel" msgstr "Кривая канала L" -#: ../src/iop/tonecurve.c:1135 +#: ../src/iop/tonecurve.c:1157 msgid "tonecurve for a channel" msgstr "Кривая канала a" -#: ../src/iop/tonecurve.c:1136 +#: ../src/iop/tonecurve.c:1158 msgid "tonecurve for b channel" msgstr "Кривая канала b" -#: ../src/iop/tonecurve.c:1143 ../src/iop/watermark.c:1305 -#: ../src/libs/colorpicker.c:597 +#: ../src/iop/tonecurve.c:1165 ../src/iop/watermark.c:1353 +#: ../src/libs/colorpicker.c:675 msgid "pick color" msgstr "Снять цвет" -#: ../src/iop/toneequal.c:311 +#: ../src/iop/toneequal.c:319 msgid "tone equalizer" msgstr "Эквалайзер тонов" -#: ../src/iop/toneequal.c:316 +#: ../src/iop/toneequal.c:324 msgid "tone curve|tone mapping|relight|background light|shadows highlights" msgstr "tone curve|tone mapping|relight|background light|shadows highlights" -#: ../src/iop/toneequal.c:323 +#: ../src/iop/toneequal.c:331 msgid "relight the scene as if the lighting was done directly on the scene" msgstr "" "Настройка тонов на основании исходной освещённости отдельных участков " "изображения" -#: ../src/iop/toneequal.c:326 +#: ../src/iop/toneequal.c:334 msgid "quasi-linear, RGB" msgstr "Квазилинейн., RGB" -#: ../src/iop/toneequal.c:327 +#: ../src/iop/toneequal.c:335 msgid "quasi-linear, RGB, scene-referred" msgstr "Квазилинейн., RGB, плёночная тональная кривая RGB" -#: ../src/iop/toneequal.c:458 +#: ../src/iop/toneequal.c:489 msgid "simple tone curve" msgstr "Простая тональная кривая" -#: ../src/iop/toneequal.c:472 +#: ../src/iop/toneequal.c:503 msgid "mask blending: all purposes" msgstr "Режим смешивания: общего назначения" -#: ../src/iop/toneequal.c:479 +#: ../src/iop/toneequal.c:510 msgid "mask blending: people with backlight" msgstr "Режим смешивания: люди, свет в камеру" -#: ../src/iop/toneequal.c:496 +#: ../src/iop/toneequal.c:527 msgid "compress shadows/highlights (EIGF): strong" msgstr "Сжатие теней и светов (EIGF): сильное" -#: ../src/iop/toneequal.c:501 +#: ../src/iop/toneequal.c:532 msgid "compress shadows/highlights (GF): strong" msgstr "Сжатие теней и светов (усредненный фильтр): сильное" -#: ../src/iop/toneequal.c:510 +#: ../src/iop/toneequal.c:541 msgid "compress shadows/highlights (EIGF): medium" msgstr "Сжатие теней и светов (EIGF): среднее" -#: ../src/iop/toneequal.c:515 +#: ../src/iop/toneequal.c:546 msgid "compress shadows/highlights (GF): medium" msgstr "Сжатие теней и светов (управляемый фильтр): слабое" -#: ../src/iop/toneequal.c:524 +#: ../src/iop/toneequal.c:555 msgid "compress shadows/highlights (EIGF): soft" msgstr "Сжатие теней и светов (EIGF): слабое" -#: ../src/iop/toneequal.c:529 +#: ../src/iop/toneequal.c:560 msgid "compress shadows/highlights (GF): soft" msgstr "Сжатие теней и светов (управляемый фильтр): слабое" -#: ../src/iop/toneequal.c:537 +#: ../src/iop/toneequal.c:568 msgid "contrast tone curve: soft" msgstr "Контрастная тональная кривая: слабый контраст" -#: ../src/iop/toneequal.c:542 +#: ../src/iop/toneequal.c:573 msgid "contrast tone curve: medium" msgstr "Контрастная тональная кривая: средний контраст" -#: ../src/iop/toneequal.c:547 +#: ../src/iop/toneequal.c:578 msgid "contrast tone curve: strong" msgstr "Контрастная тональная кривая: сильный контраст" -#: ../src/iop/toneequal.c:570 +#: ../src/iop/toneequal.c:601 msgid "relight: fill-in" msgstr "Осветить: заполнение" -#: ../src/iop/toneequal.c:627 -msgid "" -"tone equalizer needs to be after distortion modules in the pipeline – " -"disabled" -msgstr "" -"Эквалайзер тонов: модуль отключен! Модуль должен находиться после модулей, " -"преобразующих геометрию изображения." - -#: ../src/iop/toneequal.c:1091 +#: ../src/iop/toneequal.c:1120 msgid "tone equalizer failed to allocate memory, check your RAM settings" msgstr "Эквалайзер тонов: ошибка выделения памяти! Проверьте настройки памяти." -#: ../src/iop/toneequal.c:1795 ../src/iop/toneequal.c:2180 +#: ../src/iop/toneequal.c:1825 ../src/iop/toneequal.c:2196 msgid "the interpolation is unstable, decrease the curve smoothing" msgstr "Эквалайзер тонов: уменьшите значение параметра сглаживания кривой!" -#: ../src/iop/toneequal.c:1830 ../src/iop/toneequal.c:1897 +#: ../src/iop/toneequal.c:1860 ../src/iop/toneequal.c:1927 msgid "wait for the preview to finish recomputing" msgstr "Эквалайзер тонов: идёт обработка..." -#: ../src/iop/toneequal.c:2037 ../src/iop/toneequal.c:2587 +#: ../src/iop/toneequal.c:2069 ../src/iop/toneequal.c:2628 msgid "" "scroll over image to change tone exposure\n" "shift+scroll for large steps; ctrl+scroll for small steps" @@ -19414,90 +20111,90 @@ "шаг),\n" "Ctrl+Прокрутка меняет экспозицию (малый шаг)" -#: ../src/iop/toneequal.c:2185 +#: ../src/iop/toneequal.c:2201 msgid "some parameters are out-of-bounds" msgstr "" "Эквалайзер тонов: некоторые значения находятся за пределами допустимого!" -#: ../src/iop/toneequal.c:2524 +#: ../src/iop/toneequal.c:2518 #, c-format msgid "%+.1f EV" msgstr "%+.1f EV" -#: ../src/iop/toneequal.c:3236 +#: ../src/iop/toneequal.c:3283 #, c-format msgid "[%s over image] change tone exposure" msgstr "[%s на изображении] изменить экспозицию" -#: ../src/iop/toneequal.c:3239 +#: ../src/iop/toneequal.c:3286 #, c-format msgid "[%s over image] change tone exposure in large steps" msgstr "[%s на изображении] изменить экспозицию (большой шаг)" -#: ../src/iop/toneequal.c:3242 +#: ../src/iop/toneequal.c:3289 #, c-format msgid "[%s over image] change tone exposure in small steps" msgstr "[%s на изображении] изменить экспозицию (малый шаг)" #. Simple view -#: ../src/iop/toneequal.c:3323 ../src/iop/toneequal.c:3352 -#: ../src/iop/toneequal.c:3353 ../src/iop/toneequal.c:3354 -#: ../src/iop/toneequal.c:3355 ../src/iop/toneequal.c:3356 -#: ../src/iop/toneequal.c:3357 ../src/iop/toneequal.c:3358 -#: ../src/iop/toneequal.c:3359 ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3376 ../src/iop/toneequal.c:3405 +#: ../src/iop/toneequal.c:3406 ../src/iop/toneequal.c:3407 +#: ../src/iop/toneequal.c:3408 ../src/iop/toneequal.c:3409 +#: ../src/iop/toneequal.c:3410 ../src/iop/toneequal.c:3411 +#: ../src/iop/toneequal.c:3412 ../src/iop/toneequal.c:3413 msgid "simple" msgstr "Простой" -#: ../src/iop/toneequal.c:3352 +#: ../src/iop/toneequal.c:3405 msgid "-8 EV" msgstr "-8 EV" -#: ../src/iop/toneequal.c:3353 +#: ../src/iop/toneequal.c:3406 msgid "-7 EV" msgstr "-7 EV" -#: ../src/iop/toneequal.c:3354 +#: ../src/iop/toneequal.c:3407 msgid "-6 EV" msgstr "-6 EV" -#: ../src/iop/toneequal.c:3355 +#: ../src/iop/toneequal.c:3408 msgid "-5 EV" msgstr "-5 EV" -#: ../src/iop/toneequal.c:3356 +#: ../src/iop/toneequal.c:3409 msgid "-4 EV" msgstr "-4 EV" -#: ../src/iop/toneequal.c:3357 +#: ../src/iop/toneequal.c:3410 msgid "-3 EV" msgstr "-3 EV" -#: ../src/iop/toneequal.c:3358 +#: ../src/iop/toneequal.c:3411 msgid "-2 EV" msgstr "-2 EV" -#: ../src/iop/toneequal.c:3359 +#: ../src/iop/toneequal.c:3412 msgid "-1 EV" msgstr "-1 EV" -#: ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3413 msgid "+0 EV" msgstr "-0 EV" #. Advanced view -#: ../src/iop/toneequal.c:3364 +#: ../src/iop/toneequal.c:3417 msgid "advanced" msgstr "Продвинутый" -#: ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3444 msgid "double-click to reset the curve" msgstr "Двойной щелчок сбрасывает изменения" -#: ../src/iop/toneequal.c:3395 +#: ../src/iop/toneequal.c:3448 msgid "curve smoothing" msgstr "Сглаживание кривой" -#: ../src/iop/toneequal.c:3398 +#: ../src/iop/toneequal.c:3451 msgid "" "positive values will produce more progressive tone transitions\n" "but the curve might become oscillatory in some settings.\n" @@ -19510,11 +20207,11 @@ "к проблемам в локальном контрасте." #. Masking options -#: ../src/iop/toneequal.c:3408 +#: ../src/iop/toneequal.c:3461 msgid "masking" msgstr "Маска" -#: ../src/iop/toneequal.c:3413 +#: ../src/iop/toneequal.c:3466 msgid "" "preview the mask and chose the estimator that gives you the\n" "higher contrast between areas to dodge and areas to burn" @@ -19522,15 +20219,15 @@ "Выбор оценочной функции, отвечающей за контраст между\n" "участками для осветления и затемнения" -#: ../src/iop/toneequal.c:3416 +#: ../src/iop/toneequal.c:3469 msgid "details" msgstr "Детализация" -#: ../src/iop/toneequal.c:3417 +#: ../src/iop/toneequal.c:3470 msgid "preserve details" msgstr "Сохранять детали" -#: ../src/iop/toneequal.c:3420 +#: ../src/iop/toneequal.c:3473 msgid "" "'no' affects global and local contrast (safe if you only add contrast)\n" "'guided filter' only affects global contrast and tries to preserve local " @@ -19551,7 +20248,7 @@ "EIGF — ведущий нейтральный фильтр, выравнивает тени и свет.\n" "Усреднённый eigf — среднее между «Нет» и «eigf»." -#: ../src/iop/toneequal.c:3433 +#: ../src/iop/toneequal.c:3486 msgid "" "number of passes of guided filter to apply\n" "helps diffusing the edges of the filter at the expense of speed" @@ -19559,7 +20256,7 @@ "Количество проходов управляемого фильтра.\n" "Увеличивает рассеивание на краях." -#: ../src/iop/toneequal.c:3441 +#: ../src/iop/toneequal.c:3494 msgid "" "diameter of the blur in percent of the largest image size\n" "warning: big values of this parameter can make the darkroom\n" @@ -19568,7 +20265,7 @@ "Диаметр сглаживания в процентах от наибольшего размера изображения.\n" "Большие значения могут значительно уменьшить скорость работы." -#: ../src/iop/toneequal.c:3449 +#: ../src/iop/toneequal.c:3502 msgid "" "precision of the feathering:\n" "higher values force the mask to follow edges more closely\n" @@ -19580,12 +20277,12 @@ "Большие значения заставляют маску более точно следовать краям.\n" "Меньшие значения уменьшают точность на краях, но сглаживают градиенты." -#: ../src/iop/toneequal.c:3456 +#: ../src/iop/toneequal.c:3509 msgctxt "section" msgid "mask post-processing" msgstr "Постобработка" -#: ../src/iop/toneequal.c:3467 +#: ../src/iop/toneequal.c:3520 msgid "" "mask histogram span between the first and last deciles.\n" "the central line shows the average. orange bars appear at extrema if " @@ -19595,7 +20292,7 @@ "Центральная линия показывает среднее значение.\n" "Оранжевые линии показывают о достижении порога обрезки." -#: ../src/iop/toneequal.c:3475 +#: ../src/iop/toneequal.c:3528 msgid "" "0 disables the quantization.\n" "higher values posterize the luminance mask to help the guiding\n" @@ -19606,7 +20303,7 @@ "и позволяют достичь плавных переходов при использовании\n" "больших значений параметра растушёвки." -#: ../src/iop/toneequal.c:3484 +#: ../src/iop/toneequal.c:3537 msgid "" "use this to slide the mask average exposure along channels\n" "for a better control of the exposure correction with the available nodes.\n" @@ -19616,7 +20313,7 @@ "для лучшего контроля коррекции экспозиции с помощью доступных узлов.\n" "волшебная палочка автоматически отрегулирует среднюю экспозицию" -#: ../src/iop/toneequal.c:3497 +#: ../src/iop/toneequal.c:3550 msgid "" "use this to counter the averaging effect of the guided filter\n" "and dilate the mask contrast around -4EV\n" @@ -19632,7 +20329,7 @@ "для лучшего контроля коррекции экспозиции.\n" "волшебная палочка автоматически отрегулирует контраст" -#: ../src/iop/toneequal.c:3520 ../src/iop/toneequal.c:3523 +#: ../src/iop/toneequal.c:3573 ../src/iop/toneequal.c:3576 msgid "display exposure mask" msgstr "Показать маску экспозиций" @@ -19648,20 +20345,20 @@ "Этот модуль объявлен устаревшим.\n" "Используйте модуль «Локальный контраст» или «Эквалайзер тонов»." -#: ../src/iop/velvia.c:79 +#: ../src/iop/velvia.c:70 msgid "velvia" msgstr "Вельвия" -#: ../src/iop/velvia.c:104 +#: ../src/iop/velvia.c:97 msgid "" "resaturate giving more weight to blacks, whites and low-saturation pixels" msgstr "Добавление насыщенности в изображение (эмуляция плёнки Fuji Velvia)" -#: ../src/iop/velvia.c:281 +#: ../src/iop/velvia.c:290 msgid "the strength of saturation boost" msgstr "Интенсивность эффекта повышения насыщенности" -#: ../src/iop/velvia.c:284 +#: ../src/iop/velvia.c:293 msgid "how much to spare highlights and shadows" msgstr "" "При максимальных значениях увеличение интенсивности средних тонов " @@ -19676,63 +20373,59 @@ "Этот модуль объявлен устаревшим.\n" "Используйте ползунок «Общая сочность» из модуля «Цветовой баланс RGB»." -#: ../src/iop/vibrance.c:93 +#: ../src/iop/vibrance.c:95 msgid "" "saturate and reduce the lightness of the most saturated pixels\n" "to make the colors more vivid." msgstr "" "Добавление сочности цветов и уменьшение светлоты наиболее насыщенных пикселей" -#: ../src/iop/vibrance.c:217 +#: ../src/iop/vibrance.c:211 msgid "the amount of vibrance" msgstr "Интенсивность эффекта увеличения сочности" -#: ../src/iop/vignette.c:153 -msgid "vignetting" -msgstr "Виньетирование" - -#: ../src/iop/vignette.c:158 +#: ../src/iop/vignette.c:119 msgid "simulate a lens fall-off close to edges" msgstr "Симуляция виньетирования" -#: ../src/iop/vignette.c:940 +#: ../src/iop/vignette.c:1022 msgid "lomo" msgstr "Ломо" -#: ../src/iop/vignette.c:974 +#: ../src/iop/vignette.c:1061 msgctxt "section" msgid "position / form" msgstr "Положение / форма" -#: ../src/iop/vignette.c:981 +#: ../src/iop/vignette.c:1069 msgid "dithering" msgstr "Подмешивание шума" -#: ../src/iop/vignette.c:992 +#: ../src/iop/vignette.c:1081 msgid "the radii scale of vignette for start of fall-off" msgstr "Радиальный масштаб виньетирования в начале угасания" -#: ../src/iop/vignette.c:993 +#: ../src/iop/vignette.c:1083 msgid "the radii scale of vignette for end of fall-off" msgstr "Радиальный масштаб виньетирования в конце угасания" -#: ../src/iop/vignette.c:994 +#: ../src/iop/vignette.c:1084 msgid "strength of effect on brightness" msgstr "Интенсивность эффекта в канале яркости" -#: ../src/iop/vignette.c:995 +#: ../src/iop/vignette.c:1085 msgid "strength of effect on saturation" msgstr "Интенсивность эффекта в канале насыщенности" -#: ../src/iop/vignette.c:996 +#: ../src/iop/vignette.c:1086 msgid "horizontal offset of center of the effect" msgstr "Горизонтальное смещение от центра" -#: ../src/iop/vignette.c:997 +#: ../src/iop/vignette.c:1087 msgid "vertical offset of center of the effect" msgstr "Вертикальное смещение от центра" -#: ../src/iop/vignette.c:998 +#: ../src/iop/vignette.c:1090 msgid "" "shape factor\n" "0 produces a rectangle\n" @@ -19744,57 +20437,57 @@ "1 — окружность или эллипс;\n" "2 — ромб." -#: ../src/iop/vignette.c:1000 +#: ../src/iop/vignette.c:1094 msgid "enable to have the ratio automatically follow the image size" msgstr "Автоматический подбор по соотношению сторон изображения" -#: ../src/iop/vignette.c:1001 +#: ../src/iop/vignette.c:1095 msgid "width-to-height ratio" msgstr "Соотношение ширины и высоты" -#: ../src/iop/vignette.c:1002 +#: ../src/iop/vignette.c:1097 msgid "add some level of random noise to prevent banding" msgstr "Добавить немного случайного шума, чтобы избежать полошения" -#: ../src/iop/vignette.c:1009 +#: ../src/iop/vignette.c:1105 #, c-format msgid "[%s on node] change vignette/feather size" msgstr "[%s на узле] масштабировать размер виньетирования" -#: ../src/iop/vignette.c:1011 +#: ../src/iop/vignette.c:1108 #, c-format msgid "[%s on node] change vignette/feather size keeping ratio" msgstr "" "[%s на узле] масштабировать размер виньетирования с сохранением пропорций" -#: ../src/iop/vignette.c:1013 +#: ../src/iop/vignette.c:1111 #, c-format msgid "[%s on center] move vignette" msgstr "[%s на центре] переместить центр виньетирования" -#: ../src/iop/watermark.c:371 +#: ../src/iop/watermark.c:416 msgid "watermark" msgstr "Водяные знаки" -#: ../src/iop/watermark.c:376 +#: ../src/iop/watermark.c:421 msgid "overlay an SVG watermark like a signature on the picture" msgstr "Добавление водяных знаков на изображение" -#: ../src/iop/watermark.c:1258 +#: ../src/iop/watermark.c:1306 msgid "marker" msgstr "Знак" -#: ../src/iop/watermark.c:1261 +#: ../src/iop/watermark.c:1309 #, c-format msgid "SVG watermarks in %s/watermarks or %s/watermarks" msgstr "Водяные знаки в формате SVG из «%s/watermarks» или «%s/watermarks»" #. Simple text -#: ../src/iop/watermark.c:1271 ../src/iop/watermark.c:1272 +#: ../src/iop/watermark.c:1319 ../src/iop/watermark.c:1320 msgid "text" msgstr "Текст" -#: ../src/iop/watermark.c:1273 +#: ../src/iop/watermark.c:1321 msgid "" "text string, tag:\n" "$(WATERMARK_TEXT)" @@ -19802,16 +20495,16 @@ "Текст водяного знака\n" "Метка: $(WATERMARK_TEXT)" -#: ../src/iop/watermark.c:1275 +#: ../src/iop/watermark.c:1323 msgid "content" msgstr "Содержимое" #. Text font -#: ../src/iop/watermark.c:1280 +#: ../src/iop/watermark.c:1328 msgid "font" msgstr "Шрифт" -#: ../src/iop/watermark.c:1285 +#: ../src/iop/watermark.c:1333 msgid "" "text font, tags:\n" "$(WATERMARK_FONT_FAMILY)\n" @@ -19824,7 +20517,7 @@ "\t\t$(WATERMARK_FONT_STYLE)\n" "\t\t$(WATERMARK_FONT_WEIGHT)" -#: ../src/iop/watermark.c:1300 +#: ../src/iop/watermark.c:1348 msgid "" "watermark color, tag:\n" "$(WATERMARK_COLOR)" @@ -19832,61 +20525,63 @@ "Выбор цвета водяного знака\n" "Метка: $(WATERMARK_COLOR)" -#: ../src/iop/watermark.c:1302 +#: ../src/iop/watermark.c:1350 msgid "select watermark color" msgstr "Выбор цвета водяного знака" -#: ../src/iop/watermark.c:1304 +#: ../src/iop/watermark.c:1352 msgid "pick color from image" msgstr "Взять значение с изображения" -#: ../src/iop/watermark.c:1317 +#: ../src/iop/watermark.c:1365 msgctxt "section" msgid "placement" msgstr "Расположение" -#: ../src/iop/watermark.c:1330 +#: ../src/iop/watermark.c:1378 msgid "" -"scaling is done relative to this object\n" -"• image: fits marker into whole image\n" -"• larger border: fits larger marker border to larger image border\n" -"• smaller border: fits larger marker border to smaller image border\n" -"• height: fits marker height to image height, e.g. suitable for texts\n" -"• advanced options: activates two additional drop-down menus" -msgstr "" -"Масштабирование выполняется относительно этого объекта\n" -"• изображение: вставляет маркер во все изображение целиком\n" -"• увеличенная рамка: подгонка границы маркера большего размера к границе " -"изображения большего размера\n" -"• уменьшенная рамка: подгоняет большую границу маркера к меньшей границе " -"изображения\n" -"• высота: подгоняетвысоту маркера к высоте изображения, например, подходит " -"для текста\n" -"• дополнительные параметры: активирует два дополнительных выпадающих меню" - -#: ../src/iop/watermark.c:1339 -msgid "reference to which the marker should be scaled to" -msgstr "Референс маркера масштаба" - -#: ../src/iop/watermark.c:1343 -msgid "length of the marker which is used as scaling reference" +"choose how to scale the watermark\n" +"• image: scale watermark relative to whole image\n" +"• larger border: scale larger watermark border relative to larger image " +"border\n" +"• smaller border: scale larger watermark border relative to smaller image " +"border\n" +"• height: scale watermark height to image height\n" +"• advanced options: choose watermark and image dimensions independently" msgstr "" -"Длина маркера, который используется в качестве референса для масштабирования" +"Выберите способ масштабирования водяного знака\n" +"• изображение: масштабирование водяного знака относительно всего " +"изображения\n" +"• по большему краю: масштабирование большего края водяного знака " +"относительно большего края изображения\n" +"• по меньшему краю: масштабирование меньшего края водяного знака " +"относительно меньшего края изображения\n" +"• высота: масштабирование высоты водяного знака по высоте изображения\n" +"• дополнительные параметры: размеры водяного знака и изображения не зависят " +"друг от друга" + +#: ../src/iop/watermark.c:1387 +msgid "reference image dimension against which to scale the watermark" +msgstr "Референс, по которому масштабируется водяной знак" + +#: ../src/iop/watermark.c:1391 +msgid "watermark dimension to scale" +msgstr "Размер водяного знака для масштабирования" -#: ../src/iop/watermark.c:1347 ../src/libs/print_settings.c:2675 +#: ../src/iop/watermark.c:1395 ../src/libs/print_settings.c:2675 msgid "alignment" msgstr "Размещение" #. Let's add some tooltips and hook up some signals... -#: ../src/iop/watermark.c:1368 +#: ../src/iop/watermark.c:1416 msgid "the opacity of the watermark" msgstr "Непрозрачность водяного знака" -#: ../src/iop/watermark.c:1369 +#: ../src/iop/watermark.c:1417 msgid "the scale of the watermark" msgstr "Масштаб водяного знака" -#: ../src/iop/watermark.c:1370 +#: ../src/iop/watermark.c:1418 msgid "the rotation of the watermark" msgstr "Вращение водяного знака" @@ -19894,7 +20589,7 @@ msgid "zone system" msgstr "Зонная система" -#: ../src/iop/zonesystem.c:490 +#: ../src/iop/zonesystem.c:486 msgid "" "lightness zones\n" "use mouse scrollwheel to change the number of zones\n" @@ -19936,7 +20631,7 @@ msgid "camera control" msgstr "Управление камерой" -#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2360 +#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2679 msgid "modes" msgstr "Режимы" @@ -20042,38 +20737,51 @@ msgid "WB" msgstr "ББ" -#: ../src/libs/collect.c:151 +#: ../src/libs/collect.c:164 msgid "collections" msgstr "Коллекции" -#: ../src/libs/collect.c:407 +#: ../src/libs/collect.c:424 msgid "search filmroll" msgstr "Поиск съёмки" -#: ../src/libs/collect.c:490 +#: ../src/libs/collect.c:507 #, c-format msgid "problem selecting new path for the filmroll in %s" msgstr "Проблема выбора нового пути для съёмки в «%s»" -#: ../src/libs/collect.c:553 +#: ../src/libs/collect.c:579 msgid "search filmroll..." msgstr "Найти съёмку..." -#: ../src/libs/collect.c:557 +#: ../src/libs/collect.c:584 msgid "remove..." msgstr "Удалить..." -#: ../src/libs/collect.c:1225 +#: ../src/libs/collect.c:1310 msgid "uncategorized" msgstr "Без категории" -#: ../src/libs/collect.c:2138 +#: ../src/libs/collect.c:2172 ../src/libs/filters/rating_range.c:120 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:151 +#: ../src/libs/filters/rating_range.c:302 +msgid "rejected" +msgstr "Отклонено" + +#: ../src/libs/collect.c:2175 ../src/libs/filters/rating_range.c:122 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:303 +msgid "not rated" +msgstr "Без оценки" + +#: ../src/libs/collect.c:2359 msgid "use <, <=, >, >=, <>, =, [;] as operators" msgstr "" "Введите ваш запрос, используйте <, <=, >, >=, <>, =, [;] в качестве " "операторов" -#: ../src/libs/collect.c:2142 +#: ../src/libs/collect.c:2363 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "star rating: 0-5\n" @@ -20083,7 +20791,7 @@ "звездный рейтинг: 0-5\n" "отклоненные изображения: -1" -#: ../src/libs/collect.c:2149 +#: ../src/libs/collect.c:2371 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)" @@ -20092,14 +20800,14 @@ "операторов.\n" "Дата указывается в виде: YYYY:MM:DD hh:mm:ss.sss (обязателен только год)" -#: ../src/libs/collect.c:2156 +#: ../src/libs/collect.c:2378 #, no-c-format msgid "use `%' as wildcard and `,' to separate values" msgstr "" "Критерий поиска, используйте «%» для выбора всего и «,» для разделения " "критериев" -#: ../src/libs/collect.c:2162 +#: ../src/libs/collect.c:2385 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20112,7 +20820,7 @@ "Shift+щелчок, чтобы включить только текущую иерархию (без суффикса)\n" "ctrl+щелчок, чтобы включить только подиерархии (суффикс `|%')" -#: ../src/libs/collect.c:2174 +#: ../src/libs/collect.c:2398 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20125,7 +20833,7 @@ "Shift+щелчок, чтобы включить только текущее местоположение (без суффикса)\n" "ctrl+щелчок, чтобы включить только вложенные местоположения (суффикс `|%')" -#: ../src/libs/collect.c:2186 +#: ../src/libs/collect.c:2411 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20138,111 +20846,103 @@ "Shift+щелчок, чтобы включить только текущую папку (без суффикса)\n" "ctrl+щелчок, чтобы включить только вложенные папки (суффикс `|%')" -#: ../src/libs/collect.c:2197 +#: ../src/libs/collect.c:2422 #, no-c-format msgid "use `%' as wildcard" msgstr "Критерий поиска, используйте «%» для выбора всего" -#: ../src/libs/collect.c:2263 ../src/libs/collect.c:2277 -#: ../src/libs/collect.c:2800 +#: ../src/libs/collect.c:2488 ../src/libs/collect.c:2502 +#: ../src/libs/collect.c:3111 msgid "clear this rule" msgstr "Очистить критерий поиска" -#: ../src/libs/collect.c:2267 +#: ../src/libs/collect.c:2492 msgid "clear this rule or add new rules" msgstr "Очистить критерий поиска или добавить новый" -#: ../src/libs/collect.c:2806 +#: ../src/libs/collect.c:3117 msgid "narrow down search" msgstr "Добавить критерий: И" -#: ../src/libs/collect.c:2811 +#: ../src/libs/collect.c:3124 msgid "add more images" msgstr "Добавить критерий: ИЛИ" -#: ../src/libs/collect.c:2816 +#: ../src/libs/collect.c:3131 msgid "exclude images" msgstr "Добавить критерий: КРОМЕ" -#: ../src/libs/collect.c:2823 +#: ../src/libs/collect.c:3140 msgid "change to: and" msgstr "Изменить на: И" -#: ../src/libs/collect.c:2828 +#: ../src/libs/collect.c:3147 msgid "change to: or" msgstr "Изменить на: ИЛИ" -#: ../src/libs/collect.c:2833 +#: ../src/libs/collect.c:3154 msgid "change to: except" msgstr "Изменить на: КРОМЕ" #. the different categories -#: ../src/libs/collect.c:2859 ../src/libs/filtering.c:857 -#: ../src/libs/filtering.c:924 ../src/libs/filtering.c:1558 -#: ../src/libs/filtering.c:1890 +#: ../src/libs/collect.c:3184 ../src/libs/filtering.c:883 +#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1620 +#: ../src/libs/filtering.c:1964 msgid "files" msgstr "Файлы" -#: ../src/libs/collect.c:2864 ../src/libs/export_metadata.c:312 -#: ../src/libs/filtering.c:862 ../src/libs/filtering.c:929 -#: ../src/libs/filtering.c:1566 ../src/libs/filtering.c:1894 -#: ../src/libs/image.c:464 ../src/libs/image.c:574 ../src/libs/image.c:582 -#: ../src/libs/metadata.c:676 ../src/libs/metadata_view.c:1226 +#: ../src/libs/collect.c:3189 ../src/libs/export_metadata.c:301 +#: ../src/libs/filtering.c:888 ../src/libs/filtering.c:955 +#: ../src/libs/filtering.c:1628 ../src/libs/filtering.c:1968 +#: ../src/libs/image.c:495 ../src/libs/image.c:633 ../src/libs/image.c:645 +#: ../src/libs/metadata.c:509 ../src/libs/metadata_view.c:1256 msgid "metadata" msgstr "Метаданные" -#: ../src/libs/collect.c:2883 ../src/libs/filtering.c:883 -#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1892 +#: ../src/libs/collect.c:3208 ../src/libs/filtering.c:909 +#: ../src/libs/filtering.c:976 ../src/libs/filtering.c:1966 msgid "times" msgstr "Дата и время" -#: ../src/libs/collect.c:2891 ../src/libs/filtering.c:891 -#: ../src/libs/filtering.c:958 ../src/libs/filtering.c:1590 +#: ../src/libs/collect.c:3216 ../src/libs/filtering.c:917 +#: ../src/libs/filtering.c:984 ../src/libs/filtering.c:1652 msgid "capture details" msgstr "Детали съёмки" -#: ../src/libs/collect.c:2900 ../src/libs/filtering.c:900 -#: ../src/libs/filtering.c:967 ../src/libs/filtering.c:1602 -#: ../src/libs/filtering.c:1896 ../src/libs/tools/darktable.c:65 +#: ../src/libs/collect.c:3225 ../src/libs/filtering.c:926 +#: ../src/libs/filtering.c:993 ../src/libs/filtering.c:1664 +#: ../src/libs/filtering.c:1970 ../src/libs/tools/darktable.c:61 msgid "darktable" msgstr "darktable" -#: ../src/libs/collect.c:2913 +#: ../src/libs/collect.c:3240 msgid "collections settings" msgstr "Настройки коллекций" -#: ../src/libs/collect.c:2916 ../src/libs/export_metadata.c:288 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:228 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3472 -msgid "save" -msgstr "Сохранить" - -#: ../src/libs/collect.c:2936 ../src/libs/export.c:1046 -#: ../src/libs/metadata.c:779 ../src/libs/metadata_view.c:1306 -#: ../src/libs/recentcollect.c:293 ../src/libs/tagging.c:3494 +#: ../src/libs/collect.c:3267 ../src/libs/export.c:1126 +#: ../src/libs/metadata.c:615 ../src/libs/metadata_view.c:1339 +#: ../src/libs/recentcollect.c:295 ../src/libs/tagging.c:3526 msgid "preferences..." msgstr "Настройки..." -#: ../src/libs/collect.c:3041 ../src/libs/filtering.c:1432 +#: ../src/libs/collect.c:3388 ../src/libs/filtering.c:1494 msgid "AND" msgstr "И" -#: ../src/libs/collect.c:3046 ../src/libs/filtering.c:1437 +#: ../src/libs/collect.c:3393 ../src/libs/filtering.c:1499 msgid "OR" msgstr "ИЛИ" #. case DT_LIB_COLLECT_MODE_AND_NOT: -#: ../src/libs/collect.c:3051 ../src/libs/filtering.c:1442 +#: ../src/libs/collect.c:3398 ../src/libs/filtering.c:1504 msgid "BUT NOT" msgstr "НО НЕ" -#: ../src/libs/collect.c:3223 ../src/libs/filtering.c:2164 +#: ../src/libs/collect.c:3588 ../src/libs/filtering.c:2238 msgid "revert to a previous set of rules" msgstr "Вернуться к предыдущему набору параметров" -#: ../src/libs/collect.c:3280 +#: ../src/libs/collect.c:3671 msgid "jump back to previous collection" msgstr "Перейти к предыдущей коллекции" @@ -20266,7 +20966,7 @@ msgid "color picker" msgstr "Цветовая пипетка" -#: ../src/libs/colorpicker.c:463 +#: ../src/libs/colorpicker.c:513 msgid "" "hover to highlight sample on canvas,\n" "click to lock sample,\n" @@ -20277,23 +20977,23 @@ "щелкните правой кнопкой мыши, чтобы загрузить область образца в активную " "палитру цветов" -#: ../src/libs/colorpicker.c:561 ../src/libs/colorpicker.c:612 +#: ../src/libs/colorpicker.c:626 ../src/libs/colorpicker.c:693 msgid "click to (un)hide large color patch" msgstr "Переключить видимость образца" -#: ../src/libs/colorpicker.c:575 +#: ../src/libs/colorpicker.c:649 msgid "statistic" msgstr "Статистика" -#: ../src/libs/colorpicker.c:576 +#: ../src/libs/colorpicker.c:650 msgid "select which statistic to show" msgstr "Выберите, какую статистику показывать" -#: ../src/libs/colorpicker.c:585 +#: ../src/libs/colorpicker.c:660 msgid "select which color mode to use" msgstr "Выберите, какой цветовой режим использовать" -#: ../src/libs/colorpicker.c:594 +#: ../src/libs/colorpicker.c:671 msgid "" "turn on color picker\n" "ctrl+click or right-click to select an area" @@ -20301,21 +21001,21 @@ "Включить палитру цветов\n" "ctrl+щелчок или щелчок правой кнопкой мыши, чтобы выбрать область" -#: ../src/libs/colorpicker.c:636 +#: ../src/libs/colorpicker.c:722 msgid "add sample" msgstr "Добавить образец" #. Adding the live samples section -#: ../src/libs/colorpicker.c:640 +#: ../src/libs/colorpicker.c:727 msgctxt "section" msgid "live samples" msgstr "Образцы" -#: ../src/libs/colorpicker.c:648 +#: ../src/libs/colorpicker.c:738 msgid "display samples on image/vectorscope" msgstr "Отображать образцы на изображении/вектороскопе" -#: ../src/libs/colorpicker.c:657 +#: ../src/libs/colorpicker.c:749 msgid "restrict scope to selection" msgstr "Ограничить область выбора" @@ -20327,10 +21027,6 @@ msgid "open sidecar file" msgstr "Выбор файла с историей изменений" -#: ../src/libs/copy_history.c:149 -msgid "XMP sidecar files" -msgstr "Файлы XMP" - #: ../src/libs/copy_history.c:166 #, c-format msgid "error loading file '%s'" @@ -20383,7 +21079,7 @@ msgid "choose which modules to paste to the target image(s)" msgstr "Выборочная вставка истории изменений" -#: ../src/libs/copy_history.c:382 ../src/libs/image.c:588 +#: ../src/libs/copy_history.c:382 ../src/libs/image.c:655 msgid "paste" msgstr "Вставить" @@ -20415,11 +21111,11 @@ "Удалить историю изменений\n" "всех выбранных снимков" -#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:847 +#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:851 msgid "how to handle existing history" msgstr "Как поступить с существующей историей изменений" -#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:850 +#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:854 msgid "append" msgstr "Объединить" @@ -20439,89 +21135,96 @@ msgid "write history stack and tags to XMP sidecar files" msgstr "Записать историю изменений в файл XMP" -#: ../src/libs/duplicate.c:56 +#: ../src/libs/duplicate.c:60 msgid "duplicate manager" msgstr "Управление копиями" -#: ../src/libs/duplicate.c:401 +#: ../src/libs/duplicate.c:407 msgid "create a 'virgin' duplicate of the image without any development" msgstr "Создать копию с пустой историей изменений" -#: ../src/libs/duplicate.c:406 +#: ../src/libs/duplicate.c:412 msgid "create a duplicate of the image with same history stack" msgstr "Создать копию вместе с существующей историей изменений" -#. Export button -#: ../src/libs/export.c:153 ../src/libs/export.c:1281 +#: ../src/libs/export.c:160 msgid "export" msgstr "Экспорт" #: ../src/libs/export.c:306 +msgid "invalid format for export selected" +msgstr "Выбран недопустимый формат для экспорта" + +#: ../src/libs/export.c:311 +msgid "invalid storage for export selected" +msgstr "Выбрано недопустимое хранилище для экспорта" + +#: ../src/libs/export.c:322 msgid "export to disk" msgstr "Экспортировать на диск" -#: ../src/libs/export.c:485 +#: ../src/libs/export.c:516 #, c-format msgid "which is equal to %s × %s px" msgstr "Эквивалентно %s × %s пикс." -#: ../src/libs/export.c:520 +#: ../src/libs/export.c:555 msgctxt "unit" msgid "in" msgstr "дюйм" -#: ../src/libs/export.c:1060 +#: ../src/libs/export.c:1141 msgctxt "section" msgid "storage options" msgstr "Параметры сохранения" -#: ../src/libs/export.c:1064 +#: ../src/libs/export.c:1145 msgid "target storage" msgstr "Модуль экспорта" -#: ../src/libs/export.c:1086 +#: ../src/libs/export.c:1171 msgctxt "section" msgid "format options" msgstr "Параметры формата" -#: ../src/libs/export.c:1090 +#: ../src/libs/export.c:1175 msgid "file format" msgstr "Формат" -#: ../src/libs/export.c:1107 +#: ../src/libs/export.c:1193 msgctxt "section" msgid "global options" msgstr "Общие параметры" -#: ../src/libs/export.c:1110 +#: ../src/libs/export.c:1196 msgid "set size" msgstr "Размер" -#: ../src/libs/export.c:1111 +#: ../src/libs/export.c:1197 msgid "choose a method for setting the output size" msgstr "Размер снимка при экспорте" -#: ../src/libs/export.c:1114 +#: ../src/libs/export.c:1200 msgid "in pixels (for file)" msgstr "Пиксели" -#: ../src/libs/export.c:1115 +#: ../src/libs/export.c:1201 msgid "in cm (for print)" msgstr "Сантиметры" -#: ../src/libs/export.c:1116 +#: ../src/libs/export.c:1202 msgid "in inch (for print)" msgstr "Дюймы" -#: ../src/libs/export.c:1117 +#: ../src/libs/export.c:1203 msgid "by scale (for file)" msgstr "Масштаб" -#: ../src/libs/export.c:1119 +#: ../src/libs/export.c:1206 msgid "print width" msgstr "Ширина (печать)" -#: ../src/libs/export.c:1120 ../src/libs/export.c:1132 +#: ../src/libs/export.c:1208 ../src/libs/export.c:1225 msgid "" "maximum output width limit.\n" "click middle mouse button to reset to 0." @@ -20529,11 +21232,11 @@ "Максимальная ширина снимка.\n" "Щелчок средней кнопкой мыши сбрасывает значение." -#: ../src/libs/export.c:1123 +#: ../src/libs/export.c:1212 msgid "print height" msgstr "Высота (печать)" -#: ../src/libs/export.c:1124 ../src/libs/export.c:1136 +#: ../src/libs/export.c:1214 ../src/libs/export.c:1231 msgid "" "maximum output height limit.\n" "click middle mouse button to reset to 0." @@ -20541,19 +21244,19 @@ "Максимальная высота снимка.\n" "Щелчок средней кнопкой мыши сбрасывает значение." -#: ../src/libs/export.c:1128 +#: ../src/libs/export.c:1220 msgid "resolution in dot per inch" msgstr "Разрешение, точки на дюйм" -#: ../src/libs/export.c:1148 +#: ../src/libs/export.c:1244 msgid "@" msgstr "@" -#: ../src/libs/export.c:1161 ../src/libs/tools/global_toolbox.c:217 +#: ../src/libs/export.c:1258 ../src/libs/tools/global_toolbox.c:217 msgid "px" msgstr "пикс." -#: ../src/libs/export.c:1166 +#: ../src/libs/export.c:1266 msgid "" "it can be an integer, decimal number or simple fraction.\n" "zero or empty values are equal to 1.\n" @@ -20562,36 +21265,36 @@ "Масштаб, указанный в долях или в виде дроби.\n" "Щелчок средней кнопкой мыши сбрасывает значение до 1." -#: ../src/libs/export.c:1185 +#: ../src/libs/export.c:1292 msgid "allow upscaling" msgstr "Разрешить увеличение" -#: ../src/libs/export.c:1191 +#: ../src/libs/export.c:1301 msgid "high quality resampling" msgstr "Качественная интерполяция" -#: ../src/libs/export.c:1192 +#: ../src/libs/export.c:1302 msgid "do high quality resampling during export" msgstr "Качественная интерполяция при экспорте" -#: ../src/libs/export.c:1198 +#: ../src/libs/export.c:1310 msgid "store masks" msgstr "Экспортировать маски" -#: ../src/libs/export.c:1199 +#: ../src/libs/export.c:1311 msgid "store masks as layers in exported images. only works for some formats." msgstr "Экспортировать маски как слои" -#: ../src/libs/export.c:1210 ../src/libs/export.c:1245 +#: ../src/libs/export.c:1322 ../src/libs/export.c:1357 #: ../src/libs/print_settings.c:2777 ../src/libs/print_settings.c:2823 msgid "image settings" msgstr "Настройки снимка" -#: ../src/libs/export.c:1220 ../src/libs/print_settings.c:2811 +#: ../src/libs/export.c:1332 ../src/libs/print_settings.c:2811 msgid "output ICC profiles" msgstr "ICC профиль вывода" -#: ../src/libs/export.c:1228 +#: ../src/libs/export.c:1340 msgid "" "• perceptual: smoothly moves out-of-gamut colors into gamut, preserving " "gradations,\n" @@ -20627,44 +21330,53 @@ "к конечной белой точке. В основном используется для цветопробы\n" "(не подходит для фотосъемки)." -#: ../src/libs/export.c:1255 ../src/libs/print_settings.c:2833 +#: ../src/libs/export.c:1367 ../src/libs/print_settings.c:2833 msgid "style" msgstr "Стиль обработки" -#: ../src/libs/export.c:1258 +#: ../src/libs/export.c:1370 msgid "temporary style to use while exporting" msgstr "Стиль, используемый только для экспорта" -#: ../src/libs/export.c:1263 ../src/libs/print_settings.c:2876 +#: ../src/libs/export.c:1377 ../src/libs/print_settings.c:2876 msgid "" "whether the style items are appended to the history or replacing the history" msgstr "Как поступать с историей изменений из стиля обработки" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "replace history" msgstr "Заменить историю изменений" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "append history" msgstr "Объединить историю изменений" -#: ../src/libs/export.c:1282 +#: ../src/libs/export.c:1398 +msgctxt "actionbutton" +msgid "export" +msgstr "Экспорт" + +#: ../src/libs/export.c:1400 msgid "export with current settings" msgstr "Экспорт с текущими настройками" -#: ../src/libs/export_metadata.c:163 +#: ../src/libs/export_metadata.c:148 msgid "select tag" msgstr "Выбор меток" -#: ../src/libs/export_metadata.c:164 -msgid "add" +#: ../src/libs/export_metadata.c:150 +msgid "_add" msgstr "Добавить" -#: ../src/libs/export_metadata.c:175 +#: ../src/libs/export_metadata.c:151 ../src/libs/geotagging.c:811 +msgid "_done" +msgstr "Готово" + +#: ../src/libs/export_metadata.c:162 msgid "list filter" msgstr "Фильтр списка" -#: ../src/libs/export_metadata.c:186 +#: ../src/libs/export_metadata.c:173 msgid "" "list of available tags. click 'add' button or double-click on tag to add the " "selected one" @@ -20672,31 +21384,31 @@ "Список доступных меток. Используйте кнопку \"Добавить\" или двойной щелчок " "для добавления выделенной метки." -#: ../src/libs/export_metadata.c:287 +#: ../src/libs/export_metadata.c:274 msgid "edit metadata exportation" msgstr "Редактор экспортируемых метаданных" -#: ../src/libs/export_metadata.c:304 +#: ../src/libs/export_metadata.c:293 msgid "general settings" msgstr "Общие настройки" -#: ../src/libs/export_metadata.c:309 +#: ../src/libs/export_metadata.c:298 msgid "EXIF data" msgstr "Данные Exif" -#: ../src/libs/export_metadata.c:310 +#: ../src/libs/export_metadata.c:299 msgid "export EXIF metadata" msgstr "Экспортировать данные Exif" -#: ../src/libs/export_metadata.c:313 +#: ../src/libs/export_metadata.c:302 msgid "export darktable XMP metadata (from metadata editor module)" msgstr "Экспортировать метаданные XMP (модуль редактирования метаданных)" -#: ../src/libs/export_metadata.c:323 +#: ../src/libs/export_metadata.c:312 msgid "only embedded" msgstr "Только встроенные" -#: ../src/libs/export_metadata.c:324 +#: ../src/libs/export_metadata.c:313 msgid "" "per default the interface sends some (limited) metadata beside the image to " "remote storage.\n" @@ -20708,75 +21420,75 @@ "Помимо имеющихся в файле на удалённый сервер отправляется ограниченный\n" "набор метаданных. Используйте данную опцию для отключения этого." -#: ../src/libs/export_metadata.c:330 ../src/libs/image.c:566 +#: ../src/libs/export_metadata.c:319 ../src/libs/image.c:623 msgid "geo tags" msgstr "Геотеги" -#: ../src/libs/export_metadata.c:331 +#: ../src/libs/export_metadata.c:320 msgid "export geo tags" msgstr "Экспортировать геотеги" -#: ../src/libs/export_metadata.c:334 +#: ../src/libs/export_metadata.c:323 msgid "export tags (to Xmp.dc.Subject)" msgstr "Экспортировать геотеги (в Xmp.dc.Subject)" -#: ../src/libs/export_metadata.c:342 +#: ../src/libs/export_metadata.c:331 msgid "private tags" msgstr "Персональные метки" -#: ../src/libs/export_metadata.c:343 +#: ../src/libs/export_metadata.c:332 msgid "export private tags" msgstr "Экспортировать персональные метки" -#: ../src/libs/export_metadata.c:345 +#: ../src/libs/export_metadata.c:334 msgid "synonyms" msgstr "Синонимы" -#: ../src/libs/export_metadata.c:346 +#: ../src/libs/export_metadata.c:335 msgid "export tags synonyms" msgstr "Экспортировать синонимы меток" -#: ../src/libs/export_metadata.c:348 +#: ../src/libs/export_metadata.c:337 msgid "omit hierarchy" msgstr "Исключить иерархию" -#: ../src/libs/export_metadata.c:349 +#: ../src/libs/export_metadata.c:338 msgid "" "only the last part of the hierarchical tags is included. can be useful if " "categories are not used" msgstr "Экспортировать только последнюю часть иерархических меток" -#: ../src/libs/export_metadata.c:352 +#: ../src/libs/export_metadata.c:341 msgid "hierarchical tags" msgstr "Иерархические метки" -#: ../src/libs/export_metadata.c:353 +#: ../src/libs/export_metadata.c:342 msgid "export hierarchical tags (to Xmp.lr.Hierarchical Subject)" msgstr "Экспортировать иерархические метки (в Xmp.lr.Hierarchical Subject)" -#: ../src/libs/export_metadata.c:355 +#: ../src/libs/export_metadata.c:344 msgid "develop history" msgstr "Экспортировать историю изменений" -#: ../src/libs/export_metadata.c:356 +#: ../src/libs/export_metadata.c:345 msgid "" "export darktable development data (recovery purpose in case of loss of " "database or XMP file)" msgstr "Экспортировать историю изменений (полезно в случае утери XMP файла)" -#: ../src/libs/export_metadata.c:363 +#: ../src/libs/export_metadata.c:352 msgid "per metadata settings" msgstr "Настройки меток" -#: ../src/libs/export_metadata.c:376 +#: ../src/libs/export_metadata.c:364 msgid "redefined tag" msgstr "Метка" -#: ../src/libs/export_metadata.c:382 +#: ../src/libs/export_metadata.c:370 msgid "formula" msgstr "Значение" -#: ../src/libs/export_metadata.c:385 +#: ../src/libs/export_metadata.c:373 msgid "" "list of calculated metadata\n" "click on '+' button to select and add new metadata\n" @@ -20796,15 +21508,15 @@ "В противном случае значение метки присваивается согласно формуле.\n" "Доступные значения:" -#: ../src/libs/export_metadata.c:442 +#: ../src/libs/export_metadata.c:430 msgid "add an output metadata tag" msgstr "Добавить метку метаданных" -#: ../src/libs/export_metadata.c:447 +#: ../src/libs/export_metadata.c:435 msgid "delete metadata tag" msgstr "Удалить метку метаданных" -#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:128 +#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:130 msgid "full path" msgstr "Расположение" @@ -20824,50 +21536,50 @@ msgid "shuffle" msgstr "Перемешать" -#: ../src/libs/filtering.c:263 +#: ../src/libs/filtering.c:269 msgid "collection filters" msgstr "Фильтры коллекции" -#: ../src/libs/filtering.c:296 +#: ../src/libs/filtering.c:302 msgid "initial setting" msgstr "Начальная настройка" -#: ../src/libs/filtering.c:315 +#: ../src/libs/filtering.c:321 msgid "imported: last 24h" msgstr "Импортировано: последние 24 часа" -#: ../src/libs/filtering.c:320 +#: ../src/libs/filtering.c:326 msgid "imported: last 30 days" msgstr "Импортировано: Последние 30 дней" -#: ../src/libs/filtering.c:326 +#: ../src/libs/filtering.c:332 msgid "taken: last 24h" msgstr "Принят: Последние 24 часа" -#: ../src/libs/filtering.c:330 +#: ../src/libs/filtering.c:336 msgid "taken: last 30 days" msgstr "Принят: Последние 30 дней" -#: ../src/libs/filtering.c:702 +#: ../src/libs/filtering.c:728 msgid "click or click&drag to select one or multiple values" msgstr "" "Одиночный щелчок для выбора имени файла, ctrl+щелчок для выбора нескольких " "значений" -#: ../src/libs/filtering.c:703 +#: ../src/libs/filtering.c:729 msgid "right-click opens a menu to select the available values" msgstr "Щелчок правой кнопкой открывает меню для выбора доступных значений" -#: ../src/libs/filtering.c:800 +#: ../src/libs/filtering.c:826 #, c-format msgid "you can't have more than %d rules" msgstr "У вас не может быть более %d параметров" -#: ../src/libs/filtering.c:922 ../src/libs/filtering.c:1556 +#: ../src/libs/filtering.c:948 ../src/libs/filtering.c:1618 msgid "rule property" msgstr "Свойство параметра" -#: ../src/libs/filtering.c:987 +#: ../src/libs/filtering.c:1013 msgid "" "rule property\n" "this can't be changed as the rule is pinned to the toolbar" @@ -20875,12 +21587,12 @@ "Свойство параметра\n" "Невозможно изменить, так как параметр закреплен на панели инструментов" -#: ../src/libs/filtering.c:1035 +#: ../src/libs/filtering.c:1095 msgctxt "quickfilter" msgid "filter" msgstr "Фильтр" -#: ../src/libs/filtering.c:1062 +#: ../src/libs/filtering.c:1124 msgid "" "this rule is pinned to the top toolbar\n" "click to un-pin" @@ -20888,115 +21600,123 @@ "Этот параметр закреплен на верхней панели инструментов\n" "Нажмите, чтобы открепить" -#: ../src/libs/filtering.c:1063 +#: ../src/libs/filtering.c:1125 msgid "you can't disable the rule as it is pinned to the toolbar" msgstr "" "Невозможно отключить параметр,, если он закреплен на панели инструментов" -#: ../src/libs/filtering.c:1064 +#: ../src/libs/filtering.c:1126 msgid "you can't remove the rule as it is pinned to the toolbar" msgstr "Нельзя удалить параметр, закрепленный на панели инструментов" -#: ../src/libs/filtering.c:1069 +#: ../src/libs/filtering.c:1131 msgid "click to pin this rule to the top toolbar" msgstr "Щелчок закрепляет этот параметр на верхней панели инструментов" -#: ../src/libs/filtering.c:1070 +#: ../src/libs/filtering.c:1132 msgid "remove this collect rule" msgstr "Удалить параметр" -#: ../src/libs/filtering.c:1072 +#: ../src/libs/filtering.c:1134 msgid "this rule is enabled" msgstr "Этот параметр включен" -#: ../src/libs/filtering.c:1074 +#: ../src/libs/filtering.c:1136 msgid "this rule is disabled" msgstr "Этот параметр отключен" -#: ../src/libs/filtering.c:1202 +#: ../src/libs/filtering.c:1264 msgid "or" msgstr "или" -#: ../src/libs/filtering.c:1203 +#: ../src/libs/filtering.c:1265 msgid "and not" msgstr "и не" -#: ../src/libs/filtering.c:1205 +#: ../src/libs/filtering.c:1267 msgid "define how this rule should interact with the previous one" msgstr "Определите, как этот параметр должен взаимодействовать с предыдущим" -#: ../src/libs/filtering.c:1466 +#: ../src/libs/filtering.c:1528 msgid " (off)" msgstr "(Откл.)" -#: ../src/libs/filtering.c:1663 +#: ../src/libs/filtering.c:1725 msgid "you can't add more rules." msgstr "Вы не можете добавить больше параметров" -#. fill the popover with all pinned rules -#: ../src/libs/filtering.c:1696 +#: ../src/libs/filtering.c:1759 msgid "shown filters" msgstr "Отображенные фильтры" -#: ../src/libs/filtering.c:1711 +#: ../src/libs/filtering.c:1774 msgid "new filter" msgstr "Новый фильтр" -#: ../src/libs/filtering.c:1884 +#. the actions part of the popover +#: ../src/libs/filtering.c:1781 +msgid "actions" +msgstr "Действия" + +#: ../src/libs/filtering.c:1784 +msgid "reset quickfilters" +msgstr "Сбросить быстрые фильтры" + +#: ../src/libs/filtering.c:1957 msgid "sort order" msgstr "Порядок сортировки" -#: ../src/libs/filtering.c:1886 +#: ../src/libs/filtering.c:1960 msgid "determine the sort order of shown images" msgstr "Определить порядок сортировки отображаемых изображений" -#: ../src/libs/filtering.c:1906 +#: ../src/libs/filtering.c:1980 msgid "sort direction" msgstr "Направление сортировки" -#: ../src/libs/filtering.c:1911 +#: ../src/libs/filtering.c:1985 msgid "remove this sort order" msgstr "Удалить порядок сортировки" -#: ../src/libs/filtering.c:1995 +#: ../src/libs/filtering.c:2069 #, c-format msgid "you can't have more than %d sort orders" msgstr "У вас не может быть более %d порядков сортировки" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "DESC" msgstr "DESC" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "ASC" msgstr "ASC" -#: ../src/libs/filtering.c:2160 +#: ../src/libs/filtering.c:2234 msgid "new rule" msgstr "Новый параметр" -#: ../src/libs/filtering.c:2161 +#: ../src/libs/filtering.c:2235 msgid "append new rule to collect images" msgstr "Добавить новый параметр для выбранных изображений" -#: ../src/libs/filtering.c:2172 ../src/libs/tools/filter.c:116 +#: ../src/libs/filtering.c:2246 ../src/libs/tools/filter.c:116 msgid "sort by" msgstr "Сортировка" -#: ../src/libs/filtering.c:2180 +#: ../src/libs/filtering.c:2254 msgid "new sort" msgstr "Новая сортировка" -#: ../src/libs/filtering.c:2181 +#: ../src/libs/filtering.c:2255 msgid "append new sort to order images" msgstr "Добавить новую сортировку для %d снимков" -#: ../src/libs/filtering.c:2184 +#: ../src/libs/filtering.c:2258 msgid "revert to a previous set of sort orders" msgstr "К предыдущему порядку сортировки" #. we change the tooltip of the reset button here, as we are sure the header is defined now -#: ../src/libs/filtering.c:2234 +#: ../src/libs/filtering.c:2308 msgid "" "reset\n" "ctrl+click to remove pinned rules too" @@ -21033,7 +21753,7 @@ #: ../src/libs/filters/grouping.c:167 ../src/libs/filters/history.c:153 #: ../src/libs/filters/local_copy.c:142 ../src/libs/filters/module_order.c:161 #: ../src/libs/filters/rating.c:199 ../src/libs/filters/rating.c:210 -#: ../src/libs/filters/rating_range.c:325 +#: ../src/libs/filters/rating_range.c:356 msgid "rules" msgstr "Параметры" @@ -21047,7 +21767,7 @@ "и (∩): изображения со всеми выбранными цветовыми метками\n" "или (∪): изображения с по крайней мере одной из выбранных цветовых меток" -#: ../src/libs/filters/filename.c:365 +#: ../src/libs/filters/filename.c:370 msgid "" "enter filename to search.\n" "multiple values can be separated by ','\n" @@ -21059,11 +21779,11 @@ "\n" "Щелчок правой кнопкой мыши, чтобы получить существующие имена файлов" -#: ../src/libs/filters/filename.c:376 +#: ../src/libs/filters/filename.c:381 msgid "extension" msgstr "Расширение" -#: ../src/libs/filters/filename.c:377 +#: ../src/libs/filters/filename.c:382 msgid "" "enter extension to search with starting dot\n" "multiple values can be separated by ','\n" @@ -21077,7 +21797,7 @@ "\n" "Щелчок правой кнопкой мыши, чтобы получить существующие расширения" -#: ../src/libs/filters/filename.c:405 +#: ../src/libs/filters/filename.c:410 msgid "" "click to select filename\n" "ctrl+click to select multiple values" @@ -21085,7 +21805,7 @@ "Одиночный щелчок для выбора имени файла, Ctrl+щелчок для выбора нескольких " "значений" -#: ../src/libs/filters/filename.c:432 +#: ../src/libs/filters/filename.c:437 msgid "" "click to select extension\n" "ctrl+click to select multiple values" @@ -21093,6 +21813,11 @@ "Одиночный щелчок для выбора расширения\n" "Ctrl+щелчок для выбора нескольких значений" +#. the button to close the popup +#: ../src/libs/filters/filename.c:457 +msgid "ok" +msgstr "OK" + #: ../src/libs/filters/grouping.c:141 ../src/libs/filters/grouping.c:169 msgid "ungrouped images" msgstr "Сгруппированные снимки" @@ -21104,8 +21829,8 @@ #. predefined selections #: ../src/libs/filters/grouping.c:169 ../src/libs/filters/history.c:38 #: ../src/libs/filters/local_copy.c:38 ../src/libs/filters/module_order.c:155 -#: ../src/libs/filters/rating_range.c:56 ../src/libs/filters/rating_range.c:72 -#: ../src/libs/filters/rating_range.c:109 ../src/libs/filters/ratio.c:68 +#: ../src/libs/filters/rating_range.c:59 ../src/libs/filters/rating_range.c:83 +#: ../src/libs/filters/rating_range.c:131 ../src/libs/filters/ratio.c:68 #: ../src/libs/filters/ratio.c:81 msgid "all images" msgstr "Все снимки" @@ -21130,7 +21855,7 @@ msgid "filter by images rating" msgstr "Фильтр по рейтингу изображений" -#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:542 +#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:596 #: ../src/libs/tools/ratings.c:56 msgid "ratings" msgstr "Оценки" @@ -21139,49 +21864,33 @@ msgid "unstarred only" msgstr "Без звезд" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:60 -#: ../src/libs/filters/rating_range.c:75 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:65 +#: ../src/libs/filters/rating_range.c:89 msgid "rejected only" msgstr "К удалению" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:58 -#: ../src/libs/filters/rating_range.c:73 ../src/libs/filters/rating_range.c:138 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:62 +#: ../src/libs/filters/rating_range.c:86 ../src/libs/filters/rating_range.c:158 msgid "all except rejected" msgstr "Кроме отмеченных к удалению" -#: ../src/libs/filters/rating_range.c:61 ../src/libs/filters/rating_range.c:76 +#: ../src/libs/filters/rating_range.c:67 ../src/libs/filters/rating_range.c:91 msgid "not rated only" msgstr "Без оценки" -#: ../src/libs/filters/rating_range.c:99 ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:131 -#: ../src/libs/filters/rating_range.c:275 -msgid "rejected" -msgstr "Отклонено" - -#: ../src/libs/filters/rating_range.c:101 -#: ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:276 -msgid "not rated" -msgstr "Без оценки" - -#: ../src/libs/filters/rating_range.c:117 -msgid "only" -msgstr "Только" - -#: ../src/libs/filters/rating_range.c:269 +#: ../src/libs/filters/rating_range.c:296 msgid "better" msgstr "Лучше" -#: ../src/libs/filters/rating_range.c:270 +#: ../src/libs/filters/rating_range.c:297 msgid "worse" msgstr "Хуже" -#: ../src/libs/filters/rating_range.c:271 +#: ../src/libs/filters/rating_range.c:298 msgid "cap" msgstr "Предел" -#: ../src/libs/filters/rating_range.c:286 +#: ../src/libs/filters/rating_range.c:313 msgid "rating filter" msgstr "Фильтр по рейтингу" @@ -21220,7 +21929,7 @@ msgid "apply offset and geo-location" msgstr "Применить смещение и геотеги" -#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1910 +#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1914 msgid "apply geo-location" msgstr "Применить геотеги" @@ -21232,49 +21941,49 @@ "Применить смещение и геотеги к соответствующим снимкам.\n" "Двойное нажатие Сtrl+Z для отмены." -#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1911 +#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1915 msgid "apply geo-location to matching images" msgstr "Применить геотеги к соответствующим снимкам" -#: ../src/libs/geotagging.c:810 +#: ../src/libs/geotagging.c:809 msgid "GPX file track segments" msgstr "Участки пути в файле GPX" -#: ../src/libs/geotagging.c:830 ../src/libs/geotagging.c:1869 +#: ../src/libs/geotagging.c:831 ../src/libs/geotagging.c:1873 msgid "start time" msgstr "Начало" -#: ../src/libs/geotagging.c:831 +#: ../src/libs/geotagging.c:832 msgid "end time" msgstr "Конец" -#: ../src/libs/geotagging.c:832 ../src/libs/geotagging.c:1871 +#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1875 msgid "points" msgstr "Точки" -#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1873 -#: ../src/libs/image.c:463 +#: ../src/libs/geotagging.c:834 ../src/libs/geotagging.c:1877 +#: ../src/libs/image.c:494 msgid "images" msgstr "Снимок" -#: ../src/libs/geotagging.c:926 +#: ../src/libs/geotagging.c:927 msgid "open GPX file" msgstr "Выбор файла GPX" -#: ../src/libs/geotagging.c:927 ../src/libs/tools/lighttable.c:333 -#: ../src/libs/tools/lighttable.c:402 ../src/views/darkroom.c:2232 +#: ../src/libs/geotagging.c:928 ../src/libs/tools/lighttable.c:330 +#: ../src/libs/tools/lighttable.c:399 ../src/views/darkroom.c:2091 msgid "preview" msgstr "Предпросмотр" -#: ../src/libs/geotagging.c:940 +#: ../src/libs/geotagging.c:941 msgid "GPS data exchange format" msgstr "Формат обмена данными GPS" -#: ../src/libs/geotagging.c:1739 +#: ../src/libs/geotagging.c:1743 msgid "date/time" msgstr "Дата и время" -#: ../src/libs/geotagging.c:1740 +#: ../src/libs/geotagging.c:1744 msgid "" "enter the new date/time (YYYY:MM:DD hh:mm:ss[.sss])\n" "key in the new numbers or scroll over the cell" @@ -21282,41 +21991,41 @@ "Введите новые значения даты и времени в формате YYYY:MM:DD hh:mm:ss.\n" "Используйте клавиши или колесо мыши для ввода значений." -#: ../src/libs/geotagging.c:1744 +#: ../src/libs/geotagging.c:1748 msgid "original date/time" msgstr "Исходное значение" -#: ../src/libs/geotagging.c:1748 +#: ../src/libs/geotagging.c:1752 msgid "lock date/time offset value to apply it onto another selection" msgstr "" "Заблокировать значения даты и времени для применения к другому выделению" -#: ../src/libs/geotagging.c:1752 +#: ../src/libs/geotagging.c:1756 msgid "date/time offset" msgstr "Смещение" -#: ../src/libs/geotagging.c:1753 +#: ../src/libs/geotagging.c:1757 msgid "offset or difference ([-]dd hh:mm:ss[.sss])" msgstr "Введите смещение в формате [-]dd hh:mm:ss[.sss]" #. apply -#: ../src/libs/geotagging.c:1757 +#: ../src/libs/geotagging.c:1761 msgid "apply offset" msgstr "Применить смещение" -#: ../src/libs/geotagging.c:1758 +#: ../src/libs/geotagging.c:1762 msgid "apply offset to selected images" msgstr "Сохранить новые значения даты и времени с учётом указанного смещения" -#: ../src/libs/geotagging.c:1761 +#: ../src/libs/geotagging.c:1765 msgid "apply date/time" msgstr "Сохранить" -#: ../src/libs/geotagging.c:1762 +#: ../src/libs/geotagging.c:1766 msgid "apply the same date/time to selected images" msgstr "Сохранить новые значения даты и времени" -#: ../src/libs/geotagging.c:1772 +#: ../src/libs/geotagging.c:1776 msgid "" "start typing to show a list of permitted values and select your timezone.\n" "press enter to confirm, so that the asterisk * disappears" @@ -21326,24 +22035,24 @@ "нажмите Enter для подтверждения, чтобы звездочка * исчезла" #. gpx -#: ../src/libs/geotagging.c:1815 +#: ../src/libs/geotagging.c:1819 msgid "apply GPX track file..." msgstr "Загрузить GPX..." -#: ../src/libs/geotagging.c:1816 +#: ../src/libs/geotagging.c:1820 msgid "parses a GPX file and updates location of selected images" msgstr "Обновить данные о геопозиционировании из файла GPX" -#: ../src/libs/geotagging.c:1827 +#: ../src/libs/geotagging.c:1831 msgctxt "section" msgid "GPX file" msgstr "Файл GPX" -#: ../src/libs/geotagging.c:1834 +#: ../src/libs/geotagging.c:1838 msgid "select a GPX track file..." msgstr "Загрузить GPX..." -#: ../src/libs/geotagging.c:1851 +#: ../src/libs/geotagging.c:1855 msgid "" "list of track segments in the GPX file, for each segment:\n" "- the start date/time in local time (LT)\n" @@ -21358,172 +22067,180 @@ "3) Количество снимков, подходящих по дате и времени.\n" "4) Дополнительная информация при наведении мыши." -#: ../src/libs/geotagging.c:1890 +#: ../src/libs/geotagging.c:1894 msgid "preview images" msgstr "Предпросмотр" -#: ../src/libs/geotagging.c:1895 +#: ../src/libs/geotagging.c:1899 msgid "show on map matching images" msgstr "Показать на карте соответствующие снимки" -#: ../src/libs/geotagging.c:1898 +#: ../src/libs/geotagging.c:1902 msgid "select images" msgstr "Выбрать снимки" -#: ../src/libs/geotagging.c:1899 +#: ../src/libs/geotagging.c:1903 msgid "select matching images" msgstr "Выбрать соответствующие снимки" -#: ../src/libs/geotagging.c:1907 +#: ../src/libs/geotagging.c:1911 msgid "number of matching images versus selected images" msgstr "Количество соответствующих и выделенных снимков" -#: ../src/libs/histogram.c:133 +#: ../src/libs/histogram.c:110 msgid "monochromatic" msgstr "Ч/б" -#: ../src/libs/histogram.c:134 +#: ../src/libs/histogram.c:111 msgid "analogous" msgstr "Аналоговая" -#: ../src/libs/histogram.c:135 +#: ../src/libs/histogram.c:112 msgid "analogous complementary" msgstr "Аналоговая комплементарная" -#: ../src/libs/histogram.c:136 +#: ../src/libs/histogram.c:113 msgid "complementary" msgstr "комплементарная" -#: ../src/libs/histogram.c:137 +#: ../src/libs/histogram.c:114 msgid "split complementary" msgstr "Разделенная комплементарная" -#: ../src/libs/histogram.c:138 +#: ../src/libs/histogram.c:115 msgid "dyad" msgstr "диада" -#: ../src/libs/histogram.c:139 +#: ../src/libs/histogram.c:116 msgid "triad" msgstr "триада" -#: ../src/libs/histogram.c:140 +#: ../src/libs/histogram.c:117 msgid "tetrad" msgstr "тетрада" -#: ../src/libs/histogram.c:146 +#: ../src/libs/histogram.c:123 msgid "vectorscope" msgstr "Вектороскоп" -#: ../src/libs/histogram.c:147 +#: ../src/libs/histogram.c:124 msgid "waveform" msgstr "Волновая гистограмма" -#: ../src/libs/histogram.c:148 +#: ../src/libs/histogram.c:125 msgid "RGB parade" msgstr "RGB parade" -#: ../src/libs/histogram.c:149 ../src/libs/histogram.c:2309 +#: ../src/libs/histogram.c:126 ../src/libs/histogram.c:2622 msgid "histogram" msgstr "Гистограмма" -#: ../src/libs/histogram.c:243 +#: ../src/libs/histogram.c:218 msgid "scopes" msgstr "Масштабы" -#: ../src/libs/histogram.c:1542 +#: ../src/libs/histogram.c:757 +msgid "" +"unsupported vectorscope profile selected, it will be replaced with linear " +"Rec2020" +msgstr "" +"Выбран неподдерживаемый профиль вектроскопа, он будет заменён на линейный " +"Rec2020!" + +#: ../src/libs/histogram.c:1715 msgid "scroll to coarse-rotate" msgstr "Прокрутка для грубого вращения" -#: ../src/libs/histogram.c:1543 +#: ../src/libs/histogram.c:1716 msgid "ctrl+scroll to fine rotate" msgstr "Ctrl+Прокрутка для точного вращения" -#: ../src/libs/histogram.c:1544 +#: ../src/libs/histogram.c:1717 msgid "shift+scroll to change width" msgstr "Shift+Прокрутка меняет ширину" -#: ../src/libs/histogram.c:1545 +#: ../src/libs/histogram.c:1718 msgid "alt+scroll to cycle" msgstr "Alt+Прокрутка чтобы переключить" -#: ../src/libs/histogram.c:1556 +#: ../src/libs/histogram.c:1732 msgid "drag to change black point" msgstr "Потяните, чтобы изменить черную точку" -#: ../src/libs/histogram.c:1557 ../src/libs/histogram.c:1564 +#: ../src/libs/histogram.c:1733 ../src/libs/histogram.c:1740 msgid "double-click resets" msgstr "Двойной щелчок сбрасывает изменения" -#: ../src/libs/histogram.c:1563 +#: ../src/libs/histogram.c:1739 msgid "drag to change exposure" msgstr "Потяните, чтобы изменить экспозиция" -#: ../src/libs/histogram.c:1725 ../src/libs/histogram.c:1765 +#: ../src/libs/histogram.c:1923 ../src/libs/histogram.c:1965 msgid "set scale to linear" msgstr "Линейный вид" -#: ../src/libs/histogram.c:1730 ../src/libs/histogram.c:1770 +#: ../src/libs/histogram.c:1928 ../src/libs/histogram.c:1970 msgid "set scale to logarithmic" msgstr "Логарифмический вид" -#: ../src/libs/histogram.c:1746 +#: ../src/libs/histogram.c:1946 msgid "set scope to vertical" msgstr "Установить область видимости по вертикали" -#: ../src/libs/histogram.c:1751 +#: ../src/libs/histogram.c:1951 msgid "set scope to horizontal" msgstr "Установить область видимости по горизонтали" -#: ../src/libs/histogram.c:1780 +#: ../src/libs/histogram.c:1980 msgid "set view to AzBz" msgstr "В координатах AzBz" -#: ../src/libs/histogram.c:1786 +#: ../src/libs/histogram.c:1986 msgid "set view to RYB" msgstr "Установить вид на RYB" -#: ../src/libs/histogram.c:1792 +#: ../src/libs/histogram.c:1992 msgid "set view to u*v*" msgstr "В координатах u*v*" -#: ../src/libs/histogram.c:2312 ../src/libs/histogram.c:2370 +#: ../src/libs/histogram.c:2625 ../src/libs/histogram.c:2691 msgid "cycle histogram modes" msgstr "Режим гистограммы" -#: ../src/libs/histogram.c:2316 ../src/libs/histogram.c:2371 +#: ../src/libs/histogram.c:2630 ../src/libs/histogram.c:2693 msgid "hide histogram" msgstr "Скрыть гистограмму" -#: ../src/libs/histogram.c:2372 ../src/libs/histogram.c:2401 +#: ../src/libs/histogram.c:2696 ../src/libs/histogram.c:2729 msgid "switch histogram view" msgstr "Переключить режим гистограммы" -#: ../src/libs/histogram.c:2379 +#: ../src/libs/histogram.c:2704 msgid "toggle blue channel" msgstr "Переключить синий канал" -#: ../src/libs/histogram.c:2381 ../src/libs/histogram.c:2389 -#: ../src/libs/histogram.c:2397 +#: ../src/libs/histogram.c:2706 ../src/libs/histogram.c:2715 +#: ../src/libs/histogram.c:2724 msgid "toggle colors" msgstr "Переключить цвета" -#: ../src/libs/histogram.c:2387 +#: ../src/libs/histogram.c:2713 msgid "toggle green channel" msgstr "Переключить зелёный канал" -#: ../src/libs/histogram.c:2395 +#: ../src/libs/histogram.c:2722 msgid "toggle red channel" msgstr "Переключить красный канал" -#: ../src/libs/histogram.c:2405 +#: ../src/libs/histogram.c:2734 msgid "cycle vectorscope types" msgstr "Переключить типы вектроскопа" -#: ../src/libs/histogram.c:2413 +#: ../src/libs/histogram.c:2745 msgid "color harmonies" msgstr "Цветовые гармонии" -#: ../src/libs/histogram.c:2425 +#: ../src/libs/histogram.c:2759 msgid "cycle color harmonies" msgstr "Переключить цветовые гармонии" @@ -21568,10 +22285,18 @@ msgid "mask mode" msgstr "Режим маски" +#: ../src/libs/history.c:949 +msgid "blend mode" +msgstr "Режим смешивания" + #: ../src/libs/history.c:951 msgid "blend operation" msgstr "Параметры смешивания" +#: ../src/libs/history.c:953 +msgid "blend fulcrum" +msgstr "Смешивание, опорная точка" + #: ../src/libs/history.c:961 msgid "mask blur" msgstr "Размытие краёв" @@ -21615,194 +22340,194 @@ msgid "parametric input mask:" msgstr "Параметрическая маска (ввод):" -#: ../src/libs/history.c:1323 +#: ../src/libs/history.c:1322 msgid "delete image's history?" msgstr "Удаление истории изменений" -#: ../src/libs/history.c:1324 +#: ../src/libs/history.c:1323 msgid "do you really want to clear history of current image?" msgstr "Вы действительно хотите удалить историю изменений выбранного снимка?" -#: ../src/libs/image.c:72 -msgid "selected image[s]" -msgstr "Действия" +#: ../src/libs/image.c:74 +msgid "actions on selection" +msgstr "Действия по выбору" -#: ../src/libs/image.c:284 +#: ../src/libs/image.c:302 msgid "delete (trash)" msgstr "В корзину" -#: ../src/libs/image.c:287 +#: ../src/libs/image.c:305 msgid "physically delete from disk (using trash if possible)" msgstr "Переместить в корзину" -#: ../src/libs/image.c:288 +#: ../src/libs/image.c:306 msgid "physically delete from disk immediately" msgstr "Физически удалить с диска" -#: ../src/libs/image.c:474 ../src/libs/modulegroups.c:3811 -#: ../src/libs/styles.c:876 +#: ../src/libs/image.c:506 ../src/libs/modulegroups.c:3813 +#: ../src/libs/styles.c:880 msgid "remove" msgstr "Удалить" -#: ../src/libs/image.c:475 +#: ../src/libs/image.c:508 msgid "remove images from the image library, without deleting" msgstr "Убрать снимки из коллекции без удаления соответствующих файлов" -#: ../src/libs/image.c:483 +#: ../src/libs/image.c:517 msgid "move..." msgstr "Переместить..." -#: ../src/libs/image.c:484 +#: ../src/libs/image.c:519 msgid "move to other folder" msgstr "Переместить в другой каталог" -#: ../src/libs/image.c:487 +#: ../src/libs/image.c:522 msgid "copy..." msgstr "Копировать..." -#: ../src/libs/image.c:488 +#: ../src/libs/image.c:524 msgid "copy to other folder" msgstr "Копировать в другой каталог" -#: ../src/libs/image.c:491 +#: ../src/libs/image.c:528 msgid "create HDR" msgstr "Создать HDR" -#: ../src/libs/image.c:492 +#: ../src/libs/image.c:530 msgid "create a high dynamic range image from selected shots" msgstr "Объединить выбранные снимки в HDR" -#: ../src/libs/image.c:496 +#: ../src/libs/image.c:535 msgid "add a duplicate to the image library, including its history stack" msgstr "Создать копию в текущей коллекции вместе с историей изменений" -#: ../src/libs/image.c:502 ../src/libs/image.c:505 +#: ../src/libs/image.c:542 ../src/libs/image.c:547 msgid "rotate selected images 90 degrees CCW" msgstr "Поворот выбранных снимков на 90° против часовой стрелки" -#: ../src/libs/image.c:509 ../src/libs/image.c:512 +#: ../src/libs/image.c:553 ../src/libs/image.c:558 msgid "rotate selected images 90 degrees CW" msgstr "Поворот выбранных снимков на 90° по часовой стрелке" -#: ../src/libs/image.c:514 +#: ../src/libs/image.c:561 msgid "reset rotation" msgstr "Сбросить поворот" -#: ../src/libs/image.c:515 +#: ../src/libs/image.c:563 msgid "reset rotation to EXIF data" msgstr "Использовать данные Exif для получения информации об ориентации снимка" -#: ../src/libs/image.c:518 +#: ../src/libs/image.c:566 msgid "copy locally" msgstr "Локальная копия" -#: ../src/libs/image.c:519 +#: ../src/libs/image.c:568 msgid "copy the image locally" msgstr "Копировать снимки локально" -#: ../src/libs/image.c:522 +#: ../src/libs/image.c:572 msgid "resync local copy" msgstr "Синхронизировать" -#: ../src/libs/image.c:523 +#: ../src/libs/image.c:574 msgid "synchronize the image's XMP and remove the local copy" msgstr "Синхронизировать файл XMP и удалить локальную копию" -#: ../src/libs/image.c:526 +#: ../src/libs/image.c:578 msgctxt "selected images action" msgid "group" msgstr "Сгруппировать" -#: ../src/libs/image.c:527 +#: ../src/libs/image.c:580 msgid "add selected images to expanded group or create a new one" msgstr "Объединить выбранные снимки в группу" -#: ../src/libs/image.c:531 +#: ../src/libs/image.c:584 msgid "ungroup" msgstr "Разгруппировать" -#: ../src/libs/image.c:532 +#: ../src/libs/image.c:586 msgid "remove selected images from the group" msgstr "Убрать выбранные фото из группы" -#: ../src/libs/image.c:544 +#: ../src/libs/image.c:598 msgid "select ratings metadata" msgstr "Выбор метаданных оценок" -#: ../src/libs/image.c:550 +#: ../src/libs/image.c:605 msgid "colors" msgstr "Цветовые метки" -#: ../src/libs/image.c:552 +#: ../src/libs/image.c:607 msgid "select colors metadata" msgstr "Выбор метаданных цветовых меток" -#: ../src/libs/image.c:560 +#: ../src/libs/image.c:616 msgid "select tags metadata" msgstr "Выбор метаданных меток" -#: ../src/libs/image.c:568 +#: ../src/libs/image.c:625 msgid "select geo tags metadata" msgstr "Выбор метаданных геотегов" -#: ../src/libs/image.c:576 +#: ../src/libs/image.c:636 msgid "select darktable metadata (from metadata editor module)" msgstr "Выбор метаданных darktable" -#: ../src/libs/image.c:584 +#: ../src/libs/image.c:649 msgid "set the selected image as source of metadata" msgstr "Выбор изображения в качестве источника метаданных" -#: ../src/libs/image.c:589 +#: ../src/libs/image.c:656 msgid "paste selected metadata on selected images" msgstr "Записать метаданные в выбранные снимки" -#: ../src/libs/image.c:593 +#: ../src/libs/image.c:661 msgid "clear selected metadata on selected images" msgstr "Очистить метаданные в выбранных снимках" -#: ../src/libs/image.c:598 +#: ../src/libs/image.c:667 msgid "how to handle existing metadata" msgstr "Как поступить с существующими метаданными" -#: ../src/libs/image.c:601 +#: ../src/libs/image.c:670 msgid "merge" msgstr "Объединить" -#: ../src/libs/image.c:605 +#: ../src/libs/image.c:675 msgid "update image information to match changes to file" msgstr "Обновить информацию в тегах Exif" -#: ../src/libs/image.c:609 +#: ../src/libs/image.c:680 msgid "set selection as monochrome images and activate monochrome workflow" msgstr "Пометить снимок как чёрно-белый" -#: ../src/libs/image.c:613 +#: ../src/libs/image.c:684 msgid "set selection as color images" msgstr "Пометить снимок как цветной" -#: ../src/libs/image.c:625 +#: ../src/libs/image.c:696 msgid "duplicate virgin" msgstr "Дубликат оригинала" -#: ../src/libs/import.c:263 +#: ../src/libs/import.c:264 #, c-format msgid "device \"%s\" connected on port \"%s\"." msgstr "Устройство «%s» подсоединено к порту «%s»." -#: ../src/libs/import.c:273 ../src/libs/import.c:334 ../src/libs/import.c:1692 +#: ../src/libs/import.c:274 ../src/libs/import.c:335 ../src/libs/import.c:1701 msgid "copy & import from camera" msgstr "Импорт с камеры" -#: ../src/libs/import.c:284 ../src/libs/import.c:336 +#: ../src/libs/import.c:285 ../src/libs/import.c:337 msgid "tethered shoot" msgstr "Дистанционная съёмка" -#: ../src/libs/import.c:291 ../src/libs/import.c:337 +#: ../src/libs/import.c:292 ../src/libs/import.c:338 msgid "unmount camera" msgstr "Отключить камеру" -#: ../src/libs/import.c:312 +#: ../src/libs/import.c:313 msgid "" "camera is locked by another application\n" "make sure it is no longer mounted\n" @@ -21811,15 +22536,15 @@ "Устройство заблокировано другим приложением.\n" "Закройте активные приложения и попытайтесь снова." -#: ../src/libs/import.c:315 +#: ../src/libs/import.c:316 msgid "tethering and importing is disabled for this camera" msgstr "Дистанционная съёмка с использованием данной камеры не возможна" -#: ../src/libs/import.c:317 ../src/libs/import.c:335 +#: ../src/libs/import.c:318 ../src/libs/import.c:336 msgid "mount camera" msgstr "Подключить камеру" -#: ../src/libs/import.c:747 +#: ../src/libs/import.c:754 #, c-format msgid "%d image out of %d selected" msgid_plural "%d images out of %d selected" @@ -21827,23 +22552,23 @@ msgstr[1] "Выбрано %d снимка из %d" msgstr[2] "Выбрано %d снимков из %d" -#: ../src/libs/import.c:1039 +#: ../src/libs/import.c:1046 msgid "you can't delete the selected place" msgstr "Вы не можете удалить данное место из списка" -#: ../src/libs/import.c:1153 +#: ../src/libs/import.c:1160 msgid "choose the root of the folder tree below" msgstr "Выбор корневого каталога" -#: ../src/libs/import.c:1156 +#: ../src/libs/import.c:1163 msgid "places" msgstr "Места" -#: ../src/libs/import.c:1162 +#: ../src/libs/import.c:1169 msgid "restore all default places you have removed by right-click" msgstr "Восстановить настройки списка мест по умолчанию" -#: ../src/libs/import.c:1167 +#: ../src/libs/import.c:1174 msgid "" "add a custom place\n" "\n" @@ -21852,79 +22577,107 @@ "Добавить свое место.\n" "Щелчок правой кнопкой мыши для удаления." -#: ../src/libs/import.c:1174 +#: ../src/libs/import.c:1181 msgid "you can add custom places using the plus icon" msgstr "Используйте плюс для добавления мест в список" -#: ../src/libs/import.c:1199 +#: ../src/libs/import.c:1206 msgid "select a folder to see the content" msgstr "Выбор каталога для импорта" -#: ../src/libs/import.c:1202 +#: ../src/libs/import.c:1209 msgid "folders" msgstr "Каталоги" -#: ../src/libs/import.c:1272 +#: ../src/libs/import.c:1279 msgid "home" msgstr "Домашний каталог" -#: ../src/libs/import.c:1284 +#: ../src/libs/import.c:1291 msgid "pictures" msgstr "Изображения" -#: ../src/libs/import.c:1548 +#: ../src/libs/import.c:1557 msgid "mark already imported pictures" msgstr "Выделить уже импортированные снимки" -#: ../src/libs/import.c:1562 +#: ../src/libs/import.c:1571 msgid "modified" msgstr "Дата изменения" -#: ../src/libs/import.c:1567 +#: ../src/libs/import.c:1576 msgid "file 'modified date/time', may be different from 'Exif date/time'" msgstr "Дата изменения может отличаться от данных Exif" -#: ../src/libs/import.c:1579 +#: ../src/libs/import.c:1588 msgid "show/hide thumbnails" msgstr "Отобразить миниатюры" -#: ../src/libs/import.c:1649 +#: ../src/libs/import.c:1658 msgid "naming rules" msgstr "Параметры копирования" -#: ../src/libs/import.c:1690 +#: ../src/libs/import.c:1699 msgid "add to library" msgstr "Добавить" -#: ../src/libs/import.c:1691 +#: ../src/libs/import.c:1700 msgid "copy & import" msgstr "Копировать" -#: ../src/libs/import.c:1730 +#: ../src/libs/import.c:1740 msgid "select new" msgstr "Выделить новые" -#: ../src/libs/import.c:1773 +#: ../src/libs/import.c:1783 msgid "please wait while prefetching the list of images from camera..." msgstr "Дождитесь получения списка снимков с камеры..." -#: ../src/libs/import.c:1907 +#: ../src/libs/import.c:1922 msgid "invalid override date/time format" msgstr "Недопустимый формат даты/времени" -#: ../src/libs/import.c:2022 +#: ../src/libs/import.c:1986 +msgid "import base directory" +msgstr "Импортировать основной каталог" + +#: ../src/libs/import.c:1987 +msgid "" +"before copying images to the darktable base directory make sure it is " +"defined as you prefer.\n" +"further information can be found in the darktable manual.\n" +"\n" +"inspect darktable preferences -> import.\n" +"check and possibly correct the 'base directory naming pattern'" +msgstr "" +"Перед копированием изображений в основной каталог darktable убедитесь, что " +"правильно его определили.\n" +"дополнительную информацию можно найти в документации darktable.\n" +"\n" +"Проверьте настройки darktable -> импорт.\n" +"Поверьте и, если необходимо, исправьте \"Шаблон имени основного каталога\"" + +#: ../src/libs/import.c:1991 +msgid "_come back & check" +msgstr "Вернуться назад и проверить" + +#: ../src/libs/import.c:1991 +msgid "_understood & done" +msgstr "Понятно, готово" + +#: ../src/libs/import.c:2057 msgid "add to library..." msgstr "Добавить..." -#: ../src/libs/import.c:2023 +#: ../src/libs/import.c:2058 msgid "add existing images to the library" msgstr "Добавить снимки в коллекцию" -#: ../src/libs/import.c:2029 +#: ../src/libs/import.c:2064 msgid "copy & import..." msgstr "Копировать..." -#: ../src/libs/import.c:2030 +#: ../src/libs/import.c:2065 msgid "" "copy and optionally rename images before adding them to the library\n" "patterns can be defined to rename the images and specify the destination " @@ -21934,15 +22687,15 @@ "параметрам" #. collapsible section -#: ../src/libs/import.c:2053 +#: ../src/libs/import.c:2088 msgid "parameters" msgstr "Параметры" -#: ../src/libs/ioporder.c:204 +#: ../src/libs/ioporder.c:202 msgid "v3.0 for RAW input (default)" msgstr "v3.0 RAW (по умолчанию)" -#: ../src/libs/ioporder.c:210 +#: ../src/libs/ioporder.c:208 msgid "v3.0 for JPEG/non-RAW input" msgstr "v.3.0 JPEG/non-RAW" @@ -21958,11 +22711,11 @@ msgid "nothing to save" msgstr "Нет изменений для сохранения" -#: ../src/libs/lib.c:1105 +#: ../src/libs/lib.c:1106 msgid "show module" msgstr "Показать модуль" -#: ../src/libs/lib.c:1430 +#: ../src/libs/lib.c:1431 msgid "utility module" msgstr "Вспомогательные модули" @@ -22190,169 +22943,111 @@ msgid "map settings" msgstr "Параметры карты" -#: ../src/libs/map_settings.c:107 +#: ../src/libs/map_settings.c:89 msgid "map source" msgstr "Источник данных" -#: ../src/libs/map_settings.c:112 +#: ../src/libs/map_settings.c:90 msgid "select the source of the map. some entries might not work" msgstr "" "Выбор источника картографических данных. Некоторые источники могут быть " "недоступны." -#: ../src/libs/masks.c:107 +#: ../src/libs/masks.c:108 msgid "feather" msgstr "Растушёвка" -#: ../src/libs/masks.c:114 -msgid "hardness (relative)" -msgstr "Растушёвка (относительная)" - -#: ../src/libs/masks.c:115 -msgid "hardness (absolute)" -msgstr "Растушёвка (абсолютная)" - -#: ../src/libs/masks.c:116 -msgid "opacity (relative)" -msgstr "Непрозрачность (относительная)" - -#: ../src/libs/masks.c:117 -msgid "opacity (absolute)" -msgstr "Непрозрачность (абсолютная)" - -#: ../src/libs/masks.c:118 -msgid "brush size (relative)" -msgstr "Размер кисти (относительный)" - -#: ../src/libs/masks.c:121 -msgid "low" -msgstr "Слаб." - -#: ../src/libs/masks.c:122 -msgid "medium" -msgstr "Средн." - -#: ../src/libs/masks.c:123 -msgid "high" -msgstr "Сильн." - -#: ../src/libs/masks.c:381 +#: ../src/libs/masks.c:357 #, c-format msgid "group #%d" msgstr "Группа #%d" -#: ../src/libs/masks.c:1081 +#: ../src/libs/masks.c:1097 msgid "duplicate this shape" msgstr "Копировать фигуру" -#: ../src/libs/masks.c:1085 +#: ../src/libs/masks.c:1101 msgid "delete this shape" msgstr "Удалить фигуру" -#: ../src/libs/masks.c:1091 +#: ../src/libs/masks.c:1107 msgid "delete group" msgstr "Удалить группу" -#: ../src/libs/masks.c:1098 +#: ../src/libs/masks.c:1114 msgid "remove from group" msgstr "Удалить из группы" -#: ../src/libs/masks.c:1106 +#: ../src/libs/masks.c:1122 msgid "group the forms" msgstr "Сгруппировать фигуры" -#: ../src/libs/masks.c:1114 +#: ../src/libs/masks.c:1130 msgid "use inverted shape" msgstr "Использовать инвертированную фигуру" -#: ../src/libs/masks.c:1121 +#: ../src/libs/masks.c:1134 msgid "mode: union" msgstr "Режим: Объединение" -#: ../src/libs/masks.c:1127 +#: ../src/libs/masks.c:1136 msgid "mode: intersection" msgstr "Режим: Пересечение" -#: ../src/libs/masks.c:1133 +#: ../src/libs/masks.c:1138 msgid "mode: difference" msgstr "Режим: Разница" -#: ../src/libs/masks.c:1139 +#: ../src/libs/masks.c:1140 msgid "mode: sum" msgstr "Режим: Сумма" -#: ../src/libs/masks.c:1145 +#: ../src/libs/masks.c:1142 msgid "mode: exclusion" msgstr "Режим: Вычитание" -#: ../src/libs/masks.c:1164 +#: ../src/libs/masks.c:1158 msgid "cleanup unused shapes" msgstr "Удалить неиспользуемые фигуры" -#: ../src/libs/masks.c:1811 +#: ../src/libs/masks.c:1807 msgid "created shapes" msgstr "Созданные фигуры" -#: ../src/libs/masks.c:1904 ../src/libs/masks.c:1919 ../src/libs/masks.c:1939 -#: ../src/libs/masks.c:1955 +#: ../src/libs/masks.c:1900 ../src/libs/masks.c:1915 ../src/libs/masks.c:1929 +#: ../src/libs/masks.c:1933 msgid "properties" msgstr "Параметры" -#: ../src/libs/masks.c:1907 +#: ../src/libs/masks.c:1903 msgid "no shapes selected" msgstr "Нет выбранных фигур" -#: ../src/libs/masks.c:1940 +#: ../src/libs/masks.c:1929 msgid "pressure" msgstr "Нажатие" -#: ../src/libs/masks.c:1941 -msgid "" -"pen pressure control for brush masks\n" -"'off': pressure reading ignored,\n" -"'hardness'/'opacity'/'brush size': pressure reading controls specified " -"attribute,\n" -"'absolute'/'relative': pressure reading is taken directly as attribute value " -"or multiplied with pre-defined setting." -msgstr "" -"Контроль силы нажатия\n" -"Выключить — сила нажатия пером планшета игнорируется.\n" -"Растушёвка, непрозрачность, размер кисти — сила нажатия определяет указанные " -"атрибуты.\n" -"Абсолютная/относительная — сила нажатия берётся в качестве значения атрибута " -"напрямую или умножается на заранее заданный коэффициент." - -#: ../src/libs/masks.c:1956 +#: ../src/libs/masks.c:1933 msgid "smoothing" msgstr "Сглаживание" -#: ../src/libs/masks.c:1957 -msgid "" -"smoothing of brush strokes\n" -"stronger smoothing leads to fewer nodes and easier editing but with lower " -"control of accuracy." -msgstr "" -"Сглаживание движений пера\n" -"Чем сильнее сглаживание, тем меньше узлов на создаваемых контурах, проще " -"редактирование, но меньше точность." - -#: ../src/libs/metadata.c:64 +#: ../src/libs/metadata.c:60 msgid "metadata editor" msgstr "Редактор метаданных" -#: ../src/libs/metadata.c:206 ../src/libs/metadata.c:496 -msgid "<leave unchanged>" -msgstr "<не менять>" - -#: ../src/libs/metadata.c:630 ../src/libs/metadata_view.c:1192 +#: ../src/libs/metadata.c:459 ../src/libs/metadata_view.c:1219 msgid "metadata settings" msgstr "Настройки метаданных" -#: ../src/libs/metadata.c:683 ../src/libs/metadata_view.c:1237 +#: ../src/libs/metadata.c:461 ../src/libs/metadata_view.c:1221 +msgid "_default" +msgstr "_default" + +#: ../src/libs/metadata.c:516 ../src/libs/metadata_view.c:1267 msgid "visible" msgstr "Видимость" -#: ../src/libs/metadata.c:688 +#: ../src/libs/metadata.c:524 msgid "" "tick if the corresponding metadata is of interest for you\n" "it will be visible from metadata editor, collection and import module\n" @@ -22361,19 +23056,19 @@ "Укажите, если вы хотите, чтобы указанные метаданные использовались при " "импорте, редактировании и экспорте снимков" -#: ../src/libs/metadata.c:693 ../src/libs/tagging.c:1683 -#: ../src/libs/tagging.c:1827 +#: ../src/libs/metadata.c:529 ../src/libs/tagging.c:1705 +#: ../src/libs/tagging.c:1854 msgid "private" msgstr "Персональные" -#: ../src/libs/metadata.c:698 +#: ../src/libs/metadata.c:534 msgid "" "tick if you want to keep this information private (not exported with images)" msgstr "" "Укажите, если вы не хотите, чтобы указанные метаданные использовалась при " "экспорте снимков" -#: ../src/libs/metadata.c:857 +#: ../src/libs/metadata.c:691 msgid "" "metadata text\n" "ctrl+enter inserts a new line (caution, may not be compatible with standard " @@ -22390,153 +23085,165 @@ "них\n" "Нажмите Escape для выхода из всплывающего окна" -#: ../src/libs/metadata.c:902 +#: ../src/libs/metadata.c:736 msgid "write metadata for selected images" msgstr "Записать метаданные в выбранные снимки" +#: ../src/libs/metadata.c:737 +msgid "cancel" +msgstr "Отменить" + +#: ../src/libs/metadata.c:738 +msgid "ignore changed metadata" +msgstr "Игнорировать изменение метаданных" + #. <title>\0<description>\0<rights>\0<creator>\0<publisher> -#: ../src/libs/metadata.c:958 +#: ../src/libs/metadata.c:793 msgid "CC BY" msgstr "CC BY" -#: ../src/libs/metadata.c:959 +#: ../src/libs/metadata.c:794 msgid "Creative Commons Attribution (CC BY)" msgstr "Creative Commons Attribution (CC BY)" -#: ../src/libs/metadata.c:960 +#: ../src/libs/metadata.c:795 msgid "CC BY-SA" msgstr "CC BY-SA" -#: ../src/libs/metadata.c:961 +#: ../src/libs/metadata.c:796 msgid "Creative Commons Attribution-ShareAlike (CC BY-SA)" msgstr "Creative Commons Attribution-ShareAlike (CC BY-SA)" -#: ../src/libs/metadata.c:962 +#: ../src/libs/metadata.c:797 msgid "CC BY-ND" msgstr "CC BY-ND" -#: ../src/libs/metadata.c:963 +#: ../src/libs/metadata.c:798 msgid "Creative Commons Attribution-NoDerivs (CC BY-ND)" msgstr "Creative Commons Attribution-NoDerivs (CC BY-ND)" -#: ../src/libs/metadata.c:964 +#: ../src/libs/metadata.c:799 msgid "CC BY-NC" msgstr "CC BY-NC" -#: ../src/libs/metadata.c:965 +#: ../src/libs/metadata.c:800 msgid "Creative Commons Attribution-NonCommercial (CC BY-NC)" msgstr "Creative Commons Attribution-NonCommercial (CC BY-NC)" -#: ../src/libs/metadata.c:966 +#: ../src/libs/metadata.c:801 msgid "CC BY-NC-SA" msgstr "CC BY-NC-SA" -#: ../src/libs/metadata.c:967 +#: ../src/libs/metadata.c:802 msgid "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" msgstr "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" -#: ../src/libs/metadata.c:968 +#: ../src/libs/metadata.c:803 msgid "CC BY-NC-ND" msgstr "CC BY-NC-ND" -#: ../src/libs/metadata.c:969 +#: ../src/libs/metadata.c:804 msgid "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" msgstr "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" -#: ../src/libs/metadata.c:970 ../src/libs/metadata.c:971 +#: ../src/libs/metadata.c:805 ../src/libs/metadata.c:806 msgid "all rights reserved" msgstr "Все права сохранены" #. internal -#: ../src/libs/metadata_view.c:123 +#: ../src/libs/metadata_view.c:125 msgid "filmroll" msgstr "Съёмка" -#: ../src/libs/metadata_view.c:125 +#: ../src/libs/metadata_view.c:127 msgid "group id" msgstr "ID группы" -#: ../src/libs/metadata_view.c:127 +#: ../src/libs/metadata_view.c:129 msgid "version" msgstr "Версия" -#: ../src/libs/metadata_view.c:130 +#: ../src/libs/metadata_view.c:132 msgid "import timestamp" msgstr "Импорт" -#: ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:133 msgid "change timestamp" msgstr "Изменён" -#: ../src/libs/metadata_view.c:132 +#: ../src/libs/metadata_view.c:134 msgid "export timestamp" msgstr "Экспорт" -#: ../src/libs/metadata_view.c:133 +#: ../src/libs/metadata_view.c:135 msgid "print timestamp" msgstr "Печать" -#: ../src/libs/metadata_view.c:134 +#: ../src/libs/metadata_view.c:136 msgid "flags" msgstr "Флаги" -#: ../src/libs/metadata_view.c:144 +#: ../src/libs/metadata_view.c:146 +msgid "35mm equiv focal length" +msgstr "Фокусное расстояние, эквивалентное 35 мм." + +#: ../src/libs/metadata_view.c:148 msgid "focus distance" msgstr "Дистанция (фокус)" -#: ../src/libs/metadata_view.c:146 +#: ../src/libs/metadata_view.c:150 msgid "datetime" msgstr "Дата и время" -#: ../src/libs/metadata_view.c:149 +#: ../src/libs/metadata_view.c:153 msgid "export width" msgstr "Ширина (экспорт)" -#: ../src/libs/metadata_view.c:150 +#: ../src/libs/metadata_view.c:154 msgid "export height" msgstr "Высота (экспорт)" -#: ../src/libs/metadata_view.c:158 +#: ../src/libs/metadata_view.c:162 msgid "longitude" msgstr "Долгота" -#: ../src/libs/metadata_view.c:159 +#: ../src/libs/metadata_view.c:163 msgid "elevation" msgstr "Высота" -#: ../src/libs/metadata_view.c:163 +#: ../src/libs/metadata_view.c:167 msgid "categories" msgstr "Категории" -#: ../src/libs/metadata_view.c:170 +#: ../src/libs/metadata_view.c:174 msgid "image information" msgstr "Метаданные" -#: ../src/libs/metadata_view.c:330 +#: ../src/libs/metadata_view.c:334 msgid "unused/deprecated" msgstr "Не используется и/или устаревший" -#: ../src/libs/metadata_view.c:331 +#: ../src/libs/metadata_view.c:335 msgid "LDR" msgstr "LDR" -#: ../src/libs/metadata_view.c:334 +#: ../src/libs/metadata_view.c:338 msgid "marked for deletion" msgstr "Помечено для удаления" -#: ../src/libs/metadata_view.c:335 +#: ../src/libs/metadata_view.c:339 msgid "auto-applying presets applied" msgstr "Автоматические настройки применены" -#: ../src/libs/metadata_view.c:337 +#: ../src/libs/metadata_view.c:341 msgid "has .txt" msgstr "Содержит .txt" -#: ../src/libs/metadata_view.c:338 +#: ../src/libs/metadata_view.c:342 msgid "has .wav" msgstr "Содержит .wav" -#: ../src/libs/metadata_view.c:356 +#: ../src/libs/metadata_view.c:360 #, c-format msgid "image has %d star" msgid_plural "image has %d stars" @@ -22544,48 +23251,44 @@ msgstr[1] "У снимка %d звезды" msgstr[2] "У снимка %d звёзд" -#: ../src/libs/metadata_view.c:432 +#: ../src/libs/metadata_view.c:436 #, c-format msgid "loader: %s" msgstr "Загрузчик: %s" -#: ../src/libs/metadata_view.c:623 +#: ../src/libs/metadata_view.c:626 msgid "<various values>" msgstr "<различные значения>" -#: ../src/libs/metadata_view.c:636 +#: ../src/libs/metadata_view.c:639 #, c-format msgid "" "double-click to jump to film roll\n" "%s" msgstr "Двойной щелчок для перехода к съёмке «%s»" -#: ../src/libs/metadata_view.c:728 +#: ../src/libs/metadata_view.c:731 #, c-format msgid "%+.2f EV" msgstr "%+.2f EV" -#: ../src/libs/metadata_view.c:735 -#, c-format -msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" -msgstr "%.1f мм (%.1f мм FF эквив., обрезка %.1f)" - -#: ../src/libs/metadata_view.c:740 +#: ../src/libs/metadata_view.c:737 ../src/libs/metadata_view.c:749 +#: ../src/libs/metadata_view.c:754 #, c-format msgid "%.1f mm" msgstr "%.1f мм." -#: ../src/libs/metadata_view.c:751 +#: ../src/libs/metadata_view.c:778 #, c-format msgid "infinity" msgstr "Infinity" -#: ../src/libs/metadata_view.c:755 +#: ../src/libs/metadata_view.c:782 #, c-format msgid "%.2f m" msgstr "%.2f м" -#: ../src/libs/metadata_view.c:1232 +#: ../src/libs/metadata_view.c:1262 msgid "" "drag and drop one row at a time until you get the desired order\n" "untick to hide metadata which are not of interest for you\n" @@ -22593,7 +23296,7 @@ msgstr "" "Используйте перетаскивание мышью для упорядочивания списка необходимых полей" -#: ../src/libs/metadata_view.c:1388 +#: ../src/libs/metadata_view.c:1423 msgid "jump to film roll" msgstr "Перейти к съёмке" @@ -22618,7 +23321,7 @@ msgid "recent collections settings" msgstr "Настройки последних коллекций" -#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1769 +#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1753 msgid "workflow: scene-referred" msgstr "Рабочий процесс: Плёночная тональная кривая RGB" @@ -22636,12 +23339,12 @@ #. FIXME don't check here if on/off is enabled, because it depends on image (reload_defaults) #. respond later to image changed signal -#: ../src/libs/modulegroups.c:306 ../src/libs/modulegroups.c:318 -#: ../src/libs/modulegroups.c:2427 ../src/libs/modulegroups.c:2429 +#: ../src/libs/modulegroups.c:307 ../src/libs/modulegroups.c:319 +#: ../src/libs/modulegroups.c:2411 ../src/libs/modulegroups.c:2413 msgid "on-off" msgstr "Вкл. / Откл." -#: ../src/libs/modulegroups.c:498 ../src/libs/modulegroups.c:501 +#: ../src/libs/modulegroups.c:501 ../src/libs/modulegroups.c:504 msgid "" "this quick access widget is disabled as there are multiple instances of this " "module present. Please use the full module to access this widget..." @@ -22649,157 +23352,157 @@ "Доступ к быстрым настройкам не возможен, так как имеется несколько копий " "данного модуля. Перейдите к полной версии модуля." -#: ../src/libs/modulegroups.c:591 +#: ../src/libs/modulegroups.c:594 msgid "(some features may only be available in the full module interface)" msgstr "(некоторые из настроек доступны только в полной версии модуля)" -#: ../src/libs/modulegroups.c:635 +#: ../src/libs/modulegroups.c:632 #, c-format msgid "go to the full version of the %s module" msgstr "Перейти к полной версии модуля «%s»" -#: ../src/libs/modulegroups.c:1556 ../src/libs/modulegroups.c:1641 -#: ../src/libs/modulegroups.c:1677 ../src/libs/modulegroups.c:1727 -#: ../src/libs/modulegroups.c:1817 +#: ../src/libs/modulegroups.c:1538 ../src/libs/modulegroups.c:1624 +#: ../src/libs/modulegroups.c:1660 ../src/libs/modulegroups.c:1710 +#: ../src/libs/modulegroups.c:1801 msgctxt "modulegroup" msgid "base" msgstr "Базовые" -#: ../src/libs/modulegroups.c:1575 +#: ../src/libs/modulegroups.c:1557 msgctxt "modulegroup" msgid "tone" msgstr "Тоновоспроизведение" -#: ../src/libs/modulegroups.c:1584 ../src/libs/modulegroups.c:1691 -#: ../src/libs/modulegroups.c:1741 +#: ../src/libs/modulegroups.c:1566 ../src/libs/modulegroups.c:1674 +#: ../src/libs/modulegroups.c:1724 msgctxt "modulegroup" msgid "color" msgstr "Цветокоррекция" -#: ../src/libs/modulegroups.c:1599 ../src/libs/modulegroups.c:1699 -#: ../src/libs/modulegroups.c:1746 +#: ../src/libs/modulegroups.c:1582 ../src/libs/modulegroups.c:1682 +#: ../src/libs/modulegroups.c:1730 msgctxt "modulegroup" msgid "correct" msgstr "Коррекция" -#: ../src/libs/modulegroups.c:1617 ../src/libs/modulegroups.c:1711 -#: ../src/libs/modulegroups.c:1758 ../src/libs/modulegroups.c:2321 +#: ../src/libs/modulegroups.c:1600 ../src/libs/modulegroups.c:1694 +#: ../src/libs/modulegroups.c:1742 ../src/libs/modulegroups.c:2305 msgctxt "modulegroup" msgid "effect" msgstr "Эффекты" -#: ../src/libs/modulegroups.c:1635 +#: ../src/libs/modulegroups.c:1618 msgid "modules: all" msgstr "Модули: Все" -#: ../src/libs/modulegroups.c:1656 +#: ../src/libs/modulegroups.c:1639 msgctxt "modulegroup" msgid "grading" msgstr "Цветовые каналы" -#: ../src/libs/modulegroups.c:1664 ../src/libs/modulegroups.c:2325 +#: ../src/libs/modulegroups.c:1647 ../src/libs/modulegroups.c:2309 msgctxt "modulegroup" msgid "effects" msgstr "Эффекты" -#: ../src/libs/modulegroups.c:1672 +#: ../src/libs/modulegroups.c:1655 msgid "workflow: beginner" msgstr "Рабочий процесс: Новичок" -#: ../src/libs/modulegroups.c:1721 +#: ../src/libs/modulegroups.c:1704 msgid "workflow: display-referred" msgstr "Рабочий процесс: Базовая кривая" -#: ../src/libs/modulegroups.c:1773 +#: ../src/libs/modulegroups.c:1757 msgid "search only" msgstr "Только поиск" -#: ../src/libs/modulegroups.c:1779 ../src/libs/modulegroups.c:2090 -#: ../src/libs/modulegroups.c:2599 +#: ../src/libs/modulegroups.c:1763 ../src/libs/modulegroups.c:2074 +#: ../src/libs/modulegroups.c:2583 msgctxt "modulegroup" msgid "deprecated" msgstr "Устаревшие" -#: ../src/libs/modulegroups.c:1792 +#: ../src/libs/modulegroups.c:1776 msgid "previous config" msgstr "Предыдущая конфигурация" -#: ../src/libs/modulegroups.c:1793 +#: ../src/libs/modulegroups.c:1777 msgid "previous layout" msgstr "Предыдущая группировка" -#: ../src/libs/modulegroups.c:1797 +#: ../src/libs/modulegroups.c:1781 msgid "previous config with new layout" msgstr "Предыдущая конфигурация с новой группировкой" -#: ../src/libs/modulegroups.c:1957 ../src/libs/modulegroups.c:2472 -#: ../src/libs/modulegroups.c:2484 +#: ../src/libs/modulegroups.c:1941 ../src/libs/modulegroups.c:2456 +#: ../src/libs/modulegroups.c:2468 msgid "remove this widget" msgstr "Удалить виджет" -#: ../src/libs/modulegroups.c:2107 ../src/libs/modulegroups.c:2347 +#: ../src/libs/modulegroups.c:2091 ../src/libs/modulegroups.c:2331 msgid "remove this module" msgstr "Удалить модуль" #. does it belong to recommended modules ? -#: ../src/libs/modulegroups.c:2316 +#: ../src/libs/modulegroups.c:2300 msgid "base" msgstr "Базовые" -#: ../src/libs/modulegroups.c:2319 +#: ../src/libs/modulegroups.c:2303 msgid "tone" msgstr "Тоновоспроизведение" -#: ../src/libs/modulegroups.c:2322 +#: ../src/libs/modulegroups.c:2306 msgid "technical" msgstr "Технические" -#: ../src/libs/modulegroups.c:2323 +#: ../src/libs/modulegroups.c:2307 msgid "grading" msgstr "Цветовые каналы" -#: ../src/libs/modulegroups.c:2329 ../src/libs/modulegroups.c:2337 +#: ../src/libs/modulegroups.c:2313 ../src/libs/modulegroups.c:2321 msgid "add this module" msgstr "Добавить этот модуль" #. show the submenu with all the modules -#: ../src/libs/modulegroups.c:2359 ../src/libs/modulegroups.c:2559 +#: ../src/libs/modulegroups.c:2343 ../src/libs/modulegroups.c:2543 msgid "all available modules" msgstr "Доступные модули" -#: ../src/libs/modulegroups.c:2367 +#: ../src/libs/modulegroups.c:2351 msgid "add module" msgstr "Добавить модуль" -#: ../src/libs/modulegroups.c:2372 +#: ../src/libs/modulegroups.c:2356 msgid "remove module" msgstr "Удалить модуль" -#: ../src/libs/modulegroups.c:2478 +#: ../src/libs/modulegroups.c:2462 msgid "header needed for other widgets" msgstr "Заголовок необходим для других виджетов" -#: ../src/libs/modulegroups.c:2494 ../src/libs/modulegroups.c:2501 +#: ../src/libs/modulegroups.c:2478 ../src/libs/modulegroups.c:2485 msgid "add this widget" msgstr "Добавить виджет" -#: ../src/libs/modulegroups.c:2514 +#: ../src/libs/modulegroups.c:2498 msgid "currently invisible" msgstr "Сейчас невидим" -#: ../src/libs/modulegroups.c:2543 +#: ../src/libs/modulegroups.c:2527 msgid "add widget" msgstr "Добавить виджет" -#: ../src/libs/modulegroups.c:2548 +#: ../src/libs/modulegroups.c:2532 msgid "remove widget" msgstr "Удалить виджет" -#: ../src/libs/modulegroups.c:2653 +#: ../src/libs/modulegroups.c:2637 msgid "show all history modules" msgstr "Показать все модули истории" -#: ../src/libs/modulegroups.c:2656 ../src/libs/modulegroups.c:3834 +#: ../src/libs/modulegroups.c:2640 ../src/libs/modulegroups.c:3836 msgid "" "show modules that are present in the history stack, regardless of whether or " "not they are currently enabled" @@ -22807,7 +23510,7 @@ "Показать модули, которые присутствуют в стеке истории, независимо от того, " "включены они в данный момент или нет" -#: ../src/libs/modulegroups.c:2747 ../src/libs/modulegroups.c:2816 +#: ../src/libs/modulegroups.c:2731 ../src/libs/modulegroups.c:2823 msgid "" "the following modules are deprecated because they have internal design " "mistakes that can't be corrected and alternative modules that correct them.\n" @@ -22818,19 +23521,19 @@ "модули.\n" "Устаревшие модули будут удалены для в следующем релизе." -#: ../src/libs/modulegroups.c:2775 ../src/libs/modulegroups.c:2776 +#: ../src/libs/modulegroups.c:2782 ../src/libs/modulegroups.c:2783 msgid "quick access panel" msgstr "Панель быстрого доступа" -#: ../src/libs/modulegroups.c:2786 +#: ../src/libs/modulegroups.c:2793 msgid "show only active modules" msgstr "Активные" -#: ../src/libs/modulegroups.c:2787 +#: ../src/libs/modulegroups.c:2794 msgid "active modules" msgstr "Активные модули" -#: ../src/libs/modulegroups.c:2792 +#: ../src/libs/modulegroups.c:2799 msgid "" "presets\n" "ctrl+click to manage" @@ -22838,143 +23541,147 @@ "Профили группировки модулей.\n" "Ctrl+Щелчок для настройки." -#: ../src/libs/modulegroups.c:2798 +#: ../src/libs/modulegroups.c:2805 msgid "search modules" msgstr "Поиск модуля" -#: ../src/libs/modulegroups.c:2799 +#: ../src/libs/modulegroups.c:2806 msgid "search modules by name or tag" msgstr "Поиск модуля по имени или метке" -#: ../src/libs/modulegroups.c:2809 +#: ../src/libs/modulegroups.c:2816 msgid "clear text" msgstr "Очистить" -#: ../src/libs/modulegroups.c:3051 +#: ../src/libs/modulegroups.c:3056 msgid "basic icon" msgstr "Иконка для «Базовые»" -#: ../src/libs/modulegroups.c:3061 +#: ../src/libs/modulegroups.c:3066 msgid "active icon" msgstr "Иконка для «Активные»" -#: ../src/libs/modulegroups.c:3071 +#: ../src/libs/modulegroups.c:3076 msgid "color icon" msgstr "Иконка для «Цветокоррекция»" -#: ../src/libs/modulegroups.c:3081 +#: ../src/libs/modulegroups.c:3086 msgid "correct icon" msgstr "Иконка для «Коррекция»" -#: ../src/libs/modulegroups.c:3091 +#: ../src/libs/modulegroups.c:3096 msgid "effect icon" msgstr "Иконка для «Эффекты»" -#: ../src/libs/modulegroups.c:3101 +#: ../src/libs/modulegroups.c:3106 msgid "favorites icon" msgstr "Иконка для «Избранные»" -#: ../src/libs/modulegroups.c:3111 +#: ../src/libs/modulegroups.c:3116 msgid "tone icon" msgstr "Иконка для «Тоновоспроизведение»" -#: ../src/libs/modulegroups.c:3121 +#: ../src/libs/modulegroups.c:3126 msgid "grading icon" msgstr "Иконка для «Цветовые каналы»" -#: ../src/libs/modulegroups.c:3131 +#: ../src/libs/modulegroups.c:3136 msgid "technical icon" msgstr "Иконка для «Технические»" -#: ../src/libs/modulegroups.c:3164 +#: ../src/libs/modulegroups.c:3169 msgid "quick access panel widgets" msgstr "Виджеты панели быстрого доступа" -#: ../src/libs/modulegroups.c:3166 +#: ../src/libs/modulegroups.c:3171 msgid "quick access" msgstr "Быстрый доступ" -#: ../src/libs/modulegroups.c:3186 +#: ../src/libs/modulegroups.c:3191 msgid "add widget to the quick access panel" msgstr "Добавить виджет на панель быстрого доступа" -#: ../src/libs/modulegroups.c:3218 +#: ../src/libs/modulegroups.c:3223 msgid "group icon" msgstr "Иконка группы" -#: ../src/libs/modulegroups.c:3227 +#: ../src/libs/modulegroups.c:3232 msgid "group name" msgstr "Имя группы" -#: ../src/libs/modulegroups.c:3238 +#: ../src/libs/modulegroups.c:3243 msgid "remove group" msgstr "Удалить группу" -#: ../src/libs/modulegroups.c:3264 +#: ../src/libs/modulegroups.c:3269 msgid "move group to the left" msgstr "Переместить группу влево" -#: ../src/libs/modulegroups.c:3272 +#: ../src/libs/modulegroups.c:3277 msgid "add module to the group" msgstr "Добавить модуль в группу" -#: ../src/libs/modulegroups.c:3283 +#: ../src/libs/modulegroups.c:3288 msgid "move group to the right" msgstr "Переместить группу вправо" -#: ../src/libs/modulegroups.c:3463 +#: ../src/libs/modulegroups.c:3464 msgid "rename preset" msgstr "Переименовать профиль" -#: ../src/libs/modulegroups.c:3470 +#: ../src/libs/modulegroups.c:3467 +msgid "_rename" +msgstr "Переименовать" + +#: ../src/libs/modulegroups.c:3473 msgid "new preset name:" msgstr "Новое имя профиля:" -#: ../src/libs/modulegroups.c:3471 +#: ../src/libs/modulegroups.c:3474 msgid "a preset with this name already exists!" msgstr "Профиль с таким именем уже существует!" -#: ../src/libs/modulegroups.c:3804 +#: ../src/libs/modulegroups.c:3806 msgid "preset: " msgstr "Профиль: " -#: ../src/libs/modulegroups.c:3811 +#: ../src/libs/modulegroups.c:3813 msgid "remove the preset" msgstr "Удалить профиль" -#: ../src/libs/modulegroups.c:3813 +#: ../src/libs/modulegroups.c:3815 msgid "duplicate the preset" msgstr "Копировать данный профиль" -#: ../src/libs/modulegroups.c:3815 +#: ../src/libs/modulegroups.c:3817 msgid "rename the preset" msgstr "Переименовать профиль" -#: ../src/libs/modulegroups.c:3817 +#: ../src/libs/modulegroups.c:3819 msgid "create a new empty preset" msgstr "Добавить новый профиль" -#: ../src/libs/modulegroups.c:3825 +#: ../src/libs/modulegroups.c:3827 msgid "show search line" msgstr "Показывать строку поиска" -#: ../src/libs/modulegroups.c:3828 +#: ../src/libs/modulegroups.c:3830 msgid "show quick access panel" msgstr "Показывать панель быстрого доступа" -#: ../src/libs/modulegroups.c:3831 +#: ../src/libs/modulegroups.c:3833 msgid "show all history modules in active group" msgstr "Показать все модули истории в активной группе" -#: ../src/libs/modulegroups.c:3843 +#: ../src/libs/modulegroups.c:3845 msgid "auto-apply this preset" msgstr "Применять профиль автоматически" -#: ../src/libs/modulegroups.c:3858 +#: ../src/libs/modulegroups.c:3860 msgid "module groups" msgstr "Группы модулей" -#: ../src/libs/modulegroups.c:3875 +#: ../src/libs/modulegroups.c:3877 msgid "" "this is a built-in read-only preset. duplicate it if you want to make changes" msgstr "" @@ -22985,16 +23692,16 @@ msgid "navigation" msgstr "Навигация" -#: ../src/libs/navigation.c:111 ../src/libs/navigation.c:191 +#: ../src/libs/navigation.c:112 ../src/libs/navigation.c:194 msgctxt "navigationbox" msgid "fill" msgstr "Заливка" -#: ../src/libs/navigation.c:114 ../src/libs/navigation.c:189 +#: ../src/libs/navigation.c:115 ../src/libs/navigation.c:192 msgid "small" msgstr "Уменьшенный вид" -#: ../src/libs/navigation.c:151 +#: ../src/libs/navigation.c:154 msgid "" "navigation\n" "click or drag to position zoomed area in center view" @@ -23003,35 +23710,35 @@ "Щелкните или перетащите, чтобы расположить увеличенную область в центре " "изображения" -#: ../src/libs/navigation.c:173 +#: ../src/libs/navigation.c:176 msgid "hide navigation thumbnail" msgstr "Переключить статус навигационной панели" -#: ../src/libs/navigation.c:187 +#: ../src/libs/navigation.c:190 msgid "image zoom level" msgstr "Увеличение изображения" -#: ../src/libs/navigation.c:192 +#: ../src/libs/navigation.c:195 msgid "50%" msgstr "50%" -#: ../src/libs/navigation.c:193 +#: ../src/libs/navigation.c:196 msgid "100%" msgstr "100%" -#: ../src/libs/navigation.c:194 +#: ../src/libs/navigation.c:197 msgid "200%" msgstr "200%" -#: ../src/libs/navigation.c:195 +#: ../src/libs/navigation.c:198 msgid "400%" msgstr "400%" -#: ../src/libs/navigation.c:196 +#: ../src/libs/navigation.c:199 msgid "800%" msgstr "800%" -#: ../src/libs/navigation.c:197 +#: ../src/libs/navigation.c:200 msgid "1600%" msgstr "1600%" @@ -23275,21 +23982,21 @@ msgid "print with current settings" msgstr "Печать с текущими параметрами" -#: ../src/libs/select.c:136 +#: ../src/libs/select.c:137 msgid "select all images in current collection" msgstr "Выделить все снимки в текущей коллекции" -#: ../src/libs/select.c:140 +#: ../src/libs/select.c:141 msgid "clear selection" msgstr "Снять выделение" -#: ../src/libs/select.c:144 +#: ../src/libs/select.c:145 msgid "" "select unselected images\n" "in current collection" msgstr "Обратить выделение в текущей коллекции" -#: ../src/libs/select.c:148 +#: ../src/libs/select.c:149 msgid "" "select all images which are in the same\n" "film roll as the selected images" @@ -23297,7 +24004,7 @@ "Выделить все снимки из съёмки, к которой\n" "относятся уже выбранные снимки" -#: ../src/libs/select.c:152 +#: ../src/libs/select.c:153 msgid "" "select untouched images in\n" "current collection" @@ -23317,29 +24024,33 @@ msgid "create" msgstr "Создать" -#: ../src/libs/snapshots.c:92 +#: ../src/libs/snapshots.c:88 msgid "snapshots" msgstr "Мгновенные снимки" -#: ../src/libs/snapshots.c:141 +#: ../src/libs/snapshots.c:137 msgctxt "snapshot sign" msgid "S" msgstr "S" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:662 +msgid "snapshots for removed image have been deleted" +msgstr "Ярлыки удаленного изображения были удалены" + +#: ../src/libs/snapshots.c:703 #, c-format msgid "↗ %s '%s'" msgstr "↗ %s '%s'" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:703 msgid "this snapshot was taken from" msgstr "Этот снимок был сделан из" -#: ../src/libs/snapshots.c:663 +#: ../src/libs/snapshots.c:742 msgid "take snapshot" msgstr "Сделать снимок" -#: ../src/libs/snapshots.c:665 +#: ../src/libs/snapshots.c:744 msgid "" "take snapshot to compare with another image or the same image at another " "stage of development" @@ -23347,7 +24058,7 @@ "Сделать снимок для сравнения с другой фотографией или со стадией обработки " "данной фотографии" -#: ../src/libs/snapshots.c:734 +#: ../src/libs/snapshots.c:790 msgid "toggle last snapshot" msgstr "Переключить последний снимок" @@ -23366,7 +24077,11 @@ msgstr[1] "Вы действительно хотите удалить %d стиля?" msgstr[2] "Вы действительно хотите удалить %d стилей?" -#: ../src/libs/styles.c:444 ../src/libs/styles.c:627 +#: ../src/libs/styles.c:441 ../src/libs/styles.c:626 +msgid "_overwrite" +msgstr "Перезаписать" + +#: ../src/libs/styles.c:446 ../src/libs/styles.c:631 #, c-format msgid "" "style `%s' already exists.\n" @@ -23375,24 +24090,24 @@ "Стиль «%s» уже существует.\n" "Вы хотите его перезаписать?\n" -#: ../src/libs/styles.c:446 ../src/libs/styles.c:629 +#: ../src/libs/styles.c:448 ../src/libs/styles.c:633 msgid "apply this option to all existing styles" msgstr "Применить указанную опцию ко всем стилям" -#: ../src/libs/styles.c:509 +#: ../src/libs/styles.c:511 #, c-format msgid "style %s was successfully exported" msgstr "Стиль «%s» успешно экспортирован" -#: ../src/libs/styles.c:526 +#: ../src/libs/styles.c:528 msgid "select style" msgstr "Выбор файла стилей" -#: ../src/libs/styles.c:536 +#: ../src/libs/styles.c:538 msgid "darktable style files" msgstr "Файлы стилей darktable" -#: ../src/libs/styles.c:815 +#: ../src/libs/styles.c:819 msgid "" "available styles,\n" "double-click to apply" @@ -23400,73 +24115,73 @@ "Доступные стили,\n" "щёлкните дважды для применения" -#: ../src/libs/styles.c:824 ../src/libs/styles.c:825 +#: ../src/libs/styles.c:828 ../src/libs/styles.c:829 msgid "filter style names" msgstr "Поиск по имени стиля" -#: ../src/libs/styles.c:837 +#: ../src/libs/styles.c:841 msgid "create duplicate" msgstr "Создать копию" -#: ../src/libs/styles.c:844 +#: ../src/libs/styles.c:848 msgid "creates a duplicate of the image before applying style" msgstr "Создать копию снимка перед применением стиля" -#: ../src/libs/styles.c:862 +#: ../src/libs/styles.c:866 msgid "create..." msgstr "Создать..." -#: ../src/libs/styles.c:864 +#: ../src/libs/styles.c:868 msgid "create styles from history stack of selected images" msgstr "Создать стиль из истории изменений выбранных снимков" -#: ../src/libs/styles.c:869 ../src/libs/tagging.c:2252 +#: ../src/libs/styles.c:873 ../src/libs/tagging.c:2283 msgid "edit..." msgstr "Изменить..." -#: ../src/libs/styles.c:871 +#: ../src/libs/styles.c:875 msgid "edit the selected styles in list above" msgstr "Изменить выбранный стиль" -#: ../src/libs/styles.c:878 +#: ../src/libs/styles.c:882 msgid "removes the selected styles in list above" msgstr "Удалить выбранный стиль" -#: ../src/libs/styles.c:885 +#: ../src/libs/styles.c:889 msgid "import styles from a style files" msgstr "Импорт стиля из файла" -#: ../src/libs/styles.c:892 +#: ../src/libs/styles.c:896 msgid "export the selected styles into a style files" msgstr "Экспорт стиля в файл" -#: ../src/libs/styles.c:899 +#: ../src/libs/styles.c:903 msgid "apply the selected styles in list above to selected images" msgstr "Применить стиль к выбранным снимкам" -#: ../src/libs/tagging.c:105 +#: ../src/libs/tagging.c:109 msgid "tagging" msgstr "Метки" -#: ../src/libs/tagging.c:1255 +#: ../src/libs/tagging.c:1258 msgid "attach tag to all" msgstr "Прикрепить метку ко всем снимкам" -#: ../src/libs/tagging.c:1263 ../src/libs/tagging.c:2225 +#: ../src/libs/tagging.c:1266 ../src/libs/tagging.c:2256 msgid "detach tag" msgstr "Снять метку" -#: ../src/libs/tagging.c:1483 +#: ../src/libs/tagging.c:1486 msgid "delete tag?" msgstr "Удаление метки" -#: ../src/libs/tagging.c:1490 ../src/libs/tagging.c:1578 -#: ../src/libs/tagging.c:1789 ../src/libs/tagging.c:2063 +#: ../src/libs/tagging.c:1496 ../src/libs/tagging.c:1587 +#: ../src/libs/tagging.c:1814 ../src/libs/tagging.c:2093 #, c-format msgid "selected: %s" msgstr "Выбрано: %s " -#: ../src/libs/tagging.c:1497 +#: ../src/libs/tagging.c:1503 #, c-format msgid "" "do you really want to delete the tag `%s'?\n" @@ -23484,16 +24199,16 @@ "Вы действительно хотите удалить метку «%s»?\n" "Она применена к %d снимкам." -#: ../src/libs/tagging.c:1531 +#: ../src/libs/tagging.c:1537 #, c-format msgid "tag %s removed" msgstr "Метка «%s» удалена" -#: ../src/libs/tagging.c:1571 +#: ../src/libs/tagging.c:1577 msgid "delete node?" msgstr "Удаление узла" -#: ../src/libs/tagging.c:1585 +#: ../src/libs/tagging.c:1594 #, c-format msgid "<u>%d</u> tag will be deleted" msgid_plural "<u>%d</u> tags will be deleted" @@ -23501,8 +24216,8 @@ msgstr[1] "<u>%d</u> метки будут удалены" msgstr[2] "<u>%d</u> меток будут удалены" -#: ../src/libs/tagging.c:1590 ../src/libs/tagging.c:1801 -#: ../src/libs/tagging.c:2075 +#: ../src/libs/tagging.c:1599 ../src/libs/tagging.c:1826 +#: ../src/libs/tagging.c:2105 #, c-format msgid "<u>%d</u> image will be updated" msgid_plural "<u>%d</u> images will be updated" @@ -23510,42 +24225,42 @@ msgstr[1] "<u>%d</u> снимка будут обновлены" msgstr[2] "<u>%d</u> снимков будут обновлены" -#: ../src/libs/tagging.c:1616 +#: ../src/libs/tagging.c:1625 #, c-format msgid "%d tags removed" msgstr "Удалено меток: %d" -#: ../src/libs/tagging.c:1652 +#: ../src/libs/tagging.c:1668 msgid "create tag" msgstr "Создание метки" -#: ../src/libs/tagging.c:1662 ../src/libs/tagging.c:1809 +#: ../src/libs/tagging.c:1681 ../src/libs/tagging.c:1834 msgid "name: " msgstr "Имя:" -#: ../src/libs/tagging.c:1674 +#: ../src/libs/tagging.c:1696 #, c-format msgid "add to: \"%s\" " msgstr "Добавить к: «%s» " -#: ../src/libs/tagging.c:1680 ../src/libs/tagging.c:1824 +#: ../src/libs/tagging.c:1702 ../src/libs/tagging.c:1851 msgid "category" msgstr "Категория" -#: ../src/libs/tagging.c:1689 ../src/libs/tagging.c:1833 +#: ../src/libs/tagging.c:1711 ../src/libs/tagging.c:1860 msgid "synonyms: " msgstr "Синонимы: " -#: ../src/libs/tagging.c:1706 ../src/libs/tagging.c:1855 -#: ../src/libs/tagging.c:2097 +#: ../src/libs/tagging.c:1728 ../src/libs/tagging.c:1882 +#: ../src/libs/tagging.c:2128 msgid "empty tag is not allowed, aborting" msgstr "Имя метки не может быть пустым. Действие прервано." -#: ../src/libs/tagging.c:1717 +#: ../src/libs/tagging.c:1739 msgid "tag name already exists. aborting." msgstr "Метка уже существует. Действие прервано." -#: ../src/libs/tagging.c:1796 ../src/libs/tagging.c:2070 +#: ../src/libs/tagging.c:1821 ../src/libs/tagging.c:2100 #, c-format msgid "<u>%d</u> tag will be updated" msgid_plural "<u>%d</u> tags will be updated" @@ -23553,108 +24268,108 @@ msgstr[1] "<u>%d</u> метки будут изменены." msgstr[2] "<u>%d</u> меток будут изменены." -#: ../src/libs/tagging.c:1857 +#: ../src/libs/tagging.c:1884 msgid "" "'|' character is not allowed for renaming tag.\n" "to modify the hierarchy use rename path instead. Aborting." msgstr "Имя метки не может содержать символ «|». Действие прервано." -#: ../src/libs/tagging.c:1896 ../src/libs/tagging.c:2004 +#: ../src/libs/tagging.c:1923 ../src/libs/tagging.c:2031 #, c-format msgid "at least one new tag name (%s) already exists, aborting" msgstr "" "По крайней мере одна новая метка «%s» уже существует. Действие прервано." -#: ../src/libs/tagging.c:2056 +#: ../src/libs/tagging.c:2083 msgid "change path" msgstr "Переименование пути" -#: ../src/libs/tagging.c:2099 +#: ../src/libs/tagging.c:2130 msgid "'|' misplaced, empty tag is not allowed, aborting" msgstr "" "Ошибка в использовании символа «|» для разделения меток. Действие прервано." -#: ../src/libs/tagging.c:2195 +#: ../src/libs/tagging.c:2226 #, c-format msgid "tag %s created" msgstr "Метка «%s» создана" -#: ../src/libs/tagging.c:2221 +#: ../src/libs/tagging.c:2252 msgid "attach tag" msgstr "Прикрепить" -#: ../src/libs/tagging.c:2234 +#: ../src/libs/tagging.c:2265 msgid "create tag..." msgstr "Создать метку..." -#: ../src/libs/tagging.c:2240 +#: ../src/libs/tagging.c:2271 msgid "delete tag" msgstr "Удалить" -#: ../src/libs/tagging.c:2247 +#: ../src/libs/tagging.c:2278 msgid "delete node" msgstr "Удалить узел" -#: ../src/libs/tagging.c:2260 +#: ../src/libs/tagging.c:2291 msgid "change path..." msgstr "Переименовать путь..." -#: ../src/libs/tagging.c:2270 +#: ../src/libs/tagging.c:2301 msgid "set as a tag" msgstr "Прикрепить как метку" -#: ../src/libs/tagging.c:2281 +#: ../src/libs/tagging.c:2312 msgid "copy to entry" msgstr "Ввести в строку поиска" -#: ../src/libs/tagging.c:2298 +#: ../src/libs/tagging.c:2329 msgid "go to tag collection" msgstr "К помеченным снимкам" -#: ../src/libs/tagging.c:2304 +#: ../src/libs/tagging.c:2335 msgid "go back to work" msgstr "Вернуться назад" -#: ../src/libs/tagging.c:2461 +#: ../src/libs/tagging.c:2492 #, c-format msgid "%s" msgstr "%s" -#: ../src/libs/tagging.c:2462 +#: ../src/libs/tagging.c:2493 msgid "(private)" msgstr "(персональн.)" -#: ../src/libs/tagging.c:2488 +#: ../src/libs/tagging.c:2519 msgid "select a keyword file" msgstr "Выберите файл ключевых слов" -#: ../src/libs/tagging.c:2501 +#: ../src/libs/tagging.c:2532 msgid "error importing tags" msgstr "Ошибка при импорте меток!" -#: ../src/libs/tagging.c:2503 +#: ../src/libs/tagging.c:2534 #, c-format msgid "%zd tags imported" msgstr "Импортировано меток: %zd" -#: ../src/libs/tagging.c:2524 +#: ../src/libs/tagging.c:2555 msgid "select file to export to" msgstr "Выберите файл для экспорта в" -#: ../src/libs/tagging.c:2538 +#: ../src/libs/tagging.c:2569 msgid "error exporting tags" msgstr "Ошибка при экспорте меток!" -#: ../src/libs/tagging.c:2540 +#: ../src/libs/tagging.c:2571 #, c-format msgid "%zd tags exported" msgstr "Экспортировано меток: %zd" -#: ../src/libs/tagging.c:2964 +#: ../src/libs/tagging.c:2995 msgid "drop to root" msgstr "Сбросить до корня" -#: ../src/libs/tagging.c:3100 +#: ../src/libs/tagging.c:3131 msgid "" "attached tags\n" "press Delete or double-click to detach\n" @@ -23666,47 +24381,47 @@ "Щелкните правой кнопкой мыши для других действий с прикрепленным тегом,\n" "нажмите Tab, чтобы перевести фокус на запись." -#: ../src/libs/tagging.c:3111 +#: ../src/libs/tagging.c:3142 msgid "attach" msgstr "Прикрепить" -#: ../src/libs/tagging.c:3112 +#: ../src/libs/tagging.c:3143 msgid "attach tag to all selected images" msgstr "Прикрепить метку к выбранным снимкам" -#: ../src/libs/tagging.c:3115 +#: ../src/libs/tagging.c:3146 msgid "detach" msgstr "Снять" -#: ../src/libs/tagging.c:3116 +#: ../src/libs/tagging.c:3147 msgid "detach tag from all selected images" msgstr "Снять метку с выбранных снимков" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "toggle list with / without hierarchy" msgstr "Переключить режим с иерархией или без неё" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "hide" msgstr "Скрыть" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "toggle sort by name or by count" msgstr "Переключить режим сортировки по имени или по количеству" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "sort" msgstr "Сортировка" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "toggle show or not darktable tags" msgstr "Переключить режим отображения служебных меток" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "dttags" msgstr "Метки Darktable" -#: ../src/libs/tagging.c:3149 +#: ../src/libs/tagging.c:3180 msgid "" "enter tag name\n" "press Enter to create a new tag and attach it on selected images\n" @@ -23719,11 +24434,11 @@ "нажмите клавишу Tab или Down, чтобы перейти к первому соответствующему тегу\n" "нажмите Shift+Tab, чтобы выбрать первый прикрепленный тег пользователя" -#: ../src/libs/tagging.c:3160 ../src/libs/tagging.c:3166 +#: ../src/libs/tagging.c:3191 ../src/libs/tagging.c:3197 msgid "clear entry" msgstr "Очистить" -#: ../src/libs/tagging.c:3213 +#: ../src/libs/tagging.c:3244 msgid "" "tag dictionary,\n" "Enter or double-click to attach selected tag on selected images\n" @@ -23740,48 +24455,48 @@ "щелкните правой кнопкой мыши для других действий с выбранным тегом,\n" "нажмите Shift+Tab, чтобы перевести фокус на запись." -#: ../src/libs/tagging.c:3248 +#: ../src/libs/tagging.c:3279 msgid "" "create a new tag with the\n" "name you entered" msgstr "Создать новую метку с введённым именем" -#: ../src/libs/tagging.c:3251 +#: ../src/libs/tagging.c:3282 msgid "import tags from a Lightroom keyword file" msgstr "Импорт из файла меток Lightroom" -#: ../src/libs/tagging.c:3254 +#: ../src/libs/tagging.c:3285 msgid "export all tags to a Lightroom keyword file" msgstr "Экспорт в файл меток Lightroom" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "toggle list / tree view" msgstr "Переключить режим список или дерево" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "tree" msgstr "Дерево" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "toggle list with / without suggestion" msgstr "Переключить режим с подсказками или без них" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "suggestion" msgstr "Подсказка" -#: ../src/libs/tagging.c:3282 +#: ../src/libs/tagging.c:3313 msgid "redo last tag" msgstr "Прикрепить последнюю метку заново" -#: ../src/libs/tagging.c:3365 +#: ../src/libs/tagging.c:3396 msgid "" "tag shortcut is not active with tag tree view. please switch to list view" msgstr "" "Комбинации клавиш для меток не работают в режиме дерева. Переключитесь в " "режим списка." -#: ../src/libs/tagging.c:3469 +#: ../src/libs/tagging.c:3500 msgid "tagging settings" msgstr "Настройки меток" @@ -23798,29 +24513,6 @@ msgid "toggle color label of selected images" msgstr "Переключить цветовую метку выбранных изображений" -#: ../src/libs/tools/darktable.c:284 -#, c-format -msgid "copyright (c) the authors 2009-%s" -msgstr "Авторские права (c) принадлежат создателям 2009-%s" - -#: ../src/libs/tools/darktable.c:288 -msgid "organize and develop images from digital cameras" -msgstr "Организация и обработка цифровых фотографий" - -#: ../src/libs/tools/darktable.c:300 -msgid "all those of you that made previous releases possible" -msgstr "все, кто участвовал в подготовке предыдущих версий" - -#: ../src/libs/tools/darktable.c:305 -msgid "and..." -msgstr "и..." - -#: ../src/libs/tools/darktable.c:307 -msgid "translator-credits" -msgstr "" -"Тимур Давлетшин <timur.davletshin@gmail.com>, Александр Прокудин <alexandre." -"prokoudine@gmail.com>" - #: ../src/libs/tools/filmstrip.c:45 msgid "filmstrip" msgstr "Лента снимков" @@ -24139,35 +24831,35 @@ msgid "click to enter culling layout in dynamic mode." msgstr "Динамическая выбраковка" -#: ../src/libs/tools/lighttable.c:368 +#: ../src/libs/tools/lighttable.c:365 msgid "toggle filemanager layout" msgstr "Переключить режим менеджер файлов" -#: ../src/libs/tools/lighttable.c:371 +#: ../src/libs/tools/lighttable.c:368 msgid "click to enter filemanager layout." msgstr "Менеджер файлов" -#: ../src/libs/tools/lighttable.c:377 +#: ../src/libs/tools/lighttable.c:374 msgid "toggle zoomable lighttable layout" msgstr "Переключить режим обзора" -#: ../src/libs/tools/lighttable.c:380 +#: ../src/libs/tools/lighttable.c:377 msgid "click to enter zoomable lighttable layout." msgstr "Световой стол" -#: ../src/libs/tools/lighttable.c:386 +#: ../src/libs/tools/lighttable.c:383 msgid "toggle culling mode" msgstr "Переключить режим выбраковки" -#: ../src/libs/tools/lighttable.c:394 +#: ../src/libs/tools/lighttable.c:391 msgid "toggle culling dynamic mode" msgstr "Переключить динамический режим выбраковки" -#: ../src/libs/tools/lighttable.c:441 +#: ../src/libs/tools/lighttable.c:438 msgid "toggle culling zoom mode" msgstr "Переключить режим выбраковки по масштабированию" -#: ../src/libs/tools/lighttable.c:443 +#: ../src/libs/tools/lighttable.c:440 msgid "exit current layout" msgstr "Выйти из текущего режима" @@ -24251,7 +24943,7 @@ msgid "Lua options" msgstr "Настройки Lua" -#: ../src/views/darkroom.c:607 +#: ../src/views/darkroom.c:503 #, c-format msgid "" "darktable could not load `%s', switching to lighttable now.\n" @@ -24269,62 +24961,62 @@ "Проверьте наличие поддержки Вашей камеры на\n" "https://www.darktable.org/resources/camera-support/" -#: ../src/views/darkroom.c:625 +#: ../src/views/darkroom.c:521 #, c-format msgctxt "darkroom" msgid "loading `%s' ..." msgstr "Открытие файла «%s»..." -#: ../src/views/darkroom.c:749 ../src/views/darkroom.c:2496 +#: ../src/views/darkroom.c:668 ../src/views/darkroom.c:2335 msgid "gamut check" msgstr "Проверка цветового охвата" -#: ../src/views/darkroom.c:749 +#: ../src/views/darkroom.c:668 msgid "soft proof" msgstr "Программная цветопроба" #. fail :( -#: ../src/views/darkroom.c:787 ../src/views/print.c:356 +#: ../src/views/darkroom.c:708 ../src/views/print.c:356 msgid "no image to open!" msgstr "Нет открытых изображений!" -#: ../src/views/darkroom.c:1331 +#: ../src/views/darkroom.c:1232 msgid "no user-defined presets for favorite modules were found" msgstr "Пользовательские профили избранных модулей не обнаружены" -#: ../src/views/darkroom.c:1476 +#: ../src/views/darkroom.c:1377 msgid "no styles have been created yet" msgstr "Стили обработки не обнаружены" -#: ../src/views/darkroom.c:2331 ../src/views/darkroom.c:2332 +#: ../src/views/darkroom.c:2170 ../src/views/darkroom.c:2171 msgid "quick access to presets" msgstr "Быстрый доступ к профилям модулей" -#: ../src/views/darkroom.c:2340 +#: ../src/views/darkroom.c:2179 msgid "quick access to styles" msgstr "Быстрый доступ к стилям" -#: ../src/views/darkroom.c:2342 +#: ../src/views/darkroom.c:2181 msgid "quick access for applying any of your styles" msgstr "Быстрый доступ к стилям обработки" -#: ../src/views/darkroom.c:2348 +#: ../src/views/darkroom.c:2187 msgid "second window" msgstr "Второе окно" -#: ../src/views/darkroom.c:2351 +#: ../src/views/darkroom.c:2190 msgid "display a second darkroom image window" msgstr "Открыть отдельное окно предпросмотра" -#: ../src/views/darkroom.c:2356 +#: ../src/views/darkroom.c:2195 msgid "color assessment" msgstr "Цветовая оценка" -#: ../src/views/darkroom.c:2359 +#: ../src/views/darkroom.c:2198 msgid "toggle ISO 12646 color assessment conditions" msgstr "Переключить режим цветовой оценки ISO 12646" -#: ../src/views/darkroom.c:2372 +#: ../src/views/darkroom.c:2211 msgid "" "toggle raw over exposed indication\n" "right click for options" @@ -24332,27 +25024,27 @@ "Переключить просмотр переэкспонированных участков в Raw.\n" "Настройки открываются по щелчку правой кнопкой мыши." -#: ../src/views/darkroom.c:2388 +#: ../src/views/darkroom.c:2227 msgid "select how to mark the clipped pixels" msgstr "Способ пометки пикселей с клиппингом" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with CFA color" msgstr "Пометить цветом CFA" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with solid color" msgstr "Пометить сплошной заливкой" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "false color" msgstr "Пометить псевдоцветом" -#: ../src/views/darkroom.c:2393 ../src/views/darkroom.c:2444 +#: ../src/views/darkroom.c:2232 ../src/views/darkroom.c:2283 msgid "color scheme" msgstr "Цветовая схема" -#: ../src/views/darkroom.c:2394 +#: ../src/views/darkroom.c:2233 msgid "" "select the solid color to indicate over exposure.\n" "will only be used if mode = mark with solid color" @@ -24360,27 +25052,27 @@ "Выбор цвета для пометки переэкспонированных участков.\n" "Только для режима «Пометить сплошной заливкой»." -#: ../src/views/darkroom.c:2397 +#: ../src/views/darkroom.c:2236 msgctxt "solidcolor" msgid "red" msgstr "Красный" -#: ../src/views/darkroom.c:2398 +#: ../src/views/darkroom.c:2237 msgctxt "solidcolor" msgid "green" msgstr "Зелёный" -#: ../src/views/darkroom.c:2399 +#: ../src/views/darkroom.c:2238 msgctxt "solidcolor" msgid "blue" msgstr "Синий" -#: ../src/views/darkroom.c:2400 +#: ../src/views/darkroom.c:2239 msgctxt "solidcolor" msgid "black" msgstr "Чёрный" -#: ../src/views/darkroom.c:2408 +#: ../src/views/darkroom.c:2247 msgid "" "threshold of what shall be considered overexposed\n" "1.0 - white level\n" @@ -24390,7 +25082,7 @@ "1.0 — уровень белого\n" "0.0 — уровень чёрного" -#: ../src/views/darkroom.c:2422 +#: ../src/views/darkroom.c:2261 msgid "" "toggle clipping indication\n" "right click for options" @@ -24398,11 +25090,11 @@ "Переключить просмотр переэкспонированных участков.\n" "Настройки открываются по щелчку правой кнопкой мыши." -#: ../src/views/darkroom.c:2437 +#: ../src/views/darkroom.c:2276 msgid "clipping preview mode" msgstr "Порог обрезки" -#: ../src/views/darkroom.c:2438 +#: ../src/views/darkroom.c:2277 msgid "" "select the metric you want to preview\n" "full gamut is the combination of all other modes" @@ -24410,39 +25102,39 @@ "Выберите показатель, который вы хотите просмотреть\n" "полная гамма – это комбинация всех остальных режимов" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "full gamut" msgstr "Полный цветовой охват" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "any RGB channel" msgstr "Любой канал RGB" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "luminance only" msgstr "Только светлота" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "saturation only" msgstr "Только насыщенность" -#: ../src/views/darkroom.c:2445 +#: ../src/views/darkroom.c:2284 msgid "select colors to indicate clipping" msgstr "Выбор цвета для пометки недо- и переэкспонированных участков" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "red & blue" msgstr "Красный и синий" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "purple & green" msgstr "Пурпурный и зелёный" -#: ../src/views/darkroom.c:2454 +#: ../src/views/darkroom.c:2293 msgid "lower threshold" msgstr "Нижний порог" -#: ../src/views/darkroom.c:2455 +#: ../src/views/darkroom.c:2294 msgid "" "clipping threshold for the black point,\n" "in EV, relatively to white (0 EV).\n" @@ -24462,11 +25154,11 @@ "отпечаток на глянцевой бумаге на -8.00 EV,\n" "а ч-б отпечаток на глянцевой бумаге на -9.00 EV." -#: ../src/views/darkroom.c:2471 +#: ../src/views/darkroom.c:2310 msgid "upper threshold" msgstr "Верхний порог" -#: ../src/views/darkroom.c:2473 +#: ../src/views/darkroom.c:2312 #, no-c-format msgid "" "clipping threshold for the white point.\n" @@ -24475,11 +25167,11 @@ "Порог обрезки для белой точки.\n" "100% — максимальная освещённость." -#: ../src/views/darkroom.c:2485 +#: ../src/views/darkroom.c:2324 msgid "softproof" msgstr "Программная цветопроба" -#: ../src/views/darkroom.c:2488 +#: ../src/views/darkroom.c:2327 msgid "" "toggle softproofing\n" "right click for profile options" @@ -24487,7 +25179,7 @@ "Переключить программную цветопробу.\n" "Профили выбираются по щелчку правой кнопкой мыши." -#: ../src/views/darkroom.c:2499 +#: ../src/views/darkroom.c:2338 msgid "" "toggle gamut checking\n" "right click for profile options" @@ -24495,46 +25187,54 @@ "Переключить проверку цветового охвата.\n" "Профили выбираются по щелчку правой кнопкой мыши." -#: ../src/views/darkroom.c:2524 ../src/views/darkroom.c:2526 -#: ../src/views/darkroom.c:2540 ../src/views/darkroom.c:2541 -#: ../src/views/darkroom.c:2542 ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2365 ../src/views/darkroom.c:2367 +#: ../src/views/darkroom.c:2381 ../src/views/darkroom.c:2382 +#: ../src/views/darkroom.c:2383 ../src/views/darkroom.c:2384 #: ../src/views/lighttable.c:1182 ../src/views/lighttable.c:1184 msgid "profiles" msgstr "профили" -#: ../src/views/darkroom.c:2526 ../src/views/lighttable.c:1184 +#: ../src/views/darkroom.c:2367 ../src/views/lighttable.c:1184 msgid "preview intent" msgstr "Предварительное намерение" -#: ../src/views/darkroom.c:2540 ../src/views/lighttable.c:1188 +#: ../src/views/darkroom.c:2381 ../src/views/lighttable.c:1188 msgid "display profile" msgstr "Профиль" -#: ../src/views/darkroom.c:2541 ../src/views/lighttable.c:1191 +#: ../src/views/darkroom.c:2382 ../src/views/lighttable.c:1191 msgid "preview display profile" msgstr "Предпросмотр профиля монитора" -#: ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2384 msgid "histogram profile" msgstr "Профиль гистограммы" -#: ../src/views/darkroom.c:2605 ../src/views/lighttable.c:1225 +#: ../src/views/darkroom.c:2391 +msgid "second preview window ISO 12646 color assessment" +msgstr "Второй предпросмотр цветовой оценки ISO 12646" + +#: ../src/views/darkroom.c:2393 +msgid "color assessment second preview" +msgstr "Второй предпросмотр цветовой оценки" + +#: ../src/views/darkroom.c:2452 ../src/views/lighttable.c:1225 msgid "display ICC profiles" msgstr "ICC-профиль" -#: ../src/views/darkroom.c:2609 ../src/views/lighttable.c:1229 +#: ../src/views/darkroom.c:2456 ../src/views/lighttable.c:1229 msgid "preview display ICC profiles" msgstr "Предпросмотр ICC-профиля" -#: ../src/views/darkroom.c:2613 +#: ../src/views/darkroom.c:2460 msgid "softproof ICC profiles" msgstr "ICC-профиль цветопробы" -#: ../src/views/darkroom.c:2617 +#: ../src/views/darkroom.c:2464 msgid "histogram and color picker ICC profiles" msgstr "ICC-профили гистограммы и цветовой пипетки" -#: ../src/views/darkroom.c:2651 +#: ../src/views/darkroom.c:2497 msgid "" "toggle guide lines\n" "right click for guides options" @@ -24543,137 +25243,137 @@ "щелкните правой кнопкой мыши для параметров направляющих" #. Fullscreen preview key -#: ../src/views/darkroom.c:2668 +#: ../src/views/darkroom.c:2514 msgid "full preview" msgstr "Полноэкранный предпросмотр" #. add an option to allow skip mouse events while other overlays are consuming mouse actions -#: ../src/views/darkroom.c:2672 +#: ../src/views/darkroom.c:2518 msgid "force pan/zoom/rotate with mouse" msgstr "Панорамирование, масштабирование и вращение мышью" #. Zoom shortcuts -#: ../src/views/darkroom.c:2684 +#: ../src/views/darkroom.c:2530 msgid "zoom close-up" msgstr "Масштаб 1:1" #. zoom in/out #. zoom in/out/min/max -#: ../src/views/darkroom.c:2687 ../src/views/lighttable.c:1283 +#: ../src/views/darkroom.c:2533 ../src/views/lighttable.c:1283 msgid "zoom in" msgstr "Приблизить" -#: ../src/views/darkroom.c:2688 ../src/views/lighttable.c:1285 +#: ../src/views/darkroom.c:2534 ../src/views/lighttable.c:1285 msgid "zoom out" msgstr "Отдалить" #. Shortcut to skip images -#: ../src/views/darkroom.c:2691 +#: ../src/views/darkroom.c:2537 msgid "image forward" msgstr "Следующий снимок" -#: ../src/views/darkroom.c:2692 +#: ../src/views/darkroom.c:2538 msgid "image back" msgstr "Предыдущий снимок" #. cycle overlay colors -#: ../src/views/darkroom.c:2695 +#: ../src/views/darkroom.c:2541 msgid "cycle overlay colors" msgstr "Цвет вспомогательных элементов" #. toggle visibility of drawn masks for current gui module -#: ../src/views/darkroom.c:2698 +#: ../src/views/darkroom.c:2544 msgid "show drawn masks" msgstr "Показать нарисованные маски" #. brush size +/- -#: ../src/views/darkroom.c:2701 +#: ../src/views/darkroom.c:2547 msgid "increase brush size" msgstr "Увеличить радиус кисти" -#: ../src/views/darkroom.c:2702 +#: ../src/views/darkroom.c:2548 msgid "decrease brush size" msgstr "Уменьшить радиус кисти" #. brush hardness +/- -#: ../src/views/darkroom.c:2705 +#: ../src/views/darkroom.c:2551 msgid "increase brush hardness" msgstr "Увеличить жёсткость кисти" -#: ../src/views/darkroom.c:2706 +#: ../src/views/darkroom.c:2552 msgid "decrease brush hardness" msgstr "Уменьшить жёсткость кисти" #. brush opacity +/- -#: ../src/views/darkroom.c:2709 +#: ../src/views/darkroom.c:2555 msgid "increase brush opacity" msgstr "Увеличить непрозрачность кисти" -#: ../src/views/darkroom.c:2710 +#: ../src/views/darkroom.c:2556 msgid "decrease brush opacity" msgstr "Уменьшить непрозрачность кисти" #. undo/redo -#: ../src/views/darkroom.c:2713 ../src/views/lighttable.c:1275 +#: ../src/views/darkroom.c:2559 ../src/views/lighttable.c:1275 #: ../src/views/map.c:2115 msgid "undo" msgstr "Отменить" -#: ../src/views/darkroom.c:2714 ../src/views/lighttable.c:1276 +#: ../src/views/darkroom.c:2560 ../src/views/lighttable.c:1276 #: ../src/views/map.c:2116 msgid "redo" msgstr "Вернуть" #. change the precision for adjusting sliders with keyboard shortcuts -#: ../src/views/darkroom.c:2717 +#: ../src/views/darkroom.c:2563 msgid "change keyboard shortcut slider precision" msgstr "Точность ползунков" -#: ../src/views/darkroom.c:3989 +#: ../src/views/darkroom.c:3565 msgid "keyboard shortcut slider precision: fine" msgstr "Точность ползунка: высокая" -#: ../src/views/darkroom.c:3991 +#: ../src/views/darkroom.c:3567 msgid "keyboard shortcut slider precision: normal" msgstr "Точность ползунка: обычная" -#: ../src/views/darkroom.c:3993 +#: ../src/views/darkroom.c:3569 msgid "keyboard shortcut slider precision: coarse" msgstr "Точность ползунка: грубая" -#: ../src/views/darkroom.c:4009 +#: ../src/views/darkroom.c:3584 msgid "switch to lighttable" msgstr "Переключить в режим обзора" -#: ../src/views/darkroom.c:4010 ../src/views/lighttable.c:882 +#: ../src/views/darkroom.c:3585 ../src/views/lighttable.c:882 msgid "zoom in the image" msgstr "Увеличить снимок" -#: ../src/views/darkroom.c:4011 +#: ../src/views/darkroom.c:3586 msgid "unbounded zoom in the image" msgstr "Увеличение без ограничений" -#: ../src/views/darkroom.c:4012 +#: ../src/views/darkroom.c:3587 msgid "zoom to 100% 200% and back" msgstr "Увеличить до 100% 200% и обратно" -#: ../src/views/darkroom.c:4013 ../src/views/lighttable.c:885 +#: ../src/views/darkroom.c:3588 ../src/views/lighttable.c:885 msgid "pan a zoomed image" msgstr "Панорамирование увеличенного изображения" -#: ../src/views/darkroom.c:4015 ../src/views/lighttable.c:927 +#: ../src/views/darkroom.c:3590 ../src/views/lighttable.c:927 msgid "[modules] expand module without closing others" msgstr "[modules] развернуть модуль без сворачивания других" -#: ../src/views/darkroom.c:4016 ../src/views/lighttable.c:928 +#: ../src/views/darkroom.c:3591 ../src/views/lighttable.c:928 msgid "[modules] expand module and close others" msgstr "[modules] развернуть модуль и закрыть остальные" -#: ../src/views/darkroom.c:4018 +#: ../src/views/darkroom.c:3593 msgid "[modules] rename module" msgstr "[modules] переименовать модуль" -#: ../src/views/darkroom.c:4020 +#: ../src/views/darkroom.c:3595 msgid "[modules] change module position in pipe" msgstr "[modules] изменить порядок модулей" @@ -24818,25 +25518,25 @@ msgid "print" msgstr "Печать" -#: ../src/views/slideshow.c:353 +#: ../src/views/slideshow.c:355 msgid "end of images" msgstr "Конец изображений" -#: ../src/views/slideshow.c:374 +#: ../src/views/slideshow.c:376 msgid "end of images. press any key to return to lighttable mode" msgstr "" "Снимки закончились. Нажмите любую клавишу для возврата в режим просмотра." -#: ../src/views/slideshow.c:504 +#: ../src/views/slideshow.c:509 msgid "waiting to start slideshow" msgstr "Ожидание начала слайдшоу" -#: ../src/views/slideshow.c:640 ../src/views/slideshow.c:661 -#: ../src/views/slideshow.c:669 +#: ../src/views/slideshow.c:678 ../src/views/slideshow.c:705 +#: ../src/views/slideshow.c:713 msgid "slideshow paused" msgstr "Режим слайдшоу приостановлен" -#: ../src/views/slideshow.c:648 ../src/views/slideshow.c:655 +#: ../src/views/slideshow.c:686 ../src/views/slideshow.c:696 #, c-format msgid "slideshow delay set to %d second" msgid_plural "slideshow delay set to %d seconds" @@ -24844,35 +25544,35 @@ msgstr[1] "Время показа изменено на %d секунды" msgstr[2] "Время показа изменено на %d секунд" -#: ../src/views/slideshow.c:684 +#: ../src/views/slideshow.c:728 msgid "start and stop" msgstr "Начать и остановить" -#: ../src/views/slideshow.c:685 +#: ../src/views/slideshow.c:730 msgid "exit slideshow" msgstr "Завершить слайдшоу" -#: ../src/views/slideshow.c:688 +#: ../src/views/slideshow.c:734 msgid "slow down" msgstr "Замедлять" -#: ../src/views/slideshow.c:691 +#: ../src/views/slideshow.c:738 msgid "speed up" msgstr "Ускорять" -#: ../src/views/slideshow.c:695 +#: ../src/views/slideshow.c:743 msgid "step forward" msgstr "Вперёд" -#: ../src/views/slideshow.c:696 +#: ../src/views/slideshow.c:745 msgid "step back" msgstr "Назад" -#: ../src/views/slideshow.c:702 +#: ../src/views/slideshow.c:753 msgid "go to next image" msgstr "Переход к следующему снимку" -#: ../src/views/slideshow.c:703 +#: ../src/views/slideshow.c:755 msgid "go to previous image" msgstr "Переход к предыдущему снимку" @@ -24885,54 +25585,295 @@ msgid "no camera with tethering support available for use..." msgstr "Камеры с поддержкой дистанционной съёмки не обнаружены" -#: ../src/views/view.c:1193 +#: ../src/views/view.c:1352 msgid "left click" msgstr "Левая кнопка" -#: ../src/views/view.c:1196 +#: ../src/views/view.c:1355 msgid "right click" msgstr "Правая кнопка" -#: ../src/views/view.c:1199 +#: ../src/views/view.c:1358 msgid "middle click" msgstr "Средняя кнопка" -#: ../src/views/view.c:1205 +#: ../src/views/view.c:1364 msgid "left double-click" msgstr "Левый двойной щелчок" -#: ../src/views/view.c:1208 +#: ../src/views/view.c:1367 msgid "right double-click" msgstr "Правый двойной щелчок" -#: ../src/views/view.c:1211 +#: ../src/views/view.c:1370 msgid "drag and drop" msgstr "Перетащить мышью" -#: ../src/views/view.c:1214 +#: ../src/views/view.c:1373 msgid "left click+drag" msgstr "Левый щелчок+Перетащить" -#: ../src/views/view.c:1217 +#: ../src/views/view.c:1376 msgid "right click+drag" msgstr "Правый щелчок+Перетащить" -#: ../src/views/view.c:1237 +#: ../src/views/view.c:1398 msgid "darktable - accels window" msgstr "darktable — комбинации клавиш" -#: ../src/views/view.c:1285 +#: ../src/views/view.c:1447 msgid "switch to a classic window which will stay open after key release" msgstr "" "Переключиться на классическое окно, которое останется открытым после " "отпускания клавиши" #. we add the mouse actions too -#: ../src/views/view.c:1344 +#: ../src/views/view.c:1514 msgid "mouse actions" msgstr "Действия мышью" #~ msgctxt "preferences" +#~ msgid "nothing" +#~ msgstr "Ничего" + +#~ msgctxt "preferences" +#~ msgid "memory size" +#~ msgstr "Объем памяти" + +#~ msgctxt "preferences" +#~ msgid "memory transfer" +#~ msgstr "Перенос данных" + +#~ msgctxt "preferences" +#~ msgid "memory size and transfer" +#~ msgstr "Объем памяти и перенос данных" + +#~ msgctxt "preferences" +#~ msgid "id" +#~ msgstr "По идентификатору" + +#~ msgctxt "preferences" +#~ msgid "folder" +#~ msgstr "По каталогу" + +#~ msgid "" +#~ "when having raw+JPEG images together in one directory it makes no sense " +#~ "to import both. with this flag one can ignore all JPEGs found." +#~ msgstr "" +#~ "Данная опция игнорирует файлы JPEG при импорте. Включите эту опцию, если " +#~ "в каталогах хранятся одновременно файлы Raw и JPEG." + +#~ msgid "tune OpenCL performance" +#~ msgstr "Настройка производительности OpenCL" + +#~ msgid "" +#~ "allows runtime tuning of OpenCL devices:\n" +#~ " - 'memory size': uses a fixed headroom (400MB as default),\n" +#~ " - 'memory transfer': tries a faster memory access mode (pinned memory) " +#~ "used for tiling." +#~ msgstr "" +#~ "Позволяет настраивать устройства OpenCL во время работы:.\n" +#~ "- объем памяти использует фиксированный объем оперативной памяти (400 мб " +#~ "по умолчанию);\n" +#~ "- перенос данных подбирает более быстрый режим доступа к памяти, " +#~ "используемый для сегментирования." + +#~ msgid "write sidecar file for each image" +#~ msgstr "Сохранять историю в файл XMP" + +#~ msgid "" +#~ "if an instance of the module has focus, apply shortcut to that instance\n" +#~ "note: blending shortcuts always apply to the focused instance" +#~ msgstr "" +#~ "Если одна из копий модуля в фокусе, примените ярлык к этому экземпляру\n" +#~ "Примечание: ярлыки всегда применяются к экземпляру в фокусе." + +#~ msgid "distortion fine-tune" +#~ msgstr "Тонкая настройка искажений" + +#~ msgid "vignetting fine-tune" +#~ msgstr "Тонкая настройка виньетирования" + +#~ msgid "TCA red fine-tune" +#~ msgstr "ХА, красный, точная настройка" + +#~ msgid "TCA blue fine-tune" +#~ msgstr "ХА, фиолетовый, точная настройка" + +#~ msgid "tiff" +#~ msgstr "TIFF" + +#~ msgid "png" +#~ msgstr "png" + +#~ msgid "j2k" +#~ msgstr "J2K" + +#~ msgid "jpeg" +#~ msgstr "JPEG 2000" + +#~ msgid "exr" +#~ msgstr "exr" + +#~ msgid "rgbe" +#~ msgstr "RGBE" + +#~ msgid "pfm" +#~ msgstr "PFM" + +#~ msgid "netpnm" +#~ msgstr "Netpnm" + +#~ msgid "avif" +#~ msgstr "AVIF" + +#~ msgid "heif" +#~ msgstr "Heif" + +#~ msgid "libraw" +#~ msgstr "Libraw" + +#~ msgid "webp" +#~ msgstr "webp" + +#~ msgid "jpeg xl" +#~ msgstr "JPEG XL" + +#~ msgid "" +#~ "due to a slow GPU hardware acceleration using OpenCL has been deactivated" +#~ msgstr "" +#~ "Из-за медленного аппаратного ускорения графического процессора через " +#~ "OpenCL деактивировано" + +#~ msgid "" +#~ "multiple GPUs detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "Обнаружено несколько графических процессоров - профиль планирования " +#~ "OpenCL был установлен соответствующим образом" + +#~ msgid "" +#~ "very fast GPU detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "Обнаружен очень быстрый графический процессор - профиль планирования " +#~ "OpenCL был установлен соответствующим образом" + +#~ msgid "" +#~ "darktable discovered problems with your OpenCL setup; disabling OpenCL " +#~ "for this session!" +#~ msgstr "Проблема совместимости OpenCL! OpenCL будет отключен в этом сеансе." + +#~ msgid "no-op" +#~ msgstr "Нет операции" + +#~ msgid "RGB colors" +#~ msgstr "Цвета RGB" + +#~ msgid "compression type" +#~ msgstr "Тип сжатия" + +#~ msgid "jp2" +#~ msgstr "JP2" + +#~ msgid "b&w image" +#~ msgstr "Тип изображения" + +#~ msgid "write RGB colors" +#~ msgstr "Цветное" + +#~ msgid "write grayscale" +#~ msgstr "В градациях серого" + +#~ msgid "spot color mapping" +#~ msgstr "Сопоставление плашечных цветов" + +#~ msgid "spot mode" +#~ msgstr "Точечный режим" + +#~ msgid "" +#~ "tone equalizer needs to be after distortion modules in the pipeline – " +#~ "disabled" +#~ msgstr "" +#~ "Эквалайзер тонов: модуль отключен! Модуль должен находиться после " +#~ "модулей, преобразующих геометрию изображения." + +#~ msgid "reference to which the marker should be scaled to" +#~ msgstr "Референс маркера масштаба" + +#~ msgid "length of the marker which is used as scaling reference" +#~ msgstr "" +#~ "Длина маркера, который используется в качестве референса для " +#~ "масштабирования" + +#~ msgid "save" +#~ msgstr "Сохранить" + +#~ msgid "add" +#~ msgstr "Добавить" + +#~ msgid "only" +#~ msgstr "Только" + +#~ msgid "selected image[s]" +#~ msgstr "Действия" + +#~ msgid "hardness (relative)" +#~ msgstr "Растушёвка (относительная)" + +#~ msgid "hardness (absolute)" +#~ msgstr "Растушёвка (абсолютная)" + +#~ msgid "opacity (relative)" +#~ msgstr "Непрозрачность (относительная)" + +#~ msgid "opacity (absolute)" +#~ msgstr "Непрозрачность (абсолютная)" + +#~ msgid "brush size (relative)" +#~ msgstr "Размер кисти (относительный)" + +#~ msgid "low" +#~ msgstr "Слаб." + +#~ msgid "medium" +#~ msgstr "Средн." + +#~ msgid "high" +#~ msgstr "Сильн." + +#~ msgid "" +#~ "pen pressure control for brush masks\n" +#~ "'off': pressure reading ignored,\n" +#~ "'hardness'/'opacity'/'brush size': pressure reading controls specified " +#~ "attribute,\n" +#~ "'absolute'/'relative': pressure reading is taken directly as attribute " +#~ "value or multiplied with pre-defined setting." +#~ msgstr "" +#~ "Контроль силы нажатия\n" +#~ "Выключить — сила нажатия пером планшета игнорируется.\n" +#~ "Растушёвка, непрозрачность, размер кисти — сила нажатия определяет " +#~ "указанные атрибуты.\n" +#~ "Абсолютная/относительная — сила нажатия берётся в качестве значения " +#~ "атрибута напрямую или умножается на заранее заданный коэффициент." + +#~ msgid "" +#~ "smoothing of brush strokes\n" +#~ "stronger smoothing leads to fewer nodes and easier editing but with lower " +#~ "control of accuracy." +#~ msgstr "" +#~ "Сглаживание движений пера\n" +#~ "Чем сильнее сглаживание, тем меньше узлов на создаваемых контурах, проще " +#~ "редактирование, но меньше точность." + +#~ msgid "<leave unchanged>" +#~ msgstr "<не менять>" + +#, c-format +#~ msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" +#~ msgstr "%.1f мм (%.1f мм FF эквив., обрезка %.1f)" + +#~ msgctxt "preferences" #~ msgid "always bilinear (fast)" #~ msgstr "Билинейный (быстр.)" @@ -24941,10 +25882,6 @@ #~ msgstr "Настройки экспорта (медл.)" #~ msgctxt "preferences" -#~ msgid "rgb parade" -#~ msgstr "RGB Parade" - -#~ msgctxt "preferences" #~ msgid "modern" #~ msgstr "Новые" @@ -25088,9 +26025,6 @@ #~ msgid "3:2" #~ msgstr "3×2" -#~ msgid "set the custom aspect ratio" -#~ msgstr "Установить соотношение сторон (ш:в)" - #~ msgid "raw CA correction supports only standard RGB Bayer filter arrays" #~ msgstr "" #~ "Необработанная коррекция CA поддерживает только стандартные массивы " @@ -25258,13 +26192,13 @@ #~ msgid "[rcd_demosaic] too small area" #~ msgstr "Слишком маленькая площадь" -#~ msgid "compress shadows/highlights (eigf): strong" +#~ msgid "compress shadows/highlights (eigf): strong" #~ msgstr "Сжатие теней и светов (eigf): сильное" #~ msgid "compress shadows/highlights (eigf): medium" #~ msgstr "Сжатие теней и светов (eigf): слабое" -#~ msgid "compress shadows/highlights (eigf): soft" +#~ msgid "compress shadows/highlights (eigf): soft" #~ msgstr "Сжатие теней и светов (eigf): слабое" #~ msgid "" @@ -25492,9 +26426,6 @@ #~ msgid "lift chroma" #~ msgstr "Поднять цветность" -#~ msgid "lift hue" -#~ msgstr "Поднять оттенок" - #~ msgid "power luminance" #~ msgstr "Мощность яркость" @@ -25528,9 +26459,6 @@ #~ msgid "chroma highlights" #~ msgstr "Цветовые пересветы" -#~ msgid "chroma global" -#~ msgstr "Цветность глобальная" - #~ msgid "chroma mid-tones" #~ msgstr "средние тона цветности" @@ -25666,9 +26594,6 @@ #~ msgid "preview is only possible for zoom lower than 200%%" #~ msgstr "Предпросмотр доступен только при увеличении меньше 200%..." -#~ msgid "actual selection" -#~ msgstr "Актуальное выделение" - #~ msgid "v3.0" #~ msgstr "v3.0" @@ -26405,9 +27330,6 @@ #~ msgid "%.0f ISO" #~ msgstr "%.0f ISO" -#~ msgid "white balance settings" -#~ msgstr "Настройки баланса белого" - #, c-format #~ msgid "%.0f mired" #~ msgstr "%.0f" @@ -26790,10 +27712,6 @@ #~ msgid "set view to waveform" #~ msgstr "Волновой вид" -#~ msgctxt "accel" -#~ msgid "replace metadata" -#~ msgstr "Заменить метаданные" - #~ msgid "open folder" #~ msgstr "Открыть каталог" @@ -26966,9 +27884,6 @@ #~ "Эта опция отключает снятие рейтинга снимка по двухкратному выставлению " #~ "одной звезды" -#~ msgid "color manage cached thumbnails" -#~ msgstr "Точное воспроизведение цветов миниатюр" - #~ msgid "" #~ "if enabled, cached thumbnails will be color managed so that lighttable " #~ "and filmstrip can show correct colors. otherwise the results may look " @@ -27301,9 +28216,6 @@ #~ "Вставить часть истории изменений\n" #~ "для выбранных снимков" -#~ msgid "export selected" -#~ msgstr "Экспорт снимков" - #~ msgid "edit metadata exportation details" #~ msgstr "Настройки экспорта метаданных" @@ -28534,9 +29446,6 @@ #~ msgid "scan for devices" #~ msgstr "Поиск устройств" -#~ msgid "no supported devices found" -#~ msgstr "Камеры не обнаружены" - #~ msgid "scan for newly attached devices" #~ msgstr "Поиск подключенных камеры" @@ -29468,9 +30377,6 @@ #~ "копировании снимков с камеры. Если вы не знаете, как с этим работать, " #~ "лучше ничего не менять." -#~ msgid "storage directory" -#~ msgstr "Каталог хранения" - #~ msgid "directory structure" #~ msgstr "Именование каталога" @@ -29844,9 +30750,6 @@ #~ msgid "blend hue (0 is same as clipping)" #~ msgstr "Смешивание тона (0 аналогичен вырезанию)" -#~ msgid "blend L" -#~ msgstr "Смешивание L" - #~ msgid "blend C" #~ msgstr "Смешивание C" @@ -30549,9 +31452,6 @@ #~ msgid "median filter before demosaicing" #~ msgstr "Медианный фильтр перед дебайеризацией" -#~ msgid "green equilibration" -#~ msgstr "Выравнивание зелёного" - #~ msgid "" #~ "work around unequal green channels in some mid-range\n" #~ "cameras, e.g. canon eos 400d" @@ -30609,9 +31509,6 @@ #~ msgid "sql query to select images for current view" #~ msgstr "Запрос SQL для выбора просматриваемых изображений" -#~ msgid "write dt files" -#~ msgstr "Записать файлы dt" - #~ msgctxt "color label" #~ msgid "red" #~ msgstr "Красная" diff -Nru darktable-4.4.2/po/sl.po darktable-4.6.1/po/sl.po --- darktable-4.4.2/po/sl.po 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/po/sl.po 2024-02-16 17:31:09.000000000 +0000 @@ -1,29940 +1,31120 @@ -# # Slovenian translation for darktable -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# -# opombe ob prevodu DarkTable ver 1 in 2 ter 3 -# prvi osnutek slovenskega prevoda -# nisem prepričan o najboljših terminih za naslednje angleške pojme -# -# Seznam prevodov terminov: -# acutance = ostrina roba ? https://en.wikipedia.org/wiki/Acutance -# aperture = zaslonka -# artifacts = artefakti -# aspect ratio = razmerje stranic -# blending = mešanje -# blur = zameglitev -# bracketing = kadriranje (uporabljeno v Nikon D610 Navodilo za uporabo) -# https://downloadcenter.nikonimglib.com/sl/products/14/D610.html -# briliance = briljanca lastnost diamanta https://en.wikipedia.org/wiki/Diamond_(gemstone)#Light_performance -# buffer = medpomnilnik -# burn = dodatno osvetljevati -# cache = vmesni pomnilnik -# cdl = color decision list ASC CDL https://en.wikipedia.org/wiki/ASC_CDL -# chroma = kroma -# chrominance = barvnost ? -# clipping = obrez -# clut = color lookup table = tabela iskanja barv -# cntrl key = krmilka -# colorfulness = polnost barv ? -# color dodge = barvna slabitev -# color grading = stopnjevanje barv https://en.wikipedia.org/wiki/Color_grading -# crop factor = faktor obrezave -# cusp = stikališče koncev krivulj -# darkroom mode = način temnice -# deflicking = odstranjevanje utripanja https://en.wikipedia.org/wiki/Deflicking -# defringe = odstranjevanje barvnih napak robov -# http://smallbusiness.chron.com/defringe-photoshop-47337.html -# https://www.youtube.com/watch?v=jBoUxF_NbGc -# demosaicing = odstranjevanje mozaičnosti -# desaturation = zmanjšanje nasičenosti -# dodge = zastirati svetlobo -# dynamic range = dinamični razpon -# eigf (exposure-independent guided filter) = od osvetlitve neodvisni vodeni filter -# equisolid angle = enakomerni kot xxx https://en.wikipedia.org/wiki/Fisheye_lens -# exposure = osvetlitev, ekspozicija -# feathering = mehčanje robov s peresom -# focal range = goriščni razpon (območje ostrine) -# fringe = barvna napaka roba -# fuze = varovalka -# gamut = barvni razpon -# highlight = bleščava -# hinter = glajenje robov črk https://en.wikipedia.org/wiki/Font_hinting -# hue = odtenek -# keystone effect = popravek perspektive -# https://en.wikipedia.org/wiki/Keystone_effect -# lightness = HSV svetlost -# lighttable = svetlobna podlaga -# luma = luma kaj je luminiscenca? -# luminance = svetlost -# LUT - lookup table = tabela iskanja, iskalna tabela -# lut = spajkanje, spoj -# Orton effect = Ortonov učinek -# https://en.wikipedia.org/wiki/Orton_(photography) -# https://capturelandscapes.com/orton-effect-explained/ -# magenta = magenta -# patch = krpa -# posemeter = svetlomer -# scroll = pomik -# shear = ostriči -# shift key = dvigalka -# softproof = preizkusni odtis -# tethering = oddaljeno upravljanje s kamero -# tiling = prekrivanje -# vibrance = vibrancy = živahnost https://digital-photography-school.com/vibrance-vs-saturation-in-plain-english/ -# warp = zvitek, izkrivljenje, popačenje, osnova (pri tkanju) -# -# ne pozabi na Style Guide Slovenian (sl) https://mozilla-l10n.github.io/styleguides/sl/ -# in Barvni geslovnik revije Grafičar http://www.graficar.si/index.php/geslovniki/18-barvni-geslovnik -# -# useful suggestions: Igor Lapajne <ilapajne.zrc-sazu.si> -# Matjaž Jeran <matjaz.jeran@amis.net>, 2015-2020, 2021, 2022, 2023. -msgid "" -msgstr "" -"Project-Id-Version: darktable 4.4\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-31 13:24+0200\n" -"PO-Revision-Date: 2023-06-01 23:03+0200\n" -"Last-Translator: Matjaž Jeran <matjaz.jeran@amis.net>\n" -"Language-Team: Slovenian <lugos-slo@lugos.si>\n" -"Language: sl\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " -"n%100==4 ? 2 : 3);\n" -"X-Generator: Poedit 3.3.1\n" - -#: ../build/bin/conf_gen.h:172 ../build/bin/preferences_gen.h:7632 -msgctxt "preferences" -msgid "first instance" -msgstr "prvi pojavek" - -#: ../build/bin/conf_gen.h:173 ../build/bin/preferences_gen.h:7637 -#: ../build/bin/preferences_gen.h:7656 -msgctxt "preferences" -msgid "last instance" -msgstr "zadnji pojavek" - -#: ../build/bin/conf_gen.h:240 ../build/bin/conf_gen.h:346 -#: ../build/bin/conf_gen.h:356 ../build/bin/conf_gen.h:1186 -#: ../build/bin/conf_gen.h:1202 ../build/bin/preferences_gen.h:4137 -#: ../build/bin/preferences_gen.h:4156 ../build/bin/preferences_gen.h:4232 -#: ../build/bin/preferences_gen.h:6706 ../build/bin/preferences_gen.h:6834 -#: ../build/bin/preferences_gen.h:6899 -msgctxt "preferences" -msgid "never" -msgstr "nikoli" - -#: ../build/bin/conf_gen.h:241 ../build/bin/preferences_gen.h:6711 -msgctxt "preferences" -msgid "once a month" -msgstr "enkrat na mesec" - -#: ../build/bin/conf_gen.h:242 ../build/bin/preferences_gen.h:6716 -#: ../build/bin/preferences_gen.h:6745 -msgctxt "preferences" -msgid "once a week" -msgstr "enkrat na teden" - -#: ../build/bin/conf_gen.h:243 ../build/bin/preferences_gen.h:6721 -msgctxt "preferences" -msgid "once a day" -msgstr "enkrat na dan" - -#: ../build/bin/conf_gen.h:244 ../build/bin/preferences_gen.h:6726 -msgctxt "preferences" -msgid "on close" -msgstr "ob zaprtju" - -#: ../build/bin/conf_gen.h:280 ../build/bin/conf_gen.h:1179 -#: ../build/bin/conf_gen.h:1195 ../build/bin/preferences_gen.h:4102 -#: ../build/bin/preferences_gen.h:4197 ../build/bin/preferences_gen.h:5748 -msgctxt "preferences" -msgid "small" -msgstr "majhno" - -#: ../build/bin/conf_gen.h:281 ../build/bin/conf_gen.h:393 -#: ../build/bin/preferences_gen.h:5753 ../build/bin/preferences_gen.h:5782 -#: ../build/bin/preferences_gen.h:5969 ../build/bin/preferences_gen.h:5998 -msgctxt "preferences" -msgid "default" -msgstr "privzeto" - -#: ../build/bin/conf_gen.h:282 ../build/bin/conf_gen.h:2814 -#: ../build/bin/preferences_gen.h:5758 -msgctxt "preferences" -msgid "large" -msgstr "velik" - -#: ../build/bin/conf_gen.h:283 ../build/bin/preferences_gen.h:5763 -msgctxt "preferences" -msgid "unrestricted" -msgstr "neomejen" - -#: ../build/bin/conf_gen.h:347 ../build/bin/preferences_gen.h:6839 -msgctxt "preferences" -msgid "after edit" -msgstr "po urejanju" - -#: ../build/bin/conf_gen.h:348 ../build/bin/preferences_gen.h:6844 -#: ../build/bin/preferences_gen.h:6863 -msgctxt "preferences" -msgid "on import" -msgstr "ob uvozu" - -#: ../build/bin/conf_gen.h:357 ../build/bin/conf_gen.h:1178 -#: ../build/bin/conf_gen.h:1194 ../build/bin/conf_gen.h:3214 -#: ../build/bin/preferences_gen.h:4097 ../build/bin/preferences_gen.h:4192 -#: ../build/bin/preferences_gen.h:5112 ../build/bin/preferences_gen.h:5166 -#: ../build/bin/preferences_gen.h:6904 -msgctxt "preferences" -msgid "always" -msgstr "vedno" - -#: ../build/bin/conf_gen.h:358 ../build/bin/preferences_gen.h:6909 -#: ../build/bin/preferences_gen.h:6928 -msgctxt "preferences" -msgid "only large entries" -msgstr "samo veliki vnosi" - -#: ../build/bin/conf_gen.h:378 ../build/bin/preferences_gen.h:8069 -msgctxt "preferences" -msgid "sensitive" -msgstr "občutljivo" - -#: ../build/bin/conf_gen.h:379 ../build/bin/preferences_gen.h:8074 -#: ../build/bin/preferences_gen.h:8093 -msgctxt "preferences" -msgid "insensitive" -msgstr "neobčutljivo" - -#: ../build/bin/conf_gen.h:394 ../build/bin/preferences_gen.h:5974 -msgctxt "preferences" -msgid "multiple GPUs" -msgstr "več grafičnih procesorjev" - -#: ../build/bin/conf_gen.h:395 ../build/bin/preferences_gen.h:5979 -msgctxt "preferences" -msgid "very fast GPU" -msgstr "zelo hiter grafični procesor" - -#: ../build/bin/conf_gen.h:403 ../build/bin/preferences_gen.h:6040 -#: ../build/bin/preferences_gen.h:6074 -msgctxt "preferences" -msgid "nothing" -msgstr "nič" - -#: ../build/bin/conf_gen.h:404 ../build/bin/preferences_gen.h:6045 -msgctxt "preferences" -msgid "memory size" -msgstr "velikost pomnilnika" - -#: ../build/bin/conf_gen.h:405 ../build/bin/preferences_gen.h:6050 -msgctxt "preferences" -msgid "memory transfer" -msgstr "prenos pomnilnika" - -#: ../build/bin/conf_gen.h:406 ../build/bin/preferences_gen.h:6055 -msgctxt "preferences" -msgid "memory size and transfer" -msgstr "velikost pomnilnika in prenos" - -#: ../build/bin/conf_gen.h:706 ../build/bin/preferences_gen.h:8257 -#: ../build/bin/preferences_gen.h:8281 -msgctxt "preferences" -msgid "id" -msgstr "id" - -#: ../build/bin/conf_gen.h:707 ../build/bin/preferences_gen.h:8262 -msgctxt "preferences" -msgid "folder" -msgstr "mapa" - -#: ../build/bin/conf_gen.h:721 -msgctxt "preferences" -msgid "RGB" -msgstr "RGB" - -#: ../build/bin/conf_gen.h:722 -msgctxt "preferences" -msgid "Lab" -msgstr "Lab" - -#: ../build/bin/conf_gen.h:723 -msgctxt "preferences" -msgid "LCh" -msgstr "LCh" - -#: ../build/bin/conf_gen.h:724 -msgctxt "preferences" -msgid "HSL" -msgstr "HSL" - -#: ../build/bin/conf_gen.h:725 -msgctxt "preferences" -msgid "Hex" -msgstr "Hex" - -#: ../build/bin/conf_gen.h:726 ../build/bin/conf_gen.h:1830 -#: ../build/bin/conf_gen.h:2488 ../build/bin/conf_gen.h:2790 -#: ../build/bin/conf_gen.h:3044 ../build/bin/preferences_gen.h:5577 -#: ../build/bin/preferences_gen.h:6561 -msgctxt "preferences" -msgid "none" -msgstr "nič" - -#: ../build/bin/conf_gen.h:734 -msgctxt "preferences" -msgid "mean" -msgstr "povprečje" - -#: ../build/bin/conf_gen.h:735 -msgctxt "preferences" -msgid "min" -msgstr "min" - -#: ../build/bin/conf_gen.h:736 -msgctxt "preferences" -msgid "max" -msgstr "max" - -#: ../build/bin/conf_gen.h:924 -msgid "select only new pictures" -msgstr "izberi samo nove slike" - -#: ../build/bin/conf_gen.h:925 -msgid "only select images that have not already been imported" -msgstr "izberi samo slike, ki še niso bile uvožene" - -#: ../build/bin/conf_gen.h:930 -msgid "ignore JPEG images" -msgstr "prezri slike JPEG" - -#: ../build/bin/conf_gen.h:931 -msgid "" -"when having raw+JPEG images together in one directory it makes no sense to " -"import both. with this flag one can ignore all JPEGs found." -msgstr "" -"kadar so surove in JPEG slike skupaj v eni mapi, nima smisla uvažati obeh. s " -"tem stikalom preskoči uvoz slik v JPEG." - -#: ../build/bin/conf_gen.h:936 -msgid "apply metadata" -msgstr "uveljavi metapodatke" - -#: ../build/bin/conf_gen.h:937 -msgid "apply some metadata to all newly imported images." -msgstr "uporabi metapodatke za vse na novo uvožene slike." - -#: ../build/bin/conf_gen.h:942 -msgid "recursive directory" -msgstr "rekurzivni imenik" - -#: ../build/bin/conf_gen.h:943 -msgid "recursive directory traversal when importing filmrolls" -msgstr "rekurzivni sprehod po mapah, kadar uvažate zvitke filmov" - -#: ../build/bin/conf_gen.h:948 -msgid "creator to be applied when importing" -msgstr "ustvarjalec slik, ki naj bo označen po uvažanju" - -#: ../build/bin/conf_gen.h:954 -msgid "publisher to be applied when importing" -msgstr "izdajatelj slik, ki naj bo označen po uvažanju" - -#: ../build/bin/conf_gen.h:960 -msgid "rights to be applied when importing" -msgstr "avtorske pravice na slikah, ki naj bodo označene po uvažanju" - -#: ../build/bin/conf_gen.h:966 -msgid "comma separated tags to be applied when importing" -msgstr "oznake ločene s presledki na slikah, ki naj bodo označene po uvažanju" - -#: ../build/bin/conf_gen.h:972 -msgid "import tags from XMP" -msgstr "uvozi oznake iz XMP" - -#: ../build/bin/conf_gen.h:998 -msgid "initial rating" -msgstr "začetna ocena" - -#: ../build/bin/conf_gen.h:999 -msgid "initial star rating for all images when importing a filmroll" -msgstr "začetna ocena slik v zvezdicah po uvozu zvitka filma" - -#: ../build/bin/conf_gen.h:1004 -msgid "ignore EXIF rating" -msgstr "prezri oceno EXIF-a" - -#: ../build/bin/conf_gen.h:1005 -msgid "" -"ignore EXIF rating. if not set and EXIF rating is found, it overrides " -"'initial rating'" -msgstr "" -"prezri oceno EXIF-a. če ni postavljena in je ocena EXIF-a najdena naj " -"prevaga nad 'začetno oceno'" - -#: ../build/bin/conf_gen.h:1010 -msgid "import job" -msgstr "uvozi posel" - -#: ../build/bin/conf_gen.h:1011 -msgid "name of the import job" -msgstr "ime posla uvoza" - -#: ../build/bin/conf_gen.h:1016 -msgid "override today's date" -msgstr "spremeni današnji datum" - -#: ../build/bin/conf_gen.h:1017 -msgid "" -"type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override " -"the current date/time used when expanding variables:\n" -"$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS), $(MSEC).\n" -"let the field empty otherwise" -msgstr "" -"vnesite veljaven datum v obliki (YYYY-MM-DD[hh:mm:ss], če želite spremeniti " -"trenutni datum in čas, uporabljen pri razširjanju spremenljivk:\n" -"$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS).\n" -"sicer pustite polje prazno" - -#: ../build/bin/conf_gen.h:1022 -msgid "keep this window open" -msgstr "ohranjaj to okno odprto" - -#: ../build/bin/conf_gen.h:1023 -msgid "keep this window open to run several imports" -msgstr "ohranjaj to okno odprto za zagon več uvozov" - -#: ../build/bin/conf_gen.h:1180 ../build/bin/conf_gen.h:1196 -#: ../build/bin/preferences_gen.h:4107 ../build/bin/preferences_gen.h:4202 -msgctxt "preferences" -msgid "VGA" -msgstr "VGA" - -#: ../build/bin/conf_gen.h:1181 ../build/bin/conf_gen.h:1197 -#: ../build/bin/preferences_gen.h:4112 ../build/bin/preferences_gen.h:4207 -#: ../build/bin/preferences_gen.h:4251 -msgctxt "preferences" -msgid "720p" -msgstr "720p" - -#: ../build/bin/conf_gen.h:1182 ../build/bin/conf_gen.h:1198 -#: ../build/bin/preferences_gen.h:4117 ../build/bin/preferences_gen.h:4212 -msgctxt "preferences" -msgid "1080p" -msgstr "1080p" - -#: ../build/bin/conf_gen.h:1183 ../build/bin/conf_gen.h:1199 -#: ../build/bin/preferences_gen.h:4122 ../build/bin/preferences_gen.h:4217 -msgctxt "preferences" -msgid "WQXGA" -msgstr "WQXGA" - -#: ../build/bin/conf_gen.h:1184 ../build/bin/conf_gen.h:1200 -#: ../build/bin/preferences_gen.h:4127 ../build/bin/preferences_gen.h:4222 -msgctxt "preferences" -msgid "4K" -msgstr "4K" - -#: ../build/bin/conf_gen.h:1185 ../build/bin/conf_gen.h:1201 -#: ../build/bin/preferences_gen.h:4132 ../build/bin/preferences_gen.h:4227 -msgctxt "preferences" -msgid "5K" -msgstr "5K" - -#: ../build/bin/conf_gen.h:1228 -msgctxt "preferences" -msgid "off" -msgstr "izključeno" - -#: ../build/bin/conf_gen.h:1229 -msgctxt "preferences" -msgid "hardness (relative)" -msgstr "trdota (relativna)" - -#: ../build/bin/conf_gen.h:1230 -msgctxt "preferences" -msgid "hardness (absolute)" -msgstr "trdota (absolutna)" - -#: ../build/bin/conf_gen.h:1231 -msgctxt "preferences" -msgid "opacity (relative)" -msgstr "neprosojnost (relativna)" - -#: ../build/bin/conf_gen.h:1232 -msgctxt "preferences" -msgid "opacity (absolute)" -msgstr "neprosojnost (absolutna)" - -#: ../build/bin/conf_gen.h:1233 -msgctxt "preferences" -msgid "brush size (relative)" -msgstr "velikost čopiča (relativna)" - -#: ../build/bin/conf_gen.h:1241 -msgctxt "preferences" -msgid "low" -msgstr "nizka" - -#: ../build/bin/conf_gen.h:1242 -msgctxt "preferences" -msgid "medium" -msgstr "srednja" - -#: ../build/bin/conf_gen.h:1243 -msgctxt "preferences" -msgid "high" -msgstr "visoka" - -#: ../build/bin/conf_gen.h:1263 ../build/bin/preferences_gen.h:4836 -#: ../build/bin/preferences_gen.h:4860 -msgctxt "preferences" -msgid "false color" -msgstr "napačna barva" - -#: ../build/bin/conf_gen.h:1264 ../build/bin/preferences_gen.h:4841 -msgctxt "preferences" -msgid "grayscale" -msgstr "lestvica sivin" - -#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4567 -msgctxt "preferences" -msgid "top left" -msgstr "zgoraj levo" - -#: ../build/bin/conf_gen.h:1279 ../build/bin/preferences_gen.h:4572 -msgctxt "preferences" -msgid "top right" -msgstr "zgoraj desno" - -#: ../build/bin/conf_gen.h:1280 ../build/bin/preferences_gen.h:4577 -msgctxt "preferences" -msgid "top center" -msgstr "zgoraj v sredini" - -#: ../build/bin/conf_gen.h:1281 ../build/bin/preferences_gen.h:4582 -#: ../build/bin/preferences_gen.h:4606 -msgctxt "preferences" -msgid "bottom" -msgstr "dno" - -#: ../build/bin/conf_gen.h:1282 ../build/bin/preferences_gen.h:4587 -msgctxt "preferences" -msgid "hidden" -msgstr "skrito" - -#: ../build/bin/conf_gen.h:1792 -msgid "show OSD" -msgstr "prikaži OSD" - -#: ../build/bin/conf_gen.h:1793 -msgid "toggle the visibility of the map overlays" -msgstr "preklopi vidnost prekrivnih plasti zemljevidov" - -#: ../build/bin/conf_gen.h:1798 ../src/libs/map_settings.c:146 -msgid "filtered images" -msgstr "filtrirane slike" - -#: ../build/bin/conf_gen.h:1799 -msgid "when set limit the images drawn to the current filmstrip" -msgstr "kadar nastavim omejitve slike, narisane na trenutni filmski trak" - -#: ../build/bin/conf_gen.h:1806 -msgid "max images" -msgstr "maksimalne slike" - -#: ../build/bin/conf_gen.h:1807 -msgid "the maximum number of image thumbnails drawn on the map" -msgstr "največje število slik narisanih na zemljevidu" - -#: ../build/bin/conf_gen.h:1814 -msgid "group size factor" -msgstr "faktor velikosti skupine" - -#: ../build/bin/conf_gen.h:1815 -msgid "" -"increase or decrease the spatial size of images groups on the map. can " -"influence the calculation time" -msgstr "" -"povečaj ali zmanjšaj prostorsko velikost skupin slik na zemljevidu. lahko " -"vpliva na čas izračuna" - -#: ../build/bin/conf_gen.h:1822 -msgid "min images per group" -msgstr "min število slik na skupino" - -#: ../build/bin/conf_gen.h:1823 -msgid "" -"the minimum number of images to set up an images group. can influence the " -"calculation time." -msgstr "" -"najmanjše število slik za nastavitev skupine slik. lahko vpliva na čas " -"izračuna." - -#: ../build/bin/conf_gen.h:1828 -msgctxt "preferences" -msgid "thumbnail" -msgstr "predogledna sličica" - -#: ../build/bin/conf_gen.h:1829 -msgctxt "preferences" -msgid "count" -msgstr "število" - -#: ../build/bin/conf_gen.h:1832 ../src/libs/map_settings.c:159 -msgid "thumbnail display" -msgstr "prikaz predoglednih sličic" - -#: ../build/bin/conf_gen.h:1833 -msgid "" -"three options are available: images thumbnails, only the count of images of " -"the group or nothing" -msgstr "" -"na voljo so tri možnosti: predogledne sličice, samo število slik v skupini " -"ali ničesar" - -#: ../build/bin/conf_gen.h:1844 -msgid "max polygon points" -msgstr "maksimalno število točk poligona" - -#: ../build/bin/conf_gen.h:1845 -msgid "" -"limit the number of points imported with polygon in find location module" -msgstr "omeji število točk, uvoženih s poligonom v modulu za iskanje lokacije" - -#: ../build/bin/conf_gen.h:2135 ../build/bin/preferences_gen.h:4722 -#: ../build/bin/preferences_gen.h:4756 -msgctxt "preferences" -msgid "original" -msgstr "izvirnik" - -#: ../build/bin/conf_gen.h:2136 ../build/bin/preferences_gen.h:4727 -msgctxt "preferences" -msgid "to 1/2" -msgstr "na 1/2" - -#: ../build/bin/conf_gen.h:2137 ../build/bin/preferences_gen.h:4732 -msgctxt "preferences" -msgid "to 1/3" -msgstr "na 1/3" - -#: ../build/bin/conf_gen.h:2138 ../build/bin/preferences_gen.h:4737 -msgctxt "preferences" -msgid "to 1/4" -msgstr "na 1/4" - -#: ../build/bin/conf_gen.h:2152 ../build/bin/conf_gen.h:2162 -#: ../build/bin/preferences_gen.h:5384 ../build/bin/preferences_gen.h:5449 -msgctxt "preferences" -msgid "bilinear" -msgstr "bilinearni" - -#: ../build/bin/conf_gen.h:2153 ../build/bin/conf_gen.h:2163 -#: ../build/bin/preferences_gen.h:5389 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5454 -msgctxt "preferences" -msgid "bicubic" -msgstr "bikubični" - -#: ../build/bin/conf_gen.h:2154 ../build/bin/conf_gen.h:2164 -#: ../build/bin/preferences_gen.h:5394 ../build/bin/preferences_gen.h:5459 -msgctxt "preferences" -msgid "lanczos2" -msgstr "lanczos2" - -#: ../build/bin/conf_gen.h:2165 ../build/bin/preferences_gen.h:5464 -#: ../build/bin/preferences_gen.h:5483 -msgctxt "preferences" -msgid "lanczos3" -msgstr "lanczos3" - -#: ../build/bin/conf_gen.h:2487 ../build/bin/conf_gen.h:3217 -#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:6556 -#: ../build/bin/preferences_gen.h:6592 -msgctxt "preferences" -msgid "auto" -msgstr "avto" - -#: ../build/bin/conf_gen.h:2489 ../build/bin/preferences_gen.h:6566 -msgctxt "preferences" -msgid "libsecret" -msgstr "libsecret" - -#: ../build/bin/conf_gen.h:2490 ../build/bin/preferences_gen.h:6572 -msgctxt "preferences" -msgid "kwallet" -msgstr "kwallet" - -#: ../build/bin/conf_gen.h:2700 -msgctxt "preferences" -msgid "vectorscope" -msgstr "vektorskop" - -#: ../build/bin/conf_gen.h:2701 -msgctxt "preferences" -msgid "waveform" -msgstr "oblika vala" - -#: ../build/bin/conf_gen.h:2702 -msgctxt "preferences" -msgid "RGB parade" -msgstr "RGB parada" - -#: ../build/bin/conf_gen.h:2703 -msgctxt "preferences" -msgid "histogram" -msgstr "histogram" - -#: ../build/bin/conf_gen.h:2711 ../build/bin/preferences_gen.h:7264 -msgctxt "preferences" -msgid "left" -msgstr "levo" - -#: ../build/bin/conf_gen.h:2712 ../build/bin/preferences_gen.h:7269 -#: ../build/bin/preferences_gen.h:7288 -msgctxt "preferences" -msgid "right" -msgstr "desno" - -#: ../build/bin/conf_gen.h:2720 ../build/bin/conf_gen.h:2757 -msgctxt "preferences" -msgid "logarithmic" -msgstr "logaritmično" - -#: ../build/bin/conf_gen.h:2721 ../build/bin/conf_gen.h:2758 -msgctxt "preferences" -msgid "linear" -msgstr "linearno" - -#: ../build/bin/conf_gen.h:2729 -msgctxt "preferences" -msgid "horizontal" -msgstr "vodoravno" - -#: ../build/bin/conf_gen.h:2730 -msgctxt "preferences" -msgid "vertical" -msgstr "navpično" - -#: ../build/bin/conf_gen.h:2738 -msgctxt "preferences" -msgid "overlaid" -msgstr "prekrivno" - -#: ../build/bin/conf_gen.h:2739 -msgctxt "preferences" -msgid "parade" -msgstr "parada" - -#: ../build/bin/conf_gen.h:2747 -msgctxt "preferences" -msgid "u*v*" -msgstr "u*v*" - -#: ../build/bin/conf_gen.h:2748 -msgctxt "preferences" -msgid "AzBz" -msgstr "AzBz" - -#: ../build/bin/conf_gen.h:2749 -msgctxt "preferences" -msgid "RYB" -msgstr "RYB" - -#: ../build/bin/conf_gen.h:2791 -msgctxt "preferences" -msgid "monochromatic" -msgstr "monokromatsko" - -#: ../build/bin/conf_gen.h:2792 -msgctxt "preferences" -msgid "analogous" -msgstr "analogno" - -#: ../build/bin/conf_gen.h:2793 -msgctxt "preferences" -msgid "analogous complementary" -msgstr "analogno komplementarno" - -#: ../build/bin/conf_gen.h:2794 -msgctxt "preferences" -msgid "complementary" -msgstr "komplementarno" - -#: ../build/bin/conf_gen.h:2795 -msgctxt "preferences" -msgid "split complementary" -msgstr "razcep komplementarnega" - -#: ../build/bin/conf_gen.h:2796 -msgctxt "preferences" -msgid "dyad" -msgstr "diada" - -#: ../build/bin/conf_gen.h:2797 -msgctxt "preferences" -msgid "triad" -msgstr "triada" - -#: ../build/bin/conf_gen.h:2798 -msgctxt "preferences" -msgid "tetrad" -msgstr "tetrada" - -#: ../build/bin/conf_gen.h:2799 -msgctxt "preferences" -msgid "square" -msgstr "kvadrat" - -#: ../build/bin/conf_gen.h:2813 -msgctxt "preferences" -msgid "normal" -msgstr "normalno" - -#: ../build/bin/conf_gen.h:2815 -msgctxt "preferences" -msgid "narrow" -msgstr "ozko" - -#: ../build/bin/conf_gen.h:2816 -msgctxt "preferences" -msgid "line" -msgstr "črta" - -#: ../build/bin/conf_gen.h:2956 -msgctxt "preferences" -msgid "mm" -msgstr "mm" - -#: ../build/bin/conf_gen.h:2957 -msgctxt "preferences" -msgid "cm" -msgstr "cm" - -#: ../build/bin/conf_gen.h:2958 -msgctxt "preferences" -msgid "inch" -msgstr "palec" - -#: ../build/bin/conf_gen.h:3003 ../build/bin/preferences_gen.h:7324 -#: ../build/bin/preferences_gen.h:7353 -msgctxt "preferences" -msgid "all" -msgstr "vse" - -#: ../build/bin/conf_gen.h:3004 ../build/bin/preferences_gen.h:7329 -msgctxt "preferences" -msgid "xatom" -msgstr "xatom" - -#: ../build/bin/conf_gen.h:3005 ../build/bin/preferences_gen.h:7334 -msgctxt "preferences" -msgid "colord" -msgstr "colord" - -#: ../build/bin/conf_gen.h:3041 ../build/bin/preferences_gen.h:5562 -#: ../build/bin/preferences_gen.h:5596 -msgctxt "preferences" -msgid "scene-referred (filmic)" -msgstr "glede na sceno (filmično)" - -#: ../build/bin/conf_gen.h:3042 ../build/bin/preferences_gen.h:5567 -msgctxt "preferences" -msgid "scene-referred (sigmoid)" -msgstr "glede na sceno (sigmoidalno)" - -#: ../build/bin/conf_gen.h:3043 ../build/bin/preferences_gen.h:5572 -msgctxt "preferences" -msgid "display-referred (legacy)" -msgstr "glede na zaslon (zapuščina)" - -#: ../build/bin/conf_gen.h:3144 -msgid "camera time zone" -msgstr "časovna cona kamere" - -#: ../build/bin/conf_gen.h:3145 -msgid "" -"most cameras don't store the time zone in EXIF. give the correct time zone " -"so the GPX data can be correctly matched" -msgstr "" -"večina kamer v EXIFu ne shranjuje časovnih pasov. Podajte časovni pas, da se " -"lahko podatki iz datoteke GPX ustrezno uskladijo s slikami" - -#: ../build/bin/conf_gen.h:3156 -msgctxt "preferences" -msgid "no color" -msgstr "brez barve" - -#: ../build/bin/conf_gen.h:3157 -msgctxt "preferences" -msgid "illuminant color" -msgstr "barva vrste svetlobe" - -#: ../build/bin/conf_gen.h:3158 -msgctxt "preferences" -msgid "effect emulation" -msgstr "posnemanje učinka" - -#: ../build/bin/conf_gen.h:3204 -msgctxt "preferences" -msgid "list" -msgstr "seznam" - -#: ../build/bin/conf_gen.h:3205 -msgctxt "preferences" -msgid "tabs" -msgstr "zavihki" - -#: ../build/bin/conf_gen.h:3206 -msgctxt "preferences" -msgid "columns" -msgstr "stolpci" - -#: ../build/bin/conf_gen.h:3215 ../build/bin/preferences_gen.h:5117 -msgctxt "preferences" -msgid "active" -msgstr "aktivno" - -#: ../build/bin/conf_gen.h:3216 ../build/bin/preferences_gen.h:5122 -msgctxt "preferences" -msgid "dim" -msgstr "zatemnjeno" - -#: ../build/bin/conf_gen.h:3218 ../build/bin/preferences_gen.h:5132 -msgctxt "preferences" -msgid "fade" -msgstr "obledelo" - -#: ../build/bin/conf_gen.h:3219 ../build/bin/preferences_gen.h:5137 -msgctxt "preferences" -msgid "fit" -msgstr "prilagojeno" - -#: ../build/bin/conf_gen.h:3220 ../build/bin/preferences_gen.h:5142 -msgctxt "preferences" -msgid "smooth" -msgstr "gladko" - -#: ../build/bin/conf_gen.h:3221 ../build/bin/preferences_gen.h:5147 -msgctxt "preferences" -msgid "glide" -msgstr "pogladi" - -#: ../build/bin/preferences_gen.h:81 ../build/bin/preferences_gen.h:3823 -#: ../build/bin/preferences_gen.h:3859 ../build/bin/preferences_gen.h:3895 -#: ../build/bin/preferences_gen.h:3931 ../build/bin/preferences_gen.h:3967 -#: ../build/bin/preferences_gen.h:4003 ../build/bin/preferences_gen.h:4039 -#: ../build/bin/preferences_gen.h:4083 ../build/bin/preferences_gen.h:4178 -#: ../build/bin/preferences_gen.h:4273 ../build/bin/preferences_gen.h:4313 -#: ../build/bin/preferences_gen.h:4356 ../build/bin/preferences_gen.h:4437 -#: ../build/bin/preferences_gen.h:4473 ../build/bin/preferences_gen.h:4510 -#: ../build/bin/preferences_gen.h:4553 ../build/bin/preferences_gen.h:4627 -#: ../build/bin/preferences_gen.h:4672 ../build/bin/preferences_gen.h:4708 -#: ../build/bin/preferences_gen.h:4778 ../build/bin/preferences_gen.h:4822 -#: ../build/bin/preferences_gen.h:4882 ../build/bin/preferences_gen.h:4918 -#: ../build/bin/preferences_gen.h:4954 ../build/bin/preferences_gen.h:4990 -#: ../build/bin/preferences_gen.h:5026 ../build/bin/preferences_gen.h:5062 -#: ../build/bin/preferences_gen.h:5098 ../build/bin/preferences_gen.h:5188 -#: ../build/bin/preferences_gen.h:5224 ../build/bin/preferences_gen.h:5260 -#: ../build/bin/preferences_gen.h:5334 ../build/bin/preferences_gen.h:5370 -#: ../build/bin/preferences_gen.h:5435 ../build/bin/preferences_gen.h:5505 -#: ../build/bin/preferences_gen.h:5548 ../build/bin/preferences_gen.h:5618 -#: ../build/bin/preferences_gen.h:5654 ../build/bin/preferences_gen.h:5690 -#: ../build/bin/preferences_gen.h:5734 ../build/bin/preferences_gen.h:5805 -#: ../build/bin/preferences_gen.h:5841 ../build/bin/preferences_gen.h:5877 -#: ../build/bin/preferences_gen.h:5913 ../build/bin/preferences_gen.h:5955 -#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6140 -#: ../build/bin/preferences_gen.h:6176 ../build/bin/preferences_gen.h:6212 -#: ../build/bin/preferences_gen.h:6248 ../build/bin/preferences_gen.h:6284 -#: ../build/bin/preferences_gen.h:6320 ../build/bin/preferences_gen.h:6356 -#: ../build/bin/preferences_gen.h:6392 ../build/bin/preferences_gen.h:6427 -#: ../build/bin/preferences_gen.h:6462 ../build/bin/preferences_gen.h:6498 -#: ../build/bin/preferences_gen.h:6542 ../build/bin/preferences_gen.h:6614 -#: ../build/bin/preferences_gen.h:6692 ../build/bin/preferences_gen.h:6767 -#: ../build/bin/preferences_gen.h:6820 ../build/bin/preferences_gen.h:6885 -#: ../build/bin/preferences_gen.h:6950 ../build/bin/preferences_gen.h:7024 -#: ../build/bin/preferences_gen.h:7060 ../build/bin/preferences_gen.h:7096 -#: ../build/bin/preferences_gen.h:7132 ../build/bin/preferences_gen.h:7168 -#: ../build/bin/preferences_gen.h:7204 ../build/bin/preferences_gen.h:7250 -#: ../build/bin/preferences_gen.h:7310 ../build/bin/preferences_gen.h:7375 -#: ../build/bin/preferences_gen.h:7429 ../build/bin/preferences_gen.h:7474 -#: ../build/bin/preferences_gen.h:7510 ../build/bin/preferences_gen.h:7546 -#: ../build/bin/preferences_gen.h:7582 ../build/bin/preferences_gen.h:7618 -#: ../build/bin/preferences_gen.h:7678 ../build/bin/preferences_gen.h:7722 -#: ../build/bin/preferences_gen.h:7766 ../build/bin/preferences_gen.h:7848 -#: ../build/bin/preferences_gen.h:7888 ../build/bin/preferences_gen.h:7928 -#: ../build/bin/preferences_gen.h:7964 ../build/bin/preferences_gen.h:8019 -#: ../build/bin/preferences_gen.h:8055 ../build/bin/preferences_gen.h:8115 -#: ../build/bin/preferences_gen.h:8161 ../build/bin/preferences_gen.h:8197 -#: ../build/bin/preferences_gen.h:8243 ../build/bin/preferences_gen.h:8303 -#: ../build/bin/preferences_gen.h:8355 ../build/bin/preferences_gen.h:8401 -#: ../build/bin/preferences_gen.h:8469 ../build/bin/preferences_gen.h:8516 -msgid "this setting has been modified" -msgstr "ta nastavitev je bila spremenjena" - -#. doesn't seem to work from gtkrc -#: ../build/bin/preferences_gen.h:3793 ../build/bin/preferences_gen.h:4407 -#: ../build/bin/preferences_gen.h:5304 ../build/bin/preferences_gen.h:6110 -#: ../build/bin/preferences_gen.h:6662 ../build/bin/preferences_gen.h:6994 -#: ../build/bin/preferences_gen.h:7818 ../src/gui/accelerators.c:2724 -#: ../src/gui/gtk.c:2580 ../src/gui/preferences.c:421 -#: ../src/gui/preferences.c:876 ../src/libs/modulegroups.c:3886 -msgid "?" -msgstr "?" - -#: ../build/bin/preferences_gen.h:3806 ../build/bin/preferences_gen.h:4420 -#: ../build/bin/preferences_gen.h:6123 ../src/gui/preferences.c:270 -msgid "general" -msgstr "splošno" - -#: ../build/bin/preferences_gen.h:3826 -msgid "hide built-in presets for utility modules" -msgstr "skrij vgrajene začetne nastavitve za uporabne module" - -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4017 -#: ../build/bin/preferences_gen.h:4053 ../build/bin/preferences_gen.h:4156 -#: ../build/bin/preferences_gen.h:4251 ../build/bin/preferences_gen.h:4291 -#: ../build/bin/preferences_gen.h:4334 ../build/bin/preferences_gen.h:4377 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4531 ../build/bin/preferences_gen.h:4606 -#: ../build/bin/preferences_gen.h:4686 ../build/bin/preferences_gen.h:4756 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4860 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5040 ../build/bin/preferences_gen.h:5076 -#: ../build/bin/preferences_gen.h:5166 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5274 -#: ../build/bin/preferences_gen.h:5348 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5483 ../build/bin/preferences_gen.h:5525 -#: ../build/bin/preferences_gen.h:5596 ../build/bin/preferences_gen.h:5632 -#: ../build/bin/preferences_gen.h:5668 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5782 ../build/bin/preferences_gen.h:5819 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:5927 ../build/bin/preferences_gen.h:5998 -#: ../build/bin/preferences_gen.h:6074 ../build/bin/preferences_gen.h:6154 -#: ../build/bin/preferences_gen.h:6190 ../build/bin/preferences_gen.h:6226 -#: ../build/bin/preferences_gen.h:6262 ../build/bin/preferences_gen.h:6298 -#: ../build/bin/preferences_gen.h:6334 ../build/bin/preferences_gen.h:6370 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:6592 ../build/bin/preferences_gen.h:6632 -#: ../build/bin/preferences_gen.h:6745 ../build/bin/preferences_gen.h:6863 -#: ../build/bin/preferences_gen.h:6928 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7146 -#: ../build/bin/preferences_gen.h:7182 ../build/bin/preferences_gen.h:7288 -#: ../build/bin/preferences_gen.h:7353 ../build/bin/preferences_gen.h:7393 -#: ../build/bin/preferences_gen.h:7443 ../build/bin/preferences_gen.h:7488 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7656 -#: ../build/bin/preferences_gen.h:7692 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:7866 ../build/bin/preferences_gen.h:7906 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:7982 -#: ../build/bin/preferences_gen.h:8033 ../build/bin/preferences_gen.h:8093 -#: ../build/bin/preferences_gen.h:8175 ../build/bin/preferences_gen.h:8281 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 -#, c-format -msgid "double click to reset to `%s'" -msgstr "dvokliknite da bi ponovno nastavili na '%s'" - -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4053 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4686 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:5040 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5348 -#: ../build/bin/preferences_gen.h:5632 ../build/bin/preferences_gen.h:5668 -#: ../build/bin/preferences_gen.h:5819 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:6370 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7146 ../build/bin/preferences_gen.h:7443 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7692 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:8033 -#: ../build/bin/preferences_gen.h:8175 -msgctxt "preferences" -msgid "FALSE" -msgstr "FALSE" - -#: ../build/bin/preferences_gen.h:3840 -msgid "hides built-in presets of utility modules in presets menu." -msgstr "" -"skrije vgrajene začetne nastavitve uporabnih modulov v prednastavitvenem " -"meniju." - -#: ../build/bin/preferences_gen.h:3862 -msgid "use single-click in the collections module" -msgstr "uporabi enojni klik na plošči zbirk" - -#: ../build/bin/preferences_gen.h:3876 -msgid "" -"check this option to use single-click to select items in the collections " -"module. this will allow you to do range selections for date-time and numeric " -"values." -msgstr "" -"odkljukaj to možnost za uporabo enojnega klika za izbiro slik na plošči " -"zbirk. ta omogoča izbiro glede datumsko-časovnega intervala in številskih " -"vrednosti." - -#: ../build/bin/preferences_gen.h:3898 -msgid "expand a single utility module at a time" -msgstr "razširi po en modul osvetljene podlage naenkrat" - -#: ../build/bin/preferences_gen.h:3912 -msgid "this option toggles the behavior of shift clicking in lighttable mode" -msgstr "ta možnost preklaplja obnašanje dvigalke v načinu osvetljene podlage" - -#: ../build/bin/preferences_gen.h:3934 -msgid "scroll utility modules to the top when expanded" -msgstr "pomakni module osvetljene podlage na vrh, kadar je razširjeno" - -#: ../build/bin/preferences_gen.h:3948 ../build/bin/preferences_gen.h:5079 -msgid "" -"when this option is enabled then darktable will try to scroll the module to " -"the top of the visible list" -msgstr "" -"kadar je ta možnost omogočena, potem bo darktable poskusil premakniti ta " -"modul na vrh vidnega seznama" - -#: ../build/bin/preferences_gen.h:3970 -msgid "rating an image one star twice will not zero out the rating" -msgstr "" -"določanje ocene slike z dvojnim klikom na prvo zvezdico ne ugasne ocene" - -#: ../build/bin/preferences_gen.h:3984 -msgid "" -"defines whether rating an image one star twice will zero out star rating" -msgstr "" -"določanje ali naj dvojni klik slike z eno zvezdico da oceno nič zvezdic" - -#: ../build/bin/preferences_gen.h:4006 ../build/bin/preferences_gen.h:4675 -msgid "show scrollbars for central view" -msgstr "prikaži drsnike za osrednji pogled" - -#: ../build/bin/preferences_gen.h:4017 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5076 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5274 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5927 -#: ../build/bin/preferences_gen.h:6154 ../build/bin/preferences_gen.h:6190 -#: ../build/bin/preferences_gen.h:6226 ../build/bin/preferences_gen.h:6262 -#: ../build/bin/preferences_gen.h:6298 ../build/bin/preferences_gen.h:6334 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7182 -#: ../build/bin/preferences_gen.h:7488 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 -msgctxt "preferences" -msgid "TRUE" -msgstr "TRUE" - -#: ../build/bin/preferences_gen.h:4020 ../build/bin/preferences_gen.h:4689 -msgid "defines whether scrollbars should be displayed" -msgstr "določa, ali naj bodo prikazani drsniki" - -#: ../build/bin/preferences_gen.h:4042 -msgid "show image time with milliseconds" -msgstr "prikaži čas slike z milisekundami" - -#: ../build/bin/preferences_gen.h:4056 -msgid "defines whether time should be displayed with milliseconds" -msgstr "določa, ali naj bo čas prikazan z milisekundami" - -#: ../build/bin/preferences_gen.h:4066 -msgid "thumbnails" -msgstr "predogledne sličice" - -#: ../build/bin/preferences_gen.h:4086 -msgid "use raw file instead of embedded JPEG from size" -msgstr "uporabite surovo datoteko namesto vdelanega JPEG zaradi velikosti" - -#: ../build/bin/preferences_gen.h:4159 -msgid "" -"if the thumbnail size is greater than this value, it will be processed using " -"raw file instead of the embedded preview JPEG (better but slower).\n" -"if you want all thumbnails and pre-rendered images in best quality you " -"should choose the *always* option.\n" -"(more comments in the manual)" -msgstr "" -"če je velikost predogledne sličice večja od te vrednosti, bo obdelana z " -"uporabosurove datoteka namesto vdelanega predogleda JPEG (boljša, vendar " -"počasnejša). \n" -"če želite vse sličice in vnaprej upodobljene slike v najboljši kakovostinaj " -"izberejo možnost *vedno*.\n" -"(več komentarjev v priročniku)" - -#: ../build/bin/preferences_gen.h:4181 -msgid "high quality processing from size" -msgstr "visoko kakovostna obdelava zaradi velikosti" - -#: ../build/bin/preferences_gen.h:4254 -msgid "" -"if the thumbnail size is greater than this value, it will be processed using " -"the full quality rendering path (better but slower).\n" -"if you want all thumbnails and pre-rendered images in best quality you " -"should choose the *always* option.\n" -"(more comments in the manual)" -msgstr "" -"če je velikost predogledne sličice večja od te vrednosti, bo obdelana z " -"uporabo surove datoteke namesto vdelanega predogleda JPEG (boljša, vendar " -"počasnejša). \n" -"če želite vse sličice in vnaprej upodobljene slike v najboljši kakovosti naj " -"izberejo možnost *vedno*.\n" -"(več komentarjev v priročniku)" - -#: ../build/bin/preferences_gen.h:4276 -msgid "delimiters for size categories" -msgstr "ločilniki za kategorije velikosti" - -#: ../build/bin/preferences_gen.h:4294 -msgid "" -"size categories are used to be able to set different overlays and CSS values " -"depending of the size of the thumbnail, separated by |.\n" -"for example, 120|400 means 3 categories of thumbnails: <120px, 120-400px, " -">400px" -msgstr "" -"kategorije velikosti se uporabljajo za nastavitev različnih prekrivanj in " -"vrednosti css odvisno od velikosti predogledne sličice, ločene z |. \n" -"na primer 120|400pomeni 3 kategorije sličic: <120px, 120-400px, >400px" - -#: ../build/bin/preferences_gen.h:4316 -msgid "pattern for the thumbnail extended overlay text" -msgstr "vzorec za sličico razširjenega prekrivnega besedila" - -#: ../build/bin/preferences_gen.h:4337 ../build/bin/preferences_gen.h:4380 -msgid "see manual to know all the tags you can use." -msgstr "poglejte v priročnik za vse možne oznake, ki jih lahko uporabljate." - -#: ../build/bin/preferences_gen.h:4359 -msgid "pattern for the thumbnail tooltip (empty to disable)" -msgstr "vzorec za orodni namig na sličici (prazno za onemogočenje)" - -#: ../build/bin/preferences_gen.h:4440 -msgid "scroll down to increase mask parameters" -msgstr "pomakni navzdol za povečanje parametrov maske" - -#: ../build/bin/preferences_gen.h:4454 -msgid "" -"when using the mouse scroll wheel to change mask parameters, scroll down to " -"increase the mask size, feather size, opacity, brush hardness and gradient " -"curvature\n" -"by default scrolling up increases these parameters" -msgstr "" -"ko uporabljate kolesce na miški, da bi spremenili parametre maske, se " -"pomaknite navzdol da bi povečali velikost maske, velikost peresa, " -"neprosojnost, trdoto čopiča in gradienta ukrivljenost\n" -"pomikanje navzgor privzeto poveča te parametre" - -#: ../build/bin/preferences_gen.h:4476 -msgid "middle mouse button zooms to 200%" -msgstr "srednji gumb miške približa na 200%" - -#: ../build/bin/preferences_gen.h:4491 -#, no-c-format -msgid "" -"if enabled, the zoom level will cycle between 100%, 200% and fit to viewport " -"on middle mouse clicks. if disabled, it will toggle between viewport size " -"and 100%, and the 'ctrl' key can be used to control the zoom level." -msgstr "" -"ko kliknete na srednji gumb miške za povečavo, bo stopnja povečave krožila " -"na 100%, 200%, na velikost prileganja zaslonu. v nasprotnem primeru " -"preklaplja med prileganjem na zaslon in 100%, kontrolko pa lahko uporabite " -"za nadzor stopnje povečave." - -#: ../build/bin/preferences_gen.h:4513 -msgid "pattern for the image information line" -msgstr "vzorec za vrstico informacije o sliki" - -#: ../build/bin/preferences_gen.h:4534 -msgid "see manual for a list of the tags you can use." -msgstr "poglejte v priročnik na seznam oznak, ki jih lahko uporabljate." - -#: ../build/bin/preferences_gen.h:4556 -msgid "position of the image information line" -msgstr "pozicija informacijske vrstice o sliki" - -#: ../build/bin/preferences_gen.h:4630 -msgid "border around image in darkroom mode" -msgstr "rob okrog slike v načinu temnice" - -#: ../build/bin/preferences_gen.h:4650 ../build/bin/preferences_gen.h:6790 -#: ../build/bin/preferences_gen.h:7228 ../build/bin/preferences_gen.h:7789 -#: ../build/bin/preferences_gen.h:8139 ../build/bin/preferences_gen.h:8221 -#: ../build/bin/preferences_gen.h:8379 ../build/bin/preferences_gen.h:8493 -#: ../build/bin/preferences_gen.h:8540 -#, c-format -msgid "double click to reset to `%d'" -msgstr "dvokliknite za ponovno nastavitev na '%d'" - -#: ../build/bin/preferences_gen.h:4653 -msgid "" -"process the image in darkroom mode with a small border. set to 0 if you " -"don't want any border." -msgstr "" -"obdelaj sliko v načinu temnice s tankim robom. Postavite na 0, če roba ne " -"želite." - -#: ../build/bin/preferences_gen.h:4711 -msgid "reduce resolution of preview image" -msgstr "zmanjšaj ločljivost predogleda slike" - -#: ../build/bin/preferences_gen.h:4759 -msgid "decrease to speed up preview rendering, may hinder accurate masking" -msgstr "" -"zmanjšanje za pospešitev upodabljanja predogleda lahko ovira natančno " -"zakrivanje" - -#: ../build/bin/preferences_gen.h:4781 -msgid "show loading screen between images" -msgstr "prikazuj zaslon nalaganja med slikami" - -#: ../build/bin/preferences_gen.h:4795 -msgid "" -"show gray loading screen when navigating between images in the darkroom\n" -"disable to just show a toast message" -msgstr "" -"med navigacijo med slikami v temni sobi prikaži siv zaslon za nalaganje\n" -"onemogoči, da samo prikaže zaključno sporočilo" - -#: ../build/bin/preferences_gen.h:4805 -msgid "modules" -msgstr "moduli" - -#: ../build/bin/preferences_gen.h:4825 -msgid "display of individual color channels" -msgstr "prikaži posamezne barvne kanale" - -#: ../build/bin/preferences_gen.h:4863 -msgid "" -"defines how color channels are displayed when activated in the parametric " -"masks feature." -msgstr "" -"določa, kako so prikazani barvni kanali, kadar so aktivirani v parametrski " -"maski." - -#: ../build/bin/preferences_gen.h:4885 -msgid "hide built-in presets for processing modules" -msgstr "skrij začetne nastavitve za obdelovalnih modulov" - -#: ../build/bin/preferences_gen.h:4899 -msgid "" -"hides built-in presets of processing modules in both presets and favourites " -"menu." -msgstr "" -"skrije vgrajene prednastavitve obdelovalnih modulov tako prednastavitvah kot " -"v meniju priljubljenih." - -#: ../build/bin/preferences_gen.h:4921 ../build/bin/preferences_gen.h:4935 -msgid "show the guides widget in modules UI" -msgstr "prikaži gradnik vodil v modulih uporabniškega vmesnika" - -#: ../build/bin/preferences_gen.h:4957 -msgid "expand a single processing module at a time" -msgstr "razširi po en modul temnice naenkrat" - -#: ../build/bin/preferences_gen.h:4971 -msgid "this option toggles the behavior of shift clicking in darkroom mode" -msgstr "" -"ta možnost preklaplja obnašanje klikanja ob pritisku dvigalke v načinu " -"temnice" - -#: ../build/bin/preferences_gen.h:4993 -msgid "only collapse modules in current group" -msgstr "strni samo module v tekoči skupini" - -#: ../build/bin/preferences_gen.h:5007 -msgid "" -"if only expanding a single module at a time, only collapse other modules in " -"the current group - ignore modules in other groups" -msgstr "" -"če razširiš samo po en modul naenkrat, samo strni druge module v trenutni " -"skupina - prezri module v drugih skupinah" - -#: ../build/bin/preferences_gen.h:5029 -msgid "expand the module when it is activated, and collapse it when disabled" -msgstr "razširi modul, kadar je aktiviran in ga skrči, kadar je onemogočen" - -#: ../build/bin/preferences_gen.h:5043 -msgid "" -"this option allows to expand or collapse automatically the module when it is " -"enabled or disabled." -msgstr "" -"ta nastavitev dovoljuje avtomatično razširjanje oz. skrčenje modula, kadar " -"je omogočen oz. onemogočen." - -#: ../build/bin/preferences_gen.h:5065 -msgid "scroll processing modules to the top when expanded" -msgstr "pomakni obdelovalne module na vrh, kadar so razširjeni" - -#: ../build/bin/preferences_gen.h:5101 -msgid "show right-side buttons in processing module headers" -msgstr "prikaži desne gumbe v glavah obdelovalnih modulov" - -#: ../build/bin/preferences_gen.h:5169 -msgid "" -"when the mouse is not over a module, the multi-instance, reset and preset " -"buttons can be hidden:\n" -" - 'always': always show all buttons,\n" -" - 'active': only show the buttons when the mouse is over the module,\n" -" - 'dim': buttons are dimmed when mouse is away,\n" -" - 'auto': hide the buttons when the panel is narrow,\n" -" - 'fade': fade out all buttons when panel narrows,\n" -" - 'fit': hide all the buttons if the module name doesn't fit,\n" -" - 'smooth': fade out all buttons in one header simultaneously,\n" -" - 'glide': gradually hide individual buttons as needed" -msgstr "" -"kadar miška ni nad modulom, je mogoče skriti gumbe za več pojavkov, ponovne " -"nastavitve in prednastavitve:\n" -"- 'vedno' - vedno prikaži vse gumbe,\n" -"- 'aktivno' - gumbe prikaži samo, ko je miška nad modulom,\n" -"- 'zatemnjeno' - gumbi so zatemnjeni, ko je miška stran,\n" -"- 'samodejno' - skrij gumbe, ko je podokno ozko,\n" -"- 'obledelo' - obledijo vsi gumbi, kadar se plošča zoži,\n" -"- 'prilagojeno' - skrij vse gumbe, če ime modula ne ustreza,\n" -"- 'gladko' - hkrati obledi vse gumbe v eni glavi,\n" -"- 'drsenje' - po potrebi postopoma skrij posamezne gumbe" - -#: ../build/bin/preferences_gen.h:5191 -msgid "show mask indicator in module headers" -msgstr "prikaži indikator maske v glavah obdelovalnih modulov" - -#: ../build/bin/preferences_gen.h:5205 -msgid "" -"if enabled, an icon will be shown in the header of any processing modules " -"that have a mask applied" -msgstr "" -"če je omogočena, bo prikazana ikona v glavi katerega koli procesnega modula, " -"ki ima vneseno masko" - -#: ../build/bin/preferences_gen.h:5227 -msgid "prompt for name on addition of new instance" -msgstr "poziv za ime pri dodajanju novega pojavka" - -#: ../build/bin/preferences_gen.h:5241 -msgid "" -"if enabled, a rename prompt will be present for each new module instance " -"(either new instance or duplicate)" -msgstr "" -"če je omogočeno, bo za vsak nov pojavek modula prisoten poziv za " -"preimenovanje (ne glede ali je nov primer ali dvojnik)" - -#: ../build/bin/preferences_gen.h:5263 -msgid "automatically update module name" -msgstr "avtomatično posodobi ime modula" - -#: ../build/bin/preferences_gen.h:5277 -msgid "" -"if enabled, the module name will be automatically updated to match a preset " -"name or a preset instance name if present." -msgstr "" -"če je omogočeno, bo ime modula samodejno posodobljeno, tako da ustreza " -"prednastavljenemu imenu ali prednastavljeno ime pojavka, če je prisoten." - -#: ../build/bin/preferences_gen.h:5317 -msgid "image processing" -msgstr "obdelava slike" - -#: ../build/bin/preferences_gen.h:5337 -msgid "always use LittleCMS 2 to apply output color profile" -msgstr "vedno uporabi LittleCMS 2 za kontrolo izhodnega barvnega profila" - -#: ../build/bin/preferences_gen.h:5351 -msgid "this is slower than the default." -msgstr "to je počasnejše od privzete možnosti." - -#: ../build/bin/preferences_gen.h:5373 -msgid "pixel interpolator (warp)" -msgstr "interpolator pikslov (warp)" - -#: ../build/bin/preferences_gen.h:5416 -msgid "" -"pixel interpolator used in modules for rotation, lens correction, liquify, " -"cropping and final scaling (bilinear, bicubic, lanczos2)." -msgstr "" -"interpolator pikslov v modulih za zasuk ter popravke leč, utekočinjenje, " -"obrezovanje in končno prilagajanje velikosti (bilinearna, bikubična, " -"anczos2)." - -#: ../build/bin/preferences_gen.h:5438 -msgid "pixel interpolator (scaling)" -msgstr "interpolator pikslov (prilagajanje merila)" - -#: ../build/bin/preferences_gen.h:5486 -msgid "" -"pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." -msgstr "" -"interpolator pikslov uporabljen prilagajanju meril (bilinearno, bikubično, " -"lanczos2, lanczos3)." - -#: ../build/bin/preferences_gen.h:5508 -msgid "LUT 3D root folder" -msgstr "korenska mapa za tabelo iskanja 3D" - -#: ../build/bin/preferences_gen.h:5513 ../src/control/jobs/control_jobs.c:1688 -#: ../src/control/jobs/control_jobs.c:1742 ../src/gui/preferences.c:1081 -#: ../src/gui/presets.c:419 ../src/imageio/storage/disk.c:122 -#: ../src/imageio/storage/disk.c:178 ../src/imageio/storage/gallery.c:109 -#: ../src/imageio/storage/gallery.c:163 ../src/imageio/storage/latex.c:108 -#: ../src/imageio/storage/latex.c:162 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/import.c:1664 ../src/libs/styles.c:391 -#: ../src/lua/preferences.c:668 -msgid "select directory" -msgstr "izberi mapo" - -#: ../build/bin/preferences_gen.h:5529 -msgid "" -"this folder (and sub-folders) contains LUT files used by LUT 3D module. " -"(need a restart)." -msgstr "" -"ta mapa (in podmape) vsebujejo datoteke s tabelami iskanja, ki jih " -"uporabljajo moduli LUT3D. (potreben je ponovni zagon)." - -#: ../build/bin/preferences_gen.h:5551 -msgid "auto-apply pixel workflow defaults" -msgstr "samodejna uporaba privzete nastavitve delovnega toka pikslov" - -#: ../build/bin/preferences_gen.h:5599 -msgid "" -"scene-referred workflow is based on linear modules and will auto-apply " -"filmic or sigmoid, color calibration and exposure,\n" -"display-referred workflow is based on Lab modules and will auto-apply base " -"curve, white balance and the legacy module pipe order." -msgstr "" -"delovni tok glede na sceno temelji na linearnih modulih in bo samodejno " -"uporabil način filmično ali sigmoidalno nastavitev barv in osvetlitve,\n" -"tok, ki se nanaša na zaslon, temelji na modulih Lab in bo samodejno " -"uveljavil osnovno krivuljo in zapuščino vrstnega reda modulov." - -#: ../build/bin/preferences_gen.h:5621 -msgid "auto-apply per camera basecurve presets" -msgstr "avtomatsko uporabi nastavitve osnovne krivulje kamere" - -#: ../build/bin/preferences_gen.h:5635 -msgid "" -"use the per-camera basecurve by default instead of the generic manufacturer " -"one if there is one available (needs a restart).\n" -"this option is taken into account when the \"auto-apply pixel workflow " -"defaults\" is set to \"display-referred\".\n" -"to prevent auto-apply basecurve presets \"auto-apply pixel workflow " -"defaults\" should be set to \"none\"" -msgstr "" -"privzeto uporabite osnovno krivuljo kamere namesto generične krivulje " -"proizvajalca, če je na voljo (potreben je ponovni zagon).\n" -"ta možnost se upošteva, ko je samodejna uporaba privzete nastavitve " -"delovnega toka pikslov nastavljena \"glede na zaslon\".\n" -"da preprečili samodejna uporaba privzete nastavitve delovnega toka pikslov " -"mora biti to nastavljeno na \"nič\"" - -#: ../build/bin/preferences_gen.h:5657 -msgid "detect monochrome previews" -msgstr "zaznavaj enobarvne predoglede" - -#: ../build/bin/preferences_gen.h:5671 -msgid "" -"many monochrome images can be identified via EXIF and preview data. beware: " -"this slows down imports and reading of EXIF data" -msgstr "" -"številne enobarvne slike je mogoče identificirati prek podatkov EXIF in " -"predogleda. pozor: to upočasni uvoz in branje EXIF podatkov" - -#: ../build/bin/preferences_gen.h:5693 -msgid "show warning messages" -msgstr "prikaži opozorilna sporočila" - -#: ../build/bin/preferences_gen.h:5707 -msgid "" -"display messages in modules to warn beginner users when non-standard and " -"possibly harmful settings are used in the pipeline.\n" -"these messages can be false-positive and should be disregarded if you know " -"what you are doing. this option will hide them all the time." -msgstr "" -"prikaži sporočila v modulih, da opozorijo začetnike na nestandardne " -"morebitne škodljive nastavitve, ki so uporabljene v cevovodu.\n" -"ta sporočila so lahko lažno pozitivna in jih je treba prezreti, če veste kaj " -"delate. ta možnost jih bo ves čas skrivala." - -#: ../build/bin/preferences_gen.h:5717 -msgid "CPU / GPU / memory" -msgstr "CPE / GPE / pomnilnik" - -#: ../build/bin/preferences_gen.h:5737 -msgid "darktable resources" -msgstr "viri programa darktable" - -#: ../build/bin/preferences_gen.h:5786 -#, no-c-format -msgid "" -"defines how much darktable may take from your system resources:\n" -" - 'default': darktable takes ~50% of your systems resources and gives " -"darktable enough to be still performant.\n" -" - 'small': should be used if you are simultaneously running applications " -"taking large parts of your systems memory or OpenCL/GL applications like " -"games or Hugin.\n" -" - 'large': is the best option if you are mainly using darktable and want it " -"to take most of your systems resources for performance.\n" -" - 'unrestricted': should only be used for developing extremely large images " -"as darktable will take all of your systems resources\n" -" and thus might lead to swapping and unexpected performance drops.\n" -" use with caution and not recommended for general use!" -msgstr "" -"določi, koliko lahko program darktable pobere vaših sistemskih virov.\n" -" - 'privzeto': darktable pobere ~50 %% sistemskih virov in nudi darktablu " -"dovolj, da lahko še vedno deluje.\n" -" - 'majhno': naj bi uporabljali, če hkrati uporabljate aplikacije, ki " -"poberejo velik del pomnilnika vaših sistemov ali aplikacije OpenCL/GL, kot " -"so igre ali Hugin.\n" -" - 'veliko': je najboljša možnost, če v glavnem uporabljate darktable in ga " -"želite uporabiti večino sistemskih virov za čim večjo zmogljivost programa.\n" -" - 'neomejeno': bi ga smeli uporabiti samo za razvoj izjemno velikih slik, " -"ker bo darktable vzel vse sistemske vire, kar lahko privede do zamenjav " -"pomnilnika in nepričakovan upad zmogljivosti. Uporabljajte previdno, saj ni " -"priporočljivo za splošno uporabo!" - -#: ../build/bin/preferences_gen.h:5808 -msgid "prefer performance over quality" -msgstr "prednost učinkovitosti pred kakovostjo" - -#: ../build/bin/preferences_gen.h:5822 -msgid "" -"if switched on, thumbnails and previews are rendered at lower quality but 4 " -"times faster" -msgstr "" -"če je vklopljeno, se sličice in predogledi upodabljajo v slabši kakovosti, a " -"4 krat hitreje" - -#: ../build/bin/preferences_gen.h:5844 -msgid "enable disk backend for thumbnail cache" -msgstr "omogoči diskovni prostor za zalogovnik predoglednih sličic" - -#: ../build/bin/preferences_gen.h:5858 -msgid "" -"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want. light table " -"performance will be increased greatly when browsing a lot.\n" -"to generate all thumbnails of your entire collection offline, run 'darktable-" -"generate-cache'." -msgstr "" -"če je to omogočeno, bo program pisal predogledne sličice na disk (.cache/" -"darktable/), kadar bi moral slike pospraviti iz medpomnilnika. Vedite, da to " -"lahko zahteva veliko pomnilnika (nekaj GB za 20 tisoč slik) in ne bo nikoli " -"več zbrisalo shranjenih predoglednih sličic. Lahko jih sicer čisto varno " -"zbrišete ročno, če želite. Zmogljivost osvetljene mize s tem zelo povečamo, " -"če veliko brskamo po slikah. če želite generirati vse predogledne sličice " -"off line, poženite 'darktable-generate-cache'." - -#: ../build/bin/preferences_gen.h:5880 -msgid "enable disk backend for full preview cache" -msgstr "omogoči pomoč diska za začasno shranjevanje polnega predogleda" - -#: ../build/bin/preferences_gen.h:5894 -msgid "" -"if enabled, write full preview to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want.\n" -"light table performance will be increased greatly when zooming image in full " -"preview mode." -msgstr "" -"če je omogočeno, piše polni predogled na disk (.cache/darktable/) kadar je " -"pregnan iz hitrega medpomnilnika. vedite, da to lahko zavzame veliko " -"pomnilnika (več gigabytov za 20 tisoč slik) in ne bo nikoli več pobrisalo " -"teh sličic. sicer je čisto varno ročno brisanje, če želite. učinkovitost " -"osvetljene podlage se bo zelo povečala ob zumiranju slik v načinu predogleda." - -#: ../build/bin/preferences_gen.h:5916 -msgid "activate OpenCL support" -msgstr "aktiviraj podporo za OpenCL" - -#: ../build/bin/preferences_gen.h:5930 -msgid "" -"if found, use OpenCL runtime on your system to speed up processing.\n" -"can be switched on and off at any time." -msgstr "" -"če je najdena, uporabi podporo OpenCL za pospešeno obdelavo.\n" -"možnost lahko vklopimo ali izklopimo ob poljubnem času." - -#: ../build/bin/preferences_gen.h:5931 ../build/bin/preferences_gen.h:6002 -#: ../build/bin/preferences_gen.h:6078 ../build/bin/preferences_gen.h:7397 -msgid "not available" -msgstr "ni na voljo" - -#: ../build/bin/preferences_gen.h:5934 ../build/bin/preferences_gen.h:5938 -#: ../build/bin/preferences_gen.h:6005 ../build/bin/preferences_gen.h:6009 -#: ../build/bin/preferences_gen.h:6081 ../build/bin/preferences_gen.h:6085 -#: ../build/bin/preferences_gen.h:7400 ../build/bin/preferences_gen.h:7404 -msgid "not available on this system" -msgstr "ni na voljo na tem sistemu" - -#: ../build/bin/preferences_gen.h:5958 -msgid "OpenCL scheduling profile" -msgstr "profil časovnega planiranja OpenCL" - -#: ../build/bin/preferences_gen.h:6001 -msgid "" -"defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled " -"systems:\n" -" - 'default': GPU processes full and CPU processes preview pipe (adaptable " -"by config parameters),\n" -" - 'multiple GPUs': process both pixelpipes in parallel on two different " -"GPUs,\n" -" - 'very fast GPU': process both pixelpipes sequentially on the GPU." -msgstr "" -"določa kako sta planirana tokova za predogled celotnega procesov pixelpipe " -"na sistemih z omogočenim OpenCL:\n" -" - 'privzeto:' - GPE obdeluje vse in CPE obdeluje tok predogleda (glede na " -"nastavljene parametre);\n" -" - 'več GPE:' - vzporedno se obdelujeta oba tokova na dveh GPE;\n" -" - 'zelo hiter GPE' - zaporedno se obdeluje oba procesa na GPE." - -#: ../build/bin/preferences_gen.h:6029 -msgid "tune OpenCL performance" -msgstr "prilagodi zmogljivosti OpenCL" - -#: ../build/bin/preferences_gen.h:6077 -msgid "" -"allows runtime tuning of OpenCL devices:\n" -" - 'memory size': uses a fixed headroom (400MB as default),\n" -" - 'memory transfer': tries a faster memory access mode (pinned memory) used " -"for tiling." -msgstr "" -"omogoča nastavitev naprav OpenCL:\n" -" - 'velikost pomnilnika' uporablja stalno velikost (privzeto 400MB),\n" -" - 'prenos pomnilnika:' poskuša hitrejši način dostopa do pomnilnika " -"(pripeti pomnilnik), ki se uporablja za sestavo slik iz krp." - -#: ../build/bin/preferences_gen.h:6143 -msgid "ask before removing images from the library" -msgstr "vprašaj pred odstranjevanjem slik iz knjižnice" - -#: ../build/bin/preferences_gen.h:6157 -msgid "always ask the user before removing image information from the library" -msgstr "" -"vedno vprašaj uporabnika pred kakršnimkoli odstranjevanjem informacije o " -"sliki iz knjižnice" - -#: ../build/bin/preferences_gen.h:6179 -msgid "ask before deleting images from disk" -msgstr "vprašaj pred odstranjevanjem slike z diska" - -#: ../build/bin/preferences_gen.h:6193 -msgid "always ask the user before any image file is deleted" -msgstr "vedno vprašaj uporabnika pred brisanjem kakršnekoli datoteke" - -#: ../build/bin/preferences_gen.h:6215 -msgid "ask before discarding history stack" -msgstr "vprašaj pred odstranjevanjem sklada zgodovine" - -#: ../build/bin/preferences_gen.h:6229 -msgid "always ask the user before history stack is discarded on any image" -msgstr "" -"vedno vprašaj uporabnika pred odstranjevanjem sklada zgodovine katerekoli " -"slike" - -#: ../build/bin/preferences_gen.h:6251 -msgid "try to use trash when deleting images" -msgstr "ob brisanju datoteke jih poskusi prestaviti v koš za smeti" - -#: ../build/bin/preferences_gen.h:6265 -msgid "" -"send files to trash instead of permanently deleting files on system that " -"supports it" -msgstr "" -"prestavite datoteke v koš za smeti namesto nepreklicnega brisanja na " -"operacijskih sistemih, ki to dopuščajo" - -#: ../build/bin/preferences_gen.h:6287 -msgid "ask before moving images from film roll folder" -msgstr "vprašaj pred prenosom slik iz mape z zvitki filmov" - -#: ../build/bin/preferences_gen.h:6301 -msgid "always ask the user before any image file is moved." -msgstr "vedno vprašaj pred kakršnimkoli prenosom datoteke s sliko." - -#: ../build/bin/preferences_gen.h:6323 -msgid "ask before copying images to new film roll folder" -msgstr "vprašaj pred kopiranjem slik iz mape s filmi" - -#: ../build/bin/preferences_gen.h:6337 -msgid "always ask the user before any image file is copied." -msgstr "vedno vprašaj pred kakršnimkoli kopiranjem slik." - -#: ../build/bin/preferences_gen.h:6359 -msgid "ask before removing empty folders" -msgstr "vprašaj pred odstranjevanjem praznih map" - -#: ../build/bin/preferences_gen.h:6373 -msgid "" -"always ask the user before removing any empty folder. this can happen after " -"moving or deleting images." -msgstr "" -"vedno vprašaj uporabnika pred brisanjem prazne mape. to se lahko zgodi po " -"prenosu ali brisanjem slik." - -#: ../build/bin/preferences_gen.h:6395 -msgid "ask before deleting a tag" -msgstr "vprašaj pred brisanjem oznake" - -#: ../build/bin/preferences_gen.h:6430 -msgid "ask before deleting a style" -msgstr "vprašaj pred brisanjem sloga" - -#: ../build/bin/preferences_gen.h:6465 -msgid "ask before deleting a preset" -msgstr "vprašaj pred brisanjem začetnih nastavitev" - -#: ../build/bin/preferences_gen.h:6479 -msgid "will ask for confirmation before deleting or overwriting a preset" -msgstr "bo prosil za potrditev pred brisanjem ali prepisovanjem prednastavitve" - -#: ../build/bin/preferences_gen.h:6501 -msgid "ask before exporting in overwrite mode" -msgstr "vprašaj pred izvažanjem v prepisovalnem načinu" - -#: ../build/bin/preferences_gen.h:6515 -msgid "will ask for confirmation before exporting files in overwrite mode" -msgstr "bo prosil za potrditev pred izvažanjem datotek v prepisovalnem načinu" - -#. italic -#: ../build/bin/preferences_gen.h:6525 ../src/libs/tools/viewswitcher.c:148 -msgid "other" -msgstr "ostalo" - -#: ../build/bin/preferences_gen.h:6545 -msgid "password storage backend to use" -msgstr "uporaba gesla za shranjevanje v ozadju" - -#: ../build/bin/preferences_gen.h:6595 -msgid "" -"the storage backend for password storage: auto, none, libsecret, kwallet" -msgstr "shramba gesel: auto, nič, libsecret, kwallet" - -#: ../build/bin/preferences_gen.h:6617 -msgid "executable for playing audio files" -msgstr "program za predvajanje avdio datotek" - -#: ../build/bin/preferences_gen.h:6635 -msgid "" -"this external program is used to play audio files some cameras record to " -"keep notes for images" -msgstr "" -"ta zunanji program uporabim za predvajanje avdio datotek, kjer nekatere " -"kamere shranjujejo opombe k slikam" - -#: ../build/bin/preferences_gen.h:6675 ../src/control/crawler.c:724 -msgid "database" -msgstr "podatkovna baza" - -#: ../build/bin/preferences_gen.h:6695 -msgid "create database snapshot" -msgstr "ustvari podatkovno bazo posnetka" - -#: ../build/bin/preferences_gen.h:6748 -msgid "" -"database snapshots are created right before closing darktable. options allow " -"you to choose how often to make snapshots:\n" -" - 'never': simply don't do snapshots. that way the only snapshots done are " -"mandatory version-upgrade snapshots\n" -" - 'once a month': create snapshot if a month has passed since last " -"snapshot\n" -" - 'once a week': create snapshot if 7 days had passed since last snapshot\n" -" - 'once a day': create snapshot if over 24h passed since last snapshot\n" -" - 'on close': create snapshot every time darktable is closed" -msgstr "" -"posnetki baze podatkov so ustvarjeni tik pred zaprtjem programa darktable. " -"možnosti vam dovoljujejo izbiro, kako pogosto boste naredili posnetke:\n" -" - 'nikoli:' - preprosto ne delajte posnetkov. na ta način so edini narejeni " -"posnetki obvezni posnetki pred nadgradnjo verzije\n" -" - 'enkrat na mesec' - ustvarite posnetek, če je od zadnjega posnetka " -"pretekel en mesec\n" -" - 'enkrat na teden:' - ustvarite posnetek, če je od zadnjega posnetka " -"minilo 7 dni\n" -" - 'enkrat na dan:' - ustvarite posnetek, če je od zadnjega posnetka minilo " -"več kot 24 ur\n" -" - 'od zaprtju' - ustvarite posnetek vsakič, ko zaprete program darktable" - -#: ../build/bin/preferences_gen.h:6770 -msgid "how many snapshots to keep" -msgstr "koliko posnetkov hraniti" - -#: ../build/bin/preferences_gen.h:6793 -msgid "" -"after successfully creating snapshot, how many older snapshots to keep " -"(excluding mandatory version update ones). enter -1 to keep all snapshots\n" -"keep in mind that snapshots do take some space and you only need the most " -"recent one for successful restore" -msgstr "" -"po uspešnem kreiranju posnetka, koliko starejših posnetkov je treba obdržati " -"(razen obveznih posodobitev verzij). vnesite -1, da ohranite vse posnetke\n" -"vedite, da posnetki zavzamejo nekaj prostora in da za uspešno obnovo " -"potrebujete le nedavne" - -#: ../build/bin/preferences_gen.h:6803 ../src/control/crawler.c:723 -msgid "XMP" -msgstr "XMP" - -#: ../build/bin/preferences_gen.h:6823 -msgid "write sidecar file for each image" -msgstr "napiši priklopno datoteko za vsako sliko" - -#: ../build/bin/preferences_gen.h:6866 -msgid "" -"the sidecar files hold information about all your development steps to allow " -"flawless re-importing of image files.\n" -"\n" -"depending on the selected mode sidecar files will be written:\n" -" - 'never'\n" -" - 'on import': immediately after importing the image\n" -" - 'after edit': after any user change on the image." -msgstr "" -"priklopne datoteke vsebujejo informacije o vseh vaših razvojnih korakih, ki " -"omogočajo brezhibno ponovno uvažanje slikovnih datotek.\n" -"\n" -"odvisno od izbranega načina bo priklopna datoteka napisana:\n" -" - 'nikoli'\n" -" - 'ob uvozu': takoj po uvozu slike\n" -" - 'po urejanju': po kakršnikoli uporabnikovi spremembi na sliki." - -#: ../build/bin/preferences_gen.h:6888 -msgid "store XMP tags in compressed format" -msgstr "shrani oznake XMP v stisnjenem formatu" - -#: ../build/bin/preferences_gen.h:6931 -msgid "" -"entries in XMP tags can get rather large and may exceed the available space " -"to store the history stack in output files.\n" -"this option allows XMP tags to be compressed and save space." -msgstr "" -"vnosi oznak XMP lahko zavzamejo kar veliko pomnilnika in lahko narastejo " -"prek prostega prostora za sklad zgodovine na izhodni datoteki.\n" -"ta možnost omogoča stiskanje oznak XMP in varčevanje s prostorom." - -#: ../build/bin/preferences_gen.h:6953 -msgid "look for updated XMP files on startup" -msgstr "preglej osvežene datoteke XMP ob zagonu" - -#: ../build/bin/preferences_gen.h:6967 -msgid "" -"check file modification times of all XMP files on startup to check if any " -"got updated in the meantime" -msgstr "" -"preveri spremenjene čase vseh datotek XMP ob zagonu, da bi ugotovili ali se " -"je katera od njih medtem spremenila" - -#: ../build/bin/preferences_gen.h:7007 -msgid "interface" -msgstr "vmesnik" - -#: ../build/bin/preferences_gen.h:7027 -msgid "load default shortcuts at startup" -msgstr "naloži privzete bližnjice ob zagonu" - -#: ../build/bin/preferences_gen.h:7041 -msgid "" -"load default shortcuts before user settings. switch off to prevent deleted " -"defaults returning" -msgstr "" -"naloži privzete bližnjice pred nastavitve uporabnika. izklopite, da " -"preprečite izbrisano povrnitev privzetih" - -#: ../build/bin/preferences_gen.h:7063 -msgid "scale slider step with min/max" -msgstr "prilagodi korak drsnika z min/max" - -#: ../build/bin/preferences_gen.h:7077 -msgid "vary slider step size with min/max range" -msgstr "spreminjaj velikost koraka drsnika z min/max obsega" - -#: ../build/bin/preferences_gen.h:7099 -msgid "sort built-in presets first" -msgstr "najprej razvrsti vgrajene prednastavitve" - -#: ../build/bin/preferences_gen.h:7113 -msgid "" -"whether to show built-in presets first before user's presets in presets menu." -msgstr "" -"ali naj se najprej prikažejo vgrajene prednastavitve pred uporabniškimi " -"prednastavitvami v meniju prednastavitev." - -#: ../build/bin/preferences_gen.h:7135 -msgid "mouse wheel scrolls modules side panel by default" -msgstr "" -"kolešček na miški privzeto omogoča drsenje po modulih na stranskem panelu" - -#: ../build/bin/preferences_gen.h:7149 -msgid "" -"when enabled, use mouse wheel to scroll modules side panel. use ctrl+alt to " -"use mouse wheel for data entry. when disabled, this behavior is reversed" -msgstr "" -"kadar je omogočeno lahko uporabljate kolešček na miški za drsenje po modulih " -"v stranskem panelu. Uporabite krmilka+alt za uporabo koleščka za vnos " -"podatkov. kadar je onemogočeno, tega obnašanja ni" - -#: ../build/bin/preferences_gen.h:7171 -msgid "always show panels' scrollbars" -msgstr "vedno prikazuj panelne drsnike" - -#: ../build/bin/preferences_gen.h:7185 -msgid "" -"defines whether the panel scrollbars should be always visible or activated " -"only depending on the content. (need a restart)" -msgstr "" -"določi ali so drsniki na panelih vedno vidni ali pa so aktivirani samo v " -"odvisnosti od vsebine. (potreben je ponovni zagon)" - -#: ../build/bin/preferences_gen.h:7207 -msgid "duration of the UI transitions in ms" -msgstr "trajanje pretvorb uporabniškega vmesnika v ms" - -#: ../build/bin/preferences_gen.h:7231 -msgid "" -"how long the transitions take (in ms) for expanding or collapsing modules " -"and other UI elements" -msgstr "" -"kako dolgo trajajo pretvorbe (v ms) za razširjanje in strnjevanje modulov in " -"ostalih elementov uporabniškega vmesnika" - -#: ../build/bin/preferences_gen.h:7253 -msgid "position of the scopes module" -msgstr "pozicija modula obsegov" - -#: ../build/bin/preferences_gen.h:7291 -msgid "position the scopes at the top-left or top-right of the screen" -msgstr "pozicija obsegov na vrhu levo ali na vrhu desno zaslona" - -#: ../build/bin/preferences_gen.h:7313 -msgid "method to use for getting the display profile" -msgstr "metoda za pridobitev profila zaslona" - -#: ../build/bin/preferences_gen.h:7356 -msgid "" -"this option allows to force a specific means of getting the current display " -"profile.\n" -"this is useful when one alternative gives wrong results" -msgstr "" -"ta možnost dovoljuje prisilno rabo posebnega načina pridobitve trenutnega " -"profila zaslona.\n" -"uporabno, kadar nek način daje napačen rezultat" - -#: ../build/bin/preferences_gen.h:7378 -msgid "order or exclude MIDI devices" -msgstr "razvrsti ali izvzemi naprave MIDI" - -#: ../build/bin/preferences_gen.h:7396 -msgid "" -"comma-separated list of device name fragments that if matched load MIDI " -"device at id given by location in list\n" -"or if preceded by '-' prevent matching devices from loading. add encoding " -"and number of knobs like 'BeatStep:63:16'" -msgstr "" -"seznam naprav in delov imen naprav ločen z vejicami, ki če ustrezajo, " -"naložijo napravo MIDI na določilnik dan z mestom v seznamu\n" -"ali če je pred njim '-' na seznamu preprečujejo ujemanje nalaganje naprav. " -"dodajte kodiranje in število gumbov, kot je 'Beatstep:63:16'" - -#. tags -#: ../build/bin/preferences_gen.h:7412 ../src/develop/lightroom.c:1516 -#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:333 -#: ../src/libs/image.c:558 ../src/libs/metadata_view.c:162 -msgid "tags" -msgstr "oznake" - -#: ../build/bin/preferences_gen.h:7432 -msgid "omit hierarchy in simple tag lists" -msgstr "opusti hierarhijo pri enostavnih seznamih oznak" - -#: ../build/bin/preferences_gen.h:7446 -msgid "" -"when creating XMP file the hierarchical tags are also added as a simple " -"list\n" -"of non-hierarchical ones to make them visible to some other programs.\n" -"when this option is checked darktable will only include their last part\n" -"and ignore the rest. so 'foo|bar|baz' will only add 'baz'." -msgstr "" -"ko se ustvari datoteka XMP, so sicer hierarhično urejene oznake prav tako " -"dodane kot enostavni seznam\n" -"nehierarhičnih oznak, da so lahko vidne tudi nekaterim drugim programom.\n" -"kadar je ta opcija odkljukana, bo darktable dodal samo zadnji del\n" -"in opustil preostali del. npr. za 'foo|bar|baz' bo dodal samo 'baz'." - -#: ../build/bin/preferences_gen.h:7456 -msgid "shortcuts with multiple instances" -msgstr "tipkovne bližnjice pri več pojavkih" - -#: ../build/bin/preferences_gen.h:7461 -msgid "" -"where multiple module instances are present, these preferences control rules " -"that are applied (in order) to decide which module instance shortcuts will " -"be applied to" -msgstr "" -"kjer je prisotnih več pojavkov modulov, ta pravila določajo nastavitve, kako " -"določiti (vrstni red) katere bližnjice tipkovnice bodo uporabljene za kateri " -"modul" - -#: ../build/bin/preferences_gen.h:7477 -msgid "prefer focused instance" -msgstr "dajaj prednost fokusiranemu pojavku" - -#: ../build/bin/preferences_gen.h:7491 -msgid "" -"if an instance of the module has focus, apply shortcut to that instance\n" -"note: blending shortcuts always apply to the focused instance" -msgstr "" -"če ima pojavek modula fokus, uporabite bližnjico na ta pojavek\n" -"opomba: mešanje bližnjic vedno se vedno nanaša za fokusiran pojavek" - -#: ../build/bin/preferences_gen.h:7513 -msgid "prefer expanded instances" -msgstr "dajaj prednost razširjenim pojavkom" - -#: ../build/bin/preferences_gen.h:7527 -msgid "if instances of the module are expanded, ignore collapsed instances" -msgstr "če se pojavki modula razširijo, prezrite strnjene pojavke" - -#: ../build/bin/preferences_gen.h:7549 -msgid "prefer enabled instances" -msgstr "dajaj prednost omogočenim pojavkom" - -#: ../build/bin/preferences_gen.h:7563 -msgid "" -"after applying the above rule, if instances of the module are active, ignore " -"inactive instances" -msgstr "" -"po uporabi zgornjega pravila, če so pojavki modula aktivni, prezrite " -"neaktivni pojavke" - -#: ../build/bin/preferences_gen.h:7585 -msgid "prefer unmasked instances" -msgstr "dajaj prednost nemaskiranim pojavkom" - -#: ../build/bin/preferences_gen.h:7599 -msgid "" -"after applying the above rules, if instances of the module are unmasked, " -"ignore masked instances" -msgstr "" -"po uporabi zgornjih pravil, če so pojavki modula nemaskirani, prezrite " -"zamaskirane pojavke" - -#: ../build/bin/preferences_gen.h:7621 -msgid "selection order" -msgstr "razvrstitev izbire" - -#: ../build/bin/preferences_gen.h:7659 -msgid "" -"after applying the above rules, apply the shortcut based on its position in " -"the pixelpipe" -msgstr "" -"po uporabi zgornjih pravil uporabite bližnjico glede na njen položaj v " -"pixelpipe-u" - -#: ../build/bin/preferences_gen.h:7681 -msgid "allow visual assignment to specific instances" -msgstr "dovoli vizualno dodeljevanje za specifične pojavke" - -#: ../build/bin/preferences_gen.h:7695 -msgid "" -"when multiple instances are present on an image this allows shortcuts to be " -"visually assigned to those specific instances\n" -"otherwise shortcuts will always be assigned to the preferred instance" -msgstr "" -"ko je na sliki prisotnih več pojavkov, to omogoča bližnjice, ki so vizualno " -"dodeljene tistim posebnim pojavkom\n" -"sicer bodo bližnjice vedno dodeljene prednostnemu pojavku" - -#: ../build/bin/preferences_gen.h:7705 -msgid "map / geolocalization view" -msgstr "pogled zemljevida / geolociranja" - -#: ../build/bin/preferences_gen.h:7725 -msgid "pretty print the image location" -msgstr "prijazno tiskaj lokacijo slike" - -#: ../build/bin/preferences_gen.h:7739 -msgid "" -"show a more readable representation of the location in the image information " -"module" -msgstr "prikaži bolj berljivo obliko lokacije v modulu podatkov o sliki" - -#: ../build/bin/preferences_gen.h:7749 -msgid "slideshow view" -msgstr "pogled dia projekcije" - -#: ../build/bin/preferences_gen.h:7769 -msgid "waiting time between each picture in slideshow" -msgstr "čas prikaza posamezne slike v projekciji" - -#: ../build/bin/preferences_gen.h:7831 -msgid "session options" -msgstr "možnosti seje" - -#: ../build/bin/preferences_gen.h:7851 -msgid "base directory naming pattern" -msgstr "vzorec poimenovanja osnovnih map" - -#: ../build/bin/preferences_gen.h:7869 ../build/bin/preferences_gen.h:7909 -msgid "part of full import path for an import session" -msgstr "del polne poti za uvažanje" - -#: ../build/bin/preferences_gen.h:7891 -msgid "sub directory naming pattern" -msgstr "vzorec poimenovanja podmap" - -#: ../build/bin/preferences_gen.h:7931 -msgid "keep original filename" -msgstr "obdrži izvirno ime datoteke" - -#: ../build/bin/preferences_gen.h:7945 -msgid "" -"keep original filename instead of a pattern while importing from camera or " -"card" -msgstr "" -"obdržite originalno ime datoteke namesto vzorca ob uvozu iz fotoaparata ali " -"kartice" - -#: ../build/bin/preferences_gen.h:7967 -msgid "file naming pattern" -msgstr "vzorec poimenovanja datotek" - -#: ../build/bin/preferences_gen.h:7985 -msgid "file naming pattern used for a import session" -msgstr "vzorec poimenovanja datotek za uvažanje" - -#: ../build/bin/preferences_gen.h:8022 -msgid "do not set the 'uncategorized' entry for tags" -msgstr "ne nastavi vnosa 'nekategorizirano' za oznake" - -#: ../build/bin/preferences_gen.h:8036 -msgid "" -"do not set the 'uncategorized' entry for tags which do not have children" -msgstr "ne nastavite vnosa 'nekategorizirano' za oznake, ki nimajo otrok" - -#: ../build/bin/preferences_gen.h:8058 -msgid "tags case sensitivity" -msgstr "oznake občutljivost na velike in male črke" - -#: ../build/bin/preferences_gen.h:8096 -msgid "" -"tags case sensitivity. without the Sqlite ICU extension, insensitivity works " -"only for the 26 latin letters" -msgstr "" -"velike/male črke v oznakah. brez razširitve Sqlite ICU neobčutljivost deluje " -"samo za 26 latiničnih črk" - -#: ../build/bin/preferences_gen.h:8118 ../build/bin/preferences_gen.h:8358 -msgid "number of collections to be stored" -msgstr "število grup, ki naj bodo shranjene" - -#: ../build/bin/preferences_gen.h:8142 ../build/bin/preferences_gen.h:8382 -msgid "the number of recent collections to store and show in this list" -msgstr "število zadnjih zbirk za shranjevanje in njihov prikaz v seznamih" - -#: ../build/bin/preferences_gen.h:8164 -msgid "hide the history button and show a specific module instead" -msgstr "skrij gumb zgodovine in namesto tega prikazu določen modul" - -#: ../build/bin/preferences_gen.h:8178 -msgid "hide the history button and show the recent collections module instead" -msgstr "skrij gumb zgodovine in namesto tega prikazu zadnje zbirke" - -#: ../build/bin/preferences_gen.h:8200 -msgid "number of folder levels to show in lists" -msgstr "število ravni map prikazanih v seznamih" - -#: ../build/bin/preferences_gen.h:8224 -msgid "" -"the number of folder levels to show in film roll names, starting from the " -"right" -msgstr "število ravni map prikazanih v seznamu map s filmi, začeto z desne" - -#: ../build/bin/preferences_gen.h:8246 -msgid "sort film rolls by" -msgstr "razvrsti zvitke filma po" - -#: ../build/bin/preferences_gen.h:8284 -msgid "sets the collections-list order for film rolls" -msgstr "nastavi vrstni red zbirk za zvitke filmov" - -#: ../build/bin/preferences_gen.h:8306 -msgid "sort collection descending" -msgstr "razvrsti zbirko padajoče" - -#: ../build/bin/preferences_gen.h:8320 -msgid "" -"sort the following collections in descending order: 'film roll' by folder, " -"'folder', 'times' (e.g. 'capture date')" -msgstr "" -"razvrsti naslednje zbirke v padajočem redu: 'film po zvitku', 'mapa',' " -"čas' (npr. datum posnetka)" - -#: ../build/bin/preferences_gen.h:8404 -msgid "prefer a history button in the collections module" -msgstr "raje prikazuj gumb zgodovine v modulu zbirk" - -#: ../build/bin/preferences_gen.h:8418 -msgid "" -"hide this module and instead access collections history with a button in the " -"collections module" -msgstr "" -"skrivaj ta modul in namesto tega dostopaj do zbirk zgodovine z gumbom v " -"modulu zbirk" - -#: ../build/bin/preferences_gen.h:8472 -msgid "suggested tags level of confidence" -msgstr "nivo zaupanja predlaganih oznak" - -#: ../build/bin/preferences_gen.h:8497 -#, no-c-format -msgid "" -"level of confidence to include the tag in the suggestions list, 0: all " -"associated tags, 99: 99% matching associated tags, 100: no matching tag to " -"show only recent tags (faster)" -msgstr "" -"raven zaupanja, da je oznaka vključena na seznam predlogov, 0: vse " -"asociirane oznake, 99: 99% ujemanje povezanih oznak, 100: brez ujemajoče se " -"oznake pokaži samo nedavne oznake (hitreje)" - -#: ../build/bin/preferences_gen.h:8519 -msgid "number of recently attached tags" -msgstr "število nedavno priključenih oznak" - -#: ../build/bin/preferences_gen.h:8543 -msgid "" -"number of recently attached tags which are included in the suggestions list. " -"the value `-1' disables the recent list" -msgstr "" -"število nedavno priključenih oznak, ki so vključene v seznam predlogov. " -"vrednost '-1' onemogoči seznam nedavnih" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:130 -#: ../build/lib/darktable/plugins/introspection_ashift.c:279 -msgid "lens shift (vertical)" -msgstr "pomik lečja (vertikalno)" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:136 -#: ../build/lib/darktable/plugins/introspection_ashift.c:283 -msgid "lens shift (horizontal)" -msgstr "pomik lečja (horizontalno)" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:142 -#: ../build/lib/darktable/plugins/introspection_ashift.c:287 -msgid "shear" -msgstr "prireži" - -#. focal length -#: ../build/lib/darktable/plugins/introspection_ashift.c:148 -#: ../build/lib/darktable/plugins/introspection_ashift.c:291 -#: ../src/common/collection.c:714 ../src/gui/preferences.c:844 -#: ../src/gui/presets.c:718 ../src/libs/camera.c:550 -#: ../src/libs/metadata_view.c:143 -msgid "focal length" -msgstr "goriščna razdalja" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:154 -#: ../build/lib/darktable/plugins/introspection_ashift.c:295 -msgid "crop factor" -msgstr "faktor obreza" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:160 -#: ../build/lib/darktable/plugins/introspection_ashift.c:299 -msgid "lens dependence" -msgstr "odvisnost objektiva" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:166 -#: ../build/lib/darktable/plugins/introspection_ashift.c:303 -msgid "aspect adjust" -msgstr "prilagoditev razmerja stranic" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:172 -#: ../build/lib/darktable/plugins/introspection_ashift.c:307 -#: ../src/iop/lens.cc:3784 -msgid "lens model" -msgstr "model objektiva" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:178 -#: ../build/lib/darktable/plugins/introspection_ashift.c:311 -#: ../build/lib/darktable/plugins/introspection_clipping.c:244 -#: ../build/lib/darktable/plugins/introspection_clipping.c:371 -msgid "automatic cropping" -msgstr "avtomatično obrezovanje" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:361 -#: ../build/lib/darktable/plugins/introspection_highlights.c:311 -msgid "generic" -msgstr "splošni" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:362 -msgid "specific" -msgstr "posebni" - -#. DEVELOP_MASK_DISABLED -#: ../build/lib/darktable/plugins/introspection_ashift.c:366 -#: ../build/lib/darktable/plugins/introspection_colorin.c:300 -#: ../build/lib/darktable/plugins/introspection_highlights.c:310 -#: ../build/lib/darktable/plugins/introspection_vignette.c:264 -#: ../src/develop/blend_gui.c:153 ../src/develop/blend_gui.c:182 -#: ../src/develop/blend_gui.c:3410 ../src/gui/accelerators.c:130 -#: ../src/gui/accelerators.c:140 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/imageio/format/j2k.c:669 -#: ../src/libs/live_view.c:361 ../src/libs/masks.c:113 -msgid "off" -msgstr "izklopljeno" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:367 -msgid "largest area" -msgstr "največja površina" - -#: ../build/lib/darktable/plugins/introspection_ashift.c:368 -msgid "original format" -msgstr "izvorni format" - -#: ../build/lib/darktable/plugins/introspection_basecurve.c:134 -#: ../build/lib/darktable/plugins/introspection_basecurve.c:231 -msgid "fusion" -msgstr "zlivanje" - -#: ../build/lib/darktable/plugins/introspection_basecurve.c:140 -#: ../build/lib/darktable/plugins/introspection_basecurve.c:235 -msgid "exposure shift" -msgstr "pomik osvetlitve" - -#: ../build/lib/darktable/plugins/introspection_basecurve.c:146 -#: ../build/lib/darktable/plugins/introspection_basecurve.c:239 -#: ../src/libs/metadata_view.c:142 -msgid "exposure bias" -msgstr "pristranskost osvetlitve" - -#: ../build/lib/darktable/plugins/introspection_basecurve.c:152 -#: ../build/lib/darktable/plugins/introspection_basecurve.c:243 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:122 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:215 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:140 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:227 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:57 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:122 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:153 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:244 -msgid "preserve colors" -msgstr "ohrani barve" - -#: ../build/lib/darktable/plugins/introspection_basecurve.c:262 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:249 -#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:153 -#: ../build/lib/darktable/plugins/introspection_lens.cc:444 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:251 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:153 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:270 -#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2193 -#: ../src/iop/channelmixerrgb.c:4667 ../src/iop/clipping.c:1900 -#: ../src/iop/clipping.c:2093 ../src/iop/clipping.c:2108 -#: ../src/iop/retouch.c:463 ../src/libs/collect.c:1907 -#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1023 -#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:132 -#: ../src/libs/live_view.c:311 ../src/libs/print_settings.c:2835 -msgid "none" -msgstr "nobeno" - -#: ../build/lib/darktable/plugins/introspection_basecurve.c:263 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:250 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:226 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:244 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:262 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:280 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:461 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:473 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:485 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:497 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:252 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:154 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:271 -#: ../src/develop/blend_gui.c:2363 ../src/develop/blend_gui.c:2397 -msgid "luminance" -msgstr "svetlost" - -#: ../build/lib/darktable/plugins/introspection_basecurve.c:264 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:251 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:550 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:253 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:155 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:272 -msgid "max RGB" -msgstr "max RGB" - -#: ../build/lib/darktable/plugins/introspection_basecurve.c:265 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:252 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:254 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:156 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:273 -msgid "average RGB" -msgstr "povprečje RGB" - -#: ../build/lib/darktable/plugins/introspection_basecurve.c:266 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:253 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:255 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:157 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:274 -msgid "sum RGB" -msgstr "vsota RGB" - -#: ../build/lib/darktable/plugins/introspection_basecurve.c:267 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:254 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:256 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:158 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:275 -msgid "norm RGB" -msgstr "norma RGB" - -#: ../build/lib/darktable/plugins/introspection_basecurve.c:268 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:255 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:257 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:159 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:276 -msgid "basic power" -msgstr "osnovna moč" - -#: ../build/lib/darktable/plugins/introspection_basicadj.c:92 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:195 -#: ../build/lib/darktable/plugins/introspection_exposure.c:67 -#: ../build/lib/darktable/plugins/introspection_exposure.c:138 -msgid "black level correction" -msgstr "popravek nivoja črnine" - -#: ../build/lib/darktable/plugins/introspection_basicadj.c:104 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:203 -msgid "highlight compression" -msgstr "stiskanje bleščav" - -#: ../build/lib/darktable/plugins/introspection_basicadj.c:128 -#: ../build/lib/darktable/plugins/introspection_basicadj.c:219 -msgid "middle gray" -msgstr "srednja siva" - -#: ../build/lib/darktable/plugins/introspection_bilat.c:78 -#: ../build/lib/darktable/plugins/introspection_bilat.c:137 -msgid "midtone range" -msgstr "obseg srednjih tonov" - -#: ../build/lib/darktable/plugins/introspection_bilat.c:151 -msgid "bilateral grid" -msgstr "dvojna mreža" - -#: ../build/lib/darktable/plugins/introspection_bilat.c:152 -msgid "local laplacian filter" -msgstr "lokalni Laplacov filter" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:83 -#: ../build/lib/darktable/plugins/introspection_blurs.c:174 -#: ../build/lib/darktable/plugins/introspection_retouch.c:255 -#: ../build/lib/darktable/plugins/introspection_retouch.c:406 -msgid "blur type" -msgstr "tip zamegljevanja" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:89 -#: ../build/lib/darktable/plugins/introspection_blurs.c:178 -#: ../build/lib/darktable/plugins/introspection_retouch.c:261 -#: ../build/lib/darktable/plugins/introspection_retouch.c:410 -msgid "blur radius" -msgstr "radij zamegljevanja" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:95 -#: ../build/lib/darktable/plugins/introspection_blurs.c:182 -msgid "diaphragm blades" -msgstr "diafragemska rezila" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:101 -#: ../build/lib/darktable/plugins/introspection_blurs.c:186 -msgid "concavity" -msgstr "konkavnost" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:107 -#: ../build/lib/darktable/plugins/introspection_blurs.c:190 -msgid "linearity" -msgstr "linearnost" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:113 -#: ../build/lib/darktable/plugins/introspection_blurs.c:194 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:75 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:144 -#: ../build/lib/darktable/plugins/introspection_watermark.c:136 -#: ../build/lib/darktable/plugins/introspection_watermark.c:265 -#: ../src/iop/ashift.c:6112 ../src/libs/masks.c:108 -msgid "rotation" -msgstr "sukanje" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:119 -#: ../build/lib/darktable/plugins/introspection_blurs.c:198 -msgid "direction" -msgstr "smer" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:125 -#: ../build/lib/darktable/plugins/introspection_blurs.c:202 -#: ../src/libs/masks.c:109 -msgid "curvature" -msgstr "ukrivljenost" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:131 -#: ../build/lib/darktable/plugins/introspection_blurs.c:206 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:81 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:148 -#: ../src/iop/colorbalancergb.c:1968 -msgid "offset" -msgstr "odmik" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:220 -#: ../src/common/collection.c:712 ../src/gui/preferences.c:828 -#: ../src/gui/presets.c:660 ../src/libs/metadata_view.c:139 -msgid "lens" -msgstr "objektiv" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:221 -msgid "motion" -msgstr "gibanje" - -#: ../build/lib/darktable/plugins/introspection_blurs.c:222 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:567 -#: ../build/lib/darktable/plugins/introspection_lowpass.c:189 -#: ../build/lib/darktable/plugins/introspection_retouch.c:452 -#: ../build/lib/darktable/plugins/introspection_shadhi.c:267 -msgid "gaussian" -msgstr "gaussov" - -#: ../build/lib/darktable/plugins/introspection_borders.c:112 -#: ../build/lib/darktable/plugins/introspection_borders.c:253 -#: ../src/common/collection.c:722 ../src/libs/filtering.c:59 -msgid "aspect ratio" -msgstr "razmerje proporcev" - -#. // portrait / landscape -#: ../build/lib/darktable/plugins/introspection_borders.c:130 -#: ../build/lib/darktable/plugins/introspection_borders.c:265 -#: ../src/iop/flip.c:75 ../src/libs/print_settings.c:2517 -msgid "orientation" -msgstr "orientacija" - -#: ../build/lib/darktable/plugins/introspection_borders.c:136 -#: ../build/lib/darktable/plugins/introspection_borders.c:269 -msgid "border size" -msgstr "debelina roba" - -#: ../build/lib/darktable/plugins/introspection_borders.c:142 -#: ../build/lib/darktable/plugins/introspection_borders.c:273 -msgid "horizontal offset" -msgstr "vodoravni odmik" - -#: ../build/lib/darktable/plugins/introspection_borders.c:160 -#: ../build/lib/darktable/plugins/introspection_borders.c:285 -msgid "vertical offset" -msgstr "vertikalni odmik" - -#: ../build/lib/darktable/plugins/introspection_borders.c:178 -#: ../build/lib/darktable/plugins/introspection_borders.c:297 -msgid "frame line size" -msgstr "debelina črte roba" - -#: ../build/lib/darktable/plugins/introspection_borders.c:184 -#: ../build/lib/darktable/plugins/introspection_borders.c:301 -msgid "frame line offset" -msgstr "zamik črte okvirja" - -#: ../build/lib/darktable/plugins/introspection_borders.c:327 -#: ../src/gui/preferences.c:849 ../src/iop/ashift.c:6291 -#: ../src/iop/basicadj.c:632 ../src/iop/flip.c:472 ../src/iop/flip.c:474 -#: ../src/iop/levels.c:641 ../src/iop/rgblevels.c:1050 -msgid "auto" -msgstr "avto" - -#: ../build/lib/darktable/plugins/introspection_borders.c:328 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:309 -#: ../src/libs/filters/ratio.c:122 ../src/libs/print_settings.c:2519 -msgid "portrait" -msgstr "pokončno" - -#: ../build/lib/darktable/plugins/introspection_borders.c:329 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:305 -#: ../src/libs/filters/ratio.c:124 ../src/libs/print_settings.c:2519 -msgid "landscape" -msgstr "ležeče" - -#: ../build/lib/darktable/plugins/introspection_cacorrect.c:42 -#: ../build/lib/darktable/plugins/introspection_cacorrect.c:91 -msgid "avoid colorshift" -msgstr "izogibaj se barvnega pomika" - -#: ../build/lib/darktable/plugins/introspection_cacorrect.c:48 -#: ../build/lib/darktable/plugins/introspection_cacorrect.c:95 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:117 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:244 -#: ../build/lib/darktable/plugins/introspection_highlights.c:155 -#: ../build/lib/darktable/plugins/introspection_highlights.c:252 -msgid "iterations" -msgstr "iteracij" - -#: ../build/lib/darktable/plugins/introspection_cacorrect.c:109 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:205 -msgid "once" -msgstr "enkrat" - -#: ../build/lib/darktable/plugins/introspection_cacorrect.c:110 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:206 -msgid "twice" -msgstr "dvakrat" - -#: ../build/lib/darktable/plugins/introspection_cacorrect.c:111 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:207 -msgid "three times" -msgstr "trikrat" - -#: ../build/lib/darktable/plugins/introspection_cacorrect.c:112 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:208 -msgid "four times" -msgstr "štirikrat" - -#: ../build/lib/darktable/plugins/introspection_cacorrect.c:113 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:209 -msgid "five times" -msgstr "petkrat" - -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:61 -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:128 -msgid "guide" -msgstr "vodilo" - -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:67 -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:132 -#: ../src/iop/atrous.c:1522 ../src/iop/bilateral.cc:350 ../src/iop/clahe.c:335 -#: ../src/iop/dither.c:760 ../src/iop/lowpass.c:584 ../src/iop/shadhi.c:675 -#: ../src/iop/sharpen.c:440 -msgid "radius" -msgstr "polmer" - -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:73 -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:136 -#: ../build/lib/darktable/plugins/introspection_highlights.c:137 -#: ../build/lib/darktable/plugins/introspection_highlights.c:240 -#: ../src/iop/bloom.c:376 ../src/iop/denoiseprofile.c:3818 -#: ../src/iop/grain.c:584 ../src/iop/hazeremoval.c:201 -#: ../src/iop/hotpixels.c:388 ../src/iop/nlmeans.c:460 ../src/iop/velvia.c:279 -msgid "strength" -msgstr "moč" - -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:79 -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:140 -msgid "correction mode" -msgstr "način popravkov" - -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:85 -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:144 -msgid "very large chromatic aberration" -msgstr "zelo velik barvni odklon" - -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:158 -#: ../src/common/collection.c:1507 ../src/common/color_vocabulary.c:232 -#: ../src/common/colorlabels.c:334 ../src/develop/blend_gui.c:2330 -#: ../src/develop/blend_gui.c:2378 ../src/develop/lightroom.c:834 -#: ../src/gui/gtk.c:3137 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:354 -#: ../src/iop/channelmixer.c:618 ../src/iop/channelmixer.c:628 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/colorzones.c:2263 -#: ../src/iop/temperature.c:1935 ../src/iop/temperature.c:2129 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:260 -#: ../src/libs/histogram.c:2397 -msgid "red" -msgstr "rdeča" - -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:159 -#: ../src/common/collection.c:1511 ../src/common/color_vocabulary.c:277 -#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2336 -#: ../src/develop/blend_gui.c:2384 ../src/develop/lightroom.c:838 -#: ../src/gui/gtk.c:3138 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:359 -#: ../src/iop/channelmixer.c:619 ../src/iop/channelmixer.c:634 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/colorzones.c:2266 -#: ../src/iop/temperature.c:1919 ../src/iop/temperature.c:1937 -#: ../src/iop/temperature.c:2130 ../src/libs/collect.c:1791 -#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2389 -msgid "green" -msgstr "zelena" - -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:160 -#: ../src/common/collection.c:1513 ../src/common/color_vocabulary.c:324 -#: ../src/common/colorlabels.c:337 ../src/develop/blend_gui.c:2342 -#: ../src/develop/blend_gui.c:2390 ../src/develop/lightroom.c:840 -#: ../src/gui/gtk.c:3139 ../src/iop/bilateral.cc:364 -#: ../src/iop/channelmixer.c:620 ../src/iop/channelmixer.c:640 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/colorzones.c:2268 -#: ../src/iop/temperature.c:1939 ../src/iop/temperature.c:2131 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:263 -#: ../src/libs/histogram.c:2381 -msgid "blue" -msgstr "modra" - -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:164 -msgid "standard" -msgstr "standard" - -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:165 -msgid "darken only" -msgstr "samo potemnjeno" - -#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:166 -msgid "brighten only" -msgstr "samo posvetljeno" - -#: ../build/lib/darktable/plugins/introspection_censorize.c:51 -#: ../build/lib/darktable/plugins/introspection_censorize.c:112 -msgid "input blur radius" -msgstr "vhodni radij zamegljevanja" - -#: ../build/lib/darktable/plugins/introspection_censorize.c:57 -#: ../build/lib/darktable/plugins/introspection_censorize.c:116 -msgid "pixellation radius" -msgstr "radij pikselacije" - -#: ../build/lib/darktable/plugins/introspection_censorize.c:63 -#: ../build/lib/darktable/plugins/introspection_censorize.c:120 -msgid "output blur radius" -msgstr "izhodni radij zamegljevanja" - -#: ../build/lib/darktable/plugins/introspection_censorize.c:69 -#: ../build/lib/darktable/plugins/introspection_censorize.c:124 -#: ../build/lib/darktable/plugins/introspection_highlights.c:149 -#: ../build/lib/darktable/plugins/introspection_highlights.c:248 -msgid "noise level" -msgstr "raven šuma" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:252 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:258 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:264 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:270 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:276 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:282 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:433 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:437 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:441 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:445 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:449 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:453 -msgid "normalize channels" -msgstr "normaliziraj kanale" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:294 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:461 -msgid "F source" -msgstr "vir F" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:300 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:465 -msgid "LED source" -msgstr "vir LED" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:330 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:485 -msgid "gamut compression" -msgstr "stiskanje barvnega razpona" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:336 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:489 -msgid "clip negative RGB from gamut" -msgstr "obreži negativni RGB iz barvnega razpona" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:342 -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:493 -msgid "saturation algorithm" -msgstr "algoritem nasičevanja" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:507 -msgid "same as pipeline (D50)" -msgstr "enako kot cevovod (D50)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:508 -msgid "A (incandescent)" -msgstr "A (žarnica)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:509 -msgid "D (daylight)" -msgstr "D (dnevna svetloba)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:510 -msgid "E (equi-energy)" -msgstr "E (enakovredna energija)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:511 -msgid "F (fluorescent)" -msgstr "F (fluorescentna)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:512 -msgid "LED (LED light)" -msgstr "LED (svetloba LED)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:513 -msgid "Planckian (black body)" -msgstr "Planckova (črno telo)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:514 -#: ../src/common/iop_order.c:59 -msgid "custom" -msgstr "po meri" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:515 -msgid "(AI) detect from image surfaces..." -msgstr "(AI) razberi iz površin slike..." - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:516 -msgid "(AI) detect from image edges..." -msgstr "(AI) razberi iz robov slike..." - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:517 -msgid "as shot in camera" -msgstr "kot posnetek kamere" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:522 -msgid "F1 (Daylight 6430 K) – medium CRI" -msgstr "F1 (Dnevna svetloba 6430 K) – srednja CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:523 -msgid "F2 (Cool White 4230 K) – medium CRI" -msgstr "F2 (Hladno bela 4230 K) – srednji CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:524 -msgid "F3 (White 3450 K) – medium CRI" -msgstr "F3 (Bela 3450 K) – srednja CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:525 -msgid "F4 (Warm White 2940 K) – medium CRI" -msgstr "F4 (Topla bela 2940 K) – srednja CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:526 -msgid "F5 (Daylight 6350 K) – medium CRI" -msgstr "F5 (Dnevna svetloba 6350 K) – srednja CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:527 -msgid "F6 (Lite White 4150 K) – medium CRI" -msgstr "F6 (Nežno bela 4150 K) – srednja CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:528 -msgid "F7 (D65 simulator 6500 K) – high CRI" -msgstr "F7 (D65 simulacija 6500 K) – visok CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:529 -msgid "F8 (D50 simulator 5000 K) – high CRI" -msgstr "F8 (D50 simulacija 5000 K) – visok CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:530 -msgid "F9 (Cool White Deluxe 4150 K) – high CRI" -msgstr "F9 (Hladna bela Deluxe 4150 K) – visok high CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:531 -msgid "F10 (Tuned RGB 5000 K) – low CRI" -msgstr "F10 (Uglašena RGB 5000 K) – nizek CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:532 -msgid "F11 (Tuned RGB 4000 K) – low CRI" -msgstr "F11 (Uglašena RGB 4000 K) – nizek CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:533 -msgid "F12 (Tuned RGB 3000 K) – low CRI" -msgstr "F12 (Uglašena RGB 3000 K) – nizek CRI" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:538 -msgid "B1 (Blue 2733 K)" -msgstr "B1 (Modra 2733 K)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:539 -msgid "B2 (Blue 2998 K)" -msgstr "B2 (Modra 2998 K)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:540 -msgid "B3 (Blue 4103 K)" -msgstr "B3 (Modra 4103 K)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:541 -msgid "B4 (Blue 5109 K)" -msgstr "B4 (Modra 5109 K)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:542 -msgid "B5 (Blue 6598 K)" -msgstr "B5 (Modra 6598 K)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:543 -msgid "BH1 (Blue-Red hybrid 2851 K)" -msgstr "BH1 (Modro-rdeča hibridna 2851 K)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:544 -msgid "RGB1 (RGB 2840 K)" -msgstr "RGB1 (RGB 2840 K)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:545 -msgid "V1 (Violet 2724 K)" -msgstr "V1 (Vijolična 2724 K)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:546 -msgid "V2 (Violet 4070 K)" -msgstr "V2 (Vijolična 4070 K)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:551 -msgid "linear Bradford (ICC v4)" -msgstr "linearni Bradford (ICC v4)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:552 -msgid "CAT16 (CIECAM16)" -msgstr "CAT16 (CIECAM16)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:553 -msgid "non-linear Bradford" -msgstr "nelinearni Bradford" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:554 -msgid "XYZ" -msgstr "XYZ" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:555 -msgid "none (bypass)" -msgstr "nič (obvod)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:560 -msgid "version 1 (2020)" -msgstr "verzija 1 (2020)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:561 -msgid "version 2 (2021)" -msgstr "verzija 2 (2021)" - -#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:562 -msgid "version 3 (Apr 2021)" -msgstr "verzija 3 (Apr 2021)" - -#: ../build/lib/darktable/plugins/introspection_clipping.c:142 -#: ../build/lib/darktable/plugins/introspection_clipping.c:303 -#: ../build/lib/darktable/plugins/introspection_crop.c:61 -#: ../build/lib/darktable/plugins/introspection_crop.c:134 -#: ../src/gui/gtk.c:1141 ../src/iop/atrous.c:1518 -msgid "left" -msgstr "levo" - -#: ../build/lib/darktable/plugins/introspection_clipping.c:148 -#: ../build/lib/darktable/plugins/introspection_clipping.c:307 -#: ../build/lib/darktable/plugins/introspection_crop.c:67 -#: ../build/lib/darktable/plugins/introspection_crop.c:138 -#: ../src/gui/accelerators.c:113 ../src/gui/gtk.c:1155 -msgid "top" -msgstr "vrh" - -#: ../build/lib/darktable/plugins/introspection_clipping.c:154 -#: ../build/lib/darktable/plugins/introspection_clipping.c:311 -#: ../build/lib/darktable/plugins/introspection_crop.c:73 -#: ../build/lib/darktable/plugins/introspection_crop.c:142 -#: ../src/gui/gtk.c:1148 ../src/iop/atrous.c:1517 -msgid "right" -msgstr "desno" - -#: ../build/lib/darktable/plugins/introspection_clipping.c:160 -#: ../build/lib/darktable/plugins/introspection_clipping.c:315 -#: ../build/lib/darktable/plugins/introspection_crop.c:79 -#: ../build/lib/darktable/plugins/introspection_crop.c:146 -#: ../src/gui/accelerators.c:114 ../src/gui/gtk.c:1162 -msgid "bottom" -msgstr "dno" - -#: ../build/lib/darktable/plugins/introspection_colorbalance.c:114 -#: ../build/lib/darktable/plugins/introspection_colorbalance.c:203 -msgid "input saturation" -msgstr "vhodna nasičenost" - -#: ../build/lib/darktable/plugins/introspection_colorbalance.c:126 -#: ../build/lib/darktable/plugins/introspection_colorbalance.c:211 -msgid "contrast fulcrum" -msgstr "žarišče kontrasta" - -#: ../build/lib/darktable/plugins/introspection_colorbalance.c:132 -#: ../build/lib/darktable/plugins/introspection_colorbalance.c:215 -msgid "output saturation" -msgstr "izhodna nasičenost" - -#: ../build/lib/darktable/plugins/introspection_colorbalance.c:229 -msgid "lift, gamma, gain (ProPhoto RGB)" -msgstr "dvig, gama, ojačenje (ProPhotoRGB)" - -#: ../build/lib/darktable/plugins/introspection_colorbalance.c:230 -msgid "slope, offset, power (ProPhoto RGB)" -msgstr "strmina, odmik, moč (ProPhotoRGB)" - -#: ../build/lib/darktable/plugins/introspection_colorbalance.c:231 -msgid "lift, gamma, gain (sRGB)" -msgstr "dvig, gama, ojačenje (sRGB)" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:232 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:250 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:268 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:286 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:465 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:477 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:489 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:501 -#: ../src/develop/blend_gui.c:2356 ../src/develop/blend_gui.c:2404 -#: ../src/iop/atrous.c:1667 ../src/iop/channelmixerrgb.c:4457 -#: ../src/iop/channelmixerrgb.c:4573 ../src/iop/colorbalancergb.c:1895 -#: ../src/iop/colorzones.c:2402 ../src/iop/nlmeans.c:468 -msgid "chroma" -msgstr "kroma" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:238 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:256 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:274 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:292 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:469 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:481 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:493 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:505 -#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:155 -#: ../build/lib/darktable/plugins/introspection_colorzones.c:257 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:87 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:152 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:61 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:73 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:134 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:142 -#: ../src/develop/blend_gui.c:2315 ../src/develop/blend_gui.c:2349 -#: ../src/develop/blend_gui.c:2411 ../src/iop/channelmixer.c:615 -#: ../src/iop/channelmixerrgb.c:4450 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/colorbalance.c:2042 ../src/iop/colorize.c:330 -#: ../src/iop/colorreconstruction.c:1240 ../src/iop/colorzones.c:2403 -msgid "hue" -msgstr "odtenek" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:298 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:509 -msgid "shadows fall-off" -msgstr "odpad senc" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:304 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:513 -msgid "white fulcrum" -msgstr "bela točka opore" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:310 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:517 -msgid "highlights fall-off" -msgstr "odpad bleščav" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:316 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:358 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:388 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:521 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:549 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:569 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:156 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:297 -#: ../src/iop/bilat.c:469 ../src/iop/colorbalance.c:2099 -#: ../src/iop/negadoctor.c:915 ../src/iop/shadhi.c:671 -#: ../src/iop/splittoning.c:507 -msgid "shadows" -msgstr "sence" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:322 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:346 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:376 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:525 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:541 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:561 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:180 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:313 -#: ../src/iop/bilat.c:463 ../src/iop/colorbalance.c:2101 -#: ../src/iop/monochrome.c:561 ../src/iop/shadhi.c:672 -#: ../src/iop/splittoning.c:514 -msgid "highlights" -msgstr "bleščave" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:328 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:529 -msgid "global chroma" -msgstr "globalna tabela tonov" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:334 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:352 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:382 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:533 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:545 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:565 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:168 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:305 -#: ../src/iop/colorbalance.c:2100 -msgid "mid-tones" -msgstr "srednji toni" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:340 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:537 -#: ../src/iop/filmic.c:1576 -msgid "global saturation" -msgstr "globalna nasičenost" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:364 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:553 -msgid "hue shift" -msgstr "premik odtenka" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:370 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:557 -msgid "global brilliance" -msgstr "globalna živahnost" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:394 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:573 -msgid "mask middle-gray fulcrum" -msgstr "maska oporne točke osrednje sive" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:400 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:577 -msgid "global vibrance" -msgstr "globalna živahnost" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:406 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:581 -msgid "contrast gray fulcrum" -msgstr "kontrast oporne točke sive" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:412 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:585 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:64 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:137 -#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:607 ../src/iop/bilat.c:458 -#: ../src/iop/colisa.c:304 ../src/iop/colorbalance.c:1947 -#: ../src/iop/colorbalance.c:1953 ../src/iop/filmic.c:1548 -#: ../src/iop/filmicrgb.c:4551 ../src/iop/lowpass.c:586 -msgid "contrast" -msgstr "kontrast" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:418 -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:589 -msgid "saturation formula" -msgstr "formula nasičenosti" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:603 -msgid "JzAzBz (2021)" -msgstr "JzAzBz (2021)" - -#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:604 -msgid "darktable UCS (2022)" -msgstr "darktable UCS (2022)" - -#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:54 -#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:121 -msgid "green-magenta contrast" -msgstr "kontrast zelene proti magenti" - -#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:66 -#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:129 -msgid "blue-yellow contrast" -msgstr "kontrast modre proti rumeni" - -#: ../build/lib/darktable/plugins/introspection_colorin.c:148 -#: ../build/lib/darktable/plugins/introspection_colorin.c:231 -msgid "gamut clipping" -msgstr "obrezovanje barvnega razpona" - -#: ../build/lib/darktable/plugins/introspection_colorin.c:301 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:201 -#: ../src/common/colorspaces.c:1251 ../src/common/colorspaces.c:1484 -#: ../src/libs/print_settings.c:1356 -msgid "sRGB" -msgstr "sRGB" - -#: ../build/lib/darktable/plugins/introspection_colorin.c:302 -#: ../src/common/colorspaces.c:1260 ../src/common/colorspaces.c:1486 -#: ../src/libs/print_settings.c:1363 -msgid "Adobe RGB (compatible)" -msgstr "Adobe RGB (kompatibilno)" - -#: ../build/lib/darktable/plugins/introspection_colorin.c:303 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 -#: ../src/common/colorspaces.c:1265 ../src/common/colorspaces.c:1488 -msgid "linear Rec709 RGB" -msgstr "linearni Rec709 RGB" - -#: ../build/lib/darktable/plugins/introspection_colorin.c:304 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 -#: ../src/common/colorspaces.c:1274 ../src/common/colorspaces.c:1490 -msgid "linear Rec2020 RGB" -msgstr "linearni Rec2020 RGB" - -#: ../build/lib/darktable/plugins/introspection_colorize.c:65 -#: ../build/lib/darktable/plugins/introspection_colorize.c:128 -msgid "source mix" -msgstr "mešanje vhodov" - -#: ../build/lib/darktable/plugins/introspection_colormapping.c:94 -#: ../build/lib/darktable/plugins/introspection_colormapping.c:249 -msgid "number of clusters" -msgstr "število grup" - -#: ../build/lib/darktable/plugins/introspection_colormapping.c:100 -#: ../build/lib/darktable/plugins/introspection_colormapping.c:253 -msgid "color dominance" -msgstr "barvna nadvlada" - -#: ../build/lib/darktable/plugins/introspection_colormapping.c:106 -#: ../build/lib/darktable/plugins/introspection_colormapping.c:257 -msgid "histogram equalization" -msgstr "izenačevanje histograma" - -#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:62 -#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:127 -#: ../build/lib/darktable/plugins/introspection_tonemap.cc:45 -#: ../build/lib/darktable/plugins/introspection_tonemap.cc:92 -#: ../src/iop/shadhi.c:686 -msgid "spatial extent" -msgstr "prostorska razširitev" - -#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:68 -#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:131 -msgid "range extent" -msgstr "razširitev obsega" - -#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:154 -#: ../src/iop/channelmixerrgb.c:4669 -msgid "saturated colors" -msgstr "nasičene barve" - -#: ../build/lib/darktable/plugins/introspection_colorzones.c:78 -#: ../build/lib/darktable/plugins/introspection_colorzones.c:193 -msgid "select by" -msgstr "izberi po" - -#. mix slider -#: ../build/lib/darktable/plugins/introspection_colorzones.c:138 -#: ../build/lib/darktable/plugins/introspection_colorzones.c:233 -#: ../build/lib/darktable/plugins/introspection_soften.c:66 -#: ../build/lib/darktable/plugins/introspection_soften.c:121 -#: ../src/iop/atrous.c:1689 -msgid "mix" -msgstr "mešano" - -#: ../build/lib/darktable/plugins/introspection_colorzones.c:144 -#: ../build/lib/darktable/plugins/introspection_colorzones.c:237 -msgid "process mode" -msgstr "način obdelave" - -#: ../build/lib/darktable/plugins/introspection_colorzones.c:255 -#: ../src/develop/blend_gui.c:2294 ../src/iop/channelmixer.c:617 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/colorchecker.c:1448 -#: ../src/iop/colorize.c:349 ../src/iop/colorzones.c:2401 -#: ../src/iop/exposure.c:1239 -msgid "lightness" -msgstr "svetlost" - -#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 -#: ../src/develop/blend_gui.c:2310 ../src/iop/basicadj.c:624 -#: ../src/iop/channelmixer.c:616 ../src/iop/colisa.c:306 -#: ../src/iop/colorbalance.c:2059 ../src/iop/colorbalancergb.c:1919 -#: ../src/iop/colorchecker.c:1483 ../src/iop/colorcontrast.c:90 -#: ../src/iop/colorcorrection.c:275 ../src/iop/colorize.c:343 -#: ../src/iop/lowpass.c:588 ../src/iop/soften.c:373 ../src/iop/velvia.c:84 -#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:971 -msgid "saturation" -msgstr "nasičenost" - -#: ../build/lib/darktable/plugins/introspection_colorzones.c:267 -#: ../src/iop/atrous.c:1309 ../src/iop/atrous.c:1313 -#: ../src/iop/denoiseprofile.c:3527 ../src/iop/rawdenoise.c:755 -msgid "smooth" -msgstr "gladko" - -#: ../build/lib/darktable/plugins/introspection_colorzones.c:268 -msgid "strong" -msgstr "močno" - -#: ../build/lib/darktable/plugins/introspection_defringe.c:47 -#: ../build/lib/darktable/plugins/introspection_defringe.c:102 -msgid "edge detection radius" -msgstr "polmer zaznavanja robov" - -#: ../build/lib/darktable/plugins/introspection_defringe.c:53 -#: ../build/lib/darktable/plugins/introspection_defringe.c:106 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:230 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:435 -#: ../src/iop/atrous.c:1572 ../src/iop/bloom.c:372 -#: ../src/iop/colorreconstruction.c:1236 ../src/iop/hotpixels.c:384 -#: ../src/iop/sharpen.c:449 -msgid "threshold" -msgstr "prag" - -#: ../build/lib/darktable/plugins/introspection_defringe.c:59 -#: ../build/lib/darktable/plugins/introspection_defringe.c:110 -msgid "operation mode" -msgstr "način operacij" - -#: ../build/lib/darktable/plugins/introspection_defringe.c:124 -msgid "global average (fast)" -msgstr "globalno povprečje (hitro)" - -#: ../build/lib/darktable/plugins/introspection_defringe.c:125 -msgid "local average (slow)" -msgstr "lokalno povprečje (počasno)" - -#: ../build/lib/darktable/plugins/introspection_defringe.c:126 -msgid "static threshold (fast)" -msgstr "statični prag (hitro)" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:90 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:163 -msgid "match greens" -msgstr "ustrezne zelene" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:96 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:167 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:141 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:260 -msgid "edge threshold" -msgstr "prag roba" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:102 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:171 -msgid "color smoothing" -msgstr "barvno glajenje" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:108 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:175 -#: ../build/lib/darktable/plugins/introspection_dither.c:73 -#: ../build/lib/darktable/plugins/introspection_dither.c:152 -#: ../build/lib/darktable/plugins/introspection_highlights.c:119 -#: ../build/lib/darktable/plugins/introspection_highlights.c:228 -msgid "method" -msgstr "metoda" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:114 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:179 -msgid "LMMSE refine" -msgstr "izboljšava LMMSE" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:120 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:183 -msgid "dual threshold" -msgstr "dvojni prag" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:197 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:204 -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:197 -msgid "disabled" -msgstr "onemogočeno" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:198 -msgid "local average" -msgstr "lokalno povprečje" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:199 -msgid "full average" -msgstr "polno povprečje" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:200 -msgid "full and local average" -msgstr "polno in lokalno povprečje" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:213 -msgid "PPG" -msgstr "PPG" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:214 -msgid "AMaZE" -msgstr "AMaZE" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:215 -msgid "VNG4" -msgstr "VNG4" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:216 -msgid "RCD" -msgstr "RCD" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:217 -msgid "LMMSE" -msgstr "LMMS" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:218 -msgid "RCD + VNG4" -msgstr "RCD + VNG4" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:219 -msgid "AMaZE + VNG4" -msgstr "AMaZE + VNG4" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:220 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:227 -msgid "passthrough (monochrome)" -msgstr "direktni prenos (enobarvno)" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:221 -#: ../build/lib/darktable/plugins/introspection_demosaic.c:228 -msgid "photosite color (debug)" -msgstr "fotografsko spletišče (odpravljanje napak)" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:222 -msgid "VNG" -msgstr "VNG" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:223 -msgid "Markesteijn 1-pass" -msgstr "Markesteijn 1-prehodni" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:224 -msgid "Markesteijn 3-pass" -msgstr "Markesteijn 3-prehodni" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:225 -msgid "frequency domain chroma" -msgstr "frekvenčna domena krome" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:226 -msgid "Markesteijn 3-pass + VNG" -msgstr "Markesteijn 1-prehodni + VNG" - -#. history -#: ../build/lib/darktable/plugins/introspection_demosaic.c:232 -#: ../src/common/collection.c:1526 ../src/libs/collect.c:1745 -#: ../src/libs/filters/history.c:38 -msgid "basic" -msgstr "osnovna" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:233 -msgid "median" -msgstr "mediana" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:234 -msgid "3x median" -msgstr "3 x mediana" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:235 -msgid "refine & medians" -msgstr "izboljšaj mediane" - -#: ../build/lib/darktable/plugins/introspection_demosaic.c:236 -msgid "2x refine + medians" -msgstr "2 x izboljšaj + mediane" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:125 -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:300 -#: ../build/lib/darktable/plugins/introspection_nlmeans.c:48 -#: ../build/lib/darktable/plugins/introspection_nlmeans.c:109 -msgid "patch size" -msgstr "velikost krpe" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:131 -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:304 -msgid "search radius" -msgstr "radij iskanja" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:143 -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:312 -msgid "preserve shadows" -msgstr "ohrani sence" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:149 -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:316 -msgid "bias correction" -msgstr "popravek pristranskosti" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:155 -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:320 -msgid "scattering" -msgstr "raztros" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:161 -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:324 -msgid "central pixel weight" -msgstr "utež centralne točke" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:167 -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:328 -msgid "adjust autoset parameters" -msgstr "prilagodi avtomatsko nastavljene parametre" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:239 -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:376 -msgid "whitebalance-adaptive transform" -msgstr "prilagojena transformacija glede na ravnotežje beline" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:245 -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:380 -msgid "fix various bugs in algorithm" -msgstr "popravi različne napake algoritma" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:251 -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:384 -msgid "upgrade profiled transform" -msgstr "nadgradi profilirano transformacijo" - -#. -#. * Color mode combo box -#. -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:257 -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:388 -#: ../src/imageio/format/avif.c:786 ../src/libs/colorpicker.c:584 -msgid "color mode" -msgstr "barvni način" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:402 -msgid "non-local means" -msgstr "ne-lokalna povprečja" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:403 -msgid "non-local means auto" -msgstr "avtomatska ne-lokalna povprečja" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:404 -msgid "wavelets" -msgstr "valovčki" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:405 -msgid "wavelets auto" -msgstr "avtomatski valovčki" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:406 -msgid "compute variance" -msgstr "izračunaj varianco" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:410 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:266 -msgid "RGB" -msgstr "RGB" - -#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:411 -msgid "Y0U0V0" -msgstr "Y0U0V0" - -#. two more sharpness (standard & strong) -#: ../build/lib/darktable/plugins/introspection_diffuse.c:123 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:248 -#: ../src/iop/atrous.c:1564 ../src/iop/diffuse.c:630 ../src/iop/highpass.c:381 -msgid "sharpness" -msgstr "ostrina" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:129 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:252 -msgid "radius span" -msgstr "polmer dosega" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:135 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:256 -msgid "edge sensitivity" -msgstr "robna občutljivost" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:147 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:264 -msgid "1st order anisotropy" -msgstr "anizotropnost 1. reda" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:153 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:268 -msgid "2nd order anisotropy" -msgstr "anizotropnost 2. reda" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:159 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:272 -msgid "3rd order anisotropy" -msgstr "anizotropnost 3. reda" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:165 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:276 -msgid "4th order anisotropy" -msgstr "anizotropnost 4. reda" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:171 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:280 -msgid "luminance masking threshold" -msgstr "prag maske svetlosti" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:177 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:284 -msgid "1st order speed" -msgstr "1. red hitrosti" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:183 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:288 -msgid "2nd order speed" -msgstr "2. red hitrosti" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:189 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:292 -msgid "3rd order speed" -msgstr "3. red hitrosti" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:195 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:296 -msgid "4th order speed" -msgstr "4. red hitrosti" - -#: ../build/lib/darktable/plugins/introspection_diffuse.c:201 -#: ../build/lib/darktable/plugins/introspection_diffuse.c:300 -msgid "central radius" -msgstr "centralni radij" - -#: ../build/lib/darktable/plugins/introspection_dither.c:103 -#: ../build/lib/darktable/plugins/introspection_dither.c:172 -msgid "damping" -msgstr "vlaženje" - -#: ../build/lib/darktable/plugins/introspection_dither.c:190 -msgid "random" -msgstr "slučajno" - -#: ../build/lib/darktable/plugins/introspection_dither.c:191 -msgid "Floyd-Steinberg 1-bit B&W" -msgstr "Floyd-Steinberg 1-bitni črno-beli" - -#: ../build/lib/darktable/plugins/introspection_dither.c:192 -msgid "Floyd-Steinberg 1-bit RGB" -msgstr "Floyd-Steinberg 1-bitni RGB" - -#: ../build/lib/darktable/plugins/introspection_dither.c:193 -msgid "Floyd-Steinberg 2-bit gray" -msgstr "Floyd-Steinberg 2-bitne sivine" - -#: ../build/lib/darktable/plugins/introspection_dither.c:194 -msgid "Floyd-Steinberg 2-bit RGB" -msgstr "Floyd-Steinberg 2-bitni RGB" - -#: ../build/lib/darktable/plugins/introspection_dither.c:195 -msgid "Floyd-Steinberg 4-bit gray" -msgstr "Floyd-Steinberg 4-bitne sivine" - -#: ../build/lib/darktable/plugins/introspection_dither.c:196 -msgid "Floyd-Steinberg 4-bit RGB" -msgstr "Floyd-Steinberg 4-bitni RGB" - -#: ../build/lib/darktable/plugins/introspection_dither.c:197 -msgid "Floyd-Steinberg 8-bit RGB" -msgstr "Floyd-Steinberg 8-bitni RGB" - -#: ../build/lib/darktable/plugins/introspection_dither.c:198 -msgid "Floyd-Steinberg 16-bit RGB" -msgstr "Floyd-Steinberg 16-bitni RGB" - -#: ../build/lib/darktable/plugins/introspection_dither.c:199 -msgid "Floyd-Steinberg auto" -msgstr "Floyd-Steinberg avto" - -#: ../build/lib/darktable/plugins/introspection_dither.c:200 -msgid "posterize 2 levels per channel" -msgstr "posteriziraj 2 ravni na kanal" - -#: ../build/lib/darktable/plugins/introspection_dither.c:201 -msgid "posterize 3 levels per channel" -msgstr "posteriziraj 3 ravni na kanal" - -#: ../build/lib/darktable/plugins/introspection_dither.c:202 -msgid "posterize 4 levels per channel" -msgstr "posteriziraj 4 ravni na kanal" - -#: ../build/lib/darktable/plugins/introspection_dither.c:203 -msgid "posterize 5 levels per channel" -msgstr "posteriziraj 5 ravni na kanal" - -#: ../build/lib/darktable/plugins/introspection_dither.c:204 -msgid "posterize 6 levels per channel" -msgstr "posteriziraj 6 ravni na kanal" - -#: ../build/lib/darktable/plugins/introspection_dither.c:205 -msgid "posterize 7 levels per channel" -msgstr "posteriziraj 7 ravni na kanal" - -#: ../build/lib/darktable/plugins/introspection_dither.c:206 -msgid "posterize 8 levels per channel" -msgstr "posteriziraj 8 ravni na kanal" - -#: ../build/lib/darktable/plugins/introspection_exposure.c:79 -#: ../build/lib/darktable/plugins/introspection_exposure.c:146 -msgid "percentile" -msgstr "odstotek" - -#: ../build/lib/darktable/plugins/introspection_exposure.c:85 -#: ../build/lib/darktable/plugins/introspection_exposure.c:150 -msgid "target level" -msgstr "raven cilja" - -#: ../build/lib/darktable/plugins/introspection_exposure.c:91 -#: ../build/lib/darktable/plugins/introspection_exposure.c:154 -msgid "compensate exposure bias" -msgstr "izravnaj pristranskost osvetlitve" - -#: ../build/lib/darktable/plugins/introspection_exposure.c:168 -#: ../build/lib/darktable/plugins/introspection_levels.c:160 -msgid "manual" -msgstr "ročno" - -#: ../build/lib/darktable/plugins/introspection_exposure.c:169 -#: ../build/lib/darktable/plugins/introspection_levels.c:161 -msgid "automatic" -msgstr "avtomatično" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:212 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:423 -#: ../src/iop/filmic.c:1489 -msgid "middle gray luminance" -msgstr "svetlost srednje sive" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:218 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:427 -#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:97 -#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:166 -#: ../src/iop/filmic.c:1514 -msgid "black relative exposure" -msgstr "relativna osvetlitev črne" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:224 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:431 -#: ../src/iop/filmic.c:1501 -msgid "white relative exposure" -msgstr "relativna osvetlitev beline" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:236 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:439 -msgid "transition" -msgstr "prehod" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:242 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:443 -msgid "bloom ↔ reconstruct" -msgstr "cvetenje ↔ ponovna obnova" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:248 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:447 -msgid "gray ↔ colorful details" -msgstr "sivo ↔ barvne podrobnosti" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:254 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:451 -msgid "structure ↔ texture" -msgstr "struktura ↔ tekstura" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:260 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:455 -msgid "dynamic range scaling" -msgstr "merilo dinamičnega razpona" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:266 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:459 -#: ../src/iop/filmic.c:1646 -msgid "target middle gray" -msgstr "ciljna srednja siva" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:272 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:463 -#: ../src/iop/filmic.c:1637 -msgid "target black luminance" -msgstr "ciljna svetlost črne" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:278 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:467 -#: ../src/iop/filmic.c:1655 -msgid "target white luminance" -msgstr "ciljna svetlost bele" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:284 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:471 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:69 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:140 -#: ../src/libs/masks.c:106 -msgid "hardness" -msgstr "trdota" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:302 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:483 -#: ../src/iop/filmic.c:1586 ../src/iop/filmicrgb.c:4729 -msgid "extreme luminance saturation" -msgstr "nasičenost skrajnih svetlosti" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:308 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:487 -msgid "shadows ↔ highlights balance" -msgstr "uravnoteževanje senc ↔ bleščav" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:314 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:491 -msgid "add noise in highlights" -msgstr "dodaj šum v bleščave" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:320 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:495 -msgid "preserve chrominance" -msgstr "ohrani barvnost" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:326 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:499 -msgid "color science" -msgstr "znanost o barvah" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:332 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:503 -msgid "auto adjust hardness" -msgstr "samodejno prilagodi trdoto" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:338 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:507 -msgid "use custom middle-gray values" -msgstr "uporabi srednje-sive vrednosti po meri" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:344 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:511 -msgid "iterations of high-quality reconstruction" -msgstr "iteracije visoko kakovostnih rekonstrukcij" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:350 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:515 -msgid "type of noise" -msgstr "vrste šuma" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:356 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:519 -msgid "contrast in shadows" -msgstr "kontrast v sencah" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:362 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:523 -msgid "contrast in highlights" -msgstr "kontrast v bleščavah" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:368 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:527 -msgid "compensate output ICC profile black point" -msgstr "izravnava izhodne črne točke profila ICC" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:374 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:531 -msgid "spline handling" -msgstr "obdelava zlepka" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:380 -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:535 -msgid "enable highlight reconstruction" -msgstr "omogoči rekonstrukcijo bleščav" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:549 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:371 -#: ../src/common/database.c:2785 ../src/common/variables.c:705 -#: ../src/develop/imageop_gui.c:209 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 -msgid "no" -msgstr "ne" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:551 -msgid "luminance Y" -msgstr "svetlost Y" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:552 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:384 -msgid "RGB power norm" -msgstr "norma moči RGB" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:553 -msgid "RGB euclidean norm (legacy)" -msgstr "RGB evklidska norma (zapuščina)" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:554 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:383 -msgid "RGB euclidean norm" -msgstr "RGB evklidska norma" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:558 -msgid "v3 (2019)" -msgstr "v3 (2019)" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:559 -msgid "v4 (2020)" -msgstr "v4 (2020)" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:560 -msgid "v5 (2021)" -msgstr "v5 (2020)" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:561 -msgid "v6 (2022)" -msgstr "v6 (2022)" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:562 -msgid "v7 (2023)" -msgstr "v7 (2023)" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:566 -msgid "uniform" -msgstr "enakomerni" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:568 -msgid "poissonian" -msgstr "poissonov" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:572 -msgid "hard" -msgstr "trdo" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:573 -msgid "soft" -msgstr "mehko" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:574 -msgid "safe" -msgstr "varno" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:578 -msgid "v1 (2019)" -msgstr "v1 (2019)" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:579 -msgid "v2 (2020)" -msgstr "v2 (2020)" - -#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:580 -msgid "v3 (2021)" -msgstr "v3 (2021)" - -#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:60 -#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:125 -msgid "bias" -msgstr "pristranskost" - -#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:66 -#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:129 -msgid "target" -msgstr "cilj" - -#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:151 -msgid "reinhard" -msgstr "reinhard" - -#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:152 -#: ../src/iop/filmic.c:162 -msgid "filmic" -msgstr "filmično" - -#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:153 -msgid "drago" -msgstr "drago" - -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:63 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:136 -msgid "density" -msgstr "gostota" - -#: ../build/lib/darktable/plugins/introspection_grain.c:58 -#: ../build/lib/darktable/plugins/introspection_grain.c:117 -#: ../src/iop/bilat.c:450 -msgid "coarseness" -msgstr "zrnatost" - -#: ../build/lib/darktable/plugins/introspection_grain.c:70 -#: ../build/lib/darktable/plugins/introspection_grain.c:125 -#: ../build/lib/darktable/plugins/introspection_velvia.c:44 -#: ../build/lib/darktable/plugins/introspection_velvia.c:91 -msgid "mid-tones bias" -msgstr "pristranskost srednjih tonov" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:143 -#: ../build/lib/darktable/plugins/introspection_highlights.c:244 -#: ../src/views/darkroom.c:2406 -msgid "clipping threshold" -msgstr "prag obrezovanja" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:161 -#: ../build/lib/darktable/plugins/introspection_highlights.c:256 -msgid "diameter of reconstruction" -msgstr "premer rekonstrukcije" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:167 -#: ../build/lib/darktable/plugins/introspection_highlights.c:260 -msgid "candidating" -msgstr "kandidiranje" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:173 -#: ../build/lib/darktable/plugins/introspection_highlights.c:264 -msgid "combine" -msgstr "sestavi" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:179 -#: ../build/lib/darktable/plugins/introspection_highlights.c:268 -msgid "rebuild" -msgstr "ponovno izgradi" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:185 -#: ../build/lib/darktable/plugins/introspection_highlights.c:272 -msgid "inpaint a flat color" -msgstr "doslikaj enakomerno barvo" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:286 -msgid "inpaint opposed" -msgstr "dobarvanje nasprotij" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:287 -msgid "reconstruct in LCh" -msgstr "rekontruiraj v LCh" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:288 -msgid "clip highlights" -msgstr "odreži bleščave" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:289 -msgid "segmentation based" -msgstr "osnovano na segmentih" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:290 -msgid "guided laplacians" -msgstr "vodila laplacovin" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:291 -msgid "reconstruct color" -msgstr "obnovi barvo" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:295 -msgid "2 px" -msgstr "2 px" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:296 -msgid "4 px" -msgstr "4 px" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:297 -msgid "8 px" -msgstr "8 px" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:298 -msgid "16 px" -msgstr "16 px" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:299 -msgid "32 px" -msgstr "32 px" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:300 -msgid "64 px" -msgstr "64 px" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:301 -msgid "128 px (slow)" -msgstr "128 px (počasno)" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:302 -msgid "256 px (slow)" -msgstr "256 px (počasno)" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:303 -msgid "512 px (very slow)" -msgstr "512 px (zelo počasno)" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:304 -msgid "1024 px (very slow)" -msgstr "1024 px (zelo počasno)" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:305 -msgid "2048 px (insanely slow)" -msgstr "2048 px (nevzdržno počasno)" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:306 -msgid "4096 px (insanely slow)" -msgstr "4096 px (nevzdržno počasno)" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:312 -msgid "flat generic" -msgstr "generično ravno" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:313 -msgid "small segments" -msgstr "majhni segmenti" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:314 -msgid "large segments" -msgstr "veliki segmenti" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:315 -msgid "flat small segments" -msgstr "ravni mali segmenti" - -#: ../build/lib/darktable/plugins/introspection_highlights.c:316 -msgid "flat large segments" -msgstr "ravni veliki segmenti" - -#: ../build/lib/darktable/plugins/introspection_highpass.c:44 -#: ../build/lib/darktable/plugins/introspection_highpass.c:91 -msgid "contrast boost" -msgstr "porast kontrasta" - -#: ../build/lib/darktable/plugins/introspection_hotpixels.c:59 -#: ../build/lib/darktable/plugins/introspection_hotpixels.c:116 -msgid "mark fixed pixels" -msgstr "označi popravljene piksle" - -#: ../build/lib/darktable/plugins/introspection_hotpixels.c:65 -#: ../build/lib/darktable/plugins/introspection_hotpixels.c:120 -msgid "detect by 3 neighbors" -msgstr "detekcija 3 sosedov" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:162 -#: ../build/lib/darktable/plugins/introspection_lens.cc:337 -msgid "correction method" -msgstr "metode popravkov" - -#. Page CORRECTIONS -#: ../build/lib/darktable/plugins/introspection_lens.cc:168 -#: ../build/lib/darktable/plugins/introspection_lens.cc:341 -#: ../src/iop/negadoctor.c:900 -msgid "corrections" -msgstr "popravki" - -#. mode choice -#. Add check to control whether the style is to replace or append the current module -#: ../build/lib/darktable/plugins/introspection_lens.cc:174 -#: ../build/lib/darktable/plugins/introspection_lens.cc:345 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:128 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:219 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:51 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:118 -#: ../src/iop/bilat.c:428 ../src/iop/colorbalance.c:1909 -#: ../src/iop/denoiseprofile.c:3806 ../src/iop/exposure.c:1157 -#: ../src/iop/levels.c:684 ../src/iop/profile_gamma.c:668 -#: ../src/libs/copy_history.c:399 ../src/libs/export.c:1262 -#: ../src/libs/image.c:597 ../src/libs/print_settings.c:2875 -#: ../src/libs/styles.c:846 ../src/views/darkroom.c:2387 -msgid "mode" -msgstr "način" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:210 -#: ../build/lib/darktable/plugins/introspection_lens.cc:369 -#: ../src/iop/lens.cc:3820 -msgid "target geometry" -msgstr "geometrija cilja" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:240 -#: ../build/lib/darktable/plugins/introspection_lens.cc:389 -msgid "TCA overwrite" -msgstr "prepiši TCA" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:246 -#: ../build/lib/darktable/plugins/introspection_lens.cc:393 -msgid "TCA red" -msgstr "TCA rdeča" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:252 -#: ../build/lib/darktable/plugins/introspection_lens.cc:397 -msgid "TCA blue" -msgstr "TCA modra" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:258 -#: ../build/lib/darktable/plugins/introspection_lens.cc:401 -msgid "distortion fine-tune" -msgstr "fino nastavljanje popačenja" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:264 -#: ../build/lib/darktable/plugins/introspection_lens.cc:405 -msgid "vignetting fine-tune" -msgstr "fino nastavljanje vinjetiranja" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:270 -#: ../build/lib/darktable/plugins/introspection_lens.cc:409 -msgid "TCA red fine-tune" -msgstr "fino upravljanje TCA rdeče" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:276 -#: ../build/lib/darktable/plugins/introspection_lens.cc:413 -msgid "TCA blue fine-tune" -msgstr "fino upravljanje TCA modre" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:282 -#: ../build/lib/darktable/plugins/introspection_lens.cc:417 -msgid "scale fine-tune" -msgstr "natančno prilagajanje lestvice" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:294 -#: ../build/lib/darktable/plugins/introspection_lens.cc:425 -msgid "image scale" -msgstr "lestvica slike" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:439 -msgid "embedded metadata" -msgstr "vgrajeni metapodatki" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:440 -msgid "Lensfun database" -msgstr "zbirka lečja" - -#. get nice text for bounds -#. Side-border hide/show -#: ../build/lib/darktable/plugins/introspection_lens.cc:445 -#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2367 -#: ../src/gui/accelerators.c:2447 ../src/gui/gtk.c:1204 ../src/gui/gtk.c:3136 -#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3709 -#: ../src/iop/rawdenoise.c:893 ../src/libs/collect.c:3066 -#: ../src/libs/filtering.c:1459 ../src/libs/filters/colors.c:157 -#: ../src/libs/filters/colors.c:265 ../src/libs/filters/rating.c:211 -msgid "all" -msgstr "vse" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:446 -msgid "distortion & TCA" -msgstr "popačenje & TCA" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:447 -msgid "distortion & vignetting" -msgstr "popačenje & vinjetiranje" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:448 -msgid "TCA & vignetting" -msgstr "TCA & vinjetiranje" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:449 -msgid "only distortion" -msgstr "samo popačenje" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:450 -msgid "only TCA" -msgstr "samo TCA" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:451 -msgid "only vignetting" -msgstr "samo vinjetiranje" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:455 -#: ../src/libs/modulegroups.c:2318 -msgid "correct" -msgstr "popravi" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:456 -msgid "distort" -msgstr "popači" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:461 -msgid "rectilinear" -msgstr "pravokotna" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:462 -msgid "fisheye" -msgstr "ribje oko" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:463 -msgid "panoramic" -msgstr "panoramska" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:464 -msgid "equirectangular" -msgstr "kvadratna" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:465 -msgid "orthographic" -msgstr "ortografska" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:466 -msgid "stereographic" -msgstr "stereografska" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:467 -msgid "equisolid angle" -msgstr "enakomerni kot" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:468 -msgid "Thoby fisheye" -msgstr "Thoby ribje oko" - -#: ../build/lib/darktable/plugins/introspection_liquify.c:428 -msgid "invalidated" -msgstr "razveljavljeno" - -#. move left/right/up/down -#: ../build/lib/darktable/plugins/introspection_liquify.c:429 -#: ../src/views/darkroom.c:2282 ../src/views/darkroom.c:2676 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:765 -#: ../src/views/lighttable.c:774 ../src/views/lighttable.c:1246 -#: ../src/views/lighttable.c:1250 ../src/views/lighttable.c:1254 -#: ../src/views/lighttable.c:1258 ../src/views/lighttable.c:1262 -msgid "move" -msgstr "prenesi" - -#: ../build/lib/darktable/plugins/introspection_liquify.c:430 -msgid "line" -msgstr "črta" - -#: ../build/lib/darktable/plugins/introspection_liquify.c:431 -#: ../src/iop/basecurve.c:2186 ../src/iop/rgbcurve.c:1387 -#: ../src/iop/tonecurve.c:1149 -msgid "curve" -msgstr "krivulja" - -#: ../build/lib/darktable/plugins/introspection_lowlight.c:43 -#: ../build/lib/darktable/plugins/introspection_lowlight.c:110 -msgid "blue shift" -msgstr "modri premik" - -#: ../build/lib/darktable/plugins/introspection_lowpass.c:96 -#: ../build/lib/darktable/plugins/introspection_lowpass.c:165 -#: ../build/lib/darktable/plugins/introspection_shadhi.c:160 -#: ../build/lib/darktable/plugins/introspection_shadhi.c:247 -msgid "soften with" -msgstr "zmehčaj z" - -#: ../build/lib/darktable/plugins/introspection_lowpass.c:183 -#: ../build/lib/darktable/plugins/introspection_shadhi.c:261 -msgid "order 0" -msgstr "red 0" - -#: ../build/lib/darktable/plugins/introspection_lowpass.c:184 -#: ../build/lib/darktable/plugins/introspection_shadhi.c:262 -msgid "order 1" -msgstr "red 1" - -#: ../build/lib/darktable/plugins/introspection_lowpass.c:185 -#: ../build/lib/darktable/plugins/introspection_shadhi.c:263 -msgid "order 2" -msgstr "red 2" - -#: ../build/lib/darktable/plugins/introspection_lowpass.c:190 -#: ../build/lib/darktable/plugins/introspection_shadhi.c:268 -msgid "bilateral filter" -msgstr "bilateralni filter" - -#: ../build/lib/darktable/plugins/introspection_lut3d.c:76 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:163 -msgid "application color space" -msgstr "barvni prostor aplikacije" - -#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 -msgid "Adobe RGB" -msgstr "Adobe RGB" - -#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 -msgid "gamma Rec709 RGB" -msgstr "gama Rec709 RGB" - -#: ../build/lib/darktable/plugins/introspection_lut3d.c:209 -msgid "tetrahedral" -msgstr "tetraedrno" - -#: ../build/lib/darktable/plugins/introspection_lut3d.c:210 -msgid "trilinear" -msgstr "tri-linearno" - -#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 -msgid "pyramid" -msgstr "piramida" - -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:84 -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:199 -msgid "film stock" -msgstr "zaloga filmov" - -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:132 -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:231 -msgid "scan exposure bias" -msgstr "preglej pristranskost osvetlitve" - -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:138 -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:235 -msgid "paper black (density correction)" -msgstr "črna na papirju (popravek gostote)" - -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:144 -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:239 -#: ../src/iop/negadoctor.c:992 -msgid "paper grade (gamma)" -msgstr "gradacija papirja (gama)" - -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:150 -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:243 -msgid "paper gloss (specular highlights)" -msgstr "sijajni papir (odsevne bleščave)" - -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:156 -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:247 -msgid "print exposure adjustment" -msgstr "nastavitev osvetlitve za tisk" - -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:261 -#: ../src/iop/negadoctor.c:417 -msgid "black and white film" -msgstr "črno beli film" - -#: ../build/lib/darktable/plugins/introspection_negadoctor.c:262 -#: ../src/iop/negadoctor.c:402 -msgid "color film" -msgstr "barvni film" - -#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:85 -#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:158 -msgid "dynamic range" -msgstr "dinamični razpon" - -#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:91 -#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:162 -msgid "middle gray luma" -msgstr "luma srednje sive" - -#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:103 -#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:170 -#: ../src/iop/filmic.c:1526 -msgid "safety factor" -msgstr "varnostni faktor" - -#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:184 -msgid "logarithmic" -msgstr "logaritmično" - -#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:185 -#: ../src/iop/profile_gamma.c:625 -msgid "gamma" -msgstr "gama" - -#: ../build/lib/darktable/plugins/introspection_rawdenoise.c:43 -#: ../build/lib/darktable/plugins/introspection_rawdenoise.c:122 -msgid "noise threshold" -msgstr "prag šuma" - -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:70 -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:155 -msgid "crop left" -msgstr "obreži levo" - -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:76 -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:159 -msgid "crop top" -msgstr "obreži vrh" - -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:82 -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:163 -msgid "crop right" -msgstr "obreži desno" - -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:88 -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:167 -msgid "crop bottom" -msgstr "obreži dno" - -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:94 -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:100 -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:171 -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:175 -msgid "black level" -msgstr "raven črne" - -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:106 -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:179 -#: ../src/iop/rawprepare.c:946 -msgid "white point" -msgstr "bela točka" - -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:112 -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:183 -msgid "flat field correction" -msgstr "popravek ravnega polja" - -#: ../build/lib/darktable/plugins/introspection_rawprepare.c:198 -msgid "embedded GainMap" -msgstr "vgrajena preslikava prirasta" - -#. exposure -#: ../build/lib/darktable/plugins/introspection_relight.c:43 -#: ../build/lib/darktable/plugins/introspection_relight.c:98 -#: ../src/common/collection.c:720 ../src/gui/preferences.c:836 -#: ../src/gui/presets.c:684 ../src/iop/basicadj.c:598 ../src/iop/exposure.c:122 -#: ../src/iop/exposure.c:1117 ../src/libs/metadata_view.c:141 -msgid "exposure" -msgstr "osvetlitev" - -#: ../build/lib/darktable/plugins/introspection_retouch.c:267 -#: ../build/lib/darktable/plugins/introspection_retouch.c:414 -msgid "fill mode" -msgstr "način polnenja" - -#: ../build/lib/darktable/plugins/introspection_retouch.c:285 -#: ../build/lib/darktable/plugins/introspection_retouch.c:426 -#: ../src/iop/basicadj.c:620 ../src/iop/channelmixerrgb.c:4617 -#: ../src/iop/colisa.c:305 ../src/iop/lowpass.c:587 ../src/iop/soften.c:377 -#: ../src/iop/vignette.c:970 ../src/libs/history.c:963 -msgid "brightness" -msgstr "sijavost" - -#: ../build/lib/darktable/plugins/introspection_retouch.c:291 -#: ../build/lib/darktable/plugins/introspection_retouch.c:430 -msgid "max_iter" -msgstr "max_iter" - -#: ../build/lib/darktable/plugins/introspection_retouch.c:444 -#: ../src/libs/metadata_view.c:329 -msgid "unused" -msgstr "neuporabljeno" - -#: ../build/lib/darktable/plugins/introspection_retouch.c:445 -msgid "clone" -msgstr "klon" - -#: ../build/lib/darktable/plugins/introspection_retouch.c:446 -msgid "heal" -msgstr "ozdravi" - -#: ../build/lib/darktable/plugins/introspection_retouch.c:447 -#: ../src/iop/retouch.c:1867 -msgid "blur" -msgstr "zameglitev" - -#: ../build/lib/darktable/plugins/introspection_retouch.c:448 -#: ../src/iop/retouch.c:1865 -msgid "fill" -msgstr "polni" - -#: ../build/lib/darktable/plugins/introspection_retouch.c:453 -msgid "bilateral" -msgstr "bilateralno" - -#: ../build/lib/darktable/plugins/introspection_retouch.c:457 -msgid "erase" -msgstr "izbriši" - -#: ../build/lib/darktable/plugins/introspection_retouch.c:458 -#: ../src/gui/presets.c:59 ../src/iop/watermark.c:1298 -#: ../src/libs/colorpicker.c:291 ../src/libs/image.c:612 -#: ../src/libs/modulegroups.c:2317 -msgid "color" -msgstr "barva" - -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:134 -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:223 -#: ../src/iop/rgbcurve.c:1423 -msgid "compensate middle gray" -msgstr "kompenziraj srednje sivo" - -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:246 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:148 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:266 -msgid "RGB, linked channels" -msgstr "RGB, povezani kanali" - -#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:247 -#: ../build/lib/darktable/plugins/introspection_rgblevels.c:149 -msgid "RGB, independent channels" -msgstr "RGB, neodvisni kanali" - -#: ../build/lib/darktable/plugins/introspection_shadhi.c:112 -#: ../build/lib/darktable/plugins/introspection_shadhi.c:215 -msgid "white point adjustment" -msgstr "nastavitev točke beline" - -#: ../build/lib/darktable/plugins/introspection_shadhi.c:136 -#: ../build/lib/darktable/plugins/introspection_shadhi.c:231 -msgid "shadows color adjustment" -msgstr "prilagoditev barv v sencah" - -#: ../build/lib/darktable/plugins/introspection_shadhi.c:142 -#: ../build/lib/darktable/plugins/introspection_shadhi.c:235 -msgid "highlights color adjustment" -msgstr "prilagoditev barv v bleščavah" - -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:70 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:141 -#: ../src/gui/accelerators.c:85 -msgid "skew" -msgstr "nagni" - -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:76 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:145 -msgid "target white" -msgstr "ciljna belina" - -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:82 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:149 -msgid "target black" -msgstr "ciljna črna" - -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:88 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:153 -msgid "color processing" -msgstr "obdelava barve" - -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:94 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:157 -msgid "preserve hue" -msgstr "ohrani odtenek" - -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:171 -msgid "per channel" -msgstr "na kanal" - -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:172 -msgid "RGB ratio" -msgstr "razmerje RGB" - -#: ../build/lib/darktable/plugins/introspection_temperature.c:66 -#: ../build/lib/darktable/plugins/introspection_temperature.c:121 -#: ../src/iop/temperature.c:1941 -msgid "emerald" -msgstr "smaragdna" - -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:135 -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:232 -msgid "color space" -msgstr "barvni prostor" - -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:263 -msgid "Lab, linked channels" -msgstr "Lab, povezani kanali" - -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:264 -msgid "Lab, independent channels" -msgstr "Lab, neodvisni kanali" - -#: ../build/lib/darktable/plugins/introspection_tonecurve.c:265 -msgid "XYZ, linked channels" -msgstr "XYZ, povezani kanali" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:144 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:289 -msgid "blacks" -msgstr "črnine" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:150 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:293 -msgid "deep shadows" -msgstr "globoke sence" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:162 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:301 -msgid "light shadows" -msgstr "svetle sence" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:174 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:309 -msgid "dark highlights" -msgstr "temne bleščave" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:186 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:317 -msgid "whites" -msgstr "beline" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:192 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:321 -msgid "speculars" -msgstr "spektivi" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:198 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:325 -msgid "smoothing diameter" -msgstr "premer glajenja" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:210 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:333 -msgid "edges refinement/feathering" -msgstr "izboljšanje/mehčanje robov s peresi" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:216 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:337 -msgid "mask quantization" -msgstr "kvantizacija maske" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:222 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:341 -msgid "mask contrast compensation" -msgstr "kompenzacija maske kontrasta" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:228 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:345 -msgid "mask exposure compensation" -msgstr "kompenzacija maske osvetlitve" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:240 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:353 -msgid "luminance estimator" -msgstr "cenilka svetlosti" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:246 -#: ../build/lib/darktable/plugins/introspection_toneequal.c:357 -msgid "filter diffusion" -msgstr "difuzija filtra" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:372 -msgid "averaged guided filter" -msgstr "povprečen voden filter" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:373 -msgid "guided filter" -msgstr "vodeni filter" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:374 -msgid "averaged EIGF" -msgstr "povprečeno EIGF" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:375 -msgid "EIGF" -msgstr "EIGF" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:379 -msgid "RGB average" -msgstr "RGB povprečje" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:380 -msgid "HSL lightness" -msgstr "HSV svetlost" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:381 -msgid "HSV value / RGB max" -msgstr "HSV vrednost / RGB max" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:382 -msgid "RGB sum" -msgstr "RGB vsota" - -#: ../build/lib/darktable/plugins/introspection_toneequal.c:385 -msgid "RGB geometric mean" -msgstr "RGB geometrijsko povprečje" - -#: ../build/lib/darktable/plugins/introspection_tonemap.cc:39 -#: ../build/lib/darktable/plugins/introspection_tonemap.cc:88 -#: ../src/iop/rgbcurve.c:184 ../src/iop/tonecurve.c:539 -msgid "contrast compression" -msgstr "stisni kontrast" - -#: ../build/lib/darktable/plugins/introspection_vibrance.c:33 -#: ../build/lib/darktable/plugins/introspection_vibrance.c:76 -#: ../src/iop/basicadj.c:627 ../src/iop/vibrance.c:67 -msgid "vibrance" -msgstr "živahnost" - -#: ../build/lib/darktable/plugins/introspection_vignette.c:92 -#: ../build/lib/darktable/plugins/introspection_vignette.c:201 -msgid "fall-off start" -msgstr "začetek odpadanja" - -#: ../build/lib/darktable/plugins/introspection_vignette.c:98 -#: ../build/lib/darktable/plugins/introspection_vignette.c:205 -msgid "fall-off radius" -msgstr "radij odpadanja" - -#: ../build/lib/darktable/plugins/introspection_vignette.c:116 -#: ../build/lib/darktable/plugins/introspection_vignette.c:217 -msgid "horizontal center" -msgstr "vodoravni center" - -#: ../build/lib/darktable/plugins/introspection_vignette.c:122 -#: ../build/lib/darktable/plugins/introspection_vignette.c:221 -msgid "vertical center" -msgstr "navpični center" - -#: ../build/lib/darktable/plugins/introspection_vignette.c:134 -#: ../build/lib/darktable/plugins/introspection_vignette.c:229 -msgid "automatic ratio" -msgstr "avtomatično razmerje" - -#: ../build/lib/darktable/plugins/introspection_vignette.c:140 -#: ../build/lib/darktable/plugins/introspection_vignette.c:233 -msgid "width/height ratio" -msgstr "razmerje širina/višina" - -#: ../build/lib/darktable/plugins/introspection_vignette.c:146 -#: ../build/lib/darktable/plugins/introspection_vignette.c:237 -#: ../src/iop/vignette.c:978 -msgid "shape" -msgstr "oblika" - -#: ../build/lib/darktable/plugins/introspection_vignette.c:265 -msgid "8-bit output" -msgstr "8-bitni izhod" - -#: ../build/lib/darktable/plugins/introspection_vignette.c:266 -msgid "16-bit output" -msgstr "16-bitni izhod" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:118 -#: ../build/lib/darktable/plugins/introspection_watermark.c:253 -msgid "x offset" -msgstr "odmik x" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:124 -#: ../build/lib/darktable/plugins/introspection_watermark.c:257 -msgid "y offset" -msgstr "odmik y" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:142 -#: ../build/lib/darktable/plugins/introspection_watermark.c:269 -msgid "scale on" -msgstr "merilo na" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:148 -#: ../build/lib/darktable/plugins/introspection_watermark.c:273 -msgid "scale marker to" -msgstr "oznaka lestvičenja za" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:154 -#: ../build/lib/darktable/plugins/introspection_watermark.c:277 -msgid "scale marker reference" -msgstr "referenca oznake lestvičenja" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:323 -#: ../src/imageio/format/tiff.c:125 ../src/imageio/format/xcf.c:159 -#: ../src/iop/borders.c:947 -msgid "image" -msgstr "slika" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:324 -msgid "larger border" -msgstr "širši rob" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:325 -msgid "smaller border" -msgstr "manjši rob" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:326 -#: ../src/libs/export.c:1135 ../src/libs/metadata_view.c:148 -#: ../src/libs/print_settings.c:2541 -msgid "height" -msgstr "višina" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:327 -msgid "advanced options" -msgstr "napredne možnosti" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:331 -msgid "image width" -msgstr "širina slike" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:332 -msgid "image height" -msgstr "višina slike" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:333 -msgid "larger image border" -msgstr "širši rob slike" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:334 -msgid "smaller image border" -msgstr "manjši rob slike" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:338 -msgid "marker width" -msgstr "širina označevalnika" - -#: ../build/lib/darktable/plugins/introspection_watermark.c:339 -msgid "marker height" -msgstr "višina označevalnika" - -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:6 -msgid "developers" -msgstr "razvijalci" - -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:11 -msgid "translators" -msgstr "prevajalci" - -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:16 -msgid "contributors" -msgstr "sodelavci" - -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:21 -msgid "rawspeed contributors" -msgstr "sodelavci rawspeeda" - -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:26 -msgid "integration contributors" -msgstr "sodelavci integracije" - -#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:1 -#: ../data/org.darktable.darktable.desktop.in.h:1 -msgid "Virtual Lighttable and Darkroom" -msgstr "Virtualna osvetljena podlaga in temnica" - -#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:2 -#: ../data/org.darktable.darktable.appdata.xml.in.h:1 -#: ../data/org.darktable.darktable.desktop.in.h:2 -msgid "Organize and develop images from digital cameras" -msgstr "Organizira in razvija slike digitalnih kamer" - -#. TRANSLATORS: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! -#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:4 -#: ../data/org.darktable.darktable.desktop.in.h:4 -msgid "graphics;photography;raw;" -msgstr "grafika;fotografije;surove;" - -#: ../data/org.darktable.darktable.appdata.xml.in.h:2 -msgid "" -"darktable manages your digital negatives in a database and lets you view " -"them through a lighttable. It also enables you to develop raw images and " -"enhance them in a darkroom." -msgstr "" -"darktable upravlja z vašimi digitalnimi negativi v podatkovni bazi in vam " -"jih kaže na osvetljeni podlagi. Omogoča tudi razvijanje in izboljševanje " -"surovih fotografij v temnici." - -#: ../data/org.darktable.darktable.appdata.xml.in.h:3 -msgid "" -"Other modes besides lighttable and darkroom are a map for geotagging, " -"tethering, print and a slideshow." -msgstr "" -"Ostali načini uporabe programa razen osvetljene podlage in temnice so še " -"dodajanje geografskih oznak, odd. upravljanje, tisk slik in časovno " -"prikazovanje slik." - -#: ../data/org.darktable.darktable.appdata.xml.in.h:4 -msgid "" -"darktable supports most modern cameras' raw formats, and does all of its " -"processing at very high precision." -msgstr "" -"darktable podpira večino surovih formatov sodobnih kamer in nudi obdelavo z " -"visoko natančnostjo." - -#: ../data/org.darktable.darktable.appdata.xml.in.h:5 -msgid "Virtual light table, showing a collection" -msgstr "Virtualna svetlobna podlaga prikazuje zbirko" - -#: ../data/org.darktable.darktable.appdata.xml.in.h:6 -msgid "Virtual dark room with an opened image" -msgstr "Virtualna temnica z odprto sliko" - -#: ../data/org.darktable.darktable.appdata.xml.in.h:7 -msgid "Virtual dark room, sharpening an image" -msgstr "Virtualna temnica ostri sliko" - -#: ../data/org.darktable.darktable.appdata.xml.in.h:8 -msgid "Show images on a map" -msgstr "Prikaži slike na karti" - -#: ../data/org.darktable.darktable.appdata.xml.in.h:9 -msgid "Print your images" -msgstr "Natisni svoje slike" - -#: ../src/bauhaus/bauhaus.c:752 ../src/bauhaus/bauhaus.c:3689 -msgid "sliders" -msgstr "drsniki" - -#: ../src/bauhaus/bauhaus.c:753 ../src/bauhaus/bauhaus.c:3694 -msgid "dropdowns" -msgstr "spustni meniji" - -#: ../src/bauhaus/bauhaus.c:754 ../src/bauhaus/bauhaus.c:3699 -msgid "buttons" -msgstr "gumbi" - -#: ../src/bauhaus/bauhaus.c:3405 -msgid "button on" -msgstr "gumb pritisnjen" - -#: ../src/bauhaus/bauhaus.c:3405 -msgid "button off" -msgstr "gumb ugasnjen" - -#: ../src/bauhaus/bauhaus.c:3406 -msgid "button pressed" -msgstr "gumb pritisnjen" - -#: ../src/bauhaus/bauhaus.c:3623 -msgid "not that many sliders" -msgstr "ne tako veliko drsnikov" - -#: ../src/bauhaus/bauhaus.c:3633 -msgid "not that many dropdowns" -msgstr "ne toliko veliko spustnih menijev" - -#: ../src/bauhaus/bauhaus.c:3648 -msgid "not that many buttons" -msgstr "ne toliko veliko gumbov" - -#: ../src/bauhaus/bauhaus.c:3653 ../src/gui/accelerators.c:348 -msgid "value" -msgstr "vrednost" - -#: ../src/bauhaus/bauhaus.c:3654 ../src/bauhaus/bauhaus.c:3660 -#: ../src/gui/accelerators.c:326 -msgid "button" -msgstr "gumb" - -#: ../src/bauhaus/bauhaus.c:3655 -msgid "force" -msgstr "sila" - -#: ../src/bauhaus/bauhaus.c:3656 ../src/libs/navigation.c:187 -#: ../src/libs/navigation.c:199 -msgid "zoom" -msgstr "zoom" - -#: ../src/bauhaus/bauhaus.c:3659 -msgid "selection" -msgstr "izbira" - -#: ../src/bauhaus/bauhaus.c:3678 -msgid "slider" -msgstr "drsnik" - -#: ../src/bauhaus/bauhaus.c:3683 -msgid "dropdown" -msgstr "spust" - -#: ../src/chart/main.c:504 ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 ../src/gui/accelerators.c:2278 -#: ../src/gui/accelerators.c:2355 ../src/gui/accelerators.c:2407 -#: ../src/gui/accelerators.c:2435 ../src/gui/accelerators.c:2495 -#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1043 -#: ../src/gui/preferences.c:1082 ../src/gui/presets.c:420 -#: ../src/gui/presets.c:563 ../src/gui/styles_dialog.c:519 -#: ../src/imageio/storage/disk.c:123 ../src/imageio/storage/gallery.c:110 -#: ../src/imageio/storage/latex.c:109 ../src/iop/lut3d.c:1546 -#: ../src/libs/collect.c:408 ../src/libs/copy_history.c:115 -#: ../src/libs/geotagging.c:928 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/styles.c:392 ../src/libs/styles.c:527 -#: ../src/libs/tagging.c:2489 ../src/libs/tagging.c:2525 -msgid "_cancel" -msgstr "_prekliči" - -#: ../src/chart/main.c:504 ../src/gui/preferences.c:1082 -#: ../src/gui/styles_dialog.c:520 ../src/libs/styles.c:392 -msgid "_save" -msgstr "_shrani" - -#. TODO: is the rank interesting, too? -#: ../src/chart/main.c:1064 -#, c-format -msgid "" -"average dE: %.02f\n" -"max dE: %.02f" -msgstr "" -"povprečje dE: %.02f\n" -"max dE: %.02f" - -#: ../src/cli/main.c:247 -msgid "TODO: sorry, due to API restrictions we currently cannot set the BPP to" -msgstr "" -"ŠE NAREDITI: se opravičujemo, zaradi omejitev vmesnika na moremo nastaviti " -"BPP" - -#: ../src/cli/main.c:259 -msgid "unknown option for --hq" -msgstr "neznana možnost --hq" - -#: ../src/cli/main.c:275 -msgid "unknown option for --export_masks" -msgstr "neznana možnost --export_masks" - -#: ../src/cli/main.c:291 -msgid "unknown option for --upscale" -msgstr "neznana možnost --upscale" - -#: ../src/cli/main.c:316 -msgid "unknown option for --apply-custom-presets" -msgstr "neznana možnost --apply-custom-presets" - -#: ../src/cli/main.c:327 -msgid "too long ext for --out-ext" -msgstr "predolg ext za --out-ext" - -#: ../src/cli/main.c:344 -#, c-format -msgid "notice: input file or dir '%s' doesn't exist, skipping\n" -msgstr "" -"obvestilo: vhodna datoteka ali direktorij '%s' ne obstaja, preskakujem\n" - -#: ../src/cli/main.c:353 -#, c-format -msgid "incorrect ICC type for --icc-type: '%s'\n" -msgstr "napačen tip ICC za --icc-type: '%s'\n" - -#: ../src/cli/main.c:369 -#, c-format -msgid "notice: ICC file '%s' doesn't exist, skipping\n" -msgstr "opomba: datoteka ICC '%s' ne obstaja, preskakujem\n" - -#: ../src/cli/main.c:378 -#, c-format -msgid "incorrect ICC intent for --icc-intent: '%s'\n" -msgstr "napačen namen ICC za --icc-intent: '%s'\n" - -#: ../src/cli/main.c:396 -#, c-format -msgid "warning: unknown option '%s'\n" -msgstr "opozorilo: neznana možnost '%s'\n" - -#: ../src/cli/main.c:454 -#, c-format -msgid "error: input file and import opts specified! that's not supported!\n" -msgstr "" -"napaka: določene so in vhodna datoteka in možnosti uvoza! to ni podprto!\n" - -#: ../src/cli/main.c:487 -#, c-format -msgid "" -"notice: output location is a directory. assuming '%s/$(FILE_NAME).%s' output " -"pattern" -msgstr "" -"opomba: izhodna lokacija je imenik. predpostavljam, da je '%s/$(FILE_NAME)." -"%s' vzorec izhoda" - -#. output file exists or there's output ext specified and it's same as file... -#: ../src/cli/main.c:502 -msgid "output file already exists, it will get renamed" -msgstr "izhodna datoteka že obstaja, jo bom preimenoval" - -#. one of inputs was a failure, no prob -#: ../src/cli/main.c:532 -#, c-format -msgid "error: can't open folder %s" -msgstr "napaka: ne morem odpreti mape %s" - -#: ../src/cli/main.c:549 -#, c-format -msgid "error: can't open file %s" -msgstr "napaka: ne morem odpreti datoteke %s" - -#: ../src/cli/main.c:566 -#, c-format -msgid "no images to export, aborting\n" -msgstr "ni slik za izvoz, prekinjam\n" - -#: ../src/cli/main.c:583 -#, c-format -msgid "error: can't open XMP file %s" -msgstr "napaka: ni mogoče odpreti datoteke XMS %s" - -#: ../src/cli/main.c:604 -msgid "empty history stack" -msgstr "prazen sklad zgodovine" - -#. too long ext, no point in wasting time -#: ../src/cli/main.c:616 -#, c-format -msgid "too long output file extension: %s\n" -msgstr "predolga pripona izhodne datoteke:%s\n" - -#. no ext or empty ext, no point in wasting time -#: ../src/cli/main.c:624 -#, c-format -msgid "no output file extension given\n" -msgstr "ni danega podaljška izhodne datoteke\n" - -#: ../src/cli/main.c:663 -msgid "" -"cannot find disk storage module. please check your installation, something " -"seems to be broken." -msgstr "" -"ne morem urediti modula za shranjevanje na disk. Prosimo preverite vašo " -"namestitev, nekaj je najbrž narobe." - -#: ../src/cli/main.c:673 -msgid "failed to get parameters from storage module, aborting export ..." -msgstr "" -"nisem uspel dobiti parametrov iz modula za shranjevanje, prekinjam izvoz ...." - -#: ../src/cli/main.c:689 -#, c-format -msgid "unknown extension '.%s'" -msgstr "neznan podaljšek '.%s'" - -#: ../src/cli/main.c:699 -msgid "failed to get parameters from format module, aborting export ..." -msgstr "" -"nisem uspel dobiti parametrov iz modula za formatiranje, prekinjam izvoz ..." - -#: ../src/common/camera_control.c:190 -#, c-format -msgid "" -"camera `%s' on port `%s' error %s\n" -"\n" -"make sure your camera allows access and is not mounted otherwise" -msgstr "" -"kamera `%s' na vratih `%s' napaka %s\n" -"\n" -"prepričajte se, da kamera dovoli dostop in ni kako drugače priklopljena" - -#: ../src/common/camera_control.c:892 -#, c-format -msgid "" -"failed to initialize `%s' on port `%s', likely causes are: locked by another " -"application, no access to devices etc" -msgstr "" -"neuspela inicializacija `%s' na vratih '%s', verjetno so vzroki: zaklenjeno " -"z drugo aplikacijo, brez dostopa do naprav itd" - -#: ../src/common/camera_control.c:905 -#, c-format -msgid "" -"`%s' on port `%s' is not interesting because it supports neither tethering " -"nor import" -msgstr "" -"`%s 'na vratih '%s' ni zanimiv, ker ne podpira niti oddaljenega upravljanja " -"niti uvoza" - -#: ../src/common/camera_control.c:959 -#, c-format -msgid "camera `%s' on port `%s' disconnected while mounted" -msgstr "" -"kamera `%s' na vratih %s je bila odklopljena, medtem ko je bila priklopljena" - -#: ../src/common/camera_control.c:967 -#, c-format -msgid "" -"camera `%s' on port `%s' needs to be remounted\n" -"make sure it allows access and is not mounted otherwise" -msgstr "" -"kamero `%s' na vratih `%s' je treba ponovno priklopiti\n" -"preverite, da dovoli dostop in ni že sicer priklopljena" - -#: ../src/common/collection.c:673 -msgid "too much time to update aspect ratio for the collection" -msgstr "preveč časa za osvežitev razmerja proporcev za celotno zbirko" - -#: ../src/common/collection.c:688 -msgid "film roll" -msgstr "film" - -#: ../src/common/collection.c:690 -msgid "folder" -msgstr "mapa" - -#: ../src/common/collection.c:692 -msgid "camera" -msgstr "kamera" - -#: ../src/common/collection.c:694 ../src/libs/export_metadata.c:189 -#: ../src/libs/tagging.c:3281 -msgid "tag" -msgstr "oznaka" - -#: ../src/common/collection.c:696 -msgid "capture date" -msgstr "datum posnetka" - -#: ../src/common/collection.c:698 ../src/libs/filtering.c:61 -msgid "capture time" -msgstr "zajem slik" - -#: ../src/common/collection.c:700 ../src/libs/filtering.c:62 -msgid "import time" -msgstr "čas uvoza" - -#: ../src/common/collection.c:702 ../src/libs/filtering.c:63 -msgid "modification time" -msgstr "čas spremembe" - -#: ../src/common/collection.c:704 ../src/libs/filtering.c:64 -msgid "export time" -msgstr "čas izvoza" - -#: ../src/common/collection.c:706 ../src/libs/filtering.c:65 -msgid "print time" -msgstr "čas tiskanja" - -#: ../src/common/collection.c:708 ../src/libs/collect.c:3222 -#: ../src/libs/filtering.c:2163 ../src/libs/filtering.c:2183 -#: ../src/libs/filters/history.c:153 ../src/libs/history.c:92 -msgid "history" -msgstr "zgodovina" - -#: ../src/common/collection.c:710 ../src/common/colorlabels.c:342 -#: ../src/develop/lightroom.c:1550 ../src/dtgtk/thumbnail.c:1560 -#: ../src/libs/filtering.c:68 ../src/libs/filters/colors.c:301 -#: ../src/libs/filters/colors.c:312 ../src/libs/tools/colorlabels.c:93 -msgid "color label" -msgstr "oznaka barve" - -#. iso -#: ../src/common/collection.c:716 ../src/gui/preferences.c:832 -#: ../src/gui/presets.c:666 ../src/libs/camera.c:558 -#: ../src/libs/metadata_view.c:145 -msgid "ISO" -msgstr "ISO" - -#. aperture -#: ../src/common/collection.c:718 ../src/gui/preferences.c:840 -#: ../src/gui/presets.c:701 ../src/libs/camera.c:545 ../src/libs/camera.c:547 -#: ../src/libs/metadata_view.c:140 -msgid "aperture" -msgstr "zaslonka" - -#: ../src/common/collection.c:724 ../src/libs/filtering.c:57 -#: ../src/libs/filters/filename.c:364 ../src/libs/metadata_view.c:126 -msgid "filename" -msgstr "ime datoteke" - -#: ../src/common/collection.c:726 ../src/develop/lightroom.c:1541 -#: ../src/libs/geotagging.c:141 -msgid "geotagging" -msgstr "geokode" - -#: ../src/common/collection.c:728 ../src/libs/filters/grouping.c:167 -#: ../src/libs/tools/global_toolbox.c:394 -msgid "grouping" -msgstr "grupiranje" - -#: ../src/common/collection.c:730 ../src/dtgtk/thumbnail.c:1575 -#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:129 -#: ../src/libs/metadata_view.c:336 -msgid "local copy" -msgstr "lokalna kopija" - -#: ../src/common/collection.c:732 ../src/gui/preferences.c:808 -msgid "module" -msgstr "modul" - -#: ../src/common/collection.c:734 ../src/gui/hist_dialog.c:346 -#: ../src/gui/styles_dialog.c:722 ../src/gui/styles_dialog.c:771 -#: ../src/libs/filters/module_order.c:161 ../src/libs/ioporder.c:39 -msgid "module order" -msgstr "razvrstitev modulov" - -#: ../src/common/collection.c:736 -msgid "range rating" -msgstr "ocena obsega" - -#: ../src/common/collection.c:738 ../src/common/ratings.c:322 -#: ../src/develop/lightroom.c:1525 ../src/libs/filtering.c:67 -#: ../src/libs/tools/ratings.c:110 -msgid "rating" -msgstr "ocena" - -#: ../src/common/collection.c:740 -msgid "search" -msgstr "iskanje" - -#: ../src/common/collection.c:1509 ../src/common/colorlabels.c:335 -#: ../src/develop/lightroom.c:836 ../src/gui/guides.c:732 -#: ../src/iop/colorzones.c:2265 ../src/iop/temperature.c:1925 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:261 -msgid "yellow" -msgstr "rumena" - -#: ../src/common/collection.c:1515 ../src/common/color_vocabulary.c:339 -#: ../src/common/colorlabels.c:338 ../src/iop/colorzones.c:2269 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:264 -msgid "purple" -msgstr "škrlatna" - -#: ../src/common/collection.c:1532 ../src/libs/collect.c:1745 -#: ../src/libs/filters/history.c:38 -msgid "auto applied" -msgstr "uporabljeno avtomatsko" - -#: ../src/common/collection.c:1536 ../src/libs/collect.c:1745 -#: ../src/libs/filters/history.c:38 -msgid "altered" -msgstr "spremenjeno" - -#: ../src/common/collection.c:1553 ../src/common/collection.c:1649 -#: ../src/libs/collect.c:1166 ../src/libs/collect.c:1330 -#: ../src/libs/collect.c:1354 ../src/libs/collect.c:1473 -#: ../src/libs/collect.c:2432 -msgid "not tagged" -msgstr "ni označeno" - -#: ../src/common/collection.c:1554 ../src/libs/collect.c:1354 -#: ../src/libs/map_locations.c:742 -msgid "tagged" -msgstr "označeno" - -#: ../src/common/collection.c:1555 -msgid "tagged*" -msgstr "označeno*" - -#. local copy -#: ../src/common/collection.c:1588 ../src/libs/collect.c:1759 -#: ../src/libs/filters/local_copy.c:38 -msgid "not copied locally" -msgstr "ni bilo lokalno prekopirano" - -#: ../src/common/collection.c:1592 ../src/libs/collect.c:1759 -#: ../src/libs/filters/local_copy.c:38 -msgid "copied locally" -msgstr "lokalno kopirano" - -#: ../src/common/collection.c:1974 ../src/libs/collect.c:1879 -#: ../src/libs/filters/grouping.c:147 ../src/libs/filters/grouping.c:170 -msgid "group leaders" -msgstr "voditelji grup" - -#: ../src/common/collection.c:1978 ../src/libs/collect.c:1879 -#: ../src/libs/filters/grouping.c:150 ../src/libs/filters/grouping.c:170 -msgid "group followers" -msgstr "sledilci grupe" - -#: ../src/common/collection.c:2126 ../src/libs/collect.c:1959 -msgid "not defined" -msgstr "ni določeno" - -#: ../src/common/collection.c:2575 -#, c-format -msgid "<b>%d</b> image (#<b>%d</b>) selected of <b>%d</b>" -msgstr "<b>%d</b> slika (#<b>%d</b>) izbrana izmed <b>%d</b>" - -#: ../src/common/collection.c:2582 -#, c-format -msgid "<b>%d</b> image selected of <b>%d</b>" -msgid_plural "<b>%d</b> images selected of <b>%d</b>" -msgstr[0] "<b>%d</b> slika izbrana izmed <b>%d</b>" -msgstr[1] "<b>%d</b> sliki izbranimi izmed <b>%d</b>" -msgstr[2] "<b>%d</b> slike izbrane izmed <b>%d</b>" -msgstr[3] "<b>%d</b> slik izbranih izmed <b>%d</b>" - -#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2324 -#: ../src/develop/blend_gui.c:2372 ../src/gui/guides.c:729 -#: ../src/iop/channelmixerrgb.c:4620 ../src/iop/levels.c:671 -#: ../src/iop/rgblevels.c:937 ../src/iop/rgblevels.c:1032 -msgid "gray" -msgstr "siva" - -#: ../src/common/color_vocabulary.c:92 -msgid "Chinese" -msgstr "kitajsko" - -#: ../src/common/color_vocabulary.c:93 -msgid "Thai" -msgstr "tajsko" - -#: ../src/common/color_vocabulary.c:94 -msgid "Kurdish" -msgstr "kurdsko" - -#: ../src/common/color_vocabulary.c:95 -msgid "Caucasian" -msgstr "kavkaško" - -#: ../src/common/color_vocabulary.c:96 -msgid "African-American" -msgstr "afriško-ameriško" - -#: ../src/common/color_vocabulary.c:97 -msgid "Mexican" -msgstr "mehiško" - -#: ../src/common/color_vocabulary.c:100 ../src/common/color_vocabulary.c:105 -#: ../src/common/color_vocabulary.c:110 ../src/common/color_vocabulary.c:115 -msgid "forearm" -msgstr "nadlaket" - -#: ../src/common/color_vocabulary.c:120 ../src/common/color_vocabulary.c:125 -#: ../src/common/color_vocabulary.c:130 ../src/common/color_vocabulary.c:135 -#: ../src/common/color_vocabulary.c:140 ../src/common/color_vocabulary.c:145 -msgid "forehead" -msgstr "čelo" - -#: ../src/common/color_vocabulary.c:150 ../src/common/color_vocabulary.c:155 -#: ../src/common/color_vocabulary.c:160 ../src/common/color_vocabulary.c:165 -#: ../src/common/color_vocabulary.c:170 ../src/common/color_vocabulary.c:175 -msgid "cheek" -msgstr "lice" - -#: ../src/common/color_vocabulary.c:202 -#, c-format -msgid "average %s skin tone\n" -msgstr "povprečni %s ton kože\n" - -#. 0° - pinkish red -#: ../src/common/color_vocabulary.c:222 -msgid "deep purple" -msgstr "globoko škrlatna" - -#. L = 10 % -#: ../src/common/color_vocabulary.c:223 -msgid "fuchsia" -msgstr "fuksija" - -#. L = 30 % -#: ../src/common/color_vocabulary.c:224 -msgid "medium magenta" -msgstr "srednja magenta" - -#. L = 50 % -#: ../src/common/color_vocabulary.c:225 -msgid "violet pink" -msgstr "roza vijolična" - -#. L = 70 % -#: ../src/common/color_vocabulary.c:226 -msgid "plum violet" -msgstr "slivno vijolična" - -#. 24° - red -#: ../src/common/color_vocabulary.c:231 -msgid "dark red" -msgstr "temni rdeča" - -#: ../src/common/color_vocabulary.c:233 -msgid "crimson" -msgstr "škrlatna" - -#: ../src/common/color_vocabulary.c:234 -msgid "salmon" -msgstr "postrv" - -#: ../src/common/color_vocabulary.c:235 -msgid "pink" -msgstr "roza" - -#. 48° - orangy red -#: ../src/common/color_vocabulary.c:240 -msgid "maroon" -msgstr "kostanjeva" - -#: ../src/common/color_vocabulary.c:241 -msgid "dark orange red" -msgstr "temno oranžno rdeče" - -#: ../src/common/color_vocabulary.c:242 -msgid "orange red" -msgstr "oranžno rdeča" - -#: ../src/common/color_vocabulary.c:243 -msgid "coral" -msgstr "koralna" - -#: ../src/common/color_vocabulary.c:244 ../src/common/color_vocabulary.c:261 -msgid "khaki" -msgstr "kaki" - -#. 72° - orange -#: ../src/common/color_vocabulary.c:249 -msgid "brown" -msgstr "rjava" - -#: ../src/common/color_vocabulary.c:250 -msgid "chocolate" -msgstr "čokoladna" - -#: ../src/common/color_vocabulary.c:251 -msgid "dark gold" -msgstr "temno zlata" - -#: ../src/common/color_vocabulary.c:252 -msgid "gold" -msgstr "zlata" - -#: ../src/common/color_vocabulary.c:253 -msgid "sandy brown" -msgstr "peščeno rjava" - -#. 96° - yellow olive -#. 120° - green -#. 144° - blueish green -#: ../src/common/color_vocabulary.c:258 ../src/common/color_vocabulary.c:267 -#: ../src/common/color_vocabulary.c:276 -msgid "dark green" -msgstr "temno zelena" - -#: ../src/common/color_vocabulary.c:259 -msgid "dark olive green" -msgstr "temno olivno zelena" - -#: ../src/common/color_vocabulary.c:260 -msgid "olive" -msgstr "olivna" - -#: ../src/common/color_vocabulary.c:262 -msgid "beige" -msgstr "bež" - -#: ../src/common/color_vocabulary.c:268 ../src/common/color_vocabulary.c:278 -msgid "forest green" -msgstr "gozdno zelena" - -#: ../src/common/color_vocabulary.c:269 -msgid "olive drab" -msgstr "olivno drap" - -#: ../src/common/color_vocabulary.c:270 -msgid "yellow green" -msgstr "rumeno zelena" - -#: ../src/common/color_vocabulary.c:271 ../src/common/color_vocabulary.c:280 -msgid "pale green" -msgstr "bledo zelena" - -#: ../src/common/color_vocabulary.c:279 -msgid "lime green" -msgstr "limetino zelena" - -#. 168° - greenish cyian -#: ../src/common/color_vocabulary.c:285 -msgid "dark sea green" -msgstr "temno morsko zelena" - -#: ../src/common/color_vocabulary.c:286 -msgid "sea green" -msgstr "morsko zelena" - -#: ../src/common/color_vocabulary.c:287 ../src/common/color_vocabulary.c:304 -msgid "teal" -msgstr "svileno zelena" - -#: ../src/common/color_vocabulary.c:288 -msgid "light sea green" -msgstr "svetlo morsko zelena" - -#: ../src/common/color_vocabulary.c:289 -msgid "turquoise" -msgstr "turkizna" - -#. 192° - cyan -#: ../src/common/color_vocabulary.c:294 -msgid "dark slate gray" -msgstr "temno skrilasto siva" - -#: ../src/common/color_vocabulary.c:295 -msgid "light slate gray" -msgstr "svetlo skrilasto siva" - -#: ../src/common/color_vocabulary.c:296 ../src/common/color_vocabulary.c:305 -msgid "dark cyan" -msgstr "temna cian" - -#: ../src/common/color_vocabulary.c:297 ../src/common/color_vocabulary.c:317 -#: ../src/iop/colorzones.c:2267 -msgid "aqua" -msgstr "vodna" - -#: ../src/common/color_vocabulary.c:298 ../src/gui/guides.c:733 -#: ../src/iop/temperature.c:1923 -msgid "cyan" -msgstr "cian" - -#. 216° - medium blue -#: ../src/common/color_vocabulary.c:303 -msgid "navy blue" -msgstr "mornarsko modra" - -#: ../src/common/color_vocabulary.c:306 ../src/common/color_vocabulary.c:316 -msgid "deep sky blue" -msgstr "nebesno modra" - -#: ../src/common/color_vocabulary.c:307 -msgid "aquamarine blue" -msgstr "akvamarin modra" - -#. 240° - blue and 264° - bluer than blue -#. these are collapsed because CIE Lab 1976 sucks for blues -#. 288° - more blue -#: ../src/common/color_vocabulary.c:313 ../src/common/color_vocabulary.c:322 -msgid "dark blue" -msgstr "temno modra" - -#: ../src/common/color_vocabulary.c:314 ../src/common/color_vocabulary.c:323 -msgid "medium blue" -msgstr "srednje modra" - -#: ../src/common/color_vocabulary.c:315 -msgid "azure blue" -msgstr "azurno modra" - -#: ../src/common/color_vocabulary.c:325 -msgid "light sky blue" -msgstr "svetlo nebesno modra" - -#: ../src/common/color_vocabulary.c:326 -msgid "light blue" -msgstr "svetlo modra" - -#. 312° - violet -#: ../src/common/color_vocabulary.c:331 -msgid "indigo" -msgstr "indigo" - -#: ../src/common/color_vocabulary.c:332 -msgid "dark violet" -msgstr "temno vijolična" - -#: ../src/common/color_vocabulary.c:333 -msgid "blue violet" -msgstr "modro vijolična" - -#: ../src/common/color_vocabulary.c:334 ../src/common/color_vocabulary.c:342 -msgid "violet" -msgstr "vijolična" - -#: ../src/common/color_vocabulary.c:335 -msgid "plum" -msgstr "sliva" - -#: ../src/common/color_vocabulary.c:340 -msgid "dark magenta" -msgstr "temna magenta" - -#: ../src/common/color_vocabulary.c:341 ../src/gui/guides.c:734 -#: ../src/iop/colorzones.c:2270 ../src/iop/temperature.c:1921 -msgid "magenta" -msgstr "magenta" - -#: ../src/common/color_vocabulary.c:343 -msgid "lavender" -msgstr "sivka" - -#: ../src/common/color_vocabulary.c:346 -msgid "color not found" -msgstr "barve ni najdene" - -#: ../src/common/colorlabels.c:310 -#, c-format -msgid "colorlabels set to %s" -msgstr "nastavitev barvnih oznak na %s" - -#: ../src/common/colorlabels.c:312 -msgid "all colorlabels removed" -msgstr "vse barvne oznake odstranjene" - -#: ../src/common/colorlabels.c:333 ../src/gui/accelerators.c:170 -#: ../src/libs/image.c:592 -msgid "clear" -msgstr "očisti" - -#. init the category profile with NULL profile, the actual profile must be retrieved dynamically by the caller -#: ../src/common/colorspaces.c:1229 ../src/common/colorspaces.c:1518 -msgid "work profile" -msgstr "delovni profil" - -#: ../src/common/colorspaces.c:1232 ../src/common/colorspaces.c:1514 -#: ../src/iop/colorout.c:885 -msgid "export profile" -msgstr "profil izvoza" - -#: ../src/common/colorspaces.c:1236 ../src/common/colorspaces.c:1516 -#: ../src/views/darkroom.c:2542 -msgid "softproof profile" -msgstr "profil preizkusnega odtisa" - -#: ../src/common/colorspaces.c:1242 ../src/common/colorspaces.c:1498 -msgid "system display profile" -msgstr "sistemski profil zaslona" - -#: ../src/common/colorspaces.c:1245 ../src/common/colorspaces.c:1520 -msgid "system display profile (second window)" -msgstr "sistemski profil zaslona (drugo okno)" - -#: ../src/common/colorspaces.c:1255 -msgid "sRGB (web-safe)" -msgstr "sRGB (za splet)" - -#: ../src/common/colorspaces.c:1269 ../src/common/colorspaces.c:1522 -msgid "Rec709 RGB" -msgstr "Rec709 RGB" - -#: ../src/common/colorspaces.c:1279 -msgid "PQ Rec2020 RGB" -msgstr "PQ Rec2020 RGB" - -#: ../src/common/colorspaces.c:1284 -msgid "HLG Rec2020 RGB" -msgstr "HLG Rec2020 RGB" - -#: ../src/common/colorspaces.c:1289 -msgid "PQ P3 RGB" -msgstr "PQ P3 RGB" - -#: ../src/common/colorspaces.c:1294 -msgid "HLG P3 RGB" -msgstr "HLG P3 RGB" - -#: ../src/common/colorspaces.c:1299 ../src/common/colorspaces.c:1524 -msgid "linear ProPhoto RGB" -msgstr "linearni prophoto RGB" - -#: ../src/common/colorspaces.c:1304 ../src/common/colorspaces.c:1492 -msgid "linear XYZ" -msgstr "linearni XYZ" - -#: ../src/common/colorspaces.c:1308 ../src/common/colorspaces.c:1494 -#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2000 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:267 -msgid "Lab" -msgstr "Lab" - -#: ../src/common/colorspaces.c:1313 ../src/common/colorspaces.c:1496 -msgid "linear infrared BGR" -msgstr "linearni infrardeči BGR" - -#: ../src/common/colorspaces.c:1317 -msgid "BRG (for testing)" -msgstr "BRG (za preizkus)" - -#: ../src/common/colorspaces.c:1409 -#, c-format -msgid "" -"profile `%s' not usable as histogram profile. it has been replaced by sRGB!" -msgstr "profil '%s' ni uporaben kot profil histograma, bil je zamenjan z sRGB!" - -#: ../src/common/colorspaces.c:1500 -msgid "embedded ICC profile" -msgstr "vgrajeni ICC profil" - -#: ../src/common/colorspaces.c:1502 -msgid "embedded matrix" -msgstr "vgrajena matrika" - -#: ../src/common/colorspaces.c:1504 -msgid "standard color matrix" -msgstr "standardna barvna matrika" - -#: ../src/common/colorspaces.c:1506 -msgid "enhanced color matrix" -msgstr "izboljšana barvna matrika" - -#: ../src/common/colorspaces.c:1508 -msgid "vendor color matrix" -msgstr "barvna matrika proizvajalca" - -#: ../src/common/colorspaces.c:1510 -msgid "alternate color matrix" -msgstr "alternativna barvna matrika" - -#: ../src/common/colorspaces.c:1512 -msgid "BRG (experimental)" -msgstr "BRG (preizkusno)" - -#: ../src/common/colorspaces.c:1526 -msgid "PQ Rec2020" -msgstr "PQ Rec2020" - -#: ../src/common/colorspaces.c:1528 -msgid "HLG Rec2020" -msgstr "HLG Rec2020" - -#: ../src/common/colorspaces.c:1530 -msgid "PQ P3" -msgstr "PQ P3" - -#: ../src/common/colorspaces.c:1532 -msgid "HLG P3" -msgstr "HLG P3" - -#: ../src/common/cups_print.c:420 -#, c-format -msgid "file `%s' to print not found for image %d on `%s'" -msgstr "datoteke `%s' za tisk slike %d nisem našel na `%s'" - -#: ../src/common/cups_print.c:439 -msgid "failed to create temporary file for printing options" -msgstr "nisem uspel ustvariti začasne datoteke za nastavitve tiskanja" - -#: ../src/common/cups_print.c:508 -#, c-format -msgid "printing on `%s' cancelled" -msgstr "tiskanje na `%s' preklicano" - -#: ../src/common/cups_print.c:572 -#, c-format -msgid "error while printing `%s' on `%s'" -msgstr "napaka pri tiskanju `%s' na `%s'" - -#: ../src/common/cups_print.c:574 -#, c-format -msgid "printing `%s' on `%s'" -msgstr "tiskanje `%s' na `%s'" - -#: ../src/common/darktable.c:250 -#, c-format -msgid "found strange path `%s'" -msgstr "našel sem čudno pot `%s'" - -#: ../src/common/darktable.c:265 -#, c-format -msgid "error loading directory `%s'" -msgstr "napaka pri nalaganju mape `%s'" - -#: ../src/common/darktable.c:289 -#, c-format -msgid "file `%s' has unknown format!" -msgstr "datoteka `%s' ima neznan format!" - -#: ../src/common/darktable.c:302 ../src/control/jobs/control_jobs.c:2118 -#: ../src/control/jobs/control_jobs.c:2177 -#, c-format -msgid "error loading file `%s'" -msgstr "napaka pri nalaganju datoteke '%s'" - -#: ../src/common/darktable.c:1509 -msgid "configuration information" -msgstr "informacije o konfiguraciji" - -#: ../src/common/darktable.c:1511 -msgid "show this information again" -msgstr "prikaži to informacijo ponovno" - -#: ../src/common/darktable.c:1511 -msgid "understood" -msgstr "razumljeno" - -#: ../src/common/darktable.c:1968 -msgid "" -"the RCD demosaicer has been defined as default instead of PPG because of " -"better quality and performance." -msgstr "" -"razmozaičnik RCD je bil zaradi PPG določen kot privzeti zaradi boljša " -"kakovost in zmogljivosti PPG." - -#: ../src/common/darktable.c:1970 -msgid "see preferences/darkroom/demosaicing for zoomed out darkroom mode" -msgstr "" -"poglej preference/odstranjevanje mozaičnosti za pomanjšan pogled v načinu " -"temnice" - -#: ../src/common/darktable.c:1976 -msgid "" -"the user interface and the underlying internals for tuning darktable " -"performance have changed." -msgstr "" -"uporabniški vmesnik in nastavitev notranjosti za prilagajanje darktabla za " -"uspešnost se je spremenila." - -#: ../src/common/darktable.c:1978 -msgid "" -"you won't find headroom and friends any longer, instead in preferences/" -"processing use:" -msgstr "" -"ne boste našli več prostora in prijateljev, namesto v nastavitvah za uporabo " -"obdelav:" - -#: ../src/common/darktable.c:1980 -msgid "1) darktable resources" -msgstr "1) viri programa darktable" - -#: ../src/common/darktable.c:1982 -msgid "2) tune OpenCL performance" -msgstr "2) prilagodi zmogljivost OpenCL" - -#: ../src/common/darktable.c:1989 -msgid "" -"some global config parameters relevant for OpenCL performance are not used " -"any longer." -msgstr "" -"nekatere globalne vrednosti konfiguracije pomembne za učinkovitost OpenCL " -"niso več v uporabi." - -#: ../src/common/darktable.c:1991 -msgid "" -"instead you will find 'per device' data in 'cl_device_v4_canonical-name'. " -"content is:" -msgstr "" -"namesto tega boste našli podatke 'po napravi' v ''cl_device_v4_canonical-" -"name'. vsebina je:" - -#: ../src/common/darktable.c:1993 ../src/common/darktable.c:2012 -msgid "" -" 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" -msgstr "" -" 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" - -#: ../src/common/darktable.c:1995 ../src/common/darktable.c:2014 -msgid "you may tune as before except 'magic'" -msgstr "lahko prilagajate kot prej - razen 'magic'" - -#: ../src/common/darktable.c:2001 -msgid "" -"your OpenCL compiler settings for all devices have been reset to default." -msgstr "" -"vaše nastavitve prevajalnika OpenCL za vse naprave so bile postavljene na " -"privzete vrednosti." - -#: ../src/common/darktable.c:2008 -msgid "" -"OpenCL global config parameters 'per device' data has been recreated with an " -"updated name." -msgstr "" -"globalni parametri konfiguracije OpenCL 'po napravi' so bile ponovno " -"ustvarjene s posodobljeni imenom." - -#: ../src/common/darktable.c:2010 -msgid "" -"you will find 'per device' data in 'cl_device_v5_canonical-name'. content is:" -msgstr "" -"podatke 'po napravi' boste našli v 'cl_device_v4_canonical-name'. vsebina je:" - -#: ../src/common/darktable.c:2016 -msgid "" -"If you're using device names in 'opencl_device_priority' you should update " -"them to the new names." -msgstr "" -"Če uporabljate imena naprav v 'opencl_device_priority', jih morate " -"posodobiti na nova imena." - -#: ../src/common/database.c:2756 -#, c-format -msgid "" -"\n" -" Sorry, darktable could not be started (database is locked)\n" -"\n" -" How to solve this problem?\n" -"\n" -" 1 - If another darktable instance is already open, \n" -" click cancel and either use that instance or close it before " -"attempting to rerun darktable \n" -" (process ID <i><b>%d</b></i> created the database locks)\n" -"\n" -" 2 - If you can't find a running instance of darktable, try restarting your " -"session or your computer. \n" -" This will close all running programs and hopefully close the databases " -"correctly. \n" -"\n" -" 3 - If you have done this or are certain that no other instances of " -"darktable are running, \n" -" this probably means that the last instance was ended abnormally. \n" -" Click on the \"delete database lock files\" button to remove the files " -"<i>data.db.lock</i> and <i>library.db.lock</i>. \n" -"\n" -"\n" -" <i><u>Caution!</u> Do not delete these files without first undertaking " -"the above checks, \n" -" otherwise you risk generating serious inconsistencies in your database." -"</i>\n" -msgstr "" -"\n" -" Oprostite, programa darktable ni bilo mogoče zagnati (baza podatkov je " -"zaklenjena)\n" -"\n" -" Kako rešiti to težavo?\n" -"\n" -" 1 - Če je že odprt drug pojavek programa darktable,\n" -" kliknite Prekliči in uporabite pojavek ali ga zaprite, preden " -"poskusite ponovno zagnati darktable\n" -" (ID procesa <i><b>%d</b> </i> je zaklenil baze podatkov)\n" -"\n" -" 2 - Če ne najdete tekočega pojavka programa darktable, poskusite znova " -"zagnati sejo ali računalnik.\n" -" S tem boste zaprli vse programe in upamo, da bodo tudi baze podatkov " -"pravilno zaprte.\n" -"\n" -" 3 - Če ste to že storili ali ste prepričani, da se ne izvaja noben drug " -"pojavek programa darktable,\n" -" to verjetno pomeni, da se je zadnji pojavek končal nenormalno.\n" -" Kliknite gumb \"izbriši datoteke zaklepa zbirke podatkov\", da " -"odstranite datoteki <i>data.db.lock</i> in <i>library.db.lock</i>.\n" -"\n" -"\n" -" <i><u>Pozor!</u> Teh datotek ne brišite, ne da bi prej izvedli zgornja " -"preverjanja,\n" -" v nasprotnem primeru tvegate, da boste ustvarili resna neskladja v " -"svoji bazi podatkov.</i>\n" - -#. clang-format on -#: ../src/common/database.c:2777 -msgid "error starting darktable" -msgstr "napaka ob zagonu darktable" - -#: ../src/common/database.c:2778 ../src/libs/collect.c:2915 -#: ../src/libs/export_metadata.c:288 ../src/libs/import.c:1702 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:227 ../src/libs/modulegroups.c:3464 -#: ../src/libs/styles.c:438 ../src/libs/styles.c:621 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3471 -msgid "cancel" -msgstr "prekliči" - -#: ../src/common/database.c:2778 -msgid "delete database lock files" -msgstr "zbriši datoteke zaklepa podatkovne baze" - -#: ../src/common/database.c:2784 -msgid "are you sure?" -msgstr "ali ste prepričani?" - -#: ../src/common/database.c:2785 -msgid "" -"\n" -"do you really want to delete the lock files?\n" -msgstr "" -"\n" -"ali res želite brisati datoteke zaklepa?\n" - -#: ../src/common/database.c:2785 ../src/common/variables.c:703 -#: ../src/develop/imageop_gui.c:210 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 -msgid "yes" -msgstr "da" - -#: ../src/common/database.c:2801 ../src/libs/export_metadata.c:164 -#: ../src/libs/geotagging.c:811 -msgid "done" -msgstr "narejeno" - -#: ../src/common/database.c:2802 -msgid "" -"\n" -"successfully deleted the lock files.\n" -"you can now restart darktable\n" -msgstr "" -"\n" -"uspešno zbrisane datoteke zaklepa.\n" -"zdaj lahko ponovno poženete darktable\n" - -#. the button to close the popup -#: ../src/common/database.c:2803 ../src/common/database.c:2810 -#: ../src/libs/filters/filename.c:452 -msgid "ok" -msgstr "ok" - -#: ../src/common/database.c:2806 -msgid "error" -msgstr "napaka" - -#: ../src/common/database.c:2807 -#, c-format -msgid "" -"\n" -"at least one file could not be removed.\n" -"you may try to manually delete the files <i>data.db.lock</i> and <i>library." -"db.lock</i>\n" -"in folder <a href=\"file:///%s\">%s</a>.\n" -msgstr "" -"\n" -"vsaj ene datoteke ni bilo mogoče odstraniti.\n" -"lahko poskusite ročno zbrisati datoteki <i>data.db.lock</i> in <i>library.db." -"lock</i>\n" -"v mapi <a href=\"file:///%s\">%s</a>.\n" - -#: ../src/common/database.c:2924 -#, c-format -msgid "" -"the database lock file contains a pid that seems to be alive in your system: " -"%d" -msgstr "" -"datoteka, ki zaklepa podatkovno bazo vsebuje pid, ki je aktiven v vašem " -"sistemu: %d" - -#: ../src/common/database.c:2931 -#, c-format -msgid "the database lock file seems to be empty" -msgstr "videti je, da je datoteka zaklepanja prazna" - -#: ../src/common/database.c:2941 -#, c-format -msgid "error opening the database lock file for reading: %s" -msgstr "napaka pri odpiranju datoteke zaklepanja podatkovne baze za branje: %s" - -#. the database has to be upgraded, let's ask user -#: ../src/common/database.c:2978 -#, c-format -msgid "" -"the database schema has to be upgraded for\n" -"\n" -"<span style='italic'>%s</span>\n" -"\n" -"this might take a long time in case of a large database\n" -"\n" -"do you want to proceed or quit now to do a backup\n" -msgstr "" -"shema podatkovne baze, je potrebna nadgradnje\n" -"\n" -"<span style=\"italic\">%s</span>\n" -"\n" -"to utegne kar trajati pri veliki podatkovni bazi\n" -"\n" -"ali želite nadaljevati ali zapustiti program, da bi lahko prej izdelali " -"varnostno kopijo\n" - -#: ../src/common/database.c:2986 -msgid "darktable - schema migration" -msgstr "darktable - shema migracije" - -#: ../src/common/database.c:2987 ../src/common/database.c:3306 -#: ../src/common/database.c:3324 ../src/common/database.c:3491 -#: ../src/common/database.c:3509 -msgid "close darktable" -msgstr "zapri darktable" - -#: ../src/common/database.c:2987 -msgid "upgrade database" -msgstr "nadgradi podatkovno bazo" - -#: ../src/common/database.c:3286 ../src/common/database.c:3471 -#, c-format -msgid "" -"quick_check said:\n" -"%s \n" -msgstr "" -"quick_check said:\n" -"%s \n" - -#: ../src/common/database.c:3303 ../src/common/database.c:3321 -#: ../src/common/database.c:3488 ../src/common/database.c:3506 -msgid "darktable - error opening database" -msgstr "darktable - napaka pri odpiranju podatkovne baze" - -#: ../src/common/database.c:3308 ../src/common/database.c:3493 -msgid "attempt restore" -msgstr "poskus obnove" - -#: ../src/common/database.c:3310 ../src/common/database.c:3326 -#: ../src/common/database.c:3495 ../src/common/database.c:3511 -msgid "delete database" -msgstr "zbriši podatkovno bazo" - -#: ../src/common/database.c:3314 ../src/common/database.c:3499 -msgid "" -"do you want to close darktable now to manually restore\n" -"the database from a backup, attempt an automatic restore\n" -"from the most recent snapshot or delete the corrupted database\n" -"and start with a new one?" -msgstr "" -"ali želite zapreti program darktable, da ročno obnovite\n" -"zbirko podatkov iz varnostne kopije, poskusite samodejno obnoviti\n" -"iz najnovejšega posnetka ali izbrišete poškodovano bazo podatkov\n" -"in začeti z novo?" - -#: ../src/common/database.c:3330 ../src/common/database.c:3515 -msgid "" -"do you want to close darktable now to manually restore\n" -"the database from a backup or delete the corrupted database\n" -"and start with a new one?" -msgstr "" -"ali želite zapreti program darktable, da ročno obnovite\n" -"zbirko podatkov iz varnostne kopije, ali zbrišete poškodovano bazo podatkov\n" -"in začeti z novo?" - -#: ../src/common/database.c:3337 ../src/common/database.c:3520 -#, c-format -msgid "" -"an error has occurred while trying to open the database from\n" -"\n" -"<span style='italic'>%s</span>\n" -"\n" -"it seems that the database is corrupted.\n" -"%s%s" -msgstr "" -"prišlo je do napake pri poskusu odpiranja podatkovne baze\n" -"\n" -"<span style=\"italic\">%s</span>\n" -"\n" -"vse kaže, da je podatkovna baza pokvarjena.\n" -"%s%s" - -#: ../src/common/eigf.h:288 -msgid "" -"fast exposure independent guided filter failed to allocate memory, check " -"your RAM settings" -msgstr "" -"neodvisni vodeni filter za hitro izpostavljenost ni uspel dodeliti " -"pomnilnika, preverite vaše nastavitve RAM -a" - -#: ../src/common/exif.cc:5200 -#, c-format -msgid "cannot read XMP file '%s': '%s'" -msgstr "ni mogoče prebrati datoteke XMP '%s': '%s'" - -#: ../src/common/exif.cc:5258 -#, c-format -msgid "cannot write XMP file '%s': '%s'" -msgstr "ni mogoče zapisati datoteke XMP '%s': '%s'" - -#: ../src/common/fast_guided_filter.h:316 -msgid "fast guided filter failed to allocate memory, check your RAM settings" -msgstr "" -"hitri filter ni mogel pridobiti dovolj pomnilnika, preverite nastavitve za " -"RAM" - -#: ../src/common/film.c:345 -msgid "do you want to remove this empty directory?" -msgid_plural "do you want to remove these empty directories?" -msgstr[0] "ali želite odstraniti to prazno mapo?" -msgstr[1] "ali želite odstraniti ti prazni mapi?" -msgstr[2] "ali želite odstraniti te prazne mape?" -msgstr[3] "ali želite odstraniti te prazne mape?" - -#: ../src/common/film.c:352 -msgid "remove empty directory?" -msgid_plural "remove empty directories?" -msgstr[0] "naj odstranim prazno mapo?" -msgstr[1] "naj odstranim prazni mapi?" -msgstr[2] "naj odstranim prazne mape?" -msgstr[3] "naj odstranim prazne mape?" - -#: ../src/common/film.c:371 ../src/gui/preferences.c:816 -#: ../src/gui/styles_dialog.c:548 ../src/libs/geotagging.c:829 -#: ../src/libs/import.c:1551 -msgid "name" -msgstr "ime" - -#: ../src/common/film.c:477 -msgid "" -"cannot remove film roll having local copies with non accessible originals" -msgstr "" -"ne morem odstraniti filma, če imam lokalne kopije in nedostopne izvirnike" - -#: ../src/common/history.c:840 -msgid "you need to copy history from an image before you paste it onto another" -msgstr "" -"najprej morate prekopirati zgodovino slike in šele potem jo lahko nalepite " -"na drugo" - -#: ../src/common/image.c:325 -msgid "orphaned image" -msgstr "osirotela slika" - -#: ../src/common/image.c:620 -#, c-format -msgid "geo-location undone for %d image" -msgid_plural "geo-location undone for %d images" -msgstr[0] "geolokacija razveljavljena za %d sliko" -msgstr[1] "geolokacija razveljavljena za %d sliki" -msgstr[2] "geolokacija razveljavljena za %d slike" -msgstr[3] "geolokacija razveljavljena za %d slik" - -#: ../src/common/image.c:622 -#, c-format -msgid "geo-location re-applied to %d image" -msgid_plural "geo-location re-applied to %d images" -msgstr[0] "geolokacija je bila ponovno uporabljena na %d sliki" -msgstr[1] "geolokacija je bila ponovno uporabljena na %d slikah" -msgstr[2] "geolokacija je bila ponovno uporabljena na %d slikah" -msgstr[3] "geolokacija je bila ponovno uporabljena na %d slikah" - -#: ../src/common/image.c:645 -#, c-format -msgid "date/time undone for %d image" -msgid_plural "date/time undone for %d images" -msgstr[0] "datum/čas razveljavljen za %d sliko" -msgstr[1] "datum/čas razveljavljen za %d sliki" -msgstr[2] "datum/čas razveljavljen za %d slike" -msgstr[3] "datum/čas razveljavljen za %d slik" - -#: ../src/common/image.c:647 -#, c-format -msgid "date/time re-applied to %d image" -msgid_plural "date/time re-applied to %d images" -msgstr[0] "datum/čas ponovno uporabljen za %d sliko" -msgstr[1] "datum/čas ponovno uporabljen za %d sliki" -msgstr[2] "datum/čas ponovno uporabljen za %d slike" -msgstr[3] "datum/čas ponovno uporabljen za %d slik" - -#: ../src/common/image.c:2188 -#, c-format -msgid "cannot access local copy `%s'" -msgstr "ne morem doseči lokalne kopije `%s'" - -#: ../src/common/image.c:2195 -#, c-format -msgid "cannot write local copy `%s'" -msgstr "ne morem pisati lokalne kopije `%s'" - -#: ../src/common/image.c:2202 -#, c-format -msgid "error moving local copy `%s' -> `%s'" -msgstr "napaka pri premikanju lokalne kopije `%s' -> `%s'" - -#: ../src/common/image.c:2219 -#, c-format -msgid "error moving `%s': file not found" -msgstr "napaka pri premikanju `%s': datoteke ne najdem" - -#: ../src/common/image.c:2229 -#, c-format -msgid "error moving `%s' -> `%s': file exists" -msgstr "napaka pri premikanju `%s' -> `%s': datoteka že obstaja" - -#: ../src/common/image.c:2233 -#, c-format -msgid "error moving `%s' -> `%s'" -msgstr "napaka pri premikanju `%s' -> `%s'" - -#: ../src/common/image.c:2562 -msgid "cannot create local copy when the original file is not accessible." -msgstr "ne morem ustvariti lokalne kopije, če izvorna datoteka ni dostopna." - -#: ../src/common/image.c:2576 -msgid "cannot create local copy." -msgstr "ne morem ustvariti lokalne kopije." - -#: ../src/common/image.c:2656 ../src/control/jobs/control_jobs.c:777 -msgid "cannot remove local copy when the original file is not accessible." -msgstr "ne morem odstraniti lokalne kopije, če izvirnik ni dostopen." - -#: ../src/common/image.c:2821 -#, c-format -msgid "%d local copy has been synchronized" -msgid_plural "%d local copies have been synchronized" -msgstr[0] "%d lokalna kopija je sinhronizirana" -msgstr[1] "%d lokalni kopiji sta sinhronizirani" -msgstr[2] "%d lokalne kopije so sinhronizirane" -msgstr[3] "%d lokalne kopije so sinhronizirane" - -#: ../src/common/image.c:3022 -msgid "<b>WARNING</b>: camera is missing samples!" -msgstr "<b>OPOZORILO</b> : za kamero manjkajo vzorci!" - -#: ../src/common/image.c:3023 -msgid "" -"You must provide samples in <a href='https://raw.pixls.us/'>https://raw." -"pixls.us/</a>" -msgstr "" -"Dobavite vzorce v <a href='https://raw.pixls.us/'>https://raw.pixls.us/</a>" - -#: ../src/common/image.c:3024 -#, c-format -msgid "" -"for `%s' `%s'\n" -"in as many format/compression/bit depths as possible" -msgstr "" -"za `%s' `%s'\n" -"v vseh formatih/kompresijah/bitnih globinah, kar je le mogoče" - -#: ../src/common/image.c:3027 -msgid "or the <b>RAW won't be readable</b> in next version." -msgstr "ali <b>surovi format ne bo berljiv</b> v naslednji različici." - -#: ../src/common/image.h:209 ../src/common/ratings.c:284 -#: ../src/libs/history.c:843 ../src/libs/snapshots.c:779 -msgid "unknown" -msgstr "neznano" - -#. EMPTY_FIELD -#: ../src/common/image.h:210 -msgid "tiff" -msgstr "tiff" - -#: ../src/common/image.h:211 -msgid "png" -msgstr "png" - -#: ../src/common/image.h:212 ../src/imageio/format/j2k.c:652 -msgid "j2k" -msgstr "j2k" - -#: ../src/common/image.h:213 -msgid "jpeg" -msgstr "jpeg" - -#: ../src/common/image.h:214 -msgid "exr" -msgstr "exr" - -#: ../src/common/image.h:215 -msgid "rgbe" -msgstr "rgbe" - -#: ../src/common/image.h:216 -msgid "pfm" -msgstr "pfm" - -#: ../src/common/image.h:217 -msgid "GraphicsMagick" -msgstr "GraphicsMagick" - -#: ../src/common/image.h:218 -msgid "rawspeed" -msgstr "rawspeed" - -#: ../src/common/image.h:219 -msgid "netpnm" -msgstr "netpnm" - -#: ../src/common/image.h:220 -msgid "avif" -msgstr "avif" - -#: ../src/common/image.h:221 -msgid "ImageMagick" -msgstr "ImageMagick" - -#: ../src/common/image.h:222 -msgid "heif" -msgstr "heif" - -#: ../src/common/image.h:223 -msgid "libraw" -msgstr "libraw" - -#: ../src/common/image.h:224 -msgid "webp" -msgstr "webp" - -#: ../src/common/image.h:225 -msgid "jpeg xl" -msgstr "jpeg xl" - -#: ../src/common/image.h:226 -msgid "QOI" -msgstr "QOI" - -#: ../src/common/imagebuf.c:132 -msgid "insufficient memory" -msgstr "premalo pomnilnika" - -#: ../src/common/imagebuf.c:133 -msgid "" -"this module was unable to allocate\n" -"all of the memory required to process\n" -"the image. some or all processing\n" -"has been skipped." -msgstr "" -"ta modul ni mogel dodeliti vsega\n" -"pomnilnika, potrebnega za\n" -"obdelavo slike. nekaj ali vsa\n" -"obdelava je bila preskočena." - -#: ../src/common/import_session.c:308 -msgid "" -"couldn't expand to a unique filename for session, please check your import " -"session settings." -msgstr "" -"ne morem razširiti v enolično ime datoteke te seje, prosim, preverite " -"nastavitve uvoza." - -#: ../src/common/import_session.c:401 -msgid "requested session path not available. device not mounted?" -msgstr "zahtevana pot seje ni na voljo. naprava ni priklopljena?" - -#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:197 -msgid "legacy" -msgstr "zapuščina" - -#: ../src/common/iop_order.c:61 -msgid "v3.0 RAW" -msgstr "v3.0 surovo" - -#: ../src/common/iop_order.c:62 -msgid "v3.0 JPEG" -msgstr "v3.0 JPEG" - -#: ../src/common/iop_profile.c:1205 -#, c-format -msgid "" -"darktable loads %s from\n" -"<b>%s</b>\n" -"or, if this directory does not exist, from\n" -"<b>%s</b>" -msgstr "" -"darktable nalaga %s iz\n" -"<b>%s</b>\n" -"ali, če ta imenik ne obstaja, iz\n" -"<b>%s</b>" - -#. clang-format off -#: ../src/common/metadata.c:46 -msgid "creator" -msgstr "ustvarjalec" - -#: ../src/common/metadata.c:47 -msgid "publisher" -msgstr "izdajatelj" - -#. title -#: ../src/common/metadata.c:48 ../src/imageio/format/pdf.c:574 -#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:169 -#: ../src/imageio/storage/gallery.c:170 ../src/imageio/storage/latex.c:169 -#: ../src/imageio/storage/piwigo.c:1058 ../src/libs/filtering.c:69 -msgid "title" -msgstr "naslov" - -#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:552 -#: ../src/libs/filtering.c:70 -msgid "description" -msgstr "opis" - -#: ../src/common/metadata.c:50 -msgid "rights" -msgstr "pravice" - -#: ../src/common/metadata.c:51 -msgid "notes" -msgstr "zabeležke" - -#: ../src/common/metadata.c:52 -msgid "version name" -msgstr "ime verzije" - -#: ../src/common/metadata.c:53 ../src/libs/live_view.c:319 -#: ../src/libs/metadata_view.c:124 -msgid "image id" -msgstr "id slike" - -#: ../src/common/mipmap_cache.c:1065 ../src/imageio/imageio.c:787 -#, c-format -msgid "image `%s' is not available!" -msgstr "slike '%s' ni na voljo!" - -#: ../src/common/noiseprofiles.c:26 -msgid "generic poissonian" -msgstr "splošna Poissonova" - -#: ../src/common/noiseprofiles.c:61 -#, c-format -msgid "noiseprofile file `%s' is not valid" -msgstr "profil šuma `%s' ni veljaven" - -#: ../src/common/opencl.c:1376 -#, c-format -msgid "" -"OpenCL initializing problem:\n" -"%s" -msgstr "" -"problem postavljanje začetnih vrednosti OpenCL:\n" -"%s" - -#: ../src/common/opencl.c:1439 -msgid "" -"due to a slow GPU hardware acceleration using OpenCL has been deactivated" -msgstr "" -"zaradi počasnega grafičnega pospeševanja je bila funkcija OpenCL izklopljena" - -#: ../src/common/opencl.c:1449 -msgid "" -"multiple GPUs detected - OpenCL scheduling profile has been set accordingly" -msgstr "" -"zaznano je več grafičnih procesorjev - časovni plan OpenCL je ustrezno " -"prilagojen" - -#: ../src/common/opencl.c:1462 -msgid "" -"very fast GPU detected - OpenCL scheduling profile has been set accordingly" -msgstr "" -"zaznan zelo hiter grafični procesor - časovni plan OpenCL je ustrezno " -"prilagojen" - -#: ../src/common/opencl.c:1471 -msgid "OpenCL scheduling profile set to default" -msgstr "časovni plan OpenCL nastavljen na privzetega" - -#: ../src/common/pdf.h:88 ../src/iop/lens.cc:3441 -#: ../src/libs/filters/focal.c:74 ../src/libs/print_settings.c:81 -msgid "mm" -msgstr "mm" - -#: ../src/common/pdf.h:89 ../src/libs/export.c:520 ../src/libs/export.c:1145 -#: ../src/libs/print_settings.c:81 -msgid "cm" -msgstr "cm" - -#: ../src/common/pdf.h:90 ../src/libs/print_settings.c:81 -msgid "inch" -msgstr "palec" - -#: ../src/common/pdf.h:91 -msgid "\"" -msgstr "\"" - -#: ../src/common/pdf.h:104 ../src/iop/borders.c:958 -msgid "A4" -msgstr "A4" - -#: ../src/common/pdf.h:105 -msgid "A3" -msgstr "A3" - -#: ../src/common/pdf.h:106 -msgid "Letter" -msgstr "ameriško pismo (letter)" - -#: ../src/common/pdf.h:107 -msgid "Legal" -msgstr "ameriški pravni format (legal)" - -#: ../src/common/pwstorage/pwstorage.c:85 -msgid "GNOME Keyring backend is no longer supported. configure a different one" -msgstr "GNOME Keyring ni več podprt, izberite kaj drugega" - -#: ../src/common/ratings.c:172 -#, c-format -msgid "rejecting %d image" -msgid_plural "rejecting %d images" -msgstr[0] "zavračam sliko %d" -msgstr[1] "zavračam sliki %d" -msgstr[2] "zavračam slike %d" -msgstr[3] "zavračam slike %d" - -#: ../src/common/ratings.c:174 -#, c-format -msgid "applying rating %d to %d image" -msgid_plural "applying rating %d to %d images" -msgstr[0] "dodajam oceno %d na %d sliko" -msgstr[1] "dodajam oceno %d na %d sliki" -msgstr[2] "dodajam oceno %d na %d slike" -msgstr[3] "dodajam oceno %d na %d slik" - -#: ../src/common/ratings.c:221 -msgid "no images selected to apply rating" -msgstr "ni izbrane slike, ki bi ji dodal oceno" - -#: ../src/common/ratings.c:275 ../src/libs/metadata_view.c:351 -msgid "image rejected" -msgstr "slika zavrnjena" - -#: ../src/common/ratings.c:277 -msgid "image rated to 0 star" -msgstr "slika ocenjena z 0 zvezdic" - -#: ../src/common/ratings.c:279 -#, c-format -msgid "image rated to %s" -msgstr "slike ocenjene na %s" - -#: ../src/common/ratings.c:306 ../src/libs/select.c:39 -#: ../src/views/lighttable.c:766 -msgid "select" -msgstr "izberi" - -#: ../src/common/ratings.c:307 -msgid "upgrade" -msgstr "nadgradi" - -#: ../src/common/ratings.c:308 -msgid "downgrade" -msgstr "odpravi nadgradnjo na prejšnjo" - -#: ../src/common/ratings.c:312 -msgid "zero" -msgstr "nič" - -#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:277 -msgid "one" -msgstr "en" - -#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:278 -msgid "two" -msgstr "dva" - -#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:279 -msgid "three" -msgstr "tri" - -#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:280 -msgid "four" -msgstr "štiri" - -#: ../src/common/ratings.c:317 ../src/libs/filters/rating_range.c:281 -msgid "five" -msgstr "pet" - -#: ../src/common/ratings.c:318 -msgid "reject" -msgstr "zavrni" - -#: ../src/common/styles.c:244 -#, c-format -msgid "style with name '%s' already exists" -msgstr "slog z imenom '%s' že obstaja" - -#: ../src/common/styles.c:270 ../src/common/styles.c:1776 -#: ../src/libs/styles.c:54 -msgid "styles" -msgstr "slogi" - -#: ../src/common/styles.c:548 ../src/gui/styles_dialog.c:239 -#, c-format -msgid "style named '%s' successfully created" -msgstr "uspešno ustvarjen slog z imenom '%s'" - -#: ../src/common/styles.c:689 ../src/common/styles.c:719 -#: ../src/common/styles.c:759 ../src/dtgtk/culling.c:1097 -msgid "no image selected!" -msgstr "ni izbrane slike!" - -#: ../src/common/styles.c:693 -#, c-format -msgid "style %s successfully applied!" -msgstr "slog %s uspešno uporabljen!" - -#: ../src/common/styles.c:709 -msgid "no images nor styles selected!" -msgstr "ni izbrane slike niti sloga!" - -#: ../src/common/styles.c:714 -msgid "no styles selected!" -msgstr "ni izbranega sloga!" - -#: ../src/common/styles.c:744 -msgid "style successfully applied!" -msgid_plural "styles successfully applied!" -msgstr[0] "slog %s uspešno uporabljen!" -msgstr[1] "sloga %s uspešno uporabljena!" -msgstr[2] "slogi %s uspešno uporabljeni!" -msgstr[3] "slogi %s uspešno uporabljeni!" - -#: ../src/common/styles.c:840 -#, c-format -msgid "module `%s' version mismatch: %d != %d" -msgstr "neujemanje verzij modulov `%s' : %d != %d" - -#: ../src/common/styles.c:1124 -#, c-format -msgid "applied style `%s' on current image" -msgstr "uporabljen slog '%s' na trenutni sliki" - -#: ../src/common/styles.c:1378 -#, c-format -msgid "failed to overwrite style file for %s" -msgstr "nisem mogel prepisati sloga za %s" - -#: ../src/common/styles.c:1384 -#, c-format -msgid "style file for %s exists" -msgstr "datoteka s slogom %s že obstaja" - -#: ../src/common/styles.c:1667 -#, c-format -msgid "style %s was successfully imported" -msgstr "slog %s je bil uspešno uvožen" - -#. Failed to open file, clean up. -#: ../src/common/styles.c:1711 -#, c-format -msgid "could not read file `%s'" -msgstr "ni bilo mogoče prebrati datoteke `%s'" - -#: ../src/common/utility.c:505 -msgid "above sea level" -msgstr "nad morjem" - -#: ../src/common/utility.c:506 -msgid "below sea level" -msgstr "pod morjem" - -#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:880 -msgid "m" -msgstr "m" - -#. Column 1 - "make" of the camera. -#. * Column 2 - "model" (use the "make" and "model" as provided by DCRaw). -#. * Column 3 - WB name. -#. * Column 4 - Fine tuning. MUST be in increasing order. 0 for no fine tuning. -#. * It is enough to give only the extreme values, the other values -#. * will be interpolated. -#. * Column 5 - Channel multipliers. -#. * -#. * Minolta's ALPHA and MAXXUM models are treated as the Dynax model. -#. * -#. * WB name is standardized to one of the following: -#. "Sunlight" and other variation should be switched to this: -#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:323 -msgid "daylight" -msgstr "dnevna svetloba" - -#. Probably same as above: -#: ../src/common/wb_presets.c:44 -msgid "direct sunlight" -msgstr "neposredna sončna svetloba" - -#: ../src/common/wb_presets.c:45 -msgid "cloudy" -msgstr "oblačno" - -#. "Shadows" should be switched to this: -#: ../src/common/wb_presets.c:47 -msgid "shade" -msgstr "senca" - -#: ../src/common/wb_presets.c:48 -msgid "incandescent" -msgstr "svetloba žarnice" - -#: ../src/common/wb_presets.c:49 -msgid "incandescent warm" -msgstr "topla svetloba žarnice" - -#. Same as "Incandescent": -#: ../src/common/wb_presets.c:51 -msgid "tungsten" -msgstr "volframova" - -#: ../src/common/wb_presets.c:52 -msgid "fluorescent" -msgstr "fluorescentna" - -#. In Canon cameras and some newer Nikon cameras: -#: ../src/common/wb_presets.c:54 -msgid "fluorescent high" -msgstr "visokofrekvenčna fluorescentna" - -#: ../src/common/wb_presets.c:55 -msgid "cool white fluorescent" -msgstr "hladna bela fluorescentna" - -#: ../src/common/wb_presets.c:56 -msgid "warm white fluorescent" -msgstr "topla bela fluorescentna" - -#: ../src/common/wb_presets.c:57 -msgid "daylight fluorescent" -msgstr "dnevna fluorescentna" - -#: ../src/common/wb_presets.c:58 -msgid "neutral fluorescent" -msgstr "nevtralna fluorescentna" - -#: ../src/common/wb_presets.c:59 -msgid "white fluorescent" -msgstr "bela fluorescentna" - -#. In some newer Nikon cameras: -#: ../src/common/wb_presets.c:61 -msgid "sodium-vapor fluorescent" -msgstr "natrijeva" - -#: ../src/common/wb_presets.c:62 -msgid "day white fluorescent" -msgstr "dnevno bela fluorescentna" - -#: ../src/common/wb_presets.c:63 -msgid "high temp. mercury-vapor fluorescent" -msgstr "visoko temperaturna živosrebrna" - -#. found in Nikon Coolpix P1000 -#: ../src/common/wb_presets.c:65 -msgid "high temp. mercury-vapor" -msgstr "visoko temperaturna živosrebrna" - -#. On Some Panasonic -#: ../src/common/wb_presets.c:67 -msgid "D55" -msgstr "D55" - -#: ../src/common/wb_presets.c:69 -msgid "flash" -msgstr "bliskavica" - -#. For Olympus with no real "Flash" preset: -#: ../src/common/wb_presets.c:71 -msgid "flash (auto mode)" -msgstr "bliskavica (avtomatski režim)" - -#: ../src/common/wb_presets.c:72 -msgid "evening sun" -msgstr "večerno sonce" - -#: ../src/common/wb_presets.c:73 -msgid "underwater" -msgstr "pod vodo" - -#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2447 -msgid "black & white" -msgstr "črno-belo" - -#: ../src/common/wb_presets.c:76 -msgid "spot WB" -msgstr "točkovna ČB" - -#: ../src/common/wb_presets.c:77 -msgid "manual WB" -msgstr "ročna ČB" - -#: ../src/common/wb_presets.c:78 -msgid "camera WB" -msgstr "kamera ČB" - -#: ../src/common/wb_presets.c:79 -msgid "auto WB" -msgstr "avto ČB" - -#: ../src/control/control.c:66 ../src/gui/accelerators.c:138 -#: ../src/views/darkroom.c:2162 -msgid "hold" -msgstr "drži" - -#: ../src/control/control.c:102 ../src/control/control.c:205 -msgid "modifiers" -msgstr "spremenjene možnosti" - -#: ../src/control/control.c:111 -msgctxt "accel" -msgid "global" -msgstr "globalni" - -#: ../src/control/control.c:118 -msgctxt "accel" -msgid "views" -msgstr "pogledi" - -#: ../src/control/control.c:125 -msgctxt "accel" -msgid "thumbtable" -msgstr "tabela predoglednih sličic" - -#: ../src/control/control.c:132 -msgctxt "accel" -msgid "utility modules" -msgstr "uporabni moduli" - -#: ../src/control/control.c:139 -msgctxt "accel" -msgid "format" -msgstr "format" - -#: ../src/control/control.c:146 -msgctxt "accel" -msgid "storage" -msgstr "shramba" - -#: ../src/control/control.c:153 -msgctxt "accel" -msgid "processing modules" -msgstr "moduli obdelav" - -#: ../src/control/control.c:160 -msgctxt "accel" -msgid "<blending>" -msgstr "<mešanje>" - -#: ../src/control/control.c:167 -msgctxt "accel" -msgid "Lua scripts" -msgstr "skripti Lua" - -#: ../src/control/control.c:174 -msgctxt "accel" -msgid "fallbacks" -msgstr "rešitve v sili" - -#: ../src/control/control.c:183 -msgctxt "accel" -msgid "<focused>" -msgstr "<naostreno>" - -#: ../src/control/control.c:202 -msgid "show accels window" -msgstr "prikaži okno pospeševanja" - -#: ../src/control/control.c:363 -msgid "working..." -msgstr "delam..." - -#: ../src/control/crawler.c:425 -#, c-format -msgid "ERROR: %s NOT synced XMP → DB" -msgstr "NAPAKA: %s NI sinhronizirana XMP → DB" - -#: ../src/control/crawler.c:426 ../src/control/crawler.c:492 -#: ../src/control/crawler.c:561 -msgid "" -"ERROR: cannot write the database. the destination may be full, offline or " -"read-only." -msgstr "" -"NAPAKA: ni mogoče pisati v podatkovno bazo. cilj je morda poln, nepovezan " -"ali dovoljen samo za branje." - -#: ../src/control/crawler.c:433 -#, c-format -msgid "SUCCESS: %s synced XMP → DB" -msgstr "USPEH: %s sinhronizirani XMP → DB" - -#: ../src/control/crawler.c:455 -#, c-format -msgid "ERROR: %s NOT synced DB → XMP" -msgstr "NAPAKA: %s NE sinhronizirani DB → XMP" - -#: ../src/control/crawler.c:457 ../src/control/crawler.c:516 -#: ../src/control/crawler.c:582 -#, c-format -msgid "" -"ERROR: cannot write %s \n" -"the destination may be full, offline or read-only." -msgstr "" -"NAPAKA: ni mogoče pisati %s\n" -"cilj je morda poln, nepovezan ali dovoljen samo za branje." - -#: ../src/control/crawler.c:463 -#, c-format -msgid "SUCCESS: %s synced DB → XMP" -msgstr "USPEH: %s sinhronizirani DB → XMP" - -#: ../src/control/crawler.c:489 -#, c-format -msgid "ERROR: %s NOT synced new (XMP) → old (DB)" -msgstr "NAPAKA: %s NI sinhronizirani novi (XMP) → stari (DB)" - -#: ../src/control/crawler.c:499 -#, c-format -msgid "SUCCESS: %s synced new (XMP) → old (DB)" -msgstr "USPEH: %s sinhronizirani nova (XMP) → stara (DB)" - -#: ../src/control/crawler.c:513 -#, c-format -msgid "ERROR: %s NOT synced new (DB) → old (XMP)" -msgstr "USPEH: %s NE sinhronizirani nova (XMP) → stara (DB)" - -#: ../src/control/crawler.c:521 -#, c-format -msgid "SUCCESS: %s synced new (DB) → old (XMP)" -msgstr "USPEH: %s sinhronizirani nova (DB) → stara (XMP)" - -#: ../src/control/crawler.c:530 ../src/control/crawler.c:598 -#, c-format -msgid "EXCEPTION: %s has inconsistent timestamps" -msgstr "IZJEMA: %s ima nekonsistentne časovne zabeležke" - -#: ../src/control/crawler.c:558 -#, c-format -msgid "ERROR: %s NOT synced old (XMP) → new (DB)" -msgstr "NAPAKA: %s NE sinhronizirani stara (XMP) → nova (DB)" - -#: ../src/control/crawler.c:567 -#, c-format -msgid "SUCCESS: %s synced old (XMP) → new (DB)" -msgstr "USPEH: %s sinhronizirani stara (XMP) → nova (DB)" - -#: ../src/control/crawler.c:579 -#, c-format -msgid "ERROR: %s NOT synced old (DB) → new (XMP)" -msgstr "NAPAKA: %s NE sinhronizirani stara (DB) → nova (XMP)" - -#: ../src/control/crawler.c:588 -#, c-format -msgid "SUCCESS: %s synced old (DB) → new (XMP)" -msgstr "USPEH: %s sinhronizirani stara (DB) → nova (XMP)" - -#: ../src/control/crawler.c:670 -#, c-format -msgid "%id %02dh %02dm %02ds" -msgstr "%id %02dh %02dm %02ds" - -#: ../src/control/crawler.c:740 ../src/imageio/storage/disk.c:168 -#: ../src/imageio/storage/gallery.c:154 ../src/imageio/storage/latex.c:153 -#: ../src/imageio/storage/latex.c:171 -msgid "path" -msgstr "pot" - -#: ../src/control/crawler.c:749 -msgid "XMP timestamp" -msgstr "časovna oznaka XMP" - -#: ../src/control/crawler.c:754 -msgid "database timestamp" -msgstr "časovna oznaka v bazi" - -#: ../src/control/crawler.c:759 -msgid "newest" -msgstr "najnovejša" - -#: ../src/control/crawler.c:765 -msgid "time difference" -msgstr "časovna razlika" - -#: ../src/control/crawler.c:777 -msgid "updated XMP sidecar files found" -msgstr "najdena osvežena priklopna datoteka XMP" - -#: ../src/control/crawler.c:778 -msgid "_close" -msgstr "_zapri" - -#. setup selection accelerators -#. action-box -#: ../src/control/crawler.c:793 ../src/dtgtk/thumbtable.c:2578 -#: ../src/libs/import.c:1722 ../src/libs/select.c:135 -msgid "select all" -msgstr "izberi vse" - -#: ../src/control/crawler.c:794 ../src/dtgtk/thumbtable.c:2580 -#: ../src/libs/import.c:1726 ../src/libs/select.c:139 -msgid "select none" -msgstr "ne izberi nič" - -#: ../src/control/crawler.c:795 ../src/dtgtk/thumbtable.c:2582 -#: ../src/libs/select.c:143 -msgid "invert selection" -msgstr "inverzna izbira" - -#: ../src/control/crawler.c:807 -msgid "on the selection:" -msgstr "na izbiri:" - -#: ../src/control/crawler.c:808 -msgid "keep the XMP edit" -msgstr "ohrani urejen XMP" - -#: ../src/control/crawler.c:809 -msgid "keep the database edit" -msgstr "ohranjaj spremembe podatkovne baze" - -#: ../src/control/crawler.c:810 -msgid "keep the newest edit" -msgstr "ohranjaj najnovejše spremembe" - -#: ../src/control/crawler.c:811 -msgid "keep the oldest edit" -msgstr "ohranjaj najstarejše spremembe" - -#: ../src/control/crawler.c:836 -msgid "synchronization log" -msgstr "dnevnik sinhronizacije" - -#: ../src/control/jobs/camera_jobs.c:80 -#, c-format -msgid "capturing %d image" -msgid_plural "capturing %d images" -msgstr[0] "zajemam %d slika" -msgstr[1] "zajemam %d sliki" -msgstr[2] "zajemam %d slike" -msgstr[3] "zajemam %d slik" - -#: ../src/control/jobs/camera_jobs.c:114 -msgid "please set your camera to manual mode first!" -msgstr "prosim, najprej nastavite vašo kamero v ročni režim!" - -#: ../src/control/jobs/camera_jobs.c:211 -msgid "capture images" -msgstr "zajem slik" - -#: ../src/control/jobs/camera_jobs.c:245 -#, c-format -msgid "%d/%d imported to %s" -msgid_plural "%d/%d imported to %s" -msgstr[0] "%d/%d uvožen do %s" -msgstr[1] "%d/%d uvoženi do %s" -msgstr[2] "%d/%d uvožene do %s" -msgstr[3] "%d/%d uvožene do %s" - -#: ../src/control/jobs/camera_jobs.c:298 -msgid "starting to import images from camera" -msgstr "začenjam uvažati slike iz kamere" - -#: ../src/control/jobs/camera_jobs.c:309 -#, c-format -msgid "importing %d image from camera" -msgid_plural "importing %d images from camera" -msgstr[0] "uvažam %d sliko iz kamere" -msgstr[1] "uvažam %d sliki iz kamere" -msgstr[2] "uvažam %d slik iz kamere" -msgstr[3] "uvažam %d slik iz kamere" - -#: ../src/control/jobs/camera_jobs.c:369 -msgid "import images from camera" -msgstr "uvozi slike iz kamere" - -#: ../src/control/jobs/control_jobs.c:145 -msgid "failed to create film roll for destination directory, aborting move.." -msgstr "ni uspela tvorba filma v ciljni mapi, prekinjam prenos.." - -#: ../src/control/jobs/control_jobs.c:388 -msgid "exposure bracketing only works on raw images." -msgstr "kadriranje osvetlitve deluje samo na surovih slikah." - -#: ../src/control/jobs/control_jobs.c:395 -msgid "images have to be of same size and orientation!" -msgstr "slike morajo biti enake velikosti in orientacije!" - -#: ../src/control/jobs/control_jobs.c:490 -#, c-format -msgid "merging %d image" -msgid_plural "merging %d images" -msgstr[0] "sestavljam %d sliko" -msgstr[1] "sestavljam %d sliki" -msgstr[2] "sestavljam %d slike" -msgstr[3] "sestavljam %d slik" - -#: ../src/control/jobs/control_jobs.c:561 -#, c-format -msgid "wrote merged HDR `%s'" -msgstr "napisana zložena HDR slika `%s'" - -#: ../src/control/jobs/control_jobs.c:593 -#, c-format -msgid "duplicating %d image" -msgid_plural "duplicating %d images" -msgstr[0] "podvajam %d sliko" -msgstr[1] "podvajam %d sliki" -msgstr[2] "podvajam %d slike" -msgstr[3] "podvajam %d slik" - -#: ../src/control/jobs/control_jobs.c:634 -#, c-format -msgid "flipping %d image" -msgid_plural "flipping %d images" -msgstr[0] "prezrcalim %d sliko" -msgstr[1] "prezrcalim %d sliki" -msgstr[2] "prezrcalim %d slike" -msgstr[3] "prezrcalim %d slik" - -#: ../src/control/jobs/control_jobs.c:665 -#, c-format -msgid "set %d color image" -msgid_plural "setting %d color images" -msgstr[0] "nastavljam %d barvno sliko" -msgstr[1] "nastavljam %d barvni sliki" -msgstr[2] "nastavljam %d barvnih slik" -msgstr[3] "nastavljam %d barvnih slik" - -#: ../src/control/jobs/control_jobs.c:667 -#, c-format -msgid "set %d monochrome image" -msgid_plural "setting %d monochrome images" -msgstr[0] "nastavljam %d enobarvno sliko" -msgstr[1] "nastavljanje %d enobarvnih slik" -msgstr[2] "nastavljanje %d enobarvnih slik" -msgstr[3] "nastavljanje %d enobarvnih slik" - -#: ../src/control/jobs/control_jobs.c:753 -#, c-format -msgid "removing %d image" -msgid_plural "removing %d images" -msgstr[0] "odstranjujem %d sliko" -msgstr[1] "odstranjujem %d sliki" -msgstr[2] "odstranjujem %d slike" -msgstr[3] "odstranjujem %d slik" - -#: ../src/control/jobs/control_jobs.c:860 -#, c-format -msgid "" -"could not send %s to trash%s\n" -"%s\n" -"\n" -" do you want to delete the file from disk without using trash?" -msgstr "" -"ni bilo mogoče poslati %s v smeti%s\n" -"%s\n" -"\n" -" ali želite zbrisati datoteko z diska brez uporabe smetnjaka?" - -#: ../src/control/jobs/control_jobs.c:861 -#, c-format -msgid "" -"could not delete from disk %s%s\n" -"%s" -msgstr "" -"ni bilo mogoče zbrisati z diska %s%s\n" -"%s" - -#: ../src/control/jobs/control_jobs.c:869 -msgid "_apply to all" -msgstr "_uveljavi za vse" - -#: ../src/control/jobs/control_jobs.c:877 -msgid "_delete permanently" -msgstr "_zbriši permanentno" - -#: ../src/control/jobs/control_jobs.c:878 -#: ../src/control/jobs/control_jobs.c:882 -msgid "_remove from library" -msgstr "_izloči iz knjižnice" - -#: ../src/control/jobs/control_jobs.c:884 -msgid "_skip" -msgstr "_preskoči" - -#: ../src/control/jobs/control_jobs.c:885 -msgid "abort" -msgstr "prekini" - -#: ../src/control/jobs/control_jobs.c:891 -msgid "trashing error" -msgstr "napaka pri prenosu v smeti" - -#: ../src/control/jobs/control_jobs.c:892 -msgid "deletion error" -msgstr "napaka pri brisanju" - -#: ../src/control/jobs/control_jobs.c:1039 -#, c-format -msgid "trashing %d image" -msgid_plural "trashing %d images" -msgstr[0] "mečem v smeti %d sliko" -msgstr[1] "mečem v smeti %d sliki" -msgstr[2] "mečem v smeti %d slike" -msgstr[3] "mečem v smeti %d slik" - -#: ../src/control/jobs/control_jobs.c:1041 -#, c-format -msgid "deleting %d image" -msgid_plural "deleting %d images" -msgstr[0] "brišem %d sliko" -msgstr[1] "brišem %d sliki" -msgstr[2] "brišem %d slike" -msgstr[3] "brišem %d slik" - -#: ../src/control/jobs/control_jobs.c:1177 -msgid "failed to parse GPX file" -msgstr "razpoznavanje datoteke GPX ni uspelo" - -#: ../src/control/jobs/control_jobs.c:1224 -#, c-format -msgid "applied matched GPX location onto %d image" -msgid_plural "applied matched GPX location onto %d images" -msgstr[0] "uveljavljam ustrezno lokacijo GPX na %d sliko" -msgstr[1] "uveljavljam ustrezno lokacijo GPX na %d sliki" -msgstr[2] "uveljavljam ustrezno lokacijo GPX na %d slike" -msgstr[3] "uveljavljam ustrezno lokacijo GPX na %d slik" - -#: ../src/control/jobs/control_jobs.c:1241 -#, c-format -msgid "moving %d image" -msgstr "prenašam sliko %d" - -#: ../src/control/jobs/control_jobs.c:1242 -#, c-format -msgid "moving %d images" -msgstr "prenašam slike %d" - -#: ../src/control/jobs/control_jobs.c:1247 -#, c-format -msgid "copying %d image" -msgstr "kopiram sliko %d" - -#: ../src/control/jobs/control_jobs.c:1248 -#, c-format -msgid "copying %d images" -msgstr "kopiram slike %d" - -#: ../src/control/jobs/control_jobs.c:1263 -#, c-format -msgid "creating local copy of %d image" -msgid_plural "creating local copies of %d images" -msgstr[0] "tvorim lokalno kopijo %d slike" -msgstr[1] "tvorim lokalno kopijo %d sliki" -msgstr[2] "tvorim lokalno kopijo %d slik" -msgstr[3] "tvorim lokalno kopijo %d slik" - -#: ../src/control/jobs/control_jobs.c:1266 -#, c-format -msgid "removing local copy of %d image" -msgid_plural "removing local copies of %d images" -msgstr[0] "odstranjujem lokalno kopijo %d slike" -msgstr[1] "odstranjujem lokalni kopiji %d slik" -msgstr[2] "odstranjujem lokalne kopije %d slik" -msgstr[3] "odstranjujem lokalne kopije %d slik" - -#: ../src/control/jobs/control_jobs.c:1313 -#, c-format -msgid "refreshing info for %d image" -msgid_plural "refreshing info for %d images" -msgstr[0] "osvežene info o sliki %d" -msgstr[1] "osvežene info o slikah %d" -msgstr[2] "osvežene info o slikah %d" -msgstr[3] "osvežene info o slikah %d" - -#: ../src/control/jobs/control_jobs.c:1398 -#, c-format -msgid "exporting %d image.." -msgid_plural "exporting %d images.." -msgstr[0] "izvažam %d sliko.." -msgstr[1] "izvažam %d sliki.." -msgstr[2] "izvažam %d slike.." -msgstr[3] "izvažam %d slik.." - -#: ../src/control/jobs/control_jobs.c:1400 -msgid "no image to export" -msgstr "ni slik za izvoz" - -#: ../src/control/jobs/control_jobs.c:1438 -#, c-format -msgid "exporting %d / %d to %s" -msgstr "izvažam %d / %d na %s" - -#: ../src/control/jobs/control_jobs.c:1459 ../src/views/darkroom.c:800 -#: ../src/views/print.c:369 -#, c-format -msgid "image `%s' is currently unavailable" -msgstr "slika '%s' je trenutno nedostopna" - -#: ../src/control/jobs/control_jobs.c:1551 -msgid "merge HDR image" -msgstr "sestavi HDR sliko" - -#: ../src/control/jobs/control_jobs.c:1565 -msgid "duplicate images" -msgstr "podvoji slike" - -#: ../src/control/jobs/control_jobs.c:1571 -msgid "flip images" -msgstr "prevrni sliko" - -#: ../src/control/jobs/control_jobs.c:1578 -msgid "set monochrome images" -msgstr "nastavi enobarvne slike" - -#. get all selected images now, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1585 -msgid "remove images" -msgstr "odstrani slike" - -#: ../src/control/jobs/control_jobs.c:1598 -msgid "remove image?" -msgstr "naj odstranim sliko?" - -#: ../src/control/jobs/control_jobs.c:1598 -msgid "remove images?" -msgstr "naj odstranim slike?" - -#: ../src/control/jobs/control_jobs.c:1599 -#, c-format -msgid "" -"do you really want to remove %d image from darktable\n" -"(without deleting file on disk)?" -msgid_plural "" -"do you really want to remove %d images from darktable\n" -"(without deleting files on disk)?" -msgstr[0] "" -"ali res želite odstraniti %d sliko iz darktable?\n" -"(ne da bi jo zbrisali z diska)?" -msgstr[1] "" -"ali res želite odstraniti %d sliki iz darktable?n(ne da bi ju zbrisali z " -"diska)?" -msgstr[2] "" -"ali res želite odstraniti %d slike iz darktable?n(ne da bi jih zbrisali z " -"diska)?" -msgstr[3] "" -"ali res želite odstraniti %d slik iz darktable?n(ne da bi jo zbrisali z " -"diska)?" - -#. first get all selected images, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1614 -#: ../src/control/jobs/control_jobs.c:1647 -msgid "delete images" -msgstr "zbriši slike" - -#: ../src/control/jobs/control_jobs.c:1630 -#: ../src/control/jobs/control_jobs.c:1660 -msgid "delete image?" -msgstr "naj odstranim sliko?" - -#: ../src/control/jobs/control_jobs.c:1630 -msgid "delete images?" -msgstr "naj odstranim slike?" - -#: ../src/control/jobs/control_jobs.c:1631 -#, c-format -msgid "" -"do you really want to physically delete %d image\n" -"(using trash if possible)?" -msgid_plural "" -"do you really want to physically delete %d images\n" -"(using trash if possible)?" -msgstr[0] "" -"ali res želite fizično odstraniti %d sliko z diska?\n" -"(z uporabo koša za smeti, če je mogoče)?" -msgstr[1] "" -"ali res želite fizično odstraniti %d sliki z diska?\n" -"(z uporabo koša za smeti, če je mogoče)?" -msgstr[2] "" -"ali res želite fizično odstraniti %d slike z diska?\n" -"(z uporabo koša za smeti, če je mogoče)?" -msgstr[3] "" -"ali res želite fizično odstraniti %d slik z diska?\n" -"(z uporabo koša za smeti, če je mogoče)?" - -#: ../src/control/jobs/control_jobs.c:1633 -#, c-format -msgid "do you really want to physically delete %d image from disk?" -msgid_plural "do you really want to physically delete %d images from disk?" -msgstr[0] "ali res želite fizično odstraniti %d sliko z diska?" -msgstr[1] "ali res želite fizično odstraniti %d sliki z diska?" -msgstr[2] "ali res želite fizično odstraniti %d slike z diska?" -msgstr[3] "ali res želite fizično odstraniti %d slik z diska?" - -#: ../src/control/jobs/control_jobs.c:1661 -msgid "" -"do you really want to physically delete selected image (using trash if " -"possible)?" -msgstr "" -"ali res želite fizično odstraniti izbrano sliko z diska (z uporabo koša za " -"smeti, če je mogoče)?" - -#: ../src/control/jobs/control_jobs.c:1662 -msgid "do you really want to physically delete selected image from disk?" -msgstr "ali res želite fizično odstraniti izbrano sliko z diska?" - -#: ../src/control/jobs/control_jobs.c:1677 -msgid "move images" -msgstr "prenesi slike" - -#: ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 -msgid "_select as destination" -msgstr "_izberi kot cilj" - -#: ../src/control/jobs/control_jobs.c:1708 -msgid "move image?" -msgid_plural "move images?" -msgstr[0] "prenesem sliko?" -msgstr[1] "prenesem sliki?" -msgstr[2] "prenesem slike?" -msgstr[3] "prenesem slike?" - -#: ../src/control/jobs/control_jobs.c:1709 -#, c-format -msgid "" -"do you really want to physically move %d image to %s?\n" -"(all duplicates will be moved along)" -msgid_plural "" -"do you really want to physically move %d images to %s?\n" -"(all duplicates will be moved along)" -msgstr[0] "" -"ali res želite fizično preseliti %d sliko na %s\n" -"(vse neizbrane dvojnice bodo tudi preseljene)" -msgstr[1] "" -"ali res želite fizično preseliti %d sliki na %s\n" -"(vse neizbrane dvojnice bodo tudi preseljene)" -msgstr[2] "" -"ali res želite fizično preseliti %d slike na %s\n" -"(vse neizbrane dvojnice bodo tudi preseljene)" -msgstr[3] "" -"ali res želite fizično preseliti %d slik na %s\n" -"(vse neizbrane dvojnice bodo tudi preseljene)" - -#: ../src/control/jobs/control_jobs.c:1731 -msgid "copy images" -msgstr "kopiraj slike" - -#: ../src/control/jobs/control_jobs.c:1762 -msgid "copy image?" -msgid_plural "copy images?" -msgstr[0] "kopiram sliko?" -msgstr[1] "kopiram sliki?" -msgstr[2] "kopiram slike?" -msgstr[3] "kopiram slike?" - -#: ../src/control/jobs/control_jobs.c:1763 -#, c-format -msgid "do you really want to physically copy %d image to %s?" -msgid_plural "do you really want to physically copy %d images to %s?" -msgstr[0] "ali res želite fizično kopirati %d sliko na %s?" -msgstr[1] "ali res želite fizično kopirati %d sliki na %s?" -msgstr[2] "ali res želite fizično kopirati %d slike na %s?" -msgstr[3] "ali res želite fizično kopirati %d slik na %s?" - -#: ../src/control/jobs/control_jobs.c:1781 -#: ../src/control/jobs/control_jobs.c:1789 -msgid "local copy images" -msgstr "lokalne kopije slik" - -#: ../src/control/jobs/control_jobs.c:1796 ../src/libs/image.c:604 -msgid "refresh EXIF" -msgstr "osveži EXIF" - -#: ../src/control/jobs/control_jobs.c:1860 -#, c-format -msgid "failed to get parameters from storage module `%s', aborting export.." -msgstr "" -"izpadlo je pridobivanje parametrov iz shranjevalnega modula '%s', prekinjam " -"izvoz.." - -#: ../src/control/jobs/control_jobs.c:1876 -msgid "export images" -msgstr "izvozi slike" - -#: ../src/control/jobs/control_jobs.c:1926 -#, c-format -msgid "adding time offset to %d image" -msgstr "dodajam časovni zamik na %d sliko" - -#: ../src/control/jobs/control_jobs.c:1926 -#, c-format -msgid "setting date/time of %d image" -msgstr "nastavljam datum in čas na %d sliko" - -#: ../src/control/jobs/control_jobs.c:1927 -#, c-format -msgid "adding time offset to %d images" -msgstr "dodajam časovni zamik na %d slik" - -#: ../src/control/jobs/control_jobs.c:1927 -#, c-format -msgid "setting date/time of %d images" -msgstr "nastavljam datum in čas zamik na %d slik" - -#: ../src/control/jobs/control_jobs.c:1972 -#, c-format -msgid "added time offset to %d image" -msgstr "dodan časovni zamik na %d sliko" - -#: ../src/control/jobs/control_jobs.c:1972 -#, c-format -msgid "set date/time of %d image" -msgstr "nastavljen datum in čas na %d sliko" - -#: ../src/control/jobs/control_jobs.c:1973 -#, c-format -msgid "added time offset to %d images" -msgstr "dodan časovni zamik na %d slike" - -#: ../src/control/jobs/control_jobs.c:1973 -#, c-format -msgid "set date/time of %d images" -msgstr "nastavljen datum in čas na %d slike" - -#: ../src/control/jobs/control_jobs.c:2014 -msgid "time offset" -msgstr "časovni zamik" - -#: ../src/control/jobs/control_jobs.c:2042 ../src/libs/copy_history.c:414 -msgid "write sidecar files" -msgstr "zapiši priključne datoteke" - -#: ../src/control/jobs/control_jobs.c:2256 ../src/control/jobs/film_jobs.c:297 -#, c-format -msgid "importing %d image" -msgid_plural "importing %d images" -msgstr[0] "uvažam sliko %d" -msgstr[1] "uvažam sliki %d" -msgstr[2] "uvažam slike %d" -msgstr[3] "uvažam slike %d" - -#: ../src/control/jobs/control_jobs.c:2292 -#, c-format -msgid "importing %d/%d image" -msgid_plural "importing %d/%d images" -msgstr[0] "uvažam %d/%d sliko" -msgstr[1] "uvažam %d/%d sliki" -msgstr[2] "uvažam %d/%d slike" -msgstr[3] "uvažam %d/%d slik" - -#: ../src/control/jobs/control_jobs.c:2300 -#, c-format -msgid "imported %d image" -msgid_plural "imported %d images" -msgstr[0] "uvožena %d slika" -msgstr[1] "uvoženi %d sliki" -msgstr[2] "uvožene %d slike" -msgstr[3] "uvoženih %d slik" - -#: ../src/control/jobs/control_jobs.c:2347 ../src/gui/preferences.c:530 -#: ../src/libs/import.c:172 -msgid "import" -msgstr "uvozi" - -#: ../src/control/jobs/film_jobs.c:73 ../src/control/jobs/film_jobs.c:109 -msgid "import images" -msgstr "uvozi slike" - -#: ../src/control/jobs/film_jobs.c:239 -msgid "no supported images were found to be imported" -msgstr "našel nisem nobene slike v znanem formatu za uvoz" - -#: ../src/control/jobs/image_jobs.c:76 -#, c-format -msgid "importing image %s" -msgstr "uvažam sliko %s" - -#: ../src/control/jobs/image_jobs.c:110 -msgid "import image" -msgstr "uvoz slike" - -#: ../src/develop/blend.c:322 -msgid "detail mask blending error" -msgstr "podrobnosti napake mešanje maske" - -#: ../src/develop/blend.c:864 -msgid "detail mask CL blending problem" -msgstr "podrobnosti problema mešanja maske CL" - -#: ../src/develop/blend_gui.c:47 ../src/libs/live_view.c:335 -msgctxt "blendmode" -msgid "normal" -msgstr "normalno" - -#: ../src/develop/blend_gui.c:49 -msgctxt "blendmode" -msgid "average" -msgstr "povprečje" - -#: ../src/develop/blend_gui.c:51 ../src/libs/live_view.c:348 -msgctxt "blendmode" -msgid "difference" -msgstr "razlika" - -#: ../src/develop/blend_gui.c:54 -msgctxt "blendmode" -msgid "normal bounded" -msgstr "normalno omejeno" - -#: ../src/develop/blend_gui.c:56 ../src/libs/live_view.c:343 -msgctxt "blendmode" -msgid "lighten" -msgstr "posvetljeno" - -#: ../src/develop/blend_gui.c:58 ../src/libs/live_view.c:342 -msgctxt "blendmode" -msgid "darken" -msgstr "potemnjeno" - -#: ../src/develop/blend_gui.c:60 ../src/libs/live_view.c:340 -msgctxt "blendmode" -msgid "screen" -msgstr "zaslon" - -#: ../src/develop/blend_gui.c:63 ../src/libs/live_view.c:339 -msgctxt "blendmode" -msgid "multiply" -msgstr "množi" - -#: ../src/develop/blend_gui.c:65 -msgctxt "blendmode" -msgid "divide" -msgstr "deljenje" - -#: ../src/develop/blend_gui.c:67 -msgctxt "blendmode" -msgid "addition" -msgstr "prištevanje" - -#: ../src/develop/blend_gui.c:69 -msgctxt "blendmode" -msgid "subtract" -msgstr "odštevanje" - -#: ../src/develop/blend_gui.c:71 -msgctxt "blendmode" -msgid "geometric mean" -msgstr "geometrijsko povprečje" - -#: ../src/develop/blend_gui.c:73 -msgctxt "blendmode" -msgid "harmonic mean" -msgstr "harmonično povprečje" - -#: ../src/develop/blend_gui.c:76 ../src/libs/live_view.c:341 -msgctxt "blendmode" -msgid "overlay" -msgstr "plast" - -#: ../src/develop/blend_gui.c:78 -msgctxt "blendmode" -msgid "softlight" -msgstr "mehka svetloba" - -#: ../src/develop/blend_gui.c:80 -msgctxt "blendmode" -msgid "hardlight" -msgstr "trda svetloba" - -#: ../src/develop/blend_gui.c:82 -msgctxt "blendmode" -msgid "vividlight" -msgstr "živa svetloba" - -#: ../src/develop/blend_gui.c:84 -msgctxt "blendmode" -msgid "linearlight" -msgstr "linearna svetloba" - -#: ../src/develop/blend_gui.c:86 -msgctxt "blendmode" -msgid "pinlight" -msgstr "točkovna svetloba" - -#: ../src/develop/blend_gui.c:89 -msgctxt "blendmode" -msgid "lightness" -msgstr "svetlost" - -#: ../src/develop/blend_gui.c:91 -msgctxt "blendmode" -msgid "chromaticity" -msgstr "kromatičnost" - -#: ../src/develop/blend_gui.c:94 -msgctxt "blendmode" -msgid "Lab lightness" -msgstr "Lab svetlost" - -#: ../src/develop/blend_gui.c:96 -msgctxt "blendmode" -msgid "Lab a-channel" -msgstr "Kanal Lab a" - -#: ../src/develop/blend_gui.c:98 -msgctxt "blendmode" -msgid "Lab b-channel" -msgstr "Kanal Lab b" - -#: ../src/develop/blend_gui.c:100 -msgctxt "blendmode" -msgid "Lab color" -msgstr "Lab barva" - -#: ../src/develop/blend_gui.c:103 -msgctxt "blendmode" -msgid "RGB red channel" -msgstr "Rdeči kanal RGB" - -#: ../src/develop/blend_gui.c:105 -msgctxt "blendmode" -msgid "RGB green channel" -msgstr "Zeleni RGB kanal" - -#: ../src/develop/blend_gui.c:107 -msgctxt "blendmode" -msgid "RGB blue channel" -msgstr "Modri RGB kanal" - -#: ../src/develop/blend_gui.c:109 -msgctxt "blendmode" -msgid "HSV value" -msgstr "HSV vrednost" - -#: ../src/develop/blend_gui.c:111 -msgctxt "blendmode" -msgid "HSV color" -msgstr "HSV barva" - -#: ../src/develop/blend_gui.c:114 -msgctxt "blendmode" -msgid "hue" -msgstr "odtenek" - -#: ../src/develop/blend_gui.c:116 -msgctxt "blendmode" -msgid "color" -msgstr "barva" - -#: ../src/develop/blend_gui.c:118 -msgctxt "blendmode" -msgid "coloradjustment" -msgstr "prilagoditev barv" - -#. * deprecated blend modes: make them available as legacy -#. * history stacks might want them -#: ../src/develop/blend_gui.c:124 -msgctxt "blendmode" -msgid "difference (deprecated)" -msgstr "razlika (zastarelo)" - -#: ../src/develop/blend_gui.c:126 -msgctxt "blendmode" -msgid "subtract inverse (deprecated)" -msgstr "odštej inverzno (zastarelo)" - -#: ../src/develop/blend_gui.c:128 -msgctxt "blendmode" -msgid "divide inverse (deprecated)" -msgstr "razdeli inverzno (zastarelo)" - -#: ../src/develop/blend_gui.c:130 -msgctxt "blendmode" -msgid "Lab L-channel (deprecated)" -msgstr "kanal Lab L (zastarelo)" - -#: ../src/develop/blend_gui.c:135 -msgctxt "blendoperation" -msgid "normal" -msgstr "normalno" - -#: ../src/develop/blend_gui.c:136 -msgctxt "blendoperation" -msgid "reverse" -msgstr "obratno" - -#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:413 -#: ../src/libs/metadata.c:631 ../src/libs/metadata_view.c:1193 -msgid "default" -msgstr "privzeto" - -#: ../src/develop/blend_gui.c:142 -msgid "RAW" -msgstr "RAW" - -#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2014 -msgid "RGB (display)" -msgstr "RGB (prikaz)" - -#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2027 -msgid "RGB (scene)" -msgstr "RGB (scena)" - -#. DEVELOP_MASK_ENABLED -#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3419 -msgid "uniformly" -msgstr "enakomerno" - -#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:3429 ../src/develop/imageop.c:2660 -msgid "drawn mask" -msgstr "narisana maska" - -#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2512 -#: ../src/develop/blend_gui.c:3440 ../src/develop/imageop.c:2662 -msgid "parametric mask" -msgstr "parametrska maska" - -#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2951 -#: ../src/develop/blend_gui.c:3467 ../src/develop/imageop.c:2664 -msgid "raster mask" -msgstr "rastrska maska" - -#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3454 -msgid "drawn & parametric mask" -msgstr "narisana in parametrska maska" - -#: ../src/develop/blend_gui.c:168 -msgid "exclusive" -msgstr "eksluzivno" - -#: ../src/develop/blend_gui.c:169 -msgid "inclusive" -msgstr "inkluzivno" - -#: ../src/develop/blend_gui.c:170 -msgid "exclusive & inverted" -msgstr "ekskluzivno in inverzno" - -#: ../src/develop/blend_gui.c:171 -msgid "inclusive & inverted" -msgstr "inkluzivno in inverzno" - -#: ../src/develop/blend_gui.c:175 -msgid "output before blur" -msgstr "izhod pred zamegljevanjem" - -#: ../src/develop/blend_gui.c:176 -msgid "input before blur" -msgstr "vhod pred zamegljevanjem" - -#: ../src/develop/blend_gui.c:177 -msgid "output after blur" -msgstr "izhod po zamegljevanju" - -#: ../src/develop/blend_gui.c:178 -msgid "input after blur" -msgstr "vhod po zamegljevanju" - -#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:129 -#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/libs/live_view.c:362 -msgid "on" -msgstr "vklopljeno" - -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 -msgid "input" -msgstr "vhod" - -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 -msgid "output" -msgstr "izhod" - -#: ../src/develop/blend_gui.c:995 -msgid " (zoom)" -msgstr " (zoom)" - -#: ../src/develop/blend_gui.c:1003 -msgid " (log)" -msgstr " (dnevnik)" - -#: ../src/develop/blend_gui.c:1988 -msgid "reset to default blend colorspace" -msgstr "ponovno nastavi na privzeto mešanico barvnega prostora" - -#: ../src/develop/blend_gui.c:2044 -msgid "reset and hide output channels" -msgstr "ponovno nastavi in skrij izhodne kanale" - -#: ../src/develop/blend_gui.c:2051 -msgid "show output channels" -msgstr "prikaži izhodne kanale" - -#: ../src/develop/blend_gui.c:2290 ../src/develop/blend_gui.c:2357 -#: ../src/iop/tonecurve.c:1134 -msgid "L" -msgstr "L" - -#: ../src/develop/blend_gui.c:2290 -msgid "sliders for L channel" -msgstr "drsniki za kanal L" - -#: ../src/develop/blend_gui.c:2295 ../src/iop/tonecurve.c:1135 -msgid "a" -msgstr "a" - -#: ../src/develop/blend_gui.c:2295 -msgid "sliders for a channel" -msgstr "drsniki za kanal a" - -#: ../src/develop/blend_gui.c:2299 -msgid "green/red" -msgstr "zeleno/rdeča" - -#: ../src/develop/blend_gui.c:2300 ../src/iop/tonecurve.c:1136 -msgid "b" -msgstr "b" - -#: ../src/develop/blend_gui.c:2300 -msgid "sliders for b channel" -msgstr "drsniki za kanal b" - -#: ../src/develop/blend_gui.c:2304 -msgid "blue/yellow" -msgstr "modro/rumeno" - -#: ../src/develop/blend_gui.c:2305 -msgid "C" -msgstr "C" - -#: ../src/develop/blend_gui.c:2305 -msgid "sliders for chroma channel (of LCh)" -msgstr "drsniki za kanal krome (LCh)" - -#: ../src/develop/blend_gui.c:2311 -msgid "h" -msgstr "h" - -#: ../src/develop/blend_gui.c:2311 -msgid "sliders for hue channel (of LCh)" -msgstr "drsniki za kanal odtenka (LCh)" - -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 -msgid "g" -msgstr "g" - -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 -msgid "sliders for gray value" -msgstr "drsniki za sivine" - -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/denoiseprofile.c:3710 -#: ../src/iop/rawdenoise.c:894 ../src/iop/rgbcurve.c:1358 -#: ../src/iop/rgblevels.c:1003 ../src/libs/filters/colors.c:137 -msgid "R" -msgstr "R" - -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 -msgid "sliders for red channel" -msgstr "drsniki za rdeči kanal" - -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/denoiseprofile.c:3711 -#: ../src/iop/rawdenoise.c:895 ../src/iop/rgbcurve.c:1359 -#: ../src/iop/rgblevels.c:1004 ../src/libs/filters/colors.c:143 -msgid "G" -msgstr "G" - -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 -msgid "sliders for green channel" -msgstr "drsniki za zeleni kanal" - -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/denoiseprofile.c:3712 -#: ../src/iop/rawdenoise.c:896 ../src/iop/rgbcurve.c:1360 -#: ../src/iop/rgblevels.c:1005 ../src/libs/filters/colors.c:146 -msgid "B" -msgstr "B" - -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 -msgid "sliders for blue channel" -msgstr "drsniki za modri kanal" - -#: ../src/develop/blend_gui.c:2343 -msgid "H" -msgstr "H" - -#: ../src/develop/blend_gui.c:2343 -msgid "sliders for hue channel (of HSL)" -msgstr "drsniki za kanal odtenkov (HSL)" - -#: ../src/develop/blend_gui.c:2350 -msgid "S" -msgstr "S" - -#: ../src/develop/blend_gui.c:2350 -msgid "sliders for chroma channel (of HSL)" -msgstr "drsniki za kanal krome (HSL)" - -#: ../src/develop/blend_gui.c:2357 -msgid "sliders for value channel (of HSL)" -msgstr "drsniki za kanal vrednosti (HSL)" - -#: ../src/develop/blend_gui.c:2391 -msgid "Jz" -msgstr "Jz" - -#: ../src/develop/blend_gui.c:2391 -msgid "sliders for value channel (of JzCzhz)" -msgstr "drsniki za kanal vrednosti (JzCzhz)" - -#: ../src/develop/blend_gui.c:2398 -msgid "Cz" -msgstr "Cz" - -#: ../src/develop/blend_gui.c:2398 -msgid "sliders for chroma channel (of JzCzhz)" -msgstr "drsniki za kanal krome (JzCzhz)" - -#: ../src/develop/blend_gui.c:2405 -msgid "hz" -msgstr "hz" - -#: ../src/develop/blend_gui.c:2405 -msgid "sliders for hue channel (of JzCzhz)" -msgstr "drsniki za kanal odtenka (JzCzhz)" - -#: ../src/develop/blend_gui.c:2415 -msgid "" -"adjustment based on input received by this module:\n" -"* range defined by upper markers: blend fully\n" -"* range defined by lower markers: do not blend at all\n" -"* range between adjacent upper/lower markers: blend gradually" -msgstr "" -"prilagoditve glede na dobljeni vhod v ta modul:\n" -"* obseg je določen z zgornjimi mejami: popolno mešanje\n" -"* obseg določen s spodnjimi mejami: nič mešanja\n" -"* obseg med sosednjimi spodnjimi in zgornjimi mejami: delno mešanje" - -#: ../src/develop/blend_gui.c:2419 -msgid "" -"adjustment based on unblended output of this module:\n" -"* range defined by upper markers: blend fully\n" -"* range defined by lower markers: do not blend at all\n" -"* range between adjacent upper/lower markers: blend gradually" -msgstr "" -"prilagoditve glede na nezmešan izhod iz tega modula:\n" -"* obseg je določen z zgornjimi mejami: popolno mešanje\n" -"* obseg določen s spodnjimi mejami: nič mešanja\n" -"* obseg med sosednjimi spodnjimi in zgornjimi mejami: delno mešanje" - -#: ../src/develop/blend_gui.c:2516 -msgid "reset blend mask settings" -msgstr "ponovno nastavite masko mešanja" - -#: ../src/develop/blend_gui.c:2527 ../src/iop/atrous.c:1665 -#: ../src/iop/colorzones.c:2399 ../src/iop/denoiseprofile.c:3707 -#: ../src/iop/rawdenoise.c:891 ../src/iop/rgbcurve.c:1357 -#: ../src/iop/rgblevels.c:1002 ../src/iop/tonecurve.c:1133 -msgid "channel" -msgstr "kanal" - -#: ../src/develop/blend_gui.c:2542 ../src/iop/colorzones.c:2413 -#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1142 -msgid "" -"pick GUI color from image\n" -"ctrl+click or right-click to select an area" -msgstr "" -"izberite barvo grafičnega vmesnika iz slike\n" -"krmilka+klik to za izbor površine" - -#: ../src/develop/blend_gui.c:2545 ../src/iop/colorzones.c:2415 -#: ../src/iop/rgbcurve.c:1369 -msgid "show color" -msgstr "prikaži barvo" - -#: ../src/develop/blend_gui.c:2554 -msgid "" -"set the range based on an area from the image\n" -"drag to use the input image\n" -"ctrl+drag to use the output image" -msgstr "" -"izberite interval iz površine slike\n" -"klik+povlek za uporabo vhodne slike\n" -"krmilka+klik + povlek za uporabo izhodne slike" - -#: ../src/develop/blend_gui.c:2557 -msgid "set range" -msgstr "nastavi obseg" - -#: ../src/develop/blend_gui.c:2560 -msgid "invert all channel's polarities" -msgstr "invertirajte vse pole kanala" - -#: ../src/develop/blend_gui.c:2584 -msgid "toggle polarity. best seen by enabling 'display mask'" -msgstr "zamenjate pole. najbolje se vidi z omogočeno 'masko prikaza'" - -#: ../src/develop/blend_gui.c:2613 -msgid "" -"double-click to reset.\n" -"press 'a' to toggle available slider modes.\n" -"press 'c' to toggle view of channel data.\n" -"press 'm' to toggle mask view." -msgstr "" -"dvakrat kliknite za ponovno nastavitev.\n" -"pritisnite 'a', da preklopite razpoložljive načine drsnikov.\n" -"pritisnite 'c', da preklopite prikaz podatkov o kanalih.\n" -"pritisnite 'm', da preklopite pogled na masko." - -#: ../src/develop/blend_gui.c:2640 ../src/develop/blend_gui.c:3531 -#: ../src/iop/basicadj.c:600 ../src/iop/colorbalancergb.c:2090 -#: ../src/iop/exposure.c:1120 ../src/iop/exposure.c:1135 -#: ../src/iop/filmic.c:1503 ../src/iop/filmic.c:1516 ../src/iop/filmic.c:1558 -#: ../src/iop/filmicrgb.c:4440 ../src/iop/filmicrgb.c:4451 -#: ../src/iop/filmicrgb.c:4485 ../src/iop/filmicrgb.c:4495 -#: ../src/iop/graduatednd.c:1113 ../src/iop/negadoctor.c:1011 -#: ../src/iop/profile_gamma.c:643 ../src/iop/profile_gamma.c:649 -#: ../src/iop/relight.c:262 ../src/iop/soften.c:378 ../src/iop/toneequal.c:3326 -#: ../src/iop/toneequal.c:3329 ../src/iop/toneequal.c:3332 -#: ../src/iop/toneequal.c:3335 ../src/iop/toneequal.c:3338 -#: ../src/iop/toneequal.c:3341 ../src/iop/toneequal.c:3344 -#: ../src/iop/toneequal.c:3347 ../src/iop/toneequal.c:3350 -#: ../src/iop/toneequal.c:3472 ../src/iop/toneequal.c:3481 -#: ../src/iop/toneequal.c:3494 ../src/views/darkroom.c:2453 -msgid " EV" -msgstr " EV" - -#: ../src/develop/blend_gui.c:2642 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:2951 ../src/develop/blend_gui.c:3014 -#: ../src/develop/blend_gui.c:3499 ../src/develop/blend_gui.c:3529 -#: ../src/develop/blend_gui.c:3542 ../src/develop/blend_gui.c:3559 -#: ../src/develop/blend_gui.c:3583 ../src/develop/blend_gui.c:3593 -#: ../src/develop/blend_gui.c:3602 ../src/develop/blend_gui.c:3613 -msgid "blend" -msgstr "zmešaj" - -#: ../src/develop/blend_gui.c:2642 -msgid "boost factor" -msgstr "faktor povečanja" - -#: ../src/develop/blend_gui.c:2645 -msgid "adjust the boost factor of the channel mask" -msgstr "prilagodi faktor povečanja maske kanala" - -#: ../src/develop/blend_gui.c:2682 -#, c-format -msgid "%d shape used" -msgid_plural "%d shapes used" -msgstr[0] "uporabljena %d oblika" -msgstr[1] "uporabljeni %d obliki" -msgstr[2] "uporabljene %d oblike" -msgstr[3] "uporabljeno %d oblik" - -#: ../src/develop/blend_gui.c:2687 ../src/develop/blend_gui.c:2743 -#: ../src/develop/blend_gui.c:2831 ../src/develop/blend_gui.c:2952 -msgid "no mask used" -msgstr "nobene maske ni v rabi" - -#: ../src/develop/blend_gui.c:2751 -msgid "toggle polarity of drawn mask" -msgstr "preklopi polarnost narisane maske" - -#: ../src/develop/blend_gui.c:2760 -msgid "show and edit mask elements" -msgstr "prikaži in uredi elemente maske" - -#: ../src/develop/blend_gui.c:2761 -msgid "show and edit in restricted mode" -msgstr "prikaži in uredi v omejevalnem načinu" - -#: ../src/develop/blend_gui.c:2768 ../src/libs/masks.c:998 -#: ../src/libs/masks.c:1816 ../src/libs/masks.c:1820 -msgid "add gradient" -msgstr "dodaj gradient" - -#: ../src/develop/blend_gui.c:2769 -msgid "add multiple gradients" -msgstr "dodaj več gradientov" - -#: ../src/develop/blend_gui.c:2776 ../src/iop/retouch.c:2238 -#: ../src/libs/masks.c:978 ../src/libs/masks.c:1852 ../src/libs/masks.c:1856 -msgid "add brush" -msgstr "dodaj čopič" - -#: ../src/develop/blend_gui.c:2777 ../src/iop/retouch.c:2238 -msgid "add multiple brush strokes" -msgstr "dodaj več potez s čopičem" - -#: ../src/develop/blend_gui.c:2784 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 ../src/libs/masks.c:993 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1829 -msgid "add path" -msgstr "dodaj pot" - -#: ../src/develop/blend_gui.c:2785 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 -msgid "add multiple paths" -msgstr "dodaj več poti" - -#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 ../src/libs/masks.c:988 ../src/libs/masks.c:1834 -#: ../src/libs/masks.c:1838 -msgid "add ellipse" -msgstr "dodaj elipso" - -#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 -msgid "add multiple ellipses" -msgstr "dodaj več elips" - -#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 ../src/libs/masks.c:983 ../src/libs/masks.c:1843 -#: ../src/libs/masks.c:1847 -msgid "add circle" -msgstr "dodaj krog" - -#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 -msgid "add multiple circles" -msgstr "dodaj več krogov" - -#: ../src/develop/blend_gui.c:2961 -msgid "toggle polarity of raster mask" -msgstr "preklopi polarnost rastrske maske" - -#: ../src/develop/blend_gui.c:3101 -msgid "normal & difference" -msgstr "normalno & razlika" - -#: ../src/develop/blend_gui.c:3106 -msgid "lighten" -msgstr "posvetli" - -#: ../src/develop/blend_gui.c:3113 -msgid "darken" -msgstr "potemni" - -#: ../src/develop/blend_gui.c:3120 -msgid "contrast enhancing" -msgstr "izboljšaj kontrast" - -#: ../src/develop/blend_gui.c:3127 ../src/develop/blend_gui.c:3150 -msgid "color channel" -msgstr "barvni kanal" - -#: ../src/develop/blend_gui.c:3138 ../src/develop/blend_gui.c:3153 -msgid "chromaticity & lightness" -msgstr "barvnost & svetlost" - -#: ../src/develop/blend_gui.c:3145 -msgid "normal & arithmetic" -msgstr "normalni & aritmetični" - -#. add deprecated blend mode -#: ../src/develop/blend_gui.c:3166 -msgid "deprecated" -msgstr "zastarelo" - -#: ../src/develop/blend_gui.c:3478 -msgid "blending options" -msgstr "možnosti mešanja" - -#: ../src/develop/blend_gui.c:3500 ../src/libs/history.c:949 -msgid "blend mode" -msgstr "način mešanja" - -#: ../src/develop/blend_gui.c:3503 -msgid "choose blending mode" -msgstr "izberi način mešanja" - -#: ../src/develop/blend_gui.c:3513 -msgid "toggle blend order" -msgstr "preklopi vrstni red zlivanja" - -#: ../src/develop/blend_gui.c:3519 -msgid "" -"toggle the blending order between the input and the output of the module,\n" -"by default the output will be blended on top of the input,\n" -"order can be reversed by clicking on the icon (input on top of output)" -msgstr "" -"preklopi vrstni red mešanja med vhodom in izhodom modula,\n" -"privzeto bo izhod mešan na vrhu vhoda,\n" -"vrstni red je mogoče obrniti s klikom na ikono (vhod na vrhu izhoda)" - -#: ../src/develop/blend_gui.c:3530 ../src/libs/history.c:953 -msgid "blend fulcrum" -msgstr "izhodišče mešanja" - -#: ../src/develop/blend_gui.c:3534 -msgid "adjust the fulcrum used by some blending operations" -msgstr "prilagodi izhodišče, ki se uporablja za operacije mešanja" - -#. Add opacity/scale sliders to table -#: ../src/develop/blend_gui.c:3542 ../src/iop/watermark.c:1314 -#: ../src/libs/masks.c:104 -msgid "opacity" -msgstr "neprosojnost" - -#: ../src/develop/blend_gui.c:3546 -msgid "set the opacity of the blending" -msgstr "nastavi neprosojnost mešanja" - -#: ../src/develop/blend_gui.c:3550 ../src/libs/history.c:956 -msgid "combine masks" -msgstr "sestavi maske" - -#: ../src/develop/blend_gui.c:3552 -msgid "" -"how to combine individual drawn mask and different channels of parametric " -"mask" -msgstr "" -"kako sestaviti posamično narisano masko in različne kanale parametrske maske" - -#: ../src/develop/blend_gui.c:3559 -msgid "details threshold" -msgstr "podrobnosti praga" - -#: ../src/develop/blend_gui.c:3563 -msgid "" -"adjust the threshold for the details mask (using raw data),\n" -"positive values select areas with strong details,\n" -"negative values select flat areas" -msgstr "" -"prilagodi prag za masko s podrobnostmi (z uporabo surovih podatkov),\n" -"pozitivne vrednosti izberejo področja z močnimi podrobnostmi,\n" -"negativne vrednosti izberejo ravna področja" - -#: ../src/develop/blend_gui.c:3571 ../src/libs/history.c:959 -msgid "feathering guide" -msgstr "vodilo mehčanja s peresom" - -#: ../src/develop/blend_gui.c:3574 -msgid "" -"choose to guide mask by input or output image and\n" -"choose to apply feathering before or after mask blur" -msgstr "" -"izberi vodilno masko po vhodni ali izhodni sliki in\n" -"izberite mehčanje pred ali po maski zamegljevanja" - -#: ../src/develop/blend_gui.c:3583 ../src/libs/history.c:958 -msgid "feathering radius" -msgstr "radij mehčanja s peresom" - -#: ../src/develop/blend_gui.c:3586 -msgid "spatial radius of feathering" -msgstr "prostorski krog mehčanja s peresom" - -#: ../src/develop/blend_gui.c:3593 -msgid "blurring radius" -msgstr "radij zamegljevanja" - -#: ../src/develop/blend_gui.c:3596 -msgid "radius for gaussian blur of blend mask" -msgstr "polmer gaussove maske zamegljevalnega mešanja" - -#: ../src/develop/blend_gui.c:3602 ../src/iop/retouch.c:2453 -#: ../src/libs/history.c:954 -msgid "mask opacity" -msgstr "neprosojnost maske" - -#: ../src/develop/blend_gui.c:3606 -msgid "" -"shifts and tilts the tone curve of the blend mask to adjust its brightness\n" -"without affecting fully transparent/fully opaque regions" -msgstr "" -"pomakne in nagne krivuljo tonov mešalne maske tako da prilagodi njeno " -"sijavost\n" -"ne da bi vplivala na dele, ki so popolnoma prosojni ali popolnoma neprosojni" - -#: ../src/develop/blend_gui.c:3613 ../src/libs/history.c:962 -msgid "mask contrast" -msgstr "kontrast maske" - -#: ../src/develop/blend_gui.c:3617 -msgid "" -"gives the tone curve of the blend mask an s-like shape to adjust its contrast" -msgstr "" -"nudi krivuljo tonov mešalne maske v obliki S krivulje za prilagoditev " -"kontrasta" - -#: ../src/develop/blend_gui.c:3621 -msgid "mask refinement" -msgstr "izboljšanje maske" - -#: ../src/develop/blend_gui.c:3625 -msgid "display mask and/or color channel" -msgstr "prikaži masko in/ali barvni kanal" - -#: ../src/develop/blend_gui.c:3630 -msgid "" -"display mask and/or color channel.\n" -"ctrl+click to display mask,\n" -"shift+click to display channel.\n" -"hover over parametric mask slider to select channel for display" -msgstr "" -"prikaži masko in/ali barvni kanal.\n" -"krmilka-klik za prikaz maske,\n" -"dvigalka-klik za prikaz kanala.\n" -"miška nad drsnikom parametrske maske za izbor kanala prikaza" - -#: ../src/develop/blend_gui.c:3637 -msgid "temporarily switch off blend mask" -msgstr "začasno izklopi masko mešanja" - -#: ../src/develop/blend_gui.c:3642 -msgid "" -"temporarily switch off blend mask.\n" -"only for module in focus" -msgstr "" -"začasno ugasni masko mešanja.\n" -"samo za modul v osredotočenosti" - -#: ../src/develop/develop.c:2303 -#, c-format -msgid "%s: module `%s' version mismatch: %d != %d" -msgstr "%s: modul `%s' neusklajenost verzije: %d != %d" - -#: ../src/develop/develop.c:2834 -msgid "module duplicate, can't move new instance after the base one\n" -msgstr "duplikat modula, ni ga mogoče premakniti v novi pojavek po osnovnem\n" - -#: ../src/develop/imageop.c:1031 -msgid "new instance" -msgstr "nova instanca" - -#: ../src/develop/imageop.c:1037 -msgid "duplicate instance" -msgstr "podvojena instanca" - -#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3739 -#: ../src/libs/masks.c:1152 -msgid "move up" -msgstr "pomakni navzgor" - -#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3740 -#: ../src/libs/masks.c:1157 -msgid "move down" -msgstr "pomakni navzdol" - -#. delete button label and tooltip will be updated based on trash pref -#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3742 -#: ../src/gui/accelerators.c:155 ../src/gui/presets.c:562 -#: ../src/libs/image.c:285 ../src/libs/image.c:480 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 -msgid "delete" -msgstr "briši" - -#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3743 -#: ../src/libs/modulegroups.c:3464 ../src/libs/modulegroups.c:3815 -msgid "rename" -msgstr "preimenuj" - -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 -#, c-format -msgid "'%s' is switched on" -msgstr "'%s' je vklopljen" - -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 -#, c-format -msgid "'%s' is switched off" -msgstr "'%s' je izklopljen" - -#: ../src/develop/imageop.c:2654 -msgid "unknown mask" -msgstr "neznana maska" - -#: ../src/develop/imageop.c:2658 -msgid "drawn + parametric mask" -msgstr "narisana + parametrska maska" - -#: ../src/develop/imageop.c:2667 -#, c-format -msgid "this module has a `%s'" -msgstr "ta modul ima `%s'" - -#: ../src/develop/imageop.c:2672 -#, c-format -msgid "taken from module %s" -msgstr "pobrano iz modula %s" - -#: ../src/develop/imageop.c:2677 -msgid "click to display (module must be activated first)" -msgstr "kliknite za prikaz (modul mora biti najprej aktiviran)" - -#: ../src/develop/imageop.c:2789 -msgid "purpose" -msgstr "namen" - -#: ../src/develop/imageop.c:2789 -msgid "process" -msgstr "obdelaj" - -#: ../src/develop/imageop.c:2906 -msgid "" -"multiple instance actions\n" -"right-click creates new instance" -msgstr "" -"več aktivnosti pojavkov\n" -"desni-klik ustvari nov pojavek" - -#: ../src/develop/imageop.c:2921 -msgid "" -"reset parameters\n" -"ctrl+click to reapply any automatic presets" -msgstr "" -"ponovno nastavi parametre\n" -"krmilka+klik za ponovno uveljavitev samodejnih začetnih nastavitev" - -#: ../src/develop/imageop.c:2933 -msgid "" -"presets\n" -"right-click to apply on new instance" -msgstr "" -"začetne vrednosti\n" -"desni-klik za uveljavitev na novem pojavku" - -#: ../src/develop/imageop.c:3183 ../src/develop/imageop.c:3205 -msgid "ERROR" -msgstr "NAPAKA" - -#: ../src/develop/imageop.c:3620 -msgid "unsupported input" -msgstr "nepodprt vhod" - -#: ../src/develop/imageop.c:3621 -msgid "" -"you have placed this module at\n" -"a position in the pipeline where\n" -"the data format does not match\n" -"its requirements." -msgstr "" -"ta modul ste postavili na\n" -"položaj v cevovodu, kjer\n" -"se oblika zapisa podatkov ne ujema\n" -"z njegovimi zahtevami." - -#: ../src/develop/imageop.c:3738 ../src/develop/imageop.c:3748 -#: ../src/gui/accelerators.c:151 ../src/libs/lib.c:1414 -msgid "show" -msgstr "prikaži" - -#: ../src/develop/imageop.c:3741 ../src/libs/modulegroups.c:3310 -#: ../src/libs/modulegroups.c:3436 ../src/libs/modulegroups.c:3817 -#: ../src/libs/tagging.c:3248 -msgid "new" -msgstr "nova" - -#: ../src/develop/imageop.c:3744 ../src/libs/duplicate.c:405 -#: ../src/libs/image.c:495 ../src/libs/modulegroups.c:3813 -msgid "duplicate" -msgstr "dupliciraj" - -#: ../src/develop/imageop.c:3749 -msgid "enable" -msgstr "omogoči" - -#: ../src/develop/imageop.c:3750 ../src/gui/accelerators.c:167 -msgid "focus" -msgstr "ostrenje" - -#: ../src/develop/imageop.c:3751 ../src/gui/accelerators.c:2617 -msgid "instance" -msgstr "pojavek" - -#: ../src/develop/imageop.c:3752 ../src/gui/accelerators.c:112 -#: ../src/gui/accelerators.c:122 ../src/gui/gtk.c:3009 ../src/gui/gtk.c:3056 -#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:603 -#: ../src/gui/styles_dialog.c:625 ../src/iop/atrous.c:1512 -#: ../src/libs/lib.c:1415 ../src/libs/modulegroups.c:3882 -msgid "reset" -msgstr "ponovno nastavi" - -#. Adding the outer container -#: ../src/develop/imageop.c:3753 ../src/gui/preferences.c:798 -#: ../src/libs/lib.c:1416 -msgid "presets" -msgstr "začetne vrednosti" - -#: ../src/develop/imageop.c:3773 -msgid "processing module" -msgstr "modul obdelav" - -#: ../src/develop/imageop_gui.c:293 -#, c-format -msgid "" -"%s\n" -"ctrl+click to %s" -msgstr "" -"%s\n" -"krmilka+klik za %s" - -#: ../src/develop/lightroom.c:1083 -msgid "cannot find Lightroom XMP!" -msgstr "ne morem najti Lightroomov XMP!" - -#: ../src/develop/lightroom.c:1115 ../src/develop/lightroom.c:1137 -#: ../src/develop/lightroom.c:1157 -#, c-format -msgid "`%s' is not a Lightroom XMP!" -msgstr "'%s' ni LightRoomov XMP!" - -#: ../src/develop/lightroom.c:1556 -#, c-format -msgid "%s has been imported" -msgid_plural "%s have been imported" -msgstr[0] "%s je bila uvožena" -msgstr[1] "%s sta bili uvoženi" -msgstr[2] "%s so bile uvožene" -msgstr[3] "%s je bilo uvoženih" - -#: ../src/develop/masks/brush.c:1356 ../src/develop/masks/brush.c:1410 -#, c-format -msgid "hardness: %3.2f%%" -msgstr "trdota: %3.2f%%" - -#: ../src/develop/masks/brush.c:1372 ../src/develop/masks/brush.c:1470 -#: ../src/develop/masks/circle.c:148 ../src/develop/masks/circle.c:193 -#: ../src/develop/masks/ellipse.c:484 ../src/develop/masks/ellipse.c:546 -#: ../src/develop/masks/path.c:1273 -#, c-format -msgid "size: %3.2f%%" -msgstr "velikost: %3.2f%%" - -#: ../src/develop/masks/brush.c:3247 -msgid "[BRUSH] change size" -msgstr "[BRUSH] spremeni velikost" - -#: ../src/develop/masks/brush.c:3249 -msgid "[BRUSH] change hardness" -msgstr "[BRUSH] spremeni trdoto" - -#: ../src/develop/masks/brush.c:3251 -msgid "[BRUSH] change opacity" -msgstr "[BRUSH] spremeni prosojnost" - -#: ../src/develop/masks/brush.c:3263 -#, c-format -msgid "brush #%d" -msgstr "čopič #%d" - -#: ../src/develop/masks/brush.c:3276 -#, c-format -msgid "" -"<b>size</b>: scroll, <b>hardness</b>: shift+scroll\n" -"<b>opacity</b>: ctrl+scroll (%d%%)" -msgstr "" -"<b>velikost</b>: pomik, <b>trdota</b>: dvigalka+pomik\n" -"<b>neprosojnost</b>: krmilka+pomik (%d%%)" - -#: ../src/develop/masks/brush.c:3279 -msgid "<b>size</b>: scroll" -msgstr "<b>velikost</b>: pomik" - -#: ../src/develop/masks/circle.c:137 ../src/develop/masks/circle.c:181 -#: ../src/develop/masks/ellipse.c:470 ../src/develop/masks/ellipse.c:531 -#: ../src/develop/masks/path.c:1205 -#, c-format -msgid "feather size: %3.2f%%" -msgstr "velikost peresa: %3.2f%%" - -#: ../src/develop/masks/circle.c:1510 -msgid "[CIRCLE] change size" -msgstr "[CIRCLE] spremeni velikost" - -#: ../src/develop/masks/circle.c:1512 -msgid "[CIRCLE] change feather size" -msgstr "[CIRCLE] spremeni velikost peresa mehčanja" - -#: ../src/develop/masks/circle.c:1514 -msgid "[CIRCLE] change opacity" -msgstr "[CIRCLE] spremeni prosojnost" - -#: ../src/develop/masks/circle.c:1527 -#, c-format -msgid "circle #%d" -msgstr "krog #%d" - -#: ../src/develop/masks/circle.c:1538 ../src/develop/masks/path.c:3490 -#, c-format -msgid "" -"<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" -"<b>opacity</b>: ctrl+scroll (%d%%)" -msgstr "" -"<b>velikost</b>: pomik, <b>velikost peresa</b>: dvigalka+pomik\n" -"<b>neprosojnost</b>: krmilka+pomik (%d%%)" - -#: ../src/develop/masks/ellipse.c:456 ../src/develop/masks/ellipse.c:515 -#, c-format -msgid "rotation: %3.f°" -msgstr "zasuk: %3.f°" - -#: ../src/develop/masks/ellipse.c:2068 -msgid "[ELLIPSE] change size" -msgstr "[ELLIPSE] spremeni velikost" - -#: ../src/develop/masks/ellipse.c:2071 -msgid "[ELLIPSE] change feather size" -msgstr "[ELLIPSE] spremeni velikost peresa mehčanja" - -#: ../src/develop/masks/ellipse.c:2074 ../src/develop/masks/ellipse.c:2083 -msgid "[ELLIPSE] rotate shape" -msgstr "[ELLIPSE] zasukaj obliko" - -#: ../src/develop/masks/ellipse.c:2077 -msgid "[ELLIPSE] change opacity" -msgstr "[ELLIPSE] spremeni prosojnost" - -#: ../src/develop/masks/ellipse.c:2080 -msgid "[ELLIPSE] switch feathering mode" -msgstr "[ELLIPSE] preklopi način rabe mehčanja" - -#: ../src/develop/masks/ellipse.c:2090 -#, c-format -msgid "ellipse #%d" -msgstr "elipsa #%d" - -#: ../src/develop/masks/ellipse.c:2128 -#, c-format -msgid "" -"<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" -"<b>rotation</b>: ctrl+shift+scroll, <b>opacity</b>: ctrl+scroll (%d%%)" -msgstr "" -"<b>velikost</b>: pomik, <b>velikost peresa</b>: dvigalka+pomik\n" -"<b>zasuk</b>: krmilka+dvigalka+pomik, <b>neprosojnost</b>: krmilka+pomik " -"(%d%%)" - -#: ../src/develop/masks/ellipse.c:2132 -msgid "<b>rotate</b>: ctrl+drag" -msgstr "<b>zasuk</b>: krmilka+povlek" - -#: ../src/develop/masks/ellipse.c:2135 -#, c-format -msgid "" -"<b>feather mode</b>: shift+click, <b>rotate</b>: ctrl+drag\n" -"<b>size</b>: scroll, <b>feather size</b>: shift+scroll, <b>opacity</b>: " -"ctrl+scroll (%d%%)" -msgstr "" -"<b>način peresa</b>: dvigalka+klik, <b>zasuk</b>: krmilka+poteg\n" -"<b>velikost</b>: drsanje, <b>velikost peresa</b>: dvigalka+pomik, " -"<b>neprosojnost</b>: krmilka+drsanje (%d%%)" - -#: ../src/develop/masks/gradient.c:131 ../src/develop/masks/gradient.c:175 -#, c-format -msgid "compression: %3.2f%%" -msgstr "stiskanje: %3.2f%%" - -#: ../src/develop/masks/gradient.c:143 ../src/develop/masks/gradient.c:186 -#, c-format -msgid "curvature: %3.2f%%" -msgstr "ukrivljenost: %3.2f%%" - -#: ../src/develop/masks/gradient.c:1555 -msgid "[GRADIENT on pivot] rotate shape" -msgstr "[GRADIENT on pivot] zasukaj obliko" - -#: ../src/develop/masks/gradient.c:1557 -msgid "[GRADIENT creation] set rotation" -msgstr "[GRADIENT creation] nastavi zasuk" - -#: ../src/develop/masks/gradient.c:1559 -msgid "[GRADIENT] change curvature" -msgstr "[GRADIENT] spremeni ukrivljenost" - -#: ../src/develop/masks/gradient.c:1561 -msgid "[GRADIENT] change compression" -msgstr "[GRADIENT] spremeni stiskanje" - -#: ../src/develop/masks/gradient.c:1563 -msgid "[GRADIENT] change opacity" -msgstr "[GRADIENT] spremeni prosojnost" - -#: ../src/develop/masks/gradient.c:1576 -#, c-format -msgid "gradient #%d" -msgstr "gradient #%d" - -#: ../src/develop/masks/gradient.c:1587 -#, c-format -msgid "" -"<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" -"<b>rotation</b>: click+drag, <b>opacity</b>: ctrl+scroll (%d%%)" -msgstr "" -"<b>ukrivljenost</b>: drsanje, <b>stiskanje</b>: dvigalka+drsanje\n" -"<b>zasuk</b>: klik+poteg, <b>neprosojnost</b>: krmilka+drsanje (%d%%)" - -#: ../src/develop/masks/gradient.c:1592 -#, c-format -msgid "" -"<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" -"<b>opacity</b>: ctrl+scroll (%d%%)" -msgstr "" -"<b>ukrivljenost</b>: drsanje, <b>stiskanje</b>: dvigalka+drsanje\n" -"<b>neprosojnost</b>: krmilka+drsanje (%d%%)" - -#: ../src/develop/masks/gradient.c:1595 -msgid "<b>rotate</b>: drag" -msgstr "<b>zasuk</b>: poteg" - -#: ../src/develop/masks/masks.c:139 -msgid "[SHAPE] remove shape" -msgstr "[SHAPE] odstrani obliko" - -#: ../src/develop/masks/masks.c:306 -#, c-format -msgid "group `%s'" -msgstr "grupa '%s'" - -#: ../src/develop/masks/masks.c:423 -#, c-format -msgid "copy of `%s'" -msgstr "kopija '%s'" - -#: ../src/develop/masks/masks.c:984 -#, c-format -msgid "%s: mask version mismatch: %d != %d" -msgstr "%s: neusklajeni verziji mask: %d != %d" - -#: ../src/develop/masks/masks.c:1239 ../src/develop/masks/masks.c:1906 -#, c-format -msgid "opacity: %.0f%%" -msgstr "neprosojnost: %.0f%%" - -#: ../src/develop/masks/masks.c:1650 ../src/libs/masks.c:1068 -msgid "add existing shape" -msgstr "dodaj obstoječo obliko" - -#: ../src/develop/masks/masks.c:1677 -msgid "use same shapes as" -msgstr "uporabi enake oblike kot" - -#: ../src/develop/masks/masks.c:1990 -msgid "masks can not contain themselves" -msgstr "maske ne morejo vsebovati mask" - -#: ../src/develop/masks/path.c:3433 -msgid "[PATH creation] add a smooth node" -msgstr "[PATH creation] dodaj vozel za glajenje" - -#: ../src/develop/masks/path.c:3435 -msgid "[PATH creation] add a sharp node" -msgstr "[PATH creation] dodaj vozel za ostrenje" - -#: ../src/develop/masks/path.c:3437 -msgid "[PATH creation] terminate path creation" -msgstr "[PATH creation] končaj tvorbo poti" - -#: ../src/develop/masks/path.c:3439 -msgid "[PATH on node] switch between smooth/sharp node" -msgstr "[PATH on node] preklopi med vozlom za glajenje/ostrenje" - -#: ../src/develop/masks/path.c:3441 -msgid "[PATH on node] remove the node" -msgstr "[PATH on node] odstrani vozel" - -#: ../src/develop/masks/path.c:3443 -msgid "[PATH on feather] reset curvature" -msgstr "[PATH on feather] ponastavi ukrivljenost" - -#: ../src/develop/masks/path.c:3445 -msgid "[PATH on segment] add node" -msgstr "[PATH on segment] dodaj vozel" - -#: ../src/develop/masks/path.c:3447 -msgid "[PATH] change size" -msgstr "[PATH] spremeni velikost" - -#: ../src/develop/masks/path.c:3449 -msgid "[PATH] change feather size" -msgstr "[PATH] spremeni velikost peresa" - -#: ../src/develop/masks/path.c:3451 -msgid "[PATH] change opacity" -msgstr "[PATH] spremeni prosojnost" - -#: ../src/develop/masks/path.c:3463 -#, c-format -msgid "path #%d" -msgstr "pot #%d" - -#: ../src/develop/masks/path.c:3473 -msgid "" -"<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" -"<b>cancel</b>: right-click" -msgstr "" -"<b>dodaj vozel</b>: klik, <b>dodaj ostri vozel</b>:ctrl+klik\n" -"<b>preklic</b>: desni-klik" - -#: ../src/develop/masks/path.c:3476 -msgid "" -"<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" -"<b>finish path</b>: right-click" -msgstr "" -"<b>dodaj vozel</b>: klik, <b>dodaj ostri vozel</b>:ctrl+klik\n" -"<b>dokončaj pot</b>: desni-klik" - -#: ../src/develop/masks/path.c:3479 -msgid "" -"<b>move node</b>: drag, <b>remove node</b>: right-click\n" -"<b>switch smooth/sharp mode</b>: ctrl+click" -msgstr "" -"<b>premakni vozel</b>: poteg, <b>odstrani vozel</b>: desni-klik\n" -"<b>preklop gladki/ostri način</b>: ctrl+klik" - -#: ../src/develop/masks/path.c:3483 -msgid "" -"<b>node curvature</b>: drag\n" -"<b>reset curvature</b>: right-click" -msgstr "" -"<b>ukrivljenost vozla</b>: poteg\n" -"<b>ponovno nastavi ukrivljenost</b>: desni-klik" - -#: ../src/develop/masks/path.c:3487 -msgid "" -"<b>move segment</b>: drag\n" -"<b>add node</b>: ctrl+click" -msgstr "" -"<b>premakni segment</b>: poteg\n" -"<b>dodaj vozel</b>: ctrl+klik" - -#: ../src/develop/pixelpipe_hb.c:500 -msgid "enabled as required" -msgstr "omogočeno kot je zahtevano" - -#: ../src/develop/pixelpipe_hb.c:501 -msgid "" -"history had module disabled but it is required for this type of image.\n" -"likely introduced by applying a preset, style or history copy&paste" -msgstr "" -"zgodovina je imela modul onemogočen, vendar je potreben za to vrsto slike.\n" -"verjetno je bil uveden z uporabo prednastavitve, sloga ali kopiranja in " -"lepljenja v zgodovini" - -#: ../src/develop/pixelpipe_hb.c:508 -msgid "disabled as not appropriate" -msgstr "onemogočeno kot neprimerno" - -#: ../src/develop/pixelpipe_hb.c:509 -msgid "" -"history had module enabled but it is not allowed for this type of image.\n" -"likely introduced by applying a preset, style or history copy&paste" -msgstr "" -"zgodovina je imela modul onemogočen, vendar je potreben za to vrsto slike.\n" -"verjetno je bil uveden z uporabo prednastavitve, sloga ali kopiranja in " -"lepljenja v zgodovini" - -#: ../src/develop/pixelpipe_hb.c:2705 -msgid "" -"darktable discovered problems with your OpenCL setup; disabling OpenCL for " -"this session!" -msgstr "" -"darktable je zaznal težavo z vašo nastavitvijo OpenCL; onemogočam OpenCL za " -"to sejo!" - -#: ../src/develop/pixelpipe_hb.c:2853 -#, c-format -msgid "" -"module '%s' can't get raster mask from module\n" -"'%s' as that is processed later in the pixel pipe.\n" -"raster mask is ignored." -msgstr "" -"modul `%s 'ne more dobiti rastrske maske iz modula\n" -"`%s', ker se to obdela kasneje v procesu pixelpipe.\n" -"rastrska maska je prezrta." - -#: ../src/develop/tiling.c:820 ../src/develop/tiling.c:1173 -#, c-format -msgid "tiling failed for module '%s'. output might be garbled." -msgstr "prekrivanje slike za modul '%s' je izpadlo. izhod je verjetno zmečkan." - -#: ../src/dtgtk/culling.c:254 -msgid "you have reached the start of your selection" -msgstr "prišli ste do začetka vaše izbire" - -#: ../src/dtgtk/culling.c:263 -msgid "you have reached the start of your collection" -msgstr "prišli ste do začetka vaše zbirke" - -#: ../src/dtgtk/culling.c:310 -msgid "you have reached the end of your selection" -msgstr "prišli ste do konca vaše izbire" - -#: ../src/dtgtk/culling.c:337 -msgid "you have reached the end of your collection" -msgstr "prišli ste do konca vaše zbirke" - -#: ../src/dtgtk/culling.c:446 -#, c-format -msgid "zooming is limited to %d images" -msgstr "zoomiranje je omejeno na %d slik" - -#: ../src/dtgtk/range.c:214 ../src/dtgtk/range.c:219 -msgid "invalid" -msgstr "neveljavno" - -#: ../src/dtgtk/range.c:327 -#, c-format -msgid "year %s" -msgstr "leto %s" - -#: ../src/dtgtk/range.c:405 -msgid "" -"enter the minimal value\n" -"use 'min' if no bound\n" -"right-click to select from existing values" -msgstr "" -"vnesite minimalno vrednost\n" -"uporabite 'min', če ni omejeno\n" -"desni klik za izbiro iz obstoječih vrednosti" - -#: ../src/dtgtk/range.c:411 -msgid "" -"enter the maximal value\n" -"use 'max' if no bound\n" -"right-click to select from existing values" -msgstr "" -"vnesite maksimalno vrednost\n" -"uporabite 'max', če ni omejeno\n" -"desni klik za izbiro iz obstoječih vrednosti" - -#: ../src/dtgtk/range.c:417 -msgid "" -"enter the value\n" -"right-click to select from existing values" -msgstr "" -"vnesite vrednost\n" -"desni klik za izbiro iz obstoječih vrednosti" - -#: ../src/dtgtk/range.c:422 -msgid "" -"enter the minimal date\n" -"in the form YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)\n" -"use 'min' if no bound\n" -"use '-' prefix for relative date\n" -"right-click to select from calendar or existing values" -msgstr "" -"vnesite minimalni datum\n" -"v obliki YYYY:MM:DD hh:mm:ss.sss (obvezno je samo leto)\n" -"uporabite 'min', če ni omejeno\n" -"uporabite predpono '-' za relativne datume\n" -"desni klik za izbiro iz koledarja ali obstoječih vrednosti" - -#: ../src/dtgtk/range.c:430 -msgid "" -"enter the maximal date\n" -"in the form YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)\n" -"use 'max' if no bound\n" -"'now' keyword is handled\n" -"use '-' prefix for relative date\n" -"right-click to select from calendar or existing values" -msgstr "" -"vnesite maksimalni datum\n" -"v obliki YYYY:MM:DD hh:mm:ss.sss (obvezno je samo leto)\n" -"uporabite 'max', če ni omejeno\n" -"uporabite predpono '-' za relativne datume\n" -"desni klik za izbiro iz koledarja ali obstoječih vrednosti" - -#: ../src/dtgtk/range.c:439 -msgid "" -"enter the date\n" -"in the form YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)\n" -"right-click to select from calendar or existing values" -msgstr "" -"vnesite datum\n" -"v obliki YYYY:MM:DD hh:mm:ss.sss (obvezno je samo leto)\n" -"desni klik za izbiro iz koledarja ali obstoječih vrednosti" - -#: ../src/dtgtk/range.c:461 -msgid "date-time interval to subtract from the max value" -msgstr "interval časa in datuma za odštevanje od maksimalne vrednosti" - -#: ../src/dtgtk/range.c:465 -msgid "date-time interval to add to the min value" -msgstr "interval časa in datuma za dodajanje k minimalni vrednosti" - -#: ../src/dtgtk/range.c:486 -msgid "fixed" -msgstr "fiksno" - -#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1493 -msgid "relative" -msgstr "relativno" - -#: ../src/dtgtk/range.c:577 -msgid "selected" -msgstr "izbrano" - -#: ../src/dtgtk/range.c:624 ../src/dtgtk/range.c:1768 ../src/dtgtk/range.c:1819 -#: ../src/libs/colorpicker.c:53 -msgid "min" -msgstr "min" - -#: ../src/dtgtk/range.c:630 ../src/dtgtk/range.c:1780 ../src/dtgtk/range.c:1831 -#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:282 -msgid "max" -msgstr "max" - -#: ../src/dtgtk/range.c:944 -msgid "date type" -msgstr "vrsta datuma" - -#. the date section -#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1501 -msgid "date" -msgstr "datum" - -#: ../src/dtgtk/range.c:962 ../src/dtgtk/range.c:1028 -msgid "" -"click to select date\n" -"double-click to use the date directly" -msgstr "" -"enostavno kliknite za izbiro datuma\n" -"dvokliknite, da neposredno uporabite datum" - -#: ../src/dtgtk/range.c:973 -msgid "years: " -msgstr "leta: " - -#: ../src/dtgtk/range.c:981 -msgid "months: " -msgstr "meseci: " - -#: ../src/dtgtk/range.c:989 -msgid "days: " -msgstr "dnevi: " - -#. the time section -#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1501 -msgid "time" -msgstr "čas" - -#: ../src/dtgtk/range.c:1049 -msgid "current date: " -msgstr "trenutni datum: " - -#: ../src/dtgtk/range.c:1053 ../src/dtgtk/range.c:1787 -#: ../src/dtgtk/range.c:1838 -msgid "now" -msgstr "sedaj" - -#: ../src/dtgtk/range.c:1055 -msgid "set the value to always match current datetime" -msgstr "nastavite vrednost, ki naj vedno ustreza trenutnemu datumu in času" - -#. apply button -#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:162 -#: ../src/libs/metadata.c:901 ../src/libs/styles.c:897 -msgid "apply" -msgstr "uveljavi" - -#: ../src/dtgtk/range.c:1059 -msgid "set the range bound with this value" -msgstr "nastavite omejitev obsega s to vrednostjo" - -#: ../src/dtgtk/resetlabel.c:59 -msgid "double-click to reset" -msgstr "dvojni klik za ponastavitev" - -#: ../src/dtgtk/thumbnail.c:142 ../src/dtgtk/thumbnail.c:175 -msgid "current" -msgstr "trenutni" - -#: ../src/dtgtk/thumbnail.c:142 ../src/dtgtk/thumbnail.c:151 -msgid "leader" -msgstr "voditelj" - -#: ../src/dtgtk/thumbnail.c:150 -msgid "" -"\n" -"click here to set this image as group leader\n" -msgstr "" -"\n" -"kliknite sem, da določite to sliko za voditeljico skupine\n" - -#. and the number of grouped images -#: ../src/dtgtk/thumbnail.c:187 ../src/libs/filters/grouping.c:144 -#: ../src/libs/filters/grouping.c:169 -msgid "grouped images" -msgstr "grupirane slike" - -#: ../src/dtgtk/thumbnail.c:820 ../src/dtgtk/thumbnail.c:1635 -#: ../src/iop/ashift.c:6191 ../src/iop/ashift.c:6280 ../src/iop/ashift.c:6282 -#: ../src/iop/ashift.c:6284 ../src/libs/navigation.c:110 -#: ../src/libs/navigation.c:190 -msgid "fit" -msgstr "prilagodi" - -#: ../src/dtgtk/thumbtable.c:1041 ../src/views/slideshow.c:421 -msgid "there are no images in this collection" -msgstr "v tej zbirki ni slik" - -#: ../src/dtgtk/thumbtable.c:1048 -msgid "if you have not imported any images yet" -msgstr "niste uvozili še nobene slike" - -#: ../src/dtgtk/thumbtable.c:1052 -msgid "you can do so in the import module" -msgstr "to lahko naredite v modulu uvoza" - -#: ../src/dtgtk/thumbtable.c:1061 -msgid "try to relax the filter settings in the top panel" -msgstr "poskusite omehčati nastavitve filtra v zgornjem panelu" - -#: ../src/dtgtk/thumbtable.c:1072 -msgid "or add images in the collections module in the left panel" -msgstr "ali dodajte slike v modulu zbirk na levi plošči" - -#: ../src/dtgtk/thumbtable.c:1338 -msgid "" -"you have changed the settings related to how thumbnails are generated.\n" -msgstr "" -"spremenili ste nastavitve, povezane z načinom ustvarjanja predoglednih " -"sličic.\n" - -#: ../src/dtgtk/thumbtable.c:1341 -msgid "" -"all cached thumbnails need to be invalidated.\n" -"\n" -msgstr "" -"vse predpomnjene sličice je potrebno razveljaviti.\n" -"\n" - -#: ../src/dtgtk/thumbtable.c:1345 -#, c-format -msgid "" -"cached thumbnails starting from level %d need to be invalidated.\n" -"\n" -msgstr "" -"vse predpomnjene sličice od nivoja %d je potrebno razveljaviti.\n" -"\n" - -#: ../src/dtgtk/thumbtable.c:1350 -#, c-format -msgid "" -"cached thumbnails below level %d need to be invalidated.\n" -"\n" -msgstr "" -"vse predpomnjene sličice pod nivojem %d je potrebno razveljaviti.\n" -"\n" - -#: ../src/dtgtk/thumbtable.c:1355 -#, c-format -msgid "" -"cached thumbnails between level %d and %d need to be invalidated.\n" -"\n" -msgstr "" -"vse predpomnjene sličice med nivojema %d in %d je potrebno razveljaviti.\n" -"\n" - -#: ../src/dtgtk/thumbtable.c:1358 -msgid "do you want to do that now?" -msgstr "ali želite storiti to zdaj?" - -#: ../src/dtgtk/thumbtable.c:1360 -msgid "cached thumbnails invalidation" -msgstr "razveljavitev predpomnjenih predoglednih sličic" - -#. setup history key accelerators -#: ../src/dtgtk/thumbtable.c:2561 -msgid "copy history" -msgstr "kopiraj zgodovino" - -#: ../src/dtgtk/thumbtable.c:2563 -msgid "copy history parts" -msgstr "kopiraj dele zgodovine" - -#: ../src/dtgtk/thumbtable.c:2565 -msgid "paste history" -msgstr "prilepi zgodovino" - -#: ../src/dtgtk/thumbtable.c:2567 -msgid "paste history parts" -msgstr "prilepi dele zgodovine" - -#: ../src/dtgtk/thumbtable.c:2569 ../src/libs/copy_history.c:394 -msgid "discard history" -msgstr "zavrzi zgodovino" - -#: ../src/dtgtk/thumbtable.c:2572 -msgid "duplicate image" -msgstr "podvoji sliko" - -#: ../src/dtgtk/thumbtable.c:2574 -msgid "duplicate image virgin" -msgstr "podvoji izvorno sliko" - -#: ../src/dtgtk/thumbtable.c:2584 ../src/libs/select.c:147 -msgid "select film roll" -msgstr "izberi zvitek filma" - -#: ../src/dtgtk/thumbtable.c:2586 ../src/libs/select.c:151 -msgid "select untouched" -msgstr "izberi nedotaknjene" - -#: ../src/generate-cache/main.c:50 -#, c-format -msgid "creating cache directories\n" -msgstr "ustvarjam mape za medpomnilnik\n" - -#: ../src/generate-cache/main.c:56 -#, c-format -msgid "creating cache directory '%s'\n" -msgstr "ustvarjam mape za medpomnilnik '%s'\n" - -#: ../src/generate-cache/main.c:59 -#, c-format -msgid "could not create directory '%s'!\n" -msgstr "nisem mogel ustvariti mape '%s'!\n" - -#: ../src/generate-cache/main.c:83 -#, c-format -msgid "warning: no images are matching the requested image id range\n" -msgstr "opozorilo: nobena slika ne ustreza zahtevanemu intervalu id slik\n" - -#: ../src/generate-cache/main.c:86 -#, c-format -msgid "warning: did you want to swap these boundaries?\n" -msgstr "opozorilo: ali želite zamenjati te mejne vrednosti?\n" - -#: ../src/generate-cache/main.c:227 -#, c-format -msgid "" -"warning: disk backend for thumbnail cache is disabled (cache_disk_backend)\n" -"if you want to pre-generate thumbnails and for darktable to use them, you " -"need to enable disk backend for thumbnail cache\n" -"no thumbnails to be generated, done.\n" -msgstr "" -"opozorilo: diskovno zaledje za predogledne sličice je onemogočeno " -"(cache_disk_backend)\n" -"če želite vnaprej pripraviti predogledne sličice za rabo programu darktable, " -"morate omogočiti diskovno zaledje za predogledne sličice\n" -"nobenih predoglednih sličic ne bo ustvarjenih, končano.\n" - -#: ../src/generate-cache/main.c:238 -#, c-format -msgid "" -"warning: disk backend for full preview cache is disabled " -"(cache_disk_backend_full)\n" -"if you want to pre-generate full previews and for darktable to use them, you " -"need to enable disk backend for full preview cache\n" -"no full previews to be generated, done.\n" -msgstr "" -"opozorilo: diskovno zaledje za medpomnilnik za polni predogled sličic je " -"onemogočeno (cache_disk_backend_full)\n" -"če želite vnaprej pripraviti predogledne sličice za rabo programu darktable, " -"morate omogočiti predpomnenje diskovnega zaledja za predogledne sličice\n" -"nobenih predoglednih sličic ni pripravljenih, končano.\n" - -#: ../src/generate-cache/main.c:248 -#, c-format -msgid "error: ensure that min_mip <= max_mip\n" -msgstr "napaka: zagotovite da bo min_mip <= max_mip\n" - -#: ../src/generate-cache/main.c:253 -#, c-format -msgid "creating complete lighttable thumbnail cache\n" -msgstr "" -"ustvarjam vmesni pomnilnik popolno osvetljeno podlago predoglednih sličic\n" - -#: ../src/gui/accelerators.c:61 -msgid "active view" -msgstr "aktivni pogled" - -#: ../src/gui/accelerators.c:62 -msgid "other views" -msgstr "ostali pogledi" - -#: ../src/gui/accelerators.c:63 -msgid "fallbacks" -msgstr "rešitve v sili" - -#: ../src/gui/accelerators.c:64 ../src/gui/accelerators.c:722 -#: ../src/gui/accelerators.c:2607 ../src/gui/accelerators.c:3470 -msgid "speed" -msgstr "hitrost" - -#: ../src/gui/accelerators.c:80 ../src/views/view.c:1202 -msgid "scroll" -msgstr "drsanje" - -#: ../src/gui/accelerators.c:81 -msgid "pan" -msgstr "premik" - -#: ../src/gui/accelerators.c:82 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6283 ../src/iop/clipping.c:1902 -#: ../src/iop/clipping.c:2094 ../src/iop/clipping.c:2110 -#: ../src/views/darkroom.c:2676 ../src/views/lighttable.c:1250 -msgid "horizontal" -msgstr "vodoravno" - -#: ../src/gui/accelerators.c:83 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6281 ../src/iop/clipping.c:1901 -#: ../src/iop/clipping.c:2095 ../src/iop/clipping.c:2109 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:1254 -msgid "vertical" -msgstr "navpično" - -#: ../src/gui/accelerators.c:84 -msgid "diagonal" -msgstr "diagonala" - -#: ../src/gui/accelerators.c:86 -msgid "leftright" -msgstr "levodesno" - -#: ../src/gui/accelerators.c:87 -msgid "updown" -msgstr "gordol" - -#: ../src/gui/accelerators.c:88 -msgid "pgupdown" -msgstr "strangordol" - -#: ../src/gui/accelerators.c:96 ../src/views/view.c:1186 -msgid "shift" -msgstr "premik" - -#: ../src/gui/accelerators.c:97 ../src/views/view.c:1187 -msgid "ctrl" -msgstr "krmilka" - -#: ../src/gui/accelerators.c:98 ../src/views/view.c:1188 -msgid "alt" -msgstr "alt" - -#: ../src/gui/accelerators.c:99 -msgid "cmd" -msgstr "cmd" - -#: ../src/gui/accelerators.c:100 -msgid "altgr" -msgstr "altgr" - -#: ../src/gui/accelerators.c:109 ../src/gui/accelerators.c:156 -#: ../src/libs/tagging.c:1782 -msgid "edit" -msgstr "uredi" - -#: ../src/gui/accelerators.c:110 ../src/gui/accelerators.c:682 -msgid "up" -msgstr "gor" - -#: ../src/gui/accelerators.c:111 ../src/gui/accelerators.c:682 -msgid "down" -msgstr "dol" - -#: ../src/gui/accelerators.c:115 -msgid "set" -msgstr "nastavi" - -#: ../src/gui/accelerators.c:119 -msgid "popup" -msgstr "pojavni meni" - -#: ../src/gui/accelerators.c:120 ../src/gui/accelerators.c:153 -#: ../src/gui/gtk.c:3054 ../src/views/lighttable.c:760 -msgid "next" -msgstr "naslednja" - -#: ../src/gui/accelerators.c:121 ../src/gui/accelerators.c:152 -#: ../src/gui/gtk.c:3055 ../src/views/lighttable.c:761 -msgid "previous" -msgstr "prejšnja" - -#: ../src/gui/accelerators.c:123 ../src/gui/accelerators.c:1462 -msgid "last" -msgstr "zadnji" - -#: ../src/gui/accelerators.c:124 ../src/gui/accelerators.c:1461 -msgid "first" -msgstr "prvi" - -#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:141 -#: ../src/gui/accelerators.c:314 ../src/libs/filters/rating_range.c:268 -#: ../src/libs/tagging.c:3119 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2419 ../src/views/darkroom.c:2648 -msgid "toggle" -msgstr "preklopi" - -#: ../src/gui/accelerators.c:131 -msgid "ctrl-toggle" -msgstr "krmilka-toggle" - -#: ../src/gui/accelerators.c:132 -msgid "ctrl-on" -msgstr "ctrl-on" - -#: ../src/gui/accelerators.c:133 -msgid "right-toggle" -msgstr "desno-preklopi" - -#: ../src/gui/accelerators.c:134 -msgid "right-on" -msgstr "desno" - -#: ../src/gui/accelerators.c:145 ../src/gui/gtk.c:3053 -msgid "activate" -msgstr "aktiviraj" - -#: ../src/gui/accelerators.c:146 -msgid "ctrl-activate" -msgstr "krmilka-aktiviraj" - -#: ../src/gui/accelerators.c:147 -msgid "right-activate" -msgstr "desno-aktiviraj" - -#: ../src/gui/accelerators.c:154 -msgid "store" -msgstr "shramba" - -#: ../src/gui/accelerators.c:157 ../src/gui/styles_dialog.c:639 -msgid "update" -msgstr "osveži" - -#: ../src/gui/accelerators.c:158 ../src/libs/tools/global_toolbox.c:60 -#: ../src/libs/tools/global_toolbox.c:510 -msgid "preferences" -msgstr "preference" - -#: ../src/gui/accelerators.c:163 -msgid "apply on new instance" -msgstr "uveljavi na novem pojavku" - -#: ../src/gui/accelerators.c:168 -msgid "start" -msgstr "zagon" - -#: ../src/gui/accelerators.c:169 -msgid "end" -msgstr "konec" - -#: ../src/gui/accelerators.c:332 -msgid "entry" -msgstr "vnos" - -#: ../src/gui/accelerators.c:409 -msgid "combo effect not found" -msgstr "ni najdenega učinka sestave" - -#: ../src/gui/accelerators.c:578 -msgid "(keypad)" -msgstr "(tipkovnica)" - -#: ../src/gui/accelerators.c:587 -msgid "tablet button" -msgstr "gumb tablice" - -#: ../src/gui/accelerators.c:596 -msgid "unknown driver" -msgstr "neznani gonilnik" - -#: ../src/gui/accelerators.c:663 -msgid "long" -msgstr "dolgo" - -#: ../src/gui/accelerators.c:664 -msgid "double-press" -msgstr "dvojni pritisk" - -#: ../src/gui/accelerators.c:665 -msgid "triple-press" -msgstr "trojni pritisk" - -#: ../src/gui/accelerators.c:666 -msgid "press" -msgstr "stisk" - -#: ../src/gui/accelerators.c:670 -msgctxt "accel" -msgid "left" -msgstr "levo" - -#: ../src/gui/accelerators.c:671 -msgctxt "accel" -msgid "right" -msgstr "desno" - -#: ../src/gui/accelerators.c:672 -msgctxt "accel" -msgid "middle" -msgstr "srednje" - -#: ../src/gui/accelerators.c:673 -msgctxt "accel" -msgid "long" -msgstr "dolgo" - -#: ../src/gui/accelerators.c:674 -msgctxt "accel" -msgid "double-click" -msgstr "dvoklik" - -#: ../src/gui/accelerators.c:675 -msgctxt "accel" -msgid "triple-click" -msgstr "troklik" - -#: ../src/gui/accelerators.c:676 -msgid "click" -msgstr "klik" - -#: ../src/gui/accelerators.c:704 -msgid "first instance" -msgstr "prvi pojavek" - -#: ../src/gui/accelerators.c:706 -msgid "last instance" -msgstr "zadnji pojavek" - -#: ../src/gui/accelerators.c:708 -msgid "relative instance" -msgstr "relativni pojavek" - -#: ../src/gui/accelerators.c:867 -#, c-format -msgid "" -"Lua script command copied to clipboard:\n" -"\n" -"<tt>%s</tt>" -msgstr "" -"Lua script ukazi prekopirani na odložišče:\n" -"\n" -"<tt>%s</tt>" - -#: ../src/gui/accelerators.c:965 ../src/gui/accelerators.c:978 -msgid "start typing for incremental search" -msgstr "začnite tipkati za postopno iskanje" - -#: ../src/gui/accelerators.c:966 -msgid "" -"\n" -"press Delete to delete selected shortcut" -msgstr "" -"\n" -"pritisnite Delete za brisanje izbranih bližnjic" - -#: ../src/gui/accelerators.c:968 -msgid "" -"\n" -"double-click to add new shortcut" -msgstr "" -"\n" -"dvojni klik za dodajanje nove bližnjice" - -#: ../src/gui/accelerators.c:979 -msgid "click to filter shortcuts list" -msgstr "kliknite za filtriranje seznama bližnjic" - -#: ../src/gui/accelerators.c:981 -msgid "" -"\n" -"right click to show action of selected shortcut" -msgstr "" -"\n" -"desni klik za prikaz dejavnosti izbrane bližnjice" - -#: ../src/gui/accelerators.c:984 -msgid "" -"\n" -"double-click to define new shortcut" -msgstr "" -"\n" -"dvojni klik za določanje nove bližnjice" - -#: ../src/gui/accelerators.c:1015 -msgid "shift+alt+scroll to change height" -msgstr "dvigalka+krmilka+drsanje za spreminjanje višine" - -#: ../src/gui/accelerators.c:1035 -msgid "" -"press keys with mouse click and scroll or move combinations to create a " -"shortcut" -msgstr "" -"pritisnite tipke s klikom miške in pomaknite ali preselite kombinacije da bi " -"ustvarili bližnjico" - -#: ../src/gui/accelerators.c:1036 -msgid "click to open shortcut configuration" -msgstr "kliknite da bi odprli nastavitev bližnjice" - -#: ../src/gui/accelerators.c:1037 -msgid "ctrl+click to add to quick access panel\n" -msgstr "krmilka+klik za dodajanje na ploščo za hitri dostop\n" - -#: ../src/gui/accelerators.c:1038 -msgid "ctrl+click to remove from quick access panel\n" -msgstr "krmilka+klik za odstranjevanje iz plošče za hitri dostop\n" - -#: ../src/gui/accelerators.c:1039 -msgid "scroll to change default speed" -msgstr "drsenje za spreminjanje privzete hitrosti" - -#: ../src/gui/accelerators.c:1040 -msgid "right click to exit mapping mode" -msgstr "desno klik za izhod prenosnega načina" - -#: ../src/gui/accelerators.c:1051 -#, c-format -msgid "" -"%sright-click to type a specific value between <b>%s</b> and <b>%s</b>\n" -"or hold ctrl+shift while dragging to ignore soft limits." -msgstr "" -"%sdesni klik za vnos specifičnih vrednosti med <b>%s</b> in <b>%s</b>\n" -"ali držite kontrolko+dvigalko med potegom, da prezrete mehke omejitve." - -#: ../src/gui/accelerators.c:1112 -msgid "ctrl+v" -msgstr "ctrl+v" - -#: ../src/gui/accelerators.c:1112 -msgid "right long click" -msgstr "desni dolgi klik" - -#: ../src/gui/accelerators.c:1112 -msgid "to copy Lua command" -msgstr "za kopiranje ukaza Lua" - -#: ../src/gui/accelerators.c:1344 -msgid "shortcut for move exists with single effect" -msgstr "bližnjica za premikanje obstaja z enojnim učinkom" - -#: ../src/gui/accelerators.c:1345 -msgid "create separate shortcuts for up and down move?" -msgstr "naj ustvarim ločene bližnjice za gibanje gor ali dol?" - -#: ../src/gui/accelerators.c:1368 -#, c-format -msgid "%s, speed reset" -msgstr "%s, ponovna nastavitev hitrosti" - -#: ../src/gui/accelerators.c:1377 -msgid "shortcut exists with different settings" -msgstr "obstaja bližnjica z različnimi nastavitvami" - -#: ../src/gui/accelerators.c:1378 -msgid "reset the settings of the shortcut?" -msgstr "na ponovno nastavim nastavitve bližnjice?" - -#: ../src/gui/accelerators.c:1389 -msgid "shortcut already exists" -msgstr "bližnjica že obstaja" - -#: ../src/gui/accelerators.c:1390 -msgid "remove the shortcut?" -msgstr "naj odstranim bližnjico?" - -#: ../src/gui/accelerators.c:1423 -msgid "clashing shortcuts exist" -msgstr "obstajajo bližnjice v konfliktu" - -#: ../src/gui/accelerators.c:1424 -msgid "remove these existing shortcuts?" -msgstr "naj odstranim te obstoječe bližnjice?" - -#. or 3, but change char relative[] = "-2" to "-1" -#. NUM_INSTANCES -#: ../src/gui/accelerators.c:1460 -msgid "preferred" -msgstr "priporočena" - -#: ../src/gui/accelerators.c:1463 -msgid "second" -msgstr "drugi" - -#: ../src/gui/accelerators.c:1464 -msgid "last but one" -msgstr "predzadnji" - -#: ../src/gui/accelerators.c:1610 ../src/gui/accelerators.c:1670 -msgid "(unchanged)" -msgstr "(nespremenjeno)" - -#: ../src/gui/accelerators.c:1776 -msgid "" -"define a shortcut by pressing a key, optionally combined with modifier keys " -"(ctrl/shift/alt)\n" -"a key can be double or triple pressed, with a long last press\n" -"while the key is held, a combination of mouse buttons can be (double/triple/" -"long) clicked\n" -"still holding the key (and modifiers and/or buttons) a scroll or mouse move " -"can be added\n" -"connected devices can send keys or moves using their physical controllers\n" -"\n" -"right-click to cancel" -msgstr "" -"določite bližnjico s pritiskom na tipko, lahko tudi v kombinaciji z " -"modifikacijskimi tipkami (krmilka/dvigalka/alt)\n" -"tipko lahko pritisnete dvakrat ali trikrat, z zadnjim dolgim pritiskom\n" -"medtem ko držite tipko, lahko (dvakrat/trikrat/dolgo) kliknete kombinacijo " -"miškinih gumbov\n" -"še vedno držite tipko (in modifikatorje in/ali gumbe) lahko dodate pomik ali " -"premikanje miške\n" -"povezane naprave lahko pošiljajo ključe ali premike s svojimi fizičnimi " -"krmilniki\n" -"\n" -"z desno tipko miške kliknite za preklic" - -#: ../src/gui/accelerators.c:1847 -msgid "removing shortcut" -msgstr "odstranjujem bližnjico" - -#: ../src/gui/accelerators.c:1848 -msgid "remove the selected shortcut?" -msgstr "naj odstranim izbrane bližnjice?" - -#: ../src/gui/accelerators.c:1938 -msgid "command" -msgstr "ukaz" - -#: ../src/gui/accelerators.c:1939 -msgid "preset" -msgstr "začetna nastavitev" - -#: ../src/gui/accelerators.c:2272 -msgid "restore shortcuts" -msgstr "obnovi bližnjice" - -#: ../src/gui/accelerators.c:2275 -msgid "_defaults" -msgstr "_privzeto" - -#: ../src/gui/accelerators.c:2276 -msgid "_startup" -msgstr "_ob zagonu" - -#: ../src/gui/accelerators.c:2277 -msgid "_edits" -msgstr "_urejanja" - -#: ../src/gui/accelerators.c:2283 -msgid "" -"restore shortcuts from one of these states:\n" -" - default\n" -" - as at startup\n" -" - as when opening this dialog\n" -msgstr "" -"obnovi bližnjice iz enega od naslednjih stanj:\n" -"- privzeto\n" -"- kot ob zagonu\n" -"- kot ob odprtju tega dialoga\n" - -#: ../src/gui/accelerators.c:2289 -msgid "" -"clear all newer shortcuts\n" -"(instead of just restoring changed ones)" -msgstr "" -"očisti vse novejše bližnjice\n" -"(namesto samo obnove spremenjenih)" - -#: ../src/gui/accelerators.c:2344 ../src/gui/preferences.c:906 -#: ../src/libs/tools/global_toolbox.c:494 -#: ../src/libs/tools/global_toolbox.c:645 -msgid "shortcuts" -msgstr "bližnjice" - -#: ../src/gui/accelerators.c:2353 -msgid "export shortcuts" -msgstr "izvozi bližnjice" - -#: ../src/gui/accelerators.c:2356 ../src/gui/accelerators.c:2436 -#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:564 -msgid "_ok" -msgstr "_ok" - -#: ../src/gui/accelerators.c:2361 -msgid "" -"export all shortcuts to a file\n" -"or just for one selected device\n" -msgstr "" -"izvozi vse bližnjice na datoteko\n" -"ali samo za eno izbrano napravo\n" - -#: ../src/gui/accelerators.c:2368 ../src/gui/accelerators.c:2448 -msgid "keyboard" -msgstr "tipkovnica" - -#: ../src/gui/accelerators.c:2380 -msgid "device id" -msgstr "id naprave" - -#: ../src/gui/accelerators.c:2406 -msgid "select file to export" -msgstr "izberi datoteko za izvoz" - -#: ../src/gui/accelerators.c:2407 ../src/libs/tagging.c:2525 -msgid "_export" -msgstr "_izvoz" - -#: ../src/gui/accelerators.c:2433 -msgid "import shortcuts" -msgstr "uvozi bližnjice" - -#: ../src/gui/accelerators.c:2441 -msgid "" -"import all shortcuts from a file\n" -"or just for one selected device\n" -msgstr "" -"uvozi vse bližnjice iz datoteke\n" -"ali samo za eno izbrano napravo\n" - -#: ../src/gui/accelerators.c:2460 -msgid "id in file" -msgstr "id v datoteki" - -#: ../src/gui/accelerators.c:2466 -msgid "id when loaded" -msgstr "id ko je naložena" - -#: ../src/gui/accelerators.c:2470 -msgid "clear device first" -msgstr "najprej očisti napravo" - -#: ../src/gui/accelerators.c:2494 -msgid "select file to import" -msgstr "izberi datoteko za uvoz" - -#: ../src/gui/accelerators.c:2495 ../src/libs/tagging.c:2489 -msgid "_import" -msgstr "_uvoz" - -#: ../src/gui/accelerators.c:2568 -msgid "search shortcuts list" -msgstr "seznam bližnjic iskanja" - -#: ../src/gui/accelerators.c:2569 -msgid "" -"incrementally search the list of shortcuts\n" -"press up or down keys to cycle through matches" -msgstr "" -"postopno išči po seznamu bližnjic\n" -"pritisnite tipki gor ali dol, da se ciklično pomikate po zadetkih" - -#. Setting up the cell renderers -#: ../src/gui/accelerators.c:2583 ../src/views/view.c:1383 -msgid "shortcut" -msgstr "bližnjica" - -#: ../src/gui/accelerators.c:2585 ../src/gui/accelerators.c:2676 -#: ../src/views/view.c:1385 -msgid "action" -msgstr "akcija" - -#: ../src/gui/accelerators.c:2594 -msgid "element" -msgstr "element" - -#: ../src/gui/accelerators.c:2601 -msgid "effect" -msgstr "učinek" - -#: ../src/gui/accelerators.c:2658 -msgid "search actions list" -msgstr "seznam aktivnosti" - -#: ../src/gui/accelerators.c:2659 -msgid "" -"incrementally search the list of actions\n" -"press up or down keys to cycle through matches" -msgstr "" -"postopno išči po seznamu akcij\n" -"pritisnite tipki gor ali dol, da se ciklično pomikate po zadetkih" - -#: ../src/gui/accelerators.c:2682 ../src/gui/guides.c:719 -#: ../src/libs/export_metadata.c:192 -msgid "type" -msgstr "tip" - -#: ../src/gui/accelerators.c:2717 -msgid "enable fallbacks" -msgstr "omogoči rešitve v sili" - -#: ../src/gui/accelerators.c:2718 -msgid "" -"enables default meanings for additional buttons, modifiers or moves\n" -"when used in combination with a base shortcut" -msgstr "" -"omogoči privzete pomene za dodatne gumbe, modifikatorje ali premike\n" -"kadar se uporabljajo v kombinaciji z osnovno bližnjico" - -#: ../src/gui/accelerators.c:2725 -msgid "open help page for shortcuts" -msgstr "odpri stran pomoči za bližnjice" - -#: ../src/gui/accelerators.c:2730 -msgid "restore..." -msgstr "obnovi..." - -#: ../src/gui/accelerators.c:2731 -msgid "restore default shortcuts or previous state" -msgstr "obnovi privzete bližnjice ali prejšnje stanje" - -#: ../src/gui/accelerators.c:2735 ../src/libs/styles.c:883 -#: ../src/libs/tagging.c:3251 -msgid "import..." -msgstr "uvozi..." - -#: ../src/gui/accelerators.c:2736 -msgid "fully or partially import shortcuts from file" -msgstr "v celoti ali delno uvozi bližnjice iz datoteke" - -#: ../src/gui/accelerators.c:2740 ../src/libs/styles.c:890 -#: ../src/libs/tagging.c:3254 -msgid "export..." -msgstr "izvoz..." - -#: ../src/gui/accelerators.c:2741 -msgid "fully or partially export shortcuts to file" -msgstr "v celoti ali delno izvozi bližnjice v datoteko" - -#: ../src/gui/accelerators.c:3139 -msgid "reinitialising input devices" -msgstr "ponovno nastavi vhodne naprave" - -#: ../src/gui/accelerators.c:3342 -msgid "fallback to move" -msgstr "rešitev v sili za prenos" - -#: ../src/gui/accelerators.c:3578 -#, c-format -msgid "%s not assigned" -msgstr "%s ni dodeljeno" - -#: ../src/gui/accelerators.c:3751 -#, c-format -msgid "%s assigned to %s" -msgstr "%s dodeljen za %s" - -#: ../src/gui/gtk.c:173 ../src/views/darkroom.c:4650 -msgid "darktable - darkroom preview" -msgstr "darktable - predogled temnice" - -#: ../src/gui/gtk.c:184 -msgid "tooltips off" -msgstr "izklopi orodne namige" - -#: ../src/gui/gtk.c:186 -msgid "tooltips on" -msgstr "vklopi orodne namige" - -#: ../src/gui/gtk.c:191 -msgid "" -"tooltip visibility can only be toggled if compositing is enabled in your " -"window manager" -msgstr "" -"vidnost orodnih namigov je mogoče preklapljati le, če je v vašem upravitelju " -"oken omogočeno sestavljanje vsebin" - -#: ../src/gui/gtk.c:814 -msgid "closing darktable..." -msgstr "zapiram darktable..." - -#: ../src/gui/gtk.c:1135 -msgid "panels" -msgstr "plošče" - -#. an action that does nothing - used for overriding/removing default shortcuts -#: ../src/gui/gtk.c:1184 -msgid "no-op" -msgstr "brez operacije" - -#: ../src/gui/gtk.c:1186 -msgid "switch views" -msgstr "preklopi poglede" - -#: ../src/gui/gtk.c:1187 ../src/views/tethering.c:102 -msgid "tethering" -msgstr "odd. upravljanje" - -#: ../src/gui/gtk.c:1188 ../src/gui/preferences.c:531 -#: ../src/gui/preferences.c:542 ../src/libs/tools/lighttable.c:66 -#: ../src/views/lighttable.c:91 -msgid "lighttable" -msgstr "osvetljena podlaga" - -#: ../src/gui/gtk.c:1189 ../src/gui/preferences.c:532 -#: ../src/gui/preferences.c:542 ../src/views/darkroom.c:94 -msgid "darkroom" -msgstr "temnica" - -#: ../src/gui/gtk.c:1190 ../src/views/map.c:197 -msgid "map" -msgstr "zemljevid" - -#: ../src/gui/gtk.c:1191 ../src/views/slideshow.c:389 -msgid "slideshow" -msgstr "projekcija" - -#. Print button -#: ../src/gui/gtk.c:1192 ../src/libs/print_settings.c:2885 -msgid "print" -msgstr "tiskaj" - -#. register ctrl-q to quit: -#: ../src/gui/gtk.c:1198 -msgid "quit" -msgstr "zapusti" - -#. Full-screen accelerator (no ESC handler here to enable quit-slideshow using ESC) -#: ../src/gui/gtk.c:1201 -msgid "fullscreen" -msgstr "celotni zaslon" - -#: ../src/gui/gtk.c:1205 -msgid "collapsing controls" -msgstr "strnjevanje kontrol" - -#. specific top/bottom toggles -#: ../src/gui/gtk.c:1207 -msgid "header" -msgstr "glava" - -#: ../src/gui/gtk.c:1208 -msgid "filmstrip and timeline" -msgstr "kos filma in časovni trak" - -#: ../src/gui/gtk.c:1209 -msgid "top toolbar" -msgstr "vrhnja orodna letvica" - -#: ../src/gui/gtk.c:1210 -msgid "bottom toolbar" -msgstr "spodnja orodna letvica" - -#: ../src/gui/gtk.c:1211 -msgid "all top" -msgstr "vse na vrhu" - -#: ../src/gui/gtk.c:1212 -msgid "all bottom" -msgstr "vse na dnu" - -#: ../src/gui/gtk.c:1214 -msgid "toggle tooltip visibility" -msgstr "preklapljaj vidnost orodnih namigov" - -#: ../src/gui/gtk.c:1215 -msgid "reinitialise input devices" -msgstr "ponovno nastavi vhodne naprave" - -#: ../src/gui/gtk.c:1253 -msgid "toggle focus-peaking mode" -msgstr "preklopi način vrhnjega osredotočanja" - -#. toggle focus peaking everywhere -#: ../src/gui/gtk.c:1258 -msgid "toggle focus peaking" -msgstr "preklopi vrhnje osredotočanje" - -#: ../src/gui/gtk.c:1594 ../src/gui/gtk.c:3143 ../src/gui/gtk.c:3148 -#: ../src/gui/gtk.c:3153 ../src/gui/gtk.c:3158 -msgid "tabs" -msgstr "zavihki" - -#: ../src/gui/gtk.c:2535 -msgid "_yes" -msgstr "_da" - -#: ../src/gui/gtk.c:2536 -msgid "_no" -msgstr "_ne" - -#. ask the user if darktable.org may be accessed -#: ../src/gui/gtk.c:2647 -msgid "access the online user manual?" -msgstr "sprotni dostop do uporabniškega priročnika?" - -#: ../src/gui/gtk.c:2648 -#, c-format -msgid "do you want to access `%s'?" -msgstr "ali res želite dostopiti do '%s'?" - -#: ../src/gui/gtk.c:2717 -msgid "help url opened in web browser" -msgstr "spletni naslov pomoči odprt v spletnem brskalniku" - -#: ../src/gui/gtk.c:2721 -msgid "error while opening help url in web browser" -msgstr "spletni naslov pomoči odprt v spletnem brskalniku" - -#: ../src/gui/gtk.c:2732 -msgid "there is no help available for this element" -msgstr "ni na voljo pomoči za ta element" - -#. font name can only use period as decimal separator -#. but printf format strings use comma for some locales, so replace comma with period -#: ../src/gui/gtk.c:2752 -#, c-format -msgid "%.1f" -msgstr "%.1f" - -#: ../src/gui/gtk.c:2754 -#, c-format -msgid "Sans %s" -msgstr "Sans %s" - -#: ../src/gui/gtk.c:3048 -msgid "does not contain pages" -msgstr "ne vsebuje strani" - -#: ../src/gui/gtk.c:3265 -#, c-format -msgid "never show more than %d lines" -msgstr "nikoli ne prikazuj več več kot %d vrstic" - -#: ../src/gui/gtkentry.c:172 -msgid "$(ROLL.NAME) - roll of the input image" -msgstr "$(ROLL.NAME) - zvitek vhodnih slik" - -#: ../src/gui/gtkentry.c:173 -msgid "$(FILE.FOLDER) - folder containing the input image" -msgstr "$(FILE.FOLDER) - mapa, ki vsebuje vhodno sliko" - -#: ../src/gui/gtkentry.c:174 -msgid "$(FILE.NAME) - basename of the input image" -msgstr "$(FILE.NAME) - osnovno ime za vhodne slike" - -#: ../src/gui/gtkentry.c:175 -msgid "$(FILE.EXTENSION) - extension of the input image" -msgstr "$(FILE.EXTENSION) - podaljšek vhodne slike" - -#: ../src/gui/gtkentry.c:176 -msgid "$(VERSION) - duplicate version" -msgstr "$(VERSION) - verzija duplikata" - -#: ../src/gui/gtkentry.c:177 -msgid "" -"$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version " -"exists" -msgstr "" -"$(VERSION.IF_MULTI) - enako kot $(VERSION) vendar prazni niz, če obstaja " -"samo ena verzija" - -#: ../src/gui/gtkentry.c:178 -msgid "$(VERSION.NAME) - version name from metadata" -msgstr "$(VERSION.NAME) - ime verzije iz metapodatkov" - -#: ../src/gui/gtkentry.c:179 -msgid "$(JOBCODE) - job code for import" -msgstr "$(JOBCODE) - koda posla za uvoz" - -#: ../src/gui/gtkentry.c:180 -msgid "$(SEQUENCE) - sequence number" -msgstr "$(SEQUENCE) - številka zaporedja" - -#: ../src/gui/gtkentry.c:181 -msgid "$(WIDTH.MAX) - maximum image export width" -msgstr "$(WIDTH.MAX) - maksimalna širina izvožene slike" - -#: ../src/gui/gtkentry.c:182 -msgid "$(WIDTH.SENSOR) - image sensor width" -msgstr "$(WIDTH.SENSOR) - širina senzorja slike" - -#: ../src/gui/gtkentry.c:183 -msgid "$(WIDTH.RAW) - RAW image width" -msgstr "$(WIDTH.RAW) - širina surove slike" - -#: ../src/gui/gtkentry.c:184 -msgid "$(WIDTH.CROP) - image width after crop" -msgstr "$(WIDTH.CROP) - širina slike po obrezu" - -#: ../src/gui/gtkentry.c:185 -msgid "$(WIDTH.EXPORT) - exported image width" -msgstr "$(WIDTH.EXPORT) - širina izvožene slike" - -#: ../src/gui/gtkentry.c:186 -msgid "$(HEIGHT.MAX) - maximum image export height" -msgstr "$(HEIGHT.MAX) - maksimalna višina izvožene slike" - -#: ../src/gui/gtkentry.c:187 -msgid "$(HEIGHT.SENSOR) - image sensor height" -msgstr "$(HEIGHT.SENSOR) - višina senzorja slike" - -#: ../src/gui/gtkentry.c:188 -msgid "$(HEIGHT.RAW) - RAW image height" -msgstr "$(HEIGHT.RAW) - višina surove slike" - -#: ../src/gui/gtkentry.c:189 -msgid "$(HEIGHT.CROP) - image height after crop" -msgstr "$(HEIGHT.CROP) - višina slike po obrezu" - -#: ../src/gui/gtkentry.c:190 -msgid "$(HEIGHT.EXPORT) - exported image height" -msgstr "$(HEIGHT.EXPORT) - višina izvožene slike" - -#: ../src/gui/gtkentry.c:191 -msgid "$(YEAR) - year" -msgstr "$(YEAR) - leto" - -#: ../src/gui/gtkentry.c:192 -msgid "$(YEAR.SHORT) - year without century" -msgstr "$(YEAR.SHORT) - leto brez stoletja" - -#: ../src/gui/gtkentry.c:193 -msgid "$(MONTH) - month" -msgstr "$(MONTH) - mesec" - -#: ../src/gui/gtkentry.c:194 -msgid "$(MONTH.SHORT) - abbreviated month name according to the current locale" -msgstr "$(MONTH.SHORT) - okrajšan mesec glede na trenutno lokalno okolje" - -#: ../src/gui/gtkentry.c:195 -msgid "$(MONTH.LONG) - full month name according to the current locale" -msgstr "$(MONTH.LONG) - polno ime mesece gleda na trenutno lokalno okolje" - -#: ../src/gui/gtkentry.c:196 -msgid "$(DAY) - day" -msgstr "$(DAY) - dan" - -#: ../src/gui/gtkentry.c:197 -msgid "$(HOUR) - hour" -msgstr "$(HOUR) - ura" - -#: ../src/gui/gtkentry.c:198 -msgid "$(HOUR.AMPM) - hour, 12-hour clock" -msgstr "$(HOUR.AMPM) - ura, 12-urni prikaz" - -#: ../src/gui/gtkentry.c:199 -msgid "$(MINUTE) - minute" -msgstr "$(MINUTE) - minuta" - -#: ../src/gui/gtkentry.c:200 -msgid "$(SECOND) - second" -msgstr "$(SECOND) - sekunda" - -#: ../src/gui/gtkentry.c:201 -msgid "$(MSEC) - millisecond" -msgstr "$(MSEC) - millisekunda" - -#: ../src/gui/gtkentry.c:202 -msgid "$(EXIF.YEAR) - EXIF year" -msgstr "$(EXIF.YEAR) - leto iz EXIF" - -#: ../src/gui/gtkentry.c:203 -msgid "$(EXIF.YEAR.SHORT) - EXIF year without century" -msgstr "$(EXIF.YEAR.SHORT - leto iz EXIF brez stoletja" - -#: ../src/gui/gtkentry.c:204 -msgid "$(EXIF.MONTH) - EXIF month" -msgstr "$(EXIF.MONTH) - mesec iz EXIF" - -#: ../src/gui/gtkentry.c:205 -msgid "" -"$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current " -"locale" -msgstr "" -"$(EXIF.MONTH.SHORT) - okrajšan mesec iz EXIF glede na trenutno lokalno okolje" - -#: ../src/gui/gtkentry.c:206 -msgid "" -"$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" -msgstr "" -"$(EXIF.MONTH.LONG) - polno ime iz EXIF glede na trenutno lokalno okolje" - -#: ../src/gui/gtkentry.c:207 -msgid "$(EXIF.DAY) - EXIF day" -msgstr "$(EXIF.DAY) - dan iz EXIF" - -#: ../src/gui/gtkentry.c:208 -msgid "$(EXIF.HOUR) - EXIF hour" -msgstr "$(EXIF.HOUR) - ura iz EXIF" - -#: ../src/gui/gtkentry.c:209 -msgid "$(EXIF.HOUR.AMPM) - EXIF hour, 12-hour clock" -msgstr "$(EXIF.HOUR.AMPM) - ura iz EXIF, 12 urni prikaz" - -#: ../src/gui/gtkentry.c:210 -msgid "$(EXIF.MINUTE) - EXIF minute" -msgstr "$(EXIF.MINUTE) - minuta iz EXIF" - -#: ../src/gui/gtkentry.c:211 -msgid "$(EXIF.SECOND) - EXIF second" -msgstr "$(EXIF.SECOND) - sekunda iz EXIF" - -#: ../src/gui/gtkentry.c:212 -msgid "$(EXIF.MSEC) - EXIF millisecond" -msgstr "$(EXIF.MSEC) - milisekunda iz EXIF" - -#: ../src/gui/gtkentry.c:213 -msgid "$(EXIF.ISO) - ISO value" -msgstr "$(EXIF.ISO) - občutljivost ISO" - -#: ../src/gui/gtkentry.c:214 -msgid "$(EXIF.EXPOSURE) - EXIF exposure" -msgstr "$(EXIF.EXPOSURE) - EXIF osvetlitev" - -#: ../src/gui/gtkentry.c:215 -msgid "$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias" -msgstr "$(EXIF.EXPOSURE.BIAS) - EXIF pristranskost osvetlitve" - -#: ../src/gui/gtkentry.c:216 -msgid "$(EXIF.APERTURE) - EXIF aperture" -msgstr "$(EXIF.APERTURE) - EXIF zaslonka" - -#: ../src/gui/gtkentry.c:217 -msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" -msgstr "$(EXIF.FOCAL.LENGTH) - EXIF goriščna razdalja" - -#: ../src/gui/gtkentry.c:218 -msgid "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" -msgstr "$(EXIF.FOCUS.DISTANCE) - EXIF izmerjena razdalja" - -#: ../src/gui/gtkentry.c:219 -msgid "$(EXIF.MAKER) - camera maker" -msgstr "$(EXIF.MAKER) - izdelovalec kamere" - -#: ../src/gui/gtkentry.c:220 -msgid "$(EXIF.MODEL) - camera model" -msgstr "$(EXIF.MODEL) - model kamere" - -#: ../src/gui/gtkentry.c:221 -msgid "$(EXIF.LENS) - lens" -msgstr "$(EXIF.LENS) - lečje" - -#: ../src/gui/gtkentry.c:222 -msgid "$(LONGITUDE) - longitude" -msgstr "$(LONGITUDE) - geografska dolžina" - -#: ../src/gui/gtkentry.c:223 -msgid "$(LATITUDE) - latitude" -msgstr "$(LATITUDE) - geografska širina" - -#: ../src/gui/gtkentry.c:224 -msgid "$(ELEVATION) - elevation" -msgstr "$(ELEVATION) - višina" - -#: ../src/gui/gtkentry.c:225 -msgid "$(STARS) - star rating as number (-1 for rejected)" -msgstr "$(STARS) - ocene z zvezdicami (-1 za zavrnjeno)" - -#: ../src/gui/gtkentry.c:226 -msgid "$(RATING.ICONS) - star/reject rating in icon form" -msgstr "$(RATING.ICONS) - ocene zvezdice/zavrnjeno v obliki ikone" - -#: ../src/gui/gtkentry.c:227 -msgid "$(LABELS) - color labels as text" -msgstr "$(LABELS) - barvne oznake kot besedilo" - -#: ../src/gui/gtkentry.c:228 -msgid "$(LABELS.ICONS) - color labels as icons" -msgstr "$(LABELS.ICONS) - barvne oznake kot ikone" - -#: ../src/gui/gtkentry.c:229 -msgid "$(ID) - image ID" -msgstr "$(ID) - ID slike" - -#: ../src/gui/gtkentry.c:230 -msgid "$(TITLE) - title from metadata" -msgstr "$(TITLE) - naslov iz metapodatkov" - -#: ../src/gui/gtkentry.c:231 -msgid "$(DESCRIPTION) - description from metadata" -msgstr "$(DESCRIPTION) - opis iz metapodatkov" - -#: ../src/gui/gtkentry.c:232 -msgid "$(CREATOR) - creator from metadata" -msgstr "$(CREATOR) - avtor iz metapodatkov" - -#: ../src/gui/gtkentry.c:233 -msgid "$(PUBLISHER) - publisher from metadata" -msgstr "$(PUBLISHER) - izdajatelj iz metapodatkov" - -#: ../src/gui/gtkentry.c:234 -msgid "$(RIGHTS) - rights from metadata" -msgstr "$(RIGHTS) - pravice iz metapodatkov" - -#: ../src/gui/gtkentry.c:235 -msgid "$(USERNAME) - login name" -msgstr "$(USERNAME) - uporabniško ime" - -#: ../src/gui/gtkentry.c:236 -msgid "$(FOLDER.PICTURES) - pictures folder" -msgstr "$(FOLDER.PICTURES) - mapa s slikami" - -#: ../src/gui/gtkentry.c:237 -msgid "$(FOLDER.HOME) - home folder" -msgstr "$(FOLDER.HOME) - izhodiščna mapa" - -#: ../src/gui/gtkentry.c:238 -msgid "$(FOLDER.DESKTOP) - desktop folder" -msgstr "$(FOLDER.DESKTOP) - mapa namizja" - -#: ../src/gui/gtkentry.c:239 -msgid "$(OPENCL.ACTIVATED) - whether OpenCL is activated" -msgstr "$(OPENCL.ACTIVATED) - ali je OpenCL aktiviran" - -#: ../src/gui/gtkentry.c:240 -msgid "$(CATEGORY0(category)) - subtag of level 0 in hierarchical tags" -msgstr "" -"$(CATEGORY0(kategorija) - pod-oznaka nivoja 0 med hierarhičnimi oznakami" - -#: ../src/gui/gtkentry.c:241 -msgid "$(TAGS) - tags as set in metadata settings" -msgstr "$(TAGS) - oznake kot so navedene v nastavitvah metapodatkov" - -#: ../src/gui/gtkentry.c:242 -msgid "$(DARKTABLE.NAME) - darktable name" -msgstr "$(DARKTABLE.NAME) - darktable ime" - -#: ../src/gui/gtkentry.c:243 -msgid "$(DARKTABLE.VERSION) - current darktable version" -msgstr "$(DARKTABLE.VERSION) - trenutna verzija darktable" - -#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:255 -msgid "grid" -msgstr "mreža" - -#: ../src/gui/guides.c:31 -msgid "rules of thirds" -msgstr "pravilo tretjin" - -#: ../src/gui/guides.c:32 -msgid "metering" -msgstr "merjenje" - -#: ../src/gui/guides.c:33 -msgid "perspective" -msgstr "perspektiva" - -#: ../src/gui/guides.c:34 -msgid "diagonal method" -msgstr "diagonalna metoda" - -#: ../src/gui/guides.c:35 -msgid "harmonious triangles" -msgstr "harmonični trikotniki" - -#: ../src/gui/guides.c:36 -msgid "golden sections" -msgstr "zlati rez" - -#: ../src/gui/guides.c:37 -msgid "golden spiral" -msgstr "zlata spirala" - -#: ../src/gui/guides.c:38 -msgid "golden spiral sections" -msgstr "špiralni zlati rez" - -#: ../src/gui/guides.c:39 -msgid "golden mean (all guides)" -msgstr "zlato povprečje (vsa vodila)" - -#: ../src/gui/guides.c:218 -msgid "horizontal lines" -msgstr "vodoravna vodila" - -#: ../src/gui/guides.c:219 -msgid "number of horizontal guide lines" -msgstr "število vodoravnih vodil" - -#: ../src/gui/guides.c:228 -msgid "vertical lines" -msgstr "navpična vodila" - -#: ../src/gui/guides.c:229 -msgid "number of vertical guide lines" -msgstr "število navpičnih vodil" - -#: ../src/gui/guides.c:238 -msgid "subdivisions" -msgstr "pod-delitve" - -#: ../src/gui/guides.c:239 -msgid "number of subdivisions per grid rectangle" -msgstr "število pod-delitev na posamezen pravokotnik v mreži" - -#. title -#: ../src/gui/guides.c:700 -msgid "global guide overlay settings" -msgstr "splošne nastavitve globalnih vodil" - -#: ../src/gui/guides.c:710 ../src/gui/guides.c:719 ../src/gui/guides.c:727 -#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2648 -msgid "guide lines" -msgstr "vodila" - -#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2092 -msgid "flip" -msgstr "prezrcali" - -#: ../src/gui/guides.c:710 -msgid "flip guides" -msgstr "prezrcali vodila" - -#: ../src/gui/guides.c:713 -msgid "horizontally" -msgstr "vodoravno" - -#: ../src/gui/guides.c:714 -msgid "vertically" -msgstr "navpično" - -#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6285 ../src/iop/clipping.c:2096 -#: ../src/iop/colorbalance.c:1917 -msgid "both" -msgstr "oboje" - -#: ../src/gui/guides.c:720 -msgid "setup guide lines" -msgstr "nastavi vodila" - -#: ../src/gui/guides.c:727 -msgid "overlay color" -msgstr "barva prekrivne plasti" - -#: ../src/gui/guides.c:727 -msgid "set overlay color" -msgstr "nastavite barvo prekrivne plasti" - -#: ../src/gui/guides.c:741 -msgid "" -"set the contrast between the lightest and darkest part of the guide overlays" -msgstr "" -"nastavi kontrast med najsvetlejšim in najtemnejšim delom prekrivanja vodil" - -#: ../src/gui/guides.c:847 ../src/gui/guides.c:893 -msgid "show guides" -msgstr "prikaži vodila" - -#: ../src/gui/guides.c:902 -msgid "show guide overlay when this module has focus" -msgstr "prikaži plast vodil, kadar je ta modul osredotočen" - -#: ../src/gui/guides.c:904 -msgid "" -"change global guide settings\n" -"note that these settings are applied globally and will impact any module " -"that shows guide overlays" -msgstr "" -"spremeni globalne nastavitve vodila\n" -"upoštevajte, da se te nastavitve uporabljajo globalno in bodo vplivale na " -"kateri koli modul, ki prikazuje plast vodil" - -#: ../src/gui/hist_dialog.c:222 -msgid "select parts to copy" -msgstr "izberi dele za kopiranje" - -#: ../src/gui/hist_dialog.c:222 -msgid "select parts to paste" -msgstr "izberi dele za lepljenje" - -#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:517 -msgid "select _all" -msgstr "izberi _vse" - -#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:518 -msgid "select _none" -msgstr "ne izberi _nič" - -#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:593 -#: ../src/gui/styles_dialog.c:615 -msgid "include" -msgstr "vključi" - -#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:669 -#: ../src/gui/styles_dialog.c:675 -msgid "item" -msgstr "postavka" - -#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:682 -#: ../src/gui/styles_dialog.c:691 -msgid "mask" -msgstr "maska" - -#: ../src/gui/hist_dialog.c:360 -msgid "can't copy history out of unaltered image" -msgstr "ne morem kopirati zgodovine slike, ki še ni bila spremenjena" - -#. grid headers -#: ../src/gui/import_metadata.c:417 -msgid "metadata presets" -msgstr "prednastavitve metapodatkov" - -#: ../src/gui/import_metadata.c:420 -msgid "" -"metadata to be applied per default\n" -"double-click on a label to clear the corresponding entry\n" -"double-click on 'preset' to clear all entries" -msgstr "" -"metapodatki za privzeto rabo\n" -"dvokliknite nalepko, da počistite ustrezen vnos\n" -"dvokliknite na 'prednastavljeno', da počistite vse vnose" - -#: ../src/gui/import_metadata.c:430 -msgid "from XMP" -msgstr "iz XMP" - -#: ../src/gui/import_metadata.c:433 -msgid "" -"selected metadata are imported from image and override the default value.\n" -"this drives also the 'look for updated XMP files' and 'load sidecar file' " -"actions.\n" -"CAUTION: not selected metadata are cleaned up when XMP file is updated." -msgstr "" -"izbrani metapodatki so uvoženi iz slike in preglasijo privzeto vrednost\n" -"to poganja tudi 'videz posodobljenih datotek XMP' in aktivnosti 'nalaganje " -"priklopne datoteke'\n" -"POZOR: Neizbrani metapodatki se očistijo, ko posodobite datoteko XMP" - -#. tags -#: ../src/gui/import_metadata.c:469 -msgid "tag presets" -msgstr "prednastavljene oznake" - -#: ../src/gui/import_metadata.c:483 -msgid "comma separated list of tags" -msgstr "seznam oznak ločenih z vejico" - -#. language -#: ../src/gui/preferences.c:274 -msgid "interface language" -msgstr "jezik vmesnika" - -#: ../src/gui/preferences.c:289 -msgid "double-click to reset to the system language" -msgstr "dvojni klik za ponastavitev jezika sistema" - -#: ../src/gui/preferences.c:291 -msgid "" -"set the language of the user interface. the system default is marked with an " -"* (needs a restart)" -msgstr "" -"določi jezik uporabniškega vmesnika. sistemska privzeta nastavitev je " -"označena z * (potreben je ponovni zagon)" - -#: ../src/gui/preferences.c:300 -msgid "theme" -msgstr "tema" - -#: ../src/gui/preferences.c:328 -msgid "set the theme for the user interface" -msgstr "določi temo uporabniškega vmesnika" - -#: ../src/gui/preferences.c:341 ../src/gui/preferences.c:348 -msgid "use system font size" -msgstr "uporabi velikost sistemske pisave" - -#: ../src/gui/preferences.c:357 ../src/gui/preferences.c:364 -msgid "font size in points" -msgstr "velikost pisave v točkah" - -#: ../src/gui/preferences.c:369 -msgid "GUI controls and text DPI" -msgstr "kontrola grafičnega vmesnika in ločljivost besedil" - -#: ../src/gui/preferences.c:376 -msgid "" -"adjust the global GUI resolution to rescale controls, buttons, labels, etc.\n" -"increase for a magnified GUI, decrease to fit more content in window.\n" -"set to -1 to use the system-defined global resolution.\n" -"default is 96 DPI on most systems.\n" -"(needs a restart)." -msgstr "" -"prilagodi globalno ločljivost grafičnega vmesnika v spremembo merila " -"kontrolnikov, gumbov, oznak itd.\n" -"povečajte za povečan vmesnik, zmanjšajte, da se prilega več vsebine v okno.\n" -"nastavljeno na -1 za uporabo sistemsko določene globalne ločljivosti.\n" -"privzeto je 96 DPI v večini sistemov.\n" -"(potreben je ponovni zagon)." - -#. checkbox to allow user to modify theme with user.css -#: ../src/gui/preferences.c:385 -msgid "modify selected theme with CSS tweaks below" -msgstr "spremenite izbrano temo s prilagoditvami CSS spodaj" - -#: ../src/gui/preferences.c:393 -msgid "modify theme with CSS keyed below (saved to user.css)" -msgstr "" -"spremenite temo s CSS ključnimi parametri spodaj (shranjeno v user.css)" - -#: ../src/gui/preferences.c:415 -msgctxt "usercss" -msgid "save CSS and apply" -msgstr "shrani CSS in uveljavi" - -#: ../src/gui/preferences.c:420 -msgid "click to save and apply the CSS tweaks entered in this editor" -msgstr "" -"kliknite, da shranite in uporabite popravke CSS, vnesene v tem urejevalniku" - -#: ../src/gui/preferences.c:422 -msgid "open help page for CSS tweaks" -msgstr "odpri stran pomoči za prilagajanja CSS" - -#. load default text with some pointers -#: ../src/gui/preferences.c:443 -msgid "ERROR Loading user.css" -msgstr "NAPAKA pri nalaganju user.css" - -#. load default text -#: ../src/gui/preferences.c:452 -msgid "Enter CSS theme tweaks here" -msgstr "Vnesite prilagoditve teme CSS tu" - -#: ../src/gui/preferences.c:488 -msgid "darktable preferences" -msgstr "nastavitve programa darktable" - -#: ../src/gui/preferences.c:533 -msgid "processing" -msgstr "obdelava" - -#: ../src/gui/preferences.c:534 -msgid "security" -msgstr "varnost" - -#: ../src/gui/preferences.c:535 -msgid "storage" -msgstr "shramba" - -#: ../src/gui/preferences.c:536 -msgid "miscellaneous" -msgstr "razno" - -#: ../src/gui/preferences.c:561 -msgid "darktable needs to be restarted for settings to take effect" -msgstr "darktable je potrebno ponovno zagnati, da bi nastavitve začele veljati" - -#. exif -#: ../src/gui/preferences.c:820 ../src/gui/presets.c:644 -#: ../src/libs/metadata_view.c:137 -msgid "model" -msgstr "model" - -#: ../src/gui/preferences.c:824 ../src/gui/presets.c:652 -#: ../src/libs/metadata_view.c:138 -msgid "maker" -msgstr "izdelovalec" - -#: ../src/gui/preferences.c:861 -msgid "search presets list" -msgstr "išči seznam prednastavitev" - -#: ../src/gui/preferences.c:862 -msgid "" -"incrementally search the list of presets\n" -"press up or down keys to cycle through matches" -msgstr "" -"postopno išči po seznamu prednastavitev\n" -"pritisnite tipki gor ali dol, da se ciklično pomikate po zadetkih" - -#: ../src/gui/preferences.c:868 -msgctxt "preferences" -msgid "import..." -msgstr "uvoz..." - -#: ../src/gui/preferences.c:872 -msgctxt "preferences" -msgid "export..." -msgstr "izvozi..." - -#: ../src/gui/preferences.c:1031 -#, c-format -msgid "failed to import preset %s" -msgstr "ni bilo mogoče uvoziti prednastavitev %s" - -#: ../src/gui/preferences.c:1042 -msgid "select preset(s) to import" -msgstr "izberi prednastavitve za uvoz" - -#: ../src/gui/preferences.c:1043 ../src/libs/collect.c:408 -#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:929 -#: ../src/libs/import.c:1506 ../src/libs/import.c:1610 ../src/libs/styles.c:527 -msgid "_open" -msgstr "_odpri" - -#: ../src/gui/preferences.c:1052 -msgid "darktable preset files" -msgstr "datoteke prednastavitev za darktable" - -#: ../src/gui/preferences.c:1057 ../src/iop/lut3d.c:1577 -#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:945 -#: ../src/libs/styles.c:541 -msgid "all files" -msgstr "vse datoteke" - -#: ../src/gui/presets.c:59 -msgid "non-raw" -msgstr "ne-surovo" - -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:332 -msgid "raw" -msgstr "surove" - -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:333 -msgid "HDR" -msgstr "HDR" - -#: ../src/gui/presets.c:59 ../src/iop/monochrome.c:77 ../src/libs/image.c:608 -#: ../src/libs/metadata_view.c:339 -msgid "monochrome" -msgstr "enobarvni" - -#: ../src/gui/presets.c:151 -#, c-format -msgid "preset `%s' is write-protected, can't delete!" -msgstr "" -"prednastavitev `%s 'je zaščitena pred pisanjem in je ni mogoče izbrisati!" - -#: ../src/gui/presets.c:157 ../src/gui/presets.c:461 ../src/libs/lib.c:238 -#: ../src/libs/modulegroups.c:3701 -msgid "delete preset?" -msgstr "brišem nastavitve?" - -#: ../src/gui/presets.c:158 ../src/gui/presets.c:462 ../src/libs/lib.c:239 -#: ../src/libs/modulegroups.c:3702 -#, c-format -msgid "do you really want to delete the preset `%s'?" -msgstr "ali res želite brisati nastavitve '%s'?" - -#. add new preset -#. create a shortcut for the new entry -#. then show edit dialog -#. clang-format on -#. create a shortcut for the new entry -#. then show edit dialog -#: ../src/gui/presets.c:200 ../src/gui/presets.c:1035 ../src/gui/presets.c:1038 -#: ../src/gui/presets.c:1041 ../src/libs/lib.c:188 ../src/libs/lib.c:205 -#: ../src/libs/lib.c:213 ../src/libs/lib.c:216 -msgid "new preset" -msgstr "nova nastavitev" - -#: ../src/gui/presets.c:207 -msgid "please give preset a name" -msgstr "prosim, dajte nastavitvi ime" - -#: ../src/gui/presets.c:212 -msgid "unnamed preset" -msgstr "neimenovana nastavitev" - -#: ../src/gui/presets.c:241 -msgid "overwrite preset?" -msgstr "prepišem nastavitev?" - -#: ../src/gui/presets.c:242 -#, c-format -msgid "" -"preset `%s' already exists.\n" -"do you want to overwrite?" -msgstr "" -"nastavitev `%s' že obstaja.\n" -"ali jo želite prepisati?" - -#: ../src/gui/presets.c:420 ../src/imageio/storage/disk.c:123 -#: ../src/imageio/storage/gallery.c:110 ../src/imageio/storage/latex.c:109 -msgid "_select as output destination" -msgstr "_izberi kot cilj izhoda" - -#: ../src/gui/presets.c:429 -#, c-format -msgid "preset %s was successfully exported" -msgstr "prednastavitev %s je bila uspešno izvožena" - -#: ../src/gui/presets.c:557 -#, c-format -msgid "edit `%s' for module `%s'" -msgstr "uredi '%s' za modul '%s'" - -#: ../src/gui/presets.c:561 -msgid "_export..." -msgstr "_izvoz..." - -#: ../src/gui/presets.c:585 -msgid "name of the preset" -msgstr "ime prednastavitve" - -#: ../src/gui/presets.c:594 -msgid "description or further information" -msgstr "opis ali nadaljnja informacija" - -#: ../src/gui/presets.c:598 -msgid "reset all module parameters to their default values" -msgstr "ponastavi parametre vseh modulov na njihove privzete vrednosti" - -#: ../src/gui/presets.c:601 -msgid "" -"the parameters will be reset to their default values, which may be " -"automatically set based on image metadata" -msgstr "" -"parametri bodo ponastavljeni na njihove privzete vrednosti, ki so lahko " -"samodejno nastavljeni na podlagi metapodatkov slike" - -#: ../src/gui/presets.c:607 -msgid "auto apply this preset to matching images" -msgstr "avtomatsko uporabi te nastavitve za ustrezne slike" - -#: ../src/gui/presets.c:611 -msgid "only show this preset for matching images" -msgstr "samo pokaži te nastavitve za ustrezne slike" - -#: ../src/gui/presets.c:613 -msgid "" -"be very careful with this option. this might be the last time you see your " -"preset." -msgstr "" -"bodite previdni s to nastavitvijo. lahko je zadnjič, da vidite te nastavitve." - -#: ../src/gui/presets.c:643 -#, no-c-format -msgid "string to match model (use % as wildcard)" -msgstr "šablona za model ustreznosti (uporabi % kot splošni model)" - -#: ../src/gui/presets.c:651 -#, no-c-format -msgid "string to match maker (use % as wildcard)" -msgstr "" -"šablona, da bi našli ustreznega izdelovalca (uporabi % kot splošni model)" - -#: ../src/gui/presets.c:659 -#, no-c-format -msgid "string to match lens (use % as wildcard)" -msgstr "šablona za iskanje objektiva (uporabi % kot splošni model)" - -#: ../src/gui/presets.c:669 -msgid "minimum ISO value" -msgstr "najmanjša občutljivost ISO" - -#: ../src/gui/presets.c:675 -msgid "" -"maximum ISO value\n" -"if left blank, it is equivalent to no upper limit" -msgstr "" -"maksimalna vrednost ISO\n" -"če je puščeno prazno, to pomeni, da ni zgornje meje" - -#: ../src/gui/presets.c:688 -msgid "minimum exposure time" -msgstr "najkrajši čas osvetlitve" - -#: ../src/gui/presets.c:689 -msgid "maximum exposure time" -msgstr "najdaljši čas osvetlitve" - -#: ../src/gui/presets.c:705 -msgid "minimum aperture value" -msgstr "najmanjša odprtost zaslonke" - -#: ../src/gui/presets.c:706 -msgid "maximum aperture value" -msgstr "največja odprtost zaslonke" - -#: ../src/gui/presets.c:724 -msgid "minimum focal length" -msgstr "najkrajša goriščna razdalja" - -#: ../src/gui/presets.c:725 -msgid "maximum focal length" -msgstr "najdaljša goriščna razdalja" - -#. raw/hdr/ldr/mono/color -#: ../src/gui/presets.c:733 ../src/imageio/format/j2k.c:650 -msgid "format" -msgstr "format" - -#: ../src/gui/presets.c:738 -msgid "select image types you want this preset to be available for" -msgstr "" -"izberite vrste slik, za katere želite, da je ta prednastavitev na voljo" - -#: ../src/gui/presets.c:751 ../src/libs/filtering.c:1201 -msgid "and" -msgstr "in" - -#: ../src/gui/presets.c:795 ../src/gui/presets.c:847 -msgid "∞" -msgstr "∞" - -#: ../src/gui/presets.c:979 -#, c-format -msgid "preset `%s' is write-protected! can't edit it!" -msgstr "prednastavitev `%s 'je zaščitena pred pisanjem! je ni mogoče urejati!" - -#: ../src/gui/presets.c:1003 ../src/libs/lib.c:158 -msgid "update preset?" -msgstr "osvežim prvotno nastavitev?" - -#: ../src/gui/presets.c:1004 ../src/libs/lib.c:159 -#, c-format -msgid "do you really want to update the preset `%s'?" -msgstr "ali res želite posodobiti osnovne nastavitve '%s'?" - -#: ../src/gui/presets.c:1133 -msgid "(first)" -msgstr "(prvi)" - -#: ../src/gui/presets.c:1133 -msgid "(last)" -msgstr "(zadnji)" - -#: ../src/gui/presets.c:1165 -#, c-format -msgid "" -"preset %s\n" -"%s" -msgstr "" -"začetne vrednosti %s\n" -"%s" - -#: ../src/gui/presets.c:1166 -msgid "no presets" -msgstr "ni začetnih vrednosti" - -#: ../src/gui/presets.c:1199 ../src/iop/basecurve.c:528 -#: ../src/iop/basecurve.c:532 ../src/iop/basecurve.c:535 -msgid "display-referred default" -msgstr "privzeta vrednost glede na zaslon" - -#: ../src/gui/presets.c:1201 ../src/iop/channelmixerrgb.c:332 -#: ../src/iop/channelmixerrgb.c:336 ../src/iop/channelmixerrgb.c:339 -#: ../src/iop/exposure.c:297 ../src/iop/exposure.c:301 -#: ../src/iop/exposure.c:304 ../src/iop/filmicrgb.c:3248 -#: ../src/iop/filmicrgb.c:3252 ../src/iop/filmicrgb.c:3255 -#: ../src/iop/sigmoid.c:134 ../src/iop/sigmoid.c:138 ../src/iop/sigmoid.c:141 -msgid "scene-referred default" -msgstr "privzeta vrednost glede na sceno" - -#: ../src/gui/presets.c:1393 ../src/libs/modulegroups.c:3781 -#: ../src/libs/modulegroups.c:3790 -msgid "manage module layouts" -msgstr "upravljanje postavitev modulov" - -#: ../src/gui/presets.c:1402 -msgid "manage quick presets" -msgstr "upravljanje hitrih nastavitev" - -#: ../src/gui/presets.c:1586 -msgid "manage quick presets list..." -msgstr "upravljanje seznamov hitrih nastavitev..." - -#: ../src/gui/presets.c:1727 -msgid "(default)" -msgstr "(privzeto)" - -#: ../src/gui/presets.c:1754 -msgid "disabled: wrong module version" -msgstr "onemogočeno: napačna verzija modula" - -#: ../src/gui/presets.c:1776 ../src/libs/lib.c:551 -msgid "edit this preset.." -msgstr "uredi to nastavitev.." - -#: ../src/gui/presets.c:1781 ../src/libs/lib.c:555 -msgid "delete this preset" -msgstr "briši to nastavitev" - -#: ../src/gui/presets.c:1788 ../src/libs/lib.c:563 -msgid "store new preset.." -msgstr "shrani novo nastavitev.." - -#: ../src/gui/presets.c:1796 ../src/libs/lib.c:576 -msgid "update preset" -msgstr "osveži nastavitev" - -#: ../src/gui/styles_dialog.c:221 ../src/libs/styles.c:437 -#: ../src/libs/styles.c:620 -msgid "overwrite style?" -msgstr "naj prepišem slog?" - -#: ../src/gui/styles_dialog.c:222 -#, c-format -msgid "" -"style `%s' already exists.\n" -"do you want to overwrite?" -msgstr "" -"slog `%s' že obstaja.\n" -"ali ga želite prepisati?" - -#: ../src/gui/styles_dialog.c:251 ../src/gui/styles_dialog.c:323 -msgid "please give style a name" -msgstr "prosim, dajte slogu ime" - -#: ../src/gui/styles_dialog.c:255 ../src/gui/styles_dialog.c:327 -msgid "unnamed style" -msgstr "neimenovani slog" - -#: ../src/gui/styles_dialog.c:312 -#, c-format -msgid "style %s was successfully saved" -msgstr "slog %s je bil uspešno shranjen" - -#: ../src/gui/styles_dialog.c:505 -msgid "edit style" -msgstr "uredi slog" - -#: ../src/gui/styles_dialog.c:506 -msgid "duplicate style" -msgstr "dupliciraj slog" - -#: ../src/gui/styles_dialog.c:507 -msgid "creates a duplicate of the style before applying changes" -msgstr "ustvari duplikat sloga pred uveljavljanjem sprememb" - -#: ../src/gui/styles_dialog.c:511 -msgid "create new style" -msgstr "ustvari nov slog" - -#: ../src/gui/styles_dialog.c:549 -msgid "enter a name for the new style" -msgstr "vnesite ime novega sloga" - -#: ../src/gui/styles_dialog.c:554 -msgid "enter a description for the new style, this description is searchable" -msgstr "vnesite opis novega sloga, po teh opisih lahko preiskujete" - -#: ../src/gui/styles_dialog.c:593 -msgid "keep" -msgstr "ohrani" - -#: ../src/gui/styles_dialog.c:820 -msgid "can't create style out of unaltered image" -msgstr "ne morem ustvariti sloga iz nespremenjene slike" - -#: ../src/imageio/imageio.c:804 -#, c-format -msgid "" -"failed to allocate memory for %s, please lower the threads used for export " -"or buy more memory." -msgstr "" -"nisem mogel dobiti pomnilnika za %s, prosím, znižajte število niti za izvoz " -"ali pa kupite še nekaj pomnilnika." - -#: ../src/imageio/imageio.c:806 -msgctxt "noun" -msgid "thumbnail export" -msgstr "izvoz predogledne sličice" - -#: ../src/imageio/imageio.c:806 -msgctxt "noun" -msgid "export" -msgstr "izvoz" - -#: ../src/imageio/imageio.c:819 -#, c-format -msgid "cannot find the style '%s' to apply during export." -msgstr "na morem najti sloga '%s', da bi ga uporabil ob izvozu." - -#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:536 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 -msgid "8 bit" -msgstr "8 bit" - -#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:556 -msgid "10 bit" -msgstr "10 bit" - -#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:556 -msgid "12 bit" -msgstr "12 bit" - -#: ../src/imageio/format/avif.c:431 -msgid "invalid AVIF bit depth!" -msgstr "neveljavna bitna globina AVIF!" - -#: ../src/imageio/format/avif.c:694 -msgid "AVIF" -msgstr "AVIF" - -#. Bit depth combo box -#: ../src/imageio/format/avif.c:766 ../src/imageio/format/exr.cc:565 -#: ../src/imageio/format/jxl.c:555 ../src/imageio/format/pdf.c:661 -#: ../src/imageio/format/png.c:534 ../src/imageio/format/tiff.c:843 -#: ../src/imageio/format/xcf.c:354 -msgid "bit depth" -msgstr "bitna globina" - -#: ../src/imageio/format/avif.c:779 -msgid "color information stored in an image, higher is better" -msgstr "barvne informacije shranjene na sliki, višje so boljše" - -#: ../src/imageio/format/avif.c:787 -msgid "saving as grayscale will reduce the size for black & white images" -msgstr "če shranite kot sivine, bo zmanjšana velikost datotek črno-belih slik" - -#: ../src/imageio/format/avif.c:789 -msgid "RGB colors" -msgstr "RGB barve" - -#: ../src/imageio/format/avif.c:789 -msgid "grayscale" -msgstr "lestvica sivin" - -#. -#. * Tiling combo box -#. -#: ../src/imageio/format/avif.c:799 -msgid "tiling" -msgstr "razrez" - -#: ../src/imageio/format/avif.c:800 -msgid "" -"tile an image into segments.\n" -"\n" -"makes encoding faster. the impact on quality reduction is negligible, but " -"increases the file size." -msgstr "" -"razreži sliko na segmente.\n" -"\n" -"naredi kodiranje hitrejše. vpliv na zmanjšanje kakovosti je zanemarljiv, a " -"poveča velikost datoteke." - -#: ../src/imageio/format/avif.c:817 ../src/imageio/format/webp.c:383 -msgid "compression type" -msgstr "vrsta stiskanja" - -#: ../src/imageio/format/avif.c:825 -msgid "the compression for the image" -msgstr "stiskanje slike" - -#. min -#. max -#. step -#. default -#. digits -#: ../src/imageio/format/avif.c:842 ../src/imageio/format/j2k.c:661 -#: ../src/imageio/format/jpeg.c:587 ../src/imageio/format/jxl.c:579 -#: ../src/imageio/format/webp.c:394 ../src/libs/camera.c:564 -msgid "quality" -msgstr "kakovost" - -#: ../src/imageio/format/avif.c:847 -msgid "" -"the quality of an image, less quality means fewer details.\n" -"\n" -"the following applies only to lossy setting\n" -"\n" -"pixelformat based on quality:\n" -"\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" -msgstr "" -"kakovost slike, slabša kakovost pomeni manj podrobnosti.\n" -"\n" -"naslednje se nanaša na nastavitve približka\n" -"\n" -"format pikslov na osnovi kakovosti:\n" -"\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" - -#: ../src/imageio/format/copy.c:109 ../src/libs/copy_history.c:370 -#: ../src/libs/image.c:583 -msgid "copy" -msgstr "kopiraj" - -#: ../src/imageio/format/copy.c:124 -msgid "" -"do a 1:1 copy of the selected files.\n" -"the global options below do not apply!" -msgstr "" -"izvedi kopijo 1:1 izbranih datotek.\n" -"globalne nastavitve pri tem ne veljajo!" - -#: ../src/imageio/format/exr.cc:217 -msgid "the selected output profile doesn't work well with EXR" -msgstr "izbrani izhodni profil ne deluje dobro z EXR" - -#: ../src/imageio/format/exr.cc:540 -msgid "OpenEXR" -msgstr "OpenEXR" - -#: ../src/imageio/format/exr.cc:567 -msgid "16 bit (float)" -msgstr "16 bit (plavajoča vejica)" - -#: ../src/imageio/format/exr.cc:567 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 -msgid "32 bit (float)" -msgstr "32 bit (plavajoča vejica)" - -#. compression -#. Compression method combo box -#: ../src/imageio/format/exr.cc:575 ../src/imageio/format/pdf.c:676 -#: ../src/imageio/format/png.c:548 ../src/imageio/format/tiff.c:866 -#: ../src/libs/masks.c:110 -msgid "compression" -msgstr "stiskanje" - -#: ../src/imageio/format/exr.cc:577 ../src/imageio/format/pdf.c:682 -#: ../src/imageio/format/tiff.c:867 -msgid "uncompressed" -msgstr "nestisnjeno" - -#: ../src/imageio/format/exr.cc:578 -msgid "RLE" -msgstr "RLE" - -#: ../src/imageio/format/exr.cc:579 -msgid "ZIPS" -msgstr "ZIPS" - -#: ../src/imageio/format/exr.cc:580 -msgid "ZIP" -msgstr "ZIP" - -#: ../src/imageio/format/exr.cc:581 -msgid "PIZ" -msgstr "PIZ" - -#: ../src/imageio/format/exr.cc:582 -msgid "PXR24" -msgstr "PXR24" - -#: ../src/imageio/format/exr.cc:583 -msgid "B44" -msgstr "B44" - -#: ../src/imageio/format/exr.cc:584 -msgid "B44A" -msgstr "B44A" - -#: ../src/imageio/format/exr.cc:585 -msgid "DWAA" -msgstr "DWAA" - -#: ../src/imageio/format/exr.cc:586 -msgid "DWAB" -msgstr "DWAB" - -#: ../src/imageio/format/j2k.c:618 -msgid "JPEG 2000 (12-bit)" -msgstr "JPEG 2000 (12-bitov)" - -#: ../src/imageio/format/j2k.c:652 -msgid "jp2" -msgstr "jp2" - -#: ../src/imageio/format/j2k.c:667 -msgid "DCP mode" -msgstr "DCP režim" - -#: ../src/imageio/format/j2k.c:670 -msgid "Cinema2K, 24FPS" -msgstr "Cinema2K, 24FPS" - -#: ../src/imageio/format/j2k.c:671 -msgid "Cinema2K, 48FPS" -msgstr "Cinema2K, 48FPS" - -#: ../src/imageio/format/j2k.c:672 -msgid "Cinema4K, 24FPS" -msgstr "Cinema4K, 24FPS" - -#: ../src/imageio/format/jpeg.c:564 -msgid "JPEG (8-bit)" -msgstr "JPEG (8-bitov)" - -#: ../src/imageio/format/jxl.c:471 -msgid "JPEG XL" -msgstr "JPEG XL" - -#: ../src/imageio/format/jxl.c:556 ../src/imageio/format/pdf.c:81 -#: ../src/imageio/format/png.c:536 ../src/imageio/format/tiff.c:847 -#: ../src/imageio/format/xcf.c:357 -msgid "16 bit" -msgstr "16 bit" - -#. Pixel format combo box -#: ../src/imageio/format/jxl.c:562 ../src/imageio/format/tiff.c:852 -msgid "pixel type" -msgstr "vrsta piksla" - -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 -msgid "unsigned integer" -msgstr "nepredznačeno celo število" - -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 -msgid "floating point" -msgstr "plavajoča vejica" - -#: ../src/imageio/format/jxl.c:580 -msgid "" -"the quality of the output image\n" -"0-29 = very lossy\n" -"30-99 = JPEG quality comparable\n" -"100 = lossless (integer bit depth only)" -msgstr "" -"kakovost izhodne slike\n" -"0-29 = zelo grobo\n" -"30-99 = JPEG primerna kakovost\n" -"100 = brez izgub (samo celoštevilska bitna globina)" - -#: ../src/imageio/format/jxl.c:589 -msgid "encoding color profile" -msgstr "barvni profil kodiranja" - -#: ../src/imageio/format/jxl.c:590 -msgid "" -"the color profile used by the encoder\n" -"permit internal XYB color space conversion for more efficient lossy " -"compression,\n" -"or ensure no conversion to keep original image color space (implied for " -"lossless)" -msgstr "" -"barvni profil uporabljen pri kodiranju\n" -"dovoljena konverzija v interni barvni prostor XYB za bolj učinkovito delno " -"kompresijo,\n" -"ali zagotovljeno brez kompresije, da se ohrani izvirni barvni prostor " -"(implicitno brez izgub)" - -#: ../src/imageio/format/jxl.c:593 -msgid "internal" -msgstr "interno" - -#: ../src/imageio/format/jxl.c:593 ../src/libs/duplicate.c:399 -#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:782 -msgid "original" -msgstr "izvirnik" - -#: ../src/imageio/format/jxl.c:607 -msgid "encoding effort" -msgstr "trud kodiranja" - -#: ../src/imageio/format/jxl.c:608 -msgid "" -"the effort used to encode the image, higher efforts will have better results " -"at the expense of longer encoding times" -msgstr "" -"trud uporabljen za kodiranje slike, večji trud ima boljše rezultate na račun " -"daljših časov kodiranja" - -#: ../src/imageio/format/jxl.c:619 -msgid "decoding speed" -msgstr "hitrost dekodiranja" - -#: ../src/imageio/format/jxl.c:620 -msgid "the preferred decoding speed with some sacrifice of quality" -msgstr "prednostna hitrost dekodiranja z nekaj žrtvovanja kakovosti" - -#: ../src/imageio/format/pdf.c:200 ../src/imageio/format/pdf.c:480 -msgid "invalid paper size" -msgstr "neveljavna velikost papirja" - -#: ../src/imageio/format/pdf.c:207 -msgid "invalid border size, using 0" -msgstr "neveljavna velikost roba, privzemam 0" - -#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:316 -#: ../src/imageio/storage/email.c:137 ../src/imageio/storage/gallery.c:331 -#: ../src/imageio/storage/gallery.c:370 ../src/imageio/storage/piwigo.c:1202 -#, c-format -msgid "could not export to file `%s'!" -msgstr "nisem mogel izvoziti v datoteko `%s'!" - -#: ../src/imageio/format/pdf.c:409 -msgid "PDF" -msgstr "PDF" - -#: ../src/imageio/format/pdf.c:577 -msgid "enter the title of the PDF" -msgstr "vnesite naslov PDF dokumenta" - -#. paper size -#. // papers -#: ../src/imageio/format/pdf.c:585 ../src/libs/print_settings.c:2510 -msgid "paper size" -msgstr "velikost papirja" - -#: ../src/imageio/format/pdf.c:586 -msgid "" -"paper size of the PDF\n" -"either one from the list or \"<width> [unit] x <height> <unit>\"\n" -"example: 210 mm x 2.97 cm" -msgstr "" -"velikost papirja za PDF\n" -"bodisi iz seznama ali \"<širina> [enota] x <višina> [enota]\n" -"npr.: 210 mm x 2.97 cm" - -#. orientation -#: ../src/imageio/format/pdf.c:600 -msgid "page orientation" -msgstr "orientacija strani" - -#: ../src/imageio/format/pdf.c:601 -msgid "paper orientation of the PDF" -msgstr "orientacija papirja za PDF" - -#. border -#: ../src/imageio/format/pdf.c:609 ../src/imageio/format/pdf.c:611 -msgid "border" -msgstr "rob" - -#: ../src/imageio/format/pdf.c:612 -msgid "" -"empty space around the PDF\n" -"format: size + unit\n" -"examples: 10 mm, 1 inch" -msgstr "" -"prazen prostor okrog PDF\n" -"format: velikost + enota\n" -"npr.: 10 mm, 1 inch" - -#. dpi -#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1127 -#: ../src/libs/export.c:1150 -msgid "dpi" -msgstr "dpi" - -#: ../src/imageio/format/pdf.c:625 -msgid "dpi of the images inside the PDF" -msgstr "dpi za slike znotraj PDF" - -#. rotate images yes|no -#: ../src/imageio/format/pdf.c:631 -msgid "rotate images" -msgstr "zasukaj slike" - -#: ../src/imageio/format/pdf.c:632 -msgid "" -"images can be rotated to match the PDF orientation to waste less space when " -"printing" -msgstr "" -"slike so lahko zasukane v skladu z orientacijo PDF, tako da se bolje " -"izkoristi prostor pri tisku" - -#. pages all|single images|contact sheet -#: ../src/imageio/format/pdf.c:641 -msgid "TODO: pages" -msgstr "še narediti: strani" - -#: ../src/imageio/format/pdf.c:642 -msgid "what pages should be added to the PDF" -msgstr "katere strani naj bi bile dodane PDF-u" - -#: ../src/imageio/format/pdf.c:645 -msgid "single images" -msgstr "posamične slike" - -#: ../src/imageio/format/pdf.c:645 -msgid "contact sheet" -msgstr "stran kontaktov" - -#. TODO -#. embedded icc profile yes|no -#: ../src/imageio/format/pdf.c:651 -msgid "embed ICC profiles" -msgstr "vgradi ICC profile" - -#: ../src/imageio/format/pdf.c:652 -msgid "images can be tagged with their ICC profile" -msgstr "slike so lahko označene z njihovim ICC profilom" - -#: ../src/imageio/format/pdf.c:671 -msgid "bits per channel of the embedded images" -msgstr "bitov na kanal vgrajenih slik" - -#: ../src/imageio/format/pdf.c:677 -msgid "" -"method used for image compression\n" -"uncompressed -- fast but big files\n" -"deflate -- smaller files but slower" -msgstr "" -"metoda za uporabljena za stiskanje slik\n" -"nestisnjen -- hitro a velike datoteke\n" -"stisnjen - majhne datoteke a počasno" - -#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:867 -msgid "deflate" -msgstr "skrči" - -#. image mode normal|draft|debug -#: ../src/imageio/format/pdf.c:687 -msgid "image mode" -msgstr "slikovni način" - -#: ../src/imageio/format/pdf.c:688 -msgid "" -"normal -- just put the images into the PDF\n" -"draft -- images are replaced with boxes\n" -"debug -- only show the outlines and bounding boxes" -msgstr "" -"normal -- samo vstavi sliko v PDF\n" -"osnutek -- slike so označene z okvirji\n" -"iskanje napak -- samo pokaži obrise in okvirje obsega" - -#: ../src/imageio/format/pdf.c:693 -msgid "normal" -msgstr "normalni" - -#: ../src/imageio/format/pdf.c:693 -msgid "draft" -msgstr "osnutek" - -#: ../src/imageio/format/pdf.c:693 -msgid "debug" -msgstr "išči napake" - -#: ../src/imageio/format/pfm.c:120 -msgid "PFM" -msgstr "PFM" - -#: ../src/imageio/format/png.c:493 -msgid "PNG" -msgstr "PNG" - -#: ../src/imageio/format/ppm.c:111 -msgid "PPM (16-bit)" -msgstr "PPM (16-bitov)" - -#: ../src/imageio/format/tiff.c:228 -msgid "will export as a grayscale image" -msgstr "bo izvoženo kot slika v sivih barvah" - -#: ../src/imageio/format/tiff.c:774 -msgid "TIFF" -msgstr "TIFF" - -#: ../src/imageio/format/tiff.c:868 -msgid "deflate with predictor" -msgstr "skrči s prediktorjem" - -#: ../src/imageio/format/tiff.c:878 -msgid "compression level" -msgstr "nivo kompresije" - -#. shortfile option combo box -#: ../src/imageio/format/tiff.c:887 -msgid "b&w image" -msgstr "č/b slika" - -#: ../src/imageio/format/tiff.c:888 -msgid "write RGB colors" -msgstr "zapiši RGB barve" - -#: ../src/imageio/format/tiff.c:888 -msgid "write grayscale" -msgstr "zapiši sivinsko lestvico" - -#: ../src/imageio/format/webp.c:349 -msgid "WebP" -msgstr "WebP" - -#: ../src/imageio/format/webp.c:385 -msgid "lossy" -msgstr "aproksimativen" - -#: ../src/imageio/format/webp.c:385 -msgid "lossless" -msgstr "brez izgub" - -#: ../src/imageio/format/webp.c:397 -msgid "" -"for lossy, 0 gives the smallest size and 100 the best quality.\n" -"for lossless, 0 is the fastest but gives larger files compared\n" -"to the slowest 100." -msgstr "" -"za aproksimativno daje 0 najmanjšo velikost in 100 najboljšo kakovost.\n" -"brez izgub je 0 najhitrejša, vendar daje večje datoteke v primerjavi\n" -"z najpočasnejšo 100." - -#: ../src/imageio/format/webp.c:407 -msgid "image hint" -msgstr "namig za sliko" - -#: ../src/imageio/format/webp.c:408 -msgid "" -"image characteristics hint for the underlying encoder.\n" -"picture: digital picture, like portrait, inner shot\n" -"photo: outdoor photograph, with natural lighting\n" -"graphic: discrete tone image (graph, map-tile etc)" -msgstr "" -"osnovne značilnosti slike za kodiranje spodaj.\n" -"slika: digitalna slika kot npr. portret posnet v notranjosti\n" -"fotografija: zunanja fotografija z naravno svetlobo\n" -"grafika: slika v diskretnih tonih (grafikon, zemljevid itd.)" - -#: ../src/imageio/format/webp.c:413 -msgid "picture" -msgstr "slika" - -#: ../src/imageio/format/webp.c:413 -msgid "photo" -msgstr "fotografija" - -#: ../src/imageio/format/webp.c:413 -msgid "graphic" -msgstr "grafika" - -#: ../src/imageio/format/xcf.c:314 -msgid "XCF" -msgstr "XCF" - -#: ../src/imageio/storage/disk.c:71 ../src/libs/export.c:1040 -msgid "file on disk" -msgstr "datoteka na disku" - -#: ../src/imageio/storage/disk.c:169 ../src/imageio/storage/gallery.c:155 -#: ../src/imageio/storage/latex.c:154 -msgid "" -"enter the path where to put exported images\n" -"variables support bash like string manipulation\n" -"type '$(' to activate the completion and see the list of variables" -msgstr "" -"se shranijo izvožene slike\n" -"spremenljivke podpirajo bash-eve manipulacije z besedili\n" -"vtipkajte '$(' da aktivirate zaključevanje in poglejte seznam spremenljivk" - -#: ../src/imageio/storage/disk.c:182 ../src/imageio/storage/piwigo.c:1079 -msgid "on conflict" -msgstr "pri konfliktu" - -#: ../src/imageio/storage/disk.c:185 -msgid "create unique filename" -msgstr "ustvari enolično ime datoteke" - -#. DT_COPY_HISTORY_APPEND -#: ../src/imageio/storage/disk.c:186 ../src/imageio/storage/piwigo.c:1083 -#: ../src/libs/copy_history.c:404 ../src/libs/image.c:601 -#: ../src/libs/styles.c:440 ../src/libs/styles.c:623 ../src/libs/styles.c:850 -msgid "overwrite" -msgstr "prepiši" - -#: ../src/imageio/storage/disk.c:187 ../src/imageio/storage/piwigo.c:1081 -#: ../src/libs/styles.c:439 ../src/libs/styles.c:622 -msgid "skip" -msgstr "preskoči" - -#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/gallery.c:253 -#: ../src/imageio/storage/latex.c:252 -#, c-format -msgid "could not create directory `%s'!" -msgstr "nisem mogel ustvariti mape `%s'!" - -#: ../src/imageio/storage/disk.c:272 -#, c-format -msgid "could not write to directory `%s'!" -msgstr "nisem mogel pisati v mapo `%s'!" - -#: ../src/imageio/storage/disk.c:302 -#, c-format -msgid "%d/%d skipping `%s'" -msgid_plural "%d/%d skipping `%s'" -msgstr[0] "%d/%d preskakujem `%s'" -msgstr[1] "%d/%d preskakujem `%s'" -msgstr[2] "%d/%d preskakujem `%s'" -msgstr[3] "%d/%d preskakujem `%s'" - -#: ../src/imageio/storage/disk.c:321 ../src/imageio/storage/email.c:144 -#: ../src/imageio/storage/gallery.c:378 ../src/imageio/storage/latex.c:340 -#, c-format -msgid "%d/%d exported to `%s'" -msgid_plural "%d/%d exported to `%s'" -msgstr[0] "%d/%d izvožen v `%s'" -msgstr[1] "%d/%d izvožena v `%s'" -msgstr[2] "%d/%d izvoženi v `%s'" -msgstr[3] "%d/%d izvoženih v `%s'" - -#: ../src/imageio/storage/disk.c:380 -msgid "" -"you are going to export in overwrite mode, this will overwrite any existing " -"images\n" -"\n" -"do you really want to continue?" -msgstr "" -"nameravate izvažati v prepisljivem načinu, to utegne prepisati že obstoječe " -"slike\n" -"\n" -"ali želite nadaljevati?" - -#: ../src/imageio/storage/email.c:52 -msgid "send as email" -msgstr "poslano po elektronski pošti" - -#: ../src/imageio/storage/email.c:198 -msgid "images exported from darktable" -msgstr "slike izvožene iz programa darktable" - -#: ../src/imageio/storage/email.c:251 -msgid "could not launch email client!" -msgstr "nisem mogel aktivirati poštnega odjemalca!" - -#: ../src/imageio/storage/gallery.c:73 -msgid "website gallery" -msgstr "spletna galerija" - -#: ../src/imageio/storage/gallery.c:171 -msgid "enter the title of the website" -msgstr "vnesite naslov spletne strani" - -#: ../src/imageio/storage/latex.c:72 -msgid "LaTeX book template" -msgstr "šablona za knjigo LaTeX" - -#: ../src/imageio/storage/latex.c:172 -msgid "enter the title of the book" -msgstr "vnesite naslov knjige" - -#: ../src/imageio/storage/piwigo.c:522 -msgid "authenticated" -msgstr "overjeno" - -#: ../src/imageio/storage/piwigo.c:532 ../src/imageio/storage/piwigo.c:547 -#: ../src/imageio/storage/piwigo.c:559 -msgid "not authenticated" -msgstr "ni overjeno" - -#: ../src/imageio/storage/piwigo.c:538 -msgid "not authenticated, cannot reach server" -msgstr "ni overjeno, ne morem doseči strežnika" - -#: ../src/imageio/storage/piwigo.c:587 ../src/imageio/storage/piwigo.c:675 -msgid "create new album" -msgstr "ustvari nov album" - -#: ../src/imageio/storage/piwigo.c:676 -msgid "---" -msgstr "---" - -#: ../src/imageio/storage/piwigo.c:721 -msgid "cannot refresh albums" -msgstr "ne morem osvežiti albumov" - -#: ../src/imageio/storage/piwigo.c:929 -msgid "Piwigo" -msgstr "Piwigo" - -#: ../src/imageio/storage/piwigo.c:954 -msgid "accounts" -msgstr "računi" - -#: ../src/imageio/storage/piwigo.c:972 ../src/imageio/storage/piwigo.c:978 -msgid "server" -msgstr "strežnik" - -#: ../src/imageio/storage/piwigo.c:974 ../src/imageio/storage/piwigo.c:989 -msgid "" -"the server name\n" -"default protocol is https\n" -"specify http:// if non secure server" -msgstr "" -"ime strežnika\n" -"privzeti protokol je https\n" -"določite http:// če je kriptografsko nezavarovan strežnik" - -#: ../src/imageio/storage/piwigo.c:987 ../src/imageio/storage/piwigo.c:993 -msgid "user" -msgstr "uporabnik" - -#: ../src/imageio/storage/piwigo.c:1000 ../src/imageio/storage/piwigo.c:1005 -msgid "password" -msgstr "geslo" - -#. login button -#: ../src/imageio/storage/piwigo.c:1010 -msgid "login" -msgstr "prijava" - -#: ../src/imageio/storage/piwigo.c:1011 -msgid "Piwigo login" -msgstr "prijava za Piwigo" - -#. permissions list -#: ../src/imageio/storage/piwigo.c:1025 -msgid "visible to" -msgstr "vidno" - -#: ../src/imageio/storage/piwigo.c:1027 -msgid "everyone" -msgstr "vsak" - -#: ../src/imageio/storage/piwigo.c:1028 -msgid "contacts" -msgstr "kontakti" - -#: ../src/imageio/storage/piwigo.c:1029 -msgid "friends" -msgstr "prijatelji" - -#: ../src/imageio/storage/piwigo.c:1030 -msgid "family" -msgstr "družina" - -#: ../src/imageio/storage/piwigo.c:1031 -msgid "you" -msgstr "vi" - -#. Available albums -#: ../src/imageio/storage/piwigo.c:1038 -msgid "album" -msgstr "album" - -#: ../src/imageio/storage/piwigo.c:1045 -msgid "refresh album list" -msgstr "osvežen seznam albumov" - -#. Album title -#: ../src/imageio/storage/piwigo.c:1063 -msgid "new album" -msgstr "novi album" - -#. parent album list -#. Available albums -#: ../src/imageio/storage/piwigo.c:1071 -msgid "parent album" -msgstr "nadrejeni album" - -#: ../src/imageio/storage/piwigo.c:1075 -msgid "click login button to start" -msgstr "za začetek kliknite na gumb login" - -#: ../src/imageio/storage/piwigo.c:1080 -msgid "don't check" -msgstr "ne preverjaj" - -#: ../src/imageio/storage/piwigo.c:1082 -msgid "update metadata" -msgstr "osveži metapodatke" - -#: ../src/imageio/storage/piwigo.c:1221 -msgid "cannot create a new Piwigo album!" -msgstr "ne morem tvoriti novega albuma v Piwigo!" - -#: ../src/imageio/storage/piwigo.c:1240 -msgid "could not update to Piwigo!" -msgstr "ni bilo mogoče osvežiti v Piwigo!" - -#: ../src/imageio/storage/piwigo.c:1255 -msgid "could not upload to Piwigo!" -msgstr "ni bilo mogoče prenesti v Piwigo!" - -#: ../src/imageio/storage/piwigo.c:1284 -#, c-format -msgid "%d/%d skipped (already exists)" -msgstr "%d/%d preskočeno (že obstaja)" - -#: ../src/imageio/storage/piwigo.c:1290 -#, c-format -msgid "%d/%d exported to Piwigo webalbum" -msgid_plural "%d/%d exported to Piwigo webalbum" -msgstr[0] "%d/%d izvoženo v spletni album Piwigo" -msgstr[1] "%d/%d izvoženo v spletni album Piwigo" -msgstr[2] "%d/%d izvoženo v spletni album Piwigo" -msgstr[3] "%d/%d izvoženo v spletni album Piwigo" - -#: ../src/iop/ashift.c:120 -msgid "rotate and perspective" -msgstr "sukanje in perspektiva" - -#: ../src/iop/ashift.c:125 -msgid "rotation|keystone|distortion|crop|reframe" -msgstr "sukanje|temeljni kamen|popačenje|obrez|ponovno okvirjenje" - -#: ../src/iop/ashift.c:130 -msgid "rotate or distort perspective" -msgstr "zasukaj ali popači perspektivo" - -#: ../src/iop/ashift.c:131 ../src/iop/channelmixer.c:139 -#: ../src/iop/channelmixerrgb.c:232 ../src/iop/clipping.c:320 -#: ../src/iop/colorbalance.c:161 ../src/iop/colorbalancergb.c:185 -#: ../src/iop/colorchecker.c:130 ../src/iop/colorcorrection.c:77 -#: ../src/iop/crop.c:144 ../src/iop/lut3d.c:141 -msgid "corrective or creative" -msgstr "korektiven ali kreativen" - -#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:148 -#: ../src/iop/bilateral.cc:101 ../src/iop/bilateral.cc:103 -#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:233 -#: ../src/iop/channelmixerrgb.c:235 ../src/iop/clipping.c:321 -#: ../src/iop/clipping.c:323 ../src/iop/colorbalancergb.c:186 -#: ../src/iop/colorin.c:136 ../src/iop/crop.c:145 ../src/iop/crop.c:147 -#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:728 -#: ../src/iop/denoiseprofile.c:730 ../src/iop/diffuse.c:146 -#: ../src/iop/diffuse.c:148 ../src/iop/exposure.c:132 ../src/iop/exposure.c:134 -#: ../src/iop/flip.c:111 ../src/iop/flip.c:112 ../src/iop/hazeremoval.c:113 -#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:242 ../src/iop/lens.cc:244 -#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/retouch.c:210 -#: ../src/iop/retouch.c:212 ../src/iop/sigmoid.c:103 -#: ../src/iop/splittoning.c:104 ../src/iop/splittoning.c:106 -#: ../src/iop/spots.c:70 ../src/iop/spots.c:72 ../src/iop/toneequal.c:325 -#: ../src/iop/velvia.c:106 ../src/iop/velvia.c:108 -msgid "linear, RGB, scene-referred" -msgstr "linearno, RGB, glede na sceno" - -#: ../src/iop/ashift.c:133 ../src/iop/borders.c:200 ../src/iop/clipping.c:322 -#: ../src/iop/crop.c:146 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 -msgid "geometric, RGB" -msgstr "geometrično, RGB" - -#: ../src/iop/ashift.c:2820 -msgid "automatic cropping failed" -msgstr "avtomatično obrezovanje je spodletelo" - -#: ../src/iop/ashift.c:3234 ../src/iop/ashift.c:3286 ../src/iop/ashift.c:3334 -msgid "data pending - please repeat" -msgstr "podatki v dobavljanju - prosim ponovite" - -#: ../src/iop/ashift.c:3243 -msgid "could not detect structural data in image" -msgstr "nisem uspel razbrati strukturnih podatkov v sliki" - -#: ../src/iop/ashift.c:3255 -msgid "could not run outlier removal" -msgstr "odstranjevanje osamelcev ni uspelo" - -#: ../src/iop/ashift.c:3434 -#, c-format -msgid "" -"not enough structure for automatic correction\n" -"minimum %d lines in each relevant direction" -msgstr "" -"ni dovolj strukture za avtomatični popravek\n" -"minimalno %d linij v vsaki relevantni smeri" - -#: ../src/iop/ashift.c:3440 -msgid "automatic correction failed, please correct manually" -msgstr "avtomatično popravljanje je spodletelo, prosim popravite ročno" - -#: ../src/iop/ashift.c:5096 -#, c-format -msgid "only %d lines can be saved in parameters" -msgstr "samo %d vrstic je lahko shranjenih v parametrih" - -#: ../src/iop/ashift.c:5201 -#, c-format -msgid "rotation adjusted by %3.1f° to %3.1f°" -msgstr "zasuk prilagojen z %3.1f° na %3.1f°" - -#: ../src/iop/ashift.c:5852 ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 -#: ../src/iop/ashift.c:5961 -#, c-format -msgid "lens shift (%s)" -msgstr "pomik lečja (%s)" - -#: ../src/iop/ashift.c:6125 -msgid "manual perspective" -msgstr "ročna perspektiva" - -#: ../src/iop/ashift.c:6170 -msgctxt "section" -msgid "perspective" -msgstr "perspektiva" - -#: ../src/iop/ashift.c:6177 ../src/iop/ashift.c:6286 ../src/iop/ashift.c:6288 -#: ../src/iop/ashift.c:6290 -msgid "structure" -msgstr "struktura" - -#: ../src/iop/ashift.c:6212 -msgid "" -"rotate image\n" -"right-click and drag to define a horizontal or vertical line by drawing on " -"the image" -msgstr "" -"zasukaj sliko\n" -"desni klik in poteg za določanje vodoravne ali navpične črte, ki jo narišete " -"na sliko" - -#: ../src/iop/ashift.c:6215 ../src/iop/ashift.c:6217 -msgid "apply lens shift correction in one direction" -msgstr "uporabi popravek pomika lečja v eni smeri" - -#: ../src/iop/ashift.c:6219 -msgid "shear the image along one diagonal" -msgstr "prireži sliko ob eni diagonali" - -#: ../src/iop/ashift.c:6220 ../src/iop/clipping.c:2117 -msgid "automatically crop to avoid black edges" -msgstr "avtomatično obreži v izogib črnim robovom" - -#: ../src/iop/ashift.c:6221 -msgid "" -"lens model of the perspective correction: generic or according to the focal " -"length" -msgstr "" -"model popravkov perspektive objektiva: generični ali odvisen od goriščne " -"razdalje" - -#: ../src/iop/ashift.c:6224 -msgid "focal length of the lens, default value set from EXIF data if available" -msgstr "" -"goriščna razdalja lečja, privzeta vrednost iz podatkov v EXIFu, če obstaja" - -#: ../src/iop/ashift.c:6227 -msgid "" -"crop factor of the camera sensor, default value set from EXIF data if " -"available, manual setting is often required" -msgstr "" -"faktor obreza senzorja, privzeta vrednost iz podatkov v EXIFu, če obstaja, " -"pogosto je potrebna ročna nastavitev" - -#: ../src/iop/ashift.c:6231 -msgid "" -"the level of lens dependent correction, set to maximum for full lens " -"dependency, set to zero for the generic case" -msgstr "" -"nivo popravkov, ki so odvisni od objektiva, postavljeno na max za popolno " -"odvisnost od objektiva, postavljeno na 0 za generični primer" - -#: ../src/iop/ashift.c:6235 -msgid "adjust aspect ratio of image by horizontal and vertical scaling" -msgstr "" -"prilagoditev razmerja proporcev slike s spremembo meril v horizontalni in " -"vertikalni smeri" - -#: ../src/iop/ashift.c:6237 -msgid "" -"automatically correct for vertical perspective distortion\n" -"ctrl+click to only fit rotation\n" -"shift+click to only fit lens shift" -msgstr "" -"avtomatično popravi popačenja vertikalne perspektive\n" -"krmilka+klik samo za prilagajanje zasuka\n" -"dvigalka+klik samo za prilagajanje zamika lečja" - -#: ../src/iop/ashift.c:6241 -msgid "" -"automatically correct for horizontal perspective distortion\n" -"ctrl+click to only fit rotation\n" -"shift+click to only fit lens shift" -msgstr "" -"avtomatično popravljanje popačenja horizontalne perspektive\n" -"krmilka+klik samo za prilagajanje zasuka\n" -"dvigalka+klik samo za prilagajanje zamika lečja" - -#: ../src/iop/ashift.c:6245 -msgid "" -"automatically correct for vertical and horizontal perspective distortions, " -"fitting rotation, lens shift in both directions, and shear\n" -"ctrl+click to only fit rotation\n" -"shift+click to only fit lens shift\n" -"ctrl+shift+click to only fit rotation and lens shift" -msgstr "" -"avtomatično popravljanje popačenj vertikalne in horizontalne perspektive; " -"prilagajanje zasuka, zamika lečja v obeh smereh in prireza\n" -"krmilka+klik samo za prilagajanje zasuka\n" -"dvigalka+klik samo za prilagajanje zamika lečja\n" -"krmilka+dvigalka+klik samo za prilagajanje zasuka in zamika lečja" - -#: ../src/iop/ashift.c:6252 -msgid "" -"automatically analyse line structure in image\n" -"ctrl+click for an additional edge enhancement\n" -"shift+click for an additional detail enhancement\n" -"ctrl+shift+click for a combination of both methods" -msgstr "" -"analiza strukture linij slike\n" -"krmilka+klik za dodatne izboljšave robov\n" -"dvigalka+klik za dodatne izboljšave podrobnosti\n" -"krmilka+dvigalka+klik za kombinacijo obeh metod" - -#: ../src/iop/ashift.c:6257 -msgid "manually define perspective rectangle" -msgstr "ročno določi pravokotnik perspektive" - -#: ../src/iop/ashift.c:6258 -msgid "manually draw structure lines" -msgstr "ročno nariši strukture linij" - -#: ../src/iop/ashift.c:6287 -msgid "rectangle" -msgstr "pravokotnik" - -#: ../src/iop/ashift.c:6289 -msgid "lines" -msgstr "črte" - -#: ../src/iop/ashift.c:6323 ../src/iop/clipping.c:3343 -#, c-format -msgid "[%s] define/rotate horizon" -msgstr "[%s] določi/zasukaj horizont" - -#: ../src/iop/ashift.c:6326 -#, c-format -msgid "[%s on segment] select segment" -msgstr "[%s na segmentu] izberite segment" - -#: ../src/iop/ashift.c:6330 -#, c-format -msgid "[%s on segment] unselect segment" -msgstr "[%s na segmentu] prekličite izbiro segmenta" - -#: ../src/iop/ashift.c:6334 -#, c-format -msgid "[%s] select all segments from zone" -msgstr "[%s] izberite vse segmente iz cone" - -#: ../src/iop/ashift.c:6338 -#, c-format -msgid "[%s] unselect all segments from zone" -msgstr "[%s] prekličite izbiro vseh segmentov iz cone" - -#: ../src/iop/atrous.c:123 ../src/iop/atrous.c:1638 -msgid "contrast equalizer" -msgstr "izenačevalnik kontrastov" - -#: ../src/iop/atrous.c:128 -msgid "sharpness|acutance|local contrast" -msgstr "ostrina|ostrina roba|lokalni kontrast" - -#: ../src/iop/atrous.c:133 -msgid "add or remove local contrast, sharpness, acutance" -msgstr "dodaj ali odstrani lokalni kontrast, ostrino, ostrino roba" - -#: ../src/iop/atrous.c:134 ../src/iop/bilateral.cc:100 ../src/iop/diffuse.c:145 -#: ../src/iop/exposure.c:131 ../src/iop/filmicrgb.c:352 -#: ../src/iop/graduatednd.c:146 ../src/iop/negadoctor.c:146 -#: ../src/iop/rgbcurve.c:143 ../src/iop/rgblevels.c:123 ../src/iop/shadhi.c:197 -#: ../src/iop/sigmoid.c:102 ../src/iop/tonecurve.c:211 -#: ../src/iop/toneequal.c:324 -msgid "corrective and creative" -msgstr "korekcijski in kreativen" - -#: ../src/iop/atrous.c:135 ../src/iop/atrous.c:137 -#: ../src/iop/colorbalance.c:162 -msgid "linear, Lab, scene-referred" -msgstr "linearni, Lab, glede na sceno" - -#: ../src/iop/atrous.c:136 ../src/iop/censorize.c:85 -#: ../src/iop/hazeremoval.c:114 -msgid "frequential, RGB" -msgstr "frekvenčni, RGB" - -#: ../src/iop/atrous.c:727 -msgctxt "eq_preset" -msgid "coarse" -msgstr "grobo" - -#: ../src/iop/atrous.c:742 -msgid "denoise & sharpen" -msgstr "odstranjevanje šuma & ostrenje" - -#: ../src/iop/atrous.c:757 -msgctxt "atrous" -msgid "sharpen" -msgstr "ostrenje" - -#: ../src/iop/atrous.c:772 -msgid "denoise chroma" -msgstr "odstranjevanje šuma krome" - -#: ../src/iop/atrous.c:787 -msgid "denoise" -msgstr "odstranjevanje šuma" - -#: ../src/iop/atrous.c:803 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:421 -msgid "bloom" -msgstr "cvetenje" - -#: ../src/iop/atrous.c:818 ../src/iop/bilat.c:169 -msgid "clarity" -msgstr "jasnost" - -#: ../src/iop/atrous.c:838 -msgid "deblur: large blur, strength 3" -msgstr "odstranitev zamegljenosti: velika zamegljenost, moč 4" - -#: ../src/iop/atrous.c:855 -msgid "deblur: medium blur, strength 3" -msgstr "odstranitev zamegljenosti: srednja zamegljenost, moč 3" - -#: ../src/iop/atrous.c:871 -msgid "deblur: fine blur, strength 3" -msgstr "odstranitev zamegljenosti: fina zamegljenost, moč 3" - -#: ../src/iop/atrous.c:889 -msgid "deblur: large blur, strength 2" -msgstr "odstranitev zamegljenosti: velika zamegljenost, moč 2" - -#: ../src/iop/atrous.c:906 -msgid "deblur: medium blur, strength 2" -msgstr "odstranitev zamegljenosti: srednja zamegljenost, moč 2" - -#: ../src/iop/atrous.c:922 -msgid "deblur: fine blur, strength 2" -msgstr "odstranitev zamegljenosti: fina zamegljenost, moč 2" - -#: ../src/iop/atrous.c:940 -msgid "deblur: large blur, strength 1" -msgstr "odstranitev zamegljenosti: velika zamegljenost, moč 1" - -#: ../src/iop/atrous.c:957 -msgid "deblur: medium blur, strength 1" -msgstr "odstranitev zamegljenosti: srednja zamegljenost, moč 1" - -#: ../src/iop/atrous.c:973 -msgid "deblur: fine blur, strength 1" -msgstr "odstranitev zamegljenosti: fina zamegljenost, moč 1" - -#: ../src/iop/atrous.c:1289 ../src/iop/atrous.c:1525 -#: ../src/iop/denoiseprofile.c:3510 ../src/iop/rawdenoise.c:738 -msgid "coarse" -msgstr "grobo" - -#: ../src/iop/atrous.c:1296 ../src/iop/atrous.c:1526 -#: ../src/iop/denoiseprofile.c:3518 ../src/iop/rawdenoise.c:746 -msgid "fine" -msgstr "fino" - -#: ../src/iop/atrous.c:1308 -msgid "contrasty" -msgstr "kontrastno" - -#: ../src/iop/atrous.c:1314 ../src/iop/denoiseprofile.c:3532 -#: ../src/iop/rawdenoise.c:760 -msgid "noisy" -msgstr "šumno" - -#. case atrous_s: -#: ../src/iop/atrous.c:1317 -msgid "bold" -msgstr "krepko" - -#: ../src/iop/atrous.c:1318 -msgid "dull" -msgstr "zamegljeno" - -#: ../src/iop/atrous.c:1513 ../src/iop/atrous.c:1564 -msgid "boost" -msgstr "pospeši" - -#: ../src/iop/atrous.c:1514 -msgid "reduce" -msgstr "zmanjšaj" - -#: ../src/iop/atrous.c:1515 -msgid "raise" -msgstr "dvigni" - -#: ../src/iop/atrous.c:1516 -msgid "lower" -msgstr "spusti" - -#: ../src/iop/atrous.c:1523 -msgid "coarsest" -msgstr "najbolj grobo" - -#: ../src/iop/atrous.c:1524 -msgid "coarser" -msgstr "bolj grobo" - -#: ../src/iop/atrous.c:1527 -msgid "finer" -msgstr "finejše" - -#: ../src/iop/atrous.c:1528 -msgid "finest" -msgstr "najfinejše" - -#: ../src/iop/atrous.c:1586 ../src/libs/export.c:1143 ../src/libs/export.c:1158 -msgid "x" -msgstr "x" - -#: ../src/iop/atrous.c:1666 ../src/iop/nlmeans.c:465 -msgid "luma" -msgstr "luma" - -#: ../src/iop/atrous.c:1666 -msgid "change lightness at each feature size" -msgstr "zamenjaj svetlost za vsako vrednost lastnosti" - -#: ../src/iop/atrous.c:1667 -msgid "change color saturation at each feature size" -msgstr "spremeni nasičenost barv pri vsaki možnosti" - -#: ../src/iop/atrous.c:1668 -msgid "edges" -msgstr "robovi" - -#: ../src/iop/atrous.c:1668 -msgid "" -"change edge halos at each feature size\n" -"only changes results of luma and chroma tabs" -msgstr "" -"spremeni robne sije pri vsaki velikosti efekta\n" -"edine spremembe so posledica zavihkov luma in krome" - -#: ../src/iop/atrous.c:1679 ../src/iop/colorbalancergb.c:2058 -#: ../src/iop/colorzones.c:2473 ../src/iop/denoiseprofile.c:3743 -#: ../src/iop/filmicrgb.c:4407 ../src/iop/lowlight.c:823 -#: ../src/iop/rawdenoise.c:919 ../src/iop/toneequal.c:3371 -msgid "graph" -msgstr "graf" - -#: ../src/iop/atrous.c:1690 ../src/iop/colorzones.c:2470 -msgid "make effect stronger or weaker" -msgstr "povečaj ali zmanjšaj učinek" - -#: ../src/iop/basecurve.c:213 -msgid "neutral" -msgstr "nevtralno" - -#: ../src/iop/basecurve.c:214 -msgid "canon eos like" -msgstr "kot canon eos" - -#: ../src/iop/basecurve.c:215 -msgid "canon eos like alternate" -msgstr "kot canon eos (alternativni)" - -#: ../src/iop/basecurve.c:216 -msgid "nikon like" -msgstr "kot nikon" - -#: ../src/iop/basecurve.c:217 -msgid "nikon like alternate" -msgstr "kot nikon (alternativni)" - -#: ../src/iop/basecurve.c:218 -msgid "sony alpha like" -msgstr "kot sony alpha" - -#: ../src/iop/basecurve.c:219 -msgid "pentax like" -msgstr "kot pentax" - -#: ../src/iop/basecurve.c:220 -msgid "ricoh like" -msgstr "kot ricoh" - -#: ../src/iop/basecurve.c:221 -msgid "olympus like" -msgstr "kot olympus" - -#: ../src/iop/basecurve.c:222 -msgid "olympus like alternate" -msgstr "kot olympus (alternativni)" - -#: ../src/iop/basecurve.c:223 -msgid "panasonic like" -msgstr "kot panasonic" - -#: ../src/iop/basecurve.c:224 -msgid "leica like" -msgstr "kot leica" - -#: ../src/iop/basecurve.c:225 -msgid "kodak easyshare like" -msgstr "kot kodak easyshare" - -#: ../src/iop/basecurve.c:226 -msgid "konica minolta like" -msgstr "kot konica minolta" - -#: ../src/iop/basecurve.c:227 -msgid "samsung like" -msgstr "kot samsung" - -#: ../src/iop/basecurve.c:228 -msgid "fujifilm like" -msgstr "kot fujifilm" - -#: ../src/iop/basecurve.c:229 -msgid "nokia like" -msgstr "kot nokia" - -#. clang-format off -#. smoother cubic spline curve -#: ../src/iop/basecurve.c:284 ../src/iop/colorzones.c:2495 -#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1173 -msgid "cubic spline" -msgstr "kubični zlepek" - -#: ../src/iop/basecurve.c:343 -msgid "base curve" -msgstr "osnovna krivulja" - -#: ../src/iop/basecurve.c:350 -msgid "" -"apply a view transform based on personal or camera manufacturer look,\n" -"for corrective purposes, to prepare images for display" -msgstr "" -"uporabi pretvorbo pogleda glede na osebni videz ali videz proizvajalca " -"fotoaparata,\n" -"v korektivne namene za pripravo slik za prikaz" - -#: ../src/iop/basecurve.c:352 ../src/iop/cacorrect.c:78 -#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:135 -#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:727 -#: ../src/iop/flip.c:110 ../src/iop/hazeremoval.c:112 -#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:73 -#: ../src/iop/invert.c:119 ../src/iop/lens.cc:241 ../src/iop/nlmeans.c:95 -#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:130 -#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:94 ../src/iop/spots.c:69 -#: ../src/iop/temperature.c:212 -msgid "corrective" -msgstr "korektivni" - -#: ../src/iop/basecurve.c:353 ../src/iop/channelmixer.c:140 -#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:142 -#: ../src/iop/negadoctor.c:147 ../src/iop/profile_gamma.c:103 -#: ../src/iop/rgbcurve.c:144 ../src/iop/rgbcurve.c:146 -#: ../src/iop/rgblevels.c:124 ../src/iop/sigmoid.c:105 ../src/iop/soften.c:102 -#: ../src/iop/soften.c:104 -msgid "linear, RGB, display-referred" -msgstr "linearni, RGB, glede na zaslon" - -#: ../src/iop/basecurve.c:354 ../src/iop/basicadj.c:149 -#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:187 -#: ../src/iop/dither.c:121 ../src/iop/filmicrgb.c:354 -#: ../src/iop/graduatednd.c:148 ../src/iop/negadoctor.c:148 -#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:145 -#: ../src/iop/rgblevels.c:125 ../src/iop/sigmoid.c:104 -#: ../src/iop/vignette.c:161 ../src/iop/watermark.c:379 -msgid "non-linear, RGB" -msgstr "ne-linearni, RGB" - -#: ../src/iop/basecurve.c:355 ../src/iop/dither.c:120 ../src/iop/dither.c:122 -#: ../src/iop/filmicrgb.c:355 ../src/iop/graduatednd.c:149 -#: ../src/iop/negadoctor.c:149 ../src/iop/profile_gamma.c:105 -#: ../src/iop/rgblevels.c:126 ../src/iop/vignette.c:160 -#: ../src/iop/vignette.c:162 ../src/iop/watermark.c:378 -#: ../src/iop/watermark.c:380 -msgid "non-linear, RGB, display-referred" -msgstr "ne-linearni, RGB, glede na zaslon" - -#: ../src/iop/basecurve.c:2184 -msgid "abscissa: input, ordinate: output. works on RGB channels" -msgstr "abscisa: vhod, ordinata: izhod. deluje na kanalih RGB" - -#: ../src/iop/basecurve.c:2190 ../src/iop/basicadj.c:612 -#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1072 -#: ../src/iop/tonecurve.c:1184 -msgid "method to preserve colors when applying contrast" -msgstr "metoda ohranjanja barve pri spreminjanju kontrasta" - -#: ../src/iop/basecurve.c:2194 -msgid "two exposures" -msgstr "dvojna osvetlitev" - -#: ../src/iop/basecurve.c:2195 -msgid "three exposures" -msgstr "tri osvetlitve" - -#: ../src/iop/basecurve.c:2196 -msgid "" -"fuse this image stopped up/down a couple of times with itself, to compress " -"high dynamic range. expose for the highlights before use." -msgstr "" -"zlij to sliko nekajkrat samo s seboj, da bi stisnili dinamični razpon. pred " -"uporabo izpostavi bleščave." - -#: ../src/iop/basecurve.c:2201 -msgid "how many stops to shift the individual exposures apart" -msgstr "koliko stopenj naj zamaknem vsako osvetlitev" - -#: ../src/iop/basecurve.c:2210 -msgid "" -"whether to shift exposure up or down (-1: reduce highlight, +1: reduce " -"shadows)" -msgstr "" -"več ali manj spremeni osvetlitev (-1: potemni bleščave, +1 osvetli sence)" - -#: ../src/iop/basecurve.c:2215 ../src/iop/tonecurve.c:1187 -msgid "scale for graph" -msgstr "merilo grafa" - -#: ../src/iop/basicadj.c:136 -msgid "this module is deprecated. please use the quick access panel instead." -msgstr "" -"ta modul je zastarel. namesto tega raje uporabite ploščo hitrega dostopa." - -#: ../src/iop/basicadj.c:141 -msgid "basic adjustments" -msgstr "osnovne prilagoditve" - -#: ../src/iop/basicadj.c:146 -msgid "apply usual image adjustments" -msgstr "uporabi običajne prilagoditve slike" - -#: ../src/iop/basicadj.c:147 ../src/iop/bilat.c:102 ../src/iop/bloom.c:81 -#: ../src/iop/blurs.c:93 ../src/iop/borders.c:198 ../src/iop/censorize.c:83 -#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:97 -#: ../src/iop/colorize.c:105 ../src/iop/colormapping.c:153 -#: ../src/iop/colorzones.c:145 ../src/iop/grain.c:434 ../src/iop/highpass.c:78 -#: ../src/iop/levels.c:138 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 -#: ../src/iop/lowpass.c:134 ../src/iop/monochrome.c:98 ../src/iop/soften.c:101 -#: ../src/iop/splittoning.c:103 ../src/iop/velvia.c:105 -#: ../src/iop/vibrance.c:95 ../src/iop/vignette.c:159 -#: ../src/iop/watermark.c:377 -msgid "creative" -msgstr "kreativno" - -#: ../src/iop/basicadj.c:150 ../src/iop/colorbalancergb.c:188 -msgid "non-linear, RGB, scene-referred" -msgstr "ne-linearni, RGB, glede na sceno" - -#: ../src/iop/basicadj.c:593 -msgid "" -"adjust the black level to unclip negative RGB values.\n" -"you should never use it to add more density in blacks!\n" -"if poorly set, it will clip near-black colors out of gamut\n" -"by pushing RGB values into negatives" -msgstr "" -"prilagodi nivoje črnine za odstranjevanje negativnih vrednosti RGB.\n" -"nikoli ne uporabljajte tega za več gostote v črninah,\n" -"če je slabo nastavljeno, bo izrezal barve blizu črne iz barvnega razpona\n" -"tako da bo porinil vrednosti RGV v negativno stran" - -#: ../src/iop/basicadj.c:601 ../src/iop/exposure.c:1118 -msgid "adjust the exposure correction" -msgstr "nastavi popravek osvetlitve" - -#: ../src/iop/basicadj.c:605 -msgid "highlight compression adjustment" -msgstr "prilagodite stiskanja bleščav" - -#: ../src/iop/basicadj.c:609 ../src/iop/colisa.c:308 -msgid "contrast adjustment" -msgstr "nastavitev kontrasta" - -#: ../src/iop/basicadj.c:617 -msgid "middle gray adjustment" -msgstr "prilagoditev srednje sive" - -#: ../src/iop/basicadj.c:622 ../src/iop/colisa.c:309 -msgid "brightness adjustment" -msgstr "nastavitev sijavosti" - -#: ../src/iop/basicadj.c:625 -msgid "saturation adjustment" -msgstr "prilagoditev nasičenosti" - -#: ../src/iop/basicadj.c:628 -msgid "vibrance adjustment" -msgstr "prilagoditev živahnosti" - -#: ../src/iop/basicadj.c:632 -msgid "apply auto exposure based on the entire image" -msgstr "izvedi avtomatsko osvetlitev glede na celotno sliko" - -#: ../src/iop/basicadj.c:639 -msgid "" -"apply auto exposure based on a region defined by the user\n" -"click and drag to draw the area\n" -"right click to cancel" -msgstr "" -"izvedi avtomatsko osvetlitev glede na površino, ki jo je določil uporabnik\n" -"klikni in potegni za določite površine\n" -"desni klik za preklic" - -#: ../src/iop/basicadj.c:647 -msgid "clip" -msgstr "klip" - -#: ../src/iop/basicadj.c:649 -msgid "adjusts clipping value for auto exposure calculation" -msgstr "prilagodi vrednost obrezovanja za avtomatski izračun osvetlitve" - -#. local contrast -#: ../src/iop/bilat.c:96 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:551 -msgid "local contrast" -msgstr "lokalni kontrast" - -#: ../src/iop/bilat.c:101 -msgid "manipulate local and global contrast separately" -msgstr "ločeno upravljaj lokalni in globalni kontrast" - -#: ../src/iop/bilat.c:103 ../src/iop/bilat.c:105 ../src/iop/bloom.c:82 -#: ../src/iop/bloom.c:84 ../src/iop/colisa.c:91 ../src/iop/colisa.c:93 -#: ../src/iop/colorcontrast.c:98 ../src/iop/colorcontrast.c:100 -#: ../src/iop/colorcorrection.c:78 ../src/iop/colorcorrection.c:80 -#: ../src/iop/colorize.c:108 ../src/iop/colormapping.c:156 -#: ../src/iop/colorreconstruction.c:138 ../src/iop/colorzones.c:148 -#: ../src/iop/defringe.c:85 ../src/iop/grain.c:435 ../src/iop/grain.c:437 -#: ../src/iop/levels.c:141 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 -#: ../src/iop/monochrome.c:101 ../src/iop/nlmeans.c:96 ../src/iop/nlmeans.c:98 -#: ../src/iop/shadhi.c:200 ../src/iop/tonecurve.c:214 ../src/iop/vibrance.c:98 -msgid "non-linear, Lab, display-referred" -msgstr "ne-linearno, Lab, glede na zaslon" - -#: ../src/iop/bilat.c:104 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 -#: ../src/iop/colorcontrast.c:99 ../src/iop/colorcorrection.c:79 -#: ../src/iop/colorize.c:107 ../src/iop/colormapping.c:155 -#: ../src/iop/colorreconstruction.c:137 ../src/iop/colorzones.c:147 -#: ../src/iop/defringe.c:84 ../src/iop/grain.c:436 ../src/iop/levels.c:140 -#: ../src/iop/monochrome.c:100 ../src/iop/nlmeans.c:97 ../src/iop/shadhi.c:199 -#: ../src/iop/tonecurve.c:213 ../src/iop/vibrance.c:97 -msgid "non-linear, Lab" -msgstr "ne-linearno, Lab" - -#: ../src/iop/bilat.c:178 -msgid "HDR local tone-mapping" -msgstr "HDR lokalna preslikava tonov" - -#: ../src/iop/bilat.c:431 -msgid "" -"the filter used for local contrast enhancement. bilateral is faster but can " -"lead to artifacts around edges for extreme settings." -msgstr "" -"filter uporabljamo za izboljšanje lokalnega kontrasta. bilateralni je " -"hitrejši, a ima lahko za posledico umetne pojave okrog robov pri skrajnih " -"vrednostih." - -#: ../src/iop/bilat.c:435 ../src/iop/globaltonemap.c:635 -msgid "detail" -msgstr "podrobnost" - -#: ../src/iop/bilat.c:438 -msgid "changes the local contrast" -msgstr "sprememba lokalnega kontrasta" - -#: ../src/iop/bilat.c:453 -msgid "feature size of local details (spatial sigma of bilateral filter)" -msgstr "" -"določa velikost lokalnih podrobnosti (prostorska sigma ali bilateralni " -"filter)" - -#: ../src/iop/bilat.c:461 -msgid "L difference to detect edges (range sigma of bilateral filter)" -msgstr "razlika L za določanje robov (sigma obsega bilateralnega filtra)" - -#: ../src/iop/bilat.c:467 -msgid "changes the local contrast of highlights" -msgstr "spremembe lokalnih kontrastov bleščav" - -#: ../src/iop/bilat.c:473 -msgid "changes the local contrast of shadows" -msgstr "spremembe lokalnih kontrastov senc" - -#: ../src/iop/bilat.c:479 -msgid "" -"defines what counts as mid-tones. lower for better dynamic range compression " -"(reduce shadow and highlight contrast), increase for more powerful local " -"contrast" -msgstr "" -"določa, kaj je všteto med srednje tone. spodnje za boljšo dinamično " -"kompresijo razpona (zmanjšamo kontraste senc in bleščav), povečamo za " -"močnejši lokalni kontrast" - -#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:396 -msgid "surface blur" -msgstr "zamegljenost površine" - -#: ../src/iop/bilateral.cc:79 -msgid "denoise (bilateral filter)" -msgstr "odstranjevanje šuma (bilateralni filter)" - -#: ../src/iop/bilateral.cc:99 -msgid "apply edge-aware surface blur to denoise or smoothen textures" -msgstr "" -"uporabi zameglitev roba površin za odpravljanje šuma ali glajenje teksture" - -#: ../src/iop/bilateral.cc:102 ../src/iop/blurs.c:93 -#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:729 -#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/soften.c:103 -#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:107 -msgid "linear, RGB" -msgstr "linearni, RGB" - -#: ../src/iop/bilateral.cc:136 -msgid "image too large" -msgstr "slika prevelika" - -#: ../src/iop/bilateral.cc:137 -msgid "" -"this module is unable to process\n" -"images with more than 2 gigapixels.\n" -"processing has been skipped." -msgstr "" -"ta modul ne more obdelovati\n" -"večjih slik kot 2 gigapiksla.\n" -"obdelava je bila preskočena." - -#: ../src/iop/bilateral.cc:351 -msgid "spatial extent of the gaussian" -msgstr "prostorski podaljšek Gaussovega" - -#: ../src/iop/bilateral.cc:355 -msgid "how much to blur red" -msgstr "koliko zamegliti rdečo" - -#: ../src/iop/bilateral.cc:360 -msgid "how much to blur green" -msgstr "koliko zamegliti zeleno" - -#: ../src/iop/bilateral.cc:365 -msgid "how much to blur blue" -msgstr "koliko zamegliti modro" - -#: ../src/iop/bloom.c:80 -msgid "apply Orton effect for a dreamy aetherical look" -msgstr "uporabi Ortonov učinek za sanjski eterični videz" - -#: ../src/iop/bloom.c:368 ../src/iop/soften.c:369 ../src/libs/camera.c:567 -#: ../src/libs/masks.c:105 -msgid "size" -msgstr "velikost" - -#: ../src/iop/bloom.c:370 -msgid "the size of bloom" -msgstr "velikost doosvetlitve" - -#: ../src/iop/bloom.c:374 -msgid "the threshold of light" -msgstr "prag svetlobe" - -#: ../src/iop/bloom.c:378 -msgid "the strength of bloom" -msgstr "moč doosvetlitve" - -#: ../src/iop/blurs.c:81 -msgid "blurs" -msgstr "zameglitev" - -#: ../src/iop/blurs.c:86 -msgid "blur|lens|motion" -msgstr "zameglitev|lečje|gibanje" - -#: ../src/iop/blurs.c:92 -msgid "simulate physically-accurate lens and motion blurs" -msgstr "simuliraj fizikalno točne objektive in zamaknjenosti zaradi gibanja" - -#: ../src/iop/borders.c:187 -msgid "framing" -msgstr "okvirjanje" - -#: ../src/iop/borders.c:192 -msgid "borders|enlarge canvas|expand canvas" -msgstr "obrobe |povečaj podlago | razširi podlago" - -#: ../src/iop/borders.c:197 -msgid "add solid borders or margins around the picture" -msgstr "dodaj trdne obrobe ali robove okoli slike" - -#: ../src/iop/borders.c:199 ../src/iop/borders.c:201 ../src/iop/lut3d.c:144 -msgid "linear or non-linear, RGB, display-referred" -msgstr "linearno ali ne-linearno, RGB, glede na zaslon" - -#: ../src/iop/borders.c:727 -msgid "15:10 postcard white" -msgstr "15:10 bela poštna razglednica" - -#: ../src/iop/borders.c:732 -msgid "15:10 postcard black" -msgstr "15:10 črna poštna razglednica" - -#: ../src/iop/borders.c:942 -msgid "size of the border in percent of the full image" -msgstr "debelina roba v odstotkih od celotne slike" - -#: ../src/iop/borders.c:944 ../src/iop/clipping.c:2218 ../src/iop/crop.c:1224 -msgid "aspect" -msgstr "razmerje stranic" - -#: ../src/iop/borders.c:945 -msgid "" -"select the aspect ratio (right click on slider below to type your own w:h)" -msgstr "" -"izberite razmerje proporcev (desni klik na spodnji drsnik za vnos po vaši " -"meri (širina:višina)" - -#: ../src/iop/borders.c:948 -msgid "3:1" -msgstr "3:1" - -#: ../src/iop/borders.c:949 -msgid "95:33" -msgstr "95:33" - -#: ../src/iop/borders.c:950 -msgid "CinemaScope 2.39:1" -msgstr "CinemaScope 2.39:1" - -#: ../src/iop/borders.c:951 -msgid "2:1" -msgstr "2:1" - -#: ../src/iop/borders.c:952 -msgid "16:9" -msgstr "16:9" - -#: ../src/iop/borders.c:953 -msgid "5:3" -msgstr "5:3" - -#: ../src/iop/borders.c:954 -msgid "US Legal 8.5x14" -msgstr "ameriški pravni US Legal 8.5x14" - -#: ../src/iop/borders.c:955 ../src/iop/clipping.c:2131 ../src/iop/crop.c:1128 -msgid "golden cut" -msgstr "zlati rez" - -#: ../src/iop/borders.c:956 -msgid "16:10" -msgstr "16:10" - -#: ../src/iop/borders.c:957 -msgid "3:2 (4x6, 10x15cm)" -msgstr "3:2 (4x6, 10x15cm)" - -#: ../src/iop/borders.c:959 -msgid "DIN" -msgstr "DIN" - -#: ../src/iop/borders.c:960 -msgid "7:5" -msgstr "7:5" - -#: ../src/iop/borders.c:961 -msgid "4:3" -msgstr "4:3" - -#: ../src/iop/borders.c:962 -msgid "US Letter 8.5x11" -msgstr "ameriško pismo US Letter 8.5x11" - -#: ../src/iop/borders.c:963 -msgid "14:11" -msgstr "14:11" - -#: ../src/iop/borders.c:964 -msgid "5:4 (8x10)" -msgstr "5:4 (8x10)" - -#: ../src/iop/borders.c:965 ../src/iop/clipping.c:2121 ../src/iop/crop.c:1118 -#: ../src/libs/filtering.c:301 ../src/libs/filters/ratio.c:126 -#: ../src/libs/histogram.c:141 -msgid "square" -msgstr "kvadrat" - -#: ../src/iop/borders.c:966 -msgid "constant border" -msgstr "stalni rob" - -#: ../src/iop/borders.c:967 ../src/iop/borders.c:981 ../src/iop/borders.c:992 -msgid "custom..." -msgstr "po meri..." - -#: ../src/iop/borders.c:972 -msgid "set the custom aspect ratio (right click to enter number or w:h)" -msgstr "" -"izberite razmerje proporcev (desni klik za vnos po vaši meri (širina:višina)" - -#: ../src/iop/borders.c:975 -msgid "aspect ratio orientation of the image with border" -msgstr "orientacija razmerja proporcev slike z robom" - -#: ../src/iop/borders.c:977 -msgid "horizontal position" -msgstr "vodoravna pozicija" - -#: ../src/iop/borders.c:978 -msgid "" -"select the horizontal position ratio relative to top or right click and type " -"your own (y:h)" -msgstr "" -"izberite razmerje spodnje vodoravne lege glede na vrh ali z desnim klikom " -"izberite vaše razmerje (y:h)" - -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 -msgid "center" -msgstr "sredina" - -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 -msgid "1/3" -msgstr "1/3" - -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 -msgid "3/8" -msgstr "3/8" - -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 -msgid "5/8" -msgstr "5/8" - -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 -msgid "2/3" -msgstr "2/3" - -#: ../src/iop/borders.c:986 -msgid "custom horizontal position" -msgstr "vodoravna pozicija po meri" - -#: ../src/iop/borders.c:988 -msgid "vertical position" -msgstr "vertikalna pozicija" - -#: ../src/iop/borders.c:989 -msgid "" -"select the vertical position ratio relative to left or right click and type " -"your own (x:w)" -msgstr "" -"izberite razmerje navpične lege glede na levo ali desno kliknite in vnesite " -"vašega (x:w)" - -#: ../src/iop/borders.c:997 -msgid "custom vertical position" -msgstr "vertikalna pozicija po meri" - -#: ../src/iop/borders.c:1002 -msgid "size of the frame line in percent of min border width" -msgstr "velikost črte okvirja v odstotkih najmanjše širine roba" - -#: ../src/iop/borders.c:1007 -msgid "offset of the frame line beginning on picture side" -msgstr "odmik črte okvirja od roba slike" - -#: ../src/iop/borders.c:1014 ../src/iop/borders.c:1023 -msgid "border color" -msgstr "barva roba" - -#: ../src/iop/borders.c:1018 -msgid "select border color" -msgstr "izberite barvo roba" - -#: ../src/iop/borders.c:1022 -msgid "pick border color from image" -msgstr "izberite barvo roba iz slike" - -#: ../src/iop/borders.c:1023 ../src/iop/borders.c:1036 -#: ../src/iop/colorzones.c:2415 ../src/iop/colorzones.c:2425 -#: ../src/iop/negadoctor.c:848 ../src/iop/negadoctor.c:915 -#: ../src/iop/negadoctor.c:953 ../src/iop/rgbcurve.c:1369 -#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1026 -#: ../src/iop/rgblevels.c:1032 ../src/iop/rgblevels.c:1038 -msgid "pickers" -msgstr "pobiralniki" - -#: ../src/iop/borders.c:1027 ../src/iop/borders.c:1036 -msgid "frame line color" -msgstr "barva črte okvirja" - -#: ../src/iop/borders.c:1031 -msgid "select frame line color" -msgstr "izberite barvo črte okvirja" - -#: ../src/iop/borders.c:1035 -msgid "pick frame line color from image" -msgstr "izberite barvo črte okvirja iz slike" - -#. make sure you put all your translatable strings into _() ! -#: ../src/iop/cacorrect.c:72 -msgid "raw chromatic aberrations" -msgstr "surovi barvni odklon" - -#: ../src/iop/cacorrect.c:77 -msgid "correct chromatic aberrations for Bayer sensors" -msgstr "korekcija barvnega odklona za Bayerjeve senzorje" - -#: ../src/iop/cacorrect.c:79 ../src/iop/cacorrect.c:81 -#: ../src/iop/cacorrectrgb.c:171 ../src/iop/cacorrectrgb.c:173 -#: ../src/iop/demosaic.c:294 ../src/iop/highlights.c:180 -#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:74 -#: ../src/iop/hotpixels.c:76 ../src/iop/rawdenoise.c:131 -#: ../src/iop/rawdenoise.c:133 ../src/iop/rawprepare.c:159 -#: ../src/iop/rawprepare.c:161 ../src/iop/temperature.c:213 -#: ../src/iop/temperature.c:215 -msgid "linear, raw, scene-referred" -msgstr "linearni, surovi, glede na sceno" - -#: ../src/iop/cacorrect.c:80 ../src/iop/cacorrectrgb.c:172 -#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:121 -#: ../src/iop/rawdenoise.c:132 ../src/iop/rawprepare.c:160 -#: ../src/iop/temperature.c:214 -msgid "linear, raw" -msgstr "linearni, surovi" - -#: ../src/iop/cacorrect.c:1405 -msgid "iteration runs, default is twice" -msgstr "zank iteracije, privzeto sta dve" - -#: ../src/iop/cacorrect.c:1408 -msgid "activate colorshift correction for blue & red channels" -msgstr "aktiviraj korekcijo barvnega pomika na modrem in rdečem kanalu" - -#: ../src/iop/cacorrect.c:1415 -msgid "" -"automatic chromatic aberration correction\n" -"only for Bayer raw files" -msgstr "" -"avtomatična korekcija barvnega odklona\n" -"samo za datoteke slik v Bayerjevem surovem formatu" - -#: ../src/iop/cacorrectrgb.c:164 ../src/iop/defringe.c:76 -msgid "chromatic aberrations" -msgstr "barvni odklon" - -#: ../src/iop/cacorrectrgb.c:169 -msgid "correct chromatic aberrations" -msgstr "popravi barvne odklone" - -#: ../src/iop/cacorrectrgb.c:743 -msgid "" -"channel used as a reference to\n" -"correct the other channels.\n" -"use sharpest channel if some\n" -"channels are blurry.\n" -"try changing guide channel if you\n" -"have artifacts." -msgstr "" -"kanal, ki se uporablja kot referenca za\n" -"popravke ostalih kanalov.\n" -"uporabite najostrejši kanal, če je nekaj\n" -"kanalov zamegljenih.\n" -"poskusite spremeniti vodniški kanal, če\n" -"imate artefakte." - -#: ../src/iop/cacorrectrgb.c:750 -msgid "increase for stronger correction" -msgstr "povečaj za močnejši popravek" - -#: ../src/iop/cacorrectrgb.c:752 -msgid "" -"balance between smoothing colors\n" -"and preserving them.\n" -"high values can lead to overshooting\n" -"and edge bleeding." -msgstr "" -"ravnovesje med glajenjem barv\n" -"njihovo ohranitev.\n" -"visoke vrednosti lahko vodijo do preseganja\n" -"in premočne robove." - -#: ../src/iop/cacorrectrgb.c:757 -msgctxt "section" -msgid "advanced parameters" -msgstr "napredni parametri" - -#: ../src/iop/cacorrectrgb.c:759 -msgid "" -"correction mode to use.\n" -"can help with multiple\n" -"instances for very damaged\n" -"images.\n" -"darken only is particularly\n" -"efficient to correct blue\n" -"chromatic aberration." -msgstr "" -"uporaba v popravnem načinu.\n" -"lahko pomaga pri več\n" -"pojavkih pri zelo poškodovanih\n" -"slikah.\n" -"samo potemni še posebej\n" -"učinkovito popravi modro\n" -"kromatično aberacijo." - -#: ../src/iop/cacorrectrgb.c:767 -msgid "" -"runs an iterative approach\n" -"with several radii.\n" -"improves result on images\n" -"with very large chromatic\n" -"aberrations, but can smooth\n" -"colors too much on other\n" -"images." -msgstr "" -"izvaja iterativni pristop\n" -"z več polmeri.\n" -"izboljša rezultat na slikah\n" -"z zelo velikimi kromatičnimi\n" -"aberacijami, vendar lahko\n" -"preveč gladi barve na drugih\n" -"slikah." - -#: ../src/iop/censorize.c:77 -msgid "censorize" -msgstr "cenzuriraj" - -#: ../src/iop/censorize.c:82 -msgid "censorize license plates and body parts for privacy" -msgstr "cenzuriraj avtomobilske tablice in zasebne dele telesa" - -#: ../src/iop/censorize.c:84 ../src/iop/colorin.c:134 -#: ../src/iop/filmicrgb.c:353 ../src/iop/graduatednd.c:147 -msgid "linear or non-linear, RGB, scene-referred" -msgstr "linearni ali ne-linearni, RGB, glede na sceno" - -#: ../src/iop/censorize.c:86 -msgid "special, RGB, scene-referred" -msgstr "specialni, RGB, glede na sceno" - -#: ../src/iop/censorize.c:412 -msgid "radius_1" -msgstr "polmer_1" - -#: ../src/iop/censorize.c:414 -msgid "pixelate" -msgstr "pikseliziraj" - -#: ../src/iop/censorize.c:416 -msgid "radius_2" -msgstr "polmer_2" - -#: ../src/iop/censorize.c:418 -msgid "noise" -msgstr "šum" - -#: ../src/iop/censorize.c:420 -msgid "radius of gaussian blur before pixellation" -msgstr "polmer gaussovega zamegljevanja pred pikselacijo" - -#: ../src/iop/censorize.c:421 -msgid "radius of gaussian blur after pixellation" -msgstr "polmer Gaussovega zamegljevanja po pikselaciji" - -#: ../src/iop/censorize.c:422 -msgid "radius of the intermediate pixellation" -msgstr "radij vmesne pikselacije" - -#: ../src/iop/censorize.c:423 -msgid "amount of noise to add at the end" -msgstr "količina šuma za dodajanje na koncu" - -#: ../src/iop/channelmixer.c:126 -msgid "channel mixer" -msgstr "mešalnik kanalov" - -#: ../src/iop/channelmixer.c:131 -msgid "" -"this module is deprecated. please use the color calibration module instead." -msgstr "" -"ta modul je zastarel. namesto tega raje uporabite modul za umerjanje barv." - -#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:229 -msgid "" -"perform color space corrections\n" -"such as white balance, channels mixing\n" -"and conversions to monochrome emulating film" -msgstr "" -"izvedi popravke barvnega prostora\n" -"kot so ravnovesje beline, mešanje kanalov\n" -"in pretvorbe za posnemanje mono-kromatskega filma" - -#: ../src/iop/channelmixer.c:614 -msgid "destination" -msgstr "cilj" - -#: ../src/iop/channelmixer.c:621 -msgctxt "channelmixer" -msgid "gray" -msgstr "siva" - -#: ../src/iop/channelmixer.c:627 -msgid "amount of red channel in the output channel" -msgstr "količina rdečega kanala v izhodnem kanalu" - -#: ../src/iop/channelmixer.c:633 -msgid "amount of green channel in the output channel" -msgstr "količina zelenega kanala v izhodnem kanalu" - -#: ../src/iop/channelmixer.c:639 -msgid "amount of blue channel in the output channel" -msgstr "količina modrega kanala v izhodnem kanalu" - -#: ../src/iop/channelmixer.c:655 ../src/iop/channelmixerrgb.c:524 -msgid "swap R and B" -msgstr "zamenjaj R in B" - -#: ../src/iop/channelmixer.c:661 ../src/iop/channelmixerrgb.c:498 -msgid "swap G and B" -msgstr "zamenjaj G in B" - -#: ../src/iop/channelmixer.c:667 -msgid "color contrast boost" -msgstr "porast barvnih kontrastov" - -#: ../src/iop/channelmixer.c:673 -msgid "color details boost" -msgstr "porast barvnih podrobnosti" - -#: ../src/iop/channelmixer.c:679 -msgid "color artifacts boost" -msgstr "porast barvnih artefaktov" - -#: ../src/iop/channelmixer.c:685 -msgid "B/W luminance-based" -msgstr "črno-belo na osnovi svetlosti" - -#: ../src/iop/channelmixer.c:691 -msgid "B/W artifacts boost" -msgstr "porast črno-belih artefaktov" - -#: ../src/iop/channelmixer.c:697 -msgid "B/W smooth skin" -msgstr "črno-belo glajenje kože" - -#: ../src/iop/channelmixer.c:703 -msgid "B/W blue artifacts reduce" -msgstr "Č/B reduciranje modrih artefaktov" - -#: ../src/iop/channelmixer.c:710 -msgid "B/W Ilford Delta 100-400" -msgstr "Č/B Ilford Delta 100-400" - -#: ../src/iop/channelmixer.c:717 -msgid "B/W Ilford Delta 3200" -msgstr "Č/B Ilford Delta 3200" - -#: ../src/iop/channelmixer.c:724 -msgid "B/W Ilford FP4" -msgstr "Č/B Ilford FP4" - -#: ../src/iop/channelmixer.c:731 -msgid "B/W Ilford HP5" -msgstr "Č/B Ilford FP5" - -#: ../src/iop/channelmixer.c:738 -msgid "B/W Ilford SFX" -msgstr "Č/B Ilford SFX" - -#: ../src/iop/channelmixer.c:745 -msgid "B/W Kodak T-Max 100" -msgstr "Č/B Kodak T-Max 100" - -#: ../src/iop/channelmixer.c:752 -msgid "B/W Kodak T-max 400" -msgstr "Č/B Kodak T-max 400" - -#: ../src/iop/channelmixer.c:759 -msgid "B/W Kodak Tri-X 400" -msgstr "Č/B Kodak Tri-X 400" - -#: ../src/iop/channelmixerrgb.c:219 -msgid "color calibration" -msgstr "umerjanje barv" - -#: ../src/iop/channelmixerrgb.c:224 -msgid "channel mixer|white balance|monochrome" -msgstr "mešalnik kanalov|ravnovesje beline|enobarvno" - -#: ../src/iop/channelmixerrgb.c:234 -msgid "linear, RGB or XYZ" -msgstr "linearni, RGB ali XYZ" - -#: ../src/iop/channelmixerrgb.c:396 -msgid "B&W: luminance-based" -msgstr "Č/B : na osnovi svetlosti" - -#: ../src/iop/channelmixerrgb.c:431 -msgid "B&W: ILFORD HP5+" -msgstr "Č/B : ILFORD HP5+" - -#: ../src/iop/channelmixerrgb.c:440 -msgid "B&W: ILFORD DELTA 100" -msgstr "Č/B : ILFORD DELTA 100" - -#: ../src/iop/channelmixerrgb.c:450 -msgid "B&W: ILFORD DELTA 400 - 3200" -msgstr "Č/B : ILFORD DELTA 400 - 3200" - -#: ../src/iop/channelmixerrgb.c:459 -msgid "B&W: ILFORD FP4+" -msgstr "Č/B : ILFORD FP4+" - -#: ../src/iop/channelmixerrgb.c:468 -msgid "B&W: Fuji Acros 100" -msgstr "Č/B : Fuji Acros 100" - -#: ../src/iop/channelmixerrgb.c:485 -msgid "basic channel mixer" -msgstr "osnovni mešalnik kanalov" - -#: ../src/iop/channelmixerrgb.c:511 -msgid "swap G and R" -msgstr "zamenjaj G in R" - -#: ../src/iop/channelmixerrgb.c:1869 -msgid "(daylight)" -msgstr "(dnevna svetloba)" - -#: ../src/iop/channelmixerrgb.c:1871 -msgid "(black body)" -msgstr "(črno telo)" - -#: ../src/iop/channelmixerrgb.c:1873 -msgid "(invalid)" -msgstr "(neveljavno)" - -#: ../src/iop/channelmixerrgb.c:1877 ../src/iop/channelmixerrgb.c:1935 -msgid "very good" -msgstr "zelo dobro" - -#: ../src/iop/channelmixerrgb.c:1879 ../src/iop/channelmixerrgb.c:1937 -msgid "good" -msgstr "dobro" - -#: ../src/iop/channelmixerrgb.c:1881 ../src/iop/channelmixerrgb.c:1939 -msgid "passable" -msgstr "zadostno" - -#: ../src/iop/channelmixerrgb.c:1883 ../src/iop/channelmixerrgb.c:1941 -msgid "bad" -msgstr "slabo" - -#: ../src/iop/channelmixerrgb.c:1890 -#, c-format -msgid "" -"\n" -"<b>Profile quality report: %s</b>\n" -"input ΔE: \tavg. %.2f ; \tmax. %.2f\n" -"WB ΔE: \tavg. %.2f; \tmax. %.2f\n" -"output ΔE: \tavg. %.2f; \tmax. %.2f\n" -"\n" -"<b>Profile data</b>\n" -"illuminant: \t%.0f K \t%s\n" -"matrix in adaptation space:\n" -"<tt>%+.4f \t%+.4f \t%+.4f\n" -"%+.4f \t%+.4f \t%+.4f\n" -"%+.4f \t%+.4f \t%+.4f</tt>\n" -"\n" -"<b>Normalization values</b>\n" -"exposure compensation: \t%+.2f EV\n" -"black offset: \t%+.4f" -msgstr "" -"\n" -"<b>Poročilo o kakovosti profila : %s</b>\n" -"vhod ΔE : \tpovp. %.2f; \tmax. %.2f \n" -"WB ΔE : \tpovp. %.2f; \tmax. %.2f \n" -"izhod ΔE : \tpovp. %.2f; \tmax. %.2f \n" -"\n" -"<b>Podatki o profilu</b>\n" -"svetilo: \t%.0f K \t%s\n" -"matrika v prilagoditvenem prostoru:\n" -"<tt>%+.4f \t%+.4f \t%+.4f\n" -"%+.4f \t%+.4f \t%+.4f\n" -"%+.4f \t%+.4f \t%+.4f</tt>\n" -"\n" -"<b>Normalizacijske vrednosti</b>\n" -"kompenzacija osvetlitve : \t%+.2f EV\n" -"odmik od črne : \t%+.4f" - -#: ../src/iop/channelmixerrgb.c:1946 -#, c-format -msgid "" -"\n" -"<b>Profile quality report: %s</b>\n" -"output ΔE: \tavg. %.2f; \tmax. %.2f\n" -"\n" -"<b>Normalization values</b>\n" -"exposure compensation: \t%+.2f EV\n" -"black offset: \t%+.4f" -msgstr "" -"\n" -"<b>Poročilo o kakovosti profila : %s</b>\n" -"izhod ΔE : \tpovp. %.2f ; \tmax. %.2f\n" -"\n" -"<b>Normalizacijske vrednosti</b>\n" -"kompenzacija osvetlitve : \t%+.2f EV\n" -"odmik od črne : \t%+.4f" - -#: ../src/iop/channelmixerrgb.c:1978 -msgid "double CAT applied" -msgstr "uporabljen dvojni CAT" - -#: ../src/iop/channelmixerrgb.c:1979 -msgid "" -"you have 2 instances or more of color calibration,\n" -"all performing chromatic adaptation.\n" -"this can lead to inconsistencies, unless you\n" -"use them with masks or know what you are doing." -msgstr "" -"imate dva ali več pojavkov kalibracije barv,\n" -"vsi izvajajo kromatično prilagoditev.\n" -"to lahko privede do nedoslednosti, razen če\n" -"jih uporabite z maskami ali če veste, kaj počnete." - -#: ../src/iop/channelmixerrgb.c:1991 -msgid "white balance module error" -msgstr "napaka modula ravnotežja beline" - -#: ../src/iop/channelmixerrgb.c:1992 -msgid "" -"the white balance module is not using the camera\n" -"reference illuminant, which will cause issues here\n" -"with chromatic adaptation. either set it to reference\n" -"or disable chromatic adaptation here." -msgstr "" -"modul za nastavitev beline ne uporablja kamere\n" -"referenčna vrsta svetlobe, ki bo tu povzročala težave\n" -"s prilagoditvijo barve. bodisi nastavite referenco\n" -"ali tukaj onemogočite prilagoditev barve." - -#: ../src/iop/channelmixerrgb.c:2083 -msgid "auto-detection of white balance completed" -msgstr "zaključeno samodejno zaznavanje ravnovesja beline" - -#: ../src/iop/channelmixerrgb.c:2236 -msgid "channelmixerrgb works only on RGB input" -msgstr "channelmixerrg deluje samo na RGB vhodu" - -#: ../src/iop/channelmixerrgb.c:3621 -#, c-format -msgid "CCT: %.0f K (daylight)" -msgstr "CCT: %.0f K (dnevna svetloba)" - -#: ../src/iop/channelmixerrgb.c:3624 -msgid "" -"approximated correlated color temperature.\n" -"this illuminant can be accurately modeled by a daylight spectrum,\n" -"so its temperature is relevant and meaningful with a D illuminant." -msgstr "" -"približna korelirana barvna temperatura.\n" -"to vrsto svetlobe je mogoče natančno modelirati s spektrom dnevne svetlobe,\n" -"zato njegova temperatura smiselno ustreza svetlobi D." - -#: ../src/iop/channelmixerrgb.c:3630 -#, c-format -msgid "CCT: %.0f K (black body)" -msgstr "CCT: %.0f K (črno telo)" - -#: ../src/iop/channelmixerrgb.c:3633 -msgid "" -"approximated correlated color temperature.\n" -"this illuminant can be accurately modeled by a black body spectrum,\n" -"so its temperature is relevant and meaningful with a Planckian illuminant." -msgstr "" -"približna korelirana barvna temperatura.\n" -"to vrsto svetlobe je mogoče natančno modelirati s spektrom črnega telesa,\n" -"zato njena temperatura smiselno ustreza Planckovi vrsti svetlobe." - -#: ../src/iop/channelmixerrgb.c:3639 -#, c-format -msgid "CCT: %.0f K (invalid)" -msgstr "CCT: %.0f K (neveljavno)" - -#: ../src/iop/channelmixerrgb.c:3642 -msgid "" -"approximated correlated color temperature.\n" -"this illuminant cannot be accurately modeled by a daylight or black body " -"spectrum,\n" -"so its temperature is not relevant and meaningful and you need to use a " -"custom illuminant." -msgstr "" -"približna korelirana barvna temperatura.\n" -" te vrste svetlobe ni mogoče natančno modelirati s spektrom dnevne svetlobe " -"ali črnega telesa,\n" -"zato njena temperatura ni smiselno ustrezna in morate uporabiti svetlobo po " -"meri." - -#: ../src/iop/channelmixerrgb.c:3651 -#, c-format -msgid "CCT: undefined" -msgstr "CCT: nedoločeno" - -#: ../src/iop/channelmixerrgb.c:3654 -msgid "" -"the approximated correlated color temperature\n" -"cannot be computed at all so you need to use a custom illuminant." -msgstr "" -"približna korelirana barvna temperatura\n" -"sploh je ni mogoče izračunati, zato morate uporabiti vrsto svetlobe po meri." - -#: ../src/iop/channelmixerrgb.c:3967 -msgid "white balance successfully extracted from raw image" -msgstr "ravnovesje beline je bilo uspešno izvlečeno iz surove slike" - -#. We need to recompute only the full preview -#: ../src/iop/channelmixerrgb.c:3973 -msgid "auto-detection of white balance started…" -msgstr "samodejno zaznavanje ravnovesja beline se je začelo…" - -#: ../src/iop/channelmixerrgb.c:4078 -msgid "" -"color calibration: the sum of the gray channel parameters is zero, " -"normalization will be disabled." -msgstr "" -"kalibracija barve: vsota parametrov sivega kanala je enaka nič, " -"normalizacija bo onemogočena." - -#. Write report in GUI -#: ../src/iop/channelmixerrgb.c:4126 -#, c-format -msgid "" -"L: \t%.1f %%\n" -"h: \t%.1f °\n" -"c: \t%.1f" -msgstr "" -"L: \t%.1f %%\n" -"h: \t%.1f °\n" -"c: \t%.1f" - -#: ../src/iop/channelmixerrgb.c:4394 ../src/iop/clipping.c:2087 -#: ../src/iop/colorbalancergb.c:1873 ../src/iop/filmicrgb.c:4419 -#: ../src/iop/negadoctor.c:829 ../src/iop/toneequal.c:3319 -#: ../src/libs/image.c:460 ../src/views/lighttable.c:1258 -msgid "page" -msgstr "stran" - -#. Page CAT -#: ../src/iop/channelmixerrgb.c:4397 -msgid "CAT" -msgstr "CAT" - -#: ../src/iop/channelmixerrgb.c:4398 -msgid "chromatic adaptation transform" -msgstr "transformacija barvnega prilagajanja" - -#: ../src/iop/channelmixerrgb.c:4400 -msgid "adaptation" -msgstr "prilagoditev" - -#: ../src/iop/channelmixerrgb.c:4403 -msgid "" -"choose the method to adapt the illuminant\n" -"and the colorspace in which the module works: \n" -"• Linear Bradford (1985) is consistent with ICC v4 toolchain.\n" -"• CAT16 (2016) is more robust and accurate.\n" -"• Non-linear Bradford (1985) is the original Bradford,\n" -"it can produce better results than the linear version, but is unreliable.\n" -"• XYZ is a simple scaling in XYZ space. It is not recommended in general.\n" -"• none disables any adaptation and uses pipeline working RGB." -msgstr "" -"izberite metodo prilagajanja viru svetlobe\n" -"in barvnega prostora, v katerem deluje modul:\n" -"• Linearni Bradford (1985) je konsistentna z verigo orodij ICC v4.\n" -"• CAT16 (2016) je bolj robustna in natančna\n" -"• Nelinearni Bradford (1985) je originalni Bradford,\n" -"lahko prinese boljše rezultate kot linearna različica, a je nezanesljiva.\n" -"• XYZ je preprosti razteg v prostoru XYZ. Na splošno ni priporočljiva.\n" -"• nobena ne onemogoča prilagoditve in uporablja cevovod na RGB." - -#: ../src/iop/channelmixerrgb.c:4423 -msgid "" -"this is the color of the scene illuminant before chromatic adaptation\n" -"this color will be turned into pure white by the adaptation." -msgstr "" -"to je barva scene z vira svetlobe pred barvno prilagoditvijo\n" -"ta barva bo s prilagoditvijo postala čista bela." - -#: ../src/iop/channelmixerrgb.c:4431 -msgid "picker" -msgstr "izbirnik" - -#: ../src/iop/channelmixerrgb.c:4433 ../src/iop/temperature.c:2047 -msgid "set white balance to detected from area" -msgstr "nastavi ravnotežje beline iz detekcije površine" - -#: ../src/iop/channelmixerrgb.c:4437 ../src/iop/negadoctor.c:953 -msgid "illuminant" -msgstr "vir svetlobe" - -#: ../src/iop/channelmixerrgb.c:4443 ../src/iop/temperature.c:2107 -msgid "temperature" -msgstr "temperatura" - -#: ../src/iop/channelmixerrgb.c:4474 -msgid "spot color mapping" -msgstr "preslikava barve točke" - -#: ../src/iop/channelmixerrgb.c:4480 -msgid "" -"define a target chromaticity (hue and chroma) for a particular region of the " -"image (the control sample), which you then match against the same target " -"chromaticity in other images. the control sample can either be a critical " -"part of your subject or a non-moving and consistently-lit surface over your " -"series of images." -msgstr "" -"določi ciljno kromatičnost (odtenek in kromo) za določeno območje slike " -"(kontrolni vzorec), ki se nato ujem z istim ciljemkromatičnost na drugih " -"slikah. kontrolni vzorec je lahko bodisi kritični del vaše teme ali " -"nepremična in dosledno osvetljena površina vaše serije slik." - -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/channelmixerrgb.c:4502 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/channelmixerrgb.c:4573 -msgid "mapping" -msgstr "preslikave" - -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/exposure.c:1188 -msgid "spot mode" -msgstr "točkovni način" - -#: ../src/iop/channelmixerrgb.c:4488 -msgid "" -"\"correction\" automatically adjust the illuminant\n" -"such that the input color is mapped to the target.\n" -"\"measure\" simply shows how an input color is mapped by the CAT\n" -"and can be used to sample a target." -msgstr "" -"\"popravek\" samodejno prilagodi vir svetlobe\n" -"tako, da je vhodna barva preslikana na cilj.\n" -"\"izmeri\" preprosto prikazuje, kako vhodno barvo preslika CAT\n" -"in se lahko uporablja za vzorčenje cilja." - -#: ../src/iop/channelmixerrgb.c:4493 ../src/iop/exposure.c:1194 -msgid "correction" -msgstr "popravek" - -#: ../src/iop/channelmixerrgb.c:4494 ../src/iop/exposure.c:1195 -msgid "measure" -msgstr "meritev" - -#: ../src/iop/channelmixerrgb.c:4500 -msgid "take channel mixing into account" -msgstr "upoštevaj mešanje kanalov" - -#: ../src/iop/channelmixerrgb.c:4507 -msgid "" -"compute the target by taking the channel mixing into account.\n" -"if disabled, only the CAT is considered." -msgstr "" -"izračunaj cilj tako, da upoštevamo mešanje kanala.\n" -"Če je onemogočeno, se upošteva samo CAT." - -#: ../src/iop/channelmixerrgb.c:4519 ../src/iop/exposure.c:1202 -msgctxt "section" -msgid "input" -msgstr "vhod" - -#: ../src/iop/channelmixerrgb.c:4526 ../src/iop/exposure.c:1210 -msgid "the input color that should be mapped to the target" -msgstr "vhodna barva, ki jo je treba preslikati na cilj" - -#: ../src/iop/channelmixerrgb.c:4532 -msgid "" -"L: \tN/A\n" -"h: \tN/A\n" -"c: \tN/A" -msgstr "" -"L: \tN/A\n" -"h: \tN/A\n" -"c: \tN/A" - -#: ../src/iop/channelmixerrgb.c:4535 ../src/iop/exposure.c:1218 -msgid "these LCh coordinates are computed from CIE Lab 1976 coordinates" -msgstr "te koordinate LCh so izračunane iz koordinat CIE Lab 1976" - -#: ../src/iop/channelmixerrgb.c:4543 ../src/iop/exposure.c:1225 -msgctxt "section" -msgid "target" -msgstr "cilj" - -#: ../src/iop/channelmixerrgb.c:4550 -msgid "the desired target color after mapping" -msgstr "želena ciljna barva po preslikavi" - -#: ../src/iop/channelmixerrgb.c:4589 -msgid "input R" -msgstr "vhod R" - -#: ../src/iop/channelmixerrgb.c:4594 -msgid "input G" -msgstr "vhod G" - -#: ../src/iop/channelmixerrgb.c:4599 -msgid "input B" -msgstr "vhod B" - -#: ../src/iop/channelmixerrgb.c:4609 -msgid "output R" -msgstr "izhod R" - -#: ../src/iop/channelmixerrgb.c:4610 -msgid "output G" -msgstr "izhod G" - -#: ../src/iop/channelmixerrgb.c:4611 -msgid "output B" -msgstr "izhod B" - -#: ../src/iop/channelmixerrgb.c:4613 -msgid "colorfulness" -msgstr "polnost barv" - -#: ../src/iop/channelmixerrgb.c:4613 -msgid "output colorfulness" -msgstr "polnost barv izhoda" - -#: ../src/iop/channelmixerrgb.c:4617 -msgid "output brightness" -msgstr "sijavost izhoda" - -#: ../src/iop/channelmixerrgb.c:4620 -msgid "output gray" -msgstr "siva na izhodu" - -#: ../src/iop/channelmixerrgb.c:4635 -msgid "calibrate with a color checker" -msgstr "kalibriraj z merilnikom barve" - -#: ../src/iop/channelmixerrgb.c:4640 -msgid "use a color checker target to autoset CAT and channels" -msgstr "" -"uporabite cilj barvnega merilnika za samodejno nastavitev CAT in kanalov" - -#: ../src/iop/channelmixerrgb.c:4647 ../src/iop/channelmixerrgb.c:4660 -#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/channelmixerrgb.c:4696 -#: ../src/iop/channelmixerrgb.c:4705 ../src/iop/channelmixerrgb.c:4713 -msgid "calibrate" -msgstr "kalibriraj" - -#: ../src/iop/channelmixerrgb.c:4647 -msgid "chart" -msgstr "diagram" - -#: ../src/iop/channelmixerrgb.c:4648 -msgid "choose the vendor and the type of your chart" -msgstr "izberite dobavitelja in vrsto cilja" - -#: ../src/iop/channelmixerrgb.c:4650 -msgid "Xrite ColorChecker 24 pre-2014" -msgstr "Xrite ColorChecker 24 pred-2014" - -#: ../src/iop/channelmixerrgb.c:4651 -msgid "Xrite ColorChecker 24 post-2014" -msgstr "Xrite ColorChecker 24 po-2014" - -#: ../src/iop/channelmixerrgb.c:4652 -msgid "Datacolor SpyderCheckr 24 pre-2018" -msgstr "Datacolor SpyderCheckr 24 pred-2018" - -#: ../src/iop/channelmixerrgb.c:4653 -msgid "Datacolor SpyderCheckr 24 post-2018" -msgstr "Datacolor SpyderCheckr 24 po-2018" - -#: ../src/iop/channelmixerrgb.c:4654 -msgid "Datacolor SpyderCheckr 48 pre-2018" -msgstr "Datacolor SpyderCheckr 48 pred-2018" - -#: ../src/iop/channelmixerrgb.c:4655 -msgid "Datacolor SpyderCheckr 48 post-2018" -msgstr "Datacolor SpyderCheckr 48 po-2018" - -#: ../src/iop/channelmixerrgb.c:4656 -msgid "Datacolor SpyderCheckr Photo" -msgstr "Datacolor SpyderCheckr" - -#: ../src/iop/channelmixerrgb.c:4660 -msgid "optimize for" -msgstr "optimirano za" - -#: ../src/iop/channelmixerrgb.c:4661 -msgid "" -"choose the colors that will be optimized with higher priority.\n" -"neutral colors gives the lowest average delta E but a high maximum delta E\n" -"saturated colors gives the lowest maximum delta E but a high average delta " -"E\n" -"none is a trade-off between both\n" -"the others are special behaviors to protect some hues" -msgstr "" -"izberite barve, ki bodo optimizirane z večjo prioriteto.\n" -"nevtralne barve dajejo najnižjo povprečno delto E, a visoko maksimalno delto " -"E\n" -"nasičene barve dajo najnižjo maksimalno delto E, a visoko povprečno delto E\n" -"noben je kompromis med obema\n" -"druge predstavljajo posebna vedenja za zaščito nekaterih odtenkov" - -#: ../src/iop/channelmixerrgb.c:4668 -msgid "neutral colors" -msgstr "nevtralne barve" - -#: ../src/iop/channelmixerrgb.c:4670 -msgid "skin and soil colors" -msgstr "barve kože in zemlje" - -#: ../src/iop/channelmixerrgb.c:4671 -msgid "foliage colors" -msgstr "listnate barve" - -#: ../src/iop/channelmixerrgb.c:4672 -msgid "sky and water colors" -msgstr "barve neba in vode" - -#: ../src/iop/channelmixerrgb.c:4673 -msgid "average delta E" -msgstr "povprečni delta E" - -#: ../src/iop/channelmixerrgb.c:4674 -msgid "maximum delta E" -msgstr "maximum delta E" - -#: ../src/iop/channelmixerrgb.c:4678 -msgid "patch scale" -msgstr "merilo zaplate" - -#: ../src/iop/channelmixerrgb.c:4681 -msgid "" -"reduce the radius of the patches to select the more or less central part.\n" -"useful when the perspective correction is sloppy or\n" -"the patches frame cast a shadows on the edges of the patch." -msgstr "" -"zmanjšajte polmer zaplat, da izberete bolj ali manj osrednji del.\n" -"uporabno, če je popravek perspektive površen ali\n" -"če okvir zaplat meče sence na robove zaplate." - -#: ../src/iop/channelmixerrgb.c:4691 -msgid "the delta E is using the CIE 2000 formula" -msgstr "delta E uporablja formulo CIE 2000" - -#: ../src/iop/channelmixerrgb.c:4696 -msgid "accept" -msgstr "sprejemi" - -#: ../src/iop/channelmixerrgb.c:4702 -msgid "accept the computed profile and set it in the module" -msgstr "sprejmi izračunani profil in ga nastavi v modulu" - -#: ../src/iop/channelmixerrgb.c:4705 -msgid "recompute" -msgstr "ponovno izračunaj" - -#: ../src/iop/channelmixerrgb.c:4709 -msgid "recompute the profile" -msgstr "ponovno izračunaj profil" - -#: ../src/iop/channelmixerrgb.c:4713 -msgid "validate" -msgstr "preveri veljavnost" - -#: ../src/iop/channelmixerrgb.c:4717 -msgid "check the output delta E" -msgstr "preveri izhodno delto E" - -#: ../src/iop/choleski.h:290 ../src/iop/choleski.h:390 -msgid "" -"Choleski decomposition failed to allocate memory, check your RAM settings" -msgstr "" -"za Choleskijevo dekompozicijo ni bilo dovolj pomnilnika, preverite " -"nastavitve za RAM" - -#: ../src/iop/clahe.c:74 -msgid "" -"this module is deprecated. better use new local contrast module instead." -msgstr "ta modul je zastarel. raje uporabite novi modul lokalnega kontrasta." - -#: ../src/iop/clahe.c:337 ../src/iop/sharpen.c:445 -msgid "amount" -msgstr "količina" - -#: ../src/iop/clahe.c:346 -msgid "size of features to preserve" -msgstr "velikost shranjenih dodatkov" - -#: ../src/iop/clahe.c:347 ../src/iop/nlmeans.c:464 -msgid "strength of the effect" -msgstr "moč učinka" - -#: ../src/iop/clipping.c:304 -msgid "" -"this module is deprecated. please use the crop, orientation and/or rotate " -"and perspective modules instead." -msgstr "" -"ta modul je zastarel. namesto tega raje uporabite modul za obrezovanje, " -"orientacijo in/ali sukanje in perspektivo." - -#: ../src/iop/clipping.c:309 -msgid "crop and rotate" -msgstr "obreži in zasukaj" - -#: ../src/iop/clipping.c:314 -msgid "reframe|perspective|keystone|distortion" -msgstr "ponovno okvirjanje|perspektiva|popr. persp.|popačenje" - -#: ../src/iop/clipping.c:319 -msgid "change the framing and correct the perspective" -msgstr "spremeni okvirjanje in popravi perspektivo" - -#: ../src/iop/clipping.c:1394 ../src/iop/clipping.c:2120 ../src/iop/crop.c:517 -#: ../src/iop/crop.c:1117 -msgid "original image" -msgstr "izvorna slika" - -#: ../src/iop/clipping.c:1698 ../src/iop/crop.c:824 -msgid "invalid ratio format. it should be \"number:number\"" -msgstr "neveljavno razmerje. mora biti 'število:število'" - -#: ../src/iop/clipping.c:1714 ../src/iop/crop.c:840 -msgid "invalid ratio format. it should be a positive number" -msgstr "neveljavno razmerje stranic. mora biti pozitivno število" - -#: ../src/iop/clipping.c:1903 ../src/iop/clipping.c:2111 -msgid "full" -msgstr "polno" - -#: ../src/iop/clipping.c:1904 -msgid "old system" -msgstr "stari sistem" - -#: ../src/iop/clipping.c:1905 -msgid "correction applied" -msgstr "popravek izveden" - -#: ../src/iop/clipping.c:2089 -msgid "main" -msgstr "glavni" - -#: ../src/iop/clipping.c:2098 -msgid "mirror image horizontally and/or vertically" -msgstr "prezrcaljenje slike vodoravno in/ali navpično" - -#: ../src/iop/clipping.c:2101 -msgid "angle" -msgstr "kot" - -#: ../src/iop/clipping.c:2104 -msgid "right-click and drag a line on the image to drag a straight line" -msgstr "" -"kliknite z desno tipko in povlecite črto na sliki da se poravna z ravno črto " -"na sliki" - -#: ../src/iop/clipping.c:2107 -msgid "keystone" -msgstr "popravek perspektive" - -#: ../src/iop/clipping.c:2112 -msgid "set perspective correction for your image" -msgstr "nastavi popravek perspektive za vašo sliko" - -#: ../src/iop/clipping.c:2119 ../src/iop/crop.c:1116 -msgid "freehand" -msgstr "prostoročno" - -#: ../src/iop/clipping.c:2122 ../src/iop/crop.c:1119 -msgid "10:8 in print" -msgstr "10:8 za tisk" - -#: ../src/iop/clipping.c:2123 ../src/iop/crop.c:1120 -msgid "5:4, 4x5, 8x10" -msgstr "5:4, 4x5, 8x10" - -#: ../src/iop/clipping.c:2124 ../src/iop/crop.c:1121 -msgid "11x14" -msgstr "11x14" - -#: ../src/iop/clipping.c:2125 ../src/iop/crop.c:1122 -msgid "8.5x11, letter" -msgstr "8.5x11, ameriško pismo" - -#: ../src/iop/clipping.c:2126 ../src/iop/crop.c:1123 -msgid "4:3, VGA, TV" -msgstr "4:3, VGA, TV" - -#: ../src/iop/clipping.c:2127 ../src/iop/crop.c:1124 -msgid "5x7" -msgstr "5x7" - -#: ../src/iop/clipping.c:2128 ../src/iop/crop.c:1125 -msgid "ISO 216, DIN 476, A4" -msgstr "ISO 216, DIN 476, A4" - -#: ../src/iop/clipping.c:2129 ../src/iop/crop.c:1126 -msgid "3:2, 4x6, 35mm" -msgstr "3:2, 4x6, 35mm" - -#: ../src/iop/clipping.c:2130 ../src/iop/crop.c:1127 -msgid "16:10, 8x5" -msgstr "16:10, 8x5" - -#: ../src/iop/clipping.c:2132 ../src/iop/crop.c:1129 -msgid "16:9, HDTV" -msgstr "16:9, HDTV" - -#: ../src/iop/clipping.c:2133 ../src/iop/crop.c:1130 -msgid "widescreen" -msgstr "široki zaslon" - -#: ../src/iop/clipping.c:2134 ../src/iop/crop.c:1131 -msgid "2:1, univisium" -msgstr "2:1, univisium" - -#: ../src/iop/clipping.c:2135 ../src/iop/crop.c:1132 -msgid "cinemascope" -msgstr "cinemascope" - -#: ../src/iop/clipping.c:2136 ../src/iop/crop.c:1133 -msgid "21:9" -msgstr "21:9" - -#: ../src/iop/clipping.c:2137 ../src/iop/crop.c:1134 -msgid "anamorphic" -msgstr "anamorfno" - -#: ../src/iop/clipping.c:2138 ../src/iop/crop.c:1135 -msgid "3:1, panorama" -msgstr "3:1 panorama" - -#: ../src/iop/clipping.c:2170 ../src/iop/clipping.c:2182 ../src/iop/crop.c:1171 -#: ../src/iop/crop.c:1187 -#, c-format -msgid "invalid ratio format for `%s'. it should be \"number:number\"" -msgstr "napačen format razmerja `%s'. mora biti 'število:število'" - -#: ../src/iop/clipping.c:2229 ../src/iop/crop.c:1238 -msgid "" -"set the aspect ratio\n" -"the list is sorted: from most square to least square\n" -"to enter custom aspect ratio open the combobox and type ratio in x:y or " -"decimal format" -msgstr "" -"nastavite razmerje stranic\n" -"seznam je urejen od najbolj kvadratnih do najmanj kvadratnih\n" -"da bi vnesli razmerje po meri odprite kombinirano polje in vnesite razmerje " -"kot x:y ali v decimalni obliki" - -#: ../src/iop/clipping.c:2236 ../src/iop/crop.c:1252 -msgid "margins" -msgstr "robovi" - -#: ../src/iop/clipping.c:2241 ../src/iop/crop.c:1262 -msgid "the left margin cannot overlap with the right margin" -msgstr "levi rob se ne sme prekrivati z desnim robom" - -#: ../src/iop/clipping.c:2248 ../src/iop/crop.c:1270 -msgid "the right margin cannot overlap with the left margin" -msgstr "desni rob se ne sme prekrivati z levim robom" - -#: ../src/iop/clipping.c:2253 ../src/iop/crop.c:1276 -msgid "the top margin cannot overlap with the bottom margin" -msgstr "zgornji rob se ne sme prekrivati s spodnjim robom" - -#: ../src/iop/clipping.c:2260 ../src/iop/crop.c:1284 -msgid "the bottom margin cannot overlap with the top margin" -msgstr "spodnji rob se ne sme prekrivati z zgornjim robom" - -#: ../src/iop/clipping.c:3019 -msgid "<b>commit</b>: double-click, <b>straighten</b>: right-drag" -msgstr "<b>potrdi</b>: dvojni klik, <b>poravnaj</b>: desni pomik" - -#: ../src/iop/clipping.c:3023 -msgid "" -"<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag\n" -"<b>straighten</b>: right-drag" -msgstr "" -"<b>spremeni velikost</b>: poteg, <b>ohrani proporce</b>: dvigalka+poteg\n" -"<b>poravnaj</b>: desni-poteg" - -#: ../src/iop/clipping.c:3066 -msgid "<b>move control point</b>: drag" -msgstr "<b>potegnite kontrolno točko</b>: poteg" - -#: ../src/iop/clipping.c:3071 -msgid "<b>move line</b>: drag, <b>toggle symmetry</b>: click ꝏ" -msgstr "<b>premakni črto</b>: poteg, <b>preklopi simetrijo</b>: klik ꝏ" - -#: ../src/iop/clipping.c:3076 -msgid "" -"<b>apply</b>: click <tt>ok</tt>, <b>toggle symmetry</b>: click ꝏ\n" -"<b>move line/control point</b>: drag" -msgstr "" -"<b>uveljavi</b>: klik <tt>ok</tt>, <b>preklopi simetrijo</b>: klik ꝏ\n" -"<b>premakni črto/kontrolna točka</b>: poteg" - -#: ../src/iop/clipping.c:3083 -msgid "" -"<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" -"b>: ctrl+drag\n" -"<b>straighten</b>: right-drag, <b>commit</b>: double-click" -msgstr "" -"<b>premakni</b>: poteg, <b>premakni navpično</b>: dvigalka+poteg, " -"<b>premakni vodoravno</b>: krmilka+poteg\n" -"<b>poravnaj</b>: desni-poteg, <b>potrdi</b>: dvojni klik" - -#: ../src/iop/clipping.c:3340 ../src/iop/crop.c:1796 -#, c-format -msgid "[%s on borders] crop" -msgstr "[%s on borders] obreži" - -#: ../src/iop/clipping.c:3342 ../src/iop/crop.c:1798 -#, c-format -msgid "[%s on borders] crop keeping ratio" -msgstr "[%s on borders] razmerje obreze" - -#: ../src/iop/colisa.c:79 -msgid "this module is deprecated. please use colorbalance RGB module instead." -msgstr "" -"ta modul je zastarel. namesto tega raje uporabite modul za umerjanje barv " -"RGB." - -#: ../src/iop/colisa.c:84 -msgid "contrast brightness saturation" -msgstr "kontrast sijavost nasičenost" - -#: ../src/iop/colisa.c:89 -msgid "adjust the look of the image" -msgstr "prilagodi videz slike" - -#: ../src/iop/colisa.c:310 -msgid "color saturation adjustment" -msgstr "nastavitev nasičenosti barv" - -#: ../src/iop/colorbalance.c:150 -msgid "color balance" -msgstr "uravnoteženost barv" - -#: ../src/iop/colorbalance.c:155 -msgid "lift gamma gain|cdl|color grading|contrast|saturation|hue" -msgstr "dvig ojačenja game|cdl|stopnjevanje barv|kontrast|nasičenost|odtenek" - -#: ../src/iop/colorbalance.c:160 -msgid "shift colors selectively by luminance range" -msgstr "selektivno pomakni barve po obsegu svetlosti" - -#: ../src/iop/colorbalance.c:164 -msgid "non-linear, Lab, scene-referred" -msgstr "ne-linearni, Lab, glede na sceno" - -#. these blobs were exported as dtstyle and copied from there: -#: ../src/iop/colorbalance.c:275 -msgid "split-toning teal-orange (2nd instance)" -msgstr "razcepitev tonov teal-oranžna (drugi pojavek)" - -#: ../src/iop/colorbalance.c:278 -msgid "split-toning teal-orange (1st instance)" -msgstr "razcepitev tonov teal-oranžna (prvi pojavek)" - -#: ../src/iop/colorbalance.c:282 -msgid "generic film" -msgstr "generični film" - -#: ../src/iop/colorbalance.c:286 -msgid "similar to Kodak Portra" -msgstr "podobno kot Kodak Portra" - -#: ../src/iop/colorbalance.c:290 -msgid "similar to Kodak Ektar" -msgstr "podobno kot Kodak Ektar" - -#: ../src/iop/colorbalance.c:294 -msgid "similar to Kodachrome" -msgstr "podobno kot Kodachrome" - -#: ../src/iop/colorbalance.c:990 -msgid "optimize luma from patches" -msgstr "optimiziraj lumo iz krp" - -#: ../src/iop/colorbalance.c:992 ../src/iop/colorbalance.c:2110 -msgid "optimize luma" -msgstr "optimiziraj lumo" - -#: ../src/iop/colorbalance.c:996 -msgid "neutralize colors from patches" -msgstr "nevtraliziraj barve iz krp" - -#: ../src/iop/colorbalance.c:998 ../src/iop/colorbalance.c:2116 -msgid "neutralize colors" -msgstr "nevtraliziraj barve" - -#: ../src/iop/colorbalance.c:1783 -msgctxt "color" -msgid "offset" -msgstr "odmik" - -#: ../src/iop/colorbalance.c:1783 -msgctxt "color" -msgid "power" -msgstr "moč" - -#: ../src/iop/colorbalance.c:1783 -msgctxt "color" -msgid "slope" -msgstr "strmina" - -#: ../src/iop/colorbalance.c:1784 -msgctxt "color" -msgid "lift" -msgstr "dvig" - -#: ../src/iop/colorbalance.c:1784 -msgctxt "color" -msgid "gamma" -msgstr "gama" - -#: ../src/iop/colorbalance.c:1784 -msgctxt "color" -msgid "gain" -msgstr "ojačenje" - -#: ../src/iop/colorbalance.c:1787 -msgctxt "section" -msgid "shadows: lift / offset" -msgstr "sence : dvig /odmik" - -#: ../src/iop/colorbalance.c:1788 -msgctxt "section" -msgid "mid-tones: gamma / power" -msgstr "srednji toni : gama / moč" - -#: ../src/iop/colorbalance.c:1789 -msgctxt "section" -msgid "highlights: gain / slope" -msgstr "bleščave : ojačenje / naklon" - -#: ../src/iop/colorbalance.c:1813 -msgid "shadows / mid-tones / highlights" -msgstr "sence / srednji toni / bleščave" - -#: ../src/iop/colorbalance.c:1910 ../src/iop/colorbalance.c:1919 -msgid "color-grading mapping method" -msgstr "metoda preslikav barv" - -#: ../src/iop/colorbalance.c:1914 -msgid "color control sliders" -msgstr "drsniki kontrole barv" - -#: ../src/iop/colorbalance.c:1915 ../src/libs/colorpicker.c:51 -msgid "HSL" -msgstr "HSL" - -#: ../src/iop/colorbalance.c:1916 -msgid "RGBL" -msgstr "RGBL" - -#: ../src/iop/colorbalance.c:1928 -msgctxt "section" -msgid "master" -msgstr "matični" - -#: ../src/iop/colorbalance.c:1934 -msgid "saturation correction before the color balance" -msgstr "popravek nasičenosti pred barvnim uravnoteženjem" - -#: ../src/iop/colorbalance.c:1940 -msgid "saturation correction after the color balance" -msgstr "popravek nasičenosti po barvnem uravnoteženju" - -#: ../src/iop/colorbalance.c:1945 -msgid "adjust to match a neutral tone" -msgstr "prilagodi, da ustreza nevtralnemu tonu" - -#. is set in _configure_slider_blocks -#: ../src/iop/colorbalance.c:2003 -msgid "click to cycle layout" -msgstr "klikni za kroženje po razporedu" - -#: ../src/iop/colorbalance.c:2037 -msgid "factor" -msgstr "faktor" - -#: ../src/iop/colorbalance.c:2051 -msgid "select the hue" -msgstr "izberi odtenek" - -#: ../src/iop/colorbalance.c:2063 -msgid "select the saturation" -msgstr "izberi nasičenost" - -#: ../src/iop/colorbalance.c:2082 -msgid "factor of lift/offset" -msgstr "faktor dviga/odmika" - -#: ../src/iop/colorbalance.c:2083 -msgid "factor of red for lift/offset" -msgstr "faktor rdečega dviga/odmika" - -#: ../src/iop/colorbalance.c:2084 -msgid "factor of green for lift/offset" -msgstr "faktor zelenega dviga/odmika" - -#: ../src/iop/colorbalance.c:2085 -msgid "factor of blue for lift/offset" -msgstr "faktor modrega dviga/odmika" - -#: ../src/iop/colorbalance.c:2088 -msgid "factor of gamma/power" -msgstr "faktor game/moči" - -#: ../src/iop/colorbalance.c:2089 -msgid "factor of red for gamma/power" -msgstr "faktor rdeče game/moči" - -#: ../src/iop/colorbalance.c:2090 -msgid "factor of green for gamma/power" -msgstr "faktor zelene game/moči" - -#: ../src/iop/colorbalance.c:2091 -msgid "factor of blue for gamma/power" -msgstr "faktor modre game/moči" - -#: ../src/iop/colorbalance.c:2094 -msgid "factor of gain/slope" -msgstr "faktor ojačenja/strmine" - -#: ../src/iop/colorbalance.c:2095 -msgid "factor of red for gain/slope" -msgstr "faktor ojačenja/strmine rdeče" - -#: ../src/iop/colorbalance.c:2096 -msgid "factor of green for gain/slope" -msgstr "faktor ojačenja/strmine zelene" - -#: ../src/iop/colorbalance.c:2097 -msgid "factor of blue for gain/slope" -msgstr "faktor ojačenja/strmine modre" - -#: ../src/iop/colorbalance.c:2106 -msgctxt "section" -msgid "auto optimizers" -msgstr "avto optimizatorji" - -#: ../src/iop/colorbalance.c:2111 -msgid "fit the whole histogram and center the average luma" -msgstr "prilagodi celotni histogram in osredotoči na povprečno lumo" - -#: ../src/iop/colorbalance.c:2117 -msgid "optimize the RGB curves to remove color casts" -msgstr "optimiraj krivulje RGB, da odstrani barvni pridih" - -#: ../src/iop/colorbalancergb.c:173 -msgid "color balance rgb" -msgstr "uravnoteženost barv rgb" - -#: ../src/iop/colorbalancergb.c:178 -msgid "" -"offset power slope|cdl|color grading|contrast|chroma_highlights|hue|vibrance|" -"saturation" -msgstr "" -"zamik naklona moči|cdl|stopnjevanje barv|kontrast|bleščave krome|odtenek|" -"živahnost|nasičenost" - -#: ../src/iop/colorbalancergb.c:183 -msgid "" -"color grading tools using alpha masks to separate\n" -"shadows, mid-tones and highlights" -msgstr "" -"orodja za stopnjevanje barv z alfa maskami za ločevanje\n" -"senc, srednjih tonov in bleščav" - -#: ../src/iop/colorbalancergb.c:443 -msgid "add basic colorfulness (legacy)" -msgstr "dodaj polnost barv (zapuščina)" - -#: ../src/iop/colorbalancergb.c:452 -msgid "basic colorfulness: natural skin" -msgstr "osnovna polnost barv: naravna koža" - -#: ../src/iop/colorbalancergb.c:458 -msgid "basic colorfulness: vibrant colors" -msgstr "osnovna polnost barv: živahne barve" - -#: ../src/iop/colorbalancergb.c:464 -msgid "basic colorfulness: standard" -msgstr "osnovna polnost barv: standard" - -#: ../src/iop/colorbalancergb.c:937 -msgid "colorbalance works only on RGB input" -msgstr "uravnoteževanje barv deluje samo na vhodu RGB" - -#: ../src/iop/colorbalancergb.c:1506 ../src/iop/colorzones.c:2164 -#: ../src/iop/retouch.c:1884 ../src/iop/toneequal.c:1966 -msgid "cannot display masks when the blending mask is displayed" -msgstr "ne morem prikazati mask, kadar je prikazana maska mešanja" - -#. Page master -#: ../src/iop/colorbalancergb.c:1876 -msgid "master" -msgstr "matični" - -#: ../src/iop/colorbalancergb.c:1876 -msgid "global grading" -msgstr "globalno stopnjevanje" - -#: ../src/iop/colorbalancergb.c:1880 -msgid "rotate all hues by an angle, at the same luminance" -msgstr "zavrti vse odtenke za kot pri enaki svetlosti" - -#: ../src/iop/colorbalancergb.c:1886 -msgid "increase colorfulness mostly on low-chroma colors" -msgstr "poveča polnost barv predvsem na barvah z nizko kromo" - -#: ../src/iop/colorbalancergb.c:1892 -msgid "increase the contrast at constant chromaticity" -msgstr "poveča kontrast pri stalni kromatičnosti" - -#: ../src/iop/colorbalancergb.c:1894 -msgctxt "section" -msgid "linear chroma grading" -msgstr "linearno stopnjevanje krome" - -#: ../src/iop/colorbalancergb.c:1901 -msgid "increase colorfulness at same luminance globally" -msgstr "poveča barvitost pri enaki globalni svetlosti" - -#: ../src/iop/colorbalancergb.c:1906 -msgid "increase colorfulness at same luminance mostly in shadows" -msgstr "poveča barvitost pri enaki svetlosti predvsem v sencah" - -#: ../src/iop/colorbalancergb.c:1911 -msgid "increase colorfulness at same luminance mostly in mid-tones" -msgstr "poveča barvitost pri enaki svetlosti predvsem v srednjih tonih" - -#: ../src/iop/colorbalancergb.c:1916 -msgid "increase colorfulness at same luminance mostly in highlights" -msgstr "poveča barvitost pri enaki svetlosti predvsem v bleščavah" - -#: ../src/iop/colorbalancergb.c:1918 -msgctxt "section" -msgid "perceptual saturation grading" -msgstr "perceptivno stopnjevanje nasičenosti" - -#: ../src/iop/colorbalancergb.c:1924 -msgid "add or remove saturation by an absolute amount" -msgstr "dodaj ali odstrani nasičenost za absolutno vrednost" - -#: ../src/iop/colorbalancergb.c:1929 ../src/iop/colorbalancergb.c:1934 -#: ../src/iop/colorbalancergb.c:1939 -msgid "" -"increase or decrease saturation proportionally to the original pixel " -"saturation" -msgstr "" -"povečaj ali zmanjšaj nasičenost proporcionalno glede na izvirno nasičenost " -"pikslov" - -#: ../src/iop/colorbalancergb.c:1941 -msgctxt "section" -msgid "perceptual brilliance grading" -msgstr "percepcijsko stopnjevanje živahnosti" - -#: ../src/iop/colorbalancergb.c:1942 -msgid "brilliance" -msgstr "živahnost" - -#: ../src/iop/colorbalancergb.c:1947 -msgid "add or remove brilliance by an absolute amount" -msgstr "dodaj ali odstrani živahnost v absolutni vrednosti" - -#: ../src/iop/colorbalancergb.c:1952 ../src/iop/colorbalancergb.c:1957 -#: ../src/iop/colorbalancergb.c:1962 -msgid "" -"increase or decrease brilliance proportionally to the original pixel " -"brilliance" -msgstr "povečaj ali zmanjšaj živahnost sorazmerno izvirni živahnosti pikslov" - -#. Page 4-ways -#: ../src/iop/colorbalancergb.c:1965 -msgid "4 ways" -msgstr "4 poti" - -#: ../src/iop/colorbalancergb.c:1965 -msgid "selective color grading" -msgstr "selektivno stopnjevanje barv" - -#: ../src/iop/colorbalancergb.c:1967 -msgctxt "section" -msgid "global offset" -msgstr "globalni odmik" - -#: ../src/iop/colorbalancergb.c:1974 -msgid "global luminance offset" -msgstr "globalni odmik svetlosti" - -#: ../src/iop/colorbalancergb.c:1979 -msgid "hue of the global color offset" -msgstr "globalni barvni odmik odtenka" - -#: ../src/iop/colorbalancergb.c:1985 -msgid "chroma of the global color offset" -msgstr "globalni odmik barve krome" - -#: ../src/iop/colorbalancergb.c:1987 -msgctxt "section" -msgid "shadows lift" -msgstr "dvig senc" - -#: ../src/iop/colorbalancergb.c:1988 -msgid "lift" -msgstr "dvig" - -#: ../src/iop/colorbalancergb.c:1994 -msgid "luminance gain in shadows" -msgstr "povečanje svetlosti v sencah" - -#: ../src/iop/colorbalancergb.c:1999 -msgid "hue of the color gain in shadows" -msgstr "odtenek povečanja barv v sencah" - -#: ../src/iop/colorbalancergb.c:2005 -msgid "chroma of the color gain in shadows" -msgstr "kroma povečanja barv v sencah" - -#: ../src/iop/colorbalancergb.c:2007 -msgctxt "section" -msgid "highlights gain" -msgstr "povečanje bleščav" - -#: ../src/iop/colorbalancergb.c:2008 -msgid "gain" -msgstr "ojačenje" - -#: ../src/iop/colorbalancergb.c:2014 -msgid "luminance gain in highlights" -msgstr "povečanje svetlosti v bleščavah" - -#: ../src/iop/colorbalancergb.c:2019 -msgid "hue of the color gain in highlights" -msgstr "odtenek povečanja barv v bleščavah" - -#: ../src/iop/colorbalancergb.c:2025 -msgid "chroma of the color gain in highlights" -msgstr "kroma povečanja barv v bleščavah" - -#: ../src/iop/colorbalancergb.c:2027 -msgctxt "section" -msgid "power" -msgstr "moč" - -#: ../src/iop/colorbalancergb.c:2028 -msgid "power" -msgstr "moč" - -#: ../src/iop/colorbalancergb.c:2034 -msgid "luminance exponent in mid-tones" -msgstr "eksponent svetlosti v srednjih tonih" - -#: ../src/iop/colorbalancergb.c:2039 -msgid "hue of the color exponent in mid-tones" -msgstr "odtenek eksponenta barve v srednjih tonih" - -#: ../src/iop/colorbalancergb.c:2045 -msgid "chroma of the color exponent in mid-tones" -msgstr "kroma eksponenta barve v srednjih tonih" - -#. Page masks -#: ../src/iop/colorbalancergb.c:2048 -msgid "masks" -msgstr "maske" - -#: ../src/iop/colorbalancergb.c:2048 -msgid "isolate luminances" -msgstr "izoliraj svetlosti" - -#: ../src/iop/colorbalancergb.c:2052 -msgid "choose in which uniform color space the saturation is computed" -msgstr "" -"izberite v katerem enakomernem barvnem prostoru naj bo izračunano nasičenje" - -#: ../src/iop/colorbalancergb.c:2054 -msgctxt "section" -msgid "luminance ranges" -msgstr "obsegi svetlosti" - -#: ../src/iop/colorbalancergb.c:2065 -msgid "weight of the shadows over the whole tonal range" -msgstr "teža senc v celotnem območju tonov" - -#: ../src/iop/colorbalancergb.c:2073 -msgid "position of the middle-gray reference for masking" -msgstr "pozicija srednje sive reference za maskiranje" - -#: ../src/iop/colorbalancergb.c:2081 -msgid "weights of highlights over the whole tonal range" -msgstr "uteži bleščav v celotnem tonskem območju" - -#: ../src/iop/colorbalancergb.c:2086 -msgctxt "section" -msgid "threshold" -msgstr "prag" - -#: ../src/iop/colorbalancergb.c:2091 -msgid "peak white luminance value used to normalize the power function" -msgstr "" -"najvišja vrednost bele svetlosti, ki se uporablja za normalizacijo funkcije " -"moči" - -#: ../src/iop/colorbalancergb.c:2097 -msgid "peak gray luminance value used to normalize the power function" -msgstr "" -"najvišja vrednost bele svetlosti, ki se uporablja za normalizacijo funkcije " -"moči" - -#: ../src/iop/colorbalancergb.c:2099 -msgctxt "section" -msgid "mask preview settings" -msgstr "nastavitve predogleda maske" - -#: ../src/iop/colorbalancergb.c:2102 -msgid "checkerboard color 1" -msgstr "barva šahovnice 1" - -#: ../src/iop/colorbalancergb.c:2105 ../src/iop/colorbalancergb.c:2114 -msgid "select color of the checkerboard from a swatch" -msgstr "izberite barvo šahovnice iz vzorca" - -#: ../src/iop/colorbalancergb.c:2111 -msgid "checkerboard color 2" -msgstr "barva šahovnice 2" - -#: ../src/iop/colorbalancergb.c:2121 -msgid "checkerboard size" -msgstr "velikost šahovnice" - -#: ../src/iop/colorchecker.c:118 -msgid "color look up table" -msgstr "iskalna tabela barv" - -#: ../src/iop/colorchecker.c:123 -msgid "profile|lut|color grading" -msgstr "profil|iskalna tabela|stopnjevanje barv" - -#: ../src/iop/colorchecker.c:129 -msgid "perform color space corrections and apply looks" -msgstr "izvedi popravke barvnega prostora in uporabi videze" - -#: ../src/iop/colorchecker.c:131 ../src/iop/colorchecker.c:133 -#: ../src/iop/colorize.c:106 ../src/iop/colormapping.c:154 -#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:136 -#: ../src/iop/colorzones.c:146 ../src/iop/defringe.c:83 ../src/iop/levels.c:139 -#: ../src/iop/monochrome.c:99 ../src/iop/shadhi.c:198 -#: ../src/iop/tonecurve.c:212 ../src/iop/vibrance.c:96 -msgid "linear or non-linear, Lab, display-referred" -msgstr "linearno ali ne-linearno, Lab, glede na zaslon" - -#: ../src/iop/colorchecker.c:132 -msgid "defined by profile, Lab" -msgstr "določeno s profilom, Lab" - -#: ../src/iop/colorchecker.c:294 -msgid "it8 skin tones" -msgstr "it8 toni kože" - -#: ../src/iop/colorchecker.c:310 -msgid "Helmholtz/Kohlrausch monochrome" -msgstr "Helmholtz/Kohlrausch enobarvno" - -#: ../src/iop/colorchecker.c:327 -msgid "Fuji Astia emulation" -msgstr "kot Fuji Astia" - -#: ../src/iop/colorchecker.c:341 -msgid "Fuji Classic Chrome emulation" -msgstr "kot Fuji Classic Chrome" - -#: ../src/iop/colorchecker.c:355 -msgid "Fuji Monochrome emulation" -msgstr "kot Fuji Monochrome" - -#: ../src/iop/colorchecker.c:369 -msgid "Fuji Provia emulation" -msgstr "kot Fuji Provia" - -#: ../src/iop/colorchecker.c:383 -msgid "Fuji Velvia emulation" -msgstr "kot Fuji Velvia" - -#: ../src/iop/colorchecker.c:841 ../src/iop/colorchecker.c:1436 -#, c-format -msgid "patch #%d" -msgstr "krpa #%d" - -#: ../src/iop/colorchecker.c:1283 -#, c-format -msgid "" -"(%2.2f %2.2f %2.2f)\n" -"altered patches are marked with an outline\n" -"click to select\n" -"double-click to reset\n" -"right click to delete patch\n" -"shift+click while color picking to replace patch" -msgstr "" -"(%2.2f %2.2f %2.2f)\n" -"spremenjene krpe so označene z obrisom\n" -"klik za izbiro\n" -"dvojni klik za ponastavitev\n" -"desni klik za brisanje krpe\n" -"dvigalka+klik ob izbiri barve za zamenjavo krpe" - -#: ../src/iop/colorchecker.c:1431 -msgid "patch" -msgstr "krpa" - -#: ../src/iop/colorchecker.c:1432 -msgid "color checker patch" -msgstr "krpa preverjalnika barv" - -#: ../src/iop/colorchecker.c:1446 -msgid "" -"adjust target color Lab 'L' channel\n" -"lower values darken target color while higher brighten it" -msgstr "" -"prilagodi ciljno barvo kanala Lab 'L'\n" -"nižje vrednosti potemnijo ciljno barvo, višje pa jo posvetlijo" - -#: ../src/iop/colorchecker.c:1454 -msgid "" -"adjust target color Lab 'a' channel\n" -"lower values shift target color towards greens while higher shift towards " -"magentas" -msgstr "" -"prilagodi ciljno barvo kanala Lab 'a'\n" -"nižje vrednosti premaknejo ciljno barvo proti zelenim, višje pa proti " -"magentam" - -#: ../src/iop/colorchecker.c:1457 -msgid "green-magenta offset" -msgstr "odmik zelene proti magenti" - -#: ../src/iop/colorchecker.c:1466 -msgid "" -"adjust target color Lab 'b' channel\n" -"lower values shift target color towards blues while higher shift towards " -"yellows" -msgstr "" -"prilagodi ciljno barvo kanala Lab 'b'\n" -"nižje vrednosti premaknejo ciljno barvo proti modrim, višje pa proti rumenim" - -#: ../src/iop/colorchecker.c:1469 -msgid "blue-yellow offset" -msgstr "odmik modre proti rumeni" - -#: ../src/iop/colorchecker.c:1478 -msgid "" -"adjust target color saturation\n" -"adjusts 'a' and 'b' channels of target color in Lab space simultaneously\n" -"lower values scale towards lower saturation while higher scale towards " -"higher saturation" -msgstr "" -"prilagodi ciljno nasičenost barv\n" -"hkrati prilagaja kanala 'a' in 'b' ciljne barve v prostoru Lab\n" -"nižje vrednosti merijo proti nižji nasičenosti, višje pa proti višji " -"nasičenosti" - -#: ../src/iop/colorchecker.c:1487 -msgid "target color" -msgstr "ciljna barva" - -#: ../src/iop/colorchecker.c:1490 -msgid "" -"control target color of the patches\n" -"relative - target color is relative from the patch original color\n" -"absolute - target color is absolute Lab value" -msgstr "" -"kontrolira ciljno barvo krp\n" -"relativno - ciljna barva je relativna glede izvorne barve krpe\n" -"absolutna - ciljna barva je absolutna vrednost Lab" - -#: ../src/iop/colorchecker.c:1494 -msgid "absolute" -msgstr "absolutno" - -#: ../src/iop/colorcontrast.c:85 -msgid "color contrast" -msgstr "barvni kontrast" - -#: ../src/iop/colorcontrast.c:95 -msgid "" -"increase saturation and separation between\n" -"opposite colors" -msgstr "" -"povečaj nasičenost in ločitev med\n" -"nasprotnimi barvami" - -#: ../src/iop/colorcontrast.c:324 -msgid "" -"steepness of the a* curve in Lab\n" -"lower values desaturate greens and magenta while higher saturate them" -msgstr "" -"strmina krivulje a* v Lab\n" -"nižje vrednosti zmanjšajo nasičenost zelenih in magente, višje pa povečajo " -"nasičenost" - -#: ../src/iop/colorcontrast.c:331 -msgid "" -"steepness of the b* curve in Lab\n" -"lower values desaturate blues and yellows while higher saturate them" -msgstr "" -"strmina krivulje b* v Lab\n" -"nižje vrednosti zmanjšajo nasičenost modrih in rumenih, višje pa povečajo " -"nasičenost" - -#: ../src/iop/colorcorrection.c:71 -msgid "color correction" -msgstr "popravek barv" - -#: ../src/iop/colorcorrection.c:76 -msgid "correct white balance selectively for blacks and whites" -msgstr "popravi ravnovesje beline posebej za črnine in beline" - -#: ../src/iop/colorcorrection.c:107 -msgid "warm tone" -msgstr "topli ton" - -#: ../src/iop/colorcorrection.c:115 -msgid "warming filter" -msgstr "topli filter" - -#: ../src/iop/colorcorrection.c:123 -msgid "cooling filter" -msgstr "hladni filter" - -#: ../src/iop/colorcorrection.c:257 -msgid "" -"drag the line for split-toning. bright means highlights, dark means shadows. " -"use mouse wheel to change saturation." -msgstr "" -"povlecite črto za razcep toniranja. svetlo pomeni bleščave, temno pomeni " -"senčne dele. uporabite miškin kolešček za spremembo nasičenosti." - -#: ../src/iop/colorcorrection.c:276 -msgid "set the global saturation" -msgstr "nastavi globalno nasičenost barv" - -#: ../src/iop/colorin.c:126 -msgid "input color profile" -msgstr "vhodni barvni profil" - -#: ../src/iop/colorin.c:131 -msgid "" -"convert any RGB input to pipeline reference RGB\n" -"using color profiles to remap RGB values" -msgstr "" -"pretvori kateri koli vhod RGB v cevovodni referenčni RGB\n" -"uporaba barvnih profilov za ponovno preslikavo vrednosti RGB" - -#: ../src/iop/colorin.c:133 ../src/iop/colorout.c:89 ../src/iop/demosaic.c:293 -#: ../src/iop/rawprepare.c:158 -msgid "mandatory" -msgstr "obvezno" - -#: ../src/iop/colorin.c:135 ../src/iop/colorout.c:91 -msgid "defined by profile" -msgstr "določeno s profilom" - -#: ../src/iop/colorin.c:542 -#, c-format -msgid "" -"can't extract matrix from colorspace `%s', it will be replaced by Rec2020 " -"RGB!" -msgstr "" -"ne morem izvleči matrike iz barvnega prostora `%s', zamenjal jo bom za " -"Rec2020 RGB!" - -#: ../src/iop/colorin.c:1424 -#, c-format -msgid "`%s' color matrix not found!" -msgstr "`%s' barvne tabele ne najdem!" - -#: ../src/iop/colorin.c:1463 -msgid "input profile could not be generated!" -msgstr "vhodnega profila ni bilo mogoče izdelati!" - -#: ../src/iop/colorin.c:1560 -msgid "unsupported input profile has been replaced by linear Rec709 RGB!" -msgstr "nepodprt vhodni profil sem zamenjal za linearnega RGB Rec709!" - -#: ../src/iop/colorin.c:1844 -msgid "external ICC profiles" -msgstr "zunanji ICC profili" - -#: ../src/iop/colorin.c:1889 -#, c-format -msgid "" -"embedded ICC profile properties:\n" -"\n" -"name: <b>%s</b>\n" -"version: <b>%d.%d</b>\n" -"type: <b>%s</b>\n" -"manufacturer: <b>%s</b>\n" -"model: <b>%s</b>\n" -"copyright: <b>%s</b>\n" -"\n" -msgstr "" -"lastnosti vdelanega ICC profila:\n" -"\n" -"ime: <b>%s</b>\n" -"verzija: <b>%d.%d</b>\n" -"tip: <b>%s</b>\n" -"proizvajalec: <b>%s</b>\n" -"model: <b>%s</b>\n" -"copyright: <b>%s</b>\n" -"\n" - -#: ../src/iop/colorin.c:2084 -msgid "input profile" -msgstr "vhodni profil" - -#: ../src/iop/colorin.c:2088 -msgid "working profile" -msgstr "delovni profil" - -#: ../src/iop/colorin.c:2097 -msgid "working ICC profiles" -msgstr "delovni ICC profili" - -#: ../src/iop/colorin.c:2109 -msgid "confine Lab values to gamut of RGB color space" -msgstr "omeji vrednosti Lab na razpon barvnega prostora RGB" - -#: ../src/iop/colorize.c:84 -msgid "colorize" -msgstr "obarvaj" - -#: ../src/iop/colorize.c:104 -msgid "overlay a solid color on the image" -msgstr "prekrij trdno barvo na sliko" - -#: ../src/iop/colorize.c:341 ../src/iop/splittoning.c:485 -msgid "select the hue tone" -msgstr "izberi ton odtenka" - -#: ../src/iop/colorize.c:347 -msgid "select the saturation shadow tone" -msgstr "izberi nasičenost tona v senci" - -#: ../src/iop/colorize.c:351 -msgid "lightness of color" -msgstr "svetlost barve" - -#: ../src/iop/colorize.c:355 -msgid "mix value of source lightness" -msgstr "mešanje vrednosti vhodne svetlosti" - -#: ../src/iop/colormapping.c:147 -msgid "color mapping" -msgstr "preslikava barv" - -#: ../src/iop/colormapping.c:152 -msgid "" -"transfer a color palette and tonal repartition from one image to another" -msgstr "" -"prenesi barvno paleto in ponovno tonsko razdelitev z ene slike na drugo" - -#: ../src/iop/colormapping.c:1030 -msgid "source clusters:" -msgstr "izvorne grupe:" - -#: ../src/iop/colormapping.c:1036 -msgid "target clusters:" -msgstr "ciljne grupe:" - -#: ../src/iop/colormapping.c:1045 -msgid "acquire as source" -msgstr "pridobi kot vhod" - -#: ../src/iop/colormapping.c:1049 -msgid "analyze this image as a source image" -msgstr "analiziraj to sliko kot izvirno sliko" - -#: ../src/iop/colormapping.c:1051 -msgid "acquire as target" -msgstr "pridobi kot cilj" - -#: ../src/iop/colormapping.c:1055 -msgid "analyze this image as a target image" -msgstr "analiziraj to sliko kot ciljno sliko" - -#: ../src/iop/colormapping.c:1058 -msgid "number of clusters to find in image. value change resets all clusters" -msgstr "število grup za iskanje po sliki. sprememba števila spremeni vse grupe" - -#: ../src/iop/colormapping.c:1061 -msgid "" -"how clusters are mapped. low values: based on color proximity, high values: " -"based on color dominance" -msgstr "" -"kako so preslikane grupe: temni deli na sorodnosti barv, svetli deli na " -"barvni nadvladi" - -#: ../src/iop/colormapping.c:1066 -msgid "level of histogram equalization" -msgstr "raven izenačevanja histograma" - -#: ../src/iop/colorout.c:81 -msgid "output color profile" -msgstr "izhodni barvni profil" - -#: ../src/iop/colorout.c:87 -msgid "" -"convert pipeline reference RGB to any display RGB\n" -"using color profiles to remap RGB values" -msgstr "" -"pretvori referenco RGB cevovoda v kateri koli prikaz RGB\n" -"z uporabo barvnih profilov za ponovno preslikavo vrednosti RGB" - -#: ../src/iop/colorout.c:92 -msgid "non-linear, RGB or Lab, display-referred" -msgstr "ne-linearno RGB ali Lab, glede na zaslon" - -#: ../src/iop/colorout.c:679 -msgid "missing output profile has been replaced by sRGB!" -msgstr "manjkajoči izhodni profil je bil zamenjan z sRGB!" - -#: ../src/iop/colorout.c:701 -msgid "missing softproof profile has been replaced by sRGB!" -msgstr "manjkajoči profil preizkusnega odtisa je bil zamenjan za sRGB!" - -#: ../src/iop/colorout.c:744 -msgid "unsupported output profile has been replaced by sRGB!" -msgstr "nepodprt izhodni profil sem zamenjal za sRGB!" - -#: ../src/iop/colorout.c:869 -msgid "output intent" -msgstr "namen izhoda" - -#: ../src/iop/colorout.c:870 -msgid "rendering intent" -msgstr "namen upodabljanja" - -#: ../src/iop/colorout.c:872 ../src/libs/export.c:1246 -#: ../src/libs/print_settings.c:2475 ../src/libs/print_settings.c:2824 -#: ../src/views/darkroom.c:2518 ../src/views/lighttable.c:1176 -msgid "perceptual" -msgstr "videz" - -#: ../src/iop/colorout.c:873 ../src/libs/export.c:1247 -#: ../src/libs/print_settings.c:2476 ../src/libs/print_settings.c:2825 -#: ../src/views/darkroom.c:2519 ../src/views/lighttable.c:1177 -msgid "relative colorimetric" -msgstr "relativni kolorimetrični" - -#: ../src/iop/colorout.c:874 ../src/libs/export.c:1248 -#: ../src/libs/print_settings.c:2477 ../src/libs/print_settings.c:2826 -#: ../src/views/darkroom.c:2520 ../src/views/lighttable.c:1178 -msgctxt "rendering intent" -msgid "saturation" -msgstr "nasičenost" - -#: ../src/iop/colorout.c:875 ../src/libs/export.c:1249 -#: ../src/libs/print_settings.c:2478 ../src/libs/print_settings.c:2827 -#: ../src/views/darkroom.c:2521 ../src/views/lighttable.c:1179 -msgid "absolute colorimetric" -msgstr "absolutno kolorimetričen" - -#: ../src/iop/colorout.c:893 -msgid "export ICC profiles" -msgstr "izvozi ICC profile" - -#: ../src/iop/colorreconstruction.c:129 -msgid "color reconstruction" -msgstr "rekonstrukcija barv" - -#: ../src/iop/colorreconstruction.c:134 -msgid "recover clipped highlights by propagating surrounding colors" -msgstr "obnovi obrezane bleščave s širjenjem okoliških barv" - -#: ../src/iop/colorreconstruction.c:628 ../src/iop/colorreconstruction.c:1040 -#: ../src/iop/globaltonemap.c:193 ../src/iop/globaltonemap.c:362 -#: ../src/iop/hazeremoval.c:553 ../src/iop/hazeremoval.c:788 -#: ../src/iop/levels.c:336 -msgid "inconsistent output" -msgstr "nekonsistenten izhod" - -#: ../src/iop/colorreconstruction.c:666 -msgid "module `color reconstruction' failed" -msgstr "delo modula 'rekonstrukcija barve' ni uspelo" - -#: ../src/iop/colorreconstruction.c:1237 -msgid "spatial" -msgstr "prostorsko" - -#: ../src/iop/colorreconstruction.c:1238 -msgid "range" -msgstr "obseg" - -#: ../src/iop/colorreconstruction.c:1239 -msgid "precedence" -msgstr "prednost" - -#: ../src/iop/colorreconstruction.c:1255 -msgid "pixels with lightness values above this threshold are corrected" -msgstr "piksli s svetlostjo nad tem pragom so popravljeni" - -#: ../src/iop/colorreconstruction.c:1256 -msgid "how far to look for replacement colors in spatial dimensions" -msgstr "kako daleč naj gre iskanje nadomestnih barv v prostorskih dimenzijah" - -#: ../src/iop/colorreconstruction.c:1257 -msgid "how far to look for replacement colors in the luminance dimension" -msgstr "kako daleč naj gre iskanje nadomestnih barv v prostoru svetlosti" - -#: ../src/iop/colorreconstruction.c:1258 -msgid "if and how to give precedence to specific replacement colors" -msgstr "če in kako dati prednost določenim nadomestnim barvam" - -#: ../src/iop/colorreconstruction.c:1259 -msgid "the hue tone which should be given precedence over other hue tones" -msgstr "ton odtenka, ki naj bi imel prednost pred drugimi toni" - -#: ../src/iop/colorreconstruction.c:1261 ../src/iop/demosaic.c:1277 -#: ../src/iop/highlights.c:1168 -msgid "not applicable" -msgstr "ni na voljo" - -#: ../src/iop/colorreconstruction.c:1262 -msgid "no highlights reconstruction for monochrome images" -msgstr "ni metode rekonstrukcije bleščav za enobarvne slike" - -#: ../src/iop/colortransfer.c:103 -msgid "color transfer" -msgstr "prenos barv" - -#: ../src/iop/colortransfer.c:118 -msgid "this module is deprecated. better use color mapping module instead." -msgstr "ta modul je zastarel. raje uporabite modul za preslikavo barv." - -#: ../src/iop/colortransfer.c:439 -msgid "" -"this module will be removed in the future\n" -"and is only here so you can switch it off\n" -"and move to the new color mapping module." -msgstr "" -"ta modul bo v bodoče odstranjen\n" -"je samo tu in ga lahko onemogočite\n" -"in preselite v novi modul preslikave barv." - -#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2332 -msgid "color zones" -msgstr "barvne cone" - -#: ../src/iop/colorzones.c:144 -msgid "selectively shift hues, chroma and lightness of pixels" -msgstr "selektivno premikaj odtenke, kromo in sijavost pikslov" - -#: ../src/iop/colorzones.c:606 -msgid "B&W: with red" -msgstr "ČB: z rdečo" - -#: ../src/iop/colorzones.c:629 -msgid "B&W: with skin tones" -msgstr "ČB: s kožnimi toni" - -#: ../src/iop/colorzones.c:652 -msgid "polarizing filter" -msgstr "polarizacijski filter" - -#: ../src/iop/colorzones.c:673 -msgid "natural skin tones" -msgstr "toni naravne kože" - -#: ../src/iop/colorzones.c:704 -msgid "B&W: film" -msgstr "ČB: film" - -#: ../src/iop/colorzones.c:724 -msgid "HSL base setting" -msgstr "nastavitve baze HSL" - -#: ../src/iop/colorzones.c:2264 -msgid "orange" -msgstr "oranžna" - -#: ../src/iop/colorzones.c:2421 ../src/iop/rgbcurve.c:1375 -msgid "" -"create a curve based on an area from the image\n" -"drag to create a flat curve\n" -"ctrl+drag to create a positive curve\n" -"shift+drag to create a negative curve" -msgstr "" -"ustvari krivuljo glede na določeno površino slike\n" -"kliknite za tvorbo ravne krivulje\n" -"krmilka+klik za tvorbo pozitivne krivulje\n" -"dvigalka+klik za tvorbo negativne krivulje" - -#: ../src/iop/colorzones.c:2425 ../src/iop/rgbcurve.c:1379 -msgid "create curve" -msgstr "ustvari krivuljo" - -#. edit by area -#: ../src/iop/colorzones.c:2442 -msgid "edit by area" -msgstr "uredi po površini" - -#: ../src/iop/colorzones.c:2447 -msgid "edit the curve nodes by area" -msgstr "uredi vozle krivulje po površini" - -#: ../src/iop/colorzones.c:2454 -msgid "display selection" -msgstr "prikaži izbor" - -#: ../src/iop/colorzones.c:2463 -msgid "choose selection criterion, will be the abscissa in the graph" -msgstr "izberite kriterij izbire, v grafu bo abscisa" - -#: ../src/iop/colorzones.c:2466 -msgid "choose between a smoother or stronger effect" -msgstr "izberite med bolj gladkim ali močnejšim učinkom" - -#: ../src/iop/colorzones.c:2494 ../src/iop/rgbcurve.c:1410 -#: ../src/iop/tonecurve.c:1172 -msgid "interpolation method" -msgstr "metoda interpolacije" - -#: ../src/iop/colorzones.c:2496 ../src/iop/rgbcurve.c:1412 -#: ../src/iop/tonecurve.c:1174 -msgid "centripetal spline" -msgstr "centripetalni zlepek" - -#: ../src/iop/colorzones.c:2497 ../src/iop/rgbcurve.c:1413 -#: ../src/iop/tonecurve.c:1175 -msgid "monotonic spline" -msgstr "monotoni zlepek" - -#: ../src/iop/colorzones.c:2500 ../src/iop/rgbcurve.c:1416 -#: ../src/iop/tonecurve.c:1177 -msgid "" -"change this method if you see oscillations or cusps in the curve\n" -"- cubic spline is better to produce smooth curves but oscillates when nodes " -"are too close\n" -"- centripetal is better to avoids cusps and oscillations with close nodes " -"but is less smooth\n" -"- monotonic is better for accuracy of pure analytical functions (log, gamma, " -"exp)" -msgstr "" -"zamenjajte to metodo, če opazite oscilacije ali zobate krivulje\n" -"- kubični zlepek naredi bolj gladko krivuljo, a oscilira, če so točke " -"preblizu\n" -"- centripetalni zlepek je boljši za izogibanje oscilacij, a je manj gladek\n" -"- monotoni je boljši za natančnost pri čisto analitično določenih funkcijah " -"(log, gama, exp)" - -#: ../src/iop/crop.c:132 -msgid "crop" -msgstr "obreži" - -#: ../src/iop/crop.c:137 -msgid "reframe|distortion" -msgstr "ponovno okvirjenje|popačenje" - -#: ../src/iop/crop.c:143 -msgid "change the framing" -msgstr "spremeni okvir" - -#: ../src/iop/crop.c:1667 -msgid "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag" -msgstr "" -"<b>spremeni velikost</b>: poteg, <b>ohrani proporce</b>: dvigalka+poteg" - -#: ../src/iop/crop.c:1676 -msgid "" -"<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" -"b>: ctrl+drag" -msgstr "" -"<b>premakni</b>: poteg, <b>premakni navpično</b>: dvigalka+poteg, " -"<b>premakni vodoravno</b>: krmilka+poteg" - -#: ../src/iop/defringe.c:71 -msgid "defringe" -msgstr "odstrani barvne napake robov" - -#: ../src/iop/defringe.c:81 -msgid "attenuate chromatic aberration by desaturating edges" -msgstr "oslabi barvni odklon z zmanjšanjem nasičenosti robov" - -#: ../src/iop/defringe.c:101 -msgid "" -"this module is deprecated. please use the chromatic aberration module " -"instead." -msgstr "" -"ta modul je zastarel. namesto tega raje uporabite modul za kromatsko " -"aberacijo." - -#: ../src/iop/defringe.c:415 -msgid "" -"method for color protection:\n" -" - global average: fast, might show slightly wrong previews in high " -"magnification; might sometimes protect saturation too much or too low in " -"comparison to local average\n" -" - local average: slower, might protect saturation better than global " -"average by using near pixels as color reference, so it can still allow for " -"more desaturation where required\n" -" - static: fast, only uses the threshold as a static limit" -msgstr "" -"metoda za zavarovanja barv:\n" -"- globalno povprečje: hitro, lahko prikaže rahlo napačne predoglede pri " -"velikih povečavah;lahko včasih preveč zavaruje nasičenost preveč ali premalo " -"glede na globalno povprečje\n" -"- lokalno povprečje: počasnejše, lahko zavaruje nasičenost bolje kot " -"globalno povprečje,\n" -"ker uporablja bližnje piksle kot reference za barve in tako dovoljuje še " -"zmanjšanje\n" -"nasičenosti, kjer je potrebno\n" -"- statično: hitro, uporablja samo prag kot statično omejitev" - -#: ../src/iop/defringe.c:422 -msgid "radius for detecting fringe" -msgstr "polmer zaznavanja barvnih napak robov" - -#: ../src/iop/defringe.c:425 -msgid "threshold for defringe, higher values mean less defringing" -msgstr "" -"prag za odstranitev barvnih napak robov, višje vrednosti pomenijo manj " -"odstranjevanja napak" - -#: ../src/iop/demosaic.c:287 -msgid "demosaic" -msgstr "odstrani mozaičnost" - -#: ../src/iop/demosaic.c:292 -msgid "reconstruct full RGB pixels from a sensor color filter array reading" -msgstr "" -"rekonstruiraj polne RGB slikovne pike iz odčitavanja polja senzorjev barvnih " -"filtrov" - -#: ../src/iop/demosaic.c:1086 -#, c-format -msgid "`%s' color matrix not found for 4bayer image!" -msgstr "matrike barv `%s' ne najdem za sliko 4bayer!" - -#: ../src/iop/demosaic.c:1238 -msgid "" -"Bayer sensor demosaicing method, PPG and RCD are fast, AMaZE and LMMSE are " -"slow.\n" -"LMMSE is suited best for high ISO images.\n" -"dual demosaicers double processing time." -msgstr "" -"Bayerjeva metoda odstranjevanje mozaičnosti senzorja, PPG in RCD sta hitra, " -"AMaZE in LMMSE pa počasna.\n" -"LMMSE se najbolj obnese pri slikah z visokim ISO.\n" -"dvojni odstranjevalci mozaičnosti podvojijo čas obdelave." - -#: ../src/iop/demosaic.c:1242 -msgid "" -"X-Trans sensor demosaicing method, Markesteijn 3-pass and frequency domain " -"chroma are slow.\n" -"dual demosaicers double processing time." -msgstr "" -"metoda X-Trans odstranjevanja mozaičnosti senzorja, Markesteijn s 3 prehodi " -"in frekvenčna domena krome so počasni.\n" -"dvojni odstranjevalci mozaičnosti dvojni čas obdelave." - -#: ../src/iop/demosaic.c:1248 -msgid "Bayer4 sensor demosaicing methods." -msgstr "metode za odstr. mozaičnosti senzorja Bayer4" - -#: ../src/iop/demosaic.c:1252 -msgid "" -"threshold for edge-aware median.\n" -"set to 0.0 to switch off\n" -"set to 1.0 to ignore edges" -msgstr "" -"prag za mediano roba.\n" -"nastavite na 0.0 za izklop.\n" -"nastavite na 1.0 za prezrtje robov" - -#: ../src/iop/demosaic.c:1257 -msgid "" -"contrast threshold for dual demosaic.\n" -"set to 0.0 for high frequency content\n" -"set to 1.0 for flat content\n" -"toggle to visualize the mask" -msgstr "" -"prag kontrasta za dvojno odstranjevanje mozaičnosti.\n" -"nastavi na 0.0 za visoko frekvenčni kontekst.\n" -"nastavi na 1.0 za plosko vsebino\n" -"preklopi za vizualizacijo maske" - -#: ../src/iop/demosaic.c:1265 -msgid "" -"LMMSE refinement steps. the median steps average the output,\n" -"refine adds some recalculation of red & blue channels" -msgstr "" -"koraki izboljšave LMMSE, koraki mediane k povprečju izhoda,\n" -"izboljšave dodajo nekaj ponovnih izračunov na rdečih in modrih kanalih" - -#: ../src/iop/demosaic.c:1268 -msgid "how many color smoothing median steps after demosaicing" -msgstr "koliko korakov mediane barvnega glajenja po odstranjevanju mozaičnosti" - -#: ../src/iop/demosaic.c:1271 -msgid "green channels matching method" -msgstr "metoda usklajevanja z zelenimi kanali" - -#: ../src/iop/demosaic.c:1278 -msgid "demosaicing is only used for color raw images" -msgstr "odstranjevanje mozaičnosti se uporablja samo za surove slike" - -#: ../src/iop/denoiseprofile.c:714 -msgid "wavelets: chroma only" -msgstr "valovčki: samo kroma" - -#: ../src/iop/denoiseprofile.c:720 -msgid "denoise (profiled)" -msgstr "odstranjevanje šuma (profilirano)" - -#: ../src/iop/denoiseprofile.c:726 -msgid "denoise using noise statistics profiled on sensors" -msgstr "odstrani šum z uporabo statistike šuma profilirane na senzorjih" - -#: ../src/iop/denoiseprofile.c:2846 -#, c-format -msgid "found match for ISO %d" -msgstr "najdeno za ISO %d" - -#: ../src/iop/denoiseprofile.c:2855 -#, c-format -msgid "interpolated from ISO %d and %d" -msgstr "interpolirano med ISO %d in %d" - -#: ../src/iop/denoiseprofile.c:3719 -msgid "Y0" -msgstr "Y0" - -#: ../src/iop/denoiseprofile.c:3720 -msgid "U0V0" -msgstr "U0V0" - -#: ../src/iop/denoiseprofile.c:3760 -msgid "" -"use only with a perfectly\n" -"uniform image if you want to\n" -"estimate the noise variance." -msgstr "" -"uporabite samo na perfektno\n" -"enakomerni sliki, če želite\n" -"oceniti varianco šuma." - -#: ../src/iop/denoiseprofile.c:3766 -msgid "variance red: " -msgstr "varianca rdeče: " - -#: ../src/iop/denoiseprofile.c:3770 -msgid "variance computed on the red channel" -msgstr "varianca izračunana na rdečem kanalu" - -#: ../src/iop/denoiseprofile.c:3775 -msgid "variance green: " -msgstr "varianca zelene: " - -#: ../src/iop/denoiseprofile.c:3779 -msgid "variance computed on the green channel" -msgstr "varianca izračunana na zelenem kanalu" - -#: ../src/iop/denoiseprofile.c:3784 -msgid "variance blue: " -msgstr "varianca modre: " - -#: ../src/iop/denoiseprofile.c:3788 -msgid "variance computed on the blue channel" -msgstr "varianca izračunana na modrem kanalu" - -#: ../src/iop/denoiseprofile.c:3799 ../src/libs/export.c:1208 -#: ../src/libs/print_settings.c:2418 ../src/libs/print_settings.c:2774 -msgid "profile" -msgstr "profil" - -#: ../src/iop/denoiseprofile.c:3833 -msgid "" -"adapt denoising according to the\n" -"white balance coefficients.\n" -"should be enabled on a first instance\n" -"for better denoising.\n" -"should be disabled if an earlier instance\n" -"has been used with a color blending mode." -msgstr "" -"prilagodi odstranjevanje šuma glede\n" -"na koeficiente uravnoteženja beline.\n" -"naj bi bilo omogočeno pri prvi obdelavi \n" -"za boljše odstranjevanje šuma.\n" -"naj bi bilo onemogočeno, če je je že prejšnja obdelava\n" -"bila uporabljena v načinu mešanja barv." - -#: ../src/iop/denoiseprofile.c:3840 -msgid "" -"fix bugs in Anscombe transform resulting\n" -"in undersmoothing of the green channel in\n" -"wavelets mode, combined with a bad handling\n" -"of white balance coefficients, and a bug in\n" -"non-local means normalization resulting in\n" -"undersmoothing when patch size was increased.\n" -"enabling this option will change the denoising\n" -"you get. once enabled, you won't be able to\n" -"return back to old algorithm." -msgstr "" -"popravi napake v Anscombovi transformaciji in posledično\n" -"premalo zglajen zeleni kanal v\n" -"načinu valovčkov, v kombinaciji s slabo obdelavo\n" -"koeficientov uravnoteženja beline, in napako pri\n" -"ne lokalni normalizaciji in posledično\n" -"premalo glajenja, kadar je povečana velikost krpe.\n" -"omogočanje te opcije bo spremenilo odstranjevanje šuma.\n" -"ko omogočite to opcijo, ne boste več mogli uporabiti\n" -"starega algoritma." - -#: ../src/iop/denoiseprofile.c:3850 -msgid "profile used for variance stabilization" -msgstr "profil uporabljen za stabilizacijo variance" - -#: ../src/iop/denoiseprofile.c:3852 -msgid "" -"method used in the denoising core.\n" -"non-local means works best for `lightness' blending,\n" -"wavelets work best for `color' blending" -msgstr "" -"metoda uporabljena v jedru odstranjevanja šuma.\n" -"ne-lokalna povprečja je najbolje uporabiti za mešanje svetlosti,\n" -"valovčki delujejo najbolje pri mešanju barv" - -#: ../src/iop/denoiseprofile.c:3856 -msgid "" -"color representation used within the algorithm.\n" -"RGB keeps the RGB channels separated,\n" -"while Y0U0V0 combine the channels to\n" -"denoise chroma and luma separately." -msgstr "" -"predstavitev barv, uporabljena v algoritmu.\n" -"RGB vodi ločene kanale RGB,\n" -"medtem ko Y0U0V0 združuje kanale da\n" -"ločeno označuje kromo in lume." - -#: ../src/iop/denoiseprofile.c:3861 -msgid "" -"radius of the patches to match.\n" -"increase for more sharpness on strong edges, and better denoising of smooth " -"areas.\n" -"if details are oversmoothed, reduce this value or increase the central pixel " -"weight slider." -msgstr "" -"radij ustreznih krp.\n" -"povečani radij naredi več ostrine na močnih robovih in boljše odstranjevanje " -"šuma na gladkih površinah.\n" -"če so podrobnosti preveč zglajene, zmanjšajte to vrednost ali povečajte " -"drsnik teže centralne točke." - -#: ../src/iop/denoiseprofile.c:3867 -msgid "" -"emergency use only: radius of the neighborhood to search patches in. " -"increase for better denoising performance, but watch the long runtimes! " -"large radii can be very slow. you have been warned" -msgstr "" -"uporaba le v skrajni sili: radij okolice za iskanje krp. povečanje nudi " -"boljše odstranjevanje šuma, a bodite pozorni na dolge čase izvajanja! velik " -"radij utegne delovati zelo počasi. bili ste opozorjeni" - -#: ../src/iop/denoiseprofile.c:3873 -msgid "" -"scattering of the neighborhood to search patches in.\n" -"increase for better coarse-grain noise reduction.\n" -"does not affect execution time." -msgstr "" -"raztros soseske za iskanje krp.\n" -"povečajte za zmanjšanje šuma zaradi velike zrnatosti.\n" -"ne vpliva na čas izvajanja." - -#: ../src/iop/denoiseprofile.c:3877 -msgid "" -"increase the weight of the central pixel\n" -"of the patch in the patch comparison.\n" -"useful to recover details when patch size\n" -"is quite big." -msgstr "" -"povečaj težo osrednjega piksla\n" -"krpe pri primerjavi krp.\n" -"uporabno za obnovo podrobnosti, kadar je velikost krp razmeroma velika." - -#: ../src/iop/denoiseprofile.c:3881 -msgid "finetune denoising strength" -msgstr "natančno nastavljena moč odstranjevanja šumov" - -#: ../src/iop/denoiseprofile.c:3883 -msgid "" -"controls the way parameters are autoset\n" -"increase if shadows are not denoised enough\n" -"or if chroma noise remains.\n" -"this can happen if your picture is underexposed." -msgstr "" -"upravlja, kako so avtomatsko postavljeni parametri\n" -"jih poveča, če v sencah niso dovolj odpravljeni šumi\n" -"ali če ostane šum krome.\n" -"to se lahko zgodi, če je slika premalo osvetljena." - -#: ../src/iop/denoiseprofile.c:3888 -msgid "" -"finetune shadows denoising.\n" -"decrease to denoise more aggressively\n" -"dark areas of the image." -msgstr "" -"natančno nastavi odstranjevanje šumov v sencah.\n" -"zmanjšanje bolj agresivno odstranjuje\n" -"šum v temnih delih slike." - -#: ../src/iop/denoiseprofile.c:3892 -msgid "" -"correct color cast in shadows.\n" -"decrease if shadows are too purple.\n" -"increase if shadows are too green." -msgstr "" -"popravi barvni pridih v sencah.\n" -"zmanjša, če so sence preveč rožnate.\n" -"poveča, če so sence preveč zelene." - -#: ../src/iop/denoiseprofile.c:3896 -msgid "" -"upgrade the variance stabilizing algorithm.\n" -"new algorithm extends the current one.\n" -"it is more flexible but could give small\n" -"differences in the images already processed." -msgstr "" -"nadgradi algoritem stabiliziranja variance.\n" -"novi algoritem je razširitev trenutnega.\n" -"je bolj prilagodljiv, a ima lahko da za malenkost\n" -"drugačen rezultat od že obdelanih slik." - -#: ../src/iop/diffuse.c:129 -msgid "diffuse or sharpen" -msgstr "difuzija ali ostrenje" - -#: ../src/iop/diffuse.c:134 -msgid "diffusion|deconvolution|blur|sharpening" -msgstr "difuzija|dekonvolucija|zamegljevanje|ostrenje" - -#: ../src/iop/diffuse.c:141 -msgid "" -"simulate directional diffusion of light with heat transfer model\n" -"to apply an iterative edge-oriented blur,\n" -"inpaint damaged parts of the image, or to remove blur with blind " -"deconvolution." -msgstr "" -"simuliraj usmerjeno difuzijo svetlobe z modelom prenosa toplote\n" -"z uporabo iterativnih usmerjenih zameglitev v robove,\n" -"pobarvaj poškodovane dele slike ali za odstrani zamegljenosti s slepo " -"dekonvolucijo." - -#. deblurring presets -#: ../src/iop/diffuse.c:219 -msgid "lens deblur: soft" -msgstr "odstranjevanje zamegljenosti objektiva: mehko" - -#: ../src/iop/diffuse.c:244 -msgid "lens deblur: medium" -msgstr "odstranjevanje zamegljenosti objektiva: srednje" - -#: ../src/iop/diffuse.c:269 -msgid "lens deblur: hard" -msgstr "odstranjevanje zamegljenosti objektiva: močno" - -#: ../src/iop/diffuse.c:295 -msgid "dehaze" -msgstr "odstranjevanje meglice" - -#: ../src/iop/diffuse.c:321 -msgid "denoise: fine" -msgstr "odstranjevanje šuma: fino" - -#: ../src/iop/diffuse.c:346 -msgid "denoise: medium" -msgstr "odstranjevanje šuma: srednje" - -#: ../src/iop/diffuse.c:371 -msgid "denoise: coarse" -msgstr "odstranjevanje šuma: grobo" - -#: ../src/iop/diffuse.c:446 -msgid "sharpen demosaicing: no AA filter" -msgstr "naostri odstranjevanje mozaičnosti: brez filtra AA" - -#: ../src/iop/diffuse.c:472 -msgid "sharpen demosaicing: AA filter" -msgstr "naostri odstranjevanje mozaičnosti: filter AA" - -#: ../src/iop/diffuse.c:499 -msgid "simulate watercolor" -msgstr "simuliraj vodene barvice" - -#: ../src/iop/diffuse.c:524 -msgid "simulate line drawing" -msgstr "simuliraj risanje črt" - -#: ../src/iop/diffuse.c:576 -msgid "inpaint highlights" -msgstr "obarvaj bleščave" - -#. fast presets for slow hardware -#: ../src/iop/diffuse.c:603 -msgid "sharpness: fast" -msgstr "ostrina: hitro" - -#: ../src/iop/diffuse.c:655 -msgid "sharpness: strong" -msgstr "ostrina: močno" - -#: ../src/iop/diffuse.c:680 -msgid "local contrast: fast" -msgstr "lokalni kontrast: hitro" - -#: ../src/iop/diffuse.c:1391 ../src/iop/diffuse.c:1666 -msgid "diffuse/sharpen failed to allocate memory, check your RAM settings" -msgstr "" -"zmehčaj/naostri ni uspel pridobiti dovolj pomnilnika, preverite nastavitve " -"za RAM" - -#. Additional parameters -#. Camera settings -#: ../src/iop/diffuse.c:1782 ../src/iop/splittoning.c:537 -#: ../src/libs/camera.c:486 -msgctxt "section" -msgid "properties" -msgstr "lastnosti" - -#: ../src/iop/diffuse.c:1788 -msgid "" -"more iterations make the effect stronger but the module slower.\n" -"this is analogous to giving more time to the diffusion reaction.\n" -"if you plan on sharpening or inpainting, \n" -"more iterations help reconstruction." -msgstr "" -"več iteracij povzroči močnejši učinek a modul je počasnejši.\n" -"to je analogno podaljševanju časa difuzijske reakcije.\n" -"če planirate ostrenje ali popravke barve\n" -"več iteracij pomaga pri obnovi." - -#: ../src/iop/diffuse.c:1797 -msgid "" -"main scale of the diffusion.\n" -"zero makes diffusion act on the finest details more heavily.\n" -"non-zero defines the size of the details to diffuse heavily.\n" -"for deblurring and denoising, set to zero.\n" -"increase to act on local contrast instead." -msgstr "" -"glavna mera difuzije.\n" -"nič povzroči močnejše delovanje difuzije na najmanjše podrobnosti.\n" -"ne nič določa velikost podrobnosti, ki se močno razpršijo.\n" -"za odpravljanje zamegljenosti in šumov nastavite na nič.\n" -"povečanje namesto tega deluje na lokalni kontrast." - -#: ../src/iop/diffuse.c:1807 -msgid "" -"width of the diffusion around the central radius.\n" -"high values diffuse on a large band of radii.\n" -"low values diffuse closer to the central radius.\n" -"if you plan on deblurring, \n" -"the radius should be around the width of your lens blur." -msgstr "" -"širina difuzije okoli sredinskega polmera.\n" -"visoke vrednosti se razpršijo na velikem pasu polmerov.\n" -"nizke vrednosti se razpršijo bližje središča kroga.\n" -"če nameravate odstraniti zameglitev,\n" -"mora biti polmer okoli širine vašega zamegljenost objektiva." - -#: ../src/iop/diffuse.c:1814 -msgctxt "section" -msgid "speed (sharpen ↔ diffuse)" -msgstr "hitrost (naostri ↔ razprši)" - -#: ../src/iop/diffuse.c:1821 -msgid "" -"diffusion speed of low-frequency wavelet layers\n" -"in the direction of 1st order anisotropy (set below).\n" -"\n" -"negative values sharpen, \n" -"positive values diffuse and blur, \n" -"zero does nothing." -msgstr "" -"difuzijska hitrost nizkofrekvenčnih valovnih plasti\n" -"v smeri anizotropije 1. reda (nastavljeno spodaj).\n" -"\n" -"negativne vrednosti ostrijo,\n" -"pozitivne vrednosti razpršijo in zameglijo,\n" -"zero ne naredi ničesar." - -#: ../src/iop/diffuse.c:1831 -msgid "" -"diffusion speed of low-frequency wavelet layers\n" -"in the direction of 2nd order anisotropy (set below).\n" -"\n" -"negative values sharpen, \n" -"positive values diffuse and blur, \n" -"zero does nothing." -msgstr "" -"difuzijska hitrost nizkofrekvenčnih valovnih plasti\n" -"v smeri anizotropije 2. reda (nastavljeno spodaj).\n" -"\n" -"negativne vrednosti ostrijo,\n" -"pozitivne vrednosti razpršijo in zameglijo,\n" -"zero ne naredi ničesar." - -#: ../src/iop/diffuse.c:1841 -msgid "" -"diffusion speed of high-frequency wavelet layers\n" -"in the direction of 3rd order anisotropy (set below).\n" -"\n" -"negative values sharpen, \n" -"positive values diffuse and blur, \n" -"zero does nothing." -msgstr "" -"difuzijska hitrost nizkofrekvenčnih valovnih plasti\n" -"v smeri anizotropije 3. reda (nastavljeno spodaj).\n" -"\n" -"negativne vrednosti ostrijo,\n" -"pozitivne vrednosti razpršijo in zameglijo,\n" -"zero ne naredi ničesar." - -#: ../src/iop/diffuse.c:1851 -msgid "" -"diffusion speed of high-frequency wavelet layers\n" -"in the direction of 4th order anisotropy (set below).\n" -"\n" -"negative values sharpen, \n" -"positive values diffuse and blur, \n" -"zero does nothing." -msgstr "" -"difuzijska hitrost nizkofrekvenčnih valovnih plasti\n" -"v smeri anizotropije 4. reda (nastavljeno spodaj).\n" -"\n" -"negativne vrednosti ostrijo,\n" -"pozitivne vrednosti razpršijo in zameglijo,\n" -"zero ne naredi ničesar." - -#: ../src/iop/diffuse.c:1857 -msgctxt "section" -msgid "direction" -msgstr "smer" - -#: ../src/iop/diffuse.c:1864 -msgid "" -"direction of 1st order speed (set above).\n" -"\n" -"negative values follow gradients more closely, \n" -"positive values rather avoid edges (isophotes), \n" -"zero affects both equally (isotropic)." -msgstr "" -"smer hitrosti 1. reda (nastavljena zgoraj).\n" -"\n" -"negativne vrednosti natančneje sledijo gradientom,\n" -"pozitivne vrednosti raje se izogibajo robom (izofote),\n" -"nič vpliva na oba enako (izotropno)." - -#: ../src/iop/diffuse.c:1873 -msgid "" -"direction of 2nd order speed (set above).\n" -"\n" -"negative values follow gradients more closely, \n" -"positive values rather avoid edges (isophotes), \n" -"zero affects both equally (isotropic)." -msgstr "" -"smer hitrosti 2. reda (nastavljena zgoraj).\n" -"\n" -"negativne vrednosti natančneje sledijo gradientom,\n" -"pozitivne vrednosti raje se izogibajo robom (izofote),\n" -"nič vpliva na oba enako (izotropno)." - -#: ../src/iop/diffuse.c:1882 -msgid "" -"direction of 3rd order speed (set above).\n" -"\n" -"negative values follow gradients more closely, \n" -"positive values rather avoid edges (isophotes), \n" -"zero affects both equally (isotropic)." -msgstr "" -"smer hitrosti 3. reda (nastavljena zgoraj).\n" -"\n" -"negativne vrednosti natančneje sledijo gradientom,\n" -"pozitivne vrednosti raje se izogibajo robom (izofote),\n" -"nič vpliva na oba enako (izotropno)." - -#: ../src/iop/diffuse.c:1891 -msgid "" -"direction of 4th order speed (set above).\n" -"\n" -"negative values follow gradients more closely, \n" -"positive values rather avoid edges (isophotes), \n" -"zero affects both equally (isotropic)." -msgstr "" -"smer hitrosti 4. reda (nastavljena zgoraj).\n" -"\n" -"negativne vrednosti natančneje sledijo gradientom,\n" -"pozitivne vrednosti raje se izogibajo robom (izofote),\n" -"nič vpliva na oba enako (izotropno)." - -#: ../src/iop/diffuse.c:1897 -msgctxt "section" -msgid "edge management" -msgstr "upravljanje robov" - -#: ../src/iop/diffuse.c:1904 -msgid "" -"increase or decrease the sharpness of the highest frequencies.\n" -"can be used to keep details after blooming,\n" -"for standalone sharpening set speed to negative values." -msgstr "" -"povečaj ali zmanjšaj ostrino najvišjih frekvenc.\n" -"se lahko uporablja za vodenje podrobnosti po cvetenju,\n" -"za samostojno ostrenje nastavi hitrost na negativne vrednosti." - -#: ../src/iop/diffuse.c:1911 -msgid "" -"define the sensitivity of the variance penalty for edges.\n" -"increase to exclude more edges from diffusion,\n" -"if fringes or halos appear." -msgstr "" -"definira občutljivost kazni variance za robove.\n" -"povečajte, da izključite več robov iz difuzije,\n" -"če se pojavijo resice ali haloji." - -#: ../src/iop/diffuse.c:1918 -msgid "" -"define the variance threshold between edge amplification and penalty.\n" -"decrease if you want pixels on smooth surfaces get a boost,\n" -"increase if you see noise appear on smooth surfaces or\n" -"if dark areas seem oversharpened compared to bright areas." -msgstr "" -"določi prag variance med ojačanjem roba in kaznimi.\n" -"zmanjšajte, če želite, da se slikovne pike na gladkih površinah povečajo,\n" -"povečajte, če opazite šum na gladkih površinah ali\n" -"če se zdijo temna področja preostrena v primerjavi s svetlimi področji." - -#: ../src/iop/diffuse.c:1924 -msgctxt "section" -msgid "diffusion spatiality" -msgstr "prostorskost difuzije" - -#: ../src/iop/diffuse.c:1931 -msgid "" -"luminance threshold for the mask.\n" -"0. disables the luminance masking and applies the module on the whole " -"image.\n" -"any higher value excludes pixels with luminance lower than the threshold.\n" -"this can be used to inpaint highlights." -msgstr "" -"prag svetlosti maske.\n" -"0 onemogoči maskiranje svetlosti in uveljavlja modul na celotni sliki.\n" -"katerakoli višja vrednost od 0 izloči piksle s svetlostjo nižjo od praga.\n" -"to lahko uporabimo za barvanje bleščav." - -#: ../src/iop/dither.c:107 -msgid "dither or posterize" -msgstr "stresaj ali posteriziraj" - -#: ../src/iop/dither.c:112 -msgid "dithering|posterization|reduce bit-depth" -msgstr "stresanje | posteriziranje | reduciraj bitno globino" - -#: ../src/iop/dither.c:117 -msgid "" -"reduce banding and posterization effects in output\n" -"JPEGs by adding random noise, or reduce bit depth" -msgstr "" -"zmanjšaj učinke pasov in učinkov posterizacije v izhodnih\n" -"JPEG-jih z dodajanjem naključnega šuma ali redukcijo bitne globine" - -#: ../src/iop/dither.c:119 -msgid "corrective, artistic" -msgstr "korekcijski, umetniški" - -#. add the preset. -#: ../src/iop/dither.c:147 -msgid "dither" -msgstr "stresaj" - -#: ../src/iop/dither.c:759 -msgid "radius for blurring step" -msgstr "polmer koraka zamegljevanja" - -#: ../src/iop/dither.c:771 -msgid "the gradient range where to apply random dither" -msgstr "obseg gradienta, kjer naj uporabim stresanje" - -#: ../src/iop/dither.c:772 -msgid "gradient range" -msgstr "obseg gradienta" - -#: ../src/iop/dither.c:780 -msgid "damping level of random dither" -msgstr "raven slučajnega stresanja" - -#: ../src/iop/equalizer.c:89 -msgid "legacy equalizer" -msgstr "izenačevalnik iz zapuščine" - -#: ../src/iop/equalizer.c:110 -msgid "" -"this module is deprecated. better use contrast equalizer module instead." -msgstr "" -"ta modul je zastarel. namesto njega raje uporabite modul izenačevalnika " -"kontrasta." - -#: ../src/iop/equalizer.c:238 -msgid "" -"this module will be removed in the future\n" -"and is only here so you can switch it off\n" -"and move to the new equalizer." -msgstr "" -"ta modul bo v bodoče odstranjen\n" -"in je tu samo zato, da ga lahko izklopite\n" -"in uporabite drugi izenačevalnik." - -#: ../src/iop/exposure.c:129 -msgid "" -"redo the exposure of the shot as if you were still in-camera\n" -"using a color-safe brightening similar to increasing ISO setting" -msgstr "" -"ponovite osvetlitev posnetka, kot da ste še vedno v kameri\n" -"z uporabo barvno varne osvetlitve, podobno kot pri naraščajoči nastavitvi ISO" - -#: ../src/iop/exposure.c:279 -msgid "magic lantern defaults" -msgstr "privzete vrednosti magične lanterne" - -#: ../src/iop/exposure.c:351 ../src/iop/rawoverexposed.c:135 -#: ../src/iop/rawoverexposed.c:254 -#, c-format -msgid "failed to get raw buffer from image `%s'" -msgstr "izpadlo pridobivanje predpomnilnika s slike %s'" - -#: ../src/iop/exposure.c:629 -#, no-c-format -msgid "compensate camera exposure (%+.1f EV)" -msgstr "izravnava osvetlitve fotoaparata (%+.1f EV)" - -#. Write report in GUI -#: ../src/iop/exposure.c:813 -#, c-format -msgid "L : \t%.1f %%" -msgstr "L : \t%.1f %%" - -#: ../src/iop/exposure.c:945 ../src/libs/history.c:953 -#, c-format -msgid "%.2f EV" -msgstr "%.2f EV" - -#: ../src/iop/exposure.c:1113 -msgid "" -"automatically remove the camera exposure bias\n" -"this is useful if you exposed the image to the right." -msgstr "" -"samodejno odstrani pristranskost osvetlitve fotoaparata\n" -"to je koristno, če ste sliko preosvetlili." - -#: ../src/iop/exposure.c:1132 -#, no-c-format -msgid "where in the histogram to meter for deflicking. E.g. 50% is median" -msgstr "" -"kje naj na histogramu merimo za odstranjevanje utripanja. npr. 50% je mediana" - -#: ../src/iop/exposure.c:1138 -msgid "" -"where to place the exposure level for processed pics, EV below overexposure." -msgstr "" -"kam postaviti raven osvetlitve za obdelane slike, EV pod nadosvetlitvijo." - -#: ../src/iop/exposure.c:1142 -msgid "computed EC: " -msgstr "izračunana EC: " - -#: ../src/iop/exposure.c:1145 -msgid "what exposure correction has actually been used" -msgstr "kateri popravek osvetlitve je bil dejansko uporabljen" - -#: ../src/iop/exposure.c:1164 -msgid "" -"adjust the black level to unclip negative RGB values.\n" -"you should never use it to add more density in blacks!\n" -"if poorly set, it will clip near-black colors out of gamut\n" -"by pushing RGB values into negatives." -msgstr "" -"prilagodi nivo črnine za popravek izreza negativnih vrednosti RGB.\n" -"nikoli ne smete uporabiti za dodajanje večje gostote črnin! če je\n" -"nivo določen slabo, bo izrezal skoraj črne odtenke izven barvnega\n" -"razpona, tako da bo porinil vrednosti RGB med negativne." - -#: ../src/iop/exposure.c:1174 -msgid "spot exposure mapping" -msgstr "preslikava osvetlitve točke" - -#: ../src/iop/exposure.c:1180 -msgid "" -"define a target brightness, in terms of exposure,\n" -"for a selected region of the image (the control sample),\n" -"which you then match against the same target brightness\n" -"in other images. the control sample can either\n" -"be a critical part of your subject or a non-moving and\n" -"consistently-lit surface over your series of images." -msgstr "" -"določi ciljno svetlost glede na osvetlitev\n" -"za izbrano območje slike (kontrolni vzorec),\n" -"ki se nato ujema z istim ciljem svetlosti na\n" -"drugih slikah. kontrolni vzorec je lahko\n" -"bodisi kritični del vašega predmeta ali nepremična\n" -"in dosledno osvetljena površina vaše serije slik." - -#: ../src/iop/exposure.c:1189 -msgid "" -"\"correction\" automatically adjust exposure\n" -"such that the input lightness is mapped to the target.\n" -"\"measure\" simply shows how an input color is mapped by\n" -"the exposure compensation and can be used to define a target." -msgstr "" -"\"popravek\" samodejno prilagodi osvetljenost\n" -"tako, da je vhodna svetlost preslikana na cilj.\n" -"\"merilo\" preprosto prikazuje, kako je vhodna barva preslikana\n" -"z nadomestno prilagoditvijo in jo je mogoče uporabiti za določitev cilja." - -#: ../src/iop/exposure.c:1215 -msgid "L : \tN/A" -msgstr "L : \tN/A" - -#: ../src/iop/exposure.c:1233 -msgid "the desired target exposure after mapping" -msgstr "želena ciljna osvetljenost po preslikavi" - -#: ../src/iop/filmic.c:177 -msgid "this module is deprecated. better use filmic rgb module instead." -msgstr "ta modul je zastarel. raje uporabite filmski modul rgb." - -#: ../src/iop/filmic.c:304 -msgid "09 EV (low-key)" -msgstr "09 EV (temna)" - -#: ../src/iop/filmic.c:312 -msgid "10 EV (indoors)" -msgstr "10 EV (interier)" - -#: ../src/iop/filmic.c:320 -msgid "11 EV (dim outdoors)" -msgstr "11 EV (zamegljena zunanjost)" - -#: ../src/iop/filmic.c:328 -msgid "12 EV (outdoors)" -msgstr "12 EV (zunanjost)" - -#: ../src/iop/filmic.c:336 -msgid "13 EV (bright outdoors)" -msgstr "13 EV (svetla zunanjost)" - -#: ../src/iop/filmic.c:344 -msgid "14 EV (backlighting)" -msgstr "14 EV (osvetljenost od zadaj)" - -#: ../src/iop/filmic.c:352 -msgid "15 EV (sunset)" -msgstr "15 EV (sončni zahod)" - -#: ../src/iop/filmic.c:360 -msgid "16 EV (HDR)" -msgstr "16 EV (HDR)" - -#: ../src/iop/filmic.c:368 -msgid "18 EV (HDR++)" -msgstr "18 EV (HDR++)" - -#: ../src/iop/filmic.c:1480 -msgid "read-only graph, use the parameters below to set the nodes" -msgstr "" -"graf samo za branje, uporabi parametre spodaj za določanje vozlov grafa" - -#: ../src/iop/filmic.c:1484 -msgctxt "section" -msgid "logarithmic shaper" -msgstr "logaritemski oblikovalnik" - -#: ../src/iop/filmic.c:1492 -msgid "" -"adjust to match the average luminance of the subject.\n" -"except in back-lighting situations, this should be around 18%." -msgstr "" -"prilagodi, da ustreza povprečni svetlosti subjekta.\n" -"razen pri osvetlitvi od zadaj, bi moralo biti okrog 18%." - -#: ../src/iop/filmic.c:1504 ../src/iop/filmicrgb.c:4442 -msgid "" -"number of stops between middle gray and pure white.\n" -"this is a reading a lightmeter would give you on the scene.\n" -"adjust so highlights clipping is avoided" -msgstr "" -"število stopenj med srednje sivo in čisto belo.\n" -"to vrednost bi dal tudi svetlomer na sceni.\n" -"prilagodi tako, da se izognete obrezovanju bleščav" - -#: ../src/iop/filmic.c:1517 ../src/iop/filmicrgb.c:4453 -msgid "" -"number of stops between middle gray and pure black.\n" -"this is a reading a lightmeter would give you on the scene.\n" -"increase to get more contrast.\n" -"decrease to recover more details in low-lights." -msgstr "" -"število stopenj med srednje sivo in čisto črno.\n" -"to vrednost bi dal tudi svetlomer na sceni.\n" -"povečajte, če želite več kontrasta.\n" -"zmanjšajte za omogočanje več podrobnosti v slabo osvetljenih delih." - -#: ../src/iop/filmic.c:1529 -msgid "" -"enlarge or shrink the computed dynamic range.\n" -"useful in conjunction with \"auto tune levels\"." -msgstr "" -"povečajte ali zmanjšajte izračunan dinamični razpon.\n" -"uporabno v povezavi z \"avtomatskim prilagajanjem nivojev\"." - -#: ../src/iop/filmic.c:1535 ../src/iop/filmicrgb.c:4467 -#: ../src/iop/profile_gamma.c:659 -msgid "auto tune levels" -msgstr "nivoji avtomatske nastavitve" - -#: ../src/iop/filmic.c:1538 -msgid "" -"try to optimize the settings with some guessing.\n" -"this will fit the luminance range inside the histogram bounds.\n" -"works better for landscapes and evenly-lit pictures\n" -"but fails for high-keys and low-keys." -msgstr "" -"poskusi optimizirati nastavitve z malo ugibanja.\n" -"to bo prilagodilo interval svetlosti znotraj omejitev histograma.\n" -"deluje bolje za pokrajine in enakomerno osvetljene slike,\n" -"a ne deluje pri pretežno svetlih ali pretežno temnih motivih." - -#: ../src/iop/filmic.c:1543 -msgctxt "section" -msgid "filmic S curve" -msgstr "filmska S krivulja" - -#: ../src/iop/filmic.c:1550 ../src/iop/filmicrgb.c:4554 -msgid "" -"slope of the linear part of the curve\n" -"affects mostly the mid-tones" -msgstr "" -"naklon linearnega dela krivulje\n" -"ima vpliv predvsem na srednje tone" - -#. geotagging -#: ../src/iop/filmic.c:1557 ../src/iop/filmicrgb.c:4563 -#: ../src/libs/metadata_view.c:157 -msgid "latitude" -msgstr "zemljepisna širina" - -#: ../src/iop/filmic.c:1560 -msgid "" -"width of the linear domain in the middle of the curve.\n" -"increase to get more contrast at the extreme luminances.\n" -"this has no effect on mid-tones." -msgstr "" -"širina linearnega območja v sredini krivulje.\n" -"povečajte, če želite več kontrasta pri skrajnih svetlostih.\n" -"to nima vpliva na srednje tone." - -#: ../src/iop/filmic.c:1567 -msgid "shadows/highlights balance" -msgstr "uravnoteženost med senčnimi in svetlimi toni" - -#: ../src/iop/filmic.c:1570 ../src/iop/filmicrgb.c:4574 -msgid "" -"slides the latitude along the slope\n" -"to give more room to shadows or highlights.\n" -"use it if you need to protect the details\n" -"at one extremity of the histogram." -msgstr "" -"drsi širino po naklonu\n" -"daje več prostora za sence ali bleščave.\n" -"uporabite, če želite zagotoviti več podrobnosti\n" -"na enem od skrajnih delov histograma." - -#: ../src/iop/filmic.c:1580 -msgid "" -"desaturates the input of the module globally.\n" -"you need to set this value below 100%\n" -"if the chrominance preservation is enabled." -msgstr "" -"globalno zmanjša nasičenost na vhodu modula.\n" -"to vrednost morate postaviti pod 100%,\n" -"če želite ohraniti barvnost." - -#: ../src/iop/filmic.c:1590 -msgid "" -"desaturates the output of the module\n" -"specifically at extreme luminances.\n" -"decrease if shadows and/or highlights are over-saturated." -msgstr "" -"zmanjša nasičenost izhoda modula\n" -"posebej za skrajne svetlosti.\n" -"zmanjšajte, če so sence in/ali bleščave preveč nasičene." - -#. Add export intent combo -#: ../src/iop/filmic.c:1600 ../src/libs/export.c:1227 -#: ../src/libs/print_settings.c:2473 ../src/libs/print_settings.c:2820 -#: ../src/views/darkroom.c:2524 ../src/views/lighttable.c:1182 -msgid "intent" -msgstr "namen" - -#: ../src/iop/filmic.c:1601 -msgid "contrasted" -msgstr "kontrastno" - -#. cubic spline -#: ../src/iop/filmic.c:1602 -msgid "faded" -msgstr "obledelo" - -#. centripetal spline -#: ../src/iop/filmic.c:1603 ../src/iop/profile_gamma.c:621 -msgid "linear" -msgstr "linearno" - -#. monotonic spline -#: ../src/iop/filmic.c:1604 -msgid "optimized" -msgstr "optimirano" - -#: ../src/iop/filmic.c:1606 -msgid "change this method if you see reversed contrast or faded blacks" -msgstr "zamenjajte to metodo, če vidite obratne kontraste ali obledele črnine" - -#. Preserve color -#: ../src/iop/filmic.c:1610 -msgid "preserve the chrominance" -msgstr "ohrani barvnost" - -#: ../src/iop/filmic.c:1612 -msgid "" -"ensure the original color are preserved.\n" -"may reinforce chromatic aberrations.\n" -"you need to manually tune the saturation when using this mode." -msgstr "" -"zagotovi ohranjanje izvirnih barv.\n" -"lahko okrepi barvne aberacije objektiva.\n" -"kadar uporabite ta način, morate uporabiti ročno nastavitev nasičenosti." - -#: ../src/iop/filmic.c:1622 -msgctxt "section" -msgid "destination/display" -msgstr "cilj/prikaz" - -#: ../src/iop/filmic.c:1640 ../src/iop/filmicrgb.c:4593 -msgid "" -"luminance of output pure black, this should be 0%\n" -"except if you want a faded look" -msgstr "" -"svetlost izhoda čiste črne, bi morala biti 0%\n" -"razen če želite obledel videz" - -#: ../src/iop/filmic.c:1649 ../src/iop/filmicrgb.c:4600 -msgid "" -"middle gray value of the target display or color space.\n" -"you should never touch that unless you know what you are doing." -msgstr "" -"vrednost srednjih sivin ciljnega prikaza ali barvnega prostora.\n" -"ne dotikajte se tega, razen če res veste, kaj delate." - -#: ../src/iop/filmic.c:1658 ../src/iop/filmicrgb.c:4607 -msgid "" -"luminance of output pure white, this should be 100%\n" -"except if you want a faded look" -msgstr "" -"svetlost čiste bele, bi morala biti 100%,\n" -"razen če želite obledel videz" - -#: ../src/iop/filmic.c:1664 -msgid "target gamma" -msgstr "ciljna gama" - -#: ../src/iop/filmic.c:1666 -msgid "" -"power or gamma of the transfer function\n" -"of the display or color space.\n" -"you should never touch that unless you know what you are doing." -msgstr "" -"moč ali gama prenosne funkcije\n" -"zaslona ali barvnega prostora.\n" -"ne dotikajte se tega, razen če res veste kaj delate." - -#: ../src/iop/filmicrgb.c:339 -msgid "filmic rgb" -msgstr "filmski rgb" - -#: ../src/iop/filmicrgb.c:344 -msgid "tone mapping|curve|view transform|contrast|saturation|highlights" -msgstr "" -"preslikava tonov|krivulja|pogled preoblikovanja|kontrast|nasičenost|bleščave" - -#: ../src/iop/filmicrgb.c:349 -msgid "" -"apply a view transform to prepare the scene-referred pipeline\n" -"for display on SDR screens and paper prints\n" -"while preventing clipping in non-destructive ways" -msgstr "" -"uporabite pretvorbo pogleda za pripravo cevovoda, ki se nanaša na sceno\n" -"za prikaz na zaslonih SDR in tisku na papirju\n" -"hkrati pa preprečuje obrezovanje na nedestruktivne načine" - -#: ../src/iop/filmicrgb.c:1310 -msgid "" -"filmic highlights reconstruction failed to allocate memory, check your RAM " -"settings" -msgstr "" -"za filmsko rekonstrukcijo bleščav ni bilo dovolj pomnilnika, preverite " -"nastavitve za RAM" - -#: ../src/iop/filmicrgb.c:2301 -msgid "filmic highlights reconstruction failed to allocate memory on GPU" -msgstr "za filmsko rekonstrukcijo bleščav ni bilo dovolj pomnilnika za GPE" - -#: ../src/iop/filmicrgb.c:2419 -msgid "filmic works only on RGB input" -msgstr "filmsko deluje samo v RGB vhodu" - -#: ../src/iop/filmicrgb.c:3484 -msgid "look only" -msgstr "samo videz" - -#: ../src/iop/filmicrgb.c:3486 -msgid "look + mapping (lin)" -msgstr "videz + preslikava (lin)" - -#: ../src/iop/filmicrgb.c:3488 -msgid "look + mapping (log)" -msgstr "videz + preslikava (log)" - -#: ../src/iop/filmicrgb.c:3490 -msgid "dynamic range mapping" -msgstr "preslikava dinamičnega razpona" - -#: ../src/iop/filmicrgb.c:3857 -#, c-format -msgid "(%.0f %%)" -msgstr "(%.0f %%)" - -#: ../src/iop/filmicrgb.c:3873 -#, no-c-format -msgid "% display" -msgstr "% prikaz" - -#: ../src/iop/filmicrgb.c:3885 -msgid "EV scene" -msgstr "Ev scena" - -#: ../src/iop/filmicrgb.c:3889 -#, no-c-format -msgid "% camera" -msgstr "% kamera" - -#. Page DISPLAY -#: ../src/iop/filmicrgb.c:3925 ../src/iop/filmicrgb.c:4587 -msgid "display" -msgstr "prikaz" - -#. axis legend -#: ../src/iop/filmicrgb.c:3934 -msgid "(%)" -msgstr "(%)" - -#. Page SCENE -#: ../src/iop/filmicrgb.c:3943 ../src/iop/filmicrgb.c:4422 -msgid "scene" -msgstr "scena" - -#. axis legend -#: ../src/iop/filmicrgb.c:3952 -msgid "(EV)" -msgstr "(EV)" - -#. we are over the graph area -#: ../src/iop/filmicrgb.c:4364 -msgid "" -"use the parameters below to set the nodes.\n" -"the bright curve is the filmic tone mapping curve\n" -"the dark curve is the desaturation curve." -msgstr "" -"uporabite spodnje parametre za postavitev vozlov\n" -"svetla krivulja je filmska krivulja prenosa tonov\n" -"temna krivulja je krivulja zmanjšanja nasičenosti." - -#: ../src/iop/filmicrgb.c:4370 -msgid "toggle axis labels and values display" -msgstr "preklopi prikaz oznak osi in vrednosti" - -#: ../src/iop/filmicrgb.c:4374 -msgid "" -"cycle through graph views.\n" -"left click: cycle forward.\n" -"right click: cycle backward.\n" -"double-click: reset to look view." -msgstr "" -"kroži po pogledih grafikonov.\n" -"levi klik: kroži naprej.\n" -"desni klik: kroži nazaj.\n" -"dvoklik: ponastavi pogled." - -#: ../src/iop/filmicrgb.c:4431 -#, no-c-format -msgid "" -"adjust to match the average luminance of the image's subject.\n" -"the value entered here will then be remapped to 18.45%.\n" -"decrease the value to increase the overall brightness." -msgstr "" -"prilagodite tako, da ustreza povprečni svetlosti predmeta slike.\n" -"tu vnesena vrednost bo prestavljena na 18,45%.\n" -"za povečanje celotne sijavosti, zmanjšajte to vrednost." - -#: ../src/iop/filmicrgb.c:4461 -msgid "" -"symmetrically enlarge or shrink the computed dynamic range.\n" -"useful to give a safety margin to extreme luminances." -msgstr "" -"simetrično povečaj ali skrči izračunani dinamični razpon.\n" -"koristno je ohraniti varnostno mejo do ekstremnih svetlosti." - -#: ../src/iop/filmicrgb.c:4468 -msgid "" -"try to optimize the settings with some statistical assumptions.\n" -"this will fit the luminance range inside the histogram bounds.\n" -"works better for landscapes and evenly-lit pictures\n" -"but fails for high-keys, low-keys and high-ISO pictures.\n" -"this is not an artificial intelligence, but a simple guess.\n" -"ensure you understand its assumptions before using it." -msgstr "" -"poskusite optimizirati nastavitve z nekaterimi statističnimi " -"predpostavkami.\n" -"to bo prilagodilo območju svetlosti znotraj meja histograma.\n" -"deluje bolje za pokrajine in enakomerno osvetljene slike,\n" -"vendar ne uspe za slike, ki so bodisi zelo svetle, zelo temne in z visoko " -"občutljivostjo ISO.\n" -"to ni umetna inteligenca, ampak preprosto ugibanje.\n" -"poskrbite, da razumete principe delovanja, preden jih uporabite." - -#. Page RECONSTRUCT -#: ../src/iop/filmicrgb.c:4477 -msgid "reconstruct" -msgstr "obnovi" - -#: ../src/iop/filmicrgb.c:4479 -msgctxt "section" -msgid "highlights clipping" -msgstr "obrezovanje bleščav" - -#: ../src/iop/filmicrgb.c:4487 -msgid "" -"set the exposure threshold upon which\n" -"clipped highlights get reconstructed.\n" -"values are relative to the scene white point.\n" -"0 EV means the threshold is the same as the scene white point.\n" -"decrease to include more areas,\n" -"increase to exclude more areas." -msgstr "" -"nastavi prag osvetlitve, na katerem\n" -"se obnovijo obrezani poudarki.\n" -"vrednosti so relativne glede na belo točko scene.\n" -"0 EV pomeni, da je prag enak beli točki scene.\n" -"zmanjšanje vključi več področij,\n" -"povečanje pa izključi več območij." - -#: ../src/iop/filmicrgb.c:4497 -msgid "" -"soften the transition between clipped highlights and valid pixels.\n" -"decrease to make the transition harder and sharper,\n" -"increase to make the transition softer and blurrier." -msgstr "" -"ublaži prehod med izrezanimi bleščavami in veljavnimi piksli.\n" -"zmanjša, da postane prehod trši in ostrejši,\n" -"poveča, da postane prehod mehkejši in bolj zamegljen." - -#: ../src/iop/filmicrgb.c:4503 ../src/iop/filmicrgb.c:4504 -msgid "display highlight reconstruction mask" -msgstr "prikaži masko za obnovo bleščav" - -#: ../src/iop/filmicrgb.c:4511 -msgctxt "section" -msgid "balance" -msgstr "ravnotežje" - -#: ../src/iop/filmicrgb.c:4518 -#, no-c-format -msgid "" -"decide which reconstruction strategy to favor,\n" -"between inpainting a smooth color gradient,\n" -"or trying to recover the textured details.\n" -"0% is an equal mix of both.\n" -"increase if at least one RGB channel is not clipped.\n" -"decrease if all RGB channels are clipped over large areas." -msgstr "" -"odločitev, kateri strategiji obnove naj da prednost,\n" -"ali dobarvanju gladkega barvnega gradienta,\n" -"ali poskusu obnove teksturirane podrobnosti.\n" -"0% je enaka kombinacija obeh.\n" -"povečajte, če vsaj en kanal RGB ni izrezan.\n" -"zmanjšate, če so vsi RGB kanali izrezani na velikih območjih." - -#: ../src/iop/filmicrgb.c:4529 -#, no-c-format -msgid "" -"decide which reconstruction strategy to favor,\n" -"between blooming highlights like film does,\n" -"or trying to recover sharp details.\n" -"0% is an equal mix of both.\n" -"increase if you want more details.\n" -"decrease if you want more blur." -msgstr "" -"odločitev, kateri strategiji obnove naj da prednost,\n" -"med cvetočimi bleščavami, kot naredi film,\n" -"ali poskuša obnoviti ostre podrobnosti.\n" -"0% je enaka kombinacija obeh.\n" -"povečajte, če želite več podrobnosti.\n" -"zmanjšajte, če želite več zamegljenosti." - -#: ../src/iop/filmicrgb.c:4541 -#, no-c-format -msgid "" -"decide which reconstruction strategy to favor,\n" -"between recovering monochromatic highlights,\n" -"or trying to recover colorful highlights.\n" -"0% is an equal mix of both.\n" -"increase if you want more color.\n" -"decrease if you see magenta or out-of-gamut highlights." -msgstr "" -"odloči, kateri strategiji obnove naj da prednost,\n" -"med obnavljanjem enobarvnih bleščav,\n" -"ali poskušate obnoviti barvite bleščave.\n" -"0% je enaka kombinacija obeh.\n" -"povečajte, če želite več barve.\n" -"zmanjšajte, če opazite magento ali bleščave izven barvnega razpona." - -#. Page LOOK -#: ../src/iop/filmicrgb.c:4549 -msgid "look" -msgstr "videz" - -#: ../src/iop/filmicrgb.c:4559 -msgid "" -"equivalent to paper grade in analog.\n" -"increase to make highlights brighter and less compressed.\n" -"decrease to mute highlights." -msgstr "" -"enakovredno gradaciji papirja v analognem.\n" -"povečaj, da bodo bleščave svetlejše in manj stisnjene.\n" -"zmanjšaj na utišanje bleščav." - -#: ../src/iop/filmicrgb.c:4567 -msgid "" -"width of the linear domain in the middle of the curve,\n" -"increase to get more contrast and less desaturation at extreme luminances,\n" -"decrease otherwise. no desaturation happens in the latitude range.\n" -"this has no effect on mid-tones." -msgstr "" -"širina linearnega območja na sredini krivulje\n" -"povečajte širino, da dobite več kontrasta in manj zmanjšanja zasičenosti pri " -"ekstremnih\n" -"svetlostih ter obratno, če jo zmanjšate. v srednjem območju se ne zmanjša " -"nasičenje.\n" -"to nima vpliva na srednje tone." - -#: ../src/iop/filmicrgb.c:4582 ../src/iop/filmicrgb.c:4730 -msgid "" -"desaturates the output of the module\n" -"specifically at extreme luminances.\n" -"increase if shadows and/or highlights are under-saturated." -msgstr "" -"zmanjša nasičenost izhoda modula\n" -"posebej pri ekstremnih svetlostih.\n" -"povečajte vrednost, če so sence in/ali bleščave premalo nasičeni." - -#. Page OPTIONS -#: ../src/iop/filmicrgb.c:4611 -msgid "options" -msgstr "možnosti" - -#: ../src/iop/filmicrgb.c:4616 -msgid "" -"v3 is darktable 3.0 desaturation method, same as color balance.\n" -"v4 is a newer desaturation method, based on spectral purity of light." -msgstr "" -"v3 je metoda darktable 3,0 zmanjšanja nasičenosti, enaka kot barvno " -"ravnovesje.\n" -"v4 je novejša metoda desaturacije, ki temelji na spektralni čistosti " -"svetlobe." - -#: ../src/iop/filmicrgb.c:4620 -msgid "" -"ensure the original colors are preserved.\n" -"may reinforce chromatic aberrations and chroma noise,\n" -"so ensure they are properly corrected elsewhere." -msgstr "" -"zagotovi ohranjanje izvirnih barv.\n" -"lahko okrepi barvne aberacije objektiva in barvni šum,\n" -"zato zagotovite, da so popravljene drugod." - -#: ../src/iop/filmicrgb.c:4629 -msgid "" -"choose the desired curvature of the filmic spline in highlights.\n" -"hard uses a high curvature resulting in more tonal compression.\n" -"soft uses a low curvature resulting in less tonal compression." -msgstr "" -"izberi želeno ukrivljenost filmskega zlepka v bleščavah.\n" -"trda uporablja veliko ukrivljenost, kar povzroči večjo stiskanje tonov.\n" -"mehka uporablja nizko ukrivljenost, kar povzroči manjše stiskanje tonov." - -#: ../src/iop/filmicrgb.c:4634 -msgid "" -"choose the desired curvature of the filmic spline in shadows.\n" -"hard uses a high curvature resulting in more tonal compression.\n" -"soft uses a low curvature resulting in less tonal compression." -msgstr "" -"izberite želeno ukrivljenost filmskega zlepka v sencah.\n" -"trda uporablja veliko ukrivljenost, kar povzroči večje stiskanje tona.\n" -"mehka uporablja nizko ukrivljenost, kar povzroči manjše stiskanje tona." - -#: ../src/iop/filmicrgb.c:4641 -#, no-c-format -msgid "" -"enable to input custom middle-gray values.\n" -"this is not recommended in general.\n" -"fix the global exposure in the exposure module instead.\n" -"disable to use standard 18.45% middle gray." -msgstr "" -"omogoči vnos srednjih sivih vrednosti po meri.\n" -"to na splošno ni priporočljivo.\n" -"namesto tega popravite globalno osvetljenost v modulu osvetlitve.\n" -"onemogoči uporabo standardne 18,45 %% za srednje sivo." - -#: ../src/iop/filmicrgb.c:4648 -msgid "" -"enable to auto-set the look hardness depending on the scene white and black " -"points.\n" -"this keeps the middle gray on the identity line and improves fast tuning.\n" -"disable if you want a manual control." -msgstr "" -"omogoča samodejno nastavitev trdote videza glede na bele in črne točke " -"scene.\n" -"to ohranja srednjo sivo v identitetni črti in izboljša hitro uglaševanje " -"slike.\n" -"onemogočite, če želite ročni nadzor." - -#: ../src/iop/filmicrgb.c:4654 -msgid "" -"run extra passes of chromaticity reconstruction.\n" -"more iterations means more color propagation from neighborhood.\n" -"this will be slower but will yield more neutral highlights.\n" -"it also helps with difficult cases of magenta highlights." -msgstr "" -"izvedi dodatne prehode obnove kromatičnosti.\n" -"več iteracij pomeni več pronicanja barv iz soseščine.\n" -"to bo počasneje, vendar bo pridelalo več nevtralnih bleščav.\n" -"pomaga tudi pri težkih primerih bleščav v magenti." - -#: ../src/iop/filmicrgb.c:4661 -msgid "" -"add statistical noise in reconstructed highlights.\n" -"this avoids highlights to look too smooth\n" -"when the picture is noisy overall,\n" -"so they blend with the rest of the picture." -msgstr "" -"dodajte statistični šum v obnovljene bleščave.\n" -"s tem se izognemo, da bi bile videti bleščave preveč gladke,\n" -"če ima slika na splošno veliko šuma,\n" -"zato se zlijejo s preostalim delom slike." - -#: ../src/iop/filmicrgb.c:4668 -msgid "" -"choose the statistical distribution of noise.\n" -"this is useful to match natural sensor noise pattern." -msgstr "" -"izberi statistično porazdelitev šuma.\n" -"to je koristno za uskladitev z naravnim vzorcem šuma senzorjev." - -#: ../src/iop/filmicrgb.c:4736 -msgid "mid-tones saturation" -msgstr "nasičenost srednjih tonov" - -#: ../src/iop/filmicrgb.c:4737 -msgid "" -"desaturates the output of the module\n" -"specifically at medium luminances.\n" -"increase if midtones are under-saturated." -msgstr "" -"zmanjša nasičenost izhoda modula\n" -"posebej pri srednjih svetlostih.\n" -"povečajte vrednost, če so srednji toni premalo nasičeni." - -#: ../src/iop/filmicrgb.c:4743 -msgid "highlights saturation mix" -msgstr "mešanica nasičenosti bleščav" - -#: ../src/iop/filmicrgb.c:4744 -msgid "" -"positive values ensure saturation is kept unchanged over the whole range.\n" -"negative values bleach highlights at constant hue and luminance.\n" -"zero is an equal mix of both strategies." -msgstr "" -"pozitivne vrednosti zagotavljajo, da se nasičenost ne spreminja v celotnem " -"območju.\n" -"negativne vrednosti belijo bleščave pri stalnem odtenku in svetilnosti.\n" -"ničla je enaka mešanica obeh strategij." - -#: ../src/iop/finalscale.c:39 -msgctxt "modulename" -msgid "scale into final size" -msgstr "merilo do ciljne velikosti" - -#: ../src/iop/flip.c:80 -msgid "rotation|flip" -msgstr "zasuk|zrcaljenje" - -#: ../src/iop/flip.c:110 -msgid "flip or rotate image by step of 90 degrees" -msgstr "prezrcali ali zasukaj sliko v koraku 90 stopinj" - -#: ../src/iop/flip.c:477 -msgid "no rotation" -msgstr "brez zasuka" - -#: ../src/iop/flip.c:481 ../src/iop/flip.c:624 -msgid "flip horizontally" -msgstr "prezrcali vodoravno" - -#: ../src/iop/flip.c:485 ../src/iop/flip.c:628 -msgid "flip vertically" -msgstr "prezrcali navpično" - -#: ../src/iop/flip.c:489 -msgid "rotate by -90 degrees" -msgstr "zasukaj za -90 stopinj" - -#: ../src/iop/flip.c:493 -msgid "rotate by 90 degrees" -msgstr "zasukaj za +90 stopinj" - -#: ../src/iop/flip.c:497 -msgid "rotate by 180 degrees" -msgstr "zasukaj za +180 stopinj" - -#: ../src/iop/flip.c:612 -msgid "transform" -msgstr "preoblikuj" - -#: ../src/iop/flip.c:616 ../src/libs/live_view.c:293 -msgid "rotate 90 degrees CCW" -msgstr "zasukaj 90 stopinj v obratni smeri urinega kazalca" - -#: ../src/iop/flip.c:620 ../src/libs/live_view.c:294 -msgid "rotate 90 degrees CW" -msgstr "zasukaj 90 stopinj v smeri urinega kazalca" - -#: ../src/iop/gamma.c:44 -msgctxt "modulename" -msgid "display encoding" -msgstr "prikaži kodiranje" - -#: ../src/iop/globaltonemap.c:100 -msgid "global tonemap" -msgstr "globalna tabela tonov" - -#: ../src/iop/globaltonemap.c:105 -msgid "this module is deprecated. please use the filmic rgb module instead." -msgstr "ta modul je zastarel. namesto tega raje uporabite filmski modul rgb." - -#: ../src/iop/globaltonemap.c:625 ../src/libs/filters/colors.c:259 -msgid "operator" -msgstr "operater" - -#: ../src/iop/globaltonemap.c:626 -msgid "the global tonemap operator" -msgstr "globalni operater tabele tonov" - -#: ../src/iop/globaltonemap.c:629 -msgid "" -"the bias for tonemapper controls the linearity, the higher the more details " -"in blacks" -msgstr "" -"pristranskost kontrole odtenkov, večja je - več je podrobnosti v črninah" - -#: ../src/iop/globaltonemap.c:633 -msgid "the target light for tonemapper specified as cd/m2" -msgstr "ciljna osvetljenost za prikaz tonov v cd/m2" - -#: ../src/iop/graduatednd.c:67 -msgid "neutral gray ND2 (soft)" -msgstr "nevtralno siv ND2 (mehek)" - -#: ../src/iop/graduatednd.c:70 -msgid "neutral gray ND4 (soft)" -msgstr "nevtralno siv ND4 (mehek)" - -#: ../src/iop/graduatednd.c:73 -msgid "neutral gray ND8 (soft)" -msgstr "nevtralno siv ND8 (mehek)" - -#: ../src/iop/graduatednd.c:76 -msgid "neutral gray ND2 (hard)" -msgstr "nevtralno siv ND2 (trd)" - -#: ../src/iop/graduatednd.c:80 -msgid "neutral gray ND4 (hard)" -msgstr "nevtralno siv ND4 (trd)" - -#: ../src/iop/graduatednd.c:83 -msgid "neutral gray ND8 (hard)" -msgstr "nevtralno siv ND8 (trd)" - -#: ../src/iop/graduatednd.c:87 -msgid "orange ND2 (soft)" -msgstr "oranžen ND2 (mehko)" - -#: ../src/iop/graduatednd.c:90 -msgid "yellow ND2 (soft)" -msgstr "rumeno ND2 (mehko)" - -#: ../src/iop/graduatednd.c:94 -msgid "purple ND2 (soft)" -msgstr "rumeno ND2 (mehko)" - -#: ../src/iop/graduatednd.c:98 -msgid "green ND2 (soft)" -msgstr "zeleno ND2 (mehko)" - -#: ../src/iop/graduatednd.c:102 -msgid "red ND2 (soft)" -msgstr "rdeče ND2 (mehko)" - -#: ../src/iop/graduatednd.c:105 -msgid "blue ND2 (soft)" -msgstr "modro ND2 (mehko)" - -#: ../src/iop/graduatednd.c:109 -msgid "brown ND4 (soft)" -msgstr "rjavo ND2 (mehko)" - -#: ../src/iop/graduatednd.c:140 -msgid "graduated density" -msgstr "prehodna gostota" - -#: ../src/iop/graduatednd.c:145 -msgid "simulate an optical graduated neutral density filter" -msgstr "simuliraj nevtralno gost optični stopenjski filter" - -#: ../src/iop/graduatednd.c:1114 -msgid "the density in EV for the filter" -msgstr "gostota tega filtra v EV" - -#: ../src/iop/graduatednd.c:1119 -#, no-c-format -msgid "" -"hardness of graduation:\n" -"0% = soft, 100% = hard" -msgstr "" -"stiskanje gradacije:\n" -"0% = mehko, 100% trdo" - -#: ../src/iop/graduatednd.c:1123 -msgid "rotation of filter -180 to 180 degrees" -msgstr "zasuk filtra od 180 do 180 stopinj" - -#: ../src/iop/graduatednd.c:1136 -msgid "select the hue tone of filter" -msgstr "izberite tonski odtenek filtra" - -#: ../src/iop/graduatednd.c:1142 -msgid "select the saturation of filter" -msgstr "izberite nasičenje filtra" - -#: ../src/iop/graduatednd.c:1153 -#, c-format -msgid "[%s on nodes] change line rotation" -msgstr "[%s on nodes] zamenjaj zasuk črte" - -#: ../src/iop/graduatednd.c:1154 -#, c-format -msgid "[%s on line] move line" -msgstr "[%s on line] premakni črto" - -#: ../src/iop/graduatednd.c:1156 -#, c-format -msgid "[%s on line] change density" -msgstr "[%s on line] spremeni gostoto" - -#: ../src/iop/graduatednd.c:1158 -#, c-format -msgid "[%s on line] change hardness" -msgstr "[%s on line] spremeni trdoto" - -#: ../src/iop/grain.c:428 -msgid "grain" -msgstr "zrno" - -#: ../src/iop/grain.c:433 -msgid "simulate silver grains from film" -msgstr "simuliraj zrna srebra iz filma" - -#: ../src/iop/grain.c:582 -msgid "the grain size (~ISO of the film)" -msgstr "velikost zrna (~ISO filma)" - -#: ../src/iop/grain.c:586 -msgid "the strength of applied grain" -msgstr "moč uporabljenih zrn" - -#: ../src/iop/grain.c:590 -msgid "" -"amount of mid-tones bias from the photographic paper response modeling. the " -"greater the bias, the more pronounced the fall off of the grain in shadows " -"and highlights" -msgstr "" -"vrednost pristranskosti srednjih tonov modela odziva foto papirja. večja " -"pristranskost, bolj je izražen padec zrnatosti v sencah in bleščavah" - -#: ../src/iop/hazeremoval.c:100 -msgid "haze removal" -msgstr "odstranitev zamegljenosti" - -#: ../src/iop/hazeremoval.c:106 -msgid "dehaze|defog|smoke|smog" -msgstr "odstrani zamegljenost|odstrani meglo|dim|smog" - -#: ../src/iop/hazeremoval.c:111 -msgid "remove fog and atmospheric hazing from pictures" -msgstr "odstrani meglo in atmosfersko meglico s slik" - -#: ../src/iop/hazeremoval.c:202 -msgid "amount of haze reduction" -msgstr "količina odstranjevanja zamegljenosti" - -#: ../src/iop/hazeremoval.c:204 -msgid "distance" -msgstr "razdalja" - -#: ../src/iop/hazeremoval.c:206 -msgid "limit haze removal up to a specific spatial depth" -msgstr "omejitev odstranjevanja zamegljenosti do določene prostorske globine" - -#: ../src/iop/highlights.c:173 -msgid "highlight reconstruction" -msgstr "rekonstrukcija bleščav" - -#: ../src/iop/highlights.c:178 -msgid "avoid magenta highlights and try to recover highlights colors" -msgstr "izogibaj se bleščavam v magenti in poskusi obnoviti barve bleščav" - -#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:75 -msgid "reconstruction, raw" -msgstr "rekonstrukcija, surovo" - -#: ../src/iop/highlights.c:923 -msgid "" -"highlights: mode not available for this type of image. falling back to " -"inpaint opposed." -msgstr "" -"bleščave: način ni na voljo za to vrsto slik. v sili v nasprotno dobarvanje." - -#: ../src/iop/highlights.c:1101 -msgid "highlight reconstruction method" -msgstr "metoda rekonstrukcije bleščav" - -#: ../src/iop/highlights.c:1106 -msgid "" -"manually adjust the clipping threshold mostly used against magenta " -"highlights\n" -"the mask icon shows the clipped areas.\n" -"you might use this for tuning 'laplacian', 'inpaint opposed' or " -"'segmentation' modes,\n" -"especially if camera white point is incorrect." -msgstr "" -"ročno prilagodi prag obrezovanja proti bleščavam magente\n" -"ikona maske prikazuje odrezano območje\n" -"lahko bi uporabili to za prilagajanje 'laplacovo', 'nasprotno dobarvanje' " -"ali način 'segmentacije',\n" -"še posebej, če je nastavitev beline kamere napačna." - -#: ../src/iop/highlights.c:1117 -msgid "" -"combine closely related clipped segments by morphological operations.\n" -"the mask button shows the exact positions of resulting segment borders." -msgstr "" -"sestavi tesno povezane razrezane segmente z morfološkimi operacijami.\n" -"gumb maske prikazuje natančne položaje nastalih mej segmentov." - -#: ../src/iop/highlights.c:1125 -msgid "" -"select inpainting after segmentation analysis.\n" -"increase to favour candidates found in segmentation analysis, decrease for " -"opposed means inpainting.\n" -"the mask button shows segments that are considered to have a good candidate." -msgstr "" -"izberite dobarvanje po analizi segmentov.\n" -"povečaj naklonjenost kandidatom, ki jih najdemo v analizi segmentov, " -"zmanjšanje za nasprotna sredstva dobarvanja.\n" -"gumb za masko prikazuje segmente, za katere velja, da imajo dobrega " -"kandidata." - -#: ../src/iop/highlights.c:1136 -msgid "" -"approximate lost data in regions with all photosites clipped, the effect " -"depends on segment size and border gradients.\n" -"choose a mode tuned for segment size or the generic mode that tries to find " -"best settings for every segment.\n" -"small means areas with a diameter less than 25 pixels, large is best for " -"greater than 100.\n" -"the flat modes ignore narrow unclipped structures (like powerlines) to keep " -"highlights rebuilt and avoid gradients." -msgstr "" -"približni izgubljeni podatki v regijah z vsemi posnetimi foto lokacijami, " -"učinek je odvisen od velikosti segmenta in mejnih gradientov.\n" -"izberite način, uglašen za velikost segmenta ali splošni način, ki poskuša " -"najti najboljše nastavitve za vsak segment.\n" -"majhno pomeni območja s premerom, manjšim od 25 pikslov, veliko je najbolje " -"več kot 100.\n" -"ravni načini ignorirajo ozke neobrezane strukture (kot npr. potenčne " -"krivulje), ki ohranjajo obnovljene bleščave in se izogibajo gradientom." - -#: ../src/iop/highlights.c:1142 -msgid "" -"set strength of rebuilding in regions with all photosites clipped.\n" -"the mask buttons shows the effect that is added to already reconstructed " -"data." -msgstr "" -"nastavite moč obnove v regijah z vsemi posnetimi foto lokacijami.\n" -"gumbi za masko prikazujejo učinek, ki je dodan že rekonstruiranim podatkom." - -#: ../src/iop/highlights.c:1152 -msgid "" -"add noise to visually blend the reconstructed areas\n" -"into the rest of the noisy image. useful at high ISO." -msgstr "" -"dodajte šum, da vizualno mešamo rekonstruirana območja\n" -"v preostalo sliko s šumom. koristno pri visokem ISO." - -#: ../src/iop/highlights.c:1156 -msgid "" -"increase if magenta highlights don't get fully corrected\n" -"each new iteration brings a performance penalty." -msgstr "" -"povečajte, če bleščave magente ne bodo popolnoma popravljene\n" -"vsaka nova iteracija prinaša kazen za uspešnost." - -#: ../src/iop/highlights.c:1161 -msgid "" -"increase if magenta highlights don't get fully corrected.\n" -"this may produce non-smooth boundaries between valid and clipped regions." -msgstr "" -"povečajte, če bleščave magente ne bi bile popolnoma popravljene\n" -"to lahko izdela nezvezne meje med veljavnimi in popravljenimi področji." - -#: ../src/iop/highlights.c:1165 -msgid "" -"increase to correct larger clipped areas.\n" -"large values bring huge performance penalties" -msgstr "" -"povečaj za popravljanje večjih odrezanih območij.\n" -"velike vrednosti prinašajo ogromne kazni za zmogljivost" - -#: ../src/iop/highlights.c:1169 -msgid "this module only works with non-monochrome RAW and sRAW" -msgstr "ta modul deluje samo pri ne-monokromatskih surovih RAW in sRAW" - -#: ../src/iop/highpass.c:72 -msgid "highpass" -msgstr "prepuščanje svetlih delov" - -#: ../src/iop/highpass.c:77 -msgid "isolate high frequencies in the image" -msgstr "izoliraj visoke frekvence na sliki" - -#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:135 -msgid "linear or non-linear, Lab, scene-referred" -msgstr "linearni ali ne-linearni, Lab, glede na sceno" - -#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:136 ../src/iop/sharpen.c:96 -msgid "frequential, Lab" -msgstr "frekvenčni, Lab" - -#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:137 -msgid "special, Lab, scene-referred" -msgstr "specialni, Lab, glede na sceno" - -#: ../src/iop/highpass.c:383 -msgid "the sharpness of highpass filter" -msgstr "ostrina filtra za prepuščanje svetlih delov" - -#: ../src/iop/highpass.c:387 -msgid "the contrast of highpass filter" -msgstr "kontrast filtra bleščavosti" - -#: ../src/iop/hotpixels.c:67 -msgid "hot pixels" -msgstr "vroči piksli" - -#: ../src/iop/hotpixels.c:72 -msgid "remove abnormally bright pixels by dampening them with neighbors" -msgstr "odstrani neobičajno svetle piksle tako, da jih navlažiš s sosedi" - -#: ../src/iop/hotpixels.c:363 -#, c-format -msgid "fixed %d pixel" -msgid_plural "fixed %d pixels" -msgstr[0] "popravljen %d piksel" -msgstr[1] "popravljena %d piksla" -msgstr[2] "popravljeni %d piksli" -msgstr[3] "popravljeno %d pikslov" - -#: ../src/iop/hotpixels.c:386 -msgid "lower threshold for hot pixel" -msgstr "znižaj prag za vroče piksle" - -#: ../src/iop/hotpixels.c:390 -msgid "strength of hot pixel correction" -msgstr "moč korekcije vročih pikslov" - -#: ../src/iop/hotpixels.c:406 -msgid "" -"hot pixel correction\n" -"only works for raw images." -msgstr "" -"popravljanje vročih pikslov\n" -"deluje samo na surovih fotografijah." - -#: ../src/iop/invert.c:92 ../src/iop/invert.c:427 -#, c-format -msgid "`%s' color matrix not found for 4bayer image" -msgstr "`%s' barvna matrika ni najdena za sliko iz 4bayer" - -#: ../src/iop/invert.c:108 -msgid "invert" -msgstr "invertiraj" - -#: ../src/iop/invert.c:113 -msgid "this module is deprecated. please use the negadoctor module instead." -msgstr "ta modul je zastarel. namesto tega raje uporabite modul negadoctor." - -#: ../src/iop/invert.c:118 -msgid "invert film negatives" -msgstr "preobrni filmske negative" - -#: ../src/iop/invert.c:120 ../src/iop/invert.c:122 -msgid "linear, raw, display-referred" -msgstr "linearni, surovi, glede na zaslon" - -#. Here we could provide more for monochrome special cases. As no monochrome camera -#. has a bayer sensor we don't need g->RGB_to_CAM and g->CAM_to_RGB corrections -#: ../src/iop/invert.c:412 -msgid "brightness of film material" -msgstr "sijavost filmskega materiala" - -#: ../src/iop/invert.c:416 -msgid "color of film material" -msgstr "barva filmskega materijala" - -#: ../src/iop/invert.c:500 ../src/iop/negadoctor.c:847 -msgid "pick color of film material from image" -msgstr "izberite barvo filmskega materiala iz slike" - -#: ../src/iop/invert.c:502 -msgid "select color of film material" -msgstr "izberite barvo filma" - -#: ../src/iop/lens.cc:230 -msgid "lens correction" -msgstr "popravek objektivov" - -#: ../src/iop/lens.cc:235 -msgid "vignette|chromatic aberrations|distortion" -msgstr "vinjeta|barvni odkloni|popačenja" - -#: ../src/iop/lens.cc:240 -msgid "correct lenses optical flaws" -msgstr "popravi optične napake leč" - -#: ../src/iop/lens.cc:243 -msgid "geometric and reconstruction, RGB" -msgstr "geometrija in rekonstrukcija, RGB" - -#: ../src/iop/lens.cc:3148 -#, c-format -msgid "" -"maker:\t\t%s\n" -"model:\t\t%s%s\n" -"mount:\t\t%s\n" -"crop factor:\t%.1f" -msgstr "" -"proizvajalec:\t\t%s\n" -"model:\t\t%s%s\n" -"bajonet:\t\t%s\n" -"faktor obreze:\t%.1f" - -#: ../src/iop/lens.cc:3396 -#, c-format -msgid "" -"maker:\t\t%s\n" -"model:\t\t%s\n" -"focal range:\t%s\n" -"aperture:\t%s\n" -"crop factor:\t%.1f\n" -"type:\t\t%s\n" -"mounts:\t%s" -msgstr "" -"izdelal:\t\t%s\n" -"model:\t\t%s\n" -"izmerjena razdalja:\t%s\n" -"zaslonka:\t%s\n" -"faktor obreze:\t%.1f\n" -"tip:\t\t%s\n" -"mounts:\t%s" - -#: ../src/iop/lens.cc:3442 -msgid "focal length (mm)" -msgstr "goriščna razdalja (mm)" - -#: ../src/iop/lens.cc:3468 -msgid "f/" -msgstr "f/" - -#: ../src/iop/lens.cc:3469 -msgid "f-number (aperture)" -msgstr "f-število (zaslonka)" - -#: ../src/iop/lens.cc:3485 -msgid "d" -msgstr "d" - -#: ../src/iop/lens.cc:3486 -msgid "distance to subject" -msgstr "razdalja do predmeta" - -#: ../src/iop/lens.cc:3645 -msgid "camera/lens not found" -msgstr "ni mogoče najti kamere/lečij" - -#: ../src/iop/lens.cc:3646 -msgid "" -"please select your lens manually\n" -"you might also want to check if your Lensfun database is up-to-date\n" -"by running lensfun-update-data" -msgstr "" -"izberite vaše lečje ročno\n" -"lahko tudi preverite, če je podatkovna baza Lensfun ažurna\n" -"če poženete lensfun-update-data" - -#: ../src/iop/lens.cc:3769 -msgid "camera model" -msgstr "model kamere" - -#: ../src/iop/lens.cc:3774 -msgid "find camera" -msgstr "išči kamero" - -#: ../src/iop/lens.cc:3789 -msgid "find lens" -msgstr "išči objektiv" - -#. scale -#: ../src/iop/lens.cc:3823 ../src/iop/vignette.c:968 -#: ../src/iop/watermark.c:1324 ../src/libs/export.c:1165 -msgid "scale" -msgstr "merilo" - -#: ../src/iop/lens.cc:3828 -msgid "auto scale" -msgstr "avtomatsko merilo" - -#: ../src/iop/lens.cc:3832 -msgid "correct distortions or apply them" -msgstr "popravi popačenja ali jih izvedi" - -#: ../src/iop/lens.cc:3839 -msgid "transversal chromatic aberration red" -msgstr "transverzalni barvni odklon rdeče" - -#: ../src/iop/lens.cc:3843 -msgid "transversal chromatic aberration blue" -msgstr "transverzalni barvni odklon modre" - -#: ../src/iop/lens.cc:3849 -msgid "use latest algorithm" -msgstr "uporabi najnovejši algoritem" - -#: ../src/iop/lens.cc:3851 -msgid "" -"you're using an old version of the algorithm.\n" -"once enabled, you won't be able to\n" -"return back to old algorithm." -msgstr "" -"uporabljate staro verzijo algoritma.\n" -"potem ko ste omogočili, se ne boste mogli\n" -"vrniti nazaj na stari algoritem." - -#: ../src/iop/lens.cc:3860 -msgid "tune the warp and chromatic aberration correction" -msgstr "prilagodite osnovo in popravek kromatske aberacije" - -#: ../src/iop/lens.cc:3864 -msgid "tune the vignette correction" -msgstr "prilagodi popravek vinjetiranja" - -#: ../src/iop/lens.cc:3868 -msgid "tune the TCA red correction" -msgstr "prilagodi popravek TCA rdeče" - -#: ../src/iop/lens.cc:3872 -msgid "tune the TCA blue correction" -msgstr "prilagodi popravek TCA modre" - -#: ../src/iop/lens.cc:3879 -msgid "image scaling" -msgstr "prilagoditve velikosti slike" - -#: ../src/iop/lens.cc:3891 -msgid "which corrections to apply" -msgstr "katere popravke uveljaviti" - -#: ../src/iop/lens.cc:3904 -msgid "corrections done: " -msgstr "popravki izvedeni: " - -#: ../src/iop/lens.cc:3906 -msgid "which corrections have actually been done" -msgstr "kateri popravki so bili zares izvedeni" - -#: ../src/iop/levels.c:112 -msgid "this module is deprecated. please use the RGB levels module instead." -msgstr "ta modul je zastarel. namesto tega raje uporabite modul ravni RGB." - -#: ../src/iop/levels.c:117 ../src/iop/levels.c:630 ../src/iop/rgblevels.c:984 -#: ../src/iop/rgblevels.c:1014 -msgid "levels" -msgstr "ravni" - -#: ../src/iop/levels.c:137 -msgid "adjust black, white and mid-gray points" -msgstr "prilagodi črno, belo in srednje sive točke" - -#: ../src/iop/levels.c:628 ../src/iop/rgblevels.c:1016 -msgid "" -"drag handles to set black, gray, and white points. operates on L channel." -msgstr "" -"povlecite ročke za nastavitve črnih, sivih in belih točk. deluje na kanalu L." - -#: ../src/iop/levels.c:642 ../src/iop/rgblevels.c:1052 -msgid "apply auto levels" -msgstr "uporabi avtomatske ravni" - -#: ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1027 -msgid "pick black point from image" -msgstr "izberi črno točko na sliki" - -#: ../src/iop/levels.c:650 ../src/iop/rgblevels.c:1033 -msgid "pick medium gray point from image" -msgstr "izberi sivo točko na sliki" - -#: ../src/iop/levels.c:654 ../src/iop/rgblevels.c:1039 -msgid "pick white point from image" -msgstr "izberi belo točko na sliki" - -#: ../src/iop/levels.c:667 ../src/iop/rgblevels.c:936 -#: ../src/iop/rgblevels.c:1026 -msgid "black" -msgstr "črna" - -#: ../src/iop/levels.c:668 -msgid "black percentile" -msgstr "odstotek črne" - -#: ../src/iop/levels.c:672 -msgid "gray percentile" -msgstr "odstotek sive" - -#: ../src/iop/levels.c:675 ../src/iop/rgblevels.c:938 -#: ../src/iop/rgblevels.c:1038 -msgid "white" -msgstr "bela" - -#: ../src/iop/levels.c:676 -msgid "white percentile" -msgstr "odstotek bele" - -#: ../src/iop/liquify.c:291 -msgid "liquify" -msgstr "utekočini" - -#: ../src/iop/liquify.c:296 -msgid "distort parts of the image" -msgstr "popači dele slike" - -#: ../src/iop/liquify.c:2933 -msgid "click to edit nodes" -msgstr "kliknite za urejanje vozlišč" - -#: ../src/iop/liquify.c:3636 -msgid "" -"<b>add point</b>: click and drag\n" -"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " -"ctrl+scroll" -msgstr "" -"<b>dodaj točko</b>: klik in povlek\n" -"<b>velikost</b>: poteg - <b>moč</b>: dvigalka + poteg - <b>smer</b>:" -"kontrolka+drsanje" - -#: ../src/iop/liquify.c:3639 -msgid "" -"<b>add line</b>: click\n" -"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " -"ctrl+scroll" -msgstr "" -"<b>dodaj črto</b>: klik\n" -"<b>velikost</b>: poteg - <b>moč</b>: dvigalka + poteg - <b>smer</b>:" -"kontrolka+drsanje" - -#: ../src/iop/liquify.c:3642 -msgid "" -"<b>add curve</b>: click\n" -"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " -"ctrl+scroll" -msgstr "" -"<b>dodaj krivuljo</b>: klik\n" -"<b>velikost</b>: poteg - <b>moč</b>: dvigalka + poteg - <b>smer</b>:" -"kontrolka+drsanje" - -#: ../src/iop/liquify.c:3693 -msgid "" -"use a tool to add warps\n" -"<b>remove a warp</b>: right-click" -msgstr "" -"uporabite orodje za dodajanje zvitkov\n" -"<b>odstrani zvitek</b>: desni klik" - -#: ../src/iop/liquify.c:3696 -msgid "warps|nodes count:" -msgstr "zvitki|št. vozlišč:" - -#: ../src/iop/liquify.c:3705 -msgid "edit, add and delete nodes" -msgstr "uredi, dodaj in briši vozlišča" - -#: ../src/iop/liquify.c:3710 ../src/iop/liquify.c:3716 -#: ../src/iop/liquify.c:3722 ../src/iop/retouch.c:2238 -#: ../src/iop/retouch.c:2242 ../src/iop/retouch.c:2246 -#: ../src/iop/retouch.c:2250 ../src/iop/spots.c:883 ../src/iop/spots.c:888 -#: ../src/iop/spots.c:893 ../src/libs/masks.c:1816 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1834 ../src/libs/masks.c:1843 ../src/libs/masks.c:1852 -msgid "shapes" -msgstr "oblike" - -#: ../src/iop/liquify.c:3711 -msgid "draw curves" -msgstr "riši krivulje" - -#: ../src/iop/liquify.c:3711 -msgid "draw multiple curves" -msgstr "riši več krivulj" - -#: ../src/iop/liquify.c:3717 -msgid "draw lines" -msgstr "riši črte" - -#: ../src/iop/liquify.c:3717 -msgid "draw multiple lines" -msgstr "riši več črt" - -#: ../src/iop/liquify.c:3723 -msgid "draw points" -msgstr "riši točke" - -#: ../src/iop/liquify.c:3723 -msgid "draw multiple points" -msgstr "riši več točk" - -#: ../src/iop/liquify.c:3729 -msgid "" -"<b>add node</b>: ctrl+click - <b>remove path</b>: right click\n" -"<b>toggle line/curve</b>: ctrl+alt+click" -msgstr "" -"<b>dodaj vozel</b>: ctrl+klik, <b>odstrani pot</b>: desni-klik\n" -"<b>preklop črta/krivulja</b>: ctrl+alt+klik" - -#: ../src/iop/liquify.c:3732 -msgid "" -"<b>move</b>: click and drag - <b>show/hide feathering controls</b>: click\n" -"<b>autosmooth, cusp, smooth, symmetrical</b>: ctrl+click - <b>remove</b>: " -"right click" -msgstr "" -"<b>premik</b>: klik in poteg - <b>prikaži/skrij kontrolo perja</b>: klik\n" -"<b>samodejno glajenje, spoj, glajenje, simetrično</b>: ctrl+klik - " -"<b>odstrani</b>: desni klik" - -#: ../src/iop/liquify.c:3736 ../src/iop/liquify.c:3738 -msgid "<b>shape of path</b>: drag" -msgstr "<b>oblika poti</b>: poteg" - -#: ../src/iop/liquify.c:3740 -msgid "<b>radius</b>: drag" -msgstr "<b>radij</b>: poteg" - -#: ../src/iop/liquify.c:3742 -msgid "<b>hardness (center)</b>: drag" -msgstr "<b>trdota (center)</b>: poteg" - -#: ../src/iop/liquify.c:3744 -msgid "<b>hardness (feather)</b>: drag" -msgstr "<b>trdota (pero)</b>: poteg" - -#: ../src/iop/liquify.c:3746 -msgid "" -"<b>strength</b>: drag\n" -"<b>linear, grow, and shrink</b>: ctrl+click" -msgstr "" -"<b>moč</b>: poteg\n" -"<b>linearno, rast in krčenje</b>: ctrl+klik" - -#: ../src/iop/lowlight.c:86 -msgid "lowlight vision" -msgstr "vid pri šibki svetlobi" - -#: ../src/iop/lowlight.c:91 -msgid "simulate human night vision" -msgstr "simuliraj človekov nočni vid" - -#: ../src/iop/lowlight.c:94 -msgid "linear, XYZ" -msgstr "linearni, XYZ" - -#: ../src/iop/lowlight.c:341 -msgid "indoor bright" -msgstr "notranje bleščave" - -#: ../src/iop/lowlight.c:359 -msgid "indoor dim" -msgstr "notranja zamegljenost" - -#: ../src/iop/lowlight.c:377 -msgid "indoor dark" -msgstr "notranja temačnost" - -#: ../src/iop/lowlight.c:395 -msgid "twilight" -msgstr "zora" - -#: ../src/iop/lowlight.c:413 -msgid "night street lit" -msgstr "osvetljena nočna ulica" - -#: ../src/iop/lowlight.c:431 -msgid "night street" -msgstr "nočna ulica" - -#: ../src/iop/lowlight.c:449 -msgid "night street dark" -msgstr "temna nočna ulica" - -#: ../src/iop/lowlight.c:468 -msgid "night" -msgstr "noč" - -#: ../src/iop/lowlight.c:641 -msgid "dark" -msgstr "temačnost" - -#: ../src/iop/lowlight.c:649 -msgid "bright" -msgstr "bleščeče" - -#: ../src/iop/lowlight.c:658 -msgid "day vision" -msgstr "dnevna vidljivost" - -#: ../src/iop/lowlight.c:663 -msgid "night vision" -msgstr "nočna vidljivost" - -#: ../src/iop/lowlight.c:835 -msgid "blueness in shadows" -msgstr "modrine v sencah" - -#: ../src/iop/lowpass.c:128 -msgid "lowpass" -msgstr "filter prepuščanja temin" - -#: ../src/iop/lowpass.c:133 -msgid "isolate low frequencies in the image" -msgstr "izoliraj nizke frekvence na sliki" - -#: ../src/iop/lowpass.c:565 -msgid "local contrast mask" -msgstr "maska lokalnega kontrasta" - -#: ../src/iop/lowpass.c:590 -msgid "radius of gaussian/bilateral blur" -msgstr "polmer Gaussovega/bilateralnega zamegljevanja" - -#: ../src/iop/lowpass.c:591 -msgid "contrast of lowpass filter" -msgstr "kontrast filtra prepuščanja minimuma" - -#: ../src/iop/lowpass.c:592 -msgid "brightness adjustment of lowpass filter" -msgstr "prilagoditev sijavosti filtra prepuščanja temin" - -#: ../src/iop/lowpass.c:593 -msgid "color saturation of lowpass filter" -msgstr "barvno nasičenje filtra prepuščanja temin" - -#: ../src/iop/lowpass.c:594 -msgid "which filter to use for blurring" -msgstr "kateri filter zamegljevanja" - -#: ../src/iop/lut3d.c:135 -msgid "LUT 3D" -msgstr "LUT 3D" - -#: ../src/iop/lut3d.c:140 -msgid "perform color space corrections and apply look" -msgstr "izvedi popravke barvnega prostora in uporabi videz" - -#: ../src/iop/lut3d.c:143 -msgid "defined by profile, RGB" -msgstr "določeno s profilom, RGB" - -#: ../src/iop/lut3d.c:468 -msgid "error allocating buffer for gmz LUT" -msgstr "napaka zagotavljanja medpomnilnika za iskalno tabelo gmz" - -#: ../src/iop/lut3d.c:494 -#, c-format -msgid "invalid png file %s" -msgstr "napačna datoteka png %s" - -#: ../src/iop/lut3d.c:502 -#, c-format -msgid "png bit-depth %d not supported" -msgstr "bitna globina png %d ni podprta" - -#: ../src/iop/lut3d.c:516 ../src/iop/lut3d.c:526 -#, c-format -msgid "invalid level in png file %d %d" -msgstr "napačen nivo datoteke png %d %d" - -#: ../src/iop/lut3d.c:521 -msgid "this darktable build is not compatible with compressed CLUT" -msgstr "ta izdelava darktabla ni združljiva s stisnjenim CLUT" - -#: ../src/iop/lut3d.c:538 ../src/iop/lut3d.c:788 -#, c-format -msgid "error - LUT 3D size %d exceeds the maximum supported" -msgstr "napaka - velikost iskalne tabele 3D %d presega največjo podprto" - -#: ../src/iop/lut3d.c:550 -msgid "error allocating buffer for png LUT" -msgstr "napaka zagotavljanja medpomnilnika za iskalno tabelo png" - -#: ../src/iop/lut3d.c:558 -#, c-format -msgid "error - could not read png image %s" -msgstr "napaka - ne morem prebrati slike png %s" - -#: ../src/iop/lut3d.c:568 -msgid "error - allocating buffer for png LUT" -msgstr "napaka - zagotavljanje medpomnilnika za iskalno tabelo png" - -#: ../src/iop/lut3d.c:743 -#, c-format -msgid "error - invalid cube file: %s" -msgstr "napaka - napačna datoteka kocke: %s" - -#: ../src/iop/lut3d.c:757 -msgid "DOMAIN MIN <> 0.0 is not supported" -msgstr "DOMAIN MIN <> 0.0 ni podprto" - -#: ../src/iop/lut3d.c:768 -msgid "DOMAIN MAX <> 1.0 is not supported" -msgstr "DOMAIN MAX <> 1.0 ni podprto" - -#: ../src/iop/lut3d.c:777 -msgid "1D cube LUT is not supported" -msgstr "iskalna tabela 1D kocke ni podprta" - -#: ../src/iop/lut3d.c:799 -msgid "error - allocating buffer for cube LUT" -msgstr "napaka - zagotavljanje vmesnega pomnilnika za iskalno tabelo za kocko" - -#: ../src/iop/lut3d.c:810 -msgid "error - cube LUT size is not defined" -msgstr "napaka - velikost iskalne tabele kocke ni določena" - -#: ../src/iop/lut3d.c:821 -#, c-format -msgid "error - cube LUT invalid number line %d" -msgstr "napaka - neveljavna številka vrstice iskalne tabele kocke %d" - -#: ../src/iop/lut3d.c:837 -#, c-format -msgid "error - cube LUT lines number %d is not correct, should be %d" -msgstr "" -"napaka - število vrstic iskalne tabele kocke %d ni pravilno, bi morala biti " -"%d" - -#: ../src/iop/lut3d.c:847 -#, c-format -msgid "warning - cube LUT has %d values out of range [0,1]" -msgstr "opozorilo - iskalna tabela kocke ima %d vrednosti izven območja [0,1]" - -#: ../src/iop/lut3d.c:872 -#, c-format -msgid "error - invalid 3dl file: %s" -msgstr "napaka - neveljavna datoteka 3dl: %s" - -#: ../src/iop/lut3d.c:893 -#, c-format -msgid "error - the maximum shaper LUT value %d is too low" -msgstr "napaka - največja vrednost iskalne tabele oblikovalca %d je premajhna" - -#: ../src/iop/lut3d.c:904 -msgid "error - allocating buffer for 3dl LUT" -msgstr "napaka - zagotavljanje medpomnilnika za iskalno tabelo 3dl" - -#: ../src/iop/lut3d.c:917 -msgid "error - 3dl LUT size is not defined" -msgstr "napaka - velikost iskalne tabele 3dl ni določena" - -#: ../src/iop/lut3d.c:945 -msgid "error - 3dl LUT lines number is not correct" -msgstr "napaka - število vrstic iskalne tabele 3dl ni pravilno" - -#: ../src/iop/lut3d.c:961 -msgid "error - the maximum LUT value does not match any valid bit depth" -msgstr "" -"napaka - največja vrednost iskalne tabele se ne ujema z nobeno veljavno " -"bitno globino" - -#: ../src/iop/lut3d.c:1539 -msgid "LUT root folder not defined" -msgstr "korenska mapa za iskalno tabelo ni določena" - -#: ../src/iop/lut3d.c:1545 -msgid "select LUT file" -msgstr "izberi datoteko iskalne tabele" - -#: ../src/iop/lut3d.c:1546 -msgid "_select" -msgstr "_izberi" - -#: ../src/iop/lut3d.c:1566 -msgid "hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" -msgstr "" -"iskalna tabela: hald clut (png), 3D (kocka ali 3dl) ali stisnjena tabela " -"gmic (gmz)" - -#: ../src/iop/lut3d.c:1568 -msgid "hald CLUT (png) or 3D LUT (cube or 3dl)" -msgstr "iskalna tabela hald CLUT (png) ali 3D LUT (kocka ali 3dl)" - -#: ../src/iop/lut3d.c:1592 -msgid "select file outside LUT root folder is not allowed" -msgstr "izbira datoteke izven korenske mape iskalne tabele ni dovoljena" - -#: ../src/iop/lut3d.c:1663 -msgid "" -"select a png (haldclut), a cube, a 3dl or a gmz (compressed LUT) file " -"CAUTION: 3D LUT folder must be set in preferences/processing before choosing " -"the LUT file" -msgstr "" -"izberi png (haldclut), kocko, 3dl ali gmz (stisnjeno) datoteko iskalno " -"tabelo POZOR: mapo iskalnih tabel 3D morate nastaviti v nastavitve/osnovne " -"možnostih/razno pred izbiro datoteke iskalne tabele" - -#: ../src/iop/lut3d.c:1667 -msgid "" -"select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be " -"set in preferences/processing before choosing the LUT file" -msgstr "" -"izberite png (haldclut), kocko ali datoteko 3dl OPOZORILO: mapa 3D iskalne " -"tabele mora biti določena v preferencah/osnovne možnosti/razno pred izbiro " -"datoteke iskalne tabele" - -#: ../src/iop/lut3d.c:1679 -msgid "" -"the file path (relative to LUT folder) is saved with image along with the " -"LUT data if it's a compressed LUT (gmz)" -msgstr "" -"pot datoteke (relativno glede na mapo iskalno tabelo) je shranjena s sliko " -"in podatki iskalne tabele, če je iskalna tabela stisnjena (gmz)" - -#: ../src/iop/lut3d.c:1682 -msgid "" -"the file path (relative to LUT folder) is saved with image (and not the LUT " -"data themselves)" -msgstr "" -"pot datoteke (relativno glede na mapo iskalno tabelo) je shranjena s sliko " -"(in ne podatki iskalne tabele)" - -#: ../src/iop/lut3d.c:1691 -msgid "enter LUT name" -msgstr "vnesite ime iskalne tabele" - -#: ../src/iop/lut3d.c:1712 -msgid "select the LUT" -msgstr "izberi tabelo iskanja" - -#: ../src/iop/lut3d.c:1725 -msgid "select the color space in which the LUT has to be applied" -msgstr "izberite barvni prostor, kjer bo uporabljena tabela iskanja" - -#: ../src/iop/lut3d.c:1727 -msgid "interpolation" -msgstr "interpolacija" - -#: ../src/iop/lut3d.c:1728 -msgid "select the interpolation method" -msgstr "izberite metodo interpolacije" - -#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:62 -msgid "mask manager" -msgstr "upravljavec mask" - -#: ../src/iop/monochrome.c:97 -msgid "quickly convert an image to black & white using a variable color filter" -msgstr "" -"hitro spremeni sliko v črno-belo z uporabo spremenljivega barvnega filtra" - -#: ../src/iop/monochrome.c:127 -msgid "red filter" -msgstr "rdeči filter" - -#: ../src/iop/monochrome.c:546 -msgid "drag and scroll mouse wheel to adjust the virtual color filter" -msgstr "" -"povlecite in podrsajte miškin kolešček za prilagajanje virtualnega barvnega " -"filtra" - -#: ../src/iop/monochrome.c:562 -msgid "how much to keep highlights" -msgstr "koliko za vzdrževanje bleščav" - -#: ../src/iop/negadoctor.c:135 -msgid "negadoctor" -msgstr "negadoctor" - -#: ../src/iop/negadoctor.c:140 -msgid "film|invert|negative|scan" -msgstr "film|obrni|negativ|skeniraj" - -#: ../src/iop/negadoctor.c:145 -msgid "invert film negative scans and simulate printing on paper" -msgstr "" -"obrni grafične zajeme filmskih negativov in simuliraj tiskanje na papir" - -#: ../src/iop/negadoctor.c:469 -msgid "D min" -msgstr "D min" - -#: ../src/iop/negadoctor.c:475 ../src/iop/negadoctor.c:856 -msgid "D min red component" -msgstr "komponenta D min rdeče" - -#. Page FILM PROPERTIES -#: ../src/iop/negadoctor.c:832 -msgid "film properties" -msgstr "lastnosti filma" - -#. Dmin -#: ../src/iop/negadoctor.c:836 -msgctxt "section" -msgid "color of the film base" -msgstr "osnovna barva filma" - -#: ../src/iop/negadoctor.c:842 -msgid "select color of film material from a swatch" -msgstr "izberi barvo filmskega materiala iz aktivne palete barv" - -#: ../src/iop/negadoctor.c:848 -msgid "film material" -msgstr "filmski material" - -#: ../src/iop/negadoctor.c:857 ../src/iop/negadoctor.c:867 -#: ../src/iop/negadoctor.c:877 -msgid "" -"adjust the color and shade of the film transparent base.\n" -"this value depends on the film material, \n" -"the chemical fog produced while developing the film,\n" -"and the scanner white balance." -msgstr "" -"prilagodi barvo in senco prozorne podlage za film.\n" -"ta vrednost je odvisna od filmskega materiala,\n" -"kemične megle, nastale med razvijanjem filma,\n" -"in ravnovesje beline optičnega bralnika." - -#: ../src/iop/negadoctor.c:866 -msgid "D min green component" -msgstr "komponenta D min zelene" - -#: ../src/iop/negadoctor.c:876 -msgid "D min blue component" -msgstr "komponenta D min modre" - -#. D max and scanner bias -#: ../src/iop/negadoctor.c:884 -msgctxt "section" -msgid "dynamic range of the film" -msgstr "dinamični razpon filma" - -#: ../src/iop/negadoctor.c:888 -msgid "" -"maximum density of the film, corresponding to white after inversion.\n" -"this value depends on the film specifications, the developing process,\n" -"the dynamic range of the scene and the scanner exposure settings." -msgstr "" -"največja gostota filma, ki ustreza beli barvi po inverziji.\n" -"ta vrednost je odvisna od specifikacij filma, procesa razvijanja,\n" -"dinamičnega razpona scene in nastavitve osvetlitve optičnega bralnika." - -#: ../src/iop/negadoctor.c:892 -msgctxt "section" -msgid "scanner exposure settings" -msgstr "nastavitve osvetlitve optičnega bralnika" - -#: ../src/iop/negadoctor.c:896 -msgid "" -"correct the exposure of the scanner, for all RGB channels,\n" -"before the inversion, so blacks are neither clipped or too pale." -msgstr "" -"popravite osvetlitev optičnega bralnika za vse RGB kanale,\n" -"pred inverzijo, zato črnine niso niti obrezane niti preveč blede." - -#. WB shadows -#: ../src/iop/negadoctor.c:903 -msgctxt "section" -msgid "shadows color cast" -msgstr "pridih barv v sencah" - -#: ../src/iop/negadoctor.c:909 -msgid "select color of shadows from a swatch" -msgstr "izberi barve senc iz aktivne palete barv" - -#: ../src/iop/negadoctor.c:914 -msgid "pick shadows color from image" -msgstr "poberi barvo v sencah iz slike" - -#: ../src/iop/negadoctor.c:920 -msgid "shadows red offset" -msgstr "odmik rdeče v sencah" - -#: ../src/iop/negadoctor.c:921 ../src/iop/negadoctor.c:928 -#: ../src/iop/negadoctor.c:935 -msgid "" -"correct the color cast in shadows so blacks are\n" -"truly achromatic. Setting this value before\n" -"the highlights illuminant white balance will help\n" -"recovering the global white balance in difficult cases." -msgstr "" -"popravi barvni ton v sencah, tako da črnine niso\n" -"resnično akromatične. Nastavitev te vrednosti pred\n" -"vrsto svetlobe, bo ravnovesje belin pomagalo\n" -"do ponovne vzpostavitve globalnega ravnovesja belin v težkih primerih." - -#: ../src/iop/negadoctor.c:927 -msgid "shadows green offset" -msgstr "odmik zelene v sencah" - -#: ../src/iop/negadoctor.c:934 -msgid "shadows blue offset" -msgstr "odmik modre v sencah" - -#. WB highlights -#: ../src/iop/negadoctor.c:941 -msgctxt "section" -msgid "highlights white balance" -msgstr "uravnoteženost beline v bleščavah" - -#: ../src/iop/negadoctor.c:947 -msgid "select color of illuminant from a swatch" -msgstr "izberi barvo svetlobe iz aktivne palete barv" - -#: ../src/iop/negadoctor.c:952 -msgid "pick illuminant color from image" -msgstr "izberi barvo svetlobe iz slike" - -#: ../src/iop/negadoctor.c:958 -msgid "illuminant red gain" -msgstr "ojačenje rdeče svetlobe" - -#: ../src/iop/negadoctor.c:959 ../src/iop/negadoctor.c:966 -#: ../src/iop/negadoctor.c:973 -msgid "" -"correct the color of the illuminant so whites are\n" -"truly achromatic. Setting this value after\n" -"the shadows color cast will help\n" -"recovering the global white balance in difficult cases." -msgstr "" -"popravite barvo svetlobe, tako da so beline resnično\n" -"akromatične. Nastavitev te vrednosti po pridihu\n" -"barv v senci bo pomagala k ponovni vzpostavitvi\n" -"globalnega ravnovesja beline v težkih primerih." - -#: ../src/iop/negadoctor.c:965 -msgid "illuminant green gain" -msgstr "ojačenje zelene svetlobe" - -#: ../src/iop/negadoctor.c:972 -msgid "illuminant blue gain" -msgstr "ojačenje modre svetlobe" - -#. Page PRINT PROPERTIES -#: ../src/iop/negadoctor.c:979 -msgid "print properties" -msgstr "lastnosti tiska" - -#. print corrections -#: ../src/iop/negadoctor.c:982 -msgctxt "section" -msgid "virtual paper properties" -msgstr "virtualne lastnosti papirja" - -#: ../src/iop/negadoctor.c:988 -msgid "" -"correct the density of black after the inversion,\n" -"to adjust the global contrast while avoiding clipping shadows." -msgstr "" -"popravi gostoto črnine po inverziji,\n" -"za prilagajanje globalnega kontrasta, obenem pa v izogib obrezovanju senc." - -#: ../src/iop/negadoctor.c:993 -msgid "" -"select the grade of the virtual paper, which is actually\n" -"equivalent to applying a gamma. it compensates the film D max\n" -"and recovers the contrast. use a high grade for high D max." -msgstr "" -"izberite gradacijo navideznega papirja, ki je dejansko\n" -"enakovredno uporabi game. kompenzira D max filma\n" -"in povrne kontrast. uporabite visoko gradacijo za visok D max." - -#: ../src/iop/negadoctor.c:1001 -msgid "" -"gradually compress specular highlights past this value\n" -"to avoid clipping while pushing the exposure for mid-tones.\n" -"this somewhat reproduces the behavior of matte paper." -msgstr "" -"postopoma stisnite odsevne bleščave mimo te vrednosti\n" -"da se izognete obrezovanju ob povečevanju osvetlitev srednjih tonov.\n" -"to do neke mere odraža obnašanje mat papirja." - -#: ../src/iop/negadoctor.c:1005 -msgctxt "section" -msgid "virtual print emulation" -msgstr "posnemanje navideznega tiskanja" - -#: ../src/iop/negadoctor.c:1012 -msgid "" -"correct the printing exposure after inversion to adjust\n" -"the global contrast and avoid clipping highlights." -msgstr "" -"popravi osvetlitev tiskanja po inverziji, za prilagoditev\n" -"globalnega kontrasta v izogib obrezovanja bleščav." - -#: ../src/iop/negadoctor.c:1020 -msgid "toggle on or off the color controls" -msgstr "preklaplja upravljanje barv" - -#: ../src/iop/nlmeans.c:84 -msgid "astrophoto denoise" -msgstr "astro-fotografsko odstranjevaje šuma" - -#: ../src/iop/nlmeans.c:89 -msgid "denoise (non-local means)" -msgstr "odstranjevanje šuma (ne-lokalna povprečja)" - -#: ../src/iop/nlmeans.c:94 -msgid "apply a poisson noise removal best suited for astrophotography" -msgstr "" -"uporabi odstranjevanje poissonovega šuma, ki je najprimernejši za " -"astrofotografijo" - -#: ../src/iop/nlmeans.c:459 -msgid "radius of the patches to match" -msgstr "polmer ujemajočih krp" - -#: ../src/iop/nlmeans.c:467 -msgid "how much to smooth brightness" -msgstr "koliko zgladiti sijavost" - -#: ../src/iop/nlmeans.c:470 -msgid "how much to smooth colors" -msgstr "koliko razmazati barve" - -#. * let's fill the encapsulating widgets -#. preview mode -#. color scheme -#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2419 -#: ../src/views/darkroom.c:2437 ../src/views/darkroom.c:2444 -#: ../src/views/darkroom.c:2454 ../src/views/darkroom.c:2471 -msgid "overexposed" -msgstr "preosvetljeno" - -#: ../src/iop/overexposed.c:130 ../src/iop/overexposed.c:360 -msgid "module overexposed failed in buffer allocation" -msgstr "modul preosvetljenosti ni uspel pri dodeljevanju medpomnilnika" - -#: ../src/iop/overexposed.c:156 ../src/iop/overexposed.c:370 -msgid "module overexposed failed in color conversion" -msgstr "modul preosvetljenosti ni uspel pri pretvarjanju barv" - -#: ../src/iop/profile_gamma.c:96 -msgid "unbreak input profile" -msgstr "zopet sestavi vhodni profil" - -#: ../src/iop/profile_gamma.c:101 -msgid "correct input color profiles meant to be applied on non-linear RGB" -msgstr "popravi vhodne barvne profile, namenjeni uporabi pri ne-linearnem RGB" - -#: ../src/iop/profile_gamma.c:136 -msgid "16 EV dynamic range (generic)" -msgstr "(generični) dinamični razpon 16 EV" - -#: ../src/iop/profile_gamma.c:142 -msgid "14 EV dynamic range (generic)" -msgstr "(generični) dinamični razpon 14 EV" - -#: ../src/iop/profile_gamma.c:148 -msgid "12 EV dynamic range (generic)" -msgstr "(generični) dinamični razpon 12 EV" - -#: ../src/iop/profile_gamma.c:154 -msgid "10 EV dynamic range (generic)" -msgstr "(generični) dinamični razpon 10 EV" - -#: ../src/iop/profile_gamma.c:160 -msgid "08 EV dynamic range (generic)" -msgstr "(generični) dinamični razpon 08 EV" - -#: ../src/iop/profile_gamma.c:623 -msgid "linear part" -msgstr "linearni del" - -#: ../src/iop/profile_gamma.c:627 -msgid "gamma exponential factor" -msgstr "eksponentni faktor game" - -#: ../src/iop/profile_gamma.c:638 -msgid "adjust to match the average luma of the subject" -msgstr "prilagodi, da ustreza povprečni lumi subjekta" - -#: ../src/iop/profile_gamma.c:644 -msgid "" -"number of stops between middle gray and pure black\n" -"this is a reading a light meter would give you on the scene" -msgstr "" -"število stopenj med srednje sivo in čisto črno\n" -"ta odčitek bi dal tudi svetlomer na sceni" - -#: ../src/iop/profile_gamma.c:650 -msgid "" -"number of stops between pure black and pure white\n" -"this is a reading a light meter would give you on the scene" -msgstr "" -"število stopenj med čisto črno in čisto belo\n" -"ta odčitek bi dal tudi svetlomer na sceni" - -#: ../src/iop/profile_gamma.c:652 -msgctxt "section" -msgid "optimize automatically" -msgstr "avtomatično optimiziraj" - -#: ../src/iop/profile_gamma.c:656 -msgid "" -"enlarge or shrink the computed dynamic range\n" -"this is useful when noise perturbates the measurements" -msgstr "" -"povečaj ali zmanjšaj dinamični razpon\n" -"to je uporabno, kadar šum vpliva na meritve" - -#: ../src/iop/profile_gamma.c:660 -msgid "make an optimization with some guessing" -msgstr "izvedi optimizacijo z nekaj ugibanja" - -#: ../src/iop/profile_gamma.c:669 -msgid "tone mapping method" -msgstr "metoda preslikave tonov" - -#: ../src/iop/rawdenoise.c:124 -msgid "raw denoise" -msgstr "odstranjevanje šuma v surovem" - -#: ../src/iop/rawdenoise.c:129 -msgid "denoise the raw picture early in the pipeline" -msgstr "odstrani šum iz surove slike že zgodaj v cevovodu" - -#: ../src/iop/rawdenoise.c:939 -msgid "" -"raw denoising\n" -"only works for raw images." -msgstr "" -"odstranjevanje šuma\n" -"deluje samo na surovih slikah." - -#. * let's fill the encapsulating widgets -#. mode of operation -#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2387 ../src/views/darkroom.c:2393 -#: ../src/views/darkroom.c:2406 -msgid "raw overexposed" -msgstr "surovo preosvetljeno" - -#: ../src/iop/rawprepare.c:99 -msgctxt "modulename" -msgid "raw black/white point" -msgstr "surova črno/bela točka" - -#: ../src/iop/rawprepare.c:156 -msgid "" -"sets technical specificities of the raw sensor.\n" -"touch with great care!" -msgstr "" -"notranji modul za nastavitev tehničnih posebnosti surovega senzorja.\n" -"tega se dotikajte le z veliko skrbjo!" - -#: ../src/iop/rawprepare.c:168 -msgid "passthrough" -msgstr "direktni prenos" - -#: ../src/iop/rawprepare.c:655 -msgid "invalid crop parameters" -msgstr "neveljavni parametri obrezovanja" - -#: ../src/iop/rawprepare.c:656 -msgid "" -"please reset to defaults, update your preset or set to something correct" -msgstr "" -"ponovno nastavite na privzete vrednosti, posodobite prejšnje prednastavitve " -"ali nekaj pravilno nastavite" - -#: ../src/iop/rawprepare.c:922 -msgid "black level 0" -msgstr "raven črne 0" - -#: ../src/iop/rawprepare.c:923 -msgid "black level 1" -msgstr "raven črne 1" - -#: ../src/iop/rawprepare.c:924 -msgid "black level 2" -msgstr "raven črne 2" - -#: ../src/iop/rawprepare.c:925 -msgid "black level 3" -msgstr "raven črne 3" - -#: ../src/iop/rawprepare.c:952 -msgid "raw flat field correction to compensate for lens shading" -msgstr "korekcija surovega ravnega polja za kompenzacijo senčenja leč" - -#: ../src/iop/rawprepare.c:957 -msgctxt "section" -msgid "crop" -msgstr "obreži" - -#: ../src/iop/rawprepare.c:960 -msgid "crop left border" -msgstr "obreži levi rob" - -#: ../src/iop/rawprepare.c:964 -msgid "crop top border" -msgstr "obreži vrhnji rob" - -#: ../src/iop/rawprepare.c:968 -msgid "crop right border" -msgstr "obreži desni rob" - -#: ../src/iop/rawprepare.c:972 -msgid "crop bottom border" -msgstr "obreži rob dna" - -#: ../src/iop/rawprepare.c:981 -msgid "" -"raw black/white point correction\n" -"only works for the sensors that need it." -msgstr "" -"surovi popravek črne/bele točke\n" -"deluje samo na senzorjih, ki to potrebujejo." - -#: ../src/iop/relight.c:53 -msgid "fill-light 0.25EV with 4 zones" -msgstr "do-osvetljevanje 0.24 EV v 4 conah" - -#: ../src/iop/relight.c:57 -msgid "fill-shadow -0.25EV with 4 zones" -msgstr "do-osvetljevanje senc -0.25 v 4 conah" - -#: ../src/iop/relight.c:86 -msgid "fill light" -msgstr "dopolnilna svetloba" - -#: ../src/iop/relight.c:96 ../src/iop/zonesystem.c:122 -msgid "" -"this module is deprecated. please use the tone equalizer module instead." -msgstr "" -"ta modul je zastarel. namesto tega raje uporabite modul izenačevalnika tonov." - -#: ../src/iop/relight.c:263 -msgid "the fill-light in EV" -msgstr "dopolnilna svetloba v EV" - -#: ../src/iop/relight.c:272 -msgid "" -"select the center of fill-light\n" -"ctrl+click to select an area" -msgstr "" -"izberite center dodatne osvetlitve\n" -"krmilka+klik za izbiro površine" - -#: ../src/iop/relight.c:276 -msgid "toggle tool for picking median lightness in image" -msgstr "preklopno orodje za izbiro mediane svetlosti slike" - -#: ../src/iop/relight.c:279 ../src/libs/export.c:1131 -#: ../src/libs/metadata_view.c:147 ../src/libs/print_settings.c:2537 -msgid "width" -msgstr "širina" - -#: ../src/iop/relight.c:280 -msgid "width of fill-light area defined in zones" -msgstr "širina dopolnilne svetlobe določena v conah" - -#: ../src/iop/retouch.c:197 -msgid "retouch" -msgstr "retuširaj" - -#: ../src/iop/retouch.c:202 -msgid "split-frequency|healing|cloning|stamp" -msgstr "razcep-frekvenc|celjenje|kloniranje|žig" - -#: ../src/iop/retouch.c:208 -msgid "remove and clone spots, perform split-frequency skin editing" -msgstr "odstrani in kloniraj pege, izvedi urejanje kože z razcepom frekvenc" - -#: ../src/iop/retouch.c:211 -msgid "geometric and frequential, RGB" -msgstr "geometrijska in frekvenčna, RGB" - -#: ../src/iop/retouch.c:1538 -msgid "cannot display scales when the blending mask is displayed" -msgstr "ne morem prikazati meril, kadar je prikazana maska mešanja" - -#: ../src/iop/retouch.c:1861 ../src/iop/retouch.c:1863 -#: ../src/iop/retouch.c:1865 ../src/iop/retouch.c:1867 -#, c-format -msgid "default tool changed to %s" -msgstr "privzeto orodje spremenjeno na %s" - -#: ../src/iop/retouch.c:1861 -msgid "cloning" -msgstr "kloniranje" - -#: ../src/iop/retouch.c:1863 -msgid "healing" -msgstr "zdravljenje" - -#: ../src/iop/retouch.c:2226 -msgid "shapes:" -msgstr "oblike:" - -#: ../src/iop/retouch.c:2230 -msgid "" -"to add a shape select an algorithm and a shape type and click on the image.\n" -"shapes are added to the current scale" -msgstr "" -"za dodajanje oblike izberite algoritem iz vrst oblike in kliknite na sliko.\n" -"oblike so dodane na trenutna merila" - -#. display & suppress masks -#. copy/paste shapes -#. display final image/current scale -#. auto-levels button -#: ../src/iop/retouch.c:2233 ../src/iop/retouch.c:2334 -#: ../src/iop/retouch.c:2339 ../src/iop/retouch.c:2347 -#: ../src/iop/retouch.c:2351 ../src/iop/retouch.c:2358 -#: ../src/iop/retouch.c:2392 -msgid "editing" -msgstr "urejanje" - -#: ../src/iop/retouch.c:2233 -msgid "show and edit shapes on the current scale" -msgstr "prikaži in uredi oblike v trenutnem merilu" - -#: ../src/iop/retouch.c:2234 -msgid "show and edit shapes in restricted mode" -msgstr "prikaži in uredi oblike v omejevalnem načinu" - -#: ../src/iop/retouch.c:2257 -msgid "algorithms:" -msgstr "algoritmi:" - -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 -msgid "tools" -msgstr "orodja" - -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2278 -msgid "activate blur tool" -msgstr "aktiviraj orodje zamegljevanja" - -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 -msgid "change algorithm for current form" -msgstr "spremeni algoritem za trenutno obliko" - -#: ../src/iop/retouch.c:2264 ../src/iop/retouch.c:2281 -msgid "activate fill tool" -msgstr "aktiviraj orodje polnjenja" - -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2284 -msgid "activate cloning tool" -msgstr "aktiviraj orodje kloniranja" - -#: ../src/iop/retouch.c:2272 ../src/iop/retouch.c:2287 -msgid "activate healing tool" -msgstr "aktiviraj orodje celjenja" - -#. overwrite tooltip ourself to handle shift+click -#: ../src/iop/retouch.c:2276 -msgid "ctrl+click to change tool for current form" -msgstr "krmilka+klik za zamenjavo orodja za trenutno formo" - -#: ../src/iop/retouch.c:2277 -msgid "shift+click to set the tool as default" -msgstr "dvigalka+klik za nastavitev orodja kot privzetega" - -#: ../src/iop/retouch.c:2296 -msgid "scales:" -msgstr "merila:" - -#: ../src/iop/retouch.c:2301 -msgid "current:" -msgstr "trenutni:" - -#: ../src/iop/retouch.c:2306 -msgid "merge from:" -msgstr "zlij skupaj iz:" - -#: ../src/iop/retouch.c:2314 -msgid "" -"top slider adjusts where the merge scales start\n" -"bottom slider adjusts the number of scales\n" -"dot indicates the current scale\n" -"top line indicates that the scale is visible at current zoom level\n" -"bottom line indicates that the scale has shapes on it" -msgstr "" -"drsnik na vrhu prilagodi začetek meril zlivanja\n" -"drsnik na dnu prilagodi število meril\n" -"pika določa trenutno merilo\n" -"vrhnja črta označuje, da je merilo vidno pri trenutni ravni povečave\n" -"spodnja črta označuje, da ima merilo oblike na njemu" - -#: ../src/iop/retouch.c:2334 -msgid "display masks" -msgstr "maske prikaza" - -#: ../src/iop/retouch.c:2339 -msgid "temporarily switch off shapes" -msgstr "začasno izklopi oblike" - -#: ../src/iop/retouch.c:2347 -msgid "paste cut shapes to current scale" -msgstr "prilepi oblike v trenutno merilo" - -#: ../src/iop/retouch.c:2351 -msgid "cut shapes from current scale" -msgstr "izreži oblike iz trenutnega merila" - -#: ../src/iop/retouch.c:2358 -msgid "display wavelet scale" -msgstr "prikaži merilo valov" - -#: ../src/iop/retouch.c:2366 -msgctxt "section" -msgid "preview single scale" -msgstr "predogled posameznega merila" - -#: ../src/iop/retouch.c:2377 -msgid "adjust preview levels" -msgstr "prilagodi nivoje predogleda" - -#: ../src/iop/retouch.c:2392 ../src/iop/rgblevels.c:1051 -msgid "auto levels" -msgstr "avtomatski nivoji" - -#: ../src/iop/retouch.c:2400 -msgid "shape selected:" -msgstr "izbrana oblika:" - -#: ../src/iop/retouch.c:2405 -msgid "" -"click on a shape to select it,\n" -"to unselect click on an empty space" -msgstr "" -"kliknite na obliko za njen izbor.\n" -"za preklic izbora kliknite na prazen prostor" - -#: ../src/iop/retouch.c:2412 -msgid "erase the detail or fills with chosen color" -msgstr "brisi podrobnost ali izpolni z izbrano barvo" - -#: ../src/iop/retouch.c:2419 -msgid "fill color: " -msgstr "barva polnila: " - -#: ../src/iop/retouch.c:2424 ../src/iop/retouch.c:2425 -msgid "select fill color" -msgstr "izberi barvo polnila" - -#: ../src/iop/retouch.c:2430 -msgid "pick fill color from image" -msgstr "izberi barvo polnila iz slike" - -#: ../src/iop/retouch.c:2431 -msgid "pick fill color" -msgstr "poberi barvo polnila" - -#: ../src/iop/retouch.c:2439 -msgid "adjusts color brightness to fine-tune it. works with erase as well" -msgstr "prilagodi sijavost barve za fino toniranje. deluje tudi z brisanjem" - -#: ../src/iop/retouch.c:2445 -msgid "type for the blur algorithm" -msgstr "tip algoritma zamegljevanja" - -#: ../src/iop/retouch.c:2449 -msgid "radius of the selected blur type" -msgstr "radij izbranega tipa zamegljevanja" - -#: ../src/iop/retouch.c:2455 -msgid "set the opacity on the selected shape" -msgstr "določi neprosojnost izbrane oblike" - -#: ../src/iop/retouch.c:2461 -msgctxt "section" -msgid "retouch tools" -msgstr "orodja retuširanja" - -#. wavelet decompose -#: ../src/iop/retouch.c:2470 -msgctxt "section" -msgid "wavelet decompose" -msgstr "dekompozicija valovanja" - -#. shapes -#: ../src/iop/retouch.c:2484 -msgctxt "section" -msgid "shapes" -msgstr "oblike" - -#: ../src/iop/retouch.c:3589 ../src/iop/retouch.c:4427 -#, c-format -msgid "max scale is %i for this image size" -msgstr "max merilo je %i te velikosti slike" - -#: ../src/iop/rgbcurve.c:122 -msgid "rgb curve" -msgstr "krivulja rgb" - -#: ../src/iop/rgbcurve.c:142 -msgid "alter an image’s tones using curves in RGB color space" -msgstr "spremeni tone slike s pomočjo krivulj v barvnem prostoru RGB" - -#: ../src/iop/rgbcurve.c:193 ../src/iop/tonecurve.c:548 -msgid "gamma 1.0 (linear)" -msgstr "gama 1.0 (linearna)" - -#: ../src/iop/rgbcurve.c:203 ../src/iop/tonecurve.c:558 -msgid "contrast - med (linear)" -msgstr "kontrast - med (linearni)" - -#: ../src/iop/rgbcurve.c:212 ../src/iop/tonecurve.c:567 -msgid "contrast - high (linear)" -msgstr "kontrast - visoki (linearni)" - -#: ../src/iop/rgbcurve.c:226 ../src/iop/tonecurve.c:579 -msgid "contrast - med (gamma 2.2)" -msgstr "kontrast - med (gama 2.2)" - -#: ../src/iop/rgbcurve.c:239 ../src/iop/tonecurve.c:590 -msgid "contrast - high (gamma 2.2)" -msgstr "kontrast - visoki (gama 2.2)" - -#: ../src/iop/rgbcurve.c:252 ../src/iop/tonecurve.c:603 -msgid "gamma 2.0" -msgstr "gama 2.0" - -#: ../src/iop/rgbcurve.c:258 ../src/iop/tonecurve.c:609 -msgid "gamma 0.5" -msgstr "gama 0.5" - -#: ../src/iop/rgbcurve.c:263 ../src/iop/tonecurve.c:614 -msgid "logarithm (base 2)" -msgstr "logaritem (osnova 2)" - -#: ../src/iop/rgbcurve.c:268 ../src/iop/tonecurve.c:619 -msgid "exponential (base 2)" -msgstr "eksponentno (osnova 2)" - -#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:999 -msgid "choose between linked and independent channels." -msgstr "izberite med povezanimi in neodvisnimi kanali." - -#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1003 -msgid "curve nodes for r channel" -msgstr "vozli krivulje za r kanal" - -#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1004 -msgid "curve nodes for g channel" -msgstr "vozli krivulje za kanal G" - -#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1005 -msgid "curve nodes for b channel" -msgstr "vozli krivulje za B kanal" - -#: ../src/iop/rgblevels.c:102 -msgid "rgb levels" -msgstr "nivoji rgb" - -#: ../src/iop/rgblevels.c:122 -msgid "adjust black, white and mid-gray points in RGB color space" -msgstr "prilagodi črne, bele in srednje sive točke v barvnem prostoru RGB" - -#: ../src/iop/rgblevels.c:1056 -msgid "auto region" -msgstr "avtomatično področje" - -#: ../src/iop/rgblevels.c:1058 -msgid "" -"apply auto levels based on a region defined by the user\n" -"click and drag to draw the area\n" -"right click to cancel" -msgstr "" -"uporabi avtomatske nivoje glede na območje, ki ga je določil uporabnik\n" -"klikni in povleci za določitev območja\n" -"desni klik za preklic" - -#: ../src/iop/rotatepixels.c:70 -msgctxt "modulename" -msgid "rotate pixels" -msgstr "sukanje pikslov" - -#: ../src/iop/rotatepixels.c:97 ../src/iop/scalepixels.c:82 -msgid "" -"internal module to setup technical specificities of raw sensor.\n" -"\n" -"you should not touch values here!" -msgstr "" -"notranji modul za nastavitev tehničnih posebnosti surovega senzorja.\n" -"\n" -"ne bi se smeli dotikati vrednosti tukaj!" - -#: ../src/iop/rotatepixels.c:366 -msgid "automatic pixel rotation" -msgstr "avtomatično sukanje pikslov" - -#: ../src/iop/rotatepixels.c:367 -msgid "" -"automatic pixel rotation\n" -"only works for the sensors that need it." -msgstr "" -"avtomatično sukanje pikslov\n" -"deluje samo za senzorje, ki to potrebujejo." - -#: ../src/iop/scalepixels.c:55 -msgctxt "modulename" -msgid "scale pixels" -msgstr "spreminjanje merila pikslov" - -#: ../src/iop/scalepixels.c:271 -msgid "automatic pixel scaling" -msgstr "avtomatična sprememba merila pikslov" - -#: ../src/iop/scalepixels.c:272 -msgid "" -"automatic pixel scaling\n" -"only works for the sensors that need it." -msgstr "" -"avtomatska sprememba merila pikslov\n" -"deluje samo za senzorje, ki to potrebujejo." - -#: ../src/iop/shadhi.c:175 -msgid "shadows and highlights" -msgstr "sence in bleščave" - -#: ../src/iop/shadhi.c:195 -msgid "" -"modify the tonal range of the shadows and highlights\n" -"of an image by enhancing local contrast." -msgstr "" -"spremeni razpon tonov senc in bleščav\n" -"slike s povečanjem lokalnega kontrasta." - -#: ../src/iop/shadhi.c:676 ../src/iop/splittoning.c:548 -msgid "compress" -msgstr "stisni" - -#: ../src/iop/shadhi.c:683 -msgid "correct shadows" -msgstr "popravek senc" - -#: ../src/iop/shadhi.c:684 -msgid "correct highlights" -msgstr "popravek bleščav" - -#: ../src/iop/shadhi.c:685 -msgid "shift white point" -msgstr "premik točke beline" - -#: ../src/iop/shadhi.c:687 -msgid "filter to use for softening. bilateral avoids halos" -msgstr "filter za mehčanje. bilateralna raba se izogne odsevom" - -#: ../src/iop/shadhi.c:688 -msgid "" -"compress the effect on shadows/highlights and\n" -"preserve mid-tones" -msgstr "" -"stisni učinke na sencah/bleščavah in\n" -"ohrani srednje tone" - -#: ../src/iop/shadhi.c:689 -msgid "adjust saturation of shadows" -msgstr "prilagodi nasičenost senc" - -#: ../src/iop/shadhi.c:690 -msgid "adjust saturation of highlights" -msgstr "prilagodi nasičenost bleščav" - -#: ../src/iop/sharpen.c:73 -msgctxt "modulename" -msgid "sharpen" -msgstr "naostri" - -#: ../src/iop/sharpen.c:93 -msgid "sharpen the details in the image using a standard UnSharp Mask (USM)" -msgstr "izostri podrobnosti na sliki s standardno masko razostritve (USM)" - -#: ../src/iop/sharpen.c:95 -msgid "linear or non-linear, Lab, display or scene-referred" -msgstr "linearno ali ne-linearno, Lab, glede na zaslon ali sceno" - -#: ../src/iop/sharpen.c:97 -msgid "quasi-linear, Lab, display or scene-referred" -msgstr "kvazi-linearno, Lab, glede na zaslon ali sceno" - -#. add the preset. -#. restrict to raw images -#: ../src/iop/sharpen.c:104 ../src/iop/sharpen.c:108 -msgid "sharpen" -msgstr "naostri" - -#: ../src/iop/sharpen.c:443 -msgid "spatial extent of the unblurring" -msgstr "prostorski učinek odstranjevanja zamegljenosti" - -#: ../src/iop/sharpen.c:447 -msgid "strength of the sharpen" -msgstr "moč ostrenja" - -#: ../src/iop/sharpen.c:451 -msgid "threshold to activate sharpen" -msgstr "prag za aktiviranje ostrenja" - -#: ../src/iop/sigmoid.c:89 -msgid "sigmoid" -msgstr "sigmoid" - -#: ../src/iop/sigmoid.c:94 -msgid "tone mapping|view transform|display transform" -msgstr "preslikava tonov|pogled preoblikovanja|prikaz preoblikovanja" - -#: ../src/iop/sigmoid.c:99 -msgid "" -"apply a view transform to make a image displayable\n" -"on a screen or print. uses a robust and smooth\n" -"tone curve with optional color preservation methods." -msgstr "" -"uporabi pretvorbo pogleda, da naredi omogoči prikaz slike\n" -"na zaslonu ali v tisku. uporablja robustno in gladko\n" -"krivuljo tonov z izbirnimi metodami ohranjanja barv." - -#: ../src/iop/sigmoid.c:155 -msgid "neutral gray" -msgstr "nevtralno siva" - -#: ../src/iop/sigmoid.c:160 -msgid "ACES 100-nit like" -msgstr "kot ACES 100-" - -#: ../src/iop/sigmoid.c:165 -msgid "Reinhard" -msgstr "Reinhard" - -#: ../src/iop/sigmoid.c:683 -msgid "" -"compression of the applied curve\n" -"implicitly defines the supported input dynamic range" -msgstr "" -"stiskanje uporabljene krivulje\n" -"implicitno definira podprti vhodni dinamični razpon" - -#: ../src/iop/sigmoid.c:686 -msgid "" -"shift the compression towards shadows or highlights.\n" -"negative values increase contrast in shadows.\n" -"positive values increase contrast in highlights.\n" -"the opposite end will see a reduction in contrast." -msgstr "" -"premakni stiskanje proti sencam ali bleščavah.\n" -"negativne vrednosti povečajo kontrast v senci.\n" -"pozitivne vrednosti povečajo kontrast v bleščavah.\n" -"na nasprotnem koncu boste videli znižanje kontrasta." - -#: ../src/iop/sigmoid.c:695 -msgid "" -"optional correction of the hue twist introduced by\n" -"the per-channel processing method." -msgstr "" -"neobvezna korekcija zasuka odtenka, ki ga je uvedla\n" -"metoda obdelave po kanalu." - -#: ../src/iop/sigmoid.c:702 -msgid "display luminance" -msgstr "prikaži svetlost" - -#: ../src/iop/sigmoid.c:706 -msgid "set display black/white targets" -msgstr "nastavi črno/bele cilje zaslona" - -#: ../src/iop/sigmoid.c:714 -msgid "" -"the black luminance of the target display or print.\n" -"can be used creatively for a faded look." -msgstr "" -"črna svetlost ciljnega prikaza ali tiska\n" -"lahko kreativno uporabite za zbledel videz." - -#: ../src/iop/sigmoid.c:719 -msgid "" -"the white luminance of the target display or print.\n" -"can be used creatively for a faded look or blowing out whites earlier." -msgstr "" -"bela svetlost ciljnega zaslona ali tiska.\n" -"lahko kreativno uporabite za zbledel videz ali da že prej odstranite beline." - -#: ../src/iop/soften.c:80 -msgid "soften" -msgstr "zmehčaj" - -#: ../src/iop/soften.c:100 -msgid "create a softened image using the Orton effect" -msgstr "ustvari zmehčano sliko z uporabo Ortonovega učinka" - -#: ../src/iop/soften.c:371 -msgid "the size of blur" -msgstr "velikost zamegljevanja" - -#: ../src/iop/soften.c:375 -msgid "the saturation of blur" -msgstr "nasičenje zamegljenosti" - -#: ../src/iop/soften.c:379 -msgid "the brightness of blur" -msgstr "sijavost zamegljenosti" - -#: ../src/iop/soften.c:383 -msgid "the mix of effect" -msgstr "mešanica učinkov" - -#: ../src/iop/splittoning.c:81 -msgid "split-toning" -msgstr "razcepljanje odtenkov" - -#: ../src/iop/splittoning.c:101 -msgid "" -"use two specific colors for shadows and highlights and\n" -"create a linear toning effect between them up to a pivot." -msgstr "" -"uporabi dve posebni barvi za sence in bleščave in\n" -"ustvari linearni tonski učinek med njima do vrtišča." - -#: ../src/iop/splittoning.c:118 -msgid "authentic sepia" -msgstr "izvirna sepia" - -#: ../src/iop/splittoning.c:127 -msgid "authentic cyanotype" -msgstr "izvirna cianotipija" - -#: ../src/iop/splittoning.c:136 -msgid "authentic platinotype" -msgstr "izvirna platinotipija" - -#: ../src/iop/splittoning.c:145 -msgid "chocolate brown" -msgstr "čokoladno rjava" - -#: ../src/iop/splittoning.c:490 -msgid "select the saturation tone" -msgstr "izberi ton nasičenja" - -#: ../src/iop/splittoning.c:494 -msgid "select tone color" -msgstr "izberi barvni ton" - -#: ../src/iop/splittoning.c:524 -msgctxt "section" -msgid "shadows" -msgstr "sence" - -#: ../src/iop/splittoning.c:530 -msgctxt "section" -msgid "highlights" -msgstr "bleščave" - -#: ../src/iop/splittoning.c:539 -msgid "balance" -msgstr "ravnotežje" - -#: ../src/iop/splittoning.c:546 -msgid "the balance of center of split-toning" -msgstr "ravnotežje centra razcepljanja odtenkov" - -#: ../src/iop/splittoning.c:550 -msgid "" -"compress the effect on highlights/shadows and\n" -"preserve mid-tones" -msgstr "" -"stisni učinek na bleščavah/sencah in\n" -"ohrani srednje tone" - -#: ../src/iop/spots.c:58 -msgid "spot removal" -msgstr "odstranjevanje pik" - -#: ../src/iop/spots.c:63 -msgid "this module is deprecated. please use the retouch module instead." -msgstr "ta modul je zastarel. namesto tega raje uporabite modul retuširanja." - -#: ../src/iop/spots.c:68 -msgid "remove sensor dust spots" -msgstr "odstrani pike zaradi prahu na senzorju" - -#: ../src/iop/spots.c:71 -msgid "geometric, raw" -msgstr "geometrijsko, surovo" - -#: ../src/iop/spots.c:226 -msgid "spot module is limited to 64 shapes. please add a new instance!" -msgstr "modul točk je omejen na 64 oblik. dodajte nov pojavek!" - -#: ../src/iop/spots.c:872 -msgid "number of strokes:" -msgstr "število potez:" - -#: ../src/iop/spots.c:876 -msgid "" -"click on a shape and drag on canvas.\n" -"use the mouse wheel to adjust size.\n" -"right click to remove a shape." -msgstr "" -"kliknite na obliko in jo povlecite na platno.\n" -"uporabite miškin kolešček za prilagoditev velikosti.\n" -"desni gumb za odstranitev oblike." - -#: ../src/iop/spots.c:879 -msgid "show and edit shapes" -msgstr "prikaži in uredi oblike" - -#: ../src/iop/temperature.c:204 -msgctxt "modulename" -msgid "white balance" -msgstr "ravnotežje beline" - -#: ../src/iop/temperature.c:211 -msgid "scale raw RGB channels to balance white and help demosaicing" -msgstr "" -"prilagodi surove kanale RGB za uravnoteženje beline in pomoč pri " -"odstranjevanju mozaičnosti" - -#: ../src/iop/temperature.c:1149 -msgid "white balance applied twice" -msgstr "uravnoteženje beline uporabljeno dvakrat" - -#: ../src/iop/temperature.c:1150 -msgid "" -"the color calibration module is enabled,\n" -"and performing chromatic adaptation.\n" -"set the white balance here to camera reference (D65)\n" -"or disable chromatic adaptation in color calibration." -msgstr "" -"modul za umerjanje barv je omogočen,\n" -"in izvaja prilagajanje barv.\n" -"tu nastavite ravnovesje beline na referenco kamere (D65)\n" -"ali onemogočite prilagajanje barv pri umerjanju barv." - -#: ../src/iop/temperature.c:1430 -#, c-format -msgid "`%s' color matrix not found for image" -msgstr "`%s' matrike barv za sliko ne najdem" - -#: ../src/iop/temperature.c:1459 -#, c-format -msgid "failed to read camera white balance information from `%s'!" -msgstr "iz kamere nisem uspel prebrati podatkov o ravnotežju beline iz '%s'!" - -#: ../src/iop/temperature.c:1631 -msgctxt "white balance" -msgid "as shot" -msgstr "kot posneto" - -#. old "spot", reason: describes exactly what'll happen -#: ../src/iop/temperature.c:1634 -msgctxt "white balance" -msgid "from image area" -msgstr "iz področja slike" - -#: ../src/iop/temperature.c:1635 -msgctxt "white balance" -msgid "user modified" -msgstr "uporabnikove spremembe" - -#. old "camera neutral", reason: better matches intent -#: ../src/iop/temperature.c:1637 -msgctxt "white balance" -msgid "camera reference" -msgstr "glede na kamero" - -#: ../src/iop/temperature.c:1920 ../src/iop/temperature.c:1938 -msgid "green channel coefficient" -msgstr "koeficient zelenega kanala" - -#: ../src/iop/temperature.c:1922 -msgid "magenta channel coefficient" -msgstr "koeficient kanala magente" - -#: ../src/iop/temperature.c:1924 -msgid "cyan channel coefficient" -msgstr "koeficient kanala ciana" - -#: ../src/iop/temperature.c:1926 -msgid "yellow channel coefficient" -msgstr "koeficient rumenega kanala" - -#: ../src/iop/temperature.c:1936 -msgid "red channel coefficient" -msgstr "koeficient rdečega kanala" - -#: ../src/iop/temperature.c:1940 -msgid "blue channel coefficient" -msgstr "koeficient modrega kanala" - -#: ../src/iop/temperature.c:1942 -msgid "emerald channel coefficient" -msgstr "koeficient smaragdnega kanala" - -#. relabel to settings to remove confusion between module presets -#. and white balance settings -#: ../src/iop/temperature.c:2029 ../src/iop/temperature.c:2042 -#: ../src/iop/temperature.c:2049 ../src/iop/temperature.c:2055 -#: ../src/iop/temperature.c:2074 -msgid "settings" -msgstr "nastavitve" - -#: ../src/iop/temperature.c:2029 -msgid "as shot" -msgstr "kot posnetek" - -#: ../src/iop/temperature.c:2032 -msgid "set white balance to as shot" -msgstr "nastavitev beline kot na posnetku" - -#: ../src/iop/temperature.c:2042 -msgid "from image area" -msgstr "iz območja slike" - -#: ../src/iop/temperature.c:2049 -msgid "user modified" -msgstr "uporabnikove spremembe" - -#: ../src/iop/temperature.c:2052 -msgid "set white balance to user modified" -msgstr "nastavitve ravnotežje beline na uporabnikove spremembe" - -#: ../src/iop/temperature.c:2055 -msgid "camera reference" -msgstr "glede na kamero" - -#: ../src/iop/temperature.c:2060 -msgid "" -"set white balance to camera reference point\n" -"in most cases it should be D65" -msgstr "" -"nastavi ravnovesje beline na referenčno točko kamere\n" -"v večini primerov bi morala biti D65" - -#: ../src/iop/temperature.c:2075 -msgid "choose white balance setting" -msgstr "izberi nastavitev ravnotežja beline" - -#: ../src/iop/temperature.c:2080 -msgid "finetune" -msgstr "natančno prilagajanje" - -#: ../src/iop/temperature.c:2082 -msgid "fine tune camera's white balance setting" -msgstr "natančno nastavljanje uravnoteženja beline kamere" - -#: ../src/iop/temperature.c:2093 -msgctxt "section" -msgid "scene illuminant temp" -msgstr "temperatura osvetljevalnika scene" - -#: ../src/iop/temperature.c:2094 -msgid "click to cycle color mode on sliders" -msgstr "kliknite za kroženje barvnih načinov na drsnikih" - -#: ../src/iop/temperature.c:2108 -msgid "color temperature (in Kelvin)" -msgstr "barvna temperatura (v Kelvinih)" - -#: ../src/iop/temperature.c:2114 -msgid "tint" -msgstr "odtenek" - -#: ../src/iop/temperature.c:2117 -msgid "color tint of the image, from magenta (value < 1) to green (value > 1)" -msgstr "barvni odtenek slike, od magente (vrednost <1) do zelene (vrednost> 1)" - -#: ../src/iop/temperature.c:2123 -msgid "channel coefficients" -msgstr "koeficienti kanalov" - -#: ../src/iop/temperature.c:2158 -msgid "white balance disabled for camera" -msgstr "uravnoteženje beline na kameri izklopljeno" - -#: ../src/iop/tonecurve.c:190 -msgid "tone curve" -msgstr "krivulja tonov" - -#: ../src/iop/tonecurve.c:210 -msgid "alter an image’s tones using curves" -msgstr "spremeni tone slike s pomočjo krivulj" - -#: ../src/iop/tonecurve.c:1125 -msgid "" -"if set to auto, a and b curves have no effect and are not displayed. chroma " -"values (a and b) of each pixel are then adjusted based on L curve data. auto " -"XYZ is similar but applies the saturation changes in XYZ space." -msgstr "" -"če je nastavljeno na avto, potem krivulji a in b nimata vpliva in nista " -"prikazani. vrednosti krome (a in b) vsakega piksla sta prilagojeni glede na " -"krivuljo L. avto XYZ deluje podobno, a se nanaša na nasičenost v prostoru " -"XYZ." - -#: ../src/iop/tonecurve.c:1134 -msgid "tonecurve for L channel" -msgstr "krivulja tonov za kanal L" - -#: ../src/iop/tonecurve.c:1135 -msgid "tonecurve for a channel" -msgstr "krivulja tonov za kanal a" - -#: ../src/iop/tonecurve.c:1136 -msgid "tonecurve for b channel" -msgstr "krivulja tonov za kanal b" - -#: ../src/iop/tonecurve.c:1143 ../src/iop/watermark.c:1305 -#: ../src/libs/colorpicker.c:597 -msgid "pick color" -msgstr "izberi barvo" - -#: ../src/iop/toneequal.c:311 -msgid "tone equalizer" -msgstr "izenačevalnik tonov" - -#: ../src/iop/toneequal.c:316 -msgid "tone curve|tone mapping|relight|background light|shadows highlights" -msgstr "" -"krivulja tonov|preslikava tonov|ponovna osvetljava|svetloba v ozadju|" -"bleščave v senci" - -#: ../src/iop/toneequal.c:323 -msgid "relight the scene as if the lighting was done directly on the scene" -msgstr "" -"ponovno osvetli sceno, kot da bi osvetlitev potekala neposredno na sceni" - -#: ../src/iop/toneequal.c:326 -msgid "quasi-linear, RGB" -msgstr "kvazi-linearna, RGB" - -#: ../src/iop/toneequal.c:327 -msgid "quasi-linear, RGB, scene-referred" -msgstr "kvazi-linearni, RGB, glede na sceno" - -#: ../src/iop/toneequal.c:458 -msgid "simple tone curve" -msgstr "preprosta krivulja tonov" - -#: ../src/iop/toneequal.c:472 -msgid "mask blending: all purposes" -msgstr "mešanje mask : vsi nameni" - -#: ../src/iop/toneequal.c:479 -msgid "mask blending: people with backlight" -msgstr "mešanje mask : osebe osvetljene od zadaj" - -#: ../src/iop/toneequal.c:496 -msgid "compress shadows/highlights (EIGF): strong" -msgstr "stiskanje senc/bleščav (EIGF) : močno" - -#: ../src/iop/toneequal.c:501 -msgid "compress shadows/highlights (GF): strong" -msgstr "stiskanje senc/bleščav (GF) : močno" - -#: ../src/iop/toneequal.c:510 -msgid "compress shadows/highlights (EIGF): medium" -msgstr "stiskanje senc/bleščav (EIGF): srednje" - -#: ../src/iop/toneequal.c:515 -msgid "compress shadows/highlights (GF): medium" -msgstr "stiskanje senc/bleščav (GF): srednje" - -#: ../src/iop/toneequal.c:524 -msgid "compress shadows/highlights (EIGF): soft" -msgstr "stiskanje senc/bleščav (EIGF): mehko" - -#: ../src/iop/toneequal.c:529 -msgid "compress shadows/highlights (GF): soft" -msgstr "stiskanje senc/bleščav (GF): mehko" - -#: ../src/iop/toneequal.c:537 -msgid "contrast tone curve: soft" -msgstr "krivulja kontrastnih tonov: mehka" - -#: ../src/iop/toneequal.c:542 -msgid "contrast tone curve: medium" -msgstr "krivulja kontrastnih tonov: srednja" - -#: ../src/iop/toneequal.c:547 -msgid "contrast tone curve: strong" -msgstr "krivulja kontrastnih tonov: močna" - -#: ../src/iop/toneequal.c:570 -msgid "relight: fill-in" -msgstr "ponovna osvetljava: doosvetlitev" - -#: ../src/iop/toneequal.c:627 -msgid "" -"tone equalizer needs to be after distortion modules in the pipeline – " -"disabled" -msgstr "" -"izenačevalnik tonov mora biti v zaporedju postopkov izza modulov " -"preobražanja - onemogočeno" - -#: ../src/iop/toneequal.c:1091 -msgid "tone equalizer failed to allocate memory, check your RAM settings" -msgstr "" -"izenačevalnik tonov ni uspel pridobiti dovolj pomnilnika, preverite " -"nastavitve za RAM" - -#: ../src/iop/toneequal.c:1795 ../src/iop/toneequal.c:2180 -msgid "the interpolation is unstable, decrease the curve smoothing" -msgstr "interpolacija ni stabilna, zmanjšajte glajenje krivulje" - -#: ../src/iop/toneequal.c:1830 ../src/iop/toneequal.c:1897 -msgid "wait for the preview to finish recomputing" -msgstr "počakajte za predogled, da končam ponovni izračun" - -#: ../src/iop/toneequal.c:2037 ../src/iop/toneequal.c:2587 -msgid "" -"scroll over image to change tone exposure\n" -"shift+scroll for large steps; ctrl+scroll for small steps" -msgstr "" -"podrsajte preko slike za spremembo tona osvetlitve\n" -"dvigalka+drsanje v velikih korakih; krmilka+drsanje v majhnih korakih" - -#: ../src/iop/toneequal.c:2185 -msgid "some parameters are out-of-bounds" -msgstr "nekaj parametrov je izven meja" - -#: ../src/iop/toneequal.c:2524 -#, c-format -msgid "%+.1f EV" -msgstr "%+.1f EV" - -#: ../src/iop/toneequal.c:3236 -#, c-format -msgid "[%s over image] change tone exposure" -msgstr "[%s prek slike] spremeni ton osvetlitve" - -#: ../src/iop/toneequal.c:3239 -#, c-format -msgid "[%s over image] change tone exposure in large steps" -msgstr "[%s nad sliko] spremeni osvetlitev tonov v velikih korakih" - -#: ../src/iop/toneequal.c:3242 -#, c-format -msgid "[%s over image] change tone exposure in small steps" -msgstr "[%s nad sliko] spremeni osvetlitev tonov v majhnih korakih" - -#. Simple view -#: ../src/iop/toneequal.c:3323 ../src/iop/toneequal.c:3352 -#: ../src/iop/toneequal.c:3353 ../src/iop/toneequal.c:3354 -#: ../src/iop/toneequal.c:3355 ../src/iop/toneequal.c:3356 -#: ../src/iop/toneequal.c:3357 ../src/iop/toneequal.c:3358 -#: ../src/iop/toneequal.c:3359 ../src/iop/toneequal.c:3360 -msgid "simple" -msgstr "enostavno" - -#: ../src/iop/toneequal.c:3352 -msgid "-8 EV" -msgstr "-8 EV" - -#: ../src/iop/toneequal.c:3353 -msgid "-7 EV" -msgstr "-7 EV" - -#: ../src/iop/toneequal.c:3354 -msgid "-6 EV" -msgstr "-6 EV" - -#: ../src/iop/toneequal.c:3355 -msgid "-5 EV" -msgstr "-5 EV" - -#: ../src/iop/toneequal.c:3356 -msgid "-4 EV" -msgstr "-4 EV" - -#: ../src/iop/toneequal.c:3357 -msgid "-3 EV" -msgstr "-3 EV" - -#: ../src/iop/toneequal.c:3358 -msgid "-2 EV" -msgstr "-2 EV" - -#: ../src/iop/toneequal.c:3359 -msgid "-1 EV" -msgstr "-1 EV" - -#: ../src/iop/toneequal.c:3360 -msgid "+0 EV" -msgstr "+0 EV" - -#. Advanced view -#: ../src/iop/toneequal.c:3364 -msgid "advanced" -msgstr "napredno" - -#: ../src/iop/toneequal.c:3391 -msgid "double-click to reset the curve" -msgstr "dvojni klik za ponovno nastavitev krivulje" - -#: ../src/iop/toneequal.c:3395 -msgid "curve smoothing" -msgstr "glajenje krivulje" - -#: ../src/iop/toneequal.c:3398 -msgid "" -"positive values will produce more progressive tone transitions\n" -"but the curve might become oscillatory in some settings.\n" -"negative values will avoid oscillations and behave more robustly\n" -"but may produce brutal tone transitions and damage local contrast." -msgstr "" -"pozitivne vrednosti bodo imele za posledico močnejše spremembe tonov\n" -"toda krivulja lahko pri nekaterih nastavitvah oscilira.\n" -"negativne vrednosti se izogibajo oscilacijam in se obnašajo bolj robustno\n" -"a lahko privedejo do brutalnih sprememb tonov in škodijo lokalnemu kontrastu." - -#. Masking options -#: ../src/iop/toneequal.c:3408 -msgid "masking" -msgstr "maskirano" - -#: ../src/iop/toneequal.c:3413 -msgid "" -"preview the mask and chose the estimator that gives you the\n" -"higher contrast between areas to dodge and areas to burn" -msgstr "" -"predogled maske in izbira ocenjevalca, ki vam daje\n" -"večji kontrast med območji za potemnjevanje in območji za dodatno " -"osvetljevanje" - -#: ../src/iop/toneequal.c:3416 -msgid "details" -msgstr "podrobnosti" - -#: ../src/iop/toneequal.c:3417 -msgid "preserve details" -msgstr "ohrani podrobnosti" - -#: ../src/iop/toneequal.c:3420 -msgid "" -"'no' affects global and local contrast (safe if you only add contrast)\n" -"'guided filter' only affects global contrast and tries to preserve local " -"contrast\n" -"'averaged guided filter' is a geometric mean of 'no' and 'guided filter' " -"methods\n" -"'EIGF' (exposure-independent guided filter) is a guided filter that is " -"exposure-independent, it smooths shadows and highlights the same way " -"(contrary to guided filter which smooths less the highlights)\n" -"'averaged EIGF' is a geometric mean of 'no' and 'exposure-independent guided " -"filter' methods" -msgstr "" -"'ne' vpliva na globalni in lokalni kontrast (varno, če dodate samo " -"kontrast)\n" -"'vodeni filter' vpliva samo na globalni kontrast in poskuša ohraniti lokalni " -"kontrast\n" -"'povprečni vodeni filter' je geometrično povprečje metode 'ne' in 'vodenega " -"filtra'\n" -"'EIGF' (angl. exposure-independent guided filter - od osvetlitve neodvisni " -"vodeni filter) je vodeni filter, ki je neodvisen od osvetlitve, na enak " -"način gladi sence in bleščave (v nasprotju z vodenim filtrom, ki manj gladi " -"bleščave)\n" -"'povprečeni EIGF' je geometrično povprečje metode 'ne' in 'od osvetlitve " -"neodvisnega vodenega filtra'" - -#: ../src/iop/toneequal.c:3433 -msgid "" -"number of passes of guided filter to apply\n" -"helps diffusing the edges of the filter at the expense of speed" -msgstr "" -"število prehodov vodenega filtra\n" -"pomaga pri difuziji robov na račun hitrosti" - -#: ../src/iop/toneequal.c:3441 -msgid "" -"diameter of the blur in percent of the largest image size\n" -"warning: big values of this parameter can make the darkroom\n" -"preview much slower if denoise profiled is used." -msgstr "" -"premer zamegljevanja v deležu velikosti največje slike\n" -"opozorilo: velike vrednosti tega parametra bodo povzročile v programu,\n" -"da bo predogled mnogo počasnejši, če je uporabljen profil odstranjevanja " -"šuma." - -#: ../src/iop/toneequal.c:3449 -msgid "" -"precision of the feathering:\n" -"higher values force the mask to follow edges more closely\n" -"but may void the effect of the smoothing\n" -"lower values give smoother gradients and better smoothing\n" -"but may lead to inaccurate edges taping and halos" -msgstr "" -"natančnost mehčanja s perjem:\n" -"višje vrednosti silijo masko, da bolj natančno sledi robovom\n" -"vendar lahko izniči učinek glajenja\n" -"nižje vrednosti dajejo bolj gladke naklone in boljše glajenje\n" -"vendar lahko privedejo do nenatančnega stikanja robov in halo efektov" - -#: ../src/iop/toneequal.c:3456 -msgctxt "section" -msgid "mask post-processing" -msgstr "naknadna obdelava po maski" - -#: ../src/iop/toneequal.c:3467 -msgid "" -"mask histogram span between the first and last deciles.\n" -"the central line shows the average. orange bars appear at extrema if " -"clipping occurs." -msgstr "" -"maskiranje obsega histograma med prvim in zadnjim decilom.\n" -"osrednja krivulja prikazuje povprečje, oranžen stolpec se prikaže ob " -"skrajnih vrednostih, če pride do obrezovanja." - -#: ../src/iop/toneequal.c:3475 -msgid "" -"0 disables the quantization.\n" -"higher values posterize the luminance mask to help the guiding\n" -"produce piece-wise smooth areas when using high feathering values" -msgstr "" -"0 onemogoči kvantizacijo.\n" -"višje vrednosti posterizirajo masko svetlosti in pomagajo voditi\n" -"izdelavo mestoma gladkih območij, kadar uporabljamo visoke vrednosti " -"mehčanja s peresi" - -#: ../src/iop/toneequal.c:3484 -msgid "" -"use this to slide the mask average exposure along channels\n" -"for a better control of the exposure correction with the available nodes.\n" -"the magic wand will auto-adjust the average exposure" -msgstr "" -"uporabite to, da pomaknete povprečno osvetlitev maske po kanalih\n" -"za boljši nadzor popravkov osvetlitve pri danih točkah.\n" -"čarobna paličica bo samodejno prilagodila povprečno osvetlitev" - -#: ../src/iop/toneequal.c:3497 -msgid "" -"use this to counter the averaging effect of the guided filter\n" -"and dilate the mask contrast around -4EV\n" -"this allows to spread the exposure histogram over more channels\n" -"for a better control of the exposure correction.\n" -"the magic wand will auto-adjust the contrast" -msgstr "" -"uporabite to za zmanjševanje povprečevalnega učinka vodenega filtra\n" -"in za razširitev kontrasta maske okoli -4EV\n" -"to omogoča širjenje histograma osvetlitve po več kanalih\n" -"za boljši nadzor korekcije osvetlitve.\n" -"čarobna paličica bo samodejno prilagodila kontrast" - -#: ../src/iop/toneequal.c:3520 ../src/iop/toneequal.c:3523 -msgid "display exposure mask" -msgstr "maska osvetljenosti zaslona" - -#: ../src/iop/tonemap.cc:71 -msgid "tone mapping" -msgstr "preslikave tonov" - -#: ../src/iop/tonemap.cc:87 -msgid "" -"this module is deprecated. please use the local contrast or tone equalizer " -"module instead." -msgstr "" -"ta modul je zastarel. namesto tega raje uporabite modul lokalnega kontrasta " -"ali izenačevalnika tonov." - -#: ../src/iop/velvia.c:79 -msgid "velvia" -msgstr "velvia" - -#: ../src/iop/velvia.c:104 -msgid "" -"resaturate giving more weight to blacks, whites and low-saturation pixels" -msgstr "" -"ponovno povečaj nasičenje tako, da bolj utežiš črne, bele in slabo nasičene " -"piksle" - -#: ../src/iop/velvia.c:281 -msgid "the strength of saturation boost" -msgstr "porast moči nasičenja" - -#: ../src/iop/velvia.c:284 -msgid "how much to spare highlights and shadows" -msgstr "koliko prihraniti pri bleščavah in sencah" - -#: ../src/iop/vibrance.c:62 -msgid "" -"this module is deprecated. please use the vibrance slider in the color " -"balance rgb module instead." -msgstr "" -"ta modul je zastarel. namesto tega raje uporabite drsnik živahnosti v modulu " -"za uravnoteženje barv." - -#: ../src/iop/vibrance.c:93 -msgid "" -"saturate and reduce the lightness of the most saturated pixels\n" -"to make the colors more vivid." -msgstr "" -"povečaj nasičenje in zmanjšaj svetlost najbolj nasičenih pikslov\n" -"da barve delujejo bolj žive." - -#: ../src/iop/vibrance.c:217 -msgid "the amount of vibrance" -msgstr "mera živahnosti" - -#: ../src/iop/vignette.c:153 -msgid "vignetting" -msgstr "vinjetiranje" - -#: ../src/iop/vignette.c:158 -msgid "simulate a lens fall-off close to edges" -msgstr "simuliraj napake lečja blizu robov" - -#: ../src/iop/vignette.c:940 -msgid "lomo" -msgstr "lomo" - -#: ../src/iop/vignette.c:974 -msgctxt "section" -msgid "position / form" -msgstr "pozicija / oblika" - -#: ../src/iop/vignette.c:981 -msgid "dithering" -msgstr "stresanje" - -#: ../src/iop/vignette.c:992 -msgid "the radii scale of vignette for start of fall-off" -msgstr "merilo polmerov vinjete za začetek odstranjevanja odpada" - -#: ../src/iop/vignette.c:993 -msgid "the radii scale of vignette for end of fall-off" -msgstr "merila polmerov vinjete za konec odstranjevanja odpada" - -#: ../src/iop/vignette.c:994 -msgid "strength of effect on brightness" -msgstr "moč učinka na sijavost" - -#: ../src/iop/vignette.c:995 -msgid "strength of effect on saturation" -msgstr "moč učinka nasičenosti" - -#: ../src/iop/vignette.c:996 -msgid "horizontal offset of center of the effect" -msgstr "vodoravni odmik od centra učinka" - -#: ../src/iop/vignette.c:997 -msgid "vertical offset of center of the effect" -msgstr "navpični odmik od centra učinka" - -#: ../src/iop/vignette.c:998 -msgid "" -"shape factor\n" -"0 produces a rectangle\n" -"1 produces a circle or ellipse\n" -"2 produces a diamond" -msgstr "" -"izbor oblike\n" -"0 izdela pravokotnik\n" -"1 izdela krog ali elipso\n" -"2 izdela romb" - -#: ../src/iop/vignette.c:1000 -msgid "enable to have the ratio automatically follow the image size" -msgstr "omogoči, da razmerje avtomatično sledi velikosti slike" - -#: ../src/iop/vignette.c:1001 -msgid "width-to-height ratio" -msgstr "razmerje širina/višina" - -#: ../src/iop/vignette.c:1002 -msgid "add some level of random noise to prevent banding" -msgstr "dodaj raven slučajnega šuma, da preprečimo pojav pasov" - -#: ../src/iop/vignette.c:1009 -#, c-format -msgid "[%s on node] change vignette/feather size" -msgstr "[%s on node] spremeni velikost vinjete/peresa mehčanja" - -#: ../src/iop/vignette.c:1011 -#, c-format -msgid "[%s on node] change vignette/feather size keeping ratio" -msgstr "" -"[%s on node] spremeni ohranjeno razmerje vinjete/velikost peresa mehčanja" - -#: ../src/iop/vignette.c:1013 -#, c-format -msgid "[%s on center] move vignette" -msgstr "[%s on center] prestavi vinjeto" - -#: ../src/iop/watermark.c:371 -msgid "watermark" -msgstr "vodni žig" - -#: ../src/iop/watermark.c:376 -msgid "overlay an SVG watermark like a signature on the picture" -msgstr "prekrij vodni žig SVG kot podpis na sliki" - -#: ../src/iop/watermark.c:1258 -msgid "marker" -msgstr "označevalnik" - -#: ../src/iop/watermark.c:1261 -#, c-format -msgid "SVG watermarks in %s/watermarks or %s/watermarks" -msgstr "SVG vodni žigi v %s/vodni žigi ali %s/vodni žigi" - -#. Simple text -#: ../src/iop/watermark.c:1271 ../src/iop/watermark.c:1272 -msgid "text" -msgstr "besedilo" - -#: ../src/iop/watermark.c:1273 -msgid "" -"text string, tag:\n" -"$(WATERMARK_TEXT)" -msgstr "" -"besedilo, oznaka:\n" -"$(WATERMARK_TEXT)" - -#: ../src/iop/watermark.c:1275 -msgid "content" -msgstr "vsebina" - -#. Text font -#: ../src/iop/watermark.c:1280 -msgid "font" -msgstr "pisava" - -#: ../src/iop/watermark.c:1285 -msgid "" -"text font, tags:\n" -"$(WATERMARK_FONT_FAMILY)\n" -"$(WATERMARK_FONT_STYLE)\n" -"$(WATERMARK_FONT_WEIGHT)" -msgstr "" -"pisava, oznake:\n" -"$(WATERMARK_FONT_FAMILY)\n" -"$(WATERMARK_FONT_STYLE)\n" -"$(WATERMARK_FONT_WEIGHT)" - -#: ../src/iop/watermark.c:1300 -msgid "" -"watermark color, tag:\n" -"$(WATERMARK_COLOR)" -msgstr "" -"oznaka barve vodnega tiska:\n" -"$(WATERMARK_COLOR)" - -#: ../src/iop/watermark.c:1302 -msgid "select watermark color" -msgstr "izbira barve vodnega tiska" - -#: ../src/iop/watermark.c:1304 -msgid "pick color from image" -msgstr "izberite barvo iz slike" - -#: ../src/iop/watermark.c:1317 -msgctxt "section" -msgid "placement" -msgstr "umestitev" - -#: ../src/iop/watermark.c:1330 -msgid "" -"scaling is done relative to this object\n" -"• image: fits marker into whole image\n" -"• larger border: fits larger marker border to larger image border\n" -"• smaller border: fits larger marker border to smaller image border\n" -"• height: fits marker height to image height, e.g. suitable for texts\n" -"• advanced options: activates two additional drop-down menus" -msgstr "" -"lestvičenje je opravljeno glede na ta objekt\n" -"• slika: se prilega označevalniku v celotno sliko\n" -"• večja obroba: prilega obrobo večjega označevalnika do večje obrobe slike\n" -"• manjša obroba: prilega obrobo večjega označevalnika do manjše slike slike\n" -"• višina: prilega višino označevalnika do višine slike, npr. primerno za " -"besedila\n" -"• napredne možnosti: aktivira dva dodatna spustna menija" - -#: ../src/iop/watermark.c:1339 -msgid "reference to which the marker should be scaled to" -msgstr "referenca na katero bi moral biti prilagojen označevalnik" - -#: ../src/iop/watermark.c:1343 -msgid "length of the marker which is used as scaling reference" -msgstr "dolžina označevalnika, ki naj bo uporabljena za referenco lestvičenja" - -#: ../src/iop/watermark.c:1347 ../src/libs/print_settings.c:2675 -msgid "alignment" -msgstr "poravnava" - -#. Let's add some tooltips and hook up some signals... -#: ../src/iop/watermark.c:1368 -msgid "the opacity of the watermark" -msgstr "neprosojnost vodnega žiga" - -#: ../src/iop/watermark.c:1369 -msgid "the scale of the watermark" -msgstr "merilo vodnega znaka" - -#: ../src/iop/watermark.c:1370 -msgid "the rotation of the watermark" -msgstr "zasuk vodnega znaka" - -#: ../src/iop/zonesystem.c:111 -msgid "zone system" -msgstr "sistem con" - -#: ../src/iop/zonesystem.c:490 -msgid "" -"lightness zones\n" -"use mouse scrollwheel to change the number of zones\n" -"left-click on a border to create a marker\n" -"right-click on a marker to delete it" -msgstr "" -"cone svetlosti\n" -"uporabite miškin kolešček za spremembo števila con\n" -"levi klik na mejo ustvari marker\n" -"desni klik na marker ga zbriše" - -#: ../src/libs/backgroundjobs.c:52 -msgid "background jobs" -msgstr "procesi v ozadju" - -#: ../src/libs/camera.c:78 -msgid "camera settings" -msgstr "nastavitve kamere" - -#: ../src/libs/camera.c:131 -msgid "toggle view property in center view" -msgstr "preklop lastnosti pogleda v centralnem pogledu" - -#: ../src/libs/camera.c:201 -msgid "connection with camera lost, exiting tethering mode" -msgstr "povezava s kamero je izgubljena, izhod iz upravljavskega načina" - -#: ../src/libs/camera.c:342 -msgid "battery" -msgstr "baterija" - -#: ../src/libs/camera.c:342 -msgid "n/a" -msgstr "nima pomena" - -#. Camera control -#: ../src/libs/camera.c:417 -msgctxt "section" -msgid "camera control" -msgstr "upravljanje kamere" - -#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2360 -msgid "modes" -msgstr "načini" - -#: ../src/libs/camera.c:422 -msgid "timer (s)" -msgstr "odštevalnik(i) časa" - -#: ../src/libs/camera.c:423 -msgid "count" -msgstr "število" - -#: ../src/libs/camera.c:424 -msgid "brackets" -msgstr "omejitve kadriranja" - -#: ../src/libs/camera.c:425 -msgid "bkt. steps" -msgstr "koraki nazaj" - -#: ../src/libs/camera.c:458 -msgid "capture image(s)" -msgstr "zajem slik(e)" - -#: ../src/libs/camera.c:461 -msgid "toggle delayed capture mode" -msgstr "preklopi v način zajema z zamudo" - -#: ../src/libs/camera.c:462 -msgid "toggle sequenced capture mode" -msgstr "preklop na način zaporednega zajemanja" - -#: ../src/libs/camera.c:463 -msgid "toggle bracketed capture mode" -msgstr "preklop zajemanja z vrednostmi v intervalu" - -#: ../src/libs/camera.c:464 -msgid "the count of seconds before actually doing a capture" -msgstr "število sekund pred samim zajemom" - -#: ../src/libs/camera.c:466 -msgid "" -"the amount of images to capture in a sequence,\n" -"you can use this in conjunction with delayed mode to create stop-motion " -"sequences" -msgstr "" -"število slik zajetih v zaporedju.\n" -"to lahko uporabljate skupaj z zajemanjem z zamudo za ustvarjanje časovnih " -"zaporedij slik" - -#: ../src/libs/camera.c:469 -msgid "" -"the amount of brackets on each side of centered shoot, amount of images = " -"(brackets*2) + 1" -msgstr "" -"število intervalnih omejitev na vsaki strani osredotočenega posnetka, " -"število slik = (št_omejitev*2) + 1" - -#: ../src/libs/camera.c:471 -msgid "" -"the amount of steps per bracket, steps is camera configurable and usually 3 " -"steps per stop\n" -"with other words, 3 steps is 1EV exposure step between brackets" -msgstr "" -"število korakov na intervalno omejitev, št. korakov se da nastaviti na " -"kameri in je navadno 3 korake na vrednost zaslonke\n" -"drugače povedano, 3 koraki so 1EV osvetlitve med omejitvami" - -#. user specified properties -#: ../src/libs/camera.c:494 -msgctxt "section" -msgid "additional properties" -msgstr "dodatne lastnosti" - -#: ../src/libs/camera.c:497 -msgid "label" -msgstr "oznaka" - -#: ../src/libs/camera.c:505 -msgid "property" -msgstr "lastnost" - -#: ../src/libs/camera.c:517 -msgid "add user property" -msgstr "dodaj lastnost uporabnika" - -#: ../src/libs/camera.c:537 -msgid "program" -msgstr "program" - -#: ../src/libs/camera.c:540 ../src/libs/camera.c:542 -msgid "focus mode" -msgstr "način ostrenja" - -#: ../src/libs/camera.c:553 -msgid "shutterspeed2" -msgstr "hitrost zaklopa 2" - -#: ../src/libs/camera.c:555 -msgid "shutterspeed" -msgstr "hitrost zaklopa" - -#: ../src/libs/camera.c:561 -msgid "WB" -msgstr "ČB" - -#: ../src/libs/collect.c:151 -msgid "collections" -msgstr "zbirke" - -#: ../src/libs/collect.c:407 -msgid "search filmroll" -msgstr "preišči film" - -#: ../src/libs/collect.c:490 -#, c-format -msgid "problem selecting new path for the filmroll in %s" -msgstr "problem izbire nove poti za film v %s" - -#: ../src/libs/collect.c:553 -msgid "search filmroll..." -msgstr "išči film..." - -#: ../src/libs/collect.c:557 -msgid "remove..." -msgstr "odstrani..." - -#: ../src/libs/collect.c:1225 -msgid "uncategorized" -msgstr "nekategorizirano" - -#: ../src/libs/collect.c:2138 -msgid "use <, <=, >, >=, <>, =, [;] as operators" -msgstr "uporabite <, <=, >, >=, <>, =, [;] kot operatorje" - -#: ../src/libs/collect.c:2142 -msgid "" -"use <, <=, >, >=, <>, =, [;] as operators\n" -"star rating: 0-5\n" -"rejected images: -1" -msgstr "" -"uporabite <, <=, >, >=, <>, =, [;] kot operatorje\n" -"ocena zvezdic: 0-5\n" -"zavrnjene slike: -1" - -#: ../src/libs/collect.c:2149 -msgid "" -"use <, <=, >, >=, <>, =, [;] as operators\n" -"type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)" -msgstr "" -"uporabite <, <=, >, >=, <>, =, [;] kot operatorje\n" -"vnesite datume v obliki: YYYY:MM:DD HH:MM:SS (samo leto je obvezno)" - -#: ../src/libs/collect.c:2156 -#, no-c-format -msgid "use `%' as wildcard and `,' to separate values" -msgstr "uporabite '%' za vse in `,' za ločevanje vrednosti" - -#: ../src/libs/collect.c:2162 -#, no-c-format -msgid "" -"use `%' as wildcard\n" -"click to include hierarchy + sub-hierarchies (suffix `*')\n" -"shift+click to include only the current hierarchy (no suffix)\n" -"ctrl+click to include only sub-hierarchies (suffix `|%')" -msgstr "" -"uporabi `%' kot 'za vse'\n" -"klik za vključevanje hierarhije + podhierarhij (pripona `*')\n" -"dvigalka+klik za vključevanje samo trenutne mape (ni pripone)\n" -"krmilka+klik za vključevanje samo podrejenih map (pripona `|%')" - -#: ../src/libs/collect.c:2174 -#, no-c-format -msgid "" -"use `%' as wildcard\n" -"click to include location + sub-locations (suffix `*')\n" -"shift+click to include only the current location (no suffix)\n" -"ctrl+click to include only sub-locations (suffix `|%')" -msgstr "" -"uporabi `%' kot 'za vse'\n" -"klik za vključevanje hierarhije + podhierarhij (pripona `*')\n" -"dvigalka+klik za vključevanje samo trenutne mape (ni pripone)\n" -"krmilka+klik za vključevanje samo trenutne mape (pripona `|%')" - -#: ../src/libs/collect.c:2186 -#, no-c-format -msgid "" -"use `%' as wildcard\n" -"click to include current + sub-folders (suffix `*')\n" -"shift+click to include only the current folder (no suffix)\n" -"ctrl+click to include only sub-folders (suffix `|%')" -msgstr "" -"uporabi `%' kot 'za vse'\n" -"klik za vključevanje hierarhije + podhierarhij (pripona `*')\n" -"dvigalka+klik za vključevanje trenutne mape (ni pripone)\n" -"krmilka+klik za vključevanje samo podmap (pripona `|%')" - -#: ../src/libs/collect.c:2197 -#, no-c-format -msgid "use `%' as wildcard" -msgstr "uporabite '%' za vse" - -#: ../src/libs/collect.c:2263 ../src/libs/collect.c:2277 -#: ../src/libs/collect.c:2800 -msgid "clear this rule" -msgstr "odstrani to pravilo" - -#: ../src/libs/collect.c:2267 -msgid "clear this rule or add new rules" -msgstr "odstrani to pravilo ali dodaj druga pravila" - -#: ../src/libs/collect.c:2806 -msgid "narrow down search" -msgstr "zoži področje iskanja" - -#: ../src/libs/collect.c:2811 -msgid "add more images" -msgstr "dodaj več slik" - -#: ../src/libs/collect.c:2816 -msgid "exclude images" -msgstr "izloči slike" - -#: ../src/libs/collect.c:2823 -msgid "change to: and" -msgstr "spremeni v: in" - -#: ../src/libs/collect.c:2828 -msgid "change to: or" -msgstr "spremeni v: ali" - -#: ../src/libs/collect.c:2833 -msgid "change to: except" -msgstr "spremeni v: razen" - -#. the different categories -#: ../src/libs/collect.c:2859 ../src/libs/filtering.c:857 -#: ../src/libs/filtering.c:924 ../src/libs/filtering.c:1558 -#: ../src/libs/filtering.c:1890 -msgid "files" -msgstr "datoteke" - -#: ../src/libs/collect.c:2864 ../src/libs/export_metadata.c:312 -#: ../src/libs/filtering.c:862 ../src/libs/filtering.c:929 -#: ../src/libs/filtering.c:1566 ../src/libs/filtering.c:1894 -#: ../src/libs/image.c:464 ../src/libs/image.c:574 ../src/libs/image.c:582 -#: ../src/libs/metadata.c:676 ../src/libs/metadata_view.c:1226 -msgid "metadata" -msgstr "metapodatki" - -#: ../src/libs/collect.c:2883 ../src/libs/filtering.c:883 -#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1892 -msgid "times" -msgstr "krat" - -#: ../src/libs/collect.c:2891 ../src/libs/filtering.c:891 -#: ../src/libs/filtering.c:958 ../src/libs/filtering.c:1590 -msgid "capture details" -msgstr "zabeleži podrobnosti" - -#: ../src/libs/collect.c:2900 ../src/libs/filtering.c:900 -#: ../src/libs/filtering.c:967 ../src/libs/filtering.c:1602 -#: ../src/libs/filtering.c:1896 ../src/libs/tools/darktable.c:65 -msgid "darktable" -msgstr "darktable" - -#: ../src/libs/collect.c:2913 -msgid "collections settings" -msgstr "nastavitve slik" - -#: ../src/libs/collect.c:2916 ../src/libs/export_metadata.c:288 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:228 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3472 -msgid "save" -msgstr "shrani" - -#: ../src/libs/collect.c:2936 ../src/libs/export.c:1046 -#: ../src/libs/metadata.c:779 ../src/libs/metadata_view.c:1306 -#: ../src/libs/recentcollect.c:293 ../src/libs/tagging.c:3494 -msgid "preferences..." -msgstr "preference..." - -#: ../src/libs/collect.c:3041 ../src/libs/filtering.c:1432 -msgid "AND" -msgstr "IN" - -#: ../src/libs/collect.c:3046 ../src/libs/filtering.c:1437 -msgid "OR" -msgstr "ALI" - -#. case DT_LIB_COLLECT_MODE_AND_NOT: -#: ../src/libs/collect.c:3051 ../src/libs/filtering.c:1442 -msgid "BUT NOT" -msgstr "A NE" - -#: ../src/libs/collect.c:3223 ../src/libs/filtering.c:2164 -msgid "revert to a previous set of rules" -msgstr "povrnite se na prejšnji niz pravil" - -#: ../src/libs/collect.c:3280 -msgid "jump back to previous collection" -msgstr "skok nazaj na prejšnjo zbirko" - -#: ../src/libs/colorpicker.c:51 -msgid "LCh" -msgstr "LCh" - -#: ../src/libs/colorpicker.c:51 -msgid "HSV" -msgstr "HSV" - -#: ../src/libs/colorpicker.c:51 -msgid "Hex" -msgstr "Hex" - -#: ../src/libs/colorpicker.c:53 -msgid "mean" -msgstr "povprečje" - -#: ../src/libs/colorpicker.c:71 -msgid "color picker" -msgstr "izbor barve" - -#: ../src/libs/colorpicker.c:463 -msgid "" -"hover to highlight sample on canvas,\n" -"click to lock sample,\n" -"right-click to load sample area into active color picker" -msgstr "" -"z miško nad označite vzorec na platnu,\n" -"klik za zaklep vzorca\n" -"desni klik za nalaganje površine vzorca v aktivni izbirnik barve" - -#: ../src/libs/colorpicker.c:561 ../src/libs/colorpicker.c:612 -msgid "click to (un)hide large color patch" -msgstr "klikni, da (raz)krijem veliko barvno zaplato" - -#: ../src/libs/colorpicker.c:575 -msgid "statistic" -msgstr "statistika" - -#: ../src/libs/colorpicker.c:576 -msgid "select which statistic to show" -msgstr "izberi statistiko prikaza" - -#: ../src/libs/colorpicker.c:585 -msgid "select which color mode to use" -msgstr "izberi barvni način rabe" - -#: ../src/libs/colorpicker.c:594 -msgid "" -"turn on color picker\n" -"ctrl+click or right-click to select an area" -msgstr "" -"vklopi izbirnik barve\n" -"krmilka+click ali desni klik to za izbor površine" - -#: ../src/libs/colorpicker.c:636 -msgid "add sample" -msgstr "dodaj vzorec" - -#. Adding the live samples section -#: ../src/libs/colorpicker.c:640 -msgctxt "section" -msgid "live samples" -msgstr "živi vzorci" - -#: ../src/libs/colorpicker.c:648 -msgid "display samples on image/vectorscope" -msgstr "prikaži vzorce področij na sliki/vektroskopu" - -#: ../src/libs/colorpicker.c:657 -msgid "restrict scope to selection" -msgstr "omeji obseg na izbor" - -#: ../src/libs/copy_history.c:61 -msgid "history stack" -msgstr "sklad zgodovine" - -#: ../src/libs/copy_history.c:114 -msgid "open sidecar file" -msgstr "odpri priklopno datoteko" - -#: ../src/libs/copy_history.c:149 -msgid "XMP sidecar files" -msgstr "priklopne datoteke XMP" - -#: ../src/libs/copy_history.c:166 -#, c-format -msgid "error loading file '%s'" -msgstr "napaka pri nalaganju datoteke '%s'" - -#: ../src/libs/copy_history.c:206 -#, c-format -msgid "no history compression of %d image" -msgid_plural "no history compression of %d images" -msgstr[0] "ni stiskanja zgodovine %d slik" -msgstr[1] "ni stiskanja zgodovine %d slik" -msgstr[2] "ni stiskanja zgodovine %d slik" -msgstr[3] "ni stiskanja zgodovine %d slik" - -#: ../src/libs/copy_history.c:247 -msgid "delete images' history?" -msgstr "naj zbrišem zgodovino slik?" - -#: ../src/libs/copy_history.c:248 -#, c-format -msgid "do you really want to clear history of %d selected image?" -msgid_plural "do you really want to clear history of %d selected images?" -msgstr[0] "ali res želite odstraniti zgodovino sprememb %d izbrane slike?" -msgstr[1] "ali res želite odstraniti zgodovino sprememb %d izbrane slike?" -msgstr[2] "ali res želite odstraniti zgodovino sprememb %d izbranih slik?" -msgstr[3] "ali res želite odstraniti zgodovino sprememb %d izbranih slik?" - -#: ../src/libs/copy_history.c:364 -msgid "selective copy..." -msgstr "selektivna kopija..." - -#: ../src/libs/copy_history.c:365 -msgid "choose which modules to copy from the source image" -msgstr "izberi katere module kopirati iz izvirne slike" - -#: ../src/libs/copy_history.c:371 -msgid "" -"copy history stack of\n" -"first selected image" -msgstr "" -"kopiraj zgodovino sprememb\n" -"za prvo izbrano sliko" - -#: ../src/libs/copy_history.c:376 -msgid "selective paste..." -msgstr "selektivno lepljenje..." - -#: ../src/libs/copy_history.c:377 -msgid "choose which modules to paste to the target image(s)" -msgstr "izberi katere module lepiti na ciljno(e) sliko(e)" - -#: ../src/libs/copy_history.c:382 ../src/libs/image.c:588 -msgid "paste" -msgstr "prilepi" - -#: ../src/libs/copy_history.c:383 -msgid "" -"paste history stack to\n" -"all selected images" -msgstr "" -"kopiraj zgodovino sprememb\n" -"za vse izbrane slike" - -#: ../src/libs/copy_history.c:389 -msgid "compress history" -msgstr "strni zgodovino" - -#: ../src/libs/copy_history.c:390 -msgid "" -"compress history stack of\n" -"all selected images" -msgstr "" -"strni sklad zgodovine\n" -"vseh izbranih slik" - -#: ../src/libs/copy_history.c:395 -msgid "" -"discard history stack of\n" -"all selected images" -msgstr "" -"zavrzi sklad zgodovine\n" -"vseh izbranih slik" - -#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:847 -msgid "how to handle existing history" -msgstr "kako obdelati zgodovino" - -#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:850 -msgid "append" -msgstr "dodaj" - -#: ../src/libs/copy_history.c:409 -msgid "load sidecar file..." -msgstr "naloži prikl. datot..." - -#: ../src/libs/copy_history.c:410 -msgid "" -"open an XMP sidecar file\n" -"and apply it to selected images" -msgstr "" -"odpri priklopno datoteko XMP\n" -"in uporabi nad izbranimi slikami" - -#: ../src/libs/copy_history.c:415 -msgid "write history stack and tags to XMP sidecar files" -msgstr "zapiši sklad zgodovine in oznake na priklopne datoteke XMP" - -#: ../src/libs/duplicate.c:56 -msgid "duplicate manager" -msgstr "upravljalnik duplikatov" - -#: ../src/libs/duplicate.c:401 -msgid "create a 'virgin' duplicate of the image without any development" -msgstr "tvori 'deviški' duplikat slike brez kakršnegakoli posega" - -#: ../src/libs/duplicate.c:406 -msgid "create a duplicate of the image with same history stack" -msgstr "tvori duplikat slike z enakim skladom operacij" - -#. Export button -#: ../src/libs/export.c:153 ../src/libs/export.c:1281 -msgid "export" -msgstr "izvoz" - -#: ../src/libs/export.c:306 -msgid "export to disk" -msgstr "izvozi na disk" - -#: ../src/libs/export.c:485 -#, c-format -msgid "which is equal to %s × %s px" -msgstr "kar je enako %s × %s px" - -#: ../src/libs/export.c:520 -msgctxt "unit" -msgid "in" -msgstr "v" - -#: ../src/libs/export.c:1060 -msgctxt "section" -msgid "storage options" -msgstr "možnosti shranjevanja" - -#: ../src/libs/export.c:1064 -msgid "target storage" -msgstr "ciljna shramba" - -#: ../src/libs/export.c:1086 -msgctxt "section" -msgid "format options" -msgstr "možnosti oblikovanja" - -#: ../src/libs/export.c:1090 -msgid "file format" -msgstr "format datoteke" - -#: ../src/libs/export.c:1107 -msgctxt "section" -msgid "global options" -msgstr "globalne možnosti" - -#: ../src/libs/export.c:1110 -msgid "set size" -msgstr "določi velikost" - -#: ../src/libs/export.c:1111 -msgid "choose a method for setting the output size" -msgstr "izberite način za nastavitev izhodne velikosti" - -#: ../src/libs/export.c:1114 -msgid "in pixels (for file)" -msgstr "v pikslih (za datoteko)" - -#: ../src/libs/export.c:1115 -msgid "in cm (for print)" -msgstr "v cm (za tisk)" - -#: ../src/libs/export.c:1116 -msgid "in inch (for print)" -msgstr "v palcih (za tisk)" - -#: ../src/libs/export.c:1117 -msgid "by scale (for file)" -msgstr "v merilu (za datoteko)" - -#: ../src/libs/export.c:1119 -msgid "print width" -msgstr "širina tiska" - -#: ../src/libs/export.c:1120 ../src/libs/export.c:1132 -msgid "" -"maximum output width limit.\n" -"click middle mouse button to reset to 0." -msgstr "" -"omejitev največje izhodne širine.\n" -"kliknite srednji gumb miške, da ponastavite na 0." - -#: ../src/libs/export.c:1123 -msgid "print height" -msgstr "višina tiska" - -#: ../src/libs/export.c:1124 ../src/libs/export.c:1136 -msgid "" -"maximum output height limit.\n" -"click middle mouse button to reset to 0." -msgstr "" -"omejitev največje izhodne višine.\n" -"kliknite srednji gumb miške, da ponastavite na 0." - -#: ../src/libs/export.c:1128 -msgid "resolution in dot per inch" -msgstr "ločljivost v pikslih na palec" - -#: ../src/libs/export.c:1148 -msgid "@" -msgstr "@" - -#: ../src/libs/export.c:1161 ../src/libs/tools/global_toolbox.c:217 -msgid "px" -msgstr "px" - -#: ../src/libs/export.c:1166 -msgid "" -"it can be an integer, decimal number or simple fraction.\n" -"zero or empty values are equal to 1.\n" -"click middle mouse button to reset to 1." -msgstr "" -"lahko je celo število, decimalno število ali preprost ulomek.\n" -"nič ali prazne vrednosti so enake 1.\n" -"kliknite srednji gumb miške, da ponastavite na 1." - -#: ../src/libs/export.c:1185 -msgid "allow upscaling" -msgstr "dovoli povečevanje" - -#: ../src/libs/export.c:1191 -msgid "high quality resampling" -msgstr "ponovno visoko kakovostno vzorčenje" - -#: ../src/libs/export.c:1192 -msgid "do high quality resampling during export" -msgstr "uporabi visoko kakovostno ponovno vzorčenje ob izvozu" - -#: ../src/libs/export.c:1198 -msgid "store masks" -msgstr "shrani maske" - -#: ../src/libs/export.c:1199 -msgid "store masks as layers in exported images. only works for some formats." -msgstr "" -"shranite maske kot plasti v izvoženih slikah. deluje samo za nekatere " -"formate." - -#: ../src/libs/export.c:1210 ../src/libs/export.c:1245 -#: ../src/libs/print_settings.c:2777 ../src/libs/print_settings.c:2823 -msgid "image settings" -msgstr "nastavitve slike" - -#: ../src/libs/export.c:1220 ../src/libs/print_settings.c:2811 -msgid "output ICC profiles" -msgstr "izhodni ICC profili" - -#: ../src/libs/export.c:1228 -msgid "" -"• perceptual: smoothly moves out-of-gamut colors into gamut, preserving " -"gradations,\n" -"but distorts in-gamut colors in the process.\n" -"note that perceptual is often a proprietary LUT that depends on the " -"destination space.\n" -"\n" -"• relative colorimetric: keeps luminance while reducing as little as " -"possible\n" -"saturation until colors fit in gamut.\n" -"\n" -"• saturation: designed to present eye-catching business graphics\n" -"by preserving the saturation. (not suited for photography).\n" -"\n" -"• absolute colorimetric: adapt white point of the image to the white point " -"of the\n" -"destination medium and do nothing else. mainly used when proofing colors.\n" -"(not suited for photography)." -msgstr "" -"• zaznavno: gladko premakne izven barvnega razpona in ohrani gradacije,\n" -"vendar pri tem izkrivlja barve v barvnem razponu.\n" -"upoštevajte, da je zaznavna pogosto lastniška iskalna tabela, ki je odvisna " -"od ciljnega prostora.\n" -"\n" -"• relativno kolorimetrično: ohranja svetlost, hkrati pa čim manj znižuje " -"možno\n" -"nasičenost, dokler barve ne ustrezajo barvnemu razponu.\n" -"\n" -"• nasičenost: namenjena predstavitvi privlačne poslovne grafike\n" -"z ohranjanjem nasičenosti. (ni primerno za fotografije).\n" -"\n" -"• absolutno kolorimetrično: prilagodi belo točko slike beli točki ciljnega " -"medija\n" -"in ne dela ničesar drugega. uporablja se predvsem pri preverjanju barve. (ni " -"primerno za fotografije)." - -#: ../src/libs/export.c:1255 ../src/libs/print_settings.c:2833 -msgid "style" -msgstr "slog" - -#: ../src/libs/export.c:1258 -msgid "temporary style to use while exporting" -msgstr "začasni slog za izvoz" - -#: ../src/libs/export.c:1263 ../src/libs/print_settings.c:2876 -msgid "" -"whether the style items are appended to the history or replacing the history" -msgstr "ali so elementi sloga dodani k zgodovini ali jo zamenjujejo" - -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 -msgid "replace history" -msgstr "zamenjaj zgodovino" - -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 -msgid "append history" -msgstr "dodaj k zgodovini" - -#: ../src/libs/export.c:1282 -msgid "export with current settings" -msgstr "izvozi s trenutnimi nastavitvami" - -#: ../src/libs/export_metadata.c:163 -msgid "select tag" -msgstr "izberi oznako" - -#: ../src/libs/export_metadata.c:164 -msgid "add" -msgstr "dodaj" - -#: ../src/libs/export_metadata.c:175 -msgid "list filter" -msgstr "seznam filtrov" - -#: ../src/libs/export_metadata.c:186 -msgid "" -"list of available tags. click 'add' button or double-click on tag to add the " -"selected one" -msgstr "" -"seznam razpoložljivih oznak. kliknite gumb 'dodaj' ali dvokliknite oznako, " -"da dodate izbrano oznako" - -#: ../src/libs/export_metadata.c:287 -msgid "edit metadata exportation" -msgstr "uredi izvoz metapodatkov" - -#: ../src/libs/export_metadata.c:304 -msgid "general settings" -msgstr "splošne nastavitve" - -#: ../src/libs/export_metadata.c:309 -msgid "EXIF data" -msgstr "podatki EXIF" - -#: ../src/libs/export_metadata.c:310 -msgid "export EXIF metadata" -msgstr "izvozi metapodatke EXIF" - -#: ../src/libs/export_metadata.c:313 -msgid "export darktable XMP metadata (from metadata editor module)" -msgstr "izvozi darktable XMP metapodatke (iz modula urejevalnik metapodatkov)" - -#: ../src/libs/export_metadata.c:323 -msgid "only embedded" -msgstr "samo vgrajene" - -#: ../src/libs/export_metadata.c:324 -msgid "" -"per default the interface sends some (limited) metadata beside the image to " -"remote storage.\n" -"to avoid this and let only image embedded darktable XMP metadata, check this " -"flag.\n" -"if remote storage doesn't understand darktable XMP metadata, you can use " -"calculated metadata instead" -msgstr "" -"privzeto vmesnik pošlje nekaj (omejenih) metapodatkov poleg slike na " -"oddaljeno shrambo.\n" -"v izogib tega, da pustite samo v sliko vgrajene metapodatke darktable XMP, " -"odkljukajte to rubriko.\n" -"če oddaljeni pomnilnik ne razume metapodatkov darktable XMP, lahko namesto " -"tega uporabite izračunane metapodatke" - -#: ../src/libs/export_metadata.c:330 ../src/libs/image.c:566 -msgid "geo tags" -msgstr "geo oznake" - -#: ../src/libs/export_metadata.c:331 -msgid "export geo tags" -msgstr "izvozi geo oznake" - -#: ../src/libs/export_metadata.c:334 -msgid "export tags (to Xmp.dc.Subject)" -msgstr "izvozi oznake (v Xmp.dc.Subject)" - -#: ../src/libs/export_metadata.c:342 -msgid "private tags" -msgstr "zasebne oznake" - -#: ../src/libs/export_metadata.c:343 -msgid "export private tags" -msgstr "izvozi zasebne oznake" - -#: ../src/libs/export_metadata.c:345 -msgid "synonyms" -msgstr "sinonimi" - -#: ../src/libs/export_metadata.c:346 -msgid "export tags synonyms" -msgstr "izvozi sinonime oznak" - -#: ../src/libs/export_metadata.c:348 -msgid "omit hierarchy" -msgstr "izpusti hierarhijo" - -#: ../src/libs/export_metadata.c:349 -msgid "" -"only the last part of the hierarchical tags is included. can be useful if " -"categories are not used" -msgstr "" -"vključen je le zadnji del hierarhičnih oznak. lahko je koristno, če se " -"kategorije ne uporabljajo" - -#: ../src/libs/export_metadata.c:352 -msgid "hierarchical tags" -msgstr "hierarhične oznake" - -#: ../src/libs/export_metadata.c:353 -msgid "export hierarchical tags (to Xmp.lr.Hierarchical Subject)" -msgstr "izvozi hierarhične oznake (v Xmp.lr.Hierarchical Subject)" - -#: ../src/libs/export_metadata.c:355 -msgid "develop history" -msgstr "razvij zgodovino" - -#: ../src/libs/export_metadata.c:356 -msgid "" -"export darktable development data (recovery purpose in case of loss of " -"database or XMP file)" -msgstr "" -"izvozi razvojne podatke darktable (za namen obnove v primeru izgube baze " -"podatkov ali datoteke XMP)" - -#: ../src/libs/export_metadata.c:363 -msgid "per metadata settings" -msgstr "za vsake nastavitve metapodatkov" - -#: ../src/libs/export_metadata.c:376 -msgid "redefined tag" -msgstr "preimenovana oznaka" - -#: ../src/libs/export_metadata.c:382 -msgid "formula" -msgstr "formula" - -#: ../src/libs/export_metadata.c:385 -msgid "" -"list of calculated metadata\n" -"click on '+' button to select and add new metadata\n" -"if formula is empty, the corresponding metadata is removed from exported " -"file,\n" -"if formula is '=', the EXIF metadata is exported even if EXIF data are " -"disabled\n" -"otherwise the corresponding metadata is calculated and added to exported " -"file\n" -"click on formula cell to edit\n" -"type '$(' to activate the completion and see the list of variables" -msgstr "" -"seznam izračunanih metapodatkov\n" -"kliknite na gumb '+' za izbiro in dodajanje novih metapodatkov\n" -"če je formula prazna, se ustrezni metapodatki odstranijo iz izvožene " -"datoteke\n" -"če je formula '=', se metapodatki EXIF izvozijo, tudi če so podatki EXIF " -"onemogočeni\n" -"sicer se izračunajo ustrezni metapodatki in se dodajo k izvoženim datotekam\n" -"kliknite na celico s formulo za urejanje.\n" -"vtipkajte '$(' za aktiviranje zaključevanja in da vidite seznam spremenljivk" - -#: ../src/libs/export_metadata.c:442 -msgid "add an output metadata tag" -msgstr "dodaj oznako izhodnega metapodatka" - -#: ../src/libs/export_metadata.c:447 -msgid "delete metadata tag" -msgstr "zbriši oznako metapodatka" - -#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:128 -msgid "full path" -msgstr "celotna pot" - -#: ../src/libs/filtering.c:72 -msgid "group" -msgstr "grupiraj" - -#: ../src/libs/filtering.c:73 ../src/libs/live_view.c:313 -msgid "id" -msgstr "identifikator" - -#: ../src/libs/filtering.c:74 -msgid "custom sort" -msgstr "prilagojeno sortiranje" - -#: ../src/libs/filtering.c:75 -msgid "shuffle" -msgstr "premešaj" - -#: ../src/libs/filtering.c:263 -msgid "collection filters" -msgstr "filtri zbirk" - -#: ../src/libs/filtering.c:296 -msgid "initial setting" -msgstr "začetna nastavitev" - -#: ../src/libs/filtering.c:315 -msgid "imported: last 24h" -msgstr "uvoženo: v zadnjih 24h" - -#: ../src/libs/filtering.c:320 -msgid "imported: last 30 days" -msgstr "uvoženo: v zadnjih 30 dneh" - -#: ../src/libs/filtering.c:326 -msgid "taken: last 24h" -msgstr "posneto: v zadnjih 24h" - -#: ../src/libs/filtering.c:330 -msgid "taken: last 30 days" -msgstr "posneto: v zadnjih 30 dneh" - -#: ../src/libs/filtering.c:702 -msgid "click or click&drag to select one or multiple values" -msgstr "klik ali klik&poteg za izbiro ene ali več vrednosti" - -#: ../src/libs/filtering.c:703 -msgid "right-click opens a menu to select the available values" -msgstr "desni-klik odpre meni za izbiro razpoložljivih vrednosti" - -#: ../src/libs/filtering.c:800 -#, c-format -msgid "you can't have more than %d rules" -msgstr "ne morete imeti več kot %d pravil" - -#: ../src/libs/filtering.c:922 ../src/libs/filtering.c:1556 -msgid "rule property" -msgstr "lastnost pravila" - -#: ../src/libs/filtering.c:987 -msgid "" -"rule property\n" -"this can't be changed as the rule is pinned to the toolbar" -msgstr "" -"lastnost pravila\n" -"to se ne more spreminjati, saj je pravilo pripeto na orodno vrstico" - -#: ../src/libs/filtering.c:1035 -msgctxt "quickfilter" -msgid "filter" -msgstr "filter" - -#: ../src/libs/filtering.c:1062 -msgid "" -"this rule is pinned to the top toolbar\n" -"click to un-pin" -msgstr "" -"to pravilo je pritrjeno na zgornjo orodno vrstico\n" -"kliknite za odpenjanje" - -#: ../src/libs/filtering.c:1063 -msgid "you can't disable the rule as it is pinned to the toolbar" -msgstr "ne morete onemogočiti tega pravila, saj je pripeto na orodno vrstico" - -#: ../src/libs/filtering.c:1064 -msgid "you can't remove the rule as it is pinned to the toolbar" -msgstr "ne morete odstraniti tega pravila, saj je pripeto na orodno vrstico" - -#: ../src/libs/filtering.c:1069 -msgid "click to pin this rule to the top toolbar" -msgstr "kliknite, da pripnete to pravilo na vrhnjo orodno letvico" - -#: ../src/libs/filtering.c:1070 -msgid "remove this collect rule" -msgstr "odstrani to pravilo zbiranja" - -#: ../src/libs/filtering.c:1072 -msgid "this rule is enabled" -msgstr "to pravilo je omogočeno" - -#: ../src/libs/filtering.c:1074 -msgid "this rule is disabled" -msgstr "to pravilo je onemogočeno" - -#: ../src/libs/filtering.c:1202 -msgid "or" -msgstr "ali" - -#: ../src/libs/filtering.c:1203 -msgid "and not" -msgstr "in ne" - -#: ../src/libs/filtering.c:1205 -msgid "define how this rule should interact with the previous one" -msgstr "določi kako to pravilo vpliva na prejšnjega" - -#: ../src/libs/filtering.c:1466 -msgid " (off)" -msgstr " (izklopljeno)" - -#: ../src/libs/filtering.c:1663 -msgid "you can't add more rules." -msgstr "ne morete dodati več pravil." - -#. fill the popover with all pinned rules -#: ../src/libs/filtering.c:1696 -msgid "shown filters" -msgstr "prikazani filtri" - -#: ../src/libs/filtering.c:1711 -msgid "new filter" -msgstr "novi filter" - -#: ../src/libs/filtering.c:1884 -msgid "sort order" -msgstr "vrstni red" - -#: ../src/libs/filtering.c:1886 -msgid "determine the sort order of shown images" -msgstr "določi vrstni red prikazanih slik" - -#: ../src/libs/filtering.c:1906 -msgid "sort direction" -msgstr "smer razvrščanja" - -#: ../src/libs/filtering.c:1911 -msgid "remove this sort order" -msgstr "odstrani ta vrstni red" - -#: ../src/libs/filtering.c:1995 -#, c-format -msgid "you can't have more than %d sort orders" -msgstr "ne morete imeti več kot %d vrstnih redov" - -#: ../src/libs/filtering.c:2049 -msgid "DESC" -msgstr "DESC" - -#: ../src/libs/filtering.c:2049 -msgid "ASC" -msgstr "ASC" - -#: ../src/libs/filtering.c:2160 -msgid "new rule" -msgstr "novo pravilo" - -#: ../src/libs/filtering.c:2161 -msgid "append new rule to collect images" -msgstr "dodaj novo pravilo za zbiranje slik" - -#: ../src/libs/filtering.c:2172 ../src/libs/tools/filter.c:116 -msgid "sort by" -msgstr "uredi po" - -#: ../src/libs/filtering.c:2180 -msgid "new sort" -msgstr "novo razvrščanje" - -#: ../src/libs/filtering.c:2181 -msgid "append new sort to order images" -msgstr "dodaj novo pravilo razvrščanja slik" - -#: ../src/libs/filtering.c:2184 -msgid "revert to a previous set of sort orders" -msgstr "vrni se na prejšnji nabor pravil razvrščanja" - -#. we change the tooltip of the reset button here, as we are sure the header is defined now -#: ../src/libs/filtering.c:2234 -msgid "" -"reset\n" -"ctrl+click to remove pinned rules too" -msgstr "" -"prednastavi\n" -"krmilka+klik za odstranjevanje tudi pripetih pravil" - -#: ../src/libs/filters/colors.c:140 -msgid "Y" -msgstr "Y" - -#: ../src/libs/filters/colors.c:149 -msgid "P" -msgstr "P" - -#: ../src/libs/filters/colors.c:269 -msgid "color filter" -msgstr "barvni filter" - -#: ../src/libs/filters/colors.c:294 -msgid "" -"filter by images color label\n" -"click to toggle the color label selection\n" -"ctrl+click to exclude the color label\n" -"the gray button affects all color labels" -msgstr "" -"filter po barvnih oznakah slik\n" -"kliknite, da preklopite izbiro barvne oznake\n" -"krmilka+klik, da izključite barvno oznako\n" -"Sivi gumb vpliva na vse barvne oznake" - -#. create the filter combobox -#: ../src/libs/filters/colors.c:301 ../src/libs/filters/colors.c:312 -#: ../src/libs/filters/grouping.c:167 ../src/libs/filters/history.c:153 -#: ../src/libs/filters/local_copy.c:142 ../src/libs/filters/module_order.c:161 -#: ../src/libs/filters/rating.c:199 ../src/libs/filters/rating.c:210 -#: ../src/libs/filters/rating_range.c:325 -msgid "rules" -msgstr "pravila" - -#: ../src/libs/filters/colors.c:306 -msgid "" -"filter by images color label\n" -"and (∩): images having all selected color labels\n" -"or (∪): images with at least one of the selected color labels" -msgstr "" -"filter po barvnih oznakah slike\n" -"in (∩): slike z vsemi izbranimi barvnimi oznaka\n" -"ali (∪): slike z vsaj eno od izbranih barvnih oznak" - -#: ../src/libs/filters/filename.c:365 -msgid "" -"enter filename to search.\n" -"multiple values can be separated by ','\n" -"\n" -"right-click to get existing filenames" -msgstr "" -"vnesite ime datoteke za iskanje.\n" -"več vrednosti lahko ločimo z ','\n" -"\n" -"Z desno miškino tipko kliknite, da dobite obstoječa imena datotek" - -#: ../src/libs/filters/filename.c:376 -msgid "extension" -msgstr "podaljšek" - -#: ../src/libs/filters/filename.c:377 -msgid "" -"enter extension to search with starting dot\n" -"multiple values can be separated by ','\n" -"handled keywords: 'RAW', 'NOT RAW', 'LDR', 'HDR'\n" -"\n" -"right-click to get existing extensions" -msgstr "" -"vnesite razširitev za iskanje z začetkom pike\n" -"več vrednosti lahko ločimo z ','\n" -"obdelane ključne besede: 'RAW', 'NOT RAW', 'LDR', 'HDR'\n" -"\n" -"Z desno miškino tipko kliknite, da dobite obstoječe podaljške" - -#: ../src/libs/filters/filename.c:405 -msgid "" -"click to select filename\n" -"ctrl+click to select multiple values" -msgstr "" -"kliknite, da izberete ime datoteke\n" -"krmilka-klik za izbiro več vrednosti" - -#: ../src/libs/filters/filename.c:432 -msgid "" -"click to select extension\n" -"ctrl+click to select multiple values" -msgstr "" -"kliknite, da izberete podaljšek imena\n" -"krmilka-klik za izbiro več vrednosti" - -#: ../src/libs/filters/grouping.c:141 ../src/libs/filters/grouping.c:169 -msgid "ungrouped images" -msgstr "negrupirane slike" - -#: ../src/libs/filters/grouping.c:168 -msgid "select the type of grouped image to filter" -msgstr "izberite vrsto združene slike kot filter" - -#. predefined selections -#: ../src/libs/filters/grouping.c:169 ../src/libs/filters/history.c:38 -#: ../src/libs/filters/local_copy.c:38 ../src/libs/filters/module_order.c:155 -#: ../src/libs/filters/rating_range.c:56 ../src/libs/filters/rating_range.c:72 -#: ../src/libs/filters/rating_range.c:109 ../src/libs/filters/ratio.c:68 -#: ../src/libs/filters/ratio.c:81 -msgid "all images" -msgstr "vse slike" - -#: ../src/libs/filters/history.c:153 -msgid "filter on history state" -msgstr "filter na stanje zgodovine" - -#: ../src/libs/filters/local_copy.c:142 -msgid "local copied state filter" -msgstr "filter stanja lokalnih kopij" - -#: ../src/libs/filters/module_order.c:161 -msgid "filter images based on their module order" -msgstr "filter slik na osnovi vrstnega reda modulov" - -#: ../src/libs/filters/rating.c:199 -msgid "comparator" -msgstr "primerjalnik" - -#: ../src/libs/filters/rating.c:200 ../src/libs/filters/rating.c:210 -msgid "filter by images rating" -msgstr "filter ocen slik" - -#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:542 -#: ../src/libs/tools/ratings.c:56 -msgid "ratings" -msgstr "ocene" - -#: ../src/libs/filters/rating.c:211 -msgid "unstarred only" -msgstr "samo brez zvezdic" - -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:60 -#: ../src/libs/filters/rating_range.c:75 -msgid "rejected only" -msgstr "samo zavrnjene" - -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:58 -#: ../src/libs/filters/rating_range.c:73 ../src/libs/filters/rating_range.c:138 -msgid "all except rejected" -msgstr "vse razen zavrnjenih" - -#: ../src/libs/filters/rating_range.c:61 ../src/libs/filters/rating_range.c:76 -msgid "not rated only" -msgstr "samo neocenjeno" - -#: ../src/libs/filters/rating_range.c:99 ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:131 -#: ../src/libs/filters/rating_range.c:275 -msgid "rejected" -msgstr "zavrnjeno" - -#: ../src/libs/filters/rating_range.c:101 -#: ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:276 -msgid "not rated" -msgstr "ni ocenjeno" - -#: ../src/libs/filters/rating_range.c:117 -msgid "only" -msgstr "samo" - -#: ../src/libs/filters/rating_range.c:269 -msgid "better" -msgstr "bolje" - -#: ../src/libs/filters/rating_range.c:270 -msgid "worse" -msgstr "slabše" - -#: ../src/libs/filters/rating_range.c:271 -msgid "cap" -msgstr "kapica" - -#: ../src/libs/filters/rating_range.c:286 -msgid "rating filter" -msgstr "filter ocen" - -#: ../src/libs/filters/ratio.c:70 ../src/libs/filters/ratio.c:82 -msgid "portrait images" -msgstr "portretne slike" - -#: ../src/libs/filters/ratio.c:71 ../src/libs/filters/ratio.c:83 -msgid "square images" -msgstr "kvadratne slike" - -#: ../src/libs/filters/ratio.c:72 ../src/libs/filters/ratio.c:84 -msgid "landscape images" -msgstr "ležeče slike" - -#: ../src/libs/filters/search.c:179 -#, no-c-format -msgid "" -"filter by text from images metadata, camera brand/model, tags, file path and " -"name\n" -"`%' is the wildcard character\n" -"by default start and end wildcards are auto-applied\n" -"starting or ending with a double quote disables the corresponding wildcard\n" -"is dimmed during the search execution" -msgstr "" -"filtrirajte po besedilu iz metapodatkov, znamke in modela kamere, oznak, " -"poti datoteke in imena\n" -"`%'je splošni znak\n" -"privzeto se samodejno uporabijo splošni znaki za začetek in konec\n" -"začetek ali zaključek z dvojnim narekovajem onemogoča ustrezni splošni znak\n" -"in je med izvedbo iskanja zatemnjen" - -#: ../src/libs/geotagging.c:368 -msgid "apply offset and geo-location" -msgstr "uveljavi odmik in geolociranje" - -#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1910 -msgid "apply geo-location" -msgstr "uveljavi geolociranje" - -#: ../src/libs/geotagging.c:371 -msgid "" -"apply offset and geo-location to matching images\n" -"double operation: two ctrl-z to undo" -msgstr "" -"uveljavi odmik in geolokacijo na ustreznih slikah\n" -"dvojna operacija: dvakrat krmilka-Z za razveljavitev" - -#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1911 -msgid "apply geo-location to matching images" -msgstr "uveljavi geolokacijo na ustreznih slikah" - -#: ../src/libs/geotagging.c:810 -msgid "GPX file track segments" -msgstr "segmenti sledi datoteke GPX" - -#: ../src/libs/geotagging.c:830 ../src/libs/geotagging.c:1869 -msgid "start time" -msgstr "začetni čas" - -#: ../src/libs/geotagging.c:831 -msgid "end time" -msgstr "čas konca" - -#: ../src/libs/geotagging.c:832 ../src/libs/geotagging.c:1871 -msgid "points" -msgstr "točke" - -#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1873 -#: ../src/libs/image.c:463 -msgid "images" -msgstr "slike" - -#: ../src/libs/geotagging.c:926 -msgid "open GPX file" -msgstr "odpri datoteko GPX" - -#: ../src/libs/geotagging.c:927 ../src/libs/tools/lighttable.c:333 -#: ../src/libs/tools/lighttable.c:402 ../src/views/darkroom.c:2232 -msgid "preview" -msgstr "predogled" - -#: ../src/libs/geotagging.c:940 -msgid "GPS data exchange format" -msgstr "GPS Data Exchange format" - -#: ../src/libs/geotagging.c:1739 -msgid "date/time" -msgstr "datum in čas" - -#: ../src/libs/geotagging.c:1740 -msgid "" -"enter the new date/time (YYYY:MM:DD hh:mm:ss[.sss])\n" -"key in the new numbers or scroll over the cell" -msgstr "" -"vnesite nov datum in čas (YYYY:MM:DD hh:mm:ss[.sss])\n" -"vtipkajte nove številke ali potegnite prek celice" - -#: ../src/libs/geotagging.c:1744 -msgid "original date/time" -msgstr "izvorni datum in čas" - -#: ../src/libs/geotagging.c:1748 -msgid "lock date/time offset value to apply it onto another selection" -msgstr "zakleni datumsko oz. časovni odmik za uveljavitev v drugi izbiri" - -#: ../src/libs/geotagging.c:1752 -msgid "date/time offset" -msgstr "datumski oz. časovni odmik" - -#: ../src/libs/geotagging.c:1753 -msgid "offset or difference ([-]dd hh:mm:ss[.sss])" -msgstr "odmik ali razlika ([-]dd hh:mm:ss)" - -#. apply -#: ../src/libs/geotagging.c:1757 -msgid "apply offset" -msgstr "uveljavi odmik" - -#: ../src/libs/geotagging.c:1758 -msgid "apply offset to selected images" -msgstr "uveljavi časovni zamik na izbranih slikah" - -#: ../src/libs/geotagging.c:1761 -msgid "apply date/time" -msgstr "uveljavi datum in čas" - -#: ../src/libs/geotagging.c:1762 -msgid "apply the same date/time to selected images" -msgstr "uveljavi enak datumski oz. časovni zamik za izbrane slike" - -#: ../src/libs/geotagging.c:1772 -msgid "" -"start typing to show a list of permitted values and select your timezone.\n" -"press enter to confirm, so that the asterisk * disappears" -msgstr "" -"začnite tipkati, da prikažete seznam dovoljenih vrednosti in izberite svoj " -"časovni pas.\n" -"pritisnite enter za potrditev, tako da zvezdica * izgine" - -#. gpx -#: ../src/libs/geotagging.c:1815 -msgid "apply GPX track file..." -msgstr "uveljavi datoteko sledi GPX..." - -#: ../src/libs/geotagging.c:1816 -msgid "parses a GPX file and updates location of selected images" -msgstr "pregleda datoteko GPX in določi lokacijo izbranih slik" - -#: ../src/libs/geotagging.c:1827 -msgctxt "section" -msgid "GPX file" -msgstr "datoteka GPX" - -#: ../src/libs/geotagging.c:1834 -msgid "select a GPX track file..." -msgstr "izberi datoteko sledi GPX..." - -#: ../src/libs/geotagging.c:1851 -msgid "" -"list of track segments in the GPX file, for each segment:\n" -"- the start date/time in local time (LT)\n" -"- the number of track points\n" -"- the number of matching images based on images date/time, offset and time " -"zone\n" -"- more detailed time information hovering the row" -msgstr "" -"seznam segmentov sledi v datoteki gpx, za vsak segment:\n" -"- začetni datum / čas po lokalnem času (LT)\n" -"- število točk sledi\n" -"- število ujemajočih se slik glede na datum / uro, odmik in časovni pas\n" -"- podrobnejše informacije o času, ko je kazalec miška nad vrstico" - -#: ../src/libs/geotagging.c:1890 -msgid "preview images" -msgstr "predogled slik" - -#: ../src/libs/geotagging.c:1895 -msgid "show on map matching images" -msgstr "pokaži ustrezne slike na zemljevidu" - -#: ../src/libs/geotagging.c:1898 -msgid "select images" -msgstr "izberite slike" - -#: ../src/libs/geotagging.c:1899 -msgid "select matching images" -msgstr "izberi ustrezne slike" - -#: ../src/libs/geotagging.c:1907 -msgid "number of matching images versus selected images" -msgstr "število ustreznih slik nasproti izbranim slikam" - -#: ../src/libs/histogram.c:133 -msgid "monochromatic" -msgstr "enobarvni" - -#: ../src/libs/histogram.c:134 -msgid "analogous" -msgstr "analogni" - -#: ../src/libs/histogram.c:135 -msgid "analogous complementary" -msgstr "analogni komplementarni" - -#: ../src/libs/histogram.c:136 -msgid "complementary" -msgstr "komplementarni" - -#: ../src/libs/histogram.c:137 -msgid "split complementary" -msgstr "razcep komplementarnega" - -#: ../src/libs/histogram.c:138 -msgid "dyad" -msgstr "diadni" - -#: ../src/libs/histogram.c:139 -msgid "triad" -msgstr "triadni" - -#: ../src/libs/histogram.c:140 -msgid "tetrad" -msgstr "tetradno" - -#: ../src/libs/histogram.c:146 -msgid "vectorscope" -msgstr "vektorskop" - -#: ../src/libs/histogram.c:147 -msgid "waveform" -msgstr "oblika vala" - -#: ../src/libs/histogram.c:148 -msgid "RGB parade" -msgstr "RGB parada" - -#: ../src/libs/histogram.c:149 ../src/libs/histogram.c:2309 -msgid "histogram" -msgstr "histogram" - -#: ../src/libs/histogram.c:243 -msgid "scopes" -msgstr "obsegi" - -#: ../src/libs/histogram.c:1542 -msgid "scroll to coarse-rotate" -msgstr "drsajte za grobi zasuk" - -#: ../src/libs/histogram.c:1543 -msgid "ctrl+scroll to fine rotate" -msgstr "krmilka+drsanje za fino sukanje" - -#: ../src/libs/histogram.c:1544 -msgid "shift+scroll to change width" -msgstr "dvigalka+drsanje za spreminjanje širine" - -#: ../src/libs/histogram.c:1545 -msgid "alt+scroll to cycle" -msgstr "alt+drsanje za kroženje" - -#: ../src/libs/histogram.c:1556 -msgid "drag to change black point" -msgstr "povlek za spreminjanje črne točke" - -#: ../src/libs/histogram.c:1557 ../src/libs/histogram.c:1564 -msgid "double-click resets" -msgstr "dvojni klik za ponastavitev" - -#: ../src/libs/histogram.c:1563 -msgid "drag to change exposure" -msgstr "povlek za spremembo ekspozicije" - -#: ../src/libs/histogram.c:1725 ../src/libs/histogram.c:1765 -msgid "set scale to linear" -msgstr "nastavi merilo na linearno" - -#: ../src/libs/histogram.c:1730 ../src/libs/histogram.c:1770 -msgid "set scale to logarithmic" -msgstr "nastavi merilo na logaritemsko" - -#: ../src/libs/histogram.c:1746 -msgid "set scope to vertical" -msgstr "nastavi obseg na navpičnega" - -#: ../src/libs/histogram.c:1751 -msgid "set scope to horizontal" -msgstr "nastavi obseg na vodoravnega" - -#: ../src/libs/histogram.c:1780 -msgid "set view to AzBz" -msgstr "nastavi pogled na AzBz" - -#: ../src/libs/histogram.c:1786 -msgid "set view to RYB" -msgstr "nastavi pogled na RYB" - -#: ../src/libs/histogram.c:1792 -msgid "set view to u*v*" -msgstr "nastavi pogled na u*v*" - -#: ../src/libs/histogram.c:2312 ../src/libs/histogram.c:2370 -msgid "cycle histogram modes" -msgstr "zankaj načine histograma" - -#: ../src/libs/histogram.c:2316 ../src/libs/histogram.c:2371 -msgid "hide histogram" -msgstr "skrij histogram" - -#: ../src/libs/histogram.c:2372 ../src/libs/histogram.c:2401 -msgid "switch histogram view" -msgstr "preklopi v način histograma" - -#: ../src/libs/histogram.c:2379 -msgid "toggle blue channel" -msgstr "preklopi levi kanal" - -#: ../src/libs/histogram.c:2381 ../src/libs/histogram.c:2389 -#: ../src/libs/histogram.c:2397 -msgid "toggle colors" -msgstr "preklopi barve" - -#: ../src/libs/histogram.c:2387 -msgid "toggle green channel" -msgstr "preklopi zeleni kanal" - -#: ../src/libs/histogram.c:2395 -msgid "toggle red channel" -msgstr "preklopi rdeči kanal" - -#: ../src/libs/histogram.c:2405 -msgid "cycle vectorscope types" -msgstr "kroži po vrstah vektorskopa" - -#: ../src/libs/histogram.c:2413 -msgid "color harmonies" -msgstr "barvne harmonije" - -#: ../src/libs/histogram.c:2425 -msgid "cycle color harmonies" -msgstr "kroži po barvnih harmonijah" - -#: ../src/libs/history.c:127 -msgid "compress history stack" -msgstr "stisni sklad zgodovine" - -#: ../src/libs/history.c:128 -msgid "" -"create a minimal history stack which produces the same image\n" -"ctrl+click to truncate history to the selected item" -msgstr "" -"ustvari minimalni sklad zgodovine, ki ustvari enako sliko\n" -"krmilka-klik za rezanje zgodovine pri izbranem vnosu" - -#: ../src/libs/history.c:139 -msgid "create a style from the current history stack" -msgstr "ustvari slog iz trenutnega sklada zgodovine" - -#: ../src/libs/history.c:141 -msgid "create style from history" -msgstr "ustvari slog iz zgodovine" - -#: ../src/libs/history.c:212 -msgid "always-on module" -msgstr "vedno prikazuj modul" - -#: ../src/libs/history.c:218 -msgid "default enabled module" -msgstr "privzeto omogočen modul" - -#: ../src/libs/history.c:225 -msgid "deprecated module" -msgstr "zastareli modul" - -#: ../src/libs/history.c:945 -msgid "colorspace" -msgstr "barvni prostor" - -#: ../src/libs/history.c:947 -msgid "mask mode" -msgstr "maskirni način" - -#: ../src/libs/history.c:951 -msgid "blend operation" -msgstr "operacija mešanja" - -#: ../src/libs/history.c:961 -msgid "mask blur" -msgstr "maska zamegljevanja" - -#: ../src/libs/history.c:964 -msgid "raster mask instance" -msgstr "pojavek rastrske maske" - -#: ../src/libs/history.c:965 -msgid "raster mask id" -msgstr "id rastrske maske" - -#: ../src/libs/history.c:966 -msgid "invert mask" -msgstr "preobrni masko" - -#: ../src/libs/history.c:971 -msgid "drawn mask polarity" -msgstr "polarnost narisane maske" - -#: ../src/libs/history.c:975 -#, c-format -msgid "a drawn mask was added" -msgstr "narisana maska je bila dodana" - -#: ../src/libs/history.c:977 -#, c-format -msgid "the drawn mask was removed" -msgstr "narisana maska je bila odstranjena" - -#: ../src/libs/history.c:978 -#, c-format -msgid "the drawn mask was changed" -msgstr "narisana maska je bila spremenjena" - -#: ../src/libs/history.c:1010 -msgid "parametric output mask:" -msgstr "parametrska izhodna maska:" - -#: ../src/libs/history.c:1011 -msgid "parametric input mask:" -msgstr "parametrska vhodna maska:" - -#: ../src/libs/history.c:1323 -msgid "delete image's history?" -msgstr "zbrišem zgodovino slik?" - -#: ../src/libs/history.c:1324 -msgid "do you really want to clear history of current image?" -msgstr "ali res želite očistiti zgodovino sprememb trenutne slike?" - -#: ../src/libs/image.c:72 -msgid "selected image[s]" -msgstr "izbrane slike" - -#: ../src/libs/image.c:284 -msgid "delete (trash)" -msgstr "briši (smeti)" - -#: ../src/libs/image.c:287 -msgid "physically delete from disk (using trash if possible)" -msgstr "fizično odstrani z diska (uporabi smeti, če je možno)" - -#: ../src/libs/image.c:288 -msgid "physically delete from disk immediately" -msgstr "nemudoma fizično zbriši z diska" - -#: ../src/libs/image.c:474 ../src/libs/modulegroups.c:3811 -#: ../src/libs/styles.c:876 -msgid "remove" -msgstr "odstrani" - -#: ../src/libs/image.c:475 -msgid "remove images from the image library, without deleting" -msgstr "odstrani slike iz knjižnice slik, brez brisanja" - -#: ../src/libs/image.c:483 -msgid "move..." -msgstr "prenesi..." - -#: ../src/libs/image.c:484 -msgid "move to other folder" -msgstr "preseli v drugo mapo" - -#: ../src/libs/image.c:487 -msgid "copy..." -msgstr "kopiraj..." - -#: ../src/libs/image.c:488 -msgid "copy to other folder" -msgstr "kopiraj v drugo mapo" - -#: ../src/libs/image.c:491 -msgid "create HDR" -msgstr "ustvari HDR" - -#: ../src/libs/image.c:492 -msgid "create a high dynamic range image from selected shots" -msgstr "ustvari sliko z visoko dinamičnim razponom iz izbranih slik" - -#: ../src/libs/image.c:496 -msgid "add a duplicate to the image library, including its history stack" -msgstr "dodaj duplikat v zbirko slik skupaj s svojim skladom zgodovine" - -#: ../src/libs/image.c:502 ../src/libs/image.c:505 -msgid "rotate selected images 90 degrees CCW" -msgstr "zasukaj izbrane slike za 90 stopinj v nasprotni smeri urnega kazalca" - -#: ../src/libs/image.c:509 ../src/libs/image.c:512 -msgid "rotate selected images 90 degrees CW" -msgstr "zasukaj izbrane slike za 90 stopinj v smeri urnega kazalca" - -#: ../src/libs/image.c:514 -msgid "reset rotation" -msgstr "ponastavi sukanje" - -#: ../src/libs/image.c:515 -msgid "reset rotation to EXIF data" -msgstr "ponastavi sukanje slike v EXIF" - -#: ../src/libs/image.c:518 -msgid "copy locally" -msgstr "kopiraj lokalno" - -#: ../src/libs/image.c:519 -msgid "copy the image locally" -msgstr "kopiraj sliko lokalno" - -#: ../src/libs/image.c:522 -msgid "resync local copy" -msgstr "pon. sinhr. lok. kopijo" - -#: ../src/libs/image.c:523 -msgid "synchronize the image's XMP and remove the local copy" -msgstr "sinhroniziraj XMP del slike in odstrani lokalno kopijo" - -#: ../src/libs/image.c:526 -msgctxt "selected images action" -msgid "group" -msgstr "grupa" - -#: ../src/libs/image.c:527 -msgid "add selected images to expanded group or create a new one" -msgstr "dodaj izbrane slike v razširjeno grupo ali ustvari novo grupo" - -#: ../src/libs/image.c:531 -msgid "ungroup" -msgstr "razgrupiraj" - -#: ../src/libs/image.c:532 -msgid "remove selected images from the group" -msgstr "odstrani izbrane slike iz grupe" - -#: ../src/libs/image.c:544 -msgid "select ratings metadata" -msgstr "izberite metapodatke o ocenah" - -#: ../src/libs/image.c:550 -msgid "colors" -msgstr "barve" - -#: ../src/libs/image.c:552 -msgid "select colors metadata" -msgstr "izberite metapodatke barv" - -#: ../src/libs/image.c:560 -msgid "select tags metadata" -msgstr "izberi oznako metapodatkov" - -#: ../src/libs/image.c:568 -msgid "select geo tags metadata" -msgstr "zbriši geo oznako metapodatka" - -#: ../src/libs/image.c:576 -msgid "select darktable metadata (from metadata editor module)" -msgstr "izberi darktable metapodatke (iz modula urejevalnik metapodatkov)" - -#: ../src/libs/image.c:584 -msgid "set the selected image as source of metadata" -msgstr "nastavit izbrano sliko kot vir metapodatkov" - -#: ../src/libs/image.c:589 -msgid "paste selected metadata on selected images" -msgstr "prilepi izbrane metapodatke na izbranih slikah" - -#: ../src/libs/image.c:593 -msgid "clear selected metadata on selected images" -msgstr "očisti izbrane metapodatke na izbranih slikah" - -#: ../src/libs/image.c:598 -msgid "how to handle existing metadata" -msgstr "kako ravnati z obstoječimi metapodatki" - -#: ../src/libs/image.c:601 -msgid "merge" -msgstr "zlij" - -#: ../src/libs/image.c:605 -msgid "update image information to match changes to file" -msgstr "osveži info o sliki, da ustreza spremembam datoteke" - -#: ../src/libs/image.c:609 -msgid "set selection as monochrome images and activate monochrome workflow" -msgstr "nastavi izbiro enobarvnih slik in aktiviraj enobarvni potek dela" - -#: ../src/libs/image.c:613 -msgid "set selection as color images" -msgstr "nastavi izbiro barvnih slik" - -#: ../src/libs/image.c:625 -msgid "duplicate virgin" -msgstr "podvoji izvorno" - -#: ../src/libs/import.c:263 -#, c-format -msgid "device \"%s\" connected on port \"%s\"." -msgstr "naprava '%s' je priklopljena na vrata '%s'." - -#: ../src/libs/import.c:273 ../src/libs/import.c:334 ../src/libs/import.c:1692 -msgid "copy & import from camera" -msgstr "kopiraj in uvozi iz kamere" - -#: ../src/libs/import.c:284 ../src/libs/import.c:336 -msgid "tethered shoot" -msgstr "upravljano snemanje" - -#: ../src/libs/import.c:291 ../src/libs/import.c:337 -msgid "unmount camera" -msgstr "odklopi kamero" - -#: ../src/libs/import.c:312 -msgid "" -"camera is locked by another application\n" -"make sure it is no longer mounted\n" -"or quit the locking application" -msgstr "" -"fotoaparat je zaklenil drug program\n" -"preverite, da ni priklopljen na računalnik\n" -"ali zapustite aplikacijo, ki ga zaklepa" - -#: ../src/libs/import.c:315 -msgid "tethering and importing is disabled for this camera" -msgstr "oddaljeno upravljanje in uvažanje slik je onemogočeno za to kamero" - -#: ../src/libs/import.c:317 ../src/libs/import.c:335 -msgid "mount camera" -msgstr "priklopi kamero" - -#: ../src/libs/import.c:747 -#, c-format -msgid "%d image out of %d selected" -msgid_plural "%d images out of %d selected" -msgstr[0] "%d slika izmed %d izbranih" -msgstr[1] "%d sliki izmed %d izbranih" -msgstr[2] "%d slike izmed %d izbranih" -msgstr[3] "%d slik izmed %d izbranih" - -#: ../src/libs/import.c:1039 -msgid "you can't delete the selected place" -msgstr "ne morete izbrisati izbranega kraja" - -#: ../src/libs/import.c:1153 -msgid "choose the root of the folder tree below" -msgstr "izberite koren drevesa map spodaj" - -#: ../src/libs/import.c:1156 -msgid "places" -msgstr "kraji" - -#: ../src/libs/import.c:1162 -msgid "restore all default places you have removed by right-click" -msgstr "obnovi vse privzete kraje, ki ste jih odstraniti z desnim klikom" - -#: ../src/libs/import.c:1167 -msgid "" -"add a custom place\n" -"\n" -"right-click on a place to remove it" -msgstr "" -"dodaj kraj po meri\n" -"\n" -"desno kliknite na kraj, da ga odstranite" - -#: ../src/libs/import.c:1174 -msgid "you can add custom places using the plus icon" -msgstr "lahko dodajate kraje po meri z uporabo ikone plus" - -#: ../src/libs/import.c:1199 -msgid "select a folder to see the content" -msgstr "izberite mapo, da bi videli vsebino" - -#: ../src/libs/import.c:1202 -msgid "folders" -msgstr "mape" - -#: ../src/libs/import.c:1272 -msgid "home" -msgstr "domov" - -#: ../src/libs/import.c:1284 -msgid "pictures" -msgstr "slike" - -#: ../src/libs/import.c:1548 -msgid "mark already imported pictures" -msgstr "označi že uvožene slike" - -#: ../src/libs/import.c:1562 -msgid "modified" -msgstr "spremenjeno" - -#: ../src/libs/import.c:1567 -msgid "file 'modified date/time', may be different from 'Exif date/time'" -msgstr "" -"'datum/čas spremembe' datoteke, se lahko razlikuje od 'datuma/časa v Exifu'" - -#: ../src/libs/import.c:1579 -msgid "show/hide thumbnails" -msgstr "prikaži/skrij predogledne sličice" - -#: ../src/libs/import.c:1649 -msgid "naming rules" -msgstr "pravila poimenovanja" - -#: ../src/libs/import.c:1690 -msgid "add to library" -msgstr "dodaj v knjižnico" - -#: ../src/libs/import.c:1691 -msgid "copy & import" -msgstr "kopiraj in uvozi" - -#: ../src/libs/import.c:1730 -msgid "select new" -msgstr "izberi novega" - -#: ../src/libs/import.c:1773 -msgid "please wait while prefetching the list of images from camera..." -msgstr "prosim počakajte, dokler ne pridobim seznama slik iz kamere..." - -#: ../src/libs/import.c:1907 -msgid "invalid override date/time format" -msgstr "neveljaven format preglasitve datuma/časa" - -#: ../src/libs/import.c:2022 -msgid "add to library..." -msgstr "dodaj v knjižnico..." - -#: ../src/libs/import.c:2023 -msgid "add existing images to the library" -msgstr "dodaj obstoječe slike v knjižnico" - -#: ../src/libs/import.c:2029 -msgid "copy & import..." -msgstr "kopiraj in uvozi..." - -#: ../src/libs/import.c:2030 -msgid "" -"copy and optionally rename images before adding them to the library\n" -"patterns can be defined to rename the images and specify the destination " -"folders" -msgstr "" -"kopirajte in po želji preimenujte slike, preden jih dodate v knjižnico\n" -"vzorce je mogoče definirati za preimenovanje slik in določitev ciljne mape" - -#. collapsible section -#: ../src/libs/import.c:2053 -msgid "parameters" -msgstr "parametri" - -#: ../src/libs/ioporder.c:204 -msgid "v3.0 for RAW input (default)" -msgstr "v3.0 za surovi vhod (privzeto)" - -#: ../src/libs/ioporder.c:210 -msgid "v3.0 for JPEG/non-RAW input" -msgstr "v3.0 za JPEG/ne-surovi vhod" - -#: ../src/libs/lib.c:376 -msgid "deleting preset for obsolete module" -msgstr "brisanje začetnih nastavitev zastarelega modula" - -#: ../src/libs/lib.c:542 -msgid "manage presets..." -msgstr "upravljaj prednastavitve..." - -#: ../src/libs/lib.c:567 -msgid "nothing to save" -msgstr "ni kaj shraniti" - -#: ../src/libs/lib.c:1105 -msgid "show module" -msgstr "prikaži modul" - -#: ../src/libs/lib.c:1430 -msgid "utility module" -msgstr "uporabni modul" - -#: ../src/libs/live_view.c:107 -msgid "live view" -msgstr "ogled v živo" - -#: ../src/libs/live_view.c:289 ../src/libs/live_view.c:290 -msgid "toggle live view" -msgstr "preklopi živ pogled" - -#. TODO: see _zoom_live_view_clicked -#: ../src/libs/live_view.c:291 ../src/libs/live_view.c:292 -msgid "zoom live view" -msgstr "zumiraj živi pogled" - -#: ../src/libs/live_view.c:295 -msgid "flip live view horizontally" -msgstr "vodoravno prezrcali živi pogled" - -#: ../src/libs/live_view.c:301 -msgid "move focus point in (big steps)" -msgstr "premakni točko ostrenja (z velikimi koraki)" - -#: ../src/libs/live_view.c:302 -msgid "move focus point in (small steps)" -msgstr "premakni točko ostrenja (z majhnimi koraki)" - -#. TODO icon not centered -#: ../src/libs/live_view.c:303 -msgid "run autofocus" -msgstr "poženi samodejno ostrenje" - -#: ../src/libs/live_view.c:304 -msgid "move focus point out (small steps)" -msgstr "premakni točko ostrenja ven (z majhnimi koraki)" - -#. TODO same here -#: ../src/libs/live_view.c:305 -msgid "move focus point out (big steps)" -msgstr "premakni točko ostrenja ven (z velikimi koraki)" - -#: ../src/libs/live_view.c:310 -msgid "overlay" -msgstr "prekrij" - -#: ../src/libs/live_view.c:312 -msgid "selected image" -msgstr "izbrana slika" - -#: ../src/libs/live_view.c:314 -msgid "overlay another image over the live view" -msgstr "prekrij še eno sliko čez živi pogled" - -#: ../src/libs/live_view.c:323 -msgid "enter image id of the overlay manually" -msgstr "vnesite id slike ročno čez prekrivno plast" - -#: ../src/libs/live_view.c:334 -msgid "overlay mode" -msgstr "način prekrivanja" - -#: ../src/libs/live_view.c:336 -msgctxt "blendmode" -msgid "xor" -msgstr "xor" - -#: ../src/libs/live_view.c:337 -msgctxt "blendmode" -msgid "add" -msgstr "dodaj" - -#: ../src/libs/live_view.c:338 -msgctxt "blendmode" -msgid "saturate" -msgstr "nasičenje" - -#: ../src/libs/live_view.c:344 -msgctxt "blendmode" -msgid "color dodge" -msgstr "barvna slabitev" - -#: ../src/libs/live_view.c:345 -msgctxt "blendmode" -msgid "color burn" -msgstr "barvno pregorevanje" - -#: ../src/libs/live_view.c:346 -msgctxt "blendmode" -msgid "hard light" -msgstr "trda svetloba" - -#: ../src/libs/live_view.c:347 -msgctxt "blendmode" -msgid "soft light" -msgstr "mehka svetloba" - -#: ../src/libs/live_view.c:349 -msgctxt "blendmode" -msgid "exclusion" -msgstr "izločanje" - -#: ../src/libs/live_view.c:350 -msgctxt "blendmode" -msgid "HSL hue" -msgstr "odtenek HSL" - -#: ../src/libs/live_view.c:351 -msgctxt "blendmode" -msgid "HSL saturation" -msgstr "nasičenost HSL" - -#: ../src/libs/live_view.c:352 -msgctxt "blendmode" -msgid "HSL color" -msgstr "barva HSL" - -#: ../src/libs/live_view.c:353 -msgctxt "blendmode" -msgid "HSL luminosity" -msgstr "svetlost HSL" - -#: ../src/libs/live_view.c:354 -msgid "mode of the overlay" -msgstr "način prekrivanja" - -#: ../src/libs/live_view.c:360 -msgid "split line" -msgstr "črta razdelitve" - -#: ../src/libs/live_view.c:363 -msgid "only draw part of the overlay" -msgstr "nariši samo del prekrivne plasti" - -#: ../src/libs/location.c:100 -msgid "find location" -msgstr "najdi lokacijo" - -#: ../src/libs/map_locations.c:36 -msgid "locations" -msgstr "lokacije" - -#: ../src/libs/map_locations.c:234 -msgid "new sub-location" -msgstr "nova pod-lokacija" - -#: ../src/libs/map_locations.c:238 ../src/libs/map_locations.c:286 -#: ../src/libs/map_locations.c:960 -msgid "new location" -msgstr "nova lokacija" - -#: ../src/libs/map_locations.c:587 -#, c-format -msgid "location name '%s' already exists" -msgstr "lokacija z imenom '%s' že obstaja" - -#: ../src/libs/map_locations.c:778 -msgid "edit location" -msgstr "uredi lokacijo" - -#: ../src/libs/map_locations.c:781 -msgid "delete location" -msgstr "zbriši lokacijo" - -#: ../src/libs/map_locations.c:791 -msgid "update filmstrip" -msgstr "osveži kos filma" - -#: ../src/libs/map_locations.c:798 -msgid "go to collection (lighttable)" -msgstr "pojdi na zbirko (osvetljena podlaga)" - -#: ../src/libs/map_locations.c:844 -msgid "" -"terminate edit (press enter or escape) before selecting another location" -msgstr "" -"prekini urejanje (pritisnite Enter ali Escape), preden izberete drugo " -"lokacijo" - -#: ../src/libs/map_locations.c:931 -msgid "" -"list of user locations,\n" -"click to show or hide a location on the map:\n" -" - wheel scroll inside the shape to resize it\n" -" - <shift> or <ctrl> scroll to modify the width or the height\n" -" - click inside the shape and drag it to change its position\n" -" - ctrl+click to move an image from inside the location\n" -"ctrl+click to edit a location name\n" -" - a pipe '|' symbol breaks the name into several levels\n" -" - to remove a group of locations clear its name\n" -" - press enter to validate the new name, escape to cancel the edit\n" -"right-click for other actions: delete location and go to collection" -msgstr "" -"seznam uporabniških lokacij,\n" -"kliknite, da prikažete ali skrijete lokacijo na zemljevidu:\n" -" - s kolescem se pomaknite znotraj oblike, da ji spremenite velikost\n" -" - dvigalka ali krmilka in drsanje za spremembo širine ali višine\n" -" - kliknite znotraj oblike in jo povlecite, da spremenite njen položaj\n" -" - krmilka+klik za premik slike znotraj lokacije\n" -"krmilka+klik, za urejanje imena lokacije\n" -" - simbol cevi '|' razdeli ime na več ravni\n" -" - če želite odstraniti skupino lokacij, počistite njeno ime\n" -" - pritisnite Enter, da preverite veljavnost novega imena, escape pa za " -"preklic izdaje\n" -"klik z desno miškino tipko za druga dejanja: izbriši lokacijo in pojdi na " -"zbirko" - -#: ../src/libs/map_locations.c:957 -msgid "" -"select the shape of the location's limits on the map, circle or rectangle\n" -"or even polygon if available (select first a polygon place in 'find " -"location' module)" -msgstr "" -"izberite obliko omejitev lokacije na zemljevidu, to je krog ali pravokotnik\n" -"ali celo mnogokotnik, če je na voljo (izberite najprej prostor za " -"mnogokotnik v modulu 'najdi lokacijo')" - -#: ../src/libs/map_locations.c:961 -msgid "add a new location on the center of the visible map" -msgstr "dodaj novo lokacijo na sredino vidnega zemljevida" - -#: ../src/libs/map_locations.c:965 -msgid "show all" -msgstr "prikaži vse" - -#: ../src/libs/map_locations.c:968 -msgid "show all locations which are on the visible map" -msgstr "pokaži vse lokacije, ki so na vidnem zemljevidu" - -#: ../src/libs/map_settings.c:39 -msgid "map settings" -msgstr "nastavitve mape" - -#: ../src/libs/map_settings.c:107 -msgid "map source" -msgstr "vir zemljevida" - -#: ../src/libs/map_settings.c:112 -msgid "select the source of the map. some entries might not work" -msgstr "izberite vir zemljevida. nekatere vrednosti morda ne delujejo" - -#: ../src/libs/masks.c:107 -msgid "feather" -msgstr "pero" - -#: ../src/libs/masks.c:114 -msgid "hardness (relative)" -msgstr "trdota (relativna)" - -#: ../src/libs/masks.c:115 -msgid "hardness (absolute)" -msgstr "trdota (absolutna)" - -#: ../src/libs/masks.c:116 -msgid "opacity (relative)" -msgstr "neprosojnost (relativna)" - -#: ../src/libs/masks.c:117 -msgid "opacity (absolute)" -msgstr "neprosojnost (absolutna)" - -#: ../src/libs/masks.c:118 -msgid "brush size (relative)" -msgstr "velikost čopiča (relativna)" - -#: ../src/libs/masks.c:121 -msgid "low" -msgstr "nizka" - -#: ../src/libs/masks.c:122 -msgid "medium" -msgstr "srednja" - -#: ../src/libs/masks.c:123 -msgid "high" -msgstr "visoka" - -#: ../src/libs/masks.c:381 -#, c-format -msgid "group #%d" -msgstr "grupa #%d" - -#: ../src/libs/masks.c:1081 -msgid "duplicate this shape" -msgstr "dupliciraj to obliko" - -#: ../src/libs/masks.c:1085 -msgid "delete this shape" -msgstr "briši to obliko" - -#: ../src/libs/masks.c:1091 -msgid "delete group" -msgstr "briši grupo" - -#: ../src/libs/masks.c:1098 -msgid "remove from group" -msgstr "odstrani iz skupine" - -#: ../src/libs/masks.c:1106 -msgid "group the forms" -msgstr "grupiraj forme" - -#: ../src/libs/masks.c:1114 -msgid "use inverted shape" -msgstr "uporabi inverzno obliko" - -#: ../src/libs/masks.c:1121 -msgid "mode: union" -msgstr "način: unija" - -#: ../src/libs/masks.c:1127 -msgid "mode: intersection" -msgstr "način: presek" - -#: ../src/libs/masks.c:1133 -msgid "mode: difference" -msgstr "način: razlika" - -#: ../src/libs/masks.c:1139 -msgid "mode: sum" -msgstr "način: vsota" - -#: ../src/libs/masks.c:1145 -msgid "mode: exclusion" -msgstr "način : izvzetje" - -#: ../src/libs/masks.c:1164 -msgid "cleanup unused shapes" -msgstr "počisti neuporabljene oblike" - -#: ../src/libs/masks.c:1811 -msgid "created shapes" -msgstr "ustvarjene oblike" - -#: ../src/libs/masks.c:1904 ../src/libs/masks.c:1919 ../src/libs/masks.c:1939 -#: ../src/libs/masks.c:1955 -msgid "properties" -msgstr "lastnosti" - -#: ../src/libs/masks.c:1907 -msgid "no shapes selected" -msgstr "ni izbranih oblik" - -#: ../src/libs/masks.c:1940 -msgid "pressure" -msgstr "pritisk" - -#: ../src/libs/masks.c:1941 -msgid "" -"pen pressure control for brush masks\n" -"'off': pressure reading ignored,\n" -"'hardness'/'opacity'/'brush size': pressure reading controls specified " -"attribute,\n" -"'absolute'/'relative': pressure reading is taken directly as attribute value " -"or multiplied with pre-defined setting." -msgstr "" -"kontrola pritiska čopiča za maske čopiča\n" -"'izključena': merjenje pritiska izpuščeno,\n" -"'trdota'/'prosojnost'/'velikost čopiča': branje atributa pritiska določene " -"lastnosti,\n" -"'absolutne'/'relativne': detekcija pritiska prebrana direktno kot vrednost " -"atributa ali pomnoženo s prej določeno vrednostjo." - -#: ../src/libs/masks.c:1956 -msgid "smoothing" -msgstr "glajenje" - -#: ../src/libs/masks.c:1957 -msgid "" -"smoothing of brush strokes\n" -"stronger smoothing leads to fewer nodes and easier editing but with lower " -"control of accuracy." -msgstr "" -"nastavitev ravni glajenja potez s čopičem\n" -"močnejše glajenje pomeni manj vozlišč in enostavnejše urejanje krivulj, a " -"manjšo natančnost." - -#: ../src/libs/metadata.c:64 -msgid "metadata editor" -msgstr "urejevalnik metapodatkov" - -#: ../src/libs/metadata.c:206 ../src/libs/metadata.c:496 -msgid "<leave unchanged>" -msgstr "<pusti nespremenjeno>" - -#: ../src/libs/metadata.c:630 ../src/libs/metadata_view.c:1192 -msgid "metadata settings" -msgstr "nastavitve metapodatkov" - -#: ../src/libs/metadata.c:683 ../src/libs/metadata_view.c:1237 -msgid "visible" -msgstr "vidno" - -#: ../src/libs/metadata.c:688 -msgid "" -"tick if the corresponding metadata is of interest for you\n" -"it will be visible from metadata editor, collection and import module\n" -"it will be also exported" -msgstr "" -"odkljukajte, če vas ustrezni metapodatki zanimajo\n" -"bodo vidni v urejevalniku metapodatkov, zbirki in modul za uvoz\n" -"bodo tudi izvoženi" - -#: ../src/libs/metadata.c:693 ../src/libs/tagging.c:1683 -#: ../src/libs/tagging.c:1827 -msgid "private" -msgstr "zasebno" - -#: ../src/libs/metadata.c:698 -msgid "" -"tick if you want to keep this information private (not exported with images)" -msgstr "" -"označite, če želite te podatke ohraniti zasebne (se ne izvažajo s slikami)" - -#: ../src/libs/metadata.c:857 -msgid "" -"metadata text\n" -"ctrl+enter inserts a new line (caution, may not be compatible with standard " -"metadata)\n" -"if <leave unchanged> selected images have different metadata\n" -"in that case, right-click gives the possibility to choose one of them\n" -"escape to exit the popup window" -msgstr "" -"besedilo metapodatkov\n" -"krmilka-enter vstavi novo vrstico (previdno, morda ni združljiva s " -"standardnimi metapodatki)\n" -"krmilka+drsanje za spremembo velikosti besedilnega polja\n" -"če imajo <pustite_nespremenjene> izbrane slike različne metapodatke.\n" -"v tem primeru z desnim klikom omogočite izbiro ene od njih.\n" -"pritisnite tipko escape za izhod iz pojavnega okna" - -#: ../src/libs/metadata.c:902 -msgid "write metadata for selected images" -msgstr "zapiši metapodatke za izbrane slike" - -#. <title>\0<description>\0<rights>\0<creator>\0<publisher> -#: ../src/libs/metadata.c:958 -msgid "CC BY" -msgstr "CC BY" - -#: ../src/libs/metadata.c:959 -msgid "Creative Commons Attribution (CC BY)" -msgstr "Prispevek Creative Commons (CC BY)" - -#: ../src/libs/metadata.c:960 -msgid "CC BY-SA" -msgstr "CC BY-SA" - -#: ../src/libs/metadata.c:961 -msgid "Creative Commons Attribution-ShareAlike (CC BY-SA)" -msgstr "Prispevek Creative Commons - Deljenje pod enakimi pogoji (CC BY-SA)" - -#: ../src/libs/metadata.c:962 -msgid "CC BY-ND" -msgstr "CC BY-ND" - -#: ../src/libs/metadata.c:963 -msgid "Creative Commons Attribution-NoDerivs (CC BY-ND)" -msgstr "Prispevek Creative Commons - Brez predelav (CC BY-ND)" - -#: ../src/libs/metadata.c:964 -msgid "CC BY-NC" -msgstr "CC BY-NC" - -#: ../src/libs/metadata.c:965 -msgid "Creative Commons Attribution-NonCommercial (CC BY-NC)" -msgstr "Prispevek Creative Commons - Nekomercialno (CC BY-NC)" - -#: ../src/libs/metadata.c:966 -msgid "CC BY-NC-SA" -msgstr "CC BY-NC-SA" - -#: ../src/libs/metadata.c:967 -msgid "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" -msgstr "" -"Prispevek Creative Commons - Nekomercialno - Deljenje pod enakimi pogoji (CC " -"BY-NC-SA)" - -#: ../src/libs/metadata.c:968 -msgid "CC BY-NC-ND" -msgstr "CC BY-NC-ND" - -#: ../src/libs/metadata.c:969 -msgid "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" -msgstr "" -"Prispevek Creative Commons - Nekomercialno - Brez predelav (CC BY-NC-ND)" - -#: ../src/libs/metadata.c:970 ../src/libs/metadata.c:971 -msgid "all rights reserved" -msgstr "vse pravice pridržane" - -#. internal -#: ../src/libs/metadata_view.c:123 -msgid "filmroll" -msgstr "zvitek filma" - -#: ../src/libs/metadata_view.c:125 -msgid "group id" -msgstr "id grupe" - -#: ../src/libs/metadata_view.c:127 -msgid "version" -msgstr "verzija" - -#: ../src/libs/metadata_view.c:130 -msgid "import timestamp" -msgstr "časovna oznaka" - -#: ../src/libs/metadata_view.c:131 -msgid "change timestamp" -msgstr "spremeni časovno oznako" - -#: ../src/libs/metadata_view.c:132 -msgid "export timestamp" -msgstr "izvozi časovno oznako" - -#: ../src/libs/metadata_view.c:133 -msgid "print timestamp" -msgstr "tiskaj časovno oznako" - -#: ../src/libs/metadata_view.c:134 -msgid "flags" -msgstr "zastavice" - -#: ../src/libs/metadata_view.c:144 -msgid "focus distance" -msgstr "izmerjena razdalja" - -#: ../src/libs/metadata_view.c:146 -msgid "datetime" -msgstr "datum in čas" - -#: ../src/libs/metadata_view.c:149 -msgid "export width" -msgstr "širina izvoza" - -#: ../src/libs/metadata_view.c:150 -msgid "export height" -msgstr "višina izvoza" - -#: ../src/libs/metadata_view.c:158 -msgid "longitude" -msgstr "zemljepisna dolžina" - -#: ../src/libs/metadata_view.c:159 -msgid "elevation" -msgstr "višina" - -#: ../src/libs/metadata_view.c:163 -msgid "categories" -msgstr "kategorije" - -#: ../src/libs/metadata_view.c:170 -msgid "image information" -msgstr "informacije o sliki" - -#: ../src/libs/metadata_view.c:330 -msgid "unused/deprecated" -msgstr "neuporabljeno/zastarelo" - -#: ../src/libs/metadata_view.c:331 -msgid "LDR" -msgstr "LDR" - -#: ../src/libs/metadata_view.c:334 -msgid "marked for deletion" -msgstr "označeno za brisanje" - -#: ../src/libs/metadata_view.c:335 -msgid "auto-applying presets applied" -msgstr "uporabljene avtomatske nastavitve" - -#: ../src/libs/metadata_view.c:337 -msgid "has .txt" -msgstr "ima .txt" - -#: ../src/libs/metadata_view.c:338 -msgid "has .wav" -msgstr "ima .wav" - -#: ../src/libs/metadata_view.c:356 -#, c-format -msgid "image has %d star" -msgid_plural "image has %d stars" -msgstr[0] "slika ima %d zvezdico" -msgstr[1] "slika ima %d zvezdici" -msgstr[2] "slika ima %d zvezdice" -msgstr[3] "slika ima %d zvezdic" - -#: ../src/libs/metadata_view.c:432 -#, c-format -msgid "loader: %s" -msgstr "nalagalnik: %s" - -#: ../src/libs/metadata_view.c:623 -msgid "<various values>" -msgstr "<različne vrednosti>" - -#: ../src/libs/metadata_view.c:636 -#, c-format -msgid "" -"double-click to jump to film roll\n" -"%s" -msgstr "" -"dvoklik za prehod na zvitek filma\n" -"%s" - -#: ../src/libs/metadata_view.c:728 -#, c-format -msgid "%+.2f EV" -msgstr "%+.2f EV" - -#: ../src/libs/metadata_view.c:735 -#, c-format -msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" -msgstr "%.1f mm (%.1f mm FF ekviv, obrez %.1f)" - -#: ../src/libs/metadata_view.c:740 -#, c-format -msgid "%.1f mm" -msgstr "%.1f mm" - -#: ../src/libs/metadata_view.c:751 -#, c-format -msgid "infinity" -msgstr "neskončnost" - -#: ../src/libs/metadata_view.c:755 -#, c-format -msgid "%.2f m" -msgstr "%.2f m" - -#: ../src/libs/metadata_view.c:1232 -msgid "" -"drag and drop one row at a time until you get the desired order\n" -"untick to hide metadata which are not of interest for you\n" -"if different settings are needed, use presets" -msgstr "" -"povlecite in spustite po eno vrstico naenkrat, dokler ne dobite želenega " -"vrstnega reda\n" -"počistite kljukico, da skrijete metapodatke, ki vas ne zanimajo\n" -"če so potrebne drugačne nastavitve, uporabite prednastavitve" - -#: ../src/libs/metadata_view.c:1388 -msgid "jump to film roll" -msgstr "skoči na zvitek filma" - -#: ../src/libs/recentcollect.c:68 -msgid "recently used collections" -msgstr "nedavno uporabljene zbirke" - -#: ../src/libs/recentcollect.c:109 -msgid " and " -msgstr " in " - -#: ../src/libs/recentcollect.c:114 -msgid " or " -msgstr " ali " - -#. case DT_LIB_COLLECT_MODE_AND_NOT: -#: ../src/libs/recentcollect.c:119 -msgid " but not " -msgstr " razen " - -#: ../src/libs/recentcollect.c:226 -msgid "recent collections settings" -msgstr "zadnje nastavitve zbirk" - -#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1769 -msgid "workflow: scene-referred" -msgstr "delovni tok: glede na sceno" - -#: ../src/libs/modulegroups.c:45 -msgid "modules: deprecated" -msgstr "moduli: zastarelo" - -#: ../src/libs/modulegroups.c:48 -msgid "last modified layout" -msgstr "zadnje spremenjena postavitev" - -#: ../src/libs/modulegroups.c:192 -msgid "modulegroups" -msgstr "skupine modulov" - -#. FIXME don't check here if on/off is enabled, because it depends on image (reload_defaults) -#. respond later to image changed signal -#: ../src/libs/modulegroups.c:306 ../src/libs/modulegroups.c:318 -#: ../src/libs/modulegroups.c:2427 ../src/libs/modulegroups.c:2429 -msgid "on-off" -msgstr "vključeno-izključeno" - -#: ../src/libs/modulegroups.c:498 ../src/libs/modulegroups.c:501 -msgid "" -"this quick access widget is disabled as there are multiple instances of this " -"module present. Please use the full module to access this widget..." -msgstr "" -"ta pripomoček za hitri dostop je onemogočen, saj obstaja več pojavkov tega " -"modula. Uporabite celotni modul za dostop do tega gradnika..." - -#: ../src/libs/modulegroups.c:591 -msgid "(some features may only be available in the full module interface)" -msgstr "(nekatere zmožnosti so na voljo samo v celotnem vmesniku modula)" - -#: ../src/libs/modulegroups.c:635 -#, c-format -msgid "go to the full version of the %s module" -msgstr "pojdi na polno različico modula %s" - -#: ../src/libs/modulegroups.c:1556 ../src/libs/modulegroups.c:1641 -#: ../src/libs/modulegroups.c:1677 ../src/libs/modulegroups.c:1727 -#: ../src/libs/modulegroups.c:1817 -msgctxt "modulegroup" -msgid "base" -msgstr "baza" - -#: ../src/libs/modulegroups.c:1575 -msgctxt "modulegroup" -msgid "tone" -msgstr "ton" - -#: ../src/libs/modulegroups.c:1584 ../src/libs/modulegroups.c:1691 -#: ../src/libs/modulegroups.c:1741 -msgctxt "modulegroup" -msgid "color" -msgstr "barva" - -#: ../src/libs/modulegroups.c:1599 ../src/libs/modulegroups.c:1699 -#: ../src/libs/modulegroups.c:1746 -msgctxt "modulegroup" -msgid "correct" -msgstr "popravi" - -#: ../src/libs/modulegroups.c:1617 ../src/libs/modulegroups.c:1711 -#: ../src/libs/modulegroups.c:1758 ../src/libs/modulegroups.c:2321 -msgctxt "modulegroup" -msgid "effect" -msgstr "efekt" - -#: ../src/libs/modulegroups.c:1635 -msgid "modules: all" -msgstr "moduli: vsi" - -#: ../src/libs/modulegroups.c:1656 -msgctxt "modulegroup" -msgid "grading" -msgstr "stopnjevanje" - -#: ../src/libs/modulegroups.c:1664 ../src/libs/modulegroups.c:2325 -msgctxt "modulegroup" -msgid "effects" -msgstr "učinki" - -#: ../src/libs/modulegroups.c:1672 -msgid "workflow: beginner" -msgstr "delovni tok: začetnik" - -#: ../src/libs/modulegroups.c:1721 -msgid "workflow: display-referred" -msgstr "delovni tok: glede na zaslon" - -#: ../src/libs/modulegroups.c:1773 -msgid "search only" -msgstr "samo iskanje" - -#: ../src/libs/modulegroups.c:1779 ../src/libs/modulegroups.c:2090 -#: ../src/libs/modulegroups.c:2599 -msgctxt "modulegroup" -msgid "deprecated" -msgstr "zastarelo" - -#: ../src/libs/modulegroups.c:1792 -msgid "previous config" -msgstr "prejšnja nastavitev" - -#: ../src/libs/modulegroups.c:1793 -msgid "previous layout" -msgstr "prejšnja postavitev" - -#: ../src/libs/modulegroups.c:1797 -msgid "previous config with new layout" -msgstr "prejšnja nastavitev z novo postavitvijo" - -#: ../src/libs/modulegroups.c:1957 ../src/libs/modulegroups.c:2472 -#: ../src/libs/modulegroups.c:2484 -msgid "remove this widget" -msgstr "odstrani ta gradnik" - -#: ../src/libs/modulegroups.c:2107 ../src/libs/modulegroups.c:2347 -msgid "remove this module" -msgstr "odstrani ta modul" - -#. does it belong to recommended modules ? -#: ../src/libs/modulegroups.c:2316 -msgid "base" -msgstr "baza" - -#: ../src/libs/modulegroups.c:2319 -msgid "tone" -msgstr "ton" - -#: ../src/libs/modulegroups.c:2322 -msgid "technical" -msgstr "tehnično" - -#: ../src/libs/modulegroups.c:2323 -msgid "grading" -msgstr "stopnjevanje" - -#: ../src/libs/modulegroups.c:2329 ../src/libs/modulegroups.c:2337 -msgid "add this module" -msgstr "dodaj ta modul" - -#. show the submenu with all the modules -#: ../src/libs/modulegroups.c:2359 ../src/libs/modulegroups.c:2559 -msgid "all available modules" -msgstr "vsi razpoložljivi moduli" - -#: ../src/libs/modulegroups.c:2367 -msgid "add module" -msgstr "dodaj modul" - -#: ../src/libs/modulegroups.c:2372 -msgid "remove module" -msgstr "odstrani modul" - -#: ../src/libs/modulegroups.c:2478 -msgid "header needed for other widgets" -msgstr "glava je potrebna za ostale gradnike" - -#: ../src/libs/modulegroups.c:2494 ../src/libs/modulegroups.c:2501 -msgid "add this widget" -msgstr "dodaj ta gradnik" - -#: ../src/libs/modulegroups.c:2514 -msgid "currently invisible" -msgstr "trenutno nevidno" - -#: ../src/libs/modulegroups.c:2543 -msgid "add widget" -msgstr "dodaj gradnik" - -#: ../src/libs/modulegroups.c:2548 -msgid "remove widget" -msgstr "odstrani gradnik" - -#: ../src/libs/modulegroups.c:2653 -msgid "show all history modules" -msgstr "prikaži vse module zgodovine" - -#: ../src/libs/modulegroups.c:2656 ../src/libs/modulegroups.c:3834 -msgid "" -"show modules that are present in the history stack, regardless of whether or " -"not they are currently enabled" -msgstr "" -"prikaži module, ki so prisotni v skladu zgodovine, ne glede na to ali so " -"trenutno omogočeni ali ne" - -#: ../src/libs/modulegroups.c:2747 ../src/libs/modulegroups.c:2816 -msgid "" -"the following modules are deprecated because they have internal design " -"mistakes that can't be corrected and alternative modules that correct them.\n" -"they will be removed for new edits in the next release." -msgstr "" -"naslednji moduli so zastareli, ker imajo notranje napake pri načrtovanju, ki " -"jih ni mogoče rešiti in alternative, ki jih rešujejo.\n" -"v naslednji izdaji bodo odstranjeni za nova urejanja." - -#: ../src/libs/modulegroups.c:2775 ../src/libs/modulegroups.c:2776 -msgid "quick access panel" -msgstr "plošča za hitri dostop" - -#: ../src/libs/modulegroups.c:2786 -msgid "show only active modules" -msgstr "prikaži samo aktivne module" - -#: ../src/libs/modulegroups.c:2787 -msgid "active modules" -msgstr "aktivni moduli" - -#: ../src/libs/modulegroups.c:2792 -msgid "" -"presets\n" -"ctrl+click to manage" -msgstr "" -"prednastavitve\n" -"krmilka+klik za upravljanje" - -#: ../src/libs/modulegroups.c:2798 -msgid "search modules" -msgstr "moduli iskanja" - -#: ../src/libs/modulegroups.c:2799 -msgid "search modules by name or tag" -msgstr "modul iskanja po imenu ali oznaki" - -#: ../src/libs/modulegroups.c:2809 -msgid "clear text" -msgstr "odstrani besedilo" - -#: ../src/libs/modulegroups.c:3051 -msgid "basic icon" -msgstr "osnovna ikona" - -#: ../src/libs/modulegroups.c:3061 -msgid "active icon" -msgstr "aktivna ikona" - -#: ../src/libs/modulegroups.c:3071 -msgid "color icon" -msgstr "barvna ikona" - -#: ../src/libs/modulegroups.c:3081 -msgid "correct icon" -msgstr "ikona popravkov" - -#: ../src/libs/modulegroups.c:3091 -msgid "effect icon" -msgstr "ikona učinkov" - -#: ../src/libs/modulegroups.c:3101 -msgid "favorites icon" -msgstr "ikona priljubljenih" - -#: ../src/libs/modulegroups.c:3111 -msgid "tone icon" -msgstr "ikona tonov" - -#: ../src/libs/modulegroups.c:3121 -msgid "grading icon" -msgstr "ikona gradientov" - -#: ../src/libs/modulegroups.c:3131 -msgid "technical icon" -msgstr "tehnična ikona" - -#: ../src/libs/modulegroups.c:3164 -msgid "quick access panel widgets" -msgstr "gradniki plošče hitrih dostopov" - -#: ../src/libs/modulegroups.c:3166 -msgid "quick access" -msgstr "hitri dostop" - -#: ../src/libs/modulegroups.c:3186 -msgid "add widget to the quick access panel" -msgstr "dodaj gradnik na ploščo hitrih dostopov" - -#: ../src/libs/modulegroups.c:3218 -msgid "group icon" -msgstr "ikona skupin" - -#: ../src/libs/modulegroups.c:3227 -msgid "group name" -msgstr "ime skupine" - -#: ../src/libs/modulegroups.c:3238 -msgid "remove group" -msgstr "odstrani skupino" - -#: ../src/libs/modulegroups.c:3264 -msgid "move group to the left" -msgstr "premakni skupino na levo" - -#: ../src/libs/modulegroups.c:3272 -msgid "add module to the group" -msgstr "dodaj modul v skupino" - -#: ../src/libs/modulegroups.c:3283 -msgid "move group to the right" -msgstr "pomakni skupino v desno" - -#: ../src/libs/modulegroups.c:3463 -msgid "rename preset" -msgstr "preimenuj nastavitev" - -#: ../src/libs/modulegroups.c:3470 -msgid "new preset name:" -msgstr "novo ime prednastavitve:" - -#: ../src/libs/modulegroups.c:3471 -msgid "a preset with this name already exists!" -msgstr "prednastavitev s tem imenom že obstaja!" - -#: ../src/libs/modulegroups.c:3804 -msgid "preset: " -msgstr "prednastavitev: " - -#: ../src/libs/modulegroups.c:3811 -msgid "remove the preset" -msgstr "odstrani prednastavitev" - -#: ../src/libs/modulegroups.c:3813 -msgid "duplicate the preset" -msgstr "podvoji prednastavitev" - -#: ../src/libs/modulegroups.c:3815 -msgid "rename the preset" -msgstr "preimenuj prednastavitev" - -#: ../src/libs/modulegroups.c:3817 -msgid "create a new empty preset" -msgstr "ustvari novo prazno nastavitev" - -#: ../src/libs/modulegroups.c:3825 -msgid "show search line" -msgstr "prikaži vrstico iskanja" - -#: ../src/libs/modulegroups.c:3828 -msgid "show quick access panel" -msgstr "prikaži ploščo hitrih dostopov" - -#: ../src/libs/modulegroups.c:3831 -msgid "show all history modules in active group" -msgstr "prikaži vse module iz zgodovine, ki so v aktivni skupini" - -#: ../src/libs/modulegroups.c:3843 -msgid "auto-apply this preset" -msgstr "samodejno uveljavi to prednastavitev" - -#: ../src/libs/modulegroups.c:3858 -msgid "module groups" -msgstr "skupine modulov" - -#: ../src/libs/modulegroups.c:3875 -msgid "" -"this is a built-in read-only preset. duplicate it if you want to make changes" -msgstr "" -"to je vgrajena prednastavitev samo za branje. podvojite jo, če jo želite " -"spremeniti" - -#: ../src/libs/navigation.c:74 -msgid "navigation" -msgstr "navigacija" - -#: ../src/libs/navigation.c:111 ../src/libs/navigation.c:191 -msgctxt "navigationbox" -msgid "fill" -msgstr "polni" - -#: ../src/libs/navigation.c:114 ../src/libs/navigation.c:189 -msgid "small" -msgstr "majhno" - -#: ../src/libs/navigation.c:151 -msgid "" -"navigation\n" -"click or drag to position zoomed area in center view" -msgstr "" -"navigacija\n" -"kliknite ali potegnite, da postavite povečano področje v osrednji pogled" - -#: ../src/libs/navigation.c:173 -msgid "hide navigation thumbnail" -msgstr "skrij navigacijsko sličico" - -#: ../src/libs/navigation.c:187 -msgid "image zoom level" -msgstr "raven cilja slike" - -#: ../src/libs/navigation.c:192 -msgid "50%" -msgstr "50%" - -#: ../src/libs/navigation.c:193 -msgid "100%" -msgstr "100%" - -#: ../src/libs/navigation.c:194 -msgid "200%" -msgstr "200%" - -#: ../src/libs/navigation.c:195 -msgid "400%" -msgstr "400%" - -#: ../src/libs/navigation.c:196 -msgid "800%" -msgstr "800%" - -#: ../src/libs/navigation.c:197 -msgid "1600%" -msgstr "1600%" - -#: ../src/libs/print_settings.c:45 -msgid "print settings" -msgstr "nastavitve tiskanja" - -#. FIXME: ellipsize title/printer as the export completed message is ellipsized -#: ../src/libs/print_settings.c:357 ../src/libs/print_settings.c:754 -#, c-format -msgid "processing `%s' for `%s'" -msgstr "obdelovanje `%s' za `%s'" - -#: ../src/libs/print_settings.c:387 -#, c-format -msgid "cannot open printer profile `%s'" -msgstr "ne morem odpreti profila tiskalnika '%s'" - -#: ../src/libs/print_settings.c:398 -#, c-format -msgid "error getting output profile for image %d" -msgstr "napaka pri pridobivanju izhodnega profila za sliko %d" - -#: ../src/libs/print_settings.c:410 -#, c-format -msgid "cannot apply printer profile `%s'" -msgstr "ne morem uporabiti tiskalnikovega profila '%s'" - -#: ../src/libs/print_settings.c:574 -msgid "failed to create temporary PDF for printing" -msgstr "ni uspela tvorba začasne datoteke PDF za tisk" - -#: ../src/libs/print_settings.c:620 -msgid "maximum image per page reached" -msgstr "dosežena največja slika na stran" - -#: ../src/libs/print_settings.c:708 -msgid "cannot print until a picture is selected" -msgstr "ne morem tiskati dokler ni izbrane slike" - -#: ../src/libs/print_settings.c:713 -msgid "cannot print until a printer is selected" -msgstr "ne morem tiskati dokler ni določenega tiskalnika" - -#: ../src/libs/print_settings.c:718 -msgid "cannot print until a paper is selected" -msgstr "ne morem tiskati dokler ni določenega papirja" - -#. in this case no need to release from cache what we couldn't get -#: ../src/libs/print_settings.c:746 -#, c-format -msgid "cannot get image %d for printing" -msgstr "ne morem dobiti slike %d za tiskanje" - -#: ../src/libs/print_settings.c:918 -#, c-format -msgid "%3.2f (dpi:%d)" -msgstr "%3.2f (dpi:%d)" - -#: ../src/libs/print_settings.c:2396 -msgctxt "section" -msgid "printer" -msgstr "tiskalnik" - -#: ../src/libs/print_settings.c:2409 ../src/libs/print_settings.c:2418 -#: ../src/libs/print_settings.c:2473 -msgid "printer" -msgstr "tiskalnik" - -#: ../src/libs/print_settings.c:2409 -msgid "media" -msgstr "medij" - -#: ../src/libs/print_settings.c:2430 -msgid "color management in printer driver" -msgstr "upravljanje barv v gonilniku tiskalnika" - -#: ../src/libs/print_settings.c:2463 -msgid "printer ICC profiles" -msgstr "tiskalnikovi ICC profili" - -#: ../src/libs/print_settings.c:2484 -msgid "black point compensation" -msgstr "kompenzacija točke črnine" - -#: ../src/libs/print_settings.c:2497 -msgid "activate black point compensation when applying the printer profile" -msgstr "aktiviraj kompenzacijo točke črnine, ko uveljavljaš tiskalnikov profil" - -#. //////////////////////// PAGE SETTINGS -#: ../src/libs/print_settings.c:2504 -msgctxt "section" -msgid "page" -msgstr "stran" - -#: ../src/libs/print_settings.c:2526 -msgid "measurement units" -msgstr "enote meritev" - -#: ../src/libs/print_settings.c:2534 -msgid "image width/height" -msgstr "slika širina/višina" - -#: ../src/libs/print_settings.c:2539 -msgid " x " -msgstr " x " - -#: ../src/libs/print_settings.c:2547 -msgid "scale factor" -msgstr "faktor lestvičenja" - -#: ../src/libs/print_settings.c:2553 -msgid "" -"image scale factor from native printer DPI:\n" -" < 1 means that it is downscaled (best quality)\n" -" > 1 means that the image is upscaled\n" -" a too large value may result in poor print quality" -msgstr "" -"faktor lestvičenja slike iz priključenega tiskalnika v DPI:\n" -" < 1 pomeni pomanjšavo (najboljša kakovost)\n" -" > 1 pomeni, da je slika povečana\n" -"prevelika vrednost lahko pomeni slabo kakovost tiska" - -#. d->b_top = gtk_spin_button_new_with_range(0, 10000, 1); -#: ../src/libs/print_settings.c:2567 -msgid "top margin" -msgstr "gornji rob" - -#. d->b_left = gtk_spin_button_new_with_range(0, 10000, 1); -#: ../src/libs/print_settings.c:2571 -msgid "left margin" -msgstr "levi rob" - -#: ../src/libs/print_settings.c:2574 -msgid "lock" -msgstr "zaklenjeno" - -#: ../src/libs/print_settings.c:2576 -msgid "change all margins uniformly" -msgstr "spremeni enakomerno vse robove" - -#. d->b_right = gtk_spin_button_new_with_range(0, 10000, 1); -#: ../src/libs/print_settings.c:2580 -msgid "right margin" -msgstr "desni rob" - -#. d->b_bottom = gtk_spin_button_new_with_range(0, 10000, 1); -#: ../src/libs/print_settings.c:2584 -msgid "bottom margin" -msgstr "spodnji rob" - -#: ../src/libs/print_settings.c:2617 -msgid "display grid" -msgstr "prikaži mrežo" - -#: ../src/libs/print_settings.c:2628 -msgid "snap to grid" -msgstr "poravnaj na mrežo" - -#: ../src/libs/print_settings.c:2641 -msgid "borderless mode required" -msgstr "zahtevan način brez roba" - -#: ../src/libs/print_settings.c:2644 -msgid "" -"indicates that the borderless mode should be activated\n" -"in the printer driver because the selected margins are\n" -"below the printer hardware margins" -msgstr "" -"označuje, da bi moral biti aktiviran brezrobni način\n" -"v gonilniku za tiskalnik, ker so izbrani robovi\n" -"manjši od strojno določenih robov tiskalnika" - -#. pack image dimension hbox here -#: ../src/libs/print_settings.c:2651 -msgctxt "section" -msgid "image layout" -msgstr "postavitev slike" - -#: ../src/libs/print_settings.c:2692 -msgid "new image area" -msgstr "novo območje slike" - -#: ../src/libs/print_settings.c:2694 -msgid "" -"add a new image area on the page\n" -"click and drag on the page to place the area\n" -"drag and drop image from film strip on it" -msgstr "" -"dodajte novo področje slike na strani\n" -"kliknite in povlecite na stran, da postavite področje\n" -"povlecite in spustite sliko s filmskega traku nanj" - -#: ../src/libs/print_settings.c:2698 -msgid "delete image area" -msgstr "zbriši območje slike" - -#: ../src/libs/print_settings.c:2700 -msgid "delete the currently selected image area" -msgstr "zbriši trenutno izbrano področje slike" - -#: ../src/libs/print_settings.c:2703 -msgid "clear layout" -msgstr "očisti postavitev" - -#: ../src/libs/print_settings.c:2705 -msgid "remove all image areas from the page" -msgstr "odstrani vsa področja slik s strani" - -#. d->b_x = gtk_spin_button_new_with_range(0, 1000, 1); -#: ../src/libs/print_settings.c:2722 -msgid "image area x origin (in current unit)" -msgstr "izhodišče x področja slike (v trenutni enoti)" - -#. d->b_y = gtk_spin_button_new_with_range(0, 1000, 1); -#: ../src/libs/print_settings.c:2726 -msgid "image area y origin (in current unit)" -msgstr "izhodišče y področja slike (v trenutni enoti)" - -#. d->b_width = gtk_spin_button_new_with_range(0, 1000, 1); -#: ../src/libs/print_settings.c:2737 -msgid "image area width (in current unit)" -msgstr "širina površine slike (v trenutnih enotah)" - -#. d->b_height = gtk_spin_button_new_with_range(0, 1000, 1); -#: ../src/libs/print_settings.c:2741 -msgid "image area height (in current unit)" -msgstr "višina površine slike (v trenutnih enotah)" - -#. //////////////////////// PRINT SETTINGS -#: ../src/libs/print_settings.c:2767 -msgctxt "section" -msgid "print settings" -msgstr "nastavitve tiskanja" - -#: ../src/libs/print_settings.c:2855 -msgid "temporary style to use while printing" -msgstr "začasni slog v rabi za čas tiskanja" - -#: ../src/libs/print_settings.c:2887 -msgid "print with current settings" -msgstr "tiskaj s trenutnimi nastavitvami" - -#: ../src/libs/select.c:136 -msgid "select all images in current collection" -msgstr "izberi vse slike v trenutni zbirki" - -#: ../src/libs/select.c:140 -msgid "clear selection" -msgstr "zbriši izbiro" - -#: ../src/libs/select.c:144 -msgid "" -"select unselected images\n" -"in current collection" -msgstr "" -"izberi še neizbrane slike\n" -"v trenutni zbirki" - -#: ../src/libs/select.c:148 -msgid "" -"select all images which are in the same\n" -"film roll as the selected images" -msgstr "" -"izberi vse slike, ki so v istem\n" -"zvitku filma kot že izbrane slike" - -#: ../src/libs/select.c:152 -msgid "" -"select untouched images in\n" -"current collection" -msgstr "" -"izberi nedotaknjene slike v\n" -"trenutni zbirki" - -#: ../src/libs/session.c:47 -msgid "session" -msgstr "seja" - -#: ../src/libs/session.c:98 -msgid "jobcode" -msgstr "številka posla" - -#: ../src/libs/session.c:106 -msgid "create" -msgstr "ustvari" - -#: ../src/libs/snapshots.c:92 -msgid "snapshots" -msgstr "posnetki" - -#: ../src/libs/snapshots.c:141 -msgctxt "snapshot sign" -msgid "S" -msgstr "S" - -#: ../src/libs/snapshots.c:574 -#, c-format -msgid "↗ %s '%s'" -msgstr "↗ %s '%s'" - -#: ../src/libs/snapshots.c:574 -msgid "this snapshot was taken from" -msgstr "ta posnetek zaslona je bil narejen iz" - -#: ../src/libs/snapshots.c:663 -msgid "take snapshot" -msgstr "napravi posnetek" - -#: ../src/libs/snapshots.c:665 -msgid "" -"take snapshot to compare with another image or the same image at another " -"stage of development" -msgstr "" -"napravi posnetek za primerjavo z drugo verzijo slike v drugi fazi razvijanja" - -#: ../src/libs/snapshots.c:734 -msgid "toggle last snapshot" -msgstr "preklopi zadnji posnetek" - -#: ../src/libs/styles.c:326 -msgid "remove style?" -msgid_plural "remove styles?" -msgstr[0] "brišem slog?" -msgstr[1] "brišem sloga?" -msgstr[2] "brišem sloge?" -msgstr[3] "brišem sloge?" - -#: ../src/libs/styles.c:327 -#, c-format -msgid "do you really want to remove %d style?" -msgid_plural "do you really want to remove %d styles?" -msgstr[0] "ali zares želite brisati slog %d?" -msgstr[1] "ali zares želite brisati sloga %d?" -msgstr[2] "ali zares želite brisati sloge '%d'?" -msgstr[3] "ali zares želite brisati sloge '%d'?" - -#: ../src/libs/styles.c:444 ../src/libs/styles.c:627 -#, c-format -msgid "" -"style `%s' already exists.\n" -"do you want to overwrite existing style?\n" -msgstr "" -"slog `%s' že obstaja.\n" -"ali želite prepisati obstoječi slog?\n" - -#: ../src/libs/styles.c:446 ../src/libs/styles.c:629 -msgid "apply this option to all existing styles" -msgstr "uveljavi to možnost za vse obstoječe sloge" - -#: ../src/libs/styles.c:509 -#, c-format -msgid "style %s was successfully exported" -msgstr "slog %s je bil uspešno izvožen" - -#: ../src/libs/styles.c:526 -msgid "select style" -msgstr "izberi slog" - -#: ../src/libs/styles.c:536 -msgid "darktable style files" -msgstr "datoteke slogov programa darktable" - -#: ../src/libs/styles.c:815 -msgid "" -"available styles,\n" -"double-click to apply" -msgstr "" -"slogi na voljo.\n" -"dvoklik za uporabo" - -#: ../src/libs/styles.c:824 ../src/libs/styles.c:825 -msgid "filter style names" -msgstr "filter imen slogov" - -#: ../src/libs/styles.c:837 -msgid "create duplicate" -msgstr "ustvari duplikat" - -#: ../src/libs/styles.c:844 -msgid "creates a duplicate of the image before applying style" -msgstr "ustvari duplikat slike pred uporabo sloga" - -#: ../src/libs/styles.c:862 -msgid "create..." -msgstr "ustvari..." - -#: ../src/libs/styles.c:864 -msgid "create styles from history stack of selected images" -msgstr "ustvari sloge iz sklada zgodovine izbranih slik" - -#: ../src/libs/styles.c:869 ../src/libs/tagging.c:2252 -msgid "edit..." -msgstr "uredi..." - -#: ../src/libs/styles.c:871 -msgid "edit the selected styles in list above" -msgstr "uredi izbrane sloge v seznamu zgoraj" - -#: ../src/libs/styles.c:878 -msgid "removes the selected styles in list above" -msgstr "briši izbrane sloge v seznamu zgoraj" - -#: ../src/libs/styles.c:885 -msgid "import styles from a style files" -msgstr "uvozi sloge iz datotek slogov" - -#: ../src/libs/styles.c:892 -msgid "export the selected styles into a style files" -msgstr "izvozi izbrane sloge v datoteke sloga" - -#: ../src/libs/styles.c:899 -msgid "apply the selected styles in list above to selected images" -msgstr "uveljavi izbrane sloge v seznamu zgoraj na izbranih slikah" - -#: ../src/libs/tagging.c:105 -msgid "tagging" -msgstr "oznake" - -#: ../src/libs/tagging.c:1255 -msgid "attach tag to all" -msgstr "prilepi oznako vsem" - -#: ../src/libs/tagging.c:1263 ../src/libs/tagging.c:2225 -msgid "detach tag" -msgstr "odstrani oznako" - -#: ../src/libs/tagging.c:1483 -msgid "delete tag?" -msgstr "zbrišem oznako?" - -#: ../src/libs/tagging.c:1490 ../src/libs/tagging.c:1578 -#: ../src/libs/tagging.c:1789 ../src/libs/tagging.c:2063 -#, c-format -msgid "selected: %s" -msgstr "izbrano: %s" - -#: ../src/libs/tagging.c:1497 -#, c-format -msgid "" -"do you really want to delete the tag `%s'?\n" -"%d image is assigned this tag!" -msgid_plural "" -"do you really want to delete the tag `%s'?\n" -"%d images are assigned this tag!" -msgstr[0] "" -"ali res želite zbrisati oznako '%s'?\n" -"%d sliki je dodeljena ta oznaka!" -msgstr[1] "" -"ali res želite zbrisati oznako '%s'?\n" -"%d slikam je dodeljena ta oznaka!" -msgstr[2] "" -"ali res želite zbrisati oznako '%s'?\n" -"%d slikam je dodeljena ta oznaka!" -msgstr[3] "" -"ali res želite zbrisati značko '%s'?\n" -"%d slikam je dodeljena ta značka!" - -#: ../src/libs/tagging.c:1531 -#, c-format -msgid "tag %s removed" -msgstr "oznaka %s odstranjena" - -#: ../src/libs/tagging.c:1571 -msgid "delete node?" -msgstr "zbrišem vozel?" - -#: ../src/libs/tagging.c:1585 -#, c-format -msgid "<u>%d</u> tag will be deleted" -msgid_plural "<u>%d</u> tags will be deleted" -msgstr[0] "<u>%d</u> oznaka bo zbrisana" -msgstr[1] "<u>%d</u> oznaki bosta zbrisani" -msgstr[2] "<u>%d</u> oznake bodo zbrisane" -msgstr[3] "<u>%d</u> oznak bo zbrisanih" - -#: ../src/libs/tagging.c:1590 ../src/libs/tagging.c:1801 -#: ../src/libs/tagging.c:2075 -#, c-format -msgid "<u>%d</u> image will be updated" -msgid_plural "<u>%d</u> images will be updated" -msgstr[0] "slika <u>%d</u> bo osvežena" -msgstr[1] "sliki <u>%d</u> bosta osveženi" -msgstr[2] "slike <u>%d</u> bodo osvežene" -msgstr[3] "slike <u>%d</u> bodo osvežene" - -#: ../src/libs/tagging.c:1616 -#, c-format -msgid "%d tags removed" -msgstr "%d oznak odstranjenih" - -#: ../src/libs/tagging.c:1652 -msgid "create tag" -msgstr "ustvari oznako" - -#: ../src/libs/tagging.c:1662 ../src/libs/tagging.c:1809 -msgid "name: " -msgstr "ime: " - -#: ../src/libs/tagging.c:1674 -#, c-format -msgid "add to: \"%s\" " -msgstr "dodaj k: \"%s\" " - -#: ../src/libs/tagging.c:1680 ../src/libs/tagging.c:1824 -msgid "category" -msgstr "kategorija" - -#: ../src/libs/tagging.c:1689 ../src/libs/tagging.c:1833 -msgid "synonyms: " -msgstr "sinonimi: " - -#: ../src/libs/tagging.c:1706 ../src/libs/tagging.c:1855 -#: ../src/libs/tagging.c:2097 -msgid "empty tag is not allowed, aborting" -msgstr "prazna oznaka ni dovoljena, prekinjam" - -#: ../src/libs/tagging.c:1717 -msgid "tag name already exists. aborting." -msgstr "to ime oznake že obstaja. prekinjam." - -#: ../src/libs/tagging.c:1796 ../src/libs/tagging.c:2070 -#, c-format -msgid "<u>%d</u> tag will be updated" -msgid_plural "<u>%d</u> tags will be updated" -msgstr[0] "oznaka <u>%d</u> bo osvežena" -msgstr[1] "oznaki <u>%d</u> bosta osveženi" -msgstr[2] "oznake <u>%d</u> bodo osvežene" -msgstr[3] "oznake <u>%d</u> bodo osvežene" - -#: ../src/libs/tagging.c:1857 -msgid "" -"'|' character is not allowed for renaming tag.\n" -"to modify the hierarchy use rename path instead. Aborting." -msgstr "" -"znak '|' ni dovoljen za preimenovanje oznake.\n" -"za spremembo hierarhije uporabite preimenovanje poti. Prekinjam." - -#: ../src/libs/tagging.c:1896 ../src/libs/tagging.c:2004 -#, c-format -msgid "at least one new tag name (%s) already exists, aborting" -msgstr "vsaj ena oznaka (%s) že obstaja, prekinjam" - -#: ../src/libs/tagging.c:2056 -msgid "change path" -msgstr "spremeni pot" - -#: ../src/libs/tagging.c:2099 -msgid "'|' misplaced, empty tag is not allowed, aborting" -msgstr "'|' na napačnem mestu, prazna oznaka ni dovoljena, prekinjam" - -#: ../src/libs/tagging.c:2195 -#, c-format -msgid "tag %s created" -msgstr "oznaka %s ustvarjena" - -#: ../src/libs/tagging.c:2221 -msgid "attach tag" -msgstr "pripni oznako" - -#: ../src/libs/tagging.c:2234 -msgid "create tag..." -msgstr "ustvari oznako..." - -#: ../src/libs/tagging.c:2240 -msgid "delete tag" -msgstr "briši oznako" - -#: ../src/libs/tagging.c:2247 -msgid "delete node" -msgstr "briši vozel" - -#: ../src/libs/tagging.c:2260 -msgid "change path..." -msgstr "spremeni pot..." - -#: ../src/libs/tagging.c:2270 -msgid "set as a tag" -msgstr "nastavi oznako" - -#: ../src/libs/tagging.c:2281 -msgid "copy to entry" -msgstr "kopiraj v vnos" - -#: ../src/libs/tagging.c:2298 -msgid "go to tag collection" -msgstr "pojdi na zbirko oznak" - -#: ../src/libs/tagging.c:2304 -msgid "go back to work" -msgstr "pojdi nazaj na delo" - -#: ../src/libs/tagging.c:2461 -#, c-format -msgid "%s" -msgstr "%s" - -#: ../src/libs/tagging.c:2462 -msgid "(private)" -msgstr "(zasebno)" - -#: ../src/libs/tagging.c:2488 -msgid "select a keyword file" -msgstr "izberite datoteko ključnih besed" - -#: ../src/libs/tagging.c:2501 -msgid "error importing tags" -msgstr "napaka pri uvozu oznak" - -#: ../src/libs/tagging.c:2503 -#, c-format -msgid "%zd tags imported" -msgstr "%zd oznak uvoženo" - -#: ../src/libs/tagging.c:2524 -msgid "select file to export to" -msgstr "izberite datoteko za izvoz" - -#: ../src/libs/tagging.c:2538 -msgid "error exporting tags" -msgstr "napaka pri izvozu oznak" - -#: ../src/libs/tagging.c:2540 -#, c-format -msgid "%zd tags exported" -msgstr "%zd oznak izvoženo" - -#: ../src/libs/tagging.c:2964 -msgid "drop to root" -msgstr "spusti v koren" - -#: ../src/libs/tagging.c:3100 -msgid "" -"attached tags\n" -"press Delete or double-click to detach\n" -"right-click for other actions on attached tag,\n" -"Tab to give the focus to entry" -msgstr "" -"pripete oznake\n" -"pritisnite Delete ali dvoklik za odpenjanje\n" -"desni klik za druge aktivnosti na pripeti oznaki,\n" -"Tab da podaste osredotočenje za vnos" - -#: ../src/libs/tagging.c:3111 -msgid "attach" -msgstr "priloži" - -#: ../src/libs/tagging.c:3112 -msgid "attach tag to all selected images" -msgstr "priloži oznako k vsem izbranimi slikam" - -#: ../src/libs/tagging.c:3115 -msgid "detach" -msgstr "razdvoji" - -#: ../src/libs/tagging.c:3116 -msgid "detach tag from all selected images" -msgstr "oddvoji oznako od vseh izbranih slik" - -#: ../src/libs/tagging.c:3129 -msgid "toggle list with / without hierarchy" -msgstr "preklopi za seznam z / brez hierarhije" - -#: ../src/libs/tagging.c:3129 -msgid "hide" -msgstr "skrij" - -#: ../src/libs/tagging.c:3131 -msgid "toggle sort by name or by count" -msgstr "preklopi za sort po imenu ali po številu" - -#: ../src/libs/tagging.c:3131 -msgid "sort" -msgstr "razvrsti" - -#: ../src/libs/tagging.c:3133 -msgid "toggle show or not darktable tags" -msgstr "preklopi za prikaz ali ne darktablovih oznak" - -#: ../src/libs/tagging.c:3133 -msgid "dttags" -msgstr "dttags" - -#: ../src/libs/tagging.c:3149 -msgid "" -"enter tag name\n" -"press Enter to create a new tag and attach it on selected images\n" -"press Tab or Down key to go to the first matching tag\n" -"press shift+Tab to select the first attached user tag" -msgstr "" -"vnesite ime oznake\n" -"Pritisnite Enter, da ustvarite novo oznako in jo pritrdite na izbrane slike\n" -"Pritisnite Tab ali Dol, da skočite na prvo ujemajočo se oznako\n" -"Pritisnite dvigalka+Tab, da izberete prvo priloženo uporabniško oznako" - -#: ../src/libs/tagging.c:3160 ../src/libs/tagging.c:3166 -msgid "clear entry" -msgstr "zbriši vnose" - -#: ../src/libs/tagging.c:3213 -msgid "" -"tag dictionary,\n" -"Enter or double-click to attach selected tag on selected images\n" -"shift+Enter idem plus gives the focus to entry\n" -"shift+click to fully expand the selected tag\n" -"right-click for other actions on selected tag\n" -"shift+Tab to give the focus to entry" -msgstr "" -"slovar oznak,\n" -"pritisnite Enter ali dvokliknite, da na izbrane slike pritrdite izbrano " -"oznako,\n" -"isto za dvigalka+enter plus daje fokus na vnos,\n" -"dvigalka+klik, da v celoti razširite izbrano oznako,\n" -"desni klik za druga dejanja na izbrani oznaki,\n" -"dvigalka+Tab, da se osredotočite na vstop" - -#: ../src/libs/tagging.c:3248 -msgid "" -"create a new tag with the\n" -"name you entered" -msgstr "" -"ustvarite novo oznako z\n" -"vnesenim imenom" - -#: ../src/libs/tagging.c:3251 -msgid "import tags from a Lightroom keyword file" -msgstr "uvoz oznak iz datoteke ključnih besed Lightroom" - -#: ../src/libs/tagging.c:3254 -msgid "export all tags to a Lightroom keyword file" -msgstr "izvozi vse oznake v datoteko ključnih besed Lightroom" - -#: ../src/libs/tagging.c:3258 -msgid "toggle list / tree view" -msgstr "preklopi seznam / drevesni pogled" - -#: ../src/libs/tagging.c:3258 -msgid "tree" -msgstr "drevo" - -#: ../src/libs/tagging.c:3260 -msgid "toggle list with / without suggestion" -msgstr "preklopi seznam z / brez namigov" - -#: ../src/libs/tagging.c:3260 -msgid "suggestion" -msgstr "predlog" - -#: ../src/libs/tagging.c:3282 -msgid "redo last tag" -msgstr "ponovno uredi zadnjo oznako" - -#: ../src/libs/tagging.c:3365 -msgid "" -"tag shortcut is not active with tag tree view. please switch to list view" -msgstr "" -"bližnjica na oznako ni aktivna v drevesnem prikazu oznak. prosim preklopite " -"na prikaz seznama" - -#: ../src/libs/tagging.c:3469 -msgid "tagging settings" -msgstr "nastavitve oznak" - -#: ../src/libs/tools/battery_indicator.c:38 -#: ../src/libs/tools/battery_indicator.c:70 -msgid "battery indicator" -msgstr "indikator baterije" - -#: ../src/libs/tools/colorlabels.c:42 -msgid "colorlabels" -msgstr "barvne oznake" - -#: ../src/libs/tools/colorlabels.c:87 -msgid "toggle color label of selected images" -msgstr "preklopi barvno oznako izbranih slik" - -#: ../src/libs/tools/darktable.c:284 -#, c-format -msgid "copyright (c) the authors 2009-%s" -msgstr "copyright (c) avtorji 2009-%s" - -#: ../src/libs/tools/darktable.c:288 -msgid "organize and develop images from digital cameras" -msgstr "organizira in razvija slike digitalnih kamer" - -#: ../src/libs/tools/darktable.c:300 -msgid "all those of you that made previous releases possible" -msgstr "vsi, ki so omogočili prejšnje izdaje" - -#: ../src/libs/tools/darktable.c:305 -msgid "and..." -msgstr "in..." - -#: ../src/libs/tools/darktable.c:307 -msgid "translator-credits" -msgstr "Matjaž Jeran" - -#: ../src/libs/tools/filmstrip.c:45 -msgid "filmstrip" -msgstr "kos filma" - -#: ../src/libs/tools/filter.c:42 -msgid "filter" -msgstr "filter" - -#: ../src/libs/tools/filter.c:104 -msgid "filter preferences" -msgstr "filtriraj preference" - -#: ../src/libs/tools/gamepad.c:37 -msgid "gamepad" -msgstr "igralna plošča" - -#: ../src/libs/tools/gamepad.c:60 -msgid "button a" -msgstr "gumb a" - -#: ../src/libs/tools/gamepad.c:60 -msgid "button b" -msgstr "gumb b" - -#: ../src/libs/tools/gamepad.c:60 -msgid "button x" -msgstr "gumb x" - -#: ../src/libs/tools/gamepad.c:60 -msgid "button y" -msgstr "gumb y" - -#: ../src/libs/tools/gamepad.c:61 -msgid "button back" -msgstr "gumb nazaj" - -#: ../src/libs/tools/gamepad.c:61 -msgid "button guide" -msgstr "navodilo za gumbe" - -#: ../src/libs/tools/gamepad.c:61 -msgid "button start" -msgstr "gumb začetek" - -#: ../src/libs/tools/gamepad.c:62 -msgid "left stick" -msgstr "leva palica" - -#: ../src/libs/tools/gamepad.c:62 -msgid "right stick" -msgstr "desna palica" - -#: ../src/libs/tools/gamepad.c:62 -msgid "left shoulder" -msgstr "leva rama" - -#: ../src/libs/tools/gamepad.c:62 -msgid "right shoulder" -msgstr "desna rama" - -#: ../src/libs/tools/gamepad.c:63 -msgid "dpad up" -msgstr "dpad gor" - -#: ../src/libs/tools/gamepad.c:63 -msgid "dpad down" -msgstr "dpad dol" - -#: ../src/libs/tools/gamepad.c:63 -msgid "dpad left" -msgstr "ploščica levo" - -#: ../src/libs/tools/gamepad.c:63 -msgid "dpad right" -msgstr "ploščica desno" - -#: ../src/libs/tools/gamepad.c:64 -msgid "button misc1" -msgstr "gumb razno1" - -#: ../src/libs/tools/gamepad.c:64 -msgid "paddle1" -msgstr "vesla1" - -#: ../src/libs/tools/gamepad.c:64 -msgid "paddle2" -msgstr "vesla2" - -#: ../src/libs/tools/gamepad.c:64 -msgid "paddle3" -msgstr "vesla3" - -#: ../src/libs/tools/gamepad.c:64 -msgid "paddle4" -msgstr "vesla4" - -#: ../src/libs/tools/gamepad.c:64 -msgid "touchpad" -msgstr "drsna ploščica" - -#: ../src/libs/tools/gamepad.c:65 -msgid "left trigger" -msgstr "levi prožilnik" - -#: ../src/libs/tools/gamepad.c:65 -msgid "right trigger" -msgstr "desni prožilnik" - -#: ../src/libs/tools/gamepad.c:71 -msgid "invalid gamepad button" -msgstr "neveljavni gumb za igre" - -#: ../src/libs/tools/gamepad.c:89 -msgid "left x" -msgstr "levo x" - -#: ../src/libs/tools/gamepad.c:89 -msgid "left y" -msgstr "levo y" - -#: ../src/libs/tools/gamepad.c:89 -msgid "right x" -msgstr "desno x" - -#: ../src/libs/tools/gamepad.c:89 -msgid "right y" -msgstr "desno y" - -#: ../src/libs/tools/gamepad.c:90 -msgid "left diagonal" -msgstr "leva diagonala" - -#: ../src/libs/tools/gamepad.c:90 -msgid "left skew" -msgstr "leva asimetrija" - -#: ../src/libs/tools/gamepad.c:90 -msgid "right diagonal" -msgstr "desna diagonala" - -#: ../src/libs/tools/gamepad.c:90 -msgid "right skew" -msgstr "desna asimetrija" - -#. diagonals -#: ../src/libs/tools/gamepad.c:96 -msgid "invalid gamepad axis" -msgstr "neveljavna os gamepad" - -#. we write the label with the size category -#: ../src/libs/tools/global_toolbox.c:215 -msgid "thumbnails overlays for size" -msgstr "plast predoglednih sličic za velikost" - -#: ../src/libs/tools/global_toolbox.c:249 -#: ../src/libs/tools/global_toolbox.c:312 -msgid "" -"duration before the block overlay is hidden after each mouse movement on the " -"image\n" -"set -1 to never hide the overlay" -msgstr "" -"trajanje, preden se prekrivni blok skrije po vsakem premiku miške na sliki\n" -"nastavite -1, da nikoli ne skrijete prekritja" - -#: ../src/libs/tools/global_toolbox.c:254 -#: ../src/libs/tools/global_toolbox.c:317 -msgid "timeout only available for block overlay" -msgstr "časovna omejitev je na voljo samo za prekrivanje blokov" - -#: ../src/libs/tools/global_toolbox.c:277 -#: ../src/libs/tools/global_toolbox.c:463 -msgid "culling overlays" -msgstr "odstranjevanje slojev" - -#: ../src/libs/tools/global_toolbox.c:279 -msgid "preview overlays" -msgstr "prikaži plasti" - -#: ../src/libs/tools/global_toolbox.c:353 -msgid "overlays not available here..." -msgstr "prekrivne plasti niso na voljo..." - -#: ../src/libs/tools/global_toolbox.c:397 -#: ../src/libs/tools/global_toolbox.c:533 -msgid "expand grouped images" -msgstr "razširi grupirane slike" - -#: ../src/libs/tools/global_toolbox.c:399 -#: ../src/libs/tools/global_toolbox.c:535 -msgid "collapse grouped images" -msgstr "zoži grupirane slike" - -#: ../src/libs/tools/global_toolbox.c:406 -msgid "thumbnail overlays options" -msgstr "možnosti plasti predoglednih sličic" - -#: ../src/libs/tools/global_toolbox.c:407 -msgid "click to change the type of overlays shown on thumbnails" -msgstr "" -"kliknite, če želite spremeniti vrsto prekrivnih plasti, prikazanih na " -"sličicah" - -#: ../src/libs/tools/global_toolbox.c:430 -#: ../src/libs/tools/global_toolbox.c:459 -msgid "overlay mode for size" -msgstr "način prekrivanja za velikost" - -#: ../src/libs/tools/global_toolbox.c:434 -msgid "thumbnail overlays" -msgstr "plasti predoglednih sličic" - -#: ../src/libs/tools/global_toolbox.c:436 -#: ../src/libs/tools/global_toolbox.c:465 -msgid "no overlays" -msgstr "ni plasti" - -#: ../src/libs/tools/global_toolbox.c:437 -msgid "overlays on mouse hover" -msgstr "prekrivna plast ob miški nad" - -#: ../src/libs/tools/global_toolbox.c:438 -msgid "extended overlays on mouse hover" -msgstr "razširjena prekrivna plast pod miško" - -#: ../src/libs/tools/global_toolbox.c:439 -#: ../src/libs/tools/global_toolbox.c:466 -msgid "permanent overlays" -msgstr "stalna prekrivna plast" - -#: ../src/libs/tools/global_toolbox.c:440 -#: ../src/libs/tools/global_toolbox.c:467 -msgid "permanent extended overlays" -msgstr "stalne razširjene plasti" - -#: ../src/libs/tools/global_toolbox.c:441 -msgid "permanent overlays extended on mouse hover" -msgstr "stalne prekrivne plasti razširjene ob miški" - -#: ../src/libs/tools/global_toolbox.c:443 -#: ../src/libs/tools/global_toolbox.c:469 -msgid "overlays block on mouse hover" -msgstr "blok prekrivne plasti ob miški nad" - -#: ../src/libs/tools/global_toolbox.c:444 -#: ../src/libs/tools/global_toolbox.c:470 -msgid "during (s)" -msgstr "med (s)" - -#: ../src/libs/tools/global_toolbox.c:449 -#: ../src/libs/tools/global_toolbox.c:475 -msgid "show tooltip" -msgstr "prikaži orodni namig" - -#: ../src/libs/tools/global_toolbox.c:487 -msgid "help" -msgstr "pomoč" - -#: ../src/libs/tools/global_toolbox.c:489 -msgid "enable this, then click on a control element to see its online help" -msgstr "" -"omogočite to, potem kliknite na kontrolni element za pridobivanje pomoči o " -"njem" - -#: ../src/libs/tools/global_toolbox.c:496 -msgid "" -"define shortcuts\n" -"ctrl+click to switch off overwrite confirmations\n" -"\n" -"hover over a widget and press keys with mouse click and scroll or move " -"combinations\n" -"repeat same combination again to delete mapping\n" -"click on a widget, module or screen area to open the dialog for further " -"configuration" -msgstr "" -"določite bližnjice\n" -"krmilka+klik, da izklopite potrditve prepisovanja\n" -"\n" -"prehod kazalke nad gradnikom, pritisk tipke s klikom na miško in pomik ali " -"premik kombinacije\n" -"ponovite isto kombinacijo znova, da izbrišete preslikavo\n" -"kliknite na gradnik, modul ali področje zaslona, da odprete pogovorno okno " -"za nadaljnje konfiguracijo" - -#: ../src/libs/tools/global_toolbox.c:512 -msgid "show global preferences" -msgstr "prikaži globalne preference" - -#: ../src/libs/tools/hinter.c:42 -msgid "hinter" -msgstr "zadaj" - -#: ../src/libs/tools/hinter.c:98 -#, c-format -msgid "%s in current collection" -msgstr "%s v trenutni zbirki" - -#: ../src/libs/tools/image_infos.c:40 -msgid "image infos" -msgstr "informacije o sliki" - -#: ../src/libs/tools/lighttable.c:116 -msgid "click to exit from full preview layout." -msgstr "klikni za izhod iz postavitve polnega predogleda." - -#: ../src/libs/tools/lighttable.c:118 -msgid "click to enter full preview layout." -msgstr "klikni za vstop v postavitev polnega predogleda." - -#: ../src/libs/tools/lighttable.c:121 -msgid "click to enter culling layout in fixed mode." -msgstr "kliknite za vstop v postavitev fiksnega načina izločanja." - -#: ../src/libs/tools/lighttable.c:123 ../src/libs/tools/lighttable.c:128 -msgid "click to exit culling layout." -msgstr "kliknite za izstop iz postavitve izločanja." - -#: ../src/libs/tools/lighttable.c:126 -msgid "click to enter culling layout in dynamic mode." -msgstr "kliknite za vstop v postavitev dinamičnega načina izločanja." - -#: ../src/libs/tools/lighttable.c:368 -msgid "toggle filemanager layout" -msgstr "preklopi v postavitev upravljalnika datotek" - -#: ../src/libs/tools/lighttable.c:371 -msgid "click to enter filemanager layout." -msgstr "klikni za vstop v postavitev upravljalnika datotek." - -#: ../src/libs/tools/lighttable.c:377 -msgid "toggle zoomable lighttable layout" -msgstr "preklopi na postavitev povečevalne osvetljene podlage" - -#: ../src/libs/tools/lighttable.c:380 -msgid "click to enter zoomable lighttable layout." -msgstr "kliknite za vstop v postavitev povečevalne osvetljene podlage." - -#: ../src/libs/tools/lighttable.c:386 -msgid "toggle culling mode" -msgstr "preklopi na način izločanja" - -#: ../src/libs/tools/lighttable.c:394 -msgid "toggle culling dynamic mode" -msgstr "preklopi na dinamični način izločanja" - -#: ../src/libs/tools/lighttable.c:441 -msgid "toggle culling zoom mode" -msgstr "preklopi na povečevalni način izločanja" - -#: ../src/libs/tools/lighttable.c:443 -msgid "exit current layout" -msgstr "izhod iz trenutne postavitve" - -#: ../src/libs/tools/midi.c:41 -msgid "midi" -msgstr "midi" - -#: ../src/libs/tools/midi.c:221 -msgid "using absolute encoding; reinitialise to switch to relative" -msgstr "" -"uporaba absolutnega kodiranja; ponovna začetna vrednost za preklop na " -"relativno" - -#: ../src/libs/tools/midi.c:225 -#, c-format -msgid "%d more identical (down) moves before switching to relative encoding" -msgstr "%d več enakih pomikov (navzdol), pred preklopom na relativno kodiranje" - -#: ../src/libs/tools/midi.c:228 -#, c-format -msgid "switching encoding to relative (down = %d)" -msgstr "preklop kodiranja na relativno (dol = %d)" - -#: ../src/libs/tools/midi.c:558 -#, c-format -msgid "%s opened as midi%d" -msgstr "%s odprto kot midi%d" - -#: ../src/libs/tools/module_toolbox.c:46 -msgid "module toolbox" -msgstr "orodjarna modulov" - -#. connect callbacks -#: ../src/libs/tools/ratings.c:97 -msgid "set star rating for selected images" -msgstr "nastavi ocene z zvezdicami za izbrane slike" - -#: ../src/libs/tools/timeline.c:102 -msgid "timeline" -msgstr "časovni trak" - -#: ../src/libs/tools/timeline.c:1433 -msgid "start selection" -msgstr "začetek izbora" - -#: ../src/libs/tools/timeline.c:1434 -msgid "stop selection" -msgstr "konec izbora" - -#: ../src/libs/tools/view_toolbox.c:46 -msgid "view toolbox" -msgstr "poglej orodjarno" - -#: ../src/libs/tools/viewswitcher.c:60 -msgid "viewswitcher" -msgstr "preklopnik pogledov" - -#: ../src/lua/preferences.c:656 ../src/lua/preferences.c:671 -#: ../src/lua/preferences.c:683 ../src/lua/preferences.c:695 -#: ../src/lua/preferences.c:711 ../src/lua/preferences.c:775 -#, c-format -msgid "double-click to reset to `%s'" -msgstr "dvokliknite da bi ponovno nastavili na '%s'" - -#: ../src/lua/preferences.c:681 -msgid "select file" -msgstr "izberi datoteko" - -#: ../src/lua/preferences.c:734 -#, c-format -msgid "double-click to reset to `%d'" -msgstr "dvokliknite za ponovno nastavitev na '%d'" - -#: ../src/lua/preferences.c:761 -#, c-format -msgid "double-click to reset to `%f'" -msgstr "dvokliknite da bi ponovno nastavili na `%f'" - -#: ../src/lua/preferences.c:837 -msgid "Lua options" -msgstr "možnosti Lua" - -#: ../src/views/darkroom.c:607 -#, c-format -msgid "" -"darktable could not load `%s', switching to lighttable now.\n" -"\n" -"please check that the camera model that produced the image is supported in " -"darktable\n" -"(list of supported cameras is at https://www.darktable.org/resources/camera-" -"support/).\n" -"if you are sure that the camera model is supported, please consider opening " -"an issue\n" -"at https://github.com/darktable-org/darktable" -msgstr "" -"darktable ni mogel naložiti `%s', preklapljam na osvetljeno podlago.\n" -"\n" -"preverite ali je model kamere, ki je napravil to sliko, podprt v programu " -"darktable\n" -"(seznam podprtih modelov je na https://www.darktable.org/resources/camera-" -"support/).\n" -"če ste prepričani, da je model podprt, razmislite o prijavi opažanja na\n" -"https://github.com/darktable-org/darktable" - -#: ../src/views/darkroom.c:625 -#, c-format -msgctxt "darkroom" -msgid "loading `%s' ..." -msgstr "nalaganje '%s' ..." - -#: ../src/views/darkroom.c:749 ../src/views/darkroom.c:2496 -msgid "gamut check" -msgstr "kontrola barvnega razpona" - -#: ../src/views/darkroom.c:749 -msgid "soft proof" -msgstr "preizkusni odtis" - -#. fail :( -#: ../src/views/darkroom.c:787 ../src/views/print.c:356 -msgid "no image to open!" -msgstr "ni slike za odpiranje!" - -#: ../src/views/darkroom.c:1331 -msgid "no user-defined presets for favorite modules were found" -msgstr "ne najdem uporabnikovih nastavitev za priljubljene module" - -#: ../src/views/darkroom.c:1476 -msgid "no styles have been created yet" -msgstr "nobenega sloga še ni ustvarjenega" - -#: ../src/views/darkroom.c:2331 ../src/views/darkroom.c:2332 -msgid "quick access to presets" -msgstr "hitrih dostop do prednastavitev" - -#: ../src/views/darkroom.c:2340 -msgid "quick access to styles" -msgstr "hitri dostop do slogov" - -#: ../src/views/darkroom.c:2342 -msgid "quick access for applying any of your styles" -msgstr "hitri dostop za uporabo kateregakoli vašega sloga" - -#: ../src/views/darkroom.c:2348 -msgid "second window" -msgstr "drugo okno" - -#: ../src/views/darkroom.c:2351 -msgid "display a second darkroom image window" -msgstr "prikaži drugo okno programa darkroom" - -#: ../src/views/darkroom.c:2356 -msgid "color assessment" -msgstr "ocena barv" - -#: ../src/views/darkroom.c:2359 -msgid "toggle ISO 12646 color assessment conditions" -msgstr "preklopi v pogoje za oceno barve ISO 12646" - -#: ../src/views/darkroom.c:2372 -msgid "" -"toggle raw over exposed indication\n" -"right click for options" -msgstr "" -"preklopi indikator preosvetljenosti\n" -"desni klik za dodatne možnosti" - -#: ../src/views/darkroom.c:2388 -msgid "select how to mark the clipped pixels" -msgstr "izberite kako označiti izrezane piksle" - -#: ../src/views/darkroom.c:2390 -msgid "mark with CFA color" -msgstr "označi z barvo CFA" - -#: ../src/views/darkroom.c:2390 -msgid "mark with solid color" -msgstr "označi s trdno barvo" - -#: ../src/views/darkroom.c:2390 -msgid "false color" -msgstr "napačna barva" - -#: ../src/views/darkroom.c:2393 ../src/views/darkroom.c:2444 -msgid "color scheme" -msgstr "barvna shema" - -#: ../src/views/darkroom.c:2394 -msgid "" -"select the solid color to indicate over exposure.\n" -"will only be used if mode = mark with solid color" -msgstr "" -"izberite trdno barvo za oznako preosvetljenosti.\n" -"uporabili jo bomo samo v načinu 'označi s trdno barvo'" - -#: ../src/views/darkroom.c:2397 -msgctxt "solidcolor" -msgid "red" -msgstr "rdeča" - -#: ../src/views/darkroom.c:2398 -msgctxt "solidcolor" -msgid "green" -msgstr "zelena" - -#: ../src/views/darkroom.c:2399 -msgctxt "solidcolor" -msgid "blue" -msgstr "modra" - -#: ../src/views/darkroom.c:2400 -msgctxt "solidcolor" -msgid "black" -msgstr "črna" - -#: ../src/views/darkroom.c:2408 -msgid "" -"threshold of what shall be considered overexposed\n" -"1.0 - white level\n" -"0.0 - black level" -msgstr "" -"prag, kaj se bo štelo za preosvetljeno\n" -"1.0 - nivo beline\n" -"0.0 - nivo črnine" - -#: ../src/views/darkroom.c:2422 -msgid "" -"toggle clipping indication\n" -"right click for options" -msgstr "" -"preklop indikatorja obrezovanja\n" -"desni klik za možnosti" - -#: ../src/views/darkroom.c:2437 -msgid "clipping preview mode" -msgstr "predogled obrezovanja" - -#: ../src/views/darkroom.c:2438 -msgid "" -"select the metric you want to preview\n" -"full gamut is the combination of all other modes" -msgstr "" -"izberite metriko, za katero želite predogled\n" -"celotni barvni razpon je kombinacija vseh drugih načinov" - -#: ../src/views/darkroom.c:2440 -msgid "full gamut" -msgstr "celotni barvni razpon" - -#: ../src/views/darkroom.c:2440 -msgid "any RGB channel" -msgstr "katerikoli kanal RGB" - -#: ../src/views/darkroom.c:2440 -msgid "luminance only" -msgstr "samo svetlost" - -#: ../src/views/darkroom.c:2440 -msgid "saturation only" -msgstr "samo nasičenost" - -#: ../src/views/darkroom.c:2445 -msgid "select colors to indicate clipping" -msgstr "izberite barve za oznako clipinga" - -#: ../src/views/darkroom.c:2447 -msgid "red & blue" -msgstr "rdeča & modra" - -#: ../src/views/darkroom.c:2447 -msgid "purple & green" -msgstr "škrlatna & zelena" - -#: ../src/views/darkroom.c:2454 -msgid "lower threshold" -msgstr "spodnji prag" - -#: ../src/views/darkroom.c:2455 -msgid "" -"clipping threshold for the black point,\n" -"in EV, relatively to white (0 EV).\n" -"8 bits sRGB clips blacks at -12.69 EV,\n" -"8 bits Adobe RGB clips blacks at -19.79 EV,\n" -"16 bits sRGB clips blacks at -20.69 EV,\n" -"typical fine-art mat prints produce black at -5.30 EV,\n" -"typical color glossy prints produce black at -8.00 EV,\n" -"typical B&W glossy prints produce black at -9.00 EV." -msgstr "" -"prag obrezovanja za črno točko,\n" -"v EV, glede na belo (0 EV).\n" -"8-bitni sRGB posnetki črni pri -12,69 EV,\n" -"8-bitni posnetki Adobe RGB so črni pri -19,79 EV,\n" -"16-bitni sRGB posnetki so črni pri -20,69 EV,\n" -"tipični umetniški odtisi na mat podlogah ustvarijo črno pri -5,30 EV,\n" -"tipični barvni sijajni odtisi dajo črno pri -8,00 EV,\n" -"tipični črno-beli sijajni odtisi dajo črno pri -9,00 EV." - -#: ../src/views/darkroom.c:2471 -msgid "upper threshold" -msgstr "gornji prag" - -#: ../src/views/darkroom.c:2473 -#, no-c-format -msgid "" -"clipping threshold for the white point.\n" -"100% is peak medium luminance." -msgstr "" -"prag obreza za belo točko.\n" -"100% je največja srednja svetlost." - -#: ../src/views/darkroom.c:2485 -msgid "softproof" -msgstr "preizkusni odtis" - -#: ../src/views/darkroom.c:2488 -msgid "" -"toggle softproofing\n" -"right click for profile options" -msgstr "" -"preklop preizkusnega odtisa\n" -"desni klik za možnosti profila" - -#: ../src/views/darkroom.c:2499 -msgid "" -"toggle gamut checking\n" -"right click for profile options" -msgstr "" -"preklapljaj preverjanje barvnega razpona\n" -"desni klik za nastavitve profila" - -#: ../src/views/darkroom.c:2524 ../src/views/darkroom.c:2526 -#: ../src/views/darkroom.c:2540 ../src/views/darkroom.c:2541 -#: ../src/views/darkroom.c:2542 ../src/views/darkroom.c:2543 -#: ../src/views/lighttable.c:1182 ../src/views/lighttable.c:1184 -msgid "profiles" -msgstr "profili" - -#: ../src/views/darkroom.c:2526 ../src/views/lighttable.c:1184 -msgid "preview intent" -msgstr "predogled namena" - -#: ../src/views/darkroom.c:2540 ../src/views/lighttable.c:1188 -msgid "display profile" -msgstr "profil zaslona" - -#: ../src/views/darkroom.c:2541 ../src/views/lighttable.c:1191 -msgid "preview display profile" -msgstr "profil prikaza predogleda" - -#: ../src/views/darkroom.c:2543 -msgid "histogram profile" -msgstr "profil histograma" - -#: ../src/views/darkroom.c:2605 ../src/views/lighttable.c:1225 -msgid "display ICC profiles" -msgstr "zaslonski ICC profili" - -#: ../src/views/darkroom.c:2609 ../src/views/lighttable.c:1229 -msgid "preview display ICC profiles" -msgstr "predogled zaslonskih ICC profilov" - -#: ../src/views/darkroom.c:2613 -msgid "softproof ICC profiles" -msgstr "preizkusni odtis ICC profilov" - -#: ../src/views/darkroom.c:2617 -msgid "histogram and color picker ICC profiles" -msgstr "histogram in nabiralnik barve ICC profilov" - -#: ../src/views/darkroom.c:2651 -msgid "" -"toggle guide lines\n" -"right click for guides options" -msgstr "" -"preklapljaj vodila\n" -"desni klik za nastavitev vodil" - -#. Fullscreen preview key -#: ../src/views/darkroom.c:2668 -msgid "full preview" -msgstr "polni pogled" - -#. add an option to allow skip mouse events while other overlays are consuming mouse actions -#: ../src/views/darkroom.c:2672 -msgid "force pan/zoom/rotate with mouse" -msgstr "prisili pomik/povečevanje/zasuk z miško" - -#. Zoom shortcuts -#: ../src/views/darkroom.c:2684 -msgid "zoom close-up" -msgstr "približaj zelo blizu" - -#. zoom in/out -#. zoom in/out/min/max -#: ../src/views/darkroom.c:2687 ../src/views/lighttable.c:1283 -msgid "zoom in" -msgstr "povečaj" - -#: ../src/views/darkroom.c:2688 ../src/views/lighttable.c:1285 -msgid "zoom out" -msgstr "oddalji" - -#. Shortcut to skip images -#: ../src/views/darkroom.c:2691 -msgid "image forward" -msgstr "slika naprej" - -#: ../src/views/darkroom.c:2692 -msgid "image back" -msgstr "slika nazaj" - -#. cycle overlay colors -#: ../src/views/darkroom.c:2695 -msgid "cycle overlay colors" -msgstr "kolobari barve prekrivne plasti" - -#. toggle visibility of drawn masks for current gui module -#: ../src/views/darkroom.c:2698 -msgid "show drawn masks" -msgstr "prikaži narisane maske" - -#. brush size +/- -#: ../src/views/darkroom.c:2701 -msgid "increase brush size" -msgstr "povečaj velikost čopiča" - -#: ../src/views/darkroom.c:2702 -msgid "decrease brush size" -msgstr "zmanjšaj velikost čopiča" - -#. brush hardness +/- -#: ../src/views/darkroom.c:2705 -msgid "increase brush hardness" -msgstr "povečaj trdoto čopiča" - -#: ../src/views/darkroom.c:2706 -msgid "decrease brush hardness" -msgstr "zmanjšaj trdoto čopiča" - -#. brush opacity +/- -#: ../src/views/darkroom.c:2709 -msgid "increase brush opacity" -msgstr "povečaj neprosojnost čopiča" - -#: ../src/views/darkroom.c:2710 -msgid "decrease brush opacity" -msgstr "pomanjšaj neprosojnost čopiča" - -#. undo/redo -#: ../src/views/darkroom.c:2713 ../src/views/lighttable.c:1275 -#: ../src/views/map.c:2115 -msgid "undo" -msgstr "prekliči zadnjo operacijo" - -#: ../src/views/darkroom.c:2714 ../src/views/lighttable.c:1276 -#: ../src/views/map.c:2116 -msgid "redo" -msgstr "ponovno uporabi zadnjo operacijo" - -#. change the precision for adjusting sliders with keyboard shortcuts -#: ../src/views/darkroom.c:2717 -msgid "change keyboard shortcut slider precision" -msgstr "spremeni natančnost drsnika za bližnjico na tipkovnici" - -#: ../src/views/darkroom.c:3989 -msgid "keyboard shortcut slider precision: fine" -msgstr "natančnost drsnika za bližnjico na tipkovnici: fino" - -#: ../src/views/darkroom.c:3991 -msgid "keyboard shortcut slider precision: normal" -msgstr "natančnost drsnika za bližnjico na tipkovnici: normalno" - -#: ../src/views/darkroom.c:3993 -msgid "keyboard shortcut slider precision: coarse" -msgstr "natančnost drsnika za bližnjico na tipkovnici: grobo" - -#: ../src/views/darkroom.c:4009 -msgid "switch to lighttable" -msgstr "preklop na osvetljeno podlago" - -#: ../src/views/darkroom.c:4010 ../src/views/lighttable.c:882 -msgid "zoom in the image" -msgstr "zoom na sliko" - -#: ../src/views/darkroom.c:4011 -msgid "unbounded zoom in the image" -msgstr "neomejeni zoom na sliko" - -#: ../src/views/darkroom.c:4012 -msgid "zoom to 100% 200% and back" -msgstr "zoom na 100% 200% in nazaj" - -#: ../src/views/darkroom.c:4013 ../src/views/lighttable.c:885 -msgid "pan a zoomed image" -msgstr "pomakni povečano sliko" - -#: ../src/views/darkroom.c:4015 ../src/views/lighttable.c:927 -msgid "[modules] expand module without closing others" -msgstr "[modules] razširi modul brez zapiranja drugih" - -#: ../src/views/darkroom.c:4016 ../src/views/lighttable.c:928 -msgid "[modules] expand module and close others" -msgstr "[modules] razširi modul in zapri druge" - -#: ../src/views/darkroom.c:4018 -msgid "[modules] rename module" -msgstr "[modules] preimenuj modul" - -#: ../src/views/darkroom.c:4020 -msgid "[modules] change module position in pipe" -msgstr "[modules] spremeni mesto v vrstnem redu modula zaporedju obdelav" - -#: ../src/views/knight.c:334 -msgid "good knight" -msgstr "dober vitez" - -#. Show infos key -#: ../src/views/lighttable.c:656 ../src/views/lighttable.c:1266 -msgid "show infos" -msgstr "prikaži informacije" - -#: ../src/views/lighttable.c:759 -msgid "middle" -msgstr "srednja" - -#: ../src/views/lighttable.c:877 -msgid "open image in darkroom" -msgstr "odpri sliko v temnici" - -#: ../src/views/lighttable.c:881 -msgid "switch to next/previous image" -msgstr "preklopi na naslednjo/prejšnjo sliko" - -#: ../src/views/lighttable.c:884 ../src/views/lighttable.c:915 -#, no-c-format -msgid "zoom to 100% and back" -msgstr "zoom na 100% in nazaj" - -#: ../src/views/lighttable.c:889 ../src/views/lighttable.c:908 -msgid "scroll the collection" -msgstr "premik po zbirki" - -#: ../src/views/lighttable.c:891 -msgid "change number of images per row" -msgstr "spremeni število slik v vrsti" - -#: ../src/views/lighttable.c:894 -msgid "select an image" -msgstr "izberi sliko" - -#: ../src/views/lighttable.c:896 -msgid "select range from last image" -msgstr "izberi obseg iz zadnje slike" - -#: ../src/views/lighttable.c:898 -msgid "add image to or remove it from a selection" -msgstr "dodaj sliko ali odstrani jo iz izbire" - -#: ../src/views/lighttable.c:902 -msgid "change image order" -msgstr "spremeni zaporedje slik" - -#: ../src/views/lighttable.c:909 -msgid "zoom all the images" -msgstr "zoomiraj vse slike" - -#: ../src/views/lighttable.c:910 -msgid "pan inside all the images" -msgstr "pomikaj se znotraj vseh slik" - -#: ../src/views/lighttable.c:912 -msgid "zoom current image" -msgstr "zoomiraj trenutno sliko" - -#: ../src/views/lighttable.c:913 -msgid "pan inside current image" -msgstr "premikaj se znotraj trenutne slike" - -#: ../src/views/lighttable.c:918 -#, no-c-format -msgid "zoom current image to 100% and back" -msgstr "zoom na 100% in nazaj" - -#: ../src/views/lighttable.c:922 -msgid "zoom the main view" -msgstr "zoomiraj glavni pogled" - -#: ../src/views/lighttable.c:923 -msgid "pan inside the main view" -msgstr "premija se znotraj glavnega pogleda" - -#: ../src/views/lighttable.c:1160 -msgid "set display profile" -msgstr "nastavi profil zaslona" - -#: ../src/views/lighttable.c:1246 -msgid "whole" -msgstr "celo" - -#: ../src/views/lighttable.c:1262 -msgid "leave" -msgstr "zapusti" - -#: ../src/views/lighttable.c:1269 -msgid "align images to grid" -msgstr "poravnaj slike na mrežo" - -#: ../src/views/lighttable.c:1270 -msgid "reset first image offset" -msgstr "nastavi zamik prve slike" - -#: ../src/views/lighttable.c:1271 -msgid "select toggle image" -msgstr "izberi preklop slik" - -#: ../src/views/lighttable.c:1272 -msgid "select single image" -msgstr "izberi posamično sliko" - -#. zoom for full culling & preview -#: ../src/views/lighttable.c:1279 -msgid "preview zoom 100%" -msgstr "predogledni zoom 100%" - -#: ../src/views/lighttable.c:1280 -msgid "preview zoom fit" -msgstr "predogledni zoom prilagojen oknu" - -#: ../src/views/lighttable.c:1284 -msgid "zoom max" -msgstr "maksimalno povečaj" - -#: ../src/views/lighttable.c:1286 -msgid "zoom min" -msgstr "maksimalno oddalji" - -#: ../src/views/map.c:2809 -msgid "[on image] open in darkroom" -msgstr "[on image] odpri v temnici" - -#: ../src/views/map.c:2810 -msgid "[on map] zoom map" -msgstr "[on image] zoomiraj mapo" - -#: ../src/views/map.c:2811 -msgid "move image location" -msgstr "preseli lokacijo slike" - -#: ../src/views/print.c:55 -msgctxt "view" -msgid "print" -msgstr "tiskaj" - -#: ../src/views/slideshow.c:353 -msgid "end of images" -msgstr "konec slik" - -#: ../src/views/slideshow.c:374 -msgid "end of images. press any key to return to lighttable mode" -msgstr "" -"konec slik. pritisnite katerokoli tipko za povratek v način osvetljene " -"podlage" - -#: ../src/views/slideshow.c:504 -msgid "waiting to start slideshow" -msgstr "čakam na zagon projekcije" - -#: ../src/views/slideshow.c:640 ../src/views/slideshow.c:661 -#: ../src/views/slideshow.c:669 -msgid "slideshow paused" -msgstr "projekcija zaustavljena" - -#: ../src/views/slideshow.c:648 ../src/views/slideshow.c:655 -#, c-format -msgid "slideshow delay set to %d second" -msgid_plural "slideshow delay set to %d seconds" -msgstr[0] "zamik prikaza projekcije na %d sekunde" -msgstr[1] "zamik prikaza projekcije na %d sekundi" -msgstr[2] "zamik prikaza projekcije na %d sekund" -msgstr[3] "zamik prikaza projekcije na %d sekund" - -#: ../src/views/slideshow.c:684 -msgid "start and stop" -msgstr "začni in zaustavi" - -#: ../src/views/slideshow.c:685 -msgid "exit slideshow" -msgstr "izhod iz projekcije" - -#: ../src/views/slideshow.c:688 -msgid "slow down" -msgstr "upočasni" - -#: ../src/views/slideshow.c:691 -msgid "speed up" -msgstr "pospeši" - -#: ../src/views/slideshow.c:695 -msgid "step forward" -msgstr "korak naprej" - -#: ../src/views/slideshow.c:696 -msgid "step back" -msgstr "korak nazaj" - -#: ../src/views/slideshow.c:702 -msgid "go to next image" -msgstr "pojdi na naslednjo sliko" - -#: ../src/views/slideshow.c:703 -msgid "go to previous image" -msgstr "pojdi na prejšnjo sliko" - -#: ../src/views/tethering.c:157 -#, c-format -msgid "new session initiated '%s'" -msgstr "nova seja je zagnala '%s'" - -#: ../src/views/tethering.c:448 -msgid "no camera with tethering support available for use..." -msgstr "ne najdem nobene kamere, ki bi dovoljevala upravljanje..." - -#: ../src/views/view.c:1193 -msgid "left click" -msgstr "levi klik" - -#: ../src/views/view.c:1196 -msgid "right click" -msgstr "desni klik" - -#: ../src/views/view.c:1199 -msgid "middle click" -msgstr "srednji klik" - -#: ../src/views/view.c:1205 -msgid "left double-click" -msgstr "levi dvoklik" - -#: ../src/views/view.c:1208 -msgid "right double-click" -msgstr "desni dvoklik" - -#: ../src/views/view.c:1211 -msgid "drag and drop" -msgstr "povleci in spusti" - -#: ../src/views/view.c:1214 -msgid "left click+drag" -msgstr "levi klik+povlek" - -#: ../src/views/view.c:1217 -msgid "right click+drag" -msgstr "desni klik+povlek" - -#: ../src/views/view.c:1237 -msgid "darktable - accels window" -msgstr "darktable - okno pospeševanja" - -#: ../src/views/view.c:1285 -msgid "switch to a classic window which will stay open after key release" -msgstr "preklopi na klasično okno, ki bo ostalo odprto po sprostitvi tipke" - -#. we add the mouse actions too -#: ../src/views/view.c:1344 -msgid "mouse actions" -msgstr "aktivnosti miške" - -#~ msgid "_yes, physically delete" -#~ msgstr "_da, fizično zbriši" - -#~ msgid "_no, only remove from library" -#~ msgstr "_ne, samo izloči iz knjižnice" - -#, c-format -#~ msgid "" -#~ "darktable loads external ICC profiles from\n" -#~ "%s\n" -#~ "and\n" -#~ "%s" -#~ msgstr "" -#~ "darktable naloži eksterne ICC profile iz\n" -#~ "%s\n" -#~ "in\n" -#~ "%s" - -#, c-format -#~ msgid "ICC profiles in %s or %s" -#~ msgstr "profili ICC v %s ali %s" - -#, c-format -#~ msgid "output ICC profiles in %s or %s" -#~ msgstr "izhodni ICC profili v %s ali %s" - -#, c-format -#~ msgid "display ICC profiles in %s or %s" -#~ msgstr "prikaži profile ICC v %s ali %s" - -#, c-format -#~ msgid "preview display ICC profiles in %s or %s" -#~ msgstr "predogled prikaza profilov ICC v %s ali %s" - -#, c-format -#~ msgid "softproof ICC profiles in %s or %s" -#~ msgstr "profili preizkusnih odtisov ICC v %s ali %s" - -#~ msgctxt "preferences" -#~ msgid "always bilinear (fast)" -#~ msgstr "vedno bilinearna (hitra)" - -#~ msgctxt "preferences" -#~ msgid "full (possibly slow)" -#~ msgstr "polna (možno počasno)" - -#~ msgctxt "preferences" -#~ msgid "rgb parade" -#~ msgstr "rgb parada" - -#~ msgctxt "preferences" -#~ msgid "modern" -#~ msgstr "moderno" - -#~ msgctxt "preferences" -#~ msgid "legacy" -#~ msgstr "zapuščina" - -#~ msgid "pen pressure control for brush masks" -#~ msgstr "nastavitev pritiska peresa za maske čopičev" - -#~ msgid "smoothing of brush strokes" -#~ msgstr "glajenje potez s čopičem" - -#~ msgid "demosaicing for zoomed out darkroom mode" -#~ msgstr "odstranjevanje mozaičnosti izven načina temnice" - -#~ msgid "" -#~ "demosaicer when not viewing 1:1 in darkroom mode: 'bilinear' is fast but " -#~ "slightly blurry. 'default' uses the default demosaicer for the used " -#~ "sensor (RCD or Markesteijn). 'full' will use exactly the settings as for " -#~ "full-size export." -#~ msgstr "" -#~ "demozaičnik, kadar v ni načinu temnice 1: 1: bilinearno je hitro, vendar " -#~ "ne tako ostro. 'privzeto' uporablja privzeti demozaičnik za senzor (RCD " -#~ "ali Markensteijn). 'polno' bo uporabil natančne nastavitve za izvoz v " -#~ "polni velikosti." - -#~ msgid "auto-apply chromatic adaptation defaults" -#~ msgstr "samodejno uporabi privzete nastavitve kromatične prilagoditve" - -#~ msgid "" -#~ "legacy performs a basic chromatic adaptation using only the white balance " -#~ "module\n" -#~ "modern uses a combination of white balance module and color calibration " -#~ "module, with improved color science for chromatic adaptation" -#~ msgstr "" -#~ "zapuščina izvede osnovno kromatsko prilagoditev z uporabo samo modula " -#~ "ravnovesja beline\n" -#~ "moderno uporablja kombinacijo modula za uravnavanje beline in modula " -#~ "umerjanja barv z izboljšano barvno znanostjo za kromatsko prilagoditev" - -#~ msgid "128 px" -#~ msgstr "128 px" - -#~ msgid "geometry" -#~ msgstr "geometrija" - -#~ msgid "averaged eigf" -#~ msgstr "povprečeni eigf" - -#~ msgid "eigf" -#~ msgstr "eigf" - -#~ msgid "sRGB (e.g. JPG)" -#~ msgstr "sRGB (npr. JPG)" - -#, c-format -#~ msgid "darktable » %s" -#~ msgstr "darktable » %s" - -#~ msgid "<h1>Sorry,</h1><p>something went wrong. Please try again.</p>" -#~ msgstr "" -#~ "<h1>Oprostite,</h1><p>nekaj je šlo narobe. Prosim, poskusite znova.</p>" - -#~ msgid "" -#~ "<h1>Thank you,</h1><p>everything should have worked, you can <b>close</b> " -#~ "your browser now and <b>go back</b> to darktable.</p>" -#~ msgstr "" -#~ "<h1>Hvala,</h1><p>vse bi moralo biti opravljeno. Lahko <b>zaprete</b> vaš " -#~ "brskalnik in <b>se vrnete</b> na darktable.</p>" - -#, c-format -#~ msgid "unsupported working profile %s has been replaced by Rec2020 RGB!\n" -#~ msgstr "nepodprt delovni profil %s je bil zamenjan za Rec2020 RGB!\n" - -#~ msgid "a4" -#~ msgstr "a4" - -#~ msgid "a3" -#~ msgstr "a3" - -#, c-format -#~ msgid "could not send %s to trash%s%s" -#~ msgstr "ne morem prenesti %s do koša%s%s" - -#~ msgid "physically delete all files" -#~ msgstr "fizično zbriši vse datoteke" - -#~ msgid "skip to next file" -#~ msgstr "preskoči na naslednjo datoteko" - -#~ msgid "stop process" -#~ msgstr "zaustavi postopek" - -#, c-format -#~ msgid "skipped blending in module '%s': roi's do not match" -#~ msgstr "preskočeno mešanje v modulu '%s', ker se vrednosti 'roi' ne ujemata" - -#~ msgid "could not allocate buffer for blending" -#~ msgstr "ni bilo mogoče dobiti dovolj medpomnilnika za mešanje" - -#~ msgctxt "blendmode" -#~ msgid "Lab L-channel" -#~ msgstr "Kanal Lab L" - -#~ msgid "lighten modes" -#~ msgstr "osvetljevalni načini" - -#~ msgid "darken modes" -#~ msgstr "zatemnjevalni načini" - -#~ msgid "deprecated modes" -#~ msgstr "zastareli načini" - -#~ msgid "apply mask in normal or inverted mode" -#~ msgstr "uveljavi masko v normalnem ali preobrnjenem načinu" - -#~ msgid "" -#~ "press Del to delete selected shortcut\n" -#~ "double-click to add new shortcut\n" -#~ "start typing for incremental search" -#~ msgstr "" -#~ "pritisnite Del, da zbrišete izbrano bližnjico\n" -#~ "dvakrat kliknite za dodajanje nove bližnjice\n" -#~ "začnite tipkati za postopno iskanje" - -#~ msgid "input devices reinitialised" -#~ msgstr "vhodne naprave ponovno nastavljene" - -#~ msgid "maximum ISO value" -#~ msgstr "največja občutljivost ISO" - -#~ msgid "rgb colors" -#~ msgstr "rgb barve" - -#~ msgid "embed icc profiles" -#~ msgstr "vgradi icc profil" - -#~ msgid "3:2" -#~ msgstr "3:2" - -#~ msgid "set the custom aspect ratio" -#~ msgstr "nastavi razmerje proporcev po meri" - -#~ msgid "raw CA correction supports only standard RGB Bayer filter arrays" -#~ msgstr "" -#~ "surovi CA popravki podpirajo samo standardne RGB Bayerjeve filtrske " -#~ "vektorje" - -#~ msgid "bypassed while zooming in" -#~ msgstr "obideno med povečevanjem" - -#~ msgid "" -#~ "while calculating the correction parameters the internal maths failed so " -#~ "module is bypassed.\n" -#~ "you can get more info by running darktable via the console." -#~ msgstr "" -#~ "pri izračunu korekcijskih parametrov notranja matematika ni uspela modul " -#~ "ni bil uporabljen.\n" -#~ "več informacij lahko dobite z zagonom dt prek konzole." - -#~ msgid "" -#~ "internals maths found too few data points so restricted the order of the " -#~ "fit to linear.\n" -#~ "you might view bad correction results." -#~ msgstr "" -#~ "notranja matematika je našla premalo podatkovnih točk, zato je bil vrstni " -#~ "red ustreznosti omejen na linearno.\n" -#~ "morda boste videli slabe rezultate popravkov." - -#~ msgid "" -#~ "to calculate good parameters for raw CA correction we want full sensor " -#~ "data or at least a sensible part of that.\n" -#~ "the image shown in darkroom would look vastly different from developed " -#~ "files so effect is bypassed now." -#~ msgstr "" -#~ "za izračun dobrih parametrov za surovo korekcijo CA želimo popolne " -#~ "podatke senzorjaali vsaj njihov smiselni del.\n" -#~ "slika, prikazana v temnici, bi se precej razlikovala od razvitih " -#~ "datotektako da je učinek zdaj obiden." - -#~ msgid "affect color, brightness and contrast" -#~ msgstr "vpliva na barvo, sijavost in kontrast" - -#~ msgctxt "accel" -#~ msgid "acquire" -#~ msgstr "pridobi" - -#~ msgctxt "accel" -#~ msgid "apply" -#~ msgstr "izvedi" - -#~ msgid "number of clusters to find in image" -#~ msgstr "število grup, ki jih lahko najdete v sliki" - -#~ msgid "acquire" -#~ msgstr "pridobi" - -#~ msgid "analyze this image" -#~ msgstr "analiziraj to sliko" - -#~ msgid "apply previously analyzed image look to this image" -#~ msgstr "uporabi videz prej obdelane slike na to sliko" - -#~ msgid "red black white" -#~ msgstr "rdeča črna bela" - -#~ msgid "black white and skin tones" -#~ msgstr "črna bela in kožni toni" - -#~ msgid "black & white film" -#~ msgstr "črno beli film" - -#~ msgid "commit changes" -#~ msgstr "potrdi spremembe" - -#~ msgid "[dual demosaic_cl] internal problem" -#~ msgstr "[dual demosaic_cl] interni problem" - -#~ msgid "add local contrast" -#~ msgstr "dodaj lokalni kontrast" - -#~ msgid "fast sharpness" -#~ msgstr "hitra ostrina" - -#~ msgid "fast local contrast" -#~ msgstr "hitri lokalni kontrast" - -#~ msgid "[dual demosaic] can't allocate internal buffers" -#~ msgstr "[dual demosaic] ni mogoče zagotoviti internih medpomnilnikov" - -#~ msgctxt "equalizer" -#~ msgid "sharpen" -#~ msgstr "naostri" - -#~ msgid "null" -#~ msgstr "nič" - -#~ msgid "denoise (strong)" -#~ msgstr "odstranjevanje šumov (močno)" - -#~ msgid "autodetect" -#~ msgstr "avtomatsko zaznaj" - -#~ msgid "lensfun" -#~ msgstr "funkcije objektiva" - -#~ msgid "" -#~ "click and drag to add point\n" -#~ "scroll to change size - shift+scroll to change strength - ctrl+scroll to " -#~ "change direction" -#~ msgstr "" -#~ "kliknite in potegnite za dodajanje točke\n" -#~ "pomik za spremembo velikosti - dvigalka+drsanje za spremembo moči - " -#~ "krmilka+drsanje za spremembo smeri" - -#~ msgid "" -#~ "click to add line\n" -#~ "scroll to change size - shift+scroll to change strength - ctrl+scroll to " -#~ "change direction" -#~ msgstr "" -#~ "kliknite za dodajanje črte\n" -#~ "drsanje za spremembo velikosti - dvigalka+drsanje za spremembo moči - " -#~ "krmilka+drsanje za spremembo smeri" - -#~ msgid "" -#~ "click to add curve\n" -#~ "scroll to change size - shift+scroll to change strength - ctrl+scroll to " -#~ "change direction" -#~ msgstr "" -#~ "kliknite za dodajanje krivulje\n" -#~ "drsanje za spremembo velikosti - dvigalka+drsanje za spremembo moči - " -#~ "krmilka+drsanje za spremembo smeri" - -#~ msgid "" -#~ "ctrl+click: add node - right click: remove path\n" -#~ "ctrl+alt+click: toggle line/curve" -#~ msgstr "" -#~ "krmilka-klik: dodaj vozlišče - desni klik: odstrani pot\n" -#~ "krmilka-alt-klik: preklopi črta/krivulja" - -#~ msgid "drag to adjust warp radius" -#~ msgstr "povlecite za prilagoditev radija zvitka" - -#~ msgid "drag to adjust hardness (center)" -#~ msgstr "povlecite za prilagoditev trdote (centra)" - -#~ msgid "drag to adjust hardness (feather)" -#~ msgstr "povlecite za prilagoditev trdosti (peresa)" - -#~ msgid "" -#~ "drag to adjust warp strength\n" -#~ "ctrl+click: linear, grow, and shrink" -#~ msgstr "" -#~ "povleci za prilagoditev moči zvijanja\n" -#~ "krmilka+klik: linearno, razširi in zožaj" - -#~ msgid "[lmmse_demosaic] too small area" -#~ msgstr "[lmmse_demosaic] premajhna površina" - -#~ msgid "crop from top" -#~ msgstr "obreži z vrha" - -#~ msgid "crop from bottom" -#~ msgstr "obreži z dna" - -#~ msgid "[rcd_demosaic] too small area" -#~ msgstr "[rcd_demosaic] premajhna površina" - -#~ msgid "compress shadows/highlights (eigf): strong" -#~ msgstr "stiskanje senc/bleščav (eigf) : močno" - -#~ msgid "compress shadows/highlights (eigf): medium" -#~ msgstr "stiskanje senc/bleščav (eigf) : srednje" - -#~ msgid "compress shadows/highlights (eigf): soft" -#~ msgstr "stiskanje senc/bleščav (eigf): mehko" - -#~ msgid "" -#~ "tone equalizer in/out buffer are ill-aligned, please report the bug to " -#~ "the developers" -#~ msgstr "" -#~ "vhodno/izhodna vmesna pomnilnika izenačevalnika tonov sta slabo " -#~ "usklajena, prosim pošljite poročilo o napaki razvijalcem" - -#~ msgid "size is relative to" -#~ msgstr "velikost je relativna na" - -#~ msgid "grouping filter" -#~ msgstr "filter grupiranja" - -#~ msgid "history filter" -#~ msgstr "filter zgodovine" - -#~ msgid "local_copy filter" -#~ msgstr "filter lokalne kopije" - -#~ msgid "module order filter" -#~ msgstr "filter razvrstitve modulov" - -#~ msgid "" -#~ "drag to change black point,\n" -#~ "double-click resets\n" -#~ "ctrl+scroll to change display height" -#~ msgstr "" -#~ "potegnite za spremembo točke črnine.\n" -#~ "dvojni klik ponovno nastavi\n" -#~ "krmilka+drsanje za spremembo višine prikaza" - -#~ msgid "" -#~ "drag to change exposure,\n" -#~ "double-click resets\n" -#~ "ctrl+scroll to change display height" -#~ msgstr "" -#~ "potegnite za spremembo osvetlitve\n" -#~ "dvojni klik ponovno nastavi\n" -#~ "krmilka+pomik za spremembo višine prikaza" - -#~ msgid "set mode to waveform" -#~ msgstr "nastavi način na valovanje" - -#~ msgid "set mode to rgb parade" -#~ msgstr "nastavi pogled rgb parade" - -#~ msgid "set mode to vectorscope" -#~ msgstr "nastavi način vektroskopa" - -#~ msgid "set mode to histogram" -#~ msgstr "nastavi način histograma" - -#~ msgid "click to hide red channel" -#~ msgstr "klikni, da skrijem rdeči kanal" - -#~ msgid "click to show red channel" -#~ msgstr "klikni, da prikažem rdeči kanal" - -#~ msgid "click to hide green channel" -#~ msgstr "klikni, da skrijem zeleni kanal" - -#~ msgid "click to show green channel" -#~ msgstr "klikni, da prikažem zeleni kanal" - -#~ msgid "click to hide blue channel" -#~ msgstr "klikni, da skrijem modri kanal" - -#~ msgid "click to show blue channel" -#~ msgstr "klikni, da prikažem modri kanal" - -#~ msgid "switch histogram type" -#~ msgstr "preklopi tip histograma" - -#~ msgid "rotate 90 degrees ccw" -#~ msgstr "zasukaj 90 stopinj v nasprotni smeri urnega kazalca" - -#~ msgid "rotate 90 degrees cw" -#~ msgstr "zasukaj 90 stopinj v smeri urnega kazalca" - -#~ msgid "legacy flag. set for all new images" -#~ msgstr "oznaka zapuščine. za vse nove slike" - -#~ msgid "modules: default" -#~ msgstr "moduli: privzeto" - -#~ msgctxt "modulegroup" -#~ msgid "technical" -#~ msgstr "tehnično" - -#~ msgid "fit to screen" -#~ msgstr "prilagodi zaslonu" - -#, c-format -#~ msgid "** %s" -#~ msgstr "** %s" - -#, c-format -#~ msgid "at least one new tagname (%s) already exists, aborting." -#~ msgstr "vsaj ena nova oznaka (%s) že obstaja, prekinjam." - -#~ msgid "toggle sticky preview mode" -#~ msgstr "preklopi na način lepljivega predogleda" - -#~ msgid "toggle sticky preview mode with focus detection" -#~ msgstr "preklopi lepljiv predogled z detekcijo fokusa" - -#~ msgid "zoom fill" -#~ msgstr "dopolni z zumiranjem" - -#~ msgid "zoom fit" -#~ msgstr "prilagodi z zumiranjem" - -#~ msgid "ldr" -#~ msgstr "ldr" - -#~ msgid "hdr" -#~ msgstr "hdr" - -#, c-format -#~ msgid "double click to reset to `%f'" -#~ msgstr "dvoklik obnoví `%f'" - -#~ msgid "add image to selection or remove" -#~ msgstr "dodaj sliko v izbiro ali odstrani" - -#~ msgid "no image selected !" -#~ msgstr "nobene izbrane slike!" - -#~ msgid "" -#~ "restore default shortcuts\n" -#~ " or as at startup\n" -#~ " or when the configuration dialog was opened\n" -#~ msgstr "" -#~ "obnovi privzete bližnjice\n" -#~ " ali kot je bilo ob zagonu\n" -#~ " ali kot je bilo nastavljeno ob začetku dialoga nastavitev\n" - -#~ msgid "no embedded metadata and lensfun disabled" -#~ msgstr "ni vdelanih metapodatkov in onemogočene funkcije lečja" - -#~ msgid "" -#~ "embedded lens correction metadata is not available\n" -#~ "and darktable is compiled without lensfun" -#~ msgstr "" -#~ "vdelane korekcije lečij niso na voljo\n" -#~ "in darktable je sestavljen brez funkcij lečij" - -#~ msgid "actual selection" -#~ msgstr "trenutna izbira" - -#~ msgid "allow to pan & zoom while editing masks" -#~ msgstr "dovoli pomik in zumiranje ob urejanju mask" - -#~ msgctxt "preferences" -#~ msgid "on startup" -#~ msgstr "ob zagonu" - -#~ msgctxt "preferences" -#~ msgid "on both" -#~ msgstr "ob obojem" - -#~ msgctxt "preferences" -#~ msgid "on startup (don't ask)" -#~ msgstr "ob zagonu (ne sprašuj)" - -#~ msgctxt "preferences" -#~ msgid "on close (don't ask)" -#~ msgstr "ob zaprtju (ne sprašuj)" - -#~ msgctxt "preferences" -#~ msgid "on both (don't ask)" -#~ msgstr "ob obojem (ne sprašuj)" - -#~ msgctxt "preferences" -#~ msgid "true" -#~ msgstr "true" - -#~ msgctxt "preferences" -#~ msgid "false" -#~ msgstr "false" - -#~ msgctxt "preferences" -#~ msgid "at most RCD (reasonable)" -#~ msgstr "največ RCD (razumno)" - -#~ msgid "white balance slider colors" -#~ msgstr "barve drsnika za uravnoteženje beline" - -#~ msgid "" -#~ "visual indication of temperature adjustments.\n" -#~ "in 'illuminant color' mode slider colors represent the color of the light " -#~ "source,\n" -#~ "in 'effect emulation' slider colors represent the effect the adjustment " -#~ "would have on the scene" -#~ msgstr "" -#~ "vizualni prikaz prilagoditev temperature.\n" -#~ "v načinu 'barve svetlobe' barve drsnika predstavljajo barvo svetlobnega " -#~ "vira,\n" -#~ "v drsniku 'posnemanje učinka' barve predstavljajo učinek, ki bi ga imela " -#~ "prilagoditev na sceno" - -#~ msgid "color balance slider block layout" -#~ msgstr "blokovna postavitev drsnika barvnega ravnovesja" - -#~ msgid "" -#~ "choose how to organise the slider blocks for lift, gamma and gain:\n" -#~ "list - all sliders are shown in one long list (with headers),\n" -#~ "tabs - use tabs to switch between the blocks of sliders,\n" -#~ "columns - the blocks of sliders are shown next to each other (in narrow " -#~ "columns)" -#~ msgstr "" -#~ "izberite, kako organizirati bloke drsnikov za dvig, gamo in ojačenje:\n" -#~ "seznam - vsi drsniki so prikazani na enem dolgem seznamu (z glavami),\n" -#~ "zavihki - z zavihki preklapljajte med bloki drsnikov,\n" -#~ "stolpci - bloki drsnikov so prikazani drug ob drugem (v ozkih stolpcih)" - -#~ msgid "auto-apply sharpen" -#~ msgstr "avtomatsko uporabi ostrenje" - -#~ msgid "" -#~ "this added sharpen is not recommended on cameras without a low-pass " -#~ "filter. you should disable this option if you use one of those more " -#~ "recent cameras or sharpen your images with other means." -#~ msgstr "" -#~ "to dodajanje ostrenja ni priporočljivo pri kamerah brez filtra nizkih " -#~ "prehodov. priporočamo onemogočanje te možnosti, če uporabljate novejše " -#~ "kamere ali ostrite vaše slike na drugačen način." - -#~ msgid "check for database maintenance" -#~ msgstr "preveri vzdrževanje baze podatkov" - -#~ msgid "" -#~ "this option indicates when to check database fragmentation and perform " -#~ "maintenance" -#~ msgstr "" -#~ "ta možnost označuje, kdaj naj se preveri fragmentacija baze podatkov in " -#~ "izvede vzdrževanje" - -#~ msgid "database fragmentation ratio threshold" -#~ msgstr "prag deleža fragmentacije baze podatkov" - -#~ msgid "" -#~ "fragmentation ratio above which to ask or carry out automatically " -#~ "database maintenance" -#~ msgstr "" -#~ "delež fragmentacije, nad katerim se sprašuje ali kar samodejno izvede " -#~ "vzdrževanje baze podatkov" - -#~ msgid "xmp" -#~ msgstr "xmp" - -#~ msgid "lift luminance" -#~ msgstr "dvig svetlosti" - -#~ msgid "lift chroma" -#~ msgstr "dvig krome" - -#~ msgid "lift hue" -#~ msgstr "dvig odtenka" - -#~ msgid "power luminance" -#~ msgstr "moč svetlosti" - -#~ msgid "power chroma" -#~ msgstr "moč krome" - -#~ msgid "power hue" -#~ msgstr "moč odtenka" - -#~ msgid "gain luminance" -#~ msgstr "povečanje svetlosti" - -#~ msgid "gain chroma" -#~ msgstr "povečanje krome" - -#~ msgid "gain hue" -#~ msgstr "povečanje odtenka" - -#~ msgid "offset luminance" -#~ msgstr "odmik svetlosti" - -#~ msgid "offset chroma" -#~ msgstr "odmik krome" - -#~ msgid "offset hue" -#~ msgstr "odmik odtenka" - -#~ msgid "chroma shadows" -#~ msgstr "kroma senc" - -#~ msgid "chroma highlights" -#~ msgstr "kroma bleščav" - -#~ msgid "chroma global" -#~ msgstr "globalna kroma" - -#~ msgid "chroma mid-tones" -#~ msgstr "kroma srednjih tonov" - -#~ msgid "saturation global" -#~ msgstr "globalna nasičenost" - -#~ msgid "saturation highlights" -#~ msgstr "nasičenost bleščav" - -#~ msgid "saturation mid-tones" -#~ msgstr "nasičenost srednjih tonov" - -#~ msgid "saturation shadows" -#~ msgstr "nasičenost senc" - -#~ msgid "brilliance global" -#~ msgstr "globalna briljanca" - -#~ msgid "brilliance highlights" -#~ msgstr "bleščave briljance" - -#~ msgid "brilliance mid-tones" -#~ msgstr "srednji toni brliljance" - -#~ msgid "brilliance shadows" -#~ msgstr "sence briljance" - -#~ msgid "cast balance" -#~ msgstr "ravnotežje odtenka" - -#, c-format -#~ msgid "error: can't open xmp file %s" -#~ msgstr "napaka: ne morem odpreti datoteke xmp %s" - -#, c-format -#~ msgid "%d image of %d (#%d) in current collection is selected" -#~ msgstr "Izbrana je %d slika od %d (#%d) trenutne zbirke" - -#, c-format -#~ msgid "%d image of %d in current collection is selected" -#~ msgid_plural "%d images of %d in current collection are selected" -#~ msgstr[0] "izbrana je %d slika od %d v trenutni zbirki" -#~ msgstr[1] "izbrani sta %d sliki od %d v trenutni zbirki" -#~ msgstr[2] "izbrane so %d slike od %d v trenutni zbirki" -#~ msgstr[3] "izbranih je %d slik od %d v trenutni zbirki" - -#~ msgid "click later to be asked on next startup" -#~ msgstr "kliknite kasneje, za vprašanje ob naslednjem zagonu" - -#~ msgid "click later to be asked when closing darktable" -#~ msgstr "kliknite pozneje, za vprašanje ob zapiranju darktabla" - -#~ msgid "click later to be asked next time when closing darktable" -#~ msgstr "kliknite pozneje, za vprašanje naslednjič ob zapiranju darktabla" - -#, c-format -#~ msgid "" -#~ "the database could use some maintenance\n" -#~ "\n" -#~ "there's <span style='italic'>%s</span> to be freed\n" -#~ "\n" -#~ "do you want to proceed now?\n" -#~ "\n" -#~ "%s\n" -#~ "you can always change maintenance preferences in core options" -#~ msgstr "" -#~ "bazi podatkov bi lahko naklonili nekaj vzdrževanja\n" -#~ "\n" -#~ "<span style = \"italic\">%s </span> je možno sprostiti\n" -#~ "\n" -#~ "ali želite nadaljevati zdaj?\n" -#~ "\n" -#~ "%s\n" -#~ "nastavitve vzdrževanja lahko vedno spremenite v osnovnih nastavitvah" - -#~ msgid "darktable - schema maintenance" -#~ msgstr "darktable - shema vzdrževanja" - -#~ msgid "later" -#~ msgstr "kasneje" - -#~ msgid "[BRUSH creation] change size" -#~ msgstr "[BRUSH creation] spremeni velikost" - -#~ msgid "[BRUSH creation] change hardness" -#~ msgstr "[BRUSH creation] spremeni trdoto" - -#~ msgid "AVIF (8/10/12-bit)" -#~ msgstr "AVIF (8/10/12-bitov)" - -#~ msgid "OpenEXR (16/32-bit float)" -#~ msgstr "OpenEXR (16/32-bitna plavajoča veijca)" - -#~ msgid "32 bit" -#~ msgstr "32 bit" - -#~ msgid "J2K" -#~ msgstr "J2K" - -#~ msgid "PFM (float)" -#~ msgstr "PFM (plavajoča vejica)" - -#~ msgid "PNG (8/16-bit)" -#~ msgstr "PNG (8/16-bitov)" - -#~ msgid "TIFF (8/16/32-bit)" -#~ msgstr "TIFF (8/16/32-bitov)" - -#~ msgid "WebP (8-bit)" -#~ msgstr "WebP (8-bitov)" - -#~ msgid "applies only to lossy setting" -#~ msgstr "se nanaša samo na aproksimativno nastavitev" - -#~ msgid "xcf" -#~ msgstr "xcf" - -#, no-c-format -#~ msgid "preview is only possible for zoom lower than 200%%" -#~ msgstr "predogled je možen samo za povečave pod 200%%" - -#~ msgid "v3.0" -#~ msgstr "v3.0" - -#~ msgid "" -#~ "this quick access widget is disabled as it's hidden in the actual module " -#~ "configuration. Please use the full module to access this widget..." -#~ msgstr "" -#~ "ta gradnik za hitri dostop je onemogočen, saj je skrit v sestavi " -#~ "trenutnega modula. Za dostop do tega gradnika uporabite celotni modul..." - -#~ msgid "" -#~ "the following modules are deprecated because they have internal design " -#~ "mistakes which can't be solved and alternative modules which solve them.\n" -#~ " they will be removed for new edits in the next release." -#~ msgstr "" -#~ "naslednji moduli so zastareli, ker imajo notranje napake pri načrtovanju, " -#~ "ki jih ni mogoče rešiti in alternative, ki jih rešujejo.\n" -#~ "v naslednji izdaji bodo odstranjeni namesto novih urejanj." - -#~ msgid "lmmse refine" -#~ msgstr "izboljšaj lmmse" - -#~ msgid "lut 3D" -#~ msgstr "tabela iskanja 3D" - -#~ msgid "select lut file" -#~ msgstr "izberi datoteko s tabelo iskanja" - -#~ msgid "gpx file" -#~ msgstr "datoteka gpx" - -#~ msgid "unstared only" -#~ msgstr "samo brez zvezdic" - -#~ msgid "linear rec709 RGB" -#~ msgstr "linearni Rec709 RGB" - -#~ msgid "linear rec2020 RGB" -#~ msgstr "linearni Rec2020 RGB" - -#~ msgid "orphan images" -#~ msgstr "osirotele slike" - -#~ msgid "images in a group" -#~ msgstr "slike v skupini" - -#~ msgctxt "preferences" -#~ msgid "gray scale" -#~ msgstr "lestvica sivin" - -#~ msgid "" -#~ "disable this collect rule\n" -#~ "ctrl-click to pin into the top toolbar" -#~ msgstr "" -#~ "onemogoči to pravilo zbiranja\n" -#~ "krmilka-klik za pritrjevanje na vrhnjo orodno vrstico" - -#~| msgid "memory in megabytes to use for thumbnail cache" -#~ msgid "memory in MB to use for thumbnail cache" -#~ msgstr "količina vmesnega pomnilnika predoglednih sličic v megabytih" - -#~ msgid "" -#~ "this controls how much memory is going to be used for thumbnails and " -#~ "other buffers (needs a restart)." -#~ msgstr "" -#~ "to nadzoruje koliko pomnilnika naj porabimo za predogledne sličice in " -#~ "ostale vmesnike (potreben ponovni zagon)." - -#~ msgid "host memory limit (in MB) for tiling" -#~ msgstr "omejitev porabe pomnilnika (v MB) za prekritje slike" - -#~ msgid "" -#~ "this variable controls the maximum amount of memory (in MB) a module may " -#~ "use during image processing. lower values will force memory hungry " -#~ "modules to process image with increasing number of tiles. setting this to " -#~ "0 will omit any limit. values below 500 will be treated as 500 (needs a " -#~ "restart)." -#~ msgstr "" -#~ "ta spremenljivka določa največjo količino pomnilnika (v MB), ki ga modul " -#~ "lahko uporabi za obdelavo. nižje vrednosti bodo prisilile module, ki " -#~ "zahtevajo več pomnilnika, da bodo obdelali sliko iz več zaplat. " -#~ "postavljanje na 0 pomeni brez omejitve pomnilnika. vse vrednosti pod 500 " -#~ "bodo pomenili 500MB. (potreben je ponovni zagon programa)." - -#~ msgid "minimum amount of memory (in MB) for a single buffer in tiling" -#~ msgstr "najmanjša količina pomnilnika (v MB) za en vmesnik za prekrivanje" - -#~ msgid "" -#~ "minimum amount of memory (in MB) that tiling should take for a single " -#~ "image buffer (needs a restart)." -#~ msgstr "" -#~ "najmanjša količina pomnilnika (v MB) potrebna za eno krpo vmesnika za " -#~ "prekrivanje slike (potreben ponovni zagon)." - -#~ msgid "disable the entry completion" -#~ msgstr "onemogoči zaključevanje vnosov" - -#~ msgid "" -#~ "the entry completion is useful for those who enter tags from keyboard " -#~ "only. for others the entry completion can be embarrassing. need to " -#~ "restart darktable." -#~ msgstr "" -#~ "zaključevanje vnosa je uporabno za tiste, ki dodajajo značke samo s " -#~ "tipkovnico. za ostale je zaključevanje vnosa lahko nadležno. potreben je " -#~ "ponovni zagon darktable." - -#~ msgid "switch dual threshold" -#~ msgstr "preklopi dvojni prag" - -#~ msgid "date-time taken" -#~ msgstr "datum in čas posnetka" - -#~ msgid "darktable - run performance configuration?" -#~ msgstr "darktable - naj izvedem nastavitve zmogljivosti?" - -#~ msgid "" -#~ "we have an updated performance configuration logic - executing that might " -#~ "improve the performance of darktable.\n" -#~ "this will potentially overwrite some of your existing settings - " -#~ "especially in case you have manually modified them to custom values.\n" -#~ "would you like to execute this update of the performance configuration?\n" -#~ msgstr "" -#~ "recept za nastavitve zmogljivosti predvideva izboljšavo zmogljivosti " -#~ "programa darktable.\n" -#~ "to pa bo potencialno spremenilo vaše trenutne nastavitve, morda tudi vaše " -#~ "ročne nastavitve s svojimi.\n" -#~ "ali želite izvesti to strojno osvežitev nastavitev?\n" - -#, c-format -#~ msgctxt "accel" -#~ msgid "styles/apply %s" -#~ msgstr "uveljavi slog %s" - -#, c-format -#~ msgctxt "accel" -#~ msgid "apply %s" -#~ msgstr "izvedi %s" - -#~ msgid "refresh exif" -#~ msgstr "osveži exif" - -#~ msgctxt "accel" -#~ msgid "rating" -#~ msgstr "ocena" - -#~ msgctxt "accel" -#~ msgid "discard history" -#~ msgstr "zavrzi zgodovino" - -#~ msgctxt "accel" -#~ msgid "color label" -#~ msgstr "oznaka barve" - -#~ msgctxt "accel" -#~ msgid "select all" -#~ msgstr "izberi vse" - -#~ msgctxt "accel" -#~ msgid "select none" -#~ msgstr "ne izberi ničesar" - -#~ msgctxt "accel" -#~ msgid "invert selection" -#~ msgstr "invertiraj izbiro" - -#~ msgctxt "accel" -#~ msgid "select film roll" -#~ msgstr "izberi zvitek filma" - -#~ msgctxt "accel" -#~ msgid "select untouched" -#~ msgstr "izberi nedotaknjene" - -#~| msgid "double" -#~ msgctxt "accel" -#~ msgid "double" -#~ msgstr "dvojno" - -#~| msgid "triple" -#~ msgctxt "accel" -#~ msgid "triple" -#~ msgstr "trojno" - -#~ msgctxt "accel" -#~ msgid "switch views/tethering" -#~ msgstr "preklopi pogled/upravljanje" - -#~ msgctxt "accel" -#~ msgid "switch views/lighttable" -#~ msgstr "preklop pogled/osvetljena podloga" - -#~ msgctxt "accel" -#~ msgid "switch views/darkroom" -#~ msgstr "preklopi pogled/temnica" - -#~| msgctxt "accel" -#~| msgid "switch views/print" -#~ msgctxt "accel" -#~ msgid "switch views/map" -#~ msgstr "preklop pogled/zemljevid" - -#~ msgctxt "accel" -#~ msgid "switch views/slideshow" -#~ msgstr "preklopi pogled/dia projekcija" - -#~ msgctxt "accel" -#~ msgid "switch views/print" -#~ msgstr "preklopi pogled/tisk" - -#~ msgctxt "accel" -#~ msgid "panels/all" -#~ msgstr "plošče/vse" - -#~ msgctxt "accel" -#~ msgid "panels/left" -#~ msgstr "plošče/levo" - -#~ msgctxt "accel" -#~ msgid "panels/right" -#~ msgstr "plošče/desno" - -#~ msgctxt "accel" -#~ msgid "panels/top" -#~ msgstr "plošče/na vrhu" - -#~ msgctxt "accel" -#~ msgid "panels/bottom" -#~ msgstr "plošče/na dnu" - -#~ msgctxt "accel" -#~ msgid "panels/header" -#~ msgstr "plošče/glavni naslov" - -#~ msgctxt "accel" -#~ msgid "panels/all bottom" -#~ msgstr "plošče/vse na dnu" - -#~ msgctxt "accel" -#~ msgid "show accels window" -#~ msgstr "prikaži okno pospeševanja" - -#~ msgid "compression mode" -#~ msgstr "način stiskanja" - -#~ msgid "PIZ (default)" -#~ msgstr "PIZ (privzeto)" - -#~ msgid "PXR24 (lossy)" -#~ msgstr "PXR24 (približen)" - -#~ msgid "B44 (lossy)" -#~ msgstr "B44 (približen)" - -#~ msgid "B44A (lossy)" -#~ msgstr "B44A (približen)" - -#~ msgid "perspective helpers" -#~ msgstr "pomočnik pri perspektivi" - -#~ msgid "crop settings" -#~ msgstr "nastavitve obreza" - -#~ msgid "<b>commit</b>: double click" -#~ msgstr "<b>potrditev</b>: dvoklik" - -#~ msgid "display blending mask" -#~ msgstr "prikaži masko mešanja" - -#~ msgid "diffusion properties" -#~ msgstr "lastnosti mehčanja" - -#~ msgid "diffusion speed" -#~ msgstr "hitrost difuzije" - -#~ msgid "" -#~ "smoothing or sharpening of smooth details (gradients).\n" -#~ "positive values diffuse and blur.\n" -#~ "negative values sharpen.\n" -#~ "zero does nothing." -#~ msgstr "" -#~ "glajenje ali ostrenje gladkih detajlov (gradientov).\n" -#~ "pozitivne vrednosti razpršijo in zameglijo.\n" -#~ "negativne vrednosti izostrijo.\n" -#~ "nič ne naredi nič." - -#~ msgid "" -#~ "smoothing or sharpening of sharp details.\n" -#~ "positive values diffuse and blur.\n" -#~ "negative values sharpen.\n" -#~ "zero does nothing." -#~ msgstr "" -#~ "glajenje ali ostrenje ostrih detajlov.\n" -#~ "pozitivne vrednosti razpršijo in zameglijo.\n" -#~ "negativne vrednosti izostrijo.\n" -#~ "nič ne naredi nič." - -#~ msgid "" -#~ "smoothing or sharpening of sharp details (gradients).\n" -#~ "positive values diffuse and blur.\n" -#~ "negative values sharpen.\n" -#~ "zero does nothing." -#~ msgstr "" -#~ "glajenje ali ostrenje ostrih detajlov (gradientov).\n" -#~ "pozitivne vrednosti razpršijo in zameglijo.\n" -#~ "negativne vrednosti izostrijo.\n" -#~ "nič ne naredi nič." - -#~ msgid "diffusion directionality" -#~ msgstr "smer difuzije" - -#~ msgid "" -#~ "anisotropy of the diffusion.\n" -#~ "zero makes the diffusion isotrope (same in all directions)\n" -#~ "positives make the diffusion follow isophotes more closely\n" -#~ "negatives make the diffusion follow gradients more closely" -#~ msgstr "" -#~ "anizotropija difuzije.\n" -#~ "nič naredi difuzijsko izotropno (enako v vseh smereh)\n" -#~ "pozitivne vrednosti povzročijo, da difuzija bolj sledi izofotom\n" -#~ "negativne povzročijo, da difuzija bolj sledi gradientom" - -#~ msgid "increase or decrease the sharpness of the highest frequencies" -#~ msgstr "poveča ali zmanjša ostrino najvišjih frekvenc" - -#~ msgid "" -#~ "percentage of bright values clipped out, toggle color picker to activate" -#~ msgstr "" -#~ "odstotek izločenih svetlih tonov, preklopite izbirnik barv za aktiviranje" - -#, c-format -#~ msgid "%.0f ISO" -#~ msgstr "%.0f ISO" - -#~ msgid "grey" -#~ msgstr "siva" - -#~ msgid "white balance settings" -#~ msgstr "nastavitve ravnotežje beline" - -#, c-format -#~ msgid "%.0f mired" -#~ msgstr "%.0f fiksirane" - -#~ msgctxt "accel" -#~ msgid "capture image(s)" -#~ msgstr "zajem slik(e)" - -#~ msgid "imported: today" -#~ msgstr "uvoženo: danes" - -#~ msgid "taken: today" -#~ msgstr "posneto: danes" - -#, c-format -#~| msgid "" -#~| "no history compression of 1 image.\n" -#~| "see tag: darktable|problem|history-compress." -#~| msgid_plural "" -#~| "no history compression of %d images.\n" -#~| "see tag: darktable|problem|history-compress." -#~ msgid "" -#~ "no history compression of 1 image.\n" -#~ "see tag: darktable|problem|history-compress" -#~ msgid_plural "" -#~ "no history compression of %d images.\n" -#~ "see tag: darktable|problem|history-compress" -#~ msgstr[0] "" -#~ "ni stisnjene zgodovine %d slike.\n" -#~ "glejte oznako: darktable|problem|history-compress" -#~ msgstr[1] "" -#~ "ni stisnjene zgodovine %d slik.\n" -#~ "glejte oznako: darktable|problem|history-compress" -#~ msgstr[2] "" -#~ "ni stisnjene zgodovine %d slik.\n" -#~ "glejte oznako: darktable|problem|history-compress" -#~ msgstr[3] "" -#~ "ni stisnjene zgodovine %d slik.\n" -#~ "glejte oznako: darktable|problem|history-compress" - -#~ msgctxt "accel" -#~ msgid "copy" -#~ msgstr "kopiraj" - -#~ msgctxt "accel" -#~ msgid "copy parts" -#~ msgstr "kopiraj dele" - -#~ msgctxt "accel" -#~ msgid "compress" -#~ msgstr "stisni" - -#~ msgctxt "accel" -#~ msgid "discard" -#~ msgstr "zavrzi" - -#~ msgctxt "accel" -#~ msgid "paste" -#~ msgstr "prilepi" - -#~ msgctxt "accel" -#~ msgid "paste parts" -#~ msgstr "prilepi dele" - -#~ msgctxt "accel" -#~ msgid "load sidecar files" -#~ msgstr "naloži priklopne datoteke" - -#~ msgctxt "accel" -#~ msgid "write sidecar files" -#~ msgstr "zapiši priklopne datoteke" - -#~ msgctxt "accel" -#~ msgid "export" -#~ msgstr "izvozi" - -#~ msgid "exif data" -#~ msgstr "podatki exif" - -#~ msgid "list of available tags" -#~ msgstr "seznam razpoložljivih značk" - -#~ msgctxt "accel" -#~ msgid "histogram/hide histogram" -#~ msgstr "histogram/skrij histogram" - -#~ msgctxt "accel" -#~ msgid "histogram/cycle histogram modes" -#~ msgstr "histogram/zanka načinov histograma" - -#~ msgctxt "accel" -#~ msgid "histogram/switch histogram mode" -#~ msgstr "histogram/preklopite način histograma" - -#~ msgctxt "accel" -#~ msgid "histogram/switch histogram type" -#~ msgstr "histogram/preklopi tip histograma" - -#~ msgctxt "accel" -#~ msgid "compress history stack" -#~ msgstr "stisni sklad zgodovine" - -#~ msgctxt "accel" -#~ msgid "remove from darktable" -#~ msgstr "odstrani iz programa darktable" - -#~| msgid "physically delete from disk (using trash if possible)" -#~ msgctxt "accel" -#~ msgid "delete from disk using trash if possible" -#~ msgstr "zbriši z diska z uporabo smeti, če je možno" - -#~ msgctxt "accel" -#~ msgid "move to other folder" -#~ msgstr "prenesi v drugo mapo" - -#~ msgctxt "accel" -#~ msgid "copy to other folder" -#~ msgstr "kopiraj v drugo mapo" - -#~ msgctxt "accel" -#~ msgid "rotate selected images 90 degrees CW" -#~ msgstr "zasukaj izbrane slike za 90 stopinj v smeri urnega kazalca" - -#~ msgctxt "accel" -#~ msgid "rotate selected images 90 degrees CCW" -#~ msgstr "" -#~ "zasukaj izbrane slike za 90 stopinj v nasprotni smeri urnega kazalca" - -#~ msgctxt "accel" -#~ msgid "create HDR" -#~ msgstr "ustvari HDR" - -#~ msgctxt "accel" -#~ msgid "duplicate" -#~ msgstr "dupliciraj" - -#~ msgctxt "accel" -#~ msgid "reset rotation" -#~ msgstr "ponovno nastavi sukanje" - -#~ msgctxt "accel" -#~ msgid "copy the image locally" -#~ msgstr "lokalno kopiraj sliko" - -#~ msgctxt "accel" -#~ msgid "resync the local copy" -#~ msgstr "ponovno sinhroniziraj lokalno kopijo" - -#~ msgctxt "accel" -#~ msgid "refresh exif" -#~ msgstr "osveži exif" - -#~ msgctxt "accel" -#~ msgid "set monochrome image" -#~ msgstr "nastavi enobarvno sliko" - -#~ msgctxt "accel" -#~ msgid "set color image" -#~ msgstr "nastavi barvno sliko" - -#~ msgctxt "accel" -#~ msgid "copy metadata" -#~ msgstr "kopiraj metapodatke" - -#~ msgctxt "accel" -#~ msgid "clear metadata" -#~ msgstr "očisti metapodatke" - -#~ msgctxt "accel" -#~ msgid "group" -#~ msgstr "grupiraj" - -#~ msgctxt "accel" -#~ msgid "ungroup" -#~ msgstr "razgrupiraj" - -#~| msgctxt "accel" -#~| msgid "import from camera" -#~ msgctxt "accel" -#~ msgid "copy & import from camera" -#~ msgstr "kopiraj in uvozi iz kamere" - -#~ msgctxt "accel" -#~ msgid "tethered shoot" -#~ msgstr "upravljano snemanje" - -#~ msgctxt "accel" -#~ msgid "add to library" -#~ msgstr "dodaj v knjižnico" - -#~ msgctxt "accel" -#~ msgid "copy & import" -#~ msgstr "kopiraj oz. uvozi" - -#~ msgctxt "accel" -#~ msgid "mount camera" -#~ msgstr "priklopi kamero" - -#~ msgctxt "accel" -#~ msgid "unmount camera" -#~ msgstr "odklopi kamero" - -#~ msgctxt "accel" -#~ msgid "toggle live view" -#~ msgstr "preklopi ogled v živo" - -#~ msgctxt "accel" -#~ msgid "zoom live view" -#~ msgstr "zumiraj živi pogled" - -#~ msgctxt "accel" -#~ msgid "rotate 90 degrees CCW" -#~ msgstr "zasukaj 90 stopinj v obratni smeri urinega kazalca" - -#~ msgctxt "accel" -#~ msgid "rotate 90 degrees CW" -#~ msgstr "zasukaj 90 stopinj v smeri urinega kazalca" - -#~ msgctxt "accel" -#~ msgid "flip horizontally" -#~ msgstr "prezrcali vodoravno" - -#~ msgctxt "accel" -#~ msgid "move focus point in (big steps)" -#~ msgstr "premakni točko ostrenja (veliki koraki)" - -#~ msgctxt "accel" -#~ msgid "move focus point in (small steps)" -#~ msgstr "premakni točko ostrenja (majhni koraki)" - -#~ msgctxt "accel" -#~ msgid "move focus point out (small steps)" -#~ msgstr "premakni točko ostrenja ven (z malimi koraki)" - -#~ msgctxt "accel" -#~ msgid "move focus point out (big steps)" -#~ msgstr "premakni točko ostrenja ven (z velikimi koraki)" - -#~ msgctxt "accel" -#~ msgid "filtered images" -#~ msgstr "filtrirane slike" - -#~ msgctxt "accel" -#~ msgid "thumbnail display" -#~ msgstr "prikaz predoglednih sličic" - -#~ msgid "metadata list" -#~ msgstr "seznam metapodatkov" - -#~ msgctxt "accel" -#~ msgid "print" -#~ msgstr "tiskaj" - -#~ msgctxt "accel" -#~ msgid "take snapshot" -#~ msgstr "napravi posnetek" - -#~ msgctxt "accel" -#~ msgid "create" -#~ msgstr "ustvari" - -#~ msgctxt "accel" -#~ msgid "remove" -#~ msgstr "odstrani" - -#~ msgctxt "accel" -#~ msgid "import" -#~ msgstr "uvozi" - -#~ msgctxt "accel" -#~ msgid "edit" -#~ msgstr "uredi" - -#~ msgctxt "verb" -#~ msgid "import..." -#~ msgstr "uvozi..." - -#~ msgctxt "accel" -#~ msgid "attach" -#~ msgstr "priloži" - -#~ msgctxt "accel" -#~ msgid "detach" -#~ msgstr "razdvoji" - -#~ msgctxt "accel" -#~ msgid "new" -#~ msgstr "nov" - -#~ msgctxt "accel" -#~ msgid "import..." -#~ msgstr "uvozi..." - -#~ msgctxt "accel" -#~ msgid "export..." -#~ msgstr "izvozi..." - -#~ msgctxt "accel" -#~ msgid "tag" -#~ msgstr "značka" - -#~ msgid "enter tag name" -#~ msgstr "vnesite ime značke" - -#~ msgid "" -#~ "tag dictionary,\n" -#~ "double-click to attach,\n" -#~ "right-click for other actions on selected tag,\n" -#~ "ctrl-wheel scroll to resize the window" -#~ msgstr "" -#~ "slovar značk,\n" -#~ "dvoklik za pripenjanje,\n" -#~ "desni klik za druge akcije na izbrani znački,\n" -#~ "krmilka-kolešček za spremembo velikosti okna" - -#~ msgctxt "verb" -#~ msgid "export..." -#~ msgstr "izvoz..." - -#~ msgid "last export time" -#~ msgstr "čas zadnjega izvoza" - -#~ msgid "last print time" -#~ msgstr "zadnji čas tiskanja" - -#~ msgid "which images should be shown" -#~ msgstr "katere slike naj bi bile prikazane" - -#~ msgid "view" -#~ msgstr "pogled" - -#~ msgid "overlays block on mouse hover during (s)" -#~ msgstr "blok plasti pod miško traja (s)" - -#~ msgctxt "accel" -#~ msgid "grouping" -#~ msgstr "grupiranje" - -#~ msgctxt "accel" -#~ msgid "preferences" -#~ msgstr "preference" - -#~ msgctxt "accel" -#~ msgid "shortcuts" -#~ msgstr "bližnjice" - -#~ msgctxt "accel" -#~ msgid "thumbnail overlays/no overlays" -#~ msgstr "prekrivne predogledne sličice/brez prekrivnih plasti" - -#~ msgctxt "accel" -#~ msgid "thumbnail overlays/overlays on mouse hover" -#~ msgstr "prekrivne predogledne sličice/prekrivne plasti pri miški nad" - -#~ msgctxt "accel" -#~ msgid "thumbnail overlays/extended overlays on mouse hover" -#~ msgstr "" -#~ "prekrivne predogledne sličice/razširjene prekrivne plasti pri miški nad" - -#~ msgctxt "accel" -#~ msgid "thumbnail overlays/permanent overlays" -#~ msgstr "prekrivne predogledne sličice/stalne prekrivne plasti" - -#~ msgctxt "accel" -#~ msgid "thumbnail overlays/permanent extended overlays" -#~ msgstr "prekrivne predogledne sličice/stalne razširjene prekrivne plasti" - -#~ msgctxt "accel" -#~ msgid "thumbnail overlays/permanent overlays extended on mouse hover" -#~ msgstr "" -#~ "prekrivne predogledne sličice/stalne razširjene prekrivne plasti pri " -#~ "miški nad" - -#~ msgctxt "accel" -#~ msgid "thumbnail overlays/overlays block on mouse hover" -#~ msgstr "prekrivne predogledne sličice/blok prekrivnih plasti pri miški nad" - -#~ msgctxt "accel" -#~ msgid "reset lib parameters" -#~ msgstr "ponovno nastavi parametre knjižnice" - -#~ msgctxt "accel" -#~ msgid "raw overexposed/toggle" -#~ msgstr "surovo preosvetljeno/preklop" - -#~ msgctxt "accel" -#~ msgid "overexposed/toggle" -#~ msgstr "preosvetljeno/preklop" - -#~ msgctxt "accel" -#~ msgid "gamut check" -#~ msgstr "kontrola barvnega razpona" - -#~ msgctxt "accel" -#~ msgid "guide lines/toggle" -#~ msgstr "vodila/preklop" - -#~ msgctxt "accel" -#~ msgid "preview" -#~ msgstr "predogled" - -#~ msgid "ignore JPEG images when importing film rolls" -#~ msgstr "izpusti slike v formatu JPEG, kadar uvažate zvitke filmov" - -#~ msgid "don't use embedded preview JPEG but half-size raw" -#~ msgstr "" -#~ "ne uporabljaj vgrajenega predogleda JPEG ampak polovico velikosti surovega" - -#~ msgid "" -#~ "check this option to not use the embedded JPEG from the raw file but " -#~ "process the raw data. this is slower but gives you color managed " -#~ "thumbnails." -#~ msgstr "" -#~ "odkljukajte to možnost, da se ne uporabi vgrajena JPEG sličica surove " -#~ "slike ampak se obdela slika v surovem formatu. To je počasnejše, a " -#~ "rezultat je predogledna sličica v kontroliranih barvah." - -#~| msgid "" -#~| "if the thumbnail size is greater than this value, it will be processed " -#~| "using the full quality rendering path (better but slower).\n" -#~| "if you want all thumbnails and pre-rendered images in best quality you " -#~| "should choose the *always* option.\n" -#~| "(more comments in the manual)" -#~ msgid "" -#~ "if the thumbnail size is greater than this value, it will be processed " -#~ "using the full quality rendering path (better but slower)." -#~ msgstr "" -#~ "če je velikost predogledne sličice večja od te vrednosti, bo obdelana z " -#~ "uporabo poti upodabljanja celotne kakovosti (boljša, vendar počasnejša)." - -#~| msgid "permanent extended overlays" -#~ msgid "enable extended thumb overlay" -#~ msgstr "omogoči razširjene plasti predogleda" - -#~ msgid "if set to true, thumb overlay shows filename and some exif data." -#~ msgstr "" -#~ "če je vklopljeno, predogledna plast prikazuje ime datoteke in nekaj " -#~ "podatkov exifa." - -#~ msgid "" -#~ "do not have the rating of one star behave as documented in the manual--an " -#~ "image rated one star twice will result in a zero star rating." -#~ msgstr "" -#~ "ocena ene zvezdice se ne obnaša kot v priročniku - sliko z eno zvezdico " -#~ "obravnavamo kot sliko brez zvezdic." - -#~| msgid "show search line" -#~ msgid "show search module text entry" -#~ msgstr "prikaži iskanje modula z besedilom" - -#~ msgctxt "preferences" -#~ msgid "show both" -#~ msgstr "prikaži oboje" - -#~ msgid "only draw images on map that are currently collected and filtered" -#~ msgstr "riši slike samo v mapi, kjer so trenutno zbrane in prečiščene slike" - -#~ msgid "" -#~ "use the current filter settings to select the geotagged images drawn on " -#~ "the map, i.e. limit the images drawn to the current filmstrip. this " -#~ "limits the number of images drawn and thus reduces the time needed to " -#~ "draw the images." -#~ msgstr "" -#~ "uporabi trenutne nastavitve izbire geokodiranih slik, ki so narisane na " -#~ "karti, npr. omeji samo na trenutni kos filma. To omeji število prikazanih " -#~ "slik in zmanjša potreben čas za prikaz slik." - -#~ msgid "" -#~ "the maximum number of geotagged images drawn on the map. increasing this " -#~ "number can slow drawing of the map down." -#~ msgstr "" -#~ "največje število geokodiranih slik narisanih v mapi. povečanje tega " -#~ "števila upočasni prikaz vsebine map." - -#~| msgid "always ask the user before any image file is deleted" -#~ msgid "" -#~ "always ask the user before any image file is deleted / history stack is " -#~ "discarded." -#~ msgstr "" -#~ "vedno vprašaj pred kakršnimkoli brisanjem datoteke / odstranjevanjem " -#~ "sklada zgodovine." - -#~ msgid "width of the side panels in pixels" -#~ msgstr "širina bočnih panojev v pikslih" - -#~ msgid "(needs a restart)" -#~ msgstr "(potrebuje ponovni zagon)" - -#~ msgid "do not show april 1st game" -#~ msgstr "ne kaži igric za 1. april" - -#~ msgid "enable the filmstrip in darkroom, tethering and map modes." -#~ msgstr "" -#~ "omogoči kos filma v temnici, odd. upravljanju ter pri vpogledu v mape." - -#~ msgid "enable timeline" -#~ msgstr "omogoči časovni trak" - -#~ msgid "enable the timeline in lighttable mode." -#~ msgstr "omogoči časovni trak na osvetljeni podlagi." - -#~ msgid "overlay txt sidecar over zoomed images" -#~ msgstr "prekrij besedilne priklopne datoteke prek zumiranih slik" - -#~ msgid "" -#~ "when there is a txt file next to an image it can be shown as an overlay " -#~ "over zoomed images on the lighttable. the txt file either has to be there " -#~ "at import time or the crawler has to be enabled" -#~ msgstr "" -#~ "kadar je besedilna datoteka ob sliki, je lahko prikazana kot prekrivek " -#~ "nad pomanjšanimi slikami na osvetljeni podlagi. besedilna datoteka je " -#~ "bila tam ob uvozu ali pa je potrebno aktivirati robotka" - -#~ msgctxt "preferences" -#~ msgid "no scrollbars" -#~ msgstr "brez drsnikov" - -#~ msgctxt "preferences" -#~ msgid "lighttable" -#~ msgstr "osvetljena podlaga" - -#~ msgctxt "preferences" -#~ msgid "lighttable + darkroom" -#~ msgstr "osvetljena podlaga + temnica" - -#~ msgid "color manage cached thumbnails" -#~ msgstr "upravljanje barv predoglednih sličic v zalogovniku" - -#~ msgid "" -#~ "if enabled, cached thumbnails will be color managed so that lighttable " -#~ "and filmstrip can show correct colors. otherwise the results may look " -#~ "wrong once the display profile gets changed." -#~ msgstr "" -#~ "če je omogočeno bodo predogledne sličice imele upravljanje barv, tako da " -#~ "bodo na osvetljeni podlagi in kot kos filma kazale pravilne barve, če ne, " -#~ "so lahko rezultati napačnih barv, kadar se spremeni profil zaslona." - -#~ msgid "do high quality processing for slideshow" -#~ msgstr "izvedi visoko kakovostno obdelavo za projekcijo" - -#~ msgid "same option as for export, but applies to slideshow." -#~ msgstr "enake možnosti za izvoz toda na projekciji." - -#~ msgid "auto-apply basecurve" -#~ msgstr "avtomatsko uporabi osnovno krivuljo" - -#~ msgid "use a basecurve by default (needs a restart)" -#~ msgstr "privzeto uporabi osnovno krivuljo (zahteva ponovni zagon)" - -#~ msgid "" -#~ "use the per-camera basecurve by default instead of the generic " -#~ "manufacturer one if there is one available (needs a restart)" -#~ msgstr "" -#~ "uporabi privzeto krivuljo kamere namesto splošne krivulje proizvajalca, " -#~ "če obstaja (potreben je ponovni zagon)" - -#~ msgid "" -#~ "these redundant files can later be re-imported into a different database, " -#~ "preserving your changes to the image." -#~ msgstr "" -#~ "te redundantne datoteke lahko kasneje ponovno uvozimo v druga bazo slik, " -#~ "tako da ohranimo vaše spremembe slik." - -#~ msgid "number of background threads" -#~ msgstr "število procesnih niti v ozadju" - -#~ msgid "" -#~ "this controls for example how many threads are used to create thumbnails " -#~ "during import. the cache will grow to a maximum of twice this number of " -#~ "full resolution image buffers (needs a restart)." -#~ msgstr "" -#~ "to nadzoruje npr. koliko niti uporabi za tvorjenje predoglednih sličic " -#~ "pri uvozu. Zalogovnik bo narasel največ za dvakratnik tega števila slik v " -#~ "polni ločljivosti (potrebuje ponovni zagon programa)." - -#~ msgid "" -#~ "if set to a positive, non-zero value this variable defines the minimum " -#~ "amount of memory (in MB) that tiling should take for a single image " -#~ "buffer. has precedence over heuristics based on host_memory_limit (needs " -#~ "a restart)." -#~ msgstr "" -#~ "če je postavljena na pozitivno vrednost, le-ta določa najmanjšo količino " -#~ "pomnilnika (v MB) kolikor ga sestavljanje slik potrebuje za medpomnilnik " -#~ "za eno samo sliko in ta vrednost ima prednost pred hevristično " -#~ "nastavitvijo, ki ga določa host_memory_limit (zahteva ponovni zagon)." - -#, c-format -#~| msgid "%s / %s: %s" -#~ msgid "%s/%s: %s" -#~ msgstr "%s/%s: %s" - -#, c-format -#~ msgid "%s: %s" -#~ msgstr "%s: %s" - -#, c-format -#~ msgid "error: output file is a directory. please specify file name" -#~ msgstr "napaka: izhodna datoteka je mapa. prosim navedite ime datoteke" - -#~ msgid "darktable - error locking database" -#~ msgstr "darktable - napaka blokira podatkovno bazo" - -#, c-format -#~ msgid "" -#~ "an error has occurred while trying to open the database from\n" -#~ "\n" -#~ "<span style=\"italic\">%s</span>\n" -#~ "\n" -#~ "it seems that the database is corrupt.\n" -#~ "do you want to close darktable now to manually restore\n" -#~ "the database from a backup or start with a new one?" -#~ msgstr "" -#~ "prišlo je do napake pri poskusu odpiranje podatkovne baze\n" -#~ "\n" -#~ "<span style=\"italic\">%s</span>\n" -#~ "\n" -#~ "videti je, da je podatkovna baza pokvarjena.\n" -#~ "ali želite zdaj zapreti darktable in ročno obnoviti\n" -#~ "podatkovno baze iz varovalne kopije ali tvoriti novo?" - -#, c-format -#~| msgid "scroll to change <b>%s</b> of module %s %s" -#~ msgid "scroll to change <b>%s</b> of %s module" -#~ msgstr "pomakni za menjavo <b>%s</b> modula %s" - -#~ msgid "reload selected xmp files" -#~ msgstr "ponovno naloži izbrane datoteke xmp" - -#~ msgid "overwrite selected xmp files" -#~ msgstr "prepiši izbrane datoteke xmp" - -#, c-format -#~| msgid "exporting %d image.." -#~| msgid_plural "exporting %d images.." -#~ msgid "exporting %d image to %s" -#~ msgid_plural "exporting %d images to %s" -#~ msgstr[0] "izvažam %d sliko na %s" -#~ msgstr[1] "izvažam %d sliki na %s" -#~ msgstr[2] "izvažam %d slike na %s" -#~ msgstr[3] "izvažam %d slik na %s" - -#, c-format -#~| msgid "do you really want to send selected image to trash?" -#~ msgid "do you really want to remove %d selected image from the collection?" -#~ msgid_plural "" -#~ "do you really want to remove %d selected images from the collection?" -#~ msgstr[0] "ali res želite odstraniti %d izbrano sliko iz zbirke?" -#~ msgstr[1] "ali res želite odstraniti %d izbrani sliki iz zbirke?" -#~ msgstr[2] "ali res želite odstraniti %d izbrane slike iz zbirke?" -#~ msgstr[3] "ali res želite odstraniti %d izbranih slik iz zbirke?" - -#, c-format -#~| msgid "do you really want to send selected image to trash?" -#~ msgid "do you really want to send %d selected image to trash?" -#~ msgid_plural "do you really want to send %d selected images to trash?" -#~ msgstr[0] "ali res želite vreči %d izbrano sliko v smeti?" -#~ msgstr[1] "ali res želite vreči %d izbrani sliki v smeti?" -#~ msgstr[2] "ali res želite vreči %d izbrane slike v smeti?" -#~ msgstr[3] "ali res želite vreči %d izbranih slik v smeti?" - -#~ msgid "trash images?" -#~ msgstr "slike v smeti?" - -#~ msgid " g " -#~ msgstr " g " - -#~ msgid " R " -#~ msgstr " R " - -#~ msgid " G " -#~ msgstr " G " - -#~ msgid " B " -#~ msgstr " B " - -#~ msgid " H " -#~ msgstr " H " - -#~ msgid " S " -#~ msgstr " S " - -#~ msgid " L " -#~ msgstr " L " - -#~ msgid "double click to reset" -#~ msgstr "dvojni klik za začetno nastavitev" - -#~| msgid "chroma" -#~ msgctxt "blendmode" -#~ msgid "chroma" -#~ msgstr "kroma" - -#~ msgctxt "blendmode" -#~ msgid "HSV lightness" -#~ msgstr "HSV svetlost" - -#~ msgctxt "blendmode" -#~ msgid "unbounded (deprecated)" -#~ msgstr "neomejeno (zastarelo)" - -#~ msgid "output image" -#~ msgstr "izhodna slika" - -#~ msgid "input image" -#~ msgstr "vhodna slika" - -#~ msgctxt "accel" -#~ msgid "fusion" -#~ msgstr "zlivanje" - -#~ msgctxt "accel" -#~ msgid "show preset menu" -#~ msgstr "prikaži začetni menu" - -#~ msgid "reset parameters" -#~ msgstr "ponastavi začetne parametre" - -#~ msgid "ctrl+click to add a sharp node" -#~ msgstr "krmilka+klik za dodajanje ostrega vozlišča" - -#~ msgid "ctrl+click to switch between smooth/sharp node" -#~ msgstr "krmilka+klik za preklop med mehkim in ostrim vozliščem" - -#~ msgid "right-click to reset curvature" -#~ msgstr "desni klik za ponastavitev krivulje" - -#~| msgid "ctrl+click to add a sharp node" -#~ msgid "ctrl+click to add a node" -#~ msgstr "krmilka+klik za dodajanje vozlišča" - -#, c-format -#~ msgid "" -#~ "shift+scroll to set feather size, ctrl+scroll to set shape opacity (%d%%)" -#~ msgstr "" -#~ "dvigalka+pomik za določanje velikosti peresa, krmilka+pomik za določanje " -#~ "neprosojnosti oblike (%d%%)" - -#, c-format -#~ msgid "ctrl+scroll to set shape opacity (%d%%)" -#~ msgstr "krmila+pomik za določanje neprosojnosti oblike (%d%%)" - -#~ msgid "move to rotate shape" -#~ msgstr "premakni za sukanje oblike" - -#, c-format -#~ msgid "" -#~ "scroll to set size, shift+scroll to set feather size\n" -#~ "ctrl+scroll to set shape opacity (%d%%)" -#~ msgstr "" -#~ "pomik za določanje velikosti, dvigalka+pomik za določanje velikosti " -#~ "peresa\n" -#~ "krmila+pomik za določanje neprosojnosti oblike (%d%%)" - -#, c-format -#~ msgid "" -#~ "shift+click to switch feathering mode, ctrl+click to rotate\n" -#~ "shift+scroll to set feather size, ctrl+scroll to set shape opacity (%d%%)," -#~ msgstr "" -#~ "dvigalka+klik za preklop rabe mehčanja, krmilka+klik za zasuk\n" -#~ "dvigalka+pomik za določanje velikosti peresa, krmilka+pomik za določanje " -#~ "neprosojnosti oblike (%d%%)," - -#, c-format -#~ msgid "" -#~ "scroll to set brush size, shift+scroll to set hardness,\n" -#~ "ctrl+scroll to set opacity (%d%%)" -#~ msgstr "" -#~ "pomik za določanje velikosti čopiča, dvigalka+pomik za določanje trdote,\n" -#~ "krmilka+pomik za določanje neprosojnosti (%d%%)" - -#, c-format -#~ msgid "scroll to set hardness, ctrl+scroll to set shape opacity (%d%%)" -#~ msgstr "" -#~ "pomik za določanje trdote, krmilka+pomik za določanje neprosojnosti " -#~ "oblike (%d%%)" - -#~ msgid "scroll to set brush size" -#~ msgstr "scroll za nastavitev velikosti čopiča" - -#~| msgid "image information" -#~ msgctxt "accel" -#~ msgid "image operations" -#~ msgstr "operacije na sliki" - -#~ msgctxt "accel" -#~ msgid "increase" -#~ msgstr "povečaj" - -#~ msgctxt "accel" -#~ msgid "decrease" -#~ msgstr "zmanjšaj" - -#~ msgctxt "accel" -#~ msgid "reset" -#~ msgstr "ponastavi" - -#~ msgctxt "accel" -#~ msgid "dynamic" -#~ msgstr "dinamično" - -#~ msgctxt "accel" -#~ msgid "lua" -#~ msgstr "lua" - -#~ msgid "store value as default" -#~ msgstr "shrani vrednost kot privzeto" - -#~ msgid "reset value to default" -#~ msgstr "ponastavi na privzeto vrednost" - -#~ msgctxt "camera import" -#~ msgid "import" -#~ msgstr "uvozi" - -#~ msgid "storage file" -#~ msgstr "datoteka shrambe" - -#~ msgid "" -#~ "do not load files with an extension of .jpg or .jpeg. this can be useful " -#~ "when there are raw+JPEG in a directory." -#~ msgstr "" -#~ "ne nalagaj datotek s podaljškom .jpg ali .jpeg. uporabno, kadar so v mapi " -#~ "tako surove slike kot slike v formatu JPEG." - -#~ msgid "apply metadata on import" -#~ msgstr "uporabi metapodatke za uvoz" - -#~ msgid "" -#~ "select the images from the list below that you want to import into a new " -#~ "filmroll" -#~ msgstr "" -#~ "izberite slike iz spodnjega seznama, ki jih želite uvoziti v naslednji " -#~ "zvitek filma" - -#~ msgid "please use YYYY-MM-DD format for date override" -#~ msgstr "prosim uporabljajte format YYYY-MM-DD za razveljavitev datuma" - -#~ msgctxt "accel" -#~ msgid "tethering view" -#~ msgstr "upravljavski pogled" - -#~ msgctxt "accel" -#~ msgid "lighttable view" -#~ msgstr "pogled osvetljene podlage" - -#~ msgctxt "accel" -#~ msgid "map view" -#~ msgstr "pogled mape" - -#~ msgctxt "accel" -#~ msgid "print view" -#~ msgstr "pogled tiskanja" - -#~ msgctxt "accel" -#~ msgid "toggle fullscreen" -#~ msgstr "preklopi na celoten zaslon" - -#~| msgctxt "accel" -#~| msgid "toggle fullscreen" -#~ msgctxt "accel" -#~ msgid "leave fullscreen" -#~ msgstr "zapusti celotni zaslon" - -#~ msgctxt "accel" -#~ msgid "toggle right panel" -#~ msgstr "preklopi desni panel" - -#~ msgctxt "accel" -#~ msgid "toggle top panel" -#~ msgstr "preklopi vrhnji panel" - -#~ msgctxt "accel" -#~ msgid "toggle bottom panel" -#~ msgstr "preklopi spodnji panel" - -#~| msgid "toggle blend order" -#~ msgctxt "accel" -#~ msgid "toggle header" -#~ msgstr "preklopi glavo" - -#~ msgid "extra" -#~ msgstr "dodatno" - -#~ msgid "show some extra guides" -#~ msgstr "prikaži nekaj dodatnih vodil" - -#~| msgid "golden sections" -#~ msgid "golden mean" -#~ msgstr "zlato povprečje" - -#~| msgid "select parts to copy" -#~ msgid "select parts" -#~ msgstr "izberi dele" - -#~ msgid "normal images" -#~ msgstr "normalne slike" - -#~| msgid "_close" -#~ msgid "close" -#~ msgstr "zapri" - -#~ msgid "press key combination to remap..." -#~ msgstr "pritisnite kombinacijo tipk za ponovno preslikavo..." - -#, c-format -#~ msgid "" -#~ "%s accel is already mapped to\n" -#~ "%s.\n" -#~ "do you want to replace it ?" -#~ msgstr "" -#~ "%s pospeševanje je že dodeljeno\n" -#~ "%s.\n" -#~ "ali ga želite zamenjati ?" - -#~ msgid "accel conflict" -#~ msgstr "konflikt pospeševanja" - -#~ msgid "" -#~ "are you sure you want to restore the default keybindings? this will " -#~ "erase any modifications you have made." -#~ msgstr "" -#~ "ali ste prepričani, da želite obnoviti privzete nastavitve tipk. to bo " -#~ "zbrisalo vse spremembe, ki ste jih naredili." - -#, c-format -#~ msgid "preset %s was successfully saved" -#~ msgstr "prednastavitev %s je bila uspešno shranjena" - -#~ msgid "deflate with predictor (float)" -#~ msgstr "skrči s prediktorjem (tekoče)" - -#, c-format -#~ msgid "[facebook] unexpected URL format\n" -#~ msgstr "[facebook] nepričakovan format spletnega naslova\n" - -#~ msgid "" -#~ "step 1: a new window or tab of your browser should have been loaded. you " -#~ "have to login into your facebook account there and authorize darktable to " -#~ "upload photos before continuing." -#~ msgstr "" -#~ "korak 1: novo okno ali nov zavihek vašega brskalnika mora biti naložen. " -#~ "prijavljeni ste na vaš račun v facebooku in pred nadaljevanjem ste " -#~ "dovolili programu darktable, da prenese fotografije." - -#~ msgid "" -#~ "step 2: paste your browser URL and click the OK button once you are done." -#~ msgstr "" -#~ "korak 2: prilepite vaš spletni naslov iz brskalnika v darktable in " -#~ "kliknite gumb <OK>, ko ste opravili." - -#~ msgid "facebook authentication" -#~ msgstr "overitev na facebooku" - -#~ msgid "URL:" -#~ msgstr "URL:" - -#~ msgid "please enter the validation URL" -#~ msgstr "prosim vnesite spletni naslov za potrditev" - -#~ msgid "the given URL is not valid, it should look like: " -#~ msgstr "vnesen spletni naslov ni veljaven, mora biti podoben: " - -#~ msgid "authentication successful" -#~ msgstr "uspešna overitev" - -#~ msgid "" -#~ "a new window or tab of your browser should have been loaded. you have to " -#~ "login into your facebook account there and authorize darktable to upload " -#~ "photos before continuing." -#~ msgstr "" -#~ "novo okno ali nov zavihek vašega brskalnika bi moral biti naložen. morate " -#~ "se prijaviti ste na vaš račun v facebooku in pred nadaljevanjem morate " -#~ "dovoliti programu darktable, da tja prenese fotografije." - -#~ msgid "new account" -#~ msgstr "novi račun" - -#~ msgid "other account" -#~ msgstr "drugi račun" - -#~ msgid "unable to retrieve the album list" -#~ msgstr "ne morem pridobiti seznama albumov" - -#~ msgid "facebook webalbum" -#~ msgstr "facebookov spletni album" - -#~ msgid "summary" -#~ msgstr "povzetek" - -#~ msgid "privacy" -#~ msgstr "zasebnost" - -#~ msgid "public" -#~ msgstr "javnost" - -#~ msgid "friends of friends" -#~ msgstr "prijatelji prijateljev" - -#~ msgid "unable to create album, no title provided" -#~ msgstr "ne morem ustvariti albuma, nimam naslova" - -#~ msgid "unable to create album" -#~ msgstr "ne morem ustvariti albuma" - -#~ msgid "unable to export photo to webalbum" -#~ msgstr "ne morem izvoziti fotografije v spletni album" - -#, c-format -#~ msgid "%d/%d exported to facebook webalbum" -#~ msgid_plural "%d/%d exported to facebook webalbum" -#~ msgstr[0] "%d/%d izvožena v spletni album na facebook" -#~ msgstr[1] "%d/%d izvoženi v spletni album na facebook" -#~ msgstr[2] "%d/%d izvožene v spletni album na facebook" -#~ msgstr[3] "%d/%d izvoženo v spletni album na facebook" - -#, c-format -#~ msgid "flickr authentication: %s" -#~ msgstr "overitev za flickr: %s" - -#~ msgid "" -#~ "step 1: a new window or tab of your browser should have been loaded. you " -#~ "have to login into your flickr account there and authorize darktable to " -#~ "upload photos before continuing." -#~ msgstr "" -#~ "korak1: novo okno ali nov zavihek vašega brskalnika mora biti naložen. " -#~ "prijavljeni ste na vaš račun v flickrju in pred nadaljevanjem ste " -#~ "dovolili programu darktable, da tja prenese fotografije." - -#~ msgid "step 2: click the OK button once you are done." -#~ msgstr "korak 2: kliknite gumb <OK>, ko ste opravili." - -#~ msgid "flickr authentication" -#~ msgstr "overitev za flickr" - -#~ msgid "flickr webalbum" -#~ msgstr "spletni album na flickr" - -#~ msgid "without album" -#~ msgstr "brez albuma" - -#~ msgid "flickr user" -#~ msgstr "uporabnik flickr" - -#~ msgid "flickr login" -#~ msgstr "prijava na flickr" - -#~ msgid "friends + family" -#~ msgstr "prijatelji + družina" - -#~ msgid "photosets" -#~ msgstr "zbirke fotografij" - -#~ msgid "my new photoset" -#~ msgstr "moja nova zbirka fotografij" - -#~| msgid "images exported from darktable" -#~ msgid "exported from darktable" -#~ msgstr "izvoženo iz darktable" - -#~ msgid "could not upload to flickr!" -#~ msgstr "nisem mogel prenesti na flickr!" - -#, c-format -#~ msgid "%d/%d exported to flickr webalbum" -#~ msgid_plural "%d/%d exported to flickr webalbum" -#~ msgstr[0] "%d/%d izvoženo v spletni album flickr" -#~ msgstr[1] "%d/%d izvoženi v spletni album flickr" -#~ msgstr[2] "%d/%d izvožene v spletni album flickr" -#~ msgstr[3] "%d/%d izvoženo v spletni album flickr" - -#~ msgid "" -#~ "step 1: a new window or tab of your browser should have been loaded. you " -#~ "have to login into your google account there and authorize darktable to " -#~ "upload photos before continuing." -#~ msgstr "" -#~ "korak 1: v novem oknu ali zavihku vašega brskalnika, ki ste ga pognali, " -#~ "se morate prijaviti v vaš uporabniški račun v googlu in s tem omogočite " -#~ "programu darktable, da tja naloži slike pred nadaljevanjem." - -#~ msgid "" -#~ "step 2: paste the verification code shown to you in the browser and click " -#~ "the OK button once you are done." -#~ msgstr "" -#~ "korak 2: prilepite vaš verifikacijsko kodo iz brskalnika v darktable in " -#~ "kliknite gumb <OK>, ko ste opravili." - -#~ msgid "google authentication" -#~ msgstr "googlova overitev" - -#~ msgid "verification code:" -#~ msgstr "koda verifikacije:" - -#~ msgid "please enter the verification code" -#~ msgstr "prosim vnesite kodo verifikacije" - -#~ msgid "google photos" -#~ msgstr "googlove slike" - -#~ msgid "unable to export to google photos album" -#~ msgstr "ne morem izvoziti slik v googlov album" - -#, c-format -#~ msgid "%d/%d exported to google photos album" -#~ msgid_plural "%d/%d exported to google photos album" -#~ msgstr[0] "%d/%d izvoženo v googlov album" -#~ msgstr[1] "%d/%d izvoženih v googlov album" -#~ msgstr[2] "%d/%d izvoženo v googlov album" -#~ msgstr[3] "%d/%d izvoženo v googlov album" - -#~ msgid "perspective correction" -#~ msgstr "popravek perspektive" - -#~ msgctxt "accel" -#~ msgid "rotation" -#~ msgstr "sukanje" - -#~ msgctxt "accel" -#~ msgid "lens shift (v)" -#~ msgstr "pomik lečja (v)" - -#~ msgctxt "accel" -#~ msgid "lens shift (h)" -#~ msgstr "pomik lečja (h)" - -#~ msgctxt "accel" -#~ msgid "shear" -#~ msgstr "ostriži" - -#~ msgid "guides" -#~ msgstr "vodila" - -#~ msgid "automatic fit" -#~ msgstr "avtomatično prileganje" - -#~ msgid "rotate image" -#~ msgstr "zasukaj sliko" - -#~ msgid "display guide lines overlay" -#~ msgstr "prikaži plast z mrežo vodil" - -#~ msgid "remove line structure information" -#~ msgstr "odstrani informacije o strukturi linij" - -#~| msgid "toggle the visibility of the map overlays" -#~ msgid "toggle visibility of structure lines" -#~ msgstr "preklopi vidnost strukturnih linij" - -#~ msgctxt "accel" -#~ msgid "mix" -#~ msgstr "mešalnik" - -#~ msgid "deblur: large blur, strength 4" -#~ msgstr "odstranitev zamegljenosti: velika zamegljenost, moč 4" - -#~ msgid "" -#~ "scale to use in the graph. use logarithmic scale for more precise control " -#~ "near the blacks" -#~ msgstr "" -#~ "merilo pri grafih. uporabljajte logaritmično merilo za natančnejše " -#~ "upravljanje črnin" - -#~| msgctxt "accel" -#~| msgid "middle grey" -#~ msgid "middle grey" -#~ msgstr "srednje siva" - -#~ msgid "local laplacian: inconsistent output" -#~ msgstr "lokalna Laplacova transformacija: nekonsistenten izhod" - -#~ msgctxt "accel" -#~ msgid "radius" -#~ msgstr "polmer" - -#~ msgctxt "accel" -#~ msgid "red" -#~ msgstr "rdeča" - -#~ msgctxt "accel" -#~ msgid "green" -#~ msgstr "zelena" - -#~ msgctxt "accel" -#~ msgid "blue" -#~ msgstr "modra" - -#~ msgctxt "accel" -#~ msgid "size" -#~ msgstr "velikost" - -#~ msgctxt "accel" -#~ msgid "threshold" -#~ msgstr "prag" - -#~ msgctxt "accel" -#~ msgid "strength" -#~ msgstr "moč" - -#~ msgctxt "accel" -#~ msgid "border size" -#~ msgstr "velikost roba" - -#~ msgctxt "accel" -#~ msgid "pick border color from image" -#~ msgstr "izberite barvo roba iz slike" - -#~ msgctxt "accel" -#~ msgid "frame line size" -#~ msgstr "širina črte okvirja" - -#~ msgctxt "accel" -#~ msgid "pick frame line color from image" -#~ msgstr "izberite barvo črte okvirja iz slike" - -#~ msgid "" -#~ "automatic chromatic aberration correction\n" -#~ "disabled for non-Bayer sensors" -#~ msgstr "" -#~ "avtomatična korekcija barvnega odklona\n" -#~ "onemogočena za ne-Bayerjeve senzorje" - -#~ msgid "display guide lines to help compose your photograph" -#~ msgstr "prikaži vodila v pomoč pri kompoziciji vaše slike" - -#~ msgctxt "accel" -#~ msgid "angle" -#~ msgstr "kot" - -#~ msgctxt "accel" -#~ msgid "contrast" -#~ msgstr "kontrast" - -#~ msgctxt "accel" -#~ msgid "brightness" -#~ msgstr "sijavost" - -#~ msgctxt "accel" -#~ msgid "saturation" -#~ msgstr "nasičenje" - -#~ msgid "lift/gamma/gain controls as seen in video editors" -#~ msgstr "nadzor lift/gamma/gain kot ga uporabljajo urejevalniki videov" - -#~ msgctxt "accel" -#~ msgid "mode" -#~ msgstr "način" - -#~| msgid "contrast" -#~ msgctxt "accel" -#~ msgid "controls" -#~ msgstr "kontrole" - -#~ msgid "factor of " -#~ msgstr "faktor " - -#~| msgid "factor of " -#~ msgid "factor of lift" -#~ msgstr "faktor ali dvig" - -#~| msgid "factor of " -#~ msgid "factor of gain" -#~ msgstr "faktor ojačenja" - -#~ msgid "lightness offset" -#~ msgstr "odmik svetlosti" - -#~ msgid "chroma offset green/red" -#~ msgstr "odmik krome zeleno/rdeča" - -#~ msgid "chroma offset blue/yellow" -#~ msgstr "odmik krome modro/rumeno" - -#~ msgid "saturation offset" -#~ msgstr "odmik nasičenosti" - -#~| msgid "green-magenta offset" -#~ msgctxt "accel" -#~ msgid "green vs magenta" -#~ msgstr "zelena proti magenti" - -#~ msgctxt "accel" -#~ msgid "blue vs yellow" -#~ msgstr "modra proti rumeni" - -#~| msgid "green-magenta offset" -#~ msgid "green vs magenta" -#~ msgstr "zelena proti magenti" - -#~ msgid "steepness of the a* curve in Lab" -#~ msgstr "strmina krivulje a* v Lab" - -#~ msgid "blue vs yellow" -#~ msgstr "modra proti rumeni" - -#~ msgid "steepness of the b* curve in Lab" -#~ msgstr "strmina krivulje b* v Lab" - -#~ msgctxt "accel" -#~ msgid "lightness" -#~ msgstr "svetlost" - -#~ msgctxt "accel" -#~ msgid "source mix" -#~ msgstr "mešanje vhodov" - -#~ msgctxt "accel" -#~ msgid "acquire as source" -#~ msgstr "pridobi kot vhod" - -#~ msgctxt "accel" -#~ msgid "acquire as target" -#~ msgstr "pridobi kot cilj" - -#~ msgctxt "accel" -#~ msgid "spatial extent" -#~ msgstr "prostorsko razširjenje" - -#~ msgctxt "accel" -#~ msgid "range extent" -#~ msgstr "raz" - -#~ msgctxt "accel" -#~ msgid "hue" -#~ msgstr "odtenek" - -#~ msgctxt "accel" -#~ msgid "edge threshold" -#~ msgstr "prag roba" - -#~ msgid "PPG (fast)" -#~ msgstr "PPG (hitro)" - -#~ msgid "AMaZE (slow)" -#~ msgstr "AMaZE (počasi)" - -#~ msgid "demosaicing raw data method" -#~ msgstr "metoda za odstr. moz. iz sur. slik" - -#~ msgid "Markesteijn 3-pass (slow)" -#~ msgstr "Markesteijn 3-prehodi (počasi)" - -#~ msgid "two times" -#~ msgstr "dvakratno" - -#~ msgid "chroma (use on 1st instance)" -#~ msgstr "barvitost (uporabi na prvem pojavku)" - -#~ msgid "luma (use on 2nd instance)" -#~ msgstr "kroma (uporabi na drugem pojavku)" - -#~ msgid "scattering (coarse-grain noise)" -#~ msgstr "razmetano (grobo zrnati šum)" - -#~ msgid "central pixel weight (details)" -#~ msgstr "utež centralnega piksla (podrobnosti)" - -#~ msgctxt "accel" -#~ msgid "black" -#~ msgstr "črna" - -#~ msgctxt "accel" -#~ msgid "exposure" -#~ msgstr "osvetlitev" - -#~ msgctxt "accel" -#~ msgid "auto-exposure" -#~ msgstr "samodejna osvetlitev" - -#~ msgctxt "accel" -#~ msgid "percentile" -#~ msgstr "odstotek" - -#~ msgctxt "accel" -#~ msgid "target level" -#~ msgstr "raven cilja" - -#~ msgid "middle grey luminance" -#~ msgstr "svetlost srednje sive" - -#~ msgid "" -#~ "number of stops between middle grey and pure white.\n" -#~ "this is a reading a lightmeter would give you on the scene.\n" -#~ "adjust so highlights clipping is avoided" -#~ msgstr "" -#~ "število stopenj med srednje sivo in čisto belo.\n" -#~ "to vrednost bi dal tudi svetlomer na sceni.\n" -#~ "prilagodi tako, da se izognete obrezovanju bleščav" - -#~ msgid "" -#~ "number of stops between middle grey and pure black.\n" -#~ "this is a reading a lightmeter would give you on the scene.\n" -#~ "increase to get more contrast.\n" -#~ "decrease to recover more details in low-lights." -#~ msgstr "" -#~ "število stopenj med srednje sivo in čisto črno.\n" -#~ "to vrednost bi dal tudi svetlomer na sceni.\n" -#~ "povečajte, če želite več kontrasta.\n" -#~ "zmanjšajte za omogočanje več podrobnosti v senčnih delih." - -#~ msgid "target middle grey" -#~ msgstr "ciljna srednja siva" - -#~| msgid "" -#~| "middle grey value of the target display or color space.\n" -#~| "you should never touch that unless you know what you are doing." -#~ msgid "" -#~ "midde grey value of the target display or color space.\n" -#~ "you should never touch that unless you know what you are doing." -#~ msgstr "" -#~ "vrednost srednjih sivin ciljnega prikaza ali barvnega prostora.\n" -#~ "ne dotikajte se tega, razen če res veste, kaj delate." - -#~ msgid "07 EV dynamic range" -#~ msgstr "07 EV dinamični razpon" - -#~ msgid "09 EV dynamic range" -#~ msgstr "09 EV dinamični razpon" - -#~ msgid "11 EV dynamic range" -#~ msgstr "11 EV dinamični razpon" - -#~ msgid "13 EV dynamic range" -#~ msgstr "13 EV dinamični razpon" - -#~ msgid "15 EV (backlighting)" -#~ msgstr "15 EV (svetloba od zadaj)" - -#~ msgid "17 EV (HDR)" -#~ msgstr "17 EV (HDR)" - -#~ msgctxt "accel" -#~ msgid "white exposure" -#~ msgstr "osvetlitev beline" - -#~ msgctxt "accel" -#~ msgid "black exposure" -#~ msgstr "osvetlitev črne" - -#~ msgctxt "accel" -#~ msgid "middle grey luminance" -#~ msgstr "svetlost srednje sive" - -#~ msgctxt "accel" -#~ msgid "dynamic range scaling" -#~ msgstr "upravljanje merila dinamičnega razpona" - -#~ msgctxt "accel" -#~ msgid "latitude" -#~ msgstr "širina" - -#~| msgid "shadows/highlights balance" -#~ msgctxt "accel" -#~ msgid "shadows/highlights balance" -#~ msgstr "uravnoteženost sence/bleščave" - -#~ msgctxt "accel" -#~ msgid "extreme luminance saturation" -#~ msgstr "nasičenost ekstremne svetlosti" - -#~| msgctxt "accel" -#~| msgid "target power transfer function" -#~ msgid "target power transfer function" -#~ msgstr "funkcija ciljnega prenosa moči" - -#~ msgid "rotate" -#~ msgstr "zasukaj" - -#~ msgctxt "modulename" -#~ msgid "gamma" -#~ msgstr "gama" - -#~ msgctxt "accel" -#~ msgid "density" -#~ msgstr "gostota" - -#~ msgctxt "accel" -#~ msgid "compression" -#~ msgstr "stiskanje" - -#, c-format -#~| msgid "[%s on line] change hardness" -#~ msgid "[%s on line] change compression" -#~ msgstr "[%s on line] spremeni stiskanje" - -#~ msgctxt "accel" -#~ msgid "coarseness" -#~ msgstr "zrnatost" - -#~ msgid "midtones bias" -#~ msgstr "pristranskost srednjih tonov" - -#~ msgctxt "accel" -#~ msgid "sharpness" -#~ msgstr "ostrina" - -#~ msgctxt "accel" -#~ msgid "contrast boost" -#~ msgstr "porast kontrasta" - -#~ msgctxt "accel" -#~ msgid "pick color of film material from image" -#~ msgstr "izberite barvo filma iz slike" - -#~ msgctxt "accel" -#~ msgid "scale" -#~ msgstr "merilo" - -#~ msgctxt "accel" -#~ msgid "TCA R" -#~ msgstr "TCA R" - -#~ msgctxt "accel" -#~ msgid "TCA B" -#~ msgstr "TCA B" - -#~ msgctxt "accel" -#~ msgid "find camera" -#~ msgstr "išči kamero" - -#~ msgctxt "accel" -#~ msgid "find lens" -#~ msgstr "išči objektive" - -#~ msgctxt "accel" -#~ msgid "auto scale" -#~ msgstr "avtomatsko merilo" - -#~ msgctxt "accel" -#~ msgid "lens model" -#~ msgstr "model objektiva" - -#~ msgctxt "accel" -#~ msgid "select corrections" -#~ msgstr "izberite popravke" - -#~ msgid "try to locate your camera/lens in the above two menus" -#~ msgstr "poskusite najti objektiv oz. kamero v zgornjih dveh menujih" - -#~ msgid "point tool: draw points" -#~ msgstr "orodje za točke: nariši točke" - -#~ msgid "line tool: draw lines" -#~ msgstr "orodje za linije: nariši linije" - -#~ msgid "curve tool: draw curves" -#~ msgstr "orodje za krivulje: nariši krivulje" - -#~ msgctxt "accel" -#~ msgid "point tool" -#~ msgstr "orodje za točke" - -#~ msgctxt "accel" -#~ msgid "line tool" -#~ msgstr "orodje za linije" - -#~ msgctxt "accel" -#~ msgid "curve tool" -#~ msgstr "orodje za krivulje" - -#~ msgctxt "accel" -#~ msgid "node tool" -#~ msgstr "orodje za vozlišča" - -#~ msgctxt "accel" -#~ msgid "blue shift" -#~ msgstr "modra noč" - -#~ msgid "filter order" -#~ msgstr "vrstni red filtrov" - -#~| msgid "4th order speed" -#~ msgid "0th order" -#~ msgstr "0. red" - -#~| msgid "2nd order speed" -#~ msgid "2nd order" -#~ msgstr "2. red" - -#~ msgid "filter order of gaussian blur" -#~ msgstr "vrstni red filtra Gaussovega zameglevanja" - -#~ msgctxt "lowpass" -#~ msgid "brightness" -#~ msgstr "sijavost" - -#, c-format -#~ msgid "invalid png header from %s" -#~ msgstr "pokvarjena glava png na %s" - -#~ msgid "hald cluts (png)" -#~ msgstr "hald cluts (png)" - -#~ msgid "3D lut (cube)" -#~ msgstr "3d lut (kocka)" - -#~ msgid "select a png (haldclut) or a cube file" -#~ msgstr "izberite png (haldclut) ali datoteko kocke" - -#~| msgid "" -#~| "the file path (relative to lut folder) is saved with image (and not the " -#~| "lut data themselves)" -#~ msgid "" -#~ "the file path (relative to lut folder) is saved with image (and not the " -#~ "lut data themselves)\n" -#~ "CAUTION: lut folder must be set in preferences/core options/miscellaneous " -#~ "before choosing the lut file" -#~ msgstr "" -#~ "pot datoteke (relativno glede na mapo tabele iskanja) je shranjena skupaj " -#~ "s sliko (toda ne skupaj s podatki tabele iskanja) OPOZORILO: mapa tabele " -#~ "iskanja mora biti določena v preferencah/jedrne možnosti/razno pred " -#~ "izbiro datoteke seznama tabele iskanja" - -#~ msgid "REC.709" -#~ msgstr "REC.709" - -#~ msgid "lin sRGB/REC.709" -#~ msgstr "lin sRGB/REC.709" - -#~| msgid "linear ProPhoto RGB" -#~ msgid "lin prophoto RGB" -#~ msgstr "lin prophoto RGB" - -#~ msgctxt "accel" -#~ msgid "luma" -#~ msgstr "luma" - -#~ msgctxt "accel" -#~ msgid "chroma" -#~ msgstr "barvitost" - -#~ msgctxt "accel" -#~ msgid "linear" -#~ msgstr "linearni" - -#~ msgctxt "accel" -#~ msgid "gamma" -#~ msgstr "gama" - -#~ msgctxt "accel" -#~ msgid "dynamic range" -#~ msgstr "dinamični razpon" - -#~| msgid "white point" -#~ msgctxt "accel" -#~ msgid "grey point" -#~ msgstr "siva točka" - -#~ msgctxt "accel" -#~ msgid "shadows range" -#~ msgstr "obseg senc" - -#~| msgctxt "accel" -#~| msgid "middle grey luma" -#~ msgid "middle grey luma" -#~ msgstr "luma srednje sive" - -#~ msgctxt "accel" -#~ msgid "noise threshold" -#~ msgstr "prag šuma" - -#~| msgid "crop y" -#~ msgid "crop x" -#~ msgstr "obreži x" - -#~ msgid "crop y" -#~ msgstr "obreži y" - -#~ msgid "crop width" -#~ msgstr "širina obreze" - -#, c-format -#~| msgid "black level 0" -#~ msgid "black level %i" -#~ msgstr "raven črne %i" - -#~ msgctxt "accel" -#~ msgid "white point" -#~ msgstr "bela točka" - -#~ msgctxt "accel" -#~ msgid "width" -#~ msgstr "širina" - -#~ msgid "# shapes:" -#~ msgstr "# oblike:" - -#~ msgctxt "accel" -#~ msgid "retouch tool circle" -#~ msgstr "krog orodij retuširanja" - -#~ msgctxt "accel" -#~ msgid "retouch tool ellipse" -#~ msgstr "elipsa orodij retuširanja" - -#~ msgctxt "accel" -#~ msgid "retouch tool path" -#~ msgstr "pot orodij retuširanja" - -#~ msgctxt "accel" -#~ msgid "retouch tool brush" -#~ msgstr "čopič orodij retuširanja" - -#~ msgctxt "accel" -#~ msgid "continuous add circle" -#~ msgstr "krog stalnega dodajanja" - -#~ msgctxt "accel" -#~ msgid "continuous add ellipse" -#~ msgstr "elipsa stalnega dodajanja" - -#~ msgctxt "accel" -#~ msgid "continuous add path" -#~ msgstr "pot stalnega dodajanja" - -#~ msgctxt "accel" -#~ msgid "continuous add brush" -#~ msgstr "čopič stalnega dodajanja" - -#~ msgid " R " -#~ msgstr " R " - -#~ msgid " G " -#~ msgstr " G " - -#~ msgid " B " -#~ msgstr " B " - -#~ msgid "pick GUI color from image" -#~ msgstr "izberite barvo s slike" - -#~ msgctxt "accel" -#~ msgid "shadows" -#~ msgstr "sence" - -#~ msgctxt "accel" -#~ msgid "highlights" -#~ msgstr "bleščave" - -#~ msgctxt "accel" -#~ msgid "white point adjustment" -#~ msgstr "nastavitev točke beline" - -#~ msgctxt "accel" -#~ msgid "shadows color correction" -#~ msgstr "popravek barv v senci" - -#~ msgctxt "accel" -#~ msgid "highlights color correction" -#~ msgstr "popravek barv v bleščavah" - -#~ msgctxt "accel" -#~ msgid "amount" -#~ msgstr "znesek" - -#~ msgctxt "accel" -#~ msgid "pick primary color" -#~ msgstr "izberi primarno barvo" - -#~ msgctxt "accel" -#~ msgid "pick secondary color" -#~ msgstr "izberi sekundarno barvo" - -#~ msgctxt "accel" -#~ msgid "balance" -#~ msgstr "ravnotežje" - -#~ msgctxt "accel" -#~ msgid "spot circle tool" -#~ msgstr "orodje za kroge" - -#~ msgctxt "accel" -#~ msgid "spot ellipse tool" -#~ msgstr "orodje elipsaste točke" - -#~ msgctxt "accel" -#~ msgid "spot path tool" -#~ msgstr "orodje za poti" - -#~| msgctxt "accel" -#~| msgid "show or hide shapes" -#~ msgctxt "accel" -#~ msgid "spot show or hide" -#~ msgstr "prikaži piko ali skrij" - -#~ msgctxt "accel" -#~ msgid "tint" -#~ msgstr "odtenek" - -#~ msgctxt "accel" -#~ msgid "temperature" -#~ msgstr "temperatura" - -#~| msgctxt "accel" -#~| msgid "preset/camera neutral" -#~ msgctxt "accel" -#~ msgid "preset/camera" -#~ msgstr "prednastavitve/kamera" - -#~ msgctxt "accel" -#~ msgid "preset/camera neutral" -#~ msgstr "prednastavitve/nevtralna kamera" - -#~ msgctxt "accel" -#~ msgid "preset/spot" -#~ msgstr "prednastavitve/točkovno merjenje" - -#~ msgctxt "white balance" -#~ msgid "camera" -#~ msgstr "kamera" - -#~ msgctxt "white balance" -#~ msgid "camera neutral" -#~ msgstr "nevtralna kamera" - -#~ msgctxt "white balance" -#~ msgid "spot" -#~ msgstr "točka" - -#~ msgid " L " -#~ msgstr " L " - -#~ msgid " a " -#~ msgstr " a " - -#~ msgid " b " -#~ msgstr " b " - -#~ msgid "log" -#~ msgstr "log" - -#~ msgid "base of the logarithm" -#~ msgstr "osnova logaritma" - -#~| msgid "midtones" -#~ msgctxt "accel" -#~ msgid "midtones" -#~ msgstr "srednji toni" - -#~ msgctxt "accel" -#~ msgid "filter diffusion" -#~ msgstr "difuzija filtrov" - -#~ msgctxt "accel" -#~ msgid "smoothing diameter" -#~ msgstr "premer glajenja" - -#~| msgid "edges refinement/feathering" -#~ msgctxt "accel" -#~ msgid "edges refinement/feathering" -#~ msgstr "izboljšanje/mehčanje robov s peresi" - -#~ msgctxt "accel" -#~ msgid "mask quantization" -#~ msgstr "kvantizacija maske" - -#~ msgctxt "accel" -#~ msgid "mask exposure compensation" -#~ msgstr "kompenzacija osvetlitve maske" - -#~ msgctxt "accel" -#~ msgid "mask contrast compensation" -#~ msgstr "kompenzacija kontrasta maske" - -#~| msgid "mask blending : landscapes" -#~ msgid "mask blending : none" -#~ msgstr "mešanje maske : nič" - -#~ msgid "mask blending : landscapes" -#~ msgstr "mešanje maske : pokrajine" - -#~| msgid "mask blending : landscapes" -#~ msgid "mask blending : isolated subjects" -#~ msgstr "mešanje maske : izolirani subjekti" - -#~| msgid "compress shadows/highlights (eigf) : soft" -#~ msgid "compress shadows/highlights : soft" -#~ msgstr "stiskanje senc/bleščav : mehko" - -#~| msgid "compress shadows/highlights (gf) : strong" -#~ msgid "compress shadows/highlights : strong" -#~ msgstr "stiskanje senc/bleščav : močno" - -#~ msgid "" -#~ "'no' affects global and local contrast (safe if you only add contrast)\n" -#~ "'guided filter' only affects global contrast and tries to preserve local " -#~ "contrast\n" -#~ "'averaged guided filter' is a geometric mean of both methods" -#~ msgstr "" -#~ "'ne' vpliva na globalni in lokalni kontrast (varno je le dodajanje " -#~ "kontrasta)\n" -#~ "'vodeni filter' vpliva samo na globalni kontrast in poskuša ohraniti " -#~ "lokalni kontrast\n" -#~ "'vodeni filter povprečij' je geometrijsko povprečje obeh metod" - -#~ msgctxt "accel" -#~ msgid "contrast compression" -#~ msgstr "stisni kontrast" - -#~ msgctxt "accel" -#~ msgid "vibrance" -#~ msgstr "živost (vibrance)" - -#~ msgctxt "accel" -#~ msgid "mid-tones bias" -#~ msgstr "poudarjanje srednjih tonov" - -#~ msgctxt "accel" -#~ msgid "fall-off strength" -#~ msgstr "moč odstranjevanja" - -#~ msgctxt "accel" -#~ msgid "horizontal center" -#~ msgstr "vodoravni center" - -#~ msgctxt "accel" -#~ msgid "vertical center" -#~ msgstr "navpični center" - -#~ msgctxt "accel" -#~ msgid "shape" -#~ msgstr "oblika" - -#~ msgctxt "accel" -#~ msgid "width-height ratio" -#~ msgstr "razmerje širina/višina" - -#~ msgctxt "accel" -#~ msgid "dithering" -#~ msgstr "stresanje" - -#~ msgctxt "accel" -#~ msgid "opacity" -#~ msgstr "neprosojnost" - -#~ msgctxt "accel" -#~ msgid "x offset" -#~ msgstr "odmik x" - -#~ msgctxt "accel" -#~ msgid "y offset" -#~ msgstr "odmik y" - -#~ msgctxt "size" -#~ msgid "image" -#~ msgstr "slika" - -#~| msgid "select images" -#~ msgid "collect images" -#~ msgstr "zberi slike" - -#, no-c-format -#~ msgid "type your query, use `%' as wildcard" -#~ msgstr "vnesite vašo poizvedbo, uporabite '%' za vse" - -#~ msgid "area" -#~ msgstr "območje" - -#~ msgid "" -#~ "copy part history stack of\n" -#~ "first selected image" -#~ msgstr "" -#~ "kopiraj del zgodovine sprememb\n" -#~ "za prvo izbrano sliko" - -#~ msgid "copy all" -#~ msgstr "kopiraj vse" - -#~| msgid "paste" -#~ msgid "paste..." -#~ msgstr "prilepi..." - -#~ msgid "" -#~ "paste part history stack to\n" -#~ "all selected images" -#~ msgstr "" -#~ "kopiraj del zgodovine sprememb\n" -#~ "za vse izbrane slike" - -#~| msgctxt "accel" -#~| msgid "paste all" -#~ msgid "paste all" -#~ msgstr "prilepi vse" - -#~ msgctxt "accel" -#~ msgid "copy all" -#~ msgstr "kopiraj vse" - -#~ msgctxt "accel" -#~ msgid "paste all" -#~ msgstr "prilepi vse" - -#~ msgid "existing duplicates" -#~ msgstr "obstoječi duplikati" - -#~ msgid "export selected" -#~ msgstr "izvozi izbrano" - -#~ msgid "" -#~ "maximum output width\n" -#~ "set to 0 for no scaling" -#~ msgstr "" -#~ "največja širina izhoda\n" -#~ "nastavi na 0 brez spremembe merila" - -#~ msgid "" -#~ "maximum output height\n" -#~ "set to 0 for no scaling" -#~ msgstr "" -#~ "največja višina izhoda\n" -#~ "nastavi na 0 brez spremembe merila" - -#~ msgid "max size" -#~ msgstr "največja velikost" - -#~ msgid "edit metadata exportation details" -#~ msgstr "uredi podrobnosti izvoza metapodatkov" - -#~ msgid "" -#~ "enter the time shown on the selected picture\n" -#~ "format: hh:mm:ss" -#~ msgstr "" -#~ "vnesite čas prikazan na izbrani sliki\n" -#~ "format hh:mm:ss" - -#~ msgid "" -#~ "time offset\n" -#~ "format: [+-]?[[hh:]mm:]ss" -#~ msgstr "" -#~ "časovni zamik\n" -#~ "format: [+-]?[[hh:]mm:]ss" - -#~ msgid "calculate the time offset from an image" -#~ msgstr "izračunaj časovni zamik iz slike" - -#~| msgid "set mode to waveform" -#~ msgid "set histogram mode to waveform" -#~ msgstr "nastavi način histograma na valovanje" - -#~ msgid "trash" -#~ msgstr "smeti" - -#~ msgid "send file to trash" -#~ msgstr "pošlji datoteko v smeti" - -#~ msgid "remove from the collection" -#~ msgstr "odstrani iz zbirke" - -#~ msgctxt "accel" -#~ msgid "remove from collection" -#~ msgstr "odstrani iz zbirke" - -#~| msgctxt "accel" -#~| msgid "delete from disk using trash if possible" -#~ msgctxt "accel" -#~ msgid "delete from disk or send to trash" -#~ msgstr "zbriši z diska ali vrzi v smeti" - -#~ msgctxt "accel" -#~ msgid "scan for devices" -#~ msgstr "preglej vse naprave" - -#~ msgctxt "accel" -#~ msgid "import image" -#~ msgstr "uvozi sliko" - -#~ msgctxt "accel" -#~ msgid "import folder" -#~ msgstr "uvozi mapo" - -#~ msgid "no supported devices found" -#~ msgstr "ni najdenih podprtih naprav" - -#~ msgid "import options" -#~ msgstr "nastavitve uvoza" - -#~| msgid "import folders recursively" -#~ msgid "import directories recursively" -#~ msgstr "rekurzivno uvozi imenike" - -#~| msgid "" -#~| "recursively import subfolders. Each folder goes into a new film roll." -#~ msgid "" -#~ "recursively import subdirectories. each directory goes into a new film " -#~ "roll." -#~ msgstr "" -#~ "rekurzivno uvozi podimenike. vsak imenik uporabi kot nov zvitek filma." - -#~ msgid "file has unknown format!" -#~ msgstr "datoteka neznanega formata!" - -#~ msgid "import film" -#~ msgstr "uvozi film" - -#~ msgid "image..." -#~ msgstr "slika..." - -#~ msgid "select one or more images to import" -#~ msgstr "izberite eno ali več slik za uvoz" - -#~ msgid "folder..." -#~ msgstr "mapa..." - -#~| msgid "select file to import" -#~ msgid "select a folder to import as film roll" -#~ msgstr "izberi mapo za uvoz kot filmski zvitek" - -#~| msgctxt "accel" -#~| msgid "scan for devices" -#~ msgid "scan for devices" -#~ msgstr "preglej naprave" - -#~ msgid "scan for newly attached devices" -#~ msgstr "preišči na novo priključene naprave" - -#, c-format -#~ msgid "edit `%s'" -#~ msgstr "uredi '%s'" - -#~ msgctxt "accel" -#~ msgid "clear" -#~ msgstr "očisti" - -#~ msgid "remove metadata from selected images" -#~ msgstr "odstrani metapodatke iz izbranih slik" - -#~ msgid "all rights reserved." -#~ msgstr "vse pravice pridržane." - -#~ msgid "copyright" -#~ msgstr "copyright" - -#~ msgid "show only your favourite modules (selected in `more modules' below)" -#~ msgstr "" -#~ "prikaži samo vaše priljubljene module (izbrane v 'več modulov' spodaj)" - -#~ msgid "basic group" -#~ msgstr "osnovna skupina" - -#~ msgid "tone group" -#~ msgstr "skupina odtenkov" - -#~ msgid "color group" -#~ msgstr "skupina barv" - -#~ msgid "correction group" -#~ msgstr "skupina popravkov" - -#~| msgid "effects" -#~ msgid "effects group" -#~ msgstr "grupa učinkov" - -#~ msgid "search module" -#~ msgstr "modul iskanja" - -#~| msgid "remove module" -#~ msgid "more modules" -#~ msgstr "več modulov" - -#~ msgid "subset: no module" -#~ msgstr "podmnožica: ni modula" - -#~| msgid "subset: default modules" -#~ msgid "subset: all modules" -#~ msgstr "podmnožica: vsi moduli" - -#~ msgid "subset: default modules" -#~ msgstr "podmnožica: privzeti moduli" - -#~ msgid "workspace: all-purpose" -#~ msgstr "delovni prostor: vse namenski" - -#~ msgid "workspace: landscape & HDR" -#~ msgstr "delovni prostor: pokrajine & HDR" - -#~ msgid "workspace: architecture & streets" -#~ msgstr "delovni prostor: arhitektura in ulična fotografija" - -#~ msgid "workspace: portrait & beauty" -#~ msgstr "delovni prostor: portreti in glamour" - -#~ msgid "workspace: lowlight & high ISO" -#~ msgstr "delovni prostor: malo svetlobe & visok ISO" - -#~ msgid "subset: creative modules only" -#~ msgstr "podmnožica: samo kreativni moduli" - -#~ msgid "subset: technical modules only" -#~ msgstr "podmnožica: samo tehnični moduli" - -#~ msgctxt "accel" -#~ msgid "delete" -#~ msgstr "briši" - -#, c-format -#~| msgid "do you really want to delete the preset `%s'?" -#~ msgid "do you really want to delete style '%s'?" -#~ msgstr "ali res želite brisati slog '%s'?" - -#~| msgid "select style" -#~ msgid "delete style?" -#~ msgstr "naj zbrišem slog?" - -#~| msgid "edit the selected styles in list above" -#~ msgid "deletes the selected style in list above" -#~ msgstr "zbriše izbrane sloge v seznamu zgoraj" - -#, c-format -#~ msgid "tag: %s " -#~ msgstr "značka: %s " - -#~ msgid "delete branch" -#~ msgstr "briši vejo" - -#~ msgid "'|' character is not allowed to create a tag. aborting." -#~ msgstr "znak '|' ni dovoljen za tvorbo značk. prekinjam." - -#~ msgid "edit tag" -#~ msgstr "uredi značko" - -#~ msgid "rename path?" -#~ msgstr "preimenuj pot?" - -#~ msgid "edit tag..." -#~ msgstr "uredi značko..." - -#~| msgid "rename path?" -#~ msgid "rename path..." -#~ msgstr "preimenuj pot..." - -#~| msgid "" -#~| "toggle green label\n" -#~| "of selected images" -#~ msgid "" -#~ "toggle red label\n" -#~ "of selected images" -#~ msgstr "" -#~ "preklopi rdečo oznako\n" -#~ "izbranih slik" - -#~ msgid "" -#~ "toggle yellow label\n" -#~ "of selected images" -#~ msgstr "" -#~ "preklopi rumeno oznako\n" -#~ "izbranih slik" - -#~ msgid "" -#~ "toggle green label\n" -#~ "of selected images" -#~ msgstr "" -#~ "preklopi zeleno oznako\n" -#~ "izbranih slik" - -#~ msgid "" -#~ "toggle blue label\n" -#~ "of selected images" -#~ msgstr "" -#~ "preklopi modro oznako\n" -#~ "izbranih slik" - -#~ msgid "" -#~ "toggle purple label\n" -#~ "of selected images" -#~ msgstr "" -#~ "preklopi vijolično oznako\n" -#~ "izbranih slik" - -#~ msgid "clear all labels of selected images" -#~ msgstr "odstrani vse oznake od izbranih slik" - -#~ msgctxt "accel" -#~ msgid "rate 0" -#~ msgstr "ocena 0" - -#~ msgctxt "accel" -#~ msgid "rate 1" -#~ msgstr "ocena 1" - -#~ msgctxt "accel" -#~ msgid "rate 2" -#~ msgstr "ocena 2" - -#~ msgctxt "accel" -#~ msgid "rate 3" -#~ msgstr "ocena 3" - -#~ msgctxt "accel" -#~ msgid "rate 4" -#~ msgstr "ocena 4" - -#~ msgctxt "accel" -#~ msgid "rate 5" -#~ msgstr "ocena 5" - -#~| msgid "image rejected" -#~ msgctxt "accel" -#~ msgid "rate reject" -#~ msgstr "ocena zavrnjena" - -#~ msgctxt "accel" -#~ msgid "color red" -#~ msgstr "rdeča barva" - -#~ msgctxt "accel" -#~ msgid "color yellow" -#~ msgstr "rumena barva" - -#~| msgctxt "blendmode" -#~| msgid "color burn" -#~ msgctxt "accel" -#~ msgid "color blue" -#~ msgstr "barva modra" - -#~ msgctxt "accel" -#~ msgid "color purple" -#~ msgstr "škrlatna barva" - -#~| msgid "show image overlays" -#~ msgid "hide image overlays" -#~ msgstr "skrij plasti slik" - -#~ msgid "show image overlays" -#~ msgstr "prikaži plasti slik" - -#~ msgid "do you want to access https://darktable.gitlab.io/doc/?" -#~ msgstr "ali želite dostopati do https://darktable.gitlab.io/doc/?" - -#~| msgctxt "accel" -#~| msgid "toggle zoomable lighttable layout" -#~ msgid "zoomable light table" -#~ msgstr "povečevalna osvetljena podlaga" - -#~ msgid "file manager" -#~ msgstr "upravljalnik datotek" - -#~ msgid "culling" -#~ msgstr "izločanje" - -#~ msgid "dynamic zoom" -#~ msgstr "dinamični zoom" - -#~| msgid "quick access to presets" -#~ msgid "quick access to presets of your favorites" -#~ msgstr "hitri dostop do začetnih nastavitev vaših priljubljenih" - -#~ msgid "" -#~ "toggle over/under exposed indication\n" -#~ "right click for options" -#~ msgstr "" -#~ "preklop indikatorja pre/pod osvetljenosti\n" -#~ "desni klik za več možnosti" - -#~ msgid "threshold of what shall be considered underexposed" -#~ msgstr "prag pod katerim se vse smatra za podosvetljeno" - -#~ msgid "threshold of what shall be considered overexposed" -#~ msgstr "prag nad katerim se vse smatra za preosvetljeno" - -#~ msgid "display intent" -#~ msgstr "namen prikaza" - -#~| msgid "preview display profile" -#~ msgid "preview display intent" -#~ msgstr "predogled namena prikaza" - -#~| msgid "update filmstrip" -#~ msgctxt "accel" -#~ msgid "toggle film strip" -#~ msgstr "preklopi kos filma" - -#~ msgctxt "accel" -#~ msgid "raw overexposed" -#~ msgstr "preklopi indikator preosvetljenosti" - -#~ msgctxt "accel" -#~ msgid "overexposed" -#~ msgstr "preosvetljene" - -#, c-format -#~ msgid "you have reached the start of your selection (%d image)" -#~ msgid_plural "you have reached the start of your selection (%d images)" -#~ msgstr[0] "prišli ste do začetka vašega izbora (%d slika)" -#~ msgstr[1] "prišli ste do začetka vašega izbora (%d sliki)" -#~ msgstr[2] "prišli ste do začetka vašega izbora (%d slike)" -#~ msgstr[3] "prišli ste do začetka vašega izbora (%d slik)" - -#, c-format -#~ msgid "you have reached the end of your selection (%d image)" -#~ msgid_plural "you have reached the end of your selection (%d images)" -#~ msgstr[0] "prišli ste do konca vašega izbora (%d slika)" -#~ msgstr[1] "prišli ste do konca vašega izbora (%d sliki)" -#~ msgstr[2] "prišli ste do konca vašega izbora (%d slike)" -#~ msgstr[3] "prišli ste do konca vašega izbora (%d slik)" - -#~ msgctxt "accel" -#~ msgid "navigate up" -#~ msgstr "napotite gor" - -#~ msgctxt "accel" -#~ msgid "navigate down" -#~ msgstr "napotite dol" - -#~ msgctxt "accel" -#~ msgid "navigate page up" -#~ msgstr "napotite eno stran navzgor" - -#~ msgctxt "accel" -#~ msgid "navigate page down" -#~ msgstr "napotite eno stran navzdol" - -#~ msgctxt "accel" -#~ msgid "scroll up" -#~ msgstr "zvijaj gor" - -#~| msgid "scroll" -#~ msgctxt "accel" -#~ msgid "scroll down" -#~ msgstr "pomik dol" - -#~ msgctxt "accel" -#~ msgid "scroll left" -#~ msgstr "zvijaj v levo" - -#~ msgctxt "accel" -#~ msgid "scroll right" -#~ msgstr "zvijaj v desno" - -#~ msgctxt "accel" -#~ msgid "scroll center" -#~ msgstr "zvijaj center" - -#~ msgctxt "accel" -#~ msgid "preview with focus detection" -#~ msgstr "predogled z detekcijo goriščne razdalje" - -#~| msgctxt "accel" -#~| msgid "toggle sticky preview mode" -#~ msgctxt "accel" -#~ msgid "sticky preview" -#~ msgstr "lepljivi predogled" - -#~| msgctxt "accel" -#~| msgid "preview with focus detection" -#~ msgctxt "accel" -#~ msgid "sticky preview with focus detection" -#~ msgstr "lepljivi predogled z detekcijo goriščne razdalje" - -#~ msgctxt "accel" -#~ msgid "toggle timeline" -#~ msgstr "preklopi časovni trak" - -#~ msgid "+Scroll" -#~ msgstr "+Scroll" - -#~ msgid "Accel" -#~ msgstr "Pospeševanje" - -#~ msgid "global" -#~ msgstr "globalni" - -#~ msgid "version of the spline generator" -#~ msgstr "verzija generatorja zlepkov" - -#~ msgid "update database from selected xmp files" -#~ msgstr "posodobi bazo podatkov iz izbranih datotek xmp" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/rate 0" -#~ msgstr "ogledov/tabela sličic/ocena 0" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/rate 1" -#~ msgstr "ogledov/tabela sličic/ocena 1" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/rate 2" -#~ msgstr "ogledov/tabela sličic/ocena 2" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/rate 3" -#~ msgstr "ogledov/tabela sličic/ocena 3" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/rate 4" -#~ msgstr "ogledov/tabela sličic/ocena 4" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/rate 5" -#~ msgstr "ogledov/tabela sličic/ocena 5" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/rate reject" -#~ msgstr "ogledov/tabela sličic/ocena zavrni" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/copy history" -#~ msgstr "ogledov/tabela sličic/kopiraj zgodovino" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/copy history parts" -#~ msgstr "ogledov/tabela sličic/kopiraj dele zgodovine" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/paste history" -#~ msgstr "ogledov/tabela sličic/prilepi zgodovino" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/paste history parts" -#~ msgstr "ogledov/tabela sličic/prilepi dele zgodovine" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/discard history" -#~ msgstr "ogledov/tabela sličic/zavrzi zgodovino" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/duplicate image" -#~ msgstr "ogledov/tabela sličic/dupliciraj sliko" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/duplicate image virgin" -#~ msgstr "ogledov/tabela sličic/dupliciraj izvorno sliko" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/color red" -#~ msgstr "ogledov/tabela sličic/pobarvaj rdeče" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/color yellow" -#~ msgstr "ogledov/tabela sličic/pobarvaj rumeno" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/color green" -#~ msgstr "ogledov/tabela sličic/pobarvaj zeleno" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/color blue" -#~ msgstr "ogledov/tabela sličic/pobarvaj modro" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/color purple" -#~ msgstr "ogledov/tabela sličic/pobarvaj violična" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/clear color labels" -#~ msgstr "ogledov/tabela sličic/zbriši barvne oznake" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/select all" -#~ msgstr "ogledov/tabela sličic/izberi vse" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/select none" -#~ msgstr "ogledov/tabela sličic/ne izberi nič" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/invert selection" -#~ msgstr "ogledov/tabela sličic/inverzna izbira" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/select film roll" -#~ msgstr "ogledov/tabela sličic/izberi zvitek filma" - -#~ msgctxt "accel" -#~ msgid "views/thumbtable/select untouched" -#~ msgstr "ogledov/tabela sličic/izberi nedotaknjene" - -#~ msgctxt "accel" -#~ msgid "focus module" -#~ msgstr "modul ostrenja" - -#, c-format -#~ msgid "" -#~ "%s\n" -#~ "(shortcut: %s)" -#~ msgstr "" -#~ "%s\n" -#~ "(bližnjica: %s)" - -#, c-format -#~ msgid "%s %s / %s: %s" -#~ msgstr "%s %s / %s: %s" - -#, c-format -#~ msgid "%s / %s" -#~ msgstr "%s / %s" - -#~ msgctxt "accel" -#~ msgid "toggle all top panels" -#~ msgstr "preklopi vse vrhnji plošče" - -#~ msgctxt "accel" -#~ msgid "toggle all bottom panels" -#~ msgstr "preklopi vse spodnje plošče" - -#~ msgid "enable focus-peaking mode" -#~ msgstr "omogoči način vrhov ostrenja" - -#~ msgid "modules order" -#~ msgstr "vrstni red modulov" - -#~ msgid "" -#~ "click or press enter to search\n" -#~ "click or press enter again to cycle through results" -#~ msgstr "" -#~ "kliknite ali pritisnite Enter za iskanje\n" -#~ "kliknite ali ponovno pritisnite Enter, da se pomikate po rezultatih" - -#~ msgid "B&W : Ilford Delta 100" -#~ msgstr "Č/B : Ilford Delta 100" - -#~ msgid "linear or non-linear, RGB or Lab, display-referred" -#~ msgstr "linearno ali ne-linearno, RGB ali Lab, glede na zaslon" - -#~ msgid "today" -#~ msgstr "danes" - -#, no-c-format -#~ msgid "" -#~ "use `%' as wildcard\n" -#~ "use `|%' to include all sub-hierarchies (ctrl-click)\n" -#~ "use `*' to include hierarchy and sub-hierarchies (shift-click)" -#~ msgstr "" -#~ "uporabite `%' za vse\n" -#~ "uporabite `|%' za vključene vse podrejene strukture (ctrl-klik)\n" -#~ "uporabite `*' za vključene vse strukture in podrejene strukture (shift-" -#~ "klik)" - -#, no-c-format -#~ msgid "" -#~ "use `%' as wildcard\n" -#~ "use `|%' to include all sub-locations (ctrl-click)\n" -#~ "use `*' to include locations and sub-locations (shift-click)" -#~ msgstr "" -#~ "uporabite `%' za vse\n" -#~ "uporabite `|%' za vključena vsa podrejena mesta (ctrl-klik)\n" -#~ "uporabite `*' za vključena vsa mesta in podrejena mesta (shift-klik)" - -#~ msgctxt "accel" -#~ msgid "replace metadata" -#~ msgstr "zamenjaj metapodatke" - -#~ msgid "open folder" -#~ msgstr "odpri mapo" - -#~ msgid "" -#~ "set the color of lines that overlay the image (drawn masks, crop and " -#~ "rotate guides etc.)" -#~ msgstr "" -#~ "nastavite barvo črt, ki prekrivajo sliko (narisane maske, vodniki " -#~ "obrezovanja in sukanja, itd.)" - -#~ msgctxt "accel" -#~ msgid "move page up" -#~ msgstr "pomakni stran navzgor" - -#~ msgctxt "accel" -#~ msgid "move page down" -#~ msgstr "pomakni stran navzdol" - -#~ msgctxt "accel" -#~ msgid "move up" -#~ msgstr "pomakni gor" - -#~ msgctxt "accel" -#~ msgid "move down" -#~ msgstr "pomakni dol" - -#~ msgctxt "accel" -#~ msgid "move left" -#~ msgstr "pomakni levo" - -#~ msgctxt "accel" -#~ msgid "move right" -#~ msgstr "pomakni desno" - -#~ msgctxt "accel" -#~ msgid "move start" -#~ msgstr "pomakni začetek" - -#~ msgctxt "accel" -#~ msgid "move end" -#~ msgstr "pomakni konec" - -#~ msgctxt "accel" -#~ msgid "move page up and select" -#~ msgstr "pomakni stran gor in izberi" - -#~ msgctxt "accel" -#~ msgid "move page down and select" -#~ msgstr "pomakni stran dol in izberi" - -#~ msgctxt "accel" -#~ msgid "move up and select" -#~ msgstr "pomakni gor in izberi" - -#~ msgctxt "accel" -#~ msgid "move down and select" -#~ msgstr "pomakni dol in izberi" - -#~ msgctxt "accel" -#~ msgid "move left and select" -#~ msgstr "pomakni levo in izberi" - -#~ msgctxt "accel" -#~ msgid "move right and select" -#~ msgstr "pomakni desno in izberi" - -#~ msgctxt "accel" -#~ msgid "move start and select" -#~ msgstr "pomakni začetek in izberi" - -#~ msgctxt "accel" -#~ msgid "move end and select" -#~ msgstr "pomakni konec in izberi" - -#~ msgid "input red" -#~ msgstr "vhodna rdeča" - -#~ msgid "input green" -#~ msgstr "vhodna zelena" - -#~ msgid "" -#~ "choose the root of the folder tree below\n" -#~ "try to choose a root folder that contains most/all of your photographs " -#~ "(in sub-folders)\n" -#~ "so that you don't need to change the root frequently\n" -#~ "e.g. set it to your 'pictures' or 'home' directory" -#~ msgstr "" -#~ "izberite koren drevesa map spodaj\n" -#~ "poskusite izbrati korensko mapo, ki vsebuje večino/vse vaše fotografije " -#~ "(v podmapah)\n" -#~ "tako da vam ni treba pogosto spreminjati korena\n" -#~ "npr. nastavite ga na 'slike' ali 'domov'" - -#~ msgid "black and white" -#~ msgstr "črno in belo" - -#~ msgid "" -#~ "changes the default collections-list order for folders, times and dates " -#~ "to run from recent to older" -#~ msgstr "" -#~ "spremeni privzeti vrstni red zbirk za mape, čase in datume od nedavnega " -#~ "do starejšega" - -#~ msgid "gamma22 Rec709" -#~ msgstr "gama22 Rec709" - -#~ msgid "ProPhoto RGB" -#~ msgstr "ProPhoto RGB" - -#~ msgid "" -#~ "\n" -#~ " At startup, the database failed to open because at least one of the two " -#~ "files in the database is locked.\n" -#~ "\n" -#~ " The persistence of the lock is mainly caused by one of the two following " -#~ "causes:\n" -#~ "\n" -#~ " - Another occurrence of darktable has already opened this database file " -#~ "and locked it for its benefit.\n" -#~ "\n" -#~ " - A previous occurrence of darktable ended abnormally and therefore \n" -#~ " could not close one or both files in the database properly.\n" -#~ "\n" -#~ " How to solve this problem?\n" -#~ "\n" -#~ " 1 - Search in your environment if another darktable occurrence is " -#~ "active. If so, use it or close it. \n" -#~ " The lock indicates that the process number of this occurrence is : " -#~ "<i><b>%d</b></i>\n" -#~ "\n" -#~ " 2 - If you can't find this other occurrence, try closing your session " -#~ "and reopening it or shutting down your computer. \n" -#~ " This will delete all running programs and thus close the database " -#~ "correctly.\n" -#~ "\n" -#~ " 3 - If these two actions are not enough, it is because at least one of " -#~ "the two files that materialize the locks remains \n" -#~ " and that these are no longer attached to any occurrence of " -#~ "darktable. It is then necessary to delete it (or them). \n" -#~ " The two files are named <i>data.db.lock</i> and <i>library.db.lock</" -#~ "i> respectively. The opening mechanism signals \n" -#~ " the presence of the <i><b>%s</b></i> file in the <i><b>%s</b></i> " -#~ "folder. \n" -#~ " (full pathname: <i><b>%s</b></i>).\n" -#~ "\n" -#~ " <u>Caution!</u> Do not delete these files without first checking " -#~ "that there are no more occurrences of darktable, \n" -#~ " otherwise you risk generating serious inconsistencies in your " -#~ "database.\n" -#~ "\n" -#~ " As soon as you have identified and removed the cause of the lock, " -#~ "darktable will start without any problem.\n" -#~ msgstr "" -#~ "\n" -#~ " Ob zagonu se zbirka podatkov ni uspela odpreti, ker je bil vsaj ena od " -#~ "obeh datotek v bazi podatkov zaklenjena.\n" -#~ "\n" -#~ " Vztrajanje zaklepanja je posledica enega od naslednjih dveh vzrokov:\n" -#~ "\n" -#~ " - Še en pojavek DarkTable je že odprl to datoteko baze podatkov in jo " -#~ "zaklenil zase.\n" -#~ "\n" -#~ " - Prejšnji pojavek DarkTabla se je končal nenormalno in zato\n" -#~ " ene ali obeh datotek v bazi ni mogel pravilno zapreti.\n" -#~ "\n" -#~ " Kako rešiti to težavo?\n" -#~ "\n" -#~ " 1 - Preiščite v svoje okolje, ali je aktiven še en pojavek darktable. Če " -#~ "je tako, ga ali uporabite ali zaprite.\n" -#~ " Ključavnica pomeni, da je številka procesa tega dogodka:<i><b>%d</b> " -#~ "</i>\n" -#~ "\n" -#~ " 2 - Če tega ne morete najti še enega pojavka, poskusite zaključiti sejo " -#~ "in jo znova odpreti ali izklopiti računalnik.\n" -#~ " S tem boste izbrisali vse tekoče programe in tako pravilno zaprli " -#~ "bazo podatkov.\n" -#~ "\n" -#~ " 3 - Če ti dve dejanji nista dovolj, je to zato, ker ostala vsaj ena od " -#~ "dveh datoteki, ki materializirata zaklep\n" -#~ " in da ni več povezana z nobenim pojavkom darktabla. Zato jo ali ju " -#~ "je potrebno zbrisati.\n" -#~ " Dve datoteki sta poimenovani <i>data.db.lock</i> in <i>library.db." -#~ "lock</i>. Mehanizem za odpiranje signalizira\n" -#~ " prisotnost datoteke <i><b>%s</b></i> v mapi <i><b>%s</b></i>.\n" -#~ " (polno ime poti: <i><b>%s</b></i>).\n" -#~ "\n" -#~ " <u>Pozor!</u> Ne brišite teh datotek, ne da bi to predhodno " -#~ "preverili, da ni več pojavkov darktabla,\n" -#~ " sicer tvegate, da bi prišlo do resnih neskladnosti v vaši zbirki " -#~ "podatkov.\n" -#~ "\n" -#~ " Takoj ko ugotovite in odstranite vzrok zaklepanja, se bo darktable " -#~ "zagnal brez težav.\n" - -#~ msgid "darktable cannot be started because the database is locked" -#~ msgstr "darktable ni mogoče zagnati, ker je baza podatkov zaklenjena" - -#~ msgid "do you really want to send %d image to trash?" -#~ msgid_plural "do you really want to send %d images to trash?" -#~ msgstr[0] "ali res želite vreči %d sliko v smeti?" -#~ msgstr[1] "ali res želite vreči %d sliki v smeti?" -#~ msgstr[2] "ali res želite vreči %d slike v smeti?" -#~ msgstr[3] "ali res želite vreči %d slik v smeti?" - -#~ msgctxt "blendmode" -#~ msgid "multiply reverse" -#~ msgstr "množi obratno" - -#~ msgctxt "blendmode" -#~ msgid "subtract reverse" -#~ msgstr "obratno odštevanje" - -#~ msgctxt "blendmode" -#~ msgid "divide reverse" -#~ msgstr "obratno deljenje" - -#~ msgid "" -#~ "add gradient\n" -#~ "ctrl+click to add multiple gradients" -#~ msgstr "" -#~ "dodaj gradient\n" -#~ "ctrl+klik, da dodate več gradientov" - -#~ msgid "" -#~ "add path\n" -#~ "ctrl+click to add multiple paths" -#~ msgstr "" -#~ "dodaj pot\n" -#~ "ctrl+klik, če želite dodati več poti" - -#~ msgid "" -#~ "add ellipse\n" -#~ "ctrl+click to add multiple ellipses" -#~ msgstr "" -#~ "dodaj elipso\n" -#~ "ctrl+klik, če želite dodati več elips" - -#~ msgid "" -#~ "add circle\n" -#~ "ctrl+click to add multiple circles" -#~ msgstr "" -#~ "dodaj krog\n" -#~ "ctrl+klik, če želite dodati več krogov" - -#~ msgid "" -#~ "add brush\n" -#~ "ctrl+click to add multiple brush strokes" -#~ msgstr "ctrl+klik za dodajanje več potez s čopičem" - -#~ msgid "" -#~ "shift+scroll to change compression\n" -#~ "ctrl+scroll to set opacity (%d%%)" -#~ msgstr "" -#~ "shift+scroll za spremembo stiskanja\n" -#~ " ctrl+scroll za določanje neprosojnosti (%d%%)" - -#~ msgid "" -#~ "scroll to set curvature, shift+scroll to change compression\n" -#~ "ctrl+scroll to set shape opacity (%d%%)" -#~ msgstr "" -#~ "scroll za določanje ukrivljenosti, shift+scroll za spremembo stiskanja\n" -#~ "ctrl+scroll za določanje neprosojnosti oblike (%d%%)" - -#~ msgid "" -#~ "history problem detected\n" -#~ "please report via the issue tracker\n" -#~ "including the xmp file" -#~ msgstr "" -#~ "odkrita težava v zgodovini\n" -#~ "prosimo, poročajte sledilniku opažanj\n" -#~ "priložite datoteko xmp" - -#~ msgid "metadata to be applied per default" -#~ msgstr "privzeti metapodatki" - -#~ msgid "paste parts..." -#~ msgstr "prilepi dele..." - -#~ msgid "Mass Storage Camera" -#~ msgstr "Kamera masovnega shranjevanja" - -#~ msgid "import folder" -#~ msgstr "uvozi mapo" - -#~ msgid "modify the spatial size of an images group on the map" -#~ msgstr "spremenite velikost prostora skupine slik na zemljevidu" - -#~ msgid "minimum of images to make a group" -#~ msgstr "najmanjše število slik, da bi ustvarile skupino" - -#~ msgid "hidden" -#~ msgstr "skrita" - -#~ msgid "configure metadata" -#~ msgstr "izvozi metapodatke" - -#~ msgid "recommended module" -#~ msgid_plural "recommended modules" -#~ msgstr[0] "priporočen modul" -#~ msgstr[1] "priporočena modula" -#~ msgstr[2] "priporočeni moduli" -#~ msgstr[3] "priporočenih modulov" - -#~ msgid "preset name" -#~ msgstr "ime prednastavitve" - -#~ msgid "delete path" -#~ msgstr "briši pot" - -#~| msgid "show search module text entry" -#~ msgid "show module groups and/or search text entry" -#~ msgstr "prikaži skupine modulov in/ali išči vnos besedil" - -#~ msgid "show module groups and/or search text entry. (needs a restart)" -#~ msgstr "" -#~ "prikaži skupine modulov in/ali išči vnos besedil. (zahteva ponovni zagon)" - -#~| msgid "delete preset?" -#~ msgid "hide built-in presets" -#~ msgstr "skrij vgrajene prednastavitve" - -#~ msgid "" -#~ "perform color space corrections\n" -#~ "and apply looks" -#~ msgstr "" -#~ "izvedi popravke barvnega prostora\n" -#~ "in uporabite videz" - -#~| msgid "white balance disabled for camera" -#~ msgid "white balance applied on non-raw image" -#~ msgstr "uravnoteženje beline uporabljeno na ne-surovi sliki" - -#~ msgid "" -#~ "the white balance module is designed to work on raw images.\n" -#~ "using it on non-raw images may have unexpected effects.\n" -#~ "use chromatic adaptation in color calibration instead." -#~ msgstr "" -#~ "modul za nastavitev beline je zasnovan za delo na surovih slikah.\n" -#~ "uporaba na ne-surovih slikah ima lahko nepričakovane učinke.\n" -#~ "raje uporabite prilagoditev barve pri umerjanju barv." - -#~| msgid "compress shadows/highlights : strong" -#~ msgid "compress shadows/highlights (eigf) : very strong" -#~ msgstr "stiskanje senc/bleščav (eigf) : zelo močno" - -#~| msgid "compress shadows/highlights : strong" -#~ msgid "compress shadows/highlights (gf) : very strong" -#~ msgstr "stiskanje senc/bleščav (gf) : zelo močno" - -#~| msgid "%s has been imported" -#~| msgid_plural "%s have been imported" -#~ msgid "to be imported" -#~ msgstr "za uvoz" - -#~ msgid "" -#~ "selected metadata are imported from image and override the default value" -#~ msgstr "" -#~ "izbrani metapodatki se uvozijo s slike in prepišejo privzeto vrednost" - -#~ msgid "GUI thumbs and previews DPI scaling factor" -#~ msgstr "" -#~ "Predogledne sličice grafičnega vmesnika in merilo povečave predogledov" - -#~ msgid "" -#~ "scale the thumbnails and previews resolutions for high DPI screens.\n" -#~ "increase if thumbnails look blurry, decrease if lighttable is too slow.\n" -#~ "set to -1.0 to use the system-defined global scaling.\n" -#~ "default is 1.0 on most systems, or 2.0 when using resolutions above " -#~ "1920×1080 px.\n" -#~ "this needs a restart to apply changes." -#~ msgstr "" -#~ "spremenite merilo sličic in ločljivosti predogledov za zaslone visoke " -#~ "ločljivosti.\n" -#~ "povečajte, če so sličice videti zamegljene, zmanjšajte jih, če je tabela " -#~ "svetlobe prepočasna.\n" -#~ "nastavite na -1.0 za uporabo sistemsko definiranega globalnega merila.\n" -#~ "privzeto je 1,0 v večini sistemov ali 2,0, če uporabljate ločljivosti nad " -#~ "1920×1080 px.\n" -#~ "Za uveljavitev sprememb je potreben ponovni zagon." - -#~ msgctxt "usercss" -#~ msgid "save theme tweaks" -#~ msgstr "shrani prilagoditve teme" - -#~ msgid "" -#~ "distort perspective automatically,\n" -#~ "for corrective and creative purposes.\n" -#~ "works in RGB,\n" -#~ "takes preferably a linear RGB input,\n" -#~ "outputs linear RGB." -#~ msgstr "" -#~ "samodejno izkrivlja perspektivo,\n" -#~ "za korektivne in ustvarjalne namene.\n" -#~ "deluje v RGB,\n" -#~ "prednostno pobere linearni RGB vhod,\n" -#~ "daje kot izhod linearni RGB." - -#~| msgid "focal length" -#~ msgctxt "accel" -#~ msgid "focal length" -#~ msgstr "goriščna razdalja" - -#~| msgid "crop factor" -#~ msgctxt "accel" -#~ msgid "crop factor" -#~ msgstr "faktor izreza" - -#~| msgid "aspect adjust" -#~ msgctxt "accel" -#~ msgid "aspect adjust" -#~ msgstr "prilagoditev razmerja proporcev" - -#~| msgid "guides" -#~ msgctxt "accel" -#~ msgid "guides" -#~ msgstr "vodila" - -#~| msgid "automatic cropping" -#~ msgctxt "accel" -#~ msgid "automatic cropping" -#~ msgstr "avtomatično obrezovanje" - -#~ msgid "" -#~ "add or remove local contrast,\n" -#~ "for corrective and creative purposes.\n" -#~ "works in Lab,\n" -#~ "takes preferably a linear RGB input,\n" -#~ "outputs almost linear RGB." -#~ msgstr "" -#~ "dodaj ali odstrani lokalni kontrast,\n" -#~ "za korektivne in ustvarjalne namene.\n" -#~ "deluje v prostoru Lab,\n" -#~ "prednostno je vhod linearni RGB,\n" -#~ "izhod skoraj linearni RGB." - -#~| msgid "preserve colors" -#~ msgctxt "accel" -#~ msgid "preserve colors" -#~ msgstr "ohranite barve" - -#~| msgid "exposure shift" -#~ msgctxt "accel" -#~ msgid "exposure fusion" -#~ msgstr "zlivanje osvetlitve" - -#~ msgid "" -#~ "apply usual adjustments,\n" -#~ "for corrective and creative purposes.\n" -#~ "works in RGB,\n" -#~ "takes preferably a linear RGB input,\n" -#~ "outputs non-linear RGB." -#~ msgstr "" -#~ "uporabi običajne prilagoditve,\n" -#~ "za korektivne in ustvarjalne namene.\n" -#~ "deluje v RGB,\n" -#~ "vzame prednostno linearni RGB vhod,\n" -#~ "izhodi so nelinearni RGB." - -#~| msgid "black level correction" -#~ msgctxt "accel" -#~ msgid "black level correction" -#~ msgstr "popravek ravni črnine" - -#~| msgid "highlight compression" -#~ msgctxt "accel" -#~ msgid "highlight compression" -#~ msgstr "stiskanje bleščav" - -#~| msgid "clip" -#~ msgctxt "accel" -#~ msgid "clip" -#~ msgstr "zapni" - -#~ msgid "" -#~ "manipulate local and global contrast separately,\n" -#~ "for corrective and creative purposes.\n" -#~ "works in Lab,\n" -#~ "takes any RGB input,\n" -#~ "outputs non-linear RGB." -#~ msgstr "" -#~ "ločeno upravlja z lokalnim in globalnim kontrastom,\n" -#~ "za korektivne in ustvarjalne namene.\n" -#~ "deluje v prostoru Lab,\n" -#~ "sprejme kateri koli RGB vhod,\n" -#~ "izhod je nelinearni RGB." - -#~| msgid "detail" -#~ msgctxt "accel" -#~ msgid "detail" -#~ msgstr "podrobnost" - -#~| msgid "midtone range" -#~ msgctxt "accel" -#~ msgid "midtone range" -#~ msgstr "obseg srednjih tonov" - -#~ msgid "" -#~ "apply Orton effect for a dreamy aetherical look,\n" -#~ "for creative purposes.\n" -#~ "works in Lab,\n" -#~ "takes preferably a linear RGB input,\n" -#~ "outputs non-linear RGB." -#~ msgstr "" -#~ "uporabi Ortonov učinek za zasanjani eterični videz,\n" -#~ "za ustvarjalne namene.\n" -#~ "deluje v prostou Lab,\n" -#~ "ima prednostno linearni RGB vhod,\n" -#~ "izhod je nelinearni RGB." - -#~| msgid "frame line offset" -#~ msgctxt "accel" -#~ msgid "frame line offset" -#~ msgstr "odmik črte okvirja" - -#~| msgid "aspect" -#~ msgctxt "accel" -#~ msgid "aspect" -#~ msgstr "vidik" - -#~| msgid "orientation" -#~ msgctxt "accel" -#~ msgid "orientation" -#~ msgstr "orientacija" - -#~| msgid "horizontal position" -#~ msgctxt "accel" -#~ msgid "horizontal position" -#~ msgstr "vodoravna pozicija" - -#~| msgid "vertical position" -#~ msgctxt "accel" -#~ msgid "vertical position" -#~ msgstr "vertikalna pozicija" - -#~| msgid "destination" -#~ msgctxt "accel" -#~ msgid "destination" -#~ msgstr "cilj" - -#~| msgid "invalid ratio format. it should be \"number:number\"" -#~ msgid "invalid ratio format. it should be non zero" -#~ msgstr "neveljavno razmerje. biti mora različno od nič" - -#~ msgctxt "accel" -#~ msgid "top" -#~ msgstr "vrh" - -#~| msgctxt "preferences" -#~| msgid "bottom" -#~ msgctxt "accel" -#~ msgid "bottom" -#~ msgstr "dno" - -#~| msgid "aspect ratio" -#~ msgctxt "accel" -#~ msgid "aspect ratio" -#~ msgstr "razmerje proporcev" - -#~| msgid "flip" -#~ msgctxt "accel" -#~ msgid "flip" -#~ msgstr "prezrcali" - -#~| msgid "keystone" -#~ msgctxt "accel" -#~ msgid "keystone" -#~ msgstr "ključni kamen" - -#~ msgid "" -#~ "affect color, brightness and contrast\n" -#~ "for corrective and creative purposes.\n" -#~ "works in RGB\n" -#~ "takes preferably a linear RGB input,\n" -#~ "outputs possibly non-linear RGB, depending on settings." -#~ msgstr "" -#~ "vpliva na barvo, sijavost in kontrast\n" -#~ "za korektivne in ustvarjalne namene.\n" -#~ "deluje v RGB\n" -#~ "ima prednostno linearni RGB vhod,\n" -#~ "izhod po možnosti nelinearni RGB, odvisno od nastavitev." - -#~| msgid "input saturation" -#~ msgctxt "accel" -#~ msgid "input saturation" -#~ msgstr "vhodna nasičenost" - -#~| msgid "output saturation" -#~ msgctxt "accel" -#~ msgid "output saturation" -#~ msgstr "izhodna nasičenost" - -#~| msgid "contrast fulcrum" -#~ msgctxt "accel" -#~ msgid "contrast fulcrum" -#~ msgstr "žarišče kontrastov" - -#~| msgid "color control sliders" -#~ msgctxt "accel" -#~ msgid "color control sliders" -#~ msgstr "drsniki kontrole barv" - -#~| msgid "green/red" -#~ msgctxt "accel" -#~ msgid "green-red" -#~ msgstr "zeleno-rdeča" - -#~| msgid "target color" -#~ msgctxt "accel" -#~ msgid "target color" -#~ msgstr "ciljna barva" - -#~| msgid "input profile" -#~ msgctxt "accel" -#~ msgid "input profile" -#~ msgstr "vhodni profil" - -#~| msgid "working profile" -#~ msgctxt "accel" -#~ msgid "working profile" -#~ msgstr "delovni profil" - -#~| msgid "gamut clipping" -#~ msgctxt "accel" -#~ msgid "gamut clipping" -#~ msgstr "obrezovanje barvnega razpona" - -#~| msgid "number of clusters" -#~ msgctxt "accel" -#~ msgid "number of clusters" -#~ msgstr "število gruč" - -#~| msgid "color dominance" -#~ msgctxt "accel" -#~ msgid "color dominance" -#~ msgstr "barvna nadvlada" - -#~| msgid "histogram equalization" -#~ msgctxt "accel" -#~ msgid "histogram equalization" -#~ msgstr "izenačevanje histograma" - -#~| msgid "export profile" -#~ msgctxt "accel" -#~ msgid "export profile" -#~ msgstr "profil izvoza" - -#~| msgid "select by" -#~ msgctxt "accel" -#~ msgid "select by" -#~ msgstr "izberi po" - -#~| msgid "process mode" -#~ msgctxt "accel" -#~ msgid "process mode" -#~ msgstr "način obdelave" - -#~| msgid "interpolation method" -#~ msgctxt "accel" -#~ msgid "interpolation method" -#~ msgstr "metoda interpolacije" - -#~| msgid "edge detection radius" -#~ msgctxt "accel" -#~ msgid "edge detection radius" -#~ msgstr "polmer zaznavanja robov" - -#~| msgid "operation mode" -#~ msgctxt "accel" -#~ msgid "operation mode" -#~ msgstr "način operacij" - -#~| msgid "method" -#~ msgctxt "accel" -#~ msgid "method (bayer)" -#~ msgstr "metoda (bayer)" - -#~ msgctxt "accel" -#~ msgid "method (xtrans)" -#~ msgstr "metoda (xtrans)" - -#~| msgid "color smoothing" -#~ msgctxt "accel" -#~ msgid "color smoothing" -#~ msgstr "barvno glajenje" - -#~| msgid "match greens" -#~ msgctxt "accel" -#~ msgid "match greens" -#~ msgstr "uskladi zelene" - -#~| msgid "adjust autoset parameters" -#~ msgctxt "accel" -#~ msgid "adjust autoset parameters" -#~ msgstr "prilagodi avtomatsko nastavljene parametre" - -#~| msgid "preserve shadows" -#~ msgctxt "accel" -#~ msgid "preserve shadows" -#~ msgstr "ohrani sence" - -#~| msgid "bias correction" -#~ msgctxt "accel" -#~ msgid "bias correction" -#~ msgstr "popravek pristranskosti" - -#~| msgid "patch size" -#~ msgctxt "accel" -#~ msgid "patch size" -#~ msgstr "velikost zaplate" - -#~| msgid "search radius" -#~ msgctxt "accel" -#~ msgid "search radius" -#~ msgstr "radij iskanja" - -#~| msgid "method" -#~ msgctxt "accel" -#~ msgid "method" -#~ msgstr "metoda" - -#~| msgid "target black luminance" -#~ msgctxt "accel" -#~ msgid "target black luminance" -#~ msgstr "ciljna svetlost črne" - -#~| msgid "target middle grey" -#~ msgctxt "accel" -#~ msgid "target middle grey" -#~ msgstr "ciljna srednja siva" - -#~| msgid "target white luminance" -#~ msgctxt "accel" -#~ msgid "target white luminance" -#~ msgstr "ciljna svetlost bele" - -#~| msgid "preserve chrominance" -#~ msgctxt "accel" -#~ msgid "preserve chrominance" -#~ msgstr "ohrani barvnost" - -#~| msgid "bias" -#~ msgctxt "accel" -#~ msgid "bias" -#~ msgstr "pristranskost" - -#~| msgid "target" -#~ msgctxt "accel" -#~ msgid "target" -#~ msgstr "cilj" - -#~| msgid "operator" -#~ msgctxt "accel" -#~ msgid "operator" -#~ msgstr "operater" - -#~| msgctxt "accel" -#~| msgid "sharpness" -#~ msgctxt "accel" -#~ msgid "hardness" -#~ msgstr "ostrina" - -#~| msgid "midtones bias" -#~ msgctxt "accel" -#~ msgid "midtones bias" -#~ msgstr "pristranskost srednjih tonov" - -#~| msgid "distance" -#~ msgctxt "accel" -#~ msgid "distance" -#~ msgstr "razdalja" - -#~| msgid "clipping threshold" -#~ msgctxt "accel" -#~ msgid "clipping threshold" -#~ msgstr "prag obrezovanja" - -#~| msgid "corrections" -#~ msgctxt "accel" -#~ msgid "corrections" -#~ msgstr "popravki" - -#~| msgid "geometry" -#~ msgctxt "accel" -#~ msgid "geometry" -#~ msgstr "geometrija" - -#~| msgid "gray" -#~ msgctxt "accel" -#~ msgid "gray" -#~ msgstr "siva" - -#~| msgid "white" -#~ msgctxt "accel" -#~ msgid "white" -#~ msgstr "bela" - -#~| msgid "application color space" -#~ msgctxt "accel" -#~ msgid "application color space" -#~ msgstr "barvni prostor aplikacije" - -#~| msgid "interpolation" -#~ msgctxt "accel" -#~ msgid "interpolation" -#~ msgstr "interpolacija" - -#~| msgctxt "accel" -#~| msgid "zoom max" -#~ msgid "D max" -#~ msgstr "D max" - -#~| msgid "black relative exposure" -#~ msgctxt "accel" -#~ msgid "black relative exposure" -#~ msgstr "relativna osvetlitev črne" - -#~| msgid "safety factor" -#~ msgctxt "accel" -#~ msgid "safety factor" -#~ msgstr "varnostni faktor" - -#~| msgid "soften with" -#~ msgctxt "accel" -#~ msgid "soften with" -#~ msgstr "zmehčaj z" - -#~| msgid "shadows" -#~ msgctxt "accel" -#~ msgid "shadows-hue" -#~ msgstr "odtenki senc" - -#~| msgid "saturation" -#~ msgctxt "accel" -#~ msgid "shadows-saturation" -#~ msgstr "zasičenost senc" - -#~| msgid "highlights" -#~ msgctxt "accel" -#~ msgid "highlights-hue" -#~ msgstr "odtenki bleščav" - -#~| msgid "presets" -#~ msgctxt "accel" -#~ msgid "presets" -#~ msgstr "začetne nastavitve" - -#~| msgid "base of the logarithm" -#~ msgctxt "accel" -#~ msgid "base of the logarithm" -#~ msgstr "osnova logaritma" - -#~| msgid "color space" -#~ msgctxt "accel" -#~ msgid "color space" -#~ msgstr "barvni prostor" - -#~ msgctxt "accel" -#~ msgid "edges refinement or feathering" -#~ msgstr "glajenje robov ali mehčanje" - -#~| msgid "luminance estimator" -#~ msgctxt "accel" -#~ msgid "luminance estimator" -#~ msgstr "cenilka osvetljenosti" - -#~| msgid "preserve details" -#~ msgctxt "accel" -#~ msgid "preserve details" -#~ msgstr "ohrani podrobnosti" - -#~| msgid "marker" -#~ msgctxt "accel" -#~ msgid "marker" -#~ msgstr "označevalnik" - -#~| msgid "scale on" -#~ msgctxt "accel" -#~ msgid "scale on" -#~ msgstr "merilo" - -#~ msgid "X" -#~ msgstr "X" - -#~| msgid "moving %d image" -#~ msgid "loading image" -#~ msgstr "prenašam sliko" +# # Slovenian translation for darktable +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# opombe ob prevodu DarkTable ver 1 in 2 ter 3 +# prvi osnutek slovenskega prevoda +# nisem prepričan o najboljših terminih za naslednje angleške pojme +# +# Seznam prevodov terminov: +# acutance = ostrina roba ? https://en.wikipedia.org/wiki/Acutance +# aperture = zaslonka +# artifacts = artefakti +# aspect ratio = razmerje stranic +# blending = mešanje +# blur = zameglitev +# bracketing = kadriranje (uporabljeno v Nikon D610 Navodilo za uporabo) +# https://downloadcenter.nikonimglib.com/sl/products/14/D610.html +# briliance = briljanca lastnost diamanta https://en.wikipedia.org/wiki/Diamond_(gemstone)#Light_performance +# buffer = medpomnilnik +# burn = dodatno osvetljevati +# cache = vmesni pomnilnik +# cdl = color decision list ASC CDL https://en.wikipedia.org/wiki/ASC_CDL +# chroma = kroma +# chrominance = barvnost ? +# clipping = obrez +# clut = color lookup table = tabela iskanja barv +# cntrl key = krmilka +# colorfulness = polnost barv ? +# color dodge = barvna slabitev +# color grading = stopnjevanje barv https://en.wikipedia.org/wiki/Color_grading +# crop factor = faktor obrezave +# cusp = stikališče koncev krivulj +# darkroom mode = način temnice +# deflicking = odstranjevanje utripanja https://en.wikipedia.org/wiki/Deflicking +# defringe = odstranjevanje barvnih napak robov +# http://smallbusiness.chron.com/defringe-photoshop-47337.html +# https://www.youtube.com/watch?v=jBoUxF_NbGc +# demosaicing = odstranjevanje mozaičnosti +# desaturation = zmanjšanje nasičenosti +# dodge = zastirati svetlobo +# dynamic range = dinamični razpon +# eigf (exposure-independent guided filter) = od osvetlitve neodvisni vodeni filter +# equisolid angle = enakomerni kot xxx https://en.wikipedia.org/wiki/Fisheye_lens +# exposure = osvetlitev, ekspozicija +# feathering = mehčanje robov s peresom +# focal range = goriščni razpon (območje ostrine) +# fringe = barvna napaka roba +# fuze = varovalka +# gamut = barvni razpon +# highlight = bleščava +# hinter = glajenje robov črk https://en.wikipedia.org/wiki/Font_hinting +# hue = odtenek +# keystone effect = popravek perspektive +# https://en.wikipedia.org/wiki/Keystone_effect +# lightness = HSV svetlost +# lighttable = svetlobna podlaga +# luma = luma kaj je luminiscenca? +# luminance = svetlost +# LUT - lookup table = tabela iskanja, iskalna tabela +# lut = spajkanje, spoj +# Orton effect = Ortonov učinek +# https://en.wikipedia.org/wiki/Orton_(photography) +# https://capturelandscapes.com/orton-effect-explained/ +# magenta = magenta +# patch = krpa +# posemeter = svetlomer +# scroll = pomik +# shear = ostriči +# shift key = dvigalka +# softproof = preizkusni odtis +# tethering = oddaljeno upravljanje s kamero +# tiling = prekrivanje +# vibrance = vibrancy = živahnost https://digital-photography-school.com/vibrance-vs-saturation-in-plain-english/ +# warp = zvitek, izkrivljenje, popačenje, osnova (pri tkanju) +# +# ne pozabi na Style Guide Slovenian (sl) https://mozilla-l10n.github.io/styleguides/sl/ +# in Barvni geslovnik revije Grafičar http://www.graficar.si/index.php/geslovniki/18-barvni-geslovnik +# +# useful suggestions: Igor Lapajne <ilapajne.zrc-sazu.si> +# SPDX-FileCopyrightText: 2015-2020, 2021, 2022, 2023 Matjaž Jeran <matjaz.jeran@amis.net> +msgid "" +msgstr "" +"Project-Id-Version: darktable 4.4\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-11-30 19:32+0100\n" +"PO-Revision-Date: 2023-12-07 20:58+0100\n" +"Last-Translator: Matjaž Jeran <matjaz.jeran@amis.net>\n" +"Language-Team: Slovenian <lugos-slo@lugos.si>\n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" +"X-Generator: Lokalize 23.08.3\n" + +#: ../build/bin/conf_gen.h:174 +msgctxt "preferences" +msgid "first instance" +msgstr "prvi pojavek" + +#: ../build/bin/conf_gen.h:175 ../build/bin/preferences_gen.h:7922 +msgctxt "preferences" +msgid "last instance" +msgstr "zadnji pojavek" + +#: ../build/bin/conf_gen.h:252 ../build/bin/conf_gen.h:352 +#: ../build/bin/conf_gen.h:362 ../build/bin/conf_gen.h:1239 +#: ../build/bin/conf_gen.h:1255 ../build/bin/conf_gen.h:1275 +#: ../build/bin/preferences_gen.h:4747 ../build/bin/preferences_gen.h:4885 +msgctxt "preferences" +msgid "never" +msgstr "nikoli" + +#: ../build/bin/conf_gen.h:253 +msgctxt "preferences" +msgid "once a month" +msgstr "enkrat na mesec" + +#: ../build/bin/conf_gen.h:254 ../build/bin/preferences_gen.h:7138 +msgctxt "preferences" +msgid "once a week" +msgstr "enkrat na teden" + +#: ../build/bin/conf_gen.h:255 +msgctxt "preferences" +msgid "once a day" +msgstr "enkrat na dan" + +#: ../build/bin/conf_gen.h:256 +msgctxt "preferences" +msgid "on close" +msgstr "ob zaprtju" + +#: ../build/bin/conf_gen.h:292 ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1248 ../build/bin/conf_gen.h:1276 +msgctxt "preferences" +msgid "small" +msgstr "majhno" + +#: ../build/bin/conf_gen.h:293 ../build/bin/conf_gen.h:405 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6223 +msgctxt "preferences" +msgid "default" +msgstr "privzeto" + +#: ../build/bin/conf_gen.h:294 ../build/bin/conf_gen.h:2904 +msgctxt "preferences" +msgid "large" +msgstr "velik" + +#: ../build/bin/conf_gen.h:295 +msgctxt "preferences" +msgid "unrestricted" +msgstr "neomejen" + +#: ../build/bin/conf_gen.h:353 +msgctxt "preferences" +msgid "after edit" +msgstr "po urejanju" + +#: ../build/bin/conf_gen.h:354 ../build/bin/preferences_gen.h:7224 +msgctxt "preferences" +msgid "on import" +msgstr "ob uvozu" + +#: ../build/bin/conf_gen.h:363 ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1247 ../build/bin/conf_gen.h:3300 +#: ../build/bin/preferences_gen.h:5644 +msgctxt "preferences" +msgid "always" +msgstr "vedno" + +#: ../build/bin/conf_gen.h:364 ../build/bin/preferences_gen.h:7259 +msgctxt "preferences" +msgid "only large entries" +msgstr "samo veliki vnosi" + +#: ../build/bin/conf_gen.h:390 +msgctxt "preferences" +msgid "sensitive" +msgstr "občutljivo" + +#: ../build/bin/conf_gen.h:391 ../build/bin/preferences_gen.h:8133 +msgctxt "preferences" +msgid "insensitive" +msgstr "neobčutljivo" + +#: ../build/bin/conf_gen.h:406 +msgctxt "preferences" +msgid "multiple GPUs" +msgstr "več grafičnih procesorjev" + +#: ../build/bin/conf_gen.h:407 +msgctxt "preferences" +msgid "very fast GPU" +msgstr "zelo hiter grafični procesor" + +#: ../build/bin/conf_gen.h:755 +#| msgid "import time" +msgctxt "preferences" +msgid "import time" +msgstr "čas uvoza" + +#: ../build/bin/conf_gen.h:756 +#| msgid "filename" +msgctxt "preferences" +msgid "folder name" +msgstr "ime mape" + +#: ../build/bin/conf_gen.h:770 +msgctxt "preferences" +msgid "RGB" +msgstr "RGB" + +#: ../build/bin/conf_gen.h:771 +msgctxt "preferences" +msgid "Lab" +msgstr "Lab" + +#: ../build/bin/conf_gen.h:772 +msgctxt "preferences" +msgid "LCh" +msgstr "LCh" + +#: ../build/bin/conf_gen.h:773 +msgctxt "preferences" +msgid "HSL" +msgstr "HSL" + +#: ../build/bin/conf_gen.h:774 +msgctxt "preferences" +msgid "Hex" +msgstr "Hex" + +#: ../build/bin/conf_gen.h:775 ../build/bin/conf_gen.h:1916 +#: ../build/bin/conf_gen.h:2578 ../build/bin/conf_gen.h:2880 +#: ../build/bin/conf_gen.h:3136 +msgctxt "preferences" +msgid "none" +msgstr "nič" + +#: ../build/bin/conf_gen.h:783 +msgctxt "preferences" +msgid "mean" +msgstr "povprečje" + +#: ../build/bin/conf_gen.h:784 +msgctxt "preferences" +msgid "min" +msgstr "min" + +#: ../build/bin/conf_gen.h:785 +msgctxt "preferences" +msgid "max" +msgstr "max" + +#: ../build/bin/conf_gen.h:973 +msgid "select only new pictures" +msgstr "izberi samo nove slike" + +#: ../build/bin/conf_gen.h:974 +msgid "only select images that have not already been imported" +msgstr "izberi samo slike, ki še niso bile uvožene" + +#: ../build/bin/conf_gen.h:979 +#| msgid "ignore JPEG images" +msgid "ignore non-raw images" +msgstr "prezri ne-surove slike" + +#: ../build/bin/conf_gen.h:980 +msgid "" +"if enabled, only raw files will be allowed to import. non-raw files will not " +"be visible in the dialog and will not be imported." +msgstr "" +"če je omogočeno, bo dovoljen uvoz le surovih datotek. ne-surove datoteke ne" +" bodo vidne v pogovornem oknu in ne bodo uvožene." + +#: ../build/bin/conf_gen.h:985 +msgid "apply metadata" +msgstr "uveljavi metapodatke" + +#: ../build/bin/conf_gen.h:986 +msgid "apply some metadata to all newly imported images." +msgstr "uporabi metapodatke za vse na novo uvožene slike." + +#: ../build/bin/conf_gen.h:991 +msgid "recursive directory" +msgstr "rekurzivni imenik" + +#: ../build/bin/conf_gen.h:992 +msgid "recursive directory traversal when importing filmrolls" +msgstr "rekurzivni sprehod po mapah, kadar uvažate zvitke filmov" + +#: ../build/bin/conf_gen.h:997 +msgid "creator to be applied when importing" +msgstr "ustvarjalec slik, ki naj bo označen po uvažanju" + +#: ../build/bin/conf_gen.h:1003 +msgid "publisher to be applied when importing" +msgstr "izdajatelj slik, ki naj bo označen po uvažanju" + +#: ../build/bin/conf_gen.h:1009 +msgid "rights to be applied when importing" +msgstr "avtorske pravice na slikah, ki naj bodo označene po uvažanju" + +#: ../build/bin/conf_gen.h:1015 +msgid "comma separated tags to be applied when importing" +msgstr "oznake ločene s presledki na slikah, ki naj bodo označene po uvažanju" + +#: ../build/bin/conf_gen.h:1021 +msgid "import tags from XMP" +msgstr "uvozi oznake iz XMP" + +#: ../build/bin/conf_gen.h:1051 +msgid "initial rating" +msgstr "začetna ocena" + +#: ../build/bin/conf_gen.h:1052 +msgid "initial star rating for all images when importing a filmroll" +msgstr "začetna ocena slik v zvezdicah po uvozu zvitka filma" + +#: ../build/bin/conf_gen.h:1057 +msgid "ignore EXIF rating" +msgstr "prezri oceno EXIF-a" + +#: ../build/bin/conf_gen.h:1058 +msgid "" +"ignore EXIF rating. if not set and EXIF rating is found, it overrides " +"'initial rating'" +msgstr "" +"prezri oceno EXIF-a. če ni postavljena in je ocena EXIF-a najdena naj " +"prevaga nad 'začetno oceno'" + +#: ../build/bin/conf_gen.h:1063 +msgid "import job" +msgstr "uvozi posel" + +#: ../build/bin/conf_gen.h:1064 +msgid "name of the import job" +msgstr "ime posla uvoza" + +#: ../build/bin/conf_gen.h:1069 +msgid "override today's date" +msgstr "spremeni današnji datum" + +#: ../build/bin/conf_gen.h:1070 +msgid "" +"type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override " +"the current date/time used when expanding variables:\n" +"$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS), $(MSEC).\n" +"let the field empty otherwise" +msgstr "" +"vnesite veljaven datum v obliki (YYYY-MM-DD[hh:mm:ss], če želite spremeniti " +"trenutni datum in čas, uporabljen pri razširjanju spremenljivk:\n" +"$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS).\n" +"sicer pustite polje prazno" + +#: ../build/bin/conf_gen.h:1075 +msgid "keep this window open" +msgstr "ohranjaj to okno odprto" + +#: ../build/bin/conf_gen.h:1076 +msgid "keep this window open to run several imports" +msgstr "ohranjaj to okno odprto za zagon več uvozov" + +#: ../build/bin/conf_gen.h:1233 ../build/bin/conf_gen.h:1249 +#: ../build/bin/conf_gen.h:1277 +msgctxt "preferences" +msgid "VGA" +msgstr "VGA" + +#: ../build/bin/conf_gen.h:1234 ../build/bin/conf_gen.h:1250 +#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4782 +msgctxt "preferences" +msgid "720p" +msgstr "720p" + +#: ../build/bin/conf_gen.h:1235 ../build/bin/conf_gen.h:1251 +#: ../build/bin/conf_gen.h:1279 +msgctxt "preferences" +msgid "1080p" +msgstr "1080p" + +#: ../build/bin/conf_gen.h:1236 ../build/bin/conf_gen.h:1252 +#: ../build/bin/conf_gen.h:1280 +msgctxt "preferences" +msgid "WQXGA" +msgstr "WQXGA" + +#: ../build/bin/conf_gen.h:1237 ../build/bin/conf_gen.h:1253 +#: ../build/bin/conf_gen.h:1281 +msgctxt "preferences" +msgid "4K" +msgstr "4K" + +#: ../build/bin/conf_gen.h:1238 ../build/bin/conf_gen.h:1254 +#: ../build/bin/conf_gen.h:1282 +msgctxt "preferences" +msgid "5K" +msgstr "5K" + +#: ../build/bin/conf_gen.h:1314 +msgctxt "preferences" +msgid "off" +msgstr "izključeno" + +#: ../build/bin/conf_gen.h:1315 +msgctxt "preferences" +msgid "hardness (relative)" +msgstr "trdota (relativna)" + +#: ../build/bin/conf_gen.h:1316 +msgctxt "preferences" +msgid "hardness (absolute)" +msgstr "trdota (absolutna)" + +#: ../build/bin/conf_gen.h:1317 +msgctxt "preferences" +msgid "opacity (relative)" +msgstr "neprosojnost (relativna)" + +#: ../build/bin/conf_gen.h:1318 +msgctxt "preferences" +msgid "opacity (absolute)" +msgstr "neprosojnost (absolutna)" + +#: ../build/bin/conf_gen.h:1319 +msgctxt "preferences" +msgid "brush size (relative)" +msgstr "velikost čopiča (relativna)" + +#: ../build/bin/conf_gen.h:1327 +msgctxt "preferences" +msgid "low" +msgstr "nizka" + +#: ../build/bin/conf_gen.h:1328 +msgctxt "preferences" +msgid "medium" +msgstr "srednja" + +#: ../build/bin/conf_gen.h:1329 +msgctxt "preferences" +msgid "high" +msgstr "visoka" + +#: ../build/bin/conf_gen.h:1349 ../build/bin/preferences_gen.h:5405 +msgctxt "preferences" +msgid "false color" +msgstr "napačna barva" + +#: ../build/bin/conf_gen.h:1350 +msgctxt "preferences" +msgid "grayscale" +msgstr "lestvica sivin" + +#: ../build/bin/conf_gen.h:1364 +msgctxt "preferences" +msgid "top left" +msgstr "zgoraj levo" + +#: ../build/bin/conf_gen.h:1365 +msgctxt "preferences" +msgid "top right" +msgstr "zgoraj desno" + +#: ../build/bin/conf_gen.h:1366 +msgctxt "preferences" +msgid "top center" +msgstr "zgoraj v sredini" + +#: ../build/bin/conf_gen.h:1367 ../build/bin/preferences_gen.h:5217 +msgctxt "preferences" +msgid "bottom" +msgstr "dno" + +#: ../build/bin/conf_gen.h:1368 +msgctxt "preferences" +msgid "hidden" +msgstr "skrito" + +#: ../build/bin/conf_gen.h:1878 +msgid "show OSD" +msgstr "prikaži OSD" + +#: ../build/bin/conf_gen.h:1879 +msgid "toggle the visibility of the map overlays" +msgstr "preklopi vidnost prekrivnih plasti zemljevidov" + +#: ../build/bin/conf_gen.h:1884 ../src/libs/map_settings.c:119 +msgid "filtered images" +msgstr "filtrirane slike" + +#: ../build/bin/conf_gen.h:1885 +msgid "when set limit the images drawn to the current filmstrip" +msgstr "kadar nastavim omejitve slike, narisane na trenutni filmski trak" + +#: ../build/bin/conf_gen.h:1892 +msgid "max images" +msgstr "maksimalne slike" + +#: ../build/bin/conf_gen.h:1893 +msgid "the maximum number of image thumbnails drawn on the map" +msgstr "največje število slik narisanih na zemljevidu" + +#: ../build/bin/conf_gen.h:1900 +msgid "group size factor" +msgstr "faktor velikosti skupine" + +#: ../build/bin/conf_gen.h:1901 +msgid "" +"increase or decrease the spatial size of images groups on the map. can " +"influence the calculation time" +msgstr "" +"povečaj ali zmanjšaj prostorsko velikost skupin slik na zemljevidu. lahko " +"vpliva na čas izračuna" + +#: ../build/bin/conf_gen.h:1908 +msgid "min images per group" +msgstr "min število slik na skupino" + +#: ../build/bin/conf_gen.h:1909 +msgid "" +"the minimum number of images to set up an images group. can influence the " +"calculation time." +msgstr "" +"najmanjše število slik za nastavitev skupine slik. lahko vpliva na čas " +"izračuna." + +#: ../build/bin/conf_gen.h:1914 +msgctxt "preferences" +msgid "thumbnail" +msgstr "predogledna sličica" + +#: ../build/bin/conf_gen.h:1915 +msgctxt "preferences" +msgid "count" +msgstr "število" + +#: ../build/bin/conf_gen.h:1918 +msgid "thumbnail display" +msgstr "prikaz predoglednih sličic" + +#: ../build/bin/conf_gen.h:1919 +msgid "" +"three options are available: images thumbnails, only the count of images of " +"the group or nothing" +msgstr "" +"na voljo so tri možnosti: predogledne sličice, samo število slik v skupini " +"ali ničesar" + +#: ../build/bin/conf_gen.h:1930 +msgid "max polygon points" +msgstr "maksimalno število točk poligona" + +#: ../build/bin/conf_gen.h:1931 +msgid "" +"limit the number of points imported with polygon in find location module" +msgstr "omeji število točk, uvoženih s poligonom v modulu za iskanje lokacije" + +#: ../build/bin/conf_gen.h:2221 ../build/bin/preferences_gen.h:5329 +msgctxt "preferences" +msgid "original" +msgstr "izvirnik" + +#: ../build/bin/conf_gen.h:2222 +msgctxt "preferences" +msgid "to 1/2" +msgstr "na 1/2" + +#: ../build/bin/conf_gen.h:2223 +msgctxt "preferences" +msgid "to 1/3" +msgstr "na 1/3" + +#: ../build/bin/conf_gen.h:2224 +msgctxt "preferences" +msgid "to 1/4" +msgstr "na 1/4" + +#: ../build/bin/conf_gen.h:2244 ../build/bin/conf_gen.h:2254 +msgctxt "preferences" +msgid "bilinear" +msgstr "bilinearni" + +#: ../build/bin/conf_gen.h:2245 ../build/bin/conf_gen.h:2255 +#: ../build/bin/preferences_gen.h:5847 +msgctxt "preferences" +msgid "bicubic" +msgstr "bikubični" + +#: ../build/bin/conf_gen.h:2246 ../build/bin/conf_gen.h:2256 +msgctxt "preferences" +msgid "lanczos2" +msgstr "lanczos2" + +#: ../build/bin/conf_gen.h:2257 ../build/bin/preferences_gen.h:5882 +msgctxt "preferences" +msgid "lanczos3" +msgstr "lanczos3" + +#: ../build/bin/conf_gen.h:2577 ../build/bin/conf_gen.h:3303 +#: ../build/bin/preferences_gen.h:7032 +msgctxt "preferences" +msgid "auto" +msgstr "avto" + +#: ../build/bin/conf_gen.h:2579 +msgctxt "preferences" +msgid "libsecret" +msgstr "libsecret" + +#: ../build/bin/conf_gen.h:2580 +msgctxt "preferences" +msgid "kwallet" +msgstr "kwallet" + +#: ../build/bin/conf_gen.h:2790 +msgctxt "preferences" +msgid "vectorscope" +msgstr "vektorskop" + +#: ../build/bin/conf_gen.h:2791 +msgctxt "preferences" +msgid "waveform" +msgstr "oblika vala" + +#: ../build/bin/conf_gen.h:2792 +msgctxt "preferences" +msgid "RGB parade" +msgstr "RGB parada" + +#: ../build/bin/conf_gen.h:2793 +msgctxt "preferences" +msgid "histogram" +msgstr "histogram" + +#: ../build/bin/conf_gen.h:2801 +msgctxt "preferences" +msgid "left" +msgstr "levo" + +#: ../build/bin/conf_gen.h:2802 ../build/bin/preferences_gen.h:7619 +msgctxt "preferences" +msgid "right" +msgstr "desno" + +#: ../build/bin/conf_gen.h:2810 ../build/bin/conf_gen.h:2847 +msgctxt "preferences" +msgid "logarithmic" +msgstr "logaritmično" + +#: ../build/bin/conf_gen.h:2811 ../build/bin/conf_gen.h:2848 +msgctxt "preferences" +msgid "linear" +msgstr "linearno" + +#: ../build/bin/conf_gen.h:2819 +msgctxt "preferences" +msgid "horizontal" +msgstr "vodoravno" + +#: ../build/bin/conf_gen.h:2820 +msgctxt "preferences" +msgid "vertical" +msgstr "navpično" + +#: ../build/bin/conf_gen.h:2828 +msgctxt "preferences" +msgid "overlaid" +msgstr "prekrivno" + +#: ../build/bin/conf_gen.h:2829 +msgctxt "preferences" +msgid "parade" +msgstr "parada" + +#: ../build/bin/conf_gen.h:2837 +msgctxt "preferences" +msgid "u*v*" +msgstr "u*v*" + +#: ../build/bin/conf_gen.h:2838 +msgctxt "preferences" +msgid "AzBz" +msgstr "AzBz" + +#: ../build/bin/conf_gen.h:2839 +msgctxt "preferences" +msgid "RYB" +msgstr "RYB" + +#: ../build/bin/conf_gen.h:2881 +msgctxt "preferences" +msgid "monochromatic" +msgstr "monokromatsko" + +#: ../build/bin/conf_gen.h:2882 +msgctxt "preferences" +msgid "analogous" +msgstr "analogno" + +#: ../build/bin/conf_gen.h:2883 +msgctxt "preferences" +msgid "analogous complementary" +msgstr "analogno komplementarno" + +#: ../build/bin/conf_gen.h:2884 +msgctxt "preferences" +msgid "complementary" +msgstr "komplementarno" + +#: ../build/bin/conf_gen.h:2885 +msgctxt "preferences" +msgid "split complementary" +msgstr "razcep komplementarnega" + +#: ../build/bin/conf_gen.h:2886 +msgctxt "preferences" +msgid "dyad" +msgstr "diada" + +#: ../build/bin/conf_gen.h:2887 +msgctxt "preferences" +msgid "triad" +msgstr "triada" + +#: ../build/bin/conf_gen.h:2888 +msgctxt "preferences" +msgid "tetrad" +msgstr "tetrada" + +#: ../build/bin/conf_gen.h:2889 +msgctxt "preferences" +msgid "square" +msgstr "kvadrat" + +#: ../build/bin/conf_gen.h:2903 +msgctxt "preferences" +msgid "normal" +msgstr "normalno" + +#: ../build/bin/conf_gen.h:2905 +msgctxt "preferences" +msgid "narrow" +msgstr "ozko" + +#: ../build/bin/conf_gen.h:2906 +msgctxt "preferences" +msgid "line" +msgstr "črta" + +#: ../build/bin/conf_gen.h:3046 +msgctxt "preferences" +msgid "mm" +msgstr "mm" + +#: ../build/bin/conf_gen.h:3047 +msgctxt "preferences" +msgid "cm" +msgstr "cm" + +#: ../build/bin/conf_gen.h:3048 +msgctxt "preferences" +msgid "inch" +msgstr "palec" + +#: ../build/bin/conf_gen.h:3093 ../build/bin/preferences_gen.h:7654 +msgctxt "preferences" +msgid "all" +msgstr "vse" + +#: ../build/bin/conf_gen.h:3094 +msgctxt "preferences" +msgid "xatom" +msgstr "xatom" + +#: ../build/bin/conf_gen.h:3095 +msgctxt "preferences" +msgid "colord" +msgstr "colord" + +#: ../build/bin/conf_gen.h:3133 ../build/bin/preferences_gen.h:5958 +msgctxt "preferences" +msgid "scene-referred (filmic)" +msgstr "glede na sceno (filmično)" + +#: ../build/bin/conf_gen.h:3134 +msgctxt "preferences" +msgid "scene-referred (sigmoid)" +msgstr "glede na sceno (sigmoidalno)" + +#: ../build/bin/conf_gen.h:3135 +msgctxt "preferences" +msgid "display-referred (legacy)" +msgstr "glede na zaslon (zapuščina)" + +#: ../build/bin/conf_gen.h:3230 +msgid "camera time zone" +msgstr "časovna cona kamere" + +#: ../build/bin/conf_gen.h:3231 +msgid "" +"most cameras don't store the time zone in EXIF. give the correct time zone " +"so the GPX data can be correctly matched" +msgstr "" +"večina kamer v EXIFu ne shranjuje časovnih pasov. Podajte časovni pas, da se " +"lahko podatki iz datoteke GPX ustrezno uskladijo s slikami" + +#: ../build/bin/conf_gen.h:3242 +msgctxt "preferences" +msgid "no color" +msgstr "brez barve" + +#: ../build/bin/conf_gen.h:3243 +msgctxt "preferences" +msgid "illuminant color" +msgstr "barva vrste svetlobe" + +#: ../build/bin/conf_gen.h:3244 +msgctxt "preferences" +msgid "effect emulation" +msgstr "posnemanje učinka" + +#: ../build/bin/conf_gen.h:3290 +msgctxt "preferences" +msgid "list" +msgstr "seznam" + +#: ../build/bin/conf_gen.h:3291 +msgctxt "preferences" +msgid "tabs" +msgstr "zavihki" + +#: ../build/bin/conf_gen.h:3292 +msgctxt "preferences" +msgid "columns" +msgstr "stolpci" + +#: ../build/bin/conf_gen.h:3301 +msgctxt "preferences" +msgid "active" +msgstr "aktivno" + +#: ../build/bin/conf_gen.h:3302 +msgctxt "preferences" +msgid "dim" +msgstr "zatemnjeno" + +#: ../build/bin/conf_gen.h:3304 +msgctxt "preferences" +msgid "fade" +msgstr "obledelo" + +#: ../build/bin/conf_gen.h:3305 +msgctxt "preferences" +msgid "fit" +msgstr "prilagojeno" + +#: ../build/bin/conf_gen.h:3306 +msgctxt "preferences" +msgid "smooth" +msgstr "gladko" + +#: ../build/bin/conf_gen.h:3307 +msgctxt "preferences" +msgid "glide" +msgstr "pogladi" + +#: ../build/bin/preferences_gen.h:77 ../build/bin/preferences_gen.h:4305 +#: ../build/bin/preferences_gen.h:4344 ../build/bin/preferences_gen.h:4383 +#: ../build/bin/preferences_gen.h:4417 ../build/bin/preferences_gen.h:4488 +#: ../build/bin/preferences_gen.h:4522 ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:4590 ../build/bin/preferences_gen.h:4624 +#: ../build/bin/preferences_gen.h:4658 ../build/bin/preferences_gen.h:4692 +#: ../build/bin/preferences_gen.h:4733 ../build/bin/preferences_gen.h:4768 +#: ../build/bin/preferences_gen.h:4803 ../build/bin/preferences_gen.h:4837 +#: ../build/bin/preferences_gen.h:4871 ../build/bin/preferences_gen.h:4906 +#: ../build/bin/preferences_gen.h:4940 ../build/bin/preferences_gen.h:4979 +#: ../build/bin/preferences_gen.h:5020 ../build/bin/preferences_gen.h:5093 +#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:5162 +#: ../build/bin/preferences_gen.h:5203 ../build/bin/preferences_gen.h:5237 +#: ../build/bin/preferences_gen.h:5281 ../build/bin/preferences_gen.h:5315 +#: ../build/bin/preferences_gen.h:5350 ../build/bin/preferences_gen.h:5391 +#: ../build/bin/preferences_gen.h:5426 ../build/bin/preferences_gen.h:5460 +#: ../build/bin/preferences_gen.h:5494 ../build/bin/preferences_gen.h:5528 +#: ../build/bin/preferences_gen.h:5562 ../build/bin/preferences_gen.h:5596 +#: ../build/bin/preferences_gen.h:5630 ../build/bin/preferences_gen.h:5665 +#: ../build/bin/preferences_gen.h:5699 ../build/bin/preferences_gen.h:5733 +#: ../build/bin/preferences_gen.h:5799 ../build/bin/preferences_gen.h:5833 +#: ../build/bin/preferences_gen.h:5868 ../build/bin/preferences_gen.h:5903 +#: ../build/bin/preferences_gen.h:5944 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/preferences_gen.h:6013 ../build/bin/preferences_gen.h:6047 +#: ../build/bin/preferences_gen.h:6088 ../build/bin/preferences_gen.h:6124 +#: ../build/bin/preferences_gen.h:6165 ../build/bin/preferences_gen.h:6209 +#: ../build/bin/preferences_gen.h:6254 ../build/bin/preferences_gen.h:6305 +#: ../build/bin/preferences_gen.h:6349 ../build/bin/preferences_gen.h:6393 +#: ../build/bin/preferences_gen.h:6437 ../build/bin/preferences_gen.h:6481 +#: ../build/bin/preferences_gen.h:6525 ../build/bin/preferences_gen.h:6569 +#: ../build/bin/preferences_gen.h:6635 ../build/bin/preferences_gen.h:6669 +#: ../build/bin/preferences_gen.h:6703 ../build/bin/preferences_gen.h:6737 +#: ../build/bin/preferences_gen.h:6771 ../build/bin/preferences_gen.h:6805 +#: ../build/bin/preferences_gen.h:6839 ../build/bin/preferences_gen.h:6873 +#: ../build/bin/preferences_gen.h:6906 ../build/bin/preferences_gen.h:6939 +#: ../build/bin/preferences_gen.h:6973 ../build/bin/preferences_gen.h:7014 +#: ../build/bin/preferences_gen.h:7053 ../build/bin/preferences_gen.h:7124 +#: ../build/bin/preferences_gen.h:7159 ../build/bin/preferences_gen.h:7210 +#: ../build/bin/preferences_gen.h:7245 ../build/bin/preferences_gen.h:7280 +#: ../build/bin/preferences_gen.h:7324 ../build/bin/preferences_gen.h:7390 +#: ../build/bin/preferences_gen.h:7424 ../build/bin/preferences_gen.h:7458 +#: ../build/bin/preferences_gen.h:7492 ../build/bin/preferences_gen.h:7526 +#: ../build/bin/preferences_gen.h:7560 ../build/bin/preferences_gen.h:7605 +#: ../build/bin/preferences_gen.h:7640 ../build/bin/preferences_gen.h:7675 +#: ../build/bin/preferences_gen.h:7731 ../build/bin/preferences_gen.h:7772 +#: ../build/bin/preferences_gen.h:7806 ../build/bin/preferences_gen.h:7840 +#: ../build/bin/preferences_gen.h:7874 ../build/bin/preferences_gen.h:7908 +#: ../build/bin/preferences_gen.h:7943 ../build/bin/preferences_gen.h:7984 +#: ../build/bin/preferences_gen.h:8025 ../build/bin/preferences_gen.h:8085 +#: ../build/bin/preferences_gen.h:8119 ../build/bin/preferences_gen.h:8154 +#: ../build/bin/preferences_gen.h:8199 ../build/bin/preferences_gen.h:8233 +#: ../build/bin/preferences_gen.h:8278 ../build/bin/preferences_gen.h:8313 +#: ../build/bin/preferences_gen.h:8365 ../build/bin/preferences_gen.h:8410 +#: ../build/bin/preferences_gen.h:8480 ../build/bin/preferences_gen.h:8526 +msgid "this setting has been modified" +msgstr "ta nastavitev je bila spremenjena" + +#. doesn't seem to work from gtkrc +#: ../build/bin/preferences_gen.h:4277 ../build/bin/preferences_gen.h:4460 +#: ../build/bin/preferences_gen.h:5065 ../build/bin/preferences_gen.h:5771 +#: ../build/bin/preferences_gen.h:6607 ../build/bin/preferences_gen.h:7096 +#: ../build/bin/preferences_gen.h:7362 ../src/gui/accelerators.c:2996 +#: ../src/gui/gtk.c:2641 ../src/gui/preferences.c:424 +#: ../src/gui/preferences.c:874 ../src/libs/modulegroups.c:3888 +msgid "?" +msgstr "?" + +#: ../build/bin/preferences_gen.h:4287 ../src/control/jobs/control_jobs.c:2352 +#: ../src/libs/import.c:173 +msgid "import" +msgstr "uvozi" + +#: ../build/bin/preferences_gen.h:4289 +msgid "session options" +msgstr "možnosti seje" + +#: ../build/bin/preferences_gen.h:4308 +msgid "base directory naming pattern" +msgstr "vzorec poimenovanja osnovnih map" + +#: ../build/bin/preferences_gen.h:4323 ../build/bin/preferences_gen.h:4362 +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4435 +#: ../build/bin/preferences_gen.h:4501 ../build/bin/preferences_gen.h:4535 +#: ../build/bin/preferences_gen.h:4569 ../build/bin/preferences_gen.h:4603 +#: ../build/bin/preferences_gen.h:4637 ../build/bin/preferences_gen.h:4671 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4747 +#: ../build/bin/preferences_gen.h:4782 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:4850 ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:4958 +#: ../build/bin/preferences_gen.h:4999 ../build/bin/preferences_gen.h:5040 +#: ../build/bin/preferences_gen.h:5106 ../build/bin/preferences_gen.h:5140 +#: ../build/bin/preferences_gen.h:5182 ../build/bin/preferences_gen.h:5217 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5329 +#: ../build/bin/preferences_gen.h:5363 ../build/bin/preferences_gen.h:5405 +#: ../build/bin/preferences_gen.h:5439 ../build/bin/preferences_gen.h:5473 +#: ../build/bin/preferences_gen.h:5507 ../build/bin/preferences_gen.h:5541 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5644 ../build/bin/preferences_gen.h:5678 +#: ../build/bin/preferences_gen.h:5712 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5847 +#: ../build/bin/preferences_gen.h:5882 ../build/bin/preferences_gen.h:5922 +#: ../build/bin/preferences_gen.h:5958 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6060 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6178 ../build/bin/preferences_gen.h:6223 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6318 +#: ../build/bin/preferences_gen.h:6362 ../build/bin/preferences_gen.h:6406 +#: ../build/bin/preferences_gen.h:6450 ../build/bin/preferences_gen.h:6494 +#: ../build/bin/preferences_gen.h:6538 ../build/bin/preferences_gen.h:6582 +#: ../build/bin/preferences_gen.h:6648 ../build/bin/preferences_gen.h:6682 +#: ../build/bin/preferences_gen.h:6716 ../build/bin/preferences_gen.h:6750 +#: ../build/bin/preferences_gen.h:6784 ../build/bin/preferences_gen.h:6818 +#: ../build/bin/preferences_gen.h:6852 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7032 +#: ../build/bin/preferences_gen.h:7071 ../build/bin/preferences_gen.h:7138 +#: ../build/bin/preferences_gen.h:7224 ../build/bin/preferences_gen.h:7259 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7505 ../build/bin/preferences_gen.h:7539 +#: ../build/bin/preferences_gen.h:7619 ../build/bin/preferences_gen.h:7654 +#: ../build/bin/preferences_gen.h:7693 ../build/bin/preferences_gen.h:7744 +#: ../build/bin/preferences_gen.h:7785 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7922 ../build/bin/preferences_gen.h:7956 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8133 ../build/bin/preferences_gen.h:8212 +#: ../build/bin/preferences_gen.h:8292 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 +#, c-format +msgid "double click to reset to `%s'" +msgstr "dvokliknite da bi ponovno nastavili na '%s'" + +#: ../build/bin/preferences_gen.h:4326 ../build/bin/preferences_gen.h:4365 +msgid "part of full import path for an import session" +msgstr "del polne poti za uvažanje" + +#: ../build/bin/preferences_gen.h:4347 +msgid "sub directory naming pattern" +msgstr "vzorec poimenovanja podmap" + +#: ../build/bin/preferences_gen.h:4386 +msgid "keep original filename" +msgstr "obdrži izvirno ime datoteke" + +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4501 +#: ../build/bin/preferences_gen.h:4535 ../build/bin/preferences_gen.h:4569 +#: ../build/bin/preferences_gen.h:4603 ../build/bin/preferences_gen.h:4637 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4850 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:5106 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5439 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5712 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6450 +#: ../build/bin/preferences_gen.h:6494 ../build/bin/preferences_gen.h:6538 +#: ../build/bin/preferences_gen.h:6582 ../build/bin/preferences_gen.h:6852 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7505 +#: ../build/bin/preferences_gen.h:7744 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7956 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8212 +msgctxt "preferences" +msgid "FALSE" +msgstr "FALSE" + +#: ../build/bin/preferences_gen.h:4399 +msgid "" +"keep original filename instead of a pattern while importing from camera or " +"card" +msgstr "" +"obdržite originalno ime datoteke namesto vzorca ob uvozu iz fotoaparata ali " +"kartice" + +#: ../build/bin/preferences_gen.h:4420 +msgid "file naming pattern" +msgstr "vzorec poimenovanja datotek" + +#: ../build/bin/preferences_gen.h:4438 +msgid "file naming pattern used for a import session" +msgstr "vzorec poimenovanja datotek za uvažanje" + +#: ../build/bin/preferences_gen.h:4470 ../src/gui/gtk.c:1266 +#: ../src/gui/preferences.c:544 ../src/libs/tools/lighttable.c:66 +#: ../src/views/lighttable.c:91 +msgid "lighttable" +msgstr "osvetljena podlaga" + +#: ../build/bin/preferences_gen.h:4472 ../build/bin/preferences_gen.h:5077 +#: ../build/bin/preferences_gen.h:6619 ../src/gui/preferences.c:270 +msgid "general" +msgstr "splošno" + +#: ../build/bin/preferences_gen.h:4491 +msgid "hide built-in presets for utility modules" +msgstr "skrij vgrajene začetne nastavitve za uporabne module" + +#: ../build/bin/preferences_gen.h:4504 +msgid "hides built-in presets of utility modules in presets menu." +msgstr "" +"skrije vgrajene začetne nastavitve uporabnih modulov v prednastavitvenem " +"meniju." + +#: ../build/bin/preferences_gen.h:4525 +msgid "use single-click in the collections module" +msgstr "uporabi enojni klik na plošči zbirk" + +#: ../build/bin/preferences_gen.h:4538 +msgid "" +"check this option to use single-click to select items in the collections " +"module. this will allow you to do range selections for date-time and numeric " +"values." +msgstr "" +"odkljukaj to možnost za uporabo enojnega klika za izbiro slik na plošči " +"zbirk. ta omogoča izbiro glede datumsko-časovnega intervala in številskih " +"vrednosti." + +#: ../build/bin/preferences_gen.h:4559 +msgid "expand a single utility module at a time" +msgstr "razširi po en modul osvetljene podlage naenkrat" + +#: ../build/bin/preferences_gen.h:4572 +msgid "this option toggles the behavior of shift clicking in lighttable mode" +msgstr "ta možnost preklaplja obnašanje dvigalke v načinu osvetljene podlage" + +#: ../build/bin/preferences_gen.h:4593 +msgid "scroll utility modules to the top when expanded" +msgstr "pomakni module osvetljene podlage na vrh, kadar je razširjeno" + +#: ../build/bin/preferences_gen.h:4606 ../build/bin/preferences_gen.h:5612 +msgid "" +"when this option is enabled then darktable will try to scroll the module to " +"the top of the visible list" +msgstr "" +"kadar je ta možnost omogočena, potem bo darktable poskusil premakniti ta " +"modul na vrh vidnega seznama" + +#: ../build/bin/preferences_gen.h:4627 +msgid "rating an image one star twice will not zero out the rating" +msgstr "" +"določanje ocene slike z dvojnim klikom na prvo zvezdico ne ugasne ocene" + +#: ../build/bin/preferences_gen.h:4640 +msgid "" +"defines whether rating an image one star twice will zero out star rating" +msgstr "" +"določanje ali naj dvojni klik slike z eno zvezdico da oceno nič zvezdic" + +#: ../build/bin/preferences_gen.h:4661 ../build/bin/preferences_gen.h:5284 +msgid "show scrollbars for central view" +msgstr "prikaži drsnike za osrednji pogled" + +#: ../build/bin/preferences_gen.h:4671 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:5140 ../build/bin/preferences_gen.h:5363 +#: ../build/bin/preferences_gen.h:5473 ../build/bin/preferences_gen.h:5507 +#: ../build/bin/preferences_gen.h:5541 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5678 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:6060 ../build/bin/preferences_gen.h:6178 +#: ../build/bin/preferences_gen.h:6318 ../build/bin/preferences_gen.h:6362 +#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6648 +#: ../build/bin/preferences_gen.h:6682 ../build/bin/preferences_gen.h:6716 +#: ../build/bin/preferences_gen.h:6750 ../build/bin/preferences_gen.h:6784 +#: ../build/bin/preferences_gen.h:6818 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7539 ../build/bin/preferences_gen.h:7785 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 +msgctxt "preferences" +msgid "TRUE" +msgstr "TRUE" + +#: ../build/bin/preferences_gen.h:4674 ../build/bin/preferences_gen.h:5297 +msgid "defines whether scrollbars should be displayed" +msgstr "določa, ali naj bodo prikazani drsniki" + +#: ../build/bin/preferences_gen.h:4695 +msgid "show image time with milliseconds" +msgstr "prikaži čas slike z milisekundami" + +#: ../build/bin/preferences_gen.h:4708 +msgid "defines whether time should be displayed with milliseconds" +msgstr "določa, ali naj bo čas prikazan z milisekundami" + +#: ../build/bin/preferences_gen.h:4717 +msgid "thumbnails" +msgstr "predogledne sličice" + +#: ../build/bin/preferences_gen.h:4736 +msgid "use raw file instead of embedded JPEG from size" +msgstr "uporabite surovo datoteko namesto vdelanega JPEG zaradi velikosti" + +#: ../build/bin/preferences_gen.h:4750 +msgid "" +"if the thumbnail size is greater than this value, it will be processed using " +"raw file instead of the embedded preview JPEG (better but slower).\n" +"if you want all thumbnails and pre-rendered images in best quality you " +"should choose the *always* option.\n" +"(more comments in the manual)" +msgstr "" +"če je velikost predogledne sličice večja od te vrednosti, bo obdelana z " +"uporabosurove datoteka namesto vdelanega predogleda JPEG (boljša, vendar " +"počasnejša). \n" +"če želite vse sličice in vnaprej upodobljene slike v najboljši kakovostinaj " +"izberejo možnost *vedno*.\n" +"(več komentarjev v priročniku)" + +#: ../build/bin/preferences_gen.h:4771 +msgid "high quality processing from size" +msgstr "visoko kakovostna obdelava zaradi velikosti" + +#: ../build/bin/preferences_gen.h:4785 +msgid "" +"if the thumbnail size is greater than this value, it will be processed using " +"the full quality rendering path (better but slower).\n" +"if you want all thumbnails and pre-rendered images in best quality you " +"should choose the *always* option.\n" +"(more comments in the manual)" +msgstr "" +"če je velikost predogledne sličice večja od te vrednosti, bo obdelana z " +"uporabo surove datoteke namesto vdelanega predogleda JPEG (boljša, vendar " +"počasnejša). \n" +"če želite vse sličice in vnaprej upodobljene slike v najboljši kakovosti naj " +"izberejo možnost *vedno*.\n" +"(več komentarjev v priročniku)" + +#: ../build/bin/preferences_gen.h:4806 +msgid "enable disk backend for thumbnail cache" +msgstr "omogoči diskovni prostor za zalogovnik predoglednih sličic" + +#: ../build/bin/preferences_gen.h:4819 +msgid "" +"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want. light table " +"performance will be increased greatly when browsing a lot.\n" +"to generate all thumbnails of your entire collection offline, run 'darktable-" +"generate-cache'." +msgstr "" +"če je to omogočeno, bo program pisal predogledne sličice na disk (.cache/" +"darktable/), kadar bi moral slike pospraviti iz medpomnilnika. Vedite, da to " +"lahko zahteva veliko pomnilnika (nekaj GB za 20 tisoč slik) in ne bo nikoli " +"več zbrisalo shranjenih predoglednih sličic. Lahko jih sicer čisto varno " +"zbrišete ročno, če želite. Zmogljivost osvetljene mize s tem zelo povečamo, " +"če veliko brskamo po slikah. če želite generirati vse predogledne sličice " +"off line, poženite 'darktable-generate-cache'." + +#: ../build/bin/preferences_gen.h:4840 +msgid "enable disk backend for full preview cache" +msgstr "omogoči pomoč diska za začasno shranjevanje polnega predogleda" + +#: ../build/bin/preferences_gen.h:4853 +msgid "" +"if enabled, write full preview to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want.\n" +"light table performance will be increased greatly when zooming image in full " +"preview mode." +msgstr "" +"če je omogočeno, piše polni predogled na disk (.cache/darktable/) kadar je " +"pregnan iz hitrega medpomnilnika. vedite, da to lahko zavzame veliko " +"pomnilnika (več gigabytov za 20 tisoč slik) in ne bo nikoli več pobrisalo " +"teh sličic. sicer je čisto varno ročno brisanje, če želite. učinkovitost " +"osvetljene podlage se bo zelo povečala ob zumiranju slik v načinu predogleda." + +#: ../build/bin/preferences_gen.h:4874 +#| msgid "cached thumbnails invalidation" +msgid "generate thumbnails in background" +msgstr "generiraj predogledne sličice v ozadju" + +#: ../build/bin/preferences_gen.h:4888 +msgid "" +"if 'enable disk backend for thumbnail cache' is enabled thumbnails/mipmaps " +"up to the selected size are generated while user is inactive in lighttable." +msgstr "" +"če 'omogoči zaledje diska za predpomnilnik sličic' je omogočeno se" +" predogledne sličice" +"do izbrane velikosti generirajo, ko je uporabnik neaktiven v svetlobni" +" podlagi." + +#: ../build/bin/preferences_gen.h:4909 +#| msgid "color manage cached thumbnails" +msgid "reset cached thumbnails" +msgstr "ponovno nastavi predogledne sličice v predpomnilniku" + +#: ../build/bin/preferences_gen.h:4922 +msgid "" +"force thumbnails to be regenerated by resetting the database. this may be " +"needed in case some thumbnails have been manually removed or corrupted." +msgstr "" +"prisili regeneracijo sličic s ponastavitvijo baze podatkov. to je lahko" +" potrebno v primeru, da so bile nekatere sličice ročno odstranjene ali" +" poškodovane." + +#: ../build/bin/preferences_gen.h:4943 +msgid "delimiters for size categories" +msgstr "ločilniki za kategorije velikosti" + +#: ../build/bin/preferences_gen.h:4961 +msgid "" +"size categories are used to be able to set different overlays and CSS values " +"depending of the size of the thumbnail, separated by |.\n" +"for example, 120|400 means 3 categories of thumbnails: <120px, 120-400px, " +">400px" +msgstr "" +"kategorije velikosti se uporabljajo za nastavitev različnih prekrivanj in " +"vrednosti css odvisno od velikosti predogledne sličice, ločene z |. \n" +"na primer 120|400pomeni 3 kategorije sličic: <120px, 120-400px, >400px" + +#: ../build/bin/preferences_gen.h:4982 +msgid "pattern for the thumbnail extended overlay text" +msgstr "vzorec za sličico razširjenega prekrivnega besedila" + +#: ../build/bin/preferences_gen.h:5002 ../build/bin/preferences_gen.h:5043 +msgid "see manual to know all the tags you can use." +msgstr "poglejte v priročnik za vse možne oznake, ki jih lahko uporabljate." + +#: ../build/bin/preferences_gen.h:5023 +msgid "pattern for the thumbnail tooltip (empty to disable)" +msgstr "vzorec za orodni namig na sličici (prazno za onemogočenje)" + +#: ../build/bin/preferences_gen.h:5075 ../src/gui/gtk.c:1267 +#: ../src/gui/preferences.c:544 ../src/views/darkroom.c:94 +msgid "darkroom" +msgstr "temnica" + +#: ../build/bin/preferences_gen.h:5096 +msgid "scroll down to increase mask parameters" +msgstr "pomakni navzdol za povečanje parametrov maske" + +#: ../build/bin/preferences_gen.h:5109 +msgid "" +"when using the mouse scroll wheel to change mask parameters, scroll down to " +"increase the mask size, feather size, opacity, brush hardness and gradient " +"curvature\n" +"by default scrolling up increases these parameters" +msgstr "" +"ko uporabljate kolesce na miški, da bi spremenili parametre maske, se " +"pomaknite navzdol da bi povečali velikost maske, velikost peresa, " +"neprosojnost, trdoto čopiča in gradienta ukrivljenost\n" +"pomikanje navzgor privzeto poveča te parametre" + +#: ../build/bin/preferences_gen.h:5130 +msgid "middle mouse button zooms to 200%" +msgstr "srednji gumb miške približa na 200%" + +#: ../build/bin/preferences_gen.h:5144 +#, no-c-format +msgid "" +"if enabled, the zoom level will cycle between 100%, 200% and fit to viewport " +"on middle mouse clicks. if disabled, it will toggle between viewport size " +"and 100%, and the 'ctrl' key can be used to control the zoom level." +msgstr "" +"ko kliknete na srednji gumb miške za povečavo, bo stopnja povečave krožila " +"na 100%, 200%, na velikost prileganja zaslonu. v nasprotnem primeru " +"preklaplja med prileganjem na zaslon in 100%, kontrolko pa lahko uporabite " +"za nadzor stopnje povečave." + +#: ../build/bin/preferences_gen.h:5165 +msgid "pattern for the image information line" +msgstr "vzorec za vrstico informacije o sliki" + +#: ../build/bin/preferences_gen.h:5185 +msgid "see manual for a list of the tags you can use." +msgstr "poglejte v priročnik na seznam oznak, ki jih lahko uporabljate." + +#: ../build/bin/preferences_gen.h:5206 +msgid "position of the image information line" +msgstr "pozicija informacijske vrstice o sliki" + +#: ../build/bin/preferences_gen.h:5240 +msgid "border around image in darkroom mode" +msgstr "rob okrog slike v načinu temnice" + +#: ../build/bin/preferences_gen.h:5260 ../build/bin/preferences_gen.h:7182 +#: ../build/bin/preferences_gen.h:7303 ../build/bin/preferences_gen.h:7584 +#: ../build/bin/preferences_gen.h:8048 ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8257 ../build/bin/preferences_gen.h:8389 +#: ../build/bin/preferences_gen.h:8504 ../build/bin/preferences_gen.h:8550 +#, c-format +msgid "double click to reset to `%d'" +msgstr "dvokliknite za ponovno nastavitev na '%d'" + +#: ../build/bin/preferences_gen.h:5263 +msgid "" +"process the image in darkroom mode with a small border. set to 0 if you " +"don't want any border." +msgstr "" +"obdelaj sliko v načinu temnice s tankim robom. Postavite na 0, če roba ne " +"želite." + +#: ../build/bin/preferences_gen.h:5318 +msgid "reduce resolution of preview image" +msgstr "zmanjšaj ločljivost predogleda slike" + +#: ../build/bin/preferences_gen.h:5332 +msgid "decrease to speed up preview rendering, may hinder accurate masking" +msgstr "" +"zmanjšanje za pospešitev upodabljanja predogleda lahko ovira natančno " +"zakrivanje" + +#: ../build/bin/preferences_gen.h:5353 +msgid "show loading screen between images" +msgstr "prikazuj zaslon nalaganja med slikami" + +#: ../build/bin/preferences_gen.h:5366 +msgid "" +"show gray loading screen when navigating between images in the darkroom\n" +"disable to just show a toast message" +msgstr "" +"med navigacijo med slikami v temni sobi prikaži siv zaslon za nalaganje\n" +"onemogoči, da samo prikaže zaključno sporočilo" + +#: ../build/bin/preferences_gen.h:5375 +msgid "modules" +msgstr "moduli" + +#: ../build/bin/preferences_gen.h:5394 +msgid "display of individual color channels" +msgstr "prikaži posamezne barvne kanale" + +#: ../build/bin/preferences_gen.h:5408 +msgid "" +"defines how color channels are displayed when activated in the parametric " +"masks feature." +msgstr "" +"določa, kako so prikazani barvni kanali, kadar so aktivirani v parametrski " +"maski." + +#: ../build/bin/preferences_gen.h:5429 +msgid "hide built-in presets for processing modules" +msgstr "skrij začetne nastavitve za obdelovalnih modulov" + +#: ../build/bin/preferences_gen.h:5442 +msgid "" +"hides built-in presets of processing modules in both presets and favourites " +"menu." +msgstr "" +"skrije vgrajene prednastavitve obdelovalnih modulov tako prednastavitvah kot " +"v meniju priljubljenih." + +#: ../build/bin/preferences_gen.h:5463 ../build/bin/preferences_gen.h:5476 +msgid "show the guides widget in modules UI" +msgstr "prikaži gradnik vodil v modulih uporabniškega vmesnika" + +#: ../build/bin/preferences_gen.h:5497 +msgid "expand a single processing module at a time" +msgstr "razširi po en modul temnice naenkrat" + +#: ../build/bin/preferences_gen.h:5510 +msgid "this option toggles the behavior of shift clicking in darkroom mode" +msgstr "" +"ta možnost preklaplja obnašanje klikanja ob pritisku dvigalke v načinu " +"temnice" + +#: ../build/bin/preferences_gen.h:5531 +msgid "only collapse modules in current group" +msgstr "strni samo module v tekoči skupini" + +#: ../build/bin/preferences_gen.h:5544 +msgid "" +"if only expanding a single module at a time, only collapse other modules in " +"the current group - ignore modules in other groups" +msgstr "" +"če razširiš samo po en modul naenkrat, samo strni druge module v trenutni " +"skupina - prezri module v drugih skupinah" + +#: ../build/bin/preferences_gen.h:5565 +msgid "expand the module when it is activated, and collapse it when disabled" +msgstr "razširi modul, kadar je aktiviran in ga skrči, kadar je onemogočen" + +#: ../build/bin/preferences_gen.h:5578 +msgid "" +"this option allows to expand or collapse automatically the module when it is " +"enabled or disabled." +msgstr "" +"ta nastavitev dovoljuje avtomatično razširjanje oz. skrčenje modula, kadar " +"je omogočen oz. onemogočen." + +#: ../build/bin/preferences_gen.h:5599 +msgid "scroll processing modules to the top when expanded" +msgstr "pomakni obdelovalne module na vrh, kadar so razširjeni" + +#: ../build/bin/preferences_gen.h:5633 +msgid "show right-side buttons in processing module headers" +msgstr "prikaži desne gumbe v glavah obdelovalnih modulov" + +#: ../build/bin/preferences_gen.h:5647 +msgid "" +"when the mouse is not over a module, the multi-instance, reset and preset " +"buttons can be hidden:\n" +" - 'always': always show all buttons,\n" +" - 'active': only show the buttons when the mouse is over the module,\n" +" - 'dim': buttons are dimmed when mouse is away,\n" +" - 'auto': hide the buttons when the panel is narrow,\n" +" - 'fade': fade out all buttons when panel narrows,\n" +" - 'fit': hide all the buttons if the module name doesn't fit,\n" +" - 'smooth': fade out all buttons in one header simultaneously,\n" +" - 'glide': gradually hide individual buttons as needed" +msgstr "" +"kadar miška ni nad modulom, je mogoče skriti gumbe za več pojavkov, ponovne " +"nastavitve in prednastavitve:\n" +"- 'vedno' - vedno prikaži vse gumbe,\n" +"- 'aktivno' - gumbe prikaži samo, ko je miška nad modulom,\n" +"- 'zatemnjeno' - gumbi so zatemnjeni, ko je miška stran,\n" +"- 'samodejno' - skrij gumbe, ko je podokno ozko,\n" +"- 'obledelo' - obledijo vsi gumbi, kadar se plošča zoži,\n" +"- 'prilagojeno' - skrij vse gumbe, če ime modula ne ustreza,\n" +"- 'gladko' - hkrati obledi vse gumbe v eni glavi,\n" +"- 'drsenje' - po potrebi postopoma skrij posamezne gumbe" + +#: ../build/bin/preferences_gen.h:5668 +msgid "show mask indicator in module headers" +msgstr "prikaži indikator maske v glavah obdelovalnih modulov" + +#: ../build/bin/preferences_gen.h:5681 +msgid "" +"if enabled, an icon will be shown in the header of any processing modules " +"that have a mask applied" +msgstr "" +"če je omogočena, bo prikazana ikona v glavi katerega koli procesnega modula, " +"ki ima vneseno masko" + +#: ../build/bin/preferences_gen.h:5702 +msgid "prompt for name on addition of new instance" +msgstr "poziv za ime pri dodajanju novega pojavka" + +#: ../build/bin/preferences_gen.h:5715 +msgid "" +"if enabled, a rename prompt will be present for each new module instance " +"(either new instance or duplicate)" +msgstr "" +"če je omogočeno, bo za vsak nov pojavek modula prisoten poziv za " +"preimenovanje (ne glede ali je nov primer ali dvojnik)" + +#: ../build/bin/preferences_gen.h:5736 +msgid "automatically update module name" +msgstr "avtomatično posodobi ime modula" + +#: ../build/bin/preferences_gen.h:5749 +msgid "" +"if enabled, the module name will be automatically updated to match a preset " +"name or a preset instance name if present." +msgstr "" +"če je omogočeno, bo ime modula samodejno posodobljeno, tako da ustreza " +"prednastavljenemu imenu ali prednastavljeno ime pojavka, če je prisoten." + +#: ../build/bin/preferences_gen.h:5781 +msgid "processing" +msgstr "obdelava" + +#: ../build/bin/preferences_gen.h:5783 +msgid "image processing" +msgstr "obdelava slike" + +#: ../build/bin/preferences_gen.h:5802 +msgid "always use LittleCMS 2 to apply output color profile" +msgstr "vedno uporabi LittleCMS 2 za kontrolo izhodnega barvnega profila" + +#: ../build/bin/preferences_gen.h:5815 +msgid "this is slower than the default." +msgstr "to je počasnejše od privzete možnosti." + +#: ../build/bin/preferences_gen.h:5836 +msgid "pixel interpolator (warp)" +msgstr "interpolator pikslov (warp)" + +#: ../build/bin/preferences_gen.h:5850 +msgid "" +"pixel interpolator used in modules for rotation, lens correction, liquify, " +"cropping and final scaling (bilinear, bicubic, lanczos2)." +msgstr "" +"interpolator pikslov v modulih za zasuk ter popravke leč, utekočinjenje, " +"obrezovanje in končno prilagajanje velikosti (bilinearna, bikubična, " +"anczos2)." + +#: ../build/bin/preferences_gen.h:5871 +msgid "pixel interpolator (scaling)" +msgstr "interpolator pikslov (prilagajanje merila)" + +#: ../build/bin/preferences_gen.h:5885 +msgid "" +"pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." +msgstr "" +"interpolator pikslov uporabljen prilagajanju meril (bilinearno, bikubično, " +"lanczos2, lanczos3)." + +#: ../build/bin/preferences_gen.h:5906 +msgid "LUT 3D root folder" +msgstr "korenska mapa za tabelo iskanja 3D" + +#: ../build/bin/preferences_gen.h:5912 ../src/control/jobs/control_jobs.c:1691 +#: ../src/control/jobs/control_jobs.c:1745 ../src/gui/preferences.c:1080 +#: ../src/gui/presets.c:421 ../src/imageio/storage/disk.c:197 +#: ../src/imageio/storage/disk.c:261 ../src/imageio/storage/gallery.c:149 +#: ../src/imageio/storage/gallery.c:213 ../src/imageio/storage/latex.c:145 +#: ../src/imageio/storage/latex.c:199 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1673 ../src/libs/styles.c:391 +#: ../src/lua/preferences.c:668 +msgid "select directory" +msgstr "izberi mapo" + +#: ../build/bin/preferences_gen.h:5926 +msgid "" +"this folder (and sub-folders) contains LUT files used by LUT 3D module. " +"(need a restart)." +msgstr "" +"ta mapa (in podmape) vsebujejo datoteke s tabelami iskanja, ki jih " +"uporabljajo moduli LUT3D. (potreben je ponovni zagon)." + +#: ../build/bin/preferences_gen.h:5947 +msgid "auto-apply pixel workflow defaults" +msgstr "samodejna uporaba privzete nastavitve delovnega toka pikslov" + +#: ../build/bin/preferences_gen.h:5961 +msgid "" +"scene-referred workflow is based on linear modules and will auto-apply " +"filmic or sigmoid, color calibration and exposure,\n" +"display-referred workflow is based on Lab modules and will auto-apply base " +"curve, white balance and the legacy module pipe order." +msgstr "" +"delovni tok glede na sceno temelji na linearnih modulih in bo samodejno " +"uporabil način filmično ali sigmoidalno nastavitev barv in osvetlitve,\n" +"tok, ki se nanaša na zaslon, temelji na modulih Lab in bo samodejno " +"uveljavil osnovno krivuljo in zapuščino vrstnega reda modulov." + +#: ../build/bin/preferences_gen.h:5982 +msgid "auto-apply per camera basecurve presets" +msgstr "avtomatsko uporabi nastavitve osnovne krivulje kamere" + +#: ../build/bin/preferences_gen.h:5995 +msgid "" +"use the per-camera basecurve by default instead of the generic manufacturer " +"one if there is one available (needs a restart).\n" +"this option is taken into account when the \"auto-apply pixel workflow " +"defaults\" is set to \"display-referred\".\n" +"to prevent auto-apply basecurve presets \"auto-apply pixel workflow " +"defaults\" should be set to \"none\"" +msgstr "" +"privzeto uporabite osnovno krivuljo kamere namesto generične krivulje " +"proizvajalca, če je na voljo (potreben je ponovni zagon).\n" +"ta možnost se upošteva, ko je samodejna uporaba privzete nastavitve " +"delovnega toka pikslov nastavljena \"glede na zaslon\".\n" +"da preprečili samodejna uporaba privzete nastavitve delovnega toka pikslov " +"mora biti to nastavljeno na \"nič\"" + +#: ../build/bin/preferences_gen.h:6016 +msgid "detect monochrome previews" +msgstr "zaznavaj enobarvne predoglede" + +#: ../build/bin/preferences_gen.h:6029 +msgid "" +"many monochrome images can be identified via EXIF and preview data. beware: " +"this slows down imports and reading of EXIF data" +msgstr "" +"številne enobarvne slike je mogoče identificirati prek podatkov EXIF in " +"predogleda. pozor: to upočasni uvoz in branje EXIF podatkov" + +#: ../build/bin/preferences_gen.h:6050 +msgid "show warning messages" +msgstr "prikaži opozorilna sporočila" + +#: ../build/bin/preferences_gen.h:6063 +msgid "" +"display messages in modules to warn beginner users when non-standard and " +"possibly harmful settings are used in the pipeline.\n" +"these messages can be false-positive and should be disregarded if you know " +"what you are doing. this option will hide them all the time." +msgstr "" +"prikaži sporočila v modulih, da opozorijo začetnike na nestandardne " +"morebitne škodljive nastavitve, ki so uporabljene v cevovodu.\n" +"ta sporočila so lahko lažno pozitivna in jih je treba prezreti, če veste kaj " +"delate. ta možnost jih bo ves čas skrivala." + +#: ../build/bin/preferences_gen.h:6072 +#| msgid "CPU / GPU / memory" +msgid "CPU / memory" +msgstr "CPE / pomnilnik" + +#: ../build/bin/preferences_gen.h:6091 +msgid "darktable resources" +msgstr "viri programa darktable" + +#: ../build/bin/preferences_gen.h:6106 +#, no-c-format +msgid "" +"defines how much darktable may take from your system resources:\n" +" - 'default': darktable takes ~50% of your systems resources and gives " +"darktable enough to be still performant.\n" +" - 'small': should be used if you are simultaneously running applications " +"taking large parts of your systems memory or OpenCL/GL applications like " +"games or Hugin.\n" +" - 'large': is the best option if you are mainly using darktable and want it " +"to take most of your systems resources for performance.\n" +" - 'unrestricted': should only be used for developing extremely large images " +"as darktable will take all of your systems resources\n" +" and thus might lead to swapping and unexpected performance drops.\n" +" use with caution and not recommended for general use!" +msgstr "" +"določi, koliko lahko program darktable pobere vaših sistemskih virov.\n" +" - 'privzeto': darktable pobere ~50 %% sistemskih virov in nudi darktablu " +"dovolj, da lahko še vedno deluje.\n" +" - 'majhno': naj bi uporabljali, če hkrati uporabljate aplikacije, ki " +"poberejo velik del pomnilnika vaših sistemov ali aplikacije OpenCL/GL, kot " +"so igre ali Hugin.\n" +" - 'veliko': je najboljša možnost, če v glavnem uporabljate darktable in ga " +"želite uporabiti večino sistemskih virov za čim večjo zmogljivost programa.\n" +" - 'neomejeno': bi ga smeli uporabiti samo za razvoj izjemno velikih slik, " +"ker bo darktable vzel vse sistemske vire, kar lahko privede do zamenjav " +"pomnilnika in nepričakovan upad zmogljivosti. Uporabljajte previdno, saj ni " +"priporočljivo za splošno uporabo!" + +#: ../build/bin/preferences_gen.h:6127 +msgid "prefer performance over quality" +msgstr "prednost učinkovitosti pred kakovostjo" + +#: ../build/bin/preferences_gen.h:6140 +msgid "" +"if switched on, thumbnails and previews are rendered at lower quality but 4 " +"times faster" +msgstr "" +"če je vklopljeno, se sličice in predogledi upodabljajo v slabši kakovosti, a " +"4 krat hitreje" + +#: ../build/bin/preferences_gen.h:6149 +#| msgid "OpenEXR" +msgid "OpenCL" +msgstr "OpenCL" + +#: ../build/bin/preferences_gen.h:6168 +msgid "activate OpenCL support" +msgstr "aktiviraj podporo za OpenCL" + +#: ../build/bin/preferences_gen.h:6181 +msgid "" +"if found, use OpenCL runtime on your system to speed up processing.\n" +"can be switched on and off at any time." +msgstr "" +"če je najdena, uporabi podporo OpenCL za pospešeno obdelavo.\n" +"možnost lahko vklopimo ali izklopimo ob poljubnem času." + +#: ../build/bin/preferences_gen.h:6185 ../build/bin/preferences_gen.h:6230 +#: ../build/bin/preferences_gen.h:6274 ../build/bin/preferences_gen.h:6325 +#: ../build/bin/preferences_gen.h:6369 ../build/bin/preferences_gen.h:6413 +#: ../build/bin/preferences_gen.h:6457 ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6545 ../build/bin/preferences_gen.h:7700 +msgid "not available" +msgstr "ni na voljo" + +#: ../build/bin/preferences_gen.h:6187 ../build/bin/preferences_gen.h:6188 +#: ../build/bin/preferences_gen.h:6232 ../build/bin/preferences_gen.h:6233 +#: ../build/bin/preferences_gen.h:6276 ../build/bin/preferences_gen.h:6277 +#: ../build/bin/preferences_gen.h:6327 ../build/bin/preferences_gen.h:6328 +#: ../build/bin/preferences_gen.h:6371 ../build/bin/preferences_gen.h:6372 +#: ../build/bin/preferences_gen.h:6415 ../build/bin/preferences_gen.h:6416 +#: ../build/bin/preferences_gen.h:6459 ../build/bin/preferences_gen.h:6460 +#: ../build/bin/preferences_gen.h:6503 ../build/bin/preferences_gen.h:6504 +#: ../build/bin/preferences_gen.h:6547 ../build/bin/preferences_gen.h:6548 +#: ../build/bin/preferences_gen.h:7702 ../build/bin/preferences_gen.h:7703 +msgid "not available on this system" +msgstr "ni na voljo na tem sistemu" + +#: ../build/bin/preferences_gen.h:6212 +msgid "OpenCL scheduling profile" +msgstr "profil časovnega planiranja OpenCL" + +#: ../build/bin/preferences_gen.h:6226 +msgid "" +"defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled " +"systems:\n" +" - 'default': GPU processes full and CPU processes preview pipe (adaptable " +"by config parameters),\n" +" - 'multiple GPUs': process both pixelpipes in parallel on two different " +"GPUs,\n" +" - 'very fast GPU': process both pixelpipes sequentially on the GPU." +msgstr "" +"določa kako sta planirana tokova za predogled celotnega procesov pixelpipe " +"na sistemih z omogočenim OpenCL:\n" +" - 'privzeto:' - GPE obdeluje vse in CPE obdeluje tok predogleda (glede na " +"nastavljene parametre);\n" +" - 'več GPE:' - vzporedno se obdelujeta oba tokova na dveh GPE;\n" +" - 'zelo hiter GPE' - zaporedno se obdeluje oba procesa na GPE." + +#: ../build/bin/preferences_gen.h:6257 +msgid "use all device memory" +msgstr "uporabi ves pomnilnik naprave" + +#: ../build/bin/preferences_gen.h:6270 +msgid "" +"if enabled darktable will use all device memory except a safety margin " +"(headroom, default is 600MB)" +msgstr "" +"če je omogočeno, bo dark table uporabil ves pomnilnik naprave razen" +" varnostnega zaloge (privzeto je 600 MB)" +"​" + +#: ../build/bin/preferences_gen.h:6289 +msgid "OpenCL drivers" +msgstr "Gonilniki OpenCL" + +#: ../build/bin/preferences_gen.h:6308 +msgid "Intel GPU" +msgstr "Intel GPE" + +#: ../build/bin/preferences_gen.h:6321 +msgid "Intel(R) OpenCL Graphics for all supported platforms (vendor provided)" +msgstr "" +"Grafika Intel(R) OpenCL za vse podprte platforme (zagotovil proizvajalec)" + +#: ../build/bin/preferences_gen.h:6352 +msgid "Nvidia CUDA" +msgstr "Nvidia CUDA" + +#: ../build/bin/preferences_gen.h:6365 +msgid "Nvidia CUDA based OpenCL (vendor provided)" +msgstr "OpenCL, ki temelji na Nvidia CUDA (priskrbel proizvajalec)" + +#: ../build/bin/preferences_gen.h:6396 +msgid "AMD ROCm" +msgstr "AMD ROCm" + +#: ../build/bin/preferences_gen.h:6409 +msgid "AMD Accelerated Parallel Processing (vendor provided)" +msgstr "" +"AMD Accelerated Parallel Processing (zagotovil proizvajalec)" +"​" + +#: ../build/bin/preferences_gen.h:6440 +msgid "RustiCL" +msgstr "RustiCL" + +#: ../build/bin/preferences_gen.h:6453 +msgid "" +"RustiCL Mesa OpenCL, still unstable. if you want to use this, you should " +"disable the vendor driver" +msgstr "" +"RustiCL Mesa OpenCL, še vedno nestabilen. če želite to uporabiti, morate" +" onemogočite gonilnik proizvajalca" + +#: ../build/bin/preferences_gen.h:6484 +msgid "Apple" +msgstr "Apple" + +#: ../build/bin/preferences_gen.h:6497 +msgid "Apple OpenCL (vendor provided)" +msgstr "Apple OpenCL (priskrbi proizvajalec)" + +#: ../build/bin/preferences_gen.h:6528 +msgid "Microsoft OpenCLOn12" +msgstr "Microsoft OpenCLOn12" + +#: ../build/bin/preferences_gen.h:6541 +msgid "" +"Microsoft OpenCLOn12, only use this if the vendor provided driver does not " +"work or there is none provided." +msgstr "" +"Microsoft OpenCLOn12, uporabite to le, če gonilnik, ki ga je zagotovil" +" prodajalec, tega ne uporablja ali pa ga ni." + +#: ../build/bin/preferences_gen.h:6572 +#| msgid "group the forms" +msgid "other platforms" +msgstr "ostale platforme" + +#: ../build/bin/preferences_gen.h:6585 +msgid "" +"if set, all unspecified platforms are accepted. only do this if no vendor " +"driver is available" +msgstr "" +"če je nastavljeno, so sprejete vse neomenjene platforme. to storite le, če ni" +" na voljo gonilnika proizvajalca" + +#: ../build/bin/preferences_gen.h:6617 +msgid "security" +msgstr "varnost" + +#: ../build/bin/preferences_gen.h:6638 +msgid "ask before removing images from the library" +msgstr "vprašaj pred odstranjevanjem slik iz knjižnice" + +#: ../build/bin/preferences_gen.h:6651 +msgid "always ask the user before removing image information from the library" +msgstr "" +"vedno vprašaj uporabnika pred kakršnimkoli odstranjevanjem informacije o " +"sliki iz knjižnice" + +#: ../build/bin/preferences_gen.h:6672 +msgid "ask before deleting images from disk" +msgstr "vprašaj pred odstranjevanjem slike z diska" + +#: ../build/bin/preferences_gen.h:6685 +msgid "always ask the user before any image file is deleted" +msgstr "vedno vprašaj uporabnika pred brisanjem kakršnekoli datoteke" + +#: ../build/bin/preferences_gen.h:6706 +msgid "ask before discarding history stack" +msgstr "vprašaj pred odstranjevanjem sklada zgodovine" + +#: ../build/bin/preferences_gen.h:6719 +msgid "always ask the user before history stack is discarded on any image" +msgstr "" +"vedno vprašaj uporabnika pred odstranjevanjem sklada zgodovine katerekoli " +"slike" + +#: ../build/bin/preferences_gen.h:6740 +msgid "try to use trash when deleting images" +msgstr "ob brisanju datoteke jih poskusi prestaviti v koš za smeti" + +#: ../build/bin/preferences_gen.h:6753 +msgid "" +"send files to trash instead of permanently deleting files on system that " +"supports it" +msgstr "" +"prestavite datoteke v koš za smeti namesto nepreklicnega brisanja na " +"operacijskih sistemih, ki to dopuščajo" + +#: ../build/bin/preferences_gen.h:6774 +msgid "ask before moving images from film roll folder" +msgstr "vprašaj pred prenosom slik iz mape z zvitki filmov" + +#: ../build/bin/preferences_gen.h:6787 +msgid "always ask the user before any image file is moved." +msgstr "vedno vprašaj pred kakršnimkoli prenosom datoteke s sliko." + +#: ../build/bin/preferences_gen.h:6808 +msgid "ask before copying images to new film roll folder" +msgstr "vprašaj pred kopiranjem slik iz mape s filmi" + +#: ../build/bin/preferences_gen.h:6821 +msgid "always ask the user before any image file is copied." +msgstr "vedno vprašaj pred kakršnimkoli kopiranjem slik." + +#: ../build/bin/preferences_gen.h:6842 +msgid "ask before removing empty folders" +msgstr "vprašaj pred odstranjevanjem praznih map" + +#: ../build/bin/preferences_gen.h:6855 +msgid "" +"always ask the user before removing any empty folder. this can happen after " +"moving or deleting images." +msgstr "" +"vedno vprašaj uporabnika pred brisanjem prazne mape. to se lahko zgodi po " +"prenosu ali brisanjem slik." + +#: ../build/bin/preferences_gen.h:6876 +msgid "ask before deleting a tag" +msgstr "vprašaj pred brisanjem oznake" + +#: ../build/bin/preferences_gen.h:6909 +msgid "ask before deleting a style" +msgstr "vprašaj pred brisanjem sloga" + +#: ../build/bin/preferences_gen.h:6942 +msgid "ask before deleting a preset" +msgstr "vprašaj pred brisanjem začetnih nastavitev" + +#: ../build/bin/preferences_gen.h:6955 +msgid "will ask for confirmation before deleting or overwriting a preset" +msgstr "bo prosil za potrditev pred brisanjem ali prepisovanjem prednastavitve" + +#: ../build/bin/preferences_gen.h:6976 +msgid "ask before exporting in overwrite mode" +msgstr "vprašaj pred izvažanjem v prepisovalnem načinu" + +#: ../build/bin/preferences_gen.h:6989 +msgid "will ask for confirmation before exporting files in overwrite mode" +msgstr "bo prosil za potrditev pred izvažanjem datotek v prepisovalnem načinu" + +#. italic +#: ../build/bin/preferences_gen.h:6998 ../src/libs/tools/viewswitcher.c:148 +msgid "other" +msgstr "ostalo" + +#: ../build/bin/preferences_gen.h:7017 +msgid "password storage backend to use" +msgstr "uporaba gesla za shranjevanje v ozadju" + +#: ../build/bin/preferences_gen.h:7035 +msgid "" +"the storage backend for password storage: auto, none, libsecret, kwallet" +msgstr "shramba gesel: auto, nič, libsecret, kwallet" + +#: ../build/bin/preferences_gen.h:7056 +msgid "executable for playing audio files" +msgstr "program za predvajanje avdio datotek" + +#: ../build/bin/preferences_gen.h:7074 +msgid "" +"this external program is used to play audio files some cameras record to " +"keep notes for images" +msgstr "" +"ta zunanji program uporabim za predvajanje avdio datotek, kjer nekatere " +"kamere shranjujejo opombe k slikam" + +#: ../build/bin/preferences_gen.h:7106 +msgid "storage" +msgstr "shramba" + +#: ../build/bin/preferences_gen.h:7108 ../src/control/crawler.c:717 +msgid "database" +msgstr "podatkovna baza" + +#: ../build/bin/preferences_gen.h:7127 +msgid "create database snapshot" +msgstr "ustvari podatkovno bazo posnetka" + +#: ../build/bin/preferences_gen.h:7141 +msgid "" +"database snapshots are created right before closing darktable. options allow " +"you to choose how often to make snapshots:\n" +" - 'never': simply don't do snapshots. that way the only snapshots done are " +"mandatory version-upgrade snapshots\n" +" - 'once a month': create snapshot if a month has passed since last " +"snapshot\n" +" - 'once a week': create snapshot if 7 days had passed since last snapshot\n" +" - 'once a day': create snapshot if over 24h passed since last snapshot\n" +" - 'on close': create snapshot every time darktable is closed" +msgstr "" +"posnetki baze podatkov so ustvarjeni tik pred zaprtjem programa darktable. " +"možnosti vam dovoljujejo izbiro, kako pogosto boste naredili posnetke:\n" +" - 'nikoli:' - preprosto ne delajte posnetkov. na ta način so edini narejeni " +"posnetki obvezni posnetki pred nadgradnjo verzije\n" +" - 'enkrat na mesec' - ustvarite posnetek, če je od zadnjega posnetka " +"pretekel en mesec\n" +" - 'enkrat na teden:' - ustvarite posnetek, če je od zadnjega posnetka " +"minilo 7 dni\n" +" - 'enkrat na dan:' - ustvarite posnetek, če je od zadnjega posnetka minilo " +"več kot 24 ur\n" +" - 'od zaprtju' - ustvarite posnetek vsakič, ko zaprete program darktable" + +#: ../build/bin/preferences_gen.h:7162 +msgid "how many snapshots to keep" +msgstr "koliko posnetkov hraniti" + +#: ../build/bin/preferences_gen.h:7185 +msgid "" +"after successfully creating snapshot, how many older snapshots to keep " +"(excluding mandatory version update ones). enter -1 to keep all snapshots\n" +"keep in mind that snapshots do take some space and you only need the most " +"recent one for successful restore" +msgstr "" +"po uspešnem kreiranju posnetka, koliko starejših posnetkov je treba obdržati " +"(razen obveznih posodobitev verzij). vnesite -1, da ohranite vse posnetke\n" +"vedite, da posnetki zavzamejo nekaj prostora in da za uspešno obnovo " +"potrebujete le nedavne" + +#: ../build/bin/preferences_gen.h:7194 ../src/libs/copy_history.c:149 +msgid "XMP sidecar files" +msgstr "priklopne datoteke XMP" + +#: ../build/bin/preferences_gen.h:7213 +#| msgid "create unique filename" +msgid "create XMP files" +msgstr "ustvari datoteke XMP" + +#: ../build/bin/preferences_gen.h:7227 +#| msgid "" +#| "the sidecar files hold information about all your development steps to " +#| "allow flawless re-importing of image files.\n" +#| "\n" +#| "depending on the selected mode sidecar files will be written:\n" +#| " - 'never'\n" +#| " - 'on import': immediately after importing the image\n" +#| " - 'after edit': after any user change on the image." +msgid "" +"XMP sidecar files hold information about all your development steps to allow " +"flawless re-importing of image files.\n" +"\n" +"depending on the selected mode sidecar files will be created:\n" +" - 'never'\n" +" - 'on import': immediately after importing the image\n" +" - 'after edit': after any user change on the image or adding tags." +msgstr "" +"priklopne datoteke XMP vsebujejo informacije o vseh vaših razvojnih korakih," +" ki " +"omogočajo brezhibno ponovno uvažanje slikovnih datotek.\n" +"\n" +"odvisno od izbranega načina bo priklopna datoteka napisana:\n" +" - 'nikoli'\n" +" - 'ob uvozu': takoj po uvozu slike\n" +" - 'po urejanju': po kakršnikoli uporabnikovi spremembi na sliki." + +#: ../build/bin/preferences_gen.h:7248 +msgid "store XMP tags in compressed format" +msgstr "shrani oznake XMP v stisnjenem formatu" + +#: ../build/bin/preferences_gen.h:7262 +msgid "" +"entries in XMP tags can get rather large and may exceed the available space " +"to store the history stack in output files.\n" +"this option allows XMP tags to be compressed and save space." +msgstr "" +"vnosi oznak XMP lahko zavzamejo kar veliko pomnilnika in lahko narastejo " +"prek prostega prostora za sklad zgodovine na izhodni datoteki.\n" +"ta možnost omogoča stiskanje oznak XMP in varčevanje s prostorom." + +#: ../build/bin/preferences_gen.h:7283 +msgid "auto-save interval" +msgstr "interval samodejnega shranjevanja" + +#: ../build/bin/preferences_gen.h:7306 +msgid "" +"automatically save history while developing using the given interval (in " +"seconds); set to zero to disable auto-saving. auto-saving might be disabled " +"on slow drives." +msgstr "" +"samodejno shrani zgodovino med razvijanjem z danim intervalom (in sekundah);" +" nastavite na nič, da onemogočite samodejno shranjevanje. samodejno" +" shranjevanje je morda onemogočiti na počasnih napravah." + +#: ../build/bin/preferences_gen.h:7327 +msgid "look for updated XMP files on startup" +msgstr "preglej osvežene datoteke XMP ob zagonu" + +#: ../build/bin/preferences_gen.h:7340 +msgid "" +"check file modification times of all XMP files on startup to check if any " +"got updated in the meantime" +msgstr "" +"preveri spremenjene čase vseh datotek XMP ob zagonu, da bi ugotovili ali se " +"je katera od njih medtem spremenila" + +#: ../build/bin/preferences_gen.h:7372 +msgid "miscellaneous" +msgstr "razno" + +#: ../build/bin/preferences_gen.h:7374 +msgid "interface" +msgstr "vmesnik" + +#: ../build/bin/preferences_gen.h:7393 +msgid "load default shortcuts at startup" +msgstr "naloži privzete bližnjice ob zagonu" + +#: ../build/bin/preferences_gen.h:7406 +msgid "" +"load default shortcuts before user settings. switch off to prevent deleted " +"defaults returning" +msgstr "" +"naloži privzete bližnjice pred nastavitve uporabnika. izklopite, da " +"preprečite izbrisano povrnitev privzetih" + +#: ../build/bin/preferences_gen.h:7427 +msgid "scale slider step with min/max" +msgstr "prilagodi korak drsnika z min/max" + +#: ../build/bin/preferences_gen.h:7440 +msgid "vary slider step size with min/max range" +msgstr "spreminjaj velikost koraka drsnika z min/max obsega" + +#: ../build/bin/preferences_gen.h:7461 +msgid "sort built-in presets first" +msgstr "najprej razvrsti vgrajene prednastavitve" + +#: ../build/bin/preferences_gen.h:7474 +msgid "" +"whether to show built-in presets first before user's presets in presets menu." +msgstr "" +"ali naj se najprej prikažejo vgrajene prednastavitve pred uporabniškimi " +"prednastavitvami v meniju prednastavitev." + +#: ../build/bin/preferences_gen.h:7495 +msgid "mouse wheel scrolls modules side panel by default" +msgstr "" +"kolešček na miški privzeto omogoča drsenje po modulih na stranskem panelu" + +#: ../build/bin/preferences_gen.h:7508 +msgid "" +"when enabled, use mouse wheel to scroll modules side panel. use ctrl+alt to " +"use mouse wheel for data entry. when disabled, this behavior is reversed" +msgstr "" +"kadar je omogočeno lahko uporabljate kolešček na miški za drsenje po modulih " +"v stranskem panelu. Uporabite krmilka+alt za uporabo koleščka za vnos " +"podatkov. kadar je onemogočeno, tega obnašanja ni" + +#: ../build/bin/preferences_gen.h:7529 +msgid "always show panels' scrollbars" +msgstr "vedno prikazuj panelne drsnike" + +#: ../build/bin/preferences_gen.h:7542 +msgid "" +"defines whether the panel scrollbars should be always visible or activated " +"only depending on the content. (need a restart)" +msgstr "" +"določi ali so drsniki na panelih vedno vidni ali pa so aktivirani samo v " +"odvisnosti od vsebine. (potreben je ponovni zagon)" + +#: ../build/bin/preferences_gen.h:7563 +msgid "duration of the UI transitions in ms" +msgstr "trajanje pretvorb uporabniškega vmesnika v ms" + +#: ../build/bin/preferences_gen.h:7587 +msgid "" +"how long the transitions take (in ms) for expanding or collapsing modules " +"and other UI elements" +msgstr "" +"kako dolgo trajajo pretvorbe (v ms) za razširjanje in strnjevanje modulov in " +"ostalih elementov uporabniškega vmesnika" + +#: ../build/bin/preferences_gen.h:7608 +msgid "position of the scopes module" +msgstr "pozicija modula obsegov" + +#: ../build/bin/preferences_gen.h:7622 +msgid "position the scopes at the top-left or top-right of the screen" +msgstr "pozicija obsegov na vrhu levo ali na vrhu desno zaslona" + +#: ../build/bin/preferences_gen.h:7643 +msgid "method to use for getting the display profile" +msgstr "metoda za pridobitev profila zaslona" + +#: ../build/bin/preferences_gen.h:7657 +msgid "" +"this option allows to force a specific means of getting the current display " +"profile.\n" +"this is useful when one alternative gives wrong results" +msgstr "" +"ta možnost dovoljuje prisilno rabo posebnega načina pridobitve trenutnega " +"profila zaslona.\n" +"uporabno, kadar nek način daje napačen rezultat" + +#: ../build/bin/preferences_gen.h:7678 +msgid "order or exclude MIDI devices" +msgstr "razvrsti ali izvzemi naprave MIDI" + +#: ../build/bin/preferences_gen.h:7696 +msgid "" +"comma-separated list of device name fragments that if matched load MIDI " +"device at id given by location in list\n" +"or if preceded by '-' prevent matching devices from loading. add encoding " +"and number of knobs like 'BeatStep:63:16'" +msgstr "" +"seznam naprav in delov imen naprav ločen z vejicami, ki če ustrezajo, " +"naložijo napravo MIDI na določilnik dan z mestom v seznamu\n" +"ali če je pred njim '-' na seznamu preprečujejo ujemanje nalaganje naprav. " +"dodajte kodiranje in število gumbov, kot je 'Beatstep:63:16'" + +#. tags +#: ../build/bin/preferences_gen.h:7715 ../src/develop/lightroom.c:1573 +#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:322 +#: ../src/libs/image.c:614 ../src/libs/metadata_view.c:166 +msgid "tags" +msgstr "oznake" + +#: ../build/bin/preferences_gen.h:7734 +msgid "omit hierarchy in simple tag lists" +msgstr "opusti hierarhijo pri enostavnih seznamih oznak" + +#: ../build/bin/preferences_gen.h:7747 +#| msgid "" +#| "when creating XMP file the hierarchical tags are also added as a simple " +#| "list\n" +#| "of non-hierarchical ones to make them visible to some other programs.\n" +#| "when this option is checked darktable will only include their last part\n" +#| "and ignore the rest. so 'foo|bar|baz' will only add 'baz'." +msgid "" +"when creating an XMP sidecar file the hierarchical tags are also added as a " +"simple list\n" +"of non-hierarchical ones to make them visible to some other programs.\n" +"when this option is checked darktable will only include their last part\n" +"and ignore the rest. so 'foo|bar|baz' will only add 'baz'." +msgstr "" +"ko se ustvari datoteka XMP, so sicer hierarhično urejene oznake prav tako " +"dodane kot enostavni seznam\n" +"nehierarhičnih oznak, da so lahko vidne tudi nekaterim drugim programom.\n" +"kadar je ta opcija odkljukana, bo darktable dodal samo zadnji del\n" +"in opustil preostali del. npr. za 'foo|bar|baz' bo dodal samo 'baz'." + +#: ../build/bin/preferences_gen.h:7756 +msgid "shortcuts with multiple instances" +msgstr "tipkovne bližnjice pri več pojavkih" + +#: ../build/bin/preferences_gen.h:7775 +msgid "prefer focused instance" +msgstr "dajaj prednost fokusiranemu pojavku" + +#: ../build/bin/preferences_gen.h:7788 +#| msgid "" +#| "where multiple module instances are present, these preferences control " +#| "rules that are applied (in order) to decide which module instance " +#| "shortcuts will be applied to" +msgid "" +"where multiple instances of a module are present, apply shortcuts to the " +"instance that has focus\n" +"if none are focused, the preferences below control rules that are followed " +"(in order) to decide which module instance shortcuts will be applied to.\n" +"note: blending shortcuts always apply to the focused instance" +msgstr "" +"kjer je prisotnih več pojavkov modula, uporabite bližnjice do pojavka, ki ima" +" fokus\n" +"če noben nima fokusa, preference spodaj upoštevajo sledeča pravila (po" +" vrstnem redu), da se odloči, za katere bližnjice pojavkov modula bodo" +" uporabljene.\n" +"opomba: bližnjice za mešanje vedno veljajo za izbrani pojavek" + +#: ../build/bin/preferences_gen.h:7809 +msgid "prefer expanded instances" +msgstr "dajaj prednost razširjenim pojavkom" + +#: ../build/bin/preferences_gen.h:7822 +msgid "if instances of the module are expanded, ignore collapsed instances" +msgstr "če se pojavki modula razširijo, prezrite strnjene pojavke" + +#: ../build/bin/preferences_gen.h:7843 +msgid "prefer enabled instances" +msgstr "dajaj prednost omogočenim pojavkom" + +#: ../build/bin/preferences_gen.h:7856 +msgid "" +"after applying the above rule, if instances of the module are active, ignore " +"inactive instances" +msgstr "" +"po uporabi zgornjega pravila, če so pojavki modula aktivni, prezrite " +"neaktivni pojavke" + +#: ../build/bin/preferences_gen.h:7877 +msgid "prefer unmasked instances" +msgstr "dajaj prednost nemaskiranim pojavkom" + +#: ../build/bin/preferences_gen.h:7890 +msgid "" +"after applying the above rules, if instances of the module are unmasked, " +"ignore masked instances" +msgstr "" +"po uporabi zgornjih pravil, če so pojavki modula nemaskirani, prezrite " +"zamaskirane pojavke" + +#: ../build/bin/preferences_gen.h:7911 +msgid "selection order" +msgstr "razvrstitev izbire" + +#: ../build/bin/preferences_gen.h:7925 +msgid "" +"after applying the above rules, apply the shortcut based on its position in " +"the pixelpipe" +msgstr "" +"po uporabi zgornjih pravil uporabite bližnjico glede na njen položaj v " +"pixelpipe-u" + +#: ../build/bin/preferences_gen.h:7946 +msgid "allow visual assignment to specific instances" +msgstr "dovoli vizualno dodeljevanje za specifične pojavke" + +#: ../build/bin/preferences_gen.h:7959 +msgid "" +"when multiple instances are present on an image this allows shortcuts to be " +"visually assigned to those specific instances\n" +"otherwise shortcuts will always be assigned to the preferred instance" +msgstr "" +"ko je na sliki prisotnih več pojavkov, to omogoča bližnjice, ki so vizualno " +"dodeljene tistim posebnim pojavkom\n" +"sicer bodo bližnjice vedno dodeljene prednostnemu pojavku" + +#: ../build/bin/preferences_gen.h:7968 +msgid "map / geolocalization view" +msgstr "pogled zemljevida / geolociranja" + +#: ../build/bin/preferences_gen.h:7987 +msgid "pretty print the image location" +msgstr "prijazno tiskaj lokacijo slike" + +#: ../build/bin/preferences_gen.h:8000 +msgid "" +"show a more readable representation of the location in the image information " +"module" +msgstr "prikaži bolj berljivo obliko lokacije v modulu podatkov o sliki" + +#: ../build/bin/preferences_gen.h:8009 +msgid "slideshow view" +msgstr "pogled dia projekcije" + +#: ../build/bin/preferences_gen.h:8028 +msgid "waiting time between each picture in slideshow" +msgstr "čas prikaza posamezne slike v projekciji" + +#: ../build/bin/preferences_gen.h:8088 +msgid "do not set the 'uncategorized' entry for tags" +msgstr "ne nastavi vnosa 'nekategorizirano' za oznake" + +#: ../build/bin/preferences_gen.h:8101 +msgid "" +"do not set the 'uncategorized' entry for tags which do not have children" +msgstr "ne nastavite vnosa 'nekategorizirano' za oznake, ki nimajo otrok" + +#: ../build/bin/preferences_gen.h:8122 +msgid "tags case sensitivity" +msgstr "oznake občutljivost na velike in male črke" + +#: ../build/bin/preferences_gen.h:8136 +msgid "" +"tags case sensitivity. without the Sqlite ICU extension, insensitivity works " +"only for the 26 latin letters" +msgstr "" +"velike/male črke v oznakah. brez razširitve Sqlite ICU neobčutljivost deluje " +"samo za 26 latiničnih črk" + +#: ../build/bin/preferences_gen.h:8157 ../build/bin/preferences_gen.h:8368 +msgid "number of collections to be stored" +msgstr "število grup, ki naj bodo shranjene" + +#: ../build/bin/preferences_gen.h:8181 ../build/bin/preferences_gen.h:8392 +msgid "the number of recent collections to store and show in this list" +msgstr "število zadnjih zbirk za shranjevanje in njihov prikaz v seznamih" + +#: ../build/bin/preferences_gen.h:8202 +msgid "hide the history button and show a specific module instead" +msgstr "skrij gumb zgodovine in namesto tega prikazu določen modul" + +#: ../build/bin/preferences_gen.h:8215 +msgid "hide the history button and show the recent collections module instead" +msgstr "skrij gumb zgodovine in namesto tega prikazu zadnje zbirke" + +#: ../build/bin/preferences_gen.h:8236 +msgid "number of folder levels to show in lists" +msgstr "število ravni map prikazanih v seznamih" + +#: ../build/bin/preferences_gen.h:8260 +msgid "" +"the number of folder levels to show in film roll names, starting from the " +"right" +msgstr "število ravni map prikazanih v seznamu map s filmi, začeto z desne" + +#: ../build/bin/preferences_gen.h:8281 +msgid "sort film rolls by" +msgstr "razvrsti zvitke filma po" + +#: ../build/bin/preferences_gen.h:8292 +#| msgid "technical" +msgctxt "preferences" +msgid "chronological" +msgstr "kronološko" + +#: ../build/bin/preferences_gen.h:8295 +msgid "sets the collections-list order for film rolls" +msgstr "nastavi vrstni red zbirk za zvitke filmov" + +#: ../build/bin/preferences_gen.h:8316 +msgid "sort collection descending" +msgstr "razvrsti zbirko padajoče" + +#: ../build/bin/preferences_gen.h:8329 +msgid "" +"sort the following collections in descending order: 'film roll' by folder, " +"'folder', 'times' (e.g. 'capture date')" +msgstr "" +"razvrsti naslednje zbirke v padajočem redu: 'film po zvitku', 'mapa',' " +"čas' (npr. datum posnetka)" + +#: ../build/bin/preferences_gen.h:8413 +msgid "prefer a history button in the collections module" +msgstr "raje prikazuj gumb zgodovine v modulu zbirk" + +#: ../build/bin/preferences_gen.h:8426 +msgid "" +"hide this module and instead access collections history with a button in the " +"collections module" +msgstr "" +"skrivaj ta modul in namesto tega dostopaj do zbirk zgodovine z gumbom v " +"modulu zbirk" + +#: ../build/bin/preferences_gen.h:8483 +msgid "suggested tags level of confidence" +msgstr "nivo zaupanja predlaganih oznak" + +#: ../build/bin/preferences_gen.h:8508 +#, no-c-format +msgid "" +"level of confidence to include the tag in the suggestions list, 0: all " +"associated tags, 99: 99% matching associated tags, 100: no matching tag to " +"show only recent tags (faster)" +msgstr "" +"raven zaupanja, da je oznaka vključena na seznam predlogov, 0: vse " +"asociirane oznake, 99: 99% ujemanje povezanih oznak, 100: brez ujemajoče se " +"oznake pokaži samo nedavne oznake (hitreje)" + +#: ../build/bin/preferences_gen.h:8529 +msgid "number of recently attached tags" +msgstr "število nedavno priključenih oznak" + +#: ../build/bin/preferences_gen.h:8553 +msgid "" +"number of recently attached tags which are included in the suggestions list. " +"the value `-1' disables the recent list" +msgstr "" +"število nedavno priključenih oznak, ki so vključene v seznam predlogov. " +"vrednost '-1' onemogoči seznam nedavnih" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:130 +#: ../build/lib/darktable/plugins/introspection_ashift.c:279 +msgid "lens shift (vertical)" +msgstr "pomik lečja (vertikalno)" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:136 +#: ../build/lib/darktable/plugins/introspection_ashift.c:283 +msgid "lens shift (horizontal)" +msgstr "pomik lečja (horizontalno)" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:142 +#: ../build/lib/darktable/plugins/introspection_ashift.c:287 +msgid "shear" +msgstr "prireži" + +#. focal length +#: ../build/lib/darktable/plugins/introspection_ashift.c:148 +#: ../build/lib/darktable/plugins/introspection_ashift.c:291 +#: ../src/common/collection.c:627 ../src/gui/preferences.c:842 +#: ../src/gui/presets.c:721 ../src/libs/camera.c:550 +#: ../src/libs/metadata_view.c:145 +msgid "focal length" +msgstr "goriščna razdalja" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:154 +#: ../build/lib/darktable/plugins/introspection_ashift.c:295 +#: ../src/libs/metadata_view.c:147 +msgid "crop factor" +msgstr "faktor obreza" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:160 +#: ../build/lib/darktable/plugins/introspection_ashift.c:299 +msgid "lens dependence" +msgstr "odvisnost objektiva" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:166 +#: ../build/lib/darktable/plugins/introspection_ashift.c:303 +msgid "aspect adjust" +msgstr "prilagoditev razmerja stranic" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:172 +#: ../build/lib/darktable/plugins/introspection_ashift.c:307 +#: ../src/iop/lens.cc:4438 +msgid "lens model" +msgstr "model objektiva" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:178 +#: ../build/lib/darktable/plugins/introspection_ashift.c:311 +#: ../build/lib/darktable/plugins/introspection_clipping.c:244 +#: ../build/lib/darktable/plugins/introspection_clipping.c:371 +msgid "automatic cropping" +msgstr "avtomatično obrezovanje" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:361 +#: ../build/lib/darktable/plugins/introspection_highlights.c:311 +msgid "generic" +msgstr "splošni" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:362 +msgid "specific" +msgstr "posebni" + +#. DEVELOP_MASK_DISABLED +#: ../build/lib/darktable/plugins/introspection_ashift.c:366 +#: ../build/lib/darktable/plugins/introspection_colorin.c:303 +#: ../build/lib/darktable/plugins/introspection_highlights.c:310 +#: ../build/lib/darktable/plugins/introspection_vignette.c:264 +#: ../src/develop/blend_gui.c:153 ../src/develop/blend_gui.c:182 +#: ../src/develop/blend_gui.c:3429 ../src/gui/accelerators.c:148 +#: ../src/gui/accelerators.c:158 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/imageio/format/j2k.c:686 +#: ../src/libs/live_view.c:361 +msgid "off" +msgstr "izklopljeno" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:367 +msgid "largest area" +msgstr "največja površina" + +#: ../build/lib/darktable/plugins/introspection_ashift.c:368 +msgid "original format" +msgstr "izvorni format" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:134 +#: ../build/lib/darktable/plugins/introspection_basecurve.c:231 +msgid "fusion" +msgstr "zlivanje" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:140 +#: ../build/lib/darktable/plugins/introspection_basecurve.c:235 +msgid "exposure shift" +msgstr "pomik osvetlitve" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:146 +#: ../build/lib/darktable/plugins/introspection_basecurve.c:239 +#: ../src/libs/metadata_view.c:144 +msgid "exposure bias" +msgstr "pristranskost osvetlitve" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:152 +#: ../build/lib/darktable/plugins/introspection_basecurve.c:243 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:122 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:215 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:140 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:227 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:57 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:122 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:153 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:244 +msgid "preserve colors" +msgstr "ohrani barve" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:262 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:249 +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:153 +#: ../build/lib/darktable/plugins/introspection_lens.cc:533 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:251 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:153 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:270 +#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2214 +#: ../src/iop/channelmixerrgb.c:4735 ../src/iop/clipping.c:1953 +#: ../src/iop/clipping.c:2146 ../src/iop/clipping.c:2161 +#: ../src/iop/retouch.c:507 ../src/libs/collect.c:2043 +#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1101 +#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:109 +#: ../src/libs/live_view.c:311 ../src/libs/print_settings.c:2835 +msgid "none" +msgstr "nobeno" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:263 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:250 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:226 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:244 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:262 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:280 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:461 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:473 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:485 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:497 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:252 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:154 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:271 +#: ../src/develop/blend_gui.c:2379 ../src/develop/blend_gui.c:2413 +msgid "luminance" +msgstr "svetlost" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:264 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:251 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:550 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:253 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:155 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:272 +msgid "max RGB" +msgstr "max RGB" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:265 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:252 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:254 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:156 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:273 +msgid "average RGB" +msgstr "povprečje RGB" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:266 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:253 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:255 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:157 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:274 +msgid "sum RGB" +msgstr "vsota RGB" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:267 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:254 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:256 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:158 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:275 +msgid "norm RGB" +msgstr "norma RGB" + +#: ../build/lib/darktable/plugins/introspection_basecurve.c:268 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:255 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:257 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:159 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:276 +msgid "basic power" +msgstr "osnovna moč" + +#: ../build/lib/darktable/plugins/introspection_basicadj.c:92 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:195 +#: ../build/lib/darktable/plugins/introspection_exposure.c:67 +#: ../build/lib/darktable/plugins/introspection_exposure.c:138 +msgid "black level correction" +msgstr "popravek nivoja črnine" + +#: ../build/lib/darktable/plugins/introspection_basicadj.c:104 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:203 +msgid "highlight compression" +msgstr "stiskanje bleščav" + +#: ../build/lib/darktable/plugins/introspection_basicadj.c:128 +#: ../build/lib/darktable/plugins/introspection_basicadj.c:219 +msgid "middle gray" +msgstr "srednja siva" + +#: ../build/lib/darktable/plugins/introspection_bilat.c:78 +#: ../build/lib/darktable/plugins/introspection_bilat.c:137 +msgid "midtone range" +msgstr "obseg srednjih tonov" + +#: ../build/lib/darktable/plugins/introspection_bilat.c:151 +msgid "bilateral grid" +msgstr "dvojna mreža" + +#: ../build/lib/darktable/plugins/introspection_bilat.c:152 +msgid "local laplacian filter" +msgstr "lokalni Laplacov filter" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:83 +#: ../build/lib/darktable/plugins/introspection_blurs.c:174 +#: ../build/lib/darktable/plugins/introspection_retouch.c:255 +#: ../build/lib/darktable/plugins/introspection_retouch.c:406 +msgid "blur type" +msgstr "tip zamegljevanja" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:89 +#: ../build/lib/darktable/plugins/introspection_blurs.c:178 +#: ../build/lib/darktable/plugins/introspection_retouch.c:261 +#: ../build/lib/darktable/plugins/introspection_retouch.c:410 +msgid "blur radius" +msgstr "radij zamegljevanja" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:95 +#: ../build/lib/darktable/plugins/introspection_blurs.c:182 +msgid "diaphragm blades" +msgstr "diafragemska rezila" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:101 +#: ../build/lib/darktable/plugins/introspection_blurs.c:186 +msgid "concavity" +msgstr "konkavnost" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:107 +#: ../build/lib/darktable/plugins/introspection_blurs.c:190 +msgid "linearity" +msgstr "linearnost" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:113 +#: ../build/lib/darktable/plugins/introspection_blurs.c:194 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:75 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:144 +#: ../build/lib/darktable/plugins/introspection_watermark.c:136 +#: ../build/lib/darktable/plugins/introspection_watermark.c:265 +#: ../src/iop/ashift.c:6059 ../src/libs/masks.c:109 +msgid "rotation" +msgstr "sukanje" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:119 +#: ../build/lib/darktable/plugins/introspection_blurs.c:198 +msgid "direction" +msgstr "smer" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:125 +#: ../build/lib/darktable/plugins/introspection_blurs.c:202 +#: ../src/libs/masks.c:110 +msgid "curvature" +msgstr "ukrivljenost" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:131 +#: ../build/lib/darktable/plugins/introspection_blurs.c:206 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:81 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:148 +#: ../src/iop/colorbalancergb.c:2039 +msgid "offset" +msgstr "odmik" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:220 +#: ../src/common/collection.c:625 ../src/gui/preferences.c:826 +#: ../src/gui/presets.c:663 ../src/libs/metadata_view.c:141 +msgid "lens" +msgstr "objektiv" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:221 +msgid "motion" +msgstr "gibanje" + +#: ../build/lib/darktable/plugins/introspection_blurs.c:222 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:567 +#: ../build/lib/darktable/plugins/introspection_lowpass.c:189 +#: ../build/lib/darktable/plugins/introspection_retouch.c:452 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:267 +msgid "gaussian" +msgstr "gaussov" + +#: ../build/lib/darktable/plugins/introspection_borders.c:122 +#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../src/common/collection.c:635 ../src/libs/filtering.c:59 +msgid "aspect ratio" +msgstr "razmerje proporcev" + +#. // portrait / landscape +#: ../build/lib/darktable/plugins/introspection_borders.c:140 +#: ../build/lib/darktable/plugins/introspection_borders.c:281 +#: ../src/iop/flip.c:75 ../src/libs/print_settings.c:2517 +msgid "orientation" +msgstr "orientacija" + +#: ../build/lib/darktable/plugins/introspection_borders.c:146 +#: ../build/lib/darktable/plugins/introspection_borders.c:285 +msgid "border size" +msgstr "debelina roba" + +#: ../build/lib/darktable/plugins/introspection_borders.c:152 +#: ../build/lib/darktable/plugins/introspection_borders.c:289 +msgid "horizontal offset" +msgstr "vodoravni odmik" + +#: ../build/lib/darktable/plugins/introspection_borders.c:170 +#: ../build/lib/darktable/plugins/introspection_borders.c:301 +msgid "vertical offset" +msgstr "vertikalni odmik" + +#: ../build/lib/darktable/plugins/introspection_borders.c:188 +#: ../build/lib/darktable/plugins/introspection_borders.c:313 +msgid "frame line size" +msgstr "debelina črte roba" + +#: ../build/lib/darktable/plugins/introspection_borders.c:194 +#: ../build/lib/darktable/plugins/introspection_borders.c:317 +msgid "frame line offset" +msgstr "zamik črte okvirja" + +#: ../build/lib/darktable/plugins/introspection_borders.c:218 +#: ../build/lib/darktable/plugins/introspection_borders.c:333 +#| msgid "basic" +msgid "basis" +msgstr "osnovno" + +#: ../build/lib/darktable/plugins/introspection_borders.c:347 +#: ../build/lib/darktable/plugins/introspection_borders.c:353 +#: ../src/gui/preferences.c:847 ../src/imageio/format/jpeg.c:604 +#: ../src/iop/ashift.c:6238 ../src/iop/basicadj.c:662 ../src/iop/flip.c:470 +#: ../src/iop/flip.c:472 ../src/iop/levels.c:657 ../src/iop/rgblevels.c:1105 +msgid "auto" +msgstr "avto" + +#: ../build/lib/darktable/plugins/introspection_borders.c:348 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:315 +#: ../src/libs/filters/ratio.c:122 ../src/libs/print_settings.c:2519 +msgid "portrait" +msgstr "pokončno" + +#: ../build/lib/darktable/plugins/introspection_borders.c:349 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:311 +#: ../src/libs/filters/ratio.c:124 ../src/libs/print_settings.c:2519 +msgid "landscape" +msgstr "ležeče" + +#: ../build/lib/darktable/plugins/introspection_borders.c:354 +#: ../src/iop/relight.c:275 ../src/libs/export.c:1223 +#: ../src/libs/metadata_view.c:151 ../src/libs/print_settings.c:2537 +msgid "width" +msgstr "širina" + +#: ../build/lib/darktable/plugins/introspection_borders.c:355 +#: ../build/lib/darktable/plugins/introspection_watermark.c:326 +#: ../src/libs/export.c:1229 ../src/libs/metadata_view.c:152 +#: ../src/libs/print_settings.c:2541 +msgid "height" +msgstr "višina" + +#: ../build/lib/darktable/plugins/introspection_borders.c:356 +#| msgid "shortcut" +msgid "shorter" +msgstr "krajše" + +#: ../build/lib/darktable/plugins/introspection_borders.c:357 +#| msgid "long" +msgid "longer" +msgstr "daljše" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:42 +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:91 +msgid "avoid colorshift" +msgstr "izogibaj se barvnega pomika" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:48 +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:95 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:117 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:244 +#: ../build/lib/darktable/plugins/introspection_highlights.c:155 +#: ../build/lib/darktable/plugins/introspection_highlights.c:252 +msgid "iterations" +msgstr "iteracij" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:109 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:205 +msgid "once" +msgstr "enkrat" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:110 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:206 +msgid "twice" +msgstr "dvakrat" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:111 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:207 +msgid "three times" +msgstr "trikrat" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:112 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:208 +msgid "four times" +msgstr "štirikrat" + +#: ../build/lib/darktable/plugins/introspection_cacorrect.c:113 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:209 +msgid "five times" +msgstr "petkrat" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:61 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:128 +msgid "guide" +msgstr "vodilo" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:67 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:132 +#: ../build/lib/darktable/plugins/introspection_lens.cc:340 +#: ../build/lib/darktable/plugins/introspection_lens.cc:501 +#: ../src/iop/atrous.c:1636 ../src/iop/bilateral.cc:352 ../src/iop/clahe.c:337 +#: ../src/iop/dither.c:762 ../src/iop/lowpass.c:597 ../src/iop/shadhi.c:710 +#: ../src/iop/sharpen.c:435 +msgid "radius" +msgstr "polmer" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:73 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:136 +#: ../build/lib/darktable/plugins/introspection_highlights.c:137 +#: ../build/lib/darktable/plugins/introspection_highlights.c:240 +#: ../build/lib/darktable/plugins/introspection_lens.cc:334 +#: ../build/lib/darktable/plugins/introspection_lens.cc:497 +#: ../src/iop/bloom.c:372 ../src/iop/denoiseprofile.c:3822 +#: ../src/iop/grain.c:602 ../src/iop/hazeremoval.c:203 +#: ../src/iop/hotpixels.c:467 ../src/iop/nlmeans.c:463 ../src/iop/velvia.c:288 +msgid "strength" +msgstr "moč" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:79 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:140 +msgid "correction mode" +msgstr "način popravkov" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:85 +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:144 +msgid "very large chromatic aberration" +msgstr "zelo velik barvni odklon" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:158 +#: ../src/common/collection.c:1374 ../src/common/color_vocabulary.c:232 +#: ../src/common/colorlabels.c:333 ../src/develop/blend_gui.c:2346 +#: ../src/develop/blend_gui.c:2394 ../src/develop/lightroom.c:887 +#: ../src/gui/gtk.c:3183 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:356 +#: ../src/iop/channelmixer.c:637 ../src/iop/channelmixer.c:647 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/colorzones.c:2499 +#: ../src/iop/temperature.c:1912 ../src/iop/temperature.c:2094 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:260 +#: ../src/libs/histogram.c:2724 +msgid "red" +msgstr "rdeča" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:159 +#: ../src/common/collection.c:1378 ../src/common/color_vocabulary.c:277 +#: ../src/common/colorlabels.c:335 ../src/develop/blend_gui.c:2352 +#: ../src/develop/blend_gui.c:2400 ../src/develop/lightroom.c:891 +#: ../src/gui/gtk.c:3184 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:361 +#: ../src/iop/channelmixer.c:638 ../src/iop/channelmixer.c:653 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/colorzones.c:2502 +#: ../src/iop/temperature.c:1896 ../src/iop/temperature.c:1914 +#: ../src/iop/temperature.c:2095 ../src/libs/collect.c:1916 +#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2715 +msgid "green" +msgstr "zelena" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:160 +#: ../src/common/collection.c:1380 ../src/common/color_vocabulary.c:324 +#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2358 +#: ../src/develop/blend_gui.c:2406 ../src/develop/lightroom.c:893 +#: ../src/gui/gtk.c:3185 ../src/iop/bilateral.cc:366 +#: ../src/iop/channelmixer.c:639 ../src/iop/channelmixer.c:659 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/colorzones.c:2504 +#: ../src/iop/temperature.c:1916 ../src/iop/temperature.c:2096 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:263 +#: ../src/libs/histogram.c:2706 +msgid "blue" +msgstr "modra" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:164 +msgid "standard" +msgstr "standard" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:165 +msgid "darken only" +msgstr "samo potemnjeno" + +#: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:166 +msgid "brighten only" +msgstr "samo posvetljeno" + +#: ../build/lib/darktable/plugins/introspection_censorize.c:51 +#: ../build/lib/darktable/plugins/introspection_censorize.c:112 +msgid "input blur radius" +msgstr "vhodni radij zamegljevanja" + +#: ../build/lib/darktable/plugins/introspection_censorize.c:57 +#: ../build/lib/darktable/plugins/introspection_censorize.c:116 +msgid "pixellation radius" +msgstr "radij pikselacije" + +#: ../build/lib/darktable/plugins/introspection_censorize.c:63 +#: ../build/lib/darktable/plugins/introspection_censorize.c:120 +msgid "output blur radius" +msgstr "izhodni radij zamegljevanja" + +#: ../build/lib/darktable/plugins/introspection_censorize.c:69 +#: ../build/lib/darktable/plugins/introspection_censorize.c:124 +#: ../build/lib/darktable/plugins/introspection_highlights.c:149 +#: ../build/lib/darktable/plugins/introspection_highlights.c:248 +msgid "noise level" +msgstr "raven šuma" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:252 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:258 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:264 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:270 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:276 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:282 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:433 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:437 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:441 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:445 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:449 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:453 +msgid "normalize channels" +msgstr "normaliziraj kanale" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:294 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:461 +msgid "F source" +msgstr "vir F" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:300 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:465 +msgid "LED source" +msgstr "vir LED" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:330 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:485 +msgid "gamut compression" +msgstr "stiskanje barvnega razpona" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:336 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:489 +msgid "clip negative RGB from gamut" +msgstr "obreži negativni RGB iz barvnega razpona" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:342 +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:493 +msgid "saturation algorithm" +msgstr "algoritem nasičevanja" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:507 +msgid "same as pipeline (D50)" +msgstr "enako kot cevovod (D50)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:508 +msgid "A (incandescent)" +msgstr "A (žarnica)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:509 +msgid "D (daylight)" +msgstr "D (dnevna svetloba)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:510 +msgid "E (equi-energy)" +msgstr "E (enakovredna energija)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:511 +msgid "F (fluorescent)" +msgstr "F (fluorescentna)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:512 +msgid "LED (LED light)" +msgstr "LED (svetloba LED)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:513 +msgid "Planckian (black body)" +msgstr "Planckova (črno telo)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:514 +#: ../src/common/iop_order.c:59 +msgid "custom" +msgstr "po meri" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:515 +msgid "(AI) detect from image surfaces..." +msgstr "(AI) razberi iz površin slike..." + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:516 +msgid "(AI) detect from image edges..." +msgstr "(AI) razberi iz robov slike..." + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:517 +msgid "as shot in camera" +msgstr "kot posnetek kamere" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:522 +msgid "F1 (Daylight 6430 K) – medium CRI" +msgstr "F1 (Dnevna svetloba 6430 K) – srednja CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:523 +msgid "F2 (Cool White 4230 K) – medium CRI" +msgstr "F2 (Hladno bela 4230 K) – srednji CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:524 +msgid "F3 (White 3450 K) – medium CRI" +msgstr "F3 (Bela 3450 K) – srednja CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:525 +msgid "F4 (Warm White 2940 K) – medium CRI" +msgstr "F4 (Topla bela 2940 K) – srednja CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:526 +msgid "F5 (Daylight 6350 K) – medium CRI" +msgstr "F5 (Dnevna svetloba 6350 K) – srednja CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:527 +msgid "F6 (Lite White 4150 K) – medium CRI" +msgstr "F6 (Nežno bela 4150 K) – srednja CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:528 +msgid "F7 (D65 simulator 6500 K) – high CRI" +msgstr "F7 (D65 simulacija 6500 K) – visok CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:529 +msgid "F8 (D50 simulator 5000 K) – high CRI" +msgstr "F8 (D50 simulacija 5000 K) – visok CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:530 +msgid "F9 (Cool White Deluxe 4150 K) – high CRI" +msgstr "F9 (Hladna bela Deluxe 4150 K) – visok high CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:531 +msgid "F10 (Tuned RGB 5000 K) – low CRI" +msgstr "F10 (Uglašena RGB 5000 K) – nizek CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:532 +msgid "F11 (Tuned RGB 4000 K) – low CRI" +msgstr "F11 (Uglašena RGB 4000 K) – nizek CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:533 +msgid "F12 (Tuned RGB 3000 K) – low CRI" +msgstr "F12 (Uglašena RGB 3000 K) – nizek CRI" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:538 +msgid "B1 (Blue 2733 K)" +msgstr "B1 (Modra 2733 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:539 +msgid "B2 (Blue 2998 K)" +msgstr "B2 (Modra 2998 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:540 +msgid "B3 (Blue 4103 K)" +msgstr "B3 (Modra 4103 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:541 +msgid "B4 (Blue 5109 K)" +msgstr "B4 (Modra 5109 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:542 +msgid "B5 (Blue 6598 K)" +msgstr "B5 (Modra 6598 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:543 +msgid "BH1 (Blue-Red hybrid 2851 K)" +msgstr "BH1 (Modro-rdeča hibridna 2851 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:544 +msgid "RGB1 (RGB 2840 K)" +msgstr "RGB1 (RGB 2840 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:545 +msgid "V1 (Violet 2724 K)" +msgstr "V1 (Vijolična 2724 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:546 +msgid "V2 (Violet 4070 K)" +msgstr "V2 (Vijolična 4070 K)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:551 +msgid "linear Bradford (ICC v4)" +msgstr "linearni Bradford (ICC v4)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:552 +msgid "CAT16 (CIECAM16)" +msgstr "CAT16 (CIECAM16)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:553 +msgid "non-linear Bradford" +msgstr "nelinearni Bradford" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:554 +msgid "XYZ" +msgstr "XYZ" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:555 +msgid "none (bypass)" +msgstr "nič (obvod)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:560 +msgid "version 1 (2020)" +msgstr "verzija 1 (2020)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:561 +msgid "version 2 (2021)" +msgstr "verzija 2 (2021)" + +#: ../build/lib/darktable/plugins/introspection_channelmixerrgb.c:562 +msgid "version 3 (Apr 2021)" +msgstr "verzija 3 (Apr 2021)" + +#: ../build/lib/darktable/plugins/introspection_clipping.c:142 +#: ../build/lib/darktable/plugins/introspection_clipping.c:303 +#: ../build/lib/darktable/plugins/introspection_crop.c:61 +#: ../build/lib/darktable/plugins/introspection_crop.c:134 +#: ../src/gui/gtk.c:1234 ../src/iop/atrous.c:1632 +msgid "left" +msgstr "levo" + +#: ../build/lib/darktable/plugins/introspection_clipping.c:148 +#: ../build/lib/darktable/plugins/introspection_clipping.c:307 +#: ../build/lib/darktable/plugins/introspection_crop.c:67 +#: ../build/lib/darktable/plugins/introspection_crop.c:138 +#: ../src/gui/accelerators.c:131 ../src/gui/gtk.c:1240 +msgid "top" +msgstr "vrh" + +#: ../build/lib/darktable/plugins/introspection_clipping.c:154 +#: ../build/lib/darktable/plugins/introspection_clipping.c:311 +#: ../build/lib/darktable/plugins/introspection_crop.c:73 +#: ../build/lib/darktable/plugins/introspection_crop.c:142 +#: ../src/gui/gtk.c:1237 ../src/iop/atrous.c:1631 +msgid "right" +msgstr "desno" + +#: ../build/lib/darktable/plugins/introspection_clipping.c:160 +#: ../build/lib/darktable/plugins/introspection_clipping.c:315 +#: ../build/lib/darktable/plugins/introspection_crop.c:79 +#: ../build/lib/darktable/plugins/introspection_crop.c:146 +#: ../src/gui/accelerators.c:132 ../src/gui/gtk.c:1243 +msgid "bottom" +msgstr "dno" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:114 +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:203 +msgid "input saturation" +msgstr "vhodna nasičenost" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:126 +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:211 +msgid "contrast fulcrum" +msgstr "žarišče kontrasta" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:132 +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:215 +msgid "output saturation" +msgstr "izhodna nasičenost" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:229 +msgid "lift, gamma, gain (ProPhoto RGB)" +msgstr "dvig, gama, ojačenje (ProPhotoRGB)" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:230 +msgid "slope, offset, power (ProPhoto RGB)" +msgstr "strmina, odmik, moč (ProPhotoRGB)" + +#: ../build/lib/darktable/plugins/introspection_colorbalance.c:231 +msgid "lift, gamma, gain (sRGB)" +msgstr "dvig, gama, ojačenje (sRGB)" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:232 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:250 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:268 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:286 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:465 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:477 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:489 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:501 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 +#: ../src/develop/blend_gui.c:2372 ../src/develop/blend_gui.c:2420 +#: ../src/iop/atrous.c:1801 ../src/iop/channelmixerrgb.c:4525 +#: ../src/iop/channelmixerrgb.c:4641 ../src/iop/colorbalancergb.c:1966 +#: ../src/iop/colorzones.c:2645 ../src/iop/nlmeans.c:471 +msgid "chroma" +msgstr "kroma" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:238 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:256 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:274 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:292 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:469 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:481 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:493 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:505 +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:155 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:257 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:87 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:152 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:61 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:73 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:134 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:142 +#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2365 +#: ../src/develop/blend_gui.c:2427 ../src/iop/channelmixer.c:634 +#: ../src/iop/channelmixerrgb.c:4518 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/colorbalance.c:2017 ../src/iop/colorize.c:343 +#: ../src/iop/colorreconstruction.c:1249 ../src/iop/colorzones.c:2646 +msgid "hue" +msgstr "odtenek" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:298 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:509 +msgid "shadows fall-off" +msgstr "odpad senc" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:304 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:513 +msgid "white fulcrum" +msgstr "bela točka opore" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:310 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:517 +msgid "highlights fall-off" +msgstr "odpad bleščav" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:316 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:358 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:388 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:521 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:549 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:569 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:156 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:297 +#: ../src/iop/bilat.c:479 ../src/iop/colorbalance.c:2074 +#: ../src/iop/negadoctor.c:934 ../src/iop/shadhi.c:706 +#: ../src/iop/splittoning.c:503 +msgid "shadows" +msgstr "sence" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:322 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:346 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:376 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:525 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:541 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:561 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:180 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:313 +#: ../src/iop/bilat.c:473 ../src/iop/colorbalance.c:2076 +#: ../src/iop/monochrome.c:583 ../src/iop/shadhi.c:707 +#: ../src/iop/splittoning.c:510 +msgid "highlights" +msgstr "bleščave" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:328 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:529 +msgid "global chroma" +msgstr "globalna tabela tonov" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:334 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:352 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:382 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:533 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:545 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:565 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:168 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:305 +#: ../src/iop/colorbalance.c:2075 +msgid "mid-tones" +msgstr "srednji toni" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:340 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:537 +#: ../src/iop/filmic.c:1601 +msgid "global saturation" +msgstr "globalna nasičenost" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:364 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:553 +msgid "hue shift" +msgstr "premik odtenka" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:370 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:557 +msgid "global brilliance" +msgstr "globalna živahnost" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:394 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:573 +msgid "mask middle-gray fulcrum" +msgstr "maska oporne točke osrednje sive" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:400 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:577 +msgid "global vibrance" +msgstr "globalna živahnost" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:406 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:581 +msgid "contrast gray fulcrum" +msgstr "kontrast oporne točke sive" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:412 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:585 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:116 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:237 +#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:637 ../src/iop/bilat.c:468 +#: ../src/iop/colisa.c:298 ../src/iop/colorbalance.c:1922 +#: ../src/iop/colorbalance.c:1928 ../src/iop/filmic.c:1573 +#: ../src/iop/filmicrgb.c:4615 ../src/iop/lowpass.c:599 +msgid "contrast" +msgstr "kontrast" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:418 +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:589 +msgid "saturation formula" +msgstr "formula nasičenosti" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:603 +msgid "JzAzBz (2021)" +msgstr "JzAzBz (2021)" + +#: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:604 +msgid "darktable UCS (2022)" +msgstr "darktable UCS (2022)" + +#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:54 +#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:121 +msgid "green-magenta contrast" +msgstr "kontrast zelene proti magenti" + +#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:66 +#: ../build/lib/darktable/plugins/introspection_colorcontrast.c:129 +msgid "blue-yellow contrast" +msgstr "kontrast modre proti rumeni" + +#: ../build/lib/darktable/plugins/introspection_colorin.c:150 +#: ../build/lib/darktable/plugins/introspection_colorin.c:233 +msgid "gamut clipping" +msgstr "obrezovanje barvnega razpona" + +#: ../build/lib/darktable/plugins/introspection_colorin.c:304 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:312 +#: ../src/common/colorspaces.c:1410 ../src/common/colorspaces.c:1700 +#: ../src/libs/print_settings.c:1356 +msgid "sRGB" +msgstr "sRGB" + +#: ../build/lib/darktable/plugins/introspection_colorin.c:305 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:311 +#: ../src/common/colorspaces.c:1421 ../src/common/colorspaces.c:1702 +#: ../src/libs/print_settings.c:1363 +msgid "Adobe RGB (compatible)" +msgstr "Adobe RGB (kompatibilno)" + +#: ../build/lib/darktable/plugins/introspection_colorin.c:306 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 +#: ../src/common/colorspaces.c:1428 ../src/common/colorspaces.c:1704 +msgid "linear Rec709 RGB" +msgstr "linearni Rec709 RGB" + +#: ../build/lib/darktable/plugins/introspection_colorin.c:307 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:206 +#: ../src/common/colorspaces.c:1442 ../src/common/colorspaces.c:1706 +msgid "linear Rec2020 RGB" +msgstr "linearni Rec2020 RGB" + +#: ../build/lib/darktable/plugins/introspection_colorize.c:65 +#: ../build/lib/darktable/plugins/introspection_colorize.c:128 +msgid "source mix" +msgstr "mešanje vhodov" + +#: ../build/lib/darktable/plugins/introspection_colormapping.c:94 +#: ../build/lib/darktable/plugins/introspection_colormapping.c:249 +msgid "number of clusters" +msgstr "število grup" + +#: ../build/lib/darktable/plugins/introspection_colormapping.c:100 +#: ../build/lib/darktable/plugins/introspection_colormapping.c:253 +msgid "color dominance" +msgstr "barvna nadvlada" + +#: ../build/lib/darktable/plugins/introspection_colormapping.c:106 +#: ../build/lib/darktable/plugins/introspection_colormapping.c:257 +msgid "histogram equalization" +msgstr "izenačevanje histograma" + +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:62 +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:127 +#: ../build/lib/darktable/plugins/introspection_tonemap.cc:45 +#: ../build/lib/darktable/plugins/introspection_tonemap.cc:92 +#: ../src/iop/shadhi.c:721 +msgid "spatial extent" +msgstr "prostorska razširitev" + +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:68 +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:131 +msgid "range extent" +msgstr "razširitev obsega" + +#: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:154 +#: ../src/iop/channelmixerrgb.c:4737 +msgid "saturated colors" +msgstr "nasičene barve" + +#: ../build/lib/darktable/plugins/introspection_colorzones.c:78 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:193 +msgid "select by" +msgstr "izberi po" + +#. mix slider +#: ../build/lib/darktable/plugins/introspection_colorzones.c:138 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:233 +#: ../build/lib/darktable/plugins/introspection_soften.c:66 +#: ../build/lib/darktable/plugins/introspection_soften.c:121 +#: ../src/iop/atrous.c:1835 +msgid "mix" +msgstr "mešano" + +#: ../build/lib/darktable/plugins/introspection_colorzones.c:144 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:237 +msgid "process mode" +msgstr "način obdelave" + +#: ../build/lib/darktable/plugins/introspection_colorzones.c:255 +#: ../src/develop/blend_gui.c:2310 ../src/iop/channelmixer.c:636 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/colorchecker.c:1453 +#: ../src/iop/colorize.c:362 ../src/iop/colorzones.c:2644 +#: ../src/iop/exposure.c:1257 +msgid "lightness" +msgstr "svetlost" + +#: ../build/lib/darktable/plugins/introspection_colorzones.c:267 +#: ../src/iop/atrous.c:1410 ../src/iop/atrous.c:1414 +#: ../src/iop/denoiseprofile.c:3531 ../src/iop/rawdenoise.c:771 +#: ../src/iop/sigmoid.c:292 +msgid "smooth" +msgstr "gladko" + +#: ../build/lib/darktable/plugins/introspection_colorzones.c:268 +msgid "strong" +msgstr "močno" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:47 +#: ../build/lib/darktable/plugins/introspection_defringe.c:102 +msgid "edge detection radius" +msgstr "polmer zaznavanja robov" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:53 +#: ../build/lib/darktable/plugins/introspection_defringe.c:106 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:230 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:435 +#: ../src/iop/atrous.c:1695 ../src/iop/bloom.c:368 +#: ../src/iop/colorreconstruction.c:1245 ../src/iop/hotpixels.c:463 +#: ../src/iop/sharpen.c:444 +msgid "threshold" +msgstr "prag" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:59 +#: ../build/lib/darktable/plugins/introspection_defringe.c:110 +msgid "operation mode" +msgstr "način operacij" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:124 +msgid "global average (fast)" +msgstr "globalno povprečje (hitro)" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:125 +msgid "local average (slow)" +msgstr "lokalno povprečje (počasno)" + +#: ../build/lib/darktable/plugins/introspection_defringe.c:126 +msgid "static threshold (fast)" +msgstr "statični prag (hitro)" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:90 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:163 +msgid "match greens" +msgstr "ustrezne zelene" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:96 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:167 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:141 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:260 +msgid "edge threshold" +msgstr "prag roba" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:102 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:171 +msgid "color smoothing" +msgstr "barvno glajenje" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:108 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:175 +#: ../build/lib/darktable/plugins/introspection_dither.c:73 +#: ../build/lib/darktable/plugins/introspection_dither.c:152 +#: ../build/lib/darktable/plugins/introspection_highlights.c:119 +#: ../build/lib/darktable/plugins/introspection_highlights.c:228 +msgid "method" +msgstr "metoda" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:114 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:179 +msgid "LMMSE refine" +msgstr "izboljšava LMMSE" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:120 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:183 +msgid "dual threshold" +msgstr "dvojni prag" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:197 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:204 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:197 +msgid "disabled" +msgstr "onemogočeno" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:198 +msgid "local average" +msgstr "lokalno povprečje" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:199 +msgid "full average" +msgstr "polno povprečje" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:200 +msgid "full and local average" +msgstr "polno in lokalno povprečje" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:213 +msgid "PPG" +msgstr "PPG" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:214 +msgid "AMaZE" +msgstr "AMaZE" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:215 +msgid "VNG4" +msgstr "VNG4" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:216 +msgid "RCD" +msgstr "RCD" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:217 +msgid "LMMSE" +msgstr "LMMS" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:218 +msgid "RCD + VNG4" +msgstr "RCD + VNG4" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:219 +msgid "AMaZE + VNG4" +msgstr "AMaZE + VNG4" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:220 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:227 +msgid "passthrough (monochrome)" +msgstr "direktni prenos (enobarvno)" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:221 +#: ../build/lib/darktable/plugins/introspection_demosaic.c:228 +msgid "photosite color (debug)" +msgstr "fotografsko spletišče (odpravljanje napak)" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:222 +msgid "VNG" +msgstr "VNG" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:223 +msgid "Markesteijn 1-pass" +msgstr "Markesteijn 1-prehodni" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:224 +msgid "Markesteijn 3-pass" +msgstr "Markesteijn 3-prehodni" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:225 +msgid "frequency domain chroma" +msgstr "frekvenčna domena krome" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:226 +msgid "Markesteijn 3-pass + VNG" +msgstr "Markesteijn 1-prehodni + VNG" + +#. history +#: ../build/lib/darktable/plugins/introspection_demosaic.c:232 +#: ../src/common/collection.c:1394 ../src/libs/collect.c:1863 +#: ../src/libs/filters/history.c:38 +msgid "basic" +msgstr "osnovna" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:233 +msgid "median" +msgstr "mediana" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:234 +msgid "3x median" +msgstr "3 x mediana" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:235 +msgid "refine & medians" +msgstr "izboljšaj mediane" + +#: ../build/lib/darktable/plugins/introspection_demosaic.c:236 +msgid "2x refine + medians" +msgstr "2 x izboljšaj + mediane" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:125 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:300 +#: ../build/lib/darktable/plugins/introspection_nlmeans.c:48 +#: ../build/lib/darktable/plugins/introspection_nlmeans.c:109 +msgid "patch size" +msgstr "velikost krpe" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:131 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:304 +msgid "search radius" +msgstr "radij iskanja" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:143 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:312 +msgid "preserve shadows" +msgstr "ohrani sence" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:149 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:316 +msgid "bias correction" +msgstr "popravek pristranskosti" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:155 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:320 +msgid "scattering" +msgstr "raztros" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:161 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:324 +msgid "central pixel weight" +msgstr "utež centralne točke" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:167 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:328 +msgid "adjust autoset parameters" +msgstr "prilagodi avtomatsko nastavljene parametre" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:239 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:376 +msgid "whitebalance-adaptive transform" +msgstr "prilagojena transformacija glede na ravnotežje beline" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:245 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:380 +msgid "fix various bugs in algorithm" +msgstr "popravi različne napake algoritma" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:251 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:384 +msgid "upgrade profiled transform" +msgstr "nadgradi profilirano transformacijo" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:257 +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:388 +#: ../src/libs/colorpicker.c:659 +msgid "color mode" +msgstr "barvni način" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:402 +msgid "non-local means" +msgstr "ne-lokalna povprečja" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:403 +msgid "non-local means auto" +msgstr "avtomatska ne-lokalna povprečja" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:404 +msgid "wavelets" +msgstr "valovčki" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:405 +msgid "wavelets auto" +msgstr "avtomatski valovčki" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:406 +msgid "compute variance" +msgstr "izračunaj varianco" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:410 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:292 +msgid "RGB" +msgstr "RGB" + +#: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:411 +msgid "Y0U0V0" +msgstr "Y0U0V0" + +#. two more sharpness (standard & strong) +#: ../build/lib/darktable/plugins/introspection_diffuse.c:123 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:248 +#: ../src/iop/atrous.c:1685 ../src/iop/diffuse.c:657 ../src/iop/highpass.c:376 +msgid "sharpness" +msgstr "ostrina" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:129 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:252 +msgid "radius span" +msgstr "polmer dosega" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:135 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:256 +msgid "edge sensitivity" +msgstr "robna občutljivost" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:147 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:264 +msgid "1st order anisotropy" +msgstr "anizotropnost 1. reda" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:153 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:268 +msgid "2nd order anisotropy" +msgstr "anizotropnost 2. reda" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:159 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:272 +msgid "3rd order anisotropy" +msgstr "anizotropnost 3. reda" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:165 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:276 +msgid "4th order anisotropy" +msgstr "anizotropnost 4. reda" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:171 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:280 +msgid "luminance masking threshold" +msgstr "prag maske svetlosti" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:177 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:284 +msgid "1st order speed" +msgstr "1. red hitrosti" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:183 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:288 +msgid "2nd order speed" +msgstr "2. red hitrosti" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:189 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:292 +msgid "3rd order speed" +msgstr "3. red hitrosti" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:195 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:296 +msgid "4th order speed" +msgstr "4. red hitrosti" + +#: ../build/lib/darktable/plugins/introspection_diffuse.c:201 +#: ../build/lib/darktable/plugins/introspection_diffuse.c:300 +msgid "central radius" +msgstr "centralni radij" + +#: ../build/lib/darktable/plugins/introspection_dither.c:103 +#: ../build/lib/darktable/plugins/introspection_dither.c:172 +msgid "damping" +msgstr "vlaženje" + +#: ../build/lib/darktable/plugins/introspection_dither.c:190 +msgid "random" +msgstr "slučajno" + +#: ../build/lib/darktable/plugins/introspection_dither.c:191 +msgid "Floyd-Steinberg 1-bit B&W" +msgstr "Floyd-Steinberg 1-bitni črno-beli" + +#: ../build/lib/darktable/plugins/introspection_dither.c:192 +msgid "Floyd-Steinberg 1-bit RGB" +msgstr "Floyd-Steinberg 1-bitni RGB" + +#: ../build/lib/darktable/plugins/introspection_dither.c:193 +msgid "Floyd-Steinberg 2-bit gray" +msgstr "Floyd-Steinberg 2-bitne sivine" + +#: ../build/lib/darktable/plugins/introspection_dither.c:194 +msgid "Floyd-Steinberg 2-bit RGB" +msgstr "Floyd-Steinberg 2-bitni RGB" + +#: ../build/lib/darktable/plugins/introspection_dither.c:195 +msgid "Floyd-Steinberg 4-bit gray" +msgstr "Floyd-Steinberg 4-bitne sivine" + +#: ../build/lib/darktable/plugins/introspection_dither.c:196 +msgid "Floyd-Steinberg 4-bit RGB" +msgstr "Floyd-Steinberg 4-bitni RGB" + +#: ../build/lib/darktable/plugins/introspection_dither.c:197 +msgid "Floyd-Steinberg 8-bit RGB" +msgstr "Floyd-Steinberg 8-bitni RGB" + +#: ../build/lib/darktable/plugins/introspection_dither.c:198 +msgid "Floyd-Steinberg 16-bit RGB" +msgstr "Floyd-Steinberg 16-bitni RGB" + +#: ../build/lib/darktable/plugins/introspection_dither.c:199 +msgid "Floyd-Steinberg auto" +msgstr "Floyd-Steinberg avto" + +#: ../build/lib/darktable/plugins/introspection_dither.c:200 +msgid "posterize 2 levels per channel" +msgstr "posteriziraj 2 ravni na kanal" + +#: ../build/lib/darktable/plugins/introspection_dither.c:201 +msgid "posterize 3 levels per channel" +msgstr "posteriziraj 3 ravni na kanal" + +#: ../build/lib/darktable/plugins/introspection_dither.c:202 +msgid "posterize 4 levels per channel" +msgstr "posteriziraj 4 ravni na kanal" + +#: ../build/lib/darktable/plugins/introspection_dither.c:203 +msgid "posterize 5 levels per channel" +msgstr "posteriziraj 5 ravni na kanal" + +#: ../build/lib/darktable/plugins/introspection_dither.c:204 +msgid "posterize 6 levels per channel" +msgstr "posteriziraj 6 ravni na kanal" + +#: ../build/lib/darktable/plugins/introspection_dither.c:205 +msgid "posterize 7 levels per channel" +msgstr "posteriziraj 7 ravni na kanal" + +#: ../build/lib/darktable/plugins/introspection_dither.c:206 +msgid "posterize 8 levels per channel" +msgstr "posteriziraj 8 ravni na kanal" + +#: ../build/lib/darktable/plugins/introspection_exposure.c:79 +#: ../build/lib/darktable/plugins/introspection_exposure.c:146 +msgid "percentile" +msgstr "odstotek" + +#: ../build/lib/darktable/plugins/introspection_exposure.c:85 +#: ../build/lib/darktable/plugins/introspection_exposure.c:150 +msgid "target level" +msgstr "raven cilja" + +#: ../build/lib/darktable/plugins/introspection_exposure.c:91 +#: ../build/lib/darktable/plugins/introspection_exposure.c:154 +msgid "compensate exposure bias" +msgstr "izravnaj pristranskost osvetlitve" + +#: ../build/lib/darktable/plugins/introspection_exposure.c:168 +#: ../build/lib/darktable/plugins/introspection_levels.c:160 +msgid "manual" +msgstr "ročno" + +#: ../build/lib/darktable/plugins/introspection_exposure.c:169 +#: ../build/lib/darktable/plugins/introspection_levels.c:161 +msgid "automatic" +msgstr "avtomatično" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:212 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:423 +#: ../src/iop/filmic.c:1514 +msgid "middle gray luminance" +msgstr "svetlost srednje sive" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:218 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:427 +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:97 +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:166 +#: ../src/iop/filmic.c:1539 +msgid "black relative exposure" +msgstr "relativna osvetlitev črne" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:224 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:431 +#: ../src/iop/filmic.c:1526 +msgid "white relative exposure" +msgstr "relativna osvetlitev beline" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:236 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:439 +msgid "transition" +msgstr "prehod" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:242 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:443 +msgid "bloom ↔ reconstruct" +msgstr "cvetenje ↔ ponovna obnova" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:248 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:447 +msgid "gray ↔ colorful details" +msgstr "sivo ↔ barvne podrobnosti" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:254 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:451 +msgid "structure ↔ texture" +msgstr "struktura ↔ tekstura" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:260 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:455 +msgid "dynamic range scaling" +msgstr "merilo dinamičnega razpona" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:266 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:459 +#: ../src/iop/filmic.c:1671 +msgid "target middle gray" +msgstr "ciljna srednja siva" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:272 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:463 +#: ../src/iop/filmic.c:1662 +msgid "target black luminance" +msgstr "ciljna svetlost črne" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:278 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:467 +#: ../src/iop/filmic.c:1680 +msgid "target white luminance" +msgstr "ciljna svetlost bele" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:284 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:471 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:69 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:140 +#: ../src/libs/masks.c:107 +msgid "hardness" +msgstr "trdota" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:302 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:483 +#: ../src/iop/filmic.c:1611 ../src/iop/filmicrgb.c:4793 +msgid "extreme luminance saturation" +msgstr "nasičenost skrajnih svetlosti" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:308 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:487 +msgid "shadows ↔ highlights balance" +msgstr "uravnoteževanje senc ↔ bleščav" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:314 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:491 +msgid "add noise in highlights" +msgstr "dodaj šum v bleščave" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:320 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:495 +msgid "preserve chrominance" +msgstr "ohrani barvnost" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:326 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:499 +msgid "color science" +msgstr "znanost o barvah" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:332 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:503 +msgid "auto adjust hardness" +msgstr "samodejno prilagodi trdoto" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:338 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:507 +msgid "use custom middle-gray values" +msgstr "uporabi srednje-sive vrednosti po meri" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:344 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:511 +msgid "iterations of high-quality reconstruction" +msgstr "iteracije visoko kakovostnih rekonstrukcij" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:350 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:515 +msgid "type of noise" +msgstr "vrste šuma" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:356 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:519 +msgid "contrast in shadows" +msgstr "kontrast v sencah" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:362 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:523 +msgid "contrast in highlights" +msgstr "kontrast v bleščavah" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:368 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:527 +msgid "compensate output ICC profile black point" +msgstr "izravnava izhodne črne točke profila ICC" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:374 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:531 +msgid "spline handling" +msgstr "obdelava zlepka" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:380 +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:535 +msgid "enable highlight reconstruction" +msgstr "omogoči rekonstrukcijo bleščav" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:549 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:371 +#: ../src/common/variables.c:714 ../src/develop/imageop_gui.c:209 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "no" +msgstr "ne" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:551 +msgid "luminance Y" +msgstr "svetlost Y" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:552 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:384 +msgid "RGB power norm" +msgstr "norma moči RGB" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:553 +msgid "RGB euclidean norm (legacy)" +msgstr "RGB evklidska norma (zapuščina)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:554 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:383 +msgid "RGB euclidean norm" +msgstr "RGB evklidska norma" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:558 +msgid "v3 (2019)" +msgstr "v3 (2019)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:559 +msgid "v4 (2020)" +msgstr "v4 (2020)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:560 +msgid "v5 (2021)" +msgstr "v5 (2020)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:561 +msgid "v6 (2022)" +msgstr "v6 (2022)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:562 +msgid "v7 (2023)" +msgstr "v7 (2023)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:566 +msgid "uniform" +msgstr "enakomerni" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:568 +msgid "poissonian" +msgstr "poissonov" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:572 +msgid "hard" +msgstr "trdo" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:573 +msgid "soft" +msgstr "mehko" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:574 +msgid "safe" +msgstr "varno" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:578 +msgid "v1 (2019)" +msgstr "v1 (2019)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:579 +msgid "v2 (2020)" +msgstr "v2 (2020)" + +#: ../build/lib/darktable/plugins/introspection_filmicrgb.c:580 +msgid "v3 (2021)" +msgstr "v3 (2021)" + +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:60 +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:125 +msgid "bias" +msgstr "pristranskost" + +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:66 +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:129 +msgid "target" +msgstr "cilj" + +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:151 +msgid "reinhard" +msgstr "reinhard" + +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:152 +#: ../src/iop/filmic.c:162 +msgid "filmic" +msgstr "filmično" + +#: ../build/lib/darktable/plugins/introspection_globaltonemap.c:153 +msgid "drago" +msgstr "drago" + +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:63 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:136 +msgid "density" +msgstr "gostota" + +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 +#: ../src/develop/blend_gui.c:2326 ../src/iop/basicadj.c:654 +#: ../src/iop/channelmixer.c:635 ../src/iop/colisa.c:300 +#: ../src/iop/colorbalance.c:2034 ../src/iop/colorbalancergb.c:1990 +#: ../src/iop/colorchecker.c:1488 ../src/iop/colorcontrast.c:82 +#: ../src/iop/colorcorrection.c:268 ../src/iop/colorize.c:356 +#: ../src/iop/lowpass.c:601 ../src/iop/soften.c:368 ../src/iop/velvia.c:75 +#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:1058 +msgid "saturation" +msgstr "nasičenost" + +#: ../build/lib/darktable/plugins/introspection_grain.c:58 +#: ../build/lib/darktable/plugins/introspection_grain.c:117 +#: ../src/iop/bilat.c:460 +msgid "coarseness" +msgstr "zrnatost" + +#: ../build/lib/darktable/plugins/introspection_grain.c:70 +#: ../build/lib/darktable/plugins/introspection_grain.c:125 +#: ../build/lib/darktable/plugins/introspection_velvia.c:44 +#: ../build/lib/darktable/plugins/introspection_velvia.c:91 +msgid "mid-tones bias" +msgstr "pristranskost srednjih tonov" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:143 +#: ../build/lib/darktable/plugins/introspection_highlights.c:244 +#: ../src/views/darkroom.c:2245 +msgid "clipping threshold" +msgstr "prag obrezovanja" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:161 +#: ../build/lib/darktable/plugins/introspection_highlights.c:256 +msgid "diameter of reconstruction" +msgstr "premer rekonstrukcije" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:167 +#: ../build/lib/darktable/plugins/introspection_highlights.c:260 +msgid "candidating" +msgstr "kandidiranje" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:173 +#: ../build/lib/darktable/plugins/introspection_highlights.c:264 +msgid "combine" +msgstr "sestavi" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:179 +#: ../build/lib/darktable/plugins/introspection_highlights.c:268 +msgid "rebuild" +msgstr "ponovno izgradi" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:185 +#: ../build/lib/darktable/plugins/introspection_highlights.c:272 +msgid "inpaint a flat color" +msgstr "doslikaj enakomerno barvo" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:286 +msgid "inpaint opposed" +msgstr "dobarvanje nasprotij" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:287 +msgid "reconstruct in LCh" +msgstr "rekontruiraj v LCh" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:288 +msgid "clip highlights" +msgstr "odreži bleščave" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:289 +msgid "segmentation based" +msgstr "osnovano na segmentih" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:290 +msgid "guided laplacians" +msgstr "vodila laplacovin" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:291 +msgid "reconstruct color" +msgstr "obnovi barvo" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:295 +msgid "2 px" +msgstr "2 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:296 +msgid "4 px" +msgstr "4 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:297 +msgid "8 px" +msgstr "8 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:298 +msgid "16 px" +msgstr "16 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:299 +msgid "32 px" +msgstr "32 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:300 +msgid "64 px" +msgstr "64 px" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:301 +msgid "128 px (slow)" +msgstr "128 px (počasno)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:302 +msgid "256 px (slow)" +msgstr "256 px (počasno)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:303 +msgid "512 px (very slow)" +msgstr "512 px (zelo počasno)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:304 +msgid "1024 px (very slow)" +msgstr "1024 px (zelo počasno)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:305 +msgid "2048 px (insanely slow)" +msgstr "2048 px (nevzdržno počasno)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:306 +msgid "4096 px (insanely slow)" +msgstr "4096 px (nevzdržno počasno)" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:312 +msgid "flat generic" +msgstr "generično ravno" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:313 +msgid "small segments" +msgstr "majhni segmenti" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:314 +msgid "large segments" +msgstr "veliki segmenti" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:315 +msgid "flat small segments" +msgstr "ravni mali segmenti" + +#: ../build/lib/darktable/plugins/introspection_highlights.c:316 +msgid "flat large segments" +msgstr "ravni veliki segmenti" + +#: ../build/lib/darktable/plugins/introspection_highpass.c:44 +#: ../build/lib/darktable/plugins/introspection_highpass.c:91 +msgid "contrast boost" +msgstr "porast kontrasta" + +#: ../build/lib/darktable/plugins/introspection_hotpixels.c:59 +#: ../build/lib/darktable/plugins/introspection_hotpixels.c:116 +msgid "mark fixed pixels" +msgstr "označi popravljene piksle" + +#: ../build/lib/darktable/plugins/introspection_hotpixels.c:65 +#: ../build/lib/darktable/plugins/introspection_hotpixels.c:120 +msgid "detect by 3 neighbors" +msgstr "detekcija 3 sosedov" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:190 +#: ../build/lib/darktable/plugins/introspection_lens.cc:401 +msgid "correction method" +msgstr "metode popravkov" + +#. Page CORRECTIONS +#: ../build/lib/darktable/plugins/introspection_lens.cc:196 +#: ../build/lib/darktable/plugins/introspection_lens.cc:405 +#: ../src/iop/negadoctor.c:919 +msgid "corrections" +msgstr "popravki" + +#. mode choice +#: ../build/lib/darktable/plugins/introspection_lens.cc:202 +#: ../build/lib/darktable/plugins/introspection_lens.cc:409 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:128 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:219 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:51 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:118 +#: ../src/develop/blend_gui.c:3546 ../src/iop/bilat.c:438 +#: ../src/iop/colorbalance.c:1884 ../src/iop/denoiseprofile.c:3810 +#: ../src/iop/exposure.c:1175 ../src/iop/levels.c:700 +#: ../src/iop/profile_gamma.c:682 ../src/libs/copy_history.c:399 +#: ../src/libs/export.c:1376 ../src/libs/image.c:666 +#: ../src/libs/print_settings.c:2875 ../src/libs/styles.c:850 +#: ../src/views/darkroom.c:2226 +msgid "mode" +msgstr "način" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:238 +#: ../build/lib/darktable/plugins/introspection_lens.cc:433 +#: ../src/iop/lens.cc:4474 +msgid "target geometry" +msgstr "geometrija cilja" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:268 +#: ../build/lib/darktable/plugins/introspection_lens.cc:453 +msgid "TCA overwrite" +msgstr "prepiši TCA" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:274 +#: ../build/lib/darktable/plugins/introspection_lens.cc:298 +#: ../build/lib/darktable/plugins/introspection_lens.cc:457 +#: ../build/lib/darktable/plugins/introspection_lens.cc:473 +msgid "TCA red" +msgstr "TCA rdeča" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:280 +#: ../build/lib/darktable/plugins/introspection_lens.cc:304 +#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:477 +msgid "TCA blue" +msgstr "TCA modra" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:286 +#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +#| msgid "distort" +msgid "distortion" +msgstr "popačenje" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:292 +#: ../build/lib/darktable/plugins/introspection_lens.cc:469 +#: ../src/iop/vignette.c:114 +msgid "vignetting" +msgstr "vinjetiranje" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:310 +#: ../build/lib/darktable/plugins/introspection_lens.cc:481 +msgid "scale fine-tune" +msgstr "natančno prilagajanje lestvice" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:322 +#: ../build/lib/darktable/plugins/introspection_lens.cc:489 +msgid "image scale" +msgstr "lestvica slike" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:346 +#: ../build/lib/darktable/plugins/introspection_lens.cc:505 +#| msgid "sharpness" +msgid "steepness" +msgstr "strmina" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:527 +msgid "embedded metadata" +msgstr "vgrajeni metapodatki" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:528 +msgid "Lensfun database" +msgstr "zbirka lečja" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:529 +#| msgid "only vignetting" +msgid "only manual vignette" +msgstr "samo ročna vinjeta" + +#. get nice text for bounds +#. Side-border hide/show +#: ../build/lib/darktable/plugins/introspection_lens.cc:534 +#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2592 +#: ../src/gui/accelerators.c:2674 ../src/gui/gtk.c:1282 ../src/gui/gtk.c:3182 +#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3713 +#: ../src/iop/rawdenoise.c:909 ../src/libs/collect.c:3413 +#: ../src/libs/filtering.c:1521 ../src/libs/filters/colors.c:157 +#: ../src/libs/filters/colors.c:265 ../src/libs/filters/rating.c:211 +msgid "all" +msgstr "vse" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:535 +msgid "distortion & TCA" +msgstr "popačenje & TCA" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:536 +msgid "distortion & vignetting" +msgstr "popačenje & vinjetiranje" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:537 +msgid "TCA & vignetting" +msgstr "TCA & vinjetiranje" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:538 +msgid "only distortion" +msgstr "samo popačenje" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:539 +msgid "only TCA" +msgstr "samo TCA" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:540 +msgid "only vignetting" +msgstr "samo vinjetiranje" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:544 +#: ../src/libs/modulegroups.c:2302 +msgid "correct" +msgstr "popravi" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:545 +msgid "distort" +msgstr "popači" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:550 +msgid "rectilinear" +msgstr "pravokotna" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:551 +msgid "fisheye" +msgstr "ribje oko" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:552 +msgid "panoramic" +msgstr "panoramska" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:553 +msgid "equirectangular" +msgstr "kvadratna" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:554 +msgid "orthographic" +msgstr "ortografska" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:555 +msgid "stereographic" +msgstr "stereografska" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:556 +msgid "equisolid angle" +msgstr "enakomerni kot" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:557 +msgid "Thoby fisheye" +msgstr "Thoby ribje oko" + +#: ../build/lib/darktable/plugins/introspection_liquify.c:428 +msgid "invalidated" +msgstr "razveljavljeno" + +#. move left/right/up/down +#: ../build/lib/darktable/plugins/introspection_liquify.c:429 +#: ../src/views/darkroom.c:2121 ../src/views/darkroom.c:2522 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:765 +#: ../src/views/lighttable.c:774 ../src/views/lighttable.c:1246 +#: ../src/views/lighttable.c:1250 ../src/views/lighttable.c:1254 +#: ../src/views/lighttable.c:1258 ../src/views/lighttable.c:1262 +msgid "move" +msgstr "prenesi" + +#: ../build/lib/darktable/plugins/introspection_liquify.c:430 +msgid "line" +msgstr "črta" + +#: ../build/lib/darktable/plugins/introspection_liquify.c:431 +#: ../src/iop/basecurve.c:2207 ../src/iop/rgbcurve.c:1387 +#: ../src/iop/tonecurve.c:1171 +msgid "curve" +msgstr "krivulja" + +#: ../build/lib/darktable/plugins/introspection_lowlight.c:43 +#: ../build/lib/darktable/plugins/introspection_lowlight.c:110 +msgid "blue shift" +msgstr "modri premik" + +#: ../build/lib/darktable/plugins/introspection_lowpass.c:96 +#: ../build/lib/darktable/plugins/introspection_lowpass.c:165 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:160 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:247 +msgid "soften with" +msgstr "zmehčaj z" + +#: ../build/lib/darktable/plugins/introspection_lowpass.c:183 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:261 +msgid "order 0" +msgstr "red 0" + +#: ../build/lib/darktable/plugins/introspection_lowpass.c:184 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:262 +msgid "order 1" +msgstr "red 1" + +#: ../build/lib/darktable/plugins/introspection_lowpass.c:185 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:263 +msgid "order 2" +msgstr "red 2" + +#: ../build/lib/darktable/plugins/introspection_lowpass.c:190 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:268 +msgid "bilateral filter" +msgstr "bilateralni filter" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:77 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:164 +msgid "application color space" +msgstr "barvni prostor aplikacije" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 +msgid "Adobe RGB" +msgstr "Adobe RGB" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 +msgid "gamma Rec709 RGB" +msgstr "gama Rec709 RGB" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:207 +#: ../src/common/colorspaces.c:1486 ../src/common/colorspaces.c:1740 +msgid "linear ProPhoto RGB" +msgstr "linearni prophoto RGB" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 +msgid "tetrahedral" +msgstr "tetraedrno" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:212 +msgid "trilinear" +msgstr "tri-linearno" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:213 +msgid "pyramid" +msgstr "piramida" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:84 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:199 +msgid "film stock" +msgstr "zaloga filmov" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:132 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:231 +msgid "scan exposure bias" +msgstr "preglej pristranskost osvetlitve" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:138 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:235 +msgid "paper black (density correction)" +msgstr "črna na papirju (popravek gostote)" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:144 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:239 +#: ../src/iop/negadoctor.c:1011 +msgid "paper grade (gamma)" +msgstr "gradacija papirja (gama)" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:150 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:243 +msgid "paper gloss (specular highlights)" +msgstr "sijajni papir (odsevne bleščave)" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:156 +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:247 +msgid "print exposure adjustment" +msgstr "nastavitev osvetlitve za tisk" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:261 +#: ../src/iop/negadoctor.c:431 +msgid "black and white film" +msgstr "črno beli film" + +#: ../build/lib/darktable/plugins/introspection_negadoctor.c:262 +#: ../src/iop/negadoctor.c:416 +msgid "color film" +msgstr "barvni film" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:75 +#: ../build/lib/darktable/plugins/introspection_primaries.c:160 +#: ../src/iop/primaries.c:406 +#| msgid "lift hue" +msgid "tint hue" +msgstr "barvni odtenek" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:81 +#: ../build/lib/darktable/plugins/introspection_primaries.c:164 +#: ../src/iop/primaries.c:413 +#| msgid "linearity" +msgid "tint purity" +msgstr "čistost odtenka" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:87 +#: ../build/lib/darktable/plugins/introspection_primaries.c:168 +#| msgid "red & blue" +msgid "red hue" +msgstr "rdeč odtenek" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:93 +#: ../build/lib/darktable/plugins/introspection_primaries.c:172 +#| msgid "security" +msgid "red purity" +msgstr "čistost rdeče" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:99 +#: ../build/lib/darktable/plugins/introspection_primaries.c:176 +#| msgid "green" +msgid "green hue" +msgstr "zeleni odtenek" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:105 +#: ../build/lib/darktable/plugins/introspection_primaries.c:180 +#| msgid "security" +msgid "green purity" +msgstr "čistost zelene" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:111 +#: ../build/lib/darktable/plugins/introspection_primaries.c:184 +#| msgid "blue shift" +msgid "blue hue" +msgstr "moder odtenek" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:117 +#: ../build/lib/darktable/plugins/introspection_primaries.c:188 +#| msgid "blue shift" +msgid "blue purity" +msgstr "čistost modre" + +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:85 +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:158 +msgid "dynamic range" +msgstr "dinamični razpon" + +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:91 +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:162 +msgid "middle gray luma" +msgstr "luma srednje sive" + +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:103 +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:170 +#: ../src/iop/filmic.c:1551 +msgid "safety factor" +msgstr "varnostni faktor" + +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:184 +msgid "logarithmic" +msgstr "logaritmično" + +#: ../build/lib/darktable/plugins/introspection_profile_gamma.c:185 +#: ../src/iop/profile_gamma.c:639 +msgid "gamma" +msgstr "gama" + +#: ../build/lib/darktable/plugins/introspection_rawdenoise.c:43 +#: ../build/lib/darktable/plugins/introspection_rawdenoise.c:122 +msgid "noise threshold" +msgstr "prag šuma" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:70 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:155 +msgid "crop left" +msgstr "obreži levo" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:76 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:159 +msgid "crop top" +msgstr "obreži vrh" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:82 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:163 +msgid "crop right" +msgstr "obreži desno" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:88 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:167 +msgid "crop bottom" +msgstr "obreži dno" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:94 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:100 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:171 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:175 +msgid "black level" +msgstr "raven črne" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:106 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:179 +#: ../src/iop/rawprepare.c:954 +msgid "white point" +msgstr "bela točka" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:112 +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:183 +msgid "flat field correction" +msgstr "popravek ravnega polja" + +#: ../build/lib/darktable/plugins/introspection_rawprepare.c:198 +msgid "embedded GainMap" +msgstr "vgrajena preslikava prirasta" + +#. exposure +#: ../build/lib/darktable/plugins/introspection_relight.c:43 +#: ../build/lib/darktable/plugins/introspection_relight.c:98 +#: ../src/common/collection.c:633 ../src/gui/preferences.c:834 +#: ../src/gui/presets.c:687 ../src/iop/basicadj.c:628 ../src/iop/exposure.c:122 +#: ../src/iop/exposure.c:1135 ../src/libs/metadata_view.c:143 +msgid "exposure" +msgstr "osvetlitev" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:267 +#: ../build/lib/darktable/plugins/introspection_retouch.c:414 +msgid "fill mode" +msgstr "način polnenja" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:285 +#: ../build/lib/darktable/plugins/introspection_retouch.c:426 +#: ../src/iop/basicadj.c:650 ../src/iop/channelmixerrgb.c:4685 +#: ../src/iop/colisa.c:299 ../src/iop/lowpass.c:600 ../src/iop/soften.c:372 +#: ../src/iop/vignette.c:1057 ../src/libs/history.c:963 +msgid "brightness" +msgstr "sijavost" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:291 +#: ../build/lib/darktable/plugins/introspection_retouch.c:430 +msgid "max_iter" +msgstr "max_iter" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:444 +#: ../src/libs/metadata_view.c:333 +msgid "unused" +msgstr "neuporabljeno" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:445 +msgid "clone" +msgstr "klon" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:446 +msgid "heal" +msgstr "ozdravi" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:447 +#: ../src/iop/retouch.c:2051 +msgid "blur" +msgstr "zameglitev" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:448 +#: ../src/iop/retouch.c:2049 +msgid "fill" +msgstr "polni" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:453 +msgid "bilateral" +msgstr "bilateralno" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:457 +msgid "erase" +msgstr "izbriši" + +#: ../build/lib/darktable/plugins/introspection_retouch.c:458 +#: ../src/gui/presets.c:61 ../src/iop/watermark.c:1346 +#: ../src/libs/colorpicker.c:320 ../src/libs/image.c:683 +#: ../src/libs/modulegroups.c:2301 +msgid "color" +msgstr "barva" + +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:134 +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:223 +#: ../src/iop/rgbcurve.c:1423 +msgid "compensate middle gray" +msgstr "kompenziraj srednje sivo" + +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:246 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:148 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:266 +msgid "RGB, linked channels" +msgstr "RGB, povezani kanali" + +#: ../build/lib/darktable/plugins/introspection_rgbcurve.c:247 +#: ../build/lib/darktable/plugins/introspection_rgblevels.c:149 +msgid "RGB, independent channels" +msgstr "RGB, neodvisni kanali" + +#: ../build/lib/darktable/plugins/introspection_shadhi.c:112 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:215 +msgid "white point adjustment" +msgstr "nastavitev točke beline" + +#: ../build/lib/darktable/plugins/introspection_shadhi.c:136 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:231 +msgid "shadows color adjustment" +msgstr "prilagoditev barv v sencah" + +#: ../build/lib/darktable/plugins/introspection_shadhi.c:142 +#: ../build/lib/darktable/plugins/introspection_shadhi.c:235 +msgid "highlights color adjustment" +msgstr "prilagoditev barv v bleščavah" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:122 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:241 +#: ../src/gui/accelerators.c:101 +msgid "skew" +msgstr "nagni" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:128 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:245 +msgid "target white" +msgstr "ciljna belina" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:134 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:249 +msgid "target black" +msgstr "ciljna črna" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:140 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:253 +msgid "color processing" +msgstr "obdelava barve" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:146 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:257 +msgid "preserve hue" +msgstr "ohrani odtenek" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:152 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:261 +#| msgid "saturation" +msgid "red attenuation" +msgstr "oslabitev rdeče" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:158 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:265 +#| msgid "reset rotation" +msgid "red rotation" +msgstr "vrtenje rdeče" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:164 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:269 +#| msgid "reset rotation" +msgid "green attenuation" +msgstr "oslabitev zelene" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:170 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:273 +#| msgid "reset rotation" +msgid "green rotation" +msgstr "vrtenje zelene" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:176 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:277 +#| msgid "global saturation" +msgid "blue attenuation" +msgstr "oslabitev modre" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:182 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:281 +#| msgid "rotation" +msgid "blue rotation" +msgstr "vrtenje modre" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:188 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:285 +#| msgid "security" +msgid "recover purity" +msgstr "obnovi čistost" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:194 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:289 +msgid "base primaries" +msgstr "osnovne primarne" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:303 +msgid "per channel" +msgstr "na kanal" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:304 +msgid "RGB ratio" +msgstr "razmerje RGB" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:308 +#: ../src/common/colorspaces.c:1377 ../src/common/colorspaces.c:1734 +msgid "work profile" +msgstr "delovni profil" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:309 +#| msgid "PQ Rec2020" +msgid "Rec2020" +msgstr "Rec2020" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:310 +#: ../src/common/colorspaces.c:1750 +#| msgid "display" +msgid "Display P3" +msgstr "Prikaz P3" + +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:135 +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:232 +msgid "color space" +msgstr "barvni prostor" + +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:263 +msgid "Lab, linked channels" +msgstr "Lab, povezani kanali" + +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:264 +msgid "Lab, independent channels" +msgstr "Lab, neodvisni kanali" + +#: ../build/lib/darktable/plugins/introspection_tonecurve.c:265 +msgid "XYZ, linked channels" +msgstr "XYZ, povezani kanali" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:144 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:289 +msgid "blacks" +msgstr "črnine" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:150 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:293 +msgid "deep shadows" +msgstr "globoke sence" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:162 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:301 +msgid "light shadows" +msgstr "svetle sence" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:174 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:309 +msgid "dark highlights" +msgstr "temne bleščave" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:186 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:317 +msgid "whites" +msgstr "beline" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:192 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:321 +msgid "speculars" +msgstr "spektivi" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:198 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:325 +msgid "smoothing diameter" +msgstr "premer glajenja" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:210 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:333 +msgid "edges refinement/feathering" +msgstr "izboljšanje/mehčanje robov s peresi" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:216 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:337 +msgid "mask quantization" +msgstr "kvantizacija maske" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:222 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:341 +msgid "mask contrast compensation" +msgstr "kompenzacija maske kontrasta" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:228 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:345 +msgid "mask exposure compensation" +msgstr "kompenzacija maske osvetlitve" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:240 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:353 +msgid "luminance estimator" +msgstr "cenilka svetlosti" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:246 +#: ../build/lib/darktable/plugins/introspection_toneequal.c:357 +msgid "filter diffusion" +msgstr "difuzija filtra" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:372 +msgid "averaged guided filter" +msgstr "povprečen voden filter" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:373 +msgid "guided filter" +msgstr "vodeni filter" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:374 +msgid "averaged EIGF" +msgstr "povprečeno EIGF" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:375 +msgid "EIGF" +msgstr "EIGF" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:379 +msgid "RGB average" +msgstr "RGB povprečje" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:380 +msgid "HSL lightness" +msgstr "HSV svetlost" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:381 +msgid "HSV value / RGB max" +msgstr "HSV vrednost / RGB max" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:382 +msgid "RGB sum" +msgstr "RGB vsota" + +#: ../build/lib/darktable/plugins/introspection_toneequal.c:385 +msgid "RGB geometric mean" +msgstr "RGB geometrijsko povprečje" + +#: ../build/lib/darktable/plugins/introspection_tonemap.cc:39 +#: ../build/lib/darktable/plugins/introspection_tonemap.cc:88 +#: ../src/iop/rgbcurve.c:186 ../src/iop/tonecurve.c:560 +msgid "contrast compression" +msgstr "stisni kontrast" + +#: ../build/lib/darktable/plugins/introspection_vibrance.c:33 +#: ../build/lib/darktable/plugins/introspection_vibrance.c:76 +#: ../src/iop/basicadj.c:657 ../src/iop/vibrance.c:67 +msgid "vibrance" +msgstr "živahnost" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:92 +#: ../build/lib/darktable/plugins/introspection_vignette.c:201 +msgid "fall-off start" +msgstr "začetek odpadanja" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:98 +#: ../build/lib/darktable/plugins/introspection_vignette.c:205 +msgid "fall-off radius" +msgstr "radij odpadanja" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:116 +#: ../build/lib/darktable/plugins/introspection_vignette.c:217 +msgid "horizontal center" +msgstr "vodoravni center" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:122 +#: ../build/lib/darktable/plugins/introspection_vignette.c:221 +msgid "vertical center" +msgstr "navpični center" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:134 +#: ../build/lib/darktable/plugins/introspection_vignette.c:229 +msgid "automatic ratio" +msgstr "avtomatično razmerje" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:140 +#: ../build/lib/darktable/plugins/introspection_vignette.c:233 +msgid "width/height ratio" +msgstr "razmerje širina/višina" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:146 +#: ../build/lib/darktable/plugins/introspection_vignette.c:237 +#: ../src/iop/vignette.c:1066 +msgid "shape" +msgstr "oblika" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:265 +msgid "8-bit output" +msgstr "8-bitni izhod" + +#: ../build/lib/darktable/plugins/introspection_vignette.c:266 +msgid "16-bit output" +msgstr "16-bitni izhod" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:118 +#: ../build/lib/darktable/plugins/introspection_watermark.c:253 +msgid "x offset" +msgstr "odmik x" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:124 +#: ../build/lib/darktable/plugins/introspection_watermark.c:257 +msgid "y offset" +msgstr "odmik y" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:142 +#: ../build/lib/darktable/plugins/introspection_watermark.c:269 +msgid "scale on" +msgstr "merilo na" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:148 +#: ../build/lib/darktable/plugins/introspection_watermark.c:273 +msgid "scale marker to" +msgstr "oznaka lestvičenja za" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:154 +#: ../build/lib/darktable/plugins/introspection_watermark.c:277 +msgid "scale marker reference" +msgstr "referenca oznake lestvičenja" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:323 +#: ../src/imageio/format/tiff.c:125 ../src/imageio/format/xcf.c:159 +#: ../src/iop/borders.c:960 +msgid "image" +msgstr "slika" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:324 +msgid "larger border" +msgstr "širši rob" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:325 +msgid "smaller border" +msgstr "manjši rob" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:327 +msgid "advanced options" +msgstr "napredne možnosti" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:331 +msgid "image width" +msgstr "širina slike" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:332 +msgid "image height" +msgstr "višina slike" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:333 +msgid "larger image border" +msgstr "širši rob slike" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:334 +msgid "smaller image border" +msgstr "manjši rob slike" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:338 +msgid "marker width" +msgstr "širina označevalnika" + +#: ../build/lib/darktable/plugins/introspection_watermark.c:339 +msgid "marker height" +msgstr "višina označevalnika" + +#: ../build/bin/tools/darktable_authors.h:6 +msgid "developers" +msgstr "razvijalci" + +#: ../build/bin/tools/darktable_authors.h:11 +msgid "translators" +msgstr "prevajalci" + +#: ../build/bin/tools/darktable_authors.h:16 +msgid "contributors" +msgstr "sodelavci" + +#: ../build/bin/tools/darktable_authors.h:21 +msgid "rawspeed contributors" +msgstr "sodelavci rawspeeda" + +#: ../build/bin/tools/darktable_authors.h:26 +msgid "integration contributors" +msgstr "sodelavci integracije" + +#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:1 +#: ../data/org.darktable.darktable.desktop.in.h:1 +msgid "Virtual Lighttable and Darkroom" +msgstr "Virtualna osvetljena podlaga in temnica" + +#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:2 +#: ../data/org.darktable.darktable.appdata.xml.in.h:1 +#: ../data/org.darktable.darktable.desktop.in.h:2 +msgid "Organize and develop images from digital cameras" +msgstr "Organizira in razvija slike digitalnih kamer" + +#. TRANSLATORS: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! +#: ../build/share/darktable/org.darktable.darktable.desktop.in.h:4 +#: ../data/org.darktable.darktable.desktop.in.h:4 +msgid "graphics;photography;raw;" +msgstr "grafika;fotografije;surove;" + +#: ../data/org.darktable.darktable.appdata.xml.in.h:2 +msgid "" +"darktable manages your digital negatives in a database and lets you view " +"them through a lighttable. It also enables you to develop raw images and " +"enhance them in a darkroom." +msgstr "" +"darktable upravlja z vašimi digitalnimi negativi v podatkovni bazi in vam " +"jih kaže na osvetljeni podlagi. Omogoča tudi razvijanje in izboljševanje " +"surovih fotografij v temnici." + +#: ../data/org.darktable.darktable.appdata.xml.in.h:3 +msgid "" +"Other modes besides lighttable and darkroom are a map for geotagging, " +"tethering, print and a slideshow." +msgstr "" +"Ostali načini uporabe programa razen osvetljene podlage in temnice so še " +"dodajanje geografskih oznak, odd. upravljanje, tisk slik in časovno " +"prikazovanje slik." + +#: ../data/org.darktable.darktable.appdata.xml.in.h:4 +msgid "" +"darktable supports most modern cameras' raw formats, and does all of its " +"processing at very high precision." +msgstr "" +"darktable podpira večino surovih formatov sodobnih kamer in nudi obdelavo z " +"visoko natančnostjo." + +#: ../data/org.darktable.darktable.appdata.xml.in.h:5 +msgid "Virtual light table, showing a collection" +msgstr "Virtualna svetlobna podlaga prikazuje zbirko" + +#: ../data/org.darktable.darktable.appdata.xml.in.h:6 +msgid "Virtual dark room with an opened image" +msgstr "Virtualna temnica z odprto sliko" + +#: ../data/org.darktable.darktable.appdata.xml.in.h:7 +msgid "Virtual dark room, sharpening an image" +msgstr "Virtualna temnica ostri sliko" + +#: ../data/org.darktable.darktable.appdata.xml.in.h:8 +msgid "Show images on a map" +msgstr "Prikaži slike na karti" + +#: ../data/org.darktable.darktable.appdata.xml.in.h:9 +msgid "Print your images" +msgstr "Natisni svoje slike" + +#: ../src/bauhaus/bauhaus.c:845 ../src/bauhaus/bauhaus.c:3957 +msgid "sliders" +msgstr "drsniki" + +#: ../src/bauhaus/bauhaus.c:847 ../src/bauhaus/bauhaus.c:3962 +msgid "dropdowns" +msgstr "spustni meniji" + +#: ../src/bauhaus/bauhaus.c:849 ../src/bauhaus/bauhaus.c:3967 +msgid "buttons" +msgstr "gumbi" + +#: ../src/bauhaus/bauhaus.c:3623 +msgid "button on" +msgstr "gumb pritisnjen" + +#: ../src/bauhaus/bauhaus.c:3623 +msgid "button off" +msgstr "gumb ugasnjen" + +#: ../src/bauhaus/bauhaus.c:3624 +msgid "button pressed" +msgstr "gumb pritisnjen" + +#: ../src/bauhaus/bauhaus.c:3862 +msgid "not that many sliders" +msgstr "ne tako veliko drsnikov" + +#: ../src/bauhaus/bauhaus.c:3876 +msgid "not that many dropdowns" +msgstr "ne toliko veliko spustnih menijev" + +#: ../src/bauhaus/bauhaus.c:3895 +msgid "not that many buttons" +msgstr "ne toliko veliko gumbov" + +#: ../src/bauhaus/bauhaus.c:3900 ../src/gui/accelerators.c:389 +msgid "value" +msgstr "vrednost" + +#: ../src/bauhaus/bauhaus.c:3901 ../src/bauhaus/bauhaus.c:3907 +#: ../src/gui/accelerators.c:368 +msgid "button" +msgstr "gumb" + +#: ../src/bauhaus/bauhaus.c:3902 +msgid "force" +msgstr "sila" + +#: ../src/bauhaus/bauhaus.c:3903 ../src/libs/navigation.c:190 +#: ../src/libs/navigation.c:202 +msgid "zoom" +msgstr "zoom" + +#: ../src/bauhaus/bauhaus.c:3906 ../src/libs/select.c:40 +msgid "selection" +msgstr "izbira" + +#: ../src/bauhaus/bauhaus.c:3946 +msgid "slider" +msgstr "drsnik" + +#: ../src/bauhaus/bauhaus.c:3951 +msgid "dropdown" +msgstr "spust" + +#: ../src/chart/main.c:504 ../src/common/database.c:3372 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 ../src/gui/accelerators.c:2497 +#: ../src/gui/accelerators.c:2579 ../src/gui/accelerators.c:2632 +#: ../src/gui/accelerators.c:2661 ../src/gui/accelerators.c:2723 +#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1081 ../src/gui/presets.c:422 +#: ../src/gui/presets.c:565 ../src/gui/styles_dialog.c:526 +#: ../src/imageio/storage/disk.c:198 ../src/imageio/storage/gallery.c:150 +#: ../src/imageio/storage/latex.c:146 ../src/iop/lut3d.c:1560 +#: ../src/libs/collect.c:425 ../src/libs/collect.c:3242 +#: ../src/libs/copy_history.c:115 ../src/libs/export_metadata.c:276 +#: ../src/libs/geotagging.c:929 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1711 +#: ../src/libs/metadata.c:462 ../src/libs/metadata_view.c:1222 +#: ../src/libs/recentcollect.c:228 ../src/libs/modulegroups.c:3466 +#: ../src/libs/styles.c:392 ../src/libs/styles.c:439 ../src/libs/styles.c:529 +#: ../src/libs/styles.c:624 ../src/libs/tagging.c:1488 +#: ../src/libs/tagging.c:1579 ../src/libs/tagging.c:1670 +#: ../src/libs/tagging.c:1806 ../src/libs/tagging.c:2085 +#: ../src/libs/tagging.c:2520 ../src/libs/tagging.c:2556 +#: ../src/libs/tagging.c:3502 +msgid "_cancel" +msgstr "_prekliči" + +#: ../src/chart/main.c:504 ../src/gui/preferences.c:1081 +#: ../src/gui/styles_dialog.c:527 ../src/libs/collect.c:3243 +#: ../src/libs/export_metadata.c:277 ../src/libs/metadata.c:463 +#: ../src/libs/metadata_view.c:1223 ../src/libs/recentcollect.c:229 +#: ../src/libs/styles.c:392 ../src/libs/tagging.c:1671 +#: ../src/libs/tagging.c:1807 ../src/libs/tagging.c:2086 +#: ../src/libs/tagging.c:3503 +msgid "_save" +msgstr "_shrani" + +#. TODO: is the rank interesting, too? +#: ../src/chart/main.c:1064 +#, c-format +msgid "" +"average dE: %.02f\n" +"max dE: %.02f" +msgstr "" +"povprečje dE: %.02f\n" +"max dE: %.02f" + +#: ../src/cli/main.c:270 +msgid "TODO: sorry, due to API restrictions we currently cannot set the BPP to" +msgstr "" +"ŠE NAREDITI: se opravičujemo, zaradi omejitev vmesnika na moremo nastaviti " +"BPP" + +#: ../src/cli/main.c:282 +msgid "unknown option for --hq" +msgstr "neznana možnost --hq" + +#: ../src/cli/main.c:298 +msgid "unknown option for --export_masks" +msgstr "neznana možnost --export_masks" + +#: ../src/cli/main.c:314 +msgid "unknown option for --upscale" +msgstr "neznana možnost --upscale" + +#: ../src/cli/main.c:339 +msgid "unknown option for --apply-custom-presets" +msgstr "neznana možnost --apply-custom-presets" + +#: ../src/cli/main.c:350 +msgid "too long ext for --out-ext" +msgstr "predolg ext za --out-ext" + +#: ../src/cli/main.c:367 +#, c-format +msgid "notice: input file or dir '%s' doesn't exist, skipping\n" +msgstr "" +"obvestilo: vhodna datoteka ali direktorij '%s' ne obstaja, preskakujem\n" + +#: ../src/cli/main.c:376 +#, c-format +msgid "incorrect ICC type for --icc-type: '%s'\n" +msgstr "napačen tip ICC za --icc-type: '%s'\n" + +#: ../src/cli/main.c:392 +#, c-format +msgid "notice: ICC file '%s' doesn't exist, skipping\n" +msgstr "opomba: datoteka ICC '%s' ne obstaja, preskakujem\n" + +#: ../src/cli/main.c:401 +#, c-format +msgid "incorrect ICC intent for --icc-intent: '%s'\n" +msgstr "napačen namen ICC za --icc-intent: '%s'\n" + +#: ../src/cli/main.c:419 +#, c-format +msgid "warning: unknown option '%s'\n" +msgstr "opozorilo: neznana možnost '%s'\n" + +#: ../src/cli/main.c:477 +#, c-format +msgid "error: input file and import opts specified! that's not supported!\n" +msgstr "" +"napaka: določene so in vhodna datoteka in možnosti uvoza! to ni podprto!\n" + +#: ../src/cli/main.c:510 +#, c-format +msgid "" +"notice: output location is a directory. assuming '%s/$(FILE_NAME).%s' output " +"pattern" +msgstr "" +"opomba: izhodna lokacija je imenik. predpostavljam, da je '%s/$(FILE_NAME)." +"%s' vzorec izhoda" + +#. output file exists or there's output ext specified and it's same as file... +#: ../src/cli/main.c:525 +msgid "output file already exists, it will get renamed" +msgstr "izhodna datoteka že obstaja, jo bom preimenoval" + +#. one of inputs was a failure, no prob +#: ../src/cli/main.c:555 +#, c-format +msgid "error: can't open folder %s" +msgstr "napaka: ne morem odpreti mape %s" + +#: ../src/cli/main.c:572 +#, c-format +msgid "error: can't open file %s" +msgstr "napaka: ne morem odpreti datoteke %s" + +#: ../src/cli/main.c:589 +#, c-format +msgid "no images to export, aborting\n" +msgstr "ni slik za izvoz, prekinjam\n" + +#: ../src/cli/main.c:606 +#, c-format +msgid "error: can't open XMP file %s" +msgstr "napaka: ni mogoče odpreti datoteke XMS %s" + +#: ../src/cli/main.c:627 +msgid "empty history stack" +msgstr "prazen sklad zgodovine" + +#. too long ext, no point in wasting time +#: ../src/cli/main.c:639 +#, c-format +msgid "too long output file extension: %s\n" +msgstr "predolga pripona izhodne datoteke:%s\n" + +#. no ext or empty ext, no point in wasting time +#: ../src/cli/main.c:647 +#, c-format +msgid "no output file extension given\n" +msgstr "ni danega podaljška izhodne datoteke\n" + +#: ../src/cli/main.c:692 +msgid "" +"cannot find disk storage module. please check your installation, something " +"seems to be broken." +msgstr "" +"ne morem urediti modula za shranjevanje na disk. Prosimo preverite vašo " +"namestitev, nekaj je najbrž narobe." + +#: ../src/cli/main.c:702 +msgid "failed to get parameters from storage module, aborting export ..." +msgstr "" +"nisem uspel dobiti parametrov iz modula za shranjevanje, prekinjam izvoz ...." + +#: ../src/cli/main.c:718 +#, c-format +msgid "unknown extension '.%s'" +msgstr "neznan podaljšek '.%s'" + +#: ../src/cli/main.c:728 +msgid "failed to get parameters from format module, aborting export ..." +msgstr "" +"nisem uspel dobiti parametrov iz modula za formatiranje, prekinjam izvoz ..." + +#: ../src/common/camera_control.c:190 +#, c-format +msgid "" +"camera `%s' on port `%s' error %s\n" +"\n" +"make sure your camera allows access and is not mounted otherwise" +msgstr "" +"kamera `%s' na vratih `%s' napaka %s\n" +"\n" +"prepričajte se, da kamera dovoli dostop in ni kako drugače priklopljena" + +#: ../src/common/camera_control.c:892 +#, c-format +msgid "" +"failed to initialize `%s' on port `%s', likely causes are: locked by another " +"application, no access to devices etc" +msgstr "" +"neuspela inicializacija `%s' na vratih '%s', verjetno so vzroki: zaklenjeno " +"z drugo aplikacijo, brez dostopa do naprav itd" + +#: ../src/common/camera_control.c:905 +#, c-format +msgid "" +"`%s' on port `%s' is not interesting because it supports neither tethering " +"nor import" +msgstr "" +"`%s 'na vratih '%s' ni zanimiv, ker ne podpira niti oddaljenega upravljanja " +"niti uvoza" + +#: ../src/common/camera_control.c:959 +#, c-format +msgid "camera `%s' on port `%s' disconnected while mounted" +msgstr "" +"kamera `%s' na vratih %s je bila odklopljena, medtem ko je bila priklopljena" + +#: ../src/common/camera_control.c:967 +#, c-format +msgid "" +"camera `%s' on port `%s' needs to be remounted\n" +"make sure it allows access and is not mounted otherwise" +msgstr "" +"kamero `%s' na vratih `%s' je treba ponovno priklopiti\n" +"preverite, da dovoli dostop in ni že sicer priklopljena" + +#: ../src/common/collection.c:586 +msgid "too much time to update aspect ratio for the collection" +msgstr "preveč časa za osvežitev razmerja proporcev za celotno zbirko" + +#: ../src/common/collection.c:601 +msgid "film roll" +msgstr "film" + +#: ../src/common/collection.c:603 +msgid "folder" +msgstr "mapa" + +#: ../src/common/collection.c:605 +msgid "camera" +msgstr "kamera" + +#: ../src/common/collection.c:607 ../src/libs/export_metadata.c:176 +#: ../src/libs/tagging.c:3312 +msgid "tag" +msgstr "oznaka" + +#: ../src/common/collection.c:609 +msgid "capture date" +msgstr "datum posnetka" + +#: ../src/common/collection.c:611 ../src/libs/filtering.c:61 +msgid "capture time" +msgstr "zajem slik" + +#: ../src/common/collection.c:613 ../src/libs/filtering.c:62 +msgid "import time" +msgstr "čas uvoza" + +#: ../src/common/collection.c:615 ../src/libs/filtering.c:63 +msgid "modification time" +msgstr "čas spremembe" + +#: ../src/common/collection.c:617 ../src/libs/filtering.c:64 +msgid "export time" +msgstr "čas izvoza" + +#: ../src/common/collection.c:619 ../src/libs/filtering.c:65 +msgid "print time" +msgstr "čas tiskanja" + +#: ../src/common/collection.c:621 ../src/libs/collect.c:3586 +#: ../src/libs/filtering.c:2237 ../src/libs/filtering.c:2257 +#: ../src/libs/filters/history.c:153 ../src/libs/history.c:92 +msgid "history" +msgstr "zgodovina" + +#: ../src/common/collection.c:623 ../src/common/colorlabels.c:341 +#: ../src/develop/lightroom.c:1607 ../src/dtgtk/thumbnail.c:1548 +#: ../src/libs/filtering.c:68 ../src/libs/filters/colors.c:301 +#: ../src/libs/filters/colors.c:312 ../src/libs/tools/colorlabels.c:93 +msgid "color label" +msgstr "oznaka barve" + +#. iso +#: ../src/common/collection.c:629 ../src/gui/preferences.c:830 +#: ../src/gui/presets.c:669 ../src/libs/camera.c:558 +#: ../src/libs/metadata_view.c:149 +msgid "ISO" +msgstr "ISO" + +#. aperture +#: ../src/common/collection.c:631 ../src/gui/preferences.c:838 +#: ../src/gui/presets.c:704 ../src/libs/camera.c:545 ../src/libs/camera.c:547 +#: ../src/libs/metadata_view.c:142 +msgid "aperture" +msgstr "zaslonka" + +#: ../src/common/collection.c:637 ../src/libs/filtering.c:57 +#: ../src/libs/filters/filename.c:369 ../src/libs/metadata_view.c:128 +msgid "filename" +msgstr "ime datoteke" + +#: ../src/common/collection.c:639 ../src/develop/lightroom.c:1598 +#: ../src/libs/geotagging.c:141 +msgid "geotagging" +msgstr "geokode" + +#: ../src/common/collection.c:641 ../src/libs/filters/grouping.c:167 +#: ../src/libs/tools/global_toolbox.c:394 +msgid "grouping" +msgstr "grupiranje" + +#: ../src/common/collection.c:643 ../src/dtgtk/thumbnail.c:1563 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:340 +msgid "local copy" +msgstr "lokalna kopija" + +#: ../src/common/collection.c:645 ../src/gui/preferences.c:806 +msgid "module" +msgstr "modul" + +#: ../src/common/collection.c:647 ../src/gui/hist_dialog.c:346 +#: ../src/gui/styles_dialog.c:734 ../src/gui/styles_dialog.c:783 +#: ../src/libs/filters/module_order.c:161 ../src/libs/ioporder.c:39 +msgid "module order" +msgstr "razvrstitev modulov" + +#: ../src/common/collection.c:649 +msgid "range rating" +msgstr "ocena obsega" + +#: ../src/common/collection.c:651 ../src/common/ratings.c:321 +#: ../src/develop/lightroom.c:1582 ../src/libs/filtering.c:67 +#: ../src/libs/tools/ratings.c:110 +msgid "rating" +msgstr "ocena" + +#: ../src/common/collection.c:653 +msgid "search" +msgstr "iskanje" + +#: ../src/common/collection.c:1376 ../src/common/colorlabels.c:334 +#: ../src/develop/lightroom.c:889 ../src/gui/guides.c:732 +#: ../src/iop/colorzones.c:2501 ../src/iop/temperature.c:1902 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:261 +msgid "yellow" +msgstr "rumena" + +#: ../src/common/collection.c:1382 ../src/common/color_vocabulary.c:339 +#: ../src/common/colorlabels.c:337 ../src/iop/colorzones.c:2505 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:264 +msgid "purple" +msgstr "škrlatna" + +#: ../src/common/collection.c:1400 ../src/libs/collect.c:1863 +#: ../src/libs/filters/history.c:38 +msgid "auto applied" +msgstr "uporabljeno avtomatsko" + +#: ../src/common/collection.c:1406 ../src/libs/collect.c:1863 +#: ../src/libs/filters/history.c:38 +msgid "altered" +msgstr "spremenjeno" + +#: ../src/common/collection.c:1424 ../src/common/collection.c:1535 +#: ../src/libs/collect.c:1242 ../src/libs/collect.c:1426 +#: ../src/libs/collect.c:1452 ../src/libs/collect.c:1592 +#: ../src/libs/collect.c:2662 +msgid "not tagged" +msgstr "ni označeno" + +#: ../src/common/collection.c:1425 ../src/libs/collect.c:1452 +#: ../src/libs/map_locations.c:742 +msgid "tagged" +msgstr "označeno" + +#: ../src/common/collection.c:1426 +msgid "tagged*" +msgstr "označeno*" + +#. local copy +#: ../src/common/collection.c:1460 ../src/libs/collect.c:1883 +#: ../src/libs/filters/local_copy.c:38 +msgid "not copied locally" +msgstr "ni bilo lokalno prekopirano" + +#: ../src/common/collection.c:1465 ../src/libs/collect.c:1882 +#: ../src/libs/filters/local_copy.c:38 +msgid "copied locally" +msgstr "lokalno kopirano" + +#. if its undefined +#: ../src/common/collection.c:1507 ../src/common/collection.c:1619 +#: ../src/libs/collect.c:2209 ../src/libs/collect.c:2210 +#| msgid "name" +msgid "unnamed" +msgstr "neimenovano" + +#: ../src/common/collection.c:1905 ../src/libs/collect.c:2013 +#: ../src/libs/filters/grouping.c:147 ../src/libs/filters/grouping.c:170 +msgid "group leaders" +msgstr "voditelji grup" + +#: ../src/common/collection.c:1909 ../src/libs/collect.c:2013 +#: ../src/libs/filters/grouping.c:150 ../src/libs/filters/grouping.c:170 +msgid "group followers" +msgstr "sledilci grupe" + +#: ../src/common/collection.c:2066 ../src/libs/collect.c:2100 +msgid "not defined" +msgstr "ni določeno" + +#: ../src/common/collection.c:2521 +#, c-format +msgid "<b>%d</b> image (#<b>%d</b>) selected of <b>%d</b>" +msgstr "<b>%d</b> slika (#<b>%d</b>) izbrana izmed <b>%d</b>" + +#: ../src/common/collection.c:2528 +#, c-format +msgid "<b>%d</b> image selected of <b>%d</b>" +msgid_plural "<b>%d</b> images selected of <b>%d</b>" +msgstr[0] "<b>%d</b> slika izbrana izmed <b>%d</b>" +msgstr[1] "<b>%d</b> sliki izbranimi izmed <b>%d</b>" +msgstr[2] "<b>%d</b> slike izbrane izmed <b>%d</b>" +msgstr[3] "<b>%d</b> slik izbranih izmed <b>%d</b>" + +#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2340 +#: ../src/develop/blend_gui.c:2388 ../src/gui/guides.c:729 +#: ../src/iop/channelmixerrgb.c:4688 ../src/iop/levels.c:687 +#: ../src/iop/rgblevels.c:969 ../src/iop/rgblevels.c:1083 +msgid "gray" +msgstr "siva" + +#: ../src/common/color_vocabulary.c:92 +msgid "Chinese" +msgstr "kitajsko" + +#: ../src/common/color_vocabulary.c:93 +msgid "Thai" +msgstr "tajsko" + +#: ../src/common/color_vocabulary.c:94 +msgid "Kurdish" +msgstr "kurdsko" + +#: ../src/common/color_vocabulary.c:95 +msgid "Caucasian" +msgstr "kavkaško" + +#: ../src/common/color_vocabulary.c:96 +msgid "African-American" +msgstr "afriško-ameriško" + +#: ../src/common/color_vocabulary.c:97 +msgid "Mexican" +msgstr "mehiško" + +#: ../src/common/color_vocabulary.c:100 ../src/common/color_vocabulary.c:105 +#: ../src/common/color_vocabulary.c:110 ../src/common/color_vocabulary.c:115 +msgid "forearm" +msgstr "nadlaket" + +#: ../src/common/color_vocabulary.c:120 ../src/common/color_vocabulary.c:125 +#: ../src/common/color_vocabulary.c:130 ../src/common/color_vocabulary.c:135 +#: ../src/common/color_vocabulary.c:140 ../src/common/color_vocabulary.c:145 +msgid "forehead" +msgstr "čelo" + +#: ../src/common/color_vocabulary.c:150 ../src/common/color_vocabulary.c:155 +#: ../src/common/color_vocabulary.c:160 ../src/common/color_vocabulary.c:165 +#: ../src/common/color_vocabulary.c:170 ../src/common/color_vocabulary.c:175 +msgid "cheek" +msgstr "lice" + +#: ../src/common/color_vocabulary.c:202 +#, c-format +msgid "average %s skin tone\n" +msgstr "povprečni %s ton kože\n" + +#. 0° - pinkish red +#: ../src/common/color_vocabulary.c:222 +msgid "deep purple" +msgstr "globoko škrlatna" + +#. L = 10 % +#: ../src/common/color_vocabulary.c:223 +msgid "fuchsia" +msgstr "fuksija" + +#. L = 30 % +#: ../src/common/color_vocabulary.c:224 +msgid "medium magenta" +msgstr "srednja magenta" + +#. L = 50 % +#: ../src/common/color_vocabulary.c:225 +msgid "violet pink" +msgstr "roza vijolična" + +#. L = 70 % +#: ../src/common/color_vocabulary.c:226 +msgid "plum violet" +msgstr "slivno vijolična" + +#. 24° - red +#: ../src/common/color_vocabulary.c:231 +msgid "dark red" +msgstr "temni rdeča" + +#: ../src/common/color_vocabulary.c:233 +msgid "crimson" +msgstr "škrlatna" + +#: ../src/common/color_vocabulary.c:234 +msgid "salmon" +msgstr "postrv" + +#: ../src/common/color_vocabulary.c:235 +msgid "pink" +msgstr "roza" + +#. 48° - orangy red +#: ../src/common/color_vocabulary.c:240 +msgid "maroon" +msgstr "kostanjeva" + +#: ../src/common/color_vocabulary.c:241 +msgid "dark orange red" +msgstr "temno oranžno rdeče" + +#: ../src/common/color_vocabulary.c:242 +msgid "orange red" +msgstr "oranžno rdeča" + +#: ../src/common/color_vocabulary.c:243 +msgid "coral" +msgstr "koralna" + +#: ../src/common/color_vocabulary.c:244 ../src/common/color_vocabulary.c:261 +msgid "khaki" +msgstr "kaki" + +#. 72° - orange +#: ../src/common/color_vocabulary.c:249 +msgid "brown" +msgstr "rjava" + +#: ../src/common/color_vocabulary.c:250 +msgid "chocolate" +msgstr "čokoladna" + +#: ../src/common/color_vocabulary.c:251 +msgid "dark gold" +msgstr "temno zlata" + +#: ../src/common/color_vocabulary.c:252 +msgid "gold" +msgstr "zlata" + +#: ../src/common/color_vocabulary.c:253 +msgid "sandy brown" +msgstr "peščeno rjava" + +#. 96° - yellow olive +#. 120° - green +#. 144° - blueish green +#: ../src/common/color_vocabulary.c:258 ../src/common/color_vocabulary.c:267 +#: ../src/common/color_vocabulary.c:276 +msgid "dark green" +msgstr "temno zelena" + +#: ../src/common/color_vocabulary.c:259 +msgid "dark olive green" +msgstr "temno olivno zelena" + +#: ../src/common/color_vocabulary.c:260 +msgid "olive" +msgstr "olivna" + +#: ../src/common/color_vocabulary.c:262 +msgid "beige" +msgstr "bež" + +#: ../src/common/color_vocabulary.c:268 ../src/common/color_vocabulary.c:278 +msgid "forest green" +msgstr "gozdno zelena" + +#: ../src/common/color_vocabulary.c:269 +msgid "olive drab" +msgstr "olivno drap" + +#: ../src/common/color_vocabulary.c:270 +msgid "yellow green" +msgstr "rumeno zelena" + +#: ../src/common/color_vocabulary.c:271 ../src/common/color_vocabulary.c:280 +msgid "pale green" +msgstr "bledo zelena" + +#: ../src/common/color_vocabulary.c:279 +msgid "lime green" +msgstr "limetino zelena" + +#. 168° - greenish cyian +#: ../src/common/color_vocabulary.c:285 +msgid "dark sea green" +msgstr "temno morsko zelena" + +#: ../src/common/color_vocabulary.c:286 +msgid "sea green" +msgstr "morsko zelena" + +#: ../src/common/color_vocabulary.c:287 ../src/common/color_vocabulary.c:304 +msgid "teal" +msgstr "svileno zelena" + +#: ../src/common/color_vocabulary.c:288 +msgid "light sea green" +msgstr "svetlo morsko zelena" + +#: ../src/common/color_vocabulary.c:289 +msgid "turquoise" +msgstr "turkizna" + +#. 192° - cyan +#: ../src/common/color_vocabulary.c:294 +msgid "dark slate gray" +msgstr "temno skrilasto siva" + +#: ../src/common/color_vocabulary.c:295 +msgid "light slate gray" +msgstr "svetlo skrilasto siva" + +#: ../src/common/color_vocabulary.c:296 ../src/common/color_vocabulary.c:305 +msgid "dark cyan" +msgstr "temna cian" + +#: ../src/common/color_vocabulary.c:297 ../src/common/color_vocabulary.c:317 +#: ../src/iop/colorzones.c:2503 +msgid "aqua" +msgstr "vodna" + +#: ../src/common/color_vocabulary.c:298 ../src/gui/guides.c:733 +#: ../src/iop/temperature.c:1900 +msgid "cyan" +msgstr "cian" + +#. 216° - medium blue +#: ../src/common/color_vocabulary.c:303 +msgid "navy blue" +msgstr "mornarsko modra" + +#: ../src/common/color_vocabulary.c:306 ../src/common/color_vocabulary.c:316 +msgid "deep sky blue" +msgstr "nebesno modra" + +#: ../src/common/color_vocabulary.c:307 +msgid "aquamarine blue" +msgstr "akvamarin modra" + +#. 240° - blue and 264° - bluer than blue +#. these are collapsed because CIE Lab 1976 sucks for blues +#. 288° - more blue +#: ../src/common/color_vocabulary.c:313 ../src/common/color_vocabulary.c:322 +msgid "dark blue" +msgstr "temno modra" + +#: ../src/common/color_vocabulary.c:314 ../src/common/color_vocabulary.c:323 +msgid "medium blue" +msgstr "srednje modra" + +#: ../src/common/color_vocabulary.c:315 +msgid "azure blue" +msgstr "azurno modra" + +#: ../src/common/color_vocabulary.c:325 +msgid "light sky blue" +msgstr "svetlo nebesno modra" + +#: ../src/common/color_vocabulary.c:326 +msgid "light blue" +msgstr "svetlo modra" + +#. 312° - violet +#: ../src/common/color_vocabulary.c:331 +msgid "indigo" +msgstr "indigo" + +#: ../src/common/color_vocabulary.c:332 +msgid "dark violet" +msgstr "temno vijolična" + +#: ../src/common/color_vocabulary.c:333 +msgid "blue violet" +msgstr "modro vijolična" + +#: ../src/common/color_vocabulary.c:334 ../src/common/color_vocabulary.c:342 +msgid "violet" +msgstr "vijolična" + +#: ../src/common/color_vocabulary.c:335 +msgid "plum" +msgstr "sliva" + +#: ../src/common/color_vocabulary.c:340 +msgid "dark magenta" +msgstr "temna magenta" + +#: ../src/common/color_vocabulary.c:341 ../src/gui/guides.c:734 +#: ../src/iop/colorzones.c:2506 ../src/iop/temperature.c:1898 +msgid "magenta" +msgstr "magenta" + +#: ../src/common/color_vocabulary.c:343 +msgid "lavender" +msgstr "sivka" + +#: ../src/common/color_vocabulary.c:346 +msgid "color not found" +msgstr "barve ni najdene" + +#: ../src/common/colorlabels.c:309 +#, c-format +msgid "colorlabels set to %s" +msgstr "nastavitev barvnih oznak na %s" + +#: ../src/common/colorlabels.c:311 +msgid "all colorlabels removed" +msgstr "vse barvne oznake odstranjene" + +#: ../src/common/colorlabels.c:332 ../src/gui/accelerators.c:188 +#: ../src/libs/image.c:660 +msgid "clear" +msgstr "očisti" + +#: ../src/common/colorspaces.c:1382 ../src/common/colorspaces.c:1730 +#: ../src/iop/colorout.c:901 +msgid "export profile" +msgstr "profil izvoza" + +#: ../src/common/colorspaces.c:1387 ../src/common/colorspaces.c:1732 +#: ../src/views/darkroom.c:2383 +msgid "softproof profile" +msgstr "profil preizkusnega odtisa" + +#: ../src/common/colorspaces.c:1397 ../src/common/colorspaces.c:1714 +msgid "system display profile" +msgstr "sistemski profil zaslona" + +#: ../src/common/colorspaces.c:1402 ../src/common/colorspaces.c:1736 +msgid "system display profile (second window)" +msgstr "sistemski profil zaslona (drugo okno)" + +#: ../src/common/colorspaces.c:1415 +msgid "sRGB (web-safe)" +msgstr "sRGB (za splet)" + +#: ../src/common/colorspaces.c:1435 ../src/common/colorspaces.c:1738 +msgid "Rec709 RGB" +msgstr "Rec709 RGB" + +#: ../src/common/colorspaces.c:1450 +msgid "PQ Rec2020 RGB" +msgstr "PQ Rec2020 RGB" + +#: ../src/common/colorspaces.c:1458 +msgid "HLG Rec2020 RGB" +msgstr "HLG Rec2020 RGB" + +#: ../src/common/colorspaces.c:1465 +msgid "PQ P3 RGB" +msgstr "PQ P3 RGB" + +#: ../src/common/colorspaces.c:1471 +msgid "HLG P3 RGB" +msgstr "HLG P3 RGB" + +#: ../src/common/colorspaces.c:1478 +#| msgid "PQ P3 RGB" +msgid "Display P3 RGB" +msgstr "Prikaži P3 RGB" + +#: ../src/common/colorspaces.c:1493 ../src/common/colorspaces.c:1708 +msgid "linear XYZ" +msgstr "linearni XYZ" + +#: ../src/common/colorspaces.c:1500 ../src/common/colorspaces.c:1710 +#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2016 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:293 +msgid "Lab" +msgstr "Lab" + +#: ../src/common/colorspaces.c:1508 ../src/common/colorspaces.c:1712 +msgid "linear infrared BGR" +msgstr "linearni infrardeči BGR" + +#: ../src/common/colorspaces.c:1513 +msgid "BRG (for testing)" +msgstr "BRG (za preizkus)" + +#: ../src/common/colorspaces.c:1619 +#, c-format +msgid "" +"profile `%s' not usable as histogram profile. it has been replaced by sRGB!" +msgstr "profil '%s' ni uporaben kot profil histograma, bil je zamenjan z sRGB!" + +#: ../src/common/colorspaces.c:1716 +msgid "embedded ICC profile" +msgstr "vgrajeni ICC profil" + +#: ../src/common/colorspaces.c:1718 +msgid "embedded matrix" +msgstr "vgrajena matrika" + +#: ../src/common/colorspaces.c:1720 +msgid "standard color matrix" +msgstr "standardna barvna matrika" + +#: ../src/common/colorspaces.c:1722 +msgid "enhanced color matrix" +msgstr "izboljšana barvna matrika" + +#: ../src/common/colorspaces.c:1724 +msgid "vendor color matrix" +msgstr "barvna matrika proizvajalca" + +#: ../src/common/colorspaces.c:1726 +msgid "alternate color matrix" +msgstr "alternativna barvna matrika" + +#: ../src/common/colorspaces.c:1728 +msgid "BRG (experimental)" +msgstr "BRG (preizkusno)" + +#: ../src/common/colorspaces.c:1742 +msgid "PQ Rec2020" +msgstr "PQ Rec2020" + +#: ../src/common/colorspaces.c:1744 +msgid "HLG Rec2020" +msgstr "HLG Rec2020" + +#: ../src/common/colorspaces.c:1746 +msgid "PQ P3" +msgstr "PQ P3" + +#: ../src/common/colorspaces.c:1748 +msgid "HLG P3" +msgstr "HLG P3" + +#: ../src/common/cups_print.c:420 +#, c-format +msgid "file `%s' to print not found for image %d on `%s'" +msgstr "datoteke `%s' za tisk slike %d nisem našel na `%s'" + +#: ../src/common/cups_print.c:439 +msgid "failed to create temporary file for printing options" +msgstr "nisem uspel ustvariti začasne datoteke za nastavitve tiskanja" + +#: ../src/common/cups_print.c:508 +#, c-format +msgid "printing on `%s' cancelled" +msgstr "tiskanje na `%s' preklicano" + +#: ../src/common/cups_print.c:572 +#, c-format +msgid "error while printing `%s' on `%s'" +msgstr "napaka pri tiskanju `%s' na `%s'" + +#: ../src/common/cups_print.c:574 +#, c-format +msgid "printing `%s' on `%s'" +msgstr "tiskanje `%s' na `%s'" + +#: ../src/common/darktable.c:375 +#, c-format +msgid "found strange path `%s'" +msgstr "našel sem čudno pot `%s'" + +#: ../src/common/darktable.c:390 +#, c-format +msgid "error loading directory `%s'" +msgstr "napaka pri nalaganju mape `%s'" + +#: ../src/common/darktable.c:414 +#, c-format +msgid "file `%s' has unknown format!" +msgstr "datoteka `%s' ima neznan format!" + +#: ../src/common/darktable.c:427 ../src/control/jobs/control_jobs.c:2121 +#: ../src/control/jobs/control_jobs.c:2180 +#, c-format +msgid "error loading file `%s'" +msgstr "napaka pri nalaganju datoteke '%s'" + +#: ../src/common/darktable.c:1650 +msgid "configuration information" +msgstr "informacije o konfiguraciji" + +#: ../src/common/darktable.c:1652 +#| msgid "show this information again" +msgid "_show this information again" +msgstr "_prikaži to informacijo ponovno" + +#: ../src/common/darktable.c:1652 +#| msgid "understood" +msgid "_understood" +msgstr "_razumljeno" + +#: ../src/common/darktable.c:2106 +msgid "" +"the RCD demosaicer has been defined as default instead of PPG because of " +"better quality and performance." +msgstr "" +"razmozaičnik RCD je bil zaradi PPG določen kot privzeti zaradi boljša " +"kakovost in zmogljivosti PPG." + +#: ../src/common/darktable.c:2108 +msgid "see preferences/darkroom/demosaicing for zoomed out darkroom mode" +msgstr "" +"poglej preference/odstranjevanje mozaičnosti za pomanjšan pogled v načinu " +"temnice" + +#: ../src/common/darktable.c:2114 +msgid "" +"the user interface and the underlying internals for tuning darktable " +"performance have changed." +msgstr "" +"uporabniški vmesnik in nastavitev notranjosti za prilagajanje darktabla za " +"uspešnost se je spremenila." + +#: ../src/common/darktable.c:2116 +msgid "" +"you won't find headroom and friends any longer, instead in preferences/" +"processing use:" +msgstr "" +"ne boste našli več prostora in prijateljev, namesto v nastavitvah za uporabo " +"obdelav:" + +#: ../src/common/darktable.c:2118 +msgid "1) darktable resources" +msgstr "1) viri programa darktable" + +#: ../src/common/darktable.c:2120 +msgid "2) tune OpenCL performance" +msgstr "2) prilagodi zmogljivost OpenCL" + +#: ../src/common/darktable.c:2127 +msgid "" +"some global config parameters relevant for OpenCL performance are not used " +"any longer." +msgstr "" +"nekatere globalne vrednosti konfiguracije pomembne za učinkovitost OpenCL " +"niso več v uporabi." + +#: ../src/common/darktable.c:2129 +#| msgid "" +#| "instead you will find 'per device' data in 'cl_device_v4_canonical-name'. " +#| "content is:" +msgid "" +"instead you will find 'per device' data in 'cldevice_v5_canonical-name'. " +"content is:" +msgstr "" +"namesto tega boste našli podatke 'po napravi' v" +" ''cl_device_v5_canonical-name'. vsebina je:" + +#: ../src/common/darktable.c:2131 ../src/common/darktable.c:2150 +#: ../src/common/darktable.c:2165 +#| msgid "" +#| " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " +#| "'eventhandles' 'async' 'disable' 'magic'" +msgid "" +" 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" +msgstr "" +" 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" + +#: ../src/common/darktable.c:2133 ../src/common/darktable.c:2152 +msgid "you may tune as before except 'magic'" +msgstr "lahko prilagajate kot prej - razen 'magic'" + +#: ../src/common/darktable.c:2139 +msgid "" +"your OpenCL compiler settings for all devices have been reset to default." +msgstr "" +"vaše nastavitve prevajalnika OpenCL za vse naprave so bile postavljene na " +"privzete vrednosti." + +#: ../src/common/darktable.c:2146 +msgid "" +"OpenCL global config parameters 'per device' data has been recreated with an " +"updated name." +msgstr "" +"globalni parametri konfiguracije OpenCL 'po napravi' so bile ponovno " +"ustvarjene s posodobljeni imenom." + +#: ../src/common/darktable.c:2148 ../src/common/darktable.c:2163 +msgid "" +"you will find 'per device' data in 'cldevice_v5_canonical-name'. content is:" +msgstr "" +"podatke 'po napravi' boste našli v 'cl_device_v4_canonical-name'. vsebina je:" + +#: ../src/common/darktable.c:2154 +msgid "" +"If you're using device names in 'opencl_device_priority' you should update " +"them to the new names." +msgstr "" +"Če uporabljate imena naprav v 'opencl_device_priority', jih morate " +"posodobiti na nova imena." + +#: ../src/common/darktable.c:2161 +msgid "" +"OpenCL 'per device' config data have been automatically extended by 'unified-" +"fraction'." +msgstr "" +"Konfiguracijski podatki OpenCL 'na napravo' so bili samodejno razširjeni z " +" 'unified-fraction'." + +#: ../src/common/darktable.c:2172 +msgid "" +"OpenCL 'per device' compiler settings might have been updated.\n" +"\n" +msgstr "" +"Nastavitve prevajalnika OpenCL 'na napravo' so morda posodobljene.\n" +"\n" + +#: ../src/common/database.c:3350 +#, c-format +msgid "" +"\n" +" Sorry, darktable could not be started (database is locked)\n" +"\n" +" How to solve this problem?\n" +"\n" +" 1 - If another darktable instance is already open, \n" +" click cancel and either use that instance or close it before " +"attempting to rerun darktable \n" +" (process ID <i><b>%d</b></i> created the database locks)\n" +"\n" +" 2 - If you can't find a running instance of darktable, try restarting your " +"session or your computer. \n" +" This will close all running programs and hopefully close the databases " +"correctly. \n" +"\n" +" 3 - If you have done this or are certain that no other instances of " +"darktable are running, \n" +" this probably means that the last instance was ended abnormally. \n" +" Click on the \"delete database lock files\" button to remove the files " +"<i>data.db.lock</i> and <i>library.db.lock</i>. \n" +"\n" +"\n" +" <i><u>Caution!</u> Do not delete these files without first undertaking " +"the above checks, \n" +" otherwise you risk generating serious inconsistencies in your database." +"</i>\n" +msgstr "" +"\n" +" Oprostite, programa darktable ni bilo mogoče zagnati (baza podatkov je " +"zaklenjena)\n" +"\n" +" Kako rešiti to težavo?\n" +"\n" +" 1 - Če je že odprt drug pojavek programa darktable,\n" +" kliknite Prekliči in uporabite pojavek ali ga zaprite, preden " +"poskusite ponovno zagnati darktable\n" +" (ID procesa <i><b>%d</b> </i> je zaklenil baze podatkov)\n" +"\n" +" 2 - Če ne najdete tekočega pojavka programa darktable, poskusite znova " +"zagnati sejo ali računalnik.\n" +" S tem boste zaprli vse programe in upamo, da bodo tudi baze podatkov " +"pravilno zaprte.\n" +"\n" +" 3 - Če ste to že storili ali ste prepričani, da se ne izvaja noben drug " +"pojavek programa darktable,\n" +" to verjetno pomeni, da se je zadnji pojavek končal nenormalno.\n" +" Kliknite gumb \"izbriši datoteke zaklepa zbirke podatkov\", da " +"odstranite datoteki <i>data.db.lock</i> in <i>library.db.lock</i>.\n" +"\n" +"\n" +" <i><u>Pozor!</u> Teh datotek ne brišite, ne da bi prej izvedli zgornja " +"preverjanja,\n" +" v nasprotnem primeru tvegate, da boste ustvarili resna neskladja v " +"svoji bazi podatkov.</i>\n" + +#. clang-format on +#: ../src/common/database.c:3371 +msgid "error starting darktable" +msgstr "napaka ob zagonu darktable" + +#: ../src/common/database.c:3372 +#| msgid "delete database lock files" +msgid "_delete database lock files" +msgstr "_zbriši datoteke zaklepa podatkovne baze" + +#: ../src/common/database.c:3378 +msgid "are you sure?" +msgstr "ali ste prepričani?" + +#: ../src/common/database.c:3379 +msgid "" +"\n" +"do you really want to delete the lock files?\n" +msgstr "" +"\n" +"ali res želite brisati datoteke zaklepa?\n" + +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2597 +msgid "_no" +msgstr "_ne" + +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2596 +msgid "_yes" +msgstr "_da" + +#: ../src/common/database.c:3395 +msgid "done" +msgstr "narejeno" + +#: ../src/common/database.c:3396 +msgid "" +"\n" +"successfully deleted the lock files.\n" +"you can now restart darktable\n" +msgstr "" +"\n" +"uspešno zbrisane datoteke zaklepa.\n" +"zdaj lahko ponovno poženete darktable\n" + +#: ../src/common/database.c:3397 ../src/common/database.c:3404 +#: ../src/gui/accelerators.c:2580 ../src/gui/accelerators.c:2662 +#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:566 +msgid "_ok" +msgstr "_ok" + +#: ../src/common/database.c:3400 +msgid "error" +msgstr "napaka" + +#: ../src/common/database.c:3401 +#, c-format +msgid "" +"\n" +"at least one file could not be removed.\n" +"you may try to manually delete the files <i>data.db.lock</i> and <i>library." +"db.lock</i>\n" +"in folder <a href=\"file:///%s\">%s</a>.\n" +msgstr "" +"\n" +"vsaj ene datoteke ni bilo mogoče odstraniti.\n" +"lahko poskusite ročno zbrisati datoteki <i>data.db.lock</i> in <i>library.db." +"lock</i>\n" +"v mapi <a href=\"file:///%s\">%s</a>.\n" + +#: ../src/common/database.c:3518 +#, c-format +msgid "" +"the database lock file contains a pid that seems to be alive in your system: " +"%d" +msgstr "" +"datoteka, ki zaklepa podatkovno bazo vsebuje pid, ki je aktiven v vašem " +"sistemu: %d" + +#: ../src/common/database.c:3525 +#, c-format +msgid "the database lock file seems to be empty" +msgstr "videti je, da je datoteka zaklepanja prazna" + +#: ../src/common/database.c:3535 +#, c-format +msgid "error opening the database lock file for reading: %s" +msgstr "napaka pri odpiranju datoteke zaklepanja podatkovne baze za branje: %s" + +#: ../src/common/database.c:3605 +#, c-format +msgid "" +"the database schema version of\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"is too new for this build of darktable (this means the database was created " +"or upgraded by a newer darktable version)\n" +msgstr "" +"različica sheme baze podatkov\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"je preveč nova za to izgradnjo darktable (to pomeni, da je bila baza podatkov" +" ustvarjena" +"ali nadgrajena z novejšo različico darktable)\n" + +#: ../src/common/database.c:3612 +#| msgid "darktable - schema migration" +msgid "darktable - too new db version" +msgstr "darktable - too new db version" + +#: ../src/common/database.c:3613 +#| msgid "darktable" +msgid "_quit darktable" +msgstr "_quit darktable" + +#. the database has to be upgraded, let's ask user +#: ../src/common/database.c:3628 +#, c-format +msgid "" +"the database schema has to be upgraded for\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"this might take a long time in case of a large database\n" +"\n" +"do you want to proceed or quit now to do a backup\n" +msgstr "" +"shema podatkovne baze, je potrebna nadgradnje\n" +"\n" +"<span style=\"italic\">%s</span>\n" +"\n" +"to utegne kar trajati pri veliki podatkovni bazi\n" +"\n" +"ali želite nadaljevati ali zapustiti program, da bi lahko prej izdelali " +"varnostno kopijo\n" + +#: ../src/common/database.c:3636 +msgid "darktable - schema migration" +msgstr "darktable - shema migracije" + +#: ../src/common/database.c:3637 ../src/common/database.c:3959 +#: ../src/common/database.c:3974 ../src/common/database.c:4142 +#: ../src/common/database.c:4157 +#| msgid "close darktable" +msgid "_close darktable" +msgstr "_close darktable" + +#: ../src/common/database.c:3637 +#| msgid "upgrade database" +msgid "_upgrade database" +msgstr "_upgrade database" + +#: ../src/common/database.c:3939 ../src/common/database.c:4122 +#, c-format +msgid "" +"quick_check said:\n" +"%s \n" +msgstr "" +"quick_check said:\n" +"%s \n" + +#: ../src/common/database.c:3956 ../src/common/database.c:3971 +#: ../src/common/database.c:4139 ../src/common/database.c:4154 +msgid "darktable - error opening database" +msgstr "darktable - napaka pri odpiranju podatkovne baze" + +#: ../src/common/database.c:3960 ../src/common/database.c:4143 +#| msgid "attempt restore" +msgid "_attempt restore" +msgstr "_attempt restore" + +#: ../src/common/database.c:3961 ../src/common/database.c:3975 +#: ../src/common/database.c:4144 ../src/common/database.c:4158 +#| msgid "delete database" +msgid "_delete database" +msgstr "_delete database" + +#: ../src/common/database.c:3964 ../src/common/database.c:4147 +msgid "" +"do you want to close darktable now to manually restore\n" +"the database from a backup, attempt an automatic restore\n" +"from the most recent snapshot or delete the corrupted database\n" +"and start with a new one?" +msgstr "" +"ali želite zapreti program darktable, da ročno obnovite\n" +"zbirko podatkov iz varnostne kopije, poskusite samodejno obnoviti\n" +"iz najnovejšega posnetka ali izbrišete poškodovano bazo podatkov\n" +"in začeti z novo?" + +#: ../src/common/database.c:3978 ../src/common/database.c:4161 +msgid "" +"do you want to close darktable now to manually restore\n" +"the database from a backup or delete the corrupted database\n" +"and start with a new one?" +msgstr "" +"ali želite zapreti program darktable, da ročno obnovite\n" +"zbirko podatkov iz varnostne kopije, ali zbrišete poškodovano bazo podatkov\n" +"in začeti z novo?" + +#: ../src/common/database.c:3985 ../src/common/database.c:4166 +#, c-format +msgid "" +"an error has occurred while trying to open the database from\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"it seems that the database is corrupted.\n" +"%s%s" +msgstr "" +"prišlo je do napake pri poskusu odpiranja podatkovne baze\n" +"\n" +"<span style=\"italic\">%s</span>\n" +"\n" +"vse kaže, da je podatkovna baza pokvarjena.\n" +"%s%s" + +#: ../src/common/eigf.h:288 +msgid "" +"fast exposure independent guided filter failed to allocate memory, check " +"your RAM settings" +msgstr "" +"neodvisni vodeni filter za hitro izpostavljenost ni uspel dodeliti " +"pomnilnika, preverite vaše nastavitve RAM -a" + +#: ../src/common/exif.cc:5482 +#, c-format +msgid "cannot read XMP file '%s': '%s'" +msgstr "ni mogoče prebrati datoteke XMP '%s': '%s'" + +#: ../src/common/exif.cc:5540 +#, c-format +msgid "cannot write XMP file '%s': '%s'" +msgstr "ni mogoče zapisati datoteke XMP '%s': '%s'" + +#: ../src/common/fast_guided_filter.h:316 +msgid "fast guided filter failed to allocate memory, check your RAM settings" +msgstr "" +"hitri filter ni mogel pridobiti dovolj pomnilnika, preverite nastavitve za " +"RAM" + +#: ../src/common/film.c:356 +msgid "do you want to remove this empty directory?" +msgid_plural "do you want to remove these empty directories?" +msgstr[0] "ali želite odstraniti to prazno mapo?" +msgstr[1] "ali želite odstraniti ti prazni mapi?" +msgstr[2] "ali želite odstraniti te prazne mape?" +msgstr[3] "ali želite odstraniti te prazne mape?" + +#: ../src/common/film.c:363 +msgid "remove empty directory?" +msgid_plural "remove empty directories?" +msgstr[0] "naj odstranim prazno mapo?" +msgstr[1] "naj odstranim prazni mapi?" +msgstr[2] "naj odstranim prazne mape?" +msgstr[3] "naj odstranim prazne mape?" + +#: ../src/common/film.c:383 ../src/gui/preferences.c:814 +#: ../src/gui/styles_dialog.c:556 ../src/libs/geotagging.c:830 +#: ../src/libs/import.c:1560 +msgid "name" +msgstr "ime" + +#: ../src/common/film.c:492 +msgid "" +"cannot remove film roll having local copies with non accessible originals" +msgstr "" +"ne morem odstraniti filma, če imam lokalne kopije in nedostopne izvirnike" + +#: ../src/common/history.c:876 +msgid "you need to copy history from an image before you paste it onto another" +msgstr "" +"najprej morate prekopirati zgodovino slike in šele potem jo lahko nalepite " +"na drugo" + +#: ../src/common/image.c:333 +msgid "orphaned image" +msgstr "osirotela slika" + +#: ../src/common/image.c:629 +#, c-format +msgid "geo-location undone for %d image" +msgid_plural "geo-location undone for %d images" +msgstr[0] "geolokacija razveljavljena za %d sliko" +msgstr[1] "geolokacija razveljavljena za %d sliki" +msgstr[2] "geolokacija razveljavljena za %d slike" +msgstr[3] "geolokacija razveljavljena za %d slik" + +#: ../src/common/image.c:631 +#, c-format +msgid "geo-location re-applied to %d image" +msgid_plural "geo-location re-applied to %d images" +msgstr[0] "geolokacija je bila ponovno uporabljena na %d sliki" +msgstr[1] "geolokacija je bila ponovno uporabljena na %d slikah" +msgstr[2] "geolokacija je bila ponovno uporabljena na %d slikah" +msgstr[3] "geolokacija je bila ponovno uporabljena na %d slikah" + +#: ../src/common/image.c:654 +#, c-format +msgid "date/time undone for %d image" +msgid_plural "date/time undone for %d images" +msgstr[0] "datum/čas razveljavljen za %d sliko" +msgstr[1] "datum/čas razveljavljen za %d sliki" +msgstr[2] "datum/čas razveljavljen za %d slike" +msgstr[3] "datum/čas razveljavljen za %d slik" + +#: ../src/common/image.c:656 +#, c-format +msgid "date/time re-applied to %d image" +msgid_plural "date/time re-applied to %d images" +msgstr[0] "datum/čas ponovno uporabljen za %d sliko" +msgstr[1] "datum/čas ponovno uporabljen za %d sliki" +msgstr[2] "datum/čas ponovno uporabljen za %d slike" +msgstr[3] "datum/čas ponovno uporabljen za %d slik" + +#: ../src/common/image.c:2260 +#, c-format +msgid "cannot access local copy `%s'" +msgstr "ne morem doseči lokalne kopije `%s'" + +#: ../src/common/image.c:2267 +#, c-format +msgid "cannot write local copy `%s'" +msgstr "ne morem pisati lokalne kopije `%s'" + +#: ../src/common/image.c:2274 +#, c-format +msgid "error moving local copy `%s' -> `%s'" +msgstr "napaka pri premikanju lokalne kopije `%s' -> `%s'" + +#: ../src/common/image.c:2291 +#, c-format +msgid "error moving `%s': file not found" +msgstr "napaka pri premikanju `%s': datoteke ne najdem" + +#: ../src/common/image.c:2301 +#, c-format +msgid "error moving `%s' -> `%s': file exists" +msgstr "napaka pri premikanju `%s' -> `%s': datoteka že obstaja" + +#: ../src/common/image.c:2305 +#, c-format +msgid "error moving `%s' -> `%s'" +msgstr "napaka pri premikanju `%s' -> `%s'" + +#: ../src/common/image.c:2634 +msgid "cannot create local copy when the original file is not accessible." +msgstr "ne morem ustvariti lokalne kopije, če izvorna datoteka ni dostopna." + +#: ../src/common/image.c:2648 +msgid "cannot create local copy." +msgstr "ne morem ustvariti lokalne kopije." + +#: ../src/common/image.c:2728 ../src/control/jobs/control_jobs.c:777 +msgid "cannot remove local copy when the original file is not accessible." +msgstr "ne morem odstraniti lokalne kopije, če izvirnik ni dostopen." + +#: ../src/common/image.c:2901 +#, c-format +msgid "%d local copy has been synchronized" +msgid_plural "%d local copies have been synchronized" +msgstr[0] "%d lokalna kopija je sinhronizirana" +msgstr[1] "%d lokalni kopiji sta sinhronizirani" +msgstr[2] "%d lokalne kopije so sinhronizirane" +msgstr[3] "%d lokalne kopije so sinhronizirane" + +#: ../src/common/image.c:3102 +msgid "<b>WARNING</b>: camera is missing samples!" +msgstr "<b>OPOZORILO</b> : za kamero manjkajo vzorci!" + +#: ../src/common/image.c:3103 +msgid "" +"You must provide samples in <a href='https://raw.pixls.us/'>https://raw." +"pixls.us/</a>" +msgstr "" +"Dobavite vzorce v <a href='https://raw.pixls.us/'>https://raw.pixls.us/</a>" + +#: ../src/common/image.c:3104 +#, c-format +msgid "" +"for `%s' `%s'\n" +"in as many format/compression/bit depths as possible" +msgstr "" +"za `%s' `%s'\n" +"v vseh formatih/kompresijah/bitnih globinah, kar je le mogoče" + +#: ../src/common/image.c:3107 +msgid "or the <b>RAW won't be readable</b> in next version." +msgstr "ali <b>surovi format ne bo berljiv</b> v naslednji različici." + +#: ../src/common/image.h:217 ../src/common/ratings.c:283 +#: ../src/imageio/format/avif.c:114 ../src/libs/history.c:843 +#: ../src/libs/snapshots.c:837 +msgid "unknown" +msgstr "neznano" + +#. EMPTY_FIELD +#: ../src/common/image.h:218 ../src/imageio/format/tiff.c:831 +msgid "TIFF" +msgstr "TIFF" + +#: ../src/common/image.h:219 ../src/imageio/format/png.c:599 +msgid "PNG" +msgstr "PNG" + +#: ../src/common/image.h:220 +#| msgid "JPEG 2000 (12-bit)" +msgid "JPEG 2000" +msgstr "JPEG 2000" + +#: ../src/common/image.h:221 +#| msgid "JPEG XL" +msgid "JPEG" +msgstr "JPEG" + +#: ../src/common/image.h:222 +#| msgid "OpenEXR" +msgid "EXR" +msgstr "EXR" + +#: ../src/common/image.h:223 +msgid "RGBE" +msgstr "RGBE" + +#: ../src/common/image.h:224 ../src/imageio/format/pfm.c:120 +msgid "PFM" +msgstr "PFM" + +#: ../src/common/image.h:225 +msgid "GraphicsMagick" +msgstr "GraphicsMagick" + +#: ../src/common/image.h:226 +#| msgid "rawspeed" +msgid "RawSpeed" +msgstr "RawSpeed" + +#: ../src/common/image.h:227 +msgid "Netpbm" +msgstr "Netpbm" + +#: ../src/common/image.h:228 ../src/imageio/format/avif.c:728 +msgid "AVIF" +msgstr "AVIF" + +#: ../src/common/image.h:229 +msgid "ImageMagick" +msgstr "ImageMagick" + +#: ../src/common/image.h:230 +msgid "HEIF" +msgstr "HEIF" + +#: ../src/common/image.h:231 +msgid "LibRaw" +msgstr "LibRaw" + +#: ../src/common/image.h:232 ../src/imageio/format/webp.c:380 +msgid "WebP" +msgstr "WebP" + +#: ../src/common/image.h:233 ../src/imageio/format/jxl.c:482 +msgid "JPEG XL" +msgstr "JPEG XL" + +#: ../src/common/image.h:234 +msgid "QOI" +msgstr "QOI" + +#: ../src/common/imagebuf.c:132 +msgid "insufficient memory" +msgstr "premalo pomnilnika" + +#: ../src/common/imagebuf.c:133 +msgid "" +"this module was unable to allocate\n" +"all of the memory required to process\n" +"the image. some or all processing\n" +"has been skipped." +msgstr "" +"ta modul ni mogel dodeliti vsega\n" +"pomnilnika, potrebnega za\n" +"obdelavo slike. nekaj ali vsa\n" +"obdelava je bila preskočena." + +#: ../src/common/import_session.c:308 +msgid "" +"couldn't expand to a unique filename for session, please check your import " +"session settings." +msgstr "" +"ne morem razširiti v enolično ime datoteke te seje, prosim, preverite " +"nastavitve uvoza." + +#: ../src/common/import_session.c:401 +msgid "requested session path not available. device not mounted?" +msgstr "zahtevana pot seje ni na voljo. naprava ni priklopljena?" + +#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:195 +msgid "legacy" +msgstr "zapuščina" + +#: ../src/common/iop_order.c:61 +msgid "v3.0 RAW" +msgstr "v3.0 surovo" + +#: ../src/common/iop_order.c:62 +msgid "v3.0 JPEG" +msgstr "v3.0 JPEG" + +#: ../src/common/iop_profile.c:1207 +#, c-format +msgid "" +"darktable loads %s from\n" +"<b>%s</b>\n" +"or, if this directory does not exist, from\n" +"<b>%s</b>" +msgstr "" +"darktable nalaga %s iz\n" +"<b>%s</b>\n" +"ali, če ta imenik ne obstaja, iz\n" +"<b>%s</b>" + +#. clang-format off +#: ../src/common/metadata.c:46 +msgid "creator" +msgstr "ustvarjalec" + +#: ../src/common/metadata.c:47 +msgid "publisher" +msgstr "izdajatelj" + +#. title +#: ../src/common/metadata.c:48 ../src/imageio/format/pdf.c:574 +#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:219 +#: ../src/imageio/storage/gallery.c:222 ../src/imageio/storage/latex.c:206 +#: ../src/imageio/storage/piwigo.c:1091 ../src/libs/filtering.c:69 +msgid "title" +msgstr "naslov" + +#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:563 +#: ../src/libs/filtering.c:70 +msgid "description" +msgstr "opis" + +#: ../src/common/metadata.c:50 +msgid "rights" +msgstr "pravice" + +#: ../src/common/metadata.c:51 +msgid "notes" +msgstr "zabeležke" + +#: ../src/common/metadata.c:52 +msgid "version name" +msgstr "ime verzije" + +#: ../src/common/metadata.c:53 ../src/libs/live_view.c:319 +#: ../src/libs/metadata_view.c:126 +msgid "image id" +msgstr "id slike" + +#: ../src/common/mipmap_cache.c:1070 ../src/imageio/imageio.c:799 +#, c-format +msgid "image `%s' is not available!" +msgstr "slike '%s' ni na voljo!" + +#: ../src/common/noiseprofiles.c:26 +msgid "generic poissonian" +msgstr "splošna Poissonova" + +#: ../src/common/noiseprofiles.c:61 +#, c-format +msgid "noiseprofile file `%s' is not valid" +msgstr "profil šuma `%s' ni veljaven" + +#: ../src/common/opencl.c:1165 +msgid "no working OpenCL library found" +msgstr "ni najdene delujoče knjižnice OpenCL" + +#: ../src/common/opencl.c:1185 +msgid "" +"platform detection failed. some possible causes:\n" +" - OpenCL ICD (ocl-icd) missing,\n" +" - previous OpenCL errors leading to blocked devices,\n" +" - power management problems,\n" +" - buggy drivers,\n" +" - no OpenCL driver installed." +msgstr "" +"zaznavanje platforme ni uspelo. nekaj možnih vzrokov:\n" +" - OpenCL ICD (ocl-icd) manjka,\n" +" - prejšnje napake OpenCL, ki vodijo do blokiranih naprav,\n" +" - težave z upravljanjem napajanja,\n" +" - gonilniki z napakami,\n" +" - gonilnik OpenCL ni nameščen." + +#: ../src/common/opencl.c:1277 +msgid "no devices found for unknown platform" +msgstr "ni najdenih naprav za neznano platformo" + +#: ../src/common/opencl.c:1323 +msgid "not enough memory for OpenCL devices" +msgstr "premalo pomnilnika za naprave OpenCL" + +#: ../src/common/opencl.c:1358 +#| msgid "no supported devices found" +msgid "no OpenCL devices found" +msgstr "ni najdena nobena naprava OpenCL" + +#: ../src/common/opencl.c:1401 +#| msgid "no supported devices found" +msgid "no suitable OpenCL devices found" +msgstr "ni najdenih ustreznih naprav OpenCL" + +#: ../src/common/opencl.c:1422 +#, c-format +msgid "" +"OpenCL initializing problem:\n" +"%s" +msgstr "" +"problem postavljanje začetnih vrednosti OpenCL:\n" +"%s" + +#: ../src/common/opencl.c:1454 +#| msgid "OpenCL scheduling profile set to default" +msgid "OpenCL scheduling profile set to default, setup has changed" +msgstr "" +"Profil razporejanja OpenCL je nastavljen na privzeto, nastavitev je" +" spremenjena" + +#: ../src/common/opencl.c:2283 +#, c-format +msgid "building OpenCL program %s for %s" +msgstr "izdelava programa OpenCL %s za %s" + +#: ../src/common/pdf.h:88 ../src/iop/lens.cc:4071 +#: ../src/libs/filters/focal.c:74 ../src/libs/print_settings.c:81 +msgid "mm" +msgstr "mm" + +#: ../src/common/pdf.h:89 ../src/libs/export.c:555 ../src/libs/export.c:1241 +#: ../src/libs/print_settings.c:81 +msgid "cm" +msgstr "cm" + +#: ../src/common/pdf.h:90 ../src/libs/print_settings.c:81 +msgid "inch" +msgstr "palec" + +#: ../src/common/pdf.h:91 +msgid "\"" +msgstr "\"" + +#: ../src/common/pdf.h:104 ../src/iop/borders.c:971 +msgid "A4" +msgstr "A4" + +#: ../src/common/pdf.h:105 +msgid "A3" +msgstr "A3" + +#: ../src/common/pdf.h:106 +msgid "Letter" +msgstr "ameriško pismo (letter)" + +#: ../src/common/pdf.h:107 +msgid "Legal" +msgstr "ameriški pravni format (legal)" + +#: ../src/common/pwstorage/pwstorage.c:85 +msgid "GNOME Keyring backend is no longer supported. configure a different one" +msgstr "GNOME Keyring ni več podprt, izberite kaj drugega" + +#: ../src/common/ratings.c:172 +#, c-format +msgid "rejecting %d image" +msgid_plural "rejecting %d images" +msgstr[0] "zavračam sliko %d" +msgstr[1] "zavračam sliki %d" +msgstr[2] "zavračam slike %d" +msgstr[3] "zavračam slike %d" + +#: ../src/common/ratings.c:174 +#, c-format +msgid "applying rating %d to %d image" +msgid_plural "applying rating %d to %d images" +msgstr[0] "dodajam oceno %d na %d sliko" +msgstr[1] "dodajam oceno %d na %d sliki" +msgstr[2] "dodajam oceno %d na %d slike" +msgstr[3] "dodajam oceno %d na %d slik" + +#: ../src/common/ratings.c:221 +msgid "no images selected to apply rating" +msgstr "ni izbrane slike, ki bi ji dodal oceno" + +#: ../src/common/ratings.c:274 ../src/libs/metadata_view.c:355 +msgid "image rejected" +msgstr "slika zavrnjena" + +#: ../src/common/ratings.c:276 +msgid "image rated to 0 star" +msgstr "slika ocenjena z 0 zvezdic" + +#: ../src/common/ratings.c:278 +#, c-format +msgid "image rated to %s" +msgstr "slike ocenjene na %s" + +#: ../src/common/ratings.c:305 ../src/views/lighttable.c:766 +msgid "select" +msgstr "izberi" + +#: ../src/common/ratings.c:306 +msgid "upgrade" +msgstr "nadgradi" + +#: ../src/common/ratings.c:307 +msgid "downgrade" +msgstr "odpravi nadgradnjo na prejšnjo" + +#: ../src/common/ratings.c:311 +msgid "zero" +msgstr "nič" + +#: ../src/common/ratings.c:312 ../src/libs/filters/rating_range.c:304 +msgid "one" +msgstr "en" + +#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:305 +msgid "two" +msgstr "dva" + +#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:306 +msgid "three" +msgstr "tri" + +#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:307 +msgid "four" +msgstr "štiri" + +#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:308 +msgid "five" +msgstr "pet" + +#: ../src/common/ratings.c:317 +msgid "reject" +msgstr "zavrni" + +#: ../src/common/styles.c:243 +#, c-format +msgid "style with name '%s' already exists" +msgstr "slog z imenom '%s' že obstaja" + +#: ../src/common/styles.c:270 ../src/common/styles.c:1783 +#: ../src/libs/styles.c:54 +msgid "styles" +msgstr "slogi" + +#: ../src/common/styles.c:548 ../src/gui/styles_dialog.c:239 +#, c-format +msgid "style named '%s' successfully created" +msgstr "uspešno ustvarjen slog z imenom '%s'" + +#: ../src/common/styles.c:688 ../src/common/styles.c:718 +#: ../src/common/styles.c:758 ../src/dtgtk/culling.c:1066 +msgid "no image selected!" +msgstr "ni izbrane slike!" + +#: ../src/common/styles.c:692 +#, c-format +msgid "style %s successfully applied!" +msgstr "slog %s uspešno uporabljen!" + +#: ../src/common/styles.c:708 +msgid "no images nor styles selected!" +msgstr "ni izbrane slike niti sloga!" + +#: ../src/common/styles.c:713 +msgid "no styles selected!" +msgstr "ni izbranega sloga!" + +#: ../src/common/styles.c:743 +msgid "style successfully applied!" +msgid_plural "styles successfully applied!" +msgstr[0] "slog %s uspešno uporabljen!" +msgstr[1] "sloga %s uspešno uporabljena!" +msgstr[2] "slogi %s uspešno uporabljeni!" +msgstr[3] "slogi %s uspešno uporabljeni!" + +#: ../src/common/styles.c:838 +#, c-format +msgid "module `%s' version mismatch: %d != %d" +msgstr "neujemanje verzij modulov `%s' : %d != %d" + +#: ../src/common/styles.c:1125 +#, c-format +msgid "applied style `%s' on current image" +msgstr "uporabljen slog '%s' na trenutni sliki" + +#: ../src/common/styles.c:1383 +#, c-format +msgid "failed to overwrite style file for %s" +msgstr "nisem mogel prepisati sloga za %s" + +#: ../src/common/styles.c:1389 +#, c-format +msgid "style file for %s exists" +msgstr "datoteka s slogom %s že obstaja" + +#: ../src/common/styles.c:1674 +#, c-format +msgid "style %s was successfully imported" +msgstr "slog %s je bil uspešno uvožen" + +#. Failed to open file, clean up. +#: ../src/common/styles.c:1718 +#, c-format +msgid "could not read file `%s'" +msgstr "ni bilo mogoče prebrati datoteke `%s'" + +#: ../src/common/utility.c:505 +msgid "above sea level" +msgstr "nad morjem" + +#: ../src/common/utility.c:506 +msgid "below sea level" +msgstr "pod morjem" + +#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:907 +msgid "m" +msgstr "m" + +#: ../src/common/variables.c:712 ../src/develop/imageop_gui.c:210 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "yes" +msgstr "da" + +#. Column 1 - "make" of the camera. +#. * Column 2 - "model" (use the "make" and "model" as provided by DCRaw). +#. * Column 3 - WB name. +#. * Column 4 - Fine tuning. MUST be in increasing order. 0 for no fine tuning. +#. * It is enough to give only the extreme values, the other values +#. * will be interpolated. +#. * Column 5 - Channel multipliers. +#. * +#. * Minolta's ALPHA and MAXXUM models are treated as the Dynax model. +#. * +#. * WB name is standardized to one of the following: +#. "Sunlight" and other variation should be switched to this: +#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:320 +msgid "daylight" +msgstr "dnevna svetloba" + +#. Probably same as above: +#: ../src/common/wb_presets.c:44 +msgid "direct sunlight" +msgstr "neposredna sončna svetloba" + +#: ../src/common/wb_presets.c:45 +msgid "cloudy" +msgstr "oblačno" + +#. "Shadows" should be switched to this: +#: ../src/common/wb_presets.c:47 +msgid "shade" +msgstr "senca" + +#: ../src/common/wb_presets.c:48 +msgid "incandescent" +msgstr "svetloba žarnice" + +#: ../src/common/wb_presets.c:49 +msgid "incandescent warm" +msgstr "topla svetloba žarnice" + +#. Same as "Incandescent": +#: ../src/common/wb_presets.c:51 +msgid "tungsten" +msgstr "volframova" + +#: ../src/common/wb_presets.c:52 +msgid "fluorescent" +msgstr "fluorescentna" + +#. In Canon cameras and some newer Nikon cameras: +#: ../src/common/wb_presets.c:54 +msgid "fluorescent high" +msgstr "visokofrekvenčna fluorescentna" + +#: ../src/common/wb_presets.c:55 +msgid "cool white fluorescent" +msgstr "hladna bela fluorescentna" + +#: ../src/common/wb_presets.c:56 +msgid "warm white fluorescent" +msgstr "topla bela fluorescentna" + +#: ../src/common/wb_presets.c:57 +msgid "daylight fluorescent" +msgstr "dnevna fluorescentna" + +#: ../src/common/wb_presets.c:58 +msgid "neutral fluorescent" +msgstr "nevtralna fluorescentna" + +#: ../src/common/wb_presets.c:59 +msgid "white fluorescent" +msgstr "bela fluorescentna" + +#. In some newer Nikon cameras: +#: ../src/common/wb_presets.c:61 +msgid "sodium-vapor fluorescent" +msgstr "natrijeva" + +#: ../src/common/wb_presets.c:62 +msgid "day white fluorescent" +msgstr "dnevno bela fluorescentna" + +#: ../src/common/wb_presets.c:63 +msgid "high temp. mercury-vapor fluorescent" +msgstr "visoko temperaturna živosrebrna" + +#. found in Nikon Coolpix P1000 +#: ../src/common/wb_presets.c:65 +msgid "high temp. mercury-vapor" +msgstr "visoko temperaturna živosrebrna" + +#. On Some Panasonic +#: ../src/common/wb_presets.c:67 +msgid "D55" +msgstr "D55" + +#: ../src/common/wb_presets.c:69 +msgid "flash" +msgstr "bliskavica" + +#. For Olympus with no real "Flash" preset: +#: ../src/common/wb_presets.c:71 +msgid "flash (auto mode)" +msgstr "bliskavica (avtomatski režim)" + +#: ../src/common/wb_presets.c:72 +msgid "evening sun" +msgstr "večerno sonce" + +#: ../src/common/wb_presets.c:73 +msgid "underwater" +msgstr "pod vodo" + +#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2286 +msgid "black & white" +msgstr "črno-belo" + +#: ../src/common/wb_presets.c:76 +msgid "spot WB" +msgstr "točkovna ČB" + +#: ../src/common/wb_presets.c:77 +msgid "manual WB" +msgstr "ročna ČB" + +#: ../src/common/wb_presets.c:78 +msgid "camera WB" +msgstr "kamera ČB" + +#: ../src/common/wb_presets.c:79 +msgid "auto WB" +msgstr "avto ČB" + +#: ../src/control/control.c:69 ../src/gui/accelerators.c:156 +#: ../src/views/darkroom.c:2029 +msgid "hold" +msgstr "drži" + +#: ../src/control/control.c:108 ../src/control/control.c:214 +msgid "modifiers" +msgstr "spremenjene možnosti" + +#: ../src/control/control.c:117 +msgctxt "accel" +msgid "global" +msgstr "globalni" + +#: ../src/control/control.c:124 +msgctxt "accel" +msgid "views" +msgstr "pogledi" + +#: ../src/control/control.c:131 +msgctxt "accel" +msgid "thumbtable" +msgstr "tabela predoglednih sličic" + +#: ../src/control/control.c:138 +msgctxt "accel" +msgid "utility modules" +msgstr "uporabni moduli" + +#: ../src/control/control.c:145 +msgctxt "accel" +msgid "format" +msgstr "format" + +#: ../src/control/control.c:152 +msgctxt "accel" +msgid "storage" +msgstr "shramba" + +#: ../src/control/control.c:159 +msgctxt "accel" +msgid "processing modules" +msgstr "moduli obdelav" + +#: ../src/control/control.c:166 +msgctxt "accel" +msgid "<blending>" +msgstr "<mešanje>" + +#: ../src/control/control.c:173 +msgctxt "accel" +msgid "Lua scripts" +msgstr "skripti Lua" + +#: ../src/control/control.c:180 +msgctxt "accel" +msgid "fallbacks" +msgstr "rešitve v sili" + +#: ../src/control/control.c:189 +msgctxt "accel" +msgid "<focused>" +msgstr "<naostreno>" + +#: ../src/control/control.c:209 +msgid "show accels window" +msgstr "prikaži okno pospeševanja" + +#: ../src/control/control.c:371 +msgid "working..." +msgstr "delam..." + +#: ../src/control/crawler.c:418 +#, c-format +msgid "ERROR: %s NOT synced XMP → DB" +msgstr "NAPAKA: %s NI sinhronizirana XMP → DB" + +#: ../src/control/crawler.c:419 ../src/control/crawler.c:485 +#: ../src/control/crawler.c:554 +msgid "" +"ERROR: cannot write the database. the destination may be full, offline or " +"read-only." +msgstr "" +"NAPAKA: ni mogoče pisati v podatkovno bazo. cilj je morda poln, nepovezan " +"ali dovoljen samo za branje." + +#: ../src/control/crawler.c:426 +#, c-format +msgid "SUCCESS: %s synced XMP → DB" +msgstr "USPEH: %s sinhronizirani XMP → DB" + +#: ../src/control/crawler.c:448 +#, c-format +msgid "ERROR: %s NOT synced DB → XMP" +msgstr "NAPAKA: %s NE sinhronizirani DB → XMP" + +#: ../src/control/crawler.c:450 ../src/control/crawler.c:509 +#: ../src/control/crawler.c:575 +#, c-format +msgid "" +"ERROR: cannot write %s \n" +"the destination may be full, offline or read-only." +msgstr "" +"NAPAKA: ni mogoče pisati %s\n" +"cilj je morda poln, nepovezan ali dovoljen samo za branje." + +#: ../src/control/crawler.c:456 +#, c-format +msgid "SUCCESS: %s synced DB → XMP" +msgstr "USPEH: %s sinhronizirani DB → XMP" + +#: ../src/control/crawler.c:482 +#, c-format +msgid "ERROR: %s NOT synced new (XMP) → old (DB)" +msgstr "NAPAKA: %s NI sinhronizirani novi (XMP) → stari (DB)" + +#: ../src/control/crawler.c:492 +#, c-format +msgid "SUCCESS: %s synced new (XMP) → old (DB)" +msgstr "USPEH: %s sinhronizirani nova (XMP) → stara (DB)" + +#: ../src/control/crawler.c:506 +#, c-format +msgid "ERROR: %s NOT synced new (DB) → old (XMP)" +msgstr "USPEH: %s NE sinhronizirani nova (XMP) → stara (DB)" + +#: ../src/control/crawler.c:514 +#, c-format +msgid "SUCCESS: %s synced new (DB) → old (XMP)" +msgstr "USPEH: %s sinhronizirani nova (DB) → stara (XMP)" + +#: ../src/control/crawler.c:523 ../src/control/crawler.c:591 +#, c-format +msgid "EXCEPTION: %s has inconsistent timestamps" +msgstr "IZJEMA: %s ima nekonsistentne časovne zabeležke" + +#: ../src/control/crawler.c:551 +#, c-format +msgid "ERROR: %s NOT synced old (XMP) → new (DB)" +msgstr "NAPAKA: %s NE sinhronizirani stara (XMP) → nova (DB)" + +#: ../src/control/crawler.c:560 +#, c-format +msgid "SUCCESS: %s synced old (XMP) → new (DB)" +msgstr "USPEH: %s sinhronizirani stara (XMP) → nova (DB)" + +#: ../src/control/crawler.c:572 +#, c-format +msgid "ERROR: %s NOT synced old (DB) → new (XMP)" +msgstr "NAPAKA: %s NE sinhronizirani stara (DB) → nova (XMP)" + +#: ../src/control/crawler.c:581 +#, c-format +msgid "SUCCESS: %s synced old (DB) → new (XMP)" +msgstr "USPEH: %s sinhronizirani stara (DB) → nova (XMP)" + +#: ../src/control/crawler.c:663 +#, c-format +msgid "%id %02dh %02dm %02ds" +msgstr "%id %02dh %02dm %02ds" + +#: ../src/control/crawler.c:716 +msgid "XMP" +msgstr "XMP" + +#: ../src/control/crawler.c:733 ../src/imageio/storage/disk.c:250 +#: ../src/imageio/storage/gallery.c:202 ../src/imageio/storage/latex.c:190 +#: ../src/imageio/storage/latex.c:208 +msgid "path" +msgstr "pot" + +#: ../src/control/crawler.c:742 +msgid "XMP timestamp" +msgstr "časovna oznaka XMP" + +#: ../src/control/crawler.c:747 +msgid "database timestamp" +msgstr "časovna oznaka v bazi" + +#: ../src/control/crawler.c:752 +msgid "newest" +msgstr "najnovejša" + +#: ../src/control/crawler.c:758 +msgid "time difference" +msgstr "časovna razlika" + +#: ../src/control/crawler.c:770 +msgid "updated XMP sidecar files found" +msgstr "najdena osvežena priklopna datoteka XMP" + +#: ../src/control/crawler.c:771 +msgid "_close" +msgstr "_zapri" + +#. setup selection accelerators +#. action-box +#: ../src/control/crawler.c:786 ../src/dtgtk/thumbtable.c:2755 +#: ../src/libs/import.c:1732 ../src/libs/select.c:136 +msgid "select all" +msgstr "izberi vse" + +#: ../src/control/crawler.c:787 ../src/dtgtk/thumbtable.c:2757 +#: ../src/libs/import.c:1736 ../src/libs/select.c:140 +msgid "select none" +msgstr "ne izberi nič" + +#: ../src/control/crawler.c:788 ../src/dtgtk/thumbtable.c:2759 +#: ../src/libs/select.c:144 +msgid "invert selection" +msgstr "inverzna izbira" + +#: ../src/control/crawler.c:800 +msgid "on the selection:" +msgstr "na izbiri:" + +#: ../src/control/crawler.c:801 +msgid "keep the XMP edit" +msgstr "ohrani urejen XMP" + +#: ../src/control/crawler.c:802 +msgid "keep the database edit" +msgstr "ohranjaj spremembe podatkovne baze" + +#: ../src/control/crawler.c:803 +msgid "keep the newest edit" +msgstr "ohranjaj najnovejše spremembe" + +#: ../src/control/crawler.c:804 +msgid "keep the oldest edit" +msgstr "ohranjaj najstarejše spremembe" + +#: ../src/control/crawler.c:829 +msgid "synchronization log" +msgstr "dnevnik sinhronizacije" + +#: ../src/control/jobs/camera_jobs.c:80 +#, c-format +msgid "capturing %d image" +msgid_plural "capturing %d images" +msgstr[0] "zajemam %d slika" +msgstr[1] "zajemam %d sliki" +msgstr[2] "zajemam %d slike" +msgstr[3] "zajemam %d slik" + +#: ../src/control/jobs/camera_jobs.c:114 +msgid "please set your camera to manual mode first!" +msgstr "prosim, najprej nastavite vašo kamero v ročni režim!" + +#: ../src/control/jobs/camera_jobs.c:211 +msgid "capture images" +msgstr "zajem slik" + +#: ../src/control/jobs/camera_jobs.c:245 +#, c-format +msgid "%d/%d imported to %s" +msgid_plural "%d/%d imported to %s" +msgstr[0] "%d/%d uvožen do %s" +msgstr[1] "%d/%d uvoženi do %s" +msgstr[2] "%d/%d uvožene do %s" +msgstr[3] "%d/%d uvožene do %s" + +#: ../src/control/jobs/camera_jobs.c:298 +msgid "starting to import images from camera" +msgstr "začenjam uvažati slike iz kamere" + +#: ../src/control/jobs/camera_jobs.c:302 +#| msgid "starting to import images from camera" +msgid "failed to import images from camera." +msgstr "uvoz slik iz fotoaparata ni uspel." + +#: ../src/control/jobs/camera_jobs.c:309 +#, c-format +msgid "importing %d image from camera" +msgid_plural "importing %d images from camera" +msgstr[0] "uvažam %d sliko iz kamere" +msgstr[1] "uvažam %d sliki iz kamere" +msgstr[2] "uvažam %d slik iz kamere" +msgstr[3] "uvažam %d slik iz kamere" + +#: ../src/control/jobs/camera_jobs.c:369 +msgid "import images from camera" +msgstr "uvozi slike iz kamere" + +#: ../src/control/jobs/control_jobs.c:145 +msgid "failed to create film roll for destination directory, aborting move.." +msgstr "ni uspela tvorba filma v ciljni mapi, prekinjam prenos.." + +#: ../src/control/jobs/control_jobs.c:388 +msgid "exposure bracketing only works on raw images." +msgstr "kadriranje osvetlitve deluje samo na surovih slikah." + +#: ../src/control/jobs/control_jobs.c:395 +msgid "images have to be of same size and orientation!" +msgstr "slike morajo biti enake velikosti in orientacije!" + +#: ../src/control/jobs/control_jobs.c:490 +#, c-format +msgid "merging %d image" +msgid_plural "merging %d images" +msgstr[0] "sestavljam %d sliko" +msgstr[1] "sestavljam %d sliki" +msgstr[2] "sestavljam %d slike" +msgstr[3] "sestavljam %d slik" + +#: ../src/control/jobs/control_jobs.c:561 +#, c-format +msgid "wrote merged HDR `%s'" +msgstr "napisana zložena HDR slika `%s'" + +#: ../src/control/jobs/control_jobs.c:593 +#, c-format +msgid "duplicating %d image" +msgid_plural "duplicating %d images" +msgstr[0] "podvajam %d sliko" +msgstr[1] "podvajam %d sliki" +msgstr[2] "podvajam %d slike" +msgstr[3] "podvajam %d slik" + +#: ../src/control/jobs/control_jobs.c:634 +#, c-format +msgid "flipping %d image" +msgid_plural "flipping %d images" +msgstr[0] "prezrcalim %d sliko" +msgstr[1] "prezrcalim %d sliki" +msgstr[2] "prezrcalim %d slike" +msgstr[3] "prezrcalim %d slik" + +#: ../src/control/jobs/control_jobs.c:665 +#, c-format +msgid "set %d color image" +msgid_plural "setting %d color images" +msgstr[0] "nastavljam %d barvno sliko" +msgstr[1] "nastavljam %d barvni sliki" +msgstr[2] "nastavljam %d barvnih slik" +msgstr[3] "nastavljam %d barvnih slik" + +#: ../src/control/jobs/control_jobs.c:667 +#, c-format +msgid "set %d monochrome image" +msgid_plural "setting %d monochrome images" +msgstr[0] "nastavljam %d enobarvno sliko" +msgstr[1] "nastavljanje %d enobarvnih slik" +msgstr[2] "nastavljanje %d enobarvnih slik" +msgstr[3] "nastavljanje %d enobarvnih slik" + +#: ../src/control/jobs/control_jobs.c:753 +#, c-format +msgid "removing %d image" +msgid_plural "removing %d images" +msgstr[0] "odstranjujem %d sliko" +msgstr[1] "odstranjujem %d sliki" +msgstr[2] "odstranjujem %d slike" +msgstr[3] "odstranjujem %d slik" + +#: ../src/control/jobs/control_jobs.c:860 +#, c-format +msgid "" +"could not send %s to trash%s\n" +"%s\n" +"\n" +" do you want to delete the file from disk without using trash?" +msgstr "" +"ni bilo mogoče poslati %s v smeti%s\n" +"%s\n" +"\n" +" ali želite zbrisati datoteko z diska brez uporabe smetnjaka?" + +#: ../src/control/jobs/control_jobs.c:861 +#, c-format +msgid "" +"could not delete from disk %s%s\n" +"%s" +msgstr "" +"ni bilo mogoče zbrisati z diska %s%s\n" +"%s" + +#: ../src/control/jobs/control_jobs.c:869 +msgid "_apply to all" +msgstr "_uveljavi za vse" + +#: ../src/control/jobs/control_jobs.c:877 +msgid "_delete permanently" +msgstr "_zbriši permanentno" + +#: ../src/control/jobs/control_jobs.c:878 +#: ../src/control/jobs/control_jobs.c:882 +msgid "_remove from library" +msgstr "_izloči iz knjižnice" + +#: ../src/control/jobs/control_jobs.c:884 ../src/libs/styles.c:440 +#: ../src/libs/styles.c:625 +msgid "_skip" +msgstr "_preskoči" + +#: ../src/control/jobs/control_jobs.c:885 +msgid "abort" +msgstr "prekini" + +#: ../src/control/jobs/control_jobs.c:891 +msgid "trashing error" +msgstr "napaka pri prenosu v smeti" + +#: ../src/control/jobs/control_jobs.c:892 +msgid "deletion error" +msgstr "napaka pri brisanju" + +#: ../src/control/jobs/control_jobs.c:1039 +#, c-format +msgid "trashing %d image" +msgid_plural "trashing %d images" +msgstr[0] "mečem v smeti %d sliko" +msgstr[1] "mečem v smeti %d sliki" +msgstr[2] "mečem v smeti %d slike" +msgstr[3] "mečem v smeti %d slik" + +#: ../src/control/jobs/control_jobs.c:1041 +#, c-format +msgid "deleting %d image" +msgid_plural "deleting %d images" +msgstr[0] "brišem %d sliko" +msgstr[1] "brišem %d sliki" +msgstr[2] "brišem %d slike" +msgstr[3] "brišem %d slik" + +#: ../src/control/jobs/control_jobs.c:1177 +msgid "failed to parse GPX file" +msgstr "razpoznavanje datoteke GPX ni uspelo" + +#: ../src/control/jobs/control_jobs.c:1224 +#, c-format +msgid "applied matched GPX location onto %d image" +msgid_plural "applied matched GPX location onto %d images" +msgstr[0] "uveljavljam ustrezno lokacijo GPX na %d sliko" +msgstr[1] "uveljavljam ustrezno lokacijo GPX na %d sliki" +msgstr[2] "uveljavljam ustrezno lokacijo GPX na %d slike" +msgstr[3] "uveljavljam ustrezno lokacijo GPX na %d slik" + +#: ../src/control/jobs/control_jobs.c:1241 +#, c-format +msgid "moving %d image" +msgstr "prenašam sliko %d" + +#: ../src/control/jobs/control_jobs.c:1242 +#, c-format +msgid "moving %d images" +msgstr "prenašam slike %d" + +#: ../src/control/jobs/control_jobs.c:1247 +#, c-format +msgid "copying %d image" +msgstr "kopiram sliko %d" + +#: ../src/control/jobs/control_jobs.c:1248 +#, c-format +msgid "copying %d images" +msgstr "kopiram slike %d" + +#: ../src/control/jobs/control_jobs.c:1263 +#, c-format +msgid "creating local copy of %d image" +msgid_plural "creating local copies of %d images" +msgstr[0] "tvorim lokalno kopijo %d slike" +msgstr[1] "tvorim lokalno kopijo %d sliki" +msgstr[2] "tvorim lokalno kopijo %d slik" +msgstr[3] "tvorim lokalno kopijo %d slik" + +#: ../src/control/jobs/control_jobs.c:1266 +#, c-format +msgid "removing local copy of %d image" +msgid_plural "removing local copies of %d images" +msgstr[0] "odstranjujem lokalno kopijo %d slike" +msgstr[1] "odstranjujem lokalni kopiji %d slik" +msgstr[2] "odstranjujem lokalne kopije %d slik" +msgstr[3] "odstranjujem lokalne kopije %d slik" + +#: ../src/control/jobs/control_jobs.c:1313 +#, c-format +msgid "refreshing info for %d image" +msgid_plural "refreshing info for %d images" +msgstr[0] "osvežene info o sliki %d" +msgstr[1] "osvežene info o slikah %d" +msgstr[2] "osvežene info o slikah %d" +msgstr[3] "osvežene info o slikah %d" + +#: ../src/control/jobs/control_jobs.c:1398 +#, c-format +msgid "exporting %d image.." +msgid_plural "exporting %d images.." +msgstr[0] "izvažam %d sliko.." +msgstr[1] "izvažam %d sliki.." +msgstr[2] "izvažam %d slike.." +msgstr[3] "izvažam %d slik.." + +#: ../src/control/jobs/control_jobs.c:1400 +msgid "no image to export" +msgstr "ni slik za izvoz" + +#: ../src/control/jobs/control_jobs.c:1438 +#, c-format +msgid "exporting %d / %d to %s" +msgstr "izvažam %d / %d na %s" + +#: ../src/control/jobs/control_jobs.c:1451 ../src/views/darkroom.c:721 +#: ../src/views/print.c:369 +#, c-format +msgid "image `%s' is currently unavailable" +msgstr "slika '%s' je trenutno nedostopna" + +#: ../src/control/jobs/control_jobs.c:1554 +msgid "merge HDR image" +msgstr "sestavi HDR sliko" + +#: ../src/control/jobs/control_jobs.c:1568 +msgid "duplicate images" +msgstr "podvoji slike" + +#: ../src/control/jobs/control_jobs.c:1574 +msgid "flip images" +msgstr "prevrni sliko" + +#: ../src/control/jobs/control_jobs.c:1581 +msgid "set monochrome images" +msgstr "nastavi enobarvne slike" + +#. get all selected images now, to avoid the set changing during ui interaction +#: ../src/control/jobs/control_jobs.c:1588 +msgid "remove images" +msgstr "odstrani slike" + +#: ../src/control/jobs/control_jobs.c:1601 +msgid "remove image?" +msgstr "naj odstranim sliko?" + +#: ../src/control/jobs/control_jobs.c:1601 +msgid "remove images?" +msgstr "naj odstranim slike?" + +#: ../src/control/jobs/control_jobs.c:1602 +#, c-format +msgid "" +"do you really want to remove %d image from darktable\n" +"(without deleting file on disk)?" +msgid_plural "" +"do you really want to remove %d images from darktable\n" +"(without deleting files on disk)?" +msgstr[0] "" +"ali res želite odstraniti %d sliko iz darktable?\n" +"(ne da bi jo zbrisali z diska)?" +msgstr[1] "" +"ali res želite odstraniti %d sliki iz darktable?n(ne da bi ju zbrisali z " +"diska)?" +msgstr[2] "" +"ali res želite odstraniti %d slike iz darktable?n(ne da bi jih zbrisali z " +"diska)?" +msgstr[3] "" +"ali res želite odstraniti %d slik iz darktable?n(ne da bi jo zbrisali z " +"diska)?" + +#. first get all selected images, to avoid the set changing during ui interaction +#: ../src/control/jobs/control_jobs.c:1617 +#: ../src/control/jobs/control_jobs.c:1650 +msgid "delete images" +msgstr "zbriši slike" + +#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1663 +msgid "delete image?" +msgstr "naj odstranim sliko?" + +#: ../src/control/jobs/control_jobs.c:1633 +msgid "delete images?" +msgstr "naj odstranim slike?" + +#: ../src/control/jobs/control_jobs.c:1634 +#, c-format +msgid "" +"do you really want to physically delete %d image\n" +"(using trash if possible)?" +msgid_plural "" +"do you really want to physically delete %d images\n" +"(using trash if possible)?" +msgstr[0] "" +"ali res želite fizično odstraniti %d sliko z diska?\n" +"(z uporabo koša za smeti, če je mogoče)?" +msgstr[1] "" +"ali res želite fizično odstraniti %d sliki z diska?\n" +"(z uporabo koša za smeti, če je mogoče)?" +msgstr[2] "" +"ali res želite fizično odstraniti %d slike z diska?\n" +"(z uporabo koša za smeti, če je mogoče)?" +msgstr[3] "" +"ali res želite fizično odstraniti %d slik z diska?\n" +"(z uporabo koša za smeti, če je mogoče)?" + +#: ../src/control/jobs/control_jobs.c:1636 +#, c-format +msgid "do you really want to physically delete %d image from disk?" +msgid_plural "do you really want to physically delete %d images from disk?" +msgstr[0] "ali res želite fizično odstraniti %d sliko z diska?" +msgstr[1] "ali res želite fizično odstraniti %d sliki z diska?" +msgstr[2] "ali res želite fizično odstraniti %d slike z diska?" +msgstr[3] "ali res želite fizično odstraniti %d slik z diska?" + +#: ../src/control/jobs/control_jobs.c:1664 +msgid "" +"do you really want to physically delete selected image (using trash if " +"possible)?" +msgstr "" +"ali res želite fizično odstraniti izbrano sliko z diska (z uporabo koša za " +"smeti, če je mogoče)?" + +#: ../src/control/jobs/control_jobs.c:1665 +msgid "do you really want to physically delete selected image from disk?" +msgstr "ali res želite fizično odstraniti izbrano sliko z diska?" + +#: ../src/control/jobs/control_jobs.c:1680 +msgid "move images" +msgstr "prenesi slike" + +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 +msgid "_select as destination" +msgstr "_izberi kot cilj" + +#: ../src/control/jobs/control_jobs.c:1711 +msgid "move image?" +msgid_plural "move images?" +msgstr[0] "prenesem sliko?" +msgstr[1] "prenesem sliki?" +msgstr[2] "prenesem slike?" +msgstr[3] "prenesem slike?" + +#: ../src/control/jobs/control_jobs.c:1712 +#, c-format +msgid "" +"do you really want to physically move %d image to %s?\n" +"(all duplicates will be moved along)" +msgid_plural "" +"do you really want to physically move %d images to %s?\n" +"(all duplicates will be moved along)" +msgstr[0] "" +"ali res želite fizično preseliti %d sliko na %s\n" +"(vse neizbrane dvojnice bodo tudi preseljene)" +msgstr[1] "" +"ali res želite fizično preseliti %d sliki na %s\n" +"(vse neizbrane dvojnice bodo tudi preseljene)" +msgstr[2] "" +"ali res želite fizično preseliti %d slike na %s\n" +"(vse neizbrane dvojnice bodo tudi preseljene)" +msgstr[3] "" +"ali res želite fizično preseliti %d slik na %s\n" +"(vse neizbrane dvojnice bodo tudi preseljene)" + +#: ../src/control/jobs/control_jobs.c:1734 +msgid "copy images" +msgstr "kopiraj slike" + +#: ../src/control/jobs/control_jobs.c:1765 +msgid "copy image?" +msgid_plural "copy images?" +msgstr[0] "kopiram sliko?" +msgstr[1] "kopiram sliki?" +msgstr[2] "kopiram slike?" +msgstr[3] "kopiram slike?" + +#: ../src/control/jobs/control_jobs.c:1766 +#, c-format +msgid "do you really want to physically copy %d image to %s?" +msgid_plural "do you really want to physically copy %d images to %s?" +msgstr[0] "ali res želite fizično kopirati %d sliko na %s?" +msgstr[1] "ali res želite fizično kopirati %d sliki na %s?" +msgstr[2] "ali res želite fizično kopirati %d slike na %s?" +msgstr[3] "ali res želite fizično kopirati %d slik na %s?" + +#: ../src/control/jobs/control_jobs.c:1784 +#: ../src/control/jobs/control_jobs.c:1792 +msgid "local copy images" +msgstr "lokalne kopije slik" + +#: ../src/control/jobs/control_jobs.c:1799 ../src/libs/image.c:674 +msgid "refresh EXIF" +msgstr "osveži EXIF" + +#: ../src/control/jobs/control_jobs.c:1863 +#, c-format +msgid "failed to get parameters from storage module `%s', aborting export.." +msgstr "" +"izpadlo je pridobivanje parametrov iz shranjevalnega modula '%s', prekinjam " +"izvoz.." + +#: ../src/control/jobs/control_jobs.c:1879 +msgid "export images" +msgstr "izvozi slike" + +#: ../src/control/jobs/control_jobs.c:1929 +#, c-format +msgid "adding time offset to %d image" +msgstr "dodajam časovni zamik na %d sliko" + +#: ../src/control/jobs/control_jobs.c:1929 +#, c-format +msgid "setting date/time of %d image" +msgstr "nastavljam datum in čas na %d sliko" + +#: ../src/control/jobs/control_jobs.c:1930 +#, c-format +msgid "adding time offset to %d images" +msgstr "dodajam časovni zamik na %d slik" + +#: ../src/control/jobs/control_jobs.c:1930 +#, c-format +msgid "setting date/time of %d images" +msgstr "nastavljam datum in čas zamik na %d slik" + +#: ../src/control/jobs/control_jobs.c:1975 +#, c-format +msgid "added time offset to %d image" +msgstr "dodan časovni zamik na %d sliko" + +#: ../src/control/jobs/control_jobs.c:1975 +#, c-format +msgid "set date/time of %d image" +msgstr "nastavljen datum in čas na %d sliko" + +#: ../src/control/jobs/control_jobs.c:1976 +#, c-format +msgid "added time offset to %d images" +msgstr "dodan časovni zamik na %d slike" + +#: ../src/control/jobs/control_jobs.c:1976 +#, c-format +msgid "set date/time of %d images" +msgstr "nastavljen datum in čas na %d slike" + +#: ../src/control/jobs/control_jobs.c:2017 +msgid "time offset" +msgstr "časovni zamik" + +#: ../src/control/jobs/control_jobs.c:2045 ../src/libs/copy_history.c:414 +msgid "write sidecar files" +msgstr "zapiši priključne datoteke" + +#: ../src/control/jobs/control_jobs.c:2259 ../src/control/jobs/film_jobs.c:297 +#, c-format +msgid "importing %d image" +msgid_plural "importing %d images" +msgstr[0] "uvažam sliko %d" +msgstr[1] "uvažam sliki %d" +msgstr[2] "uvažam slike %d" +msgstr[3] "uvažam slike %d" + +#: ../src/control/jobs/control_jobs.c:2295 +#, c-format +msgid "importing %d/%d image" +msgid_plural "importing %d/%d images" +msgstr[0] "uvažam %d/%d sliko" +msgstr[1] "uvažam %d/%d sliki" +msgstr[2] "uvažam %d/%d slike" +msgstr[3] "uvažam %d/%d slik" + +#: ../src/control/jobs/control_jobs.c:2305 +#, c-format +msgid "imported %d image" +msgid_plural "imported %d images" +msgstr[0] "uvožena %d slika" +msgstr[1] "uvoženi %d sliki" +msgstr[2] "uvožene %d slike" +msgstr[3] "uvoženih %d slik" + +#: ../src/control/jobs/film_jobs.c:73 ../src/control/jobs/film_jobs.c:109 +msgid "import images" +msgstr "uvozi slike" + +#: ../src/control/jobs/film_jobs.c:239 +msgid "no supported images were found to be imported" +msgstr "našel nisem nobene slike v znanem formatu za uvoz" + +#: ../src/control/jobs/image_jobs.c:76 +#, c-format +msgid "importing image %s" +msgstr "uvažam sliko %s" + +#: ../src/control/jobs/image_jobs.c:110 +msgid "import image" +msgstr "uvoz slike" + +#: ../src/develop/blend.c:315 +msgid "detail mask blending error" +msgstr "podrobnosti napake mešanje maske" + +#: ../src/develop/blend.c:904 +msgid "detail mask CL blending problem" +msgstr "podrobnosti problema mešanja maske CL" + +#: ../src/develop/blend_gui.c:47 ../src/libs/live_view.c:335 +msgctxt "blendmode" +msgid "normal" +msgstr "normalno" + +#: ../src/develop/blend_gui.c:49 +msgctxt "blendmode" +msgid "average" +msgstr "povprečje" + +#: ../src/develop/blend_gui.c:51 ../src/libs/live_view.c:348 +msgctxt "blendmode" +msgid "difference" +msgstr "razlika" + +#: ../src/develop/blend_gui.c:54 +msgctxt "blendmode" +msgid "normal bounded" +msgstr "normalno omejeno" + +#: ../src/develop/blend_gui.c:56 ../src/libs/live_view.c:343 +msgctxt "blendmode" +msgid "lighten" +msgstr "posvetljeno" + +#: ../src/develop/blend_gui.c:58 ../src/libs/live_view.c:342 +msgctxt "blendmode" +msgid "darken" +msgstr "potemnjeno" + +#: ../src/develop/blend_gui.c:60 ../src/libs/live_view.c:340 +msgctxt "blendmode" +msgid "screen" +msgstr "zaslon" + +#: ../src/develop/blend_gui.c:63 ../src/libs/live_view.c:339 +msgctxt "blendmode" +msgid "multiply" +msgstr "množi" + +#: ../src/develop/blend_gui.c:65 +msgctxt "blendmode" +msgid "divide" +msgstr "deljenje" + +#: ../src/develop/blend_gui.c:67 +msgctxt "blendmode" +msgid "addition" +msgstr "prištevanje" + +#: ../src/develop/blend_gui.c:69 +msgctxt "blendmode" +msgid "subtract" +msgstr "odštevanje" + +#: ../src/develop/blend_gui.c:71 +msgctxt "blendmode" +msgid "geometric mean" +msgstr "geometrijsko povprečje" + +#: ../src/develop/blend_gui.c:73 +msgctxt "blendmode" +msgid "harmonic mean" +msgstr "harmonično povprečje" + +#: ../src/develop/blend_gui.c:76 ../src/libs/live_view.c:341 +msgctxt "blendmode" +msgid "overlay" +msgstr "plast" + +#: ../src/develop/blend_gui.c:78 +msgctxt "blendmode" +msgid "softlight" +msgstr "mehka svetloba" + +#: ../src/develop/blend_gui.c:80 +msgctxt "blendmode" +msgid "hardlight" +msgstr "trda svetloba" + +#: ../src/develop/blend_gui.c:82 +msgctxt "blendmode" +msgid "vividlight" +msgstr "živa svetloba" + +#: ../src/develop/blend_gui.c:84 +msgctxt "blendmode" +msgid "linearlight" +msgstr "linearna svetloba" + +#: ../src/develop/blend_gui.c:86 +msgctxt "blendmode" +msgid "pinlight" +msgstr "točkovna svetloba" + +#: ../src/develop/blend_gui.c:89 +msgctxt "blendmode" +msgid "lightness" +msgstr "svetlost" + +#: ../src/develop/blend_gui.c:91 +msgctxt "blendmode" +msgid "chromaticity" +msgstr "kromatičnost" + +#: ../src/develop/blend_gui.c:94 +msgctxt "blendmode" +msgid "Lab lightness" +msgstr "Lab svetlost" + +#: ../src/develop/blend_gui.c:96 +msgctxt "blendmode" +msgid "Lab a-channel" +msgstr "Kanal Lab a" + +#: ../src/develop/blend_gui.c:98 +msgctxt "blendmode" +msgid "Lab b-channel" +msgstr "Kanal Lab b" + +#: ../src/develop/blend_gui.c:100 +msgctxt "blendmode" +msgid "Lab color" +msgstr "Lab barva" + +#: ../src/develop/blend_gui.c:103 +msgctxt "blendmode" +msgid "RGB red channel" +msgstr "Rdeči kanal RGB" + +#: ../src/develop/blend_gui.c:105 +msgctxt "blendmode" +msgid "RGB green channel" +msgstr "Zeleni RGB kanal" + +#: ../src/develop/blend_gui.c:107 +msgctxt "blendmode" +msgid "RGB blue channel" +msgstr "Modri RGB kanal" + +#: ../src/develop/blend_gui.c:109 +msgctxt "blendmode" +msgid "HSV value" +msgstr "HSV vrednost" + +#: ../src/develop/blend_gui.c:111 +msgctxt "blendmode" +msgid "HSV color" +msgstr "HSV barva" + +#: ../src/develop/blend_gui.c:114 +msgctxt "blendmode" +msgid "hue" +msgstr "odtenek" + +#: ../src/develop/blend_gui.c:116 +msgctxt "blendmode" +msgid "color" +msgstr "barva" + +#: ../src/develop/blend_gui.c:118 +msgctxt "blendmode" +msgid "coloradjustment" +msgstr "prilagoditev barv" + +#. * deprecated blend modes: make them available as legacy +#. * history stacks might want them +#: ../src/develop/blend_gui.c:124 +msgctxt "blendmode" +msgid "difference (deprecated)" +msgstr "razlika (zastarelo)" + +#: ../src/develop/blend_gui.c:126 +msgctxt "blendmode" +msgid "subtract inverse (deprecated)" +msgstr "odštej inverzno (zastarelo)" + +#: ../src/develop/blend_gui.c:128 +msgctxt "blendmode" +msgid "divide inverse (deprecated)" +msgstr "razdeli inverzno (zastarelo)" + +#: ../src/develop/blend_gui.c:130 +msgctxt "blendmode" +msgid "Lab L-channel (deprecated)" +msgstr "kanal Lab L (zastarelo)" + +#: ../src/develop/blend_gui.c:135 +msgctxt "blendoperation" +msgid "normal" +msgstr "normalno" + +#: ../src/develop/blend_gui.c:136 +msgctxt "blendoperation" +msgid "reverse" +msgstr "obratno" + +#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:442 +msgid "default" +msgstr "privzeto" + +#: ../src/develop/blend_gui.c:142 +msgid "RAW" +msgstr "RAW" + +#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2030 +msgid "RGB (display)" +msgstr "RGB (prikaz)" + +#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2043 +msgid "RGB (scene)" +msgstr "RGB (scena)" + +#. DEVELOP_MASK_ENABLED +#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3438 +msgid "uniformly" +msgstr "enakomerno" + +#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:3448 ../src/develop/imageop.c:2669 +msgid "drawn mask" +msgstr "narisana maska" + +#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2528 +#: ../src/develop/blend_gui.c:3459 ../src/develop/imageop.c:2671 +msgid "parametric mask" +msgstr "parametrska maska" + +#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2966 +#: ../src/develop/blend_gui.c:3486 ../src/develop/imageop.c:2673 +msgid "raster mask" +msgstr "rastrska maska" + +#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3473 +msgid "drawn & parametric mask" +msgstr "narisana in parametrska maska" + +#: ../src/develop/blend_gui.c:168 +msgid "exclusive" +msgstr "eksluzivno" + +#: ../src/develop/blend_gui.c:169 +msgid "inclusive" +msgstr "inkluzivno" + +#: ../src/develop/blend_gui.c:170 +msgid "exclusive & inverted" +msgstr "ekskluzivno in inverzno" + +#: ../src/develop/blend_gui.c:171 +msgid "inclusive & inverted" +msgstr "inkluzivno in inverzno" + +#: ../src/develop/blend_gui.c:175 +msgid "output before blur" +msgstr "izhod pred zamegljevanjem" + +#: ../src/develop/blend_gui.c:176 +msgid "input before blur" +msgstr "vhod pred zamegljevanjem" + +#: ../src/develop/blend_gui.c:177 +msgid "output after blur" +msgstr "izhod po zamegljevanju" + +#: ../src/develop/blend_gui.c:178 +msgid "input after blur" +msgstr "vhod po zamegljevanju" + +#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:157 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/libs/live_view.c:362 +msgid "on" +msgstr "vklopljeno" + +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 +msgid "input" +msgstr "vhod" + +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 +msgid "output" +msgstr "izhod" + +#: ../src/develop/blend_gui.c:998 +msgid " (zoom)" +msgstr " (zoom)" + +#: ../src/develop/blend_gui.c:1006 +msgid " (log)" +msgstr " (dnevnik)" + +#: ../src/develop/blend_gui.c:2004 +msgid "reset to default blend colorspace" +msgstr "ponovno nastavi na privzeto mešanico barvnega prostora" + +#: ../src/develop/blend_gui.c:2060 +msgid "reset and hide output channels" +msgstr "ponovno nastavi in skrij izhodne kanale" + +#: ../src/develop/blend_gui.c:2067 +msgid "show output channels" +msgstr "prikaži izhodne kanale" + +#: ../src/develop/blend_gui.c:2306 ../src/develop/blend_gui.c:2373 +#: ../src/iop/tonecurve.c:1156 +msgid "L" +msgstr "L" + +#: ../src/develop/blend_gui.c:2306 +msgid "sliders for L channel" +msgstr "drsniki za kanal L" + +#: ../src/develop/blend_gui.c:2311 ../src/iop/tonecurve.c:1157 +msgid "a" +msgstr "a" + +#: ../src/develop/blend_gui.c:2311 +msgid "sliders for a channel" +msgstr "drsniki za kanal a" + +#: ../src/develop/blend_gui.c:2315 +msgid "green/red" +msgstr "zeleno/rdeča" + +#: ../src/develop/blend_gui.c:2316 ../src/iop/tonecurve.c:1158 +msgid "b" +msgstr "b" + +#: ../src/develop/blend_gui.c:2316 +msgid "sliders for b channel" +msgstr "drsniki za kanal b" + +#: ../src/develop/blend_gui.c:2320 +msgid "blue/yellow" +msgstr "modro/rumeno" + +#: ../src/develop/blend_gui.c:2321 +msgid "C" +msgstr "C" + +#: ../src/develop/blend_gui.c:2321 +msgid "sliders for chroma channel (of LCh)" +msgstr "drsniki za kanal krome (LCh)" + +#: ../src/develop/blend_gui.c:2327 +msgid "h" +msgstr "h" + +#: ../src/develop/blend_gui.c:2327 +msgid "sliders for hue channel (of LCh)" +msgstr "drsniki za kanal odtenka (LCh)" + +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 +msgid "g" +msgstr "g" + +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 +msgid "sliders for gray value" +msgstr "drsniki za sivine" + +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/denoiseprofile.c:3714 +#: ../src/iop/rawdenoise.c:910 ../src/iop/rgbcurve.c:1358 +#: ../src/iop/rgblevels.c:1043 ../src/libs/filters/colors.c:137 +msgid "R" +msgstr "R" + +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +msgid "sliders for red channel" +msgstr "drsniki za rdeči kanal" + +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/denoiseprofile.c:3715 +#: ../src/iop/rawdenoise.c:911 ../src/iop/rgbcurve.c:1359 +#: ../src/iop/rgblevels.c:1044 ../src/libs/filters/colors.c:143 +msgid "G" +msgstr "G" + +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +msgid "sliders for green channel" +msgstr "drsniki za zeleni kanal" + +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/denoiseprofile.c:3716 +#: ../src/iop/rawdenoise.c:912 ../src/iop/rgbcurve.c:1360 +#: ../src/iop/rgblevels.c:1045 ../src/libs/filters/colors.c:146 +msgid "B" +msgstr "B" + +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +msgid "sliders for blue channel" +msgstr "drsniki za modri kanal" + +#: ../src/develop/blend_gui.c:2359 +msgid "H" +msgstr "H" + +#: ../src/develop/blend_gui.c:2359 +msgid "sliders for hue channel (of HSL)" +msgstr "drsniki za kanal odtenkov (HSL)" + +#: ../src/develop/blend_gui.c:2366 +msgid "S" +msgstr "S" + +#: ../src/develop/blend_gui.c:2366 +msgid "sliders for chroma channel (of HSL)" +msgstr "drsniki za kanal krome (HSL)" + +#: ../src/develop/blend_gui.c:2373 +msgid "sliders for value channel (of HSL)" +msgstr "drsniki za kanal vrednosti (HSL)" + +#: ../src/develop/blend_gui.c:2407 +msgid "Jz" +msgstr "Jz" + +#: ../src/develop/blend_gui.c:2407 +msgid "sliders for value channel (of JzCzhz)" +msgstr "drsniki za kanal vrednosti (JzCzhz)" + +#: ../src/develop/blend_gui.c:2414 +msgid "Cz" +msgstr "Cz" + +#: ../src/develop/blend_gui.c:2414 +msgid "sliders for chroma channel (of JzCzhz)" +msgstr "drsniki za kanal krome (JzCzhz)" + +#: ../src/develop/blend_gui.c:2421 +msgid "hz" +msgstr "hz" + +#: ../src/develop/blend_gui.c:2421 +msgid "sliders for hue channel (of JzCzhz)" +msgstr "drsniki za kanal odtenka (JzCzhz)" + +#: ../src/develop/blend_gui.c:2431 +msgid "" +"adjustment based on input received by this module:\n" +"* range defined by upper markers: blend fully\n" +"* range defined by lower markers: do not blend at all\n" +"* range between adjacent upper/lower markers: blend gradually" +msgstr "" +"prilagoditve glede na dobljeni vhod v ta modul:\n" +"* obseg je določen z zgornjimi mejami: popolno mešanje\n" +"* obseg določen s spodnjimi mejami: nič mešanja\n" +"* obseg med sosednjimi spodnjimi in zgornjimi mejami: delno mešanje" + +#: ../src/develop/blend_gui.c:2435 +msgid "" +"adjustment based on unblended output of this module:\n" +"* range defined by upper markers: blend fully\n" +"* range defined by lower markers: do not blend at all\n" +"* range between adjacent upper/lower markers: blend gradually" +msgstr "" +"prilagoditve glede na nezmešan izhod iz tega modula:\n" +"* obseg je določen z zgornjimi mejami: popolno mešanje\n" +"* obseg določen s spodnjimi mejami: nič mešanja\n" +"* obseg med sosednjimi spodnjimi in zgornjimi mejami: delno mešanje" + +#: ../src/develop/blend_gui.c:2532 +msgid "reset blend mask settings" +msgstr "ponovno nastavite masko mešanja" + +#: ../src/develop/blend_gui.c:2543 ../src/iop/atrous.c:1797 +#: ../src/iop/colorzones.c:2641 ../src/iop/denoiseprofile.c:3711 +#: ../src/iop/rawdenoise.c:907 ../src/iop/rgbcurve.c:1357 +#: ../src/iop/rgblevels.c:1041 ../src/iop/tonecurve.c:1155 +msgid "channel" +msgstr "kanal" + +#: ../src/develop/blend_gui.c:2558 ../src/iop/colorzones.c:2660 +#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1164 +msgid "" +"pick GUI color from image\n" +"ctrl+click or right-click to select an area" +msgstr "" +"izberite barvo grafičnega vmesnika iz slike\n" +"krmilka+klik to za izbor površine" + +#: ../src/develop/blend_gui.c:2561 ../src/iop/colorzones.c:2662 +#: ../src/iop/rgbcurve.c:1369 +msgid "show color" +msgstr "prikaži barvo" + +#: ../src/develop/blend_gui.c:2570 +msgid "" +"set the range based on an area from the image\n" +"drag to use the input image\n" +"ctrl+drag to use the output image" +msgstr "" +"izberite interval iz površine slike\n" +"klik+povlek za uporabo vhodne slike\n" +"krmilka+klik + povlek za uporabo izhodne slike" + +#: ../src/develop/blend_gui.c:2573 +msgid "set range" +msgstr "nastavi obseg" + +#: ../src/develop/blend_gui.c:2576 +msgid "invert all channel's polarities" +msgstr "invertirajte vse pole kanala" + +#: ../src/develop/blend_gui.c:2600 +msgid "toggle polarity. best seen by enabling 'display mask'" +msgstr "zamenjate pole. najbolje se vidi z omogočeno 'masko prikaza'" + +#: ../src/develop/blend_gui.c:2629 +msgid "" +"double-click to reset.\n" +"press 'a' to toggle available slider modes.\n" +"press 'c' to toggle view of channel data.\n" +"press 'm' to toggle mask view." +msgstr "" +"dvakrat kliknite za ponovno nastavitev.\n" +"pritisnite 'a', da preklopite razpoložljive načine drsnikov.\n" +"pritisnite 'c', da preklopite prikaz podatkov o kanalih.\n" +"pritisnite 'm', da preklopite pogled na masko." + +#: ../src/develop/blend_gui.c:2656 ../src/develop/blend_gui.c:3577 +#: ../src/iop/basicadj.c:630 ../src/iop/colorbalancergb.c:2161 +#: ../src/iop/exposure.c:1138 ../src/iop/exposure.c:1153 +#: ../src/iop/filmic.c:1528 ../src/iop/filmic.c:1541 ../src/iop/filmic.c:1583 +#: ../src/iop/filmicrgb.c:4504 ../src/iop/filmicrgb.c:4515 +#: ../src/iop/filmicrgb.c:4549 ../src/iop/filmicrgb.c:4559 +#: ../src/iop/graduatednd.c:1082 ../src/iop/negadoctor.c:1030 +#: ../src/iop/profile_gamma.c:657 ../src/iop/profile_gamma.c:663 +#: ../src/iop/relight.c:258 ../src/iop/soften.c:373 ../src/iop/toneequal.c:3379 +#: ../src/iop/toneequal.c:3382 ../src/iop/toneequal.c:3385 +#: ../src/iop/toneequal.c:3388 ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3394 ../src/iop/toneequal.c:3397 +#: ../src/iop/toneequal.c:3400 ../src/iop/toneequal.c:3403 +#: ../src/iop/toneequal.c:3525 ../src/iop/toneequal.c:3534 +#: ../src/iop/toneequal.c:3547 ../src/views/darkroom.c:2292 +msgid " EV" +msgstr " EV" + +#: ../src/develop/blend_gui.c:2658 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:2966 ../src/develop/blend_gui.c:3029 +#: ../src/develop/blend_gui.c:3545 ../src/develop/blend_gui.c:3575 +#: ../src/develop/blend_gui.c:3588 ../src/develop/blend_gui.c:3605 +#: ../src/develop/blend_gui.c:3629 ../src/develop/blend_gui.c:3641 +#: ../src/develop/blend_gui.c:3652 ../src/develop/blend_gui.c:3663 +msgid "blend" +msgstr "zmešaj" + +#: ../src/develop/blend_gui.c:2658 +msgid "boost factor" +msgstr "faktor povečanja" + +#: ../src/develop/blend_gui.c:2661 +msgid "adjust the boost factor of the channel mask" +msgstr "prilagodi faktor povečanja maske kanala" + +#: ../src/develop/blend_gui.c:2698 +#, c-format +msgid "%d shape used" +msgid_plural "%d shapes used" +msgstr[0] "uporabljena %d oblika" +msgstr[1] "uporabljeni %d obliki" +msgstr[2] "uporabljene %d oblike" +msgstr[3] "uporabljeno %d oblik" + +#: ../src/develop/blend_gui.c:2703 ../src/develop/blend_gui.c:2759 +#: ../src/develop/blend_gui.c:2847 ../src/develop/blend_gui.c:2967 +msgid "no mask used" +msgstr "nobene maske ni v rabi" + +#: ../src/develop/blend_gui.c:2767 +msgid "toggle polarity of drawn mask" +msgstr "preklopi polarnost narisane maske" + +#: ../src/develop/blend_gui.c:2776 +msgid "show and edit mask elements" +msgstr "prikaži in uredi elemente maske" + +#: ../src/develop/blend_gui.c:2777 +msgid "show and edit in restricted mode" +msgstr "prikaži in uredi v omejevalnem načinu" + +#: ../src/develop/blend_gui.c:2784 ../src/libs/masks.c:1014 +#: ../src/libs/masks.c:1812 ../src/libs/masks.c:1816 +msgid "add gradient" +msgstr "dodaj gradient" + +#: ../src/develop/blend_gui.c:2785 +msgid "add multiple gradients" +msgstr "dodaj več gradientov" + +#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2466 +#: ../src/libs/masks.c:994 ../src/libs/masks.c:1848 ../src/libs/masks.c:1852 +msgid "add brush" +msgstr "dodaj čopič" + +#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2466 +msgid "add multiple brush strokes" +msgstr "dodaj več potez s čopičem" + +#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 ../src/libs/masks.c:1009 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1825 +msgid "add path" +msgstr "dodaj pot" + +#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 +msgid "add multiple paths" +msgstr "dodaj več poti" + +#: ../src/develop/blend_gui.c:2808 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 ../src/libs/masks.c:1004 ../src/libs/masks.c:1830 +#: ../src/libs/masks.c:1834 +msgid "add ellipse" +msgstr "dodaj elipso" + +#: ../src/develop/blend_gui.c:2809 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 +msgid "add multiple ellipses" +msgstr "dodaj več elips" + +#: ../src/develop/blend_gui.c:2816 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 ../src/libs/masks.c:999 ../src/libs/masks.c:1839 +#: ../src/libs/masks.c:1843 +msgid "add circle" +msgstr "dodaj krog" + +#: ../src/develop/blend_gui.c:2817 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 +msgid "add multiple circles" +msgstr "dodaj več krogov" + +#: ../src/develop/blend_gui.c:2976 +msgid "toggle polarity of raster mask" +msgstr "preklopi polarnost rastrske maske" + +#: ../src/develop/blend_gui.c:3119 +msgid "normal & difference" +msgstr "normalno & razlika" + +#: ../src/develop/blend_gui.c:3124 +msgid "lighten" +msgstr "posvetli" + +#: ../src/develop/blend_gui.c:3131 +msgid "darken" +msgstr "potemni" + +#: ../src/develop/blend_gui.c:3138 +msgid "contrast enhancing" +msgstr "izboljšaj kontrast" + +#: ../src/develop/blend_gui.c:3145 ../src/develop/blend_gui.c:3168 +msgid "color channel" +msgstr "barvni kanal" + +#: ../src/develop/blend_gui.c:3156 ../src/develop/blend_gui.c:3171 +msgid "chromaticity & lightness" +msgstr "barvnost & svetlost" + +#: ../src/develop/blend_gui.c:3163 +msgid "normal & arithmetic" +msgstr "normalni & aritmetični" + +#. add deprecated blend mode +#: ../src/develop/blend_gui.c:3184 +msgid "deprecated" +msgstr "zastarelo" + +#. should never happen: unknown blend mode +#: ../src/develop/blend_gui.c:3188 +#, c-format +msgid "unknown blend mode '%d' in module '%s'" +msgstr "neznani način mešanja '%d' v modulu '%s'" + +#: ../src/develop/blend_gui.c:3497 +msgid "blending options" +msgstr "možnosti mešanja" + +#: ../src/develop/blend_gui.c:3516 +#| msgid "blend mode" +msgid "blend mask" +msgstr "maska mešanja" + +#: ../src/develop/blend_gui.c:3520 +msgid "display mask and/or color channel" +msgstr "prikaži masko in/ali barvni kanal" + +#: ../src/develop/blend_gui.c:3525 +msgid "" +"display mask and/or color channel.\n" +"ctrl+click to display mask,\n" +"shift+click to display channel.\n" +"hover over parametric mask slider to select channel for display" +msgstr "" +"prikaži masko in/ali barvni kanal.\n" +"krmilka-klik za prikaz maske,\n" +"dvigalka-klik za prikaz kanala.\n" +"miška nad drsnikom parametrske maske za izbor kanala prikaza" + +#: ../src/develop/blend_gui.c:3532 +msgid "temporarily switch off blend mask" +msgstr "začasno izklopi masko mešanja" + +#: ../src/develop/blend_gui.c:3537 +msgid "" +"temporarily switch off blend mask.\n" +"only for module in focus" +msgstr "" +"začasno ugasni masko mešanja.\n" +"samo za modul v osredotočenosti" + +#: ../src/develop/blend_gui.c:3549 +msgid "choose blending mode" +msgstr "izberi način mešanja" + +#: ../src/develop/blend_gui.c:3559 +msgid "toggle blend order" +msgstr "preklopi vrstni red zlivanja" + +#: ../src/develop/blend_gui.c:3565 +msgid "" +"toggle the blending order between the input and the output of the module,\n" +"by default the output will be blended on top of the input,\n" +"order can be reversed by clicking on the icon (input on top of output)" +msgstr "" +"preklopi vrstni red mešanja med vhodom in izhodom modula,\n" +"privzeto bo izhod mešan na vrhu vhoda,\n" +"vrstni red je mogoče obrniti s klikom na ikono (vhod na vrhu izhoda)" + +#: ../src/develop/blend_gui.c:3576 +#| msgid "white fulcrum" +msgid "fulcrum" +msgstr "izhodišče" + +#: ../src/develop/blend_gui.c:3580 +msgid "adjust the fulcrum used by some blending operations" +msgstr "prilagodi izhodišče, ki se uporablja za operacije mešanja" + +#. Add opacity/scale sliders to table +#: ../src/develop/blend_gui.c:3588 ../src/iop/watermark.c:1362 +#: ../src/libs/masks.c:105 +msgid "opacity" +msgstr "neprosojnost" + +#: ../src/develop/blend_gui.c:3591 +msgid "set the opacity of the blending" +msgstr "nastavi neprosojnost mešanja" + +#: ../src/develop/blend_gui.c:3596 ../src/libs/history.c:956 +msgid "combine masks" +msgstr "sestavi maske" + +#: ../src/develop/blend_gui.c:3598 +msgid "" +"how to combine individual drawn mask and different channels of parametric " +"mask" +msgstr "" +"kako sestaviti posamično narisano masko in različne kanale parametrske maske" + +#: ../src/develop/blend_gui.c:3605 +msgid "details threshold" +msgstr "podrobnosti praga" + +#: ../src/develop/blend_gui.c:3609 +msgid "" +"adjust the threshold for the details mask (using raw data),\n" +"positive values select areas with strong details,\n" +"negative values select flat areas" +msgstr "" +"prilagodi prag za masko s podrobnostmi (z uporabo surovih podatkov),\n" +"pozitivne vrednosti izberejo področja z močnimi podrobnostmi,\n" +"negativne vrednosti izberejo ravna področja" + +#: ../src/develop/blend_gui.c:3617 ../src/libs/history.c:959 +msgid "feathering guide" +msgstr "vodilo mehčanja s peresom" + +#: ../src/develop/blend_gui.c:3620 +msgid "" +"choose to guide mask by input or output image and\n" +"choose to apply feathering before or after mask blur" +msgstr "" +"izberi vodilno masko po vhodni ali izhodni sliki in\n" +"izberite mehčanje pred ali po maski zamegljevanja" + +#: ../src/develop/blend_gui.c:3629 ../src/libs/history.c:958 +msgid "feathering radius" +msgstr "radij mehčanja s peresom" + +#: ../src/develop/blend_gui.c:3632 +msgid "spatial radius of feathering" +msgstr "prostorski krog mehčanja s peresom" + +#: ../src/develop/blend_gui.c:3641 +msgid "blurring radius" +msgstr "radij zamegljevanja" + +#: ../src/develop/blend_gui.c:3644 +msgid "radius for gaussian blur of blend mask" +msgstr "polmer gaussove maske zamegljevalnega mešanja" + +#: ../src/develop/blend_gui.c:3652 ../src/iop/retouch.c:2738 +#: ../src/libs/history.c:954 +msgid "mask opacity" +msgstr "neprosojnost maske" + +#: ../src/develop/blend_gui.c:3656 +msgid "" +"shifts and tilts the tone curve of the blend mask to adjust its brightness\n" +"without affecting fully transparent/fully opaque regions" +msgstr "" +"pomakne in nagne krivuljo tonov mešalne maske tako da prilagodi njeno " +"sijavost\n" +"ne da bi vplivala na dele, ki so popolnoma prosojni ali popolnoma neprosojni" + +#: ../src/develop/blend_gui.c:3663 ../src/libs/history.c:962 +msgid "mask contrast" +msgstr "kontrast maske" + +#: ../src/develop/blend_gui.c:3667 +msgid "" +"gives the tone curve of the blend mask an s-like shape to adjust its contrast" +msgstr "" +"nudi krivuljo tonov mešalne maske v obliki S krivulje za prilagoditev " +"kontrasta" + +#: ../src/develop/blend_gui.c:3671 +msgid "mask refinement" +msgstr "izboljšanje maske" + +#: ../src/develop/develop.c:732 +msgid "" +"autosaving history has been disabled for this session because of a slow " +"drive used" +msgstr "" +"samodejno shranjevanje zgodovine je bilo za to sejo onemogočeno zaradi" +" uporabe počasnega pogona" + +#: ../src/develop/develop.c:2202 +#, c-format +msgid "%s: module `%s' version mismatch: %d != %d" +msgstr "%s: modul `%s' neusklajenost verzije: %d != %d" + +#: ../src/develop/develop.c:3016 +#| msgid "module duplicate, can't move new instance after the base one\n" +msgid "duplicate module, can't move new instance after the base one\n" +msgstr "duplikat modula, ni ga mogoče premakniti v novi pojavek po osnovnem\n" + +#: ../src/develop/imageop.c:1031 +msgid "new instance" +msgstr "nova instanca" + +#: ../src/develop/imageop.c:1037 +msgid "duplicate instance" +msgstr "podvojena instanca" + +#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3755 +#: ../src/libs/masks.c:1146 +msgid "move up" +msgstr "pomakni navzgor" + +#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3756 +#: ../src/libs/masks.c:1151 +msgid "move down" +msgstr "pomakni navzdol" + +#. delete button label and tooltip will be updated based on trash pref +#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3758 +#: ../src/gui/accelerators.c:173 ../src/libs/image.c:303 +#: ../src/libs/image.c:513 +msgid "delete" +msgstr "briši" + +#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3759 +#: ../src/libs/modulegroups.c:3817 +msgid "rename" +msgstr "preimenuj" + +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 +#, c-format +msgid "'%s' is switched on" +msgstr "'%s' je vklopljen" + +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 +#, c-format +msgid "'%s' is switched off" +msgstr "'%s' je izklopljen" + +#: ../src/develop/imageop.c:2663 +msgid "unknown mask" +msgstr "neznana maska" + +#: ../src/develop/imageop.c:2667 +msgid "drawn + parametric mask" +msgstr "narisana + parametrska maska" + +#: ../src/develop/imageop.c:2676 +#, c-format +msgid "this module has a `%s'" +msgstr "ta modul ima `%s'" + +#: ../src/develop/imageop.c:2681 +#, c-format +msgid "taken from module %s" +msgstr "pobrano iz modula %s" + +#: ../src/develop/imageop.c:2686 +msgid "click to display (module must be activated first)" +msgstr "kliknite za prikaz (modul mora biti najprej aktiviran)" + +#: ../src/develop/imageop.c:2797 +msgid "purpose" +msgstr "namen" + +#: ../src/develop/imageop.c:2797 +msgid "process" +msgstr "obdelaj" + +#: ../src/develop/imageop.c:2917 +msgid "" +"multiple instance actions\n" +"right-click creates new instance" +msgstr "" +"več aktivnosti pojavkov\n" +"desni-klik ustvari nov pojavek" + +#: ../src/develop/imageop.c:2932 +msgid "" +"reset parameters\n" +"ctrl+click to reapply any automatic presets" +msgstr "" +"ponovno nastavi parametre\n" +"krmilka+klik za ponovno uveljavitev samodejnih začetnih nastavitev" + +#: ../src/develop/imageop.c:2944 +msgid "" +"presets\n" +"right-click to apply on new instance" +msgstr "" +"začetne vrednosti\n" +"desni-klik za uveljavitev na novem pojavku" + +#: ../src/develop/imageop.c:3194 ../src/develop/imageop.c:3216 +msgid "ERROR" +msgstr "NAPAKA" + +#: ../src/develop/imageop.c:3622 +msgid "unsupported input" +msgstr "nepodprt vhod" + +#: ../src/develop/imageop.c:3623 +msgid "" +"you have placed this module at\n" +"a position in the pipeline where\n" +"the data format does not match\n" +"its requirements." +msgstr "" +"ta modul ste postavili na\n" +"položaj v cevovodu, kjer\n" +"se oblika zapisa podatkov ne ujema\n" +"z njegovimi zahtevami." + +#: ../src/develop/imageop.c:3754 ../src/develop/imageop.c:3764 +#: ../src/gui/accelerators.c:169 ../src/libs/lib.c:1415 +msgid "show" +msgstr "prikaži" + +#: ../src/develop/imageop.c:3757 ../src/libs/modulegroups.c:3315 +#: ../src/libs/modulegroups.c:3438 ../src/libs/modulegroups.c:3819 +#: ../src/libs/tagging.c:3279 +msgid "new" +msgstr "nova" + +#: ../src/develop/imageop.c:3760 ../src/libs/duplicate.c:411 +#: ../src/libs/image.c:534 ../src/libs/modulegroups.c:3815 +msgid "duplicate" +msgstr "dupliciraj" + +#: ../src/develop/imageop.c:3765 +msgid "enable" +msgstr "omogoči" + +#: ../src/develop/imageop.c:3766 ../src/gui/accelerators.c:185 +msgid "focus" +msgstr "ostrenje" + +#: ../src/develop/imageop.c:3767 ../src/gui/accelerators.c:2874 +msgid "instance" +msgstr "pojavek" + +#: ../src/develop/imageop.c:3768 ../src/gui/accelerators.c:130 +#: ../src/gui/accelerators.c:140 ../src/gui/gtk.c:3055 ../src/gui/gtk.c:3102 +#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:615 +#: ../src/gui/styles_dialog.c:637 ../src/iop/atrous.c:1626 +#: ../src/libs/lib.c:1416 ../src/libs/modulegroups.c:3884 +msgid "reset" +msgstr "ponovno nastavi" + +#. Adding the outer container +#: ../src/develop/imageop.c:3769 ../src/gui/preferences.c:796 +#: ../src/libs/lib.c:1417 +msgid "presets" +msgstr "začetne vrednosti" + +#: ../src/develop/imageop.c:3789 +msgid "processing module" +msgstr "modul obdelav" + +#: ../src/develop/imageop_gui.c:293 +#, c-format +msgid "" +"%s\n" +"ctrl+click to %s" +msgstr "" +"%s\n" +"krmilka+klik za %s" + +#: ../src/develop/lightroom.c:1137 +msgid "cannot find Lightroom XMP!" +msgstr "ne morem najti Lightroomov XMP!" + +#: ../src/develop/lightroom.c:1169 ../src/develop/lightroom.c:1191 +#: ../src/develop/lightroom.c:1211 +#, c-format +msgid "`%s' is not a Lightroom XMP!" +msgstr "'%s' ni LightRoomov XMP!" + +#: ../src/develop/lightroom.c:1613 +#, c-format +msgid "%s has been imported" +msgid_plural "%s have been imported" +msgstr[0] "%s je bila uvožena" +msgstr[1] "%s sta bili uvoženi" +msgstr[2] "%s so bile uvožene" +msgstr[3] "%s je bilo uvoženih" + +#: ../src/develop/masks/brush.c:1346 ../src/develop/masks/brush.c:1400 +#, c-format +msgid "hardness: %3.2f%%" +msgstr "trdota: %3.2f%%" + +#: ../src/develop/masks/brush.c:1362 ../src/develop/masks/brush.c:1460 +#: ../src/develop/masks/circle.c:148 ../src/develop/masks/circle.c:193 +#: ../src/develop/masks/ellipse.c:484 ../src/develop/masks/ellipse.c:546 +#: ../src/develop/masks/path.c:1255 +#, c-format +msgid "size: %3.2f%%" +msgstr "velikost: %3.2f%%" + +#: ../src/develop/masks/brush.c:3191 +msgid "[BRUSH] change size" +msgstr "[BRUSH] spremeni velikost" + +#: ../src/develop/masks/brush.c:3193 +msgid "[BRUSH] change hardness" +msgstr "[BRUSH] spremeni trdoto" + +#: ../src/develop/masks/brush.c:3195 +msgid "[BRUSH] change opacity" +msgstr "[BRUSH] spremeni prosojnost" + +#: ../src/develop/masks/brush.c:3207 +#, c-format +msgid "brush #%d" +msgstr "čopič #%d" + +#: ../src/develop/masks/brush.c:3220 +#, c-format +msgid "" +"<b>size</b>: scroll, <b>hardness</b>: shift+scroll\n" +"<b>opacity</b>: ctrl+scroll (%d%%)" +msgstr "" +"<b>velikost</b>: pomik, <b>trdota</b>: dvigalka+pomik\n" +"<b>neprosojnost</b>: krmilka+pomik (%d%%)" + +#: ../src/develop/masks/brush.c:3223 +msgid "<b>size</b>: scroll" +msgstr "<b>velikost</b>: pomik" + +#: ../src/develop/masks/circle.c:137 ../src/develop/masks/circle.c:181 +#: ../src/develop/masks/ellipse.c:470 ../src/develop/masks/ellipse.c:531 +#: ../src/develop/masks/path.c:1187 +#, c-format +msgid "feather size: %3.2f%%" +msgstr "velikost peresa: %3.2f%%" + +#: ../src/develop/masks/circle.c:1462 +msgid "[CIRCLE] change size" +msgstr "[CIRCLE] spremeni velikost" + +#: ../src/develop/masks/circle.c:1464 +msgid "[CIRCLE] change feather size" +msgstr "[CIRCLE] spremeni velikost peresa mehčanja" + +#: ../src/develop/masks/circle.c:1466 +msgid "[CIRCLE] change opacity" +msgstr "[CIRCLE] spremeni prosojnost" + +#: ../src/develop/masks/circle.c:1479 +#, c-format +msgid "circle #%d" +msgstr "krog #%d" + +#: ../src/develop/masks/circle.c:1490 ../src/develop/masks/path.c:3406 +#, c-format +msgid "" +"<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" +"<b>opacity</b>: ctrl+scroll (%d%%)" +msgstr "" +"<b>velikost</b>: pomik, <b>velikost peresa</b>: dvigalka+pomik\n" +"<b>neprosojnost</b>: krmilka+pomik (%d%%)" + +#: ../src/develop/masks/ellipse.c:456 ../src/develop/masks/ellipse.c:515 +#, c-format +msgid "rotation: %3.f°" +msgstr "zasuk: %3.f°" + +#: ../src/develop/masks/ellipse.c:2015 +msgid "[ELLIPSE] change size" +msgstr "[ELLIPSE] spremeni velikost" + +#: ../src/develop/masks/ellipse.c:2018 +msgid "[ELLIPSE] change feather size" +msgstr "[ELLIPSE] spremeni velikost peresa mehčanja" + +#: ../src/develop/masks/ellipse.c:2021 ../src/develop/masks/ellipse.c:2030 +msgid "[ELLIPSE] rotate shape" +msgstr "[ELLIPSE] zasukaj obliko" + +#: ../src/develop/masks/ellipse.c:2024 +msgid "[ELLIPSE] change opacity" +msgstr "[ELLIPSE] spremeni prosojnost" + +#: ../src/develop/masks/ellipse.c:2027 +msgid "[ELLIPSE] switch feathering mode" +msgstr "[ELLIPSE] preklopi način rabe mehčanja" + +#: ../src/develop/masks/ellipse.c:2037 +#, c-format +msgid "ellipse #%d" +msgstr "elipsa #%d" + +#: ../src/develop/masks/ellipse.c:2075 +#, c-format +msgid "" +"<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" +"<b>rotation</b>: ctrl+shift+scroll, <b>opacity</b>: ctrl+scroll (%d%%)" +msgstr "" +"<b>velikost</b>: pomik, <b>velikost peresa</b>: dvigalka+pomik\n" +"<b>zasuk</b>: krmilka+dvigalka+pomik, <b>neprosojnost</b>: krmilka+pomik " +"(%d%%)" + +#: ../src/develop/masks/ellipse.c:2079 +msgid "<b>rotate</b>: ctrl+drag" +msgstr "<b>zasuk</b>: krmilka+povlek" + +#: ../src/develop/masks/ellipse.c:2082 +#, c-format +msgid "" +"<b>feather mode</b>: shift+click, <b>rotate</b>: ctrl+drag\n" +"<b>size</b>: scroll, <b>feather size</b>: shift+scroll, <b>opacity</b>: " +"ctrl+scroll (%d%%)" +msgstr "" +"<b>način peresa</b>: dvigalka+klik, <b>zasuk</b>: krmilka+poteg\n" +"<b>velikost</b>: drsanje, <b>velikost peresa</b>: dvigalka+pomik, " +"<b>neprosojnost</b>: krmilka+drsanje (%d%%)" + +#: ../src/develop/masks/gradient.c:131 ../src/develop/masks/gradient.c:175 +#, c-format +msgid "compression: %3.2f%%" +msgstr "stiskanje: %3.2f%%" + +#: ../src/develop/masks/gradient.c:143 ../src/develop/masks/gradient.c:186 +#, c-format +msgid "curvature: %3.2f%%" +msgstr "ukrivljenost: %3.2f%%" + +#: ../src/develop/masks/gradient.c:1514 +msgid "[GRADIENT on pivot] rotate shape" +msgstr "[GRADIENT on pivot] zasukaj obliko" + +#: ../src/develop/masks/gradient.c:1516 +msgid "[GRADIENT creation] set rotation" +msgstr "[GRADIENT creation] nastavi zasuk" + +#: ../src/develop/masks/gradient.c:1518 +msgid "[GRADIENT] change curvature" +msgstr "[GRADIENT] spremeni ukrivljenost" + +#: ../src/develop/masks/gradient.c:1520 +msgid "[GRADIENT] change compression" +msgstr "[GRADIENT] spremeni stiskanje" + +#: ../src/develop/masks/gradient.c:1522 +msgid "[GRADIENT] change opacity" +msgstr "[GRADIENT] spremeni prosojnost" + +#: ../src/develop/masks/gradient.c:1535 +#, c-format +msgid "gradient #%d" +msgstr "gradient #%d" + +#: ../src/develop/masks/gradient.c:1546 +#, c-format +msgid "" +"<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" +"<b>rotation</b>: click+drag, <b>opacity</b>: ctrl+scroll (%d%%)" +msgstr "" +"<b>ukrivljenost</b>: drsanje, <b>stiskanje</b>: dvigalka+drsanje\n" +"<b>zasuk</b>: klik+poteg, <b>neprosojnost</b>: krmilka+drsanje (%d%%)" + +#: ../src/develop/masks/gradient.c:1551 +#, c-format +msgid "" +"<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" +"<b>opacity</b>: ctrl+scroll (%d%%)" +msgstr "" +"<b>ukrivljenost</b>: drsanje, <b>stiskanje</b>: dvigalka+drsanje\n" +"<b>neprosojnost</b>: krmilka+drsanje (%d%%)" + +#: ../src/develop/masks/gradient.c:1554 +msgid "<b>rotate</b>: drag" +msgstr "<b>zasuk</b>: poteg" + +#: ../src/develop/masks/masks.c:139 +msgid "[SHAPE] remove shape" +msgstr "[SHAPE] odstrani obliko" + +#: ../src/develop/masks/masks.c:305 +#, c-format +msgid "group `%s'" +msgstr "grupa '%s'" + +#: ../src/develop/masks/masks.c:422 +#, c-format +msgid "copy of `%s'" +msgstr "kopija '%s'" + +#: ../src/develop/masks/masks.c:985 +#, c-format +msgid "%s: mask version mismatch: %d != %d" +msgstr "%s: neusklajeni verziji mask: %d != %d" + +#: ../src/develop/masks/masks.c:1230 ../src/develop/masks/masks.c:1881 +#, c-format +msgid "opacity: %.0f%%" +msgstr "neprosojnost: %.0f%%" + +#: ../src/develop/masks/masks.c:1625 ../src/libs/masks.c:1084 +msgid "add existing shape" +msgstr "dodaj obstoječo obliko" + +#: ../src/develop/masks/masks.c:1652 +msgid "use same shapes as" +msgstr "uporabi enake oblike kot" + +#: ../src/develop/masks/masks.c:1965 +msgid "masks can not contain themselves" +msgstr "maske ne morejo vsebovati mask" + +#: ../src/develop/masks/path.c:3349 +msgid "[PATH creation] add a smooth node" +msgstr "[PATH creation] dodaj vozel za glajenje" + +#: ../src/develop/masks/path.c:3351 +msgid "[PATH creation] add a sharp node" +msgstr "[PATH creation] dodaj vozel za ostrenje" + +#: ../src/develop/masks/path.c:3353 +msgid "[PATH creation] terminate path creation" +msgstr "[PATH creation] končaj tvorbo poti" + +#: ../src/develop/masks/path.c:3355 +msgid "[PATH on node] switch between smooth/sharp node" +msgstr "[PATH on node] preklopi med vozlom za glajenje/ostrenje" + +#: ../src/develop/masks/path.c:3357 +msgid "[PATH on node] remove the node" +msgstr "[PATH on node] odstrani vozel" + +#: ../src/develop/masks/path.c:3359 +msgid "[PATH on feather] reset curvature" +msgstr "[PATH on feather] ponastavi ukrivljenost" + +#: ../src/develop/masks/path.c:3361 +msgid "[PATH on segment] add node" +msgstr "[PATH on segment] dodaj vozel" + +#: ../src/develop/masks/path.c:3363 +msgid "[PATH] change size" +msgstr "[PATH] spremeni velikost" + +#: ../src/develop/masks/path.c:3365 +msgid "[PATH] change feather size" +msgstr "[PATH] spremeni velikost peresa" + +#: ../src/develop/masks/path.c:3367 +msgid "[PATH] change opacity" +msgstr "[PATH] spremeni prosojnost" + +#: ../src/develop/masks/path.c:3379 +#, c-format +msgid "path #%d" +msgstr "pot #%d" + +#: ../src/develop/masks/path.c:3389 +msgid "" +"<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" +"<b>cancel</b>: right-click" +msgstr "" +"<b>dodaj vozel</b>: klik, <b>dodaj ostri vozel</b>:ctrl+klik\n" +"<b>preklic</b>: desni-klik" + +#: ../src/develop/masks/path.c:3392 +msgid "" +"<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" +"<b>finish path</b>: right-click" +msgstr "" +"<b>dodaj vozel</b>: klik, <b>dodaj ostri vozel</b>:ctrl+klik\n" +"<b>dokončaj pot</b>: desni-klik" + +#: ../src/develop/masks/path.c:3395 +msgid "" +"<b>move node</b>: drag, <b>remove node</b>: right-click\n" +"<b>switch smooth/sharp mode</b>: ctrl+click" +msgstr "" +"<b>premakni vozel</b>: poteg, <b>odstrani vozel</b>: desni-klik\n" +"<b>preklop gladki/ostri način</b>: ctrl+klik" + +#: ../src/develop/masks/path.c:3399 +msgid "" +"<b>node curvature</b>: drag\n" +"<b>reset curvature</b>: right-click" +msgstr "" +"<b>ukrivljenost vozla</b>: poteg\n" +"<b>ponovno nastavi ukrivljenost</b>: desni-klik" + +#: ../src/develop/masks/path.c:3403 +msgid "" +"<b>move segment</b>: drag\n" +"<b>add node</b>: ctrl+click" +msgstr "" +"<b>premakni segment</b>: poteg\n" +"<b>dodaj vozel</b>: ctrl+klik" + +#: ../src/develop/pixelpipe_hb.c:486 +msgid "enabled as required" +msgstr "omogočeno kot je zahtevano" + +#: ../src/develop/pixelpipe_hb.c:487 +msgid "" +"history had module disabled but it is required for this type of image.\n" +"likely introduced by applying a preset, style or history copy&paste" +msgstr "" +"zgodovina je imela modul onemogočen, vendar je potreben za to vrsto slike.\n" +"verjetno je bil uveden z uporabo prednastavitve, sloga ali kopiranja in " +"lepljenja v zgodovini" + +#: ../src/develop/pixelpipe_hb.c:494 +msgid "disabled as not appropriate" +msgstr "onemogočeno kot neprimerno" + +#: ../src/develop/pixelpipe_hb.c:495 +msgid "" +"history had module enabled but it is not allowed for this type of image.\n" +"likely introduced by applying a preset, style or history copy&paste" +msgstr "" +"zgodovina je imela modul onemogočen, vendar je potreben za to vrsto slike.\n" +"verjetno je bil uveden z uporabo prednastavitve, sloga ali kopiranja in " +"lepljenja v zgodovini" + +#: ../src/develop/pixelpipe_hb.c:2697 +msgid "" +"OpenCL errors encountered; disabling OpenCL for this session! some possible " +"causes:\n" +" - OpenCL out of resources due to preference settings. please try with " +"defaults,\n" +" - buggy driver for some device. please run darktable with `-d opencl' to " +"identify,\n" +" - some drivers don't support needed number of events,\n" +" - too small headroom settings while using 'use all device memory'." +msgstr "" +"Odkrite napake OpenCL; onemogočanje OpenCL za to sejo! nekaj možnih vzrokov:\n" +" - OpenCL zmanjka virov zaradi nastavitev prednostnih nastavitev. poskusite" +" s privzetimi nastavitvami,\n" +" - gonilnik z napakami za nekatere naprave. zaženite darktable z `-d" +" opencl' za identifikacijo,\n" +" - nekateri gonilniki ne podpirajo potrebnega števila dogodkov,\n" +" - premajhne nastavitve višine med uporabo 'use all device memory'." + +#: ../src/develop/pixelpipe_hb.c:2847 +#, c-format +msgid "" +"module '%s' can't get raster mask from module\n" +"'%s' as that is processed later in the pixel pipe.\n" +"raster mask is ignored." +msgstr "" +"modul `%s 'ne more dobiti rastrske maske iz modula\n" +"`%s', ker se to obdela kasneje v procesu pixelpipe.\n" +"rastrska maska je prezrta." + +#: ../src/develop/tiling.c:819 ../src/develop/tiling.c:1172 +#, c-format +#| msgid "tiling failed for module '%s'. output might be garbled." +msgid "" +"tiling failed for module '%s'. the output most likely will be OK, but you " +"might want to check." +msgstr "" +"polaganje ploščic za modul '%s' ni uspelo. rezultat bo najverjetneje v redu," +" vendar bi morda želeli preveriti." + +#: ../src/dtgtk/culling.c:223 +msgid "you have reached the start of your selection" +msgstr "prišli ste do začetka vaše izbire" + +#: ../src/dtgtk/culling.c:232 +msgid "you have reached the start of your collection" +msgstr "prišli ste do začetka vaše zbirke" + +#: ../src/dtgtk/culling.c:279 +msgid "you have reached the end of your selection" +msgstr "prišli ste do konca vaše izbire" + +#: ../src/dtgtk/culling.c:306 +msgid "you have reached the end of your collection" +msgstr "prišli ste do konca vaše zbirke" + +#: ../src/dtgtk/culling.c:415 +#, c-format +msgid "zooming is limited to %d images" +msgstr "zoomiranje je omejeno na %d slik" + +#: ../src/dtgtk/range.c:214 ../src/dtgtk/range.c:219 +msgid "invalid" +msgstr "neveljavno" + +#: ../src/dtgtk/range.c:327 +#, c-format +msgid "year %s" +msgstr "leto %s" + +#: ../src/dtgtk/range.c:405 +msgid "" +"enter the minimal value\n" +"use 'min' if no bound\n" +"right-click to select from existing values" +msgstr "" +"vnesite minimalno vrednost\n" +"uporabite 'min', če ni omejeno\n" +"desni klik za izbiro iz obstoječih vrednosti" + +#: ../src/dtgtk/range.c:411 +msgid "" +"enter the maximal value\n" +"use 'max' if no bound\n" +"right-click to select from existing values" +msgstr "" +"vnesite maksimalno vrednost\n" +"uporabite 'max', če ni omejeno\n" +"desni klik za izbiro iz obstoječih vrednosti" + +#: ../src/dtgtk/range.c:417 +msgid "" +"enter the value\n" +"right-click to select from existing values" +msgstr "" +"vnesite vrednost\n" +"desni klik za izbiro iz obstoječih vrednosti" + +#: ../src/dtgtk/range.c:422 +msgid "" +"enter the minimal date\n" +"in the form YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)\n" +"use 'min' if no bound\n" +"use '-' prefix for relative date\n" +"right-click to select from calendar or existing values" +msgstr "" +"vnesite minimalni datum\n" +"v obliki YYYY:MM:DD hh:mm:ss.sss (obvezno je samo leto)\n" +"uporabite 'min', če ni omejeno\n" +"uporabite predpono '-' za relativne datume\n" +"desni klik za izbiro iz koledarja ali obstoječih vrednosti" + +#: ../src/dtgtk/range.c:430 +msgid "" +"enter the maximal date\n" +"in the form YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)\n" +"use 'max' if no bound\n" +"'now' keyword is handled\n" +"use '-' prefix for relative date\n" +"right-click to select from calendar or existing values" +msgstr "" +"vnesite maksimalni datum\n" +"v obliki YYYY:MM:DD hh:mm:ss.sss (obvezno je samo leto)\n" +"uporabite 'max', če ni omejeno\n" +"uporabite predpono '-' za relativne datume\n" +"desni klik za izbiro iz koledarja ali obstoječih vrednosti" + +#: ../src/dtgtk/range.c:439 +msgid "" +"enter the date\n" +"in the form YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)\n" +"right-click to select from calendar or existing values" +msgstr "" +"vnesite datum\n" +"v obliki YYYY:MM:DD hh:mm:ss.sss (obvezno je samo leto)\n" +"desni klik za izbiro iz koledarja ali obstoječih vrednosti" + +#: ../src/dtgtk/range.c:461 +msgid "date-time interval to subtract from the max value" +msgstr "interval časa in datuma za odštevanje od maksimalne vrednosti" + +#: ../src/dtgtk/range.c:465 +msgid "date-time interval to add to the min value" +msgstr "interval časa in datuma za dodajanje k minimalni vrednosti" + +#: ../src/dtgtk/range.c:486 +msgid "fixed" +msgstr "fiksno" + +#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1498 +msgid "relative" +msgstr "relativno" + +#: ../src/dtgtk/range.c:577 +msgid "selected" +msgstr "izbrano" + +#: ../src/dtgtk/range.c:624 ../src/dtgtk/range.c:1768 ../src/dtgtk/range.c:1819 +#: ../src/libs/colorpicker.c:53 +msgid "min" +msgstr "min" + +#: ../src/dtgtk/range.c:630 ../src/dtgtk/range.c:1780 ../src/dtgtk/range.c:1831 +#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:309 +msgid "max" +msgstr "max" + +#: ../src/dtgtk/range.c:944 +msgid "date type" +msgstr "vrsta datuma" + +#. the date section +#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1505 +msgid "date" +msgstr "datum" + +#: ../src/dtgtk/range.c:962 ../src/dtgtk/range.c:1028 +msgid "" +"click to select date\n" +"double-click to use the date directly" +msgstr "" +"enostavno kliknite za izbiro datuma\n" +"dvokliknite, da neposredno uporabite datum" + +#: ../src/dtgtk/range.c:973 +msgid "years: " +msgstr "leta: " + +#: ../src/dtgtk/range.c:981 +msgid "months: " +msgstr "meseci: " + +#: ../src/dtgtk/range.c:989 +msgid "days: " +msgstr "dnevi: " + +#. the time section +#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1505 +msgid "time" +msgstr "čas" + +#: ../src/dtgtk/range.c:1049 +msgid "current date: " +msgstr "trenutni datum: " + +#: ../src/dtgtk/range.c:1053 ../src/dtgtk/range.c:1787 +#: ../src/dtgtk/range.c:1838 +msgid "now" +msgstr "sedaj" + +#: ../src/dtgtk/range.c:1055 +msgid "set the value to always match current datetime" +msgstr "nastavite vrednost, ki naj vedno ustreza trenutnemu datumu in času" + +#. apply button +#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:180 +#: ../src/libs/metadata.c:735 ../src/libs/styles.c:901 +msgid "apply" +msgstr "uveljavi" + +#: ../src/dtgtk/range.c:1059 +msgid "set the range bound with this value" +msgstr "nastavite omejitev obsega s to vrednostjo" + +#: ../src/dtgtk/resetlabel.c:59 +msgid "double-click to reset" +msgstr "dvojni klik za ponastavitev" + +#: ../src/dtgtk/thumbnail.c:142 ../src/dtgtk/thumbnail.c:175 +msgid "current" +msgstr "trenutni" + +#: ../src/dtgtk/thumbnail.c:142 ../src/dtgtk/thumbnail.c:151 +msgid "leader" +msgstr "voditelj" + +#: ../src/dtgtk/thumbnail.c:150 +msgid "" +"\n" +"click here to set this image as group leader\n" +msgstr "" +"\n" +"kliknite sem, da določite to sliko za voditeljico skupine\n" + +#. and the number of grouped images +#: ../src/dtgtk/thumbnail.c:187 ../src/libs/filters/grouping.c:144 +#: ../src/libs/filters/grouping.c:169 +msgid "grouped images" +msgstr "grupirane slike" + +#: ../src/dtgtk/thumbnail.c:814 ../src/dtgtk/thumbnail.c:1623 +#: ../src/iop/ashift.c:6138 ../src/iop/ashift.c:6227 ../src/iop/ashift.c:6229 +#: ../src/iop/ashift.c:6231 ../src/libs/navigation.c:111 +#: ../src/libs/navigation.c:193 +msgid "fit" +msgstr "prilagodi" + +#: ../src/dtgtk/thumbtable.c:1139 ../src/views/slideshow.c:422 +msgid "there are no images in this collection" +msgstr "v tej zbirki ni slik" + +#: ../src/dtgtk/thumbtable.c:1146 +msgid "if you have not imported any images yet" +msgstr "niste uvozili še nobene slike" + +#: ../src/dtgtk/thumbtable.c:1150 +msgid "you can do so in the import module" +msgstr "to lahko naredite v modulu uvoza" + +#: ../src/dtgtk/thumbtable.c:1159 +msgid "try to relax the filter settings in the top panel" +msgstr "poskusite omehčati nastavitve filtra v zgornjem panelu" + +#: ../src/dtgtk/thumbtable.c:1170 +msgid "or add images in the collections module in the left panel" +msgstr "ali dodajte slike v modulu zbirk na levi plošči" + +#: ../src/dtgtk/thumbtable.c:1455 +msgid "" +"you have changed the settings related to how thumbnails are generated.\n" +msgstr "" +"spremenili ste nastavitve, povezane z načinom ustvarjanja predoglednih " +"sličic.\n" + +#: ../src/dtgtk/thumbtable.c:1458 +msgid "" +"all cached thumbnails need to be invalidated.\n" +"\n" +msgstr "" +"vse predpomnjene sličice je potrebno razveljaviti.\n" +"\n" + +#: ../src/dtgtk/thumbtable.c:1462 +#, c-format +msgid "" +"cached thumbnails starting from level %d need to be invalidated.\n" +"\n" +msgstr "" +"vse predpomnjene sličice od nivoja %d je potrebno razveljaviti.\n" +"\n" + +#: ../src/dtgtk/thumbtable.c:1467 +#, c-format +msgid "" +"cached thumbnails below level %d need to be invalidated.\n" +"\n" +msgstr "" +"vse predpomnjene sličice pod nivojem %d je potrebno razveljaviti.\n" +"\n" + +#: ../src/dtgtk/thumbtable.c:1472 +#, c-format +msgid "" +"cached thumbnails between level %d and %d need to be invalidated.\n" +"\n" +msgstr "" +"vse predpomnjene sličice med nivojema %d in %d je potrebno razveljaviti.\n" +"\n" + +#: ../src/dtgtk/thumbtable.c:1475 +msgid "do you want to do that now?" +msgstr "ali želite storiti to zdaj?" + +#: ../src/dtgtk/thumbtable.c:1477 +msgid "cached thumbnails invalidation" +msgstr "razveljavitev predpomnjenih predoglednih sličic" + +#. setup history key accelerators +#: ../src/dtgtk/thumbtable.c:2738 +msgid "copy history" +msgstr "kopiraj zgodovino" + +#: ../src/dtgtk/thumbtable.c:2740 +msgid "copy history parts" +msgstr "kopiraj dele zgodovine" + +#: ../src/dtgtk/thumbtable.c:2742 +msgid "paste history" +msgstr "prilepi zgodovino" + +#: ../src/dtgtk/thumbtable.c:2744 +msgid "paste history parts" +msgstr "prilepi dele zgodovine" + +#: ../src/dtgtk/thumbtable.c:2746 ../src/libs/copy_history.c:394 +msgid "discard history" +msgstr "zavrzi zgodovino" + +#: ../src/dtgtk/thumbtable.c:2749 +msgid "duplicate image" +msgstr "podvoji sliko" + +#: ../src/dtgtk/thumbtable.c:2751 +msgid "duplicate image virgin" +msgstr "podvoji izvorno sliko" + +#: ../src/dtgtk/thumbtable.c:2761 ../src/libs/select.c:148 +msgid "select film roll" +msgstr "izberi zvitek filma" + +#: ../src/dtgtk/thumbtable.c:2763 ../src/libs/select.c:152 +msgid "select untouched" +msgstr "izberi nedotaknjene" + +#: ../src/generate-cache/main.c:50 +#, c-format +msgid "creating cache directories\n" +msgstr "ustvarjam mape za medpomnilnik\n" + +#: ../src/generate-cache/main.c:56 +#, c-format +msgid "creating cache directory '%s'\n" +msgstr "ustvarjam mape za medpomnilnik '%s'\n" + +#: ../src/generate-cache/main.c:59 +#, c-format +msgid "could not create directory '%s'!\n" +msgstr "nisem mogel ustvariti mape '%s'!\n" + +#: ../src/generate-cache/main.c:83 +#, c-format +msgid "warning: no images are matching the requested image id range\n" +msgstr "opozorilo: nobena slika ne ustreza zahtevanemu intervalu id slik\n" + +#: ../src/generate-cache/main.c:86 +#, c-format +msgid "warning: did you want to swap these boundaries?\n" +msgstr "opozorilo: ali želite zamenjati te mejne vrednosti?\n" + +#: ../src/generate-cache/main.c:227 +#, c-format +msgid "" +"warning: disk backend for thumbnail cache is disabled (cache_disk_backend)\n" +"if you want to pre-generate thumbnails and for darktable to use them, you " +"need to enable disk backend for thumbnail cache\n" +"no thumbnails to be generated, done.\n" +msgstr "" +"opozorilo: diskovno zaledje za predogledne sličice je onemogočeno " +"(cache_disk_backend)\n" +"če želite vnaprej pripraviti predogledne sličice za rabo programu darktable, " +"morate omogočiti diskovno zaledje za predogledne sličice\n" +"nobenih predoglednih sličic ne bo ustvarjenih, končano.\n" + +#: ../src/generate-cache/main.c:238 +#, c-format +msgid "" +"warning: disk backend for full preview cache is disabled " +"(cache_disk_backend_full)\n" +"if you want to pre-generate full previews and for darktable to use them, you " +"need to enable disk backend for full preview cache\n" +"no full previews to be generated, done.\n" +msgstr "" +"opozorilo: diskovno zaledje za medpomnilnik za polni predogled sličic je " +"onemogočeno (cache_disk_backend_full)\n" +"če želite vnaprej pripraviti predogledne sličice za rabo programu darktable, " +"morate omogočiti predpomnenje diskovnega zaledja za predogledne sličice\n" +"nobenih predoglednih sličic ni pripravljenih, končano.\n" + +#: ../src/generate-cache/main.c:248 +#, c-format +msgid "error: ensure that min_mip <= max_mip\n" +msgstr "napaka: zagotovite da bo min_mip <= max_mip\n" + +#: ../src/generate-cache/main.c:253 +#, c-format +msgid "creating complete lighttable thumbnail cache\n" +msgstr "" +"ustvarjam vmesni pomnilnik popolno osvetljeno podlago predoglednih sličic\n" + +#: ../src/gui/about.c:34 +#, c-format +msgid "copyright (c) the authors 2009-%s" +msgstr "copyright (c) avtorji 2009-%s" + +#: ../src/gui/about.c:39 +msgid "organize and develop images from digital cameras" +msgstr "organizira in razvija slike digitalnih kamer" + +#: ../src/gui/about.c:51 +msgid "all those of you that made previous releases possible" +msgstr "vsi, ki so omogočili prejšnje izdaje" + +#: ../src/gui/about.c:56 +msgid "and..." +msgstr "in..." + +#: ../src/gui/about.c:59 +msgid "translator-credits" +msgstr "Matjaž Jeran" + +#: ../src/gui/accelerators.c:72 +#| msgid "active view" +msgid "in active view" +msgstr "v aktivnem pogledu" + +#: ../src/gui/accelerators.c:73 +#| msgid "other views" +msgid "in other views" +msgstr "v ostalih pogledih" + +#: ../src/gui/accelerators.c:74 +msgid "fallbacks" +msgstr "rešitve v sili" + +#: ../src/gui/accelerators.c:75 +#| msgid "basic adjustments" +msgid "speed adjustments" +msgstr "prilagoditve hitrosti" + +#: ../src/gui/accelerators.c:76 +#| msgid "display-referred default" +msgid "disabled defaults" +msgstr "onemogočene privzete vrednosti" + +#: ../src/gui/accelerators.c:96 ../src/views/view.c:1361 +msgid "scroll" +msgstr "drsanje" + +#: ../src/gui/accelerators.c:97 +msgid "pan" +msgstr "premik" + +#: ../src/gui/accelerators.c:98 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6230 ../src/iop/clipping.c:1955 +#: ../src/iop/clipping.c:2147 ../src/iop/clipping.c:2163 +#: ../src/views/darkroom.c:2522 ../src/views/lighttable.c:1250 +msgid "horizontal" +msgstr "vodoravno" + +#: ../src/gui/accelerators.c:99 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6228 ../src/iop/clipping.c:1954 +#: ../src/iop/clipping.c:2148 ../src/iop/clipping.c:2162 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:1254 +msgid "vertical" +msgstr "navpično" + +#: ../src/gui/accelerators.c:100 +msgid "diagonal" +msgstr "diagonala" + +#: ../src/gui/accelerators.c:102 +msgid "leftright" +msgstr "levodesno" + +#: ../src/gui/accelerators.c:103 +msgid "updown" +msgstr "gordol" + +#: ../src/gui/accelerators.c:104 +msgid "pgupdown" +msgstr "strangordol" + +#: ../src/gui/accelerators.c:112 ../src/views/view.c:1343 +msgid "shift" +msgstr "premik" + +#: ../src/gui/accelerators.c:113 ../src/views/view.c:1345 +msgid "ctrl" +msgstr "krmilka" + +#: ../src/gui/accelerators.c:114 ../src/views/view.c:1347 +msgid "alt" +msgstr "alt" + +#: ../src/gui/accelerators.c:115 +msgid "cmd" +msgstr "cmd" + +#: ../src/gui/accelerators.c:116 +msgid "altgr" +msgstr "altgr" + +#: ../src/gui/accelerators.c:127 ../src/gui/accelerators.c:174 +#: ../src/libs/tagging.c:1804 +msgid "edit" +msgstr "uredi" + +#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 +msgid "up" +msgstr "gor" + +#: ../src/gui/accelerators.c:129 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 +msgid "down" +msgstr "dol" + +#: ../src/gui/accelerators.c:133 +msgid "set" +msgstr "nastavi" + +#: ../src/gui/accelerators.c:137 +msgid "popup" +msgstr "pojavni meni" + +#: ../src/gui/accelerators.c:138 ../src/gui/accelerators.c:171 +#: ../src/gui/gtk.c:3100 ../src/views/lighttable.c:760 +msgid "next" +msgstr "naslednja" + +#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:170 +#: ../src/gui/gtk.c:3101 ../src/views/lighttable.c:761 +msgid "previous" +msgstr "prejšnja" + +#: ../src/gui/accelerators.c:141 ../src/gui/accelerators.c:1598 +msgid "last" +msgstr "zadnji" + +#: ../src/gui/accelerators.c:142 ../src/gui/accelerators.c:1597 +msgid "first" +msgstr "prvi" + +#: ../src/gui/accelerators.c:146 ../src/gui/accelerators.c:159 +#: ../src/gui/accelerators.c:356 ../src/libs/filters/rating_range.c:295 +#: ../src/libs/tagging.c:3150 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2258 ../src/views/darkroom.c:2494 +msgid "toggle" +msgstr "preklopi" + +#: ../src/gui/accelerators.c:149 +msgid "ctrl-toggle" +msgstr "krmilka-toggle" + +#: ../src/gui/accelerators.c:150 +msgid "ctrl-on" +msgstr "ctrl-on" + +#: ../src/gui/accelerators.c:151 +msgid "right-toggle" +msgstr "desno-preklopi" + +#: ../src/gui/accelerators.c:152 +msgid "right-on" +msgstr "desno" + +#: ../src/gui/accelerators.c:163 ../src/gui/gtk.c:3099 +msgid "activate" +msgstr "aktiviraj" + +#: ../src/gui/accelerators.c:164 +msgid "ctrl-activate" +msgstr "krmilka-aktiviraj" + +#: ../src/gui/accelerators.c:165 +msgid "right-activate" +msgstr "desno-aktiviraj" + +#: ../src/gui/accelerators.c:172 +msgid "store" +msgstr "shramba" + +#: ../src/gui/accelerators.c:175 ../src/gui/styles_dialog.c:651 +msgid "update" +msgstr "osveži" + +#: ../src/gui/accelerators.c:176 ../src/libs/tools/global_toolbox.c:60 +#: ../src/libs/tools/global_toolbox.c:510 +msgid "preferences" +msgstr "preference" + +#: ../src/gui/accelerators.c:181 +msgid "apply on new instance" +msgstr "uveljavi na novem pojavku" + +#: ../src/gui/accelerators.c:186 +msgid "start" +msgstr "zagon" + +#: ../src/gui/accelerators.c:187 +msgid "end" +msgstr "konec" + +#: ../src/gui/accelerators.c:374 +msgid "entry" +msgstr "vnos" + +#: ../src/gui/accelerators.c:450 +msgid "combo effect not found" +msgstr "ni najdenega učinka sestave" + +#: ../src/gui/accelerators.c:627 +msgid "(keypad)" +msgstr "(tipkovnica)" + +#: ../src/gui/accelerators.c:636 +msgid "tablet button" +msgstr "gumb tablice" + +#: ../src/gui/accelerators.c:645 +msgid "unknown driver" +msgstr "neznani gonilnik" + +#: ../src/gui/accelerators.c:718 +msgid "long" +msgstr "dolgo" + +#: ../src/gui/accelerators.c:719 +msgid "double-press" +msgstr "dvojni pritisk" + +#: ../src/gui/accelerators.c:720 +msgid "triple-press" +msgstr "trojni pritisk" + +#: ../src/gui/accelerators.c:721 +msgid "press" +msgstr "stisk" + +#: ../src/gui/accelerators.c:725 +msgctxt "accel" +msgid "left" +msgstr "levo" + +#: ../src/gui/accelerators.c:726 +msgctxt "accel" +msgid "right" +msgstr "desno" + +#: ../src/gui/accelerators.c:727 +msgctxt "accel" +msgid "middle" +msgstr "srednje" + +#: ../src/gui/accelerators.c:728 +msgctxt "accel" +msgid "long" +msgstr "dolgo" + +#: ../src/gui/accelerators.c:729 +msgctxt "accel" +msgid "double-click" +msgstr "dvoklik" + +#: ../src/gui/accelerators.c:730 +msgctxt "accel" +msgid "triple-click" +msgstr "troklik" + +#: ../src/gui/accelerators.c:731 +msgid "click" +msgstr "klik" + +#: ../src/gui/accelerators.c:759 +msgid "first instance" +msgstr "prvi pojavek" + +#: ../src/gui/accelerators.c:761 +msgid "last instance" +msgstr "zadnji pojavek" + +#: ../src/gui/accelerators.c:763 +msgid "relative instance" +msgstr "relativni pojavek" + +#: ../src/gui/accelerators.c:780 ../src/gui/accelerators.c:2864 +#: ../src/gui/accelerators.c:3811 +msgid "speed" +msgstr "hitrost" + +#: ../src/gui/accelerators.c:923 +#, c-format +msgid "" +"Lua script command copied to clipboard:\n" +"\n" +"<tt>%s</tt>" +msgstr "" +"Lua script ukazi prekopirani na odložišče:\n" +"\n" +"<tt>%s</tt>" + +#: ../src/gui/accelerators.c:1025 ../src/gui/accelerators.c:1044 +msgid "start typing for incremental search" +msgstr "začnite tipkati za postopno iskanje" + +#: ../src/gui/accelerators.c:1028 +msgid "" +"\n" +"press Delete to delete selected shortcut" +msgstr "" +"\n" +"pritisnite Delete za brisanje izbranih bližnjic" + +#: ../src/gui/accelerators.c:1030 +#| msgid "" +#| "\n" +#| "press Delete to delete selected shortcut" +msgid "" +"\n" +"press Delete to disable selected default shortcut" +msgstr "" +"\n" +"pritisnite Delete za brisanje izbrane privzete bližnjice" + +#: ../src/gui/accelerators.c:1031 +#| msgid "" +#| "\n" +#| "press Delete to delete selected shortcut" +msgid "" +"\n" +"press Delete to restore selected default shortcut" +msgstr "" +"\n" +"pritisnite Delete za obnovo izbranih privzetih bližnjic" + +#: ../src/gui/accelerators.c:1033 +msgid "" +"\n" +"double-click to add new shortcut" +msgstr "" +"\n" +"dvojni klik za dodajanje nove bližnjice" + +#: ../src/gui/accelerators.c:1045 +msgid "click to filter shortcuts list" +msgstr "kliknite za filtriranje seznama bližnjic" + +#: ../src/gui/accelerators.c:1047 +msgid "" +"\n" +"right click to show action of selected shortcut" +msgstr "" +"\n" +"desni klik za prikaz dejavnosti izbrane bližnjice" + +#: ../src/gui/accelerators.c:1050 +msgid "" +"\n" +"double-click to define new shortcut" +msgstr "" +"\n" +"dvojni klik za določanje nove bližnjice" + +#: ../src/gui/accelerators.c:1081 +msgid "shift+alt+scroll to change height" +msgstr "dvigalka+krmilka+drsanje za spreminjanje višine" + +#: ../src/gui/accelerators.c:1101 +msgid "" +"press keys with mouse click and scroll or move combinations to create a " +"shortcut" +msgstr "" +"pritisnite tipke s klikom miške in pomaknite ali preselite kombinacije da bi " +"ustvarili bližnjico" + +#: ../src/gui/accelerators.c:1102 +msgid "click to open shortcut configuration" +msgstr "kliknite da bi odprli nastavitev bližnjice" + +#: ../src/gui/accelerators.c:1103 +msgid "ctrl+click to add to quick access panel\n" +msgstr "krmilka+klik za dodajanje na ploščo za hitri dostop\n" + +#: ../src/gui/accelerators.c:1104 +msgid "ctrl+click to remove from quick access panel\n" +msgstr "krmilka+klik za odstranjevanje iz plošče za hitri dostop\n" + +#: ../src/gui/accelerators.c:1105 +msgid "scroll to change default speed" +msgstr "drsenje za spreminjanje privzete hitrosti" + +#: ../src/gui/accelerators.c:1106 +msgid "right click to exit mapping mode" +msgstr "desno klik za izhod prenosnega načina" + +#: ../src/gui/accelerators.c:1119 +#, c-format +msgid "" +"%sright-click to type a specific value between <b>%s</b> and <b>%s</b>\n" +"or hold ctrl+shift while dragging to ignore soft limits." +msgstr "" +"%sdesni klik za vnos specifičnih vrednosti med <b>%s</b> in <b>%s</b>\n" +"ali držite kontrolko+dvigalko med potegom, da prezrete mehke omejitve." + +#: ../src/gui/accelerators.c:1183 +msgid "ctrl+v" +msgstr "ctrl+v" + +#: ../src/gui/accelerators.c:1183 +msgid "right long click" +msgstr "desni dolgi klik" + +#: ../src/gui/accelerators.c:1183 +msgid "to copy Lua command" +msgstr "za kopiranje ukaza Lua" + +#: ../src/gui/accelerators.c:1451 +msgid "shortcut for move exists with single effect" +msgstr "bližnjica za premikanje obstaja z enojnim učinkom" + +#: ../src/gui/accelerators.c:1452 +#, c-format +#| msgid "%s assigned to %s" +msgid "" +"%s\n" +"\n" +"(assign %s to %s)" +msgstr "" +"%s\n" +"\n" +"(dodeli %s za %s)" + +#: ../src/gui/accelerators.c:1453 +msgid "create separate shortcuts for up and down move?" +msgstr "naj ustvarim ločene bližnjice za gibanje gor ali dol?" + +#: ../src/gui/accelerators.c:1479 +#, c-format +msgid "%s, speed reset" +msgstr "%s, ponovna nastavitev hitrosti" + +#: ../src/gui/accelerators.c:1497 +msgid "shortcut exists with different settings" +msgstr "obstaja bližnjica z različnimi nastavitvami" + +#: ../src/gui/accelerators.c:1498 +msgid "reset the settings of the shortcut?" +msgstr "na ponovno nastavim nastavitve bližnjice?" + +#: ../src/gui/accelerators.c:1507 +msgid "shortcut already exists" +msgstr "bližnjica že obstaja" + +#: ../src/gui/accelerators.c:1509 +#| msgid "reset the settings of the shortcut?" +msgid "disable this default shortcut?" +msgstr "naj onemogočim to privzeto bližnjico?" + +#: ../src/gui/accelerators.c:1510 +msgid "remove the shortcut?" +msgstr "naj odstranim bližnjico?" + +#: ../src/gui/accelerators.c:1550 +msgid "clashing shortcuts exist" +msgstr "obstajajo bližnjice v konfliktu" + +#: ../src/gui/accelerators.c:1551 +msgid "remove these existing shortcuts?" +msgstr "naj odstranim te obstoječe bližnjice?" + +#. or 3, but change char relative[] = "-2" to "-1" +#. NUM_INSTANCES +#: ../src/gui/accelerators.c:1596 +msgid "preferred" +msgstr "priporočena" + +#: ../src/gui/accelerators.c:1599 +msgid "second" +msgstr "drugi" + +#: ../src/gui/accelerators.c:1600 +msgid "last but one" +msgstr "predzadnji" + +#: ../src/gui/accelerators.c:1761 ../src/gui/accelerators.c:1826 +msgid "(unchanged)" +msgstr "(nespremenjeno)" + +#: ../src/gui/accelerators.c:1941 +msgid "" +"define a shortcut by pressing a key, optionally combined with modifier keys " +"(ctrl/shift/alt)\n" +"a key can be double or triple pressed, with a long last press\n" +"while the key is held, a combination of mouse buttons can be (double/triple/" +"long) clicked\n" +"still holding the key (and modifiers and/or buttons) a scroll or mouse move " +"can be added\n" +"connected devices can send keys or moves using their physical controllers\n" +"\n" +"right-click to cancel" +msgstr "" +"določite bližnjico s pritiskom na tipko, lahko tudi v kombinaciji z " +"modifikacijskimi tipkami (krmilka/dvigalka/alt)\n" +"tipko lahko pritisnete dvakrat ali trikrat, z zadnjim dolgim pritiskom\n" +"medtem ko držite tipko, lahko (dvakrat/trikrat/dolgo) kliknete kombinacijo " +"miškinih gumbov\n" +"še vedno držite tipko (in modifikatorje in/ali gumbe) lahko dodate pomik ali " +"premikanje miške\n" +"povezane naprave lahko pošiljajo ključe ali premike s svojimi fizičnimi " +"krmilniki\n" +"\n" +"z desno tipko miške kliknite za preklic" + +#: ../src/gui/accelerators.c:2014 +msgid "removing shortcut" +msgstr "odstranjujem bližnjico" + +#: ../src/gui/accelerators.c:2016 +#| msgid "remove the selected shortcut?" +msgid "disable the selected default shortcut?" +msgstr "naj onemogočim izbrano privzeto bližnjico?" + +#: ../src/gui/accelerators.c:2017 +#| msgid "remove the selected shortcut?" +msgid "restore the selected default shortcut?" +msgstr "naj obnovim izbrano privzeto bližnjico?" + +#: ../src/gui/accelerators.c:2018 +msgid "remove the selected shortcut?" +msgstr "naj odstranim izbrane bližnjice?" + +#: ../src/gui/accelerators.c:2107 +msgid "command" +msgstr "ukaz" + +#: ../src/gui/accelerators.c:2108 +msgid "preset" +msgstr "začetna nastavitev" + +#: ../src/gui/accelerators.c:2491 +msgid "restore shortcuts" +msgstr "obnovi bližnjice" + +#: ../src/gui/accelerators.c:2494 +msgid "_defaults" +msgstr "_privzeto" + +#: ../src/gui/accelerators.c:2495 +msgid "_startup" +msgstr "_ob zagonu" + +#: ../src/gui/accelerators.c:2496 +msgid "_edits" +msgstr "_urejanja" + +#: ../src/gui/accelerators.c:2503 +msgid "" +"restore shortcuts from one of these states:\n" +" - default\n" +" - as at startup\n" +" - as when opening this dialog\n" +msgstr "" +"obnovi bližnjice iz enega od naslednjih stanj:\n" +"- privzeto\n" +"- kot ob zagonu\n" +"- kot ob odprtju tega dialoga\n" + +#: ../src/gui/accelerators.c:2510 +msgid "" +"clear all newer shortcuts\n" +"(instead of just restoring changed ones)" +msgstr "" +"očisti vse novejše bližnjice\n" +"(namesto samo obnove spremenjenih)" + +#: ../src/gui/accelerators.c:2567 ../src/gui/preferences.c:905 +#: ../src/libs/tools/global_toolbox.c:494 +#: ../src/libs/tools/global_toolbox.c:652 +msgid "shortcuts" +msgstr "bližnjice" + +#: ../src/gui/accelerators.c:2577 +msgid "export shortcuts" +msgstr "izvozi bližnjice" + +#: ../src/gui/accelerators.c:2586 +msgid "" +"export all shortcuts to a file\n" +"or just for one selected device\n" +msgstr "" +"izvozi vse bližnjice na datoteko\n" +"ali samo za eno izbrano napravo\n" + +#: ../src/gui/accelerators.c:2593 ../src/gui/accelerators.c:2675 +msgid "keyboard" +msgstr "tipkovnica" + +#: ../src/gui/accelerators.c:2605 +msgid "device id" +msgstr "id naprave" + +#: ../src/gui/accelerators.c:2631 +msgid "select file to export" +msgstr "izberi datoteko za izvoz" + +#: ../src/gui/accelerators.c:2632 ../src/libs/tagging.c:2556 +msgid "_export" +msgstr "_izvoz" + +#: ../src/gui/accelerators.c:2659 +msgid "import shortcuts" +msgstr "uvozi bližnjice" + +#: ../src/gui/accelerators.c:2668 +msgid "" +"import all shortcuts from a file\n" +"or just for one selected device\n" +msgstr "" +"uvozi vse bližnjice iz datoteke\n" +"ali samo za eno izbrano napravo\n" + +#: ../src/gui/accelerators.c:2687 +msgid "id in file" +msgstr "id v datoteki" + +#: ../src/gui/accelerators.c:2693 +msgid "id when loaded" +msgstr "id ko je naložena" + +#: ../src/gui/accelerators.c:2697 +msgid "clear device first" +msgstr "najprej očisti napravo" + +#: ../src/gui/accelerators.c:2722 +msgid "select file to import" +msgstr "izberi datoteko za uvoz" + +#: ../src/gui/accelerators.c:2723 ../src/libs/tagging.c:2520 +msgid "_import" +msgstr "_uvoz" + +#: ../src/gui/accelerators.c:2815 +msgid "search shortcuts list" +msgstr "seznam bližnjic iskanja" + +#: ../src/gui/accelerators.c:2817 +msgid "" +"incrementally search the list of shortcuts\n" +"press up or down keys to cycle through matches" +msgstr "" +"postopno išči po seznamu bližnjic\n" +"pritisnite tipki gor ali dol, da se ciklično pomikate po zadetkih" + +#: ../src/gui/accelerators.c:2837 ../src/views/view.c:1554 +msgid "shortcut" +msgstr "bližnjica" + +#: ../src/gui/accelerators.c:2840 ../src/gui/accelerators.c:2942 +#: ../src/views/view.c:1556 +msgid "action" +msgstr "akcija" + +#: ../src/gui/accelerators.c:2850 +msgid "element" +msgstr "element" + +#: ../src/gui/accelerators.c:2858 +msgid "effect" +msgstr "učinek" + +#: ../src/gui/accelerators.c:2918 +msgid "search actions list" +msgstr "seznam aktivnosti" + +#: ../src/gui/accelerators.c:2920 +msgid "" +"incrementally search the list of actions\n" +"press up or down keys to cycle through matches" +msgstr "" +"postopno išči po seznamu akcij\n" +"pritisnite tipki gor ali dol, da se ciklično pomikate po zadetkih" + +#: ../src/gui/accelerators.c:2950 ../src/gui/guides.c:719 +#: ../src/libs/export_metadata.c:179 +msgid "type" +msgstr "tip" + +#: ../src/gui/accelerators.c:2988 +msgid "enable fallbacks" +msgstr "omogoči rešitve v sili" + +#: ../src/gui/accelerators.c:2989 +msgid "" +"enables default meanings for additional buttons, modifiers or moves\n" +"when used in combination with a base shortcut" +msgstr "" +"omogoči privzete pomene za dodatne gumbe, modifikatorje ali premike\n" +"kadar se uporabljajo v kombinaciji z osnovno bližnjico" + +#: ../src/gui/accelerators.c:2997 +msgid "open help page for shortcuts" +msgstr "odpri stran pomoči za bližnjice" + +#: ../src/gui/accelerators.c:3002 +msgid "restore..." +msgstr "obnovi..." + +#: ../src/gui/accelerators.c:3003 +msgid "restore default shortcuts or previous state" +msgstr "obnovi privzete bližnjice ali prejšnje stanje" + +#: ../src/gui/accelerators.c:3007 ../src/libs/styles.c:887 +#: ../src/libs/tagging.c:3282 +msgid "import..." +msgstr "uvozi..." + +#: ../src/gui/accelerators.c:3008 +msgid "fully or partially import shortcuts from file" +msgstr "v celoti ali delno uvozi bližnjice iz datoteke" + +#: ../src/gui/accelerators.c:3012 ../src/libs/styles.c:894 +#: ../src/libs/tagging.c:3285 +msgid "export..." +msgstr "izvoz..." + +#: ../src/gui/accelerators.c:3013 +msgid "fully or partially export shortcuts to file" +msgstr "v celoti ali delno izvozi bližnjice v datoteko" + +#: ../src/gui/accelerators.c:3021 +msgid "" +"the recommended way to assign shortcuts to visual elements is the <b>visual " +"shortcut mapping</b> mode.\n" +"this is switched on by toggling the <i>\"keyboard\"</i> button next to " +"preferences in the top panel. in this mode, clicking on a widget or area " +"will open this dialog with the appropriate selection for advanced " +"configuration.\n" +"\n" +"multiple shortcuts can be assigned to the same action. this is especially " +"useful if it has multiple <i>elements</i>, like the module buttons or the " +"colorpickers attached to sliders. however, with <i>fallbacks</i> enabled one " +"can use the same simple shortcuts and change their <i>element</i> or " +"<i>effect</i> by adding mouse clicks.\n" +"\n" +"<i>click <b> three times </b> to dismiss this notice permanently</i>" +msgstr "" +"priporočeni način za dodelitev bližnjic vizualnim elementom je <b>vizual" +" način preslikave bližnjic</b>.\n" +"to vklopite tako, da preklopite gumb <i>\"tipkovnica\"</i> poleg" +"nastavitve na zgornji plošči. v tem načinu s klikom na gradnik ali območje" +"bo odprl to pogovorno okno z ustrezno izbiro za napredno konfiguracijo.\n" +"\n" +"v istemu dejanju je mogoče dodeliti več bližnjic. to je še posebej" +"uporabno, če ima več <i>elementov</i>, kot so gumbi modula ali" +"izbirniki barv, pritrjeni na drsnike. vendar z omogočenimi <i>nadomestnimi</i>" +"lahko uporablja iste preproste bližnjice in spreminja njihov <i>element</i>" +" oz." +"<i>učinek</i> z dodajanjem klikov miške.\n" +"\n" +"<i>kliknite <b> trikrat </b>, da trajno opustite to obvestilo</i>" + +#: ../src/gui/accelerators.c:3452 +msgid "reinitialising input devices" +msgstr "ponovno nastavi vhodne naprave" + +#: ../src/gui/accelerators.c:3594 +#| msgid "move" +msgid "down move" +msgstr "prenesi dol" + +#: ../src/gui/accelerators.c:3594 +msgid "flip top/bottom first/last" +msgstr "obrni zgoraj/spodaj prvo/zadnje" + +#: ../src/gui/accelerators.c:3679 +msgid "fallback to move" +msgstr "rešitev v sili za prenos" + +#: ../src/gui/accelerators.c:3921 +#, c-format +msgid "%s not assigned" +msgstr "%s ni dodeljeno" + +#: ../src/gui/accelerators.c:4102 +#, c-format +msgid "%s assigned to %s" +msgstr "%s dodeljen za %s" + +#: ../src/gui/accelerators.c:4321 +msgid "short key press resets stuck keys" +msgstr "kratek pritisk na tipko ponastavi zataknjene tipke" + +#: ../src/gui/gtk.c:175 ../src/views/darkroom.c:3861 +msgid "darktable - darkroom preview" +msgstr "darktable - predogled temnice" + +#: ../src/gui/gtk.c:186 +msgid "tooltips off" +msgstr "izklopi orodne namige" + +#: ../src/gui/gtk.c:188 +msgid "tooltips on" +msgstr "vklopi orodne namige" + +#: ../src/gui/gtk.c:193 +msgid "" +"tooltip visibility can only be toggled if compositing is enabled in your " +"window manager" +msgstr "" +"vidnost orodnih namigov je mogoče preklapljati le, če je v vašem" +" upravljalniku oken omogočeno sestavljanje vsebin" + +#: ../src/gui/gtk.c:809 +msgid "closing darktable..." +msgstr "zapiram darktable..." + +#: ../src/gui/gtk.c:1032 +#| msgid "help url opened in web browser" +msgid "URL opened in web browser" +msgstr "URL odprt v spletnem brskalniku" + +#: ../src/gui/gtk.c:1036 +#| msgid "error while opening help url in web browser" +msgid "error while opening URL in web browser" +msgstr "napaka pri odpiranju URL v spletnem brskalniku" + +#. View menu +#: ../src/gui/gtk.c:1104 +#| msgctxt "accel" +#| msgid "views" +msgctxt "menu" +msgid "Views" +msgstr "Pogledi" + +#: ../src/gui/gtk.c:1108 +#| msgid "lighttable" +msgctxt "menu" +msgid "lighttable" +msgstr "osvetljena podlaga" + +#: ../src/gui/gtk.c:1109 +#| msgid "darkroom" +msgctxt "menu" +msgid "darkroom" +msgstr "temnica" + +#: ../src/gui/gtk.c:1115 +#| msgid "slideshow" +msgctxt "menu" +msgid "slideshow" +msgstr "predstavitev" + +#: ../src/gui/gtk.c:1117 +#| msgid "map" +msgctxt "menu" +msgid "map" +msgstr "zemljevid" + +#: ../src/gui/gtk.c:1119 +#| msgid "print" +msgctxt "menu" +msgid "print" +msgstr "tisk" + +#: ../src/gui/gtk.c:1121 +#| msgid "tethering" +msgctxt "menu" +msgid "tethering" +msgstr "odd. upravljanje" + +#. Help menu +#: ../src/gui/gtk.c:1127 +msgctxt "menu" +msgid "Help" +msgstr "Pomoč" + +#: ../src/gui/gtk.c:1131 +#| msgid "darktable" +msgctxt "menu" +msgid "darktable Manual" +msgstr "darktable Priročnik" + +#: ../src/gui/gtk.c:1138 +#| msgid "darktable" +msgctxt "menu" +msgid "darktable Homepage" +msgstr "darktable Domača stran" + +#: ../src/gui/gtk.c:1162 +#| msgid "preferences" +msgctxt "menu" +msgid "Preferences" +msgstr "Preference" + +#: ../src/gui/gtk.c:1232 +msgid "panels" +msgstr "plošče" + +#: ../src/gui/gtk.c:1264 +msgid "switch views" +msgstr "preklopi poglede" + +#: ../src/gui/gtk.c:1265 ../src/views/tethering.c:102 +msgid "tethering" +msgstr "odd. upravljanje" + +#: ../src/gui/gtk.c:1268 ../src/views/map.c:197 +msgid "map" +msgstr "zemljevid" + +#: ../src/gui/gtk.c:1269 ../src/views/slideshow.c:390 +msgid "slideshow" +msgstr "projekcija" + +#. Print button +#: ../src/gui/gtk.c:1270 ../src/libs/print_settings.c:2885 +msgid "print" +msgstr "tiskaj" + +#. register ctrl-q to quit: +#: ../src/gui/gtk.c:1276 +msgid "quit" +msgstr "zapusti" + +#. Full-screen accelerator (no ESC handler here to enable quit-slideshow using ESC) +#: ../src/gui/gtk.c:1279 +msgid "fullscreen" +msgstr "celotni zaslon" + +#: ../src/gui/gtk.c:1283 +msgid "collapsing controls" +msgstr "strnjevanje kontrol" + +#. specific top/bottom toggles +#: ../src/gui/gtk.c:1285 +msgid "header" +msgstr "glava" + +#: ../src/gui/gtk.c:1286 +msgid "filmstrip and timeline" +msgstr "kos filma in časovni trak" + +#: ../src/gui/gtk.c:1287 +msgid "top toolbar" +msgstr "vrhnja orodna letvica" + +#: ../src/gui/gtk.c:1288 +msgid "bottom toolbar" +msgstr "spodnja orodna letvica" + +#: ../src/gui/gtk.c:1289 +msgid "all top" +msgstr "vse na vrhu" + +#: ../src/gui/gtk.c:1290 +msgid "all bottom" +msgstr "vse na dnu" + +#: ../src/gui/gtk.c:1292 +msgid "toggle tooltip visibility" +msgstr "preklapljaj vidnost orodnih namigov" + +#: ../src/gui/gtk.c:1293 +msgid "reinitialise input devices" +msgstr "ponovno nastavi vhodne naprave" + +#: ../src/gui/gtk.c:1331 +msgid "toggle focus-peaking mode" +msgstr "preklopi način vrhnjega osredotočanja" + +#. toggle focus peaking everywhere +#: ../src/gui/gtk.c:1336 +msgid "toggle focus peaking" +msgstr "preklopi vrhnje osredotočanje" + +#: ../src/gui/gtk.c:1654 ../src/gui/gtk.c:3189 ../src/gui/gtk.c:3194 +#: ../src/gui/gtk.c:3199 ../src/gui/gtk.c:3204 +msgid "tabs" +msgstr "zavihki" + +#. ask the user if darktable.org may be accessed +#: ../src/gui/gtk.c:2707 +msgid "access the online user manual?" +msgstr "sprotni dostop do uporabniškega priročnika?" + +#: ../src/gui/gtk.c:2708 +#, c-format +msgid "do you want to access `%s'?" +msgstr "ali res želite dostopiti do '%s'?" + +#: ../src/gui/gtk.c:2778 +msgid "there is no help available for this element" +msgstr "ni na voljo pomoči za ta element" + +#. font name can only use period as decimal separator +#. but printf format strings use comma for some locales, so replace comma with period +#: ../src/gui/gtk.c:2798 ../src/libs/metadata_view.c:762 +#, c-format +msgid "%.1f" +msgstr "%.1f" + +#: ../src/gui/gtk.c:2800 +#, c-format +msgid "Sans %s" +msgstr "Sans %s" + +#: ../src/gui/gtk.c:3094 +msgid "does not contain pages" +msgstr "ne vsebuje strani" + +#: ../src/gui/gtk.c:3313 +#, c-format +msgid "never show more than %d lines" +msgstr "nikoli ne prikazuj več več kot %d vrstic" + +#: ../src/gui/gtkentry.c:173 +msgid "$(ROLL.NAME) - roll of the input image" +msgstr "$(ROLL.NAME) - zvitek vhodnih slik" + +#: ../src/gui/gtkentry.c:174 +msgid "$(FILE.FOLDER) - folder containing the input image" +msgstr "$(FILE.FOLDER) - mapa, ki vsebuje vhodno sliko" + +#: ../src/gui/gtkentry.c:175 +msgid "$(FILE.NAME) - basename of the input image" +msgstr "$(FILE.NAME) - osnovno ime za vhodne slike" + +#: ../src/gui/gtkentry.c:176 +msgid "$(FILE.EXTENSION) - extension of the input image" +msgstr "$(FILE.EXTENSION) - podaljšek vhodne slike" + +#: ../src/gui/gtkentry.c:177 +msgid "$(VERSION) - duplicate version" +msgstr "$(VERSION) - verzija duplikata" + +#: ../src/gui/gtkentry.c:178 +msgid "" +"$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version " +"exists" +msgstr "" +"$(VERSION.IF_MULTI) - enako kot $(VERSION) vendar prazni niz, če obstaja " +"samo ena verzija" + +#: ../src/gui/gtkentry.c:179 +msgid "$(VERSION.NAME) - version name from metadata" +msgstr "$(VERSION.NAME) - ime verzije iz metapodatkov" + +#: ../src/gui/gtkentry.c:180 +msgid "$(JOBCODE) - job code for import" +msgstr "$(JOBCODE) - koda posla za uvoz" + +#: ../src/gui/gtkentry.c:181 +msgid "$(SEQUENCE) - sequence number" +msgstr "$(SEQUENCE) - številka zaporedja" + +#: ../src/gui/gtkentry.c:182 +msgid "$(WIDTH.MAX) - maximum image export width" +msgstr "$(WIDTH.MAX) - maksimalna širina izvožene slike" + +#: ../src/gui/gtkentry.c:183 +msgid "$(WIDTH.SENSOR) - image sensor width" +msgstr "$(WIDTH.SENSOR) - širina senzorja slike" + +#: ../src/gui/gtkentry.c:184 +msgid "$(WIDTH.RAW) - RAW image width" +msgstr "$(WIDTH.RAW) - širina surove slike" + +#: ../src/gui/gtkentry.c:185 +msgid "$(WIDTH.CROP) - image width after crop" +msgstr "$(WIDTH.CROP) - širina slike po obrezu" + +#: ../src/gui/gtkentry.c:186 +msgid "$(WIDTH.EXPORT) - exported image width" +msgstr "$(WIDTH.EXPORT) - širina izvožene slike" + +#: ../src/gui/gtkentry.c:187 +msgid "$(HEIGHT.MAX) - maximum image export height" +msgstr "$(HEIGHT.MAX) - maksimalna višina izvožene slike" + +#: ../src/gui/gtkentry.c:188 +msgid "$(HEIGHT.SENSOR) - image sensor height" +msgstr "$(HEIGHT.SENSOR) - višina senzorja slike" + +#: ../src/gui/gtkentry.c:189 +msgid "$(HEIGHT.RAW) - RAW image height" +msgstr "$(HEIGHT.RAW) - višina surove slike" + +#: ../src/gui/gtkentry.c:190 +msgid "$(HEIGHT.CROP) - image height after crop" +msgstr "$(HEIGHT.CROP) - višina slike po obrezu" + +#: ../src/gui/gtkentry.c:191 +msgid "$(HEIGHT.EXPORT) - exported image height" +msgstr "$(HEIGHT.EXPORT) - višina izvožene slike" + +#: ../src/gui/gtkentry.c:192 +msgid "$(YEAR) - year" +msgstr "$(YEAR) - leto" + +#: ../src/gui/gtkentry.c:193 +msgid "$(YEAR.SHORT) - year without century" +msgstr "$(YEAR.SHORT) - leto brez stoletja" + +#: ../src/gui/gtkentry.c:194 +msgid "$(MONTH) - month" +msgstr "$(MONTH) - mesec" + +#: ../src/gui/gtkentry.c:195 +msgid "$(MONTH.SHORT) - abbreviated month name according to the current locale" +msgstr "$(MONTH.SHORT) - okrajšan mesec glede na trenutno lokalno okolje" + +#: ../src/gui/gtkentry.c:196 +msgid "$(MONTH.LONG) - full month name according to the current locale" +msgstr "$(MONTH.LONG) - polno ime mesece gleda na trenutno lokalno okolje" + +#: ../src/gui/gtkentry.c:197 +msgid "$(DAY) - day" +msgstr "$(DAY) - dan" + +#: ../src/gui/gtkentry.c:198 +msgid "$(HOUR) - hour" +msgstr "$(HOUR) - ura" + +#: ../src/gui/gtkentry.c:199 +msgid "$(HOUR.AMPM) - hour, 12-hour clock" +msgstr "$(HOUR.AMPM) - ura, 12-urni prikaz" + +#: ../src/gui/gtkentry.c:200 +msgid "$(MINUTE) - minute" +msgstr "$(MINUTE) - minuta" + +#: ../src/gui/gtkentry.c:201 +msgid "$(SECOND) - second" +msgstr "$(SECOND) - sekunda" + +#: ../src/gui/gtkentry.c:202 +msgid "$(MSEC) - millisecond" +msgstr "$(MSEC) - millisekunda" + +#: ../src/gui/gtkentry.c:203 +msgid "$(EXIF.YEAR) - EXIF year" +msgstr "$(EXIF.YEAR) - leto iz EXIF" + +#: ../src/gui/gtkentry.c:204 +msgid "$(EXIF.YEAR.SHORT) - EXIF year without century" +msgstr "$(EXIF.YEAR.SHORT - leto iz EXIF brez stoletja" + +#: ../src/gui/gtkentry.c:205 +msgid "$(EXIF.MONTH) - EXIF month" +msgstr "$(EXIF.MONTH) - mesec iz EXIF" + +#: ../src/gui/gtkentry.c:206 +msgid "" +"$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current " +"locale" +msgstr "" +"$(EXIF.MONTH.SHORT) - okrajšan mesec iz EXIF glede na trenutno lokalno okolje" + +#: ../src/gui/gtkentry.c:207 +msgid "" +"$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" +msgstr "" +"$(EXIF.MONTH.LONG) - polno ime iz EXIF glede na trenutno lokalno okolje" + +#: ../src/gui/gtkentry.c:208 +msgid "$(EXIF.DAY) - EXIF day" +msgstr "$(EXIF.DAY) - dan iz EXIF" + +#: ../src/gui/gtkentry.c:209 +msgid "$(EXIF.HOUR) - EXIF hour" +msgstr "$(EXIF.HOUR) - ura iz EXIF" + +#: ../src/gui/gtkentry.c:210 +msgid "$(EXIF.HOUR.AMPM) - EXIF hour, 12-hour clock" +msgstr "$(EXIF.HOUR.AMPM) - ura iz EXIF, 12 urni prikaz" + +#: ../src/gui/gtkentry.c:211 +msgid "$(EXIF.MINUTE) - EXIF minute" +msgstr "$(EXIF.MINUTE) - minuta iz EXIF" + +#: ../src/gui/gtkentry.c:212 +msgid "$(EXIF.SECOND) - EXIF second" +msgstr "$(EXIF.SECOND) - sekunda iz EXIF" + +#: ../src/gui/gtkentry.c:213 +msgid "$(EXIF.MSEC) - EXIF millisecond" +msgstr "$(EXIF.MSEC) - milisekunda iz EXIF" + +#: ../src/gui/gtkentry.c:214 +msgid "$(EXIF.ISO) - ISO value" +msgstr "$(EXIF.ISO) - občutljivost ISO" + +#: ../src/gui/gtkentry.c:215 +msgid "$(EXIF.EXPOSURE) - EXIF exposure" +msgstr "$(EXIF.EXPOSURE) - EXIF osvetlitev" + +#: ../src/gui/gtkentry.c:216 +msgid "$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias" +msgstr "$(EXIF.EXPOSURE.BIAS) - EXIF pristranskost osvetlitve" + +#: ../src/gui/gtkentry.c:217 +msgid "$(EXIF.APERTURE) - EXIF aperture" +msgstr "$(EXIF.APERTURE) - EXIF zaslonka" + +#: ../src/gui/gtkentry.c:218 +#| msgid "$(EXIF.YEAR) - EXIF year" +msgid "$(EXIF.CROP_FACTOR) - EXIF crop factor" +msgstr "$(EXIF.CROP_FACTOR) - EXIF crop factor" + +#: ../src/gui/gtkentry.c:219 +msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" +msgstr "$(EXIF.FOCAL.LENGTH) - EXIF goriščna razdalja" + +#: ../src/gui/gtkentry.c:220 +#| msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" +msgid "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent focal length" +msgstr "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF goriščna razdalja za 35 mm" + +#: ../src/gui/gtkentry.c:221 +msgid "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" +msgstr "$(EXIF.FOCUS.DISTANCE) - EXIF izmerjena razdalja" + +#: ../src/gui/gtkentry.c:222 +msgid "$(EXIF.MAKER) - camera maker" +msgstr "$(EXIF.MAKER) - izdelovalec kamere" + +#: ../src/gui/gtkentry.c:223 +msgid "$(EXIF.MODEL) - camera model" +msgstr "$(EXIF.MODEL) - model kamere" + +#: ../src/gui/gtkentry.c:224 +msgid "$(EXIF.LENS) - lens" +msgstr "$(EXIF.LENS) - lečje" + +#: ../src/gui/gtkentry.c:225 +msgid "$(LONGITUDE) - longitude" +msgstr "$(LONGITUDE) - geografska dolžina" + +#: ../src/gui/gtkentry.c:226 +msgid "$(LATITUDE) - latitude" +msgstr "$(LATITUDE) - geografska širina" + +#: ../src/gui/gtkentry.c:227 +msgid "$(ELEVATION) - elevation" +msgstr "$(ELEVATION) - višina" + +#: ../src/gui/gtkentry.c:228 +msgid "$(STARS) - star rating as number (-1 for rejected)" +msgstr "$(STARS) - ocene z zvezdicami (-1 za zavrnjeno)" + +#: ../src/gui/gtkentry.c:229 +msgid "$(RATING.ICONS) - star/reject rating in icon form" +msgstr "$(RATING.ICONS) - ocene zvezdice/zavrnjeno v obliki ikone" + +#: ../src/gui/gtkentry.c:230 +msgid "$(LABELS) - color labels as text" +msgstr "$(LABELS) - barvne oznake kot besedilo" + +#: ../src/gui/gtkentry.c:231 +msgid "$(LABELS.ICONS) - color labels as icons" +msgstr "$(LABELS.ICONS) - barvne oznake kot ikone" + +#: ../src/gui/gtkentry.c:232 +msgid "$(ID) - image ID" +msgstr "$(ID) - ID slike" + +#: ../src/gui/gtkentry.c:233 +msgid "$(TITLE) - title from metadata" +msgstr "$(TITLE) - naslov iz metapodatkov" + +#: ../src/gui/gtkentry.c:234 +msgid "$(DESCRIPTION) - description from metadata" +msgstr "$(DESCRIPTION) - opis iz metapodatkov" + +#: ../src/gui/gtkentry.c:235 +msgid "$(CREATOR) - creator from metadata" +msgstr "$(CREATOR) - avtor iz metapodatkov" + +#: ../src/gui/gtkentry.c:236 +msgid "$(PUBLISHER) - publisher from metadata" +msgstr "$(PUBLISHER) - izdajatelj iz metapodatkov" + +#: ../src/gui/gtkentry.c:237 +msgid "$(RIGHTS) - rights from metadata" +msgstr "$(RIGHTS) - pravice iz metapodatkov" + +#: ../src/gui/gtkentry.c:238 +msgid "$(USERNAME) - login name" +msgstr "$(USERNAME) - uporabniško ime" + +#: ../src/gui/gtkentry.c:239 +msgid "$(FOLDER.PICTURES) - pictures folder" +msgstr "$(FOLDER.PICTURES) - mapa s slikami" + +#: ../src/gui/gtkentry.c:240 +msgid "$(FOLDER.HOME) - home folder" +msgstr "$(FOLDER.HOME) - izhodiščna mapa" + +#: ../src/gui/gtkentry.c:241 +msgid "$(FOLDER.DESKTOP) - desktop folder" +msgstr "$(FOLDER.DESKTOP) - mapa namizja" + +#: ../src/gui/gtkentry.c:242 +msgid "$(OPENCL.ACTIVATED) - whether OpenCL is activated" +msgstr "$(OPENCL.ACTIVATED) - ali je OpenCL aktiviran" + +#: ../src/gui/gtkentry.c:243 +msgid "$(CATEGORY0(category)) - subtag of level 0 in hierarchical tags" +msgstr "" +"$(CATEGORY0(kategorija) - pod-oznaka nivoja 0 med hierarhičnimi oznakami" + +#: ../src/gui/gtkentry.c:244 +msgid "$(TAGS) - tags as set in metadata settings" +msgstr "$(TAGS) - oznake kot so navedene v nastavitvah metapodatkov" + +#: ../src/gui/gtkentry.c:245 +msgid "$(DARKTABLE.NAME) - darktable name" +msgstr "$(DARKTABLE.NAME) - darktable ime" + +#: ../src/gui/gtkentry.c:246 +msgid "$(DARKTABLE.VERSION) - current darktable version" +msgstr "$(DARKTABLE.VERSION) - trenutna verzija darktable" + +#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:248 +msgid "grid" +msgstr "mreža" + +#: ../src/gui/guides.c:31 +msgid "rules of thirds" +msgstr "pravilo tretjin" + +#: ../src/gui/guides.c:32 +msgid "metering" +msgstr "merjenje" + +#: ../src/gui/guides.c:33 +msgid "perspective" +msgstr "perspektiva" + +#: ../src/gui/guides.c:34 +msgid "diagonal method" +msgstr "diagonalna metoda" + +#: ../src/gui/guides.c:35 +msgid "harmonious triangles" +msgstr "harmonični trikotniki" + +#: ../src/gui/guides.c:36 +msgid "golden sections" +msgstr "zlati rez" + +#: ../src/gui/guides.c:37 +msgid "golden spiral" +msgstr "zlata spirala" + +#: ../src/gui/guides.c:38 +msgid "golden spiral sections" +msgstr "špiralni zlati rez" + +#: ../src/gui/guides.c:39 +msgid "golden mean (all guides)" +msgstr "zlato povprečje (vsa vodila)" + +#: ../src/gui/guides.c:218 +msgid "horizontal lines" +msgstr "vodoravna vodila" + +#: ../src/gui/guides.c:219 +msgid "number of horizontal guide lines" +msgstr "število vodoravnih vodil" + +#: ../src/gui/guides.c:228 +msgid "vertical lines" +msgstr "navpična vodila" + +#: ../src/gui/guides.c:229 +msgid "number of vertical guide lines" +msgstr "število navpičnih vodil" + +#: ../src/gui/guides.c:238 +msgid "subdivisions" +msgstr "pod-delitve" + +#: ../src/gui/guides.c:239 +msgid "number of subdivisions per grid rectangle" +msgstr "število pod-delitev na posamezen pravokotnik v mreži" + +#. title +#: ../src/gui/guides.c:700 +msgid "global guide overlay settings" +msgstr "splošne nastavitve globalnih vodil" + +#: ../src/gui/guides.c:710 ../src/gui/guides.c:719 ../src/gui/guides.c:727 +#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2494 +msgid "guide lines" +msgstr "vodila" + +#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2145 +msgid "flip" +msgstr "prezrcali" + +#: ../src/gui/guides.c:710 +msgid "flip guides" +msgstr "prezrcali vodila" + +#: ../src/gui/guides.c:713 +msgid "horizontally" +msgstr "vodoravno" + +#: ../src/gui/guides.c:714 +msgid "vertically" +msgstr "navpično" + +#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6232 ../src/iop/clipping.c:2149 +#: ../src/iop/colorbalance.c:1892 +msgid "both" +msgstr "oboje" + +#: ../src/gui/guides.c:720 +msgid "setup guide lines" +msgstr "nastavi vodila" + +#: ../src/gui/guides.c:727 +msgid "overlay color" +msgstr "barva prekrivne plasti" + +#: ../src/gui/guides.c:727 +msgid "set overlay color" +msgstr "nastavite barvo prekrivne plasti" + +#: ../src/gui/guides.c:741 +msgid "" +"set the contrast between the lightest and darkest part of the guide overlays" +msgstr "" +"nastavi kontrast med najsvetlejšim in najtemnejšim delom prekrivanja vodil" + +#: ../src/gui/guides.c:847 ../src/gui/guides.c:893 +msgid "show guides" +msgstr "prikaži vodila" + +#: ../src/gui/guides.c:902 +msgid "show guide overlay when this module has focus" +msgstr "prikaži plast vodil, kadar je ta modul osredotočen" + +#: ../src/gui/guides.c:904 +msgid "" +"change global guide settings\n" +"note that these settings are applied globally and will impact any module " +"that shows guide overlays" +msgstr "" +"spremeni globalne nastavitve vodila\n" +"upoštevajte, da se te nastavitve uporabljajo globalno in bodo vplivale na " +"kateri koli modul, ki prikazuje plast vodil" + +#: ../src/gui/hist_dialog.c:222 +msgid "select parts to copy" +msgstr "izberi dele za kopiranje" + +#: ../src/gui/hist_dialog.c:222 +msgid "select parts to paste" +msgstr "izberi dele za lepljenje" + +#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:524 +msgid "select _all" +msgstr "izberi _vse" + +#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:525 +msgid "select _none" +msgstr "ne izberi _nič" + +#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:605 +#: ../src/gui/styles_dialog.c:627 +msgid "include" +msgstr "vključi" + +#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:681 +#: ../src/gui/styles_dialog.c:687 +msgid "item" +msgstr "postavka" + +#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:694 +#: ../src/gui/styles_dialog.c:703 +msgid "mask" +msgstr "maska" + +#: ../src/gui/hist_dialog.c:360 +msgid "can't copy history out of unaltered image" +msgstr "ne morem kopirati zgodovine slike, ki še ni bila spremenjena" + +#. grid headers +#: ../src/gui/import_metadata.c:417 +msgid "metadata presets" +msgstr "prednastavitve metapodatkov" + +#: ../src/gui/import_metadata.c:420 +msgid "" +"metadata to be applied per default\n" +"double-click on a label to clear the corresponding entry\n" +"double-click on 'preset' to clear all entries" +msgstr "" +"metapodatki za privzeto rabo\n" +"dvokliknite nalepko, da počistite ustrezen vnos\n" +"dvokliknite na 'prednastavljeno', da počistite vse vnose" + +#: ../src/gui/import_metadata.c:430 +msgid "from XMP" +msgstr "iz XMP" + +#: ../src/gui/import_metadata.c:433 +msgid "" +"selected metadata are imported from image and override the default value.\n" +"this drives also the 'look for updated XMP files' and 'load sidecar file' " +"actions.\n" +"CAUTION: not selected metadata are cleaned up when XMP file is updated." +msgstr "" +"izbrani metapodatki so uvoženi iz slike in preglasijo privzeto vrednost\n" +"to poganja tudi 'videz posodobljenih datotek XMP' in aktivnosti 'nalaganje " +"priklopne datoteke'\n" +"POZOR: Neizbrani metapodatki se očistijo, ko posodobite datoteko XMP" + +#. tags +#: ../src/gui/import_metadata.c:469 +msgid "tag presets" +msgstr "prednastavljene oznake" + +#: ../src/gui/import_metadata.c:483 +msgid "comma separated list of tags" +msgstr "seznam oznak ločenih z vejico" + +#. language +#: ../src/gui/preferences.c:274 +msgid "interface language" +msgstr "jezik vmesnika" + +#: ../src/gui/preferences.c:290 +msgid "double-click to reset to the system language" +msgstr "dvojni klik za ponastavitev jezika sistema" + +#: ../src/gui/preferences.c:292 +msgid "" +"set the language of the user interface. the system default is marked with an " +"* (needs a restart)" +msgstr "" +"določi jezik uporabniškega vmesnika. sistemska privzeta nastavitev je " +"označena z * (potreben je ponovni zagon)" + +#: ../src/gui/preferences.c:301 +msgid "theme" +msgstr "tema" + +#: ../src/gui/preferences.c:331 +msgid "set the theme for the user interface" +msgstr "določi temo uporabniškega vmesnika" + +#: ../src/gui/preferences.c:344 ../src/gui/preferences.c:351 +msgid "use system font size" +msgstr "uporabi velikost sistemske pisave" + +#: ../src/gui/preferences.c:360 ../src/gui/preferences.c:367 +msgid "font size in points" +msgstr "velikost pisave v točkah" + +#: ../src/gui/preferences.c:372 +msgid "GUI controls and text DPI" +msgstr "kontrola grafičnega vmesnika in ločljivost besedil" + +#: ../src/gui/preferences.c:379 +msgid "" +"adjust the global GUI resolution to rescale controls, buttons, labels, etc.\n" +"increase for a magnified GUI, decrease to fit more content in window.\n" +"set to -1 to use the system-defined global resolution.\n" +"default is 96 DPI on most systems.\n" +"(needs a restart)." +msgstr "" +"prilagodi globalno ločljivost grafičnega vmesnika v spremembo merila " +"kontrolnikov, gumbov, oznak itd.\n" +"povečajte za povečan vmesnik, zmanjšajte, da se prilega več vsebine v okno.\n" +"nastavljeno na -1 za uporabo sistemsko določene globalne ločljivosti.\n" +"privzeto je 96 DPI v večini sistemov.\n" +"(potreben je ponovni zagon)." + +#. checkbox to allow user to modify theme with user.css +#: ../src/gui/preferences.c:388 +msgid "modify selected theme with CSS tweaks below" +msgstr "spremenite izbrano temo s prilagoditvami CSS spodaj" + +#: ../src/gui/preferences.c:396 +msgid "modify theme with CSS keyed below (saved to user.css)" +msgstr "" +"spremenite temo s CSS ključnimi parametri spodaj (shranjeno v user.css)" + +#: ../src/gui/preferences.c:418 +msgctxt "usercss" +msgid "save CSS and apply" +msgstr "shrani CSS in uveljavi" + +#: ../src/gui/preferences.c:423 +msgid "click to save and apply the CSS tweaks entered in this editor" +msgstr "" +"kliknite, da shranite in uporabite popravke CSS, vnesene v tem urejevalniku" + +#: ../src/gui/preferences.c:425 +msgid "open help page for CSS tweaks" +msgstr "odpri stran pomoči za prilagajanja CSS" + +#. load default text with some pointers +#: ../src/gui/preferences.c:446 +msgid "ERROR Loading user.css" +msgstr "NAPAKA pri nalaganju user.css" + +#. load default text +#: ../src/gui/preferences.c:455 +msgid "Enter CSS theme tweaks here" +msgstr "Vnesite prilagoditve teme CSS tu" + +#: ../src/gui/preferences.c:491 +msgid "darktable preferences" +msgstr "nastavitve programa darktable" + +#: ../src/gui/preferences.c:559 +msgid "darktable needs to be restarted for settings to take effect" +msgstr "darktable je potrebno ponovno zagnati, da bi nastavitve začele veljati" + +#. exif +#: ../src/gui/preferences.c:818 ../src/gui/presets.c:647 +#: ../src/libs/metadata_view.c:139 +msgid "model" +msgstr "model" + +#: ../src/gui/preferences.c:822 ../src/gui/presets.c:655 +#: ../src/libs/metadata_view.c:140 +msgid "maker" +msgstr "izdelovalec" + +#: ../src/gui/preferences.c:859 +msgid "search presets list" +msgstr "išči seznam prednastavitev" + +#: ../src/gui/preferences.c:860 +msgid "" +"incrementally search the list of presets\n" +"press up or down keys to cycle through matches" +msgstr "" +"postopno išči po seznamu prednastavitev\n" +"pritisnite tipki gor ali dol, da se ciklično pomikate po zadetkih" + +#: ../src/gui/preferences.c:866 +msgctxt "preferences" +msgid "import..." +msgstr "uvoz..." + +#: ../src/gui/preferences.c:870 +msgctxt "preferences" +msgid "export..." +msgstr "izvozi..." + +#: ../src/gui/preferences.c:1030 +#, c-format +msgid "failed to import preset %s" +msgstr "ni bilo mogoče uvoziti prednastavitev %s" + +#: ../src/gui/preferences.c:1041 +msgid "select preset(s) to import" +msgstr "izberi prednastavitve za uvoz" + +#: ../src/gui/preferences.c:1042 ../src/libs/collect.c:425 +#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:930 +#: ../src/libs/import.c:1515 ../src/libs/import.c:1619 ../src/libs/styles.c:529 +msgid "_open" +msgstr "_odpri" + +#: ../src/gui/preferences.c:1051 +msgid "darktable preset files" +msgstr "datoteke prednastavitev za darktable" + +#: ../src/gui/preferences.c:1056 ../src/iop/lut3d.c:1591 +#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:946 +#: ../src/libs/styles.c:543 +msgid "all files" +msgstr "vse datoteke" + +#: ../src/gui/presets.c:61 +msgid "non-raw" +msgstr "ne-surovo" + +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:336 +msgid "raw" +msgstr "surove" + +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:337 +msgid "HDR" +msgstr "HDR" + +#: ../src/gui/presets.c:61 ../src/iop/monochrome.c:77 ../src/libs/image.c:679 +#: ../src/libs/metadata_view.c:343 +msgid "monochrome" +msgstr "enobarvni" + +#: ../src/gui/presets.c:153 +#, c-format +msgid "preset `%s' is write-protected, can't delete!" +msgstr "" +"prednastavitev `%s 'je zaščitena pred pisanjem in je ni mogoče izbrisati!" + +#: ../src/gui/presets.c:159 ../src/gui/presets.c:463 ../src/libs/lib.c:238 +#: ../src/libs/modulegroups.c:3703 +msgid "delete preset?" +msgstr "brišem nastavitve?" + +#: ../src/gui/presets.c:160 ../src/gui/presets.c:464 ../src/libs/lib.c:239 +#: ../src/libs/modulegroups.c:3704 +#, c-format +msgid "do you really want to delete the preset `%s'?" +msgstr "ali res želite brisati nastavitve '%s'?" + +#. add new preset +#. create a shortcut for the new entry +#. then show edit dialog +#. clang-format on +#. create a shortcut for the new entry +#. then show edit dialog +#: ../src/gui/presets.c:202 ../src/gui/presets.c:1022 ../src/gui/presets.c:1025 +#: ../src/gui/presets.c:1028 ../src/libs/lib.c:188 ../src/libs/lib.c:205 +#: ../src/libs/lib.c:213 ../src/libs/lib.c:216 +msgid "new preset" +msgstr "nova nastavitev" + +#: ../src/gui/presets.c:209 +msgid "please give preset a name" +msgstr "prosim, dajte nastavitvi ime" + +#: ../src/gui/presets.c:214 +msgid "unnamed preset" +msgstr "neimenovana nastavitev" + +#: ../src/gui/presets.c:243 +msgid "overwrite preset?" +msgstr "prepišem nastavitev?" + +#: ../src/gui/presets.c:244 +#, c-format +msgid "" +"preset `%s' already exists.\n" +"do you want to overwrite?" +msgstr "" +"nastavitev `%s' že obstaja.\n" +"ali jo želite prepisati?" + +#: ../src/gui/presets.c:422 ../src/imageio/storage/disk.c:198 +#: ../src/imageio/storage/gallery.c:150 ../src/imageio/storage/latex.c:146 +msgid "_select as output destination" +msgstr "_izberi kot cilj izhoda" + +#: ../src/gui/presets.c:431 +#, c-format +msgid "preset %s was successfully exported" +msgstr "prednastavitev %s je bila uspešno izvožena" + +#: ../src/gui/presets.c:559 +#, c-format +msgid "edit `%s' for module `%s'" +msgstr "uredi '%s' za modul '%s'" + +#: ../src/gui/presets.c:563 +msgid "_export..." +msgstr "_izvoz..." + +#: ../src/gui/presets.c:564 ../src/libs/tagging.c:1489 +#: ../src/libs/tagging.c:1580 +#| msgid "delete" +msgid "_delete" +msgstr "_briši" + +#: ../src/gui/presets.c:588 +msgid "name of the preset" +msgstr "ime prednastavitve" + +#: ../src/gui/presets.c:597 +msgid "description or further information" +msgstr "opis ali nadaljnja informacija" + +#: ../src/gui/presets.c:601 +msgid "reset all module parameters to their default values" +msgstr "ponastavi parametre vseh modulov na njihove privzete vrednosti" + +#: ../src/gui/presets.c:604 +msgid "" +"the parameters will be reset to their default values, which may be " +"automatically set based on image metadata" +msgstr "" +"parametri bodo ponastavljeni na njihove privzete vrednosti, ki so lahko " +"samodejno nastavljeni na podlagi metapodatkov slike" + +#: ../src/gui/presets.c:610 +msgid "auto apply this preset to matching images" +msgstr "avtomatsko uporabi te nastavitve za ustrezne slike" + +#: ../src/gui/presets.c:614 +msgid "only show this preset for matching images" +msgstr "samo pokaži te nastavitve za ustrezne slike" + +#: ../src/gui/presets.c:616 +msgid "" +"be very careful with this option. this might be the last time you see your " +"preset." +msgstr "" +"bodite previdni s to nastavitvijo. lahko je zadnjič, da vidite te nastavitve." + +#: ../src/gui/presets.c:646 +#, no-c-format +msgid "string to match model (use % as wildcard)" +msgstr "šablona za model ustreznosti (uporabi % kot splošni model)" + +#: ../src/gui/presets.c:654 +#, no-c-format +msgid "string to match maker (use % as wildcard)" +msgstr "" +"šablona, da bi našli ustreznega izdelovalca (uporabi % kot splošni model)" + +#: ../src/gui/presets.c:662 +#, no-c-format +msgid "string to match lens (use % as wildcard)" +msgstr "šablona za iskanje objektiva (uporabi % kot splošni model)" + +#: ../src/gui/presets.c:672 +msgid "minimum ISO value" +msgstr "najmanjša občutljivost ISO" + +#: ../src/gui/presets.c:678 +msgid "" +"maximum ISO value\n" +"if left blank, it is equivalent to no upper limit" +msgstr "" +"maksimalna vrednost ISO\n" +"če je puščeno prazno, to pomeni, da ni zgornje meje" + +#: ../src/gui/presets.c:691 +msgid "minimum exposure time" +msgstr "najkrajši čas osvetlitve" + +#: ../src/gui/presets.c:692 +msgid "maximum exposure time" +msgstr "najdaljši čas osvetlitve" + +#: ../src/gui/presets.c:708 +msgid "minimum aperture value" +msgstr "najmanjša odprtost zaslonke" + +#: ../src/gui/presets.c:709 +msgid "maximum aperture value" +msgstr "največja odprtost zaslonke" + +#: ../src/gui/presets.c:727 +msgid "minimum focal length" +msgstr "najkrajša goriščna razdalja" + +#: ../src/gui/presets.c:728 +msgid "maximum focal length" +msgstr "najdaljša goriščna razdalja" + +#. raw/hdr/ldr/mono/color +#: ../src/gui/presets.c:736 +msgid "format" +msgstr "format" + +#: ../src/gui/presets.c:741 +msgid "select image types you want this preset to be available for" +msgstr "" +"izberite vrste slik, za katere želite, da je ta prednastavitev na voljo" + +#: ../src/gui/presets.c:754 ../src/libs/filtering.c:1263 +msgid "and" +msgstr "in" + +#: ../src/gui/presets.c:798 ../src/gui/presets.c:850 +msgid "∞" +msgstr "∞" + +#: ../src/gui/presets.c:966 +#, c-format +msgid "preset `%s' is write-protected! can't edit it!" +msgstr "prednastavitev `%s 'je zaščitena pred pisanjem! je ni mogoče urejati!" + +#: ../src/gui/presets.c:990 ../src/libs/lib.c:158 +msgid "update preset?" +msgstr "osvežim prvotno nastavitev?" + +#: ../src/gui/presets.c:991 ../src/libs/lib.c:159 +#, c-format +msgid "do you really want to update the preset `%s'?" +msgstr "ali res želite posodobiti osnovne nastavitve '%s'?" + +#: ../src/gui/presets.c:1120 +msgid "(first)" +msgstr "(prvi)" + +#: ../src/gui/presets.c:1120 +msgid "(last)" +msgstr "(zadnji)" + +#: ../src/gui/presets.c:1152 +#, c-format +msgid "" +"preset %s\n" +"%s" +msgstr "" +"začetne vrednosti %s\n" +"%s" + +#: ../src/gui/presets.c:1153 +msgid "no presets" +msgstr "ni začetnih vrednosti" + +#: ../src/gui/presets.c:1188 ../src/iop/basecurve.c:575 +#: ../src/iop/basecurve.c:579 ../src/iop/basecurve.c:582 +msgid "display-referred default" +msgstr "privzeta vrednost glede na zaslon" + +#: ../src/gui/presets.c:1190 ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:400 ../src/iop/channelmixerrgb.c:403 +#: ../src/iop/exposure.c:319 ../src/iop/exposure.c:323 +#: ../src/iop/exposure.c:326 ../src/iop/filmicrgb.c:3311 +#: ../src/iop/filmicrgb.c:3315 ../src/iop/filmicrgb.c:3318 +#: ../src/iop/sigmoid.c:240 ../src/iop/sigmoid.c:243 ../src/iop/sigmoid.c:245 +msgid "scene-referred default" +msgstr "privzeta vrednost glede na sceno" + +#: ../src/gui/presets.c:1394 ../src/libs/modulegroups.c:3783 +#: ../src/libs/modulegroups.c:3792 +msgid "manage module layouts" +msgstr "upravljanje postavitev modulov" + +#: ../src/gui/presets.c:1403 +msgid "manage quick presets" +msgstr "upravljanje hitrih nastavitev" + +#: ../src/gui/presets.c:1587 +msgid "manage quick presets list..." +msgstr "upravljanje seznamov hitrih nastavitev..." + +#: ../src/gui/presets.c:1728 +msgid "(default)" +msgstr "(privzeto)" + +#: ../src/gui/presets.c:1755 +msgid "disabled: wrong module version" +msgstr "onemogočeno: napačna verzija modula" + +#: ../src/gui/presets.c:1777 ../src/libs/lib.c:551 +msgid "edit this preset.." +msgstr "uredi to nastavitev.." + +#: ../src/gui/presets.c:1782 ../src/libs/lib.c:555 +msgid "delete this preset" +msgstr "briši to nastavitev" + +#: ../src/gui/presets.c:1789 ../src/libs/lib.c:563 +msgid "store new preset.." +msgstr "shrani novo nastavitev.." + +#: ../src/gui/presets.c:1797 ../src/libs/lib.c:576 +msgid "update preset" +msgstr "osveži nastavitev" + +#: ../src/gui/styles_dialog.c:221 ../src/libs/styles.c:437 +#: ../src/libs/styles.c:622 +msgid "overwrite style?" +msgstr "naj prepišem slog?" + +#: ../src/gui/styles_dialog.c:222 +#, c-format +msgid "" +"style `%s' already exists.\n" +"do you want to overwrite?" +msgstr "" +"slog `%s' že obstaja.\n" +"ali ga želite prepisati?" + +#: ../src/gui/styles_dialog.c:251 ../src/gui/styles_dialog.c:323 +msgid "please give style a name" +msgstr "prosim, dajte slogu ime" + +#: ../src/gui/styles_dialog.c:255 ../src/gui/styles_dialog.c:327 +msgid "unnamed style" +msgstr "neimenovani slog" + +#: ../src/gui/styles_dialog.c:312 +#, c-format +msgid "style %s was successfully saved" +msgstr "slog %s je bil uspešno shranjen" + +#: ../src/gui/styles_dialog.c:512 +msgid "edit style" +msgstr "uredi slog" + +#: ../src/gui/styles_dialog.c:513 +msgid "duplicate style" +msgstr "dupliciraj slog" + +#: ../src/gui/styles_dialog.c:514 +msgid "creates a duplicate of the style before applying changes" +msgstr "ustvari duplikat sloga pred uveljavljanjem sprememb" + +#: ../src/gui/styles_dialog.c:518 +msgid "create new style" +msgstr "ustvari nov slog" + +#: ../src/gui/styles_dialog.c:557 +msgid "enter a name for the new style" +msgstr "vnesite ime novega sloga" + +#: ../src/gui/styles_dialog.c:565 +msgid "enter a description for the new style, this description is searchable" +msgstr "vnesite opis novega sloga, po teh opisih lahko preiskujete" + +#: ../src/gui/styles_dialog.c:605 +msgid "keep" +msgstr "ohrani" + +#: ../src/gui/styles_dialog.c:832 +msgid "can't create style out of unaltered image" +msgstr "ne morem ustvariti sloga iz nespremenjene slike" + +#: ../src/imageio/imageio.c:816 +#, c-format +msgid "" +"failed to allocate memory for %s, please lower the threads used for export " +"or buy more memory." +msgstr "" +"nisem mogel dobiti pomnilnika za %s, prosím, znižajte število niti za izvoz " +"ali pa kupite še nekaj pomnilnika." + +#: ../src/imageio/imageio.c:818 +msgctxt "noun" +msgid "thumbnail export" +msgstr "izvoz predogledne sličice" + +#: ../src/imageio/imageio.c:818 +msgctxt "noun" +msgid "export" +msgstr "izvoz" + +#: ../src/imageio/imageio.c:831 +#, c-format +msgid "cannot find the style '%s' to apply during export." +msgstr "na morem najti sloga '%s', da bi ga uporabil ob izvozu." + +#: ../src/imageio/imageio_libraw.c:295 +msgid "" +"<span foreground='red'><b>WARNING</b></span>: camera is not fully supported!" +msgstr "" +"<span foreground='red'><b>OPOZORILO</b></span>: kamera ni v popolnosti" +" podprta!" + +#: ../src/imageio/imageio_libraw.c:297 +#, c-format +msgid "" +"colors for `%s' could be misrepresented,\n" +"and edits might not be compatible with future versions." +msgstr "" +"barve za `%s' so lahko napačno predstavljene,\n" +"in urejanja morda ne bodo združljiva s prihodnjimi različicami." + +#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:641 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 +msgid "8 bit" +msgstr "8 bit" + +#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:567 +msgid "10 bit" +msgstr "10 bit" + +#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:567 +msgid "12 bit" +msgstr "12 bit" + +#: ../src/imageio/format/avif.c:110 ../src/imageio/format/webp.c:416 +msgid "lossless" +msgstr "brez izgub" + +#: ../src/imageio/format/avif.c:112 ../src/imageio/format/webp.c:416 +msgid "lossy" +msgstr "aproksimativen" + +#: ../src/imageio/format/avif.c:463 +msgid "invalid AVIF bit depth!" +msgstr "neveljavna bitna globina AVIF!" + +#. Bit depth combo box +#: ../src/imageio/format/avif.c:800 ../src/imageio/format/exr.cc:601 +#: ../src/imageio/format/jxl.c:566 ../src/imageio/format/pdf.c:661 +#: ../src/imageio/format/png.c:639 ../src/imageio/format/tiff.c:900 +#: ../src/imageio/format/xcf.c:354 +msgid "bit depth" +msgstr "bitna globina" + +#: ../src/imageio/format/avif.c:813 +msgid "color information stored in an image, higher is better" +msgstr "barvne informacije shranjene na sliki, višje so boljše" + +#. +#. * Color mode combo box +#. +#. shortfile option combo box +#: ../src/imageio/format/avif.c:820 ../src/imageio/format/tiff.c:944 +#| msgid "grayscale" +msgid "B&W as grayscale" +msgstr "črno-belo kot lestvica sivin" + +#: ../src/imageio/format/avif.c:821 ../src/imageio/format/tiff.c:945 +msgid "saving as grayscale will reduce the size for black & white images" +msgstr "če shranite kot sivine, bo zmanjšana velikost datotek črno-belih slik" + +#. +#. * Tiling combo box +#. +#: ../src/imageio/format/avif.c:832 +msgid "tiling" +msgstr "razrez" + +#: ../src/imageio/format/avif.c:833 +#| msgid "" +#| "tile an image into segments.\n" +#| "\n" +#| "makes encoding faster. the impact on quality reduction is negligible, but " +#| "increases the file size." +msgid "" +"tile an image into segments.\n" +"\n" +"makes encoding faster, but increases the file size. the loss of image " +"quality is negligible." +msgstr "" +"razrez slike na segmente.\n" +"\n" +"omogoča hitrejše kodiranje, vendar poveča velikost datoteke. izguba kakovosti" +" slike je zanemarljiva." + +#. compression +#. Compression method combo box +#: ../src/imageio/format/avif.c:850 ../src/imageio/format/exr.cc:611 +#: ../src/imageio/format/pdf.c:676 ../src/imageio/format/png.c:653 +#: ../src/imageio/format/tiff.c:923 ../src/imageio/format/webp.c:414 +#: ../src/libs/masks.c:111 +msgid "compression" +msgstr "stiskanje" + +#: ../src/imageio/format/avif.c:858 +msgid "the compression for the image" +msgstr "stiskanje slike" + +#. min +#. max +#. step +#. default +#. digits +#: ../src/imageio/format/avif.c:878 ../src/imageio/format/j2k.c:679 +#: ../src/imageio/format/jpeg.c:584 ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/webp.c:425 ../src/libs/camera.c:564 +msgid "quality" +msgstr "kakovost" + +#: ../src/imageio/format/avif.c:881 +#| msgid "" +#| "the quality of an image, less quality means fewer details.\n" +#| "\n" +#| "the following applies only to lossy setting\n" +#| "\n" +#| "pixelformat based on quality:\n" +#| "\n" +#| " 91% - 100% -> YUV444\n" +#| " 81% - 90% -> YUV422\n" +#| " 5% - 80% -> YUV420\n" +msgid "" +"the quality of an image, less quality means fewer details.\n" +"\n" +"pixel format is controlled by quality:\n" +"\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" +msgstr "" +"kakovost slike, manjša kakovost pomeni manj podrobnosti.\n" +"\n" +"format slikovnih pik je nadzorovan s kakovostjo:\n" +"\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" +"​" + +#: ../src/imageio/format/copy.c:109 ../src/libs/copy_history.c:370 +#: ../src/libs/image.c:647 +msgid "copy" +msgstr "kopiraj" + +#: ../src/imageio/format/copy.c:124 +msgid "" +"do a 1:1 copy of the selected files.\n" +"the global options below do not apply!" +msgstr "" +"izvedi kopijo 1:1 izbranih datotek.\n" +"globalne nastavitve pri tem ne veljajo!" + +#: ../src/imageio/format/exr.cc:217 +msgid "the selected output profile doesn't work well with EXR" +msgstr "izbrani izhodni profil ne deluje dobro z EXR" + +#: ../src/imageio/format/exr.cc:576 +msgid "OpenEXR" +msgstr "OpenEXR" + +#: ../src/imageio/format/exr.cc:603 +msgid "16 bit (float)" +msgstr "16 bit (plavajoča vejica)" + +#: ../src/imageio/format/exr.cc:603 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 +msgid "32 bit (float)" +msgstr "32 bit (plavajoča vejica)" + +#: ../src/imageio/format/exr.cc:613 ../src/imageio/format/pdf.c:682 +#: ../src/imageio/format/tiff.c:924 +msgid "uncompressed" +msgstr "nestisnjeno" + +#: ../src/imageio/format/exr.cc:614 +msgid "RLE" +msgstr "RLE" + +#: ../src/imageio/format/exr.cc:615 +msgid "ZIPS" +msgstr "ZIPS" + +#: ../src/imageio/format/exr.cc:616 +msgid "ZIP" +msgstr "ZIP" + +#: ../src/imageio/format/exr.cc:617 +msgid "PIZ" +msgstr "PIZ" + +#: ../src/imageio/format/exr.cc:618 +msgid "PXR24" +msgstr "PXR24" + +#: ../src/imageio/format/exr.cc:619 +msgid "B44" +msgstr "B44" + +#: ../src/imageio/format/exr.cc:620 +msgid "B44A" +msgstr "B44A" + +#: ../src/imageio/format/exr.cc:621 +msgid "DWAA" +msgstr "DWAA" + +#: ../src/imageio/format/exr.cc:622 +msgid "DWAB" +msgstr "DWAB" + +#: ../src/imageio/format/j2k.c:648 +msgid "JPEG 2000 (12-bit)" +msgstr "JPEG 2000 (12-bitov)" + +#: ../src/imageio/format/j2k.c:684 +msgid "DCP mode" +msgstr "DCP režim" + +#: ../src/imageio/format/j2k.c:687 +msgid "Cinema2K, 24FPS" +msgstr "Cinema2K, 24FPS" + +#: ../src/imageio/format/j2k.c:688 +msgid "Cinema2K, 48FPS" +msgstr "Cinema2K, 48FPS" + +#: ../src/imageio/format/j2k.c:689 +msgid "Cinema4K, 24FPS" +msgstr "Cinema4K, 24FPS" + +#: ../src/imageio/format/jpeg.c:546 +msgid "JPEG (8-bit)" +msgstr "JPEG (8-bitov)" + +#: ../src/imageio/format/jpeg.c:594 +#| msgid "chroma global" +msgid "chroma subsampling" +msgstr "podvzorčenje krome" + +#: ../src/imageio/format/jpeg.c:595 +msgid "" +"chroma subsampling setting for JPEG encoder.\n" +"auto - use subsampling determined by the quality value\n" +"4:4:4 - no chroma subsampling\n" +"4:4:0 - color sampling rate halved vertically\n" +"4:2:2 - color sampling rate halved horizontally\n" +"4:2:0 - color sampling rate halved horizontally and vertically" +msgstr "" +"nastavitev podvzorčenja barvnosti za kodirnik JPEG.\n" +"samodejno - uporabi podvzorčenje, določeno z vrednostjo kakovosti\n" +"4:4:4 - brez podvzorčenja barvn\n" +"4:4:0 - hitrost vzorčenja barv prepolovljena navpično\n" +"4:2:2 - hitrost vzorčenja barv prepolovljena vodoravno\n" +"4:2:0 - hitrost vzorčenja barv prepolovljena vodoravno in navpično" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:4" +msgstr "4:4:4" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:0" +msgstr "4:4:0" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:2" +msgstr "4:2:2" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:0" +msgstr "4:2:0" + +#: ../src/imageio/format/jxl.c:567 ../src/imageio/format/pdf.c:81 +#: ../src/imageio/format/png.c:641 ../src/imageio/format/tiff.c:904 +#: ../src/imageio/format/xcf.c:357 +msgid "16 bit" +msgstr "16 bit" + +#. Pixel format combo box +#: ../src/imageio/format/jxl.c:573 ../src/imageio/format/tiff.c:909 +msgid "pixel type" +msgstr "vrsta piksla" + +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 +msgid "unsigned integer" +msgstr "nepredznačeno celo število" + +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 +msgid "floating point" +msgstr "plavajoča vejica" + +#: ../src/imageio/format/jxl.c:591 +msgid "" +"the quality of the output image\n" +"0-29 = very lossy\n" +"30-99 = JPEG quality comparable\n" +"100 = lossless (integer bit depth only)" +msgstr "" +"kakovost izhodne slike\n" +"0-29 = zelo grobo\n" +"30-99 = JPEG primerna kakovost\n" +"100 = brez izgub (samo celoštevilska bitna globina)" + +#: ../src/imageio/format/jxl.c:600 +msgid "encoding color profile" +msgstr "barvni profil kodiranja" + +#: ../src/imageio/format/jxl.c:601 +msgid "" +"the color profile used by the encoder\n" +"permit internal XYB color space conversion for more efficient lossy " +"compression,\n" +"or ensure no conversion to keep original image color space (implied for " +"lossless)" +msgstr "" +"barvni profil uporabljen pri kodiranju\n" +"dovoljena konverzija v interni barvni prostor XYB za bolj učinkovito delno " +"kompresijo,\n" +"ali zagotovljeno brez kompresije, da se ohrani izvirni barvni prostor " +"(implicitno brez izgub)" + +#: ../src/imageio/format/jxl.c:604 +msgid "internal" +msgstr "interno" + +#: ../src/imageio/format/jxl.c:604 ../src/libs/duplicate.c:405 +#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:840 +msgid "original" +msgstr "izvirnik" + +#: ../src/imageio/format/jxl.c:618 +msgid "encoding effort" +msgstr "trud kodiranja" + +#: ../src/imageio/format/jxl.c:619 +msgid "" +"the effort used to encode the image, higher efforts will have better results " +"at the expense of longer encoding times" +msgstr "" +"trud uporabljen za kodiranje slike, večji trud ima boljše rezultate na račun " +"daljših časov kodiranja" + +#: ../src/imageio/format/jxl.c:630 +msgid "decoding speed" +msgstr "hitrost dekodiranja" + +#: ../src/imageio/format/jxl.c:631 +msgid "the preferred decoding speed with some sacrifice of quality" +msgstr "prednostna hitrost dekodiranja z nekaj žrtvovanja kakovosti" + +#: ../src/imageio/format/pdf.c:200 ../src/imageio/format/pdf.c:480 +msgid "invalid paper size" +msgstr "neveljavna velikost papirja" + +#: ../src/imageio/format/pdf.c:207 +msgid "invalid border size, using 0" +msgstr "neveljavna velikost roba, privzemam 0" + +#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:460 +#: ../src/imageio/storage/email.c:187 ../src/imageio/storage/gallery.c:409 +#: ../src/imageio/storage/gallery.c:450 ../src/imageio/storage/piwigo.c:1236 +#, c-format +msgid "could not export to file `%s'!" +msgstr "nisem mogel izvoziti v datoteko `%s'!" + +#: ../src/imageio/format/pdf.c:409 +msgid "PDF" +msgstr "PDF" + +#: ../src/imageio/format/pdf.c:577 +msgid "enter the title of the PDF" +msgstr "vnesite naslov PDF dokumenta" + +#. paper size +#. // papers +#: ../src/imageio/format/pdf.c:585 ../src/libs/print_settings.c:2510 +msgid "paper size" +msgstr "velikost papirja" + +#: ../src/imageio/format/pdf.c:586 +msgid "" +"paper size of the PDF\n" +"either one from the list or \"<width> [unit] x <height> <unit>\"\n" +"example: 210 mm x 2.97 cm" +msgstr "" +"velikost papirja za PDF\n" +"bodisi iz seznama ali \"<širina> [enota] x <višina> [enota]\n" +"npr.: 210 mm x 2.97 cm" + +#. orientation +#: ../src/imageio/format/pdf.c:600 +msgid "page orientation" +msgstr "orientacija strani" + +#: ../src/imageio/format/pdf.c:601 +msgid "paper orientation of the PDF" +msgstr "orientacija papirja za PDF" + +#. border +#: ../src/imageio/format/pdf.c:609 ../src/imageio/format/pdf.c:611 +msgid "border" +msgstr "rob" + +#: ../src/imageio/format/pdf.c:612 +msgid "" +"empty space around the PDF\n" +"format: size + unit\n" +"examples: 10 mm, 1 inch" +msgstr "" +"prazen prostor okrog PDF\n" +"format: velikost + enota\n" +"npr.: 10 mm, 1 inch" + +#. dpi +#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1218 +#: ../src/libs/export.c:1246 +msgid "dpi" +msgstr "dpi" + +#: ../src/imageio/format/pdf.c:625 +msgid "dpi of the images inside the PDF" +msgstr "dpi za slike znotraj PDF" + +#. rotate images yes|no +#: ../src/imageio/format/pdf.c:631 +msgid "rotate images" +msgstr "zasukaj slike" + +#: ../src/imageio/format/pdf.c:632 +msgid "" +"images can be rotated to match the PDF orientation to waste less space when " +"printing" +msgstr "" +"slike so lahko zasukane v skladu z orientacijo PDF, tako da se bolje " +"izkoristi prostor pri tisku" + +#. pages all|single images|contact sheet +#: ../src/imageio/format/pdf.c:641 +msgid "TODO: pages" +msgstr "še narediti: strani" + +#: ../src/imageio/format/pdf.c:642 +msgid "what pages should be added to the PDF" +msgstr "katere strani naj bi bile dodane PDF-u" + +#: ../src/imageio/format/pdf.c:645 +msgid "single images" +msgstr "posamične slike" + +#: ../src/imageio/format/pdf.c:645 +msgid "contact sheet" +msgstr "stran kontaktov" + +#. TODO +#. embedded icc profile yes|no +#: ../src/imageio/format/pdf.c:651 +msgid "embed ICC profiles" +msgstr "vgradi ICC profile" + +#: ../src/imageio/format/pdf.c:652 +msgid "images can be tagged with their ICC profile" +msgstr "slike so lahko označene z njihovim ICC profilom" + +#: ../src/imageio/format/pdf.c:671 +msgid "bits per channel of the embedded images" +msgstr "bitov na kanal vgrajenih slik" + +#: ../src/imageio/format/pdf.c:677 +msgid "" +"method used for image compression\n" +"uncompressed -- fast but big files\n" +"deflate -- smaller files but slower" +msgstr "" +"metoda za uporabljena za stiskanje slik\n" +"nestisnjen -- hitro a velike datoteke\n" +"stisnjen - majhne datoteke a počasno" + +#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:924 +msgid "deflate" +msgstr "skrči" + +#. image mode normal|draft|debug +#: ../src/imageio/format/pdf.c:687 +msgid "image mode" +msgstr "slikovni način" + +#: ../src/imageio/format/pdf.c:688 +msgid "" +"normal -- just put the images into the PDF\n" +"draft -- images are replaced with boxes\n" +"debug -- only show the outlines and bounding boxes" +msgstr "" +"normal -- samo vstavi sliko v PDF\n" +"osnutek -- slike so označene z okvirji\n" +"iskanje napak -- samo pokaži obrise in okvirje obsega" + +#: ../src/imageio/format/pdf.c:693 +msgid "normal" +msgstr "normalni" + +#: ../src/imageio/format/pdf.c:693 +msgid "draft" +msgstr "osnutek" + +#: ../src/imageio/format/pdf.c:693 +msgid "debug" +msgstr "išči napake" + +#: ../src/imageio/format/ppm.c:111 +msgid "PPM (16-bit)" +msgstr "PPM (16-bitov)" + +#: ../src/imageio/format/tiff.c:246 +#| msgid "will export as a grayscale image" +msgid "not a B&W image, will not export as grayscale" +msgstr "ni črno-bela slika, ne bo izvožena kot sivine" + +#: ../src/imageio/format/tiff.c:925 +msgid "deflate with predictor" +msgstr "skrči s prediktorjem" + +#: ../src/imageio/format/tiff.c:935 +msgid "compression level" +msgstr "nivo kompresije" + +#: ../src/imageio/format/webp.c:426 +msgid "" +"for lossy, 0 gives the smallest size and 100 the best quality.\n" +"for lossless, 0 is the fastest but gives larger files compared\n" +"to the slowest 100." +msgstr "" +"za aproksimativno daje 0 najmanjšo velikost in 100 najboljšo kakovost.\n" +"brez izgub je 0 najhitrejša, vendar daje večje datoteke v primerjavi\n" +"z najpočasnejšo 100." + +#: ../src/imageio/format/webp.c:436 +msgid "image hint" +msgstr "namig za sliko" + +#: ../src/imageio/format/webp.c:437 +msgid "" +"image characteristics hint for the underlying encoder.\n" +"picture: digital picture, like portrait, inner shot\n" +"photo: outdoor photograph, with natural lighting\n" +"graphic: discrete tone image (graph, map-tile etc)" +msgstr "" +"osnovne značilnosti slike za kodiranje spodaj.\n" +"slika: digitalna slika kot npr. portret posnet v notranjosti\n" +"fotografija: zunanja fotografija z naravno svetlobo\n" +"grafika: slika v diskretnih tonih (grafikon, zemljevid itd.)" + +#: ../src/imageio/format/webp.c:442 +msgid "picture" +msgstr "slika" + +#: ../src/imageio/format/webp.c:442 +msgid "photo" +msgstr "fotografija" + +#: ../src/imageio/format/webp.c:442 +msgid "graphic" +msgstr "grafika" + +#: ../src/imageio/format/xcf.c:314 +msgid "XCF" +msgstr "XCF" + +#: ../src/imageio/storage/disk.c:74 ../src/libs/export.c:1119 +msgid "file on disk" +msgstr "datoteka na disku" + +#: ../src/imageio/storage/disk.c:251 ../src/imageio/storage/gallery.c:204 +#: ../src/imageio/storage/latex.c:191 +msgid "" +"enter the path where to put exported images\n" +"variables support bash like string manipulation\n" +"type '$(' to activate the completion and see the list of variables" +msgstr "" +"se shranijo izvožene slike\n" +"spremenljivke podpirajo bash-eve manipulacije z besedili\n" +"vtipkajte '$(' da aktivirate zaključevanje in poglejte seznam spremenljivk" + +#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/piwigo.c:1113 +msgid "on conflict" +msgstr "pri konfliktu" + +#: ../src/imageio/storage/disk.c:268 +msgid "create unique filename" +msgstr "ustvari enolično ime datoteke" + +#. DT_COPY_HISTORY_APPEND +#: ../src/imageio/storage/disk.c:269 ../src/imageio/storage/piwigo.c:1117 +#: ../src/libs/copy_history.c:404 ../src/libs/image.c:670 +#: ../src/libs/styles.c:854 +msgid "overwrite" +msgstr "prepiši" + +#: ../src/imageio/storage/disk.c:270 +#| msgid "overwrite" +msgid "overwrite if changed" +msgstr "prepiši, če je spremenjena" + +#: ../src/imageio/storage/disk.c:271 ../src/imageio/storage/piwigo.c:1115 +msgid "skip" +msgstr "preskoči" + +#: ../src/imageio/storage/disk.c:371 ../src/imageio/storage/gallery.c:326 +#: ../src/imageio/storage/latex.c:289 +#, c-format +msgid "could not create directory `%s'!" +msgstr "nisem mogel ustvariti mape `%s'!" + +#: ../src/imageio/storage/disk.c:382 +#, c-format +msgid "could not write to directory `%s'!" +msgstr "nisem mogel pisati v mapo `%s'!" + +#: ../src/imageio/storage/disk.c:419 +#, c-format +msgid "%d/%d skipping `%s'" +msgid_plural "%d/%d skipping `%s'" +msgstr[0] "%d/%d preskakujem `%s'" +msgstr[1] "%d/%d preskakujem `%s'" +msgstr[2] "%d/%d preskakujem `%s'" +msgstr[3] "%d/%d preskakujem `%s'" + +#: ../src/imageio/storage/disk.c:441 +#, c-format +msgid "%d/%d skipping (not modified since export) `%s'" +msgid_plural "%d/%d skipping (not modified since export) `%s'" +msgstr[0] "%d/%d preskok (ni bil spremenjen od izvoza) `%s'" +msgstr[1] "%d/%d preskok (ni bil spremenjen od izvoza) `%s'" +msgstr[2] "%d/%d preskok (ni bil spremenjen od izvoza) `%s'" +msgstr[3] "%d/%d preskok (ni bil spremenjen od izvoza) `%s'" + +#: ../src/imageio/storage/disk.c:465 ../src/imageio/storage/email.c:194 +#: ../src/imageio/storage/gallery.c:458 ../src/imageio/storage/latex.c:377 +#, c-format +msgid "%d/%d exported to `%s'" +msgid_plural "%d/%d exported to `%s'" +msgstr[0] "%d/%d izvožen v `%s'" +msgstr[1] "%d/%d izvožena v `%s'" +msgstr[2] "%d/%d izvoženi v `%s'" +msgstr[3] "%d/%d izvoženih v `%s'" + +#: ../src/imageio/storage/disk.c:530 +msgid "" +"you are going to export in overwrite mode, this will overwrite any existing " +"images\n" +"\n" +"do you really want to continue?" +msgstr "" +"nameravate izvažati v prepisljivem načinu, to utegne prepisati že obstoječe " +"slike\n" +"\n" +"ali želite nadaljevati?" + +#: ../src/imageio/storage/email.c:57 +msgid "send as email" +msgstr "poslano po elektronski pošti" + +#. Unlikely in normal Windows installations, but let's notify the user if it happens +#: ../src/imageio/storage/email.c:265 +#| msgid "could not launch email client!" +msgid "could not open mapi32.dll" +msgstr "ni bilo mogoče odpreti mapi32.dll" + +#. Even more unlikely +#: ../src/imageio/storage/email.c:275 +#| msgid "could not launch email client!" +msgid "could not get SendMail function" +msgstr "ni bilo mogoče dobiti funkcije SendMail" + +#: ../src/imageio/storage/email.c:319 ../src/imageio/storage/email.c:409 +msgid "images exported from darktable" +msgstr "slike izvožene iz programa darktable" + +#: ../src/imageio/storage/email.c:388 ../src/imageio/storage/email.c:467 +msgid "could not launch email client!" +msgstr "nisem mogel aktivirati poštnega odjemalca!" + +#: ../src/imageio/storage/gallery.c:76 +msgid "website gallery" +msgstr "spletna galerija" + +#: ../src/imageio/storage/gallery.c:224 +msgid "enter the title of the website" +msgstr "vnesite naslov spletne strani" + +#: ../src/imageio/storage/latex.c:72 +msgid "LaTeX book template" +msgstr "šablona za knjigo LaTeX" + +#: ../src/imageio/storage/latex.c:209 +msgid "enter the title of the book" +msgstr "vnesite naslov knjige" + +#: ../src/imageio/storage/piwigo.c:525 +msgid "authenticated" +msgstr "overjeno" + +#: ../src/imageio/storage/piwigo.c:536 ../src/imageio/storage/piwigo.c:552 +#: ../src/imageio/storage/piwigo.c:565 +msgid "not authenticated" +msgstr "ni overjeno" + +#: ../src/imageio/storage/piwigo.c:542 +msgid "not authenticated, cannot reach server" +msgstr "ni overjeno, ne morem doseči strežnika" + +#: ../src/imageio/storage/piwigo.c:595 ../src/imageio/storage/piwigo.c:684 +msgid "create new album" +msgstr "ustvari nov album" + +#: ../src/imageio/storage/piwigo.c:685 +msgid "---" +msgstr "---" + +#: ../src/imageio/storage/piwigo.c:735 +msgid "cannot refresh albums" +msgstr "ne morem osvežiti albumov" + +#: ../src/imageio/storage/piwigo.c:950 +msgid "Piwigo" +msgstr "Piwigo" + +#: ../src/imageio/storage/piwigo.c:976 +msgid "accounts" +msgstr "računi" + +#: ../src/imageio/storage/piwigo.c:995 ../src/imageio/storage/piwigo.c:1004 +msgid "server" +msgstr "strežnik" + +#: ../src/imageio/storage/piwigo.c:998 +#| msgid "" +#| "the server name\n" +#| "default protocol is https\n" +#| "specify http:// if non secure server" +msgid "" +"the server name\n" +"default protocol is https\n" +"specify insecure protocol http:// explicitly if that protocol is required" +msgstr "" +"ime strežnika\n" +"privzeti protokol je https\n" +"izrecno navedite nevaren protokol http://, če je zahtevan prav ta protokol" + +#: ../src/imageio/storage/piwigo.c:1014 ../src/imageio/storage/piwigo.c:1021 +msgid "user" +msgstr "uporabnik" + +#: ../src/imageio/storage/piwigo.c:1029 ../src/imageio/storage/piwigo.c:1034 +msgid "password" +msgstr "geslo" + +#. login button +#: ../src/imageio/storage/piwigo.c:1039 +msgid "login" +msgstr "prijava" + +#: ../src/imageio/storage/piwigo.c:1040 +msgid "Piwigo login" +msgstr "prijava za Piwigo" + +#. permissions list +#: ../src/imageio/storage/piwigo.c:1056 +msgid "visible to" +msgstr "vidno" + +#: ../src/imageio/storage/piwigo.c:1058 +msgid "everyone" +msgstr "vsak" + +#: ../src/imageio/storage/piwigo.c:1059 +msgid "contacts" +msgstr "kontakti" + +#: ../src/imageio/storage/piwigo.c:1060 +msgid "friends" +msgstr "prijatelji" + +#: ../src/imageio/storage/piwigo.c:1061 +msgid "family" +msgstr "družina" + +#: ../src/imageio/storage/piwigo.c:1062 +msgid "you" +msgstr "vi" + +#. Available albums +#: ../src/imageio/storage/piwigo.c:1069 +msgid "album" +msgstr "album" + +#: ../src/imageio/storage/piwigo.c:1076 +msgid "refresh album list" +msgstr "osvežen seznam albumov" + +#. Album title +#: ../src/imageio/storage/piwigo.c:1096 +msgid "new album" +msgstr "novi album" + +#. Available albums +#: ../src/imageio/storage/piwigo.c:1105 +msgid "parent album" +msgstr "nadrejeni album" + +#: ../src/imageio/storage/piwigo.c:1109 +msgid "click login button to start" +msgstr "za začetek kliknite na gumb login" + +#: ../src/imageio/storage/piwigo.c:1114 +msgid "don't check" +msgstr "ne preverjaj" + +#: ../src/imageio/storage/piwigo.c:1116 +msgid "update metadata" +msgstr "osveži metapodatke" + +#: ../src/imageio/storage/piwigo.c:1255 +msgid "cannot create a new Piwigo album!" +msgstr "ne morem tvoriti novega albuma v Piwigo!" + +#: ../src/imageio/storage/piwigo.c:1274 +msgid "could not update to Piwigo!" +msgstr "ni bilo mogoče osvežiti v Piwigo!" + +#: ../src/imageio/storage/piwigo.c:1290 +msgid "could not upload to Piwigo!" +msgstr "ni bilo mogoče prenesti v Piwigo!" + +#: ../src/imageio/storage/piwigo.c:1319 +#, c-format +msgid "%d/%d skipped (already exists)" +msgstr "%d/%d preskočeno (že obstaja)" + +#: ../src/imageio/storage/piwigo.c:1325 +#, c-format +msgid "%d/%d exported to Piwigo webalbum" +msgid_plural "%d/%d exported to Piwigo webalbum" +msgstr[0] "%d/%d izvoženo v spletni album Piwigo" +msgstr[1] "%d/%d izvoženo v spletni album Piwigo" +msgstr[2] "%d/%d izvoženo v spletni album Piwigo" +msgstr[3] "%d/%d izvoženo v spletni album Piwigo" + +#: ../src/iop/ashift.c:120 +msgid "rotate and perspective" +msgstr "sukanje in perspektiva" + +#: ../src/iop/ashift.c:125 +msgid "rotation|keystone|distortion|crop|reframe" +msgstr "sukanje|temeljni kamen|popačenje|obrez|ponovno okvirjenje" + +#: ../src/iop/ashift.c:130 +msgid "rotate or distort perspective" +msgstr "zasukaj ali popači perspektivo" + +#: ../src/iop/ashift.c:131 ../src/iop/channelmixer.c:139 +#: ../src/iop/channelmixerrgb.c:233 ../src/iop/clipping.c:363 +#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:185 +#: ../src/iop/colorchecker.c:130 ../src/iop/colorcorrection.c:77 +#: ../src/iop/crop.c:134 ../src/iop/lut3d.c:142 ../src/iop/primaries.c:80 +msgid "corrective or creative" +msgstr "korektiven ali kreativen" + +#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:174 +#: ../src/iop/bilateral.cc:103 ../src/iop/bilateral.cc:105 +#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:236 ../src/iop/clipping.c:364 +#: ../src/iop/clipping.c:366 ../src/iop/colorbalancergb.c:186 +#: ../src/iop/colorin.c:136 ../src/iop/crop.c:135 ../src/iop/crop.c:137 +#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:780 +#: ../src/iop/denoiseprofile.c:782 ../src/iop/diffuse.c:146 +#: ../src/iop/diffuse.c:148 ../src/iop/exposure.c:132 ../src/iop/exposure.c:134 +#: ../src/iop/flip.c:111 ../src/iop/flip.c:112 ../src/iop/hazeremoval.c:113 +#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:263 ../src/iop/lens.cc:265 +#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/primaries.c:81 +#: ../src/iop/primaries.c:83 ../src/iop/retouch.c:210 ../src/iop/retouch.c:212 +#: ../src/iop/sigmoid.c:209 ../src/iop/splittoning.c:106 +#: ../src/iop/splittoning.c:108 ../src/iop/spots.c:70 ../src/iop/spots.c:72 +#: ../src/iop/toneequal.c:333 ../src/iop/velvia.c:99 ../src/iop/velvia.c:101 +msgid "linear, RGB, scene-referred" +msgstr "linearno, RGB, glede na sceno" + +#: ../src/iop/ashift.c:133 ../src/iop/borders.c:325 ../src/iop/clipping.c:365 +#: ../src/iop/crop.c:136 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 +msgid "geometric, RGB" +msgstr "geometrično, RGB" + +#: ../src/iop/ashift.c:2866 +msgid "automatic cropping failed" +msgstr "avtomatično obrezovanje je spodletelo" + +#: ../src/iop/ashift.c:3276 ../src/iop/ashift.c:3328 ../src/iop/ashift.c:3375 +msgid "data pending - please repeat" +msgstr "podatki v dobavljanju - prosim ponovite" + +#: ../src/iop/ashift.c:3285 +msgid "could not detect structural data in image" +msgstr "nisem uspel razbrati strukturnih podatkov v sliki" + +#: ../src/iop/ashift.c:3297 +msgid "could not run outlier removal" +msgstr "odstranjevanje osamelcev ni uspelo" + +#: ../src/iop/ashift.c:3474 +#, c-format +msgid "" +"not enough structure for automatic correction\n" +"minimum %d lines in each relevant direction" +msgstr "" +"ni dovolj strukture za avtomatični popravek\n" +"minimalno %d linij v vsaki relevantni smeri" + +#: ../src/iop/ashift.c:3480 +msgid "automatic correction failed, please correct manually" +msgstr "avtomatično popravljanje je spodletelo, prosim popravite ročno" + +#: ../src/iop/ashift.c:5077 +#, c-format +msgid "only %d lines can be saved in parameters" +msgstr "samo %d vrstic je lahko shranjenih v parametrih" + +#: ../src/iop/ashift.c:5157 +#, c-format +#| msgid "rotation adjusted by %3.1f° to %3.1f°" +msgid "rotation adjusted by %3.2f° to %3.2f°" +msgstr "rotacija prilagojena za %3.2f° do %3.2f°" + +#: ../src/iop/ashift.c:5797 ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 +#: ../src/iop/ashift.c:5906 +#, c-format +msgid "lens shift (%s)" +msgstr "pomik lečja (%s)" + +#: ../src/iop/ashift.c:6072 +msgid "manual perspective" +msgstr "ročna perspektiva" + +#: ../src/iop/ashift.c:6117 +msgctxt "section" +msgid "perspective" +msgstr "perspektiva" + +#: ../src/iop/ashift.c:6124 ../src/iop/ashift.c:6233 ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6237 +msgid "structure" +msgstr "struktura" + +#: ../src/iop/ashift.c:6159 +msgid "" +"rotate image\n" +"right-click and drag to define a horizontal or vertical line by drawing on " +"the image" +msgstr "" +"zasukaj sliko\n" +"desni klik in poteg za določanje vodoravne ali navpične črte, ki jo narišete " +"na sliko" + +#: ../src/iop/ashift.c:6162 ../src/iop/ashift.c:6164 +msgid "apply lens shift correction in one direction" +msgstr "uporabi popravek pomika lečja v eni smeri" + +#: ../src/iop/ashift.c:6166 +msgid "shear the image along one diagonal" +msgstr "prireži sliko ob eni diagonali" + +#: ../src/iop/ashift.c:6167 ../src/iop/clipping.c:2170 +msgid "automatically crop to avoid black edges" +msgstr "avtomatično obreži v izogib črnim robovom" + +#: ../src/iop/ashift.c:6168 +msgid "" +"lens model of the perspective correction: generic or according to the focal " +"length" +msgstr "" +"model popravkov perspektive objektiva: generični ali odvisen od goriščne " +"razdalje" + +#: ../src/iop/ashift.c:6171 +msgid "focal length of the lens, default value set from EXIF data if available" +msgstr "" +"goriščna razdalja lečja, privzeta vrednost iz podatkov v EXIFu, če obstaja" + +#: ../src/iop/ashift.c:6174 +msgid "" +"crop factor of the camera sensor, default value set from EXIF data if " +"available, manual setting is often required" +msgstr "" +"faktor obreza senzorja, privzeta vrednost iz podatkov v EXIFu, če obstaja, " +"pogosto je potrebna ročna nastavitev" + +#: ../src/iop/ashift.c:6178 +msgid "" +"the level of lens dependent correction, set to maximum for full lens " +"dependency, set to zero for the generic case" +msgstr "" +"nivo popravkov, ki so odvisni od objektiva, postavljeno na max za popolno " +"odvisnost od objektiva, postavljeno na 0 za generični primer" + +#: ../src/iop/ashift.c:6182 +msgid "adjust aspect ratio of image by horizontal and vertical scaling" +msgstr "" +"prilagoditev razmerja proporcev slike s spremembo meril v horizontalni in " +"vertikalni smeri" + +#: ../src/iop/ashift.c:6184 +msgid "" +"automatically correct for vertical perspective distortion\n" +"ctrl+click to only fit rotation\n" +"shift+click to only fit lens shift" +msgstr "" +"avtomatično popravi popačenja vertikalne perspektive\n" +"krmilka+klik samo za prilagajanje zasuka\n" +"dvigalka+klik samo za prilagajanje zamika lečja" + +#: ../src/iop/ashift.c:6188 +msgid "" +"automatically correct for horizontal perspective distortion\n" +"ctrl+click to only fit rotation\n" +"shift+click to only fit lens shift" +msgstr "" +"avtomatično popravljanje popačenja horizontalne perspektive\n" +"krmilka+klik samo za prilagajanje zasuka\n" +"dvigalka+klik samo za prilagajanje zamika lečja" + +#: ../src/iop/ashift.c:6192 +msgid "" +"automatically correct for vertical and horizontal perspective distortions, " +"fitting rotation, lens shift in both directions, and shear\n" +"ctrl+click to only fit rotation\n" +"shift+click to only fit lens shift\n" +"ctrl+shift+click to only fit rotation and lens shift" +msgstr "" +"avtomatično popravljanje popačenj vertikalne in horizontalne perspektive; " +"prilagajanje zasuka, zamika lečja v obeh smereh in prireza\n" +"krmilka+klik samo za prilagajanje zasuka\n" +"dvigalka+klik samo za prilagajanje zamika lečja\n" +"krmilka+dvigalka+klik samo za prilagajanje zasuka in zamika lečja" + +#: ../src/iop/ashift.c:6199 +msgid "" +"automatically analyse line structure in image\n" +"ctrl+click for an additional edge enhancement\n" +"shift+click for an additional detail enhancement\n" +"ctrl+shift+click for a combination of both methods" +msgstr "" +"analiza strukture linij slike\n" +"krmilka+klik za dodatne izboljšave robov\n" +"dvigalka+klik za dodatne izboljšave podrobnosti\n" +"krmilka+dvigalka+klik za kombinacijo obeh metod" + +#: ../src/iop/ashift.c:6204 +msgid "manually define perspective rectangle" +msgstr "ročno določi pravokotnik perspektive" + +#: ../src/iop/ashift.c:6205 +msgid "manually draw structure lines" +msgstr "ročno nariši strukture linij" + +#: ../src/iop/ashift.c:6234 +msgid "rectangle" +msgstr "pravokotnik" + +#: ../src/iop/ashift.c:6236 +msgid "lines" +msgstr "črte" + +#: ../src/iop/ashift.c:6270 ../src/iop/clipping.c:3383 +#, c-format +msgid "[%s] define/rotate horizon" +msgstr "[%s] določi/zasukaj horizont" + +#: ../src/iop/ashift.c:6273 +#, c-format +msgid "[%s on segment] select segment" +msgstr "[%s na segmentu] izberite segment" + +#: ../src/iop/ashift.c:6277 +#, c-format +msgid "[%s on segment] unselect segment" +msgstr "[%s na segmentu] prekličite izbiro segmenta" + +#: ../src/iop/ashift.c:6281 +#, c-format +msgid "[%s] select all segments from zone" +msgstr "[%s] izberite vse segmente iz cone" + +#: ../src/iop/ashift.c:6285 +#, c-format +msgid "[%s] unselect all segments from zone" +msgstr "[%s] prekličite izbiro vseh segmentov iz cone" + +#: ../src/iop/atrous.c:122 ../src/iop/atrous.c:1770 +msgid "contrast equalizer" +msgstr "izenačevalnik kontrastov" + +#: ../src/iop/atrous.c:127 +msgid "sharpness|acutance|local contrast" +msgstr "ostrina|ostrina roba|lokalni kontrast" + +#: ../src/iop/atrous.c:132 +msgid "add or remove local contrast, sharpness, acutance" +msgstr "dodaj ali odstrani lokalni kontrast, ostrino, ostrino roba" + +#: ../src/iop/atrous.c:133 ../src/iop/bilateral.cc:102 ../src/iop/diffuse.c:145 +#: ../src/iop/exposure.c:131 ../src/iop/filmicrgb.c:352 +#: ../src/iop/graduatednd.c:146 ../src/iop/negadoctor.c:146 +#: ../src/iop/rgbcurve.c:145 ../src/iop/rgblevels.c:125 ../src/iop/shadhi.c:144 +#: ../src/iop/sigmoid.c:209 ../src/iop/tonecurve.c:184 +#: ../src/iop/toneequal.c:332 +msgid "corrective and creative" +msgstr "korekcijski in kreativen" + +#: ../src/iop/atrous.c:134 ../src/iop/atrous.c:136 +#: ../src/iop/colorbalance.c:164 +msgid "linear, Lab, scene-referred" +msgstr "linearni, Lab, glede na sceno" + +#: ../src/iop/atrous.c:135 ../src/iop/censorize.c:85 +#: ../src/iop/hazeremoval.c:114 +msgid "frequential, RGB" +msgstr "frekvenčni, RGB" + +#: ../src/iop/atrous.c:799 +msgctxt "eq_preset" +msgid "coarse" +msgstr "grobo" + +#: ../src/iop/atrous.c:815 +msgid "denoise & sharpen" +msgstr "odstranjevanje šuma & ostrenje" + +#: ../src/iop/atrous.c:831 +msgctxt "atrous" +msgid "sharpen" +msgstr "ostrenje" + +#: ../src/iop/atrous.c:847 +msgid "denoise chroma" +msgstr "odstranjevanje šuma krome" + +#: ../src/iop/atrous.c:863 +msgid "denoise" +msgstr "odstranjevanje šuma" + +#: ../src/iop/atrous.c:880 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:448 +msgid "bloom" +msgstr "cvetenje" + +#: ../src/iop/atrous.c:896 ../src/iop/bilat.c:186 +msgid "clarity" +msgstr "jasnost" + +#: ../src/iop/atrous.c:917 +msgid "deblur: large blur, strength 3" +msgstr "odstranitev zamegljenosti: velika zamegljenost, moč 4" + +#: ../src/iop/atrous.c:935 +msgid "deblur: medium blur, strength 3" +msgstr "odstranitev zamegljenosti: srednja zamegljenost, moč 3" + +#: ../src/iop/atrous.c:952 +msgid "deblur: fine blur, strength 3" +msgstr "odstranitev zamegljenosti: fina zamegljenost, moč 3" + +#: ../src/iop/atrous.c:971 +msgid "deblur: large blur, strength 2" +msgstr "odstranitev zamegljenosti: velika zamegljenost, moč 2" + +#: ../src/iop/atrous.c:989 +msgid "deblur: medium blur, strength 2" +msgstr "odstranitev zamegljenosti: srednja zamegljenost, moč 2" + +#: ../src/iop/atrous.c:1006 +msgid "deblur: fine blur, strength 2" +msgstr "odstranitev zamegljenosti: fina zamegljenost, moč 2" + +#: ../src/iop/atrous.c:1025 +msgid "deblur: large blur, strength 1" +msgstr "odstranitev zamegljenosti: velika zamegljenost, moč 1" + +#: ../src/iop/atrous.c:1043 +msgid "deblur: medium blur, strength 1" +msgstr "odstranitev zamegljenosti: srednja zamegljenost, moč 1" + +#: ../src/iop/atrous.c:1060 +msgid "deblur: fine blur, strength 1" +msgstr "odstranitev zamegljenosti: fina zamegljenost, moč 1" + +#: ../src/iop/atrous.c:1390 ../src/iop/atrous.c:1639 +#: ../src/iop/denoiseprofile.c:3514 ../src/iop/rawdenoise.c:754 +msgid "coarse" +msgstr "grobo" + +#: ../src/iop/atrous.c:1397 ../src/iop/atrous.c:1640 +#: ../src/iop/denoiseprofile.c:3522 ../src/iop/rawdenoise.c:762 +msgid "fine" +msgstr "fino" + +#: ../src/iop/atrous.c:1409 +msgid "contrasty" +msgstr "kontrastno" + +#: ../src/iop/atrous.c:1415 ../src/iop/denoiseprofile.c:3536 +#: ../src/iop/rawdenoise.c:776 +msgid "noisy" +msgstr "šumno" + +#. case atrous_s: +#: ../src/iop/atrous.c:1418 +msgid "bold" +msgstr "krepko" + +#: ../src/iop/atrous.c:1419 +msgid "dull" +msgstr "zamegljeno" + +#: ../src/iop/atrous.c:1627 ../src/iop/atrous.c:1685 +msgid "boost" +msgstr "pospeši" + +#: ../src/iop/atrous.c:1628 +msgid "reduce" +msgstr "zmanjšaj" + +#: ../src/iop/atrous.c:1629 +msgid "raise" +msgstr "dvigni" + +#: ../src/iop/atrous.c:1630 +msgid "lower" +msgstr "spusti" + +#: ../src/iop/atrous.c:1637 +msgid "coarsest" +msgstr "najbolj grobo" + +#: ../src/iop/atrous.c:1638 +msgid "coarser" +msgstr "bolj grobo" + +#: ../src/iop/atrous.c:1641 +msgid "finer" +msgstr "finejše" + +#: ../src/iop/atrous.c:1642 +msgid "finest" +msgstr "najfinejše" + +#: ../src/iop/atrous.c:1710 ../src/libs/export.c:1239 ../src/libs/export.c:1255 +msgid "x" +msgstr "x" + +#: ../src/iop/atrous.c:1799 ../src/iop/nlmeans.c:468 +msgid "luma" +msgstr "luma" + +#: ../src/iop/atrous.c:1800 +msgid "change lightness at each feature size" +msgstr "zamenjaj svetlost za vsako vrednost lastnosti" + +#: ../src/iop/atrous.c:1802 +msgid "change color saturation at each feature size" +msgstr "spremeni nasičenost barv pri vsaki možnosti" + +#: ../src/iop/atrous.c:1804 +msgid "edges" +msgstr "robovi" + +#: ../src/iop/atrous.c:1805 +msgid "" +"change edge halos at each feature size\n" +"only changes results of luma and chroma tabs" +msgstr "" +"spremeni robne sije pri vsaki velikosti efekta\n" +"edine spremembe so posledica zavihkov luma in krome" + +#: ../src/iop/atrous.c:1818 ../src/iop/colorbalancergb.c:2129 +#: ../src/iop/colorzones.c:2732 ../src/iop/denoiseprofile.c:3747 +#: ../src/iop/filmicrgb.c:4471 ../src/iop/lowlight.c:821 +#: ../src/iop/rawdenoise.c:935 ../src/iop/toneequal.c:3424 +msgid "graph" +msgstr "graf" + +#: ../src/iop/atrous.c:1836 ../src/iop/colorzones.c:2729 +msgid "make effect stronger or weaker" +msgstr "povečaj ali zmanjšaj učinek" + +#: ../src/iop/basecurve.c:260 +msgid "neutral" +msgstr "nevtralno" + +#: ../src/iop/basecurve.c:261 +msgid "canon eos like" +msgstr "kot canon eos" + +#: ../src/iop/basecurve.c:262 +msgid "canon eos like alternate" +msgstr "kot canon eos (alternativni)" + +#: ../src/iop/basecurve.c:263 +msgid "nikon like" +msgstr "kot nikon" + +#: ../src/iop/basecurve.c:264 +msgid "nikon like alternate" +msgstr "kot nikon (alternativni)" + +#: ../src/iop/basecurve.c:265 +msgid "sony alpha like" +msgstr "kot sony alpha" + +#: ../src/iop/basecurve.c:266 +msgid "pentax like" +msgstr "kot pentax" + +#: ../src/iop/basecurve.c:267 +msgid "ricoh like" +msgstr "kot ricoh" + +#: ../src/iop/basecurve.c:268 +msgid "olympus like" +msgstr "kot olympus" + +#: ../src/iop/basecurve.c:269 +msgid "olympus like alternate" +msgstr "kot olympus (alternativni)" + +#: ../src/iop/basecurve.c:270 +msgid "panasonic like" +msgstr "kot panasonic" + +#: ../src/iop/basecurve.c:271 +msgid "leica like" +msgstr "kot leica" + +#: ../src/iop/basecurve.c:272 +msgid "kodak easyshare like" +msgstr "kot kodak easyshare" + +#: ../src/iop/basecurve.c:273 +msgid "konica minolta like" +msgstr "kot konica minolta" + +#: ../src/iop/basecurve.c:274 +msgid "samsung like" +msgstr "kot samsung" + +#: ../src/iop/basecurve.c:275 +msgid "fujifilm like" +msgstr "kot fujifilm" + +#: ../src/iop/basecurve.c:276 +msgid "nokia like" +msgstr "kot nokia" + +#. clang-format off +#. smoother cubic spline curve +#: ../src/iop/basecurve.c:331 ../src/iop/colorzones.c:2763 +#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1195 +msgid "cubic spline" +msgstr "kubični zlepek" + +#: ../src/iop/basecurve.c:390 +msgid "base curve" +msgstr "osnovna krivulja" + +#: ../src/iop/basecurve.c:397 +msgid "" +"apply a view transform based on personal or camera manufacturer look,\n" +"for corrective purposes, to prepare images for display" +msgstr "" +"uporabi pretvorbo pogleda glede na osebni videz ali videz proizvajalca " +"fotoaparata,\n" +"v korektivne namene za pripravo slik za prikaz" + +#: ../src/iop/basecurve.c:399 ../src/iop/cacorrect.c:84 +#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:120 +#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:779 +#: ../src/iop/flip.c:110 ../src/iop/hazeremoval.c:112 +#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:75 +#: ../src/iop/invert.c:136 ../src/iop/lens.cc:262 ../src/iop/nlmeans.c:89 +#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:144 +#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:96 ../src/iop/spots.c:69 +#: ../src/iop/temperature.c:220 +msgid "corrective" +msgstr "korektivni" + +#: ../src/iop/basecurve.c:400 ../src/iop/channelmixer.c:140 +#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:143 +#: ../src/iop/negadoctor.c:147 ../src/iop/profile_gamma.c:103 +#: ../src/iop/rgbcurve.c:146 ../src/iop/rgbcurve.c:148 +#: ../src/iop/rgblevels.c:126 ../src/iop/sigmoid.c:210 ../src/iop/soften.c:104 +#: ../src/iop/soften.c:106 +msgid "linear, RGB, display-referred" +msgstr "linearni, RGB, glede na zaslon" + +#: ../src/iop/basecurve.c:401 ../src/iop/basicadj.c:175 +#: ../src/iop/colorbalance.c:165 ../src/iop/colorbalancergb.c:187 +#: ../src/iop/dither.c:121 ../src/iop/filmicrgb.c:354 +#: ../src/iop/graduatednd.c:148 ../src/iop/negadoctor.c:148 +#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:147 +#: ../src/iop/rgblevels.c:127 ../src/iop/sigmoid.c:210 +#: ../src/iop/vignette.c:122 ../src/iop/watermark.c:424 +msgid "non-linear, RGB" +msgstr "ne-linearni, RGB" + +#: ../src/iop/basecurve.c:402 ../src/iop/dither.c:120 ../src/iop/dither.c:122 +#: ../src/iop/filmicrgb.c:355 ../src/iop/graduatednd.c:149 +#: ../src/iop/negadoctor.c:149 ../src/iop/profile_gamma.c:105 +#: ../src/iop/rgblevels.c:128 ../src/iop/vignette.c:121 +#: ../src/iop/vignette.c:123 ../src/iop/watermark.c:423 +#: ../src/iop/watermark.c:425 +msgid "non-linear, RGB, display-referred" +msgstr "ne-linearni, RGB, glede na zaslon" + +#: ../src/iop/basecurve.c:2205 +msgid "abscissa: input, ordinate: output. works on RGB channels" +msgstr "abscisa: vhod, ordinata: izhod. deluje na kanalih RGB" + +#: ../src/iop/basecurve.c:2211 ../src/iop/basicadj.c:642 +#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1133 +#: ../src/iop/tonecurve.c:1206 +msgid "method to preserve colors when applying contrast" +msgstr "metoda ohranjanja barve pri spreminjanju kontrasta" + +#: ../src/iop/basecurve.c:2215 +msgid "two exposures" +msgstr "dvojna osvetlitev" + +#: ../src/iop/basecurve.c:2216 +msgid "three exposures" +msgstr "tri osvetlitve" + +#: ../src/iop/basecurve.c:2217 +msgid "" +"fuse this image stopped up/down a couple of times with itself, to compress " +"high dynamic range. expose for the highlights before use." +msgstr "" +"zlij to sliko nekajkrat samo s seboj, da bi stisnili dinamični razpon. pred " +"uporabo izpostavi bleščave." + +#: ../src/iop/basecurve.c:2222 +msgid "how many stops to shift the individual exposures apart" +msgstr "koliko stopenj naj zamaknem vsako osvetlitev" + +#: ../src/iop/basecurve.c:2231 +msgid "" +"whether to shift exposure up or down (-1: reduce highlight, +1: reduce " +"shadows)" +msgstr "" +"več ali manj spremeni osvetlitev (-1: potemni bleščave, +1 osvetli sence)" + +#: ../src/iop/basecurve.c:2236 ../src/iop/tonecurve.c:1209 +msgid "scale for graph" +msgstr "merilo grafa" + +#: ../src/iop/basicadj.c:162 +msgid "this module is deprecated. please use the quick access panel instead." +msgstr "" +"ta modul je zastarel. namesto tega raje uporabite ploščo hitrega dostopa." + +#: ../src/iop/basicadj.c:167 +msgid "basic adjustments" +msgstr "osnovne prilagoditve" + +#: ../src/iop/basicadj.c:172 +msgid "apply usual image adjustments" +msgstr "uporabi običajne prilagoditve slike" + +#: ../src/iop/basicadj.c:173 ../src/iop/bilat.c:83 ../src/iop/bloom.c:81 +#: ../src/iop/blurs.c:93 ../src/iop/borders.c:323 ../src/iop/censorize.c:83 +#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:89 +#: ../src/iop/colorize.c:98 ../src/iop/colormapping.c:153 +#: ../src/iop/colorzones.c:146 ../src/iop/grain.c:450 ../src/iop/highpass.c:78 +#: ../src/iop/levels.c:140 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 +#: ../src/iop/lowpass.c:106 ../src/iop/monochrome.c:100 ../src/iop/soften.c:103 +#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:98 ../src/iop/vibrance.c:97 +#: ../src/iop/vignette.c:120 ../src/iop/watermark.c:422 +msgid "creative" +msgstr "kreativno" + +#: ../src/iop/basicadj.c:176 ../src/iop/colorbalancergb.c:188 +msgid "non-linear, RGB, scene-referred" +msgstr "ne-linearni, RGB, glede na sceno" + +#: ../src/iop/basicadj.c:623 +msgid "" +"adjust the black level to unclip negative RGB values.\n" +"you should never use it to add more density in blacks!\n" +"if poorly set, it will clip near-black colors out of gamut\n" +"by pushing RGB values into negatives" +msgstr "" +"prilagodi nivoje črnine za odstranjevanje negativnih vrednosti RGB.\n" +"nikoli ne uporabljajte tega za več gostote v črninah,\n" +"če je slabo nastavljeno, bo izrezal barve blizu črne iz barvnega razpona\n" +"tako da bo porinil vrednosti RGV v negativno stran" + +#: ../src/iop/basicadj.c:631 ../src/iop/exposure.c:1136 +msgid "adjust the exposure correction" +msgstr "nastavi popravek osvetlitve" + +#: ../src/iop/basicadj.c:635 +msgid "highlight compression adjustment" +msgstr "prilagodite stiskanja bleščav" + +#: ../src/iop/basicadj.c:639 ../src/iop/colisa.c:302 +msgid "contrast adjustment" +msgstr "nastavitev kontrasta" + +#: ../src/iop/basicadj.c:647 +msgid "middle gray adjustment" +msgstr "prilagoditev srednje sive" + +#: ../src/iop/basicadj.c:652 ../src/iop/colisa.c:303 +msgid "brightness adjustment" +msgstr "nastavitev sijavosti" + +#: ../src/iop/basicadj.c:655 +msgid "saturation adjustment" +msgstr "prilagoditev nasičenosti" + +#: ../src/iop/basicadj.c:658 +msgid "vibrance adjustment" +msgstr "prilagoditev živahnosti" + +#: ../src/iop/basicadj.c:662 +msgid "apply auto exposure based on the entire image" +msgstr "izvedi avtomatsko osvetlitev glede na celotno sliko" + +#: ../src/iop/basicadj.c:669 +msgid "" +"apply auto exposure based on a region defined by the user\n" +"click and drag to draw the area\n" +"right click to cancel" +msgstr "" +"izvedi avtomatsko osvetlitev glede na površino, ki jo je določil uporabnik\n" +"klikni in potegni za določite površine\n" +"desni klik za preklic" + +#: ../src/iop/basicadj.c:677 +msgid "clip" +msgstr "klip" + +#: ../src/iop/basicadj.c:679 +msgid "adjusts clipping value for auto exposure calculation" +msgstr "prilagodi vrednost obrezovanja za avtomatski izračun osvetlitve" + +#. local contrast +#: ../src/iop/bilat.c:77 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:578 +msgid "local contrast" +msgstr "lokalni kontrast" + +#: ../src/iop/bilat.c:82 +msgid "manipulate local and global contrast separately" +msgstr "ločeno upravljaj lokalni in globalni kontrast" + +#: ../src/iop/bilat.c:84 ../src/iop/bilat.c:86 ../src/iop/bloom.c:82 +#: ../src/iop/bloom.c:84 ../src/iop/colisa.c:91 ../src/iop/colisa.c:93 +#: ../src/iop/colorcontrast.c:90 ../src/iop/colorcontrast.c:92 +#: ../src/iop/colorcorrection.c:78 ../src/iop/colorcorrection.c:80 +#: ../src/iop/colorize.c:101 ../src/iop/colormapping.c:156 +#: ../src/iop/colorreconstruction.c:123 ../src/iop/colorzones.c:149 +#: ../src/iop/defringe.c:85 ../src/iop/grain.c:451 ../src/iop/grain.c:453 +#: ../src/iop/levels.c:143 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 +#: ../src/iop/monochrome.c:103 ../src/iop/nlmeans.c:90 ../src/iop/nlmeans.c:92 +#: ../src/iop/shadhi.c:147 ../src/iop/tonecurve.c:187 ../src/iop/vibrance.c:100 +msgid "non-linear, Lab, display-referred" +msgstr "ne-linearno, Lab, glede na zaslon" + +#: ../src/iop/bilat.c:85 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 +#: ../src/iop/colorcontrast.c:91 ../src/iop/colorcorrection.c:79 +#: ../src/iop/colorize.c:100 ../src/iop/colormapping.c:155 +#: ../src/iop/colorreconstruction.c:122 ../src/iop/colorzones.c:148 +#: ../src/iop/defringe.c:84 ../src/iop/grain.c:452 ../src/iop/levels.c:142 +#: ../src/iop/monochrome.c:102 ../src/iop/nlmeans.c:91 ../src/iop/shadhi.c:146 +#: ../src/iop/tonecurve.c:186 ../src/iop/vibrance.c:99 +msgid "non-linear, Lab" +msgstr "ne-linearno, Lab" + +#: ../src/iop/bilat.c:195 +msgid "HDR local tone-mapping" +msgstr "HDR lokalna preslikava tonov" + +#: ../src/iop/bilat.c:441 +msgid "" +"the filter used for local contrast enhancement. bilateral is faster but can " +"lead to artifacts around edges for extreme settings." +msgstr "" +"filter uporabljamo za izboljšanje lokalnega kontrasta. bilateralni je " +"hitrejši, a ima lahko za posledico umetne pojave okrog robov pri skrajnih " +"vrednostih." + +#: ../src/iop/bilat.c:445 ../src/iop/globaltonemap.c:668 +msgid "detail" +msgstr "podrobnost" + +#: ../src/iop/bilat.c:448 +msgid "changes the local contrast" +msgstr "sprememba lokalnega kontrasta" + +#: ../src/iop/bilat.c:463 +msgid "feature size of local details (spatial sigma of bilateral filter)" +msgstr "" +"določa velikost lokalnih podrobnosti (prostorska sigma ali bilateralni " +"filter)" + +#: ../src/iop/bilat.c:471 +msgid "L difference to detect edges (range sigma of bilateral filter)" +msgstr "razlika L za določanje robov (sigma obsega bilateralnega filtra)" + +#: ../src/iop/bilat.c:477 +msgid "changes the local contrast of highlights" +msgstr "spremembe lokalnih kontrastov bleščav" + +#: ../src/iop/bilat.c:483 +msgid "changes the local contrast of shadows" +msgstr "spremembe lokalnih kontrastov senc" + +#: ../src/iop/bilat.c:489 +msgid "" +"defines what counts as mid-tones. lower for better dynamic range compression " +"(reduce shadow and highlight contrast), increase for more powerful local " +"contrast" +msgstr "" +"določa, kaj je všteto med srednje tone. spodnje za boljšo dinamično " +"kompresijo razpona (zmanjšamo kontraste senc in bleščav), povečamo za " +"močnejši lokalni kontrast" + +#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:423 +msgid "surface blur" +msgstr "zamegljenost površine" + +#: ../src/iop/bilateral.cc:79 +msgid "denoise (bilateral filter)" +msgstr "odstranjevanje šuma (bilateralni filter)" + +#: ../src/iop/bilateral.cc:101 +msgid "apply edge-aware surface blur to denoise or smoothen textures" +msgstr "" +"uporabi zameglitev roba površin za odpravljanje šuma ali glajenje teksture" + +#: ../src/iop/bilateral.cc:104 ../src/iop/blurs.c:93 +#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:781 +#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/primaries.c:82 +#: ../src/iop/soften.c:105 ../src/iop/splittoning.c:107 ../src/iop/velvia.c:100 +msgid "linear, RGB" +msgstr "linearni, RGB" + +#: ../src/iop/bilateral.cc:138 +msgid "image too large" +msgstr "slika prevelika" + +#: ../src/iop/bilateral.cc:139 +msgid "" +"this module is unable to process\n" +"images with more than 2 gigapixels.\n" +"processing has been skipped." +msgstr "" +"ta modul ne more obdelovati\n" +"večjih slik kot 2 gigapiksla.\n" +"obdelava je bila preskočena." + +#: ../src/iop/bilateral.cc:353 +msgid "spatial extent of the gaussian" +msgstr "prostorski podaljšek Gaussovega" + +#: ../src/iop/bilateral.cc:357 +msgid "how much to blur red" +msgstr "koliko zamegliti rdečo" + +#: ../src/iop/bilateral.cc:362 +msgid "how much to blur green" +msgstr "koliko zamegliti zeleno" + +#: ../src/iop/bilateral.cc:367 +msgid "how much to blur blue" +msgstr "koliko zamegliti modro" + +#: ../src/iop/bloom.c:80 +msgid "apply Orton effect for a dreamy aetherical look" +msgstr "uporabi Ortonov učinek za sanjski eterični videz" + +#: ../src/iop/bloom.c:364 ../src/iop/soften.c:364 ../src/libs/camera.c:567 +#: ../src/libs/masks.c:106 +msgid "size" +msgstr "velikost" + +#: ../src/iop/bloom.c:366 +msgid "the size of bloom" +msgstr "velikost doosvetlitve" + +#: ../src/iop/bloom.c:370 +msgid "the threshold of light" +msgstr "prag svetlobe" + +#: ../src/iop/bloom.c:374 +msgid "the strength of bloom" +msgstr "moč doosvetlitve" + +#: ../src/iop/blurs.c:81 +msgid "blurs" +msgstr "zameglitev" + +#: ../src/iop/blurs.c:86 +msgid "blur|lens|motion" +msgstr "zameglitev|lečje|gibanje" + +#: ../src/iop/blurs.c:92 +msgid "simulate physically-accurate lens and motion blurs" +msgstr "simuliraj fizikalno točne objektive in zamaknjenosti zaradi gibanja" + +#: ../src/iop/borders.c:312 +msgid "framing" +msgstr "okvirjanje" + +#: ../src/iop/borders.c:317 +msgid "borders|enlarge canvas|expand canvas" +msgstr "obrobe |povečaj podlago | razširi podlago" + +#: ../src/iop/borders.c:322 +msgid "add solid borders or margins around the picture" +msgstr "dodaj trdne obrobe ali robove okoli slike" + +#: ../src/iop/borders.c:324 ../src/iop/borders.c:326 ../src/iop/lut3d.c:145 +msgid "linear or non-linear, RGB, display-referred" +msgstr "linearno ali ne-linearno, RGB, glede na zaslon" + +#: ../src/iop/borders.c:737 +msgid "15:10 postcard white" +msgstr "15:10 bela poštna razglednica" + +#: ../src/iop/borders.c:742 +msgid "15:10 postcard black" +msgstr "15:10 črna poštna razglednica" + +#: ../src/iop/borders.c:948 +#| msgid "which filter to use for blurring" +msgid "which dimension to use for the size calculation" +msgstr "katero dimenzijo uporabiti za izračun velikosti" + +#: ../src/iop/borders.c:954 +#| msgid "size of the border in percent of the full image" +msgid "size of the border in percent of the chosen basis" +msgstr "velikost obrobe v odstotkih izbrane osnove" + +#: ../src/iop/borders.c:956 ../src/iop/clipping.c:2271 ../src/iop/crop.c:1208 +msgid "aspect" +msgstr "razmerje stranic" + +#: ../src/iop/borders.c:957 +#| msgid "" +#| "select the aspect ratio (right click on slider below to type your own w:h)" +msgid "" +"select the aspect ratio\n" +"(right click on slider below to type your own w:h)" +msgstr "" +"izberite razmerje stranic\n" +"(desni klik na spodnji drsnik, da vnesete svoje širina:višina)" + +#: ../src/iop/borders.c:961 +msgid "3:1" +msgstr "3:1" + +#: ../src/iop/borders.c:962 +msgid "95:33" +msgstr "95:33" + +#: ../src/iop/borders.c:963 +msgid "CinemaScope 2.39:1" +msgstr "CinemaScope 2.39:1" + +#: ../src/iop/borders.c:964 +msgid "2:1" +msgstr "2:1" + +#: ../src/iop/borders.c:965 +msgid "16:9" +msgstr "16:9" + +#: ../src/iop/borders.c:966 +msgid "5:3" +msgstr "5:3" + +#: ../src/iop/borders.c:967 +msgid "US Legal 8.5x14" +msgstr "ameriški pravni US Legal 8.5x14" + +#: ../src/iop/borders.c:968 ../src/iop/clipping.c:2184 ../src/iop/crop.c:1112 +msgid "golden cut" +msgstr "zlati rez" + +#: ../src/iop/borders.c:969 +msgid "16:10" +msgstr "16:10" + +#: ../src/iop/borders.c:970 +msgid "3:2 (4x6, 10x15cm)" +msgstr "3:2 (4x6, 10x15cm)" + +#: ../src/iop/borders.c:972 +msgid "DIN" +msgstr "DIN" + +#: ../src/iop/borders.c:973 +msgid "7:5" +msgstr "7:5" + +#: ../src/iop/borders.c:974 +msgid "4:3" +msgstr "4:3" + +#: ../src/iop/borders.c:975 +msgid "US Letter 8.5x11" +msgstr "ameriško pismo US Letter 8.5x11" + +#: ../src/iop/borders.c:976 +msgid "14:11" +msgstr "14:11" + +#: ../src/iop/borders.c:977 +msgid "5:4 (8x10)" +msgstr "5:4 (8x10)" + +#: ../src/iop/borders.c:978 ../src/iop/clipping.c:2174 ../src/iop/crop.c:1102 +#: ../src/libs/filtering.c:307 ../src/libs/filters/ratio.c:126 +#: ../src/libs/histogram.c:118 +msgid "square" +msgstr "kvadrat" + +#: ../src/iop/borders.c:979 +msgid "constant border" +msgstr "stalni rob" + +#: ../src/iop/borders.c:980 ../src/iop/borders.c:996 ../src/iop/borders.c:1007 +msgid "custom..." +msgstr "po meri..." + +#: ../src/iop/borders.c:984 +#| msgid "set the custom aspect ratio (right click to enter number or w:h)" +msgid "" +"set the custom aspect ratio\n" +"(right click to enter number or w:h)" +msgstr "" +"izberite razmerje proporcev\n" +"(desni klik za vnos števila ali širina:višina)" + +#: ../src/iop/borders.c:989 +msgid "aspect ratio orientation of the image with border" +msgstr "orientacija razmerja proporcev slike z robom" + +#: ../src/iop/borders.c:991 +msgid "horizontal position" +msgstr "vodoravna pozicija" + +#: ../src/iop/borders.c:992 +#| msgid "" +#| "select the horizontal position ratio relative to top or right click and " +#| "type your own (y:h)" +msgid "" +"select the horizontal position ratio relative to top\n" +"(right click on slider below to type your own x:w)" +msgstr "" +"izberite razmerje vodoravnega položaja glede na vrh\n" +"(desni klik na spodnji drsnik, da vnesete svoj x:w)" + +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 +msgid "center" +msgstr "sredina" + +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 +msgid "1/3" +msgstr "1/3" + +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 +msgid "3/8" +msgstr "3/8" + +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 +msgid "5/8" +msgstr "5/8" + +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 +msgid "2/3" +msgstr "2/3" + +#: ../src/iop/borders.c:1000 +msgid "custom horizontal position" +msgstr "vodoravna pozicija po meri" + +#: ../src/iop/borders.c:1002 +msgid "vertical position" +msgstr "vertikalna pozicija" + +#: ../src/iop/borders.c:1003 +#| msgid "" +#| "select the vertical position ratio relative to left or right click and " +#| "type your own (x:w)" +msgid "" +"select the vertical position ratio relative to left\n" +"(right click on slider below to type your own y:h)" +msgstr "" +"izberite razmerje navpičnega položaja glede na levo\n" +"(desni klik na spodnji drsnik, da vnesete svoje y:h)" + +#: ../src/iop/borders.c:1011 +msgid "custom vertical position" +msgstr "vertikalna pozicija po meri" + +#: ../src/iop/borders.c:1017 +msgid "size of the frame line in percent of min border width" +msgstr "velikost črte okvirja v odstotkih najmanjše širine roba" + +#: ../src/iop/borders.c:1023 +msgid "offset of the frame line beginning on picture side" +msgstr "odmik črte okvirja od roba slike" + +#: ../src/iop/borders.c:1033 ../src/iop/borders.c:1044 +msgid "border color" +msgstr "barva roba" + +#: ../src/iop/borders.c:1037 +msgid "select border color" +msgstr "izberite barvo roba" + +#: ../src/iop/borders.c:1043 +msgid "pick border color from image" +msgstr "izberite barvo roba iz slike" + +#: ../src/iop/borders.c:1044 ../src/iop/borders.c:1061 +#: ../src/iop/colorzones.c:2662 ../src/iop/colorzones.c:2677 +#: ../src/iop/negadoctor.c:867 ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:972 ../src/iop/rgbcurve.c:1369 +#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1075 +#: ../src/iop/rgblevels.c:1083 ../src/iop/rgblevels.c:1091 +msgid "pickers" +msgstr "pobiralniki" + +#: ../src/iop/borders.c:1049 ../src/iop/borders.c:1061 +msgid "frame line color" +msgstr "barva črte okvirja" + +#: ../src/iop/borders.c:1054 +msgid "select frame line color" +msgstr "izberite barvo črte okvirja" + +#: ../src/iop/borders.c:1060 +msgid "pick frame line color from image" +msgstr "izberite barvo črte okvirja iz slike" + +#. make sure you put all your translatable strings into _() ! +#: ../src/iop/cacorrect.c:78 +msgid "raw chromatic aberrations" +msgstr "surovi barvni odklon" + +#: ../src/iop/cacorrect.c:83 +msgid "correct chromatic aberrations for Bayer sensors" +msgstr "korekcija barvnega odklona za Bayerjeve senzorje" + +#: ../src/iop/cacorrect.c:85 ../src/iop/cacorrect.c:87 +#: ../src/iop/cacorrectrgb.c:171 ../src/iop/cacorrectrgb.c:173 +#: ../src/iop/demosaic.c:294 ../src/iop/highlights.c:180 +#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:76 +#: ../src/iop/hotpixels.c:78 ../src/iop/rawdenoise.c:145 +#: ../src/iop/rawdenoise.c:147 ../src/iop/rawprepare.c:175 +#: ../src/iop/rawprepare.c:177 ../src/iop/temperature.c:221 +#: ../src/iop/temperature.c:223 +msgid "linear, raw, scene-referred" +msgstr "linearni, surovi, glede na sceno" + +#: ../src/iop/cacorrect.c:86 ../src/iop/cacorrectrgb.c:172 +#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:138 +#: ../src/iop/rawdenoise.c:146 ../src/iop/rawprepare.c:176 +#: ../src/iop/temperature.c:222 +msgid "linear, raw" +msgstr "linearni, surovi" + +#: ../src/iop/cacorrect.c:1424 +msgid "iteration runs, default is twice" +msgstr "zank iteracije, privzeto sta dve" + +#: ../src/iop/cacorrect.c:1427 +msgid "activate colorshift correction for blue & red channels" +msgstr "aktiviraj korekcijo barvnega pomika na modrem in rdečem kanalu" + +#: ../src/iop/cacorrect.c:1434 +#| msgid "" +#| "automatic chromatic aberration correction\n" +#| "only for Bayer raw files" +msgid "" +"automatic chromatic aberration correction\n" +"only for Bayer raw files with 3 color channels" +msgstr "" +"samodejno popravljanje kromatske aberacije\n" +"samo za surove datoteke Bayer s 3 barvnimi kanali" + +#: ../src/iop/cacorrectrgb.c:164 ../src/iop/defringe.c:76 +msgid "chromatic aberrations" +msgstr "kromatske aberacije" + +#: ../src/iop/cacorrectrgb.c:169 +msgid "correct chromatic aberrations" +msgstr "popravi kromatske aberacije" + +#: ../src/iop/cacorrectrgb.c:745 +msgid "" +"channel used as a reference to\n" +"correct the other channels.\n" +"use sharpest channel if some\n" +"channels are blurry.\n" +"try changing guide channel if you\n" +"have artifacts." +msgstr "" +"kanal, ki se uporablja kot referenca za\n" +"popravke ostalih kanalov.\n" +"uporabite najostrejši kanal, če je nekaj\n" +"kanalov zamegljenih.\n" +"poskusite spremeniti vodniški kanal, če\n" +"imate artefakte." + +#: ../src/iop/cacorrectrgb.c:752 +msgid "increase for stronger correction" +msgstr "povečaj za močnejši popravek" + +#: ../src/iop/cacorrectrgb.c:754 +msgid "" +"balance between smoothing colors\n" +"and preserving them.\n" +"high values can lead to overshooting\n" +"and edge bleeding." +msgstr "" +"ravnovesje med glajenjem barv\n" +"njihovo ohranitev.\n" +"visoke vrednosti lahko vodijo do preseganja\n" +"in premočne robove." + +#: ../src/iop/cacorrectrgb.c:759 +msgctxt "section" +msgid "advanced parameters" +msgstr "napredni parametri" + +#: ../src/iop/cacorrectrgb.c:761 +msgid "" +"correction mode to use.\n" +"can help with multiple\n" +"instances for very damaged\n" +"images.\n" +"darken only is particularly\n" +"efficient to correct blue\n" +"chromatic aberration." +msgstr "" +"uporaba v popravnem načinu.\n" +"lahko pomaga pri več\n" +"pojavkih pri zelo poškodovanih\n" +"slikah.\n" +"samo potemni še posebej\n" +"učinkovito popravi modro\n" +"kromatično aberacijo." + +#: ../src/iop/cacorrectrgb.c:769 +msgid "" +"runs an iterative approach\n" +"with several radii.\n" +"improves result on images\n" +"with very large chromatic\n" +"aberrations, but can smooth\n" +"colors too much on other\n" +"images." +msgstr "" +"izvaja iterativni pristop\n" +"z več polmeri.\n" +"izboljša rezultat na slikah\n" +"z zelo velikimi kromatičnimi\n" +"aberacijami, vendar lahko\n" +"preveč gladi barve na drugih\n" +"slikah." + +#: ../src/iop/censorize.c:77 +msgid "censorize" +msgstr "cenzuriraj" + +#: ../src/iop/censorize.c:82 +msgid "censorize license plates and body parts for privacy" +msgstr "cenzuriraj avtomobilske tablice in zasebne dele telesa" + +#: ../src/iop/censorize.c:84 ../src/iop/colorin.c:134 +#: ../src/iop/filmicrgb.c:353 ../src/iop/graduatednd.c:147 +msgid "linear or non-linear, RGB, scene-referred" +msgstr "linearni ali ne-linearni, RGB, glede na sceno" + +#: ../src/iop/censorize.c:86 +msgid "special, RGB, scene-referred" +msgstr "specialni, RGB, glede na sceno" + +#: ../src/iop/censorize.c:404 +msgid "radius_1" +msgstr "polmer_1" + +#: ../src/iop/censorize.c:406 +msgid "pixelate" +msgstr "pikseliziraj" + +#: ../src/iop/censorize.c:408 +msgid "radius_2" +msgstr "polmer_2" + +#: ../src/iop/censorize.c:410 +msgid "noise" +msgstr "šum" + +#: ../src/iop/censorize.c:412 +msgid "radius of gaussian blur before pixellation" +msgstr "polmer gaussovega zamegljevanja pred pikselacijo" + +#: ../src/iop/censorize.c:413 +msgid "radius of gaussian blur after pixellation" +msgstr "polmer Gaussovega zamegljevanja po pikselaciji" + +#: ../src/iop/censorize.c:414 +msgid "radius of the intermediate pixellation" +msgstr "radij vmesne pikselacije" + +#: ../src/iop/censorize.c:415 +msgid "amount of noise to add at the end" +msgstr "količina šuma za dodajanje na koncu" + +#: ../src/iop/channelmixer.c:126 +msgid "channel mixer" +msgstr "mešalnik kanalov" + +#: ../src/iop/channelmixer.c:131 +msgid "" +"this module is deprecated. please use the color calibration module instead." +msgstr "" +"ta modul je zastarel. namesto tega raje uporabite modul za umerjanje barv." + +#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:230 +msgid "" +"perform color space corrections\n" +"such as white balance, channels mixing\n" +"and conversions to monochrome emulating film" +msgstr "" +"izvedi popravke barvnega prostora\n" +"kot so ravnovesje beline, mešanje kanalov\n" +"in pretvorbe za posnemanje mono-kromatskega filma" + +#: ../src/iop/channelmixer.c:633 +msgid "destination" +msgstr "cilj" + +#: ../src/iop/channelmixer.c:640 +msgctxt "channelmixer" +msgid "gray" +msgstr "siva" + +#: ../src/iop/channelmixer.c:646 +msgid "amount of red channel in the output channel" +msgstr "količina rdečega kanala v izhodnem kanalu" + +#: ../src/iop/channelmixer.c:652 +msgid "amount of green channel in the output channel" +msgstr "količina zelenega kanala v izhodnem kanalu" + +#: ../src/iop/channelmixer.c:658 +msgid "amount of blue channel in the output channel" +msgstr "količina modrega kanala v izhodnem kanalu" + +#: ../src/iop/channelmixer.c:674 ../src/iop/channelmixerrgb.c:588 +msgid "swap R and B" +msgstr "zamenjaj R in B" + +#: ../src/iop/channelmixer.c:680 ../src/iop/channelmixerrgb.c:562 +msgid "swap G and B" +msgstr "zamenjaj G in B" + +#: ../src/iop/channelmixer.c:686 +msgid "color contrast boost" +msgstr "porast barvnih kontrastov" + +#: ../src/iop/channelmixer.c:692 +msgid "color details boost" +msgstr "porast barvnih podrobnosti" + +#: ../src/iop/channelmixer.c:698 +msgid "color artifacts boost" +msgstr "porast barvnih artefaktov" + +#: ../src/iop/channelmixer.c:704 +msgid "B/W luminance-based" +msgstr "črno-belo na osnovi svetlosti" + +#: ../src/iop/channelmixer.c:710 +msgid "B/W artifacts boost" +msgstr "porast črno-belih artefaktov" + +#: ../src/iop/channelmixer.c:716 +msgid "B/W smooth skin" +msgstr "črno-belo glajenje kože" + +#: ../src/iop/channelmixer.c:722 +msgid "B/W blue artifacts reduce" +msgstr "Č/B reduciranje modrih artefaktov" + +#: ../src/iop/channelmixer.c:729 +msgid "B/W Ilford Delta 100-400" +msgstr "Č/B Ilford Delta 100-400" + +#: ../src/iop/channelmixer.c:736 +msgid "B/W Ilford Delta 3200" +msgstr "Č/B Ilford Delta 3200" + +#: ../src/iop/channelmixer.c:743 +msgid "B/W Ilford FP4" +msgstr "Č/B Ilford FP4" + +#: ../src/iop/channelmixer.c:750 +msgid "B/W Ilford HP5" +msgstr "Č/B Ilford FP5" + +#: ../src/iop/channelmixer.c:757 +msgid "B/W Ilford SFX" +msgstr "Č/B Ilford SFX" + +#: ../src/iop/channelmixer.c:764 +msgid "B/W Kodak T-Max 100" +msgstr "Č/B Kodak T-Max 100" + +#: ../src/iop/channelmixer.c:771 +msgid "B/W Kodak T-max 400" +msgstr "Č/B Kodak T-max 400" + +#: ../src/iop/channelmixer.c:778 +msgid "B/W Kodak Tri-X 400" +msgstr "Č/B Kodak Tri-X 400" + +#: ../src/iop/channelmixerrgb.c:220 +msgid "color calibration" +msgstr "umerjanje barv" + +#: ../src/iop/channelmixerrgb.c:225 +msgid "channel mixer|white balance|monochrome" +msgstr "mešalnik kanalov|ravnovesje beline|enobarvno" + +#: ../src/iop/channelmixerrgb.c:235 +msgid "linear, RGB or XYZ" +msgstr "linearni, RGB ali XYZ" + +#: ../src/iop/channelmixerrgb.c:460 +msgid "B&W: luminance-based" +msgstr "Č/B : na osnovi svetlosti" + +#: ../src/iop/channelmixerrgb.c:495 +msgid "B&W: ILFORD HP5+" +msgstr "Č/B : ILFORD HP5+" + +#: ../src/iop/channelmixerrgb.c:504 +msgid "B&W: ILFORD DELTA 100" +msgstr "Č/B : ILFORD DELTA 100" + +#: ../src/iop/channelmixerrgb.c:514 +msgid "B&W: ILFORD DELTA 400 - 3200" +msgstr "Č/B : ILFORD DELTA 400 - 3200" + +#: ../src/iop/channelmixerrgb.c:523 +msgid "B&W: ILFORD FP4+" +msgstr "Č/B : ILFORD FP4+" + +#: ../src/iop/channelmixerrgb.c:532 +msgid "B&W: Fuji Acros 100" +msgstr "Č/B : Fuji Acros 100" + +#: ../src/iop/channelmixerrgb.c:549 +msgid "basic channel mixer" +msgstr "osnovni mešalnik kanalov" + +#: ../src/iop/channelmixerrgb.c:575 +msgid "swap G and R" +msgstr "zamenjaj G in R" + +#: ../src/iop/channelmixerrgb.c:1926 +msgid "(daylight)" +msgstr "(dnevna svetloba)" + +#: ../src/iop/channelmixerrgb.c:1928 +msgid "(black body)" +msgstr "(črno telo)" + +#: ../src/iop/channelmixerrgb.c:1930 +msgid "(invalid)" +msgstr "(neveljavno)" + +#: ../src/iop/channelmixerrgb.c:1934 ../src/iop/channelmixerrgb.c:1992 +msgid "very good" +msgstr "zelo dobro" + +#: ../src/iop/channelmixerrgb.c:1936 ../src/iop/channelmixerrgb.c:1994 +msgid "good" +msgstr "dobro" + +#: ../src/iop/channelmixerrgb.c:1938 ../src/iop/channelmixerrgb.c:1996 +msgid "passable" +msgstr "zadostno" + +#: ../src/iop/channelmixerrgb.c:1940 ../src/iop/channelmixerrgb.c:1998 +msgid "bad" +msgstr "slabo" + +#: ../src/iop/channelmixerrgb.c:1947 +#, c-format +msgid "" +"\n" +"<b>Profile quality report: %s</b>\n" +"input ΔE: \tavg. %.2f ; \tmax. %.2f\n" +"WB ΔE: \tavg. %.2f; \tmax. %.2f\n" +"output ΔE: \tavg. %.2f; \tmax. %.2f\n" +"\n" +"<b>Profile data</b>\n" +"illuminant: \t%.0f K \t%s\n" +"matrix in adaptation space:\n" +"<tt>%+.4f \t%+.4f \t%+.4f\n" +"%+.4f \t%+.4f \t%+.4f\n" +"%+.4f \t%+.4f \t%+.4f</tt>\n" +"\n" +"<b>Normalization values</b>\n" +"exposure compensation: \t%+.2f EV\n" +"black offset: \t%+.4f" +msgstr "" +"\n" +"<b>Poročilo o kakovosti profila : %s</b>\n" +"vhod ΔE : \tpovp. %.2f; \tmax. %.2f \n" +"WB ΔE : \tpovp. %.2f; \tmax. %.2f \n" +"izhod ΔE : \tpovp. %.2f; \tmax. %.2f \n" +"\n" +"<b>Podatki o profilu</b>\n" +"svetilo: \t%.0f K \t%s\n" +"matrika v prilagoditvenem prostoru:\n" +"<tt>%+.4f \t%+.4f \t%+.4f\n" +"%+.4f \t%+.4f \t%+.4f\n" +"%+.4f \t%+.4f \t%+.4f</tt>\n" +"\n" +"<b>Normalizacijske vrednosti</b>\n" +"kompenzacija osvetlitve : \t%+.2f EV\n" +"odmik od črne : \t%+.4f" + +#: ../src/iop/channelmixerrgb.c:2003 +#, c-format +msgid "" +"\n" +"<b>Profile quality report: %s</b>\n" +"output ΔE: \tavg. %.2f; \tmax. %.2f\n" +"\n" +"<b>Normalization values</b>\n" +"exposure compensation: \t%+.2f EV\n" +"black offset: \t%+.4f" +msgstr "" +"\n" +"<b>Poročilo o kakovosti profila : %s</b>\n" +"izhod ΔE : \tpovp. %.2f ; \tmax. %.2f\n" +"\n" +"<b>Normalizacijske vrednosti</b>\n" +"kompenzacija osvetlitve : \t%+.2f EV\n" +"odmik od črne : \t%+.4f" + +#: ../src/iop/channelmixerrgb.c:2054 +msgid "double CAT applied" +msgstr "uporabljen dvojni CAT" + +#: ../src/iop/channelmixerrgb.c:2055 +#| msgid "" +#| "you have 2 instances or more of color calibration,\n" +#| "all performing chromatic adaptation.\n" +#| "this can lead to inconsistencies, unless you\n" +#| "use them with masks or know what you are doing." +msgid "" +"you have 2 instances or more of color calibration,\n" +"all providing chromatic adaptation.\n" +"this can lead to inconsistencies unless you\n" +"use them with masks or know what you are doing." +msgstr "" +"imate dva ali več pojavkov kalibracije barv,\n" +"vsi izvajajo kromatično prilagoditev.\n" +"to lahko privede do nedoslednosti, razen če\n" +"jih uporabite z maskami ali če veste, kaj počnete." + +#: ../src/iop/channelmixerrgb.c:2071 +msgid "white balance applied twice" +msgstr "uravnoteženje beline uporabljeno dvakrat" + +#: ../src/iop/channelmixerrgb.c:2072 +#| msgid "" +#| "the color calibration module is enabled,\n" +#| "and performing chromatic adaptation.\n" +#| "set the white balance here to camera reference (D65)\n" +#| "or disable chromatic adaptation in color calibration." +msgid "" +"the color calibration module is enabled and already provides\n" +"chromatic adaptation.\n" +"set the white balance here to camera reference (D65)\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"modul za umerjanje barv je omogočen,\n" +"in izvaja prilagajanje barv.\n" +"tu nastavite ravnovesje beline na referenco kamere (D65)\n" +"ali onemogočite prilagajanje barv pri umerjanju barv." + +#: ../src/iop/channelmixerrgb.c:2080 +msgid "white balance module error" +msgstr "napaka modula ravnotežja beline" + +#: ../src/iop/channelmixerrgb.c:2081 +msgid "" +"the white balance module is not using the camera\n" +"reference illuminant, which will cause issues here\n" +"with chromatic adaptation. either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" +"modul za nastavitev beline ne uporablja kamere\n" +"referenčna vrsta svetlobe, ki bo tu povzročala težave\n" +"s prilagoditvijo barve. bodisi nastavite referenco\n" +"ali tukaj onemogočite prilagoditev barve." + +#: ../src/iop/channelmixerrgb.c:2095 ../src/iop/channelmixerrgb.c:2104 +#| msgid "white balance settings" +msgid "white balance missing" +msgstr "manjka ravnotežje beline" + +#: ../src/iop/channelmixerrgb.c:2096 +#| msgid "" +#| "the color calibration module is enabled,\n" +#| "and performing chromatic adaptation.\n" +#| "set the white balance here to camera reference (D65)\n" +#| "or disable chromatic adaptation in color calibration." +msgid "" +"this module is not providing a valid reference illuminant\n" +"causing chromatic adaptation issues in color calibration.\n" +"enable this module and either set it to reference\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"ta modul ne zagotavlja veljavne referenčnega vira svetlobe\n" +"kar povzroča težave s kromatskim prilagajanjem pri kalibraciji barv.\n" +"omogočite ta modul in ga ali nastavite kot referenco\n" +"ali onemogočite kromatsko prilagajanje pri kalibraciji barv." + +#: ../src/iop/channelmixerrgb.c:2105 +#| msgid "" +#| "the white balance module is not using the camera\n" +#| "reference illuminant, which will cause issues here\n" +#| "with chromatic adaptation. either set it to reference\n" +#| "or disable chromatic adaptation here." +msgid "" +"the white balance module is not providing a valid reference\n" +"illuminant causing issues with chromatic adaptation here.\n" +"enable white balance and either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" +"modul za izravnavo beline ne zagotavlja veljavnega vira svetlobe,\n" +"kar tukaj povzroča težave s kromatično prilagoditvijo.\n" +"omogočite ravnovesje beline in ali nastavite na referenčno\n" +"ali tukaj onemogočite kromatsko prilagajanje." + +#: ../src/iop/channelmixerrgb.c:2196 +msgid "auto-detection of white balance completed" +msgstr "zaključeno samodejno zaznavanje ravnovesja beline" + +#: ../src/iop/channelmixerrgb.c:2346 +msgid "channelmixerrgb works only on RGB input" +msgstr "channelmixerrg deluje samo na RGB vhodu" + +#: ../src/iop/channelmixerrgb.c:3692 +#, c-format +msgid "CCT: %.0f K (daylight)" +msgstr "CCT: %.0f K (dnevna svetloba)" + +#: ../src/iop/channelmixerrgb.c:3695 +msgid "" +"approximated correlated color temperature.\n" +"this illuminant can be accurately modeled by a daylight spectrum,\n" +"so its temperature is relevant and meaningful with a D illuminant." +msgstr "" +"približna korelirana barvna temperatura.\n" +"to vrsto svetlobe je mogoče natančno modelirati s spektrom dnevne svetlobe,\n" +"zato njegova temperatura smiselno ustreza svetlobi D." + +#: ../src/iop/channelmixerrgb.c:3701 +#, c-format +msgid "CCT: %.0f K (black body)" +msgstr "CCT: %.0f K (črno telo)" + +#: ../src/iop/channelmixerrgb.c:3704 +msgid "" +"approximated correlated color temperature.\n" +"this illuminant can be accurately modeled by a black body spectrum,\n" +"so its temperature is relevant and meaningful with a Planckian illuminant." +msgstr "" +"približna korelirana barvna temperatura.\n" +"to vrsto svetlobe je mogoče natančno modelirati s spektrom črnega telesa,\n" +"zato njena temperatura smiselno ustreza Planckovi vrsti svetlobe." + +#: ../src/iop/channelmixerrgb.c:3710 +#, c-format +msgid "CCT: %.0f K (invalid)" +msgstr "CCT: %.0f K (neveljavno)" + +#: ../src/iop/channelmixerrgb.c:3713 +msgid "" +"approximated correlated color temperature.\n" +"this illuminant cannot be accurately modeled by a daylight or black body " +"spectrum,\n" +"so its temperature is not relevant and meaningful and you need to use a " +"custom illuminant." +msgstr "" +"približna korelirana barvna temperatura.\n" +" te vrste svetlobe ni mogoče natančno modelirati s spektrom dnevne svetlobe " +"ali črnega telesa,\n" +"zato njena temperatura ni smiselno ustrezna in morate uporabiti svetlobo po " +"meri." + +#: ../src/iop/channelmixerrgb.c:3722 +#, c-format +msgid "CCT: undefined" +msgstr "CCT: nedoločeno" + +#: ../src/iop/channelmixerrgb.c:3725 +msgid "" +"the approximated correlated color temperature\n" +"cannot be computed at all so you need to use a custom illuminant." +msgstr "" +"približna korelirana barvna temperatura\n" +"sploh je ni mogoče izračunati, zato morate uporabiti vrsto svetlobe po meri." + +#: ../src/iop/channelmixerrgb.c:4038 +msgid "white balance successfully extracted from raw image" +msgstr "ravnovesje beline je bilo uspešno izvlečeno iz surove slike" + +#. We need to recompute only the full preview +#: ../src/iop/channelmixerrgb.c:4044 +msgid "auto-detection of white balance started…" +msgstr "samodejno zaznavanje ravnovesja beline se je začelo…" + +#: ../src/iop/channelmixerrgb.c:4149 +msgid "" +"color calibration: the sum of the gray channel parameters is zero, " +"normalization will be disabled." +msgstr "" +"kalibracija barve: vsota parametrov sivega kanala je enaka nič, " +"normalizacija bo onemogočena." + +#. Write report in GUI +#: ../src/iop/channelmixerrgb.c:4194 +#, c-format +msgid "" +"L: \t%.1f %%\n" +"h: \t%.1f °\n" +"c: \t%.1f" +msgstr "" +"L: \t%.1f %%\n" +"h: \t%.1f °\n" +"c: \t%.1f" + +#: ../src/iop/channelmixerrgb.c:4462 ../src/iop/clipping.c:2140 +#: ../src/iop/colorbalancergb.c:1944 ../src/iop/filmicrgb.c:4483 +#: ../src/iop/negadoctor.c:848 ../src/iop/toneequal.c:3372 +#: ../src/libs/image.c:490 ../src/views/lighttable.c:1258 +msgid "page" +msgstr "stran" + +#. Page CAT +#: ../src/iop/channelmixerrgb.c:4465 +msgid "CAT" +msgstr "CAT" + +#: ../src/iop/channelmixerrgb.c:4466 +msgid "chromatic adaptation transform" +msgstr "transformacija barvnega prilagajanja" + +#: ../src/iop/channelmixerrgb.c:4468 +msgid "adaptation" +msgstr "prilagoditev" + +#: ../src/iop/channelmixerrgb.c:4471 +msgid "" +"choose the method to adapt the illuminant\n" +"and the colorspace in which the module works: \n" +"• Linear Bradford (1985) is consistent with ICC v4 toolchain.\n" +"• CAT16 (2016) is more robust and accurate.\n" +"• Non-linear Bradford (1985) is the original Bradford,\n" +"it can produce better results than the linear version, but is unreliable.\n" +"• XYZ is a simple scaling in XYZ space. It is not recommended in general.\n" +"• none disables any adaptation and uses pipeline working RGB." +msgstr "" +"izberite metodo prilagajanja viru svetlobe\n" +"in barvnega prostora, v katerem deluje modul:\n" +"• Linearni Bradford (1985) je konsistentna z verigo orodij ICC v4.\n" +"• CAT16 (2016) je bolj robustna in natančna\n" +"• Nelinearni Bradford (1985) je originalni Bradford,\n" +"lahko prinese boljše rezultate kot linearna različica, a je nezanesljiva.\n" +"• XYZ je preprosti razteg v prostoru XYZ. Na splošno ni priporočljiva.\n" +"• nobena ne onemogoča prilagoditve in uporablja cevovod na RGB." + +#: ../src/iop/channelmixerrgb.c:4491 +msgid "" +"this is the color of the scene illuminant before chromatic adaptation\n" +"this color will be turned into pure white by the adaptation." +msgstr "" +"to je barva scene z vira svetlobe pred barvno prilagoditvijo\n" +"ta barva bo s prilagoditvijo postala čista bela." + +#: ../src/iop/channelmixerrgb.c:4499 +msgid "picker" +msgstr "izbirnik" + +#: ../src/iop/channelmixerrgb.c:4501 ../src/iop/temperature.c:2015 +msgid "set white balance to detected from area" +msgstr "nastavi ravnotežje beline iz detekcije površine" + +#: ../src/iop/channelmixerrgb.c:4505 ../src/iop/negadoctor.c:972 +msgid "illuminant" +msgstr "vir svetlobe" + +#: ../src/iop/channelmixerrgb.c:4511 ../src/iop/temperature.c:2072 +msgid "temperature" +msgstr "temperatura" + +#: ../src/iop/channelmixerrgb.c:4542 +#| msgid "color mapping" +msgid "area color mapping" +msgstr "barvna preslikava območja" + +#: ../src/iop/channelmixerrgb.c:4548 +msgid "" +"define a target chromaticity (hue and chroma) for a particular region of the " +"image (the control sample), which you then match against the same target " +"chromaticity in other images. the control sample can either be a critical " +"part of your subject or a non-moving and consistently-lit surface over your " +"series of images." +msgstr "" +"določi ciljno kromatičnost (odtenek in kromo) za določeno območje slike " +"(kontrolni vzorec), ki se nato ujem z istim ciljem kromatičnost na drugih " +"slikah. kontrolni vzorec je lahko bodisi kritični del vaše teme ali " +"nepremična in dosledno osvetljena površina vaše serije slik." + +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/channelmixerrgb.c:4570 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/channelmixerrgb.c:4641 +msgid "mapping" +msgstr "preslikava" + +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/exposure.c:1206 +#| msgid "camera model" +msgid "area mode" +msgstr "ploskovni način" + +#: ../src/iop/channelmixerrgb.c:4556 +msgid "" +"\"correction\" automatically adjust the illuminant\n" +"such that the input color is mapped to the target.\n" +"\"measure\" simply shows how an input color is mapped by the CAT\n" +"and can be used to sample a target." +msgstr "" +"\"popravek\" samodejno prilagodi vir svetlobe\n" +"tako, da je vhodna barva preslikana na cilj.\n" +"\"meritev\" preprosto prikazuje, kako vhodno barvo preslika CAT\n" +"in se lahko uporablja za vzorčenje cilja." + +#: ../src/iop/channelmixerrgb.c:4561 ../src/iop/exposure.c:1212 +msgid "correction" +msgstr "popravek" + +#: ../src/iop/channelmixerrgb.c:4562 ../src/iop/exposure.c:1213 +msgid "measure" +msgstr "meritev" + +#: ../src/iop/channelmixerrgb.c:4568 +msgid "take channel mixing into account" +msgstr "upoštevaj mešanje kanalov" + +#: ../src/iop/channelmixerrgb.c:4575 +msgid "" +"compute the target by taking the channel mixing into account.\n" +"if disabled, only the CAT is considered." +msgstr "" +"izračunaj cilj tako, da upoštevamo mešanje kanala.\n" +"Če je onemogočeno, se upošteva samo CAT." + +#: ../src/iop/channelmixerrgb.c:4587 ../src/iop/exposure.c:1220 +msgctxt "section" +msgid "input" +msgstr "vhod" + +#: ../src/iop/channelmixerrgb.c:4594 ../src/iop/exposure.c:1228 +msgid "the input color that should be mapped to the target" +msgstr "vhodna barva, ki jo je treba preslikati na cilj" + +#: ../src/iop/channelmixerrgb.c:4600 +msgid "" +"L: \tN/A\n" +"h: \tN/A\n" +"c: \tN/A" +msgstr "" +"L: \tN/A\n" +"h: \tN/A\n" +"c: \tN/A" + +#: ../src/iop/channelmixerrgb.c:4603 ../src/iop/exposure.c:1236 +msgid "these LCh coordinates are computed from CIE Lab 1976 coordinates" +msgstr "te koordinate LCh so izračunane iz koordinat CIE Lab 1976" + +#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/exposure.c:1243 +msgctxt "section" +msgid "target" +msgstr "cilj" + +#: ../src/iop/channelmixerrgb.c:4618 +msgid "the desired target color after mapping" +msgstr "želena ciljna barva po preslikavi" + +#: ../src/iop/channelmixerrgb.c:4657 +msgid "input R" +msgstr "vhod R" + +#: ../src/iop/channelmixerrgb.c:4662 +msgid "input G" +msgstr "vhod G" + +#: ../src/iop/channelmixerrgb.c:4667 +msgid "input B" +msgstr "vhod B" + +#: ../src/iop/channelmixerrgb.c:4677 +msgid "output R" +msgstr "izhod R" + +#: ../src/iop/channelmixerrgb.c:4678 +msgid "output G" +msgstr "izhod G" + +#: ../src/iop/channelmixerrgb.c:4679 +msgid "output B" +msgstr "izhod B" + +#: ../src/iop/channelmixerrgb.c:4681 +msgid "colorfulness" +msgstr "polnost barv" + +#: ../src/iop/channelmixerrgb.c:4681 +msgid "output colorfulness" +msgstr "polnost barv izhoda" + +#: ../src/iop/channelmixerrgb.c:4685 +msgid "output brightness" +msgstr "sijavost izhoda" + +#: ../src/iop/channelmixerrgb.c:4688 +msgid "output gray" +msgstr "siva na izhodu" + +#: ../src/iop/channelmixerrgb.c:4703 +msgid "calibrate with a color checker" +msgstr "kalibriraj z merilnikom barve" + +#: ../src/iop/channelmixerrgb.c:4708 +msgid "use a color checker target to autoset CAT and channels" +msgstr "" +"uporabite cilj barvnega merilnika za samodejno nastavitev CAT in kanalov" + +#: ../src/iop/channelmixerrgb.c:4715 ../src/iop/channelmixerrgb.c:4728 +#: ../src/iop/channelmixerrgb.c:4746 ../src/iop/channelmixerrgb.c:4764 +#: ../src/iop/channelmixerrgb.c:4773 ../src/iop/channelmixerrgb.c:4781 +msgid "calibrate" +msgstr "kalibriraj" + +#: ../src/iop/channelmixerrgb.c:4715 +msgid "chart" +msgstr "diagram" + +#: ../src/iop/channelmixerrgb.c:4716 +msgid "choose the vendor and the type of your chart" +msgstr "izberite dobavitelja in vrsto cilja" + +#: ../src/iop/channelmixerrgb.c:4718 +msgid "Xrite ColorChecker 24 pre-2014" +msgstr "Xrite ColorChecker 24 pred-2014" + +#: ../src/iop/channelmixerrgb.c:4719 +msgid "Xrite ColorChecker 24 post-2014" +msgstr "Xrite ColorChecker 24 po-2014" + +#: ../src/iop/channelmixerrgb.c:4720 +msgid "Datacolor SpyderCheckr 24 pre-2018" +msgstr "Datacolor SpyderCheckr 24 pred-2018" + +#: ../src/iop/channelmixerrgb.c:4721 +msgid "Datacolor SpyderCheckr 24 post-2018" +msgstr "Datacolor SpyderCheckr 24 po-2018" + +#: ../src/iop/channelmixerrgb.c:4722 +msgid "Datacolor SpyderCheckr 48 pre-2018" +msgstr "Datacolor SpyderCheckr 48 pred-2018" + +#: ../src/iop/channelmixerrgb.c:4723 +msgid "Datacolor SpyderCheckr 48 post-2018" +msgstr "Datacolor SpyderCheckr 48 po-2018" + +#: ../src/iop/channelmixerrgb.c:4724 +msgid "Datacolor SpyderCheckr Photo" +msgstr "Datacolor SpyderCheckr" + +#: ../src/iop/channelmixerrgb.c:4728 +msgid "optimize for" +msgstr "optimirano za" + +#: ../src/iop/channelmixerrgb.c:4729 +msgid "" +"choose the colors that will be optimized with higher priority.\n" +"neutral colors gives the lowest average delta E but a high maximum delta E\n" +"saturated colors gives the lowest maximum delta E but a high average delta " +"E\n" +"none is a trade-off between both\n" +"the others are special behaviors to protect some hues" +msgstr "" +"izberite barve, ki bodo optimizirane z večjo prioriteto.\n" +"nevtralne barve dajejo najnižjo povprečno delto E, a visoko maksimalno delto " +"E\n" +"nasičene barve dajo najnižjo maksimalno delto E, a visoko povprečno delto E\n" +"noben je kompromis med obema\n" +"druge predstavljajo posebna vedenja za zaščito nekaterih odtenkov" + +#: ../src/iop/channelmixerrgb.c:4736 +msgid "neutral colors" +msgstr "nevtralne barve" + +#: ../src/iop/channelmixerrgb.c:4738 +msgid "skin and soil colors" +msgstr "barve kože in zemlje" + +#: ../src/iop/channelmixerrgb.c:4739 +msgid "foliage colors" +msgstr "listnate barve" + +#: ../src/iop/channelmixerrgb.c:4740 +msgid "sky and water colors" +msgstr "barve neba in vode" + +#: ../src/iop/channelmixerrgb.c:4741 +msgid "average delta E" +msgstr "povprečni delta E" + +#: ../src/iop/channelmixerrgb.c:4742 +msgid "maximum delta E" +msgstr "maximum delta E" + +#: ../src/iop/channelmixerrgb.c:4746 +msgid "patch scale" +msgstr "merilo zaplate" + +#: ../src/iop/channelmixerrgb.c:4749 +msgid "" +"reduce the radius of the patches to select the more or less central part.\n" +"useful when the perspective correction is sloppy or\n" +"the patches frame cast a shadows on the edges of the patch." +msgstr "" +"zmanjšajte polmer zaplat, da izberete bolj ali manj osrednji del.\n" +"uporabno, če je popravek perspektive površen ali\n" +"če okvir zaplat meče sence na robove zaplate." + +#: ../src/iop/channelmixerrgb.c:4759 +msgid "the delta E is using the CIE 2000 formula" +msgstr "delta E uporablja formulo CIE 2000" + +#: ../src/iop/channelmixerrgb.c:4764 +msgid "accept" +msgstr "sprejemi" + +#: ../src/iop/channelmixerrgb.c:4770 +msgid "accept the computed profile and set it in the module" +msgstr "sprejmi izračunani profil in ga nastavi v modulu" + +#: ../src/iop/channelmixerrgb.c:4773 +msgid "recompute" +msgstr "ponovno izračunaj" + +#: ../src/iop/channelmixerrgb.c:4777 +msgid "recompute the profile" +msgstr "ponovno izračunaj profil" + +#: ../src/iop/channelmixerrgb.c:4781 +msgid "validate" +msgstr "preveri veljavnost" + +#: ../src/iop/channelmixerrgb.c:4785 +msgid "check the output delta E" +msgstr "preveri izhodno delto E" + +#: ../src/iop/choleski.h:290 ../src/iop/choleski.h:390 +msgid "" +"Choleski decomposition failed to allocate memory, check your RAM settings" +msgstr "" +"za Choleskijevo dekompozicijo ni bilo dovolj pomnilnika, preverite " +"nastavitve za RAM" + +#: ../src/iop/clahe.c:74 +msgid "" +"this module is deprecated. better use new local contrast module instead." +msgstr "ta modul je zastarel. raje uporabite novi modul lokalnega kontrasta." + +#: ../src/iop/clahe.c:339 ../src/iop/sharpen.c:440 +msgid "amount" +msgstr "količina" + +#: ../src/iop/clahe.c:348 +msgid "size of features to preserve" +msgstr "velikost shranjenih dodatkov" + +#: ../src/iop/clahe.c:349 ../src/iop/nlmeans.c:467 +msgid "strength of the effect" +msgstr "moč učinka" + +#: ../src/iop/clipping.c:347 +msgid "" +"this module is deprecated. please use the crop, orientation and/or rotate " +"and perspective modules instead." +msgstr "" +"ta modul je zastarel. namesto tega raje uporabite modul za obrezovanje, " +"orientacijo in/ali sukanje in perspektivo." + +#: ../src/iop/clipping.c:352 +msgid "crop and rotate" +msgstr "obreži in zasukaj" + +#: ../src/iop/clipping.c:357 +msgid "reframe|perspective|keystone|distortion" +msgstr "ponovno okvirjanje|perspektiva|popr. persp.|popačenje" + +#: ../src/iop/clipping.c:362 +msgid "change the framing and correct the perspective" +msgstr "spremeni okvirjanje in popravi perspektivo" + +#: ../src/iop/clipping.c:1447 ../src/iop/clipping.c:2173 ../src/iop/crop.c:501 +#: ../src/iop/crop.c:1101 +msgid "original image" +msgstr "izvorna slika" + +#: ../src/iop/clipping.c:1751 ../src/iop/crop.c:808 +msgid "invalid ratio format. it should be \"number:number\"" +msgstr "neveljavno razmerje. mora biti 'število:število'" + +#: ../src/iop/clipping.c:1767 ../src/iop/crop.c:824 +msgid "invalid ratio format. it should be a positive number" +msgstr "neveljavno razmerje stranic. mora biti pozitivno število" + +#: ../src/iop/clipping.c:1956 ../src/iop/clipping.c:2164 +msgid "full" +msgstr "polno" + +#: ../src/iop/clipping.c:1957 +msgid "old system" +msgstr "stari sistem" + +#: ../src/iop/clipping.c:1958 +msgid "correction applied" +msgstr "popravek izveden" + +#: ../src/iop/clipping.c:2142 +msgid "main" +msgstr "glavni" + +#: ../src/iop/clipping.c:2151 +msgid "mirror image horizontally and/or vertically" +msgstr "prezrcaljenje slike vodoravno in/ali navpično" + +#: ../src/iop/clipping.c:2154 +msgid "angle" +msgstr "kot" + +#: ../src/iop/clipping.c:2157 +msgid "right-click and drag a line on the image to drag a straight line" +msgstr "" +"kliknite z desno tipko in povlecite črto na sliki da se poravna z ravno črto " +"na sliki" + +#: ../src/iop/clipping.c:2160 +msgid "keystone" +msgstr "popravek perspektive" + +#: ../src/iop/clipping.c:2165 +msgid "set perspective correction for your image" +msgstr "nastavi popravek perspektive za vašo sliko" + +#: ../src/iop/clipping.c:2172 ../src/iop/crop.c:1100 +msgid "freehand" +msgstr "prostoročno" + +#: ../src/iop/clipping.c:2175 ../src/iop/crop.c:1103 +msgid "10:8 in print" +msgstr "10:8 za tisk" + +#: ../src/iop/clipping.c:2176 ../src/iop/crop.c:1104 +msgid "5:4, 4x5, 8x10" +msgstr "5:4, 4x5, 8x10" + +#: ../src/iop/clipping.c:2177 ../src/iop/crop.c:1105 +msgid "11x14" +msgstr "11x14" + +#: ../src/iop/clipping.c:2178 ../src/iop/crop.c:1106 +msgid "8.5x11, letter" +msgstr "8.5x11, ameriško pismo" + +#: ../src/iop/clipping.c:2179 ../src/iop/crop.c:1107 +msgid "4:3, VGA, TV" +msgstr "4:3, VGA, TV" + +#: ../src/iop/clipping.c:2180 ../src/iop/crop.c:1108 +msgid "5x7" +msgstr "5x7" + +#: ../src/iop/clipping.c:2181 ../src/iop/crop.c:1109 +msgid "ISO 216, DIN 476, A4" +msgstr "ISO 216, DIN 476, A4" + +#: ../src/iop/clipping.c:2182 ../src/iop/crop.c:1110 +msgid "3:2, 4x6, 35mm" +msgstr "3:2, 4x6, 35mm" + +#: ../src/iop/clipping.c:2183 ../src/iop/crop.c:1111 +msgid "16:10, 8x5" +msgstr "16:10, 8x5" + +#: ../src/iop/clipping.c:2185 ../src/iop/crop.c:1113 +msgid "16:9, HDTV" +msgstr "16:9, HDTV" + +#: ../src/iop/clipping.c:2186 ../src/iop/crop.c:1114 +msgid "widescreen" +msgstr "široki zaslon" + +#: ../src/iop/clipping.c:2187 ../src/iop/crop.c:1115 +msgid "2:1, univisium" +msgstr "2:1, univisium" + +#: ../src/iop/clipping.c:2188 ../src/iop/crop.c:1116 +msgid "cinemascope" +msgstr "cinemascope" + +#: ../src/iop/clipping.c:2189 ../src/iop/crop.c:1117 +msgid "21:9" +msgstr "21:9" + +#: ../src/iop/clipping.c:2190 ../src/iop/crop.c:1118 +msgid "anamorphic" +msgstr "anamorfno" + +#: ../src/iop/clipping.c:2191 ../src/iop/crop.c:1119 +msgid "3:1, panorama" +msgstr "3:1 panorama" + +#: ../src/iop/clipping.c:2223 ../src/iop/clipping.c:2235 ../src/iop/crop.c:1155 +#: ../src/iop/crop.c:1171 +#, c-format +msgid "invalid ratio format for `%s'. it should be \"number:number\"" +msgstr "napačen format razmerja `%s'. mora biti 'število:število'" + +#: ../src/iop/clipping.c:2282 ../src/iop/crop.c:1222 +msgid "" +"set the aspect ratio\n" +"the list is sorted: from most square to least square\n" +"to enter custom aspect ratio open the combobox and type ratio in x:y or " +"decimal format" +msgstr "" +"nastavite razmerje stranic\n" +"seznam je urejen od najbolj kvadratnih do najmanj kvadratnih\n" +"da bi vnesli razmerje po meri odprite kombinirano polje in vnesite razmerje " +"kot x:y ali v decimalni obliki" + +#: ../src/iop/clipping.c:2289 ../src/iop/crop.c:1236 +msgid "margins" +msgstr "robovi" + +#: ../src/iop/clipping.c:2294 ../src/iop/crop.c:1246 +msgid "the left margin cannot overlap with the right margin" +msgstr "levi rob se ne sme prekrivati z desnim robom" + +#: ../src/iop/clipping.c:2301 ../src/iop/crop.c:1254 +msgid "the right margin cannot overlap with the left margin" +msgstr "desni rob se ne sme prekrivati z levim robom" + +#: ../src/iop/clipping.c:2306 ../src/iop/crop.c:1260 +msgid "the top margin cannot overlap with the bottom margin" +msgstr "zgornji rob se ne sme prekrivati s spodnjim robom" + +#: ../src/iop/clipping.c:2313 ../src/iop/crop.c:1268 +msgid "the bottom margin cannot overlap with the top margin" +msgstr "spodnji rob se ne sme prekrivati z zgornjim robom" + +#: ../src/iop/clipping.c:3059 +msgid "<b>commit</b>: double-click, <b>straighten</b>: right-drag" +msgstr "<b>potrdi</b>: dvojni klik, <b>poravnaj</b>: desni pomik" + +#: ../src/iop/clipping.c:3063 +msgid "" +"<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag\n" +"<b>straighten</b>: right-drag" +msgstr "" +"<b>spremeni velikost</b>: poteg, <b>ohrani proporce</b>: dvigalka+poteg\n" +"<b>poravnaj</b>: desni-poteg" + +#: ../src/iop/clipping.c:3104 +msgid "<b>move control point</b>: drag" +msgstr "<b>potegnite kontrolno točko</b>: poteg" + +#: ../src/iop/clipping.c:3109 +msgid "<b>move line</b>: drag, <b>toggle symmetry</b>: click ꝏ" +msgstr "<b>premakni črto</b>: poteg, <b>preklopi simetrijo</b>: klik ꝏ" + +#: ../src/iop/clipping.c:3114 +msgid "" +"<b>apply</b>: click <tt>ok</tt>, <b>toggle symmetry</b>: click ꝏ\n" +"<b>move line/control point</b>: drag" +msgstr "" +"<b>uveljavi</b>: klik <tt>ok</tt>, <b>preklopi simetrijo</b>: klik ꝏ\n" +"<b>premakni črto/kontrolna točka</b>: poteg" + +#: ../src/iop/clipping.c:3121 +msgid "" +"<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" +"b>: ctrl+drag\n" +"<b>straighten</b>: right-drag, <b>commit</b>: double-click" +msgstr "" +"<b>premakni</b>: poteg, <b>premakni navpično</b>: dvigalka+poteg, " +"<b>premakni vodoravno</b>: krmilka+poteg\n" +"<b>poravnaj</b>: desni-poteg, <b>potrdi</b>: dvojni klik" + +#: ../src/iop/clipping.c:3380 ../src/iop/crop.c:1770 +#, c-format +msgid "[%s on borders] crop" +msgstr "[%s on borders] obreži" + +#: ../src/iop/clipping.c:3382 ../src/iop/crop.c:1772 +#, c-format +msgid "[%s on borders] crop keeping ratio" +msgstr "[%s on borders] razmerje obreze" + +#: ../src/iop/colisa.c:79 +msgid "this module is deprecated. please use colorbalance RGB module instead." +msgstr "" +"ta modul je zastarel. namesto tega raje uporabite modul za umerjanje barv " +"RGB." + +#: ../src/iop/colisa.c:84 +msgid "contrast brightness saturation" +msgstr "kontrast sijavost nasičenost" + +#: ../src/iop/colisa.c:89 +msgid "adjust the look of the image" +msgstr "prilagodi videz slike" + +#: ../src/iop/colisa.c:304 +msgid "color saturation adjustment" +msgstr "nastavitev nasičenosti barv" + +#: ../src/iop/colorbalance.c:152 +msgid "color balance" +msgstr "uravnoteženost barv" + +#: ../src/iop/colorbalance.c:157 +msgid "lift gamma gain|cdl|color grading|contrast|saturation|hue" +msgstr "dvig ojačenja game|cdl|stopnjevanje barv|kontrast|nasičenost|odtenek" + +#: ../src/iop/colorbalance.c:162 +msgid "shift colors selectively by luminance range" +msgstr "selektivno pomakni barve po obsegu svetlosti" + +#: ../src/iop/colorbalance.c:166 +msgid "non-linear, Lab, scene-referred" +msgstr "ne-linearni, Lab, glede na sceno" + +#. these blobs were exported as dtstyle and copied from there: +#: ../src/iop/colorbalance.c:304 +msgid "split-toning teal-orange (2nd instance)" +msgstr "razcepitev tonov teal-oranžna (drugi pojavek)" + +#: ../src/iop/colorbalance.c:307 +msgid "split-toning teal-orange (1st instance)" +msgstr "razcepitev tonov teal-oranžna (prvi pojavek)" + +#: ../src/iop/colorbalance.c:311 +msgid "generic film" +msgstr "generični film" + +#: ../src/iop/colorbalance.c:315 +msgid "similar to Kodak Portra" +msgstr "podobno kot Kodak Portra" + +#: ../src/iop/colorbalance.c:319 +msgid "similar to Kodak Ektar" +msgstr "podobno kot Kodak Ektar" + +#: ../src/iop/colorbalance.c:323 +msgid "similar to Kodachrome" +msgstr "podobno kot Kodachrome" + +#: ../src/iop/colorbalance.c:964 +msgid "optimize luma from patches" +msgstr "optimiziraj lumo iz krp" + +#: ../src/iop/colorbalance.c:966 ../src/iop/colorbalance.c:2085 +msgid "optimize luma" +msgstr "optimiziraj lumo" + +#: ../src/iop/colorbalance.c:970 +msgid "neutralize colors from patches" +msgstr "nevtraliziraj barve iz krp" + +#: ../src/iop/colorbalance.c:972 ../src/iop/colorbalance.c:2091 +msgid "neutralize colors" +msgstr "nevtraliziraj barve" + +#: ../src/iop/colorbalance.c:1758 +msgctxt "color" +msgid "offset" +msgstr "odmik" + +#: ../src/iop/colorbalance.c:1758 +msgctxt "color" +msgid "power" +msgstr "moč" + +#: ../src/iop/colorbalance.c:1758 +msgctxt "color" +msgid "slope" +msgstr "strmina" + +#: ../src/iop/colorbalance.c:1759 +msgctxt "color" +msgid "lift" +msgstr "dvig" + +#: ../src/iop/colorbalance.c:1759 +msgctxt "color" +msgid "gamma" +msgstr "gama" + +#: ../src/iop/colorbalance.c:1759 +msgctxt "color" +msgid "gain" +msgstr "ojačenje" + +#: ../src/iop/colorbalance.c:1762 +msgctxt "section" +msgid "shadows: lift / offset" +msgstr "sence : dvig /odmik" + +#: ../src/iop/colorbalance.c:1763 +msgctxt "section" +msgid "mid-tones: gamma / power" +msgstr "srednji toni : gama / moč" + +#: ../src/iop/colorbalance.c:1764 +msgctxt "section" +msgid "highlights: gain / slope" +msgstr "bleščave : ojačenje / naklon" + +#: ../src/iop/colorbalance.c:1788 +msgid "shadows / mid-tones / highlights" +msgstr "sence / srednji toni / bleščave" + +#: ../src/iop/colorbalance.c:1885 ../src/iop/colorbalance.c:1894 +msgid "color-grading mapping method" +msgstr "metoda preslikav barv" + +#: ../src/iop/colorbalance.c:1889 +msgid "color control sliders" +msgstr "drsniki kontrole barv" + +#: ../src/iop/colorbalance.c:1890 ../src/libs/colorpicker.c:51 +msgid "HSL" +msgstr "HSL" + +#: ../src/iop/colorbalance.c:1891 +msgid "RGBL" +msgstr "RGBL" + +#: ../src/iop/colorbalance.c:1903 +msgctxt "section" +msgid "master" +msgstr "matični" + +#: ../src/iop/colorbalance.c:1909 +msgid "saturation correction before the color balance" +msgstr "popravek nasičenosti pred barvnim uravnoteženjem" + +#: ../src/iop/colorbalance.c:1915 +msgid "saturation correction after the color balance" +msgstr "popravek nasičenosti po barvnem uravnoteženju" + +#: ../src/iop/colorbalance.c:1920 +msgid "adjust to match a neutral tone" +msgstr "prilagodi, da ustreza nevtralnemu tonu" + +#. is set in _configure_slider_blocks +#: ../src/iop/colorbalance.c:1978 +msgid "click to cycle layout" +msgstr "klikni za kroženje po razporedu" + +#: ../src/iop/colorbalance.c:2012 +msgid "factor" +msgstr "faktor" + +#: ../src/iop/colorbalance.c:2026 +msgid "select the hue" +msgstr "izberi odtenek" + +#: ../src/iop/colorbalance.c:2038 +msgid "select the saturation" +msgstr "izberi nasičenost" + +#: ../src/iop/colorbalance.c:2057 +msgid "factor of lift/offset" +msgstr "faktor dviga/odmika" + +#: ../src/iop/colorbalance.c:2058 +msgid "factor of red for lift/offset" +msgstr "faktor rdečega dviga/odmika" + +#: ../src/iop/colorbalance.c:2059 +msgid "factor of green for lift/offset" +msgstr "faktor zelenega dviga/odmika" + +#: ../src/iop/colorbalance.c:2060 +msgid "factor of blue for lift/offset" +msgstr "faktor modrega dviga/odmika" + +#: ../src/iop/colorbalance.c:2063 +msgid "factor of gamma/power" +msgstr "faktor game/moči" + +#: ../src/iop/colorbalance.c:2064 +msgid "factor of red for gamma/power" +msgstr "faktor rdeče game/moči" + +#: ../src/iop/colorbalance.c:2065 +msgid "factor of green for gamma/power" +msgstr "faktor zelene game/moči" + +#: ../src/iop/colorbalance.c:2066 +msgid "factor of blue for gamma/power" +msgstr "faktor modre game/moči" + +#: ../src/iop/colorbalance.c:2069 +msgid "factor of gain/slope" +msgstr "faktor ojačenja/strmine" + +#: ../src/iop/colorbalance.c:2070 +msgid "factor of red for gain/slope" +msgstr "faktor ojačenja/strmine rdeče" + +#: ../src/iop/colorbalance.c:2071 +msgid "factor of green for gain/slope" +msgstr "faktor ojačenja/strmine zelene" + +#: ../src/iop/colorbalance.c:2072 +msgid "factor of blue for gain/slope" +msgstr "faktor ojačenja/strmine modre" + +#: ../src/iop/colorbalance.c:2081 +msgctxt "section" +msgid "auto optimizers" +msgstr "avto optimizatorji" + +#: ../src/iop/colorbalance.c:2086 +msgid "fit the whole histogram and center the average luma" +msgstr "prilagodi celotni histogram in osredotoči na povprečno lumo" + +#: ../src/iop/colorbalance.c:2092 +msgid "optimize the RGB curves to remove color casts" +msgstr "optimiraj krivulje RGB, da odstrani barvni pridih" + +#: ../src/iop/colorbalancergb.c:173 +msgid "color balance rgb" +msgstr "uravnoteženost barv rgb" + +#: ../src/iop/colorbalancergb.c:178 +msgid "" +"offset power slope|cdl|color grading|contrast|chroma_highlights|hue|vibrance|" +"saturation" +msgstr "" +"zamik naklona moči|cdl|stopnjevanje barv|kontrast|bleščave krome|odtenek|" +"živahnost|nasičenost" + +#: ../src/iop/colorbalancergb.c:183 +msgid "" +"color grading tools using alpha masks to separate\n" +"shadows, mid-tones and highlights" +msgstr "" +"orodja za stopnjevanje barv z alfa maskami za ločevanje\n" +"senc, srednjih tonov in bleščav" + +#: ../src/iop/colorbalancergb.c:536 +msgid "add basic colorfulness (legacy)" +msgstr "dodaj polnost barv (zapuščina)" + +#: ../src/iop/colorbalancergb.c:545 +msgid "basic colorfulness: natural skin" +msgstr "osnovna polnost barv: naravna koža" + +#: ../src/iop/colorbalancergb.c:551 +msgid "basic colorfulness: vibrant colors" +msgstr "osnovna polnost barv: živahne barve" + +#: ../src/iop/colorbalancergb.c:557 +msgid "basic colorfulness: standard" +msgstr "osnovna polnost barv: standard" + +#: ../src/iop/colorbalancergb.c:1022 +msgid "colorbalance works only on RGB input" +msgstr "uravnoteževanje barv deluje samo na vhodu RGB" + +#: ../src/iop/colorbalancergb.c:1577 ../src/iop/colorzones.c:2394 +#: ../src/iop/retouch.c:2069 ../src/iop/toneequal.c:1996 +msgid "cannot display masks when the blending mask is displayed" +msgstr "ne morem prikazati mask, kadar je prikazana maska mešanja" + +#. Page master +#: ../src/iop/colorbalancergb.c:1947 +msgid "master" +msgstr "matični" + +#: ../src/iop/colorbalancergb.c:1947 +msgid "global grading" +msgstr "globalno stopnjevanje" + +#: ../src/iop/colorbalancergb.c:1951 +msgid "rotate all hues by an angle, at the same luminance" +msgstr "zavrti vse odtenke za kot pri enaki svetlosti" + +#: ../src/iop/colorbalancergb.c:1957 +msgid "increase colorfulness mostly on low-chroma colors" +msgstr "poveča polnost barv predvsem na barvah z nizko kromo" + +#: ../src/iop/colorbalancergb.c:1963 +msgid "increase the contrast at constant chromaticity" +msgstr "poveča kontrast pri stalni kromatičnosti" + +#: ../src/iop/colorbalancergb.c:1965 +msgctxt "section" +msgid "linear chroma grading" +msgstr "linearno stopnjevanje krome" + +#: ../src/iop/colorbalancergb.c:1972 +msgid "increase colorfulness at same luminance globally" +msgstr "poveča barvitost pri enaki globalni svetlosti" + +#: ../src/iop/colorbalancergb.c:1977 +msgid "increase colorfulness at same luminance mostly in shadows" +msgstr "poveča barvitost pri enaki svetlosti predvsem v sencah" + +#: ../src/iop/colorbalancergb.c:1982 +msgid "increase colorfulness at same luminance mostly in mid-tones" +msgstr "poveča barvitost pri enaki svetlosti predvsem v srednjih tonih" + +#: ../src/iop/colorbalancergb.c:1987 +msgid "increase colorfulness at same luminance mostly in highlights" +msgstr "poveča barvitost pri enaki svetlosti predvsem v bleščavah" + +#: ../src/iop/colorbalancergb.c:1989 +msgctxt "section" +msgid "perceptual saturation grading" +msgstr "perceptivno stopnjevanje nasičenosti" + +#: ../src/iop/colorbalancergb.c:1995 +msgid "add or remove saturation by an absolute amount" +msgstr "dodaj ali odstrani nasičenost za absolutno vrednost" + +#: ../src/iop/colorbalancergb.c:2000 ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2010 +msgid "" +"increase or decrease saturation proportionally to the original pixel " +"saturation" +msgstr "" +"povečaj ali zmanjšaj nasičenost proporcionalno glede na izvirno nasičenost " +"pikslov" + +#: ../src/iop/colorbalancergb.c:2012 +msgctxt "section" +msgid "perceptual brilliance grading" +msgstr "percepcijsko stopnjevanje živahnosti" + +#: ../src/iop/colorbalancergb.c:2013 +msgid "brilliance" +msgstr "živahnost" + +#: ../src/iop/colorbalancergb.c:2018 +msgid "add or remove brilliance by an absolute amount" +msgstr "dodaj ali odstrani živahnost v absolutni vrednosti" + +#: ../src/iop/colorbalancergb.c:2023 ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2033 +msgid "" +"increase or decrease brilliance proportionally to the original pixel " +"brilliance" +msgstr "povečaj ali zmanjšaj živahnost sorazmerno izvirni živahnosti pikslov" + +#. Page 4-ways +#: ../src/iop/colorbalancergb.c:2036 +msgid "4 ways" +msgstr "4 poti" + +#: ../src/iop/colorbalancergb.c:2036 +msgid "selective color grading" +msgstr "selektivno stopnjevanje barv" + +#: ../src/iop/colorbalancergb.c:2038 +msgctxt "section" +msgid "global offset" +msgstr "globalni odmik" + +#: ../src/iop/colorbalancergb.c:2045 +msgid "global luminance offset" +msgstr "globalni odmik svetlosti" + +#: ../src/iop/colorbalancergb.c:2050 +msgid "hue of the global color offset" +msgstr "globalni barvni odmik odtenka" + +#: ../src/iop/colorbalancergb.c:2056 +msgid "chroma of the global color offset" +msgstr "globalni odmik barve krome" + +#: ../src/iop/colorbalancergb.c:2058 +msgctxt "section" +msgid "shadows lift" +msgstr "dvig senc" + +#: ../src/iop/colorbalancergb.c:2059 +msgid "lift" +msgstr "dvig" + +#: ../src/iop/colorbalancergb.c:2065 +msgid "luminance gain in shadows" +msgstr "povečanje svetlosti v sencah" + +#: ../src/iop/colorbalancergb.c:2070 +msgid "hue of the color gain in shadows" +msgstr "odtenek povečanja barv v sencah" + +#: ../src/iop/colorbalancergb.c:2076 +msgid "chroma of the color gain in shadows" +msgstr "kroma povečanja barv v sencah" + +#: ../src/iop/colorbalancergb.c:2078 +msgctxt "section" +msgid "highlights gain" +msgstr "povečanje bleščav" + +#: ../src/iop/colorbalancergb.c:2079 +msgid "gain" +msgstr "ojačenje" + +#: ../src/iop/colorbalancergb.c:2085 +msgid "luminance gain in highlights" +msgstr "povečanje svetlosti v bleščavah" + +#: ../src/iop/colorbalancergb.c:2090 +msgid "hue of the color gain in highlights" +msgstr "odtenek povečanja barv v bleščavah" + +#: ../src/iop/colorbalancergb.c:2096 +msgid "chroma of the color gain in highlights" +msgstr "kroma povečanja barv v bleščavah" + +#: ../src/iop/colorbalancergb.c:2098 +msgctxt "section" +msgid "power" +msgstr "moč" + +#: ../src/iop/colorbalancergb.c:2099 +msgid "power" +msgstr "moč" + +#: ../src/iop/colorbalancergb.c:2105 +msgid "luminance exponent in mid-tones" +msgstr "eksponent svetlosti v srednjih tonih" + +#: ../src/iop/colorbalancergb.c:2110 +msgid "hue of the color exponent in mid-tones" +msgstr "odtenek eksponenta barve v srednjih tonih" + +#: ../src/iop/colorbalancergb.c:2116 +msgid "chroma of the color exponent in mid-tones" +msgstr "kroma eksponenta barve v srednjih tonih" + +#. Page masks +#: ../src/iop/colorbalancergb.c:2119 +msgid "masks" +msgstr "maske" + +#: ../src/iop/colorbalancergb.c:2119 +msgid "isolate luminances" +msgstr "izoliraj svetlosti" + +#: ../src/iop/colorbalancergb.c:2123 +msgid "choose in which uniform color space the saturation is computed" +msgstr "" +"izberite v katerem enakomernem barvnem prostoru naj bo izračunano nasičenje" + +#: ../src/iop/colorbalancergb.c:2125 +msgctxt "section" +msgid "luminance ranges" +msgstr "obsegi svetlosti" + +#: ../src/iop/colorbalancergb.c:2136 +msgid "weight of the shadows over the whole tonal range" +msgstr "teža senc v celotnem območju tonov" + +#: ../src/iop/colorbalancergb.c:2144 +msgid "position of the middle-gray reference for masking" +msgstr "pozicija srednje sive reference za maskiranje" + +#: ../src/iop/colorbalancergb.c:2152 +msgid "weights of highlights over the whole tonal range" +msgstr "uteži bleščav v celotnem tonskem območju" + +#: ../src/iop/colorbalancergb.c:2157 +msgctxt "section" +msgid "threshold" +msgstr "prag" + +#: ../src/iop/colorbalancergb.c:2162 +msgid "peak white luminance value used to normalize the power function" +msgstr "" +"najvišja vrednost bele svetlosti, ki se uporablja za normalizacijo funkcije " +"moči" + +#: ../src/iop/colorbalancergb.c:2168 +msgid "peak gray luminance value used to normalize the power function" +msgstr "" +"najvišja vrednost bele svetlosti, ki se uporablja za normalizacijo funkcije " +"moči" + +#: ../src/iop/colorbalancergb.c:2170 +msgctxt "section" +msgid "mask preview settings" +msgstr "nastavitve predogleda maske" + +#: ../src/iop/colorbalancergb.c:2173 +msgid "checkerboard color 1" +msgstr "barva šahovnice 1" + +#: ../src/iop/colorbalancergb.c:2176 ../src/iop/colorbalancergb.c:2185 +msgid "select color of the checkerboard from a swatch" +msgstr "izberite barvo šahovnice iz vzorca" + +#: ../src/iop/colorbalancergb.c:2182 +msgid "checkerboard color 2" +msgstr "barva šahovnice 2" + +#: ../src/iop/colorbalancergb.c:2192 +msgid "checkerboard size" +msgstr "velikost šahovnice" + +#: ../src/iop/colorchecker.c:118 +msgid "color look up table" +msgstr "iskalna tabela barv" + +#: ../src/iop/colorchecker.c:123 +msgid "profile|lut|color grading" +msgstr "profil|iskalna tabela|stopnjevanje barv" + +#: ../src/iop/colorchecker.c:129 +msgid "perform color space corrections and apply looks" +msgstr "izvedi popravke barvnega prostora in uporabi videze" + +#: ../src/iop/colorchecker.c:131 ../src/iop/colorchecker.c:133 +#: ../src/iop/colorize.c:99 ../src/iop/colormapping.c:154 +#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:121 +#: ../src/iop/colorzones.c:147 ../src/iop/defringe.c:83 ../src/iop/levels.c:141 +#: ../src/iop/monochrome.c:101 ../src/iop/shadhi.c:145 +#: ../src/iop/tonecurve.c:185 ../src/iop/vibrance.c:98 +msgid "linear or non-linear, Lab, display-referred" +msgstr "linearno ali ne-linearno, Lab, glede na zaslon" + +#: ../src/iop/colorchecker.c:132 +msgid "defined by profile, Lab" +msgstr "določeno s profilom, Lab" + +#: ../src/iop/colorchecker.c:308 +msgid "it8 skin tones" +msgstr "it8 toni kože" + +#: ../src/iop/colorchecker.c:324 +msgid "Helmholtz/Kohlrausch monochrome" +msgstr "Helmholtz/Kohlrausch enobarvno" + +#: ../src/iop/colorchecker.c:341 +msgid "Fuji Astia emulation" +msgstr "kot Fuji Astia" + +#: ../src/iop/colorchecker.c:355 +msgid "Fuji Classic Chrome emulation" +msgstr "kot Fuji Classic Chrome" + +#: ../src/iop/colorchecker.c:369 +msgid "Fuji Monochrome emulation" +msgstr "kot Fuji Monochrome" + +#: ../src/iop/colorchecker.c:383 +msgid "Fuji Provia emulation" +msgstr "kot Fuji Provia" + +#: ../src/iop/colorchecker.c:397 +msgid "Fuji Velvia emulation" +msgstr "kot Fuji Velvia" + +#: ../src/iop/colorchecker.c:846 ../src/iop/colorchecker.c:1441 +#, c-format +msgid "patch #%d" +msgstr "krpa #%d" + +#: ../src/iop/colorchecker.c:1288 +#, c-format +msgid "" +"(%2.2f %2.2f %2.2f)\n" +"altered patches are marked with an outline\n" +"click to select\n" +"double-click to reset\n" +"right click to delete patch\n" +"shift+click while color picking to replace patch" +msgstr "" +"(%2.2f %2.2f %2.2f)\n" +"spremenjene krpe so označene z obrisom\n" +"klik za izbiro\n" +"dvojni klik za ponastavitev\n" +"desni klik za brisanje krpe\n" +"dvigalka+klik ob izbiri barve za zamenjavo krpe" + +#: ../src/iop/colorchecker.c:1436 +msgid "patch" +msgstr "krpa" + +#: ../src/iop/colorchecker.c:1437 +msgid "color checker patch" +msgstr "krpa preverjalnika barv" + +#: ../src/iop/colorchecker.c:1451 +msgid "" +"adjust target color Lab 'L' channel\n" +"lower values darken target color while higher brighten it" +msgstr "" +"prilagodi ciljno barvo kanala Lab 'L'\n" +"nižje vrednosti potemnijo ciljno barvo, višje pa jo posvetlijo" + +#: ../src/iop/colorchecker.c:1459 +msgid "" +"adjust target color Lab 'a' channel\n" +"lower values shift target color towards greens while higher shift towards " +"magentas" +msgstr "" +"prilagodi ciljno barvo kanala Lab 'a'\n" +"nižje vrednosti premaknejo ciljno barvo proti zelenim, višje pa proti " +"magentam" + +#: ../src/iop/colorchecker.c:1462 +msgid "green-magenta offset" +msgstr "odmik zelene proti magenti" + +#: ../src/iop/colorchecker.c:1471 +msgid "" +"adjust target color Lab 'b' channel\n" +"lower values shift target color towards blues while higher shift towards " +"yellows" +msgstr "" +"prilagodi ciljno barvo kanala Lab 'b'\n" +"nižje vrednosti premaknejo ciljno barvo proti modrim, višje pa proti rumenim" + +#: ../src/iop/colorchecker.c:1474 +msgid "blue-yellow offset" +msgstr "odmik modre proti rumeni" + +#: ../src/iop/colorchecker.c:1483 +msgid "" +"adjust target color saturation\n" +"adjusts 'a' and 'b' channels of target color in Lab space simultaneously\n" +"lower values scale towards lower saturation while higher scale towards " +"higher saturation" +msgstr "" +"prilagodi ciljno nasičenost barv\n" +"hkrati prilagaja kanala 'a' in 'b' ciljne barve v prostoru Lab\n" +"nižje vrednosti merijo proti nižji nasičenosti, višje pa proti višji " +"nasičenosti" + +#: ../src/iop/colorchecker.c:1492 +msgid "target color" +msgstr "ciljna barva" + +#: ../src/iop/colorchecker.c:1495 +msgid "" +"control target color of the patches\n" +"relative - target color is relative from the patch original color\n" +"absolute - target color is absolute Lab value" +msgstr "" +"kontrolira ciljno barvo krp\n" +"relativno - ciljna barva je relativna glede izvorne barve krpe\n" +"absolutna - ciljna barva je absolutna vrednost Lab" + +#: ../src/iop/colorchecker.c:1499 +msgid "absolute" +msgstr "absolutno" + +#: ../src/iop/colorcontrast.c:77 +msgid "color contrast" +msgstr "barvni kontrast" + +#: ../src/iop/colorcontrast.c:87 +msgid "" +"increase saturation and separation between\n" +"opposite colors" +msgstr "" +"povečaj nasičenost in ločitev med\n" +"nasprotnimi barvami" + +#: ../src/iop/colorcontrast.c:330 +msgid "" +"steepness of the a* curve in Lab\n" +"lower values desaturate greens and magenta while higher saturate them" +msgstr "" +"strmina krivulje a* v Lab\n" +"nižje vrednosti zmanjšajo nasičenost zelenih in magente, višje pa povečajo " +"nasičenost" + +#: ../src/iop/colorcontrast.c:337 +msgid "" +"steepness of the b* curve in Lab\n" +"lower values desaturate blues and yellows while higher saturate them" +msgstr "" +"strmina krivulje b* v Lab\n" +"nižje vrednosti zmanjšajo nasičenost modrih in rumenih, višje pa povečajo " +"nasičenost" + +#: ../src/iop/colorcorrection.c:71 +msgid "color correction" +msgstr "popravek barv" + +#: ../src/iop/colorcorrection.c:76 +msgid "correct white balance selectively for blacks and whites" +msgstr "popravi ravnovesje beline posebej za črnine in beline" + +#: ../src/iop/colorcorrection.c:109 +msgid "warm tone" +msgstr "topli ton" + +#: ../src/iop/colorcorrection.c:117 +msgid "warming filter" +msgstr "topli filter" + +#: ../src/iop/colorcorrection.c:125 +msgid "cooling filter" +msgstr "hladni filter" + +#: ../src/iop/colorcorrection.c:250 +msgid "" +"drag the line for split-toning. bright means highlights, dark means shadows. " +"use mouse wheel to change saturation." +msgstr "" +"povlecite črto za razcep toniranja. svetlo pomeni bleščave, temno pomeni " +"senčne dele. uporabite miškin kolešček za spremembo nasičenosti." + +#: ../src/iop/colorcorrection.c:269 +msgid "set the global saturation" +msgstr "nastavi globalno nasičenost barv" + +#: ../src/iop/colorin.c:126 +msgid "input color profile" +msgstr "vhodni barvni profil" + +#: ../src/iop/colorin.c:131 +msgid "" +"convert any RGB input to pipeline reference RGB\n" +"using color profiles to remap RGB values" +msgstr "" +"pretvori kateri koli vhod RGB v cevovodni referenčni RGB\n" +"uporaba barvnih profilov za ponovno preslikavo vrednosti RGB" + +#: ../src/iop/colorin.c:133 ../src/iop/colorout.c:89 ../src/iop/demosaic.c:293 +#: ../src/iop/rawprepare.c:174 +msgid "mandatory" +msgstr "obvezno" + +#: ../src/iop/colorin.c:135 ../src/iop/colorout.c:91 +msgid "defined by profile" +msgstr "določeno s profilom" + +#: ../src/iop/colorin.c:582 +#, c-format +msgid "" +"can't extract matrix from colorspace `%s', it will be replaced by Rec2020 " +"RGB!" +msgstr "" +"ne morem izvleči matrike iz barvnega prostora `%s', zamenjal jo bom za " +"Rec2020 RGB!" + +#: ../src/iop/colorin.c:1362 +#, c-format +msgid "`%s' color matrix not found!" +msgstr "`%s' barvne tabele ne najdem!" + +#: ../src/iop/colorin.c:1401 +msgid "input profile could not be generated!" +msgstr "vhodnega profila ni bilo mogoče izdelati!" + +#: ../src/iop/colorin.c:1498 +msgid "unsupported input profile has been replaced by linear Rec709 RGB!" +msgstr "nepodprt vhodni profil sem zamenjal za linearnega RGB Rec709!" + +#: ../src/iop/colorin.c:1782 +msgid "external ICC profiles" +msgstr "zunanji ICC profili" + +#: ../src/iop/colorin.c:1827 +#, c-format +msgid "" +"embedded ICC profile properties:\n" +"\n" +"name: <b>%s</b>\n" +"version: <b>%d.%d</b>\n" +"type: <b>%s</b>\n" +"manufacturer: <b>%s</b>\n" +"model: <b>%s</b>\n" +"copyright: <b>%s</b>\n" +"\n" +msgstr "" +"lastnosti vdelanega ICC profila:\n" +"\n" +"ime: <b>%s</b>\n" +"verzija: <b>%d.%d</b>\n" +"tip: <b>%s</b>\n" +"proizvajalec: <b>%s</b>\n" +"model: <b>%s</b>\n" +"copyright: <b>%s</b>\n" +"\n" + +#: ../src/iop/colorin.c:2022 +msgid "input profile" +msgstr "vhodni profil" + +#: ../src/iop/colorin.c:2026 +msgid "working profile" +msgstr "delovni profil" + +#: ../src/iop/colorin.c:2035 +msgid "working ICC profiles" +msgstr "delovni ICC profili" + +#: ../src/iop/colorin.c:2047 +msgid "confine Lab values to gamut of RGB color space" +msgstr "omeji vrednosti Lab na razpon barvnega prostora RGB" + +#: ../src/iop/colorize.c:75 +msgid "colorize" +msgstr "obarvaj" + +#: ../src/iop/colorize.c:97 +msgid "overlay a solid color on the image" +msgstr "prekrij trdno barvo na sliko" + +#: ../src/iop/colorize.c:354 ../src/iop/splittoning.c:481 +msgid "select the hue tone" +msgstr "izberi ton odtenka" + +#: ../src/iop/colorize.c:360 +msgid "select the saturation shadow tone" +msgstr "izberi nasičenost tona v senci" + +#: ../src/iop/colorize.c:364 +msgid "lightness of color" +msgstr "svetlost barve" + +#: ../src/iop/colorize.c:368 +msgid "mix value of source lightness" +msgstr "mešanje vrednosti vhodne svetlosti" + +#: ../src/iop/colormapping.c:147 +msgid "color mapping" +msgstr "preslikava barv" + +#: ../src/iop/colormapping.c:152 +msgid "" +"transfer a color palette and tonal repartition from one image to another" +msgstr "" +"prenesi barvno paleto in ponovno tonsko razdelitev z ene slike na drugo" + +#: ../src/iop/colormapping.c:1019 +msgid "source clusters:" +msgstr "izvorne grupe:" + +#: ../src/iop/colormapping.c:1025 +msgid "target clusters:" +msgstr "ciljne grupe:" + +#: ../src/iop/colormapping.c:1034 +msgid "acquire as source" +msgstr "pridobi kot vhod" + +#: ../src/iop/colormapping.c:1038 +msgid "analyze this image as a source image" +msgstr "analiziraj to sliko kot izvirno sliko" + +#: ../src/iop/colormapping.c:1040 +msgid "acquire as target" +msgstr "pridobi kot cilj" + +#: ../src/iop/colormapping.c:1044 +msgid "analyze this image as a target image" +msgstr "analiziraj to sliko kot ciljno sliko" + +#: ../src/iop/colormapping.c:1047 +msgid "number of clusters to find in image. value change resets all clusters" +msgstr "število grup za iskanje po sliki. sprememba števila spremeni vse grupe" + +#: ../src/iop/colormapping.c:1050 +msgid "" +"how clusters are mapped. low values: based on color proximity, high values: " +"based on color dominance" +msgstr "" +"kako so preslikane grupe: temni deli na sorodnosti barv, svetli deli na " +"barvni nadvladi" + +#: ../src/iop/colormapping.c:1055 +msgid "level of histogram equalization" +msgstr "raven izenačevanja histograma" + +#: ../src/iop/colorout.c:81 +msgid "output color profile" +msgstr "izhodni barvni profil" + +#: ../src/iop/colorout.c:87 +msgid "" +"convert pipeline reference RGB to any display RGB\n" +"using color profiles to remap RGB values" +msgstr "" +"pretvori referenco RGB cevovoda v kateri koli prikaz RGB\n" +"z uporabo barvnih profilov za ponovno preslikavo vrednosti RGB" + +#: ../src/iop/colorout.c:92 +msgid "non-linear, RGB or Lab, display-referred" +msgstr "ne-linearno RGB ali Lab, glede na zaslon" + +#: ../src/iop/colorout.c:695 +msgid "missing output profile has been replaced by sRGB!" +msgstr "manjkajoči izhodni profil je bil zamenjan z sRGB!" + +#: ../src/iop/colorout.c:717 +msgid "missing softproof profile has been replaced by sRGB!" +msgstr "manjkajoči profil preizkusnega odtisa je bil zamenjan za sRGB!" + +#: ../src/iop/colorout.c:760 +msgid "unsupported output profile has been replaced by sRGB!" +msgstr "nepodprt izhodni profil sem zamenjal za sRGB!" + +#: ../src/iop/colorout.c:885 +msgid "output intent" +msgstr "namen izhoda" + +#: ../src/iop/colorout.c:886 +msgid "rendering intent" +msgstr "namen upodabljanja" + +#: ../src/iop/colorout.c:888 ../src/libs/export.c:1358 +#: ../src/libs/print_settings.c:2475 ../src/libs/print_settings.c:2824 +#: ../src/views/darkroom.c:2359 ../src/views/lighttable.c:1176 +msgid "perceptual" +msgstr "videz" + +#: ../src/iop/colorout.c:889 ../src/libs/export.c:1359 +#: ../src/libs/print_settings.c:2476 ../src/libs/print_settings.c:2825 +#: ../src/views/darkroom.c:2360 ../src/views/lighttable.c:1177 +msgid "relative colorimetric" +msgstr "relativni kolorimetrični" + +#: ../src/iop/colorout.c:890 ../src/libs/export.c:1360 +#: ../src/libs/print_settings.c:2477 ../src/libs/print_settings.c:2826 +#: ../src/views/darkroom.c:2361 ../src/views/lighttable.c:1178 +msgctxt "rendering intent" +msgid "saturation" +msgstr "nasičenost" + +#: ../src/iop/colorout.c:891 ../src/libs/export.c:1361 +#: ../src/libs/print_settings.c:2478 ../src/libs/print_settings.c:2827 +#: ../src/views/darkroom.c:2362 ../src/views/lighttable.c:1179 +msgid "absolute colorimetric" +msgstr "absolutno kolorimetričen" + +#: ../src/iop/colorout.c:909 +msgid "export ICC profiles" +msgstr "izvozi ICC profile" + +#: ../src/iop/colorreconstruction.c:114 +msgid "color reconstruction" +msgstr "rekonstrukcija barv" + +#: ../src/iop/colorreconstruction.c:119 +msgid "recover clipped highlights by propagating surrounding colors" +msgstr "obnovi obrezane bleščave s širjenjem okoliških barv" + +#: ../src/iop/colorreconstruction.c:647 ../src/iop/colorreconstruction.c:1053 +#: ../src/iop/globaltonemap.c:227 ../src/iop/globaltonemap.c:396 +#: ../src/iop/hazeremoval.c:541 ../src/iop/hazeremoval.c:776 +#: ../src/iop/levels.c:358 +msgid "inconsistent output" +msgstr "nekonsistenten izhod" + +#: ../src/iop/colorreconstruction.c:685 +msgid "module `color reconstruction' failed" +msgstr "delo modula 'rekonstrukcija barve' ni uspelo" + +#: ../src/iop/colorreconstruction.c:1246 +msgid "spatial" +msgstr "prostorsko" + +#: ../src/iop/colorreconstruction.c:1247 +msgid "range" +msgstr "obseg" + +#: ../src/iop/colorreconstruction.c:1248 +msgid "precedence" +msgstr "prednost" + +#: ../src/iop/colorreconstruction.c:1264 +msgid "pixels with lightness values above this threshold are corrected" +msgstr "piksli s svetlostjo nad tem pragom so popravljeni" + +#: ../src/iop/colorreconstruction.c:1265 +msgid "how far to look for replacement colors in spatial dimensions" +msgstr "kako daleč naj gre iskanje nadomestnih barv v prostorskih dimenzijah" + +#: ../src/iop/colorreconstruction.c:1266 +msgid "how far to look for replacement colors in the luminance dimension" +msgstr "kako daleč naj gre iskanje nadomestnih barv v prostoru svetlosti" + +#: ../src/iop/colorreconstruction.c:1267 +msgid "if and how to give precedence to specific replacement colors" +msgstr "če in kako dati prednost določenim nadomestnim barvam" + +#: ../src/iop/colorreconstruction.c:1268 +msgid "the hue tone which should be given precedence over other hue tones" +msgstr "ton odtenka, ki naj bi imel prednost pred drugimi toni" + +#: ../src/iop/colorreconstruction.c:1270 ../src/iop/demosaic.c:1324 +#: ../src/iop/highlights.c:1258 +msgid "not applicable" +msgstr "ni na voljo" + +#: ../src/iop/colorreconstruction.c:1271 +msgid "no highlights reconstruction for monochrome images" +msgstr "ni metode rekonstrukcije bleščav za enobarvne slike" + +#: ../src/iop/colortransfer.c:103 +msgid "color transfer" +msgstr "prenos barv" + +#: ../src/iop/colortransfer.c:118 +msgid "this module is deprecated. better use color mapping module instead." +msgstr "ta modul je zastarel. raje uporabite modul za preslikavo barv." + +#: ../src/iop/colortransfer.c:441 +msgid "" +"this module will be removed in the future\n" +"and is only here so you can switch it off\n" +"and move to the new color mapping module." +msgstr "" +"ta modul bo v bodoče odstranjen\n" +"je samo tu in ga lahko onemogočite\n" +"in preselite v novi modul preslikave barv." + +#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2573 +msgid "color zones" +msgstr "barvne cone" + +#: ../src/iop/colorzones.c:145 +msgid "selectively shift hues, chroma and lightness of pixels" +msgstr "selektivno premikaj odtenke, kromo in sijavost pikslov" + +#: ../src/iop/colorzones.c:684 +msgid "B&W: with red" +msgstr "ČB: z rdečo" + +#: ../src/iop/colorzones.c:707 +msgid "B&W: with skin tones" +msgstr "ČB: s kožnimi toni" + +#: ../src/iop/colorzones.c:732 +msgid "polarizing filter" +msgstr "polarizacijski filter" + +#: ../src/iop/colorzones.c:753 +msgid "natural skin tones" +msgstr "toni naravne kože" + +#: ../src/iop/colorzones.c:784 +msgid "B&W: film" +msgstr "ČB: film" + +#: ../src/iop/colorzones.c:804 +msgid "HSL base setting" +msgstr "nastavitve baze HSL" + +#: ../src/iop/colorzones.c:2500 +msgid "orange" +msgstr "oranžna" + +#: ../src/iop/colorzones.c:2673 ../src/iop/rgbcurve.c:1375 +msgid "" +"create a curve based on an area from the image\n" +"drag to create a flat curve\n" +"ctrl+drag to create a positive curve\n" +"shift+drag to create a negative curve" +msgstr "" +"ustvari krivuljo glede na določeno površino slike\n" +"kliknite za tvorbo ravne krivulje\n" +"krmilka+klik za tvorbo pozitivne krivulje\n" +"dvigalka+klik za tvorbo negativne krivulje" + +#: ../src/iop/colorzones.c:2677 ../src/iop/rgbcurve.c:1379 +msgid "create curve" +msgstr "ustvari krivuljo" + +#. edit by area +#: ../src/iop/colorzones.c:2696 +msgid "edit by area" +msgstr "uredi po površini" + +#: ../src/iop/colorzones.c:2702 +msgid "edit the curve nodes by area" +msgstr "uredi vozle krivulje po površini" + +#: ../src/iop/colorzones.c:2710 +msgid "display selection" +msgstr "prikaži izbor" + +#: ../src/iop/colorzones.c:2722 +msgid "choose selection criterion, will be the abscissa in the graph" +msgstr "izberite kriterij izbire, v grafu bo abscisa" + +#: ../src/iop/colorzones.c:2725 +msgid "choose between a smoother or stronger effect" +msgstr "izberite med bolj gladkim ali močnejšim učinkom" + +#: ../src/iop/colorzones.c:2762 ../src/iop/rgbcurve.c:1410 +#: ../src/iop/tonecurve.c:1194 +msgid "interpolation method" +msgstr "metoda interpolacije" + +#: ../src/iop/colorzones.c:2764 ../src/iop/rgbcurve.c:1412 +#: ../src/iop/tonecurve.c:1196 +msgid "centripetal spline" +msgstr "centripetalni zlepek" + +#: ../src/iop/colorzones.c:2765 ../src/iop/rgbcurve.c:1413 +#: ../src/iop/tonecurve.c:1197 +msgid "monotonic spline" +msgstr "monotoni zlepek" + +#: ../src/iop/colorzones.c:2768 ../src/iop/rgbcurve.c:1416 +#: ../src/iop/tonecurve.c:1199 +msgid "" +"change this method if you see oscillations or cusps in the curve\n" +"- cubic spline is better to produce smooth curves but oscillates when nodes " +"are too close\n" +"- centripetal is better to avoids cusps and oscillations with close nodes " +"but is less smooth\n" +"- monotonic is better for accuracy of pure analytical functions (log, gamma, " +"exp)" +msgstr "" +"zamenjajte to metodo, če opazite oscilacije ali zobate krivulje\n" +"- kubični zlepek naredi bolj gladko krivuljo, a oscilira, če so točke " +"preblizu\n" +"- centripetalni zlepek je boljši za izogibanje oscilacij, a je manj gladek\n" +"- monotoni je boljši za natančnost pri čisto analitično določenih funkcijah " +"(log, gama, exp)" + +#: ../src/iop/crop.c:122 +msgid "crop" +msgstr "obreži" + +#: ../src/iop/crop.c:127 +msgid "reframe|distortion" +msgstr "ponovno okvirjenje|popačenje" + +#: ../src/iop/crop.c:133 +msgid "change the framing" +msgstr "spremeni okvir" + +#: ../src/iop/crop.c:1651 +msgid "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag" +msgstr "" +"<b>spremeni velikost</b>: poteg, <b>ohrani proporce</b>: dvigalka+poteg" + +#: ../src/iop/crop.c:1660 +msgid "" +"<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" +"b>: ctrl+drag" +msgstr "" +"<b>premakni</b>: poteg, <b>premakni navpično</b>: dvigalka+poteg, " +"<b>premakni vodoravno</b>: krmilka+poteg" + +#: ../src/iop/defringe.c:71 +msgid "defringe" +msgstr "odstrani barvne napake robov" + +#: ../src/iop/defringe.c:81 +msgid "attenuate chromatic aberration by desaturating edges" +msgstr "oslabi barvni odklon z zmanjšanjem nasičenosti robov" + +#: ../src/iop/defringe.c:101 +msgid "" +"this module is deprecated. please use the chromatic aberration module " +"instead." +msgstr "" +"ta modul je zastarel. namesto tega raje uporabite modul za kromatsko " +"aberacijo." + +#: ../src/iop/defringe.c:417 +msgid "" +"method for color protection:\n" +" - global average: fast, might show slightly wrong previews in high " +"magnification; might sometimes protect saturation too much or too low in " +"comparison to local average\n" +" - local average: slower, might protect saturation better than global " +"average by using near pixels as color reference, so it can still allow for " +"more desaturation where required\n" +" - static: fast, only uses the threshold as a static limit" +msgstr "" +"metoda za zavarovanja barv:\n" +"- globalno povprečje: hitro, lahko prikaže rahlo napačne predoglede pri " +"velikih povečavah;lahko včasih preveč zavaruje nasičenost preveč ali premalo " +"glede na globalno povprečje\n" +"- lokalno povprečje: počasnejše, lahko zavaruje nasičenost bolje kot " +"globalno povprečje,\n" +"ker uporablja bližnje piksle kot reference za barve in tako dovoljuje še " +"zmanjšanje\n" +"nasičenosti, kjer je potrebno\n" +"- statično: hitro, uporablja samo prag kot statično omejitev" + +#: ../src/iop/defringe.c:424 +msgid "radius for detecting fringe" +msgstr "polmer zaznavanja barvnih napak robov" + +#: ../src/iop/defringe.c:427 +msgid "threshold for defringe, higher values mean less defringing" +msgstr "" +"prag za odstranitev barvnih napak robov, višje vrednosti pomenijo manj " +"odstranjevanja napak" + +#: ../src/iop/demosaic.c:287 +msgid "demosaic" +msgstr "odstrani mozaičnost" + +#: ../src/iop/demosaic.c:292 +msgid "reconstruct full RGB pixels from a sensor color filter array reading" +msgstr "" +"rekonstruiraj polne RGB slikovne pike iz odčitavanja polja senzorjev barvnih " +"filtrov" + +#: ../src/iop/demosaic.c:1133 +#, c-format +msgid "`%s' color matrix not found for 4bayer image!" +msgstr "matrike barv `%s' ne najdem za sliko 4bayer!" + +#: ../src/iop/demosaic.c:1285 +msgid "" +"Bayer sensor demosaicing method, PPG and RCD are fast, AMaZE and LMMSE are " +"slow.\n" +"LMMSE is suited best for high ISO images.\n" +"dual demosaicers double processing time." +msgstr "" +"Bayerjeva metoda odstranjevanje mozaičnosti senzorja, PPG in RCD sta hitra, " +"AMaZE in LMMSE pa počasna.\n" +"LMMSE se najbolj obnese pri slikah z visokim ISO.\n" +"dvojni odstranjevalci mozaičnosti podvojijo čas obdelave." + +#: ../src/iop/demosaic.c:1289 +msgid "" +"X-Trans sensor demosaicing method, Markesteijn 3-pass and frequency domain " +"chroma are slow.\n" +"dual demosaicers double processing time." +msgstr "" +"metoda X-Trans odstranjevanja mozaičnosti senzorja, Markesteijn s 3 prehodi " +"in frekvenčna domena krome so počasni.\n" +"dvojni odstranjevalci mozaičnosti dvojni čas obdelave." + +#: ../src/iop/demosaic.c:1295 +msgid "Bayer4 sensor demosaicing methods." +msgstr "metode za odstr. mozaičnosti senzorja Bayer4" + +#: ../src/iop/demosaic.c:1299 +msgid "" +"threshold for edge-aware median.\n" +"set to 0.0 to switch off\n" +"set to 1.0 to ignore edges" +msgstr "" +"prag za mediano roba.\n" +"nastavite na 0.0 za izklop.\n" +"nastavite na 1.0 za prezrtje robov" + +#: ../src/iop/demosaic.c:1304 +msgid "" +"contrast threshold for dual demosaic.\n" +"set to 0.0 for high frequency content\n" +"set to 1.0 for flat content\n" +"toggle to visualize the mask" +msgstr "" +"prag kontrasta za dvojno odstranjevanje mozaičnosti.\n" +"nastavi na 0.0 za visoko frekvenčni kontekst.\n" +"nastavi na 1.0 za plosko vsebino\n" +"preklopi za vizualizacijo maske" + +#: ../src/iop/demosaic.c:1312 +msgid "" +"LMMSE refinement steps. the median steps average the output,\n" +"refine adds some recalculation of red & blue channels" +msgstr "" +"koraki izboljšave LMMSE, koraki mediane k povprečju izhoda,\n" +"izboljšave dodajo nekaj ponovnih izračunov na rdečih in modrih kanalih" + +#: ../src/iop/demosaic.c:1315 +msgid "how many color smoothing median steps after demosaicing" +msgstr "koliko korakov mediane barvnega glajenja po odstranjevanju mozaičnosti" + +#: ../src/iop/demosaic.c:1318 +msgid "green channels matching method" +msgstr "metoda usklajevanja z zelenimi kanali" + +#: ../src/iop/demosaic.c:1325 +msgid "demosaicing is only used for color raw images" +msgstr "odstranjevanje mozaičnosti se uporablja samo za surove slike" + +#: ../src/iop/denoiseprofile.c:766 +msgid "wavelets: chroma only" +msgstr "valovčki: samo kroma" + +#: ../src/iop/denoiseprofile.c:772 +msgid "denoise (profiled)" +msgstr "odstranjevanje šuma (profilirano)" + +#: ../src/iop/denoiseprofile.c:778 +msgid "denoise using noise statistics profiled on sensors" +msgstr "odstrani šum z uporabo statistike šuma profilirane na senzorjih" + +#: ../src/iop/denoiseprofile.c:2850 +#, c-format +msgid "found match for ISO %d" +msgstr "najdeno za ISO %d" + +#: ../src/iop/denoiseprofile.c:2859 +#, c-format +msgid "interpolated from ISO %d and %d" +msgstr "interpolirano med ISO %d in %d" + +#: ../src/iop/denoiseprofile.c:3723 +msgid "Y0" +msgstr "Y0" + +#: ../src/iop/denoiseprofile.c:3724 +msgid "U0V0" +msgstr "U0V0" + +#: ../src/iop/denoiseprofile.c:3764 +msgid "" +"use only with a perfectly\n" +"uniform image if you want to\n" +"estimate the noise variance." +msgstr "" +"uporabite samo na perfektno\n" +"enakomerni sliki, če želite\n" +"oceniti varianco šuma." + +#: ../src/iop/denoiseprofile.c:3770 +msgid "variance red: " +msgstr "varianca rdeče: " + +#: ../src/iop/denoiseprofile.c:3774 +msgid "variance computed on the red channel" +msgstr "varianca izračunana na rdečem kanalu" + +#: ../src/iop/denoiseprofile.c:3779 +msgid "variance green: " +msgstr "varianca zelene: " + +#: ../src/iop/denoiseprofile.c:3783 +msgid "variance computed on the green channel" +msgstr "varianca izračunana na zelenem kanalu" + +#: ../src/iop/denoiseprofile.c:3788 +msgid "variance blue: " +msgstr "varianca modre: " + +#: ../src/iop/denoiseprofile.c:3792 +msgid "variance computed on the blue channel" +msgstr "varianca izračunana na modrem kanalu" + +#: ../src/iop/denoiseprofile.c:3803 ../src/libs/export.c:1320 +#: ../src/libs/print_settings.c:2418 ../src/libs/print_settings.c:2774 +msgid "profile" +msgstr "profil" + +#: ../src/iop/denoiseprofile.c:3837 +msgid "" +"adapt denoising according to the\n" +"white balance coefficients.\n" +"should be enabled on a first instance\n" +"for better denoising.\n" +"should be disabled if an earlier instance\n" +"has been used with a color blending mode." +msgstr "" +"prilagodi odstranjevanje šuma glede\n" +"na koeficiente uravnoteženja beline.\n" +"naj bi bilo omogočeno pri prvi obdelavi \n" +"za boljše odstranjevanje šuma.\n" +"naj bi bilo onemogočeno, če je je že prejšnja obdelava\n" +"bila uporabljena v načinu mešanja barv." + +#: ../src/iop/denoiseprofile.c:3844 +msgid "" +"fix bugs in Anscombe transform resulting\n" +"in undersmoothing of the green channel in\n" +"wavelets mode, combined with a bad handling\n" +"of white balance coefficients, and a bug in\n" +"non-local means normalization resulting in\n" +"undersmoothing when patch size was increased.\n" +"enabling this option will change the denoising\n" +"you get. once enabled, you won't be able to\n" +"return back to old algorithm." +msgstr "" +"popravi napake v Anscombovi transformaciji in posledično\n" +"premalo zglajen zeleni kanal v\n" +"načinu valovčkov, v kombinaciji s slabo obdelavo\n" +"koeficientov uravnoteženja beline, in napako pri\n" +"ne lokalni normalizaciji in posledično\n" +"premalo glajenja, kadar je povečana velikost krpe.\n" +"omogočanje te opcije bo spremenilo odstranjevanje šuma.\n" +"ko omogočite to opcijo, ne boste več mogli uporabiti\n" +"starega algoritma." + +#: ../src/iop/denoiseprofile.c:3854 +msgid "profile used for variance stabilization" +msgstr "profil uporabljen za stabilizacijo variance" + +#: ../src/iop/denoiseprofile.c:3856 +msgid "" +"method used in the denoising core.\n" +"non-local means works best for `lightness' blending,\n" +"wavelets work best for `color' blending" +msgstr "" +"metoda uporabljena v jedru odstranjevanja šuma.\n" +"ne-lokalna povprečja je najbolje uporabiti za mešanje svetlosti,\n" +"valovčki delujejo najbolje pri mešanju barv" + +#: ../src/iop/denoiseprofile.c:3860 +msgid "" +"color representation used within the algorithm.\n" +"RGB keeps the RGB channels separated,\n" +"while Y0U0V0 combine the channels to\n" +"denoise chroma and luma separately." +msgstr "" +"predstavitev barv, uporabljena v algoritmu.\n" +"RGB vodi ločene kanale RGB,\n" +"medtem ko Y0U0V0 združuje kanale da\n" +"ločeno označuje kromo in lume." + +#: ../src/iop/denoiseprofile.c:3865 +msgid "" +"radius of the patches to match.\n" +"increase for more sharpness on strong edges, and better denoising of smooth " +"areas.\n" +"if details are oversmoothed, reduce this value or increase the central pixel " +"weight slider." +msgstr "" +"radij ustreznih krp.\n" +"povečani radij naredi več ostrine na močnih robovih in boljše odstranjevanje " +"šuma na gladkih površinah.\n" +"če so podrobnosti preveč zglajene, zmanjšajte to vrednost ali povečajte " +"drsnik teže centralne točke." + +#: ../src/iop/denoiseprofile.c:3871 +msgid "" +"emergency use only: radius of the neighborhood to search patches in. " +"increase for better denoising performance, but watch the long runtimes! " +"large radii can be very slow. you have been warned" +msgstr "" +"uporaba le v skrajni sili: radij okolice za iskanje krp. povečanje nudi " +"boljše odstranjevanje šuma, a bodite pozorni na dolge čase izvajanja! velik " +"radij utegne delovati zelo počasi. bili ste opozorjeni" + +#: ../src/iop/denoiseprofile.c:3877 +msgid "" +"scattering of the neighborhood to search patches in.\n" +"increase for better coarse-grain noise reduction.\n" +"does not affect execution time." +msgstr "" +"raztros soseske za iskanje krp.\n" +"povečajte za zmanjšanje šuma zaradi velike zrnatosti.\n" +"ne vpliva na čas izvajanja." + +#: ../src/iop/denoiseprofile.c:3881 +msgid "" +"increase the weight of the central pixel\n" +"of the patch in the patch comparison.\n" +"useful to recover details when patch size\n" +"is quite big." +msgstr "" +"povečaj težo osrednjega piksla\n" +"krpe pri primerjavi krp.\n" +"uporabno za obnovo podrobnosti, kadar je velikost krp razmeroma velika." + +#: ../src/iop/denoiseprofile.c:3885 +msgid "finetune denoising strength" +msgstr "natančno nastavljena moč odstranjevanja šumov" + +#: ../src/iop/denoiseprofile.c:3887 +msgid "" +"controls the way parameters are autoset\n" +"increase if shadows are not denoised enough\n" +"or if chroma noise remains.\n" +"this can happen if your picture is underexposed." +msgstr "" +"upravlja, kako so avtomatsko postavljeni parametri\n" +"jih poveča, če v sencah niso dovolj odpravljeni šumi\n" +"ali če ostane šum krome.\n" +"to se lahko zgodi, če je slika premalo osvetljena." + +#: ../src/iop/denoiseprofile.c:3892 +msgid "" +"finetune shadows denoising.\n" +"decrease to denoise more aggressively\n" +"dark areas of the image." +msgstr "" +"natančno nastavi odstranjevanje šumov v sencah.\n" +"zmanjšanje bolj agresivno odstranjuje\n" +"šum v temnih delih slike." + +#: ../src/iop/denoiseprofile.c:3896 +msgid "" +"correct color cast in shadows.\n" +"decrease if shadows are too purple.\n" +"increase if shadows are too green." +msgstr "" +"popravi barvni pridih v sencah.\n" +"zmanjša, če so sence preveč rožnate.\n" +"poveča, če so sence preveč zelene." + +#: ../src/iop/denoiseprofile.c:3900 +msgid "" +"upgrade the variance stabilizing algorithm.\n" +"new algorithm extends the current one.\n" +"it is more flexible but could give small\n" +"differences in the images already processed." +msgstr "" +"nadgradi algoritem stabiliziranja variance.\n" +"novi algoritem je razširitev trenutnega.\n" +"je bolj prilagodljiv, a ima lahko da za malenkost\n" +"drugačen rezultat od že obdelanih slik." + +#: ../src/iop/diffuse.c:129 +msgid "diffuse or sharpen" +msgstr "difuzija ali ostrenje" + +#: ../src/iop/diffuse.c:134 +msgid "diffusion|deconvolution|blur|sharpening" +msgstr "difuzija|dekonvolucija|zamegljevanje|ostrenje" + +#: ../src/iop/diffuse.c:141 +msgid "" +"simulate directional diffusion of light with heat transfer model\n" +"to apply an iterative edge-oriented blur,\n" +"inpaint damaged parts of the image, or to remove blur with blind " +"deconvolution." +msgstr "" +"simuliraj usmerjeno difuzijo svetlobe z modelom prenosa toplote\n" +"z uporabo iterativnih usmerjenih zameglitev v robove,\n" +"pobarvaj poškodovane dele slike ali za odstrani zamegljenosti s slepo " +"dekonvolucijo." + +#. deblurring presets +#: ../src/iop/diffuse.c:246 +msgid "lens deblur: soft" +msgstr "odstranjevanje zamegljenosti objektiva: mehko" + +#: ../src/iop/diffuse.c:271 +msgid "lens deblur: medium" +msgstr "odstranjevanje zamegljenosti objektiva: srednje" + +#: ../src/iop/diffuse.c:296 +msgid "lens deblur: hard" +msgstr "odstranjevanje zamegljenosti objektiva: močno" + +#: ../src/iop/diffuse.c:322 +msgid "dehaze" +msgstr "odstranjevanje meglice" + +#: ../src/iop/diffuse.c:348 +msgid "denoise: fine" +msgstr "odstranjevanje šuma: fino" + +#: ../src/iop/diffuse.c:373 +msgid "denoise: medium" +msgstr "odstranjevanje šuma: srednje" + +#: ../src/iop/diffuse.c:398 +msgid "denoise: coarse" +msgstr "odstranjevanje šuma: grobo" + +#: ../src/iop/diffuse.c:473 +msgid "sharpen demosaicing: no AA filter" +msgstr "naostri odstranjevanje mozaičnosti: brez filtra AA" + +#: ../src/iop/diffuse.c:499 +msgid "sharpen demosaicing: AA filter" +msgstr "naostri odstranjevanje mozaičnosti: filter AA" + +#: ../src/iop/diffuse.c:526 +msgid "simulate watercolor" +msgstr "simuliraj vodene barvice" + +#: ../src/iop/diffuse.c:551 +msgid "simulate line drawing" +msgstr "simuliraj risanje črt" + +#: ../src/iop/diffuse.c:603 +msgid "inpaint highlights" +msgstr "obarvaj bleščave" + +#. fast presets for slow hardware +#: ../src/iop/diffuse.c:630 +msgid "sharpness: fast" +msgstr "ostrina: hitro" + +#: ../src/iop/diffuse.c:682 +msgid "sharpness: strong" +msgstr "ostrina: močno" + +#: ../src/iop/diffuse.c:707 +msgid "local contrast: fast" +msgstr "lokalni kontrast: hitro" + +#: ../src/iop/diffuse.c:1418 ../src/iop/diffuse.c:1693 +msgid "diffuse/sharpen failed to allocate memory, check your RAM settings" +msgstr "" +"zmehčaj/naostri ni uspel pridobiti dovolj pomnilnika, preverite nastavitve " +"za RAM" + +#. Additional parameters +#. Camera settings +#: ../src/iop/diffuse.c:1797 ../src/iop/splittoning.c:533 +#: ../src/libs/camera.c:486 +msgctxt "section" +msgid "properties" +msgstr "lastnosti" + +#: ../src/iop/diffuse.c:1803 +msgid "" +"more iterations make the effect stronger but the module slower.\n" +"this is analogous to giving more time to the diffusion reaction.\n" +"if you plan on sharpening or inpainting, \n" +"more iterations help reconstruction." +msgstr "" +"več iteracij povzroči močnejši učinek a modul je počasnejši.\n" +"to je analogno podaljševanju časa difuzijske reakcije.\n" +"če planirate ostrenje ali popravke barve\n" +"več iteracij pomaga pri obnovi." + +#: ../src/iop/diffuse.c:1812 +msgid "" +"main scale of the diffusion.\n" +"zero makes diffusion act on the finest details more heavily.\n" +"non-zero defines the size of the details to diffuse heavily.\n" +"for deblurring and denoising, set to zero.\n" +"increase to act on local contrast instead." +msgstr "" +"glavna mera difuzije.\n" +"nič povzroči močnejše delovanje difuzije na najmanjše podrobnosti.\n" +"ne nič določa velikost podrobnosti, ki se močno razpršijo.\n" +"za odpravljanje zamegljenosti in šumov nastavite na nič.\n" +"povečanje namesto tega deluje na lokalni kontrast." + +#: ../src/iop/diffuse.c:1822 +msgid "" +"width of the diffusion around the central radius.\n" +"high values diffuse on a large band of radii.\n" +"low values diffuse closer to the central radius.\n" +"if you plan on deblurring, \n" +"the radius should be around the width of your lens blur." +msgstr "" +"širina difuzije okoli sredinskega polmera.\n" +"visoke vrednosti se razpršijo na velikem pasu polmerov.\n" +"nizke vrednosti se razpršijo bližje središča kroga.\n" +"če nameravate odstraniti zameglitev,\n" +"mora biti polmer okoli širine vašega zamegljenost objektiva." + +#: ../src/iop/diffuse.c:1829 +msgctxt "section" +msgid "speed (sharpen ↔ diffuse)" +msgstr "hitrost (naostri ↔ razprši)" + +#: ../src/iop/diffuse.c:1836 +msgid "" +"diffusion speed of low-frequency wavelet layers\n" +"in the direction of 1st order anisotropy (set below).\n" +"\n" +"negative values sharpen, \n" +"positive values diffuse and blur, \n" +"zero does nothing." +msgstr "" +"difuzijska hitrost nizkofrekvenčnih valovnih plasti\n" +"v smeri anizotropije 1. reda (nastavljeno spodaj).\n" +"\n" +"negativne vrednosti ostrijo,\n" +"pozitivne vrednosti razpršijo in zameglijo,\n" +"zero ne naredi ničesar." + +#: ../src/iop/diffuse.c:1846 +msgid "" +"diffusion speed of low-frequency wavelet layers\n" +"in the direction of 2nd order anisotropy (set below).\n" +"\n" +"negative values sharpen, \n" +"positive values diffuse and blur, \n" +"zero does nothing." +msgstr "" +"difuzijska hitrost nizkofrekvenčnih valovnih plasti\n" +"v smeri anizotropije 2. reda (nastavljeno spodaj).\n" +"\n" +"negativne vrednosti ostrijo,\n" +"pozitivne vrednosti razpršijo in zameglijo,\n" +"zero ne naredi ničesar." + +#: ../src/iop/diffuse.c:1856 +msgid "" +"diffusion speed of high-frequency wavelet layers\n" +"in the direction of 3rd order anisotropy (set below).\n" +"\n" +"negative values sharpen, \n" +"positive values diffuse and blur, \n" +"zero does nothing." +msgstr "" +"difuzijska hitrost nizkofrekvenčnih valovnih plasti\n" +"v smeri anizotropije 3. reda (nastavljeno spodaj).\n" +"\n" +"negativne vrednosti ostrijo,\n" +"pozitivne vrednosti razpršijo in zameglijo,\n" +"zero ne naredi ničesar." + +#: ../src/iop/diffuse.c:1866 +msgid "" +"diffusion speed of high-frequency wavelet layers\n" +"in the direction of 4th order anisotropy (set below).\n" +"\n" +"negative values sharpen, \n" +"positive values diffuse and blur, \n" +"zero does nothing." +msgstr "" +"difuzijska hitrost nizkofrekvenčnih valovnih plasti\n" +"v smeri anizotropije 4. reda (nastavljeno spodaj).\n" +"\n" +"negativne vrednosti ostrijo,\n" +"pozitivne vrednosti razpršijo in zameglijo,\n" +"zero ne naredi ničesar." + +#: ../src/iop/diffuse.c:1872 +msgctxt "section" +msgid "direction" +msgstr "smer" + +#: ../src/iop/diffuse.c:1879 +msgid "" +"direction of 1st order speed (set above).\n" +"\n" +"negative values follow gradients more closely, \n" +"positive values rather avoid edges (isophotes), \n" +"zero affects both equally (isotropic)." +msgstr "" +"smer hitrosti 1. reda (nastavljena zgoraj).\n" +"\n" +"negativne vrednosti natančneje sledijo gradientom,\n" +"pozitivne vrednosti raje se izogibajo robom (izofote),\n" +"nič vpliva na oba enako (izotropno)." + +#: ../src/iop/diffuse.c:1888 +msgid "" +"direction of 2nd order speed (set above).\n" +"\n" +"negative values follow gradients more closely, \n" +"positive values rather avoid edges (isophotes), \n" +"zero affects both equally (isotropic)." +msgstr "" +"smer hitrosti 2. reda (nastavljena zgoraj).\n" +"\n" +"negativne vrednosti natančneje sledijo gradientom,\n" +"pozitivne vrednosti raje se izogibajo robom (izofote),\n" +"nič vpliva na oba enako (izotropno)." + +#: ../src/iop/diffuse.c:1897 +msgid "" +"direction of 3rd order speed (set above).\n" +"\n" +"negative values follow gradients more closely, \n" +"positive values rather avoid edges (isophotes), \n" +"zero affects both equally (isotropic)." +msgstr "" +"smer hitrosti 3. reda (nastavljena zgoraj).\n" +"\n" +"negativne vrednosti natančneje sledijo gradientom,\n" +"pozitivne vrednosti raje se izogibajo robom (izofote),\n" +"nič vpliva na oba enako (izotropno)." + +#: ../src/iop/diffuse.c:1906 +msgid "" +"direction of 4th order speed (set above).\n" +"\n" +"negative values follow gradients more closely, \n" +"positive values rather avoid edges (isophotes), \n" +"zero affects both equally (isotropic)." +msgstr "" +"smer hitrosti 4. reda (nastavljena zgoraj).\n" +"\n" +"negativne vrednosti natančneje sledijo gradientom,\n" +"pozitivne vrednosti raje se izogibajo robom (izofote),\n" +"nič vpliva na oba enako (izotropno)." + +#: ../src/iop/diffuse.c:1912 +msgctxt "section" +msgid "edge management" +msgstr "upravljanje robov" + +#: ../src/iop/diffuse.c:1919 +msgid "" +"increase or decrease the sharpness of the highest frequencies.\n" +"can be used to keep details after blooming,\n" +"for standalone sharpening set speed to negative values." +msgstr "" +"povečaj ali zmanjšaj ostrino najvišjih frekvenc.\n" +"se lahko uporablja za vodenje podrobnosti po cvetenju,\n" +"za samostojno ostrenje nastavi hitrost na negativne vrednosti." + +#: ../src/iop/diffuse.c:1926 +msgid "" +"define the sensitivity of the variance penalty for edges.\n" +"increase to exclude more edges from diffusion,\n" +"if fringes or halos appear." +msgstr "" +"definira občutljivost kazni variance za robove.\n" +"povečajte, da izključite več robov iz difuzije,\n" +"če se pojavijo resice ali haloji." + +#: ../src/iop/diffuse.c:1933 +msgid "" +"define the variance threshold between edge amplification and penalty.\n" +"decrease if you want pixels on smooth surfaces get a boost,\n" +"increase if you see noise appear on smooth surfaces or\n" +"if dark areas seem oversharpened compared to bright areas." +msgstr "" +"določi prag variance med ojačanjem roba in kaznimi.\n" +"zmanjšajte, če želite, da se slikovne pike na gladkih površinah povečajo,\n" +"povečajte, če opazite šum na gladkih površinah ali\n" +"če se zdijo temna področja preostrena v primerjavi s svetlimi področji." + +#: ../src/iop/diffuse.c:1939 +msgctxt "section" +msgid "diffusion spatiality" +msgstr "prostorskost difuzije" + +#: ../src/iop/diffuse.c:1946 +msgid "" +"luminance threshold for the mask.\n" +"0. disables the luminance masking and applies the module on the whole " +"image.\n" +"any higher value excludes pixels with luminance lower than the threshold.\n" +"this can be used to inpaint highlights." +msgstr "" +"prag svetlosti maske.\n" +"0 onemogoči maskiranje svetlosti in uveljavlja modul na celotni sliki.\n" +"katerakoli višja vrednost od 0 izloči piksle s svetlostjo nižjo od praga.\n" +"to lahko uporabimo za barvanje bleščav." + +#: ../src/iop/dither.c:107 +msgid "dither or posterize" +msgstr "stresaj ali posteriziraj" + +#: ../src/iop/dither.c:112 +#| msgid "dithering|posterization|reduce bit-depth" +msgid "dithering|posterization|reduce bit depth" +msgstr "stresanje | posteriziranje | reduciraj bitno globino" + +#: ../src/iop/dither.c:117 +msgid "" +"reduce banding and posterization effects in output\n" +"JPEGs by adding random noise, or reduce bit depth" +msgstr "" +"zmanjšaj učinke pasov in učinkov posterizacije v izhodnih\n" +"JPEG-jih z dodajanjem naključnega šuma ali redukcijo bitne globine" + +#: ../src/iop/dither.c:119 +msgid "corrective, artistic" +msgstr "korekcijski, umetniški" + +#. add the preset. +#: ../src/iop/dither.c:149 +msgid "dither" +msgstr "stresaj" + +#: ../src/iop/dither.c:761 +msgid "radius for blurring step" +msgstr "polmer koraka zamegljevanja" + +#: ../src/iop/dither.c:773 +msgid "the gradient range where to apply random dither" +msgstr "obseg gradienta, kjer naj uporabim stresanje" + +#: ../src/iop/dither.c:774 +msgid "gradient range" +msgstr "obseg gradienta" + +#: ../src/iop/dither.c:782 +msgid "damping level of random dither" +msgstr "raven slučajnega stresanja" + +#: ../src/iop/equalizer.c:89 +msgid "legacy equalizer" +msgstr "izenačevalnik iz zapuščine" + +#: ../src/iop/equalizer.c:112 +msgid "" +"this module is deprecated. better use contrast equalizer module instead." +msgstr "" +"ta modul je zastarel. namesto njega raje uporabite modul izenačevalnika " +"kontrasta." + +#: ../src/iop/equalizer.c:240 +msgid "" +"this module will be removed in the future\n" +"and is only here so you can switch it off\n" +"and move to the new equalizer." +msgstr "" +"ta modul bo v bodoče odstranjen\n" +"in je tu samo zato, da ga lahko izklopite\n" +"in uporabite drugi izenačevalnik." + +#: ../src/iop/exposure.c:129 +msgid "" +"redo the exposure of the shot as if you were still in-camera\n" +"using a color-safe brightening similar to increasing ISO setting" +msgstr "" +"ponovite osvetlitev posnetka, kot da ste še vedno v kameri\n" +"z uporabo barvno varne osvetlitve, podobno kot pri naraščajoči nastavitvi ISO" + +#: ../src/iop/exposure.c:301 +msgid "magic lantern defaults" +msgstr "privzete vrednosti magične lanterne" + +#: ../src/iop/exposure.c:373 ../src/iop/rawoverexposed.c:137 +#: ../src/iop/rawoverexposed.c:256 +#, c-format +msgid "failed to get raw buffer from image `%s'" +msgstr "izpadlo pridobivanje predpomnilnika s slike %s'" + +#: ../src/iop/exposure.c:647 +#, no-c-format +msgid "compensate camera exposure (%+.1f EV)" +msgstr "izravnava osvetlitve fotoaparata (%+.1f EV)" + +#. Write report in GUI +#: ../src/iop/exposure.c:831 +#, c-format +msgid "L : \t%.1f %%" +msgstr "L : \t%.1f %%" + +#: ../src/iop/exposure.c:963 ../src/libs/history.c:953 +#, c-format +msgid "%.2f EV" +msgstr "%.2f EV" + +#: ../src/iop/exposure.c:1131 +msgid "" +"automatically remove the camera exposure bias\n" +"this is useful if you exposed the image to the right." +msgstr "" +"samodejno odstrani pristranskost osvetlitve fotoaparata\n" +"to je koristno, če ste sliko preosvetlili." + +#: ../src/iop/exposure.c:1150 +#, no-c-format +msgid "where in the histogram to meter for deflicking. E.g. 50% is median" +msgstr "" +"kje naj na histogramu merimo za odstranjevanje utripanja. npr. 50% je mediana" + +#: ../src/iop/exposure.c:1156 +msgid "" +"where to place the exposure level for processed pics, EV below overexposure." +msgstr "" +"kam postaviti raven osvetlitve za obdelane slike, EV pod nadosvetlitvijo." + +#: ../src/iop/exposure.c:1160 +msgid "computed EC: " +msgstr "izračunana EC: " + +#: ../src/iop/exposure.c:1163 +msgid "what exposure correction has actually been used" +msgstr "kateri popravek osvetlitve je bil dejansko uporabljen" + +#: ../src/iop/exposure.c:1182 +msgid "" +"adjust the black level to unclip negative RGB values.\n" +"you should never use it to add more density in blacks!\n" +"if poorly set, it will clip near-black colors out of gamut\n" +"by pushing RGB values into negatives." +msgstr "" +"prilagodi nivo črnine za popravek izreza negativnih vrednosti RGB.\n" +"nikoli ne smete uporabiti za dodajanje večje gostote črnin! če je\n" +"nivo določen slabo, bo izrezal skoraj črne odtenke izven barvnega\n" +"razpona, tako da bo porinil vrednosti RGB med negativne." + +#: ../src/iop/exposure.c:1192 +#| msgid "spot exposure mapping" +msgid "area exposure mapping" +msgstr "preslikava osvetlitve površine" + +#: ../src/iop/exposure.c:1198 +msgid "" +"define a target brightness, in terms of exposure,\n" +"for a selected region of the image (the control sample),\n" +"which you then match against the same target brightness\n" +"in other images. the control sample can either\n" +"be a critical part of your subject or a non-moving and\n" +"consistently-lit surface over your series of images." +msgstr "" +"določi ciljno svetlost glede na osvetlitev\n" +"za izbrano območje slike (kontrolni vzorec),\n" +"ki se nato ujema z istim ciljem svetlosti na\n" +"drugih slikah. kontrolni vzorec je lahko\n" +"bodisi kritični del vašega predmeta ali nepremična\n" +"in dosledno osvetljena površina vaše serije slik." + +#: ../src/iop/exposure.c:1207 +msgid "" +"\"correction\" automatically adjust exposure\n" +"such that the input lightness is mapped to the target.\n" +"\"measure\" simply shows how an input color is mapped by\n" +"the exposure compensation and can be used to define a target." +msgstr "" +"\"popravek\" samodejno prilagodi osvetljenost\n" +"tako, da je vhodna svetlost preslikana na cilj.\n" +"\"merilo\" preprosto prikazuje, kako je vhodna barva preslikana\n" +"z nadomestno prilagoditvijo in jo je mogoče uporabiti za določitev cilja." + +#: ../src/iop/exposure.c:1233 +msgid "L : \tN/A" +msgstr "L : \tN/A" + +#: ../src/iop/exposure.c:1251 +msgid "the desired target exposure after mapping" +msgstr "želena ciljna osvetljenost po preslikavi" + +#: ../src/iop/filmic.c:177 +msgid "this module is deprecated. better use filmic rgb module instead." +msgstr "ta modul je zastarel. raje uporabite filmski modul rgb." + +#: ../src/iop/filmic.c:333 +msgid "09 EV (low-key)" +msgstr "09 EV (temna)" + +#: ../src/iop/filmic.c:341 +msgid "10 EV (indoors)" +msgstr "10 EV (interier)" + +#: ../src/iop/filmic.c:349 +msgid "11 EV (dim outdoors)" +msgstr "11 EV (zamegljena zunanjost)" + +#: ../src/iop/filmic.c:357 +msgid "12 EV (outdoors)" +msgstr "12 EV (zunanjost)" + +#: ../src/iop/filmic.c:365 +msgid "13 EV (bright outdoors)" +msgstr "13 EV (svetla zunanjost)" + +#: ../src/iop/filmic.c:373 +msgid "14 EV (backlighting)" +msgstr "14 EV (osvetljenost od zadaj)" + +#: ../src/iop/filmic.c:381 +msgid "15 EV (sunset)" +msgstr "15 EV (sončni zahod)" + +#: ../src/iop/filmic.c:389 +msgid "16 EV (HDR)" +msgstr "16 EV (HDR)" + +#: ../src/iop/filmic.c:397 +msgid "18 EV (HDR++)" +msgstr "18 EV (HDR++)" + +#: ../src/iop/filmic.c:1505 +msgid "read-only graph, use the parameters below to set the nodes" +msgstr "" +"graf samo za branje, uporabi parametre spodaj za določanje vozlov grafa" + +#: ../src/iop/filmic.c:1509 +msgctxt "section" +msgid "logarithmic shaper" +msgstr "logaritemski oblikovalnik" + +#: ../src/iop/filmic.c:1517 +msgid "" +"adjust to match the average luminance of the subject.\n" +"except in back-lighting situations, this should be around 18%." +msgstr "" +"prilagodi, da ustreza povprečni svetlosti subjekta.\n" +"razen pri osvetlitvi od zadaj, bi moralo biti okrog 18%." + +#: ../src/iop/filmic.c:1529 ../src/iop/filmicrgb.c:4506 +msgid "" +"number of stops between middle gray and pure white.\n" +"this is a reading a lightmeter would give you on the scene.\n" +"adjust so highlights clipping is avoided" +msgstr "" +"število stopenj med srednje sivo in čisto belo.\n" +"to vrednost bi dal tudi svetlomer na sceni.\n" +"prilagodi tako, da se izognete obrezovanju bleščav" + +#: ../src/iop/filmic.c:1542 ../src/iop/filmicrgb.c:4517 +msgid "" +"number of stops between middle gray and pure black.\n" +"this is a reading a lightmeter would give you on the scene.\n" +"increase to get more contrast.\n" +"decrease to recover more details in low-lights." +msgstr "" +"število stopenj med srednje sivo in čisto črno.\n" +"to vrednost bi dal tudi svetlomer na sceni.\n" +"povečajte, če želite več kontrasta.\n" +"zmanjšajte za omogočanje več podrobnosti v slabo osvetljenih delih." + +#: ../src/iop/filmic.c:1554 +#| msgid "" +#| "enlarge or shrink the computed dynamic range.\n" +#| "useful in conjunction with \"auto tune levels\"." +msgid "" +"increase or decrease the computed dynamic range.\n" +"useful in conjunction with \"auto tune levels\"." +msgstr "" +"povečaj ali zmanjšaj izračunan dinamični razpon.\n" +"uporabno v povezavi z \"avtomatskim prilagajanjem nivojev\"." + +#: ../src/iop/filmic.c:1560 ../src/iop/filmicrgb.c:4531 +#: ../src/iop/profile_gamma.c:673 +msgid "auto tune levels" +msgstr "nivoji avtomatske nastavitve" + +#: ../src/iop/filmic.c:1563 +msgid "" +"try to optimize the settings with some guessing.\n" +"this will fit the luminance range inside the histogram bounds.\n" +"works better for landscapes and evenly-lit pictures\n" +"but fails for high-keys and low-keys." +msgstr "" +"poskusi optimizirati nastavitve z malo ugibanja.\n" +"to bo prilagodilo interval svetlosti znotraj omejitev histograma.\n" +"deluje bolje za pokrajine in enakomerno osvetljene slike,\n" +"a ne deluje pri pretežno svetlih ali pretežno temnih motivih." + +#: ../src/iop/filmic.c:1568 +msgctxt "section" +msgid "filmic S curve" +msgstr "filmska S krivulja" + +#: ../src/iop/filmic.c:1575 ../src/iop/filmicrgb.c:4618 +msgid "" +"slope of the linear part of the curve\n" +"affects mostly the mid-tones" +msgstr "" +"naklon linearnega dela krivulje\n" +"ima vpliv predvsem na srednje tone" + +#. geotagging +#: ../src/iop/filmic.c:1582 ../src/iop/filmicrgb.c:4627 +#: ../src/libs/metadata_view.c:161 +msgid "latitude" +msgstr "zemljepisna širina" + +#: ../src/iop/filmic.c:1585 +msgid "" +"width of the linear domain in the middle of the curve.\n" +"increase to get more contrast at the extreme luminances.\n" +"this has no effect on mid-tones." +msgstr "" +"širina linearnega območja v sredini krivulje.\n" +"povečajte, če želite več kontrasta pri skrajnih svetlostih.\n" +"to nima vpliva na srednje tone." + +#: ../src/iop/filmic.c:1592 +msgid "shadows/highlights balance" +msgstr "uravnoteženost med senčnimi in svetlimi toni" + +#: ../src/iop/filmic.c:1595 ../src/iop/filmicrgb.c:4638 +msgid "" +"slides the latitude along the slope\n" +"to give more room to shadows or highlights.\n" +"use it if you need to protect the details\n" +"at one extremity of the histogram." +msgstr "" +"drsi širino po naklonu\n" +"daje več prostora za sence ali bleščave.\n" +"uporabite, če želite zagotoviti več podrobnosti\n" +"na enem od skrajnih delov histograma." + +#: ../src/iop/filmic.c:1605 +msgid "" +"desaturates the input of the module globally.\n" +"you need to set this value below 100%\n" +"if the chrominance preservation is enabled." +msgstr "" +"globalno zmanjša nasičenost na vhodu modula.\n" +"to vrednost morate postaviti pod 100%,\n" +"če želite ohraniti barvnost." + +#: ../src/iop/filmic.c:1615 +msgid "" +"desaturates the output of the module\n" +"specifically at extreme luminances.\n" +"decrease if shadows and/or highlights are over-saturated." +msgstr "" +"zmanjša nasičenost izhoda modula\n" +"posebej za skrajne svetlosti.\n" +"zmanjšajte, če so sence in/ali bleščave preveč nasičene." + +#. Add export intent combo +#: ../src/iop/filmic.c:1625 ../src/libs/export.c:1339 +#: ../src/libs/print_settings.c:2473 ../src/libs/print_settings.c:2820 +#: ../src/views/darkroom.c:2365 ../src/views/lighttable.c:1182 +msgid "intent" +msgstr "namen" + +#: ../src/iop/filmic.c:1626 +msgid "contrasted" +msgstr "kontrastno" + +#. cubic spline +#: ../src/iop/filmic.c:1627 +msgid "faded" +msgstr "obledelo" + +#. centripetal spline +#: ../src/iop/filmic.c:1628 ../src/iop/profile_gamma.c:635 +msgid "linear" +msgstr "linearno" + +#. monotonic spline +#: ../src/iop/filmic.c:1629 +msgid "optimized" +msgstr "optimirano" + +#: ../src/iop/filmic.c:1631 +msgid "change this method if you see reversed contrast or faded blacks" +msgstr "zamenjajte to metodo, če vidite obratne kontraste ali obledele črnine" + +#. Preserve color +#: ../src/iop/filmic.c:1635 +msgid "preserve the chrominance" +msgstr "ohrani barvnost" + +#: ../src/iop/filmic.c:1637 +msgid "" +"ensure the original color are preserved.\n" +"may reinforce chromatic aberrations.\n" +"you need to manually tune the saturation when using this mode." +msgstr "" +"zagotovi ohranjanje izvirnih barv.\n" +"lahko okrepi barvne aberacije objektiva.\n" +"kadar uporabite ta način, morate uporabiti ročno nastavitev nasičenosti." + +#: ../src/iop/filmic.c:1647 +msgctxt "section" +msgid "destination/display" +msgstr "cilj/prikaz" + +#: ../src/iop/filmic.c:1665 ../src/iop/filmicrgb.c:4657 +msgid "" +"luminance of output pure black, this should be 0%\n" +"except if you want a faded look" +msgstr "" +"svetlost izhoda čiste črne, bi morala biti 0%\n" +"razen če želite obledel videz" + +#: ../src/iop/filmic.c:1674 ../src/iop/filmicrgb.c:4664 +msgid "" +"middle gray value of the target display or color space.\n" +"you should never touch that unless you know what you are doing." +msgstr "" +"vrednost srednjih sivin ciljnega prikaza ali barvnega prostora.\n" +"ne dotikajte se tega, razen če res veste, kaj delate." + +#: ../src/iop/filmic.c:1683 ../src/iop/filmicrgb.c:4671 +msgid "" +"luminance of output pure white, this should be 100%\n" +"except if you want a faded look" +msgstr "" +"svetlost čiste bele, bi morala biti 100%,\n" +"razen če želite obledel videz" + +#: ../src/iop/filmic.c:1689 +msgid "target gamma" +msgstr "ciljna gama" + +#: ../src/iop/filmic.c:1691 +msgid "" +"power or gamma of the transfer function\n" +"of the display or color space.\n" +"you should never touch that unless you know what you are doing." +msgstr "" +"moč ali gama prenosne funkcije\n" +"zaslona ali barvnega prostora.\n" +"ne dotikajte se tega, razen če res veste kaj delate." + +#: ../src/iop/filmicrgb.c:339 +msgid "filmic rgb" +msgstr "filmski rgb" + +#: ../src/iop/filmicrgb.c:344 +msgid "tone mapping|curve|view transform|contrast|saturation|highlights" +msgstr "" +"preslikava tonov|krivulja|pogled preoblikovanja|kontrast|nasičenost|bleščave" + +#: ../src/iop/filmicrgb.c:349 +msgid "" +"apply a view transform to prepare the scene-referred pipeline\n" +"for display on SDR screens and paper prints\n" +"while preventing clipping in non-destructive ways" +msgstr "" +"uporabite pretvorbo pogleda za pripravo cevovoda, ki se nanaša na sceno\n" +"za prikaz na zaslonih SDR in tisku na papirju\n" +"hkrati pa preprečuje obrezovanje na nedestruktivne načine" + +#: ../src/iop/filmicrgb.c:1365 +msgid "" +"filmic highlights reconstruction failed to allocate memory, check your RAM " +"settings" +msgstr "" +"za filmsko rekonstrukcijo bleščav ni bilo dovolj pomnilnika, preverite " +"nastavitve za RAM" + +#: ../src/iop/filmicrgb.c:2369 +msgid "filmic highlights reconstruction failed to allocate memory on GPU" +msgstr "za filmsko rekonstrukcijo bleščav ni bilo dovolj pomnilnika za GPE" + +#: ../src/iop/filmicrgb.c:2487 +msgid "filmic works only on RGB input" +msgstr "filmsko deluje samo v RGB vhodu" + +#: ../src/iop/filmicrgb.c:3548 +msgid "look only" +msgstr "samo videz" + +#: ../src/iop/filmicrgb.c:3550 +msgid "look + mapping (lin)" +msgstr "videz + preslikava (lin)" + +#: ../src/iop/filmicrgb.c:3552 +msgid "look + mapping (log)" +msgstr "videz + preslikava (log)" + +#: ../src/iop/filmicrgb.c:3554 +msgid "dynamic range mapping" +msgstr "preslikava dinamičnega razpona" + +#: ../src/iop/filmicrgb.c:3921 +#, c-format +msgid "(%.0f %%)" +msgstr "(%.0f %%)" + +#: ../src/iop/filmicrgb.c:3937 +#, no-c-format +msgid "% display" +msgstr "% prikaz" + +#: ../src/iop/filmicrgb.c:3949 +msgid "EV scene" +msgstr "Ev scena" + +#: ../src/iop/filmicrgb.c:3953 +#, no-c-format +msgid "% camera" +msgstr "% kamera" + +#. Page DISPLAY +#: ../src/iop/filmicrgb.c:3989 ../src/iop/filmicrgb.c:4651 +msgid "display" +msgstr "prikaz" + +#. axis legend +#: ../src/iop/filmicrgb.c:3998 +msgid "(%)" +msgstr "(%)" + +#. Page SCENE +#: ../src/iop/filmicrgb.c:4007 ../src/iop/filmicrgb.c:4486 +msgid "scene" +msgstr "scena" + +#. axis legend +#: ../src/iop/filmicrgb.c:4016 +msgid "(EV)" +msgstr "(EV)" + +#. we are over the graph area +#: ../src/iop/filmicrgb.c:4428 +msgid "" +"use the parameters below to set the nodes.\n" +"the bright curve is the filmic tone mapping curve\n" +"the dark curve is the desaturation curve." +msgstr "" +"uporabite spodnje parametre za postavitev vozlov\n" +"svetla krivulja je filmska krivulja prenosa tonov\n" +"temna krivulja je krivulja zmanjšanja nasičenosti." + +#: ../src/iop/filmicrgb.c:4434 +msgid "toggle axis labels and values display" +msgstr "preklopi prikaz oznak osi in vrednosti" + +#: ../src/iop/filmicrgb.c:4438 +msgid "" +"cycle through graph views.\n" +"left click: cycle forward.\n" +"right click: cycle backward.\n" +"double-click: reset to look view." +msgstr "" +"kroži po pogledih grafikonov.\n" +"levi klik: kroži naprej.\n" +"desni klik: kroži nazaj.\n" +"dvoklik: ponastavi pogled." + +#: ../src/iop/filmicrgb.c:4495 +#, no-c-format +msgid "" +"adjust to match the average luminance of the image's subject.\n" +"the value entered here will then be remapped to 18.45%.\n" +"decrease the value to increase the overall brightness." +msgstr "" +"prilagodite tako, da ustreza povprečni svetlosti predmeta slike.\n" +"tu vnesena vrednost bo prestavljena na 18,45%.\n" +"za povečanje celotne sijavosti, zmanjšajte to vrednost." + +#: ../src/iop/filmicrgb.c:4525 +#| msgid "" +#| "symmetrically enlarge or shrink the computed dynamic range.\n" +#| "useful to give a safety margin to extreme luminances." +msgid "" +"symmetrically increase or decrease the computed dynamic range.\n" +"useful to give a safety margin to extreme luminances." +msgstr "" +"simetrično povečaj ali skrči izračunani dinamični razpon.\n" +"koristno je ohraniti varnostno mejo do ekstremnih svetlosti." + +#: ../src/iop/filmicrgb.c:4532 +msgid "" +"try to optimize the settings with some statistical assumptions.\n" +"this will fit the luminance range inside the histogram bounds.\n" +"works better for landscapes and evenly-lit pictures\n" +"but fails for high-keys, low-keys and high-ISO pictures.\n" +"this is not an artificial intelligence, but a simple guess.\n" +"ensure you understand its assumptions before using it." +msgstr "" +"poskusite optimizirati nastavitve z nekaterimi statističnimi " +"predpostavkami.\n" +"to bo prilagodilo območju svetlosti znotraj meja histograma.\n" +"deluje bolje za pokrajine in enakomerno osvetljene slike,\n" +"vendar ne uspe za slike, ki so bodisi zelo svetle, zelo temne in z visoko " +"občutljivostjo ISO.\n" +"to ni umetna inteligenca, ampak preprosto ugibanje.\n" +"poskrbite, da razumete principe delovanja, preden jih uporabite." + +#. Page RECONSTRUCT +#: ../src/iop/filmicrgb.c:4541 +msgid "reconstruct" +msgstr "obnovi" + +#: ../src/iop/filmicrgb.c:4543 +msgctxt "section" +msgid "highlights clipping" +msgstr "obrezovanje bleščav" + +#: ../src/iop/filmicrgb.c:4551 +msgid "" +"set the exposure threshold upon which\n" +"clipped highlights get reconstructed.\n" +"values are relative to the scene white point.\n" +"0 EV means the threshold is the same as the scene white point.\n" +"decrease to include more areas,\n" +"increase to exclude more areas." +msgstr "" +"nastavi prag osvetlitve, na katerem\n" +"se obnovijo obrezani poudarki.\n" +"vrednosti so relativne glede na belo točko scene.\n" +"0 EV pomeni, da je prag enak beli točki scene.\n" +"zmanjšanje vključi več področij,\n" +"povečanje pa izključi več območij." + +#: ../src/iop/filmicrgb.c:4561 +msgid "" +"soften the transition between clipped highlights and valid pixels.\n" +"decrease to make the transition harder and sharper,\n" +"increase to make the transition softer and blurrier." +msgstr "" +"ublaži prehod med izrezanimi bleščavami in veljavnimi piksli.\n" +"zmanjša, da postane prehod trši in ostrejši,\n" +"poveča, da postane prehod mehkejši in bolj zamegljen." + +#: ../src/iop/filmicrgb.c:4567 ../src/iop/filmicrgb.c:4568 +msgid "display highlight reconstruction mask" +msgstr "prikaži masko za obnovo bleščav" + +#: ../src/iop/filmicrgb.c:4575 +msgctxt "section" +msgid "balance" +msgstr "ravnotežje" + +#: ../src/iop/filmicrgb.c:4582 +#, no-c-format +#| msgid "" +#| "decide which reconstruction strategy to favor,\n" +#| "between inpainting a smooth color gradient,\n" +#| "or trying to recover the textured details.\n" +#| "0% is an equal mix of both.\n" +#| "increase if at least one RGB channel is not clipped.\n" +#| "decrease if all RGB channels are clipped over large areas." +msgid "" +"decide which reconstruction strategy to favor,\n" +"inpainting a smooth color gradient\n" +"or trying to recover the textured details.\n" +"0% is an equal mix of both.\n" +"increase if at least one RGB channel is not clipped.\n" +"decrease if all RGB channels are clipped over large areas." +msgstr "" +"odloči, kateri strategiji obnove naj se da prednost,\n" +"ali dobarvanju gladkega barvnega gradienta,\n" +"ali poskusu obnove teksturirane podrobnosti.\n" +"0% je enaka kombinacija obeh.\n" +"povečajte, če vsaj en kanal RGB ni izrezan.\n" +"zmanjšajte, če so vsi RGB kanali izrezani na velikih območjih." + +#: ../src/iop/filmicrgb.c:4593 +#, no-c-format +#| msgid "" +#| "decide which reconstruction strategy to favor,\n" +#| "between blooming highlights like film does,\n" +#| "or trying to recover sharp details.\n" +#| "0% is an equal mix of both.\n" +#| "increase if you want more details.\n" +#| "decrease if you want more blur." +msgid "" +"decide which reconstruction strategy to favor,\n" +"blooming highlights like film does\n" +"or trying to recover sharp details.\n" +"0% is an equal mix of both.\n" +"increase if you want more details.\n" +"decrease if you want more blur." +msgstr "" +"odloči, kateri strategiji obnove naj se da prednost,\n" +"med cvetočimi bleščavami, kot naredi film,\n" +"ali poskuša obnoviti ostre podrobnosti.\n" +"0% je enaka kombinacija obeh.\n" +"povečajte, če želite več podrobnosti.\n" +"zmanjšajte, če želite več zamegljenosti." + +#: ../src/iop/filmicrgb.c:4605 +#, no-c-format +#| msgid "" +#| "decide which reconstruction strategy to favor,\n" +#| "between recovering monochromatic highlights,\n" +#| "or trying to recover colorful highlights.\n" +#| "0% is an equal mix of both.\n" +#| "increase if you want more color.\n" +#| "decrease if you see magenta or out-of-gamut highlights." +msgid "" +"decide which reconstruction strategy to favor,\n" +"recovering monochromatic highlights\n" +"or trying to recover colorful highlights.\n" +"0% is an equal mix of both.\n" +"increase if you want more color.\n" +"decrease if you see magenta or out-of-gamut highlights." +msgstr "" +"odloči, kateri strategiji obnove naj se da prednost,\n" +"med obnavljanjem enobarvnih bleščav,\n" +"ali poskušate obnoviti barvite bleščave.\n" +"0% je enaka kombinacija obeh.\n" +"povečajte, če želite več barve.\n" +"zmanjšajte, če opazite magento ali bleščave izven barvnega razpona." + +#. Page LOOK +#: ../src/iop/filmicrgb.c:4613 +msgid "look" +msgstr "videz" + +#: ../src/iop/filmicrgb.c:4623 +msgid "" +"equivalent to paper grade in analog.\n" +"increase to make highlights brighter and less compressed.\n" +"decrease to mute highlights." +msgstr "" +"enakovredno gradaciji papirja v analognem.\n" +"povečaj, da bodo bleščave svetlejše in manj stisnjene.\n" +"zmanjšaj na utišanje bleščav." + +#: ../src/iop/filmicrgb.c:4631 +msgid "" +"width of the linear domain in the middle of the curve,\n" +"increase to get more contrast and less desaturation at extreme luminances,\n" +"decrease otherwise. no desaturation happens in the latitude range.\n" +"this has no effect on mid-tones." +msgstr "" +"širina linearnega območja na sredini krivulje\n" +"povečajte širino, da dobite več kontrasta in manj zmanjšanja zasičenosti pri " +"ekstremnih\n" +"svetlostih ter obratno, če jo zmanjšate. v srednjem območju se ne zmanjša " +"nasičenje.\n" +"to nima vpliva na srednje tone." + +#: ../src/iop/filmicrgb.c:4646 ../src/iop/filmicrgb.c:4794 +msgid "" +"desaturates the output of the module\n" +"specifically at extreme luminances.\n" +"increase if shadows and/or highlights are under-saturated." +msgstr "" +"zmanjša nasičenost izhoda modula\n" +"posebej pri ekstremnih svetlostih.\n" +"povečajte vrednost, če so sence in/ali bleščave premalo nasičeni." + +#. Page OPTIONS +#: ../src/iop/filmicrgb.c:4675 +msgid "options" +msgstr "možnosti" + +#: ../src/iop/filmicrgb.c:4680 +msgid "" +"v3 is darktable 3.0 desaturation method, same as color balance.\n" +"v4 is a newer desaturation method, based on spectral purity of light." +msgstr "" +"v3 je metoda darktable 3,0 zmanjšanja nasičenosti, enaka kot barvno " +"ravnovesje.\n" +"v4 je novejša metoda desaturacije, ki temelji na spektralni čistosti " +"svetlobe." + +#: ../src/iop/filmicrgb.c:4684 +msgid "" +"ensure the original colors are preserved.\n" +"may reinforce chromatic aberrations and chroma noise,\n" +"so ensure they are properly corrected elsewhere." +msgstr "" +"zagotovi ohranjanje izvirnih barv.\n" +"lahko okrepi barvne aberacije objektiva in barvni šum,\n" +"zato zagotovite, da so popravljene drugod." + +#: ../src/iop/filmicrgb.c:4693 +msgid "" +"choose the desired curvature of the filmic spline in highlights.\n" +"hard uses a high curvature resulting in more tonal compression.\n" +"soft uses a low curvature resulting in less tonal compression." +msgstr "" +"izberi želeno ukrivljenost filmskega zlepka v bleščavah.\n" +"trda uporablja veliko ukrivljenost, kar povzroči večjo stiskanje tonov.\n" +"mehka uporablja nizko ukrivljenost, kar povzroči manjše stiskanje tonov." + +#: ../src/iop/filmicrgb.c:4698 +msgid "" +"choose the desired curvature of the filmic spline in shadows.\n" +"hard uses a high curvature resulting in more tonal compression.\n" +"soft uses a low curvature resulting in less tonal compression." +msgstr "" +"izberite želeno ukrivljenost filmskega zlepka v sencah.\n" +"trda uporablja veliko ukrivljenost, kar povzroči večje stiskanje tona.\n" +"mehka uporablja nizko ukrivljenost, kar povzroči manjše stiskanje tona." + +#: ../src/iop/filmicrgb.c:4705 +#, no-c-format +msgid "" +"enable to input custom middle-gray values.\n" +"this is not recommended in general.\n" +"fix the global exposure in the exposure module instead.\n" +"disable to use standard 18.45% middle gray." +msgstr "" +"omogoči vnos srednjih sivih vrednosti po meri.\n" +"to na splošno ni priporočljivo.\n" +"namesto tega popravite globalno osvetljenost v modulu osvetlitve.\n" +"onemogoči uporabo standardne 18,45 %% za srednje sivo." + +#: ../src/iop/filmicrgb.c:4712 +msgid "" +"enable to auto-set the look hardness depending on the scene white and black " +"points.\n" +"this keeps the middle gray on the identity line and improves fast tuning.\n" +"disable if you want a manual control." +msgstr "" +"omogoča samodejno nastavitev trdote videza glede na bele in črne točke " +"scene.\n" +"to ohranja srednjo sivo v identitetni črti in izboljša hitro uglaševanje " +"slike.\n" +"onemogočite, če želite ročni nadzor." + +#: ../src/iop/filmicrgb.c:4718 +msgid "" +"run extra passes of chromaticity reconstruction.\n" +"more iterations means more color propagation from neighborhood.\n" +"this will be slower but will yield more neutral highlights.\n" +"it also helps with difficult cases of magenta highlights." +msgstr "" +"izvedi dodatne prehode obnove kromatičnosti.\n" +"več iteracij pomeni več pronicanja barv iz soseščine.\n" +"to bo počasneje, vendar bo pridelalo več nevtralnih bleščav.\n" +"pomaga tudi pri težkih primerih bleščav v magenti." + +#: ../src/iop/filmicrgb.c:4725 +msgid "" +"add statistical noise in reconstructed highlights.\n" +"this avoids highlights to look too smooth\n" +"when the picture is noisy overall,\n" +"so they blend with the rest of the picture." +msgstr "" +"dodajte statistični šum v obnovljene bleščave.\n" +"s tem se izognemo, da bi bile videti bleščave preveč gladke,\n" +"če ima slika na splošno veliko šuma,\n" +"zato se zlijejo s preostalim delom slike." + +#: ../src/iop/filmicrgb.c:4732 +msgid "" +"choose the statistical distribution of noise.\n" +"this is useful to match natural sensor noise pattern." +msgstr "" +"izberi statistično porazdelitev šuma.\n" +"to je koristno za uskladitev z naravnim vzorcem šuma senzorjev." + +#: ../src/iop/filmicrgb.c:4800 +msgid "mid-tones saturation" +msgstr "nasičenost srednjih tonov" + +#: ../src/iop/filmicrgb.c:4801 +msgid "" +"desaturates the output of the module\n" +"specifically at medium luminances.\n" +"increase if midtones are under-saturated." +msgstr "" +"zmanjša nasičenost izhoda modula\n" +"posebej pri srednjih svetlostih.\n" +"povečajte vrednost, če so srednji toni premalo nasičeni." + +#: ../src/iop/filmicrgb.c:4807 +msgid "highlights saturation mix" +msgstr "mešanica nasičenosti bleščav" + +#: ../src/iop/filmicrgb.c:4808 +msgid "" +"positive values ensure saturation is kept unchanged over the whole range.\n" +"negative values bleach highlights at constant hue and luminance.\n" +"zero is an equal mix of both strategies." +msgstr "" +"pozitivne vrednosti zagotavljajo, da se nasičenost ne spreminja v celotnem " +"območju.\n" +"negativne vrednosti belijo bleščave pri stalnem odtenku in svetilnosti.\n" +"ničla je enaka mešanica obeh strategij." + +#: ../src/iop/finalscale.c:39 +msgctxt "modulename" +msgid "scale into final size" +msgstr "merilo do ciljne velikosti" + +#: ../src/iop/flip.c:80 +msgid "rotation|flip" +msgstr "zasuk|zrcaljenje" + +#: ../src/iop/flip.c:110 +msgid "flip or rotate image by step of 90 degrees" +msgstr "prezrcali ali zasukaj sliko v koraku 90 stopinj" + +#: ../src/iop/flip.c:475 +msgid "no rotation" +msgstr "brez zasuka" + +#: ../src/iop/flip.c:479 ../src/iop/flip.c:622 +msgid "flip horizontally" +msgstr "prezrcali vodoravno" + +#: ../src/iop/flip.c:483 ../src/iop/flip.c:626 +msgid "flip vertically" +msgstr "prezrcali navpično" + +#: ../src/iop/flip.c:487 +msgid "rotate by -90 degrees" +msgstr "zasukaj za -90 stopinj" + +#: ../src/iop/flip.c:491 +msgid "rotate by 90 degrees" +msgstr "zasukaj za +90 stopinj" + +#: ../src/iop/flip.c:495 +msgid "rotate by 180 degrees" +msgstr "zasukaj za +180 stopinj" + +#: ../src/iop/flip.c:610 +msgid "transform" +msgstr "preoblikuj" + +#: ../src/iop/flip.c:614 ../src/libs/live_view.c:293 +msgid "rotate 90 degrees CCW" +msgstr "zasukaj 90 stopinj v obratni smeri urinega kazalca" + +#: ../src/iop/flip.c:618 ../src/libs/live_view.c:294 +msgid "rotate 90 degrees CW" +msgstr "zasukaj 90 stopinj v smeri urinega kazalca" + +#: ../src/iop/gamma.c:44 +msgctxt "modulename" +msgid "display encoding" +msgstr "prikaži kodiranje" + +#: ../src/iop/globaltonemap.c:100 +msgid "global tonemap" +msgstr "globalna tabela tonov" + +#: ../src/iop/globaltonemap.c:105 +msgid "this module is deprecated. please use the filmic rgb module instead." +msgstr "ta modul je zastarel. namesto tega raje uporabite filmski modul rgb." + +#: ../src/iop/globaltonemap.c:658 ../src/libs/filters/colors.c:259 +msgid "operator" +msgstr "operater" + +#: ../src/iop/globaltonemap.c:659 +msgid "the global tonemap operator" +msgstr "globalni operater tabele tonov" + +#: ../src/iop/globaltonemap.c:662 +msgid "" +"the bias for tonemapper controls the linearity, the higher the more details " +"in blacks" +msgstr "" +"pristranskost kontrole odtenkov, večja je - več je podrobnosti v črninah" + +#: ../src/iop/globaltonemap.c:666 +msgid "the target light for tonemapper specified as cd/m2" +msgstr "ciljna osvetljenost za prikaz tonov v cd/m2" + +#: ../src/iop/graduatednd.c:67 +msgid "neutral gray ND2 (soft)" +msgstr "nevtralno siv ND2 (mehek)" + +#: ../src/iop/graduatednd.c:70 +msgid "neutral gray ND4 (soft)" +msgstr "nevtralno siv ND4 (mehek)" + +#: ../src/iop/graduatednd.c:73 +msgid "neutral gray ND8 (soft)" +msgstr "nevtralno siv ND8 (mehek)" + +#: ../src/iop/graduatednd.c:76 +msgid "neutral gray ND2 (hard)" +msgstr "nevtralno siv ND2 (trd)" + +#: ../src/iop/graduatednd.c:80 +msgid "neutral gray ND4 (hard)" +msgstr "nevtralno siv ND4 (trd)" + +#: ../src/iop/graduatednd.c:83 +msgid "neutral gray ND8 (hard)" +msgstr "nevtralno siv ND8 (trd)" + +#: ../src/iop/graduatednd.c:87 +msgid "orange ND2 (soft)" +msgstr "oranžen ND2 (mehko)" + +#: ../src/iop/graduatednd.c:90 +msgid "yellow ND2 (soft)" +msgstr "rumeno ND2 (mehko)" + +#: ../src/iop/graduatednd.c:94 +msgid "purple ND2 (soft)" +msgstr "rumeno ND2 (mehko)" + +#: ../src/iop/graduatednd.c:98 +msgid "green ND2 (soft)" +msgstr "zeleno ND2 (mehko)" + +#: ../src/iop/graduatednd.c:102 +msgid "red ND2 (soft)" +msgstr "rdeče ND2 (mehko)" + +#: ../src/iop/graduatednd.c:105 +msgid "blue ND2 (soft)" +msgstr "modro ND2 (mehko)" + +#: ../src/iop/graduatednd.c:109 +msgid "brown ND4 (soft)" +msgstr "rjavo ND2 (mehko)" + +#: ../src/iop/graduatednd.c:140 +msgid "graduated density" +msgstr "prehodna gostota" + +#: ../src/iop/graduatednd.c:145 +msgid "simulate an optical graduated neutral density filter" +msgstr "simuliraj nevtralno gost optični stopenjski filter" + +#: ../src/iop/graduatednd.c:1083 +msgid "the density in EV for the filter" +msgstr "gostota tega filtra v EV" + +#: ../src/iop/graduatednd.c:1088 +#, no-c-format +msgid "" +"hardness of graduation:\n" +"0% = soft, 100% = hard" +msgstr "" +"stiskanje gradacije:\n" +"0% = mehko, 100% trdo" + +#: ../src/iop/graduatednd.c:1092 +msgid "rotation of filter -180 to 180 degrees" +msgstr "zasuk filtra od 180 do 180 stopinj" + +#: ../src/iop/graduatednd.c:1105 +msgid "select the hue tone of filter" +msgstr "izberite tonski odtenek filtra" + +#: ../src/iop/graduatednd.c:1111 +msgid "select the saturation of filter" +msgstr "izberite nasičenje filtra" + +#: ../src/iop/graduatednd.c:1122 +#, c-format +msgid "[%s on nodes] change line rotation" +msgstr "[%s on nodes] zamenjaj zasuk črte" + +#: ../src/iop/graduatednd.c:1123 +#, c-format +msgid "[%s on line] move line" +msgstr "[%s on line] premakni črto" + +#: ../src/iop/graduatednd.c:1125 +#, c-format +msgid "[%s on line] change density" +msgstr "[%s on line] spremeni gostoto" + +#: ../src/iop/graduatednd.c:1127 +#, c-format +msgid "[%s on line] change hardness" +msgstr "[%s on line] spremeni trdoto" + +#: ../src/iop/grain.c:444 +msgid "grain" +msgstr "zrno" + +#: ../src/iop/grain.c:449 +msgid "simulate silver grains from film" +msgstr "simuliraj zrna srebra iz filma" + +#: ../src/iop/grain.c:600 +msgid "the grain size (~ISO of the film)" +msgstr "velikost zrna (~ISO filma)" + +#: ../src/iop/grain.c:604 +msgid "the strength of applied grain" +msgstr "moč uporabljenih zrn" + +#: ../src/iop/grain.c:608 +msgid "" +"amount of mid-tones bias from the photographic paper response modeling. the " +"greater the bias, the more pronounced the fall off of the grain in shadows " +"and highlights" +msgstr "" +"vrednost pristranskosti srednjih tonov modela odziva foto papirja. večja " +"pristranskost, bolj je izražen padec zrnatosti v sencah in bleščavah" + +#: ../src/iop/hazeremoval.c:100 +msgid "haze removal" +msgstr "odstranitev zamegljenosti" + +#: ../src/iop/hazeremoval.c:106 +msgid "dehaze|defog|smoke|smog" +msgstr "odstrani zamegljenost|odstrani meglo|dim|smog" + +#: ../src/iop/hazeremoval.c:111 +msgid "remove fog and atmospheric hazing from pictures" +msgstr "odstrani meglo in atmosfersko meglico s slik" + +#: ../src/iop/hazeremoval.c:204 +msgid "amount of haze reduction" +msgstr "količina odstranjevanja zamegljenosti" + +#: ../src/iop/hazeremoval.c:206 +msgid "distance" +msgstr "razdalja" + +#: ../src/iop/hazeremoval.c:208 +msgid "limit haze removal up to a specific spatial depth" +msgstr "omejitev odstranjevanja zamegljenosti do določene prostorske globine" + +#: ../src/iop/highlights.c:173 +msgid "highlight reconstruction" +msgstr "rekonstrukcija bleščav" + +#: ../src/iop/highlights.c:178 +msgid "avoid magenta highlights and try to recover highlights colors" +msgstr "izogibaj se bleščavam v magenti in poskusi obnoviti barve bleščav" + +#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:77 +msgid "reconstruction, raw" +msgstr "rekonstrukcija, surovo" + +#: ../src/iop/highlights.c:1004 +msgid "" +"highlights: mode not available for this type of image. falling back to " +"inpaint opposed." +msgstr "" +"bleščave: način ni na voljo za to vrsto slik. v sili v nasprotno dobarvanje." + +#: ../src/iop/highlights.c:1184 +msgid "highlight reconstruction method" +msgstr "metoda rekonstrukcije bleščav" + +#: ../src/iop/highlights.c:1189 +#| msgid "" +#| "manually adjust the clipping threshold mostly used against magenta " +#| "highlights\n" +#| "the mask icon shows the clipped areas.\n" +#| "you might use this for tuning 'laplacian', 'inpaint opposed' or " +#| "'segmentation' modes,\n" +#| "especially if camera white point is incorrect." +msgid "" +"manually adjust the clipping threshold mostly used against magenta " +"highlights.\n" +"you might use this for tuning 'laplacian', 'inpaint opposed' or " +"'segmentation' modes,\n" +"especially if camera white point is incorrect." +msgstr "" +"ročno prilagodi prag obrezovanja proti bleščavam magente\n" +"lahko bi uporabili to za prilagajanje 'laplacovo', 'nasprotno dobarvanje' " +"ali način 'segmentacije',\n" +"še posebej, če je nastavitev beline kamere napačna." + +#: ../src/iop/highlights.c:1193 +msgid "" +"visualize clipped highlights in a false color representation.\n" +"the effective clipping level also depends on the reconstruction method." +msgstr "" +"vizualiziraj odrezane bleščave v lažni barvni predstavitvi.\n" +"učinkovita stopnja izrezovanja je odvisna tudi od metode rekonstrukcije." + +#: ../src/iop/highlights.c:1203 +#| msgid "" +#| "combine closely related clipped segments by morphological operations.\n" +#| "the mask button shows the exact positions of resulting segment borders." +msgid "" +"combine closely related clipped segments by morphological operations.\n" +"this often leads to improved color reconstruction for tiny segments before " +"dark background." +msgstr "" +"združi tesno povezane odrezane segmente z morfološkimi operacijami.\n" +"to pogosto vodi do izboljšane barvne rekonstrukcije za majhne segmente prej" +" temnega ozadja." + +#: ../src/iop/highlights.c:1206 +msgid "visualize the combined segments in a false color representation." +msgstr "vizualiziraj združene segmente v lažni barvni predstavitvi." + +#: ../src/iop/highlights.c:1213 +#| msgid "" +#| "select inpainting after segmentation analysis.\n" +#| "increase to favour candidates found in segmentation analysis, decrease " +#| "for opposed means inpainting.\n" +#| "the mask button shows segments that are considered to have a good " +#| "candidate." +msgid "" +"select inpainting after segmentation analysis.\n" +"increase to favor candidates found in segmentation analysis, decrease for " +"opposed means inpainting." +msgstr "" +"izberite dobarvanje po analizi segmentacije.\n" +"povečaj za priljubljenost kandidatov, ugotovljenih v analizi segmentacije," +" zmanjšaj za nasprotnike pomeni dobarvanje." +"​" + +#: ../src/iop/highlights.c:1216 +msgid "" +"visualize segments that are considered to have a good candidate in a false " +"color representation." +msgstr "" +"vizualizirajte segmente, za katere menite, da imajo dobrega kandidata v" +" napačni barvni predstavitvi." + +#: ../src/iop/highlights.c:1225 +msgid "" +"approximate lost data in regions with all photosites clipped, the effect " +"depends on segment size and border gradients.\n" +"choose a mode tuned for segment size or the generic mode that tries to find " +"best settings for every segment.\n" +"small means areas with a diameter less than 25 pixels, large is best for " +"greater than 100.\n" +"the flat modes ignore narrow unclipped structures (like powerlines) to keep " +"highlights rebuilt and avoid gradients." +msgstr "" +"približni izgubljeni podatki v regijah z vsemi posnetimi foto lokacijami, " +"učinek je odvisen od velikosti segmenta in mejnih gradientov.\n" +"izberite način, uglašen za velikost segmenta ali splošni način, ki poskuša " +"najti najboljše nastavitve za vsak segment.\n" +"majhno pomeni območja s premerom, manjšim od 25 pikslov, veliko je najbolje " +"več kot 100.\n" +"ravni načini ignorirajo ozke neobrezane strukture (kot npr. potenčne " +"krivulje), ki ohranjajo obnovljene bleščave in se izogibajo gradientom." + +#: ../src/iop/highlights.c:1231 +#| msgid "" +#| "set strength of rebuilding in regions with all photosites clipped.\n" +#| "the mask buttons shows the effect that is added to already reconstructed " +#| "data." +msgid "set strength of rebuilding in regions with all photosites clipped." +msgstr "nastavite moč obnove v regijah z vsemi posnetimi foto lokacijami." + +#: ../src/iop/highlights.c:1233 +msgid "show the effect that is added to already reconstructed data." +msgstr "prikaži učinek, ki je dodan že rekonstruiranim podatkom." + +#: ../src/iop/highlights.c:1242 +msgid "" +"add noise to visually blend the reconstructed areas\n" +"into the rest of the noisy image. useful at high ISO." +msgstr "" +"dodajte šum, da vizualno mešamo rekonstruirana območja\n" +"v preostalo sliko s šumom. koristno pri visokem ISO." + +#: ../src/iop/highlights.c:1246 +msgid "" +"increase if magenta highlights don't get fully corrected\n" +"each new iteration brings a performance penalty." +msgstr "" +"povečajte, če bleščave magente ne bodo popolnoma popravljene\n" +"vsaka nova iteracija prinaša kazen za uspešnost." + +#: ../src/iop/highlights.c:1251 +msgid "" +"increase if magenta highlights don't get fully corrected.\n" +"this may produce non-smooth boundaries between valid and clipped regions." +msgstr "" +"povečajte, če bleščave magente ne bi bile popolnoma popravljene\n" +"to lahko izdela nezvezne meje med veljavnimi in popravljenimi področji." + +#: ../src/iop/highlights.c:1255 +msgid "" +"increase to correct larger clipped areas.\n" +"large values bring huge performance penalties" +msgstr "" +"povečaj za popravljanje večjih odrezanih območij.\n" +"velike vrednosti prinašajo ogromne kazni za zmogljivost" + +#: ../src/iop/highlights.c:1259 +#| msgid "this module only works with non-monochrome RAW and sRAW" +msgid "this module does not work with monochrome RAW files" +msgstr "ta modul ne deluje pri monokromatskih surovih RAW datotekah" + +#: ../src/iop/highpass.c:72 +msgid "highpass" +msgstr "prepuščanje svetlih delov" + +#: ../src/iop/highpass.c:77 +msgid "isolate high frequencies in the image" +msgstr "izoliraj visoke frekvence na sliki" + +#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:107 +msgid "linear or non-linear, Lab, scene-referred" +msgstr "linearni ali ne-linearni, Lab, glede na sceno" + +#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:108 ../src/iop/sharpen.c:98 +msgid "frequential, Lab" +msgstr "frekvenčni, Lab" + +#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:109 +msgid "special, Lab, scene-referred" +msgstr "specialni, Lab, glede na sceno" + +#: ../src/iop/highpass.c:378 +msgid "the sharpness of highpass filter" +msgstr "ostrina filtra za prepuščanje svetlih delov" + +#: ../src/iop/highpass.c:382 +msgid "the contrast of highpass filter" +msgstr "kontrast filtra bleščavosti" + +#: ../src/iop/hotpixels.c:69 +msgid "hot pixels" +msgstr "vroči piksli" + +#: ../src/iop/hotpixels.c:74 +msgid "remove abnormally bright pixels by dampening them with neighbors" +msgstr "odstrani neobičajno svetle piksle tako, da jih navlažiš s sosedi" + +#: ../src/iop/hotpixels.c:442 +#, c-format +msgid "fixed %d pixel" +msgid_plural "fixed %d pixels" +msgstr[0] "popravljen %d piksel" +msgstr[1] "popravljena %d piksla" +msgstr[2] "popravljeni %d piksli" +msgstr[3] "popravljeno %d pikslov" + +#: ../src/iop/hotpixels.c:465 +msgid "lower threshold for hot pixel" +msgstr "znižaj prag za vroče piksle" + +#: ../src/iop/hotpixels.c:469 +msgid "strength of hot pixel correction" +msgstr "moč korekcije vročih pikslov" + +#: ../src/iop/hotpixels.c:485 +msgid "" +"hot pixel correction\n" +"only works for raw images." +msgstr "" +"popravljanje vročih pikslov\n" +"deluje samo na surovih fotografijah." + +#: ../src/iop/invert.c:106 ../src/iop/invert.c:442 +#, c-format +msgid "`%s' color matrix not found for 4bayer image" +msgstr "`%s' barvna matrika ni najdena za sliko iz 4bayer" + +#: ../src/iop/invert.c:125 +msgid "invert" +msgstr "invertiraj" + +#: ../src/iop/invert.c:130 +msgid "this module is deprecated. please use the negadoctor module instead." +msgstr "ta modul je zastarel. namesto tega raje uporabite modul negadoctor." + +#: ../src/iop/invert.c:135 +msgid "invert film negatives" +msgstr "preobrni filmske negative" + +#: ../src/iop/invert.c:137 ../src/iop/invert.c:139 +msgid "linear, raw, display-referred" +msgstr "linearni, surovi, glede na zaslon" + +#. Here we could provide more for monochrome special cases. As no monochrome camera +#. has a bayer sensor we don't need g->RGB_to_CAM and g->CAM_to_RGB corrections +#: ../src/iop/invert.c:427 +msgid "brightness of film material" +msgstr "sijavost filmskega materiala" + +#: ../src/iop/invert.c:431 +msgid "color of film material" +msgstr "barva filmskega materijala" + +#: ../src/iop/invert.c:515 ../src/iop/negadoctor.c:866 +msgid "pick color of film material from image" +msgstr "izberite barvo filmskega materiala iz slike" + +#: ../src/iop/invert.c:517 +msgid "select color of film material" +msgstr "izberite barvo filma" + +#: ../src/iop/lens.cc:251 +msgid "lens correction" +msgstr "popravek objektivov" + +#: ../src/iop/lens.cc:256 +msgid "vignette|chromatic aberrations|distortion" +msgstr "vinjeta|barvni odkloni|popačenja" + +#: ../src/iop/lens.cc:261 +msgid "correct lenses optical flaws" +msgstr "popravi optične napake leč" + +#: ../src/iop/lens.cc:264 +msgid "geometric and reconstruction, RGB" +msgstr "geometrija in rekonstrukcija, RGB" + +#: ../src/iop/lens.cc:3773 +#, c-format +msgid "" +"maker:\t\t%s\n" +"model:\t\t%s%s\n" +"mount:\t\t%s\n" +"crop factor:\t%.1f" +msgstr "" +"proizvajalec:\t\t%s\n" +"model:\t\t%s%s\n" +"bajonet:\t\t%s\n" +"faktor obreze:\t%.1f" + +#: ../src/iop/lens.cc:4026 +#, c-format +msgid "" +"maker:\t\t%s\n" +"model:\t\t%s\n" +"focal range:\t%s\n" +"aperture:\t%s\n" +"crop factor:\t%.1f\n" +"type:\t\t%s\n" +"mounts:\t%s" +msgstr "" +"izdelal:\t\t%s\n" +"model:\t\t%s\n" +"izmerjena razdalja:\t%s\n" +"zaslonka:\t%s\n" +"faktor obreze:\t%.1f\n" +"tip:\t\t%s\n" +"mounts:\t%s" + +#: ../src/iop/lens.cc:4072 +msgid "focal length (mm)" +msgstr "goriščna razdalja (mm)" + +#: ../src/iop/lens.cc:4098 +msgid "f/" +msgstr "f/" + +#: ../src/iop/lens.cc:4099 +msgid "f-number (aperture)" +msgstr "f-število (zaslonka)" + +#: ../src/iop/lens.cc:4115 +msgid "d" +msgstr "d" + +#: ../src/iop/lens.cc:4116 +msgid "distance to subject" +msgstr "razdalja do predmeta" + +#: ../src/iop/lens.cc:4277 +msgid "camera/lens not found" +msgstr "ni mogoče najti kamere/lečij" + +#: ../src/iop/lens.cc:4278 +msgid "" +"please select your lens manually\n" +"you might also want to check if your Lensfun database is up-to-date\n" +"by running lensfun-update-data" +msgstr "" +"izberite vaše lečje ročno\n" +"lahko tudi preverite, če je podatkovna baza Lensfun ažurna\n" +"če poženete lensfun-update-data" + +#: ../src/iop/lens.cc:4423 +msgid "camera model" +msgstr "model kamere" + +#: ../src/iop/lens.cc:4428 +msgid "find camera" +msgstr "išči kamero" + +#: ../src/iop/lens.cc:4443 +msgid "find lens" +msgstr "išči objektiv" + +#. scale +#: ../src/iop/lens.cc:4477 ../src/iop/vignette.c:1055 +#: ../src/iop/watermark.c:1372 ../src/libs/export.c:1264 +msgid "scale" +msgstr "merilo" + +#: ../src/iop/lens.cc:4482 +msgid "auto scale" +msgstr "avtomatsko merilo" + +#: ../src/iop/lens.cc:4484 +msgid "automatic scale to available image size due to Lensfun data" +msgstr "" +"samodejno prilagajanje razpoložljive velikosti slike zaradi podatkov Lensfun" + +#: ../src/iop/lens.cc:4488 +msgid "correct distortions or apply them" +msgstr "popravi popačenja ali jih izvedi" + +#: ../src/iop/lens.cc:4495 +msgid "transversal chromatic aberration red" +msgstr "transverzalni barvni odklon rdeče" + +#: ../src/iop/lens.cc:4499 +msgid "transversal chromatic aberration blue" +msgstr "transverzalni barvni odklon modre" + +#: ../src/iop/lens.cc:4509 +msgid "use latest algorithm" +msgstr "uporabi najnovejši algoritem" + +#: ../src/iop/lens.cc:4511 +msgid "" +"you're using an old version of the algorithm.\n" +"once enabled, you won't be able to\n" +"return back to old algorithm." +msgstr "" +"uporabljate staro verzijo algoritma.\n" +"potem ko ste omogočili, se ne boste mogli\n" +"vrniti nazaj na stari algoritem." + +#: ../src/iop/lens.cc:4521 +#| msgid "finetune" +msgid "fine-tuning" +msgstr "natančno prilagajanje" + +#. DT_IOP_SECTION_FOR_PARAMS doesn't work in C++ so create section module manually +#: ../src/iop/lens.cc:4526 +#| msgid "finetune" +msgid "fine-tune" +msgstr "natančno prilagajanje" + +#: ../src/iop/lens.cc:4532 +msgid "tune the warp and chromatic aberration correction" +msgstr "prilagodite osnovo in popravek kromatske aberacije" + +#: ../src/iop/lens.cc:4536 +msgid "tune the vignette correction" +msgstr "prilagodi popravek vinjetiranja" + +#: ../src/iop/lens.cc:4540 +msgid "tune the TCA red correction" +msgstr "prilagodi popravek TCA rdeče" + +#: ../src/iop/lens.cc:4544 +msgid "tune the TCA blue correction" +msgstr "prilagodi popravek TCA modre" + +#: ../src/iop/lens.cc:4551 +msgid "image scaling" +msgstr "prilagoditve velikosti slike" + +#: ../src/iop/lens.cc:4553 +#| msgid "max scale is %i for this image size" +msgid "automatic scale to available image size" +msgstr "samodejno prilagodi razpoložljivi velikosti slike" + +#: ../src/iop/lens.cc:4561 +msgid "" +"select a correction mode either based on\n" +" a) data and algorithms provided by the Lensfun project\n" +" b) embedded metadata provided by the camera or software vendor" +msgstr "" +"izberite način popravljanja glede na\n" +" a) podatke in algoritme, ki jih zagotavlja projekt Lensfun\n" +" b) vdelane metapodatke, ki jih zagotovi prodajalec kamere ali programske" +" opreme" +"​" + +#: ../src/iop/lens.cc:4568 +msgid "which corrections to apply" +msgstr "katere popravke uveljaviti" + +#: ../src/iop/lens.cc:4574 +msgid "corrections done: " +msgstr "popravki izvedeni: " + +#: ../src/iop/lens.cc:4576 +msgid "which corrections have actually been done" +msgstr "kateri popravki so bili zares izvedeni" + +#: ../src/iop/lens.cc:4595 +#| msgid "tune the vignette correction" +msgid "manual vignette correction" +msgstr "ročno popravljanje vinjetiranja" + +#: ../src/iop/lens.cc:4599 +msgid "additional manually controlled optical vignetting correction" +msgstr "dodatna ročno nadzorovana optična korekcija vinjetiranja" + +#: ../src/iop/lens.cc:4602 +#| msgid "vignetting" +msgid "vignette" +msgstr "vinjeta" + +#: ../src/iop/lens.cc:4606 +#| msgid "tune the vignette correction" +msgid "amount of the applied optical vignetting correction" +msgstr "količina uporabljenega optičnega popravka vinjetiranja" + +#: ../src/iop/lens.cc:4608 +#| msgid "tune the vignette correction" +msgid "show applied optical vignette correction mask" +msgstr "prikaži uporabljeno korekcijsko masko optične vinjete" + +#: ../src/iop/lens.cc:4618 +#| msgid "radius for detecting fringe" +msgid "radius of uncorrected centre" +msgstr "polmer nekorigiranega središča" + +#: ../src/iop/lens.cc:4624 +msgid "steepness of the correction effect outside of radius" +msgstr "strmina korekcijskega učinka zunaj polmera" + +#: ../src/iop/levels.c:112 +msgid "this module is deprecated. please use the RGB levels module instead." +msgstr "ta modul je zastarel. namesto tega raje uporabite modul ravni RGB." + +#: ../src/iop/levels.c:117 ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1022 +#: ../src/iop/rgblevels.c:1056 +msgid "levels" +msgstr "ravni" + +#: ../src/iop/levels.c:139 +msgid "adjust black, white and mid-gray points" +msgstr "prilagodi črno, belo in srednje sive točke" + +#: ../src/iop/levels.c:644 ../src/iop/rgblevels.c:1059 +msgid "" +"drag handles to set black, gray, and white points. operates on L channel." +msgstr "" +"povlecite ročke za nastavitve črnih, sivih in belih točk. deluje na kanalu L." + +#: ../src/iop/levels.c:658 ../src/iop/rgblevels.c:1108 +msgid "apply auto levels" +msgstr "uporabi avtomatske ravni" + +#: ../src/iop/levels.c:662 ../src/iop/rgblevels.c:1077 +msgid "pick black point from image" +msgstr "izberi črno točko na sliki" + +#: ../src/iop/levels.c:666 ../src/iop/rgblevels.c:1085 +msgid "pick medium gray point from image" +msgstr "izberi sivo točko na sliki" + +#: ../src/iop/levels.c:670 ../src/iop/rgblevels.c:1093 +msgid "pick white point from image" +msgstr "izberi belo točko na sliki" + +#: ../src/iop/levels.c:683 ../src/iop/rgblevels.c:968 +#: ../src/iop/rgblevels.c:1075 +msgid "black" +msgstr "črna" + +#: ../src/iop/levels.c:684 +msgid "black percentile" +msgstr "odstotek črne" + +#: ../src/iop/levels.c:688 +msgid "gray percentile" +msgstr "odstotek sive" + +#: ../src/iop/levels.c:691 ../src/iop/rgblevels.c:970 +#: ../src/iop/rgblevels.c:1091 +msgid "white" +msgstr "bela" + +#: ../src/iop/levels.c:692 +msgid "white percentile" +msgstr "odstotek bele" + +#: ../src/iop/liquify.c:291 +msgid "liquify" +msgstr "utekočini" + +#: ../src/iop/liquify.c:296 +msgid "distort parts of the image" +msgstr "popači dele slike" + +#: ../src/iop/liquify.c:2895 +msgid "click to edit nodes" +msgstr "kliknite za urejanje vozlišč" + +#: ../src/iop/liquify.c:3599 +msgid "" +"<b>add point</b>: click and drag\n" +"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " +"ctrl+scroll" +msgstr "" +"<b>dodaj točko</b>: klik in povlek\n" +"<b>velikost</b>: poteg - <b>moč</b>: dvigalka + poteg - <b>smer</b>:" +"kontrolka+drsanje" + +#: ../src/iop/liquify.c:3602 +msgid "" +"<b>add line</b>: click\n" +"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " +"ctrl+scroll" +msgstr "" +"<b>dodaj črto</b>: klik\n" +"<b>velikost</b>: poteg - <b>moč</b>: dvigalka + poteg - <b>smer</b>:" +"kontrolka+drsanje" + +#: ../src/iop/liquify.c:3605 +msgid "" +"<b>add curve</b>: click\n" +"<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " +"ctrl+scroll" +msgstr "" +"<b>dodaj krivuljo</b>: klik\n" +"<b>velikost</b>: poteg - <b>moč</b>: dvigalka + poteg - <b>smer</b>:" +"kontrolka+drsanje" + +#: ../src/iop/liquify.c:3656 +msgid "" +"use a tool to add warps\n" +"<b>remove a warp</b>: right-click" +msgstr "" +"uporabite orodje za dodajanje zvitkov\n" +"<b>odstrani zvitek</b>: desni klik" + +#: ../src/iop/liquify.c:3659 +msgid "warps|nodes count:" +msgstr "zvitki|št. vozlišč:" + +#: ../src/iop/liquify.c:3668 +msgid "edit, add and delete nodes" +msgstr "uredi, dodaj in briši vozlišča" + +#: ../src/iop/liquify.c:3673 ../src/iop/liquify.c:3679 +#: ../src/iop/liquify.c:3685 ../src/iop/retouch.c:2465 +#: ../src/iop/retouch.c:2471 ../src/iop/retouch.c:2476 +#: ../src/iop/retouch.c:2481 ../src/iop/spots.c:885 ../src/iop/spots.c:890 +#: ../src/iop/spots.c:895 ../src/libs/masks.c:1812 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1830 ../src/libs/masks.c:1839 ../src/libs/masks.c:1848 +msgid "shapes" +msgstr "oblike" + +#: ../src/iop/liquify.c:3674 +msgid "draw curves" +msgstr "riši krivulje" + +#: ../src/iop/liquify.c:3674 +msgid "draw multiple curves" +msgstr "riši več krivulj" + +#: ../src/iop/liquify.c:3680 +msgid "draw lines" +msgstr "riši črte" + +#: ../src/iop/liquify.c:3680 +msgid "draw multiple lines" +msgstr "riši več črt" + +#: ../src/iop/liquify.c:3686 +msgid "draw points" +msgstr "riši točke" + +#: ../src/iop/liquify.c:3686 +msgid "draw multiple points" +msgstr "riši več točk" + +#: ../src/iop/liquify.c:3692 +msgid "" +"<b>add node</b>: ctrl+click - <b>remove path</b>: right click\n" +"<b>toggle line/curve</b>: ctrl+alt+click" +msgstr "" +"<b>dodaj vozel</b>: ctrl+klik, <b>odstrani pot</b>: desni-klik\n" +"<b>preklop črta/krivulja</b>: ctrl+alt+klik" + +#: ../src/iop/liquify.c:3695 +msgid "" +"<b>move</b>: click and drag - <b>show/hide feathering controls</b>: click\n" +"<b>autosmooth, cusp, smooth, symmetrical</b>: ctrl+click - <b>remove</b>: " +"right click" +msgstr "" +"<b>premik</b>: klik in poteg - <b>prikaži/skrij kontrolo perja</b>: klik\n" +"<b>samodejno glajenje, spoj, glajenje, simetrično</b>: ctrl+klik - " +"<b>odstrani</b>: desni klik" + +#: ../src/iop/liquify.c:3699 ../src/iop/liquify.c:3701 +msgid "<b>shape of path</b>: drag" +msgstr "<b>oblika poti</b>: poteg" + +#: ../src/iop/liquify.c:3703 +msgid "<b>radius</b>: drag" +msgstr "<b>radij</b>: poteg" + +#: ../src/iop/liquify.c:3705 +msgid "<b>hardness (center)</b>: drag" +msgstr "<b>trdota (center)</b>: poteg" + +#: ../src/iop/liquify.c:3707 +msgid "<b>hardness (feather)</b>: drag" +msgstr "<b>trdota (pero)</b>: poteg" + +#: ../src/iop/liquify.c:3709 +msgid "" +"<b>strength</b>: drag\n" +"<b>linear, grow, and shrink</b>: ctrl+click" +msgstr "" +"<b>moč</b>: poteg\n" +"<b>linearno, rast in krčenje</b>: ctrl+klik" + +#: ../src/iop/lowlight.c:86 +msgid "lowlight vision" +msgstr "vid pri šibki svetlobi" + +#: ../src/iop/lowlight.c:91 +msgid "simulate human night vision" +msgstr "simuliraj človekov nočni vid" + +#: ../src/iop/lowlight.c:94 +msgid "linear, XYZ" +msgstr "linearni, XYZ" + +#: ../src/iop/lowlight.c:338 +msgid "indoor bright" +msgstr "notranje bleščave" + +#: ../src/iop/lowlight.c:356 +msgid "indoor dim" +msgstr "notranja zamegljenost" + +#: ../src/iop/lowlight.c:374 +msgid "indoor dark" +msgstr "notranja temačnost" + +#: ../src/iop/lowlight.c:392 +msgid "twilight" +msgstr "zora" + +#: ../src/iop/lowlight.c:410 +msgid "night street lit" +msgstr "osvetljena nočna ulica" + +#: ../src/iop/lowlight.c:428 +msgid "night street" +msgstr "nočna ulica" + +#: ../src/iop/lowlight.c:446 +msgid "night street dark" +msgstr "temna nočna ulica" + +#: ../src/iop/lowlight.c:465 +msgid "night" +msgstr "noč" + +#: ../src/iop/lowlight.c:639 +msgid "dark" +msgstr "temačnost" + +#: ../src/iop/lowlight.c:647 +msgid "bright" +msgstr "bleščeče" + +#: ../src/iop/lowlight.c:656 +msgid "day vision" +msgstr "dnevna vidljivost" + +#: ../src/iop/lowlight.c:661 +msgid "night vision" +msgstr "nočna vidljivost" + +#: ../src/iop/lowlight.c:833 +msgid "blueness in shadows" +msgstr "modrine v sencah" + +#: ../src/iop/lowpass.c:100 +msgid "lowpass" +msgstr "filter prepuščanja temin" + +#: ../src/iop/lowpass.c:105 +msgid "isolate low frequencies in the image" +msgstr "izoliraj nizke frekvence na sliki" + +#: ../src/iop/lowpass.c:578 +msgid "local contrast mask" +msgstr "maska lokalnega kontrasta" + +#: ../src/iop/lowpass.c:603 +msgid "radius of gaussian/bilateral blur" +msgstr "polmer Gaussovega/bilateralnega zamegljevanja" + +#: ../src/iop/lowpass.c:604 +msgid "contrast of lowpass filter" +msgstr "kontrast filtra prepuščanja minimuma" + +#: ../src/iop/lowpass.c:605 +msgid "brightness adjustment of lowpass filter" +msgstr "prilagoditev sijavosti filtra prepuščanja temin" + +#: ../src/iop/lowpass.c:606 +msgid "color saturation of lowpass filter" +msgstr "barvno nasičenje filtra prepuščanja temin" + +#: ../src/iop/lowpass.c:607 +msgid "which filter to use for blurring" +msgstr "kateri filter zamegljevanja" + +#: ../src/iop/lut3d.c:136 +msgid "LUT 3D" +msgstr "LUT 3D" + +#: ../src/iop/lut3d.c:141 +msgid "perform color space corrections and apply look" +msgstr "izvedi popravke barvnega prostora in uporabi videz" + +#: ../src/iop/lut3d.c:144 +msgid "defined by profile, RGB" +msgstr "določeno s profilom, RGB" + +#: ../src/iop/lut3d.c:486 +msgid "error allocating buffer for gmz LUT" +msgstr "napaka zagotavljanja medpomnilnika za iskalno tabelo gmz" + +#: ../src/iop/lut3d.c:512 +#, c-format +msgid "invalid png file %s" +msgstr "napačna datoteka png %s" + +#: ../src/iop/lut3d.c:520 +#, c-format +#| msgid "png bit-depth %d not supported" +msgid "png bit depth %d is not supported" +msgstr "bitna globina png %d ni podprta" + +#: ../src/iop/lut3d.c:534 ../src/iop/lut3d.c:544 +#, c-format +msgid "invalid level in png file %d %d" +msgstr "napačen nivo datoteke png %d %d" + +#: ../src/iop/lut3d.c:539 +msgid "this darktable build is not compatible with compressed CLUT" +msgstr "ta izdelava darktabla ni združljiva s stisnjenim CLUT" + +#: ../src/iop/lut3d.c:556 ../src/iop/lut3d.c:808 +#, c-format +msgid "error - LUT 3D size %d exceeds the maximum supported" +msgstr "napaka - velikost iskalne tabele 3D %d presega največjo podprto" + +#: ../src/iop/lut3d.c:568 +msgid "error allocating buffer for png LUT" +msgstr "napaka zagotavljanja medpomnilnika za iskalno tabelo png" + +#: ../src/iop/lut3d.c:576 +#, c-format +msgid "error - could not read png image %s" +msgstr "napaka - ne morem prebrati slike png %s" + +#: ../src/iop/lut3d.c:586 +msgid "error - allocating buffer for png LUT" +msgstr "napaka - zagotavljanje medpomnilnika za iskalno tabelo png" + +#: ../src/iop/lut3d.c:761 +#, c-format +msgid "error - invalid cube file: %s" +msgstr "napaka - napačna datoteka kocke: %s" + +#: ../src/iop/lut3d.c:775 +#| msgid "DOMAIN MIN <> 0.0 is not supported" +msgid "DOMAIN MIN other than 0 is not supported" +msgstr "DOMAIN MIN ki ni 0, ni podprt" + +#: ../src/iop/lut3d.c:787 +#| msgid "DOMAIN MAX <> 1.0 is not supported" +msgid "DOMAIN MAX other than 1 is not supported" +msgstr "DOMAIN MAX ki ni 1, ni podprt" + +#: ../src/iop/lut3d.c:797 +msgid "1D cube LUT is not supported" +msgstr "iskalna tabela 1D kocke ni podprta" + +#: ../src/iop/lut3d.c:819 +msgid "error - allocating buffer for cube LUT" +msgstr "napaka - zagotavljanje vmesnega pomnilnika za iskalno tabelo za kocko" + +#: ../src/iop/lut3d.c:830 +msgid "error - cube LUT size is not defined" +msgstr "napaka - velikost iskalne tabele kocke ni določena" + +#: ../src/iop/lut3d.c:841 +#, c-format +msgid "error - cube LUT invalid number line %d" +msgstr "napaka - neveljavna številka vrstice iskalne tabele kocke %d" + +#: ../src/iop/lut3d.c:857 +#, c-format +msgid "error - cube LUT lines number %d is not correct, should be %d" +msgstr "" +"napaka - število vrstic iskalne tabele kocke %d ni pravilno, bi morala biti " +"%d" + +#: ../src/iop/lut3d.c:867 +#, c-format +msgid "warning - cube LUT has %d values out of range [0,1]" +msgstr "opozorilo - iskalna tabela kocke ima %d vrednosti izven območja [0,1]" + +#: ../src/iop/lut3d.c:892 +#, c-format +msgid "error - invalid 3dl file: %s" +msgstr "napaka - neveljavna datoteka 3dl: %s" + +#: ../src/iop/lut3d.c:913 +#, c-format +msgid "error - the maximum shaper LUT value %d is too low" +msgstr "napaka - največja vrednost iskalne tabele oblikovalca %d je premajhna" + +#: ../src/iop/lut3d.c:924 +msgid "error - allocating buffer for 3dl LUT" +msgstr "napaka - zagotavljanje medpomnilnika za iskalno tabelo 3dl" + +#: ../src/iop/lut3d.c:937 +msgid "error - 3dl LUT size is not defined" +msgstr "napaka - velikost iskalne tabele 3dl ni določena" + +#: ../src/iop/lut3d.c:965 +msgid "error - 3dl LUT lines number is not correct" +msgstr "napaka - število vrstic iskalne tabele 3dl ni pravilno" + +#: ../src/iop/lut3d.c:981 +msgid "error - the maximum LUT value does not match any valid bit depth" +msgstr "" +"napaka - največja vrednost iskalne tabele se ne ujema z nobeno veljavno " +"bitno globino" + +#: ../src/iop/lut3d.c:1553 +msgid "LUT root folder not defined" +msgstr "korenska mapa za iskalno tabelo ni določena" + +#: ../src/iop/lut3d.c:1559 +msgid "select LUT file" +msgstr "izberi datoteko iskalne tabele" + +#: ../src/iop/lut3d.c:1560 +msgid "_select" +msgstr "_izberi" + +#: ../src/iop/lut3d.c:1580 +msgid "hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" +msgstr "" +"iskalna tabela: hald clut (png), 3D (kocka ali 3dl) ali stisnjena tabela " +"gmic (gmz)" + +#: ../src/iop/lut3d.c:1582 +msgid "hald CLUT (png) or 3D LUT (cube or 3dl)" +msgstr "iskalna tabela hald CLUT (png) ali 3D LUT (kocka ali 3dl)" + +#: ../src/iop/lut3d.c:1606 +msgid "select file outside LUT root folder is not allowed" +msgstr "izbira datoteke izven korenske mape iskalne tabele ni dovoljena" + +#: ../src/iop/lut3d.c:1677 +msgid "" +"select a png (haldclut), a cube, a 3dl or a gmz (compressed LUT) file " +"CAUTION: 3D LUT folder must be set in preferences/processing before choosing " +"the LUT file" +msgstr "" +"izberi png (haldclut), kocko, 3dl ali gmz (stisnjeno) datoteko iskalno " +"tabelo POZOR: mapo iskalnih tabel 3D morate nastaviti v nastavitve/osnovne " +"možnostih/razno pred izbiro datoteke iskalne tabele" + +#: ../src/iop/lut3d.c:1681 +msgid "" +"select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be " +"set in preferences/processing before choosing the LUT file" +msgstr "" +"izberite png (haldclut), kocko ali datoteko 3dl OPOZORILO: mapa 3D iskalne " +"tabele mora biti določena v preferencah/osnovne možnosti/razno pred izbiro " +"datoteke iskalne tabele" + +#: ../src/iop/lut3d.c:1693 +msgid "" +"the file path (relative to LUT folder) is saved with image along with the " +"LUT data if it's a compressed LUT (gmz)" +msgstr "" +"pot datoteke (relativno glede na mapo iskalno tabelo) je shranjena s sliko " +"in podatki iskalne tabele, če je iskalna tabela stisnjena (gmz)" + +#: ../src/iop/lut3d.c:1696 +msgid "" +"the file path (relative to LUT folder) is saved with image (and not the LUT " +"data themselves)" +msgstr "" +"pot datoteke (relativno glede na mapo iskalno tabelo) je shranjena s sliko " +"(in ne podatki iskalne tabele)" + +#: ../src/iop/lut3d.c:1705 +msgid "enter LUT name" +msgstr "vnesite ime iskalne tabele" + +#: ../src/iop/lut3d.c:1726 +msgid "select the LUT" +msgstr "izberi tabelo iskanja" + +#: ../src/iop/lut3d.c:1739 +msgid "select the color space in which the LUT has to be applied" +msgstr "izberite barvni prostor, kjer bo uporabljena tabela iskanja" + +#: ../src/iop/lut3d.c:1741 +msgid "interpolation" +msgstr "interpolacija" + +#: ../src/iop/lut3d.c:1742 +msgid "select the interpolation method" +msgstr "izberite metodo interpolacije" + +#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:63 +msgid "mask manager" +msgstr "upravljavec mask" + +#: ../src/iop/monochrome.c:99 +msgid "quickly convert an image to black & white using a variable color filter" +msgstr "" +"hitro spremeni sliko v črno-belo z uporabo spremenljivega barvnega filtra" + +#: ../src/iop/monochrome.c:153 +msgid "red filter" +msgstr "rdeči filter" + +#: ../src/iop/monochrome.c:568 +msgid "drag and scroll mouse wheel to adjust the virtual color filter" +msgstr "" +"povlecite in podrsajte miškin kolešček za prilagajanje virtualnega barvnega " +"filtra" + +#: ../src/iop/monochrome.c:584 +msgid "how much to keep highlights" +msgstr "koliko za vzdrževanje bleščav" + +#: ../src/iop/negadoctor.c:135 +msgid "negadoctor" +msgstr "negadoctor" + +#: ../src/iop/negadoctor.c:140 +msgid "film|invert|negative|scan" +msgstr "film|obrni|negativ|skeniraj" + +#: ../src/iop/negadoctor.c:145 +msgid "invert film negative scans and simulate printing on paper" +msgstr "" +"obrni grafične zajeme filmskih negativov in simuliraj tiskanje na papir" + +#: ../src/iop/negadoctor.c:483 +msgid "D min" +msgstr "D min" + +#: ../src/iop/negadoctor.c:489 ../src/iop/negadoctor.c:875 +msgid "D min red component" +msgstr "komponenta D min rdeče" + +#. Page FILM PROPERTIES +#: ../src/iop/negadoctor.c:851 +msgid "film properties" +msgstr "lastnosti filma" + +#. Dmin +#: ../src/iop/negadoctor.c:855 +msgctxt "section" +msgid "color of the film base" +msgstr "osnovna barva filma" + +#: ../src/iop/negadoctor.c:861 +msgid "select color of film material from a swatch" +msgstr "izberi barvo filmskega materiala iz aktivne palete barv" + +#: ../src/iop/negadoctor.c:867 +msgid "film material" +msgstr "filmski material" + +#: ../src/iop/negadoctor.c:876 ../src/iop/negadoctor.c:886 +#: ../src/iop/negadoctor.c:896 +msgid "" +"adjust the color and shade of the film transparent base.\n" +"this value depends on the film material, \n" +"the chemical fog produced while developing the film,\n" +"and the scanner white balance." +msgstr "" +"prilagodi barvo in senco prozorne podlage za film.\n" +"ta vrednost je odvisna od filmskega materiala,\n" +"kemične megle, nastale med razvijanjem filma,\n" +"in ravnovesje beline optičnega bralnika." + +#: ../src/iop/negadoctor.c:885 +msgid "D min green component" +msgstr "komponenta D min zelene" + +#: ../src/iop/negadoctor.c:895 +msgid "D min blue component" +msgstr "komponenta D min modre" + +#. D max and scanner bias +#: ../src/iop/negadoctor.c:903 +msgctxt "section" +msgid "dynamic range of the film" +msgstr "dinamični razpon filma" + +#: ../src/iop/negadoctor.c:907 +msgid "" +"maximum density of the film, corresponding to white after inversion.\n" +"this value depends on the film specifications, the developing process,\n" +"the dynamic range of the scene and the scanner exposure settings." +msgstr "" +"največja gostota filma, ki ustreza beli barvi po inverziji.\n" +"ta vrednost je odvisna od specifikacij filma, procesa razvijanja,\n" +"dinamičnega razpona scene in nastavitve osvetlitve optičnega bralnika." + +#: ../src/iop/negadoctor.c:911 +msgctxt "section" +msgid "scanner exposure settings" +msgstr "nastavitve osvetlitve optičnega bralnika" + +#: ../src/iop/negadoctor.c:915 +msgid "" +"correct the exposure of the scanner, for all RGB channels,\n" +"before the inversion, so blacks are neither clipped or too pale." +msgstr "" +"popravite osvetlitev optičnega bralnika za vse RGB kanale,\n" +"pred inverzijo, zato črnine niso niti obrezane niti preveč blede." + +#. WB shadows +#: ../src/iop/negadoctor.c:922 +msgctxt "section" +msgid "shadows color cast" +msgstr "pridih barv v sencah" + +#: ../src/iop/negadoctor.c:928 +msgid "select color of shadows from a swatch" +msgstr "izberi barve senc iz aktivne palete barv" + +#: ../src/iop/negadoctor.c:933 +msgid "pick shadows color from image" +msgstr "poberi barvo v sencah iz slike" + +#: ../src/iop/negadoctor.c:939 +msgid "shadows red offset" +msgstr "odmik rdeče v sencah" + +#: ../src/iop/negadoctor.c:940 ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:954 +msgid "" +"correct the color cast in shadows so blacks are\n" +"truly achromatic. Setting this value before\n" +"the highlights illuminant white balance will help\n" +"recovering the global white balance in difficult cases." +msgstr "" +"popravi barvni ton v sencah, tako da črnine niso\n" +"resnično akromatične. Nastavitev te vrednosti pred\n" +"vrsto svetlobe, bo ravnovesje belin pomagalo\n" +"do ponovne vzpostavitve globalnega ravnovesja belin v težkih primerih." + +#: ../src/iop/negadoctor.c:946 +msgid "shadows green offset" +msgstr "odmik zelene v sencah" + +#: ../src/iop/negadoctor.c:953 +msgid "shadows blue offset" +msgstr "odmik modre v sencah" + +#. WB highlights +#: ../src/iop/negadoctor.c:960 +msgctxt "section" +msgid "highlights white balance" +msgstr "uravnoteženost beline v bleščavah" + +#: ../src/iop/negadoctor.c:966 +msgid "select color of illuminant from a swatch" +msgstr "izberi barvo svetlobe iz aktivne palete barv" + +#: ../src/iop/negadoctor.c:971 +msgid "pick illuminant color from image" +msgstr "izberi barvo svetlobe iz slike" + +#: ../src/iop/negadoctor.c:977 +msgid "illuminant red gain" +msgstr "ojačenje rdeče svetlobe" + +#: ../src/iop/negadoctor.c:978 ../src/iop/negadoctor.c:985 +#: ../src/iop/negadoctor.c:992 +msgid "" +"correct the color of the illuminant so whites are\n" +"truly achromatic. Setting this value after\n" +"the shadows color cast will help\n" +"recovering the global white balance in difficult cases." +msgstr "" +"popravite barvo svetlobe, tako da so beline resnično\n" +"akromatične. Nastavitev te vrednosti po pridihu\n" +"barv v senci bo pomagala k ponovni vzpostavitvi\n" +"globalnega ravnovesja beline v težkih primerih." + +#: ../src/iop/negadoctor.c:984 +msgid "illuminant green gain" +msgstr "ojačenje zelene svetlobe" + +#: ../src/iop/negadoctor.c:991 +msgid "illuminant blue gain" +msgstr "ojačenje modre svetlobe" + +#. Page PRINT PROPERTIES +#: ../src/iop/negadoctor.c:998 +msgid "print properties" +msgstr "lastnosti tiska" + +#. print corrections +#: ../src/iop/negadoctor.c:1001 +msgctxt "section" +msgid "virtual paper properties" +msgstr "virtualne lastnosti papirja" + +#: ../src/iop/negadoctor.c:1007 +msgid "" +"correct the density of black after the inversion,\n" +"to adjust the global contrast while avoiding clipping shadows." +msgstr "" +"popravi gostoto črnine po inverziji,\n" +"za prilagajanje globalnega kontrasta, obenem pa v izogib obrezovanju senc." + +#: ../src/iop/negadoctor.c:1012 +msgid "" +"select the grade of the virtual paper, which is actually\n" +"equivalent to applying a gamma. it compensates the film D max\n" +"and recovers the contrast. use a high grade for high D max." +msgstr "" +"izberite gradacijo navideznega papirja, ki je dejansko\n" +"enakovredno uporabi game. kompenzira D max filma\n" +"in povrne kontrast. uporabite visoko gradacijo za visok D max." + +#: ../src/iop/negadoctor.c:1020 +msgid "" +"gradually compress specular highlights past this value\n" +"to avoid clipping while pushing the exposure for mid-tones.\n" +"this somewhat reproduces the behavior of matte paper." +msgstr "" +"postopoma stisnite odsevne bleščave mimo te vrednosti\n" +"da se izognete obrezovanju ob povečevanju osvetlitev srednjih tonov.\n" +"to do neke mere odraža obnašanje mat papirja." + +#: ../src/iop/negadoctor.c:1024 +msgctxt "section" +msgid "virtual print emulation" +msgstr "posnemanje navideznega tiskanja" + +#: ../src/iop/negadoctor.c:1031 +msgid "" +"correct the printing exposure after inversion to adjust\n" +"the global contrast and avoid clipping highlights." +msgstr "" +"popravi osvetlitev tiskanja po inverziji, za prilagoditev\n" +"globalnega kontrasta v izogib obrezovanja bleščav." + +#: ../src/iop/negadoctor.c:1039 +msgid "toggle on or off the color controls" +msgstr "preklaplja upravljanje barv" + +#: ../src/iop/nlmeans.c:78 +msgid "astrophoto denoise" +msgstr "astro-fotografsko odstranjevaje šuma" + +#: ../src/iop/nlmeans.c:83 +msgid "denoise (non-local means)" +msgstr "odstranjevanje šuma (ne-lokalna povprečja)" + +#: ../src/iop/nlmeans.c:88 +msgid "apply a poisson noise removal best suited for astrophotography" +msgstr "" +"uporabi odstranjevanje poissonovega šuma, ki je najprimernejši za " +"astrofotografijo" + +#: ../src/iop/nlmeans.c:462 +msgid "radius of the patches to match" +msgstr "polmer ujemajočih krp" + +#: ../src/iop/nlmeans.c:470 +msgid "how much to smooth brightness" +msgstr "koliko zgladiti sijavost" + +#: ../src/iop/nlmeans.c:473 +msgid "how much to smooth colors" +msgstr "koliko razmazati barve" + +#. * let's fill the encapsulating widgets +#. preview mode +#. color scheme +#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2258 +#: ../src/views/darkroom.c:2276 ../src/views/darkroom.c:2283 +#: ../src/views/darkroom.c:2293 ../src/views/darkroom.c:2310 +msgid "overexposed" +msgstr "preosvetljeno" + +#: ../src/iop/overexposed.c:123 ../src/iop/overexposed.c:352 +msgid "module overexposed failed in buffer allocation" +msgstr "modul preosvetljenosti ni uspel pri dodeljevanju medpomnilnika" + +#: ../src/iop/overexposed.c:149 ../src/iop/overexposed.c:362 +msgid "module overexposed failed in color conversion" +msgstr "modul preosvetljenosti ni uspel pri pretvarjanju barv" + +#: ../src/iop/primaries.c:74 +#| msgctxt "preferences" +#| msgid "rgb parade" +msgid "rgb primaries" +msgstr "rgb primarni" + +#: ../src/iop/primaries.c:79 +msgid "adjustment of the RGB color primaries for color grading" +msgstr "prilagoditev primarnih barv RGB za barvno razvrščanje" + +#: ../src/iop/primaries.c:395 +msgid "shift red towards yellow or magenta" +msgstr "premik rdeče proti rumeni ali magenti" + +#: ../src/iop/primaries.c:396 +msgid "red primary purity" +msgstr "primarna čistost rdeče" + +#: ../src/iop/primaries.c:397 +msgid "shift green towards cyan or yellow" +msgstr "premik zelene proti cianu ali rumeni" + +#: ../src/iop/primaries.c:398 +msgid "green primary purity" +msgstr "primarna čistost zelene" + +#: ../src/iop/primaries.c:399 +msgid "shift blue towards magenta or cyan" +msgstr "premik modre proti magenti ali cianu" + +#: ../src/iop/primaries.c:400 +msgid "blue primary purity" +msgstr "primarna čistost modre" + +#: ../src/iop/profile_gamma.c:96 +msgid "unbreak input profile" +msgstr "zopet sestavi vhodni profil" + +#: ../src/iop/profile_gamma.c:101 +msgid "correct input color profiles meant to be applied on non-linear RGB" +msgstr "popravi vhodne barvne profile, namenjeni uporabi pri ne-linearnem RGB" + +#: ../src/iop/profile_gamma.c:138 +msgid "16 EV dynamic range (generic)" +msgstr "(generični) dinamični razpon 16 EV" + +#: ../src/iop/profile_gamma.c:144 +msgid "14 EV dynamic range (generic)" +msgstr "(generični) dinamični razpon 14 EV" + +#: ../src/iop/profile_gamma.c:150 +msgid "12 EV dynamic range (generic)" +msgstr "(generični) dinamični razpon 12 EV" + +#: ../src/iop/profile_gamma.c:156 +msgid "10 EV dynamic range (generic)" +msgstr "(generični) dinamični razpon 10 EV" + +#: ../src/iop/profile_gamma.c:162 +msgid "08 EV dynamic range (generic)" +msgstr "(generični) dinamični razpon 08 EV" + +#: ../src/iop/profile_gamma.c:637 +msgid "linear part" +msgstr "linearni del" + +#: ../src/iop/profile_gamma.c:641 +msgid "gamma exponential factor" +msgstr "eksponentni faktor game" + +#: ../src/iop/profile_gamma.c:652 +msgid "adjust to match the average luma of the subject" +msgstr "prilagodi, da ustreza povprečni lumi subjekta" + +#: ../src/iop/profile_gamma.c:658 +msgid "" +"number of stops between middle gray and pure black\n" +"this is a reading a light meter would give you on the scene" +msgstr "" +"število stopenj med srednje sivo in čisto črno\n" +"ta odčitek bi dal tudi svetlomer na sceni" + +#: ../src/iop/profile_gamma.c:664 +msgid "" +"number of stops between pure black and pure white\n" +"this is a reading a light meter would give you on the scene" +msgstr "" +"število stopenj med čisto črno in čisto belo\n" +"ta odčitek bi dal tudi svetlomer na sceni" + +#: ../src/iop/profile_gamma.c:666 +msgctxt "section" +msgid "optimize automatically" +msgstr "avtomatično optimiziraj" + +#: ../src/iop/profile_gamma.c:670 +#| msgid "" +#| "enlarge or shrink the computed dynamic range\n" +#| "this is useful when noise perturbates the measurements" +msgid "" +"increase or decrease the computed dynamic range\n" +"this is useful when noise distorts the measurement" +msgstr "" +"povečaj ali zmanjšaj dinamični razpon\n" +"to je uporabno, kadar šum vpliva na meritve" + +#: ../src/iop/profile_gamma.c:674 +msgid "make an optimization with some guessing" +msgstr "izvedi optimizacijo z nekaj ugibanja" + +#: ../src/iop/profile_gamma.c:683 +msgid "tone mapping method" +msgstr "metoda preslikave tonov" + +#: ../src/iop/rawdenoise.c:138 +msgid "raw denoise" +msgstr "odstranjevanje šuma v surovem" + +#: ../src/iop/rawdenoise.c:143 +msgid "denoise the raw picture early in the pipeline" +msgstr "odstrani šum iz surove slike že zgodaj v cevovodu" + +#: ../src/iop/rawdenoise.c:955 +msgid "" +"raw denoising\n" +"only works for raw images." +msgstr "" +"odstranjevanje šuma\n" +"deluje samo na surovih slikah." + +#. * let's fill the encapsulating widgets +#. mode of operation +#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2226 ../src/views/darkroom.c:2232 +#: ../src/views/darkroom.c:2245 +msgid "raw overexposed" +msgstr "surovo preosvetljeno" + +#: ../src/iop/rawprepare.c:99 +msgctxt "modulename" +msgid "raw black/white point" +msgstr "surova črno/bela točka" + +#: ../src/iop/rawprepare.c:172 +msgid "" +"sets technical specificities of the raw sensor.\n" +"touch with great care!" +msgstr "" +"notranji modul za nastavitev tehničnih posebnosti surovega senzorja.\n" +"tega se dotikajte le z veliko skrbjo!" + +#: ../src/iop/rawprepare.c:184 +msgid "passthrough" +msgstr "direktni prenos" + +#: ../src/iop/rawprepare.c:663 +msgid "invalid crop parameters" +msgstr "neveljavni parametri obrezovanja" + +#: ../src/iop/rawprepare.c:664 +msgid "" +"please reset to defaults, update your preset or set to something correct" +msgstr "" +"ponovno nastavite na privzete vrednosti, posodobite prejšnje prednastavitve " +"ali nekaj pravilno nastavite" + +#: ../src/iop/rawprepare.c:930 +msgid "black level 0" +msgstr "raven črne 0" + +#: ../src/iop/rawprepare.c:931 +msgid "black level 1" +msgstr "raven črne 1" + +#: ../src/iop/rawprepare.c:932 +msgid "black level 2" +msgstr "raven črne 2" + +#: ../src/iop/rawprepare.c:933 +msgid "black level 3" +msgstr "raven črne 3" + +#: ../src/iop/rawprepare.c:960 +msgid "raw flat field correction to compensate for lens shading" +msgstr "korekcija surovega ravnega polja za kompenzacijo senčenja leč" + +#: ../src/iop/rawprepare.c:965 +msgctxt "section" +msgid "crop" +msgstr "obreži" + +#: ../src/iop/rawprepare.c:968 +msgid "crop left border" +msgstr "obreži levi rob" + +#: ../src/iop/rawprepare.c:972 +msgid "crop top border" +msgstr "obreži vrhnji rob" + +#: ../src/iop/rawprepare.c:976 +msgid "crop right border" +msgstr "obreži desni rob" + +#: ../src/iop/rawprepare.c:980 +msgid "crop bottom border" +msgstr "obreži rob dna" + +#: ../src/iop/rawprepare.c:989 +msgid "" +"raw black/white point correction\n" +"only works for the sensors that need it." +msgstr "" +"surovi popravek črne/bele točke\n" +"deluje samo na senzorjih, ki to potrebujejo." + +#: ../src/iop/relight.c:53 +msgid "fill-light 0.25EV with 4 zones" +msgstr "do-osvetljevanje 0.24 EV v 4 conah" + +#: ../src/iop/relight.c:57 +msgid "fill-shadow -0.25EV with 4 zones" +msgstr "do-osvetljevanje senc -0.25 v 4 conah" + +#: ../src/iop/relight.c:86 +msgid "fill light" +msgstr "dopolnilna svetloba" + +#: ../src/iop/relight.c:96 ../src/iop/zonesystem.c:122 +msgid "" +"this module is deprecated. please use the tone equalizer module instead." +msgstr "" +"ta modul je zastarel. namesto tega raje uporabite modul izenačevalnika tonov." + +#: ../src/iop/relight.c:259 +msgid "the fill-light in EV" +msgstr "dopolnilna svetloba v EV" + +#: ../src/iop/relight.c:268 +msgid "" +"select the center of fill-light\n" +"ctrl+click to select an area" +msgstr "" +"izberite center dodatne osvetlitve\n" +"krmilka+klik za izbiro površine" + +#: ../src/iop/relight.c:272 +msgid "toggle tool for picking median lightness in image" +msgstr "preklopno orodje za izbiro mediane svetlosti slike" + +#: ../src/iop/relight.c:276 +msgid "width of fill-light area defined in zones" +msgstr "širina dopolnilne svetlobe določena v conah" + +#: ../src/iop/retouch.c:197 +msgid "retouch" +msgstr "retuširaj" + +#: ../src/iop/retouch.c:202 +msgid "split-frequency|healing|cloning|stamp" +msgstr "razcep-frekvenc|celjenje|kloniranje|žig" + +#: ../src/iop/retouch.c:208 +msgid "remove and clone spots, perform split-frequency skin editing" +msgstr "odstrani in kloniraj pege, izvedi urejanje kože z razcepom frekvenc" + +#: ../src/iop/retouch.c:211 +msgid "geometric and frequential, RGB" +msgstr "geometrijska in frekvenčna, RGB" + +#: ../src/iop/retouch.c:1689 +msgid "cannot display scales when the blending mask is displayed" +msgstr "ne morem prikazati meril, kadar je prikazana maska mešanja" + +#: ../src/iop/retouch.c:2045 ../src/iop/retouch.c:2047 +#: ../src/iop/retouch.c:2049 ../src/iop/retouch.c:2051 +#, c-format +msgid "default tool changed to %s" +msgstr "privzeto orodje spremenjeno na %s" + +#: ../src/iop/retouch.c:2045 +msgid "cloning" +msgstr "kloniranje" + +#: ../src/iop/retouch.c:2047 +msgid "healing" +msgstr "zdravljenje" + +#: ../src/iop/retouch.c:2448 +msgid "shapes:" +msgstr "oblike:" + +#: ../src/iop/retouch.c:2454 +msgid "" +"to add a shape select an algorithm and a shape type and click on the image.\n" +"shapes are added to the current scale" +msgstr "" +"za dodajanje oblike izberite algoritem iz vrst oblike in kliknite na sliko.\n" +"oblike so dodane na trenutna merila" + +#: ../src/iop/retouch.c:2458 ../src/iop/retouch.c:2591 +#: ../src/iop/retouch.c:2597 ../src/iop/retouch.c:2606 +#: ../src/iop/retouch.c:2611 ../src/iop/retouch.c:2619 +#: ../src/iop/retouch.c:2664 +msgid "editing" +msgstr "urejanje" + +#: ../src/iop/retouch.c:2459 +msgid "show and edit shapes on the current scale" +msgstr "prikaži in uredi oblike v trenutnem merilu" + +#: ../src/iop/retouch.c:2460 +msgid "show and edit shapes in restricted mode" +msgstr "prikaži in uredi oblike v omejevalnem načinu" + +#: ../src/iop/retouch.c:2489 +msgid "algorithms:" +msgstr "algoritmi:" + +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2498 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2510 +msgid "tools" +msgstr "orodja" + +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2518 +msgid "activate blur tool" +msgstr "aktiviraj orodje zamegljevanja" + +#: ../src/iop/retouch.c:2493 ../src/iop/retouch.c:2499 +#: ../src/iop/retouch.c:2505 ../src/iop/retouch.c:2511 +msgid "change algorithm for current form" +msgstr "spremeni algoritem za trenutno obliko" + +#: ../src/iop/retouch.c:2498 ../src/iop/retouch.c:2521 +msgid "activate fill tool" +msgstr "aktiviraj orodje polnjenja" + +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2524 +msgid "activate cloning tool" +msgstr "aktiviraj orodje kloniranja" + +#: ../src/iop/retouch.c:2510 ../src/iop/retouch.c:2527 +msgid "activate healing tool" +msgstr "aktiviraj orodje celjenja" + +#. overwrite tooltip ourself to handle shift+click +#: ../src/iop/retouch.c:2516 +msgid "ctrl+click to change tool for current form" +msgstr "krmilka+klik za zamenjavo orodja za trenutno formo" + +#: ../src/iop/retouch.c:2517 +msgid "shift+click to set the tool as default" +msgstr "dvigalka+klik za nastavitev orodja kot privzetega" + +#: ../src/iop/retouch.c:2537 +msgid "scales:" +msgstr "merila:" + +#: ../src/iop/retouch.c:2544 +msgid "current:" +msgstr "trenutni:" + +#: ../src/iop/retouch.c:2551 +msgid "merge from:" +msgstr "zlij skupaj iz:" + +#: ../src/iop/retouch.c:2562 +msgid "" +"top slider adjusts where the merge scales start\n" +"bottom slider adjusts the number of scales\n" +"dot indicates the current scale\n" +"top line indicates that the scale is visible at current zoom level\n" +"bottom line indicates that the scale has shapes on it" +msgstr "" +"drsnik na vrhu prilagodi začetek meril zlivanja\n" +"drsnik na dnu prilagodi število meril\n" +"pika določa trenutno merilo\n" +"vrhnja črta označuje, da je merilo vidno pri trenutni ravni povečave\n" +"spodnja črta označuje, da ima merilo oblike na njemu" + +#: ../src/iop/retouch.c:2591 +msgid "display masks" +msgstr "maske prikaza" + +#: ../src/iop/retouch.c:2597 +msgid "temporarily switch off shapes" +msgstr "začasno izklopi oblike" + +#: ../src/iop/retouch.c:2606 +msgid "paste cut shapes to current scale" +msgstr "prilepi oblike v trenutno merilo" + +#: ../src/iop/retouch.c:2611 +msgid "cut shapes from current scale" +msgstr "izreži oblike iz trenutnega merila" + +#: ../src/iop/retouch.c:2619 +msgid "display wavelet scale" +msgstr "prikaži merilo valov" + +#: ../src/iop/retouch.c:2627 +msgctxt "section" +msgid "preview single scale" +msgstr "predogled posameznega merila" + +#: ../src/iop/retouch.c:2641 +msgid "adjust preview levels" +msgstr "prilagodi nivoje predogleda" + +#: ../src/iop/retouch.c:2664 ../src/iop/rgblevels.c:1106 +msgid "auto levels" +msgstr "avtomatski nivoji" + +#: ../src/iop/retouch.c:2672 +msgid "shape selected:" +msgstr "izbrana oblika:" + +#: ../src/iop/retouch.c:2678 +msgid "" +"click on a shape to select it,\n" +"to unselect click on an empty space" +msgstr "" +"kliknite na obliko za njen izbor.\n" +"za preklic izbora kliknite na prazen prostor" + +#: ../src/iop/retouch.c:2687 +msgid "erase the detail or fills with chosen color" +msgstr "brisi podrobnost ali izpolni z izbrano barvo" + +#: ../src/iop/retouch.c:2697 +msgid "fill color: " +msgstr "barva polnila: " + +#: ../src/iop/retouch.c:2702 ../src/iop/retouch.c:2703 +msgid "select fill color" +msgstr "izberi barvo polnila" + +#: ../src/iop/retouch.c:2713 +msgid "pick fill color from image" +msgstr "izberi barvo polnila iz slike" + +#: ../src/iop/retouch.c:2714 +msgid "pick fill color" +msgstr "poberi barvo polnila" + +#: ../src/iop/retouch.c:2724 +msgid "adjusts color brightness to fine-tune it. works with erase as well" +msgstr "prilagodi sijavost barve za fino toniranje. deluje tudi z brisanjem" + +#: ../src/iop/retouch.c:2730 +msgid "type for the blur algorithm" +msgstr "tip algoritma zamegljevanja" + +#: ../src/iop/retouch.c:2734 +msgid "radius of the selected blur type" +msgstr "radij izbranega tipa zamegljevanja" + +#: ../src/iop/retouch.c:2741 +msgid "set the opacity on the selected shape" +msgstr "določi neprosojnost izbrane oblike" + +#: ../src/iop/retouch.c:2748 +msgctxt "section" +msgid "retouch tools" +msgstr "orodja retuširanja" + +#. wavelet decompose +#: ../src/iop/retouch.c:2757 +msgctxt "section" +msgid "wavelet decompose" +msgstr "dekompozicija valovanja" + +#. shapes +#: ../src/iop/retouch.c:2771 +msgctxt "section" +msgid "shapes" +msgstr "oblike" + +#: ../src/iop/retouch.c:3986 ../src/iop/retouch.c:4956 +#, c-format +msgid "max scale is %i for this image size" +msgstr "max merilo je %i te velikosti slike" + +#: ../src/iop/rgbcurve.c:122 +msgid "rgb curve" +msgstr "krivulja rgb" + +#: ../src/iop/rgbcurve.c:144 +msgid "alter an image’s tones using curves in RGB color space" +msgstr "spremeni tone slike s pomočjo krivulj v barvnem prostoru RGB" + +#: ../src/iop/rgbcurve.c:195 ../src/iop/tonecurve.c:569 +msgid "gamma 1.0 (linear)" +msgstr "gama 1.0 (linearna)" + +#: ../src/iop/rgbcurve.c:205 ../src/iop/tonecurve.c:579 +msgid "contrast - med (linear)" +msgstr "kontrast - med (linearni)" + +#: ../src/iop/rgbcurve.c:214 ../src/iop/tonecurve.c:588 +msgid "contrast - high (linear)" +msgstr "kontrast - visoki (linearni)" + +#: ../src/iop/rgbcurve.c:228 ../src/iop/tonecurve.c:600 +msgid "contrast - med (gamma 2.2)" +msgstr "kontrast - med (gama 2.2)" + +#: ../src/iop/rgbcurve.c:241 ../src/iop/tonecurve.c:611 +msgid "contrast - high (gamma 2.2)" +msgstr "kontrast - visoki (gama 2.2)" + +#: ../src/iop/rgbcurve.c:254 ../src/iop/tonecurve.c:624 +msgid "gamma 2.0" +msgstr "gama 2.0" + +#: ../src/iop/rgbcurve.c:260 ../src/iop/tonecurve.c:630 +msgid "gamma 0.5" +msgstr "gama 0.5" + +#: ../src/iop/rgbcurve.c:265 ../src/iop/tonecurve.c:635 +msgid "logarithm (base 2)" +msgstr "logaritem (osnova 2)" + +#: ../src/iop/rgbcurve.c:270 ../src/iop/tonecurve.c:640 +msgid "exponential (base 2)" +msgstr "eksponentno (osnova 2)" + +#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:1038 +msgid "choose between linked and independent channels." +msgstr "izberite med povezanimi in neodvisnimi kanali." + +#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1043 +msgid "curve nodes for r channel" +msgstr "vozli krivulje za r kanal" + +#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1044 +msgid "curve nodes for g channel" +msgstr "vozli krivulje za kanal G" + +#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1045 +msgid "curve nodes for b channel" +msgstr "vozli krivulje za B kanal" + +#: ../src/iop/rgblevels.c:102 +msgid "rgb levels" +msgstr "nivoji rgb" + +#: ../src/iop/rgblevels.c:124 +msgid "adjust black, white and mid-gray points in RGB color space" +msgstr "prilagodi črne, bele in srednje sive točke v barvnem prostoru RGB" + +#: ../src/iop/rgblevels.c:1112 +msgid "auto region" +msgstr "avtomatično področje" + +#: ../src/iop/rgblevels.c:1115 +msgid "" +"apply auto levels based on a region defined by the user\n" +"click and drag to draw the area\n" +"right click to cancel" +msgstr "" +"uporabi avtomatske nivoje glede na območje, ki ga je določil uporabnik\n" +"klikni in povleci za določitev območja\n" +"desni klik za preklic" + +#: ../src/iop/rotatepixels.c:70 +msgctxt "modulename" +msgid "rotate pixels" +msgstr "sukanje pikslov" + +#: ../src/iop/rotatepixels.c:99 ../src/iop/scalepixels.c:84 +msgid "" +"internal module to setup technical specificities of raw sensor.\n" +"\n" +"you should not touch values here!" +msgstr "" +"notranji modul za nastavitev tehničnih posebnosti surovega senzorja.\n" +"\n" +"ne bi se smeli dotikati vrednosti tukaj!" + +#: ../src/iop/rotatepixels.c:381 +msgid "automatic pixel rotation" +msgstr "avtomatično sukanje pikslov" + +#: ../src/iop/rotatepixels.c:382 +msgid "" +"automatic pixel rotation\n" +"only works for the sensors that need it." +msgstr "" +"avtomatično sukanje pikslov\n" +"deluje samo za senzorje, ki to potrebujejo." + +#: ../src/iop/scalepixels.c:55 +msgctxt "modulename" +msgid "scale pixels" +msgstr "spreminjanje merila pikslov" + +#: ../src/iop/scalepixels.c:281 +msgid "automatic pixel scaling" +msgstr "avtomatična sprememba merila pikslov" + +#: ../src/iop/scalepixels.c:282 +msgid "" +"automatic pixel scaling\n" +"only works for the sensors that need it." +msgstr "" +"avtomatska sprememba merila pikslov\n" +"deluje samo za senzorje, ki to potrebujejo." + +#: ../src/iop/shadhi.c:120 +msgid "shadows and highlights" +msgstr "sence in bleščave" + +#: ../src/iop/shadhi.c:142 +msgid "" +"modify the tonal range of the shadows and highlights\n" +"of an image by enhancing local contrast." +msgstr "" +"spremeni razpon tonov senc in bleščav\n" +"slike s povečanjem lokalnega kontrasta." + +#: ../src/iop/shadhi.c:711 ../src/iop/splittoning.c:544 +msgid "compress" +msgstr "stisni" + +#: ../src/iop/shadhi.c:718 +msgid "correct shadows" +msgstr "popravek senc" + +#: ../src/iop/shadhi.c:719 +msgid "correct highlights" +msgstr "popravek bleščav" + +#: ../src/iop/shadhi.c:720 +msgid "shift white point" +msgstr "premik točke beline" + +#: ../src/iop/shadhi.c:722 +msgid "filter to use for softening. bilateral avoids halos" +msgstr "filter za mehčanje. bilateralna raba se izogne odsevom" + +#: ../src/iop/shadhi.c:723 +msgid "" +"compress the effect on shadows/highlights and\n" +"preserve mid-tones" +msgstr "" +"stisni učinke na sencah/bleščavah in\n" +"ohrani srednje tone" + +#: ../src/iop/shadhi.c:724 +msgid "adjust saturation of shadows" +msgstr "prilagodi nasičenost senc" + +#: ../src/iop/shadhi.c:725 +msgid "adjust saturation of highlights" +msgstr "prilagodi nasičenost bleščav" + +#: ../src/iop/sharpen.c:73 +msgctxt "modulename" +msgid "sharpen" +msgstr "naostri" + +#: ../src/iop/sharpen.c:95 +msgid "sharpen the details in the image using a standard UnSharp Mask (USM)" +msgstr "izostri podrobnosti na sliki s standardno masko razostritve (USM)" + +#: ../src/iop/sharpen.c:97 +msgid "linear or non-linear, Lab, display or scene-referred" +msgstr "linearno ali ne-linearno, Lab, glede na zaslon ali sceno" + +#: ../src/iop/sharpen.c:99 +msgid "quasi-linear, Lab, display or scene-referred" +msgstr "kvazi-linearno, Lab, glede na zaslon ali sceno" + +#. add the preset. +#. restrict to raw images +#: ../src/iop/sharpen.c:106 ../src/iop/sharpen.c:110 +msgid "sharpen" +msgstr "naostri" + +#: ../src/iop/sharpen.c:438 +msgid "spatial extent of the unblurring" +msgstr "prostorski učinek odstranjevanja zamegljenosti" + +#: ../src/iop/sharpen.c:442 +msgid "strength of the sharpen" +msgstr "moč ostrenja" + +#: ../src/iop/sharpen.c:446 +msgid "threshold to activate sharpen" +msgstr "prag za aktiviranje ostrenja" + +#: ../src/iop/sigmoid.c:195 +msgid "sigmoid" +msgstr "sigmoid" + +#: ../src/iop/sigmoid.c:200 +msgid "tone mapping|view transform|display transform" +msgstr "preslikava tonov|pogled preoblikovanja|prikaz preoblikovanja" + +#: ../src/iop/sigmoid.c:206 +msgid "" +"apply a view transform to make a image displayable\n" +"on a screen or print. uses a robust and smooth\n" +"tone curve with optional color preservation methods." +msgstr "" +"uporabi pretvorbo pogleda, da naredi omogoči prikaz slike\n" +"na zaslonu ali v tisku. uporablja robustno in gladko\n" +"krivuljo tonov z izbirnimi metodami ohranjanja barv." + +#: ../src/iop/sigmoid.c:258 +msgid "neutral gray" +msgstr "nevtralno siva" + +#: ../src/iop/sigmoid.c:264 +msgid "ACES 100-nit like" +msgstr "kot ACES 100-" + +#: ../src/iop/sigmoid.c:270 +msgid "Reinhard" +msgstr "Reinhard" + +#: ../src/iop/sigmoid.c:917 +msgid "" +"compression of the applied curve\n" +"implicitly defines the supported input dynamic range" +msgstr "" +"stiskanje uporabljene krivulje\n" +"implicitno definira podprti vhodni dinamični razpon" + +#: ../src/iop/sigmoid.c:920 +msgid "" +"shift the compression towards shadows or highlights.\n" +"negative values increase contrast in shadows.\n" +"positive values increase contrast in highlights.\n" +"the opposite end will see a reduction in contrast." +msgstr "" +"premakni stiskanje proti sencam ali bleščavah.\n" +"negativne vrednosti povečajo kontrast v senci.\n" +"pozitivne vrednosti povečajo kontrast v bleščavah.\n" +"na nasprotnem koncu boste videli znižanje kontrasta." + +#: ../src/iop/sigmoid.c:929 +msgid "" +"optional correction of the hue twist introduced by\n" +"the per-channel processing method." +msgstr "" +"neobvezna korekcija zasuka odtenka, ki ga je uvedla\n" +"metoda obdelave po kanalu." + +#: ../src/iop/sigmoid.c:936 ../src/iop/sigmoid.c:940 +msgid "primaries" +msgstr "primarni" + +#: ../src/iop/sigmoid.c:937 +#| msgid "set the custom aspect ratio" +msgid "set custom primaries" +msgstr "nastavi primarne po meri" + +#: ../src/iop/sigmoid.c:943 +msgid "primaries to use as the base for below adjustments" +msgstr "primarne vrednosti za uporabo kot osnovo za prilagoditve spodaj" + +#: ../src/iop/sigmoid.c:962 +#| msgid "set the opacity of the blending" +msgid "attenuate the purity of the red primary" +msgstr "oslabi čistost rdeče primarne barve" + +#: ../src/iop/sigmoid.c:963 +msgid "rotate the red primary" +msgstr "zavrti primarno rdečo" + +#: ../src/iop/sigmoid.c:964 +#| msgid "set the opacity of the blending" +msgid "attenuate the purity of the green primary" +msgstr "oslabi čistost zelene primarne barve" + +#: ../src/iop/sigmoid.c:965 +msgid "rotate the green primary" +msgstr "zavrti primarno zeleno" + +#: ../src/iop/sigmoid.c:966 +#| msgid "set the opacity of the blending" +msgid "attenuate the purity of the blue primary" +msgstr "oslabi čistost modre primarne barve" + +#: ../src/iop/sigmoid.c:967 +msgid "rotate the blue primary" +msgstr "zavrti primarno modro" + +#: ../src/iop/sigmoid.c:974 +msgid "recover some of the original purity after the inset" +msgstr "povrni nekaj prvotne čistosti po vstavku" + +#: ../src/iop/sigmoid.c:978 +msgid "display luminance" +msgstr "prikaži svetlost" + +#: ../src/iop/sigmoid.c:979 +msgid "set display black/white targets" +msgstr "nastavi črno/bele cilje zaslona" + +#: ../src/iop/sigmoid.c:987 +msgid "" +"the black luminance of the target display or print.\n" +"can be used creatively for a faded look." +msgstr "" +"črna svetlost ciljnega prikaza ali tiska\n" +"lahko kreativno uporabite za zbledel videz." + +#: ../src/iop/sigmoid.c:992 +msgid "" +"the white luminance of the target display or print.\n" +"can be used creatively for a faded look or blowing out whites earlier." +msgstr "" +"bela svetlost ciljnega zaslona ali tiska.\n" +"lahko kreativno uporabite za zbledel videz ali da že prej odstranite beline." + +#: ../src/iop/soften.c:80 +msgid "soften" +msgstr "zmehčaj" + +#: ../src/iop/soften.c:102 +msgid "create a softened image using the Orton effect" +msgstr "ustvari zmehčano sliko z uporabo Ortonovega učinka" + +#: ../src/iop/soften.c:366 +msgid "the size of blur" +msgstr "velikost zamegljevanja" + +#: ../src/iop/soften.c:370 +msgid "the saturation of blur" +msgstr "nasičenje zamegljenosti" + +#: ../src/iop/soften.c:374 +msgid "the brightness of blur" +msgstr "sijavost zamegljenosti" + +#: ../src/iop/soften.c:378 +msgid "the mix of effect" +msgstr "mešanica učinkov" + +#: ../src/iop/splittoning.c:81 +msgid "split-toning" +msgstr "razcepljanje odtenkov" + +#: ../src/iop/splittoning.c:103 +msgid "" +"use two specific colors for shadows and highlights and\n" +"create a linear toning effect between them up to a pivot." +msgstr "" +"uporabi dve posebni barvi za sence in bleščave in\n" +"ustvari linearni tonski učinek med njima do vrtišča." + +#: ../src/iop/splittoning.c:120 +msgid "authentic sepia" +msgstr "izvirna sepia" + +#: ../src/iop/splittoning.c:129 +msgid "authentic cyanotype" +msgstr "izvirna cianotipija" + +#: ../src/iop/splittoning.c:138 +msgid "authentic platinotype" +msgstr "izvirna platinotipija" + +#: ../src/iop/splittoning.c:147 +msgid "chocolate brown" +msgstr "čokoladno rjava" + +#: ../src/iop/splittoning.c:486 +msgid "select the saturation tone" +msgstr "izberi ton nasičenja" + +#: ../src/iop/splittoning.c:490 +msgid "select tone color" +msgstr "izberi barvni ton" + +#: ../src/iop/splittoning.c:520 +msgctxt "section" +msgid "shadows" +msgstr "sence" + +#: ../src/iop/splittoning.c:526 +msgctxt "section" +msgid "highlights" +msgstr "bleščave" + +#: ../src/iop/splittoning.c:535 +msgid "balance" +msgstr "ravnotežje" + +#: ../src/iop/splittoning.c:542 +msgid "the balance of center of split-toning" +msgstr "ravnotežje centra razcepljanja odtenkov" + +#: ../src/iop/splittoning.c:546 +msgid "" +"compress the effect on highlights/shadows and\n" +"preserve mid-tones" +msgstr "" +"stisni učinek na bleščavah/sencah in\n" +"ohrani srednje tone" + +#: ../src/iop/spots.c:58 +msgid "spot removal" +msgstr "odstranjevanje pik" + +#: ../src/iop/spots.c:63 +msgid "this module is deprecated. please use the retouch module instead." +msgstr "ta modul je zastarel. namesto tega raje uporabite modul retuširanja." + +#: ../src/iop/spots.c:68 +msgid "remove sensor dust spots" +msgstr "odstrani pike zaradi prahu na senzorju" + +#: ../src/iop/spots.c:71 +msgid "geometric, raw" +msgstr "geometrijsko, surovo" + +#: ../src/iop/spots.c:238 +msgid "spot module is limited to 64 shapes. please add a new instance!" +msgstr "modul točk je omejen na 64 oblik. dodajte nov pojavek!" + +#: ../src/iop/spots.c:874 +msgid "number of strokes:" +msgstr "število potez:" + +#: ../src/iop/spots.c:878 +msgid "" +"click on a shape and drag on canvas.\n" +"use the mouse wheel to adjust size.\n" +"right click to remove a shape." +msgstr "" +"kliknite na obliko in jo povlecite na platno.\n" +"uporabite miškin kolešček za prilagoditev velikosti.\n" +"desni gumb za odstranitev oblike." + +#: ../src/iop/spots.c:881 +msgid "show and edit shapes" +msgstr "prikaži in uredi oblike" + +#: ../src/iop/temperature.c:212 +msgctxt "modulename" +msgid "white balance" +msgstr "ravnotežje beline" + +#: ../src/iop/temperature.c:219 +msgid "scale raw RGB channels to balance white and help demosaicing" +msgstr "" +"prilagodi surove kanale RGB za uravnoteženje beline in pomoč pri " +"odstranjevanju mozaičnosti" + +#: ../src/iop/temperature.c:1388 +#, c-format +msgid "`%s' color matrix not found for image" +msgstr "`%s' matrike barv za sliko ne najdem" + +#: ../src/iop/temperature.c:1418 +#, c-format +msgid "failed to read camera white balance information from `%s'!" +msgstr "iz kamere nisem uspel prebrati podatkov o ravnotežju beline iz '%s'!" + +#: ../src/iop/temperature.c:1612 +msgctxt "white balance" +msgid "as shot" +msgstr "kot posneto" + +#. old "spot", reason: describes exactly what'll happen +#: ../src/iop/temperature.c:1615 +msgctxt "white balance" +msgid "from image area" +msgstr "iz področja slike" + +#: ../src/iop/temperature.c:1616 +msgctxt "white balance" +msgid "user modified" +msgstr "uporabnikove spremembe" + +#. old "camera neutral", reason: better matches intent +#: ../src/iop/temperature.c:1618 +msgctxt "white balance" +msgid "camera reference" +msgstr "glede na kamero" + +#: ../src/iop/temperature.c:1897 ../src/iop/temperature.c:1915 +msgid "green channel coefficient" +msgstr "koeficient zelenega kanala" + +#: ../src/iop/temperature.c:1899 +msgid "magenta channel coefficient" +msgstr "koeficient kanala magente" + +#: ../src/iop/temperature.c:1901 +msgid "cyan channel coefficient" +msgstr "koeficient kanala ciana" + +#: ../src/iop/temperature.c:1903 +msgid "yellow channel coefficient" +msgstr "koeficient rumenega kanala" + +#: ../src/iop/temperature.c:1913 +msgid "red channel coefficient" +msgstr "koeficient rdečega kanala" + +#: ../src/iop/temperature.c:1917 +msgid "blue channel coefficient" +msgstr "koeficient modrega kanala" + +#: ../src/iop/temperature.c:1918 +msgid "emerald" +msgstr "smaragdna" + +#: ../src/iop/temperature.c:1919 +msgid "emerald channel coefficient" +msgstr "koeficient smaragdnega kanala" + +#. relabel to settings to remove confusion between module presets +#. and white balance settings +#: ../src/iop/temperature.c:1997 ../src/iop/temperature.c:2010 +#: ../src/iop/temperature.c:2017 ../src/iop/temperature.c:2023 +#: ../src/iop/temperature.c:2042 +msgid "settings" +msgstr "nastavitve" + +#: ../src/iop/temperature.c:1997 +msgid "as shot" +msgstr "kot posnetek" + +#: ../src/iop/temperature.c:2000 +msgid "set white balance to as shot" +msgstr "nastavitev beline kot na posnetku" + +#: ../src/iop/temperature.c:2010 +msgid "from image area" +msgstr "iz območja slike" + +#: ../src/iop/temperature.c:2017 +msgid "user modified" +msgstr "uporabnikove spremembe" + +#: ../src/iop/temperature.c:2020 +msgid "set white balance to user modified" +msgstr "nastavitve ravnotežje beline na uporabnikove spremembe" + +#: ../src/iop/temperature.c:2023 +msgid "camera reference" +msgstr "glede na kamero" + +#: ../src/iop/temperature.c:2028 +msgid "" +"set white balance to camera reference point\n" +"in most cases it should be D65" +msgstr "" +"nastavi ravnovesje beline na referenčno točko kamere\n" +"v večini primerov bi morala biti D65" + +#: ../src/iop/temperature.c:2043 +msgid "choose white balance setting" +msgstr "izberi nastavitev ravnotežja beline" + +#: ../src/iop/temperature.c:2048 +msgid "finetune" +msgstr "natančno prilagajanje" + +#: ../src/iop/temperature.c:2050 +msgid "fine tune camera's white balance setting" +msgstr "natančno nastavljanje uravnoteženja beline kamere" + +#: ../src/iop/temperature.c:2058 +msgctxt "section" +msgid "scene illuminant temp" +msgstr "temperatura osvetljevalnika scene" + +#: ../src/iop/temperature.c:2059 +msgid "click to cycle color mode on sliders" +msgstr "kliknite za kroženje barvnih načinov na drsnikih" + +#: ../src/iop/temperature.c:2073 +msgid "color temperature (in Kelvin)" +msgstr "barvna temperatura (v Kelvinih)" + +#: ../src/iop/temperature.c:2079 +msgid "tint" +msgstr "odtenek" + +#: ../src/iop/temperature.c:2082 +msgid "color tint of the image, from magenta (value < 1) to green (value > 1)" +msgstr "barvni odtenek slike, od magente (vrednost <1) do zelene (vrednost> 1)" + +#: ../src/iop/temperature.c:2088 +msgid "channel coefficients" +msgstr "koeficienti kanalov" + +#: ../src/iop/temperature.c:2097 +#| msgid "previous" +msgid "various" +msgstr "različno" + +#: ../src/iop/temperature.c:2123 +msgid "white balance disabled for camera" +msgstr "uravnoteženje beline na kameri izklopljeno" + +#: ../src/iop/tonecurve.c:161 +msgid "tone curve" +msgstr "krivulja tonov" + +#: ../src/iop/tonecurve.c:183 +msgid "alter an image’s tones using curves" +msgstr "spremeni tone slike s pomočjo krivulj" + +#: ../src/iop/tonecurve.c:1147 +msgid "" +"if set to auto, a and b curves have no effect and are not displayed. chroma " +"values (a and b) of each pixel are then adjusted based on L curve data. auto " +"XYZ is similar but applies the saturation changes in XYZ space." +msgstr "" +"če je nastavljeno na avto, potem krivulji a in b nimata vpliva in nista " +"prikazani. vrednosti krome (a in b) vsakega piksla sta prilagojeni glede na " +"krivuljo L. avto XYZ deluje podobno, a se nanaša na nasičenost v prostoru " +"XYZ." + +#: ../src/iop/tonecurve.c:1156 +msgid "tonecurve for L channel" +msgstr "krivulja tonov za kanal L" + +#: ../src/iop/tonecurve.c:1157 +msgid "tonecurve for a channel" +msgstr "krivulja tonov za kanal a" + +#: ../src/iop/tonecurve.c:1158 +msgid "tonecurve for b channel" +msgstr "krivulja tonov za kanal b" + +#: ../src/iop/tonecurve.c:1165 ../src/iop/watermark.c:1353 +#: ../src/libs/colorpicker.c:675 +msgid "pick color" +msgstr "izberi barvo" + +#: ../src/iop/toneequal.c:319 +msgid "tone equalizer" +msgstr "izenačevalnik tonov" + +#: ../src/iop/toneequal.c:324 +msgid "tone curve|tone mapping|relight|background light|shadows highlights" +msgstr "" +"krivulja tonov|preslikava tonov|ponovna osvetljava|svetloba v ozadju|" +"bleščave v senci" + +#: ../src/iop/toneequal.c:331 +msgid "relight the scene as if the lighting was done directly on the scene" +msgstr "" +"ponovno osvetli sceno, kot da bi osvetlitev potekala neposredno na sceni" + +#: ../src/iop/toneequal.c:334 +msgid "quasi-linear, RGB" +msgstr "kvazi-linearna, RGB" + +#: ../src/iop/toneequal.c:335 +msgid "quasi-linear, RGB, scene-referred" +msgstr "kvazi-linearni, RGB, glede na sceno" + +#: ../src/iop/toneequal.c:489 +msgid "simple tone curve" +msgstr "preprosta krivulja tonov" + +#: ../src/iop/toneequal.c:503 +msgid "mask blending: all purposes" +msgstr "mešanje mask : vsi nameni" + +#: ../src/iop/toneequal.c:510 +msgid "mask blending: people with backlight" +msgstr "mešanje mask : osebe osvetljene od zadaj" + +#: ../src/iop/toneequal.c:527 +msgid "compress shadows/highlights (EIGF): strong" +msgstr "stiskanje senc/bleščav (EIGF) : močno" + +#: ../src/iop/toneequal.c:532 +msgid "compress shadows/highlights (GF): strong" +msgstr "stiskanje senc/bleščav (GF) : močno" + +#: ../src/iop/toneequal.c:541 +msgid "compress shadows/highlights (EIGF): medium" +msgstr "stiskanje senc/bleščav (EIGF): srednje" + +#: ../src/iop/toneequal.c:546 +msgid "compress shadows/highlights (GF): medium" +msgstr "stiskanje senc/bleščav (GF): srednje" + +#: ../src/iop/toneequal.c:555 +msgid "compress shadows/highlights (EIGF): soft" +msgstr "stiskanje senc/bleščav (EIGF): mehko" + +#: ../src/iop/toneequal.c:560 +msgid "compress shadows/highlights (GF): soft" +msgstr "stiskanje senc/bleščav (GF): mehko" + +#: ../src/iop/toneequal.c:568 +msgid "contrast tone curve: soft" +msgstr "krivulja kontrastnih tonov: mehka" + +#: ../src/iop/toneequal.c:573 +msgid "contrast tone curve: medium" +msgstr "krivulja kontrastnih tonov: srednja" + +#: ../src/iop/toneequal.c:578 +msgid "contrast tone curve: strong" +msgstr "krivulja kontrastnih tonov: močna" + +#: ../src/iop/toneequal.c:601 +msgid "relight: fill-in" +msgstr "ponovna osvetljava: doosvetlitev" + +#: ../src/iop/toneequal.c:1120 +msgid "tone equalizer failed to allocate memory, check your RAM settings" +msgstr "" +"izenačevalnik tonov ni uspel pridobiti dovolj pomnilnika, preverite " +"nastavitve za RAM" + +#: ../src/iop/toneequal.c:1825 ../src/iop/toneequal.c:2196 +msgid "the interpolation is unstable, decrease the curve smoothing" +msgstr "interpolacija ni stabilna, zmanjšajte glajenje krivulje" + +#: ../src/iop/toneequal.c:1860 ../src/iop/toneequal.c:1927 +msgid "wait for the preview to finish recomputing" +msgstr "počakajte za predogled, da končam ponovni izračun" + +#: ../src/iop/toneequal.c:2069 ../src/iop/toneequal.c:2628 +msgid "" +"scroll over image to change tone exposure\n" +"shift+scroll for large steps; ctrl+scroll for small steps" +msgstr "" +"podrsajte preko slike za spremembo tona osvetlitve\n" +"dvigalka+drsanje v velikih korakih; krmilka+drsanje v majhnih korakih" + +#: ../src/iop/toneequal.c:2201 +msgid "some parameters are out-of-bounds" +msgstr "nekaj parametrov je izven meja" + +#: ../src/iop/toneequal.c:2518 +#, c-format +msgid "%+.1f EV" +msgstr "%+.1f EV" + +#: ../src/iop/toneequal.c:3283 +#, c-format +msgid "[%s over image] change tone exposure" +msgstr "[%s prek slike] spremeni ton osvetlitve" + +#: ../src/iop/toneequal.c:3286 +#, c-format +msgid "[%s over image] change tone exposure in large steps" +msgstr "[%s nad sliko] spremeni osvetlitev tonov v velikih korakih" + +#: ../src/iop/toneequal.c:3289 +#, c-format +msgid "[%s over image] change tone exposure in small steps" +msgstr "[%s nad sliko] spremeni osvetlitev tonov v majhnih korakih" + +#. Simple view +#: ../src/iop/toneequal.c:3376 ../src/iop/toneequal.c:3405 +#: ../src/iop/toneequal.c:3406 ../src/iop/toneequal.c:3407 +#: ../src/iop/toneequal.c:3408 ../src/iop/toneequal.c:3409 +#: ../src/iop/toneequal.c:3410 ../src/iop/toneequal.c:3411 +#: ../src/iop/toneequal.c:3412 ../src/iop/toneequal.c:3413 +msgid "simple" +msgstr "enostavno" + +#: ../src/iop/toneequal.c:3405 +msgid "-8 EV" +msgstr "-8 EV" + +#: ../src/iop/toneequal.c:3406 +msgid "-7 EV" +msgstr "-7 EV" + +#: ../src/iop/toneequal.c:3407 +msgid "-6 EV" +msgstr "-6 EV" + +#: ../src/iop/toneequal.c:3408 +msgid "-5 EV" +msgstr "-5 EV" + +#: ../src/iop/toneequal.c:3409 +msgid "-4 EV" +msgstr "-4 EV" + +#: ../src/iop/toneequal.c:3410 +msgid "-3 EV" +msgstr "-3 EV" + +#: ../src/iop/toneequal.c:3411 +msgid "-2 EV" +msgstr "-2 EV" + +#: ../src/iop/toneequal.c:3412 +msgid "-1 EV" +msgstr "-1 EV" + +#: ../src/iop/toneequal.c:3413 +msgid "+0 EV" +msgstr "+0 EV" + +#. Advanced view +#: ../src/iop/toneequal.c:3417 +msgid "advanced" +msgstr "napredno" + +#: ../src/iop/toneequal.c:3444 +msgid "double-click to reset the curve" +msgstr "dvojni klik za ponovno nastavitev krivulje" + +#: ../src/iop/toneequal.c:3448 +msgid "curve smoothing" +msgstr "glajenje krivulje" + +#: ../src/iop/toneequal.c:3451 +msgid "" +"positive values will produce more progressive tone transitions\n" +"but the curve might become oscillatory in some settings.\n" +"negative values will avoid oscillations and behave more robustly\n" +"but may produce brutal tone transitions and damage local contrast." +msgstr "" +"pozitivne vrednosti bodo imele za posledico močnejše spremembe tonov\n" +"toda krivulja lahko pri nekaterih nastavitvah oscilira.\n" +"negativne vrednosti se izogibajo oscilacijam in se obnašajo bolj robustno\n" +"a lahko privedejo do brutalnih sprememb tonov in škodijo lokalnemu kontrastu." + +#. Masking options +#: ../src/iop/toneequal.c:3461 +msgid "masking" +msgstr "maskirano" + +#: ../src/iop/toneequal.c:3466 +msgid "" +"preview the mask and chose the estimator that gives you the\n" +"higher contrast between areas to dodge and areas to burn" +msgstr "" +"predogled maske in izbira ocenjevalca, ki vam daje\n" +"večji kontrast med območji za potemnjevanje in območji za dodatno " +"osvetljevanje" + +#: ../src/iop/toneequal.c:3469 +msgid "details" +msgstr "podrobnosti" + +#: ../src/iop/toneequal.c:3470 +msgid "preserve details" +msgstr "ohrani podrobnosti" + +#: ../src/iop/toneequal.c:3473 +msgid "" +"'no' affects global and local contrast (safe if you only add contrast)\n" +"'guided filter' only affects global contrast and tries to preserve local " +"contrast\n" +"'averaged guided filter' is a geometric mean of 'no' and 'guided filter' " +"methods\n" +"'EIGF' (exposure-independent guided filter) is a guided filter that is " +"exposure-independent, it smooths shadows and highlights the same way " +"(contrary to guided filter which smooths less the highlights)\n" +"'averaged EIGF' is a geometric mean of 'no' and 'exposure-independent guided " +"filter' methods" +msgstr "" +"'ne' vpliva na globalni in lokalni kontrast (varno, če dodate samo " +"kontrast)\n" +"'vodeni filter' vpliva samo na globalni kontrast in poskuša ohraniti lokalni " +"kontrast\n" +"'povprečni vodeni filter' je geometrično povprečje metode 'ne' in 'vodenega " +"filtra'\n" +"'EIGF' (angl. exposure-independent guided filter - od osvetlitve neodvisni " +"vodeni filter) je vodeni filter, ki je neodvisen od osvetlitve, na enak " +"način gladi sence in bleščave (v nasprotju z vodenim filtrom, ki manj gladi " +"bleščave)\n" +"'povprečeni EIGF' je geometrično povprečje metode 'ne' in 'od osvetlitve " +"neodvisnega vodenega filtra'" + +#: ../src/iop/toneequal.c:3486 +msgid "" +"number of passes of guided filter to apply\n" +"helps diffusing the edges of the filter at the expense of speed" +msgstr "" +"število prehodov vodenega filtra\n" +"pomaga pri difuziji robov na račun hitrosti" + +#: ../src/iop/toneequal.c:3494 +msgid "" +"diameter of the blur in percent of the largest image size\n" +"warning: big values of this parameter can make the darkroom\n" +"preview much slower if denoise profiled is used." +msgstr "" +"premer zamegljevanja v deležu velikosti največje slike\n" +"opozorilo: velike vrednosti tega parametra bodo povzročile v programu,\n" +"da bo predogled mnogo počasnejši, če je uporabljen profil odstranjevanja " +"šuma." + +#: ../src/iop/toneequal.c:3502 +msgid "" +"precision of the feathering:\n" +"higher values force the mask to follow edges more closely\n" +"but may void the effect of the smoothing\n" +"lower values give smoother gradients and better smoothing\n" +"but may lead to inaccurate edges taping and halos" +msgstr "" +"natančnost mehčanja s perjem:\n" +"višje vrednosti silijo masko, da bolj natančno sledi robovom\n" +"vendar lahko izniči učinek glajenja\n" +"nižje vrednosti dajejo bolj gladke naklone in boljše glajenje\n" +"vendar lahko privedejo do nenatančnega stikanja robov in halo efektov" + +#: ../src/iop/toneequal.c:3509 +msgctxt "section" +msgid "mask post-processing" +msgstr "naknadna obdelava po maski" + +#: ../src/iop/toneequal.c:3520 +msgid "" +"mask histogram span between the first and last deciles.\n" +"the central line shows the average. orange bars appear at extrema if " +"clipping occurs." +msgstr "" +"maskiranje obsega histograma med prvim in zadnjim decilom.\n" +"osrednja krivulja prikazuje povprečje, oranžen stolpec se prikaže ob " +"skrajnih vrednostih, če pride do obrezovanja." + +#: ../src/iop/toneequal.c:3528 +msgid "" +"0 disables the quantization.\n" +"higher values posterize the luminance mask to help the guiding\n" +"produce piece-wise smooth areas when using high feathering values" +msgstr "" +"0 onemogoči kvantizacijo.\n" +"višje vrednosti posterizirajo masko svetlosti in pomagajo voditi\n" +"izdelavo mestoma gladkih območij, kadar uporabljamo visoke vrednosti " +"mehčanja s peresi" + +#: ../src/iop/toneequal.c:3537 +msgid "" +"use this to slide the mask average exposure along channels\n" +"for a better control of the exposure correction with the available nodes.\n" +"the magic wand will auto-adjust the average exposure" +msgstr "" +"uporabite to, da pomaknete povprečno osvetlitev maske po kanalih\n" +"za boljši nadzor popravkov osvetlitve pri danih točkah.\n" +"čarobna paličica bo samodejno prilagodila povprečno osvetlitev" + +#: ../src/iop/toneequal.c:3550 +msgid "" +"use this to counter the averaging effect of the guided filter\n" +"and dilate the mask contrast around -4EV\n" +"this allows to spread the exposure histogram over more channels\n" +"for a better control of the exposure correction.\n" +"the magic wand will auto-adjust the contrast" +msgstr "" +"uporabite to za zmanjševanje povprečevalnega učinka vodenega filtra\n" +"in za razširitev kontrasta maske okoli -4EV\n" +"to omogoča širjenje histograma osvetlitve po več kanalih\n" +"za boljši nadzor korekcije osvetlitve.\n" +"čarobna paličica bo samodejno prilagodila kontrast" + +#: ../src/iop/toneequal.c:3573 ../src/iop/toneequal.c:3576 +msgid "display exposure mask" +msgstr "maska osvetljenosti zaslona" + +#: ../src/iop/tonemap.cc:71 +msgid "tone mapping" +msgstr "preslikave tonov" + +#: ../src/iop/tonemap.cc:87 +msgid "" +"this module is deprecated. please use the local contrast or tone equalizer " +"module instead." +msgstr "" +"ta modul je zastarel. namesto tega raje uporabite modul lokalnega kontrasta " +"ali izenačevalnika tonov." + +#: ../src/iop/velvia.c:70 +msgid "velvia" +msgstr "velvia" + +#: ../src/iop/velvia.c:97 +msgid "" +"resaturate giving more weight to blacks, whites and low-saturation pixels" +msgstr "" +"ponovno povečaj nasičenje tako, da bolj utežiš črne, bele in slabo nasičene " +"piksle" + +#: ../src/iop/velvia.c:290 +msgid "the strength of saturation boost" +msgstr "porast moči nasičenja" + +#: ../src/iop/velvia.c:293 +msgid "how much to spare highlights and shadows" +msgstr "koliko prihraniti pri bleščavah in sencah" + +#: ../src/iop/vibrance.c:62 +msgid "" +"this module is deprecated. please use the vibrance slider in the color " +"balance rgb module instead." +msgstr "" +"ta modul je zastarel. namesto tega raje uporabite drsnik živahnosti v modulu " +"za uravnoteženje barv." + +#: ../src/iop/vibrance.c:95 +msgid "" +"saturate and reduce the lightness of the most saturated pixels\n" +"to make the colors more vivid." +msgstr "" +"povečaj nasičenje in zmanjšaj svetlost najbolj nasičenih pikslov\n" +"da barve delujejo bolj žive." + +#: ../src/iop/vibrance.c:211 +msgid "the amount of vibrance" +msgstr "mera živahnosti" + +#: ../src/iop/vignette.c:119 +msgid "simulate a lens fall-off close to edges" +msgstr "simuliraj napake lečja blizu robov" + +#: ../src/iop/vignette.c:1022 +msgid "lomo" +msgstr "lomo" + +#: ../src/iop/vignette.c:1061 +msgctxt "section" +msgid "position / form" +msgstr "pozicija / oblika" + +#: ../src/iop/vignette.c:1069 +msgid "dithering" +msgstr "stresanje" + +#: ../src/iop/vignette.c:1081 +msgid "the radii scale of vignette for start of fall-off" +msgstr "merilo polmerov vinjete za začetek odstranjevanja odpada" + +#: ../src/iop/vignette.c:1083 +msgid "the radii scale of vignette for end of fall-off" +msgstr "merila polmerov vinjete za konec odstranjevanja odpada" + +#: ../src/iop/vignette.c:1084 +msgid "strength of effect on brightness" +msgstr "moč učinka na sijavost" + +#: ../src/iop/vignette.c:1085 +msgid "strength of effect on saturation" +msgstr "moč učinka nasičenosti" + +#: ../src/iop/vignette.c:1086 +msgid "horizontal offset of center of the effect" +msgstr "vodoravni odmik od centra učinka" + +#: ../src/iop/vignette.c:1087 +msgid "vertical offset of center of the effect" +msgstr "navpični odmik od centra učinka" + +#: ../src/iop/vignette.c:1090 +msgid "" +"shape factor\n" +"0 produces a rectangle\n" +"1 produces a circle or ellipse\n" +"2 produces a diamond" +msgstr "" +"izbor oblike\n" +"0 izdela pravokotnik\n" +"1 izdela krog ali elipso\n" +"2 izdela romb" + +#: ../src/iop/vignette.c:1094 +msgid "enable to have the ratio automatically follow the image size" +msgstr "omogoči, da razmerje avtomatično sledi velikosti slike" + +#: ../src/iop/vignette.c:1095 +msgid "width-to-height ratio" +msgstr "razmerje širina/višina" + +#: ../src/iop/vignette.c:1097 +msgid "add some level of random noise to prevent banding" +msgstr "dodaj raven slučajnega šuma, da preprečimo pojav pasov" + +#: ../src/iop/vignette.c:1105 +#, c-format +msgid "[%s on node] change vignette/feather size" +msgstr "[%s on node] spremeni velikost vinjete/peresa mehčanja" + +#: ../src/iop/vignette.c:1108 +#, c-format +msgid "[%s on node] change vignette/feather size keeping ratio" +msgstr "" +"[%s on node] spremeni ohranjeno razmerje vinjete/velikost peresa mehčanja" + +#: ../src/iop/vignette.c:1111 +#, c-format +msgid "[%s on center] move vignette" +msgstr "[%s on center] prestavi vinjeto" + +#: ../src/iop/watermark.c:416 +msgid "watermark" +msgstr "vodni žig" + +#: ../src/iop/watermark.c:421 +msgid "overlay an SVG watermark like a signature on the picture" +msgstr "prekrij vodni žig SVG kot podpis na sliki" + +#: ../src/iop/watermark.c:1306 +msgid "marker" +msgstr "označevalnik" + +#: ../src/iop/watermark.c:1309 +#, c-format +msgid "SVG watermarks in %s/watermarks or %s/watermarks" +msgstr "SVG vodni žigi v %s/vodni žigi ali %s/vodni žigi" + +#. Simple text +#: ../src/iop/watermark.c:1319 ../src/iop/watermark.c:1320 +msgid "text" +msgstr "besedilo" + +#: ../src/iop/watermark.c:1321 +msgid "" +"text string, tag:\n" +"$(WATERMARK_TEXT)" +msgstr "" +"besedilo, oznaka:\n" +"$(WATERMARK_TEXT)" + +#: ../src/iop/watermark.c:1323 +msgid "content" +msgstr "vsebina" + +#. Text font +#: ../src/iop/watermark.c:1328 +msgid "font" +msgstr "pisava" + +#: ../src/iop/watermark.c:1333 +msgid "" +"text font, tags:\n" +"$(WATERMARK_FONT_FAMILY)\n" +"$(WATERMARK_FONT_STYLE)\n" +"$(WATERMARK_FONT_WEIGHT)" +msgstr "" +"pisava, oznake:\n" +"$(WATERMARK_FONT_FAMILY)\n" +"$(WATERMARK_FONT_STYLE)\n" +"$(WATERMARK_FONT_WEIGHT)" + +#: ../src/iop/watermark.c:1348 +msgid "" +"watermark color, tag:\n" +"$(WATERMARK_COLOR)" +msgstr "" +"oznaka barve vodnega tiska:\n" +"$(WATERMARK_COLOR)" + +#: ../src/iop/watermark.c:1350 +msgid "select watermark color" +msgstr "izbira barve vodnega tiska" + +#: ../src/iop/watermark.c:1352 +msgid "pick color from image" +msgstr "izberite barvo iz slike" + +#: ../src/iop/watermark.c:1365 +msgctxt "section" +msgid "placement" +msgstr "umestitev" + +#: ../src/iop/watermark.c:1378 +#| msgid "" +#| "scaling is done relative to this object\n" +#| "• image: fits marker into whole image\n" +#| "• larger border: fits larger marker border to larger image border\n" +#| "• smaller border: fits larger marker border to smaller image border\n" +#| "• height: fits marker height to image height, e.g. suitable for texts\n" +#| "• advanced options: activates two additional drop-down menus" +msgid "" +"choose how to scale the watermark\n" +"• image: scale watermark relative to whole image\n" +"• larger border: scale larger watermark border relative to larger image " +"border\n" +"• smaller border: scale larger watermark border relative to smaller image " +"border\n" +"• height: scale watermark height to image height\n" +"• advanced options: choose watermark and image dimensions independently" +msgstr "" +"izberite prilagoditev velikost vodnega žiga\n" +"• slika: povečaj vodni žig glede na celotno sliko\n" +"• večja obroba: povečaj večjo obrobo vodnega žiga glede na večjo obrobo" +" slike\n" +"• manjša obroba: povečaj večjo obrobo vodnega žiga glede na manjšo obrobo" +" slike\n" +"• višina: prilagodi višino vodnega žiga na višino slike\n" +"• napredne možnosti: neodvisno izberite vodni žig in dimenzije slike" + +#: ../src/iop/watermark.c:1387 +msgid "reference image dimension against which to scale the watermark" +msgstr "referenčna dimenzija slike, glede na katero se prilagodi vodni žig" + +#: ../src/iop/watermark.c:1391 +msgid "watermark dimension to scale" +msgstr "dimenzija vodnega žiga za merilo" + +#: ../src/iop/watermark.c:1395 ../src/libs/print_settings.c:2675 +msgid "alignment" +msgstr "poravnava" + +#. Let's add some tooltips and hook up some signals... +#: ../src/iop/watermark.c:1416 +msgid "the opacity of the watermark" +msgstr "neprosojnost vodnega žiga" + +#: ../src/iop/watermark.c:1417 +msgid "the scale of the watermark" +msgstr "merilo vodnega znaka" + +#: ../src/iop/watermark.c:1418 +msgid "the rotation of the watermark" +msgstr "zasuk vodnega znaka" + +#: ../src/iop/zonesystem.c:111 +msgid "zone system" +msgstr "sistem con" + +#: ../src/iop/zonesystem.c:486 +msgid "" +"lightness zones\n" +"use mouse scrollwheel to change the number of zones\n" +"left-click on a border to create a marker\n" +"right-click on a marker to delete it" +msgstr "" +"cone svetlosti\n" +"uporabite miškin kolešček za spremembo števila con\n" +"levi klik na mejo ustvari marker\n" +"desni klik na marker ga zbriše" + +#: ../src/libs/backgroundjobs.c:52 +msgid "background jobs" +msgstr "procesi v ozadju" + +#: ../src/libs/camera.c:78 +msgid "camera settings" +msgstr "nastavitve kamere" + +#: ../src/libs/camera.c:131 +msgid "toggle view property in center view" +msgstr "preklop lastnosti pogleda v centralnem pogledu" + +#: ../src/libs/camera.c:201 +msgid "connection with camera lost, exiting tethering mode" +msgstr "povezava s kamero je izgubljena, izhod iz upravljavskega načina" + +#: ../src/libs/camera.c:342 +msgid "battery" +msgstr "baterija" + +#: ../src/libs/camera.c:342 +msgid "n/a" +msgstr "nima pomena" + +#. Camera control +#: ../src/libs/camera.c:417 +msgctxt "section" +msgid "camera control" +msgstr "upravljanje kamere" + +#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2679 +msgid "modes" +msgstr "načini" + +#: ../src/libs/camera.c:422 +msgid "timer (s)" +msgstr "odštevalnik(i) časa" + +#: ../src/libs/camera.c:423 +msgid "count" +msgstr "število" + +#: ../src/libs/camera.c:424 +msgid "brackets" +msgstr "omejitve kadriranja" + +#: ../src/libs/camera.c:425 +msgid "bkt. steps" +msgstr "koraki nazaj" + +#: ../src/libs/camera.c:458 +msgid "capture image(s)" +msgstr "zajem slik(e)" + +#: ../src/libs/camera.c:461 +msgid "toggle delayed capture mode" +msgstr "preklopi v način zajema z zamudo" + +#: ../src/libs/camera.c:462 +msgid "toggle sequenced capture mode" +msgstr "preklop na način zaporednega zajemanja" + +#: ../src/libs/camera.c:463 +msgid "toggle bracketed capture mode" +msgstr "preklop zajemanja z vrednostmi v intervalu" + +#: ../src/libs/camera.c:464 +msgid "the count of seconds before actually doing a capture" +msgstr "število sekund pred samim zajemom" + +#: ../src/libs/camera.c:466 +msgid "" +"the amount of images to capture in a sequence,\n" +"you can use this in conjunction with delayed mode to create stop-motion " +"sequences" +msgstr "" +"število slik zajetih v zaporedju.\n" +"to lahko uporabljate skupaj z zajemanjem z zamudo za ustvarjanje časovnih " +"zaporedij slik" + +#: ../src/libs/camera.c:469 +msgid "" +"the amount of brackets on each side of centered shoot, amount of images = " +"(brackets*2) + 1" +msgstr "" +"število intervalnih omejitev na vsaki strani osredotočenega posnetka, " +"število slik = (št_omejitev*2) + 1" + +#: ../src/libs/camera.c:471 +msgid "" +"the amount of steps per bracket, steps is camera configurable and usually 3 " +"steps per stop\n" +"with other words, 3 steps is 1EV exposure step between brackets" +msgstr "" +"število korakov na intervalno omejitev, št. korakov se da nastaviti na " +"kameri in je navadno 3 korake na vrednost zaslonke\n" +"drugače povedano, 3 koraki so 1EV osvetlitve med omejitvami" + +#. user specified properties +#: ../src/libs/camera.c:494 +msgctxt "section" +msgid "additional properties" +msgstr "dodatne lastnosti" + +#: ../src/libs/camera.c:497 +msgid "label" +msgstr "oznaka" + +#: ../src/libs/camera.c:505 +msgid "property" +msgstr "lastnost" + +#: ../src/libs/camera.c:517 +msgid "add user property" +msgstr "dodaj lastnost uporabnika" + +#: ../src/libs/camera.c:537 +msgid "program" +msgstr "program" + +#: ../src/libs/camera.c:540 ../src/libs/camera.c:542 +msgid "focus mode" +msgstr "način ostrenja" + +#: ../src/libs/camera.c:553 +msgid "shutterspeed2" +msgstr "hitrost zaklopa 2" + +#: ../src/libs/camera.c:555 +msgid "shutterspeed" +msgstr "hitrost zaklopa" + +#: ../src/libs/camera.c:561 +msgid "WB" +msgstr "ČB" + +#: ../src/libs/collect.c:164 +msgid "collections" +msgstr "zbirke" + +#: ../src/libs/collect.c:424 +msgid "search filmroll" +msgstr "preišči film" + +#: ../src/libs/collect.c:507 +#, c-format +msgid "problem selecting new path for the filmroll in %s" +msgstr "problem izbire nove poti za film v %s" + +#: ../src/libs/collect.c:579 +msgid "search filmroll..." +msgstr "išči film..." + +#: ../src/libs/collect.c:584 +msgid "remove..." +msgstr "odstrani..." + +#: ../src/libs/collect.c:1310 +msgid "uncategorized" +msgstr "nekategorizirano" + +#: ../src/libs/collect.c:2172 ../src/libs/filters/rating_range.c:120 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:151 +#: ../src/libs/filters/rating_range.c:302 +msgid "rejected" +msgstr "zavrnjeno" + +#: ../src/libs/collect.c:2175 ../src/libs/filters/rating_range.c:122 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:303 +msgid "not rated" +msgstr "ni ocenjeno" + +#: ../src/libs/collect.c:2359 +msgid "use <, <=, >, >=, <>, =, [;] as operators" +msgstr "uporabite <, <=, >, >=, <>, =, [;] kot operatorje" + +#: ../src/libs/collect.c:2363 +msgid "" +"use <, <=, >, >=, <>, =, [;] as operators\n" +"star rating: 0-5\n" +"rejected images: -1" +msgstr "" +"uporabite <, <=, >, >=, <>, =, [;] kot operatorje\n" +"ocena zvezdic: 0-5\n" +"zavrnjene slike: -1" + +#: ../src/libs/collect.c:2371 +msgid "" +"use <, <=, >, >=, <>, =, [;] as operators\n" +"type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)" +msgstr "" +"uporabite <, <=, >, >=, <>, =, [;] kot operatorje\n" +"vnesite datume v obliki: YYYY:MM:DD HH:MM:SS (samo leto je obvezno)" + +#: ../src/libs/collect.c:2378 +#, no-c-format +msgid "use `%' as wildcard and `,' to separate values" +msgstr "uporabite '%' za vse in `,' za ločevanje vrednosti" + +#: ../src/libs/collect.c:2385 +#, no-c-format +msgid "" +"use `%' as wildcard\n" +"click to include hierarchy + sub-hierarchies (suffix `*')\n" +"shift+click to include only the current hierarchy (no suffix)\n" +"ctrl+click to include only sub-hierarchies (suffix `|%')" +msgstr "" +"uporabi `%' kot 'za vse'\n" +"klik za vključevanje hierarhije + podhierarhij (pripona `*')\n" +"dvigalka+klik za vključevanje samo trenutne mape (ni pripone)\n" +"krmilka+klik za vključevanje samo podrejenih map (pripona `|%')" + +#: ../src/libs/collect.c:2398 +#, no-c-format +msgid "" +"use `%' as wildcard\n" +"click to include location + sub-locations (suffix `*')\n" +"shift+click to include only the current location (no suffix)\n" +"ctrl+click to include only sub-locations (suffix `|%')" +msgstr "" +"uporabi `%' kot 'za vse'\n" +"klik za vključevanje hierarhije + podhierarhij (pripona `*')\n" +"dvigalka+klik za vključevanje samo trenutne mape (ni pripone)\n" +"krmilka+klik za vključevanje samo trenutne mape (pripona `|%')" + +#: ../src/libs/collect.c:2411 +#, no-c-format +msgid "" +"use `%' as wildcard\n" +"click to include current + sub-folders (suffix `*')\n" +"shift+click to include only the current folder (no suffix)\n" +"ctrl+click to include only sub-folders (suffix `|%')" +msgstr "" +"uporabi `%' kot 'za vse'\n" +"klik za vključevanje hierarhije + podhierarhij (pripona `*')\n" +"dvigalka+klik za vključevanje trenutne mape (ni pripone)\n" +"krmilka+klik za vključevanje samo podmap (pripona `|%')" + +#: ../src/libs/collect.c:2422 +#, no-c-format +msgid "use `%' as wildcard" +msgstr "uporabite '%' za vse" + +#: ../src/libs/collect.c:2488 ../src/libs/collect.c:2502 +#: ../src/libs/collect.c:3111 +msgid "clear this rule" +msgstr "odstrani to pravilo" + +#: ../src/libs/collect.c:2492 +msgid "clear this rule or add new rules" +msgstr "odstrani to pravilo ali dodaj druga pravila" + +#: ../src/libs/collect.c:3117 +msgid "narrow down search" +msgstr "zoži področje iskanja" + +#: ../src/libs/collect.c:3124 +msgid "add more images" +msgstr "dodaj več slik" + +#: ../src/libs/collect.c:3131 +msgid "exclude images" +msgstr "izloči slike" + +#: ../src/libs/collect.c:3140 +msgid "change to: and" +msgstr "spremeni v: in" + +#: ../src/libs/collect.c:3147 +msgid "change to: or" +msgstr "spremeni v: ali" + +#: ../src/libs/collect.c:3154 +msgid "change to: except" +msgstr "spremeni v: razen" + +#. the different categories +#: ../src/libs/collect.c:3184 ../src/libs/filtering.c:883 +#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1620 +#: ../src/libs/filtering.c:1964 +msgid "files" +msgstr "datoteke" + +#: ../src/libs/collect.c:3189 ../src/libs/export_metadata.c:301 +#: ../src/libs/filtering.c:888 ../src/libs/filtering.c:955 +#: ../src/libs/filtering.c:1628 ../src/libs/filtering.c:1968 +#: ../src/libs/image.c:495 ../src/libs/image.c:633 ../src/libs/image.c:645 +#: ../src/libs/metadata.c:509 ../src/libs/metadata_view.c:1256 +msgid "metadata" +msgstr "metapodatki" + +#: ../src/libs/collect.c:3208 ../src/libs/filtering.c:909 +#: ../src/libs/filtering.c:976 ../src/libs/filtering.c:1966 +msgid "times" +msgstr "krat" + +#: ../src/libs/collect.c:3216 ../src/libs/filtering.c:917 +#: ../src/libs/filtering.c:984 ../src/libs/filtering.c:1652 +msgid "capture details" +msgstr "zabeleži podrobnosti" + +#: ../src/libs/collect.c:3225 ../src/libs/filtering.c:926 +#: ../src/libs/filtering.c:993 ../src/libs/filtering.c:1664 +#: ../src/libs/filtering.c:1970 ../src/libs/tools/darktable.c:61 +msgid "darktable" +msgstr "darktable" + +#: ../src/libs/collect.c:3240 +msgid "collections settings" +msgstr "nastavitve slik" + +#: ../src/libs/collect.c:3267 ../src/libs/export.c:1126 +#: ../src/libs/metadata.c:615 ../src/libs/metadata_view.c:1339 +#: ../src/libs/recentcollect.c:295 ../src/libs/tagging.c:3526 +msgid "preferences..." +msgstr "preference..." + +#: ../src/libs/collect.c:3388 ../src/libs/filtering.c:1494 +msgid "AND" +msgstr "IN" + +#: ../src/libs/collect.c:3393 ../src/libs/filtering.c:1499 +msgid "OR" +msgstr "ALI" + +#. case DT_LIB_COLLECT_MODE_AND_NOT: +#: ../src/libs/collect.c:3398 ../src/libs/filtering.c:1504 +msgid "BUT NOT" +msgstr "A NE" + +#: ../src/libs/collect.c:3588 ../src/libs/filtering.c:2238 +msgid "revert to a previous set of rules" +msgstr "povrnite se na prejšnji niz pravil" + +#: ../src/libs/collect.c:3671 +msgid "jump back to previous collection" +msgstr "skok nazaj na prejšnjo zbirko" + +#: ../src/libs/colorpicker.c:51 +msgid "LCh" +msgstr "LCh" + +#: ../src/libs/colorpicker.c:51 +msgid "HSV" +msgstr "HSV" + +#: ../src/libs/colorpicker.c:51 +msgid "Hex" +msgstr "Hex" + +#: ../src/libs/colorpicker.c:53 +msgid "mean" +msgstr "povprečje" + +#: ../src/libs/colorpicker.c:71 +msgid "color picker" +msgstr "izbor barve" + +#: ../src/libs/colorpicker.c:513 +msgid "" +"hover to highlight sample on canvas,\n" +"click to lock sample,\n" +"right-click to load sample area into active color picker" +msgstr "" +"z miško nad označite vzorec na platnu,\n" +"klik za zaklep vzorca\n" +"desni klik za nalaganje površine vzorca v aktivni izbirnik barve" + +#: ../src/libs/colorpicker.c:626 ../src/libs/colorpicker.c:693 +msgid "click to (un)hide large color patch" +msgstr "klikni, da (raz)krijem veliko barvno zaplato" + +#: ../src/libs/colorpicker.c:649 +msgid "statistic" +msgstr "statistika" + +#: ../src/libs/colorpicker.c:650 +msgid "select which statistic to show" +msgstr "izberi statistiko prikaza" + +#: ../src/libs/colorpicker.c:660 +msgid "select which color mode to use" +msgstr "izberi barvni način rabe" + +#: ../src/libs/colorpicker.c:671 +msgid "" +"turn on color picker\n" +"ctrl+click or right-click to select an area" +msgstr "" +"vklopi izbirnik barve\n" +"krmilka+click ali desni klik to za izbor površine" + +#: ../src/libs/colorpicker.c:722 +msgid "add sample" +msgstr "dodaj vzorec" + +#. Adding the live samples section +#: ../src/libs/colorpicker.c:727 +msgctxt "section" +msgid "live samples" +msgstr "živi vzorci" + +#: ../src/libs/colorpicker.c:738 +msgid "display samples on image/vectorscope" +msgstr "prikaži vzorce področij na sliki/vektroskopu" + +#: ../src/libs/colorpicker.c:749 +msgid "restrict scope to selection" +msgstr "omeji obseg na izbor" + +#: ../src/libs/copy_history.c:61 +msgid "history stack" +msgstr "sklad zgodovine" + +#: ../src/libs/copy_history.c:114 +msgid "open sidecar file" +msgstr "odpri priklopno datoteko" + +#: ../src/libs/copy_history.c:166 +#, c-format +msgid "error loading file '%s'" +msgstr "napaka pri nalaganju datoteke '%s'" + +#: ../src/libs/copy_history.c:206 +#, c-format +msgid "no history compression of %d image" +msgid_plural "no history compression of %d images" +msgstr[0] "ni stiskanja zgodovine %d slik" +msgstr[1] "ni stiskanja zgodovine %d slik" +msgstr[2] "ni stiskanja zgodovine %d slik" +msgstr[3] "ni stiskanja zgodovine %d slik" + +#: ../src/libs/copy_history.c:247 +msgid "delete images' history?" +msgstr "naj zbrišem zgodovino slik?" + +#: ../src/libs/copy_history.c:248 +#, c-format +msgid "do you really want to clear history of %d selected image?" +msgid_plural "do you really want to clear history of %d selected images?" +msgstr[0] "ali res želite odstraniti zgodovino sprememb %d izbrane slike?" +msgstr[1] "ali res želite odstraniti zgodovino sprememb %d izbrane slike?" +msgstr[2] "ali res želite odstraniti zgodovino sprememb %d izbranih slik?" +msgstr[3] "ali res želite odstraniti zgodovino sprememb %d izbranih slik?" + +#: ../src/libs/copy_history.c:364 +msgid "selective copy..." +msgstr "selektivna kopija..." + +#: ../src/libs/copy_history.c:365 +msgid "choose which modules to copy from the source image" +msgstr "izberi katere module kopirati iz izvirne slike" + +#: ../src/libs/copy_history.c:371 +msgid "" +"copy history stack of\n" +"first selected image" +msgstr "" +"kopiraj zgodovino sprememb\n" +"za prvo izbrano sliko" + +#: ../src/libs/copy_history.c:376 +msgid "selective paste..." +msgstr "selektivno lepljenje..." + +#: ../src/libs/copy_history.c:377 +msgid "choose which modules to paste to the target image(s)" +msgstr "izberi katere module lepiti na ciljno(e) sliko(e)" + +#: ../src/libs/copy_history.c:382 ../src/libs/image.c:655 +msgid "paste" +msgstr "prilepi" + +#: ../src/libs/copy_history.c:383 +msgid "" +"paste history stack to\n" +"all selected images" +msgstr "" +"kopiraj zgodovino sprememb\n" +"za vse izbrane slike" + +#: ../src/libs/copy_history.c:389 +msgid "compress history" +msgstr "strni zgodovino" + +#: ../src/libs/copy_history.c:390 +msgid "" +"compress history stack of\n" +"all selected images" +msgstr "" +"strni sklad zgodovine\n" +"vseh izbranih slik" + +#: ../src/libs/copy_history.c:395 +msgid "" +"discard history stack of\n" +"all selected images" +msgstr "" +"zavrzi sklad zgodovine\n" +"vseh izbranih slik" + +#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:851 +msgid "how to handle existing history" +msgstr "kako obdelati zgodovino" + +#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:854 +msgid "append" +msgstr "dodaj" + +#: ../src/libs/copy_history.c:409 +msgid "load sidecar file..." +msgstr "naloži prikl. datot..." + +#: ../src/libs/copy_history.c:410 +msgid "" +"open an XMP sidecar file\n" +"and apply it to selected images" +msgstr "" +"odpri priklopno datoteko XMP\n" +"in uporabi nad izbranimi slikami" + +#: ../src/libs/copy_history.c:415 +msgid "write history stack and tags to XMP sidecar files" +msgstr "zapiši sklad zgodovine in oznake na priklopne datoteke XMP" + +#: ../src/libs/duplicate.c:60 +msgid "duplicate manager" +msgstr "upravljalnik duplikatov" + +#: ../src/libs/duplicate.c:407 +msgid "create a 'virgin' duplicate of the image without any development" +msgstr "tvori 'deviški' duplikat slike brez kakršnegakoli posega" + +#: ../src/libs/duplicate.c:412 +msgid "create a duplicate of the image with same history stack" +msgstr "tvori duplikat slike z enakim skladom operacij" + +#: ../src/libs/export.c:160 +msgid "export" +msgstr "izvoz" + +#: ../src/libs/export.c:306 +#| msgid "export selected" +msgid "invalid format for export selected" +msgstr "izbran neveljaven format za izvoz" + +#: ../src/libs/export.c:311 +#| msgid "export selected" +msgid "invalid storage for export selected" +msgstr "izbran neveljaven pomnilnik za izvoz" + +#: ../src/libs/export.c:322 +msgid "export to disk" +msgstr "izvozi na disk" + +#: ../src/libs/export.c:516 +#, c-format +msgid "which is equal to %s × %s px" +msgstr "kar je enako %s × %s px" + +#: ../src/libs/export.c:555 +msgctxt "unit" +msgid "in" +msgstr "v" + +#: ../src/libs/export.c:1141 +msgctxt "section" +msgid "storage options" +msgstr "možnosti shranjevanja" + +#: ../src/libs/export.c:1145 +msgid "target storage" +msgstr "ciljna shramba" + +#: ../src/libs/export.c:1171 +msgctxt "section" +msgid "format options" +msgstr "možnosti oblikovanja" + +#: ../src/libs/export.c:1175 +msgid "file format" +msgstr "format datoteke" + +#: ../src/libs/export.c:1193 +msgctxt "section" +msgid "global options" +msgstr "globalne možnosti" + +#: ../src/libs/export.c:1196 +msgid "set size" +msgstr "določi velikost" + +#: ../src/libs/export.c:1197 +msgid "choose a method for setting the output size" +msgstr "izberite način za nastavitev izhodne velikosti" + +#: ../src/libs/export.c:1200 +msgid "in pixels (for file)" +msgstr "v pikslih (za datoteko)" + +#: ../src/libs/export.c:1201 +msgid "in cm (for print)" +msgstr "v cm (za tisk)" + +#: ../src/libs/export.c:1202 +msgid "in inch (for print)" +msgstr "v palcih (za tisk)" + +#: ../src/libs/export.c:1203 +msgid "by scale (for file)" +msgstr "v merilu (za datoteko)" + +#: ../src/libs/export.c:1206 +msgid "print width" +msgstr "širina tiska" + +#: ../src/libs/export.c:1208 ../src/libs/export.c:1225 +msgid "" +"maximum output width limit.\n" +"click middle mouse button to reset to 0." +msgstr "" +"omejitev največje izhodne širine.\n" +"kliknite srednji gumb miške, da ponastavite na 0." + +#: ../src/libs/export.c:1212 +msgid "print height" +msgstr "višina tiska" + +#: ../src/libs/export.c:1214 ../src/libs/export.c:1231 +msgid "" +"maximum output height limit.\n" +"click middle mouse button to reset to 0." +msgstr "" +"omejitev največje izhodne višine.\n" +"kliknite srednji gumb miške, da ponastavite na 0." + +#: ../src/libs/export.c:1220 +msgid "resolution in dot per inch" +msgstr "ločljivost v pikslih na palec" + +#: ../src/libs/export.c:1244 +msgid "@" +msgstr "@" + +#: ../src/libs/export.c:1258 ../src/libs/tools/global_toolbox.c:217 +msgid "px" +msgstr "px" + +#: ../src/libs/export.c:1266 +msgid "" +"it can be an integer, decimal number or simple fraction.\n" +"zero or empty values are equal to 1.\n" +"click middle mouse button to reset to 1." +msgstr "" +"lahko je celo število, decimalno število ali preprost ulomek.\n" +"nič ali prazne vrednosti so enake 1.\n" +"kliknite srednji gumb miške, da ponastavite na 1." + +#: ../src/libs/export.c:1292 +msgid "allow upscaling" +msgstr "dovoli povečevanje" + +#: ../src/libs/export.c:1301 +msgid "high quality resampling" +msgstr "ponovno visoko kakovostno vzorčenje" + +#: ../src/libs/export.c:1302 +msgid "do high quality resampling during export" +msgstr "uporabi visoko kakovostno ponovno vzorčenje ob izvozu" + +#: ../src/libs/export.c:1310 +msgid "store masks" +msgstr "shrani maske" + +#: ../src/libs/export.c:1311 +msgid "store masks as layers in exported images. only works for some formats." +msgstr "" +"shranite maske kot plasti v izvoženih slikah. deluje samo za nekatere " +"formate." + +#: ../src/libs/export.c:1322 ../src/libs/export.c:1357 +#: ../src/libs/print_settings.c:2777 ../src/libs/print_settings.c:2823 +msgid "image settings" +msgstr "nastavitve slike" + +#: ../src/libs/export.c:1332 ../src/libs/print_settings.c:2811 +msgid "output ICC profiles" +msgstr "izhodni ICC profili" + +#: ../src/libs/export.c:1340 +msgid "" +"• perceptual: smoothly moves out-of-gamut colors into gamut, preserving " +"gradations,\n" +"but distorts in-gamut colors in the process.\n" +"note that perceptual is often a proprietary LUT that depends on the " +"destination space.\n" +"\n" +"• relative colorimetric: keeps luminance while reducing as little as " +"possible\n" +"saturation until colors fit in gamut.\n" +"\n" +"• saturation: designed to present eye-catching business graphics\n" +"by preserving the saturation. (not suited for photography).\n" +"\n" +"• absolute colorimetric: adapt white point of the image to the white point " +"of the\n" +"destination medium and do nothing else. mainly used when proofing colors.\n" +"(not suited for photography)." +msgstr "" +"• zaznavno: gladko premakne izven barvnega razpona in ohrani gradacije,\n" +"vendar pri tem izkrivlja barve v barvnem razponu.\n" +"upoštevajte, da je zaznavna pogosto lastniška iskalna tabela, ki je odvisna " +"od ciljnega prostora.\n" +"\n" +"• relativno kolorimetrično: ohranja svetlost, hkrati pa čim manj znižuje " +"možno\n" +"nasičenost, dokler barve ne ustrezajo barvnemu razponu.\n" +"\n" +"• nasičenost: namenjena predstavitvi privlačne poslovne grafike\n" +"z ohranjanjem nasičenosti. (ni primerno za fotografije).\n" +"\n" +"• absolutno kolorimetrično: prilagodi belo točko slike beli točki ciljnega " +"medija\n" +"in ne dela ničesar drugega. uporablja se predvsem pri preverjanju barve. (ni " +"primerno za fotografije)." + +#: ../src/libs/export.c:1367 ../src/libs/print_settings.c:2833 +msgid "style" +msgstr "slog" + +#: ../src/libs/export.c:1370 +msgid "temporary style to use while exporting" +msgstr "začasni slog za izvoz" + +#: ../src/libs/export.c:1377 ../src/libs/print_settings.c:2876 +msgid "" +"whether the style items are appended to the history or replacing the history" +msgstr "ali so elementi sloga dodani k zgodovini ali jo zamenjujejo" + +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 +msgid "replace history" +msgstr "zamenjaj zgodovino" + +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 +msgid "append history" +msgstr "dodaj k zgodovini" + +#: ../src/libs/export.c:1398 +#| msgid "export" +msgctxt "actionbutton" +msgid "export" +msgstr "izvozi" + +#: ../src/libs/export.c:1400 +msgid "export with current settings" +msgstr "izvozi s trenutnimi nastavitvami" + +#: ../src/libs/export_metadata.c:148 +msgid "select tag" +msgstr "izberi oznako" + +#: ../src/libs/export_metadata.c:150 +msgid "_add" +msgstr "_dodaj" + +#: ../src/libs/export_metadata.c:151 ../src/libs/geotagging.c:811 +#| msgid "done" +msgid "_done" +msgstr "_narejeno" + +#: ../src/libs/export_metadata.c:162 +msgid "list filter" +msgstr "seznam filtrov" + +#: ../src/libs/export_metadata.c:173 +msgid "" +"list of available tags. click 'add' button or double-click on tag to add the " +"selected one" +msgstr "" +"seznam razpoložljivih oznak. kliknite gumb 'dodaj' ali dvokliknite oznako, " +"da dodate izbrano oznako" + +#: ../src/libs/export_metadata.c:274 +msgid "edit metadata exportation" +msgstr "uredi izvoz metapodatkov" + +#: ../src/libs/export_metadata.c:293 +msgid "general settings" +msgstr "splošne nastavitve" + +#: ../src/libs/export_metadata.c:298 +msgid "EXIF data" +msgstr "podatki EXIF" + +#: ../src/libs/export_metadata.c:299 +msgid "export EXIF metadata" +msgstr "izvozi metapodatke EXIF" + +#: ../src/libs/export_metadata.c:302 +msgid "export darktable XMP metadata (from metadata editor module)" +msgstr "izvozi darktable XMP metapodatke (iz modula urejevalnik metapodatkov)" + +#: ../src/libs/export_metadata.c:312 +msgid "only embedded" +msgstr "samo vgrajene" + +#: ../src/libs/export_metadata.c:313 +msgid "" +"per default the interface sends some (limited) metadata beside the image to " +"remote storage.\n" +"to avoid this and let only image embedded darktable XMP metadata, check this " +"flag.\n" +"if remote storage doesn't understand darktable XMP metadata, you can use " +"calculated metadata instead" +msgstr "" +"privzeto vmesnik pošlje nekaj (omejenih) metapodatkov poleg slike na " +"oddaljeno shrambo.\n" +"v izogib tega, da pustite samo v sliko vgrajene metapodatke darktable XMP, " +"odkljukajte to rubriko.\n" +"če oddaljeni pomnilnik ne razume metapodatkov darktable XMP, lahko namesto " +"tega uporabite izračunane metapodatke" + +#: ../src/libs/export_metadata.c:319 ../src/libs/image.c:623 +msgid "geo tags" +msgstr "geo oznake" + +#: ../src/libs/export_metadata.c:320 +msgid "export geo tags" +msgstr "izvozi geo oznake" + +#: ../src/libs/export_metadata.c:323 +msgid "export tags (to Xmp.dc.Subject)" +msgstr "izvozi oznake (v Xmp.dc.Subject)" + +#: ../src/libs/export_metadata.c:331 +msgid "private tags" +msgstr "zasebne oznake" + +#: ../src/libs/export_metadata.c:332 +msgid "export private tags" +msgstr "izvozi zasebne oznake" + +#: ../src/libs/export_metadata.c:334 +msgid "synonyms" +msgstr "sinonimi" + +#: ../src/libs/export_metadata.c:335 +msgid "export tags synonyms" +msgstr "izvozi sinonime oznak" + +#: ../src/libs/export_metadata.c:337 +msgid "omit hierarchy" +msgstr "izpusti hierarhijo" + +#: ../src/libs/export_metadata.c:338 +msgid "" +"only the last part of the hierarchical tags is included. can be useful if " +"categories are not used" +msgstr "" +"vključen je le zadnji del hierarhičnih oznak. lahko je koristno, če se " +"kategorije ne uporabljajo" + +#: ../src/libs/export_metadata.c:341 +msgid "hierarchical tags" +msgstr "hierarhične oznake" + +#: ../src/libs/export_metadata.c:342 +msgid "export hierarchical tags (to Xmp.lr.Hierarchical Subject)" +msgstr "izvozi hierarhične oznake (v Xmp.lr.Hierarchical Subject)" + +#: ../src/libs/export_metadata.c:344 +msgid "develop history" +msgstr "razvij zgodovino" + +#: ../src/libs/export_metadata.c:345 +msgid "" +"export darktable development data (recovery purpose in case of loss of " +"database or XMP file)" +msgstr "" +"izvozi razvojne podatke darktable (za namen obnove v primeru izgube baze " +"podatkov ali datoteke XMP)" + +#: ../src/libs/export_metadata.c:352 +msgid "per metadata settings" +msgstr "za vsake nastavitve metapodatkov" + +#: ../src/libs/export_metadata.c:364 +msgid "redefined tag" +msgstr "preimenovana oznaka" + +#: ../src/libs/export_metadata.c:370 +msgid "formula" +msgstr "formula" + +#: ../src/libs/export_metadata.c:373 +msgid "" +"list of calculated metadata\n" +"click on '+' button to select and add new metadata\n" +"if formula is empty, the corresponding metadata is removed from exported " +"file,\n" +"if formula is '=', the EXIF metadata is exported even if EXIF data are " +"disabled\n" +"otherwise the corresponding metadata is calculated and added to exported " +"file\n" +"click on formula cell to edit\n" +"type '$(' to activate the completion and see the list of variables" +msgstr "" +"seznam izračunanih metapodatkov\n" +"kliknite na gumb '+' za izbiro in dodajanje novih metapodatkov\n" +"če je formula prazna, se ustrezni metapodatki odstranijo iz izvožene " +"datoteke\n" +"če je formula '=', se metapodatki EXIF izvozijo, tudi če so podatki EXIF " +"onemogočeni\n" +"sicer se izračunajo ustrezni metapodatki in se dodajo k izvoženim datotekam\n" +"kliknite na celico s formulo za urejanje.\n" +"vtipkajte '$(' za aktiviranje zaključevanja in da vidite seznam spremenljivk" + +#: ../src/libs/export_metadata.c:430 +msgid "add an output metadata tag" +msgstr "dodaj oznako izhodnega metapodatka" + +#: ../src/libs/export_metadata.c:435 +msgid "delete metadata tag" +msgstr "zbriši oznako metapodatka" + +#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:130 +msgid "full path" +msgstr "celotna pot" + +#: ../src/libs/filtering.c:72 +msgid "group" +msgstr "grupiraj" + +#: ../src/libs/filtering.c:73 ../src/libs/live_view.c:313 +msgid "id" +msgstr "identifikator" + +#: ../src/libs/filtering.c:74 +msgid "custom sort" +msgstr "prilagojeno sortiranje" + +#: ../src/libs/filtering.c:75 +msgid "shuffle" +msgstr "premešaj" + +#: ../src/libs/filtering.c:269 +msgid "collection filters" +msgstr "filtri zbirk" + +#: ../src/libs/filtering.c:302 +msgid "initial setting" +msgstr "začetna nastavitev" + +#: ../src/libs/filtering.c:321 +msgid "imported: last 24h" +msgstr "uvoženo: v zadnjih 24h" + +#: ../src/libs/filtering.c:326 +msgid "imported: last 30 days" +msgstr "uvoženo: v zadnjih 30 dneh" + +#: ../src/libs/filtering.c:332 +msgid "taken: last 24h" +msgstr "posneto: v zadnjih 24h" + +#: ../src/libs/filtering.c:336 +msgid "taken: last 30 days" +msgstr "posneto: v zadnjih 30 dneh" + +#: ../src/libs/filtering.c:728 +msgid "click or click&drag to select one or multiple values" +msgstr "klik ali klik&poteg za izbiro ene ali več vrednosti" + +#: ../src/libs/filtering.c:729 +msgid "right-click opens a menu to select the available values" +msgstr "desni-klik odpre meni za izbiro razpoložljivih vrednosti" + +#: ../src/libs/filtering.c:826 +#, c-format +msgid "you can't have more than %d rules" +msgstr "ne morete imeti več kot %d pravil" + +#: ../src/libs/filtering.c:948 ../src/libs/filtering.c:1618 +msgid "rule property" +msgstr "lastnost pravila" + +#: ../src/libs/filtering.c:1013 +msgid "" +"rule property\n" +"this can't be changed as the rule is pinned to the toolbar" +msgstr "" +"lastnost pravila\n" +"to se ne more spreminjati, saj je pravilo pripeto na orodno vrstico" + +#: ../src/libs/filtering.c:1095 +msgctxt "quickfilter" +msgid "filter" +msgstr "filter" + +#: ../src/libs/filtering.c:1124 +msgid "" +"this rule is pinned to the top toolbar\n" +"click to un-pin" +msgstr "" +"to pravilo je pritrjeno na zgornjo orodno vrstico\n" +"kliknite za odpenjanje" + +#: ../src/libs/filtering.c:1125 +msgid "you can't disable the rule as it is pinned to the toolbar" +msgstr "ne morete onemogočiti tega pravila, saj je pripeto na orodno vrstico" + +#: ../src/libs/filtering.c:1126 +msgid "you can't remove the rule as it is pinned to the toolbar" +msgstr "ne morete odstraniti tega pravila, saj je pripeto na orodno vrstico" + +#: ../src/libs/filtering.c:1131 +msgid "click to pin this rule to the top toolbar" +msgstr "kliknite, da pripnete to pravilo na vrhnjo orodno letvico" + +#: ../src/libs/filtering.c:1132 +msgid "remove this collect rule" +msgstr "odstrani to pravilo zbiranja" + +#: ../src/libs/filtering.c:1134 +msgid "this rule is enabled" +msgstr "to pravilo je omogočeno" + +#: ../src/libs/filtering.c:1136 +msgid "this rule is disabled" +msgstr "to pravilo je onemogočeno" + +#: ../src/libs/filtering.c:1264 +msgid "or" +msgstr "ali" + +#: ../src/libs/filtering.c:1265 +msgid "and not" +msgstr "in ne" + +#: ../src/libs/filtering.c:1267 +msgid "define how this rule should interact with the previous one" +msgstr "določi kako to pravilo vpliva na prejšnjega" + +#: ../src/libs/filtering.c:1528 +msgid " (off)" +msgstr " (izklopljeno)" + +#: ../src/libs/filtering.c:1725 +msgid "you can't add more rules." +msgstr "ne morete dodati več pravil." + +#: ../src/libs/filtering.c:1759 +msgid "shown filters" +msgstr "prikazani filtri" + +#: ../src/libs/filtering.c:1774 +msgid "new filter" +msgstr "novi filter" + +#. the actions part of the popover +#: ../src/libs/filtering.c:1781 +#| msgid "action" +msgid "actions" +msgstr "dejavnosti" + +#: ../src/libs/filtering.c:1784 +#| msgid "red filter" +msgid "reset quickfilters" +msgstr "ponastavi hitre filtre" + +#: ../src/libs/filtering.c:1957 +msgid "sort order" +msgstr "vrstni red" + +#: ../src/libs/filtering.c:1960 +msgid "determine the sort order of shown images" +msgstr "določi vrstni red prikazanih slik" + +#: ../src/libs/filtering.c:1980 +msgid "sort direction" +msgstr "smer razvrščanja" + +#: ../src/libs/filtering.c:1985 +msgid "remove this sort order" +msgstr "odstrani ta vrstni red" + +#: ../src/libs/filtering.c:2069 +#, c-format +msgid "you can't have more than %d sort orders" +msgstr "ne morete imeti več kot %d vrstnih redov" + +#: ../src/libs/filtering.c:2123 +msgid "DESC" +msgstr "DESC" + +#: ../src/libs/filtering.c:2123 +msgid "ASC" +msgstr "ASC" + +#: ../src/libs/filtering.c:2234 +msgid "new rule" +msgstr "novo pravilo" + +#: ../src/libs/filtering.c:2235 +msgid "append new rule to collect images" +msgstr "dodaj novo pravilo za zbiranje slik" + +#: ../src/libs/filtering.c:2246 ../src/libs/tools/filter.c:116 +msgid "sort by" +msgstr "uredi po" + +#: ../src/libs/filtering.c:2254 +msgid "new sort" +msgstr "novo razvrščanje" + +#: ../src/libs/filtering.c:2255 +msgid "append new sort to order images" +msgstr "dodaj novo pravilo razvrščanja slik" + +#: ../src/libs/filtering.c:2258 +msgid "revert to a previous set of sort orders" +msgstr "vrni se na prejšnji nabor pravil razvrščanja" + +#. we change the tooltip of the reset button here, as we are sure the header is defined now +#: ../src/libs/filtering.c:2308 +msgid "" +"reset\n" +"ctrl+click to remove pinned rules too" +msgstr "" +"prednastavi\n" +"krmilka+klik za odstranjevanje tudi pripetih pravil" + +#: ../src/libs/filters/colors.c:140 +msgid "Y" +msgstr "Y" + +#: ../src/libs/filters/colors.c:149 +msgid "P" +msgstr "P" + +#: ../src/libs/filters/colors.c:269 +msgid "color filter" +msgstr "barvni filter" + +#: ../src/libs/filters/colors.c:294 +msgid "" +"filter by images color label\n" +"click to toggle the color label selection\n" +"ctrl+click to exclude the color label\n" +"the gray button affects all color labels" +msgstr "" +"filter po barvnih oznakah slik\n" +"kliknite, da preklopite izbiro barvne oznake\n" +"krmilka+klik, da izključite barvno oznako\n" +"Sivi gumb vpliva na vse barvne oznake" + +#. create the filter combobox +#: ../src/libs/filters/colors.c:301 ../src/libs/filters/colors.c:312 +#: ../src/libs/filters/grouping.c:167 ../src/libs/filters/history.c:153 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/filters/module_order.c:161 +#: ../src/libs/filters/rating.c:199 ../src/libs/filters/rating.c:210 +#: ../src/libs/filters/rating_range.c:356 +msgid "rules" +msgstr "pravila" + +#: ../src/libs/filters/colors.c:306 +msgid "" +"filter by images color label\n" +"and (∩): images having all selected color labels\n" +"or (∪): images with at least one of the selected color labels" +msgstr "" +"filter po barvnih oznakah slike\n" +"in (∩): slike z vsemi izbranimi barvnimi oznaka\n" +"ali (∪): slike z vsaj eno od izbranih barvnih oznak" + +#: ../src/libs/filters/filename.c:370 +msgid "" +"enter filename to search.\n" +"multiple values can be separated by ','\n" +"\n" +"right-click to get existing filenames" +msgstr "" +"vnesite ime datoteke za iskanje.\n" +"več vrednosti lahko ločimo z ','\n" +"\n" +"Z desno miškino tipko kliknite, da dobite obstoječa imena datotek" + +#: ../src/libs/filters/filename.c:381 +msgid "extension" +msgstr "podaljšek" + +#: ../src/libs/filters/filename.c:382 +msgid "" +"enter extension to search with starting dot\n" +"multiple values can be separated by ','\n" +"handled keywords: 'RAW', 'NOT RAW', 'LDR', 'HDR'\n" +"\n" +"right-click to get existing extensions" +msgstr "" +"vnesite razširitev za iskanje z začetkom pike\n" +"več vrednosti lahko ločimo z ','\n" +"obdelane ključne besede: 'RAW', 'NOT RAW', 'LDR', 'HDR'\n" +"\n" +"Z desno miškino tipko kliknite, da dobite obstoječe podaljške" + +#: ../src/libs/filters/filename.c:410 +msgid "" +"click to select filename\n" +"ctrl+click to select multiple values" +msgstr "" +"kliknite, da izberete ime datoteke\n" +"krmilka-klik za izbiro več vrednosti" + +#: ../src/libs/filters/filename.c:437 +msgid "" +"click to select extension\n" +"ctrl+click to select multiple values" +msgstr "" +"kliknite, da izberete podaljšek imena\n" +"krmilka-klik za izbiro več vrednosti" + +#. the button to close the popup +#: ../src/libs/filters/filename.c:457 +msgid "ok" +msgstr "ok" + +#: ../src/libs/filters/grouping.c:141 ../src/libs/filters/grouping.c:169 +msgid "ungrouped images" +msgstr "negrupirane slike" + +#: ../src/libs/filters/grouping.c:168 +msgid "select the type of grouped image to filter" +msgstr "izberite vrsto združene slike kot filter" + +#. predefined selections +#: ../src/libs/filters/grouping.c:169 ../src/libs/filters/history.c:38 +#: ../src/libs/filters/local_copy.c:38 ../src/libs/filters/module_order.c:155 +#: ../src/libs/filters/rating_range.c:59 ../src/libs/filters/rating_range.c:83 +#: ../src/libs/filters/rating_range.c:131 ../src/libs/filters/ratio.c:68 +#: ../src/libs/filters/ratio.c:81 +msgid "all images" +msgstr "vse slike" + +#: ../src/libs/filters/history.c:153 +msgid "filter on history state" +msgstr "filter na stanje zgodovine" + +#: ../src/libs/filters/local_copy.c:142 +msgid "local copied state filter" +msgstr "filter stanja lokalnih kopij" + +#: ../src/libs/filters/module_order.c:161 +msgid "filter images based on their module order" +msgstr "filter slik na osnovi vrstnega reda modulov" + +#: ../src/libs/filters/rating.c:199 +msgid "comparator" +msgstr "primerjalnik" + +#: ../src/libs/filters/rating.c:200 ../src/libs/filters/rating.c:210 +msgid "filter by images rating" +msgstr "filter ocen slik" + +#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:596 +#: ../src/libs/tools/ratings.c:56 +msgid "ratings" +msgstr "ocene" + +#: ../src/libs/filters/rating.c:211 +msgid "unstarred only" +msgstr "samo brez zvezdic" + +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:65 +#: ../src/libs/filters/rating_range.c:89 +msgid "rejected only" +msgstr "samo zavrnjene" + +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:62 +#: ../src/libs/filters/rating_range.c:86 ../src/libs/filters/rating_range.c:158 +msgid "all except rejected" +msgstr "vse razen zavrnjenih" + +#: ../src/libs/filters/rating_range.c:67 ../src/libs/filters/rating_range.c:91 +msgid "not rated only" +msgstr "samo neocenjeno" + +#: ../src/libs/filters/rating_range.c:296 +msgid "better" +msgstr "bolje" + +#: ../src/libs/filters/rating_range.c:297 +msgid "worse" +msgstr "slabše" + +#: ../src/libs/filters/rating_range.c:298 +msgid "cap" +msgstr "kapica" + +#: ../src/libs/filters/rating_range.c:313 +msgid "rating filter" +msgstr "filter ocen" + +#: ../src/libs/filters/ratio.c:70 ../src/libs/filters/ratio.c:82 +msgid "portrait images" +msgstr "portretne slike" + +#: ../src/libs/filters/ratio.c:71 ../src/libs/filters/ratio.c:83 +msgid "square images" +msgstr "kvadratne slike" + +#: ../src/libs/filters/ratio.c:72 ../src/libs/filters/ratio.c:84 +msgid "landscape images" +msgstr "ležeče slike" + +#: ../src/libs/filters/search.c:179 +#, no-c-format +msgid "" +"filter by text from images metadata, camera brand/model, tags, file path and " +"name\n" +"`%' is the wildcard character\n" +"by default start and end wildcards are auto-applied\n" +"starting or ending with a double quote disables the corresponding wildcard\n" +"is dimmed during the search execution" +msgstr "" +"filtrirajte po besedilu iz metapodatkov, znamke in modela kamere, oznak, " +"poti datoteke in imena\n" +"`%'je splošni znak\n" +"privzeto se samodejno uporabijo splošni znaki za začetek in konec\n" +"začetek ali zaključek z dvojnim narekovajem onemogoča ustrezni splošni znak\n" +"in je med izvedbo iskanja zatemnjen" + +#: ../src/libs/geotagging.c:368 +msgid "apply offset and geo-location" +msgstr "uveljavi odmik in geolociranje" + +#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1914 +msgid "apply geo-location" +msgstr "uveljavi geolociranje" + +#: ../src/libs/geotagging.c:371 +msgid "" +"apply offset and geo-location to matching images\n" +"double operation: two ctrl-z to undo" +msgstr "" +"uveljavi odmik in geolokacijo na ustreznih slikah\n" +"dvojna operacija: dvakrat krmilka-Z za razveljavitev" + +#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1915 +msgid "apply geo-location to matching images" +msgstr "uveljavi geolokacijo na ustreznih slikah" + +#: ../src/libs/geotagging.c:809 +msgid "GPX file track segments" +msgstr "segmenti sledi datoteke GPX" + +#: ../src/libs/geotagging.c:831 ../src/libs/geotagging.c:1873 +msgid "start time" +msgstr "začetni čas" + +#: ../src/libs/geotagging.c:832 +msgid "end time" +msgstr "čas konca" + +#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1875 +msgid "points" +msgstr "točke" + +#: ../src/libs/geotagging.c:834 ../src/libs/geotagging.c:1877 +#: ../src/libs/image.c:494 +msgid "images" +msgstr "slike" + +#: ../src/libs/geotagging.c:927 +msgid "open GPX file" +msgstr "odpri datoteko GPX" + +#: ../src/libs/geotagging.c:928 ../src/libs/tools/lighttable.c:330 +#: ../src/libs/tools/lighttable.c:399 ../src/views/darkroom.c:2091 +msgid "preview" +msgstr "predogled" + +#: ../src/libs/geotagging.c:941 +msgid "GPS data exchange format" +msgstr "GPS Data Exchange format" + +#: ../src/libs/geotagging.c:1743 +msgid "date/time" +msgstr "datum in čas" + +#: ../src/libs/geotagging.c:1744 +msgid "" +"enter the new date/time (YYYY:MM:DD hh:mm:ss[.sss])\n" +"key in the new numbers or scroll over the cell" +msgstr "" +"vnesite nov datum in čas (YYYY:MM:DD hh:mm:ss[.sss])\n" +"vtipkajte nove številke ali potegnite prek celice" + +#: ../src/libs/geotagging.c:1748 +msgid "original date/time" +msgstr "izvorni datum in čas" + +#: ../src/libs/geotagging.c:1752 +msgid "lock date/time offset value to apply it onto another selection" +msgstr "zakleni datumsko oz. časovni odmik za uveljavitev v drugi izbiri" + +#: ../src/libs/geotagging.c:1756 +msgid "date/time offset" +msgstr "datumski oz. časovni odmik" + +#: ../src/libs/geotagging.c:1757 +msgid "offset or difference ([-]dd hh:mm:ss[.sss])" +msgstr "odmik ali razlika ([-]dd hh:mm:ss)" + +#. apply +#: ../src/libs/geotagging.c:1761 +msgid "apply offset" +msgstr "uveljavi odmik" + +#: ../src/libs/geotagging.c:1762 +msgid "apply offset to selected images" +msgstr "uveljavi časovni zamik na izbranih slikah" + +#: ../src/libs/geotagging.c:1765 +msgid "apply date/time" +msgstr "uveljavi datum in čas" + +#: ../src/libs/geotagging.c:1766 +msgid "apply the same date/time to selected images" +msgstr "uveljavi enak datumski oz. časovni zamik za izbrane slike" + +#: ../src/libs/geotagging.c:1776 +msgid "" +"start typing to show a list of permitted values and select your timezone.\n" +"press enter to confirm, so that the asterisk * disappears" +msgstr "" +"začnite tipkati, da prikažete seznam dovoljenih vrednosti in izberite svoj " +"časovni pas.\n" +"pritisnite enter za potrditev, tako da zvezdica * izgine" + +#. gpx +#: ../src/libs/geotagging.c:1819 +msgid "apply GPX track file..." +msgstr "uveljavi datoteko sledi GPX..." + +#: ../src/libs/geotagging.c:1820 +msgid "parses a GPX file and updates location of selected images" +msgstr "pregleda datoteko GPX in določi lokacijo izbranih slik" + +#: ../src/libs/geotagging.c:1831 +msgctxt "section" +msgid "GPX file" +msgstr "datoteka GPX" + +#: ../src/libs/geotagging.c:1838 +msgid "select a GPX track file..." +msgstr "izberi datoteko sledi GPX..." + +#: ../src/libs/geotagging.c:1855 +msgid "" +"list of track segments in the GPX file, for each segment:\n" +"- the start date/time in local time (LT)\n" +"- the number of track points\n" +"- the number of matching images based on images date/time, offset and time " +"zone\n" +"- more detailed time information hovering the row" +msgstr "" +"seznam segmentov sledi v datoteki gpx, za vsak segment:\n" +"- začetni datum / čas po lokalnem času (LT)\n" +"- število točk sledi\n" +"- število ujemajočih se slik glede na datum / uro, odmik in časovni pas\n" +"- podrobnejše informacije o času, ko je kazalec miška nad vrstico" + +#: ../src/libs/geotagging.c:1894 +msgid "preview images" +msgstr "predogled slik" + +#: ../src/libs/geotagging.c:1899 +msgid "show on map matching images" +msgstr "pokaži ustrezne slike na zemljevidu" + +#: ../src/libs/geotagging.c:1902 +msgid "select images" +msgstr "izberite slike" + +#: ../src/libs/geotagging.c:1903 +msgid "select matching images" +msgstr "izberi ustrezne slike" + +#: ../src/libs/geotagging.c:1911 +msgid "number of matching images versus selected images" +msgstr "število ustreznih slik nasproti izbranim slikam" + +#: ../src/libs/histogram.c:110 +msgid "monochromatic" +msgstr "enobarvni" + +#: ../src/libs/histogram.c:111 +msgid "analogous" +msgstr "analogni" + +#: ../src/libs/histogram.c:112 +msgid "analogous complementary" +msgstr "analogni komplementarni" + +#: ../src/libs/histogram.c:113 +msgid "complementary" +msgstr "komplementarni" + +#: ../src/libs/histogram.c:114 +msgid "split complementary" +msgstr "razcep komplementarnega" + +#: ../src/libs/histogram.c:115 +msgid "dyad" +msgstr "diadni" + +#: ../src/libs/histogram.c:116 +msgid "triad" +msgstr "triadni" + +#: ../src/libs/histogram.c:117 +msgid "tetrad" +msgstr "tetradno" + +#: ../src/libs/histogram.c:123 +msgid "vectorscope" +msgstr "vektorskop" + +#: ../src/libs/histogram.c:124 +msgid "waveform" +msgstr "oblika vala" + +#: ../src/libs/histogram.c:125 +msgid "RGB parade" +msgstr "RGB parada" + +#: ../src/libs/histogram.c:126 ../src/libs/histogram.c:2622 +msgid "histogram" +msgstr "histogram" + +#: ../src/libs/histogram.c:218 +msgid "scopes" +msgstr "obsegi" + +#: ../src/libs/histogram.c:757 +#| msgid "unsupported input profile has been replaced by linear Rec709 RGB!" +msgid "" +"unsupported vectorscope profile selected, it will be replaced with linear " +"Rec2020" +msgstr "izbran nepodprt profil vektorskopa, bo nadomeščen z linearnim Rec2020" + +#: ../src/libs/histogram.c:1715 +msgid "scroll to coarse-rotate" +msgstr "drsajte za grobi zasuk" + +#: ../src/libs/histogram.c:1716 +msgid "ctrl+scroll to fine rotate" +msgstr "krmilka+drsanje za fino sukanje" + +#: ../src/libs/histogram.c:1717 +msgid "shift+scroll to change width" +msgstr "dvigalka+drsanje za spreminjanje širine" + +#: ../src/libs/histogram.c:1718 +msgid "alt+scroll to cycle" +msgstr "alt+drsanje za kroženje" + +#: ../src/libs/histogram.c:1732 +msgid "drag to change black point" +msgstr "povlek za spreminjanje črne točke" + +#: ../src/libs/histogram.c:1733 ../src/libs/histogram.c:1740 +msgid "double-click resets" +msgstr "dvojni klik za ponastavitev" + +#: ../src/libs/histogram.c:1739 +msgid "drag to change exposure" +msgstr "povlek za spremembo ekspozicije" + +#: ../src/libs/histogram.c:1923 ../src/libs/histogram.c:1965 +msgid "set scale to linear" +msgstr "nastavi merilo na linearno" + +#: ../src/libs/histogram.c:1928 ../src/libs/histogram.c:1970 +msgid "set scale to logarithmic" +msgstr "nastavi merilo na logaritemsko" + +#: ../src/libs/histogram.c:1946 +msgid "set scope to vertical" +msgstr "nastavi obseg na navpičnega" + +#: ../src/libs/histogram.c:1951 +msgid "set scope to horizontal" +msgstr "nastavi obseg na vodoravnega" + +#: ../src/libs/histogram.c:1980 +msgid "set view to AzBz" +msgstr "nastavi pogled na AzBz" + +#: ../src/libs/histogram.c:1986 +msgid "set view to RYB" +msgstr "nastavi pogled na RYB" + +#: ../src/libs/histogram.c:1992 +msgid "set view to u*v*" +msgstr "nastavi pogled na u*v*" + +#: ../src/libs/histogram.c:2625 ../src/libs/histogram.c:2691 +msgid "cycle histogram modes" +msgstr "zankaj načine histograma" + +#: ../src/libs/histogram.c:2630 ../src/libs/histogram.c:2693 +msgid "hide histogram" +msgstr "skrij histogram" + +#: ../src/libs/histogram.c:2696 ../src/libs/histogram.c:2729 +msgid "switch histogram view" +msgstr "preklopi v način histograma" + +#: ../src/libs/histogram.c:2704 +msgid "toggle blue channel" +msgstr "preklopi levi kanal" + +#: ../src/libs/histogram.c:2706 ../src/libs/histogram.c:2715 +#: ../src/libs/histogram.c:2724 +msgid "toggle colors" +msgstr "preklopi barve" + +#: ../src/libs/histogram.c:2713 +msgid "toggle green channel" +msgstr "preklopi zeleni kanal" + +#: ../src/libs/histogram.c:2722 +msgid "toggle red channel" +msgstr "preklopi rdeči kanal" + +#: ../src/libs/histogram.c:2734 +msgid "cycle vectorscope types" +msgstr "kroži po vrstah vektorskopa" + +#: ../src/libs/histogram.c:2745 +msgid "color harmonies" +msgstr "barvne harmonije" + +#: ../src/libs/histogram.c:2759 +msgid "cycle color harmonies" +msgstr "kroži po barvnih harmonijah" + +#: ../src/libs/history.c:127 +msgid "compress history stack" +msgstr "stisni sklad zgodovine" + +#: ../src/libs/history.c:128 +msgid "" +"create a minimal history stack which produces the same image\n" +"ctrl+click to truncate history to the selected item" +msgstr "" +"ustvari minimalni sklad zgodovine, ki ustvari enako sliko\n" +"krmilka-klik za rezanje zgodovine pri izbranem vnosu" + +#: ../src/libs/history.c:139 +msgid "create a style from the current history stack" +msgstr "ustvari slog iz trenutnega sklada zgodovine" + +#: ../src/libs/history.c:141 +msgid "create style from history" +msgstr "ustvari slog iz zgodovine" + +#: ../src/libs/history.c:212 +msgid "always-on module" +msgstr "vedno prikazuj modul" + +#: ../src/libs/history.c:218 +msgid "default enabled module" +msgstr "privzeto omogočen modul" + +#: ../src/libs/history.c:225 +msgid "deprecated module" +msgstr "zastareli modul" + +#: ../src/libs/history.c:945 +msgid "colorspace" +msgstr "barvni prostor" + +#: ../src/libs/history.c:947 +msgid "mask mode" +msgstr "maskirni način" + +#: ../src/libs/history.c:949 +msgid "blend mode" +msgstr "način mešanja" + +#: ../src/libs/history.c:951 +msgid "blend operation" +msgstr "operacija mešanja" + +#: ../src/libs/history.c:953 +msgid "blend fulcrum" +msgstr "izhodišče mešanja" + +#: ../src/libs/history.c:961 +msgid "mask blur" +msgstr "maska zamegljevanja" + +#: ../src/libs/history.c:964 +msgid "raster mask instance" +msgstr "pojavek rastrske maske" + +#: ../src/libs/history.c:965 +msgid "raster mask id" +msgstr "id rastrske maske" + +#: ../src/libs/history.c:966 +msgid "invert mask" +msgstr "preobrni masko" + +#: ../src/libs/history.c:971 +msgid "drawn mask polarity" +msgstr "polarnost narisane maske" + +#: ../src/libs/history.c:975 +#, c-format +msgid "a drawn mask was added" +msgstr "narisana maska je bila dodana" + +#: ../src/libs/history.c:977 +#, c-format +msgid "the drawn mask was removed" +msgstr "narisana maska je bila odstranjena" + +#: ../src/libs/history.c:978 +#, c-format +msgid "the drawn mask was changed" +msgstr "narisana maska je bila spremenjena" + +#: ../src/libs/history.c:1010 +msgid "parametric output mask:" +msgstr "parametrska izhodna maska:" + +#: ../src/libs/history.c:1011 +msgid "parametric input mask:" +msgstr "parametrska vhodna maska:" + +#: ../src/libs/history.c:1322 +msgid "delete image's history?" +msgstr "zbrišem zgodovino slik?" + +#: ../src/libs/history.c:1323 +msgid "do you really want to clear history of current image?" +msgstr "ali res želite očistiti zgodovino sprememb trenutne slike?" + +#: ../src/libs/image.c:74 +#| msgid "actual selection" +msgid "actions on selection" +msgstr "dejavnosti na izbiri" + +#: ../src/libs/image.c:302 +msgid "delete (trash)" +msgstr "briši (smeti)" + +#: ../src/libs/image.c:305 +msgid "physically delete from disk (using trash if possible)" +msgstr "fizično odstrani z diska (uporabi smeti, če je možno)" + +#: ../src/libs/image.c:306 +msgid "physically delete from disk immediately" +msgstr "nemudoma fizično zbriši z diska" + +#: ../src/libs/image.c:506 ../src/libs/modulegroups.c:3813 +#: ../src/libs/styles.c:880 +msgid "remove" +msgstr "odstrani" + +#: ../src/libs/image.c:508 +msgid "remove images from the image library, without deleting" +msgstr "odstrani slike iz knjižnice slik, brez brisanja" + +#: ../src/libs/image.c:517 +msgid "move..." +msgstr "prenesi..." + +#: ../src/libs/image.c:519 +msgid "move to other folder" +msgstr "preseli v drugo mapo" + +#: ../src/libs/image.c:522 +msgid "copy..." +msgstr "kopiraj..." + +#: ../src/libs/image.c:524 +msgid "copy to other folder" +msgstr "kopiraj v drugo mapo" + +#: ../src/libs/image.c:528 +msgid "create HDR" +msgstr "ustvari HDR" + +#: ../src/libs/image.c:530 +msgid "create a high dynamic range image from selected shots" +msgstr "ustvari sliko z visoko dinamičnim razponom iz izbranih slik" + +#: ../src/libs/image.c:535 +msgid "add a duplicate to the image library, including its history stack" +msgstr "dodaj duplikat v zbirko slik skupaj s svojim skladom zgodovine" + +#: ../src/libs/image.c:542 ../src/libs/image.c:547 +msgid "rotate selected images 90 degrees CCW" +msgstr "zasukaj izbrane slike za 90 stopinj v nasprotni smeri urnega kazalca" + +#: ../src/libs/image.c:553 ../src/libs/image.c:558 +msgid "rotate selected images 90 degrees CW" +msgstr "zasukaj izbrane slike za 90 stopinj v smeri urnega kazalca" + +#: ../src/libs/image.c:561 +msgid "reset rotation" +msgstr "ponastavi sukanje" + +#: ../src/libs/image.c:563 +msgid "reset rotation to EXIF data" +msgstr "ponastavi sukanje slike v EXIF" + +#: ../src/libs/image.c:566 +msgid "copy locally" +msgstr "kopiraj lokalno" + +#: ../src/libs/image.c:568 +msgid "copy the image locally" +msgstr "kopiraj sliko lokalno" + +#: ../src/libs/image.c:572 +msgid "resync local copy" +msgstr "pon. sinhr. lok. kopijo" + +#: ../src/libs/image.c:574 +msgid "synchronize the image's XMP and remove the local copy" +msgstr "sinhroniziraj XMP del slike in odstrani lokalno kopijo" + +#: ../src/libs/image.c:578 +msgctxt "selected images action" +msgid "group" +msgstr "grupa" + +#: ../src/libs/image.c:580 +msgid "add selected images to expanded group or create a new one" +msgstr "dodaj izbrane slike v razširjeno grupo ali ustvari novo grupo" + +#: ../src/libs/image.c:584 +msgid "ungroup" +msgstr "razgrupiraj" + +#: ../src/libs/image.c:586 +msgid "remove selected images from the group" +msgstr "odstrani izbrane slike iz grupe" + +#: ../src/libs/image.c:598 +msgid "select ratings metadata" +msgstr "izberite metapodatke o ocenah" + +#: ../src/libs/image.c:605 +msgid "colors" +msgstr "barve" + +#: ../src/libs/image.c:607 +msgid "select colors metadata" +msgstr "izberite metapodatke barv" + +#: ../src/libs/image.c:616 +msgid "select tags metadata" +msgstr "izberi oznako metapodatkov" + +#: ../src/libs/image.c:625 +msgid "select geo tags metadata" +msgstr "zbriši geo oznako metapodatka" + +#: ../src/libs/image.c:636 +msgid "select darktable metadata (from metadata editor module)" +msgstr "izberi darktable metapodatke (iz modula urejevalnik metapodatkov)" + +#: ../src/libs/image.c:649 +msgid "set the selected image as source of metadata" +msgstr "nastavit izbrano sliko kot vir metapodatkov" + +#: ../src/libs/image.c:656 +msgid "paste selected metadata on selected images" +msgstr "prilepi izbrane metapodatke na izbranih slikah" + +#: ../src/libs/image.c:661 +msgid "clear selected metadata on selected images" +msgstr "očisti izbrane metapodatke na izbranih slikah" + +#: ../src/libs/image.c:667 +msgid "how to handle existing metadata" +msgstr "kako ravnati z obstoječimi metapodatki" + +#: ../src/libs/image.c:670 +msgid "merge" +msgstr "zlij" + +#: ../src/libs/image.c:675 +msgid "update image information to match changes to file" +msgstr "osveži info o sliki, da ustreza spremembam datoteke" + +#: ../src/libs/image.c:680 +msgid "set selection as monochrome images and activate monochrome workflow" +msgstr "nastavi izbiro enobarvnih slik in aktiviraj enobarvni potek dela" + +#: ../src/libs/image.c:684 +msgid "set selection as color images" +msgstr "nastavi izbiro barvnih slik" + +#: ../src/libs/image.c:696 +msgid "duplicate virgin" +msgstr "podvoji izvorno" + +#: ../src/libs/import.c:264 +#, c-format +msgid "device \"%s\" connected on port \"%s\"." +msgstr "naprava '%s' je priklopljena na vrata '%s'." + +#: ../src/libs/import.c:274 ../src/libs/import.c:335 ../src/libs/import.c:1701 +msgid "copy & import from camera" +msgstr "kopiraj in uvozi iz kamere" + +#: ../src/libs/import.c:285 ../src/libs/import.c:337 +msgid "tethered shoot" +msgstr "upravljano snemanje" + +#: ../src/libs/import.c:292 ../src/libs/import.c:338 +msgid "unmount camera" +msgstr "odklopi kamero" + +#: ../src/libs/import.c:313 +msgid "" +"camera is locked by another application\n" +"make sure it is no longer mounted\n" +"or quit the locking application" +msgstr "" +"fotoaparat je zaklenil drug program\n" +"preverite, da ni priklopljen na računalnik\n" +"ali zapustite aplikacijo, ki ga zaklepa" + +#: ../src/libs/import.c:316 +msgid "tethering and importing is disabled for this camera" +msgstr "oddaljeno upravljanje in uvažanje slik je onemogočeno za to kamero" + +#: ../src/libs/import.c:318 ../src/libs/import.c:336 +msgid "mount camera" +msgstr "priklopi kamero" + +#: ../src/libs/import.c:754 +#, c-format +msgid "%d image out of %d selected" +msgid_plural "%d images out of %d selected" +msgstr[0] "%d slika izmed %d izbranih" +msgstr[1] "%d sliki izmed %d izbranih" +msgstr[2] "%d slike izmed %d izbranih" +msgstr[3] "%d slik izmed %d izbranih" + +#: ../src/libs/import.c:1046 +msgid "you can't delete the selected place" +msgstr "ne morete izbrisati izbranega kraja" + +#: ../src/libs/import.c:1160 +msgid "choose the root of the folder tree below" +msgstr "izberite koren drevesa map spodaj" + +#: ../src/libs/import.c:1163 +msgid "places" +msgstr "kraji" + +#: ../src/libs/import.c:1169 +msgid "restore all default places you have removed by right-click" +msgstr "obnovi vse privzete kraje, ki ste jih odstraniti z desnim klikom" + +#: ../src/libs/import.c:1174 +msgid "" +"add a custom place\n" +"\n" +"right-click on a place to remove it" +msgstr "" +"dodaj kraj po meri\n" +"\n" +"desno kliknite na kraj, da ga odstranite" + +#: ../src/libs/import.c:1181 +msgid "you can add custom places using the plus icon" +msgstr "lahko dodajate kraje po meri z uporabo ikone plus" + +#: ../src/libs/import.c:1206 +msgid "select a folder to see the content" +msgstr "izberite mapo, da bi videli vsebino" + +#: ../src/libs/import.c:1209 +msgid "folders" +msgstr "mape" + +#: ../src/libs/import.c:1279 +msgid "home" +msgstr "domov" + +#: ../src/libs/import.c:1291 +msgid "pictures" +msgstr "slike" + +#: ../src/libs/import.c:1557 +msgid "mark already imported pictures" +msgstr "označi že uvožene slike" + +#: ../src/libs/import.c:1571 +msgid "modified" +msgstr "spremenjeno" + +#: ../src/libs/import.c:1576 +msgid "file 'modified date/time', may be different from 'Exif date/time'" +msgstr "" +"'datum/čas spremembe' datoteke, se lahko razlikuje od 'datuma/časa v Exifu'" + +#: ../src/libs/import.c:1588 +msgid "show/hide thumbnails" +msgstr "prikaži/skrij predogledne sličice" + +#: ../src/libs/import.c:1658 +msgid "naming rules" +msgstr "pravila poimenovanja" + +#: ../src/libs/import.c:1699 +msgid "add to library" +msgstr "dodaj v knjižnico" + +#: ../src/libs/import.c:1700 +msgid "copy & import" +msgstr "kopiraj in uvozi" + +#: ../src/libs/import.c:1740 +msgid "select new" +msgstr "izberi novega" + +#: ../src/libs/import.c:1783 +msgid "please wait while prefetching the list of images from camera..." +msgstr "prosim počakajte, dokler ne pridobim seznama slik iz kamere..." + +#: ../src/libs/import.c:1922 +msgid "invalid override date/time format" +msgstr "neveljaven format preglasitve datuma/časa" + +#: ../src/libs/import.c:1986 +#| msgid "recursive directory" +msgid "import base directory" +msgstr "uvozi osnovni imenik" + +#: ../src/libs/import.c:1987 +msgid "" +"before copying images to the darktable base directory make sure it is " +"defined as you prefer.\n" +"further information can be found in the darktable manual.\n" +"\n" +"inspect darktable preferences -> import.\n" +"check and possibly correct the 'base directory naming pattern'" +msgstr "" +"preden kopirate slike v osnovni imenik darktable, se prepričajte, da je" +" definiran po želji.\n" +"dodatne informacije najdete v priročniku za darktable.\n" +"\n" +"preglejte nastavitve darktable -> uvoz.\n" +"preverite in po možnosti popravite 'vzorec poimenovanja osnovnega imenika'" + +#: ../src/libs/import.c:1991 +msgid "_come back & check" +msgstr "_vrnite se & preverite" + +#: ../src/libs/import.c:1991 +#| msgid "understood" +msgid "_understood & done" +msgstr "_razumljeno & izvedeno" + +#: ../src/libs/import.c:2057 +msgid "add to library..." +msgstr "dodaj v knjižnico..." + +#: ../src/libs/import.c:2058 +msgid "add existing images to the library" +msgstr "dodaj obstoječe slike v knjižnico" + +#: ../src/libs/import.c:2064 +msgid "copy & import..." +msgstr "kopiraj in uvozi..." + +#: ../src/libs/import.c:2065 +msgid "" +"copy and optionally rename images before adding them to the library\n" +"patterns can be defined to rename the images and specify the destination " +"folders" +msgstr "" +"kopirajte in po želji preimenujte slike, preden jih dodate v knjižnico\n" +"vzorce je mogoče definirati za preimenovanje slik in določitev ciljne mape" + +#. collapsible section +#: ../src/libs/import.c:2088 +msgid "parameters" +msgstr "parametri" + +#: ../src/libs/ioporder.c:202 +msgid "v3.0 for RAW input (default)" +msgstr "v3.0 za surovi vhod (privzeto)" + +#: ../src/libs/ioporder.c:208 +msgid "v3.0 for JPEG/non-RAW input" +msgstr "v3.0 za JPEG/ne-surovi vhod" + +#: ../src/libs/lib.c:376 +msgid "deleting preset for obsolete module" +msgstr "brisanje začetnih nastavitev zastarelega modula" + +#: ../src/libs/lib.c:542 +msgid "manage presets..." +msgstr "upravljaj prednastavitve..." + +#: ../src/libs/lib.c:567 +msgid "nothing to save" +msgstr "ni kaj shraniti" + +#: ../src/libs/lib.c:1106 +msgid "show module" +msgstr "prikaži modul" + +#: ../src/libs/lib.c:1431 +msgid "utility module" +msgstr "uporabni modul" + +#: ../src/libs/live_view.c:107 +msgid "live view" +msgstr "ogled v živo" + +#: ../src/libs/live_view.c:289 ../src/libs/live_view.c:290 +msgid "toggle live view" +msgstr "preklopi živ pogled" + +#. TODO: see _zoom_live_view_clicked +#: ../src/libs/live_view.c:291 ../src/libs/live_view.c:292 +msgid "zoom live view" +msgstr "zumiraj živi pogled" + +#: ../src/libs/live_view.c:295 +msgid "flip live view horizontally" +msgstr "vodoravno prezrcali živi pogled" + +#: ../src/libs/live_view.c:301 +msgid "move focus point in (big steps)" +msgstr "premakni točko ostrenja (z velikimi koraki)" + +#: ../src/libs/live_view.c:302 +msgid "move focus point in (small steps)" +msgstr "premakni točko ostrenja (z majhnimi koraki)" + +#. TODO icon not centered +#: ../src/libs/live_view.c:303 +msgid "run autofocus" +msgstr "poženi samodejno ostrenje" + +#: ../src/libs/live_view.c:304 +msgid "move focus point out (small steps)" +msgstr "premakni točko ostrenja ven (z majhnimi koraki)" + +#. TODO same here +#: ../src/libs/live_view.c:305 +msgid "move focus point out (big steps)" +msgstr "premakni točko ostrenja ven (z velikimi koraki)" + +#: ../src/libs/live_view.c:310 +msgid "overlay" +msgstr "prekrij" + +#: ../src/libs/live_view.c:312 +msgid "selected image" +msgstr "izbrana slika" + +#: ../src/libs/live_view.c:314 +msgid "overlay another image over the live view" +msgstr "prekrij še eno sliko čez živi pogled" + +#: ../src/libs/live_view.c:323 +msgid "enter image id of the overlay manually" +msgstr "vnesite id slike ročno čez prekrivno plast" + +#: ../src/libs/live_view.c:334 +msgid "overlay mode" +msgstr "način prekrivanja" + +#: ../src/libs/live_view.c:336 +msgctxt "blendmode" +msgid "xor" +msgstr "xor" + +#: ../src/libs/live_view.c:337 +msgctxt "blendmode" +msgid "add" +msgstr "dodaj" + +#: ../src/libs/live_view.c:338 +msgctxt "blendmode" +msgid "saturate" +msgstr "nasičenje" + +#: ../src/libs/live_view.c:344 +msgctxt "blendmode" +msgid "color dodge" +msgstr "barvna slabitev" + +#: ../src/libs/live_view.c:345 +msgctxt "blendmode" +msgid "color burn" +msgstr "barvno pregorevanje" + +#: ../src/libs/live_view.c:346 +msgctxt "blendmode" +msgid "hard light" +msgstr "trda svetloba" + +#: ../src/libs/live_view.c:347 +msgctxt "blendmode" +msgid "soft light" +msgstr "mehka svetloba" + +#: ../src/libs/live_view.c:349 +msgctxt "blendmode" +msgid "exclusion" +msgstr "izločanje" + +#: ../src/libs/live_view.c:350 +msgctxt "blendmode" +msgid "HSL hue" +msgstr "odtenek HSL" + +#: ../src/libs/live_view.c:351 +msgctxt "blendmode" +msgid "HSL saturation" +msgstr "nasičenost HSL" + +#: ../src/libs/live_view.c:352 +msgctxt "blendmode" +msgid "HSL color" +msgstr "barva HSL" + +#: ../src/libs/live_view.c:353 +msgctxt "blendmode" +msgid "HSL luminosity" +msgstr "svetlost HSL" + +#: ../src/libs/live_view.c:354 +msgid "mode of the overlay" +msgstr "način prekrivanja" + +#: ../src/libs/live_view.c:360 +msgid "split line" +msgstr "črta razdelitve" + +#: ../src/libs/live_view.c:363 +msgid "only draw part of the overlay" +msgstr "nariši samo del prekrivne plasti" + +#: ../src/libs/location.c:100 +msgid "find location" +msgstr "najdi lokacijo" + +#: ../src/libs/map_locations.c:36 +msgid "locations" +msgstr "lokacije" + +#: ../src/libs/map_locations.c:234 +msgid "new sub-location" +msgstr "nova pod-lokacija" + +#: ../src/libs/map_locations.c:238 ../src/libs/map_locations.c:286 +#: ../src/libs/map_locations.c:960 +msgid "new location" +msgstr "nova lokacija" + +#: ../src/libs/map_locations.c:587 +#, c-format +msgid "location name '%s' already exists" +msgstr "lokacija z imenom '%s' že obstaja" + +#: ../src/libs/map_locations.c:778 +msgid "edit location" +msgstr "uredi lokacijo" + +#: ../src/libs/map_locations.c:781 +msgid "delete location" +msgstr "zbriši lokacijo" + +#: ../src/libs/map_locations.c:791 +msgid "update filmstrip" +msgstr "osveži kos filma" + +#: ../src/libs/map_locations.c:798 +msgid "go to collection (lighttable)" +msgstr "pojdi na zbirko (osvetljena podlaga)" + +#: ../src/libs/map_locations.c:844 +msgid "" +"terminate edit (press enter or escape) before selecting another location" +msgstr "" +"prekini urejanje (pritisnite Enter ali Escape), preden izberete drugo " +"lokacijo" + +#: ../src/libs/map_locations.c:931 +msgid "" +"list of user locations,\n" +"click to show or hide a location on the map:\n" +" - wheel scroll inside the shape to resize it\n" +" - <shift> or <ctrl> scroll to modify the width or the height\n" +" - click inside the shape and drag it to change its position\n" +" - ctrl+click to move an image from inside the location\n" +"ctrl+click to edit a location name\n" +" - a pipe '|' symbol breaks the name into several levels\n" +" - to remove a group of locations clear its name\n" +" - press enter to validate the new name, escape to cancel the edit\n" +"right-click for other actions: delete location and go to collection" +msgstr "" +"seznam uporabniških lokacij,\n" +"kliknite, da prikažete ali skrijete lokacijo na zemljevidu:\n" +" - s kolescem se pomaknite znotraj oblike, da ji spremenite velikost\n" +" - dvigalka ali krmilka in drsanje za spremembo širine ali višine\n" +" - kliknite znotraj oblike in jo povlecite, da spremenite njen položaj\n" +" - krmilka+klik za premik slike znotraj lokacije\n" +"krmilka+klik, za urejanje imena lokacije\n" +" - simbol cevi '|' razdeli ime na več ravni\n" +" - če želite odstraniti skupino lokacij, počistite njeno ime\n" +" - pritisnite Enter, da preverite veljavnost novega imena, escape pa za " +"preklic izdaje\n" +"klik z desno miškino tipko za druga dejanja: izbriši lokacijo in pojdi na " +"zbirko" + +#: ../src/libs/map_locations.c:957 +msgid "" +"select the shape of the location's limits on the map, circle or rectangle\n" +"or even polygon if available (select first a polygon place in 'find " +"location' module)" +msgstr "" +"izberite obliko omejitev lokacije na zemljevidu, to je krog ali pravokotnik\n" +"ali celo mnogokotnik, če je na voljo (izberite najprej prostor za " +"mnogokotnik v modulu 'najdi lokacijo')" + +#: ../src/libs/map_locations.c:961 +msgid "add a new location on the center of the visible map" +msgstr "dodaj novo lokacijo na sredino vidnega zemljevida" + +#: ../src/libs/map_locations.c:965 +msgid "show all" +msgstr "prikaži vse" + +#: ../src/libs/map_locations.c:968 +msgid "show all locations which are on the visible map" +msgstr "pokaži vse lokacije, ki so na vidnem zemljevidu" + +#: ../src/libs/map_settings.c:39 +msgid "map settings" +msgstr "nastavitve mape" + +#: ../src/libs/map_settings.c:89 +msgid "map source" +msgstr "vir zemljevida" + +#: ../src/libs/map_settings.c:90 +msgid "select the source of the map. some entries might not work" +msgstr "izberite vir zemljevida. nekatere vrednosti morda ne delujejo" + +#: ../src/libs/masks.c:108 +msgid "feather" +msgstr "pero" + +#: ../src/libs/masks.c:357 +#, c-format +msgid "group #%d" +msgstr "grupa #%d" + +#: ../src/libs/masks.c:1097 +msgid "duplicate this shape" +msgstr "dupliciraj to obliko" + +#: ../src/libs/masks.c:1101 +msgid "delete this shape" +msgstr "briši to obliko" + +#: ../src/libs/masks.c:1107 +msgid "delete group" +msgstr "briši grupo" + +#: ../src/libs/masks.c:1114 +msgid "remove from group" +msgstr "odstrani iz skupine" + +#: ../src/libs/masks.c:1122 +msgid "group the forms" +msgstr "grupiraj forme" + +#: ../src/libs/masks.c:1130 +msgid "use inverted shape" +msgstr "uporabi inverzno obliko" + +#: ../src/libs/masks.c:1134 +msgid "mode: union" +msgstr "način: unija" + +#: ../src/libs/masks.c:1136 +msgid "mode: intersection" +msgstr "način: presek" + +#: ../src/libs/masks.c:1138 +msgid "mode: difference" +msgstr "način: razlika" + +#: ../src/libs/masks.c:1140 +msgid "mode: sum" +msgstr "način: vsota" + +#: ../src/libs/masks.c:1142 +msgid "mode: exclusion" +msgstr "način : izvzetje" + +#: ../src/libs/masks.c:1158 +msgid "cleanup unused shapes" +msgstr "počisti neuporabljene oblike" + +#: ../src/libs/masks.c:1807 +msgid "created shapes" +msgstr "ustvarjene oblike" + +#: ../src/libs/masks.c:1900 ../src/libs/masks.c:1915 ../src/libs/masks.c:1929 +#: ../src/libs/masks.c:1933 +msgid "properties" +msgstr "lastnosti" + +#: ../src/libs/masks.c:1903 +msgid "no shapes selected" +msgstr "ni izbranih oblik" + +#: ../src/libs/masks.c:1929 +msgid "pressure" +msgstr "pritisk" + +#: ../src/libs/masks.c:1933 +msgid "smoothing" +msgstr "glajenje" + +#: ../src/libs/metadata.c:60 +msgid "metadata editor" +msgstr "urejevalnik metapodatkov" + +#: ../src/libs/metadata.c:459 ../src/libs/metadata_view.c:1219 +msgid "metadata settings" +msgstr "nastavitve metapodatkov" + +#: ../src/libs/metadata.c:461 ../src/libs/metadata_view.c:1221 +#| msgid "_defaults" +msgid "_default" +msgstr "_privzeto" + +#: ../src/libs/metadata.c:516 ../src/libs/metadata_view.c:1267 +msgid "visible" +msgstr "vidno" + +#: ../src/libs/metadata.c:524 +msgid "" +"tick if the corresponding metadata is of interest for you\n" +"it will be visible from metadata editor, collection and import module\n" +"it will be also exported" +msgstr "" +"odkljukajte, če vas ustrezni metapodatki zanimajo\n" +"bodo vidni v urejevalniku metapodatkov, zbirki in modul za uvoz\n" +"bodo tudi izvoženi" + +#: ../src/libs/metadata.c:529 ../src/libs/tagging.c:1705 +#: ../src/libs/tagging.c:1854 +msgid "private" +msgstr "zasebno" + +#: ../src/libs/metadata.c:534 +msgid "" +"tick if you want to keep this information private (not exported with images)" +msgstr "" +"označite, če želite te podatke ohraniti zasebne (se ne izvažajo s slikami)" + +#: ../src/libs/metadata.c:691 +msgid "" +"metadata text\n" +"ctrl+enter inserts a new line (caution, may not be compatible with standard " +"metadata)\n" +"if <leave unchanged> selected images have different metadata\n" +"in that case, right-click gives the possibility to choose one of them\n" +"escape to exit the popup window" +msgstr "" +"besedilo metapodatkov\n" +"krmilka-enter vstavi novo vrstico (previdno, morda ni združljiva s " +"standardnimi metapodatki)\n" +"krmilka+drsanje za spremembo velikosti besedilnega polja\n" +"če imajo <pustite_nespremenjene> izbrane slike različne metapodatke.\n" +"v tem primeru z desnim klikom omogočite izbiro ene od njih.\n" +"pritisnite tipko escape za izhod iz pojavnega okna" + +#: ../src/libs/metadata.c:736 +msgid "write metadata for selected images" +msgstr "zapiši metapodatke za izbrane slike" + +#: ../src/libs/metadata.c:737 +msgid "cancel" +msgstr "prekliči" + +#: ../src/libs/metadata.c:738 +#| msgctxt "accel" +#| msgid "replace metadata" +msgid "ignore changed metadata" +msgstr "prezri spremenjene metapodatke" + +#. <title>\0<description>\0<rights>\0<creator>\0<publisher> +#: ../src/libs/metadata.c:793 +msgid "CC BY" +msgstr "CC BY" + +#: ../src/libs/metadata.c:794 +msgid "Creative Commons Attribution (CC BY)" +msgstr "Prispevek Creative Commons (CC BY)" + +#: ../src/libs/metadata.c:795 +msgid "CC BY-SA" +msgstr "CC BY-SA" + +#: ../src/libs/metadata.c:796 +msgid "Creative Commons Attribution-ShareAlike (CC BY-SA)" +msgstr "Prispevek Creative Commons - Deljenje pod enakimi pogoji (CC BY-SA)" + +#: ../src/libs/metadata.c:797 +msgid "CC BY-ND" +msgstr "CC BY-ND" + +#: ../src/libs/metadata.c:798 +msgid "Creative Commons Attribution-NoDerivs (CC BY-ND)" +msgstr "Prispevek Creative Commons - Brez predelav (CC BY-ND)" + +#: ../src/libs/metadata.c:799 +msgid "CC BY-NC" +msgstr "CC BY-NC" + +#: ../src/libs/metadata.c:800 +msgid "Creative Commons Attribution-NonCommercial (CC BY-NC)" +msgstr "Prispevek Creative Commons - Nekomercialno (CC BY-NC)" + +#: ../src/libs/metadata.c:801 +msgid "CC BY-NC-SA" +msgstr "CC BY-NC-SA" + +#: ../src/libs/metadata.c:802 +msgid "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" +msgstr "" +"Prispevek Creative Commons - Nekomercialno - Deljenje pod enakimi pogoji (CC " +"BY-NC-SA)" + +#: ../src/libs/metadata.c:803 +msgid "CC BY-NC-ND" +msgstr "CC BY-NC-ND" + +#: ../src/libs/metadata.c:804 +msgid "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" +msgstr "" +"Prispevek Creative Commons - Nekomercialno - Brez predelav (CC BY-NC-ND)" + +#: ../src/libs/metadata.c:805 ../src/libs/metadata.c:806 +msgid "all rights reserved" +msgstr "vse pravice pridržane" + +#. internal +#: ../src/libs/metadata_view.c:125 +msgid "filmroll" +msgstr "zvitek filma" + +#: ../src/libs/metadata_view.c:127 +msgid "group id" +msgstr "id grupe" + +#: ../src/libs/metadata_view.c:129 +msgid "version" +msgstr "verzija" + +#: ../src/libs/metadata_view.c:132 +msgid "import timestamp" +msgstr "časovna oznaka" + +#: ../src/libs/metadata_view.c:133 +msgid "change timestamp" +msgstr "spremeni časovno oznako" + +#: ../src/libs/metadata_view.c:134 +msgid "export timestamp" +msgstr "izvozi časovno oznako" + +#: ../src/libs/metadata_view.c:135 +msgid "print timestamp" +msgstr "tiskaj časovno oznako" + +#: ../src/libs/metadata_view.c:136 +msgid "flags" +msgstr "zastavice" + +#: ../src/libs/metadata_view.c:146 +#| msgid "minimum focal length" +msgid "35mm equiv focal length" +msgstr "35 mm ekvivalent goriščne razdalje" + +#: ../src/libs/metadata_view.c:148 +msgid "focus distance" +msgstr "izmerjena razdalja" + +#: ../src/libs/metadata_view.c:150 +msgid "datetime" +msgstr "datum in čas" + +#: ../src/libs/metadata_view.c:153 +msgid "export width" +msgstr "širina izvoza" + +#: ../src/libs/metadata_view.c:154 +msgid "export height" +msgstr "višina izvoza" + +#: ../src/libs/metadata_view.c:162 +msgid "longitude" +msgstr "zemljepisna dolžina" + +#: ../src/libs/metadata_view.c:163 +msgid "elevation" +msgstr "višina" + +#: ../src/libs/metadata_view.c:167 +msgid "categories" +msgstr "kategorije" + +#: ../src/libs/metadata_view.c:174 +msgid "image information" +msgstr "informacije o sliki" + +#: ../src/libs/metadata_view.c:334 +msgid "unused/deprecated" +msgstr "neuporabljeno/zastarelo" + +#: ../src/libs/metadata_view.c:335 +msgid "LDR" +msgstr "LDR" + +#: ../src/libs/metadata_view.c:338 +msgid "marked for deletion" +msgstr "označeno za brisanje" + +#: ../src/libs/metadata_view.c:339 +msgid "auto-applying presets applied" +msgstr "uporabljene avtomatske nastavitve" + +#: ../src/libs/metadata_view.c:341 +msgid "has .txt" +msgstr "ima .txt" + +#: ../src/libs/metadata_view.c:342 +msgid "has .wav" +msgstr "ima .wav" + +#: ../src/libs/metadata_view.c:360 +#, c-format +msgid "image has %d star" +msgid_plural "image has %d stars" +msgstr[0] "slika ima %d zvezdico" +msgstr[1] "slika ima %d zvezdici" +msgstr[2] "slika ima %d zvezdice" +msgstr[3] "slika ima %d zvezdic" + +#: ../src/libs/metadata_view.c:436 +#, c-format +msgid "loader: %s" +msgstr "nalagalnik: %s" + +#: ../src/libs/metadata_view.c:626 +msgid "<various values>" +msgstr "<različne vrednosti>" + +#: ../src/libs/metadata_view.c:639 +#, c-format +msgid "" +"double-click to jump to film roll\n" +"%s" +msgstr "" +"dvoklik za prehod na zvitek filma\n" +"%s" + +#: ../src/libs/metadata_view.c:731 +#, c-format +msgid "%+.2f EV" +msgstr "%+.2f EV" + +#: ../src/libs/metadata_view.c:737 ../src/libs/metadata_view.c:749 +#: ../src/libs/metadata_view.c:754 +#, c-format +msgid "%.1f mm" +msgstr "%.1f mm" + +#: ../src/libs/metadata_view.c:778 +#, c-format +msgid "infinity" +msgstr "neskončnost" + +#: ../src/libs/metadata_view.c:782 +#, c-format +msgid "%.2f m" +msgstr "%.2f m" + +#: ../src/libs/metadata_view.c:1262 +msgid "" +"drag and drop one row at a time until you get the desired order\n" +"untick to hide metadata which are not of interest for you\n" +"if different settings are needed, use presets" +msgstr "" +"povlecite in spustite po eno vrstico naenkrat, dokler ne dobite želenega " +"vrstnega reda\n" +"počistite kljukico, da skrijete metapodatke, ki vas ne zanimajo\n" +"če so potrebne drugačne nastavitve, uporabite prednastavitve" + +#: ../src/libs/metadata_view.c:1423 +msgid "jump to film roll" +msgstr "skoči na zvitek filma" + +#: ../src/libs/recentcollect.c:68 +msgid "recently used collections" +msgstr "nedavno uporabljene zbirke" + +#: ../src/libs/recentcollect.c:109 +msgid " and " +msgstr " in " + +#: ../src/libs/recentcollect.c:114 +msgid " or " +msgstr " ali " + +#. case DT_LIB_COLLECT_MODE_AND_NOT: +#: ../src/libs/recentcollect.c:119 +msgid " but not " +msgstr " razen " + +#: ../src/libs/recentcollect.c:226 +msgid "recent collections settings" +msgstr "zadnje nastavitve zbirk" + +#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1753 +msgid "workflow: scene-referred" +msgstr "delovni tok: glede na sceno" + +#: ../src/libs/modulegroups.c:45 +msgid "modules: deprecated" +msgstr "moduli: zastarelo" + +#: ../src/libs/modulegroups.c:48 +msgid "last modified layout" +msgstr "zadnje spremenjena postavitev" + +#: ../src/libs/modulegroups.c:192 +msgid "modulegroups" +msgstr "skupine modulov" + +#. FIXME don't check here if on/off is enabled, because it depends on image (reload_defaults) +#. respond later to image changed signal +#: ../src/libs/modulegroups.c:307 ../src/libs/modulegroups.c:319 +#: ../src/libs/modulegroups.c:2411 ../src/libs/modulegroups.c:2413 +msgid "on-off" +msgstr "vključeno-izključeno" + +#: ../src/libs/modulegroups.c:501 ../src/libs/modulegroups.c:504 +msgid "" +"this quick access widget is disabled as there are multiple instances of this " +"module present. Please use the full module to access this widget..." +msgstr "" +"ta pripomoček za hitri dostop je onemogočen, saj obstaja več pojavkov tega " +"modula. Uporabite celotni modul za dostop do tega gradnika..." + +#: ../src/libs/modulegroups.c:594 +msgid "(some features may only be available in the full module interface)" +msgstr "(nekatere zmožnosti so na voljo samo v celotnem vmesniku modula)" + +#: ../src/libs/modulegroups.c:632 +#, c-format +msgid "go to the full version of the %s module" +msgstr "pojdi na polno različico modula %s" + +#: ../src/libs/modulegroups.c:1538 ../src/libs/modulegroups.c:1624 +#: ../src/libs/modulegroups.c:1660 ../src/libs/modulegroups.c:1710 +#: ../src/libs/modulegroups.c:1801 +msgctxt "modulegroup" +msgid "base" +msgstr "baza" + +#: ../src/libs/modulegroups.c:1557 +msgctxt "modulegroup" +msgid "tone" +msgstr "ton" + +#: ../src/libs/modulegroups.c:1566 ../src/libs/modulegroups.c:1674 +#: ../src/libs/modulegroups.c:1724 +msgctxt "modulegroup" +msgid "color" +msgstr "barva" + +#: ../src/libs/modulegroups.c:1582 ../src/libs/modulegroups.c:1682 +#: ../src/libs/modulegroups.c:1730 +msgctxt "modulegroup" +msgid "correct" +msgstr "popravi" + +#: ../src/libs/modulegroups.c:1600 ../src/libs/modulegroups.c:1694 +#: ../src/libs/modulegroups.c:1742 ../src/libs/modulegroups.c:2305 +msgctxt "modulegroup" +msgid "effect" +msgstr "efekt" + +#: ../src/libs/modulegroups.c:1618 +msgid "modules: all" +msgstr "moduli: vsi" + +#: ../src/libs/modulegroups.c:1639 +msgctxt "modulegroup" +msgid "grading" +msgstr "stopnjevanje" + +#: ../src/libs/modulegroups.c:1647 ../src/libs/modulegroups.c:2309 +msgctxt "modulegroup" +msgid "effects" +msgstr "učinki" + +#: ../src/libs/modulegroups.c:1655 +msgid "workflow: beginner" +msgstr "delovni tok: začetnik" + +#: ../src/libs/modulegroups.c:1704 +msgid "workflow: display-referred" +msgstr "delovni tok: glede na zaslon" + +#: ../src/libs/modulegroups.c:1757 +msgid "search only" +msgstr "samo iskanje" + +#: ../src/libs/modulegroups.c:1763 ../src/libs/modulegroups.c:2074 +#: ../src/libs/modulegroups.c:2583 +msgctxt "modulegroup" +msgid "deprecated" +msgstr "zastarelo" + +#: ../src/libs/modulegroups.c:1776 +msgid "previous config" +msgstr "prejšnja nastavitev" + +#: ../src/libs/modulegroups.c:1777 +msgid "previous layout" +msgstr "prejšnja postavitev" + +#: ../src/libs/modulegroups.c:1781 +msgid "previous config with new layout" +msgstr "prejšnja nastavitev z novo postavitvijo" + +#: ../src/libs/modulegroups.c:1941 ../src/libs/modulegroups.c:2456 +#: ../src/libs/modulegroups.c:2468 +msgid "remove this widget" +msgstr "odstrani ta gradnik" + +#: ../src/libs/modulegroups.c:2091 ../src/libs/modulegroups.c:2331 +msgid "remove this module" +msgstr "odstrani ta modul" + +#. does it belong to recommended modules ? +#: ../src/libs/modulegroups.c:2300 +msgid "base" +msgstr "baza" + +#: ../src/libs/modulegroups.c:2303 +msgid "tone" +msgstr "ton" + +#: ../src/libs/modulegroups.c:2306 +msgid "technical" +msgstr "tehnično" + +#: ../src/libs/modulegroups.c:2307 +msgid "grading" +msgstr "stopnjevanje" + +#: ../src/libs/modulegroups.c:2313 ../src/libs/modulegroups.c:2321 +msgid "add this module" +msgstr "dodaj ta modul" + +#. show the submenu with all the modules +#: ../src/libs/modulegroups.c:2343 ../src/libs/modulegroups.c:2543 +msgid "all available modules" +msgstr "vsi razpoložljivi moduli" + +#: ../src/libs/modulegroups.c:2351 +msgid "add module" +msgstr "dodaj modul" + +#: ../src/libs/modulegroups.c:2356 +msgid "remove module" +msgstr "odstrani modul" + +#: ../src/libs/modulegroups.c:2462 +msgid "header needed for other widgets" +msgstr "glava je potrebna za ostale gradnike" + +#: ../src/libs/modulegroups.c:2478 ../src/libs/modulegroups.c:2485 +msgid "add this widget" +msgstr "dodaj ta gradnik" + +#: ../src/libs/modulegroups.c:2498 +msgid "currently invisible" +msgstr "trenutno nevidno" + +#: ../src/libs/modulegroups.c:2527 +msgid "add widget" +msgstr "dodaj gradnik" + +#: ../src/libs/modulegroups.c:2532 +msgid "remove widget" +msgstr "odstrani gradnik" + +#: ../src/libs/modulegroups.c:2637 +msgid "show all history modules" +msgstr "prikaži vse module zgodovine" + +#: ../src/libs/modulegroups.c:2640 ../src/libs/modulegroups.c:3836 +msgid "" +"show modules that are present in the history stack, regardless of whether or " +"not they are currently enabled" +msgstr "" +"prikaži module, ki so prisotni v skladu zgodovine, ne glede na to ali so " +"trenutno omogočeni ali ne" + +#: ../src/libs/modulegroups.c:2731 ../src/libs/modulegroups.c:2823 +msgid "" +"the following modules are deprecated because they have internal design " +"mistakes that can't be corrected and alternative modules that correct them.\n" +"they will be removed for new edits in the next release." +msgstr "" +"naslednji moduli so zastareli, ker imajo notranje napake pri načrtovanju, ki " +"jih ni mogoče rešiti in alternative, ki jih rešujejo.\n" +"v naslednji izdaji bodo odstranjeni za nova urejanja." + +#: ../src/libs/modulegroups.c:2782 ../src/libs/modulegroups.c:2783 +msgid "quick access panel" +msgstr "plošča za hitri dostop" + +#: ../src/libs/modulegroups.c:2793 +msgid "show only active modules" +msgstr "prikaži samo aktivne module" + +#: ../src/libs/modulegroups.c:2794 +msgid "active modules" +msgstr "aktivni moduli" + +#: ../src/libs/modulegroups.c:2799 +msgid "" +"presets\n" +"ctrl+click to manage" +msgstr "" +"prednastavitve\n" +"krmilka+klik za upravljanje" + +#: ../src/libs/modulegroups.c:2805 +msgid "search modules" +msgstr "moduli iskanja" + +#: ../src/libs/modulegroups.c:2806 +msgid "search modules by name or tag" +msgstr "modul iskanja po imenu ali oznaki" + +#: ../src/libs/modulegroups.c:2816 +msgid "clear text" +msgstr "odstrani besedilo" + +#: ../src/libs/modulegroups.c:3056 +msgid "basic icon" +msgstr "osnovna ikona" + +#: ../src/libs/modulegroups.c:3066 +msgid "active icon" +msgstr "aktivna ikona" + +#: ../src/libs/modulegroups.c:3076 +msgid "color icon" +msgstr "barvna ikona" + +#: ../src/libs/modulegroups.c:3086 +msgid "correct icon" +msgstr "ikona popravkov" + +#: ../src/libs/modulegroups.c:3096 +msgid "effect icon" +msgstr "ikona učinkov" + +#: ../src/libs/modulegroups.c:3106 +msgid "favorites icon" +msgstr "ikona priljubljenih" + +#: ../src/libs/modulegroups.c:3116 +msgid "tone icon" +msgstr "ikona tonov" + +#: ../src/libs/modulegroups.c:3126 +msgid "grading icon" +msgstr "ikona gradientov" + +#: ../src/libs/modulegroups.c:3136 +msgid "technical icon" +msgstr "tehnična ikona" + +#: ../src/libs/modulegroups.c:3169 +msgid "quick access panel widgets" +msgstr "gradniki plošče hitrih dostopov" + +#: ../src/libs/modulegroups.c:3171 +msgid "quick access" +msgstr "hitri dostop" + +#: ../src/libs/modulegroups.c:3191 +msgid "add widget to the quick access panel" +msgstr "dodaj gradnik na ploščo hitrih dostopov" + +#: ../src/libs/modulegroups.c:3223 +msgid "group icon" +msgstr "ikona skupin" + +#: ../src/libs/modulegroups.c:3232 +msgid "group name" +msgstr "ime skupine" + +#: ../src/libs/modulegroups.c:3243 +msgid "remove group" +msgstr "odstrani skupino" + +#: ../src/libs/modulegroups.c:3269 +msgid "move group to the left" +msgstr "premakni skupino na levo" + +#: ../src/libs/modulegroups.c:3277 +msgid "add module to the group" +msgstr "dodaj modul v skupino" + +#: ../src/libs/modulegroups.c:3288 +msgid "move group to the right" +msgstr "pomakni skupino v desno" + +#: ../src/libs/modulegroups.c:3464 +msgid "rename preset" +msgstr "preimenuj nastavitev" + +#: ../src/libs/modulegroups.c:3467 +#| msgid "rename" +msgid "_rename" +msgstr "_preimenuj" + +#: ../src/libs/modulegroups.c:3473 +msgid "new preset name:" +msgstr "novo ime prednastavitve:" + +#: ../src/libs/modulegroups.c:3474 +msgid "a preset with this name already exists!" +msgstr "prednastavitev s tem imenom že obstaja!" + +#: ../src/libs/modulegroups.c:3806 +msgid "preset: " +msgstr "prednastavitev: " + +#: ../src/libs/modulegroups.c:3813 +msgid "remove the preset" +msgstr "odstrani prednastavitev" + +#: ../src/libs/modulegroups.c:3815 +msgid "duplicate the preset" +msgstr "podvoji prednastavitev" + +#: ../src/libs/modulegroups.c:3817 +msgid "rename the preset" +msgstr "preimenuj prednastavitev" + +#: ../src/libs/modulegroups.c:3819 +msgid "create a new empty preset" +msgstr "ustvari novo prazno nastavitev" + +#: ../src/libs/modulegroups.c:3827 +msgid "show search line" +msgstr "prikaži vrstico iskanja" + +#: ../src/libs/modulegroups.c:3830 +msgid "show quick access panel" +msgstr "prikaži ploščo hitrih dostopov" + +#: ../src/libs/modulegroups.c:3833 +msgid "show all history modules in active group" +msgstr "prikaži vse module iz zgodovine, ki so v aktivni skupini" + +#: ../src/libs/modulegroups.c:3845 +msgid "auto-apply this preset" +msgstr "samodejno uveljavi to prednastavitev" + +#: ../src/libs/modulegroups.c:3860 +msgid "module groups" +msgstr "skupine modulov" + +#: ../src/libs/modulegroups.c:3877 +msgid "" +"this is a built-in read-only preset. duplicate it if you want to make changes" +msgstr "" +"to je vgrajena prednastavitev samo za branje. podvojite jo, če jo želite " +"spremeniti" + +#: ../src/libs/navigation.c:74 +msgid "navigation" +msgstr "navigacija" + +#: ../src/libs/navigation.c:112 ../src/libs/navigation.c:194 +msgctxt "navigationbox" +msgid "fill" +msgstr "polni" + +#: ../src/libs/navigation.c:115 ../src/libs/navigation.c:192 +msgid "small" +msgstr "majhno" + +#: ../src/libs/navigation.c:154 +msgid "" +"navigation\n" +"click or drag to position zoomed area in center view" +msgstr "" +"navigacija\n" +"kliknite ali potegnite, da postavite povečano področje v osrednji pogled" + +#: ../src/libs/navigation.c:176 +msgid "hide navigation thumbnail" +msgstr "skrij navigacijsko sličico" + +#: ../src/libs/navigation.c:190 +msgid "image zoom level" +msgstr "raven cilja slike" + +#: ../src/libs/navigation.c:195 +msgid "50%" +msgstr "50%" + +#: ../src/libs/navigation.c:196 +msgid "100%" +msgstr "100%" + +#: ../src/libs/navigation.c:197 +msgid "200%" +msgstr "200%" + +#: ../src/libs/navigation.c:198 +msgid "400%" +msgstr "400%" + +#: ../src/libs/navigation.c:199 +msgid "800%" +msgstr "800%" + +#: ../src/libs/navigation.c:200 +msgid "1600%" +msgstr "1600%" + +#: ../src/libs/print_settings.c:45 +msgid "print settings" +msgstr "nastavitve tiskanja" + +#. FIXME: ellipsize title/printer as the export completed message is ellipsized +#: ../src/libs/print_settings.c:357 ../src/libs/print_settings.c:754 +#, c-format +msgid "processing `%s' for `%s'" +msgstr "obdelovanje `%s' za `%s'" + +#: ../src/libs/print_settings.c:387 +#, c-format +msgid "cannot open printer profile `%s'" +msgstr "ne morem odpreti profila tiskalnika '%s'" + +#: ../src/libs/print_settings.c:398 +#, c-format +msgid "error getting output profile for image %d" +msgstr "napaka pri pridobivanju izhodnega profila za sliko %d" + +#: ../src/libs/print_settings.c:410 +#, c-format +msgid "cannot apply printer profile `%s'" +msgstr "ne morem uporabiti tiskalnikovega profila '%s'" + +#: ../src/libs/print_settings.c:574 +msgid "failed to create temporary PDF for printing" +msgstr "ni uspela tvorba začasne datoteke PDF za tisk" + +#: ../src/libs/print_settings.c:620 +msgid "maximum image per page reached" +msgstr "dosežena največja slika na stran" + +#: ../src/libs/print_settings.c:708 +msgid "cannot print until a picture is selected" +msgstr "ne morem tiskati dokler ni izbrane slike" + +#: ../src/libs/print_settings.c:713 +msgid "cannot print until a printer is selected" +msgstr "ne morem tiskati dokler ni določenega tiskalnika" + +#: ../src/libs/print_settings.c:718 +msgid "cannot print until a paper is selected" +msgstr "ne morem tiskati dokler ni določenega papirja" + +#. in this case no need to release from cache what we couldn't get +#: ../src/libs/print_settings.c:746 +#, c-format +msgid "cannot get image %d for printing" +msgstr "ne morem dobiti slike %d za tiskanje" + +#: ../src/libs/print_settings.c:918 +#, c-format +msgid "%3.2f (dpi:%d)" +msgstr "%3.2f (dpi:%d)" + +#: ../src/libs/print_settings.c:2396 +msgctxt "section" +msgid "printer" +msgstr "tiskalnik" + +#: ../src/libs/print_settings.c:2409 ../src/libs/print_settings.c:2418 +#: ../src/libs/print_settings.c:2473 +msgid "printer" +msgstr "tiskalnik" + +#: ../src/libs/print_settings.c:2409 +msgid "media" +msgstr "medij" + +#: ../src/libs/print_settings.c:2430 +msgid "color management in printer driver" +msgstr "upravljanje barv v gonilniku tiskalnika" + +#: ../src/libs/print_settings.c:2463 +msgid "printer ICC profiles" +msgstr "tiskalnikovi ICC profili" + +#: ../src/libs/print_settings.c:2484 +msgid "black point compensation" +msgstr "kompenzacija točke črnine" + +#: ../src/libs/print_settings.c:2497 +msgid "activate black point compensation when applying the printer profile" +msgstr "aktiviraj kompenzacijo točke črnine, ko uveljavljaš tiskalnikov profil" + +#. //////////////////////// PAGE SETTINGS +#: ../src/libs/print_settings.c:2504 +msgctxt "section" +msgid "page" +msgstr "stran" + +#: ../src/libs/print_settings.c:2526 +msgid "measurement units" +msgstr "enote meritev" + +#: ../src/libs/print_settings.c:2534 +msgid "image width/height" +msgstr "slika širina/višina" + +#: ../src/libs/print_settings.c:2539 +msgid " x " +msgstr " x " + +#: ../src/libs/print_settings.c:2547 +msgid "scale factor" +msgstr "faktor lestvičenja" + +#: ../src/libs/print_settings.c:2553 +msgid "" +"image scale factor from native printer DPI:\n" +" < 1 means that it is downscaled (best quality)\n" +" > 1 means that the image is upscaled\n" +" a too large value may result in poor print quality" +msgstr "" +"faktor lestvičenja slike iz priključenega tiskalnika v DPI:\n" +" < 1 pomeni pomanjšavo (najboljša kakovost)\n" +" > 1 pomeni, da je slika povečana\n" +"prevelika vrednost lahko pomeni slabo kakovost tiska" + +#. d->b_top = gtk_spin_button_new_with_range(0, 10000, 1); +#: ../src/libs/print_settings.c:2567 +msgid "top margin" +msgstr "gornji rob" + +#. d->b_left = gtk_spin_button_new_with_range(0, 10000, 1); +#: ../src/libs/print_settings.c:2571 +msgid "left margin" +msgstr "levi rob" + +#: ../src/libs/print_settings.c:2574 +msgid "lock" +msgstr "zaklenjeno" + +#: ../src/libs/print_settings.c:2576 +msgid "change all margins uniformly" +msgstr "spremeni enakomerno vse robove" + +#. d->b_right = gtk_spin_button_new_with_range(0, 10000, 1); +#: ../src/libs/print_settings.c:2580 +msgid "right margin" +msgstr "desni rob" + +#. d->b_bottom = gtk_spin_button_new_with_range(0, 10000, 1); +#: ../src/libs/print_settings.c:2584 +msgid "bottom margin" +msgstr "spodnji rob" + +#: ../src/libs/print_settings.c:2617 +msgid "display grid" +msgstr "prikaži mrežo" + +#: ../src/libs/print_settings.c:2628 +msgid "snap to grid" +msgstr "poravnaj na mrežo" + +#: ../src/libs/print_settings.c:2641 +msgid "borderless mode required" +msgstr "zahtevan način brez roba" + +#: ../src/libs/print_settings.c:2644 +msgid "" +"indicates that the borderless mode should be activated\n" +"in the printer driver because the selected margins are\n" +"below the printer hardware margins" +msgstr "" +"označuje, da bi moral biti aktiviran brezrobni način\n" +"v gonilniku za tiskalnik, ker so izbrani robovi\n" +"manjši od strojno določenih robov tiskalnika" + +#. pack image dimension hbox here +#: ../src/libs/print_settings.c:2651 +msgctxt "section" +msgid "image layout" +msgstr "postavitev slike" + +#: ../src/libs/print_settings.c:2692 +msgid "new image area" +msgstr "novo območje slike" + +#: ../src/libs/print_settings.c:2694 +msgid "" +"add a new image area on the page\n" +"click and drag on the page to place the area\n" +"drag and drop image from film strip on it" +msgstr "" +"dodajte novo področje slike na strani\n" +"kliknite in povlecite na stran, da postavite področje\n" +"povlecite in spustite sliko s filmskega traku nanj" + +#: ../src/libs/print_settings.c:2698 +msgid "delete image area" +msgstr "zbriši območje slike" + +#: ../src/libs/print_settings.c:2700 +msgid "delete the currently selected image area" +msgstr "zbriši trenutno izbrano področje slike" + +#: ../src/libs/print_settings.c:2703 +msgid "clear layout" +msgstr "očisti postavitev" + +#: ../src/libs/print_settings.c:2705 +msgid "remove all image areas from the page" +msgstr "odstrani vsa področja slik s strani" + +#. d->b_x = gtk_spin_button_new_with_range(0, 1000, 1); +#: ../src/libs/print_settings.c:2722 +msgid "image area x origin (in current unit)" +msgstr "izhodišče x področja slike (v trenutni enoti)" + +#. d->b_y = gtk_spin_button_new_with_range(0, 1000, 1); +#: ../src/libs/print_settings.c:2726 +msgid "image area y origin (in current unit)" +msgstr "izhodišče y področja slike (v trenutni enoti)" + +#. d->b_width = gtk_spin_button_new_with_range(0, 1000, 1); +#: ../src/libs/print_settings.c:2737 +msgid "image area width (in current unit)" +msgstr "širina površine slike (v trenutnih enotah)" + +#. d->b_height = gtk_spin_button_new_with_range(0, 1000, 1); +#: ../src/libs/print_settings.c:2741 +msgid "image area height (in current unit)" +msgstr "višina površine slike (v trenutnih enotah)" + +#. //////////////////////// PRINT SETTINGS +#: ../src/libs/print_settings.c:2767 +msgctxt "section" +msgid "print settings" +msgstr "nastavitve tiskanja" + +#: ../src/libs/print_settings.c:2855 +msgid "temporary style to use while printing" +msgstr "začasni slog v rabi za čas tiskanja" + +#: ../src/libs/print_settings.c:2887 +msgid "print with current settings" +msgstr "tiskaj s trenutnimi nastavitvami" + +#: ../src/libs/select.c:137 +msgid "select all images in current collection" +msgstr "izberi vse slike v trenutni zbirki" + +#: ../src/libs/select.c:141 +msgid "clear selection" +msgstr "zbriši izbiro" + +#: ../src/libs/select.c:145 +msgid "" +"select unselected images\n" +"in current collection" +msgstr "" +"izberi še neizbrane slike\n" +"v trenutni zbirki" + +#: ../src/libs/select.c:149 +msgid "" +"select all images which are in the same\n" +"film roll as the selected images" +msgstr "" +"izberi vse slike, ki so v istem\n" +"zvitku filma kot že izbrane slike" + +#: ../src/libs/select.c:153 +msgid "" +"select untouched images in\n" +"current collection" +msgstr "" +"izberi nedotaknjene slike v\n" +"trenutni zbirki" + +#: ../src/libs/session.c:47 +msgid "session" +msgstr "seja" + +#: ../src/libs/session.c:98 +msgid "jobcode" +msgstr "številka posla" + +#: ../src/libs/session.c:106 +msgid "create" +msgstr "ustvari" + +#: ../src/libs/snapshots.c:88 +msgid "snapshots" +msgstr "posnetki" + +#: ../src/libs/snapshots.c:137 +msgctxt "snapshot sign" +msgid "S" +msgstr "S" + +#: ../src/libs/snapshots.c:662 +msgid "snapshots for removed image have been deleted" +msgstr "posnetki za odstranjeno sliko so bili izbrisani" + +#: ../src/libs/snapshots.c:703 +#, c-format +msgid "↗ %s '%s'" +msgstr "↗ %s '%s'" + +#: ../src/libs/snapshots.c:703 +msgid "this snapshot was taken from" +msgstr "ta posnetek zaslona je bil narejen iz" + +#: ../src/libs/snapshots.c:742 +msgid "take snapshot" +msgstr "napravi posnetek" + +#: ../src/libs/snapshots.c:744 +msgid "" +"take snapshot to compare with another image or the same image at another " +"stage of development" +msgstr "" +"napravi posnetek za primerjavo z drugo verzijo slike v drugi fazi razvijanja" + +#: ../src/libs/snapshots.c:790 +msgid "toggle last snapshot" +msgstr "preklopi zadnji posnetek" + +#: ../src/libs/styles.c:326 +msgid "remove style?" +msgid_plural "remove styles?" +msgstr[0] "brišem slog?" +msgstr[1] "brišem sloga?" +msgstr[2] "brišem sloge?" +msgstr[3] "brišem sloge?" + +#: ../src/libs/styles.c:327 +#, c-format +msgid "do you really want to remove %d style?" +msgid_plural "do you really want to remove %d styles?" +msgstr[0] "ali zares želite brisati slog %d?" +msgstr[1] "ali zares želite brisati sloga %d?" +msgstr[2] "ali zares želite brisati sloge '%d'?" +msgstr[3] "ali zares želite brisati sloge '%d'?" + +#: ../src/libs/styles.c:441 ../src/libs/styles.c:626 +#| msgid "overwrite" +msgid "_overwrite" +msgstr "_prepiši" + +#: ../src/libs/styles.c:446 ../src/libs/styles.c:631 +#, c-format +msgid "" +"style `%s' already exists.\n" +"do you want to overwrite existing style?\n" +msgstr "" +"slog `%s' že obstaja.\n" +"ali želite prepisati obstoječi slog?\n" + +#: ../src/libs/styles.c:448 ../src/libs/styles.c:633 +msgid "apply this option to all existing styles" +msgstr "uveljavi to možnost za vse obstoječe sloge" + +#: ../src/libs/styles.c:511 +#, c-format +msgid "style %s was successfully exported" +msgstr "slog %s je bil uspešno izvožen" + +#: ../src/libs/styles.c:528 +msgid "select style" +msgstr "izberi slog" + +#: ../src/libs/styles.c:538 +msgid "darktable style files" +msgstr "datoteke slogov programa darktable" + +#: ../src/libs/styles.c:819 +msgid "" +"available styles,\n" +"double-click to apply" +msgstr "" +"slogi na voljo.\n" +"dvoklik za uporabo" + +#: ../src/libs/styles.c:828 ../src/libs/styles.c:829 +msgid "filter style names" +msgstr "filter imen slogov" + +#: ../src/libs/styles.c:841 +msgid "create duplicate" +msgstr "ustvari duplikat" + +#: ../src/libs/styles.c:848 +msgid "creates a duplicate of the image before applying style" +msgstr "ustvari duplikat slike pred uporabo sloga" + +#: ../src/libs/styles.c:866 +msgid "create..." +msgstr "ustvari..." + +#: ../src/libs/styles.c:868 +msgid "create styles from history stack of selected images" +msgstr "ustvari sloge iz sklada zgodovine izbranih slik" + +#: ../src/libs/styles.c:873 ../src/libs/tagging.c:2283 +msgid "edit..." +msgstr "uredi..." + +#: ../src/libs/styles.c:875 +msgid "edit the selected styles in list above" +msgstr "uredi izbrane sloge v seznamu zgoraj" + +#: ../src/libs/styles.c:882 +msgid "removes the selected styles in list above" +msgstr "briši izbrane sloge v seznamu zgoraj" + +#: ../src/libs/styles.c:889 +msgid "import styles from a style files" +msgstr "uvozi sloge iz datotek slogov" + +#: ../src/libs/styles.c:896 +msgid "export the selected styles into a style files" +msgstr "izvozi izbrane sloge v datoteke sloga" + +#: ../src/libs/styles.c:903 +msgid "apply the selected styles in list above to selected images" +msgstr "uveljavi izbrane sloge v seznamu zgoraj na izbranih slikah" + +#: ../src/libs/tagging.c:109 +msgid "tagging" +msgstr "oznake" + +#: ../src/libs/tagging.c:1258 +msgid "attach tag to all" +msgstr "prilepi oznako vsem" + +#: ../src/libs/tagging.c:1266 ../src/libs/tagging.c:2256 +msgid "detach tag" +msgstr "odstrani oznako" + +#: ../src/libs/tagging.c:1486 +msgid "delete tag?" +msgstr "zbrišem oznako?" + +#: ../src/libs/tagging.c:1496 ../src/libs/tagging.c:1587 +#: ../src/libs/tagging.c:1814 ../src/libs/tagging.c:2093 +#, c-format +msgid "selected: %s" +msgstr "izbrano: %s" + +#: ../src/libs/tagging.c:1503 +#, c-format +msgid "" +"do you really want to delete the tag `%s'?\n" +"%d image is assigned this tag!" +msgid_plural "" +"do you really want to delete the tag `%s'?\n" +"%d images are assigned this tag!" +msgstr[0] "" +"ali res želite zbrisati oznako '%s'?\n" +"%d sliki je dodeljena ta oznaka!" +msgstr[1] "" +"ali res želite zbrisati oznako '%s'?\n" +"%d slikam je dodeljena ta oznaka!" +msgstr[2] "" +"ali res želite zbrisati oznako '%s'?\n" +"%d slikam je dodeljena ta oznaka!" +msgstr[3] "" +"ali res želite zbrisati značko '%s'?\n" +"%d slikam je dodeljena ta značka!" + +#: ../src/libs/tagging.c:1537 +#, c-format +msgid "tag %s removed" +msgstr "oznaka %s odstranjena" + +#: ../src/libs/tagging.c:1577 +msgid "delete node?" +msgstr "zbrišem vozel?" + +#: ../src/libs/tagging.c:1594 +#, c-format +msgid "<u>%d</u> tag will be deleted" +msgid_plural "<u>%d</u> tags will be deleted" +msgstr[0] "<u>%d</u> oznaka bo zbrisana" +msgstr[1] "<u>%d</u> oznaki bosta zbrisani" +msgstr[2] "<u>%d</u> oznake bodo zbrisane" +msgstr[3] "<u>%d</u> oznak bo zbrisanih" + +#: ../src/libs/tagging.c:1599 ../src/libs/tagging.c:1826 +#: ../src/libs/tagging.c:2105 +#, c-format +msgid "<u>%d</u> image will be updated" +msgid_plural "<u>%d</u> images will be updated" +msgstr[0] "slika <u>%d</u> bo osvežena" +msgstr[1] "sliki <u>%d</u> bosta osveženi" +msgstr[2] "slike <u>%d</u> bodo osvežene" +msgstr[3] "slike <u>%d</u> bodo osvežene" + +#: ../src/libs/tagging.c:1625 +#, c-format +msgid "%d tags removed" +msgstr "%d oznak odstranjenih" + +#: ../src/libs/tagging.c:1668 +msgid "create tag" +msgstr "ustvari oznako" + +#: ../src/libs/tagging.c:1681 ../src/libs/tagging.c:1834 +msgid "name: " +msgstr "ime: " + +#: ../src/libs/tagging.c:1696 +#, c-format +msgid "add to: \"%s\" " +msgstr "dodaj k: \"%s\" " + +#: ../src/libs/tagging.c:1702 ../src/libs/tagging.c:1851 +msgid "category" +msgstr "kategorija" + +#: ../src/libs/tagging.c:1711 ../src/libs/tagging.c:1860 +msgid "synonyms: " +msgstr "sinonimi: " + +#: ../src/libs/tagging.c:1728 ../src/libs/tagging.c:1882 +#: ../src/libs/tagging.c:2128 +msgid "empty tag is not allowed, aborting" +msgstr "prazna oznaka ni dovoljena, prekinjam" + +#: ../src/libs/tagging.c:1739 +msgid "tag name already exists. aborting." +msgstr "to ime oznake že obstaja. prekinjam." + +#: ../src/libs/tagging.c:1821 ../src/libs/tagging.c:2100 +#, c-format +msgid "<u>%d</u> tag will be updated" +msgid_plural "<u>%d</u> tags will be updated" +msgstr[0] "oznaka <u>%d</u> bo osvežena" +msgstr[1] "oznaki <u>%d</u> bosta osveženi" +msgstr[2] "oznake <u>%d</u> bodo osvežene" +msgstr[3] "oznake <u>%d</u> bodo osvežene" + +#: ../src/libs/tagging.c:1884 +msgid "" +"'|' character is not allowed for renaming tag.\n" +"to modify the hierarchy use rename path instead. Aborting." +msgstr "" +"znak '|' ni dovoljen za preimenovanje oznake.\n" +"za spremembo hierarhije uporabite preimenovanje poti. Prekinjam." + +#: ../src/libs/tagging.c:1923 ../src/libs/tagging.c:2031 +#, c-format +msgid "at least one new tag name (%s) already exists, aborting" +msgstr "vsaj ena oznaka (%s) že obstaja, prekinjam" + +#: ../src/libs/tagging.c:2083 +msgid "change path" +msgstr "spremeni pot" + +#: ../src/libs/tagging.c:2130 +msgid "'|' misplaced, empty tag is not allowed, aborting" +msgstr "'|' na napačnem mestu, prazna oznaka ni dovoljena, prekinjam" + +#: ../src/libs/tagging.c:2226 +#, c-format +msgid "tag %s created" +msgstr "oznaka %s ustvarjena" + +#: ../src/libs/tagging.c:2252 +msgid "attach tag" +msgstr "pripni oznako" + +#: ../src/libs/tagging.c:2265 +msgid "create tag..." +msgstr "ustvari oznako..." + +#: ../src/libs/tagging.c:2271 +msgid "delete tag" +msgstr "briši oznako" + +#: ../src/libs/tagging.c:2278 +msgid "delete node" +msgstr "briši vozel" + +#: ../src/libs/tagging.c:2291 +msgid "change path..." +msgstr "spremeni pot..." + +#: ../src/libs/tagging.c:2301 +msgid "set as a tag" +msgstr "nastavi oznako" + +#: ../src/libs/tagging.c:2312 +msgid "copy to entry" +msgstr "kopiraj v vnos" + +#: ../src/libs/tagging.c:2329 +msgid "go to tag collection" +msgstr "pojdi na zbirko oznak" + +#: ../src/libs/tagging.c:2335 +msgid "go back to work" +msgstr "pojdi nazaj na delo" + +#: ../src/libs/tagging.c:2492 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../src/libs/tagging.c:2493 +msgid "(private)" +msgstr "(zasebno)" + +#: ../src/libs/tagging.c:2519 +msgid "select a keyword file" +msgstr "izberite datoteko ključnih besed" + +#: ../src/libs/tagging.c:2532 +msgid "error importing tags" +msgstr "napaka pri uvozu oznak" + +#: ../src/libs/tagging.c:2534 +#, c-format +msgid "%zd tags imported" +msgstr "%zd oznak uvoženo" + +#: ../src/libs/tagging.c:2555 +msgid "select file to export to" +msgstr "izberite datoteko za izvoz" + +#: ../src/libs/tagging.c:2569 +msgid "error exporting tags" +msgstr "napaka pri izvozu oznak" + +#: ../src/libs/tagging.c:2571 +#, c-format +msgid "%zd tags exported" +msgstr "%zd oznak izvoženo" + +#: ../src/libs/tagging.c:2995 +msgid "drop to root" +msgstr "spusti v koren" + +#: ../src/libs/tagging.c:3131 +msgid "" +"attached tags\n" +"press Delete or double-click to detach\n" +"right-click for other actions on attached tag,\n" +"Tab to give the focus to entry" +msgstr "" +"pripete oznake\n" +"pritisnite Delete ali dvoklik za odpenjanje\n" +"desni klik za druge aktivnosti na pripeti oznaki,\n" +"Tab da podaste osredotočenje za vnos" + +#: ../src/libs/tagging.c:3142 +msgid "attach" +msgstr "priloži" + +#: ../src/libs/tagging.c:3143 +msgid "attach tag to all selected images" +msgstr "priloži oznako k vsem izbranimi slikam" + +#: ../src/libs/tagging.c:3146 +msgid "detach" +msgstr "razdvoji" + +#: ../src/libs/tagging.c:3147 +msgid "detach tag from all selected images" +msgstr "oddvoji oznako od vseh izbranih slik" + +#: ../src/libs/tagging.c:3160 +msgid "toggle list with / without hierarchy" +msgstr "preklopi za seznam z / brez hierarhije" + +#: ../src/libs/tagging.c:3160 +msgid "hide" +msgstr "skrij" + +#: ../src/libs/tagging.c:3162 +msgid "toggle sort by name or by count" +msgstr "preklopi za sort po imenu ali po številu" + +#: ../src/libs/tagging.c:3162 +msgid "sort" +msgstr "razvrsti" + +#: ../src/libs/tagging.c:3164 +msgid "toggle show or not darktable tags" +msgstr "preklopi za prikaz ali ne darktablovih oznak" + +#: ../src/libs/tagging.c:3164 +msgid "dttags" +msgstr "dttags" + +#: ../src/libs/tagging.c:3180 +msgid "" +"enter tag name\n" +"press Enter to create a new tag and attach it on selected images\n" +"press Tab or Down key to go to the first matching tag\n" +"press shift+Tab to select the first attached user tag" +msgstr "" +"vnesite ime oznake\n" +"Pritisnite Enter, da ustvarite novo oznako in jo pritrdite na izbrane slike\n" +"Pritisnite Tab ali Dol, da skočite na prvo ujemajočo se oznako\n" +"Pritisnite dvigalka+Tab, da izberete prvo priloženo uporabniško oznako" + +#: ../src/libs/tagging.c:3191 ../src/libs/tagging.c:3197 +msgid "clear entry" +msgstr "zbriši vnose" + +#: ../src/libs/tagging.c:3244 +msgid "" +"tag dictionary,\n" +"Enter or double-click to attach selected tag on selected images\n" +"shift+Enter idem plus gives the focus to entry\n" +"shift+click to fully expand the selected tag\n" +"right-click for other actions on selected tag\n" +"shift+Tab to give the focus to entry" +msgstr "" +"slovar oznak,\n" +"pritisnite Enter ali dvokliknite, da na izbrane slike pritrdite izbrano " +"oznako,\n" +"isto za dvigalka+enter plus daje fokus na vnos,\n" +"dvigalka+klik, da v celoti razširite izbrano oznako,\n" +"desni klik za druga dejanja na izbrani oznaki,\n" +"dvigalka+Tab, da se osredotočite na vstop" + +#: ../src/libs/tagging.c:3279 +msgid "" +"create a new tag with the\n" +"name you entered" +msgstr "" +"ustvarite novo oznako z\n" +"vnesenim imenom" + +#: ../src/libs/tagging.c:3282 +msgid "import tags from a Lightroom keyword file" +msgstr "uvoz oznak iz datoteke ključnih besed Lightroom" + +#: ../src/libs/tagging.c:3285 +msgid "export all tags to a Lightroom keyword file" +msgstr "izvozi vse oznake v datoteko ključnih besed Lightroom" + +#: ../src/libs/tagging.c:3289 +msgid "toggle list / tree view" +msgstr "preklopi seznam / drevesni pogled" + +#: ../src/libs/tagging.c:3289 +msgid "tree" +msgstr "drevo" + +#: ../src/libs/tagging.c:3291 +msgid "toggle list with / without suggestion" +msgstr "preklopi seznam z / brez namigov" + +#: ../src/libs/tagging.c:3291 +msgid "suggestion" +msgstr "predlog" + +#: ../src/libs/tagging.c:3313 +msgid "redo last tag" +msgstr "ponovno uredi zadnjo oznako" + +#: ../src/libs/tagging.c:3396 +msgid "" +"tag shortcut is not active with tag tree view. please switch to list view" +msgstr "" +"bližnjica na oznako ni aktivna v drevesnem prikazu oznak. prosim preklopite " +"na prikaz seznama" + +#: ../src/libs/tagging.c:3500 +msgid "tagging settings" +msgstr "nastavitve oznak" + +#: ../src/libs/tools/battery_indicator.c:38 +#: ../src/libs/tools/battery_indicator.c:70 +msgid "battery indicator" +msgstr "indikator baterije" + +#: ../src/libs/tools/colorlabels.c:42 +msgid "colorlabels" +msgstr "barvne oznake" + +#: ../src/libs/tools/colorlabels.c:87 +msgid "toggle color label of selected images" +msgstr "preklopi barvno oznako izbranih slik" + +#: ../src/libs/tools/filmstrip.c:45 +msgid "filmstrip" +msgstr "kos filma" + +#: ../src/libs/tools/filter.c:42 +msgid "filter" +msgstr "filter" + +#: ../src/libs/tools/filter.c:104 +msgid "filter preferences" +msgstr "filtriraj preference" + +#: ../src/libs/tools/gamepad.c:37 +msgid "gamepad" +msgstr "igralna plošča" + +#: ../src/libs/tools/gamepad.c:60 +msgid "button a" +msgstr "gumb a" + +#: ../src/libs/tools/gamepad.c:60 +msgid "button b" +msgstr "gumb b" + +#: ../src/libs/tools/gamepad.c:60 +msgid "button x" +msgstr "gumb x" + +#: ../src/libs/tools/gamepad.c:60 +msgid "button y" +msgstr "gumb y" + +#: ../src/libs/tools/gamepad.c:61 +msgid "button back" +msgstr "gumb nazaj" + +#: ../src/libs/tools/gamepad.c:61 +msgid "button guide" +msgstr "navodilo za gumbe" + +#: ../src/libs/tools/gamepad.c:61 +msgid "button start" +msgstr "gumb začetek" + +#: ../src/libs/tools/gamepad.c:62 +msgid "left stick" +msgstr "leva palica" + +#: ../src/libs/tools/gamepad.c:62 +msgid "right stick" +msgstr "desna palica" + +#: ../src/libs/tools/gamepad.c:62 +msgid "left shoulder" +msgstr "leva rama" + +#: ../src/libs/tools/gamepad.c:62 +msgid "right shoulder" +msgstr "desna rama" + +#: ../src/libs/tools/gamepad.c:63 +msgid "dpad up" +msgstr "dpad gor" + +#: ../src/libs/tools/gamepad.c:63 +msgid "dpad down" +msgstr "dpad dol" + +#: ../src/libs/tools/gamepad.c:63 +msgid "dpad left" +msgstr "ploščica levo" + +#: ../src/libs/tools/gamepad.c:63 +msgid "dpad right" +msgstr "ploščica desno" + +#: ../src/libs/tools/gamepad.c:64 +msgid "button misc1" +msgstr "gumb razno1" + +#: ../src/libs/tools/gamepad.c:64 +msgid "paddle1" +msgstr "vesla1" + +#: ../src/libs/tools/gamepad.c:64 +msgid "paddle2" +msgstr "vesla2" + +#: ../src/libs/tools/gamepad.c:64 +msgid "paddle3" +msgstr "vesla3" + +#: ../src/libs/tools/gamepad.c:64 +msgid "paddle4" +msgstr "vesla4" + +#: ../src/libs/tools/gamepad.c:64 +msgid "touchpad" +msgstr "drsna ploščica" + +#: ../src/libs/tools/gamepad.c:65 +msgid "left trigger" +msgstr "levi prožilnik" + +#: ../src/libs/tools/gamepad.c:65 +msgid "right trigger" +msgstr "desni prožilnik" + +#: ../src/libs/tools/gamepad.c:71 +msgid "invalid gamepad button" +msgstr "neveljavni gumb za igre" + +#: ../src/libs/tools/gamepad.c:89 +msgid "left x" +msgstr "levo x" + +#: ../src/libs/tools/gamepad.c:89 +msgid "left y" +msgstr "levo y" + +#: ../src/libs/tools/gamepad.c:89 +msgid "right x" +msgstr "desno x" + +#: ../src/libs/tools/gamepad.c:89 +msgid "right y" +msgstr "desno y" + +#: ../src/libs/tools/gamepad.c:90 +msgid "left diagonal" +msgstr "leva diagonala" + +#: ../src/libs/tools/gamepad.c:90 +msgid "left skew" +msgstr "leva asimetrija" + +#: ../src/libs/tools/gamepad.c:90 +msgid "right diagonal" +msgstr "desna diagonala" + +#: ../src/libs/tools/gamepad.c:90 +msgid "right skew" +msgstr "desna asimetrija" + +#. diagonals +#: ../src/libs/tools/gamepad.c:96 +msgid "invalid gamepad axis" +msgstr "neveljavna os gamepad" + +#. we write the label with the size category +#: ../src/libs/tools/global_toolbox.c:215 +msgid "thumbnails overlays for size" +msgstr "plast predoglednih sličic za velikost" + +#: ../src/libs/tools/global_toolbox.c:249 +#: ../src/libs/tools/global_toolbox.c:312 +msgid "" +"duration before the block overlay is hidden after each mouse movement on the " +"image\n" +"set -1 to never hide the overlay" +msgstr "" +"trajanje, preden se prekrivni blok skrije po vsakem premiku miške na sliki\n" +"nastavite -1, da nikoli ne skrijete prekritja" + +#: ../src/libs/tools/global_toolbox.c:254 +#: ../src/libs/tools/global_toolbox.c:317 +msgid "timeout only available for block overlay" +msgstr "časovna omejitev je na voljo samo za prekrivanje blokov" + +#: ../src/libs/tools/global_toolbox.c:277 +#: ../src/libs/tools/global_toolbox.c:463 +msgid "culling overlays" +msgstr "odstranjevanje slojev" + +#: ../src/libs/tools/global_toolbox.c:279 +msgid "preview overlays" +msgstr "prikaži plasti" + +#: ../src/libs/tools/global_toolbox.c:353 +msgid "overlays not available here..." +msgstr "prekrivne plasti niso na voljo..." + +#: ../src/libs/tools/global_toolbox.c:397 +#: ../src/libs/tools/global_toolbox.c:533 +msgid "expand grouped images" +msgstr "razširi grupirane slike" + +#: ../src/libs/tools/global_toolbox.c:399 +#: ../src/libs/tools/global_toolbox.c:535 +msgid "collapse grouped images" +msgstr "zoži grupirane slike" + +#: ../src/libs/tools/global_toolbox.c:406 +msgid "thumbnail overlays options" +msgstr "možnosti plasti predoglednih sličic" + +#: ../src/libs/tools/global_toolbox.c:407 +msgid "click to change the type of overlays shown on thumbnails" +msgstr "" +"kliknite, če želite spremeniti vrsto prekrivnih plasti, prikazanih na " +"sličicah" + +#: ../src/libs/tools/global_toolbox.c:430 +#: ../src/libs/tools/global_toolbox.c:459 +msgid "overlay mode for size" +msgstr "način prekrivanja za velikost" + +#: ../src/libs/tools/global_toolbox.c:434 +msgid "thumbnail overlays" +msgstr "plasti predoglednih sličic" + +#: ../src/libs/tools/global_toolbox.c:436 +#: ../src/libs/tools/global_toolbox.c:465 +msgid "no overlays" +msgstr "ni plasti" + +#: ../src/libs/tools/global_toolbox.c:437 +msgid "overlays on mouse hover" +msgstr "prekrivna plast ob miški nad" + +#: ../src/libs/tools/global_toolbox.c:438 +msgid "extended overlays on mouse hover" +msgstr "razširjena prekrivna plast pod miško" + +#: ../src/libs/tools/global_toolbox.c:439 +#: ../src/libs/tools/global_toolbox.c:466 +msgid "permanent overlays" +msgstr "stalna prekrivna plast" + +#: ../src/libs/tools/global_toolbox.c:440 +#: ../src/libs/tools/global_toolbox.c:467 +msgid "permanent extended overlays" +msgstr "stalne razširjene plasti" + +#: ../src/libs/tools/global_toolbox.c:441 +msgid "permanent overlays extended on mouse hover" +msgstr "stalne prekrivne plasti razširjene ob miški" + +#: ../src/libs/tools/global_toolbox.c:443 +#: ../src/libs/tools/global_toolbox.c:469 +msgid "overlays block on mouse hover" +msgstr "blok prekrivne plasti ob miški nad" + +#: ../src/libs/tools/global_toolbox.c:444 +#: ../src/libs/tools/global_toolbox.c:470 +msgid "during (s)" +msgstr "med (s)" + +#: ../src/libs/tools/global_toolbox.c:449 +#: ../src/libs/tools/global_toolbox.c:475 +msgid "show tooltip" +msgstr "prikaži orodni namig" + +#: ../src/libs/tools/global_toolbox.c:487 +msgid "help" +msgstr "pomoč" + +#: ../src/libs/tools/global_toolbox.c:489 +msgid "enable this, then click on a control element to see its online help" +msgstr "" +"omogočite to, potem kliknite na kontrolni element za pridobivanje pomoči o " +"njem" + +#: ../src/libs/tools/global_toolbox.c:496 +msgid "" +"define shortcuts\n" +"ctrl+click to switch off overwrite confirmations\n" +"\n" +"hover over a widget and press keys with mouse click and scroll or move " +"combinations\n" +"repeat same combination again to delete mapping\n" +"click on a widget, module or screen area to open the dialog for further " +"configuration" +msgstr "" +"določite bližnjice\n" +"krmilka+klik, da izklopite potrditve prepisovanja\n" +"\n" +"prehod kazalke nad gradnikom, pritisk tipke s klikom na miško in pomik ali " +"premik kombinacije\n" +"ponovite isto kombinacijo znova, da izbrišete preslikavo\n" +"kliknite na gradnik, modul ali področje zaslona, da odprete pogovorno okno " +"za nadaljnje konfiguracijo" + +#: ../src/libs/tools/global_toolbox.c:512 +msgid "show global preferences" +msgstr "prikaži globalne preference" + +#: ../src/libs/tools/hinter.c:42 +msgid "hinter" +msgstr "zadaj" + +#: ../src/libs/tools/hinter.c:98 +#, c-format +msgid "%s in current collection" +msgstr "%s v trenutni zbirki" + +#: ../src/libs/tools/image_infos.c:40 +msgid "image infos" +msgstr "informacije o sliki" + +#: ../src/libs/tools/lighttable.c:116 +msgid "click to exit from full preview layout." +msgstr "klikni za izhod iz postavitve polnega predogleda." + +#: ../src/libs/tools/lighttable.c:118 +msgid "click to enter full preview layout." +msgstr "klikni za vstop v postavitev polnega predogleda." + +#: ../src/libs/tools/lighttable.c:121 +msgid "click to enter culling layout in fixed mode." +msgstr "kliknite za vstop v postavitev fiksnega načina izločanja." + +#: ../src/libs/tools/lighttable.c:123 ../src/libs/tools/lighttable.c:128 +msgid "click to exit culling layout." +msgstr "kliknite za izstop iz postavitve izločanja." + +#: ../src/libs/tools/lighttable.c:126 +msgid "click to enter culling layout in dynamic mode." +msgstr "kliknite za vstop v postavitev dinamičnega načina izločanja." + +#: ../src/libs/tools/lighttable.c:365 +msgid "toggle filemanager layout" +msgstr "preklopi v postavitev upravljalnika datotek" + +#: ../src/libs/tools/lighttable.c:368 +msgid "click to enter filemanager layout." +msgstr "klikni za vstop v postavitev upravljalnika datotek." + +#: ../src/libs/tools/lighttable.c:374 +msgid "toggle zoomable lighttable layout" +msgstr "preklopi na postavitev povečevalne osvetljene podlage" + +#: ../src/libs/tools/lighttable.c:377 +msgid "click to enter zoomable lighttable layout." +msgstr "kliknite za vstop v postavitev povečevalne osvetljene podlage." + +#: ../src/libs/tools/lighttable.c:383 +msgid "toggle culling mode" +msgstr "preklopi na način izločanja" + +#: ../src/libs/tools/lighttable.c:391 +msgid "toggle culling dynamic mode" +msgstr "preklopi na dinamični način izločanja" + +#: ../src/libs/tools/lighttable.c:438 +msgid "toggle culling zoom mode" +msgstr "preklopi na povečevalni način izločanja" + +#: ../src/libs/tools/lighttable.c:440 +msgid "exit current layout" +msgstr "izhod iz trenutne postavitve" + +#: ../src/libs/tools/midi.c:41 +msgid "midi" +msgstr "midi" + +#: ../src/libs/tools/midi.c:221 +msgid "using absolute encoding; reinitialise to switch to relative" +msgstr "" +"uporaba absolutnega kodiranja; ponovna začetna vrednost za preklop na " +"relativno" + +#: ../src/libs/tools/midi.c:225 +#, c-format +msgid "%d more identical (down) moves before switching to relative encoding" +msgstr "%d več enakih pomikov (navzdol), pred preklopom na relativno kodiranje" + +#: ../src/libs/tools/midi.c:228 +#, c-format +msgid "switching encoding to relative (down = %d)" +msgstr "preklop kodiranja na relativno (dol = %d)" + +#: ../src/libs/tools/midi.c:558 +#, c-format +msgid "%s opened as midi%d" +msgstr "%s odprto kot midi%d" + +#: ../src/libs/tools/module_toolbox.c:46 +msgid "module toolbox" +msgstr "orodjarna modulov" + +#. connect callbacks +#: ../src/libs/tools/ratings.c:97 +msgid "set star rating for selected images" +msgstr "nastavi ocene z zvezdicami za izbrane slike" + +#: ../src/libs/tools/timeline.c:102 +msgid "timeline" +msgstr "časovni trak" + +#: ../src/libs/tools/timeline.c:1433 +msgid "start selection" +msgstr "začetek izbora" + +#: ../src/libs/tools/timeline.c:1434 +msgid "stop selection" +msgstr "konec izbora" + +#: ../src/libs/tools/view_toolbox.c:46 +msgid "view toolbox" +msgstr "poglej orodjarno" + +#: ../src/libs/tools/viewswitcher.c:60 +msgid "viewswitcher" +msgstr "preklopnik pogledov" + +#: ../src/lua/preferences.c:656 ../src/lua/preferences.c:671 +#: ../src/lua/preferences.c:683 ../src/lua/preferences.c:695 +#: ../src/lua/preferences.c:711 ../src/lua/preferences.c:775 +#, c-format +msgid "double-click to reset to `%s'" +msgstr "dvokliknite da bi ponovno nastavili na '%s'" + +#: ../src/lua/preferences.c:681 +msgid "select file" +msgstr "izberi datoteko" + +#: ../src/lua/preferences.c:734 +#, c-format +msgid "double-click to reset to `%d'" +msgstr "dvokliknite za ponovno nastavitev na '%d'" + +#: ../src/lua/preferences.c:761 +#, c-format +msgid "double-click to reset to `%f'" +msgstr "dvokliknite da bi ponovno nastavili na `%f'" + +#: ../src/lua/preferences.c:837 +msgid "Lua options" +msgstr "možnosti Lua" + +#: ../src/views/darkroom.c:503 +#, c-format +msgid "" +"darktable could not load `%s', switching to lighttable now.\n" +"\n" +"please check that the camera model that produced the image is supported in " +"darktable\n" +"(list of supported cameras is at https://www.darktable.org/resources/camera-" +"support/).\n" +"if you are sure that the camera model is supported, please consider opening " +"an issue\n" +"at https://github.com/darktable-org/darktable" +msgstr "" +"darktable ni mogel naložiti `%s', preklapljam na osvetljeno podlago.\n" +"\n" +"preverite ali je model kamere, ki je napravil to sliko, podprt v programu " +"darktable\n" +"(seznam podprtih modelov je na https://www.darktable.org/resources/camera-" +"support/).\n" +"če ste prepričani, da je model podprt, razmislite o prijavi opažanja na\n" +"https://github.com/darktable-org/darktable" + +#: ../src/views/darkroom.c:521 +#, c-format +msgctxt "darkroom" +msgid "loading `%s' ..." +msgstr "nalaganje '%s' ..." + +#: ../src/views/darkroom.c:668 ../src/views/darkroom.c:2335 +msgid "gamut check" +msgstr "kontrola barvnega razpona" + +#: ../src/views/darkroom.c:668 +msgid "soft proof" +msgstr "preizkusni odtis" + +#. fail :( +#: ../src/views/darkroom.c:708 ../src/views/print.c:356 +msgid "no image to open!" +msgstr "ni slike za odpiranje!" + +#: ../src/views/darkroom.c:1232 +msgid "no user-defined presets for favorite modules were found" +msgstr "ne najdem uporabnikovih nastavitev za priljubljene module" + +#: ../src/views/darkroom.c:1377 +msgid "no styles have been created yet" +msgstr "nobenega sloga še ni ustvarjenega" + +#: ../src/views/darkroom.c:2170 ../src/views/darkroom.c:2171 +msgid "quick access to presets" +msgstr "hitrih dostop do prednastavitev" + +#: ../src/views/darkroom.c:2179 +msgid "quick access to styles" +msgstr "hitri dostop do slogov" + +#: ../src/views/darkroom.c:2181 +msgid "quick access for applying any of your styles" +msgstr "hitri dostop za uporabo kateregakoli vašega sloga" + +#: ../src/views/darkroom.c:2187 +msgid "second window" +msgstr "drugo okno" + +#: ../src/views/darkroom.c:2190 +msgid "display a second darkroom image window" +msgstr "prikaži drugo okno programa darkroom" + +#: ../src/views/darkroom.c:2195 +msgid "color assessment" +msgstr "ocena barv" + +#: ../src/views/darkroom.c:2198 +msgid "toggle ISO 12646 color assessment conditions" +msgstr "preklopi v pogoje za oceno barve ISO 12646" + +#: ../src/views/darkroom.c:2211 +msgid "" +"toggle raw over exposed indication\n" +"right click for options" +msgstr "" +"preklopi indikator preosvetljenosti\n" +"desni klik za dodatne možnosti" + +#: ../src/views/darkroom.c:2227 +msgid "select how to mark the clipped pixels" +msgstr "izberite kako označiti izrezane piksle" + +#: ../src/views/darkroom.c:2229 +msgid "mark with CFA color" +msgstr "označi z barvo CFA" + +#: ../src/views/darkroom.c:2229 +msgid "mark with solid color" +msgstr "označi s trdno barvo" + +#: ../src/views/darkroom.c:2229 +msgid "false color" +msgstr "napačna barva" + +#: ../src/views/darkroom.c:2232 ../src/views/darkroom.c:2283 +msgid "color scheme" +msgstr "barvna shema" + +#: ../src/views/darkroom.c:2233 +msgid "" +"select the solid color to indicate over exposure.\n" +"will only be used if mode = mark with solid color" +msgstr "" +"izberite trdno barvo za oznako preosvetljenosti.\n" +"uporabili jo bomo samo v načinu 'označi s trdno barvo'" + +#: ../src/views/darkroom.c:2236 +msgctxt "solidcolor" +msgid "red" +msgstr "rdeča" + +#: ../src/views/darkroom.c:2237 +msgctxt "solidcolor" +msgid "green" +msgstr "zelena" + +#: ../src/views/darkroom.c:2238 +msgctxt "solidcolor" +msgid "blue" +msgstr "modra" + +#: ../src/views/darkroom.c:2239 +msgctxt "solidcolor" +msgid "black" +msgstr "črna" + +#: ../src/views/darkroom.c:2247 +msgid "" +"threshold of what shall be considered overexposed\n" +"1.0 - white level\n" +"0.0 - black level" +msgstr "" +"prag, kaj se bo štelo za preosvetljeno\n" +"1.0 - nivo beline\n" +"0.0 - nivo črnine" + +#: ../src/views/darkroom.c:2261 +msgid "" +"toggle clipping indication\n" +"right click for options" +msgstr "" +"preklop indikatorja obrezovanja\n" +"desni klik za možnosti" + +#: ../src/views/darkroom.c:2276 +msgid "clipping preview mode" +msgstr "predogled obrezovanja" + +#: ../src/views/darkroom.c:2277 +msgid "" +"select the metric you want to preview\n" +"full gamut is the combination of all other modes" +msgstr "" +"izberite metriko, za katero želite predogled\n" +"celotni barvni razpon je kombinacija vseh drugih načinov" + +#: ../src/views/darkroom.c:2279 +msgid "full gamut" +msgstr "celotni barvni razpon" + +#: ../src/views/darkroom.c:2279 +msgid "any RGB channel" +msgstr "katerikoli kanal RGB" + +#: ../src/views/darkroom.c:2279 +msgid "luminance only" +msgstr "samo svetlost" + +#: ../src/views/darkroom.c:2279 +msgid "saturation only" +msgstr "samo nasičenost" + +#: ../src/views/darkroom.c:2284 +msgid "select colors to indicate clipping" +msgstr "izberite barve za oznako clipinga" + +#: ../src/views/darkroom.c:2286 +msgid "red & blue" +msgstr "rdeča & modra" + +#: ../src/views/darkroom.c:2286 +msgid "purple & green" +msgstr "škrlatna & zelena" + +#: ../src/views/darkroom.c:2293 +msgid "lower threshold" +msgstr "spodnji prag" + +#: ../src/views/darkroom.c:2294 +msgid "" +"clipping threshold for the black point,\n" +"in EV, relatively to white (0 EV).\n" +"8 bits sRGB clips blacks at -12.69 EV,\n" +"8 bits Adobe RGB clips blacks at -19.79 EV,\n" +"16 bits sRGB clips blacks at -20.69 EV,\n" +"typical fine-art mat prints produce black at -5.30 EV,\n" +"typical color glossy prints produce black at -8.00 EV,\n" +"typical B&W glossy prints produce black at -9.00 EV." +msgstr "" +"prag obrezovanja za črno točko,\n" +"v EV, glede na belo (0 EV).\n" +"8-bitni sRGB posnetki črni pri -12,69 EV,\n" +"8-bitni posnetki Adobe RGB so črni pri -19,79 EV,\n" +"16-bitni sRGB posnetki so črni pri -20,69 EV,\n" +"tipični umetniški odtisi na mat podlogah ustvarijo črno pri -5,30 EV,\n" +"tipični barvni sijajni odtisi dajo črno pri -8,00 EV,\n" +"tipični črno-beli sijajni odtisi dajo črno pri -9,00 EV." + +#: ../src/views/darkroom.c:2310 +msgid "upper threshold" +msgstr "gornji prag" + +#: ../src/views/darkroom.c:2312 +#, no-c-format +msgid "" +"clipping threshold for the white point.\n" +"100% is peak medium luminance." +msgstr "" +"prag obreza za belo točko.\n" +"100% je največja srednja svetlost." + +#: ../src/views/darkroom.c:2324 +msgid "softproof" +msgstr "preizkusni odtis" + +#: ../src/views/darkroom.c:2327 +msgid "" +"toggle softproofing\n" +"right click for profile options" +msgstr "" +"preklop preizkusnega odtisa\n" +"desni klik za možnosti profila" + +#: ../src/views/darkroom.c:2338 +msgid "" +"toggle gamut checking\n" +"right click for profile options" +msgstr "" +"preklapljaj preverjanje barvnega razpona\n" +"desni klik za nastavitve profila" + +#: ../src/views/darkroom.c:2365 ../src/views/darkroom.c:2367 +#: ../src/views/darkroom.c:2381 ../src/views/darkroom.c:2382 +#: ../src/views/darkroom.c:2383 ../src/views/darkroom.c:2384 +#: ../src/views/lighttable.c:1182 ../src/views/lighttable.c:1184 +msgid "profiles" +msgstr "profili" + +#: ../src/views/darkroom.c:2367 ../src/views/lighttable.c:1184 +msgid "preview intent" +msgstr "predogled namena" + +#: ../src/views/darkroom.c:2381 ../src/views/lighttable.c:1188 +msgid "display profile" +msgstr "profil zaslona" + +#: ../src/views/darkroom.c:2382 ../src/views/lighttable.c:1191 +msgid "preview display profile" +msgstr "profil prikaza predogleda" + +#: ../src/views/darkroom.c:2384 +msgid "histogram profile" +msgstr "profil histograma" + +#: ../src/views/darkroom.c:2391 +#| msgid "toggle ISO 12646 color assessment conditions" +msgid "second preview window ISO 12646 color assessment" +msgstr "drugo okno za predogled ocene barv ISO 12646" + +#: ../src/views/darkroom.c:2393 +#| msgid "color assessment" +msgid "color assessment second preview" +msgstr "ocena barv drugi predogled" + +#: ../src/views/darkroom.c:2452 ../src/views/lighttable.c:1225 +msgid "display ICC profiles" +msgstr "zaslonski ICC profili" + +#: ../src/views/darkroom.c:2456 ../src/views/lighttable.c:1229 +msgid "preview display ICC profiles" +msgstr "predogled zaslonskih ICC profilov" + +#: ../src/views/darkroom.c:2460 +msgid "softproof ICC profiles" +msgstr "preizkusni odtis ICC profilov" + +#: ../src/views/darkroom.c:2464 +msgid "histogram and color picker ICC profiles" +msgstr "histogram in nabiralnik barve ICC profilov" + +#: ../src/views/darkroom.c:2497 +msgid "" +"toggle guide lines\n" +"right click for guides options" +msgstr "" +"preklapljaj vodila\n" +"desni klik za nastavitev vodil" + +#. Fullscreen preview key +#: ../src/views/darkroom.c:2514 +msgid "full preview" +msgstr "polni pogled" + +#. add an option to allow skip mouse events while other overlays are consuming mouse actions +#: ../src/views/darkroom.c:2518 +msgid "force pan/zoom/rotate with mouse" +msgstr "prisili pomik/povečevanje/zasuk z miško" + +#. Zoom shortcuts +#: ../src/views/darkroom.c:2530 +msgid "zoom close-up" +msgstr "približaj zelo blizu" + +#. zoom in/out +#. zoom in/out/min/max +#: ../src/views/darkroom.c:2533 ../src/views/lighttable.c:1283 +msgid "zoom in" +msgstr "povečaj" + +#: ../src/views/darkroom.c:2534 ../src/views/lighttable.c:1285 +msgid "zoom out" +msgstr "oddalji" + +#. Shortcut to skip images +#: ../src/views/darkroom.c:2537 +msgid "image forward" +msgstr "slika naprej" + +#: ../src/views/darkroom.c:2538 +msgid "image back" +msgstr "slika nazaj" + +#. cycle overlay colors +#: ../src/views/darkroom.c:2541 +msgid "cycle overlay colors" +msgstr "kolobari barve prekrivne plasti" + +#. toggle visibility of drawn masks for current gui module +#: ../src/views/darkroom.c:2544 +msgid "show drawn masks" +msgstr "prikaži narisane maske" + +#. brush size +/- +#: ../src/views/darkroom.c:2547 +msgid "increase brush size" +msgstr "povečaj velikost čopiča" + +#: ../src/views/darkroom.c:2548 +msgid "decrease brush size" +msgstr "zmanjšaj velikost čopiča" + +#. brush hardness +/- +#: ../src/views/darkroom.c:2551 +msgid "increase brush hardness" +msgstr "povečaj trdoto čopiča" + +#: ../src/views/darkroom.c:2552 +msgid "decrease brush hardness" +msgstr "zmanjšaj trdoto čopiča" + +#. brush opacity +/- +#: ../src/views/darkroom.c:2555 +msgid "increase brush opacity" +msgstr "povečaj neprosojnost čopiča" + +#: ../src/views/darkroom.c:2556 +msgid "decrease brush opacity" +msgstr "pomanjšaj neprosojnost čopiča" + +#. undo/redo +#: ../src/views/darkroom.c:2559 ../src/views/lighttable.c:1275 +#: ../src/views/map.c:2115 +msgid "undo" +msgstr "prekliči zadnjo operacijo" + +#: ../src/views/darkroom.c:2560 ../src/views/lighttable.c:1276 +#: ../src/views/map.c:2116 +msgid "redo" +msgstr "ponovno uporabi zadnjo operacijo" + +#. change the precision for adjusting sliders with keyboard shortcuts +#: ../src/views/darkroom.c:2563 +msgid "change keyboard shortcut slider precision" +msgstr "spremeni natančnost drsnika za bližnjico na tipkovnici" + +#: ../src/views/darkroom.c:3565 +msgid "keyboard shortcut slider precision: fine" +msgstr "natančnost drsnika za bližnjico na tipkovnici: fino" + +#: ../src/views/darkroom.c:3567 +msgid "keyboard shortcut slider precision: normal" +msgstr "natančnost drsnika za bližnjico na tipkovnici: normalno" + +#: ../src/views/darkroom.c:3569 +msgid "keyboard shortcut slider precision: coarse" +msgstr "natančnost drsnika za bližnjico na tipkovnici: grobo" + +#: ../src/views/darkroom.c:3584 +msgid "switch to lighttable" +msgstr "preklop na osvetljeno podlago" + +#: ../src/views/darkroom.c:3585 ../src/views/lighttable.c:882 +msgid "zoom in the image" +msgstr "zoom na sliko" + +#: ../src/views/darkroom.c:3586 +msgid "unbounded zoom in the image" +msgstr "neomejeni zoom na sliko" + +#: ../src/views/darkroom.c:3587 +msgid "zoom to 100% 200% and back" +msgstr "zoom na 100% 200% in nazaj" + +#: ../src/views/darkroom.c:3588 ../src/views/lighttable.c:885 +msgid "pan a zoomed image" +msgstr "pomakni povečano sliko" + +#: ../src/views/darkroom.c:3590 ../src/views/lighttable.c:927 +msgid "[modules] expand module without closing others" +msgstr "[modules] razširi modul brez zapiranja drugih" + +#: ../src/views/darkroom.c:3591 ../src/views/lighttable.c:928 +msgid "[modules] expand module and close others" +msgstr "[modules] razširi modul in zapri druge" + +#: ../src/views/darkroom.c:3593 +msgid "[modules] rename module" +msgstr "[modules] preimenuj modul" + +#: ../src/views/darkroom.c:3595 +msgid "[modules] change module position in pipe" +msgstr "[modules] spremeni mesto v vrstnem redu modula zaporedju obdelav" + +#: ../src/views/knight.c:334 +msgid "good knight" +msgstr "dober vitez" + +#. Show infos key +#: ../src/views/lighttable.c:656 ../src/views/lighttable.c:1266 +msgid "show infos" +msgstr "prikaži informacije" + +#: ../src/views/lighttable.c:759 +msgid "middle" +msgstr "srednja" + +#: ../src/views/lighttable.c:877 +msgid "open image in darkroom" +msgstr "odpri sliko v temnici" + +#: ../src/views/lighttable.c:881 +msgid "switch to next/previous image" +msgstr "preklopi na naslednjo/prejšnjo sliko" + +#: ../src/views/lighttable.c:884 ../src/views/lighttable.c:915 +#, no-c-format +msgid "zoom to 100% and back" +msgstr "zoom na 100% in nazaj" + +#: ../src/views/lighttable.c:889 ../src/views/lighttable.c:908 +msgid "scroll the collection" +msgstr "premik po zbirki" + +#: ../src/views/lighttable.c:891 +msgid "change number of images per row" +msgstr "spremeni število slik v vrsti" + +#: ../src/views/lighttable.c:894 +msgid "select an image" +msgstr "izberi sliko" + +#: ../src/views/lighttable.c:896 +msgid "select range from last image" +msgstr "izberi obseg iz zadnje slike" + +#: ../src/views/lighttable.c:898 +msgid "add image to or remove it from a selection" +msgstr "dodaj sliko ali odstrani jo iz izbire" + +#: ../src/views/lighttable.c:902 +msgid "change image order" +msgstr "spremeni zaporedje slik" + +#: ../src/views/lighttable.c:909 +msgid "zoom all the images" +msgstr "zoomiraj vse slike" + +#: ../src/views/lighttable.c:910 +msgid "pan inside all the images" +msgstr "pomikaj se znotraj vseh slik" + +#: ../src/views/lighttable.c:912 +msgid "zoom current image" +msgstr "zoomiraj trenutno sliko" + +#: ../src/views/lighttable.c:913 +msgid "pan inside current image" +msgstr "premikaj se znotraj trenutne slike" + +#: ../src/views/lighttable.c:918 +#, no-c-format +msgid "zoom current image to 100% and back" +msgstr "zoom na 100% in nazaj" + +#: ../src/views/lighttable.c:922 +msgid "zoom the main view" +msgstr "zoomiraj glavni pogled" + +#: ../src/views/lighttable.c:923 +msgid "pan inside the main view" +msgstr "premija se znotraj glavnega pogleda" + +#: ../src/views/lighttable.c:1160 +msgid "set display profile" +msgstr "nastavi profil zaslona" + +#: ../src/views/lighttable.c:1246 +msgid "whole" +msgstr "celo" + +#: ../src/views/lighttable.c:1262 +msgid "leave" +msgstr "zapusti" + +#: ../src/views/lighttable.c:1269 +msgid "align images to grid" +msgstr "poravnaj slike na mrežo" + +#: ../src/views/lighttable.c:1270 +msgid "reset first image offset" +msgstr "nastavi zamik prve slike" + +#: ../src/views/lighttable.c:1271 +msgid "select toggle image" +msgstr "izberi preklop slik" + +#: ../src/views/lighttable.c:1272 +msgid "select single image" +msgstr "izberi posamično sliko" + +#. zoom for full culling & preview +#: ../src/views/lighttable.c:1279 +msgid "preview zoom 100%" +msgstr "predogledni zoom 100%" + +#: ../src/views/lighttable.c:1280 +msgid "preview zoom fit" +msgstr "predogledni zoom prilagojen oknu" + +#: ../src/views/lighttable.c:1284 +msgid "zoom max" +msgstr "maksimalno povečaj" + +#: ../src/views/lighttable.c:1286 +msgid "zoom min" +msgstr "maksimalno oddalji" + +#: ../src/views/map.c:2809 +msgid "[on image] open in darkroom" +msgstr "[on image] odpri v temnici" + +#: ../src/views/map.c:2810 +msgid "[on map] zoom map" +msgstr "[on image] zoomiraj mapo" + +#: ../src/views/map.c:2811 +msgid "move image location" +msgstr "preseli lokacijo slike" + +#: ../src/views/print.c:55 +msgctxt "view" +msgid "print" +msgstr "tiskaj" + +#: ../src/views/slideshow.c:355 +msgid "end of images" +msgstr "konec slik" + +#: ../src/views/slideshow.c:376 +msgid "end of images. press any key to return to lighttable mode" +msgstr "" +"konec slik. pritisnite katerokoli tipko za povratek v način osvetljene " +"podlage" + +#: ../src/views/slideshow.c:509 +msgid "waiting to start slideshow" +msgstr "čakam na zagon projekcije" + +#: ../src/views/slideshow.c:678 ../src/views/slideshow.c:705 +#: ../src/views/slideshow.c:713 +msgid "slideshow paused" +msgstr "projekcija zaustavljena" + +#: ../src/views/slideshow.c:686 ../src/views/slideshow.c:696 +#, c-format +msgid "slideshow delay set to %d second" +msgid_plural "slideshow delay set to %d seconds" +msgstr[0] "zamik prikaza projekcije na %d sekunde" +msgstr[1] "zamik prikaza projekcije na %d sekundi" +msgstr[2] "zamik prikaza projekcije na %d sekund" +msgstr[3] "zamik prikaza projekcije na %d sekund" + +#: ../src/views/slideshow.c:728 +msgid "start and stop" +msgstr "začni in zaustavi" + +#: ../src/views/slideshow.c:730 +msgid "exit slideshow" +msgstr "izhod iz projekcije" + +#: ../src/views/slideshow.c:734 +msgid "slow down" +msgstr "upočasni" + +#: ../src/views/slideshow.c:738 +msgid "speed up" +msgstr "pospeši" + +#: ../src/views/slideshow.c:743 +msgid "step forward" +msgstr "korak naprej" + +#: ../src/views/slideshow.c:745 +msgid "step back" +msgstr "korak nazaj" + +#: ../src/views/slideshow.c:753 +msgid "go to next image" +msgstr "pojdi na naslednjo sliko" + +#: ../src/views/slideshow.c:755 +msgid "go to previous image" +msgstr "pojdi na prejšnjo sliko" + +#: ../src/views/tethering.c:157 +#, c-format +msgid "new session initiated '%s'" +msgstr "nova seja je zagnala '%s'" + +#: ../src/views/tethering.c:448 +msgid "no camera with tethering support available for use..." +msgstr "ne najdem nobene kamere, ki bi dovoljevala upravljanje..." + +#: ../src/views/view.c:1352 +msgid "left click" +msgstr "levi klik" + +#: ../src/views/view.c:1355 +msgid "right click" +msgstr "desni klik" + +#: ../src/views/view.c:1358 +msgid "middle click" +msgstr "srednji klik" + +#: ../src/views/view.c:1364 +msgid "left double-click" +msgstr "levi dvoklik" + +#: ../src/views/view.c:1367 +msgid "right double-click" +msgstr "desni dvoklik" + +#: ../src/views/view.c:1370 +msgid "drag and drop" +msgstr "povleci in spusti" + +#: ../src/views/view.c:1373 +msgid "left click+drag" +msgstr "levi klik+povlek" + +#: ../src/views/view.c:1376 +msgid "right click+drag" +msgstr "desni klik+povlek" + +#: ../src/views/view.c:1398 +msgid "darktable - accels window" +msgstr "darktable - okno pospeševanja" + +#: ../src/views/view.c:1447 +msgid "switch to a classic window which will stay open after key release" +msgstr "preklopi na klasično okno, ki bo ostalo odprto po sprostitvi tipke" + +#. we add the mouse actions too +#: ../src/views/view.c:1514 +msgid "mouse actions" +msgstr "aktivnosti miške" + +#~ msgctxt "preferences" +#~ msgid "nothing" +#~ msgstr "nič" + +#~ msgctxt "preferences" +#~ msgid "memory size" +#~ msgstr "velikost pomnilnika" + +#~ msgctxt "preferences" +#~ msgid "memory transfer" +#~ msgstr "prenos pomnilnika" + +#~ msgctxt "preferences" +#~ msgid "memory size and transfer" +#~ msgstr "velikost pomnilnika in prenos" + +#~ msgctxt "preferences" +#~ msgid "id" +#~ msgstr "id" + +#~ msgctxt "preferences" +#~ msgid "folder" +#~ msgstr "mapa" + +#~ msgid "" +#~ "when having raw+JPEG images together in one directory it makes no sense " +#~ "to import both. with this flag one can ignore all JPEGs found." +#~ msgstr "" +#~ "kadar so surove in JPEG slike skupaj v eni mapi, nima smisla uvažati " +#~ "obeh. s tem stikalom preskoči uvoz slik v JPEG." + +#~ msgid "tune OpenCL performance" +#~ msgstr "prilagodi zmogljivosti OpenCL" + +#~ msgid "" +#~ "allows runtime tuning of OpenCL devices:\n" +#~ " - 'memory size': uses a fixed headroom (400MB as default),\n" +#~ " - 'memory transfer': tries a faster memory access mode (pinned memory) " +#~ "used for tiling." +#~ msgstr "" +#~ "omogoča nastavitev naprav OpenCL:\n" +#~ " - 'velikost pomnilnika' uporablja stalno velikost (privzeto 400MB),\n" +#~ " - 'prenos pomnilnika:' poskuša hitrejši način dostopa do pomnilnika " +#~ "(pripeti pomnilnik), ki se uporablja za sestavo slik iz krp." + +#~ msgid "write sidecar file for each image" +#~ msgstr "napiši priklopno datoteko za vsako sliko" + +#~ msgid "" +#~ "if an instance of the module has focus, apply shortcut to that instance\n" +#~ "note: blending shortcuts always apply to the focused instance" +#~ msgstr "" +#~ "če ima pojavek modula fokus, uporabite bližnjico na ta pojavek\n" +#~ "opomba: mešanje bližnjic vedno se vedno nanaša za fokusiran pojavek" + +#~ msgid "distortion fine-tune" +#~ msgstr "fino nastavljanje popačenja" + +#~ msgid "vignetting fine-tune" +#~ msgstr "fino nastavljanje vinjetiranja" + +#~ msgid "TCA red fine-tune" +#~ msgstr "fino upravljanje TCA rdeče" + +#~ msgid "TCA blue fine-tune" +#~ msgstr "fino upravljanje TCA modre" + +#~ msgid "tiff" +#~ msgstr "tiff" + +#~ msgid "png" +#~ msgstr "png" + +#~ msgid "j2k" +#~ msgstr "j2k" + +#~ msgid "jpeg" +#~ msgstr "jpeg" + +#~ msgid "exr" +#~ msgstr "exr" + +#~ msgid "rgbe" +#~ msgstr "rgbe" + +#~ msgid "pfm" +#~ msgstr "pfm" + +#~ msgid "netpnm" +#~ msgstr "netpnm" + +#~ msgid "avif" +#~ msgstr "avif" + +#~ msgid "heif" +#~ msgstr "heif" + +#~ msgid "libraw" +#~ msgstr "libraw" + +#~ msgid "webp" +#~ msgstr "webp" + +#~ msgid "jpeg xl" +#~ msgstr "jpeg xl" + +#~ msgid "" +#~ "due to a slow GPU hardware acceleration using OpenCL has been deactivated" +#~ msgstr "" +#~ "zaradi počasnega grafičnega pospeševanja je bila funkcija OpenCL " +#~ "izklopljena" + +#~ msgid "" +#~ "multiple GPUs detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "zaznano je več grafičnih procesorjev - časovni plan OpenCL je ustrezno " +#~ "prilagojen" + +#~ msgid "" +#~ "very fast GPU detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "zaznan zelo hiter grafični procesor - časovni plan OpenCL je ustrezno " +#~ "prilagojen" + +#~ msgid "" +#~ "darktable discovered problems with your OpenCL setup; disabling OpenCL " +#~ "for this session!" +#~ msgstr "" +#~ "darktable je zaznal težavo z vašo nastavitvijo OpenCL; onemogočam OpenCL " +#~ "za to sejo!" + +#~ msgid "no-op" +#~ msgstr "brez operacije" + +#~ msgid "RGB colors" +#~ msgstr "RGB barve" + +#~ msgid "compression type" +#~ msgstr "vrsta stiskanja" + +#~ msgid "jp2" +#~ msgstr "jp2" + +#~ msgid "b&w image" +#~ msgstr "č/b slika" + +#~ msgid "write RGB colors" +#~ msgstr "zapiši RGB barve" + +#~ msgid "write grayscale" +#~ msgstr "zapiši sivinsko lestvico" + +#~ msgid "spot color mapping" +#~ msgstr "preslikava barve točke" + +#~ msgid "spot mode" +#~ msgstr "točkovni način" + +#~ msgid "" +#~ "tone equalizer needs to be after distortion modules in the pipeline – " +#~ "disabled" +#~ msgstr "" +#~ "izenačevalnik tonov mora biti v zaporedju postopkov izza modulov " +#~ "preobražanja - onemogočeno" + +#~ msgid "reference to which the marker should be scaled to" +#~ msgstr "referenca na katero bi moral biti prilagojen označevalnik" + +#~ msgid "length of the marker which is used as scaling reference" +#~ msgstr "" +#~ "dolžina označevalnika, ki naj bo uporabljena za referenco lestvičenja" + +#~ msgid "save" +#~ msgstr "shrani" + +#~ msgid "add" +#~ msgstr "dodaj" + +#~ msgid "only" +#~ msgstr "samo" + +#~ msgid "selected image[s]" +#~ msgstr "izbrane slike" + +#~ msgid "hardness (relative)" +#~ msgstr "trdota (relativna)" + +#~ msgid "hardness (absolute)" +#~ msgstr "trdota (absolutna)" + +#~ msgid "opacity (relative)" +#~ msgstr "neprosojnost (relativna)" + +#~ msgid "opacity (absolute)" +#~ msgstr "neprosojnost (absolutna)" + +#~ msgid "brush size (relative)" +#~ msgstr "velikost čopiča (relativna)" + +#~ msgid "low" +#~ msgstr "nizka" + +#~ msgid "medium" +#~ msgstr "srednja" + +#~ msgid "high" +#~ msgstr "visoka" + +#~ msgid "" +#~ "pen pressure control for brush masks\n" +#~ "'off': pressure reading ignored,\n" +#~ "'hardness'/'opacity'/'brush size': pressure reading controls specified " +#~ "attribute,\n" +#~ "'absolute'/'relative': pressure reading is taken directly as attribute " +#~ "value or multiplied with pre-defined setting." +#~ msgstr "" +#~ "kontrola pritiska čopiča za maske čopiča\n" +#~ "'izključena': merjenje pritiska izpuščeno,\n" +#~ "'trdota'/'prosojnost'/'velikost čopiča': branje atributa pritiska " +#~ "določene lastnosti,\n" +#~ "'absolutne'/'relativne': detekcija pritiska prebrana direktno kot " +#~ "vrednost atributa ali pomnoženo s prej določeno vrednostjo." + +#~ msgid "" +#~ "smoothing of brush strokes\n" +#~ "stronger smoothing leads to fewer nodes and easier editing but with lower " +#~ "control of accuracy." +#~ msgstr "" +#~ "nastavitev ravni glajenja potez s čopičem\n" +#~ "močnejše glajenje pomeni manj vozlišč in enostavnejše urejanje krivulj, a " +#~ "manjšo natančnost." + +#~ msgid "<leave unchanged>" +#~ msgstr "<pusti nespremenjeno>" + +#, c-format +#~ msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" +#~ msgstr "%.1f mm (%.1f mm FF ekviv, obrez %.1f)" + +#~ msgid "_yes, physically delete" +#~ msgstr "_da, fizično zbriši" + +#~ msgid "_no, only remove from library" +#~ msgstr "_ne, samo izloči iz knjižnice" + +#, c-format +#~ msgid "" +#~ "darktable loads external ICC profiles from\n" +#~ "%s\n" +#~ "and\n" +#~ "%s" +#~ msgstr "" +#~ "darktable naloži eksterne ICC profile iz\n" +#~ "%s\n" +#~ "in\n" +#~ "%s" + +#, c-format +#~ msgid "ICC profiles in %s or %s" +#~ msgstr "profili ICC v %s ali %s" + +#, c-format +#~ msgid "output ICC profiles in %s or %s" +#~ msgstr "izhodni ICC profili v %s ali %s" + +#, c-format +#~ msgid "display ICC profiles in %s or %s" +#~ msgstr "prikaži profile ICC v %s ali %s" + +#, c-format +#~ msgid "preview display ICC profiles in %s or %s" +#~ msgstr "predogled prikaza profilov ICC v %s ali %s" + +#, c-format +#~ msgid "softproof ICC profiles in %s or %s" +#~ msgstr "profili preizkusnih odtisov ICC v %s ali %s" + +#~ msgctxt "preferences" +#~ msgid "always bilinear (fast)" +#~ msgstr "vedno bilinearna (hitra)" + +#~ msgctxt "preferences" +#~ msgid "full (possibly slow)" +#~ msgstr "polna (možno počasno)" + +#~ msgctxt "preferences" +#~ msgid "modern" +#~ msgstr "moderno" + +#~ msgctxt "preferences" +#~ msgid "legacy" +#~ msgstr "zapuščina" + +#~ msgid "pen pressure control for brush masks" +#~ msgstr "nastavitev pritiska peresa za maske čopičev" + +#~ msgid "smoothing of brush strokes" +#~ msgstr "glajenje potez s čopičem" + +#~ msgid "demosaicing for zoomed out darkroom mode" +#~ msgstr "odstranjevanje mozaičnosti izven načina temnice" + +#~ msgid "" +#~ "demosaicer when not viewing 1:1 in darkroom mode: 'bilinear' is fast but " +#~ "slightly blurry. 'default' uses the default demosaicer for the used " +#~ "sensor (RCD or Markesteijn). 'full' will use exactly the settings as for " +#~ "full-size export." +#~ msgstr "" +#~ "demozaičnik, kadar v ni načinu temnice 1: 1: bilinearno je hitro, vendar " +#~ "ne tako ostro. 'privzeto' uporablja privzeti demozaičnik za senzor (RCD " +#~ "ali Markensteijn). 'polno' bo uporabil natančne nastavitve za izvoz v " +#~ "polni velikosti." + +#~ msgid "auto-apply chromatic adaptation defaults" +#~ msgstr "samodejno uporabi privzete nastavitve kromatične prilagoditve" + +#~ msgid "" +#~ "legacy performs a basic chromatic adaptation using only the white balance " +#~ "module\n" +#~ "modern uses a combination of white balance module and color calibration " +#~ "module, with improved color science for chromatic adaptation" +#~ msgstr "" +#~ "zapuščina izvede osnovno kromatsko prilagoditev z uporabo samo modula " +#~ "ravnovesja beline\n" +#~ "moderno uporablja kombinacijo modula za uravnavanje beline in modula " +#~ "umerjanja barv z izboljšano barvno znanostjo za kromatsko prilagoditev" + +#~ msgid "128 px" +#~ msgstr "128 px" + +#~ msgid "geometry" +#~ msgstr "geometrija" + +#~ msgid "averaged eigf" +#~ msgstr "povprečeni eigf" + +#~ msgid "eigf" +#~ msgstr "eigf" + +#~ msgid "sRGB (e.g. JPG)" +#~ msgstr "sRGB (npr. JPG)" + +#, c-format +#~ msgid "darktable » %s" +#~ msgstr "darktable » %s" + +#~ msgid "<h1>Sorry,</h1><p>something went wrong. Please try again.</p>" +#~ msgstr "" +#~ "<h1>Oprostite,</h1><p>nekaj je šlo narobe. Prosim, poskusite znova.</p>" + +#~ msgid "" +#~ "<h1>Thank you,</h1><p>everything should have worked, you can <b>close</b> " +#~ "your browser now and <b>go back</b> to darktable.</p>" +#~ msgstr "" +#~ "<h1>Hvala,</h1><p>vse bi moralo biti opravljeno. Lahko <b>zaprete</b> vaš " +#~ "brskalnik in <b>se vrnete</b> na darktable.</p>" + +#, c-format +#~ msgid "unsupported working profile %s has been replaced by Rec2020 RGB!\n" +#~ msgstr "nepodprt delovni profil %s je bil zamenjan za Rec2020 RGB!\n" + +#~ msgid "a4" +#~ msgstr "a4" + +#~ msgid "a3" +#~ msgstr "a3" + +#, c-format +#~ msgid "could not send %s to trash%s%s" +#~ msgstr "ne morem prenesti %s do koša%s%s" + +#~ msgid "physically delete all files" +#~ msgstr "fizično zbriši vse datoteke" + +#~ msgid "skip to next file" +#~ msgstr "preskoči na naslednjo datoteko" + +#~ msgid "stop process" +#~ msgstr "zaustavi postopek" + +#, c-format +#~ msgid "skipped blending in module '%s': roi's do not match" +#~ msgstr "preskočeno mešanje v modulu '%s', ker se vrednosti 'roi' ne ujemata" + +#~ msgid "could not allocate buffer for blending" +#~ msgstr "ni bilo mogoče dobiti dovolj medpomnilnika za mešanje" + +#~ msgctxt "blendmode" +#~ msgid "Lab L-channel" +#~ msgstr "Kanal Lab L" + +#~ msgid "lighten modes" +#~ msgstr "osvetljevalni načini" + +#~ msgid "darken modes" +#~ msgstr "zatemnjevalni načini" + +#~ msgid "deprecated modes" +#~ msgstr "zastareli načini" + +#~ msgid "apply mask in normal or inverted mode" +#~ msgstr "uveljavi masko v normalnem ali preobrnjenem načinu" + +#~ msgid "" +#~ "press Del to delete selected shortcut\n" +#~ "double-click to add new shortcut\n" +#~ "start typing for incremental search" +#~ msgstr "" +#~ "pritisnite Del, da zbrišete izbrano bližnjico\n" +#~ "dvakrat kliknite za dodajanje nove bližnjice\n" +#~ "začnite tipkati za postopno iskanje" + +#~ msgid "input devices reinitialised" +#~ msgstr "vhodne naprave ponovno nastavljene" + +#~ msgid "maximum ISO value" +#~ msgstr "največja občutljivost ISO" + +#~ msgid "rgb colors" +#~ msgstr "rgb barve" + +#~ msgid "embed icc profiles" +#~ msgstr "vgradi icc profil" + +#~ msgid "3:2" +#~ msgstr "3:2" + +#~ msgid "raw CA correction supports only standard RGB Bayer filter arrays" +#~ msgstr "" +#~ "surovi CA popravki podpirajo samo standardne RGB Bayerjeve filtrske " +#~ "vektorje" + +#~ msgid "bypassed while zooming in" +#~ msgstr "obideno med povečevanjem" + +#~ msgid "" +#~ "while calculating the correction parameters the internal maths failed so " +#~ "module is bypassed.\n" +#~ "you can get more info by running darktable via the console." +#~ msgstr "" +#~ "pri izračunu korekcijskih parametrov notranja matematika ni uspela modul " +#~ "ni bil uporabljen.\n" +#~ "več informacij lahko dobite z zagonom dt prek konzole." + +#~ msgid "" +#~ "internals maths found too few data points so restricted the order of the " +#~ "fit to linear.\n" +#~ "you might view bad correction results." +#~ msgstr "" +#~ "notranja matematika je našla premalo podatkovnih točk, zato je bil vrstni " +#~ "red ustreznosti omejen na linearno.\n" +#~ "morda boste videli slabe rezultate popravkov." + +#~ msgid "" +#~ "to calculate good parameters for raw CA correction we want full sensor " +#~ "data or at least a sensible part of that.\n" +#~ "the image shown in darkroom would look vastly different from developed " +#~ "files so effect is bypassed now." +#~ msgstr "" +#~ "za izračun dobrih parametrov za surovo korekcijo CA želimo popolne " +#~ "podatke senzorjaali vsaj njihov smiselni del.\n" +#~ "slika, prikazana v temnici, bi se precej razlikovala od razvitih " +#~ "datotektako da je učinek zdaj obiden." + +#~ msgid "affect color, brightness and contrast" +#~ msgstr "vpliva na barvo, sijavost in kontrast" + +#~ msgctxt "accel" +#~ msgid "acquire" +#~ msgstr "pridobi" + +#~ msgctxt "accel" +#~ msgid "apply" +#~ msgstr "izvedi" + +#~ msgid "number of clusters to find in image" +#~ msgstr "število grup, ki jih lahko najdete v sliki" + +#~ msgid "acquire" +#~ msgstr "pridobi" + +#~ msgid "analyze this image" +#~ msgstr "analiziraj to sliko" + +#~ msgid "apply previously analyzed image look to this image" +#~ msgstr "uporabi videz prej obdelane slike na to sliko" + +#~ msgid "red black white" +#~ msgstr "rdeča črna bela" + +#~ msgid "black white and skin tones" +#~ msgstr "črna bela in kožni toni" + +#~ msgid "black & white film" +#~ msgstr "črno beli film" + +#~ msgid "commit changes" +#~ msgstr "potrdi spremembe" + +#~ msgid "[dual demosaic_cl] internal problem" +#~ msgstr "[dual demosaic_cl] interni problem" + +#~ msgid "add local contrast" +#~ msgstr "dodaj lokalni kontrast" + +#~ msgid "fast sharpness" +#~ msgstr "hitra ostrina" + +#~ msgid "fast local contrast" +#~ msgstr "hitri lokalni kontrast" + +#~ msgid "[dual demosaic] can't allocate internal buffers" +#~ msgstr "[dual demosaic] ni mogoče zagotoviti internih medpomnilnikov" + +#~ msgctxt "equalizer" +#~ msgid "sharpen" +#~ msgstr "naostri" + +#~ msgid "null" +#~ msgstr "nič" + +#~ msgid "denoise (strong)" +#~ msgstr "odstranjevanje šumov (močno)" + +#~ msgid "autodetect" +#~ msgstr "avtomatsko zaznaj" + +#~ msgid "lensfun" +#~ msgstr "funkcije objektiva" + +#~ msgid "" +#~ "click and drag to add point\n" +#~ "scroll to change size - shift+scroll to change strength - ctrl+scroll to " +#~ "change direction" +#~ msgstr "" +#~ "kliknite in potegnite za dodajanje točke\n" +#~ "pomik za spremembo velikosti - dvigalka+drsanje za spremembo moči - " +#~ "krmilka+drsanje za spremembo smeri" + +#~ msgid "" +#~ "click to add line\n" +#~ "scroll to change size - shift+scroll to change strength - ctrl+scroll to " +#~ "change direction" +#~ msgstr "" +#~ "kliknite za dodajanje črte\n" +#~ "drsanje za spremembo velikosti - dvigalka+drsanje za spremembo moči - " +#~ "krmilka+drsanje za spremembo smeri" + +#~ msgid "" +#~ "click to add curve\n" +#~ "scroll to change size - shift+scroll to change strength - ctrl+scroll to " +#~ "change direction" +#~ msgstr "" +#~ "kliknite za dodajanje krivulje\n" +#~ "drsanje za spremembo velikosti - dvigalka+drsanje za spremembo moči - " +#~ "krmilka+drsanje za spremembo smeri" + +#~ msgid "" +#~ "ctrl+click: add node - right click: remove path\n" +#~ "ctrl+alt+click: toggle line/curve" +#~ msgstr "" +#~ "krmilka-klik: dodaj vozlišče - desni klik: odstrani pot\n" +#~ "krmilka-alt-klik: preklopi črta/krivulja" + +#~ msgid "drag to adjust warp radius" +#~ msgstr "povlecite za prilagoditev radija zvitka" + +#~ msgid "drag to adjust hardness (center)" +#~ msgstr "povlecite za prilagoditev trdote (centra)" + +#~ msgid "drag to adjust hardness (feather)" +#~ msgstr "povlecite za prilagoditev trdosti (peresa)" + +#~ msgid "" +#~ "drag to adjust warp strength\n" +#~ "ctrl+click: linear, grow, and shrink" +#~ msgstr "" +#~ "povleci za prilagoditev moči zvijanja\n" +#~ "krmilka+klik: linearno, razširi in zožaj" + +#~ msgid "[lmmse_demosaic] too small area" +#~ msgstr "[lmmse_demosaic] premajhna površina" + +#~ msgid "crop from top" +#~ msgstr "obreži z vrha" + +#~ msgid "crop from bottom" +#~ msgstr "obreži z dna" + +#~ msgid "[rcd_demosaic] too small area" +#~ msgstr "[rcd_demosaic] premajhna površina" + +#~ msgid "compress shadows/highlights (eigf): strong" +#~ msgstr "stiskanje senc/bleščav (eigf) : močno" + +#~ msgid "compress shadows/highlights (eigf): medium" +#~ msgstr "stiskanje senc/bleščav (eigf) : srednje" + +#~ msgid "compress shadows/highlights (eigf): soft" +#~ msgstr "stiskanje senc/bleščav (eigf): mehko" + +#~ msgid "" +#~ "tone equalizer in/out buffer are ill-aligned, please report the bug to " +#~ "the developers" +#~ msgstr "" +#~ "vhodno/izhodna vmesna pomnilnika izenačevalnika tonov sta slabo " +#~ "usklajena, prosim pošljite poročilo o napaki razvijalcem" + +#~ msgid "size is relative to" +#~ msgstr "velikost je relativna na" + +#~ msgid "grouping filter" +#~ msgstr "filter grupiranja" + +#~ msgid "history filter" +#~ msgstr "filter zgodovine" + +#~ msgid "local_copy filter" +#~ msgstr "filter lokalne kopije" + +#~ msgid "module order filter" +#~ msgstr "filter razvrstitve modulov" + +#~ msgid "" +#~ "drag to change black point,\n" +#~ "double-click resets\n" +#~ "ctrl+scroll to change display height" +#~ msgstr "" +#~ "potegnite za spremembo točke črnine.\n" +#~ "dvojni klik ponovno nastavi\n" +#~ "krmilka+drsanje za spremembo višine prikaza" + +#~ msgid "" +#~ "drag to change exposure,\n" +#~ "double-click resets\n" +#~ "ctrl+scroll to change display height" +#~ msgstr "" +#~ "potegnite za spremembo osvetlitve\n" +#~ "dvojni klik ponovno nastavi\n" +#~ "krmilka+pomik za spremembo višine prikaza" + +#~ msgid "set mode to waveform" +#~ msgstr "nastavi način na valovanje" + +#~ msgid "set mode to rgb parade" +#~ msgstr "nastavi pogled rgb parade" + +#~ msgid "set mode to vectorscope" +#~ msgstr "nastavi način vektroskopa" + +#~ msgid "set mode to histogram" +#~ msgstr "nastavi način histograma" + +#~ msgid "click to hide red channel" +#~ msgstr "klikni, da skrijem rdeči kanal" + +#~ msgid "click to show red channel" +#~ msgstr "klikni, da prikažem rdeči kanal" + +#~ msgid "click to hide green channel" +#~ msgstr "klikni, da skrijem zeleni kanal" + +#~ msgid "click to show green channel" +#~ msgstr "klikni, da prikažem zeleni kanal" + +#~ msgid "click to hide blue channel" +#~ msgstr "klikni, da skrijem modri kanal" + +#~ msgid "click to show blue channel" +#~ msgstr "klikni, da prikažem modri kanal" + +#~ msgid "switch histogram type" +#~ msgstr "preklopi tip histograma" + +#~ msgid "rotate 90 degrees ccw" +#~ msgstr "zasukaj 90 stopinj v nasprotni smeri urnega kazalca" + +#~ msgid "rotate 90 degrees cw" +#~ msgstr "zasukaj 90 stopinj v smeri urnega kazalca" + +#~ msgid "legacy flag. set for all new images" +#~ msgstr "oznaka zapuščine. za vse nove slike" + +#~ msgid "modules: default" +#~ msgstr "moduli: privzeto" + +#~ msgctxt "modulegroup" +#~ msgid "technical" +#~ msgstr "tehnično" + +#~ msgid "fit to screen" +#~ msgstr "prilagodi zaslonu" + +#, c-format +#~ msgid "** %s" +#~ msgstr "** %s" + +#, c-format +#~ msgid "at least one new tagname (%s) already exists, aborting." +#~ msgstr "vsaj ena nova oznaka (%s) že obstaja, prekinjam." + +#~ msgid "toggle sticky preview mode" +#~ msgstr "preklopi na način lepljivega predogleda" + +#~ msgid "toggle sticky preview mode with focus detection" +#~ msgstr "preklopi lepljiv predogled z detekcijo fokusa" + +#~ msgid "zoom fill" +#~ msgstr "dopolni z zumiranjem" + +#~ msgid "zoom fit" +#~ msgstr "prilagodi z zumiranjem" + +#~ msgid "ldr" +#~ msgstr "ldr" + +#~ msgid "hdr" +#~ msgstr "hdr" + +#, c-format +#~ msgid "double click to reset to `%f'" +#~ msgstr "dvoklik obnoví `%f'" + +#~ msgid "add image to selection or remove" +#~ msgstr "dodaj sliko v izbiro ali odstrani" + +#~ msgid "no image selected !" +#~ msgstr "nobene izbrane slike!" + +#~ msgid "" +#~ "restore default shortcuts\n" +#~ " or as at startup\n" +#~ " or when the configuration dialog was opened\n" +#~ msgstr "" +#~ "obnovi privzete bližnjice\n" +#~ " ali kot je bilo ob zagonu\n" +#~ " ali kot je bilo nastavljeno ob začetku dialoga nastavitev\n" + +#~ msgid "no embedded metadata and lensfun disabled" +#~ msgstr "ni vdelanih metapodatkov in onemogočene funkcije lečja" + +#~ msgid "" +#~ "embedded lens correction metadata is not available\n" +#~ "and darktable is compiled without lensfun" +#~ msgstr "" +#~ "vdelane korekcije lečij niso na voljo\n" +#~ "in darktable je sestavljen brez funkcij lečij" + +#~ msgid "allow to pan & zoom while editing masks" +#~ msgstr "dovoli pomik in zumiranje ob urejanju mask" + +#~ msgctxt "preferences" +#~ msgid "on startup" +#~ msgstr "ob zagonu" + +#~ msgctxt "preferences" +#~ msgid "on both" +#~ msgstr "ob obojem" + +#~ msgctxt "preferences" +#~ msgid "on startup (don't ask)" +#~ msgstr "ob zagonu (ne sprašuj)" + +#~ msgctxt "preferences" +#~ msgid "on close (don't ask)" +#~ msgstr "ob zaprtju (ne sprašuj)" + +#~ msgctxt "preferences" +#~ msgid "on both (don't ask)" +#~ msgstr "ob obojem (ne sprašuj)" + +#~ msgctxt "preferences" +#~ msgid "true" +#~ msgstr "true" + +#~ msgctxt "preferences" +#~ msgid "false" +#~ msgstr "false" + +#~ msgctxt "preferences" +#~ msgid "at most RCD (reasonable)" +#~ msgstr "največ RCD (razumno)" + +#~ msgid "white balance slider colors" +#~ msgstr "barve drsnika za uravnoteženje beline" + +#~ msgid "" +#~ "visual indication of temperature adjustments.\n" +#~ "in 'illuminant color' mode slider colors represent the color of the light " +#~ "source,\n" +#~ "in 'effect emulation' slider colors represent the effect the adjustment " +#~ "would have on the scene" +#~ msgstr "" +#~ "vizualni prikaz prilagoditev temperature.\n" +#~ "v načinu 'barve svetlobe' barve drsnika predstavljajo barvo svetlobnega " +#~ "vira,\n" +#~ "v drsniku 'posnemanje učinka' barve predstavljajo učinek, ki bi ga imela " +#~ "prilagoditev na sceno" + +#~ msgid "color balance slider block layout" +#~ msgstr "blokovna postavitev drsnika barvnega ravnovesja" + +#~ msgid "" +#~ "choose how to organise the slider blocks for lift, gamma and gain:\n" +#~ "list - all sliders are shown in one long list (with headers),\n" +#~ "tabs - use tabs to switch between the blocks of sliders,\n" +#~ "columns - the blocks of sliders are shown next to each other (in narrow " +#~ "columns)" +#~ msgstr "" +#~ "izberite, kako organizirati bloke drsnikov za dvig, gamo in ojačenje:\n" +#~ "seznam - vsi drsniki so prikazani na enem dolgem seznamu (z glavami),\n" +#~ "zavihki - z zavihki preklapljajte med bloki drsnikov,\n" +#~ "stolpci - bloki drsnikov so prikazani drug ob drugem (v ozkih stolpcih)" + +#~ msgid "auto-apply sharpen" +#~ msgstr "avtomatsko uporabi ostrenje" + +#~ msgid "" +#~ "this added sharpen is not recommended on cameras without a low-pass " +#~ "filter. you should disable this option if you use one of those more " +#~ "recent cameras or sharpen your images with other means." +#~ msgstr "" +#~ "to dodajanje ostrenja ni priporočljivo pri kamerah brez filtra nizkih " +#~ "prehodov. priporočamo onemogočanje te možnosti, če uporabljate novejše " +#~ "kamere ali ostrite vaše slike na drugačen način." + +#~ msgid "check for database maintenance" +#~ msgstr "preveri vzdrževanje baze podatkov" + +#~ msgid "" +#~ "this option indicates when to check database fragmentation and perform " +#~ "maintenance" +#~ msgstr "" +#~ "ta možnost označuje, kdaj naj se preveri fragmentacija baze podatkov in " +#~ "izvede vzdrževanje" + +#~ msgid "database fragmentation ratio threshold" +#~ msgstr "prag deleža fragmentacije baze podatkov" + +#~ msgid "" +#~ "fragmentation ratio above which to ask or carry out automatically " +#~ "database maintenance" +#~ msgstr "" +#~ "delež fragmentacije, nad katerim se sprašuje ali kar samodejno izvede " +#~ "vzdrževanje baze podatkov" + +#~ msgid "xmp" +#~ msgstr "xmp" + +#~ msgid "lift luminance" +#~ msgstr "dvig svetlosti" + +#~ msgid "lift chroma" +#~ msgstr "dvig krome" + +#~ msgid "power luminance" +#~ msgstr "moč svetlosti" + +#~ msgid "power chroma" +#~ msgstr "moč krome" + +#~ msgid "power hue" +#~ msgstr "moč odtenka" + +#~ msgid "gain luminance" +#~ msgstr "povečanje svetlosti" + +#~ msgid "gain chroma" +#~ msgstr "povečanje krome" + +#~ msgid "gain hue" +#~ msgstr "povečanje odtenka" + +#~ msgid "offset luminance" +#~ msgstr "odmik svetlosti" + +#~ msgid "offset chroma" +#~ msgstr "odmik krome" + +#~ msgid "offset hue" +#~ msgstr "odmik odtenka" + +#~ msgid "chroma shadows" +#~ msgstr "kroma senc" + +#~ msgid "chroma highlights" +#~ msgstr "kroma bleščav" + +#~ msgid "chroma mid-tones" +#~ msgstr "kroma srednjih tonov" + +#~ msgid "saturation global" +#~ msgstr "globalna nasičenost" + +#~ msgid "saturation highlights" +#~ msgstr "nasičenost bleščav" + +#~ msgid "saturation mid-tones" +#~ msgstr "nasičenost srednjih tonov" + +#~ msgid "saturation shadows" +#~ msgstr "nasičenost senc" + +#~ msgid "brilliance global" +#~ msgstr "globalna briljanca" + +#~ msgid "brilliance highlights" +#~ msgstr "bleščave briljance" + +#~ msgid "brilliance mid-tones" +#~ msgstr "srednji toni brliljance" + +#~ msgid "brilliance shadows" +#~ msgstr "sence briljance" + +#~ msgid "cast balance" +#~ msgstr "ravnotežje odtenka" + +#, c-format +#~ msgid "error: can't open xmp file %s" +#~ msgstr "napaka: ne morem odpreti datoteke xmp %s" + +#, c-format +#~ msgid "%d image of %d (#%d) in current collection is selected" +#~ msgstr "Izbrana je %d slika od %d (#%d) trenutne zbirke" + +#, c-format +#~ msgid "%d image of %d in current collection is selected" +#~ msgid_plural "%d images of %d in current collection are selected" +#~ msgstr[0] "izbrana je %d slika od %d v trenutni zbirki" +#~ msgstr[1] "izbrani sta %d sliki od %d v trenutni zbirki" +#~ msgstr[2] "izbrane so %d slike od %d v trenutni zbirki" +#~ msgstr[3] "izbranih je %d slik od %d v trenutni zbirki" + +#~ msgid "click later to be asked on next startup" +#~ msgstr "kliknite kasneje, za vprašanje ob naslednjem zagonu" + +#~ msgid "click later to be asked when closing darktable" +#~ msgstr "kliknite pozneje, za vprašanje ob zapiranju darktabla" + +#~ msgid "click later to be asked next time when closing darktable" +#~ msgstr "kliknite pozneje, za vprašanje naslednjič ob zapiranju darktabla" + +#, c-format +#~ msgid "" +#~ "the database could use some maintenance\n" +#~ "\n" +#~ "there's <span style='italic'>%s</span> to be freed\n" +#~ "\n" +#~ "do you want to proceed now?\n" +#~ "\n" +#~ "%s\n" +#~ "you can always change maintenance preferences in core options" +#~ msgstr "" +#~ "bazi podatkov bi lahko naklonili nekaj vzdrževanja\n" +#~ "\n" +#~ "<span style = \"italic\">%s </span> je možno sprostiti\n" +#~ "\n" +#~ "ali želite nadaljevati zdaj?\n" +#~ "\n" +#~ "%s\n" +#~ "nastavitve vzdrževanja lahko vedno spremenite v osnovnih nastavitvah" + +#~ msgid "darktable - schema maintenance" +#~ msgstr "darktable - shema vzdrževanja" + +#~ msgid "later" +#~ msgstr "kasneje" + +#~ msgid "[BRUSH creation] change size" +#~ msgstr "[BRUSH creation] spremeni velikost" + +#~ msgid "[BRUSH creation] change hardness" +#~ msgstr "[BRUSH creation] spremeni trdoto" + +#~ msgid "AVIF (8/10/12-bit)" +#~ msgstr "AVIF (8/10/12-bitov)" + +#~ msgid "OpenEXR (16/32-bit float)" +#~ msgstr "OpenEXR (16/32-bitna plavajoča veijca)" + +#~ msgid "32 bit" +#~ msgstr "32 bit" + +#~ msgid "J2K" +#~ msgstr "J2K" + +#~ msgid "PFM (float)" +#~ msgstr "PFM (plavajoča vejica)" + +#~ msgid "PNG (8/16-bit)" +#~ msgstr "PNG (8/16-bitov)" + +#~ msgid "TIFF (8/16/32-bit)" +#~ msgstr "TIFF (8/16/32-bitov)" + +#~ msgid "WebP (8-bit)" +#~ msgstr "WebP (8-bitov)" + +#~ msgid "applies only to lossy setting" +#~ msgstr "se nanaša samo na aproksimativno nastavitev" + +#~ msgid "xcf" +#~ msgstr "xcf" + +#, no-c-format +#~ msgid "preview is only possible for zoom lower than 200%%" +#~ msgstr "predogled je možen samo za povečave pod 200%%" + +#~ msgid "v3.0" +#~ msgstr "v3.0" + +#~ msgid "" +#~ "this quick access widget is disabled as it's hidden in the actual module " +#~ "configuration. Please use the full module to access this widget..." +#~ msgstr "" +#~ "ta gradnik za hitri dostop je onemogočen, saj je skrit v sestavi " +#~ "trenutnega modula. Za dostop do tega gradnika uporabite celotni modul..." + +#~ msgid "" +#~ "the following modules are deprecated because they have internal design " +#~ "mistakes which can't be solved and alternative modules which solve them.\n" +#~ " they will be removed for new edits in the next release." +#~ msgstr "" +#~ "naslednji moduli so zastareli, ker imajo notranje napake pri načrtovanju, " +#~ "ki jih ni mogoče rešiti in alternative, ki jih rešujejo.\n" +#~ "v naslednji izdaji bodo odstranjeni namesto novih urejanj." + +#~ msgid "lmmse refine" +#~ msgstr "izboljšaj lmmse" + +#~ msgid "lut 3D" +#~ msgstr "tabela iskanja 3D" + +#~ msgid "select lut file" +#~ msgstr "izberi datoteko s tabelo iskanja" + +#~ msgid "gpx file" +#~ msgstr "datoteka gpx" + +#~ msgid "unstared only" +#~ msgstr "samo brez zvezdic" + +#~ msgid "linear rec709 RGB" +#~ msgstr "linearni Rec709 RGB" + +#~ msgid "linear rec2020 RGB" +#~ msgstr "linearni Rec2020 RGB" + +#~ msgid "orphan images" +#~ msgstr "osirotele slike" + +#~ msgid "images in a group" +#~ msgstr "slike v skupini" + +#~ msgctxt "preferences" +#~ msgid "gray scale" +#~ msgstr "lestvica sivin" + +#~ msgid "" +#~ "disable this collect rule\n" +#~ "ctrl-click to pin into the top toolbar" +#~ msgstr "" +#~ "onemogoči to pravilo zbiranja\n" +#~ "krmilka-klik za pritrjevanje na vrhnjo orodno vrstico" + +#~| msgid "memory in megabytes to use for thumbnail cache" +#~ msgid "memory in MB to use for thumbnail cache" +#~ msgstr "količina vmesnega pomnilnika predoglednih sličic v megabytih" + +#~ msgid "" +#~ "this controls how much memory is going to be used for thumbnails and " +#~ "other buffers (needs a restart)." +#~ msgstr "" +#~ "to nadzoruje koliko pomnilnika naj porabimo za predogledne sličice in " +#~ "ostale vmesnike (potreben ponovni zagon)." + +#~ msgid "host memory limit (in MB) for tiling" +#~ msgstr "omejitev porabe pomnilnika (v MB) za prekritje slike" + +#~ msgid "" +#~ "this variable controls the maximum amount of memory (in MB) a module may " +#~ "use during image processing. lower values will force memory hungry " +#~ "modules to process image with increasing number of tiles. setting this to " +#~ "0 will omit any limit. values below 500 will be treated as 500 (needs a " +#~ "restart)." +#~ msgstr "" +#~ "ta spremenljivka določa največjo količino pomnilnika (v MB), ki ga modul " +#~ "lahko uporabi za obdelavo. nižje vrednosti bodo prisilile module, ki " +#~ "zahtevajo več pomnilnika, da bodo obdelali sliko iz več zaplat. " +#~ "postavljanje na 0 pomeni brez omejitve pomnilnika. vse vrednosti pod 500 " +#~ "bodo pomenili 500MB. (potreben je ponovni zagon programa)." + +#~ msgid "minimum amount of memory (in MB) for a single buffer in tiling" +#~ msgstr "najmanjša količina pomnilnika (v MB) za en vmesnik za prekrivanje" + +#~ msgid "" +#~ "minimum amount of memory (in MB) that tiling should take for a single " +#~ "image buffer (needs a restart)." +#~ msgstr "" +#~ "najmanjša količina pomnilnika (v MB) potrebna za eno krpo vmesnika za " +#~ "prekrivanje slike (potreben ponovni zagon)." + +#~ msgid "disable the entry completion" +#~ msgstr "onemogoči zaključevanje vnosov" + +#~ msgid "" +#~ "the entry completion is useful for those who enter tags from keyboard " +#~ "only. for others the entry completion can be embarrassing. need to " +#~ "restart darktable." +#~ msgstr "" +#~ "zaključevanje vnosa je uporabno za tiste, ki dodajajo značke samo s " +#~ "tipkovnico. za ostale je zaključevanje vnosa lahko nadležno. potreben je " +#~ "ponovni zagon darktable." + +#~ msgid "switch dual threshold" +#~ msgstr "preklopi dvojni prag" + +#~ msgid "date-time taken" +#~ msgstr "datum in čas posnetka" + +#~ msgid "darktable - run performance configuration?" +#~ msgstr "darktable - naj izvedem nastavitve zmogljivosti?" + +#~ msgid "" +#~ "we have an updated performance configuration logic - executing that might " +#~ "improve the performance of darktable.\n" +#~ "this will potentially overwrite some of your existing settings - " +#~ "especially in case you have manually modified them to custom values.\n" +#~ "would you like to execute this update of the performance configuration?\n" +#~ msgstr "" +#~ "recept za nastavitve zmogljivosti predvideva izboljšavo zmogljivosti " +#~ "programa darktable.\n" +#~ "to pa bo potencialno spremenilo vaše trenutne nastavitve, morda tudi vaše " +#~ "ročne nastavitve s svojimi.\n" +#~ "ali želite izvesti to strojno osvežitev nastavitev?\n" + +#, c-format +#~ msgctxt "accel" +#~ msgid "styles/apply %s" +#~ msgstr "uveljavi slog %s" + +#, c-format +#~ msgctxt "accel" +#~ msgid "apply %s" +#~ msgstr "izvedi %s" + +#~ msgid "refresh exif" +#~ msgstr "osveži exif" + +#~ msgctxt "accel" +#~ msgid "rating" +#~ msgstr "ocena" + +#~ msgctxt "accel" +#~ msgid "discard history" +#~ msgstr "zavrzi zgodovino" + +#~ msgctxt "accel" +#~ msgid "color label" +#~ msgstr "oznaka barve" + +#~ msgctxt "accel" +#~ msgid "select all" +#~ msgstr "izberi vse" + +#~ msgctxt "accel" +#~ msgid "select none" +#~ msgstr "ne izberi ničesar" + +#~ msgctxt "accel" +#~ msgid "invert selection" +#~ msgstr "invertiraj izbiro" + +#~ msgctxt "accel" +#~ msgid "select film roll" +#~ msgstr "izberi zvitek filma" + +#~ msgctxt "accel" +#~ msgid "select untouched" +#~ msgstr "izberi nedotaknjene" + +#~| msgid "double" +#~ msgctxt "accel" +#~ msgid "double" +#~ msgstr "dvojno" + +#~| msgid "triple" +#~ msgctxt "accel" +#~ msgid "triple" +#~ msgstr "trojno" + +#~ msgctxt "accel" +#~ msgid "switch views/tethering" +#~ msgstr "preklopi pogled/upravljanje" + +#~ msgctxt "accel" +#~ msgid "switch views/lighttable" +#~ msgstr "preklop pogled/osvetljena podloga" + +#~ msgctxt "accel" +#~ msgid "switch views/darkroom" +#~ msgstr "preklopi pogled/temnica" + +#~| msgctxt "accel" +#~| msgid "switch views/print" +#~ msgctxt "accel" +#~ msgid "switch views/map" +#~ msgstr "preklop pogled/zemljevid" + +#~ msgctxt "accel" +#~ msgid "switch views/slideshow" +#~ msgstr "preklopi pogled/dia projekcija" + +#~ msgctxt "accel" +#~ msgid "switch views/print" +#~ msgstr "preklopi pogled/tisk" + +#~ msgctxt "accel" +#~ msgid "panels/all" +#~ msgstr "plošče/vse" + +#~ msgctxt "accel" +#~ msgid "panels/left" +#~ msgstr "plošče/levo" + +#~ msgctxt "accel" +#~ msgid "panels/right" +#~ msgstr "plošče/desno" + +#~ msgctxt "accel" +#~ msgid "panels/top" +#~ msgstr "plošče/na vrhu" + +#~ msgctxt "accel" +#~ msgid "panels/bottom" +#~ msgstr "plošče/na dnu" + +#~ msgctxt "accel" +#~ msgid "panels/header" +#~ msgstr "plošče/glavni naslov" + +#~ msgctxt "accel" +#~ msgid "panels/all bottom" +#~ msgstr "plošče/vse na dnu" + +#~ msgctxt "accel" +#~ msgid "show accels window" +#~ msgstr "prikaži okno pospeševanja" + +#~ msgid "compression mode" +#~ msgstr "način stiskanja" + +#~ msgid "PIZ (default)" +#~ msgstr "PIZ (privzeto)" + +#~ msgid "PXR24 (lossy)" +#~ msgstr "PXR24 (približen)" + +#~ msgid "B44 (lossy)" +#~ msgstr "B44 (približen)" + +#~ msgid "B44A (lossy)" +#~ msgstr "B44A (približen)" + +#~ msgid "perspective helpers" +#~ msgstr "pomočnik pri perspektivi" + +#~ msgid "crop settings" +#~ msgstr "nastavitve obreza" + +#~ msgid "<b>commit</b>: double click" +#~ msgstr "<b>potrditev</b>: dvoklik" + +#~ msgid "display blending mask" +#~ msgstr "prikaži masko mešanja" + +#~ msgid "diffusion properties" +#~ msgstr "lastnosti mehčanja" + +#~ msgid "diffusion speed" +#~ msgstr "hitrost difuzije" + +#~ msgid "" +#~ "smoothing or sharpening of smooth details (gradients).\n" +#~ "positive values diffuse and blur.\n" +#~ "negative values sharpen.\n" +#~ "zero does nothing." +#~ msgstr "" +#~ "glajenje ali ostrenje gladkih detajlov (gradientov).\n" +#~ "pozitivne vrednosti razpršijo in zameglijo.\n" +#~ "negativne vrednosti izostrijo.\n" +#~ "nič ne naredi nič." + +#~ msgid "" +#~ "smoothing or sharpening of sharp details.\n" +#~ "positive values diffuse and blur.\n" +#~ "negative values sharpen.\n" +#~ "zero does nothing." +#~ msgstr "" +#~ "glajenje ali ostrenje ostrih detajlov.\n" +#~ "pozitivne vrednosti razpršijo in zameglijo.\n" +#~ "negativne vrednosti izostrijo.\n" +#~ "nič ne naredi nič." + +#~ msgid "" +#~ "smoothing or sharpening of sharp details (gradients).\n" +#~ "positive values diffuse and blur.\n" +#~ "negative values sharpen.\n" +#~ "zero does nothing." +#~ msgstr "" +#~ "glajenje ali ostrenje ostrih detajlov (gradientov).\n" +#~ "pozitivne vrednosti razpršijo in zameglijo.\n" +#~ "negativne vrednosti izostrijo.\n" +#~ "nič ne naredi nič." + +#~ msgid "diffusion directionality" +#~ msgstr "smer difuzije" + +#~ msgid "" +#~ "anisotropy of the diffusion.\n" +#~ "zero makes the diffusion isotrope (same in all directions)\n" +#~ "positives make the diffusion follow isophotes more closely\n" +#~ "negatives make the diffusion follow gradients more closely" +#~ msgstr "" +#~ "anizotropija difuzije.\n" +#~ "nič naredi difuzijsko izotropno (enako v vseh smereh)\n" +#~ "pozitivne vrednosti povzročijo, da difuzija bolj sledi izofotom\n" +#~ "negativne povzročijo, da difuzija bolj sledi gradientom" + +#~ msgid "increase or decrease the sharpness of the highest frequencies" +#~ msgstr "poveča ali zmanjša ostrino najvišjih frekvenc" + +#~ msgid "" +#~ "percentage of bright values clipped out, toggle color picker to activate" +#~ msgstr "" +#~ "odstotek izločenih svetlih tonov, preklopite izbirnik barv za aktiviranje" + +#, c-format +#~ msgid "%.0f ISO" +#~ msgstr "%.0f ISO" + +#~ msgid "grey" +#~ msgstr "siva" + +#, c-format +#~ msgid "%.0f mired" +#~ msgstr "%.0f fiksirane" + +#~ msgctxt "accel" +#~ msgid "capture image(s)" +#~ msgstr "zajem slik(e)" + +#~ msgid "imported: today" +#~ msgstr "uvoženo: danes" + +#~ msgid "taken: today" +#~ msgstr "posneto: danes" + +#, c-format +#~| msgid "" +#~| "no history compression of 1 image.\n" +#~| "see tag: darktable|problem|history-compress." +#~| msgid_plural "" +#~| "no history compression of %d images.\n" +#~| "see tag: darktable|problem|history-compress." +#~ msgid "" +#~ "no history compression of 1 image.\n" +#~ "see tag: darktable|problem|history-compress" +#~ msgid_plural "" +#~ "no history compression of %d images.\n" +#~ "see tag: darktable|problem|history-compress" +#~ msgstr[0] "" +#~ "ni stisnjene zgodovine %d slike.\n" +#~ "glejte oznako: darktable|problem|history-compress" +#~ msgstr[1] "" +#~ "ni stisnjene zgodovine %d slik.\n" +#~ "glejte oznako: darktable|problem|history-compress" +#~ msgstr[2] "" +#~ "ni stisnjene zgodovine %d slik.\n" +#~ "glejte oznako: darktable|problem|history-compress" +#~ msgstr[3] "" +#~ "ni stisnjene zgodovine %d slik.\n" +#~ "glejte oznako: darktable|problem|history-compress" + +#~ msgctxt "accel" +#~ msgid "copy" +#~ msgstr "kopiraj" + +#~ msgctxt "accel" +#~ msgid "copy parts" +#~ msgstr "kopiraj dele" + +#~ msgctxt "accel" +#~ msgid "compress" +#~ msgstr "stisni" + +#~ msgctxt "accel" +#~ msgid "discard" +#~ msgstr "zavrzi" + +#~ msgctxt "accel" +#~ msgid "paste" +#~ msgstr "prilepi" + +#~ msgctxt "accel" +#~ msgid "paste parts" +#~ msgstr "prilepi dele" + +#~ msgctxt "accel" +#~ msgid "load sidecar files" +#~ msgstr "naloži priklopne datoteke" + +#~ msgctxt "accel" +#~ msgid "write sidecar files" +#~ msgstr "zapiši priklopne datoteke" + +#~ msgctxt "accel" +#~ msgid "export" +#~ msgstr "izvozi" + +#~ msgid "exif data" +#~ msgstr "podatki exif" + +#~ msgid "list of available tags" +#~ msgstr "seznam razpoložljivih značk" + +#~ msgctxt "accel" +#~ msgid "histogram/hide histogram" +#~ msgstr "histogram/skrij histogram" + +#~ msgctxt "accel" +#~ msgid "histogram/cycle histogram modes" +#~ msgstr "histogram/zanka načinov histograma" + +#~ msgctxt "accel" +#~ msgid "histogram/switch histogram mode" +#~ msgstr "histogram/preklopite način histograma" + +#~ msgctxt "accel" +#~ msgid "histogram/switch histogram type" +#~ msgstr "histogram/preklopi tip histograma" + +#~ msgctxt "accel" +#~ msgid "compress history stack" +#~ msgstr "stisni sklad zgodovine" + +#~ msgctxt "accel" +#~ msgid "remove from darktable" +#~ msgstr "odstrani iz programa darktable" + +#~| msgid "physically delete from disk (using trash if possible)" +#~ msgctxt "accel" +#~ msgid "delete from disk using trash if possible" +#~ msgstr "zbriši z diska z uporabo smeti, če je možno" + +#~ msgctxt "accel" +#~ msgid "move to other folder" +#~ msgstr "prenesi v drugo mapo" + +#~ msgctxt "accel" +#~ msgid "copy to other folder" +#~ msgstr "kopiraj v drugo mapo" + +#~ msgctxt "accel" +#~ msgid "rotate selected images 90 degrees CW" +#~ msgstr "zasukaj izbrane slike za 90 stopinj v smeri urnega kazalca" + +#~ msgctxt "accel" +#~ msgid "rotate selected images 90 degrees CCW" +#~ msgstr "" +#~ "zasukaj izbrane slike za 90 stopinj v nasprotni smeri urnega kazalca" + +#~ msgctxt "accel" +#~ msgid "create HDR" +#~ msgstr "ustvari HDR" + +#~ msgctxt "accel" +#~ msgid "duplicate" +#~ msgstr "dupliciraj" + +#~ msgctxt "accel" +#~ msgid "reset rotation" +#~ msgstr "ponovno nastavi sukanje" + +#~ msgctxt "accel" +#~ msgid "copy the image locally" +#~ msgstr "lokalno kopiraj sliko" + +#~ msgctxt "accel" +#~ msgid "resync the local copy" +#~ msgstr "ponovno sinhroniziraj lokalno kopijo" + +#~ msgctxt "accel" +#~ msgid "refresh exif" +#~ msgstr "osveži exif" + +#~ msgctxt "accel" +#~ msgid "set monochrome image" +#~ msgstr "nastavi enobarvno sliko" + +#~ msgctxt "accel" +#~ msgid "set color image" +#~ msgstr "nastavi barvno sliko" + +#~ msgctxt "accel" +#~ msgid "copy metadata" +#~ msgstr "kopiraj metapodatke" + +#~ msgctxt "accel" +#~ msgid "clear metadata" +#~ msgstr "očisti metapodatke" + +#~ msgctxt "accel" +#~ msgid "group" +#~ msgstr "grupiraj" + +#~ msgctxt "accel" +#~ msgid "ungroup" +#~ msgstr "razgrupiraj" + +#~| msgctxt "accel" +#~| msgid "import from camera" +#~ msgctxt "accel" +#~ msgid "copy & import from camera" +#~ msgstr "kopiraj in uvozi iz kamere" + +#~ msgctxt "accel" +#~ msgid "tethered shoot" +#~ msgstr "upravljano snemanje" + +#~ msgctxt "accel" +#~ msgid "add to library" +#~ msgstr "dodaj v knjižnico" + +#~ msgctxt "accel" +#~ msgid "copy & import" +#~ msgstr "kopiraj oz. uvozi" + +#~ msgctxt "accel" +#~ msgid "mount camera" +#~ msgstr "priklopi kamero" + +#~ msgctxt "accel" +#~ msgid "unmount camera" +#~ msgstr "odklopi kamero" + +#~ msgctxt "accel" +#~ msgid "toggle live view" +#~ msgstr "preklopi ogled v živo" + +#~ msgctxt "accel" +#~ msgid "zoom live view" +#~ msgstr "zumiraj živi pogled" + +#~ msgctxt "accel" +#~ msgid "rotate 90 degrees CCW" +#~ msgstr "zasukaj 90 stopinj v obratni smeri urinega kazalca" + +#~ msgctxt "accel" +#~ msgid "rotate 90 degrees CW" +#~ msgstr "zasukaj 90 stopinj v smeri urinega kazalca" + +#~ msgctxt "accel" +#~ msgid "flip horizontally" +#~ msgstr "prezrcali vodoravno" + +#~ msgctxt "accel" +#~ msgid "move focus point in (big steps)" +#~ msgstr "premakni točko ostrenja (veliki koraki)" + +#~ msgctxt "accel" +#~ msgid "move focus point in (small steps)" +#~ msgstr "premakni točko ostrenja (majhni koraki)" + +#~ msgctxt "accel" +#~ msgid "move focus point out (small steps)" +#~ msgstr "premakni točko ostrenja ven (z malimi koraki)" + +#~ msgctxt "accel" +#~ msgid "move focus point out (big steps)" +#~ msgstr "premakni točko ostrenja ven (z velikimi koraki)" + +#~ msgctxt "accel" +#~ msgid "filtered images" +#~ msgstr "filtrirane slike" + +#~ msgctxt "accel" +#~ msgid "thumbnail display" +#~ msgstr "prikaz predoglednih sličic" + +#~ msgid "metadata list" +#~ msgstr "seznam metapodatkov" + +#~ msgctxt "accel" +#~ msgid "print" +#~ msgstr "tiskaj" + +#~ msgctxt "accel" +#~ msgid "take snapshot" +#~ msgstr "napravi posnetek" + +#~ msgctxt "accel" +#~ msgid "create" +#~ msgstr "ustvari" + +#~ msgctxt "accel" +#~ msgid "remove" +#~ msgstr "odstrani" + +#~ msgctxt "accel" +#~ msgid "import" +#~ msgstr "uvozi" + +#~ msgctxt "accel" +#~ msgid "edit" +#~ msgstr "uredi" + +#~ msgctxt "verb" +#~ msgid "import..." +#~ msgstr "uvozi..." + +#~ msgctxt "accel" +#~ msgid "attach" +#~ msgstr "priloži" + +#~ msgctxt "accel" +#~ msgid "detach" +#~ msgstr "razdvoji" + +#~ msgctxt "accel" +#~ msgid "new" +#~ msgstr "nov" + +#~ msgctxt "accel" +#~ msgid "import..." +#~ msgstr "uvozi..." + +#~ msgctxt "accel" +#~ msgid "export..." +#~ msgstr "izvozi..." + +#~ msgctxt "accel" +#~ msgid "tag" +#~ msgstr "značka" + +#~ msgid "enter tag name" +#~ msgstr "vnesite ime značke" + +#~ msgid "" +#~ "tag dictionary,\n" +#~ "double-click to attach,\n" +#~ "right-click for other actions on selected tag,\n" +#~ "ctrl-wheel scroll to resize the window" +#~ msgstr "" +#~ "slovar značk,\n" +#~ "dvoklik za pripenjanje,\n" +#~ "desni klik za druge akcije na izbrani znački,\n" +#~ "krmilka-kolešček za spremembo velikosti okna" + +#~ msgctxt "verb" +#~ msgid "export..." +#~ msgstr "izvoz..." + +#~ msgid "last export time" +#~ msgstr "čas zadnjega izvoza" + +#~ msgid "last print time" +#~ msgstr "zadnji čas tiskanja" + +#~ msgid "which images should be shown" +#~ msgstr "katere slike naj bi bile prikazane" + +#~ msgid "view" +#~ msgstr "pogled" + +#~ msgid "overlays block on mouse hover during (s)" +#~ msgstr "blok plasti pod miško traja (s)" + +#~ msgctxt "accel" +#~ msgid "grouping" +#~ msgstr "grupiranje" + +#~ msgctxt "accel" +#~ msgid "preferences" +#~ msgstr "preference" + +#~ msgctxt "accel" +#~ msgid "shortcuts" +#~ msgstr "bližnjice" + +#~ msgctxt "accel" +#~ msgid "thumbnail overlays/no overlays" +#~ msgstr "prekrivne predogledne sličice/brez prekrivnih plasti" + +#~ msgctxt "accel" +#~ msgid "thumbnail overlays/overlays on mouse hover" +#~ msgstr "prekrivne predogledne sličice/prekrivne plasti pri miški nad" + +#~ msgctxt "accel" +#~ msgid "thumbnail overlays/extended overlays on mouse hover" +#~ msgstr "" +#~ "prekrivne predogledne sličice/razširjene prekrivne plasti pri miški nad" + +#~ msgctxt "accel" +#~ msgid "thumbnail overlays/permanent overlays" +#~ msgstr "prekrivne predogledne sličice/stalne prekrivne plasti" + +#~ msgctxt "accel" +#~ msgid "thumbnail overlays/permanent extended overlays" +#~ msgstr "prekrivne predogledne sličice/stalne razširjene prekrivne plasti" + +#~ msgctxt "accel" +#~ msgid "thumbnail overlays/permanent overlays extended on mouse hover" +#~ msgstr "" +#~ "prekrivne predogledne sličice/stalne razširjene prekrivne plasti pri " +#~ "miški nad" + +#~ msgctxt "accel" +#~ msgid "thumbnail overlays/overlays block on mouse hover" +#~ msgstr "prekrivne predogledne sličice/blok prekrivnih plasti pri miški nad" + +#~ msgctxt "accel" +#~ msgid "reset lib parameters" +#~ msgstr "ponovno nastavi parametre knjižnice" + +#~ msgctxt "accel" +#~ msgid "raw overexposed/toggle" +#~ msgstr "surovo preosvetljeno/preklop" + +#~ msgctxt "accel" +#~ msgid "overexposed/toggle" +#~ msgstr "preosvetljeno/preklop" + +#~ msgctxt "accel" +#~ msgid "gamut check" +#~ msgstr "kontrola barvnega razpona" + +#~ msgctxt "accel" +#~ msgid "guide lines/toggle" +#~ msgstr "vodila/preklop" + +#~ msgctxt "accel" +#~ msgid "preview" +#~ msgstr "predogled" + +#~ msgid "ignore JPEG images when importing film rolls" +#~ msgstr "izpusti slike v formatu JPEG, kadar uvažate zvitke filmov" + +#~ msgid "don't use embedded preview JPEG but half-size raw" +#~ msgstr "" +#~ "ne uporabljaj vgrajenega predogleda JPEG ampak polovico velikosti surovega" + +#~ msgid "" +#~ "check this option to not use the embedded JPEG from the raw file but " +#~ "process the raw data. this is slower but gives you color managed " +#~ "thumbnails." +#~ msgstr "" +#~ "odkljukajte to možnost, da se ne uporabi vgrajena JPEG sličica surove " +#~ "slike ampak se obdela slika v surovem formatu. To je počasnejše, a " +#~ "rezultat je predogledna sličica v kontroliranih barvah." + +#~| msgid "" +#~| "if the thumbnail size is greater than this value, it will be processed " +#~| "using the full quality rendering path (better but slower).\n" +#~| "if you want all thumbnails and pre-rendered images in best quality you " +#~| "should choose the *always* option.\n" +#~| "(more comments in the manual)" +#~ msgid "" +#~ "if the thumbnail size is greater than this value, it will be processed " +#~ "using the full quality rendering path (better but slower)." +#~ msgstr "" +#~ "če je velikost predogledne sličice večja od te vrednosti, bo obdelana z " +#~ "uporabo poti upodabljanja celotne kakovosti (boljša, vendar počasnejša)." + +#~| msgid "permanent extended overlays" +#~ msgid "enable extended thumb overlay" +#~ msgstr "omogoči razširjene plasti predogleda" + +#~ msgid "if set to true, thumb overlay shows filename and some exif data." +#~ msgstr "" +#~ "če je vklopljeno, predogledna plast prikazuje ime datoteke in nekaj " +#~ "podatkov exifa." + +#~ msgid "" +#~ "do not have the rating of one star behave as documented in the manual--an " +#~ "image rated one star twice will result in a zero star rating." +#~ msgstr "" +#~ "ocena ene zvezdice se ne obnaša kot v priročniku - sliko z eno zvezdico " +#~ "obravnavamo kot sliko brez zvezdic." + +#~| msgid "show search line" +#~ msgid "show search module text entry" +#~ msgstr "prikaži iskanje modula z besedilom" + +#~ msgctxt "preferences" +#~ msgid "show both" +#~ msgstr "prikaži oboje" + +#~ msgid "only draw images on map that are currently collected and filtered" +#~ msgstr "riši slike samo v mapi, kjer so trenutno zbrane in prečiščene slike" + +#~ msgid "" +#~ "use the current filter settings to select the geotagged images drawn on " +#~ "the map, i.e. limit the images drawn to the current filmstrip. this " +#~ "limits the number of images drawn and thus reduces the time needed to " +#~ "draw the images." +#~ msgstr "" +#~ "uporabi trenutne nastavitve izbire geokodiranih slik, ki so narisane na " +#~ "karti, npr. omeji samo na trenutni kos filma. To omeji število prikazanih " +#~ "slik in zmanjša potreben čas za prikaz slik." + +#~ msgid "" +#~ "the maximum number of geotagged images drawn on the map. increasing this " +#~ "number can slow drawing of the map down." +#~ msgstr "" +#~ "največje število geokodiranih slik narisanih v mapi. povečanje tega " +#~ "števila upočasni prikaz vsebine map." + +#~| msgid "always ask the user before any image file is deleted" +#~ msgid "" +#~ "always ask the user before any image file is deleted / history stack is " +#~ "discarded." +#~ msgstr "" +#~ "vedno vprašaj pred kakršnimkoli brisanjem datoteke / odstranjevanjem " +#~ "sklada zgodovine." + +#~ msgid "width of the side panels in pixels" +#~ msgstr "širina bočnih panojev v pikslih" + +#~ msgid "(needs a restart)" +#~ msgstr "(potrebuje ponovni zagon)" + +#~ msgid "do not show april 1st game" +#~ msgstr "ne kaži igric za 1. april" + +#~ msgid "enable the filmstrip in darkroom, tethering and map modes." +#~ msgstr "" +#~ "omogoči kos filma v temnici, odd. upravljanju ter pri vpogledu v mape." + +#~ msgid "enable timeline" +#~ msgstr "omogoči časovni trak" + +#~ msgid "enable the timeline in lighttable mode." +#~ msgstr "omogoči časovni trak na osvetljeni podlagi." + +#~ msgid "overlay txt sidecar over zoomed images" +#~ msgstr "prekrij besedilne priklopne datoteke prek zumiranih slik" + +#~ msgid "" +#~ "when there is a txt file next to an image it can be shown as an overlay " +#~ "over zoomed images on the lighttable. the txt file either has to be there " +#~ "at import time or the crawler has to be enabled" +#~ msgstr "" +#~ "kadar je besedilna datoteka ob sliki, je lahko prikazana kot prekrivek " +#~ "nad pomanjšanimi slikami na osvetljeni podlagi. besedilna datoteka je " +#~ "bila tam ob uvozu ali pa je potrebno aktivirati robotka" + +#~ msgctxt "preferences" +#~ msgid "no scrollbars" +#~ msgstr "brez drsnikov" + +#~ msgctxt "preferences" +#~ msgid "lighttable" +#~ msgstr "osvetljena podlaga" + +#~ msgctxt "preferences" +#~ msgid "lighttable + darkroom" +#~ msgstr "osvetljena podlaga + temnica" + +#~ msgid "" +#~ "if enabled, cached thumbnails will be color managed so that lighttable " +#~ "and filmstrip can show correct colors. otherwise the results may look " +#~ "wrong once the display profile gets changed." +#~ msgstr "" +#~ "če je omogočeno bodo predogledne sličice imele upravljanje barv, tako da " +#~ "bodo na osvetljeni podlagi in kot kos filma kazale pravilne barve, če ne, " +#~ "so lahko rezultati napačnih barv, kadar se spremeni profil zaslona." + +#~ msgid "do high quality processing for slideshow" +#~ msgstr "izvedi visoko kakovostno obdelavo za projekcijo" + +#~ msgid "same option as for export, but applies to slideshow." +#~ msgstr "enake možnosti za izvoz toda na projekciji." + +#~ msgid "auto-apply basecurve" +#~ msgstr "avtomatsko uporabi osnovno krivuljo" + +#~ msgid "use a basecurve by default (needs a restart)" +#~ msgstr "privzeto uporabi osnovno krivuljo (zahteva ponovni zagon)" + +#~ msgid "" +#~ "use the per-camera basecurve by default instead of the generic " +#~ "manufacturer one if there is one available (needs a restart)" +#~ msgstr "" +#~ "uporabi privzeto krivuljo kamere namesto splošne krivulje proizvajalca, " +#~ "če obstaja (potreben je ponovni zagon)" + +#~ msgid "" +#~ "these redundant files can later be re-imported into a different database, " +#~ "preserving your changes to the image." +#~ msgstr "" +#~ "te redundantne datoteke lahko kasneje ponovno uvozimo v druga bazo slik, " +#~ "tako da ohranimo vaše spremembe slik." + +#~ msgid "number of background threads" +#~ msgstr "število procesnih niti v ozadju" + +#~ msgid "" +#~ "this controls for example how many threads are used to create thumbnails " +#~ "during import. the cache will grow to a maximum of twice this number of " +#~ "full resolution image buffers (needs a restart)." +#~ msgstr "" +#~ "to nadzoruje npr. koliko niti uporabi za tvorjenje predoglednih sličic " +#~ "pri uvozu. Zalogovnik bo narasel največ za dvakratnik tega števila slik v " +#~ "polni ločljivosti (potrebuje ponovni zagon programa)." + +#~ msgid "" +#~ "if set to a positive, non-zero value this variable defines the minimum " +#~ "amount of memory (in MB) that tiling should take for a single image " +#~ "buffer. has precedence over heuristics based on host_memory_limit (needs " +#~ "a restart)." +#~ msgstr "" +#~ "če je postavljena na pozitivno vrednost, le-ta določa najmanjšo količino " +#~ "pomnilnika (v MB) kolikor ga sestavljanje slik potrebuje za medpomnilnik " +#~ "za eno samo sliko in ta vrednost ima prednost pred hevristično " +#~ "nastavitvijo, ki ga določa host_memory_limit (zahteva ponovni zagon)." + +#, c-format +#~| msgid "%s / %s: %s" +#~ msgid "%s/%s: %s" +#~ msgstr "%s/%s: %s" + +#, c-format +#~ msgid "%s: %s" +#~ msgstr "%s: %s" + +#, c-format +#~ msgid "error: output file is a directory. please specify file name" +#~ msgstr "napaka: izhodna datoteka je mapa. prosim navedite ime datoteke" + +#~ msgid "darktable - error locking database" +#~ msgstr "darktable - napaka blokira podatkovno bazo" + +#, c-format +#~ msgid "" +#~ "an error has occurred while trying to open the database from\n" +#~ "\n" +#~ "<span style=\"italic\">%s</span>\n" +#~ "\n" +#~ "it seems that the database is corrupt.\n" +#~ "do you want to close darktable now to manually restore\n" +#~ "the database from a backup or start with a new one?" +#~ msgstr "" +#~ "prišlo je do napake pri poskusu odpiranje podatkovne baze\n" +#~ "\n" +#~ "<span style=\"italic\">%s</span>\n" +#~ "\n" +#~ "videti je, da je podatkovna baza pokvarjena.\n" +#~ "ali želite zdaj zapreti darktable in ročno obnoviti\n" +#~ "podatkovno baze iz varovalne kopije ali tvoriti novo?" + +#, c-format +#~| msgid "scroll to change <b>%s</b> of module %s %s" +#~ msgid "scroll to change <b>%s</b> of %s module" +#~ msgstr "pomakni za menjavo <b>%s</b> modula %s" + +#~ msgid "reload selected xmp files" +#~ msgstr "ponovno naloži izbrane datoteke xmp" + +#~ msgid "overwrite selected xmp files" +#~ msgstr "prepiši izbrane datoteke xmp" + +#, c-format +#~| msgid "exporting %d image.." +#~| msgid_plural "exporting %d images.." +#~ msgid "exporting %d image to %s" +#~ msgid_plural "exporting %d images to %s" +#~ msgstr[0] "izvažam %d sliko na %s" +#~ msgstr[1] "izvažam %d sliki na %s" +#~ msgstr[2] "izvažam %d slike na %s" +#~ msgstr[3] "izvažam %d slik na %s" + +#, c-format +#~| msgid "do you really want to send selected image to trash?" +#~ msgid "do you really want to remove %d selected image from the collection?" +#~ msgid_plural "" +#~ "do you really want to remove %d selected images from the collection?" +#~ msgstr[0] "ali res želite odstraniti %d izbrano sliko iz zbirke?" +#~ msgstr[1] "ali res želite odstraniti %d izbrani sliki iz zbirke?" +#~ msgstr[2] "ali res želite odstraniti %d izbrane slike iz zbirke?" +#~ msgstr[3] "ali res želite odstraniti %d izbranih slik iz zbirke?" + +#, c-format +#~| msgid "do you really want to send selected image to trash?" +#~ msgid "do you really want to send %d selected image to trash?" +#~ msgid_plural "do you really want to send %d selected images to trash?" +#~ msgstr[0] "ali res želite vreči %d izbrano sliko v smeti?" +#~ msgstr[1] "ali res želite vreči %d izbrani sliki v smeti?" +#~ msgstr[2] "ali res želite vreči %d izbrane slike v smeti?" +#~ msgstr[3] "ali res želite vreči %d izbranih slik v smeti?" + +#~ msgid "trash images?" +#~ msgstr "slike v smeti?" + +#~ msgid " g " +#~ msgstr " g " + +#~ msgid " R " +#~ msgstr " R " + +#~ msgid " G " +#~ msgstr " G " + +#~ msgid " B " +#~ msgstr " B " + +#~ msgid " H " +#~ msgstr " H " + +#~ msgid " S " +#~ msgstr " S " + +#~ msgid " L " +#~ msgstr " L " + +#~ msgid "double click to reset" +#~ msgstr "dvojni klik za začetno nastavitev" + +#~| msgid "chroma" +#~ msgctxt "blendmode" +#~ msgid "chroma" +#~ msgstr "kroma" + +#~ msgctxt "blendmode" +#~ msgid "HSV lightness" +#~ msgstr "HSV svetlost" + +#~ msgctxt "blendmode" +#~ msgid "unbounded (deprecated)" +#~ msgstr "neomejeno (zastarelo)" + +#~ msgid "output image" +#~ msgstr "izhodna slika" + +#~ msgid "input image" +#~ msgstr "vhodna slika" + +#~ msgctxt "accel" +#~ msgid "fusion" +#~ msgstr "zlivanje" + +#~ msgctxt "accel" +#~ msgid "show preset menu" +#~ msgstr "prikaži začetni menu" + +#~ msgid "reset parameters" +#~ msgstr "ponastavi začetne parametre" + +#~ msgid "ctrl+click to add a sharp node" +#~ msgstr "krmilka+klik za dodajanje ostrega vozlišča" + +#~ msgid "ctrl+click to switch between smooth/sharp node" +#~ msgstr "krmilka+klik za preklop med mehkim in ostrim vozliščem" + +#~ msgid "right-click to reset curvature" +#~ msgstr "desni klik za ponastavitev krivulje" + +#~| msgid "ctrl+click to add a sharp node" +#~ msgid "ctrl+click to add a node" +#~ msgstr "krmilka+klik za dodajanje vozlišča" + +#, c-format +#~ msgid "" +#~ "shift+scroll to set feather size, ctrl+scroll to set shape opacity (%d%%)" +#~ msgstr "" +#~ "dvigalka+pomik za določanje velikosti peresa, krmilka+pomik za določanje " +#~ "neprosojnosti oblike (%d%%)" + +#, c-format +#~ msgid "ctrl+scroll to set shape opacity (%d%%)" +#~ msgstr "krmila+pomik za določanje neprosojnosti oblike (%d%%)" + +#~ msgid "move to rotate shape" +#~ msgstr "premakni za sukanje oblike" + +#, c-format +#~ msgid "" +#~ "scroll to set size, shift+scroll to set feather size\n" +#~ "ctrl+scroll to set shape opacity (%d%%)" +#~ msgstr "" +#~ "pomik za določanje velikosti, dvigalka+pomik za določanje velikosti " +#~ "peresa\n" +#~ "krmila+pomik za določanje neprosojnosti oblike (%d%%)" + +#, c-format +#~ msgid "" +#~ "shift+click to switch feathering mode, ctrl+click to rotate\n" +#~ "shift+scroll to set feather size, ctrl+scroll to set shape opacity (%d%%)," +#~ msgstr "" +#~ "dvigalka+klik za preklop rabe mehčanja, krmilka+klik za zasuk\n" +#~ "dvigalka+pomik za določanje velikosti peresa, krmilka+pomik za določanje " +#~ "neprosojnosti oblike (%d%%)," + +#, c-format +#~ msgid "" +#~ "scroll to set brush size, shift+scroll to set hardness,\n" +#~ "ctrl+scroll to set opacity (%d%%)" +#~ msgstr "" +#~ "pomik za določanje velikosti čopiča, dvigalka+pomik za določanje trdote,\n" +#~ "krmilka+pomik za določanje neprosojnosti (%d%%)" + +#, c-format +#~ msgid "scroll to set hardness, ctrl+scroll to set shape opacity (%d%%)" +#~ msgstr "" +#~ "pomik za določanje trdote, krmilka+pomik za določanje neprosojnosti " +#~ "oblike (%d%%)" + +#~ msgid "scroll to set brush size" +#~ msgstr "scroll za nastavitev velikosti čopiča" + +#~| msgid "image information" +#~ msgctxt "accel" +#~ msgid "image operations" +#~ msgstr "operacije na sliki" + +#~ msgctxt "accel" +#~ msgid "increase" +#~ msgstr "povečaj" + +#~ msgctxt "accel" +#~ msgid "decrease" +#~ msgstr "zmanjšaj" + +#~ msgctxt "accel" +#~ msgid "reset" +#~ msgstr "ponastavi" + +#~ msgctxt "accel" +#~ msgid "dynamic" +#~ msgstr "dinamično" + +#~ msgctxt "accel" +#~ msgid "lua" +#~ msgstr "lua" + +#~ msgid "store value as default" +#~ msgstr "shrani vrednost kot privzeto" + +#~ msgid "reset value to default" +#~ msgstr "ponastavi na privzeto vrednost" + +#~ msgctxt "camera import" +#~ msgid "import" +#~ msgstr "uvozi" + +#~ msgid "storage file" +#~ msgstr "datoteka shrambe" + +#~ msgid "" +#~ "do not load files with an extension of .jpg or .jpeg. this can be useful " +#~ "when there are raw+JPEG in a directory." +#~ msgstr "" +#~ "ne nalagaj datotek s podaljškom .jpg ali .jpeg. uporabno, kadar so v mapi " +#~ "tako surove slike kot slike v formatu JPEG." + +#~ msgid "apply metadata on import" +#~ msgstr "uporabi metapodatke za uvoz" + +#~ msgid "" +#~ "select the images from the list below that you want to import into a new " +#~ "filmroll" +#~ msgstr "" +#~ "izberite slike iz spodnjega seznama, ki jih želite uvoziti v naslednji " +#~ "zvitek filma" + +#~ msgid "please use YYYY-MM-DD format for date override" +#~ msgstr "prosim uporabljajte format YYYY-MM-DD za razveljavitev datuma" + +#~ msgctxt "accel" +#~ msgid "tethering view" +#~ msgstr "upravljavski pogled" + +#~ msgctxt "accel" +#~ msgid "lighttable view" +#~ msgstr "pogled osvetljene podlage" + +#~ msgctxt "accel" +#~ msgid "map view" +#~ msgstr "pogled mape" + +#~ msgctxt "accel" +#~ msgid "print view" +#~ msgstr "pogled tiskanja" + +#~ msgctxt "accel" +#~ msgid "toggle fullscreen" +#~ msgstr "preklopi na celoten zaslon" + +#~| msgctxt "accel" +#~| msgid "toggle fullscreen" +#~ msgctxt "accel" +#~ msgid "leave fullscreen" +#~ msgstr "zapusti celotni zaslon" + +#~ msgctxt "accel" +#~ msgid "toggle right panel" +#~ msgstr "preklopi desni panel" + +#~ msgctxt "accel" +#~ msgid "toggle top panel" +#~ msgstr "preklopi vrhnji panel" + +#~ msgctxt "accel" +#~ msgid "toggle bottom panel" +#~ msgstr "preklopi spodnji panel" + +#~| msgid "toggle blend order" +#~ msgctxt "accel" +#~ msgid "toggle header" +#~ msgstr "preklopi glavo" + +#~ msgid "extra" +#~ msgstr "dodatno" + +#~ msgid "show some extra guides" +#~ msgstr "prikaži nekaj dodatnih vodil" + +#~| msgid "golden sections" +#~ msgid "golden mean" +#~ msgstr "zlato povprečje" + +#~| msgid "select parts to copy" +#~ msgid "select parts" +#~ msgstr "izberi dele" + +#~ msgid "normal images" +#~ msgstr "normalne slike" + +#~| msgid "_close" +#~ msgid "close" +#~ msgstr "zapri" + +#~ msgid "press key combination to remap..." +#~ msgstr "pritisnite kombinacijo tipk za ponovno preslikavo..." + +#, c-format +#~ msgid "" +#~ "%s accel is already mapped to\n" +#~ "%s.\n" +#~ "do you want to replace it ?" +#~ msgstr "" +#~ "%s pospeševanje je že dodeljeno\n" +#~ "%s.\n" +#~ "ali ga želite zamenjati ?" + +#~ msgid "accel conflict" +#~ msgstr "konflikt pospeševanja" + +#~ msgid "" +#~ "are you sure you want to restore the default keybindings? this will " +#~ "erase any modifications you have made." +#~ msgstr "" +#~ "ali ste prepričani, da želite obnoviti privzete nastavitve tipk. to bo " +#~ "zbrisalo vse spremembe, ki ste jih naredili." + +#, c-format +#~ msgid "preset %s was successfully saved" +#~ msgstr "prednastavitev %s je bila uspešno shranjena" + +#~ msgid "deflate with predictor (float)" +#~ msgstr "skrči s prediktorjem (tekoče)" + +#, c-format +#~ msgid "[facebook] unexpected URL format\n" +#~ msgstr "[facebook] nepričakovan format spletnega naslova\n" + +#~ msgid "" +#~ "step 1: a new window or tab of your browser should have been loaded. you " +#~ "have to login into your facebook account there and authorize darktable to " +#~ "upload photos before continuing." +#~ msgstr "" +#~ "korak 1: novo okno ali nov zavihek vašega brskalnika mora biti naložen. " +#~ "prijavljeni ste na vaš račun v facebooku in pred nadaljevanjem ste " +#~ "dovolili programu darktable, da prenese fotografije." + +#~ msgid "" +#~ "step 2: paste your browser URL and click the OK button once you are done." +#~ msgstr "" +#~ "korak 2: prilepite vaš spletni naslov iz brskalnika v darktable in " +#~ "kliknite gumb <OK>, ko ste opravili." + +#~ msgid "facebook authentication" +#~ msgstr "overitev na facebooku" + +#~ msgid "URL:" +#~ msgstr "URL:" + +#~ msgid "please enter the validation URL" +#~ msgstr "prosim vnesite spletni naslov za potrditev" + +#~ msgid "the given URL is not valid, it should look like: " +#~ msgstr "vnesen spletni naslov ni veljaven, mora biti podoben: " + +#~ msgid "authentication successful" +#~ msgstr "uspešna overitev" + +#~ msgid "" +#~ "a new window or tab of your browser should have been loaded. you have to " +#~ "login into your facebook account there and authorize darktable to upload " +#~ "photos before continuing." +#~ msgstr "" +#~ "novo okno ali nov zavihek vašega brskalnika bi moral biti naložen. morate " +#~ "se prijaviti ste na vaš račun v facebooku in pred nadaljevanjem morate " +#~ "dovoliti programu darktable, da tja prenese fotografije." + +#~ msgid "new account" +#~ msgstr "novi račun" + +#~ msgid "other account" +#~ msgstr "drugi račun" + +#~ msgid "unable to retrieve the album list" +#~ msgstr "ne morem pridobiti seznama albumov" + +#~ msgid "facebook webalbum" +#~ msgstr "facebookov spletni album" + +#~ msgid "summary" +#~ msgstr "povzetek" + +#~ msgid "privacy" +#~ msgstr "zasebnost" + +#~ msgid "public" +#~ msgstr "javnost" + +#~ msgid "friends of friends" +#~ msgstr "prijatelji prijateljev" + +#~ msgid "unable to create album, no title provided" +#~ msgstr "ne morem ustvariti albuma, nimam naslova" + +#~ msgid "unable to create album" +#~ msgstr "ne morem ustvariti albuma" + +#~ msgid "unable to export photo to webalbum" +#~ msgstr "ne morem izvoziti fotografije v spletni album" + +#, c-format +#~ msgid "%d/%d exported to facebook webalbum" +#~ msgid_plural "%d/%d exported to facebook webalbum" +#~ msgstr[0] "%d/%d izvožena v spletni album na facebook" +#~ msgstr[1] "%d/%d izvoženi v spletni album na facebook" +#~ msgstr[2] "%d/%d izvožene v spletni album na facebook" +#~ msgstr[3] "%d/%d izvoženo v spletni album na facebook" + +#, c-format +#~ msgid "flickr authentication: %s" +#~ msgstr "overitev za flickr: %s" + +#~ msgid "" +#~ "step 1: a new window or tab of your browser should have been loaded. you " +#~ "have to login into your flickr account there and authorize darktable to " +#~ "upload photos before continuing." +#~ msgstr "" +#~ "korak1: novo okno ali nov zavihek vašega brskalnika mora biti naložen. " +#~ "prijavljeni ste na vaš račun v flickrju in pred nadaljevanjem ste " +#~ "dovolili programu darktable, da tja prenese fotografije." + +#~ msgid "step 2: click the OK button once you are done." +#~ msgstr "korak 2: kliknite gumb <OK>, ko ste opravili." + +#~ msgid "flickr authentication" +#~ msgstr "overitev za flickr" + +#~ msgid "flickr webalbum" +#~ msgstr "spletni album na flickr" + +#~ msgid "without album" +#~ msgstr "brez albuma" + +#~ msgid "flickr user" +#~ msgstr "uporabnik flickr" + +#~ msgid "flickr login" +#~ msgstr "prijava na flickr" + +#~ msgid "friends + family" +#~ msgstr "prijatelji + družina" + +#~ msgid "photosets" +#~ msgstr "zbirke fotografij" + +#~ msgid "my new photoset" +#~ msgstr "moja nova zbirka fotografij" + +#~| msgid "images exported from darktable" +#~ msgid "exported from darktable" +#~ msgstr "izvoženo iz darktable" + +#~ msgid "could not upload to flickr!" +#~ msgstr "nisem mogel prenesti na flickr!" + +#, c-format +#~ msgid "%d/%d exported to flickr webalbum" +#~ msgid_plural "%d/%d exported to flickr webalbum" +#~ msgstr[0] "%d/%d izvoženo v spletni album flickr" +#~ msgstr[1] "%d/%d izvoženi v spletni album flickr" +#~ msgstr[2] "%d/%d izvožene v spletni album flickr" +#~ msgstr[3] "%d/%d izvoženo v spletni album flickr" + +#~ msgid "" +#~ "step 1: a new window or tab of your browser should have been loaded. you " +#~ "have to login into your google account there and authorize darktable to " +#~ "upload photos before continuing." +#~ msgstr "" +#~ "korak 1: v novem oknu ali zavihku vašega brskalnika, ki ste ga pognali, " +#~ "se morate prijaviti v vaš uporabniški račun v googlu in s tem omogočite " +#~ "programu darktable, da tja naloži slike pred nadaljevanjem." + +#~ msgid "" +#~ "step 2: paste the verification code shown to you in the browser and click " +#~ "the OK button once you are done." +#~ msgstr "" +#~ "korak 2: prilepite vaš verifikacijsko kodo iz brskalnika v darktable in " +#~ "kliknite gumb <OK>, ko ste opravili." + +#~ msgid "google authentication" +#~ msgstr "googlova overitev" + +#~ msgid "verification code:" +#~ msgstr "koda verifikacije:" + +#~ msgid "please enter the verification code" +#~ msgstr "prosim vnesite kodo verifikacije" + +#~ msgid "google photos" +#~ msgstr "googlove slike" + +#~ msgid "unable to export to google photos album" +#~ msgstr "ne morem izvoziti slik v googlov album" + +#, c-format +#~ msgid "%d/%d exported to google photos album" +#~ msgid_plural "%d/%d exported to google photos album" +#~ msgstr[0] "%d/%d izvoženo v googlov album" +#~ msgstr[1] "%d/%d izvoženih v googlov album" +#~ msgstr[2] "%d/%d izvoženo v googlov album" +#~ msgstr[3] "%d/%d izvoženo v googlov album" + +#~ msgid "perspective correction" +#~ msgstr "popravek perspektive" + +#~ msgctxt "accel" +#~ msgid "rotation" +#~ msgstr "sukanje" + +#~ msgctxt "accel" +#~ msgid "lens shift (v)" +#~ msgstr "pomik lečja (v)" + +#~ msgctxt "accel" +#~ msgid "lens shift (h)" +#~ msgstr "pomik lečja (h)" + +#~ msgctxt "accel" +#~ msgid "shear" +#~ msgstr "ostriži" + +#~ msgid "guides" +#~ msgstr "vodila" + +#~ msgid "automatic fit" +#~ msgstr "avtomatično prileganje" + +#~ msgid "rotate image" +#~ msgstr "zasukaj sliko" + +#~ msgid "display guide lines overlay" +#~ msgstr "prikaži plast z mrežo vodil" + +#~ msgid "remove line structure information" +#~ msgstr "odstrani informacije o strukturi linij" + +#~| msgid "toggle the visibility of the map overlays" +#~ msgid "toggle visibility of structure lines" +#~ msgstr "preklopi vidnost strukturnih linij" + +#~ msgctxt "accel" +#~ msgid "mix" +#~ msgstr "mešalnik" + +#~ msgid "deblur: large blur, strength 4" +#~ msgstr "odstranitev zamegljenosti: velika zamegljenost, moč 4" + +#~ msgid "" +#~ "scale to use in the graph. use logarithmic scale for more precise control " +#~ "near the blacks" +#~ msgstr "" +#~ "merilo pri grafih. uporabljajte logaritmično merilo za natančnejše " +#~ "upravljanje črnin" + +#~| msgctxt "accel" +#~| msgid "middle grey" +#~ msgid "middle grey" +#~ msgstr "srednje siva" + +#~ msgid "local laplacian: inconsistent output" +#~ msgstr "lokalna Laplacova transformacija: nekonsistenten izhod" + +#~ msgctxt "accel" +#~ msgid "radius" +#~ msgstr "polmer" + +#~ msgctxt "accel" +#~ msgid "red" +#~ msgstr "rdeča" + +#~ msgctxt "accel" +#~ msgid "green" +#~ msgstr "zelena" + +#~ msgctxt "accel" +#~ msgid "blue" +#~ msgstr "modra" + +#~ msgctxt "accel" +#~ msgid "size" +#~ msgstr "velikost" + +#~ msgctxt "accel" +#~ msgid "threshold" +#~ msgstr "prag" + +#~ msgctxt "accel" +#~ msgid "strength" +#~ msgstr "moč" + +#~ msgctxt "accel" +#~ msgid "border size" +#~ msgstr "velikost roba" + +#~ msgctxt "accel" +#~ msgid "pick border color from image" +#~ msgstr "izberite barvo roba iz slike" + +#~ msgctxt "accel" +#~ msgid "frame line size" +#~ msgstr "širina črte okvirja" + +#~ msgctxt "accel" +#~ msgid "pick frame line color from image" +#~ msgstr "izberite barvo črte okvirja iz slike" + +#~ msgid "" +#~ "automatic chromatic aberration correction\n" +#~ "disabled for non-Bayer sensors" +#~ msgstr "" +#~ "avtomatična korekcija barvnega odklona\n" +#~ "onemogočena za ne-Bayerjeve senzorje" + +#~ msgid "display guide lines to help compose your photograph" +#~ msgstr "prikaži vodila v pomoč pri kompoziciji vaše slike" + +#~ msgctxt "accel" +#~ msgid "angle" +#~ msgstr "kot" + +#~ msgctxt "accel" +#~ msgid "contrast" +#~ msgstr "kontrast" + +#~ msgctxt "accel" +#~ msgid "brightness" +#~ msgstr "sijavost" + +#~ msgctxt "accel" +#~ msgid "saturation" +#~ msgstr "nasičenje" + +#~ msgid "lift/gamma/gain controls as seen in video editors" +#~ msgstr "nadzor lift/gamma/gain kot ga uporabljajo urejevalniki videov" + +#~ msgctxt "accel" +#~ msgid "mode" +#~ msgstr "način" + +#~| msgid "contrast" +#~ msgctxt "accel" +#~ msgid "controls" +#~ msgstr "kontrole" + +#~ msgid "factor of " +#~ msgstr "faktor " + +#~| msgid "factor of " +#~ msgid "factor of lift" +#~ msgstr "faktor ali dvig" + +#~| msgid "factor of " +#~ msgid "factor of gain" +#~ msgstr "faktor ojačenja" + +#~ msgid "lightness offset" +#~ msgstr "odmik svetlosti" + +#~ msgid "chroma offset green/red" +#~ msgstr "odmik krome zeleno/rdeča" + +#~ msgid "chroma offset blue/yellow" +#~ msgstr "odmik krome modro/rumeno" + +#~ msgid "saturation offset" +#~ msgstr "odmik nasičenosti" + +#~| msgid "green-magenta offset" +#~ msgctxt "accel" +#~ msgid "green vs magenta" +#~ msgstr "zelena proti magenti" + +#~ msgctxt "accel" +#~ msgid "blue vs yellow" +#~ msgstr "modra proti rumeni" + +#~| msgid "green-magenta offset" +#~ msgid "green vs magenta" +#~ msgstr "zelena proti magenti" + +#~ msgid "steepness of the a* curve in Lab" +#~ msgstr "strmina krivulje a* v Lab" + +#~ msgid "blue vs yellow" +#~ msgstr "modra proti rumeni" + +#~ msgid "steepness of the b* curve in Lab" +#~ msgstr "strmina krivulje b* v Lab" + +#~ msgctxt "accel" +#~ msgid "lightness" +#~ msgstr "svetlost" + +#~ msgctxt "accel" +#~ msgid "source mix" +#~ msgstr "mešanje vhodov" + +#~ msgctxt "accel" +#~ msgid "acquire as source" +#~ msgstr "pridobi kot vhod" + +#~ msgctxt "accel" +#~ msgid "acquire as target" +#~ msgstr "pridobi kot cilj" + +#~ msgctxt "accel" +#~ msgid "spatial extent" +#~ msgstr "prostorsko razširjenje" + +#~ msgctxt "accel" +#~ msgid "range extent" +#~ msgstr "raz" + +#~ msgctxt "accel" +#~ msgid "hue" +#~ msgstr "odtenek" + +#~ msgctxt "accel" +#~ msgid "edge threshold" +#~ msgstr "prag roba" + +#~ msgid "PPG (fast)" +#~ msgstr "PPG (hitro)" + +#~ msgid "AMaZE (slow)" +#~ msgstr "AMaZE (počasi)" + +#~ msgid "demosaicing raw data method" +#~ msgstr "metoda za odstr. moz. iz sur. slik" + +#~ msgid "Markesteijn 3-pass (slow)" +#~ msgstr "Markesteijn 3-prehodi (počasi)" + +#~ msgid "two times" +#~ msgstr "dvakratno" + +#~ msgid "chroma (use on 1st instance)" +#~ msgstr "barvitost (uporabi na prvem pojavku)" + +#~ msgid "luma (use on 2nd instance)" +#~ msgstr "kroma (uporabi na drugem pojavku)" + +#~ msgid "scattering (coarse-grain noise)" +#~ msgstr "razmetano (grobo zrnati šum)" + +#~ msgid "central pixel weight (details)" +#~ msgstr "utež centralnega piksla (podrobnosti)" + +#~ msgctxt "accel" +#~ msgid "black" +#~ msgstr "črna" + +#~ msgctxt "accel" +#~ msgid "exposure" +#~ msgstr "osvetlitev" + +#~ msgctxt "accel" +#~ msgid "auto-exposure" +#~ msgstr "samodejna osvetlitev" + +#~ msgctxt "accel" +#~ msgid "percentile" +#~ msgstr "odstotek" + +#~ msgctxt "accel" +#~ msgid "target level" +#~ msgstr "raven cilja" + +#~ msgid "middle grey luminance" +#~ msgstr "svetlost srednje sive" + +#~ msgid "" +#~ "number of stops between middle grey and pure white.\n" +#~ "this is a reading a lightmeter would give you on the scene.\n" +#~ "adjust so highlights clipping is avoided" +#~ msgstr "" +#~ "število stopenj med srednje sivo in čisto belo.\n" +#~ "to vrednost bi dal tudi svetlomer na sceni.\n" +#~ "prilagodi tako, da se izognete obrezovanju bleščav" + +#~ msgid "" +#~ "number of stops between middle grey and pure black.\n" +#~ "this is a reading a lightmeter would give you on the scene.\n" +#~ "increase to get more contrast.\n" +#~ "decrease to recover more details in low-lights." +#~ msgstr "" +#~ "število stopenj med srednje sivo in čisto črno.\n" +#~ "to vrednost bi dal tudi svetlomer na sceni.\n" +#~ "povečajte, če želite več kontrasta.\n" +#~ "zmanjšajte za omogočanje več podrobnosti v senčnih delih." + +#~ msgid "target middle grey" +#~ msgstr "ciljna srednja siva" + +#~| msgid "" +#~| "middle grey value of the target display or color space.\n" +#~| "you should never touch that unless you know what you are doing." +#~ msgid "" +#~ "midde grey value of the target display or color space.\n" +#~ "you should never touch that unless you know what you are doing." +#~ msgstr "" +#~ "vrednost srednjih sivin ciljnega prikaza ali barvnega prostora.\n" +#~ "ne dotikajte se tega, razen če res veste, kaj delate." + +#~ msgid "07 EV dynamic range" +#~ msgstr "07 EV dinamični razpon" + +#~ msgid "09 EV dynamic range" +#~ msgstr "09 EV dinamični razpon" + +#~ msgid "11 EV dynamic range" +#~ msgstr "11 EV dinamični razpon" + +#~ msgid "13 EV dynamic range" +#~ msgstr "13 EV dinamični razpon" + +#~ msgid "15 EV (backlighting)" +#~ msgstr "15 EV (svetloba od zadaj)" + +#~ msgid "17 EV (HDR)" +#~ msgstr "17 EV (HDR)" + +#~ msgctxt "accel" +#~ msgid "white exposure" +#~ msgstr "osvetlitev beline" + +#~ msgctxt "accel" +#~ msgid "black exposure" +#~ msgstr "osvetlitev črne" + +#~ msgctxt "accel" +#~ msgid "middle grey luminance" +#~ msgstr "svetlost srednje sive" + +#~ msgctxt "accel" +#~ msgid "dynamic range scaling" +#~ msgstr "upravljanje merila dinamičnega razpona" + +#~ msgctxt "accel" +#~ msgid "latitude" +#~ msgstr "širina" + +#~| msgid "shadows/highlights balance" +#~ msgctxt "accel" +#~ msgid "shadows/highlights balance" +#~ msgstr "uravnoteženost sence/bleščave" + +#~ msgctxt "accel" +#~ msgid "extreme luminance saturation" +#~ msgstr "nasičenost ekstremne svetlosti" + +#~| msgctxt "accel" +#~| msgid "target power transfer function" +#~ msgid "target power transfer function" +#~ msgstr "funkcija ciljnega prenosa moči" + +#~ msgid "rotate" +#~ msgstr "zasukaj" + +#~ msgctxt "modulename" +#~ msgid "gamma" +#~ msgstr "gama" + +#~ msgctxt "accel" +#~ msgid "density" +#~ msgstr "gostota" + +#~ msgctxt "accel" +#~ msgid "compression" +#~ msgstr "stiskanje" + +#, c-format +#~| msgid "[%s on line] change hardness" +#~ msgid "[%s on line] change compression" +#~ msgstr "[%s on line] spremeni stiskanje" + +#~ msgctxt "accel" +#~ msgid "coarseness" +#~ msgstr "zrnatost" + +#~ msgid "midtones bias" +#~ msgstr "pristranskost srednjih tonov" + +#~ msgctxt "accel" +#~ msgid "sharpness" +#~ msgstr "ostrina" + +#~ msgctxt "accel" +#~ msgid "contrast boost" +#~ msgstr "porast kontrasta" + +#~ msgctxt "accel" +#~ msgid "pick color of film material from image" +#~ msgstr "izberite barvo filma iz slike" + +#~ msgctxt "accel" +#~ msgid "scale" +#~ msgstr "merilo" + +#~ msgctxt "accel" +#~ msgid "TCA R" +#~ msgstr "TCA R" + +#~ msgctxt "accel" +#~ msgid "TCA B" +#~ msgstr "TCA B" + +#~ msgctxt "accel" +#~ msgid "find camera" +#~ msgstr "išči kamero" + +#~ msgctxt "accel" +#~ msgid "find lens" +#~ msgstr "išči objektive" + +#~ msgctxt "accel" +#~ msgid "auto scale" +#~ msgstr "avtomatsko merilo" + +#~ msgctxt "accel" +#~ msgid "lens model" +#~ msgstr "model objektiva" + +#~ msgctxt "accel" +#~ msgid "select corrections" +#~ msgstr "izberite popravke" + +#~ msgid "try to locate your camera/lens in the above two menus" +#~ msgstr "poskusite najti objektiv oz. kamero v zgornjih dveh menujih" + +#~ msgid "point tool: draw points" +#~ msgstr "orodje za točke: nariši točke" + +#~ msgid "line tool: draw lines" +#~ msgstr "orodje za linije: nariši linije" + +#~ msgid "curve tool: draw curves" +#~ msgstr "orodje za krivulje: nariši krivulje" + +#~ msgctxt "accel" +#~ msgid "point tool" +#~ msgstr "orodje za točke" + +#~ msgctxt "accel" +#~ msgid "line tool" +#~ msgstr "orodje za linije" + +#~ msgctxt "accel" +#~ msgid "curve tool" +#~ msgstr "orodje za krivulje" + +#~ msgctxt "accel" +#~ msgid "node tool" +#~ msgstr "orodje za vozlišča" + +#~ msgctxt "accel" +#~ msgid "blue shift" +#~ msgstr "modra noč" + +#~ msgid "filter order" +#~ msgstr "vrstni red filtrov" + +#~| msgid "4th order speed" +#~ msgid "0th order" +#~ msgstr "0. red" + +#~| msgid "2nd order speed" +#~ msgid "2nd order" +#~ msgstr "2. red" + +#~ msgid "filter order of gaussian blur" +#~ msgstr "vrstni red filtra Gaussovega zameglevanja" + +#~ msgctxt "lowpass" +#~ msgid "brightness" +#~ msgstr "sijavost" + +#, c-format +#~ msgid "invalid png header from %s" +#~ msgstr "pokvarjena glava png na %s" + +#~ msgid "hald cluts (png)" +#~ msgstr "hald cluts (png)" + +#~ msgid "3D lut (cube)" +#~ msgstr "3d lut (kocka)" + +#~ msgid "select a png (haldclut) or a cube file" +#~ msgstr "izberite png (haldclut) ali datoteko kocke" + +#~| msgid "" +#~| "the file path (relative to lut folder) is saved with image (and not the " +#~| "lut data themselves)" +#~ msgid "" +#~ "the file path (relative to lut folder) is saved with image (and not the " +#~ "lut data themselves)\n" +#~ "CAUTION: lut folder must be set in preferences/core options/miscellaneous " +#~ "before choosing the lut file" +#~ msgstr "" +#~ "pot datoteke (relativno glede na mapo tabele iskanja) je shranjena skupaj " +#~ "s sliko (toda ne skupaj s podatki tabele iskanja) OPOZORILO: mapa tabele " +#~ "iskanja mora biti določena v preferencah/jedrne možnosti/razno pred " +#~ "izbiro datoteke seznama tabele iskanja" + +#~ msgid "REC.709" +#~ msgstr "REC.709" + +#~ msgid "lin sRGB/REC.709" +#~ msgstr "lin sRGB/REC.709" + +#~| msgid "linear ProPhoto RGB" +#~ msgid "lin prophoto RGB" +#~ msgstr "lin prophoto RGB" + +#~ msgctxt "accel" +#~ msgid "luma" +#~ msgstr "luma" + +#~ msgctxt "accel" +#~ msgid "chroma" +#~ msgstr "barvitost" + +#~ msgctxt "accel" +#~ msgid "linear" +#~ msgstr "linearni" + +#~ msgctxt "accel" +#~ msgid "gamma" +#~ msgstr "gama" + +#~ msgctxt "accel" +#~ msgid "dynamic range" +#~ msgstr "dinamični razpon" + +#~| msgid "white point" +#~ msgctxt "accel" +#~ msgid "grey point" +#~ msgstr "siva točka" + +#~ msgctxt "accel" +#~ msgid "shadows range" +#~ msgstr "obseg senc" + +#~| msgctxt "accel" +#~| msgid "middle grey luma" +#~ msgid "middle grey luma" +#~ msgstr "luma srednje sive" + +#~ msgctxt "accel" +#~ msgid "noise threshold" +#~ msgstr "prag šuma" + +#~| msgid "crop y" +#~ msgid "crop x" +#~ msgstr "obreži x" + +#~ msgid "crop y" +#~ msgstr "obreži y" + +#~ msgid "crop width" +#~ msgstr "širina obreze" + +#, c-format +#~| msgid "black level 0" +#~ msgid "black level %i" +#~ msgstr "raven črne %i" + +#~ msgctxt "accel" +#~ msgid "white point" +#~ msgstr "bela točka" + +#~ msgctxt "accel" +#~ msgid "width" +#~ msgstr "širina" + +#~ msgid "# shapes:" +#~ msgstr "# oblike:" + +#~ msgctxt "accel" +#~ msgid "retouch tool circle" +#~ msgstr "krog orodij retuširanja" + +#~ msgctxt "accel" +#~ msgid "retouch tool ellipse" +#~ msgstr "elipsa orodij retuširanja" + +#~ msgctxt "accel" +#~ msgid "retouch tool path" +#~ msgstr "pot orodij retuširanja" + +#~ msgctxt "accel" +#~ msgid "retouch tool brush" +#~ msgstr "čopič orodij retuširanja" + +#~ msgctxt "accel" +#~ msgid "continuous add circle" +#~ msgstr "krog stalnega dodajanja" + +#~ msgctxt "accel" +#~ msgid "continuous add ellipse" +#~ msgstr "elipsa stalnega dodajanja" + +#~ msgctxt "accel" +#~ msgid "continuous add path" +#~ msgstr "pot stalnega dodajanja" + +#~ msgctxt "accel" +#~ msgid "continuous add brush" +#~ msgstr "čopič stalnega dodajanja" + +#~ msgid " R " +#~ msgstr " R " + +#~ msgid " G " +#~ msgstr " G " + +#~ msgid " B " +#~ msgstr " B " + +#~ msgid "pick GUI color from image" +#~ msgstr "izberite barvo s slike" + +#~ msgctxt "accel" +#~ msgid "shadows" +#~ msgstr "sence" + +#~ msgctxt "accel" +#~ msgid "highlights" +#~ msgstr "bleščave" + +#~ msgctxt "accel" +#~ msgid "white point adjustment" +#~ msgstr "nastavitev točke beline" + +#~ msgctxt "accel" +#~ msgid "shadows color correction" +#~ msgstr "popravek barv v senci" + +#~ msgctxt "accel" +#~ msgid "highlights color correction" +#~ msgstr "popravek barv v bleščavah" + +#~ msgctxt "accel" +#~ msgid "amount" +#~ msgstr "znesek" + +#~ msgctxt "accel" +#~ msgid "pick primary color" +#~ msgstr "izberi primarno barvo" + +#~ msgctxt "accel" +#~ msgid "pick secondary color" +#~ msgstr "izberi sekundarno barvo" + +#~ msgctxt "accel" +#~ msgid "balance" +#~ msgstr "ravnotežje" + +#~ msgctxt "accel" +#~ msgid "spot circle tool" +#~ msgstr "orodje za kroge" + +#~ msgctxt "accel" +#~ msgid "spot ellipse tool" +#~ msgstr "orodje elipsaste točke" + +#~ msgctxt "accel" +#~ msgid "spot path tool" +#~ msgstr "orodje za poti" + +#~| msgctxt "accel" +#~| msgid "show or hide shapes" +#~ msgctxt "accel" +#~ msgid "spot show or hide" +#~ msgstr "prikaži piko ali skrij" + +#~ msgctxt "accel" +#~ msgid "tint" +#~ msgstr "odtenek" + +#~ msgctxt "accel" +#~ msgid "temperature" +#~ msgstr "temperatura" + +#~| msgctxt "accel" +#~| msgid "preset/camera neutral" +#~ msgctxt "accel" +#~ msgid "preset/camera" +#~ msgstr "prednastavitve/kamera" + +#~ msgctxt "accel" +#~ msgid "preset/camera neutral" +#~ msgstr "prednastavitve/nevtralna kamera" + +#~ msgctxt "accel" +#~ msgid "preset/spot" +#~ msgstr "prednastavitve/točkovno merjenje" + +#~ msgctxt "white balance" +#~ msgid "camera" +#~ msgstr "kamera" + +#~ msgctxt "white balance" +#~ msgid "camera neutral" +#~ msgstr "nevtralna kamera" + +#~ msgctxt "white balance" +#~ msgid "spot" +#~ msgstr "točka" + +#~ msgid " L " +#~ msgstr " L " + +#~ msgid " a " +#~ msgstr " a " + +#~ msgid " b " +#~ msgstr " b " + +#~ msgid "log" +#~ msgstr "log" + +#~ msgid "base of the logarithm" +#~ msgstr "osnova logaritma" + +#~| msgid "midtones" +#~ msgctxt "accel" +#~ msgid "midtones" +#~ msgstr "srednji toni" + +#~ msgctxt "accel" +#~ msgid "filter diffusion" +#~ msgstr "difuzija filtrov" + +#~ msgctxt "accel" +#~ msgid "smoothing diameter" +#~ msgstr "premer glajenja" + +#~| msgid "edges refinement/feathering" +#~ msgctxt "accel" +#~ msgid "edges refinement/feathering" +#~ msgstr "izboljšanje/mehčanje robov s peresi" + +#~ msgctxt "accel" +#~ msgid "mask quantization" +#~ msgstr "kvantizacija maske" + +#~ msgctxt "accel" +#~ msgid "mask exposure compensation" +#~ msgstr "kompenzacija osvetlitve maske" + +#~ msgctxt "accel" +#~ msgid "mask contrast compensation" +#~ msgstr "kompenzacija kontrasta maske" + +#~| msgid "mask blending : landscapes" +#~ msgid "mask blending : none" +#~ msgstr "mešanje maske : nič" + +#~ msgid "mask blending : landscapes" +#~ msgstr "mešanje maske : pokrajine" + +#~| msgid "mask blending : landscapes" +#~ msgid "mask blending : isolated subjects" +#~ msgstr "mešanje maske : izolirani subjekti" + +#~| msgid "compress shadows/highlights (eigf) : soft" +#~ msgid "compress shadows/highlights : soft" +#~ msgstr "stiskanje senc/bleščav : mehko" + +#~| msgid "compress shadows/highlights (gf) : strong" +#~ msgid "compress shadows/highlights : strong" +#~ msgstr "stiskanje senc/bleščav : močno" + +#~ msgid "" +#~ "'no' affects global and local contrast (safe if you only add contrast)\n" +#~ "'guided filter' only affects global contrast and tries to preserve local " +#~ "contrast\n" +#~ "'averaged guided filter' is a geometric mean of both methods" +#~ msgstr "" +#~ "'ne' vpliva na globalni in lokalni kontrast (varno je le dodajanje " +#~ "kontrasta)\n" +#~ "'vodeni filter' vpliva samo na globalni kontrast in poskuša ohraniti " +#~ "lokalni kontrast\n" +#~ "'vodeni filter povprečij' je geometrijsko povprečje obeh metod" + +#~ msgctxt "accel" +#~ msgid "contrast compression" +#~ msgstr "stisni kontrast" + +#~ msgctxt "accel" +#~ msgid "vibrance" +#~ msgstr "živost (vibrance)" + +#~ msgctxt "accel" +#~ msgid "mid-tones bias" +#~ msgstr "poudarjanje srednjih tonov" + +#~ msgctxt "accel" +#~ msgid "fall-off strength" +#~ msgstr "moč odstranjevanja" + +#~ msgctxt "accel" +#~ msgid "horizontal center" +#~ msgstr "vodoravni center" + +#~ msgctxt "accel" +#~ msgid "vertical center" +#~ msgstr "navpični center" + +#~ msgctxt "accel" +#~ msgid "shape" +#~ msgstr "oblika" + +#~ msgctxt "accel" +#~ msgid "width-height ratio" +#~ msgstr "razmerje širina/višina" + +#~ msgctxt "accel" +#~ msgid "dithering" +#~ msgstr "stresanje" + +#~ msgctxt "accel" +#~ msgid "opacity" +#~ msgstr "neprosojnost" + +#~ msgctxt "accel" +#~ msgid "x offset" +#~ msgstr "odmik x" + +#~ msgctxt "accel" +#~ msgid "y offset" +#~ msgstr "odmik y" + +#~ msgctxt "size" +#~ msgid "image" +#~ msgstr "slika" + +#~| msgid "select images" +#~ msgid "collect images" +#~ msgstr "zberi slike" + +#, no-c-format +#~ msgid "type your query, use `%' as wildcard" +#~ msgstr "vnesite vašo poizvedbo, uporabite '%' za vse" + +#~ msgid "area" +#~ msgstr "območje" + +#~ msgid "" +#~ "copy part history stack of\n" +#~ "first selected image" +#~ msgstr "" +#~ "kopiraj del zgodovine sprememb\n" +#~ "za prvo izbrano sliko" + +#~ msgid "copy all" +#~ msgstr "kopiraj vse" + +#~| msgid "paste" +#~ msgid "paste..." +#~ msgstr "prilepi..." + +#~ msgid "" +#~ "paste part history stack to\n" +#~ "all selected images" +#~ msgstr "" +#~ "kopiraj del zgodovine sprememb\n" +#~ "za vse izbrane slike" + +#~| msgctxt "accel" +#~| msgid "paste all" +#~ msgid "paste all" +#~ msgstr "prilepi vse" + +#~ msgctxt "accel" +#~ msgid "copy all" +#~ msgstr "kopiraj vse" + +#~ msgctxt "accel" +#~ msgid "paste all" +#~ msgstr "prilepi vse" + +#~ msgid "existing duplicates" +#~ msgstr "obstoječi duplikati" + +#~ msgid "" +#~ "maximum output width\n" +#~ "set to 0 for no scaling" +#~ msgstr "" +#~ "največja širina izhoda\n" +#~ "nastavi na 0 brez spremembe merila" + +#~ msgid "" +#~ "maximum output height\n" +#~ "set to 0 for no scaling" +#~ msgstr "" +#~ "največja višina izhoda\n" +#~ "nastavi na 0 brez spremembe merila" + +#~ msgid "max size" +#~ msgstr "največja velikost" + +#~ msgid "edit metadata exportation details" +#~ msgstr "uredi podrobnosti izvoza metapodatkov" + +#~ msgid "" +#~ "enter the time shown on the selected picture\n" +#~ "format: hh:mm:ss" +#~ msgstr "" +#~ "vnesite čas prikazan na izbrani sliki\n" +#~ "format hh:mm:ss" + +#~ msgid "" +#~ "time offset\n" +#~ "format: [+-]?[[hh:]mm:]ss" +#~ msgstr "" +#~ "časovni zamik\n" +#~ "format: [+-]?[[hh:]mm:]ss" + +#~ msgid "calculate the time offset from an image" +#~ msgstr "izračunaj časovni zamik iz slike" + +#~| msgid "set mode to waveform" +#~ msgid "set histogram mode to waveform" +#~ msgstr "nastavi način histograma na valovanje" + +#~ msgid "trash" +#~ msgstr "smeti" + +#~ msgid "send file to trash" +#~ msgstr "pošlji datoteko v smeti" + +#~ msgid "remove from the collection" +#~ msgstr "odstrani iz zbirke" + +#~ msgctxt "accel" +#~ msgid "remove from collection" +#~ msgstr "odstrani iz zbirke" + +#~| msgctxt "accel" +#~| msgid "delete from disk using trash if possible" +#~ msgctxt "accel" +#~ msgid "delete from disk or send to trash" +#~ msgstr "zbriši z diska ali vrzi v smeti" + +#~ msgctxt "accel" +#~ msgid "scan for devices" +#~ msgstr "preglej vse naprave" + +#~ msgctxt "accel" +#~ msgid "import image" +#~ msgstr "uvozi sliko" + +#~ msgctxt "accel" +#~ msgid "import folder" +#~ msgstr "uvozi mapo" + +#~ msgid "import options" +#~ msgstr "nastavitve uvoza" + +#~| msgid "import folders recursively" +#~ msgid "import directories recursively" +#~ msgstr "rekurzivno uvozi imenike" + +#~| msgid "" +#~| "recursively import subfolders. Each folder goes into a new film roll." +#~ msgid "" +#~ "recursively import subdirectories. each directory goes into a new film " +#~ "roll." +#~ msgstr "" +#~ "rekurzivno uvozi podimenike. vsak imenik uporabi kot nov zvitek filma." + +#~ msgid "file has unknown format!" +#~ msgstr "datoteka neznanega formata!" + +#~ msgid "import film" +#~ msgstr "uvozi film" + +#~ msgid "image..." +#~ msgstr "slika..." + +#~ msgid "select one or more images to import" +#~ msgstr "izberite eno ali več slik za uvoz" + +#~ msgid "folder..." +#~ msgstr "mapa..." + +#~| msgid "select file to import" +#~ msgid "select a folder to import as film roll" +#~ msgstr "izberi mapo za uvoz kot filmski zvitek" + +#~| msgctxt "accel" +#~| msgid "scan for devices" +#~ msgid "scan for devices" +#~ msgstr "preglej naprave" + +#~ msgid "scan for newly attached devices" +#~ msgstr "preišči na novo priključene naprave" + +#, c-format +#~ msgid "edit `%s'" +#~ msgstr "uredi '%s'" + +#~ msgctxt "accel" +#~ msgid "clear" +#~ msgstr "očisti" + +#~ msgid "remove metadata from selected images" +#~ msgstr "odstrani metapodatke iz izbranih slik" + +#~ msgid "all rights reserved." +#~ msgstr "vse pravice pridržane." + +#~ msgid "copyright" +#~ msgstr "copyright" + +#~ msgid "show only your favourite modules (selected in `more modules' below)" +#~ msgstr "" +#~ "prikaži samo vaše priljubljene module (izbrane v 'več modulov' spodaj)" + +#~ msgid "basic group" +#~ msgstr "osnovna skupina" + +#~ msgid "tone group" +#~ msgstr "skupina odtenkov" + +#~ msgid "color group" +#~ msgstr "skupina barv" + +#~ msgid "correction group" +#~ msgstr "skupina popravkov" + +#~| msgid "effects" +#~ msgid "effects group" +#~ msgstr "grupa učinkov" + +#~ msgid "search module" +#~ msgstr "modul iskanja" + +#~| msgid "remove module" +#~ msgid "more modules" +#~ msgstr "več modulov" + +#~ msgid "subset: no module" +#~ msgstr "podmnožica: ni modula" + +#~| msgid "subset: default modules" +#~ msgid "subset: all modules" +#~ msgstr "podmnožica: vsi moduli" + +#~ msgid "subset: default modules" +#~ msgstr "podmnožica: privzeti moduli" + +#~ msgid "workspace: all-purpose" +#~ msgstr "delovni prostor: vse namenski" + +#~ msgid "workspace: landscape & HDR" +#~ msgstr "delovni prostor: pokrajine & HDR" + +#~ msgid "workspace: architecture & streets" +#~ msgstr "delovni prostor: arhitektura in ulična fotografija" + +#~ msgid "workspace: portrait & beauty" +#~ msgstr "delovni prostor: portreti in glamour" + +#~ msgid "workspace: lowlight & high ISO" +#~ msgstr "delovni prostor: malo svetlobe & visok ISO" + +#~ msgid "subset: creative modules only" +#~ msgstr "podmnožica: samo kreativni moduli" + +#~ msgid "subset: technical modules only" +#~ msgstr "podmnožica: samo tehnični moduli" + +#~ msgctxt "accel" +#~ msgid "delete" +#~ msgstr "briši" + +#, c-format +#~| msgid "do you really want to delete the preset `%s'?" +#~ msgid "do you really want to delete style '%s'?" +#~ msgstr "ali res želite brisati slog '%s'?" + +#~| msgid "select style" +#~ msgid "delete style?" +#~ msgstr "naj zbrišem slog?" + +#~| msgid "edit the selected styles in list above" +#~ msgid "deletes the selected style in list above" +#~ msgstr "zbriše izbrane sloge v seznamu zgoraj" + +#, c-format +#~ msgid "tag: %s " +#~ msgstr "značka: %s " + +#~ msgid "delete branch" +#~ msgstr "briši vejo" + +#~ msgid "'|' character is not allowed to create a tag. aborting." +#~ msgstr "znak '|' ni dovoljen za tvorbo značk. prekinjam." + +#~ msgid "edit tag" +#~ msgstr "uredi značko" + +#~ msgid "rename path?" +#~ msgstr "preimenuj pot?" + +#~ msgid "edit tag..." +#~ msgstr "uredi značko..." + +#~| msgid "rename path?" +#~ msgid "rename path..." +#~ msgstr "preimenuj pot..." + +#~| msgid "" +#~| "toggle green label\n" +#~| "of selected images" +#~ msgid "" +#~ "toggle red label\n" +#~ "of selected images" +#~ msgstr "" +#~ "preklopi rdečo oznako\n" +#~ "izbranih slik" + +#~ msgid "" +#~ "toggle yellow label\n" +#~ "of selected images" +#~ msgstr "" +#~ "preklopi rumeno oznako\n" +#~ "izbranih slik" + +#~ msgid "" +#~ "toggle green label\n" +#~ "of selected images" +#~ msgstr "" +#~ "preklopi zeleno oznako\n" +#~ "izbranih slik" + +#~ msgid "" +#~ "toggle blue label\n" +#~ "of selected images" +#~ msgstr "" +#~ "preklopi modro oznako\n" +#~ "izbranih slik" + +#~ msgid "" +#~ "toggle purple label\n" +#~ "of selected images" +#~ msgstr "" +#~ "preklopi vijolično oznako\n" +#~ "izbranih slik" + +#~ msgid "clear all labels of selected images" +#~ msgstr "odstrani vse oznake od izbranih slik" + +#~ msgctxt "accel" +#~ msgid "rate 0" +#~ msgstr "ocena 0" + +#~ msgctxt "accel" +#~ msgid "rate 1" +#~ msgstr "ocena 1" + +#~ msgctxt "accel" +#~ msgid "rate 2" +#~ msgstr "ocena 2" + +#~ msgctxt "accel" +#~ msgid "rate 3" +#~ msgstr "ocena 3" + +#~ msgctxt "accel" +#~ msgid "rate 4" +#~ msgstr "ocena 4" + +#~ msgctxt "accel" +#~ msgid "rate 5" +#~ msgstr "ocena 5" + +#~| msgid "image rejected" +#~ msgctxt "accel" +#~ msgid "rate reject" +#~ msgstr "ocena zavrnjena" + +#~ msgctxt "accel" +#~ msgid "color red" +#~ msgstr "rdeča barva" + +#~ msgctxt "accel" +#~ msgid "color yellow" +#~ msgstr "rumena barva" + +#~| msgctxt "blendmode" +#~| msgid "color burn" +#~ msgctxt "accel" +#~ msgid "color blue" +#~ msgstr "barva modra" + +#~ msgctxt "accel" +#~ msgid "color purple" +#~ msgstr "škrlatna barva" + +#~| msgid "show image overlays" +#~ msgid "hide image overlays" +#~ msgstr "skrij plasti slik" + +#~ msgid "show image overlays" +#~ msgstr "prikaži plasti slik" + +#~ msgid "do you want to access https://darktable.gitlab.io/doc/?" +#~ msgstr "ali želite dostopati do https://darktable.gitlab.io/doc/?" + +#~| msgctxt "accel" +#~| msgid "toggle zoomable lighttable layout" +#~ msgid "zoomable light table" +#~ msgstr "povečevalna osvetljena podlaga" + +#~ msgid "file manager" +#~ msgstr "upravljalnik datotek" + +#~ msgid "culling" +#~ msgstr "izločanje" + +#~ msgid "dynamic zoom" +#~ msgstr "dinamični zoom" + +#~| msgid "quick access to presets" +#~ msgid "quick access to presets of your favorites" +#~ msgstr "hitri dostop do začetnih nastavitev vaših priljubljenih" + +#~ msgid "" +#~ "toggle over/under exposed indication\n" +#~ "right click for options" +#~ msgstr "" +#~ "preklop indikatorja pre/pod osvetljenosti\n" +#~ "desni klik za več možnosti" + +#~ msgid "threshold of what shall be considered underexposed" +#~ msgstr "prag pod katerim se vse smatra za podosvetljeno" + +#~ msgid "threshold of what shall be considered overexposed" +#~ msgstr "prag nad katerim se vse smatra za preosvetljeno" + +#~ msgid "display intent" +#~ msgstr "namen prikaza" + +#~| msgid "preview display profile" +#~ msgid "preview display intent" +#~ msgstr "predogled namena prikaza" + +#~| msgid "update filmstrip" +#~ msgctxt "accel" +#~ msgid "toggle film strip" +#~ msgstr "preklopi kos filma" + +#~ msgctxt "accel" +#~ msgid "raw overexposed" +#~ msgstr "preklopi indikator preosvetljenosti" + +#~ msgctxt "accel" +#~ msgid "overexposed" +#~ msgstr "preosvetljene" + +#, c-format +#~ msgid "you have reached the start of your selection (%d image)" +#~ msgid_plural "you have reached the start of your selection (%d images)" +#~ msgstr[0] "prišli ste do začetka vašega izbora (%d slika)" +#~ msgstr[1] "prišli ste do začetka vašega izbora (%d sliki)" +#~ msgstr[2] "prišli ste do začetka vašega izbora (%d slike)" +#~ msgstr[3] "prišli ste do začetka vašega izbora (%d slik)" + +#, c-format +#~ msgid "you have reached the end of your selection (%d image)" +#~ msgid_plural "you have reached the end of your selection (%d images)" +#~ msgstr[0] "prišli ste do konca vašega izbora (%d slika)" +#~ msgstr[1] "prišli ste do konca vašega izbora (%d sliki)" +#~ msgstr[2] "prišli ste do konca vašega izbora (%d slike)" +#~ msgstr[3] "prišli ste do konca vašega izbora (%d slik)" + +#~ msgctxt "accel" +#~ msgid "navigate up" +#~ msgstr "napotite gor" + +#~ msgctxt "accel" +#~ msgid "navigate down" +#~ msgstr "napotite dol" + +#~ msgctxt "accel" +#~ msgid "navigate page up" +#~ msgstr "napotite eno stran navzgor" + +#~ msgctxt "accel" +#~ msgid "navigate page down" +#~ msgstr "napotite eno stran navzdol" + +#~ msgctxt "accel" +#~ msgid "scroll up" +#~ msgstr "zvijaj gor" + +#~| msgid "scroll" +#~ msgctxt "accel" +#~ msgid "scroll down" +#~ msgstr "pomik dol" + +#~ msgctxt "accel" +#~ msgid "scroll left" +#~ msgstr "zvijaj v levo" + +#~ msgctxt "accel" +#~ msgid "scroll right" +#~ msgstr "zvijaj v desno" + +#~ msgctxt "accel" +#~ msgid "scroll center" +#~ msgstr "zvijaj center" + +#~ msgctxt "accel" +#~ msgid "preview with focus detection" +#~ msgstr "predogled z detekcijo goriščne razdalje" + +#~| msgctxt "accel" +#~| msgid "toggle sticky preview mode" +#~ msgctxt "accel" +#~ msgid "sticky preview" +#~ msgstr "lepljivi predogled" + +#~| msgctxt "accel" +#~| msgid "preview with focus detection" +#~ msgctxt "accel" +#~ msgid "sticky preview with focus detection" +#~ msgstr "lepljivi predogled z detekcijo goriščne razdalje" + +#~ msgctxt "accel" +#~ msgid "toggle timeline" +#~ msgstr "preklopi časovni trak" + +#~ msgid "+Scroll" +#~ msgstr "+Scroll" + +#~ msgid "Accel" +#~ msgstr "Pospeševanje" + +#~ msgid "global" +#~ msgstr "globalni" + +#~ msgid "version of the spline generator" +#~ msgstr "verzija generatorja zlepkov" + +#~ msgid "update database from selected xmp files" +#~ msgstr "posodobi bazo podatkov iz izbranih datotek xmp" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/rate 0" +#~ msgstr "ogledov/tabela sličic/ocena 0" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/rate 1" +#~ msgstr "ogledov/tabela sličic/ocena 1" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/rate 2" +#~ msgstr "ogledov/tabela sličic/ocena 2" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/rate 3" +#~ msgstr "ogledov/tabela sličic/ocena 3" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/rate 4" +#~ msgstr "ogledov/tabela sličic/ocena 4" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/rate 5" +#~ msgstr "ogledov/tabela sličic/ocena 5" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/rate reject" +#~ msgstr "ogledov/tabela sličic/ocena zavrni" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/copy history" +#~ msgstr "ogledov/tabela sličic/kopiraj zgodovino" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/copy history parts" +#~ msgstr "ogledov/tabela sličic/kopiraj dele zgodovine" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/paste history" +#~ msgstr "ogledov/tabela sličic/prilepi zgodovino" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/paste history parts" +#~ msgstr "ogledov/tabela sličic/prilepi dele zgodovine" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/discard history" +#~ msgstr "ogledov/tabela sličic/zavrzi zgodovino" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/duplicate image" +#~ msgstr "ogledov/tabela sličic/dupliciraj sliko" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/duplicate image virgin" +#~ msgstr "ogledov/tabela sličic/dupliciraj izvorno sliko" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/color red" +#~ msgstr "ogledov/tabela sličic/pobarvaj rdeče" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/color yellow" +#~ msgstr "ogledov/tabela sličic/pobarvaj rumeno" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/color green" +#~ msgstr "ogledov/tabela sličic/pobarvaj zeleno" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/color blue" +#~ msgstr "ogledov/tabela sličic/pobarvaj modro" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/color purple" +#~ msgstr "ogledov/tabela sličic/pobarvaj violična" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/clear color labels" +#~ msgstr "ogledov/tabela sličic/zbriši barvne oznake" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/select all" +#~ msgstr "ogledov/tabela sličic/izberi vse" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/select none" +#~ msgstr "ogledov/tabela sličic/ne izberi nič" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/invert selection" +#~ msgstr "ogledov/tabela sličic/inverzna izbira" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/select film roll" +#~ msgstr "ogledov/tabela sličic/izberi zvitek filma" + +#~ msgctxt "accel" +#~ msgid "views/thumbtable/select untouched" +#~ msgstr "ogledov/tabela sličic/izberi nedotaknjene" + +#~ msgctxt "accel" +#~ msgid "focus module" +#~ msgstr "modul ostrenja" + +#, c-format +#~ msgid "" +#~ "%s\n" +#~ "(shortcut: %s)" +#~ msgstr "" +#~ "%s\n" +#~ "(bližnjica: %s)" + +#, c-format +#~ msgid "%s %s / %s: %s" +#~ msgstr "%s %s / %s: %s" + +#, c-format +#~ msgid "%s / %s" +#~ msgstr "%s / %s" + +#~ msgctxt "accel" +#~ msgid "toggle all top panels" +#~ msgstr "preklopi vse vrhnji plošče" + +#~ msgctxt "accel" +#~ msgid "toggle all bottom panels" +#~ msgstr "preklopi vse spodnje plošče" + +#~ msgid "enable focus-peaking mode" +#~ msgstr "omogoči način vrhov ostrenja" + +#~ msgid "modules order" +#~ msgstr "vrstni red modulov" + +#~ msgid "" +#~ "click or press enter to search\n" +#~ "click or press enter again to cycle through results" +#~ msgstr "" +#~ "kliknite ali pritisnite Enter za iskanje\n" +#~ "kliknite ali ponovno pritisnite Enter, da se pomikate po rezultatih" + +#~ msgid "B&W : Ilford Delta 100" +#~ msgstr "Č/B : Ilford Delta 100" + +#~ msgid "linear or non-linear, RGB or Lab, display-referred" +#~ msgstr "linearno ali ne-linearno, RGB ali Lab, glede na zaslon" + +#~ msgid "today" +#~ msgstr "danes" + +#, no-c-format +#~ msgid "" +#~ "use `%' as wildcard\n" +#~ "use `|%' to include all sub-hierarchies (ctrl-click)\n" +#~ "use `*' to include hierarchy and sub-hierarchies (shift-click)" +#~ msgstr "" +#~ "uporabite `%' za vse\n" +#~ "uporabite `|%' za vključene vse podrejene strukture (ctrl-klik)\n" +#~ "uporabite `*' za vključene vse strukture in podrejene strukture (shift-" +#~ "klik)" + +#, no-c-format +#~ msgid "" +#~ "use `%' as wildcard\n" +#~ "use `|%' to include all sub-locations (ctrl-click)\n" +#~ "use `*' to include locations and sub-locations (shift-click)" +#~ msgstr "" +#~ "uporabite `%' za vse\n" +#~ "uporabite `|%' za vključena vsa podrejena mesta (ctrl-klik)\n" +#~ "uporabite `*' za vključena vsa mesta in podrejena mesta (shift-klik)" + +#~ msgid "open folder" +#~ msgstr "odpri mapo" + +#~ msgid "" +#~ "set the color of lines that overlay the image (drawn masks, crop and " +#~ "rotate guides etc.)" +#~ msgstr "" +#~ "nastavite barvo črt, ki prekrivajo sliko (narisane maske, vodniki " +#~ "obrezovanja in sukanja, itd.)" + +#~ msgctxt "accel" +#~ msgid "move page up" +#~ msgstr "pomakni stran navzgor" + +#~ msgctxt "accel" +#~ msgid "move page down" +#~ msgstr "pomakni stran navzdol" + +#~ msgctxt "accel" +#~ msgid "move up" +#~ msgstr "pomakni gor" + +#~ msgctxt "accel" +#~ msgid "move down" +#~ msgstr "pomakni dol" + +#~ msgctxt "accel" +#~ msgid "move left" +#~ msgstr "pomakni levo" + +#~ msgctxt "accel" +#~ msgid "move right" +#~ msgstr "pomakni desno" + +#~ msgctxt "accel" +#~ msgid "move start" +#~ msgstr "pomakni začetek" + +#~ msgctxt "accel" +#~ msgid "move end" +#~ msgstr "pomakni konec" + +#~ msgctxt "accel" +#~ msgid "move page up and select" +#~ msgstr "pomakni stran gor in izberi" + +#~ msgctxt "accel" +#~ msgid "move page down and select" +#~ msgstr "pomakni stran dol in izberi" + +#~ msgctxt "accel" +#~ msgid "move up and select" +#~ msgstr "pomakni gor in izberi" + +#~ msgctxt "accel" +#~ msgid "move down and select" +#~ msgstr "pomakni dol in izberi" + +#~ msgctxt "accel" +#~ msgid "move left and select" +#~ msgstr "pomakni levo in izberi" + +#~ msgctxt "accel" +#~ msgid "move right and select" +#~ msgstr "pomakni desno in izberi" + +#~ msgctxt "accel" +#~ msgid "move start and select" +#~ msgstr "pomakni začetek in izberi" + +#~ msgctxt "accel" +#~ msgid "move end and select" +#~ msgstr "pomakni konec in izberi" + +#~ msgid "input red" +#~ msgstr "vhodna rdeča" + +#~ msgid "input green" +#~ msgstr "vhodna zelena" + +#~ msgid "" +#~ "choose the root of the folder tree below\n" +#~ "try to choose a root folder that contains most/all of your photographs " +#~ "(in sub-folders)\n" +#~ "so that you don't need to change the root frequently\n" +#~ "e.g. set it to your 'pictures' or 'home' directory" +#~ msgstr "" +#~ "izberite koren drevesa map spodaj\n" +#~ "poskusite izbrati korensko mapo, ki vsebuje večino/vse vaše fotografije " +#~ "(v podmapah)\n" +#~ "tako da vam ni treba pogosto spreminjati korena\n" +#~ "npr. nastavite ga na 'slike' ali 'domov'" + +#~ msgid "black and white" +#~ msgstr "črno in belo" + +#~ msgid "" +#~ "changes the default collections-list order for folders, times and dates " +#~ "to run from recent to older" +#~ msgstr "" +#~ "spremeni privzeti vrstni red zbirk za mape, čase in datume od nedavnega " +#~ "do starejšega" + +#~ msgid "gamma22 Rec709" +#~ msgstr "gama22 Rec709" + +#~ msgid "ProPhoto RGB" +#~ msgstr "ProPhoto RGB" + +#~ msgid "" +#~ "\n" +#~ " At startup, the database failed to open because at least one of the two " +#~ "files in the database is locked.\n" +#~ "\n" +#~ " The persistence of the lock is mainly caused by one of the two following " +#~ "causes:\n" +#~ "\n" +#~ " - Another occurrence of darktable has already opened this database file " +#~ "and locked it for its benefit.\n" +#~ "\n" +#~ " - A previous occurrence of darktable ended abnormally and therefore \n" +#~ " could not close one or both files in the database properly.\n" +#~ "\n" +#~ " How to solve this problem?\n" +#~ "\n" +#~ " 1 - Search in your environment if another darktable occurrence is " +#~ "active. If so, use it or close it. \n" +#~ " The lock indicates that the process number of this occurrence is : " +#~ "<i><b>%d</b></i>\n" +#~ "\n" +#~ " 2 - If you can't find this other occurrence, try closing your session " +#~ "and reopening it or shutting down your computer. \n" +#~ " This will delete all running programs and thus close the database " +#~ "correctly.\n" +#~ "\n" +#~ " 3 - If these two actions are not enough, it is because at least one of " +#~ "the two files that materialize the locks remains \n" +#~ " and that these are no longer attached to any occurrence of " +#~ "darktable. It is then necessary to delete it (or them). \n" +#~ " The two files are named <i>data.db.lock</i> and <i>library.db.lock</" +#~ "i> respectively. The opening mechanism signals \n" +#~ " the presence of the <i><b>%s</b></i> file in the <i><b>%s</b></i> " +#~ "folder. \n" +#~ " (full pathname: <i><b>%s</b></i>).\n" +#~ "\n" +#~ " <u>Caution!</u> Do not delete these files without first checking " +#~ "that there are no more occurrences of darktable, \n" +#~ " otherwise you risk generating serious inconsistencies in your " +#~ "database.\n" +#~ "\n" +#~ " As soon as you have identified and removed the cause of the lock, " +#~ "darktable will start without any problem.\n" +#~ msgstr "" +#~ "\n" +#~ " Ob zagonu se zbirka podatkov ni uspela odpreti, ker je bil vsaj ena od " +#~ "obeh datotek v bazi podatkov zaklenjena.\n" +#~ "\n" +#~ " Vztrajanje zaklepanja je posledica enega od naslednjih dveh vzrokov:\n" +#~ "\n" +#~ " - Še en pojavek DarkTable je že odprl to datoteko baze podatkov in jo " +#~ "zaklenil zase.\n" +#~ "\n" +#~ " - Prejšnji pojavek DarkTabla se je končal nenormalno in zato\n" +#~ " ene ali obeh datotek v bazi ni mogel pravilno zapreti.\n" +#~ "\n" +#~ " Kako rešiti to težavo?\n" +#~ "\n" +#~ " 1 - Preiščite v svoje okolje, ali je aktiven še en pojavek darktable. Če " +#~ "je tako, ga ali uporabite ali zaprite.\n" +#~ " Ključavnica pomeni, da je številka procesa tega dogodka:<i><b>%d</b> " +#~ "</i>\n" +#~ "\n" +#~ " 2 - Če tega ne morete najti še enega pojavka, poskusite zaključiti sejo " +#~ "in jo znova odpreti ali izklopiti računalnik.\n" +#~ " S tem boste izbrisali vse tekoče programe in tako pravilno zaprli " +#~ "bazo podatkov.\n" +#~ "\n" +#~ " 3 - Če ti dve dejanji nista dovolj, je to zato, ker ostala vsaj ena od " +#~ "dveh datoteki, ki materializirata zaklep\n" +#~ " in da ni več povezana z nobenim pojavkom darktabla. Zato jo ali ju " +#~ "je potrebno zbrisati.\n" +#~ " Dve datoteki sta poimenovani <i>data.db.lock</i> in <i>library.db." +#~ "lock</i>. Mehanizem za odpiranje signalizira\n" +#~ " prisotnost datoteke <i><b>%s</b></i> v mapi <i><b>%s</b></i>.\n" +#~ " (polno ime poti: <i><b>%s</b></i>).\n" +#~ "\n" +#~ " <u>Pozor!</u> Ne brišite teh datotek, ne da bi to predhodno " +#~ "preverili, da ni več pojavkov darktabla,\n" +#~ " sicer tvegate, da bi prišlo do resnih neskladnosti v vaši zbirki " +#~ "podatkov.\n" +#~ "\n" +#~ " Takoj ko ugotovite in odstranite vzrok zaklepanja, se bo darktable " +#~ "zagnal brez težav.\n" + +#~ msgid "darktable cannot be started because the database is locked" +#~ msgstr "darktable ni mogoče zagnati, ker je baza podatkov zaklenjena" + +#~ msgid "do you really want to send %d image to trash?" +#~ msgid_plural "do you really want to send %d images to trash?" +#~ msgstr[0] "ali res želite vreči %d sliko v smeti?" +#~ msgstr[1] "ali res želite vreči %d sliki v smeti?" +#~ msgstr[2] "ali res želite vreči %d slike v smeti?" +#~ msgstr[3] "ali res želite vreči %d slik v smeti?" + +#~ msgctxt "blendmode" +#~ msgid "multiply reverse" +#~ msgstr "množi obratno" + +#~ msgctxt "blendmode" +#~ msgid "subtract reverse" +#~ msgstr "obratno odštevanje" + +#~ msgctxt "blendmode" +#~ msgid "divide reverse" +#~ msgstr "obratno deljenje" + +#~ msgid "" +#~ "add gradient\n" +#~ "ctrl+click to add multiple gradients" +#~ msgstr "" +#~ "dodaj gradient\n" +#~ "ctrl+klik, da dodate več gradientov" + +#~ msgid "" +#~ "add path\n" +#~ "ctrl+click to add multiple paths" +#~ msgstr "" +#~ "dodaj pot\n" +#~ "ctrl+klik, če želite dodati več poti" + +#~ msgid "" +#~ "add ellipse\n" +#~ "ctrl+click to add multiple ellipses" +#~ msgstr "" +#~ "dodaj elipso\n" +#~ "ctrl+klik, če želite dodati več elips" + +#~ msgid "" +#~ "add circle\n" +#~ "ctrl+click to add multiple circles" +#~ msgstr "" +#~ "dodaj krog\n" +#~ "ctrl+klik, če želite dodati več krogov" + +#~ msgid "" +#~ "add brush\n" +#~ "ctrl+click to add multiple brush strokes" +#~ msgstr "ctrl+klik za dodajanje več potez s čopičem" + +#~ msgid "" +#~ "shift+scroll to change compression\n" +#~ "ctrl+scroll to set opacity (%d%%)" +#~ msgstr "" +#~ "shift+scroll za spremembo stiskanja\n" +#~ " ctrl+scroll za določanje neprosojnosti (%d%%)" + +#~ msgid "" +#~ "scroll to set curvature, shift+scroll to change compression\n" +#~ "ctrl+scroll to set shape opacity (%d%%)" +#~ msgstr "" +#~ "scroll za določanje ukrivljenosti, shift+scroll za spremembo stiskanja\n" +#~ "ctrl+scroll za določanje neprosojnosti oblike (%d%%)" + +#~ msgid "" +#~ "history problem detected\n" +#~ "please report via the issue tracker\n" +#~ "including the xmp file" +#~ msgstr "" +#~ "odkrita težava v zgodovini\n" +#~ "prosimo, poročajte sledilniku opažanj\n" +#~ "priložite datoteko xmp" + +#~ msgid "metadata to be applied per default" +#~ msgstr "privzeti metapodatki" + +#~ msgid "paste parts..." +#~ msgstr "prilepi dele..." + +#~ msgid "Mass Storage Camera" +#~ msgstr "Kamera masovnega shranjevanja" + +#~ msgid "import folder" +#~ msgstr "uvozi mapo" + +#~ msgid "modify the spatial size of an images group on the map" +#~ msgstr "spremenite velikost prostora skupine slik na zemljevidu" + +#~ msgid "minimum of images to make a group" +#~ msgstr "najmanjše število slik, da bi ustvarile skupino" + +#~ msgid "hidden" +#~ msgstr "skrita" + +#~ msgid "configure metadata" +#~ msgstr "izvozi metapodatke" + +#~ msgid "recommended module" +#~ msgid_plural "recommended modules" +#~ msgstr[0] "priporočen modul" +#~ msgstr[1] "priporočena modula" +#~ msgstr[2] "priporočeni moduli" +#~ msgstr[3] "priporočenih modulov" + +#~ msgid "preset name" +#~ msgstr "ime prednastavitve" + +#~ msgid "delete path" +#~ msgstr "briši pot" + +#~| msgid "show search module text entry" +#~ msgid "show module groups and/or search text entry" +#~ msgstr "prikaži skupine modulov in/ali išči vnos besedil" + +#~ msgid "show module groups and/or search text entry. (needs a restart)" +#~ msgstr "" +#~ "prikaži skupine modulov in/ali išči vnos besedil. (zahteva ponovni zagon)" + +#~| msgid "delete preset?" +#~ msgid "hide built-in presets" +#~ msgstr "skrij vgrajene prednastavitve" + +#~ msgid "" +#~ "perform color space corrections\n" +#~ "and apply looks" +#~ msgstr "" +#~ "izvedi popravke barvnega prostora\n" +#~ "in uporabite videz" + +#~| msgid "white balance disabled for camera" +#~ msgid "white balance applied on non-raw image" +#~ msgstr "uravnoteženje beline uporabljeno na ne-surovi sliki" + +#~ msgid "" +#~ "the white balance module is designed to work on raw images.\n" +#~ "using it on non-raw images may have unexpected effects.\n" +#~ "use chromatic adaptation in color calibration instead." +#~ msgstr "" +#~ "modul za nastavitev beline je zasnovan za delo na surovih slikah.\n" +#~ "uporaba na ne-surovih slikah ima lahko nepričakovane učinke.\n" +#~ "raje uporabite prilagoditev barve pri umerjanju barv." + +#~| msgid "compress shadows/highlights : strong" +#~ msgid "compress shadows/highlights (eigf) : very strong" +#~ msgstr "stiskanje senc/bleščav (eigf) : zelo močno" + +#~| msgid "compress shadows/highlights : strong" +#~ msgid "compress shadows/highlights (gf) : very strong" +#~ msgstr "stiskanje senc/bleščav (gf) : zelo močno" + +#~| msgid "%s has been imported" +#~| msgid_plural "%s have been imported" +#~ msgid "to be imported" +#~ msgstr "za uvoz" + +#~ msgid "" +#~ "selected metadata are imported from image and override the default value" +#~ msgstr "" +#~ "izbrani metapodatki se uvozijo s slike in prepišejo privzeto vrednost" + +#~ msgid "GUI thumbs and previews DPI scaling factor" +#~ msgstr "" +#~ "Predogledne sličice grafičnega vmesnika in merilo povečave predogledov" + +#~ msgid "" +#~ "scale the thumbnails and previews resolutions for high DPI screens.\n" +#~ "increase if thumbnails look blurry, decrease if lighttable is too slow.\n" +#~ "set to -1.0 to use the system-defined global scaling.\n" +#~ "default is 1.0 on most systems, or 2.0 when using resolutions above " +#~ "1920×1080 px.\n" +#~ "this needs a restart to apply changes." +#~ msgstr "" +#~ "spremenite merilo sličic in ločljivosti predogledov za zaslone visoke " +#~ "ločljivosti.\n" +#~ "povečajte, če so sličice videti zamegljene, zmanjšajte jih, če je tabela " +#~ "svetlobe prepočasna.\n" +#~ "nastavite na -1.0 za uporabo sistemsko definiranega globalnega merila.\n" +#~ "privzeto je 1,0 v večini sistemov ali 2,0, če uporabljate ločljivosti nad " +#~ "1920×1080 px.\n" +#~ "Za uveljavitev sprememb je potreben ponovni zagon." + +#~ msgctxt "usercss" +#~ msgid "save theme tweaks" +#~ msgstr "shrani prilagoditve teme" + +#~ msgid "" +#~ "distort perspective automatically,\n" +#~ "for corrective and creative purposes.\n" +#~ "works in RGB,\n" +#~ "takes preferably a linear RGB input,\n" +#~ "outputs linear RGB." +#~ msgstr "" +#~ "samodejno izkrivlja perspektivo,\n" +#~ "za korektivne in ustvarjalne namene.\n" +#~ "deluje v RGB,\n" +#~ "prednostno pobere linearni RGB vhod,\n" +#~ "daje kot izhod linearni RGB." + +#~| msgid "focal length" +#~ msgctxt "accel" +#~ msgid "focal length" +#~ msgstr "goriščna razdalja" + +#~| msgid "crop factor" +#~ msgctxt "accel" +#~ msgid "crop factor" +#~ msgstr "faktor izreza" + +#~| msgid "aspect adjust" +#~ msgctxt "accel" +#~ msgid "aspect adjust" +#~ msgstr "prilagoditev razmerja proporcev" + +#~| msgid "guides" +#~ msgctxt "accel" +#~ msgid "guides" +#~ msgstr "vodila" + +#~| msgid "automatic cropping" +#~ msgctxt "accel" +#~ msgid "automatic cropping" +#~ msgstr "avtomatično obrezovanje" + +#~ msgid "" +#~ "add or remove local contrast,\n" +#~ "for corrective and creative purposes.\n" +#~ "works in Lab,\n" +#~ "takes preferably a linear RGB input,\n" +#~ "outputs almost linear RGB." +#~ msgstr "" +#~ "dodaj ali odstrani lokalni kontrast,\n" +#~ "za korektivne in ustvarjalne namene.\n" +#~ "deluje v prostoru Lab,\n" +#~ "prednostno je vhod linearni RGB,\n" +#~ "izhod skoraj linearni RGB." + +#~| msgid "preserve colors" +#~ msgctxt "accel" +#~ msgid "preserve colors" +#~ msgstr "ohranite barve" + +#~| msgid "exposure shift" +#~ msgctxt "accel" +#~ msgid "exposure fusion" +#~ msgstr "zlivanje osvetlitve" + +#~ msgid "" +#~ "apply usual adjustments,\n" +#~ "for corrective and creative purposes.\n" +#~ "works in RGB,\n" +#~ "takes preferably a linear RGB input,\n" +#~ "outputs non-linear RGB." +#~ msgstr "" +#~ "uporabi običajne prilagoditve,\n" +#~ "za korektivne in ustvarjalne namene.\n" +#~ "deluje v RGB,\n" +#~ "vzame prednostno linearni RGB vhod,\n" +#~ "izhodi so nelinearni RGB." + +#~| msgid "black level correction" +#~ msgctxt "accel" +#~ msgid "black level correction" +#~ msgstr "popravek ravni črnine" + +#~| msgid "highlight compression" +#~ msgctxt "accel" +#~ msgid "highlight compression" +#~ msgstr "stiskanje bleščav" + +#~| msgid "clip" +#~ msgctxt "accel" +#~ msgid "clip" +#~ msgstr "zapni" + +#~ msgid "" +#~ "manipulate local and global contrast separately,\n" +#~ "for corrective and creative purposes.\n" +#~ "works in Lab,\n" +#~ "takes any RGB input,\n" +#~ "outputs non-linear RGB." +#~ msgstr "" +#~ "ločeno upravlja z lokalnim in globalnim kontrastom,\n" +#~ "za korektivne in ustvarjalne namene.\n" +#~ "deluje v prostoru Lab,\n" +#~ "sprejme kateri koli RGB vhod,\n" +#~ "izhod je nelinearni RGB." + +#~| msgid "detail" +#~ msgctxt "accel" +#~ msgid "detail" +#~ msgstr "podrobnost" + +#~| msgid "midtone range" +#~ msgctxt "accel" +#~ msgid "midtone range" +#~ msgstr "obseg srednjih tonov" + +#~ msgid "" +#~ "apply Orton effect for a dreamy aetherical look,\n" +#~ "for creative purposes.\n" +#~ "works in Lab,\n" +#~ "takes preferably a linear RGB input,\n" +#~ "outputs non-linear RGB." +#~ msgstr "" +#~ "uporabi Ortonov učinek za zasanjani eterični videz,\n" +#~ "za ustvarjalne namene.\n" +#~ "deluje v prostou Lab,\n" +#~ "ima prednostno linearni RGB vhod,\n" +#~ "izhod je nelinearni RGB." + +#~| msgid "frame line offset" +#~ msgctxt "accel" +#~ msgid "frame line offset" +#~ msgstr "odmik črte okvirja" + +#~| msgid "aspect" +#~ msgctxt "accel" +#~ msgid "aspect" +#~ msgstr "vidik" + +#~| msgid "orientation" +#~ msgctxt "accel" +#~ msgid "orientation" +#~ msgstr "orientacija" + +#~| msgid "horizontal position" +#~ msgctxt "accel" +#~ msgid "horizontal position" +#~ msgstr "vodoravna pozicija" + +#~| msgid "vertical position" +#~ msgctxt "accel" +#~ msgid "vertical position" +#~ msgstr "vertikalna pozicija" + +#~| msgid "destination" +#~ msgctxt "accel" +#~ msgid "destination" +#~ msgstr "cilj" + +#~| msgid "invalid ratio format. it should be \"number:number\"" +#~ msgid "invalid ratio format. it should be non zero" +#~ msgstr "neveljavno razmerje. biti mora različno od nič" + +#~ msgctxt "accel" +#~ msgid "top" +#~ msgstr "vrh" + +#~| msgctxt "preferences" +#~| msgid "bottom" +#~ msgctxt "accel" +#~ msgid "bottom" +#~ msgstr "dno" + +#~| msgid "aspect ratio" +#~ msgctxt "accel" +#~ msgid "aspect ratio" +#~ msgstr "razmerje proporcev" + +#~| msgid "flip" +#~ msgctxt "accel" +#~ msgid "flip" +#~ msgstr "prezrcali" + +#~| msgid "keystone" +#~ msgctxt "accel" +#~ msgid "keystone" +#~ msgstr "ključni kamen" + +#~ msgid "" +#~ "affect color, brightness and contrast\n" +#~ "for corrective and creative purposes.\n" +#~ "works in RGB\n" +#~ "takes preferably a linear RGB input,\n" +#~ "outputs possibly non-linear RGB, depending on settings." +#~ msgstr "" +#~ "vpliva na barvo, sijavost in kontrast\n" +#~ "za korektivne in ustvarjalne namene.\n" +#~ "deluje v RGB\n" +#~ "ima prednostno linearni RGB vhod,\n" +#~ "izhod po možnosti nelinearni RGB, odvisno od nastavitev." + +#~| msgid "input saturation" +#~ msgctxt "accel" +#~ msgid "input saturation" +#~ msgstr "vhodna nasičenost" + +#~| msgid "output saturation" +#~ msgctxt "accel" +#~ msgid "output saturation" +#~ msgstr "izhodna nasičenost" + +#~| msgid "contrast fulcrum" +#~ msgctxt "accel" +#~ msgid "contrast fulcrum" +#~ msgstr "žarišče kontrastov" + +#~| msgid "color control sliders" +#~ msgctxt "accel" +#~ msgid "color control sliders" +#~ msgstr "drsniki kontrole barv" + +#~| msgid "green/red" +#~ msgctxt "accel" +#~ msgid "green-red" +#~ msgstr "zeleno-rdeča" + +#~| msgid "target color" +#~ msgctxt "accel" +#~ msgid "target color" +#~ msgstr "ciljna barva" + +#~| msgid "input profile" +#~ msgctxt "accel" +#~ msgid "input profile" +#~ msgstr "vhodni profil" + +#~| msgid "working profile" +#~ msgctxt "accel" +#~ msgid "working profile" +#~ msgstr "delovni profil" + +#~| msgid "gamut clipping" +#~ msgctxt "accel" +#~ msgid "gamut clipping" +#~ msgstr "obrezovanje barvnega razpona" + +#~| msgid "number of clusters" +#~ msgctxt "accel" +#~ msgid "number of clusters" +#~ msgstr "število gruč" + +#~| msgid "color dominance" +#~ msgctxt "accel" +#~ msgid "color dominance" +#~ msgstr "barvna nadvlada" + +#~| msgid "histogram equalization" +#~ msgctxt "accel" +#~ msgid "histogram equalization" +#~ msgstr "izenačevanje histograma" + +#~| msgid "export profile" +#~ msgctxt "accel" +#~ msgid "export profile" +#~ msgstr "profil izvoza" + +#~| msgid "select by" +#~ msgctxt "accel" +#~ msgid "select by" +#~ msgstr "izberi po" + +#~| msgid "process mode" +#~ msgctxt "accel" +#~ msgid "process mode" +#~ msgstr "način obdelave" + +#~| msgid "interpolation method" +#~ msgctxt "accel" +#~ msgid "interpolation method" +#~ msgstr "metoda interpolacije" + +#~| msgid "edge detection radius" +#~ msgctxt "accel" +#~ msgid "edge detection radius" +#~ msgstr "polmer zaznavanja robov" + +#~| msgid "operation mode" +#~ msgctxt "accel" +#~ msgid "operation mode" +#~ msgstr "način operacij" + +#~| msgid "method" +#~ msgctxt "accel" +#~ msgid "method (bayer)" +#~ msgstr "metoda (bayer)" + +#~ msgctxt "accel" +#~ msgid "method (xtrans)" +#~ msgstr "metoda (xtrans)" + +#~| msgid "color smoothing" +#~ msgctxt "accel" +#~ msgid "color smoothing" +#~ msgstr "barvno glajenje" + +#~| msgid "match greens" +#~ msgctxt "accel" +#~ msgid "match greens" +#~ msgstr "uskladi zelene" + +#~| msgid "adjust autoset parameters" +#~ msgctxt "accel" +#~ msgid "adjust autoset parameters" +#~ msgstr "prilagodi avtomatsko nastavljene parametre" + +#~| msgid "preserve shadows" +#~ msgctxt "accel" +#~ msgid "preserve shadows" +#~ msgstr "ohrani sence" + +#~| msgid "bias correction" +#~ msgctxt "accel" +#~ msgid "bias correction" +#~ msgstr "popravek pristranskosti" + +#~| msgid "patch size" +#~ msgctxt "accel" +#~ msgid "patch size" +#~ msgstr "velikost zaplate" + +#~| msgid "search radius" +#~ msgctxt "accel" +#~ msgid "search radius" +#~ msgstr "radij iskanja" + +#~| msgid "method" +#~ msgctxt "accel" +#~ msgid "method" +#~ msgstr "metoda" + +#~| msgid "target black luminance" +#~ msgctxt "accel" +#~ msgid "target black luminance" +#~ msgstr "ciljna svetlost črne" + +#~| msgid "target middle grey" +#~ msgctxt "accel" +#~ msgid "target middle grey" +#~ msgstr "ciljna srednja siva" + +#~| msgid "target white luminance" +#~ msgctxt "accel" +#~ msgid "target white luminance" +#~ msgstr "ciljna svetlost bele" + +#~| msgid "preserve chrominance" +#~ msgctxt "accel" +#~ msgid "preserve chrominance" +#~ msgstr "ohrani barvnost" + +#~| msgid "bias" +#~ msgctxt "accel" +#~ msgid "bias" +#~ msgstr "pristranskost" + +#~| msgid "target" +#~ msgctxt "accel" +#~ msgid "target" +#~ msgstr "cilj" + +#~| msgid "operator" +#~ msgctxt "accel" +#~ msgid "operator" +#~ msgstr "operater" + +#~| msgctxt "accel" +#~| msgid "sharpness" +#~ msgctxt "accel" +#~ msgid "hardness" +#~ msgstr "ostrina" + +#~| msgid "midtones bias" +#~ msgctxt "accel" +#~ msgid "midtones bias" +#~ msgstr "pristranskost srednjih tonov" + +#~| msgid "distance" +#~ msgctxt "accel" +#~ msgid "distance" +#~ msgstr "razdalja" + +#~| msgid "clipping threshold" +#~ msgctxt "accel" +#~ msgid "clipping threshold" +#~ msgstr "prag obrezovanja" + +#~| msgid "corrections" +#~ msgctxt "accel" +#~ msgid "corrections" +#~ msgstr "popravki" + +#~| msgid "geometry" +#~ msgctxt "accel" +#~ msgid "geometry" +#~ msgstr "geometrija" + +#~| msgid "gray" +#~ msgctxt "accel" +#~ msgid "gray" +#~ msgstr "siva" + +#~| msgid "white" +#~ msgctxt "accel" +#~ msgid "white" +#~ msgstr "bela" + +#~| msgid "application color space" +#~ msgctxt "accel" +#~ msgid "application color space" +#~ msgstr "barvni prostor aplikacije" + +#~| msgid "interpolation" +#~ msgctxt "accel" +#~ msgid "interpolation" +#~ msgstr "interpolacija" + +#~| msgctxt "accel" +#~| msgid "zoom max" +#~ msgid "D max" +#~ msgstr "D max" + +#~| msgid "black relative exposure" +#~ msgctxt "accel" +#~ msgid "black relative exposure" +#~ msgstr "relativna osvetlitev črne" + +#~| msgid "safety factor" +#~ msgctxt "accel" +#~ msgid "safety factor" +#~ msgstr "varnostni faktor" + +#~| msgid "soften with" +#~ msgctxt "accel" +#~ msgid "soften with" +#~ msgstr "zmehčaj z" + +#~| msgid "shadows" +#~ msgctxt "accel" +#~ msgid "shadows-hue" +#~ msgstr "odtenki senc" + +#~| msgid "saturation" +#~ msgctxt "accel" +#~ msgid "shadows-saturation" +#~ msgstr "zasičenost senc" + +#~| msgid "highlights" +#~ msgctxt "accel" +#~ msgid "highlights-hue" +#~ msgstr "odtenki bleščav" + +#~| msgid "presets" +#~ msgctxt "accel" +#~ msgid "presets" +#~ msgstr "začetne nastavitve" + +#~| msgid "base of the logarithm" +#~ msgctxt "accel" +#~ msgid "base of the logarithm" +#~ msgstr "osnova logaritma" + +#~| msgid "color space" +#~ msgctxt "accel" +#~ msgid "color space" +#~ msgstr "barvni prostor" + +#~ msgctxt "accel" +#~ msgid "edges refinement or feathering" +#~ msgstr "glajenje robov ali mehčanje" + +#~| msgid "luminance estimator" +#~ msgctxt "accel" +#~ msgid "luminance estimator" +#~ msgstr "cenilka osvetljenosti" + +#~| msgid "preserve details" +#~ msgctxt "accel" +#~ msgid "preserve details" +#~ msgstr "ohrani podrobnosti" + +#~| msgid "marker" +#~ msgctxt "accel" +#~ msgid "marker" +#~ msgstr "označevalnik" + +#~| msgid "scale on" +#~ msgctxt "accel" +#~ msgid "scale on" +#~ msgstr "merilo" + +#~ msgid "X" +#~ msgstr "X" + +#~| msgid "moving %d image" +#~ msgid "loading image" +#~ msgstr "prenašam sliko" + + diff -Nru darktable-4.4.2/po/sq.po darktable-4.6.1/po/sq.po --- darktable-4.4.2/po/sq.po 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/po/sq.po 2024-02-16 17:31:09.000000000 +0000 @@ -2,8 +2,8 @@ msgstr "" "Project-Id-Version: darktable\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-31 13:24+0200\n" -"PO-Revision-Date: 2023-06-01 15:36+0200\n" +"POT-Creation-Date: 2023-11-30 19:32+0100\n" +"PO-Revision-Date: 2023-12-10 19:32+0100\n" "Last-Translator: Besmir Godole <bgodole@gmail.com>\n" "Language-Team: Albanian\n" "Language: sq_AL\n" @@ -11,271 +11,236 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Poedit 3.3.1\n" +"X-Generator: Poedit 3.4.1\n" -#: ../build/bin/conf_gen.h:172 ../build/bin/preferences_gen.h:7632 +#: ../build/bin/conf_gen.h:174 msgctxt "preferences" msgid "first instance" msgstr "instanca e parë" -#: ../build/bin/conf_gen.h:173 ../build/bin/preferences_gen.h:7637 -#: ../build/bin/preferences_gen.h:7656 +#: ../build/bin/conf_gen.h:175 ../build/bin/preferences_gen.h:7922 msgctxt "preferences" msgid "last instance" msgstr "instanca e fundit" -#: ../build/bin/conf_gen.h:240 ../build/bin/conf_gen.h:346 -#: ../build/bin/conf_gen.h:356 ../build/bin/conf_gen.h:1186 -#: ../build/bin/conf_gen.h:1202 ../build/bin/preferences_gen.h:4137 -#: ../build/bin/preferences_gen.h:4156 ../build/bin/preferences_gen.h:4232 -#: ../build/bin/preferences_gen.h:6706 ../build/bin/preferences_gen.h:6834 -#: ../build/bin/preferences_gen.h:6899 +#: ../build/bin/conf_gen.h:252 ../build/bin/conf_gen.h:352 +#: ../build/bin/conf_gen.h:362 ../build/bin/conf_gen.h:1239 +#: ../build/bin/conf_gen.h:1255 ../build/bin/conf_gen.h:1275 +#: ../build/bin/preferences_gen.h:4747 ../build/bin/preferences_gen.h:4885 msgctxt "preferences" msgid "never" msgstr "kurrë" -#: ../build/bin/conf_gen.h:241 ../build/bin/preferences_gen.h:6711 +#: ../build/bin/conf_gen.h:253 msgctxt "preferences" msgid "once a month" msgstr "çdo muaj" -#: ../build/bin/conf_gen.h:242 ../build/bin/preferences_gen.h:6716 -#: ../build/bin/preferences_gen.h:6745 +#: ../build/bin/conf_gen.h:254 ../build/bin/preferences_gen.h:7138 msgctxt "preferences" msgid "once a week" msgstr "çdo javë" -#: ../build/bin/conf_gen.h:243 ../build/bin/preferences_gen.h:6721 +#: ../build/bin/conf_gen.h:255 msgctxt "preferences" msgid "once a day" msgstr "çdo ditë" -#: ../build/bin/conf_gen.h:244 ../build/bin/preferences_gen.h:6726 +#: ../build/bin/conf_gen.h:256 msgctxt "preferences" msgid "on close" msgstr "gjatë mbylljes" -#: ../build/bin/conf_gen.h:280 ../build/bin/conf_gen.h:1179 -#: ../build/bin/conf_gen.h:1195 ../build/bin/preferences_gen.h:4102 -#: ../build/bin/preferences_gen.h:4197 ../build/bin/preferences_gen.h:5748 +#: ../build/bin/conf_gen.h:292 ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1248 ../build/bin/conf_gen.h:1276 msgctxt "preferences" msgid "small" msgstr "e vogël" -#: ../build/bin/conf_gen.h:281 ../build/bin/conf_gen.h:393 -#: ../build/bin/preferences_gen.h:5753 ../build/bin/preferences_gen.h:5782 -#: ../build/bin/preferences_gen.h:5969 ../build/bin/preferences_gen.h:5998 +#: ../build/bin/conf_gen.h:293 ../build/bin/conf_gen.h:405 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6223 msgctxt "preferences" msgid "default" msgstr "standarde" -#: ../build/bin/conf_gen.h:282 ../build/bin/conf_gen.h:2814 -#: ../build/bin/preferences_gen.h:5758 +#: ../build/bin/conf_gen.h:294 ../build/bin/conf_gen.h:2904 msgctxt "preferences" msgid "large" msgstr "shumë" -#: ../build/bin/conf_gen.h:283 ../build/bin/preferences_gen.h:5763 +#: ../build/bin/conf_gen.h:295 msgctxt "preferences" msgid "unrestricted" msgstr "pa kufi" -#: ../build/bin/conf_gen.h:347 ../build/bin/preferences_gen.h:6839 +#: ../build/bin/conf_gen.h:353 msgctxt "preferences" msgid "after edit" msgstr "pas përpunimit" -#: ../build/bin/conf_gen.h:348 ../build/bin/preferences_gen.h:6844 -#: ../build/bin/preferences_gen.h:6863 +#: ../build/bin/conf_gen.h:354 ../build/bin/preferences_gen.h:7224 msgctxt "preferences" msgid "on import" msgstr "gjatë importit" -#: ../build/bin/conf_gen.h:357 ../build/bin/conf_gen.h:1178 -#: ../build/bin/conf_gen.h:1194 ../build/bin/conf_gen.h:3214 -#: ../build/bin/preferences_gen.h:4097 ../build/bin/preferences_gen.h:4192 -#: ../build/bin/preferences_gen.h:5112 ../build/bin/preferences_gen.h:5166 -#: ../build/bin/preferences_gen.h:6904 +#: ../build/bin/conf_gen.h:363 ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1247 ../build/bin/conf_gen.h:3300 +#: ../build/bin/preferences_gen.h:5644 msgctxt "preferences" msgid "always" msgstr "gjithmonë" -#: ../build/bin/conf_gen.h:358 ../build/bin/preferences_gen.h:6909 -#: ../build/bin/preferences_gen.h:6928 +#: ../build/bin/conf_gen.h:364 ../build/bin/preferences_gen.h:7259 msgctxt "preferences" msgid "only large entries" msgstr "vetëm elementet e mëdha" -#: ../build/bin/conf_gen.h:378 ../build/bin/preferences_gen.h:8069 +#: ../build/bin/conf_gen.h:390 msgctxt "preferences" msgid "sensitive" msgstr "respektoj" -#: ../build/bin/conf_gen.h:379 ../build/bin/preferences_gen.h:8074 -#: ../build/bin/preferences_gen.h:8093 +#: ../build/bin/conf_gen.h:391 ../build/bin/preferences_gen.h:8133 msgctxt "preferences" msgid "insensitive" msgstr "nuk e respektoj" -#: ../build/bin/conf_gen.h:394 ../build/bin/preferences_gen.h:5974 +#: ../build/bin/conf_gen.h:406 msgctxt "preferences" msgid "multiple GPUs" msgstr "disa GPU" -#: ../build/bin/conf_gen.h:395 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/conf_gen.h:407 msgctxt "preferences" msgid "very fast GPU" msgstr "GPU shumë e shpejtë" -#: ../build/bin/conf_gen.h:403 ../build/bin/preferences_gen.h:6040 -#: ../build/bin/preferences_gen.h:6074 +#: ../build/bin/conf_gen.h:755 msgctxt "preferences" -msgid "nothing" -msgstr "asgjë" - -#: ../build/bin/conf_gen.h:404 ../build/bin/preferences_gen.h:6045 -msgctxt "preferences" -msgid "memory size" -msgstr "madhësia e memories" - -#: ../build/bin/conf_gen.h:405 ../build/bin/preferences_gen.h:6050 -msgctxt "preferences" -msgid "memory transfer" -msgstr "transferimi i memories" - -#: ../build/bin/conf_gen.h:406 ../build/bin/preferences_gen.h:6055 -msgctxt "preferences" -msgid "memory size and transfer" -msgstr "madhësia dhe transferimi i memories" - -#: ../build/bin/conf_gen.h:706 ../build/bin/preferences_gen.h:8257 -#: ../build/bin/preferences_gen.h:8281 -msgctxt "preferences" -msgid "id" -msgstr "id" +msgid "import time" +msgstr "koha e importimit" -#: ../build/bin/conf_gen.h:707 ../build/bin/preferences_gen.h:8262 +#: ../build/bin/conf_gen.h:756 msgctxt "preferences" -msgid "folder" -msgstr "dosja" +msgid "folder name" +msgstr "emri i dosjes" -#: ../build/bin/conf_gen.h:721 +#: ../build/bin/conf_gen.h:770 msgctxt "preferences" msgid "RGB" msgstr "RGB" -#: ../build/bin/conf_gen.h:722 +#: ../build/bin/conf_gen.h:771 msgctxt "preferences" msgid "Lab" msgstr "Lab" -#: ../build/bin/conf_gen.h:723 +#: ../build/bin/conf_gen.h:772 msgctxt "preferences" msgid "LCh" msgstr "LCh" -#: ../build/bin/conf_gen.h:724 +#: ../build/bin/conf_gen.h:773 msgctxt "preferences" msgid "HSL" msgstr "HSL" -#: ../build/bin/conf_gen.h:725 +#: ../build/bin/conf_gen.h:774 msgctxt "preferences" msgid "Hex" msgstr "Hex" -#: ../build/bin/conf_gen.h:726 ../build/bin/conf_gen.h:1830 -#: ../build/bin/conf_gen.h:2488 ../build/bin/conf_gen.h:2790 -#: ../build/bin/conf_gen.h:3044 ../build/bin/preferences_gen.h:5577 -#: ../build/bin/preferences_gen.h:6561 +#: ../build/bin/conf_gen.h:775 ../build/bin/conf_gen.h:1916 +#: ../build/bin/conf_gen.h:2578 ../build/bin/conf_gen.h:2880 +#: ../build/bin/conf_gen.h:3136 msgctxt "preferences" msgid "none" msgstr "asnjë" -#: ../build/bin/conf_gen.h:734 +#: ../build/bin/conf_gen.h:783 msgctxt "preferences" msgid "mean" msgstr "mes" -#: ../build/bin/conf_gen.h:735 +#: ../build/bin/conf_gen.h:784 msgctxt "preferences" msgid "min" msgstr "min" -#: ../build/bin/conf_gen.h:736 +#: ../build/bin/conf_gen.h:785 msgctxt "preferences" msgid "max" msgstr "maks" -#: ../build/bin/conf_gen.h:924 +#: ../build/bin/conf_gen.h:973 msgid "select only new pictures" msgstr "përzgjedh vetëm fotot e reja" -#: ../build/bin/conf_gen.h:925 +#: ../build/bin/conf_gen.h:974 msgid "only select images that have not already been imported" msgstr "përzgjidhni vetëm imazhet e paimportuara paraprakisht" -#: ../build/bin/conf_gen.h:930 -msgid "ignore JPEG images" -msgstr "shpërfill imazhet JPEG" +#: ../build/bin/conf_gen.h:979 +msgid "ignore non-raw images" +msgstr "shpërfill imazhet jobruto" -#: ../build/bin/conf_gen.h:931 +#: ../build/bin/conf_gen.h:980 msgid "" -"when having raw+JPEG images together in one directory it makes no sense to " -"import both. with this flag one can ignore all JPEGs found." +"if enabled, only raw files will be allowed to import. non-raw files will not " +"be visible in the dialog and will not be imported." msgstr "" -"kur keni imazhe bruto+JPEG në një direktori është më praktike t'i importoni " -"të dyja. ky opsion i shpërfill JPEG-të e gjetura." +"kur aktivizohet, importimi do të lejohet vetëm për skedarët bruto. skedarët " +"jobruto nuk do të shfaqen, as importohen." -#: ../build/bin/conf_gen.h:936 +#: ../build/bin/conf_gen.h:985 msgid "apply metadata" msgstr "aplikoj metadatat" -#: ../build/bin/conf_gen.h:937 +#: ../build/bin/conf_gen.h:986 msgid "apply some metadata to all newly imported images." msgstr "aplikoni disa metadata në gjithë imazhet e importuara rishtas" -#: ../build/bin/conf_gen.h:942 +#: ../build/bin/conf_gen.h:991 msgid "recursive directory" msgstr "direktori rikursive" -#: ../build/bin/conf_gen.h:943 +#: ../build/bin/conf_gen.h:992 msgid "recursive directory traversal when importing filmrolls" msgstr "skanoni direktoritë në mënyrë rikursive gjatë importit të filmave" -#: ../build/bin/conf_gen.h:948 +#: ../build/bin/conf_gen.h:997 msgid "creator to be applied when importing" msgstr "krijuesi që aplikohet gjatë importit" -#: ../build/bin/conf_gen.h:954 +#: ../build/bin/conf_gen.h:1003 msgid "publisher to be applied when importing" msgstr "publikuesi që aplikohet gjatë importit" -#: ../build/bin/conf_gen.h:960 +#: ../build/bin/conf_gen.h:1009 msgid "rights to be applied when importing" msgstr "të drejtat që aplikohen gjatë importit" -#: ../build/bin/conf_gen.h:966 +#: ../build/bin/conf_gen.h:1015 msgid "comma separated tags to be applied when importing" msgstr "etiketat (me presje) që aplikohen gjatë importit" -#: ../build/bin/conf_gen.h:972 +#: ../build/bin/conf_gen.h:1021 msgid "import tags from XMP" msgstr "importoj etiketat nga XMP" -#: ../build/bin/conf_gen.h:998 +#: ../build/bin/conf_gen.h:1051 msgid "initial rating" msgstr "vlerësimi fillestar" -#: ../build/bin/conf_gen.h:999 +#: ../build/bin/conf_gen.h:1052 msgid "initial star rating for all images when importing a filmroll" msgstr "vlerësimi fillestar për imazhet gjatë importit të filmit" -#: ../build/bin/conf_gen.h:1004 +#: ../build/bin/conf_gen.h:1057 msgid "ignore EXIF rating" msgstr "shpërfill vlerësimin në EXIF" -#: ../build/bin/conf_gen.h:1005 +#: ../build/bin/conf_gen.h:1058 msgid "" "ignore EXIF rating. if not set and EXIF rating is found, it overrides " "'initial rating'" @@ -283,19 +248,19 @@ "nëse nuk caktohet dhe nëse gjendet vlerësimi në EXIF, 'vlerësimi fillestar' " "do të ndryshojë" -#: ../build/bin/conf_gen.h:1010 +#: ../build/bin/conf_gen.h:1063 msgid "import job" msgstr "importi" -#: ../build/bin/conf_gen.h:1011 +#: ../build/bin/conf_gen.h:1064 msgid "name of the import job" msgstr "emri i importit" -#: ../build/bin/conf_gen.h:1016 +#: ../build/bin/conf_gen.h:1069 msgid "override today's date" msgstr "ndryshimi i datës së sotme" -#: ../build/bin/conf_gen.h:1017 +#: ../build/bin/conf_gen.h:1070 msgid "" "type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override " "the current date/time used when expanding variables:\n" @@ -307,195 +272,192 @@ "$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS), $(MSEC).\n" "përndryshe lëreni bosh fushën" -#: ../build/bin/conf_gen.h:1022 +#: ../build/bin/conf_gen.h:1075 msgid "keep this window open" msgstr "mbaj hapur dritaren" -#: ../build/bin/conf_gen.h:1023 +#: ../build/bin/conf_gen.h:1076 msgid "keep this window open to run several imports" msgstr "mbajeni hapur dritaren kur kryeni disa importe" -#: ../build/bin/conf_gen.h:1180 ../build/bin/conf_gen.h:1196 -#: ../build/bin/preferences_gen.h:4107 ../build/bin/preferences_gen.h:4202 +#: ../build/bin/conf_gen.h:1233 ../build/bin/conf_gen.h:1249 +#: ../build/bin/conf_gen.h:1277 msgctxt "preferences" msgid "VGA" msgstr "VGA" -#: ../build/bin/conf_gen.h:1181 ../build/bin/conf_gen.h:1197 -#: ../build/bin/preferences_gen.h:4112 ../build/bin/preferences_gen.h:4207 -#: ../build/bin/preferences_gen.h:4251 +#: ../build/bin/conf_gen.h:1234 ../build/bin/conf_gen.h:1250 +#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4782 msgctxt "preferences" msgid "720p" msgstr "720p" -#: ../build/bin/conf_gen.h:1182 ../build/bin/conf_gen.h:1198 -#: ../build/bin/preferences_gen.h:4117 ../build/bin/preferences_gen.h:4212 +#: ../build/bin/conf_gen.h:1235 ../build/bin/conf_gen.h:1251 +#: ../build/bin/conf_gen.h:1279 msgctxt "preferences" msgid "1080p" msgstr "1080p" -#: ../build/bin/conf_gen.h:1183 ../build/bin/conf_gen.h:1199 -#: ../build/bin/preferences_gen.h:4122 ../build/bin/preferences_gen.h:4217 +#: ../build/bin/conf_gen.h:1236 ../build/bin/conf_gen.h:1252 +#: ../build/bin/conf_gen.h:1280 msgctxt "preferences" msgid "WQXGA" msgstr "WQXGA" -#: ../build/bin/conf_gen.h:1184 ../build/bin/conf_gen.h:1200 -#: ../build/bin/preferences_gen.h:4127 ../build/bin/preferences_gen.h:4222 +#: ../build/bin/conf_gen.h:1237 ../build/bin/conf_gen.h:1253 +#: ../build/bin/conf_gen.h:1281 msgctxt "preferences" msgid "4K" msgstr "4K" -#: ../build/bin/conf_gen.h:1185 ../build/bin/conf_gen.h:1201 -#: ../build/bin/preferences_gen.h:4132 ../build/bin/preferences_gen.h:4227 +#: ../build/bin/conf_gen.h:1238 ../build/bin/conf_gen.h:1254 +#: ../build/bin/conf_gen.h:1282 msgctxt "preferences" msgid "5K" msgstr "5K" -#: ../build/bin/conf_gen.h:1228 +#: ../build/bin/conf_gen.h:1314 msgctxt "preferences" msgid "off" msgstr "fikur" -#: ../build/bin/conf_gen.h:1229 +#: ../build/bin/conf_gen.h:1315 msgctxt "preferences" msgid "hardness (relative)" msgstr "fortësia (relative)" -#: ../build/bin/conf_gen.h:1230 +#: ../build/bin/conf_gen.h:1316 msgctxt "preferences" msgid "hardness (absolute)" msgstr "fortësia (absolute)" -#: ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1317 msgctxt "preferences" msgid "opacity (relative)" msgstr "tejdukshmëria (relative)" -#: ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1318 msgctxt "preferences" msgid "opacity (absolute)" msgstr "tejdukshmëria (absolute)" -#: ../build/bin/conf_gen.h:1233 +#: ../build/bin/conf_gen.h:1319 msgctxt "preferences" msgid "brush size (relative)" msgstr "madhësia e penelit (relative)" -#: ../build/bin/conf_gen.h:1241 +#: ../build/bin/conf_gen.h:1327 msgctxt "preferences" msgid "low" msgstr "e ulët" -#: ../build/bin/conf_gen.h:1242 +#: ../build/bin/conf_gen.h:1328 msgctxt "preferences" msgid "medium" msgstr "mesatare" -#: ../build/bin/conf_gen.h:1243 +#: ../build/bin/conf_gen.h:1329 msgctxt "preferences" msgid "high" msgstr "e lartë" -#: ../build/bin/conf_gen.h:1263 ../build/bin/preferences_gen.h:4836 -#: ../build/bin/preferences_gen.h:4860 +#: ../build/bin/conf_gen.h:1349 ../build/bin/preferences_gen.h:5405 msgctxt "preferences" msgid "false color" msgstr "ngjyrë false" -#: ../build/bin/conf_gen.h:1264 ../build/bin/preferences_gen.h:4841 +#: ../build/bin/conf_gen.h:1350 msgctxt "preferences" msgid "grayscale" msgstr "ngjyrë gri" -#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4567 +#: ../build/bin/conf_gen.h:1364 msgctxt "preferences" msgid "top left" msgstr "majtas lart" -#: ../build/bin/conf_gen.h:1279 ../build/bin/preferences_gen.h:4572 +#: ../build/bin/conf_gen.h:1365 msgctxt "preferences" msgid "top right" msgstr "djathtas lart" -#: ../build/bin/conf_gen.h:1280 ../build/bin/preferences_gen.h:4577 +#: ../build/bin/conf_gen.h:1366 msgctxt "preferences" msgid "top center" msgstr "qendër lart" -#: ../build/bin/conf_gen.h:1281 ../build/bin/preferences_gen.h:4582 -#: ../build/bin/preferences_gen.h:4606 +#: ../build/bin/conf_gen.h:1367 ../build/bin/preferences_gen.h:5217 msgctxt "preferences" msgid "bottom" msgstr "poshtë" -#: ../build/bin/conf_gen.h:1282 ../build/bin/preferences_gen.h:4587 +#: ../build/bin/conf_gen.h:1368 msgctxt "preferences" msgid "hidden" msgstr "fshehur" -#: ../build/bin/conf_gen.h:1792 +#: ../build/bin/conf_gen.h:1878 msgid "show OSD" msgstr "tregoj shpjegimet" -#: ../build/bin/conf_gen.h:1793 +#: ../build/bin/conf_gen.h:1879 msgid "toggle the visibility of the map overlays" msgstr "përdorni shtresat e posaçme të hartës" -#: ../build/bin/conf_gen.h:1798 ../src/libs/map_settings.c:146 +#: ../build/bin/conf_gen.h:1884 ../src/libs/map_settings.c:119 msgid "filtered images" msgstr "imazhet e filtruara" -#: ../build/bin/conf_gen.h:1799 +#: ../build/bin/conf_gen.h:1885 msgid "when set limit the images drawn to the current filmstrip" msgstr "caktoni sasinë e imazheve që mund të shfaqen në filmin aktual" -#: ../build/bin/conf_gen.h:1806 +#: ../build/bin/conf_gen.h:1892 msgid "max images" msgstr "imazhet maksimale" -#: ../build/bin/conf_gen.h:1807 +#: ../build/bin/conf_gen.h:1893 msgid "the maximum number of image thumbnails drawn on the map" msgstr "numri maksimal i miniaturave të imazheve që mund të shfaqen në hartë" -#: ../build/bin/conf_gen.h:1814 +#: ../build/bin/conf_gen.h:1900 msgid "group size factor" msgstr "madhësia e grupit" -#: ../build/bin/conf_gen.h:1815 +#: ../build/bin/conf_gen.h:1901 msgid "" "increase or decrease the spatial size of images groups on the map. can " "influence the calculation time" msgstr "" -"rritni ose zvogëloni përmasën hapësinore që zë grupi i imazheve në hartë. " -"mund të vonojë llogaritjen" +"rritni ose ulni përmasën hapësinore që zë grupi i imazheve në hartë. mund të " +"vonojë llogaritjen" -#: ../build/bin/conf_gen.h:1822 +#: ../build/bin/conf_gen.h:1908 msgid "min images per group" msgstr "imazhet minimale për grup" -#: ../build/bin/conf_gen.h:1823 +#: ../build/bin/conf_gen.h:1909 msgid "" "the minimum number of images to set up an images group. can influence the " "calculation time." msgstr "" "numri minimal i imazheve që përbëjnë një grup. mund të vonojë llogaritjen." -#: ../build/bin/conf_gen.h:1828 +#: ../build/bin/conf_gen.h:1914 msgctxt "preferences" msgid "thumbnail" msgstr "miniatura" -#: ../build/bin/conf_gen.h:1829 +#: ../build/bin/conf_gen.h:1915 msgctxt "preferences" msgid "count" msgstr "numri" -#: ../build/bin/conf_gen.h:1832 ../src/libs/map_settings.c:159 +#: ../build/bin/conf_gen.h:1918 msgid "thumbnail display" msgstr "shfaqja e miniaturave" -#: ../build/bin/conf_gen.h:1833 +#: ../build/bin/conf_gen.h:1919 msgid "" "three options are available: images thumbnails, only the count of images of " "the group or nothing" @@ -503,266 +465,257 @@ "keni tre mundësi: miniaturat e imazheve, vetëm numrin e imazheve në grup ose " "asnjë" -#: ../build/bin/conf_gen.h:1844 +#: ../build/bin/conf_gen.h:1930 msgid "max polygon points" msgstr "pikat poligonale maksimale" -#: ../build/bin/conf_gen.h:1845 +#: ../build/bin/conf_gen.h:1931 msgid "" "limit the number of points imported with polygon in find location module" msgstr "numri i pikave poligonale që importohen për gjetjen e vendndodhjes" -#: ../build/bin/conf_gen.h:2135 ../build/bin/preferences_gen.h:4722 -#: ../build/bin/preferences_gen.h:4756 +#: ../build/bin/conf_gen.h:2221 ../build/bin/preferences_gen.h:5329 msgctxt "preferences" msgid "original" msgstr "origjinali" -#: ../build/bin/conf_gen.h:2136 ../build/bin/preferences_gen.h:4727 +#: ../build/bin/conf_gen.h:2222 msgctxt "preferences" msgid "to 1/2" msgstr "në 1/2" -#: ../build/bin/conf_gen.h:2137 ../build/bin/preferences_gen.h:4732 +#: ../build/bin/conf_gen.h:2223 msgctxt "preferences" msgid "to 1/3" msgstr "në 1/3" -#: ../build/bin/conf_gen.h:2138 ../build/bin/preferences_gen.h:4737 +#: ../build/bin/conf_gen.h:2224 msgctxt "preferences" msgid "to 1/4" msgstr "në 1/4" -#: ../build/bin/conf_gen.h:2152 ../build/bin/conf_gen.h:2162 -#: ../build/bin/preferences_gen.h:5384 ../build/bin/preferences_gen.h:5449 +#: ../build/bin/conf_gen.h:2244 ../build/bin/conf_gen.h:2254 msgctxt "preferences" msgid "bilinear" msgstr "bilinear" -#: ../build/bin/conf_gen.h:2153 ../build/bin/conf_gen.h:2163 -#: ../build/bin/preferences_gen.h:5389 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5454 +#: ../build/bin/conf_gen.h:2245 ../build/bin/conf_gen.h:2255 +#: ../build/bin/preferences_gen.h:5847 msgctxt "preferences" msgid "bicubic" msgstr "bicubic" -#: ../build/bin/conf_gen.h:2154 ../build/bin/conf_gen.h:2164 -#: ../build/bin/preferences_gen.h:5394 ../build/bin/preferences_gen.h:5459 +#: ../build/bin/conf_gen.h:2246 ../build/bin/conf_gen.h:2256 msgctxt "preferences" msgid "lanczos2" msgstr "lanczos2" -#: ../build/bin/conf_gen.h:2165 ../build/bin/preferences_gen.h:5464 -#: ../build/bin/preferences_gen.h:5483 +#: ../build/bin/conf_gen.h:2257 ../build/bin/preferences_gen.h:5882 msgctxt "preferences" msgid "lanczos3" msgstr "lanczos3" -#: ../build/bin/conf_gen.h:2487 ../build/bin/conf_gen.h:3217 -#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:6556 -#: ../build/bin/preferences_gen.h:6592 +#: ../build/bin/conf_gen.h:2577 ../build/bin/conf_gen.h:3303 +#: ../build/bin/preferences_gen.h:7032 msgctxt "preferences" msgid "auto" msgstr "auto" -#: ../build/bin/conf_gen.h:2489 ../build/bin/preferences_gen.h:6566 +#: ../build/bin/conf_gen.h:2579 msgctxt "preferences" msgid "libsecret" msgstr "libsecret" -#: ../build/bin/conf_gen.h:2490 ../build/bin/preferences_gen.h:6572 +#: ../build/bin/conf_gen.h:2580 msgctxt "preferences" msgid "kwallet" msgstr "kwallet" -#: ../build/bin/conf_gen.h:2700 +#: ../build/bin/conf_gen.h:2790 msgctxt "preferences" msgid "vectorscope" msgstr "vektorskop" -#: ../build/bin/conf_gen.h:2701 +#: ../build/bin/conf_gen.h:2791 msgctxt "preferences" msgid "waveform" msgstr "valëzor" -#: ../build/bin/conf_gen.h:2702 +#: ../build/bin/conf_gen.h:2792 msgctxt "preferences" msgid "RGB parade" msgstr "paradë RGB" -#: ../build/bin/conf_gen.h:2703 +#: ../build/bin/conf_gen.h:2793 msgctxt "preferences" msgid "histogram" msgstr "histogram" -#: ../build/bin/conf_gen.h:2711 ../build/bin/preferences_gen.h:7264 +#: ../build/bin/conf_gen.h:2801 msgctxt "preferences" msgid "left" msgstr "majtas" -#: ../build/bin/conf_gen.h:2712 ../build/bin/preferences_gen.h:7269 -#: ../build/bin/preferences_gen.h:7288 +#: ../build/bin/conf_gen.h:2802 ../build/bin/preferences_gen.h:7619 msgctxt "preferences" msgid "right" msgstr "djathtas" -#: ../build/bin/conf_gen.h:2720 ../build/bin/conf_gen.h:2757 +#: ../build/bin/conf_gen.h:2810 ../build/bin/conf_gen.h:2847 msgctxt "preferences" msgid "logarithmic" msgstr "logaritmik" -#: ../build/bin/conf_gen.h:2721 ../build/bin/conf_gen.h:2758 +#: ../build/bin/conf_gen.h:2811 ../build/bin/conf_gen.h:2848 msgctxt "preferences" msgid "linear" msgstr "linear" -#: ../build/bin/conf_gen.h:2729 +#: ../build/bin/conf_gen.h:2819 msgctxt "preferences" msgid "horizontal" msgstr "horizontalisht" -#: ../build/bin/conf_gen.h:2730 +#: ../build/bin/conf_gen.h:2820 msgctxt "preferences" msgid "vertical" msgstr "vertikalisht" -#: ../build/bin/conf_gen.h:2738 +#: ../build/bin/conf_gen.h:2828 msgctxt "preferences" msgid "overlaid" msgstr "mbishtresoj" -#: ../build/bin/conf_gen.h:2739 +#: ../build/bin/conf_gen.h:2829 msgctxt "preferences" msgid "parade" msgstr "paradë" -#: ../build/bin/conf_gen.h:2747 +#: ../build/bin/conf_gen.h:2837 msgctxt "preferences" msgid "u*v*" msgstr "u*v*" -#: ../build/bin/conf_gen.h:2748 +#: ../build/bin/conf_gen.h:2838 msgctxt "preferences" msgid "AzBz" msgstr "AzBz" -#: ../build/bin/conf_gen.h:2749 +#: ../build/bin/conf_gen.h:2839 msgctxt "preferences" msgid "RYB" msgstr "RYB" -#: ../build/bin/conf_gen.h:2791 +#: ../build/bin/conf_gen.h:2881 msgctxt "preferences" msgid "monochromatic" msgstr "monokromatike" -#: ../build/bin/conf_gen.h:2792 +#: ../build/bin/conf_gen.h:2882 msgctxt "preferences" msgid "analogous" msgstr "analoge" -#: ../build/bin/conf_gen.h:2793 +#: ../build/bin/conf_gen.h:2883 msgctxt "preferences" msgid "analogous complementary" msgstr "plotësuese analoge" -#: ../build/bin/conf_gen.h:2794 +#: ../build/bin/conf_gen.h:2884 msgctxt "preferences" msgid "complementary" msgstr "plotësuese" -#: ../build/bin/conf_gen.h:2795 +#: ../build/bin/conf_gen.h:2885 msgctxt "preferences" msgid "split complementary" msgstr "plotësuese të ndara" -#: ../build/bin/conf_gen.h:2796 +#: ../build/bin/conf_gen.h:2886 msgctxt "preferences" msgid "dyad" msgstr "dyshe" -#: ../build/bin/conf_gen.h:2797 +#: ../build/bin/conf_gen.h:2887 msgctxt "preferences" msgid "triad" msgstr "treshe" -#: ../build/bin/conf_gen.h:2798 +#: ../build/bin/conf_gen.h:2888 msgctxt "preferences" msgid "tetrad" msgstr "katërshe" -#: ../build/bin/conf_gen.h:2799 +#: ../build/bin/conf_gen.h:2889 msgctxt "preferences" msgid "square" msgstr "katrore" -#: ../build/bin/conf_gen.h:2813 +#: ../build/bin/conf_gen.h:2903 msgctxt "preferences" msgid "normal" msgstr "normale" -#: ../build/bin/conf_gen.h:2815 +#: ../build/bin/conf_gen.h:2905 msgctxt "preferences" msgid "narrow" msgstr "ngushtë" -#: ../build/bin/conf_gen.h:2816 +#: ../build/bin/conf_gen.h:2906 msgctxt "preferences" msgid "line" msgstr "vija" -#: ../build/bin/conf_gen.h:2956 +#: ../build/bin/conf_gen.h:3046 msgctxt "preferences" msgid "mm" msgstr "mm" -#: ../build/bin/conf_gen.h:2957 +#: ../build/bin/conf_gen.h:3047 msgctxt "preferences" msgid "cm" msgstr "cm" -#: ../build/bin/conf_gen.h:2958 +#: ../build/bin/conf_gen.h:3048 msgctxt "preferences" msgid "inch" msgstr "inç" -#: ../build/bin/conf_gen.h:3003 ../build/bin/preferences_gen.h:7324 -#: ../build/bin/preferences_gen.h:7353 +#: ../build/bin/conf_gen.h:3093 ../build/bin/preferences_gen.h:7654 msgctxt "preferences" msgid "all" msgstr "të gjitha" -#: ../build/bin/conf_gen.h:3004 ../build/bin/preferences_gen.h:7329 +#: ../build/bin/conf_gen.h:3094 msgctxt "preferences" msgid "xatom" msgstr "xatom" -#: ../build/bin/conf_gen.h:3005 ../build/bin/preferences_gen.h:7334 +#: ../build/bin/conf_gen.h:3095 msgctxt "preferences" msgid "colord" msgstr "colord" -#: ../build/bin/conf_gen.h:3041 ../build/bin/preferences_gen.h:5562 -#: ../build/bin/preferences_gen.h:5596 +#: ../build/bin/conf_gen.h:3133 ../build/bin/preferences_gen.h:5958 msgctxt "preferences" msgid "scene-referred (filmic)" msgstr "sipas skenës (filmik)" -#: ../build/bin/conf_gen.h:3042 ../build/bin/preferences_gen.h:5567 +#: ../build/bin/conf_gen.h:3134 msgctxt "preferences" msgid "scene-referred (sigmoid)" msgstr "sipas skenës (sigmoid)" -#: ../build/bin/conf_gen.h:3043 ../build/bin/preferences_gen.h:5572 +#: ../build/bin/conf_gen.h:3135 msgctxt "preferences" msgid "display-referred (legacy)" msgstr "sipas ekranit (e trashëguar)" -#: ../build/bin/conf_gen.h:3144 +#: ../build/bin/conf_gen.h:3230 msgid "camera time zone" msgstr "ora lokale e kamerës" -#: ../build/bin/conf_gen.h:3145 +#: ../build/bin/conf_gen.h:3231 msgid "" "most cameras don't store the time zone in EXIF. give the correct time zone " "so the GPX data can be correctly matched" @@ -770,212 +723,272 @@ "shumica e kamerave nuk e ruajnë orën lokale në EXIF. jepni orën e saktë " "lokale për të barazuar të dhënat gpx" -#: ../build/bin/conf_gen.h:3156 +#: ../build/bin/conf_gen.h:3242 msgctxt "preferences" msgid "no color" msgstr "pa ngjyra" -#: ../build/bin/conf_gen.h:3157 +#: ../build/bin/conf_gen.h:3243 msgctxt "preferences" msgid "illuminant color" msgstr "ngjyra e iluminantit" -#: ../build/bin/conf_gen.h:3158 +#: ../build/bin/conf_gen.h:3244 msgctxt "preferences" msgid "effect emulation" msgstr "imitimi i efektit" -#: ../build/bin/conf_gen.h:3204 +#: ../build/bin/conf_gen.h:3290 msgctxt "preferences" msgid "list" msgstr "lista" -#: ../build/bin/conf_gen.h:3205 +#: ../build/bin/conf_gen.h:3291 msgctxt "preferences" msgid "tabs" msgstr "skedat" -#: ../build/bin/conf_gen.h:3206 +#: ../build/bin/conf_gen.h:3292 msgctxt "preferences" msgid "columns" msgstr "shtyllat" -#: ../build/bin/conf_gen.h:3215 ../build/bin/preferences_gen.h:5117 +#: ../build/bin/conf_gen.h:3301 msgctxt "preferences" msgid "active" msgstr "aktiv" -#: ../build/bin/conf_gen.h:3216 ../build/bin/preferences_gen.h:5122 +#: ../build/bin/conf_gen.h:3302 msgctxt "preferences" msgid "dim" msgstr "errësoj" -#: ../build/bin/conf_gen.h:3218 ../build/bin/preferences_gen.h:5132 +#: ../build/bin/conf_gen.h:3304 msgctxt "preferences" msgid "fade" msgstr "zbeh" -#: ../build/bin/conf_gen.h:3219 ../build/bin/preferences_gen.h:5137 +#: ../build/bin/conf_gen.h:3305 msgctxt "preferences" msgid "fit" msgstr "përshtat" -#: ../build/bin/conf_gen.h:3220 ../build/bin/preferences_gen.h:5142 +#: ../build/bin/conf_gen.h:3306 msgctxt "preferences" msgid "smooth" msgstr "e butë" -#: ../build/bin/conf_gen.h:3221 ../build/bin/preferences_gen.h:5147 +#: ../build/bin/conf_gen.h:3307 msgctxt "preferences" msgid "glide" msgstr "pluskoj" -#: ../build/bin/preferences_gen.h:81 ../build/bin/preferences_gen.h:3823 -#: ../build/bin/preferences_gen.h:3859 ../build/bin/preferences_gen.h:3895 -#: ../build/bin/preferences_gen.h:3931 ../build/bin/preferences_gen.h:3967 -#: ../build/bin/preferences_gen.h:4003 ../build/bin/preferences_gen.h:4039 -#: ../build/bin/preferences_gen.h:4083 ../build/bin/preferences_gen.h:4178 -#: ../build/bin/preferences_gen.h:4273 ../build/bin/preferences_gen.h:4313 -#: ../build/bin/preferences_gen.h:4356 ../build/bin/preferences_gen.h:4437 -#: ../build/bin/preferences_gen.h:4473 ../build/bin/preferences_gen.h:4510 -#: ../build/bin/preferences_gen.h:4553 ../build/bin/preferences_gen.h:4627 -#: ../build/bin/preferences_gen.h:4672 ../build/bin/preferences_gen.h:4708 -#: ../build/bin/preferences_gen.h:4778 ../build/bin/preferences_gen.h:4822 -#: ../build/bin/preferences_gen.h:4882 ../build/bin/preferences_gen.h:4918 -#: ../build/bin/preferences_gen.h:4954 ../build/bin/preferences_gen.h:4990 -#: ../build/bin/preferences_gen.h:5026 ../build/bin/preferences_gen.h:5062 -#: ../build/bin/preferences_gen.h:5098 ../build/bin/preferences_gen.h:5188 -#: ../build/bin/preferences_gen.h:5224 ../build/bin/preferences_gen.h:5260 -#: ../build/bin/preferences_gen.h:5334 ../build/bin/preferences_gen.h:5370 -#: ../build/bin/preferences_gen.h:5435 ../build/bin/preferences_gen.h:5505 -#: ../build/bin/preferences_gen.h:5548 ../build/bin/preferences_gen.h:5618 -#: ../build/bin/preferences_gen.h:5654 ../build/bin/preferences_gen.h:5690 -#: ../build/bin/preferences_gen.h:5734 ../build/bin/preferences_gen.h:5805 -#: ../build/bin/preferences_gen.h:5841 ../build/bin/preferences_gen.h:5877 -#: ../build/bin/preferences_gen.h:5913 ../build/bin/preferences_gen.h:5955 -#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6140 -#: ../build/bin/preferences_gen.h:6176 ../build/bin/preferences_gen.h:6212 -#: ../build/bin/preferences_gen.h:6248 ../build/bin/preferences_gen.h:6284 -#: ../build/bin/preferences_gen.h:6320 ../build/bin/preferences_gen.h:6356 -#: ../build/bin/preferences_gen.h:6392 ../build/bin/preferences_gen.h:6427 -#: ../build/bin/preferences_gen.h:6462 ../build/bin/preferences_gen.h:6498 -#: ../build/bin/preferences_gen.h:6542 ../build/bin/preferences_gen.h:6614 -#: ../build/bin/preferences_gen.h:6692 ../build/bin/preferences_gen.h:6767 -#: ../build/bin/preferences_gen.h:6820 ../build/bin/preferences_gen.h:6885 -#: ../build/bin/preferences_gen.h:6950 ../build/bin/preferences_gen.h:7024 -#: ../build/bin/preferences_gen.h:7060 ../build/bin/preferences_gen.h:7096 -#: ../build/bin/preferences_gen.h:7132 ../build/bin/preferences_gen.h:7168 -#: ../build/bin/preferences_gen.h:7204 ../build/bin/preferences_gen.h:7250 -#: ../build/bin/preferences_gen.h:7310 ../build/bin/preferences_gen.h:7375 -#: ../build/bin/preferences_gen.h:7429 ../build/bin/preferences_gen.h:7474 -#: ../build/bin/preferences_gen.h:7510 ../build/bin/preferences_gen.h:7546 -#: ../build/bin/preferences_gen.h:7582 ../build/bin/preferences_gen.h:7618 -#: ../build/bin/preferences_gen.h:7678 ../build/bin/preferences_gen.h:7722 -#: ../build/bin/preferences_gen.h:7766 ../build/bin/preferences_gen.h:7848 -#: ../build/bin/preferences_gen.h:7888 ../build/bin/preferences_gen.h:7928 -#: ../build/bin/preferences_gen.h:7964 ../build/bin/preferences_gen.h:8019 -#: ../build/bin/preferences_gen.h:8055 ../build/bin/preferences_gen.h:8115 -#: ../build/bin/preferences_gen.h:8161 ../build/bin/preferences_gen.h:8197 -#: ../build/bin/preferences_gen.h:8243 ../build/bin/preferences_gen.h:8303 -#: ../build/bin/preferences_gen.h:8355 ../build/bin/preferences_gen.h:8401 -#: ../build/bin/preferences_gen.h:8469 ../build/bin/preferences_gen.h:8516 +#: ../build/bin/preferences_gen.h:77 ../build/bin/preferences_gen.h:4305 +#: ../build/bin/preferences_gen.h:4344 ../build/bin/preferences_gen.h:4383 +#: ../build/bin/preferences_gen.h:4417 ../build/bin/preferences_gen.h:4488 +#: ../build/bin/preferences_gen.h:4522 ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:4590 ../build/bin/preferences_gen.h:4624 +#: ../build/bin/preferences_gen.h:4658 ../build/bin/preferences_gen.h:4692 +#: ../build/bin/preferences_gen.h:4733 ../build/bin/preferences_gen.h:4768 +#: ../build/bin/preferences_gen.h:4803 ../build/bin/preferences_gen.h:4837 +#: ../build/bin/preferences_gen.h:4871 ../build/bin/preferences_gen.h:4906 +#: ../build/bin/preferences_gen.h:4940 ../build/bin/preferences_gen.h:4979 +#: ../build/bin/preferences_gen.h:5020 ../build/bin/preferences_gen.h:5093 +#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:5162 +#: ../build/bin/preferences_gen.h:5203 ../build/bin/preferences_gen.h:5237 +#: ../build/bin/preferences_gen.h:5281 ../build/bin/preferences_gen.h:5315 +#: ../build/bin/preferences_gen.h:5350 ../build/bin/preferences_gen.h:5391 +#: ../build/bin/preferences_gen.h:5426 ../build/bin/preferences_gen.h:5460 +#: ../build/bin/preferences_gen.h:5494 ../build/bin/preferences_gen.h:5528 +#: ../build/bin/preferences_gen.h:5562 ../build/bin/preferences_gen.h:5596 +#: ../build/bin/preferences_gen.h:5630 ../build/bin/preferences_gen.h:5665 +#: ../build/bin/preferences_gen.h:5699 ../build/bin/preferences_gen.h:5733 +#: ../build/bin/preferences_gen.h:5799 ../build/bin/preferences_gen.h:5833 +#: ../build/bin/preferences_gen.h:5868 ../build/bin/preferences_gen.h:5903 +#: ../build/bin/preferences_gen.h:5944 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/preferences_gen.h:6013 ../build/bin/preferences_gen.h:6047 +#: ../build/bin/preferences_gen.h:6088 ../build/bin/preferences_gen.h:6124 +#: ../build/bin/preferences_gen.h:6165 ../build/bin/preferences_gen.h:6209 +#: ../build/bin/preferences_gen.h:6254 ../build/bin/preferences_gen.h:6305 +#: ../build/bin/preferences_gen.h:6349 ../build/bin/preferences_gen.h:6393 +#: ../build/bin/preferences_gen.h:6437 ../build/bin/preferences_gen.h:6481 +#: ../build/bin/preferences_gen.h:6525 ../build/bin/preferences_gen.h:6569 +#: ../build/bin/preferences_gen.h:6635 ../build/bin/preferences_gen.h:6669 +#: ../build/bin/preferences_gen.h:6703 ../build/bin/preferences_gen.h:6737 +#: ../build/bin/preferences_gen.h:6771 ../build/bin/preferences_gen.h:6805 +#: ../build/bin/preferences_gen.h:6839 ../build/bin/preferences_gen.h:6873 +#: ../build/bin/preferences_gen.h:6906 ../build/bin/preferences_gen.h:6939 +#: ../build/bin/preferences_gen.h:6973 ../build/bin/preferences_gen.h:7014 +#: ../build/bin/preferences_gen.h:7053 ../build/bin/preferences_gen.h:7124 +#: ../build/bin/preferences_gen.h:7159 ../build/bin/preferences_gen.h:7210 +#: ../build/bin/preferences_gen.h:7245 ../build/bin/preferences_gen.h:7280 +#: ../build/bin/preferences_gen.h:7324 ../build/bin/preferences_gen.h:7390 +#: ../build/bin/preferences_gen.h:7424 ../build/bin/preferences_gen.h:7458 +#: ../build/bin/preferences_gen.h:7492 ../build/bin/preferences_gen.h:7526 +#: ../build/bin/preferences_gen.h:7560 ../build/bin/preferences_gen.h:7605 +#: ../build/bin/preferences_gen.h:7640 ../build/bin/preferences_gen.h:7675 +#: ../build/bin/preferences_gen.h:7731 ../build/bin/preferences_gen.h:7772 +#: ../build/bin/preferences_gen.h:7806 ../build/bin/preferences_gen.h:7840 +#: ../build/bin/preferences_gen.h:7874 ../build/bin/preferences_gen.h:7908 +#: ../build/bin/preferences_gen.h:7943 ../build/bin/preferences_gen.h:7984 +#: ../build/bin/preferences_gen.h:8025 ../build/bin/preferences_gen.h:8085 +#: ../build/bin/preferences_gen.h:8119 ../build/bin/preferences_gen.h:8154 +#: ../build/bin/preferences_gen.h:8199 ../build/bin/preferences_gen.h:8233 +#: ../build/bin/preferences_gen.h:8278 ../build/bin/preferences_gen.h:8313 +#: ../build/bin/preferences_gen.h:8365 ../build/bin/preferences_gen.h:8410 +#: ../build/bin/preferences_gen.h:8480 ../build/bin/preferences_gen.h:8526 msgid "this setting has been modified" msgstr "parametri është modifikuar" #. doesn't seem to work from gtkrc -#: ../build/bin/preferences_gen.h:3793 ../build/bin/preferences_gen.h:4407 -#: ../build/bin/preferences_gen.h:5304 ../build/bin/preferences_gen.h:6110 -#: ../build/bin/preferences_gen.h:6662 ../build/bin/preferences_gen.h:6994 -#: ../build/bin/preferences_gen.h:7818 ../src/gui/accelerators.c:2724 -#: ../src/gui/gtk.c:2580 ../src/gui/preferences.c:421 -#: ../src/gui/preferences.c:876 ../src/libs/modulegroups.c:3886 +#: ../build/bin/preferences_gen.h:4277 ../build/bin/preferences_gen.h:4460 +#: ../build/bin/preferences_gen.h:5065 ../build/bin/preferences_gen.h:5771 +#: ../build/bin/preferences_gen.h:6607 ../build/bin/preferences_gen.h:7096 +#: ../build/bin/preferences_gen.h:7362 ../src/gui/accelerators.c:2996 +#: ../src/gui/gtk.c:2641 ../src/gui/preferences.c:424 +#: ../src/gui/preferences.c:874 ../src/libs/modulegroups.c:3888 msgid "?" msgstr "?" -#: ../build/bin/preferences_gen.h:3806 ../build/bin/preferences_gen.h:4420 -#: ../build/bin/preferences_gen.h:6123 ../src/gui/preferences.c:270 -msgid "general" -msgstr "përgjithësi" +#: ../build/bin/preferences_gen.h:4287 ../src/control/jobs/control_jobs.c:2352 +#: ../src/libs/import.c:173 +msgid "import" +msgstr "importoj" -#: ../build/bin/preferences_gen.h:3826 -msgid "hide built-in presets for utility modules" -msgstr "fsheh vlerat e paracaktuara për modulet utilitare" +#: ../build/bin/preferences_gen.h:4289 +msgid "session options" +msgstr "opsionet e sesionit" + +#: ../build/bin/preferences_gen.h:4308 +msgid "base directory naming pattern" +msgstr "modeli i emërtimit të direktorisë bazë" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4017 -#: ../build/bin/preferences_gen.h:4053 ../build/bin/preferences_gen.h:4156 -#: ../build/bin/preferences_gen.h:4251 ../build/bin/preferences_gen.h:4291 -#: ../build/bin/preferences_gen.h:4334 ../build/bin/preferences_gen.h:4377 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4531 ../build/bin/preferences_gen.h:4606 -#: ../build/bin/preferences_gen.h:4686 ../build/bin/preferences_gen.h:4756 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4860 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5040 ../build/bin/preferences_gen.h:5076 -#: ../build/bin/preferences_gen.h:5166 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5274 -#: ../build/bin/preferences_gen.h:5348 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5483 ../build/bin/preferences_gen.h:5525 -#: ../build/bin/preferences_gen.h:5596 ../build/bin/preferences_gen.h:5632 -#: ../build/bin/preferences_gen.h:5668 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5782 ../build/bin/preferences_gen.h:5819 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:5927 ../build/bin/preferences_gen.h:5998 -#: ../build/bin/preferences_gen.h:6074 ../build/bin/preferences_gen.h:6154 -#: ../build/bin/preferences_gen.h:6190 ../build/bin/preferences_gen.h:6226 -#: ../build/bin/preferences_gen.h:6262 ../build/bin/preferences_gen.h:6298 -#: ../build/bin/preferences_gen.h:6334 ../build/bin/preferences_gen.h:6370 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:6592 ../build/bin/preferences_gen.h:6632 -#: ../build/bin/preferences_gen.h:6745 ../build/bin/preferences_gen.h:6863 -#: ../build/bin/preferences_gen.h:6928 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7146 -#: ../build/bin/preferences_gen.h:7182 ../build/bin/preferences_gen.h:7288 -#: ../build/bin/preferences_gen.h:7353 ../build/bin/preferences_gen.h:7393 -#: ../build/bin/preferences_gen.h:7443 ../build/bin/preferences_gen.h:7488 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7656 -#: ../build/bin/preferences_gen.h:7692 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:7866 ../build/bin/preferences_gen.h:7906 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:7982 -#: ../build/bin/preferences_gen.h:8033 ../build/bin/preferences_gen.h:8093 -#: ../build/bin/preferences_gen.h:8175 ../build/bin/preferences_gen.h:8281 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4323 ../build/bin/preferences_gen.h:4362 +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4435 +#: ../build/bin/preferences_gen.h:4501 ../build/bin/preferences_gen.h:4535 +#: ../build/bin/preferences_gen.h:4569 ../build/bin/preferences_gen.h:4603 +#: ../build/bin/preferences_gen.h:4637 ../build/bin/preferences_gen.h:4671 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4747 +#: ../build/bin/preferences_gen.h:4782 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:4850 ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:4958 +#: ../build/bin/preferences_gen.h:4999 ../build/bin/preferences_gen.h:5040 +#: ../build/bin/preferences_gen.h:5106 ../build/bin/preferences_gen.h:5140 +#: ../build/bin/preferences_gen.h:5182 ../build/bin/preferences_gen.h:5217 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5329 +#: ../build/bin/preferences_gen.h:5363 ../build/bin/preferences_gen.h:5405 +#: ../build/bin/preferences_gen.h:5439 ../build/bin/preferences_gen.h:5473 +#: ../build/bin/preferences_gen.h:5507 ../build/bin/preferences_gen.h:5541 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5644 ../build/bin/preferences_gen.h:5678 +#: ../build/bin/preferences_gen.h:5712 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5847 +#: ../build/bin/preferences_gen.h:5882 ../build/bin/preferences_gen.h:5922 +#: ../build/bin/preferences_gen.h:5958 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6060 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6178 ../build/bin/preferences_gen.h:6223 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6318 +#: ../build/bin/preferences_gen.h:6362 ../build/bin/preferences_gen.h:6406 +#: ../build/bin/preferences_gen.h:6450 ../build/bin/preferences_gen.h:6494 +#: ../build/bin/preferences_gen.h:6538 ../build/bin/preferences_gen.h:6582 +#: ../build/bin/preferences_gen.h:6648 ../build/bin/preferences_gen.h:6682 +#: ../build/bin/preferences_gen.h:6716 ../build/bin/preferences_gen.h:6750 +#: ../build/bin/preferences_gen.h:6784 ../build/bin/preferences_gen.h:6818 +#: ../build/bin/preferences_gen.h:6852 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7032 +#: ../build/bin/preferences_gen.h:7071 ../build/bin/preferences_gen.h:7138 +#: ../build/bin/preferences_gen.h:7224 ../build/bin/preferences_gen.h:7259 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7505 ../build/bin/preferences_gen.h:7539 +#: ../build/bin/preferences_gen.h:7619 ../build/bin/preferences_gen.h:7654 +#: ../build/bin/preferences_gen.h:7693 ../build/bin/preferences_gen.h:7744 +#: ../build/bin/preferences_gen.h:7785 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7922 ../build/bin/preferences_gen.h:7956 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8133 ../build/bin/preferences_gen.h:8212 +#: ../build/bin/preferences_gen.h:8292 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 #, c-format msgid "double click to reset to `%s'" msgstr "me dopioklik kthehet në `%s'" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4053 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4686 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:5040 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5348 -#: ../build/bin/preferences_gen.h:5632 ../build/bin/preferences_gen.h:5668 -#: ../build/bin/preferences_gen.h:5819 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:6370 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7146 ../build/bin/preferences_gen.h:7443 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7692 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:8033 -#: ../build/bin/preferences_gen.h:8175 +#: ../build/bin/preferences_gen.h:4326 ../build/bin/preferences_gen.h:4365 +msgid "part of full import path for an import session" +msgstr "adresa e plotë për import gjatë sesionit të importit" + +#: ../build/bin/preferences_gen.h:4347 +msgid "sub directory naming pattern" +msgstr "modeli i emërtimit të nëndirektorive" + +#: ../build/bin/preferences_gen.h:4386 +msgid "keep original filename" +msgstr "mbaj emrin origjinal" + +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4501 +#: ../build/bin/preferences_gen.h:4535 ../build/bin/preferences_gen.h:4569 +#: ../build/bin/preferences_gen.h:4603 ../build/bin/preferences_gen.h:4637 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4850 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:5106 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5439 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5712 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6450 +#: ../build/bin/preferences_gen.h:6494 ../build/bin/preferences_gen.h:6538 +#: ../build/bin/preferences_gen.h:6582 ../build/bin/preferences_gen.h:6852 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7505 +#: ../build/bin/preferences_gen.h:7744 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7956 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8212 msgctxt "preferences" msgid "FALSE" msgstr "FALSE" -#: ../build/bin/preferences_gen.h:3840 +#: ../build/bin/preferences_gen.h:4399 +msgid "" +"keep original filename instead of a pattern while importing from camera or " +"card" +msgstr "" +"kur importoni nga kamera ose karta, mbani emrin origjinal të skedarëve, jo " +"modelin" + +#: ../build/bin/preferences_gen.h:4420 +msgid "file naming pattern" +msgstr "modeli i emërtimit të skedarëve" + +#: ../build/bin/preferences_gen.h:4438 +msgid "file naming pattern used for a import session" +msgstr "modeli i përdorur për emërtimin e skedarëve gjatë sesionit të importit" + +#: ../build/bin/preferences_gen.h:4470 ../src/gui/gtk.c:1266 +#: ../src/gui/preferences.c:544 ../src/libs/tools/lighttable.c:66 +#: ../src/views/lighttable.c:91 +msgid "lighttable" +msgstr "fototeka" + +#: ../build/bin/preferences_gen.h:4472 ../build/bin/preferences_gen.h:5077 +#: ../build/bin/preferences_gen.h:6619 ../src/gui/preferences.c:270 +msgid "general" +msgstr "përgjithësi" + +#: ../build/bin/preferences_gen.h:4491 +msgid "hide built-in presets for utility modules" +msgstr "fsheh vlerat e paracaktuara për modulet utilitare" + +#: ../build/bin/preferences_gen.h:4504 msgid "hides built-in presets of utility modules in presets menu." msgstr "fsheh vlerat e paracaktuara të moduleve utilitare në menunë përkatëse." -#: ../build/bin/preferences_gen.h:3862 +#: ../build/bin/preferences_gen.h:4525 msgid "use single-click in the collections module" msgstr "përdor një klikim në modulin e koleksioneve" -#: ../build/bin/preferences_gen.h:3876 +#: ../build/bin/preferences_gen.h:4538 msgid "" "check this option to use single-click to select items in the collections " "module. this will allow you to do range selections for date-time and numeric " @@ -984,19 +997,19 @@ "elementet në modulin e koleksioneve do të përzgjidhen me një klikim. kështu " "mund të përzgjidhen intervalet për vlerat data-ora dhe ato numerike." -#: ../build/bin/preferences_gen.h:3898 +#: ../build/bin/preferences_gen.h:4559 msgid "expand a single utility module at a time" msgstr "shpalos një modul utilitar njëheras" -#: ../build/bin/preferences_gen.h:3912 +#: ../build/bin/preferences_gen.h:4572 msgid "this option toggles the behavior of shift clicking in lighttable mode" msgstr "ky opsion mundëson funksionin e klikimit me shift në fototekë" -#: ../build/bin/preferences_gen.h:3934 +#: ../build/bin/preferences_gen.h:4593 msgid "scroll utility modules to the top when expanded" msgstr "tregoj kreun e moduleve të shpalosura utilitare" -#: ../build/bin/preferences_gen.h:3948 ../build/bin/preferences_gen.h:5079 +#: ../build/bin/preferences_gen.h:4606 ../build/bin/preferences_gen.h:5612 msgid "" "when this option is enabled then darktable will try to scroll the module to " "the top of the visible list" @@ -1004,60 +1017,62 @@ "kur opsioni aktivizohet, darktable do e shfaqë modulin e shpalosur në krye " "të listës" -#: ../build/bin/preferences_gen.h:3970 +#: ../build/bin/preferences_gen.h:4627 msgid "rating an image one star twice will not zero out the rating" msgstr "nuk zeroj vlerësimin kur imazhi vlerësohet dy herë me 1 yll" -#: ../build/bin/preferences_gen.h:3984 +#: ../build/bin/preferences_gen.h:4640 msgid "" "defines whether rating an image one star twice will zero out star rating" msgstr "" "vlerësimi i imazhit nuk do të zerohet kur imazhi të marrë dy herë 1 yll" -#: ../build/bin/preferences_gen.h:4006 ../build/bin/preferences_gen.h:4675 +#: ../build/bin/preferences_gen.h:4661 ../build/bin/preferences_gen.h:5284 msgid "show scrollbars for central view" msgstr "tregoj rrëshqitësit në pamjen qendrore" -#: ../build/bin/preferences_gen.h:4017 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5076 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5274 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5927 -#: ../build/bin/preferences_gen.h:6154 ../build/bin/preferences_gen.h:6190 -#: ../build/bin/preferences_gen.h:6226 ../build/bin/preferences_gen.h:6262 -#: ../build/bin/preferences_gen.h:6298 ../build/bin/preferences_gen.h:6334 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7182 -#: ../build/bin/preferences_gen.h:7488 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4671 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:5140 ../build/bin/preferences_gen.h:5363 +#: ../build/bin/preferences_gen.h:5473 ../build/bin/preferences_gen.h:5507 +#: ../build/bin/preferences_gen.h:5541 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5678 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:6060 ../build/bin/preferences_gen.h:6178 +#: ../build/bin/preferences_gen.h:6318 ../build/bin/preferences_gen.h:6362 +#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6648 +#: ../build/bin/preferences_gen.h:6682 ../build/bin/preferences_gen.h:6716 +#: ../build/bin/preferences_gen.h:6750 ../build/bin/preferences_gen.h:6784 +#: ../build/bin/preferences_gen.h:6818 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7539 ../build/bin/preferences_gen.h:7785 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 msgctxt "preferences" msgid "TRUE" msgstr "TRUE" -#: ../build/bin/preferences_gen.h:4020 ../build/bin/preferences_gen.h:4689 +#: ../build/bin/preferences_gen.h:4674 ../build/bin/preferences_gen.h:5297 msgid "defines whether scrollbars should be displayed" msgstr "opsion për shfaqjen ose jo të rrëshqitësve" -#: ../build/bin/preferences_gen.h:4042 +#: ../build/bin/preferences_gen.h:4695 msgid "show image time with milliseconds" msgstr "tregoj orën e imazhit në milisekonda" -#: ../build/bin/preferences_gen.h:4056 +#: ../build/bin/preferences_gen.h:4708 msgid "defines whether time should be displayed with milliseconds" msgstr "opsion për shfaqjen e orës në milisekonda" -#: ../build/bin/preferences_gen.h:4066 +#: ../build/bin/preferences_gen.h:4717 msgid "thumbnails" msgstr "miniaturat" -#: ../build/bin/preferences_gen.h:4086 +#: ../build/bin/preferences_gen.h:4736 msgid "use raw file instead of embedded JPEG from size" msgstr "përdorimi i skedarit bruto në vend të JPEG-së bashkëngjitur" -#: ../build/bin/preferences_gen.h:4159 +#: ../build/bin/preferences_gen.h:4750 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "raw file instead of the embedded preview JPEG (better but slower).\n" @@ -1071,11 +1086,11 @@ "lartë, zgjidhni opsionin *gjithmonë*.\n" "(manuali ka komente të tjera)" -#: ../build/bin/preferences_gen.h:4181 +#: ../build/bin/preferences_gen.h:4771 msgid "high quality processing from size" msgstr "procesimi me cilësi të lartë" -#: ../build/bin/preferences_gen.h:4254 +#: ../build/bin/preferences_gen.h:4785 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "the full quality rendering path (better but slower).\n" @@ -1089,11 +1104,82 @@ "lartë, zgjidhni opsionin *gjithmonë*.\n" "(manuali ka komente të tjera)" -#: ../build/bin/preferences_gen.h:4276 +#: ../build/bin/preferences_gen.h:4806 +msgid "enable disk backend for thumbnail cache" +msgstr "aktivizoj depozitimin e miniaturave në disk" + +#: ../build/bin/preferences_gen.h:4819 +msgid "" +"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want. light table " +"performance will be increased greatly when browsing a lot.\n" +"to generate all thumbnails of your entire collection offline, run 'darktable-" +"generate-cache'." +msgstr "" +"kur aktivizohet, miniaturat që dalin nga depoja e memories do të shkruhen në " +"disk (.cache/darktable).\n" +"vini re se kjo e përdor shumë memorien (duhen disa gigabajt për 20k imazhe) " +"dhe miniaturat e depozituara nuk do të fshihen më.\n" +"ato mund t'i fshini manualisht, po të doni. performanca e fototekës do të " +"rritet mjaft.\n" +"për të gjeneruar miniaturat që keni në koleksion, jepni komandën 'darktable-" +"generate-cache'." + +#: ../build/bin/preferences_gen.h:4840 +msgid "enable disk backend for full preview cache" +msgstr "aktivizoj depozitimin e parashikimeve në disk" + +#: ../build/bin/preferences_gen.h:4853 +msgid "" +"if enabled, write full preview to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want.\n" +"light table performance will be increased greatly when zooming image in full " +"preview mode." +msgstr "" +"kur aktivizohet, parashikimet që dalin nga depoja e memories do të shkruhen " +"në disk (.cache/darktable).\n" +"vini re se kjo e përdor shumë memorien (duhen disa gigabajt për 20k imazhe) " +"dhe miniaturat e depozituara nuk do të fshihen më.\n" +"ato mund t'i fshini manualisht, po të doni.\n" +"performanca e fototekës do të rritet mjaft kur të zmadhoni imazhet në këndin " +"e parashikimit." + +#: ../build/bin/preferences_gen.h:4874 +msgid "generate thumbnails in background" +msgstr "krijoj miniaturat në sfond" + +#: ../build/bin/preferences_gen.h:4888 +msgid "" +"if 'enable disk backend for thumbnail cache' is enabled thumbnails/mipmaps " +"up to the selected size are generated while user is inactive in lighttable." +msgstr "" +"kur zgjidhet 'aktivizoj depozitimin e miniaturave në disk', miniaturat deri " +"në atë përmasë do të krijohen gjatë kohës kur fototeka nuk është duke u " +"përdorur" + +#: ../build/bin/preferences_gen.h:4909 +msgid "reset cached thumbnails" +msgstr "ktheni miniaturat në kash" + +#: ../build/bin/preferences_gen.h:4922 +msgid "" +"force thumbnails to be regenerated by resetting the database. this may be " +"needed in case some thumbnails have been manually removed or corrupted." +msgstr "" +"rikrijoni miniaturat duke e kthyer databazën në gjendjen fillestare. kjo " +"duhet në rastet kur disa miniatura janë hequr manualisht ose janë dëmtuar." + +#: ../build/bin/preferences_gen.h:4943 msgid "delimiters for size categories" msgstr "ndarjet për kategoritë e përmasave" -#: ../build/bin/preferences_gen.h:4294 +#: ../build/bin/preferences_gen.h:4961 msgid "" "size categories are used to be able to set different overlays and CSS values " "depending of the size of the thumbnail, separated by |.\n" @@ -1105,23 +1191,28 @@ "për shembull, 120|400 nënkupton 3 kategori miniaturash: <120px, 120px-400px " "dhe >400px" -#: ../build/bin/preferences_gen.h:4316 +#: ../build/bin/preferences_gen.h:4982 msgid "pattern for the thumbnail extended overlay text" msgstr "modeli i shtresimit të tekstit mbi miniaturë" -#: ../build/bin/preferences_gen.h:4337 ../build/bin/preferences_gen.h:4380 +#: ../build/bin/preferences_gen.h:5002 ../build/bin/preferences_gen.h:5043 msgid "see manual to know all the tags you can use." msgstr "shihni manualin për të mësuar etiketat që mund të përdorni." -#: ../build/bin/preferences_gen.h:4359 +#: ../build/bin/preferences_gen.h:5023 msgid "pattern for the thumbnail tooltip (empty to disable)" msgstr "modeli i shpjegimeve mbi miniaturë (kur është bosh, çaktivizohen)" -#: ../build/bin/preferences_gen.h:4440 +#: ../build/bin/preferences_gen.h:5075 ../src/gui/gtk.c:1267 +#: ../src/gui/preferences.c:544 ../src/views/darkroom.c:94 +msgid "darkroom" +msgstr "dhoma e errët" + +#: ../build/bin/preferences_gen.h:5096 msgid "scroll down to increase mask parameters" msgstr "rrit parametrat e maskës me rrëshqitjen përposhtë të mausit" -#: ../build/bin/preferences_gen.h:4454 +#: ../build/bin/preferences_gen.h:5109 msgid "" "when using the mouse scroll wheel to change mask parameters, scroll down to " "increase the mask size, feather size, opacity, brush hardness and gradient " @@ -1133,11 +1224,11 @@ "penelit dhe kurbaturën e gradientit\n" "zakonisht parametrat rriten duke e rrëshqitur mausin për lart" -#: ../build/bin/preferences_gen.h:4476 +#: ../build/bin/preferences_gen.h:5130 msgid "middle mouse button zooms to 200%" msgstr "butoni në mes të mausit zmadhon 200%" -#: ../build/bin/preferences_gen.h:4491 +#: ../build/bin/preferences_gen.h:5144 #, no-c-format msgid "" "if enabled, the zoom level will cycle between 100%, 200% and fit to viewport " @@ -1148,32 +1239,32 @@ "dhe përshtat nivelin me ekranin. përndryshe kalimi bëhet sipas madhësisë së " "ekranit dhe 100%, ndërsa me tastin 'ctrl' kontrollohet niveli i zmadhimit." -#: ../build/bin/preferences_gen.h:4513 +#: ../build/bin/preferences_gen.h:5165 msgid "pattern for the image information line" msgstr "modeli i rreshtit me informacionin për imazhin" -#: ../build/bin/preferences_gen.h:4534 +#: ../build/bin/preferences_gen.h:5185 msgid "see manual for a list of the tags you can use." msgstr "shihni manualin për listën e etiketave që mund të përdorni." -#: ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:5206 msgid "position of the image information line" msgstr "pozicioni i rreshtit me informacionin për imazhin" -#: ../build/bin/preferences_gen.h:4630 +#: ../build/bin/preferences_gen.h:5240 msgid "border around image in darkroom mode" msgstr "bordura rreth imazhit në dhomën e errët" -#: ../build/bin/preferences_gen.h:4650 ../build/bin/preferences_gen.h:6790 -#: ../build/bin/preferences_gen.h:7228 ../build/bin/preferences_gen.h:7789 -#: ../build/bin/preferences_gen.h:8139 ../build/bin/preferences_gen.h:8221 -#: ../build/bin/preferences_gen.h:8379 ../build/bin/preferences_gen.h:8493 -#: ../build/bin/preferences_gen.h:8540 +#: ../build/bin/preferences_gen.h:5260 ../build/bin/preferences_gen.h:7182 +#: ../build/bin/preferences_gen.h:7303 ../build/bin/preferences_gen.h:7584 +#: ../build/bin/preferences_gen.h:8048 ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8257 ../build/bin/preferences_gen.h:8389 +#: ../build/bin/preferences_gen.h:8504 ../build/bin/preferences_gen.h:8550 #, c-format msgid "double click to reset to `%d'" msgstr "me dopioklik kthehet në `%d'" -#: ../build/bin/preferences_gen.h:4653 +#: ../build/bin/preferences_gen.h:5263 msgid "" "process the image in darkroom mode with a small border. set to 0 if you " "don't want any border." @@ -1181,21 +1272,21 @@ "imazhi në dhomën e errët do të ketë një bordurë të vogël. vendosni 0 nëse " "nuk e doni bordurën." -#: ../build/bin/preferences_gen.h:4711 +#: ../build/bin/preferences_gen.h:5318 msgid "reduce resolution of preview image" msgstr "zvogëlimi i rezolucionit për imazhin e parashikuar" -#: ../build/bin/preferences_gen.h:4759 +#: ../build/bin/preferences_gen.h:5332 msgid "decrease to speed up preview rendering, may hinder accurate masking" msgstr "" "të ulet për të shpejtuar procesin e parashikimit, pengon edhe maskimin e " "saktë" -#: ../build/bin/preferences_gen.h:4781 +#: ../build/bin/preferences_gen.h:5353 msgid "show loading screen between images" msgstr "tregoj mesazhin e ngarkimit për çdo imazh" -#: ../build/bin/preferences_gen.h:4795 +#: ../build/bin/preferences_gen.h:5366 msgid "" "show gray loading screen when navigating between images in the darkroom\n" "disable to just show a toast message" @@ -1203,15 +1294,15 @@ "tregoni mesazhin gri të ngarkimit kur ndërroni imazhet në dhomën e errët\n" "kur çaktivizohet del vetëm një mesazh i thjeshtë" -#: ../build/bin/preferences_gen.h:4805 +#: ../build/bin/preferences_gen.h:5375 msgid "modules" msgstr "modulet" -#: ../build/bin/preferences_gen.h:4825 +#: ../build/bin/preferences_gen.h:5394 msgid "display of individual color channels" msgstr "shfaqja e kanaleve të veçanta të ngjyrave" -#: ../build/bin/preferences_gen.h:4863 +#: ../build/bin/preferences_gen.h:5408 msgid "" "defines how color channels are displayed when activated in the parametric " "masks feature." @@ -1219,11 +1310,11 @@ "përcaktoni mënyrën e shfaqjes së kanaleve të ngjyrave kur aktivizoni " "funksionin e maskave parametrike." -#: ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:5429 msgid "hide built-in presets for processing modules" msgstr "fsheh vlerat e paracaktuara për modulet e procesimit" -#: ../build/bin/preferences_gen.h:4899 +#: ../build/bin/preferences_gen.h:5442 msgid "" "hides built-in presets of processing modules in both presets and favourites " "menu." @@ -1231,23 +1322,23 @@ "vlerat e paracaktuara për modulet e procesimit do të fshihen si nga menuja e " "vlerave, edhe nga më të pëlqyerat." -#: ../build/bin/preferences_gen.h:4921 ../build/bin/preferences_gen.h:4935 +#: ../build/bin/preferences_gen.h:5463 ../build/bin/preferences_gen.h:5476 msgid "show the guides widget in modules UI" msgstr "tregoj udhëzuesit në grafikën e moduleve" -#: ../build/bin/preferences_gen.h:4957 +#: ../build/bin/preferences_gen.h:5497 msgid "expand a single processing module at a time" msgstr "shpalos një modul procesimi njëheras" -#: ../build/bin/preferences_gen.h:4971 +#: ../build/bin/preferences_gen.h:5510 msgid "this option toggles the behavior of shift clicking in darkroom mode" msgstr "ky opsion lidhet me funksionin e klikimit me shift në dhomën e errët" -#: ../build/bin/preferences_gen.h:4993 +#: ../build/bin/preferences_gen.h:5531 msgid "only collapse modules in current group" msgstr "palos vetëm modulet në grupin aktual" -#: ../build/bin/preferences_gen.h:5007 +#: ../build/bin/preferences_gen.h:5544 msgid "" "if only expanding a single module at a time, only collapse other modules in " "the current group - ignore modules in other groups" @@ -1255,11 +1346,11 @@ "nëse shpaloset vetëm njëri modul, modulet e tjera në grupin aktual do të " "palosen - modulet në grupet e tjera do të shpërfillen" -#: ../build/bin/preferences_gen.h:5029 +#: ../build/bin/preferences_gen.h:5565 msgid "expand the module when it is activated, and collapse it when disabled" msgstr "shpalos modulin kur është aktiv dhe e palos kur është çaktivizuar" -#: ../build/bin/preferences_gen.h:5043 +#: ../build/bin/preferences_gen.h:5578 msgid "" "this option allows to expand or collapse automatically the module when it is " "enabled or disabled." @@ -1267,15 +1358,15 @@ "moduli do të shpaloset ose paloset automatikisht në varësi të gjendjes jo/" "aktiv." -#: ../build/bin/preferences_gen.h:5065 +#: ../build/bin/preferences_gen.h:5599 msgid "scroll processing modules to the top when expanded" msgstr "modulet e shpalosura të procesimit të hapen nga kreu" -#: ../build/bin/preferences_gen.h:5101 +#: ../build/bin/preferences_gen.h:5633 msgid "show right-side buttons in processing module headers" msgstr "paraqitja e butonëve djathtas në titujt e moduleve të procesimit" -#: ../build/bin/preferences_gen.h:5169 +#: ../build/bin/preferences_gen.h:5647 msgid "" "when the mouse is not over a module, the multi-instance, reset and preset " "buttons can be hidden:\n" @@ -1299,22 +1390,22 @@ "- 'sheshoj': butonët shkrihen njëkohësisht në një vend,\n" "- 'pluskoj': butonët fshihen gradualisht sipas nevojës" -#: ../build/bin/preferences_gen.h:5191 +#: ../build/bin/preferences_gen.h:5668 msgid "show mask indicator in module headers" msgstr "shfaq treguesin e maskës në titujt e moduleve" -#: ../build/bin/preferences_gen.h:5205 +#: ../build/bin/preferences_gen.h:5681 msgid "" "if enabled, an icon will be shown in the header of any processing modules " "that have a mask applied" msgstr "" "do të shfaqet një ikonë në titullin e çdo moduli ku është aplikuar një maskë" -#: ../build/bin/preferences_gen.h:5227 +#: ../build/bin/preferences_gen.h:5702 msgid "prompt for name on addition of new instance" msgstr "ndërhyj për emrin kur shtoj një instancë të re" -#: ../build/bin/preferences_gen.h:5241 +#: ../build/bin/preferences_gen.h:5715 msgid "" "if enabled, a rename prompt will be present for each new module instance " "(either new instance or duplicate)" @@ -1322,11 +1413,11 @@ "do të njoftoheni për t'i dhënë emër të ri çdo moduli të hapur rishtas (si " "instancë e re ose e dubluar)" -#: ../build/bin/preferences_gen.h:5263 +#: ../build/bin/preferences_gen.h:5736 msgid "automatically update module name" msgstr "përditësoj automatikisht emrin e modulit" -#: ../build/bin/preferences_gen.h:5277 +#: ../build/bin/preferences_gen.h:5749 msgid "" "if enabled, the module name will be automatically updated to match a preset " "name or a preset instance name if present." @@ -1334,23 +1425,27 @@ "emri i modulit do të përditësohet automatikisht sipas vlerës ose emrit të " "instancës së paracaktuar më parë." -#: ../build/bin/preferences_gen.h:5317 +#: ../build/bin/preferences_gen.h:5781 +msgid "processing" +msgstr "procesimi" + +#: ../build/bin/preferences_gen.h:5783 msgid "image processing" msgstr "procesimi i imazhit" -#: ../build/bin/preferences_gen.h:5337 +#: ../build/bin/preferences_gen.h:5802 msgid "always use LittleCMS 2 to apply output color profile" msgstr "gjithmonë përdor LittleCMS 2 për profilin kolorimetrik output" -#: ../build/bin/preferences_gen.h:5351 +#: ../build/bin/preferences_gen.h:5815 msgid "this is slower than the default." msgstr "është më i ngadaltë sesa standardi." -#: ../build/bin/preferences_gen.h:5373 +#: ../build/bin/preferences_gen.h:5836 msgid "pixel interpolator (warp)" msgstr "interpolatori i pikselëve (përdredhje)" -#: ../build/bin/preferences_gen.h:5416 +#: ../build/bin/preferences_gen.h:5850 msgid "" "pixel interpolator used in modules for rotation, lens correction, liquify, " "cropping and final scaling (bilinear, bicubic, lanczos2)." @@ -1359,33 +1454,33 @@ "objektivit, lëngëzimin, prerjen dhe shëmbëllimin final (bilinear, bicubic, " "lanczos2)." -#: ../build/bin/preferences_gen.h:5438 +#: ../build/bin/preferences_gen.h:5871 msgid "pixel interpolator (scaling)" msgstr "interpolatori i pikselëve (shëmbëllimi)" -#: ../build/bin/preferences_gen.h:5486 +#: ../build/bin/preferences_gen.h:5885 msgid "" "pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." msgstr "" "interpolatori i pikselëve që përdoret për shëmbëllimin (bilinear, bicubic, " "lanczos2, lanczos3)." -#: ../build/bin/preferences_gen.h:5508 +#: ../build/bin/preferences_gen.h:5906 msgid "LUT 3D root folder" msgstr "dosja bazë për LUT 3D" -#: ../build/bin/preferences_gen.h:5513 ../src/control/jobs/control_jobs.c:1688 -#: ../src/control/jobs/control_jobs.c:1742 ../src/gui/preferences.c:1081 -#: ../src/gui/presets.c:419 ../src/imageio/storage/disk.c:122 -#: ../src/imageio/storage/disk.c:178 ../src/imageio/storage/gallery.c:109 -#: ../src/imageio/storage/gallery.c:163 ../src/imageio/storage/latex.c:108 -#: ../src/imageio/storage/latex.c:162 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/import.c:1664 ../src/libs/styles.c:391 +#: ../build/bin/preferences_gen.h:5912 ../src/control/jobs/control_jobs.c:1691 +#: ../src/control/jobs/control_jobs.c:1745 ../src/gui/preferences.c:1080 +#: ../src/gui/presets.c:421 ../src/imageio/storage/disk.c:197 +#: ../src/imageio/storage/disk.c:261 ../src/imageio/storage/gallery.c:149 +#: ../src/imageio/storage/gallery.c:213 ../src/imageio/storage/latex.c:145 +#: ../src/imageio/storage/latex.c:199 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1673 ../src/libs/styles.c:391 #: ../src/lua/preferences.c:668 msgid "select directory" msgstr "përzgjidhni direktorinë" -#: ../build/bin/preferences_gen.h:5529 +#: ../build/bin/preferences_gen.h:5926 msgid "" "this folder (and sub-folders) contains LUT files used by LUT 3D module. " "(need a restart)." @@ -1393,11 +1488,11 @@ "dosja (dhe nëndosjet) ka skedarë LUT që përdorin modulet LUT 3D. (duhet " "rihapur aplikacioni)" -#: ../build/bin/preferences_gen.h:5551 +#: ../build/bin/preferences_gen.h:5947 msgid "auto-apply pixel workflow defaults" msgstr "procesi standard i punës" -#: ../build/bin/preferences_gen.h:5599 +#: ../build/bin/preferences_gen.h:5961 msgid "" "scene-referred workflow is based on linear modules and will auto-apply " "filmic or sigmoid, color calibration and exposure,\n" @@ -1409,11 +1504,11 @@ "procesi i punës në varësi të ekranit bazohet te aplikimi i moduleve Lab, si " "kurba bazë, balancimi i bardhësisë dhe modulet e trashëguara." -#: ../build/bin/preferences_gen.h:5621 +#: ../build/bin/preferences_gen.h:5982 msgid "auto-apply per camera basecurve presets" msgstr "vetaplikoj vlerat e paracaktuara të kurbës bazë sipas kamerës" -#: ../build/bin/preferences_gen.h:5635 +#: ../build/bin/preferences_gen.h:5995 msgid "" "use the per-camera basecurve by default instead of the generic manufacturer " "one if there is one available (needs a restart).\n" @@ -1429,11 +1524,11 @@ "për të mos vetaplikuar vlerat e paracaktuara të kurbës bazë, \"vetaplikoj " "procesin standard të punës\" duhet lënë te \"asnjë\"" -#: ../build/bin/preferences_gen.h:5657 +#: ../build/bin/preferences_gen.h:6016 msgid "detect monochrome previews" msgstr "dalloj parashikimet monokromatike" -#: ../build/bin/preferences_gen.h:5671 +#: ../build/bin/preferences_gen.h:6029 msgid "" "many monochrome images can be identified via EXIF and preview data. beware: " "this slows down imports and reading of EXIF data" @@ -1441,11 +1536,11 @@ "shumë imazhe monokromatike dallohen nga EXIF dhe të dhënat parashikuese. " "kujdes: do e ngadalësoni importin dhe leximin e të dhënave EXIF" -#: ../build/bin/preferences_gen.h:5693 +#: ../build/bin/preferences_gen.h:6050 msgid "show warning messages" msgstr "tregoj vërejtjet" -#: ../build/bin/preferences_gen.h:5707 +#: ../build/bin/preferences_gen.h:6063 msgid "" "display messages in modules to warn beginner users when non-standard and " "possibly harmful settings are used in the pipeline.\n" @@ -1457,15 +1552,15 @@ "mesazhet mund të jenë edhe të pasakta dhe mund t'i shpërfillni nëse veproni " "me vetëdije. ky opsion do i fshehë ato." -#: ../build/bin/preferences_gen.h:5717 -msgid "CPU / GPU / memory" -msgstr "CPU / GPU / memoria" +#: ../build/bin/preferences_gen.h:6072 +msgid "CPU / memory" +msgstr "CPU / memoria" -#: ../build/bin/preferences_gen.h:5737 +#: ../build/bin/preferences_gen.h:6091 msgid "darktable resources" msgstr "resurset e darktable" -#: ../build/bin/preferences_gen.h:5786 +#: ../build/bin/preferences_gen.h:6106 #, no-c-format msgid "" "defines how much darktable may take from your system resources:\n" @@ -1493,11 +1588,11 @@ " duke ngarkuar memorien virtuale dhe duke sjellë rënie të performancës.\n" " duhet përdorur me kujdes dhe nuk rekomandohet përgjithësisht!" -#: ../build/bin/preferences_gen.h:5808 +#: ../build/bin/preferences_gen.h:6127 msgid "prefer performance over quality" msgstr "preferoj më shumë performancën sesa cilësinë" -#: ../build/bin/preferences_gen.h:5822 +#: ../build/bin/preferences_gen.h:6140 msgid "" "if switched on, thumbnails and previews are rendered at lower quality but 4 " "times faster" @@ -1505,57 +1600,15 @@ "kur aktivizohet, miniaturat dhe parashikimet do të shfaqen me cilësi më të " "ulët, por 4 herë më shpejt" -#: ../build/bin/preferences_gen.h:5844 -msgid "enable disk backend for thumbnail cache" -msgstr "aktivizoj depozitimin e miniaturave në disk" - -#: ../build/bin/preferences_gen.h:5858 -msgid "" -"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want. light table " -"performance will be increased greatly when browsing a lot.\n" -"to generate all thumbnails of your entire collection offline, run 'darktable-" -"generate-cache'." -msgstr "" -"kur aktivizohet, miniaturat që dalin nga depoja e memories do të shkruhen në " -"disk (.cache/darktable).\n" -"vini re se kjo e përdor shumë memorien (duhen disa gigabajt për 20k imazhe) " -"dhe miniaturat e depozituara nuk do të fshihen më.\n" -"ato mund t'i fshini manualisht, po të doni. performanca e fototekës do të " -"rritet mjaft.\n" -"për të gjeneruar miniaturat që keni në koleksion, jepni komandën 'darktable-" -"generate-cache'." - -#: ../build/bin/preferences_gen.h:5880 -msgid "enable disk backend for full preview cache" -msgstr "aktivizoj depozitimin e parashikimeve në disk" - -#: ../build/bin/preferences_gen.h:5894 -msgid "" -"if enabled, write full preview to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want.\n" -"light table performance will be increased greatly when zooming image in full " -"preview mode." -msgstr "" -"kur aktivizohet, parashikimet që dalin nga depoja e memories do të shkruhen " -"në disk (.cache/darktable).\n" -"vini re se kjo e përdor shumë memorien (duhen disa gigabajt për 20k imazhe) " -"dhe miniaturat e depozituara nuk do të fshihen më.\n" -"ato mund t'i fshini manualisht, po të doni.\n" -"performanca e fototekës do të rritet mjaft kur të zmadhoni imazhet në këndin " -"e parashikimit." +#: ../build/bin/preferences_gen.h:6149 +msgid "OpenCL" +msgstr "OpenCL" -#: ../build/bin/preferences_gen.h:5916 +#: ../build/bin/preferences_gen.h:6168 msgid "activate OpenCL support" msgstr "aktivizoj OpenCL" -#: ../build/bin/preferences_gen.h:5930 +#: ../build/bin/preferences_gen.h:6181 msgid "" "if found, use OpenCL runtime on your system to speed up processing.\n" "can be switched on and off at any time." @@ -1563,23 +1616,32 @@ "OpenCL e rrit shpejtësinë e procesimit kur e mundëson sistemi.\n" "mund të ç/aktivizohet në çdo kohë." -#: ../build/bin/preferences_gen.h:5931 ../build/bin/preferences_gen.h:6002 -#: ../build/bin/preferences_gen.h:6078 ../build/bin/preferences_gen.h:7397 +#: ../build/bin/preferences_gen.h:6185 ../build/bin/preferences_gen.h:6230 +#: ../build/bin/preferences_gen.h:6274 ../build/bin/preferences_gen.h:6325 +#: ../build/bin/preferences_gen.h:6369 ../build/bin/preferences_gen.h:6413 +#: ../build/bin/preferences_gen.h:6457 ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6545 ../build/bin/preferences_gen.h:7700 msgid "not available" msgstr "nuk mundësohet" -#: ../build/bin/preferences_gen.h:5934 ../build/bin/preferences_gen.h:5938 -#: ../build/bin/preferences_gen.h:6005 ../build/bin/preferences_gen.h:6009 -#: ../build/bin/preferences_gen.h:6081 ../build/bin/preferences_gen.h:6085 -#: ../build/bin/preferences_gen.h:7400 ../build/bin/preferences_gen.h:7404 +#: ../build/bin/preferences_gen.h:6187 ../build/bin/preferences_gen.h:6188 +#: ../build/bin/preferences_gen.h:6232 ../build/bin/preferences_gen.h:6233 +#: ../build/bin/preferences_gen.h:6276 ../build/bin/preferences_gen.h:6277 +#: ../build/bin/preferences_gen.h:6327 ../build/bin/preferences_gen.h:6328 +#: ../build/bin/preferences_gen.h:6371 ../build/bin/preferences_gen.h:6372 +#: ../build/bin/preferences_gen.h:6415 ../build/bin/preferences_gen.h:6416 +#: ../build/bin/preferences_gen.h:6459 ../build/bin/preferences_gen.h:6460 +#: ../build/bin/preferences_gen.h:6503 ../build/bin/preferences_gen.h:6504 +#: ../build/bin/preferences_gen.h:6547 ../build/bin/preferences_gen.h:6548 +#: ../build/bin/preferences_gen.h:7702 ../build/bin/preferences_gen.h:7703 msgid "not available on this system" msgstr "nuk mundësohet nga sistemi" -#: ../build/bin/preferences_gen.h:5958 +#: ../build/bin/preferences_gen.h:6212 msgid "OpenCL scheduling profile" msgstr "profili i skedulimit të OpenCL" -#: ../build/bin/preferences_gen.h:6001 +#: ../build/bin/preferences_gen.h:6226 msgid "" "defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled " "systems:\n" @@ -1595,81 +1657,155 @@ "- 'disa GPU': të dyja proceset kryhen paralelisht në dy GPU të ndryshme,\n" "- 'GPU shumë e shpejtë': të dyja proceset kryhen sipas radhës nga GPU-ja." -#: ../build/bin/preferences_gen.h:6029 -msgid "tune OpenCL performance" -msgstr "rregulloj performancën e OpenCL" +#: ../build/bin/preferences_gen.h:6257 +msgid "use all device memory" +msgstr "përdor gjithë memorien e aparatit" -#: ../build/bin/preferences_gen.h:6077 +#: ../build/bin/preferences_gen.h:6270 msgid "" -"allows runtime tuning of OpenCL devices:\n" -" - 'memory size': uses a fixed headroom (400MB as default),\n" -" - 'memory transfer': tries a faster memory access mode (pinned memory) used " -"for tiling." -msgstr "" -"ndreqni rendimentin e aparateve OpenCL.\n" -"- 'madhësia e memories': përdor një sasi fikse (normalisht 400 MB),\n" -"- 'transferimi i memories': përdor mënyrën më të shpejtë të ndërveprimit me " -"memorien (e fiksuar) gjatë procesit të pllakëzimit." +"if enabled darktable will use all device memory except a safety margin " +"(headroom, default is 600MB)" +msgstr "" +"kur aktivizohet, darktable do të përdorë gjithë memorien e aparatit, përveç " +"cakut të sigurisë (standardi është 600 MB)" + +#: ../build/bin/preferences_gen.h:6289 +msgid "OpenCL drivers" +msgstr "pilotët OpenCL" + +#: ../build/bin/preferences_gen.h:6308 +msgid "Intel GPU" +msgstr "Intel GPU" + +#: ../build/bin/preferences_gen.h:6321 +msgid "Intel(R) OpenCL Graphics for all supported platforms (vendor provided)" +msgstr "" +"Intel(R) OpenCL Graphics për të gjitha platformat e garantuara (sipas " +"prodhuesit)" + +#: ../build/bin/preferences_gen.h:6352 +msgid "Nvidia CUDA" +msgstr "Nvidia CUDA" + +#: ../build/bin/preferences_gen.h:6365 +msgid "Nvidia CUDA based OpenCL (vendor provided)" +msgstr "Nvidia CUDA based OpenCL (sipas prodhuesit)" + +#: ../build/bin/preferences_gen.h:6396 +msgid "AMD ROCm" +msgstr "AMD ROCm" + +#: ../build/bin/preferences_gen.h:6409 +msgid "AMD Accelerated Parallel Processing (vendor provided)" +msgstr "AMD Accelerated Parallel Processing (sipas prodhuesit)" + +#: ../build/bin/preferences_gen.h:6440 +msgid "RustiCL" +msgstr "RustiCL" + +#: ../build/bin/preferences_gen.h:6453 +msgid "" +"RustiCL Mesa OpenCL, still unstable. if you want to use this, you should " +"disable the vendor driver" +msgstr "" +"RustiCL Mesa OpenCL, ende e paqëndrueshme. nëse doni ta përdorni, duhet " +"çaktivizuar piloti i prodhuesit" + +#: ../build/bin/preferences_gen.h:6484 +msgid "Apple" +msgstr "Apple" + +#: ../build/bin/preferences_gen.h:6497 +msgid "Apple OpenCL (vendor provided)" +msgstr "Apple OpenCL (sipas prodhuesit)" -#: ../build/bin/preferences_gen.h:6143 +#: ../build/bin/preferences_gen.h:6528 +msgid "Microsoft OpenCLOn12" +msgstr "Microsoft OpenCLOn12" + +#: ../build/bin/preferences_gen.h:6541 +msgid "" +"Microsoft OpenCLOn12, only use this if the vendor provided driver does not " +"work or there is none provided." +msgstr "" +"Microsoft OpenCLOn12 duhet përdorur vetëm nëse piloti i ofruar nga prodhuesi " +"nuk punon ose mungon tërësisht." + +#: ../build/bin/preferences_gen.h:6572 +msgid "other platforms" +msgstr "platforma të tjera" + +#: ../build/bin/preferences_gen.h:6585 +msgid "" +"if set, all unspecified platforms are accepted. only do this if no vendor " +"driver is available" +msgstr "" +"kur vendoset, gjithë platformat e paspecifikuara do të pranohen. bëjeni " +"vetëm po të mos keni pilotin e prodhuesit" + +#: ../build/bin/preferences_gen.h:6617 +msgid "security" +msgstr "siguria" + +#: ../build/bin/preferences_gen.h:6638 msgid "ask before removing images from the library" msgstr "pyes para heqjes së imazheve nga libraria" -#: ../build/bin/preferences_gen.h:6157 +#: ../build/bin/preferences_gen.h:6651 msgid "always ask the user before removing image information from the library" msgstr "" "përdoruesi gjithmonë pyetet para heqjes së informacionit të imazhit nga " "libraria" -#: ../build/bin/preferences_gen.h:6179 +#: ../build/bin/preferences_gen.h:6672 msgid "ask before deleting images from disk" msgstr "pyes para fshirjes së imazheve nga disku" -#: ../build/bin/preferences_gen.h:6193 +#: ../build/bin/preferences_gen.h:6685 msgid "always ask the user before any image file is deleted" msgstr "përdoruesi gjithmonë pyetet para fshirjes së një imazhi" -#: ../build/bin/preferences_gen.h:6215 +#: ../build/bin/preferences_gen.h:6706 msgid "ask before discarding history stack" msgstr "pyes para eliminimit të historikut të zhvillimit" -#: ../build/bin/preferences_gen.h:6229 +#: ../build/bin/preferences_gen.h:6719 msgid "always ask the user before history stack is discarded on any image" msgstr "" "përdoruesi gjithmonë pyetet para eliminimit të historikut të një imazhi" -#: ../build/bin/preferences_gen.h:6251 +#: ../build/bin/preferences_gen.h:6740 msgid "try to use trash when deleting images" msgstr "provoj të përdor koshin kur fshij imazhet" -#: ../build/bin/preferences_gen.h:6265 +#: ../build/bin/preferences_gen.h:6753 msgid "" "send files to trash instead of permanently deleting files on system that " "supports it" msgstr "" "skedarët do të hidhen në kosh, nuk do të fshihen përgjithmonë nga sistemi" -#: ../build/bin/preferences_gen.h:6287 +#: ../build/bin/preferences_gen.h:6774 msgid "ask before moving images from film roll folder" msgstr "pyes para lëvizjes së imazheve nga dosja" -#: ../build/bin/preferences_gen.h:6301 +#: ../build/bin/preferences_gen.h:6787 msgid "always ask the user before any image file is moved." msgstr "përdoruesi gjithmonë pyetet para lëvizjes së një imazhi." -#: ../build/bin/preferences_gen.h:6323 +#: ../build/bin/preferences_gen.h:6808 msgid "ask before copying images to new film roll folder" msgstr "pyes para kopjimit të imazheve në dosjen e filmit të ri" -#: ../build/bin/preferences_gen.h:6337 +#: ../build/bin/preferences_gen.h:6821 msgid "always ask the user before any image file is copied." msgstr "përdoruesi gjithmonë pyetet para kopjimit të një imazhi." -#: ../build/bin/preferences_gen.h:6359 +#: ../build/bin/preferences_gen.h:6842 msgid "ask before removing empty folders" msgstr "pyes para heqjes së dosjeve boshe" -#: ../build/bin/preferences_gen.h:6373 +#: ../build/bin/preferences_gen.h:6855 msgid "" "always ask the user before removing any empty folder. this can happen after " "moving or deleting images." @@ -1677,54 +1813,54 @@ "përdoruesi gjithmonë pyetet para fshirjes së dosjes boshe. kjo ndodh kur " "lëvizni ose fshini imazhet." -#: ../build/bin/preferences_gen.h:6395 +#: ../build/bin/preferences_gen.h:6876 msgid "ask before deleting a tag" msgstr "pyes para fshirjes së etiketës" -#: ../build/bin/preferences_gen.h:6430 +#: ../build/bin/preferences_gen.h:6909 msgid "ask before deleting a style" msgstr "pyes para fshirjes së stilit" -#: ../build/bin/preferences_gen.h:6465 +#: ../build/bin/preferences_gen.h:6942 msgid "ask before deleting a preset" msgstr "pyes para fshirjes së vlerës së paracaktuar" -#: ../build/bin/preferences_gen.h:6479 +#: ../build/bin/preferences_gen.h:6955 msgid "will ask for confirmation before deleting or overwriting a preset" msgstr "" "do të kërkohet konfirmimi para fshirjes ose mbishkrimit të një vlere të " "paracaktuar" -#: ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6976 msgid "ask before exporting in overwrite mode" msgstr "pyes para eksportimit me metodën e mbishkrimit" -#: ../build/bin/preferences_gen.h:6515 +#: ../build/bin/preferences_gen.h:6989 msgid "will ask for confirmation before exporting files in overwrite mode" msgstr "" "do të kërkohet konfirmimi para eksportimit të skedarëve me metodën e " "mbishkrimit" #. italic -#: ../build/bin/preferences_gen.h:6525 ../src/libs/tools/viewswitcher.c:148 +#: ../build/bin/preferences_gen.h:6998 ../src/libs/tools/viewswitcher.c:148 msgid "other" msgstr "të tjera" -#: ../build/bin/preferences_gen.h:6545 +#: ../build/bin/preferences_gen.h:7017 msgid "password storage backend to use" msgstr "përdorimi i depos vartëse të fjalëkalimeve" -#: ../build/bin/preferences_gen.h:6595 +#: ../build/bin/preferences_gen.h:7035 msgid "" "the storage backend for password storage: auto, none, libsecret, kwallet" msgstr "" "depoja vartëse për ruajtjen e fjalëkalimeve: auto, asnjë, libsecret, kwallet" -#: ../build/bin/preferences_gen.h:6617 +#: ../build/bin/preferences_gen.h:7056 msgid "executable for playing audio files" msgstr "programi për hapjen e skedarëve zanorë" -#: ../build/bin/preferences_gen.h:6635 +#: ../build/bin/preferences_gen.h:7074 msgid "" "this external program is used to play audio files some cameras record to " "keep notes for images" @@ -1732,15 +1868,19 @@ "programi përdoret për të luajtur skedarët zanorë, të cilat disa kamera i " "regjistrojnë si shënime për imazhet" -#: ../build/bin/preferences_gen.h:6675 ../src/control/crawler.c:724 +#: ../build/bin/preferences_gen.h:7106 +msgid "storage" +msgstr "ruajtja" + +#: ../build/bin/preferences_gen.h:7108 ../src/control/crawler.c:717 msgid "database" msgstr "databaza" -#: ../build/bin/preferences_gen.h:6695 +#: ../build/bin/preferences_gen.h:7127 msgid "create database snapshot" msgstr "krijimi i pozës së databazës" -#: ../build/bin/preferences_gen.h:6748 +#: ../build/bin/preferences_gen.h:7141 msgid "" "database snapshots are created right before closing darktable. options allow " "you to choose how often to make snapshots:\n" @@ -1752,20 +1892,20 @@ " - 'once a day': create snapshot if over 24h passed since last snapshot\n" " - 'on close': create snapshot every time darktable is closed" msgstr "" -"pozat në databazë krijohen menjëherë pasi darktable mbyllet. me opsionet " -"mund të zgjidhni sa shpesh krijohen pozat:\n" -"- 'kurrë': pozat thjesht nuk krijohen. pozat e vetme që do të keni janë ato " -"të detyrueshmet kur instaloni versionin e ri\n" +"pozat e databazës krijohen sapo darktable mbyllet. me opsionet mund të " +"zgjidhni sa shpesh duhen krijuar:\n" +"- 'kurrë': pozat thjesht nuk krijohen. të vetmet do të jenë ato të " +"detyrueshmet kur instaloni versionin e ri\n" "- 'çdo muaj': poza krijohet pasi kalon një muaj nga më e fundit\n" "- 'çdo javë': poza krijohet pasi kalojnë 7 ditë nga më e fundit\n" "- 'çdo ditë': poza krijohet pasi kalojnë 24 orë nga më e fundit\n" "- 'gjatë mbylljes': poza krijohet sa herë që mbyllet darktable" -#: ../build/bin/preferences_gen.h:6770 +#: ../build/bin/preferences_gen.h:7162 msgid "how many snapshots to keep" msgstr "sa poza doni të mbani" -#: ../build/bin/preferences_gen.h:6793 +#: ../build/bin/preferences_gen.h:7185 msgid "" "after successfully creating snapshot, how many older snapshots to keep " "(excluding mandatory version update ones). enter -1 to keep all snapshots\n" @@ -1777,37 +1917,37 @@ "mbani mend se pozat zënë hapësirë në disk dhe ju duhet vetëm e fundit për ta " "rikuperuar me sukses" -#: ../build/bin/preferences_gen.h:6803 ../src/control/crawler.c:723 -msgid "XMP" -msgstr "XMP" +#: ../build/bin/preferences_gen.h:7194 ../src/libs/copy_history.c:149 +msgid "XMP sidecar files" +msgstr "skedarët shoqërues XMP" -#: ../build/bin/preferences_gen.h:6823 -msgid "write sidecar file for each image" -msgstr "shkrimi i skedarit shoqërues për çdo imazh" +#: ../build/bin/preferences_gen.h:7213 +msgid "create XMP files" +msgstr "krijoj skedarët XMP" -#: ../build/bin/preferences_gen.h:6866 +#: ../build/bin/preferences_gen.h:7227 msgid "" -"the sidecar files hold information about all your development steps to allow " +"XMP sidecar files hold information about all your development steps to allow " "flawless re-importing of image files.\n" "\n" -"depending on the selected mode sidecar files will be written:\n" +"depending on the selected mode sidecar files will be created:\n" " - 'never'\n" " - 'on import': immediately after importing the image\n" -" - 'after edit': after any user change on the image." +" - 'after edit': after any user change on the image or adding tags." msgstr "" -"skedarët shoqërues ruajnë informacione rreth hapave që ndiqni në zhvillimin " -"e imazheve, për t'i importuar pa probleme.\n" +"skedarët shoqërues XMP ruajnë informacione rreth hapave të zhvillimit të " +"imazheve që t'i riimportoni pa probleme.\n" "\n" -"në varësi të metodës së përzgjedhur, skedarët shoqërues shkruhen:\n" +"në varësi të metodës së përzgjedhur, skedarët shoqërues krijohen:\n" " - 'kurrë'\n" " - 'gjatë importit': menjëherë pas importimit të imazhit\n" -" - 'pas përpunimit': pas çdo ndryshimi që bëhet në imazh." +" - 'pas përpunimit': pas çdo ndryshimi ose etiketimi të kryer në imazh." -#: ../build/bin/preferences_gen.h:6888 +#: ../build/bin/preferences_gen.h:7248 msgid "store XMP tags in compressed format" msgstr "ruajtja me komprimim e etiketave XMP" -#: ../build/bin/preferences_gen.h:6931 +#: ../build/bin/preferences_gen.h:7262 msgid "" "entries in XMP tags can get rather large and may exceed the available space " "to store the history stack in output files.\n" @@ -1817,11 +1957,25 @@ "e rezervuar për historikun e skedarit.\n" "me këtë opsion, etiketat XMP do të komprimohen për të kursyer hapësirën." -#: ../build/bin/preferences_gen.h:6953 +#: ../build/bin/preferences_gen.h:7283 +msgid "auto-save interval" +msgstr "intervali i vetëregjistrimit" + +#: ../build/bin/preferences_gen.h:7306 +msgid "" +"automatically save history while developing using the given interval (in " +"seconds); set to zero to disable auto-saving. auto-saving might be disabled " +"on slow drives." +msgstr "" +"regjistroni automatikisht historikun gjatë procesit të zhvillimit në " +"intervalin e dhënë (në sekonda); zeroja e çaktivizon vetëregjistrimin. " +"funksioni mund të bëhet joaktiv për disqet e ngadalta." + +#: ../build/bin/preferences_gen.h:7327 msgid "look for updated XMP files on startup" msgstr "nis duke parë për skedarët e azhurnuar XMP" -#: ../build/bin/preferences_gen.h:6967 +#: ../build/bin/preferences_gen.h:7340 msgid "" "check file modification times of all XMP files on startup to check if any " "got updated in the meantime" @@ -1829,15 +1983,19 @@ "gjatë nisjes së programit do të kontrollohet data e modifikimit të gjithë " "skedarëve XMP për të parë a ka pasur azhurnime" -#: ../build/bin/preferences_gen.h:7007 +#: ../build/bin/preferences_gen.h:7372 +msgid "miscellaneous" +msgstr "të ndryshme" + +#: ../build/bin/preferences_gen.h:7374 msgid "interface" msgstr "ndërfaqja" -#: ../build/bin/preferences_gen.h:7027 +#: ../build/bin/preferences_gen.h:7393 msgid "load default shortcuts at startup" msgstr "nis duke hapur shkurtoret standarde" -#: ../build/bin/preferences_gen.h:7041 +#: ../build/bin/preferences_gen.h:7406 msgid "" "load default shortcuts before user settings. switch off to prevent deleted " "defaults returning" @@ -1845,30 +2003,30 @@ "shkurtoret standarde do të hapen para atyre që zgjidhni. duhet çaktivizuar " "për të mos i rikthyer parametrat standardë të fshirë" -#: ../build/bin/preferences_gen.h:7063 +#: ../build/bin/preferences_gen.h:7427 msgid "scale slider step with min/max" msgstr "shkallëzoj hapat e shkarësit me min/maks" -#: ../build/bin/preferences_gen.h:7077 +#: ../build/bin/preferences_gen.h:7440 msgid "vary slider step size with min/max range" msgstr "ndryshoni intervalin e shkarësit me vlera min/maks" -#: ../build/bin/preferences_gen.h:7099 +#: ../build/bin/preferences_gen.h:7461 msgid "sort built-in presets first" msgstr "rendit fillimisht vlerat e paracaktuara të programit" -#: ../build/bin/preferences_gen.h:7113 +#: ../build/bin/preferences_gen.h:7474 msgid "" "whether to show built-in presets first before user's presets in presets menu." msgstr "" "për shfaqjen e vlerave të paracaktuara të programit, të cilat marrin " "përparësi në menunë e vlerave." -#: ../build/bin/preferences_gen.h:7135 +#: ../build/bin/preferences_gen.h:7495 msgid "mouse wheel scrolls modules side panel by default" msgstr "rrëshqas panelin anësor të moduleve me rrotën e mausit" -#: ../build/bin/preferences_gen.h:7149 +#: ../build/bin/preferences_gen.h:7508 msgid "" "when enabled, use mouse wheel to scroll modules side panel. use ctrl+alt to " "use mouse wheel for data entry. when disabled, this behavior is reversed" @@ -1877,11 +2035,11 @@ "përdorni ctrl+alt që rrota e mausit të përdoret për hedhjen e të dhënave. " "kur çaktivizohet kryhet veprimi i kundërt" -#: ../build/bin/preferences_gen.h:7171 +#: ../build/bin/preferences_gen.h:7529 msgid "always show panels' scrollbars" msgstr "gjithmonë tregoj rrëshqitësit e paneleve" -#: ../build/bin/preferences_gen.h:7185 +#: ../build/bin/preferences_gen.h:7542 msgid "" "defines whether the panel scrollbars should be always visible or activated " "only depending on the content. (need a restart)" @@ -1889,11 +2047,11 @@ "përcaktoni a duhen shfaqur gjithmonë rrëshqitësit e paneleve apo " "duhenaktivizuar në varësi të përmbajtjes. (duhet rihapur aplikacioni)" -#: ../build/bin/preferences_gen.h:7207 +#: ../build/bin/preferences_gen.h:7563 msgid "duration of the UI transitions in ms" msgstr "kohëzgjatja e efektit të kalimeve grafike në ms" -#: ../build/bin/preferences_gen.h:7231 +#: ../build/bin/preferences_gen.h:7587 msgid "" "how long the transitions take (in ms) for expanding or collapsing modules " "and other UI elements" @@ -1901,19 +2059,19 @@ "kohëzgjatja e efektit të kalimeve grafike (në ms) për palosjen/shpalosjen e " "moduleve dhe elementeve grafike" -#: ../build/bin/preferences_gen.h:7253 +#: ../build/bin/preferences_gen.h:7608 msgid "position of the scopes module" msgstr "pozicioni i modulit të indikatorëve" -#: ../build/bin/preferences_gen.h:7291 +#: ../build/bin/preferences_gen.h:7622 msgid "position the scopes at the top-left or top-right of the screen" msgstr "indikatorët pozicionohen lart-majtas ose poshtë-djathtas ekranit" -#: ../build/bin/preferences_gen.h:7313 +#: ../build/bin/preferences_gen.h:7643 msgid "method to use for getting the display profile" msgstr "metoda e përdorur për marrjen e profilit të ekranit" -#: ../build/bin/preferences_gen.h:7356 +#: ../build/bin/preferences_gen.h:7657 msgid "" "this option allows to force a specific means of getting the current display " "profile.\n" @@ -1923,11 +2081,11 @@ "caktuar.\n" "është me dobi kur njëra alternativë jep rezultate të gabuara" -#: ../build/bin/preferences_gen.h:7378 +#: ../build/bin/preferences_gen.h:7678 msgid "order or exclude MIDI devices" msgstr "porosit ose përjashtoj aparatet midi" -#: ../build/bin/preferences_gen.h:7396 +#: ../build/bin/preferences_gen.h:7696 msgid "" "comma-separated list of device name fragments that if matched load MIDI " "device at id given by location in list\n" @@ -1940,70 +2098,66 @@ "numrin e butonëve, si 'BeatStep:63:16'" #. tags -#: ../build/bin/preferences_gen.h:7412 ../src/develop/lightroom.c:1516 -#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:333 -#: ../src/libs/image.c:558 ../src/libs/metadata_view.c:162 +#: ../build/bin/preferences_gen.h:7715 ../src/develop/lightroom.c:1573 +#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:322 +#: ../src/libs/image.c:614 ../src/libs/metadata_view.c:166 msgid "tags" msgstr "etiketat" -#: ../build/bin/preferences_gen.h:7432 +#: ../build/bin/preferences_gen.h:7734 msgid "omit hierarchy in simple tag lists" msgstr "evitoj hierarkinë në listat e thjeshta me etiketa" -#: ../build/bin/preferences_gen.h:7446 +#: ../build/bin/preferences_gen.h:7747 msgid "" -"when creating XMP file the hierarchical tags are also added as a simple " -"list\n" +"when creating an XMP sidecar file the hierarchical tags are also added as a " +"simple list\n" "of non-hierarchical ones to make them visible to some other programs.\n" "when this option is checked darktable will only include their last part\n" "and ignore the rest. so 'foo|bar|baz' will only add 'baz'." msgstr "" -"kur krijohet skedari XMP, etiketat hierarkike shtohen në listë të thjeshtë\n" -"me etiketa johierarkike për t'u bërë të aksesueshme nga programet e tjera.\n" +"kur krijohet skedari XMP, etiketat hierarkike shtohen në një listë të " +"thjeshtë\n" +"me etiketat johierarkike për t'u bërë të aksesueshme nga programet e tjera.\n" "kur opsioni aktivizohet, darktable do të përfshijë vetëm pjesën e fundit\n" "dhe do i shpërfillë të tjerat. pra 'foo|bar|baz' do të bëhet 'baz'." -#: ../build/bin/preferences_gen.h:7456 +#: ../build/bin/preferences_gen.h:7756 msgid "shortcuts with multiple instances" msgstr "shkurtoret për instancat shumëfishe" -#: ../build/bin/preferences_gen.h:7461 -msgid "" -"where multiple module instances are present, these preferences control rules " -"that are applied (in order) to decide which module instance shortcuts will " -"be applied to" -msgstr "" -"kur përdorni disa instanca, ky funksion kontrollon rregullat që aplikohen " -"për të vendosur shkurtoret për secilën instancë të modulit" - -#: ../build/bin/preferences_gen.h:7477 +#: ../build/bin/preferences_gen.h:7775 msgid "prefer focused instance" msgstr "preferoj instancat në fokus" -#: ../build/bin/preferences_gen.h:7491 +#: ../build/bin/preferences_gen.h:7788 msgid "" -"if an instance of the module has focus, apply shortcut to that instance\n" +"where multiple instances of a module are present, apply shortcuts to the " +"instance that has focus\n" +"if none are focused, the preferences below control rules that are followed " +"(in order) to decide which module instance shortcuts will be applied to.\n" "note: blending shortcuts always apply to the focused instance" msgstr "" -"nëse fokusi është te instanca e një moduli, shkurtorja do të aplikohet për " -"atë instancë\n" -"shënim: kur bashkoni disa shkurtore ato gjithmonë aplikohen te instanca në " -"fokus" +"kur përdoren disa instanca, instance që është në focus do të aplikohet me " +"shkurtore\n" +"nëse nuk ka asnjë në focus, këto preferenca përcaktojnë se cilat rregulla " +"ndiqen (në radhë) për të aplikuar shkurtoret për çdo instancë.\n" +"shënim: shkurtoret e bashkimit aplikohen gjithmonë te instanca e fokusuar" -#: ../build/bin/preferences_gen.h:7513 +#: ../build/bin/preferences_gen.h:7809 msgid "prefer expanded instances" msgstr "preferoj instancat e shpalosura" -#: ../build/bin/preferences_gen.h:7527 +#: ../build/bin/preferences_gen.h:7822 msgid "if instances of the module are expanded, ignore collapsed instances" msgstr "" "kur shpalosen instancat e një moduli, instancat e palosura do të shpërfillen" -#: ../build/bin/preferences_gen.h:7549 +#: ../build/bin/preferences_gen.h:7843 msgid "prefer enabled instances" msgstr "preferoj instancat aktive" -#: ../build/bin/preferences_gen.h:7563 +#: ../build/bin/preferences_gen.h:7856 msgid "" "after applying the above rule, if instances of the module are active, ignore " "inactive instances" @@ -2011,11 +2165,11 @@ "kur aplikoni rregullën më sipër, nëse keni një modul me instanca aktive, " "instancat joaktive do të shpërfillen" -#: ../build/bin/preferences_gen.h:7585 +#: ../build/bin/preferences_gen.h:7877 msgid "prefer unmasked instances" msgstr "preferoj instancat pa maska" -#: ../build/bin/preferences_gen.h:7599 +#: ../build/bin/preferences_gen.h:7890 msgid "" "after applying the above rules, if instances of the module are unmasked, " "ignore masked instances" @@ -2023,11 +2177,11 @@ "kur aplikoni rregullat më sipër, nëse keni një modul me instanca pa maska, " "instancat me maska do të shpërfillen" -#: ../build/bin/preferences_gen.h:7621 +#: ../build/bin/preferences_gen.h:7911 msgid "selection order" msgstr "radha e përzgjedhjes" -#: ../build/bin/preferences_gen.h:7659 +#: ../build/bin/preferences_gen.h:7925 msgid "" "after applying the above rules, apply the shortcut based on its position in " "the pixelpipe" @@ -2035,11 +2189,11 @@ "me rregullat më sipër, shkurtorja do të aplikohet në varësi të pozicionit të " "saj në linjën e zhvillimit" -#: ../build/bin/preferences_gen.h:7681 +#: ../build/bin/preferences_gen.h:7946 msgid "allow visual assignment to specific instances" msgstr "lejoj funksionet vizuale për instanca të caktuara" -#: ../build/bin/preferences_gen.h:7695 +#: ../build/bin/preferences_gen.h:7959 msgid "" "when multiple instances are present on an image this allows shortcuts to be " "visually assigned to those specific instances\n" @@ -2049,79 +2203,43 @@ "vizualisht me anë të shkurtoreve të caktuara\n" "përndryshe shkurtoret caktohen gjithmonë për instancën e preferuar" -#: ../build/bin/preferences_gen.h:7705 +#: ../build/bin/preferences_gen.h:7968 msgid "map / geolocalization view" msgstr "këndi i hartës / gjeolokalizimi" -#: ../build/bin/preferences_gen.h:7725 +#: ../build/bin/preferences_gen.h:7987 msgid "pretty print the image location" msgstr "printoj bukur vendndodhjen e imazhit" -#: ../build/bin/preferences_gen.h:7739 +#: ../build/bin/preferences_gen.h:8000 msgid "" "show a more readable representation of the location in the image information " "module" msgstr "" "vendndodhja e imazhit në modulin e informacionit do të interpretohet më qartë" -#: ../build/bin/preferences_gen.h:7749 +#: ../build/bin/preferences_gen.h:8009 msgid "slideshow view" msgstr "këndi i diafilmit" -#: ../build/bin/preferences_gen.h:7769 +#: ../build/bin/preferences_gen.h:8028 msgid "waiting time between each picture in slideshow" msgstr "koha e pritjes për fotot e diafilmit" -#: ../build/bin/preferences_gen.h:7831 -msgid "session options" -msgstr "opsionet e sesionit" - -#: ../build/bin/preferences_gen.h:7851 -msgid "base directory naming pattern" -msgstr "modeli i emërtimit të direktorisë bazë" - -#: ../build/bin/preferences_gen.h:7869 ../build/bin/preferences_gen.h:7909 -msgid "part of full import path for an import session" -msgstr "adresa e plotë për import gjatë sesionit të importit" - -#: ../build/bin/preferences_gen.h:7891 -msgid "sub directory naming pattern" -msgstr "modeli i emërtimit të nëndirektorive" - -#: ../build/bin/preferences_gen.h:7931 -msgid "keep original filename" -msgstr "mbaj emrin origjinal" - -#: ../build/bin/preferences_gen.h:7945 -msgid "" -"keep original filename instead of a pattern while importing from camera or " -"card" -msgstr "" -"kur importoni nga kamera ose karta, mbani emrin origjinal të skedarëve, jo " -"modelin" - -#: ../build/bin/preferences_gen.h:7967 -msgid "file naming pattern" -msgstr "modeli i emërtimit të skedarëve" - -#: ../build/bin/preferences_gen.h:7985 -msgid "file naming pattern used for a import session" -msgstr "modeli i përdorur për emërtimin e skedarëve gjatë sesionit të importit" - -#: ../build/bin/preferences_gen.h:8022 +#: ../build/bin/preferences_gen.h:8088 msgid "do not set the 'uncategorized' entry for tags" msgstr "nuk përdor etiketa 'të pakategorizuara'" -#: ../build/bin/preferences_gen.h:8036 +#: ../build/bin/preferences_gen.h:8101 msgid "" "do not set the 'uncategorized' entry for tags which do not have children" msgstr "nuk do të përdoren etiketat 'pa kategori' që nuk kanë elemente vartëse" -#: ../build/bin/preferences_gen.h:8058 +#: ../build/bin/preferences_gen.h:8122 msgid "tags case sensitivity" msgstr "madhësia e shkrimit të etiketave" -#: ../build/bin/preferences_gen.h:8096 +#: ../build/bin/preferences_gen.h:8136 msgid "" "tags case sensitivity. without the Sqlite ICU extension, insensitivity works " "only for the 26 latin letters" @@ -2129,29 +2247,29 @@ "madhësia e shkrimit të etiketave. kur mungon shtojca Sqlite ICU, shkrimi do " "të respektohet vetëm për 26 shkronjat latine" -#: ../build/bin/preferences_gen.h:8118 ../build/bin/preferences_gen.h:8358 +#: ../build/bin/preferences_gen.h:8157 ../build/bin/preferences_gen.h:8368 msgid "number of collections to be stored" msgstr "numri i koleksioneve që duhen ruajtur" -#: ../build/bin/preferences_gen.h:8142 ../build/bin/preferences_gen.h:8382 +#: ../build/bin/preferences_gen.h:8181 ../build/bin/preferences_gen.h:8392 msgid "the number of recent collections to store and show in this list" msgstr "numri i koleksioneve të fundit që ruhen dhe shfaqen në listë" -#: ../build/bin/preferences_gen.h:8164 +#: ../build/bin/preferences_gen.h:8202 msgid "hide the history button and show a specific module instead" msgstr "fsheh butonin e historikut dhe tregoj modulin e caktuar" -#: ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8215 msgid "hide the history button and show the recent collections module instead" msgstr "" "butoni i historikut do të fshihet dhe do të shfaqet moduli i koleksioneve të " "fundit" -#: ../build/bin/preferences_gen.h:8200 +#: ../build/bin/preferences_gen.h:8236 msgid "number of folder levels to show in lists" msgstr "numri i niveleve të dosjeve që tregohen në listë" -#: ../build/bin/preferences_gen.h:8224 +#: ../build/bin/preferences_gen.h:8260 msgid "" "the number of folder levels to show in film roll names, starting from the " "right" @@ -2159,19 +2277,24 @@ "numri i niveleve të dosjeve që duhen shfaqur për filmat, duke nisur nga e " "djathta" -#: ../build/bin/preferences_gen.h:8246 +#: ../build/bin/preferences_gen.h:8281 msgid "sort film rolls by" msgstr "rendit filmat sipas" -#: ../build/bin/preferences_gen.h:8284 +#: ../build/bin/preferences_gen.h:8292 +msgctxt "preferences" +msgid "chronological" +msgstr "kronologjike" + +#: ../build/bin/preferences_gen.h:8295 msgid "sets the collections-list order for film rolls" msgstr "vendosni renditjen e filmave në listën e koleksioneve" -#: ../build/bin/preferences_gen.h:8306 +#: ../build/bin/preferences_gen.h:8316 msgid "sort collection descending" msgstr "rendit koleksionet në zbritje" -#: ../build/bin/preferences_gen.h:8320 +#: ../build/bin/preferences_gen.h:8329 msgid "" "sort the following collections in descending order: 'film roll' by folder, " "'folder', 'times' (e.g. 'capture date')" @@ -2179,11 +2302,11 @@ "koleksionet e mëposhtme do të renditen sipas rendit zbritës: 'filmi' sipas " "dosjes, 'dosja', 'herët' (p.sh. 'data e shkrepjes')" -#: ../build/bin/preferences_gen.h:8404 +#: ../build/bin/preferences_gen.h:8413 msgid "prefer a history button in the collections module" msgstr "preferoj butonin e historikut në modulin e koleksioneve" -#: ../build/bin/preferences_gen.h:8418 +#: ../build/bin/preferences_gen.h:8426 msgid "" "hide this module and instead access collections history with a button in the " "collections module" @@ -2191,11 +2314,11 @@ "me fshehjen e këtij moduli, historiku i koleksioneve mund të hapet përmes " "butonit në modulin e koleksioneve" -#: ../build/bin/preferences_gen.h:8472 +#: ../build/bin/preferences_gen.h:8483 msgid "suggested tags level of confidence" msgstr "probabiliteti i sugjerimit të etiketave" -#: ../build/bin/preferences_gen.h:8497 +#: ../build/bin/preferences_gen.h:8508 #, no-c-format msgid "" "level of confidence to include the tag in the suggestions list, 0: all " @@ -2206,11 +2329,11 @@ "përfshihen gjithë etiketat, 99: korrespondojnë 99% e etiketave, 100: " "përfshihen vetëm etiketat e fundit (më shpejt)" -#: ../build/bin/preferences_gen.h:8519 +#: ../build/bin/preferences_gen.h:8529 msgid "number of recently attached tags" msgstr "numri i etiketave të bashkëngjitura së fundmi" -#: ../build/bin/preferences_gen.h:8543 +#: ../build/bin/preferences_gen.h:8553 msgid "" "number of recently attached tags which are included in the suggestions list. " "the value `-1' disables the recent list" @@ -2236,14 +2359,15 @@ #. focal length #: ../build/lib/darktable/plugins/introspection_ashift.c:148 #: ../build/lib/darktable/plugins/introspection_ashift.c:291 -#: ../src/common/collection.c:714 ../src/gui/preferences.c:844 -#: ../src/gui/presets.c:718 ../src/libs/camera.c:550 -#: ../src/libs/metadata_view.c:143 +#: ../src/common/collection.c:627 ../src/gui/preferences.c:842 +#: ../src/gui/presets.c:721 ../src/libs/camera.c:550 +#: ../src/libs/metadata_view.c:145 msgid "focal length" msgstr "largësia fokale" #: ../build/lib/darktable/plugins/introspection_ashift.c:154 #: ../build/lib/darktable/plugins/introspection_ashift.c:295 +#: ../src/libs/metadata_view.c:147 msgid "crop factor" msgstr "koeficienti prerës" @@ -2259,7 +2383,7 @@ #: ../build/lib/darktable/plugins/introspection_ashift.c:172 #: ../build/lib/darktable/plugins/introspection_ashift.c:307 -#: ../src/iop/lens.cc:3784 +#: ../src/iop/lens.cc:4438 msgid "lens model" msgstr "modeli i objektivit" @@ -2281,14 +2405,14 @@ #. DEVELOP_MASK_DISABLED #: ../build/lib/darktable/plugins/introspection_ashift.c:366 -#: ../build/lib/darktable/plugins/introspection_colorin.c:300 +#: ../build/lib/darktable/plugins/introspection_colorin.c:303 #: ../build/lib/darktable/plugins/introspection_highlights.c:310 #: ../build/lib/darktable/plugins/introspection_vignette.c:264 #: ../src/develop/blend_gui.c:153 ../src/develop/blend_gui.c:182 -#: ../src/develop/blend_gui.c:3410 ../src/gui/accelerators.c:130 -#: ../src/gui/accelerators.c:140 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/imageio/format/j2k.c:669 -#: ../src/libs/live_view.c:361 ../src/libs/masks.c:113 +#: ../src/develop/blend_gui.c:3429 ../src/gui/accelerators.c:148 +#: ../src/gui/accelerators.c:158 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/imageio/format/j2k.c:686 +#: ../src/libs/live_view.c:361 msgid "off" msgstr "fikur" @@ -2312,7 +2436,7 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:146 #: ../build/lib/darktable/plugins/introspection_basecurve.c:239 -#: ../src/libs/metadata_view.c:142 +#: ../src/libs/metadata_view.c:144 msgid "exposure bias" msgstr "devijimi i ekspozimit" @@ -2332,16 +2456,16 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:262 #: ../build/lib/darktable/plugins/introspection_basicadj.c:249 #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:153 -#: ../build/lib/darktable/plugins/introspection_lens.cc:444 +#: ../build/lib/darktable/plugins/introspection_lens.cc:533 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:251 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:153 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:270 -#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2193 -#: ../src/iop/channelmixerrgb.c:4667 ../src/iop/clipping.c:1900 -#: ../src/iop/clipping.c:2093 ../src/iop/clipping.c:2108 -#: ../src/iop/retouch.c:463 ../src/libs/collect.c:1907 -#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1023 -#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:132 +#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2214 +#: ../src/iop/channelmixerrgb.c:4735 ../src/iop/clipping.c:1953 +#: ../src/iop/clipping.c:2146 ../src/iop/clipping.c:2161 +#: ../src/iop/retouch.c:507 ../src/libs/collect.c:2043 +#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1101 +#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:109 #: ../src/libs/live_view.c:311 ../src/libs/print_settings.c:2835 msgid "none" msgstr "asnjë" @@ -2359,7 +2483,7 @@ #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:252 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:154 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:271 -#: ../src/develop/blend_gui.c:2363 ../src/develop/blend_gui.c:2397 +#: ../src/develop/blend_gui.c:2379 ../src/develop/blend_gui.c:2413 msgid "luminance" msgstr "luminanca" @@ -2469,7 +2593,7 @@ #: ../build/lib/darktable/plugins/introspection_graduatednd.c:144 #: ../build/lib/darktable/plugins/introspection_watermark.c:136 #: ../build/lib/darktable/plugins/introspection_watermark.c:265 -#: ../src/iop/ashift.c:6112 ../src/libs/masks.c:108 +#: ../src/iop/ashift.c:6059 ../src/libs/masks.c:109 msgid "rotation" msgstr "rrotullimi" @@ -2480,7 +2604,7 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:125 #: ../build/lib/darktable/plugins/introspection_blurs.c:202 -#: ../src/libs/masks.c:109 +#: ../src/libs/masks.c:110 msgid "curvature" msgstr "kurbatura" @@ -2488,13 +2612,13 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:206 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:81 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:148 -#: ../src/iop/colorbalancergb.c:1968 +#: ../src/iop/colorbalancergb.c:2039 msgid "offset" msgstr "ofseti" #: ../build/lib/darktable/plugins/introspection_blurs.c:220 -#: ../src/common/collection.c:712 ../src/gui/preferences.c:828 -#: ../src/gui/presets.c:660 ../src/libs/metadata_view.c:139 +#: ../src/common/collection.c:625 ../src/gui/preferences.c:826 +#: ../src/gui/presets.c:663 ../src/libs/metadata_view.c:141 msgid "lens" msgstr "objektiv" @@ -2510,63 +2634,90 @@ msgid "gaussian" msgstr "gausian" -#: ../build/lib/darktable/plugins/introspection_borders.c:112 -#: ../build/lib/darktable/plugins/introspection_borders.c:253 -#: ../src/common/collection.c:722 ../src/libs/filtering.c:59 +#: ../build/lib/darktable/plugins/introspection_borders.c:122 +#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../src/common/collection.c:635 ../src/libs/filtering.c:59 msgid "aspect ratio" msgstr "raporti përmasor" #. // portrait / landscape -#: ../build/lib/darktable/plugins/introspection_borders.c:130 -#: ../build/lib/darktable/plugins/introspection_borders.c:265 +#: ../build/lib/darktable/plugins/introspection_borders.c:140 +#: ../build/lib/darktable/plugins/introspection_borders.c:281 #: ../src/iop/flip.c:75 ../src/libs/print_settings.c:2517 msgid "orientation" msgstr "orientimi" -#: ../build/lib/darktable/plugins/introspection_borders.c:136 -#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../build/lib/darktable/plugins/introspection_borders.c:146 +#: ../build/lib/darktable/plugins/introspection_borders.c:285 msgid "border size" msgstr "bordura" -#: ../build/lib/darktable/plugins/introspection_borders.c:142 -#: ../build/lib/darktable/plugins/introspection_borders.c:273 +#: ../build/lib/darktable/plugins/introspection_borders.c:152 +#: ../build/lib/darktable/plugins/introspection_borders.c:289 msgid "horizontal offset" msgstr "ofseti horizontal" -#: ../build/lib/darktable/plugins/introspection_borders.c:160 -#: ../build/lib/darktable/plugins/introspection_borders.c:285 +#: ../build/lib/darktable/plugins/introspection_borders.c:170 +#: ../build/lib/darktable/plugins/introspection_borders.c:301 msgid "vertical offset" msgstr "ofseti vertikal" -#: ../build/lib/darktable/plugins/introspection_borders.c:178 -#: ../build/lib/darktable/plugins/introspection_borders.c:297 +#: ../build/lib/darktable/plugins/introspection_borders.c:188 +#: ../build/lib/darktable/plugins/introspection_borders.c:313 msgid "frame line size" msgstr "përmasat e vijës së kornizës" -#: ../build/lib/darktable/plugins/introspection_borders.c:184 -#: ../build/lib/darktable/plugins/introspection_borders.c:301 +#: ../build/lib/darktable/plugins/introspection_borders.c:194 +#: ../build/lib/darktable/plugins/introspection_borders.c:317 msgid "frame line offset" msgstr "ofseti i vijës së kornizës" -#: ../build/lib/darktable/plugins/introspection_borders.c:327 -#: ../src/gui/preferences.c:849 ../src/iop/ashift.c:6291 -#: ../src/iop/basicadj.c:632 ../src/iop/flip.c:472 ../src/iop/flip.c:474 -#: ../src/iop/levels.c:641 ../src/iop/rgblevels.c:1050 +#: ../build/lib/darktable/plugins/introspection_borders.c:218 +#: ../build/lib/darktable/plugins/introspection_borders.c:333 +msgid "basis" +msgstr "bazë" + +#: ../build/lib/darktable/plugins/introspection_borders.c:347 +#: ../build/lib/darktable/plugins/introspection_borders.c:353 +#: ../src/gui/preferences.c:847 ../src/imageio/format/jpeg.c:604 +#: ../src/iop/ashift.c:6238 ../src/iop/basicadj.c:662 ../src/iop/flip.c:470 +#: ../src/iop/flip.c:472 ../src/iop/levels.c:657 ../src/iop/rgblevels.c:1105 msgid "auto" msgstr "auto" -#: ../build/lib/darktable/plugins/introspection_borders.c:328 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:309 +#: ../build/lib/darktable/plugins/introspection_borders.c:348 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:315 #: ../src/libs/filters/ratio.c:122 ../src/libs/print_settings.c:2519 msgid "portrait" msgstr "portret" -#: ../build/lib/darktable/plugins/introspection_borders.c:329 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:305 +#: ../build/lib/darktable/plugins/introspection_borders.c:349 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:311 #: ../src/libs/filters/ratio.c:124 ../src/libs/print_settings.c:2519 msgid "landscape" msgstr "panoramë" +#: ../build/lib/darktable/plugins/introspection_borders.c:354 +#: ../src/iop/relight.c:275 ../src/libs/export.c:1223 +#: ../src/libs/metadata_view.c:151 ../src/libs/print_settings.c:2537 +msgid "width" +msgstr "gjerësia" + +#: ../build/lib/darktable/plugins/introspection_borders.c:355 +#: ../build/lib/darktable/plugins/introspection_watermark.c:326 +#: ../src/libs/export.c:1229 ../src/libs/metadata_view.c:152 +#: ../src/libs/print_settings.c:2541 +msgid "height" +msgstr "gjatësia" + +#: ../build/lib/darktable/plugins/introspection_borders.c:356 +msgid "shorter" +msgstr "më e shkurtër" + +#: ../build/lib/darktable/plugins/introspection_borders.c:357 +msgid "longer" +msgstr "më e gjatë" + #: ../build/lib/darktable/plugins/introspection_cacorrect.c:42 #: ../build/lib/darktable/plugins/introspection_cacorrect.c:91 msgid "avoid colorshift" @@ -2613,9 +2764,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:67 #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:132 -#: ../src/iop/atrous.c:1522 ../src/iop/bilateral.cc:350 ../src/iop/clahe.c:335 -#: ../src/iop/dither.c:760 ../src/iop/lowpass.c:584 ../src/iop/shadhi.c:675 -#: ../src/iop/sharpen.c:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:340 +#: ../build/lib/darktable/plugins/introspection_lens.cc:501 +#: ../src/iop/atrous.c:1636 ../src/iop/bilateral.cc:352 ../src/iop/clahe.c:337 +#: ../src/iop/dither.c:762 ../src/iop/lowpass.c:597 ../src/iop/shadhi.c:710 +#: ../src/iop/sharpen.c:435 msgid "radius" msgstr "rrezja" @@ -2623,9 +2776,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:136 #: ../build/lib/darktable/plugins/introspection_highlights.c:137 #: ../build/lib/darktable/plugins/introspection_highlights.c:240 -#: ../src/iop/bloom.c:376 ../src/iop/denoiseprofile.c:3818 -#: ../src/iop/grain.c:584 ../src/iop/hazeremoval.c:201 -#: ../src/iop/hotpixels.c:388 ../src/iop/nlmeans.c:460 ../src/iop/velvia.c:279 +#: ../build/lib/darktable/plugins/introspection_lens.cc:334 +#: ../build/lib/darktable/plugins/introspection_lens.cc:497 +#: ../src/iop/bloom.c:372 ../src/iop/denoiseprofile.c:3822 +#: ../src/iop/grain.c:602 ../src/iop/hazeremoval.c:203 +#: ../src/iop/hotpixels.c:467 ../src/iop/nlmeans.c:463 ../src/iop/velvia.c:288 msgid "strength" msgstr "forca" @@ -2640,41 +2795,41 @@ msgstr "aberracion kromatik shumë i madh" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:158 -#: ../src/common/collection.c:1507 ../src/common/color_vocabulary.c:232 -#: ../src/common/colorlabels.c:334 ../src/develop/blend_gui.c:2330 -#: ../src/develop/blend_gui.c:2378 ../src/develop/lightroom.c:834 -#: ../src/gui/gtk.c:3137 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:354 -#: ../src/iop/channelmixer.c:618 ../src/iop/channelmixer.c:628 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/colorzones.c:2263 -#: ../src/iop/temperature.c:1935 ../src/iop/temperature.c:2129 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:260 -#: ../src/libs/histogram.c:2397 +#: ../src/common/collection.c:1374 ../src/common/color_vocabulary.c:232 +#: ../src/common/colorlabels.c:333 ../src/develop/blend_gui.c:2346 +#: ../src/develop/blend_gui.c:2394 ../src/develop/lightroom.c:887 +#: ../src/gui/gtk.c:3183 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:356 +#: ../src/iop/channelmixer.c:637 ../src/iop/channelmixer.c:647 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/colorzones.c:2499 +#: ../src/iop/temperature.c:1912 ../src/iop/temperature.c:2094 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:260 +#: ../src/libs/histogram.c:2724 msgid "red" msgstr "kuqe" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:159 -#: ../src/common/collection.c:1511 ../src/common/color_vocabulary.c:277 -#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2336 -#: ../src/develop/blend_gui.c:2384 ../src/develop/lightroom.c:838 -#: ../src/gui/gtk.c:3138 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:359 -#: ../src/iop/channelmixer.c:619 ../src/iop/channelmixer.c:634 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/colorzones.c:2266 -#: ../src/iop/temperature.c:1919 ../src/iop/temperature.c:1937 -#: ../src/iop/temperature.c:2130 ../src/libs/collect.c:1791 -#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2389 +#: ../src/common/collection.c:1378 ../src/common/color_vocabulary.c:277 +#: ../src/common/colorlabels.c:335 ../src/develop/blend_gui.c:2352 +#: ../src/develop/blend_gui.c:2400 ../src/develop/lightroom.c:891 +#: ../src/gui/gtk.c:3184 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:361 +#: ../src/iop/channelmixer.c:638 ../src/iop/channelmixer.c:653 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/colorzones.c:2502 +#: ../src/iop/temperature.c:1896 ../src/iop/temperature.c:1914 +#: ../src/iop/temperature.c:2095 ../src/libs/collect.c:1916 +#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2715 msgid "green" msgstr "gjelbër" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:160 -#: ../src/common/collection.c:1513 ../src/common/color_vocabulary.c:324 -#: ../src/common/colorlabels.c:337 ../src/develop/blend_gui.c:2342 -#: ../src/develop/blend_gui.c:2390 ../src/develop/lightroom.c:840 -#: ../src/gui/gtk.c:3139 ../src/iop/bilateral.cc:364 -#: ../src/iop/channelmixer.c:620 ../src/iop/channelmixer.c:640 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/colorzones.c:2268 -#: ../src/iop/temperature.c:1939 ../src/iop/temperature.c:2131 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:263 -#: ../src/libs/histogram.c:2381 +#: ../src/common/collection.c:1380 ../src/common/color_vocabulary.c:324 +#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2358 +#: ../src/develop/blend_gui.c:2406 ../src/develop/lightroom.c:893 +#: ../src/gui/gtk.c:3185 ../src/iop/bilateral.cc:366 +#: ../src/iop/channelmixer.c:639 ../src/iop/channelmixer.c:659 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/colorzones.c:2504 +#: ../src/iop/temperature.c:1916 ../src/iop/temperature.c:2096 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:263 +#: ../src/libs/histogram.c:2706 msgid "blue" msgstr "blu" @@ -2917,7 +3072,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:303 #: ../build/lib/darktable/plugins/introspection_crop.c:61 #: ../build/lib/darktable/plugins/introspection_crop.c:134 -#: ../src/gui/gtk.c:1141 ../src/iop/atrous.c:1518 +#: ../src/gui/gtk.c:1234 ../src/iop/atrous.c:1632 msgid "left" msgstr "majtas" @@ -2925,7 +3080,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:307 #: ../build/lib/darktable/plugins/introspection_crop.c:67 #: ../build/lib/darktable/plugins/introspection_crop.c:138 -#: ../src/gui/accelerators.c:113 ../src/gui/gtk.c:1155 +#: ../src/gui/accelerators.c:131 ../src/gui/gtk.c:1240 msgid "top" msgstr "lart" @@ -2933,7 +3088,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:311 #: ../build/lib/darktable/plugins/introspection_crop.c:73 #: ../build/lib/darktable/plugins/introspection_crop.c:142 -#: ../src/gui/gtk.c:1148 ../src/iop/atrous.c:1517 +#: ../src/gui/gtk.c:1237 ../src/iop/atrous.c:1631 msgid "right" msgstr "djathtas" @@ -2941,7 +3096,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:315 #: ../build/lib/darktable/plugins/introspection_crop.c:79 #: ../build/lib/darktable/plugins/introspection_crop.c:146 -#: ../src/gui/accelerators.c:114 ../src/gui/gtk.c:1162 +#: ../src/gui/accelerators.c:132 ../src/gui/gtk.c:1243 msgid "bottom" msgstr "poshtë" @@ -2980,10 +3135,11 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:477 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:489 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:501 -#: ../src/develop/blend_gui.c:2356 ../src/develop/blend_gui.c:2404 -#: ../src/iop/atrous.c:1667 ../src/iop/channelmixerrgb.c:4457 -#: ../src/iop/channelmixerrgb.c:4573 ../src/iop/colorbalancergb.c:1895 -#: ../src/iop/colorzones.c:2402 ../src/iop/nlmeans.c:468 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 +#: ../src/develop/blend_gui.c:2372 ../src/develop/blend_gui.c:2420 +#: ../src/iop/atrous.c:1801 ../src/iop/channelmixerrgb.c:4525 +#: ../src/iop/channelmixerrgb.c:4641 ../src/iop/colorbalancergb.c:1966 +#: ../src/iop/colorzones.c:2645 ../src/iop/nlmeans.c:471 msgid "chroma" msgstr "kroma" @@ -3003,11 +3159,11 @@ #: ../build/lib/darktable/plugins/introspection_splittoning.c:73 #: ../build/lib/darktable/plugins/introspection_splittoning.c:134 #: ../build/lib/darktable/plugins/introspection_splittoning.c:142 -#: ../src/develop/blend_gui.c:2315 ../src/develop/blend_gui.c:2349 -#: ../src/develop/blend_gui.c:2411 ../src/iop/channelmixer.c:615 -#: ../src/iop/channelmixerrgb.c:4450 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/colorbalance.c:2042 ../src/iop/colorize.c:330 -#: ../src/iop/colorreconstruction.c:1240 ../src/iop/colorzones.c:2403 +#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2365 +#: ../src/develop/blend_gui.c:2427 ../src/iop/channelmixer.c:634 +#: ../src/iop/channelmixerrgb.c:4518 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/colorbalance.c:2017 ../src/iop/colorize.c:343 +#: ../src/iop/colorreconstruction.c:1249 ../src/iop/colorzones.c:2646 msgid "hue" msgstr "nuanca" @@ -3034,9 +3190,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:569 #: ../build/lib/darktable/plugins/introspection_toneequal.c:156 #: ../build/lib/darktable/plugins/introspection_toneequal.c:297 -#: ../src/iop/bilat.c:469 ../src/iop/colorbalance.c:2099 -#: ../src/iop/negadoctor.c:915 ../src/iop/shadhi.c:671 -#: ../src/iop/splittoning.c:507 +#: ../src/iop/bilat.c:479 ../src/iop/colorbalance.c:2074 +#: ../src/iop/negadoctor.c:934 ../src/iop/shadhi.c:706 +#: ../src/iop/splittoning.c:503 msgid "shadows" msgstr "hijet" @@ -3048,9 +3204,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:561 #: ../build/lib/darktable/plugins/introspection_toneequal.c:180 #: ../build/lib/darktable/plugins/introspection_toneequal.c:313 -#: ../src/iop/bilat.c:463 ../src/iop/colorbalance.c:2101 -#: ../src/iop/monochrome.c:561 ../src/iop/shadhi.c:672 -#: ../src/iop/splittoning.c:514 +#: ../src/iop/bilat.c:473 ../src/iop/colorbalance.c:2076 +#: ../src/iop/monochrome.c:583 ../src/iop/shadhi.c:707 +#: ../src/iop/splittoning.c:510 msgid "highlights" msgstr "reflekset" @@ -3067,13 +3223,13 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:565 #: ../build/lib/darktable/plugins/introspection_toneequal.c:168 #: ../build/lib/darktable/plugins/introspection_toneequal.c:305 -#: ../src/iop/colorbalance.c:2100 +#: ../src/iop/colorbalance.c:2075 msgid "mid-tones" msgstr "tonet e mesme" #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:340 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:537 -#: ../src/iop/filmic.c:1576 +#: ../src/iop/filmic.c:1601 msgid "global saturation" msgstr "saturimi global" @@ -3104,12 +3260,12 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:412 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:585 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:64 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:137 -#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:607 ../src/iop/bilat.c:458 -#: ../src/iop/colisa.c:304 ../src/iop/colorbalance.c:1947 -#: ../src/iop/colorbalance.c:1953 ../src/iop/filmic.c:1548 -#: ../src/iop/filmicrgb.c:4551 ../src/iop/lowpass.c:586 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:116 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:237 +#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:637 ../src/iop/bilat.c:468 +#: ../src/iop/colisa.c:298 ../src/iop/colorbalance.c:1922 +#: ../src/iop/colorbalance.c:1928 ../src/iop/filmic.c:1573 +#: ../src/iop/filmicrgb.c:4615 ../src/iop/lowpass.c:599 msgid "contrast" msgstr "kontrasti" @@ -3136,33 +3292,35 @@ msgid "blue-yellow contrast" msgstr "kontrasti i blu-verdhës" -#: ../build/lib/darktable/plugins/introspection_colorin.c:148 -#: ../build/lib/darktable/plugins/introspection_colorin.c:231 +#: ../build/lib/darktable/plugins/introspection_colorin.c:150 +#: ../build/lib/darktable/plugins/introspection_colorin.c:233 msgid "gamut clipping" msgstr "shkurtimi i spektrit të ngjyrave" -#: ../build/lib/darktable/plugins/introspection_colorin.c:301 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:201 -#: ../src/common/colorspaces.c:1251 ../src/common/colorspaces.c:1484 +#: ../build/lib/darktable/plugins/introspection_colorin.c:304 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:312 +#: ../src/common/colorspaces.c:1410 ../src/common/colorspaces.c:1700 #: ../src/libs/print_settings.c:1356 msgid "sRGB" msgstr "sRGB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:302 -#: ../src/common/colorspaces.c:1260 ../src/common/colorspaces.c:1486 +#: ../build/lib/darktable/plugins/introspection_colorin.c:305 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:311 +#: ../src/common/colorspaces.c:1421 ../src/common/colorspaces.c:1702 #: ../src/libs/print_settings.c:1363 msgid "Adobe RGB (compatible)" msgstr "Adobe RGB (kompatibël)" -#: ../build/lib/darktable/plugins/introspection_colorin.c:303 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 -#: ../src/common/colorspaces.c:1265 ../src/common/colorspaces.c:1488 +#: ../build/lib/darktable/plugins/introspection_colorin.c:306 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 +#: ../src/common/colorspaces.c:1428 ../src/common/colorspaces.c:1704 msgid "linear Rec709 RGB" msgstr "RGB Rec709 linear" -#: ../build/lib/darktable/plugins/introspection_colorin.c:304 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 -#: ../src/common/colorspaces.c:1274 ../src/common/colorspaces.c:1490 +#: ../build/lib/darktable/plugins/introspection_colorin.c:307 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:206 +#: ../src/common/colorspaces.c:1442 ../src/common/colorspaces.c:1706 msgid "linear Rec2020 RGB" msgstr "RGB Rec2020 linear" @@ -3190,7 +3348,7 @@ #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:127 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:45 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:92 -#: ../src/iop/shadhi.c:686 +#: ../src/iop/shadhi.c:721 msgid "spatial extent" msgstr "shtrirja hapësinore" @@ -3200,7 +3358,7 @@ msgstr "shtrirja e intervalit" #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:154 -#: ../src/iop/channelmixerrgb.c:4669 +#: ../src/iop/channelmixerrgb.c:4737 msgid "saturated colors" msgstr "ngjyrat e ngopura" @@ -3214,7 +3372,7 @@ #: ../build/lib/darktable/plugins/introspection_colorzones.c:233 #: ../build/lib/darktable/plugins/introspection_soften.c:66 #: ../build/lib/darktable/plugins/introspection_soften.c:121 -#: ../src/iop/atrous.c:1689 +#: ../src/iop/atrous.c:1835 msgid "mix" msgstr "kombinimi" @@ -3224,33 +3382,17 @@ msgstr "metoda e procesimit" #: ../build/lib/darktable/plugins/introspection_colorzones.c:255 -#: ../src/develop/blend_gui.c:2294 ../src/iop/channelmixer.c:617 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/colorchecker.c:1448 -#: ../src/iop/colorize.c:349 ../src/iop/colorzones.c:2401 -#: ../src/iop/exposure.c:1239 +#: ../src/develop/blend_gui.c:2310 ../src/iop/channelmixer.c:636 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/colorchecker.c:1453 +#: ../src/iop/colorize.c:362 ../src/iop/colorzones.c:2644 +#: ../src/iop/exposure.c:1257 msgid "lightness" msgstr "ndriçimi" -#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 -#: ../src/develop/blend_gui.c:2310 ../src/iop/basicadj.c:624 -#: ../src/iop/channelmixer.c:616 ../src/iop/colisa.c:306 -#: ../src/iop/colorbalance.c:2059 ../src/iop/colorbalancergb.c:1919 -#: ../src/iop/colorchecker.c:1483 ../src/iop/colorcontrast.c:90 -#: ../src/iop/colorcorrection.c:275 ../src/iop/colorize.c:343 -#: ../src/iop/lowpass.c:588 ../src/iop/soften.c:373 ../src/iop/velvia.c:84 -#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:971 -msgid "saturation" -msgstr "saturimi" - #: ../build/lib/darktable/plugins/introspection_colorzones.c:267 -#: ../src/iop/atrous.c:1309 ../src/iop/atrous.c:1313 -#: ../src/iop/denoiseprofile.c:3527 ../src/iop/rawdenoise.c:755 +#: ../src/iop/atrous.c:1410 ../src/iop/atrous.c:1414 +#: ../src/iop/denoiseprofile.c:3531 ../src/iop/rawdenoise.c:771 +#: ../src/iop/sigmoid.c:292 msgid "smooth" msgstr "e butë" @@ -3267,9 +3409,9 @@ #: ../build/lib/darktable/plugins/introspection_defringe.c:106 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:230 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:435 -#: ../src/iop/atrous.c:1572 ../src/iop/bloom.c:372 -#: ../src/iop/colorreconstruction.c:1236 ../src/iop/hotpixels.c:384 -#: ../src/iop/sharpen.c:449 +#: ../src/iop/atrous.c:1695 ../src/iop/bloom.c:368 +#: ../src/iop/colorreconstruction.c:1245 ../src/iop/hotpixels.c:463 +#: ../src/iop/sharpen.c:444 msgid "threshold" msgstr "pragu" @@ -3404,7 +3546,7 @@ #. history #: ../build/lib/darktable/plugins/introspection_demosaic.c:232 -#: ../src/common/collection.c:1526 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1394 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "basic" msgstr "kryesore" @@ -3477,12 +3619,9 @@ msgid "upgrade profiled transform" msgstr "përmirësoni transformimin e profilizuar" -#. -#. * Color mode combo box -#. #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:257 #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:388 -#: ../src/imageio/format/avif.c:786 ../src/libs/colorpicker.c:584 +#: ../src/libs/colorpicker.c:659 msgid "color mode" msgstr "mënyra e ngjyrimit" @@ -3507,7 +3646,7 @@ msgstr "kalkuloj variancën" #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:410 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:266 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:292 msgid "RGB" msgstr "RGB" @@ -3518,7 +3657,7 @@ #. two more sharpness (standard & strong) #: ../build/lib/darktable/plugins/introspection_diffuse.c:123 #: ../build/lib/darktable/plugins/introspection_diffuse.c:248 -#: ../src/iop/atrous.c:1564 ../src/iop/diffuse.c:630 ../src/iop/highpass.c:381 +#: ../src/iop/atrous.c:1685 ../src/iop/diffuse.c:657 ../src/iop/highpass.c:376 msgid "sharpness" msgstr "qartësia" @@ -3682,7 +3821,7 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:212 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:423 -#: ../src/iop/filmic.c:1489 +#: ../src/iop/filmic.c:1514 msgid "middle gray luminance" msgstr "luminanca e grisë së mesme" @@ -3690,13 +3829,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:427 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:97 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:166 -#: ../src/iop/filmic.c:1514 +#: ../src/iop/filmic.c:1539 msgid "black relative exposure" msgstr "ekspozimi relativ i të zezës" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:224 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:431 -#: ../src/iop/filmic.c:1501 +#: ../src/iop/filmic.c:1526 msgid "white relative exposure" msgstr "ekspozimi relativ i të bardhës" @@ -3727,19 +3866,19 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:266 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:459 -#: ../src/iop/filmic.c:1646 +#: ../src/iop/filmic.c:1671 msgid "target middle gray" msgstr "grija e mesme e synuar" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:272 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:463 -#: ../src/iop/filmic.c:1637 +#: ../src/iop/filmic.c:1662 msgid "target black luminance" msgstr "luminanca e synuar e të zezës" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:278 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:467 -#: ../src/iop/filmic.c:1655 +#: ../src/iop/filmic.c:1680 msgid "target white luminance" msgstr "luminanca e synuar e të bardhës" @@ -3747,13 +3886,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:471 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:69 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:140 -#: ../src/libs/masks.c:106 +#: ../src/libs/masks.c:107 msgid "hardness" msgstr "fortësia" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:302 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:483 -#: ../src/iop/filmic.c:1586 ../src/iop/filmicrgb.c:4729 +#: ../src/iop/filmic.c:1611 ../src/iop/filmicrgb.c:4793 msgid "extreme luminance saturation" msgstr "saturimi i luminancës ekstreme" @@ -3824,11 +3963,11 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:549 #: ../build/lib/darktable/plugins/introspection_toneequal.c:371 -#: ../src/common/database.c:2785 ../src/common/variables.c:705 -#: ../src/develop/imageop_gui.c:209 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 +#: ../src/common/variables.c:714 ../src/develop/imageop_gui.c:209 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 msgid "no" msgstr "jo" @@ -3930,9 +4069,25 @@ msgid "density" msgstr "densiteti" +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 +#: ../src/develop/blend_gui.c:2326 ../src/iop/basicadj.c:654 +#: ../src/iop/channelmixer.c:635 ../src/iop/colisa.c:300 +#: ../src/iop/colorbalance.c:2034 ../src/iop/colorbalancergb.c:1990 +#: ../src/iop/colorchecker.c:1488 ../src/iop/colorcontrast.c:82 +#: ../src/iop/colorcorrection.c:268 ../src/iop/colorize.c:356 +#: ../src/iop/lowpass.c:601 ../src/iop/soften.c:368 ../src/iop/velvia.c:75 +#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:1058 +msgid "saturation" +msgstr "saturimi" + #: ../build/lib/darktable/plugins/introspection_grain.c:58 #: ../build/lib/darktable/plugins/introspection_grain.c:117 -#: ../src/iop/bilat.c:450 +#: ../src/iop/bilat.c:460 msgid "coarseness" msgstr "ashpërsia" @@ -3945,7 +4100,7 @@ #: ../build/lib/darktable/plugins/introspection_highlights.c:143 #: ../build/lib/darktable/plugins/introspection_highlights.c:244 -#: ../src/views/darkroom.c:2406 +#: ../src/views/darkroom.c:2245 msgid "clipping threshold" msgstr "pragu i shkurtimit" @@ -4081,168 +4236,172 @@ msgid "detect by 3 neighbors" msgstr "diktoj 3 më të afërtit" -#: ../build/lib/darktable/plugins/introspection_lens.cc:162 -#: ../build/lib/darktable/plugins/introspection_lens.cc:337 +#: ../build/lib/darktable/plugins/introspection_lens.cc:190 +#: ../build/lib/darktable/plugins/introspection_lens.cc:401 msgid "correction method" msgstr "metoda e korrigjimit" #. Page CORRECTIONS -#: ../build/lib/darktable/plugins/introspection_lens.cc:168 -#: ../build/lib/darktable/plugins/introspection_lens.cc:341 -#: ../src/iop/negadoctor.c:900 +#: ../build/lib/darktable/plugins/introspection_lens.cc:196 +#: ../build/lib/darktable/plugins/introspection_lens.cc:405 +#: ../src/iop/negadoctor.c:919 msgid "corrections" msgstr "korrigjimet" #. mode choice -#. Add check to control whether the style is to replace or append the current module -#: ../build/lib/darktable/plugins/introspection_lens.cc:174 -#: ../build/lib/darktable/plugins/introspection_lens.cc:345 +#: ../build/lib/darktable/plugins/introspection_lens.cc:202 +#: ../build/lib/darktable/plugins/introspection_lens.cc:409 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:128 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:219 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:51 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:118 -#: ../src/iop/bilat.c:428 ../src/iop/colorbalance.c:1909 -#: ../src/iop/denoiseprofile.c:3806 ../src/iop/exposure.c:1157 -#: ../src/iop/levels.c:684 ../src/iop/profile_gamma.c:668 -#: ../src/libs/copy_history.c:399 ../src/libs/export.c:1262 -#: ../src/libs/image.c:597 ../src/libs/print_settings.c:2875 -#: ../src/libs/styles.c:846 ../src/views/darkroom.c:2387 +#: ../src/develop/blend_gui.c:3546 ../src/iop/bilat.c:438 +#: ../src/iop/colorbalance.c:1884 ../src/iop/denoiseprofile.c:3810 +#: ../src/iop/exposure.c:1175 ../src/iop/levels.c:700 +#: ../src/iop/profile_gamma.c:682 ../src/libs/copy_history.c:399 +#: ../src/libs/export.c:1376 ../src/libs/image.c:666 +#: ../src/libs/print_settings.c:2875 ../src/libs/styles.c:850 +#: ../src/views/darkroom.c:2226 msgid "mode" msgstr "mënyra" -#: ../build/lib/darktable/plugins/introspection_lens.cc:210 -#: ../build/lib/darktable/plugins/introspection_lens.cc:369 -#: ../src/iop/lens.cc:3820 +#: ../build/lib/darktable/plugins/introspection_lens.cc:238 +#: ../build/lib/darktable/plugins/introspection_lens.cc:433 +#: ../src/iop/lens.cc:4474 msgid "target geometry" msgstr "gjeometria e synuar" -#: ../build/lib/darktable/plugins/introspection_lens.cc:240 -#: ../build/lib/darktable/plugins/introspection_lens.cc:389 +#: ../build/lib/darktable/plugins/introspection_lens.cc:268 +#: ../build/lib/darktable/plugins/introspection_lens.cc:453 msgid "TCA overwrite" msgstr "mbishkruaj TCA" -#: ../build/lib/darktable/plugins/introspection_lens.cc:246 -#: ../build/lib/darktable/plugins/introspection_lens.cc:393 +#: ../build/lib/darktable/plugins/introspection_lens.cc:274 +#: ../build/lib/darktable/plugins/introspection_lens.cc:298 +#: ../build/lib/darktable/plugins/introspection_lens.cc:457 +#: ../build/lib/darktable/plugins/introspection_lens.cc:473 msgid "TCA red" msgstr "TCA kuqe" -#: ../build/lib/darktable/plugins/introspection_lens.cc:252 -#: ../build/lib/darktable/plugins/introspection_lens.cc:397 +#: ../build/lib/darktable/plugins/introspection_lens.cc:280 +#: ../build/lib/darktable/plugins/introspection_lens.cc:304 +#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:477 msgid "TCA blue" msgstr "TCA blu" -#: ../build/lib/darktable/plugins/introspection_lens.cc:258 -#: ../build/lib/darktable/plugins/introspection_lens.cc:401 -msgid "distortion fine-tune" -msgstr "rregullimi i deformimit" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:264 -#: ../build/lib/darktable/plugins/introspection_lens.cc:405 -msgid "vignetting fine-tune" -msgstr "rregullimi i vinetës" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:270 -#: ../build/lib/darktable/plugins/introspection_lens.cc:409 -msgid "TCA red fine-tune" -msgstr "rregullimi i TCA kuqe" +#: ../build/lib/darktable/plugins/introspection_lens.cc:286 +#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +msgid "distortion" +msgstr "deformimi" -#: ../build/lib/darktable/plugins/introspection_lens.cc:276 -#: ../build/lib/darktable/plugins/introspection_lens.cc:413 -msgid "TCA blue fine-tune" -msgstr "rregullimi i TCA blu" +#: ../build/lib/darktable/plugins/introspection_lens.cc:292 +#: ../build/lib/darktable/plugins/introspection_lens.cc:469 +#: ../src/iop/vignette.c:114 +msgid "vignetting" +msgstr "vineta" -#: ../build/lib/darktable/plugins/introspection_lens.cc:282 -#: ../build/lib/darktable/plugins/introspection_lens.cc:417 +#: ../build/lib/darktable/plugins/introspection_lens.cc:310 +#: ../build/lib/darktable/plugins/introspection_lens.cc:481 msgid "scale fine-tune" msgstr "rregullimi i shëmbëllimit" -#: ../build/lib/darktable/plugins/introspection_lens.cc:294 -#: ../build/lib/darktable/plugins/introspection_lens.cc:425 +#: ../build/lib/darktable/plugins/introspection_lens.cc:322 +#: ../build/lib/darktable/plugins/introspection_lens.cc:489 msgid "image scale" msgstr "shëmbëllimi i imazhit" -#: ../build/lib/darktable/plugins/introspection_lens.cc:439 +#: ../build/lib/darktable/plugins/introspection_lens.cc:346 +#: ../build/lib/darktable/plugins/introspection_lens.cc:505 +msgid "steepness" +msgstr "shkalla e shmangies" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:527 msgid "embedded metadata" msgstr "metadata e integruar" -#: ../build/lib/darktable/plugins/introspection_lens.cc:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:528 msgid "Lensfun database" msgstr "databaza Lensfun" +#: ../build/lib/darktable/plugins/introspection_lens.cc:529 +msgid "only manual vignette" +msgstr "vetëm vinetën manuale" + #. get nice text for bounds #. Side-border hide/show -#: ../build/lib/darktable/plugins/introspection_lens.cc:445 -#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2367 -#: ../src/gui/accelerators.c:2447 ../src/gui/gtk.c:1204 ../src/gui/gtk.c:3136 -#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3709 -#: ../src/iop/rawdenoise.c:893 ../src/libs/collect.c:3066 -#: ../src/libs/filtering.c:1459 ../src/libs/filters/colors.c:157 +#: ../build/lib/darktable/plugins/introspection_lens.cc:534 +#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2592 +#: ../src/gui/accelerators.c:2674 ../src/gui/gtk.c:1282 ../src/gui/gtk.c:3182 +#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3713 +#: ../src/iop/rawdenoise.c:909 ../src/libs/collect.c:3413 +#: ../src/libs/filtering.c:1521 ../src/libs/filters/colors.c:157 #: ../src/libs/filters/colors.c:265 ../src/libs/filters/rating.c:211 msgid "all" msgstr "të gjitha" -#: ../build/lib/darktable/plugins/introspection_lens.cc:446 +#: ../build/lib/darktable/plugins/introspection_lens.cc:535 msgid "distortion & TCA" msgstr "deformimin dhe TCA" -#: ../build/lib/darktable/plugins/introspection_lens.cc:447 +#: ../build/lib/darktable/plugins/introspection_lens.cc:536 msgid "distortion & vignetting" msgstr "deformimin dhe vinetën" -#: ../build/lib/darktable/plugins/introspection_lens.cc:448 +#: ../build/lib/darktable/plugins/introspection_lens.cc:537 msgid "TCA & vignetting" msgstr "TCA & vinetën" -#: ../build/lib/darktable/plugins/introspection_lens.cc:449 +#: ../build/lib/darktable/plugins/introspection_lens.cc:538 msgid "only distortion" msgstr "vetëm deformimin" -#: ../build/lib/darktable/plugins/introspection_lens.cc:450 +#: ../build/lib/darktable/plugins/introspection_lens.cc:539 msgid "only TCA" msgstr "vetëm TCA" -#: ../build/lib/darktable/plugins/introspection_lens.cc:451 +#: ../build/lib/darktable/plugins/introspection_lens.cc:540 msgid "only vignetting" msgstr "vetëm vinetën" -#: ../build/lib/darktable/plugins/introspection_lens.cc:455 -#: ../src/libs/modulegroups.c:2318 +#: ../build/lib/darktable/plugins/introspection_lens.cc:544 +#: ../src/libs/modulegroups.c:2302 msgid "correct" msgstr "korrigjoj" -#: ../build/lib/darktable/plugins/introspection_lens.cc:456 +#: ../build/lib/darktable/plugins/introspection_lens.cc:545 msgid "distort" msgstr "deformoj" -#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:550 msgid "rectilinear" msgstr "drejtvizor" -#: ../build/lib/darktable/plugins/introspection_lens.cc:462 +#: ../build/lib/darktable/plugins/introspection_lens.cc:551 msgid "fisheye" msgstr "sy peshku" -#: ../build/lib/darktable/plugins/introspection_lens.cc:463 +#: ../build/lib/darktable/plugins/introspection_lens.cc:552 msgid "panoramic" msgstr "panoramik" -#: ../build/lib/darktable/plugins/introspection_lens.cc:464 +#: ../build/lib/darktable/plugins/introspection_lens.cc:553 msgid "equirectangular" msgstr "barabrinjës" -#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +#: ../build/lib/darktable/plugins/introspection_lens.cc:554 msgid "orthographic" msgstr "ortografik" -#: ../build/lib/darktable/plugins/introspection_lens.cc:466 +#: ../build/lib/darktable/plugins/introspection_lens.cc:555 msgid "stereographic" msgstr "stereografik" -#: ../build/lib/darktable/plugins/introspection_lens.cc:467 +#: ../build/lib/darktable/plugins/introspection_lens.cc:556 msgid "equisolid angle" msgstr "ekuisolid" -#: ../build/lib/darktable/plugins/introspection_lens.cc:468 +#: ../build/lib/darktable/plugins/introspection_lens.cc:557 msgid "Thoby fisheye" msgstr "sy peshku Thoby" @@ -4252,8 +4411,8 @@ #. move left/right/up/down #: ../build/lib/darktable/plugins/introspection_liquify.c:429 -#: ../src/views/darkroom.c:2282 ../src/views/darkroom.c:2676 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:765 +#: ../src/views/darkroom.c:2121 ../src/views/darkroom.c:2522 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:765 #: ../src/views/lighttable.c:774 ../src/views/lighttable.c:1246 #: ../src/views/lighttable.c:1250 ../src/views/lighttable.c:1254 #: ../src/views/lighttable.c:1258 ../src/views/lighttable.c:1262 @@ -4265,8 +4424,8 @@ msgstr "vija" #: ../build/lib/darktable/plugins/introspection_liquify.c:431 -#: ../src/iop/basecurve.c:2186 ../src/iop/rgbcurve.c:1387 -#: ../src/iop/tonecurve.c:1149 +#: ../src/iop/basecurve.c:2207 ../src/iop/rgbcurve.c:1387 +#: ../src/iop/tonecurve.c:1171 msgid "curve" msgstr "kurba" @@ -4302,28 +4461,33 @@ msgid "bilateral filter" msgstr "filtër bilateral" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:76 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:163 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:77 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:164 msgid "application color space" msgstr "hapësira e ngjyrave të aplikacionit" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 msgid "Adobe RGB" msgstr "Adobe RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 msgid "gamma Rec709 RGB" msgstr "gama RGB Rec709" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:209 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:207 +#: ../src/common/colorspaces.c:1486 ../src/common/colorspaces.c:1740 +msgid "linear ProPhoto RGB" +msgstr "RGB ProPhoto linear" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 msgid "tetrahedral" msgstr "tetraedrit" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:210 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:212 msgid "trilinear" msgstr "trilinear" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:213 msgid "pyramid" msgstr "piramidal" @@ -4344,7 +4508,7 @@ #: ../build/lib/darktable/plugins/introspection_negadoctor.c:144 #: ../build/lib/darktable/plugins/introspection_negadoctor.c:239 -#: ../src/iop/negadoctor.c:992 +#: ../src/iop/negadoctor.c:1011 msgid "paper grade (gamma)" msgstr "klasi i letrës (gama)" @@ -4359,15 +4523,57 @@ msgstr "ekspozimi i printimit" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:261 -#: ../src/iop/negadoctor.c:417 +#: ../src/iop/negadoctor.c:431 msgid "black and white film" msgstr "film bardhë e zi" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:262 -#: ../src/iop/negadoctor.c:402 +#: ../src/iop/negadoctor.c:416 msgid "color film" msgstr "film me ngjyra" +#: ../build/lib/darktable/plugins/introspection_primaries.c:75 +#: ../build/lib/darktable/plugins/introspection_primaries.c:160 +#: ../src/iop/primaries.c:406 +msgid "tint hue" +msgstr "nuanca e ngjyruesit" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:81 +#: ../build/lib/darktable/plugins/introspection_primaries.c:164 +#: ../src/iop/primaries.c:413 +msgid "tint purity" +msgstr "pastërtia e ngjyruesit" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:87 +#: ../build/lib/darktable/plugins/introspection_primaries.c:168 +msgid "red hue" +msgstr "nuanca e së kuqes" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:93 +#: ../build/lib/darktable/plugins/introspection_primaries.c:172 +msgid "red purity" +msgstr "pastërtia e së kuqes" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:99 +#: ../build/lib/darktable/plugins/introspection_primaries.c:176 +msgid "green hue" +msgstr "nuanca e së gjelbrës" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:105 +#: ../build/lib/darktable/plugins/introspection_primaries.c:180 +msgid "green purity" +msgstr "pastërtia e së gjelbrës" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:111 +#: ../build/lib/darktable/plugins/introspection_primaries.c:184 +msgid "blue hue" +msgstr "nuanca e blusë" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:117 +#: ../build/lib/darktable/plugins/introspection_primaries.c:188 +msgid "blue purity" +msgstr "pastërtia e blusë" + #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:85 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:158 msgid "dynamic range" @@ -4380,7 +4586,7 @@ #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:103 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:170 -#: ../src/iop/filmic.c:1526 +#: ../src/iop/filmic.c:1551 msgid "safety factor" msgstr "koeficienti i sigurisë" @@ -4389,7 +4595,7 @@ msgstr "logaritmik" #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:185 -#: ../src/iop/profile_gamma.c:625 +#: ../src/iop/profile_gamma.c:639 msgid "gamma" msgstr "gama" @@ -4427,7 +4633,7 @@ #: ../build/lib/darktable/plugins/introspection_rawprepare.c:106 #: ../build/lib/darktable/plugins/introspection_rawprepare.c:179 -#: ../src/iop/rawprepare.c:946 +#: ../src/iop/rawprepare.c:954 msgid "white point" msgstr "pika e bardhë" @@ -4443,9 +4649,9 @@ #. exposure #: ../build/lib/darktable/plugins/introspection_relight.c:43 #: ../build/lib/darktable/plugins/introspection_relight.c:98 -#: ../src/common/collection.c:720 ../src/gui/preferences.c:836 -#: ../src/gui/presets.c:684 ../src/iop/basicadj.c:598 ../src/iop/exposure.c:122 -#: ../src/iop/exposure.c:1117 ../src/libs/metadata_view.c:141 +#: ../src/common/collection.c:633 ../src/gui/preferences.c:834 +#: ../src/gui/presets.c:687 ../src/iop/basicadj.c:628 ../src/iop/exposure.c:122 +#: ../src/iop/exposure.c:1135 ../src/libs/metadata_view.c:143 msgid "exposure" msgstr "ekspozimi" @@ -4456,9 +4662,9 @@ #: ../build/lib/darktable/plugins/introspection_retouch.c:285 #: ../build/lib/darktable/plugins/introspection_retouch.c:426 -#: ../src/iop/basicadj.c:620 ../src/iop/channelmixerrgb.c:4617 -#: ../src/iop/colisa.c:305 ../src/iop/lowpass.c:587 ../src/iop/soften.c:377 -#: ../src/iop/vignette.c:970 ../src/libs/history.c:963 +#: ../src/iop/basicadj.c:650 ../src/iop/channelmixerrgb.c:4685 +#: ../src/iop/colisa.c:299 ../src/iop/lowpass.c:600 ../src/iop/soften.c:372 +#: ../src/iop/vignette.c:1057 ../src/libs/history.c:963 msgid "brightness" msgstr "shkëlqimi" @@ -4468,7 +4674,7 @@ msgstr "max_iter" #: ../build/lib/darktable/plugins/introspection_retouch.c:444 -#: ../src/libs/metadata_view.c:329 +#: ../src/libs/metadata_view.c:333 msgid "unused" msgstr "e papërdorur" @@ -4481,12 +4687,12 @@ msgstr "korrektoj" #: ../build/lib/darktable/plugins/introspection_retouch.c:447 -#: ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2051 msgid "blur" msgstr "sfumoj" #: ../build/lib/darktable/plugins/introspection_retouch.c:448 -#: ../src/iop/retouch.c:1865 +#: ../src/iop/retouch.c:2049 msgid "fill" msgstr "mbush" @@ -4499,9 +4705,9 @@ msgstr "fshij" #: ../build/lib/darktable/plugins/introspection_retouch.c:458 -#: ../src/gui/presets.c:59 ../src/iop/watermark.c:1298 -#: ../src/libs/colorpicker.c:291 ../src/libs/image.c:612 -#: ../src/libs/modulegroups.c:2317 +#: ../src/gui/presets.c:61 ../src/iop/watermark.c:1346 +#: ../src/libs/colorpicker.c:320 ../src/libs/image.c:683 +#: ../src/libs/modulegroups.c:2301 msgid "color" msgstr "ngjyra" @@ -4537,45 +4743,93 @@ msgid "highlights color adjustment" msgstr "ngjyra e reflekseve" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:70 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:141 -#: ../src/gui/accelerators.c:85 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:122 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:241 +#: ../src/gui/accelerators.c:101 msgid "skew" msgstr "prirja" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:76 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:145 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:128 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:245 msgid "target white" msgstr "e bardha e synuar" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:82 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:149 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:134 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:249 msgid "target black" msgstr "e zeza e synuar" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:88 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:153 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:140 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:253 msgid "color processing" msgstr "procesimi i ngjyrave" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:94 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:157 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:146 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:257 msgid "preserve hue" msgstr "ruajtja e nuancave" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:171 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:152 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:261 +msgid "red attenuation" +msgstr "fashitja e së kuqes" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:158 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:265 +msgid "red rotation" +msgstr "rrotullimi i së kuqes" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:164 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:269 +msgid "green attenuation" +msgstr "fashitja e së gjelbrës" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:170 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:273 +msgid "green rotation" +msgstr "rrotullimi i së gjelbrës" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:176 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:277 +msgid "blue attenuation" +msgstr "fashitja e blusë" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:182 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:281 +msgid "blue rotation" +msgstr "rrotullimi i blusë" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:188 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:285 +msgid "recover purity" +msgstr "rikuperoj pastërtinë" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:194 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:289 +msgid "base primaries" +msgstr "primaret bazë" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:303 msgid "per channel" msgstr "për kanal" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:172 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:304 msgid "RGB ratio" msgstr "në raport RGB" -#: ../build/lib/darktable/plugins/introspection_temperature.c:66 -#: ../build/lib/darktable/plugins/introspection_temperature.c:121 -#: ../src/iop/temperature.c:1941 -msgid "emerald" -msgstr "smerald" +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:308 +#: ../src/common/colorspaces.c:1377 ../src/common/colorspaces.c:1734 +msgid "work profile" +msgstr "profili i punës" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:309 +msgid "Rec2020" +msgstr "Rec2020" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:310 +#: ../src/common/colorspaces.c:1750 +msgid "Display P3" +msgstr "Display P3" #: ../build/lib/darktable/plugins/introspection_tonecurve.c:135 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:232 @@ -4697,13 +4951,13 @@ #: ../build/lib/darktable/plugins/introspection_tonemap.cc:39 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:88 -#: ../src/iop/rgbcurve.c:184 ../src/iop/tonecurve.c:539 +#: ../src/iop/rgbcurve.c:186 ../src/iop/tonecurve.c:560 msgid "contrast compression" msgstr "komprimimi i kontrastit" #: ../build/lib/darktable/plugins/introspection_vibrance.c:33 #: ../build/lib/darktable/plugins/introspection_vibrance.c:76 -#: ../src/iop/basicadj.c:627 ../src/iop/vibrance.c:67 +#: ../src/iop/basicadj.c:657 ../src/iop/vibrance.c:67 msgid "vibrance" msgstr "dinamika" @@ -4739,7 +4993,7 @@ #: ../build/lib/darktable/plugins/introspection_vignette.c:146 #: ../build/lib/darktable/plugins/introspection_vignette.c:237 -#: ../src/iop/vignette.c:978 +#: ../src/iop/vignette.c:1066 msgid "shape" msgstr "forma" @@ -4778,7 +5032,7 @@ #: ../build/lib/darktable/plugins/introspection_watermark.c:323 #: ../src/imageio/format/tiff.c:125 ../src/imageio/format/xcf.c:159 -#: ../src/iop/borders.c:947 +#: ../src/iop/borders.c:960 msgid "image" msgstr "imazh" @@ -4790,12 +5044,6 @@ msgid "smaller border" msgstr "bordurë të vogël" -#: ../build/lib/darktable/plugins/introspection_watermark.c:326 -#: ../src/libs/export.c:1135 ../src/libs/metadata_view.c:148 -#: ../src/libs/print_settings.c:2541 -msgid "height" -msgstr "gjatësia" - #: ../build/lib/darktable/plugins/introspection_watermark.c:327 msgid "advanced options" msgstr "parametrat e avancuar" @@ -4824,23 +5072,23 @@ msgid "marker height" msgstr "gjatësia e orientuesit" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:6 +#: ../build/bin/tools/darktable_authors.h:6 msgid "developers" msgstr "programuesit" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:11 +#: ../build/bin/tools/darktable_authors.h:11 msgid "translators" msgstr "përkthyesit" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:16 +#: ../build/bin/tools/darktable_authors.h:16 msgid "contributors" msgstr "kontribuesit" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:21 +#: ../build/bin/tools/darktable_authors.h:21 msgid "rawspeed contributors" msgstr "kontribuesit e rawspeed" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:26 +#: ../build/bin/tools/darktable_authors.h:26 msgid "integration contributors" msgstr "kontribuesit e integrimit" @@ -4907,90 +5155,104 @@ msgid "Print your images" msgstr "Printoni imazhet" -#: ../src/bauhaus/bauhaus.c:752 ../src/bauhaus/bauhaus.c:3689 +#: ../src/bauhaus/bauhaus.c:845 ../src/bauhaus/bauhaus.c:3957 msgid "sliders" msgstr "shkarësit" -#: ../src/bauhaus/bauhaus.c:753 ../src/bauhaus/bauhaus.c:3694 +#: ../src/bauhaus/bauhaus.c:847 ../src/bauhaus/bauhaus.c:3962 msgid "dropdowns" msgstr "menutë zbritëse" -#: ../src/bauhaus/bauhaus.c:754 ../src/bauhaus/bauhaus.c:3699 +#: ../src/bauhaus/bauhaus.c:849 ../src/bauhaus/bauhaus.c:3967 msgid "buttons" msgstr "butonët" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button on" msgstr "butoni ndezur" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button off" msgstr "butoni fikur" -#: ../src/bauhaus/bauhaus.c:3406 +#: ../src/bauhaus/bauhaus.c:3624 msgid "button pressed" msgstr "buton i shtypur" -#: ../src/bauhaus/bauhaus.c:3623 +#: ../src/bauhaus/bauhaus.c:3862 msgid "not that many sliders" msgstr "nuk ka shumë shkarës" -#: ../src/bauhaus/bauhaus.c:3633 +#: ../src/bauhaus/bauhaus.c:3876 msgid "not that many dropdowns" msgstr "nuk ka shumë menu zbritëse" -#: ../src/bauhaus/bauhaus.c:3648 +#: ../src/bauhaus/bauhaus.c:3895 msgid "not that many buttons" msgstr "nuk ka shumë butonë" -#: ../src/bauhaus/bauhaus.c:3653 ../src/gui/accelerators.c:348 +#: ../src/bauhaus/bauhaus.c:3900 ../src/gui/accelerators.c:389 msgid "value" msgstr "vlera" -#: ../src/bauhaus/bauhaus.c:3654 ../src/bauhaus/bauhaus.c:3660 -#: ../src/gui/accelerators.c:326 +#: ../src/bauhaus/bauhaus.c:3901 ../src/bauhaus/bauhaus.c:3907 +#: ../src/gui/accelerators.c:368 msgid "button" msgstr "buton" -#: ../src/bauhaus/bauhaus.c:3655 +#: ../src/bauhaus/bauhaus.c:3902 msgid "force" msgstr "forca" -#: ../src/bauhaus/bauhaus.c:3656 ../src/libs/navigation.c:187 -#: ../src/libs/navigation.c:199 +#: ../src/bauhaus/bauhaus.c:3903 ../src/libs/navigation.c:190 +#: ../src/libs/navigation.c:202 msgid "zoom" msgstr "zmadhimi" -#: ../src/bauhaus/bauhaus.c:3659 +#: ../src/bauhaus/bauhaus.c:3906 ../src/libs/select.c:40 msgid "selection" msgstr "përzgjedhje" -#: ../src/bauhaus/bauhaus.c:3678 +#: ../src/bauhaus/bauhaus.c:3946 msgid "slider" msgstr "shkarës" -#: ../src/bauhaus/bauhaus.c:3683 +#: ../src/bauhaus/bauhaus.c:3951 msgid "dropdown" msgstr "menu zbritëse" -#: ../src/chart/main.c:504 ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 ../src/gui/accelerators.c:2278 -#: ../src/gui/accelerators.c:2355 ../src/gui/accelerators.c:2407 -#: ../src/gui/accelerators.c:2435 ../src/gui/accelerators.c:2495 -#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1043 -#: ../src/gui/preferences.c:1082 ../src/gui/presets.c:420 -#: ../src/gui/presets.c:563 ../src/gui/styles_dialog.c:519 -#: ../src/imageio/storage/disk.c:123 ../src/imageio/storage/gallery.c:110 -#: ../src/imageio/storage/latex.c:109 ../src/iop/lut3d.c:1546 -#: ../src/libs/collect.c:408 ../src/libs/copy_history.c:115 -#: ../src/libs/geotagging.c:928 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/styles.c:392 ../src/libs/styles.c:527 -#: ../src/libs/tagging.c:2489 ../src/libs/tagging.c:2525 +#: ../src/chart/main.c:504 ../src/common/database.c:3372 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 ../src/gui/accelerators.c:2497 +#: ../src/gui/accelerators.c:2579 ../src/gui/accelerators.c:2632 +#: ../src/gui/accelerators.c:2661 ../src/gui/accelerators.c:2723 +#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1081 ../src/gui/presets.c:422 +#: ../src/gui/presets.c:565 ../src/gui/styles_dialog.c:526 +#: ../src/imageio/storage/disk.c:198 ../src/imageio/storage/gallery.c:150 +#: ../src/imageio/storage/latex.c:146 ../src/iop/lut3d.c:1560 +#: ../src/libs/collect.c:425 ../src/libs/collect.c:3242 +#: ../src/libs/copy_history.c:115 ../src/libs/export_metadata.c:276 +#: ../src/libs/geotagging.c:929 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1711 +#: ../src/libs/metadata.c:462 ../src/libs/metadata_view.c:1222 +#: ../src/libs/recentcollect.c:228 ../src/libs/modulegroups.c:3466 +#: ../src/libs/styles.c:392 ../src/libs/styles.c:439 ../src/libs/styles.c:529 +#: ../src/libs/styles.c:624 ../src/libs/tagging.c:1488 +#: ../src/libs/tagging.c:1579 ../src/libs/tagging.c:1670 +#: ../src/libs/tagging.c:1806 ../src/libs/tagging.c:2085 +#: ../src/libs/tagging.c:2520 ../src/libs/tagging.c:2556 +#: ../src/libs/tagging.c:3502 msgid "_cancel" msgstr "_anuloj" -#: ../src/chart/main.c:504 ../src/gui/preferences.c:1082 -#: ../src/gui/styles_dialog.c:520 ../src/libs/styles.c:392 +#: ../src/chart/main.c:504 ../src/gui/preferences.c:1081 +#: ../src/gui/styles_dialog.c:527 ../src/libs/collect.c:3243 +#: ../src/libs/export_metadata.c:277 ../src/libs/metadata.c:463 +#: ../src/libs/metadata_view.c:1223 ../src/libs/recentcollect.c:229 +#: ../src/libs/styles.c:392 ../src/libs/tagging.c:1671 +#: ../src/libs/tagging.c:1807 ../src/libs/tagging.c:2086 +#: ../src/libs/tagging.c:3503 msgid "_save" msgstr "_regjistroj" @@ -5004,65 +5266,65 @@ "dE mesatare: %.02f\n" "dE maks: %.02f" -#: ../src/cli/main.c:247 +#: ../src/cli/main.c:270 msgid "TODO: sorry, due to API restrictions we currently cannot set the BPP to" msgstr "" "PLANI: na vjen keq, për arsye të pengesave në API, nuk mund të vendoset BPP " "te" -#: ../src/cli/main.c:259 +#: ../src/cli/main.c:282 msgid "unknown option for --hq" msgstr "opsion i panjohur për --hq" -#: ../src/cli/main.c:275 +#: ../src/cli/main.c:298 msgid "unknown option for --export_masks" msgstr "opsion i panjohur për --export_masks" -#: ../src/cli/main.c:291 +#: ../src/cli/main.c:314 msgid "unknown option for --upscale" msgstr "opsion i panjohur për --upscale" -#: ../src/cli/main.c:316 +#: ../src/cli/main.c:339 msgid "unknown option for --apply-custom-presets" msgstr "opsion i panjohur për --apply-customs-presets" -#: ../src/cli/main.c:327 +#: ../src/cli/main.c:350 msgid "too long ext for --out-ext" msgstr "ext për --out-ext është tepër i gjatë" -#: ../src/cli/main.c:344 +#: ../src/cli/main.c:367 #, c-format msgid "notice: input file or dir '%s' doesn't exist, skipping\n" msgstr "vini re: skedari ose direktoria input '%s' nuk ekziston, kalohet\n" -#: ../src/cli/main.c:353 +#: ../src/cli/main.c:376 #, c-format msgid "incorrect ICC type for --icc-type: '%s'\n" msgstr "lloj i pasaktë ICC për --icc-type: '%s'\n" -#: ../src/cli/main.c:369 +#: ../src/cli/main.c:392 #, c-format msgid "notice: ICC file '%s' doesn't exist, skipping\n" msgstr "vini re: skedari ICC '%s' nuk ekziston, kalohet\n" -#: ../src/cli/main.c:378 +#: ../src/cli/main.c:401 #, c-format msgid "incorrect ICC intent for --icc-intent: '%s'\n" msgstr "synim i pasaktë ICC për --icc-intent: '%s'\n" -#: ../src/cli/main.c:396 +#: ../src/cli/main.c:419 #, c-format msgid "warning: unknown option '%s'\n" msgstr "kujdes: opsion i panjohur '%s'\n" -#: ../src/cli/main.c:454 +#: ../src/cli/main.c:477 #, c-format msgid "error: input file and import opts specified! that's not supported!\n" msgstr "" "gabim: janë specifikuar opsionet e skedarit input dhe importit! nuk është e " "garantuar!\n" -#: ../src/cli/main.c:487 +#: ../src/cli/main.c:510 #, c-format msgid "" "notice: output location is a directory. assuming '%s/$(FILE_NAME).%s' output " @@ -5072,48 +5334,48 @@ "modeli output" #. output file exists or there's output ext specified and it's same as file... -#: ../src/cli/main.c:502 +#: ../src/cli/main.c:525 msgid "output file already exists, it will get renamed" msgstr "skedari output ekziston tashmë, do të riemërtohet" #. one of inputs was a failure, no prob -#: ../src/cli/main.c:532 +#: ../src/cli/main.c:555 #, c-format msgid "error: can't open folder %s" msgstr "gabim: nuk hapet dosja %s" -#: ../src/cli/main.c:549 +#: ../src/cli/main.c:572 #, c-format msgid "error: can't open file %s" msgstr "gabim: nuk hapet skedari `%s'" -#: ../src/cli/main.c:566 +#: ../src/cli/main.c:589 #, c-format msgid "no images to export, aborting\n" msgstr "nuk ka imazhe për eksport, ndërpritet\n" -#: ../src/cli/main.c:583 +#: ../src/cli/main.c:606 #, c-format msgid "error: can't open XMP file %s" msgstr "gabim: nuk hapet skedari XMP %s" -#: ../src/cli/main.c:604 +#: ../src/cli/main.c:627 msgid "empty history stack" msgstr "zbraz historikun e zhvillimit" #. too long ext, no point in wasting time -#: ../src/cli/main.c:616 +#: ../src/cli/main.c:639 #, c-format msgid "too long output file extension: %s\n" msgstr "shtojca e skedarit output është tepër e gjatë: %s\n" #. no ext or empty ext, no point in wasting time -#: ../src/cli/main.c:624 +#: ../src/cli/main.c:647 #, c-format msgid "no output file extension given\n" msgstr "skedari output nuk ka sigël\n" -#: ../src/cli/main.c:663 +#: ../src/cli/main.c:692 msgid "" "cannot find disk storage module. please check your installation, something " "seems to be broken." @@ -5121,18 +5383,18 @@ "nuk gjen modulin për ruajtjen në disk. lutemi të verifikoni instalimin. " "diçka mund të jetë prishur." -#: ../src/cli/main.c:673 +#: ../src/cli/main.c:702 msgid "failed to get parameters from storage module, aborting export ..." msgstr "" "dështoi marrja e parametrave nga moduli për ruajtjen në disk, ndërpret " "eksportin..." -#: ../src/cli/main.c:689 +#: ../src/cli/main.c:718 #, c-format msgid "unknown extension '.%s'" msgstr "zgjatim i panjohur '.%s'" -#: ../src/cli/main.c:699 +#: ../src/cli/main.c:728 msgid "failed to get parameters from format module, aborting export ..." msgstr "" "dështoi marrja e parametrave nga moduli i formatit, ndërpret eksportin..." @@ -5154,8 +5416,8 @@ "failed to initialize `%s' on port `%s', likely causes are: locked by another " "application, no access to devices etc" msgstr "" -"e pamundur të fillohej `%s' në portin `%s', shkaqet mund të jenë bllokimi " -"nga një aplikacion tjetër, mosqasja te aparatet etj." +"e pamundur të hapej `%s' në portin `%s', për shkak se mund të jetë bllokuar " +"nga një aplikacion tjetër, nuk keni akses te aparati etj." #: ../src/common/camera_control.c:905 #, c-format @@ -5180,203 +5442,209 @@ "kamera `%s' në portin `%s' duhet rimontuar\n" "sigurohuni që keni akses në të dhe nuk e keni montuar diku" -#: ../src/common/collection.c:673 +#: ../src/common/collection.c:586 msgid "too much time to update aspect ratio for the collection" msgstr "azhurnimi i raportit përmasor të koleksionit mori shumë kohë" -#: ../src/common/collection.c:688 +#: ../src/common/collection.c:601 msgid "film roll" msgstr "filmi" -#: ../src/common/collection.c:690 +#: ../src/common/collection.c:603 msgid "folder" msgstr "dosja" -#: ../src/common/collection.c:692 +#: ../src/common/collection.c:605 msgid "camera" msgstr "kamera" -#: ../src/common/collection.c:694 ../src/libs/export_metadata.c:189 -#: ../src/libs/tagging.c:3281 +#: ../src/common/collection.c:607 ../src/libs/export_metadata.c:176 +#: ../src/libs/tagging.c:3312 msgid "tag" msgstr "etiketa" -#: ../src/common/collection.c:696 +#: ../src/common/collection.c:609 msgid "capture date" msgstr "data e shkrepjes" -#: ../src/common/collection.c:698 ../src/libs/filtering.c:61 +#: ../src/common/collection.c:611 ../src/libs/filtering.c:61 msgid "capture time" msgstr "koha e shkrepjes" -#: ../src/common/collection.c:700 ../src/libs/filtering.c:62 +#: ../src/common/collection.c:613 ../src/libs/filtering.c:62 msgid "import time" msgstr "koha e importimit" -#: ../src/common/collection.c:702 ../src/libs/filtering.c:63 +#: ../src/common/collection.c:615 ../src/libs/filtering.c:63 msgid "modification time" msgstr "koha e modifikimit" -#: ../src/common/collection.c:704 ../src/libs/filtering.c:64 +#: ../src/common/collection.c:617 ../src/libs/filtering.c:64 msgid "export time" msgstr "koha e eksportimit" -#: ../src/common/collection.c:706 ../src/libs/filtering.c:65 +#: ../src/common/collection.c:619 ../src/libs/filtering.c:65 msgid "print time" msgstr "koha e printimit" -#: ../src/common/collection.c:708 ../src/libs/collect.c:3222 -#: ../src/libs/filtering.c:2163 ../src/libs/filtering.c:2183 +#: ../src/common/collection.c:621 ../src/libs/collect.c:3586 +#: ../src/libs/filtering.c:2237 ../src/libs/filtering.c:2257 #: ../src/libs/filters/history.c:153 ../src/libs/history.c:92 msgid "history" msgstr "historiku" -#: ../src/common/collection.c:710 ../src/common/colorlabels.c:342 -#: ../src/develop/lightroom.c:1550 ../src/dtgtk/thumbnail.c:1560 +#: ../src/common/collection.c:623 ../src/common/colorlabels.c:341 +#: ../src/develop/lightroom.c:1607 ../src/dtgtk/thumbnail.c:1548 #: ../src/libs/filtering.c:68 ../src/libs/filters/colors.c:301 #: ../src/libs/filters/colors.c:312 ../src/libs/tools/colorlabels.c:93 msgid "color label" msgstr "etiketa me ngjyrë" #. iso -#: ../src/common/collection.c:716 ../src/gui/preferences.c:832 -#: ../src/gui/presets.c:666 ../src/libs/camera.c:558 -#: ../src/libs/metadata_view.c:145 +#: ../src/common/collection.c:629 ../src/gui/preferences.c:830 +#: ../src/gui/presets.c:669 ../src/libs/camera.c:558 +#: ../src/libs/metadata_view.c:149 msgid "ISO" msgstr "ISO" #. aperture -#: ../src/common/collection.c:718 ../src/gui/preferences.c:840 -#: ../src/gui/presets.c:701 ../src/libs/camera.c:545 ../src/libs/camera.c:547 -#: ../src/libs/metadata_view.c:140 +#: ../src/common/collection.c:631 ../src/gui/preferences.c:838 +#: ../src/gui/presets.c:704 ../src/libs/camera.c:545 ../src/libs/camera.c:547 +#: ../src/libs/metadata_view.c:142 msgid "aperture" msgstr "diafragma" -#: ../src/common/collection.c:724 ../src/libs/filtering.c:57 -#: ../src/libs/filters/filename.c:364 ../src/libs/metadata_view.c:126 +#: ../src/common/collection.c:637 ../src/libs/filtering.c:57 +#: ../src/libs/filters/filename.c:369 ../src/libs/metadata_view.c:128 msgid "filename" msgstr "emri i skedarit" -#: ../src/common/collection.c:726 ../src/develop/lightroom.c:1541 +#: ../src/common/collection.c:639 ../src/develop/lightroom.c:1598 #: ../src/libs/geotagging.c:141 msgid "geotagging" msgstr "gjeoetiketimi" -#: ../src/common/collection.c:728 ../src/libs/filters/grouping.c:167 +#: ../src/common/collection.c:641 ../src/libs/filters/grouping.c:167 #: ../src/libs/tools/global_toolbox.c:394 msgid "grouping" msgstr "grupimi" -#: ../src/common/collection.c:730 ../src/dtgtk/thumbnail.c:1575 -#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:129 -#: ../src/libs/metadata_view.c:336 +#: ../src/common/collection.c:643 ../src/dtgtk/thumbnail.c:1563 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:340 msgid "local copy" msgstr "kopje lokale" -#: ../src/common/collection.c:732 ../src/gui/preferences.c:808 +#: ../src/common/collection.c:645 ../src/gui/preferences.c:806 msgid "module" msgstr "moduli" -#: ../src/common/collection.c:734 ../src/gui/hist_dialog.c:346 -#: ../src/gui/styles_dialog.c:722 ../src/gui/styles_dialog.c:771 +#: ../src/common/collection.c:647 ../src/gui/hist_dialog.c:346 +#: ../src/gui/styles_dialog.c:734 ../src/gui/styles_dialog.c:783 #: ../src/libs/filters/module_order.c:161 ../src/libs/ioporder.c:39 msgid "module order" msgstr "radha e moduleve" -#: ../src/common/collection.c:736 +#: ../src/common/collection.c:649 msgid "range rating" msgstr "intervali i vlerësimit" -#: ../src/common/collection.c:738 ../src/common/ratings.c:322 -#: ../src/develop/lightroom.c:1525 ../src/libs/filtering.c:67 +#: ../src/common/collection.c:651 ../src/common/ratings.c:321 +#: ../src/develop/lightroom.c:1582 ../src/libs/filtering.c:67 #: ../src/libs/tools/ratings.c:110 msgid "rating" msgstr "vlerësimi" -#: ../src/common/collection.c:740 +#: ../src/common/collection.c:653 msgid "search" msgstr "kërkimi" -#: ../src/common/collection.c:1509 ../src/common/colorlabels.c:335 -#: ../src/develop/lightroom.c:836 ../src/gui/guides.c:732 -#: ../src/iop/colorzones.c:2265 ../src/iop/temperature.c:1925 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:261 +#: ../src/common/collection.c:1376 ../src/common/colorlabels.c:334 +#: ../src/develop/lightroom.c:889 ../src/gui/guides.c:732 +#: ../src/iop/colorzones.c:2501 ../src/iop/temperature.c:1902 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:261 msgid "yellow" msgstr "verdhë" -#: ../src/common/collection.c:1515 ../src/common/color_vocabulary.c:339 -#: ../src/common/colorlabels.c:338 ../src/iop/colorzones.c:2269 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:264 +#: ../src/common/collection.c:1382 ../src/common/color_vocabulary.c:339 +#: ../src/common/colorlabels.c:337 ../src/iop/colorzones.c:2505 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:264 msgid "purple" msgstr "vjollcë" -#: ../src/common/collection.c:1532 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1400 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "auto applied" msgstr "vetaplikoj" -#: ../src/common/collection.c:1536 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1406 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "altered" msgstr "e ndryshuar" -#: ../src/common/collection.c:1553 ../src/common/collection.c:1649 -#: ../src/libs/collect.c:1166 ../src/libs/collect.c:1330 -#: ../src/libs/collect.c:1354 ../src/libs/collect.c:1473 -#: ../src/libs/collect.c:2432 +#: ../src/common/collection.c:1424 ../src/common/collection.c:1535 +#: ../src/libs/collect.c:1242 ../src/libs/collect.c:1426 +#: ../src/libs/collect.c:1452 ../src/libs/collect.c:1592 +#: ../src/libs/collect.c:2662 msgid "not tagged" msgstr "e paetiketuar" -#: ../src/common/collection.c:1554 ../src/libs/collect.c:1354 +#: ../src/common/collection.c:1425 ../src/libs/collect.c:1452 #: ../src/libs/map_locations.c:742 msgid "tagged" msgstr "e etiketuar" -#: ../src/common/collection.c:1555 +#: ../src/common/collection.c:1426 msgid "tagged*" msgstr "e etiketuar*" #. local copy -#: ../src/common/collection.c:1588 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1460 ../src/libs/collect.c:1883 #: ../src/libs/filters/local_copy.c:38 msgid "not copied locally" msgstr "e pakopjuar në kompjuter" -#: ../src/common/collection.c:1592 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1465 ../src/libs/collect.c:1882 #: ../src/libs/filters/local_copy.c:38 msgid "copied locally" msgstr "e kopjuar në kompjuter" -#: ../src/common/collection.c:1974 ../src/libs/collect.c:1879 +#. if its undefined +#: ../src/common/collection.c:1507 ../src/common/collection.c:1619 +#: ../src/libs/collect.c:2209 ../src/libs/collect.c:2210 +msgid "unnamed" +msgstr "paemër" + +#: ../src/common/collection.c:1905 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:147 ../src/libs/filters/grouping.c:170 msgid "group leaders" msgstr "udhëheqësit e grupit" -#: ../src/common/collection.c:1978 ../src/libs/collect.c:1879 +#: ../src/common/collection.c:1909 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:150 ../src/libs/filters/grouping.c:170 msgid "group followers" msgstr "ndjekësit e grupit" -#: ../src/common/collection.c:2126 ../src/libs/collect.c:1959 +#: ../src/common/collection.c:2066 ../src/libs/collect.c:2100 msgid "not defined" msgstr "e papërcaktuar" -#: ../src/common/collection.c:2575 +#: ../src/common/collection.c:2521 #, c-format msgid "<b>%d</b> image (#<b>%d</b>) selected of <b>%d</b>" msgstr "keni përzgjedhur <b>%d</b> imazh (#<b>%d</b>) nga <b>%d</b>" -#: ../src/common/collection.c:2582 +#: ../src/common/collection.c:2528 #, c-format msgid "<b>%d</b> image selected of <b>%d</b>" msgid_plural "<b>%d</b> images selected of <b>%d</b>" msgstr[0] "keni përzgjedhur <b>%d</b> imazh nga <b>%d</b>" msgstr[1] "keni përzgjedhur <b>%d</b> imazhe nga <b>%d</b>" -#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2324 -#: ../src/develop/blend_gui.c:2372 ../src/gui/guides.c:729 -#: ../src/iop/channelmixerrgb.c:4620 ../src/iop/levels.c:671 -#: ../src/iop/rgblevels.c:937 ../src/iop/rgblevels.c:1032 +#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2340 +#: ../src/develop/blend_gui.c:2388 ../src/gui/guides.c:729 +#: ../src/iop/channelmixerrgb.c:4688 ../src/iop/levels.c:687 +#: ../src/iop/rgblevels.c:969 ../src/iop/rgblevels.c:1083 msgid "gray" msgstr "gri" @@ -5585,12 +5853,12 @@ msgstr "cian i zënë" #: ../src/common/color_vocabulary.c:297 ../src/common/color_vocabulary.c:317 -#: ../src/iop/colorzones.c:2267 +#: ../src/iop/colorzones.c:2503 msgid "aqua" msgstr "akua" #: ../src/common/color_vocabulary.c:298 ../src/gui/guides.c:733 -#: ../src/iop/temperature.c:1923 +#: ../src/iop/temperature.c:1900 msgid "cyan" msgstr "cian" @@ -5656,7 +5924,7 @@ msgstr "kuqërreme e zënë" #: ../src/common/color_vocabulary.c:341 ../src/gui/guides.c:734 -#: ../src/iop/colorzones.c:2270 ../src/iop/temperature.c:1921 +#: ../src/iop/colorzones.c:2506 ../src/iop/temperature.c:1898 msgid "magenta" msgstr "kuqërreme" @@ -5668,137 +5936,132 @@ msgid "color not found" msgstr "nuk gjendet ngjyra" -#: ../src/common/colorlabels.c:310 +#: ../src/common/colorlabels.c:309 #, c-format msgid "colorlabels set to %s" msgstr "etiketat me ngjyrë janë vendosur te %s" -#: ../src/common/colorlabels.c:312 +#: ../src/common/colorlabels.c:311 msgid "all colorlabels removed" msgstr "hoqi gjithë etiketat me ngjyrë" -#: ../src/common/colorlabels.c:333 ../src/gui/accelerators.c:170 -#: ../src/libs/image.c:592 +#: ../src/common/colorlabels.c:332 ../src/gui/accelerators.c:188 +#: ../src/libs/image.c:660 msgid "clear" msgstr "pastroj" -#. init the category profile with NULL profile, the actual profile must be retrieved dynamically by the caller -#: ../src/common/colorspaces.c:1229 ../src/common/colorspaces.c:1518 -msgid "work profile" -msgstr "profili i punës" - -#: ../src/common/colorspaces.c:1232 ../src/common/colorspaces.c:1514 -#: ../src/iop/colorout.c:885 +#: ../src/common/colorspaces.c:1382 ../src/common/colorspaces.c:1730 +#: ../src/iop/colorout.c:901 msgid "export profile" msgstr "profili i eksportimit" -#: ../src/common/colorspaces.c:1236 ../src/common/colorspaces.c:1516 -#: ../src/views/darkroom.c:2542 +#: ../src/common/colorspaces.c:1387 ../src/common/colorspaces.c:1732 +#: ../src/views/darkroom.c:2383 msgid "softproof profile" msgstr "profili i bocës së ngjyrave" -#: ../src/common/colorspaces.c:1242 ../src/common/colorspaces.c:1498 +#: ../src/common/colorspaces.c:1397 ../src/common/colorspaces.c:1714 msgid "system display profile" msgstr "profili i ekranit të sistemit" -#: ../src/common/colorspaces.c:1245 ../src/common/colorspaces.c:1520 +#: ../src/common/colorspaces.c:1402 ../src/common/colorspaces.c:1736 msgid "system display profile (second window)" msgstr "profili i ekranit të sistemit (dritarja e dytë)" -#: ../src/common/colorspaces.c:1255 +#: ../src/common/colorspaces.c:1415 msgid "sRGB (web-safe)" msgstr "sRGB (për internet)" -#: ../src/common/colorspaces.c:1269 ../src/common/colorspaces.c:1522 +#: ../src/common/colorspaces.c:1435 ../src/common/colorspaces.c:1738 msgid "Rec709 RGB" msgstr "RGB Rec709" -#: ../src/common/colorspaces.c:1279 +#: ../src/common/colorspaces.c:1450 msgid "PQ Rec2020 RGB" msgstr "RGB PQ Rec2020" -#: ../src/common/colorspaces.c:1284 +#: ../src/common/colorspaces.c:1458 msgid "HLG Rec2020 RGB" msgstr "RGB HLG Rec2020" -#: ../src/common/colorspaces.c:1289 +#: ../src/common/colorspaces.c:1465 msgid "PQ P3 RGB" msgstr "RGB PQ P3" -#: ../src/common/colorspaces.c:1294 +#: ../src/common/colorspaces.c:1471 msgid "HLG P3 RGB" msgstr "RGB HLG P3" -#: ../src/common/colorspaces.c:1299 ../src/common/colorspaces.c:1524 -msgid "linear ProPhoto RGB" -msgstr "RGB ProPhoto linear" +#: ../src/common/colorspaces.c:1478 +msgid "Display P3 RGB" +msgstr "Display P3 RGB" -#: ../src/common/colorspaces.c:1304 ../src/common/colorspaces.c:1492 +#: ../src/common/colorspaces.c:1493 ../src/common/colorspaces.c:1708 msgid "linear XYZ" msgstr "XYZ linear" -#: ../src/common/colorspaces.c:1308 ../src/common/colorspaces.c:1494 -#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2000 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:267 +#: ../src/common/colorspaces.c:1500 ../src/common/colorspaces.c:1710 +#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2016 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:293 msgid "Lab" msgstr "Lab" -#: ../src/common/colorspaces.c:1313 ../src/common/colorspaces.c:1496 +#: ../src/common/colorspaces.c:1508 ../src/common/colorspaces.c:1712 msgid "linear infrared BGR" msgstr "BGR infrakuqe linear" -#: ../src/common/colorspaces.c:1317 +#: ../src/common/colorspaces.c:1513 msgid "BRG (for testing)" msgstr "BRG (për testim)" -#: ../src/common/colorspaces.c:1409 +#: ../src/common/colorspaces.c:1619 #, c-format msgid "" "profile `%s' not usable as histogram profile. it has been replaced by sRGB!" msgstr "" "profili `%s' nuk përdoret si profil histogrami. atë e ka zëvendësuar sRGB-ja!" -#: ../src/common/colorspaces.c:1500 +#: ../src/common/colorspaces.c:1716 msgid "embedded ICC profile" msgstr "profili ICC i integruar" -#: ../src/common/colorspaces.c:1502 +#: ../src/common/colorspaces.c:1718 msgid "embedded matrix" msgstr "matrica e integruar" -#: ../src/common/colorspaces.c:1504 +#: ../src/common/colorspaces.c:1720 msgid "standard color matrix" msgstr "matrica standarde e ngjyrave" -#: ../src/common/colorspaces.c:1506 +#: ../src/common/colorspaces.c:1722 msgid "enhanced color matrix" msgstr "matrica e përmirësuar e ngjyrave" -#: ../src/common/colorspaces.c:1508 +#: ../src/common/colorspaces.c:1724 msgid "vendor color matrix" msgstr "matrica e ngjyrave e prodhuesit" -#: ../src/common/colorspaces.c:1510 +#: ../src/common/colorspaces.c:1726 msgid "alternate color matrix" msgstr "matrica alternative e ngjyrave" -#: ../src/common/colorspaces.c:1512 +#: ../src/common/colorspaces.c:1728 msgid "BRG (experimental)" msgstr "BRG (eksperimentale)" -#: ../src/common/colorspaces.c:1526 +#: ../src/common/colorspaces.c:1742 msgid "PQ Rec2020" msgstr "PQ Rec2020" -#: ../src/common/colorspaces.c:1528 +#: ../src/common/colorspaces.c:1744 msgid "HLG Rec2020" msgstr "HLG Rec2020" -#: ../src/common/colorspaces.c:1530 +#: ../src/common/colorspaces.c:1746 msgid "PQ P3" msgstr "PQ P3" -#: ../src/common/colorspaces.c:1532 +#: ../src/common/colorspaces.c:1748 msgid "HLG P3" msgstr "HLG P3" @@ -5826,40 +6089,40 @@ msgid "printing `%s' on `%s'" msgstr "printon `%s' në `%s'" -#: ../src/common/darktable.c:250 +#: ../src/common/darktable.c:375 #, c-format msgid "found strange path `%s'" msgstr "gjen shtegun e çuditshëm `%s'" -#: ../src/common/darktable.c:265 +#: ../src/common/darktable.c:390 #, c-format msgid "error loading directory `%s'" msgstr "problem me hapjen e direktorisë `%s'" -#: ../src/common/darktable.c:289 +#: ../src/common/darktable.c:414 #, c-format msgid "file `%s' has unknown format!" msgstr "skedari `%s' ka format të panjohur!" -#: ../src/common/darktable.c:302 ../src/control/jobs/control_jobs.c:2118 -#: ../src/control/jobs/control_jobs.c:2177 +#: ../src/common/darktable.c:427 ../src/control/jobs/control_jobs.c:2121 +#: ../src/control/jobs/control_jobs.c:2180 #, c-format msgid "error loading file `%s'" msgstr "problem me hapjen e skedarit `%s'" -#: ../src/common/darktable.c:1509 +#: ../src/common/darktable.c:1650 msgid "configuration information" msgstr "informacion për konfigurimin" -#: ../src/common/darktable.c:1511 -msgid "show this information again" -msgstr "tregoj sërish këtë informacion" - -#: ../src/common/darktable.c:1511 -msgid "understood" -msgstr "kuptoj" +#: ../src/common/darktable.c:1652 +msgid "_show this information again" +msgstr "_tregoj sërish si informacion" + +#: ../src/common/darktable.c:1652 +msgid "_understood" +msgstr "_kuptoj" -#: ../src/common/darktable.c:1968 +#: ../src/common/darktable.c:2106 msgid "" "the RCD demosaicer has been defined as default instead of PPG because of " "better quality and performance." @@ -5867,13 +6130,13 @@ "dematricuesi RCD, jo PPG, është përcaktuar si standardi, sepse ka cilësi dhe " "performancë më të mirë." -#: ../src/common/darktable.c:1970 +#: ../src/common/darktable.c:2108 msgid "see preferences/darkroom/demosaicing for zoomed out darkroom mode" msgstr "" "shihni preferencat/dhomën e errët/dematricimin për mënyrën e zvogëlimit të " "dhomës së errët" -#: ../src/common/darktable.c:1976 +#: ../src/common/darktable.c:2114 msgid "" "the user interface and the underlying internals for tuning darktable " "performance have changed." @@ -5881,7 +6144,7 @@ "keni ndryshuar grafikën dhe brendësinë e darktable për të rritur " "performancën." -#: ../src/common/darktable.c:1978 +#: ../src/common/darktable.c:2116 msgid "" "you won't find headroom and friends any longer, instead in preferences/" "processing use:" @@ -5889,15 +6152,15 @@ "nuk keni për të gjetur më hapësirë dhe miq, por te preferencat/procesimi " "përdorni:" -#: ../src/common/darktable.c:1980 +#: ../src/common/darktable.c:2118 msgid "1) darktable resources" msgstr "1) resurset e darktable" -#: ../src/common/darktable.c:1982 +#: ../src/common/darktable.c:2120 msgid "2) tune OpenCL performance" msgstr "2) rregulloj performancën e OpenCL-së" -#: ../src/common/darktable.c:1989 +#: ../src/common/darktable.c:2127 msgid "" "some global config parameters relevant for OpenCL performance are not used " "any longer." @@ -5905,33 +6168,34 @@ "disa nga parametrat globalë të konfigurimit, që lidhen me performancën e " "OpenCL-së, nuk përdoren më." -#: ../src/common/darktable.c:1991 +#: ../src/common/darktable.c:2129 msgid "" -"instead you will find 'per device' data in 'cl_device_v4_canonical-name'. " +"instead you will find 'per device' data in 'cldevice_v5_canonical-name'. " "content is:" msgstr "" -"ndërkohë të dhënat 'për aparat' do i gjeni në 'cl_device_v4_canonical-name'. " +"ndërkohë të dhënat 'për aparat' i gjeni në 'cldevice_v5_canonical-name'. " "përmbajtja:" -#: ../src/common/darktable.c:1993 ../src/common/darktable.c:2012 +#: ../src/common/darktable.c:2131 ../src/common/darktable.c:2150 +#: ../src/common/darktable.c:2165 msgid "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" msgstr "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" -#: ../src/common/darktable.c:1995 ../src/common/darktable.c:2014 +#: ../src/common/darktable.c:2133 ../src/common/darktable.c:2152 msgid "you may tune as before except 'magic'" -msgstr "këto mund të kthehen si më parë, por jo 'magic'" +msgstr "këto mund të kthehen si më parë, pa 'magic'" -#: ../src/common/darktable.c:2001 +#: ../src/common/darktable.c:2139 msgid "" "your OpenCL compiler settings for all devices have been reset to default." msgstr "" "keni kthyer parametrat fillestarë të kompiluesit OpenCL për gjithë aparatet." -#: ../src/common/darktable.c:2008 +#: ../src/common/darktable.c:2146 msgid "" "OpenCL global config parameters 'per device' data has been recreated with an " "updated name." @@ -5939,14 +6203,13 @@ "të dhënat e 'aparatit' mbi parametrat globalë OpenCL janë rikrijuar sipas " "emrit të ri." -#: ../src/common/darktable.c:2010 +#: ../src/common/darktable.c:2148 ../src/common/darktable.c:2163 msgid "" -"you will find 'per device' data in 'cl_device_v5_canonical-name'. content is:" +"you will find 'per device' data in 'cldevice_v5_canonical-name'. content is:" msgstr "" -"të dhënat e 'aparatit' gjenden në 'cl_device_v5_canonical-name'. përmbajtja " -"është:" +"të dhënat e 'për aparat' i gjeni në 'cldevice_v5_canonical-name'. përmbajtja:" -#: ../src/common/darktable.c:2016 +#: ../src/common/darktable.c:2154 msgid "" "If you're using device names in 'opencl_device_priority' you should update " "them to the new names." @@ -5954,7 +6217,23 @@ "aparatet që keni emërtuar në 'opencl_device_priority' duhen përditësuar me " "emra të rinj." -#: ../src/common/database.c:2756 +#: ../src/common/darktable.c:2161 +msgid "" +"OpenCL 'per device' config data have been automatically extended by 'unified-" +"fraction'." +msgstr "" +"të dhënat e konfigurimit të OpenCL 'për aparat' janë zgjeruar automatikisht " +"me 'fraksion të unifikuar'." + +#: ../src/common/darktable.c:2172 +msgid "" +"OpenCL 'per device' compiler settings might have been updated.\n" +"\n" +msgstr "" +"parametrat e kompiluesit OpenCL 'për aparat' mund të jenë përditësuar.\n" +"\n" + +#: ../src/common/database.c:3350 #, c-format msgid "" "\n" @@ -6011,30 +6290,19 @@ " përndryshe rrezikoni të krijoni mospërputhje në databazën tuaj.</i>\n" #. clang-format on -#: ../src/common/database.c:2777 +#: ../src/common/database.c:3371 msgid "error starting darktable" msgstr "problem me nisjen e darktable" -#: ../src/common/database.c:2778 ../src/libs/collect.c:2915 -#: ../src/libs/export_metadata.c:288 ../src/libs/import.c:1702 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:227 ../src/libs/modulegroups.c:3464 -#: ../src/libs/styles.c:438 ../src/libs/styles.c:621 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3471 -msgid "cancel" -msgstr "anuloj" +#: ../src/common/database.c:3372 +msgid "_delete database lock files" +msgstr "_fshij skedarët e bllokuar të databazës" -#: ../src/common/database.c:2778 -msgid "delete database lock files" -msgstr "fshij skedarët e bllokuar të databazës" - -#: ../src/common/database.c:2784 +#: ../src/common/database.c:3378 msgid "are you sure?" msgstr "jeni të sigurt?" -#: ../src/common/database.c:2785 +#: ../src/common/database.c:3379 msgid "" "\n" "do you really want to delete the lock files?\n" @@ -6042,20 +6310,19 @@ "\n" "vërtet do i fshini skedarët e bllokuar?\n" -#: ../src/common/database.c:2785 ../src/common/variables.c:703 -#: ../src/develop/imageop_gui.c:210 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 -msgid "yes" -msgstr "po" +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2597 +msgid "_no" +msgstr "_jo" + +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2596 +msgid "_yes" +msgstr "_po" -#: ../src/common/database.c:2801 ../src/libs/export_metadata.c:164 -#: ../src/libs/geotagging.c:811 +#: ../src/common/database.c:3395 msgid "done" msgstr "u krye" -#: ../src/common/database.c:2802 +#: ../src/common/database.c:3396 msgid "" "\n" "successfully deleted the lock files.\n" @@ -6065,17 +6332,17 @@ "skedarët e bllokuar u fshinë me sukses.\n" "tani mund ta rihapni darktable\n" -#. the button to close the popup -#: ../src/common/database.c:2803 ../src/common/database.c:2810 -#: ../src/libs/filters/filename.c:452 -msgid "ok" -msgstr "ok" +#: ../src/common/database.c:3397 ../src/common/database.c:3404 +#: ../src/gui/accelerators.c:2580 ../src/gui/accelerators.c:2662 +#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:566 +msgid "_ok" +msgstr "_ok" -#: ../src/common/database.c:2806 +#: ../src/common/database.c:3400 msgid "error" msgstr "problem" -#: ../src/common/database.c:2807 +#: ../src/common/database.c:3401 #, c-format msgid "" "\n" @@ -6090,7 +6357,7 @@ "lock</i>\n" "në dosjen <a href=\"file:///%s\">%s</a>.\n" -#: ../src/common/database.c:2924 +#: ../src/common/database.c:3518 #, c-format msgid "" "the database lock file contains a pid that seems to be alive in your system: " @@ -6099,18 +6366,43 @@ "skedari i bllokuar i databazës përmban një pid që ndodhet në sistemin tuaj: " "%d" -#: ../src/common/database.c:2931 +#: ../src/common/database.c:3525 #, c-format msgid "the database lock file seems to be empty" msgstr "skedari i bllokuar i databazës duket se është bosh" -#: ../src/common/database.c:2941 +#: ../src/common/database.c:3535 #, c-format msgid "error opening the database lock file for reading: %s" msgstr "problem me hapjen për lexim të skedarit të bllokuar të databazës: %s" +#: ../src/common/database.c:3605 +#, c-format +msgid "" +"the database schema version of\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"is too new for this build of darktable (this means the database was created " +"or upgraded by a newer darktable version)\n" +msgstr "" +"versioni i skemës së databazës\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"është shumë i ri për këtë variant të darktable (pra databaza është krijuar " +"ose përmirësuar nga një version më i ri)\n" + +#: ../src/common/database.c:3612 +msgid "darktable - too new db version" +msgstr "darktable - version shumë i ri i db" + +#: ../src/common/database.c:3613 +msgid "_quit darktable" +msgstr "_dal nga darktable" + #. the database has to be upgraded, let's ask user -#: ../src/common/database.c:2978 +#: ../src/common/database.c:3628 #, c-format msgid "" "the database schema has to be upgraded for\n" @@ -6129,21 +6421,21 @@ "\n" "do vijoni apo do e mbyllni tani programin për të bërë kopjen\n" -#: ../src/common/database.c:2986 +#: ../src/common/database.c:3636 msgid "darktable - schema migration" msgstr "darktable - migrimi i skemave" -#: ../src/common/database.c:2987 ../src/common/database.c:3306 -#: ../src/common/database.c:3324 ../src/common/database.c:3491 -#: ../src/common/database.c:3509 -msgid "close darktable" -msgstr "mbyll darktable" - -#: ../src/common/database.c:2987 -msgid "upgrade database" -msgstr "përmirësoj databazën" +#: ../src/common/database.c:3637 ../src/common/database.c:3959 +#: ../src/common/database.c:3974 ../src/common/database.c:4142 +#: ../src/common/database.c:4157 +msgid "_close darktable" +msgstr "_mbyll darktable" + +#: ../src/common/database.c:3637 +msgid "_upgrade database" +msgstr "_përmirësoj databazën" -#: ../src/common/database.c:3286 ../src/common/database.c:3471 +#: ../src/common/database.c:3939 ../src/common/database.c:4122 #, c-format msgid "" "quick_check said:\n" @@ -6152,21 +6444,21 @@ "kontrolli_shpejtë tha:\n" "%s \n" -#: ../src/common/database.c:3303 ../src/common/database.c:3321 -#: ../src/common/database.c:3488 ../src/common/database.c:3506 +#: ../src/common/database.c:3956 ../src/common/database.c:3971 +#: ../src/common/database.c:4139 ../src/common/database.c:4154 msgid "darktable - error opening database" msgstr "darktable - problem me hapjen e databazës" -#: ../src/common/database.c:3308 ../src/common/database.c:3493 -msgid "attempt restore" -msgstr "tentoj rikthimin" - -#: ../src/common/database.c:3310 ../src/common/database.c:3326 -#: ../src/common/database.c:3495 ../src/common/database.c:3511 -msgid "delete database" -msgstr "fshij databazën" +#: ../src/common/database.c:3960 ../src/common/database.c:4143 +msgid "_attempt restore" +msgstr "_tentoj rikthimin" + +#: ../src/common/database.c:3961 ../src/common/database.c:3975 +#: ../src/common/database.c:4144 ../src/common/database.c:4158 +msgid "_delete database" +msgstr "_fshij databazën" -#: ../src/common/database.c:3314 ../src/common/database.c:3499 +#: ../src/common/database.c:3964 ../src/common/database.c:4147 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup, attempt an automatic restore\n" @@ -6178,7 +6470,7 @@ "u nisur nga poza e fundit apo do e fshini databazën e dëmtuar\n" "që të filloni me një të re?" -#: ../src/common/database.c:3330 ../src/common/database.c:3515 +#: ../src/common/database.c:3978 ../src/common/database.c:4161 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup or delete the corrupted database\n" @@ -6188,7 +6480,7 @@ "funksionale të databazës apo do e fshini databazën e dëmtuar\n" "që të filloni me një të re?" -#: ../src/common/database.c:3337 ../src/common/database.c:3520 +#: ../src/common/database.c:3985 ../src/common/database.c:4166 #, c-format msgid "" "an error has occurred while trying to open the database from\n" @@ -6213,12 +6505,12 @@ "problem me racionimin e memories nga filtri drejtues me ekspozim të shpejtë, " "kontrolloni parametrat e RAM-it" -#: ../src/common/exif.cc:5200 +#: ../src/common/exif.cc:5482 #, c-format msgid "cannot read XMP file '%s': '%s'" msgstr "nuk lexohet skedari XMP `%s': `%s'" -#: ../src/common/exif.cc:5258 +#: ../src/common/exif.cc:5540 #, c-format msgid "cannot write XMP file '%s': '%s'" msgstr "nuk shkruhet në skedarin XMP `%s': `%s'" @@ -6229,127 +6521,127 @@ "problem me racionimin e memories nga filtri drejtues i shpejtë, kontrolloni " "parametrat e RAM-it" -#: ../src/common/film.c:345 +#: ../src/common/film.c:356 msgid "do you want to remove this empty directory?" msgid_plural "do you want to remove these empty directories?" msgstr[0] "do e hiqni këtë direktorinë boshe?" msgstr[1] "do i hiqni këto direktoritë boshe?" -#: ../src/common/film.c:352 +#: ../src/common/film.c:363 msgid "remove empty directory?" msgid_plural "remove empty directories?" msgstr[0] "do e hiqni direktorinë boshe?" msgstr[1] "do i hiqni direktoritë boshe?" -#: ../src/common/film.c:371 ../src/gui/preferences.c:816 -#: ../src/gui/styles_dialog.c:548 ../src/libs/geotagging.c:829 -#: ../src/libs/import.c:1551 +#: ../src/common/film.c:383 ../src/gui/preferences.c:814 +#: ../src/gui/styles_dialog.c:556 ../src/libs/geotagging.c:830 +#: ../src/libs/import.c:1560 msgid "name" msgstr "emri" -#: ../src/common/film.c:477 +#: ../src/common/film.c:492 msgid "" "cannot remove film roll having local copies with non accessible originals" msgstr "nuk mund të heqë filmin me kopje lokale por pa origjinalet" -#: ../src/common/history.c:840 +#: ../src/common/history.c:876 msgid "you need to copy history from an image before you paste it onto another" msgstr "historiku i imazhit duhet kopjuar para se ta ngjitni te një tjetër" -#: ../src/common/image.c:325 +#: ../src/common/image.c:333 msgid "orphaned image" msgstr "imazh jetim" -#: ../src/common/image.c:620 +#: ../src/common/image.c:629 #, c-format msgid "geo-location undone for %d image" msgid_plural "geo-location undone for %d images" msgstr[0] "zhbëri gjeovendndodhjen e %d imazhi" msgstr[1] "zhbëri gjeovendndodhjen e %d imazheve" -#: ../src/common/image.c:622 +#: ../src/common/image.c:631 #, c-format msgid "geo-location re-applied to %d image" msgid_plural "geo-location re-applied to %d images" msgstr[0] "riaplikoi gjeovendndodhjen te %d imazh" msgstr[1] "riaplikoi gjeovendndodhjen te %d imazhe" -#: ../src/common/image.c:645 +#: ../src/common/image.c:654 #, c-format msgid "date/time undone for %d image" msgid_plural "date/time undone for %d images" msgstr[0] "zhbëri datën/orën e %d imazhi" msgstr[1] "zhbëri datën/orën e %d imazheve" -#: ../src/common/image.c:647 +#: ../src/common/image.c:656 #, c-format msgid "date/time re-applied to %d image" msgid_plural "date/time re-applied to %d images" msgstr[0] "riaplikoi datën/orën te %d imazh" msgstr[1] "riaplikoi datën/orën te %d imazhe" -#: ../src/common/image.c:2188 +#: ../src/common/image.c:2260 #, c-format msgid "cannot access local copy `%s'" msgstr "nuk mund të hapë kopjen lokale `%s'" -#: ../src/common/image.c:2195 +#: ../src/common/image.c:2267 #, c-format msgid "cannot write local copy `%s'" msgstr "nuk mund të shkruajë në kopjen lokale `%s'" -#: ../src/common/image.c:2202 +#: ../src/common/image.c:2274 #, c-format msgid "error moving local copy `%s' -> `%s'" msgstr "problem me lëvizjen e kopjes lokale `%s' -> `%s'" -#: ../src/common/image.c:2219 +#: ../src/common/image.c:2291 #, c-format msgid "error moving `%s': file not found" msgstr "problem me lëvizjen `%s': skedari nuk gjendet" -#: ../src/common/image.c:2229 +#: ../src/common/image.c:2301 #, c-format msgid "error moving `%s' -> `%s': file exists" msgstr "problem me lëvizjen `%s' -> `%s': skedari ekziston" -#: ../src/common/image.c:2233 +#: ../src/common/image.c:2305 #, c-format msgid "error moving `%s' -> `%s'" msgstr "problem me lëvizjen `%s' -> `%s'" -#: ../src/common/image.c:2562 +#: ../src/common/image.c:2634 msgid "cannot create local copy when the original file is not accessible." msgstr "nuk mund të krijohet kopja lokale kur skedari origjinal nuk hapet." -#: ../src/common/image.c:2576 +#: ../src/common/image.c:2648 msgid "cannot create local copy." msgstr "nuk mund të krijojë kopjen lokale." -#: ../src/common/image.c:2656 ../src/control/jobs/control_jobs.c:777 +#: ../src/common/image.c:2728 ../src/control/jobs/control_jobs.c:777 msgid "cannot remove local copy when the original file is not accessible." msgstr "nuk mund të hiqet kopja lokale kur skedari origjinal nuk hapet." -#: ../src/common/image.c:2821 +#: ../src/common/image.c:2901 #, c-format msgid "%d local copy has been synchronized" msgid_plural "%d local copies have been synchronized" msgstr[0] "sinkronizoi %d kopje lokale" msgstr[1] "sinkronizoi %d kopje lokale" -#: ../src/common/image.c:3022 +#: ../src/common/image.c:3102 msgid "<b>WARNING</b>: camera is missing samples!" msgstr "<b>KUJDES</b>: mungojnë shembujt ilustrues të kamerës!" -#: ../src/common/image.c:3023 +#: ../src/common/image.c:3103 msgid "" "You must provide samples in <a href='https://raw.pixls.us/'>https://raw." "pixls.us/</a>" msgstr "" -"shembujt ilustrues duhen paraqitur në <a href='https://raw.pixls." -"us/'>https://raw.pixls.us/</a>" +"kampionët duhen paraqitur në <a href='https://raw.pixls.us/'>https://raw." +"pixls.us/</a>" -#: ../src/common/image.c:3024 +#: ../src/common/image.c:3104 #, c-format msgid "" "for `%s' `%s'\n" @@ -6358,81 +6650,82 @@ "për `%s' `%s'\n" "në sa më shumë formate/komprimime/thellësi bitësh të jetë e mundur" -#: ../src/common/image.c:3027 +#: ../src/common/image.c:3107 msgid "or the <b>RAW won't be readable</b> in next version." msgstr "ose <b>BRUTO-ja nuk do të lexohet</b> versionin tjetër." -#: ../src/common/image.h:209 ../src/common/ratings.c:284 -#: ../src/libs/history.c:843 ../src/libs/snapshots.c:779 +#: ../src/common/image.h:217 ../src/common/ratings.c:283 +#: ../src/imageio/format/avif.c:114 ../src/libs/history.c:843 +#: ../src/libs/snapshots.c:837 msgid "unknown" msgstr "nuk dihet" #. EMPTY_FIELD -#: ../src/common/image.h:210 -msgid "tiff" +#: ../src/common/image.h:218 ../src/imageio/format/tiff.c:831 +msgid "TIFF" msgstr "TIFF" -#: ../src/common/image.h:211 -msgid "png" +#: ../src/common/image.h:219 ../src/imageio/format/png.c:599 +msgid "PNG" msgstr "PNG" -#: ../src/common/image.h:212 ../src/imageio/format/j2k.c:652 -msgid "j2k" -msgstr "J2K" +#: ../src/common/image.h:220 +msgid "JPEG 2000" +msgstr "JPEG 2000" -#: ../src/common/image.h:213 -msgid "jpeg" +#: ../src/common/image.h:221 +msgid "JPEG" msgstr "JPEG" -#: ../src/common/image.h:214 -msgid "exr" +#: ../src/common/image.h:222 +msgid "EXR" msgstr "EXR" -#: ../src/common/image.h:215 -msgid "rgbe" +#: ../src/common/image.h:223 +msgid "RGBE" msgstr "RGBE" -#: ../src/common/image.h:216 -msgid "pfm" +#: ../src/common/image.h:224 ../src/imageio/format/pfm.c:120 +msgid "PFM" msgstr "PFM" -#: ../src/common/image.h:217 +#: ../src/common/image.h:225 msgid "GraphicsMagick" msgstr "GraphicsMagick" -#: ../src/common/image.h:218 -msgid "rawspeed" +#: ../src/common/image.h:226 +msgid "RawSpeed" msgstr "RawSpeed" -#: ../src/common/image.h:219 -msgid "netpnm" -msgstr "NetPNM" +#: ../src/common/image.h:227 +msgid "Netpbm" +msgstr "Netpbm" -#: ../src/common/image.h:220 -msgid "avif" +#: ../src/common/image.h:228 ../src/imageio/format/avif.c:728 +msgid "AVIF" msgstr "AVIF" -#: ../src/common/image.h:221 +#: ../src/common/image.h:229 msgid "ImageMagick" msgstr "ImageMagick" -#: ../src/common/image.h:222 -msgid "heif" +#: ../src/common/image.h:230 +msgid "HEIF" msgstr "HEIF" -#: ../src/common/image.h:223 -msgid "libraw" +#: ../src/common/image.h:231 +msgid "LibRaw" msgstr "LibRaw" -#: ../src/common/image.h:224 -msgid "webp" +#: ../src/common/image.h:232 ../src/imageio/format/webp.c:380 +msgid "WebP" msgstr "WebP" -#: ../src/common/image.h:225 -msgid "jpeg xl" +#: ../src/common/image.h:233 ../src/imageio/format/jxl.c:482 +msgid "JPEG XL" msgstr "JPEG XL" -#: ../src/common/image.h:226 +#: ../src/common/image.h:234 msgid "QOI" msgstr "QOI" @@ -6465,7 +6758,7 @@ msgstr "" "adresa e sesionit të kërkuar nuk është gati. a e keni montuar aparatin?" -#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:197 +#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:195 msgid "legacy" msgstr "e trashëguar" @@ -6477,7 +6770,7 @@ msgid "v3.0 JPEG" msgstr "v3.0 JPEG" -#: ../src/common/iop_profile.c:1205 +#: ../src/common/iop_profile.c:1207 #, c-format msgid "" "darktable loads %s from\n" @@ -6501,13 +6794,13 @@ #. title #: ../src/common/metadata.c:48 ../src/imageio/format/pdf.c:574 -#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:169 -#: ../src/imageio/storage/gallery.c:170 ../src/imageio/storage/latex.c:169 -#: ../src/imageio/storage/piwigo.c:1058 ../src/libs/filtering.c:69 +#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:219 +#: ../src/imageio/storage/gallery.c:222 ../src/imageio/storage/latex.c:206 +#: ../src/imageio/storage/piwigo.c:1091 ../src/libs/filtering.c:69 msgid "title" msgstr "titulli" -#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:552 +#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:563 #: ../src/libs/filtering.c:70 msgid "description" msgstr "përshkrimi" @@ -6525,11 +6818,11 @@ msgstr "emri i variantit" #: ../src/common/metadata.c:53 ../src/libs/live_view.c:319 -#: ../src/libs/metadata_view.c:124 +#: ../src/libs/metadata_view.c:126 msgid "image id" msgstr "id imazhi" -#: ../src/common/mipmap_cache.c:1065 ../src/imageio/imageio.c:787 +#: ../src/common/mipmap_cache.c:1070 ../src/imageio/imageio.c:799 #, c-format msgid "image `%s' is not available!" msgstr "nuk mundësohet imazhi `%s'!" @@ -6543,7 +6836,43 @@ msgid "noiseprofile file `%s' is not valid" msgstr "skedari për profilin e zhurmës `%s' nuk është i saktë" -#: ../src/common/opencl.c:1376 +#: ../src/common/opencl.c:1165 +msgid "no working OpenCL library found" +msgstr "gjeti librarinë OpenCL që nuk punon" + +#: ../src/common/opencl.c:1185 +msgid "" +"platform detection failed. some possible causes:\n" +" - OpenCL ICD (ocl-icd) missing,\n" +" - previous OpenCL errors leading to blocked devices,\n" +" - power management problems,\n" +" - buggy drivers,\n" +" - no OpenCL driver installed." +msgstr "" +"e pamundur të dallohej platforma. shkaqet e mundshme:\n" +" - OpenCL ICD (ocl-icd) mungon,\n" +" - aparati është bllokuar nga problemet e mëparshme me OpenCL,\n" +" - ka probleme me menaxhimin e energjisë,\n" +" - pilotët janë defektozë,\n" +" - nuk është instaluar piloti OpenCL." + +#: ../src/common/opencl.c:1277 +msgid "no devices found for unknown platform" +msgstr "nuk gjeti aparate për këtë platformë të panjohur" + +#: ../src/common/opencl.c:1323 +msgid "not enough memory for OpenCL devices" +msgstr "mungon memoria e mjaftueshme për pilotët OpenCL" + +#: ../src/common/opencl.c:1358 +msgid "no OpenCL devices found" +msgstr "nuk gjeti aparate OpenCL" + +#: ../src/common/opencl.c:1401 +msgid "no suitable OpenCL devices found" +msgstr "nuk gjeti aparate të përshtatshme OpenCL" + +#: ../src/common/opencl.c:1422 #, c-format msgid "" "OpenCL initializing problem:\n" @@ -6552,35 +6881,21 @@ "problem me nisjen e OpenCL:\n" "%s" -#: ../src/common/opencl.c:1439 -msgid "" -"due to a slow GPU hardware acceleration using OpenCL has been deactivated" -msgstr "" -"keni një GPU të avashtë, prandaj u çaktivizua përshpejtimi fizik me OpenCL" - -#: ../src/common/opencl.c:1449 -msgid "" -"multiple GPUs detected - OpenCL scheduling profile has been set accordingly" -msgstr "" -"dallohen disa GPU - keni caktuar profilin e duhur të skedulimit për OpenCL" - -#: ../src/common/opencl.c:1462 -msgid "" -"very fast GPU detected - OpenCL scheduling profile has been set accordingly" -msgstr "" -"dallohet GPU shumë e shpejtë - keni caktuar profilin e duhur të skedulimit " -"për OpenCL" +#: ../src/common/opencl.c:1454 +msgid "OpenCL scheduling profile set to default, setup has changed" +msgstr "caktoi profilin standard të skedulimit për OpenCL, ka ndryshime" -#: ../src/common/opencl.c:1471 -msgid "OpenCL scheduling profile set to default" -msgstr "keni caktuar profilin standard të skedulimit për OpenCL" +#: ../src/common/opencl.c:2283 +#, c-format +msgid "building OpenCL program %s for %s" +msgstr "building OpenCL program %s for %s" -#: ../src/common/pdf.h:88 ../src/iop/lens.cc:3441 +#: ../src/common/pdf.h:88 ../src/iop/lens.cc:4071 #: ../src/libs/filters/focal.c:74 ../src/libs/print_settings.c:81 msgid "mm" msgstr "mm" -#: ../src/common/pdf.h:89 ../src/libs/export.c:520 ../src/libs/export.c:1145 +#: ../src/common/pdf.h:89 ../src/libs/export.c:555 ../src/libs/export.c:1241 #: ../src/libs/print_settings.c:81 msgid "cm" msgstr "cm" @@ -6593,7 +6908,7 @@ msgid "\"" msgstr "\"" -#: ../src/common/pdf.h:104 ../src/iop/borders.c:958 +#: ../src/common/pdf.h:104 ../src/iop/borders.c:971 msgid "A4" msgstr "A4" @@ -6631,66 +6946,65 @@ msgid "no images selected to apply rating" msgstr "nuk keni përzgjedhur imazhet për vlerësim" -#: ../src/common/ratings.c:275 ../src/libs/metadata_view.c:351 +#: ../src/common/ratings.c:274 ../src/libs/metadata_view.c:355 msgid "image rejected" msgstr "imazhi u refuzua" -#: ../src/common/ratings.c:277 +#: ../src/common/ratings.c:276 msgid "image rated to 0 star" msgstr "imazhi u vlerësua me 0 yje" -#: ../src/common/ratings.c:279 +#: ../src/common/ratings.c:278 #, c-format msgid "image rated to %s" msgstr "imazhi u vlerësua me %s" -#: ../src/common/ratings.c:306 ../src/libs/select.c:39 -#: ../src/views/lighttable.c:766 +#: ../src/common/ratings.c:305 ../src/views/lighttable.c:766 msgid "select" msgstr "përzgjedhja" -#: ../src/common/ratings.c:307 +#: ../src/common/ratings.c:306 msgid "upgrade" msgstr "përmirësoj" -#: ../src/common/ratings.c:308 +#: ../src/common/ratings.c:307 msgid "downgrade" msgstr "prapakthehem" -#: ../src/common/ratings.c:312 +#: ../src/common/ratings.c:311 msgid "zero" msgstr "zero" -#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:277 +#: ../src/common/ratings.c:312 ../src/libs/filters/rating_range.c:304 msgid "one" msgstr "një" -#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:278 +#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:305 msgid "two" msgstr "dy" -#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:279 +#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:306 msgid "three" msgstr "tre" -#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:280 +#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:307 msgid "four" msgstr "katër" -#: ../src/common/ratings.c:317 ../src/libs/filters/rating_range.c:281 +#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:308 msgid "five" msgstr "pesë" -#: ../src/common/ratings.c:318 +#: ../src/common/ratings.c:317 msgid "reject" msgstr "refuzoni" -#: ../src/common/styles.c:244 +#: ../src/common/styles.c:243 #, c-format msgid "style with name '%s' already exists" msgstr "stili me emrin '%s' ekziston që më parë" -#: ../src/common/styles.c:270 ../src/common/styles.c:1776 +#: ../src/common/styles.c:270 ../src/common/styles.c:1783 #: ../src/libs/styles.c:54 msgid "styles" msgstr "stilet" @@ -6700,57 +7014,57 @@ msgid "style named '%s' successfully created" msgstr "krijoi me sukses stilin '%s'" -#: ../src/common/styles.c:689 ../src/common/styles.c:719 -#: ../src/common/styles.c:759 ../src/dtgtk/culling.c:1097 +#: ../src/common/styles.c:688 ../src/common/styles.c:718 +#: ../src/common/styles.c:758 ../src/dtgtk/culling.c:1066 msgid "no image selected!" msgstr "nuk keni përzgjedhur imazhin!" -#: ../src/common/styles.c:693 +#: ../src/common/styles.c:692 #, c-format msgid "style %s successfully applied!" msgstr "aplikoi me sukses stilin %s!" -#: ../src/common/styles.c:709 +#: ../src/common/styles.c:708 msgid "no images nor styles selected!" msgstr "nuk keni përzgjedhur imazhet apo stilet!" -#: ../src/common/styles.c:714 +#: ../src/common/styles.c:713 msgid "no styles selected!" msgstr "nuk keni përzgjedhur stilet!" -#: ../src/common/styles.c:744 +#: ../src/common/styles.c:743 msgid "style successfully applied!" msgid_plural "styles successfully applied!" msgstr[0] "aplikoi me sukses stilin!" msgstr[1] "aplikoi me sukses stilet!" -#: ../src/common/styles.c:840 +#: ../src/common/styles.c:838 #, c-format msgid "module `%s' version mismatch: %d != %d" msgstr "moduli `%s' ka mospërputhje versioni: %d != %d" -#: ../src/common/styles.c:1124 +#: ../src/common/styles.c:1125 #, c-format msgid "applied style `%s' on current image" msgstr "aplikoi stilin `%s' në imazhin aktual" -#: ../src/common/styles.c:1378 +#: ../src/common/styles.c:1383 #, c-format msgid "failed to overwrite style file for %s" msgstr "dështoi mbishkrimi i skedarit të stilit për %s" -#: ../src/common/styles.c:1384 +#: ../src/common/styles.c:1389 #, c-format msgid "style file for %s exists" msgstr "skedari i stilit për %s ekziston" -#: ../src/common/styles.c:1667 +#: ../src/common/styles.c:1674 #, c-format msgid "style %s was successfully imported" msgstr "importoi me sukses stilin %s" #. Failed to open file, clean up. -#: ../src/common/styles.c:1711 +#: ../src/common/styles.c:1718 #, c-format msgid "could not read file `%s'" msgstr "nuk lexoi dot skedarin `%s'" @@ -6763,10 +7077,18 @@ msgid "below sea level" msgstr "nën nivelin e detit" -#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:880 +#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:907 msgid "m" msgstr "m" +#: ../src/common/variables.c:712 ../src/develop/imageop_gui.c:210 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "yes" +msgstr "po" + #. Column 1 - "make" of the camera. #. * Column 2 - "model" (use the "make" and "model" as provided by DCRaw). #. * Column 3 - WB name. @@ -6779,7 +7101,7 @@ #. * #. * WB name is standardized to one of the following: #. "Sunlight" and other variation should be switched to this: -#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:323 +#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:320 msgid "daylight" msgstr "dritë ditore" @@ -6879,7 +7201,7 @@ msgid "underwater" msgstr "nën ujë" -#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2447 +#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2286 msgid "black & white" msgstr "bardhë e zi" @@ -6899,85 +7221,85 @@ msgid "auto WB" msgstr "bardhësi automatike" -#: ../src/control/control.c:66 ../src/gui/accelerators.c:138 -#: ../src/views/darkroom.c:2162 +#: ../src/control/control.c:69 ../src/gui/accelerators.c:156 +#: ../src/views/darkroom.c:2029 msgid "hold" msgstr "mbaj" -#: ../src/control/control.c:102 ../src/control/control.c:205 +#: ../src/control/control.c:108 ../src/control/control.c:214 msgid "modifiers" msgstr "modifikuesit" -#: ../src/control/control.c:111 +#: ../src/control/control.c:117 msgctxt "accel" msgid "global" msgstr "globale" -#: ../src/control/control.c:118 +#: ../src/control/control.c:124 msgctxt "accel" msgid "views" msgstr "pamjet" -#: ../src/control/control.c:125 +#: ../src/control/control.c:131 msgctxt "accel" msgid "thumbtable" msgstr "minitabela" -#: ../src/control/control.c:132 +#: ../src/control/control.c:138 msgctxt "accel" msgid "utility modules" msgstr "modulet utilitare" -#: ../src/control/control.c:139 +#: ../src/control/control.c:145 msgctxt "accel" msgid "format" msgstr "formati" -#: ../src/control/control.c:146 +#: ../src/control/control.c:152 msgctxt "accel" msgid "storage" msgstr "ruajtja" -#: ../src/control/control.c:153 +#: ../src/control/control.c:159 msgctxt "accel" msgid "processing modules" msgstr "modulet e procesimit" -#: ../src/control/control.c:160 +#: ../src/control/control.c:166 msgctxt "accel" msgid "<blending>" msgstr "<bashkimi>" -#: ../src/control/control.c:167 +#: ../src/control/control.c:173 msgctxt "accel" msgid "Lua scripts" msgstr "skriptet Lua" -#: ../src/control/control.c:174 +#: ../src/control/control.c:180 msgctxt "accel" msgid "fallbacks" msgstr "alternativat" -#: ../src/control/control.c:183 +#: ../src/control/control.c:189 msgctxt "accel" msgid "<focused>" msgstr "<në fokus>" -#: ../src/control/control.c:202 +#: ../src/control/control.c:209 msgid "show accels window" msgstr "tregoj dritaren e shkurtoreve" -#: ../src/control/control.c:363 +#: ../src/control/control.c:371 msgid "working..." msgstr "punon..." -#: ../src/control/crawler.c:425 +#: ../src/control/crawler.c:418 #, c-format msgid "ERROR: %s NOT synced XMP → DB" msgstr "GABIM: %s NUK sinkronizohet XMP → DB" -#: ../src/control/crawler.c:426 ../src/control/crawler.c:492 -#: ../src/control/crawler.c:561 +#: ../src/control/crawler.c:419 ../src/control/crawler.c:485 +#: ../src/control/crawler.c:554 msgid "" "ERROR: cannot write the database. the destination may be full, offline or " "read-only." @@ -6985,18 +7307,18 @@ "GABIM: nuk shkruhet në databazë. destinacioni mund të jetë plot, jashtë " "linje ose vetëm për lexim." -#: ../src/control/crawler.c:433 +#: ../src/control/crawler.c:426 #, c-format msgid "SUCCESS: %s synced XMP → DB" msgstr "SUKSES: %s sinkronizoi XMP → DB" -#: ../src/control/crawler.c:455 +#: ../src/control/crawler.c:448 #, c-format msgid "ERROR: %s NOT synced DB → XMP" msgstr "GABIM: %s NUK sinkronizohet DB → XMP" -#: ../src/control/crawler.c:457 ../src/control/crawler.c:516 -#: ../src/control/crawler.c:582 +#: ../src/control/crawler.c:450 ../src/control/crawler.c:509 +#: ../src/control/crawler.c:575 #, c-format msgid "" "ERROR: cannot write %s \n" @@ -7005,129 +7327,133 @@ "GABIM: nuk shkruhet %s \n" "destinacioni mund të jetë plot, jashtë linje ose vetëm për lexim." -#: ../src/control/crawler.c:463 +#: ../src/control/crawler.c:456 #, c-format msgid "SUCCESS: %s synced DB → XMP" msgstr "SUKSES: %s sinkronizoi DB → XMP" -#: ../src/control/crawler.c:489 +#: ../src/control/crawler.c:482 #, c-format msgid "ERROR: %s NOT synced new (XMP) → old (DB)" msgstr "GABIM: %s NUK sinkronizohet (XMP) e re → (DB) e vjetër" -#: ../src/control/crawler.c:499 +#: ../src/control/crawler.c:492 #, c-format msgid "SUCCESS: %s synced new (XMP) → old (DB)" msgstr "SUKSES: %s sinkronizoi (XMP) e re → (DB) e vjetër" -#: ../src/control/crawler.c:513 +#: ../src/control/crawler.c:506 #, c-format msgid "ERROR: %s NOT synced new (DB) → old (XMP)" msgstr "GABIM: %s NUK sinkronizohet (DB) e re → (XMP) e vjetër" -#: ../src/control/crawler.c:521 +#: ../src/control/crawler.c:514 #, c-format msgid "SUCCESS: %s synced new (DB) → old (XMP)" msgstr "SUKSES: %s sinkronizoi (DB) e re → (XMP) e vjetër" -#: ../src/control/crawler.c:530 ../src/control/crawler.c:598 +#: ../src/control/crawler.c:523 ../src/control/crawler.c:591 #, c-format msgid "EXCEPTION: %s has inconsistent timestamps" msgstr "PËRJASHTIM: %s ka gjurmë kohore të paqëndrueshme" -#: ../src/control/crawler.c:558 +#: ../src/control/crawler.c:551 #, c-format msgid "ERROR: %s NOT synced old (XMP) → new (DB)" msgstr "GABIM: %s NUK sinkronizohet (XMP) e vjetër → (DB) e re" -#: ../src/control/crawler.c:567 +#: ../src/control/crawler.c:560 #, c-format msgid "SUCCESS: %s synced old (XMP) → new (DB)" msgstr "SUKSES: %s sinkronizoi (XMP) e vjetër → (DB) e re" -#: ../src/control/crawler.c:579 +#: ../src/control/crawler.c:572 #, c-format msgid "ERROR: %s NOT synced old (DB) → new (XMP)" msgstr "GABIM: %s NUK sinkronizohet (DB) e vjetër → (XMP) e re" -#: ../src/control/crawler.c:588 +#: ../src/control/crawler.c:581 #, c-format msgid "SUCCESS: %s synced old (DB) → new (XMP)" msgstr "SUKSES: %s sinkronizoi (DB) e vjetër → (XMP) e re" -#: ../src/control/crawler.c:670 +#: ../src/control/crawler.c:663 #, c-format msgid "%id %02dh %02dm %02ds" msgstr "%id %02dh %02dm %02ds" -#: ../src/control/crawler.c:740 ../src/imageio/storage/disk.c:168 -#: ../src/imageio/storage/gallery.c:154 ../src/imageio/storage/latex.c:153 -#: ../src/imageio/storage/latex.c:171 +#: ../src/control/crawler.c:716 +msgid "XMP" +msgstr "XMP" + +#: ../src/control/crawler.c:733 ../src/imageio/storage/disk.c:250 +#: ../src/imageio/storage/gallery.c:202 ../src/imageio/storage/latex.c:190 +#: ../src/imageio/storage/latex.c:208 msgid "path" msgstr "shtegu" -#: ../src/control/crawler.c:749 +#: ../src/control/crawler.c:742 msgid "XMP timestamp" msgstr "gjurma kohore e XMP" -#: ../src/control/crawler.c:754 +#: ../src/control/crawler.c:747 msgid "database timestamp" msgstr "gjurma kohore e databazës" -#: ../src/control/crawler.c:759 +#: ../src/control/crawler.c:752 msgid "newest" msgstr "më të re" -#: ../src/control/crawler.c:765 +#: ../src/control/crawler.c:758 msgid "time difference" msgstr "diferenca kohore" -#: ../src/control/crawler.c:777 +#: ../src/control/crawler.c:770 msgid "updated XMP sidecar files found" msgstr "gjeti skedarët shoqërues XMP të azhurnuar" -#: ../src/control/crawler.c:778 +#: ../src/control/crawler.c:771 msgid "_close" msgstr "_mbyll" #. setup selection accelerators #. action-box -#: ../src/control/crawler.c:793 ../src/dtgtk/thumbtable.c:2578 -#: ../src/libs/import.c:1722 ../src/libs/select.c:135 +#: ../src/control/crawler.c:786 ../src/dtgtk/thumbtable.c:2755 +#: ../src/libs/import.c:1732 ../src/libs/select.c:136 msgid "select all" msgstr "përzgjedh të gjitha" -#: ../src/control/crawler.c:794 ../src/dtgtk/thumbtable.c:2580 -#: ../src/libs/import.c:1726 ../src/libs/select.c:139 +#: ../src/control/crawler.c:787 ../src/dtgtk/thumbtable.c:2757 +#: ../src/libs/import.c:1736 ../src/libs/select.c:140 msgid "select none" msgstr "asnjë përzgjedhje" -#: ../src/control/crawler.c:795 ../src/dtgtk/thumbtable.c:2582 -#: ../src/libs/select.c:143 +#: ../src/control/crawler.c:788 ../src/dtgtk/thumbtable.c:2759 +#: ../src/libs/select.c:144 msgid "invert selection" msgstr "përmbys" -#: ../src/control/crawler.c:807 +#: ../src/control/crawler.c:800 msgid "on the selection:" msgstr "te përzgjedhja:" -#: ../src/control/crawler.c:808 +#: ../src/control/crawler.c:801 msgid "keep the XMP edit" msgstr "mbaj përpunimin e XMP" -#: ../src/control/crawler.c:809 +#: ../src/control/crawler.c:802 msgid "keep the database edit" msgstr "ruaj përpunimin e databazës" -#: ../src/control/crawler.c:810 +#: ../src/control/crawler.c:803 msgid "keep the newest edit" msgstr "mbaj përpunimin më të ri" -#: ../src/control/crawler.c:811 +#: ../src/control/crawler.c:804 msgid "keep the oldest edit" msgstr "mbaj përpunimin më të vjetër" -#: ../src/control/crawler.c:836 +#: ../src/control/crawler.c:829 msgid "synchronization log" msgstr "ditari i sinkronizimit" @@ -7157,6 +7483,10 @@ msgid "starting to import images from camera" msgstr "nis importin e imazheve nga kamera" +#: ../src/control/jobs/camera_jobs.c:302 +msgid "failed to import images from camera." +msgstr "e pamundur të importohen imazhe nga kamera." + #: ../src/control/jobs/camera_jobs.c:309 #, c-format msgid "importing %d image from camera" @@ -7262,7 +7592,8 @@ msgid "_remove from library" msgstr "_heq nga libraria" -#: ../src/control/jobs/control_jobs.c:884 +#: ../src/control/jobs/control_jobs.c:884 ../src/libs/styles.c:440 +#: ../src/libs/styles.c:625 msgid "_skip" msgstr "_anashkaloj" @@ -7360,42 +7691,42 @@ msgid "exporting %d / %d to %s" msgstr "eksporton %d / %d në %s" -#: ../src/control/jobs/control_jobs.c:1459 ../src/views/darkroom.c:800 +#: ../src/control/jobs/control_jobs.c:1451 ../src/views/darkroom.c:721 #: ../src/views/print.c:369 #, c-format msgid "image `%s' is currently unavailable" msgstr "imazhi `%s' nuk mundësohet tani" -#: ../src/control/jobs/control_jobs.c:1551 +#: ../src/control/jobs/control_jobs.c:1554 msgid "merge HDR image" msgstr "shkrij imazhin HDR" -#: ../src/control/jobs/control_jobs.c:1565 +#: ../src/control/jobs/control_jobs.c:1568 msgid "duplicate images" msgstr "dubloj imazhet" -#: ../src/control/jobs/control_jobs.c:1571 +#: ../src/control/jobs/control_jobs.c:1574 msgid "flip images" msgstr "rrokullis imazhet" -#: ../src/control/jobs/control_jobs.c:1578 +#: ../src/control/jobs/control_jobs.c:1581 msgid "set monochrome images" msgstr "caktoj imazhet monokromatike" #. get all selected images now, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1585 +#: ../src/control/jobs/control_jobs.c:1588 msgid "remove images" msgstr "heq imazhet" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove image?" msgstr "do e hiqni imazhin?" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove images?" msgstr "do i hiqni imazhet?" -#: ../src/control/jobs/control_jobs.c:1599 +#: ../src/control/jobs/control_jobs.c:1602 #, c-format msgid "" "do you really want to remove %d image from darktable\n" @@ -7411,21 +7742,21 @@ "(pa i fshirë skedarët në disk)?" #. first get all selected images, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1614 -#: ../src/control/jobs/control_jobs.c:1647 +#: ../src/control/jobs/control_jobs.c:1617 +#: ../src/control/jobs/control_jobs.c:1650 msgid "delete images" msgstr "fshij imazhet" -#: ../src/control/jobs/control_jobs.c:1630 -#: ../src/control/jobs/control_jobs.c:1660 +#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1663 msgid "delete image?" msgstr "do e fshini imazhin?" -#: ../src/control/jobs/control_jobs.c:1630 +#: ../src/control/jobs/control_jobs.c:1633 msgid "delete images?" msgstr "do i fshini imazhet?" -#: ../src/control/jobs/control_jobs.c:1631 +#: ../src/control/jobs/control_jobs.c:1634 #, c-format msgid "" "do you really want to physically delete %d image\n" @@ -7440,14 +7771,14 @@ "vërtet do i fshini fizikisht %d imazhet\n" "(duke përdorur koshin, mundësisht)?" -#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1636 #, c-format msgid "do you really want to physically delete %d image from disk?" msgid_plural "do you really want to physically delete %d images from disk?" msgstr[0] "vërtet do e fshini fizikisht nga disku imazhin?" msgstr[1] "vërtet do i fshini %d imazhet fizikisht nga disku?" -#: ../src/control/jobs/control_jobs.c:1661 +#: ../src/control/jobs/control_jobs.c:1664 msgid "" "do you really want to physically delete selected image (using trash if " "possible)?" @@ -7455,26 +7786,26 @@ "vërtet do e fshini fizikisht imazhin e përzgjedhur (duke përdorur koshin, " "mundësisht)?" -#: ../src/control/jobs/control_jobs.c:1662 +#: ../src/control/jobs/control_jobs.c:1665 msgid "do you really want to physically delete selected image from disk?" msgstr "vërtet do e fshini imazhin e përzgjedhur fizikisht nga disku?" -#: ../src/control/jobs/control_jobs.c:1677 +#: ../src/control/jobs/control_jobs.c:1680 msgid "move images" msgstr "lëviz imazhet" -#: ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 msgid "_select as destination" msgstr "_përzgjedh si destinacion" -#: ../src/control/jobs/control_jobs.c:1708 +#: ../src/control/jobs/control_jobs.c:1711 msgid "move image?" msgid_plural "move images?" msgstr[0] "do lëvizni imazhin?" msgstr[1] "do lëvizni imazhet?" -#: ../src/control/jobs/control_jobs.c:1709 +#: ../src/control/jobs/control_jobs.c:1712 #, c-format msgid "" "do you really want to physically move %d image to %s?\n" @@ -7489,117 +7820,112 @@ "vërtet do i lëvizni fizikisht %d imazhet e përzgjedhura në %s?\n" "(do të lëvizni njëkohësisht edhe gjithë dublikatat)" -#: ../src/control/jobs/control_jobs.c:1731 +#: ../src/control/jobs/control_jobs.c:1734 msgid "copy images" msgstr "kopjoj imazhet" -#: ../src/control/jobs/control_jobs.c:1762 +#: ../src/control/jobs/control_jobs.c:1765 msgid "copy image?" msgid_plural "copy images?" msgstr[0] "do kopjoni imazhin?" msgstr[1] "do kopjoni imazhet?" -#: ../src/control/jobs/control_jobs.c:1763 +#: ../src/control/jobs/control_jobs.c:1766 #, c-format msgid "do you really want to physically copy %d image to %s?" msgid_plural "do you really want to physically copy %d images to %s?" msgstr[0] "vërtet do e kopjoni fizikisht %d imazh të përzgjedhur në %s?" msgstr[1] "vërtet do i kopjoni fizikisht %d imazhet e përzgjedhura në %s?" -#: ../src/control/jobs/control_jobs.c:1781 -#: ../src/control/jobs/control_jobs.c:1789 +#: ../src/control/jobs/control_jobs.c:1784 +#: ../src/control/jobs/control_jobs.c:1792 msgid "local copy images" msgstr "kopjoj imazhet lokalisht" -#: ../src/control/jobs/control_jobs.c:1796 ../src/libs/image.c:604 +#: ../src/control/jobs/control_jobs.c:1799 ../src/libs/image.c:674 msgid "refresh EXIF" msgstr "freskoj EXIF" -#: ../src/control/jobs/control_jobs.c:1860 +#: ../src/control/jobs/control_jobs.c:1863 #, c-format msgid "failed to get parameters from storage module `%s', aborting export.." msgstr "" "dështoi marrja e parametrave nga moduli për ruajtjen në disk `%s', ndërpret " "eksportin..." -#: ../src/control/jobs/control_jobs.c:1876 +#: ../src/control/jobs/control_jobs.c:1879 msgid "export images" msgstr "eksportoj imazhet" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "adding time offset to %d image" msgstr "shton ofsetin e orës në %d imazh" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "setting date/time of %d image" msgstr "vendos ofsetin e datës/orës në %d imazh" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "adding time offset to %d images" msgstr "shton ofsetin e orës në %d imazhe" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "setting date/time of %d images" msgstr "vendos ofsetin e datës/orës në %d imazhe" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "added time offset to %d image" msgstr "shtoi ofsetin e orës në %d imazh" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "set date/time of %d image" msgstr "caktoi ofsetin e datës/orës në %d imazh" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "added time offset to %d images" msgstr "shtoi ofsetin e orës në %d imazhe" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "set date/time of %d images" msgstr "caktoi ofsetin e datës/orës në %d imazhe" -#: ../src/control/jobs/control_jobs.c:2014 +#: ../src/control/jobs/control_jobs.c:2017 msgid "time offset" msgstr "ofseti i orës" -#: ../src/control/jobs/control_jobs.c:2042 ../src/libs/copy_history.c:414 +#: ../src/control/jobs/control_jobs.c:2045 ../src/libs/copy_history.c:414 msgid "write sidecar files" msgstr "shkruaj skedarët shoqërues" -#: ../src/control/jobs/control_jobs.c:2256 ../src/control/jobs/film_jobs.c:297 +#: ../src/control/jobs/control_jobs.c:2259 ../src/control/jobs/film_jobs.c:297 #, c-format msgid "importing %d image" msgid_plural "importing %d images" msgstr[0] "importon %d imazh" msgstr[1] "importon %d imazhe" -#: ../src/control/jobs/control_jobs.c:2292 +#: ../src/control/jobs/control_jobs.c:2295 #, c-format msgid "importing %d/%d image" msgid_plural "importing %d/%d images" msgstr[0] "importon %d/%d imazh" msgstr[1] "importon %d/%d imazhe" -#: ../src/control/jobs/control_jobs.c:2300 +#: ../src/control/jobs/control_jobs.c:2305 #, c-format msgid "imported %d image" msgid_plural "imported %d images" msgstr[0] "importoi %d imazh" msgstr[1] "importoi %d imazhe" -#: ../src/control/jobs/control_jobs.c:2347 ../src/gui/preferences.c:530 -#: ../src/libs/import.c:172 -msgid "import" -msgstr "importoj" - #: ../src/control/jobs/film_jobs.c:73 ../src/control/jobs/film_jobs.c:109 msgid "import images" msgstr "importoj imazhet" @@ -7617,11 +7943,11 @@ msgid "import image" msgstr "importoj imazhin" -#: ../src/develop/blend.c:322 +#: ../src/develop/blend.c:315 msgid "detail mask blending error" msgstr "jap detaje për problemin me maskën bashkuese" -#: ../src/develop/blend.c:864 +#: ../src/develop/blend.c:904 msgid "detail mask CL blending problem" msgstr "jap detaje për problemin me maskën bashkuese CL" @@ -7822,8 +8148,7 @@ msgid "reverse" msgstr "kthej mbrapsht" -#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:413 -#: ../src/libs/metadata.c:631 ../src/libs/metadata_view.c:1193 +#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:442 msgid "default" msgstr "standard" @@ -7831,35 +8156,35 @@ msgid "RAW" msgstr "BRUTO" -#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2014 +#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2030 msgid "RGB (display)" msgstr "RGB (ekrani)" -#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2027 +#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2043 msgid "RGB (scene)" msgstr "RGB (skena)" #. DEVELOP_MASK_ENABLED -#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3419 +#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3438 msgid "uniformly" msgstr "njëtrajtësisht" -#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:3429 ../src/develop/imageop.c:2660 +#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:3448 ../src/develop/imageop.c:2669 msgid "drawn mask" msgstr "maskë e vizatuar" -#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2512 -#: ../src/develop/blend_gui.c:3440 ../src/develop/imageop.c:2662 +#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2528 +#: ../src/develop/blend_gui.c:3459 ../src/develop/imageop.c:2671 msgid "parametric mask" msgstr "maskë parametrike" -#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2951 -#: ../src/develop/blend_gui.c:3467 ../src/develop/imageop.c:2664 +#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2966 +#: ../src/develop/blend_gui.c:3486 ../src/develop/imageop.c:2673 msgid "raster mask" msgstr "maskë raster" -#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3454 +#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3473 msgid "drawn & parametric mask" msgstr "maskë e vizatuar dhe parametrike" @@ -7895,177 +8220,177 @@ msgid "input after blur" msgstr "inputi pas sfumimit" -#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:129 -#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/libs/live_view.c:362 +#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:157 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/libs/live_view.c:362 msgid "on" msgstr "ndezur" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "input" msgstr "inputi" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "output" msgstr "outputi" -#: ../src/develop/blend_gui.c:995 +#: ../src/develop/blend_gui.c:998 msgid " (zoom)" msgstr " (zmadhimi)" -#: ../src/develop/blend_gui.c:1003 +#: ../src/develop/blend_gui.c:1006 msgid " (log)" msgstr " (log)" -#: ../src/develop/blend_gui.c:1988 +#: ../src/develop/blend_gui.c:2004 msgid "reset to default blend colorspace" msgstr "kthej hapësirën standarde të ngjyrave të bashkuara" -#: ../src/develop/blend_gui.c:2044 +#: ../src/develop/blend_gui.c:2060 msgid "reset and hide output channels" msgstr "ktheni dhe fshihni kanalet output" -#: ../src/develop/blend_gui.c:2051 +#: ../src/develop/blend_gui.c:2067 msgid "show output channels" msgstr "tregoj kanalet output" -#: ../src/develop/blend_gui.c:2290 ../src/develop/blend_gui.c:2357 -#: ../src/iop/tonecurve.c:1134 +#: ../src/develop/blend_gui.c:2306 ../src/develop/blend_gui.c:2373 +#: ../src/iop/tonecurve.c:1156 msgid "L" msgstr "L" -#: ../src/develop/blend_gui.c:2290 +#: ../src/develop/blend_gui.c:2306 msgid "sliders for L channel" msgstr "shkarësit për kanalin L" -#: ../src/develop/blend_gui.c:2295 ../src/iop/tonecurve.c:1135 +#: ../src/develop/blend_gui.c:2311 ../src/iop/tonecurve.c:1157 msgid "a" msgstr "a" -#: ../src/develop/blend_gui.c:2295 +#: ../src/develop/blend_gui.c:2311 msgid "sliders for a channel" msgstr "shkarësit për kanalin a" -#: ../src/develop/blend_gui.c:2299 +#: ../src/develop/blend_gui.c:2315 msgid "green/red" msgstr "gjelbër/kuqe" -#: ../src/develop/blend_gui.c:2300 ../src/iop/tonecurve.c:1136 +#: ../src/develop/blend_gui.c:2316 ../src/iop/tonecurve.c:1158 msgid "b" msgstr "b" -#: ../src/develop/blend_gui.c:2300 +#: ../src/develop/blend_gui.c:2316 msgid "sliders for b channel" msgstr "shkarësit për kanalin b" -#: ../src/develop/blend_gui.c:2304 +#: ../src/develop/blend_gui.c:2320 msgid "blue/yellow" msgstr "blu/verdhë" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "C" msgstr "C" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "sliders for chroma channel (of LCh)" msgstr "shkarësit për kanalin kroma (të LCh)" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "h" msgstr "h" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "sliders for hue channel (of LCh)" msgstr "shkarësit për kanalin nuanca (të LCh)" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "g" msgstr "g" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "sliders for gray value" msgstr "shkarësit për vlerën gri" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/denoiseprofile.c:3710 -#: ../src/iop/rawdenoise.c:894 ../src/iop/rgbcurve.c:1358 -#: ../src/iop/rgblevels.c:1003 ../src/libs/filters/colors.c:137 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/denoiseprofile.c:3714 +#: ../src/iop/rawdenoise.c:910 ../src/iop/rgbcurve.c:1358 +#: ../src/iop/rgblevels.c:1043 ../src/libs/filters/colors.c:137 msgid "R" msgstr "R" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 msgid "sliders for red channel" msgstr "shkarësit për kanalin kuqe" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/denoiseprofile.c:3711 -#: ../src/iop/rawdenoise.c:895 ../src/iop/rgbcurve.c:1359 -#: ../src/iop/rgblevels.c:1004 ../src/libs/filters/colors.c:143 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/denoiseprofile.c:3715 +#: ../src/iop/rawdenoise.c:911 ../src/iop/rgbcurve.c:1359 +#: ../src/iop/rgblevels.c:1044 ../src/libs/filters/colors.c:143 msgid "G" msgstr "G" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 msgid "sliders for green channel" msgstr "shkarësit për kanalin gjelbër" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/denoiseprofile.c:3712 -#: ../src/iop/rawdenoise.c:896 ../src/iop/rgbcurve.c:1360 -#: ../src/iop/rgblevels.c:1005 ../src/libs/filters/colors.c:146 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/denoiseprofile.c:3716 +#: ../src/iop/rawdenoise.c:912 ../src/iop/rgbcurve.c:1360 +#: ../src/iop/rgblevels.c:1045 ../src/libs/filters/colors.c:146 msgid "B" msgstr "B" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 msgid "sliders for blue channel" msgstr "shkarësit për kanalin blu" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "H" msgstr "H" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "sliders for hue channel (of HSL)" msgstr "shkarësit për kanalin nuanca (të HSL)" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "S" msgstr "S" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "sliders for chroma channel (of HSL)" msgstr "shkarësit për kanalin kroma (të HSL)" -#: ../src/develop/blend_gui.c:2357 +#: ../src/develop/blend_gui.c:2373 msgid "sliders for value channel (of HSL)" msgstr "shkarësit për kanalin vlera (të HSL)" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "Jz" msgstr "Jz" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "sliders for value channel (of JzCzhz)" msgstr "shkarësit për kanalin vlera (të JzCzhz)" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "Cz" msgstr "Cz" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "sliders for chroma channel (of JzCzhz)" msgstr "shkarësit për kanalin kroma (të JzCzhz)" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "hz" msgstr "hz" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "sliders for hue channel (of JzCzhz)" msgstr "shkarësit për kanalin nuanca (të JzCzhz)" -#: ../src/develop/blend_gui.c:2415 +#: ../src/develop/blend_gui.c:2431 msgid "" "adjustment based on input received by this module:\n" "* range defined by upper markers: blend fully\n" @@ -8077,7 +8402,7 @@ "* intervali caktohet nga orientuesit e poshtëm: nuk shkrihet fare\n" "* intervali midis orientuesve fqinj të sipërm/poshtëm: shkrihet gradualisht" -#: ../src/develop/blend_gui.c:2419 +#: ../src/develop/blend_gui.c:2435 msgid "" "adjustment based on unblended output of this module:\n" "* range defined by upper markers: blend fully\n" @@ -8089,19 +8414,19 @@ "* intervali caktohet nga orientuesit e poshtëm: nuk shkrihet fare\n" "* intervali midis orientuesve fqinj të sipërm/poshtëm: shkrihet gradualisht" -#: ../src/develop/blend_gui.c:2516 +#: ../src/develop/blend_gui.c:2532 msgid "reset blend mask settings" msgstr "ktheni parametrat e maskës bashkuese" -#: ../src/develop/blend_gui.c:2527 ../src/iop/atrous.c:1665 -#: ../src/iop/colorzones.c:2399 ../src/iop/denoiseprofile.c:3707 -#: ../src/iop/rawdenoise.c:891 ../src/iop/rgbcurve.c:1357 -#: ../src/iop/rgblevels.c:1002 ../src/iop/tonecurve.c:1133 +#: ../src/develop/blend_gui.c:2543 ../src/iop/atrous.c:1797 +#: ../src/iop/colorzones.c:2641 ../src/iop/denoiseprofile.c:3711 +#: ../src/iop/rawdenoise.c:907 ../src/iop/rgbcurve.c:1357 +#: ../src/iop/rgblevels.c:1041 ../src/iop/tonecurve.c:1155 msgid "channel" msgstr "kanali" -#: ../src/develop/blend_gui.c:2542 ../src/iop/colorzones.c:2413 -#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1142 +#: ../src/develop/blend_gui.c:2558 ../src/iop/colorzones.c:2660 +#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1164 msgid "" "pick GUI color from image\n" "ctrl+click or right-click to select an area" @@ -8109,12 +8434,12 @@ "mblidhni ngjyrën e grafikës nga imazhi\n" "zona përzgjidhet me ctrl+klikim ose me klikim djathtas" -#: ../src/develop/blend_gui.c:2545 ../src/iop/colorzones.c:2415 +#: ../src/develop/blend_gui.c:2561 ../src/iop/colorzones.c:2662 #: ../src/iop/rgbcurve.c:1369 msgid "show color" msgstr "tregoni ngjyrat" -#: ../src/develop/blend_gui.c:2554 +#: ../src/develop/blend_gui.c:2570 msgid "" "set the range based on an area from the image\n" "drag to use the input image\n" @@ -8124,19 +8449,19 @@ "imazhin input përdoret me tërheqjen e mausit\n" "imazhi output përdoret me ctrl+tërheqje mausi" -#: ../src/develop/blend_gui.c:2557 +#: ../src/develop/blend_gui.c:2573 msgid "set range" msgstr "caktoni intervalin" -#: ../src/develop/blend_gui.c:2560 +#: ../src/develop/blend_gui.c:2576 msgid "invert all channel's polarities" msgstr "përmbysni polaritetin e kanalit" -#: ../src/develop/blend_gui.c:2584 +#: ../src/develop/blend_gui.c:2600 msgid "toggle polarity. best seen by enabling 'display mask'" msgstr "përdorni polaritetin. shihet më mirë duke aktivizuar 'shfaqni maskën'." -#: ../src/develop/blend_gui.c:2613 +#: ../src/develop/blend_gui.c:2629 msgid "" "double-click to reset.\n" "press 'a' to toggle available slider modes.\n" @@ -8148,170 +8473,205 @@ "shtypni 'c' për të parë të dhënat e kanalit.\n" "shtypni 'm' për të parë maskat." -#: ../src/develop/blend_gui.c:2640 ../src/develop/blend_gui.c:3531 -#: ../src/iop/basicadj.c:600 ../src/iop/colorbalancergb.c:2090 -#: ../src/iop/exposure.c:1120 ../src/iop/exposure.c:1135 -#: ../src/iop/filmic.c:1503 ../src/iop/filmic.c:1516 ../src/iop/filmic.c:1558 -#: ../src/iop/filmicrgb.c:4440 ../src/iop/filmicrgb.c:4451 -#: ../src/iop/filmicrgb.c:4485 ../src/iop/filmicrgb.c:4495 -#: ../src/iop/graduatednd.c:1113 ../src/iop/negadoctor.c:1011 -#: ../src/iop/profile_gamma.c:643 ../src/iop/profile_gamma.c:649 -#: ../src/iop/relight.c:262 ../src/iop/soften.c:378 ../src/iop/toneequal.c:3326 -#: ../src/iop/toneequal.c:3329 ../src/iop/toneequal.c:3332 -#: ../src/iop/toneequal.c:3335 ../src/iop/toneequal.c:3338 -#: ../src/iop/toneequal.c:3341 ../src/iop/toneequal.c:3344 -#: ../src/iop/toneequal.c:3347 ../src/iop/toneequal.c:3350 -#: ../src/iop/toneequal.c:3472 ../src/iop/toneequal.c:3481 -#: ../src/iop/toneequal.c:3494 ../src/views/darkroom.c:2453 +#: ../src/develop/blend_gui.c:2656 ../src/develop/blend_gui.c:3577 +#: ../src/iop/basicadj.c:630 ../src/iop/colorbalancergb.c:2161 +#: ../src/iop/exposure.c:1138 ../src/iop/exposure.c:1153 +#: ../src/iop/filmic.c:1528 ../src/iop/filmic.c:1541 ../src/iop/filmic.c:1583 +#: ../src/iop/filmicrgb.c:4504 ../src/iop/filmicrgb.c:4515 +#: ../src/iop/filmicrgb.c:4549 ../src/iop/filmicrgb.c:4559 +#: ../src/iop/graduatednd.c:1082 ../src/iop/negadoctor.c:1030 +#: ../src/iop/profile_gamma.c:657 ../src/iop/profile_gamma.c:663 +#: ../src/iop/relight.c:258 ../src/iop/soften.c:373 ../src/iop/toneequal.c:3379 +#: ../src/iop/toneequal.c:3382 ../src/iop/toneequal.c:3385 +#: ../src/iop/toneequal.c:3388 ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3394 ../src/iop/toneequal.c:3397 +#: ../src/iop/toneequal.c:3400 ../src/iop/toneequal.c:3403 +#: ../src/iop/toneequal.c:3525 ../src/iop/toneequal.c:3534 +#: ../src/iop/toneequal.c:3547 ../src/views/darkroom.c:2292 msgid " EV" msgstr " EV" -#: ../src/develop/blend_gui.c:2642 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:2951 ../src/develop/blend_gui.c:3014 -#: ../src/develop/blend_gui.c:3499 ../src/develop/blend_gui.c:3529 -#: ../src/develop/blend_gui.c:3542 ../src/develop/blend_gui.c:3559 -#: ../src/develop/blend_gui.c:3583 ../src/develop/blend_gui.c:3593 -#: ../src/develop/blend_gui.c:3602 ../src/develop/blend_gui.c:3613 +#: ../src/develop/blend_gui.c:2658 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:2966 ../src/develop/blend_gui.c:3029 +#: ../src/develop/blend_gui.c:3545 ../src/develop/blend_gui.c:3575 +#: ../src/develop/blend_gui.c:3588 ../src/develop/blend_gui.c:3605 +#: ../src/develop/blend_gui.c:3629 ../src/develop/blend_gui.c:3641 +#: ../src/develop/blend_gui.c:3652 ../src/develop/blend_gui.c:3663 msgid "blend" msgstr "bashkoj" -#: ../src/develop/blend_gui.c:2642 +#: ../src/develop/blend_gui.c:2658 msgid "boost factor" msgstr "koeficienti i amplifikimit" -#: ../src/develop/blend_gui.c:2645 +#: ../src/develop/blend_gui.c:2661 msgid "adjust the boost factor of the channel mask" msgstr "rregulloni koeficientin amplifikues për maskën e kanalit" -#: ../src/develop/blend_gui.c:2682 +#: ../src/develop/blend_gui.c:2698 #, c-format msgid "%d shape used" msgid_plural "%d shapes used" msgstr[0] "përdor %d formë" msgstr[1] "përdor %d forma" -#: ../src/develop/blend_gui.c:2687 ../src/develop/blend_gui.c:2743 -#: ../src/develop/blend_gui.c:2831 ../src/develop/blend_gui.c:2952 +#: ../src/develop/blend_gui.c:2703 ../src/develop/blend_gui.c:2759 +#: ../src/develop/blend_gui.c:2847 ../src/develop/blend_gui.c:2967 msgid "no mask used" msgstr "nuk përdor maskë" -#: ../src/develop/blend_gui.c:2751 +#: ../src/develop/blend_gui.c:2767 msgid "toggle polarity of drawn mask" msgstr "polariteti i maskës së vizatuar" -#: ../src/develop/blend_gui.c:2760 +#: ../src/develop/blend_gui.c:2776 msgid "show and edit mask elements" msgstr "shfaqni dhe përpunoni elementet e maskës" -#: ../src/develop/blend_gui.c:2761 +#: ../src/develop/blend_gui.c:2777 msgid "show and edit in restricted mode" msgstr "shfaqni dhe përpunoni në mënyrë të kufizuar" -#: ../src/develop/blend_gui.c:2768 ../src/libs/masks.c:998 -#: ../src/libs/masks.c:1816 ../src/libs/masks.c:1820 +#: ../src/develop/blend_gui.c:2784 ../src/libs/masks.c:1014 +#: ../src/libs/masks.c:1812 ../src/libs/masks.c:1816 msgid "add gradient" msgstr "shtoni gradientin" -#: ../src/develop/blend_gui.c:2769 +#: ../src/develop/blend_gui.c:2785 msgid "add multiple gradients" msgstr "shtoni disa gradientë" -#: ../src/develop/blend_gui.c:2776 ../src/iop/retouch.c:2238 -#: ../src/libs/masks.c:978 ../src/libs/masks.c:1852 ../src/libs/masks.c:1856 +#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2466 +#: ../src/libs/masks.c:994 ../src/libs/masks.c:1848 ../src/libs/masks.c:1852 msgid "add brush" msgstr "shtoni penelin" -#: ../src/develop/blend_gui.c:2777 ../src/iop/retouch.c:2238 +#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2466 msgid "add multiple brush strokes" msgstr "shtoni disa penelata" -#: ../src/develop/blend_gui.c:2784 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 ../src/libs/masks.c:993 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1829 +#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 ../src/libs/masks.c:1009 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1825 msgid "add path" msgstr "shtoni trajektoren" -#: ../src/develop/blend_gui.c:2785 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 +#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 msgid "add multiple paths" msgstr "shtoni disa trajektore" -#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 ../src/libs/masks.c:988 ../src/libs/masks.c:1834 -#: ../src/libs/masks.c:1838 +#: ../src/develop/blend_gui.c:2808 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 ../src/libs/masks.c:1004 ../src/libs/masks.c:1830 +#: ../src/libs/masks.c:1834 msgid "add ellipse" msgstr "shtoni elipsin" -#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 +#: ../src/develop/blend_gui.c:2809 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 msgid "add multiple ellipses" msgstr "shtoni disa elipse" -#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 ../src/libs/masks.c:983 ../src/libs/masks.c:1843 -#: ../src/libs/masks.c:1847 +#: ../src/develop/blend_gui.c:2816 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 ../src/libs/masks.c:999 ../src/libs/masks.c:1839 +#: ../src/libs/masks.c:1843 msgid "add circle" msgstr "shtoni rrethin" -#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 +#: ../src/develop/blend_gui.c:2817 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 msgid "add multiple circles" msgstr "shtoni disa rrathë" -#: ../src/develop/blend_gui.c:2961 +#: ../src/develop/blend_gui.c:2976 msgid "toggle polarity of raster mask" msgstr "përdorni polaritetin e maskës raster" -#: ../src/develop/blend_gui.c:3101 +#: ../src/develop/blend_gui.c:3119 msgid "normal & difference" msgstr "normale dhe diferencuese" -#: ../src/develop/blend_gui.c:3106 +#: ../src/develop/blend_gui.c:3124 msgid "lighten" msgstr "ndriçoj" -#: ../src/develop/blend_gui.c:3113 +#: ../src/develop/blend_gui.c:3131 msgid "darken" msgstr "errësoj" -#: ../src/develop/blend_gui.c:3120 +#: ../src/develop/blend_gui.c:3138 msgid "contrast enhancing" msgstr "përmirësimi i kontrastit" -#: ../src/develop/blend_gui.c:3127 ../src/develop/blend_gui.c:3150 +#: ../src/develop/blend_gui.c:3145 ../src/develop/blend_gui.c:3168 msgid "color channel" msgstr "kanali i ngjyrave" -#: ../src/develop/blend_gui.c:3138 ../src/develop/blend_gui.c:3153 +#: ../src/develop/blend_gui.c:3156 ../src/develop/blend_gui.c:3171 msgid "chromaticity & lightness" msgstr "kromaticiteti dhe ndriçimi" -#: ../src/develop/blend_gui.c:3145 +#: ../src/develop/blend_gui.c:3163 msgid "normal & arithmetic" msgstr "normale dhe aritmetike" #. add deprecated blend mode -#: ../src/develop/blend_gui.c:3166 +#: ../src/develop/blend_gui.c:3184 msgid "deprecated" msgstr "e vjetër" -#: ../src/develop/blend_gui.c:3478 +#. should never happen: unknown blend mode +#: ../src/develop/blend_gui.c:3188 +#, c-format +msgid "unknown blend mode '%d' in module '%s'" +msgstr "metodë e panjohur bashkimi '%d' në modulin '%s'" + +#: ../src/develop/blend_gui.c:3497 msgid "blending options" msgstr "opsionet e bashkimit" -#: ../src/develop/blend_gui.c:3500 ../src/libs/history.c:949 -msgid "blend mode" -msgstr "metoda e bashkimit" +#: ../src/develop/blend_gui.c:3516 +msgid "blend mask" +msgstr "maska bashkuese" + +#: ../src/develop/blend_gui.c:3520 +msgid "display mask and/or color channel" +msgstr "shfaqni maskën dhe/ose kanalin e ngjyrave" + +#: ../src/develop/blend_gui.c:3525 +msgid "" +"display mask and/or color channel.\n" +"ctrl+click to display mask,\n" +"shift+click to display channel.\n" +"hover over parametric mask slider to select channel for display" +msgstr "" +"shfaqni maskën dhe/ose kanalin e ngjyrave.\n" +"maska shfaqet me ctrl+klikim,\n" +"kanali shfaqet me shift+klikim.\n" +"kaloni mausin mbi shkarësin e maskës parametrike për të zgjedhur kanalin që " +"shfaqet" + +#: ../src/develop/blend_gui.c:3532 +msgid "temporarily switch off blend mask" +msgstr "fikni përkohësisht maskën bashkuese" + +#: ../src/develop/blend_gui.c:3537 +msgid "" +"temporarily switch off blend mask.\n" +"only for module in focus" +msgstr "" +"fikni përkohësisht maskën bashkuese.\n" +"vetëm për modulin që është në fokus" -#: ../src/develop/blend_gui.c:3503 +#: ../src/develop/blend_gui.c:3549 msgid "choose blending mode" msgstr "zgjidhni metodën e bashkimit" -#: ../src/develop/blend_gui.c:3513 +#: ../src/develop/blend_gui.c:3559 msgid "toggle blend order" msgstr "përdorni rendin e bashkimit" -#: ../src/develop/blend_gui.c:3519 +#: ../src/develop/blend_gui.c:3565 msgid "" "toggle the blending order between the input and the output of the module,\n" "by default the output will be blended on top of the input,\n" @@ -8321,40 +8681,40 @@ "standardi është që outputi të bashkohet nga sipër me inputin,\n" "radhitja kthehet me klikimin e ikonës (inputi sipër outputit)" -#: ../src/develop/blend_gui.c:3530 ../src/libs/history.c:953 -msgid "blend fulcrum" -msgstr "boshti i bashkimit" +#: ../src/develop/blend_gui.c:3576 +msgid "fulcrum" +msgstr "boshti" -#: ../src/develop/blend_gui.c:3534 +#: ../src/develop/blend_gui.c:3580 msgid "adjust the fulcrum used by some blending operations" msgstr "rregulloni boshtin që përdorin disa nga operacionet e bashkimit" #. Add opacity/scale sliders to table -#: ../src/develop/blend_gui.c:3542 ../src/iop/watermark.c:1314 -#: ../src/libs/masks.c:104 +#: ../src/develop/blend_gui.c:3588 ../src/iop/watermark.c:1362 +#: ../src/libs/masks.c:105 msgid "opacity" msgstr "tejdukshmëria" -#: ../src/develop/blend_gui.c:3546 +#: ../src/develop/blend_gui.c:3591 msgid "set the opacity of the blending" msgstr "caktoni tejdukshmërinë e bashkimit" -#: ../src/develop/blend_gui.c:3550 ../src/libs/history.c:956 +#: ../src/develop/blend_gui.c:3596 ../src/libs/history.c:956 msgid "combine masks" msgstr "kombinimi i maskave" -#: ../src/develop/blend_gui.c:3552 +#: ../src/develop/blend_gui.c:3598 msgid "" "how to combine individual drawn mask and different channels of parametric " "mask" msgstr "" "kombinoni maskën e vizatuar me kanalet e ndryshme të maskës parametrike" -#: ../src/develop/blend_gui.c:3559 +#: ../src/develop/blend_gui.c:3605 msgid "details threshold" msgstr "pragu i detajeve" -#: ../src/develop/blend_gui.c:3563 +#: ../src/develop/blend_gui.c:3609 msgid "" "adjust the threshold for the details mask (using raw data),\n" "positive values select areas with strong details,\n" @@ -8364,11 +8724,11 @@ "vlerat pozitive prekin zonat me detaje të forta,\n" "vlerat negative prekin zonat e sheshta" -#: ../src/develop/blend_gui.c:3571 ../src/libs/history.c:959 +#: ../src/develop/blend_gui.c:3617 ../src/libs/history.c:959 msgid "feathering guide" msgstr "udhëzuesit e sfumaturës" -#: ../src/develop/blend_gui.c:3574 +#: ../src/develop/blend_gui.c:3620 msgid "" "choose to guide mask by input or output image and\n" "choose to apply feathering before or after mask blur" @@ -8376,28 +8736,28 @@ "zgjidhni a udhëhiqet maska sipas imazhit input apo output dhe\n" "zgjidhni a aplikohet sfumatura para apo pas maskës sfumuese" -#: ../src/develop/blend_gui.c:3583 ../src/libs/history.c:958 +#: ../src/develop/blend_gui.c:3629 ../src/libs/history.c:958 msgid "feathering radius" msgstr "rrezja e sfumaturës" -#: ../src/develop/blend_gui.c:3586 +#: ../src/develop/blend_gui.c:3632 msgid "spatial radius of feathering" msgstr "shtrirja hapësinore e sfumaturës" -#: ../src/develop/blend_gui.c:3593 +#: ../src/develop/blend_gui.c:3641 msgid "blurring radius" msgstr "rrezja e sfumimit" -#: ../src/develop/blend_gui.c:3596 +#: ../src/develop/blend_gui.c:3644 msgid "radius for gaussian blur of blend mask" msgstr "rrezja e sfumimit gausian për maskën bashkuese" -#: ../src/develop/blend_gui.c:3602 ../src/iop/retouch.c:2453 +#: ../src/develop/blend_gui.c:3652 ../src/iop/retouch.c:2738 #: ../src/libs/history.c:954 msgid "mask opacity" msgstr "tejdukshmëria e maskës" -#: ../src/develop/blend_gui.c:3606 +#: ../src/develop/blend_gui.c:3656 msgid "" "shifts and tilts the tone curve of the blend mask to adjust its brightness\n" "without affecting fully transparent/fully opaque regions" @@ -8406,57 +8766,36 @@ "shkëlqim,\n" "por pa prekur zonat plotësisht transparente/opake" -#: ../src/develop/blend_gui.c:3613 ../src/libs/history.c:962 +#: ../src/develop/blend_gui.c:3663 ../src/libs/history.c:962 msgid "mask contrast" msgstr "kontrasti i maskës" -#: ../src/develop/blend_gui.c:3617 +#: ../src/develop/blend_gui.c:3667 msgid "" "gives the tone curve of the blend mask an s-like shape to adjust its contrast" msgstr "" "rregulloni kontrastin duke i dhënë formën 's' kurbës tonale të maskës " "bashkuese" -#: ../src/develop/blend_gui.c:3621 +#: ../src/develop/blend_gui.c:3671 msgid "mask refinement" msgstr "rafinimi i maskës" -#: ../src/develop/blend_gui.c:3625 -msgid "display mask and/or color channel" -msgstr "shfaqni maskën dhe/ose kanalin e ngjyrave" - -#: ../src/develop/blend_gui.c:3630 -msgid "" -"display mask and/or color channel.\n" -"ctrl+click to display mask,\n" -"shift+click to display channel.\n" -"hover over parametric mask slider to select channel for display" -msgstr "" -"shfaqni maskën dhe/ose kanalin e ngjyrave.\n" -"maska shfaqet me ctrl+klikim,\n" -"kanali shfaqet me shift+klikim.\n" -"kaloni mausin mbi shkarësin e maskës parametrike për të zgjedhur kanalin që " -"shfaqet" - -#: ../src/develop/blend_gui.c:3637 -msgid "temporarily switch off blend mask" -msgstr "fikni përkohësisht maskën bashkuese" - -#: ../src/develop/blend_gui.c:3642 +#: ../src/develop/develop.c:732 msgid "" -"temporarily switch off blend mask.\n" -"only for module in focus" +"autosaving history has been disabled for this session because of a slow " +"drive used" msgstr "" -"fikni përkohësisht maskën bashkuese.\n" -"vetëm për modulin që është në fokus" +"vetëregjistrimi i historikut është çaktivizuar, sepse po përdoret një disk i " +"ngadaltë" -#: ../src/develop/develop.c:2303 +#: ../src/develop/develop.c:2202 #, c-format msgid "%s: module `%s' version mismatch: %d != %d" msgstr "%s: moduli `%s' ka mospërputhje versioni: %d != %d" -#: ../src/develop/develop.c:2834 -msgid "module duplicate, can't move new instance after the base one\n" +#: ../src/develop/develop.c:3016 +msgid "duplicate module, can't move new instance after the base one\n" msgstr "modul i dubluar, instanca e re nuk zhvendoset pas asaj bazë\n" #: ../src/develop/imageop.c:1031 @@ -8467,70 +8806,69 @@ msgid "duplicate instance" msgstr "dubloj instancën" -#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3739 -#: ../src/libs/masks.c:1152 +#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3755 +#: ../src/libs/masks.c:1146 msgid "move up" msgstr "lëviz sipër" -#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3740 -#: ../src/libs/masks.c:1157 +#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3756 +#: ../src/libs/masks.c:1151 msgid "move down" msgstr "lëviz poshtë" #. delete button label and tooltip will be updated based on trash pref -#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3742 -#: ../src/gui/accelerators.c:155 ../src/gui/presets.c:562 -#: ../src/libs/image.c:285 ../src/libs/image.c:480 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 +#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3758 +#: ../src/gui/accelerators.c:173 ../src/libs/image.c:303 +#: ../src/libs/image.c:513 msgid "delete" msgstr "fshij" -#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3743 -#: ../src/libs/modulegroups.c:3464 ../src/libs/modulegroups.c:3815 +#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3759 +#: ../src/libs/modulegroups.c:3817 msgid "rename" msgstr "riemërtoj" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched on" msgstr "'%s' është ndezur" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched off" msgstr "'%s' është fikur" -#: ../src/develop/imageop.c:2654 +#: ../src/develop/imageop.c:2663 msgid "unknown mask" msgstr "maskë e panjohur" -#: ../src/develop/imageop.c:2658 +#: ../src/develop/imageop.c:2667 msgid "drawn + parametric mask" msgstr "maskë e vizatuar + parametrike" -#: ../src/develop/imageop.c:2667 +#: ../src/develop/imageop.c:2676 #, c-format msgid "this module has a `%s'" msgstr "ky modul ka një `%s'" -#: ../src/develop/imageop.c:2672 +#: ../src/develop/imageop.c:2681 #, c-format msgid "taken from module %s" msgstr "marrë nga moduli %s" -#: ../src/develop/imageop.c:2677 +#: ../src/develop/imageop.c:2686 msgid "click to display (module must be activated first)" msgstr "shfaqet me klikim (aktivizoni fillimisht modulin)" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "purpose" msgstr "qëllimi" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "process" msgstr "procesi" -#: ../src/develop/imageop.c:2906 +#: ../src/develop/imageop.c:2917 msgid "" "multiple instance actions\n" "right-click creates new instance" @@ -8538,7 +8876,7 @@ "veprimet me instancat e shumëfishta\n" "instanca e re krijohet me klikim djathtas" -#: ../src/develop/imageop.c:2921 +#: ../src/develop/imageop.c:2932 msgid "" "reset parameters\n" "ctrl+click to reapply any automatic presets" @@ -8546,7 +8884,7 @@ "ktheni parametrat fillestarë\n" "vlerat automatike riaplikohen me ctrl+klikim" -#: ../src/develop/imageop.c:2933 +#: ../src/develop/imageop.c:2944 msgid "" "presets\n" "right-click to apply on new instance" @@ -8554,15 +8892,15 @@ "vlerat e paracaktuara\n" "instanca e re aplikohet me klikim djathtas" -#: ../src/develop/imageop.c:3183 ../src/develop/imageop.c:3205 +#: ../src/develop/imageop.c:3194 ../src/develop/imageop.c:3216 msgid "ERROR" msgstr "GABIM" -#: ../src/develop/imageop.c:3620 +#: ../src/develop/imageop.c:3622 msgid "unsupported input" msgstr "input i pagarantuar" -#: ../src/develop/imageop.c:3621 +#: ../src/develop/imageop.c:3623 msgid "" "you have placed this module at\n" "a position in the pipeline where\n" @@ -8574,49 +8912,49 @@ "dhënave nuk korrespondon më\n" "me kërkesat e veta." -#: ../src/develop/imageop.c:3738 ../src/develop/imageop.c:3748 -#: ../src/gui/accelerators.c:151 ../src/libs/lib.c:1414 +#: ../src/develop/imageop.c:3754 ../src/develop/imageop.c:3764 +#: ../src/gui/accelerators.c:169 ../src/libs/lib.c:1415 msgid "show" msgstr "tregoj" -#: ../src/develop/imageop.c:3741 ../src/libs/modulegroups.c:3310 -#: ../src/libs/modulegroups.c:3436 ../src/libs/modulegroups.c:3817 -#: ../src/libs/tagging.c:3248 +#: ../src/develop/imageop.c:3757 ../src/libs/modulegroups.c:3315 +#: ../src/libs/modulegroups.c:3438 ../src/libs/modulegroups.c:3819 +#: ../src/libs/tagging.c:3279 msgid "new" msgstr "të re" -#: ../src/develop/imageop.c:3744 ../src/libs/duplicate.c:405 -#: ../src/libs/image.c:495 ../src/libs/modulegroups.c:3813 +#: ../src/develop/imageop.c:3760 ../src/libs/duplicate.c:411 +#: ../src/libs/image.c:534 ../src/libs/modulegroups.c:3815 msgid "duplicate" msgstr "dubloj" -#: ../src/develop/imageop.c:3749 +#: ../src/develop/imageop.c:3765 msgid "enable" msgstr "aktivizoj" -#: ../src/develop/imageop.c:3750 ../src/gui/accelerators.c:167 +#: ../src/develop/imageop.c:3766 ../src/gui/accelerators.c:185 msgid "focus" msgstr "fokusi" -#: ../src/develop/imageop.c:3751 ../src/gui/accelerators.c:2617 +#: ../src/develop/imageop.c:3767 ../src/gui/accelerators.c:2874 msgid "instance" msgstr "instancë" -#: ../src/develop/imageop.c:3752 ../src/gui/accelerators.c:112 -#: ../src/gui/accelerators.c:122 ../src/gui/gtk.c:3009 ../src/gui/gtk.c:3056 -#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:603 -#: ../src/gui/styles_dialog.c:625 ../src/iop/atrous.c:1512 -#: ../src/libs/lib.c:1415 ../src/libs/modulegroups.c:3882 +#: ../src/develop/imageop.c:3768 ../src/gui/accelerators.c:130 +#: ../src/gui/accelerators.c:140 ../src/gui/gtk.c:3055 ../src/gui/gtk.c:3102 +#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:615 +#: ../src/gui/styles_dialog.c:637 ../src/iop/atrous.c:1626 +#: ../src/libs/lib.c:1416 ../src/libs/modulegroups.c:3884 msgid "reset" msgstr "ktheni gjendjen" #. Adding the outer container -#: ../src/develop/imageop.c:3753 ../src/gui/preferences.c:798 -#: ../src/libs/lib.c:1416 +#: ../src/develop/imageop.c:3769 ../src/gui/preferences.c:796 +#: ../src/libs/lib.c:1417 msgid "presets" msgstr "paracaktimet" -#: ../src/develop/imageop.c:3773 +#: ../src/develop/imageop.c:3789 msgid "processing module" msgstr "moduli i procesimit" @@ -8629,54 +8967,54 @@ "%s\n" "me ctrl+klikim %s" -#: ../src/develop/lightroom.c:1083 +#: ../src/develop/lightroom.c:1137 msgid "cannot find Lightroom XMP!" msgstr "nuk gjen Lightroom XMP!" -#: ../src/develop/lightroom.c:1115 ../src/develop/lightroom.c:1137 -#: ../src/develop/lightroom.c:1157 +#: ../src/develop/lightroom.c:1169 ../src/develop/lightroom.c:1191 +#: ../src/develop/lightroom.c:1211 #, c-format msgid "`%s' is not a Lightroom XMP!" msgstr "`%s' nuk është XMP e Lightroom!" -#: ../src/develop/lightroom.c:1556 +#: ../src/develop/lightroom.c:1613 #, c-format msgid "%s has been imported" msgid_plural "%s have been imported" msgstr[0] "importoi %s" msgstr[1] "importoi %s" -#: ../src/develop/masks/brush.c:1356 ../src/develop/masks/brush.c:1410 +#: ../src/develop/masks/brush.c:1346 ../src/develop/masks/brush.c:1400 #, c-format msgid "hardness: %3.2f%%" msgstr "fortësia: %3.2f%%" -#: ../src/develop/masks/brush.c:1372 ../src/develop/masks/brush.c:1470 +#: ../src/develop/masks/brush.c:1362 ../src/develop/masks/brush.c:1460 #: ../src/develop/masks/circle.c:148 ../src/develop/masks/circle.c:193 #: ../src/develop/masks/ellipse.c:484 ../src/develop/masks/ellipse.c:546 -#: ../src/develop/masks/path.c:1273 +#: ../src/develop/masks/path.c:1255 #, c-format msgid "size: %3.2f%%" msgstr "madhësia: %3.2f%%" -#: ../src/develop/masks/brush.c:3247 +#: ../src/develop/masks/brush.c:3191 msgid "[BRUSH] change size" msgstr "[PENELI] ndryshoj madhësinë" -#: ../src/develop/masks/brush.c:3249 +#: ../src/develop/masks/brush.c:3193 msgid "[BRUSH] change hardness" msgstr "[FURÇA] ndryshoj fortësinë" -#: ../src/develop/masks/brush.c:3251 +#: ../src/develop/masks/brush.c:3195 msgid "[BRUSH] change opacity" msgstr "[FURÇA] ndryshoj tejdukshmërinë" -#: ../src/develop/masks/brush.c:3263 +#: ../src/develop/masks/brush.c:3207 #, c-format msgid "brush #%d" msgstr "peneli #%d" -#: ../src/develop/masks/brush.c:3276 +#: ../src/develop/masks/brush.c:3220 #, c-format msgid "" "<b>size</b>: scroll, <b>hardness</b>: shift+scroll\n" @@ -8685,35 +9023,35 @@ "<b>madhësia</b>: me rrëshqitjen e mausit, <b>fortësia</b>: shift+rrëshqitje\n" "<b>tejdukshmëria</b>: ctrl+rrëshqitje (%d%%)" -#: ../src/develop/masks/brush.c:3279 +#: ../src/develop/masks/brush.c:3223 msgid "<b>size</b>: scroll" msgstr "<b>madhësia</b>: me rrëshqitjen e mausit" #: ../src/develop/masks/circle.c:137 ../src/develop/masks/circle.c:181 #: ../src/develop/masks/ellipse.c:470 ../src/develop/masks/ellipse.c:531 -#: ../src/develop/masks/path.c:1205 +#: ../src/develop/masks/path.c:1187 #, c-format msgid "feather size: %3.2f%%" msgstr "madhësia e sfumaturës: %3.2f%%" -#: ../src/develop/masks/circle.c:1510 +#: ../src/develop/masks/circle.c:1462 msgid "[CIRCLE] change size" msgstr "[RRETHI] ndryshoj madhësinë" -#: ../src/develop/masks/circle.c:1512 +#: ../src/develop/masks/circle.c:1464 msgid "[CIRCLE] change feather size" msgstr "[RRETHI] ndryshoj madhësinë e sfumaturës" -#: ../src/develop/masks/circle.c:1514 +#: ../src/develop/masks/circle.c:1466 msgid "[CIRCLE] change opacity" msgstr "[RRETHI] ndryshoj tejdukshmërinë" -#: ../src/develop/masks/circle.c:1527 +#: ../src/develop/masks/circle.c:1479 #, c-format msgid "circle #%d" msgstr "rreth #%d" -#: ../src/develop/masks/circle.c:1538 ../src/develop/masks/path.c:3490 +#: ../src/develop/masks/circle.c:1490 ../src/develop/masks/path.c:3406 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8728,32 +9066,32 @@ msgid "rotation: %3.f°" msgstr "rrotullimi: %3.f°" -#: ../src/develop/masks/ellipse.c:2068 +#: ../src/develop/masks/ellipse.c:2015 msgid "[ELLIPSE] change size" msgstr "[ELIPSI] ndryshoj madhësinë" -#: ../src/develop/masks/ellipse.c:2071 +#: ../src/develop/masks/ellipse.c:2018 msgid "[ELLIPSE] change feather size" msgstr "[ELIPSI] ndryshoj madhësinë e sfumaturës" -#: ../src/develop/masks/ellipse.c:2074 ../src/develop/masks/ellipse.c:2083 +#: ../src/develop/masks/ellipse.c:2021 ../src/develop/masks/ellipse.c:2030 msgid "[ELLIPSE] rotate shape" msgstr "[ELIPSI] rrotulloj formën" -#: ../src/develop/masks/ellipse.c:2077 +#: ../src/develop/masks/ellipse.c:2024 msgid "[ELLIPSE] change opacity" msgstr "[ELIPSI] ndryshoj tejdukshmërinë" -#: ../src/develop/masks/ellipse.c:2080 +#: ../src/develop/masks/ellipse.c:2027 msgid "[ELLIPSE] switch feathering mode" msgstr "[ELIPSI] ndërroj metodën e sfumaturës" -#: ../src/develop/masks/ellipse.c:2090 +#: ../src/develop/masks/ellipse.c:2037 #, c-format msgid "ellipse #%d" msgstr "elips #%d" -#: ../src/develop/masks/ellipse.c:2128 +#: ../src/develop/masks/ellipse.c:2075 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8764,11 +9102,11 @@ "<b>rrotullimi</b>: ctrl+shift+rrëshqitje, <b>tejdukshmëria</b>: " "ctrl+rrëshqitje (%d%%)" -#: ../src/develop/masks/ellipse.c:2132 +#: ../src/develop/masks/ellipse.c:2079 msgid "<b>rotate</b>: ctrl+drag" msgstr "<b>rrotullimi</b>: ctrl+tërheqje" -#: ../src/develop/masks/ellipse.c:2135 +#: ../src/develop/masks/ellipse.c:2082 #, c-format msgid "" "<b>feather mode</b>: shift+click, <b>rotate</b>: ctrl+drag\n" @@ -8790,32 +9128,32 @@ msgid "curvature: %3.2f%%" msgstr "kurbatura: %3.2f%%" -#: ../src/develop/masks/gradient.c:1555 +#: ../src/develop/masks/gradient.c:1514 msgid "[GRADIENT on pivot] rotate shape" msgstr "[GRADIENTI në aks] rrotulloj formën" -#: ../src/develop/masks/gradient.c:1557 +#: ../src/develop/masks/gradient.c:1516 msgid "[GRADIENT creation] set rotation" msgstr "[krijimi i GRADIENTIT] caktoj rrotullimin" -#: ../src/develop/masks/gradient.c:1559 +#: ../src/develop/masks/gradient.c:1518 msgid "[GRADIENT] change curvature" msgstr "[GRADIENTI] ndryshoj kurbaturën" -#: ../src/develop/masks/gradient.c:1561 +#: ../src/develop/masks/gradient.c:1520 msgid "[GRADIENT] change compression" msgstr "[GRADIENTI] ndryshoj komprimimin" -#: ../src/develop/masks/gradient.c:1563 +#: ../src/develop/masks/gradient.c:1522 msgid "[GRADIENT] change opacity" msgstr "[GRADIENTI] ndryshoj tejdukshmërinë" -#: ../src/develop/masks/gradient.c:1576 +#: ../src/develop/masks/gradient.c:1535 #, c-format msgid "gradient #%d" msgstr "gradienti #%d" -#: ../src/develop/masks/gradient.c:1587 +#: ../src/develop/masks/gradient.c:1546 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8826,7 +9164,7 @@ "<b>rrotullimi</b>: klikim+tërheqje, <b>tejdukshmëria</b>: ctrl+rrëshqitje " "(%d%%)" -#: ../src/develop/masks/gradient.c:1592 +#: ../src/develop/masks/gradient.c:1551 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8836,7 +9174,7 @@ "shift+rrëshqitje\n" "<b>tejdukshmëria</b>: ctrl+rrëshqitje (%d%%)" -#: ../src/develop/masks/gradient.c:1595 +#: ../src/develop/masks/gradient.c:1554 msgid "<b>rotate</b>: drag" msgstr "<b>rrotullimi</b>: me tërheqjen e mausit" @@ -8844,84 +9182,84 @@ msgid "[SHAPE] remove shape" msgstr "[FORMA] heq formën" -#: ../src/develop/masks/masks.c:306 +#: ../src/develop/masks/masks.c:305 #, c-format msgid "group `%s'" msgstr "grupi `%s'" -#: ../src/develop/masks/masks.c:423 +#: ../src/develop/masks/masks.c:422 #, c-format msgid "copy of `%s'" msgstr "kopje e `%s'" -#: ../src/develop/masks/masks.c:984 +#: ../src/develop/masks/masks.c:985 #, c-format msgid "%s: mask version mismatch: %d != %d" msgstr "%s: ka mospërputhje me versionin e maskës: %d != %d" -#: ../src/develop/masks/masks.c:1239 ../src/develop/masks/masks.c:1906 +#: ../src/develop/masks/masks.c:1230 ../src/develop/masks/masks.c:1881 #, c-format msgid "opacity: %.0f%%" msgstr "tejdukshmëria: %.0f%%" -#: ../src/develop/masks/masks.c:1650 ../src/libs/masks.c:1068 +#: ../src/develop/masks/masks.c:1625 ../src/libs/masks.c:1084 msgid "add existing shape" msgstr "shtoj formën aktuale" -#: ../src/develop/masks/masks.c:1677 +#: ../src/develop/masks/masks.c:1652 msgid "use same shapes as" msgstr "përdor të njëjtën formë si" -#: ../src/develop/masks/masks.c:1990 +#: ../src/develop/masks/masks.c:1965 msgid "masks can not contain themselves" msgstr "maskat nuk përmbahen në vetvete" -#: ../src/develop/masks/path.c:3433 +#: ../src/develop/masks/path.c:3349 msgid "[PATH creation] add a smooth node" msgstr "[krijimi i TRAJEKTORES] shtoj trajektore të harkuar" -#: ../src/develop/masks/path.c:3435 +#: ../src/develop/masks/path.c:3351 msgid "[PATH creation] add a sharp node" msgstr "[krijimi i TRAJEKTORES] shtoj një nyjë akute" -#: ../src/develop/masks/path.c:3437 +#: ../src/develop/masks/path.c:3353 msgid "[PATH creation] terminate path creation" msgstr "[krijimi i TRAJEKTORES] mbaroj krijimin e trajektores" -#: ../src/develop/masks/path.c:3439 +#: ../src/develop/masks/path.c:3355 msgid "[PATH on node] switch between smooth/sharp node" msgstr "[TRAJEKTORJA në nyjë] përdorni një nyjë të harkuar/akute" -#: ../src/develop/masks/path.c:3441 +#: ../src/develop/masks/path.c:3357 msgid "[PATH on node] remove the node" msgstr "[TRAJEKTORJA në nyjë] heq nyjën" -#: ../src/develop/masks/path.c:3443 +#: ../src/develop/masks/path.c:3359 msgid "[PATH on feather] reset curvature" msgstr "[TRAJEKTORJA në sfumaturë] kthej kurbaturën fillestare" -#: ../src/develop/masks/path.c:3445 +#: ../src/develop/masks/path.c:3361 msgid "[PATH on segment] add node" msgstr "[TRAJEKTORJA në segment] shtoj një nyjë" -#: ../src/develop/masks/path.c:3447 +#: ../src/develop/masks/path.c:3363 msgid "[PATH] change size" msgstr "[TRAJEKTORJA] ndryshoj madhësinë" -#: ../src/develop/masks/path.c:3449 +#: ../src/develop/masks/path.c:3365 msgid "[PATH] change feather size" msgstr "[TRAJEKTORJA] ndryshoj madhësinë e sfumaturës" -#: ../src/develop/masks/path.c:3451 +#: ../src/develop/masks/path.c:3367 msgid "[PATH] change opacity" msgstr "[TRAJEKTORJA] ndryshoj tejdukshmërinë" -#: ../src/develop/masks/path.c:3463 +#: ../src/develop/masks/path.c:3379 #, c-format msgid "path #%d" msgstr "trajektorja #%d" -#: ../src/develop/masks/path.c:3473 +#: ../src/develop/masks/path.c:3389 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>cancel</b>: right-click" @@ -8929,7 +9267,7 @@ "<b>shtoni nyjë</b> me klikim, <b>shtoni nyjë akute</b> me ctrl+klikim\n" "<b>anulohet</b> me klikim djathtas" -#: ../src/develop/masks/path.c:3476 +#: ../src/develop/masks/path.c:3392 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>finish path</b>: right-click" @@ -8937,7 +9275,7 @@ "<b>shtoni nyjë</b> me klikim, <b>shtoni nyjë akute</b> me ctrl+klikim\n" "<b>trajektorja mbyllet</b> me klikim djathtas" -#: ../src/develop/masks/path.c:3479 +#: ../src/develop/masks/path.c:3395 msgid "" "<b>move node</b>: drag, <b>remove node</b>: right-click\n" "<b>switch smooth/sharp mode</b>: ctrl+click" @@ -8946,7 +9284,7 @@ "djathtas\n" "<b>përdorni mënyrën e harkuar/akute</b> me ctrl+klikim" -#: ../src/develop/masks/path.c:3483 +#: ../src/develop/masks/path.c:3399 msgid "" "<b>node curvature</b>: drag\n" "<b>reset curvature</b>: right-click" @@ -8954,7 +9292,7 @@ "<b>kurbatura e nyjës</b>: me tërheqjen e mausit\n" "<b>ktheni kurbaturën fillestare</b>: djathtas-klikim" -#: ../src/develop/masks/path.c:3487 +#: ../src/develop/masks/path.c:3403 msgid "" "<b>move segment</b>: drag\n" "<b>add node</b>: ctrl+click" @@ -8962,11 +9300,11 @@ "<b>lëvizni segmentin</b> me tërheqjen e mausit\n" "<b>shtoni nyjë</b> me ctrl+klikim" -#: ../src/develop/pixelpipe_hb.c:500 +#: ../src/develop/pixelpipe_hb.c:486 msgid "enabled as required" msgstr "është aktivizuar siç duhet" -#: ../src/develop/pixelpipe_hb.c:501 +#: ../src/develop/pixelpipe_hb.c:487 msgid "" "history had module disabled but it is required for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -8975,11 +9313,11 @@ "me gjasë ka ndodhur prej aplikimit të një vlere, stili ose kopje-ngjitjes së " "historikut" -#: ../src/develop/pixelpipe_hb.c:508 +#: ../src/develop/pixelpipe_hb.c:494 msgid "disabled as not appropriate" msgstr "është çaktivizuar se nuk duhet" -#: ../src/develop/pixelpipe_hb.c:509 +#: ../src/develop/pixelpipe_hb.c:495 msgid "" "history had module enabled but it is not allowed for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -8988,15 +9326,28 @@ "me gjasë ka ndodhur prej aplikimit të një vlere, stili ose kopje-ngjitjes së " "historikut" -#: ../src/develop/pixelpipe_hb.c:2705 +#: ../src/develop/pixelpipe_hb.c:2697 msgid "" -"darktable discovered problems with your OpenCL setup; disabling OpenCL for " -"this session!" -msgstr "" -"darktable dalloi probleme në instalimin e OpenCL; OpenCL do të çaktivizohet " -"për këtë sesion!" +"OpenCL errors encountered; disabling OpenCL for this session! some possible " +"causes:\n" +" - OpenCL out of resources due to preference settings. please try with " +"defaults,\n" +" - buggy driver for some device. please run darktable with `-d opencl' to " +"identify,\n" +" - some drivers don't support needed number of events,\n" +" - too small headroom settings while using 'use all device memory'." +msgstr "" +"ka probleme me OpenCL-në; OpenCL-ja do të çaktivizohet për këtë seancë! " +"shkaqet e mundshme:\n" +" - OpenCL i ka tejkaluar resurset për shkak të preferencave. lutemi të " +"provoni parametrat standardë,\n" +" - një aparat me pilot problematik. lutemi ta ekzekutoni darktable me `-d " +"opencl' për ta identifikuar,\n" +" - disa pilotë nuk garantojnë numrin e nevojshëm të aktiviteteve,\n" +" - caqe parametrike shumë të ulëta gjatë nga 'përdorimi i gjithë memories " +"së aparatit'." -#: ../src/develop/pixelpipe_hb.c:2853 +#: ../src/develop/pixelpipe_hb.c:2847 #, c-format msgid "" "module '%s' can't get raster mask from module\n" @@ -9007,29 +9358,32 @@ "sepse ajo përpunohet më vonë në linjën e zhvillimit.\n" "maska raster nuk merret parasysh." -#: ../src/develop/tiling.c:820 ../src/develop/tiling.c:1173 +#: ../src/develop/tiling.c:819 ../src/develop/tiling.c:1172 #, c-format -msgid "tiling failed for module '%s'. output might be garbled." +msgid "" +"tiling failed for module '%s'. the output most likely will be OK, but you " +"might want to check." msgstr "" -"e pamundur të pllakëzohej moduli '%s'. outputi mund të jetë ngatërruar." +"e pamundur të pllakëzohej moduli '%s'. outputi mund të jetë në rregull, por " +"duhet kontrolluar." -#: ../src/dtgtk/culling.c:254 +#: ../src/dtgtk/culling.c:223 msgid "you have reached the start of your selection" msgstr "jeni te fillimi i përzgjedhjes" -#: ../src/dtgtk/culling.c:263 +#: ../src/dtgtk/culling.c:232 msgid "you have reached the start of your collection" msgstr "jeni te fillimi i koleksionit" -#: ../src/dtgtk/culling.c:310 +#: ../src/dtgtk/culling.c:279 msgid "you have reached the end of your selection" msgstr "jeni te fundi i përzgjedhjes" -#: ../src/dtgtk/culling.c:337 +#: ../src/dtgtk/culling.c:306 msgid "you have reached the end of your collection" msgstr "jeni te fundi i koleksionit" -#: ../src/dtgtk/culling.c:446 +#: ../src/dtgtk/culling.c:415 #, c-format msgid "zooming is limited to %d images" msgstr "zmadhimi është kufizuar në %d imazhe" @@ -9124,7 +9478,7 @@ msgid "fixed" msgstr "fikse" -#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1493 +#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1498 msgid "relative" msgstr "relative" @@ -9138,7 +9492,7 @@ msgstr "min" #: ../src/dtgtk/range.c:630 ../src/dtgtk/range.c:1780 ../src/dtgtk/range.c:1831 -#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:282 +#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:309 msgid "max" msgstr "maks" @@ -9147,7 +9501,7 @@ msgstr "lloji i datës" #. the date section -#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1505 msgid "date" msgstr "data" @@ -9172,7 +9526,7 @@ msgstr "ditët: " #. the time section -#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1505 msgid "time" msgstr "ora" @@ -9190,8 +9544,8 @@ msgstr "caktoni vlerën që korrespondon gjithmonë me datën/orën aktuale" #. apply button -#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:162 -#: ../src/libs/metadata.c:901 ../src/libs/styles.c:897 +#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:180 +#: ../src/libs/metadata.c:735 ../src/libs/styles.c:901 msgid "apply" msgstr "aplikoj" @@ -9225,39 +9579,39 @@ msgid "grouped images" msgstr "imazhe të grupuara" -#: ../src/dtgtk/thumbnail.c:820 ../src/dtgtk/thumbnail.c:1635 -#: ../src/iop/ashift.c:6191 ../src/iop/ashift.c:6280 ../src/iop/ashift.c:6282 -#: ../src/iop/ashift.c:6284 ../src/libs/navigation.c:110 -#: ../src/libs/navigation.c:190 +#: ../src/dtgtk/thumbnail.c:814 ../src/dtgtk/thumbnail.c:1623 +#: ../src/iop/ashift.c:6138 ../src/iop/ashift.c:6227 ../src/iop/ashift.c:6229 +#: ../src/iop/ashift.c:6231 ../src/libs/navigation.c:111 +#: ../src/libs/navigation.c:193 msgid "fit" msgstr "përshtat" -#: ../src/dtgtk/thumbtable.c:1041 ../src/views/slideshow.c:421 +#: ../src/dtgtk/thumbtable.c:1139 ../src/views/slideshow.c:422 msgid "there are no images in this collection" msgstr "nuk keni imazhe në koleksion" -#: ../src/dtgtk/thumbtable.c:1048 +#: ../src/dtgtk/thumbtable.c:1146 msgid "if you have not imported any images yet" msgstr "imazhet e reja mund t'i shtoni" -#: ../src/dtgtk/thumbtable.c:1052 +#: ../src/dtgtk/thumbtable.c:1150 msgid "you can do so in the import module" msgstr "nëpërmjet modulit të importit" -#: ../src/dtgtk/thumbtable.c:1061 +#: ../src/dtgtk/thumbtable.c:1159 msgid "try to relax the filter settings in the top panel" msgstr "imazhet filtrohen me panelin e sipërm" -#: ../src/dtgtk/thumbtable.c:1072 +#: ../src/dtgtk/thumbtable.c:1170 msgid "or add images in the collections module in the left panel" msgstr "dhe shtohen te moduli 'koleksionet' në panelin majtas" -#: ../src/dtgtk/thumbtable.c:1338 +#: ../src/dtgtk/thumbtable.c:1455 msgid "" "you have changed the settings related to how thumbnails are generated.\n" msgstr "keni ndryshuar parametrat në lidhje me krijimin e miniaturave.\n" -#: ../src/dtgtk/thumbtable.c:1341 +#: ../src/dtgtk/thumbtable.c:1458 msgid "" "all cached thumbnails need to be invalidated.\n" "\n" @@ -9265,7 +9619,7 @@ "duhen flakur gjithë miniaturat në kash.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1345 +#: ../src/dtgtk/thumbtable.c:1462 #, c-format msgid "" "cached thumbnails starting from level %d need to be invalidated.\n" @@ -9274,16 +9628,16 @@ "miniaturat në kash, duke filluar nga niveli %d, duhen flakur.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1350 +#: ../src/dtgtk/thumbtable.c:1467 #, c-format msgid "" "cached thumbnails below level %d need to be invalidated.\n" "\n" msgstr "" -"miniaturat e depozituara nën nivelin %d duhen flakur.\n" +"miniaturat në kash nën nivelin %d duhen flakur.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1355 +#: ../src/dtgtk/thumbtable.c:1472 #, c-format msgid "" "cached thumbnails between level %d and %d need to be invalidated.\n" @@ -9292,48 +9646,48 @@ "miniaturat në kash nën nivelin %d dhe %d duhen flakur.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1358 +#: ../src/dtgtk/thumbtable.c:1475 msgid "do you want to do that now?" msgstr "do e kryeni tani?" -#: ../src/dtgtk/thumbtable.c:1360 +#: ../src/dtgtk/thumbtable.c:1477 msgid "cached thumbnails invalidation" msgstr "flakja e miniaturave në kash" #. setup history key accelerators -#: ../src/dtgtk/thumbtable.c:2561 +#: ../src/dtgtk/thumbtable.c:2738 msgid "copy history" msgstr "kopjoj historikun" -#: ../src/dtgtk/thumbtable.c:2563 +#: ../src/dtgtk/thumbtable.c:2740 msgid "copy history parts" msgstr "kopjoj pjesët e historikut" -#: ../src/dtgtk/thumbtable.c:2565 +#: ../src/dtgtk/thumbtable.c:2742 msgid "paste history" msgstr "ngjit historikun" -#: ../src/dtgtk/thumbtable.c:2567 +#: ../src/dtgtk/thumbtable.c:2744 msgid "paste history parts" msgstr "ngjit pjesët e historikut" -#: ../src/dtgtk/thumbtable.c:2569 ../src/libs/copy_history.c:394 +#: ../src/dtgtk/thumbtable.c:2746 ../src/libs/copy_history.c:394 msgid "discard history" msgstr "flak historikun" -#: ../src/dtgtk/thumbtable.c:2572 +#: ../src/dtgtk/thumbtable.c:2749 msgid "duplicate image" msgstr "dubloj imazhin" -#: ../src/dtgtk/thumbtable.c:2574 +#: ../src/dtgtk/thumbtable.c:2751 msgid "duplicate image virgin" msgstr "dubloj imazhin e virgjër" -#: ../src/dtgtk/thumbtable.c:2584 ../src/libs/select.c:147 +#: ../src/dtgtk/thumbtable.c:2761 ../src/libs/select.c:148 msgid "select film roll" msgstr "përzgjedh filmin" -#: ../src/dtgtk/thumbtable.c:2586 ../src/libs/select.c:151 +#: ../src/dtgtk/thumbtable.c:2763 ../src/libs/select.c:152 msgid "select untouched" msgstr "përzgjedh të paprekurat" @@ -9402,265 +9756,296 @@ msgid "creating complete lighttable thumbnail cache\n" msgstr "krijon depon e plotë të miniaturave për fototekë\n" -#: ../src/gui/accelerators.c:61 -msgid "active view" -msgstr "këndi aktiv" - -#: ../src/gui/accelerators.c:62 -msgid "other views" -msgstr "këndet e tjera" +#: ../src/gui/about.c:34 +#, c-format +msgid "copyright (c) the authors 2009-%s" +msgstr "kopirajti (c) autorët 2009-%s" + +#: ../src/gui/about.c:39 +msgid "organize and develop images from digital cameras" +msgstr "organizoni dhe zhvilloni fotot digjitale" + +#: ../src/gui/about.c:51 +msgid "all those of you that made previous releases possible" +msgstr "gjithë ata që kanë ndihmuar në të kaluarën" + +#: ../src/gui/about.c:56 +msgid "and..." +msgstr "dhe..." + +#: ../src/gui/about.c:59 +msgid "translator-credits" +msgstr "Besmir Godole" + +#: ../src/gui/accelerators.c:72 +msgid "in active view" +msgstr "në këndin aktiv" + +#: ../src/gui/accelerators.c:73 +msgid "in other views" +msgstr "në këndet e tjera" -#: ../src/gui/accelerators.c:63 +#: ../src/gui/accelerators.c:74 msgid "fallbacks" msgstr "alternativat" -#: ../src/gui/accelerators.c:64 ../src/gui/accelerators.c:722 -#: ../src/gui/accelerators.c:2607 ../src/gui/accelerators.c:3470 -msgid "speed" -msgstr "shpejtësia" +#: ../src/gui/accelerators.c:75 +msgid "speed adjustments" +msgstr "rregullimi i shpejtësisë" + +#: ../src/gui/accelerators.c:76 +msgid "disabled defaults" +msgstr "parametrat standardë të çaktivizuar" -#: ../src/gui/accelerators.c:80 ../src/views/view.c:1202 +#: ../src/gui/accelerators.c:96 ../src/views/view.c:1361 msgid "scroll" msgstr "rrëshqas" -#: ../src/gui/accelerators.c:81 +#: ../src/gui/accelerators.c:97 msgid "pan" msgstr "pan" -#: ../src/gui/accelerators.c:82 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6283 ../src/iop/clipping.c:1902 -#: ../src/iop/clipping.c:2094 ../src/iop/clipping.c:2110 -#: ../src/views/darkroom.c:2676 ../src/views/lighttable.c:1250 +#: ../src/gui/accelerators.c:98 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6230 ../src/iop/clipping.c:1955 +#: ../src/iop/clipping.c:2147 ../src/iop/clipping.c:2163 +#: ../src/views/darkroom.c:2522 ../src/views/lighttable.c:1250 msgid "horizontal" msgstr "horizontalisht" -#: ../src/gui/accelerators.c:83 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6281 ../src/iop/clipping.c:1901 -#: ../src/iop/clipping.c:2095 ../src/iop/clipping.c:2109 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:1254 +#: ../src/gui/accelerators.c:99 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6228 ../src/iop/clipping.c:1954 +#: ../src/iop/clipping.c:2148 ../src/iop/clipping.c:2162 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:1254 msgid "vertical" msgstr "vertikalisht" -#: ../src/gui/accelerators.c:84 +#: ../src/gui/accelerators.c:100 msgid "diagonal" msgstr "diagonale" -#: ../src/gui/accelerators.c:86 +#: ../src/gui/accelerators.c:102 msgid "leftright" msgstr "majtas-djathtas" -#: ../src/gui/accelerators.c:87 +#: ../src/gui/accelerators.c:103 msgid "updown" msgstr "lart-poshtë" -#: ../src/gui/accelerators.c:88 +#: ../src/gui/accelerators.c:104 msgid "pgupdown" msgstr "pgupdown" -#: ../src/gui/accelerators.c:96 ../src/views/view.c:1186 +#: ../src/gui/accelerators.c:112 ../src/views/view.c:1343 msgid "shift" msgstr "shift" -#: ../src/gui/accelerators.c:97 ../src/views/view.c:1187 +#: ../src/gui/accelerators.c:113 ../src/views/view.c:1345 msgid "ctrl" msgstr "ctrl" -#: ../src/gui/accelerators.c:98 ../src/views/view.c:1188 +#: ../src/gui/accelerators.c:114 ../src/views/view.c:1347 msgid "alt" msgstr "alt" -#: ../src/gui/accelerators.c:99 +#: ../src/gui/accelerators.c:115 msgid "cmd" msgstr "cmd" -#: ../src/gui/accelerators.c:100 +#: ../src/gui/accelerators.c:116 msgid "altgr" msgstr "altgr" -#: ../src/gui/accelerators.c:109 ../src/gui/accelerators.c:156 -#: ../src/libs/tagging.c:1782 +#: ../src/gui/accelerators.c:127 ../src/gui/accelerators.c:174 +#: ../src/libs/tagging.c:1804 msgid "edit" msgstr "përpunoj" -#: ../src/gui/accelerators.c:110 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "up" msgstr "lart" -#: ../src/gui/accelerators.c:111 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:129 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "down" msgstr "poshtë" -#: ../src/gui/accelerators.c:115 +#: ../src/gui/accelerators.c:133 msgid "set" msgstr "vendos" -#: ../src/gui/accelerators.c:119 +#: ../src/gui/accelerators.c:137 msgid "popup" msgstr "dritarja modale" -#: ../src/gui/accelerators.c:120 ../src/gui/accelerators.c:153 -#: ../src/gui/gtk.c:3054 ../src/views/lighttable.c:760 +#: ../src/gui/accelerators.c:138 ../src/gui/accelerators.c:171 +#: ../src/gui/gtk.c:3100 ../src/views/lighttable.c:760 msgid "next" msgstr "tjetër" -#: ../src/gui/accelerators.c:121 ../src/gui/accelerators.c:152 -#: ../src/gui/gtk.c:3055 ../src/views/lighttable.c:761 +#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:170 +#: ../src/gui/gtk.c:3101 ../src/views/lighttable.c:761 msgid "previous" msgstr "pararendës" -#: ../src/gui/accelerators.c:123 ../src/gui/accelerators.c:1462 +#: ../src/gui/accelerators.c:141 ../src/gui/accelerators.c:1598 msgid "last" msgstr "e fundit" -#: ../src/gui/accelerators.c:124 ../src/gui/accelerators.c:1461 +#: ../src/gui/accelerators.c:142 ../src/gui/accelerators.c:1597 msgid "first" msgstr "e para" -#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:141 -#: ../src/gui/accelerators.c:314 ../src/libs/filters/rating_range.c:268 -#: ../src/libs/tagging.c:3119 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2419 ../src/views/darkroom.c:2648 +#: ../src/gui/accelerators.c:146 ../src/gui/accelerators.c:159 +#: ../src/gui/accelerators.c:356 ../src/libs/filters/rating_range.c:295 +#: ../src/libs/tagging.c:3150 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2258 ../src/views/darkroom.c:2494 msgid "toggle" msgstr "përdor" -#: ../src/gui/accelerators.c:131 +#: ../src/gui/accelerators.c:149 msgid "ctrl-toggle" msgstr "ctrl-përdor" -#: ../src/gui/accelerators.c:132 +#: ../src/gui/accelerators.c:150 msgid "ctrl-on" msgstr "ctrl-ndezur" -#: ../src/gui/accelerators.c:133 +#: ../src/gui/accelerators.c:151 msgid "right-toggle" msgstr "përdor-djathtas" -#: ../src/gui/accelerators.c:134 +#: ../src/gui/accelerators.c:152 msgid "right-on" msgstr "djathtas-ndez" -#: ../src/gui/accelerators.c:145 ../src/gui/gtk.c:3053 +#: ../src/gui/accelerators.c:163 ../src/gui/gtk.c:3099 msgid "activate" msgstr "aktivizoj" -#: ../src/gui/accelerators.c:146 +#: ../src/gui/accelerators.c:164 msgid "ctrl-activate" msgstr "ctrl-aktivizoj" -#: ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:165 msgid "right-activate" msgstr "djathtas-aktivizoj" -#: ../src/gui/accelerators.c:154 +#: ../src/gui/accelerators.c:172 msgid "store" msgstr "depozitoj" -#: ../src/gui/accelerators.c:157 ../src/gui/styles_dialog.c:639 +#: ../src/gui/accelerators.c:175 ../src/gui/styles_dialog.c:651 msgid "update" msgstr "azhurnoj" -#: ../src/gui/accelerators.c:158 ../src/libs/tools/global_toolbox.c:60 +#: ../src/gui/accelerators.c:176 ../src/libs/tools/global_toolbox.c:60 #: ../src/libs/tools/global_toolbox.c:510 msgid "preferences" msgstr "preferencat" -#: ../src/gui/accelerators.c:163 +#: ../src/gui/accelerators.c:181 msgid "apply on new instance" msgstr "aplikoj për instancën e re" -#: ../src/gui/accelerators.c:168 +#: ../src/gui/accelerators.c:186 msgid "start" msgstr "fillimi" -#: ../src/gui/accelerators.c:169 +#: ../src/gui/accelerators.c:187 msgid "end" msgstr "mbarimi" -#: ../src/gui/accelerators.c:332 +#: ../src/gui/accelerators.c:374 msgid "entry" msgstr "elementi" -#: ../src/gui/accelerators.c:409 +#: ../src/gui/accelerators.c:450 msgid "combo effect not found" msgstr "nuk gjendet efekti kombo" -#: ../src/gui/accelerators.c:578 +#: ../src/gui/accelerators.c:627 msgid "(keypad)" msgstr "(tast numerik)" -#: ../src/gui/accelerators.c:587 +#: ../src/gui/accelerators.c:636 msgid "tablet button" msgstr "butoni i tabletës" -#: ../src/gui/accelerators.c:596 +#: ../src/gui/accelerators.c:645 msgid "unknown driver" msgstr "pilot i panjohur" -#: ../src/gui/accelerators.c:663 +#: ../src/gui/accelerators.c:718 msgid "long" msgstr "gjatë" -#: ../src/gui/accelerators.c:664 +#: ../src/gui/accelerators.c:719 msgid "double-press" msgstr "shtypje dyshe" -#: ../src/gui/accelerators.c:665 +#: ../src/gui/accelerators.c:720 msgid "triple-press" msgstr "shtypje treshe" -#: ../src/gui/accelerators.c:666 +#: ../src/gui/accelerators.c:721 msgid "press" msgstr "shtyp" -#: ../src/gui/accelerators.c:670 +#: ../src/gui/accelerators.c:725 msgctxt "accel" msgid "left" msgstr "majtas" -#: ../src/gui/accelerators.c:671 +#: ../src/gui/accelerators.c:726 msgctxt "accel" msgid "right" msgstr "djathtas" -#: ../src/gui/accelerators.c:672 +#: ../src/gui/accelerators.c:727 msgctxt "accel" msgid "middle" msgstr "mesëm" -#: ../src/gui/accelerators.c:673 +#: ../src/gui/accelerators.c:728 msgctxt "accel" msgid "long" msgstr "gjatë" -#: ../src/gui/accelerators.c:674 +#: ../src/gui/accelerators.c:729 msgctxt "accel" msgid "double-click" msgstr "dopioklik" -#: ../src/gui/accelerators.c:675 +#: ../src/gui/accelerators.c:730 msgctxt "accel" msgid "triple-click" msgstr "klikim tresh" -#: ../src/gui/accelerators.c:676 +#: ../src/gui/accelerators.c:731 msgid "click" msgstr "klikim" -#: ../src/gui/accelerators.c:704 +#: ../src/gui/accelerators.c:759 msgid "first instance" msgstr "instanca e parë" -#: ../src/gui/accelerators.c:706 +#: ../src/gui/accelerators.c:761 msgid "last instance" msgstr "instanca e fundit" -#: ../src/gui/accelerators.c:708 +#: ../src/gui/accelerators.c:763 msgid "relative instance" msgstr "instanca relative" -#: ../src/gui/accelerators.c:867 +#: ../src/gui/accelerators.c:780 ../src/gui/accelerators.c:2864 +#: ../src/gui/accelerators.c:3811 +msgid "speed" +msgstr "shpejtësia" + +#: ../src/gui/accelerators.c:923 #, c-format msgid "" "Lua script command copied to clipboard:\n" @@ -9671,11 +10056,11 @@ "\n" "<tt>%s</tt>" -#: ../src/gui/accelerators.c:965 ../src/gui/accelerators.c:978 +#: ../src/gui/accelerators.c:1025 ../src/gui/accelerators.c:1044 msgid "start typing for incremental search" msgstr "filloni të shkruani për të kërkuar gradualisht" -#: ../src/gui/accelerators.c:966 +#: ../src/gui/accelerators.c:1028 msgid "" "\n" "press Delete to delete selected shortcut" @@ -9683,7 +10068,23 @@ "\n" "shkurtorja e përzgjedhur fshihet me tastin Delete" -#: ../src/gui/accelerators.c:968 +#: ../src/gui/accelerators.c:1030 +msgid "" +"\n" +"press Delete to disable selected default shortcut" +msgstr "" +"\n" +"shkurtorja standarde e përzgjedhur çaktivizohet me tastin Delete" + +#: ../src/gui/accelerators.c:1031 +msgid "" +"\n" +"press Delete to restore selected default shortcut" +msgstr "" +"\n" +"shkurtorja standarde e përzgjedhur kthehet me tastin Delete" + +#: ../src/gui/accelerators.c:1033 msgid "" "\n" "double-click to add new shortcut" @@ -9691,11 +10092,11 @@ "\n" "shkurtorja e re shtohet me dopioklik" -#: ../src/gui/accelerators.c:979 +#: ../src/gui/accelerators.c:1045 msgid "click to filter shortcuts list" msgstr "lista e shkurtoreve filtrohet me klikim" -#: ../src/gui/accelerators.c:981 +#: ../src/gui/accelerators.c:1047 msgid "" "\n" "right click to show action of selected shortcut" @@ -9703,7 +10104,7 @@ "\n" "veprimi për shkurtoren e përzgjedhur tregohet me klikim djathtas" -#: ../src/gui/accelerators.c:984 +#: ../src/gui/accelerators.c:1050 msgid "" "\n" "double-click to define new shortcut" @@ -9711,11 +10112,11 @@ "\n" "shkurtorja e re përcaktohet me dopioklik" -#: ../src/gui/accelerators.c:1015 +#: ../src/gui/accelerators.c:1081 msgid "shift+alt+scroll to change height" msgstr "gjatësia ndryshohet me shift+alt+rrëshqitje mausi" -#: ../src/gui/accelerators.c:1035 +#: ../src/gui/accelerators.c:1101 msgid "" "press keys with mouse click and scroll or move combinations to create a " "shortcut" @@ -9723,27 +10124,27 @@ "krijoni shkurtoren duke shtypur tastet me klikim të mausit dhe rrëshqitni " "ose lëvizni kombinimet" -#: ../src/gui/accelerators.c:1036 +#: ../src/gui/accelerators.c:1102 msgid "click to open shortcut configuration" msgstr "klikoni për të hapur konfigurimin e shkurtoreve" -#: ../src/gui/accelerators.c:1037 +#: ../src/gui/accelerators.c:1103 msgid "ctrl+click to add to quick access panel\n" msgstr "shtojeni te paneli i shpejtë me ctrl+klikim\n" -#: ../src/gui/accelerators.c:1038 +#: ../src/gui/accelerators.c:1104 msgid "ctrl+click to remove from quick access panel\n" msgstr "hiqeni nga paneli për akses të shpejtë me ctrl+klikim\n" -#: ../src/gui/accelerators.c:1039 +#: ../src/gui/accelerators.c:1105 msgid "scroll to change default speed" msgstr "rrëshqitni mausin për të ndryshuar shpejtësinë standarde" -#: ../src/gui/accelerators.c:1040 +#: ../src/gui/accelerators.c:1106 msgid "right click to exit mapping mode" msgstr "me ctrl+klikim mbyllet mënyra e shoqërimit" -#: ../src/gui/accelerators.c:1051 +#: ../src/gui/accelerators.c:1119 #, c-format msgid "" "%sright-click to type a specific value between <b>%s</b> and <b>%s</b>\n" @@ -9753,74 +10154,89 @@ "në <b>%s</b>\n" "ose tejkaloni limitet duke mbajtur shtypur ctrl+shift ndërsa tërhiqni mausin." -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "ctrl+v" msgstr "ctrl+v" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "right long click" msgstr "klikoni gjatë me të djathtën" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "to copy Lua command" msgstr "për të kopjuar komandën Lua" -#: ../src/gui/accelerators.c:1344 +#: ../src/gui/accelerators.c:1451 msgid "shortcut for move exists with single effect" msgstr "shkurtorja për lëvizjen ekziston me vetëm një efekt" -#: ../src/gui/accelerators.c:1345 +#: ../src/gui/accelerators.c:1452 +#, c-format +msgid "" +"%s\n" +"\n" +"(assign %s to %s)" +msgstr "" +"%s\n" +"\n" +"(%s e caktuar për %s)" + +#: ../src/gui/accelerators.c:1453 msgid "create separate shortcuts for up and down move?" msgstr "do krijoni shkurtore të ndryshme për lëvizjet lart e poshtë?" -#: ../src/gui/accelerators.c:1368 +#: ../src/gui/accelerators.c:1479 #, c-format msgid "%s, speed reset" msgstr "%s, kthej shpejtësinë fillestare" -#: ../src/gui/accelerators.c:1377 +#: ../src/gui/accelerators.c:1497 msgid "shortcut exists with different settings" msgstr "shkurtorja ekziston me parametra të ndryshëm" -#: ../src/gui/accelerators.c:1378 +#: ../src/gui/accelerators.c:1498 msgid "reset the settings of the shortcut?" msgstr "do ktheni parametrat fillestarë të shkurtores?" -#: ../src/gui/accelerators.c:1389 +#: ../src/gui/accelerators.c:1507 msgid "shortcut already exists" msgstr "shkurtorja ekziston që më parë" -#: ../src/gui/accelerators.c:1390 +#: ../src/gui/accelerators.c:1509 +msgid "disable this default shortcut?" +msgstr "do çaktivizoni shkurtoren standarde?" + +#: ../src/gui/accelerators.c:1510 msgid "remove the shortcut?" msgstr "do e hiqni shkurtoren?" -#: ../src/gui/accelerators.c:1423 +#: ../src/gui/accelerators.c:1550 msgid "clashing shortcuts exist" msgstr "ka një përplasje mes shkurtoreve" -#: ../src/gui/accelerators.c:1424 +#: ../src/gui/accelerators.c:1551 msgid "remove these existing shortcuts?" msgstr "do i hiqni shkurtoret ekzistuese?" #. or 3, but change char relative[] = "-2" to "-1" #. NUM_INSTANCES -#: ../src/gui/accelerators.c:1460 +#: ../src/gui/accelerators.c:1596 msgid "preferred" msgstr "e preferuar" -#: ../src/gui/accelerators.c:1463 +#: ../src/gui/accelerators.c:1599 msgid "second" msgstr "e dyta" -#: ../src/gui/accelerators.c:1464 +#: ../src/gui/accelerators.c:1600 msgid "last but one" msgstr "e parafundit" -#: ../src/gui/accelerators.c:1610 ../src/gui/accelerators.c:1670 +#: ../src/gui/accelerators.c:1761 ../src/gui/accelerators.c:1826 msgid "(unchanged)" msgstr "(e pandryshuar)" -#: ../src/gui/accelerators.c:1776 +#: ../src/gui/accelerators.c:1941 msgid "" "define a shortcut by pressing a key, optionally combined with modifier keys " "(ctrl/shift/alt)\n" @@ -9845,39 +10261,47 @@ "\n" "anulojeni me klikim djathtas" -#: ../src/gui/accelerators.c:1847 +#: ../src/gui/accelerators.c:2014 msgid "removing shortcut" msgstr "heq shkurtoren" -#: ../src/gui/accelerators.c:1848 +#: ../src/gui/accelerators.c:2016 +msgid "disable the selected default shortcut?" +msgstr "do çaktivizoni shkurtoren standarde të përzgjedhur?" + +#: ../src/gui/accelerators.c:2017 +msgid "restore the selected default shortcut?" +msgstr "do ktheni shkurtoren standarde të përzgjedhur?" + +#: ../src/gui/accelerators.c:2018 msgid "remove the selected shortcut?" msgstr "do e hiqni shkurtoren e përzgjedhur?" -#: ../src/gui/accelerators.c:1938 +#: ../src/gui/accelerators.c:2107 msgid "command" msgstr "komanda" -#: ../src/gui/accelerators.c:1939 +#: ../src/gui/accelerators.c:2108 msgid "preset" msgstr "vlera e paracaktuar" -#: ../src/gui/accelerators.c:2272 +#: ../src/gui/accelerators.c:2491 msgid "restore shortcuts" msgstr "rikthej shkurtoret" -#: ../src/gui/accelerators.c:2275 +#: ../src/gui/accelerators.c:2494 msgid "_defaults" msgstr "_defaults" -#: ../src/gui/accelerators.c:2276 +#: ../src/gui/accelerators.c:2495 msgid "_startup" msgstr "_startup" -#: ../src/gui/accelerators.c:2277 +#: ../src/gui/accelerators.c:2496 msgid "_edits" msgstr "_edits" -#: ../src/gui/accelerators.c:2283 +#: ../src/gui/accelerators.c:2503 msgid "" "restore shortcuts from one of these states:\n" " - default\n" @@ -9889,7 +10313,7 @@ " - si në nisje\n" " - si para hapjes së kësaj tabelës\n" -#: ../src/gui/accelerators.c:2289 +#: ../src/gui/accelerators.c:2510 msgid "" "clear all newer shortcuts\n" "(instead of just restoring changed ones)" @@ -9897,22 +10321,17 @@ "pastroni gjithë shkurtoret e reja\n" "(në vend që të ktheni ato që kanë ndryshuar)" -#: ../src/gui/accelerators.c:2344 ../src/gui/preferences.c:906 +#: ../src/gui/accelerators.c:2567 ../src/gui/preferences.c:905 #: ../src/libs/tools/global_toolbox.c:494 -#: ../src/libs/tools/global_toolbox.c:645 +#: ../src/libs/tools/global_toolbox.c:652 msgid "shortcuts" msgstr "shkurtoret" -#: ../src/gui/accelerators.c:2353 +#: ../src/gui/accelerators.c:2577 msgid "export shortcuts" msgstr "eksportoj shkurtoret" -#: ../src/gui/accelerators.c:2356 ../src/gui/accelerators.c:2436 -#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:564 -msgid "_ok" -msgstr "_ok" - -#: ../src/gui/accelerators.c:2361 +#: ../src/gui/accelerators.c:2586 msgid "" "export all shortcuts to a file\n" "or just for one selected device\n" @@ -9920,27 +10339,27 @@ "eksportoni gjithë shkurtoret në skedar\n" "ose vetëm për aparatin e përzgjedhur\n" -#: ../src/gui/accelerators.c:2368 ../src/gui/accelerators.c:2448 +#: ../src/gui/accelerators.c:2593 ../src/gui/accelerators.c:2675 msgid "keyboard" msgstr "tastiera" -#: ../src/gui/accelerators.c:2380 +#: ../src/gui/accelerators.c:2605 msgid "device id" msgstr "id aparati" -#: ../src/gui/accelerators.c:2406 +#: ../src/gui/accelerators.c:2631 msgid "select file to export" msgstr "përzgjidhni skedarin për eksport" -#: ../src/gui/accelerators.c:2407 ../src/libs/tagging.c:2525 +#: ../src/gui/accelerators.c:2632 ../src/libs/tagging.c:2556 msgid "_export" msgstr "_eksportoj" -#: ../src/gui/accelerators.c:2433 +#: ../src/gui/accelerators.c:2659 msgid "import shortcuts" msgstr "importoj shkurtoret" -#: ../src/gui/accelerators.c:2441 +#: ../src/gui/accelerators.c:2668 msgid "" "import all shortcuts from a file\n" "or just for one selected device\n" @@ -9948,31 +10367,31 @@ "importoni gjithë shkurtoret në skedar\n" "ose vetëm për aparatin e përzgjedhur\n" -#: ../src/gui/accelerators.c:2460 +#: ../src/gui/accelerators.c:2687 msgid "id in file" msgstr "id në skedar" -#: ../src/gui/accelerators.c:2466 +#: ../src/gui/accelerators.c:2693 msgid "id when loaded" msgstr "id kur hapet" -#: ../src/gui/accelerators.c:2470 +#: ../src/gui/accelerators.c:2697 msgid "clear device first" msgstr "pastroj fillimisht aparatin" -#: ../src/gui/accelerators.c:2494 +#: ../src/gui/accelerators.c:2722 msgid "select file to import" msgstr "përzgjidhni skedarin për import" -#: ../src/gui/accelerators.c:2495 ../src/libs/tagging.c:2489 +#: ../src/gui/accelerators.c:2723 ../src/libs/tagging.c:2520 msgid "_import" msgstr "_importoj" -#: ../src/gui/accelerators.c:2568 +#: ../src/gui/accelerators.c:2815 msgid "search shortcuts list" msgstr "kërkoni në listën e shkurtoreve" -#: ../src/gui/accelerators.c:2569 +#: ../src/gui/accelerators.c:2817 msgid "" "incrementally search the list of shortcuts\n" "press up or down keys to cycle through matches" @@ -9980,29 +10399,28 @@ "kërkoni gradualisht në listën e shkurtoreve\n" "imazhet që korrespondojnë shihen me tastet lart e poshtë" -#. Setting up the cell renderers -#: ../src/gui/accelerators.c:2583 ../src/views/view.c:1383 +#: ../src/gui/accelerators.c:2837 ../src/views/view.c:1554 msgid "shortcut" msgstr "shkurtorja" -#: ../src/gui/accelerators.c:2585 ../src/gui/accelerators.c:2676 -#: ../src/views/view.c:1385 +#: ../src/gui/accelerators.c:2840 ../src/gui/accelerators.c:2942 +#: ../src/views/view.c:1556 msgid "action" msgstr "veprimi" -#: ../src/gui/accelerators.c:2594 +#: ../src/gui/accelerators.c:2850 msgid "element" msgstr "elementi" -#: ../src/gui/accelerators.c:2601 +#: ../src/gui/accelerators.c:2858 msgid "effect" msgstr "efekti" -#: ../src/gui/accelerators.c:2658 +#: ../src/gui/accelerators.c:2918 msgid "search actions list" msgstr "kërkoni në listën e veprimeve" -#: ../src/gui/accelerators.c:2659 +#: ../src/gui/accelerators.c:2920 msgid "" "incrementally search the list of actions\n" "press up or down keys to cycle through matches" @@ -10010,16 +10428,16 @@ "kërkoni gradualisht në listën e veprimeve\n" "imazhet që korrespondojnë shihen me tastet lart e poshtë" -#: ../src/gui/accelerators.c:2682 ../src/gui/guides.c:719 -#: ../src/libs/export_metadata.c:192 +#: ../src/gui/accelerators.c:2950 ../src/gui/guides.c:719 +#: ../src/libs/export_metadata.c:179 msgid "type" msgstr "lloji" -#: ../src/gui/accelerators.c:2717 +#: ../src/gui/accelerators.c:2988 msgid "enable fallbacks" msgstr "aktivizoj alternativat" -#: ../src/gui/accelerators.c:2718 +#: ../src/gui/accelerators.c:2989 msgid "" "enables default meanings for additional buttons, modifiers or moves\n" "when used in combination with a base shortcut" @@ -10027,67 +10445,110 @@ "aktivizoni kuptimet standarde për butonët shtesë, modifikuesit ose lëvizjet\n" "për t'i përdorur së bashku me një shkurtore bazë" -#: ../src/gui/accelerators.c:2725 +#: ../src/gui/accelerators.c:2997 msgid "open help page for shortcuts" msgstr "hapni faqen ndihmëse për shkurtoret" -#: ../src/gui/accelerators.c:2730 +#: ../src/gui/accelerators.c:3002 msgid "restore..." msgstr "rikthej..." -#: ../src/gui/accelerators.c:2731 +#: ../src/gui/accelerators.c:3003 msgid "restore default shortcuts or previous state" msgstr "ktheni shkurtoret në gjendjen fillestare ose standarde" -#: ../src/gui/accelerators.c:2735 ../src/libs/styles.c:883 -#: ../src/libs/tagging.c:3251 +#: ../src/gui/accelerators.c:3007 ../src/libs/styles.c:887 +#: ../src/libs/tagging.c:3282 msgid "import..." msgstr "importoj..." -#: ../src/gui/accelerators.c:2736 +#: ../src/gui/accelerators.c:3008 msgid "fully or partially import shortcuts from file" msgstr "importoni shkurtoret e plota ose të pjesshme nga skedari" -#: ../src/gui/accelerators.c:2740 ../src/libs/styles.c:890 -#: ../src/libs/tagging.c:3254 +#: ../src/gui/accelerators.c:3012 ../src/libs/styles.c:894 +#: ../src/libs/tagging.c:3285 msgid "export..." msgstr "eksportoj..." -#: ../src/gui/accelerators.c:2741 +#: ../src/gui/accelerators.c:3013 msgid "fully or partially export shortcuts to file" msgstr "eksportoni shkurtoret e plota ose të pjesshme nga skedari" -#: ../src/gui/accelerators.c:3139 +#: ../src/gui/accelerators.c:3021 +msgid "" +"the recommended way to assign shortcuts to visual elements is the <b>visual " +"shortcut mapping</b> mode.\n" +"this is switched on by toggling the <i>\"keyboard\"</i> button next to " +"preferences in the top panel. in this mode, clicking on a widget or area " +"will open this dialog with the appropriate selection for advanced " +"configuration.\n" +"\n" +"multiple shortcuts can be assigned to the same action. this is especially " +"useful if it has multiple <i>elements</i>, like the module buttons or the " +"colorpickers attached to sliders. however, with <i>fallbacks</i> enabled one " +"can use the same simple shortcuts and change their <i>element</i> or " +"<i>effect</i> by adding mouse clicks.\n" +"\n" +"<i>click <b> three times </b> to dismiss this notice permanently</i>" +msgstr "" +"për të caktuar shkurtoret e elementeve vizuale rekomandohet të ndiqet metoda " +"e <b>shoqërimit vizual të shkurtoreve</b>.\n" +"kjo aktivizohet duke përdorur butonin e <i>\"tastierës\"</i> anash " +"referencave në paneling sipër. me këtë metodë, kur klikoni një vegël ose " +"zone do të hapet tabela për të bërë përzgjedhjen e duhur.\n" +"\n" +"për të njëjtin veprim mund të caktohen disa shkurtore. kjo duhet kur ka " +"<i>elemente</i> të shumëfishta, siç janë butonët e modulit ose përzgjedhësit " +"e ngjyrave me rrëshqitje. megjithatë, kur aktivizoni <i>alternativat</i> " +"mund të përdorni shkurtoret e thjeshta dhe të ndryshoni <i>elementin</i> ose " +"<i>efektin</i> duke i klikuar me maus.\n" +"\n" +"<i>klikoni <b> tri herë</b> për ta hequr këtë njoftim përgjithmonë</i>" + +#: ../src/gui/accelerators.c:3452 msgid "reinitialising input devices" msgstr "rinis aparatet input" -#: ../src/gui/accelerators.c:3342 +#: ../src/gui/accelerators.c:3594 +msgid "down move" +msgstr "lëvizje poshtë" + +#: ../src/gui/accelerators.c:3594 +msgid "flip top/bottom first/last" +msgstr "përmbys krye/fund para/fundit" + +#: ../src/gui/accelerators.c:3679 msgid "fallback to move" msgstr "alternativa për lëvizje" -#: ../src/gui/accelerators.c:3578 +#: ../src/gui/accelerators.c:3921 #, c-format msgid "%s not assigned" msgstr "%s nuk është caktuar" -#: ../src/gui/accelerators.c:3751 +#: ../src/gui/accelerators.c:4102 #, c-format msgid "%s assigned to %s" msgstr "%s është caktuar për %s" -#: ../src/gui/gtk.c:173 ../src/views/darkroom.c:4650 +#: ../src/gui/accelerators.c:4321 +msgid "short key press resets stuck keys" +msgstr "shtypja e shkurtër e tasteve i zhbllokon tastet" + +#: ../src/gui/gtk.c:175 ../src/views/darkroom.c:3861 msgid "darktable - darkroom preview" msgstr "darktable - parashikimi i dhomës së errët" -#: ../src/gui/gtk.c:184 +#: ../src/gui/gtk.c:186 msgid "tooltips off" msgstr "sugjerimet janë fikur" -#: ../src/gui/gtk.c:186 +#: ../src/gui/gtk.c:188 msgid "tooltips on" msgstr "sugjerimet janë ndezur" -#: ../src/gui/gtk.c:191 +#: ../src/gui/gtk.c:193 msgid "" "tooltip visibility can only be toggled if compositing is enabled in your " "window manager" @@ -10095,184 +10556,217 @@ "sugjerimet mund të shfaqen vetëm nëse sistemi juaj operativ lejon kompozimin " "e dritareve" -#: ../src/gui/gtk.c:814 +#: ../src/gui/gtk.c:809 msgid "closing darktable..." msgstr "mbyll darktable..." -#: ../src/gui/gtk.c:1135 +#: ../src/gui/gtk.c:1032 +msgid "URL opened in web browser" +msgstr "hapi adresën në shfletuesin e internetit" + +#: ../src/gui/gtk.c:1036 +msgid "error while opening URL in web browser" +msgstr "problem me hapjen e adresës në shfletuesin e internetit" + +#. View menu +#: ../src/gui/gtk.c:1104 +msgctxt "menu" +msgid "Views" +msgstr "pamjet" + +#: ../src/gui/gtk.c:1108 +msgctxt "menu" +msgid "lighttable" +msgstr "fototeka" + +#: ../src/gui/gtk.c:1109 +msgctxt "menu" +msgid "darkroom" +msgstr "dhoma e errët" + +#: ../src/gui/gtk.c:1115 +msgctxt "menu" +msgid "slideshow" +msgstr "diafilmi" + +#: ../src/gui/gtk.c:1117 +msgctxt "menu" +msgid "map" +msgstr "harta" + +#: ../src/gui/gtk.c:1119 +msgctxt "menu" +msgid "print" +msgstr "printoj" + +#: ../src/gui/gtk.c:1121 +msgctxt "menu" +msgid "tethering" +msgstr "telefotografimi" + +#. Help menu +#: ../src/gui/gtk.c:1127 +msgctxt "menu" +msgid "Help" +msgstr "Ndihmë" + +#: ../src/gui/gtk.c:1131 +msgctxt "menu" +msgid "darktable Manual" +msgstr "manuali darktable" + +#: ../src/gui/gtk.c:1138 +msgctxt "menu" +msgid "darktable Homepage" +msgstr "faqja zyrtare darktable" + +#: ../src/gui/gtk.c:1162 +msgctxt "menu" +msgid "Preferences" +msgstr "preferencat" + +#: ../src/gui/gtk.c:1232 msgid "panels" msgstr "panelet" -#. an action that does nothing - used for overriding/removing default shortcuts -#: ../src/gui/gtk.c:1184 -msgid "no-op" -msgstr "no-op" - -#: ../src/gui/gtk.c:1186 +#: ../src/gui/gtk.c:1264 msgid "switch views" msgstr "ndërroj pamjet" -#: ../src/gui/gtk.c:1187 ../src/views/tethering.c:102 +#: ../src/gui/gtk.c:1265 ../src/views/tethering.c:102 msgid "tethering" msgstr "telefotografimi" -#: ../src/gui/gtk.c:1188 ../src/gui/preferences.c:531 -#: ../src/gui/preferences.c:542 ../src/libs/tools/lighttable.c:66 -#: ../src/views/lighttable.c:91 -msgid "lighttable" -msgstr "fototeka" - -#: ../src/gui/gtk.c:1189 ../src/gui/preferences.c:532 -#: ../src/gui/preferences.c:542 ../src/views/darkroom.c:94 -msgid "darkroom" -msgstr "dhoma e errët" - -#: ../src/gui/gtk.c:1190 ../src/views/map.c:197 +#: ../src/gui/gtk.c:1268 ../src/views/map.c:197 msgid "map" msgstr "harta" -#: ../src/gui/gtk.c:1191 ../src/views/slideshow.c:389 +#: ../src/gui/gtk.c:1269 ../src/views/slideshow.c:390 msgid "slideshow" msgstr "diafilmi" #. Print button -#: ../src/gui/gtk.c:1192 ../src/libs/print_settings.c:2885 +#: ../src/gui/gtk.c:1270 ../src/libs/print_settings.c:2885 msgid "print" msgstr "printoj" #. register ctrl-q to quit: -#: ../src/gui/gtk.c:1198 +#: ../src/gui/gtk.c:1276 msgid "quit" msgstr "dalje" #. Full-screen accelerator (no ESC handler here to enable quit-slideshow using ESC) -#: ../src/gui/gtk.c:1201 +#: ../src/gui/gtk.c:1279 msgid "fullscreen" msgstr "ekran i plotë" -#: ../src/gui/gtk.c:1205 +#: ../src/gui/gtk.c:1283 msgid "collapsing controls" msgstr "opsionet me palosje" #. specific top/bottom toggles -#: ../src/gui/gtk.c:1207 +#: ../src/gui/gtk.c:1285 msgid "header" msgstr "kryetitulli" -#: ../src/gui/gtk.c:1208 +#: ../src/gui/gtk.c:1286 msgid "filmstrip and timeline" msgstr "shiriti i filmit dhe linja kohore" -#: ../src/gui/gtk.c:1209 +#: ../src/gui/gtk.c:1287 msgid "top toolbar" msgstr "brezi i sipërm i instrumenteve" -#: ../src/gui/gtk.c:1210 +#: ../src/gui/gtk.c:1288 msgid "bottom toolbar" msgstr "brezi i poshtëm i instrumenteve" -#: ../src/gui/gtk.c:1211 +#: ../src/gui/gtk.c:1289 msgid "all top" msgstr "të gjitha në krye" -#: ../src/gui/gtk.c:1212 +#: ../src/gui/gtk.c:1290 msgid "all bottom" msgstr "të gjitha në fund" -#: ../src/gui/gtk.c:1214 +#: ../src/gui/gtk.c:1292 msgid "toggle tooltip visibility" msgstr "përdorni sugjerimet" -#: ../src/gui/gtk.c:1215 +#: ../src/gui/gtk.c:1293 msgid "reinitialise input devices" msgstr "rinis aparatet input" -#: ../src/gui/gtk.c:1253 +#: ../src/gui/gtk.c:1331 msgid "toggle focus-peaking mode" msgstr "përdorni shënjuesin e fokusit" #. toggle focus peaking everywhere -#: ../src/gui/gtk.c:1258 +#: ../src/gui/gtk.c:1336 msgid "toggle focus peaking" msgstr "përdorni shënjuesin e fokusit" -#: ../src/gui/gtk.c:1594 ../src/gui/gtk.c:3143 ../src/gui/gtk.c:3148 -#: ../src/gui/gtk.c:3153 ../src/gui/gtk.c:3158 +#: ../src/gui/gtk.c:1654 ../src/gui/gtk.c:3189 ../src/gui/gtk.c:3194 +#: ../src/gui/gtk.c:3199 ../src/gui/gtk.c:3204 msgid "tabs" msgstr "skedat" -#: ../src/gui/gtk.c:2535 -msgid "_yes" -msgstr "_po" - -#: ../src/gui/gtk.c:2536 -msgid "_no" -msgstr "_jo" - #. ask the user if darktable.org may be accessed -#: ../src/gui/gtk.c:2647 +#: ../src/gui/gtk.c:2707 msgid "access the online user manual?" msgstr "do e hapni manualin në internet?" -#: ../src/gui/gtk.c:2648 +#: ../src/gui/gtk.c:2708 #, c-format msgid "do you want to access `%s'?" msgstr "doni të hapni `%s'?" -#: ../src/gui/gtk.c:2717 -msgid "help url opened in web browser" -msgstr "hapi adresën për ndihmë në shfletuesin e internetit" - -#: ../src/gui/gtk.c:2721 -msgid "error while opening help url in web browser" -msgstr "problem me hapjen e adresës për ndihmë në shfletuesin e internetit" - -#: ../src/gui/gtk.c:2732 +#: ../src/gui/gtk.c:2778 msgid "there is no help available for this element" msgstr "për këtë element nuk ofrohet ndihmë" #. font name can only use period as decimal separator #. but printf format strings use comma for some locales, so replace comma with period -#: ../src/gui/gtk.c:2752 +#: ../src/gui/gtk.c:2798 ../src/libs/metadata_view.c:762 #, c-format msgid "%.1f" msgstr "%.1f" -#: ../src/gui/gtk.c:2754 +#: ../src/gui/gtk.c:2800 #, c-format msgid "Sans %s" msgstr "Sans %s" -#: ../src/gui/gtk.c:3048 +#: ../src/gui/gtk.c:3094 msgid "does not contain pages" msgstr "nuk përmban faqe" -#: ../src/gui/gtk.c:3265 +#: ../src/gui/gtk.c:3313 #, c-format msgid "never show more than %d lines" msgstr "asnjëherë nuk tregoj më shumë se %d rreshta" -#: ../src/gui/gtkentry.c:172 +#: ../src/gui/gtkentry.c:173 msgid "$(ROLL.NAME) - roll of the input image" msgstr "$(ROLL.NAME) - bobina e imazhit input" -#: ../src/gui/gtkentry.c:173 +#: ../src/gui/gtkentry.c:174 msgid "$(FILE.FOLDER) - folder containing the input image" msgstr "$(FILE.FOLDER) - dosja me imazhin input" -#: ../src/gui/gtkentry.c:174 +#: ../src/gui/gtkentry.c:175 msgid "$(FILE.NAME) - basename of the input image" msgstr "$(FILE.NAME) - emri bazë i imazhit input" -#: ../src/gui/gtkentry.c:175 +#: ../src/gui/gtkentry.c:176 msgid "$(FILE.EXTENSION) - extension of the input image" msgstr "$(FILE.EXTENSION) - shtojca e imazhit input" -#: ../src/gui/gtkentry.c:176 +#: ../src/gui/gtkentry.c:177 msgid "$(VERSION) - duplicate version" msgstr "$(VERSION) - varianti i dubluar" -#: ../src/gui/gtkentry.c:177 +#: ../src/gui/gtkentry.c:178 msgid "" "$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version " "exists" @@ -10280,277 +10774,285 @@ "$(VERSION.IF_MULTI) - njësoj si $(VERSION), por bëhet nul kur ekziston vetëm " "një variant" -#: ../src/gui/gtkentry.c:178 +#: ../src/gui/gtkentry.c:179 msgid "$(VERSION.NAME) - version name from metadata" msgstr "$(VERSION.NAME) - emri i variantit nga metadata" -#: ../src/gui/gtkentry.c:179 +#: ../src/gui/gtkentry.c:180 msgid "$(JOBCODE) - job code for import" msgstr "$(JOBCODE) - kodi i punës për importin" -#: ../src/gui/gtkentry.c:180 +#: ../src/gui/gtkentry.c:181 msgid "$(SEQUENCE) - sequence number" msgstr "$(SEQUENCE) - numri i sekuencës" -#: ../src/gui/gtkentry.c:181 +#: ../src/gui/gtkentry.c:182 msgid "$(WIDTH.MAX) - maximum image export width" msgstr "$(WIDTH.MAX) - gjerësia maksimale e imazhit të eksportuar" -#: ../src/gui/gtkentry.c:182 +#: ../src/gui/gtkentry.c:183 msgid "$(WIDTH.SENSOR) - image sensor width" msgstr "$(WIDTH.SENSOR) - gjerësia e sensorit të imazhit" -#: ../src/gui/gtkentry.c:183 +#: ../src/gui/gtkentry.c:184 msgid "$(WIDTH.RAW) - RAW image width" msgstr "$(WIDTH.RAW) - gjerësia e imazhit BRUTO" -#: ../src/gui/gtkentry.c:184 +#: ../src/gui/gtkentry.c:185 msgid "$(WIDTH.CROP) - image width after crop" msgstr "$(WIDTH.CROP) - gjerësia e imazhit pas prerjes" -#: ../src/gui/gtkentry.c:185 +#: ../src/gui/gtkentry.c:186 msgid "$(WIDTH.EXPORT) - exported image width" msgstr "$(WIDTH.EXPORT) - gjerësia e imazhit të eksportuar" -#: ../src/gui/gtkentry.c:186 +#: ../src/gui/gtkentry.c:187 msgid "$(HEIGHT.MAX) - maximum image export height" msgstr "$(HEIGHT.MAX) - gjatësia maksimale e imazhit të eksportuar" -#: ../src/gui/gtkentry.c:187 +#: ../src/gui/gtkentry.c:188 msgid "$(HEIGHT.SENSOR) - image sensor height" msgstr "$(HEIGHT.SENSOR) - gjatësia e sensorit të imazhit" -#: ../src/gui/gtkentry.c:188 +#: ../src/gui/gtkentry.c:189 msgid "$(HEIGHT.RAW) - RAW image height" msgstr "$(HEIGHT.RAW) - gjatësia e imazhit BRUTO" -#: ../src/gui/gtkentry.c:189 +#: ../src/gui/gtkentry.c:190 msgid "$(HEIGHT.CROP) - image height after crop" msgstr "$(HEIGHT.CROP) - gjatësia e imazhit pas prerjes" -#: ../src/gui/gtkentry.c:190 +#: ../src/gui/gtkentry.c:191 msgid "$(HEIGHT.EXPORT) - exported image height" msgstr "$(HEIGHT.EXPORT) - gjatësia e imazhit të eksportuar" -#: ../src/gui/gtkentry.c:191 +#: ../src/gui/gtkentry.c:192 msgid "$(YEAR) - year" msgstr "$(YEAR) - viti" -#: ../src/gui/gtkentry.c:192 +#: ../src/gui/gtkentry.c:193 msgid "$(YEAR.SHORT) - year without century" msgstr "$(YEAR.SHORT) - viti pa shekullin" -#: ../src/gui/gtkentry.c:193 +#: ../src/gui/gtkentry.c:194 msgid "$(MONTH) - month" msgstr "$(MONTH) - muaji" -#: ../src/gui/gtkentry.c:194 +#: ../src/gui/gtkentry.c:195 msgid "$(MONTH.SHORT) - abbreviated month name according to the current locale" msgstr "$(MONTH.SHORT) - emri i shkurtër i muajit në varësi të lokalitetit" -#: ../src/gui/gtkentry.c:195 +#: ../src/gui/gtkentry.c:196 msgid "$(MONTH.LONG) - full month name according to the current locale" msgstr "$(MONTH.LONG) - emri i gjatë i muajit në varësi të lokalitetit" -#: ../src/gui/gtkentry.c:196 +#: ../src/gui/gtkentry.c:197 msgid "$(DAY) - day" msgstr "$(DAY) - dita" -#: ../src/gui/gtkentry.c:197 +#: ../src/gui/gtkentry.c:198 msgid "$(HOUR) - hour" msgstr "$(HOUR) - ora" -#: ../src/gui/gtkentry.c:198 +#: ../src/gui/gtkentry.c:199 msgid "$(HOUR.AMPM) - hour, 12-hour clock" msgstr "$(HOUR.AMPM) - ora, me ndarje 12-orëshe" -#: ../src/gui/gtkentry.c:199 +#: ../src/gui/gtkentry.c:200 msgid "$(MINUTE) - minute" msgstr "$(MINUTE) - minuta" -#: ../src/gui/gtkentry.c:200 +#: ../src/gui/gtkentry.c:201 msgid "$(SECOND) - second" msgstr "$(SECOND) - sekonda" -#: ../src/gui/gtkentry.c:201 +#: ../src/gui/gtkentry.c:202 msgid "$(MSEC) - millisecond" msgstr "$(MSEC) - milisekonda" -#: ../src/gui/gtkentry.c:202 +#: ../src/gui/gtkentry.c:203 msgid "$(EXIF.YEAR) - EXIF year" msgstr "$(EXIF.YEAR) - EXIF viti" -#: ../src/gui/gtkentry.c:203 +#: ../src/gui/gtkentry.c:204 msgid "$(EXIF.YEAR.SHORT) - EXIF year without century" msgstr "$(EXIF.YEAR.SHORT) - EXIF viti pa shekullin" -#: ../src/gui/gtkentry.c:204 +#: ../src/gui/gtkentry.c:205 msgid "$(EXIF.MONTH) - EXIF month" msgstr "$(EXIF.MONTH) - EXIF muaji" -#: ../src/gui/gtkentry.c:205 +#: ../src/gui/gtkentry.c:206 msgid "" "$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current " "locale" msgstr "" "$(EXIF.MONTH.SHORT) - EXIF emri i shkurtër i muajit në varësi të lokalitetit" -#: ../src/gui/gtkentry.c:206 +#: ../src/gui/gtkentry.c:207 msgid "" "$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" msgstr "" "$(EXIF.MONTH.LONG) - EXIF emri i gjatë i muajit në varësi të lokalitetit" -#: ../src/gui/gtkentry.c:207 +#: ../src/gui/gtkentry.c:208 msgid "$(EXIF.DAY) - EXIF day" msgstr "$(EXIF.DAY) - EXIF dita" -#: ../src/gui/gtkentry.c:208 +#: ../src/gui/gtkentry.c:209 msgid "$(EXIF.HOUR) - EXIF hour" msgstr "$(EXIF.HOUR) - EXIF ora" -#: ../src/gui/gtkentry.c:209 +#: ../src/gui/gtkentry.c:210 msgid "$(EXIF.HOUR.AMPM) - EXIF hour, 12-hour clock" msgstr "$(EXIF.HOUR.AMPM) - EXIF ora, me ndarje 12-orëshe" -#: ../src/gui/gtkentry.c:210 +#: ../src/gui/gtkentry.c:211 msgid "$(EXIF.MINUTE) - EXIF minute" msgstr "$(EXIF.MINUTE) - EXIF minuta" -#: ../src/gui/gtkentry.c:211 +#: ../src/gui/gtkentry.c:212 msgid "$(EXIF.SECOND) - EXIF second" msgstr "$(EXIF.SECOND) - EXIF sekonda" -#: ../src/gui/gtkentry.c:212 +#: ../src/gui/gtkentry.c:213 msgid "$(EXIF.MSEC) - EXIF millisecond" msgstr "$(EXIF.MSEC) - EXIF milisekonda" -#: ../src/gui/gtkentry.c:213 +#: ../src/gui/gtkentry.c:214 msgid "$(EXIF.ISO) - ISO value" msgstr "$(EXIF.ISO) - vlera ISO" -#: ../src/gui/gtkentry.c:214 +#: ../src/gui/gtkentry.c:215 msgid "$(EXIF.EXPOSURE) - EXIF exposure" msgstr "$(EXIF.EXPOSURE) - EXIF ekspozimi" -#: ../src/gui/gtkentry.c:215 +#: ../src/gui/gtkentry.c:216 msgid "$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias" msgstr "$(EXIF.EXPOSURE.BIAS) - EXIF devijimi i ekspozimit" -#: ../src/gui/gtkentry.c:216 +#: ../src/gui/gtkentry.c:217 msgid "$(EXIF.APERTURE) - EXIF aperture" msgstr "$(EXIF.APERTURE) - EXIF diafragma" -#: ../src/gui/gtkentry.c:217 +#: ../src/gui/gtkentry.c:218 +msgid "$(EXIF.CROP_FACTOR) - EXIF crop factor" +msgstr "$(EXIF.CROP_FACTOR) - EXIF koeficienti prerës" + +#: ../src/gui/gtkentry.c:219 msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" msgstr "$(EXIF.FOCAL.LENGTH) - EXIF largësia fokale" -#: ../src/gui/gtkentry.c:218 +#: ../src/gui/gtkentry.c:220 +msgid "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent focal length" +msgstr "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF largësia fokale sa 35 mm" + +#: ../src/gui/gtkentry.c:221 msgid "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" msgstr "$(EXIF.FOCUS.DISTANCE) - EXIF distanca fokale" -#: ../src/gui/gtkentry.c:219 +#: ../src/gui/gtkentry.c:222 msgid "$(EXIF.MAKER) - camera maker" msgstr "$(EXIF.MAKER) - marka e kamerës" -#: ../src/gui/gtkentry.c:220 +#: ../src/gui/gtkentry.c:223 msgid "$(EXIF.MODEL) - camera model" msgstr "$(EXIF.MODEL) - modeli i kamerës" -#: ../src/gui/gtkentry.c:221 +#: ../src/gui/gtkentry.c:224 msgid "$(EXIF.LENS) - lens" msgstr "$(EXIF.LENS) - objektivi" -#: ../src/gui/gtkentry.c:222 +#: ../src/gui/gtkentry.c:225 msgid "$(LONGITUDE) - longitude" msgstr "$(LONGITUDE) - gjatësia gjeografike" -#: ../src/gui/gtkentry.c:223 +#: ../src/gui/gtkentry.c:226 msgid "$(LATITUDE) - latitude" msgstr "$(LATITUDE) - gjerësia gjeografike" -#: ../src/gui/gtkentry.c:224 +#: ../src/gui/gtkentry.c:227 msgid "$(ELEVATION) - elevation" msgstr "$(ELEVATION) - këndi i vendit" -#: ../src/gui/gtkentry.c:225 +#: ../src/gui/gtkentry.c:228 msgid "$(STARS) - star rating as number (-1 for rejected)" msgstr "$(STARS) - vlerësimi me yll si numër (-1 për refuzimet)" -#: ../src/gui/gtkentry.c:226 +#: ../src/gui/gtkentry.c:229 msgid "$(RATING.ICONS) - star/reject rating in icon form" msgstr "$(RATING.ICONS) - vlerësimi me yll/refuzim në formën e ikonave" -#: ../src/gui/gtkentry.c:227 +#: ../src/gui/gtkentry.c:230 msgid "$(LABELS) - color labels as text" msgstr "$(LABELS) - etiketat me ngjyrë si tekst" -#: ../src/gui/gtkentry.c:228 +#: ../src/gui/gtkentry.c:231 msgid "$(LABELS.ICONS) - color labels as icons" msgstr "$(LABELS.ICONS) - etiketat me ngjyrë si ikona" -#: ../src/gui/gtkentry.c:229 +#: ../src/gui/gtkentry.c:232 msgid "$(ID) - image ID" msgstr "$(ID) - ID imazhi" -#: ../src/gui/gtkentry.c:230 +#: ../src/gui/gtkentry.c:233 msgid "$(TITLE) - title from metadata" msgstr "$(TITLE) - titulli nga metadata" -#: ../src/gui/gtkentry.c:231 +#: ../src/gui/gtkentry.c:234 msgid "$(DESCRIPTION) - description from metadata" msgstr "$(DESCRIPTION) - përshkrimi nga metadata" -#: ../src/gui/gtkentry.c:232 +#: ../src/gui/gtkentry.c:235 msgid "$(CREATOR) - creator from metadata" msgstr "$(CREATOR) - krijuesi nga metadata" -#: ../src/gui/gtkentry.c:233 +#: ../src/gui/gtkentry.c:236 msgid "$(PUBLISHER) - publisher from metadata" msgstr "$(PUBLISHER) - publikuesi nga metadata" -#: ../src/gui/gtkentry.c:234 +#: ../src/gui/gtkentry.c:237 msgid "$(RIGHTS) - rights from metadata" msgstr "$(RIGHTS) - të drejtat nga metadata" -#: ../src/gui/gtkentry.c:235 +#: ../src/gui/gtkentry.c:238 msgid "$(USERNAME) - login name" msgstr "$(USERNAME) - emri për identifikimin" -#: ../src/gui/gtkentry.c:236 +#: ../src/gui/gtkentry.c:239 msgid "$(FOLDER.PICTURES) - pictures folder" msgstr "$(FOLDER.PICTURES) - dosja e fotove" -#: ../src/gui/gtkentry.c:237 +#: ../src/gui/gtkentry.c:240 msgid "$(FOLDER.HOME) - home folder" msgstr "$(FOLDER.HOME) - dosja e shtëpisë" -#: ../src/gui/gtkentry.c:238 +#: ../src/gui/gtkentry.c:241 msgid "$(FOLDER.DESKTOP) - desktop folder" msgstr "$(FOLDER.DESKTOP) - dosja e tryezës" -#: ../src/gui/gtkentry.c:239 +#: ../src/gui/gtkentry.c:242 msgid "$(OPENCL.ACTIVATED) - whether OpenCL is activated" msgstr "$(OPENCL.ACTIVATED) - për aktivizimin e OpenCL" -#: ../src/gui/gtkentry.c:240 +#: ../src/gui/gtkentry.c:243 msgid "$(CATEGORY0(category)) - subtag of level 0 in hierarchical tags" msgstr "" "$(CATEGORY0(category)) - etiketa vartëse e nivelit 0 në etiketat hierarkike" -#: ../src/gui/gtkentry.c:241 +#: ../src/gui/gtkentry.c:244 msgid "$(TAGS) - tags as set in metadata settings" msgstr "$(TAGS) - etiketat siç jepen në parametrat e metadatës" -#: ../src/gui/gtkentry.c:242 +#: ../src/gui/gtkentry.c:245 msgid "$(DARKTABLE.NAME) - darktable name" msgstr "$(DARKTABLE.NAME) - emri i darktable" -#: ../src/gui/gtkentry.c:243 +#: ../src/gui/gtkentry.c:246 msgid "$(DARKTABLE.VERSION) - current darktable version" msgstr "$(DARKTABLE.VERSION) - versioni aktual i darktable" -#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:255 +#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:248 msgid "grid" msgstr "rrjetë" @@ -10620,11 +11122,11 @@ msgstr "parametrat globalë për shtrimin e udhëzuesve" #: ../src/gui/guides.c:710 ../src/gui/guides.c:719 ../src/gui/guides.c:727 -#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2648 +#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2494 msgid "guide lines" msgstr "vijat udhëzuese" -#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2092 +#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2145 msgid "flip" msgstr "rrokullis" @@ -10640,8 +11142,8 @@ msgid "vertically" msgstr "vertikalisht" -#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6285 ../src/iop/clipping.c:2096 -#: ../src/iop/colorbalance.c:1917 +#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6232 ../src/iop/clipping.c:2149 +#: ../src/iop/colorbalance.c:1892 msgid "both" msgstr "të dyja" @@ -10690,26 +11192,26 @@ msgid "select parts to paste" msgstr "përzgjidhni pjesët për ngjitje" -#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:517 +#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:524 msgid "select _all" msgstr "përzgjedh_ të gjitha" -#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:518 +#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:525 msgid "select _none" msgstr "asnjë_ përzgjedhje" -#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:593 -#: ../src/gui/styles_dialog.c:615 +#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:605 +#: ../src/gui/styles_dialog.c:627 msgid "include" msgstr "përfshij" -#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:669 -#: ../src/gui/styles_dialog.c:675 +#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:681 +#: ../src/gui/styles_dialog.c:687 msgid "item" msgstr "zëri" -#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:682 -#: ../src/gui/styles_dialog.c:691 +#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:694 +#: ../src/gui/styles_dialog.c:703 msgid "mask" msgstr "maska" @@ -10764,11 +11266,11 @@ msgid "interface language" msgstr "gjuha e grafikës" -#: ../src/gui/preferences.c:289 +#: ../src/gui/preferences.c:290 msgid "double-click to reset to the system language" msgstr "me dopioklik kthehet gjuha e sistemit operativ" -#: ../src/gui/preferences.c:291 +#: ../src/gui/preferences.c:292 msgid "" "set the language of the user interface. the system default is marked with an " "* (needs a restart)" @@ -10776,27 +11278,27 @@ "caktoni gjuhën e grafikës. gjuha standarde e sistemit shënohet me * (duhet " "rihapur aplikacioni)" -#: ../src/gui/preferences.c:300 +#: ../src/gui/preferences.c:301 msgid "theme" msgstr "motivi" -#: ../src/gui/preferences.c:328 +#: ../src/gui/preferences.c:331 msgid "set the theme for the user interface" msgstr "caktoni motivin e paraqitjes grafike" -#: ../src/gui/preferences.c:341 ../src/gui/preferences.c:348 +#: ../src/gui/preferences.c:344 ../src/gui/preferences.c:351 msgid "use system font size" msgstr "përdor madhësinë e fontit sipas sistemit" -#: ../src/gui/preferences.c:357 ../src/gui/preferences.c:364 +#: ../src/gui/preferences.c:360 ../src/gui/preferences.c:367 msgid "font size in points" msgstr "madhësia e fontit në pika" -#: ../src/gui/preferences.c:369 +#: ../src/gui/preferences.c:372 msgid "GUI controls and text DPI" msgstr "butonët grafikë dhe DPI-ja e tekstit" -#: ../src/gui/preferences.c:376 +#: ../src/gui/preferences.c:379 msgid "" "adjust the global GUI resolution to rescale controls, buttons, labels, etc.\n" "increase for a magnified GUI, decrease to fit more content in window.\n" @@ -10812,77 +11314,61 @@ "(duhet rihapur aplikacioni)" #. checkbox to allow user to modify theme with user.css -#: ../src/gui/preferences.c:385 +#: ../src/gui/preferences.c:388 msgid "modify selected theme with CSS tweaks below" msgstr "modifikoj motivin e përzgjedhur me opsionin CSS" -#: ../src/gui/preferences.c:393 +#: ../src/gui/preferences.c:396 msgid "modify theme with CSS keyed below (saved to user.css)" msgstr "modifikoj motivin me opsionin CSS (regjistrohet te user.css)" -#: ../src/gui/preferences.c:415 +#: ../src/gui/preferences.c:418 msgctxt "usercss" msgid "save CSS and apply" msgstr "regjistroj CSS dhe aplikoj" -#: ../src/gui/preferences.c:420 +#: ../src/gui/preferences.c:423 msgid "click to save and apply the CSS tweaks entered in this editor" msgstr "regjistroni dhe aplikoni me klikim modifikimet CSS që keni vendosur" -#: ../src/gui/preferences.c:422 +#: ../src/gui/preferences.c:425 msgid "open help page for CSS tweaks" msgstr "hapni faqen ndihmëse për modifikimet CSS" #. load default text with some pointers -#: ../src/gui/preferences.c:443 +#: ../src/gui/preferences.c:446 msgid "ERROR Loading user.css" msgstr "PROBLEM me hapjen e user.css" #. load default text -#: ../src/gui/preferences.c:452 +#: ../src/gui/preferences.c:455 msgid "Enter CSS theme tweaks here" msgstr "këtu shkruhen modifikimet CSS për motivin" -#: ../src/gui/preferences.c:488 +#: ../src/gui/preferences.c:491 msgid "darktable preferences" msgstr "preferencat për darktable" -#: ../src/gui/preferences.c:533 -msgid "processing" -msgstr "procesimi" - -#: ../src/gui/preferences.c:534 -msgid "security" -msgstr "siguria" - -#: ../src/gui/preferences.c:535 -msgid "storage" -msgstr "ruajtja" - -#: ../src/gui/preferences.c:536 -msgid "miscellaneous" -msgstr "të ndryshme" - -#: ../src/gui/preferences.c:561 +#: ../src/gui/preferences.c:559 msgid "darktable needs to be restarted for settings to take effect" msgstr "darktable duhet rihapur që parametrat të kenë efekt" #. exif -#: ../src/gui/preferences.c:820 ../src/gui/presets.c:644 -#: ../src/libs/metadata_view.c:137 +#: ../src/gui/preferences.c:818 ../src/gui/presets.c:647 +#: ../src/libs/metadata_view.c:139 msgid "model" msgstr "modeli" -#: ../src/gui/preferences.c:824 ../src/gui/presets.c:652 -#: ../src/libs/metadata_view.c:138 +#: ../src/gui/preferences.c:822 ../src/gui/presets.c:655 +#: ../src/libs/metadata_view.c:140 msgid "maker" msgstr "marka" -#: ../src/gui/preferences.c:861 +#: ../src/gui/preferences.c:859 msgid "search presets list" msgstr "kërkoni në listën e vlerave të paracaktuara" -#: ../src/gui/preferences.c:862 +#: ../src/gui/preferences.c:860 msgid "" "incrementally search the list of presets\n" "press up or down keys to cycle through matches" @@ -10890,70 +11376,70 @@ "kërkoni gradualisht në listën e vlerave të paracaktuara\n" "imazhet që korrespondojnë shihen me tastet lart e poshtë" -#: ../src/gui/preferences.c:868 +#: ../src/gui/preferences.c:866 msgctxt "preferences" msgid "import..." msgstr "importoj..." -#: ../src/gui/preferences.c:872 +#: ../src/gui/preferences.c:870 msgctxt "preferences" msgid "export..." msgstr "eksportoj..." -#: ../src/gui/preferences.c:1031 +#: ../src/gui/preferences.c:1030 #, c-format msgid "failed to import preset %s" msgstr "e pamundur të importohej vlera e paracaktuar %s" -#: ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1041 msgid "select preset(s) to import" msgstr "përzgjidhni vlerat e paracaktuara që duhen importuar" -#: ../src/gui/preferences.c:1043 ../src/libs/collect.c:408 -#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:929 -#: ../src/libs/import.c:1506 ../src/libs/import.c:1610 ../src/libs/styles.c:527 +#: ../src/gui/preferences.c:1042 ../src/libs/collect.c:425 +#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:930 +#: ../src/libs/import.c:1515 ../src/libs/import.c:1619 ../src/libs/styles.c:529 msgid "_open" msgstr "_hap" -#: ../src/gui/preferences.c:1052 +#: ../src/gui/preferences.c:1051 msgid "darktable preset files" msgstr "skedarët me vlerat e paracaktuara për darktable" -#: ../src/gui/preferences.c:1057 ../src/iop/lut3d.c:1577 -#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:945 -#: ../src/libs/styles.c:541 +#: ../src/gui/preferences.c:1056 ../src/iop/lut3d.c:1591 +#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:946 +#: ../src/libs/styles.c:543 msgid "all files" msgstr "gjithë skedarët" -#: ../src/gui/presets.c:59 +#: ../src/gui/presets.c:61 msgid "non-raw" msgstr "jobruto" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:332 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:336 msgid "raw" msgstr "raw" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:333 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:337 msgid "HDR" msgstr "HDR" -#: ../src/gui/presets.c:59 ../src/iop/monochrome.c:77 ../src/libs/image.c:608 -#: ../src/libs/metadata_view.c:339 +#: ../src/gui/presets.c:61 ../src/iop/monochrome.c:77 ../src/libs/image.c:679 +#: ../src/libs/metadata_view.c:343 msgid "monochrome" msgstr "monokromatik" -#: ../src/gui/presets.c:151 +#: ../src/gui/presets.c:153 #, c-format msgid "preset `%s' is write-protected, can't delete!" msgstr "vlera e paracaktuar `%s' është e mbrojtur , nuk fshihet!" -#: ../src/gui/presets.c:157 ../src/gui/presets.c:461 ../src/libs/lib.c:238 -#: ../src/libs/modulegroups.c:3701 +#: ../src/gui/presets.c:159 ../src/gui/presets.c:463 ../src/libs/lib.c:238 +#: ../src/libs/modulegroups.c:3703 msgid "delete preset?" msgstr "do e fshini vlerën e paracaktuar?" -#: ../src/gui/presets.c:158 ../src/gui/presets.c:462 ../src/libs/lib.c:239 -#: ../src/libs/modulegroups.c:3702 +#: ../src/gui/presets.c:160 ../src/gui/presets.c:464 ../src/libs/lib.c:239 +#: ../src/libs/modulegroups.c:3704 #, c-format msgid "do you really want to delete the preset `%s'?" msgstr "vërtet do e fshini vlerën e paracaktuar `%s'?" @@ -10964,25 +11450,25 @@ #. clang-format on #. create a shortcut for the new entry #. then show edit dialog -#: ../src/gui/presets.c:200 ../src/gui/presets.c:1035 ../src/gui/presets.c:1038 -#: ../src/gui/presets.c:1041 ../src/libs/lib.c:188 ../src/libs/lib.c:205 +#: ../src/gui/presets.c:202 ../src/gui/presets.c:1022 ../src/gui/presets.c:1025 +#: ../src/gui/presets.c:1028 ../src/libs/lib.c:188 ../src/libs/lib.c:205 #: ../src/libs/lib.c:213 ../src/libs/lib.c:216 msgid "new preset" msgstr "vlera e re e paracaktuar" -#: ../src/gui/presets.c:207 +#: ../src/gui/presets.c:209 msgid "please give preset a name" msgstr "lutemi t'i vini një emër vlerës së paracaktuar" -#: ../src/gui/presets.c:212 +#: ../src/gui/presets.c:214 msgid "unnamed preset" msgstr "paracaktim pa emër" -#: ../src/gui/presets.c:241 +#: ../src/gui/presets.c:243 msgid "overwrite preset?" msgstr "do mbishkruani vlerën e paracaktuar?" -#: ../src/gui/presets.c:242 +#: ../src/gui/presets.c:244 #, c-format msgid "" "preset `%s' already exists.\n" @@ -10991,38 +11477,43 @@ "vlera e paracaktuar `%s' ekziston që më parë.\n" "do e mbishkruani?" -#: ../src/gui/presets.c:420 ../src/imageio/storage/disk.c:123 -#: ../src/imageio/storage/gallery.c:110 ../src/imageio/storage/latex.c:109 +#: ../src/gui/presets.c:422 ../src/imageio/storage/disk.c:198 +#: ../src/imageio/storage/gallery.c:150 ../src/imageio/storage/latex.c:146 msgid "_select as output destination" msgstr "_përzgjedh si destinacionin output" -#: ../src/gui/presets.c:429 +#: ../src/gui/presets.c:431 #, c-format msgid "preset %s was successfully exported" msgstr "eksportoi me sukses vlerën e paracaktuar %s" -#: ../src/gui/presets.c:557 +#: ../src/gui/presets.c:559 #, c-format msgid "edit `%s' for module `%s'" msgstr "përpunoni `%s' për modulin `%s'" -#: ../src/gui/presets.c:561 +#: ../src/gui/presets.c:563 msgid "_export..." msgstr "_eksportoj..." -#: ../src/gui/presets.c:585 +#: ../src/gui/presets.c:564 ../src/libs/tagging.c:1489 +#: ../src/libs/tagging.c:1580 +msgid "_delete" +msgstr "_fshij" + +#: ../src/gui/presets.c:588 msgid "name of the preset" msgstr "emri i vlerës së paracaktuar" -#: ../src/gui/presets.c:594 +#: ../src/gui/presets.c:597 msgid "description or further information" msgstr "përshkrimi ose informacioni i mëtejshëm" -#: ../src/gui/presets.c:598 +#: ../src/gui/presets.c:601 msgid "reset all module parameters to their default values" -msgstr "duhen kthyer parametrat fillestarë të modulit" +msgstr "kthej parametrat fillestarë të modulit" -#: ../src/gui/presets.c:601 +#: ../src/gui/presets.c:604 msgid "" "the parameters will be reset to their default values, which may be " "automatically set based on image metadata" @@ -11030,112 +11521,112 @@ "parametrat do të kthehen në gjendjen fillestare, që mund të vendoset " "automatikisht në varësi të metadatës së imazhit" -#: ../src/gui/presets.c:607 +#: ../src/gui/presets.c:610 msgid "auto apply this preset to matching images" msgstr "vetaplikoj në imazhet e ngjashme" -#: ../src/gui/presets.c:611 +#: ../src/gui/presets.c:614 msgid "only show this preset for matching images" msgstr "tregoj vlerën e paracaktuar vetëm për imazhet e ngjashme" -#: ../src/gui/presets.c:613 +#: ../src/gui/presets.c:616 msgid "" "be very careful with this option. this might be the last time you see your " "preset." msgstr "kujdes këtu: vlerën tuaj të paracaktuar mund të mos e shihni më." -#: ../src/gui/presets.c:643 +#: ../src/gui/presets.c:646 #, no-c-format msgid "string to match model (use % as wildcard)" msgstr "simboli që krahason modelin (përdorni % si metagermë)" -#: ../src/gui/presets.c:651 +#: ../src/gui/presets.c:654 #, no-c-format msgid "string to match maker (use % as wildcard)" msgstr "simboli që krahason markën (përdorni % si metagermë)" -#: ../src/gui/presets.c:659 +#: ../src/gui/presets.c:662 #, no-c-format msgid "string to match lens (use % as wildcard)" msgstr "simboli që krahason objektivin (përdorni % si metagermë)" -#: ../src/gui/presets.c:669 +#: ../src/gui/presets.c:672 msgid "minimum ISO value" msgstr "vlera ISO minimale" -#: ../src/gui/presets.c:675 +#: ../src/gui/presets.c:678 msgid "" "maximum ISO value\n" "if left blank, it is equivalent to no upper limit" msgstr "" "vlera ISO maksimale\n" -"nëse lihet bosh nuk do të ketë prag të sipërm" +"duke e lënë bosh do të hiqet pragu i sipërm" -#: ../src/gui/presets.c:688 +#: ../src/gui/presets.c:691 msgid "minimum exposure time" msgstr "koha minimale e ekspozimit" -#: ../src/gui/presets.c:689 +#: ../src/gui/presets.c:692 msgid "maximum exposure time" msgstr "koha maksimale e ekspozimit" -#: ../src/gui/presets.c:705 +#: ../src/gui/presets.c:708 msgid "minimum aperture value" msgstr "vlera minimale e hapjes së diafragmës" -#: ../src/gui/presets.c:706 +#: ../src/gui/presets.c:709 msgid "maximum aperture value" msgstr "vlera maksimale e hapjes së diafragmës" -#: ../src/gui/presets.c:724 +#: ../src/gui/presets.c:727 msgid "minimum focal length" msgstr "largësia fokale minimale" -#: ../src/gui/presets.c:725 +#: ../src/gui/presets.c:728 msgid "maximum focal length" msgstr "largësia fokale maksimale" #. raw/hdr/ldr/mono/color -#: ../src/gui/presets.c:733 ../src/imageio/format/j2k.c:650 +#: ../src/gui/presets.c:736 msgid "format" msgstr "formati" -#: ../src/gui/presets.c:738 +#: ../src/gui/presets.c:741 msgid "select image types you want this preset to be available for" msgstr "" "përzgjidhni për cilat lloje imazhesh do të përdoret kjo vlerë e paracaktuar" -#: ../src/gui/presets.c:751 ../src/libs/filtering.c:1201 +#: ../src/gui/presets.c:754 ../src/libs/filtering.c:1263 msgid "and" msgstr "dhe" -#: ../src/gui/presets.c:795 ../src/gui/presets.c:847 +#: ../src/gui/presets.c:798 ../src/gui/presets.c:850 msgid "∞" msgstr "∞" -#: ../src/gui/presets.c:979 +#: ../src/gui/presets.c:966 #, c-format msgid "preset `%s' is write-protected! can't edit it!" msgstr "vlera e paracaktuar `%s' është e mbrojtur , nuk përpunohet!" -#: ../src/gui/presets.c:1003 ../src/libs/lib.c:158 +#: ../src/gui/presets.c:990 ../src/libs/lib.c:158 msgid "update preset?" msgstr "do e azhurnoni vlerën e paracaktuar?" -#: ../src/gui/presets.c:1004 ../src/libs/lib.c:159 +#: ../src/gui/presets.c:991 ../src/libs/lib.c:159 #, c-format msgid "do you really want to update the preset `%s'?" msgstr "vërtet do e azhurnoni vlerën e paracaktuar `%s'?" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(first)" msgstr "(e para)" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(last)" msgstr "(e fundit)" -#: ../src/gui/presets.c:1165 +#: ../src/gui/presets.c:1152 #, c-format msgid "" "preset %s\n" @@ -11144,63 +11635,63 @@ "vlera e paracaktuar %s\n" "%s" -#: ../src/gui/presets.c:1166 +#: ../src/gui/presets.c:1153 msgid "no presets" msgstr "asnjë vlerë e paracaktuar" -#: ../src/gui/presets.c:1199 ../src/iop/basecurve.c:528 -#: ../src/iop/basecurve.c:532 ../src/iop/basecurve.c:535 +#: ../src/gui/presets.c:1188 ../src/iop/basecurve.c:575 +#: ../src/iop/basecurve.c:579 ../src/iop/basecurve.c:582 msgid "display-referred default" msgstr "standard sipas ekranit" -#: ../src/gui/presets.c:1201 ../src/iop/channelmixerrgb.c:332 -#: ../src/iop/channelmixerrgb.c:336 ../src/iop/channelmixerrgb.c:339 -#: ../src/iop/exposure.c:297 ../src/iop/exposure.c:301 -#: ../src/iop/exposure.c:304 ../src/iop/filmicrgb.c:3248 -#: ../src/iop/filmicrgb.c:3252 ../src/iop/filmicrgb.c:3255 -#: ../src/iop/sigmoid.c:134 ../src/iop/sigmoid.c:138 ../src/iop/sigmoid.c:141 +#: ../src/gui/presets.c:1190 ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:400 ../src/iop/channelmixerrgb.c:403 +#: ../src/iop/exposure.c:319 ../src/iop/exposure.c:323 +#: ../src/iop/exposure.c:326 ../src/iop/filmicrgb.c:3311 +#: ../src/iop/filmicrgb.c:3315 ../src/iop/filmicrgb.c:3318 +#: ../src/iop/sigmoid.c:240 ../src/iop/sigmoid.c:243 ../src/iop/sigmoid.c:245 msgid "scene-referred default" msgstr "standard sipas skenës" -#: ../src/gui/presets.c:1393 ../src/libs/modulegroups.c:3781 -#: ../src/libs/modulegroups.c:3790 +#: ../src/gui/presets.c:1394 ../src/libs/modulegroups.c:3783 +#: ../src/libs/modulegroups.c:3792 msgid "manage module layouts" msgstr "administroni strukturat e moduleve" -#: ../src/gui/presets.c:1402 +#: ../src/gui/presets.c:1403 msgid "manage quick presets" msgstr "administroni vlerat e shpejta të paracaktuara" -#: ../src/gui/presets.c:1586 +#: ../src/gui/presets.c:1587 msgid "manage quick presets list..." msgstr "administroj listën me vlerat e shpejta..." -#: ../src/gui/presets.c:1727 +#: ../src/gui/presets.c:1728 msgid "(default)" msgstr "(standard)" -#: ../src/gui/presets.c:1754 +#: ../src/gui/presets.c:1755 msgid "disabled: wrong module version" msgstr "joaktiv: versioni i gabuar i modulit" -#: ../src/gui/presets.c:1776 ../src/libs/lib.c:551 +#: ../src/gui/presets.c:1777 ../src/libs/lib.c:551 msgid "edit this preset.." msgstr "përpunoj vlerën e paracaktuar..." -#: ../src/gui/presets.c:1781 ../src/libs/lib.c:555 +#: ../src/gui/presets.c:1782 ../src/libs/lib.c:555 msgid "delete this preset" msgstr "fshij vlerën e paracaktuar" -#: ../src/gui/presets.c:1788 ../src/libs/lib.c:563 +#: ../src/gui/presets.c:1789 ../src/libs/lib.c:563 msgid "store new preset.." msgstr "ruaj vlerën e re..." -#: ../src/gui/presets.c:1796 ../src/libs/lib.c:576 +#: ../src/gui/presets.c:1797 ../src/libs/lib.c:576 msgid "update preset" msgstr "azhurnoj vlerën e paracaktuar" #: ../src/gui/styles_dialog.c:221 ../src/libs/styles.c:437 -#: ../src/libs/styles.c:620 +#: ../src/libs/styles.c:622 msgid "overwrite style?" msgstr "do e mbishkruani stilin?" @@ -11226,39 +11717,39 @@ msgid "style %s was successfully saved" msgstr "regjistroi me sukses stilin %s" -#: ../src/gui/styles_dialog.c:505 +#: ../src/gui/styles_dialog.c:512 msgid "edit style" msgstr "editoj stilin" -#: ../src/gui/styles_dialog.c:506 +#: ../src/gui/styles_dialog.c:513 msgid "duplicate style" msgstr "dubloj stilin" -#: ../src/gui/styles_dialog.c:507 +#: ../src/gui/styles_dialog.c:514 msgid "creates a duplicate of the style before applying changes" msgstr "krijoni dublikatën e stilit para se të aplikoni ndryshimet" -#: ../src/gui/styles_dialog.c:511 +#: ../src/gui/styles_dialog.c:518 msgid "create new style" msgstr "krijoni stilin e ri" -#: ../src/gui/styles_dialog.c:549 +#: ../src/gui/styles_dialog.c:557 msgid "enter a name for the new style" msgstr "shkruani emrin e stilit të ri" -#: ../src/gui/styles_dialog.c:554 +#: ../src/gui/styles_dialog.c:565 msgid "enter a description for the new style, this description is searchable" msgstr "përshkruani stilin e ri, përshkrimi është i kërkueshëm" -#: ../src/gui/styles_dialog.c:593 +#: ../src/gui/styles_dialog.c:605 msgid "keep" msgstr "mbaj" -#: ../src/gui/styles_dialog.c:820 +#: ../src/gui/styles_dialog.c:832 msgid "can't create style out of unaltered image" msgstr "nuk mund të krijojë stilin nga imazhi i paprekur" -#: ../src/imageio/imageio.c:804 +#: ../src/imageio/imageio.c:816 #, c-format msgid "" "failed to allocate memory for %s, please lower the threads used for export " @@ -11267,92 +11758,117 @@ "problem me racionimin e memories nga %s, ju lutemi të ulni fazat që përdorni " "për eksport ose blini memorie tjetër." -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "thumbnail export" msgstr "eksporti i miniaturave" -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "export" msgstr "eksporti" -#: ../src/imageio/imageio.c:819 +#: ../src/imageio/imageio.c:831 #, c-format msgid "cannot find the style '%s' to apply during export." msgstr "nuk gjen stilin '%s' që aplikohet gjatë eksportimit." -#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:536 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/imageio_libraw.c:295 +msgid "" +"<span foreground='red'><b>WARNING</b></span>: camera is not fully supported!" +msgstr "" +"<span foreground='red'><b>KUJDES</b></span>: kamera nuk garantohet " +"plotësisht!" + +#: ../src/imageio/imageio_libraw.c:297 +#, c-format +msgid "" +"colors for `%s' could be misrepresented,\n" +"and edits might not be compatible with future versions." +msgstr "" +"ngjyrat e `%s' mund të keqinterpretohen\n" +"dhe ndryshimet mund të mos punojnë në të ardhmen." + +#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:641 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "8 bit" msgstr "8 bit" -#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:567 msgid "10 bit" msgstr "10 bit" -#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:567 msgid "12 bit" msgstr "12 bit" -#: ../src/imageio/format/avif.c:431 +#: ../src/imageio/format/avif.c:110 ../src/imageio/format/webp.c:416 +msgid "lossless" +msgstr "pa humbje" + +#: ../src/imageio/format/avif.c:112 ../src/imageio/format/webp.c:416 +msgid "lossy" +msgstr "me humbje" + +#: ../src/imageio/format/avif.c:463 msgid "invalid AVIF bit depth!" msgstr "AVIF me thellësi bitësh të pasaktë!" -#: ../src/imageio/format/avif.c:694 -msgid "AVIF" -msgstr "AVIF" - #. Bit depth combo box -#: ../src/imageio/format/avif.c:766 ../src/imageio/format/exr.cc:565 -#: ../src/imageio/format/jxl.c:555 ../src/imageio/format/pdf.c:661 -#: ../src/imageio/format/png.c:534 ../src/imageio/format/tiff.c:843 +#: ../src/imageio/format/avif.c:800 ../src/imageio/format/exr.cc:601 +#: ../src/imageio/format/jxl.c:566 ../src/imageio/format/pdf.c:661 +#: ../src/imageio/format/png.c:639 ../src/imageio/format/tiff.c:900 #: ../src/imageio/format/xcf.c:354 msgid "bit depth" msgstr "thellësia e bitëve" -#: ../src/imageio/format/avif.c:779 +#: ../src/imageio/format/avif.c:813 msgid "color information stored in an image, higher is better" msgstr "" "informacioni për ngjyrat e depozituara në imazh. sa më i lartë, aq më mirë" -#: ../src/imageio/format/avif.c:787 +#. +#. * Color mode combo box +#. +#. shortfile option combo box +#: ../src/imageio/format/avif.c:820 ../src/imageio/format/tiff.c:944 +msgid "B&W as grayscale" +msgstr "B/Z me ngjyrë gri" + +#: ../src/imageio/format/avif.c:821 ../src/imageio/format/tiff.c:945 msgid "saving as grayscale will reduce the size for black & white images" msgstr "regjistrimi me ngjyrë gri e redukton madhësinë e imazheve bardhë e zi" -#: ../src/imageio/format/avif.c:789 -msgid "RGB colors" -msgstr "ngjyrat RGB" - -#: ../src/imageio/format/avif.c:789 -msgid "grayscale" -msgstr "gri" - #. #. * Tiling combo box #. -#: ../src/imageio/format/avif.c:799 +#: ../src/imageio/format/avif.c:832 msgid "tiling" msgstr "pllakëzimi" -#: ../src/imageio/format/avif.c:800 +#: ../src/imageio/format/avif.c:833 msgid "" "tile an image into segments.\n" "\n" -"makes encoding faster. the impact on quality reduction is negligible, but " -"increases the file size." +"makes encoding faster, but increases the file size. the loss of image " +"quality is negligible." msgstr "" "imazhi do të ndahet në segmente.\n" "\n" -"për kodim më të shpejtë. nuk ndikon shumë në uljen e cilësisë, por rrit " -"madhësinë e skedarit." +"bën kodim më të shpejtë, por rrit madhësinë e skedarit. nuk ndikon shumë në " +"uljen e cilësisë." -#: ../src/imageio/format/avif.c:817 ../src/imageio/format/webp.c:383 -msgid "compression type" -msgstr "mënyra e komprimimit" +#. compression +#. Compression method combo box +#: ../src/imageio/format/avif.c:850 ../src/imageio/format/exr.cc:611 +#: ../src/imageio/format/pdf.c:676 ../src/imageio/format/png.c:653 +#: ../src/imageio/format/tiff.c:923 ../src/imageio/format/webp.c:414 +#: ../src/libs/masks.c:111 +msgid "compression" +msgstr "komprimimi" -#: ../src/imageio/format/avif.c:825 +#: ../src/imageio/format/avif.c:858 msgid "the compression for the image" msgstr "komprimimi i imazhit" @@ -11361,36 +11877,28 @@ #. step #. default #. digits -#: ../src/imageio/format/avif.c:842 ../src/imageio/format/j2k.c:661 -#: ../src/imageio/format/jpeg.c:587 ../src/imageio/format/jxl.c:579 -#: ../src/imageio/format/webp.c:394 ../src/libs/camera.c:564 +#: ../src/imageio/format/avif.c:878 ../src/imageio/format/j2k.c:679 +#: ../src/imageio/format/jpeg.c:584 ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/webp.c:425 ../src/libs/camera.c:564 msgid "quality" msgstr "cilësia" -#: ../src/imageio/format/avif.c:847 +#: ../src/imageio/format/avif.c:881 msgid "" "the quality of an image, less quality means fewer details.\n" "\n" -"the following applies only to lossy setting\n" +"pixel format is controlled by quality:\n" "\n" -"pixelformat based on quality:\n" -"\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" msgstr "" "cilësia e imazhit, cilësia e ulët nënkupton detaje më të pakëta.\n" "\n" -"kjo aplikohet vetëm për parametrat me humbje\n" -"\n" -"lidhja mes formatit të pikselëve dhe cilësisë:\n" +"formati i pikselëve varet nga cilësia:\n" "\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" #: ../src/imageio/format/copy.c:109 ../src/libs/copy_history.c:370 -#: ../src/libs/image.c:583 +#: ../src/libs/image.c:647 msgid "copy" msgstr "kopjoj" @@ -11406,120 +11914,141 @@ msgid "the selected output profile doesn't work well with EXR" msgstr "profili i përzgjedhur output nuk punon mirë me EXR" -#: ../src/imageio/format/exr.cc:540 +#: ../src/imageio/format/exr.cc:576 msgid "OpenEXR" msgstr "OpenEXR" -#: ../src/imageio/format/exr.cc:567 +#: ../src/imageio/format/exr.cc:603 msgid "16 bit (float)" msgstr "16 bit (float)" -#: ../src/imageio/format/exr.cc:567 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/format/exr.cc:603 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "32 bit (float)" msgstr "32 bit (float)" -#. compression -#. Compression method combo box -#: ../src/imageio/format/exr.cc:575 ../src/imageio/format/pdf.c:676 -#: ../src/imageio/format/png.c:548 ../src/imageio/format/tiff.c:866 -#: ../src/libs/masks.c:110 -msgid "compression" -msgstr "komprimimi" - -#: ../src/imageio/format/exr.cc:577 ../src/imageio/format/pdf.c:682 -#: ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/exr.cc:613 ../src/imageio/format/pdf.c:682 +#: ../src/imageio/format/tiff.c:924 msgid "uncompressed" msgstr "pakomprimuar" -#: ../src/imageio/format/exr.cc:578 +#: ../src/imageio/format/exr.cc:614 msgid "RLE" msgstr "RLE" -#: ../src/imageio/format/exr.cc:579 +#: ../src/imageio/format/exr.cc:615 msgid "ZIPS" msgstr "ZIPS" -#: ../src/imageio/format/exr.cc:580 +#: ../src/imageio/format/exr.cc:616 msgid "ZIP" msgstr "ZIP" -#: ../src/imageio/format/exr.cc:581 +#: ../src/imageio/format/exr.cc:617 msgid "PIZ" msgstr "PIZ" -#: ../src/imageio/format/exr.cc:582 +#: ../src/imageio/format/exr.cc:618 msgid "PXR24" msgstr "PXR24" -#: ../src/imageio/format/exr.cc:583 +#: ../src/imageio/format/exr.cc:619 msgid "B44" msgstr "B44" -#: ../src/imageio/format/exr.cc:584 +#: ../src/imageio/format/exr.cc:620 msgid "B44A" msgstr "B44A" -#: ../src/imageio/format/exr.cc:585 +#: ../src/imageio/format/exr.cc:621 msgid "DWAA" msgstr "DWAA" -#: ../src/imageio/format/exr.cc:586 +#: ../src/imageio/format/exr.cc:622 msgid "DWAB" msgstr "DWAB" -#: ../src/imageio/format/j2k.c:618 +#: ../src/imageio/format/j2k.c:648 msgid "JPEG 2000 (12-bit)" msgstr "JPEG 2000 (12-bit)" -#: ../src/imageio/format/j2k.c:652 -msgid "jp2" -msgstr "jp2" - -#: ../src/imageio/format/j2k.c:667 +#: ../src/imageio/format/j2k.c:684 msgid "DCP mode" msgstr "mënyra DCP" -#: ../src/imageio/format/j2k.c:670 +#: ../src/imageio/format/j2k.c:687 msgid "Cinema2K, 24FPS" msgstr "Cinema2k, 24FPS" -#: ../src/imageio/format/j2k.c:671 +#: ../src/imageio/format/j2k.c:688 msgid "Cinema2K, 48FPS" msgstr "Cinema2k, 48FPS" -#: ../src/imageio/format/j2k.c:672 +#: ../src/imageio/format/j2k.c:689 msgid "Cinema4K, 24FPS" msgstr "Cinema4k, 24FPS" -#: ../src/imageio/format/jpeg.c:564 +#: ../src/imageio/format/jpeg.c:546 msgid "JPEG (8-bit)" msgstr "JPEG (8-bit)" -#: ../src/imageio/format/jxl.c:471 -msgid "JPEG XL" -msgstr "JPEG XL" +#: ../src/imageio/format/jpeg.c:594 +msgid "chroma subsampling" +msgstr "nënkampionimi i kromës" + +#: ../src/imageio/format/jpeg.c:595 +msgid "" +"chroma subsampling setting for JPEG encoder.\n" +"auto - use subsampling determined by the quality value\n" +"4:4:4 - no chroma subsampling\n" +"4:4:0 - color sampling rate halved vertically\n" +"4:2:2 - color sampling rate halved horizontally\n" +"4:2:0 - color sampling rate halved horizontally and vertically" +msgstr "" +"parametri i nënkampionimit të kromës për koduesin JPEG.\n" +"auto - nënkampionimi varet nga vlera e cilësisë\n" +"4:4:4 - kroma nuk do të nënkampionohet\n" +"4:4:0 - norma e kampionimit të ngjyrave përgjysmohet vertikalisht\n" +"4:2:2 - norma e kampionimit të ngjyrave përgjysmohet horizontalisht\n" +"4:2:0 - norma e kampionimit të ngjyrave përgjysmohet horizontalisht dhe " +"vertikalisht" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:4" +msgstr "4:4:4" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:0" +msgstr "4:4:0" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:2" +msgstr "4:2:2" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:0" +msgstr "4:2:0" -#: ../src/imageio/format/jxl.c:556 ../src/imageio/format/pdf.c:81 -#: ../src/imageio/format/png.c:536 ../src/imageio/format/tiff.c:847 +#: ../src/imageio/format/jxl.c:567 ../src/imageio/format/pdf.c:81 +#: ../src/imageio/format/png.c:641 ../src/imageio/format/tiff.c:904 #: ../src/imageio/format/xcf.c:357 msgid "16 bit" msgstr "16 bit" #. Pixel format combo box -#: ../src/imageio/format/jxl.c:562 ../src/imageio/format/tiff.c:852 +#: ../src/imageio/format/jxl.c:573 ../src/imageio/format/tiff.c:909 msgid "pixel type" msgstr "lloji i pikselit" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "unsigned integer" msgstr "vlerë jodhjetore pa shenjë" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "floating point" msgstr "vlerë pike notuese" -#: ../src/imageio/format/jxl.c:580 +#: ../src/imageio/format/jxl.c:591 msgid "" "the quality of the output image\n" "0-29 = very lossy\n" @@ -11531,11 +12060,11 @@ "30-99 = cilësi e ngjashme me JPEG\n" "100 = pa humbje (vetëm me thellësi bitësh jodhjetorë)" -#: ../src/imageio/format/jxl.c:589 +#: ../src/imageio/format/jxl.c:600 msgid "encoding color profile" msgstr "profili kolorimetrik i kodimit" -#: ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/jxl.c:601 msgid "" "the color profile used by the encoder\n" "permit internal XYB color space conversion for more efficient lossy " @@ -11549,20 +12078,20 @@ "ndërsa pa konvertimin ruhet hapësira origjinale e ngjyrave (siç nënkuptohet " "për opsionin pa humbje)" -#: ../src/imageio/format/jxl.c:593 +#: ../src/imageio/format/jxl.c:604 msgid "internal" msgstr "i brendshëm" -#: ../src/imageio/format/jxl.c:593 ../src/libs/duplicate.c:399 -#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:782 +#: ../src/imageio/format/jxl.c:604 ../src/libs/duplicate.c:405 +#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:840 msgid "original" msgstr "origjinali" -#: ../src/imageio/format/jxl.c:607 +#: ../src/imageio/format/jxl.c:618 msgid "encoding effort" msgstr "masa e kodimit" -#: ../src/imageio/format/jxl.c:608 +#: ../src/imageio/format/jxl.c:619 msgid "" "the effort used to encode the image, higher efforts will have better results " "at the expense of longer encoding times" @@ -11570,11 +12099,11 @@ "përpjekjet për kodimin e imazhit. përpjekjet e shumta përmirësojnë " "rezultatin, por edhe rritin kohën e kodimit" -#: ../src/imageio/format/jxl.c:619 +#: ../src/imageio/format/jxl.c:630 msgid "decoding speed" msgstr "shpejtësia e dekodimit" -#: ../src/imageio/format/jxl.c:620 +#: ../src/imageio/format/jxl.c:631 msgid "the preferred decoding speed with some sacrifice of quality" msgstr "me shpejtësinë e preferuar të dekodimit sakrifikoni disi cilësinë" @@ -11586,9 +12115,9 @@ msgid "invalid border size, using 0" msgstr "madhësi bordure e pasaktë, përdor 0" -#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:316 -#: ../src/imageio/storage/email.c:137 ../src/imageio/storage/gallery.c:331 -#: ../src/imageio/storage/gallery.c:370 ../src/imageio/storage/piwigo.c:1202 +#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:460 +#: ../src/imageio/storage/email.c:187 ../src/imageio/storage/gallery.c:409 +#: ../src/imageio/storage/gallery.c:450 ../src/imageio/storage/piwigo.c:1236 #, c-format msgid "could not export to file `%s'!" msgstr "nuk eksportoi dot në skedarin `%s'!" @@ -11642,8 +12171,8 @@ "shembuj: 10 mm, 1 inch" #. dpi -#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1127 -#: ../src/libs/export.c:1150 +#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1218 +#: ../src/libs/export.c:1246 msgid "dpi" msgstr "dpi" @@ -11705,7 +12234,7 @@ "pakomprimuar -- e shpejtë, por skedarët dalin të mëdhenj\n" "shfryj -- e ngadaltë, por skedarët dalin më të vegjël" -#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:924 msgid "deflate" msgstr "shfryj" @@ -11736,60 +12265,23 @@ msgid "debug" msgstr "debug" -#: ../src/imageio/format/pfm.c:120 -msgid "PFM" -msgstr "PFM" - -#: ../src/imageio/format/png.c:493 -msgid "PNG" -msgstr "PNG" - #: ../src/imageio/format/ppm.c:111 msgid "PPM (16-bit)" msgstr "PPM (16-bit)" -#: ../src/imageio/format/tiff.c:228 -msgid "will export as a grayscale image" -msgstr "do të eksportohet si imazh me ngjyrë gri" +#: ../src/imageio/format/tiff.c:246 +msgid "not a B&W image, will not export as grayscale" +msgstr "nuk është imazh B/Z, nuk do të eksportohet me ngjyrë gri" -#: ../src/imageio/format/tiff.c:774 -msgid "TIFF" -msgstr "TIFF" - -#: ../src/imageio/format/tiff.c:868 +#: ../src/imageio/format/tiff.c:925 msgid "deflate with predictor" msgstr "shfryj me parashikim" -#: ../src/imageio/format/tiff.c:878 +#: ../src/imageio/format/tiff.c:935 msgid "compression level" msgstr "niveli i komprimimit" -#. shortfile option combo box -#: ../src/imageio/format/tiff.c:887 -msgid "b&w image" -msgstr "imazhi bardhezi" - -#: ../src/imageio/format/tiff.c:888 -msgid "write RGB colors" -msgstr "shkruaj me ngjyra RGB" - -#: ../src/imageio/format/tiff.c:888 -msgid "write grayscale" -msgstr "shkruaj me ngjyrë gri" - -#: ../src/imageio/format/webp.c:349 -msgid "WebP" -msgstr "WebP" - -#: ../src/imageio/format/webp.c:385 -msgid "lossy" -msgstr "me humbje" - -#: ../src/imageio/format/webp.c:385 -msgid "lossless" -msgstr "pa humbje" - -#: ../src/imageio/format/webp.c:397 +#: ../src/imageio/format/webp.c:426 msgid "" "for lossy, 0 gives the smallest size and 100 the best quality.\n" "for lossless, 0 is the fastest but gives larger files compared\n" @@ -11801,11 +12293,11 @@ "mëdhenj\n" "sesa me 100, të cilët dalin më ngadalë." -#: ../src/imageio/format/webp.c:407 +#: ../src/imageio/format/webp.c:436 msgid "image hint" msgstr "natyra e imazhit" -#: ../src/imageio/format/webp.c:408 +#: ../src/imageio/format/webp.c:437 msgid "" "image characteristics hint for the underlying encoder.\n" "picture: digital picture, like portrait, inner shot\n" @@ -11817,15 +12309,15 @@ " foto: fotografi në natyrë, me ndriçim natyror\n" " grafik: imazh diskret (diagram, pjesë harte etj.)" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "picture" msgstr "figurë" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "photo" msgstr "foto" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "graphic" msgstr "grafik" @@ -11833,12 +12325,12 @@ msgid "XCF" msgstr "XCF" -#: ../src/imageio/storage/disk.c:71 ../src/libs/export.c:1040 +#: ../src/imageio/storage/disk.c:74 ../src/libs/export.c:1119 msgid "file on disk" msgstr "skedar në disk" -#: ../src/imageio/storage/disk.c:169 ../src/imageio/storage/gallery.c:155 -#: ../src/imageio/storage/latex.c:154 +#: ../src/imageio/storage/disk.c:251 ../src/imageio/storage/gallery.c:204 +#: ../src/imageio/storage/latex.c:191 msgid "" "enter the path where to put exported images\n" "variables support bash like string manipulation\n" @@ -11848,53 +12340,63 @@ "variablat mund të manipulohen me disa parametra\n" "shkruani '$(' për të parë automatikisht listën e variablave" -#: ../src/imageio/storage/disk.c:182 ../src/imageio/storage/piwigo.c:1079 +#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/piwigo.c:1113 msgid "on conflict" msgstr "në rast konflikti" -#: ../src/imageio/storage/disk.c:185 +#: ../src/imageio/storage/disk.c:268 msgid "create unique filename" msgstr "krijoj skedar me emër unik" #. DT_COPY_HISTORY_APPEND -#: ../src/imageio/storage/disk.c:186 ../src/imageio/storage/piwigo.c:1083 -#: ../src/libs/copy_history.c:404 ../src/libs/image.c:601 -#: ../src/libs/styles.c:440 ../src/libs/styles.c:623 ../src/libs/styles.c:850 +#: ../src/imageio/storage/disk.c:269 ../src/imageio/storage/piwigo.c:1117 +#: ../src/libs/copy_history.c:404 ../src/libs/image.c:670 +#: ../src/libs/styles.c:854 msgid "overwrite" msgstr "mbishkruaj" -#: ../src/imageio/storage/disk.c:187 ../src/imageio/storage/piwigo.c:1081 -#: ../src/libs/styles.c:439 ../src/libs/styles.c:622 +#: ../src/imageio/storage/disk.c:270 +msgid "overwrite if changed" +msgstr "mbishkruaj kur ndryshohet" + +#: ../src/imageio/storage/disk.c:271 ../src/imageio/storage/piwigo.c:1115 msgid "skip" msgstr "anashkaloj" -#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/gallery.c:253 -#: ../src/imageio/storage/latex.c:252 +#: ../src/imageio/storage/disk.c:371 ../src/imageio/storage/gallery.c:326 +#: ../src/imageio/storage/latex.c:289 #, c-format msgid "could not create directory `%s'!" msgstr "nuk krijoi dot direktorinë `%s'!" -#: ../src/imageio/storage/disk.c:272 +#: ../src/imageio/storage/disk.c:382 #, c-format msgid "could not write to directory `%s'!" msgstr "nuk shkroi dot në direktorinë `%s'!" -#: ../src/imageio/storage/disk.c:302 +#: ../src/imageio/storage/disk.c:419 #, c-format msgid "%d/%d skipping `%s'" msgid_plural "%d/%d skipping `%s'" msgstr[0] "%d/%d kaloi `%s'" msgstr[1] "%d/%d kaluan `%s'" -#: ../src/imageio/storage/disk.c:321 ../src/imageio/storage/email.c:144 -#: ../src/imageio/storage/gallery.c:378 ../src/imageio/storage/latex.c:340 +#: ../src/imageio/storage/disk.c:441 +#, c-format +msgid "%d/%d skipping (not modified since export) `%s'" +msgid_plural "%d/%d skipping (not modified since export) `%s'" +msgstr[0] "%d/%d kalohet (e pamodifikuar prej eksportit) `%s'" +msgstr[1] "%d/%d kalohen (të pamodifikuara prej eksportit) `%s'" + +#: ../src/imageio/storage/disk.c:465 ../src/imageio/storage/email.c:194 +#: ../src/imageio/storage/gallery.c:458 ../src/imageio/storage/latex.c:377 #, c-format msgid "%d/%d exported to `%s'" msgid_plural "%d/%d exported to `%s'" msgstr[0] "eksportoi %d/%d në `%s'" msgstr[1] "eksportoi %d/%d në `%s'" -#: ../src/imageio/storage/disk.c:380 +#: ../src/imageio/storage/disk.c:530 msgid "" "you are going to export in overwrite mode, this will overwrite any existing " "images\n" @@ -11906,23 +12408,33 @@ "\n" "vërtet doni të vijoni?" -#: ../src/imageio/storage/email.c:52 +#: ../src/imageio/storage/email.c:57 msgid "send as email" msgstr "dërgoj me imejl" -#: ../src/imageio/storage/email.c:198 +#. Unlikely in normal Windows installations, but let's notify the user if it happens +#: ../src/imageio/storage/email.c:265 +msgid "could not open mapi32.dll" +msgstr "nuk hap dot mapi32.dll" + +#. Even more unlikely +#: ../src/imageio/storage/email.c:275 +msgid "could not get SendMail function" +msgstr "nuk merr dot funksionin SendMail" + +#: ../src/imageio/storage/email.c:319 ../src/imageio/storage/email.c:409 msgid "images exported from darktable" msgstr "imazhe të eksportuara nga darktable" -#: ../src/imageio/storage/email.c:251 +#: ../src/imageio/storage/email.c:388 ../src/imageio/storage/email.c:467 msgid "could not launch email client!" msgstr "nuk hapi dot postierin elektronik!" -#: ../src/imageio/storage/gallery.c:73 +#: ../src/imageio/storage/gallery.c:76 msgid "website gallery" msgstr "galeri në internet" -#: ../src/imageio/storage/gallery.c:171 +#: ../src/imageio/storage/gallery.c:224 msgid "enter the title of the website" msgstr "shkruani titullin e faqes në internet" @@ -11930,149 +12442,148 @@ msgid "LaTeX book template" msgstr "model libri LaTeX" -#: ../src/imageio/storage/latex.c:172 +#: ../src/imageio/storage/latex.c:209 msgid "enter the title of the book" msgstr "shkruani titullin e librit" -#: ../src/imageio/storage/piwigo.c:522 +#: ../src/imageio/storage/piwigo.c:525 msgid "authenticated" msgstr "vërtetohet" -#: ../src/imageio/storage/piwigo.c:532 ../src/imageio/storage/piwigo.c:547 -#: ../src/imageio/storage/piwigo.c:559 +#: ../src/imageio/storage/piwigo.c:536 ../src/imageio/storage/piwigo.c:552 +#: ../src/imageio/storage/piwigo.c:565 msgid "not authenticated" msgstr "nuk vërtetohet" -#: ../src/imageio/storage/piwigo.c:538 +#: ../src/imageio/storage/piwigo.c:542 msgid "not authenticated, cannot reach server" msgstr "nuk vërtetohet, serveri është i paarritshëm" -#: ../src/imageio/storage/piwigo.c:587 ../src/imageio/storage/piwigo.c:675 +#: ../src/imageio/storage/piwigo.c:595 ../src/imageio/storage/piwigo.c:684 msgid "create new album" msgstr "krijoj album të ri" -#: ../src/imageio/storage/piwigo.c:676 +#: ../src/imageio/storage/piwigo.c:685 msgid "---" msgstr "---" -#: ../src/imageio/storage/piwigo.c:721 +#: ../src/imageio/storage/piwigo.c:735 msgid "cannot refresh albums" msgstr "nuk freskohen albumet" -#: ../src/imageio/storage/piwigo.c:929 +#: ../src/imageio/storage/piwigo.c:950 msgid "Piwigo" msgstr "Piwigo" -#: ../src/imageio/storage/piwigo.c:954 +#: ../src/imageio/storage/piwigo.c:976 msgid "accounts" msgstr "kontot" -#: ../src/imageio/storage/piwigo.c:972 ../src/imageio/storage/piwigo.c:978 +#: ../src/imageio/storage/piwigo.c:995 ../src/imageio/storage/piwigo.c:1004 msgid "server" msgstr "serveri" -#: ../src/imageio/storage/piwigo.c:974 ../src/imageio/storage/piwigo.c:989 +#: ../src/imageio/storage/piwigo.c:998 msgid "" "the server name\n" "default protocol is https\n" -"specify http:// if non secure server" +"specify insecure protocol http:// explicitly if that protocol is required" msgstr "" "emri i serverit\n" "protokolli standard është https\n" -"të specifikohet http:// për serverat e pasigurt" +"të specifikohet http:// për serverat e pasigurt që kërkojnë këtë protokoll" -#: ../src/imageio/storage/piwigo.c:987 ../src/imageio/storage/piwigo.c:993 +#: ../src/imageio/storage/piwigo.c:1014 ../src/imageio/storage/piwigo.c:1021 msgid "user" msgstr "përdoruesi" -#: ../src/imageio/storage/piwigo.c:1000 ../src/imageio/storage/piwigo.c:1005 +#: ../src/imageio/storage/piwigo.c:1029 ../src/imageio/storage/piwigo.c:1034 msgid "password" msgstr "fjalëkalimi" #. login button -#: ../src/imageio/storage/piwigo.c:1010 +#: ../src/imageio/storage/piwigo.c:1039 msgid "login" msgstr "paraqitem" -#: ../src/imageio/storage/piwigo.c:1011 +#: ../src/imageio/storage/piwigo.c:1040 msgid "Piwigo login" msgstr "identifikimi në Piwigo" #. permissions list -#: ../src/imageio/storage/piwigo.c:1025 +#: ../src/imageio/storage/piwigo.c:1056 msgid "visible to" msgstr "shihet nga" -#: ../src/imageio/storage/piwigo.c:1027 +#: ../src/imageio/storage/piwigo.c:1058 msgid "everyone" msgstr "kushdo" -#: ../src/imageio/storage/piwigo.c:1028 +#: ../src/imageio/storage/piwigo.c:1059 msgid "contacts" msgstr "kontaktet" -#: ../src/imageio/storage/piwigo.c:1029 +#: ../src/imageio/storage/piwigo.c:1060 msgid "friends" msgstr "miqtë" -#: ../src/imageio/storage/piwigo.c:1030 +#: ../src/imageio/storage/piwigo.c:1061 msgid "family" msgstr "familja" -#: ../src/imageio/storage/piwigo.c:1031 +#: ../src/imageio/storage/piwigo.c:1062 msgid "you" msgstr "ju" #. Available albums -#: ../src/imageio/storage/piwigo.c:1038 +#: ../src/imageio/storage/piwigo.c:1069 msgid "album" msgstr "albumi" -#: ../src/imageio/storage/piwigo.c:1045 +#: ../src/imageio/storage/piwigo.c:1076 msgid "refresh album list" msgstr "freskoni listën e albumeve" #. Album title -#: ../src/imageio/storage/piwigo.c:1063 +#: ../src/imageio/storage/piwigo.c:1096 msgid "new album" msgstr "album të ri" -#. parent album list #. Available albums -#: ../src/imageio/storage/piwigo.c:1071 +#: ../src/imageio/storage/piwigo.c:1105 msgid "parent album" msgstr "albumi amë" -#: ../src/imageio/storage/piwigo.c:1075 +#: ../src/imageio/storage/piwigo.c:1109 msgid "click login button to start" msgstr "në fillim klikoni butonin 'paraqitem'" -#: ../src/imageio/storage/piwigo.c:1080 +#: ../src/imageio/storage/piwigo.c:1114 msgid "don't check" msgstr "nuk kontrolloj" -#: ../src/imageio/storage/piwigo.c:1082 +#: ../src/imageio/storage/piwigo.c:1116 msgid "update metadata" msgstr "azhurnoj metadatat" -#: ../src/imageio/storage/piwigo.c:1221 +#: ../src/imageio/storage/piwigo.c:1255 msgid "cannot create a new Piwigo album!" msgstr "nuk krijohet albumi i ri Piwigo!" -#: ../src/imageio/storage/piwigo.c:1240 +#: ../src/imageio/storage/piwigo.c:1274 msgid "could not update to Piwigo!" msgstr "nuk azhurnohet në Piwigo!" -#: ../src/imageio/storage/piwigo.c:1255 +#: ../src/imageio/storage/piwigo.c:1290 msgid "could not upload to Piwigo!" msgstr "nuk ngarkoi dot në Piwigo!" -#: ../src/imageio/storage/piwigo.c:1284 +#: ../src/imageio/storage/piwigo.c:1319 #, c-format msgid "%d/%d skipped (already exists)" msgstr "anashkaloi %d/%d (ekziston që më parë)" -#: ../src/imageio/storage/piwigo.c:1290 +#: ../src/imageio/storage/piwigo.c:1325 #, c-format msgid "%d/%d exported to Piwigo webalbum" msgid_plural "%d/%d exported to Piwigo webalbum" @@ -12092,54 +12603,54 @@ msgstr "rrotulloni ose deformoni perspektivën" #: ../src/iop/ashift.c:131 ../src/iop/channelmixer.c:139 -#: ../src/iop/channelmixerrgb.c:232 ../src/iop/clipping.c:320 -#: ../src/iop/colorbalance.c:161 ../src/iop/colorbalancergb.c:185 +#: ../src/iop/channelmixerrgb.c:233 ../src/iop/clipping.c:363 +#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:185 #: ../src/iop/colorchecker.c:130 ../src/iop/colorcorrection.c:77 -#: ../src/iop/crop.c:144 ../src/iop/lut3d.c:141 +#: ../src/iop/crop.c:134 ../src/iop/lut3d.c:142 ../src/iop/primaries.c:80 msgid "corrective or creative" msgstr "korrektiv ose kreativ" -#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:148 -#: ../src/iop/bilateral.cc:101 ../src/iop/bilateral.cc:103 -#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:233 -#: ../src/iop/channelmixerrgb.c:235 ../src/iop/clipping.c:321 -#: ../src/iop/clipping.c:323 ../src/iop/colorbalancergb.c:186 -#: ../src/iop/colorin.c:136 ../src/iop/crop.c:145 ../src/iop/crop.c:147 -#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:728 -#: ../src/iop/denoiseprofile.c:730 ../src/iop/diffuse.c:146 +#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:174 +#: ../src/iop/bilateral.cc:103 ../src/iop/bilateral.cc:105 +#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:236 ../src/iop/clipping.c:364 +#: ../src/iop/clipping.c:366 ../src/iop/colorbalancergb.c:186 +#: ../src/iop/colorin.c:136 ../src/iop/crop.c:135 ../src/iop/crop.c:137 +#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:780 +#: ../src/iop/denoiseprofile.c:782 ../src/iop/diffuse.c:146 #: ../src/iop/diffuse.c:148 ../src/iop/exposure.c:132 ../src/iop/exposure.c:134 #: ../src/iop/flip.c:111 ../src/iop/flip.c:112 ../src/iop/hazeremoval.c:113 -#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:242 ../src/iop/lens.cc:244 -#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/retouch.c:210 -#: ../src/iop/retouch.c:212 ../src/iop/sigmoid.c:103 -#: ../src/iop/splittoning.c:104 ../src/iop/splittoning.c:106 -#: ../src/iop/spots.c:70 ../src/iop/spots.c:72 ../src/iop/toneequal.c:325 -#: ../src/iop/velvia.c:106 ../src/iop/velvia.c:108 +#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:263 ../src/iop/lens.cc:265 +#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/primaries.c:81 +#: ../src/iop/primaries.c:83 ../src/iop/retouch.c:210 ../src/iop/retouch.c:212 +#: ../src/iop/sigmoid.c:209 ../src/iop/splittoning.c:106 +#: ../src/iop/splittoning.c:108 ../src/iop/spots.c:70 ../src/iop/spots.c:72 +#: ../src/iop/toneequal.c:333 ../src/iop/velvia.c:99 ../src/iop/velvia.c:101 msgid "linear, RGB, scene-referred" msgstr "linear, RGB, sipas skenës" -#: ../src/iop/ashift.c:133 ../src/iop/borders.c:200 ../src/iop/clipping.c:322 -#: ../src/iop/crop.c:146 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 +#: ../src/iop/ashift.c:133 ../src/iop/borders.c:325 ../src/iop/clipping.c:365 +#: ../src/iop/crop.c:136 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 msgid "geometric, RGB" msgstr "gjeometrik, RGB" -#: ../src/iop/ashift.c:2820 +#: ../src/iop/ashift.c:2866 msgid "automatic cropping failed" msgstr "e pamundur të pritej automatikisht" -#: ../src/iop/ashift.c:3234 ../src/iop/ashift.c:3286 ../src/iop/ashift.c:3334 +#: ../src/iop/ashift.c:3276 ../src/iop/ashift.c:3328 ../src/iop/ashift.c:3375 msgid "data pending - please repeat" msgstr "të dhënat në pritje - lutemi ta përsëritni" -#: ../src/iop/ashift.c:3243 +#: ../src/iop/ashift.c:3285 msgid "could not detect structural data in image" msgstr "nuk dalloi dot të dhënat strukturore të imazhit" -#: ../src/iop/ashift.c:3255 +#: ../src/iop/ashift.c:3297 msgid "could not run outlier removal" msgstr "nuk kryhet heqja e efekteve jotipike" -#: ../src/iop/ashift.c:3434 +#: ../src/iop/ashift.c:3474 #, c-format msgid "" "not enough structure for automatic correction\n" @@ -12148,41 +12659,41 @@ "nuk keni strukturë të mjaftueshme për korrigjimin automatik\n" "duhen minimalisht %d vija në secilin drejtim" -#: ../src/iop/ashift.c:3440 +#: ../src/iop/ashift.c:3480 msgid "automatic correction failed, please correct manually" msgstr "nuk mund të vetëkorrigjohej, ju lutemi ta korrigjoni manualisht" -#: ../src/iop/ashift.c:5096 +#: ../src/iop/ashift.c:5077 #, c-format msgid "only %d lines can be saved in parameters" msgstr "te parametrat mund të regjistrohen vetëm %d rreshta" -#: ../src/iop/ashift.c:5201 +#: ../src/iop/ashift.c:5157 #, c-format -msgid "rotation adjusted by %3.1f° to %3.1f°" -msgstr "rrotullimi ndryshoi nga %3.1f° në %3.1f°" +msgid "rotation adjusted by %3.2f° to %3.2f°" +msgstr "rrotullimi ndryshoi nga %3.2f° në %3.2f°" -#: ../src/iop/ashift.c:5852 ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 -#: ../src/iop/ashift.c:5961 +#: ../src/iop/ashift.c:5797 ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 +#: ../src/iop/ashift.c:5906 #, c-format msgid "lens shift (%s)" msgstr "zhvendosja e objektivit (%s)" -#: ../src/iop/ashift.c:6125 +#: ../src/iop/ashift.c:6072 msgid "manual perspective" msgstr "perspektiva manuale" -#: ../src/iop/ashift.c:6170 +#: ../src/iop/ashift.c:6117 msgctxt "section" msgid "perspective" msgstr "perspektiva" -#: ../src/iop/ashift.c:6177 ../src/iop/ashift.c:6286 ../src/iop/ashift.c:6288 -#: ../src/iop/ashift.c:6290 +#: ../src/iop/ashift.c:6124 ../src/iop/ashift.c:6233 ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6237 msgid "structure" msgstr "struktura" -#: ../src/iop/ashift.c:6212 +#: ../src/iop/ashift.c:6159 msgid "" "rotate image\n" "right-click and drag to define a horizontal or vertical line by drawing on " @@ -12192,19 +12703,19 @@ "vizatoni një vijë horizontale ose vertikale mbi imazh, me klikim djathtas " "duke e tërhequr mausin" -#: ../src/iop/ashift.c:6215 ../src/iop/ashift.c:6217 +#: ../src/iop/ashift.c:6162 ../src/iop/ashift.c:6164 msgid "apply lens shift correction in one direction" msgstr "korrigjoni zhvendosjen e objektivit në një drejtim" -#: ../src/iop/ashift.c:6219 +#: ../src/iop/ashift.c:6166 msgid "shear the image along one diagonal" msgstr "gërshëroni imazhin përgjatë njërës diagonale" -#: ../src/iop/ashift.c:6220 ../src/iop/clipping.c:2117 +#: ../src/iop/ashift.c:6167 ../src/iop/clipping.c:2170 msgid "automatically crop to avoid black edges" msgstr "me prerjen automatike shmangni cepat e zinj" -#: ../src/iop/ashift.c:6221 +#: ../src/iop/ashift.c:6168 msgid "" "lens model of the perspective correction: generic or according to the focal " "length" @@ -12212,13 +12723,13 @@ "modeli i korrigjimit të perspektivës në objektiv: gjenerik ose sipas " "largësisë fokale" -#: ../src/iop/ashift.c:6224 +#: ../src/iop/ashift.c:6171 msgid "focal length of the lens, default value set from EXIF data if available" msgstr "" "largësia fokale e objektivit, vlera standarde vendoset nga të dhënat e " "mundshme EXIF" -#: ../src/iop/ashift.c:6227 +#: ../src/iop/ashift.c:6174 msgid "" "crop factor of the camera sensor, default value set from EXIF data if " "available, manual setting is often required" @@ -12226,7 +12737,7 @@ "koeficienti prerës i sensorit të kamerës, vlera standarde vendoset nga të " "dhënat e mundshme EXIF, shpesh duhet vendosur manualisht" -#: ../src/iop/ashift.c:6231 +#: ../src/iop/ashift.c:6178 msgid "" "the level of lens dependent correction, set to maximum for full lens " "dependency, set to zero for the generic case" @@ -12234,13 +12745,13 @@ "niveli i korrigjimit sipas objektivit, vendosni maksimumin për varësi të " "plotë me objektivin, zero për rastet gjenerike" -#: ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6182 msgid "adjust aspect ratio of image by horizontal and vertical scaling" msgstr "" "rregulloni raportin përmasor të imazhit sipas shëmbëllimit horizontal dhe " "vertikal" -#: ../src/iop/ashift.c:6237 +#: ../src/iop/ashift.c:6184 msgid "" "automatically correct for vertical perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12250,7 +12761,7 @@ "vetëm rrotullimin me ctrl+klikim\n" "vetëm zhvendosjen e objektivit me shift+klikim" -#: ../src/iop/ashift.c:6241 +#: ../src/iop/ashift.c:6188 msgid "" "automatically correct for horizontal perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12260,7 +12771,7 @@ "vetëm rrotullimin me ctrl+klikim\n" "vetëm zhvendosjen e objektivit me shift+klikim" -#: ../src/iop/ashift.c:6245 +#: ../src/iop/ashift.c:6192 msgid "" "automatically correct for vertical and horizontal perspective distortions, " "fitting rotation, lens shift in both directions, and shear\n" @@ -12274,7 +12785,7 @@ "vetëm zhvendosjen e objektivit me shift+klikim\n" "vetëm rrotullimin dhe zhvendosjen e objektivit me ctrl+shift+klikim" -#: ../src/iop/ashift.c:6252 +#: ../src/iop/ashift.c:6199 msgid "" "automatically analyse line structure in image\n" "ctrl+click for an additional edge enhancement\n" @@ -12286,225 +12797,225 @@ "detajet përmirësohen më shumë me shift+klikim\n" "të dyja metodat ndërthuren me ctrl+shift+klikim" -#: ../src/iop/ashift.c:6257 +#: ../src/iop/ashift.c:6204 msgid "manually define perspective rectangle" msgstr "përcaktoni manualisht perspektivën e drejtkëndëshit" -#: ../src/iop/ashift.c:6258 +#: ../src/iop/ashift.c:6205 msgid "manually draw structure lines" msgstr "vizatoni manualisht vijat strukturore" -#: ../src/iop/ashift.c:6287 +#: ../src/iop/ashift.c:6234 msgid "rectangle" msgstr "drejtkëndësh" -#: ../src/iop/ashift.c:6289 +#: ../src/iop/ashift.c:6236 msgid "lines" msgstr "vijat" -#: ../src/iop/ashift.c:6323 ../src/iop/clipping.c:3343 +#: ../src/iop/ashift.c:6270 ../src/iop/clipping.c:3383 #, c-format msgid "[%s] define/rotate horizon" msgstr "[%s] përcaktoj/rrotulloj horizontin" -#: ../src/iop/ashift.c:6326 +#: ../src/iop/ashift.c:6273 #, c-format msgid "[%s on segment] select segment" msgstr "[%s për segmentin] përzgjedh segmentin" -#: ../src/iop/ashift.c:6330 +#: ../src/iop/ashift.c:6277 #, c-format msgid "[%s on segment] unselect segment" msgstr "[%s për segmentin] lëshoj segmentin" -#: ../src/iop/ashift.c:6334 +#: ../src/iop/ashift.c:6281 #, c-format msgid "[%s] select all segments from zone" msgstr "[%s] përzgjedh gjithë segmentet e zonës" -#: ../src/iop/ashift.c:6338 +#: ../src/iop/ashift.c:6285 #, c-format msgid "[%s] unselect all segments from zone" msgstr "[%s] lëshoj gjithë segmentet e zonës" -#: ../src/iop/atrous.c:123 ../src/iop/atrous.c:1638 +#: ../src/iop/atrous.c:122 ../src/iop/atrous.c:1770 msgid "contrast equalizer" msgstr "niveluesi i kontrastit" -#: ../src/iop/atrous.c:128 +#: ../src/iop/atrous.c:127 msgid "sharpness|acutance|local contrast" msgstr "qartësia|akutanca|kontrasti lokal" -#: ../src/iop/atrous.c:133 +#: ../src/iop/atrous.c:132 msgid "add or remove local contrast, sharpness, acutance" msgstr "shtoni ose hiqni kontrastin lokal, qartësinë, akutancën" -#: ../src/iop/atrous.c:134 ../src/iop/bilateral.cc:100 ../src/iop/diffuse.c:145 +#: ../src/iop/atrous.c:133 ../src/iop/bilateral.cc:102 ../src/iop/diffuse.c:145 #: ../src/iop/exposure.c:131 ../src/iop/filmicrgb.c:352 #: ../src/iop/graduatednd.c:146 ../src/iop/negadoctor.c:146 -#: ../src/iop/rgbcurve.c:143 ../src/iop/rgblevels.c:123 ../src/iop/shadhi.c:197 -#: ../src/iop/sigmoid.c:102 ../src/iop/tonecurve.c:211 -#: ../src/iop/toneequal.c:324 +#: ../src/iop/rgbcurve.c:145 ../src/iop/rgblevels.c:125 ../src/iop/shadhi.c:144 +#: ../src/iop/sigmoid.c:209 ../src/iop/tonecurve.c:184 +#: ../src/iop/toneequal.c:332 msgid "corrective and creative" msgstr "korrektiv dhe kreativ" -#: ../src/iop/atrous.c:135 ../src/iop/atrous.c:137 -#: ../src/iop/colorbalance.c:162 +#: ../src/iop/atrous.c:134 ../src/iop/atrous.c:136 +#: ../src/iop/colorbalance.c:164 msgid "linear, Lab, scene-referred" msgstr "linear, Lab, sipas skenës" -#: ../src/iop/atrous.c:136 ../src/iop/censorize.c:85 +#: ../src/iop/atrous.c:135 ../src/iop/censorize.c:85 #: ../src/iop/hazeremoval.c:114 msgid "frequential, RGB" msgstr "frekuencial, RGB" -#: ../src/iop/atrous.c:727 +#: ../src/iop/atrous.c:799 msgctxt "eq_preset" msgid "coarse" msgstr "ashpër" -#: ../src/iop/atrous.c:742 +#: ../src/iop/atrous.c:815 msgid "denoise & sharpen" msgstr "zbut zhurmën dhe qartësoj" -#: ../src/iop/atrous.c:757 +#: ../src/iop/atrous.c:831 msgctxt "atrous" msgid "sharpen" msgstr "qartësoj" -#: ../src/iop/atrous.c:772 +#: ../src/iop/atrous.c:847 msgid "denoise chroma" msgstr "zbut zhurmën e kromës" -#: ../src/iop/atrous.c:787 +#: ../src/iop/atrous.c:863 msgid "denoise" msgstr "zbut zhurmën" -#: ../src/iop/atrous.c:803 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:421 +#: ../src/iop/atrous.c:880 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:448 msgid "bloom" msgstr "rrezatimi" -#: ../src/iop/atrous.c:818 ../src/iop/bilat.c:169 +#: ../src/iop/atrous.c:896 ../src/iop/bilat.c:186 msgid "clarity" msgstr "kthjelloj" -#: ../src/iop/atrous.c:838 +#: ../src/iop/atrous.c:917 msgid "deblur: large blur, strength 3" msgstr "desfumoj: sfumim i madh, forca 3" -#: ../src/iop/atrous.c:855 +#: ../src/iop/atrous.c:935 msgid "deblur: medium blur, strength 3" msgstr "desfumoj: sfumim i mesëm, forca 3" -#: ../src/iop/atrous.c:871 +#: ../src/iop/atrous.c:952 msgid "deblur: fine blur, strength 3" msgstr "desfumoj: sfumim fin, forca 3" -#: ../src/iop/atrous.c:889 +#: ../src/iop/atrous.c:971 msgid "deblur: large blur, strength 2" msgstr "desfumoj: sfumim i madh, forca 2" -#: ../src/iop/atrous.c:906 +#: ../src/iop/atrous.c:989 msgid "deblur: medium blur, strength 2" msgstr "desfumoj: sfumim i mesëm, forca 2" -#: ../src/iop/atrous.c:922 +#: ../src/iop/atrous.c:1006 msgid "deblur: fine blur, strength 2" msgstr "desfumoj: sfumim fin, forca 2" -#: ../src/iop/atrous.c:940 +#: ../src/iop/atrous.c:1025 msgid "deblur: large blur, strength 1" msgstr "desfumoj: sfumim i madh, forca 1" -#: ../src/iop/atrous.c:957 +#: ../src/iop/atrous.c:1043 msgid "deblur: medium blur, strength 1" msgstr "desfumoj: sfumim i mesëm, forca 1" -#: ../src/iop/atrous.c:973 +#: ../src/iop/atrous.c:1060 msgid "deblur: fine blur, strength 1" msgstr "desfumoj: sfumim fin, forca 1" -#: ../src/iop/atrous.c:1289 ../src/iop/atrous.c:1525 -#: ../src/iop/denoiseprofile.c:3510 ../src/iop/rawdenoise.c:738 +#: ../src/iop/atrous.c:1390 ../src/iop/atrous.c:1639 +#: ../src/iop/denoiseprofile.c:3514 ../src/iop/rawdenoise.c:754 msgid "coarse" msgstr "ashpër" -#: ../src/iop/atrous.c:1296 ../src/iop/atrous.c:1526 -#: ../src/iop/denoiseprofile.c:3518 ../src/iop/rawdenoise.c:746 +#: ../src/iop/atrous.c:1397 ../src/iop/atrous.c:1640 +#: ../src/iop/denoiseprofile.c:3522 ../src/iop/rawdenoise.c:762 msgid "fine" msgstr "imët" -#: ../src/iop/atrous.c:1308 +#: ../src/iop/atrous.c:1409 msgid "contrasty" msgstr "kontrast" -#: ../src/iop/atrous.c:1314 ../src/iop/denoiseprofile.c:3532 -#: ../src/iop/rawdenoise.c:760 +#: ../src/iop/atrous.c:1415 ../src/iop/denoiseprofile.c:3536 +#: ../src/iop/rawdenoise.c:776 msgid "noisy" msgstr "kokrrizoj" #. case atrous_s: -#: ../src/iop/atrous.c:1317 +#: ../src/iop/atrous.c:1418 msgid "bold" msgstr "qartë" -#: ../src/iop/atrous.c:1318 +#: ../src/iop/atrous.c:1419 msgid "dull" msgstr "zbehtë" -#: ../src/iop/atrous.c:1513 ../src/iop/atrous.c:1564 +#: ../src/iop/atrous.c:1627 ../src/iop/atrous.c:1685 msgid "boost" msgstr "amplifikoj" -#: ../src/iop/atrous.c:1514 +#: ../src/iop/atrous.c:1628 msgid "reduce" msgstr "pakësoj" -#: ../src/iop/atrous.c:1515 +#: ../src/iop/atrous.c:1629 msgid "raise" msgstr "rrit" -#: ../src/iop/atrous.c:1516 +#: ../src/iop/atrous.c:1630 msgid "lower" msgstr "më e ulët" -#: ../src/iop/atrous.c:1523 +#: ../src/iop/atrous.c:1637 msgid "coarsest" msgstr "më ashpër fare" -#: ../src/iop/atrous.c:1524 +#: ../src/iop/atrous.c:1638 msgid "coarser" msgstr "më ashpër" -#: ../src/iop/atrous.c:1527 +#: ../src/iop/atrous.c:1641 msgid "finer" msgstr "më imët" -#: ../src/iop/atrous.c:1528 +#: ../src/iop/atrous.c:1642 msgid "finest" msgstr "më imët fare" -#: ../src/iop/atrous.c:1586 ../src/libs/export.c:1143 ../src/libs/export.c:1158 +#: ../src/iop/atrous.c:1710 ../src/libs/export.c:1239 ../src/libs/export.c:1255 msgid "x" msgstr "x" -#: ../src/iop/atrous.c:1666 ../src/iop/nlmeans.c:465 +#: ../src/iop/atrous.c:1799 ../src/iop/nlmeans.c:468 msgid "luma" msgstr "luma" -#: ../src/iop/atrous.c:1666 +#: ../src/iop/atrous.c:1800 msgid "change lightness at each feature size" msgstr "ndryshoni ndriçimin" -#: ../src/iop/atrous.c:1667 +#: ../src/iop/atrous.c:1802 msgid "change color saturation at each feature size" msgstr "ndryshoni saturimin e ngjyrave" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1804 msgid "edges" msgstr "cepat" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1805 msgid "" "change edge halos at each feature size\n" "only changes results of luma and chroma tabs" @@ -12512,97 +13023,97 @@ "ndryshoni aureolat këndore me çdo përmasë\n" "prek vetëm rezultatet në fushat luma dhe kroma" -#: ../src/iop/atrous.c:1679 ../src/iop/colorbalancergb.c:2058 -#: ../src/iop/colorzones.c:2473 ../src/iop/denoiseprofile.c:3743 -#: ../src/iop/filmicrgb.c:4407 ../src/iop/lowlight.c:823 -#: ../src/iop/rawdenoise.c:919 ../src/iop/toneequal.c:3371 +#: ../src/iop/atrous.c:1818 ../src/iop/colorbalancergb.c:2129 +#: ../src/iop/colorzones.c:2732 ../src/iop/denoiseprofile.c:3747 +#: ../src/iop/filmicrgb.c:4471 ../src/iop/lowlight.c:821 +#: ../src/iop/rawdenoise.c:935 ../src/iop/toneequal.c:3424 msgid "graph" msgstr "grafiku" -#: ../src/iop/atrous.c:1690 ../src/iop/colorzones.c:2470 +#: ../src/iop/atrous.c:1836 ../src/iop/colorzones.c:2729 msgid "make effect stronger or weaker" msgstr "bëni efektin më të fortë ose të dobët" -#: ../src/iop/basecurve.c:213 +#: ../src/iop/basecurve.c:260 msgid "neutral" msgstr "neutrale" -#: ../src/iop/basecurve.c:214 +#: ../src/iop/basecurve.c:261 msgid "canon eos like" msgstr "si canon eos" -#: ../src/iop/basecurve.c:215 +#: ../src/iop/basecurve.c:262 msgid "canon eos like alternate" msgstr "alternativ si canon eos" -#: ../src/iop/basecurve.c:216 +#: ../src/iop/basecurve.c:263 msgid "nikon like" msgstr "si nikon" -#: ../src/iop/basecurve.c:217 +#: ../src/iop/basecurve.c:264 msgid "nikon like alternate" msgstr "alternativ si nikon" -#: ../src/iop/basecurve.c:218 +#: ../src/iop/basecurve.c:265 msgid "sony alpha like" msgstr "si sony alpha" -#: ../src/iop/basecurve.c:219 +#: ../src/iop/basecurve.c:266 msgid "pentax like" msgstr "si pentax" -#: ../src/iop/basecurve.c:220 +#: ../src/iop/basecurve.c:267 msgid "ricoh like" msgstr "si ricoh" -#: ../src/iop/basecurve.c:221 +#: ../src/iop/basecurve.c:268 msgid "olympus like" msgstr "si olympus" -#: ../src/iop/basecurve.c:222 +#: ../src/iop/basecurve.c:269 msgid "olympus like alternate" msgstr "alternativ si olympus" -#: ../src/iop/basecurve.c:223 +#: ../src/iop/basecurve.c:270 msgid "panasonic like" msgstr "si panasonic" -#: ../src/iop/basecurve.c:224 +#: ../src/iop/basecurve.c:271 msgid "leica like" msgstr "si leica" -#: ../src/iop/basecurve.c:225 +#: ../src/iop/basecurve.c:272 msgid "kodak easyshare like" msgstr "si kodak easyshare" -#: ../src/iop/basecurve.c:226 +#: ../src/iop/basecurve.c:273 msgid "konica minolta like" msgstr "si konica minolta" -#: ../src/iop/basecurve.c:227 +#: ../src/iop/basecurve.c:274 msgid "samsung like" msgstr "si samsung" -#: ../src/iop/basecurve.c:228 +#: ../src/iop/basecurve.c:275 msgid "fujifilm like" msgstr "si fujifilm" -#: ../src/iop/basecurve.c:229 +#: ../src/iop/basecurve.c:276 msgid "nokia like" msgstr "si nokia" #. clang-format off #. smoother cubic spline curve -#: ../src/iop/basecurve.c:284 ../src/iop/colorzones.c:2495 -#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1173 +#: ../src/iop/basecurve.c:331 ../src/iop/colorzones.c:2763 +#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1195 msgid "cubic spline" msgstr "lakore kubike" -#: ../src/iop/basecurve.c:343 +#: ../src/iop/basecurve.c:390 msgid "base curve" msgstr "kurba bazë" -#: ../src/iop/basecurve.c:350 +#: ../src/iop/basecurve.c:397 msgid "" "apply a view transform based on personal or camera manufacturer look,\n" "for corrective purposes, to prepare images for display" @@ -12611,65 +13122,65 @@ "kamerës,\n" "për qëllime korrektimi, për përgatitjen e imazhit për ekran" -#: ../src/iop/basecurve.c:352 ../src/iop/cacorrect.c:78 -#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:135 -#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:727 +#: ../src/iop/basecurve.c:399 ../src/iop/cacorrect.c:84 +#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:120 +#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:779 #: ../src/iop/flip.c:110 ../src/iop/hazeremoval.c:112 -#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:73 -#: ../src/iop/invert.c:119 ../src/iop/lens.cc:241 ../src/iop/nlmeans.c:95 -#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:130 -#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:94 ../src/iop/spots.c:69 -#: ../src/iop/temperature.c:212 +#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:75 +#: ../src/iop/invert.c:136 ../src/iop/lens.cc:262 ../src/iop/nlmeans.c:89 +#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:144 +#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:96 ../src/iop/spots.c:69 +#: ../src/iop/temperature.c:220 msgid "corrective" msgstr "korrektiv" -#: ../src/iop/basecurve.c:353 ../src/iop/channelmixer.c:140 -#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:142 +#: ../src/iop/basecurve.c:400 ../src/iop/channelmixer.c:140 +#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:143 #: ../src/iop/negadoctor.c:147 ../src/iop/profile_gamma.c:103 -#: ../src/iop/rgbcurve.c:144 ../src/iop/rgbcurve.c:146 -#: ../src/iop/rgblevels.c:124 ../src/iop/sigmoid.c:105 ../src/iop/soften.c:102 -#: ../src/iop/soften.c:104 +#: ../src/iop/rgbcurve.c:146 ../src/iop/rgbcurve.c:148 +#: ../src/iop/rgblevels.c:126 ../src/iop/sigmoid.c:210 ../src/iop/soften.c:104 +#: ../src/iop/soften.c:106 msgid "linear, RGB, display-referred" msgstr "linear, RGB, sipas ekranit" -#: ../src/iop/basecurve.c:354 ../src/iop/basicadj.c:149 -#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:187 +#: ../src/iop/basecurve.c:401 ../src/iop/basicadj.c:175 +#: ../src/iop/colorbalance.c:165 ../src/iop/colorbalancergb.c:187 #: ../src/iop/dither.c:121 ../src/iop/filmicrgb.c:354 #: ../src/iop/graduatednd.c:148 ../src/iop/negadoctor.c:148 -#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:145 -#: ../src/iop/rgblevels.c:125 ../src/iop/sigmoid.c:104 -#: ../src/iop/vignette.c:161 ../src/iop/watermark.c:379 +#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:147 +#: ../src/iop/rgblevels.c:127 ../src/iop/sigmoid.c:210 +#: ../src/iop/vignette.c:122 ../src/iop/watermark.c:424 msgid "non-linear, RGB" msgstr "jolinear, RGB" -#: ../src/iop/basecurve.c:355 ../src/iop/dither.c:120 ../src/iop/dither.c:122 +#: ../src/iop/basecurve.c:402 ../src/iop/dither.c:120 ../src/iop/dither.c:122 #: ../src/iop/filmicrgb.c:355 ../src/iop/graduatednd.c:149 #: ../src/iop/negadoctor.c:149 ../src/iop/profile_gamma.c:105 -#: ../src/iop/rgblevels.c:126 ../src/iop/vignette.c:160 -#: ../src/iop/vignette.c:162 ../src/iop/watermark.c:378 -#: ../src/iop/watermark.c:380 +#: ../src/iop/rgblevels.c:128 ../src/iop/vignette.c:121 +#: ../src/iop/vignette.c:123 ../src/iop/watermark.c:423 +#: ../src/iop/watermark.c:425 msgid "non-linear, RGB, display-referred" msgstr "jolinear, RGB, sipas skenës" -#: ../src/iop/basecurve.c:2184 +#: ../src/iop/basecurve.c:2205 msgid "abscissa: input, ordinate: output. works on RGB channels" msgstr "abshisa: input, ordinata: output. punon në kanalet RGB" -#: ../src/iop/basecurve.c:2190 ../src/iop/basicadj.c:612 -#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1072 -#: ../src/iop/tonecurve.c:1184 +#: ../src/iop/basecurve.c:2211 ../src/iop/basicadj.c:642 +#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1133 +#: ../src/iop/tonecurve.c:1206 msgid "method to preserve colors when applying contrast" msgstr "metoda për ruajtjen e ngjyrave kur aplikohet kontrasti" -#: ../src/iop/basecurve.c:2194 +#: ../src/iop/basecurve.c:2215 msgid "two exposures" msgstr "dy ekspozime" -#: ../src/iop/basecurve.c:2195 +#: ../src/iop/basecurve.c:2216 msgid "three exposures" msgstr "tre ekspozime" -#: ../src/iop/basecurve.c:2196 +#: ../src/iop/basecurve.c:2217 msgid "" "fuse this image stopped up/down a couple of times with itself, to compress " "high dynamic range. expose for the highlights before use." @@ -12678,11 +13189,11 @@ "pasi të jetë ekspozuar lart e poshtë disa herë. ekspozoni reflekset para " "përdorimit." -#: ../src/iop/basecurve.c:2201 +#: ../src/iop/basecurve.c:2222 msgid "how many stops to shift the individual exposures apart" msgstr "numri i stopeve që duhen për të veçuar ekspozimet individualisht" -#: ../src/iop/basecurve.c:2210 +#: ../src/iop/basecurve.c:2231 msgid "" "whether to shift exposure up or down (-1: reduce highlight, +1: reduce " "shadows)" @@ -12690,40 +13201,39 @@ "në qoftë se ekspozimi zhvendoset lart ose poshtë (-1: reduktohen reflekset, " "+1: reduktohen hijet)" -#: ../src/iop/basecurve.c:2215 ../src/iop/tonecurve.c:1187 +#: ../src/iop/basecurve.c:2236 ../src/iop/tonecurve.c:1209 msgid "scale for graph" msgstr "shëmbëllimi grafik" -#: ../src/iop/basicadj.c:136 +#: ../src/iop/basicadj.c:162 msgid "this module is deprecated. please use the quick access panel instead." msgstr "ky modul është i vjetër. lutemi të përdorni më mirë panelin e shpejtë." -#: ../src/iop/basicadj.c:141 +#: ../src/iop/basicadj.c:167 msgid "basic adjustments" msgstr "ndërhyrjet kryesore" -#: ../src/iop/basicadj.c:146 +#: ../src/iop/basicadj.c:172 msgid "apply usual image adjustments" msgstr "aplikoni ndërhyrjet e zakonshme për imazhet" -#: ../src/iop/basicadj.c:147 ../src/iop/bilat.c:102 ../src/iop/bloom.c:81 -#: ../src/iop/blurs.c:93 ../src/iop/borders.c:198 ../src/iop/censorize.c:83 -#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:97 -#: ../src/iop/colorize.c:105 ../src/iop/colormapping.c:153 -#: ../src/iop/colorzones.c:145 ../src/iop/grain.c:434 ../src/iop/highpass.c:78 -#: ../src/iop/levels.c:138 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 -#: ../src/iop/lowpass.c:134 ../src/iop/monochrome.c:98 ../src/iop/soften.c:101 -#: ../src/iop/splittoning.c:103 ../src/iop/velvia.c:105 -#: ../src/iop/vibrance.c:95 ../src/iop/vignette.c:159 -#: ../src/iop/watermark.c:377 +#: ../src/iop/basicadj.c:173 ../src/iop/bilat.c:83 ../src/iop/bloom.c:81 +#: ../src/iop/blurs.c:93 ../src/iop/borders.c:323 ../src/iop/censorize.c:83 +#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:89 +#: ../src/iop/colorize.c:98 ../src/iop/colormapping.c:153 +#: ../src/iop/colorzones.c:146 ../src/iop/grain.c:450 ../src/iop/highpass.c:78 +#: ../src/iop/levels.c:140 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 +#: ../src/iop/lowpass.c:106 ../src/iop/monochrome.c:100 ../src/iop/soften.c:103 +#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:98 ../src/iop/vibrance.c:97 +#: ../src/iop/vignette.c:120 ../src/iop/watermark.c:422 msgid "creative" msgstr "kreativ" -#: ../src/iop/basicadj.c:150 ../src/iop/colorbalancergb.c:188 +#: ../src/iop/basicadj.c:176 ../src/iop/colorbalancergb.c:188 msgid "non-linear, RGB, scene-referred" msgstr "jolinear, RGB, sipas skenës" -#: ../src/iop/basicadj.c:593 +#: ../src/iop/basicadj.c:623 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -12735,39 +13245,39 @@ "nëse vendoset gabim, ngjyrat thuajse të zeza do të dalin nga spektri\n" "duke i shtyrë vlerat RGB në territor negativ" -#: ../src/iop/basicadj.c:601 ../src/iop/exposure.c:1118 +#: ../src/iop/basicadj.c:631 ../src/iop/exposure.c:1136 msgid "adjust the exposure correction" msgstr "korrigjoni ekspozimin" -#: ../src/iop/basicadj.c:605 +#: ../src/iop/basicadj.c:635 msgid "highlight compression adjustment" msgstr "rregulloni komprimimin e reflekseve" -#: ../src/iop/basicadj.c:609 ../src/iop/colisa.c:308 +#: ../src/iop/basicadj.c:639 ../src/iop/colisa.c:302 msgid "contrast adjustment" msgstr "rregulloni kontrastin" -#: ../src/iop/basicadj.c:617 +#: ../src/iop/basicadj.c:647 msgid "middle gray adjustment" msgstr "rregulloni grinë e mesme" -#: ../src/iop/basicadj.c:622 ../src/iop/colisa.c:309 +#: ../src/iop/basicadj.c:652 ../src/iop/colisa.c:303 msgid "brightness adjustment" msgstr "rregulloni shkëlqimin" -#: ../src/iop/basicadj.c:625 +#: ../src/iop/basicadj.c:655 msgid "saturation adjustment" msgstr "rregulloni saturimin" -#: ../src/iop/basicadj.c:628 +#: ../src/iop/basicadj.c:658 msgid "vibrance adjustment" msgstr "rregulloni dinamikën" -#: ../src/iop/basicadj.c:632 +#: ../src/iop/basicadj.c:662 msgid "apply auto exposure based on the entire image" msgstr "aplikoni ekspozimin automatik në bazë të imazhit" -#: ../src/iop/basicadj.c:639 +#: ../src/iop/basicadj.c:669 msgid "" "apply auto exposure based on a region defined by the user\n" "click and drag to draw the area\n" @@ -12777,51 +13287,51 @@ "zona vizatohet me klikim dhe tërheqje mausi\n" "anulohet me klikim djathtas" -#: ../src/iop/basicadj.c:647 +#: ../src/iop/basicadj.c:677 msgid "clip" msgstr "shkurtoj" -#: ../src/iop/basicadj.c:649 +#: ../src/iop/basicadj.c:679 msgid "adjusts clipping value for auto exposure calculation" msgstr "rregulloni vlerat e shkurtuara për të llogaritur ekspozimin automatik" #. local contrast -#: ../src/iop/bilat.c:96 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:551 +#: ../src/iop/bilat.c:77 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:578 msgid "local contrast" msgstr "kontrasti lokal" -#: ../src/iop/bilat.c:101 +#: ../src/iop/bilat.c:82 msgid "manipulate local and global contrast separately" msgstr "manipuloni veças kontrastin lokal dhe global" -#: ../src/iop/bilat.c:103 ../src/iop/bilat.c:105 ../src/iop/bloom.c:82 +#: ../src/iop/bilat.c:84 ../src/iop/bilat.c:86 ../src/iop/bloom.c:82 #: ../src/iop/bloom.c:84 ../src/iop/colisa.c:91 ../src/iop/colisa.c:93 -#: ../src/iop/colorcontrast.c:98 ../src/iop/colorcontrast.c:100 +#: ../src/iop/colorcontrast.c:90 ../src/iop/colorcontrast.c:92 #: ../src/iop/colorcorrection.c:78 ../src/iop/colorcorrection.c:80 -#: ../src/iop/colorize.c:108 ../src/iop/colormapping.c:156 -#: ../src/iop/colorreconstruction.c:138 ../src/iop/colorzones.c:148 -#: ../src/iop/defringe.c:85 ../src/iop/grain.c:435 ../src/iop/grain.c:437 -#: ../src/iop/levels.c:141 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 -#: ../src/iop/monochrome.c:101 ../src/iop/nlmeans.c:96 ../src/iop/nlmeans.c:98 -#: ../src/iop/shadhi.c:200 ../src/iop/tonecurve.c:214 ../src/iop/vibrance.c:98 +#: ../src/iop/colorize.c:101 ../src/iop/colormapping.c:156 +#: ../src/iop/colorreconstruction.c:123 ../src/iop/colorzones.c:149 +#: ../src/iop/defringe.c:85 ../src/iop/grain.c:451 ../src/iop/grain.c:453 +#: ../src/iop/levels.c:143 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 +#: ../src/iop/monochrome.c:103 ../src/iop/nlmeans.c:90 ../src/iop/nlmeans.c:92 +#: ../src/iop/shadhi.c:147 ../src/iop/tonecurve.c:187 ../src/iop/vibrance.c:100 msgid "non-linear, Lab, display-referred" msgstr "jolinear, Lab, sipas ekranit" -#: ../src/iop/bilat.c:104 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 -#: ../src/iop/colorcontrast.c:99 ../src/iop/colorcorrection.c:79 -#: ../src/iop/colorize.c:107 ../src/iop/colormapping.c:155 -#: ../src/iop/colorreconstruction.c:137 ../src/iop/colorzones.c:147 -#: ../src/iop/defringe.c:84 ../src/iop/grain.c:436 ../src/iop/levels.c:140 -#: ../src/iop/monochrome.c:100 ../src/iop/nlmeans.c:97 ../src/iop/shadhi.c:199 -#: ../src/iop/tonecurve.c:213 ../src/iop/vibrance.c:97 +#: ../src/iop/bilat.c:85 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 +#: ../src/iop/colorcontrast.c:91 ../src/iop/colorcorrection.c:79 +#: ../src/iop/colorize.c:100 ../src/iop/colormapping.c:155 +#: ../src/iop/colorreconstruction.c:122 ../src/iop/colorzones.c:148 +#: ../src/iop/defringe.c:84 ../src/iop/grain.c:452 ../src/iop/levels.c:142 +#: ../src/iop/monochrome.c:102 ../src/iop/nlmeans.c:91 ../src/iop/shadhi.c:146 +#: ../src/iop/tonecurve.c:186 ../src/iop/vibrance.c:99 msgid "non-linear, Lab" msgstr "jolinear, Lab" -#: ../src/iop/bilat.c:178 +#: ../src/iop/bilat.c:195 msgid "HDR local tone-mapping" msgstr "rilevoj tonet lokalisht si HDR" -#: ../src/iop/bilat.c:431 +#: ../src/iop/bilat.c:441 msgid "" "the filter used for local contrast enhancement. bilateral is faster but can " "lead to artifacts around edges for extreme settings." @@ -12829,32 +13339,32 @@ "filtri që përdoret për përmirësimin e kontrastit lokal. bilaterali është më " "i shpejtë, por në raste ekstreme shkakton artefakte përqark cepave." -#: ../src/iop/bilat.c:435 ../src/iop/globaltonemap.c:635 +#: ../src/iop/bilat.c:445 ../src/iop/globaltonemap.c:668 msgid "detail" msgstr "detajet" -#: ../src/iop/bilat.c:438 +#: ../src/iop/bilat.c:448 msgid "changes the local contrast" msgstr "ndryshon kontrastin lokal" -#: ../src/iop/bilat.c:453 +#: ../src/iop/bilat.c:463 msgid "feature size of local details (spatial sigma of bilateral filter)" msgstr "madhësia e detajeve lokale (sigma hapësinore e filtrit bilateral)" -#: ../src/iop/bilat.c:461 +#: ../src/iop/bilat.c:471 msgid "L difference to detect edges (range sigma of bilateral filter)" msgstr "" "L diferenca në dallimin e cepave (sigma e intervalit të filtrit bilateral)" -#: ../src/iop/bilat.c:467 +#: ../src/iop/bilat.c:477 msgid "changes the local contrast of highlights" msgstr "ndryshon kontrastin lokal të reflekseve" -#: ../src/iop/bilat.c:473 +#: ../src/iop/bilat.c:483 msgid "changes the local contrast of shadows" msgstr "ndryshon kontrastin lokal të hijeve" -#: ../src/iop/bilat.c:479 +#: ../src/iop/bilat.c:489 msgid "" "defines what counts as mid-tones. lower for better dynamic range compression " "(reduce shadow and highlight contrast), increase for more powerful local " @@ -12864,7 +13374,7 @@ "të diapazonit dinamik (redukton kontrastin e hijeve dhe reflekseve), rriteni " "për një kontrast më të fortë lokal" -#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:396 +#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:423 msgid "surface blur" msgstr "sfumimi sipërfaqor" @@ -12872,23 +13382,23 @@ msgid "denoise (bilateral filter)" msgstr "zbut zhurmën (filtër bilateral)" -#: ../src/iop/bilateral.cc:99 +#: ../src/iop/bilateral.cc:101 msgid "apply edge-aware surface blur to denoise or smoothen textures" msgstr "" "aplikoni sfumimin cepor për të zbutur zhurmën ose për të rrafshuar teksturat" -#: ../src/iop/bilateral.cc:102 ../src/iop/blurs.c:93 -#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:729 -#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/soften.c:103 -#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:107 +#: ../src/iop/bilateral.cc:104 ../src/iop/blurs.c:93 +#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:781 +#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/primaries.c:82 +#: ../src/iop/soften.c:105 ../src/iop/splittoning.c:107 ../src/iop/velvia.c:100 msgid "linear, RGB" msgstr "linear, RGB" -#: ../src/iop/bilateral.cc:136 +#: ../src/iop/bilateral.cc:138 msgid "image too large" msgstr "imazh tepër i madh" -#: ../src/iop/bilateral.cc:137 +#: ../src/iop/bilateral.cc:139 msgid "" "this module is unable to process\n" "images with more than 2 gigapixels.\n" @@ -12898,19 +13408,19 @@ "imazhet me përmasa mbi 2 gigapikselë.\n" "procesi është anashkaluar." -#: ../src/iop/bilateral.cc:351 +#: ../src/iop/bilateral.cc:353 msgid "spatial extent of the gaussian" msgstr "shtrirja hapësinore e Gausit" -#: ../src/iop/bilateral.cc:355 +#: ../src/iop/bilateral.cc:357 msgid "how much to blur red" msgstr "sfumimi i të kuqes" -#: ../src/iop/bilateral.cc:360 +#: ../src/iop/bilateral.cc:362 msgid "how much to blur green" msgstr "sfumimi i të gjelbrës" -#: ../src/iop/bilateral.cc:365 +#: ../src/iop/bilateral.cc:367 msgid "how much to blur blue" msgstr "sfumimi i blusë" @@ -12918,20 +13428,20 @@ msgid "apply Orton effect for a dreamy aetherical look" msgstr "aplikoni efektin Orton për një paraqitje përrallore eterike" -#: ../src/iop/bloom.c:368 ../src/iop/soften.c:369 ../src/libs/camera.c:567 -#: ../src/libs/masks.c:105 +#: ../src/iop/bloom.c:364 ../src/iop/soften.c:364 ../src/libs/camera.c:567 +#: ../src/libs/masks.c:106 msgid "size" msgstr "masa" -#: ../src/iop/bloom.c:370 +#: ../src/iop/bloom.c:366 msgid "the size of bloom" msgstr "masa e rrezatimit" -#: ../src/iop/bloom.c:374 +#: ../src/iop/bloom.c:370 msgid "the threshold of light" msgstr "pragu i dritës" -#: ../src/iop/bloom.c:378 +#: ../src/iop/bloom.c:374 msgid "the strength of bloom" msgstr "forca e rrezatimit" @@ -12947,266 +13457,275 @@ msgid "simulate physically-accurate lens and motion blurs" msgstr "simuloni sfumimin me saktësi fizike prej lëvizjes dhe objektivit" -#: ../src/iop/borders.c:187 +#: ../src/iop/borders.c:312 msgid "framing" msgstr "inkuadrimi" -#: ../src/iop/borders.c:192 +#: ../src/iop/borders.c:317 msgid "borders|enlarge canvas|expand canvas" msgstr "borduras|zmadhoj kanavacën|zgjeroj kanavacën" -#: ../src/iop/borders.c:197 +#: ../src/iop/borders.c:322 msgid "add solid borders or margins around the picture" msgstr "shtoni bordura ose anësore uniforme përqark fotos" -#: ../src/iop/borders.c:199 ../src/iop/borders.c:201 ../src/iop/lut3d.c:144 +#: ../src/iop/borders.c:324 ../src/iop/borders.c:326 ../src/iop/lut3d.c:145 msgid "linear or non-linear, RGB, display-referred" msgstr "linear ose jolinear, RGB, sipas ekranit" -#: ../src/iop/borders.c:727 +#: ../src/iop/borders.c:737 msgid "15:10 postcard white" msgstr "15:10 kartolinë e bardhë" -#: ../src/iop/borders.c:732 +#: ../src/iop/borders.c:742 msgid "15:10 postcard black" msgstr "15:10 kartolinë e zezë" -#: ../src/iop/borders.c:942 -msgid "size of the border in percent of the full image" -msgstr "përmasat e bordurës në raport me imazhin e plotë" +#: ../src/iop/borders.c:948 +msgid "which dimension to use for the size calculation" +msgstr "dimensioni që përdoret për llogaritjen e përmasave" + +#: ../src/iop/borders.c:954 +msgid "size of the border in percent of the chosen basis" +msgstr "përmasat e bordurës në raport me bazën e zgjedhur" -#: ../src/iop/borders.c:944 ../src/iop/clipping.c:2218 ../src/iop/crop.c:1224 +#: ../src/iop/borders.c:956 ../src/iop/clipping.c:2271 ../src/iop/crop.c:1208 msgid "aspect" msgstr "përmasat" -#: ../src/iop/borders.c:945 +#: ../src/iop/borders.c:957 msgid "" -"select the aspect ratio (right click on slider below to type your own w:h)" -msgstr "përzgjidhni raportin përmasor (gjer:gjat vendoset me klikim djathtas)" +"select the aspect ratio\n" +"(right click on slider below to type your own w:h)" +msgstr "" +"përzgjidhni raportin përmasor\n" +"(gjer:gjat vendoset me klikim djathtas mbi shkarës)" -#: ../src/iop/borders.c:948 +#: ../src/iop/borders.c:961 msgid "3:1" msgstr "3:1" -#: ../src/iop/borders.c:949 +#: ../src/iop/borders.c:962 msgid "95:33" msgstr "95:33" -#: ../src/iop/borders.c:950 +#: ../src/iop/borders.c:963 msgid "CinemaScope 2.39:1" msgstr "CinemaScope 2.39:1" -#: ../src/iop/borders.c:951 +#: ../src/iop/borders.c:964 msgid "2:1" msgstr "2:1" -#: ../src/iop/borders.c:952 +#: ../src/iop/borders.c:965 msgid "16:9" msgstr "16:9" -#: ../src/iop/borders.c:953 +#: ../src/iop/borders.c:966 msgid "5:3" msgstr "5:3" -#: ../src/iop/borders.c:954 +#: ../src/iop/borders.c:967 msgid "US Legal 8.5x14" msgstr "US Legal 8.5x14" -#: ../src/iop/borders.c:955 ../src/iop/clipping.c:2131 ../src/iop/crop.c:1128 +#: ../src/iop/borders.c:968 ../src/iop/clipping.c:2184 ../src/iop/crop.c:1112 msgid "golden cut" msgstr "prerje e artë" -#: ../src/iop/borders.c:956 +#: ../src/iop/borders.c:969 msgid "16:10" msgstr "16:10" -#: ../src/iop/borders.c:957 +#: ../src/iop/borders.c:970 msgid "3:2 (4x6, 10x15cm)" msgstr "3:2 (4x6, 10x15cm)" -#: ../src/iop/borders.c:959 +#: ../src/iop/borders.c:972 msgid "DIN" msgstr "DIN" -#: ../src/iop/borders.c:960 +#: ../src/iop/borders.c:973 msgid "7:5" msgstr "7:5" -#: ../src/iop/borders.c:961 +#: ../src/iop/borders.c:974 msgid "4:3" msgstr "4:3" -#: ../src/iop/borders.c:962 +#: ../src/iop/borders.c:975 msgid "US Letter 8.5x11" msgstr "US Letter 8.5x11" -#: ../src/iop/borders.c:963 +#: ../src/iop/borders.c:976 msgid "14:11" msgstr "14:11" -#: ../src/iop/borders.c:964 +#: ../src/iop/borders.c:977 msgid "5:4 (8x10)" msgstr "5:4 (8x10)" -#: ../src/iop/borders.c:965 ../src/iop/clipping.c:2121 ../src/iop/crop.c:1118 -#: ../src/libs/filtering.c:301 ../src/libs/filters/ratio.c:126 -#: ../src/libs/histogram.c:141 +#: ../src/iop/borders.c:978 ../src/iop/clipping.c:2174 ../src/iop/crop.c:1102 +#: ../src/libs/filtering.c:307 ../src/libs/filters/ratio.c:126 +#: ../src/libs/histogram.c:118 msgid "square" msgstr "katror" -#: ../src/iop/borders.c:966 +#: ../src/iop/borders.c:979 msgid "constant border" msgstr "bordurë konstante" -#: ../src/iop/borders.c:967 ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:980 ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "custom..." msgstr "personalizoj..." -#: ../src/iop/borders.c:972 -msgid "set the custom aspect ratio (right click to enter number or w:h)" +#: ../src/iop/borders.c:984 +msgid "" +"set the custom aspect ratio\n" +"(right click to enter number or w:h)" msgstr "" -"personalizoni raportin përmasor (gjer:gjat ose numri vendoset me klikim " -"djathtas)" +"personalizoni raportin përmasor\n" +"(numri ose gjer:gjat vendosen me klikim djathtas)" -#: ../src/iop/borders.c:975 +#: ../src/iop/borders.c:989 msgid "aspect ratio orientation of the image with border" msgstr "orientimi i imazhit me bordurën" -#: ../src/iop/borders.c:977 +#: ../src/iop/borders.c:991 msgid "horizontal position" msgstr "pozicioni horizontal" -#: ../src/iop/borders.c:978 +#: ../src/iop/borders.c:992 msgid "" -"select the horizontal position ratio relative to top or right click and type " -"your own (y:h)" +"select the horizontal position ratio relative to top\n" +"(right click on slider below to type your own x:w)" msgstr "" -"përzgjidhni pozicionin horizontal në varësi të gjatësisë ose vendoseni vetë " -"me klikim djathtas (y:gjat)" +"përzgjidhni pozicionin horizontal në varësi të kreut\n" +"(vendoseni vetë x:gjer me klikim djathtas mbi shkarës)" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "center" msgstr "qendër" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "1/3" msgstr "1/3" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "3/8" msgstr "3/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "5/8" msgstr "5/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "2/3" msgstr "2/3" -#: ../src/iop/borders.c:986 +#: ../src/iop/borders.c:1000 msgid "custom horizontal position" msgstr "pozicioni horizontal i personalizuar" -#: ../src/iop/borders.c:988 +#: ../src/iop/borders.c:1002 msgid "vertical position" msgstr "pozicioni vertikal" -#: ../src/iop/borders.c:989 +#: ../src/iop/borders.c:1003 msgid "" -"select the vertical position ratio relative to left or right click and type " -"your own (x:w)" +"select the vertical position ratio relative to left\n" +"(right click on slider below to type your own y:h)" msgstr "" -"përzgjidhni pozicionin vertikal në varësi të anës majtas ose vendoseni vetë " -"me klikim djathtas (x:gjer)" +"përzgjidhni pozicionin vertikal në varësi të anës majtas\n" +"(vendoseni vetë y:gjat me klikim djathtas mbi shkarës)" -#: ../src/iop/borders.c:997 +#: ../src/iop/borders.c:1011 msgid "custom vertical position" msgstr "pozicioni vertikal i personalizuar" -#: ../src/iop/borders.c:1002 +#: ../src/iop/borders.c:1017 msgid "size of the frame line in percent of min border width" msgstr "përmasat e vijës së kornizës në raport me gjerësinë min. të bordurës" -#: ../src/iop/borders.c:1007 +#: ../src/iop/borders.c:1023 msgid "offset of the frame line beginning on picture side" msgstr "ofseti i vijës së kornizës prej anës së fotos" -#: ../src/iop/borders.c:1014 ../src/iop/borders.c:1023 +#: ../src/iop/borders.c:1033 ../src/iop/borders.c:1044 msgid "border color" msgstr "ngjyra e bordurës" -#: ../src/iop/borders.c:1018 +#: ../src/iop/borders.c:1037 msgid "select border color" msgstr "përzgjedh ngjyrën e bordurës" -#: ../src/iop/borders.c:1022 +#: ../src/iop/borders.c:1043 msgid "pick border color from image" msgstr "mblidhni ngjyrën e bordurës nga imazhi" -#: ../src/iop/borders.c:1023 ../src/iop/borders.c:1036 -#: ../src/iop/colorzones.c:2415 ../src/iop/colorzones.c:2425 -#: ../src/iop/negadoctor.c:848 ../src/iop/negadoctor.c:915 -#: ../src/iop/negadoctor.c:953 ../src/iop/rgbcurve.c:1369 -#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1026 -#: ../src/iop/rgblevels.c:1032 ../src/iop/rgblevels.c:1038 +#: ../src/iop/borders.c:1044 ../src/iop/borders.c:1061 +#: ../src/iop/colorzones.c:2662 ../src/iop/colorzones.c:2677 +#: ../src/iop/negadoctor.c:867 ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:972 ../src/iop/rgbcurve.c:1369 +#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1075 +#: ../src/iop/rgblevels.c:1083 ../src/iop/rgblevels.c:1091 msgid "pickers" msgstr "pipetat" -#: ../src/iop/borders.c:1027 ../src/iop/borders.c:1036 +#: ../src/iop/borders.c:1049 ../src/iop/borders.c:1061 msgid "frame line color" msgstr "ngjyra e vijës së kornizës" -#: ../src/iop/borders.c:1031 +#: ../src/iop/borders.c:1054 msgid "select frame line color" msgstr "përzgjidhni ngjyrën e vijës së kornizës" -#: ../src/iop/borders.c:1035 +#: ../src/iop/borders.c:1060 msgid "pick frame line color from image" msgstr "mblidhni ngjyrën e vijës së kornizës nga imazhi" #. make sure you put all your translatable strings into _() ! -#: ../src/iop/cacorrect.c:72 +#: ../src/iop/cacorrect.c:78 msgid "raw chromatic aberrations" msgstr "aberracionet kromatike bruto" -#: ../src/iop/cacorrect.c:77 +#: ../src/iop/cacorrect.c:83 msgid "correct chromatic aberrations for Bayer sensors" msgstr "korrigjoni aberracionet kromatike për sensorët Bayer" -#: ../src/iop/cacorrect.c:79 ../src/iop/cacorrect.c:81 +#: ../src/iop/cacorrect.c:85 ../src/iop/cacorrect.c:87 #: ../src/iop/cacorrectrgb.c:171 ../src/iop/cacorrectrgb.c:173 #: ../src/iop/demosaic.c:294 ../src/iop/highlights.c:180 -#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:74 -#: ../src/iop/hotpixels.c:76 ../src/iop/rawdenoise.c:131 -#: ../src/iop/rawdenoise.c:133 ../src/iop/rawprepare.c:159 -#: ../src/iop/rawprepare.c:161 ../src/iop/temperature.c:213 -#: ../src/iop/temperature.c:215 +#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:76 +#: ../src/iop/hotpixels.c:78 ../src/iop/rawdenoise.c:145 +#: ../src/iop/rawdenoise.c:147 ../src/iop/rawprepare.c:175 +#: ../src/iop/rawprepare.c:177 ../src/iop/temperature.c:221 +#: ../src/iop/temperature.c:223 msgid "linear, raw, scene-referred" msgstr "linear, bruto, sipas skenës" -#: ../src/iop/cacorrect.c:80 ../src/iop/cacorrectrgb.c:172 -#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:121 -#: ../src/iop/rawdenoise.c:132 ../src/iop/rawprepare.c:160 -#: ../src/iop/temperature.c:214 +#: ../src/iop/cacorrect.c:86 ../src/iop/cacorrectrgb.c:172 +#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:138 +#: ../src/iop/rawdenoise.c:146 ../src/iop/rawprepare.c:176 +#: ../src/iop/temperature.c:222 msgid "linear, raw" msgstr "linear, bruto" -#: ../src/iop/cacorrect.c:1405 +#: ../src/iop/cacorrect.c:1424 msgid "iteration runs, default is twice" msgstr "numri i përsëritjeve, standardi është dy" -#: ../src/iop/cacorrect.c:1408 +#: ../src/iop/cacorrect.c:1427 msgid "activate colorshift correction for blue & red channels" msgstr "aktivizoni zhvendosjen e ngjyrave në kanalet blu dhe kuqe" -#: ../src/iop/cacorrect.c:1415 +#: ../src/iop/cacorrect.c:1434 msgid "" "automatic chromatic aberration correction\n" -"only for Bayer raw files" +"only for Bayer raw files with 3 color channels" msgstr "" "vetëkorrigjimi i aberracioneve kromatike\n" -"vetëm për imazhet Bayer bruto" +"vetëm për imazhet Bayer bruto me tre kanale ngjyrash" #: ../src/iop/cacorrectrgb.c:164 ../src/iop/defringe.c:76 msgid "chromatic aberrations" @@ -13216,7 +13735,7 @@ msgid "correct chromatic aberrations" msgstr "korrigjoni aberracionet kromatike" -#: ../src/iop/cacorrectrgb.c:743 +#: ../src/iop/cacorrectrgb.c:745 msgid "" "channel used as a reference to\n" "correct the other channels.\n" @@ -13232,11 +13751,11 @@ "provoni ta ndryshoni kanalin\n" "nëse vëreni artefakte." -#: ../src/iop/cacorrectrgb.c:750 +#: ../src/iop/cacorrectrgb.c:752 msgid "increase for stronger correction" msgstr "rriteni për të shtuar korrigjimin" -#: ../src/iop/cacorrectrgb.c:752 +#: ../src/iop/cacorrectrgb.c:754 msgid "" "balance between smoothing colors\n" "and preserving them.\n" @@ -13248,12 +13767,12 @@ "vlerat e larta mund të shkaktojnë\n" "dritësim të tepruar." -#: ../src/iop/cacorrectrgb.c:757 +#: ../src/iop/cacorrectrgb.c:759 msgctxt "section" msgid "advanced parameters" msgstr "parametrat e avancuar" -#: ../src/iop/cacorrectrgb.c:759 +#: ../src/iop/cacorrectrgb.c:761 msgid "" "correction mode to use.\n" "can help with multiple\n" @@ -13270,7 +13789,7 @@ "errësimi e korrigjon mirë\n" "aberracionin kromatik blu." -#: ../src/iop/cacorrectrgb.c:767 +#: ../src/iop/cacorrectrgb.c:769 msgid "" "runs an iterative approach\n" "with several radii.\n" @@ -13305,35 +13824,35 @@ msgid "special, RGB, scene-referred" msgstr "special, RGB, sipas skenës" -#: ../src/iop/censorize.c:412 +#: ../src/iop/censorize.c:404 msgid "radius_1" msgstr "rrezja_1" -#: ../src/iop/censorize.c:414 +#: ../src/iop/censorize.c:406 msgid "pixelate" msgstr "pikseloj" -#: ../src/iop/censorize.c:416 +#: ../src/iop/censorize.c:408 msgid "radius_2" msgstr "rrezja_2" -#: ../src/iop/censorize.c:418 +#: ../src/iop/censorize.c:410 msgid "noise" msgstr "zhurma" -#: ../src/iop/censorize.c:420 +#: ../src/iop/censorize.c:412 msgid "radius of gaussian blur before pixellation" msgstr "rrezja e sfumimit gausian para pikselimit" -#: ../src/iop/censorize.c:421 +#: ../src/iop/censorize.c:413 msgid "radius of gaussian blur after pixellation" msgstr "rrezja e sfumimit gausian pas pikselimit" -#: ../src/iop/censorize.c:422 +#: ../src/iop/censorize.c:414 msgid "radius of the intermediate pixellation" msgstr "rrezja e pikselimit të ndërmjetëm" -#: ../src/iop/censorize.c:423 +#: ../src/iop/censorize.c:415 msgid "amount of noise to add at the end" msgstr "sasia e zhurmës që shtohet në fund" @@ -13348,7 +13867,7 @@ "ky modul është i vjetër. lutemi të përdorni më mirë modulin për kalibrimin e " "ngjyrave." -#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:229 +#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:230 msgid "" "perform color space corrections\n" "such as white balance, channels mixing\n" @@ -13358,168 +13877,168 @@ "balanconi të bardhat, miksoni kanalet\n" "dhe imitoni filmat monokromatikë" -#: ../src/iop/channelmixer.c:614 +#: ../src/iop/channelmixer.c:633 msgid "destination" msgstr "destinacioni" -#: ../src/iop/channelmixer.c:621 +#: ../src/iop/channelmixer.c:640 msgctxt "channelmixer" msgid "gray" msgstr "gri" -#: ../src/iop/channelmixer.c:627 +#: ../src/iop/channelmixer.c:646 msgid "amount of red channel in the output channel" msgstr "sasia e kanalit kuqe në output" -#: ../src/iop/channelmixer.c:633 +#: ../src/iop/channelmixer.c:652 msgid "amount of green channel in the output channel" msgstr "sasia e kanalit gjelbër në output" -#: ../src/iop/channelmixer.c:639 +#: ../src/iop/channelmixer.c:658 msgid "amount of blue channel in the output channel" msgstr "sasia e kanalit blu në output" -#: ../src/iop/channelmixer.c:655 ../src/iop/channelmixerrgb.c:524 +#: ../src/iop/channelmixer.c:674 ../src/iop/channelmixerrgb.c:588 msgid "swap R and B" msgstr "këmbej R dhe B" -#: ../src/iop/channelmixer.c:661 ../src/iop/channelmixerrgb.c:498 +#: ../src/iop/channelmixer.c:680 ../src/iop/channelmixerrgb.c:562 msgid "swap G and B" msgstr "këmbej G dhe B" -#: ../src/iop/channelmixer.c:667 +#: ../src/iop/channelmixer.c:686 msgid "color contrast boost" msgstr "amplifikoj kontrastin e ngjyrave" -#: ../src/iop/channelmixer.c:673 +#: ../src/iop/channelmixer.c:692 msgid "color details boost" msgstr "amplifikoj detajet e ngjyrave" -#: ../src/iop/channelmixer.c:679 +#: ../src/iop/channelmixer.c:698 msgid "color artifacts boost" msgstr "amplifikoj artefaktet e ngjyrave" -#: ../src/iop/channelmixer.c:685 +#: ../src/iop/channelmixer.c:704 msgid "B/W luminance-based" msgstr "B/Z me bazë luminancën" -#: ../src/iop/channelmixer.c:691 +#: ../src/iop/channelmixer.c:710 msgid "B/W artifacts boost" msgstr "amplifikoj artefaktet B/Z" -#: ../src/iop/channelmixer.c:697 +#: ../src/iop/channelmixer.c:716 msgid "B/W smooth skin" msgstr "B/Z me fytyrë të lëmuar" -#: ../src/iop/channelmixer.c:703 +#: ../src/iop/channelmixer.c:722 msgid "B/W blue artifacts reduce" msgstr "ul artefaktet blu në B/Z" -#: ../src/iop/channelmixer.c:710 +#: ../src/iop/channelmixer.c:729 msgid "B/W Ilford Delta 100-400" msgstr "B/Z Ilford Delta 100-400" -#: ../src/iop/channelmixer.c:717 +#: ../src/iop/channelmixer.c:736 msgid "B/W Ilford Delta 3200" msgstr "B/Z Ilford Delta 3200" -#: ../src/iop/channelmixer.c:724 +#: ../src/iop/channelmixer.c:743 msgid "B/W Ilford FP4" msgstr "B/Z Ilford FP4" -#: ../src/iop/channelmixer.c:731 +#: ../src/iop/channelmixer.c:750 msgid "B/W Ilford HP5" msgstr "B/Z Ilford HP5" -#: ../src/iop/channelmixer.c:738 +#: ../src/iop/channelmixer.c:757 msgid "B/W Ilford SFX" msgstr "B/Z Ilford SFX" -#: ../src/iop/channelmixer.c:745 +#: ../src/iop/channelmixer.c:764 msgid "B/W Kodak T-Max 100" msgstr "B/Z Kodak T-Max 100" -#: ../src/iop/channelmixer.c:752 +#: ../src/iop/channelmixer.c:771 msgid "B/W Kodak T-max 400" msgstr "B/Z Kodak T-max 400" -#: ../src/iop/channelmixer.c:759 +#: ../src/iop/channelmixer.c:778 msgid "B/W Kodak Tri-X 400" msgstr "B/Z Kodak Tri-X 400" -#: ../src/iop/channelmixerrgb.c:219 +#: ../src/iop/channelmixerrgb.c:220 msgid "color calibration" msgstr "kalibrimi i ngjyrave" -#: ../src/iop/channelmixerrgb.c:224 +#: ../src/iop/channelmixerrgb.c:225 msgid "channel mixer|white balance|monochrome" msgstr "mikseri i kanaleve|balancimi i bardhësisë|monokromatik" -#: ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:235 msgid "linear, RGB or XYZ" msgstr "linear, RGB ose XYZ" -#: ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:460 msgid "B&W: luminance-based" msgstr "B/Z: me bazë luminancën" -#: ../src/iop/channelmixerrgb.c:431 +#: ../src/iop/channelmixerrgb.c:495 msgid "B&W: ILFORD HP5+" msgstr "B/Z: ILFORD HP5+" -#: ../src/iop/channelmixerrgb.c:440 +#: ../src/iop/channelmixerrgb.c:504 msgid "B&W: ILFORD DELTA 100" msgstr "B/Z: ILFORD DELTA 100" -#: ../src/iop/channelmixerrgb.c:450 +#: ../src/iop/channelmixerrgb.c:514 msgid "B&W: ILFORD DELTA 400 - 3200" msgstr "B/Z: ILFORD DELTA 400 -3200" -#: ../src/iop/channelmixerrgb.c:459 +#: ../src/iop/channelmixerrgb.c:523 msgid "B&W: ILFORD FP4+" msgstr "B/Z: ILFORD FP4+" -#: ../src/iop/channelmixerrgb.c:468 +#: ../src/iop/channelmixerrgb.c:532 msgid "B&W: Fuji Acros 100" msgstr "B/Z: Fuji Acros 100" -#: ../src/iop/channelmixerrgb.c:485 +#: ../src/iop/channelmixerrgb.c:549 msgid "basic channel mixer" msgstr "miksoj thjesht kanalet" -#: ../src/iop/channelmixerrgb.c:511 +#: ../src/iop/channelmixerrgb.c:575 msgid "swap G and R" msgstr "këmbej G dhe R" -#: ../src/iop/channelmixerrgb.c:1869 +#: ../src/iop/channelmixerrgb.c:1926 msgid "(daylight)" msgstr "(dritë ditore)" -#: ../src/iop/channelmixerrgb.c:1871 +#: ../src/iop/channelmixerrgb.c:1928 msgid "(black body)" msgstr "(trup i zi)" -#: ../src/iop/channelmixerrgb.c:1873 +#: ../src/iop/channelmixerrgb.c:1930 msgid "(invalid)" msgstr "(e pasaktë)" -#: ../src/iop/channelmixerrgb.c:1877 ../src/iop/channelmixerrgb.c:1935 +#: ../src/iop/channelmixerrgb.c:1934 ../src/iop/channelmixerrgb.c:1992 msgid "very good" msgstr "shumë mirë" -#: ../src/iop/channelmixerrgb.c:1879 ../src/iop/channelmixerrgb.c:1937 +#: ../src/iop/channelmixerrgb.c:1936 ../src/iop/channelmixerrgb.c:1994 msgid "good" msgstr "mirë" -#: ../src/iop/channelmixerrgb.c:1881 ../src/iop/channelmixerrgb.c:1939 +#: ../src/iop/channelmixerrgb.c:1938 ../src/iop/channelmixerrgb.c:1996 msgid "passable" msgstr "e pranueshme" -#: ../src/iop/channelmixerrgb.c:1883 ../src/iop/channelmixerrgb.c:1941 +#: ../src/iop/channelmixerrgb.c:1940 ../src/iop/channelmixerrgb.c:1998 msgid "bad" msgstr "e keqe" -#: ../src/iop/channelmixerrgb.c:1890 +#: ../src/iop/channelmixerrgb.c:1947 #, c-format msgid "" "\n" @@ -13556,7 +14075,7 @@ "kompensimi i ekspozimit: \t%+.2f EV\n" "ofseti i të zezës: \t%+.4f" -#: ../src/iop/channelmixerrgb.c:1946 +#: ../src/iop/channelmixerrgb.c:2003 #, c-format msgid "" "\n" @@ -13575,27 +14094,43 @@ "kompensimi i ekspozimit: \t%+.2f EV\n" "ofseti i të zezës: \t%+.4f" -#: ../src/iop/channelmixerrgb.c:1978 +#: ../src/iop/channelmixerrgb.c:2054 msgid "double CAT applied" msgstr "aplikoi dyfishin e CAT" -#: ../src/iop/channelmixerrgb.c:1979 +#: ../src/iop/channelmixerrgb.c:2055 msgid "" "you have 2 instances or more of color calibration,\n" -"all performing chromatic adaptation.\n" -"this can lead to inconsistencies, unless you\n" +"all providing chromatic adaptation.\n" +"this can lead to inconsistencies unless you\n" "use them with masks or know what you are doing." msgstr "" "keni 2 a më shumë instanca për kalibrimin e ngjyrave\n" "dhe të gjitha po kryejnë adaptimin kromatik.\n" -"kjo sjell paqëndrueshmëri nëse nuk i përdorni\n" -"me maskat ose nuk e dini se çfarë po bëni." +"kjo sjell paqëndrueshmëri nëse nuk përdorni maskat\n" +"ose nuk e dini se çfarë po bëni." -#: ../src/iop/channelmixerrgb.c:1991 +#: ../src/iop/channelmixerrgb.c:2071 +msgid "white balance applied twice" +msgstr "balancimi i bardhësisë aplikohet dy herë" + +#: ../src/iop/channelmixerrgb.c:2072 +msgid "" +"the color calibration module is enabled and already provides\n" +"chromatic adaptation.\n" +"set the white balance here to camera reference (D65)\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"moduli për kalibrimin e ngjyrave është aktivizuar\n" +"dhe po mundëson adaptimin kromatik.\n" +"caktoni bardhësinë duke iu referuar kamerës (D65)\n" +"ose çaktivizoni adaptimin kromatik gjatë kalibrimit." + +#: ../src/iop/channelmixerrgb.c:2080 msgid "white balance module error" msgstr "problem me modulin e balancimit të bardhësisë" -#: ../src/iop/channelmixerrgb.c:1992 +#: ../src/iop/channelmixerrgb.c:2081 msgid "" "the white balance module is not using the camera\n" "reference illuminant, which will cause issues here\n" @@ -13603,24 +14138,52 @@ "or disable chromatic adaptation here." msgstr "" "moduli për balancimin e bardhësisë nuk po i referohet\n" -"iluminantit të kamerës dhe ky është problem për\n" +"iluminantit të kamerës dhe kjo sjell probleme me\n" "adaptimin kromatik. ose vendoseni si referencë,\n" -"ose çaktivizoni adaptimin kromatik të këtushëm." +"ose çaktivizoni adaptimin kromatik." -#: ../src/iop/channelmixerrgb.c:2083 +#: ../src/iop/channelmixerrgb.c:2095 ../src/iop/channelmixerrgb.c:2104 +msgid "white balance missing" +msgstr "mungon balancimi i bardhësisë" + +#: ../src/iop/channelmixerrgb.c:2096 +msgid "" +"this module is not providing a valid reference illuminant\n" +"causing chromatic adaptation issues in color calibration.\n" +"enable this module and either set it to reference\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"moduli nuk po merr si referencë iluminantin e saktë,\n" +"duke sjellë probleme kalibrimi me adaptimin kromatik.\n" +"moduli duhet aktivizuar dhe të vendoset si referencë\n" +"ose të çaktivizohet adaptimi gjatë kalibrimit të ngjyrave." + +#: ../src/iop/channelmixerrgb.c:2105 +msgid "" +"the white balance module is not providing a valid reference\n" +"illuminant causing issues with chromatic adaptation here.\n" +"enable white balance and either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" +"moduli për balancimin e bardhësisë nuk po i referohet\n" +"iluminantit të kamerës, duke sjellë probleme me\n" +"adaptimin kromatik. balancimi duhet aktivizuar si\n" +"referencë ose të çaktivizohet adaptimi kromatik." + +#: ../src/iop/channelmixerrgb.c:2196 msgid "auto-detection of white balance completed" msgstr "mbaroi vetëdallimi i balancimit të bardhësisë" -#: ../src/iop/channelmixerrgb.c:2236 +#: ../src/iop/channelmixerrgb.c:2346 msgid "channelmixerrgb works only on RGB input" msgstr "mikserikanalevergb punon vetëm me input RGB" -#: ../src/iop/channelmixerrgb.c:3621 +#: ../src/iop/channelmixerrgb.c:3692 #, c-format msgid "CCT: %.0f K (daylight)" msgstr "CCT: %.0f K (dritë ditore)" -#: ../src/iop/channelmixerrgb.c:3624 +#: ../src/iop/channelmixerrgb.c:3695 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a daylight spectrum,\n" @@ -13630,12 +14193,12 @@ "iluminanti mund të modelohet me spektrin e një drite ditore,\n" "që temperatura të jetë e duhura dhe me dobi për iluminantin D." -#: ../src/iop/channelmixerrgb.c:3630 +#: ../src/iop/channelmixerrgb.c:3701 #, c-format msgid "CCT: %.0f K (black body)" msgstr "CCT: %.0f K (trup i zi)" -#: ../src/iop/channelmixerrgb.c:3633 +#: ../src/iop/channelmixerrgb.c:3704 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a black body spectrum,\n" @@ -13645,12 +14208,12 @@ "iluminanti mund të modelohet me spektrin e një trupi të zi,\n" "që temperatura të jetë e duhura dhe me dobi për iluminantin plankian." -#: ../src/iop/channelmixerrgb.c:3639 +#: ../src/iop/channelmixerrgb.c:3710 #, c-format msgid "CCT: %.0f K (invalid)" msgstr "CCT: %.0f K (e pasaktë)" -#: ../src/iop/channelmixerrgb.c:3642 +#: ../src/iop/channelmixerrgb.c:3713 msgid "" "approximated correlated color temperature.\n" "this illuminant cannot be accurately modeled by a daylight or black body " @@ -13664,12 +14227,12 @@ "ndaj nuk ka temperaturën e duhur dhe dhe duhet përdorur një iluminant i " "personalizuar." -#: ../src/iop/channelmixerrgb.c:3651 +#: ../src/iop/channelmixerrgb.c:3722 #, c-format msgid "CCT: undefined" msgstr "CCT: e papërcaktuar" -#: ../src/iop/channelmixerrgb.c:3654 +#: ../src/iop/channelmixerrgb.c:3725 msgid "" "the approximated correlated color temperature\n" "cannot be computed at all so you need to use a custom illuminant." @@ -13677,16 +14240,16 @@ "temperatura korrelative e përafërt e ngjyrave\n" "nuk kalkulohet, ndaj duhet përdorur një iluminant i personalizuar." -#: ../src/iop/channelmixerrgb.c:3967 +#: ../src/iop/channelmixerrgb.c:4038 msgid "white balance successfully extracted from raw image" msgstr "nxori me sukses balancimin e bardhësisë nga imazhi bruto" #. We need to recompute only the full preview -#: ../src/iop/channelmixerrgb.c:3973 +#: ../src/iop/channelmixerrgb.c:4044 msgid "auto-detection of white balance started…" msgstr "filloi vetëdallimi i balancimit të bardhësisë…" -#: ../src/iop/channelmixerrgb.c:4078 +#: ../src/iop/channelmixerrgb.c:4149 msgid "" "color calibration: the sum of the gray channel parameters is zero, " "normalization will be disabled." @@ -13695,7 +14258,7 @@ "normalizimi do të çaktivizohet." #. Write report in GUI -#: ../src/iop/channelmixerrgb.c:4126 +#: ../src/iop/channelmixerrgb.c:4194 #, c-format msgid "" "L: \t%.1f %%\n" @@ -13706,27 +14269,27 @@ "h: \t%.1f °\n" "c: \t%.1f" -#: ../src/iop/channelmixerrgb.c:4394 ../src/iop/clipping.c:2087 -#: ../src/iop/colorbalancergb.c:1873 ../src/iop/filmicrgb.c:4419 -#: ../src/iop/negadoctor.c:829 ../src/iop/toneequal.c:3319 -#: ../src/libs/image.c:460 ../src/views/lighttable.c:1258 +#: ../src/iop/channelmixerrgb.c:4462 ../src/iop/clipping.c:2140 +#: ../src/iop/colorbalancergb.c:1944 ../src/iop/filmicrgb.c:4483 +#: ../src/iop/negadoctor.c:848 ../src/iop/toneequal.c:3372 +#: ../src/libs/image.c:490 ../src/views/lighttable.c:1258 msgid "page" msgstr "faqja" #. Page CAT -#: ../src/iop/channelmixerrgb.c:4397 +#: ../src/iop/channelmixerrgb.c:4465 msgid "CAT" msgstr "CAT" -#: ../src/iop/channelmixerrgb.c:4398 +#: ../src/iop/channelmixerrgb.c:4466 msgid "chromatic adaptation transform" msgstr "transformimi i adaptimit kromatik" -#: ../src/iop/channelmixerrgb.c:4400 +#: ../src/iop/channelmixerrgb.c:4468 msgid "adaptation" msgstr "adaptimi" -#: ../src/iop/channelmixerrgb.c:4403 +#: ../src/iop/channelmixerrgb.c:4471 msgid "" "choose the method to adapt the illuminant\n" "and the colorspace in which the module works: \n" @@ -13746,7 +14309,7 @@ "• XYZ është shëmbëllimi në hapësirën XYZ. përgjithësisht nuk rekomandohet.\n" "• asnjë çaktivizon çdolloj adaptimi dhe punon me proceset e linjës RGB." -#: ../src/iop/channelmixerrgb.c:4423 +#: ../src/iop/channelmixerrgb.c:4491 msgid "" "this is the color of the scene illuminant before chromatic adaptation\n" "this color will be turned into pure white by the adaptation." @@ -13754,27 +14317,27 @@ "kjo është ngjyra e iluminantit të skenës para adaptimit kromatik\n" "adaptimi do të kthejë ngjyrën e bardhë puro." -#: ../src/iop/channelmixerrgb.c:4431 +#: ../src/iop/channelmixerrgb.c:4499 msgid "picker" msgstr "pipeta" -#: ../src/iop/channelmixerrgb.c:4433 ../src/iop/temperature.c:2047 +#: ../src/iop/channelmixerrgb.c:4501 ../src/iop/temperature.c:2015 msgid "set white balance to detected from area" msgstr "caktoni bardhësinë duke u nisur nga zona" -#: ../src/iop/channelmixerrgb.c:4437 ../src/iop/negadoctor.c:953 +#: ../src/iop/channelmixerrgb.c:4505 ../src/iop/negadoctor.c:972 msgid "illuminant" msgstr "iluminanti" -#: ../src/iop/channelmixerrgb.c:4443 ../src/iop/temperature.c:2107 +#: ../src/iop/channelmixerrgb.c:4511 ../src/iop/temperature.c:2072 msgid "temperature" msgstr "temperatura" -#: ../src/iop/channelmixerrgb.c:4474 -msgid "spot color mapping" -msgstr "rilevimi me përpikëri i ngjyrave" +#: ../src/iop/channelmixerrgb.c:4542 +msgid "area color mapping" +msgstr "rilevimi i ngjyrave në zonë" -#: ../src/iop/channelmixerrgb.c:4480 +#: ../src/iop/channelmixerrgb.c:4548 msgid "" "define a target chromaticity (hue and chroma) for a particular region of the " "image (the control sample), which you then match against the same target " @@ -13788,17 +14351,17 @@ "sipërfaqe të palëvizshme, të ndriçuar njëtrajtësisht, në serinë e imazheve " "tuaja." -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/channelmixerrgb.c:4502 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/channelmixerrgb.c:4573 +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/channelmixerrgb.c:4570 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/channelmixerrgb.c:4641 msgid "mapping" msgstr "rilevimi" -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/exposure.c:1188 -msgid "spot mode" -msgstr "mënyra e përpiktë" +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/exposure.c:1206 +msgid "area mode" +msgstr "metoda e zonës" -#: ../src/iop/channelmixerrgb.c:4488 +#: ../src/iop/channelmixerrgb.c:4556 msgid "" "\"correction\" automatically adjust the illuminant\n" "such that the input color is mapped to the target.\n" @@ -13810,19 +14373,19 @@ "\"matja\" tregon si rilevohen ngjyrat e inputit përmes\n" "CAT dhe mund të përdoret për të testuar outputin." -#: ../src/iop/channelmixerrgb.c:4493 ../src/iop/exposure.c:1194 +#: ../src/iop/channelmixerrgb.c:4561 ../src/iop/exposure.c:1212 msgid "correction" msgstr "korrigjoj" -#: ../src/iop/channelmixerrgb.c:4494 ../src/iop/exposure.c:1195 +#: ../src/iop/channelmixerrgb.c:4562 ../src/iop/exposure.c:1213 msgid "measure" msgstr "mat" -#: ../src/iop/channelmixerrgb.c:4500 +#: ../src/iop/channelmixerrgb.c:4568 msgid "take channel mixing into account" msgstr "marr parasysh miksimin e kanaleve" -#: ../src/iop/channelmixerrgb.c:4507 +#: ../src/iop/channelmixerrgb.c:4575 msgid "" "compute the target by taking the channel mixing into account.\n" "if disabled, only the CAT is considered." @@ -13830,16 +14393,16 @@ "kalkuloni outputin duke marrë parasysh miksimin e kanaleve.\n" "kur çaktivizohet merret vetëm CAT." -#: ../src/iop/channelmixerrgb.c:4519 ../src/iop/exposure.c:1202 +#: ../src/iop/channelmixerrgb.c:4587 ../src/iop/exposure.c:1220 msgctxt "section" msgid "input" msgstr "inputi" -#: ../src/iop/channelmixerrgb.c:4526 ../src/iop/exposure.c:1210 +#: ../src/iop/channelmixerrgb.c:4594 ../src/iop/exposure.c:1228 msgid "the input color that should be mapped to the target" msgstr "ngjyra input që duhet rilevuar me ngjyrën e synuar" -#: ../src/iop/channelmixerrgb.c:4532 +#: ../src/iop/channelmixerrgb.c:4600 msgid "" "L: \tN/A\n" "h: \tN/A\n" @@ -13849,116 +14412,116 @@ "h: \tN/A\n" "c: \tN/A" -#: ../src/iop/channelmixerrgb.c:4535 ../src/iop/exposure.c:1218 +#: ../src/iop/channelmixerrgb.c:4603 ../src/iop/exposure.c:1236 msgid "these LCh coordinates are computed from CIE Lab 1976 coordinates" msgstr "koordinatat LCh janë kalkuluar sipas koordinatave CIE Lab 1976" -#: ../src/iop/channelmixerrgb.c:4543 ../src/iop/exposure.c:1225 +#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/exposure.c:1243 msgctxt "section" msgid "target" msgstr "objektivi" -#: ../src/iop/channelmixerrgb.c:4550 +#: ../src/iop/channelmixerrgb.c:4618 msgid "the desired target color after mapping" msgstr "ngjyra e synuar pas rilevimit" -#: ../src/iop/channelmixerrgb.c:4589 +#: ../src/iop/channelmixerrgb.c:4657 msgid "input R" msgstr "input R" -#: ../src/iop/channelmixerrgb.c:4594 +#: ../src/iop/channelmixerrgb.c:4662 msgid "input G" msgstr "input G" -#: ../src/iop/channelmixerrgb.c:4599 +#: ../src/iop/channelmixerrgb.c:4667 msgid "input B" msgstr "input B" -#: ../src/iop/channelmixerrgb.c:4609 +#: ../src/iop/channelmixerrgb.c:4677 msgid "output R" msgstr "output R" -#: ../src/iop/channelmixerrgb.c:4610 +#: ../src/iop/channelmixerrgb.c:4678 msgid "output G" msgstr "output G" -#: ../src/iop/channelmixerrgb.c:4611 +#: ../src/iop/channelmixerrgb.c:4679 msgid "output B" msgstr "output B" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "colorfulness" msgstr "ngjyrimi" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "output colorfulness" msgstr "ngjyrimi i outputit" -#: ../src/iop/channelmixerrgb.c:4617 +#: ../src/iop/channelmixerrgb.c:4685 msgid "output brightness" msgstr "shkëlqimi i outputit" -#: ../src/iop/channelmixerrgb.c:4620 +#: ../src/iop/channelmixerrgb.c:4688 msgid "output gray" msgstr "grija e outputit" -#: ../src/iop/channelmixerrgb.c:4635 +#: ../src/iop/channelmixerrgb.c:4703 msgid "calibrate with a color checker" msgstr "kalibrimi me skakierën e ngjyrave" -#: ../src/iop/channelmixerrgb.c:4640 +#: ../src/iop/channelmixerrgb.c:4708 msgid "use a color checker target to autoset CAT and channels" msgstr "" "përdorni skakierën e ngjyrave për të vendosur automatikisht CAT-in dhe " "kanalet" -#: ../src/iop/channelmixerrgb.c:4647 ../src/iop/channelmixerrgb.c:4660 -#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/channelmixerrgb.c:4696 -#: ../src/iop/channelmixerrgb.c:4705 ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4715 ../src/iop/channelmixerrgb.c:4728 +#: ../src/iop/channelmixerrgb.c:4746 ../src/iop/channelmixerrgb.c:4764 +#: ../src/iop/channelmixerrgb.c:4773 ../src/iop/channelmixerrgb.c:4781 msgid "calibrate" msgstr "kalibroj" -#: ../src/iop/channelmixerrgb.c:4647 +#: ../src/iop/channelmixerrgb.c:4715 msgid "chart" msgstr "diagrami" -#: ../src/iop/channelmixerrgb.c:4648 +#: ../src/iop/channelmixerrgb.c:4716 msgid "choose the vendor and the type of your chart" msgstr "zgjidhni markën dhe llojin e diagramit" -#: ../src/iop/channelmixerrgb.c:4650 +#: ../src/iop/channelmixerrgb.c:4718 msgid "Xrite ColorChecker 24 pre-2014" msgstr "Xrite ColorChecker 24 para vitit 2014" -#: ../src/iop/channelmixerrgb.c:4651 +#: ../src/iop/channelmixerrgb.c:4719 msgid "Xrite ColorChecker 24 post-2014" msgstr "Xrite ColorChecker 24 pas vitit 2014" -#: ../src/iop/channelmixerrgb.c:4652 +#: ../src/iop/channelmixerrgb.c:4720 msgid "Datacolor SpyderCheckr 24 pre-2018" msgstr "Datacolor SpyderCheckr 24 para vitit 2018" -#: ../src/iop/channelmixerrgb.c:4653 +#: ../src/iop/channelmixerrgb.c:4721 msgid "Datacolor SpyderCheckr 24 post-2018" msgstr "Datacolor SpyderCheckr 24 pas vitit 2018" -#: ../src/iop/channelmixerrgb.c:4654 +#: ../src/iop/channelmixerrgb.c:4722 msgid "Datacolor SpyderCheckr 48 pre-2018" msgstr "Datacolor SpyderCheckr 48 para vitit 2018" -#: ../src/iop/channelmixerrgb.c:4655 +#: ../src/iop/channelmixerrgb.c:4723 msgid "Datacolor SpyderCheckr 48 post-2018" msgstr "Datacolor SpyderCheckr 48 pas vitit 2018" -#: ../src/iop/channelmixerrgb.c:4656 +#: ../src/iop/channelmixerrgb.c:4724 msgid "Datacolor SpyderCheckr Photo" msgstr "Datacolor SpyderCheckr Photo" -#: ../src/iop/channelmixerrgb.c:4660 +#: ../src/iop/channelmixerrgb.c:4728 msgid "optimize for" msgstr "optimizimi për" -#: ../src/iop/channelmixerrgb.c:4661 +#: ../src/iop/channelmixerrgb.c:4729 msgid "" "choose the colors that will be optimized with higher priority.\n" "neutral colors gives the lowest average delta E but a high maximum delta E\n" @@ -13975,35 +14538,35 @@ "asnjë merret si pikë kompromisi mes të dyjave\n" "të tjerat janë funksione të veçanta për të mbrojtur nuanca të caktuara" -#: ../src/iop/channelmixerrgb.c:4668 +#: ../src/iop/channelmixerrgb.c:4736 msgid "neutral colors" msgstr "ngjyrat neutrale" -#: ../src/iop/channelmixerrgb.c:4670 +#: ../src/iop/channelmixerrgb.c:4738 msgid "skin and soil colors" msgstr "ngjyrat e lëkurës dhe tokës" -#: ../src/iop/channelmixerrgb.c:4671 +#: ../src/iop/channelmixerrgb.c:4739 msgid "foliage colors" msgstr "ngjyrat e gjetheve" -#: ../src/iop/channelmixerrgb.c:4672 +#: ../src/iop/channelmixerrgb.c:4740 msgid "sky and water colors" msgstr "ngjyrat e qiellit dhe ujit" -#: ../src/iop/channelmixerrgb.c:4673 +#: ../src/iop/channelmixerrgb.c:4741 msgid "average delta E" msgstr "delta E mesatare" -#: ../src/iop/channelmixerrgb.c:4674 +#: ../src/iop/channelmixerrgb.c:4742 msgid "maximum delta E" msgstr "delta E maksimale" -#: ../src/iop/channelmixerrgb.c:4678 +#: ../src/iop/channelmixerrgb.c:4746 msgid "patch scale" msgstr "shkalla e arnës" -#: ../src/iop/channelmixerrgb.c:4681 +#: ../src/iop/channelmixerrgb.c:4749 msgid "" "reduce the radius of the patches to select the more or less central part.\n" "useful when the perspective correction is sloppy or\n" @@ -14013,31 +14576,31 @@ "është me dobi kur rezultatet e korrigjimit të perspektivës janë joprecize\n" "ose korniza e arnave formon hije në cepat e tyre." -#: ../src/iop/channelmixerrgb.c:4691 +#: ../src/iop/channelmixerrgb.c:4759 msgid "the delta E is using the CIE 2000 formula" msgstr "delta E përdor formulën CIE 2000" -#: ../src/iop/channelmixerrgb.c:4696 +#: ../src/iop/channelmixerrgb.c:4764 msgid "accept" msgstr "pranoj" -#: ../src/iop/channelmixerrgb.c:4702 +#: ../src/iop/channelmixerrgb.c:4770 msgid "accept the computed profile and set it in the module" msgstr "pranoni profilin e kalkuluar dhe vendoseni në modul" -#: ../src/iop/channelmixerrgb.c:4705 +#: ../src/iop/channelmixerrgb.c:4773 msgid "recompute" msgstr "rikalkuloj" -#: ../src/iop/channelmixerrgb.c:4709 +#: ../src/iop/channelmixerrgb.c:4777 msgid "recompute the profile" msgstr "rikalkuloj profilin" -#: ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4781 msgid "validate" msgstr "miratoj" -#: ../src/iop/channelmixerrgb.c:4717 +#: ../src/iop/channelmixerrgb.c:4785 msgid "check the output delta E" msgstr "kontrolloj outputin e delta E" @@ -14054,19 +14617,19 @@ msgstr "" "ky modul është i vjetër. përdorni më mirë modulin e ri për kontrastin lokal." -#: ../src/iop/clahe.c:337 ../src/iop/sharpen.c:445 +#: ../src/iop/clahe.c:339 ../src/iop/sharpen.c:440 msgid "amount" msgstr "sasia" -#: ../src/iop/clahe.c:346 +#: ../src/iop/clahe.c:348 msgid "size of features to preserve" msgstr "masa e veçorive të ruajtura" -#: ../src/iop/clahe.c:347 ../src/iop/nlmeans.c:464 +#: ../src/iop/clahe.c:349 ../src/iop/nlmeans.c:467 msgid "strength of the effect" msgstr "forca e efektit" -#: ../src/iop/clipping.c:304 +#: ../src/iop/clipping.c:347 msgid "" "this module is deprecated. please use the crop, orientation and/or rotate " "and perspective modules instead." @@ -14074,143 +14637,143 @@ "ky modul është i vjetër. lutemi të përdorni më mirë modulet prerja, " "orientimi dhe/ose rrotullimi dhe perspektiva." -#: ../src/iop/clipping.c:309 +#: ../src/iop/clipping.c:352 msgid "crop and rotate" msgstr "formati dhe rrotullimi" -#: ../src/iop/clipping.c:314 +#: ../src/iop/clipping.c:357 msgid "reframe|perspective|keystone|distortion" msgstr "inkuadroj|perspektiva|poligoni|deformimi" -#: ../src/iop/clipping.c:319 +#: ../src/iop/clipping.c:362 msgid "change the framing and correct the perspective" msgstr "ndryshoni inkuadrimin dhe korrigjoni perspektivën" -#: ../src/iop/clipping.c:1394 ../src/iop/clipping.c:2120 ../src/iop/crop.c:517 -#: ../src/iop/crop.c:1117 +#: ../src/iop/clipping.c:1447 ../src/iop/clipping.c:2173 ../src/iop/crop.c:501 +#: ../src/iop/crop.c:1101 msgid "original image" msgstr "imazhi origjinal" -#: ../src/iop/clipping.c:1698 ../src/iop/crop.c:824 +#: ../src/iop/clipping.c:1751 ../src/iop/crop.c:808 msgid "invalid ratio format. it should be \"number:number\"" msgstr "format jo i saktë. duhet të jetë \"numër:numër\"" -#: ../src/iop/clipping.c:1714 ../src/iop/crop.c:840 +#: ../src/iop/clipping.c:1767 ../src/iop/crop.c:824 msgid "invalid ratio format. it should be a positive number" msgstr "formati i raportit është i pasaktë. duhet të jetë numër pozitiv" -#: ../src/iop/clipping.c:1903 ../src/iop/clipping.c:2111 +#: ../src/iop/clipping.c:1956 ../src/iop/clipping.c:2164 msgid "full" msgstr "i plotë" -#: ../src/iop/clipping.c:1904 +#: ../src/iop/clipping.c:1957 msgid "old system" msgstr "sistemi i vjetër" -#: ../src/iop/clipping.c:1905 +#: ../src/iop/clipping.c:1958 msgid "correction applied" msgstr "zbatohet korrigjimi" -#: ../src/iop/clipping.c:2089 +#: ../src/iop/clipping.c:2142 msgid "main" msgstr "kryesor" -#: ../src/iop/clipping.c:2098 +#: ../src/iop/clipping.c:2151 msgid "mirror image horizontally and/or vertically" msgstr "pasqyroni imazhin horizontalisht dhe/ose vertikalisht" -#: ../src/iop/clipping.c:2101 +#: ../src/iop/clipping.c:2154 msgid "angle" msgstr "këndi" -#: ../src/iop/clipping.c:2104 +#: ../src/iop/clipping.c:2157 msgid "right-click and drag a line on the image to drag a straight line" msgstr "klikoni imazhin me të djathtën dhe hiqni një vijë të drejtë" -#: ../src/iop/clipping.c:2107 +#: ../src/iop/clipping.c:2160 msgid "keystone" msgstr "trapezoidi" -#: ../src/iop/clipping.c:2112 +#: ../src/iop/clipping.c:2165 msgid "set perspective correction for your image" msgstr "korrigjoni perspektivën e imazhit" -#: ../src/iop/clipping.c:2119 ../src/iop/crop.c:1116 +#: ../src/iop/clipping.c:2172 ../src/iop/crop.c:1100 msgid "freehand" msgstr "lirshëm" -#: ../src/iop/clipping.c:2122 ../src/iop/crop.c:1119 +#: ../src/iop/clipping.c:2175 ../src/iop/crop.c:1103 msgid "10:8 in print" msgstr "10:8 për printim" -#: ../src/iop/clipping.c:2123 ../src/iop/crop.c:1120 +#: ../src/iop/clipping.c:2176 ../src/iop/crop.c:1104 msgid "5:4, 4x5, 8x10" msgstr "5:4, 4x5, 8x10" -#: ../src/iop/clipping.c:2124 ../src/iop/crop.c:1121 +#: ../src/iop/clipping.c:2177 ../src/iop/crop.c:1105 msgid "11x14" msgstr "11x14" -#: ../src/iop/clipping.c:2125 ../src/iop/crop.c:1122 +#: ../src/iop/clipping.c:2178 ../src/iop/crop.c:1106 msgid "8.5x11, letter" msgstr "8.5x11, letër" -#: ../src/iop/clipping.c:2126 ../src/iop/crop.c:1123 +#: ../src/iop/clipping.c:2179 ../src/iop/crop.c:1107 msgid "4:3, VGA, TV" msgstr "4:3, VGA, TV" -#: ../src/iop/clipping.c:2127 ../src/iop/crop.c:1124 +#: ../src/iop/clipping.c:2180 ../src/iop/crop.c:1108 msgid "5x7" msgstr "5x7" -#: ../src/iop/clipping.c:2128 ../src/iop/crop.c:1125 +#: ../src/iop/clipping.c:2181 ../src/iop/crop.c:1109 msgid "ISO 216, DIN 476, A4" msgstr "ISO 216, DIN 476, A4" -#: ../src/iop/clipping.c:2129 ../src/iop/crop.c:1126 +#: ../src/iop/clipping.c:2182 ../src/iop/crop.c:1110 msgid "3:2, 4x6, 35mm" msgstr "3:2, 4x6, 35mm" -#: ../src/iop/clipping.c:2130 ../src/iop/crop.c:1127 +#: ../src/iop/clipping.c:2183 ../src/iop/crop.c:1111 msgid "16:10, 8x5" msgstr "16:10, 8x5" -#: ../src/iop/clipping.c:2132 ../src/iop/crop.c:1129 +#: ../src/iop/clipping.c:2185 ../src/iop/crop.c:1113 msgid "16:9, HDTV" msgstr "16:9, HDTV" -#: ../src/iop/clipping.c:2133 ../src/iop/crop.c:1130 +#: ../src/iop/clipping.c:2186 ../src/iop/crop.c:1114 msgid "widescreen" msgstr "ekran i gjerë" -#: ../src/iop/clipping.c:2134 ../src/iop/crop.c:1131 +#: ../src/iop/clipping.c:2187 ../src/iop/crop.c:1115 msgid "2:1, univisium" msgstr "2:1, univisium" -#: ../src/iop/clipping.c:2135 ../src/iop/crop.c:1132 +#: ../src/iop/clipping.c:2188 ../src/iop/crop.c:1116 msgid "cinemascope" msgstr "kinemaskop" -#: ../src/iop/clipping.c:2136 ../src/iop/crop.c:1133 +#: ../src/iop/clipping.c:2189 ../src/iop/crop.c:1117 msgid "21:9" msgstr "21:9" -#: ../src/iop/clipping.c:2137 ../src/iop/crop.c:1134 +#: ../src/iop/clipping.c:2190 ../src/iop/crop.c:1118 msgid "anamorphic" msgstr "anamorfik" -#: ../src/iop/clipping.c:2138 ../src/iop/crop.c:1135 +#: ../src/iop/clipping.c:2191 ../src/iop/crop.c:1119 msgid "3:1, panorama" msgstr "3:1, panoramë" -#: ../src/iop/clipping.c:2170 ../src/iop/clipping.c:2182 ../src/iop/crop.c:1171 -#: ../src/iop/crop.c:1187 +#: ../src/iop/clipping.c:2223 ../src/iop/clipping.c:2235 ../src/iop/crop.c:1155 +#: ../src/iop/crop.c:1171 #, c-format msgid "invalid ratio format for `%s'. it should be \"number:number\"" msgstr "" "formati i raportit për `%s' është i pasaktë. duhet të jetë \"numër:numër\"" -#: ../src/iop/clipping.c:2229 ../src/iop/crop.c:1238 +#: ../src/iop/clipping.c:2282 ../src/iop/crop.c:1222 msgid "" "set the aspect ratio\n" "the list is sorted: from most square to least square\n" @@ -14222,31 +14785,31 @@ "raportet personalizohen duke dhënë vlerat në formatin x:y ose me shifra " "dhjetore te kuadrati" -#: ../src/iop/clipping.c:2236 ../src/iop/crop.c:1252 +#: ../src/iop/clipping.c:2289 ../src/iop/crop.c:1236 msgid "margins" msgstr "anësoret" -#: ../src/iop/clipping.c:2241 ../src/iop/crop.c:1262 +#: ../src/iop/clipping.c:2294 ../src/iop/crop.c:1246 msgid "the left margin cannot overlap with the right margin" msgstr "anësorja e majtë nuk mund të takohet me të djathtën" -#: ../src/iop/clipping.c:2248 ../src/iop/crop.c:1270 +#: ../src/iop/clipping.c:2301 ../src/iop/crop.c:1254 msgid "the right margin cannot overlap with the left margin" msgstr "anësorja e djathtë nuk mund të takohet me të majtën" -#: ../src/iop/clipping.c:2253 ../src/iop/crop.c:1276 +#: ../src/iop/clipping.c:2306 ../src/iop/crop.c:1260 msgid "the top margin cannot overlap with the bottom margin" msgstr "anësorja e sipërme nuk mund të takohet me të poshtmen" -#: ../src/iop/clipping.c:2260 ../src/iop/crop.c:1284 +#: ../src/iop/clipping.c:2313 ../src/iop/crop.c:1268 msgid "the bottom margin cannot overlap with the top margin" msgstr "anësorja e poshtme nuk mund të takohet me të sipërmen" -#: ../src/iop/clipping.c:3019 +#: ../src/iop/clipping.c:3059 msgid "<b>commit</b>: double-click, <b>straighten</b>: right-drag" msgstr "<b>kryhet</b> me dopioklik, <b>drejtohet</b> me djathtas-tërheqje" -#: ../src/iop/clipping.c:3023 +#: ../src/iop/clipping.c:3063 msgid "" "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag\n" "<b>straighten</b>: right-drag" @@ -14255,17 +14818,17 @@ "shift+tërheqje\n" "<b>drejtohet</b> me djathtas-tërheqje" -#: ../src/iop/clipping.c:3066 +#: ../src/iop/clipping.c:3104 msgid "<b>move control point</b>: drag" msgstr "<b>lëvizni pikën e kontrollit</b> me tërheqjen e mausit" -#: ../src/iop/clipping.c:3071 +#: ../src/iop/clipping.c:3109 msgid "<b>move line</b>: drag, <b>toggle symmetry</b>: click ꝏ" msgstr "" "<b>lëvizni vijën</b> me tërheqjen e mausit, <b>përdorni simetrinë</b>: me " "klikim ꝏ" -#: ../src/iop/clipping.c:3076 +#: ../src/iop/clipping.c:3114 msgid "" "<b>apply</b>: click <tt>ok</tt>, <b>toggle symmetry</b>: click ꝏ\n" "<b>move line/control point</b>: drag" @@ -14274,7 +14837,7 @@ "ꝏ\n" "<b>lëvizni vijën/pikën e kontrollit</b> me tërheqjen e mausit" -#: ../src/iop/clipping.c:3083 +#: ../src/iop/clipping.c:3121 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag\n" @@ -14284,12 +14847,12 @@ "shift+tërheqje, <b>lëvizni horizontalisht</b>: ctrl+tërheqje\n" "<b>drejtohet</b> me djathtas-tërheqje, <b>kryhet</b> me dopioklik" -#: ../src/iop/clipping.c:3340 ../src/iop/crop.c:1796 +#: ../src/iop/clipping.c:3380 ../src/iop/crop.c:1770 #, c-format msgid "[%s on borders] crop" msgstr "[%s në bordurë] pres" -#: ../src/iop/clipping.c:3342 ../src/iop/crop.c:1798 +#: ../src/iop/clipping.c:3382 ../src/iop/crop.c:1772 #, c-format msgid "[%s on borders] crop keeping ratio" msgstr "[%s në bordurë] pres duke ruajtur raportin" @@ -14308,224 +14871,224 @@ msgid "adjust the look of the image" msgstr "rregulloni paraqitjen e imazhit" -#: ../src/iop/colisa.c:310 +#: ../src/iop/colisa.c:304 msgid "color saturation adjustment" msgstr "saturimi i ngjyrave" -#: ../src/iop/colorbalance.c:150 +#: ../src/iop/colorbalance.c:152 msgid "color balance" msgstr "balancimi i ngjyrave" -#: ../src/iop/colorbalance.c:155 +#: ../src/iop/colorbalance.c:157 msgid "lift gamma gain|cdl|color grading|contrast|saturation|hue" -msgstr "lifti gama geini|cdl|gradimi i ngjyrave|kontrasti|saturimi|nuanca" +msgstr "lifti gama geini|cdl|etalonimi i ngjyrave|kontrasti|saturimi|nuanca" -#: ../src/iop/colorbalance.c:160 +#: ../src/iop/colorbalance.c:162 msgid "shift colors selectively by luminance range" msgstr "zhvendosni ngjyrat sipas intervalit të luminancës" -#: ../src/iop/colorbalance.c:164 +#: ../src/iop/colorbalance.c:166 msgid "non-linear, Lab, scene-referred" msgstr "jolinear, Lab, sipas skenës" #. these blobs were exported as dtstyle and copied from there: -#: ../src/iop/colorbalance.c:275 +#: ../src/iop/colorbalance.c:304 msgid "split-toning teal-orange (2nd instance)" msgstr "ndarje tonale e cianit të zënë-portokalli (instanca e 2-të)" -#: ../src/iop/colorbalance.c:278 +#: ../src/iop/colorbalance.c:307 msgid "split-toning teal-orange (1st instance)" msgstr "ndarje tonale e cianit të zënë-portokalli (instanca e 1-rë)" -#: ../src/iop/colorbalance.c:282 +#: ../src/iop/colorbalance.c:311 msgid "generic film" msgstr "film gjenerik" -#: ../src/iop/colorbalance.c:286 +#: ../src/iop/colorbalance.c:315 msgid "similar to Kodak Portra" msgstr "ngjan me Kodak Portra" -#: ../src/iop/colorbalance.c:290 +#: ../src/iop/colorbalance.c:319 msgid "similar to Kodak Ektar" msgstr "ngjan me Kodak Ektar" -#: ../src/iop/colorbalance.c:294 +#: ../src/iop/colorbalance.c:323 msgid "similar to Kodachrome" msgstr "ngjan me Kodachrome" -#: ../src/iop/colorbalance.c:990 +#: ../src/iop/colorbalance.c:964 msgid "optimize luma from patches" msgstr "optimizoj lumën nga arnat" -#: ../src/iop/colorbalance.c:992 ../src/iop/colorbalance.c:2110 +#: ../src/iop/colorbalance.c:966 ../src/iop/colorbalance.c:2085 msgid "optimize luma" msgstr "optimizoj lumën" -#: ../src/iop/colorbalance.c:996 +#: ../src/iop/colorbalance.c:970 msgid "neutralize colors from patches" msgstr "neutralizoj ngjyrat sipas arnave" -#: ../src/iop/colorbalance.c:998 ../src/iop/colorbalance.c:2116 +#: ../src/iop/colorbalance.c:972 ../src/iop/colorbalance.c:2091 msgid "neutralize colors" msgstr "neutralizoj ngjyrat" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "offset" msgstr "ofseti" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "power" msgstr "fuqia" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "slope" msgstr "pjerrësia" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "lift" msgstr "lifti" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gamma" msgstr "gama" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gain" msgstr "geini" -#: ../src/iop/colorbalance.c:1787 +#: ../src/iop/colorbalance.c:1762 msgctxt "section" msgid "shadows: lift / offset" msgstr "hijet: lifti / ofseti" -#: ../src/iop/colorbalance.c:1788 +#: ../src/iop/colorbalance.c:1763 msgctxt "section" msgid "mid-tones: gamma / power" msgstr "tonet e mesme: gama / fuqia" -#: ../src/iop/colorbalance.c:1789 +#: ../src/iop/colorbalance.c:1764 msgctxt "section" msgid "highlights: gain / slope" msgstr "reflekset: geini / pjerrësia" -#: ../src/iop/colorbalance.c:1813 +#: ../src/iop/colorbalance.c:1788 msgid "shadows / mid-tones / highlights" msgstr "hijet / tonet e mesme / reflekset" -#: ../src/iop/colorbalance.c:1910 ../src/iop/colorbalance.c:1919 +#: ../src/iop/colorbalance.c:1885 ../src/iop/colorbalance.c:1894 msgid "color-grading mapping method" -msgstr "metoda e gradimit për rilevimin e ngjyrave" +msgstr "metoda e etalonimit të ngjyrave" -#: ../src/iop/colorbalance.c:1914 +#: ../src/iop/colorbalance.c:1889 msgid "color control sliders" msgstr "ngjyra e shkarësve" -#: ../src/iop/colorbalance.c:1915 ../src/libs/colorpicker.c:51 +#: ../src/iop/colorbalance.c:1890 ../src/libs/colorpicker.c:51 msgid "HSL" msgstr "HSL" -#: ../src/iop/colorbalance.c:1916 +#: ../src/iop/colorbalance.c:1891 msgid "RGBL" msgstr "RGBL" -#: ../src/iop/colorbalance.c:1928 +#: ../src/iop/colorbalance.c:1903 msgctxt "section" msgid "master" msgstr "mjeshtër" -#: ../src/iop/colorbalance.c:1934 +#: ../src/iop/colorbalance.c:1909 msgid "saturation correction before the color balance" msgstr "saturimi do të korrigjohet para balancimit të ngjyrave" -#: ../src/iop/colorbalance.c:1940 +#: ../src/iop/colorbalance.c:1915 msgid "saturation correction after the color balance" msgstr "saturimi do të korrigjohet pas balancimit të ngjyrave" -#: ../src/iop/colorbalance.c:1945 +#: ../src/iop/colorbalance.c:1920 msgid "adjust to match a neutral tone" msgstr "përshtateni sipas një toni neutral" #. is set in _configure_slider_blocks -#: ../src/iop/colorbalance.c:2003 +#: ../src/iop/colorbalance.c:1978 msgid "click to cycle layout" msgstr "struktura ndërrohet me klikim" -#: ../src/iop/colorbalance.c:2037 +#: ../src/iop/colorbalance.c:2012 msgid "factor" msgstr "faktori" -#: ../src/iop/colorbalance.c:2051 +#: ../src/iop/colorbalance.c:2026 msgid "select the hue" msgstr "përzgjidhni nuancën" -#: ../src/iop/colorbalance.c:2063 +#: ../src/iop/colorbalance.c:2038 msgid "select the saturation" msgstr "përzgjidhni saturimin" -#: ../src/iop/colorbalance.c:2082 +#: ../src/iop/colorbalance.c:2057 msgid "factor of lift/offset" msgstr "faktori lift/ofset" -#: ../src/iop/colorbalance.c:2083 +#: ../src/iop/colorbalance.c:2058 msgid "factor of red for lift/offset" msgstr "faktori kuqe për liftin/ofsetin" -#: ../src/iop/colorbalance.c:2084 +#: ../src/iop/colorbalance.c:2059 msgid "factor of green for lift/offset" msgstr "faktori gjelbër për liftin/ofsetin" -#: ../src/iop/colorbalance.c:2085 +#: ../src/iop/colorbalance.c:2060 msgid "factor of blue for lift/offset" msgstr "faktori blu për liftin/ofsetin" -#: ../src/iop/colorbalance.c:2088 +#: ../src/iop/colorbalance.c:2063 msgid "factor of gamma/power" msgstr "faktori gama/fuqi" -#: ../src/iop/colorbalance.c:2089 +#: ../src/iop/colorbalance.c:2064 msgid "factor of red for gamma/power" msgstr "faktori kuqe për gamën/fuqinë" -#: ../src/iop/colorbalance.c:2090 +#: ../src/iop/colorbalance.c:2065 msgid "factor of green for gamma/power" msgstr "faktori gjelbër për gamën/fuqinë" -#: ../src/iop/colorbalance.c:2091 +#: ../src/iop/colorbalance.c:2066 msgid "factor of blue for gamma/power" msgstr "faktori blu për gamën/fuqinë" -#: ../src/iop/colorbalance.c:2094 +#: ../src/iop/colorbalance.c:2069 msgid "factor of gain/slope" msgstr "faktori gein/pjerrësi" -#: ../src/iop/colorbalance.c:2095 +#: ../src/iop/colorbalance.c:2070 msgid "factor of red for gain/slope" msgstr "faktori kuqe për geinin/pjerrësinë" -#: ../src/iop/colorbalance.c:2096 +#: ../src/iop/colorbalance.c:2071 msgid "factor of green for gain/slope" msgstr "faktori gjelbër për geinin/pjerrësinë" -#: ../src/iop/colorbalance.c:2097 +#: ../src/iop/colorbalance.c:2072 msgid "factor of blue for gain/slope" msgstr "faktori blu për geinin/pjerrësinë" -#: ../src/iop/colorbalance.c:2106 +#: ../src/iop/colorbalance.c:2081 msgctxt "section" msgid "auto optimizers" msgstr "vetoptimizuesit" -#: ../src/iop/colorbalance.c:2111 +#: ../src/iop/colorbalance.c:2086 msgid "fit the whole histogram and center the average luma" msgstr "përshtateni histogramin dhe qendërsoni lumën mesatare" -#: ../src/iop/colorbalance.c:2117 +#: ../src/iop/colorbalance.c:2092 msgid "optimize the RGB curves to remove color casts" msgstr "optimizoni kurbat RGB për të hequr dominantët e ngjyrave" @@ -14538,116 +15101,116 @@ "offset power slope|cdl|color grading|contrast|chroma_highlights|hue|vibrance|" "saturation" msgstr "" -"pjerrësia e ofsetit|CDL|gradimi i ngjyrave|kontrasti|kroma_reflekset|nuanca|" -"vibranca|saturimi" +"pjerrësia e ofsetit|CDL|etalonimi i ngjyrave|kontrasti|kroma_reflekset|" +"nuanca|vibranca|saturimi" #: ../src/iop/colorbalancergb.c:183 msgid "" "color grading tools using alpha masks to separate\n" "shadows, mid-tones and highlights" msgstr "" -"instrumente për gradimin e ngjyrave me maskat alfa,\n" +"instrumente për etalonimin e ngjyrave me maskat alfa,\n" "për të theksuar hijet, tonet e mesme dhe reflekset" -#: ../src/iop/colorbalancergb.c:443 +#: ../src/iop/colorbalancergb.c:536 msgid "add basic colorfulness (legacy)" msgstr "shtoj koloritin bazë (e trashëguar)" -#: ../src/iop/colorbalancergb.c:452 +#: ../src/iop/colorbalancergb.c:545 msgid "basic colorfulness: natural skin" msgstr "koloriti bazë: lëkurë natyrore" -#: ../src/iop/colorbalancergb.c:458 +#: ../src/iop/colorbalancergb.c:551 msgid "basic colorfulness: vibrant colors" msgstr "koloriti bazë: ngjyra energjike" -#: ../src/iop/colorbalancergb.c:464 +#: ../src/iop/colorbalancergb.c:557 msgid "basic colorfulness: standard" msgstr "koloriti bazë: standard" -#: ../src/iop/colorbalancergb.c:937 +#: ../src/iop/colorbalancergb.c:1022 msgid "colorbalance works only on RGB input" msgstr "balancimi i ngjyrave funksionon vetëm me inputet RGB" -#: ../src/iop/colorbalancergb.c:1506 ../src/iop/colorzones.c:2164 -#: ../src/iop/retouch.c:1884 ../src/iop/toneequal.c:1966 +#: ../src/iop/colorbalancergb.c:1577 ../src/iop/colorzones.c:2394 +#: ../src/iop/retouch.c:2069 ../src/iop/toneequal.c:1996 msgid "cannot display masks when the blending mask is displayed" msgstr "maskat nuk shihen kur aktivizoni maskën bashkuese" #. Page master -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "master" msgstr "mjeshtër" -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "global grading" -msgstr "gradimi global" +msgstr "etalonimi global" -#: ../src/iop/colorbalancergb.c:1880 +#: ../src/iop/colorbalancergb.c:1951 msgid "rotate all hues by an angle, at the same luminance" msgstr "rrotulloni gjithë nuancat sipas këndit, me të njëjtën luminancë" -#: ../src/iop/colorbalancergb.c:1886 +#: ../src/iop/colorbalancergb.c:1957 msgid "increase colorfulness mostly on low-chroma colors" msgstr "rritni kryesisht ngjyrimin e ngjyrave me kromë të ulët" -#: ../src/iop/colorbalancergb.c:1892 +#: ../src/iop/colorbalancergb.c:1963 msgid "increase the contrast at constant chromaticity" msgstr "rritni kontrastin me kromaticitet konstant" -#: ../src/iop/colorbalancergb.c:1894 +#: ../src/iop/colorbalancergb.c:1965 msgctxt "section" msgid "linear chroma grading" -msgstr "gradimi linear i kromës" +msgstr "etalonimi linear i kromës" -#: ../src/iop/colorbalancergb.c:1901 +#: ../src/iop/colorbalancergb.c:1972 msgid "increase colorfulness at same luminance globally" msgstr "rritni globalisht ngjyrimin me të njëjtën luminancë" -#: ../src/iop/colorbalancergb.c:1906 +#: ../src/iop/colorbalancergb.c:1977 msgid "increase colorfulness at same luminance mostly in shadows" msgstr "rritni kryesisht ngjyrimin e hijeve me të njëjtën luminancë" -#: ../src/iop/colorbalancergb.c:1911 +#: ../src/iop/colorbalancergb.c:1982 msgid "increase colorfulness at same luminance mostly in mid-tones" msgstr "rritni kryesisht ngjyrimin e toneve të mesme me të njëjtën luminancë" -#: ../src/iop/colorbalancergb.c:1916 +#: ../src/iop/colorbalancergb.c:1987 msgid "increase colorfulness at same luminance mostly in highlights" msgstr "rritni kryesisht ngjyrimin e reflekseve me të njëjtën luminancë" -#: ../src/iop/colorbalancergb.c:1918 +#: ../src/iop/colorbalancergb.c:1989 msgctxt "section" msgid "perceptual saturation grading" -msgstr "gradimi perceptiv i saturimit" +msgstr "etalonimi perceptiv i saturimit" -#: ../src/iop/colorbalancergb.c:1924 +#: ../src/iop/colorbalancergb.c:1995 msgid "add or remove saturation by an absolute amount" msgstr "shtoni ose hiqni saturimin në sasi absolute" -#: ../src/iop/colorbalancergb.c:1929 ../src/iop/colorbalancergb.c:1934 -#: ../src/iop/colorbalancergb.c:1939 +#: ../src/iop/colorbalancergb.c:2000 ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2010 msgid "" "increase or decrease saturation proportionally to the original pixel " "saturation" msgstr "" "rritni ose ulni saturimin në përpjesëtim më saturimin e pikselit origjinal" -#: ../src/iop/colorbalancergb.c:1941 +#: ../src/iop/colorbalancergb.c:2012 msgctxt "section" msgid "perceptual brilliance grading" -msgstr "gradimi perceptiv i brilancës" +msgstr "etalonimi perceptiv i brilancës" -#: ../src/iop/colorbalancergb.c:1942 +#: ../src/iop/colorbalancergb.c:2013 msgid "brilliance" msgstr "brilanca" -#: ../src/iop/colorbalancergb.c:1947 +#: ../src/iop/colorbalancergb.c:2018 msgid "add or remove brilliance by an absolute amount" msgstr "shtoni ose hiqni brilancën në sasi absolute" -#: ../src/iop/colorbalancergb.c:1952 ../src/iop/colorbalancergb.c:1957 -#: ../src/iop/colorbalancergb.c:1962 +#: ../src/iop/colorbalancergb.c:2023 ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2033 msgid "" "increase or decrease brilliance proportionally to the original pixel " "brilliance" @@ -14655,159 +15218,159 @@ "rritni ose ulni brilancën në përpjesëtim me brilancën origjinale të pikselit" #. Page 4-ways -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "4 ways" msgstr "4 mënyra" -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "selective color grading" -msgstr "gradimi selektiv i ngjyrave" +msgstr "etalonimi selektiv i ngjyrave" -#: ../src/iop/colorbalancergb.c:1967 +#: ../src/iop/colorbalancergb.c:2038 msgctxt "section" msgid "global offset" msgstr "ofseti global" -#: ../src/iop/colorbalancergb.c:1974 +#: ../src/iop/colorbalancergb.c:2045 msgid "global luminance offset" msgstr "ofseti global i luminancës" -#: ../src/iop/colorbalancergb.c:1979 +#: ../src/iop/colorbalancergb.c:2050 msgid "hue of the global color offset" msgstr "nuanca e ofsetit global të ngjyrave" -#: ../src/iop/colorbalancergb.c:1985 +#: ../src/iop/colorbalancergb.c:2056 msgid "chroma of the global color offset" msgstr "kroma e ofsetit global të ngjyrave" -#: ../src/iop/colorbalancergb.c:1987 +#: ../src/iop/colorbalancergb.c:2058 msgctxt "section" msgid "shadows lift" msgstr "lifti i hijeve" -#: ../src/iop/colorbalancergb.c:1988 +#: ../src/iop/colorbalancergb.c:2059 msgid "lift" msgstr "lifti" -#: ../src/iop/colorbalancergb.c:1994 +#: ../src/iop/colorbalancergb.c:2065 msgid "luminance gain in shadows" msgstr "geini i luminancës në hije" -#: ../src/iop/colorbalancergb.c:1999 +#: ../src/iop/colorbalancergb.c:2070 msgid "hue of the color gain in shadows" msgstr "nuanca e geinit të ngjyrave në hije" -#: ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2076 msgid "chroma of the color gain in shadows" msgstr "kroma e geinit të ngjyrave në hije" -#: ../src/iop/colorbalancergb.c:2007 +#: ../src/iop/colorbalancergb.c:2078 msgctxt "section" msgid "highlights gain" msgstr "geini i reflekseve" -#: ../src/iop/colorbalancergb.c:2008 +#: ../src/iop/colorbalancergb.c:2079 msgid "gain" msgstr "geini" -#: ../src/iop/colorbalancergb.c:2014 +#: ../src/iop/colorbalancergb.c:2085 msgid "luminance gain in highlights" msgstr "geini i luminancës në reflekse" -#: ../src/iop/colorbalancergb.c:2019 +#: ../src/iop/colorbalancergb.c:2090 msgid "hue of the color gain in highlights" msgstr "nuanca e geinit të ngjyrave në reflekse" -#: ../src/iop/colorbalancergb.c:2025 +#: ../src/iop/colorbalancergb.c:2096 msgid "chroma of the color gain in highlights" msgstr "kroma e geinit të ngjyrave në reflekse" -#: ../src/iop/colorbalancergb.c:2027 +#: ../src/iop/colorbalancergb.c:2098 msgctxt "section" msgid "power" msgstr "fuqia" -#: ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2099 msgid "power" msgstr "fuqia" -#: ../src/iop/colorbalancergb.c:2034 +#: ../src/iop/colorbalancergb.c:2105 msgid "luminance exponent in mid-tones" msgstr "eksponenti i luminancës në tonet e mesme" -#: ../src/iop/colorbalancergb.c:2039 +#: ../src/iop/colorbalancergb.c:2110 msgid "hue of the color exponent in mid-tones" msgstr "nuanca e eksponentit të ngjyrave në tonet e mesme" -#: ../src/iop/colorbalancergb.c:2045 +#: ../src/iop/colorbalancergb.c:2116 msgid "chroma of the color exponent in mid-tones" msgstr "kroma e eksponentit të ngjyrave në tonet e mesme" #. Page masks -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "masks" msgstr "maskat" -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "isolate luminances" msgstr "izolimi i luminancave" -#: ../src/iop/colorbalancergb.c:2052 +#: ../src/iop/colorbalancergb.c:2123 msgid "choose in which uniform color space the saturation is computed" msgstr "zgjidhni hapësirën uniforme të ngjyrave për kalkulimin e saturimit" -#: ../src/iop/colorbalancergb.c:2054 +#: ../src/iop/colorbalancergb.c:2125 msgctxt "section" msgid "luminance ranges" msgstr "intervalet e luminancës" -#: ../src/iop/colorbalancergb.c:2065 +#: ../src/iop/colorbalancergb.c:2136 msgid "weight of the shadows over the whole tonal range" msgstr "pesha e hijeve në gjithë intervalin tonal" -#: ../src/iop/colorbalancergb.c:2073 +#: ../src/iop/colorbalancergb.c:2144 msgid "position of the middle-gray reference for masking" msgstr "pozicioni i grisë së mesme referenciale për maskat" -#: ../src/iop/colorbalancergb.c:2081 +#: ../src/iop/colorbalancergb.c:2152 msgid "weights of highlights over the whole tonal range" msgstr "pesha e reflekseve në gjithë intervalin tonal" -#: ../src/iop/colorbalancergb.c:2086 +#: ../src/iop/colorbalancergb.c:2157 msgctxt "section" msgid "threshold" msgstr "pragu" -#: ../src/iop/colorbalancergb.c:2091 +#: ../src/iop/colorbalancergb.c:2162 msgid "peak white luminance value used to normalize the power function" msgstr "" "piku i vlerës së luminancës së bardhë që përdoret për normalizimin e " "funksionit të fuqisë" -#: ../src/iop/colorbalancergb.c:2097 +#: ../src/iop/colorbalancergb.c:2168 msgid "peak gray luminance value used to normalize the power function" msgstr "" "piku i vlerës së luminancës gri që përdoret për normalizimin e funksionit të " "fuqisë" -#: ../src/iop/colorbalancergb.c:2099 +#: ../src/iop/colorbalancergb.c:2170 msgctxt "section" msgid "mask preview settings" msgstr "parametrat e parashikimit të maskës" -#: ../src/iop/colorbalancergb.c:2102 +#: ../src/iop/colorbalancergb.c:2173 msgid "checkerboard color 1" msgstr "ngjyra 1 e skakierës" -#: ../src/iop/colorbalancergb.c:2105 ../src/iop/colorbalancergb.c:2114 +#: ../src/iop/colorbalancergb.c:2176 ../src/iop/colorbalancergb.c:2185 msgid "select color of the checkerboard from a swatch" msgstr "përzgjidhni ngjyrën e skakierës nga mostra" -#: ../src/iop/colorbalancergb.c:2111 +#: ../src/iop/colorbalancergb.c:2182 msgid "checkerboard color 2" msgstr "ngjyra 2 e skakierës" -#: ../src/iop/colorbalancergb.c:2121 +#: ../src/iop/colorbalancergb.c:2192 msgid "checkerboard size" msgstr "përmasat e skakierës" @@ -14817,18 +15380,18 @@ #: ../src/iop/colorchecker.c:123 msgid "profile|lut|color grading" -msgstr "profili|lut|gradimi i ngjyrave" +msgstr "profili|lut|etalonimi i ngjyrave" #: ../src/iop/colorchecker.c:129 msgid "perform color space corrections and apply looks" msgstr "korrigjoni hapësirën e ngjyrave dhe aplikoni stilet" #: ../src/iop/colorchecker.c:131 ../src/iop/colorchecker.c:133 -#: ../src/iop/colorize.c:106 ../src/iop/colormapping.c:154 -#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:136 -#: ../src/iop/colorzones.c:146 ../src/iop/defringe.c:83 ../src/iop/levels.c:139 -#: ../src/iop/monochrome.c:99 ../src/iop/shadhi.c:198 -#: ../src/iop/tonecurve.c:212 ../src/iop/vibrance.c:96 +#: ../src/iop/colorize.c:99 ../src/iop/colormapping.c:154 +#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:121 +#: ../src/iop/colorzones.c:147 ../src/iop/defringe.c:83 ../src/iop/levels.c:141 +#: ../src/iop/monochrome.c:101 ../src/iop/shadhi.c:145 +#: ../src/iop/tonecurve.c:185 ../src/iop/vibrance.c:98 msgid "linear or non-linear, Lab, display-referred" msgstr "linear ose jolinear, Lab, sipas ekranit" @@ -14836,40 +15399,40 @@ msgid "defined by profile, Lab" msgstr "përcaktohet nga profili, Lab" -#: ../src/iop/colorchecker.c:294 +#: ../src/iop/colorchecker.c:308 msgid "it8 skin tones" msgstr "tonet e lëkurës it8" -#: ../src/iop/colorchecker.c:310 +#: ../src/iop/colorchecker.c:324 msgid "Helmholtz/Kohlrausch monochrome" msgstr "Helmholtz/Kohlrausch monokromatik" -#: ../src/iop/colorchecker.c:327 +#: ../src/iop/colorchecker.c:341 msgid "Fuji Astia emulation" msgstr "imitim i Fuji Astia" -#: ../src/iop/colorchecker.c:341 +#: ../src/iop/colorchecker.c:355 msgid "Fuji Classic Chrome emulation" msgstr "imitim i Fuji Classic Chrome" -#: ../src/iop/colorchecker.c:355 +#: ../src/iop/colorchecker.c:369 msgid "Fuji Monochrome emulation" msgstr "imitim i Fuji Monochrome" -#: ../src/iop/colorchecker.c:369 +#: ../src/iop/colorchecker.c:383 msgid "Fuji Provia emulation" msgstr "imitim i Fuji Provia" -#: ../src/iop/colorchecker.c:383 +#: ../src/iop/colorchecker.c:397 msgid "Fuji Velvia emulation" msgstr "imitim i Fuji Velvia" -#: ../src/iop/colorchecker.c:841 ../src/iop/colorchecker.c:1436 +#: ../src/iop/colorchecker.c:846 ../src/iop/colorchecker.c:1441 #, c-format msgid "patch #%d" msgstr "arna #%d" -#: ../src/iop/colorchecker.c:1283 +#: ../src/iop/colorchecker.c:1288 #, c-format msgid "" "(%2.2f %2.2f %2.2f)\n" @@ -14886,15 +15449,15 @@ "arnat fshihen me klikim djathtas\n" "ngjyrat e arnave zëvendësohen me shift+klikim" -#: ../src/iop/colorchecker.c:1431 +#: ../src/iop/colorchecker.c:1436 msgid "patch" msgstr "arna" -#: ../src/iop/colorchecker.c:1432 +#: ../src/iop/colorchecker.c:1437 msgid "color checker patch" msgstr "arna e skakierës së ngjyrave" -#: ../src/iop/colorchecker.c:1446 +#: ../src/iop/colorchecker.c:1451 msgid "" "adjust target color Lab 'L' channel\n" "lower values darken target color while higher brighten it" @@ -14902,7 +15465,7 @@ "rregulloni ngjyrën e synuar Lab në kanalin 'L'\n" "vlerat e ulëta e errësojnë ngjyrën e synuar, ndërsa të lartat e ndriçojnë" -#: ../src/iop/colorchecker.c:1454 +#: ../src/iop/colorchecker.c:1459 msgid "" "adjust target color Lab 'a' channel\n" "lower values shift target color towards greens while higher shift towards " @@ -14912,11 +15475,11 @@ "vlerat e ulëta e zhvendosin ngjyrën e synuar drejt të gjelbrave, ndërsa të " "lartat drejt të kuqërremeve" -#: ../src/iop/colorchecker.c:1457 +#: ../src/iop/colorchecker.c:1462 msgid "green-magenta offset" msgstr "ofseti i gjelbër-kuqërremes" -#: ../src/iop/colorchecker.c:1466 +#: ../src/iop/colorchecker.c:1471 msgid "" "adjust target color Lab 'b' channel\n" "lower values shift target color towards blues while higher shift towards " @@ -14926,11 +15489,11 @@ "vlerat e ulëta e zhvendosin ngjyrën e synuar drejt bluve, ndërsa të lartat " "drejt të verdhave" -#: ../src/iop/colorchecker.c:1469 +#: ../src/iop/colorchecker.c:1474 msgid "blue-yellow offset" msgstr "ofseti i blu-verdhës" -#: ../src/iop/colorchecker.c:1478 +#: ../src/iop/colorchecker.c:1483 msgid "" "adjust target color saturation\n" "adjusts 'a' and 'b' channels of target color in Lab space simultaneously\n" @@ -14941,11 +15504,11 @@ "rregulloni njëkohësisht kanalet 'a' dhe 'b' në hapësirën e ngjyrave Lab\n" "vlerat e ulëta e ulin saturimin, ndërsa vlerat e larta e rritin atë" -#: ../src/iop/colorchecker.c:1487 +#: ../src/iop/colorchecker.c:1492 msgid "target color" msgstr "ngjyra e synuar" -#: ../src/iop/colorchecker.c:1490 +#: ../src/iop/colorchecker.c:1495 msgid "" "control target color of the patches\n" "relative - target color is relative from the patch original color\n" @@ -14955,15 +15518,15 @@ "relative - ngjyra e synuar varet nga ngjyra origjinale e arnës\n" "absolute - ngjyra e synuar është vlerë absolute në Lab" -#: ../src/iop/colorchecker.c:1494 +#: ../src/iop/colorchecker.c:1499 msgid "absolute" msgstr "absolute" -#: ../src/iop/colorcontrast.c:85 +#: ../src/iop/colorcontrast.c:77 msgid "color contrast" msgstr "kontrasti i ngjyrave" -#: ../src/iop/colorcontrast.c:95 +#: ../src/iop/colorcontrast.c:87 msgid "" "increase saturation and separation between\n" "opposite colors" @@ -14971,7 +15534,7 @@ "rritni saturimin dhe ndarjen e ngjyrave\n" "të kundërta" -#: ../src/iop/colorcontrast.c:324 +#: ../src/iop/colorcontrast.c:330 msgid "" "steepness of the a* curve in Lab\n" "lower values desaturate greens and magenta while higher saturate them" @@ -14980,7 +15543,7 @@ "vlerat e ulëta ulin ngjyrat e gjelbra dhe të kuqërreme, ndërsa të lartat i " "rritin ato" -#: ../src/iop/colorcontrast.c:331 +#: ../src/iop/colorcontrast.c:337 msgid "" "steepness of the b* curve in Lab\n" "lower values desaturate blues and yellows while higher saturate them" @@ -14996,19 +15559,19 @@ msgid "correct white balance selectively for blacks and whites" msgstr "korrigjoni ndaras balancimin e të zezave dhe të bardhave" -#: ../src/iop/colorcorrection.c:107 +#: ../src/iop/colorcorrection.c:109 msgid "warm tone" msgstr "ton i ngrohtë" -#: ../src/iop/colorcorrection.c:115 +#: ../src/iop/colorcorrection.c:117 msgid "warming filter" msgstr "filtër i ngrohtë" -#: ../src/iop/colorcorrection.c:123 +#: ../src/iop/colorcorrection.c:125 msgid "cooling filter" msgstr "filtër i ftohtë" -#: ../src/iop/colorcorrection.c:257 +#: ../src/iop/colorcorrection.c:250 msgid "" "drag the line for split-toning. bright means highlights, dark means shadows. " "use mouse wheel to change saturation." @@ -15016,7 +15579,7 @@ "ndani tonalitetin duke tërhequr vijën. të çelëtat janë reflekset, kurse të " "errëtat - hijet. ndryshoni saturimin me rrotën e mausit." -#: ../src/iop/colorcorrection.c:276 +#: ../src/iop/colorcorrection.c:269 msgid "set the global saturation" msgstr "saturimi i ngjyrave në tërësi" @@ -15033,7 +15596,7 @@ "për të rilevuar vlerat RGB nëpërmjet profileve kolorimetrike" #: ../src/iop/colorin.c:133 ../src/iop/colorout.c:89 ../src/iop/demosaic.c:293 -#: ../src/iop/rawprepare.c:158 +#: ../src/iop/rawprepare.c:174 msgid "mandatory" msgstr "i detyrueshëm" @@ -15041,7 +15604,7 @@ msgid "defined by profile" msgstr "përcaktohet nga profili" -#: ../src/iop/colorin.c:542 +#: ../src/iop/colorin.c:582 #, c-format msgid "" "can't extract matrix from colorspace `%s', it will be replaced by Rec2020 " @@ -15050,24 +15613,24 @@ "nuk e nxjerr dot matricën nga hapësira e ngjyrave `%s', do të zëvendësohet " "me RGB Rec2020!" -#: ../src/iop/colorin.c:1424 +#: ../src/iop/colorin.c:1362 #, c-format msgid "`%s' color matrix not found!" msgstr "nuk gjendet matrica e ngjyrave `%s'!" -#: ../src/iop/colorin.c:1463 +#: ../src/iop/colorin.c:1401 msgid "input profile could not be generated!" msgstr "nuk mund të krijohej profili input!" -#: ../src/iop/colorin.c:1560 +#: ../src/iop/colorin.c:1498 msgid "unsupported input profile has been replaced by linear Rec709 RGB!" msgstr "profili i pagarantuar input është zëvendësuar me RGB Rec709 linear!" -#: ../src/iop/colorin.c:1844 +#: ../src/iop/colorin.c:1782 msgid "external ICC profiles" msgstr "profilet ICC të jashtme" -#: ../src/iop/colorin.c:1889 +#: ../src/iop/colorin.c:1827 #, c-format msgid "" "embedded ICC profile properties:\n" @@ -15090,43 +15653,43 @@ "kopirajti: <b>%s</b>\n" "\n" -#: ../src/iop/colorin.c:2084 +#: ../src/iop/colorin.c:2022 msgid "input profile" msgstr "profili input" -#: ../src/iop/colorin.c:2088 +#: ../src/iop/colorin.c:2026 msgid "working profile" msgstr "profili i punës" -#: ../src/iop/colorin.c:2097 +#: ../src/iop/colorin.c:2035 msgid "working ICC profiles" msgstr "profilet ICC të punës" -#: ../src/iop/colorin.c:2109 +#: ../src/iop/colorin.c:2047 msgid "confine Lab values to gamut of RGB color space" msgstr "kufizoni vlerat Lab në hapësirën e ngjyrave RGB" -#: ../src/iop/colorize.c:84 +#: ../src/iop/colorize.c:75 msgid "colorize" msgstr "ngjyrimi" -#: ../src/iop/colorize.c:104 +#: ../src/iop/colorize.c:97 msgid "overlay a solid color on the image" msgstr "shtroni një ngjyrë uniforme mbi imazh" -#: ../src/iop/colorize.c:341 ../src/iop/splittoning.c:485 +#: ../src/iop/colorize.c:354 ../src/iop/splittoning.c:481 msgid "select the hue tone" msgstr "toni i nuancës" -#: ../src/iop/colorize.c:347 +#: ../src/iop/colorize.c:360 msgid "select the saturation shadow tone" msgstr "toni i saturimit të ngjyrave në hije" -#: ../src/iop/colorize.c:351 +#: ../src/iop/colorize.c:364 msgid "lightness of color" msgstr "ndriçimi i ngjyrave" -#: ../src/iop/colorize.c:355 +#: ../src/iop/colorize.c:368 msgid "mix value of source lightness" msgstr "kombinimi i ndriçimit burimor" @@ -15140,35 +15703,35 @@ msgstr "" "transferoni paletën e ngjyrave dhe ndarjen tonale nga një imazh te tjetri" -#: ../src/iop/colormapping.c:1030 +#: ../src/iop/colormapping.c:1019 msgid "source clusters:" msgstr "grupet burimore:" -#: ../src/iop/colormapping.c:1036 +#: ../src/iop/colormapping.c:1025 msgid "target clusters:" msgstr "grupet e synuara:" -#: ../src/iop/colormapping.c:1045 +#: ../src/iop/colormapping.c:1034 msgid "acquire as source" msgstr "marr si burim" -#: ../src/iop/colormapping.c:1049 +#: ../src/iop/colormapping.c:1038 msgid "analyze this image as a source image" msgstr "analizoni imazhin si burim" -#: ../src/iop/colormapping.c:1051 +#: ../src/iop/colormapping.c:1040 msgid "acquire as target" msgstr "marr si synim" -#: ../src/iop/colormapping.c:1055 +#: ../src/iop/colormapping.c:1044 msgid "analyze this image as a target image" msgstr "analizoni imazhin si synim" -#: ../src/iop/colormapping.c:1058 +#: ../src/iop/colormapping.c:1047 msgid "number of clusters to find in image. value change resets all clusters" msgstr "numri i grupeve të gjetura në imazh" -#: ../src/iop/colormapping.c:1061 +#: ../src/iop/colormapping.c:1050 msgid "" "how clusters are mapped. low values: based on color proximity, high values: " "based on color dominance" @@ -15176,7 +15739,7 @@ "rilevimi i grupeve. vlerat e ulëta: sipas afërsisë së ngjyrave, vlerat e " "larta: sipas dominancës së ngjyrave" -#: ../src/iop/colormapping.c:1066 +#: ../src/iop/colormapping.c:1055 msgid "level of histogram equalization" msgstr "shkalla e nivelimit të histogramit" @@ -15196,115 +15759,115 @@ msgid "non-linear, RGB or Lab, display-referred" msgstr "jolinear, RGB ose Lab, sipas ekranit" -#: ../src/iop/colorout.c:679 +#: ../src/iop/colorout.c:695 msgid "missing output profile has been replaced by sRGB!" msgstr "profili i mangët output është zëvendësuar me sRGB!" -#: ../src/iop/colorout.c:701 +#: ../src/iop/colorout.c:717 msgid "missing softproof profile has been replaced by sRGB!" msgstr "profili për bocën e ngjyrave është zëvendësuar me sRGB!" -#: ../src/iop/colorout.c:744 +#: ../src/iop/colorout.c:760 msgid "unsupported output profile has been replaced by sRGB!" msgstr "profili i pagarantuar output është zëvendësuar me sRGB!" -#: ../src/iop/colorout.c:869 +#: ../src/iop/colorout.c:885 msgid "output intent" msgstr "synimi output" -#: ../src/iop/colorout.c:870 +#: ../src/iop/colorout.c:886 msgid "rendering intent" msgstr "synimi i zhvillimit" -#: ../src/iop/colorout.c:872 ../src/libs/export.c:1246 +#: ../src/iop/colorout.c:888 ../src/libs/export.c:1358 #: ../src/libs/print_settings.c:2475 ../src/libs/print_settings.c:2824 -#: ../src/views/darkroom.c:2518 ../src/views/lighttable.c:1176 +#: ../src/views/darkroom.c:2359 ../src/views/lighttable.c:1176 msgid "perceptual" msgstr "perceptiv" -#: ../src/iop/colorout.c:873 ../src/libs/export.c:1247 +#: ../src/iop/colorout.c:889 ../src/libs/export.c:1359 #: ../src/libs/print_settings.c:2476 ../src/libs/print_settings.c:2825 -#: ../src/views/darkroom.c:2519 ../src/views/lighttable.c:1177 +#: ../src/views/darkroom.c:2360 ../src/views/lighttable.c:1177 msgid "relative colorimetric" msgstr "kolorimetria relative" -#: ../src/iop/colorout.c:874 ../src/libs/export.c:1248 +#: ../src/iop/colorout.c:890 ../src/libs/export.c:1360 #: ../src/libs/print_settings.c:2477 ../src/libs/print_settings.c:2826 -#: ../src/views/darkroom.c:2520 ../src/views/lighttable.c:1178 +#: ../src/views/darkroom.c:2361 ../src/views/lighttable.c:1178 msgctxt "rendering intent" msgid "saturation" msgstr "saturimi" -#: ../src/iop/colorout.c:875 ../src/libs/export.c:1249 +#: ../src/iop/colorout.c:891 ../src/libs/export.c:1361 #: ../src/libs/print_settings.c:2478 ../src/libs/print_settings.c:2827 -#: ../src/views/darkroom.c:2521 ../src/views/lighttable.c:1179 +#: ../src/views/darkroom.c:2362 ../src/views/lighttable.c:1179 msgid "absolute colorimetric" msgstr "kolorimetria absolute" -#: ../src/iop/colorout.c:893 +#: ../src/iop/colorout.c:909 msgid "export ICC profiles" msgstr "profilet ICC të eksportimit" -#: ../src/iop/colorreconstruction.c:129 +#: ../src/iop/colorreconstruction.c:114 msgid "color reconstruction" msgstr "rindërtimi i ngjyrave" -#: ../src/iop/colorreconstruction.c:134 +#: ../src/iop/colorreconstruction.c:119 msgid "recover clipped highlights by propagating surrounding colors" msgstr "" "rikuperoni reflekset e shkurtuara duke i mbushur me ngjyrat e përafërta" -#: ../src/iop/colorreconstruction.c:628 ../src/iop/colorreconstruction.c:1040 -#: ../src/iop/globaltonemap.c:193 ../src/iop/globaltonemap.c:362 -#: ../src/iop/hazeremoval.c:553 ../src/iop/hazeremoval.c:788 -#: ../src/iop/levels.c:336 +#: ../src/iop/colorreconstruction.c:647 ../src/iop/colorreconstruction.c:1053 +#: ../src/iop/globaltonemap.c:227 ../src/iop/globaltonemap.c:396 +#: ../src/iop/hazeremoval.c:541 ../src/iop/hazeremoval.c:776 +#: ../src/iop/levels.c:358 msgid "inconsistent output" msgstr "output i paqëndrueshëm" -#: ../src/iop/colorreconstruction.c:666 +#: ../src/iop/colorreconstruction.c:685 msgid "module `color reconstruction' failed" msgstr "problem me modulin `rindërtimi i ngjyrave'" -#: ../src/iop/colorreconstruction.c:1237 +#: ../src/iop/colorreconstruction.c:1246 msgid "spatial" msgstr "hapësinor" -#: ../src/iop/colorreconstruction.c:1238 +#: ../src/iop/colorreconstruction.c:1247 msgid "range" msgstr "intervali" -#: ../src/iop/colorreconstruction.c:1239 +#: ../src/iop/colorreconstruction.c:1248 msgid "precedence" msgstr "precedenca" -#: ../src/iop/colorreconstruction.c:1255 +#: ../src/iop/colorreconstruction.c:1264 msgid "pixels with lightness values above this threshold are corrected" msgstr "pikselët që e kalojnë pragun e ndriçimit do të korrigjohen" -#: ../src/iop/colorreconstruction.c:1256 +#: ../src/iop/colorreconstruction.c:1265 msgid "how far to look for replacement colors in spatial dimensions" msgstr "" "sa larg duhet kërkuar për ngjyrat zëvendësuese në dimensionet hapësinore" -#: ../src/iop/colorreconstruction.c:1257 +#: ../src/iop/colorreconstruction.c:1266 msgid "how far to look for replacement colors in the luminance dimension" msgstr "" "sa larg duhet kërkuar për ngjyrat zëvendësuese në dimensionin e luminancës" -#: ../src/iop/colorreconstruction.c:1258 +#: ../src/iop/colorreconstruction.c:1267 msgid "if and how to give precedence to specific replacement colors" msgstr "kur dhe si u jepet përparësi ngjyrave të caktuara zëvendësuese" -#: ../src/iop/colorreconstruction.c:1259 +#: ../src/iop/colorreconstruction.c:1268 msgid "the hue tone which should be given precedence over other hue tones" msgstr "toni i nuancës që merr përparësi mbi tonet e nuancave të tjera" -#: ../src/iop/colorreconstruction.c:1261 ../src/iop/demosaic.c:1277 -#: ../src/iop/highlights.c:1168 +#: ../src/iop/colorreconstruction.c:1270 ../src/iop/demosaic.c:1324 +#: ../src/iop/highlights.c:1258 msgid "not applicable" msgstr "nuk aplikohet" -#: ../src/iop/colorreconstruction.c:1262 +#: ../src/iop/colorreconstruction.c:1271 msgid "no highlights reconstruction for monochrome images" msgstr "nuk rindërtohen reflekset e imazheve monokromatike" @@ -15318,7 +15881,7 @@ "ky modul është i vjetër. lutemi të përdorni më mirë modulin për rilevimin e " "ngjyrave." -#: ../src/iop/colortransfer.c:439 +#: ../src/iop/colortransfer.c:441 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -15328,44 +15891,44 @@ "vetëm për ta fikur që të kaloni në modulin e ri\n" "për rilevimin të ngjyrave." -#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2332 +#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2573 msgid "color zones" msgstr "ngjyrimi zonal" -#: ../src/iop/colorzones.c:144 +#: ../src/iop/colorzones.c:145 msgid "selectively shift hues, chroma and lightness of pixels" msgstr "" "zhvendosni në mënyrë selektive nuancat, kromën dhe ndriçimin e pikselëve" -#: ../src/iop/colorzones.c:606 +#: ../src/iop/colorzones.c:684 msgid "B&W: with red" msgstr "B/Z: me të kuqe" -#: ../src/iop/colorzones.c:629 +#: ../src/iop/colorzones.c:707 msgid "B&W: with skin tones" msgstr "B/Z: me tone lëkure" -#: ../src/iop/colorzones.c:652 +#: ../src/iop/colorzones.c:732 msgid "polarizing filter" msgstr "filtër polarizues" -#: ../src/iop/colorzones.c:673 +#: ../src/iop/colorzones.c:753 msgid "natural skin tones" msgstr "tone natyrale të lëkurës" -#: ../src/iop/colorzones.c:704 +#: ../src/iop/colorzones.c:784 msgid "B&W: film" msgstr "B/Z: film" -#: ../src/iop/colorzones.c:724 +#: ../src/iop/colorzones.c:804 msgid "HSL base setting" msgstr "parametri bazë HSL" -#: ../src/iop/colorzones.c:2264 +#: ../src/iop/colorzones.c:2500 msgid "orange" msgstr "portokalli" -#: ../src/iop/colorzones.c:2421 ../src/iop/rgbcurve.c:1375 +#: ../src/iop/colorzones.c:2673 ../src/iop/rgbcurve.c:1375 msgid "" "create a curve based on an area from the image\n" "drag to create a flat curve\n" @@ -15377,48 +15940,48 @@ "kurba pozitive krijohet me ctrl+tërheqje\n" "kurba negative krijohet me shift+tërheqje" -#: ../src/iop/colorzones.c:2425 ../src/iop/rgbcurve.c:1379 +#: ../src/iop/colorzones.c:2677 ../src/iop/rgbcurve.c:1379 msgid "create curve" msgstr "krijoni kurbën" #. edit by area -#: ../src/iop/colorzones.c:2442 +#: ../src/iop/colorzones.c:2696 msgid "edit by area" msgstr "përpunoj sipas zonës" -#: ../src/iop/colorzones.c:2447 +#: ../src/iop/colorzones.c:2702 msgid "edit the curve nodes by area" msgstr "përpunoj nyjat e kurbës sipas zonës" -#: ../src/iop/colorzones.c:2454 +#: ../src/iop/colorzones.c:2710 msgid "display selection" msgstr "përzgjedhja e ekranit" -#: ../src/iop/colorzones.c:2463 +#: ../src/iop/colorzones.c:2722 msgid "choose selection criterion, will be the abscissa in the graph" msgstr "caktoni kriterin e përzgjedhjes, në grafik do të jetë abshisa" -#: ../src/iop/colorzones.c:2466 +#: ../src/iop/colorzones.c:2725 msgid "choose between a smoother or stronger effect" msgstr "zgjidhni efektin më të butë ose më të fortë" -#: ../src/iop/colorzones.c:2494 ../src/iop/rgbcurve.c:1410 -#: ../src/iop/tonecurve.c:1172 +#: ../src/iop/colorzones.c:2762 ../src/iop/rgbcurve.c:1410 +#: ../src/iop/tonecurve.c:1194 msgid "interpolation method" msgstr "metoda e interpolimit" -#: ../src/iop/colorzones.c:2496 ../src/iop/rgbcurve.c:1412 -#: ../src/iop/tonecurve.c:1174 +#: ../src/iop/colorzones.c:2764 ../src/iop/rgbcurve.c:1412 +#: ../src/iop/tonecurve.c:1196 msgid "centripetal spline" msgstr "lakore qendërsynuese" -#: ../src/iop/colorzones.c:2497 ../src/iop/rgbcurve.c:1413 -#: ../src/iop/tonecurve.c:1175 +#: ../src/iop/colorzones.c:2765 ../src/iop/rgbcurve.c:1413 +#: ../src/iop/tonecurve.c:1197 msgid "monotonic spline" msgstr "lakore monotonike" -#: ../src/iop/colorzones.c:2500 ../src/iop/rgbcurve.c:1416 -#: ../src/iop/tonecurve.c:1177 +#: ../src/iop/colorzones.c:2768 ../src/iop/rgbcurve.c:1416 +#: ../src/iop/tonecurve.c:1199 msgid "" "change this method if you see oscillations or cusps in the curve\n" "- cubic spline is better to produce smooth curves but oscillates when nodes " @@ -15436,25 +15999,25 @@ "- monotonikja është më e mirë për saktësinë e funksioneve analitike (log, " "gamma, exp)" -#: ../src/iop/crop.c:132 +#: ../src/iop/crop.c:122 msgid "crop" msgstr "prerja" -#: ../src/iop/crop.c:137 +#: ../src/iop/crop.c:127 msgid "reframe|distortion" msgstr "inkuadroj|deformimi" -#: ../src/iop/crop.c:143 +#: ../src/iop/crop.c:133 msgid "change the framing" msgstr "ndryshoni inkuadrimin" -#: ../src/iop/crop.c:1667 +#: ../src/iop/crop.c:1651 msgid "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag" msgstr "" "<b>ripërmasohet</b> me tërheqjen e mausit, <b>ruani raportin përmasor</b>: " "shift+tërheqje" -#: ../src/iop/crop.c:1676 +#: ../src/iop/crop.c:1660 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag" @@ -15478,7 +16041,7 @@ "ky modul është i vjetër. lutemi të përdorni më mirë modulin për aberracionin " "kromatik." -#: ../src/iop/defringe.c:415 +#: ../src/iop/defringe.c:417 msgid "" "method for color protection:\n" " - global average: fast, might show slightly wrong previews in high " @@ -15498,11 +16061,11 @@ "uljen e ngjyrave kur nevojitet\n" "- statike: e shpejtë, përdor vetëm pragun si kufi statik" -#: ../src/iop/defringe.c:422 +#: ../src/iop/defringe.c:424 msgid "radius for detecting fringe" msgstr "rrezja për diktimin e efektit skajor" -#: ../src/iop/defringe.c:425 +#: ../src/iop/defringe.c:427 msgid "threshold for defringe, higher values mean less defringing" msgstr "" "pragu për heqjen e efektit skajor, vlerat e larta nënkuptojnë heqje të pakët " @@ -15516,12 +16079,12 @@ msgid "reconstruct full RGB pixels from a sensor color filter array reading" msgstr "rindërtoni plotësisht pikselët RGB sipas filtrit me ngjyrë të sensorit" -#: ../src/iop/demosaic.c:1086 +#: ../src/iop/demosaic.c:1133 #, c-format msgid "`%s' color matrix not found for 4bayer image!" msgstr "nuk gjendet matrica e ngjyrave `%s' për imazhin 4bayer!" -#: ../src/iop/demosaic.c:1238 +#: ../src/iop/demosaic.c:1285 msgid "" "Bayer sensor demosaicing method, PPG and RCD are fast, AMaZE and LMMSE are " "slow.\n" @@ -15533,7 +16096,7 @@ "LMMSE funksionon më mirë me imazhet me ISO të larta.\n" "dematricuesit dysh e dyfishojnë kohën e procesimit." -#: ../src/iop/demosaic.c:1242 +#: ../src/iop/demosaic.c:1289 msgid "" "X-Trans sensor demosaicing method, Markesteijn 3-pass and frequency domain " "chroma are slow.\n" @@ -15543,11 +16106,11 @@ "frekuenciale janë të ngadalta.\n" "dematricuesit dysh e dyfishojnë kohën e procesimit." -#: ../src/iop/demosaic.c:1248 +#: ../src/iop/demosaic.c:1295 msgid "Bayer4 sensor demosaicing methods." msgstr "metodat e dematricimit për sensorët Bayer4." -#: ../src/iop/demosaic.c:1252 +#: ../src/iop/demosaic.c:1299 msgid "" "threshold for edge-aware median.\n" "set to 0.0 to switch off\n" @@ -15557,7 +16120,7 @@ "vendoset 0.0 për ta fikur,\n" "vendoset 1.0 për të shpërfillur cepat" -#: ../src/iop/demosaic.c:1257 +#: ../src/iop/demosaic.c:1304 msgid "" "contrast threshold for dual demosaic.\n" "set to 0.0 for high frequency content\n" @@ -15569,7 +16132,7 @@ "vendoset 1.0 për materialet e sheshta\n" "shtypeni që të shihni maskën" -#: ../src/iop/demosaic.c:1265 +#: ../src/iop/demosaic.c:1312 msgid "" "LMMSE refinement steps. the median steps average the output,\n" "refine adds some recalculation of red & blue channels" @@ -15577,49 +16140,49 @@ "hapat e rafinimit LMMSE. hapat medianë e mesatarizojnë outputin,\n" "rafinimi kryen disa përllogaritje shtesë për kanalet kuqe dhe blu" -#: ../src/iop/demosaic.c:1268 +#: ../src/iop/demosaic.c:1315 msgid "how many color smoothing median steps after demosaicing" msgstr "hapat mesatarë për rrafshimin e ngjyrave pas dematricimit" -#: ../src/iop/demosaic.c:1271 +#: ../src/iop/demosaic.c:1318 msgid "green channels matching method" msgstr "metoda e përputhjes së kanaleve gjelbër" -#: ../src/iop/demosaic.c:1278 +#: ../src/iop/demosaic.c:1325 msgid "demosaicing is only used for color raw images" msgstr "dematricimi përdoret vetëm për imazhet bruto me ngjyrë" -#: ../src/iop/denoiseprofile.c:714 +#: ../src/iop/denoiseprofile.c:766 msgid "wavelets: chroma only" msgstr "valëza: vetëm kromën" -#: ../src/iop/denoiseprofile.c:720 +#: ../src/iop/denoiseprofile.c:772 msgid "denoise (profiled)" msgstr "zbutja e zhurmës (e profilizuar)" -#: ../src/iop/denoiseprofile.c:726 +#: ../src/iop/denoiseprofile.c:778 msgid "denoise using noise statistics profiled on sensors" msgstr "zbutni zhurmën duke përdorur statistika të profilizuara për sensorët" -#: ../src/iop/denoiseprofile.c:2846 +#: ../src/iop/denoiseprofile.c:2850 #, c-format msgid "found match for ISO %d" msgstr "gjeti përputhjen për ISO %d" -#: ../src/iop/denoiseprofile.c:2855 +#: ../src/iop/denoiseprofile.c:2859 #, c-format msgid "interpolated from ISO %d and %d" msgstr "interpolohet nga ISO %d dhe %d" -#: ../src/iop/denoiseprofile.c:3719 +#: ../src/iop/denoiseprofile.c:3723 msgid "Y0" msgstr "Y0" -#: ../src/iop/denoiseprofile.c:3720 +#: ../src/iop/denoiseprofile.c:3724 msgid "U0V0" msgstr "U0V0" -#: ../src/iop/denoiseprofile.c:3760 +#: ../src/iop/denoiseprofile.c:3764 msgid "" "use only with a perfectly\n" "uniform image if you want to\n" @@ -15629,36 +16192,36 @@ "uniformitet perfekt, kur doni të\n" "vlerësoni variancën e zhurmës." -#: ../src/iop/denoiseprofile.c:3766 +#: ../src/iop/denoiseprofile.c:3770 msgid "variance red: " msgstr "varianca kuqe: " -#: ../src/iop/denoiseprofile.c:3770 +#: ../src/iop/denoiseprofile.c:3774 msgid "variance computed on the red channel" msgstr "dinamika e kalkuluar në kanalin kuqe" -#: ../src/iop/denoiseprofile.c:3775 +#: ../src/iop/denoiseprofile.c:3779 msgid "variance green: " msgstr "varianca gjelbër: " -#: ../src/iop/denoiseprofile.c:3779 +#: ../src/iop/denoiseprofile.c:3783 msgid "variance computed on the green channel" msgstr "dinamika e kalkuluar në kanalin gjelbër" -#: ../src/iop/denoiseprofile.c:3784 +#: ../src/iop/denoiseprofile.c:3788 msgid "variance blue: " msgstr "varianca blu: " -#: ../src/iop/denoiseprofile.c:3788 +#: ../src/iop/denoiseprofile.c:3792 msgid "variance computed on the blue channel" msgstr "dinamika e kalkuluar në kanalin blu" -#: ../src/iop/denoiseprofile.c:3799 ../src/libs/export.c:1208 +#: ../src/iop/denoiseprofile.c:3803 ../src/libs/export.c:1320 #: ../src/libs/print_settings.c:2418 ../src/libs/print_settings.c:2774 msgid "profile" msgstr "profili" -#: ../src/iop/denoiseprofile.c:3833 +#: ../src/iop/denoiseprofile.c:3837 msgid "" "adapt denoising according to the\n" "white balance coefficients.\n" @@ -15674,7 +16237,7 @@ "duhet çaktivizuar nëse bashkimi i ngjyrave\n" "është përdorur në instanca të mëparshme." -#: ../src/iop/denoiseprofile.c:3840 +#: ../src/iop/denoiseprofile.c:3844 msgid "" "fix bugs in Anscombe transform resulting\n" "in undersmoothing of the green channel in\n" @@ -15695,11 +16258,11 @@ "do të ndryshojë sasinë e imtësimit. nëse e aktivizoni,\n" "nuk mund të riktheheni te algoritmi i vjetër." -#: ../src/iop/denoiseprofile.c:3850 +#: ../src/iop/denoiseprofile.c:3854 msgid "profile used for variance stabilization" msgstr "profili për stabilizimin e variancës" -#: ../src/iop/denoiseprofile.c:3852 +#: ../src/iop/denoiseprofile.c:3856 msgid "" "method used in the denoising core.\n" "non-local means works best for `lightness' blending,\n" @@ -15709,19 +16272,19 @@ "mënyrat jolokale janë më mirë për bashkimin e `ndriçimeve',\n" "valëzat janë më mirë për bashkimin e `ngjyrave'" -#: ../src/iop/denoiseprofile.c:3856 +#: ../src/iop/denoiseprofile.c:3860 msgid "" "color representation used within the algorithm.\n" "RGB keeps the RGB channels separated,\n" "while Y0U0V0 combine the channels to\n" "denoise chroma and luma separately." msgstr "" -"paraqitja e ngjyrave që përdoren nga algoritmi.\n" +"interpretimi i ngjyrave që përdoren nga algoritmi.\n" "RGB mban ndaras kanalet RGB,\n" "ndërsa Y0U0V0 ndërthur kanalet në mënyrë që\n" "zhurma e kromës dhe lumës të zbutet ndaras." -#: ../src/iop/denoiseprofile.c:3861 +#: ../src/iop/denoiseprofile.c:3865 msgid "" "radius of the patches to match.\n" "increase for more sharpness on strong edges, and better denoising of smooth " @@ -15735,7 +16298,7 @@ "nëse detajet janë zbutur së tepërmi, uleni vlerën ose rriteni peshën e " "pikselit qendror." -#: ../src/iop/denoiseprofile.c:3867 +#: ../src/iop/denoiseprofile.c:3871 msgid "" "emergency use only: radius of the neighborhood to search patches in. " "increase for better denoising performance, but watch the long runtimes! " @@ -15745,7 +16308,7 @@ "për të përmirësuar performancën e imtësimit, por kini parasysh vonesat! " "rrezet e mëdha mund të jenë shumë të ngadalta, sa për dijeni." -#: ../src/iop/denoiseprofile.c:3873 +#: ../src/iop/denoiseprofile.c:3877 msgid "" "scattering of the neighborhood to search patches in.\n" "increase for better coarse-grain noise reduction.\n" @@ -15755,7 +16318,7 @@ "rriteni për të ulur kokrrizat e ashpra.\n" "nuk ndikon në kohën e ekzekutimit." -#: ../src/iop/denoiseprofile.c:3877 +#: ../src/iop/denoiseprofile.c:3881 msgid "" "increase the weight of the central pixel\n" "of the patch in the patch comparison.\n" @@ -15767,11 +16330,11 @@ "është me dobi për rikuperimin e detajeve\n" "kur madhësia e arnës është mjaft e madhe." -#: ../src/iop/denoiseprofile.c:3881 +#: ../src/iop/denoiseprofile.c:3885 msgid "finetune denoising strength" msgstr "rregulloni forcën e imtësimit" -#: ../src/iop/denoiseprofile.c:3883 +#: ../src/iop/denoiseprofile.c:3887 msgid "" "controls the way parameters are autoset\n" "increase if shadows are not denoised enough\n" @@ -15783,7 +16346,7 @@ "ose nëse ka mbetur zhurma e kromës.\n" "kjo mund të ndodhë te fotot e nënekspozuara." -#: ../src/iop/denoiseprofile.c:3888 +#: ../src/iop/denoiseprofile.c:3892 msgid "" "finetune shadows denoising.\n" "decrease to denoise more aggressively\n" @@ -15793,7 +16356,7 @@ "uleni për të zbutur më fort zhurmën\n" "në zonat e errëta të imazhit." -#: ../src/iop/denoiseprofile.c:3892 +#: ../src/iop/denoiseprofile.c:3896 msgid "" "correct color cast in shadows.\n" "decrease if shadows are too purple.\n" @@ -15803,7 +16366,7 @@ "uleni nëse hijet janë tepër vjollcë.\n" "rriteni nëse hijet janë tepër të gjelbra." -#: ../src/iop/denoiseprofile.c:3896 +#: ../src/iop/denoiseprofile.c:3900 msgid "" "upgrade the variance stabilizing algorithm.\n" "new algorithm extends the current one.\n" @@ -15835,68 +16398,68 @@ "pjesët e dëmtuara të imazhit ose për të ulur sfumimin me dekonvolucion." #. deblurring presets -#: ../src/iop/diffuse.c:219 +#: ../src/iop/diffuse.c:246 msgid "lens deblur: soft" msgstr "desfumoj objektivin: butë" -#: ../src/iop/diffuse.c:244 +#: ../src/iop/diffuse.c:271 msgid "lens deblur: medium" msgstr "desfumoj objektivin: mesëm" -#: ../src/iop/diffuse.c:269 +#: ../src/iop/diffuse.c:296 msgid "lens deblur: hard" msgstr "desfumoj objektivin: fort" -#: ../src/iop/diffuse.c:295 +#: ../src/iop/diffuse.c:322 msgid "dehaze" msgstr "çbrymëzoj" -#: ../src/iop/diffuse.c:321 +#: ../src/iop/diffuse.c:348 msgid "denoise: fine" msgstr "zbut zhurmën: fine" -#: ../src/iop/diffuse.c:346 +#: ../src/iop/diffuse.c:373 msgid "denoise: medium" msgstr "zbut zhurmën: mesatare" -#: ../src/iop/diffuse.c:371 +#: ../src/iop/diffuse.c:398 msgid "denoise: coarse" msgstr "zbut zhurmën: ashpër" -#: ../src/iop/diffuse.c:446 +#: ../src/iop/diffuse.c:473 msgid "sharpen demosaicing: no AA filter" msgstr "qartësoj dematricimin: pa filtër AA" -#: ../src/iop/diffuse.c:472 +#: ../src/iop/diffuse.c:499 msgid "sharpen demosaicing: AA filter" msgstr "qartësoj dematricimin: me filtër AA" -#: ../src/iop/diffuse.c:499 +#: ../src/iop/diffuse.c:526 msgid "simulate watercolor" msgstr "simuloj akuarelin" -#: ../src/iop/diffuse.c:524 +#: ../src/iop/diffuse.c:551 msgid "simulate line drawing" msgstr "simuloj vizatimin me laps" -#: ../src/iop/diffuse.c:576 +#: ../src/iop/diffuse.c:603 msgid "inpaint highlights" msgstr "pikturoj reflekset" #. fast presets for slow hardware -#: ../src/iop/diffuse.c:603 +#: ../src/iop/diffuse.c:630 msgid "sharpness: fast" msgstr "qartësimi: shpejt" -#: ../src/iop/diffuse.c:655 +#: ../src/iop/diffuse.c:682 msgid "sharpness: strong" msgstr "qartësimi: fort" -#: ../src/iop/diffuse.c:680 +#: ../src/iop/diffuse.c:707 msgid "local contrast: fast" msgstr "kontrasti lokal: shpejt" -#: ../src/iop/diffuse.c:1391 ../src/iop/diffuse.c:1666 +#: ../src/iop/diffuse.c:1418 ../src/iop/diffuse.c:1693 msgid "diffuse/sharpen failed to allocate memory, check your RAM settings" msgstr "" "problem me racionimin e memories nga difuzimi/qartësimi, kontrolloni " @@ -15904,13 +16467,13 @@ #. Additional parameters #. Camera settings -#: ../src/iop/diffuse.c:1782 ../src/iop/splittoning.c:537 +#: ../src/iop/diffuse.c:1797 ../src/iop/splittoning.c:533 #: ../src/libs/camera.c:486 msgctxt "section" msgid "properties" msgstr "karakteristikat" -#: ../src/iop/diffuse.c:1788 +#: ../src/iop/diffuse.c:1803 msgid "" "more iterations make the effect stronger but the module slower.\n" "this is analogous to giving more time to the diffusion reaction.\n" @@ -15922,7 +16485,7 @@ "nëse keni në plan të qartësoni ose pikturoni imazhin,\n" "numri i shtuar i përsëritjeve e ndihmon rindërtimin." -#: ../src/iop/diffuse.c:1797 +#: ../src/iop/diffuse.c:1812 msgid "" "main scale of the diffusion.\n" "zero makes diffusion act on the finest details more heavily.\n" @@ -15936,7 +16499,7 @@ "lëreni zero për të kryer desfumim dhe imtësim.\n" "rriteni për të ndryshuar kontrastin lokal." -#: ../src/iop/diffuse.c:1807 +#: ../src/iop/diffuse.c:1822 msgid "" "width of the diffusion around the central radius.\n" "high values diffuse on a large band of radii.\n" @@ -15950,12 +16513,12 @@ "nëse keni në plan të desfumoni imazhin,\n" "rrezja duhet të jetë sa gjerësia e sfumimit me objektiv." -#: ../src/iop/diffuse.c:1814 +#: ../src/iop/diffuse.c:1829 msgctxt "section" msgid "speed (sharpen ↔ diffuse)" msgstr "shpejtësia (qartësimi ↔ difuzimi)" -#: ../src/iop/diffuse.c:1821 +#: ../src/iop/diffuse.c:1836 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 1st order anisotropy (set below).\n" @@ -15971,7 +16534,7 @@ "vlerat pozitive janë për difuzimin dhe sfumimin,\n" "zeroja nuk bën asgjë." -#: ../src/iop/diffuse.c:1831 +#: ../src/iop/diffuse.c:1846 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 2nd order anisotropy (set below).\n" @@ -15987,7 +16550,7 @@ "vlerat pozitive janë për difuzimin dhe sfumimin,\n" "zeroja nuk bën asgjë." -#: ../src/iop/diffuse.c:1841 +#: ../src/iop/diffuse.c:1856 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 3rd order anisotropy (set below).\n" @@ -16003,7 +16566,7 @@ "vlerat pozitive janë për difuzimin dhe sfumimin,\n" "zeroja nuk bën asgjë." -#: ../src/iop/diffuse.c:1851 +#: ../src/iop/diffuse.c:1866 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 4th order anisotropy (set below).\n" @@ -16019,12 +16582,12 @@ "vlerat pozitive janë për difuzimin dhe sfumimin,\n" "zeroja nuk bën asgjë." -#: ../src/iop/diffuse.c:1857 +#: ../src/iop/diffuse.c:1872 msgctxt "section" msgid "direction" msgstr "drejtimi" -#: ../src/iop/diffuse.c:1864 +#: ../src/iop/diffuse.c:1879 msgid "" "direction of 1st order speed (set above).\n" "\n" @@ -16038,7 +16601,7 @@ "vlerat pozitive evitojnë disi cepat (izofotet),\n" "zeroja ndikon njëlloj tek të dyja (izotropike)." -#: ../src/iop/diffuse.c:1873 +#: ../src/iop/diffuse.c:1888 msgid "" "direction of 2nd order speed (set above).\n" "\n" @@ -16052,7 +16615,7 @@ "vlerat pozitive evitojnë disi cepat (izofotet),\n" "zeroja ndikon njëlloj tek të dyja (izotropike)." -#: ../src/iop/diffuse.c:1882 +#: ../src/iop/diffuse.c:1897 msgid "" "direction of 3rd order speed (set above).\n" "\n" @@ -16066,7 +16629,7 @@ "vlerat pozitive evitojnë disi cepat (izofotet),\n" "zeroja ndikon njëlloj tek të dyja (izotropike)." -#: ../src/iop/diffuse.c:1891 +#: ../src/iop/diffuse.c:1906 msgid "" "direction of 4th order speed (set above).\n" "\n" @@ -16080,12 +16643,12 @@ "vlerat pozitive evitojnë disi cepat (izofotet),\n" "zeroja ndikon njëlloj tek të dyja (izotropike)." -#: ../src/iop/diffuse.c:1897 +#: ../src/iop/diffuse.c:1912 msgctxt "section" msgid "edge management" msgstr "menaxhimi i cepave" -#: ../src/iop/diffuse.c:1904 +#: ../src/iop/diffuse.c:1919 msgid "" "increase or decrease the sharpness of the highest frequencies.\n" "can be used to keep details after blooming,\n" @@ -16095,7 +16658,7 @@ "mund të përdoret për të ruajtur detajet pas rrezatimit.\n" "kur e kryeni veç qartësimin, vlerën e shpejtësisë lëreni negative." -#: ../src/iop/diffuse.c:1911 +#: ../src/iop/diffuse.c:1926 msgid "" "define the sensitivity of the variance penalty for edges.\n" "increase to exclude more edges from diffusion,\n" @@ -16105,7 +16668,7 @@ "rriteni që difuzioni të mos aplikohet në shumë cepa,\n" "nëse shfaqen efekte skajore ose aureola." -#: ../src/iop/diffuse.c:1918 +#: ../src/iop/diffuse.c:1933 msgid "" "define the variance threshold between edge amplification and penalty.\n" "decrease if you want pixels on smooth surfaces get a boost,\n" @@ -16117,12 +16680,12 @@ "rriteni nëse shihni zhurmë në sipërfaqet e lëmuara ose\n" "nëse zonat e errëta duken tejet të qarta krahasuar me zonat e çelëta." -#: ../src/iop/diffuse.c:1924 +#: ../src/iop/diffuse.c:1939 msgctxt "section" msgid "diffusion spatiality" msgstr "hapësira e difuzimit" -#: ../src/iop/diffuse.c:1931 +#: ../src/iop/diffuse.c:1946 msgid "" "luminance threshold for the mask.\n" "0. disables the luminance masking and applies the module on the whole " @@ -16140,7 +16703,7 @@ msgstr "retinatura ose posterizimi" #: ../src/iop/dither.c:112 -msgid "dithering|posterization|reduce bit-depth" +msgid "dithering|posterization|reduce bit depth" msgstr "retinatura|posterizimi|ulni thellësinë e bitëve" #: ../src/iop/dither.c:117 @@ -16156,23 +16719,23 @@ msgstr "korrektiv, artistik" #. add the preset. -#: ../src/iop/dither.c:147 +#: ../src/iop/dither.c:149 msgid "dither" msgstr "retinatura" -#: ../src/iop/dither.c:759 +#: ../src/iop/dither.c:761 msgid "radius for blurring step" msgstr "rrezja për masën sfumuese" -#: ../src/iop/dither.c:771 +#: ../src/iop/dither.c:773 msgid "the gradient range where to apply random dither" msgstr "gradienti për aplikimin e retinaturës rastësore" -#: ../src/iop/dither.c:772 +#: ../src/iop/dither.c:774 msgid "gradient range" msgstr "zona e gradientit" -#: ../src/iop/dither.c:780 +#: ../src/iop/dither.c:782 msgid "damping level of random dither" msgstr "dobësimi i retinaturës rastësore" @@ -16180,13 +16743,13 @@ msgid "legacy equalizer" msgstr "niveluesi i trashëguar" -#: ../src/iop/equalizer.c:110 +#: ../src/iop/equalizer.c:112 msgid "" "this module is deprecated. better use contrast equalizer module instead." msgstr "" "ky modul është i vjetër. përdorni më mirë modulin për nivelimin e kontrastit." -#: ../src/iop/equalizer.c:238 +#: ../src/iop/equalizer.c:240 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -16203,33 +16766,33 @@ "rregulloni ekspozimin e pozës sikur të kishit kamerën në dorë\n" "dhe rritni shkëlqimin e ngjyrave si me parametrin ISO" -#: ../src/iop/exposure.c:279 +#: ../src/iop/exposure.c:301 msgid "magic lantern defaults" msgstr "magic lantern standard" -#: ../src/iop/exposure.c:351 ../src/iop/rawoverexposed.c:135 -#: ../src/iop/rawoverexposed.c:254 +#: ../src/iop/exposure.c:373 ../src/iop/rawoverexposed.c:137 +#: ../src/iop/rawoverexposed.c:256 #, c-format msgid "failed to get raw buffer from image `%s'" msgstr "dështoi marrja e buferit bruto nga imazhi `%s'" -#: ../src/iop/exposure.c:629 +#: ../src/iop/exposure.c:647 #, no-c-format msgid "compensate camera exposure (%+.1f EV)" msgstr "kompensoj ekspozimin e kamerës (%+.1f EV)" #. Write report in GUI -#: ../src/iop/exposure.c:813 +#: ../src/iop/exposure.c:831 #, c-format msgid "L : \t%.1f %%" msgstr "L : \t%.1f %%" -#: ../src/iop/exposure.c:945 ../src/libs/history.c:953 +#: ../src/iop/exposure.c:963 ../src/libs/history.c:953 #, c-format msgid "%.2f EV" msgstr "%.2f EV" -#: ../src/iop/exposure.c:1113 +#: ../src/iop/exposure.c:1131 msgid "" "automatically remove the camera exposure bias\n" "this is useful if you exposed the image to the right." @@ -16237,28 +16800,28 @@ "hiqni automatikisht devijimin e ekspozimit në kamerë\n" "është me dobi për imazhet me ekspozim djathtas." -#: ../src/iop/exposure.c:1132 +#: ../src/iop/exposure.c:1150 #, no-c-format msgid "where in the histogram to meter for deflicking. E.g. 50% is median" msgstr "" "pjesa e histogramit ku duhet njehsuar zhvezullimi. p.sh. mediana është 50%" -#: ../src/iop/exposure.c:1138 +#: ../src/iop/exposure.c:1156 msgid "" "where to place the exposure level for processed pics, EV below overexposure." msgstr "" "ku duhet vendosur niveli i ekspozimit për fotot e procesuara, EV nën " "mbiekspozimin." -#: ../src/iop/exposure.c:1142 +#: ../src/iop/exposure.c:1160 msgid "computed EC: " msgstr "EC e kalkuluar: " -#: ../src/iop/exposure.c:1145 +#: ../src/iop/exposure.c:1163 msgid "what exposure correction has actually been used" msgstr "korrigjimet që janë përdorur realisht për ekspozimin" -#: ../src/iop/exposure.c:1164 +#: ../src/iop/exposure.c:1182 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -16270,11 +16833,11 @@ "nëse vendoset gabim, ngjyrat thuajse të zeza do të dalin nga spektri\n" "duke i shtyrë vlerat RGB në territor negativ." -#: ../src/iop/exposure.c:1174 -msgid "spot exposure mapping" -msgstr "rilevimi me përpikëri i ekspozimit" +#: ../src/iop/exposure.c:1192 +msgid "area exposure mapping" +msgstr "rilevimi i ekspozimit në zonë" -#: ../src/iop/exposure.c:1180 +#: ../src/iop/exposure.c:1198 msgid "" "define a target brightness, in terms of exposure,\n" "for a selected region of the image (the control sample),\n" @@ -16289,7 +16852,7 @@ "si kampion mund të merret një pjesë kritike e subjektit ose\n" "një sipërfaqe fikse, e ndriçuar njëtrajtësisht, në serinë e imazheve." -#: ../src/iop/exposure.c:1189 +#: ../src/iop/exposure.c:1207 msgid "" "\"correction\" automatically adjust exposure\n" "such that the input lightness is mapped to the target.\n" @@ -16301,11 +16864,11 @@ "\"matja\" thjesht tregon si rilevohen ngjyrat e inputit kur\n" "kompensohet ekspozimi dhe mund të përcaktojë objektivin." -#: ../src/iop/exposure.c:1215 +#: ../src/iop/exposure.c:1233 msgid "L : \tN/A" msgstr "L : \tN/A" -#: ../src/iop/exposure.c:1233 +#: ../src/iop/exposure.c:1251 msgid "the desired target exposure after mapping" msgstr "ekspozimi i synuar pas rilevimit" @@ -16313,52 +16876,52 @@ msgid "this module is deprecated. better use filmic rgb module instead." msgstr "ky modul është i vjetër. përdorni më mirë modulin filmik RGB." -#: ../src/iop/filmic.c:304 +#: ../src/iop/filmic.c:333 msgid "09 EV (low-key)" msgstr "09 EV (diskrete)" -#: ../src/iop/filmic.c:312 +#: ../src/iop/filmic.c:341 msgid "10 EV (indoors)" msgstr "10 EV (brenda)" -#: ../src/iop/filmic.c:320 +#: ../src/iop/filmic.c:349 msgid "11 EV (dim outdoors)" msgstr "11 EV (jashtë pa shkëlqim)" -#: ../src/iop/filmic.c:328 +#: ../src/iop/filmic.c:357 msgid "12 EV (outdoors)" msgstr "12 EV (jashtë)" -#: ../src/iop/filmic.c:336 +#: ../src/iop/filmic.c:365 msgid "13 EV (bright outdoors)" msgstr "13 EV (jashtë me shkëlqim)" -#: ../src/iop/filmic.c:344 +#: ../src/iop/filmic.c:373 msgid "14 EV (backlighting)" msgstr "14 EV (dritë e pasme)" -#: ../src/iop/filmic.c:352 +#: ../src/iop/filmic.c:381 msgid "15 EV (sunset)" msgstr "15 EV (perëndim dielli)" -#: ../src/iop/filmic.c:360 +#: ../src/iop/filmic.c:389 msgid "16 EV (HDR)" msgstr "16 EV (HDR)" -#: ../src/iop/filmic.c:368 +#: ../src/iop/filmic.c:397 msgid "18 EV (HDR++)" msgstr "18 EV (HDR++)" -#: ../src/iop/filmic.c:1480 +#: ../src/iop/filmic.c:1505 msgid "read-only graph, use the parameters below to set the nodes" msgstr "grafik vetëm për lexim, caktoni nyjat me parametrat e mëposhtëm" -#: ../src/iop/filmic.c:1484 +#: ../src/iop/filmic.c:1509 msgctxt "section" msgid "logarithmic shaper" msgstr "modeluesi logaritmik" -#: ../src/iop/filmic.c:1492 +#: ../src/iop/filmic.c:1517 msgid "" "adjust to match the average luminance of the subject.\n" "except in back-lighting situations, this should be around 18%." @@ -16366,7 +16929,7 @@ "përshtateni sipas luminancës mesatare të subjektit.\n" "duhet rreth 18%, përveçse në situatat me ndriçim të pasëm." -#: ../src/iop/filmic.c:1504 ../src/iop/filmicrgb.c:4442 +#: ../src/iop/filmic.c:1529 ../src/iop/filmicrgb.c:4506 msgid "" "number of stops between middle gray and pure white.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16376,7 +16939,7 @@ "kjo është vlera që do të tregonte ekspozimetri në skenë.\n" "rregullojeni për të evituar shkurtimin e reflekseve" -#: ../src/iop/filmic.c:1517 ../src/iop/filmicrgb.c:4453 +#: ../src/iop/filmic.c:1542 ../src/iop/filmicrgb.c:4517 msgid "" "number of stops between middle gray and pure black.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16388,20 +16951,20 @@ "rriteni për të shtuar kontrastin.\n" "uleni për të rikuperuar detajet e zbehura." -#: ../src/iop/filmic.c:1529 +#: ../src/iop/filmic.c:1554 msgid "" -"enlarge or shrink the computed dynamic range.\n" +"increase or decrease the computed dynamic range.\n" "useful in conjunction with \"auto tune levels\"." msgstr "" -"zmadhoni ose tkurrni diapazonin e kalkuluar dinamik.\n" +"rritni ose ulni diapazonin e kalkuluar dinamik.\n" "është me dobi së bashku me \"vetërregulloj nivelet\"." -#: ../src/iop/filmic.c:1535 ../src/iop/filmicrgb.c:4467 -#: ../src/iop/profile_gamma.c:659 +#: ../src/iop/filmic.c:1560 ../src/iop/filmicrgb.c:4531 +#: ../src/iop/profile_gamma.c:673 msgid "auto tune levels" msgstr "vetëkalibrimi i niveleve" -#: ../src/iop/filmic.c:1538 +#: ../src/iop/filmic.c:1563 msgid "" "try to optimize the settings with some guessing.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16413,12 +16976,12 @@ "funksionon më mirë për panoramat dhe fotot me ndriçim uniform,\n" "por nuk funksionon aq mirë për fotot me pak apo shumë kontrast." -#: ../src/iop/filmic.c:1543 +#: ../src/iop/filmic.c:1568 msgctxt "section" msgid "filmic S curve" msgstr "kurba filmik S" -#: ../src/iop/filmic.c:1550 ../src/iop/filmicrgb.c:4554 +#: ../src/iop/filmic.c:1575 ../src/iop/filmicrgb.c:4618 msgid "" "slope of the linear part of the curve\n" "affects mostly the mid-tones" @@ -16427,12 +16990,12 @@ "ndikon kryesisht në tonet e mesme" #. geotagging -#: ../src/iop/filmic.c:1557 ../src/iop/filmicrgb.c:4563 -#: ../src/libs/metadata_view.c:157 +#: ../src/iop/filmic.c:1582 ../src/iop/filmicrgb.c:4627 +#: ../src/libs/metadata_view.c:161 msgid "latitude" msgstr "latituda" -#: ../src/iop/filmic.c:1560 +#: ../src/iop/filmic.c:1585 msgid "" "width of the linear domain in the middle of the curve.\n" "increase to get more contrast at the extreme luminances.\n" @@ -16442,11 +17005,11 @@ "rriteni për të shtuar kontrastin në luminancat ekstreme.\n" "nuk ka efekt te tonet e mesme." -#: ../src/iop/filmic.c:1567 +#: ../src/iop/filmic.c:1592 msgid "shadows/highlights balance" msgstr "balancimi i hijeve/reflekseve" -#: ../src/iop/filmic.c:1570 ../src/iop/filmicrgb.c:4574 +#: ../src/iop/filmic.c:1595 ../src/iop/filmicrgb.c:4638 msgid "" "slides the latitude along the slope\n" "to give more room to shadows or highlights.\n" @@ -16458,7 +17021,7 @@ "përdoreni nëse doni të mbroni detajet\n" "në njërin ekstremitet të histogramit." -#: ../src/iop/filmic.c:1580 +#: ../src/iop/filmic.c:1605 msgid "" "desaturates the input of the module globally.\n" "you need to set this value below 100%\n" @@ -16468,7 +17031,7 @@ "vlera duhet vendosur nën 100%\n" "nëse aktivizoni ruajtjen e krominancës." -#: ../src/iop/filmic.c:1590 +#: ../src/iop/filmic.c:1615 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16479,43 +17042,43 @@ "uleni nëse hijet dhe/ose reflekset mbingopen me ngjyra." #. Add export intent combo -#: ../src/iop/filmic.c:1600 ../src/libs/export.c:1227 +#: ../src/iop/filmic.c:1625 ../src/libs/export.c:1339 #: ../src/libs/print_settings.c:2473 ../src/libs/print_settings.c:2820 -#: ../src/views/darkroom.c:2524 ../src/views/lighttable.c:1182 +#: ../src/views/darkroom.c:2365 ../src/views/lighttable.c:1182 msgid "intent" msgstr "synimi" -#: ../src/iop/filmic.c:1601 +#: ../src/iop/filmic.c:1626 msgid "contrasted" msgstr "e kontrastuar" #. cubic spline -#: ../src/iop/filmic.c:1602 +#: ../src/iop/filmic.c:1627 msgid "faded" msgstr "e zbehur" #. centripetal spline -#: ../src/iop/filmic.c:1603 ../src/iop/profile_gamma.c:621 +#: ../src/iop/filmic.c:1628 ../src/iop/profile_gamma.c:635 msgid "linear" msgstr "linear" #. monotonic spline -#: ../src/iop/filmic.c:1604 +#: ../src/iop/filmic.c:1629 msgid "optimized" msgstr "e rregulluar" -#: ../src/iop/filmic.c:1606 +#: ../src/iop/filmic.c:1631 msgid "change this method if you see reversed contrast or faded blacks" msgstr "" "përdoreni metodën nëse përmbysen vlerat e kontrastit ose zbehen ngjyrat e " "zeza" #. Preserve color -#: ../src/iop/filmic.c:1610 +#: ../src/iop/filmic.c:1635 msgid "preserve the chrominance" msgstr "ruajtja e krominancës" -#: ../src/iop/filmic.c:1612 +#: ../src/iop/filmic.c:1637 msgid "" "ensure the original color are preserved.\n" "may reinforce chromatic aberrations.\n" @@ -16525,12 +17088,12 @@ "mund të shtojë aberracionet kromatike.\n" "nëse e përdorni, saturimi duhet rregulluar manualisht." -#: ../src/iop/filmic.c:1622 +#: ../src/iop/filmic.c:1647 msgctxt "section" msgid "destination/display" msgstr "destinacioni/ekrani" -#: ../src/iop/filmic.c:1640 ../src/iop/filmicrgb.c:4593 +#: ../src/iop/filmic.c:1665 ../src/iop/filmicrgb.c:4657 msgid "" "luminance of output pure black, this should be 0%\n" "except if you want a faded look" @@ -16538,7 +17101,7 @@ "luminanca e outputit të zi puro, kjo duhet 0%\n" "përveçse kur doni një paraqitje të zbehur" -#: ../src/iop/filmic.c:1649 ../src/iop/filmicrgb.c:4600 +#: ../src/iop/filmic.c:1674 ../src/iop/filmicrgb.c:4664 msgid "" "middle gray value of the target display or color space.\n" "you should never touch that unless you know what you are doing." @@ -16546,7 +17109,7 @@ "grija e mesme e ekranit ose e hapësirës së synuar të ngjyrave.\n" "mos e prekni këtë pa i ditur pasojat." -#: ../src/iop/filmic.c:1658 ../src/iop/filmicrgb.c:4607 +#: ../src/iop/filmic.c:1683 ../src/iop/filmicrgb.c:4671 msgid "" "luminance of output pure white, this should be 100%\n" "except if you want a faded look" @@ -16554,11 +17117,11 @@ "luminanca e outputit të bardhë puro, kjo duhet 100%\n" "përveçse kur doni një paraqitje të zbehur" -#: ../src/iop/filmic.c:1664 +#: ../src/iop/filmic.c:1689 msgid "target gamma" msgstr "gama e synuar" -#: ../src/iop/filmic.c:1666 +#: ../src/iop/filmic.c:1691 msgid "" "power or gamma of the transfer function\n" "of the display or color space.\n" @@ -16587,7 +17150,7 @@ "për shfaqjen e imazhit në ekranet SDR ose për printimin në letër,\n" "duke evituar shkurtimin e parametrave me metoda të padëmshme" -#: ../src/iop/filmicrgb.c:1310 +#: ../src/iop/filmicrgb.c:1365 msgid "" "filmic highlights reconstruction failed to allocate memory, check your RAM " "settings" @@ -16595,72 +17158,72 @@ "problem me racionimin e memories nga rindërtimi filmik i reflekseve, " "kontrolloni parametrat e RAM-it" -#: ../src/iop/filmicrgb.c:2301 +#: ../src/iop/filmicrgb.c:2369 msgid "filmic highlights reconstruction failed to allocate memory on GPU" msgstr "" "problem me racionimin e memories në GPU nga rindërtimi filmik i reflekseve" -#: ../src/iop/filmicrgb.c:2419 +#: ../src/iop/filmicrgb.c:2487 msgid "filmic works only on RGB input" msgstr "filmik punon vetëm me input RGB" -#: ../src/iop/filmicrgb.c:3484 +#: ../src/iop/filmicrgb.c:3548 msgid "look only" msgstr "vetëm paraqitja" -#: ../src/iop/filmicrgb.c:3486 +#: ../src/iop/filmicrgb.c:3550 msgid "look + mapping (lin)" msgstr "paraqitja + rilevimi (lin)" -#: ../src/iop/filmicrgb.c:3488 +#: ../src/iop/filmicrgb.c:3552 msgid "look + mapping (log)" msgstr "paraqitja + rilevimi (log)" -#: ../src/iop/filmicrgb.c:3490 +#: ../src/iop/filmicrgb.c:3554 msgid "dynamic range mapping" msgstr "rilevimi i diapazonit dinamik" -#: ../src/iop/filmicrgb.c:3857 +#: ../src/iop/filmicrgb.c:3921 #, c-format msgid "(%.0f %%)" msgstr "(%.0f %%)" -#: ../src/iop/filmicrgb.c:3873 +#: ../src/iop/filmicrgb.c:3937 #, no-c-format msgid "% display" msgstr "% ekrani" -#: ../src/iop/filmicrgb.c:3885 +#: ../src/iop/filmicrgb.c:3949 msgid "EV scene" msgstr "EV skena" -#: ../src/iop/filmicrgb.c:3889 +#: ../src/iop/filmicrgb.c:3953 #, no-c-format msgid "% camera" msgstr "% kamera" #. Page DISPLAY -#: ../src/iop/filmicrgb.c:3925 ../src/iop/filmicrgb.c:4587 +#: ../src/iop/filmicrgb.c:3989 ../src/iop/filmicrgb.c:4651 msgid "display" msgstr "ekrani" #. axis legend -#: ../src/iop/filmicrgb.c:3934 +#: ../src/iop/filmicrgb.c:3998 msgid "(%)" msgstr "(%)" #. Page SCENE -#: ../src/iop/filmicrgb.c:3943 ../src/iop/filmicrgb.c:4422 +#: ../src/iop/filmicrgb.c:4007 ../src/iop/filmicrgb.c:4486 msgid "scene" msgstr "skena" #. axis legend -#: ../src/iop/filmicrgb.c:3952 +#: ../src/iop/filmicrgb.c:4016 msgid "(EV)" msgstr "(EV)" #. we are over the graph area -#: ../src/iop/filmicrgb.c:4364 +#: ../src/iop/filmicrgb.c:4428 msgid "" "use the parameters below to set the nodes.\n" "the bright curve is the filmic tone mapping curve\n" @@ -16670,11 +17233,11 @@ "kurba e çelët është për rilevimin e toneve filmike.\n" "kurba e errët është për uljen e ngjyrave." -#: ../src/iop/filmicrgb.c:4370 +#: ../src/iop/filmicrgb.c:4434 msgid "toggle axis labels and values display" msgstr "shfaqni boshtin e etiketave dhe vlerat" -#: ../src/iop/filmicrgb.c:4374 +#: ../src/iop/filmicrgb.c:4438 msgid "" "cycle through graph views.\n" "left click: cycle forward.\n" @@ -16686,7 +17249,7 @@ "me klikim djathtas lëvizet prapa.\n" "paraqitja kthehet si më parë me dopioklik." -#: ../src/iop/filmicrgb.c:4431 +#: ../src/iop/filmicrgb.c:4495 #, no-c-format msgid "" "adjust to match the average luminance of the image's subject.\n" @@ -16697,15 +17260,15 @@ "vlera që vendosni këtu do të rilevohet në 18.45%.\n" "ulni vlerën për rritur shkëlqimin e përgjithshëm." -#: ../src/iop/filmicrgb.c:4461 +#: ../src/iop/filmicrgb.c:4525 msgid "" -"symmetrically enlarge or shrink the computed dynamic range.\n" +"symmetrically increase or decrease the computed dynamic range.\n" "useful to give a safety margin to extreme luminances." msgstr "" -"zmadhoni ose tkurrni simetrikisht diapazonin e kalkuluar dinamik.\n" +"rritni ose ulni simetrikisht diapazonin e kalkuluar dinamik.\n" "është me dobi për mbrojtjen e luminancave ekstreme." -#: ../src/iop/filmicrgb.c:4468 +#: ../src/iop/filmicrgb.c:4532 msgid "" "try to optimize the settings with some statistical assumptions.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16722,16 +17285,16 @@ "para përdorimit, sigurohuni që i kuptoni supozimet e bëra." #. Page RECONSTRUCT -#: ../src/iop/filmicrgb.c:4477 +#: ../src/iop/filmicrgb.c:4541 msgid "reconstruct" msgstr "rindërtimi" -#: ../src/iop/filmicrgb.c:4479 +#: ../src/iop/filmicrgb.c:4543 msgctxt "section" msgid "highlights clipping" msgstr "shkurtimi i reflekseve" -#: ../src/iop/filmicrgb.c:4487 +#: ../src/iop/filmicrgb.c:4551 msgid "" "set the exposure threshold upon which\n" "clipped highlights get reconstructed.\n" @@ -16747,7 +17310,7 @@ "uleni vlerën për të përfshirë më shumë zona,\n" "rriteni për të përjashtuar më shumë zona." -#: ../src/iop/filmicrgb.c:4497 +#: ../src/iop/filmicrgb.c:4561 msgid "" "soften the transition between clipped highlights and valid pixels.\n" "decrease to make the transition harder and sharper,\n" @@ -16757,72 +17320,72 @@ "uleni për ta bërë kalimin më të fortë dhe akut,\n" "rriteni për ta bërë kalimin më të butë dhe më të sfumuar." -#: ../src/iop/filmicrgb.c:4503 ../src/iop/filmicrgb.c:4504 +#: ../src/iop/filmicrgb.c:4567 ../src/iop/filmicrgb.c:4568 msgid "display highlight reconstruction mask" msgstr "shfaqni maskën për rindërtimin e reflekseve" -#: ../src/iop/filmicrgb.c:4511 +#: ../src/iop/filmicrgb.c:4575 msgctxt "section" msgid "balance" msgstr "balanca" -#: ../src/iop/filmicrgb.c:4518 +#: ../src/iop/filmicrgb.c:4582 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between inpainting a smooth color gradient,\n" +"inpainting a smooth color gradient\n" "or trying to recover the textured details.\n" "0% is an equal mix of both.\n" "increase if at least one RGB channel is not clipped.\n" "decrease if all RGB channels are clipped over large areas." msgstr "" -"vendosni strategjinë e preferuar të rindërtimit,\n" -"mes pikturimit të një gradienti rrafshues ngjyrash\n" -"dhe tentativës për rikuperimin e detajeve të teksturës.\n" +"vendosni strategjinë kryesore të rindërtimit,\n" +"pikturimi i një gradienti rrafshues ngjyrash\n" +"apo tentativa për rikuperimin e detajeve të teksturës.\n" "0% mikson barabar të dyja.\n" "rriteni nëse nuk ka shkurtime në të paktën njërin kanal RGB.\n" "uleni nëse shumë zona kanë shkurtime në gjithë kanalet RGB." -#: ../src/iop/filmicrgb.c:4529 +#: ../src/iop/filmicrgb.c:4593 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between blooming highlights like film does,\n" +"blooming highlights like film does\n" "or trying to recover sharp details.\n" "0% is an equal mix of both.\n" "increase if you want more details.\n" "decrease if you want more blur." msgstr "" "vendosni strategjinë kryesore të rindërtimit,\n" -"mes rrezatimit të reflekseve, siç veprohet me filmat,\n" -"dhe tentativës për rikuperimin e detajeve të qarta.\n" -"0% të dyja do të miksohen barabar.\n" +"rrezatimi i reflekseve, siç veprohet me filmat,\n" +"apo tentativa për rikuperimin e detajeve të qarta.\n" +"0% mikson barabar të dyja.\n" "rriteni nëse doni më shumë detaje.\n" "uleni nëse doni më shumë sfumim." -#: ../src/iop/filmicrgb.c:4541 +#: ../src/iop/filmicrgb.c:4605 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between recovering monochromatic highlights,\n" +"recovering monochromatic highlights\n" "or trying to recover colorful highlights.\n" "0% is an equal mix of both.\n" "increase if you want more color.\n" "decrease if you see magenta or out-of-gamut highlights." msgstr "" -"vendosni strategjinë e preferuar të rindërtimit,\n" -"mes rikuperimit të reflekseve monokromatike\n" -"dhe tentativës për rikuperimin e reflekseve plot ngjyra.\n" +"vendosni strategjinë kryesore të rindërtimit,\n" +"rikuperimi i reflekseve monokromatike\n" +"apo tentativa për rikuperimin e reflekseve plot ngjyra.\n" "0% mikson barabar të dyja.\n" "rriteni nëse doni më shumë ngjyrim.\n" "uleni nëse vini re reflekse të kuqërreme ose jashtë spektrit." #. Page LOOK -#: ../src/iop/filmicrgb.c:4549 +#: ../src/iop/filmicrgb.c:4613 msgid "look" msgstr "paraqitja" -#: ../src/iop/filmicrgb.c:4559 +#: ../src/iop/filmicrgb.c:4623 msgid "" "equivalent to paper grade in analog.\n" "increase to make highlights brighter and less compressed.\n" @@ -16832,7 +17395,7 @@ "rritja i bën reflekset më të shkëlqyeshme dhe më pak të komprimuara.\n" "ulja i venit reflekset." -#: ../src/iop/filmicrgb.c:4567 +#: ../src/iop/filmicrgb.c:4631 msgid "" "width of the linear domain in the middle of the curve,\n" "increase to get more contrast and less desaturation at extreme luminances,\n" @@ -16844,7 +17407,7 @@ "ose e kundërta. ngjyrat nuk do të ulen në intervalin e latitudës.\n" "nuk ka efekt te tonet e mesme." -#: ../src/iop/filmicrgb.c:4582 ../src/iop/filmicrgb.c:4730 +#: ../src/iop/filmicrgb.c:4646 ../src/iop/filmicrgb.c:4794 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16855,11 +17418,11 @@ "rriteni nëse ulen ngjyrat e hijeve dhe/ose reflekseve." #. Page OPTIONS -#: ../src/iop/filmicrgb.c:4611 +#: ../src/iop/filmicrgb.c:4675 msgid "options" msgstr "opsionet" -#: ../src/iop/filmicrgb.c:4616 +#: ../src/iop/filmicrgb.c:4680 msgid "" "v3 is darktable 3.0 desaturation method, same as color balance.\n" "v4 is a newer desaturation method, based on spectral purity of light." @@ -16869,7 +17432,7 @@ "v4 është metoda e re e uljes së ngjyrave, që bazohet në pastërtinë spektrale " "të dritës." -#: ../src/iop/filmicrgb.c:4620 +#: ../src/iop/filmicrgb.c:4684 msgid "" "ensure the original colors are preserved.\n" "may reinforce chromatic aberrations and chroma noise,\n" @@ -16879,7 +17442,7 @@ "mund të shkaktojë aberracione dhe zhurmë kromatike,\n" "ndaj sigurohuni që t'i korrigjoni mirë ato diku tjetër." -#: ../src/iop/filmicrgb.c:4629 +#: ../src/iop/filmicrgb.c:4693 msgid "" "choose the desired curvature of the filmic spline in highlights.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -16889,7 +17452,7 @@ "i forti përdor kurbaturë të madhe, që i komprimon shumë tonet.\n" "i buti përdor kurbaturë të vogël, që i komprimon më pak tonet." -#: ../src/iop/filmicrgb.c:4634 +#: ../src/iop/filmicrgb.c:4698 msgid "" "choose the desired curvature of the filmic spline in shadows.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -16899,7 +17462,7 @@ "i forta përdor kurbaturë të madhe, që i komprimon shumë tonet.\n" "i buta përdor kurbaturë të vogël, që i komprimon më pak tonet." -#: ../src/iop/filmicrgb.c:4641 +#: ../src/iop/filmicrgb.c:4705 #, no-c-format msgid "" "enable to input custom middle-gray values.\n" @@ -16912,7 +17475,7 @@ "ekspozimi global rregullohet më mirë me modulin e ekspozimit.\n" "kur çaktivizohet përdoret grija e mesme standarde 18.45%." -#: ../src/iop/filmicrgb.c:4648 +#: ../src/iop/filmicrgb.c:4712 msgid "" "enable to auto-set the look hardness depending on the scene white and black " "points.\n" @@ -16924,7 +17487,7 @@ "grija e mesme do të mbetet identike dhe shpejtësia do të përmirësohet.\n" "çaktivizohet për ta pasur nën kontroll." -#: ../src/iop/filmicrgb.c:4654 +#: ../src/iop/filmicrgb.c:4718 msgid "" "run extra passes of chromaticity reconstruction.\n" "more iterations means more color propagation from neighborhood.\n" @@ -16936,7 +17499,7 @@ "procesi do të jetë i ngadaltë, por reflekset do të dalin më neutrale.\n" "ndihmon edhe në rastet e vështira të reflekseve të kuqërreme." -#: ../src/iop/filmicrgb.c:4661 +#: ../src/iop/filmicrgb.c:4725 msgid "" "add statistical noise in reconstructed highlights.\n" "this avoids highlights to look too smooth\n" @@ -16948,7 +17511,7 @@ "kur fotoja është e zhurmshme përgjithësisht dhe\n" "e bashkoni më mirë me pjesën tjetër të fotos." -#: ../src/iop/filmicrgb.c:4668 +#: ../src/iop/filmicrgb.c:4732 msgid "" "choose the statistical distribution of noise.\n" "this is useful to match natural sensor noise pattern." @@ -16956,11 +17519,11 @@ "zgjidhni shpërndarjen statistike të zhurmës.\n" "vlen për të njësuar modelin e zhurmës sipas sensorit." -#: ../src/iop/filmicrgb.c:4736 +#: ../src/iop/filmicrgb.c:4800 msgid "mid-tones saturation" msgstr "saturimi i toneve të mesme" -#: ../src/iop/filmicrgb.c:4737 +#: ../src/iop/filmicrgb.c:4801 msgid "" "desaturates the output of the module\n" "specifically at medium luminances.\n" @@ -16970,11 +17533,11 @@ "sidomos në luminancat e mesme.\n" "rriteni nëse pakësohen ngjyrat e toneve të mesme." -#: ../src/iop/filmicrgb.c:4743 +#: ../src/iop/filmicrgb.c:4807 msgid "highlights saturation mix" msgstr "kombinimi i reflekseve të saturuara" -#: ../src/iop/filmicrgb.c:4744 +#: ../src/iop/filmicrgb.c:4808 msgid "" "positive values ensure saturation is kept unchanged over the whole range.\n" "negative values bleach highlights at constant hue and luminance.\n" @@ -16997,39 +17560,39 @@ msgid "flip or rotate image by step of 90 degrees" msgstr "rrokullisni ose rrotulloni imazhin me 90 gradë" -#: ../src/iop/flip.c:477 +#: ../src/iop/flip.c:475 msgid "no rotation" msgstr "nuk rrotulloj" -#: ../src/iop/flip.c:481 ../src/iop/flip.c:624 +#: ../src/iop/flip.c:479 ../src/iop/flip.c:622 msgid "flip horizontally" msgstr "rrokulliseni horizontalisht" -#: ../src/iop/flip.c:485 ../src/iop/flip.c:628 +#: ../src/iop/flip.c:483 ../src/iop/flip.c:626 msgid "flip vertically" msgstr "rrokulliseni vertikalisht" -#: ../src/iop/flip.c:489 +#: ../src/iop/flip.c:487 msgid "rotate by -90 degrees" msgstr "rrotulloj -90 gradë" -#: ../src/iop/flip.c:493 +#: ../src/iop/flip.c:491 msgid "rotate by 90 degrees" msgstr "rrotulloj 90 gradë" -#: ../src/iop/flip.c:497 +#: ../src/iop/flip.c:495 msgid "rotate by 180 degrees" msgstr "rrotulloj 180 gradë" -#: ../src/iop/flip.c:612 +#: ../src/iop/flip.c:610 msgid "transform" msgstr "transformimi" -#: ../src/iop/flip.c:616 ../src/libs/live_view.c:293 +#: ../src/iop/flip.c:614 ../src/libs/live_view.c:293 msgid "rotate 90 degrees CCW" msgstr "rrotulloni 90 gradë në kahun kundërorar" -#: ../src/iop/flip.c:620 ../src/libs/live_view.c:294 +#: ../src/iop/flip.c:618 ../src/libs/live_view.c:294 msgid "rotate 90 degrees CW" msgstr "rrotulloni 90 gradë në kahun orar" @@ -17047,15 +17610,15 @@ msgstr "" "ky modul është i vjetër. lutemi të përdorni më mirë modulin filmik RGB." -#: ../src/iop/globaltonemap.c:625 ../src/libs/filters/colors.c:259 +#: ../src/iop/globaltonemap.c:658 ../src/libs/filters/colors.c:259 msgid "operator" msgstr "operatori" -#: ../src/iop/globaltonemap.c:626 +#: ../src/iop/globaltonemap.c:659 msgid "the global tonemap operator" msgstr "operatori i rilevimit global të toneve" -#: ../src/iop/globaltonemap.c:629 +#: ../src/iop/globaltonemap.c:662 msgid "" "the bias for tonemapper controls the linearity, the higher the more details " "in blacks" @@ -17063,7 +17626,7 @@ "devijimi kontrollon linearitetin. sa më i lartë, aq më të detajuara do të " "jenë të zezat" -#: ../src/iop/globaltonemap.c:633 +#: ../src/iop/globaltonemap.c:666 msgid "the target light for tonemapper specified as cd/m2" msgstr "drita e synuar, shprehur në cd/m2" @@ -17127,11 +17690,11 @@ msgid "simulate an optical graduated neutral density filter" msgstr "simuloni filtrin optik me densitet neutral të shkallëzuar" -#: ../src/iop/graduatednd.c:1114 +#: ../src/iop/graduatednd.c:1083 msgid "the density in EV for the filter" msgstr "densiteti në EV i filtrit" -#: ../src/iop/graduatednd.c:1119 +#: ../src/iop/graduatednd.c:1088 #, no-c-format msgid "" "hardness of graduation:\n" @@ -17140,55 +17703,55 @@ "fortësia e shkallëzimit:\n" "0% = e butë, 100% = e fortë" -#: ../src/iop/graduatednd.c:1123 +#: ../src/iop/graduatednd.c:1092 msgid "rotation of filter -180 to 180 degrees" msgstr "rrotullimi i filtrit -180 në 180 gradë" -#: ../src/iop/graduatednd.c:1136 +#: ../src/iop/graduatednd.c:1105 msgid "select the hue tone of filter" msgstr "përzgjidhni tonin e nuancës së filtrit" -#: ../src/iop/graduatednd.c:1142 +#: ../src/iop/graduatednd.c:1111 msgid "select the saturation of filter" msgstr "përzgjidhni saturimin e filtrit" -#: ../src/iop/graduatednd.c:1153 +#: ../src/iop/graduatednd.c:1122 #, c-format msgid "[%s on nodes] change line rotation" msgstr "[%s për vijat] ndryshoj rrotullimin e vijës" -#: ../src/iop/graduatednd.c:1154 +#: ../src/iop/graduatednd.c:1123 #, c-format msgid "[%s on line] move line" msgstr "[%s për vijën] lëviz vijën" -#: ../src/iop/graduatednd.c:1156 +#: ../src/iop/graduatednd.c:1125 #, c-format msgid "[%s on line] change density" msgstr "[%s për vijën] ndryshoj densitetin" -#: ../src/iop/graduatednd.c:1158 +#: ../src/iop/graduatednd.c:1127 #, c-format msgid "[%s on line] change hardness" msgstr "[%s për vijën] ndryshoj fortësinë" -#: ../src/iop/grain.c:428 +#: ../src/iop/grain.c:444 msgid "grain" msgstr "kokrrizimi" -#: ../src/iop/grain.c:433 +#: ../src/iop/grain.c:449 msgid "simulate silver grains from film" msgstr "simuloni kokrrizat prej argjendi të filmit" -#: ../src/iop/grain.c:582 +#: ../src/iop/grain.c:600 msgid "the grain size (~ISO of the film)" msgstr "masa e kokrrizave (~ISO e filmit)" -#: ../src/iop/grain.c:586 +#: ../src/iop/grain.c:604 msgid "the strength of applied grain" msgstr "forca e aplikimit të kokrrizave" -#: ../src/iop/grain.c:590 +#: ../src/iop/grain.c:608 msgid "" "amount of mid-tones bias from the photographic paper response modeling. the " "greater the bias, the more pronounced the fall off of the grain in shadows " @@ -17209,15 +17772,15 @@ msgid "remove fog and atmospheric hazing from pictures" msgstr "hiqni mjegullën dhe brymën atmosferike nga fotot" -#: ../src/iop/hazeremoval.c:202 +#: ../src/iop/hazeremoval.c:204 msgid "amount of haze reduction" msgstr "sasia e brymës që duhet reduktuar" -#: ../src/iop/hazeremoval.c:204 +#: ../src/iop/hazeremoval.c:206 msgid "distance" msgstr "distanca" -#: ../src/iop/hazeremoval.c:206 +#: ../src/iop/hazeremoval.c:208 msgid "limit haze removal up to a specific spatial depth" msgstr "kufizoni heqjen e brymës në një hapësirë specifike" @@ -17230,11 +17793,11 @@ msgstr "" "shmangni reflekset e kuqërreme dhe provoni të rikuperoni ngjyrat e tyre" -#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:75 +#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:77 msgid "reconstruction, raw" msgstr "rindërtimi, bruto" -#: ../src/iop/highlights.c:923 +#: ../src/iop/highlights.c:1004 msgid "" "highlights: mode not available for this type of image. falling back to " "inpaint opposed." @@ -17242,48 +17805,65 @@ "reflekset: kjo metodë nuk vlen për këtë lloj imazhi. do të përdoret " "kundërpikturimi." -#: ../src/iop/highlights.c:1101 +#: ../src/iop/highlights.c:1184 msgid "highlight reconstruction method" msgstr "metoda e rindërtimit të reflekseve" -#: ../src/iop/highlights.c:1106 +#: ../src/iop/highlights.c:1189 msgid "" "manually adjust the clipping threshold mostly used against magenta " -"highlights\n" -"the mask icon shows the clipped areas.\n" +"highlights.\n" "you might use this for tuning 'laplacian', 'inpaint opposed' or " "'segmentation' modes,\n" "especially if camera white point is incorrect." msgstr "" "rregulloni manualisht pragun e shkurtimit të reflekseve kryesisht të " "kuqërreme.\n" -"ikona e maskës tregon zonën me parametrat e shkurtuar.\n" "kjo mund të përdoret për metodat me 'laplacianë', 'kundërpikturim' ose " "'segmentim',\n" "sidomos kur pika e bardhë e kamerës nuk është përcaktuar saktë." -#: ../src/iop/highlights.c:1117 +#: ../src/iop/highlights.c:1193 +msgid "" +"visualize clipped highlights in a false color representation.\n" +"the effective clipping level also depends on the reconstruction method." +msgstr "" +"interpretoni grafikisht me ngjyra false reflekset që janë shkurtuar.\n" +"niveli efektiv i shkurtimit varet edhe nga metoda e rindërtimit." + +#: ../src/iop/highlights.c:1203 msgid "" "combine closely related clipped segments by morphological operations.\n" -"the mask button shows the exact positions of resulting segment borders." +"this often leads to improved color reconstruction for tiny segments before " +"dark background." msgstr "" -"ndërthurni segmentet e afërta që janë shkurtuar nëpërmjet operacioneve " -"morfologjike.\n" -"butoni i maskës tregon pozicionet ekzakte të kufijve finalë të segmentit." +"ndërthurni segmentet e afërta që janë shkurtuar me operacione morfologjike.\n" +"kështu shpesh ngjyrat në segmentet e vogla rindërtohen më mirë në sfond të " +"errët." + +#: ../src/iop/highlights.c:1206 +msgid "visualize the combined segments in a false color representation." +msgstr "interpretoni grafikisht me ngjyra false segmentet që janë ndërthurur." -#: ../src/iop/highlights.c:1125 +#: ../src/iop/highlights.c:1213 msgid "" "select inpainting after segmentation analysis.\n" -"increase to favour candidates found in segmentation analysis, decrease for " -"opposed means inpainting.\n" -"the mask button shows segments that are considered to have a good candidate." +"increase to favor candidates found in segmentation analysis, decrease for " +"opposed means inpainting." msgstr "" "përzgjidhni pikturimin pas analizës segmentore.\n" -"rritja favorizon kandidatët e zbuluar nga analiza segmentore, ulja kryen " -"kundërpikturimin.\n" -"butoni i maskës tregon segmentet me kandidatët që konsiderohen të mirë." +"rriteni për të favorizuar kandidatët e zbuluar nga analiza segmentore, uleni " +"për të kundërpikturuar." + +#: ../src/iop/highlights.c:1216 +msgid "" +"visualize segments that are considered to have a good candidate in a false " +"color representation." +msgstr "" +"interpretoni grafikisht me ngjyra false segmentet që konsiderohen si " +"kandidatë të duhur." -#: ../src/iop/highlights.c:1136 +#: ../src/iop/highlights.c:1225 msgid "" "approximate lost data in regions with all photosites clipped, the effect " "depends on segment size and border gradients.\n" @@ -17295,7 +17875,7 @@ "highlights rebuilt and avoid gradients." msgstr "" "përafroni të dhënat e humbura në rajonet ku fotozitet janë shkurtuar " -"plotësisht, efekti varet nga madhësia e segmentit dhe gradientët e " +"plotësisht. efekti varet nga madhësia e segmentit dhe gradientët e " "bordurës.\n" "zgjidhni mënyrën me segmente sipas madhësisë ose mënyrën gjenerike, e cila " "provon të gjejë parametrat më të mirë për çdo segment.\n" @@ -17304,17 +17884,16 @@ "mënyrat e sheshta nuk i marrin parasysh strukturat e pashkurtuara (si linjat " "e elektrotransmetimit) për të evituar shfaqjen e gradientëve." -#: ../src/iop/highlights.c:1142 -msgid "" -"set strength of rebuilding in regions with all photosites clipped.\n" -"the mask buttons shows the effect that is added to already reconstructed " -"data." +#: ../src/iop/highlights.c:1231 +msgid "set strength of rebuilding in regions with all photosites clipped." msgstr "" -"caktoni efektin rindërtues në rajonet ku fotozitet janë shkurtuar " -"plotësisht.\n" -"butoni i maskës tregon efektin në të dhënat e rindërtuara paraprakisht." +"caktoni efektin rindërtues në rajonet ku fotozitet janë shkurtuar plotësisht." -#: ../src/iop/highlights.c:1152 +#: ../src/iop/highlights.c:1233 +msgid "show the effect that is added to already reconstructed data." +msgstr "tregoni efektin mbi të dhënat që janë rindërtuar më parë." + +#: ../src/iop/highlights.c:1242 msgid "" "add noise to visually blend the reconstructed areas\n" "into the rest of the noisy image. useful at high ISO." @@ -17322,7 +17901,7 @@ "shtoni zhurmë për të bashkuar vizualisht zonat e rindërtuara\n" "me pjesën tjetër të imazhit të zhurmshëm. me dobi për ISO të larta." -#: ../src/iop/highlights.c:1156 +#: ../src/iop/highlights.c:1246 msgid "" "increase if magenta highlights don't get fully corrected\n" "each new iteration brings a performance penalty." @@ -17330,7 +17909,7 @@ "rriteni nëse reflekset e kuqërreme nuk korrigjohen plotësisht\n" "çdo përsëritje e veprimit kryhet në dëm të performancës." -#: ../src/iop/highlights.c:1161 +#: ../src/iop/highlights.c:1251 msgid "" "increase if magenta highlights don't get fully corrected.\n" "this may produce non-smooth boundaries between valid and clipped regions." @@ -17338,7 +17917,7 @@ "rriteni nëse reflekset e kuqërreme nuk korrigjohen plotësisht.\n" "mund të shfaqen caqe jo të rrafshëta në zonat e duhura dhe të shkurtuara." -#: ../src/iop/highlights.c:1165 +#: ../src/iop/highlights.c:1255 msgid "" "increase to correct larger clipped areas.\n" "large values bring huge performance penalties" @@ -17346,9 +17925,9 @@ "rriteni për të korrigjuar zonat e mëdha të shkurtuara.\n" "vlerat e mëdha e dëmtojnë rëndë performancën" -#: ../src/iop/highlights.c:1169 -msgid "this module only works with non-monochrome RAW and sRAW" -msgstr "ky modul punon vetëm për imazhet jomonokromatike RAW dhe sRAW" +#: ../src/iop/highlights.c:1259 +msgid "this module does not work with monochrome RAW files" +msgstr "ky modul nuk punon për imazhet monokromatike RAW" #: ../src/iop/highpass.c:72 msgid "highpass" @@ -17358,50 +17937,50 @@ msgid "isolate high frequencies in the image" msgstr "izoloni frekuencat e larta të imazhit" -#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:135 +#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:107 msgid "linear or non-linear, Lab, scene-referred" msgstr "linear ose jolinear, Lab, sipas skenës" -#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:136 ../src/iop/sharpen.c:96 +#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:108 ../src/iop/sharpen.c:98 msgid "frequential, Lab" msgstr "frekuencial, Lab" -#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:137 +#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:109 msgid "special, Lab, scene-referred" msgstr "special, Lab, sipas skenës" -#: ../src/iop/highpass.c:383 +#: ../src/iop/highpass.c:378 msgid "the sharpness of highpass filter" msgstr "qartësia e filtrit me frekuencë të lartë" -#: ../src/iop/highpass.c:387 +#: ../src/iop/highpass.c:382 msgid "the contrast of highpass filter" msgstr "kontrasti i filtrit me frekuencë të lartë" -#: ../src/iop/hotpixels.c:67 +#: ../src/iop/hotpixels.c:69 msgid "hot pixels" msgstr "pikselët e nxehtë" -#: ../src/iop/hotpixels.c:72 +#: ../src/iop/hotpixels.c:74 msgid "remove abnormally bright pixels by dampening them with neighbors" msgstr "hiqni pikselët që nuk shndrijnë normalisht duke i shuar me fqinjët" -#: ../src/iop/hotpixels.c:363 +#: ../src/iop/hotpixels.c:442 #, c-format msgid "fixed %d pixel" msgid_plural "fixed %d pixels" msgstr[0] "ndreqi %d piksel" msgstr[1] "ndreqi %d pikselë" -#: ../src/iop/hotpixels.c:386 +#: ../src/iop/hotpixels.c:465 msgid "lower threshold for hot pixel" msgstr "pragu i poshtëm për pikselët e nxehtë" -#: ../src/iop/hotpixels.c:390 +#: ../src/iop/hotpixels.c:469 msgid "strength of hot pixel correction" msgstr "forca e korrigjimit të pikselëve të nxehtë" -#: ../src/iop/hotpixels.c:406 +#: ../src/iop/hotpixels.c:485 msgid "" "hot pixel correction\n" "only works for raw images." @@ -17409,63 +17988,63 @@ "korrigjimi i pikselëve të nxehtë\n" "punon vetëm për imazhet bruto." -#: ../src/iop/invert.c:92 ../src/iop/invert.c:427 +#: ../src/iop/invert.c:106 ../src/iop/invert.c:442 #, c-format msgid "`%s' color matrix not found for 4bayer image" msgstr "nuk gjendet matrica e ngjyrave `%s' për imazhin 4bayer" -#: ../src/iop/invert.c:108 +#: ../src/iop/invert.c:125 msgid "invert" msgstr "përmbys" -#: ../src/iop/invert.c:113 +#: ../src/iop/invert.c:130 msgid "this module is deprecated. please use the negadoctor module instead." msgstr "" "ky modul është i vjetër. lutemi të përdorni më mirë modulin doktor negativi." -#: ../src/iop/invert.c:118 +#: ../src/iop/invert.c:135 msgid "invert film negatives" msgstr "invertoj negativat e filmit" -#: ../src/iop/invert.c:120 ../src/iop/invert.c:122 +#: ../src/iop/invert.c:137 ../src/iop/invert.c:139 msgid "linear, raw, display-referred" msgstr "linear, bruto, sipas ekranit" #. Here we could provide more for monochrome special cases. As no monochrome camera #. has a bayer sensor we don't need g->RGB_to_CAM and g->CAM_to_RGB corrections -#: ../src/iop/invert.c:412 +#: ../src/iop/invert.c:427 msgid "brightness of film material" msgstr "shkëlqimi i materialit filmik" -#: ../src/iop/invert.c:416 +#: ../src/iop/invert.c:431 msgid "color of film material" msgstr "ngjyra e materialit filmik" -#: ../src/iop/invert.c:500 ../src/iop/negadoctor.c:847 +#: ../src/iop/invert.c:515 ../src/iop/negadoctor.c:866 msgid "pick color of film material from image" msgstr "mblidhni ngjyrën e materialit nga imazhi" -#: ../src/iop/invert.c:502 +#: ../src/iop/invert.c:517 msgid "select color of film material" msgstr "përzgjidhni ngjyrën e materialit filmik" -#: ../src/iop/lens.cc:230 +#: ../src/iop/lens.cc:251 msgid "lens correction" msgstr "korrigjimi i objektivit" -#: ../src/iop/lens.cc:235 +#: ../src/iop/lens.cc:256 msgid "vignette|chromatic aberrations|distortion" msgstr "vineta|aberracionet kromatike|deformimi" -#: ../src/iop/lens.cc:240 +#: ../src/iop/lens.cc:261 msgid "correct lenses optical flaws" msgstr "korrigjoni defektet optike të objektivave" -#: ../src/iop/lens.cc:243 +#: ../src/iop/lens.cc:264 msgid "geometric and reconstruction, RGB" msgstr "gjeometrik dhe rindërtues, RGB" -#: ../src/iop/lens.cc:3148 +#: ../src/iop/lens.cc:3773 #, c-format msgid "" "maker:\t\t%s\n" @@ -17478,7 +18057,7 @@ "montatura:\t\t%s\n" "koeficienti prerës:\t%.1f" -#: ../src/iop/lens.cc:3396 +#: ../src/iop/lens.cc:4026 #, c-format msgid "" "maker:\t\t%s\n" @@ -17497,31 +18076,31 @@ "lloji:\t\t%s\n" "montatura:\t%s" -#: ../src/iop/lens.cc:3442 +#: ../src/iop/lens.cc:4072 msgid "focal length (mm)" msgstr "largësia fokale (mm)" -#: ../src/iop/lens.cc:3468 +#: ../src/iop/lens.cc:4098 msgid "f/" msgstr "f/" -#: ../src/iop/lens.cc:3469 +#: ../src/iop/lens.cc:4099 msgid "f-number (aperture)" msgstr "numri-f (hapja e diafragmës)" -#: ../src/iop/lens.cc:3485 +#: ../src/iop/lens.cc:4115 msgid "d" msgstr "d" -#: ../src/iop/lens.cc:3486 +#: ../src/iop/lens.cc:4116 msgid "distance to subject" msgstr "distanca nga subjekti" -#: ../src/iop/lens.cc:3645 +#: ../src/iop/lens.cc:4277 msgid "camera/lens not found" msgstr "nuk gjendet kamera/objektivi" -#: ../src/iop/lens.cc:3646 +#: ../src/iop/lens.cc:4278 msgid "" "please select your lens manually\n" "you might also want to check if your Lensfun database is up-to-date\n" @@ -17531,45 +18110,51 @@ "kontrolloni a është azhurnuar databaza Lensfun\n" "përmes komandës lensfun-update-data" -#: ../src/iop/lens.cc:3769 +#: ../src/iop/lens.cc:4423 msgid "camera model" msgstr "modeli i kamerës" -#: ../src/iop/lens.cc:3774 +#: ../src/iop/lens.cc:4428 msgid "find camera" msgstr "gjeni kamerën" -#: ../src/iop/lens.cc:3789 +#: ../src/iop/lens.cc:4443 msgid "find lens" msgstr "gjeni objektivin" #. scale -#: ../src/iop/lens.cc:3823 ../src/iop/vignette.c:968 -#: ../src/iop/watermark.c:1324 ../src/libs/export.c:1165 +#: ../src/iop/lens.cc:4477 ../src/iop/vignette.c:1055 +#: ../src/iop/watermark.c:1372 ../src/libs/export.c:1264 msgid "scale" msgstr "shëmbëllimi" -#: ../src/iop/lens.cc:3828 +#: ../src/iop/lens.cc:4482 msgid "auto scale" msgstr "vetëshëmbëllej" -#: ../src/iop/lens.cc:3832 +#: ../src/iop/lens.cc:4484 +msgid "automatic scale to available image size due to Lensfun data" +msgstr "" +"shëmbëlleni automatikisht nisur nga përmasat e imazhit sipas të dhënave " +"Lensfun" + +#: ../src/iop/lens.cc:4488 msgid "correct distortions or apply them" msgstr "korrigjoni ose aplikoni deformimet" -#: ../src/iop/lens.cc:3839 +#: ../src/iop/lens.cc:4495 msgid "transversal chromatic aberration red" msgstr "aberracioni kromatik tërthor i të kuqes" -#: ../src/iop/lens.cc:3843 +#: ../src/iop/lens.cc:4499 msgid "transversal chromatic aberration blue" msgstr "aberracioni kromatik tërthor i blusë" -#: ../src/iop/lens.cc:3849 +#: ../src/iop/lens.cc:4509 msgid "use latest algorithm" msgstr "përdorni algoritmin e fundit" -#: ../src/iop/lens.cc:3851 +#: ../src/iop/lens.cc:4511 msgid "" "you're using an old version of the algorithm.\n" "once enabled, you won't be able to\n" @@ -17579,94 +18164,145 @@ "nëse e aktivizoni, nuk mund të riktheheni\n" "te algoritmi i vjetër." -#: ../src/iop/lens.cc:3860 +#: ../src/iop/lens.cc:4521 +msgid "fine-tuning" +msgstr "rregullimi" + +#. DT_IOP_SECTION_FOR_PARAMS doesn't work in C++ so create section module manually +#: ../src/iop/lens.cc:4526 +msgid "fine-tune" +msgstr "rregulloj" + +#: ../src/iop/lens.cc:4532 msgid "tune the warp and chromatic aberration correction" msgstr "rregulloni përdredhjet dhe aberracionet kromatike të korrigjuara" -#: ../src/iop/lens.cc:3864 +#: ../src/iop/lens.cc:4536 msgid "tune the vignette correction" msgstr "rregulloni vinetën e korrigjuar" -#: ../src/iop/lens.cc:3868 +#: ../src/iop/lens.cc:4540 msgid "tune the TCA red correction" msgstr "korrigjoni TCA kuqe" -#: ../src/iop/lens.cc:3872 +#: ../src/iop/lens.cc:4544 msgid "tune the TCA blue correction" msgstr "korrigjoni TCA blu" -#: ../src/iop/lens.cc:3879 +#: ../src/iop/lens.cc:4551 msgid "image scaling" msgstr "shëmbëllimi i imazhit" -#: ../src/iop/lens.cc:3891 +#: ../src/iop/lens.cc:4553 +msgid "automatic scale to available image size" +msgstr "shëmbëllej automatikisht me përmasat e imazhit" + +#: ../src/iop/lens.cc:4561 +msgid "" +"select a correction mode either based on\n" +" a) data and algorithms provided by the Lensfun project\n" +" b) embedded metadata provided by the camera or software vendor" +msgstr "" +"përzgjidhni metodën e korrigjimit të bazuar në\n" +" a) të dhënat dhe algoritmet që mundëson projekti Lensfun\n" +" b) metadatat e integruara që mundëson prodhuesi i kamerës ose softueri" + +#: ../src/iop/lens.cc:4568 msgid "which corrections to apply" msgstr "korrigjimet që aplikohen" -#: ../src/iop/lens.cc:3904 +#: ../src/iop/lens.cc:4574 msgid "corrections done: " msgstr "korrigjimet e kryera: " -#: ../src/iop/lens.cc:3906 +#: ../src/iop/lens.cc:4576 msgid "which corrections have actually been done" msgstr "korrigjimet që janë kryer realisht" +#: ../src/iop/lens.cc:4595 +msgid "manual vignette correction" +msgstr "korrigjimi manual i vinetës" + +#: ../src/iop/lens.cc:4599 +msgid "additional manually controlled optical vignetting correction" +msgstr "korrigjimi optik i vinetës me metoda manuale shtesë" + +#: ../src/iop/lens.cc:4602 +msgid "vignette" +msgstr "vineta" + +#: ../src/iop/lens.cc:4606 +msgid "amount of the applied optical vignetting correction" +msgstr "shtrirja e korrigjimit optik në vinetë" + +#: ../src/iop/lens.cc:4608 +msgid "show applied optical vignette correction mask" +msgstr "tregoni maskën e korrigjimit optik në vinetë" + +#: ../src/iop/lens.cc:4618 +msgid "radius of uncorrected centre" +msgstr "rrezja e qendrës së pakorrigjuar" + +#: ../src/iop/lens.cc:4624 +msgid "steepness of the correction effect outside of radius" +msgstr "shkalla e shmangies së efektit korrigjues jashtë rrezes" + #: ../src/iop/levels.c:112 msgid "this module is deprecated. please use the RGB levels module instead." msgstr "" "ky modul është i vjetër. lutemi të përdorni më mirë modulin e niveleve RGB." -#: ../src/iop/levels.c:117 ../src/iop/levels.c:630 ../src/iop/rgblevels.c:984 -#: ../src/iop/rgblevels.c:1014 +#: ../src/iop/levels.c:117 ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1022 +#: ../src/iop/rgblevels.c:1056 msgid "levels" msgstr "nivelet" -#: ../src/iop/levels.c:137 +#: ../src/iop/levels.c:139 msgid "adjust black, white and mid-gray points" msgstr "rregulloni pikën e zezë, të bardhën dhe grinë e mesme" -#: ../src/iop/levels.c:628 ../src/iop/rgblevels.c:1016 +#: ../src/iop/levels.c:644 ../src/iop/rgblevels.c:1059 msgid "" "drag handles to set black, gray, and white points. operates on L channel." msgstr "" "caktoni pikën e zezë, grinë dhe të bardhën duke tërhequr vijat orientuese. " "vepron në kanalin L." -#: ../src/iop/levels.c:642 ../src/iop/rgblevels.c:1052 +#: ../src/iop/levels.c:658 ../src/iop/rgblevels.c:1108 msgid "apply auto levels" msgstr "aplikoj nivelet automatike" -#: ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1027 +#: ../src/iop/levels.c:662 ../src/iop/rgblevels.c:1077 msgid "pick black point from image" msgstr "mblidhni pikën e zezë nga imazhi" -#: ../src/iop/levels.c:650 ../src/iop/rgblevels.c:1033 +#: ../src/iop/levels.c:666 ../src/iop/rgblevels.c:1085 msgid "pick medium gray point from image" msgstr "mblidhni pikën gri mesatare nga imazhi" -#: ../src/iop/levels.c:654 ../src/iop/rgblevels.c:1039 +#: ../src/iop/levels.c:670 ../src/iop/rgblevels.c:1093 msgid "pick white point from image" msgstr "mblidhni pikën e bardhë nga imazhi" -#: ../src/iop/levels.c:667 ../src/iop/rgblevels.c:936 -#: ../src/iop/rgblevels.c:1026 +#: ../src/iop/levels.c:683 ../src/iop/rgblevels.c:968 +#: ../src/iop/rgblevels.c:1075 msgid "black" msgstr "zezë" -#: ../src/iop/levels.c:668 +#: ../src/iop/levels.c:684 msgid "black percentile" msgstr "fraksioni i të zezës" -#: ../src/iop/levels.c:672 +#: ../src/iop/levels.c:688 msgid "gray percentile" msgstr "fraksioni i grisë" -#: ../src/iop/levels.c:675 ../src/iop/rgblevels.c:938 -#: ../src/iop/rgblevels.c:1038 +#: ../src/iop/levels.c:691 ../src/iop/rgblevels.c:970 +#: ../src/iop/rgblevels.c:1091 msgid "white" msgstr "bardhë" -#: ../src/iop/levels.c:676 +#: ../src/iop/levels.c:692 msgid "white percentile" msgstr "fraksioni i të bardhës" @@ -17678,11 +18314,11 @@ msgid "distort parts of the image" msgstr "deformoni pjesët e imazhit" -#: ../src/iop/liquify.c:2933 +#: ../src/iop/liquify.c:2895 msgid "click to edit nodes" msgstr "përpunoni nyjat me klikim" -#: ../src/iop/liquify.c:3636 +#: ../src/iop/liquify.c:3599 msgid "" "<b>add point</b>: click and drag\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17692,7 +18328,7 @@ "<b>madhësia</b>: me rrëshqitjen e mausit - <b>forca</b>: shift+rrëshqitje - " "<b>drejtimi</b>: ctrl+rrëshqitje" -#: ../src/iop/liquify.c:3639 +#: ../src/iop/liquify.c:3602 msgid "" "<b>add line</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17702,7 +18338,7 @@ "<b>madhësia</b>: me rrëshqitjen e mausit - <b>forca</b>: shift+rrëshqitje - " "<b>drejtimi</b>: ctrl+rrëshqitje" -#: ../src/iop/liquify.c:3642 +#: ../src/iop/liquify.c:3605 msgid "" "<b>add curve</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17712,7 +18348,7 @@ "<b>madhësia</b>: me rrëshqitjen e mausit - <b>forca</b>: shift+rrëshqitje - " "<b>drejtimi</b>: ctrl+rrëshqitje" -#: ../src/iop/liquify.c:3693 +#: ../src/iop/liquify.c:3656 msgid "" "use a tool to add warps\n" "<b>remove a warp</b>: right-click" @@ -17720,48 +18356,48 @@ "përdorni instrumentin për të shtuar përdredhjet\n" "<b>përdredhja hiqet</b> me klikim djathtas" -#: ../src/iop/liquify.c:3696 +#: ../src/iop/liquify.c:3659 msgid "warps|nodes count:" msgstr "numri i përdredhjeve|nyjave:" -#: ../src/iop/liquify.c:3705 +#: ../src/iop/liquify.c:3668 msgid "edit, add and delete nodes" msgstr "përpunoni, shtoni dhe fshini nyjat" -#: ../src/iop/liquify.c:3710 ../src/iop/liquify.c:3716 -#: ../src/iop/liquify.c:3722 ../src/iop/retouch.c:2238 -#: ../src/iop/retouch.c:2242 ../src/iop/retouch.c:2246 -#: ../src/iop/retouch.c:2250 ../src/iop/spots.c:883 ../src/iop/spots.c:888 -#: ../src/iop/spots.c:893 ../src/libs/masks.c:1816 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1834 ../src/libs/masks.c:1843 ../src/libs/masks.c:1852 +#: ../src/iop/liquify.c:3673 ../src/iop/liquify.c:3679 +#: ../src/iop/liquify.c:3685 ../src/iop/retouch.c:2465 +#: ../src/iop/retouch.c:2471 ../src/iop/retouch.c:2476 +#: ../src/iop/retouch.c:2481 ../src/iop/spots.c:885 ../src/iop/spots.c:890 +#: ../src/iop/spots.c:895 ../src/libs/masks.c:1812 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1830 ../src/libs/masks.c:1839 ../src/libs/masks.c:1848 msgid "shapes" msgstr "format" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw curves" msgstr "vizatoni kurba" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw multiple curves" msgstr "vizatoni disa kurba" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw lines" msgstr "vizatoni vija" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw multiple lines" msgstr "vizatoni disa vija" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw points" msgstr "vizatoni pika" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw multiple points" msgstr "vizatoni disa pika" -#: ../src/iop/liquify.c:3729 +#: ../src/iop/liquify.c:3692 msgid "" "<b>add node</b>: ctrl+click - <b>remove path</b>: right click\n" "<b>toggle line/curve</b>: ctrl+alt+click" @@ -17770,7 +18406,7 @@ "djathtas\n" "<b>përdorni vijën/kurbën</b> me ctrl+alt+klikim" -#: ../src/iop/liquify.c:3732 +#: ../src/iop/liquify.c:3695 msgid "" "<b>move</b>: click and drag - <b>show/hide feathering controls</b>: click\n" "<b>autosmooth, cusp, smooth, symmetrical</b>: ctrl+click - <b>remove</b>: " @@ -17781,23 +18417,23 @@ "<b>vetëharkuar, kulmore, harkuar, simetrike</b>: ctrl+klikim - <b>hiqet</b> " "me klikim djathtas" -#: ../src/iop/liquify.c:3736 ../src/iop/liquify.c:3738 +#: ../src/iop/liquify.c:3699 ../src/iop/liquify.c:3701 msgid "<b>shape of path</b>: drag" msgstr "<b>forma e trajektores</b>: me tërheqjen e mausit" -#: ../src/iop/liquify.c:3740 +#: ../src/iop/liquify.c:3703 msgid "<b>radius</b>: drag" msgstr "<b>rrezja</b>: me tërheqjen e mausit" -#: ../src/iop/liquify.c:3742 +#: ../src/iop/liquify.c:3705 msgid "<b>hardness (center)</b>: drag" msgstr "<b>fortësia (qendër)</b>: me tërheqjen e mausit" -#: ../src/iop/liquify.c:3744 +#: ../src/iop/liquify.c:3707 msgid "<b>hardness (feather)</b>: drag" msgstr "<b>fortësia (sfumatura)</b>: me tërheqjen e mausit" -#: ../src/iop/liquify.c:3746 +#: ../src/iop/liquify.c:3709 msgid "" "<b>strength</b>: drag\n" "<b>linear, grow, and shrink</b>: ctrl+click" @@ -17817,236 +18453,236 @@ msgid "linear, XYZ" msgstr "linear, XYZ" -#: ../src/iop/lowlight.c:341 +#: ../src/iop/lowlight.c:338 msgid "indoor bright" msgstr "e brendshme me shkëlqim" -#: ../src/iop/lowlight.c:359 +#: ../src/iop/lowlight.c:356 msgid "indoor dim" msgstr "e brendshme e zbehtë" -#: ../src/iop/lowlight.c:377 +#: ../src/iop/lowlight.c:374 msgid "indoor dark" msgstr "e brendshme e errët" -#: ../src/iop/lowlight.c:395 +#: ../src/iop/lowlight.c:392 msgid "twilight" msgstr "muzg" -#: ../src/iop/lowlight.c:413 +#: ../src/iop/lowlight.c:410 msgid "night street lit" msgstr "rrugë e ndriçuar natën" -#: ../src/iop/lowlight.c:431 +#: ../src/iop/lowlight.c:428 msgid "night street" msgstr "rrugë natën" -#: ../src/iop/lowlight.c:449 +#: ../src/iop/lowlight.c:446 msgid "night street dark" msgstr "rrugë e errët natën" -#: ../src/iop/lowlight.c:468 +#: ../src/iop/lowlight.c:465 msgid "night" msgstr "natë" -#: ../src/iop/lowlight.c:641 +#: ../src/iop/lowlight.c:639 msgid "dark" msgstr "errësoj" -#: ../src/iop/lowlight.c:649 +#: ../src/iop/lowlight.c:647 msgid "bright" msgstr "shkëlqej" -#: ../src/iop/lowlight.c:658 +#: ../src/iop/lowlight.c:656 msgid "day vision" msgstr "fushëpamje dite" -#: ../src/iop/lowlight.c:663 +#: ../src/iop/lowlight.c:661 msgid "night vision" msgstr "fushëpamje nate" -#: ../src/iop/lowlight.c:835 +#: ../src/iop/lowlight.c:833 msgid "blueness in shadows" msgstr "bluja e hijeve" -#: ../src/iop/lowpass.c:128 +#: ../src/iop/lowpass.c:100 msgid "lowpass" msgstr "frekuenca e ulët" -#: ../src/iop/lowpass.c:133 +#: ../src/iop/lowpass.c:105 msgid "isolate low frequencies in the image" msgstr "izoloni frekuencat e ulëta të imazhit" -#: ../src/iop/lowpass.c:565 +#: ../src/iop/lowpass.c:578 msgid "local contrast mask" msgstr "maskë e kontrastit lokal" -#: ../src/iop/lowpass.c:590 +#: ../src/iop/lowpass.c:603 msgid "radius of gaussian/bilateral blur" msgstr "rrezja e sfumimit gausian/bilateral" -#: ../src/iop/lowpass.c:591 +#: ../src/iop/lowpass.c:604 msgid "contrast of lowpass filter" msgstr "kontrasti i filtrit" -#: ../src/iop/lowpass.c:592 +#: ../src/iop/lowpass.c:605 msgid "brightness adjustment of lowpass filter" msgstr "rregulloni shkëlqimin e filtrit me frekuencë të ulët" -#: ../src/iop/lowpass.c:593 +#: ../src/iop/lowpass.c:606 msgid "color saturation of lowpass filter" msgstr "saturimi i ngjyrave të filtrit me frekuencë të ulët" -#: ../src/iop/lowpass.c:594 +#: ../src/iop/lowpass.c:607 msgid "which filter to use for blurring" msgstr "lloji i filtrit sfumues" -#: ../src/iop/lut3d.c:135 +#: ../src/iop/lut3d.c:136 msgid "LUT 3D" msgstr "LUT 3D" -#: ../src/iop/lut3d.c:140 +#: ../src/iop/lut3d.c:141 msgid "perform color space corrections and apply look" msgstr "korrigjoni hapësirën e ngjyrave dhe aplikoni stilin" -#: ../src/iop/lut3d.c:143 +#: ../src/iop/lut3d.c:144 msgid "defined by profile, RGB" msgstr "përcaktohet nga profili, RGB" -#: ../src/iop/lut3d.c:468 +#: ../src/iop/lut3d.c:486 msgid "error allocating buffer for gmz LUT" msgstr "problem me racionimin e buferit për gmz LUT" -#: ../src/iop/lut3d.c:494 +#: ../src/iop/lut3d.c:512 #, c-format msgid "invalid png file %s" msgstr "skedar PNG i pasaktë %s" -#: ../src/iop/lut3d.c:502 +#: ../src/iop/lut3d.c:520 #, c-format -msgid "png bit-depth %d not supported" +msgid "png bit depth %d is not supported" msgstr "thellësia e bitëve të PNG-së %d nuk garantohet" -#: ../src/iop/lut3d.c:516 ../src/iop/lut3d.c:526 +#: ../src/iop/lut3d.c:534 ../src/iop/lut3d.c:544 #, c-format msgid "invalid level in png file %d %d" msgstr "nivel i pasaktë në skedarin PNG %d %d" -#: ../src/iop/lut3d.c:521 +#: ../src/iop/lut3d.c:539 msgid "this darktable build is not compatible with compressed CLUT" msgstr "versioni i darktable nuk përshtatet me CLUT-të e komprimuara" -#: ../src/iop/lut3d.c:538 ../src/iop/lut3d.c:788 +#: ../src/iop/lut3d.c:556 ../src/iop/lut3d.c:808 #, c-format msgid "error - LUT 3D size %d exceeds the maximum supported" msgstr "gabim - madhësia e LUT 3D %d e tejkalon maksimumin e garantuar" -#: ../src/iop/lut3d.c:550 +#: ../src/iop/lut3d.c:568 msgid "error allocating buffer for png LUT" msgstr "problem me racionimin e buferit për PNG LUT" -#: ../src/iop/lut3d.c:558 +#: ../src/iop/lut3d.c:576 #, c-format msgid "error - could not read png image %s" msgstr "gabim - nuk lexohet imazhi PNG %s" -#: ../src/iop/lut3d.c:568 +#: ../src/iop/lut3d.c:586 msgid "error - allocating buffer for png LUT" msgstr "gabim - racionon buferin për PNG LUT" -#: ../src/iop/lut3d.c:743 +#: ../src/iop/lut3d.c:761 #, c-format msgid "error - invalid cube file: %s" msgstr "gabim - skedar kub i pasaktë: %s" -#: ../src/iop/lut3d.c:757 -msgid "DOMAIN MIN <> 0.0 is not supported" -msgstr "DOMAIN MIN <> 0.0 nuk garantohet" - -#: ../src/iop/lut3d.c:768 -msgid "DOMAIN MAX <> 1.0 is not supported" -msgstr "DOMAIN MAX <> 1.0 nuk garantohet" +#: ../src/iop/lut3d.c:775 +msgid "DOMAIN MIN other than 0 is not supported" +msgstr "DOMAIN MIN veç 0 nuk garantohet" + +#: ../src/iop/lut3d.c:787 +msgid "DOMAIN MAX other than 1 is not supported" +msgstr "DOMAIN MAX veç 1 nuk garantohet" -#: ../src/iop/lut3d.c:777 +#: ../src/iop/lut3d.c:797 msgid "1D cube LUT is not supported" msgstr "kubi LUT 1D nuk garantohet" -#: ../src/iop/lut3d.c:799 +#: ../src/iop/lut3d.c:819 msgid "error - allocating buffer for cube LUT" msgstr "gabim - racionon buferin për kubin LUT" -#: ../src/iop/lut3d.c:810 +#: ../src/iop/lut3d.c:830 msgid "error - cube LUT size is not defined" msgstr "gabim - nuk përcaktohet madhësia e kubit LUT" -#: ../src/iop/lut3d.c:821 +#: ../src/iop/lut3d.c:841 #, c-format msgid "error - cube LUT invalid number line %d" msgstr "gabim - kubi LUT ka numër rreshti të pasaktë %d" -#: ../src/iop/lut3d.c:837 +#: ../src/iop/lut3d.c:857 #, c-format msgid "error - cube LUT lines number %d is not correct, should be %d" msgstr "" "gabim - nuk është i saktë numri i rreshtave %d për kubin LUT, duhet të jetë " "%d" -#: ../src/iop/lut3d.c:847 +#: ../src/iop/lut3d.c:867 #, c-format msgid "warning - cube LUT has %d values out of range [0,1]" msgstr "kujdes - kubi LUT ka %d vlera jashtë intervalit [0,1]" -#: ../src/iop/lut3d.c:872 +#: ../src/iop/lut3d.c:892 #, c-format msgid "error - invalid 3dl file: %s" msgstr "gabim - skedar 3dl i pasaktë: %s" -#: ../src/iop/lut3d.c:893 +#: ../src/iop/lut3d.c:913 #, c-format msgid "error - the maximum shaper LUT value %d is too low" msgstr "gabim - vlera maksimale e modeluesit LUT %d është tepër e ulët" -#: ../src/iop/lut3d.c:904 +#: ../src/iop/lut3d.c:924 msgid "error - allocating buffer for 3dl LUT" msgstr "gabim - racionon buferin për LUT 3dl" -#: ../src/iop/lut3d.c:917 +#: ../src/iop/lut3d.c:937 msgid "error - 3dl LUT size is not defined" msgstr "gabim - nuk përcaktohet madhësia e LUT 3dl" -#: ../src/iop/lut3d.c:945 +#: ../src/iop/lut3d.c:965 msgid "error - 3dl LUT lines number is not correct" msgstr "gabim - nuk është i saktë numri i rreshtave të LUT 3dl" -#: ../src/iop/lut3d.c:961 +#: ../src/iop/lut3d.c:981 msgid "error - the maximum LUT value does not match any valid bit depth" msgstr "gabim - vlerat maksimale LUT nuk korrespondojnë me thellësinë e bitëve" -#: ../src/iop/lut3d.c:1539 +#: ../src/iop/lut3d.c:1553 msgid "LUT root folder not defined" msgstr "nuk përcaktohet dosja bazë LUT" -#: ../src/iop/lut3d.c:1545 +#: ../src/iop/lut3d.c:1559 msgid "select LUT file" msgstr "përzgjidhni skedarin LUT" -#: ../src/iop/lut3d.c:1546 +#: ../src/iop/lut3d.c:1560 msgid "_select" msgstr "_përzgjedh" -#: ../src/iop/lut3d.c:1566 +#: ../src/iop/lut3d.c:1580 msgid "hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" msgstr "CLUT hald (PNG), LUT 3D (kub ose 3dl) ose LUT gmic i komprimuar (gmz)" -#: ../src/iop/lut3d.c:1568 +#: ../src/iop/lut3d.c:1582 msgid "hald CLUT (png) or 3D LUT (cube or 3dl)" msgstr "CLUT hald (PNG) ose LUT 3D (kub ose 3dl)" -#: ../src/iop/lut3d.c:1592 +#: ../src/iop/lut3d.c:1606 msgid "select file outside LUT root folder is not allowed" msgstr "nuk lejohet përzgjedhja e skedarit jashtë dosjes bazë LUT" -#: ../src/iop/lut3d.c:1663 +#: ../src/iop/lut3d.c:1677 msgid "" "select a png (haldclut), a cube, a 3dl or a gmz (compressed LUT) file " "CAUTION: 3D LUT folder must be set in preferences/processing before choosing " @@ -18056,7 +18692,7 @@ "KUJDES: dosja LUT 3D duhet caktuar te preferencat/procesimi para zgjedhjes " "së skedarit LUT" -#: ../src/iop/lut3d.c:1667 +#: ../src/iop/lut3d.c:1681 msgid "" "select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be " "set in preferences/processing before choosing the LUT file" @@ -18064,7 +18700,7 @@ "përzgjidhni një skedar PNG (haldclut), kub ose 3dl. KUJDES: dosja LUT 3D " "duhet caktuar te preferencat/procesimi para zgjidhjes së skedarit LUT" -#: ../src/iop/lut3d.c:1679 +#: ../src/iop/lut3d.c:1693 msgid "" "the file path (relative to LUT folder) is saved with image along with the " "LUT data if it's a compressed LUT (gmz)" @@ -18072,7 +18708,7 @@ "adresa e skedarit (relative me dosjen LUT) regjistrohet bashkë me imazhin " "dhe të dhënat LUT kur ato janë komprimuar (gmz)" -#: ../src/iop/lut3d.c:1682 +#: ../src/iop/lut3d.c:1696 msgid "" "the file path (relative to LUT folder) is saved with image (and not the LUT " "data themselves)" @@ -18080,44 +18716,44 @@ "adresa e skedarit (në bazë të dosjes LUT) regjistrohet me imazhin (dhe jo me " "të dhënat LUT)" -#: ../src/iop/lut3d.c:1691 +#: ../src/iop/lut3d.c:1705 msgid "enter LUT name" msgstr "shkruani emrin e LUT" -#: ../src/iop/lut3d.c:1712 +#: ../src/iop/lut3d.c:1726 msgid "select the LUT" msgstr "përzgjidhni LUT" -#: ../src/iop/lut3d.c:1725 +#: ../src/iop/lut3d.c:1739 msgid "select the color space in which the LUT has to be applied" msgstr "hapësira e ngjyrave ku duhet aplikuar LUT" -#: ../src/iop/lut3d.c:1727 +#: ../src/iop/lut3d.c:1741 msgid "interpolation" msgstr "interpolimi" -#: ../src/iop/lut3d.c:1728 +#: ../src/iop/lut3d.c:1742 msgid "select the interpolation method" msgstr "përzgjidhni metodën e interpolimit" -#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:62 +#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:63 msgid "mask manager" msgstr "administruesi i maskave" -#: ../src/iop/monochrome.c:97 +#: ../src/iop/monochrome.c:99 msgid "quickly convert an image to black & white using a variable color filter" msgstr "" "konvertoni shpejt imazhin në bardhë e zi përmes filtrit me ngjyrim variabël" -#: ../src/iop/monochrome.c:127 +#: ../src/iop/monochrome.c:153 msgid "red filter" msgstr "filtër i kuq" -#: ../src/iop/monochrome.c:546 +#: ../src/iop/monochrome.c:568 msgid "drag and scroll mouse wheel to adjust the virtual color filter" msgstr "rregulloni filtrin e ngjyrave duke shtyrë e rrëshqitur mausin" -#: ../src/iop/monochrome.c:562 +#: ../src/iop/monochrome.c:584 msgid "how much to keep highlights" msgstr "ruani reflekset" @@ -18133,35 +18769,35 @@ msgid "invert film negative scans and simulate printing on paper" msgstr "përmbysni skanimet e filmave negativë dhe simuloni printimin në letër" -#: ../src/iop/negadoctor.c:469 +#: ../src/iop/negadoctor.c:483 msgid "D min" msgstr "D min" -#: ../src/iop/negadoctor.c:475 ../src/iop/negadoctor.c:856 +#: ../src/iop/negadoctor.c:489 ../src/iop/negadoctor.c:875 msgid "D min red component" msgstr "D min. e komponentit kuqe" #. Page FILM PROPERTIES -#: ../src/iop/negadoctor.c:832 +#: ../src/iop/negadoctor.c:851 msgid "film properties" msgstr "vetitë e filmit" #. Dmin -#: ../src/iop/negadoctor.c:836 +#: ../src/iop/negadoctor.c:855 msgctxt "section" msgid "color of the film base" msgstr "ngjyra e bazës së filmit" -#: ../src/iop/negadoctor.c:842 +#: ../src/iop/negadoctor.c:861 msgid "select color of film material from a swatch" msgstr "përzgjidhni ngjyrën e materialit filmik nga mostra" -#: ../src/iop/negadoctor.c:848 +#: ../src/iop/negadoctor.c:867 msgid "film material" msgstr "material filmik" -#: ../src/iop/negadoctor.c:857 ../src/iop/negadoctor.c:867 -#: ../src/iop/negadoctor.c:877 +#: ../src/iop/negadoctor.c:876 ../src/iop/negadoctor.c:886 +#: ../src/iop/negadoctor.c:896 msgid "" "adjust the color and shade of the film transparent base.\n" "this value depends on the film material, \n" @@ -18173,21 +18809,21 @@ "nga avujt kimikë që lëshohen gjatë zhvillimit të filmit dhe\n" "nga balancimi i bardhësisë së skanerit." -#: ../src/iop/negadoctor.c:866 +#: ../src/iop/negadoctor.c:885 msgid "D min green component" msgstr "D min. e komponentit gjelbër" -#: ../src/iop/negadoctor.c:876 +#: ../src/iop/negadoctor.c:895 msgid "D min blue component" msgstr "D min. e komponentit blu" #. D max and scanner bias -#: ../src/iop/negadoctor.c:884 +#: ../src/iop/negadoctor.c:903 msgctxt "section" msgid "dynamic range of the film" msgstr "diapazoni dinamik i filmit" -#: ../src/iop/negadoctor.c:888 +#: ../src/iop/negadoctor.c:907 msgid "" "maximum density of the film, corresponding to white after inversion.\n" "this value depends on the film specifications, the developing process,\n" @@ -18198,12 +18834,12 @@ "dinamik\n" "i skenës dhe parametrat e ekspozimit të skanerit." -#: ../src/iop/negadoctor.c:892 +#: ../src/iop/negadoctor.c:911 msgctxt "section" msgid "scanner exposure settings" msgstr "parametrat e ekspozimit të skanerit" -#: ../src/iop/negadoctor.c:896 +#: ../src/iop/negadoctor.c:915 msgid "" "correct the exposure of the scanner, for all RGB channels,\n" "before the inversion, so blacks are neither clipped or too pale." @@ -18212,25 +18848,25 @@ "para inversionit, që të zezat të mos shkurtohen apo veniten." #. WB shadows -#: ../src/iop/negadoctor.c:903 +#: ../src/iop/negadoctor.c:922 msgctxt "section" msgid "shadows color cast" msgstr "dominanti i ngjyrave të hijeve" -#: ../src/iop/negadoctor.c:909 +#: ../src/iop/negadoctor.c:928 msgid "select color of shadows from a swatch" msgstr "përzgjidhni ngjyrën e hijeve nga mostra" -#: ../src/iop/negadoctor.c:914 +#: ../src/iop/negadoctor.c:933 msgid "pick shadows color from image" msgstr "mblidhni ngjyrën e hijeve nga imazhi" -#: ../src/iop/negadoctor.c:920 +#: ../src/iop/negadoctor.c:939 msgid "shadows red offset" msgstr "ofseti i kuq i hijeve" -#: ../src/iop/negadoctor.c:921 ../src/iop/negadoctor.c:928 -#: ../src/iop/negadoctor.c:935 +#: ../src/iop/negadoctor.c:940 ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:954 msgid "" "correct the color cast in shadows so blacks are\n" "truly achromatic. Setting this value before\n" @@ -18242,34 +18878,34 @@ "nëse e vendosni para iluminantit të reflekseve,\n" "do e keni më të lehtë balancimin e bardhësisë." -#: ../src/iop/negadoctor.c:927 +#: ../src/iop/negadoctor.c:946 msgid "shadows green offset" msgstr "ofseti i gjelbër i hijeve" -#: ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:953 msgid "shadows blue offset" msgstr "ofseti blu i hijeve" #. WB highlights -#: ../src/iop/negadoctor.c:941 +#: ../src/iop/negadoctor.c:960 msgctxt "section" msgid "highlights white balance" msgstr "bardhësia e reflekseve" -#: ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:966 msgid "select color of illuminant from a swatch" msgstr "përzgjidhni ngjyrën e iluminantit nga mostra" -#: ../src/iop/negadoctor.c:952 +#: ../src/iop/negadoctor.c:971 msgid "pick illuminant color from image" msgstr "mbledh ngjyrën e iluminantit nga imazhi" -#: ../src/iop/negadoctor.c:958 +#: ../src/iop/negadoctor.c:977 msgid "illuminant red gain" msgstr "geini i iluminantit kuqe" -#: ../src/iop/negadoctor.c:959 ../src/iop/negadoctor.c:966 -#: ../src/iop/negadoctor.c:973 +#: ../src/iop/negadoctor.c:978 ../src/iop/negadoctor.c:985 +#: ../src/iop/negadoctor.c:992 msgid "" "correct the color of the illuminant so whites are\n" "truly achromatic. Setting this value after\n" @@ -18281,26 +18917,26 @@ "dominantit të ngjyrave të hijeve, do e keni më\n" "të lehtë balancimin global të bardhësisë." -#: ../src/iop/negadoctor.c:965 +#: ../src/iop/negadoctor.c:984 msgid "illuminant green gain" msgstr "geini i iluminantit gjelbër" -#: ../src/iop/negadoctor.c:972 +#: ../src/iop/negadoctor.c:991 msgid "illuminant blue gain" msgstr "geini i iluminantit blu" #. Page PRINT PROPERTIES -#: ../src/iop/negadoctor.c:979 +#: ../src/iop/negadoctor.c:998 msgid "print properties" msgstr "vetitë e printimit" #. print corrections -#: ../src/iop/negadoctor.c:982 +#: ../src/iop/negadoctor.c:1001 msgctxt "section" msgid "virtual paper properties" msgstr "vetitë e letrës virtuale" -#: ../src/iop/negadoctor.c:988 +#: ../src/iop/negadoctor.c:1007 msgid "" "correct the density of black after the inversion,\n" "to adjust the global contrast while avoiding clipping shadows." @@ -18308,7 +18944,7 @@ "korrigjoni dendësinë e të zezës pas inversionit,\n" "për të ndrequr kontrastin global duke evituar shkurtimin e hijeve." -#: ../src/iop/negadoctor.c:993 +#: ../src/iop/negadoctor.c:1012 msgid "" "select the grade of the virtual paper, which is actually\n" "equivalent to applying a gamma. it compensates the film D max\n" @@ -18318,7 +18954,7 @@ "e barasvlershme me aplikimin e gamës. ajo kompenson D maks. në\n" "film dhe rikuperon kontrastin. për D maks. të lartë përdoret klas i lartë." -#: ../src/iop/negadoctor.c:1001 +#: ../src/iop/negadoctor.c:1020 msgid "" "gradually compress specular highlights past this value\n" "to avoid clipping while pushing the exposure for mid-tones.\n" @@ -18328,12 +18964,12 @@ "për të evituar shkurtimin e tyre prej mbiekspozimit të toneve të mesme.\n" "me këtë mënyrë imitoni vetitë e letrës mat." -#: ../src/iop/negadoctor.c:1005 +#: ../src/iop/negadoctor.c:1024 msgctxt "section" msgid "virtual print emulation" msgstr "imitimi i printimit virtual" -#: ../src/iop/negadoctor.c:1012 +#: ../src/iop/negadoctor.c:1031 msgid "" "correct the printing exposure after inversion to adjust\n" "the global contrast and avoid clipping highlights." @@ -18341,51 +18977,83 @@ "korrigjoni ekspozimin e printimit pas inversionit,\n" "për të ndrequr kontrastin global duke evituar shkurtimin e hijeve." -#: ../src/iop/negadoctor.c:1020 +#: ../src/iop/negadoctor.c:1039 msgid "toggle on or off the color controls" msgstr "ndizni ose fikni butonët e ngjyrave" -#: ../src/iop/nlmeans.c:84 +#: ../src/iop/nlmeans.c:78 msgid "astrophoto denoise" msgstr "zbutja e zhurmës së astrofotove" -#: ../src/iop/nlmeans.c:89 +#: ../src/iop/nlmeans.c:83 msgid "denoise (non-local means)" msgstr "zbut zhurmën (me mjete jolokale)" -#: ../src/iop/nlmeans.c:94 +#: ../src/iop/nlmeans.c:88 msgid "apply a poisson noise removal best suited for astrophotography" msgstr "hiqni zhurmën me efektin poisson, më shumë për astrofotografi" -#: ../src/iop/nlmeans.c:459 +#: ../src/iop/nlmeans.c:462 msgid "radius of the patches to match" msgstr "rrezja e arnave të krahasueshme" -#: ../src/iop/nlmeans.c:467 +#: ../src/iop/nlmeans.c:470 msgid "how much to smooth brightness" msgstr "rrafshoni shkëlqimin" -#: ../src/iop/nlmeans.c:470 +#: ../src/iop/nlmeans.c:473 msgid "how much to smooth colors" msgstr "rrafshoni ngjyrat" #. * let's fill the encapsulating widgets #. preview mode #. color scheme -#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2419 -#: ../src/views/darkroom.c:2437 ../src/views/darkroom.c:2444 -#: ../src/views/darkroom.c:2454 ../src/views/darkroom.c:2471 +#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2258 +#: ../src/views/darkroom.c:2276 ../src/views/darkroom.c:2283 +#: ../src/views/darkroom.c:2293 ../src/views/darkroom.c:2310 msgid "overexposed" msgstr "mbiekspozimi" -#: ../src/iop/overexposed.c:130 ../src/iop/overexposed.c:360 +#: ../src/iop/overexposed.c:123 ../src/iop/overexposed.c:352 msgid "module overexposed failed in buffer allocation" msgstr "problem me racionimin e buferit në modulin e mbiekspozimit" -#: ../src/iop/overexposed.c:156 ../src/iop/overexposed.c:370 +#: ../src/iop/overexposed.c:149 ../src/iop/overexposed.c:362 msgid "module overexposed failed in color conversion" msgstr "problem me konvertimin e ngjyrave në modulin e mbiekspozimit" +#: ../src/iop/primaries.c:74 +msgid "rgb primaries" +msgstr "primaret RGB" + +#: ../src/iop/primaries.c:79 +msgid "adjustment of the RGB color primaries for color grading" +msgstr "rregullimi i primareve RGB për etalonimin e ngjyrave" + +#: ../src/iop/primaries.c:395 +msgid "shift red towards yellow or magenta" +msgstr "zhvendosni të kuqen drejt së verdhës ose kuqërremes" + +#: ../src/iop/primaries.c:396 +msgid "red primary purity" +msgstr "pastëria e së kuqes primare" + +#: ../src/iop/primaries.c:397 +msgid "shift green towards cyan or yellow" +msgstr "zhvendosni të gjelbrën drejt cianit ose të verdhës" + +#: ../src/iop/primaries.c:398 +msgid "green primary purity" +msgstr "pastërtia e së gjelbrës primare" + +#: ../src/iop/primaries.c:399 +msgid "shift blue towards magenta or cyan" +msgstr "zhvendosni blunë drejt kuqërremes ose cianit" + +#: ../src/iop/primaries.c:400 +msgid "blue primary purity" +msgstr "pastërtia e blusë primare" + #: ../src/iop/profile_gamma.c:96 msgid "unbreak input profile" msgstr "profili input i pathyer" @@ -18395,39 +19063,39 @@ msgstr "" "korrigjoni profilet kolorimetrike input për t'u aplikuar në RGB jolinear" -#: ../src/iop/profile_gamma.c:136 +#: ../src/iop/profile_gamma.c:138 msgid "16 EV dynamic range (generic)" msgstr "diapazon dinamik 16 EV (gjenerik)" -#: ../src/iop/profile_gamma.c:142 +#: ../src/iop/profile_gamma.c:144 msgid "14 EV dynamic range (generic)" msgstr "diapazon dinamik 14 EV (gjenerik)" -#: ../src/iop/profile_gamma.c:148 +#: ../src/iop/profile_gamma.c:150 msgid "12 EV dynamic range (generic)" msgstr "diapazon dinamik 12 EV (gjenerik)" -#: ../src/iop/profile_gamma.c:154 +#: ../src/iop/profile_gamma.c:156 msgid "10 EV dynamic range (generic)" msgstr "diapazon dinamik 10 EV (gjenerik)" -#: ../src/iop/profile_gamma.c:160 +#: ../src/iop/profile_gamma.c:162 msgid "08 EV dynamic range (generic)" msgstr "diapazon dinamik 08 EV (gjenerik)" -#: ../src/iop/profile_gamma.c:623 +#: ../src/iop/profile_gamma.c:637 msgid "linear part" msgstr "pjesa lineare" -#: ../src/iop/profile_gamma.c:627 +#: ../src/iop/profile_gamma.c:641 msgid "gamma exponential factor" msgstr "koeficienti eksponencial i gamës" -#: ../src/iop/profile_gamma.c:638 +#: ../src/iop/profile_gamma.c:652 msgid "adjust to match the average luma of the subject" msgstr "përshtateni sipas lumës mesatare të subjektit" -#: ../src/iop/profile_gamma.c:644 +#: ../src/iop/profile_gamma.c:658 msgid "" "number of stops between middle gray and pure black\n" "this is a reading a light meter would give you on the scene" @@ -18435,7 +19103,7 @@ "numri i stopeve midis grisë së mesme dhe të zezës puro\n" "këtë vlerë do të tregonte dritëmatësi në skenë" -#: ../src/iop/profile_gamma.c:650 +#: ../src/iop/profile_gamma.c:664 msgid "" "number of stops between pure black and pure white\n" "this is a reading a light meter would give you on the scene" @@ -18443,36 +19111,36 @@ "numri i stopeve midis të zezës puro dhe të bardhës puro\n" "këtë vlerë do të tregonte dritëmatësi në skenë" -#: ../src/iop/profile_gamma.c:652 +#: ../src/iop/profile_gamma.c:666 msgctxt "section" msgid "optimize automatically" msgstr "optimizoj automatikisht" -#: ../src/iop/profile_gamma.c:656 +#: ../src/iop/profile_gamma.c:670 msgid "" -"enlarge or shrink the computed dynamic range\n" -"this is useful when noise perturbates the measurements" +"increase or decrease the computed dynamic range\n" +"this is useful when noise distorts the measurement" msgstr "" -"zmadhoni ose tkurrni diapazonin e kalkuluar dinamik\n" +"rritni ose ulni diapazonin e kalkuluar dinamik\n" "është me dobi për matjet e çrregullta prej zhurmës" -#: ../src/iop/profile_gamma.c:660 +#: ../src/iop/profile_gamma.c:674 msgid "make an optimization with some guessing" msgstr "kryeni optimizime me hamendje" -#: ../src/iop/profile_gamma.c:669 +#: ../src/iop/profile_gamma.c:683 msgid "tone mapping method" msgstr "metoda e rilevimit të toneve" -#: ../src/iop/rawdenoise.c:124 +#: ../src/iop/rawdenoise.c:138 msgid "raw denoise" msgstr "zbutja e zhurmës bruto" -#: ../src/iop/rawdenoise.c:129 +#: ../src/iop/rawdenoise.c:143 msgid "denoise the raw picture early in the pipeline" msgstr "zbutni zhurmën e fotos bruto në fillim të linjës së zhvillimit" -#: ../src/iop/rawdenoise.c:939 +#: ../src/iop/rawdenoise.c:955 msgid "" "raw denoising\n" "only works for raw images." @@ -18482,9 +19150,9 @@ #. * let's fill the encapsulating widgets #. mode of operation -#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2387 ../src/views/darkroom.c:2393 -#: ../src/views/darkroom.c:2406 +#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2226 ../src/views/darkroom.c:2232 +#: ../src/views/darkroom.c:2245 msgid "raw overexposed" msgstr "mbiekspozimi i brutos" @@ -18493,7 +19161,7 @@ msgid "raw black/white point" msgstr "pika e zezë/bardhë bruto" -#: ../src/iop/rawprepare.c:156 +#: ../src/iop/rawprepare.c:172 msgid "" "sets technical specificities of the raw sensor.\n" "touch with great care!" @@ -18501,64 +19169,64 @@ "caktoni specifikat teknike të sensorit bruto.\n" "duhet trajtuar me shumë kujdes!" -#: ../src/iop/rawprepare.c:168 +#: ../src/iop/rawprepare.c:184 msgid "passthrough" msgstr "përshkoj" -#: ../src/iop/rawprepare.c:655 +#: ../src/iop/rawprepare.c:663 msgid "invalid crop parameters" msgstr "parametrat e prerjes të pasaktë" -#: ../src/iop/rawprepare.c:656 +#: ../src/iop/rawprepare.c:664 msgid "" "please reset to defaults, update your preset or set to something correct" msgstr "" "lutemi të ktheni vlerat fillestare, të përditësoni të rejat ose t'i " "korrigjoni ato" -#: ../src/iop/rawprepare.c:922 +#: ../src/iop/rawprepare.c:930 msgid "black level 0" msgstr "niveli 0 i të zezës" -#: ../src/iop/rawprepare.c:923 +#: ../src/iop/rawprepare.c:931 msgid "black level 1" msgstr "niveli 1 i të zezës" -#: ../src/iop/rawprepare.c:924 +#: ../src/iop/rawprepare.c:932 msgid "black level 2" msgstr "niveli 2 i të zezës" -#: ../src/iop/rawprepare.c:925 +#: ../src/iop/rawprepare.c:933 msgid "black level 3" msgstr "niveli 3 i të zezës" -#: ../src/iop/rawprepare.c:952 +#: ../src/iop/rawprepare.c:960 msgid "raw flat field correction to compensate for lens shading" msgstr "" "korrigjimi i fushës së sheshtë për të kompensuar vinetaturën e objektivit" -#: ../src/iop/rawprepare.c:957 +#: ../src/iop/rawprepare.c:965 msgctxt "section" msgid "crop" msgstr "prerja" -#: ../src/iop/rawprepare.c:960 +#: ../src/iop/rawprepare.c:968 msgid "crop left border" msgstr "pres nga bordura majtas" -#: ../src/iop/rawprepare.c:964 +#: ../src/iop/rawprepare.c:972 msgid "crop top border" msgstr "pres nga bordura lart" -#: ../src/iop/rawprepare.c:968 +#: ../src/iop/rawprepare.c:976 msgid "crop right border" msgstr "pres nga bordura djathtas" -#: ../src/iop/rawprepare.c:972 +#: ../src/iop/rawprepare.c:980 msgid "crop bottom border" msgstr "pres nga bordura poshtë" -#: ../src/iop/rawprepare.c:981 +#: ../src/iop/rawprepare.c:989 msgid "" "raw black/white point correction\n" "only works for the sensors that need it." @@ -18585,11 +19253,11 @@ "ky modul është i vjetër. lutemi të përdorni më mirë modulin për nivelimin e " "toneve." -#: ../src/iop/relight.c:263 +#: ../src/iop/relight.c:259 msgid "the fill-light in EV" msgstr "dritësimi në EV" -#: ../src/iop/relight.c:272 +#: ../src/iop/relight.c:268 msgid "" "select the center of fill-light\n" "ctrl+click to select an area" @@ -18597,16 +19265,11 @@ "përzgjidhni qendrën që duhet dritësuar\n" "zona përzgjidhet me ctrl+klikim" -#: ../src/iop/relight.c:276 +#: ../src/iop/relight.c:272 msgid "toggle tool for picking median lightness in image" msgstr "përdorni ndriçimin mesatar të imazhit" -#: ../src/iop/relight.c:279 ../src/libs/export.c:1131 -#: ../src/libs/metadata_view.c:147 ../src/libs/print_settings.c:2537 -msgid "width" -msgstr "gjerësia" - -#: ../src/iop/relight.c:280 +#: ../src/iop/relight.c:276 msgid "width of fill-light area defined in zones" msgstr "gjerësia e zonave që duhen dritësuar" @@ -18627,29 +19290,29 @@ msgid "geometric and frequential, RGB" msgstr "gjeometrik dhe frekuencial, RGB" -#: ../src/iop/retouch.c:1538 +#: ../src/iop/retouch.c:1689 msgid "cannot display scales when the blending mask is displayed" msgstr "shkallët nuk shihen kur aktivizohet maska bashkuese" -#: ../src/iop/retouch.c:1861 ../src/iop/retouch.c:1863 -#: ../src/iop/retouch.c:1865 ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2045 ../src/iop/retouch.c:2047 +#: ../src/iop/retouch.c:2049 ../src/iop/retouch.c:2051 #, c-format msgid "default tool changed to %s" msgstr "ndryshoi instrumenti standard në %s" -#: ../src/iop/retouch.c:1861 +#: ../src/iop/retouch.c:2045 msgid "cloning" msgstr "klonimi" -#: ../src/iop/retouch.c:1863 +#: ../src/iop/retouch.c:2047 msgid "healing" msgstr "peneli korrektues" -#: ../src/iop/retouch.c:2226 +#: ../src/iop/retouch.c:2448 msgid "shapes:" msgstr "forma:" -#: ../src/iop/retouch.c:2230 +#: ../src/iop/retouch.c:2454 msgid "" "to add a shape select an algorithm and a shape type and click on the image.\n" "shapes are added to the current scale" @@ -18658,77 +19321,73 @@ "llojin.\n" "format shtohen në shëmbëllimin aktual" -#. display & suppress masks -#. copy/paste shapes -#. display final image/current scale -#. auto-levels button -#: ../src/iop/retouch.c:2233 ../src/iop/retouch.c:2334 -#: ../src/iop/retouch.c:2339 ../src/iop/retouch.c:2347 -#: ../src/iop/retouch.c:2351 ../src/iop/retouch.c:2358 -#: ../src/iop/retouch.c:2392 +#: ../src/iop/retouch.c:2458 ../src/iop/retouch.c:2591 +#: ../src/iop/retouch.c:2597 ../src/iop/retouch.c:2606 +#: ../src/iop/retouch.c:2611 ../src/iop/retouch.c:2619 +#: ../src/iop/retouch.c:2664 msgid "editing" msgstr "përpunimi" -#: ../src/iop/retouch.c:2233 +#: ../src/iop/retouch.c:2459 msgid "show and edit shapes on the current scale" msgstr "shfaqni dhe përpunoni format në shëmbëllimin aktual" -#: ../src/iop/retouch.c:2234 +#: ../src/iop/retouch.c:2460 msgid "show and edit shapes in restricted mode" msgstr "shfaqni dhe përpunoni format në mënyrë të kufizuar" -#: ../src/iop/retouch.c:2257 +#: ../src/iop/retouch.c:2489 msgid "algorithms:" msgstr "algoritme:" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2498 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2510 msgid "tools" msgstr "instrumentet" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2278 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2518 msgid "activate blur tool" msgstr "aktivizoni instrumentin sfumues" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2493 ../src/iop/retouch.c:2499 +#: ../src/iop/retouch.c:2505 ../src/iop/retouch.c:2511 msgid "change algorithm for current form" msgstr "ndryshoni algoritmin për formën aktuale" -#: ../src/iop/retouch.c:2264 ../src/iop/retouch.c:2281 +#: ../src/iop/retouch.c:2498 ../src/iop/retouch.c:2521 msgid "activate fill tool" msgstr "aktivizoni instrumentin dritësues" -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2284 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2524 msgid "activate cloning tool" msgstr "aktivizoni instrumentin klonues" -#: ../src/iop/retouch.c:2272 ../src/iop/retouch.c:2287 +#: ../src/iop/retouch.c:2510 ../src/iop/retouch.c:2527 msgid "activate healing tool" msgstr "aktivizoni penelin korrektues" #. overwrite tooltip ourself to handle shift+click -#: ../src/iop/retouch.c:2276 +#: ../src/iop/retouch.c:2516 msgid "ctrl+click to change tool for current form" msgstr "instrumenti për formën aktuale ndryshohet me ctrl+klikim" -#: ../src/iop/retouch.c:2277 +#: ../src/iop/retouch.c:2517 msgid "shift+click to set the tool as default" msgstr "instrumenti standard caktohet me shift+klikim" -#: ../src/iop/retouch.c:2296 +#: ../src/iop/retouch.c:2537 msgid "scales:" msgstr "shkallë:" -#: ../src/iop/retouch.c:2301 +#: ../src/iop/retouch.c:2544 msgid "current:" msgstr "aktuale:" -#: ../src/iop/retouch.c:2306 +#: ../src/iop/retouch.c:2551 msgid "merge from:" msgstr "shkrirë nga:" -#: ../src/iop/retouch.c:2314 +#: ../src/iop/retouch.c:2562 msgid "" "top slider adjusts where the merge scales start\n" "bottom slider adjusts the number of scales\n" @@ -18742,44 +19401,44 @@ "vija e sipërme tregon që shkalla duket në zmadhimin aktual\n" "vija e poshtme tregon që shkalla ka forma" -#: ../src/iop/retouch.c:2334 +#: ../src/iop/retouch.c:2591 msgid "display masks" msgstr "shfaqni maskat" -#: ../src/iop/retouch.c:2339 +#: ../src/iop/retouch.c:2597 msgid "temporarily switch off shapes" msgstr "çaktivizoni përkohësisht format" -#: ../src/iop/retouch.c:2347 +#: ../src/iop/retouch.c:2606 msgid "paste cut shapes to current scale" msgstr "ngjitni format e prera në shëmbëllimin aktual" -#: ../src/iop/retouch.c:2351 +#: ../src/iop/retouch.c:2611 msgid "cut shapes from current scale" msgstr "prisni format nga shëmbëllimi aktual" -#: ../src/iop/retouch.c:2358 +#: ../src/iop/retouch.c:2619 msgid "display wavelet scale" msgstr "shfaqni shkallën e valëzës" -#: ../src/iop/retouch.c:2366 +#: ../src/iop/retouch.c:2627 msgctxt "section" msgid "preview single scale" msgstr "parashikimi në shëmbëllimin tek" -#: ../src/iop/retouch.c:2377 +#: ../src/iop/retouch.c:2641 msgid "adjust preview levels" msgstr "rregulloni nivelet e parashikimit" -#: ../src/iop/retouch.c:2392 ../src/iop/rgblevels.c:1051 +#: ../src/iop/retouch.c:2664 ../src/iop/rgblevels.c:1106 msgid "auto levels" msgstr "nivelet automatike" -#: ../src/iop/retouch.c:2400 +#: ../src/iop/retouch.c:2672 msgid "shape selected:" msgstr "forma e përzgjedhur:" -#: ../src/iop/retouch.c:2405 +#: ../src/iop/retouch.c:2678 msgid "" "click on a shape to select it,\n" "to unselect click on an empty space" @@ -18787,60 +19446,60 @@ "klikoni për të përzgjedhur formën,\n" "forma lëshohet me klikim në hapësirën boshe" -#: ../src/iop/retouch.c:2412 +#: ../src/iop/retouch.c:2687 msgid "erase the detail or fills with chosen color" msgstr "fshini detajet ose mbushini me ngjyrën e përzgjedhur" -#: ../src/iop/retouch.c:2419 +#: ../src/iop/retouch.c:2697 msgid "fill color: " msgstr "ngjyra e mbushjes: " -#: ../src/iop/retouch.c:2424 ../src/iop/retouch.c:2425 +#: ../src/iop/retouch.c:2702 ../src/iop/retouch.c:2703 msgid "select fill color" msgstr "përzgjidhni ngjyrën e mbushjes" -#: ../src/iop/retouch.c:2430 +#: ../src/iop/retouch.c:2713 msgid "pick fill color from image" msgstr "mblidhni ngjyrën e mbushjes nga imazhi" -#: ../src/iop/retouch.c:2431 +#: ../src/iop/retouch.c:2714 msgid "pick fill color" msgstr "mblidhni ngjyrën e mbushjes" -#: ../src/iop/retouch.c:2439 +#: ../src/iop/retouch.c:2724 msgid "adjusts color brightness to fine-tune it. works with erase as well" msgstr "rregulloni shkëlqimin e ngjyrave. funksionon edhe për fshirjen" -#: ../src/iop/retouch.c:2445 +#: ../src/iop/retouch.c:2730 msgid "type for the blur algorithm" msgstr "lloji i algoritmit të sfumimit" -#: ../src/iop/retouch.c:2449 +#: ../src/iop/retouch.c:2734 msgid "radius of the selected blur type" msgstr "rrezja e llojit të përzgjedhur të sfumimit" -#: ../src/iop/retouch.c:2455 +#: ../src/iop/retouch.c:2741 msgid "set the opacity on the selected shape" msgstr "caktoni tejdukshmërinë e formës së përzgjedhur" -#: ../src/iop/retouch.c:2461 +#: ../src/iop/retouch.c:2748 msgctxt "section" msgid "retouch tools" msgstr "instrumentet e retushimit" #. wavelet decompose -#: ../src/iop/retouch.c:2470 +#: ../src/iop/retouch.c:2757 msgctxt "section" msgid "wavelet decompose" msgstr "dekompozimi i valëzës" #. shapes -#: ../src/iop/retouch.c:2484 +#: ../src/iop/retouch.c:2771 msgctxt "section" msgid "shapes" msgstr "format" -#: ../src/iop/retouch.c:3589 ../src/iop/retouch.c:4427 +#: ../src/iop/retouch.c:3986 ../src/iop/retouch.c:4956 #, c-format msgid "max scale is %i for this image size" msgstr "shkalla maks. është %i nisur nga përmasat e imazhit" @@ -18849,60 +19508,60 @@ msgid "rgb curve" msgstr "kurba RGB" -#: ../src/iop/rgbcurve.c:142 +#: ../src/iop/rgbcurve.c:144 msgid "alter an image’s tones using curves in RGB color space" msgstr "" "ndryshoni tonet e imazhit nëpërmjet kurbave në hapësirën e ngjyrave RGB" -#: ../src/iop/rgbcurve.c:193 ../src/iop/tonecurve.c:548 +#: ../src/iop/rgbcurve.c:195 ../src/iop/tonecurve.c:569 msgid "gamma 1.0 (linear)" msgstr "gama 1.0 (linear)" -#: ../src/iop/rgbcurve.c:203 ../src/iop/tonecurve.c:558 +#: ../src/iop/rgbcurve.c:205 ../src/iop/tonecurve.c:579 msgid "contrast - med (linear)" msgstr "kontrasti - mes (linear)" -#: ../src/iop/rgbcurve.c:212 ../src/iop/tonecurve.c:567 +#: ../src/iop/rgbcurve.c:214 ../src/iop/tonecurve.c:588 msgid "contrast - high (linear)" msgstr "kontrasti - i lartë (linear)" -#: ../src/iop/rgbcurve.c:226 ../src/iop/tonecurve.c:579 +#: ../src/iop/rgbcurve.c:228 ../src/iop/tonecurve.c:600 msgid "contrast - med (gamma 2.2)" msgstr "kontrasti - mes (gama 2.2)" -#: ../src/iop/rgbcurve.c:239 ../src/iop/tonecurve.c:590 +#: ../src/iop/rgbcurve.c:241 ../src/iop/tonecurve.c:611 msgid "contrast - high (gamma 2.2)" msgstr "kontrasti - i lartë (gama 2.2)" -#: ../src/iop/rgbcurve.c:252 ../src/iop/tonecurve.c:603 +#: ../src/iop/rgbcurve.c:254 ../src/iop/tonecurve.c:624 msgid "gamma 2.0" msgstr "gama 2.0" -#: ../src/iop/rgbcurve.c:258 ../src/iop/tonecurve.c:609 +#: ../src/iop/rgbcurve.c:260 ../src/iop/tonecurve.c:630 msgid "gamma 0.5" msgstr "gama 0.5" -#: ../src/iop/rgbcurve.c:263 ../src/iop/tonecurve.c:614 +#: ../src/iop/rgbcurve.c:265 ../src/iop/tonecurve.c:635 msgid "logarithm (base 2)" msgstr "logaritmi (baza 2)" -#: ../src/iop/rgbcurve.c:268 ../src/iop/tonecurve.c:619 +#: ../src/iop/rgbcurve.c:270 ../src/iop/tonecurve.c:640 msgid "exponential (base 2)" msgstr "eksponenciale (baza 2)" -#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:999 +#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:1038 msgid "choose between linked and independent channels." msgstr "zgjidhni mes kanaleve të lidhura dhe të pavarura" -#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1003 +#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1043 msgid "curve nodes for r channel" msgstr "nyjat e kurbës për kanalin r" -#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1004 +#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1044 msgid "curve nodes for g channel" msgstr "nyjat e kurbës për kanalin g" -#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1005 +#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1045 msgid "curve nodes for b channel" msgstr "nyjat e kurbës për kanalin b" @@ -18910,17 +19569,17 @@ msgid "rgb levels" msgstr "nivelet RGB" -#: ../src/iop/rgblevels.c:122 +#: ../src/iop/rgblevels.c:124 msgid "adjust black, white and mid-gray points in RGB color space" msgstr "" "rregulloni pikën e zezë, të bardhën dhe grinë e mesme në hapësirën e " "ngjyrave RGB" -#: ../src/iop/rgblevels.c:1056 +#: ../src/iop/rgblevels.c:1112 msgid "auto region" msgstr "rajon automatik" -#: ../src/iop/rgblevels.c:1058 +#: ../src/iop/rgblevels.c:1115 msgid "" "apply auto levels based on a region defined by the user\n" "click and drag to draw the area\n" @@ -18935,7 +19594,7 @@ msgid "rotate pixels" msgstr "rrotullimi i pikselëve" -#: ../src/iop/rotatepixels.c:97 ../src/iop/scalepixels.c:82 +#: ../src/iop/rotatepixels.c:99 ../src/iop/scalepixels.c:84 msgid "" "internal module to setup technical specificities of raw sensor.\n" "\n" @@ -18945,11 +19604,11 @@ "\n" "vlerat këtu nuk duhen prekur!" -#: ../src/iop/rotatepixels.c:366 +#: ../src/iop/rotatepixels.c:381 msgid "automatic pixel rotation" msgstr "vetërrotullimi i pikselëve" -#: ../src/iop/rotatepixels.c:367 +#: ../src/iop/rotatepixels.c:382 msgid "" "automatic pixel rotation\n" "only works for the sensors that need it." @@ -18962,11 +19621,11 @@ msgid "scale pixels" msgstr "shëmbëllimi i pikselëve" -#: ../src/iop/scalepixels.c:271 +#: ../src/iop/scalepixels.c:281 msgid "automatic pixel scaling" msgstr "vetëshëmbëllimi i pikselëve" -#: ../src/iop/scalepixels.c:272 +#: ../src/iop/scalepixels.c:282 msgid "" "automatic pixel scaling\n" "only works for the sensors that need it." @@ -18974,11 +19633,11 @@ "vetëshëmbëllimi i pikselëve\n" "vetëm për sensorët që e kanë të nevojshëm." -#: ../src/iop/shadhi.c:175 +#: ../src/iop/shadhi.c:120 msgid "shadows and highlights" msgstr "hijet dhe reflekset" -#: ../src/iop/shadhi.c:195 +#: ../src/iop/shadhi.c:142 msgid "" "modify the tonal range of the shadows and highlights\n" "of an image by enhancing local contrast." @@ -18986,27 +19645,27 @@ "modifikoni intervalin tonal të hijeve dhe reflekseve\n" "të imazhit duke rritur kontrastin lokal" -#: ../src/iop/shadhi.c:676 ../src/iop/splittoning.c:548 +#: ../src/iop/shadhi.c:711 ../src/iop/splittoning.c:544 msgid "compress" msgstr "komprimimi" -#: ../src/iop/shadhi.c:683 +#: ../src/iop/shadhi.c:718 msgid "correct shadows" msgstr "korrigjoni hijet" -#: ../src/iop/shadhi.c:684 +#: ../src/iop/shadhi.c:719 msgid "correct highlights" msgstr "korrigjoni reflekset" -#: ../src/iop/shadhi.c:685 +#: ../src/iop/shadhi.c:720 msgid "shift white point" msgstr "zhvendosni pikën e bardhë" -#: ../src/iop/shadhi.c:687 +#: ../src/iop/shadhi.c:722 msgid "filter to use for softening. bilateral avoids halos" msgstr "filtri zbutës. bilaterali shmang aureolat" -#: ../src/iop/shadhi.c:688 +#: ../src/iop/shadhi.c:723 msgid "" "compress the effect on shadows/highlights and\n" "preserve mid-tones" @@ -19014,11 +19673,11 @@ "komprimoni efektin për hijet/reflekset dhe\n" "ruani tonet e mesme" -#: ../src/iop/shadhi.c:689 +#: ../src/iop/shadhi.c:724 msgid "adjust saturation of shadows" msgstr "rregulloni saturimin e hijeve" -#: ../src/iop/shadhi.c:690 +#: ../src/iop/shadhi.c:725 msgid "adjust saturation of highlights" msgstr "rregulloni saturimin e reflekseve" @@ -19027,45 +19686,45 @@ msgid "sharpen" msgstr "qartësia" -#: ../src/iop/sharpen.c:93 +#: ../src/iop/sharpen.c:95 msgid "sharpen the details in the image using a standard UnSharp Mask (USM)" msgstr "qartësoni detajet e imazhit me standardin UnSharp Mask (USM)" -#: ../src/iop/sharpen.c:95 +#: ../src/iop/sharpen.c:97 msgid "linear or non-linear, Lab, display or scene-referred" msgstr "linear ose jolinear, Lab, sipas ekranit ose skenës" -#: ../src/iop/sharpen.c:97 +#: ../src/iop/sharpen.c:99 msgid "quasi-linear, Lab, display or scene-referred" msgstr "kuazilinear, Lab, sipas ekranit ose skenës" #. add the preset. #. restrict to raw images -#: ../src/iop/sharpen.c:104 ../src/iop/sharpen.c:108 +#: ../src/iop/sharpen.c:106 ../src/iop/sharpen.c:110 msgid "sharpen" msgstr "qartësoj" -#: ../src/iop/sharpen.c:443 +#: ../src/iop/sharpen.c:438 msgid "spatial extent of the unblurring" msgstr "shtrirja hapësinore e desfumimit" -#: ../src/iop/sharpen.c:447 +#: ../src/iop/sharpen.c:442 msgid "strength of the sharpen" msgstr "forca e qartësisë" -#: ../src/iop/sharpen.c:451 +#: ../src/iop/sharpen.c:446 msgid "threshold to activate sharpen" msgstr "pragu i aktivizimit të qartësisë" -#: ../src/iop/sigmoid.c:89 +#: ../src/iop/sigmoid.c:195 msgid "sigmoid" msgstr "sigmoid" -#: ../src/iop/sigmoid.c:94 +#: ../src/iop/sigmoid.c:200 msgid "tone mapping|view transform|display transform" msgstr "rilevimi i toneve|transformimi pamor|transformimi për ekran" -#: ../src/iop/sigmoid.c:99 +#: ../src/iop/sigmoid.c:206 msgid "" "apply a view transform to make a image displayable\n" "on a screen or print. uses a robust and smooth\n" @@ -19075,19 +19734,19 @@ "në ekran ose për printim. përdoret kurbë tonale e butë,\n" "e qëndrueshme dhe disa metoda për ruajtjen e ngjyrave." -#: ../src/iop/sigmoid.c:155 +#: ../src/iop/sigmoid.c:258 msgid "neutral gray" msgstr "gri neutrale" -#: ../src/iop/sigmoid.c:160 +#: ../src/iop/sigmoid.c:264 msgid "ACES 100-nit like" msgstr "si ACES 100-nit" -#: ../src/iop/sigmoid.c:165 +#: ../src/iop/sigmoid.c:270 msgid "Reinhard" msgstr "Reinhard" -#: ../src/iop/sigmoid.c:683 +#: ../src/iop/sigmoid.c:917 msgid "" "compression of the applied curve\n" "implicitly defines the supported input dynamic range" @@ -19095,7 +19754,7 @@ "komprimimi i kurbës së aplikuar\n" "me këtë nënkuptohet diapazoni i mundshëm dinamik i inputit" -#: ../src/iop/sigmoid.c:686 +#: ../src/iop/sigmoid.c:920 msgid "" "shift the compression towards shadows or highlights.\n" "negative values increase contrast in shadows.\n" @@ -19107,7 +19766,7 @@ "vlerat pozitive rritin kontrastin e reflekseve.\n" "të kundërtat shkaktojnë rënien e kontrastit." -#: ../src/iop/sigmoid.c:695 +#: ../src/iop/sigmoid.c:929 msgid "" "optional correction of the hue twist introduced by\n" "the per-channel processing method." @@ -19115,15 +19774,55 @@ "korrigjimi i mundshëm i nuancave të spostuara\n" "si pasojë e metodës së procesimit për kanal." -#: ../src/iop/sigmoid.c:702 +#: ../src/iop/sigmoid.c:936 ../src/iop/sigmoid.c:940 +msgid "primaries" +msgstr "primaret" + +#: ../src/iop/sigmoid.c:937 +msgid "set custom primaries" +msgstr "personalizoni primaret" + +#: ../src/iop/sigmoid.c:943 +msgid "primaries to use as the base for below adjustments" +msgstr "primaret që përdoren si bazë për ndryshimet e mëposhtme" + +#: ../src/iop/sigmoid.c:962 +msgid "attenuate the purity of the red primary" +msgstr "fashitni pastërtinë e së kuqes primare" + +#: ../src/iop/sigmoid.c:963 +msgid "rotate the red primary" +msgstr "rrotulloni të kuqen primare" + +#: ../src/iop/sigmoid.c:964 +msgid "attenuate the purity of the green primary" +msgstr "fashitni pastërtinë e së gjelbrës primare" + +#: ../src/iop/sigmoid.c:965 +msgid "rotate the green primary" +msgstr "rrotulloni të gjelbrën primare" + +#: ../src/iop/sigmoid.c:966 +msgid "attenuate the purity of the blue primary" +msgstr "fashitni pastërtinë e blusë primare" + +#: ../src/iop/sigmoid.c:967 +msgid "rotate the blue primary" +msgstr "rrotulloni blunë primare" + +#: ../src/iop/sigmoid.c:974 +msgid "recover some of the original purity after the inset" +msgstr "rikuperoni një pjesë të pastërtisë origjinale pas rikuadrimit" + +#: ../src/iop/sigmoid.c:978 msgid "display luminance" msgstr "luminanca e ekranit" -#: ../src/iop/sigmoid.c:706 +#: ../src/iop/sigmoid.c:979 msgid "set display black/white targets" msgstr "caktoni të bardhën/zezën e synuar për ekran" -#: ../src/iop/sigmoid.c:714 +#: ../src/iop/sigmoid.c:987 msgid "" "the black luminance of the target display or print.\n" "can be used creatively for a faded look." @@ -19131,7 +19830,7 @@ "luminanca e të zezës për ekranin e synuar ose për printim.\n" "mund të përdoret për të zbehur paraqitjen." -#: ../src/iop/sigmoid.c:719 +#: ../src/iop/sigmoid.c:992 msgid "" "the white luminance of the target display or print.\n" "can be used creatively for a faded look or blowing out whites earlier." @@ -19144,23 +19843,23 @@ msgid "soften" msgstr "butësia" -#: ../src/iop/soften.c:100 +#: ../src/iop/soften.c:102 msgid "create a softened image using the Orton effect" msgstr "krijoni një imazh të butësuar me efektin Orton" -#: ../src/iop/soften.c:371 +#: ../src/iop/soften.c:366 msgid "the size of blur" msgstr "madhësia e pjesës së sfumuar" -#: ../src/iop/soften.c:375 +#: ../src/iop/soften.c:370 msgid "the saturation of blur" msgstr "saturimi i pjesës së sfumuar" -#: ../src/iop/soften.c:379 +#: ../src/iop/soften.c:374 msgid "the brightness of blur" msgstr "shkëlqimi i pjesës së sfumuar" -#: ../src/iop/soften.c:383 +#: ../src/iop/soften.c:378 msgid "the mix of effect" msgstr "kombinimi i efektit" @@ -19168,7 +19867,7 @@ msgid "split-toning" msgstr "ndarja tonale" -#: ../src/iop/splittoning.c:101 +#: ../src/iop/splittoning.c:103 msgid "" "use two specific colors for shadows and highlights and\n" "create a linear toning effect between them up to a pivot." @@ -19176,49 +19875,49 @@ "përdorni dy ngjyra specifike për hijet dhe reflekset dhe\n" "krijoni një efekt linear tonaliteti në aksin mes tyre" -#: ../src/iop/splittoning.c:118 +#: ../src/iop/splittoning.c:120 msgid "authentic sepia" msgstr "sepie e vërtetë" -#: ../src/iop/splittoning.c:127 +#: ../src/iop/splittoning.c:129 msgid "authentic cyanotype" msgstr "cianotip i vërtetë" -#: ../src/iop/splittoning.c:136 +#: ../src/iop/splittoning.c:138 msgid "authentic platinotype" msgstr "platinotip i vërtetë" -#: ../src/iop/splittoning.c:145 +#: ../src/iop/splittoning.c:147 msgid "chocolate brown" msgstr "kafe çokollatë" -#: ../src/iop/splittoning.c:490 +#: ../src/iop/splittoning.c:486 msgid "select the saturation tone" msgstr "përzgjidhni tonin e saturimit" -#: ../src/iop/splittoning.c:494 +#: ../src/iop/splittoning.c:490 msgid "select tone color" msgstr "përzgjedh ngjyrën e tonit" -#: ../src/iop/splittoning.c:524 +#: ../src/iop/splittoning.c:520 msgctxt "section" msgid "shadows" msgstr "hijet" -#: ../src/iop/splittoning.c:530 +#: ../src/iop/splittoning.c:526 msgctxt "section" msgid "highlights" msgstr "reflekset" -#: ../src/iop/splittoning.c:539 +#: ../src/iop/splittoning.c:535 msgid "balance" msgstr "balanca" -#: ../src/iop/splittoning.c:546 +#: ../src/iop/splittoning.c:542 msgid "the balance of center of split-toning" msgstr "baraspesha e ndarjes tonale" -#: ../src/iop/splittoning.c:550 +#: ../src/iop/splittoning.c:546 msgid "" "compress the effect on highlights/shadows and\n" "preserve mid-tones" @@ -19243,17 +19942,17 @@ msgid "geometric, raw" msgstr "gjeometrik, bruto" -#: ../src/iop/spots.c:226 +#: ../src/iop/spots.c:238 msgid "spot module is limited to 64 shapes. please add a new instance!" msgstr "" "moduli i shenjave ka një limit prej 64 formash. lutemi të shtoni një " "instancë të re!" -#: ../src/iop/spots.c:872 +#: ../src/iop/spots.c:874 msgid "number of strokes:" msgstr "numri i retusheve:" -#: ../src/iop/spots.c:876 +#: ../src/iop/spots.c:878 msgid "" "click on a shape and drag on canvas.\n" "use the mouse wheel to adjust size.\n" @@ -19263,130 +19962,118 @@ "për madhësinë përdoret rrota e mausit.\n" "retushi hiqet me klikim djathtas." -#: ../src/iop/spots.c:879 +#: ../src/iop/spots.c:881 msgid "show and edit shapes" msgstr "shfaqni dhe përpunoni format" -#: ../src/iop/temperature.c:204 +#: ../src/iop/temperature.c:212 msgctxt "modulename" msgid "white balance" msgstr "balancimi i bardhësisë" -#: ../src/iop/temperature.c:211 +#: ../src/iop/temperature.c:219 msgid "scale raw RGB channels to balance white and help demosaicing" msgstr "" "shëmbëlleni kanalet RGB bruto për të lehtësuar balancimin e bardhësisë dhe " "dematricimin" -#: ../src/iop/temperature.c:1149 -msgid "white balance applied twice" -msgstr "balancimi i bardhësisë aplikohet dy herë" - -#: ../src/iop/temperature.c:1150 -msgid "" -"the color calibration module is enabled,\n" -"and performing chromatic adaptation.\n" -"set the white balance here to camera reference (D65)\n" -"or disable chromatic adaptation in color calibration." -msgstr "" -"moduli për kalibrimin e ngjyrave është aktivizuar\n" -"dhe po kryen adaptimin kromatik.\n" -"caktoni bardhësinë duke iu referuar kamerës (D65)\n" -"ose çaktivizoni adaptimin kromatik gjatë kalibrimit." - -#: ../src/iop/temperature.c:1430 +#: ../src/iop/temperature.c:1388 #, c-format msgid "`%s' color matrix not found for image" msgstr "nuk gjendet matrica e ngjyrave `%s' për imazhin" -#: ../src/iop/temperature.c:1459 +#: ../src/iop/temperature.c:1418 #, c-format msgid "failed to read camera white balance information from `%s'!" msgstr "nuk lexohet informacioni i kamerës për bardhësinë nga `%s'!" -#: ../src/iop/temperature.c:1631 +#: ../src/iop/temperature.c:1612 msgctxt "white balance" msgid "as shot" msgstr "siç është fotografuar" #. old "spot", reason: describes exactly what'll happen -#: ../src/iop/temperature.c:1634 +#: ../src/iop/temperature.c:1615 msgctxt "white balance" msgid "from image area" msgstr "nga zona e imazhit" -#: ../src/iop/temperature.c:1635 +#: ../src/iop/temperature.c:1616 msgctxt "white balance" msgid "user modified" msgstr "sipas përdoruesit" #. old "camera neutral", reason: better matches intent -#: ../src/iop/temperature.c:1637 +#: ../src/iop/temperature.c:1618 msgctxt "white balance" msgid "camera reference" msgstr "referenca e kamerës" -#: ../src/iop/temperature.c:1920 ../src/iop/temperature.c:1938 +#: ../src/iop/temperature.c:1897 ../src/iop/temperature.c:1915 msgid "green channel coefficient" msgstr "koeficienti i kanalit gjelbër" -#: ../src/iop/temperature.c:1922 +#: ../src/iop/temperature.c:1899 msgid "magenta channel coefficient" msgstr "koeficienti i kanalit kuqërremë" -#: ../src/iop/temperature.c:1924 +#: ../src/iop/temperature.c:1901 msgid "cyan channel coefficient" msgstr "koeficienti i kanalit cian" -#: ../src/iop/temperature.c:1926 +#: ../src/iop/temperature.c:1903 msgid "yellow channel coefficient" msgstr "koeficienti i kanalit verdhë" -#: ../src/iop/temperature.c:1936 +#: ../src/iop/temperature.c:1913 msgid "red channel coefficient" msgstr "koeficienti i kanalit kuqe" -#: ../src/iop/temperature.c:1940 +#: ../src/iop/temperature.c:1917 msgid "blue channel coefficient" msgstr "koeficienti i kanalit blu" -#: ../src/iop/temperature.c:1942 +#: ../src/iop/temperature.c:1918 +msgid "emerald" +msgstr "smerald" + +#: ../src/iop/temperature.c:1919 msgid "emerald channel coefficient" msgstr "koeficienti i kanalit smerald" #. relabel to settings to remove confusion between module presets #. and white balance settings -#: ../src/iop/temperature.c:2029 ../src/iop/temperature.c:2042 -#: ../src/iop/temperature.c:2049 ../src/iop/temperature.c:2055 -#: ../src/iop/temperature.c:2074 +#: ../src/iop/temperature.c:1997 ../src/iop/temperature.c:2010 +#: ../src/iop/temperature.c:2017 ../src/iop/temperature.c:2023 +#: ../src/iop/temperature.c:2042 msgid "settings" msgstr "parametrat" -#: ../src/iop/temperature.c:2029 +#: ../src/iop/temperature.c:1997 msgid "as shot" msgstr "siç është fotografuar" -#: ../src/iop/temperature.c:2032 +#: ../src/iop/temperature.c:2000 msgid "set white balance to as shot" msgstr "caktoni bardhësinë siç është fotografuar" -#: ../src/iop/temperature.c:2042 +#: ../src/iop/temperature.c:2010 msgid "from image area" msgstr "nga zona e imazhit" -#: ../src/iop/temperature.c:2049 +#: ../src/iop/temperature.c:2017 msgid "user modified" msgstr "e modifikuar nga përdoruesi" -#: ../src/iop/temperature.c:2052 +#: ../src/iop/temperature.c:2020 msgid "set white balance to user modified" msgstr "caktoni bardhësinë e modifikuar nga përdoruesi" -#: ../src/iop/temperature.c:2055 +#: ../src/iop/temperature.c:2023 msgid "camera reference" msgstr "referenca e kamerës" -#: ../src/iop/temperature.c:2060 +#: ../src/iop/temperature.c:2028 msgid "" "set white balance to camera reference point\n" "in most cases it should be D65" @@ -19394,58 +20081,62 @@ "caktoni bardhësinë duke iu referuar kamerës\n" "në shumicën e rasteve duhet D65" -#: ../src/iop/temperature.c:2075 +#: ../src/iop/temperature.c:2043 msgid "choose white balance setting" msgstr "zgjidhni parametrin e balancimit të bardhësisë" -#: ../src/iop/temperature.c:2080 +#: ../src/iop/temperature.c:2048 msgid "finetune" msgstr "rregulloj" -#: ../src/iop/temperature.c:2082 +#: ../src/iop/temperature.c:2050 msgid "fine tune camera's white balance setting" msgstr "rregulloni parametrin e kamerës për bardhësinë" -#: ../src/iop/temperature.c:2093 +#: ../src/iop/temperature.c:2058 msgctxt "section" msgid "scene illuminant temp" msgstr "temperatura e iluminantit në skenë" -#: ../src/iop/temperature.c:2094 +#: ../src/iop/temperature.c:2059 msgid "click to cycle color mode on sliders" msgstr "ndryshoni ngjyrat e shkarësve" -#: ../src/iop/temperature.c:2108 +#: ../src/iop/temperature.c:2073 msgid "color temperature (in Kelvin)" msgstr "temperatura e ngjyrave (në Kelvin)" -#: ../src/iop/temperature.c:2114 +#: ../src/iop/temperature.c:2079 msgid "tint" msgstr "ngjyruesi" -#: ../src/iop/temperature.c:2117 +#: ../src/iop/temperature.c:2082 msgid "color tint of the image, from magenta (value < 1) to green (value > 1)" msgstr "" "nuanca e ngjyrave të imazhit, nga e kuqërremja (vlera < 1) te e gjelbra " "(vlera > 1)" -#: ../src/iop/temperature.c:2123 +#: ../src/iop/temperature.c:2088 msgid "channel coefficients" msgstr "koeficientet e kanaleve" -#: ../src/iop/temperature.c:2158 +#: ../src/iop/temperature.c:2097 +msgid "various" +msgstr "të ndryshme" + +#: ../src/iop/temperature.c:2123 msgid "white balance disabled for camera" msgstr "balancimi i bardhësisë është çaktivizuar nga kamera" -#: ../src/iop/tonecurve.c:190 +#: ../src/iop/tonecurve.c:161 msgid "tone curve" msgstr "kurba e toneve" -#: ../src/iop/tonecurve.c:210 +#: ../src/iop/tonecurve.c:183 msgid "alter an image’s tones using curves" msgstr "ndryshoni tonet e imazhit nëpërmjet kurbave" -#: ../src/iop/tonecurve.c:1125 +#: ../src/iop/tonecurve.c:1147 msgid "" "if set to auto, a and b curves have no effect and are not displayed. chroma " "values (a and b) of each pixel are then adjusted based on L curve data. auto " @@ -19456,119 +20147,111 @@ "kurbës L. auto XYZ është e ngjashme, por ndryshimet në saturim aplikohen në " "hapësirën XYZ." -#: ../src/iop/tonecurve.c:1134 +#: ../src/iop/tonecurve.c:1156 msgid "tonecurve for L channel" msgstr "kurba e toneve për kanalin L" -#: ../src/iop/tonecurve.c:1135 +#: ../src/iop/tonecurve.c:1157 msgid "tonecurve for a channel" msgstr "kurba e toneve për kanalin a" -#: ../src/iop/tonecurve.c:1136 +#: ../src/iop/tonecurve.c:1158 msgid "tonecurve for b channel" msgstr "kurba e toneve për kanalin b" -#: ../src/iop/tonecurve.c:1143 ../src/iop/watermark.c:1305 -#: ../src/libs/colorpicker.c:597 +#: ../src/iop/tonecurve.c:1165 ../src/iop/watermark.c:1353 +#: ../src/libs/colorpicker.c:675 msgid "pick color" msgstr "mbledh ngjyrën" -#: ../src/iop/toneequal.c:311 +#: ../src/iop/toneequal.c:319 msgid "tone equalizer" msgstr "niveluesi i toneve" -#: ../src/iop/toneequal.c:316 +#: ../src/iop/toneequal.c:324 msgid "tone curve|tone mapping|relight|background light|shadows highlights" msgstr "" "kurba tonale|rilevimi i toneve|rindriçimi|drita e sfondit|hijet reflekset" -#: ../src/iop/toneequal.c:323 +#: ../src/iop/toneequal.c:331 msgid "relight the scene as if the lighting was done directly on the scene" msgstr "rindriçoni skenën sikur të ishit edhe një herë në terren" -#: ../src/iop/toneequal.c:326 +#: ../src/iop/toneequal.c:334 msgid "quasi-linear, RGB" msgstr "kuazilinear, RGB" -#: ../src/iop/toneequal.c:327 +#: ../src/iop/toneequal.c:335 msgid "quasi-linear, RGB, scene-referred" msgstr "kuazilinear, RGB, sipas skenës" -#: ../src/iop/toneequal.c:458 +#: ../src/iop/toneequal.c:489 msgid "simple tone curve" msgstr "kurba e thjeshtë e toneve" -#: ../src/iop/toneequal.c:472 +#: ../src/iop/toneequal.c:503 msgid "mask blending: all purposes" msgstr "maska bashkuese: e përgjithshme" -#: ../src/iop/toneequal.c:479 +#: ../src/iop/toneequal.c:510 msgid "mask blending: people with backlight" msgstr "maska bashkuese: njerëz me ndriçimin prapa" -#: ../src/iop/toneequal.c:496 +#: ../src/iop/toneequal.c:527 msgid "compress shadows/highlights (EIGF): strong" msgstr "komprimoj hijet/reflekset (EIGF): i fortë" -#: ../src/iop/toneequal.c:501 +#: ../src/iop/toneequal.c:532 msgid "compress shadows/highlights (GF): strong" msgstr "komprimoj hijet/reflekset (GF): i fortë" -#: ../src/iop/toneequal.c:510 +#: ../src/iop/toneequal.c:541 msgid "compress shadows/highlights (EIGF): medium" msgstr "komprimoj hijet/reflekset (EIGF): i mesëm" -#: ../src/iop/toneequal.c:515 +#: ../src/iop/toneequal.c:546 msgid "compress shadows/highlights (GF): medium" msgstr "komprimoj hijet/reflekset (GF): i mesëm" -#: ../src/iop/toneequal.c:524 +#: ../src/iop/toneequal.c:555 msgid "compress shadows/highlights (EIGF): soft" msgstr "komprimoj hijet/reflekset (EIGF): i butë" -#: ../src/iop/toneequal.c:529 +#: ../src/iop/toneequal.c:560 msgid "compress shadows/highlights (GF): soft" msgstr "komprimoj hijet/reflekset (GF): i butë" -#: ../src/iop/toneequal.c:537 +#: ../src/iop/toneequal.c:568 msgid "contrast tone curve: soft" msgstr "kurba tonale e kontrastit: e butë" -#: ../src/iop/toneequal.c:542 +#: ../src/iop/toneequal.c:573 msgid "contrast tone curve: medium" msgstr "kurba tonale e kontrastit: e mesme" -#: ../src/iop/toneequal.c:547 +#: ../src/iop/toneequal.c:578 msgid "contrast tone curve: strong" msgstr "kurba tonale e kontrastit: e fortë" -#: ../src/iop/toneequal.c:570 +#: ../src/iop/toneequal.c:601 msgid "relight: fill-in" msgstr "rindriçoj: mbushje" -#: ../src/iop/toneequal.c:627 -msgid "" -"tone equalizer needs to be after distortion modules in the pipeline – " -"disabled" -msgstr "" -"niveluesi i toneve vjen pas moduleve të deformimit në linjën e zhvillimit – " -"çaktivizohet" - -#: ../src/iop/toneequal.c:1091 +#: ../src/iop/toneequal.c:1120 msgid "tone equalizer failed to allocate memory, check your RAM settings" msgstr "" "problem me racionimin e memories nga niveluesi i toneve, kontrolloni " "parametrat e RAM-it" -#: ../src/iop/toneequal.c:1795 ../src/iop/toneequal.c:2180 +#: ../src/iop/toneequal.c:1825 ../src/iop/toneequal.c:2196 msgid "the interpolation is unstable, decrease the curve smoothing" msgstr "interpolimi është i paqëndrueshëm, ulni harkimin e kurbës" -#: ../src/iop/toneequal.c:1830 ../src/iop/toneequal.c:1897 +#: ../src/iop/toneequal.c:1860 ../src/iop/toneequal.c:1927 msgid "wait for the preview to finish recomputing" msgstr "prisni sa të kalkulohet parashikimi" -#: ../src/iop/toneequal.c:2037 ../src/iop/toneequal.c:2587 +#: ../src/iop/toneequal.c:2069 ../src/iop/toneequal.c:2628 msgid "" "scroll over image to change tone exposure\n" "shift+scroll for large steps; ctrl+scroll for small steps" @@ -19577,89 +20260,89 @@ "shift+rrëshqitje mausi për hapa të mëdhenj; ctrl+rrëshqitje për hapa të " "vegjël" -#: ../src/iop/toneequal.c:2185 +#: ../src/iop/toneequal.c:2201 msgid "some parameters are out-of-bounds" msgstr "disa parametra janë jashtë limiteve" -#: ../src/iop/toneequal.c:2524 +#: ../src/iop/toneequal.c:2518 #, c-format msgid "%+.1f EV" msgstr "%+.1f EV" -#: ../src/iop/toneequal.c:3236 +#: ../src/iop/toneequal.c:3283 #, c-format msgid "[%s over image] change tone exposure" msgstr "[%s mbi imazh] ndryshoj ekspozimin e tonit" -#: ../src/iop/toneequal.c:3239 +#: ../src/iop/toneequal.c:3286 #, c-format msgid "[%s over image] change tone exposure in large steps" msgstr "[%s mbi imazh] ndryshoj ekspozimin e tonit me hapa të mëdhenj" -#: ../src/iop/toneequal.c:3242 +#: ../src/iop/toneequal.c:3289 #, c-format msgid "[%s over image] change tone exposure in small steps" msgstr "[%s mbi imazh] ndryshoj ekspozimin e tonit me hapa të vegjël" #. Simple view -#: ../src/iop/toneequal.c:3323 ../src/iop/toneequal.c:3352 -#: ../src/iop/toneequal.c:3353 ../src/iop/toneequal.c:3354 -#: ../src/iop/toneequal.c:3355 ../src/iop/toneequal.c:3356 -#: ../src/iop/toneequal.c:3357 ../src/iop/toneequal.c:3358 -#: ../src/iop/toneequal.c:3359 ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3376 ../src/iop/toneequal.c:3405 +#: ../src/iop/toneequal.c:3406 ../src/iop/toneequal.c:3407 +#: ../src/iop/toneequal.c:3408 ../src/iop/toneequal.c:3409 +#: ../src/iop/toneequal.c:3410 ../src/iop/toneequal.c:3411 +#: ../src/iop/toneequal.c:3412 ../src/iop/toneequal.c:3413 msgid "simple" msgstr "thjesht" -#: ../src/iop/toneequal.c:3352 +#: ../src/iop/toneequal.c:3405 msgid "-8 EV" msgstr "-8 EV" -#: ../src/iop/toneequal.c:3353 +#: ../src/iop/toneequal.c:3406 msgid "-7 EV" msgstr "-7 EV" -#: ../src/iop/toneequal.c:3354 +#: ../src/iop/toneequal.c:3407 msgid "-6 EV" msgstr "-6 EV" -#: ../src/iop/toneequal.c:3355 +#: ../src/iop/toneequal.c:3408 msgid "-5 EV" msgstr "-5 EV" -#: ../src/iop/toneequal.c:3356 +#: ../src/iop/toneequal.c:3409 msgid "-4 EV" msgstr "-4 EV" -#: ../src/iop/toneequal.c:3357 +#: ../src/iop/toneequal.c:3410 msgid "-3 EV" msgstr "-3 EV" -#: ../src/iop/toneequal.c:3358 +#: ../src/iop/toneequal.c:3411 msgid "-2 EV" msgstr "-2 EV" -#: ../src/iop/toneequal.c:3359 +#: ../src/iop/toneequal.c:3412 msgid "-1 EV" msgstr "-1 EV" -#: ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3413 msgid "+0 EV" msgstr "+0 EV" #. Advanced view -#: ../src/iop/toneequal.c:3364 +#: ../src/iop/toneequal.c:3417 msgid "advanced" msgstr "avancuar" -#: ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3444 msgid "double-click to reset the curve" msgstr "me dopioklik kurba kthehet si më parë" -#: ../src/iop/toneequal.c:3395 +#: ../src/iop/toneequal.c:3448 msgid "curve smoothing" msgstr "harkimi i kurbës" -#: ../src/iop/toneequal.c:3398 +#: ../src/iop/toneequal.c:3451 msgid "" "positive values will produce more progressive tone transitions\n" "but the curve might become oscillatory in some settings.\n" @@ -19672,11 +20355,11 @@ "por mund të ketë kalime tonale brutale dhe dëm te kontrasti lokal." #. Masking options -#: ../src/iop/toneequal.c:3408 +#: ../src/iop/toneequal.c:3461 msgid "masking" msgstr "maskimi" -#: ../src/iop/toneequal.c:3413 +#: ../src/iop/toneequal.c:3466 msgid "" "preview the mask and chose the estimator that gives you the\n" "higher contrast between areas to dodge and areas to burn" @@ -19684,15 +20367,15 @@ "parashikoni maskën dhe zgjidhni parametrin që jep\n" "kontrastin më të lartë mes zonave të zbardhura dhe të nxira" -#: ../src/iop/toneequal.c:3416 +#: ../src/iop/toneequal.c:3469 msgid "details" msgstr "detajet" -#: ../src/iop/toneequal.c:3417 +#: ../src/iop/toneequal.c:3470 msgid "preserve details" msgstr "ruajtja e detajeve" -#: ../src/iop/toneequal.c:3420 +#: ../src/iop/toneequal.c:3473 msgid "" "'no' affects global and local contrast (safe if you only add contrast)\n" "'guided filter' only affects global contrast and tries to preserve local " @@ -19717,7 +20400,7 @@ "'EIGF mesatar' është mesatarja gjeometrike e metodave 'jo' dhe 'filtri " "drejtues me ekspozim të pavarur'" -#: ../src/iop/toneequal.c:3433 +#: ../src/iop/toneequal.c:3486 msgid "" "number of passes of guided filter to apply\n" "helps diffusing the edges of the filter at the expense of speed" @@ -19725,7 +20408,7 @@ "numri i herëve sa duhet aplikuar filtri drejtues\n" "ndihmon për difuzimin e cepave të filtrit, por në dëm të shpejtësisë" -#: ../src/iop/toneequal.c:3441 +#: ../src/iop/toneequal.c:3494 msgid "" "diameter of the blur in percent of the largest image size\n" "warning: big values of this parameter can make the darkroom\n" @@ -19735,7 +20418,7 @@ "kujdes: vlerat e larta e ngadalësojnë shumë parashikimin\n" "në dhomën e errët kur përdorni zbutje të profilizuar të zhurmës." -#: ../src/iop/toneequal.c:3449 +#: ../src/iop/toneequal.c:3502 msgid "" "precision of the feathering:\n" "higher values force the mask to follow edges more closely\n" @@ -19749,12 +20432,12 @@ "vlerat më të ulëta krijojnë gradientë më të rrafshët, por mund\n" "të rezultojnë me aureola ose pasaktësi rreth cepave" -#: ../src/iop/toneequal.c:3456 +#: ../src/iop/toneequal.c:3509 msgctxt "section" msgid "mask post-processing" msgstr "pasprocesimi i maskës" -#: ../src/iop/toneequal.c:3467 +#: ../src/iop/toneequal.c:3520 msgid "" "mask histogram span between the first and last deciles.\n" "the central line shows the average. orange bars appear at extrema if " @@ -19764,7 +20447,7 @@ "vija qendrore tregon mesataren. brezat portokalli shfaqen në ekstrem kur ka " "shkurtime." -#: ../src/iop/toneequal.c:3475 +#: ../src/iop/toneequal.c:3528 msgid "" "0 disables the quantization.\n" "higher values posterize the luminance mask to help the guiding\n" @@ -19774,7 +20457,7 @@ "vlerat e larta e posterizojnë maskën e luminancës për të krijuar\n" "zona të gjera të lëmuara kur përdorni sfumaturë të madhe" -#: ../src/iop/toneequal.c:3484 +#: ../src/iop/toneequal.c:3537 msgid "" "use this to slide the mask average exposure along channels\n" "for a better control of the exposure correction with the available nodes.\n" @@ -19784,7 +20467,7 @@ "për të kontrolluar më mirë ekspozimin e korrigjuar me nyjat e gatshme.\n" "shkopi magjik e vetërregullon ekspozimin mesatar." -#: ../src/iop/toneequal.c:3497 +#: ../src/iop/toneequal.c:3550 msgid "" "use this to counter the averaging effect of the guided filter\n" "and dilate the mask contrast around -4EV\n" @@ -19798,7 +20481,7 @@ "për të kontrolluar më mirë ekspozimin e korrigjuar.\n" "shkopi magjik e vetërregullon kontrastin." -#: ../src/iop/toneequal.c:3520 ../src/iop/toneequal.c:3523 +#: ../src/iop/toneequal.c:3573 ../src/iop/toneequal.c:3576 msgid "display exposure mask" msgstr "shfaqni maskën e ekspozimit" @@ -19814,22 +20497,22 @@ "ky modul është i vjetër. lutemi të përdorni më mirë modulin për kontrastin " "lokal ose niveluesin e toneve." -#: ../src/iop/velvia.c:79 +#: ../src/iop/velvia.c:70 msgid "velvia" msgstr "velvia" -#: ../src/iop/velvia.c:104 +#: ../src/iop/velvia.c:97 msgid "" "resaturate giving more weight to blacks, whites and low-saturation pixels" msgstr "" "risaturoni për të rritur peshën e të zezave, të bardhave dhe pikselëve me " "saturim të ulët" -#: ../src/iop/velvia.c:281 +#: ../src/iop/velvia.c:290 msgid "the strength of saturation boost" msgstr "forca e saturimit të amplifikuar" -#: ../src/iop/velvia.c:284 +#: ../src/iop/velvia.c:293 msgid "how much to spare highlights and shadows" msgstr "kurseni reflekset dhe hijet" @@ -19841,7 +20524,7 @@ "ky modul është i vjetër. lutemi të përdorni më mirë dinamikën te moduli për " "balancimin e ngjyrave RGB." -#: ../src/iop/vibrance.c:93 +#: ../src/iop/vibrance.c:95 msgid "" "saturate and reduce the lightness of the most saturated pixels\n" "to make the colors more vivid." @@ -19849,56 +20532,52 @@ "reduktoni ndriçimin e pikselëve më të saturuar\n" "për t'i gjallëruar ngjyrat." -#: ../src/iop/vibrance.c:217 +#: ../src/iop/vibrance.c:211 msgid "the amount of vibrance" msgstr "sasia e dinamikës" -#: ../src/iop/vignette.c:153 -msgid "vignetting" -msgstr "vineta" - -#: ../src/iop/vignette.c:158 +#: ../src/iop/vignette.c:119 msgid "simulate a lens fall-off close to edges" msgstr "simuloni shuarjen e objektivit afër cepave" -#: ../src/iop/vignette.c:940 +#: ../src/iop/vignette.c:1022 msgid "lomo" msgstr "lomo" -#: ../src/iop/vignette.c:974 +#: ../src/iop/vignette.c:1061 msgctxt "section" msgid "position / form" msgstr "pozicioni / forma" -#: ../src/iop/vignette.c:981 +#: ../src/iop/vignette.c:1069 msgid "dithering" msgstr "retinatura" -#: ../src/iop/vignette.c:992 +#: ../src/iop/vignette.c:1081 msgid "the radii scale of vignette for start of fall-off" msgstr "shkalla e rrezes së vinetës për fillimin e shuarjes" -#: ../src/iop/vignette.c:993 +#: ../src/iop/vignette.c:1083 msgid "the radii scale of vignette for end of fall-off" msgstr "shkalla e rrezes së vinetës për fundin e shuarjes" -#: ../src/iop/vignette.c:994 +#: ../src/iop/vignette.c:1084 msgid "strength of effect on brightness" msgstr "forca e efektit te shkëlqimi" -#: ../src/iop/vignette.c:995 +#: ../src/iop/vignette.c:1085 msgid "strength of effect on saturation" msgstr "forca e efektit te saturimi" -#: ../src/iop/vignette.c:996 +#: ../src/iop/vignette.c:1086 msgid "horizontal offset of center of the effect" msgstr "ofseti horizontal i qendrës së efektit" -#: ../src/iop/vignette.c:997 +#: ../src/iop/vignette.c:1087 msgid "vertical offset of center of the effect" msgstr "ofseti vertikal i qendrës së efektit" -#: ../src/iop/vignette.c:998 +#: ../src/iop/vignette.c:1090 msgid "" "shape factor\n" "0 produces a rectangle\n" @@ -19910,57 +20589,57 @@ "1 prodhon një rreth ose elips\n" "2 prodhon një diamant" -#: ../src/iop/vignette.c:1000 +#: ../src/iop/vignette.c:1094 msgid "enable to have the ratio automatically follow the image size" msgstr "raporti ndjek automatikisht përmasat e imazhit" -#: ../src/iop/vignette.c:1001 +#: ../src/iop/vignette.c:1095 msgid "width-to-height ratio" msgstr "raporti gjerësi-gjatësi" -#: ../src/iop/vignette.c:1002 +#: ../src/iop/vignette.c:1097 msgid "add some level of random noise to prevent banding" msgstr "parandaloni striaturën duke shtuar një sasi zhurme" -#: ../src/iop/vignette.c:1009 +#: ../src/iop/vignette.c:1105 #, c-format msgid "[%s on node] change vignette/feather size" msgstr "[%s në nyjë] ndryshoj përmasën e vinetës/sfumaturës" -#: ../src/iop/vignette.c:1011 +#: ../src/iop/vignette.c:1108 #, c-format msgid "[%s on node] change vignette/feather size keeping ratio" msgstr "" "[%s në nyjë] ndryshoj përmasën e vinetës/sfumaturës duke ruajtur raportin" -#: ../src/iop/vignette.c:1013 +#: ../src/iop/vignette.c:1111 #, c-format msgid "[%s on center] move vignette" msgstr "[%s në qendër] lëviz vinetën" -#: ../src/iop/watermark.c:371 +#: ../src/iop/watermark.c:416 msgid "watermark" msgstr "filigrani" -#: ../src/iop/watermark.c:376 +#: ../src/iop/watermark.c:421 msgid "overlay an SVG watermark like a signature on the picture" msgstr "shtroni filigranin SVG si firmë mbi foto" -#: ../src/iop/watermark.c:1258 +#: ../src/iop/watermark.c:1306 msgid "marker" msgstr "orientuesi" -#: ../src/iop/watermark.c:1261 +#: ../src/iop/watermark.c:1309 #, c-format msgid "SVG watermarks in %s/watermarks or %s/watermarks" msgstr "filigranet SVG në %s/watermarks ose %s/watermarks" #. Simple text -#: ../src/iop/watermark.c:1271 ../src/iop/watermark.c:1272 +#: ../src/iop/watermark.c:1319 ../src/iop/watermark.c:1320 msgid "text" msgstr "teksti" -#: ../src/iop/watermark.c:1273 +#: ../src/iop/watermark.c:1321 msgid "" "text string, tag:\n" "$(WATERMARK_TEXT)" @@ -19968,16 +20647,16 @@ "teksti, etiketa:\n" "$(WATERMARK_TEXT)" -#: ../src/iop/watermark.c:1275 +#: ../src/iop/watermark.c:1323 msgid "content" msgstr "përmbajtja" #. Text font -#: ../src/iop/watermark.c:1280 +#: ../src/iop/watermark.c:1328 msgid "font" msgstr "fonti" -#: ../src/iop/watermark.c:1285 +#: ../src/iop/watermark.c:1333 msgid "" "text font, tags:\n" "$(WATERMARK_FONT_FAMILY)\n" @@ -19989,7 +20668,7 @@ "$(WATERMARK_FONT_STYLE)\n" "$(WATERMARK_FONT_WEIGHT)" -#: ../src/iop/watermark.c:1300 +#: ../src/iop/watermark.c:1348 msgid "" "watermark color, tag:\n" "$(WATERMARK_COLOR)" @@ -19997,60 +20676,63 @@ "ngjyra e filigranit, etiketa:\n" "$(WATERMARK_COLOR)" -#: ../src/iop/watermark.c:1302 +#: ../src/iop/watermark.c:1350 msgid "select watermark color" msgstr "përzgjidhni ngjyrën e filigranit" -#: ../src/iop/watermark.c:1304 +#: ../src/iop/watermark.c:1352 msgid "pick color from image" msgstr "mblidhni ngjyrën nga imazhi" -#: ../src/iop/watermark.c:1317 +#: ../src/iop/watermark.c:1365 msgctxt "section" msgid "placement" msgstr "pozicionimi" -#: ../src/iop/watermark.c:1330 +#: ../src/iop/watermark.c:1378 msgid "" -"scaling is done relative to this object\n" -"• image: fits marker into whole image\n" -"• larger border: fits larger marker border to larger image border\n" -"• smaller border: fits larger marker border to smaller image border\n" -"• height: fits marker height to image height, e.g. suitable for texts\n" -"• advanced options: activates two additional drop-down menus" -msgstr "" -"shëmbëllimi kryhet në raport me objektin\n" -"- imazhi përshtat orientuesin sipas gjithë imazhit\n" -"- bordura e madhe përshtat bordurën e madhe të orientuesit me bordurën e " +"choose how to scale the watermark\n" +"• image: scale watermark relative to whole image\n" +"• larger border: scale larger watermark border relative to larger image " +"border\n" +"• smaller border: scale larger watermark border relative to smaller image " +"border\n" +"• height: scale watermark height to image height\n" +"• advanced options: choose watermark and image dimensions independently" +msgstr "" +"si do të kryhet shëmbëllimi i filigranit\n" +"- imazhi: filigrani përshtatet sipas gjithë imazhit\n" +"- bordura e madhe: bordura e madhe e filigranit përshtatet me bordurën e " "madhe të imazhit\n" -"- bordura e vogël përshtat bordurën e vogël të orientuesit me bordurën e " +"- bordura e vogël: bordura e madhe e filigranit përshtatet me bordurën e " "vogël të imazhit\n" -"- gjatësia përshtat gjatësinë e orientuesit me gjatësinë e imazhit, p.sh. " -"për tekstet\n" -"- opsionet e avancuara aktivizojnë dy menu zbritëse shtesë" - -#: ../src/iop/watermark.c:1339 -msgid "reference to which the marker should be scaled to" -msgstr "referenca për shëmbëllimin e orientuesit" - -#: ../src/iop/watermark.c:1343 -msgid "length of the marker which is used as scaling reference" -msgstr "gjatësia e orientuesit që merret si referencë për shëmbëllimin" +"- gjatësia: gjatësia e filigranit përshtatet me gjatësinë e imazhit\n" +"- opsionet e avancuara: dimensionet e filigranit dhe imazhit zgjidhen në " +"mënyrë të pavarur" + +#: ../src/iop/watermark.c:1387 +msgid "reference image dimension against which to scale the watermark" +msgstr "" +"dimensionet e imazhit që merret si referencë për shëmbëllimin e filigranit" -#: ../src/iop/watermark.c:1347 ../src/libs/print_settings.c:2675 +#: ../src/iop/watermark.c:1391 +msgid "watermark dimension to scale" +msgstr "dimensionet e filigranit për shëmbëllim" + +#: ../src/iop/watermark.c:1395 ../src/libs/print_settings.c:2675 msgid "alignment" msgstr "radhitja" #. Let's add some tooltips and hook up some signals... -#: ../src/iop/watermark.c:1368 +#: ../src/iop/watermark.c:1416 msgid "the opacity of the watermark" msgstr "tejdukshmëria e filigranit" -#: ../src/iop/watermark.c:1369 +#: ../src/iop/watermark.c:1417 msgid "the scale of the watermark" msgstr "shkalla e filigranit" -#: ../src/iop/watermark.c:1370 +#: ../src/iop/watermark.c:1418 msgid "the rotation of the watermark" msgstr "rrotullimi i filigranit" @@ -20058,7 +20740,7 @@ msgid "zone system" msgstr "sistemi zonal" -#: ../src/iop/zonesystem.c:490 +#: ../src/iop/zonesystem.c:486 msgid "" "lightness zones\n" "use mouse scrollwheel to change the number of zones\n" @@ -20100,7 +20782,7 @@ msgid "camera control" msgstr "kontrolli i kamerës" -#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2360 +#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2679 msgid "modes" msgstr "mënyrat" @@ -20206,36 +20888,49 @@ msgid "WB" msgstr "BB" -#: ../src/libs/collect.c:151 +#: ../src/libs/collect.c:164 msgid "collections" msgstr "koleksionet" -#: ../src/libs/collect.c:407 +#: ../src/libs/collect.c:424 msgid "search filmroll" msgstr "kërkoj filmin" -#: ../src/libs/collect.c:490 +#: ../src/libs/collect.c:507 #, c-format msgid "problem selecting new path for the filmroll in %s" msgstr "problem me përzgjedhjen e trajektores së re për filmin %s" -#: ../src/libs/collect.c:553 +#: ../src/libs/collect.c:579 msgid "search filmroll..." msgstr "kërkoj filmin..." -#: ../src/libs/collect.c:557 +#: ../src/libs/collect.c:584 msgid "remove..." msgstr "heq..." -#: ../src/libs/collect.c:1225 +#: ../src/libs/collect.c:1310 msgid "uncategorized" msgstr "e pakategorizuar" -#: ../src/libs/collect.c:2138 +#: ../src/libs/collect.c:2172 ../src/libs/filters/rating_range.c:120 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:151 +#: ../src/libs/filters/rating_range.c:302 +msgid "rejected" +msgstr "refuzuar" + +#: ../src/libs/collect.c:2175 ../src/libs/filters/rating_range.c:122 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:303 +msgid "not rated" +msgstr "pavlerësuar" + +#: ../src/libs/collect.c:2359 msgid "use <, <=, >, >=, <>, =, [;] as operators" msgstr "përdorni <, <=, >, >=, <>, =, [;] si operatorë" -#: ../src/libs/collect.c:2142 +#: ../src/libs/collect.c:2363 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "star rating: 0-5\n" @@ -20245,7 +20940,7 @@ "vlerësimi me yll: 0-5\n" "imazhet e refuzuara: -1" -#: ../src/libs/collect.c:2149 +#: ../src/libs/collect.c:2371 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)" @@ -20254,12 +20949,12 @@ "shkruani datat në formën: YYYY:MM:DD hh:mm:ss.sss (vetëm viti është i " "detyrueshëm)" -#: ../src/libs/collect.c:2156 +#: ../src/libs/collect.c:2378 #, no-c-format msgid "use `%' as wildcard and `,' to separate values" msgstr "përdorni `%' si metagermë dhe `,' për ndarjen e vlerave" -#: ../src/libs/collect.c:2162 +#: ../src/libs/collect.c:2385 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20272,7 +20967,7 @@ "me shift+klikim përfshihet vetëm hierarkia aktuale (pa prapashtesë)\n" "me ctrl+klikim përfshihen vetëm nënhierarkitë (prapashtesa `|%')" -#: ../src/libs/collect.c:2174 +#: ../src/libs/collect.c:2398 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20286,7 +20981,7 @@ "me shift+klikim përfshihet vetëm vendndodhja aktuale (pa prapashtesë)\n" "me ctrl+klikim përfshihen vetëm nënvendndodhjet (prapashtesa `|%')" -#: ../src/libs/collect.c:2186 +#: ../src/libs/collect.c:2411 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20299,111 +20994,103 @@ "me shift+klikim përfshihet vetëm dosja aktuale (pa prapashtesë)\n" "me ctrl+klikim përfshihen vetëm nëndosjet (prapashtesa `|%')" -#: ../src/libs/collect.c:2197 +#: ../src/libs/collect.c:2422 #, no-c-format msgid "use `%' as wildcard" msgstr "përdorni `%' si metagermë" -#: ../src/libs/collect.c:2263 ../src/libs/collect.c:2277 -#: ../src/libs/collect.c:2800 +#: ../src/libs/collect.c:2488 ../src/libs/collect.c:2502 +#: ../src/libs/collect.c:3111 msgid "clear this rule" msgstr "heq rregullën" -#: ../src/libs/collect.c:2267 +#: ../src/libs/collect.c:2492 msgid "clear this rule or add new rules" msgstr "hiqni rregullën ose shtoni rregulla të reja" -#: ../src/libs/collect.c:2806 +#: ../src/libs/collect.c:3117 msgid "narrow down search" msgstr "ngushtoj kërkimin" -#: ../src/libs/collect.c:2811 +#: ../src/libs/collect.c:3124 msgid "add more images" msgstr "shtoj imazhe të tjera" -#: ../src/libs/collect.c:2816 +#: ../src/libs/collect.c:3131 msgid "exclude images" msgstr "përjashtoj imazhet" -#: ../src/libs/collect.c:2823 +#: ../src/libs/collect.c:3140 msgid "change to: and" msgstr "ndryshoj në: dhe" -#: ../src/libs/collect.c:2828 +#: ../src/libs/collect.c:3147 msgid "change to: or" msgstr "ndryshoj në: ose" -#: ../src/libs/collect.c:2833 +#: ../src/libs/collect.c:3154 msgid "change to: except" -msgstr "ndryshoj në: përveç" +msgstr "ndryshoj në: pa" #. the different categories -#: ../src/libs/collect.c:2859 ../src/libs/filtering.c:857 -#: ../src/libs/filtering.c:924 ../src/libs/filtering.c:1558 -#: ../src/libs/filtering.c:1890 +#: ../src/libs/collect.c:3184 ../src/libs/filtering.c:883 +#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1620 +#: ../src/libs/filtering.c:1964 msgid "files" msgstr "skedarët" -#: ../src/libs/collect.c:2864 ../src/libs/export_metadata.c:312 -#: ../src/libs/filtering.c:862 ../src/libs/filtering.c:929 -#: ../src/libs/filtering.c:1566 ../src/libs/filtering.c:1894 -#: ../src/libs/image.c:464 ../src/libs/image.c:574 ../src/libs/image.c:582 -#: ../src/libs/metadata.c:676 ../src/libs/metadata_view.c:1226 +#: ../src/libs/collect.c:3189 ../src/libs/export_metadata.c:301 +#: ../src/libs/filtering.c:888 ../src/libs/filtering.c:955 +#: ../src/libs/filtering.c:1628 ../src/libs/filtering.c:1968 +#: ../src/libs/image.c:495 ../src/libs/image.c:633 ../src/libs/image.c:645 +#: ../src/libs/metadata.c:509 ../src/libs/metadata_view.c:1256 msgid "metadata" msgstr "metadatat" -#: ../src/libs/collect.c:2883 ../src/libs/filtering.c:883 -#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1892 +#: ../src/libs/collect.c:3208 ../src/libs/filtering.c:909 +#: ../src/libs/filtering.c:976 ../src/libs/filtering.c:1966 msgid "times" msgstr "gjurmët kohore" -#: ../src/libs/collect.c:2891 ../src/libs/filtering.c:891 -#: ../src/libs/filtering.c:958 ../src/libs/filtering.c:1590 +#: ../src/libs/collect.c:3216 ../src/libs/filtering.c:917 +#: ../src/libs/filtering.c:984 ../src/libs/filtering.c:1652 msgid "capture details" msgstr "detajet e shkrepjes" -#: ../src/libs/collect.c:2900 ../src/libs/filtering.c:900 -#: ../src/libs/filtering.c:967 ../src/libs/filtering.c:1602 -#: ../src/libs/filtering.c:1896 ../src/libs/tools/darktable.c:65 +#: ../src/libs/collect.c:3225 ../src/libs/filtering.c:926 +#: ../src/libs/filtering.c:993 ../src/libs/filtering.c:1664 +#: ../src/libs/filtering.c:1970 ../src/libs/tools/darktable.c:61 msgid "darktable" msgstr "darktable" -#: ../src/libs/collect.c:2913 +#: ../src/libs/collect.c:3240 msgid "collections settings" msgstr "parametrat e koleksioneve" -#: ../src/libs/collect.c:2916 ../src/libs/export_metadata.c:288 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:228 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3472 -msgid "save" -msgstr "regjistroj" - -#: ../src/libs/collect.c:2936 ../src/libs/export.c:1046 -#: ../src/libs/metadata.c:779 ../src/libs/metadata_view.c:1306 -#: ../src/libs/recentcollect.c:293 ../src/libs/tagging.c:3494 +#: ../src/libs/collect.c:3267 ../src/libs/export.c:1126 +#: ../src/libs/metadata.c:615 ../src/libs/metadata_view.c:1339 +#: ../src/libs/recentcollect.c:295 ../src/libs/tagging.c:3526 msgid "preferences..." msgstr "preferencat..." -#: ../src/libs/collect.c:3041 ../src/libs/filtering.c:1432 +#: ../src/libs/collect.c:3388 ../src/libs/filtering.c:1494 msgid "AND" msgstr "DHE" -#: ../src/libs/collect.c:3046 ../src/libs/filtering.c:1437 +#: ../src/libs/collect.c:3393 ../src/libs/filtering.c:1499 msgid "OR" msgstr "OSE" #. case DT_LIB_COLLECT_MODE_AND_NOT: -#: ../src/libs/collect.c:3051 ../src/libs/filtering.c:1442 +#: ../src/libs/collect.c:3398 ../src/libs/filtering.c:1504 msgid "BUT NOT" msgstr "POR JO" -#: ../src/libs/collect.c:3223 ../src/libs/filtering.c:2164 +#: ../src/libs/collect.c:3588 ../src/libs/filtering.c:2238 msgid "revert to a previous set of rules" msgstr "ktheni grupin e mëparshëm të rregullave" -#: ../src/libs/collect.c:3280 +#: ../src/libs/collect.c:3671 msgid "jump back to previous collection" msgstr "hidhem te koleksioni pararendës" @@ -20427,7 +21114,7 @@ msgid "color picker" msgstr "përzgjedhësi i ngjyrave" -#: ../src/libs/colorpicker.c:463 +#: ../src/libs/colorpicker.c:513 msgid "" "hover to highlight sample on canvas,\n" "click to lock sample,\n" @@ -20437,23 +21124,23 @@ "kampioni fiksohet me klikim\n" "zona kampion shtohet te ngjyrat me klikim djathtas" -#: ../src/libs/colorpicker.c:561 ../src/libs/colorpicker.c:612 +#: ../src/libs/colorpicker.c:626 ../src/libs/colorpicker.c:693 msgid "click to (un)hide large color patch" msgstr "klikoni për të (mos) fshehur arnën e madhe me ngjyra" -#: ../src/libs/colorpicker.c:575 +#: ../src/libs/colorpicker.c:649 msgid "statistic" msgstr "statistika" -#: ../src/libs/colorpicker.c:576 +#: ../src/libs/colorpicker.c:650 msgid "select which statistic to show" msgstr "zgjidhni statistikën që duhet treguar" -#: ../src/libs/colorpicker.c:585 +#: ../src/libs/colorpicker.c:660 msgid "select which color mode to use" msgstr "përzgjidhni mënyrën si duhen përdorur ngjyrat" -#: ../src/libs/colorpicker.c:594 +#: ../src/libs/colorpicker.c:671 msgid "" "turn on color picker\n" "ctrl+click or right-click to select an area" @@ -20461,21 +21148,21 @@ "aktivizoni përzgjedhësin e ngjyrave\n" "zonat përzgjidhen me ctrl+klikim ose me klikim djathtas" -#: ../src/libs/colorpicker.c:636 +#: ../src/libs/colorpicker.c:722 msgid "add sample" msgstr "shtoj kampionin" #. Adding the live samples section -#: ../src/libs/colorpicker.c:640 +#: ../src/libs/colorpicker.c:727 msgctxt "section" msgid "live samples" msgstr "kampionët direktë" -#: ../src/libs/colorpicker.c:648 +#: ../src/libs/colorpicker.c:738 msgid "display samples on image/vectorscope" msgstr "shfaq kampionët në imazh/vektorskop" -#: ../src/libs/colorpicker.c:657 +#: ../src/libs/colorpicker.c:749 msgid "restrict scope to selection" msgstr "kufizoj indikatorin te përzgjedhja" @@ -20487,10 +21174,6 @@ msgid "open sidecar file" msgstr "hap skedarin shoqërues" -#: ../src/libs/copy_history.c:149 -msgid "XMP sidecar files" -msgstr "skedarët shoqërues XMP" - #: ../src/libs/copy_history.c:166 #, c-format msgid "error loading file '%s'" @@ -20538,7 +21221,7 @@ msgid "choose which modules to paste to the target image(s)" msgstr "zgjidhni modulet që duhen ngjitur në imazhet e synuara" -#: ../src/libs/copy_history.c:382 ../src/libs/image.c:588 +#: ../src/libs/copy_history.c:382 ../src/libs/image.c:655 msgid "paste" msgstr "ngjit" @@ -20570,11 +21253,11 @@ "flakni historikun e zhvillimit\n" "nga imazhet e përzgjedhura" -#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:847 +#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:851 msgid "how to handle existing history" msgstr "si do e trajtoni historikun ekzistues" -#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:850 +#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:854 msgid "append" msgstr "bashkëlidh" @@ -20595,89 +21278,96 @@ msgstr "" "shkruani historikun e zhvillimit dhe etiketat për skedarët shoqërues XMP" -#: ../src/libs/duplicate.c:56 +#: ../src/libs/duplicate.c:60 msgid "duplicate manager" msgstr "administruesi i dublikatave" -#: ../src/libs/duplicate.c:401 +#: ../src/libs/duplicate.c:407 msgid "create a 'virgin' duplicate of the image without any development" msgstr "krijoni një dublikatë 'të virgjër' të imazhit pa e zhvilluar" -#: ../src/libs/duplicate.c:406 +#: ../src/libs/duplicate.c:412 msgid "create a duplicate of the image with same history stack" msgstr "krijoni një dublikatë të imazhit me të njëjtin historik zhvillimi" -#. Export button -#: ../src/libs/export.c:153 ../src/libs/export.c:1281 +#: ../src/libs/export.c:160 msgid "export" msgstr "eksportoj" #: ../src/libs/export.c:306 +msgid "invalid format for export selected" +msgstr "keni përzgjedhur një format eksporti të pasaktë" + +#: ../src/libs/export.c:311 +msgid "invalid storage for export selected" +msgstr "keni përzgjedhur një pajisje eksporti të pasaktë" + +#: ../src/libs/export.c:322 msgid "export to disk" msgstr "eksportoj në disk" -#: ../src/libs/export.c:485 +#: ../src/libs/export.c:516 #, c-format msgid "which is equal to %s × %s px" msgstr "që është barabar me %s × %s px" -#: ../src/libs/export.c:520 +#: ../src/libs/export.c:555 msgctxt "unit" msgid "in" msgstr "in" -#: ../src/libs/export.c:1060 +#: ../src/libs/export.c:1141 msgctxt "section" msgid "storage options" msgstr "opsionet e ruajtjes" -#: ../src/libs/export.c:1064 +#: ../src/libs/export.c:1145 msgid "target storage" msgstr "ruajtja" -#: ../src/libs/export.c:1086 +#: ../src/libs/export.c:1171 msgctxt "section" msgid "format options" msgstr "opsionet e formatit" -#: ../src/libs/export.c:1090 +#: ../src/libs/export.c:1175 msgid "file format" msgstr "formati i skedarit" -#: ../src/libs/export.c:1107 +#: ../src/libs/export.c:1193 msgctxt "section" msgid "global options" msgstr "opsionet globale" -#: ../src/libs/export.c:1110 +#: ../src/libs/export.c:1196 msgid "set size" msgstr "caktoni përmasat" -#: ../src/libs/export.c:1111 +#: ../src/libs/export.c:1197 msgid "choose a method for setting the output size" msgstr "metoda e caktimit të përmasave output" -#: ../src/libs/export.c:1114 +#: ../src/libs/export.c:1200 msgid "in pixels (for file)" msgstr "në pikselë (për skedar)" -#: ../src/libs/export.c:1115 +#: ../src/libs/export.c:1201 msgid "in cm (for print)" msgstr "në cm (për printim)" -#: ../src/libs/export.c:1116 +#: ../src/libs/export.c:1202 msgid "in inch (for print)" msgstr "në inç (për printim)" -#: ../src/libs/export.c:1117 +#: ../src/libs/export.c:1203 msgid "by scale (for file)" msgstr "sipas shkallës (për skedar)" -#: ../src/libs/export.c:1119 +#: ../src/libs/export.c:1206 msgid "print width" msgstr "gjerësia për printim" -#: ../src/libs/export.c:1120 ../src/libs/export.c:1132 +#: ../src/libs/export.c:1208 ../src/libs/export.c:1225 msgid "" "maximum output width limit.\n" "click middle mouse button to reset to 0." @@ -20685,11 +21375,11 @@ "limiti i gjerësisë maksimale output.\n" "klikimi me butonin në mes të mausit e kthen në 0." -#: ../src/libs/export.c:1123 +#: ../src/libs/export.c:1212 msgid "print height" msgstr "gjatësia për printim" -#: ../src/libs/export.c:1124 ../src/libs/export.c:1136 +#: ../src/libs/export.c:1214 ../src/libs/export.c:1231 msgid "" "maximum output height limit.\n" "click middle mouse button to reset to 0." @@ -20697,19 +21387,19 @@ "limiti i gjatësisë maksimale output.\n" "klikimi me butonin në mes të mausit e kthen në 0." -#: ../src/libs/export.c:1128 +#: ../src/libs/export.c:1220 msgid "resolution in dot per inch" msgstr "rezolucioni në dot për inç" -#: ../src/libs/export.c:1148 +#: ../src/libs/export.c:1244 msgid "@" msgstr "@" -#: ../src/libs/export.c:1161 ../src/libs/tools/global_toolbox.c:217 +#: ../src/libs/export.c:1258 ../src/libs/tools/global_toolbox.c:217 msgid "px" msgstr "px" -#: ../src/libs/export.c:1166 +#: ../src/libs/export.c:1266 msgid "" "it can be an integer, decimal number or simple fraction.\n" "zero or empty values are equal to 1.\n" @@ -20719,38 +21409,38 @@ "zero ose vlerat boshe janë barabar me 1.\n" "klikimi me butonin në mes të mausit e kthen në 1." -#: ../src/libs/export.c:1185 +#: ../src/libs/export.c:1292 msgid "allow upscaling" msgstr "zmadhimi i shëmbëllimit" -#: ../src/libs/export.c:1191 +#: ../src/libs/export.c:1301 msgid "high quality resampling" -msgstr "rishëmbëllimi me cilësi të lartë" +msgstr "rikampionimi me cilësi të lartë" -#: ../src/libs/export.c:1192 +#: ../src/libs/export.c:1302 msgid "do high quality resampling during export" -msgstr "eksportoni duke e rishëmbëllyer me cilësi të lartë" +msgstr "eksportoni me rikampionim të cilësisë së lartë" -#: ../src/libs/export.c:1198 +#: ../src/libs/export.c:1310 msgid "store masks" msgstr "depozitimi i maskave" -#: ../src/libs/export.c:1199 +#: ../src/libs/export.c:1311 msgid "store masks as layers in exported images. only works for some formats." msgstr "" "depozitoni maskat si shtresa në imazhet e eksportuara. funksionon për disa " "formate." -#: ../src/libs/export.c:1210 ../src/libs/export.c:1245 +#: ../src/libs/export.c:1322 ../src/libs/export.c:1357 #: ../src/libs/print_settings.c:2777 ../src/libs/print_settings.c:2823 msgid "image settings" msgstr "parametrat e imazhit" -#: ../src/libs/export.c:1220 ../src/libs/print_settings.c:2811 +#: ../src/libs/export.c:1332 ../src/libs/print_settings.c:2811 msgid "output ICC profiles" msgstr "profilet ICC output" -#: ../src/libs/export.c:1228 +#: ../src/libs/export.c:1340 msgid "" "• perceptual: smoothly moves out-of-gamut colors into gamut, preserving " "gradations,\n" @@ -20790,44 +21480,53 @@ "graduar\n" "ngjyrat. (e papërshtatshme për fotografi)." -#: ../src/libs/export.c:1255 ../src/libs/print_settings.c:2833 +#: ../src/libs/export.c:1367 ../src/libs/print_settings.c:2833 msgid "style" msgstr "stili" -#: ../src/libs/export.c:1258 +#: ../src/libs/export.c:1370 msgid "temporary style to use while exporting" msgstr "stili provizor që përdoret gjatë eksportimit" -#: ../src/libs/export.c:1263 ../src/libs/print_settings.c:2876 +#: ../src/libs/export.c:1377 ../src/libs/print_settings.c:2876 msgid "" "whether the style items are appended to the history or replacing the history" msgstr "në qoftë se stilet i bashkëlidhen historikut apo e zëvendësojnë atë" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "replace history" msgstr "zëvendësoj historikun" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "append history" msgstr "bashkëlidh historikun" -#: ../src/libs/export.c:1282 +#: ../src/libs/export.c:1398 +msgctxt "actionbutton" +msgid "export" +msgstr "eksportoj" + +#: ../src/libs/export.c:1400 msgid "export with current settings" msgstr "eksportoni me parametrat aktualë" -#: ../src/libs/export_metadata.c:163 +#: ../src/libs/export_metadata.c:148 msgid "select tag" msgstr "përzgjidhni etiketën" -#: ../src/libs/export_metadata.c:164 -msgid "add" -msgstr "shtoj" +#: ../src/libs/export_metadata.c:150 +msgid "_add" +msgstr "_shtoj" + +#: ../src/libs/export_metadata.c:151 ../src/libs/geotagging.c:811 +msgid "_done" +msgstr "_kryej" -#: ../src/libs/export_metadata.c:175 +#: ../src/libs/export_metadata.c:162 msgid "list filter" msgstr "filtrimi i listës" -#: ../src/libs/export_metadata.c:186 +#: ../src/libs/export_metadata.c:173 msgid "" "list of available tags. click 'add' button or double-click on tag to add the " "selected one" @@ -20835,31 +21534,31 @@ "lista me etiketat e mundshme. klikoni butonin 'shtoj' ose shtojeni etiketën " "e përzgjedhur me dopioklik" -#: ../src/libs/export_metadata.c:287 +#: ../src/libs/export_metadata.c:274 msgid "edit metadata exportation" msgstr "përpunoni eksportimin e metadatave" -#: ../src/libs/export_metadata.c:304 +#: ../src/libs/export_metadata.c:293 msgid "general settings" msgstr "parametrat e përgjithshëm" -#: ../src/libs/export_metadata.c:309 +#: ../src/libs/export_metadata.c:298 msgid "EXIF data" msgstr "të dhënat EXIF" -#: ../src/libs/export_metadata.c:310 +#: ../src/libs/export_metadata.c:299 msgid "export EXIF metadata" msgstr "eksportoj metadatat EXIF" -#: ../src/libs/export_metadata.c:313 +#: ../src/libs/export_metadata.c:302 msgid "export darktable XMP metadata (from metadata editor module)" msgstr "eksportoj metadatat XMP në darktable (nga editori i metadatave)" -#: ../src/libs/export_metadata.c:323 +#: ../src/libs/export_metadata.c:312 msgid "only embedded" msgstr "vetëm të integruarat" -#: ../src/libs/export_metadata.c:324 +#: ../src/libs/export_metadata.c:313 msgid "" "per default the interface sends some (limited) metadata beside the image to " "remote storage.\n" @@ -20875,39 +21574,39 @@ "nëse rezerva në distancë nuk i njeh metadatat XMP të darktable, mund të " "përdorni ato të llogariturat" -#: ../src/libs/export_metadata.c:330 ../src/libs/image.c:566 +#: ../src/libs/export_metadata.c:319 ../src/libs/image.c:623 msgid "geo tags" msgstr "etiketat gjeografike" -#: ../src/libs/export_metadata.c:331 +#: ../src/libs/export_metadata.c:320 msgid "export geo tags" msgstr "eksportoj etiketat gjeografike" -#: ../src/libs/export_metadata.c:334 +#: ../src/libs/export_metadata.c:323 msgid "export tags (to Xmp.dc.Subject)" msgstr "eksportoj etiketat (në Xmp.dc.Subject)" -#: ../src/libs/export_metadata.c:342 +#: ../src/libs/export_metadata.c:331 msgid "private tags" msgstr "etiketat private" -#: ../src/libs/export_metadata.c:343 +#: ../src/libs/export_metadata.c:332 msgid "export private tags" msgstr "eksportoj etiketat private" -#: ../src/libs/export_metadata.c:345 +#: ../src/libs/export_metadata.c:334 msgid "synonyms" msgstr "sinonimet" -#: ../src/libs/export_metadata.c:346 +#: ../src/libs/export_metadata.c:335 msgid "export tags synonyms" msgstr "eksportoj etiketat me sinonime" -#: ../src/libs/export_metadata.c:348 +#: ../src/libs/export_metadata.c:337 msgid "omit hierarchy" msgstr "shmang hierarkinë" -#: ../src/libs/export_metadata.c:349 +#: ../src/libs/export_metadata.c:338 msgid "" "only the last part of the hierarchical tags is included. can be useful if " "categories are not used" @@ -20915,19 +21614,19 @@ "përfshihet vetëm pjesa e fundit e etiketave hierarkike. është me dobi kur " "keni kategori të papërdorura" -#: ../src/libs/export_metadata.c:352 +#: ../src/libs/export_metadata.c:341 msgid "hierarchical tags" msgstr "etiketat hierarkike" -#: ../src/libs/export_metadata.c:353 +#: ../src/libs/export_metadata.c:342 msgid "export hierarchical tags (to Xmp.lr.Hierarchical Subject)" msgstr "eksportoj etiketat hierarkike (në Xmp.lr.Hierarchical Subject)" -#: ../src/libs/export_metadata.c:355 +#: ../src/libs/export_metadata.c:344 msgid "develop history" msgstr "historiku i zhvillimit" -#: ../src/libs/export_metadata.c:356 +#: ../src/libs/export_metadata.c:345 msgid "" "export darktable development data (recovery purpose in case of loss of " "database or XMP file)" @@ -20935,19 +21634,19 @@ "eksportoj të dhënat e darktable për programuesit (për rikuperim nëse " "dëmtohet databaza ose skedari XMP)" -#: ../src/libs/export_metadata.c:363 +#: ../src/libs/export_metadata.c:352 msgid "per metadata settings" msgstr "parametrat për metadatat" -#: ../src/libs/export_metadata.c:376 +#: ../src/libs/export_metadata.c:364 msgid "redefined tag" msgstr "etiketa e ripërcaktuar" -#: ../src/libs/export_metadata.c:382 +#: ../src/libs/export_metadata.c:370 msgid "formula" msgstr "formula" -#: ../src/libs/export_metadata.c:385 +#: ../src/libs/export_metadata.c:373 msgid "" "list of calculated metadata\n" "click on '+' button to select and add new metadata\n" @@ -20970,15 +21669,15 @@ "përpunojeni duke klikuar qelizën e formulës\n" "shkruani '$(' për të parë automatikisht listën e variablave" -#: ../src/libs/export_metadata.c:442 +#: ../src/libs/export_metadata.c:430 msgid "add an output metadata tag" msgstr "shtoni një etiketë për metadatat e outputit" -#: ../src/libs/export_metadata.c:447 +#: ../src/libs/export_metadata.c:435 msgid "delete metadata tag" msgstr "fshij etiketën e metadatës" -#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:128 +#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:130 msgid "full path" msgstr "shtegu i plotë" @@ -20998,48 +21697,48 @@ msgid "shuffle" msgstr "shkartisje" -#: ../src/libs/filtering.c:263 +#: ../src/libs/filtering.c:269 msgid "collection filters" msgstr "filtri i koleksioneve" -#: ../src/libs/filtering.c:296 +#: ../src/libs/filtering.c:302 msgid "initial setting" msgstr "parametër fillestar" -#: ../src/libs/filtering.c:315 +#: ../src/libs/filtering.c:321 msgid "imported: last 24h" msgstr "importuar: 24 orët e fundit" -#: ../src/libs/filtering.c:320 +#: ../src/libs/filtering.c:326 msgid "imported: last 30 days" msgstr "importuar: 30 ditët e fundit" -#: ../src/libs/filtering.c:326 +#: ../src/libs/filtering.c:332 msgid "taken: last 24h" msgstr "fotografuar: 24 orët e fundit" -#: ../src/libs/filtering.c:330 +#: ../src/libs/filtering.c:336 msgid "taken: last 30 days" msgstr "fotografuar: 30 ditët e fundit" -#: ../src/libs/filtering.c:702 +#: ../src/libs/filtering.c:728 msgid "click or click&drag to select one or multiple values" msgstr "një a disa vlera përzgjidhen me klikim ose klikim&tërheqje mausi" -#: ../src/libs/filtering.c:703 +#: ../src/libs/filtering.c:729 msgid "right-click opens a menu to select the available values" msgstr "menuja me vlerat e mundshme hapet me klikim djathtas" -#: ../src/libs/filtering.c:800 +#: ../src/libs/filtering.c:826 #, c-format msgid "you can't have more than %d rules" msgstr "nuk mund të keni më shumë se %d rregulla" -#: ../src/libs/filtering.c:922 ../src/libs/filtering.c:1556 +#: ../src/libs/filtering.c:948 ../src/libs/filtering.c:1618 msgid "rule property" msgstr "karakteristika e rregullës" -#: ../src/libs/filtering.c:987 +#: ../src/libs/filtering.c:1013 msgid "" "rule property\n" "this can't be changed as the rule is pinned to the toolbar" @@ -21047,12 +21746,12 @@ "karakteristika e rregullës\n" "nuk ndryshohet, pasi rregulla është fiksuar në brezin e instrumenteve" -#: ../src/libs/filtering.c:1035 +#: ../src/libs/filtering.c:1095 msgctxt "quickfilter" msgid "filter" msgstr "filtri" -#: ../src/libs/filtering.c:1062 +#: ../src/libs/filtering.c:1124 msgid "" "this rule is pinned to the top toolbar\n" "click to un-pin" @@ -21060,115 +21759,123 @@ "kjo rregullë është fiksuar në brezin e sipërm të instrumenteve\n" "klikoni për ta liruar" -#: ../src/libs/filtering.c:1063 +#: ../src/libs/filtering.c:1125 msgid "you can't disable the rule as it is pinned to the toolbar" msgstr "" "rregulla nuk çaktivizohet, sepse është fiksuar në brezin e instrumenteve" -#: ../src/libs/filtering.c:1064 +#: ../src/libs/filtering.c:1126 msgid "you can't remove the rule as it is pinned to the toolbar" msgstr "rregulla nuk hiqet, sepse është fiksuar në brezin e instrumenteve" -#: ../src/libs/filtering.c:1069 +#: ../src/libs/filtering.c:1131 msgid "click to pin this rule to the top toolbar" msgstr "fiksoni rregullën në brezin e sipërm të instrumenteve" -#: ../src/libs/filtering.c:1070 +#: ../src/libs/filtering.c:1132 msgid "remove this collect rule" msgstr "hiqni rregullën nga koleksioni" -#: ../src/libs/filtering.c:1072 +#: ../src/libs/filtering.c:1134 msgid "this rule is enabled" msgstr "kjo rregullë është aktive" -#: ../src/libs/filtering.c:1074 +#: ../src/libs/filtering.c:1136 msgid "this rule is disabled" msgstr "kjo rregullë është joaktive" -#: ../src/libs/filtering.c:1202 +#: ../src/libs/filtering.c:1264 msgid "or" msgstr "ose" -#: ../src/libs/filtering.c:1203 +#: ../src/libs/filtering.c:1265 msgid "and not" msgstr "dhe jo" -#: ../src/libs/filtering.c:1205 +#: ../src/libs/filtering.c:1267 msgid "define how this rule should interact with the previous one" msgstr "përcaktoni si ndërvepron kjo rregullë me pararendësen" -#: ../src/libs/filtering.c:1466 +#: ../src/libs/filtering.c:1528 msgid " (off)" msgstr " (fikur)" -#: ../src/libs/filtering.c:1663 +#: ../src/libs/filtering.c:1725 msgid "you can't add more rules." msgstr "nuk mund të shtoni rregulla të tjera." -#. fill the popover with all pinned rules -#: ../src/libs/filtering.c:1696 +#: ../src/libs/filtering.c:1759 msgid "shown filters" msgstr "filtrat e shfaqur" -#: ../src/libs/filtering.c:1711 +#: ../src/libs/filtering.c:1774 msgid "new filter" msgstr "filtër të ri" -#: ../src/libs/filtering.c:1884 +#. the actions part of the popover +#: ../src/libs/filtering.c:1781 +msgid "actions" +msgstr "veprimet" + +#: ../src/libs/filtering.c:1784 +msgid "reset quickfilters" +msgstr "ktheni filtrat e shpejtë" + +#: ../src/libs/filtering.c:1957 msgid "sort order" msgstr "parimi i renditjes" -#: ../src/libs/filtering.c:1886 +#: ../src/libs/filtering.c:1960 msgid "determine the sort order of shown images" msgstr "përcaktoni parimin e renditjes së imazheve që tregohen" -#: ../src/libs/filtering.c:1906 +#: ../src/libs/filtering.c:1980 msgid "sort direction" msgstr "drejtimi i renditjes" -#: ../src/libs/filtering.c:1911 +#: ../src/libs/filtering.c:1985 msgid "remove this sort order" msgstr "hiqni parimin e renditjes" -#: ../src/libs/filtering.c:1995 +#: ../src/libs/filtering.c:2069 #, c-format msgid "you can't have more than %d sort orders" msgstr "nuk mund të keni më shumë se %d parime për renditjen" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "DESC" msgstr "ZBRIT" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "ASC" msgstr "NGJIT" -#: ../src/libs/filtering.c:2160 +#: ../src/libs/filtering.c:2234 msgid "new rule" msgstr "rregullë të re" -#: ../src/libs/filtering.c:2161 +#: ../src/libs/filtering.c:2235 msgid "append new rule to collect images" msgstr "bashkëlidhni rregullën e re për koleksionimin e imazheve" -#: ../src/libs/filtering.c:2172 ../src/libs/tools/filter.c:116 +#: ../src/libs/filtering.c:2246 ../src/libs/tools/filter.c:116 msgid "sort by" msgstr "renditje nga" -#: ../src/libs/filtering.c:2180 +#: ../src/libs/filtering.c:2254 msgid "new sort" msgstr "renditje të re" -#: ../src/libs/filtering.c:2181 +#: ../src/libs/filtering.c:2255 msgid "append new sort to order images" msgstr "bashkëlidhni parimin e ri për renditjen e imazheve" -#: ../src/libs/filtering.c:2184 +#: ../src/libs/filtering.c:2258 msgid "revert to a previous set of sort orders" msgstr "ktheni grupin e mëparshëm të parimeve të renditjes" #. we change the tooltip of the reset button here, as we are sure the header is defined now -#: ../src/libs/filtering.c:2234 +#: ../src/libs/filtering.c:2308 msgid "" "reset\n" "ctrl+click to remove pinned rules too" @@ -21205,7 +21912,7 @@ #: ../src/libs/filters/grouping.c:167 ../src/libs/filters/history.c:153 #: ../src/libs/filters/local_copy.c:142 ../src/libs/filters/module_order.c:161 #: ../src/libs/filters/rating.c:199 ../src/libs/filters/rating.c:210 -#: ../src/libs/filters/rating_range.c:325 +#: ../src/libs/filters/rating_range.c:356 msgid "rules" msgstr "rregullat" @@ -21219,7 +21926,7 @@ "dhe (∩): imazhet kanë gjithë etiketat e përzgjedhura me ngjyrë\n" "ose (∪): imazhet kanë të paktën njërën nga etiketat e përzgjedhura me ngjyrë" -#: ../src/libs/filters/filename.c:365 +#: ../src/libs/filters/filename.c:370 msgid "" "enter filename to search.\n" "multiple values can be separated by ','\n" @@ -21231,11 +21938,11 @@ "\n" "skedarët ekzistues gjenden me klikim djathtas" -#: ../src/libs/filters/filename.c:376 +#: ../src/libs/filters/filename.c:381 msgid "extension" msgstr "shtojca" -#: ../src/libs/filters/filename.c:377 +#: ../src/libs/filters/filename.c:382 msgid "" "enter extension to search with starting dot\n" "multiple values can be separated by ','\n" @@ -21249,7 +21956,7 @@ "\n" "shtojcat ekzistuese gjenden me klikim djathtas" -#: ../src/libs/filters/filename.c:405 +#: ../src/libs/filters/filename.c:410 msgid "" "click to select filename\n" "ctrl+click to select multiple values" @@ -21257,7 +21964,7 @@ "klikoni për të përzgjedhur emrin e skedarit\n" "vlerat shumëfishe përzgjidhen me ctrl+klikim" -#: ../src/libs/filters/filename.c:432 +#: ../src/libs/filters/filename.c:437 msgid "" "click to select extension\n" "ctrl+click to select multiple values" @@ -21265,6 +21972,11 @@ "klikoni për të përzgjedhur shtojcën\n" "vlerat shumëfishe përzgjidhen me ctrl+klikim" +#. the button to close the popup +#: ../src/libs/filters/filename.c:457 +msgid "ok" +msgstr "ok" + #: ../src/libs/filters/grouping.c:141 ../src/libs/filters/grouping.c:169 msgid "ungrouped images" msgstr "imazhet e pagrupuara" @@ -21276,8 +21988,8 @@ #. predefined selections #: ../src/libs/filters/grouping.c:169 ../src/libs/filters/history.c:38 #: ../src/libs/filters/local_copy.c:38 ../src/libs/filters/module_order.c:155 -#: ../src/libs/filters/rating_range.c:56 ../src/libs/filters/rating_range.c:72 -#: ../src/libs/filters/rating_range.c:109 ../src/libs/filters/ratio.c:68 +#: ../src/libs/filters/rating_range.c:59 ../src/libs/filters/rating_range.c:83 +#: ../src/libs/filters/rating_range.c:131 ../src/libs/filters/ratio.c:68 #: ../src/libs/filters/ratio.c:81 msgid "all images" msgstr "të gjitha imazhet" @@ -21302,7 +22014,7 @@ msgid "filter by images rating" msgstr "filtroni imazhet sipas vlerësimit" -#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:542 +#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:596 #: ../src/libs/tools/ratings.c:56 msgid "ratings" msgstr "vlerësimet" @@ -21311,49 +22023,33 @@ msgid "unstarred only" msgstr "vetëm ato pa yll" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:60 -#: ../src/libs/filters/rating_range.c:75 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:65 +#: ../src/libs/filters/rating_range.c:89 msgid "rejected only" msgstr "vetëm të refuzuarat" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:58 -#: ../src/libs/filters/rating_range.c:73 ../src/libs/filters/rating_range.c:138 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:62 +#: ../src/libs/filters/rating_range.c:86 ../src/libs/filters/rating_range.c:158 msgid "all except rejected" -msgstr "jo të refuzuarat" +msgstr "pa të refuzuarat" -#: ../src/libs/filters/rating_range.c:61 ../src/libs/filters/rating_range.c:76 +#: ../src/libs/filters/rating_range.c:67 ../src/libs/filters/rating_range.c:91 msgid "not rated only" msgstr "vetëm ato pa yll" -#: ../src/libs/filters/rating_range.c:99 ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:131 -#: ../src/libs/filters/rating_range.c:275 -msgid "rejected" -msgstr "refuzuar" - -#: ../src/libs/filters/rating_range.c:101 -#: ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:276 -msgid "not rated" -msgstr "pavlerësuar" - -#: ../src/libs/filters/rating_range.c:117 -msgid "only" -msgstr "vetëm" - -#: ../src/libs/filters/rating_range.c:269 +#: ../src/libs/filters/rating_range.c:296 msgid "better" msgstr "më mirë" -#: ../src/libs/filters/rating_range.c:270 +#: ../src/libs/filters/rating_range.c:297 msgid "worse" msgstr "më keq" -#: ../src/libs/filters/rating_range.c:271 +#: ../src/libs/filters/rating_range.c:298 msgid "cap" msgstr "cap" -#: ../src/libs/filters/rating_range.c:286 +#: ../src/libs/filters/rating_range.c:313 msgid "rating filter" msgstr "filtri i vlerësimeve" @@ -21390,7 +22086,7 @@ msgid "apply offset and geo-location" msgstr "aplikoj ofsetin dhe gjeovendndodhjen" -#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1910 +#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1914 msgid "apply geo-location" msgstr "aplikoj gjeovendndodhjen" @@ -21402,49 +22098,49 @@ "aplikoni ofsetin dhe gjeovendndodhjen në imazhet e ngjashme\n" "operacioni i dyfishtë: veprimi kthehet duke shtypur dy herë ctrl+z" -#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1911 +#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1915 msgid "apply geo-location to matching images" msgstr "aplikoni gjeovendndodhjen në imazhet e ngjashme" -#: ../src/libs/geotagging.c:810 +#: ../src/libs/geotagging.c:809 msgid "GPX file track segments" msgstr "segmentet e skedarit gjurmues GPX" -#: ../src/libs/geotagging.c:830 ../src/libs/geotagging.c:1869 +#: ../src/libs/geotagging.c:831 ../src/libs/geotagging.c:1873 msgid "start time" msgstr "ora e fillimit" -#: ../src/libs/geotagging.c:831 +#: ../src/libs/geotagging.c:832 msgid "end time" msgstr "ora e mbarimit" -#: ../src/libs/geotagging.c:832 ../src/libs/geotagging.c:1871 +#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1875 msgid "points" msgstr "pikat" -#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1873 -#: ../src/libs/image.c:463 +#: ../src/libs/geotagging.c:834 ../src/libs/geotagging.c:1877 +#: ../src/libs/image.c:494 msgid "images" msgstr "imazhet" -#: ../src/libs/geotagging.c:926 +#: ../src/libs/geotagging.c:927 msgid "open GPX file" msgstr "hapni skedarin GPX" -#: ../src/libs/geotagging.c:927 ../src/libs/tools/lighttable.c:333 -#: ../src/libs/tools/lighttable.c:402 ../src/views/darkroom.c:2232 +#: ../src/libs/geotagging.c:928 ../src/libs/tools/lighttable.c:330 +#: ../src/libs/tools/lighttable.c:399 ../src/views/darkroom.c:2091 msgid "preview" msgstr "parashikoj" -#: ../src/libs/geotagging.c:940 +#: ../src/libs/geotagging.c:941 msgid "GPS data exchange format" msgstr "formati GPS për shkëmbimin e të dhënave" -#: ../src/libs/geotagging.c:1739 +#: ../src/libs/geotagging.c:1743 msgid "date/time" msgstr "data/ora" -#: ../src/libs/geotagging.c:1740 +#: ../src/libs/geotagging.c:1744 msgid "" "enter the new date/time (YYYY:MM:DD hh:mm:ss[.sss])\n" "key in the new numbers or scroll over the cell" @@ -21452,40 +22148,40 @@ "shkruani datën/orën e re (YYYY:MM:DD hh:mm:ss[.sss])\n" "vendosni numra të rinj ose rrëshqitni mausin mbi qelizën" -#: ../src/libs/geotagging.c:1744 +#: ../src/libs/geotagging.c:1748 msgid "original date/time" msgstr "data/ora origjinale" -#: ../src/libs/geotagging.c:1748 +#: ../src/libs/geotagging.c:1752 msgid "lock date/time offset value to apply it onto another selection" msgstr "bllokoni ofsetin e datës/orës që të aplikohet te përzgjedhja tjetër" -#: ../src/libs/geotagging.c:1752 +#: ../src/libs/geotagging.c:1756 msgid "date/time offset" msgstr "ofseti i datës/orës" -#: ../src/libs/geotagging.c:1753 +#: ../src/libs/geotagging.c:1757 msgid "offset or difference ([-]dd hh:mm:ss[.sss])" msgstr "ofseti ose diferenca ([-]dd hh:mm:ss[.sss])" #. apply -#: ../src/libs/geotagging.c:1757 +#: ../src/libs/geotagging.c:1761 msgid "apply offset" msgstr "aplikoj ofsetin" -#: ../src/libs/geotagging.c:1758 +#: ../src/libs/geotagging.c:1762 msgid "apply offset to selected images" msgstr "aplikoni ofsetin në imazhet e përzgjedhura" -#: ../src/libs/geotagging.c:1761 +#: ../src/libs/geotagging.c:1765 msgid "apply date/time" msgstr "aplikoj datën/orën" -#: ../src/libs/geotagging.c:1762 +#: ../src/libs/geotagging.c:1766 msgid "apply the same date/time to selected images" msgstr "aplikoni të njëjtën datë/orë në imazhet e përzgjedhura" -#: ../src/libs/geotagging.c:1772 +#: ../src/libs/geotagging.c:1776 msgid "" "start typing to show a list of permitted values and select your timezone.\n" "press enter to confirm, so that the asterisk * disappears" @@ -21495,25 +22191,25 @@ "shtypni enter për konfirmimin, për të fshehur yllthin *" #. gpx -#: ../src/libs/geotagging.c:1815 +#: ../src/libs/geotagging.c:1819 msgid "apply GPX track file..." msgstr "aplikoj skedarin gjurmues GPX..." -#: ../src/libs/geotagging.c:1816 +#: ../src/libs/geotagging.c:1820 msgid "parses a GPX file and updates location of selected images" msgstr "" "analizoni skedarin GPX dhe azhurnoni vendndodhjen për imazhet e përzgjedhura" -#: ../src/libs/geotagging.c:1827 +#: ../src/libs/geotagging.c:1831 msgctxt "section" msgid "GPX file" msgstr "skedari GPX" -#: ../src/libs/geotagging.c:1834 +#: ../src/libs/geotagging.c:1838 msgid "select a GPX track file..." msgstr "përzgjedh skedarin gjurmues GPX..." -#: ../src/libs/geotagging.c:1851 +#: ../src/libs/geotagging.c:1855 msgid "" "list of track segments in the GPX file, for each segment:\n" "- the start date/time in local time (LT)\n" @@ -21528,172 +22224,180 @@ " - numri i imazheve të ngjashme sipas datës/orës, ofsetit dhe zonës kohore\n" " - kaloni mausin sipër rreshtit për informacion më të detajuar mbi kohën" -#: ../src/libs/geotagging.c:1890 +#: ../src/libs/geotagging.c:1894 msgid "preview images" msgstr "parashikoj imazhet" -#: ../src/libs/geotagging.c:1895 +#: ../src/libs/geotagging.c:1899 msgid "show on map matching images" msgstr "tregoni imazhet e ngjashme në hartë" -#: ../src/libs/geotagging.c:1898 +#: ../src/libs/geotagging.c:1902 msgid "select images" msgstr "përzgjedh imazhet" -#: ../src/libs/geotagging.c:1899 +#: ../src/libs/geotagging.c:1903 msgid "select matching images" msgstr "përzgjidhni imazhet e ngjashme" -#: ../src/libs/geotagging.c:1907 +#: ../src/libs/geotagging.c:1911 msgid "number of matching images versus selected images" msgstr "numri i imazheve të ngjashme kundrejt të përzgjedhurave" -#: ../src/libs/histogram.c:133 +#: ../src/libs/histogram.c:110 msgid "monochromatic" msgstr "monokromatike" -#: ../src/libs/histogram.c:134 +#: ../src/libs/histogram.c:111 msgid "analogous" msgstr "analoge" -#: ../src/libs/histogram.c:135 +#: ../src/libs/histogram.c:112 msgid "analogous complementary" msgstr "plotësuese analoge" -#: ../src/libs/histogram.c:136 +#: ../src/libs/histogram.c:113 msgid "complementary" msgstr "plotësuese" -#: ../src/libs/histogram.c:137 +#: ../src/libs/histogram.c:114 msgid "split complementary" msgstr "plotësuese të ndara" -#: ../src/libs/histogram.c:138 +#: ../src/libs/histogram.c:115 msgid "dyad" msgstr "dyshe" -#: ../src/libs/histogram.c:139 +#: ../src/libs/histogram.c:116 msgid "triad" msgstr "treshe" -#: ../src/libs/histogram.c:140 +#: ../src/libs/histogram.c:117 msgid "tetrad" msgstr "katërshe" -#: ../src/libs/histogram.c:146 +#: ../src/libs/histogram.c:123 msgid "vectorscope" msgstr "vektorskop" -#: ../src/libs/histogram.c:147 +#: ../src/libs/histogram.c:124 msgid "waveform" msgstr "valëzor" -#: ../src/libs/histogram.c:148 +#: ../src/libs/histogram.c:125 msgid "RGB parade" msgstr "paradë RGB" -#: ../src/libs/histogram.c:149 ../src/libs/histogram.c:2309 +#: ../src/libs/histogram.c:126 ../src/libs/histogram.c:2622 msgid "histogram" msgstr "histogram" -#: ../src/libs/histogram.c:243 +#: ../src/libs/histogram.c:218 msgid "scopes" msgstr "indikatorët" -#: ../src/libs/histogram.c:1542 +#: ../src/libs/histogram.c:757 +msgid "" +"unsupported vectorscope profile selected, it will be replaced with linear " +"Rec2020" +msgstr "" +"profili i përzgjedhur i vektorskopit nuk garantohet, do të zëvendësohet me " +"Rec2020 linear" + +#: ../src/libs/histogram.c:1715 msgid "scroll to coarse-rotate" msgstr "rrotullohet shpejt me rrëshqitjen e mausit" -#: ../src/libs/histogram.c:1543 +#: ../src/libs/histogram.c:1716 msgid "ctrl+scroll to fine rotate" msgstr "rrotullohet ngadalë me ctrl+rrëshqitje mausi" -#: ../src/libs/histogram.c:1544 +#: ../src/libs/histogram.c:1717 msgid "shift+scroll to change width" msgstr "gjerësia ndryshohet me shift+rrëshqitje mausi" -#: ../src/libs/histogram.c:1545 +#: ../src/libs/histogram.c:1718 msgid "alt+scroll to cycle" msgstr "ndërrohet me ctrl+rrëshqitje mausi" -#: ../src/libs/histogram.c:1556 +#: ../src/libs/histogram.c:1732 msgid "drag to change black point" msgstr "pika e zezë ndryshohet me tërheqjen e mausit" -#: ../src/libs/histogram.c:1557 ../src/libs/histogram.c:1564 +#: ../src/libs/histogram.c:1733 ../src/libs/histogram.c:1740 msgid "double-click resets" msgstr "me dopioklik kthehet si më parë" -#: ../src/libs/histogram.c:1563 +#: ../src/libs/histogram.c:1739 msgid "drag to change exposure" msgstr "ekspozimi ndryshohet me tërheqjen e mausit" -#: ../src/libs/histogram.c:1725 ../src/libs/histogram.c:1765 +#: ../src/libs/histogram.c:1923 ../src/libs/histogram.c:1965 msgid "set scale to linear" msgstr "caktoni shëmbëllimin linear" -#: ../src/libs/histogram.c:1730 ../src/libs/histogram.c:1770 +#: ../src/libs/histogram.c:1928 ../src/libs/histogram.c:1970 msgid "set scale to logarithmic" msgstr "caktoni shëmbëllimin logaritmik" -#: ../src/libs/histogram.c:1746 +#: ../src/libs/histogram.c:1946 msgid "set scope to vertical" msgstr "caktoni indikatorin vertikalisht" -#: ../src/libs/histogram.c:1751 +#: ../src/libs/histogram.c:1951 msgid "set scope to horizontal" msgstr "caktoni indikatorin horizontalisht" -#: ../src/libs/histogram.c:1780 +#: ../src/libs/histogram.c:1980 msgid "set view to AzBz" msgstr "caktoni pamjen AzBz" -#: ../src/libs/histogram.c:1786 +#: ../src/libs/histogram.c:1986 msgid "set view to RYB" msgstr "caktoni pamjen RYB" -#: ../src/libs/histogram.c:1792 +#: ../src/libs/histogram.c:1992 msgid "set view to u*v*" msgstr "caktoni pamjen u*v*" -#: ../src/libs/histogram.c:2312 ../src/libs/histogram.c:2370 +#: ../src/libs/histogram.c:2625 ../src/libs/histogram.c:2691 msgid "cycle histogram modes" msgstr "ndryshoni mënyrat e histogramit" -#: ../src/libs/histogram.c:2316 ../src/libs/histogram.c:2371 +#: ../src/libs/histogram.c:2630 ../src/libs/histogram.c:2693 msgid "hide histogram" msgstr "fsheh histogramin" -#: ../src/libs/histogram.c:2372 ../src/libs/histogram.c:2401 +#: ../src/libs/histogram.c:2696 ../src/libs/histogram.c:2729 msgid "switch histogram view" msgstr "ndërroni metodën e histogramit" -#: ../src/libs/histogram.c:2379 +#: ../src/libs/histogram.c:2704 msgid "toggle blue channel" msgstr "përdorni kanalin blu" -#: ../src/libs/histogram.c:2381 ../src/libs/histogram.c:2389 -#: ../src/libs/histogram.c:2397 +#: ../src/libs/histogram.c:2706 ../src/libs/histogram.c:2715 +#: ../src/libs/histogram.c:2724 msgid "toggle colors" msgstr "përdorni ngjyrat" -#: ../src/libs/histogram.c:2387 +#: ../src/libs/histogram.c:2713 msgid "toggle green channel" msgstr "përdorni kanalin gjelbër" -#: ../src/libs/histogram.c:2395 +#: ../src/libs/histogram.c:2722 msgid "toggle red channel" msgstr "përdorni kanalin kuqe" -#: ../src/libs/histogram.c:2405 +#: ../src/libs/histogram.c:2734 msgid "cycle vectorscope types" msgstr "qarkulloni llojet e vektorskopit" -#: ../src/libs/histogram.c:2413 +#: ../src/libs/histogram.c:2745 msgid "color harmonies" msgstr "ngjyrat harmonike" -#: ../src/libs/histogram.c:2425 +#: ../src/libs/histogram.c:2759 msgid "cycle color harmonies" msgstr "ndërroni ngjyrat harmonike" @@ -21737,10 +22441,18 @@ msgid "mask mode" msgstr "metoda e maskimit" +#: ../src/libs/history.c:949 +msgid "blend mode" +msgstr "metoda e bashkimit" + #: ../src/libs/history.c:951 msgid "blend operation" msgstr "operacioni i bashkimit" +#: ../src/libs/history.c:953 +msgid "blend fulcrum" +msgstr "boshti i bashkimit" + #: ../src/libs/history.c:961 msgid "mask blur" msgstr "maska sfumuese" @@ -21784,198 +22496,198 @@ msgid "parametric input mask:" msgstr "maska parametrike input:" -#: ../src/libs/history.c:1323 +#: ../src/libs/history.c:1322 msgid "delete image's history?" msgstr "do e fshini historikun e imazhit?" -#: ../src/libs/history.c:1324 +#: ../src/libs/history.c:1323 msgid "do you really want to clear history of current image?" msgstr "vërtet do e pastroni historikun e imazhit aktual?" -#: ../src/libs/image.c:72 -msgid "selected image[s]" -msgstr "imazhet e përzgjedhura" +#: ../src/libs/image.c:74 +msgid "actions on selection" +msgstr "veprimet gjatë përzgjedhjes" -#: ../src/libs/image.c:284 +#: ../src/libs/image.c:302 msgid "delete (trash)" msgstr "fshij (në kosh)" -#: ../src/libs/image.c:287 +#: ../src/libs/image.c:305 msgid "physically delete from disk (using trash if possible)" msgstr "fshini fizikisht nga disku (përdor koshin, mundësisht)" -#: ../src/libs/image.c:288 +#: ../src/libs/image.c:306 msgid "physically delete from disk immediately" msgstr "fshini fizikisht nga disku, menjëherë" -#: ../src/libs/image.c:474 ../src/libs/modulegroups.c:3811 -#: ../src/libs/styles.c:876 +#: ../src/libs/image.c:506 ../src/libs/modulegroups.c:3813 +#: ../src/libs/styles.c:880 msgid "remove" msgstr "heq" -#: ../src/libs/image.c:475 +#: ../src/libs/image.c:508 msgid "remove images from the image library, without deleting" msgstr "hiqni imazhet nga libraria pa i fshirë" -#: ../src/libs/image.c:483 +#: ../src/libs/image.c:517 msgid "move..." msgstr "lëviz..." -#: ../src/libs/image.c:484 +#: ../src/libs/image.c:519 msgid "move to other folder" msgstr "lëvizni në dosjen tjetër" -#: ../src/libs/image.c:487 +#: ../src/libs/image.c:522 msgid "copy..." msgstr "kopjoj..." -#: ../src/libs/image.c:488 +#: ../src/libs/image.c:524 msgid "copy to other folder" msgstr "kopjoni në dosjen tjetër" -#: ../src/libs/image.c:491 +#: ../src/libs/image.c:528 msgid "create HDR" msgstr "krijoj HDR" -#: ../src/libs/image.c:492 +#: ../src/libs/image.c:530 msgid "create a high dynamic range image from selected shots" msgstr "" "krijoni një imazh me diapazon të lartë dinamik nga pozat e përzgjedhura" -#: ../src/libs/image.c:496 +#: ../src/libs/image.c:535 msgid "add a duplicate to the image library, including its history stack" msgstr "" "shtoni dublikatën në librarinë e imazheve, edhe historikun e zhvillimit" -#: ../src/libs/image.c:502 ../src/libs/image.c:505 +#: ../src/libs/image.c:542 ../src/libs/image.c:547 msgid "rotate selected images 90 degrees CCW" msgstr "rrotulloni 90 gradë në kahun kundërorar" -#: ../src/libs/image.c:509 ../src/libs/image.c:512 +#: ../src/libs/image.c:553 ../src/libs/image.c:558 msgid "rotate selected images 90 degrees CW" msgstr "rrotulloni 90 gradë në kahun orar" -#: ../src/libs/image.c:514 +#: ../src/libs/image.c:561 msgid "reset rotation" msgstr "kthej rrotullimin" -#: ../src/libs/image.c:515 +#: ../src/libs/image.c:563 msgid "reset rotation to EXIF data" msgstr "ktheni rrotullimin nga të dhënat EXIF" -#: ../src/libs/image.c:518 +#: ../src/libs/image.c:566 msgid "copy locally" msgstr "kopjoj në kompjuter" -#: ../src/libs/image.c:519 +#: ../src/libs/image.c:568 msgid "copy the image locally" msgstr "kopjoni imazhin në depo" -#: ../src/libs/image.c:522 +#: ../src/libs/image.c:572 msgid "resync local copy" msgstr "risinkronizoj kopjen lokale" -#: ../src/libs/image.c:523 +#: ../src/libs/image.c:574 msgid "synchronize the image's XMP and remove the local copy" msgstr "sinkronizoni xmp-në e imazhit dhe hiqni kopjen lokale" -#: ../src/libs/image.c:526 +#: ../src/libs/image.c:578 msgctxt "selected images action" msgid "group" msgstr "grupoj" -#: ../src/libs/image.c:527 +#: ../src/libs/image.c:580 msgid "add selected images to expanded group or create a new one" msgstr "shtoni imazhet e përzgjedhura në grup ose krijoni një të ri" -#: ../src/libs/image.c:531 +#: ../src/libs/image.c:584 msgid "ungroup" msgstr "zhgrupoj" -#: ../src/libs/image.c:532 +#: ../src/libs/image.c:586 msgid "remove selected images from the group" msgstr "hiqni nga grupi imazhet e përzgjedhura" -#: ../src/libs/image.c:544 +#: ../src/libs/image.c:598 msgid "select ratings metadata" msgstr "përzgjidhni metadatat për vlerësimet" -#: ../src/libs/image.c:550 +#: ../src/libs/image.c:605 msgid "colors" msgstr "ngjyrat" -#: ../src/libs/image.c:552 +#: ../src/libs/image.c:607 msgid "select colors metadata" msgstr "përzgjidhni metadatat për ngjyrat" -#: ../src/libs/image.c:560 +#: ../src/libs/image.c:616 msgid "select tags metadata" msgstr "përzgjidhni metadatat për etiketat" -#: ../src/libs/image.c:568 +#: ../src/libs/image.c:625 msgid "select geo tags metadata" msgstr "përzgjidhni metadatat për etiketat gjeografike" -#: ../src/libs/image.c:576 +#: ../src/libs/image.c:636 msgid "select darktable metadata (from metadata editor module)" msgstr "përzgjidhni metadatat në darktable (nga editori i metadatave)" -#: ../src/libs/image.c:584 +#: ../src/libs/image.c:649 msgid "set the selected image as source of metadata" msgstr "caktoj imazhin e përzgjedhur si burim të metadatave" -#: ../src/libs/image.c:589 +#: ../src/libs/image.c:656 msgid "paste selected metadata on selected images" msgstr "ngjitni metadatat e përzgjedhura në imazhet e përzgjedhura" -#: ../src/libs/image.c:593 +#: ../src/libs/image.c:661 msgid "clear selected metadata on selected images" msgstr "pastroj metadatat e imazheve të përzgjedhura" -#: ../src/libs/image.c:598 +#: ../src/libs/image.c:667 msgid "how to handle existing metadata" msgstr "mënyra si do i trajtoni metadatat ekzistuese" -#: ../src/libs/image.c:601 +#: ../src/libs/image.c:670 msgid "merge" msgstr "shkrij" -#: ../src/libs/image.c:605 +#: ../src/libs/image.c:675 msgid "update image information to match changes to file" msgstr "azhurnoni informacionin për imazhin sipas ndryshimeve në skedar" -#: ../src/libs/image.c:609 +#: ../src/libs/image.c:680 msgid "set selection as monochrome images and activate monochrome workflow" msgstr "" "caktoni imazhet e përzgjedhura si monokromatike dhe aktivizoni procesin " "përkatës të punës" -#: ../src/libs/image.c:613 +#: ../src/libs/image.c:684 msgid "set selection as color images" msgstr "caktoni imazhet e përzgjedhura si me ngjyra" -#: ../src/libs/image.c:625 +#: ../src/libs/image.c:696 msgid "duplicate virgin" msgstr "dubloj imazhin e virgjër" -#: ../src/libs/import.c:263 +#: ../src/libs/import.c:264 #, c-format msgid "device \"%s\" connected on port \"%s\"." msgstr "aparati \"%s\" është lidhur në portin \"%s\"." -#: ../src/libs/import.c:273 ../src/libs/import.c:334 ../src/libs/import.c:1692 +#: ../src/libs/import.c:274 ../src/libs/import.c:335 ../src/libs/import.c:1701 msgid "copy & import from camera" msgstr "kopjoj dhe importoj nga kamera" -#: ../src/libs/import.c:284 ../src/libs/import.c:336 +#: ../src/libs/import.c:285 ../src/libs/import.c:337 msgid "tethered shoot" msgstr "e telefotografuar" -#: ../src/libs/import.c:291 ../src/libs/import.c:337 +#: ../src/libs/import.c:292 ../src/libs/import.c:338 msgid "unmount camera" -msgstr "çmontoni kamerën" +msgstr "çmontoj kamerën" -#: ../src/libs/import.c:312 +#: ../src/libs/import.c:313 msgid "" "camera is locked by another application\n" "make sure it is no longer mounted\n" @@ -21985,38 +22697,38 @@ "sigurohuni që nuk është më e montuar\n" "ose mbylleni aplikacionin që e ka bllokuar" -#: ../src/libs/import.c:315 +#: ../src/libs/import.c:316 msgid "tethering and importing is disabled for this camera" msgstr "telefotografimi dhe importimi është çaktivizuar për këtë kamerë" -#: ../src/libs/import.c:317 ../src/libs/import.c:335 +#: ../src/libs/import.c:318 ../src/libs/import.c:336 msgid "mount camera" -msgstr "montoni kamerën" +msgstr "montoj kamerën" -#: ../src/libs/import.c:747 +#: ../src/libs/import.c:754 #, c-format msgid "%d image out of %d selected" msgid_plural "%d images out of %d selected" msgstr[0] "keni përzgjedhur %d imazh nga %d" msgstr[1] "keni përzgjedhur %d nga %d imazhe" -#: ../src/libs/import.c:1039 +#: ../src/libs/import.c:1046 msgid "you can't delete the selected place" msgstr "nuk fshihet vendi i përzgjedhur" -#: ../src/libs/import.c:1153 +#: ../src/libs/import.c:1160 msgid "choose the root of the folder tree below" msgstr "zgjidhni dosjen bazë në pemën poshtë" -#: ../src/libs/import.c:1156 +#: ../src/libs/import.c:1163 msgid "places" msgstr "vendet" -#: ../src/libs/import.c:1162 +#: ../src/libs/import.c:1169 msgid "restore all default places you have removed by right-click" msgstr "vendet standarde që keni fshirë kthehen me klikim djathtas" -#: ../src/libs/import.c:1167 +#: ../src/libs/import.c:1174 msgid "" "add a custom place\n" "\n" @@ -22026,80 +22738,109 @@ "\n" "vendi hiqet me klikim djathtas" -#: ../src/libs/import.c:1174 +#: ../src/libs/import.c:1181 msgid "you can add custom places using the plus icon" msgstr "mund të shtoni vendet që doni me ikonën +" -#: ../src/libs/import.c:1199 +#: ../src/libs/import.c:1206 msgid "select a folder to see the content" msgstr "përzgjidhni dosjen për të parë materialet" -#: ../src/libs/import.c:1202 +#: ../src/libs/import.c:1209 msgid "folders" msgstr "dosjet" -#: ../src/libs/import.c:1272 +#: ../src/libs/import.c:1279 msgid "home" msgstr "shtëpia" -#: ../src/libs/import.c:1284 +#: ../src/libs/import.c:1291 msgid "pictures" msgstr "fotot" -#: ../src/libs/import.c:1548 +#: ../src/libs/import.c:1557 msgid "mark already imported pictures" msgstr "shenjoj fotot e importuara paraprakisht" -#: ../src/libs/import.c:1562 +#: ../src/libs/import.c:1571 msgid "modified" msgstr "e modifikuar" -#: ../src/libs/import.c:1567 +#: ../src/libs/import.c:1576 msgid "file 'modified date/time', may be different from 'Exif date/time'" msgstr "" "'data/ora e modifikuar' e skedarit mund të ndryshojë nga 'data/ora Exif'" -#: ../src/libs/import.c:1579 +#: ../src/libs/import.c:1588 msgid "show/hide thumbnails" msgstr "tregoj/fsheh miniaturat" -#: ../src/libs/import.c:1649 +#: ../src/libs/import.c:1658 msgid "naming rules" msgstr "rregullat e emërtimit" -#: ../src/libs/import.c:1690 +#: ../src/libs/import.c:1699 msgid "add to library" msgstr "shtoj në librari" -#: ../src/libs/import.c:1691 +#: ../src/libs/import.c:1700 msgid "copy & import" msgstr "kopjoj dhe importoj" -#: ../src/libs/import.c:1730 +#: ../src/libs/import.c:1740 msgid "select new" msgstr "përzgjedhje të re" -#: ../src/libs/import.c:1773 +#: ../src/libs/import.c:1783 msgid "please wait while prefetching the list of images from camera..." msgstr "lutemi të prisni marrjen e listës së imazheve nga kamera..." -#: ../src/libs/import.c:1907 +#: ../src/libs/import.c:1922 msgid "invalid override date/time format" msgstr "tejkalim i pasaktë i formatit datë/orë" -#: ../src/libs/import.c:2022 +#: ../src/libs/import.c:1986 +msgid "import base directory" +msgstr "importoj direktorinë bazë" + +#: ../src/libs/import.c:1987 +msgid "" +"before copying images to the darktable base directory make sure it is " +"defined as you prefer.\n" +"further information can be found in the darktable manual.\n" +"\n" +"inspect darktable preferences -> import.\n" +"check and possibly correct the 'base directory naming pattern'" +msgstr "" +"para se të kopjoni imazhet në direktorinë bazë të darktable, ajo duhet " +"përcaktuar si e preferoni.\n" +"gjeni më shumë informacion në manualin e darktable.\n" +"\n" +"inspektoni preferencat e darktable -> importoj.\n" +"kontrolloni dhe mundësisht korrigjoni 'modeli i emërtimit të direktorisë " +"bazë'" + +#: ../src/libs/import.c:1991 +msgid "_come back & check" +msgstr "_kthehem dhe kontrolloj" + +#: ../src/libs/import.c:1991 +msgid "_understood & done" +msgstr "_kuptoj dhe kryej" + +#: ../src/libs/import.c:2057 msgid "add to library..." msgstr "shtoj në librari..." -#: ../src/libs/import.c:2023 +#: ../src/libs/import.c:2058 msgid "add existing images to the library" msgstr "shtoni imazhet ekzistuese në librari" -#: ../src/libs/import.c:2029 +#: ../src/libs/import.c:2064 msgid "copy & import..." msgstr "kopjoj dhe importoj..." -#: ../src/libs/import.c:2030 +#: ../src/libs/import.c:2065 msgid "" "copy and optionally rename images before adding them to the library\n" "patterns can be defined to rename the images and specify the destination " @@ -22109,15 +22850,15 @@ "riemërtimi dhe dosjet mund të përcaktohen sipas disa modeleve" #. collapsible section -#: ../src/libs/import.c:2053 +#: ../src/libs/import.c:2088 msgid "parameters" msgstr "parametrat" -#: ../src/libs/ioporder.c:204 +#: ../src/libs/ioporder.c:202 msgid "v3.0 for RAW input (default)" msgstr "v3.0 për input BRUTO (standard)" -#: ../src/libs/ioporder.c:210 +#: ../src/libs/ioporder.c:208 msgid "v3.0 for JPEG/non-RAW input" msgstr "v3.0 për input JPEG/joBRUTO" @@ -22133,11 +22874,11 @@ msgid "nothing to save" msgstr "nuk keni asgjë për të regjistruar" -#: ../src/libs/lib.c:1105 +#: ../src/libs/lib.c:1106 msgid "show module" msgstr "tregoni modulin" -#: ../src/libs/lib.c:1430 +#: ../src/libs/lib.c:1431 msgid "utility module" msgstr "modul utilitar" @@ -22371,167 +23112,109 @@ msgid "map settings" msgstr "parametrat e hartës" -#: ../src/libs/map_settings.c:107 +#: ../src/libs/map_settings.c:89 msgid "map source" msgstr "burimi i hartës" -#: ../src/libs/map_settings.c:112 +#: ../src/libs/map_settings.c:90 msgid "select the source of the map. some entries might not work" msgstr "përzgjidhni burimin e hartës. disa elemente mund të mos punojnë" -#: ../src/libs/masks.c:107 +#: ../src/libs/masks.c:108 msgid "feather" msgstr "sfumatura" -#: ../src/libs/masks.c:114 -msgid "hardness (relative)" -msgstr "fortësia (relative)" - -#: ../src/libs/masks.c:115 -msgid "hardness (absolute)" -msgstr "fortësia (absolute)" - -#: ../src/libs/masks.c:116 -msgid "opacity (relative)" -msgstr "tejdukshmëria (relative)" - -#: ../src/libs/masks.c:117 -msgid "opacity (absolute)" -msgstr "tejdukshmëria (absolute)" - -#: ../src/libs/masks.c:118 -msgid "brush size (relative)" -msgstr "madhësia e penelit (relative)" - -#: ../src/libs/masks.c:121 -msgid "low" -msgstr "e ulët" - -#: ../src/libs/masks.c:122 -msgid "medium" -msgstr "mesatare" - -#: ../src/libs/masks.c:123 -msgid "high" -msgstr "e lartë" - -#: ../src/libs/masks.c:381 +#: ../src/libs/masks.c:357 #, c-format msgid "group #%d" msgstr "grupi #%d" -#: ../src/libs/masks.c:1081 +#: ../src/libs/masks.c:1097 msgid "duplicate this shape" msgstr "dubloj formën" -#: ../src/libs/masks.c:1085 +#: ../src/libs/masks.c:1101 msgid "delete this shape" msgstr "fshij formën" -#: ../src/libs/masks.c:1091 +#: ../src/libs/masks.c:1107 msgid "delete group" msgstr "fshini grupin" -#: ../src/libs/masks.c:1098 +#: ../src/libs/masks.c:1114 msgid "remove from group" msgstr "heq nga grupi" -#: ../src/libs/masks.c:1106 +#: ../src/libs/masks.c:1122 msgid "group the forms" msgstr "grupoj format" -#: ../src/libs/masks.c:1114 +#: ../src/libs/masks.c:1130 msgid "use inverted shape" msgstr "përdor formën e përmbysur" -#: ../src/libs/masks.c:1121 +#: ../src/libs/masks.c:1134 msgid "mode: union" msgstr "mënyra: bashkoj" -#: ../src/libs/masks.c:1127 +#: ../src/libs/masks.c:1136 msgid "mode: intersection" msgstr "mënyra: kryqëzoj" -#: ../src/libs/masks.c:1133 +#: ../src/libs/masks.c:1138 msgid "mode: difference" msgstr "mënyra: diferencoj" -#: ../src/libs/masks.c:1139 +#: ../src/libs/masks.c:1140 msgid "mode: sum" msgstr "mënyra: shumoj" -#: ../src/libs/masks.c:1145 +#: ../src/libs/masks.c:1142 msgid "mode: exclusion" msgstr "mënyra: përjashtoj" -#: ../src/libs/masks.c:1164 +#: ../src/libs/masks.c:1158 msgid "cleanup unused shapes" msgstr "heq format e papërdorura" -#: ../src/libs/masks.c:1811 +#: ../src/libs/masks.c:1807 msgid "created shapes" msgstr "format e krijuara" -#: ../src/libs/masks.c:1904 ../src/libs/masks.c:1919 ../src/libs/masks.c:1939 -#: ../src/libs/masks.c:1955 +#: ../src/libs/masks.c:1900 ../src/libs/masks.c:1915 ../src/libs/masks.c:1929 +#: ../src/libs/masks.c:1933 msgid "properties" msgstr "karakteristikat" -#: ../src/libs/masks.c:1907 +#: ../src/libs/masks.c:1903 msgid "no shapes selected" msgstr "nuk keni përzgjedhur format" -#: ../src/libs/masks.c:1940 +#: ../src/libs/masks.c:1929 msgid "pressure" msgstr "shtypja" -#: ../src/libs/masks.c:1941 -msgid "" -"pen pressure control for brush masks\n" -"'off': pressure reading ignored,\n" -"'hardness'/'opacity'/'brush size': pressure reading controls specified " -"attribute,\n" -"'absolute'/'relative': pressure reading is taken directly as attribute value " -"or multiplied with pre-defined setting." -msgstr "" -"kontrolli i forcës shtypëse të penelit për maskat\n" -"'fikur': forca shtypëse nuk merret parasysh,\n" -"'fortësia'/'tejdukshmëria'/'madhësia e penelit': forca shtypëse kontrollon " -"atributin përkatës,\n" -"'absolute'/'relative': forca shtypëse lexohet drejtpërdrejt si atribut ose " -"shumëzohet me parametrin e paracaktuar." - -#: ../src/libs/masks.c:1956 +#: ../src/libs/masks.c:1933 msgid "smoothing" msgstr "zbutja" -#: ../src/libs/masks.c:1957 -msgid "" -"smoothing of brush strokes\n" -"stronger smoothing leads to fewer nodes and easier editing but with lower " -"control of accuracy." -msgstr "" -"caktoni nivelin e butësisë së penelatave\n" -"zbutja e madhe lë më pak nyja dhe e bën më të lehtë përpunimin, por edhe ul " -"saktësinë." - -#: ../src/libs/metadata.c:64 +#: ../src/libs/metadata.c:60 msgid "metadata editor" msgstr "redaktori i metadatave" -#: ../src/libs/metadata.c:206 ../src/libs/metadata.c:496 -msgid "<leave unchanged>" -msgstr "<lër njësoj>" - -#: ../src/libs/metadata.c:630 ../src/libs/metadata_view.c:1192 +#: ../src/libs/metadata.c:459 ../src/libs/metadata_view.c:1219 msgid "metadata settings" msgstr "parametrat e metadatës" -#: ../src/libs/metadata.c:683 ../src/libs/metadata_view.c:1237 +#: ../src/libs/metadata.c:461 ../src/libs/metadata_view.c:1221 +msgid "_default" +msgstr "_standard" + +#: ../src/libs/metadata.c:516 ../src/libs/metadata_view.c:1267 msgid "visible" msgstr "duket" -#: ../src/libs/metadata.c:688 +#: ../src/libs/metadata.c:524 msgid "" "tick if the corresponding metadata is of interest for you\n" "it will be visible from metadata editor, collection and import module\n" @@ -22542,19 +23225,19 @@ "gjatë importit\n" "po ashtu informacioni do të eksportohet" -#: ../src/libs/metadata.c:693 ../src/libs/tagging.c:1683 -#: ../src/libs/tagging.c:1827 +#: ../src/libs/metadata.c:529 ../src/libs/tagging.c:1705 +#: ../src/libs/tagging.c:1854 msgid "private" msgstr "private" -#: ../src/libs/metadata.c:698 +#: ../src/libs/metadata.c:534 msgid "" "tick if you want to keep this information private (not exported with images)" msgstr "" "zgjidheni nëse doni që informacioni të mbetet privat (të mos eksportohet me " "imazhet)" -#: ../src/libs/metadata.c:857 +#: ../src/libs/metadata.c:691 msgid "" "metadata text\n" "ctrl+enter inserts a new line (caution, may not be compatible with standard " @@ -22571,169 +23254,181 @@ "atëherë ato mund të zgjidhen duke i klikuar me të djathtën.\n" "shtypni esc për të mbyllur dritaren modale" -#: ../src/libs/metadata.c:902 +#: ../src/libs/metadata.c:736 msgid "write metadata for selected images" msgstr "shkruani metadatat për imazhet e përzgjedhura" +#: ../src/libs/metadata.c:737 +msgid "cancel" +msgstr "anuloj" + +#: ../src/libs/metadata.c:738 +msgid "ignore changed metadata" +msgstr "shpërfill metadatat e ndryshuara" + #. <title>\0<description>\0<rights>\0<creator>\0<publisher> -#: ../src/libs/metadata.c:958 +#: ../src/libs/metadata.c:793 msgid "CC BY" msgstr "CC BY" -#: ../src/libs/metadata.c:959 +#: ../src/libs/metadata.c:794 msgid "Creative Commons Attribution (CC BY)" msgstr "Creative Commons Attribution (CC BY)" -#: ../src/libs/metadata.c:960 +#: ../src/libs/metadata.c:795 msgid "CC BY-SA" msgstr "CC BY-SA" -#: ../src/libs/metadata.c:961 +#: ../src/libs/metadata.c:796 msgid "Creative Commons Attribution-ShareAlike (CC BY-SA)" msgstr "Creative Commons Attribution-ShareAlike (CC BY-SA)" -#: ../src/libs/metadata.c:962 +#: ../src/libs/metadata.c:797 msgid "CC BY-ND" msgstr "CC BY-ND" -#: ../src/libs/metadata.c:963 +#: ../src/libs/metadata.c:798 msgid "Creative Commons Attribution-NoDerivs (CC BY-ND)" msgstr "Creative Commons Attribution-NoDerivs (CC BY-ND)" -#: ../src/libs/metadata.c:964 +#: ../src/libs/metadata.c:799 msgid "CC BY-NC" msgstr "CC BY-NC" -#: ../src/libs/metadata.c:965 +#: ../src/libs/metadata.c:800 msgid "Creative Commons Attribution-NonCommercial (CC BY-NC)" msgstr "Creative Commons Attribution-NonCommercial (CC BY-NC)" -#: ../src/libs/metadata.c:966 +#: ../src/libs/metadata.c:801 msgid "CC BY-NC-SA" msgstr "CC BY-NC-SA" -#: ../src/libs/metadata.c:967 +#: ../src/libs/metadata.c:802 msgid "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" msgstr "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" -#: ../src/libs/metadata.c:968 +#: ../src/libs/metadata.c:803 msgid "CC BY-NC-ND" msgstr "CC BY-NC-ND" -#: ../src/libs/metadata.c:969 +#: ../src/libs/metadata.c:804 msgid "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" msgstr "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" -#: ../src/libs/metadata.c:970 ../src/libs/metadata.c:971 +#: ../src/libs/metadata.c:805 ../src/libs/metadata.c:806 msgid "all rights reserved" msgstr "gjithë të drejtat e rezervuara" #. internal -#: ../src/libs/metadata_view.c:123 +#: ../src/libs/metadata_view.c:125 msgid "filmroll" msgstr "filmi" -#: ../src/libs/metadata_view.c:125 +#: ../src/libs/metadata_view.c:127 msgid "group id" msgstr "id grupi" -#: ../src/libs/metadata_view.c:127 +#: ../src/libs/metadata_view.c:129 msgid "version" msgstr "varianti" -#: ../src/libs/metadata_view.c:130 +#: ../src/libs/metadata_view.c:132 msgid "import timestamp" msgstr "gjurma kohore e importimit" -#: ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:133 msgid "change timestamp" msgstr "gjurma kohore e ndryshimit" -#: ../src/libs/metadata_view.c:132 +#: ../src/libs/metadata_view.c:134 msgid "export timestamp" msgstr "gjurma kohore e eksportimit" -#: ../src/libs/metadata_view.c:133 +#: ../src/libs/metadata_view.c:135 msgid "print timestamp" msgstr "gjurma kohore e printimit" -#: ../src/libs/metadata_view.c:134 +#: ../src/libs/metadata_view.c:136 msgid "flags" msgstr "piketat" -#: ../src/libs/metadata_view.c:144 +#: ../src/libs/metadata_view.c:146 +msgid "35mm equiv focal length" +msgstr "largësia fokale sa 35 mm" + +#: ../src/libs/metadata_view.c:148 msgid "focus distance" msgstr "distanca-f" -#: ../src/libs/metadata_view.c:146 +#: ../src/libs/metadata_view.c:150 msgid "datetime" msgstr "data/ora" -#: ../src/libs/metadata_view.c:149 +#: ../src/libs/metadata_view.c:153 msgid "export width" msgstr "gjerësia për eksport" -#: ../src/libs/metadata_view.c:150 +#: ../src/libs/metadata_view.c:154 msgid "export height" msgstr "gjatësia për eksport" -#: ../src/libs/metadata_view.c:158 +#: ../src/libs/metadata_view.c:162 msgid "longitude" msgstr "longituda" -#: ../src/libs/metadata_view.c:159 +#: ../src/libs/metadata_view.c:163 msgid "elevation" msgstr "këndi i vendit" -#: ../src/libs/metadata_view.c:163 +#: ../src/libs/metadata_view.c:167 msgid "categories" msgstr "kategoritë" -#: ../src/libs/metadata_view.c:170 +#: ../src/libs/metadata_view.c:174 msgid "image information" msgstr "informacioni për imazhin" -#: ../src/libs/metadata_view.c:330 +#: ../src/libs/metadata_view.c:334 msgid "unused/deprecated" msgstr "e papërdorur/vjetruar" -#: ../src/libs/metadata_view.c:331 +#: ../src/libs/metadata_view.c:335 msgid "LDR" msgstr "LDR" -#: ../src/libs/metadata_view.c:334 +#: ../src/libs/metadata_view.c:338 msgid "marked for deletion" msgstr "e shenjuar për fshirje" -#: ../src/libs/metadata_view.c:335 +#: ../src/libs/metadata_view.c:339 msgid "auto-applying presets applied" msgstr "vetaplikoi vlerat e paracaktuara" -#: ../src/libs/metadata_view.c:337 +#: ../src/libs/metadata_view.c:341 msgid "has .txt" msgstr "ka .txt" -#: ../src/libs/metadata_view.c:338 +#: ../src/libs/metadata_view.c:342 msgid "has .wav" msgstr "ka .wav" -#: ../src/libs/metadata_view.c:356 +#: ../src/libs/metadata_view.c:360 #, c-format msgid "image has %d star" msgid_plural "image has %d stars" msgstr[0] "imazhi ka %d yll" msgstr[1] "imazhi ka %d yje" -#: ../src/libs/metadata_view.c:432 +#: ../src/libs/metadata_view.c:436 #, c-format msgid "loader: %s" msgstr "ngarkuesi: %s" -#: ../src/libs/metadata_view.c:623 +#: ../src/libs/metadata_view.c:626 msgid "<various values>" msgstr "<vlera të ndryshme>" -#: ../src/libs/metadata_view.c:636 +#: ../src/libs/metadata_view.c:639 #, c-format msgid "" "double-click to jump to film roll\n" @@ -22742,32 +23437,28 @@ "me dopioklik kaloni te filmi\n" "%s" -#: ../src/libs/metadata_view.c:728 +#: ../src/libs/metadata_view.c:731 #, c-format msgid "%+.2f EV" msgstr "%+.2f EV" -#: ../src/libs/metadata_view.c:735 -#, c-format -msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" -msgstr "%.1f mm (%.1f mm ekuiv me FF, prerja %.1f)" - -#: ../src/libs/metadata_view.c:740 +#: ../src/libs/metadata_view.c:737 ../src/libs/metadata_view.c:749 +#: ../src/libs/metadata_view.c:754 #, c-format msgid "%.1f mm" msgstr "%.1f mm" -#: ../src/libs/metadata_view.c:751 +#: ../src/libs/metadata_view.c:778 #, c-format msgid "infinity" msgstr "infinit" -#: ../src/libs/metadata_view.c:755 +#: ../src/libs/metadata_view.c:782 #, c-format msgid "%.2f m" msgstr "%.2f m" -#: ../src/libs/metadata_view.c:1232 +#: ../src/libs/metadata_view.c:1262 msgid "" "drag and drop one row at a time until you get the desired order\n" "untick to hide metadata which are not of interest for you\n" @@ -22777,7 +23468,7 @@ "mos e zgjidhni po të keni metadata që nuk ju interesojnë\n" "nëse doni parametra të tjerë, përdorni vlerat e paracaktuara" -#: ../src/libs/metadata_view.c:1388 +#: ../src/libs/metadata_view.c:1423 msgid "jump to film roll" msgstr "kaloj te filmi" @@ -22802,7 +23493,7 @@ msgid "recent collections settings" msgstr "parametrat e koleksioneve të fundit" -#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1769 +#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1753 msgid "workflow: scene-referred" msgstr "procesi i punës: sipas skenës" @@ -22820,12 +23511,12 @@ #. FIXME don't check here if on/off is enabled, because it depends on image (reload_defaults) #. respond later to image changed signal -#: ../src/libs/modulegroups.c:306 ../src/libs/modulegroups.c:318 -#: ../src/libs/modulegroups.c:2427 ../src/libs/modulegroups.c:2429 +#: ../src/libs/modulegroups.c:307 ../src/libs/modulegroups.c:319 +#: ../src/libs/modulegroups.c:2411 ../src/libs/modulegroups.c:2413 msgid "on-off" msgstr "fik-ndez" -#: ../src/libs/modulegroups.c:498 ../src/libs/modulegroups.c:501 +#: ../src/libs/modulegroups.c:501 ../src/libs/modulegroups.c:504 msgid "" "this quick access widget is disabled as there are multiple instances of this " "module present. Please use the full module to access this widget..." @@ -22833,157 +23524,157 @@ "vegla e aksesit të shpejtë është çaktivizuar, pasi ka disa instanca të " "modulit. lutemi ta shfrytëzoni veglën duke përdorur modulin e plotë..." -#: ../src/libs/modulegroups.c:591 +#: ../src/libs/modulegroups.c:594 msgid "(some features may only be available in the full module interface)" msgstr "(disa funksione kryhen vetëm në grafikën e plotë të modulit)" -#: ../src/libs/modulegroups.c:635 +#: ../src/libs/modulegroups.c:632 #, c-format msgid "go to the full version of the %s module" msgstr "hapni versionin e plotë të modulit %s" -#: ../src/libs/modulegroups.c:1556 ../src/libs/modulegroups.c:1641 -#: ../src/libs/modulegroups.c:1677 ../src/libs/modulegroups.c:1727 -#: ../src/libs/modulegroups.c:1817 +#: ../src/libs/modulegroups.c:1538 ../src/libs/modulegroups.c:1624 +#: ../src/libs/modulegroups.c:1660 ../src/libs/modulegroups.c:1710 +#: ../src/libs/modulegroups.c:1801 msgctxt "modulegroup" msgid "base" msgstr "bazë" -#: ../src/libs/modulegroups.c:1575 +#: ../src/libs/modulegroups.c:1557 msgctxt "modulegroup" msgid "tone" msgstr "tonet" -#: ../src/libs/modulegroups.c:1584 ../src/libs/modulegroups.c:1691 -#: ../src/libs/modulegroups.c:1741 +#: ../src/libs/modulegroups.c:1566 ../src/libs/modulegroups.c:1674 +#: ../src/libs/modulegroups.c:1724 msgctxt "modulegroup" msgid "color" msgstr "ngjyrat" -#: ../src/libs/modulegroups.c:1599 ../src/libs/modulegroups.c:1699 -#: ../src/libs/modulegroups.c:1746 +#: ../src/libs/modulegroups.c:1582 ../src/libs/modulegroups.c:1682 +#: ../src/libs/modulegroups.c:1730 msgctxt "modulegroup" msgid "correct" msgstr "korrigjimet" -#: ../src/libs/modulegroups.c:1617 ../src/libs/modulegroups.c:1711 -#: ../src/libs/modulegroups.c:1758 ../src/libs/modulegroups.c:2321 +#: ../src/libs/modulegroups.c:1600 ../src/libs/modulegroups.c:1694 +#: ../src/libs/modulegroups.c:1742 ../src/libs/modulegroups.c:2305 msgctxt "modulegroup" msgid "effect" msgstr "efektet" -#: ../src/libs/modulegroups.c:1635 +#: ../src/libs/modulegroups.c:1618 msgid "modules: all" msgstr "modulet: të gjitha" -#: ../src/libs/modulegroups.c:1656 +#: ../src/libs/modulegroups.c:1639 msgctxt "modulegroup" msgid "grading" -msgstr "gradienti" +msgstr "etalonimi" -#: ../src/libs/modulegroups.c:1664 ../src/libs/modulegroups.c:2325 +#: ../src/libs/modulegroups.c:1647 ../src/libs/modulegroups.c:2309 msgctxt "modulegroup" msgid "effects" msgstr "efektet" -#: ../src/libs/modulegroups.c:1672 +#: ../src/libs/modulegroups.c:1655 msgid "workflow: beginner" msgstr "procesi i punës: fillestar" -#: ../src/libs/modulegroups.c:1721 +#: ../src/libs/modulegroups.c:1704 msgid "workflow: display-referred" msgstr "procesi i punës: sipas ekranit" -#: ../src/libs/modulegroups.c:1773 +#: ../src/libs/modulegroups.c:1757 msgid "search only" msgstr "vetëm kërkoj" -#: ../src/libs/modulegroups.c:1779 ../src/libs/modulegroups.c:2090 -#: ../src/libs/modulegroups.c:2599 +#: ../src/libs/modulegroups.c:1763 ../src/libs/modulegroups.c:2074 +#: ../src/libs/modulegroups.c:2583 msgctxt "modulegroup" msgid "deprecated" msgstr "e vjetër" -#: ../src/libs/modulegroups.c:1792 +#: ../src/libs/modulegroups.c:1776 msgid "previous config" msgstr "konfigurimi pararendës" -#: ../src/libs/modulegroups.c:1793 +#: ../src/libs/modulegroups.c:1777 msgid "previous layout" msgstr "struktura pararendëse" -#: ../src/libs/modulegroups.c:1797 +#: ../src/libs/modulegroups.c:1781 msgid "previous config with new layout" msgstr "konfigurimi pararendës me strukturë të re" -#: ../src/libs/modulegroups.c:1957 ../src/libs/modulegroups.c:2472 -#: ../src/libs/modulegroups.c:2484 +#: ../src/libs/modulegroups.c:1941 ../src/libs/modulegroups.c:2456 +#: ../src/libs/modulegroups.c:2468 msgid "remove this widget" msgstr "heq këtë veglën" -#: ../src/libs/modulegroups.c:2107 ../src/libs/modulegroups.c:2347 +#: ../src/libs/modulegroups.c:2091 ../src/libs/modulegroups.c:2331 msgid "remove this module" msgstr "heq këtë modulin" #. does it belong to recommended modules ? -#: ../src/libs/modulegroups.c:2316 +#: ../src/libs/modulegroups.c:2300 msgid "base" msgstr "bazë" -#: ../src/libs/modulegroups.c:2319 +#: ../src/libs/modulegroups.c:2303 msgid "tone" msgstr "toni" -#: ../src/libs/modulegroups.c:2322 +#: ../src/libs/modulegroups.c:2306 msgid "technical" msgstr "teknike" -#: ../src/libs/modulegroups.c:2323 +#: ../src/libs/modulegroups.c:2307 msgid "grading" -msgstr "gradienti" +msgstr "etalonimi" -#: ../src/libs/modulegroups.c:2329 ../src/libs/modulegroups.c:2337 +#: ../src/libs/modulegroups.c:2313 ../src/libs/modulegroups.c:2321 msgid "add this module" msgstr "shtoj këtë modulin" #. show the submenu with all the modules -#: ../src/libs/modulegroups.c:2359 ../src/libs/modulegroups.c:2559 +#: ../src/libs/modulegroups.c:2343 ../src/libs/modulegroups.c:2543 msgid "all available modules" msgstr "gjithë modulet e mundshme" -#: ../src/libs/modulegroups.c:2367 +#: ../src/libs/modulegroups.c:2351 msgid "add module" msgstr "shtoj modulin" -#: ../src/libs/modulegroups.c:2372 +#: ../src/libs/modulegroups.c:2356 msgid "remove module" msgstr "heq modulin" -#: ../src/libs/modulegroups.c:2478 +#: ../src/libs/modulegroups.c:2462 msgid "header needed for other widgets" msgstr "duhet titulli për veglat e tjera" -#: ../src/libs/modulegroups.c:2494 ../src/libs/modulegroups.c:2501 +#: ../src/libs/modulegroups.c:2478 ../src/libs/modulegroups.c:2485 msgid "add this widget" msgstr "shtoj këtë veglën" -#: ../src/libs/modulegroups.c:2514 +#: ../src/libs/modulegroups.c:2498 msgid "currently invisible" msgstr "të padukshme" -#: ../src/libs/modulegroups.c:2543 +#: ../src/libs/modulegroups.c:2527 msgid "add widget" msgstr "shtoj veglën" -#: ../src/libs/modulegroups.c:2548 +#: ../src/libs/modulegroups.c:2532 msgid "remove widget" msgstr "heq veglën" -#: ../src/libs/modulegroups.c:2653 +#: ../src/libs/modulegroups.c:2637 msgid "show all history modules" msgstr "tregoj gjithë modulet e historikut" -#: ../src/libs/modulegroups.c:2656 ../src/libs/modulegroups.c:3834 +#: ../src/libs/modulegroups.c:2640 ../src/libs/modulegroups.c:3836 msgid "" "show modules that are present in the history stack, regardless of whether or " "not they are currently enabled" @@ -22991,7 +23682,7 @@ "tregoni modulet që ndodhen në historikun e zhvillimit, pavarësisht nga fakti " "se janë aktive apo jo" -#: ../src/libs/modulegroups.c:2747 ../src/libs/modulegroups.c:2816 +#: ../src/libs/modulegroups.c:2731 ../src/libs/modulegroups.c:2823 msgid "" "the following modules are deprecated because they have internal design " "mistakes that can't be corrected and alternative modules that correct them.\n" @@ -23001,19 +23692,19 @@ "nuk zgjidhen ose janë zgjidhur nga modulet alternative.\n" "këto do të hiqen në versionin tjetër të programit." -#: ../src/libs/modulegroups.c:2775 ../src/libs/modulegroups.c:2776 +#: ../src/libs/modulegroups.c:2782 ../src/libs/modulegroups.c:2783 msgid "quick access panel" msgstr "paneli për akses të shpejtë" -#: ../src/libs/modulegroups.c:2786 +#: ../src/libs/modulegroups.c:2793 msgid "show only active modules" msgstr "vetëm modulet aktive" -#: ../src/libs/modulegroups.c:2787 +#: ../src/libs/modulegroups.c:2794 msgid "active modules" msgstr "modulet aktive" -#: ../src/libs/modulegroups.c:2792 +#: ../src/libs/modulegroups.c:2799 msgid "" "presets\n" "ctrl+click to manage" @@ -23021,143 +23712,147 @@ "vlerat e paracaktuara\n" "administrohen me ctrl+klikim" -#: ../src/libs/modulegroups.c:2798 +#: ../src/libs/modulegroups.c:2805 msgid "search modules" msgstr "kërkoj modulet" -#: ../src/libs/modulegroups.c:2799 +#: ../src/libs/modulegroups.c:2806 msgid "search modules by name or tag" msgstr "kërkoni emrin ose etiketën e modulit" -#: ../src/libs/modulegroups.c:2809 +#: ../src/libs/modulegroups.c:2816 msgid "clear text" msgstr "pastroj tekstin" -#: ../src/libs/modulegroups.c:3051 +#: ../src/libs/modulegroups.c:3056 msgid "basic icon" msgstr "ikona bazë" -#: ../src/libs/modulegroups.c:3061 +#: ../src/libs/modulegroups.c:3066 msgid "active icon" msgstr "ikona aktive" -#: ../src/libs/modulegroups.c:3071 +#: ../src/libs/modulegroups.c:3076 msgid "color icon" msgstr "ikonë me ngjyrë" -#: ../src/libs/modulegroups.c:3081 +#: ../src/libs/modulegroups.c:3086 msgid "correct icon" msgstr "ikona korrigjoj" -#: ../src/libs/modulegroups.c:3091 +#: ../src/libs/modulegroups.c:3096 msgid "effect icon" msgstr "ikona efekti" -#: ../src/libs/modulegroups.c:3101 +#: ../src/libs/modulegroups.c:3106 msgid "favorites icon" msgstr "ikona interesante" -#: ../src/libs/modulegroups.c:3111 +#: ../src/libs/modulegroups.c:3116 msgid "tone icon" msgstr "ikona toni" -#: ../src/libs/modulegroups.c:3121 +#: ../src/libs/modulegroups.c:3126 msgid "grading icon" -msgstr "ikona gradienti" +msgstr "ikona etalonimi" -#: ../src/libs/modulegroups.c:3131 +#: ../src/libs/modulegroups.c:3136 msgid "technical icon" msgstr "ikona teknike" -#: ../src/libs/modulegroups.c:3164 +#: ../src/libs/modulegroups.c:3169 msgid "quick access panel widgets" msgstr "veglat e panelit për akses të shpejtë" -#: ../src/libs/modulegroups.c:3166 +#: ../src/libs/modulegroups.c:3171 msgid "quick access" msgstr "aksesi i shpejtë" -#: ../src/libs/modulegroups.c:3186 +#: ../src/libs/modulegroups.c:3191 msgid "add widget to the quick access panel" msgstr "shtoj veglën te paneli për akses të shpejtë" -#: ../src/libs/modulegroups.c:3218 +#: ../src/libs/modulegroups.c:3223 msgid "group icon" msgstr "ikona grupi" -#: ../src/libs/modulegroups.c:3227 +#: ../src/libs/modulegroups.c:3232 msgid "group name" msgstr "emri i grupit" -#: ../src/libs/modulegroups.c:3238 +#: ../src/libs/modulegroups.c:3243 msgid "remove group" msgstr "hiqni grupin" -#: ../src/libs/modulegroups.c:3264 +#: ../src/libs/modulegroups.c:3269 msgid "move group to the left" msgstr "lëvizni grupin majtas" -#: ../src/libs/modulegroups.c:3272 +#: ../src/libs/modulegroups.c:3277 msgid "add module to the group" msgstr "shtoni modulin te grupi" -#: ../src/libs/modulegroups.c:3283 +#: ../src/libs/modulegroups.c:3288 msgid "move group to the right" msgstr "lëvizni grupin djathtas" -#: ../src/libs/modulegroups.c:3463 +#: ../src/libs/modulegroups.c:3464 msgid "rename preset" msgstr "riemërtoni vlerën e paracaktuar" -#: ../src/libs/modulegroups.c:3470 +#: ../src/libs/modulegroups.c:3467 +msgid "_rename" +msgstr "_riemërtoj" + +#: ../src/libs/modulegroups.c:3473 msgid "new preset name:" msgstr "emri i vlerës së re:" -#: ../src/libs/modulegroups.c:3471 +#: ../src/libs/modulegroups.c:3474 msgid "a preset with this name already exists!" msgstr "një vlerë e ngjashme ekziston që më parë!" -#: ../src/libs/modulegroups.c:3804 +#: ../src/libs/modulegroups.c:3806 msgid "preset: " msgstr "vlera e paracaktuar: " -#: ../src/libs/modulegroups.c:3811 +#: ../src/libs/modulegroups.c:3813 msgid "remove the preset" msgstr "hiqni vlerën e paracaktuar" -#: ../src/libs/modulegroups.c:3813 +#: ../src/libs/modulegroups.c:3815 msgid "duplicate the preset" msgstr "dubloni vlerën e paracaktuar" -#: ../src/libs/modulegroups.c:3815 +#: ../src/libs/modulegroups.c:3817 msgid "rename the preset" msgstr "riemërtoni vlerën e paracaktuar" -#: ../src/libs/modulegroups.c:3817 +#: ../src/libs/modulegroups.c:3819 msgid "create a new empty preset" msgstr "krijoni një vlerë të re të paracaktuar" -#: ../src/libs/modulegroups.c:3825 +#: ../src/libs/modulegroups.c:3827 msgid "show search line" msgstr "tregoj rreshtin e kërkimeve" -#: ../src/libs/modulegroups.c:3828 +#: ../src/libs/modulegroups.c:3830 msgid "show quick access panel" msgstr "tregoj panelin për akses të shpejtë" -#: ../src/libs/modulegroups.c:3831 +#: ../src/libs/modulegroups.c:3833 msgid "show all history modules in active group" msgstr "tregoj gjithë modulet e historikut në grupin aktiv" -#: ../src/libs/modulegroups.c:3843 +#: ../src/libs/modulegroups.c:3845 msgid "auto-apply this preset" msgstr "vetaplikoj vlerën e paracaktuar" -#: ../src/libs/modulegroups.c:3858 +#: ../src/libs/modulegroups.c:3860 msgid "module groups" msgstr "grupet e moduleve" -#: ../src/libs/modulegroups.c:3875 +#: ../src/libs/modulegroups.c:3877 msgid "" "this is a built-in read-only preset. duplicate it if you want to make changes" msgstr "" @@ -23167,16 +23862,16 @@ msgid "navigation" msgstr "navigimi" -#: ../src/libs/navigation.c:111 ../src/libs/navigation.c:191 +#: ../src/libs/navigation.c:112 ../src/libs/navigation.c:194 msgctxt "navigationbox" msgid "fill" msgstr "mbush" -#: ../src/libs/navigation.c:114 ../src/libs/navigation.c:189 +#: ../src/libs/navigation.c:115 ../src/libs/navigation.c:192 msgid "small" msgstr "i vogël" -#: ../src/libs/navigation.c:151 +#: ../src/libs/navigation.c:154 msgid "" "navigation\n" "click or drag to position zoomed area in center view" @@ -23184,35 +23879,35 @@ "navigimi\n" "zona e zmadhuar centrohet me klikim ose me tërheqjen e mausit" -#: ../src/libs/navigation.c:173 +#: ../src/libs/navigation.c:176 msgid "hide navigation thumbnail" msgstr "fsheh miniaturën e navigimit" -#: ../src/libs/navigation.c:187 +#: ../src/libs/navigation.c:190 msgid "image zoom level" msgstr "niveli i zmadhimit të imazhit" -#: ../src/libs/navigation.c:192 +#: ../src/libs/navigation.c:195 msgid "50%" msgstr "50%" -#: ../src/libs/navigation.c:193 +#: ../src/libs/navigation.c:196 msgid "100%" msgstr "100%" -#: ../src/libs/navigation.c:194 +#: ../src/libs/navigation.c:197 msgid "200%" msgstr "200%" -#: ../src/libs/navigation.c:195 +#: ../src/libs/navigation.c:198 msgid "400%" msgstr "400%" -#: ../src/libs/navigation.c:196 +#: ../src/libs/navigation.c:199 msgid "800%" msgstr "800%" -#: ../src/libs/navigation.c:197 +#: ../src/libs/navigation.c:200 msgid "1600%" msgstr "1600%" @@ -23457,15 +24152,15 @@ msgid "print with current settings" msgstr "printoj me parametrat aktualë" -#: ../src/libs/select.c:136 +#: ../src/libs/select.c:137 msgid "select all images in current collection" msgstr "përzgjidhni gjithë imazhet në koleksionin aktual" -#: ../src/libs/select.c:140 +#: ../src/libs/select.c:141 msgid "clear selection" msgstr "pastroni përzgjedhjen" -#: ../src/libs/select.c:144 +#: ../src/libs/select.c:145 msgid "" "select unselected images\n" "in current collection" @@ -23473,7 +24168,7 @@ "përzgjidhni imazhet e papërzgjedhura\n" "në koleksionin aktual" -#: ../src/libs/select.c:148 +#: ../src/libs/select.c:149 msgid "" "select all images which are in the same\n" "film roll as the selected images" @@ -23481,7 +24176,7 @@ "përzgjidhni imazhet që janë në të njëjtin film\n" "me imazhet e përzgjedhura" -#: ../src/libs/select.c:152 +#: ../src/libs/select.c:153 msgid "" "select untouched images in\n" "current collection" @@ -23501,35 +24196,39 @@ msgid "create" msgstr "krijoj" -#: ../src/libs/snapshots.c:92 +#: ../src/libs/snapshots.c:88 msgid "snapshots" msgstr "çastet" -#: ../src/libs/snapshots.c:141 +#: ../src/libs/snapshots.c:137 msgctxt "snapshot sign" msgid "S" msgstr "S" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:662 +msgid "snapshots for removed image have been deleted" +msgstr "janë fshirë pozat për imazhin e hequr" + +#: ../src/libs/snapshots.c:703 #, c-format msgid "↗ %s '%s'" msgstr "↗ %s '%s'" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:703 msgid "this snapshot was taken from" msgstr "ky çast është ruajtur nga" -#: ../src/libs/snapshots.c:663 +#: ../src/libs/snapshots.c:742 msgid "take snapshot" msgstr "ruaj çastin" -#: ../src/libs/snapshots.c:665 +#: ../src/libs/snapshots.c:744 msgid "" "take snapshot to compare with another image or the same image at another " "stage of development" msgstr "çastet ruhen për të krahasuar imazhet në faza të ndryshme" -#: ../src/libs/snapshots.c:734 +#: ../src/libs/snapshots.c:790 msgid "toggle last snapshot" msgstr "përdor çastin e fundit" @@ -23546,7 +24245,11 @@ msgstr[0] "vërtet do e hiqni %d stil?" msgstr[1] "vërtet do i hiqni %d stile?" -#: ../src/libs/styles.c:444 ../src/libs/styles.c:627 +#: ../src/libs/styles.c:441 ../src/libs/styles.c:626 +msgid "_overwrite" +msgstr "_mbishkruaj" + +#: ../src/libs/styles.c:446 ../src/libs/styles.c:631 #, c-format msgid "" "style `%s' already exists.\n" @@ -23555,24 +24258,24 @@ "stili `%s' ekziston që më parë.\n" "do e mbishkruani stilin ekzistues?\n" -#: ../src/libs/styles.c:446 ../src/libs/styles.c:629 +#: ../src/libs/styles.c:448 ../src/libs/styles.c:633 msgid "apply this option to all existing styles" msgstr "aplikoj në gjithë stilet ekzistuese" -#: ../src/libs/styles.c:509 +#: ../src/libs/styles.c:511 #, c-format msgid "style %s was successfully exported" msgstr "eksportoi me sukses stilin %s" -#: ../src/libs/styles.c:526 +#: ../src/libs/styles.c:528 msgid "select style" msgstr "përzgjedh stilin" -#: ../src/libs/styles.c:536 +#: ../src/libs/styles.c:538 msgid "darktable style files" msgstr "skedarët e stilit për darktable" -#: ../src/libs/styles.c:815 +#: ../src/libs/styles.c:819 msgid "" "available styles,\n" "double-click to apply" @@ -23580,74 +24283,74 @@ "stilet e mundshme,\n" "me dopioklik aplikohen" -#: ../src/libs/styles.c:824 ../src/libs/styles.c:825 +#: ../src/libs/styles.c:828 ../src/libs/styles.c:829 msgid "filter style names" msgstr "filtroni emrat e stileve" -#: ../src/libs/styles.c:837 +#: ../src/libs/styles.c:841 msgid "create duplicate" msgstr "krijoj dublikatën" -#: ../src/libs/styles.c:844 +#: ../src/libs/styles.c:848 msgid "creates a duplicate of the image before applying style" msgstr "krijoni dublikatën e imazhit para se të aplikoni stilin" -#: ../src/libs/styles.c:862 +#: ../src/libs/styles.c:866 msgid "create..." msgstr "krijoj..." -#: ../src/libs/styles.c:864 +#: ../src/libs/styles.c:868 msgid "create styles from history stack of selected images" msgstr "krijoni stilin duke u nisur nga historiku i imazheve të përzgjedhura" -#: ../src/libs/styles.c:869 ../src/libs/tagging.c:2252 +#: ../src/libs/styles.c:873 ../src/libs/tagging.c:2283 msgid "edit..." msgstr "përpunoj..." -#: ../src/libs/styles.c:871 +#: ../src/libs/styles.c:875 msgid "edit the selected styles in list above" msgstr "përpunoni stilet e përzgjedhura nga lista e mësipërme" -#: ../src/libs/styles.c:878 +#: ../src/libs/styles.c:882 msgid "removes the selected styles in list above" msgstr "fshini stilet e përzgjedhura nga lista e mësipërme" -#: ../src/libs/styles.c:885 +#: ../src/libs/styles.c:889 msgid "import styles from a style files" msgstr "importoni stilet nga skedarët përkatës" -#: ../src/libs/styles.c:892 +#: ../src/libs/styles.c:896 msgid "export the selected styles into a style files" msgstr "eksportoni stilet e përzgjedhura në skedarët përkatës" -#: ../src/libs/styles.c:899 +#: ../src/libs/styles.c:903 msgid "apply the selected styles in list above to selected images" msgstr "" "aplikoni stilet e përzgjedhura nga lista sipër në imazhet e përzgjedhura" -#: ../src/libs/tagging.c:105 +#: ../src/libs/tagging.c:109 msgid "tagging" msgstr "etiketimi" -#: ../src/libs/tagging.c:1255 +#: ../src/libs/tagging.c:1258 msgid "attach tag to all" msgstr "bashkëngjit etiketën të gjithave" -#: ../src/libs/tagging.c:1263 ../src/libs/tagging.c:2225 +#: ../src/libs/tagging.c:1266 ../src/libs/tagging.c:2256 msgid "detach tag" msgstr "shkëput etiketën" -#: ../src/libs/tagging.c:1483 +#: ../src/libs/tagging.c:1486 msgid "delete tag?" msgstr "do e fshini etiketën?" -#: ../src/libs/tagging.c:1490 ../src/libs/tagging.c:1578 -#: ../src/libs/tagging.c:1789 ../src/libs/tagging.c:2063 +#: ../src/libs/tagging.c:1496 ../src/libs/tagging.c:1587 +#: ../src/libs/tagging.c:1814 ../src/libs/tagging.c:2093 #, c-format msgid "selected: %s" msgstr "janë përzgjedhur: %s" -#: ../src/libs/tagging.c:1497 +#: ../src/libs/tagging.c:1503 #, c-format msgid "" "do you really want to delete the tag `%s'?\n" @@ -23662,73 +24365,73 @@ "vërtet do e hiqni etiketën `%s'?\n" "me këtë etiketë janë shënuar %d imazhe!" -#: ../src/libs/tagging.c:1531 +#: ../src/libs/tagging.c:1537 #, c-format msgid "tag %s removed" msgstr "hoqi etiketën %s" -#: ../src/libs/tagging.c:1571 +#: ../src/libs/tagging.c:1577 msgid "delete node?" msgstr "do e fshini nyjën?" -#: ../src/libs/tagging.c:1585 +#: ../src/libs/tagging.c:1594 #, c-format msgid "<u>%d</u> tag will be deleted" msgid_plural "<u>%d</u> tags will be deleted" msgstr[0] "<u>%d</u> etiketë do të fshihet" msgstr[1] "<u>%d</u> etiketa do të fshihen" -#: ../src/libs/tagging.c:1590 ../src/libs/tagging.c:1801 -#: ../src/libs/tagging.c:2075 +#: ../src/libs/tagging.c:1599 ../src/libs/tagging.c:1826 +#: ../src/libs/tagging.c:2105 #, c-format msgid "<u>%d</u> image will be updated" msgid_plural "<u>%d</u> images will be updated" msgstr[0] "<u>%d</u> imazh do të azhurnohet" msgstr[1] "<u>%d</u> imazhe do të azhurnohen" -#: ../src/libs/tagging.c:1616 +#: ../src/libs/tagging.c:1625 #, c-format msgid "%d tags removed" msgstr "hoqi %d etiketa" -#: ../src/libs/tagging.c:1652 +#: ../src/libs/tagging.c:1668 msgid "create tag" msgstr "krijoj etiketën" -#: ../src/libs/tagging.c:1662 ../src/libs/tagging.c:1809 +#: ../src/libs/tagging.c:1681 ../src/libs/tagging.c:1834 msgid "name: " msgstr "emri: " -#: ../src/libs/tagging.c:1674 +#: ../src/libs/tagging.c:1696 #, c-format msgid "add to: \"%s\" " msgstr "shtoj te: \"%s\" " -#: ../src/libs/tagging.c:1680 ../src/libs/tagging.c:1824 +#: ../src/libs/tagging.c:1702 ../src/libs/tagging.c:1851 msgid "category" msgstr "kategoria" -#: ../src/libs/tagging.c:1689 ../src/libs/tagging.c:1833 +#: ../src/libs/tagging.c:1711 ../src/libs/tagging.c:1860 msgid "synonyms: " msgstr "sinonimet: " -#: ../src/libs/tagging.c:1706 ../src/libs/tagging.c:1855 -#: ../src/libs/tagging.c:2097 +#: ../src/libs/tagging.c:1728 ../src/libs/tagging.c:1882 +#: ../src/libs/tagging.c:2128 msgid "empty tag is not allowed, aborting" msgstr "nuk lejohen etiketat boshe, dalje" -#: ../src/libs/tagging.c:1717 +#: ../src/libs/tagging.c:1739 msgid "tag name already exists. aborting." msgstr "kjo etiketë ekziston që më parë. dalje." -#: ../src/libs/tagging.c:1796 ../src/libs/tagging.c:2070 +#: ../src/libs/tagging.c:1821 ../src/libs/tagging.c:2100 #, c-format msgid "<u>%d</u> tag will be updated" msgid_plural "<u>%d</u> tags will be updated" msgstr[0] "<u>%d</u> etiketë do të azhurnohet" msgstr[1] "<u>%d</u> etiketa do të azhurnohen" -#: ../src/libs/tagging.c:1857 +#: ../src/libs/tagging.c:1884 msgid "" "'|' character is not allowed for renaming tag.\n" "to modify the hierarchy use rename path instead. Aborting." @@ -23736,100 +24439,100 @@ "karakteri '|' nuk lejohet për riemërtimin e etiketave.\n" "hierarkia të modifikohet me opsionin e riemërtimit. Ndërpritet." -#: ../src/libs/tagging.c:1896 ../src/libs/tagging.c:2004 +#: ../src/libs/tagging.c:1923 ../src/libs/tagging.c:2031 #, c-format msgid "at least one new tag name (%s) already exists, aborting" msgstr "emri i të paktën një etikete të re (%s) ekziston që më parë, dalje" -#: ../src/libs/tagging.c:2056 +#: ../src/libs/tagging.c:2083 msgid "change path" msgstr "ndryshoj adresën" -#: ../src/libs/tagging.c:2099 +#: ../src/libs/tagging.c:2130 msgid "'|' misplaced, empty tag is not allowed, aborting" msgstr "'|' është vendosur keq, nuk lejohen etiketat boshe, ndërpritet" -#: ../src/libs/tagging.c:2195 +#: ../src/libs/tagging.c:2226 #, c-format msgid "tag %s created" msgstr "krijoi etiketën %s" -#: ../src/libs/tagging.c:2221 +#: ../src/libs/tagging.c:2252 msgid "attach tag" msgstr "bashkëngjit etiketën" -#: ../src/libs/tagging.c:2234 +#: ../src/libs/tagging.c:2265 msgid "create tag..." msgstr "krijoj etiketën..." -#: ../src/libs/tagging.c:2240 +#: ../src/libs/tagging.c:2271 msgid "delete tag" msgstr "fshij etiketën" -#: ../src/libs/tagging.c:2247 +#: ../src/libs/tagging.c:2278 msgid "delete node" msgstr "fshij nyjën" -#: ../src/libs/tagging.c:2260 +#: ../src/libs/tagging.c:2291 msgid "change path..." msgstr "ndryshoj adresën..." -#: ../src/libs/tagging.c:2270 +#: ../src/libs/tagging.c:2301 msgid "set as a tag" msgstr "caktoj si etiketë" -#: ../src/libs/tagging.c:2281 +#: ../src/libs/tagging.c:2312 msgid "copy to entry" msgstr "kopjoj te elementi" -#: ../src/libs/tagging.c:2298 +#: ../src/libs/tagging.c:2329 msgid "go to tag collection" msgstr "shkoj te koleksioni i etiketave" -#: ../src/libs/tagging.c:2304 +#: ../src/libs/tagging.c:2335 msgid "go back to work" msgstr "kthehem në punë" -#: ../src/libs/tagging.c:2461 +#: ../src/libs/tagging.c:2492 #, c-format msgid "%s" msgstr "%s" -#: ../src/libs/tagging.c:2462 +#: ../src/libs/tagging.c:2493 msgid "(private)" msgstr "(private)" -#: ../src/libs/tagging.c:2488 +#: ../src/libs/tagging.c:2519 msgid "select a keyword file" msgstr "përzgjidhni skedarin me fjalët kyç" -#: ../src/libs/tagging.c:2501 +#: ../src/libs/tagging.c:2532 msgid "error importing tags" msgstr "problem me importin e etiketave" -#: ../src/libs/tagging.c:2503 +#: ../src/libs/tagging.c:2534 #, c-format msgid "%zd tags imported" msgstr "importoi %zd etiketa" -#: ../src/libs/tagging.c:2524 +#: ../src/libs/tagging.c:2555 msgid "select file to export to" msgstr "përzgjidhni skedarin për eksport" -#: ../src/libs/tagging.c:2538 +#: ../src/libs/tagging.c:2569 msgid "error exporting tags" msgstr "problem me eksportin e etiketave" -#: ../src/libs/tagging.c:2540 +#: ../src/libs/tagging.c:2571 #, c-format msgid "%zd tags exported" msgstr "eksportoi %zd etiketa" -#: ../src/libs/tagging.c:2964 +#: ../src/libs/tagging.c:2995 msgid "drop to root" msgstr "hidheni në bazë" -#: ../src/libs/tagging.c:3100 +#: ../src/libs/tagging.c:3131 msgid "" "attached tags\n" "press Delete or double-click to detach\n" @@ -23841,47 +24544,47 @@ "me etiketën veprohet më tej me klikim djathtas,\n" "elementi vihet në fokus me tastin Tab" -#: ../src/libs/tagging.c:3111 +#: ../src/libs/tagging.c:3142 msgid "attach" msgstr "bashkëngjit" -#: ../src/libs/tagging.c:3112 +#: ../src/libs/tagging.c:3143 msgid "attach tag to all selected images" msgstr "bashkëngjitni etiketën në imazhet e përzgjedhura" -#: ../src/libs/tagging.c:3115 +#: ../src/libs/tagging.c:3146 msgid "detach" msgstr "shkëput" -#: ../src/libs/tagging.c:3116 +#: ../src/libs/tagging.c:3147 msgid "detach tag from all selected images" msgstr "shkëputni etiketën nga imazhet e përzgjedhura" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "toggle list with / without hierarchy" msgstr "shfaqni listën me ose pa hierarki" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "hide" msgstr "fsheh" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "toggle sort by name or by count" msgstr "renditni sipas emrit ose numrit" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "sort" msgstr "rendit" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "toggle show or not darktable tags" msgstr "tregoni/fshihni etiketat në darktable" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "dttags" msgstr "dtetiketat" -#: ../src/libs/tagging.c:3149 +#: ../src/libs/tagging.c:3180 msgid "" "enter tag name\n" "press Enter to create a new tag and attach it on selected images\n" @@ -23894,11 +24597,11 @@ "etiketa e parë e gjetur hapet me tastin Tab ose Down\n" "etiketa e parë e bashkëngjitur përzgjidhet me tastin shift+Tab" -#: ../src/libs/tagging.c:3160 ../src/libs/tagging.c:3166 +#: ../src/libs/tagging.c:3191 ../src/libs/tagging.c:3197 msgid "clear entry" msgstr "pastroni elementin" -#: ../src/libs/tagging.c:3213 +#: ../src/libs/tagging.c:3244 msgid "" "tag dictionary,\n" "Enter or double-click to attach selected tag on selected images\n" @@ -23915,48 +24618,48 @@ "me etiketën vepriohet më tej me klikim djathtas,\n" "elementi vihet në fokus me tastet shift+Tab" -#: ../src/libs/tagging.c:3248 +#: ../src/libs/tagging.c:3279 msgid "" "create a new tag with the\n" "name you entered" msgstr "krijoni etiketën e re sipas emrit" -#: ../src/libs/tagging.c:3251 +#: ../src/libs/tagging.c:3282 msgid "import tags from a Lightroom keyword file" msgstr "importoni etiketat nga skedari me fjalë kyç për Lightroom" -#: ../src/libs/tagging.c:3254 +#: ../src/libs/tagging.c:3285 msgid "export all tags to a Lightroom keyword file" msgstr "eksportoni gjithë etiketat në skedar me fjalë kyç për Lightroom" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "toggle list / tree view" msgstr "përdorni pamjen me listë / pemë" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "tree" msgstr "pemë" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "toggle list with / without suggestion" msgstr "shfaqni listën me ose pa sugjerime" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "suggestion" msgstr "sugjerimi" -#: ../src/libs/tagging.c:3282 +#: ../src/libs/tagging.c:3313 msgid "redo last tag" msgstr "ribëj etiketën e fundit" -#: ../src/libs/tagging.c:3365 +#: ../src/libs/tagging.c:3396 msgid "" "tag shortcut is not active with tag tree view. please switch to list view" msgstr "" "shkurtoret e etiketave nuk përdoren në pamjen me pemë. lutemi të kaloni te " "pamja me listë" -#: ../src/libs/tagging.c:3469 +#: ../src/libs/tagging.c:3500 msgid "tagging settings" msgstr "parametrat e etiketimit" @@ -23973,27 +24676,6 @@ msgid "toggle color label of selected images" msgstr "përdorni etiketat me ngjyrë për imazhet e përzgjedhura" -#: ../src/libs/tools/darktable.c:284 -#, c-format -msgid "copyright (c) the authors 2009-%s" -msgstr "kopirajti (c) autorët 2009-%s" - -#: ../src/libs/tools/darktable.c:288 -msgid "organize and develop images from digital cameras" -msgstr "organizoni dhe zhvilloni fotot digjitale" - -#: ../src/libs/tools/darktable.c:300 -msgid "all those of you that made previous releases possible" -msgstr "gjithë ata që kanë ndihmuar në të kaluarën" - -#: ../src/libs/tools/darktable.c:305 -msgid "and..." -msgstr "dhe..." - -#: ../src/libs/tools/darktable.c:307 -msgid "translator-credits" -msgstr "Besmir Godole" - #: ../src/libs/tools/filmstrip.c:45 msgid "filmstrip" msgstr "diafilmi" @@ -24309,35 +24991,35 @@ msgid "click to enter culling layout in dynamic mode." msgstr "hapni strukturën dinamike të seleksionimit." -#: ../src/libs/tools/lighttable.c:368 +#: ../src/libs/tools/lighttable.c:365 msgid "toggle filemanager layout" msgstr "përdorni strukturën për administrimin e skedarëve" -#: ../src/libs/tools/lighttable.c:371 +#: ../src/libs/tools/lighttable.c:368 msgid "click to enter filemanager layout." msgstr "hapni strukturën për administrimin e skedarëve." -#: ../src/libs/tools/lighttable.c:377 +#: ../src/libs/tools/lighttable.c:374 msgid "toggle zoomable lighttable layout" msgstr "përdorni strukturën zmadhuese të fototekës" -#: ../src/libs/tools/lighttable.c:380 +#: ../src/libs/tools/lighttable.c:377 msgid "click to enter zoomable lighttable layout." msgstr "hapni strukturën zmadhuese të fototekës." -#: ../src/libs/tools/lighttable.c:386 +#: ../src/libs/tools/lighttable.c:383 msgid "toggle culling mode" msgstr "përdorni këndin e seleksionimit" -#: ../src/libs/tools/lighttable.c:394 +#: ../src/libs/tools/lighttable.c:391 msgid "toggle culling dynamic mode" msgstr "përdorni këndin dinamik të seleksionimit" -#: ../src/libs/tools/lighttable.c:441 +#: ../src/libs/tools/lighttable.c:438 msgid "toggle culling zoom mode" msgstr "përdorni këndin me zmadhim të seleksionimit" -#: ../src/libs/tools/lighttable.c:443 +#: ../src/libs/tools/lighttable.c:440 msgid "exit current layout" msgstr "mbyll strukturën grafike aktuale" @@ -24418,7 +25100,7 @@ msgid "Lua options" msgstr "opsionet Lua" -#: ../src/views/darkroom.c:607 +#: ../src/views/darkroom.c:503 #, c-format msgid "" "darktable could not load `%s', switching to lighttable now.\n" @@ -24441,62 +25123,62 @@ "raportoni si problem\n" "në https://github.com/darktable-org/darktable" -#: ../src/views/darkroom.c:625 +#: ../src/views/darkroom.c:521 #, c-format msgctxt "darkroom" msgid "loading `%s' ..." msgstr "hap `%s' ..." -#: ../src/views/darkroom.c:749 ../src/views/darkroom.c:2496 +#: ../src/views/darkroom.c:668 ../src/views/darkroom.c:2335 msgid "gamut check" msgstr "kontrolli i spektrit të ngjyrave" -#: ../src/views/darkroom.c:749 +#: ../src/views/darkroom.c:668 msgid "soft proof" msgstr "gradimi i ngjyrave" #. fail :( -#: ../src/views/darkroom.c:787 ../src/views/print.c:356 +#: ../src/views/darkroom.c:708 ../src/views/print.c:356 msgid "no image to open!" msgstr "nuk ka imazh për të hapur!" -#: ../src/views/darkroom.c:1331 +#: ../src/views/darkroom.c:1232 msgid "no user-defined presets for favorite modules were found" msgstr "nuk gjen vlerat e paracaktuara për modulet e pëlqyera" -#: ../src/views/darkroom.c:1476 +#: ../src/views/darkroom.c:1377 msgid "no styles have been created yet" msgstr "akoma nuk keni krijuar stile" -#: ../src/views/darkroom.c:2331 ../src/views/darkroom.c:2332 +#: ../src/views/darkroom.c:2170 ../src/views/darkroom.c:2171 msgid "quick access to presets" msgstr "hapni shpejt vlerat e paracaktuara" -#: ../src/views/darkroom.c:2340 +#: ../src/views/darkroom.c:2179 msgid "quick access to styles" msgstr "hapni shpejt stilet" -#: ../src/views/darkroom.c:2342 +#: ../src/views/darkroom.c:2181 msgid "quick access for applying any of your styles" msgstr "aplikoni shpejt stilet tuaja" -#: ../src/views/darkroom.c:2348 +#: ../src/views/darkroom.c:2187 msgid "second window" msgstr "dritarja e dytë" -#: ../src/views/darkroom.c:2351 +#: ../src/views/darkroom.c:2190 msgid "display a second darkroom image window" msgstr "shfaqni dhomën e errët në dritare tjetër" -#: ../src/views/darkroom.c:2356 +#: ../src/views/darkroom.c:2195 msgid "color assessment" msgstr "vlerësimi i ngjyrave" -#: ../src/views/darkroom.c:2359 +#: ../src/views/darkroom.c:2198 msgid "toggle ISO 12646 color assessment conditions" msgstr "vlerësoni ngjyrat në kushtet e ISO 12646" -#: ../src/views/darkroom.c:2372 +#: ../src/views/darkroom.c:2211 msgid "" "toggle raw over exposed indication\n" "right click for options" @@ -24504,27 +25186,27 @@ "treguesi i mbiekspozimit bruto\n" "klikoni me të djathtën për opsionet" -#: ../src/views/darkroom.c:2388 +#: ../src/views/darkroom.c:2227 msgid "select how to mark the clipped pixels" msgstr "përzgjidhni si duhen shenjuar pikselët e shkurtuar" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with CFA color" msgstr "shenjoj me ngjyrë CFA" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with solid color" msgstr "shenjoj me ngjyrë uniforme" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "false color" msgstr "ngjyrë false" -#: ../src/views/darkroom.c:2393 ../src/views/darkroom.c:2444 +#: ../src/views/darkroom.c:2232 ../src/views/darkroom.c:2283 msgid "color scheme" msgstr "skema e ngjyrave" -#: ../src/views/darkroom.c:2394 +#: ../src/views/darkroom.c:2233 msgid "" "select the solid color to indicate over exposure.\n" "will only be used if mode = mark with solid color" @@ -24532,27 +25214,27 @@ "përzgjidhni ngjyrën që tregon mbiekspozimin.\n" "përdoret vetëm kur zgjidhni shenjimin me ngjyrë uniforme" -#: ../src/views/darkroom.c:2397 +#: ../src/views/darkroom.c:2236 msgctxt "solidcolor" msgid "red" msgstr "kuqe" -#: ../src/views/darkroom.c:2398 +#: ../src/views/darkroom.c:2237 msgctxt "solidcolor" msgid "green" msgstr "gjelbër" -#: ../src/views/darkroom.c:2399 +#: ../src/views/darkroom.c:2238 msgctxt "solidcolor" msgid "blue" msgstr "blu" -#: ../src/views/darkroom.c:2400 +#: ../src/views/darkroom.c:2239 msgctxt "solidcolor" msgid "black" msgstr "zezë" -#: ../src/views/darkroom.c:2408 +#: ../src/views/darkroom.c:2247 msgid "" "threshold of what shall be considered overexposed\n" "1.0 - white level\n" @@ -24562,7 +25244,7 @@ "1.0 - niveli të bardhës\n" "0.0 - niveli i të zezës" -#: ../src/views/darkroom.c:2422 +#: ../src/views/darkroom.c:2261 msgid "" "toggle clipping indication\n" "right click for options" @@ -24570,11 +25252,11 @@ "treguesi i parametrave të shkurtuar\n" "klikoni me të djathtën për opsionet" -#: ../src/views/darkroom.c:2437 +#: ../src/views/darkroom.c:2276 msgid "clipping preview mode" msgstr "parashikimi i parametrave të shkurtuar" -#: ../src/views/darkroom.c:2438 +#: ../src/views/darkroom.c:2277 msgid "" "select the metric you want to preview\n" "full gamut is the combination of all other modes" @@ -24582,39 +25264,39 @@ "zgjidhni standardin për parashikimin\n" "spektri i plotë i ngjyrave ndërthur gjithë mënyrat" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "full gamut" msgstr "spektri i plotë i ngjyrave" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "any RGB channel" msgstr "çdo kanal RGB" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "luminance only" msgstr "vetëm luminancën" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "saturation only" msgstr "vetëm saturimin" -#: ../src/views/darkroom.c:2445 +#: ../src/views/darkroom.c:2284 msgid "select colors to indicate clipping" msgstr "përzgjidhni ngjyrat që tregojnë parametrat e shkurtuar" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "red & blue" msgstr "kuqe e blu" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "purple & green" msgstr "vjollcë e gjelbër" -#: ../src/views/darkroom.c:2454 +#: ../src/views/darkroom.c:2293 msgid "lower threshold" msgstr "pragu i poshtëm" -#: ../src/views/darkroom.c:2455 +#: ../src/views/darkroom.c:2294 msgid "" "clipping threshold for the black point,\n" "in EV, relatively to white (0 EV).\n" @@ -24634,11 +25316,11 @@ "printimet me lustër me ngjyra tipike prodhojnë të zezën në -8.00 EV,\n" "printime me lustër B/Z tipike prodhojnë të zezën në -9.00 EV." -#: ../src/views/darkroom.c:2471 +#: ../src/views/darkroom.c:2310 msgid "upper threshold" msgstr "pragu i sipërm" -#: ../src/views/darkroom.c:2473 +#: ../src/views/darkroom.c:2312 #, no-c-format msgid "" "clipping threshold for the white point.\n" @@ -24647,11 +25329,11 @@ "pragu i shkurtimit për pikën e bardhë.\n" "100% është piku i luminancës së mesme." -#: ../src/views/darkroom.c:2485 +#: ../src/views/darkroom.c:2324 msgid "softproof" msgstr "gradoj ngjyrat" -#: ../src/views/darkroom.c:2488 +#: ../src/views/darkroom.c:2327 msgid "" "toggle softproofing\n" "right click for profile options" @@ -24659,7 +25341,7 @@ "përdorni bocën e ngjyrave\n" "klikoni me të djathtën për opsionet" -#: ../src/views/darkroom.c:2499 +#: ../src/views/darkroom.c:2338 msgid "" "toggle gamut checking\n" "right click for profile options" @@ -24667,46 +25349,54 @@ "kontrolloni spektrin e ngjyrave\n" "klikoni me të djathtën për opsionet e profilit" -#: ../src/views/darkroom.c:2524 ../src/views/darkroom.c:2526 -#: ../src/views/darkroom.c:2540 ../src/views/darkroom.c:2541 -#: ../src/views/darkroom.c:2542 ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2365 ../src/views/darkroom.c:2367 +#: ../src/views/darkroom.c:2381 ../src/views/darkroom.c:2382 +#: ../src/views/darkroom.c:2383 ../src/views/darkroom.c:2384 #: ../src/views/lighttable.c:1182 ../src/views/lighttable.c:1184 msgid "profiles" msgstr "profilet" -#: ../src/views/darkroom.c:2526 ../src/views/lighttable.c:1184 +#: ../src/views/darkroom.c:2367 ../src/views/lighttable.c:1184 msgid "preview intent" msgstr "parashikimi i synuar" -#: ../src/views/darkroom.c:2540 ../src/views/lighttable.c:1188 +#: ../src/views/darkroom.c:2381 ../src/views/lighttable.c:1188 msgid "display profile" msgstr "profili i ekranit" -#: ../src/views/darkroom.c:2541 ../src/views/lighttable.c:1191 +#: ../src/views/darkroom.c:2382 ../src/views/lighttable.c:1191 msgid "preview display profile" msgstr "profili i ekranit për parashikim" -#: ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2384 msgid "histogram profile" msgstr "profili i histogramit" -#: ../src/views/darkroom.c:2605 ../src/views/lighttable.c:1225 +#: ../src/views/darkroom.c:2391 +msgid "second preview window ISO 12646 color assessment" +msgstr "dritare të dytë për vlerësimin e ngjyrave në kushtet e ISO 12646" + +#: ../src/views/darkroom.c:2393 +msgid "color assessment second preview" +msgstr "këndi i dytë për vlerësimin e ngjyrave" + +#: ../src/views/darkroom.c:2452 ../src/views/lighttable.c:1225 msgid "display ICC profiles" msgstr "profilet ICC të ekranit" -#: ../src/views/darkroom.c:2609 ../src/views/lighttable.c:1229 +#: ../src/views/darkroom.c:2456 ../src/views/lighttable.c:1229 msgid "preview display ICC profiles" msgstr "profilet ICC të ekranit për parashikim" -#: ../src/views/darkroom.c:2613 +#: ../src/views/darkroom.c:2460 msgid "softproof ICC profiles" msgstr "profilet ICC të bocës së ngjyrave" -#: ../src/views/darkroom.c:2617 +#: ../src/views/darkroom.c:2464 msgid "histogram and color picker ICC profiles" msgstr "profilet ICC të histogramit dhe përzgjedhësit të ngjyrave" -#: ../src/views/darkroom.c:2651 +#: ../src/views/darkroom.c:2497 msgid "" "toggle guide lines\n" "right click for guides options" @@ -24715,137 +25405,137 @@ "klikoni me të djathtën për opsionet e vijave udhëzuese" #. Fullscreen preview key -#: ../src/views/darkroom.c:2668 +#: ../src/views/darkroom.c:2514 msgid "full preview" msgstr "parashikoj plotësisht" #. add an option to allow skip mouse events while other overlays are consuming mouse actions -#: ../src/views/darkroom.c:2672 +#: ../src/views/darkroom.c:2518 msgid "force pan/zoom/rotate with mouse" msgstr "detyroj panoramimin/zmadhimin/rrotullimin me maus" #. Zoom shortcuts -#: ../src/views/darkroom.c:2684 +#: ../src/views/darkroom.c:2530 msgid "zoom close-up" msgstr "afroj" #. zoom in/out #. zoom in/out/min/max -#: ../src/views/darkroom.c:2687 ../src/views/lighttable.c:1283 +#: ../src/views/darkroom.c:2533 ../src/views/lighttable.c:1283 msgid "zoom in" msgstr "zmadhoj" -#: ../src/views/darkroom.c:2688 ../src/views/lighttable.c:1285 +#: ../src/views/darkroom.c:2534 ../src/views/lighttable.c:1285 msgid "zoom out" msgstr "zvogëloj" #. Shortcut to skip images -#: ../src/views/darkroom.c:2691 +#: ../src/views/darkroom.c:2537 msgid "image forward" msgstr "imazhi para" -#: ../src/views/darkroom.c:2692 +#: ../src/views/darkroom.c:2538 msgid "image back" msgstr "imazhi prapa" #. cycle overlay colors -#: ../src/views/darkroom.c:2695 +#: ../src/views/darkroom.c:2541 msgid "cycle overlay colors" msgstr "ndërroni ngjyrat për mbishtresat" #. toggle visibility of drawn masks for current gui module -#: ../src/views/darkroom.c:2698 +#: ../src/views/darkroom.c:2544 msgid "show drawn masks" msgstr "tregoj maskat e vizatuara" #. brush size +/- -#: ../src/views/darkroom.c:2701 +#: ../src/views/darkroom.c:2547 msgid "increase brush size" msgstr "rrit përmasat e penelit" -#: ../src/views/darkroom.c:2702 +#: ../src/views/darkroom.c:2548 msgid "decrease brush size" msgstr "ul përmasat e penelit" #. brush hardness +/- -#: ../src/views/darkroom.c:2705 +#: ../src/views/darkroom.c:2551 msgid "increase brush hardness" msgstr "rrit fortësinë e penelit" -#: ../src/views/darkroom.c:2706 +#: ../src/views/darkroom.c:2552 msgid "decrease brush hardness" msgstr "ul fortësinë e penelit" #. brush opacity +/- -#: ../src/views/darkroom.c:2709 +#: ../src/views/darkroom.c:2555 msgid "increase brush opacity" msgstr "rrit tejdukshmërinë e penelit" -#: ../src/views/darkroom.c:2710 +#: ../src/views/darkroom.c:2556 msgid "decrease brush opacity" msgstr "ul tejdukshmërinë e penelit" #. undo/redo -#: ../src/views/darkroom.c:2713 ../src/views/lighttable.c:1275 +#: ../src/views/darkroom.c:2559 ../src/views/lighttable.c:1275 #: ../src/views/map.c:2115 msgid "undo" msgstr "kthej" -#: ../src/views/darkroom.c:2714 ../src/views/lighttable.c:1276 +#: ../src/views/darkroom.c:2560 ../src/views/lighttable.c:1276 #: ../src/views/map.c:2116 msgid "redo" msgstr "ribëj" #. change the precision for adjusting sliders with keyboard shortcuts -#: ../src/views/darkroom.c:2717 +#: ../src/views/darkroom.c:2563 msgid "change keyboard shortcut slider precision" msgstr "ndryshoni precizionin e shkarësit me shkurtoren e tastierës" -#: ../src/views/darkroom.c:3989 +#: ../src/views/darkroom.c:3565 msgid "keyboard shortcut slider precision: fine" msgstr "precizioni i shkarësit me shkurtoren e tastierës: fin" -#: ../src/views/darkroom.c:3991 +#: ../src/views/darkroom.c:3567 msgid "keyboard shortcut slider precision: normal" msgstr "precizioni i shkarësit me shkurtoren e tastierës: normal" -#: ../src/views/darkroom.c:3993 +#: ../src/views/darkroom.c:3569 msgid "keyboard shortcut slider precision: coarse" msgstr "precizioni i shkarësit me shkurtoren e tastierës: i trashë" -#: ../src/views/darkroom.c:4009 +#: ../src/views/darkroom.c:3584 msgid "switch to lighttable" msgstr "kaloj te fototeka" -#: ../src/views/darkroom.c:4010 ../src/views/lighttable.c:882 +#: ../src/views/darkroom.c:3585 ../src/views/lighttable.c:882 msgid "zoom in the image" msgstr "zmadhoj imazhin" -#: ../src/views/darkroom.c:4011 +#: ../src/views/darkroom.c:3586 msgid "unbounded zoom in the image" msgstr "zmadhim i palimituar i imazhit" -#: ../src/views/darkroom.c:4012 +#: ../src/views/darkroom.c:3587 msgid "zoom to 100% 200% and back" msgstr "zmadhoj në 100% 200% dhe kthehem" -#: ../src/views/darkroom.c:4013 ../src/views/lighttable.c:885 +#: ../src/views/darkroom.c:3588 ../src/views/lighttable.c:885 msgid "pan a zoomed image" msgstr "panoramoj imazhin e zmadhuar" -#: ../src/views/darkroom.c:4015 ../src/views/lighttable.c:927 +#: ../src/views/darkroom.c:3590 ../src/views/lighttable.c:927 msgid "[modules] expand module without closing others" msgstr "[modulet] shpalos modulin pa i mbyllur të tjerët" -#: ../src/views/darkroom.c:4016 ../src/views/lighttable.c:928 +#: ../src/views/darkroom.c:3591 ../src/views/lighttable.c:928 msgid "[modules] expand module and close others" msgstr "[modulet] shpalos modulin dhe mbyll të tjerët" -#: ../src/views/darkroom.c:4018 +#: ../src/views/darkroom.c:3593 msgid "[modules] rename module" msgstr "[modulet] riemërtoj modulin" -#: ../src/views/darkroom.c:4020 +#: ../src/views/darkroom.c:3595 msgid "[modules] change module position in pipe" msgstr "[modulet] ndryshoj pozicionin e modulit për zhvillim" @@ -24990,59 +25680,59 @@ msgid "print" msgstr "printimi" -#: ../src/views/slideshow.c:353 +#: ../src/views/slideshow.c:355 msgid "end of images" msgstr "imazhet mbaruan" -#: ../src/views/slideshow.c:374 +#: ../src/views/slideshow.c:376 msgid "end of images. press any key to return to lighttable mode" msgstr "imazhet mbaruan. shtypni një tast për t'u kthyer në fototekë" -#: ../src/views/slideshow.c:504 +#: ../src/views/slideshow.c:509 msgid "waiting to start slideshow" msgstr "pret nisjen e diafilmit" -#: ../src/views/slideshow.c:640 ../src/views/slideshow.c:661 -#: ../src/views/slideshow.c:669 +#: ../src/views/slideshow.c:678 ../src/views/slideshow.c:705 +#: ../src/views/slideshow.c:713 msgid "slideshow paused" msgstr "diafilmi në pauzë" -#: ../src/views/slideshow.c:648 ../src/views/slideshow.c:655 +#: ../src/views/slideshow.c:686 ../src/views/slideshow.c:696 #, c-format msgid "slideshow delay set to %d second" msgid_plural "slideshow delay set to %d seconds" msgstr[0] "diafilmi do të vonohet %d sekondë" msgstr[1] "diafilmi do të vonohet %d sekonda" -#: ../src/views/slideshow.c:684 +#: ../src/views/slideshow.c:728 msgid "start and stop" msgstr "filloj e ndaloj" -#: ../src/views/slideshow.c:685 +#: ../src/views/slideshow.c:730 msgid "exit slideshow" msgstr "mbyll diafilmin" -#: ../src/views/slideshow.c:688 +#: ../src/views/slideshow.c:734 msgid "slow down" msgstr "ngadalësoj" -#: ../src/views/slideshow.c:691 +#: ../src/views/slideshow.c:738 msgid "speed up" msgstr "shpejtoj" -#: ../src/views/slideshow.c:695 +#: ../src/views/slideshow.c:743 msgid "step forward" msgstr "bëj përpara" -#: ../src/views/slideshow.c:696 +#: ../src/views/slideshow.c:745 msgid "step back" msgstr "bëj prapa" -#: ../src/views/slideshow.c:702 +#: ../src/views/slideshow.c:753 msgid "go to next image" msgstr "shkoj te imazhi tjetër" -#: ../src/views/slideshow.c:703 +#: ../src/views/slideshow.c:755 msgid "go to previous image" msgstr "shkoj te imazhi pararendës" @@ -25055,47 +25745,47 @@ msgid "no camera with tethering support available for use..." msgstr "nuk keni kamerë që telefotografon..." -#: ../src/views/view.c:1193 +#: ../src/views/view.c:1352 msgid "left click" msgstr "klikim majtas" -#: ../src/views/view.c:1196 +#: ../src/views/view.c:1355 msgid "right click" msgstr "klikim djathtas" -#: ../src/views/view.c:1199 +#: ../src/views/view.c:1358 msgid "middle click" msgstr "klikim në mes" -#: ../src/views/view.c:1205 +#: ../src/views/view.c:1364 msgid "left double-click" msgstr "dopioklik majtas" -#: ../src/views/view.c:1208 +#: ../src/views/view.c:1367 msgid "right double-click" msgstr "dopioklik djathtas" -#: ../src/views/view.c:1211 +#: ../src/views/view.c:1370 msgid "drag and drop" msgstr "tërheq" -#: ../src/views/view.c:1214 +#: ../src/views/view.c:1373 msgid "left click+drag" msgstr "klikim majtas+tërheqje mausi" -#: ../src/views/view.c:1217 +#: ../src/views/view.c:1376 msgid "right click+drag" msgstr "klikim djathtas+tërheqje mausi" -#: ../src/views/view.c:1237 +#: ../src/views/view.c:1398 msgid "darktable - accels window" msgstr "darktable - dritarja e shkurtoreve" -#: ../src/views/view.c:1285 +#: ../src/views/view.c:1447 msgid "switch to a classic window which will stay open after key release" msgstr "kaloni te dritarja klasike, e cila qëndron hapur kur e lëshoni tastin" #. we add the mouse actions too -#: ../src/views/view.c:1344 +#: ../src/views/view.c:1514 msgid "mouse actions" msgstr "veprimet me maus" diff -Nru darktable-4.4.2/po/tr.po darktable-4.6.1/po/tr.po --- darktable-4.4.2/po/tr.po 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/po/tr.po 2024-02-16 17:31:09.000000000 +0000 @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: darktable\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-31 13:24+0200\n" -"PO-Revision-Date: 2023-07-03 19:01+0300\n" +"POT-Creation-Date: 2023-11-30 19:32+0100\n" +"PO-Revision-Date: 2023-12-28 13:20+0300\n" "Last-Translator: Serkan ÖNDER <serkanonder@outlook.com>\n" "Language-Team: \n" "Language: tr\n" @@ -20,272 +20,237 @@ "X-Language: tr_TR\n" "X-Source-Language: C\n" -#: ../build/bin/conf_gen.h:172 ../build/bin/preferences_gen.h:7632 +#: ../build/bin/conf_gen.h:174 msgctxt "preferences" msgid "first instance" msgstr "ilk örnek" -#: ../build/bin/conf_gen.h:173 ../build/bin/preferences_gen.h:7637 -#: ../build/bin/preferences_gen.h:7656 +#: ../build/bin/conf_gen.h:175 ../build/bin/preferences_gen.h:7922 msgctxt "preferences" msgid "last instance" msgstr "son örnek" -#: ../build/bin/conf_gen.h:240 ../build/bin/conf_gen.h:346 -#: ../build/bin/conf_gen.h:356 ../build/bin/conf_gen.h:1186 -#: ../build/bin/conf_gen.h:1202 ../build/bin/preferences_gen.h:4137 -#: ../build/bin/preferences_gen.h:4156 ../build/bin/preferences_gen.h:4232 -#: ../build/bin/preferences_gen.h:6706 ../build/bin/preferences_gen.h:6834 -#: ../build/bin/preferences_gen.h:6899 +#: ../build/bin/conf_gen.h:252 ../build/bin/conf_gen.h:352 +#: ../build/bin/conf_gen.h:362 ../build/bin/conf_gen.h:1239 +#: ../build/bin/conf_gen.h:1255 ../build/bin/conf_gen.h:1275 +#: ../build/bin/preferences_gen.h:4747 ../build/bin/preferences_gen.h:4885 msgctxt "preferences" msgid "never" msgstr "asla" -#: ../build/bin/conf_gen.h:241 ../build/bin/preferences_gen.h:6711 +#: ../build/bin/conf_gen.h:253 msgctxt "preferences" msgid "once a month" msgstr "ayda bir" -#: ../build/bin/conf_gen.h:242 ../build/bin/preferences_gen.h:6716 -#: ../build/bin/preferences_gen.h:6745 +#: ../build/bin/conf_gen.h:254 ../build/bin/preferences_gen.h:7138 msgctxt "preferences" msgid "once a week" msgstr "haftada bir" -#: ../build/bin/conf_gen.h:243 ../build/bin/preferences_gen.h:6721 +#: ../build/bin/conf_gen.h:255 msgctxt "preferences" msgid "once a day" msgstr "günde bir" -#: ../build/bin/conf_gen.h:244 ../build/bin/preferences_gen.h:6726 +#: ../build/bin/conf_gen.h:256 msgctxt "preferences" msgid "on close" msgstr "kapanışta" -#: ../build/bin/conf_gen.h:280 ../build/bin/conf_gen.h:1179 -#: ../build/bin/conf_gen.h:1195 ../build/bin/preferences_gen.h:4102 -#: ../build/bin/preferences_gen.h:4197 ../build/bin/preferences_gen.h:5748 +#: ../build/bin/conf_gen.h:292 ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1248 ../build/bin/conf_gen.h:1276 msgctxt "preferences" msgid "small" msgstr "küçük" -#: ../build/bin/conf_gen.h:281 ../build/bin/conf_gen.h:393 -#: ../build/bin/preferences_gen.h:5753 ../build/bin/preferences_gen.h:5782 -#: ../build/bin/preferences_gen.h:5969 ../build/bin/preferences_gen.h:5998 +#: ../build/bin/conf_gen.h:293 ../build/bin/conf_gen.h:405 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6223 msgctxt "preferences" msgid "default" msgstr "öntanımlı" -#: ../build/bin/conf_gen.h:282 ../build/bin/conf_gen.h:2814 -#: ../build/bin/preferences_gen.h:5758 +#: ../build/bin/conf_gen.h:294 ../build/bin/conf_gen.h:2904 msgctxt "preferences" msgid "large" msgstr "büyük" -#: ../build/bin/conf_gen.h:283 ../build/bin/preferences_gen.h:5763 +#: ../build/bin/conf_gen.h:295 msgctxt "preferences" msgid "unrestricted" msgstr "sınırsız" -#: ../build/bin/conf_gen.h:347 ../build/bin/preferences_gen.h:6839 +#: ../build/bin/conf_gen.h:353 msgctxt "preferences" msgid "after edit" msgstr "düzenlemeden sonra" -#: ../build/bin/conf_gen.h:348 ../build/bin/preferences_gen.h:6844 -#: ../build/bin/preferences_gen.h:6863 +#: ../build/bin/conf_gen.h:354 ../build/bin/preferences_gen.h:7224 msgctxt "preferences" msgid "on import" msgstr "içe aktarımda" -#: ../build/bin/conf_gen.h:357 ../build/bin/conf_gen.h:1178 -#: ../build/bin/conf_gen.h:1194 ../build/bin/conf_gen.h:3214 -#: ../build/bin/preferences_gen.h:4097 ../build/bin/preferences_gen.h:4192 -#: ../build/bin/preferences_gen.h:5112 ../build/bin/preferences_gen.h:5166 -#: ../build/bin/preferences_gen.h:6904 +#: ../build/bin/conf_gen.h:363 ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1247 ../build/bin/conf_gen.h:3300 +#: ../build/bin/preferences_gen.h:5644 msgctxt "preferences" msgid "always" msgstr "her zaman" -#: ../build/bin/conf_gen.h:358 ../build/bin/preferences_gen.h:6909 -#: ../build/bin/preferences_gen.h:6928 +#: ../build/bin/conf_gen.h:364 ../build/bin/preferences_gen.h:7259 msgctxt "preferences" msgid "only large entries" msgstr "sadece büyük girişler" -#: ../build/bin/conf_gen.h:378 ../build/bin/preferences_gen.h:8069 +#: ../build/bin/conf_gen.h:390 msgctxt "preferences" msgid "sensitive" msgstr "duyarlı" -#: ../build/bin/conf_gen.h:379 ../build/bin/preferences_gen.h:8074 -#: ../build/bin/preferences_gen.h:8093 +#: ../build/bin/conf_gen.h:391 ../build/bin/preferences_gen.h:8133 msgctxt "preferences" msgid "insensitive" msgstr "duyarsız" -#: ../build/bin/conf_gen.h:394 ../build/bin/preferences_gen.h:5974 +#: ../build/bin/conf_gen.h:406 msgctxt "preferences" msgid "multiple GPUs" msgstr "çoklu GPUs" -#: ../build/bin/conf_gen.h:395 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/conf_gen.h:407 msgctxt "preferences" msgid "very fast GPU" msgstr "aşırı hızlı GPU" -#: ../build/bin/conf_gen.h:403 ../build/bin/preferences_gen.h:6040 -#: ../build/bin/preferences_gen.h:6074 +#: ../build/bin/conf_gen.h:755 msgctxt "preferences" -msgid "nothing" -msgstr "hiçbir şey" - -#: ../build/bin/conf_gen.h:404 ../build/bin/preferences_gen.h:6045 -msgctxt "preferences" -msgid "memory size" -msgstr "bellek boyutu" - -#: ../build/bin/conf_gen.h:405 ../build/bin/preferences_gen.h:6050 -msgctxt "preferences" -msgid "memory transfer" -msgstr "bellek aktarımı" - -#: ../build/bin/conf_gen.h:406 ../build/bin/preferences_gen.h:6055 -msgctxt "preferences" -msgid "memory size and transfer" -msgstr "bellek boyutu ve aktarım" - -#: ../build/bin/conf_gen.h:706 ../build/bin/preferences_gen.h:8257 -#: ../build/bin/preferences_gen.h:8281 -msgctxt "preferences" -msgid "id" -msgstr "kimlik" +msgid "import time" +msgstr "içe aktarma zamanı" -#: ../build/bin/conf_gen.h:707 ../build/bin/preferences_gen.h:8262 +#: ../build/bin/conf_gen.h:756 msgctxt "preferences" -msgid "folder" -msgstr "klasör" +msgid "folder name" +msgstr "klasör adı" -#: ../build/bin/conf_gen.h:721 +#: ../build/bin/conf_gen.h:770 msgctxt "preferences" msgid "RGB" msgstr "RGB" -#: ../build/bin/conf_gen.h:722 +#: ../build/bin/conf_gen.h:771 msgctxt "preferences" msgid "Lab" msgstr "Laboratuvar" -#: ../build/bin/conf_gen.h:723 +#: ../build/bin/conf_gen.h:772 msgctxt "preferences" msgid "LCh" msgstr "LCh" -#: ../build/bin/conf_gen.h:724 +#: ../build/bin/conf_gen.h:773 msgctxt "preferences" msgid "HSL" msgstr "HSL" -#: ../build/bin/conf_gen.h:725 +#: ../build/bin/conf_gen.h:774 msgctxt "preferences" msgid "Hex" msgstr "Hex" -#: ../build/bin/conf_gen.h:726 ../build/bin/conf_gen.h:1830 -#: ../build/bin/conf_gen.h:2488 ../build/bin/conf_gen.h:2790 -#: ../build/bin/conf_gen.h:3044 ../build/bin/preferences_gen.h:5577 -#: ../build/bin/preferences_gen.h:6561 +#: ../build/bin/conf_gen.h:775 ../build/bin/conf_gen.h:1916 +#: ../build/bin/conf_gen.h:2578 ../build/bin/conf_gen.h:2880 +#: ../build/bin/conf_gen.h:3136 msgctxt "preferences" msgid "none" msgstr "yok" -#: ../build/bin/conf_gen.h:734 +#: ../build/bin/conf_gen.h:783 msgctxt "preferences" msgid "mean" msgstr "ortalama" -#: ../build/bin/conf_gen.h:735 +#: ../build/bin/conf_gen.h:784 msgctxt "preferences" msgid "min" msgstr "asg" -#: ../build/bin/conf_gen.h:736 +#: ../build/bin/conf_gen.h:785 msgctxt "preferences" msgid "max" msgstr "azm" -#: ../build/bin/conf_gen.h:924 +#: ../build/bin/conf_gen.h:973 msgid "select only new pictures" msgstr "sadece yeni resimleri seç" -#: ../build/bin/conf_gen.h:925 +#: ../build/bin/conf_gen.h:974 msgid "only select images that have not already been imported" msgstr "yalnızca henüz içe aktarılmamış görüntüleri seçin" -#: ../build/bin/conf_gen.h:930 -msgid "ignore JPEG images" -msgstr "JPEG görüntülerini yoksay" +#: ../build/bin/conf_gen.h:979 +msgid "ignore non-raw images" +msgstr "ham olmayan görselleri yoksay" -#: ../build/bin/conf_gen.h:931 +#: ../build/bin/conf_gen.h:980 msgid "" -"when having raw+JPEG images together in one directory it makes no sense to " -"import both. with this flag one can ignore all JPEGs found." +"if enabled, only raw files will be allowed to import. non-raw files will not " +"be visible in the dialog and will not be imported." msgstr "" -"raw+JPEG görüntüleri bir dizinde bir arada bulundururken, her ikisini de içe " -"aktarmanın bir anlamı yoktur. bu işaretle bulunan tüm JPEG'ler göz ardı " -"edilebilir." +"etkinleştirilirse yalnızca ham dosyaların içe aktarılmasına izin verilir. " +"ham olmayan dosyalar iletişim kutusunda görünmeyecek ve içe " +"aktarılmayacaktır." -#: ../build/bin/conf_gen.h:936 +#: ../build/bin/conf_gen.h:985 msgid "apply metadata" msgstr "meta verileri uygula" -#: ../build/bin/conf_gen.h:937 +#: ../build/bin/conf_gen.h:986 msgid "apply some metadata to all newly imported images." msgstr "yeni içe aktarılan tüm resimlere bazı meta veriler uygulayın." -#: ../build/bin/conf_gen.h:942 +#: ../build/bin/conf_gen.h:991 msgid "recursive directory" msgstr "özyinelemeli dizin" -#: ../build/bin/conf_gen.h:943 +#: ../build/bin/conf_gen.h:992 msgid "recursive directory traversal when importing filmrolls" msgstr "film rulolarını içe aktarırken özyinelemeli dizin geçişi" -#: ../build/bin/conf_gen.h:948 +#: ../build/bin/conf_gen.h:997 msgid "creator to be applied when importing" msgstr "içe aktarırken uygulanacak içerik üreticisi" -#: ../build/bin/conf_gen.h:954 +#: ../build/bin/conf_gen.h:1003 msgid "publisher to be applied when importing" msgstr "içe aktarırken uygulanacak yayıncı" -#: ../build/bin/conf_gen.h:960 +#: ../build/bin/conf_gen.h:1009 msgid "rights to be applied when importing" msgstr "içe aktarırken uygulanacak haklar" -#: ../build/bin/conf_gen.h:966 +#: ../build/bin/conf_gen.h:1015 msgid "comma separated tags to be applied when importing" msgstr "içe aktarırken uygulanacak virgülle ayrılmış etiketler" -#: ../build/bin/conf_gen.h:972 +#: ../build/bin/conf_gen.h:1021 msgid "import tags from XMP" msgstr "etiketleri XMP'den içe aktar" -#: ../build/bin/conf_gen.h:998 +#: ../build/bin/conf_gen.h:1051 msgid "initial rating" msgstr "ilk derecelendirme" -#: ../build/bin/conf_gen.h:999 +#: ../build/bin/conf_gen.h:1052 msgid "initial star rating for all images when importing a filmroll" msgstr "" "bir film rulosunu içe aktarırken tüm görüntüler için ilk yıldız " "derecelendirmesi" -#: ../build/bin/conf_gen.h:1004 +#: ../build/bin/conf_gen.h:1057 msgid "ignore EXIF rating" msgstr "EXIF derecelendirmesini yoksay" -#: ../build/bin/conf_gen.h:1005 +#: ../build/bin/conf_gen.h:1058 msgid "" "ignore EXIF rating. if not set and EXIF rating is found, it overrides " "'initial rating'" @@ -293,19 +258,19 @@ "EXIF derecelendirmesini dikkate almayın. ayarlanmazsa ve EXIF derecesi " "bulunursa, 'ilk derecelendirmeyi' geçersiz kılar" -#: ../build/bin/conf_gen.h:1010 +#: ../build/bin/conf_gen.h:1063 msgid "import job" msgstr "çalışmayı içe aktar" -#: ../build/bin/conf_gen.h:1011 +#: ../build/bin/conf_gen.h:1064 msgid "name of the import job" msgstr "içe aktarma işinin adı" -#: ../build/bin/conf_gen.h:1016 +#: ../build/bin/conf_gen.h:1069 msgid "override today's date" msgstr "bugünün tarihini geçersiz kıl" -#: ../build/bin/conf_gen.h:1017 +#: ../build/bin/conf_gen.h:1070 msgid "" "type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override " "the current date/time used when expanding variables:\n" @@ -317,162 +282,159 @@ "$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS), $(MSEC).\n" "aksi halde alanı boş bırakın" -#: ../build/bin/conf_gen.h:1022 +#: ../build/bin/conf_gen.h:1075 msgid "keep this window open" msgstr "bu pencereyi açık tut" -#: ../build/bin/conf_gen.h:1023 +#: ../build/bin/conf_gen.h:1076 msgid "keep this window open to run several imports" msgstr "birkaç içe aktarmayı çalıştırmak için bu pencereyi açık tutun" -#: ../build/bin/conf_gen.h:1180 ../build/bin/conf_gen.h:1196 -#: ../build/bin/preferences_gen.h:4107 ../build/bin/preferences_gen.h:4202 +#: ../build/bin/conf_gen.h:1233 ../build/bin/conf_gen.h:1249 +#: ../build/bin/conf_gen.h:1277 msgctxt "preferences" msgid "VGA" msgstr "VGA" -#: ../build/bin/conf_gen.h:1181 ../build/bin/conf_gen.h:1197 -#: ../build/bin/preferences_gen.h:4112 ../build/bin/preferences_gen.h:4207 -#: ../build/bin/preferences_gen.h:4251 +#: ../build/bin/conf_gen.h:1234 ../build/bin/conf_gen.h:1250 +#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4782 msgctxt "preferences" msgid "720p" msgstr "720p" -#: ../build/bin/conf_gen.h:1182 ../build/bin/conf_gen.h:1198 -#: ../build/bin/preferences_gen.h:4117 ../build/bin/preferences_gen.h:4212 +#: ../build/bin/conf_gen.h:1235 ../build/bin/conf_gen.h:1251 +#: ../build/bin/conf_gen.h:1279 msgctxt "preferences" msgid "1080p" msgstr "1080p" -#: ../build/bin/conf_gen.h:1183 ../build/bin/conf_gen.h:1199 -#: ../build/bin/preferences_gen.h:4122 ../build/bin/preferences_gen.h:4217 +#: ../build/bin/conf_gen.h:1236 ../build/bin/conf_gen.h:1252 +#: ../build/bin/conf_gen.h:1280 msgctxt "preferences" msgid "WQXGA" msgstr "WQXGA" -#: ../build/bin/conf_gen.h:1184 ../build/bin/conf_gen.h:1200 -#: ../build/bin/preferences_gen.h:4127 ../build/bin/preferences_gen.h:4222 +#: ../build/bin/conf_gen.h:1237 ../build/bin/conf_gen.h:1253 +#: ../build/bin/conf_gen.h:1281 msgctxt "preferences" msgid "4K" msgstr "4K" -#: ../build/bin/conf_gen.h:1185 ../build/bin/conf_gen.h:1201 -#: ../build/bin/preferences_gen.h:4132 ../build/bin/preferences_gen.h:4227 +#: ../build/bin/conf_gen.h:1238 ../build/bin/conf_gen.h:1254 +#: ../build/bin/conf_gen.h:1282 msgctxt "preferences" msgid "5K" msgstr "5K" -#: ../build/bin/conf_gen.h:1228 +#: ../build/bin/conf_gen.h:1314 msgctxt "preferences" msgid "off" msgstr "kapalı" -#: ../build/bin/conf_gen.h:1229 +#: ../build/bin/conf_gen.h:1315 msgctxt "preferences" msgid "hardness (relative)" msgstr "sertlik (göreceli)" -#: ../build/bin/conf_gen.h:1230 +#: ../build/bin/conf_gen.h:1316 msgctxt "preferences" msgid "hardness (absolute)" msgstr "sertlik (mutlak)" -#: ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1317 msgctxt "preferences" msgid "opacity (relative)" msgstr "opaklık (göreceli)" -#: ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1318 msgctxt "preferences" msgid "opacity (absolute)" msgstr "opaklık (mutlak)" -#: ../build/bin/conf_gen.h:1233 +#: ../build/bin/conf_gen.h:1319 msgctxt "preferences" msgid "brush size (relative)" msgstr "fırça boyutu (göreceli)" -#: ../build/bin/conf_gen.h:1241 +#: ../build/bin/conf_gen.h:1327 msgctxt "preferences" msgid "low" msgstr "düşük" -#: ../build/bin/conf_gen.h:1242 +#: ../build/bin/conf_gen.h:1328 msgctxt "preferences" msgid "medium" msgstr "orta" -#: ../build/bin/conf_gen.h:1243 +#: ../build/bin/conf_gen.h:1329 msgctxt "preferences" msgid "high" msgstr "yüksek" -#: ../build/bin/conf_gen.h:1263 ../build/bin/preferences_gen.h:4836 -#: ../build/bin/preferences_gen.h:4860 +#: ../build/bin/conf_gen.h:1349 ../build/bin/preferences_gen.h:5405 msgctxt "preferences" msgid "false color" msgstr "yanlış renk" -#: ../build/bin/conf_gen.h:1264 ../build/bin/preferences_gen.h:4841 +#: ../build/bin/conf_gen.h:1350 msgctxt "preferences" msgid "grayscale" msgstr "gri tonlu" -#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4567 +#: ../build/bin/conf_gen.h:1364 msgctxt "preferences" msgid "top left" msgstr "sol üst" -#: ../build/bin/conf_gen.h:1279 ../build/bin/preferences_gen.h:4572 +#: ../build/bin/conf_gen.h:1365 msgctxt "preferences" msgid "top right" msgstr "sağ üst" -#: ../build/bin/conf_gen.h:1280 ../build/bin/preferences_gen.h:4577 +#: ../build/bin/conf_gen.h:1366 msgctxt "preferences" msgid "top center" msgstr "üst merkez" -#: ../build/bin/conf_gen.h:1281 ../build/bin/preferences_gen.h:4582 -#: ../build/bin/preferences_gen.h:4606 +#: ../build/bin/conf_gen.h:1367 ../build/bin/preferences_gen.h:5217 msgctxt "preferences" msgid "bottom" msgstr "alt" -#: ../build/bin/conf_gen.h:1282 ../build/bin/preferences_gen.h:4587 +#: ../build/bin/conf_gen.h:1368 msgctxt "preferences" msgid "hidden" msgstr "gizli" -#: ../build/bin/conf_gen.h:1792 +#: ../build/bin/conf_gen.h:1878 msgid "show OSD" msgstr "OSD'yi göster" -#: ../build/bin/conf_gen.h:1793 +#: ../build/bin/conf_gen.h:1879 msgid "toggle the visibility of the map overlays" msgstr "harita bindirmelerinin görünürlüğünü aç/kapat" -#: ../build/bin/conf_gen.h:1798 ../src/libs/map_settings.c:146 +#: ../build/bin/conf_gen.h:1884 ../src/libs/map_settings.c:119 msgid "filtered images" msgstr "filtrelenmiş görüntüler" -#: ../build/bin/conf_gen.h:1799 +#: ../build/bin/conf_gen.h:1885 msgid "when set limit the images drawn to the current filmstrip" msgstr "ayarlandığında geçerli film şeridine çizilen görüntüleri sınırla" -#: ../build/bin/conf_gen.h:1806 +#: ../build/bin/conf_gen.h:1892 msgid "max images" msgstr "azm görüntü" -#: ../build/bin/conf_gen.h:1807 +#: ../build/bin/conf_gen.h:1893 msgid "the maximum number of image thumbnails drawn on the map" msgstr "haritada çizilen azami küçük resim sayısı" -#: ../build/bin/conf_gen.h:1814 +#: ../build/bin/conf_gen.h:1900 msgid "group size factor" msgstr "grup büyüklüğü etkeni" -#: ../build/bin/conf_gen.h:1815 +#: ../build/bin/conf_gen.h:1901 msgid "" "increase or decrease the spatial size of images groups on the map. can " "influence the calculation time" @@ -480,11 +442,11 @@ "haritadaki görüntü gruplarının uzamsal boyutunu artırın veya azaltın. " "hesaplama süresini etkileyebilir" -#: ../build/bin/conf_gen.h:1822 +#: ../build/bin/conf_gen.h:1908 msgid "min images per group" msgstr "grup başına asg görüntü" -#: ../build/bin/conf_gen.h:1823 +#: ../build/bin/conf_gen.h:1909 msgid "" "the minimum number of images to set up an images group. can influence the " "calculation time." @@ -492,21 +454,21 @@ "bir görüntü grubu oluşturmak için asgari görüntü sayısı. hesaplama süresini " "etkileyebilir." -#: ../build/bin/conf_gen.h:1828 +#: ../build/bin/conf_gen.h:1914 msgctxt "preferences" msgid "thumbnail" msgstr "küçük resim" -#: ../build/bin/conf_gen.h:1829 +#: ../build/bin/conf_gen.h:1915 msgctxt "preferences" msgid "count" msgstr "sayı" -#: ../build/bin/conf_gen.h:1832 ../src/libs/map_settings.c:159 +#: ../build/bin/conf_gen.h:1918 msgid "thumbnail display" msgstr "küçük resim ekranı" -#: ../build/bin/conf_gen.h:1833 +#: ../build/bin/conf_gen.h:1919 msgid "" "three options are available: images thumbnails, only the count of images of " "the group or nothing" @@ -514,267 +476,258 @@ "üç seçenek mevcuttur: resimlerin küçük resimleri, yalnızca grubun resim " "sayısı veya hiçbir şey" -#: ../build/bin/conf_gen.h:1844 +#: ../build/bin/conf_gen.h:1930 msgid "max polygon points" msgstr "azami çokgen noktaları" -#: ../build/bin/conf_gen.h:1845 +#: ../build/bin/conf_gen.h:1931 msgid "" "limit the number of points imported with polygon in find location module" msgstr "" "konum bulma modülünde çokgen ile içe aktarılan noktaların sayısını sınırlayın" -#: ../build/bin/conf_gen.h:2135 ../build/bin/preferences_gen.h:4722 -#: ../build/bin/preferences_gen.h:4756 +#: ../build/bin/conf_gen.h:2221 ../build/bin/preferences_gen.h:5329 msgctxt "preferences" msgid "original" msgstr "özgün" -#: ../build/bin/conf_gen.h:2136 ../build/bin/preferences_gen.h:4727 +#: ../build/bin/conf_gen.h:2222 msgctxt "preferences" msgid "to 1/2" msgstr "1/2'ye kadar" -#: ../build/bin/conf_gen.h:2137 ../build/bin/preferences_gen.h:4732 +#: ../build/bin/conf_gen.h:2223 msgctxt "preferences" msgid "to 1/3" msgstr "1/3'e kadar" -#: ../build/bin/conf_gen.h:2138 ../build/bin/preferences_gen.h:4737 +#: ../build/bin/conf_gen.h:2224 msgctxt "preferences" msgid "to 1/4" msgstr "1/4'e kadar" -#: ../build/bin/conf_gen.h:2152 ../build/bin/conf_gen.h:2162 -#: ../build/bin/preferences_gen.h:5384 ../build/bin/preferences_gen.h:5449 +#: ../build/bin/conf_gen.h:2244 ../build/bin/conf_gen.h:2254 msgctxt "preferences" msgid "bilinear" msgstr "çift doğrusal" -#: ../build/bin/conf_gen.h:2153 ../build/bin/conf_gen.h:2163 -#: ../build/bin/preferences_gen.h:5389 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5454 +#: ../build/bin/conf_gen.h:2245 ../build/bin/conf_gen.h:2255 +#: ../build/bin/preferences_gen.h:5847 msgctxt "preferences" msgid "bicubic" msgstr "çift kübik" -#: ../build/bin/conf_gen.h:2154 ../build/bin/conf_gen.h:2164 -#: ../build/bin/preferences_gen.h:5394 ../build/bin/preferences_gen.h:5459 +#: ../build/bin/conf_gen.h:2246 ../build/bin/conf_gen.h:2256 msgctxt "preferences" msgid "lanczos2" msgstr "lanczos2" -#: ../build/bin/conf_gen.h:2165 ../build/bin/preferences_gen.h:5464 -#: ../build/bin/preferences_gen.h:5483 +#: ../build/bin/conf_gen.h:2257 ../build/bin/preferences_gen.h:5882 msgctxt "preferences" msgid "lanczos3" msgstr "lanczos3" -#: ../build/bin/conf_gen.h:2487 ../build/bin/conf_gen.h:3217 -#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:6556 -#: ../build/bin/preferences_gen.h:6592 +#: ../build/bin/conf_gen.h:2577 ../build/bin/conf_gen.h:3303 +#: ../build/bin/preferences_gen.h:7032 msgctxt "preferences" msgid "auto" msgstr "otomatik" -#: ../build/bin/conf_gen.h:2489 ../build/bin/preferences_gen.h:6566 +#: ../build/bin/conf_gen.h:2579 msgctxt "preferences" msgid "libsecret" msgstr "kitaplık" -#: ../build/bin/conf_gen.h:2490 ../build/bin/preferences_gen.h:6572 +#: ../build/bin/conf_gen.h:2580 msgctxt "preferences" msgid "kwallet" msgstr "kwallet" -#: ../build/bin/conf_gen.h:2700 +#: ../build/bin/conf_gen.h:2790 msgctxt "preferences" msgid "vectorscope" msgstr "vektör kapsamı" -#: ../build/bin/conf_gen.h:2701 +#: ../build/bin/conf_gen.h:2791 msgctxt "preferences" msgid "waveform" msgstr "dalga şekli" -#: ../build/bin/conf_gen.h:2702 +#: ../build/bin/conf_gen.h:2792 msgctxt "preferences" msgid "RGB parade" msgstr "RGB geçişi" -#: ../build/bin/conf_gen.h:2703 +#: ../build/bin/conf_gen.h:2793 msgctxt "preferences" msgid "histogram" msgstr "histogram" -#: ../build/bin/conf_gen.h:2711 ../build/bin/preferences_gen.h:7264 +#: ../build/bin/conf_gen.h:2801 msgctxt "preferences" msgid "left" msgstr "sol" -#: ../build/bin/conf_gen.h:2712 ../build/bin/preferences_gen.h:7269 -#: ../build/bin/preferences_gen.h:7288 +#: ../build/bin/conf_gen.h:2802 ../build/bin/preferences_gen.h:7619 msgctxt "preferences" msgid "right" msgstr "sağ" -#: ../build/bin/conf_gen.h:2720 ../build/bin/conf_gen.h:2757 +#: ../build/bin/conf_gen.h:2810 ../build/bin/conf_gen.h:2847 msgctxt "preferences" msgid "logarithmic" msgstr "logaritmik" -#: ../build/bin/conf_gen.h:2721 ../build/bin/conf_gen.h:2758 +#: ../build/bin/conf_gen.h:2811 ../build/bin/conf_gen.h:2848 msgctxt "preferences" msgid "linear" msgstr "doğrusal" -#: ../build/bin/conf_gen.h:2729 +#: ../build/bin/conf_gen.h:2819 msgctxt "preferences" msgid "horizontal" msgstr "yatay" -#: ../build/bin/conf_gen.h:2730 +#: ../build/bin/conf_gen.h:2820 msgctxt "preferences" msgid "vertical" msgstr "dikey" -#: ../build/bin/conf_gen.h:2738 +#: ../build/bin/conf_gen.h:2828 msgctxt "preferences" msgid "overlaid" msgstr "üst üste bindirilmiş" -#: ../build/bin/conf_gen.h:2739 +#: ../build/bin/conf_gen.h:2829 msgctxt "preferences" msgid "parade" msgstr "geçiş" -#: ../build/bin/conf_gen.h:2747 +#: ../build/bin/conf_gen.h:2837 msgctxt "preferences" msgid "u*v*" msgstr "u*v*" -#: ../build/bin/conf_gen.h:2748 +#: ../build/bin/conf_gen.h:2838 msgctxt "preferences" msgid "AzBz" msgstr "AzBz" -#: ../build/bin/conf_gen.h:2749 +#: ../build/bin/conf_gen.h:2839 msgctxt "preferences" msgid "RYB" msgstr "RYB" -#: ../build/bin/conf_gen.h:2791 +#: ../build/bin/conf_gen.h:2881 msgctxt "preferences" msgid "monochromatic" msgstr "tek renkli" -#: ../build/bin/conf_gen.h:2792 +#: ../build/bin/conf_gen.h:2882 msgctxt "preferences" msgid "analogous" msgstr "benzer" -#: ../build/bin/conf_gen.h:2793 +#: ../build/bin/conf_gen.h:2883 msgctxt "preferences" msgid "analogous complementary" msgstr "benzer tamamlayıcı" -#: ../build/bin/conf_gen.h:2794 +#: ../build/bin/conf_gen.h:2884 msgctxt "preferences" msgid "complementary" msgstr "tamamlayıcı" -#: ../build/bin/conf_gen.h:2795 +#: ../build/bin/conf_gen.h:2885 msgctxt "preferences" msgid "split complementary" msgstr "bölünmüş tamamlayıcı" -#: ../build/bin/conf_gen.h:2796 +#: ../build/bin/conf_gen.h:2886 msgctxt "preferences" msgid "dyad" msgstr "ikili" -#: ../build/bin/conf_gen.h:2797 +#: ../build/bin/conf_gen.h:2887 msgctxt "preferences" msgid "triad" msgstr "üçlü" -#: ../build/bin/conf_gen.h:2798 +#: ../build/bin/conf_gen.h:2888 msgctxt "preferences" msgid "tetrad" msgstr "dörtlü" -#: ../build/bin/conf_gen.h:2799 +#: ../build/bin/conf_gen.h:2889 msgctxt "preferences" msgid "square" msgstr "kare" -#: ../build/bin/conf_gen.h:2813 +#: ../build/bin/conf_gen.h:2903 msgctxt "preferences" msgid "normal" msgstr "normal" -#: ../build/bin/conf_gen.h:2815 +#: ../build/bin/conf_gen.h:2905 msgctxt "preferences" msgid "narrow" msgstr "dar" -#: ../build/bin/conf_gen.h:2816 +#: ../build/bin/conf_gen.h:2906 msgctxt "preferences" msgid "line" msgstr "satır" -#: ../build/bin/conf_gen.h:2956 +#: ../build/bin/conf_gen.h:3046 msgctxt "preferences" msgid "mm" msgstr "mm" -#: ../build/bin/conf_gen.h:2957 +#: ../build/bin/conf_gen.h:3047 msgctxt "preferences" msgid "cm" msgstr "cm" -#: ../build/bin/conf_gen.h:2958 +#: ../build/bin/conf_gen.h:3048 msgctxt "preferences" msgid "inch" msgstr "inç" -#: ../build/bin/conf_gen.h:3003 ../build/bin/preferences_gen.h:7324 -#: ../build/bin/preferences_gen.h:7353 +#: ../build/bin/conf_gen.h:3093 ../build/bin/preferences_gen.h:7654 msgctxt "preferences" msgid "all" msgstr "tümü" -#: ../build/bin/conf_gen.h:3004 ../build/bin/preferences_gen.h:7329 +#: ../build/bin/conf_gen.h:3094 msgctxt "preferences" msgid "xatom" msgstr "xatom" -#: ../build/bin/conf_gen.h:3005 ../build/bin/preferences_gen.h:7334 +#: ../build/bin/conf_gen.h:3095 msgctxt "preferences" msgid "colord" msgstr "renkli" -#: ../build/bin/conf_gen.h:3041 ../build/bin/preferences_gen.h:5562 -#: ../build/bin/preferences_gen.h:5596 +#: ../build/bin/conf_gen.h:3133 ../build/bin/preferences_gen.h:5958 msgctxt "preferences" msgid "scene-referred (filmic)" msgstr "sahne referanslı (filmsel)" -#: ../build/bin/conf_gen.h:3042 ../build/bin/preferences_gen.h:5567 +#: ../build/bin/conf_gen.h:3134 msgctxt "preferences" msgid "scene-referred (sigmoid)" msgstr "sahne referanslı (sigmoid)" -#: ../build/bin/conf_gen.h:3043 ../build/bin/preferences_gen.h:5572 +#: ../build/bin/conf_gen.h:3135 msgctxt "preferences" msgid "display-referred (legacy)" msgstr "görüntüleme referanslı (eski)" -#: ../build/bin/conf_gen.h:3144 +#: ../build/bin/conf_gen.h:3230 msgid "camera time zone" msgstr "kamera saat dilimi" -#: ../build/bin/conf_gen.h:3145 +#: ../build/bin/conf_gen.h:3231 msgid "" "most cameras don't store the time zone in EXIF. give the correct time zone " "so the GPX data can be correctly matched" @@ -782,214 +735,274 @@ "çoğu kamera saat dilimini EXIF'te saklamaz. GPX verilerinin doğru şekilde " "eşleştirilebilmesi için doğru saat dilimini verin" -#: ../build/bin/conf_gen.h:3156 +#: ../build/bin/conf_gen.h:3242 msgctxt "preferences" msgid "no color" msgstr "renk yok" -#: ../build/bin/conf_gen.h:3157 +#: ../build/bin/conf_gen.h:3243 msgctxt "preferences" msgid "illuminant color" msgstr "aydınlatıcı renk" -#: ../build/bin/conf_gen.h:3158 +#: ../build/bin/conf_gen.h:3244 msgctxt "preferences" msgid "effect emulation" msgstr "efekt öykünmesi" -#: ../build/bin/conf_gen.h:3204 +#: ../build/bin/conf_gen.h:3290 msgctxt "preferences" msgid "list" msgstr "liste" -#: ../build/bin/conf_gen.h:3205 +#: ../build/bin/conf_gen.h:3291 msgctxt "preferences" msgid "tabs" msgstr "sekme" -#: ../build/bin/conf_gen.h:3206 +#: ../build/bin/conf_gen.h:3292 msgctxt "preferences" msgid "columns" msgstr "sütunlar" -#: ../build/bin/conf_gen.h:3215 ../build/bin/preferences_gen.h:5117 +#: ../build/bin/conf_gen.h:3301 msgctxt "preferences" msgid "active" msgstr "etkin" -#: ../build/bin/conf_gen.h:3216 ../build/bin/preferences_gen.h:5122 +#: ../build/bin/conf_gen.h:3302 msgctxt "preferences" msgid "dim" msgstr "loş" -#: ../build/bin/conf_gen.h:3218 ../build/bin/preferences_gen.h:5132 +#: ../build/bin/conf_gen.h:3304 msgctxt "preferences" msgid "fade" msgstr "solma" -#: ../build/bin/conf_gen.h:3219 ../build/bin/preferences_gen.h:5137 +#: ../build/bin/conf_gen.h:3305 msgctxt "preferences" msgid "fit" msgstr "sığdır" -#: ../build/bin/conf_gen.h:3220 ../build/bin/preferences_gen.h:5142 +#: ../build/bin/conf_gen.h:3306 msgctxt "preferences" msgid "smooth" msgstr "pürüzsüz" -#: ../build/bin/conf_gen.h:3221 ../build/bin/preferences_gen.h:5147 +#: ../build/bin/conf_gen.h:3307 msgctxt "preferences" msgid "glide" msgstr "kayma" -#: ../build/bin/preferences_gen.h:81 ../build/bin/preferences_gen.h:3823 -#: ../build/bin/preferences_gen.h:3859 ../build/bin/preferences_gen.h:3895 -#: ../build/bin/preferences_gen.h:3931 ../build/bin/preferences_gen.h:3967 -#: ../build/bin/preferences_gen.h:4003 ../build/bin/preferences_gen.h:4039 -#: ../build/bin/preferences_gen.h:4083 ../build/bin/preferences_gen.h:4178 -#: ../build/bin/preferences_gen.h:4273 ../build/bin/preferences_gen.h:4313 -#: ../build/bin/preferences_gen.h:4356 ../build/bin/preferences_gen.h:4437 -#: ../build/bin/preferences_gen.h:4473 ../build/bin/preferences_gen.h:4510 -#: ../build/bin/preferences_gen.h:4553 ../build/bin/preferences_gen.h:4627 -#: ../build/bin/preferences_gen.h:4672 ../build/bin/preferences_gen.h:4708 -#: ../build/bin/preferences_gen.h:4778 ../build/bin/preferences_gen.h:4822 -#: ../build/bin/preferences_gen.h:4882 ../build/bin/preferences_gen.h:4918 -#: ../build/bin/preferences_gen.h:4954 ../build/bin/preferences_gen.h:4990 -#: ../build/bin/preferences_gen.h:5026 ../build/bin/preferences_gen.h:5062 -#: ../build/bin/preferences_gen.h:5098 ../build/bin/preferences_gen.h:5188 -#: ../build/bin/preferences_gen.h:5224 ../build/bin/preferences_gen.h:5260 -#: ../build/bin/preferences_gen.h:5334 ../build/bin/preferences_gen.h:5370 -#: ../build/bin/preferences_gen.h:5435 ../build/bin/preferences_gen.h:5505 -#: ../build/bin/preferences_gen.h:5548 ../build/bin/preferences_gen.h:5618 -#: ../build/bin/preferences_gen.h:5654 ../build/bin/preferences_gen.h:5690 -#: ../build/bin/preferences_gen.h:5734 ../build/bin/preferences_gen.h:5805 -#: ../build/bin/preferences_gen.h:5841 ../build/bin/preferences_gen.h:5877 -#: ../build/bin/preferences_gen.h:5913 ../build/bin/preferences_gen.h:5955 -#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6140 -#: ../build/bin/preferences_gen.h:6176 ../build/bin/preferences_gen.h:6212 -#: ../build/bin/preferences_gen.h:6248 ../build/bin/preferences_gen.h:6284 -#: ../build/bin/preferences_gen.h:6320 ../build/bin/preferences_gen.h:6356 -#: ../build/bin/preferences_gen.h:6392 ../build/bin/preferences_gen.h:6427 -#: ../build/bin/preferences_gen.h:6462 ../build/bin/preferences_gen.h:6498 -#: ../build/bin/preferences_gen.h:6542 ../build/bin/preferences_gen.h:6614 -#: ../build/bin/preferences_gen.h:6692 ../build/bin/preferences_gen.h:6767 -#: ../build/bin/preferences_gen.h:6820 ../build/bin/preferences_gen.h:6885 -#: ../build/bin/preferences_gen.h:6950 ../build/bin/preferences_gen.h:7024 -#: ../build/bin/preferences_gen.h:7060 ../build/bin/preferences_gen.h:7096 -#: ../build/bin/preferences_gen.h:7132 ../build/bin/preferences_gen.h:7168 -#: ../build/bin/preferences_gen.h:7204 ../build/bin/preferences_gen.h:7250 -#: ../build/bin/preferences_gen.h:7310 ../build/bin/preferences_gen.h:7375 -#: ../build/bin/preferences_gen.h:7429 ../build/bin/preferences_gen.h:7474 -#: ../build/bin/preferences_gen.h:7510 ../build/bin/preferences_gen.h:7546 -#: ../build/bin/preferences_gen.h:7582 ../build/bin/preferences_gen.h:7618 -#: ../build/bin/preferences_gen.h:7678 ../build/bin/preferences_gen.h:7722 -#: ../build/bin/preferences_gen.h:7766 ../build/bin/preferences_gen.h:7848 -#: ../build/bin/preferences_gen.h:7888 ../build/bin/preferences_gen.h:7928 -#: ../build/bin/preferences_gen.h:7964 ../build/bin/preferences_gen.h:8019 -#: ../build/bin/preferences_gen.h:8055 ../build/bin/preferences_gen.h:8115 -#: ../build/bin/preferences_gen.h:8161 ../build/bin/preferences_gen.h:8197 -#: ../build/bin/preferences_gen.h:8243 ../build/bin/preferences_gen.h:8303 -#: ../build/bin/preferences_gen.h:8355 ../build/bin/preferences_gen.h:8401 -#: ../build/bin/preferences_gen.h:8469 ../build/bin/preferences_gen.h:8516 +#: ../build/bin/preferences_gen.h:77 ../build/bin/preferences_gen.h:4305 +#: ../build/bin/preferences_gen.h:4344 ../build/bin/preferences_gen.h:4383 +#: ../build/bin/preferences_gen.h:4417 ../build/bin/preferences_gen.h:4488 +#: ../build/bin/preferences_gen.h:4522 ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:4590 ../build/bin/preferences_gen.h:4624 +#: ../build/bin/preferences_gen.h:4658 ../build/bin/preferences_gen.h:4692 +#: ../build/bin/preferences_gen.h:4733 ../build/bin/preferences_gen.h:4768 +#: ../build/bin/preferences_gen.h:4803 ../build/bin/preferences_gen.h:4837 +#: ../build/bin/preferences_gen.h:4871 ../build/bin/preferences_gen.h:4906 +#: ../build/bin/preferences_gen.h:4940 ../build/bin/preferences_gen.h:4979 +#: ../build/bin/preferences_gen.h:5020 ../build/bin/preferences_gen.h:5093 +#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:5162 +#: ../build/bin/preferences_gen.h:5203 ../build/bin/preferences_gen.h:5237 +#: ../build/bin/preferences_gen.h:5281 ../build/bin/preferences_gen.h:5315 +#: ../build/bin/preferences_gen.h:5350 ../build/bin/preferences_gen.h:5391 +#: ../build/bin/preferences_gen.h:5426 ../build/bin/preferences_gen.h:5460 +#: ../build/bin/preferences_gen.h:5494 ../build/bin/preferences_gen.h:5528 +#: ../build/bin/preferences_gen.h:5562 ../build/bin/preferences_gen.h:5596 +#: ../build/bin/preferences_gen.h:5630 ../build/bin/preferences_gen.h:5665 +#: ../build/bin/preferences_gen.h:5699 ../build/bin/preferences_gen.h:5733 +#: ../build/bin/preferences_gen.h:5799 ../build/bin/preferences_gen.h:5833 +#: ../build/bin/preferences_gen.h:5868 ../build/bin/preferences_gen.h:5903 +#: ../build/bin/preferences_gen.h:5944 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/preferences_gen.h:6013 ../build/bin/preferences_gen.h:6047 +#: ../build/bin/preferences_gen.h:6088 ../build/bin/preferences_gen.h:6124 +#: ../build/bin/preferences_gen.h:6165 ../build/bin/preferences_gen.h:6209 +#: ../build/bin/preferences_gen.h:6254 ../build/bin/preferences_gen.h:6305 +#: ../build/bin/preferences_gen.h:6349 ../build/bin/preferences_gen.h:6393 +#: ../build/bin/preferences_gen.h:6437 ../build/bin/preferences_gen.h:6481 +#: ../build/bin/preferences_gen.h:6525 ../build/bin/preferences_gen.h:6569 +#: ../build/bin/preferences_gen.h:6635 ../build/bin/preferences_gen.h:6669 +#: ../build/bin/preferences_gen.h:6703 ../build/bin/preferences_gen.h:6737 +#: ../build/bin/preferences_gen.h:6771 ../build/bin/preferences_gen.h:6805 +#: ../build/bin/preferences_gen.h:6839 ../build/bin/preferences_gen.h:6873 +#: ../build/bin/preferences_gen.h:6906 ../build/bin/preferences_gen.h:6939 +#: ../build/bin/preferences_gen.h:6973 ../build/bin/preferences_gen.h:7014 +#: ../build/bin/preferences_gen.h:7053 ../build/bin/preferences_gen.h:7124 +#: ../build/bin/preferences_gen.h:7159 ../build/bin/preferences_gen.h:7210 +#: ../build/bin/preferences_gen.h:7245 ../build/bin/preferences_gen.h:7280 +#: ../build/bin/preferences_gen.h:7324 ../build/bin/preferences_gen.h:7390 +#: ../build/bin/preferences_gen.h:7424 ../build/bin/preferences_gen.h:7458 +#: ../build/bin/preferences_gen.h:7492 ../build/bin/preferences_gen.h:7526 +#: ../build/bin/preferences_gen.h:7560 ../build/bin/preferences_gen.h:7605 +#: ../build/bin/preferences_gen.h:7640 ../build/bin/preferences_gen.h:7675 +#: ../build/bin/preferences_gen.h:7731 ../build/bin/preferences_gen.h:7772 +#: ../build/bin/preferences_gen.h:7806 ../build/bin/preferences_gen.h:7840 +#: ../build/bin/preferences_gen.h:7874 ../build/bin/preferences_gen.h:7908 +#: ../build/bin/preferences_gen.h:7943 ../build/bin/preferences_gen.h:7984 +#: ../build/bin/preferences_gen.h:8025 ../build/bin/preferences_gen.h:8085 +#: ../build/bin/preferences_gen.h:8119 ../build/bin/preferences_gen.h:8154 +#: ../build/bin/preferences_gen.h:8199 ../build/bin/preferences_gen.h:8233 +#: ../build/bin/preferences_gen.h:8278 ../build/bin/preferences_gen.h:8313 +#: ../build/bin/preferences_gen.h:8365 ../build/bin/preferences_gen.h:8410 +#: ../build/bin/preferences_gen.h:8480 ../build/bin/preferences_gen.h:8526 msgid "this setting has been modified" msgstr "bu ayar değiştirildi" #. doesn't seem to work from gtkrc -#: ../build/bin/preferences_gen.h:3793 ../build/bin/preferences_gen.h:4407 -#: ../build/bin/preferences_gen.h:5304 ../build/bin/preferences_gen.h:6110 -#: ../build/bin/preferences_gen.h:6662 ../build/bin/preferences_gen.h:6994 -#: ../build/bin/preferences_gen.h:7818 ../src/gui/accelerators.c:2724 -#: ../src/gui/gtk.c:2580 ../src/gui/preferences.c:421 -#: ../src/gui/preferences.c:876 ../src/libs/modulegroups.c:3886 +#: ../build/bin/preferences_gen.h:4277 ../build/bin/preferences_gen.h:4460 +#: ../build/bin/preferences_gen.h:5065 ../build/bin/preferences_gen.h:5771 +#: ../build/bin/preferences_gen.h:6607 ../build/bin/preferences_gen.h:7096 +#: ../build/bin/preferences_gen.h:7362 ../src/gui/accelerators.c:2996 +#: ../src/gui/gtk.c:2641 ../src/gui/preferences.c:424 +#: ../src/gui/preferences.c:874 ../src/libs/modulegroups.c:3888 msgid "?" msgstr "?" -#: ../build/bin/preferences_gen.h:3806 ../build/bin/preferences_gen.h:4420 -#: ../build/bin/preferences_gen.h:6123 ../src/gui/preferences.c:270 -msgid "general" -msgstr "genel" +#: ../build/bin/preferences_gen.h:4287 ../src/control/jobs/control_jobs.c:2352 +#: ../src/libs/import.c:173 +msgid "import" +msgstr "içe aktar" -#: ../build/bin/preferences_gen.h:3826 -msgid "hide built-in presets for utility modules" -msgstr "yardımcı modüller için yerleşik ön ayarları gizle" +#: ../build/bin/preferences_gen.h:4289 +msgid "session options" +msgstr "oturum seçenekleri" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4017 -#: ../build/bin/preferences_gen.h:4053 ../build/bin/preferences_gen.h:4156 -#: ../build/bin/preferences_gen.h:4251 ../build/bin/preferences_gen.h:4291 -#: ../build/bin/preferences_gen.h:4334 ../build/bin/preferences_gen.h:4377 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4531 ../build/bin/preferences_gen.h:4606 -#: ../build/bin/preferences_gen.h:4686 ../build/bin/preferences_gen.h:4756 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4860 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5040 ../build/bin/preferences_gen.h:5076 -#: ../build/bin/preferences_gen.h:5166 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5274 -#: ../build/bin/preferences_gen.h:5348 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5483 ../build/bin/preferences_gen.h:5525 -#: ../build/bin/preferences_gen.h:5596 ../build/bin/preferences_gen.h:5632 -#: ../build/bin/preferences_gen.h:5668 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5782 ../build/bin/preferences_gen.h:5819 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:5927 ../build/bin/preferences_gen.h:5998 -#: ../build/bin/preferences_gen.h:6074 ../build/bin/preferences_gen.h:6154 -#: ../build/bin/preferences_gen.h:6190 ../build/bin/preferences_gen.h:6226 -#: ../build/bin/preferences_gen.h:6262 ../build/bin/preferences_gen.h:6298 -#: ../build/bin/preferences_gen.h:6334 ../build/bin/preferences_gen.h:6370 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:6592 ../build/bin/preferences_gen.h:6632 -#: ../build/bin/preferences_gen.h:6745 ../build/bin/preferences_gen.h:6863 -#: ../build/bin/preferences_gen.h:6928 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7146 -#: ../build/bin/preferences_gen.h:7182 ../build/bin/preferences_gen.h:7288 -#: ../build/bin/preferences_gen.h:7353 ../build/bin/preferences_gen.h:7393 -#: ../build/bin/preferences_gen.h:7443 ../build/bin/preferences_gen.h:7488 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7656 -#: ../build/bin/preferences_gen.h:7692 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:7866 ../build/bin/preferences_gen.h:7906 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:7982 -#: ../build/bin/preferences_gen.h:8033 ../build/bin/preferences_gen.h:8093 -#: ../build/bin/preferences_gen.h:8175 ../build/bin/preferences_gen.h:8281 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4308 +msgid "base directory naming pattern" +msgstr "temel dizin adlandırma kalıbı" + +#: ../build/bin/preferences_gen.h:4323 ../build/bin/preferences_gen.h:4362 +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4435 +#: ../build/bin/preferences_gen.h:4501 ../build/bin/preferences_gen.h:4535 +#: ../build/bin/preferences_gen.h:4569 ../build/bin/preferences_gen.h:4603 +#: ../build/bin/preferences_gen.h:4637 ../build/bin/preferences_gen.h:4671 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4747 +#: ../build/bin/preferences_gen.h:4782 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:4850 ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:4958 +#: ../build/bin/preferences_gen.h:4999 ../build/bin/preferences_gen.h:5040 +#: ../build/bin/preferences_gen.h:5106 ../build/bin/preferences_gen.h:5140 +#: ../build/bin/preferences_gen.h:5182 ../build/bin/preferences_gen.h:5217 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5329 +#: ../build/bin/preferences_gen.h:5363 ../build/bin/preferences_gen.h:5405 +#: ../build/bin/preferences_gen.h:5439 ../build/bin/preferences_gen.h:5473 +#: ../build/bin/preferences_gen.h:5507 ../build/bin/preferences_gen.h:5541 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5644 ../build/bin/preferences_gen.h:5678 +#: ../build/bin/preferences_gen.h:5712 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5847 +#: ../build/bin/preferences_gen.h:5882 ../build/bin/preferences_gen.h:5922 +#: ../build/bin/preferences_gen.h:5958 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6060 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6178 ../build/bin/preferences_gen.h:6223 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6318 +#: ../build/bin/preferences_gen.h:6362 ../build/bin/preferences_gen.h:6406 +#: ../build/bin/preferences_gen.h:6450 ../build/bin/preferences_gen.h:6494 +#: ../build/bin/preferences_gen.h:6538 ../build/bin/preferences_gen.h:6582 +#: ../build/bin/preferences_gen.h:6648 ../build/bin/preferences_gen.h:6682 +#: ../build/bin/preferences_gen.h:6716 ../build/bin/preferences_gen.h:6750 +#: ../build/bin/preferences_gen.h:6784 ../build/bin/preferences_gen.h:6818 +#: ../build/bin/preferences_gen.h:6852 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7032 +#: ../build/bin/preferences_gen.h:7071 ../build/bin/preferences_gen.h:7138 +#: ../build/bin/preferences_gen.h:7224 ../build/bin/preferences_gen.h:7259 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7505 ../build/bin/preferences_gen.h:7539 +#: ../build/bin/preferences_gen.h:7619 ../build/bin/preferences_gen.h:7654 +#: ../build/bin/preferences_gen.h:7693 ../build/bin/preferences_gen.h:7744 +#: ../build/bin/preferences_gen.h:7785 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7922 ../build/bin/preferences_gen.h:7956 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8133 ../build/bin/preferences_gen.h:8212 +#: ../build/bin/preferences_gen.h:8292 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 #, c-format msgid "double click to reset to `%s'" msgstr "`%s' olarak sıfırlamak için çift tıklayın" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4053 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4686 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:5040 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5348 -#: ../build/bin/preferences_gen.h:5632 ../build/bin/preferences_gen.h:5668 -#: ../build/bin/preferences_gen.h:5819 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:6370 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7146 ../build/bin/preferences_gen.h:7443 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7692 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:8033 -#: ../build/bin/preferences_gen.h:8175 +#: ../build/bin/preferences_gen.h:4326 ../build/bin/preferences_gen.h:4365 +msgid "part of full import path for an import session" +msgstr "bir içe aktarma oturumu için tam içe aktarma yolunun bir parçası" + +#: ../build/bin/preferences_gen.h:4347 +msgid "sub directory naming pattern" +msgstr "alt dizin adlandırma kalıbı" + +#: ../build/bin/preferences_gen.h:4386 +msgid "keep original filename" +msgstr "orijinal dosya adını koru" + +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4501 +#: ../build/bin/preferences_gen.h:4535 ../build/bin/preferences_gen.h:4569 +#: ../build/bin/preferences_gen.h:4603 ../build/bin/preferences_gen.h:4637 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4850 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:5106 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5439 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5712 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6450 +#: ../build/bin/preferences_gen.h:6494 ../build/bin/preferences_gen.h:6538 +#: ../build/bin/preferences_gen.h:6582 ../build/bin/preferences_gen.h:6852 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7505 +#: ../build/bin/preferences_gen.h:7744 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7956 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8212 msgctxt "preferences" msgid "FALSE" msgstr "YANLIŞ" -#: ../build/bin/preferences_gen.h:3840 +#: ../build/bin/preferences_gen.h:4399 +msgid "" +"keep original filename instead of a pattern while importing from camera or " +"card" +msgstr "" +"kameradan veya karttan içe aktarırken desen yerine orijinal dosya adını " +"koruyun" + +#: ../build/bin/preferences_gen.h:4420 +msgid "file naming pattern" +msgstr "dosya adlandırma kalıbı" + +#: ../build/bin/preferences_gen.h:4438 +msgid "file naming pattern used for a import session" +msgstr "bir içe aktarma oturumu için kullanılan dosya adlandırma kalıbı" + +#: ../build/bin/preferences_gen.h:4470 ../src/gui/gtk.c:1266 +#: ../src/gui/preferences.c:544 ../src/libs/tools/lighttable.c:66 +#: ../src/views/lighttable.c:91 +msgid "lighttable" +msgstr "ışık masası" + +#: ../build/bin/preferences_gen.h:4472 ../build/bin/preferences_gen.h:5077 +#: ../build/bin/preferences_gen.h:6619 ../src/gui/preferences.c:270 +msgid "general" +msgstr "genel" + +#: ../build/bin/preferences_gen.h:4491 +msgid "hide built-in presets for utility modules" +msgstr "yardımcı modüller için yerleşik ön ayarları gizle" + +#: ../build/bin/preferences_gen.h:4504 msgid "hides built-in presets of utility modules in presets menu." msgstr "" "ön ayarlar menüsünde yardımcı program modüllerinin yerleşik ön ayarlarını " "gizler." -#: ../build/bin/preferences_gen.h:3862 +#: ../build/bin/preferences_gen.h:4525 msgid "use single-click in the collections module" msgstr "koleksiyon modülünde tek tıklamayı kullanın" -#: ../build/bin/preferences_gen.h:3876 +#: ../build/bin/preferences_gen.h:4538 msgid "" "check this option to use single-click to select items in the collections " "module. this will allow you to do range selections for date-time and numeric " @@ -999,20 +1012,20 @@ "seçeneği işaretleyin. bu, tarih-saat ve sayısal değerler için aralık " "seçimleri yapmanızı sağlar." -#: ../build/bin/preferences_gen.h:3898 +#: ../build/bin/preferences_gen.h:4559 msgid "expand a single utility module at a time" msgstr "bir seferde tek bir yardımcı modül genişletme" -#: ../build/bin/preferences_gen.h:3912 +#: ../build/bin/preferences_gen.h:4572 msgid "this option toggles the behavior of shift clicking in lighttable mode" msgstr "" "bu seçenek, ışıklı masa modunda kaydırmalı tıklama davranışını değiştirir" -#: ../build/bin/preferences_gen.h:3934 +#: ../build/bin/preferences_gen.h:4593 msgid "scroll utility modules to the top when expanded" msgstr "genişletildiğinde yardımcı program modüllerini en üste kaydırın" -#: ../build/bin/preferences_gen.h:3948 ../build/bin/preferences_gen.h:5079 +#: ../build/bin/preferences_gen.h:4606 ../build/bin/preferences_gen.h:5612 msgid "" "when this option is enabled then darktable will try to scroll the module to " "the top of the visible list" @@ -1020,61 +1033,63 @@ "bu seçenek etkinleştirildiğinde, karanlık tablo modülü görünür listenin en " "üstüne kaydırmaya çalışır" -#: ../build/bin/preferences_gen.h:3970 +#: ../build/bin/preferences_gen.h:4627 msgid "rating an image one star twice will not zero out the rating" msgstr "bir resmi iki kez derecelendirmek, derecelendirmeyi sıfırlamaz" -#: ../build/bin/preferences_gen.h:3984 +#: ../build/bin/preferences_gen.h:4640 msgid "" "defines whether rating an image one star twice will zero out star rating" msgstr "" "bir görüntüyü bir yıldızla iki kez derecelendirmenin yıldız " "derecelendirmesini sıfırlayıp sıfırlayacağını tanımlar" -#: ../build/bin/preferences_gen.h:4006 ../build/bin/preferences_gen.h:4675 +#: ../build/bin/preferences_gen.h:4661 ../build/bin/preferences_gen.h:5284 msgid "show scrollbars for central view" msgstr "merkezi görünüm için kaydırma çubuklarını göster" -#: ../build/bin/preferences_gen.h:4017 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5076 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5274 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5927 -#: ../build/bin/preferences_gen.h:6154 ../build/bin/preferences_gen.h:6190 -#: ../build/bin/preferences_gen.h:6226 ../build/bin/preferences_gen.h:6262 -#: ../build/bin/preferences_gen.h:6298 ../build/bin/preferences_gen.h:6334 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7182 -#: ../build/bin/preferences_gen.h:7488 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4671 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:5140 ../build/bin/preferences_gen.h:5363 +#: ../build/bin/preferences_gen.h:5473 ../build/bin/preferences_gen.h:5507 +#: ../build/bin/preferences_gen.h:5541 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5678 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:6060 ../build/bin/preferences_gen.h:6178 +#: ../build/bin/preferences_gen.h:6318 ../build/bin/preferences_gen.h:6362 +#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6648 +#: ../build/bin/preferences_gen.h:6682 ../build/bin/preferences_gen.h:6716 +#: ../build/bin/preferences_gen.h:6750 ../build/bin/preferences_gen.h:6784 +#: ../build/bin/preferences_gen.h:6818 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7539 ../build/bin/preferences_gen.h:7785 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 msgctxt "preferences" msgid "TRUE" msgstr "DOĞRU" -#: ../build/bin/preferences_gen.h:4020 ../build/bin/preferences_gen.h:4689 +#: ../build/bin/preferences_gen.h:4674 ../build/bin/preferences_gen.h:5297 msgid "defines whether scrollbars should be displayed" msgstr "kaydırma çubuklarının görüntülenip görüntülenmeyeceğini tanımlar" -#: ../build/bin/preferences_gen.h:4042 +#: ../build/bin/preferences_gen.h:4695 msgid "show image time with milliseconds" msgstr "görüntü süresini milisaniye ile göster" -#: ../build/bin/preferences_gen.h:4056 +#: ../build/bin/preferences_gen.h:4708 msgid "defines whether time should be displayed with milliseconds" msgstr "zamanın milisaniye cinsinden gösterilip gösterilmeyeceğini tanımlar" -#: ../build/bin/preferences_gen.h:4066 +#: ../build/bin/preferences_gen.h:4717 msgid "thumbnails" msgstr "küçük resimler" -#: ../build/bin/preferences_gen.h:4086 +#: ../build/bin/preferences_gen.h:4736 msgid "use raw file instead of embedded JPEG from size" msgstr "boyuttan gömülü JPEG yerine raw dosyası kullanın" -#: ../build/bin/preferences_gen.h:4159 +#: ../build/bin/preferences_gen.h:4750 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "raw file instead of the embedded preview JPEG (better but slower).\n" @@ -1088,11 +1103,11 @@ "olmasını istiyorsanız *her zaman* seçeneğini seçmelisiniz.\n" "(kılavuzda daha fazla açıklama)" -#: ../build/bin/preferences_gen.h:4181 +#: ../build/bin/preferences_gen.h:4771 msgid "high quality processing from size" msgstr "boyuttan yüksek kaliteli işleme" -#: ../build/bin/preferences_gen.h:4254 +#: ../build/bin/preferences_gen.h:4785 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "the full quality rendering path (better but slower).\n" @@ -1106,11 +1121,83 @@ "olmasını istiyorsanız *her zaman* seçeneğini seçmelisiniz.\n" "(kılavuzda daha fazla açıklama)" -#: ../build/bin/preferences_gen.h:4276 +#: ../build/bin/preferences_gen.h:4806 +msgid "enable disk backend for thumbnail cache" +msgstr "küçük resim önbelleği için disk arka ucunu etkinleştir" + +#: ../build/bin/preferences_gen.h:4819 +msgid "" +"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want. light table " +"performance will be increased greatly when browsing a lot.\n" +"to generate all thumbnails of your entire collection offline, run 'darktable-" +"generate-cache'." +msgstr "" +"etkinleştirilirse, bellek önbelleğinden çıkarıldığında küçük resimleri diske " +"(.cache/darktable/) yazın.\n" +"bunun çok fazla bellek kaplayabileceğini (20k görüntü için birkaç gigabayt) " +"ve önbelleğe alınmış küçük resimleri bir daha asla silmeyeceğini unutmayın.\n" +"İsterseniz bunları manuel olarak silmek güvenlidir. çok gezinirken ışıklı " +"masa performansı büyük ölçüde artacaktır.\n" +"tüm koleksiyonunuzun tüm küçük resimlerini çevrimdışı oluşturmak için " +"'darktable-generate-cache' komutunu çalıştırın." + +#: ../build/bin/preferences_gen.h:4840 +msgid "enable disk backend for full preview cache" +msgstr "tam önizleme önbelleği için disk arka ucunu etkinleştir" + +#: ../build/bin/preferences_gen.h:4853 +msgid "" +"if enabled, write full preview to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want.\n" +"light table performance will be increased greatly when zooming image in full " +"preview mode." +msgstr "" +"etkinleştirilirse, önbellekten çıkarıldığında tam önizlemeyi diske (.cache/" +"darktable/) yazın.\n" +"bunun çok fazla bellek kaplayabileceğini (20k görüntü için birkaç gigabayt) " +"ve önbelleğe alınmış küçük resimleri bir daha asla silmeyeceğini unutmayın.\n" +"İsterseniz bunları manuel olarak silmek güvenlidir.\n" +"Tam ön izleme modunda görüntüyü yakınlaştırırken ışıklı masa performansı " +"büyük ölçüde artacaktır." + +#: ../build/bin/preferences_gen.h:4874 +msgid "generate thumbnails in background" +msgstr "arka planda küçük resimler oluştur" + +#: ../build/bin/preferences_gen.h:4888 +msgid "" +"if 'enable disk backend for thumbnail cache' is enabled thumbnails/mipmaps " +"up to the selected size are generated while user is inactive in lighttable." +msgstr "" +"'küçük resim önbelleği için disk arka ucunu etkinleştir' etkinleştirilmişse, " +"kullanıcı ışık tablosunda etkin değilken seçilen boyuta kadar küçük resimler/" +"mipmap'ler oluşturulur." + +#: ../build/bin/preferences_gen.h:4909 +msgid "reset cached thumbnails" +msgstr "önbelleğe alınmış küçük resimleri sıfırla" + +#: ../build/bin/preferences_gen.h:4922 +msgid "" +"force thumbnails to be regenerated by resetting the database. this may be " +"needed in case some thumbnails have been manually removed or corrupted." +msgstr "" +"veritabanını sıfırlayarak küçük resimlerin yeniden oluşturulmasını zorlayın. " +"bazı küçük resimlerin manuel olarak kaldırılması veya bozulması durumunda bu " +"gerekli olabilir." + +#: ../build/bin/preferences_gen.h:4943 msgid "delimiters for size categories" msgstr "boyut kategorileri için sınırlayıcılar" -#: ../build/bin/preferences_gen.h:4294 +#: ../build/bin/preferences_gen.h:4961 msgid "" "size categories are used to be able to set different overlays and CSS values " "depending of the size of the thumbnail, separated by |.\n" @@ -1122,23 +1209,28 @@ "örneğin, 120|400, 3 küçük resim kategorisi anlamına gelir: <120 piksel, " "120-400 piksel, >400 piksel" -#: ../build/bin/preferences_gen.h:4316 +#: ../build/bin/preferences_gen.h:4982 msgid "pattern for the thumbnail extended overlay text" msgstr "küçük resim genişletilmiş bindirme metni için desen" -#: ../build/bin/preferences_gen.h:4337 ../build/bin/preferences_gen.h:4380 +#: ../build/bin/preferences_gen.h:5002 ../build/bin/preferences_gen.h:5043 msgid "see manual to know all the tags you can use." msgstr "kullanabileceğiniz tüm etiketleri öğrenmek için kılavuza bakın." -#: ../build/bin/preferences_gen.h:4359 +#: ../build/bin/preferences_gen.h:5023 msgid "pattern for the thumbnail tooltip (empty to disable)" msgstr "küçük resim ipucu için desen (devre dışı bırakmak için boş)" -#: ../build/bin/preferences_gen.h:4440 +#: ../build/bin/preferences_gen.h:5075 ../src/gui/gtk.c:1267 +#: ../src/gui/preferences.c:544 ../src/views/darkroom.c:94 +msgid "darkroom" +msgstr "karanlık oda" + +#: ../build/bin/preferences_gen.h:5096 msgid "scroll down to increase mask parameters" msgstr "maske parametrelerini artırmak için aşağı kaydırın" -#: ../build/bin/preferences_gen.h:4454 +#: ../build/bin/preferences_gen.h:5109 msgid "" "when using the mouse scroll wheel to change mask parameters, scroll down to " "increase the mask size, feather size, opacity, brush hardness and gradient " @@ -1150,11 +1242,11 @@ "sertliğini ve gradyan eğriliğini artırmak için aşağı kaydırın\n" "varsayılan olarak yukarı kaydırmak bu parametreleri artırır" -#: ../build/bin/preferences_gen.h:4476 +#: ../build/bin/preferences_gen.h:5130 msgid "middle mouse button zooms to 200%" msgstr "farenin orta düğmesi %200'e kadar yakınlaştırır" -#: ../build/bin/preferences_gen.h:4491 +#: ../build/bin/preferences_gen.h:5144 #, no-c-format msgid "" "if enabled, the zoom level will cycle between 100%, 200% and fit to viewport " @@ -1166,32 +1258,32 @@ "görüntü alanı boyutu ile %100 arasında geçiş yapar ve yakınlaştırma " "seviyesini kontrol etmek için 'ctrl' tuşu kullanılabilir." -#: ../build/bin/preferences_gen.h:4513 +#: ../build/bin/preferences_gen.h:5165 msgid "pattern for the image information line" msgstr "görüntü bilgi satırı için desen" -#: ../build/bin/preferences_gen.h:4534 +#: ../build/bin/preferences_gen.h:5185 msgid "see manual for a list of the tags you can use." msgstr "kullanabileceğiniz etiketlerin listesi için kılavuza bakın." -#: ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:5206 msgid "position of the image information line" msgstr "görüntü bilgi satırının konumu" -#: ../build/bin/preferences_gen.h:4630 +#: ../build/bin/preferences_gen.h:5240 msgid "border around image in darkroom mode" msgstr "karanlık oda modunda görüntünün etrafındaki kenarlık" -#: ../build/bin/preferences_gen.h:4650 ../build/bin/preferences_gen.h:6790 -#: ../build/bin/preferences_gen.h:7228 ../build/bin/preferences_gen.h:7789 -#: ../build/bin/preferences_gen.h:8139 ../build/bin/preferences_gen.h:8221 -#: ../build/bin/preferences_gen.h:8379 ../build/bin/preferences_gen.h:8493 -#: ../build/bin/preferences_gen.h:8540 +#: ../build/bin/preferences_gen.h:5260 ../build/bin/preferences_gen.h:7182 +#: ../build/bin/preferences_gen.h:7303 ../build/bin/preferences_gen.h:7584 +#: ../build/bin/preferences_gen.h:8048 ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8257 ../build/bin/preferences_gen.h:8389 +#: ../build/bin/preferences_gen.h:8504 ../build/bin/preferences_gen.h:8550 #, c-format msgid "double click to reset to `%d'" msgstr "`%d' olarak sıfırlamak için çift tıklayın" -#: ../build/bin/preferences_gen.h:4653 +#: ../build/bin/preferences_gen.h:5263 msgid "" "process the image in darkroom mode with a small border. set to 0 if you " "don't want any border." @@ -1199,21 +1291,21 @@ "görüntüyü küçük bir kenarlıkla karanlık oda modunda işleyin. herhangi bir " "kenarlık istemiyorsanız 0'a ayarlayın." -#: ../build/bin/preferences_gen.h:4711 +#: ../build/bin/preferences_gen.h:5318 msgid "reduce resolution of preview image" msgstr "önizleme görüntüsünün çözünürlüğünü azalt" -#: ../build/bin/preferences_gen.h:4759 +#: ../build/bin/preferences_gen.h:5332 msgid "decrease to speed up preview rendering, may hinder accurate masking" msgstr "" "önizleme oluşturmayı hızlandırmak için azaltın, doğru maskelemeyi " "engelleyebilir" -#: ../build/bin/preferences_gen.h:4781 +#: ../build/bin/preferences_gen.h:5353 msgid "show loading screen between images" msgstr "resimler arasında yükleme ekranını göster" -#: ../build/bin/preferences_gen.h:4795 +#: ../build/bin/preferences_gen.h:5366 msgid "" "show gray loading screen when navigating between images in the darkroom\n" "disable to just show a toast message" @@ -1221,15 +1313,15 @@ "karanlık odadaki görüntüler arasında gezinirken gri yükleme ekranı göster\n" "sadece bir tost mesajı göstermek için devre dışı bırak" -#: ../build/bin/preferences_gen.h:4805 +#: ../build/bin/preferences_gen.h:5375 msgid "modules" msgstr "modüller" -#: ../build/bin/preferences_gen.h:4825 +#: ../build/bin/preferences_gen.h:5394 msgid "display of individual color channels" msgstr "bireysel ekran renk kanallarının görüntülenmesi" -#: ../build/bin/preferences_gen.h:4863 +#: ../build/bin/preferences_gen.h:5408 msgid "" "defines how color channels are displayed when activated in the parametric " "masks feature." @@ -1237,11 +1329,11 @@ "parametrik maskeler özelliğinde etkinleştirildiğinde renk kanallarının nasıl " "görüntüleneceğini tanımlar." -#: ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:5429 msgid "hide built-in presets for processing modules" msgstr "işleme modülleri için yerleşik ön ayarları gizle" -#: ../build/bin/preferences_gen.h:4899 +#: ../build/bin/preferences_gen.h:5442 msgid "" "hides built-in presets of processing modules in both presets and favourites " "menu." @@ -1249,24 +1341,24 @@ "hem ön ayarlarda hem de favoriler menüsünde yerleşik işleme modüllerinin ön " "ayarlarını gizler." -#: ../build/bin/preferences_gen.h:4921 ../build/bin/preferences_gen.h:4935 +#: ../build/bin/preferences_gen.h:5463 ../build/bin/preferences_gen.h:5476 msgid "show the guides widget in modules UI" msgstr "kılavuzlar aracını modüller kullanıcı arayüzünde göster" -#: ../build/bin/preferences_gen.h:4957 +#: ../build/bin/preferences_gen.h:5497 msgid "expand a single processing module at a time" msgstr "bir seferde tek bir işleme modülünü genişletin" -#: ../build/bin/preferences_gen.h:4971 +#: ../build/bin/preferences_gen.h:5510 msgid "this option toggles the behavior of shift clicking in darkroom mode" msgstr "" "bu seçenek, karanlık oda modunda kaydırmalı tıklama davranışını değiştirir" -#: ../build/bin/preferences_gen.h:4993 +#: ../build/bin/preferences_gen.h:5531 msgid "only collapse modules in current group" msgstr "yalnızca geçerli gruptaki modülleri daralt" -#: ../build/bin/preferences_gen.h:5007 +#: ../build/bin/preferences_gen.h:5544 msgid "" "if only expanding a single module at a time, only collapse other modules in " "the current group - ignore modules in other groups" @@ -1274,12 +1366,12 @@ "bir seferde yalnızca tek bir modülü genişletiyorsanız, yalnızca geçerli " "gruptaki diğer modülleri daraltın - diğer gruplardaki modülleri yoksayın" -#: ../build/bin/preferences_gen.h:5029 +#: ../build/bin/preferences_gen.h:5565 msgid "expand the module when it is activated, and collapse it when disabled" msgstr "" "etkinleştirildiğinde modülü genişletin ve devre dışı bırakıldığında daraltın" -#: ../build/bin/preferences_gen.h:5043 +#: ../build/bin/preferences_gen.h:5578 msgid "" "this option allows to expand or collapse automatically the module when it is " "enabled or disabled." @@ -1287,15 +1379,15 @@ "bu seçenek, etkinleştirildiğinde veya devre dışı bırakıldığında modülün " "otomatik olarak genişletilmesine veya daraltılmasına izin verir." -#: ../build/bin/preferences_gen.h:5065 +#: ../build/bin/preferences_gen.h:5599 msgid "scroll processing modules to the top when expanded" msgstr "genişletildiğinde işleme modüllerini en üste kaydır" -#: ../build/bin/preferences_gen.h:5101 +#: ../build/bin/preferences_gen.h:5633 msgid "show right-side buttons in processing module headers" msgstr "işleme modülü başlıklarında sağ taraftaki düğmeleri göster" -#: ../build/bin/preferences_gen.h:5169 +#: ../build/bin/preferences_gen.h:5647 msgid "" "when the mouse is not over a module, the multi-instance, reset and preset " "buttons can be hidden:\n" @@ -1319,11 +1411,11 @@ " - 'pürüzsüz': bir başlıktaki tüm düğmeleri aynı anda karartın,\n" " - 'kaydırma': tek tek düğmeleri gerektiği gibi kademeli olarak gizleyin" -#: ../build/bin/preferences_gen.h:5191 +#: ../build/bin/preferences_gen.h:5668 msgid "show mask indicator in module headers" msgstr "modül başlıklarında maske göstergesini göster" -#: ../build/bin/preferences_gen.h:5205 +#: ../build/bin/preferences_gen.h:5681 msgid "" "if enabled, an icon will be shown in the header of any processing modules " "that have a mask applied" @@ -1331,11 +1423,11 @@ "etkinleştirilirse, maske uygulanmış herhangi bir işleme modülünün başlığında " "bir simge gösterilecektir" -#: ../build/bin/preferences_gen.h:5227 +#: ../build/bin/preferences_gen.h:5702 msgid "prompt for name on addition of new instance" msgstr "yeni örneğin eklenmesi üzerine isim istemi" -#: ../build/bin/preferences_gen.h:5241 +#: ../build/bin/preferences_gen.h:5715 msgid "" "if enabled, a rename prompt will be present for each new module instance " "(either new instance or duplicate)" @@ -1343,11 +1435,11 @@ "etkinleştirilirse, her yeni modül örneği için bir yeniden adlandırma istemi " "bulunur (yeni örnek veya kopya)" -#: ../build/bin/preferences_gen.h:5263 +#: ../build/bin/preferences_gen.h:5736 msgid "automatically update module name" msgstr "modül adını otomatik olarak güncelle" -#: ../build/bin/preferences_gen.h:5277 +#: ../build/bin/preferences_gen.h:5749 msgid "" "if enabled, the module name will be automatically updated to match a preset " "name or a preset instance name if present." @@ -1356,23 +1448,27 @@ "ayarlanmış bir örnek adıyla eşleşecek şekilde otomatik olarak " "güncellenecektir." -#: ../build/bin/preferences_gen.h:5317 +#: ../build/bin/preferences_gen.h:5781 +msgid "processing" +msgstr "işleme" + +#: ../build/bin/preferences_gen.h:5783 msgid "image processing" msgstr "görüntü işleme" -#: ../build/bin/preferences_gen.h:5337 +#: ../build/bin/preferences_gen.h:5802 msgid "always use LittleCMS 2 to apply output color profile" msgstr "çıktı renk profilini uygulamak için her zaman LittleCMS 2'yi kullanın" -#: ../build/bin/preferences_gen.h:5351 +#: ../build/bin/preferences_gen.h:5815 msgid "this is slower than the default." msgstr "bu, varsayılandan daha yavaştır." -#: ../build/bin/preferences_gen.h:5373 +#: ../build/bin/preferences_gen.h:5836 msgid "pixel interpolator (warp)" msgstr "piksel enterpolatörü (çözgü)" -#: ../build/bin/preferences_gen.h:5416 +#: ../build/bin/preferences_gen.h:5850 msgid "" "pixel interpolator used in modules for rotation, lens correction, liquify, " "cropping and final scaling (bilinear, bicubic, lanczos2)." @@ -1380,33 +1476,33 @@ "döndürme, lens düzeltme, sıvılaştırma, kırpma ve son ölçekleme için " "modüllerde kullanılan piksel enterpolasyonu (bilineer, bicubic, lanczos 2)." -#: ../build/bin/preferences_gen.h:5438 +#: ../build/bin/preferences_gen.h:5871 msgid "pixel interpolator (scaling)" msgstr "piksel enterpolatörü (ölçeklendirme)" -#: ../build/bin/preferences_gen.h:5486 +#: ../build/bin/preferences_gen.h:5885 msgid "" "pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." msgstr "" "ölçekleme için kullanılan piksel enterpolatörü (bilineer, bicubic, lanczos2, " "lanczos3)." -#: ../build/bin/preferences_gen.h:5508 +#: ../build/bin/preferences_gen.h:5906 msgid "LUT 3D root folder" msgstr "LUT 3B kök klasörü" -#: ../build/bin/preferences_gen.h:5513 ../src/control/jobs/control_jobs.c:1688 -#: ../src/control/jobs/control_jobs.c:1742 ../src/gui/preferences.c:1081 -#: ../src/gui/presets.c:419 ../src/imageio/storage/disk.c:122 -#: ../src/imageio/storage/disk.c:178 ../src/imageio/storage/gallery.c:109 -#: ../src/imageio/storage/gallery.c:163 ../src/imageio/storage/latex.c:108 -#: ../src/imageio/storage/latex.c:162 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/import.c:1664 ../src/libs/styles.c:391 +#: ../build/bin/preferences_gen.h:5912 ../src/control/jobs/control_jobs.c:1691 +#: ../src/control/jobs/control_jobs.c:1745 ../src/gui/preferences.c:1080 +#: ../src/gui/presets.c:421 ../src/imageio/storage/disk.c:197 +#: ../src/imageio/storage/disk.c:261 ../src/imageio/storage/gallery.c:149 +#: ../src/imageio/storage/gallery.c:213 ../src/imageio/storage/latex.c:145 +#: ../src/imageio/storage/latex.c:199 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1673 ../src/libs/styles.c:391 #: ../src/lua/preferences.c:668 msgid "select directory" msgstr "dizini seç" -#: ../build/bin/preferences_gen.h:5529 +#: ../build/bin/preferences_gen.h:5926 msgid "" "this folder (and sub-folders) contains LUT files used by LUT 3D module. " "(need a restart)." @@ -1414,11 +1510,11 @@ "bu klasör (ve alt klasörler), LUT 3B modülü tarafından kullanılan LUT " "dosyalarını içerir. (yeniden başlatma gerekir)." -#: ../build/bin/preferences_gen.h:5551 +#: ../build/bin/preferences_gen.h:5947 msgid "auto-apply pixel workflow defaults" msgstr "piksel iş akışı varsayılanlarını otomatik uygula" -#: ../build/bin/preferences_gen.h:5599 +#: ../build/bin/preferences_gen.h:5961 msgid "" "scene-referred workflow is based on linear modules and will auto-apply " "filmic or sigmoid, color calibration and exposure,\n" @@ -1430,11 +1526,11 @@ "ekran referanslı iş akışı, Lab modüllerini temel alır ve temel eğri, beyaz " "dengesi ve eski modül kanal sırasını otomatik olarak uygular." -#: ../build/bin/preferences_gen.h:5621 +#: ../build/bin/preferences_gen.h:5982 msgid "auto-apply per camera basecurve presets" msgstr "kamera temel eğri ön ayarları başına otomatik uygulama" -#: ../build/bin/preferences_gen.h:5635 +#: ../build/bin/preferences_gen.h:5995 msgid "" "use the per-camera basecurve by default instead of the generic manufacturer " "one if there is one available (needs a restart).\n" @@ -1451,11 +1547,11 @@ "\"piksel iş akışı varsayılanlarını otomatik uygula\", \"yok\" olarak " "ayarlanmalıdır" -#: ../build/bin/preferences_gen.h:5657 +#: ../build/bin/preferences_gen.h:6016 msgid "detect monochrome previews" msgstr "tek renkli önizlemeleri algıla" -#: ../build/bin/preferences_gen.h:5671 +#: ../build/bin/preferences_gen.h:6029 msgid "" "many monochrome images can be identified via EXIF and preview data. beware: " "this slows down imports and reading of EXIF data" @@ -1464,11 +1560,11 @@ "tanımlanabilir. dikkat: bu, EXIF verilerinin içe aktarılmasını ve okunmasını " "yavaşlatır" -#: ../build/bin/preferences_gen.h:5693 +#: ../build/bin/preferences_gen.h:6050 msgid "show warning messages" msgstr "uyarı mesajlarını göster" -#: ../build/bin/preferences_gen.h:5707 +#: ../build/bin/preferences_gen.h:6063 msgid "" "display messages in modules to warn beginner users when non-standard and " "possibly harmful settings are used in the pipeline.\n" @@ -1480,15 +1576,15 @@ "bu mesajlar yanlış pozitif olabilir ve ne yaptığınızı biliyorsanız dikkate " "alınmamalıdır. bu seçenek onları her zaman gizleyecektir." -#: ../build/bin/preferences_gen.h:5717 -msgid "CPU / GPU / memory" -msgstr "CPU / GPU / bellek" +#: ../build/bin/preferences_gen.h:6072 +msgid "CPU / memory" +msgstr "CPU / bellek" -#: ../build/bin/preferences_gen.h:5737 +#: ../build/bin/preferences_gen.h:6091 msgid "darktable resources" msgstr "darktable kaynakları" -#: ../build/bin/preferences_gen.h:5786 +#: ../build/bin/preferences_gen.h:6106 #, no-c-format msgid "" "defines how much darktable may take from your system resources:\n" @@ -1518,11 +1614,11 @@ "açabilir.\n" " dikkatli kullanın ve genel kullanım için önerilmez!" -#: ../build/bin/preferences_gen.h:5808 +#: ../build/bin/preferences_gen.h:6127 msgid "prefer performance over quality" msgstr "kalite yerine performansı tercih et" -#: ../build/bin/preferences_gen.h:5822 +#: ../build/bin/preferences_gen.h:6140 msgid "" "if switched on, thumbnails and previews are rendered at lower quality but 4 " "times faster" @@ -1530,57 +1626,15 @@ "açıksa, küçük resimler ve önizlemeler daha düşük kalitede ancak 4 kat daha " "hızlı oluşturulur" -#: ../build/bin/preferences_gen.h:5844 -msgid "enable disk backend for thumbnail cache" -msgstr "küçük resim önbelleği için disk arka ucunu etkinleştir" - -#: ../build/bin/preferences_gen.h:5858 -msgid "" -"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want. light table " -"performance will be increased greatly when browsing a lot.\n" -"to generate all thumbnails of your entire collection offline, run 'darktable-" -"generate-cache'." -msgstr "" -"etkinleştirilirse, bellek önbelleğinden çıkarıldığında küçük resimleri diske " -"(.cache/darktable/) yazın.\n" -"bunun çok fazla bellek kaplayabileceğini (20k görüntü için birkaç gigabayt) " -"ve önbelleğe alınmış küçük resimleri bir daha asla silmeyeceğini unutmayın.\n" -"İsterseniz bunları manuel olarak silmek güvenlidir. çok gezinirken ışıklı " -"masa performansı büyük ölçüde artacaktır.\n" -"tüm koleksiyonunuzun tüm küçük resimlerini çevrimdışı oluşturmak için " -"'darktable-generate-cache' komutunu çalıştırın." - -#: ../build/bin/preferences_gen.h:5880 -msgid "enable disk backend for full preview cache" -msgstr "tam önizleme önbelleği için disk arka ucunu etkinleştir" - -#: ../build/bin/preferences_gen.h:5894 -msgid "" -"if enabled, write full preview to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want.\n" -"light table performance will be increased greatly when zooming image in full " -"preview mode." -msgstr "" -"etkinleştirilirse, önbellekten çıkarıldığında tam önizlemeyi diske (.cache/" -"darktable/) yazın.\n" -"bunun çok fazla bellek kaplayabileceğini (20k görüntü için birkaç gigabayt) " -"ve önbelleğe alınmış küçük resimleri bir daha asla silmeyeceğini unutmayın.\n" -"İsterseniz bunları manuel olarak silmek güvenlidir.\n" -"Tam ön izleme modunda görüntüyü yakınlaştırırken ışıklı masa performansı " -"büyük ölçüde artacaktır." +#: ../build/bin/preferences_gen.h:6149 +msgid "OpenCL" +msgstr "OpenCL" -#: ../build/bin/preferences_gen.h:5916 +#: ../build/bin/preferences_gen.h:6168 msgid "activate OpenCL support" msgstr "OpenCL desteğini etkinleştir" -#: ../build/bin/preferences_gen.h:5930 +#: ../build/bin/preferences_gen.h:6181 msgid "" "if found, use OpenCL runtime on your system to speed up processing.\n" "can be switched on and off at any time." @@ -1589,23 +1643,32 @@ "kullanın.\n" "herhangi bir zamanda açılıp kapatılabilir." -#: ../build/bin/preferences_gen.h:5931 ../build/bin/preferences_gen.h:6002 -#: ../build/bin/preferences_gen.h:6078 ../build/bin/preferences_gen.h:7397 +#: ../build/bin/preferences_gen.h:6185 ../build/bin/preferences_gen.h:6230 +#: ../build/bin/preferences_gen.h:6274 ../build/bin/preferences_gen.h:6325 +#: ../build/bin/preferences_gen.h:6369 ../build/bin/preferences_gen.h:6413 +#: ../build/bin/preferences_gen.h:6457 ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6545 ../build/bin/preferences_gen.h:7700 msgid "not available" msgstr "kullanılamıyor" -#: ../build/bin/preferences_gen.h:5934 ../build/bin/preferences_gen.h:5938 -#: ../build/bin/preferences_gen.h:6005 ../build/bin/preferences_gen.h:6009 -#: ../build/bin/preferences_gen.h:6081 ../build/bin/preferences_gen.h:6085 -#: ../build/bin/preferences_gen.h:7400 ../build/bin/preferences_gen.h:7404 +#: ../build/bin/preferences_gen.h:6187 ../build/bin/preferences_gen.h:6188 +#: ../build/bin/preferences_gen.h:6232 ../build/bin/preferences_gen.h:6233 +#: ../build/bin/preferences_gen.h:6276 ../build/bin/preferences_gen.h:6277 +#: ../build/bin/preferences_gen.h:6327 ../build/bin/preferences_gen.h:6328 +#: ../build/bin/preferences_gen.h:6371 ../build/bin/preferences_gen.h:6372 +#: ../build/bin/preferences_gen.h:6415 ../build/bin/preferences_gen.h:6416 +#: ../build/bin/preferences_gen.h:6459 ../build/bin/preferences_gen.h:6460 +#: ../build/bin/preferences_gen.h:6503 ../build/bin/preferences_gen.h:6504 +#: ../build/bin/preferences_gen.h:6547 ../build/bin/preferences_gen.h:6548 +#: ../build/bin/preferences_gen.h:7702 ../build/bin/preferences_gen.h:7703 msgid "not available on this system" msgstr "bu sistem hazır değil" -#: ../build/bin/preferences_gen.h:5958 +#: ../build/bin/preferences_gen.h:6212 msgid "OpenCL scheduling profile" msgstr "OpenCL planlama profili" -#: ../build/bin/preferences_gen.h:6001 +#: ../build/bin/preferences_gen.h:6226 msgid "" "defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled " "systems:\n" @@ -1623,55 +1686,129 @@ "işleyin,\n" " - 'çok hızlı GPU': her iki piksel kanalını da GPU'da sırayla işleyin." -#: ../build/bin/preferences_gen.h:6029 -msgid "tune OpenCL performance" -msgstr "OpenCL performansını ayarla" +#: ../build/bin/preferences_gen.h:6257 +msgid "use all device memory" +msgstr "tüm cihaz hafızasını kullan" + +#: ../build/bin/preferences_gen.h:6270 +msgid "" +"if enabled darktable will use all device memory except a safety margin " +"(headroom, default is 600MB)" +msgstr "" +"etkinleştirilirse darktable, bir güvenlik marjı hariç tüm cihaz hafızasını " +"kullanır (boşluk payı, varsayılan 600 MB'dir)" + +#: ../build/bin/preferences_gen.h:6289 +msgid "OpenCL drivers" +msgstr "OpenCL sürücüleri" + +#: ../build/bin/preferences_gen.h:6308 +msgid "Intel GPU" +msgstr "Intel GPU" + +#: ../build/bin/preferences_gen.h:6321 +msgid "Intel(R) OpenCL Graphics for all supported platforms (vendor provided)" +msgstr "" +"Desteklenen tüm platformlar için Intel(R) OpenCL Graphics (satıcıdan " +"sağlanır)" -#: ../build/bin/preferences_gen.h:6077 +#: ../build/bin/preferences_gen.h:6352 +msgid "Nvidia CUDA" +msgstr "Nvidia CUDA" + +#: ../build/bin/preferences_gen.h:6365 +msgid "Nvidia CUDA based OpenCL (vendor provided)" +msgstr "Nvidia CUDA tabanlı OpenCL (satıcıdan sağlanır)" + +#: ../build/bin/preferences_gen.h:6396 +msgid "AMD ROCm" +msgstr "AMD ROCm" + +#: ../build/bin/preferences_gen.h:6409 +msgid "AMD Accelerated Parallel Processing (vendor provided)" +msgstr "AMD Hızlandırılmış Paralel İşleme (satıcıdan sağlanır)" + +#: ../build/bin/preferences_gen.h:6440 +msgid "RustiCL" +msgstr "RustiCL" + +#: ../build/bin/preferences_gen.h:6453 +msgid "" +"RustiCL Mesa OpenCL, still unstable. if you want to use this, you should " +"disable the vendor driver" +msgstr "" +"RustiCL Mesa OpenCL, hala kararsız. bunu kullanmak istiyorsanız satıcı " +"sürücüsünü devre dışı bırakmalısınız" + +#: ../build/bin/preferences_gen.h:6484 +msgid "Apple" +msgstr "Apple" + +#: ../build/bin/preferences_gen.h:6497 +msgid "Apple OpenCL (vendor provided)" +msgstr "Apple OpenCL (satıcıdan sağlanır)" + +#: ../build/bin/preferences_gen.h:6528 +msgid "Microsoft OpenCLOn12" +msgstr "Microsoft OpenCLOn12" + +#: ../build/bin/preferences_gen.h:6541 msgid "" -"allows runtime tuning of OpenCL devices:\n" -" - 'memory size': uses a fixed headroom (400MB as default),\n" -" - 'memory transfer': tries a faster memory access mode (pinned memory) used " -"for tiling." -msgstr "" -"OpenCL cihazlarının çalışma zamanı ayarına izin verir:\n" -" - 'bellek boyutu': sabit bir boşluk kullanır (varsayılan olarak 400MB),\n" -" - 'bellek aktarımı': döşeme için kullanılan daha hızlı bir bellek erişim " -"modunu (sabitlenmiş bellek) dener." +"Microsoft OpenCLOn12, only use this if the vendor provided driver does not " +"work or there is none provided." +msgstr "" +"Microsoft OpenCLOn12, bunu yalnızca satıcının sağladığı sürücü çalışmıyorsa " +"veya sağlanmadıysa kullanın." + +#: ../build/bin/preferences_gen.h:6572 +msgid "other platforms" +msgstr "diğer platformlar" + +#: ../build/bin/preferences_gen.h:6585 +msgid "" +"if set, all unspecified platforms are accepted. only do this if no vendor " +"driver is available" +msgstr "" +"ayarlandığı takdirde belirtilmeyen tüm platformlar kabul edilir. bunu " +"yalnızca satıcı sürücüsü mevcut değilse yapın" -#: ../build/bin/preferences_gen.h:6143 +#: ../build/bin/preferences_gen.h:6617 +msgid "security" +msgstr "güvenlik" + +#: ../build/bin/preferences_gen.h:6638 msgid "ask before removing images from the library" msgstr "resimleri kütüphaneden kaldırmadan önce sor" -#: ../build/bin/preferences_gen.h:6157 +#: ../build/bin/preferences_gen.h:6651 msgid "always ask the user before removing image information from the library" msgstr "" "kitaplıktan görüntü bilgilerini kaldırmadan önce her zaman kullanıcıya sorun" -#: ../build/bin/preferences_gen.h:6179 +#: ../build/bin/preferences_gen.h:6672 msgid "ask before deleting images from disk" msgstr "görüntüleri diskten silmeden önce sor" -#: ../build/bin/preferences_gen.h:6193 +#: ../build/bin/preferences_gen.h:6685 msgid "always ask the user before any image file is deleted" msgstr "" "herhangi bir görüntü dosyası silinmeden önce her zaman kullanıcıya sorun" -#: ../build/bin/preferences_gen.h:6215 +#: ../build/bin/preferences_gen.h:6706 msgid "ask before discarding history stack" msgstr "geçmiş yığınını atmadan önce sor" -#: ../build/bin/preferences_gen.h:6229 +#: ../build/bin/preferences_gen.h:6719 msgid "always ask the user before history stack is discarded on any image" msgstr "" "herhangi bir görüntüde geçmiş yığını atılmadan önce her zaman kullanıcıya " "sorun" -#: ../build/bin/preferences_gen.h:6251 +#: ../build/bin/preferences_gen.h:6740 msgid "try to use trash when deleting images" msgstr "resimleri silerken çöp kutusu kullanmayı deneyin" -#: ../build/bin/preferences_gen.h:6265 +#: ../build/bin/preferences_gen.h:6753 msgid "" "send files to trash instead of permanently deleting files on system that " "supports it" @@ -1679,28 +1816,28 @@ "dosyaları destekleyen sistemdeki dosyaları kalıcı olarak silmek yerine çöp " "kutusuna gönderin" -#: ../build/bin/preferences_gen.h:6287 +#: ../build/bin/preferences_gen.h:6774 msgid "ask before moving images from film roll folder" msgstr "film rulosu klasöründen görüntüleri taşımadan öne sor" -#: ../build/bin/preferences_gen.h:6301 +#: ../build/bin/preferences_gen.h:6787 msgid "always ask the user before any image file is moved." msgstr "bir görüntü dosyası taşınmadan önce mutlaka kullanıcıya sorulsun." -#: ../build/bin/preferences_gen.h:6323 +#: ../build/bin/preferences_gen.h:6808 msgid "ask before copying images to new film roll folder" msgstr "görüntüleri yeni film rulosu klasörüne kopyalamadan önce sor" -#: ../build/bin/preferences_gen.h:6337 +#: ../build/bin/preferences_gen.h:6821 msgid "always ask the user before any image file is copied." msgstr "" "herhangi bir görüntü dosyası kopyalanmadan önce mutlaka kullanıcıya sorulsun." -#: ../build/bin/preferences_gen.h:6359 +#: ../build/bin/preferences_gen.h:6842 msgid "ask before removing empty folders" msgstr "boş klasörleri kaldırmadan önce sor" -#: ../build/bin/preferences_gen.h:6373 +#: ../build/bin/preferences_gen.h:6855 msgid "" "always ask the user before removing any empty folder. this can happen after " "moving or deleting images." @@ -1708,50 +1845,50 @@ "boş bir klasörü kaldırmadan önce her zaman kullanıcıya sorun. bu, " "görüntüleri taşıdıktan veya sildikten sonra olabilir." -#: ../build/bin/preferences_gen.h:6395 +#: ../build/bin/preferences_gen.h:6876 msgid "ask before deleting a tag" msgstr "etiketi silmeden önce sor" -#: ../build/bin/preferences_gen.h:6430 +#: ../build/bin/preferences_gen.h:6909 msgid "ask before deleting a style" msgstr "bir tarzı silmeden önce sor" -#: ../build/bin/preferences_gen.h:6465 +#: ../build/bin/preferences_gen.h:6942 msgid "ask before deleting a preset" msgstr "bir ön ayarı silmeden önce sor" -#: ../build/bin/preferences_gen.h:6479 +#: ../build/bin/preferences_gen.h:6955 msgid "will ask for confirmation before deleting or overwriting a preset" msgstr "bir ön ayarı silmeden veya üzerine yazmadan önce onay isteyecektir" -#: ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6976 msgid "ask before exporting in overwrite mode" msgstr "üzerine yazma modunda dışa aktarmadan önce sor" -#: ../build/bin/preferences_gen.h:6515 +#: ../build/bin/preferences_gen.h:6989 msgid "will ask for confirmation before exporting files in overwrite mode" msgstr "dosyaları üzerine yazma modunda dışa aktarmadan önce onay isteyecektir" #. italic -#: ../build/bin/preferences_gen.h:6525 ../src/libs/tools/viewswitcher.c:148 +#: ../build/bin/preferences_gen.h:6998 ../src/libs/tools/viewswitcher.c:148 msgid "other" msgstr "diğer" -#: ../build/bin/preferences_gen.h:6545 +#: ../build/bin/preferences_gen.h:7017 msgid "password storage backend to use" msgstr "kullanılacak parola depolama arka ucu" -#: ../build/bin/preferences_gen.h:6595 +#: ../build/bin/preferences_gen.h:7035 msgid "" "the storage backend for password storage: auto, none, libsecret, kwallet" msgstr "" "parola depolaması için depolama arka ucu: otomatik, yok, libsecret, kwallet" -#: ../build/bin/preferences_gen.h:6617 +#: ../build/bin/preferences_gen.h:7056 msgid "executable for playing audio files" msgstr "ses dosyalarını yürütmek için kullanılabilir" -#: ../build/bin/preferences_gen.h:6635 +#: ../build/bin/preferences_gen.h:7074 msgid "" "this external program is used to play audio files some cameras record to " "keep notes for images" @@ -1759,15 +1896,19 @@ "bu harici program, bazı kameraların görüntüler için notlar tutmak için " "kaydettiği ses dosyalarını oynatmak için kullanılır" -#: ../build/bin/preferences_gen.h:6675 ../src/control/crawler.c:724 +#: ../build/bin/preferences_gen.h:7106 +msgid "storage" +msgstr "depolama" + +#: ../build/bin/preferences_gen.h:7108 ../src/control/crawler.c:717 msgid "database" msgstr "veri tabanı" -#: ../build/bin/preferences_gen.h:6695 +#: ../build/bin/preferences_gen.h:7127 msgid "create database snapshot" msgstr "veritabanı anlık görüntüsü oluştur" -#: ../build/bin/preferences_gen.h:6748 +#: ../build/bin/preferences_gen.h:7141 msgid "" "database snapshots are created right before closing darktable. options allow " "you to choose how often to make snapshots:\n" @@ -1792,11 +1933,11 @@ "anlık görüntü oluşturun\n" " - 'kapanırken': darktable her kapatıldığında anlık görüntü oluştur" -#: ../build/bin/preferences_gen.h:6770 +#: ../build/bin/preferences_gen.h:7162 msgid "how many snapshots to keep" msgstr "kaç tane anlık görüntü tutulacak" -#: ../build/bin/preferences_gen.h:6793 +#: ../build/bin/preferences_gen.h:7185 msgid "" "after successfully creating snapshot, how many older snapshots to keep " "(excluding mandatory version update ones). enter -1 to keep all snapshots\n" @@ -1809,39 +1950,39 @@ "Anlık görüntülerin biraz yer kapladığını ve başarılı bir geri yükleme için " "yalnızca en yenisine ihtiyacınız olduğunu unutmayın" -#: ../build/bin/preferences_gen.h:6803 ../src/control/crawler.c:723 -msgid "XMP" -msgstr "XMP" +#: ../build/bin/preferences_gen.h:7194 ../src/libs/copy_history.c:149 +msgid "XMP sidecar files" +msgstr "XMP sepet dosyaları" -#: ../build/bin/preferences_gen.h:6823 -msgid "write sidecar file for each image" -msgstr "her görüntü için sepet dosyası yaz" +#: ../build/bin/preferences_gen.h:7213 +msgid "create XMP files" +msgstr "XMP dosyaları oluştur" -#: ../build/bin/preferences_gen.h:6866 +#: ../build/bin/preferences_gen.h:7227 msgid "" -"the sidecar files hold information about all your development steps to allow " +"XMP sidecar files hold information about all your development steps to allow " "flawless re-importing of image files.\n" "\n" -"depending on the selected mode sidecar files will be written:\n" +"depending on the selected mode sidecar files will be created:\n" " - 'never'\n" " - 'on import': immediately after importing the image\n" -" - 'after edit': after any user change on the image." +" - 'after edit': after any user change on the image or adding tags." msgstr "" -"sepet dosyaları, görüntü dosyalarının kusursuz bir şekilde yeniden içe " -"aktarılmasını sağlamak için tüm geliştirme adımlarınız hakkında bilgi " -"içerir.\n" +"XMP sepet dosyaları, görüntü dosyalarının kusursuz bir şekilde yeniden içe " +"aktarılmasına olanak sağlamak için tüm geliştirme adımlarınızla ilgili " +"bilgileri içerir.\n" "\n" -"seçilen moda bağlı olarak sepet dosyaları yazılacaktır:\n" +"seçilen moda bağlı olarak sepet dosyaları oluşturulacaktır:\n" " - 'Asla'\n" -" - 'içe aktarıldığında': görüntüyü içe aktardıktan hemen sonra\n" -" - 'düzenlemeden sonra': görüntü üzerinde herhangi bir kullanıcı " -"değişikliğinden sonra." +" - 'içe aktarmada': görüntüyü içe aktardıktan hemen sonra\n" +" - 'düzenlemeden sonra': görsel üzerinde herhangi bir kullanıcı değişikliği " +"yapıldıktan veya etiket eklendikten sonra." -#: ../build/bin/preferences_gen.h:6888 +#: ../build/bin/preferences_gen.h:7248 msgid "store XMP tags in compressed format" msgstr "XMP etiketlerini sıkıştırılmış biçimde saklayın" -#: ../build/bin/preferences_gen.h:6931 +#: ../build/bin/preferences_gen.h:7262 msgid "" "entries in XMP tags can get rather large and may exceed the available space " "to store the history stack in output files.\n" @@ -1852,27 +1993,46 @@ "bu seçenek, XMP etiketlerinin sıkıştırılmasına ve yerden tasarruf edilmesine " "olanak tanır." -#: ../build/bin/preferences_gen.h:6953 +#: ../build/bin/preferences_gen.h:7283 +msgid "auto-save interval" +msgstr "otomatik kaydetme aralığı" + +#: ../build/bin/preferences_gen.h:7306 +msgid "" +"automatically save history while developing using the given interval (in " +"seconds); set to zero to disable auto-saving. auto-saving might be disabled " +"on slow drives." +msgstr "" +"verilen aralığı kullanarak (saniye cinsinden) geliştirme yaparken geçmişi " +"otomatik olarak kaydedin; Otomatik kaydetmeyi devre dışı bırakmak için " +"sıfıra ayarlayın. yavaş sürücülerde otomatik kaydetme devre dışı " +"bırakılabilir." + +#: ../build/bin/preferences_gen.h:7327 msgid "look for updated XMP files on startup" msgstr "başlangıçta güncellenmiş XMP dosyalarını arayın" -#: ../build/bin/preferences_gen.h:6967 +#: ../build/bin/preferences_gen.h:7340 msgid "" "check file modification times of all XMP files on startup to check if any " "got updated in the meantime" msgstr "" -"Bu arada herhangi birinin güncellenip güncellenmediğini kontrol etmek için " +"bu arada herhangi birinin güncellenip güncellenmediğini kontrol etmek için " "başlangıçta tüm XMP dosyalarının dosya değişiklik zamanlarını kontrol edin" -#: ../build/bin/preferences_gen.h:7007 +#: ../build/bin/preferences_gen.h:7372 +msgid "miscellaneous" +msgstr "çeşitli" + +#: ../build/bin/preferences_gen.h:7374 msgid "interface" msgstr "arayüz" -#: ../build/bin/preferences_gen.h:7027 +#: ../build/bin/preferences_gen.h:7393 msgid "load default shortcuts at startup" msgstr "başlangıçta varsayılan kısayolları yükle" -#: ../build/bin/preferences_gen.h:7041 +#: ../build/bin/preferences_gen.h:7406 msgid "" "load default shortcuts before user settings. switch off to prevent deleted " "defaults returning" @@ -1880,30 +2040,30 @@ "kullanıcı ayarlarından önce varsayılan kısayolları yükleyin. silinen " "varsayılanların geri dönmesini önlemek için kapatın" -#: ../build/bin/preferences_gen.h:7063 +#: ../build/bin/preferences_gen.h:7427 msgid "scale slider step with min/max" msgstr "asg/azm ile ölçek kaydırma adımı" -#: ../build/bin/preferences_gen.h:7077 +#: ../build/bin/preferences_gen.h:7440 msgid "vary slider step size with min/max range" msgstr "kaydırıcı adım boyutunu asg/azm aralığı ile değiştirin" -#: ../build/bin/preferences_gen.h:7099 +#: ../build/bin/preferences_gen.h:7461 msgid "sort built-in presets first" msgstr "önce yerleşik ön ayarları sırala" -#: ../build/bin/preferences_gen.h:7113 +#: ../build/bin/preferences_gen.h:7474 msgid "" "whether to show built-in presets first before user's presets in presets menu." msgstr "" "ön ayarlar menüsünde kullanıcının ön ayarlarından önce yerleşik ön ayarların " "gösterilip gösterilmeyeceği." -#: ../build/bin/preferences_gen.h:7135 +#: ../build/bin/preferences_gen.h:7495 msgid "mouse wheel scrolls modules side panel by default" msgstr "fare tekerleği varsayılan olarak modüllerin yan panelini kaydırır" -#: ../build/bin/preferences_gen.h:7149 +#: ../build/bin/preferences_gen.h:7508 msgid "" "when enabled, use mouse wheel to scroll modules side panel. use ctrl+alt to " "use mouse wheel for data entry. when disabled, this behavior is reversed" @@ -1913,11 +2073,11 @@ "ctrl+alt tuşlarını kullanın. devre dışı bırakıldığında, bu davranış " "tersine çevrilir" -#: ../build/bin/preferences_gen.h:7171 +#: ../build/bin/preferences_gen.h:7529 msgid "always show panels' scrollbars" msgstr "panellerin kaydırma çubuklarını her zaman göster" -#: ../build/bin/preferences_gen.h:7185 +#: ../build/bin/preferences_gen.h:7542 msgid "" "defines whether the panel scrollbars should be always visible or activated " "only depending on the content. (need a restart)" @@ -1926,11 +2086,11 @@ "olarak etkinleştirilip etkinleştirilmeyeceğini tanımlar. (yeniden başlatma " "gerekiyor)" -#: ../build/bin/preferences_gen.h:7207 +#: ../build/bin/preferences_gen.h:7563 msgid "duration of the UI transitions in ms" msgstr "ms cinsinden kullanıcı arabirimi geçişlerinin süresi" -#: ../build/bin/preferences_gen.h:7231 +#: ../build/bin/preferences_gen.h:7587 msgid "" "how long the transitions take (in ms) for expanding or collapsing modules " "and other UI elements" @@ -1938,19 +2098,19 @@ "modülleri ve diğer kullanıcı arabirimi öğelerini genişletmek veya daraltmak " "için geçişlerin (ms cinsinden) ne kadar sürdüğü" -#: ../build/bin/preferences_gen.h:7253 +#: ../build/bin/preferences_gen.h:7608 msgid "position of the scopes module" msgstr "kapsam modülünün konumu" -#: ../build/bin/preferences_gen.h:7291 +#: ../build/bin/preferences_gen.h:7622 msgid "position the scopes at the top-left or top-right of the screen" msgstr "kapsamları ekranın sol veya sağ üst köşesine konumlandırın" -#: ../build/bin/preferences_gen.h:7313 +#: ../build/bin/preferences_gen.h:7643 msgid "method to use for getting the display profile" msgstr "görüntü profilini almak için kullanılacak yöntem" -#: ../build/bin/preferences_gen.h:7356 +#: ../build/bin/preferences_gen.h:7657 msgid "" "this option allows to force a specific means of getting the current display " "profile.\n" @@ -1960,11 +2120,11 @@ "izin verir.\n" "bu, bir alternatif yanlış sonuçlar verdiğinde kullanışlıdır" -#: ../build/bin/preferences_gen.h:7378 +#: ../build/bin/preferences_gen.h:7678 msgid "order or exclude MIDI devices" msgstr "MIDI cihazlarını sıralayın veya hariç tutun" -#: ../build/bin/preferences_gen.h:7396 +#: ../build/bin/preferences_gen.h:7696 msgid "" "comma-separated list of device name fragments that if matched load MIDI " "device at id given by location in list\n" @@ -1977,69 +2137,68 @@ "'BeatStep:63:16' gibi kodlama ve düğme sayısı ekleyin" #. tags -#: ../build/bin/preferences_gen.h:7412 ../src/develop/lightroom.c:1516 -#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:333 -#: ../src/libs/image.c:558 ../src/libs/metadata_view.c:162 +#: ../build/bin/preferences_gen.h:7715 ../src/develop/lightroom.c:1573 +#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:322 +#: ../src/libs/image.c:614 ../src/libs/metadata_view.c:166 msgid "tags" msgstr "etiketler" -#: ../build/bin/preferences_gen.h:7432 +#: ../build/bin/preferences_gen.h:7734 msgid "omit hierarchy in simple tag lists" msgstr "basit etiket listelerinde hiyerarşiyi atla" -#: ../build/bin/preferences_gen.h:7446 +#: ../build/bin/preferences_gen.h:7747 msgid "" -"when creating XMP file the hierarchical tags are also added as a simple " -"list\n" +"when creating an XMP sidecar file the hierarchical tags are also added as a " +"simple list\n" "of non-hierarchical ones to make them visible to some other programs.\n" "when this option is checked darktable will only include their last part\n" "and ignore the rest. so 'foo|bar|baz' will only add 'baz'." msgstr "" -"XMP dosyası oluşturulurken hiyerarşik etiketler de basit bir liste olarak " -"eklenir\n" -"diğer bazı programlara görünür kılmak için hiyerarşik olmayanların listesi.\n" -"bu seçenek işaretlendiğinde, darktable yalnızca son bölümünü içerecektir\n" -"ve gerisini görmezden gelin. yani 'foo|bar|baz' sadece 'baz' ekleyecektir." +"XMP sepet dosyası oluştururken hiyerarşik etiketler de basit bir liste " +"olarak eklenir\n" +"Hiyerarşik olmayanların diğer bazı programlara görünür olmasını sağlamak " +"için.\n" +"bu seçenek işaretlendiğinde karanlık tablo yalnızca son bölümünü " +"içerecektir\n" +"ve gerisini görmezden gelin. yani 'foo|bar|baz' yalnızca 'baz'ı ekleyecektir." -#: ../build/bin/preferences_gen.h:7456 +#: ../build/bin/preferences_gen.h:7756 msgid "shortcuts with multiple instances" msgstr "birden çok örneği olan kısayollar" -#: ../build/bin/preferences_gen.h:7461 -msgid "" -"where multiple module instances are present, these preferences control rules " -"that are applied (in order) to decide which module instance shortcuts will " -"be applied to" -msgstr "" -"birden fazla modül örneğinin mevcut olduğu durumlarda, bu tercihler, hangi " -"modül örneği kısayollarının uygulanacağına karar vermek için (sırasıyla) " -"uygulanan kuralları kontrol eder" - -#: ../build/bin/preferences_gen.h:7477 +#: ../build/bin/preferences_gen.h:7775 msgid "prefer focused instance" msgstr "odaklanmış örneği tercih et" -#: ../build/bin/preferences_gen.h:7491 +#: ../build/bin/preferences_gen.h:7788 msgid "" -"if an instance of the module has focus, apply shortcut to that instance\n" +"where multiple instances of a module are present, apply shortcuts to the " +"instance that has focus\n" +"if none are focused, the preferences below control rules that are followed " +"(in order) to decide which module instance shortcuts will be applied to.\n" "note: blending shortcuts always apply to the focused instance" msgstr "" -"modülün bir örneğinin odağı varsa, o örneğe kısayol uygulayın\n" +"bir modülün birden fazla örneğinin mevcut olduğu durumlarda, odaklanılan " +"örneğe kısayollar uygulayın\n" +"hiçbiri odaklanılmamışsa, aşağıdaki tercihler hangi modül örneği " +"kısayollarının uygulanacağına karar vermek için (sırasıyla) takip edilen " +"kuralları kontrol eder.\n" "not: karıştırma kısayolları her zaman odaklanılan örneğe uygulanır" -#: ../build/bin/preferences_gen.h:7513 +#: ../build/bin/preferences_gen.h:7809 msgid "prefer expanded instances" msgstr "genişletilmiş örnekleri tercih et" -#: ../build/bin/preferences_gen.h:7527 +#: ../build/bin/preferences_gen.h:7822 msgid "if instances of the module are expanded, ignore collapsed instances" msgstr "modülün örnekleri genişletilirse, daraltılmış örnekleri yok sayın" -#: ../build/bin/preferences_gen.h:7549 +#: ../build/bin/preferences_gen.h:7843 msgid "prefer enabled instances" msgstr "etkin örnekleri tercih et" -#: ../build/bin/preferences_gen.h:7563 +#: ../build/bin/preferences_gen.h:7856 msgid "" "after applying the above rule, if instances of the module are active, ignore " "inactive instances" @@ -2047,11 +2206,11 @@ "yukarıdaki kuralı uyguladıktan sonra, modülün örnekleri aktifse, aktif " "olmayan örnekleri yok sayın" -#: ../build/bin/preferences_gen.h:7585 +#: ../build/bin/preferences_gen.h:7877 msgid "prefer unmasked instances" msgstr "maskesiz örnekleri tercih et" -#: ../build/bin/preferences_gen.h:7599 +#: ../build/bin/preferences_gen.h:7890 msgid "" "after applying the above rules, if instances of the module are unmasked, " "ignore masked instances" @@ -2059,11 +2218,11 @@ "yukarıdaki kuralları uyguladıktan sonra, modülün örnekleri maskelenmemişse, " "maskelenmiş örnekleri yok sayın" -#: ../build/bin/preferences_gen.h:7621 +#: ../build/bin/preferences_gen.h:7911 msgid "selection order" msgstr "seçim sırası" -#: ../build/bin/preferences_gen.h:7659 +#: ../build/bin/preferences_gen.h:7925 msgid "" "after applying the above rules, apply the shortcut based on its position in " "the pixelpipe" @@ -2071,11 +2230,11 @@ "yukarıdaki kuralları uyguladıktan sonra, piksel borusundaki konumuna göre " "kısayolu uygulayın" -#: ../build/bin/preferences_gen.h:7681 +#: ../build/bin/preferences_gen.h:7946 msgid "allow visual assignment to specific instances" msgstr "belirli örneklere görsel atamaya izin ver" -#: ../build/bin/preferences_gen.h:7695 +#: ../build/bin/preferences_gen.h:7959 msgid "" "when multiple instances are present on an image this allows shortcuts to be " "visually assigned to those specific instances\n" @@ -2085,79 +2244,43 @@ "örneklere görsel olarak atanmasına olanak tanır\n" "aksi takdirde kısayollar her zaman tercih edilen örneğe atanır" -#: ../build/bin/preferences_gen.h:7705 +#: ../build/bin/preferences_gen.h:7968 msgid "map / geolocalization view" msgstr "harita / coğrafi konum belirleme görünümü" -#: ../build/bin/preferences_gen.h:7725 +#: ../build/bin/preferences_gen.h:7987 msgid "pretty print the image location" msgstr "güzel görüntü yerele yazdır" -#: ../build/bin/preferences_gen.h:7739 +#: ../build/bin/preferences_gen.h:8000 msgid "" "show a more readable representation of the location in the image information " "module" msgstr "görüntü bilgi modülünde yerelin daha okunaklı bir temsilini göster" -#: ../build/bin/preferences_gen.h:7749 +#: ../build/bin/preferences_gen.h:8009 msgid "slideshow view" msgstr "slayt gösterisi görünümü" -#: ../build/bin/preferences_gen.h:7769 +#: ../build/bin/preferences_gen.h:8028 msgid "waiting time between each picture in slideshow" msgstr "slayt gösterisinde her resim arasında bekleme süresi" -#: ../build/bin/preferences_gen.h:7831 -msgid "session options" -msgstr "oturum seçenekleri" - -#: ../build/bin/preferences_gen.h:7851 -msgid "base directory naming pattern" -msgstr "temel dizin adlandırma kalıbı" - -#: ../build/bin/preferences_gen.h:7869 ../build/bin/preferences_gen.h:7909 -msgid "part of full import path for an import session" -msgstr "bir içe aktarma oturumu için tam içe aktarma yolunun bir parçası" - -#: ../build/bin/preferences_gen.h:7891 -msgid "sub directory naming pattern" -msgstr "alt dizin adlandırma kalıbı" - -#: ../build/bin/preferences_gen.h:7931 -msgid "keep original filename" -msgstr "orijinal dosya adını koru" - -#: ../build/bin/preferences_gen.h:7945 -msgid "" -"keep original filename instead of a pattern while importing from camera or " -"card" -msgstr "" -"kameradan veya karttan içe aktarırken desen yerine orijinal dosya adını " -"koruyun" - -#: ../build/bin/preferences_gen.h:7967 -msgid "file naming pattern" -msgstr "dosya adlandırma kalıbı" - -#: ../build/bin/preferences_gen.h:7985 -msgid "file naming pattern used for a import session" -msgstr "bir içe aktarma oturumu için kullanılan dosya adlandırma kalıbı" - -#: ../build/bin/preferences_gen.h:8022 +#: ../build/bin/preferences_gen.h:8088 msgid "do not set the 'uncategorized' entry for tags" msgstr "etiketler için 'kategorize edilmemiş' girişi ayarlamayın" -#: ../build/bin/preferences_gen.h:8036 +#: ../build/bin/preferences_gen.h:8101 msgid "" "do not set the 'uncategorized' entry for tags which do not have children" msgstr "" "alt öğesi olmayan etiketler için 'kategorize edilmemiş' girişi ayarlamayın" -#: ../build/bin/preferences_gen.h:8058 +#: ../build/bin/preferences_gen.h:8122 msgid "tags case sensitivity" msgstr "etiketler büyük/küçük harf duyarlılığı" -#: ../build/bin/preferences_gen.h:8096 +#: ../build/bin/preferences_gen.h:8136 msgid "" "tags case sensitivity. without the Sqlite ICU extension, insensitivity works " "only for the 26 latin letters" @@ -2165,27 +2288,27 @@ "tiketler büyük/küçük harf duyarlılığı. Sqlite ICU uzantısı olmadan, " "duyarsızlık yalnızca 26 latin harfi için çalışır" -#: ../build/bin/preferences_gen.h:8118 ../build/bin/preferences_gen.h:8358 +#: ../build/bin/preferences_gen.h:8157 ../build/bin/preferences_gen.h:8368 msgid "number of collections to be stored" msgstr "saklanacak koleksiyon sayısı" -#: ../build/bin/preferences_gen.h:8142 ../build/bin/preferences_gen.h:8382 +#: ../build/bin/preferences_gen.h:8181 ../build/bin/preferences_gen.h:8392 msgid "the number of recent collections to store and show in this list" msgstr "bu listede saklanacak ve gösterilecek son koleksiyonların sayısı" -#: ../build/bin/preferences_gen.h:8164 +#: ../build/bin/preferences_gen.h:8202 msgid "hide the history button and show a specific module instead" msgstr "geçmiş düğmesini gizle ve bunun yerine belirli bir modülü göster" -#: ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8215 msgid "hide the history button and show the recent collections module instead" msgstr "geçmiş düğmesini gizle ve bunun yerine son koleksiyon modülünü göster" -#: ../build/bin/preferences_gen.h:8200 +#: ../build/bin/preferences_gen.h:8236 msgid "number of folder levels to show in lists" msgstr "listelerde gösterilecek dizin düzeyi sayısı" -#: ../build/bin/preferences_gen.h:8224 +#: ../build/bin/preferences_gen.h:8260 msgid "" "the number of folder levels to show in film roll names, starting from the " "right" @@ -2193,19 +2316,24 @@ "sağdan başlayarak film rulosu adlarında gösterilecek klasör düzeylerinin " "sayısı" -#: ../build/bin/preferences_gen.h:8246 +#: ../build/bin/preferences_gen.h:8281 msgid "sort film rolls by" msgstr "film rulolarını sırala" -#: ../build/bin/preferences_gen.h:8284 +#: ../build/bin/preferences_gen.h:8292 +msgctxt "preferences" +msgid "chronological" +msgstr "kronolojik" + +#: ../build/bin/preferences_gen.h:8295 msgid "sets the collections-list order for film rolls" msgstr "film ruloları için koleksiyon listesi sırasını belirler" -#: ../build/bin/preferences_gen.h:8306 +#: ../build/bin/preferences_gen.h:8316 msgid "sort collection descending" msgstr "koleksiyonu azalan sıralama" -#: ../build/bin/preferences_gen.h:8320 +#: ../build/bin/preferences_gen.h:8329 msgid "" "sort the following collections in descending order: 'film roll' by folder, " "'folder', 'times' (e.g. 'capture date')" @@ -2213,11 +2341,11 @@ "aşağıdaki koleksiyonları azalan düzende sıralayın: 'film rulosu' klasöre " "göre, 'klasör', 'kez' (örneğin, 'yakalama tarihi')" -#: ../build/bin/preferences_gen.h:8404 +#: ../build/bin/preferences_gen.h:8413 msgid "prefer a history button in the collections module" msgstr "koleksiyon modülünde bir geçmiş düğmesini tercih edin" -#: ../build/bin/preferences_gen.h:8418 +#: ../build/bin/preferences_gen.h:8426 msgid "" "hide this module and instead access collections history with a button in the " "collections module" @@ -2225,11 +2353,11 @@ "bu modülü gizleyin ve bunun yerine koleksiyonlar modülündeki bir düğmeyle " "koleksiyon geçmişine erişin" -#: ../build/bin/preferences_gen.h:8472 +#: ../build/bin/preferences_gen.h:8483 msgid "suggested tags level of confidence" msgstr "önerilen etiketler güven düzeyi" -#: ../build/bin/preferences_gen.h:8497 +#: ../build/bin/preferences_gen.h:8508 #, no-c-format msgid "" "level of confidence to include the tag in the suggestions list, 0: all " @@ -2240,11 +2368,11 @@ "ilişkili etiketler, 99: 99% eşleşen ilişkili etiketler, 100: yalnızca en son " "etiketleri göstermek için eşleşen etiket yok (daha hızlı)" -#: ../build/bin/preferences_gen.h:8519 +#: ../build/bin/preferences_gen.h:8529 msgid "number of recently attached tags" msgstr "son eklenen etiket sayısı" -#: ../build/bin/preferences_gen.h:8543 +#: ../build/bin/preferences_gen.h:8553 msgid "" "number of recently attached tags which are included in the suggestions list. " "the value `-1' disables the recent list" @@ -2270,14 +2398,15 @@ #. focal length #: ../build/lib/darktable/plugins/introspection_ashift.c:148 #: ../build/lib/darktable/plugins/introspection_ashift.c:291 -#: ../src/common/collection.c:714 ../src/gui/preferences.c:844 -#: ../src/gui/presets.c:718 ../src/libs/camera.c:550 -#: ../src/libs/metadata_view.c:143 +#: ../src/common/collection.c:627 ../src/gui/preferences.c:842 +#: ../src/gui/presets.c:721 ../src/libs/camera.c:550 +#: ../src/libs/metadata_view.c:145 msgid "focal length" msgstr "odak uzaklığı" #: ../build/lib/darktable/plugins/introspection_ashift.c:154 #: ../build/lib/darktable/plugins/introspection_ashift.c:295 +#: ../src/libs/metadata_view.c:147 msgid "crop factor" msgstr "kırpma etkeni" @@ -2293,7 +2422,7 @@ #: ../build/lib/darktable/plugins/introspection_ashift.c:172 #: ../build/lib/darktable/plugins/introspection_ashift.c:307 -#: ../src/iop/lens.cc:3784 +#: ../src/iop/lens.cc:4438 msgid "lens model" msgstr "mercek modeli" @@ -2315,14 +2444,14 @@ #. DEVELOP_MASK_DISABLED #: ../build/lib/darktable/plugins/introspection_ashift.c:366 -#: ../build/lib/darktable/plugins/introspection_colorin.c:300 +#: ../build/lib/darktable/plugins/introspection_colorin.c:303 #: ../build/lib/darktable/plugins/introspection_highlights.c:310 #: ../build/lib/darktable/plugins/introspection_vignette.c:264 #: ../src/develop/blend_gui.c:153 ../src/develop/blend_gui.c:182 -#: ../src/develop/blend_gui.c:3410 ../src/gui/accelerators.c:130 -#: ../src/gui/accelerators.c:140 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/imageio/format/j2k.c:669 -#: ../src/libs/live_view.c:361 ../src/libs/masks.c:113 +#: ../src/develop/blend_gui.c:3429 ../src/gui/accelerators.c:148 +#: ../src/gui/accelerators.c:158 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/imageio/format/j2k.c:686 +#: ../src/libs/live_view.c:361 msgid "off" msgstr "kapalı" @@ -2346,7 +2475,7 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:146 #: ../build/lib/darktable/plugins/introspection_basecurve.c:239 -#: ../src/libs/metadata_view.c:142 +#: ../src/libs/metadata_view.c:144 msgid "exposure bias" msgstr "maruz kalma yanlılığı" @@ -2366,16 +2495,16 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:262 #: ../build/lib/darktable/plugins/introspection_basicadj.c:249 #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:153 -#: ../build/lib/darktable/plugins/introspection_lens.cc:444 +#: ../build/lib/darktable/plugins/introspection_lens.cc:533 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:251 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:153 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:270 -#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2193 -#: ../src/iop/channelmixerrgb.c:4667 ../src/iop/clipping.c:1900 -#: ../src/iop/clipping.c:2093 ../src/iop/clipping.c:2108 -#: ../src/iop/retouch.c:463 ../src/libs/collect.c:1907 -#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1023 -#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:132 +#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2214 +#: ../src/iop/channelmixerrgb.c:4735 ../src/iop/clipping.c:1953 +#: ../src/iop/clipping.c:2146 ../src/iop/clipping.c:2161 +#: ../src/iop/retouch.c:507 ../src/libs/collect.c:2043 +#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1101 +#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:109 #: ../src/libs/live_view.c:311 ../src/libs/print_settings.c:2835 msgid "none" msgstr "yok" @@ -2393,7 +2522,7 @@ #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:252 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:154 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:271 -#: ../src/develop/blend_gui.c:2363 ../src/develop/blend_gui.c:2397 +#: ../src/develop/blend_gui.c:2379 ../src/develop/blend_gui.c:2413 msgid "luminance" msgstr "parlaklık" @@ -2503,7 +2632,7 @@ #: ../build/lib/darktable/plugins/introspection_graduatednd.c:144 #: ../build/lib/darktable/plugins/introspection_watermark.c:136 #: ../build/lib/darktable/plugins/introspection_watermark.c:265 -#: ../src/iop/ashift.c:6112 ../src/libs/masks.c:108 +#: ../src/iop/ashift.c:6059 ../src/libs/masks.c:109 msgid "rotation" msgstr "yön" @@ -2514,7 +2643,7 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:125 #: ../build/lib/darktable/plugins/introspection_blurs.c:202 -#: ../src/libs/masks.c:109 +#: ../src/libs/masks.c:110 msgid "curvature" msgstr "eğrilik" @@ -2522,13 +2651,13 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:206 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:81 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:148 -#: ../src/iop/colorbalancergb.c:1968 +#: ../src/iop/colorbalancergb.c:2039 msgid "offset" msgstr "ofset" #: ../build/lib/darktable/plugins/introspection_blurs.c:220 -#: ../src/common/collection.c:712 ../src/gui/preferences.c:828 -#: ../src/gui/presets.c:660 ../src/libs/metadata_view.c:139 +#: ../src/common/collection.c:625 ../src/gui/preferences.c:826 +#: ../src/gui/presets.c:663 ../src/libs/metadata_view.c:141 msgid "lens" msgstr "mercek" @@ -2544,63 +2673,90 @@ msgid "gaussian" msgstr "gaussian" -#: ../build/lib/darktable/plugins/introspection_borders.c:112 -#: ../build/lib/darktable/plugins/introspection_borders.c:253 -#: ../src/common/collection.c:722 ../src/libs/filtering.c:59 +#: ../build/lib/darktable/plugins/introspection_borders.c:122 +#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../src/common/collection.c:635 ../src/libs/filtering.c:59 msgid "aspect ratio" msgstr "en boy oranı" #. // portrait / landscape -#: ../build/lib/darktable/plugins/introspection_borders.c:130 -#: ../build/lib/darktable/plugins/introspection_borders.c:265 +#: ../build/lib/darktable/plugins/introspection_borders.c:140 +#: ../build/lib/darktable/plugins/introspection_borders.c:281 #: ../src/iop/flip.c:75 ../src/libs/print_settings.c:2517 msgid "orientation" msgstr "yönlendirme" -#: ../build/lib/darktable/plugins/introspection_borders.c:136 -#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../build/lib/darktable/plugins/introspection_borders.c:146 +#: ../build/lib/darktable/plugins/introspection_borders.c:285 msgid "border size" msgstr "kenarlık boyutu" -#: ../build/lib/darktable/plugins/introspection_borders.c:142 -#: ../build/lib/darktable/plugins/introspection_borders.c:273 +#: ../build/lib/darktable/plugins/introspection_borders.c:152 +#: ../build/lib/darktable/plugins/introspection_borders.c:289 msgid "horizontal offset" msgstr "yatay ofset" -#: ../build/lib/darktable/plugins/introspection_borders.c:160 -#: ../build/lib/darktable/plugins/introspection_borders.c:285 +#: ../build/lib/darktable/plugins/introspection_borders.c:170 +#: ../build/lib/darktable/plugins/introspection_borders.c:301 msgid "vertical offset" msgstr "dikey ofset" -#: ../build/lib/darktable/plugins/introspection_borders.c:178 -#: ../build/lib/darktable/plugins/introspection_borders.c:297 +#: ../build/lib/darktable/plugins/introspection_borders.c:188 +#: ../build/lib/darktable/plugins/introspection_borders.c:313 msgid "frame line size" msgstr "çerçeve çizgi boyutu" -#: ../build/lib/darktable/plugins/introspection_borders.c:184 -#: ../build/lib/darktable/plugins/introspection_borders.c:301 +#: ../build/lib/darktable/plugins/introspection_borders.c:194 +#: ../build/lib/darktable/plugins/introspection_borders.c:317 msgid "frame line offset" msgstr "çerçeve çizgisi ofseti" -#: ../build/lib/darktable/plugins/introspection_borders.c:327 -#: ../src/gui/preferences.c:849 ../src/iop/ashift.c:6291 -#: ../src/iop/basicadj.c:632 ../src/iop/flip.c:472 ../src/iop/flip.c:474 -#: ../src/iop/levels.c:641 ../src/iop/rgblevels.c:1050 +#: ../build/lib/darktable/plugins/introspection_borders.c:218 +#: ../build/lib/darktable/plugins/introspection_borders.c:333 +msgid "basis" +msgstr "temel" + +#: ../build/lib/darktable/plugins/introspection_borders.c:347 +#: ../build/lib/darktable/plugins/introspection_borders.c:353 +#: ../src/gui/preferences.c:847 ../src/imageio/format/jpeg.c:604 +#: ../src/iop/ashift.c:6238 ../src/iop/basicadj.c:662 ../src/iop/flip.c:470 +#: ../src/iop/flip.c:472 ../src/iop/levels.c:657 ../src/iop/rgblevels.c:1105 msgid "auto" msgstr "otomatik" -#: ../build/lib/darktable/plugins/introspection_borders.c:328 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:309 +#: ../build/lib/darktable/plugins/introspection_borders.c:348 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:315 #: ../src/libs/filters/ratio.c:122 ../src/libs/print_settings.c:2519 msgid "portrait" msgstr "dikey" -#: ../build/lib/darktable/plugins/introspection_borders.c:329 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:305 +#: ../build/lib/darktable/plugins/introspection_borders.c:349 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:311 #: ../src/libs/filters/ratio.c:124 ../src/libs/print_settings.c:2519 msgid "landscape" msgstr "yatay" +#: ../build/lib/darktable/plugins/introspection_borders.c:354 +#: ../src/iop/relight.c:275 ../src/libs/export.c:1223 +#: ../src/libs/metadata_view.c:151 ../src/libs/print_settings.c:2537 +msgid "width" +msgstr "genişlik" + +#: ../build/lib/darktable/plugins/introspection_borders.c:355 +#: ../build/lib/darktable/plugins/introspection_watermark.c:326 +#: ../src/libs/export.c:1229 ../src/libs/metadata_view.c:152 +#: ../src/libs/print_settings.c:2541 +msgid "height" +msgstr "yükseklik" + +#: ../build/lib/darktable/plugins/introspection_borders.c:356 +msgid "shorter" +msgstr "daha kısa" + +#: ../build/lib/darktable/plugins/introspection_borders.c:357 +msgid "longer" +msgstr "daha uzun" + #: ../build/lib/darktable/plugins/introspection_cacorrect.c:42 #: ../build/lib/darktable/plugins/introspection_cacorrect.c:91 msgid "avoid colorshift" @@ -2647,9 +2803,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:67 #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:132 -#: ../src/iop/atrous.c:1522 ../src/iop/bilateral.cc:350 ../src/iop/clahe.c:335 -#: ../src/iop/dither.c:760 ../src/iop/lowpass.c:584 ../src/iop/shadhi.c:675 -#: ../src/iop/sharpen.c:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:340 +#: ../build/lib/darktable/plugins/introspection_lens.cc:501 +#: ../src/iop/atrous.c:1636 ../src/iop/bilateral.cc:352 ../src/iop/clahe.c:337 +#: ../src/iop/dither.c:762 ../src/iop/lowpass.c:597 ../src/iop/shadhi.c:710 +#: ../src/iop/sharpen.c:435 msgid "radius" msgstr "yarıçap" @@ -2657,9 +2815,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:136 #: ../build/lib/darktable/plugins/introspection_highlights.c:137 #: ../build/lib/darktable/plugins/introspection_highlights.c:240 -#: ../src/iop/bloom.c:376 ../src/iop/denoiseprofile.c:3818 -#: ../src/iop/grain.c:584 ../src/iop/hazeremoval.c:201 -#: ../src/iop/hotpixels.c:388 ../src/iop/nlmeans.c:460 ../src/iop/velvia.c:279 +#: ../build/lib/darktable/plugins/introspection_lens.cc:334 +#: ../build/lib/darktable/plugins/introspection_lens.cc:497 +#: ../src/iop/bloom.c:372 ../src/iop/denoiseprofile.c:3822 +#: ../src/iop/grain.c:602 ../src/iop/hazeremoval.c:203 +#: ../src/iop/hotpixels.c:467 ../src/iop/nlmeans.c:463 ../src/iop/velvia.c:288 msgid "strength" msgstr "sertlik" @@ -2674,41 +2834,41 @@ msgstr "çok büyük renk sapması" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:158 -#: ../src/common/collection.c:1507 ../src/common/color_vocabulary.c:232 -#: ../src/common/colorlabels.c:334 ../src/develop/blend_gui.c:2330 -#: ../src/develop/blend_gui.c:2378 ../src/develop/lightroom.c:834 -#: ../src/gui/gtk.c:3137 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:354 -#: ../src/iop/channelmixer.c:618 ../src/iop/channelmixer.c:628 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/colorzones.c:2263 -#: ../src/iop/temperature.c:1935 ../src/iop/temperature.c:2129 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:260 -#: ../src/libs/histogram.c:2397 +#: ../src/common/collection.c:1374 ../src/common/color_vocabulary.c:232 +#: ../src/common/colorlabels.c:333 ../src/develop/blend_gui.c:2346 +#: ../src/develop/blend_gui.c:2394 ../src/develop/lightroom.c:887 +#: ../src/gui/gtk.c:3183 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:356 +#: ../src/iop/channelmixer.c:637 ../src/iop/channelmixer.c:647 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/colorzones.c:2499 +#: ../src/iop/temperature.c:1912 ../src/iop/temperature.c:2094 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:260 +#: ../src/libs/histogram.c:2724 msgid "red" msgstr "kırmızı" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:159 -#: ../src/common/collection.c:1511 ../src/common/color_vocabulary.c:277 -#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2336 -#: ../src/develop/blend_gui.c:2384 ../src/develop/lightroom.c:838 -#: ../src/gui/gtk.c:3138 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:359 -#: ../src/iop/channelmixer.c:619 ../src/iop/channelmixer.c:634 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/colorzones.c:2266 -#: ../src/iop/temperature.c:1919 ../src/iop/temperature.c:1937 -#: ../src/iop/temperature.c:2130 ../src/libs/collect.c:1791 -#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2389 +#: ../src/common/collection.c:1378 ../src/common/color_vocabulary.c:277 +#: ../src/common/colorlabels.c:335 ../src/develop/blend_gui.c:2352 +#: ../src/develop/blend_gui.c:2400 ../src/develop/lightroom.c:891 +#: ../src/gui/gtk.c:3184 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:361 +#: ../src/iop/channelmixer.c:638 ../src/iop/channelmixer.c:653 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/colorzones.c:2502 +#: ../src/iop/temperature.c:1896 ../src/iop/temperature.c:1914 +#: ../src/iop/temperature.c:2095 ../src/libs/collect.c:1916 +#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2715 msgid "green" msgstr "yeşil" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:160 -#: ../src/common/collection.c:1513 ../src/common/color_vocabulary.c:324 -#: ../src/common/colorlabels.c:337 ../src/develop/blend_gui.c:2342 -#: ../src/develop/blend_gui.c:2390 ../src/develop/lightroom.c:840 -#: ../src/gui/gtk.c:3139 ../src/iop/bilateral.cc:364 -#: ../src/iop/channelmixer.c:620 ../src/iop/channelmixer.c:640 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/colorzones.c:2268 -#: ../src/iop/temperature.c:1939 ../src/iop/temperature.c:2131 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:263 -#: ../src/libs/histogram.c:2381 +#: ../src/common/collection.c:1380 ../src/common/color_vocabulary.c:324 +#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2358 +#: ../src/develop/blend_gui.c:2406 ../src/develop/lightroom.c:893 +#: ../src/gui/gtk.c:3185 ../src/iop/bilateral.cc:366 +#: ../src/iop/channelmixer.c:639 ../src/iop/channelmixer.c:659 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/colorzones.c:2504 +#: ../src/iop/temperature.c:1916 ../src/iop/temperature.c:2096 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:263 +#: ../src/libs/histogram.c:2706 msgid "blue" msgstr "mavi" @@ -2951,7 +3111,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:303 #: ../build/lib/darktable/plugins/introspection_crop.c:61 #: ../build/lib/darktable/plugins/introspection_crop.c:134 -#: ../src/gui/gtk.c:1141 ../src/iop/atrous.c:1518 +#: ../src/gui/gtk.c:1234 ../src/iop/atrous.c:1632 msgid "left" msgstr "sol" @@ -2959,7 +3119,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:307 #: ../build/lib/darktable/plugins/introspection_crop.c:67 #: ../build/lib/darktable/plugins/introspection_crop.c:138 -#: ../src/gui/accelerators.c:113 ../src/gui/gtk.c:1155 +#: ../src/gui/accelerators.c:131 ../src/gui/gtk.c:1240 msgid "top" msgstr "üst" @@ -2967,7 +3127,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:311 #: ../build/lib/darktable/plugins/introspection_crop.c:73 #: ../build/lib/darktable/plugins/introspection_crop.c:142 -#: ../src/gui/gtk.c:1148 ../src/iop/atrous.c:1517 +#: ../src/gui/gtk.c:1237 ../src/iop/atrous.c:1631 msgid "right" msgstr "sağ" @@ -2975,7 +3135,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:315 #: ../build/lib/darktable/plugins/introspection_crop.c:79 #: ../build/lib/darktable/plugins/introspection_crop.c:146 -#: ../src/gui/accelerators.c:114 ../src/gui/gtk.c:1162 +#: ../src/gui/accelerators.c:132 ../src/gui/gtk.c:1243 msgid "bottom" msgstr "alt" @@ -3014,10 +3174,11 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:477 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:489 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:501 -#: ../src/develop/blend_gui.c:2356 ../src/develop/blend_gui.c:2404 -#: ../src/iop/atrous.c:1667 ../src/iop/channelmixerrgb.c:4457 -#: ../src/iop/channelmixerrgb.c:4573 ../src/iop/colorbalancergb.c:1895 -#: ../src/iop/colorzones.c:2402 ../src/iop/nlmeans.c:468 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 +#: ../src/develop/blend_gui.c:2372 ../src/develop/blend_gui.c:2420 +#: ../src/iop/atrous.c:1801 ../src/iop/channelmixerrgb.c:4525 +#: ../src/iop/channelmixerrgb.c:4641 ../src/iop/colorbalancergb.c:1966 +#: ../src/iop/colorzones.c:2645 ../src/iop/nlmeans.c:471 msgid "chroma" msgstr "renklendirici" @@ -3037,11 +3198,11 @@ #: ../build/lib/darktable/plugins/introspection_splittoning.c:73 #: ../build/lib/darktable/plugins/introspection_splittoning.c:134 #: ../build/lib/darktable/plugins/introspection_splittoning.c:142 -#: ../src/develop/blend_gui.c:2315 ../src/develop/blend_gui.c:2349 -#: ../src/develop/blend_gui.c:2411 ../src/iop/channelmixer.c:615 -#: ../src/iop/channelmixerrgb.c:4450 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/colorbalance.c:2042 ../src/iop/colorize.c:330 -#: ../src/iop/colorreconstruction.c:1240 ../src/iop/colorzones.c:2403 +#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2365 +#: ../src/develop/blend_gui.c:2427 ../src/iop/channelmixer.c:634 +#: ../src/iop/channelmixerrgb.c:4518 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/colorbalance.c:2017 ../src/iop/colorize.c:343 +#: ../src/iop/colorreconstruction.c:1249 ../src/iop/colorzones.c:2646 msgid "hue" msgstr "ton" @@ -3068,9 +3229,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:569 #: ../build/lib/darktable/plugins/introspection_toneequal.c:156 #: ../build/lib/darktable/plugins/introspection_toneequal.c:297 -#: ../src/iop/bilat.c:469 ../src/iop/colorbalance.c:2099 -#: ../src/iop/negadoctor.c:915 ../src/iop/shadhi.c:671 -#: ../src/iop/splittoning.c:507 +#: ../src/iop/bilat.c:479 ../src/iop/colorbalance.c:2074 +#: ../src/iop/negadoctor.c:934 ../src/iop/shadhi.c:706 +#: ../src/iop/splittoning.c:503 msgid "shadows" msgstr "gölgeler" @@ -3082,9 +3243,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:561 #: ../build/lib/darktable/plugins/introspection_toneequal.c:180 #: ../build/lib/darktable/plugins/introspection_toneequal.c:313 -#: ../src/iop/bilat.c:463 ../src/iop/colorbalance.c:2101 -#: ../src/iop/monochrome.c:561 ../src/iop/shadhi.c:672 -#: ../src/iop/splittoning.c:514 +#: ../src/iop/bilat.c:473 ../src/iop/colorbalance.c:2076 +#: ../src/iop/monochrome.c:583 ../src/iop/shadhi.c:707 +#: ../src/iop/splittoning.c:510 msgid "highlights" msgstr "vurgular" @@ -3101,13 +3262,13 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:565 #: ../build/lib/darktable/plugins/introspection_toneequal.c:168 #: ../build/lib/darktable/plugins/introspection_toneequal.c:305 -#: ../src/iop/colorbalance.c:2100 +#: ../src/iop/colorbalance.c:2075 msgid "mid-tones" msgstr "orta tonlar" #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:340 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:537 -#: ../src/iop/filmic.c:1576 +#: ../src/iop/filmic.c:1601 msgid "global saturation" msgstr "genel doygunluk" @@ -3138,12 +3299,12 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:412 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:585 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:64 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:137 -#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:607 ../src/iop/bilat.c:458 -#: ../src/iop/colisa.c:304 ../src/iop/colorbalance.c:1947 -#: ../src/iop/colorbalance.c:1953 ../src/iop/filmic.c:1548 -#: ../src/iop/filmicrgb.c:4551 ../src/iop/lowpass.c:586 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:116 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:237 +#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:637 ../src/iop/bilat.c:468 +#: ../src/iop/colisa.c:298 ../src/iop/colorbalance.c:1922 +#: ../src/iop/colorbalance.c:1928 ../src/iop/filmic.c:1573 +#: ../src/iop/filmicrgb.c:4615 ../src/iop/lowpass.c:599 msgid "contrast" msgstr "kontrast" @@ -3170,33 +3331,35 @@ msgid "blue-yellow contrast" msgstr "mavi-sarı kontrastı" -#: ../build/lib/darktable/plugins/introspection_colorin.c:148 -#: ../build/lib/darktable/plugins/introspection_colorin.c:231 +#: ../build/lib/darktable/plugins/introspection_colorin.c:150 +#: ../build/lib/darktable/plugins/introspection_colorin.c:233 msgid "gamut clipping" msgstr "gamut kırpma" -#: ../build/lib/darktable/plugins/introspection_colorin.c:301 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:201 -#: ../src/common/colorspaces.c:1251 ../src/common/colorspaces.c:1484 +#: ../build/lib/darktable/plugins/introspection_colorin.c:304 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:312 +#: ../src/common/colorspaces.c:1410 ../src/common/colorspaces.c:1700 #: ../src/libs/print_settings.c:1356 msgid "sRGB" msgstr "sRGB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:302 -#: ../src/common/colorspaces.c:1260 ../src/common/colorspaces.c:1486 +#: ../build/lib/darktable/plugins/introspection_colorin.c:305 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:311 +#: ../src/common/colorspaces.c:1421 ../src/common/colorspaces.c:1702 #: ../src/libs/print_settings.c:1363 msgid "Adobe RGB (compatible)" msgstr "Adobe RGB (uyumlu)" -#: ../build/lib/darktable/plugins/introspection_colorin.c:303 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 -#: ../src/common/colorspaces.c:1265 ../src/common/colorspaces.c:1488 +#: ../build/lib/darktable/plugins/introspection_colorin.c:306 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 +#: ../src/common/colorspaces.c:1428 ../src/common/colorspaces.c:1704 msgid "linear Rec709 RGB" msgstr "doğrusal Rec709 RGB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:304 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 -#: ../src/common/colorspaces.c:1274 ../src/common/colorspaces.c:1490 +#: ../build/lib/darktable/plugins/introspection_colorin.c:307 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:206 +#: ../src/common/colorspaces.c:1442 ../src/common/colorspaces.c:1706 msgid "linear Rec2020 RGB" msgstr "doğrusal Rec2020 RGB" @@ -3224,7 +3387,7 @@ #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:127 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:45 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:92 -#: ../src/iop/shadhi.c:686 +#: ../src/iop/shadhi.c:721 msgid "spatial extent" msgstr "uzaysal kapsam" @@ -3234,7 +3397,7 @@ msgstr "menzil kapsamı" #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:154 -#: ../src/iop/channelmixerrgb.c:4669 +#: ../src/iop/channelmixerrgb.c:4737 msgid "saturated colors" msgstr "doygun renkler" @@ -3248,7 +3411,7 @@ #: ../build/lib/darktable/plugins/introspection_colorzones.c:233 #: ../build/lib/darktable/plugins/introspection_soften.c:66 #: ../build/lib/darktable/plugins/introspection_soften.c:121 -#: ../src/iop/atrous.c:1689 +#: ../src/iop/atrous.c:1835 msgid "mix" msgstr "karıştır" @@ -3258,33 +3421,17 @@ msgstr "süreç modu" #: ../build/lib/darktable/plugins/introspection_colorzones.c:255 -#: ../src/develop/blend_gui.c:2294 ../src/iop/channelmixer.c:617 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/colorchecker.c:1448 -#: ../src/iop/colorize.c:349 ../src/iop/colorzones.c:2401 -#: ../src/iop/exposure.c:1239 +#: ../src/develop/blend_gui.c:2310 ../src/iop/channelmixer.c:636 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/colorchecker.c:1453 +#: ../src/iop/colorize.c:362 ../src/iop/colorzones.c:2644 +#: ../src/iop/exposure.c:1257 msgid "lightness" msgstr "hafiflik" -#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 -#: ../src/develop/blend_gui.c:2310 ../src/iop/basicadj.c:624 -#: ../src/iop/channelmixer.c:616 ../src/iop/colisa.c:306 -#: ../src/iop/colorbalance.c:2059 ../src/iop/colorbalancergb.c:1919 -#: ../src/iop/colorchecker.c:1483 ../src/iop/colorcontrast.c:90 -#: ../src/iop/colorcorrection.c:275 ../src/iop/colorize.c:343 -#: ../src/iop/lowpass.c:588 ../src/iop/soften.c:373 ../src/iop/velvia.c:84 -#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:971 -msgid "saturation" -msgstr "doygunluk" - #: ../build/lib/darktable/plugins/introspection_colorzones.c:267 -#: ../src/iop/atrous.c:1309 ../src/iop/atrous.c:1313 -#: ../src/iop/denoiseprofile.c:3527 ../src/iop/rawdenoise.c:755 +#: ../src/iop/atrous.c:1410 ../src/iop/atrous.c:1414 +#: ../src/iop/denoiseprofile.c:3531 ../src/iop/rawdenoise.c:771 +#: ../src/iop/sigmoid.c:292 msgid "smooth" msgstr "pürüzsüz" @@ -3301,9 +3448,9 @@ #: ../build/lib/darktable/plugins/introspection_defringe.c:106 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:230 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:435 -#: ../src/iop/atrous.c:1572 ../src/iop/bloom.c:372 -#: ../src/iop/colorreconstruction.c:1236 ../src/iop/hotpixels.c:384 -#: ../src/iop/sharpen.c:449 +#: ../src/iop/atrous.c:1695 ../src/iop/bloom.c:368 +#: ../src/iop/colorreconstruction.c:1245 ../src/iop/hotpixels.c:463 +#: ../src/iop/sharpen.c:444 msgid "threshold" msgstr "eşik" @@ -3438,7 +3585,7 @@ #. history #: ../build/lib/darktable/plugins/introspection_demosaic.c:232 -#: ../src/common/collection.c:1526 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1394 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "basic" msgstr "temel" @@ -3511,12 +3658,9 @@ msgid "upgrade profiled transform" msgstr "profilli dönüşümü yükselt" -#. -#. * Color mode combo box -#. #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:257 #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:388 -#: ../src/imageio/format/avif.c:786 ../src/libs/colorpicker.c:584 +#: ../src/libs/colorpicker.c:659 msgid "color mode" msgstr "renk modu" @@ -3541,7 +3685,7 @@ msgstr "hesaplama varyansı" #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:410 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:266 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:292 msgid "RGB" msgstr "RGB" @@ -3552,7 +3696,7 @@ #. two more sharpness (standard & strong) #: ../build/lib/darktable/plugins/introspection_diffuse.c:123 #: ../build/lib/darktable/plugins/introspection_diffuse.c:248 -#: ../src/iop/atrous.c:1564 ../src/iop/diffuse.c:630 ../src/iop/highpass.c:381 +#: ../src/iop/atrous.c:1685 ../src/iop/diffuse.c:657 ../src/iop/highpass.c:376 msgid "sharpness" msgstr "keskinlik" @@ -3716,7 +3860,7 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:212 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:423 -#: ../src/iop/filmic.c:1489 +#: ../src/iop/filmic.c:1514 msgid "middle gray luminance" msgstr "orta gri parlaklık" @@ -3724,13 +3868,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:427 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:97 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:166 -#: ../src/iop/filmic.c:1514 +#: ../src/iop/filmic.c:1539 msgid "black relative exposure" msgstr "siyah bağıl pozlama" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:224 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:431 -#: ../src/iop/filmic.c:1501 +#: ../src/iop/filmic.c:1526 msgid "white relative exposure" msgstr "beyaz bağıl pozlama" @@ -3761,19 +3905,19 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:266 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:459 -#: ../src/iop/filmic.c:1646 +#: ../src/iop/filmic.c:1671 msgid "target middle gray" msgstr "hedef orta gri" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:272 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:463 -#: ../src/iop/filmic.c:1637 +#: ../src/iop/filmic.c:1662 msgid "target black luminance" msgstr "hedef siyah parlaklık" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:278 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:467 -#: ../src/iop/filmic.c:1655 +#: ../src/iop/filmic.c:1680 msgid "target white luminance" msgstr "hedef beyaz parlaklık" @@ -3781,13 +3925,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:471 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:69 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:140 -#: ../src/libs/masks.c:106 +#: ../src/libs/masks.c:107 msgid "hardness" msgstr "sertlik" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:302 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:483 -#: ../src/iop/filmic.c:1586 ../src/iop/filmicrgb.c:4729 +#: ../src/iop/filmic.c:1611 ../src/iop/filmicrgb.c:4793 msgid "extreme luminance saturation" msgstr "aşırı parlaklık doygunluğu" @@ -3858,11 +4002,11 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:549 #: ../build/lib/darktable/plugins/introspection_toneequal.c:371 -#: ../src/common/database.c:2785 ../src/common/variables.c:705 -#: ../src/develop/imageop_gui.c:209 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 +#: ../src/common/variables.c:714 ../src/develop/imageop_gui.c:209 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 msgid "no" msgstr "hayır" @@ -3964,9 +4108,25 @@ msgid "density" msgstr "yoğunluk" +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 +#: ../src/develop/blend_gui.c:2326 ../src/iop/basicadj.c:654 +#: ../src/iop/channelmixer.c:635 ../src/iop/colisa.c:300 +#: ../src/iop/colorbalance.c:2034 ../src/iop/colorbalancergb.c:1990 +#: ../src/iop/colorchecker.c:1488 ../src/iop/colorcontrast.c:82 +#: ../src/iop/colorcorrection.c:268 ../src/iop/colorize.c:356 +#: ../src/iop/lowpass.c:601 ../src/iop/soften.c:368 ../src/iop/velvia.c:75 +#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:1058 +msgid "saturation" +msgstr "doygunluk" + #: ../build/lib/darktable/plugins/introspection_grain.c:58 #: ../build/lib/darktable/plugins/introspection_grain.c:117 -#: ../src/iop/bilat.c:450 +#: ../src/iop/bilat.c:460 msgid "coarseness" msgstr "kabalık" @@ -3979,7 +4139,7 @@ #: ../build/lib/darktable/plugins/introspection_highlights.c:143 #: ../build/lib/darktable/plugins/introspection_highlights.c:244 -#: ../src/views/darkroom.c:2406 +#: ../src/views/darkroom.c:2245 msgid "clipping threshold" msgstr "kırpma eşiği" @@ -4115,168 +4275,172 @@ msgid "detect by 3 neighbors" msgstr "3 komşu tarafından tespit" -#: ../build/lib/darktable/plugins/introspection_lens.cc:162 -#: ../build/lib/darktable/plugins/introspection_lens.cc:337 +#: ../build/lib/darktable/plugins/introspection_lens.cc:190 +#: ../build/lib/darktable/plugins/introspection_lens.cc:401 msgid "correction method" msgstr "düzeltme yöntemi" #. Page CORRECTIONS -#: ../build/lib/darktable/plugins/introspection_lens.cc:168 -#: ../build/lib/darktable/plugins/introspection_lens.cc:341 -#: ../src/iop/negadoctor.c:900 +#: ../build/lib/darktable/plugins/introspection_lens.cc:196 +#: ../build/lib/darktable/plugins/introspection_lens.cc:405 +#: ../src/iop/negadoctor.c:919 msgid "corrections" msgstr "düzeltmeler" #. mode choice -#. Add check to control whether the style is to replace or append the current module -#: ../build/lib/darktable/plugins/introspection_lens.cc:174 -#: ../build/lib/darktable/plugins/introspection_lens.cc:345 +#: ../build/lib/darktable/plugins/introspection_lens.cc:202 +#: ../build/lib/darktable/plugins/introspection_lens.cc:409 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:128 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:219 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:51 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:118 -#: ../src/iop/bilat.c:428 ../src/iop/colorbalance.c:1909 -#: ../src/iop/denoiseprofile.c:3806 ../src/iop/exposure.c:1157 -#: ../src/iop/levels.c:684 ../src/iop/profile_gamma.c:668 -#: ../src/libs/copy_history.c:399 ../src/libs/export.c:1262 -#: ../src/libs/image.c:597 ../src/libs/print_settings.c:2875 -#: ../src/libs/styles.c:846 ../src/views/darkroom.c:2387 +#: ../src/develop/blend_gui.c:3546 ../src/iop/bilat.c:438 +#: ../src/iop/colorbalance.c:1884 ../src/iop/denoiseprofile.c:3810 +#: ../src/iop/exposure.c:1175 ../src/iop/levels.c:700 +#: ../src/iop/profile_gamma.c:682 ../src/libs/copy_history.c:399 +#: ../src/libs/export.c:1376 ../src/libs/image.c:666 +#: ../src/libs/print_settings.c:2875 ../src/libs/styles.c:850 +#: ../src/views/darkroom.c:2226 msgid "mode" msgstr "mod" -#: ../build/lib/darktable/plugins/introspection_lens.cc:210 -#: ../build/lib/darktable/plugins/introspection_lens.cc:369 -#: ../src/iop/lens.cc:3820 +#: ../build/lib/darktable/plugins/introspection_lens.cc:238 +#: ../build/lib/darktable/plugins/introspection_lens.cc:433 +#: ../src/iop/lens.cc:4474 msgid "target geometry" msgstr "hedef geometri" -#: ../build/lib/darktable/plugins/introspection_lens.cc:240 -#: ../build/lib/darktable/plugins/introspection_lens.cc:389 +#: ../build/lib/darktable/plugins/introspection_lens.cc:268 +#: ../build/lib/darktable/plugins/introspection_lens.cc:453 msgid "TCA overwrite" msgstr "TCA üzerine yazma" -#: ../build/lib/darktable/plugins/introspection_lens.cc:246 -#: ../build/lib/darktable/plugins/introspection_lens.cc:393 +#: ../build/lib/darktable/plugins/introspection_lens.cc:274 +#: ../build/lib/darktable/plugins/introspection_lens.cc:298 +#: ../build/lib/darktable/plugins/introspection_lens.cc:457 +#: ../build/lib/darktable/plugins/introspection_lens.cc:473 msgid "TCA red" msgstr "TCA kırmızı" -#: ../build/lib/darktable/plugins/introspection_lens.cc:252 -#: ../build/lib/darktable/plugins/introspection_lens.cc:397 +#: ../build/lib/darktable/plugins/introspection_lens.cc:280 +#: ../build/lib/darktable/plugins/introspection_lens.cc:304 +#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:477 msgid "TCA blue" msgstr "TCA mavi" -#: ../build/lib/darktable/plugins/introspection_lens.cc:258 -#: ../build/lib/darktable/plugins/introspection_lens.cc:401 -msgid "distortion fine-tune" -msgstr "çarpıtma ince ayarı" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:264 -#: ../build/lib/darktable/plugins/introspection_lens.cc:405 -msgid "vignetting fine-tune" -msgstr "eskitme ince ayarı" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:270 -#: ../build/lib/darktable/plugins/introspection_lens.cc:409 -msgid "TCA red fine-tune" -msgstr "TCA kırmızı ince ayar" +#: ../build/lib/darktable/plugins/introspection_lens.cc:286 +#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +msgid "distortion" +msgstr "çarpıtma" -#: ../build/lib/darktable/plugins/introspection_lens.cc:276 -#: ../build/lib/darktable/plugins/introspection_lens.cc:413 -msgid "TCA blue fine-tune" -msgstr "TCA mavi ince ayarı" +#: ../build/lib/darktable/plugins/introspection_lens.cc:292 +#: ../build/lib/darktable/plugins/introspection_lens.cc:469 +#: ../src/iop/vignette.c:114 +msgid "vignetting" +msgstr "skeç oluşturma" -#: ../build/lib/darktable/plugins/introspection_lens.cc:282 -#: ../build/lib/darktable/plugins/introspection_lens.cc:417 +#: ../build/lib/darktable/plugins/introspection_lens.cc:310 +#: ../build/lib/darktable/plugins/introspection_lens.cc:481 msgid "scale fine-tune" msgstr "ölçek ince ayar" -#: ../build/lib/darktable/plugins/introspection_lens.cc:294 -#: ../build/lib/darktable/plugins/introspection_lens.cc:425 +#: ../build/lib/darktable/plugins/introspection_lens.cc:322 +#: ../build/lib/darktable/plugins/introspection_lens.cc:489 msgid "image scale" msgstr "görüntü ölçeği" -#: ../build/lib/darktable/plugins/introspection_lens.cc:439 +#: ../build/lib/darktable/plugins/introspection_lens.cc:346 +#: ../build/lib/darktable/plugins/introspection_lens.cc:505 +msgid "steepness" +msgstr "diklik" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:527 msgid "embedded metadata" msgstr "gömülü üst veri" -#: ../build/lib/darktable/plugins/introspection_lens.cc:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:528 msgid "Lensfun database" msgstr "Lensfun veritabanı" +#: ../build/lib/darktable/plugins/introspection_lens.cc:529 +msgid "only manual vignette" +msgstr "yalnızca elle sahne" + #. get nice text for bounds #. Side-border hide/show -#: ../build/lib/darktable/plugins/introspection_lens.cc:445 -#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2367 -#: ../src/gui/accelerators.c:2447 ../src/gui/gtk.c:1204 ../src/gui/gtk.c:3136 -#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3709 -#: ../src/iop/rawdenoise.c:893 ../src/libs/collect.c:3066 -#: ../src/libs/filtering.c:1459 ../src/libs/filters/colors.c:157 +#: ../build/lib/darktable/plugins/introspection_lens.cc:534 +#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2592 +#: ../src/gui/accelerators.c:2674 ../src/gui/gtk.c:1282 ../src/gui/gtk.c:3182 +#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3713 +#: ../src/iop/rawdenoise.c:909 ../src/libs/collect.c:3413 +#: ../src/libs/filtering.c:1521 ../src/libs/filters/colors.c:157 #: ../src/libs/filters/colors.c:265 ../src/libs/filters/rating.c:211 msgid "all" msgstr "tümü" -#: ../build/lib/darktable/plugins/introspection_lens.cc:446 +#: ../build/lib/darktable/plugins/introspection_lens.cc:535 msgid "distortion & TCA" msgstr "bozulma & TCA" -#: ../build/lib/darktable/plugins/introspection_lens.cc:447 +#: ../build/lib/darktable/plugins/introspection_lens.cc:536 msgid "distortion & vignetting" msgstr "bozulma & skeç oluşturma" -#: ../build/lib/darktable/plugins/introspection_lens.cc:448 +#: ../build/lib/darktable/plugins/introspection_lens.cc:537 msgid "TCA & vignetting" msgstr "TCA & skeç oluşturma" -#: ../build/lib/darktable/plugins/introspection_lens.cc:449 +#: ../build/lib/darktable/plugins/introspection_lens.cc:538 msgid "only distortion" msgstr "sadece bozulma" -#: ../build/lib/darktable/plugins/introspection_lens.cc:450 +#: ../build/lib/darktable/plugins/introspection_lens.cc:539 msgid "only TCA" msgstr "sadece TCA" -#: ../build/lib/darktable/plugins/introspection_lens.cc:451 +#: ../build/lib/darktable/plugins/introspection_lens.cc:540 msgid "only vignetting" msgstr "sadece skeç oluşturma" -#: ../build/lib/darktable/plugins/introspection_lens.cc:455 -#: ../src/libs/modulegroups.c:2318 +#: ../build/lib/darktable/plugins/introspection_lens.cc:544 +#: ../src/libs/modulegroups.c:2302 msgid "correct" msgstr "uygun" -#: ../build/lib/darktable/plugins/introspection_lens.cc:456 +#: ../build/lib/darktable/plugins/introspection_lens.cc:545 msgid "distort" msgstr "çarpıtma" -#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:550 msgid "rectilinear" msgstr "doğrusal" -#: ../build/lib/darktable/plugins/introspection_lens.cc:462 +#: ../build/lib/darktable/plugins/introspection_lens.cc:551 msgid "fisheye" msgstr "balık gözü" -#: ../build/lib/darktable/plugins/introspection_lens.cc:463 +#: ../build/lib/darktable/plugins/introspection_lens.cc:552 msgid "panoramic" msgstr "panoramik" -#: ../build/lib/darktable/plugins/introspection_lens.cc:464 +#: ../build/lib/darktable/plugins/introspection_lens.cc:553 msgid "equirectangular" msgstr "eşkenar dörtgen" -#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +#: ../build/lib/darktable/plugins/introspection_lens.cc:554 msgid "orthographic" msgstr "imla" -#: ../build/lib/darktable/plugins/introspection_lens.cc:466 +#: ../build/lib/darktable/plugins/introspection_lens.cc:555 msgid "stereographic" msgstr "stereografik" -#: ../build/lib/darktable/plugins/introspection_lens.cc:467 +#: ../build/lib/darktable/plugins/introspection_lens.cc:556 msgid "equisolid angle" msgstr "eşit açı" -#: ../build/lib/darktable/plugins/introspection_lens.cc:468 +#: ../build/lib/darktable/plugins/introspection_lens.cc:557 msgid "Thoby fisheye" msgstr "Thoby balık gözü" @@ -4286,8 +4450,8 @@ #. move left/right/up/down #: ../build/lib/darktable/plugins/introspection_liquify.c:429 -#: ../src/views/darkroom.c:2282 ../src/views/darkroom.c:2676 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:765 +#: ../src/views/darkroom.c:2121 ../src/views/darkroom.c:2522 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:765 #: ../src/views/lighttable.c:774 ../src/views/lighttable.c:1246 #: ../src/views/lighttable.c:1250 ../src/views/lighttable.c:1254 #: ../src/views/lighttable.c:1258 ../src/views/lighttable.c:1262 @@ -4299,8 +4463,8 @@ msgstr "satır" #: ../build/lib/darktable/plugins/introspection_liquify.c:431 -#: ../src/iop/basecurve.c:2186 ../src/iop/rgbcurve.c:1387 -#: ../src/iop/tonecurve.c:1149 +#: ../src/iop/basecurve.c:2207 ../src/iop/rgbcurve.c:1387 +#: ../src/iop/tonecurve.c:1171 msgid "curve" msgstr "kavis" @@ -4336,28 +4500,33 @@ msgid "bilateral filter" msgstr "ikili filtre" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:76 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:163 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:77 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:164 msgid "application color space" msgstr "uygulama renk alanı" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 msgid "Adobe RGB" msgstr "Adobe RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 msgid "gamma Rec709 RGB" msgstr "gamma Kayıt709 RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:209 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:207 +#: ../src/common/colorspaces.c:1486 ../src/common/colorspaces.c:1740 +msgid "linear ProPhoto RGB" +msgstr "doğrusal ProPhoto RGB" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 msgid "tetrahedral" msgstr "dört yüzlü" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:210 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:212 msgid "trilinear" msgstr "üç çizgili" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:213 msgid "pyramid" msgstr "piramit" @@ -4378,7 +4547,7 @@ #: ../build/lib/darktable/plugins/introspection_negadoctor.c:144 #: ../build/lib/darktable/plugins/introspection_negadoctor.c:239 -#: ../src/iop/negadoctor.c:992 +#: ../src/iop/negadoctor.c:1011 msgid "paper grade (gamma)" msgstr "kağıt kalitesi (gama)" @@ -4393,15 +4562,57 @@ msgstr "baskı pozlama ayarı" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:261 -#: ../src/iop/negadoctor.c:417 +#: ../src/iop/negadoctor.c:431 msgid "black and white film" msgstr "siyah beyaz film" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:262 -#: ../src/iop/negadoctor.c:402 +#: ../src/iop/negadoctor.c:416 msgid "color film" msgstr "renkli film" +#: ../build/lib/darktable/plugins/introspection_primaries.c:75 +#: ../build/lib/darktable/plugins/introspection_primaries.c:160 +#: ../src/iop/primaries.c:406 +msgid "tint hue" +msgstr "renk tonu" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:81 +#: ../build/lib/darktable/plugins/introspection_primaries.c:164 +#: ../src/iop/primaries.c:413 +msgid "tint purity" +msgstr "renk tonu saflığı" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:87 +#: ../build/lib/darktable/plugins/introspection_primaries.c:168 +msgid "red hue" +msgstr "kırmızı ton" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:93 +#: ../build/lib/darktable/plugins/introspection_primaries.c:172 +msgid "red purity" +msgstr "kırmızı saflık" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:99 +#: ../build/lib/darktable/plugins/introspection_primaries.c:176 +msgid "green hue" +msgstr "yeşil ton" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:105 +#: ../build/lib/darktable/plugins/introspection_primaries.c:180 +msgid "green purity" +msgstr "yeşil saflık" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:111 +#: ../build/lib/darktable/plugins/introspection_primaries.c:184 +msgid "blue hue" +msgstr "mavi ton" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:117 +#: ../build/lib/darktable/plugins/introspection_primaries.c:188 +msgid "blue purity" +msgstr "mavi saflık" + #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:85 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:158 msgid "dynamic range" @@ -4414,7 +4625,7 @@ #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:103 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:170 -#: ../src/iop/filmic.c:1526 +#: ../src/iop/filmic.c:1551 msgid "safety factor" msgstr "güvenlik etkeni" @@ -4423,7 +4634,7 @@ msgstr "logaritmik" #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:185 -#: ../src/iop/profile_gamma.c:625 +#: ../src/iop/profile_gamma.c:639 msgid "gamma" msgstr "gamma" @@ -4461,7 +4672,7 @@ #: ../build/lib/darktable/plugins/introspection_rawprepare.c:106 #: ../build/lib/darktable/plugins/introspection_rawprepare.c:179 -#: ../src/iop/rawprepare.c:946 +#: ../src/iop/rawprepare.c:954 msgid "white point" msgstr "beyaz nokta" @@ -4477,9 +4688,9 @@ #. exposure #: ../build/lib/darktable/plugins/introspection_relight.c:43 #: ../build/lib/darktable/plugins/introspection_relight.c:98 -#: ../src/common/collection.c:720 ../src/gui/preferences.c:836 -#: ../src/gui/presets.c:684 ../src/iop/basicadj.c:598 ../src/iop/exposure.c:122 -#: ../src/iop/exposure.c:1117 ../src/libs/metadata_view.c:141 +#: ../src/common/collection.c:633 ../src/gui/preferences.c:834 +#: ../src/gui/presets.c:687 ../src/iop/basicadj.c:628 ../src/iop/exposure.c:122 +#: ../src/iop/exposure.c:1135 ../src/libs/metadata_view.c:143 msgid "exposure" msgstr "pozlama" @@ -4490,9 +4701,9 @@ #: ../build/lib/darktable/plugins/introspection_retouch.c:285 #: ../build/lib/darktable/plugins/introspection_retouch.c:426 -#: ../src/iop/basicadj.c:620 ../src/iop/channelmixerrgb.c:4617 -#: ../src/iop/colisa.c:305 ../src/iop/lowpass.c:587 ../src/iop/soften.c:377 -#: ../src/iop/vignette.c:970 ../src/libs/history.c:963 +#: ../src/iop/basicadj.c:650 ../src/iop/channelmixerrgb.c:4685 +#: ../src/iop/colisa.c:299 ../src/iop/lowpass.c:600 ../src/iop/soften.c:372 +#: ../src/iop/vignette.c:1057 ../src/libs/history.c:963 msgid "brightness" msgstr "parlaklık" @@ -4502,7 +4713,7 @@ msgstr "azm_yineleme" #: ../build/lib/darktable/plugins/introspection_retouch.c:444 -#: ../src/libs/metadata_view.c:329 +#: ../src/libs/metadata_view.c:333 msgid "unused" msgstr "kullanılmamış" @@ -4515,12 +4726,12 @@ msgstr "iyileştir" #: ../build/lib/darktable/plugins/introspection_retouch.c:447 -#: ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2051 msgid "blur" msgstr "bulanıklıklık" #: ../build/lib/darktable/plugins/introspection_retouch.c:448 -#: ../src/iop/retouch.c:1865 +#: ../src/iop/retouch.c:2049 msgid "fill" msgstr "dolgu" @@ -4533,9 +4744,9 @@ msgstr "silme" #: ../build/lib/darktable/plugins/introspection_retouch.c:458 -#: ../src/gui/presets.c:59 ../src/iop/watermark.c:1298 -#: ../src/libs/colorpicker.c:291 ../src/libs/image.c:612 -#: ../src/libs/modulegroups.c:2317 +#: ../src/gui/presets.c:61 ../src/iop/watermark.c:1346 +#: ../src/libs/colorpicker.c:320 ../src/libs/image.c:683 +#: ../src/libs/modulegroups.c:2301 msgid "color" msgstr "renk" @@ -4571,45 +4782,93 @@ msgid "highlights color adjustment" msgstr "renk ayarını vurgular" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:70 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:141 -#: ../src/gui/accelerators.c:85 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:122 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:241 +#: ../src/gui/accelerators.c:101 msgid "skew" msgstr "eğim" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:76 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:145 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:128 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:245 msgid "target white" msgstr "hedef beyaz" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:82 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:149 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:134 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:249 msgid "target black" msgstr "hedef siyah" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:88 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:153 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:140 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:253 msgid "color processing" msgstr "renk işleme" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:94 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:157 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:146 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:257 msgid "preserve hue" msgstr "tonu koru" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:171 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:152 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:261 +msgid "red attenuation" +msgstr "kırmızı zayıflama" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:158 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:265 +msgid "red rotation" +msgstr "kırmızıya döndürme" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:164 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:269 +msgid "green attenuation" +msgstr "yeşil zayıflama" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:170 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:273 +msgid "green rotation" +msgstr "yeşile döndürme" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:176 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:277 +msgid "blue attenuation" +msgstr "mavi zayıflama" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:182 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:281 +msgid "blue rotation" +msgstr "maviye döndürme" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:188 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:285 +msgid "recover purity" +msgstr "saflığı geri kazanmak" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:194 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:289 +msgid "base primaries" +msgstr "temel ön seçimler" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:303 msgid "per channel" msgstr "kanal başına" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:172 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:304 msgid "RGB ratio" msgstr "RGB oranı" -#: ../build/lib/darktable/plugins/introspection_temperature.c:66 -#: ../build/lib/darktable/plugins/introspection_temperature.c:121 -#: ../src/iop/temperature.c:1941 -msgid "emerald" -msgstr "zümrüt" +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:308 +#: ../src/common/colorspaces.c:1377 ../src/common/colorspaces.c:1734 +msgid "work profile" +msgstr "iş profili" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:309 +msgid "Rec2020" +msgstr "Rec2020" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:310 +#: ../src/common/colorspaces.c:1750 +msgid "Display P3" +msgstr "Ekran P3" #: ../build/lib/darktable/plugins/introspection_tonecurve.c:135 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:232 @@ -4731,13 +4990,13 @@ #: ../build/lib/darktable/plugins/introspection_tonemap.cc:39 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:88 -#: ../src/iop/rgbcurve.c:184 ../src/iop/tonecurve.c:539 +#: ../src/iop/rgbcurve.c:186 ../src/iop/tonecurve.c:560 msgid "contrast compression" msgstr "kontrast sıkıştırma" #: ../build/lib/darktable/plugins/introspection_vibrance.c:33 #: ../build/lib/darktable/plugins/introspection_vibrance.c:76 -#: ../src/iop/basicadj.c:627 ../src/iop/vibrance.c:67 +#: ../src/iop/basicadj.c:657 ../src/iop/vibrance.c:67 msgid "vibrance" msgstr "titreşim" @@ -4773,7 +5032,7 @@ #: ../build/lib/darktable/plugins/introspection_vignette.c:146 #: ../build/lib/darktable/plugins/introspection_vignette.c:237 -#: ../src/iop/vignette.c:978 +#: ../src/iop/vignette.c:1066 msgid "shape" msgstr "şekil" @@ -4812,7 +5071,7 @@ #: ../build/lib/darktable/plugins/introspection_watermark.c:323 #: ../src/imageio/format/tiff.c:125 ../src/imageio/format/xcf.c:159 -#: ../src/iop/borders.c:947 +#: ../src/iop/borders.c:960 msgid "image" msgstr "görüntü" @@ -4824,12 +5083,6 @@ msgid "smaller border" msgstr "daha küçük kenarlık" -#: ../build/lib/darktable/plugins/introspection_watermark.c:326 -#: ../src/libs/export.c:1135 ../src/libs/metadata_view.c:148 -#: ../src/libs/print_settings.c:2541 -msgid "height" -msgstr "yükseklik" - #: ../build/lib/darktable/plugins/introspection_watermark.c:327 msgid "advanced options" msgstr "gelişmiş seçenekler" @@ -4858,23 +5111,23 @@ msgid "marker height" msgstr "işaretleyici yüksekliği" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:6 +#: ../build/bin/tools/darktable_authors.h:6 msgid "developers" msgstr "geliştiriciler" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:11 +#: ../build/bin/tools/darktable_authors.h:11 msgid "translators" msgstr "çevirmenler" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:16 +#: ../build/bin/tools/darktable_authors.h:16 msgid "contributors" msgstr "katkıda bulunanlar" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:21 +#: ../build/bin/tools/darktable_authors.h:21 msgid "rawspeed contributors" msgstr "ham hıza katkıda bulunanlar" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:26 +#: ../build/bin/tools/darktable_authors.h:26 msgid "integration contributors" msgstr "bütünleşmeye katkıda bulunanlar" @@ -4941,90 +5194,104 @@ msgid "Print your images" msgstr "Görüntüleri yazdırın" -#: ../src/bauhaus/bauhaus.c:752 ../src/bauhaus/bauhaus.c:3689 +#: ../src/bauhaus/bauhaus.c:845 ../src/bauhaus/bauhaus.c:3957 msgid "sliders" msgstr "kaydırıcılar" -#: ../src/bauhaus/bauhaus.c:753 ../src/bauhaus/bauhaus.c:3694 +#: ../src/bauhaus/bauhaus.c:847 ../src/bauhaus/bauhaus.c:3962 msgid "dropdowns" msgstr "açılır listeler" -#: ../src/bauhaus/bauhaus.c:754 ../src/bauhaus/bauhaus.c:3699 +#: ../src/bauhaus/bauhaus.c:849 ../src/bauhaus/bauhaus.c:3967 msgid "buttons" msgstr "düğmeler" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button on" msgstr "düğme açık" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button off" msgstr "düğme kapalı" -#: ../src/bauhaus/bauhaus.c:3406 +#: ../src/bauhaus/bauhaus.c:3624 msgid "button pressed" msgstr "düğmeye basıldı" -#: ../src/bauhaus/bauhaus.c:3623 +#: ../src/bauhaus/bauhaus.c:3862 msgid "not that many sliders" msgstr "o kadar çok kaydırıcı yok" -#: ../src/bauhaus/bauhaus.c:3633 +#: ../src/bauhaus/bauhaus.c:3876 msgid "not that many dropdowns" msgstr "o kadar çok açılır liste yok" -#: ../src/bauhaus/bauhaus.c:3648 +#: ../src/bauhaus/bauhaus.c:3895 msgid "not that many buttons" msgstr "o kadar çok düğme yok" -#: ../src/bauhaus/bauhaus.c:3653 ../src/gui/accelerators.c:348 +#: ../src/bauhaus/bauhaus.c:3900 ../src/gui/accelerators.c:389 msgid "value" msgstr "değer" -#: ../src/bauhaus/bauhaus.c:3654 ../src/bauhaus/bauhaus.c:3660 -#: ../src/gui/accelerators.c:326 +#: ../src/bauhaus/bauhaus.c:3901 ../src/bauhaus/bauhaus.c:3907 +#: ../src/gui/accelerators.c:368 msgid "button" msgstr "düğme" -#: ../src/bauhaus/bauhaus.c:3655 +#: ../src/bauhaus/bauhaus.c:3902 msgid "force" msgstr "kuvvet" -#: ../src/bauhaus/bauhaus.c:3656 ../src/libs/navigation.c:187 -#: ../src/libs/navigation.c:199 +#: ../src/bauhaus/bauhaus.c:3903 ../src/libs/navigation.c:190 +#: ../src/libs/navigation.c:202 msgid "zoom" msgstr "yakınlaştırma" -#: ../src/bauhaus/bauhaus.c:3659 +#: ../src/bauhaus/bauhaus.c:3906 ../src/libs/select.c:40 msgid "selection" msgstr "seçim" -#: ../src/bauhaus/bauhaus.c:3678 +#: ../src/bauhaus/bauhaus.c:3946 msgid "slider" msgstr "kaydırıcı" -#: ../src/bauhaus/bauhaus.c:3683 +#: ../src/bauhaus/bauhaus.c:3951 msgid "dropdown" msgstr "aşağı sürükleme" -#: ../src/chart/main.c:504 ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 ../src/gui/accelerators.c:2278 -#: ../src/gui/accelerators.c:2355 ../src/gui/accelerators.c:2407 -#: ../src/gui/accelerators.c:2435 ../src/gui/accelerators.c:2495 -#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1043 -#: ../src/gui/preferences.c:1082 ../src/gui/presets.c:420 -#: ../src/gui/presets.c:563 ../src/gui/styles_dialog.c:519 -#: ../src/imageio/storage/disk.c:123 ../src/imageio/storage/gallery.c:110 -#: ../src/imageio/storage/latex.c:109 ../src/iop/lut3d.c:1546 -#: ../src/libs/collect.c:408 ../src/libs/copy_history.c:115 -#: ../src/libs/geotagging.c:928 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/styles.c:392 ../src/libs/styles.c:527 -#: ../src/libs/tagging.c:2489 ../src/libs/tagging.c:2525 +#: ../src/chart/main.c:504 ../src/common/database.c:3372 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 ../src/gui/accelerators.c:2497 +#: ../src/gui/accelerators.c:2579 ../src/gui/accelerators.c:2632 +#: ../src/gui/accelerators.c:2661 ../src/gui/accelerators.c:2723 +#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1081 ../src/gui/presets.c:422 +#: ../src/gui/presets.c:565 ../src/gui/styles_dialog.c:526 +#: ../src/imageio/storage/disk.c:198 ../src/imageio/storage/gallery.c:150 +#: ../src/imageio/storage/latex.c:146 ../src/iop/lut3d.c:1560 +#: ../src/libs/collect.c:425 ../src/libs/collect.c:3242 +#: ../src/libs/copy_history.c:115 ../src/libs/export_metadata.c:276 +#: ../src/libs/geotagging.c:929 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1711 +#: ../src/libs/metadata.c:462 ../src/libs/metadata_view.c:1222 +#: ../src/libs/recentcollect.c:228 ../src/libs/modulegroups.c:3466 +#: ../src/libs/styles.c:392 ../src/libs/styles.c:439 ../src/libs/styles.c:529 +#: ../src/libs/styles.c:624 ../src/libs/tagging.c:1488 +#: ../src/libs/tagging.c:1579 ../src/libs/tagging.c:1670 +#: ../src/libs/tagging.c:1806 ../src/libs/tagging.c:2085 +#: ../src/libs/tagging.c:2520 ../src/libs/tagging.c:2556 +#: ../src/libs/tagging.c:3502 msgid "_cancel" msgstr "_vazgeç" -#: ../src/chart/main.c:504 ../src/gui/preferences.c:1082 -#: ../src/gui/styles_dialog.c:520 ../src/libs/styles.c:392 +#: ../src/chart/main.c:504 ../src/gui/preferences.c:1081 +#: ../src/gui/styles_dialog.c:527 ../src/libs/collect.c:3243 +#: ../src/libs/export_metadata.c:277 ../src/libs/metadata.c:463 +#: ../src/libs/metadata_view.c:1223 ../src/libs/recentcollect.c:229 +#: ../src/libs/styles.c:392 ../src/libs/tagging.c:1671 +#: ../src/libs/tagging.c:1807 ../src/libs/tagging.c:2086 +#: ../src/libs/tagging.c:3503 msgid "_save" msgstr "_kaydet" @@ -5038,65 +5305,65 @@ "ortalama dE: %.02f\n" "azami dE: %.02f" -#: ../src/cli/main.c:247 +#: ../src/cli/main.c:270 msgid "TODO: sorry, due to API restrictions we currently cannot set the BPP to" msgstr "" "YAPILACAKLAR: üzgünüm, API kısıtlamaları nedeniyle şu anda BPP'yi şu şekilde " "ayarlayamıyoruz" -#: ../src/cli/main.c:259 +#: ../src/cli/main.c:282 msgid "unknown option for --hq" msgstr "--hq için bilinmeyen seçenek" -#: ../src/cli/main.c:275 +#: ../src/cli/main.c:298 msgid "unknown option for --export_masks" msgstr "--maske_dışa aktarma için bilinmeyen seçenek" -#: ../src/cli/main.c:291 +#: ../src/cli/main.c:314 msgid "unknown option for --upscale" msgstr "--üst ölçek için bilinmeyen seçenek" -#: ../src/cli/main.c:316 +#: ../src/cli/main.c:339 msgid "unknown option for --apply-custom-presets" msgstr "--uygula-özel-ön ayarlar için bilinmeyen seçenek" -#: ../src/cli/main.c:327 +#: ../src/cli/main.c:350 msgid "too long ext for --out-ext" msgstr "--harici için çok uzun uzatma" -#: ../src/cli/main.c:344 +#: ../src/cli/main.c:367 #, c-format msgid "notice: input file or dir '%s' doesn't exist, skipping\n" msgstr "not: giriş dosyası veya '%s' dizini mevcut değil, atlanıyor\n" -#: ../src/cli/main.c:353 +#: ../src/cli/main.c:376 #, c-format msgid "incorrect ICC type for --icc-type: '%s'\n" msgstr "--icc-türü için yanlış ICC türü: '%s'\n" -#: ../src/cli/main.c:369 +#: ../src/cli/main.c:392 #, c-format msgid "notice: ICC file '%s' doesn't exist, skipping\n" msgstr "not: ICC dosyası '%s' mevcut değil, atlanıyor\n" -#: ../src/cli/main.c:378 +#: ../src/cli/main.c:401 #, c-format msgid "incorrect ICC intent for --icc-intent: '%s'\n" msgstr "--icc-amacı için yanlış ICC amacı: '%s'\n" -#: ../src/cli/main.c:396 +#: ../src/cli/main.c:419 #, c-format msgid "warning: unknown option '%s'\n" msgstr "uyarı: bilinmeyen seçenek '%s'\n" -#: ../src/cli/main.c:454 +#: ../src/cli/main.c:477 #, c-format msgid "error: input file and import opts specified! that's not supported!\n" msgstr "" "hata: girdi dosyası ve belirtilen içe aktarma seçenekleri! bu " "desteklenmiyor!\n" -#: ../src/cli/main.c:487 +#: ../src/cli/main.c:510 #, c-format msgid "" "notice: output location is a directory. assuming '%s/$(FILE_NAME).%s' output " @@ -5106,48 +5373,48 @@ "varsayılıyor" #. output file exists or there's output ext specified and it's same as file... -#: ../src/cli/main.c:502 +#: ../src/cli/main.c:525 msgid "output file already exists, it will get renamed" msgstr "çıktı dosyası zaten var, yeniden adlandırılacak" #. one of inputs was a failure, no prob -#: ../src/cli/main.c:532 +#: ../src/cli/main.c:555 #, c-format msgid "error: can't open folder %s" msgstr "hata: %s klasörü açılamıyor" -#: ../src/cli/main.c:549 +#: ../src/cli/main.c:572 #, c-format msgid "error: can't open file %s" msgstr "hata: %s dosyası açılamıyor" -#: ../src/cli/main.c:566 +#: ../src/cli/main.c:589 #, c-format msgid "no images to export, aborting\n" msgstr "dışa aktarılacak görüntü yok, iptal ediliyor\n" -#: ../src/cli/main.c:583 +#: ../src/cli/main.c:606 #, c-format msgid "error: can't open XMP file %s" msgstr "hata: %s XMP dosyası açılamıyor" -#: ../src/cli/main.c:604 +#: ../src/cli/main.c:627 msgid "empty history stack" msgstr "boş geçmiş yığını" #. too long ext, no point in wasting time -#: ../src/cli/main.c:616 +#: ../src/cli/main.c:639 #, c-format msgid "too long output file extension: %s\n" msgstr "çok uzun çıktı dosyası uzantısı: %s\n" #. no ext or empty ext, no point in wasting time -#: ../src/cli/main.c:624 +#: ../src/cli/main.c:647 #, c-format msgid "no output file extension given\n" msgstr "çıktı dosyası uzantısı verilmedi\n" -#: ../src/cli/main.c:663 +#: ../src/cli/main.c:692 msgid "" "cannot find disk storage module. please check your installation, something " "seems to be broken." @@ -5155,18 +5422,18 @@ "disk depolama modülünü bulamıyor. lütfen kurulumunuzu kontrol edin, bir şey " "bozuk görünüyor." -#: ../src/cli/main.c:673 +#: ../src/cli/main.c:702 msgid "failed to get parameters from storage module, aborting export ..." msgstr "" "depolama modülünden parametreler alınamadı, dışa aktarma işlemi iptal " "edildi ..." -#: ../src/cli/main.c:689 +#: ../src/cli/main.c:718 #, c-format msgid "unknown extension '.%s'" msgstr "bilinmeyen uzantı '.%s'" -#: ../src/cli/main.c:699 +#: ../src/cli/main.c:728 msgid "failed to get parameters from format module, aborting export ..." msgstr "" "format modülünden parametreler alınamadı, dışa aktarma işlemi iptal " @@ -5216,203 +5483,209 @@ "'%s' bağlantı noktasındaki '%s' kamerasının yeniden takılması gerekiyor\n" "erişime izin verdiğinden ve başka şekilde bağlı olmadığından emin olun" -#: ../src/common/collection.c:673 +#: ../src/common/collection.c:586 msgid "too much time to update aspect ratio for the collection" msgstr "koleksiyon için en boy oranını güncellemek için çok fazla zaman" -#: ../src/common/collection.c:688 +#: ../src/common/collection.c:601 msgid "film roll" msgstr "film rulosu" -#: ../src/common/collection.c:690 +#: ../src/common/collection.c:603 msgid "folder" msgstr "klasör" -#: ../src/common/collection.c:692 +#: ../src/common/collection.c:605 msgid "camera" msgstr "kamera" -#: ../src/common/collection.c:694 ../src/libs/export_metadata.c:189 -#: ../src/libs/tagging.c:3281 +#: ../src/common/collection.c:607 ../src/libs/export_metadata.c:176 +#: ../src/libs/tagging.c:3312 msgid "tag" msgstr "etiket" -#: ../src/common/collection.c:696 +#: ../src/common/collection.c:609 msgid "capture date" msgstr "yakalama tarihi" -#: ../src/common/collection.c:698 ../src/libs/filtering.c:61 +#: ../src/common/collection.c:611 ../src/libs/filtering.c:61 msgid "capture time" msgstr "yakalama zamanı" -#: ../src/common/collection.c:700 ../src/libs/filtering.c:62 +#: ../src/common/collection.c:613 ../src/libs/filtering.c:62 msgid "import time" msgstr "içe aktarma zamanı" -#: ../src/common/collection.c:702 ../src/libs/filtering.c:63 +#: ../src/common/collection.c:615 ../src/libs/filtering.c:63 msgid "modification time" msgstr "değişiklik zamanı" -#: ../src/common/collection.c:704 ../src/libs/filtering.c:64 +#: ../src/common/collection.c:617 ../src/libs/filtering.c:64 msgid "export time" msgstr "dışa aktarma zamanı" -#: ../src/common/collection.c:706 ../src/libs/filtering.c:65 +#: ../src/common/collection.c:619 ../src/libs/filtering.c:65 msgid "print time" msgstr "baskı zamanı" -#: ../src/common/collection.c:708 ../src/libs/collect.c:3222 -#: ../src/libs/filtering.c:2163 ../src/libs/filtering.c:2183 +#: ../src/common/collection.c:621 ../src/libs/collect.c:3586 +#: ../src/libs/filtering.c:2237 ../src/libs/filtering.c:2257 #: ../src/libs/filters/history.c:153 ../src/libs/history.c:92 msgid "history" msgstr "geçmiş" -#: ../src/common/collection.c:710 ../src/common/colorlabels.c:342 -#: ../src/develop/lightroom.c:1550 ../src/dtgtk/thumbnail.c:1560 +#: ../src/common/collection.c:623 ../src/common/colorlabels.c:341 +#: ../src/develop/lightroom.c:1607 ../src/dtgtk/thumbnail.c:1548 #: ../src/libs/filtering.c:68 ../src/libs/filters/colors.c:301 #: ../src/libs/filters/colors.c:312 ../src/libs/tools/colorlabels.c:93 msgid "color label" msgstr "renk etiketi" #. iso -#: ../src/common/collection.c:716 ../src/gui/preferences.c:832 -#: ../src/gui/presets.c:666 ../src/libs/camera.c:558 -#: ../src/libs/metadata_view.c:145 +#: ../src/common/collection.c:629 ../src/gui/preferences.c:830 +#: ../src/gui/presets.c:669 ../src/libs/camera.c:558 +#: ../src/libs/metadata_view.c:149 msgid "ISO" msgstr "ISO" #. aperture -#: ../src/common/collection.c:718 ../src/gui/preferences.c:840 -#: ../src/gui/presets.c:701 ../src/libs/camera.c:545 ../src/libs/camera.c:547 -#: ../src/libs/metadata_view.c:140 +#: ../src/common/collection.c:631 ../src/gui/preferences.c:838 +#: ../src/gui/presets.c:704 ../src/libs/camera.c:545 ../src/libs/camera.c:547 +#: ../src/libs/metadata_view.c:142 msgid "aperture" msgstr "diyafram açıklığı" -#: ../src/common/collection.c:724 ../src/libs/filtering.c:57 -#: ../src/libs/filters/filename.c:364 ../src/libs/metadata_view.c:126 +#: ../src/common/collection.c:637 ../src/libs/filtering.c:57 +#: ../src/libs/filters/filename.c:369 ../src/libs/metadata_view.c:128 msgid "filename" msgstr "dosya adı" -#: ../src/common/collection.c:726 ../src/develop/lightroom.c:1541 +#: ../src/common/collection.c:639 ../src/develop/lightroom.c:1598 #: ../src/libs/geotagging.c:141 msgid "geotagging" msgstr "coğrafi etiketleme" -#: ../src/common/collection.c:728 ../src/libs/filters/grouping.c:167 +#: ../src/common/collection.c:641 ../src/libs/filters/grouping.c:167 #: ../src/libs/tools/global_toolbox.c:394 msgid "grouping" msgstr "gruplama" -#: ../src/common/collection.c:730 ../src/dtgtk/thumbnail.c:1575 -#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:129 -#: ../src/libs/metadata_view.c:336 +#: ../src/common/collection.c:643 ../src/dtgtk/thumbnail.c:1563 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:340 msgid "local copy" msgstr "yerel kopya" -#: ../src/common/collection.c:732 ../src/gui/preferences.c:808 +#: ../src/common/collection.c:645 ../src/gui/preferences.c:806 msgid "module" msgstr "modül" -#: ../src/common/collection.c:734 ../src/gui/hist_dialog.c:346 -#: ../src/gui/styles_dialog.c:722 ../src/gui/styles_dialog.c:771 +#: ../src/common/collection.c:647 ../src/gui/hist_dialog.c:346 +#: ../src/gui/styles_dialog.c:734 ../src/gui/styles_dialog.c:783 #: ../src/libs/filters/module_order.c:161 ../src/libs/ioporder.c:39 msgid "module order" msgstr "modül siparişi" -#: ../src/common/collection.c:736 +#: ../src/common/collection.c:649 msgid "range rating" msgstr "menzil değerlendirmesi" -#: ../src/common/collection.c:738 ../src/common/ratings.c:322 -#: ../src/develop/lightroom.c:1525 ../src/libs/filtering.c:67 +#: ../src/common/collection.c:651 ../src/common/ratings.c:321 +#: ../src/develop/lightroom.c:1582 ../src/libs/filtering.c:67 #: ../src/libs/tools/ratings.c:110 msgid "rating" msgstr "değerlendirme" -#: ../src/common/collection.c:740 +#: ../src/common/collection.c:653 msgid "search" msgstr "ara" -#: ../src/common/collection.c:1509 ../src/common/colorlabels.c:335 -#: ../src/develop/lightroom.c:836 ../src/gui/guides.c:732 -#: ../src/iop/colorzones.c:2265 ../src/iop/temperature.c:1925 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:261 +#: ../src/common/collection.c:1376 ../src/common/colorlabels.c:334 +#: ../src/develop/lightroom.c:889 ../src/gui/guides.c:732 +#: ../src/iop/colorzones.c:2501 ../src/iop/temperature.c:1902 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:261 msgid "yellow" msgstr "sarı" -#: ../src/common/collection.c:1515 ../src/common/color_vocabulary.c:339 -#: ../src/common/colorlabels.c:338 ../src/iop/colorzones.c:2269 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:264 +#: ../src/common/collection.c:1382 ../src/common/color_vocabulary.c:339 +#: ../src/common/colorlabels.c:337 ../src/iop/colorzones.c:2505 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:264 msgid "purple" msgstr "mor" -#: ../src/common/collection.c:1532 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1400 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "auto applied" msgstr "otomatik uygulanan" -#: ../src/common/collection.c:1536 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1406 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "altered" msgstr "değiştirilmiş" -#: ../src/common/collection.c:1553 ../src/common/collection.c:1649 -#: ../src/libs/collect.c:1166 ../src/libs/collect.c:1330 -#: ../src/libs/collect.c:1354 ../src/libs/collect.c:1473 -#: ../src/libs/collect.c:2432 +#: ../src/common/collection.c:1424 ../src/common/collection.c:1535 +#: ../src/libs/collect.c:1242 ../src/libs/collect.c:1426 +#: ../src/libs/collect.c:1452 ../src/libs/collect.c:1592 +#: ../src/libs/collect.c:2662 msgid "not tagged" msgstr "etiketlenmedi" -#: ../src/common/collection.c:1554 ../src/libs/collect.c:1354 +#: ../src/common/collection.c:1425 ../src/libs/collect.c:1452 #: ../src/libs/map_locations.c:742 msgid "tagged" msgstr "etiketli" -#: ../src/common/collection.c:1555 +#: ../src/common/collection.c:1426 msgid "tagged*" msgstr "etiketli*" #. local copy -#: ../src/common/collection.c:1588 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1460 ../src/libs/collect.c:1883 #: ../src/libs/filters/local_copy.c:38 msgid "not copied locally" msgstr "yerel olarak kopyalanmadı" -#: ../src/common/collection.c:1592 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1465 ../src/libs/collect.c:1882 #: ../src/libs/filters/local_copy.c:38 msgid "copied locally" msgstr "yerel olarak kopyalandı" -#: ../src/common/collection.c:1974 ../src/libs/collect.c:1879 +#. if its undefined +#: ../src/common/collection.c:1507 ../src/common/collection.c:1619 +#: ../src/libs/collect.c:2209 ../src/libs/collect.c:2210 +msgid "unnamed" +msgstr "adlandırılmamış" + +#: ../src/common/collection.c:1905 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:147 ../src/libs/filters/grouping.c:170 msgid "group leaders" msgstr "grup liderleri" -#: ../src/common/collection.c:1978 ../src/libs/collect.c:1879 +#: ../src/common/collection.c:1909 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:150 ../src/libs/filters/grouping.c:170 msgid "group followers" msgstr "grup takipçileri" -#: ../src/common/collection.c:2126 ../src/libs/collect.c:1959 +#: ../src/common/collection.c:2066 ../src/libs/collect.c:2100 msgid "not defined" msgstr "tanımlanmamış" -#: ../src/common/collection.c:2575 +#: ../src/common/collection.c:2521 #, c-format msgid "<b>%d</b> image (#<b>%d</b>) selected of <b>%d</b>" msgstr "<b>%d</b> resim (#<b>%d</b>) <b>%d</b> arasından seçildi" -#: ../src/common/collection.c:2582 +#: ../src/common/collection.c:2528 #, c-format msgid "<b>%d</b> image selected of <b>%d</b>" msgid_plural "<b>%d</b> images selected of <b>%d</b>" msgstr[0] "<b>%d</b> arasından <b>%d</b> resim seçildi" msgstr[1] "<b>%d</b> arasından <b>%d</b> resimler seçildi" -#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2324 -#: ../src/develop/blend_gui.c:2372 ../src/gui/guides.c:729 -#: ../src/iop/channelmixerrgb.c:4620 ../src/iop/levels.c:671 -#: ../src/iop/rgblevels.c:937 ../src/iop/rgblevels.c:1032 +#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2340 +#: ../src/develop/blend_gui.c:2388 ../src/gui/guides.c:729 +#: ../src/iop/channelmixerrgb.c:4688 ../src/iop/levels.c:687 +#: ../src/iop/rgblevels.c:969 ../src/iop/rgblevels.c:1083 msgid "gray" msgstr "gri" @@ -5621,12 +5894,12 @@ msgstr "koyu camgöbeği" #: ../src/common/color_vocabulary.c:297 ../src/common/color_vocabulary.c:317 -#: ../src/iop/colorzones.c:2267 +#: ../src/iop/colorzones.c:2503 msgid "aqua" msgstr "su" #: ../src/common/color_vocabulary.c:298 ../src/gui/guides.c:733 -#: ../src/iop/temperature.c:1923 +#: ../src/iop/temperature.c:1900 msgid "cyan" msgstr "cam göbeği" @@ -5692,7 +5965,7 @@ msgstr "koyu eflatun" #: ../src/common/color_vocabulary.c:341 ../src/gui/guides.c:734 -#: ../src/iop/colorzones.c:2270 ../src/iop/temperature.c:1921 +#: ../src/iop/colorzones.c:2506 ../src/iop/temperature.c:1898 msgid "magenta" msgstr "eflatun" @@ -5704,137 +5977,132 @@ msgid "color not found" msgstr "renk bulunamadı" -#: ../src/common/colorlabels.c:310 +#: ../src/common/colorlabels.c:309 #, c-format msgid "colorlabels set to %s" msgstr "renk etiketleri %s olarak ayarlandı" -#: ../src/common/colorlabels.c:312 +#: ../src/common/colorlabels.c:311 msgid "all colorlabels removed" msgstr "tüm renk etiketleri kaldırıldı" -#: ../src/common/colorlabels.c:333 ../src/gui/accelerators.c:170 -#: ../src/libs/image.c:592 +#: ../src/common/colorlabels.c:332 ../src/gui/accelerators.c:188 +#: ../src/libs/image.c:660 msgid "clear" msgstr "temizle" -#. init the category profile with NULL profile, the actual profile must be retrieved dynamically by the caller -#: ../src/common/colorspaces.c:1229 ../src/common/colorspaces.c:1518 -msgid "work profile" -msgstr "iş profili" - -#: ../src/common/colorspaces.c:1232 ../src/common/colorspaces.c:1514 -#: ../src/iop/colorout.c:885 +#: ../src/common/colorspaces.c:1382 ../src/common/colorspaces.c:1730 +#: ../src/iop/colorout.c:901 msgid "export profile" msgstr "dışa aktarma profili" -#: ../src/common/colorspaces.c:1236 ../src/common/colorspaces.c:1516 -#: ../src/views/darkroom.c:2542 +#: ../src/common/colorspaces.c:1387 ../src/common/colorspaces.c:1732 +#: ../src/views/darkroom.c:2383 msgid "softproof profile" msgstr "yumuşak prova profili" -#: ../src/common/colorspaces.c:1242 ../src/common/colorspaces.c:1498 +#: ../src/common/colorspaces.c:1397 ../src/common/colorspaces.c:1714 msgid "system display profile" msgstr "sistem ekran görüntü profili" -#: ../src/common/colorspaces.c:1245 ../src/common/colorspaces.c:1520 +#: ../src/common/colorspaces.c:1402 ../src/common/colorspaces.c:1736 msgid "system display profile (second window)" msgstr "sistem görüntü profili (ikinci pencere)" -#: ../src/common/colorspaces.c:1255 +#: ../src/common/colorspaces.c:1415 msgid "sRGB (web-safe)" msgstr "sRGB (web-safe)" -#: ../src/common/colorspaces.c:1269 ../src/common/colorspaces.c:1522 +#: ../src/common/colorspaces.c:1435 ../src/common/colorspaces.c:1738 msgid "Rec709 RGB" msgstr "Kayıt709 RGB" -#: ../src/common/colorspaces.c:1279 +#: ../src/common/colorspaces.c:1450 msgid "PQ Rec2020 RGB" msgstr "PQ Kayıt2020 RGB" -#: ../src/common/colorspaces.c:1284 +#: ../src/common/colorspaces.c:1458 msgid "HLG Rec2020 RGB" msgstr "HLG Kayıt2020 RGB" -#: ../src/common/colorspaces.c:1289 +#: ../src/common/colorspaces.c:1465 msgid "PQ P3 RGB" msgstr "PQ P3 RGB" -#: ../src/common/colorspaces.c:1294 +#: ../src/common/colorspaces.c:1471 msgid "HLG P3 RGB" msgstr "HLG P3 RGB" -#: ../src/common/colorspaces.c:1299 ../src/common/colorspaces.c:1524 -msgid "linear ProPhoto RGB" -msgstr "doğrusal ProPhoto RGB" +#: ../src/common/colorspaces.c:1478 +msgid "Display P3 RGB" +msgstr "Ekran P3 RGB" -#: ../src/common/colorspaces.c:1304 ../src/common/colorspaces.c:1492 +#: ../src/common/colorspaces.c:1493 ../src/common/colorspaces.c:1708 msgid "linear XYZ" msgstr "doğrusal XYZ" -#: ../src/common/colorspaces.c:1308 ../src/common/colorspaces.c:1494 -#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2000 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:267 +#: ../src/common/colorspaces.c:1500 ../src/common/colorspaces.c:1710 +#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2016 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:293 msgid "Lab" msgstr "Laboratuvar" -#: ../src/common/colorspaces.c:1313 ../src/common/colorspaces.c:1496 +#: ../src/common/colorspaces.c:1508 ../src/common/colorspaces.c:1712 msgid "linear infrared BGR" msgstr "doğrusal kızılötesi BGR" -#: ../src/common/colorspaces.c:1317 +#: ../src/common/colorspaces.c:1513 msgid "BRG (for testing)" msgstr "BRG (test için)" -#: ../src/common/colorspaces.c:1409 +#: ../src/common/colorspaces.c:1619 #, c-format msgid "" "profile `%s' not usable as histogram profile. it has been replaced by sRGB!" msgstr "" "profil `%s' histogram profili olarak kullanılamaz. sRGB ile değiştirildi!" -#: ../src/common/colorspaces.c:1500 +#: ../src/common/colorspaces.c:1716 msgid "embedded ICC profile" msgstr "gömülü ICC profili" -#: ../src/common/colorspaces.c:1502 +#: ../src/common/colorspaces.c:1718 msgid "embedded matrix" msgstr "gömülü dizey" -#: ../src/common/colorspaces.c:1504 +#: ../src/common/colorspaces.c:1720 msgid "standard color matrix" msgstr "normal renk dizeyi" -#: ../src/common/colorspaces.c:1506 +#: ../src/common/colorspaces.c:1722 msgid "enhanced color matrix" msgstr "geliştirilmiş renk dizeyi" -#: ../src/common/colorspaces.c:1508 +#: ../src/common/colorspaces.c:1724 msgid "vendor color matrix" msgstr "sağlayan renk dizeyi" -#: ../src/common/colorspaces.c:1510 +#: ../src/common/colorspaces.c:1726 msgid "alternate color matrix" msgstr "farklı renk dizeyi" -#: ../src/common/colorspaces.c:1512 +#: ../src/common/colorspaces.c:1728 msgid "BRG (experimental)" msgstr "BRG (deneysel)" -#: ../src/common/colorspaces.c:1526 +#: ../src/common/colorspaces.c:1742 msgid "PQ Rec2020" msgstr "PQ Kayıt2020" -#: ../src/common/colorspaces.c:1528 +#: ../src/common/colorspaces.c:1744 msgid "HLG Rec2020" msgstr "HLG Kayıt2020" -#: ../src/common/colorspaces.c:1530 +#: ../src/common/colorspaces.c:1746 msgid "PQ P3" msgstr "PQ P3" -#: ../src/common/colorspaces.c:1532 +#: ../src/common/colorspaces.c:1748 msgid "HLG P3" msgstr "HLG P3" @@ -5862,40 +6130,40 @@ msgid "printing `%s' on `%s'" msgstr "'%s' '%s' üzerine yazdırılıyor" -#: ../src/common/darktable.c:250 +#: ../src/common/darktable.c:375 #, c-format msgid "found strange path `%s'" msgstr "farklı bir yol bulundu `%s'" -#: ../src/common/darktable.c:265 +#: ../src/common/darktable.c:390 #, c-format msgid "error loading directory `%s'" msgstr "`%s' dizini yüklenirken hata oluştu" -#: ../src/common/darktable.c:289 +#: ../src/common/darktable.c:414 #, c-format msgid "file `%s' has unknown format!" msgstr "`%s' dosyasının biçimi bilinmiyor!" -#: ../src/common/darktable.c:302 ../src/control/jobs/control_jobs.c:2118 -#: ../src/control/jobs/control_jobs.c:2177 +#: ../src/common/darktable.c:427 ../src/control/jobs/control_jobs.c:2121 +#: ../src/control/jobs/control_jobs.c:2180 #, c-format msgid "error loading file `%s'" msgstr "`%s' dosyası yüklenirken hata oluştu" -#: ../src/common/darktable.c:1509 +#: ../src/common/darktable.c:1650 msgid "configuration information" msgstr "yapılandırma bilgileri" -#: ../src/common/darktable.c:1511 -msgid "show this information again" -msgstr "bu bilgiyi tekrar göster" - -#: ../src/common/darktable.c:1511 -msgid "understood" -msgstr "anlaşıldı" +#: ../src/common/darktable.c:1652 +msgid "_show this information again" +msgstr "_bu bilgiyi tekrar göster" + +#: ../src/common/darktable.c:1652 +msgid "_understood" +msgstr "_anlaşıldı" -#: ../src/common/darktable.c:1968 +#: ../src/common/darktable.c:2106 msgid "" "the RCD demosaicer has been defined as default instead of PPG because of " "better quality and performance." @@ -5903,13 +6171,13 @@ "RCD demosaicer, daha iyi kalite ve performans nedeniyle PPG yerine " "varsayılan olarak tanımlanmıştır." -#: ../src/common/darktable.c:1970 +#: ../src/common/darktable.c:2108 msgid "see preferences/darkroom/demosaicing for zoomed out darkroom mode" msgstr "" "uzaklaştırılmış karanlık oda modu için tercihler/karanlık oda/demozaik'e " "bakın" -#: ../src/common/darktable.c:1976 +#: ../src/common/darktable.c:2114 msgid "" "the user interface and the underlying internals for tuning darktable " "performance have changed." @@ -5917,7 +6185,7 @@ "kullanıcı arabirimi ve darktable performansını ayarlamak için temel alınan " "dahili öğeler değişti." -#: ../src/common/darktable.c:1978 +#: ../src/common/darktable.c:2116 msgid "" "you won't find headroom and friends any longer, instead in preferences/" "processing use:" @@ -5925,15 +6193,15 @@ "tercihler/işleme kullanımı yerine artık boşluk ve arkadaşlar " "bulamayacaksınız:" -#: ../src/common/darktable.c:1980 +#: ../src/common/darktable.c:2118 msgid "1) darktable resources" msgstr "1) darktable kaynakları" -#: ../src/common/darktable.c:1982 +#: ../src/common/darktable.c:2120 msgid "2) tune OpenCL performance" msgstr "2) OpenCL performansını ayarla" -#: ../src/common/darktable.c:1989 +#: ../src/common/darktable.c:2127 msgid "" "some global config parameters relevant for OpenCL performance are not used " "any longer." @@ -5941,32 +6209,34 @@ "OpenCL performansıyla ilgili bazı genel yapılandırma parametreleri artık " "kullanılmamaktadır." -#: ../src/common/darktable.c:1991 +#: ../src/common/darktable.c:2129 msgid "" -"instead you will find 'per device' data in 'cl_device_v4_canonical-name'. " +"instead you will find 'per device' data in 'cldevice_v5_canonical-name'. " "content is:" msgstr "" -"bunun yerine, 'cihaz başına' verilerini 'cl_devıce_v4_canonıcal-name' içinde " -"bulacaksınız. içerik şu şekildedir:" +"bunun yerine 'cldevice_v5_canonical-name'de 'cihaz başına' verileri " +"bulacaksınız. içerik:" -#: ../src/common/darktable.c:1993 ../src/common/darktable.c:2012 +#: ../src/common/darktable.c:2131 ../src/common/darktable.c:2150 +#: ../src/common/darktable.c:2165 msgid "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" msgstr "" -" 'atomlardan_kaçının' 'micro_kestirme' 'toparlama' 'yuvarlama' 'olay " -"tutamaçları ' 'zaman uyumsuz' 'devre dışı' 'sihir'" +" 'kaçınma_atomikleri' 'micro_nap' 'sabitlenmiş_bellek' 'toparlamawd' " +"'toparlama' 'olay tanıtıcıları' 'eşzamansız' 'devre dışı bırak' 'sihirli' " +"'avantaj' 'birleşik'" -#: ../src/common/darktable.c:1995 ../src/common/darktable.c:2014 +#: ../src/common/darktable.c:2133 ../src/common/darktable.c:2152 msgid "you may tune as before except 'magic'" msgstr "'sihir' dışında eskisi gibi ayarlayabilirsiniz" -#: ../src/common/darktable.c:2001 +#: ../src/common/darktable.c:2139 msgid "" "your OpenCL compiler settings for all devices have been reset to default." msgstr "tüm cihazlar için OpenCL derleyici ayarlarınız varsayılana sıfırlandı." -#: ../src/common/darktable.c:2008 +#: ../src/common/darktable.c:2146 msgid "" "OpenCL global config parameters 'per device' data has been recreated with an " "updated name." @@ -5974,22 +6244,36 @@ "OpenCL genel yapılandırma parametreleri 'cihaz başına' verileri güncellenmiş " "bir adla yeniden oluşturuldu." -#: ../src/common/darktable.c:2010 +#: ../src/common/darktable.c:2148 ../src/common/darktable.c:2163 msgid "" -"you will find 'per device' data in 'cl_device_v5_canonical-name'. content is:" +"you will find 'per device' data in 'cldevice_v5_canonical-name'. content is:" msgstr "" -"\"cl_device_v5_canonical-name\" içinde \"cihaz başına\" verileri " +"\"cldevice_v5_canonical-name\" içinde \"cihaz başına\" verileri " "bulacaksınız. içerik:" -#: ../src/common/darktable.c:2016 +#: ../src/common/darktable.c:2154 msgid "" "If you're using device names in 'opencl_device_priority' you should update " "them to the new names." msgstr "" -"eğer 'opencl_device_priority' içinde cihaz adları kullanıyorsanız, bunları " +"Eğer 'opencl_device_priority' içinde cihaz adları kullanıyorsanız, bunları " "yeni adlarla güncellemelisiniz." -#: ../src/common/database.c:2756 +#: ../src/common/darktable.c:2161 +msgid "" +"OpenCL 'per device' config data have been automatically extended by 'unified-" +"fraction'." +msgstr "" +"OpenCL 'cihaz başına' yapılandırma verileri otomatik olarak 'birleşik kesir' " +"ile genişletildi." + +#: ../src/common/darktable.c:2172 +msgid "" +"OpenCL 'per device' compiler settings might have been updated.\n" +"\n" +msgstr "OpenCL 'cihaz başına' derleyici ayarları güncellenmiş olabilir.\n" + +#: ../src/common/database.c:3350 #, c-format msgid "" "\n" @@ -6048,30 +6332,19 @@ "vardır.</i>\n" #. clang-format on -#: ../src/common/database.c:2777 +#: ../src/common/database.c:3371 msgid "error starting darktable" msgstr "darktable başlatma hatası" -#: ../src/common/database.c:2778 ../src/libs/collect.c:2915 -#: ../src/libs/export_metadata.c:288 ../src/libs/import.c:1702 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:227 ../src/libs/modulegroups.c:3464 -#: ../src/libs/styles.c:438 ../src/libs/styles.c:621 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3471 -msgid "cancel" -msgstr "vazgeç" - -#: ../src/common/database.c:2778 -msgid "delete database lock files" -msgstr "veritabanı kilit dosyalarını sil" +#: ../src/common/database.c:3372 +msgid "_delete database lock files" +msgstr "_veritabanı kilit dosyalarını sil" -#: ../src/common/database.c:2784 +#: ../src/common/database.c:3378 msgid "are you sure?" msgstr "emin misiniz?" -#: ../src/common/database.c:2785 +#: ../src/common/database.c:3379 msgid "" "\n" "do you really want to delete the lock files?\n" @@ -6079,20 +6352,19 @@ "\n" "kilit dosyalarını gerçekten silmek istiyor musunuz?\n" -#: ../src/common/database.c:2785 ../src/common/variables.c:703 -#: ../src/develop/imageop_gui.c:210 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 -msgid "yes" -msgstr "evet" +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2597 +msgid "_no" +msgstr "_hayır" -#: ../src/common/database.c:2801 ../src/libs/export_metadata.c:164 -#: ../src/libs/geotagging.c:811 +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2596 +msgid "_yes" +msgstr "_evet" + +#: ../src/common/database.c:3395 msgid "done" msgstr "tamamlandı" -#: ../src/common/database.c:2802 +#: ../src/common/database.c:3396 msgid "" "\n" "successfully deleted the lock files.\n" @@ -6102,17 +6374,17 @@ "kilit dosyaları başarıyla silindi.\n" "artık darktable'ı yeniden başlatabilirsiniz\n" -#. the button to close the popup -#: ../src/common/database.c:2803 ../src/common/database.c:2810 -#: ../src/libs/filters/filename.c:452 -msgid "ok" -msgstr "tamam" +#: ../src/common/database.c:3397 ../src/common/database.c:3404 +#: ../src/gui/accelerators.c:2580 ../src/gui/accelerators.c:2662 +#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:566 +msgid "_ok" +msgstr "ta_mam" -#: ../src/common/database.c:2806 +#: ../src/common/database.c:3400 msgid "error" msgstr "hata" -#: ../src/common/database.c:2807 +#: ../src/common/database.c:3401 #, c-format msgid "" "\n" @@ -6127,7 +6399,7 @@ "deneyebilirsiniz.\n" "<a href=\"file:///%s\">%s</a> klasöründe.\n" -#: ../src/common/database.c:2924 +#: ../src/common/database.c:3518 #, c-format msgid "" "the database lock file contains a pid that seems to be alive in your system: " @@ -6136,18 +6408,43 @@ "veritabanı kilit dosyası, sisteminizde canlı görünen bir kişisel kimlik " "içeriyor: %d" -#: ../src/common/database.c:2931 +#: ../src/common/database.c:3525 #, c-format msgid "the database lock file seems to be empty" msgstr "veritabanı kilit dosyası boş görünüyor" -#: ../src/common/database.c:2941 +#: ../src/common/database.c:3535 #, c-format msgid "error opening the database lock file for reading: %s" msgstr "okumak için veritabanı kilit dosyası açılış hatası: %s" +#: ../src/common/database.c:3605 +#, c-format +msgid "" +"the database schema version of\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"is too new for this build of darktable (this means the database was created " +"or upgraded by a newer darktable version)\n" +msgstr "" +"veritabanı şeması sürümü\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"bu darktable yapısı için çok yeni (bu, veritabanının daha yeni bir darktable " +"sürümü tarafından oluşturulduğu veya yükseltildiği anlamına gelir)\n" + +#: ../src/common/database.c:3612 +msgid "darktable - too new db version" +msgstr "darktable - çok yeni db sürümü" + +#: ../src/common/database.c:3613 +msgid "_quit darktable" +msgstr "_darktable den çık" + #. the database has to be upgraded, let's ask user -#: ../src/common/database.c:2978 +#: ../src/common/database.c:3628 #, c-format msgid "" "the database schema has to be upgraded for\n" @@ -6166,21 +6463,21 @@ "\n" "yedekleme yapmak için devam etmek mi yoksa şimdi çıkmak mı istiyorsunuz\n" -#: ../src/common/database.c:2986 +#: ../src/common/database.c:3636 msgid "darktable - schema migration" msgstr "darktable - şema geçişi" -#: ../src/common/database.c:2987 ../src/common/database.c:3306 -#: ../src/common/database.c:3324 ../src/common/database.c:3491 -#: ../src/common/database.c:3509 -msgid "close darktable" -msgstr "darktable'ı kapat" - -#: ../src/common/database.c:2987 -msgid "upgrade database" -msgstr "veritabanını yükselt" +#: ../src/common/database.c:3637 ../src/common/database.c:3959 +#: ../src/common/database.c:3974 ../src/common/database.c:4142 +#: ../src/common/database.c:4157 +msgid "_close darktable" +msgstr "_darktable'ı kapat" + +#: ../src/common/database.c:3637 +msgid "_upgrade database" +msgstr "_veritabanını yükselt" -#: ../src/common/database.c:3286 ../src/common/database.c:3471 +#: ../src/common/database.c:3939 ../src/common/database.c:4122 #, c-format msgid "" "quick_check said:\n" @@ -6189,21 +6486,21 @@ "hızlı_kontrol dedi ki:\n" "%s \n" -#: ../src/common/database.c:3303 ../src/common/database.c:3321 -#: ../src/common/database.c:3488 ../src/common/database.c:3506 +#: ../src/common/database.c:3956 ../src/common/database.c:3971 +#: ../src/common/database.c:4139 ../src/common/database.c:4154 msgid "darktable - error opening database" msgstr "darktable - veritabanı açma hatası" -#: ../src/common/database.c:3308 ../src/common/database.c:3493 -msgid "attempt restore" -msgstr "geri yüklemeyi dene" - -#: ../src/common/database.c:3310 ../src/common/database.c:3326 -#: ../src/common/database.c:3495 ../src/common/database.c:3511 -msgid "delete database" -msgstr "veritabanını sil" +#: ../src/common/database.c:3960 ../src/common/database.c:4143 +msgid "_attempt restore" +msgstr "_geri yüklemeyi dene" + +#: ../src/common/database.c:3961 ../src/common/database.c:3975 +#: ../src/common/database.c:4144 ../src/common/database.c:4158 +msgid "_delete database" +msgstr "_veritabanını sil" -#: ../src/common/database.c:3314 ../src/common/database.c:3499 +#: ../src/common/database.c:3964 ../src/common/database.c:4147 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup, attempt an automatic restore\n" @@ -6215,7 +6512,7 @@ "en son anlık görüntüden veya bozuk veritabanını silin\n" "ve yeni bir tane ile başlamak?" -#: ../src/common/database.c:3330 ../src/common/database.c:3515 +#: ../src/common/database.c:3978 ../src/common/database.c:4161 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup or delete the corrupted database\n" @@ -6225,7 +6522,7 @@ "veritabanını bir yedekten alın veya bozuk veritabanını silin\n" "ve yeni bir tane ile başlamak?" -#: ../src/common/database.c:3337 ../src/common/database.c:3520 +#: ../src/common/database.c:3985 ../src/common/database.c:4166 #, c-format msgid "" "an error has occurred while trying to open the database from\n" @@ -6250,12 +6547,12 @@ "hızlı pozlamadan bağımsız kılavuzlu filtre bellek ayıramadı, RAM " "ayarlarınızı kontrol edin" -#: ../src/common/exif.cc:5200 +#: ../src/common/exif.cc:5482 #, c-format msgid "cannot read XMP file '%s': '%s'" msgstr "'%s' XMP dosyası okunamıyor: '%s'" -#: ../src/common/exif.cc:5258 +#: ../src/common/exif.cc:5540 #, c-format msgid "cannot write XMP file '%s': '%s'" msgstr "'%s' XMP dosyası yazılamıyor: '%s'" @@ -6264,121 +6561,121 @@ msgid "fast guided filter failed to allocate memory, check your RAM settings" msgstr "hızlı kılavuzla filtre bellek ayıramadı, RAM ayarlarınızı kontrol edin" -#: ../src/common/film.c:345 +#: ../src/common/film.c:356 msgid "do you want to remove this empty directory?" msgid_plural "do you want to remove these empty directories?" msgstr[0] "bu boş dizini kaldırmak istiyor musunuz?" msgstr[1] "bu boş dizinleri kaldırmak istiyor musunuz?" -#: ../src/common/film.c:352 +#: ../src/common/film.c:363 msgid "remove empty directory?" msgid_plural "remove empty directories?" msgstr[0] "boş dizini kaldır?" msgstr[1] "boş dizinleri kaldır?" -#: ../src/common/film.c:371 ../src/gui/preferences.c:816 -#: ../src/gui/styles_dialog.c:548 ../src/libs/geotagging.c:829 -#: ../src/libs/import.c:1551 +#: ../src/common/film.c:383 ../src/gui/preferences.c:814 +#: ../src/gui/styles_dialog.c:556 ../src/libs/geotagging.c:830 +#: ../src/libs/import.c:1560 msgid "name" msgstr "isim" -#: ../src/common/film.c:477 +#: ../src/common/film.c:492 msgid "" "cannot remove film roll having local copies with non accessible originals" msgstr "" "erişilemeyen özgünlere sahip yerel kopyaları olan film rulosunu kaldıramaz" -#: ../src/common/history.c:840 +#: ../src/common/history.c:876 msgid "you need to copy history from an image before you paste it onto another" msgstr "" "bir görüntüden diğerine yapıştırmadan önce geçmişi kopyalamanız gerekir" -#: ../src/common/image.c:325 +#: ../src/common/image.c:333 msgid "orphaned image" msgstr "sahipsiz görüntü" -#: ../src/common/image.c:620 +#: ../src/common/image.c:629 #, c-format msgid "geo-location undone for %d image" msgid_plural "geo-location undone for %d images" msgstr[0] "%d görüntüsü için coğrafi konum geri alındı" msgstr[1] "%d görüntüleri için coğrafi konum geri alındı" -#: ../src/common/image.c:622 +#: ../src/common/image.c:631 #, c-format msgid "geo-location re-applied to %d image" msgid_plural "geo-location re-applied to %d images" msgstr[0] "coğrafi konum %d görüntüsüne yeniden uygulandı" msgstr[1] "coğrafi konum %d görüntülerine yeniden uygulandı" -#: ../src/common/image.c:645 +#: ../src/common/image.c:654 #, c-format msgid "date/time undone for %d image" msgid_plural "date/time undone for %d images" msgstr[0] "%d görüntüsü için tarih/saat geri alındı" msgstr[1] "%d görüntüleri için tarih/saat geri alındı" -#: ../src/common/image.c:647 +#: ../src/common/image.c:656 #, c-format msgid "date/time re-applied to %d image" msgid_plural "date/time re-applied to %d images" msgstr[0] "tarih/saat %d görüntüsüne yeniden uygulandı" msgstr[1] "tarih/saat %d görüntülerine yeniden uygulandı" -#: ../src/common/image.c:2188 +#: ../src/common/image.c:2260 #, c-format msgid "cannot access local copy `%s'" msgstr "`%s' yerel kopyasına erişilemiyor" -#: ../src/common/image.c:2195 +#: ../src/common/image.c:2267 #, c-format msgid "cannot write local copy `%s'" msgstr "yerel kopya `%s' yazamıyor" -#: ../src/common/image.c:2202 +#: ../src/common/image.c:2274 #, c-format msgid "error moving local copy `%s' -> `%s'" msgstr "yerel kopya `%s' -> `%s' taşınırken hata oluştu" -#: ../src/common/image.c:2219 +#: ../src/common/image.c:2291 #, c-format msgid "error moving `%s': file not found" msgstr "`%s' taşınırken hata oluştu: dosya bulunamadı" -#: ../src/common/image.c:2229 +#: ../src/common/image.c:2301 #, c-format msgid "error moving `%s' -> `%s': file exists" msgstr "`%s' -> `%s' taşınırken hata oluştu: dosya var" -#: ../src/common/image.c:2233 +#: ../src/common/image.c:2305 #, c-format msgid "error moving `%s' -> `%s'" msgstr "`%s' -> `%s' taşınırken hata oluştu" -#: ../src/common/image.c:2562 +#: ../src/common/image.c:2634 msgid "cannot create local copy when the original file is not accessible." msgstr "orijinal dosyaya erişilemediğinde yerel kopya oluşturamaz." -#: ../src/common/image.c:2576 +#: ../src/common/image.c:2648 msgid "cannot create local copy." msgstr "yerel kopya oluşturulamıyor." -#: ../src/common/image.c:2656 ../src/control/jobs/control_jobs.c:777 +#: ../src/common/image.c:2728 ../src/control/jobs/control_jobs.c:777 msgid "cannot remove local copy when the original file is not accessible." msgstr "orijinal dosyaya erişilemediğinde yerel kopyayı kaldıramaz." -#: ../src/common/image.c:2821 +#: ../src/common/image.c:2901 #, c-format msgid "%d local copy has been synchronized" msgid_plural "%d local copies have been synchronized" msgstr[0] "%d yerel kopya eşleştirildi" msgstr[1] "%d yerel kopyalar eşleştirildi" -#: ../src/common/image.c:3022 +#: ../src/common/image.c:3102 msgid "<b>WARNING</b>: camera is missing samples!" msgstr "<b>UYARI</b>: kamera örnekleri eksik!" -#: ../src/common/image.c:3023 +#: ../src/common/image.c:3103 msgid "" "You must provide samples in <a href='https://raw.pixls.us/'>https://raw." "pixls.us/</a>" @@ -6386,7 +6683,7 @@ "<a href='https://raw.pixls.us/'>https://raw.pixls.us/</a> içinde örnekler " "sağlamalısınız" -#: ../src/common/image.c:3024 +#: ../src/common/image.c:3104 #, c-format msgid "" "for `%s' `%s'\n" @@ -6395,81 +6692,82 @@ "`%s' `%s' için\n" "mümkün olduğu kadar çok format/sıkıştırma/bit derinliğinde" -#: ../src/common/image.c:3027 +#: ../src/common/image.c:3107 msgid "or the <b>RAW won't be readable</b> in next version." msgstr "veya sonraki sürümde <b>RAW okunamaz</b>." -#: ../src/common/image.h:209 ../src/common/ratings.c:284 -#: ../src/libs/history.c:843 ../src/libs/snapshots.c:779 +#: ../src/common/image.h:217 ../src/common/ratings.c:283 +#: ../src/imageio/format/avif.c:114 ../src/libs/history.c:843 +#: ../src/libs/snapshots.c:837 msgid "unknown" msgstr "bilinmeyen" #. EMPTY_FIELD -#: ../src/common/image.h:210 -msgid "tiff" -msgstr "tiff" - -#: ../src/common/image.h:211 -msgid "png" -msgstr "png" - -#: ../src/common/image.h:212 ../src/imageio/format/j2k.c:652 -msgid "j2k" -msgstr "j2k" - -#: ../src/common/image.h:213 -msgid "jpeg" -msgstr "jpeg" - -#: ../src/common/image.h:214 -msgid "exr" -msgstr "exr" - -#: ../src/common/image.h:215 -msgid "rgbe" -msgstr "rgbe" - -#: ../src/common/image.h:216 -msgid "pfm" -msgstr "pfm" - -#: ../src/common/image.h:217 -msgid "GraphicsMagick" -msgstr "GrafikBüyüsü" +#: ../src/common/image.h:218 ../src/imageio/format/tiff.c:831 +msgid "TIFF" +msgstr "TIFF" -#: ../src/common/image.h:218 -msgid "rawspeed" -msgstr "ham hız" - -#: ../src/common/image.h:219 -msgid "netpnm" -msgstr "netpnm" +#: ../src/common/image.h:219 ../src/imageio/format/png.c:599 +msgid "PNG" +msgstr "PNG" #: ../src/common/image.h:220 -msgid "avif" -msgstr "avif" +msgid "JPEG 2000" +msgstr "JPEG 2000" #: ../src/common/image.h:221 -msgid "ImageMagick" -msgstr "BüyülüGörüntü" +msgid "JPEG" +msgstr "JPEG" #: ../src/common/image.h:222 -msgid "heif" -msgstr "heif" +msgid "EXR" +msgstr "EXR" #: ../src/common/image.h:223 -msgid "libraw" -msgstr "libraw" +msgid "RGBE" +msgstr "RGBE" -#: ../src/common/image.h:224 -msgid "webp" -msgstr "webp" +#: ../src/common/image.h:224 ../src/imageio/format/pfm.c:120 +msgid "PFM" +msgstr "PFM" #: ../src/common/image.h:225 -msgid "jpeg xl" -msgstr "jpeg xl" +msgid "GraphicsMagick" +msgstr "GrafikBüyüsü" #: ../src/common/image.h:226 +msgid "RawSpeed" +msgstr "HamHız" + +#: ../src/common/image.h:227 +msgid "Netpbm" +msgstr "Netpbm" + +#: ../src/common/image.h:228 ../src/imageio/format/avif.c:728 +msgid "AVIF" +msgstr "AVIF" + +#: ../src/common/image.h:229 +msgid "ImageMagick" +msgstr "BüyülüGörüntü" + +#: ../src/common/image.h:230 +msgid "HEIF" +msgstr "HEIF" + +#: ../src/common/image.h:231 +msgid "LibRaw" +msgstr "LibRaw" + +#: ../src/common/image.h:232 ../src/imageio/format/webp.c:380 +msgid "WebP" +msgstr "WebP" + +#: ../src/common/image.h:233 ../src/imageio/format/jxl.c:482 +msgid "JPEG XL" +msgstr "JPEG XL" + +#: ../src/common/image.h:234 msgid "QOI" msgstr "QOI" @@ -6501,7 +6799,7 @@ msgid "requested session path not available. device not mounted?" msgstr "istenen oturum yolu mevcut değil. cihaz takılı değil mi?" -#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:197 +#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:195 msgid "legacy" msgstr "eski" @@ -6513,7 +6811,7 @@ msgid "v3.0 JPEG" msgstr "v3.0 JPEG" -#: ../src/common/iop_profile.c:1205 +#: ../src/common/iop_profile.c:1207 #, c-format msgid "" "darktable loads %s from\n" @@ -6537,13 +6835,13 @@ #. title #: ../src/common/metadata.c:48 ../src/imageio/format/pdf.c:574 -#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:169 -#: ../src/imageio/storage/gallery.c:170 ../src/imageio/storage/latex.c:169 -#: ../src/imageio/storage/piwigo.c:1058 ../src/libs/filtering.c:69 +#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:219 +#: ../src/imageio/storage/gallery.c:222 ../src/imageio/storage/latex.c:206 +#: ../src/imageio/storage/piwigo.c:1091 ../src/libs/filtering.c:69 msgid "title" msgstr "başlık" -#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:552 +#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:563 #: ../src/libs/filtering.c:70 msgid "description" msgstr "açıklama" @@ -6561,11 +6859,11 @@ msgstr "sürüm adı" #: ../src/common/metadata.c:53 ../src/libs/live_view.c:319 -#: ../src/libs/metadata_view.c:124 +#: ../src/libs/metadata_view.c:126 msgid "image id" msgstr "görüntü kimliği" -#: ../src/common/mipmap_cache.c:1065 ../src/imageio/imageio.c:787 +#: ../src/common/mipmap_cache.c:1070 ../src/imageio/imageio.c:799 #, c-format msgid "image `%s' is not available!" msgstr "`%s' görüntüsü mevcut değil!" @@ -6579,7 +6877,43 @@ msgid "noiseprofile file `%s' is not valid" msgstr "gürültü profili dosyası `%s' geçerli değil" -#: ../src/common/opencl.c:1376 +#: ../src/common/opencl.c:1165 +msgid "no working OpenCL library found" +msgstr "çalışan bir OpenCL kütüphanesi bulunamadı" + +#: ../src/common/opencl.c:1185 +msgid "" +"platform detection failed. some possible causes:\n" +" - OpenCL ICD (ocl-icd) missing,\n" +" - previous OpenCL errors leading to blocked devices,\n" +" - power management problems,\n" +" - buggy drivers,\n" +" - no OpenCL driver installed." +msgstr "" +"platform tespiti başarısız oldu. bazı olası nedenler:\n" +" - OpenCL ICD (ocl-icd) eksik,\n" +" - cihazların engellenmesine yol açan önceki OpenCL hataları,\n" +" - güç yönetimi sorunları,\n" +" - hatalı sürücüler,,\n" +" - OpenCL sürücüsü yüklü değil." + +#: ../src/common/opencl.c:1277 +msgid "no devices found for unknown platform" +msgstr "bilinmeyen platform için cihaz bulunamadı" + +#: ../src/common/opencl.c:1323 +msgid "not enough memory for OpenCL devices" +msgstr "OpenCL aygıtları için yeterli bellek yok" + +#: ../src/common/opencl.c:1358 +msgid "no OpenCL devices found" +msgstr "OpenCL cihazı bulunamadı" + +#: ../src/common/opencl.c:1401 +msgid "no suitable OpenCL devices found" +msgstr "uygun OpenCL cihazı bulunamadı" + +#: ../src/common/opencl.c:1422 #, c-format msgid "" "OpenCL initializing problem:\n" @@ -6588,34 +6922,21 @@ "OpenCL başlatma sorunu:\n" "%s" -#: ../src/common/opencl.c:1439 -msgid "" -"due to a slow GPU hardware acceleration using OpenCL has been deactivated" -msgstr "" -"yavaş bir GPU donanım ivmesi nedeniyle OpenCL kullanılarak devre dışı " -"bırakıldı" - -#: ../src/common/opencl.c:1449 -msgid "" -"multiple GPUs detected - OpenCL scheduling profile has been set accordingly" -msgstr "" -"birden çok GPU algılandı - OpenCL zamanlama profili buna göre ayarlandı" - -#: ../src/common/opencl.c:1462 -msgid "" -"very fast GPU detected - OpenCL scheduling profile has been set accordingly" -msgstr "çok hızlı GPU algılandı - OpenCL zamanlama profili buna göre ayarlandı" +#: ../src/common/opencl.c:1454 +msgid "OpenCL scheduling profile set to default, setup has changed" +msgstr "OpenCL planlama profili varsayılana ayarlandı, kurulum değişti" -#: ../src/common/opencl.c:1471 -msgid "OpenCL scheduling profile set to default" -msgstr "OpenCL zamanlama profili varsayılan olarak ayarlandı" +#: ../src/common/opencl.c:2283 +#, c-format +msgid "building OpenCL program %s for %s" +msgstr "%s için %s OpenCL programı oluşturuluyor" -#: ../src/common/pdf.h:88 ../src/iop/lens.cc:3441 +#: ../src/common/pdf.h:88 ../src/iop/lens.cc:4071 #: ../src/libs/filters/focal.c:74 ../src/libs/print_settings.c:81 msgid "mm" msgstr "mm" -#: ../src/common/pdf.h:89 ../src/libs/export.c:520 ../src/libs/export.c:1145 +#: ../src/common/pdf.h:89 ../src/libs/export.c:555 ../src/libs/export.c:1241 #: ../src/libs/print_settings.c:81 msgid "cm" msgstr "cm" @@ -6628,7 +6949,7 @@ msgid "\"" msgstr "\"" -#: ../src/common/pdf.h:104 ../src/iop/borders.c:958 +#: ../src/common/pdf.h:104 ../src/iop/borders.c:971 msgid "A4" msgstr "A4" @@ -6667,66 +6988,65 @@ msgid "no images selected to apply rating" msgstr "derecelendirme uygulamak için görüntü seçilmemiş" -#: ../src/common/ratings.c:275 ../src/libs/metadata_view.c:351 +#: ../src/common/ratings.c:274 ../src/libs/metadata_view.c:355 msgid "image rejected" msgstr "görüntü reddedildi" -#: ../src/common/ratings.c:277 +#: ../src/common/ratings.c:276 msgid "image rated to 0 star" msgstr "0 yıldızla derecelendirilen resim" -#: ../src/common/ratings.c:279 +#: ../src/common/ratings.c:278 #, c-format msgid "image rated to %s" msgstr "görüntü %s olarak derecelendirildi" -#: ../src/common/ratings.c:306 ../src/libs/select.c:39 -#: ../src/views/lighttable.c:766 +#: ../src/common/ratings.c:305 ../src/views/lighttable.c:766 msgid "select" msgstr "seç" -#: ../src/common/ratings.c:307 +#: ../src/common/ratings.c:306 msgid "upgrade" msgstr "yükselt" -#: ../src/common/ratings.c:308 +#: ../src/common/ratings.c:307 msgid "downgrade" msgstr "eski sürüme geç" -#: ../src/common/ratings.c:312 +#: ../src/common/ratings.c:311 msgid "zero" msgstr "sıfır" -#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:277 +#: ../src/common/ratings.c:312 ../src/libs/filters/rating_range.c:304 msgid "one" msgstr "bir" -#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:278 +#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:305 msgid "two" msgstr "iki" -#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:279 +#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:306 msgid "three" msgstr "üç" -#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:280 +#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:307 msgid "four" msgstr "dört" -#: ../src/common/ratings.c:317 ../src/libs/filters/rating_range.c:281 +#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:308 msgid "five" msgstr "beş" -#: ../src/common/ratings.c:318 +#: ../src/common/ratings.c:317 msgid "reject" msgstr "reddet" -#: ../src/common/styles.c:244 +#: ../src/common/styles.c:243 #, c-format msgid "style with name '%s' already exists" msgstr "'%s' adlı tarz zaten var" -#: ../src/common/styles.c:270 ../src/common/styles.c:1776 +#: ../src/common/styles.c:270 ../src/common/styles.c:1783 #: ../src/libs/styles.c:54 msgid "styles" msgstr "tarzlar" @@ -6736,57 +7056,57 @@ msgid "style named '%s' successfully created" msgstr "'%s' adlı tarz başarıyla oluşturuldu" -#: ../src/common/styles.c:689 ../src/common/styles.c:719 -#: ../src/common/styles.c:759 ../src/dtgtk/culling.c:1097 +#: ../src/common/styles.c:688 ../src/common/styles.c:718 +#: ../src/common/styles.c:758 ../src/dtgtk/culling.c:1066 msgid "no image selected!" msgstr "görüntü seçilmedi!" -#: ../src/common/styles.c:693 +#: ../src/common/styles.c:692 #, c-format msgid "style %s successfully applied!" msgstr "tarz %s başarıyla uygulandı!" -#: ../src/common/styles.c:709 +#: ../src/common/styles.c:708 msgid "no images nor styles selected!" msgstr "hiçbir görüntü veya tarz seçilmedi!" -#: ../src/common/styles.c:714 +#: ../src/common/styles.c:713 msgid "no styles selected!" msgstr "tarz seçilmedi!" -#: ../src/common/styles.c:744 +#: ../src/common/styles.c:743 msgid "style successfully applied!" msgid_plural "styles successfully applied!" msgstr[0] "tarz başarıyla uygulandı!" msgstr[1] "tarzlar başarıyla uygulandı!" -#: ../src/common/styles.c:840 +#: ../src/common/styles.c:838 #, c-format msgid "module `%s' version mismatch: %d != %d" msgstr "modül `%s' sürüm uyuşmazlığı: %d != %d" -#: ../src/common/styles.c:1124 +#: ../src/common/styles.c:1125 #, c-format msgid "applied style `%s' on current image" msgstr "geçerli görüntüye uygulanan tarz `%s'" -#: ../src/common/styles.c:1378 +#: ../src/common/styles.c:1383 #, c-format msgid "failed to overwrite style file for %s" msgstr "%s için tarz dosyasının üzerine yazılamadı" -#: ../src/common/styles.c:1384 +#: ../src/common/styles.c:1389 #, c-format msgid "style file for %s exists" msgstr "%s için tarz dosyası var" -#: ../src/common/styles.c:1667 +#: ../src/common/styles.c:1674 #, c-format msgid "style %s was successfully imported" msgstr "%s tarzı başarılı bir şekilde içe aktarıldı" #. Failed to open file, clean up. -#: ../src/common/styles.c:1711 +#: ../src/common/styles.c:1718 #, c-format msgid "could not read file `%s'" msgstr "`%s' dosyası okunamadı" @@ -6799,10 +7119,18 @@ msgid "below sea level" msgstr "deniz seviyesinin altında" -#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:880 +#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:907 msgid "m" msgstr "m" +#: ../src/common/variables.c:712 ../src/develop/imageop_gui.c:210 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "yes" +msgstr "evet" + #. Column 1 - "make" of the camera. #. * Column 2 - "model" (use the "make" and "model" as provided by DCRaw). #. * Column 3 - WB name. @@ -6815,7 +7143,7 @@ #. * #. * WB name is standardized to one of the following: #. "Sunlight" and other variation should be switched to this: -#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:323 +#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:320 msgid "daylight" msgstr "gün ışığı" @@ -6915,7 +7243,7 @@ msgid "underwater" msgstr "su altı" -#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2447 +#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2286 msgid "black & white" msgstr "siyah & beyaz" @@ -6935,85 +7263,85 @@ msgid "auto WB" msgstr "otomatik WB" -#: ../src/control/control.c:66 ../src/gui/accelerators.c:138 -#: ../src/views/darkroom.c:2162 +#: ../src/control/control.c:69 ../src/gui/accelerators.c:156 +#: ../src/views/darkroom.c:2029 msgid "hold" msgstr "tut" -#: ../src/control/control.c:102 ../src/control/control.c:205 +#: ../src/control/control.c:108 ../src/control/control.c:214 msgid "modifiers" msgstr "değiştiriciler" -#: ../src/control/control.c:111 +#: ../src/control/control.c:117 msgctxt "accel" msgid "global" msgstr "genel" -#: ../src/control/control.c:118 +#: ../src/control/control.c:124 msgctxt "accel" msgid "views" msgstr "görüntüleme" -#: ../src/control/control.c:125 +#: ../src/control/control.c:131 msgctxt "accel" msgid "thumbtable" msgstr "minyatür tablo" -#: ../src/control/control.c:132 +#: ../src/control/control.c:138 msgctxt "accel" msgid "utility modules" msgstr "yardımcı modüller" -#: ../src/control/control.c:139 +#: ../src/control/control.c:145 msgctxt "accel" msgid "format" msgstr "biçim" -#: ../src/control/control.c:146 +#: ../src/control/control.c:152 msgctxt "accel" msgid "storage" msgstr "depolama" -#: ../src/control/control.c:153 +#: ../src/control/control.c:159 msgctxt "accel" msgid "processing modules" msgstr "işleme modülleri" -#: ../src/control/control.c:160 +#: ../src/control/control.c:166 msgctxt "accel" msgid "<blending>" msgstr "<harmanlama>" -#: ../src/control/control.c:167 +#: ../src/control/control.c:173 msgctxt "accel" msgid "Lua scripts" msgstr "Lua betikleri" -#: ../src/control/control.c:174 +#: ../src/control/control.c:180 msgctxt "accel" msgid "fallbacks" msgstr "geri dönüşler" -#: ../src/control/control.c:183 +#: ../src/control/control.c:189 msgctxt "accel" msgid "<focused>" msgstr "<odak>" -#: ../src/control/control.c:202 +#: ../src/control/control.c:209 msgid "show accels window" msgstr "hızlanma penceresini göster" -#: ../src/control/control.c:363 +#: ../src/control/control.c:371 msgid "working..." msgstr "çalışma..." -#: ../src/control/crawler.c:425 +#: ../src/control/crawler.c:418 #, c-format msgid "ERROR: %s NOT synced XMP → DB" msgstr "HATA: %s senkronize edilmedi XMP → DB" -#: ../src/control/crawler.c:426 ../src/control/crawler.c:492 -#: ../src/control/crawler.c:561 +#: ../src/control/crawler.c:419 ../src/control/crawler.c:485 +#: ../src/control/crawler.c:554 msgid "" "ERROR: cannot write the database. the destination may be full, offline or " "read-only." @@ -7021,18 +7349,18 @@ "HATA: veritabanına yazılamıyor. hedef dolu, çevrimdışı veya salt okunur " "olabilir." -#: ../src/control/crawler.c:433 +#: ../src/control/crawler.c:426 #, c-format msgid "SUCCESS: %s synced XMP → DB" msgstr "BAŞARILI: %s senkronize edildi XMP → DB" -#: ../src/control/crawler.c:455 +#: ../src/control/crawler.c:448 #, c-format msgid "ERROR: %s NOT synced DB → XMP" msgstr "HATA: %s senkronize edilmedi DB → XMP" -#: ../src/control/crawler.c:457 ../src/control/crawler.c:516 -#: ../src/control/crawler.c:582 +#: ../src/control/crawler.c:450 ../src/control/crawler.c:509 +#: ../src/control/crawler.c:575 #, c-format msgid "" "ERROR: cannot write %s \n" @@ -7041,129 +7369,133 @@ "HATA: %s yazılamıyor\n" "hedef dolu, çevrimdışı veya salt okunur olabilir." -#: ../src/control/crawler.c:463 +#: ../src/control/crawler.c:456 #, c-format msgid "SUCCESS: %s synced DB → XMP" msgstr "BAŞARILI: %s senkronize edildi DB → XMP" -#: ../src/control/crawler.c:489 +#: ../src/control/crawler.c:482 #, c-format msgid "ERROR: %s NOT synced new (XMP) → old (DB)" msgstr "HATA: %s senkronize edilmedi yeni (XMP) → eski (DB)" -#: ../src/control/crawler.c:499 +#: ../src/control/crawler.c:492 #, c-format msgid "SUCCESS: %s synced new (XMP) → old (DB)" msgstr "BAŞARILI: %s senkronize edildi yeni (XMP) → eski (DB)" -#: ../src/control/crawler.c:513 +#: ../src/control/crawler.c:506 #, c-format msgid "ERROR: %s NOT synced new (DB) → old (XMP)" msgstr "HATA: %s senkronize edilmedi yeni (DB) → eski (XMP)" -#: ../src/control/crawler.c:521 +#: ../src/control/crawler.c:514 #, c-format msgid "SUCCESS: %s synced new (DB) → old (XMP)" msgstr "BAŞARILI: %s senkronize edildi yeni (DB) → eski (XMP)" -#: ../src/control/crawler.c:530 ../src/control/crawler.c:598 +#: ../src/control/crawler.c:523 ../src/control/crawler.c:591 #, c-format msgid "EXCEPTION: %s has inconsistent timestamps" msgstr "İSTİSNA: %s tutarsız zaman damgalarına sahip" -#: ../src/control/crawler.c:558 +#: ../src/control/crawler.c:551 #, c-format msgid "ERROR: %s NOT synced old (XMP) → new (DB)" msgstr "HATA: %s senkronize edilmedi eski (XMP) → yeni (DB)" -#: ../src/control/crawler.c:567 +#: ../src/control/crawler.c:560 #, c-format msgid "SUCCESS: %s synced old (XMP) → new (DB)" msgstr "BAŞARILI: %s senkronize edildi eski (XMP) → yeni (DB)" -#: ../src/control/crawler.c:579 +#: ../src/control/crawler.c:572 #, c-format msgid "ERROR: %s NOT synced old (DB) → new (XMP)" msgstr "HATA: %s senkronize edilmedi eski (DB) → yeni (XMP)" -#: ../src/control/crawler.c:588 +#: ../src/control/crawler.c:581 #, c-format msgid "SUCCESS: %s synced old (DB) → new (XMP)" msgstr "BAŞARILI: %s senkronize edildi eski (DB) → yeni (XMP)" -#: ../src/control/crawler.c:670 +#: ../src/control/crawler.c:663 #, c-format msgid "%id %02dh %02dm %02ds" msgstr "%ig %02ds %02dd %02ds" -#: ../src/control/crawler.c:740 ../src/imageio/storage/disk.c:168 -#: ../src/imageio/storage/gallery.c:154 ../src/imageio/storage/latex.c:153 -#: ../src/imageio/storage/latex.c:171 +#: ../src/control/crawler.c:716 +msgid "XMP" +msgstr "XMP" + +#: ../src/control/crawler.c:733 ../src/imageio/storage/disk.c:250 +#: ../src/imageio/storage/gallery.c:202 ../src/imageio/storage/latex.c:190 +#: ../src/imageio/storage/latex.c:208 msgid "path" msgstr "yol" -#: ../src/control/crawler.c:749 +#: ../src/control/crawler.c:742 msgid "XMP timestamp" msgstr "XMP zaman damgası" -#: ../src/control/crawler.c:754 +#: ../src/control/crawler.c:747 msgid "database timestamp" msgstr "veritabanı zaman damgası" -#: ../src/control/crawler.c:759 +#: ../src/control/crawler.c:752 msgid "newest" msgstr "en yeni" -#: ../src/control/crawler.c:765 +#: ../src/control/crawler.c:758 msgid "time difference" msgstr "zaman farkı" -#: ../src/control/crawler.c:777 +#: ../src/control/crawler.c:770 msgid "updated XMP sidecar files found" msgstr "güncellenmiş XMP sepet dosyaları bulundu" -#: ../src/control/crawler.c:778 +#: ../src/control/crawler.c:771 msgid "_close" msgstr "kapa_t" #. setup selection accelerators #. action-box -#: ../src/control/crawler.c:793 ../src/dtgtk/thumbtable.c:2578 -#: ../src/libs/import.c:1722 ../src/libs/select.c:135 +#: ../src/control/crawler.c:786 ../src/dtgtk/thumbtable.c:2755 +#: ../src/libs/import.c:1732 ../src/libs/select.c:136 msgid "select all" msgstr "hepsini seç" -#: ../src/control/crawler.c:794 ../src/dtgtk/thumbtable.c:2580 -#: ../src/libs/import.c:1726 ../src/libs/select.c:139 +#: ../src/control/crawler.c:787 ../src/dtgtk/thumbtable.c:2757 +#: ../src/libs/import.c:1736 ../src/libs/select.c:140 msgid "select none" msgstr "hiçbirini seçme" -#: ../src/control/crawler.c:795 ../src/dtgtk/thumbtable.c:2582 -#: ../src/libs/select.c:143 +#: ../src/control/crawler.c:788 ../src/dtgtk/thumbtable.c:2759 +#: ../src/libs/select.c:144 msgid "invert selection" msgstr "seçimi ters çevir" -#: ../src/control/crawler.c:807 +#: ../src/control/crawler.c:800 msgid "on the selection:" msgstr "seçimde:" -#: ../src/control/crawler.c:808 +#: ../src/control/crawler.c:801 msgid "keep the XMP edit" msgstr "XMP düzenlemesini koru" -#: ../src/control/crawler.c:809 +#: ../src/control/crawler.c:802 msgid "keep the database edit" msgstr "veritabanı düzenlemesini koru" -#: ../src/control/crawler.c:810 +#: ../src/control/crawler.c:803 msgid "keep the newest edit" msgstr "en yeni düzenlemeyi sakla" -#: ../src/control/crawler.c:811 +#: ../src/control/crawler.c:804 msgid "keep the oldest edit" msgstr "en eski düzenlemeyi tut" -#: ../src/control/crawler.c:836 +#: ../src/control/crawler.c:829 msgid "synchronization log" msgstr "eşitleme günlüğü" @@ -7193,6 +7525,10 @@ msgid "starting to import images from camera" msgstr "kameradan görüntüleri içe aktarmaya başlanıyor" +#: ../src/control/jobs/camera_jobs.c:302 +msgid "failed to import images from camera." +msgstr "kameradan görüntüler içe aktarılamadı." + #: ../src/control/jobs/camera_jobs.c:309 #, c-format msgid "importing %d image from camera" @@ -7298,7 +7634,8 @@ msgid "_remove from library" msgstr "_kitaplıktan kaldır" -#: ../src/control/jobs/control_jobs.c:884 +#: ../src/control/jobs/control_jobs.c:884 ../src/libs/styles.c:440 +#: ../src/libs/styles.c:625 msgid "_skip" msgstr "_atla" @@ -7396,42 +7733,42 @@ msgid "exporting %d / %d to %s" msgstr "%d / %d, %s'ye dışa aktarılıyor" -#: ../src/control/jobs/control_jobs.c:1459 ../src/views/darkroom.c:800 +#: ../src/control/jobs/control_jobs.c:1451 ../src/views/darkroom.c:721 #: ../src/views/print.c:369 #, c-format msgid "image `%s' is currently unavailable" msgstr "görüntü `%s' şu anda kullanılmıyor" -#: ../src/control/jobs/control_jobs.c:1551 +#: ../src/control/jobs/control_jobs.c:1554 msgid "merge HDR image" msgstr "HDR görüntüsünü birleştir" -#: ../src/control/jobs/control_jobs.c:1565 +#: ../src/control/jobs/control_jobs.c:1568 msgid "duplicate images" msgstr "görüntüleri çiftle" -#: ../src/control/jobs/control_jobs.c:1571 +#: ../src/control/jobs/control_jobs.c:1574 msgid "flip images" msgstr "görüntüleri döndür" -#: ../src/control/jobs/control_jobs.c:1578 +#: ../src/control/jobs/control_jobs.c:1581 msgid "set monochrome images" msgstr "tek renkli görüntüler ayarla" #. get all selected images now, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1585 +#: ../src/control/jobs/control_jobs.c:1588 msgid "remove images" msgstr "görüntüleri kaldır" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove image?" msgstr "görüntüyü kaldır?" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove images?" msgstr "görüntüler kaldırılsın mı?" -#: ../src/control/jobs/control_jobs.c:1599 +#: ../src/control/jobs/control_jobs.c:1602 #, c-format msgid "" "do you really want to remove %d image from darktable\n" @@ -7447,21 +7784,21 @@ "(diskteki dosyayı silmeden)?" #. first get all selected images, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1614 -#: ../src/control/jobs/control_jobs.c:1647 +#: ../src/control/jobs/control_jobs.c:1617 +#: ../src/control/jobs/control_jobs.c:1650 msgid "delete images" msgstr "görüntüleri sil" -#: ../src/control/jobs/control_jobs.c:1630 -#: ../src/control/jobs/control_jobs.c:1660 +#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1663 msgid "delete image?" msgstr "görüntüyü sil?" -#: ../src/control/jobs/control_jobs.c:1630 +#: ../src/control/jobs/control_jobs.c:1633 msgid "delete images?" msgstr "görüntüler silinsin mi?" -#: ../src/control/jobs/control_jobs.c:1631 +#: ../src/control/jobs/control_jobs.c:1634 #, c-format msgid "" "do you really want to physically delete %d image\n" @@ -7476,14 +7813,14 @@ "%d görüntülerini gerçekten fiziksel olarak silmek istiyor musunuz?\n" "(mümkünse çöp kullanarak)?" -#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1636 #, c-format msgid "do you really want to physically delete %d image from disk?" msgid_plural "do you really want to physically delete %d images from disk?" msgstr[0] "%d görüntüsünü diskten fiziksel olarak silmek istiyor musunuz?" msgstr[1] "%d görüntülerini diskten fiziksel olarak silmek istiyor musunuz?" -#: ../src/control/jobs/control_jobs.c:1661 +#: ../src/control/jobs/control_jobs.c:1664 msgid "" "do you really want to physically delete selected image (using trash if " "possible)?" @@ -7491,27 +7828,27 @@ "seçilen görüntüyü gerçekten fiziksel olarak silmek istiyor musunuz (mümkünse " "çöp kutusunu kullanarak)?" -#: ../src/control/jobs/control_jobs.c:1662 +#: ../src/control/jobs/control_jobs.c:1665 msgid "do you really want to physically delete selected image from disk?" msgstr "" "gerçekten seçilen görüntüyü diskten fiziksel olarak silmek istiyor musunuz?" -#: ../src/control/jobs/control_jobs.c:1677 +#: ../src/control/jobs/control_jobs.c:1680 msgid "move images" msgstr "görüntüleri taşı" -#: ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 msgid "_select as destination" msgstr "_hedef olarak seç" -#: ../src/control/jobs/control_jobs.c:1708 +#: ../src/control/jobs/control_jobs.c:1711 msgid "move image?" msgid_plural "move images?" msgstr[0] "görüntü taşınsın mı?" msgstr[1] "görüntüler taşınsın mı?" -#: ../src/control/jobs/control_jobs.c:1709 +#: ../src/control/jobs/control_jobs.c:1712 #, c-format msgid "" "do you really want to physically move %d image to %s?\n" @@ -7526,17 +7863,17 @@ "%d görüntüleri fiziksel olarak %s'e taşımak istiyor musunuz?\n" "(tüm kopyalar birlikte taşınacaktır)" -#: ../src/control/jobs/control_jobs.c:1731 +#: ../src/control/jobs/control_jobs.c:1734 msgid "copy images" msgstr "görüntüleri kopyala" -#: ../src/control/jobs/control_jobs.c:1762 +#: ../src/control/jobs/control_jobs.c:1765 msgid "copy image?" msgid_plural "copy images?" msgstr[0] "görüntü kopyalansın mı?" msgstr[1] "görüntüler kopyalansın mı?" -#: ../src/control/jobs/control_jobs.c:1763 +#: ../src/control/jobs/control_jobs.c:1766 #, c-format msgid "do you really want to physically copy %d image to %s?" msgid_plural "do you really want to physically copy %d images to %s?" @@ -7545,100 +7882,95 @@ msgstr[1] "" "gerçekten %d görüntülerini %s'e fiziksel olarak kopyalamak istiyor musunuz?" -#: ../src/control/jobs/control_jobs.c:1781 -#: ../src/control/jobs/control_jobs.c:1789 +#: ../src/control/jobs/control_jobs.c:1784 +#: ../src/control/jobs/control_jobs.c:1792 msgid "local copy images" msgstr "yerel kopya görüntüler" -#: ../src/control/jobs/control_jobs.c:1796 ../src/libs/image.c:604 +#: ../src/control/jobs/control_jobs.c:1799 ../src/libs/image.c:674 msgid "refresh EXIF" msgstr "EXIF'i yenile" -#: ../src/control/jobs/control_jobs.c:1860 +#: ../src/control/jobs/control_jobs.c:1863 #, c-format msgid "failed to get parameters from storage module `%s', aborting export.." msgstr "" "`%s' depolama modülünden parametreler alınamadı, dışa aktarma işlemi iptal " "edildi.." -#: ../src/control/jobs/control_jobs.c:1876 +#: ../src/control/jobs/control_jobs.c:1879 msgid "export images" msgstr "görüntüleri dışa aktar" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "adding time offset to %d image" msgstr "%d görüntüye zaman farkı ekleme" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "setting date/time of %d image" msgstr "%d görüntünün tarih/saatini ayarlama" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "adding time offset to %d images" msgstr "%d görüntüye zaman farkı ekleme" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "setting date/time of %d images" msgstr "%d görüntünün tarih/saatini ayarlama" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "added time offset to %d image" msgstr "%d görüntüsüne zaman farkı eklendi" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "set date/time of %d image" msgstr "%d görüntünün tarihini/saatini ayarla" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "added time offset to %d images" msgstr "%d görüntüye zaman farkı eklendi" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "set date/time of %d images" msgstr "%d görüntünün tarihini/saatini ayarla" -#: ../src/control/jobs/control_jobs.c:2014 +#: ../src/control/jobs/control_jobs.c:2017 msgid "time offset" msgstr "zaman farkı" -#: ../src/control/jobs/control_jobs.c:2042 ../src/libs/copy_history.c:414 +#: ../src/control/jobs/control_jobs.c:2045 ../src/libs/copy_history.c:414 msgid "write sidecar files" msgstr "sepet dosyalarını yaz" -#: ../src/control/jobs/control_jobs.c:2256 ../src/control/jobs/film_jobs.c:297 +#: ../src/control/jobs/control_jobs.c:2259 ../src/control/jobs/film_jobs.c:297 #, c-format msgid "importing %d image" msgid_plural "importing %d images" msgstr[0] "%d görüntüsü içe aktarılıyor" msgstr[1] "%d görüntüleri içe aktarılıyor" -#: ../src/control/jobs/control_jobs.c:2292 +#: ../src/control/jobs/control_jobs.c:2295 #, c-format msgid "importing %d/%d image" msgid_plural "importing %d/%d images" msgstr[0] "içe aktarılan %d/%d görüntü" msgstr[1] "içe aktarılan %d/%d görüntüler" -#: ../src/control/jobs/control_jobs.c:2300 +#: ../src/control/jobs/control_jobs.c:2305 #, c-format msgid "imported %d image" msgid_plural "imported %d images" msgstr[0] "içe aktarılan %d görüntü" msgstr[1] "içe aktarılan %d görüntüler" -#: ../src/control/jobs/control_jobs.c:2347 ../src/gui/preferences.c:530 -#: ../src/libs/import.c:172 -msgid "import" -msgstr "içe aktar" - #: ../src/control/jobs/film_jobs.c:73 ../src/control/jobs/film_jobs.c:109 msgid "import images" msgstr "görüntüleri içe aktar" @@ -7656,11 +7988,11 @@ msgid "import image" msgstr "görüntüyü içe aktar" -#: ../src/develop/blend.c:322 +#: ../src/develop/blend.c:315 msgid "detail mask blending error" msgstr "detay maskesi karıştırma hatası" -#: ../src/develop/blend.c:864 +#: ../src/develop/blend.c:904 msgid "detail mask CL blending problem" msgstr "detay maskesi CL karıştırma sorunu" @@ -7861,8 +8193,7 @@ msgid "reverse" msgstr "ters" -#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:413 -#: ../src/libs/metadata.c:631 ../src/libs/metadata_view.c:1193 +#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:442 msgid "default" msgstr "öntanımlı" @@ -7870,35 +8201,35 @@ msgid "RAW" msgstr "RAW" -#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2014 +#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2030 msgid "RGB (display)" msgstr "RGB (ekran)" -#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2027 +#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2043 msgid "RGB (scene)" msgstr "RGB (sahne)" #. DEVELOP_MASK_ENABLED -#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3419 +#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3438 msgid "uniformly" msgstr "tekdüze" -#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:3429 ../src/develop/imageop.c:2660 +#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:3448 ../src/develop/imageop.c:2669 msgid "drawn mask" msgstr "çizilmiş maske" -#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2512 -#: ../src/develop/blend_gui.c:3440 ../src/develop/imageop.c:2662 +#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2528 +#: ../src/develop/blend_gui.c:3459 ../src/develop/imageop.c:2671 msgid "parametric mask" msgstr "parametrik maske" -#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2951 -#: ../src/develop/blend_gui.c:3467 ../src/develop/imageop.c:2664 +#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2966 +#: ../src/develop/blend_gui.c:3486 ../src/develop/imageop.c:2673 msgid "raster mask" msgstr "raster maskesi" -#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3454 +#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3473 msgid "drawn & parametric mask" msgstr "çizim & parametrik maske" @@ -7934,177 +8265,177 @@ msgid "input after blur" msgstr "bulanıklıktan sonra girdi" -#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:129 -#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/libs/live_view.c:362 +#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:157 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/libs/live_view.c:362 msgid "on" msgstr "açık" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "input" msgstr "girdi" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "output" msgstr "çıktı" -#: ../src/develop/blend_gui.c:995 +#: ../src/develop/blend_gui.c:998 msgid " (zoom)" msgstr " (yaklaştır)" -#: ../src/develop/blend_gui.c:1003 +#: ../src/develop/blend_gui.c:1006 msgid " (log)" msgstr " (kayıt)" -#: ../src/develop/blend_gui.c:1988 +#: ../src/develop/blend_gui.c:2004 msgid "reset to default blend colorspace" msgstr "varsayılan karışım renk alanına sıfırla" -#: ../src/develop/blend_gui.c:2044 +#: ../src/develop/blend_gui.c:2060 msgid "reset and hide output channels" msgstr "çıkış kanallarını sıfırla ve gizle" -#: ../src/develop/blend_gui.c:2051 +#: ../src/develop/blend_gui.c:2067 msgid "show output channels" msgstr "çıkış kanallarını göster" -#: ../src/develop/blend_gui.c:2290 ../src/develop/blend_gui.c:2357 -#: ../src/iop/tonecurve.c:1134 +#: ../src/develop/blend_gui.c:2306 ../src/develop/blend_gui.c:2373 +#: ../src/iop/tonecurve.c:1156 msgid "L" msgstr "L" -#: ../src/develop/blend_gui.c:2290 +#: ../src/develop/blend_gui.c:2306 msgid "sliders for L channel" msgstr "L kanalı için kaydırıcılar" -#: ../src/develop/blend_gui.c:2295 ../src/iop/tonecurve.c:1135 +#: ../src/develop/blend_gui.c:2311 ../src/iop/tonecurve.c:1157 msgid "a" msgstr "a" -#: ../src/develop/blend_gui.c:2295 +#: ../src/develop/blend_gui.c:2311 msgid "sliders for a channel" msgstr "kanal kaydırıcıları" -#: ../src/develop/blend_gui.c:2299 +#: ../src/develop/blend_gui.c:2315 msgid "green/red" msgstr "yeşil/kırmızı" -#: ../src/develop/blend_gui.c:2300 ../src/iop/tonecurve.c:1136 +#: ../src/develop/blend_gui.c:2316 ../src/iop/tonecurve.c:1158 msgid "b" msgstr "b" -#: ../src/develop/blend_gui.c:2300 +#: ../src/develop/blend_gui.c:2316 msgid "sliders for b channel" msgstr "b kanalı için kaydırıcılar" -#: ../src/develop/blend_gui.c:2304 +#: ../src/develop/blend_gui.c:2320 msgid "blue/yellow" msgstr "mavi/sarı" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "C" msgstr "C" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "sliders for chroma channel (of LCh)" msgstr "renklendirici kanalı için kaydırıcılar (LCh den)" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "h" msgstr "h" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "sliders for hue channel (of LCh)" msgstr "ton kanalı için kaydırıcılar (LCh den)" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "g" msgstr "g" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "sliders for gray value" msgstr "gri değer için kaydırıcılar" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/denoiseprofile.c:3710 -#: ../src/iop/rawdenoise.c:894 ../src/iop/rgbcurve.c:1358 -#: ../src/iop/rgblevels.c:1003 ../src/libs/filters/colors.c:137 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/denoiseprofile.c:3714 +#: ../src/iop/rawdenoise.c:910 ../src/iop/rgbcurve.c:1358 +#: ../src/iop/rgblevels.c:1043 ../src/libs/filters/colors.c:137 msgid "R" msgstr "R" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 msgid "sliders for red channel" msgstr "kırmızı kanal için kaydırıcılar" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/denoiseprofile.c:3711 -#: ../src/iop/rawdenoise.c:895 ../src/iop/rgbcurve.c:1359 -#: ../src/iop/rgblevels.c:1004 ../src/libs/filters/colors.c:143 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/denoiseprofile.c:3715 +#: ../src/iop/rawdenoise.c:911 ../src/iop/rgbcurve.c:1359 +#: ../src/iop/rgblevels.c:1044 ../src/libs/filters/colors.c:143 msgid "G" msgstr "G" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 msgid "sliders for green channel" msgstr "yeşil kanal için kaydırıcılar" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/denoiseprofile.c:3712 -#: ../src/iop/rawdenoise.c:896 ../src/iop/rgbcurve.c:1360 -#: ../src/iop/rgblevels.c:1005 ../src/libs/filters/colors.c:146 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/denoiseprofile.c:3716 +#: ../src/iop/rawdenoise.c:912 ../src/iop/rgbcurve.c:1360 +#: ../src/iop/rgblevels.c:1045 ../src/libs/filters/colors.c:146 msgid "B" msgstr "B" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 msgid "sliders for blue channel" msgstr "mavi kanal için kaydırıcılar" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "H" msgstr "H" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "sliders for hue channel (of HSL)" msgstr "ton kanalı için kaydırıcılar (HSL den)" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "S" msgstr "S" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "sliders for chroma channel (of HSL)" msgstr "renklendirici kanalı için kaydırıcılar (HSL den)" -#: ../src/develop/blend_gui.c:2357 +#: ../src/develop/blend_gui.c:2373 msgid "sliders for value channel (of HSL)" msgstr "değer kanalı için kaydırıcılar (HSL'nin)" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "Jz" msgstr "Jz" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "sliders for value channel (of JzCzhz)" msgstr "değer kanalı için kaydırıcılar (JzCzhz'nin)" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "Cz" msgstr "Cz" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "sliders for chroma channel (of JzCzhz)" msgstr "renklendirici kanalı için kaydırıcılar (JzCzhz'nin)" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "hz" msgstr "hz" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "sliders for hue channel (of JzCzhz)" msgstr "renk tonu kanalı için kaydırıcılar (JzCzhz'nin)" -#: ../src/develop/blend_gui.c:2415 +#: ../src/develop/blend_gui.c:2431 msgid "" "adjustment based on input received by this module:\n" "* range defined by upper markers: blend fully\n" @@ -8116,7 +8447,7 @@ "* alt belirteçler tarafından tanımlanan aralık: hiç karıştırmayın\n" "* bitişik üst/alt işaretler arasındaki aralık: kademeli olarak karıştırın" -#: ../src/develop/blend_gui.c:2419 +#: ../src/develop/blend_gui.c:2435 msgid "" "adjustment based on unblended output of this module:\n" "* range defined by upper markers: blend fully\n" @@ -8128,19 +8459,19 @@ "* alt belirteçler tarafından tanımlanan aralık: hiç karıştırmayın\n" "* bitişik üst/alt işaretler arasındaki aralık: kademeli olarak karıştırın" -#: ../src/develop/blend_gui.c:2516 +#: ../src/develop/blend_gui.c:2532 msgid "reset blend mask settings" msgstr "karışım maskesi ayarlarını sıfırla" -#: ../src/develop/blend_gui.c:2527 ../src/iop/atrous.c:1665 -#: ../src/iop/colorzones.c:2399 ../src/iop/denoiseprofile.c:3707 -#: ../src/iop/rawdenoise.c:891 ../src/iop/rgbcurve.c:1357 -#: ../src/iop/rgblevels.c:1002 ../src/iop/tonecurve.c:1133 +#: ../src/develop/blend_gui.c:2543 ../src/iop/atrous.c:1797 +#: ../src/iop/colorzones.c:2641 ../src/iop/denoiseprofile.c:3711 +#: ../src/iop/rawdenoise.c:907 ../src/iop/rgbcurve.c:1357 +#: ../src/iop/rgblevels.c:1041 ../src/iop/tonecurve.c:1155 msgid "channel" msgstr "kanal" -#: ../src/develop/blend_gui.c:2542 ../src/iop/colorzones.c:2413 -#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1142 +#: ../src/develop/blend_gui.c:2558 ../src/iop/colorzones.c:2660 +#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1164 msgid "" "pick GUI color from image\n" "ctrl+click or right-click to select an area" @@ -8148,12 +8479,12 @@ "görüntüden Arayüz rengini seç\n" "bir alan seçmek için ctrl+tıklayın veya sağ tıklayın" -#: ../src/develop/blend_gui.c:2545 ../src/iop/colorzones.c:2415 +#: ../src/develop/blend_gui.c:2561 ../src/iop/colorzones.c:2662 #: ../src/iop/rgbcurve.c:1369 msgid "show color" msgstr "renk göster" -#: ../src/develop/blend_gui.c:2554 +#: ../src/develop/blend_gui.c:2570 msgid "" "set the range based on an area from the image\n" "drag to use the input image\n" @@ -8163,21 +8494,21 @@ "giriş görüntüsünü kullanmak için sürükleyin\n" "çıktı görüntüsünü kullanmak için ctrl+sürükle" -#: ../src/develop/blend_gui.c:2557 +#: ../src/develop/blend_gui.c:2573 msgid "set range" msgstr "aralığı ayarla" -#: ../src/develop/blend_gui.c:2560 +#: ../src/develop/blend_gui.c:2576 msgid "invert all channel's polarities" msgstr "tüm kanalın kutuplarını ters çevir" -#: ../src/develop/blend_gui.c:2584 +#: ../src/develop/blend_gui.c:2600 msgid "toggle polarity. best seen by enabling 'display mask'" msgstr "" "geçiş polaritesi. en iyi 'ekran görüntüleme maskesini' etkinleştirerek " "görülür" -#: ../src/develop/blend_gui.c:2613 +#: ../src/develop/blend_gui.c:2629 msgid "" "double-click to reset.\n" "press 'a' to toggle available slider modes.\n" @@ -8189,170 +8520,205 @@ "kanal verilerinin görünümünü değiştirmek için 'c'ye basın.\n" "maske görünümünü değiştirmek için 'm' tuşuna basın." -#: ../src/develop/blend_gui.c:2640 ../src/develop/blend_gui.c:3531 -#: ../src/iop/basicadj.c:600 ../src/iop/colorbalancergb.c:2090 -#: ../src/iop/exposure.c:1120 ../src/iop/exposure.c:1135 -#: ../src/iop/filmic.c:1503 ../src/iop/filmic.c:1516 ../src/iop/filmic.c:1558 -#: ../src/iop/filmicrgb.c:4440 ../src/iop/filmicrgb.c:4451 -#: ../src/iop/filmicrgb.c:4485 ../src/iop/filmicrgb.c:4495 -#: ../src/iop/graduatednd.c:1113 ../src/iop/negadoctor.c:1011 -#: ../src/iop/profile_gamma.c:643 ../src/iop/profile_gamma.c:649 -#: ../src/iop/relight.c:262 ../src/iop/soften.c:378 ../src/iop/toneequal.c:3326 -#: ../src/iop/toneequal.c:3329 ../src/iop/toneequal.c:3332 -#: ../src/iop/toneequal.c:3335 ../src/iop/toneequal.c:3338 -#: ../src/iop/toneequal.c:3341 ../src/iop/toneequal.c:3344 -#: ../src/iop/toneequal.c:3347 ../src/iop/toneequal.c:3350 -#: ../src/iop/toneequal.c:3472 ../src/iop/toneequal.c:3481 -#: ../src/iop/toneequal.c:3494 ../src/views/darkroom.c:2453 +#: ../src/develop/blend_gui.c:2656 ../src/develop/blend_gui.c:3577 +#: ../src/iop/basicadj.c:630 ../src/iop/colorbalancergb.c:2161 +#: ../src/iop/exposure.c:1138 ../src/iop/exposure.c:1153 +#: ../src/iop/filmic.c:1528 ../src/iop/filmic.c:1541 ../src/iop/filmic.c:1583 +#: ../src/iop/filmicrgb.c:4504 ../src/iop/filmicrgb.c:4515 +#: ../src/iop/filmicrgb.c:4549 ../src/iop/filmicrgb.c:4559 +#: ../src/iop/graduatednd.c:1082 ../src/iop/negadoctor.c:1030 +#: ../src/iop/profile_gamma.c:657 ../src/iop/profile_gamma.c:663 +#: ../src/iop/relight.c:258 ../src/iop/soften.c:373 ../src/iop/toneequal.c:3379 +#: ../src/iop/toneequal.c:3382 ../src/iop/toneequal.c:3385 +#: ../src/iop/toneequal.c:3388 ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3394 ../src/iop/toneequal.c:3397 +#: ../src/iop/toneequal.c:3400 ../src/iop/toneequal.c:3403 +#: ../src/iop/toneequal.c:3525 ../src/iop/toneequal.c:3534 +#: ../src/iop/toneequal.c:3547 ../src/views/darkroom.c:2292 msgid " EV" msgstr " EV" -#: ../src/develop/blend_gui.c:2642 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:2951 ../src/develop/blend_gui.c:3014 -#: ../src/develop/blend_gui.c:3499 ../src/develop/blend_gui.c:3529 -#: ../src/develop/blend_gui.c:3542 ../src/develop/blend_gui.c:3559 -#: ../src/develop/blend_gui.c:3583 ../src/develop/blend_gui.c:3593 -#: ../src/develop/blend_gui.c:3602 ../src/develop/blend_gui.c:3613 +#: ../src/develop/blend_gui.c:2658 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:2966 ../src/develop/blend_gui.c:3029 +#: ../src/develop/blend_gui.c:3545 ../src/develop/blend_gui.c:3575 +#: ../src/develop/blend_gui.c:3588 ../src/develop/blend_gui.c:3605 +#: ../src/develop/blend_gui.c:3629 ../src/develop/blend_gui.c:3641 +#: ../src/develop/blend_gui.c:3652 ../src/develop/blend_gui.c:3663 msgid "blend" msgstr "karışım" -#: ../src/develop/blend_gui.c:2642 +#: ../src/develop/blend_gui.c:2658 msgid "boost factor" msgstr "artırma etkeni" -#: ../src/develop/blend_gui.c:2645 +#: ../src/develop/blend_gui.c:2661 msgid "adjust the boost factor of the channel mask" msgstr "kanal maskesinin artırma etkenini ayarlayın" -#: ../src/develop/blend_gui.c:2682 +#: ../src/develop/blend_gui.c:2698 #, c-format msgid "%d shape used" msgid_plural "%d shapes used" msgstr[0] "%d kullanılan şekil" msgstr[1] "%d kullanılan şekiller" -#: ../src/develop/blend_gui.c:2687 ../src/develop/blend_gui.c:2743 -#: ../src/develop/blend_gui.c:2831 ../src/develop/blend_gui.c:2952 +#: ../src/develop/blend_gui.c:2703 ../src/develop/blend_gui.c:2759 +#: ../src/develop/blend_gui.c:2847 ../src/develop/blend_gui.c:2967 msgid "no mask used" msgstr "maske kullanılmış" -#: ../src/develop/blend_gui.c:2751 +#: ../src/develop/blend_gui.c:2767 msgid "toggle polarity of drawn mask" msgstr "çizilmiş maskenin polaritesini değiştir" -#: ../src/develop/blend_gui.c:2760 +#: ../src/develop/blend_gui.c:2776 msgid "show and edit mask elements" msgstr "maske öğelerini göster ve düzenle" -#: ../src/develop/blend_gui.c:2761 +#: ../src/develop/blend_gui.c:2777 msgid "show and edit in restricted mode" msgstr "kısıtlı modda göster ve düzenle" -#: ../src/develop/blend_gui.c:2768 ../src/libs/masks.c:998 -#: ../src/libs/masks.c:1816 ../src/libs/masks.c:1820 +#: ../src/develop/blend_gui.c:2784 ../src/libs/masks.c:1014 +#: ../src/libs/masks.c:1812 ../src/libs/masks.c:1816 msgid "add gradient" msgstr "eyim ekle" -#: ../src/develop/blend_gui.c:2769 +#: ../src/develop/blend_gui.c:2785 msgid "add multiple gradients" msgstr "birden çok eyim ekle" -#: ../src/develop/blend_gui.c:2776 ../src/iop/retouch.c:2238 -#: ../src/libs/masks.c:978 ../src/libs/masks.c:1852 ../src/libs/masks.c:1856 +#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2466 +#: ../src/libs/masks.c:994 ../src/libs/masks.c:1848 ../src/libs/masks.c:1852 msgid "add brush" msgstr "fırça ekle" -#: ../src/develop/blend_gui.c:2777 ../src/iop/retouch.c:2238 +#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2466 msgid "add multiple brush strokes" msgstr "birden fazla fırça darbesi ekle" -#: ../src/develop/blend_gui.c:2784 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 ../src/libs/masks.c:993 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1829 +#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 ../src/libs/masks.c:1009 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1825 msgid "add path" msgstr "yol ekle" -#: ../src/develop/blend_gui.c:2785 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 +#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 msgid "add multiple paths" msgstr "birden çok yol ekle" -#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 ../src/libs/masks.c:988 ../src/libs/masks.c:1834 -#: ../src/libs/masks.c:1838 +#: ../src/develop/blend_gui.c:2808 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 ../src/libs/masks.c:1004 ../src/libs/masks.c:1830 +#: ../src/libs/masks.c:1834 msgid "add ellipse" msgstr "elips ekle" -#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 +#: ../src/develop/blend_gui.c:2809 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 msgid "add multiple ellipses" msgstr "birden çok elips ekle" -#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 ../src/libs/masks.c:983 ../src/libs/masks.c:1843 -#: ../src/libs/masks.c:1847 +#: ../src/develop/blend_gui.c:2816 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 ../src/libs/masks.c:999 ../src/libs/masks.c:1839 +#: ../src/libs/masks.c:1843 msgid "add circle" msgstr "çember ekle" -#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 +#: ../src/develop/blend_gui.c:2817 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 msgid "add multiple circles" msgstr "birden çok daire ekle" -#: ../src/develop/blend_gui.c:2961 +#: ../src/develop/blend_gui.c:2976 msgid "toggle polarity of raster mask" msgstr "raster maskesinin polaritesini değiştir" -#: ../src/develop/blend_gui.c:3101 +#: ../src/develop/blend_gui.c:3119 msgid "normal & difference" msgstr "normal & farklı" -#: ../src/develop/blend_gui.c:3106 +#: ../src/develop/blend_gui.c:3124 msgid "lighten" msgstr "aydınlat" -#: ../src/develop/blend_gui.c:3113 +#: ../src/develop/blend_gui.c:3131 msgid "darken" msgstr "karart" -#: ../src/develop/blend_gui.c:3120 +#: ../src/develop/blend_gui.c:3138 msgid "contrast enhancing" msgstr "kontrast arttırıcı" -#: ../src/develop/blend_gui.c:3127 ../src/develop/blend_gui.c:3150 +#: ../src/develop/blend_gui.c:3145 ../src/develop/blend_gui.c:3168 msgid "color channel" msgstr "renk kanalı" -#: ../src/develop/blend_gui.c:3138 ../src/develop/blend_gui.c:3153 +#: ../src/develop/blend_gui.c:3156 ../src/develop/blend_gui.c:3171 msgid "chromaticity & lightness" msgstr "renklendirme & parlaklık" -#: ../src/develop/blend_gui.c:3145 +#: ../src/develop/blend_gui.c:3163 msgid "normal & arithmetic" msgstr "normal & aritmetik" #. add deprecated blend mode -#: ../src/develop/blend_gui.c:3166 +#: ../src/develop/blend_gui.c:3184 msgid "deprecated" msgstr "kullanımdan kaldırıldı" -#: ../src/develop/blend_gui.c:3478 +#. should never happen: unknown blend mode +#: ../src/develop/blend_gui.c:3188 +#, c-format +msgid "unknown blend mode '%d' in module '%s'" +msgstr "bilinmeyen karışım modu '%d' modülde '%s'" + +#: ../src/develop/blend_gui.c:3497 msgid "blending options" msgstr "karıştırma seçenekleri" -#: ../src/develop/blend_gui.c:3500 ../src/libs/history.c:949 -msgid "blend mode" -msgstr "karıştırma modu" +#: ../src/develop/blend_gui.c:3516 +msgid "blend mask" +msgstr "karışım maskesi" + +#: ../src/develop/blend_gui.c:3520 +msgid "display mask and/or color channel" +msgstr "ekran maskesi ve/veya renk kanalı" + +#: ../src/develop/blend_gui.c:3525 +msgid "" +"display mask and/or color channel.\n" +"ctrl+click to display mask,\n" +"shift+click to display channel.\n" +"hover over parametric mask slider to select channel for display" +msgstr "" +"ekran maskesi ve/veya renk kanalı.\n" +"maskeyi görüntülemek için ctrl+tıklayın,\n" +"kanalı görüntülemek için shift+tıklayın.\n" +"görüntülenecek kanalı seçmek için parametrik maske kaydırıcısının üzerine " +"gelin" + +#: ../src/develop/blend_gui.c:3532 +msgid "temporarily switch off blend mask" +msgstr "karışım maskesini geçici olarak kapat" + +#: ../src/develop/blend_gui.c:3537 +msgid "" +"temporarily switch off blend mask.\n" +"only for module in focus" +msgstr "" +"karışım maskesini geçici olarak kapatın.\n" +"sadece odaktaki modül için" -#: ../src/develop/blend_gui.c:3503 +#: ../src/develop/blend_gui.c:3549 msgid "choose blending mode" msgstr "karıştırma modunu seçin" -#: ../src/develop/blend_gui.c:3513 +#: ../src/develop/blend_gui.c:3559 msgid "toggle blend order" msgstr "karışım sırasını değiştir" -#: ../src/develop/blend_gui.c:3519 +#: ../src/develop/blend_gui.c:3565 msgid "" "toggle the blending order between the input and the output of the module,\n" "by default the output will be blended on top of the input,\n" @@ -8362,30 +8728,30 @@ "varsayılan olarak çıktı, girdinin üzerine karıştırılacaktır,\n" "simgeye tıklanarak sıralama tersine çevrilebilir (girdi çıktının üstünde)" -#: ../src/develop/blend_gui.c:3530 ../src/libs/history.c:953 -msgid "blend fulcrum" -msgstr "dayanak noktası harmanlamak" +#: ../src/develop/blend_gui.c:3576 +msgid "fulcrum" +msgstr "dayanak noktası" -#: ../src/develop/blend_gui.c:3534 +#: ../src/develop/blend_gui.c:3580 msgid "adjust the fulcrum used by some blending operations" msgstr "" "bazı karıştırma işlemleri tarafından kullanılan dayanak noktasını ayarlayın" #. Add opacity/scale sliders to table -#: ../src/develop/blend_gui.c:3542 ../src/iop/watermark.c:1314 -#: ../src/libs/masks.c:104 +#: ../src/develop/blend_gui.c:3588 ../src/iop/watermark.c:1362 +#: ../src/libs/masks.c:105 msgid "opacity" msgstr "opaklık" -#: ../src/develop/blend_gui.c:3546 +#: ../src/develop/blend_gui.c:3591 msgid "set the opacity of the blending" msgstr "karıştırmanın opaklığını ayarlayın" -#: ../src/develop/blend_gui.c:3550 ../src/libs/history.c:956 +#: ../src/develop/blend_gui.c:3596 ../src/libs/history.c:956 msgid "combine masks" msgstr "maskeleri birleştir" -#: ../src/develop/blend_gui.c:3552 +#: ../src/develop/blend_gui.c:3598 msgid "" "how to combine individual drawn mask and different channels of parametric " "mask" @@ -8393,11 +8759,11 @@ "bireysel çizilmiş maske ve farklı parametrik maske kanalları nasıl " "birleştirilir" -#: ../src/develop/blend_gui.c:3559 +#: ../src/develop/blend_gui.c:3605 msgid "details threshold" msgstr "ayrıntılar eşiği" -#: ../src/develop/blend_gui.c:3563 +#: ../src/develop/blend_gui.c:3609 msgid "" "adjust the threshold for the details mask (using raw data),\n" "positive values select areas with strong details,\n" @@ -8407,11 +8773,11 @@ "pozitif değerler güçlü ayrıntılara sahip alanları seçer,\n" "negatif değerler düz alanları seçer" -#: ../src/develop/blend_gui.c:3571 ../src/libs/history.c:959 +#: ../src/develop/blend_gui.c:3617 ../src/libs/history.c:959 msgid "feathering guide" msgstr "geçiş yumuşatma kılavuzu" -#: ../src/develop/blend_gui.c:3574 +#: ../src/develop/blend_gui.c:3620 msgid "" "choose to guide mask by input or output image and\n" "choose to apply feathering before or after mask blur" @@ -8419,28 +8785,28 @@ "maskeyi giriş veya çıkış görüntüsüne göre yönlendirmeyi seçin ve\n" "maske bulanıklığından önce veya sonra geçiş yumuşatma uygulamayı seçin" -#: ../src/develop/blend_gui.c:3583 ../src/libs/history.c:958 +#: ../src/develop/blend_gui.c:3629 ../src/libs/history.c:958 msgid "feathering radius" msgstr "geçiş yumuşatma yarıçapı" -#: ../src/develop/blend_gui.c:3586 +#: ../src/develop/blend_gui.c:3632 msgid "spatial radius of feathering" msgstr "geçiş yumuşatma uzaysal yarıçapı" -#: ../src/develop/blend_gui.c:3593 +#: ../src/develop/blend_gui.c:3641 msgid "blurring radius" msgstr "bulanıklık yarıçapı" -#: ../src/develop/blend_gui.c:3596 +#: ../src/develop/blend_gui.c:3644 msgid "radius for gaussian blur of blend mask" msgstr "karışım maskesinin gauss bulanıklığı yarıçapı" -#: ../src/develop/blend_gui.c:3602 ../src/iop/retouch.c:2453 +#: ../src/develop/blend_gui.c:3652 ../src/iop/retouch.c:2738 #: ../src/libs/history.c:954 msgid "mask opacity" msgstr "maske opaklığı" -#: ../src/develop/blend_gui.c:3606 +#: ../src/develop/blend_gui.c:3656 msgid "" "shifts and tilts the tone curve of the blend mask to adjust its brightness\n" "without affecting fully transparent/fully opaque regions" @@ -8449,58 +8815,39 @@ "eğer\n" "tamamen şeffaf/tamamen opak bölgeleri etkilemeden" -#: ../src/develop/blend_gui.c:3613 ../src/libs/history.c:962 +#: ../src/develop/blend_gui.c:3663 ../src/libs/history.c:962 msgid "mask contrast" msgstr "maske kontrastı" -#: ../src/develop/blend_gui.c:3617 +#: ../src/develop/blend_gui.c:3667 msgid "" "gives the tone curve of the blend mask an s-like shape to adjust its contrast" msgstr "" "kontrastını ayarlamak için karışım maskesinin ton eğrisine s benzeri bir " "şekil verir" -#: ../src/develop/blend_gui.c:3621 +#: ../src/develop/blend_gui.c:3671 msgid "mask refinement" msgstr "maske iyileştirme" -#: ../src/develop/blend_gui.c:3625 -msgid "display mask and/or color channel" -msgstr "ekran maskesi ve/veya renk kanalı" - -#: ../src/develop/blend_gui.c:3630 -msgid "" -"display mask and/or color channel.\n" -"ctrl+click to display mask,\n" -"shift+click to display channel.\n" -"hover over parametric mask slider to select channel for display" -msgstr "" -"ekran maskesi ve/veya renk kanalı.\n" -"maskeyi görüntülemek için ctrl+tıklayın,\n" -"kanalı görüntülemek için shift+tıklayın.\n" -"görüntülenecek kanalı seçmek için parametrik maske kaydırıcısının üzerine " -"gelin" - -#: ../src/develop/blend_gui.c:3637 -msgid "temporarily switch off blend mask" -msgstr "karışım maskesini geçici olarak kapat" - -#: ../src/develop/blend_gui.c:3642 +#: ../src/develop/develop.c:732 msgid "" -"temporarily switch off blend mask.\n" -"only for module in focus" +"autosaving history has been disabled for this session because of a slow " +"drive used" msgstr "" -"karışım maskesini geçici olarak kapatın.\n" -"sadece odaktaki modül için" +"kullanılan yavaş sürücü nedeniyle bu oturum için otomatik kaydetme geçmişi " +"devre dışı bırakıldı" -#: ../src/develop/develop.c:2303 +#: ../src/develop/develop.c:2202 #, c-format msgid "%s: module `%s' version mismatch: %d != %d" msgstr "%s: modül `%s' sürüm uyuşmazlığı: %d != %d" -#: ../src/develop/develop.c:2834 -msgid "module duplicate, can't move new instance after the base one\n" -msgstr "modül yineleniyor, temel örnekten sonra yeni örnek taşınamıyor\n" +#: ../src/develop/develop.c:3016 +msgid "duplicate module, can't move new instance after the base one\n" +msgstr "" +"yinelenen modül, temel örnekten sonra yeni örnek taşınamıyor\n" +"\n" #: ../src/develop/imageop.c:1031 msgid "new instance" @@ -8510,70 +8857,69 @@ msgid "duplicate instance" msgstr "oluşumu çoğalt" -#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3739 -#: ../src/libs/masks.c:1152 +#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3755 +#: ../src/libs/masks.c:1146 msgid "move up" msgstr "yukarı taşı" -#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3740 -#: ../src/libs/masks.c:1157 +#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3756 +#: ../src/libs/masks.c:1151 msgid "move down" msgstr "aşağı taşı" #. delete button label and tooltip will be updated based on trash pref -#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3742 -#: ../src/gui/accelerators.c:155 ../src/gui/presets.c:562 -#: ../src/libs/image.c:285 ../src/libs/image.c:480 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 +#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3758 +#: ../src/gui/accelerators.c:173 ../src/libs/image.c:303 +#: ../src/libs/image.c:513 msgid "delete" msgstr "sil" -#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3743 -#: ../src/libs/modulegroups.c:3464 ../src/libs/modulegroups.c:3815 +#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3759 +#: ../src/libs/modulegroups.c:3817 msgid "rename" msgstr "yeniden adlandır" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched on" msgstr "'%s' açık mı" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched off" msgstr "'%s' kapalı mı" -#: ../src/develop/imageop.c:2654 +#: ../src/develop/imageop.c:2663 msgid "unknown mask" msgstr "bilinmeyen maske" -#: ../src/develop/imageop.c:2658 +#: ../src/develop/imageop.c:2667 msgid "drawn + parametric mask" msgstr "çizilmiş + parametrik maske" -#: ../src/develop/imageop.c:2667 +#: ../src/develop/imageop.c:2676 #, c-format msgid "this module has a `%s'" msgstr "bu modülde bir `%s' var" -#: ../src/develop/imageop.c:2672 +#: ../src/develop/imageop.c:2681 #, c-format msgid "taken from module %s" msgstr "%s modülünden alındı" -#: ../src/develop/imageop.c:2677 +#: ../src/develop/imageop.c:2686 msgid "click to display (module must be activated first)" msgstr "görüntülemek için tıklayın (önce modül etkinleştirilmelidir)" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "purpose" msgstr "amaç" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "process" msgstr "süreç" -#: ../src/develop/imageop.c:2906 +#: ../src/develop/imageop.c:2917 msgid "" "multiple instance actions\n" "right-click creates new instance" @@ -8581,7 +8927,7 @@ "çoklu örnek eylemleri\n" "sağ tıklama yeni örnek oluşturur" -#: ../src/develop/imageop.c:2921 +#: ../src/develop/imageop.c:2932 msgid "" "reset parameters\n" "ctrl+click to reapply any automatic presets" @@ -8589,7 +8935,7 @@ "parametreleri sıfırla\n" "herhangi bir otomatik ön ayarı yeniden uygulamak için ctrl+tıklayın" -#: ../src/develop/imageop.c:2933 +#: ../src/develop/imageop.c:2944 msgid "" "presets\n" "right-click to apply on new instance" @@ -8597,15 +8943,15 @@ "ön ayarlar\n" "yeni örneğe uygulamak için sağ tıklayın" -#: ../src/develop/imageop.c:3183 ../src/develop/imageop.c:3205 +#: ../src/develop/imageop.c:3194 ../src/develop/imageop.c:3216 msgid "ERROR" msgstr "HATA" -#: ../src/develop/imageop.c:3620 +#: ../src/develop/imageop.c:3622 msgid "unsupported input" msgstr "desteklenmeyen girdi" -#: ../src/develop/imageop.c:3621 +#: ../src/develop/imageop.c:3623 msgid "" "you have placed this module at\n" "a position in the pipeline where\n" @@ -8617,49 +8963,49 @@ "veri formatı eşleşmiyor\n" "gereksinimler." -#: ../src/develop/imageop.c:3738 ../src/develop/imageop.c:3748 -#: ../src/gui/accelerators.c:151 ../src/libs/lib.c:1414 +#: ../src/develop/imageop.c:3754 ../src/develop/imageop.c:3764 +#: ../src/gui/accelerators.c:169 ../src/libs/lib.c:1415 msgid "show" msgstr "göster" -#: ../src/develop/imageop.c:3741 ../src/libs/modulegroups.c:3310 -#: ../src/libs/modulegroups.c:3436 ../src/libs/modulegroups.c:3817 -#: ../src/libs/tagging.c:3248 +#: ../src/develop/imageop.c:3757 ../src/libs/modulegroups.c:3315 +#: ../src/libs/modulegroups.c:3438 ../src/libs/modulegroups.c:3819 +#: ../src/libs/tagging.c:3279 msgid "new" msgstr "yeni" -#: ../src/develop/imageop.c:3744 ../src/libs/duplicate.c:405 -#: ../src/libs/image.c:495 ../src/libs/modulegroups.c:3813 +#: ../src/develop/imageop.c:3760 ../src/libs/duplicate.c:411 +#: ../src/libs/image.c:534 ../src/libs/modulegroups.c:3815 msgid "duplicate" msgstr "çoğalt" -#: ../src/develop/imageop.c:3749 +#: ../src/develop/imageop.c:3765 msgid "enable" msgstr "etkin" -#: ../src/develop/imageop.c:3750 ../src/gui/accelerators.c:167 +#: ../src/develop/imageop.c:3766 ../src/gui/accelerators.c:185 msgid "focus" msgstr "odak" -#: ../src/develop/imageop.c:3751 ../src/gui/accelerators.c:2617 +#: ../src/develop/imageop.c:3767 ../src/gui/accelerators.c:2874 msgid "instance" msgstr "misal" -#: ../src/develop/imageop.c:3752 ../src/gui/accelerators.c:112 -#: ../src/gui/accelerators.c:122 ../src/gui/gtk.c:3009 ../src/gui/gtk.c:3056 -#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:603 -#: ../src/gui/styles_dialog.c:625 ../src/iop/atrous.c:1512 -#: ../src/libs/lib.c:1415 ../src/libs/modulegroups.c:3882 +#: ../src/develop/imageop.c:3768 ../src/gui/accelerators.c:130 +#: ../src/gui/accelerators.c:140 ../src/gui/gtk.c:3055 ../src/gui/gtk.c:3102 +#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:615 +#: ../src/gui/styles_dialog.c:637 ../src/iop/atrous.c:1626 +#: ../src/libs/lib.c:1416 ../src/libs/modulegroups.c:3884 msgid "reset" msgstr "sıfırla" #. Adding the outer container -#: ../src/develop/imageop.c:3753 ../src/gui/preferences.c:798 -#: ../src/libs/lib.c:1416 +#: ../src/develop/imageop.c:3769 ../src/gui/preferences.c:796 +#: ../src/libs/lib.c:1417 msgid "presets" msgstr "önayarlar" -#: ../src/develop/imageop.c:3773 +#: ../src/develop/imageop.c:3789 msgid "processing module" msgstr "işleme modülü" @@ -8672,54 +9018,54 @@ "%s\n" "%s için ctrl+tıklayın" -#: ../src/develop/lightroom.c:1083 +#: ../src/develop/lightroom.c:1137 msgid "cannot find Lightroom XMP!" msgstr "Lightroom XMP'yi bulamıyor!" -#: ../src/develop/lightroom.c:1115 ../src/develop/lightroom.c:1137 -#: ../src/develop/lightroom.c:1157 +#: ../src/develop/lightroom.c:1169 ../src/develop/lightroom.c:1191 +#: ../src/develop/lightroom.c:1211 #, c-format msgid "`%s' is not a Lightroom XMP!" msgstr "`%s' bir Işık odası XMP değil!" -#: ../src/develop/lightroom.c:1556 +#: ../src/develop/lightroom.c:1613 #, c-format msgid "%s has been imported" msgid_plural "%s have been imported" msgstr[0] "%s içe aktarıldı" msgstr[1] "%s içe aktarıldı" -#: ../src/develop/masks/brush.c:1356 ../src/develop/masks/brush.c:1410 +#: ../src/develop/masks/brush.c:1346 ../src/develop/masks/brush.c:1400 #, c-format msgid "hardness: %3.2f%%" msgstr "sertlik: %3.2f%%" -#: ../src/develop/masks/brush.c:1372 ../src/develop/masks/brush.c:1470 +#: ../src/develop/masks/brush.c:1362 ../src/develop/masks/brush.c:1460 #: ../src/develop/masks/circle.c:148 ../src/develop/masks/circle.c:193 #: ../src/develop/masks/ellipse.c:484 ../src/develop/masks/ellipse.c:546 -#: ../src/develop/masks/path.c:1273 +#: ../src/develop/masks/path.c:1255 #, c-format msgid "size: %3.2f%%" msgstr "boyut: %3.2f%%" -#: ../src/develop/masks/brush.c:3247 +#: ../src/develop/masks/brush.c:3191 msgid "[BRUSH] change size" msgstr "[FIRÇA] boyutu değiştir" -#: ../src/develop/masks/brush.c:3249 +#: ../src/develop/masks/brush.c:3193 msgid "[BRUSH] change hardness" msgstr "[FIRÇA] sertliği değiştir" -#: ../src/develop/masks/brush.c:3251 +#: ../src/develop/masks/brush.c:3195 msgid "[BRUSH] change opacity" msgstr "[FIRÇA] opaklığı değiştir" -#: ../src/develop/masks/brush.c:3263 +#: ../src/develop/masks/brush.c:3207 #, c-format msgid "brush #%d" msgstr "fırça #%d" -#: ../src/develop/masks/brush.c:3276 +#: ../src/develop/masks/brush.c:3220 #, c-format msgid "" "<b>size</b>: scroll, <b>hardness</b>: shift+scroll\n" @@ -8728,35 +9074,35 @@ "<b>boyut</b>: kaydırma, <b>sertlik</b>: kaydırma+kaydırma\n" "<b>opaklık</b>: ctrl+kaydırma (%d%%)" -#: ../src/develop/masks/brush.c:3279 +#: ../src/develop/masks/brush.c:3223 msgid "<b>size</b>: scroll" msgstr "<b>boyut</b>: kaydırma" #: ../src/develop/masks/circle.c:137 ../src/develop/masks/circle.c:181 #: ../src/develop/masks/ellipse.c:470 ../src/develop/masks/ellipse.c:531 -#: ../src/develop/masks/path.c:1205 +#: ../src/develop/masks/path.c:1187 #, c-format msgid "feather size: %3.2f%%" msgstr "tüy boyutu: %3.2f%%" -#: ../src/develop/masks/circle.c:1510 +#: ../src/develop/masks/circle.c:1462 msgid "[CIRCLE] change size" msgstr "[DAİRE] boyutu değiştir" -#: ../src/develop/masks/circle.c:1512 +#: ../src/develop/masks/circle.c:1464 msgid "[CIRCLE] change feather size" msgstr "[DAİRE] geçiş yumuşatma boyutunu değiştir" -#: ../src/develop/masks/circle.c:1514 +#: ../src/develop/masks/circle.c:1466 msgid "[CIRCLE] change opacity" msgstr "[DAİRE] opaklığı değiştir" -#: ../src/develop/masks/circle.c:1527 +#: ../src/develop/masks/circle.c:1479 #, c-format msgid "circle #%d" msgstr "daire #%d" -#: ../src/develop/masks/circle.c:1538 ../src/develop/masks/path.c:3490 +#: ../src/develop/masks/circle.c:1490 ../src/develop/masks/path.c:3406 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8770,32 +9116,32 @@ msgid "rotation: %3.f°" msgstr "döndürme: %3.f°" -#: ../src/develop/masks/ellipse.c:2068 +#: ../src/develop/masks/ellipse.c:2015 msgid "[ELLIPSE] change size" msgstr "[ELİPS] boyutu değiştir" -#: ../src/develop/masks/ellipse.c:2071 +#: ../src/develop/masks/ellipse.c:2018 msgid "[ELLIPSE] change feather size" msgstr "[ELLIPS] geçiş yumuşatma boyutunu değiştir" -#: ../src/develop/masks/ellipse.c:2074 ../src/develop/masks/ellipse.c:2083 +#: ../src/develop/masks/ellipse.c:2021 ../src/develop/masks/ellipse.c:2030 msgid "[ELLIPSE] rotate shape" msgstr "[ELİPS] şekli döndür" -#: ../src/develop/masks/ellipse.c:2077 +#: ../src/develop/masks/ellipse.c:2024 msgid "[ELLIPSE] change opacity" msgstr "[ELİPS] opaklığı değiştir" -#: ../src/develop/masks/ellipse.c:2080 +#: ../src/develop/masks/ellipse.c:2027 msgid "[ELLIPSE] switch feathering mode" msgstr "[ELİPS] geçiş yumuşatma modu" -#: ../src/develop/masks/ellipse.c:2090 +#: ../src/develop/masks/ellipse.c:2037 #, c-format msgid "ellipse #%d" msgstr "elips #%d" -#: ../src/develop/masks/ellipse.c:2128 +#: ../src/develop/masks/ellipse.c:2075 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8804,11 +9150,11 @@ "<b>boyut</b>: kaydırma, <b>tüy boyutu</b>: shift+kaydırma\n" "<b>döndürme</b>: ctrl+shift+kaydırma, <b>opaklık</b>: ctrl+kaydırma (%d%%)" -#: ../src/develop/masks/ellipse.c:2132 +#: ../src/develop/masks/ellipse.c:2079 msgid "<b>rotate</b>: ctrl+drag" msgstr "<b>döndür</b>: ctrl+sürükle" -#: ../src/develop/masks/ellipse.c:2135 +#: ../src/develop/masks/ellipse.c:2082 #, c-format msgid "" "<b>feather mode</b>: shift+click, <b>rotate</b>: ctrl+drag\n" @@ -8829,32 +9175,32 @@ msgid "curvature: %3.2f%%" msgstr "eğrilik: %3.2f%%" -#: ../src/develop/masks/gradient.c:1555 +#: ../src/develop/masks/gradient.c:1514 msgid "[GRADIENT on pivot] rotate shape" msgstr "[EYİM pivot üzerinde] şekli döndür" -#: ../src/develop/masks/gradient.c:1557 +#: ../src/develop/masks/gradient.c:1516 msgid "[GRADIENT creation] set rotation" msgstr "[EYİM oluşturma] dönüşü ayarla" -#: ../src/develop/masks/gradient.c:1559 +#: ../src/develop/masks/gradient.c:1518 msgid "[GRADIENT] change curvature" msgstr "[EYİM] eğriliği değiştir" -#: ../src/develop/masks/gradient.c:1561 +#: ../src/develop/masks/gradient.c:1520 msgid "[GRADIENT] change compression" msgstr "[EYİM] sıkıştırmayı değiştir" -#: ../src/develop/masks/gradient.c:1563 +#: ../src/develop/masks/gradient.c:1522 msgid "[GRADIENT] change opacity" msgstr "[EYİM] opaklığı değiştir" -#: ../src/develop/masks/gradient.c:1576 +#: ../src/develop/masks/gradient.c:1535 #, c-format msgid "gradient #%d" msgstr "eyim #%d" -#: ../src/develop/masks/gradient.c:1587 +#: ../src/develop/masks/gradient.c:1546 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8863,7 +9209,7 @@ "<b>eğrilik</b>: kaydırma, <b>sıkıştırma</b>: shift+kaydırma\n" "<b>döndürme</b>: tıklama+sürükle, <b>opaklık</b>: ctrl+kaydırma (%d%%)" -#: ../src/develop/masks/gradient.c:1592 +#: ../src/develop/masks/gradient.c:1551 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8872,7 +9218,7 @@ "<b>eğrilik</b>: kaydırma, <b>sıkıştırma</b>: shift+kaydırma\n" "<b>opaklık</b>: ctrl+kaydırma (%d%%)" -#: ../src/develop/masks/gradient.c:1595 +#: ../src/develop/masks/gradient.c:1554 msgid "<b>rotate</b>: drag" msgstr "<b>döndür</b>: sürükle" @@ -8880,84 +9226,84 @@ msgid "[SHAPE] remove shape" msgstr "[ŞEKİL] şekli kaldır" -#: ../src/develop/masks/masks.c:306 +#: ../src/develop/masks/masks.c:305 #, c-format msgid "group `%s'" msgstr "grup `%s'" -#: ../src/develop/masks/masks.c:423 +#: ../src/develop/masks/masks.c:422 #, c-format msgid "copy of `%s'" msgstr "`%s' kopyası" -#: ../src/develop/masks/masks.c:984 +#: ../src/develop/masks/masks.c:985 #, c-format msgid "%s: mask version mismatch: %d != %d" msgstr "%s: maske sürümü uyuşmazlığı: %d != %d" -#: ../src/develop/masks/masks.c:1239 ../src/develop/masks/masks.c:1906 +#: ../src/develop/masks/masks.c:1230 ../src/develop/masks/masks.c:1881 #, c-format msgid "opacity: %.0f%%" msgstr "opaklık: %.0f%%" -#: ../src/develop/masks/masks.c:1650 ../src/libs/masks.c:1068 +#: ../src/develop/masks/masks.c:1625 ../src/libs/masks.c:1084 msgid "add existing shape" msgstr "mevcut tonlandırmayı ekle" -#: ../src/develop/masks/masks.c:1677 +#: ../src/develop/masks/masks.c:1652 msgid "use same shapes as" msgstr "ile aynı şekilleri kullan" -#: ../src/develop/masks/masks.c:1990 +#: ../src/develop/masks/masks.c:1965 msgid "masks can not contain themselves" msgstr "maskeler kendilerini içeremezler" -#: ../src/develop/masks/path.c:3433 +#: ../src/develop/masks/path.c:3349 msgid "[PATH creation] add a smooth node" msgstr "[YOL oluşturma] düzgün bir düğüm ekleyin" -#: ../src/develop/masks/path.c:3435 +#: ../src/develop/masks/path.c:3351 msgid "[PATH creation] add a sharp node" msgstr "[YOL oluşturma] keskin bir düğüm ekleyin" -#: ../src/develop/masks/path.c:3437 +#: ../src/develop/masks/path.c:3353 msgid "[PATH creation] terminate path creation" msgstr "[YOL oluşturma] yol oluşturmayı sonlandır" -#: ../src/develop/masks/path.c:3439 +#: ../src/develop/masks/path.c:3355 msgid "[PATH on node] switch between smooth/sharp node" msgstr "[YOL düğümde] pürüzsüz/keskin düğüm arasında geçiş yap" -#: ../src/develop/masks/path.c:3441 +#: ../src/develop/masks/path.c:3357 msgid "[PATH on node] remove the node" msgstr "[YOL düğümde] düğümü kaldır" -#: ../src/develop/masks/path.c:3443 +#: ../src/develop/masks/path.c:3359 msgid "[PATH on feather] reset curvature" msgstr "[YOL yumuşatma] eğriliği sıfırla" -#: ../src/develop/masks/path.c:3445 +#: ../src/develop/masks/path.c:3361 msgid "[PATH on segment] add node" msgstr "[YOL segmentteki] düğüm ekle" -#: ../src/develop/masks/path.c:3447 +#: ../src/develop/masks/path.c:3363 msgid "[PATH] change size" msgstr "[YOL] boyutu değiştir" -#: ../src/develop/masks/path.c:3449 +#: ../src/develop/masks/path.c:3365 msgid "[PATH] change feather size" msgstr "[YOL] geçiş yumuşatma boyutunu değiştir" -#: ../src/develop/masks/path.c:3451 +#: ../src/develop/masks/path.c:3367 msgid "[PATH] change opacity" msgstr "[YOL] opaklığı değiştir" -#: ../src/develop/masks/path.c:3463 +#: ../src/develop/masks/path.c:3379 #, c-format msgid "path #%d" msgstr "yol #%d" -#: ../src/develop/masks/path.c:3473 +#: ../src/develop/masks/path.c:3389 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>cancel</b>: right-click" @@ -8965,7 +9311,7 @@ "<b>düğüm ekle</b>: tıklayın, <b>keskin düğüm ekle</b>: ctrl+tıklayın\n" "<b>iptal</b>: sağ tıklayın" -#: ../src/develop/masks/path.c:3476 +#: ../src/develop/masks/path.c:3392 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>finish path</b>: right-click" @@ -8973,7 +9319,7 @@ "<b>düğüm ekle</b>: tıklayın, <b>keskin düğüm ekle</b>: ctrl+tıklayın\n" "<b>bitiş yolu</b>: sağ tıklayın" -#: ../src/develop/masks/path.c:3479 +#: ../src/develop/masks/path.c:3395 msgid "" "<b>move node</b>: drag, <b>remove node</b>: right-click\n" "<b>switch smooth/sharp mode</b>: ctrl+click" @@ -8981,7 +9327,7 @@ "<b>düğümü taşı</b>: sürükleyin, <b>düğümü kaldırın</b>: sağ tıklayın\n" "<b>pürüzsüz/keskin modu değiştir</b>: ctrl+tıklayın" -#: ../src/develop/masks/path.c:3483 +#: ../src/develop/masks/path.c:3399 msgid "" "<b>node curvature</b>: drag\n" "<b>reset curvature</b>: right-click" @@ -8989,7 +9335,7 @@ "<b>düğüm eğriliği</b>: sürükleyin\n" "<b>eğriliği sıfırla</b>: sağ tıklayın" -#: ../src/develop/masks/path.c:3487 +#: ../src/develop/masks/path.c:3403 msgid "" "<b>move segment</b>: drag\n" "<b>add node</b>: ctrl+click" @@ -8997,11 +9343,11 @@ "<b>segmenti taşı</b>: sürükleyin\n" "<b>düğüm ekle</b>: ctrl+tıklayın" -#: ../src/develop/pixelpipe_hb.c:500 +#: ../src/develop/pixelpipe_hb.c:486 msgid "enabled as required" msgstr "gerektiği gibi etkinleştirildi" -#: ../src/develop/pixelpipe_hb.c:501 +#: ../src/develop/pixelpipe_hb.c:487 msgid "" "history had module disabled but it is required for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -9010,11 +9356,11 @@ "büyük olasılıkla bir ön ayar, tarz veya geçmiş kopyala ve yapıştır " "uygulayarak tanıtıldı" -#: ../src/develop/pixelpipe_hb.c:508 +#: ../src/develop/pixelpipe_hb.c:494 msgid "disabled as not appropriate" msgstr "uygun olmadığı için devre dışı bırakıldı" -#: ../src/develop/pixelpipe_hb.c:509 +#: ../src/develop/pixelpipe_hb.c:495 msgid "" "history had module enabled but it is not allowed for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -9024,15 +9370,28 @@ "büyük olasılıkla bir ön ayar, tarz veya geçmiş kopyala ve yapıştır " "uygulayarak tanıtıldı" -#: ../src/develop/pixelpipe_hb.c:2705 +#: ../src/develop/pixelpipe_hb.c:2697 msgid "" -"darktable discovered problems with your OpenCL setup; disabling OpenCL for " -"this session!" -msgstr "" -"darktable, OpenCL kurulumunuzla ilgili sorunları keşfetti; bu oturum için " -"OpenCL'yi devre dışı bırak!" +"OpenCL errors encountered; disabling OpenCL for this session! some possible " +"causes:\n" +" - OpenCL out of resources due to preference settings. please try with " +"defaults,\n" +" - buggy driver for some device. please run darktable with `-d opencl' to " +"identify,\n" +" - some drivers don't support needed number of events,\n" +" - too small headroom settings while using 'use all device memory'." +msgstr "" +"Karşılaşılan OpenCL hataları; Bu oturum için OpenCL devre dışı bırakılıyor! " +"bazı olası nedenler:\n" +" - Tercih ayarları nedeniyle OpenCL'in kaynakları tükendi. lütfen " +"varsayılanlarla deneyin,\n" +" - bazı cihazlar için hatalı sürücü. Lütfen tanımlamak için darktable'ı `-d " +"opencl' ile çalıştırın,\n" +" - bazı sürücüler gerekli sayıda olayı desteklemiyor,\n" +" - 'tüm cihaz hafızasını kullan' kullanılırken boşluk payı ayarları çok " +"küçük." -#: ../src/develop/pixelpipe_hb.c:2853 +#: ../src/develop/pixelpipe_hb.c:2847 #, c-format msgid "" "module '%s' can't get raster mask from module\n" @@ -9043,28 +9402,32 @@ "'%s', daha sonra piksel kanalında işlendiği şekliyle.\n" "tarama maskesi yoksayılır." -#: ../src/develop/tiling.c:820 ../src/develop/tiling.c:1173 +#: ../src/develop/tiling.c:819 ../src/develop/tiling.c:1172 #, c-format -msgid "tiling failed for module '%s'. output might be garbled." -msgstr "'%s' modülü için döşeme başarısız oldu. çıktı bozuk olabilir." +msgid "" +"tiling failed for module '%s'. the output most likely will be OK, but you " +"might want to check." +msgstr "" +"'%s' modülü için döşeme başarısız oldu. çıktı büyük olasılıkla iyi " +"olacaktır, ancak kontrol etmek isteyebilirsiniz." -#: ../src/dtgtk/culling.c:254 +#: ../src/dtgtk/culling.c:223 msgid "you have reached the start of your selection" msgstr "seçiminizin başlangıcına ulaştınız" -#: ../src/dtgtk/culling.c:263 +#: ../src/dtgtk/culling.c:232 msgid "you have reached the start of your collection" msgstr "koleksiyonunuzun başlangıcına ulaştınız" -#: ../src/dtgtk/culling.c:310 +#: ../src/dtgtk/culling.c:279 msgid "you have reached the end of your selection" msgstr "seçiminizin sonuna geldiniz" -#: ../src/dtgtk/culling.c:337 +#: ../src/dtgtk/culling.c:306 msgid "you have reached the end of your collection" msgstr "koleksiyonunuzun sonuna ulaştınız" -#: ../src/dtgtk/culling.c:446 +#: ../src/dtgtk/culling.c:415 #, c-format msgid "zooming is limited to %d images" msgstr "yakınlaştırma %d görüntü ile sınırlıdır" @@ -9158,7 +9521,7 @@ msgid "fixed" msgstr "onarıldı" -#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1493 +#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1498 msgid "relative" msgstr "göreceli" @@ -9172,7 +9535,7 @@ msgstr "asg" #: ../src/dtgtk/range.c:630 ../src/dtgtk/range.c:1780 ../src/dtgtk/range.c:1831 -#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:282 +#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:309 msgid "max" msgstr "azm" @@ -9181,7 +9544,7 @@ msgstr "tarih tipi" #. the date section -#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1505 msgid "date" msgstr "tarih" @@ -9206,7 +9569,7 @@ msgstr "günler: " #. the time section -#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1505 msgid "time" msgstr "zaman" @@ -9224,8 +9587,8 @@ msgstr "değeri her zaman geçerli tarih saatiyle eşleşecek şekilde ayarlayın" #. apply button -#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:162 -#: ../src/libs/metadata.c:901 ../src/libs/styles.c:897 +#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:180 +#: ../src/libs/metadata.c:735 ../src/libs/styles.c:901 msgid "apply" msgstr "uygula" @@ -9259,40 +9622,40 @@ msgid "grouped images" msgstr "gruplandırılmış görüntüler" -#: ../src/dtgtk/thumbnail.c:820 ../src/dtgtk/thumbnail.c:1635 -#: ../src/iop/ashift.c:6191 ../src/iop/ashift.c:6280 ../src/iop/ashift.c:6282 -#: ../src/iop/ashift.c:6284 ../src/libs/navigation.c:110 -#: ../src/libs/navigation.c:190 +#: ../src/dtgtk/thumbnail.c:814 ../src/dtgtk/thumbnail.c:1623 +#: ../src/iop/ashift.c:6138 ../src/iop/ashift.c:6227 ../src/iop/ashift.c:6229 +#: ../src/iop/ashift.c:6231 ../src/libs/navigation.c:111 +#: ../src/libs/navigation.c:193 msgid "fit" msgstr "sığdır" -#: ../src/dtgtk/thumbtable.c:1041 ../src/views/slideshow.c:421 +#: ../src/dtgtk/thumbtable.c:1139 ../src/views/slideshow.c:422 msgid "there are no images in this collection" msgstr "bu koleksiyonda hiç resim yok" -#: ../src/dtgtk/thumbtable.c:1048 +#: ../src/dtgtk/thumbtable.c:1146 msgid "if you have not imported any images yet" msgstr "henüz herhangi bir resim içe aktarmadıysanız" -#: ../src/dtgtk/thumbtable.c:1052 +#: ../src/dtgtk/thumbtable.c:1150 msgid "you can do so in the import module" msgstr "bunu içe aktarma modülünde yapabilirsiniz" -#: ../src/dtgtk/thumbtable.c:1061 +#: ../src/dtgtk/thumbtable.c:1159 msgid "try to relax the filter settings in the top panel" msgstr "üst paneldeki filtre ayarlarını gevşetmeyi deneyin" -#: ../src/dtgtk/thumbtable.c:1072 +#: ../src/dtgtk/thumbtable.c:1170 msgid "or add images in the collections module in the left panel" msgstr "veya sol paneldeki koleksiyon modülüne resim ekleyin" -#: ../src/dtgtk/thumbtable.c:1338 +#: ../src/dtgtk/thumbtable.c:1455 msgid "" "you have changed the settings related to how thumbnails are generated.\n" msgstr "" "küçük resimlerin nasıl oluşturulduğuyla ilgili ayarları değiştirdiniz.\n" -#: ../src/dtgtk/thumbtable.c:1341 +#: ../src/dtgtk/thumbtable.c:1458 msgid "" "all cached thumbnails need to be invalidated.\n" "\n" @@ -9300,7 +9663,7 @@ "tüm önbelleğe alınmış küçük resimlerin geçersiz kılınması gerekir.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1345 +#: ../src/dtgtk/thumbtable.c:1462 #, c-format msgid "" "cached thumbnails starting from level %d need to be invalidated.\n" @@ -9310,7 +9673,7 @@ "kılınması gerekiyor.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1350 +#: ../src/dtgtk/thumbtable.c:1467 #, c-format msgid "" "cached thumbnails below level %d need to be invalidated.\n" @@ -9320,7 +9683,7 @@ "kılınması gerekiyor.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1355 +#: ../src/dtgtk/thumbtable.c:1472 #, c-format msgid "" "cached thumbnails between level %d and %d need to be invalidated.\n" @@ -9330,48 +9693,48 @@ "kılınması gerekiyor.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1358 +#: ../src/dtgtk/thumbtable.c:1475 msgid "do you want to do that now?" msgstr "bunu şimdi yapmak istiyor musun?" -#: ../src/dtgtk/thumbtable.c:1360 +#: ../src/dtgtk/thumbtable.c:1477 msgid "cached thumbnails invalidation" msgstr "önbelleğe alınmış küçük resimlerin geçersiz kılınması" #. setup history key accelerators -#: ../src/dtgtk/thumbtable.c:2561 +#: ../src/dtgtk/thumbtable.c:2738 msgid "copy history" msgstr "geçmişi kopyala" -#: ../src/dtgtk/thumbtable.c:2563 +#: ../src/dtgtk/thumbtable.c:2740 msgid "copy history parts" msgstr "geçmiş parçalarını kopyala" -#: ../src/dtgtk/thumbtable.c:2565 +#: ../src/dtgtk/thumbtable.c:2742 msgid "paste history" msgstr "geçmişi yapıştır" -#: ../src/dtgtk/thumbtable.c:2567 +#: ../src/dtgtk/thumbtable.c:2744 msgid "paste history parts" msgstr "geçmiş parçalarını yapıştır" -#: ../src/dtgtk/thumbtable.c:2569 ../src/libs/copy_history.c:394 +#: ../src/dtgtk/thumbtable.c:2746 ../src/libs/copy_history.c:394 msgid "discard history" msgstr "geçmişi sil" -#: ../src/dtgtk/thumbtable.c:2572 +#: ../src/dtgtk/thumbtable.c:2749 msgid "duplicate image" msgstr "yinelenen görüntü" -#: ../src/dtgtk/thumbtable.c:2574 +#: ../src/dtgtk/thumbtable.c:2751 msgid "duplicate image virgin" msgstr "yinelenen görüntü ellenmemiş" -#: ../src/dtgtk/thumbtable.c:2584 ../src/libs/select.c:147 +#: ../src/dtgtk/thumbtable.c:2761 ../src/libs/select.c:148 msgid "select film roll" msgstr "film rulosunu seç" -#: ../src/dtgtk/thumbtable.c:2586 ../src/libs/select.c:151 +#: ../src/dtgtk/thumbtable.c:2763 ../src/libs/select.c:152 msgid "select untouched" msgstr "dokunulmamış seç" @@ -9442,265 +9805,296 @@ msgid "creating complete lighttable thumbnail cache\n" msgstr "tam ışık masası küçük resim önbelleği oluşturma\n" -#: ../src/gui/accelerators.c:61 -msgid "active view" -msgstr "etkin görünüm" - -#: ../src/gui/accelerators.c:62 -msgid "other views" -msgstr "diğer görünümler" +#: ../src/gui/about.c:34 +#, c-format +msgid "copyright (c) the authors 2009-%s" +msgstr "telif hakkı (c) yazarlar 2009-%s" -#: ../src/gui/accelerators.c:63 +#: ../src/gui/about.c:39 +msgid "organize and develop images from digital cameras" +msgstr "dijital kameralardan görüntüler düzenleme ve geliştirme" + +#: ../src/gui/about.c:51 +msgid "all those of you that made previous releases possible" +msgstr "önceki yayınları mümkün kılan hepiniz" + +#: ../src/gui/about.c:56 +msgid "and..." +msgstr "ve..." + +#: ../src/gui/about.c:59 +msgid "translator-credits" +msgstr "serkan ÖNDER <serkanonder@outlook.com> 2022" + +#: ../src/gui/accelerators.c:72 +msgid "in active view" +msgstr "aktif görünümde" + +#: ../src/gui/accelerators.c:73 +msgid "in other views" +msgstr "diğer görünümlerde" + +#: ../src/gui/accelerators.c:74 msgid "fallbacks" msgstr "geri dönüşler" -#: ../src/gui/accelerators.c:64 ../src/gui/accelerators.c:722 -#: ../src/gui/accelerators.c:2607 ../src/gui/accelerators.c:3470 -msgid "speed" -msgstr "hız" +#: ../src/gui/accelerators.c:75 +msgid "speed adjustments" +msgstr "hız ayarları" + +#: ../src/gui/accelerators.c:76 +msgid "disabled defaults" +msgstr "devre dışı varsayılanlar" -#: ../src/gui/accelerators.c:80 ../src/views/view.c:1202 +#: ../src/gui/accelerators.c:96 ../src/views/view.c:1361 msgid "scroll" msgstr "kaydır" -#: ../src/gui/accelerators.c:81 +#: ../src/gui/accelerators.c:97 msgid "pan" msgstr "pan" -#: ../src/gui/accelerators.c:82 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6283 ../src/iop/clipping.c:1902 -#: ../src/iop/clipping.c:2094 ../src/iop/clipping.c:2110 -#: ../src/views/darkroom.c:2676 ../src/views/lighttable.c:1250 +#: ../src/gui/accelerators.c:98 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6230 ../src/iop/clipping.c:1955 +#: ../src/iop/clipping.c:2147 ../src/iop/clipping.c:2163 +#: ../src/views/darkroom.c:2522 ../src/views/lighttable.c:1250 msgid "horizontal" msgstr "yatay" -#: ../src/gui/accelerators.c:83 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6281 ../src/iop/clipping.c:1901 -#: ../src/iop/clipping.c:2095 ../src/iop/clipping.c:2109 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:1254 +#: ../src/gui/accelerators.c:99 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6228 ../src/iop/clipping.c:1954 +#: ../src/iop/clipping.c:2148 ../src/iop/clipping.c:2162 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:1254 msgid "vertical" msgstr "dikey" -#: ../src/gui/accelerators.c:84 +#: ../src/gui/accelerators.c:100 msgid "diagonal" msgstr "çapraz" -#: ../src/gui/accelerators.c:86 +#: ../src/gui/accelerators.c:102 msgid "leftright" msgstr "sol sağ" -#: ../src/gui/accelerators.c:87 +#: ../src/gui/accelerators.c:103 msgid "updown" msgstr "yukarı aşağı" -#: ../src/gui/accelerators.c:88 +#: ../src/gui/accelerators.c:104 msgid "pgupdown" msgstr "sayfa yukarı aşağı" -#: ../src/gui/accelerators.c:96 ../src/views/view.c:1186 +#: ../src/gui/accelerators.c:112 ../src/views/view.c:1343 msgid "shift" msgstr "shift" -#: ../src/gui/accelerators.c:97 ../src/views/view.c:1187 +#: ../src/gui/accelerators.c:113 ../src/views/view.c:1345 msgid "ctrl" msgstr "ctrl" -#: ../src/gui/accelerators.c:98 ../src/views/view.c:1188 +#: ../src/gui/accelerators.c:114 ../src/views/view.c:1347 msgid "alt" msgstr "alt" -#: ../src/gui/accelerators.c:99 +#: ../src/gui/accelerators.c:115 msgid "cmd" msgstr "cmd" -#: ../src/gui/accelerators.c:100 +#: ../src/gui/accelerators.c:116 msgid "altgr" msgstr "altgr" -#: ../src/gui/accelerators.c:109 ../src/gui/accelerators.c:156 -#: ../src/libs/tagging.c:1782 +#: ../src/gui/accelerators.c:127 ../src/gui/accelerators.c:174 +#: ../src/libs/tagging.c:1804 msgid "edit" msgstr "düzenle" -#: ../src/gui/accelerators.c:110 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "up" msgstr "yukarı" -#: ../src/gui/accelerators.c:111 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:129 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "down" msgstr "aşağı" -#: ../src/gui/accelerators.c:115 +#: ../src/gui/accelerators.c:133 msgid "set" msgstr "ayarla" -#: ../src/gui/accelerators.c:119 +#: ../src/gui/accelerators.c:137 msgid "popup" msgstr "açılır menü" -#: ../src/gui/accelerators.c:120 ../src/gui/accelerators.c:153 -#: ../src/gui/gtk.c:3054 ../src/views/lighttable.c:760 +#: ../src/gui/accelerators.c:138 ../src/gui/accelerators.c:171 +#: ../src/gui/gtk.c:3100 ../src/views/lighttable.c:760 msgid "next" msgstr "sonraki" -#: ../src/gui/accelerators.c:121 ../src/gui/accelerators.c:152 -#: ../src/gui/gtk.c:3055 ../src/views/lighttable.c:761 +#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:170 +#: ../src/gui/gtk.c:3101 ../src/views/lighttable.c:761 msgid "previous" msgstr "önceki" -#: ../src/gui/accelerators.c:123 ../src/gui/accelerators.c:1462 +#: ../src/gui/accelerators.c:141 ../src/gui/accelerators.c:1598 msgid "last" msgstr "son" -#: ../src/gui/accelerators.c:124 ../src/gui/accelerators.c:1461 +#: ../src/gui/accelerators.c:142 ../src/gui/accelerators.c:1597 msgid "first" msgstr "ilk" -#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:141 -#: ../src/gui/accelerators.c:314 ../src/libs/filters/rating_range.c:268 -#: ../src/libs/tagging.c:3119 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2419 ../src/views/darkroom.c:2648 +#: ../src/gui/accelerators.c:146 ../src/gui/accelerators.c:159 +#: ../src/gui/accelerators.c:356 ../src/libs/filters/rating_range.c:295 +#: ../src/libs/tagging.c:3150 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2258 ../src/views/darkroom.c:2494 msgid "toggle" msgstr "geçiş" -#: ../src/gui/accelerators.c:131 +#: ../src/gui/accelerators.c:149 msgid "ctrl-toggle" msgstr "ctrl-geçiş" -#: ../src/gui/accelerators.c:132 +#: ../src/gui/accelerators.c:150 msgid "ctrl-on" msgstr "ctrl-açık" -#: ../src/gui/accelerators.c:133 +#: ../src/gui/accelerators.c:151 msgid "right-toggle" msgstr "sağ-geçiş" -#: ../src/gui/accelerators.c:134 +#: ../src/gui/accelerators.c:152 msgid "right-on" msgstr "sağ-açık" -#: ../src/gui/accelerators.c:145 ../src/gui/gtk.c:3053 +#: ../src/gui/accelerators.c:163 ../src/gui/gtk.c:3099 msgid "activate" msgstr "etkinleştir" -#: ../src/gui/accelerators.c:146 +#: ../src/gui/accelerators.c:164 msgid "ctrl-activate" msgstr "ctrl-etkinleştirildi" -#: ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:165 msgid "right-activate" msgstr "sağ-etkinleştirildi" -#: ../src/gui/accelerators.c:154 +#: ../src/gui/accelerators.c:172 msgid "store" msgstr "depo" -#: ../src/gui/accelerators.c:157 ../src/gui/styles_dialog.c:639 +#: ../src/gui/accelerators.c:175 ../src/gui/styles_dialog.c:651 msgid "update" msgstr "güncelleme" -#: ../src/gui/accelerators.c:158 ../src/libs/tools/global_toolbox.c:60 +#: ../src/gui/accelerators.c:176 ../src/libs/tools/global_toolbox.c:60 #: ../src/libs/tools/global_toolbox.c:510 msgid "preferences" msgstr "tercihler" -#: ../src/gui/accelerators.c:163 +#: ../src/gui/accelerators.c:181 msgid "apply on new instance" msgstr "yeni örneğe uygula" -#: ../src/gui/accelerators.c:168 +#: ../src/gui/accelerators.c:186 msgid "start" msgstr "başlat" -#: ../src/gui/accelerators.c:169 +#: ../src/gui/accelerators.c:187 msgid "end" msgstr "son" -#: ../src/gui/accelerators.c:332 +#: ../src/gui/accelerators.c:374 msgid "entry" msgstr "girdi" -#: ../src/gui/accelerators.c:409 +#: ../src/gui/accelerators.c:450 msgid "combo effect not found" msgstr "birleşik efekt bulunamadı" -#: ../src/gui/accelerators.c:578 +#: ../src/gui/accelerators.c:627 msgid "(keypad)" msgstr "(klavye)" -#: ../src/gui/accelerators.c:587 +#: ../src/gui/accelerators.c:636 msgid "tablet button" msgstr "tablet düğmesi" -#: ../src/gui/accelerators.c:596 +#: ../src/gui/accelerators.c:645 msgid "unknown driver" msgstr "bilinmeyen sürücü" -#: ../src/gui/accelerators.c:663 +#: ../src/gui/accelerators.c:718 msgid "long" msgstr "uzun" -#: ../src/gui/accelerators.c:664 +#: ../src/gui/accelerators.c:719 msgid "double-press" msgstr "çift bas" -#: ../src/gui/accelerators.c:665 +#: ../src/gui/accelerators.c:720 msgid "triple-press" msgstr "üçlü bas" -#: ../src/gui/accelerators.c:666 +#: ../src/gui/accelerators.c:721 msgid "press" msgstr "bas" -#: ../src/gui/accelerators.c:670 +#: ../src/gui/accelerators.c:725 msgctxt "accel" msgid "left" msgstr "sol" -#: ../src/gui/accelerators.c:671 +#: ../src/gui/accelerators.c:726 msgctxt "accel" msgid "right" msgstr "sağ" -#: ../src/gui/accelerators.c:672 +#: ../src/gui/accelerators.c:727 msgctxt "accel" msgid "middle" msgstr "orta" -#: ../src/gui/accelerators.c:673 +#: ../src/gui/accelerators.c:728 msgctxt "accel" msgid "long" msgstr "uzun" -#: ../src/gui/accelerators.c:674 +#: ../src/gui/accelerators.c:729 msgctxt "accel" msgid "double-click" msgstr "çift tıkla" -#: ../src/gui/accelerators.c:675 +#: ../src/gui/accelerators.c:730 msgctxt "accel" msgid "triple-click" msgstr "üç tıklama" -#: ../src/gui/accelerators.c:676 +#: ../src/gui/accelerators.c:731 msgid "click" msgstr "tıkla" -#: ../src/gui/accelerators.c:704 +#: ../src/gui/accelerators.c:759 msgid "first instance" msgstr "ilk örnek" -#: ../src/gui/accelerators.c:706 +#: ../src/gui/accelerators.c:761 msgid "last instance" msgstr "son örnek" -#: ../src/gui/accelerators.c:708 +#: ../src/gui/accelerators.c:763 msgid "relative instance" msgstr "göreli örnek" -#: ../src/gui/accelerators.c:867 +#: ../src/gui/accelerators.c:780 ../src/gui/accelerators.c:2864 +#: ../src/gui/accelerators.c:3811 +msgid "speed" +msgstr "hız" + +#: ../src/gui/accelerators.c:923 #, c-format msgid "" "Lua script command copied to clipboard:\n" @@ -9711,11 +10105,11 @@ "\n" "<tt>%s</tt>" -#: ../src/gui/accelerators.c:965 ../src/gui/accelerators.c:978 +#: ../src/gui/accelerators.c:1025 ../src/gui/accelerators.c:1044 msgid "start typing for incremental search" msgstr "artımlı arama için yazmaya başlayın" -#: ../src/gui/accelerators.c:966 +#: ../src/gui/accelerators.c:1028 msgid "" "\n" "press Delete to delete selected shortcut" @@ -9723,7 +10117,23 @@ "\n" "seçilen kısayolu silmek için Sil'e basın" -#: ../src/gui/accelerators.c:968 +#: ../src/gui/accelerators.c:1030 +msgid "" +"\n" +"press Delete to disable selected default shortcut" +msgstr "" +"\n" +"seçili varsayılan kısayolu devre dışı bırakmak için Sil'e basın" + +#: ../src/gui/accelerators.c:1031 +msgid "" +"\n" +"press Delete to restore selected default shortcut" +msgstr "" +"\n" +"Seçilen varsayılan kısayolu geri yüklemek için Sil'e basın" + +#: ../src/gui/accelerators.c:1033 msgid "" "\n" "double-click to add new shortcut" @@ -9731,11 +10141,11 @@ "\n" "yeni kısayol eklemek için çift tıklayın" -#: ../src/gui/accelerators.c:979 +#: ../src/gui/accelerators.c:1045 msgid "click to filter shortcuts list" msgstr "kısayol listesini filtrelemek için tıklayın" -#: ../src/gui/accelerators.c:981 +#: ../src/gui/accelerators.c:1047 msgid "" "\n" "right click to show action of selected shortcut" @@ -9743,7 +10153,7 @@ "\n" "seçilen kısayolun eylemini göstermek için sağ tıklayın" -#: ../src/gui/accelerators.c:984 +#: ../src/gui/accelerators.c:1050 msgid "" "\n" "double-click to define new shortcut" @@ -9751,11 +10161,11 @@ "\n" "yeni kısayol tanımlamak için çift tıklayın" -#: ../src/gui/accelerators.c:1015 +#: ../src/gui/accelerators.c:1081 msgid "shift+alt+scroll to change height" msgstr "yüksekliği değiştirmek için shift+alt+scroll" -#: ../src/gui/accelerators.c:1035 +#: ../src/gui/accelerators.c:1101 msgid "" "press keys with mouse click and scroll or move combinations to create a " "shortcut" @@ -9763,27 +10173,27 @@ "fare tıklamasıyla tuşlara basın ve kısayol oluşturmak için kombinasyonları " "kaydırın veya taşıyın" -#: ../src/gui/accelerators.c:1036 +#: ../src/gui/accelerators.c:1102 msgid "click to open shortcut configuration" msgstr "kısayol yapılandırmasını açmak için tıklayın" -#: ../src/gui/accelerators.c:1037 +#: ../src/gui/accelerators.c:1103 msgid "ctrl+click to add to quick access panel\n" msgstr "hızlı erişim paneline eklemek için ctrl+tıklayın\n" -#: ../src/gui/accelerators.c:1038 +#: ../src/gui/accelerators.c:1104 msgid "ctrl+click to remove from quick access panel\n" msgstr "hızlı erişim panelinden kaldırmak için ctrl+tıklayın\n" -#: ../src/gui/accelerators.c:1039 +#: ../src/gui/accelerators.c:1105 msgid "scroll to change default speed" msgstr "varsayılan hızı değiştirmek için kaydırın" -#: ../src/gui/accelerators.c:1040 +#: ../src/gui/accelerators.c:1106 msgid "right click to exit mapping mode" msgstr "eşleme modundan çıkmak için sağ tıklayın" -#: ../src/gui/accelerators.c:1051 +#: ../src/gui/accelerators.c:1119 #, c-format msgid "" "%sright-click to type a specific value between <b>%s</b> and <b>%s</b>\n" @@ -9794,74 +10204,89 @@ "veya esnek sınırları yok saymak için sürüklerken ctrl+shift tuşunu basılı " "tutun." -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "ctrl+v" msgstr "ctrl+v" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "right long click" msgstr "sağ uzun tıklama" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "to copy Lua command" msgstr "Lua komutunu kopyalamak için" -#: ../src/gui/accelerators.c:1344 +#: ../src/gui/accelerators.c:1451 msgid "shortcut for move exists with single effect" msgstr "tek efektle hareket kısayolu var" -#: ../src/gui/accelerators.c:1345 +#: ../src/gui/accelerators.c:1452 +#, c-format +msgid "" +"%s\n" +"\n" +"(assign %s to %s)" +msgstr "" +"%s\n" +"\n" +"(%s'yi %s'e atayın)" + +#: ../src/gui/accelerators.c:1453 msgid "create separate shortcuts for up and down move?" msgstr "yukarı ve aşağı hareket için ayrı kısayollar oluştur?" -#: ../src/gui/accelerators.c:1368 +#: ../src/gui/accelerators.c:1479 #, c-format msgid "%s, speed reset" msgstr "%s, hız sıfırlama" -#: ../src/gui/accelerators.c:1377 +#: ../src/gui/accelerators.c:1497 msgid "shortcut exists with different settings" msgstr "kısayol farklı ayarlarla var" -#: ../src/gui/accelerators.c:1378 +#: ../src/gui/accelerators.c:1498 msgid "reset the settings of the shortcut?" msgstr "kısayolun ayarları sıfırlansın mı?" -#: ../src/gui/accelerators.c:1389 +#: ../src/gui/accelerators.c:1507 msgid "shortcut already exists" msgstr "kısayol zaten var" -#: ../src/gui/accelerators.c:1390 +#: ../src/gui/accelerators.c:1509 +msgid "disable this default shortcut?" +msgstr "bu varsayılan kısayol devre dışı bırakılsın mı?" + +#: ../src/gui/accelerators.c:1510 msgid "remove the shortcut?" msgstr "kısayolu kaldır?" -#: ../src/gui/accelerators.c:1423 +#: ../src/gui/accelerators.c:1550 msgid "clashing shortcuts exist" msgstr "çakışan kısayollar var" -#: ../src/gui/accelerators.c:1424 +#: ../src/gui/accelerators.c:1551 msgid "remove these existing shortcuts?" msgstr "bu mevcut kısayollar kaldırılsın mı?" #. or 3, but change char relative[] = "-2" to "-1" #. NUM_INSTANCES -#: ../src/gui/accelerators.c:1460 +#: ../src/gui/accelerators.c:1596 msgid "preferred" msgstr "tercihli" -#: ../src/gui/accelerators.c:1463 +#: ../src/gui/accelerators.c:1599 msgid "second" msgstr "saniye" -#: ../src/gui/accelerators.c:1464 +#: ../src/gui/accelerators.c:1600 msgid "last but one" msgstr "son fakat tek" -#: ../src/gui/accelerators.c:1610 ../src/gui/accelerators.c:1670 +#: ../src/gui/accelerators.c:1761 ../src/gui/accelerators.c:1826 msgid "(unchanged)" msgstr "(değişmedi)" -#: ../src/gui/accelerators.c:1776 +#: ../src/gui/accelerators.c:1941 msgid "" "define a shortcut by pressing a key, optionally combined with modifier keys " "(ctrl/shift/alt)\n" @@ -9886,39 +10311,47 @@ "\n" "iptal etmek için sağ tıklayın" -#: ../src/gui/accelerators.c:1847 +#: ../src/gui/accelerators.c:2014 msgid "removing shortcut" msgstr "kısayolu kaldırma" -#: ../src/gui/accelerators.c:1848 +#: ../src/gui/accelerators.c:2016 +msgid "disable the selected default shortcut?" +msgstr "seçili varsayılan kısayolu devre dışı bırakılsın mı?" + +#: ../src/gui/accelerators.c:2017 +msgid "restore the selected default shortcut?" +msgstr "seçili varsayılan kısayolu geri yükle?" + +#: ../src/gui/accelerators.c:2018 msgid "remove the selected shortcut?" msgstr "seçilen kısayol kaldırılsın mı?" -#: ../src/gui/accelerators.c:1938 +#: ../src/gui/accelerators.c:2107 msgid "command" msgstr "komut" -#: ../src/gui/accelerators.c:1939 +#: ../src/gui/accelerators.c:2108 msgid "preset" msgstr "önayar" -#: ../src/gui/accelerators.c:2272 +#: ../src/gui/accelerators.c:2491 msgid "restore shortcuts" msgstr "kısayolları geri yükle" -#: ../src/gui/accelerators.c:2275 +#: ../src/gui/accelerators.c:2494 msgid "_defaults" msgstr "_öntanımlılar" -#: ../src/gui/accelerators.c:2276 +#: ../src/gui/accelerators.c:2495 msgid "_startup" msgstr "_başlangıç" -#: ../src/gui/accelerators.c:2277 +#: ../src/gui/accelerators.c:2496 msgid "_edits" msgstr "d_üzenlemeler" -#: ../src/gui/accelerators.c:2283 +#: ../src/gui/accelerators.c:2503 msgid "" "restore shortcuts from one of these states:\n" " - default\n" @@ -9930,7 +10363,7 @@ " - başlangıçta olduğu gibi\n" " - bu iletişim kutusunu açarken olduğu gibi\n" -#: ../src/gui/accelerators.c:2289 +#: ../src/gui/accelerators.c:2510 msgid "" "clear all newer shortcuts\n" "(instead of just restoring changed ones)" @@ -9938,22 +10371,17 @@ "tüm yeni kısayolları temizle\n" "(sadece değiştirilenleri geri yüklemek yerine)" -#: ../src/gui/accelerators.c:2344 ../src/gui/preferences.c:906 +#: ../src/gui/accelerators.c:2567 ../src/gui/preferences.c:905 #: ../src/libs/tools/global_toolbox.c:494 -#: ../src/libs/tools/global_toolbox.c:645 +#: ../src/libs/tools/global_toolbox.c:652 msgid "shortcuts" msgstr "kısayollar" -#: ../src/gui/accelerators.c:2353 +#: ../src/gui/accelerators.c:2577 msgid "export shortcuts" msgstr "kısayolları dışa aktar" -#: ../src/gui/accelerators.c:2356 ../src/gui/accelerators.c:2436 -#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:564 -msgid "_ok" -msgstr "ta_mam" - -#: ../src/gui/accelerators.c:2361 +#: ../src/gui/accelerators.c:2586 msgid "" "export all shortcuts to a file\n" "or just for one selected device\n" @@ -9961,27 +10389,27 @@ "tüm kısayolları bir dosyaya aktar\n" "veya sadece seçilen bir cihaz için\n" -#: ../src/gui/accelerators.c:2368 ../src/gui/accelerators.c:2448 +#: ../src/gui/accelerators.c:2593 ../src/gui/accelerators.c:2675 msgid "keyboard" msgstr "klavye" -#: ../src/gui/accelerators.c:2380 +#: ../src/gui/accelerators.c:2605 msgid "device id" msgstr "cihaz kimliği" -#: ../src/gui/accelerators.c:2406 +#: ../src/gui/accelerators.c:2631 msgid "select file to export" msgstr "dışa aktarılacak dosyayı seçin" -#: ../src/gui/accelerators.c:2407 ../src/libs/tagging.c:2525 +#: ../src/gui/accelerators.c:2632 ../src/libs/tagging.c:2556 msgid "_export" msgstr "_dışa aktar" -#: ../src/gui/accelerators.c:2433 +#: ../src/gui/accelerators.c:2659 msgid "import shortcuts" msgstr "kısayolları içe aktar" -#: ../src/gui/accelerators.c:2441 +#: ../src/gui/accelerators.c:2668 msgid "" "import all shortcuts from a file\n" "or just for one selected device\n" @@ -9989,31 +10417,31 @@ "bir dosyadan tüm kısayolları içe aktar\n" "veya sadece seçilen bir cihaz için\n" -#: ../src/gui/accelerators.c:2460 +#: ../src/gui/accelerators.c:2687 msgid "id in file" msgstr "dosyadaki kimlik" -#: ../src/gui/accelerators.c:2466 +#: ../src/gui/accelerators.c:2693 msgid "id when loaded" msgstr "yüklendiğinde kimlik" -#: ../src/gui/accelerators.c:2470 +#: ../src/gui/accelerators.c:2697 msgid "clear device first" msgstr "önce cihazı temizle" -#: ../src/gui/accelerators.c:2494 +#: ../src/gui/accelerators.c:2722 msgid "select file to import" msgstr "içe aktarılacak dosyayı seçin" -#: ../src/gui/accelerators.c:2495 ../src/libs/tagging.c:2489 +#: ../src/gui/accelerators.c:2723 ../src/libs/tagging.c:2520 msgid "_import" msgstr "_içe aktar" -#: ../src/gui/accelerators.c:2568 +#: ../src/gui/accelerators.c:2815 msgid "search shortcuts list" msgstr "arama kısayolları listesi" -#: ../src/gui/accelerators.c:2569 +#: ../src/gui/accelerators.c:2817 msgid "" "incrementally search the list of shortcuts\n" "press up or down keys to cycle through matches" @@ -10021,29 +10449,28 @@ "kısayollar listesini aşamalı olarak ara\n" "eşleşmeler arasında geçiş yapmak için yukarı veya aşağı tuşlarına basın" -#. Setting up the cell renderers -#: ../src/gui/accelerators.c:2583 ../src/views/view.c:1383 +#: ../src/gui/accelerators.c:2837 ../src/views/view.c:1554 msgid "shortcut" msgstr "kısayol" -#: ../src/gui/accelerators.c:2585 ../src/gui/accelerators.c:2676 -#: ../src/views/view.c:1385 +#: ../src/gui/accelerators.c:2840 ../src/gui/accelerators.c:2942 +#: ../src/views/view.c:1556 msgid "action" msgstr "eylem" -#: ../src/gui/accelerators.c:2594 +#: ../src/gui/accelerators.c:2850 msgid "element" msgstr "öğe" -#: ../src/gui/accelerators.c:2601 +#: ../src/gui/accelerators.c:2858 msgid "effect" msgstr "etki" -#: ../src/gui/accelerators.c:2658 +#: ../src/gui/accelerators.c:2918 msgid "search actions list" msgstr "arama eylemleri listesi" -#: ../src/gui/accelerators.c:2659 +#: ../src/gui/accelerators.c:2920 msgid "" "incrementally search the list of actions\n" "press up or down keys to cycle through matches" @@ -10051,16 +10478,16 @@ "eylemler listesini aşamalı olarak ara\n" "eşleşmeler arasında geçiş yapmak için yukarı veya aşağı tuşlarına basın" -#: ../src/gui/accelerators.c:2682 ../src/gui/guides.c:719 -#: ../src/libs/export_metadata.c:192 +#: ../src/gui/accelerators.c:2950 ../src/gui/guides.c:719 +#: ../src/libs/export_metadata.c:179 msgid "type" msgstr "tür" -#: ../src/gui/accelerators.c:2717 +#: ../src/gui/accelerators.c:2988 msgid "enable fallbacks" msgstr "yedekleri etkinleştir" -#: ../src/gui/accelerators.c:2718 +#: ../src/gui/accelerators.c:2989 msgid "" "enables default meanings for additional buttons, modifiers or moves\n" "when used in combination with a base shortcut" @@ -10069,67 +10496,110 @@ "etkinleştirir\n" "bir temel kısayol ile birlikte kullanıldığında" -#: ../src/gui/accelerators.c:2725 +#: ../src/gui/accelerators.c:2997 msgid "open help page for shortcuts" msgstr "kısayollar için yardım sayfasını aç" -#: ../src/gui/accelerators.c:2730 +#: ../src/gui/accelerators.c:3002 msgid "restore..." msgstr "geri yükle..." -#: ../src/gui/accelerators.c:2731 +#: ../src/gui/accelerators.c:3003 msgid "restore default shortcuts or previous state" msgstr "varsayılan kısayolları veya önceki durumu geri yükle" -#: ../src/gui/accelerators.c:2735 ../src/libs/styles.c:883 -#: ../src/libs/tagging.c:3251 +#: ../src/gui/accelerators.c:3007 ../src/libs/styles.c:887 +#: ../src/libs/tagging.c:3282 msgid "import..." msgstr "içe aktar..." -#: ../src/gui/accelerators.c:2736 +#: ../src/gui/accelerators.c:3008 msgid "fully or partially import shortcuts from file" msgstr "dosyadan kısayolları tamamen veya kısmen içe aktar" -#: ../src/gui/accelerators.c:2740 ../src/libs/styles.c:890 -#: ../src/libs/tagging.c:3254 +#: ../src/gui/accelerators.c:3012 ../src/libs/styles.c:894 +#: ../src/libs/tagging.c:3285 msgid "export..." msgstr "dışa aktar..." -#: ../src/gui/accelerators.c:2741 +#: ../src/gui/accelerators.c:3013 msgid "fully or partially export shortcuts to file" msgstr "kısayolları tamamen veya kısmen dosyaya aktar" -#: ../src/gui/accelerators.c:3139 +#: ../src/gui/accelerators.c:3021 +msgid "" +"the recommended way to assign shortcuts to visual elements is the <b>visual " +"shortcut mapping</b> mode.\n" +"this is switched on by toggling the <i>\"keyboard\"</i> button next to " +"preferences in the top panel. in this mode, clicking on a widget or area " +"will open this dialog with the appropriate selection for advanced " +"configuration.\n" +"\n" +"multiple shortcuts can be assigned to the same action. this is especially " +"useful if it has multiple <i>elements</i>, like the module buttons or the " +"colorpickers attached to sliders. however, with <i>fallbacks</i> enabled one " +"can use the same simple shortcuts and change their <i>element</i> or " +"<i>effect</i> by adding mouse clicks.\n" +"\n" +"<i>click <b> three times </b> to dismiss this notice permanently</i>" +msgstr "" +"görsel öğelere kısayol atamanın önerilen yolu <b>görsel kısayol eşleme</b> " +"modudur.\n" +"bu, üst paneldeki tercihlerin yanındaki <i>\"klavye\"</i> düğmesi " +"değiştirilerek açılır. bu modda, bir widget'a veya alana tıklamak, gelişmiş " +"yapılandırma için uygun seçimin bulunduğu bu iletişim kutusunu açacaktır.\n" +"\n" +"aynı eyleme birden fazla kısayol atanabilir. bu özellikle modül düğmeleri " +"veya kaydırıcılara bağlı renk toplayıcılar gibi birden fazla <i>öğeye</i> " +"sahipse kullanışlıdır. ancak, <i>geri dönüşler</i> etkinleştirildiğinde aynı " +"basit kısayollar kullanılabilir ve fare tıklamaları ekleyerek <i>öğe</i> " +"veya <i>efekt</i> değiştirilebilir.\n" +"\n" +"<i>Bu bildirimi kalıcı olarak kapatmak için <b> üç kez </b> tıklayın</i>" + +#: ../src/gui/accelerators.c:3452 msgid "reinitialising input devices" msgstr "giriş aygıtlarını yeniden başlatma" -#: ../src/gui/accelerators.c:3342 +#: ../src/gui/accelerators.c:3594 +msgid "down move" +msgstr "aşağı taşı" + +#: ../src/gui/accelerators.c:3594 +msgid "flip top/bottom first/last" +msgstr "ilk/sonuncuyu yukarı/aşağı çevir" + +#: ../src/gui/accelerators.c:3679 msgid "fallback to move" msgstr "hareket etmek için geri dönüş" -#: ../src/gui/accelerators.c:3578 +#: ../src/gui/accelerators.c:3921 #, c-format msgid "%s not assigned" msgstr "%s atanmadı" -#: ../src/gui/accelerators.c:3751 +#: ../src/gui/accelerators.c:4102 #, c-format msgid "%s assigned to %s" msgstr "%s, %s'e atandı" -#: ../src/gui/gtk.c:173 ../src/views/darkroom.c:4650 +#: ../src/gui/accelerators.c:4321 +msgid "short key press resets stuck keys" +msgstr "kısa tuşa basıldığında sıkışmış tuşlar sıfırlanır" + +#: ../src/gui/gtk.c:175 ../src/views/darkroom.c:3861 msgid "darktable - darkroom preview" msgstr "darktable - karanlık oda önizlemesi" -#: ../src/gui/gtk.c:184 +#: ../src/gui/gtk.c:186 msgid "tooltips off" msgstr "araç ipuçları kapalı" -#: ../src/gui/gtk.c:186 +#: ../src/gui/gtk.c:188 msgid "tooltips on" msgstr "araç ipuçları açık" -#: ../src/gui/gtk.c:191 +#: ../src/gui/gtk.c:193 msgid "" "tooltip visibility can only be toggled if compositing is enabled in your " "window manager" @@ -10137,184 +10607,217 @@ "araç ipucu görünürlüğü, yalnızca pencere yöneticinizde birleştirme " "etkinleştirilmişse değiştirilebilir" -#: ../src/gui/gtk.c:814 +#: ../src/gui/gtk.c:809 msgid "closing darktable..." msgstr "darktable kapatılıyor..." -#: ../src/gui/gtk.c:1135 +#: ../src/gui/gtk.c:1032 +msgid "URL opened in web browser" +msgstr "URL web tarayıcısında açıldı" + +#: ../src/gui/gtk.c:1036 +msgid "error while opening URL in web browser" +msgstr "URL'yi web tarayıcısında açarken hata oluştu" + +#. View menu +#: ../src/gui/gtk.c:1104 +msgctxt "menu" +msgid "Views" +msgstr "Görüntüleme" + +#: ../src/gui/gtk.c:1108 +msgctxt "menu" +msgid "lighttable" +msgstr "ışık masası" + +#: ../src/gui/gtk.c:1109 +msgctxt "menu" +msgid "darkroom" +msgstr "karanlık oda" + +#: ../src/gui/gtk.c:1115 +msgctxt "menu" +msgid "slideshow" +msgstr "slayt gösterisi" + +#: ../src/gui/gtk.c:1117 +msgctxt "menu" +msgid "map" +msgstr "harita" + +#: ../src/gui/gtk.c:1119 +msgctxt "menu" +msgid "print" +msgstr "yazdır" + +#: ../src/gui/gtk.c:1121 +msgctxt "menu" +msgid "tethering" +msgstr "bağlama" + +#. Help menu +#: ../src/gui/gtk.c:1127 +msgctxt "menu" +msgid "Help" +msgstr "Yardım" + +#: ../src/gui/gtk.c:1131 +msgctxt "menu" +msgid "darktable Manual" +msgstr "darktable Kılavuzu" + +#: ../src/gui/gtk.c:1138 +msgctxt "menu" +msgid "darktable Homepage" +msgstr "darktable Ana sayfası" + +#: ../src/gui/gtk.c:1162 +msgctxt "menu" +msgid "Preferences" +msgstr "Tercihler" + +#: ../src/gui/gtk.c:1232 msgid "panels" msgstr "paneller" -#. an action that does nothing - used for overriding/removing default shortcuts -#: ../src/gui/gtk.c:1184 -msgid "no-op" -msgstr "işlem yok" - -#: ../src/gui/gtk.c:1186 +#: ../src/gui/gtk.c:1264 msgid "switch views" msgstr "görünümleri değiştir" -#: ../src/gui/gtk.c:1187 ../src/views/tethering.c:102 +#: ../src/gui/gtk.c:1265 ../src/views/tethering.c:102 msgid "tethering" msgstr "bağlama" -#: ../src/gui/gtk.c:1188 ../src/gui/preferences.c:531 -#: ../src/gui/preferences.c:542 ../src/libs/tools/lighttable.c:66 -#: ../src/views/lighttable.c:91 -msgid "lighttable" -msgstr "ışık masası" - -#: ../src/gui/gtk.c:1189 ../src/gui/preferences.c:532 -#: ../src/gui/preferences.c:542 ../src/views/darkroom.c:94 -msgid "darkroom" -msgstr "karanlık oda" - -#: ../src/gui/gtk.c:1190 ../src/views/map.c:197 +#: ../src/gui/gtk.c:1268 ../src/views/map.c:197 msgid "map" msgstr "harita" -#: ../src/gui/gtk.c:1191 ../src/views/slideshow.c:389 +#: ../src/gui/gtk.c:1269 ../src/views/slideshow.c:390 msgid "slideshow" msgstr "slayt gösterisi" #. Print button -#: ../src/gui/gtk.c:1192 ../src/libs/print_settings.c:2885 +#: ../src/gui/gtk.c:1270 ../src/libs/print_settings.c:2885 msgid "print" msgstr "yazdır" #. register ctrl-q to quit: -#: ../src/gui/gtk.c:1198 +#: ../src/gui/gtk.c:1276 msgid "quit" msgstr "çık" #. Full-screen accelerator (no ESC handler here to enable quit-slideshow using ESC) -#: ../src/gui/gtk.c:1201 +#: ../src/gui/gtk.c:1279 msgid "fullscreen" msgstr "tam ekran" -#: ../src/gui/gtk.c:1205 +#: ../src/gui/gtk.c:1283 msgid "collapsing controls" msgstr "daralan kontroller" #. specific top/bottom toggles -#: ../src/gui/gtk.c:1207 +#: ../src/gui/gtk.c:1285 msgid "header" msgstr "üstbilgi" -#: ../src/gui/gtk.c:1208 +#: ../src/gui/gtk.c:1286 msgid "filmstrip and timeline" msgstr "film şeridi ve zaman çizelgesi" -#: ../src/gui/gtk.c:1209 +#: ../src/gui/gtk.c:1287 msgid "top toolbar" msgstr "üst araç çubuğu" -#: ../src/gui/gtk.c:1210 +#: ../src/gui/gtk.c:1288 msgid "bottom toolbar" msgstr "alt araç çubuğu" -#: ../src/gui/gtk.c:1211 +#: ../src/gui/gtk.c:1289 msgid "all top" msgstr "tüm üst" -#: ../src/gui/gtk.c:1212 +#: ../src/gui/gtk.c:1290 msgid "all bottom" msgstr "tüm alt" -#: ../src/gui/gtk.c:1214 +#: ../src/gui/gtk.c:1292 msgid "toggle tooltip visibility" msgstr "araç ipucu görünürlüğünü değiştir" -#: ../src/gui/gtk.c:1215 +#: ../src/gui/gtk.c:1293 msgid "reinitialise input devices" msgstr "girdi cihazlarını yeniden başlat" -#: ../src/gui/gtk.c:1253 +#: ../src/gui/gtk.c:1331 msgid "toggle focus-peaking mode" msgstr "odak pik modunu aç/kapat" #. toggle focus peaking everywhere -#: ../src/gui/gtk.c:1258 +#: ../src/gui/gtk.c:1336 msgid "toggle focus peaking" msgstr "odak zirvesi aç/kapat" -#: ../src/gui/gtk.c:1594 ../src/gui/gtk.c:3143 ../src/gui/gtk.c:3148 -#: ../src/gui/gtk.c:3153 ../src/gui/gtk.c:3158 +#: ../src/gui/gtk.c:1654 ../src/gui/gtk.c:3189 ../src/gui/gtk.c:3194 +#: ../src/gui/gtk.c:3199 ../src/gui/gtk.c:3204 msgid "tabs" msgstr "sekme" -#: ../src/gui/gtk.c:2535 -msgid "_yes" -msgstr "_evet" - -#: ../src/gui/gtk.c:2536 -msgid "_no" -msgstr "_hayır" - #. ask the user if darktable.org may be accessed -#: ../src/gui/gtk.c:2647 +#: ../src/gui/gtk.c:2707 msgid "access the online user manual?" msgstr "çevrimiçi kullanım kılavuzuna erişilsin mi?" -#: ../src/gui/gtk.c:2648 +#: ../src/gui/gtk.c:2708 #, c-format msgid "do you want to access `%s'?" msgstr "`%s' dosyasına erişmek istiyor musunuz?" -#: ../src/gui/gtk.c:2717 -msgid "help url opened in web browser" -msgstr "yardım url'si web tarayıcısında açıldı" - -#: ../src/gui/gtk.c:2721 -msgid "error while opening help url in web browser" -msgstr "web tarayıcısında yardım url'sini açarken hata" - -#: ../src/gui/gtk.c:2732 +#: ../src/gui/gtk.c:2778 msgid "there is no help available for this element" msgstr "bu eleman için yardım mevcut değil" #. font name can only use period as decimal separator #. but printf format strings use comma for some locales, so replace comma with period -#: ../src/gui/gtk.c:2752 +#: ../src/gui/gtk.c:2798 ../src/libs/metadata_view.c:762 #, c-format msgid "%.1f" msgstr "%.1f" -#: ../src/gui/gtk.c:2754 +#: ../src/gui/gtk.c:2800 #, c-format msgid "Sans %s" msgstr "Sans %s" -#: ../src/gui/gtk.c:3048 +#: ../src/gui/gtk.c:3094 msgid "does not contain pages" msgstr "sayfa içermez" -#: ../src/gui/gtk.c:3265 +#: ../src/gui/gtk.c:3313 #, c-format msgid "never show more than %d lines" msgstr "hiçbir zaman %d satırdan fazlasını gösterme" -#: ../src/gui/gtkentry.c:172 +#: ../src/gui/gtkentry.c:173 msgid "$(ROLL.NAME) - roll of the input image" msgstr "$(ROLL.NAME) - giriş görüntüsünün rulosu" -#: ../src/gui/gtkentry.c:173 +#: ../src/gui/gtkentry.c:174 msgid "$(FILE.FOLDER) - folder containing the input image" msgstr "$(FILE.FOLDER) - giriş görüntüsünü içeren klasör" -#: ../src/gui/gtkentry.c:174 +#: ../src/gui/gtkentry.c:175 msgid "$(FILE.NAME) - basename of the input image" msgstr "$(FILE.NAME) - giriş görüntüsünün temel adı" -#: ../src/gui/gtkentry.c:175 +#: ../src/gui/gtkentry.c:176 msgid "$(FILE.EXTENSION) - extension of the input image" msgstr "$(FILE.EXTENSION) - giriş görüntüsünün uzantısı" -#: ../src/gui/gtkentry.c:176 +#: ../src/gui/gtkentry.c:177 msgid "$(VERSION) - duplicate version" msgstr "$(VERSION) - yinelenen sürüm" -#: ../src/gui/gtkentry.c:177 +#: ../src/gui/gtkentry.c:178 msgid "" "$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version " "exists" @@ -10322,274 +10825,282 @@ "$(VERSION.IF_MULTI)- $(VERSION) ile aynı, ancak yalnızca bir sürüm varsa boş " "dize" -#: ../src/gui/gtkentry.c:178 +#: ../src/gui/gtkentry.c:179 msgid "$(VERSION.NAME) - version name from metadata" msgstr "$(VERSION.NAME) - meta verilerden sürüm adı" -#: ../src/gui/gtkentry.c:179 +#: ../src/gui/gtkentry.c:180 msgid "$(JOBCODE) - job code for import" msgstr "$(JOBCODE) - içe aktarma için iş kodu" -#: ../src/gui/gtkentry.c:180 +#: ../src/gui/gtkentry.c:181 msgid "$(SEQUENCE) - sequence number" msgstr "$(SEQUENCE) - sıra numarası" -#: ../src/gui/gtkentry.c:181 +#: ../src/gui/gtkentry.c:182 msgid "$(WIDTH.MAX) - maximum image export width" msgstr "$(WIDTH.MAX) - azami görüntü dışa aktarma genişliği" -#: ../src/gui/gtkentry.c:182 +#: ../src/gui/gtkentry.c:183 msgid "$(WIDTH.SENSOR) - image sensor width" msgstr "$(WIDTH.SENSOR) - görüntü sensörü genişliği" -#: ../src/gui/gtkentry.c:183 +#: ../src/gui/gtkentry.c:184 msgid "$(WIDTH.RAW) - RAW image width" msgstr "$(WIDTH.RAW) - RAW görüntü genişliği" -#: ../src/gui/gtkentry.c:184 +#: ../src/gui/gtkentry.c:185 msgid "$(WIDTH.CROP) - image width after crop" msgstr "$(WIDTH.CROP) - kırptıktan sonra görüntü genişliği" -#: ../src/gui/gtkentry.c:185 +#: ../src/gui/gtkentry.c:186 msgid "$(WIDTH.EXPORT) - exported image width" msgstr "$(WIDTH.EXPORT) - dışa aktarılan görüntü genişliği" -#: ../src/gui/gtkentry.c:186 +#: ../src/gui/gtkentry.c:187 msgid "$(HEIGHT.MAX) - maximum image export height" msgstr "$(HEIGHT.MAX) - aami görüntü dışa aktarma yüksekliği" -#: ../src/gui/gtkentry.c:187 +#: ../src/gui/gtkentry.c:188 msgid "$(HEIGHT.SENSOR) - image sensor height" msgstr "$(HEIGHT.SENSOR) - görüntü sensörü yüksekliği" -#: ../src/gui/gtkentry.c:188 +#: ../src/gui/gtkentry.c:189 msgid "$(HEIGHT.RAW) - RAW image height" msgstr "$(HEIGHT.RAW) - RAW görüntü yüksekliği" -#: ../src/gui/gtkentry.c:189 +#: ../src/gui/gtkentry.c:190 msgid "$(HEIGHT.CROP) - image height after crop" msgstr "$(HEIGHT.CROP) - kırpmadan sonraki görüntü yüksekliği" -#: ../src/gui/gtkentry.c:190 +#: ../src/gui/gtkentry.c:191 msgid "$(HEIGHT.EXPORT) - exported image height" msgstr "$(HEIGHT.EXPORT) - dışa aktarılan görüntünün yüksekliği" -#: ../src/gui/gtkentry.c:191 +#: ../src/gui/gtkentry.c:192 msgid "$(YEAR) - year" msgstr "$(YEAR) - yıl" -#: ../src/gui/gtkentry.c:192 +#: ../src/gui/gtkentry.c:193 msgid "$(YEAR.SHORT) - year without century" msgstr "$(YEAR.SHORT) - kısa yıl" -#: ../src/gui/gtkentry.c:193 +#: ../src/gui/gtkentry.c:194 msgid "$(MONTH) - month" msgstr "$(MONTH) - ay" -#: ../src/gui/gtkentry.c:194 +#: ../src/gui/gtkentry.c:195 msgid "$(MONTH.SHORT) - abbreviated month name according to the current locale" msgstr "$(MONTH.SHORT) - geçerli yerel ayara göre kısaltılmış ay adı" -#: ../src/gui/gtkentry.c:195 +#: ../src/gui/gtkentry.c:196 msgid "$(MONTH.LONG) - full month name according to the current locale" msgstr "$(MONTH.LONG) - geçerli yerel ayara göre tam ay adı" -#: ../src/gui/gtkentry.c:196 +#: ../src/gui/gtkentry.c:197 msgid "$(DAY) - day" msgstr "$(DAY) - gün" -#: ../src/gui/gtkentry.c:197 +#: ../src/gui/gtkentry.c:198 msgid "$(HOUR) - hour" msgstr "$(HOUR) - saat" -#: ../src/gui/gtkentry.c:198 +#: ../src/gui/gtkentry.c:199 msgid "$(HOUR.AMPM) - hour, 12-hour clock" msgstr "$(HOUR.AMPM) - saat, 12 saatlik saat" -#: ../src/gui/gtkentry.c:199 +#: ../src/gui/gtkentry.c:200 msgid "$(MINUTE) - minute" msgstr "$(MINUTE) - dakika" -#: ../src/gui/gtkentry.c:200 +#: ../src/gui/gtkentry.c:201 msgid "$(SECOND) - second" msgstr "$(SECOND) - saniye" -#: ../src/gui/gtkentry.c:201 +#: ../src/gui/gtkentry.c:202 msgid "$(MSEC) - millisecond" msgstr "$(MSEC) - milisaniye" -#: ../src/gui/gtkentry.c:202 +#: ../src/gui/gtkentry.c:203 msgid "$(EXIF.YEAR) - EXIF year" msgstr "$(EXIF.YEAR) - EXIF yılı" -#: ../src/gui/gtkentry.c:203 +#: ../src/gui/gtkentry.c:204 msgid "$(EXIF.YEAR.SHORT) - EXIF year without century" msgstr "$(EXIF.YEAR.SHORT) - kısa EXIF yılı" -#: ../src/gui/gtkentry.c:204 +#: ../src/gui/gtkentry.c:205 msgid "$(EXIF.MONTH) - EXIF month" msgstr "$(EXIF.MONTH) - EXIF ay" -#: ../src/gui/gtkentry.c:205 +#: ../src/gui/gtkentry.c:206 msgid "" "$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current " "locale" msgstr "$(EXIF.MONTH.SHORT) - geçerli yerel ayara göre kısaltılmış EXIF ay adı" -#: ../src/gui/gtkentry.c:206 +#: ../src/gui/gtkentry.c:207 msgid "" "$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" msgstr "$(EXIF.MONTH.LONG) - geçerli yerel ayara göre tam EXIF ay adı" -#: ../src/gui/gtkentry.c:207 +#: ../src/gui/gtkentry.c:208 msgid "$(EXIF.DAY) - EXIF day" msgstr "$(EXIF.DAY) - EXIF gün" -#: ../src/gui/gtkentry.c:208 +#: ../src/gui/gtkentry.c:209 msgid "$(EXIF.HOUR) - EXIF hour" msgstr "$(EXIF.HOUR) - EXIF saat" -#: ../src/gui/gtkentry.c:209 +#: ../src/gui/gtkentry.c:210 msgid "$(EXIF.HOUR.AMPM) - EXIF hour, 12-hour clock" msgstr "$(EXIF.HOUR.AMPM) - EXIF saati, 12 saatlik saat" -#: ../src/gui/gtkentry.c:210 +#: ../src/gui/gtkentry.c:211 msgid "$(EXIF.MINUTE) - EXIF minute" msgstr "$(EXIF.MINUTE) - EXIF dakika" -#: ../src/gui/gtkentry.c:211 +#: ../src/gui/gtkentry.c:212 msgid "$(EXIF.SECOND) - EXIF second" msgstr "$(EXIF.SECOND) - EXIF saniye" -#: ../src/gui/gtkentry.c:212 +#: ../src/gui/gtkentry.c:213 msgid "$(EXIF.MSEC) - EXIF millisecond" msgstr "$(EXIF.MSEC) - EXIF milisaniye" -#: ../src/gui/gtkentry.c:213 +#: ../src/gui/gtkentry.c:214 msgid "$(EXIF.ISO) - ISO value" msgstr "$(EXIF.ISO) - ISO değeri" -#: ../src/gui/gtkentry.c:214 +#: ../src/gui/gtkentry.c:215 msgid "$(EXIF.EXPOSURE) - EXIF exposure" msgstr "$(EXIF.EXPOSURE) - EXIF pozlama" -#: ../src/gui/gtkentry.c:215 +#: ../src/gui/gtkentry.c:216 msgid "$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias" msgstr "$(EXIF.EXPOSURE.BIAS) - EXIF pozlama yanlılığı" -#: ../src/gui/gtkentry.c:216 +#: ../src/gui/gtkentry.c:217 msgid "$(EXIF.APERTURE) - EXIF aperture" msgstr "$(EXIF.APERTURE) - EXIF açıklığı" -#: ../src/gui/gtkentry.c:217 +#: ../src/gui/gtkentry.c:218 +msgid "$(EXIF.CROP_FACTOR) - EXIF crop factor" +msgstr "$(EXIF.CROP_FACTOR) - EXIF kırpma faktörü" + +#: ../src/gui/gtkentry.c:219 msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" msgstr "$(EXIF.FOCAL.LENGTH) - EXIF odak uzaklığı" -#: ../src/gui/gtkentry.c:218 +#: ../src/gui/gtkentry.c:220 +msgid "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent focal length" +msgstr "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm eşdeğer odak uzaklığı" + +#: ../src/gui/gtkentry.c:221 msgid "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" msgstr "$(EXIF.FOCUS.DISTANCE) - EXIF odak uzaklığı" -#: ../src/gui/gtkentry.c:219 +#: ../src/gui/gtkentry.c:222 msgid "$(EXIF.MAKER) - camera maker" msgstr "$(EXIF.MAKER) - kamera üreticisi" -#: ../src/gui/gtkentry.c:220 +#: ../src/gui/gtkentry.c:223 msgid "$(EXIF.MODEL) - camera model" msgstr "$(EXIF.MODEL) - kamera modeli" -#: ../src/gui/gtkentry.c:221 +#: ../src/gui/gtkentry.c:224 msgid "$(EXIF.LENS) - lens" msgstr "$(EXIF.LENS) - mercek" -#: ../src/gui/gtkentry.c:222 +#: ../src/gui/gtkentry.c:225 msgid "$(LONGITUDE) - longitude" msgstr "$(LONGITUDE) - boylam" -#: ../src/gui/gtkentry.c:223 +#: ../src/gui/gtkentry.c:226 msgid "$(LATITUDE) - latitude" msgstr "$(LATITUDE) - enlem" -#: ../src/gui/gtkentry.c:224 +#: ../src/gui/gtkentry.c:227 msgid "$(ELEVATION) - elevation" msgstr "$(ELEVATION) - yükseklik" -#: ../src/gui/gtkentry.c:225 +#: ../src/gui/gtkentry.c:228 msgid "$(STARS) - star rating as number (-1 for rejected)" msgstr "$(STARS) - sayı olarak yıldız derecelendirmesi (reddedilenler için -1)" -#: ../src/gui/gtkentry.c:226 +#: ../src/gui/gtkentry.c:229 msgid "$(RATING.ICONS) - star/reject rating in icon form" msgstr "$(RATING.ICONS) - simge biçiminde yıldız/reddetme puanı" -#: ../src/gui/gtkentry.c:227 +#: ../src/gui/gtkentry.c:230 msgid "$(LABELS) - color labels as text" msgstr "$(LABELS) - metin olarak renkli etiketler" -#: ../src/gui/gtkentry.c:228 +#: ../src/gui/gtkentry.c:231 msgid "$(LABELS.ICONS) - color labels as icons" msgstr "$(LABELS.ICONS) - simgeler olarak renkli etiketler" -#: ../src/gui/gtkentry.c:229 +#: ../src/gui/gtkentry.c:232 msgid "$(ID) - image ID" msgstr "$(ID) - görüntü kimliği" -#: ../src/gui/gtkentry.c:230 +#: ../src/gui/gtkentry.c:233 msgid "$(TITLE) - title from metadata" msgstr "$(TITLE) - üst verilerden başlık" -#: ../src/gui/gtkentry.c:231 +#: ../src/gui/gtkentry.c:234 msgid "$(DESCRIPTION) - description from metadata" msgstr "$(DESCRIPTION) - üst verilerden açıklama" -#: ../src/gui/gtkentry.c:232 +#: ../src/gui/gtkentry.c:235 msgid "$(CREATOR) - creator from metadata" msgstr "$(CREATOR) - üst verilerden içerik oluşturucu" -#: ../src/gui/gtkentry.c:233 +#: ../src/gui/gtkentry.c:236 msgid "$(PUBLISHER) - publisher from metadata" msgstr "$(PUBLISHER) - üst verilerden yayıncı" -#: ../src/gui/gtkentry.c:234 +#: ../src/gui/gtkentry.c:237 msgid "$(RIGHTS) - rights from metadata" msgstr "$(RIGHTS) - üst verilerden gelen haklar" -#: ../src/gui/gtkentry.c:235 +#: ../src/gui/gtkentry.c:238 msgid "$(USERNAME) - login name" msgstr "$(USERNAME) - oturum açma adı" -#: ../src/gui/gtkentry.c:236 +#: ../src/gui/gtkentry.c:239 msgid "$(FOLDER.PICTURES) - pictures folder" msgstr "$(FOLDER.PICTURES) - resimler klasörü" -#: ../src/gui/gtkentry.c:237 +#: ../src/gui/gtkentry.c:240 msgid "$(FOLDER.HOME) - home folder" msgstr "$(FOLDER.HOME) - ana klasör" -#: ../src/gui/gtkentry.c:238 +#: ../src/gui/gtkentry.c:241 msgid "$(FOLDER.DESKTOP) - desktop folder" msgstr "$(FOLDER.DESKTOP) - masaüstü klasörü" -#: ../src/gui/gtkentry.c:239 +#: ../src/gui/gtkentry.c:242 msgid "$(OPENCL.ACTIVATED) - whether OpenCL is activated" msgstr "$(OPENCL.ACTIVATED) - OpenCL'nin etkinleştirilip etkinleştirilmediği" -#: ../src/gui/gtkentry.c:240 +#: ../src/gui/gtkentry.c:243 msgid "$(CATEGORY0(category)) - subtag of level 0 in hierarchical tags" msgstr "$(CATEGORY0(category)) - hiyerarşik etiketlerde seviye 0 alt etiketi" -#: ../src/gui/gtkentry.c:241 +#: ../src/gui/gtkentry.c:244 msgid "$(TAGS) - tags as set in metadata settings" msgstr "$(TAGS) - üst veri ayarlarında ayarlandığı şekliyle etiketler" -#: ../src/gui/gtkentry.c:242 +#: ../src/gui/gtkentry.c:245 msgid "$(DARKTABLE.NAME) - darktable name" msgstr "$(DARKTABLE.NAME) - darktable adı" -#: ../src/gui/gtkentry.c:243 +#: ../src/gui/gtkentry.c:246 msgid "$(DARKTABLE.VERSION) - current darktable version" msgstr "$(DARKTABLE.VERSION) - mevcut darktable sürümü" -#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:255 +#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:248 msgid "grid" msgstr "ızgara" @@ -10659,11 +11170,11 @@ msgstr "genel kılavuz yer paylaşımı ayarları" #: ../src/gui/guides.c:710 ../src/gui/guides.c:719 ../src/gui/guides.c:727 -#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2648 +#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2494 msgid "guide lines" msgstr "kılavuz çizgiler" -#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2092 +#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2145 msgid "flip" msgstr "çevir" @@ -10679,8 +11190,8 @@ msgid "vertically" msgstr "dikey olarak" -#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6285 ../src/iop/clipping.c:2096 -#: ../src/iop/colorbalance.c:1917 +#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6232 ../src/iop/clipping.c:2149 +#: ../src/iop/colorbalance.c:1892 msgid "both" msgstr "ikisi birden" @@ -10729,26 +11240,26 @@ msgid "select parts to paste" msgstr "yapıştırılacak parçaları seçin" -#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:517 +#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:524 msgid "select _all" msgstr "he_psini seç" -#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:518 +#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:525 msgid "select _none" msgstr "seçimlerden va_zgeç" -#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:593 -#: ../src/gui/styles_dialog.c:615 +#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:605 +#: ../src/gui/styles_dialog.c:627 msgid "include" msgstr "dahil et" -#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:669 -#: ../src/gui/styles_dialog.c:675 +#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:681 +#: ../src/gui/styles_dialog.c:687 msgid "item" msgstr "öğe" -#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:682 -#: ../src/gui/styles_dialog.c:691 +#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:694 +#: ../src/gui/styles_dialog.c:703 msgid "mask" msgstr "maske" @@ -10802,11 +11313,11 @@ msgid "interface language" msgstr "arayüz dili" -#: ../src/gui/preferences.c:289 +#: ../src/gui/preferences.c:290 msgid "double-click to reset to the system language" msgstr "sistem diline sıfırlamak için çift tıklayın" -#: ../src/gui/preferences.c:291 +#: ../src/gui/preferences.c:292 msgid "" "set the language of the user interface. the system default is marked with an " "* (needs a restart)" @@ -10814,27 +11325,27 @@ "kullanıcı arayüzünün dilini ayarlayın. sistem varsayılanı * ile " "işaretlenmiştir (yeniden başlatılması gerekir)" -#: ../src/gui/preferences.c:300 +#: ../src/gui/preferences.c:301 msgid "theme" msgstr "tema" -#: ../src/gui/preferences.c:328 +#: ../src/gui/preferences.c:331 msgid "set the theme for the user interface" msgstr "kullanıcı arayüzü için temayı ayarlayın" -#: ../src/gui/preferences.c:341 ../src/gui/preferences.c:348 +#: ../src/gui/preferences.c:344 ../src/gui/preferences.c:351 msgid "use system font size" msgstr "sistem yazı tipi boyutunu kullan" -#: ../src/gui/preferences.c:357 ../src/gui/preferences.c:364 +#: ../src/gui/preferences.c:360 ../src/gui/preferences.c:367 msgid "font size in points" msgstr "punto olarak yazı tipi boyutu" -#: ../src/gui/preferences.c:369 +#: ../src/gui/preferences.c:372 msgid "GUI controls and text DPI" msgstr "Arayüz kontrolleri ve metin DPI" -#: ../src/gui/preferences.c:376 +#: ../src/gui/preferences.c:379 msgid "" "adjust the global GUI resolution to rescale controls, buttons, labels, etc.\n" "increase for a magnified GUI, decrease to fit more content in window.\n" @@ -10851,82 +11362,66 @@ "(yeniden başlatma gerekir)." #. checkbox to allow user to modify theme with user.css -#: ../src/gui/preferences.c:385 +#: ../src/gui/preferences.c:388 msgid "modify selected theme with CSS tweaks below" msgstr "aşağıdaki CSS tweaks ile seçilen temayı değiştirin" -#: ../src/gui/preferences.c:393 +#: ../src/gui/preferences.c:396 msgid "modify theme with CSS keyed below (saved to user.css)" msgstr "" "temayı aşağıda anahtarlanan CSS ile değiştirin (user.css dosyasına " "kaydedilir)" -#: ../src/gui/preferences.c:415 +#: ../src/gui/preferences.c:418 msgctxt "usercss" msgid "save CSS and apply" msgstr "CSS'yi kaydedin ve uygulayın" -#: ../src/gui/preferences.c:420 +#: ../src/gui/preferences.c:423 msgid "click to save and apply the CSS tweaks entered in this editor" msgstr "" "bu düzenleyicide girilen CSS ince ayarlarını kaydetmek ve uygulamak için " "tıklayın" -#: ../src/gui/preferences.c:422 +#: ../src/gui/preferences.c:425 msgid "open help page for CSS tweaks" msgstr "CSS ince ayarları için yardım sayfasını aç" #. load default text with some pointers -#: ../src/gui/preferences.c:443 +#: ../src/gui/preferences.c:446 msgid "ERROR Loading user.css" msgstr "HATA user.css yükleniyor" #. load default text -#: ../src/gui/preferences.c:452 +#: ../src/gui/preferences.c:455 msgid "Enter CSS theme tweaks here" msgstr "CSS tema ayarlarını buraya girin" -#: ../src/gui/preferences.c:488 +#: ../src/gui/preferences.c:491 msgid "darktable preferences" msgstr "darktable tercihleri" -#: ../src/gui/preferences.c:533 -msgid "processing" -msgstr "işleme" - -#: ../src/gui/preferences.c:534 -msgid "security" -msgstr "güvenlik" - -#: ../src/gui/preferences.c:535 -msgid "storage" -msgstr "depolama" - -#: ../src/gui/preferences.c:536 -msgid "miscellaneous" -msgstr "çeşitli" - -#: ../src/gui/preferences.c:561 +#: ../src/gui/preferences.c:559 msgid "darktable needs to be restarted for settings to take effect" msgstr "" "ayarların etkili olması için darktable`nin yeniden başlatılması gerekiyor" #. exif -#: ../src/gui/preferences.c:820 ../src/gui/presets.c:644 -#: ../src/libs/metadata_view.c:137 +#: ../src/gui/preferences.c:818 ../src/gui/presets.c:647 +#: ../src/libs/metadata_view.c:139 msgid "model" msgstr "model" -#: ../src/gui/preferences.c:824 ../src/gui/presets.c:652 -#: ../src/libs/metadata_view.c:138 +#: ../src/gui/preferences.c:822 ../src/gui/presets.c:655 +#: ../src/libs/metadata_view.c:140 msgid "maker" msgstr "üretici" -#: ../src/gui/preferences.c:861 +#: ../src/gui/preferences.c:859 msgid "search presets list" msgstr "ön ayar listesini ara" -#: ../src/gui/preferences.c:862 +#: ../src/gui/preferences.c:860 msgid "" "incrementally search the list of presets\n" "press up or down keys to cycle through matches" @@ -10934,70 +11429,70 @@ "ön ayar listesini aşamalı olarak ara\n" "eşleşmeler arasında geçiş yapmak için yukarı veya aşağı tuşlarına basın" -#: ../src/gui/preferences.c:868 +#: ../src/gui/preferences.c:866 msgctxt "preferences" msgid "import..." msgstr "içe aktar..." -#: ../src/gui/preferences.c:872 +#: ../src/gui/preferences.c:870 msgctxt "preferences" msgid "export..." msgstr "dışa aktar..." -#: ../src/gui/preferences.c:1031 +#: ../src/gui/preferences.c:1030 #, c-format msgid "failed to import preset %s" msgstr "%s ön ayarı içe aktarılamadı" -#: ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1041 msgid "select preset(s) to import" msgstr "içe aktarılacak ön ayar(lar)ı seçin" -#: ../src/gui/preferences.c:1043 ../src/libs/collect.c:408 -#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:929 -#: ../src/libs/import.c:1506 ../src/libs/import.c:1610 ../src/libs/styles.c:527 +#: ../src/gui/preferences.c:1042 ../src/libs/collect.c:425 +#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:930 +#: ../src/libs/import.c:1515 ../src/libs/import.c:1619 ../src/libs/styles.c:529 msgid "_open" msgstr "_aç" -#: ../src/gui/preferences.c:1052 +#: ../src/gui/preferences.c:1051 msgid "darktable preset files" msgstr "darktable ön ayar dosyaları" -#: ../src/gui/preferences.c:1057 ../src/iop/lut3d.c:1577 -#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:945 -#: ../src/libs/styles.c:541 +#: ../src/gui/preferences.c:1056 ../src/iop/lut3d.c:1591 +#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:946 +#: ../src/libs/styles.c:543 msgid "all files" msgstr "tüm dosyalar" -#: ../src/gui/presets.c:59 +#: ../src/gui/presets.c:61 msgid "non-raw" msgstr "raw-olmayan" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:332 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:336 msgid "raw" msgstr "raw" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:333 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:337 msgid "HDR" msgstr "HDR" -#: ../src/gui/presets.c:59 ../src/iop/monochrome.c:77 ../src/libs/image.c:608 -#: ../src/libs/metadata_view.c:339 +#: ../src/gui/presets.c:61 ../src/iop/monochrome.c:77 ../src/libs/image.c:679 +#: ../src/libs/metadata_view.c:343 msgid "monochrome" msgstr "tek renkli" -#: ../src/gui/presets.c:151 +#: ../src/gui/presets.c:153 #, c-format msgid "preset `%s' is write-protected, can't delete!" msgstr "`%s' ön ayarı yazmaya karşı korumalıdır, silinemez!" -#: ../src/gui/presets.c:157 ../src/gui/presets.c:461 ../src/libs/lib.c:238 -#: ../src/libs/modulegroups.c:3701 +#: ../src/gui/presets.c:159 ../src/gui/presets.c:463 ../src/libs/lib.c:238 +#: ../src/libs/modulegroups.c:3703 msgid "delete preset?" msgstr "ön ayar silinsin mi?" -#: ../src/gui/presets.c:158 ../src/gui/presets.c:462 ../src/libs/lib.c:239 -#: ../src/libs/modulegroups.c:3702 +#: ../src/gui/presets.c:160 ../src/gui/presets.c:464 ../src/libs/lib.c:239 +#: ../src/libs/modulegroups.c:3704 #, c-format msgid "do you really want to delete the preset `%s'?" msgstr "`%s' ön ayarını gerçekten silmek istiyor musunuz?" @@ -11008,25 +11503,25 @@ #. clang-format on #. create a shortcut for the new entry #. then show edit dialog -#: ../src/gui/presets.c:200 ../src/gui/presets.c:1035 ../src/gui/presets.c:1038 -#: ../src/gui/presets.c:1041 ../src/libs/lib.c:188 ../src/libs/lib.c:205 +#: ../src/gui/presets.c:202 ../src/gui/presets.c:1022 ../src/gui/presets.c:1025 +#: ../src/gui/presets.c:1028 ../src/libs/lib.c:188 ../src/libs/lib.c:205 #: ../src/libs/lib.c:213 ../src/libs/lib.c:216 msgid "new preset" msgstr "yeni ön ayar" -#: ../src/gui/presets.c:207 +#: ../src/gui/presets.c:209 msgid "please give preset a name" msgstr "lütfen ön ayara bir ad verin" -#: ../src/gui/presets.c:212 +#: ../src/gui/presets.c:214 msgid "unnamed preset" msgstr "adsız ön ayar" -#: ../src/gui/presets.c:241 +#: ../src/gui/presets.c:243 msgid "overwrite preset?" msgstr "ön ayarın üzerine yazılsın mı?" -#: ../src/gui/presets.c:242 +#: ../src/gui/presets.c:244 #, c-format msgid "" "preset `%s' already exists.\n" @@ -11035,38 +11530,43 @@ "`%s' ön ayarı zaten var.\n" "üzerine yazmak ister misin?" -#: ../src/gui/presets.c:420 ../src/imageio/storage/disk.c:123 -#: ../src/imageio/storage/gallery.c:110 ../src/imageio/storage/latex.c:109 +#: ../src/gui/presets.c:422 ../src/imageio/storage/disk.c:198 +#: ../src/imageio/storage/gallery.c:150 ../src/imageio/storage/latex.c:146 msgid "_select as output destination" msgstr "_çıktı hedefi olarak seçin" -#: ../src/gui/presets.c:429 +#: ../src/gui/presets.c:431 #, c-format msgid "preset %s was successfully exported" msgstr "%s ön ayarı başarıyla dışa aktarıldı" -#: ../src/gui/presets.c:557 +#: ../src/gui/presets.c:559 #, c-format msgid "edit `%s' for module `%s'" msgstr "'%s' modülü için '%s'yi düzenle" -#: ../src/gui/presets.c:561 +#: ../src/gui/presets.c:563 msgid "_export..." msgstr "dı_şa aktar..." -#: ../src/gui/presets.c:585 +#: ../src/gui/presets.c:564 ../src/libs/tagging.c:1489 +#: ../src/libs/tagging.c:1580 +msgid "_delete" +msgstr "_sil" + +#: ../src/gui/presets.c:588 msgid "name of the preset" msgstr "ön ayar adı" -#: ../src/gui/presets.c:594 +#: ../src/gui/presets.c:597 msgid "description or further information" msgstr "açıklama veya daha fazla bilgi" -#: ../src/gui/presets.c:598 +#: ../src/gui/presets.c:601 msgid "reset all module parameters to their default values" msgstr "tüm modül parametrelerini varsayılan değerlerine sıfırlayın" -#: ../src/gui/presets.c:601 +#: ../src/gui/presets.c:604 msgid "" "the parameters will be reset to their default values, which may be " "automatically set based on image metadata" @@ -11074,41 +11574,41 @@ "parametreler, görüntü üst verilerine göre otomatik olarak ayarlanabilen " "varsayılan değerlerine sıfırlanacaktır" -#: ../src/gui/presets.c:607 +#: ../src/gui/presets.c:610 msgid "auto apply this preset to matching images" msgstr "bu ön ayarı eşleşen görüntülere otomatik olarak uygula" -#: ../src/gui/presets.c:611 +#: ../src/gui/presets.c:614 msgid "only show this preset for matching images" msgstr "bu ön ayarı yalnızca eşleşen görüntüler için göster" -#: ../src/gui/presets.c:613 +#: ../src/gui/presets.c:616 msgid "" "be very careful with this option. this might be the last time you see your " "preset." msgstr "" "bu seçeneğe çok dikkat edin. bu, ön ayarınızı son kez görmeniz olabilir." -#: ../src/gui/presets.c:643 +#: ../src/gui/presets.c:646 #, no-c-format msgid "string to match model (use % as wildcard)" msgstr "modelle eşleşecek dize (joker karakter olarak % kullanın)" -#: ../src/gui/presets.c:651 +#: ../src/gui/presets.c:654 #, no-c-format msgid "string to match maker (use % as wildcard)" msgstr "oluşturucuyu eşleştirmek için dize (joker karakter olarak % kullanın)" -#: ../src/gui/presets.c:659 +#: ../src/gui/presets.c:662 #, no-c-format msgid "string to match lens (use % as wildcard)" msgstr "merceği eşleştirmek için dize (joker karakter olarak % kullanın)" -#: ../src/gui/presets.c:669 +#: ../src/gui/presets.c:672 msgid "minimum ISO value" msgstr "asgari ISO değeri" -#: ../src/gui/presets.c:675 +#: ../src/gui/presets.c:678 msgid "" "maximum ISO value\n" "if left blank, it is equivalent to no upper limit" @@ -11116,71 +11616,71 @@ "azami ISO değeri\n" "boş bırakılırsa, üst sınır yok anlamına gelir" -#: ../src/gui/presets.c:688 +#: ../src/gui/presets.c:691 msgid "minimum exposure time" msgstr "asgari pozlama süresi" -#: ../src/gui/presets.c:689 +#: ../src/gui/presets.c:692 msgid "maximum exposure time" msgstr "azami pozlama süresi" -#: ../src/gui/presets.c:705 +#: ../src/gui/presets.c:708 msgid "minimum aperture value" msgstr "asgari diyafram değeri" -#: ../src/gui/presets.c:706 +#: ../src/gui/presets.c:709 msgid "maximum aperture value" msgstr "azami diyafram değeri" -#: ../src/gui/presets.c:724 +#: ../src/gui/presets.c:727 msgid "minimum focal length" msgstr "asgari odak uzaklığı" -#: ../src/gui/presets.c:725 +#: ../src/gui/presets.c:728 msgid "maximum focal length" msgstr "azami odak uzaklığı" #. raw/hdr/ldr/mono/color -#: ../src/gui/presets.c:733 ../src/imageio/format/j2k.c:650 +#: ../src/gui/presets.c:736 msgid "format" msgstr "biçim" -#: ../src/gui/presets.c:738 +#: ../src/gui/presets.c:741 msgid "select image types you want this preset to be available for" msgstr "" "bu ön ayarın kullanılabilir olmasını istediğiniz görüntü türlerini seçin" -#: ../src/gui/presets.c:751 ../src/libs/filtering.c:1201 +#: ../src/gui/presets.c:754 ../src/libs/filtering.c:1263 msgid "and" msgstr "ve" -#: ../src/gui/presets.c:795 ../src/gui/presets.c:847 +#: ../src/gui/presets.c:798 ../src/gui/presets.c:850 msgid "∞" msgstr "∞" -#: ../src/gui/presets.c:979 +#: ../src/gui/presets.c:966 #, c-format msgid "preset `%s' is write-protected! can't edit it!" msgstr "`%s' ön ayarı yazmaya karşı korumalıdır! düzenleyemiyorum!" -#: ../src/gui/presets.c:1003 ../src/libs/lib.c:158 +#: ../src/gui/presets.c:990 ../src/libs/lib.c:158 msgid "update preset?" msgstr "ön ayar güncellensin mi?" -#: ../src/gui/presets.c:1004 ../src/libs/lib.c:159 +#: ../src/gui/presets.c:991 ../src/libs/lib.c:159 #, c-format msgid "do you really want to update the preset `%s'?" msgstr "`%s' ön ayarını gerçekten güncellemek istiyor musunuz?" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(first)" msgstr "(ilk)" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(last)" msgstr "(son)" -#: ../src/gui/presets.c:1165 +#: ../src/gui/presets.c:1152 #, c-format msgid "" "preset %s\n" @@ -11189,63 +11689,63 @@ "%s ön ayarı\n" "%s" -#: ../src/gui/presets.c:1166 +#: ../src/gui/presets.c:1153 msgid "no presets" msgstr "ön ayar yok" -#: ../src/gui/presets.c:1199 ../src/iop/basecurve.c:528 -#: ../src/iop/basecurve.c:532 ../src/iop/basecurve.c:535 +#: ../src/gui/presets.c:1188 ../src/iop/basecurve.c:575 +#: ../src/iop/basecurve.c:579 ../src/iop/basecurve.c:582 msgid "display-referred default" msgstr "ekran referanslı varsayılan" -#: ../src/gui/presets.c:1201 ../src/iop/channelmixerrgb.c:332 -#: ../src/iop/channelmixerrgb.c:336 ../src/iop/channelmixerrgb.c:339 -#: ../src/iop/exposure.c:297 ../src/iop/exposure.c:301 -#: ../src/iop/exposure.c:304 ../src/iop/filmicrgb.c:3248 -#: ../src/iop/filmicrgb.c:3252 ../src/iop/filmicrgb.c:3255 -#: ../src/iop/sigmoid.c:134 ../src/iop/sigmoid.c:138 ../src/iop/sigmoid.c:141 +#: ../src/gui/presets.c:1190 ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:400 ../src/iop/channelmixerrgb.c:403 +#: ../src/iop/exposure.c:319 ../src/iop/exposure.c:323 +#: ../src/iop/exposure.c:326 ../src/iop/filmicrgb.c:3311 +#: ../src/iop/filmicrgb.c:3315 ../src/iop/filmicrgb.c:3318 +#: ../src/iop/sigmoid.c:240 ../src/iop/sigmoid.c:243 ../src/iop/sigmoid.c:245 msgid "scene-referred default" msgstr "sahne referanslı varsayılan" -#: ../src/gui/presets.c:1393 ../src/libs/modulegroups.c:3781 -#: ../src/libs/modulegroups.c:3790 +#: ../src/gui/presets.c:1394 ../src/libs/modulegroups.c:3783 +#: ../src/libs/modulegroups.c:3792 msgid "manage module layouts" msgstr "modül düzenlerini yönet" -#: ../src/gui/presets.c:1402 +#: ../src/gui/presets.c:1403 msgid "manage quick presets" msgstr "hızlı ön ayarları yönet" -#: ../src/gui/presets.c:1586 +#: ../src/gui/presets.c:1587 msgid "manage quick presets list..." msgstr "hızlı ön ayar listesini yönet..." -#: ../src/gui/presets.c:1727 +#: ../src/gui/presets.c:1728 msgid "(default)" msgstr "(öntanımlı)" -#: ../src/gui/presets.c:1754 +#: ../src/gui/presets.c:1755 msgid "disabled: wrong module version" msgstr "devre dışı: yanlış modül sürümü" -#: ../src/gui/presets.c:1776 ../src/libs/lib.c:551 +#: ../src/gui/presets.c:1777 ../src/libs/lib.c:551 msgid "edit this preset.." msgstr "bu ön ayarı düzenle.." -#: ../src/gui/presets.c:1781 ../src/libs/lib.c:555 +#: ../src/gui/presets.c:1782 ../src/libs/lib.c:555 msgid "delete this preset" msgstr "bu ön ayarı sil" -#: ../src/gui/presets.c:1788 ../src/libs/lib.c:563 +#: ../src/gui/presets.c:1789 ../src/libs/lib.c:563 msgid "store new preset.." msgstr "yeni ön ayarı kaydet.." -#: ../src/gui/presets.c:1796 ../src/libs/lib.c:576 +#: ../src/gui/presets.c:1797 ../src/libs/lib.c:576 msgid "update preset" msgstr "ön ayarı güncelle" #: ../src/gui/styles_dialog.c:221 ../src/libs/styles.c:437 -#: ../src/libs/styles.c:620 +#: ../src/libs/styles.c:622 msgid "overwrite style?" msgstr "tarzın üzerine yazılsınmı?" @@ -11271,39 +11771,39 @@ msgid "style %s was successfully saved" msgstr "tarz %s başarıyla kaydedildi" -#: ../src/gui/styles_dialog.c:505 +#: ../src/gui/styles_dialog.c:512 msgid "edit style" msgstr "tarzı düzenle" -#: ../src/gui/styles_dialog.c:506 +#: ../src/gui/styles_dialog.c:513 msgid "duplicate style" msgstr "yinelenen tarz" -#: ../src/gui/styles_dialog.c:507 +#: ../src/gui/styles_dialog.c:514 msgid "creates a duplicate of the style before applying changes" msgstr "değişiklikleri uygulamadan önce tarzın bir kopyasını oluşturur" -#: ../src/gui/styles_dialog.c:511 +#: ../src/gui/styles_dialog.c:518 msgid "create new style" msgstr "yeni tarz oluştur" -#: ../src/gui/styles_dialog.c:549 +#: ../src/gui/styles_dialog.c:557 msgid "enter a name for the new style" msgstr "yeni tarz için bir ad girin" -#: ../src/gui/styles_dialog.c:554 +#: ../src/gui/styles_dialog.c:565 msgid "enter a description for the new style, this description is searchable" msgstr "yeni tarz için bir açıklama girin, bu açıklama aranabilir" -#: ../src/gui/styles_dialog.c:593 +#: ../src/gui/styles_dialog.c:605 msgid "keep" msgstr "tut" -#: ../src/gui/styles_dialog.c:820 +#: ../src/gui/styles_dialog.c:832 msgid "can't create style out of unaltered image" msgstr "değiştirilmemiş görüntüden tarz oluşturulamıyor" -#: ../src/imageio/imageio.c:804 +#: ../src/imageio/imageio.c:816 #, c-format msgid "" "failed to allocate memory for %s, please lower the threads used for export " @@ -11312,92 +11812,116 @@ "%s için bellek ayrılamadı, lütfen dışa aktarma için kullanılan dizileri " "azaltın veya daha fazla bellek satın alın." -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "thumbnail export" msgstr "küçük görüntüyü dışa aktar" -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "export" msgstr "dışa aktar" -#: ../src/imageio/imageio.c:819 +#: ../src/imageio/imageio.c:831 #, c-format msgid "cannot find the style '%s' to apply during export." msgstr "dışa aktarma sırasında uygulanacak '%s' tarzı bulamıyor." -#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:536 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/imageio_libraw.c:295 +msgid "" +"<span foreground='red'><b>WARNING</b></span>: camera is not fully supported!" +msgstr "" +"<span foreground='red'><b>UYARI</b></span>: kamera tam olarak desteklenmiyor!" + +#: ../src/imageio/imageio_libraw.c:297 +#, c-format +msgid "" +"colors for `%s' could be misrepresented,\n" +"and edits might not be compatible with future versions." +msgstr "" +"`%s' için renkler yanlış temsil edilmiş olabilir,\n" +"ve düzenlemeler gelecekteki sürümlerle uyumlu olmayabilir." + +#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:641 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "8 bit" msgstr "8 Bit" -#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:567 msgid "10 bit" msgstr "10 bit" -#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:567 msgid "12 bit" msgstr "12 bit" -#: ../src/imageio/format/avif.c:431 +#: ../src/imageio/format/avif.c:110 ../src/imageio/format/webp.c:416 +msgid "lossless" +msgstr "kayıpsız" + +#: ../src/imageio/format/avif.c:112 ../src/imageio/format/webp.c:416 +msgid "lossy" +msgstr "kayıplı" + +#: ../src/imageio/format/avif.c:463 msgid "invalid AVIF bit depth!" msgstr "geçersiz AVIF bit derinliği!" -#: ../src/imageio/format/avif.c:694 -msgid "AVIF" -msgstr "AVIF" - #. Bit depth combo box -#: ../src/imageio/format/avif.c:766 ../src/imageio/format/exr.cc:565 -#: ../src/imageio/format/jxl.c:555 ../src/imageio/format/pdf.c:661 -#: ../src/imageio/format/png.c:534 ../src/imageio/format/tiff.c:843 +#: ../src/imageio/format/avif.c:800 ../src/imageio/format/exr.cc:601 +#: ../src/imageio/format/jxl.c:566 ../src/imageio/format/pdf.c:661 +#: ../src/imageio/format/png.c:639 ../src/imageio/format/tiff.c:900 #: ../src/imageio/format/xcf.c:354 msgid "bit depth" msgstr "bit derinliği" -#: ../src/imageio/format/avif.c:779 +#: ../src/imageio/format/avif.c:813 msgid "color information stored in an image, higher is better" msgstr "bir görüntüde saklanan renk bilgisi ne kadar yüksekse o kadar iyidir" -#: ../src/imageio/format/avif.c:787 +#. +#. * Color mode combo box +#. +#. shortfile option combo box +#: ../src/imageio/format/avif.c:820 ../src/imageio/format/tiff.c:944 +msgid "B&W as grayscale" +msgstr "Gri tonlamalı olarak S&B" + +#: ../src/imageio/format/avif.c:821 ../src/imageio/format/tiff.c:945 msgid "saving as grayscale will reduce the size for black & white images" msgstr "" "gri tonlamalı olarak kaydetmek, siyah beyaz görüntülerin boyutunu küçültür" -#: ../src/imageio/format/avif.c:789 -msgid "RGB colors" -msgstr "RGB renkleri" - -#: ../src/imageio/format/avif.c:789 -msgid "grayscale" -msgstr "gri tonlu" - #. #. * Tiling combo box #. -#: ../src/imageio/format/avif.c:799 +#: ../src/imageio/format/avif.c:832 msgid "tiling" msgstr "döşeme" -#: ../src/imageio/format/avif.c:800 +#: ../src/imageio/format/avif.c:833 msgid "" "tile an image into segments.\n" "\n" -"makes encoding faster. the impact on quality reduction is negligible, but " -"increases the file size." +"makes encoding faster, but increases the file size. the loss of image " +"quality is negligible." msgstr "" -"bir görüntüyü parçalara ayırın.\n" +"bir görüntüyü bölümlere ayırın.\n" "\n" -"kodlamayı daha hızlı hale getirir. kalite düşüşü üzerindeki etkisi ihmal " -"edilebilir, ancak dosya boyutunu artırır." +"kodlamayı hızlandırır ancak dosya boyutunu artırır. görüntü kalitesi kaybı " +"ihmal edilebilir düzeydedir." -#: ../src/imageio/format/avif.c:817 ../src/imageio/format/webp.c:383 -msgid "compression type" -msgstr "sıkıştırma tipi" +#. compression +#. Compression method combo box +#: ../src/imageio/format/avif.c:850 ../src/imageio/format/exr.cc:611 +#: ../src/imageio/format/pdf.c:676 ../src/imageio/format/png.c:653 +#: ../src/imageio/format/tiff.c:923 ../src/imageio/format/webp.c:414 +#: ../src/libs/masks.c:111 +msgid "compression" +msgstr "sıkıştırma" -#: ../src/imageio/format/avif.c:825 +#: ../src/imageio/format/avif.c:858 msgid "the compression for the image" msgstr "görüntü sıkıştırma" @@ -11406,36 +11930,28 @@ #. step #. default #. digits -#: ../src/imageio/format/avif.c:842 ../src/imageio/format/j2k.c:661 -#: ../src/imageio/format/jpeg.c:587 ../src/imageio/format/jxl.c:579 -#: ../src/imageio/format/webp.c:394 ../src/libs/camera.c:564 +#: ../src/imageio/format/avif.c:878 ../src/imageio/format/j2k.c:679 +#: ../src/imageio/format/jpeg.c:584 ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/webp.c:425 ../src/libs/camera.c:564 msgid "quality" msgstr "kalite" -#: ../src/imageio/format/avif.c:847 +#: ../src/imageio/format/avif.c:881 msgid "" "the quality of an image, less quality means fewer details.\n" "\n" -"the following applies only to lossy setting\n" -"\n" -"pixelformat based on quality:\n" +"pixel format is controlled by quality:\n" "\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" msgstr "" -"bir görüntünün kalitesi, daha az kalite, daha az ayrıntı anlamına gelir.\n" +"görüntünün kalitesi, daha az kalite, daha az ayrıntı anlamına gelir.\n" "\n" -"aşağıdakiler yalnızca kayıplı ayar için geçerlidir\n" +"piksel formatı kaliteye göre kontrol edilir:\n" "\n" -"kaliteye dayalı piksel formatı:\n" -"\n" -" % 91 - % 100 -> YUV444\n" -" % 81 - % 90 -> YUV422\n" -" % 5 - % 80 -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" #: ../src/imageio/format/copy.c:109 ../src/libs/copy_history.c:370 -#: ../src/libs/image.c:583 +#: ../src/libs/image.c:647 msgid "copy" msgstr "kopyala" @@ -11451,120 +11967,140 @@ msgid "the selected output profile doesn't work well with EXR" msgstr "seçilen çıktı profili EXR ile iyi çalışmıyor" -#: ../src/imageio/format/exr.cc:540 +#: ../src/imageio/format/exr.cc:576 msgid "OpenEXR" msgstr "OpenEXR" -#: ../src/imageio/format/exr.cc:567 +#: ../src/imageio/format/exr.cc:603 msgid "16 bit (float)" msgstr "16 bit (yüzer)" -#: ../src/imageio/format/exr.cc:567 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/format/exr.cc:603 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "32 bit (float)" msgstr "32 bit (yüzer)" -#. compression -#. Compression method combo box -#: ../src/imageio/format/exr.cc:575 ../src/imageio/format/pdf.c:676 -#: ../src/imageio/format/png.c:548 ../src/imageio/format/tiff.c:866 -#: ../src/libs/masks.c:110 -msgid "compression" -msgstr "sıkıştırma" - -#: ../src/imageio/format/exr.cc:577 ../src/imageio/format/pdf.c:682 -#: ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/exr.cc:613 ../src/imageio/format/pdf.c:682 +#: ../src/imageio/format/tiff.c:924 msgid "uncompressed" msgstr "sıkıştırılmamış" -#: ../src/imageio/format/exr.cc:578 +#: ../src/imageio/format/exr.cc:614 msgid "RLE" msgstr "RLE" -#: ../src/imageio/format/exr.cc:579 +#: ../src/imageio/format/exr.cc:615 msgid "ZIPS" msgstr "ZIPS" -#: ../src/imageio/format/exr.cc:580 +#: ../src/imageio/format/exr.cc:616 msgid "ZIP" msgstr "ZİP" -#: ../src/imageio/format/exr.cc:581 +#: ../src/imageio/format/exr.cc:617 msgid "PIZ" msgstr "PIZ" -#: ../src/imageio/format/exr.cc:582 +#: ../src/imageio/format/exr.cc:618 msgid "PXR24" msgstr "PXR24" -#: ../src/imageio/format/exr.cc:583 +#: ../src/imageio/format/exr.cc:619 msgid "B44" msgstr "B44" -#: ../src/imageio/format/exr.cc:584 +#: ../src/imageio/format/exr.cc:620 msgid "B44A" msgstr "B44A" -#: ../src/imageio/format/exr.cc:585 +#: ../src/imageio/format/exr.cc:621 msgid "DWAA" msgstr "DWAA" -#: ../src/imageio/format/exr.cc:586 +#: ../src/imageio/format/exr.cc:622 msgid "DWAB" msgstr "DWAB" -#: ../src/imageio/format/j2k.c:618 +#: ../src/imageio/format/j2k.c:648 msgid "JPEG 2000 (12-bit)" msgstr "JPEG 2000 (12-bit)" -#: ../src/imageio/format/j2k.c:652 -msgid "jp2" -msgstr "jp2" - -#: ../src/imageio/format/j2k.c:667 +#: ../src/imageio/format/j2k.c:684 msgid "DCP mode" msgstr "DCP modu" -#: ../src/imageio/format/j2k.c:670 +#: ../src/imageio/format/j2k.c:687 msgid "Cinema2K, 24FPS" msgstr "Sinema2K, 24FPS" -#: ../src/imageio/format/j2k.c:671 +#: ../src/imageio/format/j2k.c:688 msgid "Cinema2K, 48FPS" msgstr "Sinema2K, 48FPS" -#: ../src/imageio/format/j2k.c:672 +#: ../src/imageio/format/j2k.c:689 msgid "Cinema4K, 24FPS" msgstr "Sinema4K, 24FPS" -#: ../src/imageio/format/jpeg.c:564 +#: ../src/imageio/format/jpeg.c:546 msgid "JPEG (8-bit)" msgstr "JPEG (8-bit)" -#: ../src/imageio/format/jxl.c:471 -msgid "JPEG XL" -msgstr "JPEG XL" +#: ../src/imageio/format/jpeg.c:594 +msgid "chroma subsampling" +msgstr "renk alt örneklemesi" + +#: ../src/imageio/format/jpeg.c:595 +msgid "" +"chroma subsampling setting for JPEG encoder.\n" +"auto - use subsampling determined by the quality value\n" +"4:4:4 - no chroma subsampling\n" +"4:4:0 - color sampling rate halved vertically\n" +"4:2:2 - color sampling rate halved horizontally\n" +"4:2:0 - color sampling rate halved horizontally and vertically" +msgstr "" +"JPEG kodlayıcı için kroma alt örnekleme ayarı.\n" +"otomatik - kalite değerine göre belirlenen alt örneklemeyi kullanın\n" +"4:4:4 - renk alt örneklemesi yok\n" +"4:4:0 - renk örnekleme oranı dikey olarak yarıya indi\n" +"4:2:2 - renk örnekleme oranı yatay olarak yarıya indirildi\n" +"4:2:0 - renk örnekleme oranı yatay ve dikey olarak yarıya indi" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:4" +msgstr "4:4:4" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:0" +msgstr "4:4:0" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:2" +msgstr "4:2:2" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:0" +msgstr "4:2:0" -#: ../src/imageio/format/jxl.c:556 ../src/imageio/format/pdf.c:81 -#: ../src/imageio/format/png.c:536 ../src/imageio/format/tiff.c:847 +#: ../src/imageio/format/jxl.c:567 ../src/imageio/format/pdf.c:81 +#: ../src/imageio/format/png.c:641 ../src/imageio/format/tiff.c:904 #: ../src/imageio/format/xcf.c:357 msgid "16 bit" msgstr "16 Bit" #. Pixel format combo box -#: ../src/imageio/format/jxl.c:562 ../src/imageio/format/tiff.c:852 +#: ../src/imageio/format/jxl.c:573 ../src/imageio/format/tiff.c:909 msgid "pixel type" msgstr "piksel tipi" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "unsigned integer" -msgstr "İşaretsiz tam sayı" +msgstr "işaretsiz tam sayı" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "floating point" msgstr "kayan nokta" -#: ../src/imageio/format/jxl.c:580 +#: ../src/imageio/format/jxl.c:591 msgid "" "the quality of the output image\n" "0-29 = very lossy\n" @@ -11576,11 +12112,11 @@ "30-99 = Karşılaştırılabilir JPEG kalitesi\n" "100 = kayıpsız (yalnızca tamsayı bit derinliği)" -#: ../src/imageio/format/jxl.c:589 +#: ../src/imageio/format/jxl.c:600 msgid "encoding color profile" msgstr "renk profilini kodlama" -#: ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/jxl.c:601 msgid "" "the color profile used by the encoder\n" "permit internal XYB color space conversion for more efficient lossy " @@ -11594,32 +12130,32 @@ "veya orijinal görüntü renk alanını korumak için dönüştürme olmadığından emin " "olun (kayıpsız anlamına gelir)" -#: ../src/imageio/format/jxl.c:593 +#: ../src/imageio/format/jxl.c:604 msgid "internal" msgstr "dahili" -#: ../src/imageio/format/jxl.c:593 ../src/libs/duplicate.c:399 -#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:782 +#: ../src/imageio/format/jxl.c:604 ../src/libs/duplicate.c:405 +#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:840 msgid "original" msgstr "özgün" -#: ../src/imageio/format/jxl.c:607 +#: ../src/imageio/format/jxl.c:618 msgid "encoding effort" msgstr "kodlama çabası" -#: ../src/imageio/format/jxl.c:608 +#: ../src/imageio/format/jxl.c:619 msgid "" "the effort used to encode the image, higher efforts will have better results " "at the expense of longer encoding times" msgstr "" "Görüntüyü kodlamak için harcanan çaba, daha fazla çaba, daha uzun kodlama " -"süreleri pahasına daha iyi sonuçlara sahip olacaktır." +"süreleri pahasına daha iyi sonuçlara sahip olacaktır" -#: ../src/imageio/format/jxl.c:619 +#: ../src/imageio/format/jxl.c:630 msgid "decoding speed" msgstr "kod çözme hızı" -#: ../src/imageio/format/jxl.c:620 +#: ../src/imageio/format/jxl.c:631 msgid "the preferred decoding speed with some sacrifice of quality" msgstr "kaliteden biraz ödün vererek tercih edilen kod çözme hızı" @@ -11631,9 +12167,9 @@ msgid "invalid border size, using 0" msgstr "0 kullanılarak geçersiz sınır boyutu" -#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:316 -#: ../src/imageio/storage/email.c:137 ../src/imageio/storage/gallery.c:331 -#: ../src/imageio/storage/gallery.c:370 ../src/imageio/storage/piwigo.c:1202 +#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:460 +#: ../src/imageio/storage/email.c:187 ../src/imageio/storage/gallery.c:409 +#: ../src/imageio/storage/gallery.c:450 ../src/imageio/storage/piwigo.c:1236 #, c-format msgid "could not export to file `%s'!" msgstr "`%s' dosyasına aktarılamadı!" @@ -11687,8 +12223,8 @@ "örnekler: 10 mm, 1 inç" #. dpi -#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1127 -#: ../src/libs/export.c:1150 +#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1218 +#: ../src/libs/export.c:1246 msgid "dpi" msgstr "dpi" @@ -11750,7 +12286,7 @@ "sıkıştırılmamış -- hızlı ama büyük dosyalar\n" "sönük -- daha küçük dosyalar ama daha yavaş" -#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:924 msgid "deflate" msgstr "sönük" @@ -11781,60 +12317,23 @@ msgid "debug" msgstr "hata ayıklayıcı" -#: ../src/imageio/format/pfm.c:120 -msgid "PFM" -msgstr "PFM" - -#: ../src/imageio/format/png.c:493 -msgid "PNG" -msgstr "PNG" - #: ../src/imageio/format/ppm.c:111 msgid "PPM (16-bit)" msgstr "PPM (16-bit)" -#: ../src/imageio/format/tiff.c:228 -msgid "will export as a grayscale image" -msgstr "gri tonlamalı bir görüntü olarak dışa aktarılacak" +#: ../src/imageio/format/tiff.c:246 +msgid "not a B&W image, will not export as grayscale" +msgstr "Siyah-Beyaz resim değil, gri tonlamalı olarak dışa aktarılmayacak" -#: ../src/imageio/format/tiff.c:774 -msgid "TIFF" -msgstr "TIFF" - -#: ../src/imageio/format/tiff.c:868 +#: ../src/imageio/format/tiff.c:925 msgid "deflate with predictor" msgstr "tahmin edici ile söndür" -#: ../src/imageio/format/tiff.c:878 +#: ../src/imageio/format/tiff.c:935 msgid "compression level" msgstr "sıkıştırma seviyesi" -#. shortfile option combo box -#: ../src/imageio/format/tiff.c:887 -msgid "b&w image" -msgstr "s&b görüntü" - -#: ../src/imageio/format/tiff.c:888 -msgid "write RGB colors" -msgstr "RGB renklerini yaz" - -#: ../src/imageio/format/tiff.c:888 -msgid "write grayscale" -msgstr "gri tonlamalı yaz" - -#: ../src/imageio/format/webp.c:349 -msgid "WebP" -msgstr "WebP" - -#: ../src/imageio/format/webp.c:385 -msgid "lossy" -msgstr "kayıplı" - -#: ../src/imageio/format/webp.c:385 -msgid "lossless" -msgstr "kayıpsız" - -#: ../src/imageio/format/webp.c:397 +#: ../src/imageio/format/webp.c:426 msgid "" "for lossy, 0 gives the smallest size and 100 the best quality.\n" "for lossless, 0 is the fastest but gives larger files compared\n" @@ -11845,11 +12344,11 @@ "verir\n" "en yavaş 100'e." -#: ../src/imageio/format/webp.c:407 +#: ../src/imageio/format/webp.c:436 msgid "image hint" msgstr "görüntü ipucu" -#: ../src/imageio/format/webp.c:408 +#: ../src/imageio/format/webp.c:437 msgid "" "image characteristics hint for the underlying encoder.\n" "picture: digital picture, like portrait, inner shot\n" @@ -11861,15 +12360,15 @@ "fotoğraf: doğal aydınlatma ile dış mekan fotoğrafı\n" "grafik : ayrık tonlu görüntü (grafik, harita döşemesi vb.)" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "picture" msgstr "resim" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "photo" msgstr "fotoğraf" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "graphic" msgstr "grafik" @@ -11877,12 +12376,12 @@ msgid "XCF" msgstr "XCF" -#: ../src/imageio/storage/disk.c:71 ../src/libs/export.c:1040 +#: ../src/imageio/storage/disk.c:74 ../src/libs/export.c:1119 msgid "file on disk" msgstr "dosya diskin içinde" -#: ../src/imageio/storage/disk.c:169 ../src/imageio/storage/gallery.c:155 -#: ../src/imageio/storage/latex.c:154 +#: ../src/imageio/storage/disk.c:251 ../src/imageio/storage/gallery.c:204 +#: ../src/imageio/storage/latex.c:191 msgid "" "enter the path where to put exported images\n" "variables support bash like string manipulation\n" @@ -11892,53 +12391,63 @@ "değişkenler, dize manipülasyonu gibi bash'ı destekler\n" "tamamlamayı etkinleştirmek ve değişkenlerin listesini görmek için '$(' yazın" -#: ../src/imageio/storage/disk.c:182 ../src/imageio/storage/piwigo.c:1079 +#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/piwigo.c:1113 msgid "on conflict" msgstr "çakışma üzerine" -#: ../src/imageio/storage/disk.c:185 +#: ../src/imageio/storage/disk.c:268 msgid "create unique filename" msgstr "benzersiz dosya adı oluştur" #. DT_COPY_HISTORY_APPEND -#: ../src/imageio/storage/disk.c:186 ../src/imageio/storage/piwigo.c:1083 -#: ../src/libs/copy_history.c:404 ../src/libs/image.c:601 -#: ../src/libs/styles.c:440 ../src/libs/styles.c:623 ../src/libs/styles.c:850 +#: ../src/imageio/storage/disk.c:269 ../src/imageio/storage/piwigo.c:1117 +#: ../src/libs/copy_history.c:404 ../src/libs/image.c:670 +#: ../src/libs/styles.c:854 msgid "overwrite" msgstr "üzerine yaz" -#: ../src/imageio/storage/disk.c:187 ../src/imageio/storage/piwigo.c:1081 -#: ../src/libs/styles.c:439 ../src/libs/styles.c:622 +#: ../src/imageio/storage/disk.c:270 +msgid "overwrite if changed" +msgstr "değiştirilmişse üzerine yaz" + +#: ../src/imageio/storage/disk.c:271 ../src/imageio/storage/piwigo.c:1115 msgid "skip" msgstr "atla" -#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/gallery.c:253 -#: ../src/imageio/storage/latex.c:252 +#: ../src/imageio/storage/disk.c:371 ../src/imageio/storage/gallery.c:326 +#: ../src/imageio/storage/latex.c:289 #, c-format msgid "could not create directory `%s'!" msgstr "`%s' dizini oluşturulamadı!" -#: ../src/imageio/storage/disk.c:272 +#: ../src/imageio/storage/disk.c:382 #, c-format msgid "could not write to directory `%s'!" msgstr "`%s' dizinine yazılamadı!" -#: ../src/imageio/storage/disk.c:302 +#: ../src/imageio/storage/disk.c:419 #, c-format msgid "%d/%d skipping `%s'" msgid_plural "%d/%d skipping `%s'" msgstr[0] "%d/%d `%s' atlanıyor" msgstr[1] "%d/%d `%s' atlanıyor" -#: ../src/imageio/storage/disk.c:321 ../src/imageio/storage/email.c:144 -#: ../src/imageio/storage/gallery.c:378 ../src/imageio/storage/latex.c:340 +#: ../src/imageio/storage/disk.c:441 +#, c-format +msgid "%d/%d skipping (not modified since export) `%s'" +msgid_plural "%d/%d skipping (not modified since export) `%s'" +msgstr[0] "%d/%d atlanıyor (dışa aktarıldığından beri değiştirilmedi) `%s'" +msgstr[1] "%d/%d atlanıyor (dışa aktarıldığından beri değiştirilmedi) `%s'" + +#: ../src/imageio/storage/disk.c:465 ../src/imageio/storage/email.c:194 +#: ../src/imageio/storage/gallery.c:458 ../src/imageio/storage/latex.c:377 #, c-format msgid "%d/%d exported to `%s'" msgid_plural "%d/%d exported to `%s'" msgstr[0] "%d/%d `%s' dizinine aktarıldı" msgstr[1] "%d/%d `%s' dizinine aktarıldı" -#: ../src/imageio/storage/disk.c:380 +#: ../src/imageio/storage/disk.c:530 msgid "" "you are going to export in overwrite mode, this will overwrite any existing " "images\n" @@ -11950,23 +12459,33 @@ "\n" "gerçekten devam etmek istiyor musun?" -#: ../src/imageio/storage/email.c:52 +#: ../src/imageio/storage/email.c:57 msgid "send as email" msgstr "e-posta ile gönder" -#: ../src/imageio/storage/email.c:198 +#. Unlikely in normal Windows installations, but let's notify the user if it happens +#: ../src/imageio/storage/email.c:265 +msgid "could not open mapi32.dll" +msgstr "mapi32.dll açılamadı" + +#. Even more unlikely +#: ../src/imageio/storage/email.c:275 +msgid "could not get SendMail function" +msgstr "Posta Gönder işlevi alınamadı" + +#: ../src/imageio/storage/email.c:319 ../src/imageio/storage/email.c:409 msgid "images exported from darktable" msgstr "darktable'dan dışa aktarılan görüntüler" -#: ../src/imageio/storage/email.c:251 +#: ../src/imageio/storage/email.c:388 ../src/imageio/storage/email.c:467 msgid "could not launch email client!" msgstr "e-posta istemcisi başlatılamadı!" -#: ../src/imageio/storage/gallery.c:73 +#: ../src/imageio/storage/gallery.c:76 msgid "website gallery" msgstr "site galerisi" -#: ../src/imageio/storage/gallery.c:171 +#: ../src/imageio/storage/gallery.c:224 msgid "enter the title of the website" msgstr "web sitesinin başlığını girin" @@ -11974,149 +12493,149 @@ msgid "LaTeX book template" msgstr "LaTeX kitap şablonu" -#: ../src/imageio/storage/latex.c:172 +#: ../src/imageio/storage/latex.c:209 msgid "enter the title of the book" msgstr "kitabın adını girin" -#: ../src/imageio/storage/piwigo.c:522 +#: ../src/imageio/storage/piwigo.c:525 msgid "authenticated" msgstr "kimliği doğrulanmış" -#: ../src/imageio/storage/piwigo.c:532 ../src/imageio/storage/piwigo.c:547 -#: ../src/imageio/storage/piwigo.c:559 +#: ../src/imageio/storage/piwigo.c:536 ../src/imageio/storage/piwigo.c:552 +#: ../src/imageio/storage/piwigo.c:565 msgid "not authenticated" msgstr "kimliği doğrulanmadı" -#: ../src/imageio/storage/piwigo.c:538 +#: ../src/imageio/storage/piwigo.c:542 msgid "not authenticated, cannot reach server" msgstr "kimliği doğrulanmadı, sunucuya erişilemiyor" -#: ../src/imageio/storage/piwigo.c:587 ../src/imageio/storage/piwigo.c:675 +#: ../src/imageio/storage/piwigo.c:595 ../src/imageio/storage/piwigo.c:684 msgid "create new album" msgstr "yeni albüm oluştur" -#: ../src/imageio/storage/piwigo.c:676 +#: ../src/imageio/storage/piwigo.c:685 msgid "---" msgstr "---" -#: ../src/imageio/storage/piwigo.c:721 +#: ../src/imageio/storage/piwigo.c:735 msgid "cannot refresh albums" msgstr "albümler yenilenemiyor" -#: ../src/imageio/storage/piwigo.c:929 +#: ../src/imageio/storage/piwigo.c:950 msgid "Piwigo" msgstr "Piwigo" -#: ../src/imageio/storage/piwigo.c:954 +#: ../src/imageio/storage/piwigo.c:976 msgid "accounts" msgstr "hesaplar" -#: ../src/imageio/storage/piwigo.c:972 ../src/imageio/storage/piwigo.c:978 +#: ../src/imageio/storage/piwigo.c:995 ../src/imageio/storage/piwigo.c:1004 msgid "server" msgstr "sunucu" -#: ../src/imageio/storage/piwigo.c:974 ../src/imageio/storage/piwigo.c:989 +#: ../src/imageio/storage/piwigo.c:998 msgid "" "the server name\n" "default protocol is https\n" -"specify http:// if non secure server" +"specify insecure protocol http:// explicitly if that protocol is required" msgstr "" "sunucu adı\n" "varsayılan protokol https'dir\n" -"güvenli değilse http:// belirtin" +"güvenli olmayan protokol http://'yi açıkça belirtin, eğer bu protokol " +"gerekliyse" -#: ../src/imageio/storage/piwigo.c:987 ../src/imageio/storage/piwigo.c:993 +#: ../src/imageio/storage/piwigo.c:1014 ../src/imageio/storage/piwigo.c:1021 msgid "user" msgstr "kullanıcı" -#: ../src/imageio/storage/piwigo.c:1000 ../src/imageio/storage/piwigo.c:1005 +#: ../src/imageio/storage/piwigo.c:1029 ../src/imageio/storage/piwigo.c:1034 msgid "password" msgstr "parola" #. login button -#: ../src/imageio/storage/piwigo.c:1010 +#: ../src/imageio/storage/piwigo.c:1039 msgid "login" msgstr "oturum aç" -#: ../src/imageio/storage/piwigo.c:1011 +#: ../src/imageio/storage/piwigo.c:1040 msgid "Piwigo login" msgstr "Piwigo giriş" #. permissions list -#: ../src/imageio/storage/piwigo.c:1025 +#: ../src/imageio/storage/piwigo.c:1056 msgid "visible to" msgstr "görünür" -#: ../src/imageio/storage/piwigo.c:1027 +#: ../src/imageio/storage/piwigo.c:1058 msgid "everyone" msgstr "herkes" -#: ../src/imageio/storage/piwigo.c:1028 +#: ../src/imageio/storage/piwigo.c:1059 msgid "contacts" msgstr "kişiler" -#: ../src/imageio/storage/piwigo.c:1029 +#: ../src/imageio/storage/piwigo.c:1060 msgid "friends" msgstr "arkadaşlar" -#: ../src/imageio/storage/piwigo.c:1030 +#: ../src/imageio/storage/piwigo.c:1061 msgid "family" msgstr "aile" -#: ../src/imageio/storage/piwigo.c:1031 +#: ../src/imageio/storage/piwigo.c:1062 msgid "you" msgstr "sen" #. Available albums -#: ../src/imageio/storage/piwigo.c:1038 +#: ../src/imageio/storage/piwigo.c:1069 msgid "album" msgstr "albüm" -#: ../src/imageio/storage/piwigo.c:1045 +#: ../src/imageio/storage/piwigo.c:1076 msgid "refresh album list" msgstr "albüm listesini yenile" #. Album title -#: ../src/imageio/storage/piwigo.c:1063 +#: ../src/imageio/storage/piwigo.c:1096 msgid "new album" msgstr "yeni albüm" -#. parent album list #. Available albums -#: ../src/imageio/storage/piwigo.c:1071 +#: ../src/imageio/storage/piwigo.c:1105 msgid "parent album" msgstr "ebeveyn albümü" -#: ../src/imageio/storage/piwigo.c:1075 +#: ../src/imageio/storage/piwigo.c:1109 msgid "click login button to start" msgstr "başlamak için giriş düğmesine tıklayın" -#: ../src/imageio/storage/piwigo.c:1080 +#: ../src/imageio/storage/piwigo.c:1114 msgid "don't check" msgstr "kontrol etme" -#: ../src/imageio/storage/piwigo.c:1082 +#: ../src/imageio/storage/piwigo.c:1116 msgid "update metadata" msgstr "üst verileri güncelle" -#: ../src/imageio/storage/piwigo.c:1221 +#: ../src/imageio/storage/piwigo.c:1255 msgid "cannot create a new Piwigo album!" msgstr "yeni bir Piwigo albümü oluşturamazsınız!" -#: ../src/imageio/storage/piwigo.c:1240 +#: ../src/imageio/storage/piwigo.c:1274 msgid "could not update to Piwigo!" msgstr "Piwigo'ya güncellenemedi!" -#: ../src/imageio/storage/piwigo.c:1255 +#: ../src/imageio/storage/piwigo.c:1290 msgid "could not upload to Piwigo!" msgstr "Piwigo'ya yüklenemedi!" -#: ../src/imageio/storage/piwigo.c:1284 +#: ../src/imageio/storage/piwigo.c:1319 #, c-format msgid "%d/%d skipped (already exists)" msgstr "%d/%d atlandı (zaten var)" -#: ../src/imageio/storage/piwigo.c:1290 +#: ../src/imageio/storage/piwigo.c:1325 #, c-format msgid "%d/%d exported to Piwigo webalbum" msgid_plural "%d/%d exported to Piwigo webalbum" @@ -12136,54 +12655,54 @@ msgstr "perspektifi döndürmek veya deforme etmek" #: ../src/iop/ashift.c:131 ../src/iop/channelmixer.c:139 -#: ../src/iop/channelmixerrgb.c:232 ../src/iop/clipping.c:320 -#: ../src/iop/colorbalance.c:161 ../src/iop/colorbalancergb.c:185 +#: ../src/iop/channelmixerrgb.c:233 ../src/iop/clipping.c:363 +#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:185 #: ../src/iop/colorchecker.c:130 ../src/iop/colorcorrection.c:77 -#: ../src/iop/crop.c:144 ../src/iop/lut3d.c:141 +#: ../src/iop/crop.c:134 ../src/iop/lut3d.c:142 ../src/iop/primaries.c:80 msgid "corrective or creative" msgstr "düzeltici veya yaratıcı" -#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:148 -#: ../src/iop/bilateral.cc:101 ../src/iop/bilateral.cc:103 -#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:233 -#: ../src/iop/channelmixerrgb.c:235 ../src/iop/clipping.c:321 -#: ../src/iop/clipping.c:323 ../src/iop/colorbalancergb.c:186 -#: ../src/iop/colorin.c:136 ../src/iop/crop.c:145 ../src/iop/crop.c:147 -#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:728 -#: ../src/iop/denoiseprofile.c:730 ../src/iop/diffuse.c:146 +#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:174 +#: ../src/iop/bilateral.cc:103 ../src/iop/bilateral.cc:105 +#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:236 ../src/iop/clipping.c:364 +#: ../src/iop/clipping.c:366 ../src/iop/colorbalancergb.c:186 +#: ../src/iop/colorin.c:136 ../src/iop/crop.c:135 ../src/iop/crop.c:137 +#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:780 +#: ../src/iop/denoiseprofile.c:782 ../src/iop/diffuse.c:146 #: ../src/iop/diffuse.c:148 ../src/iop/exposure.c:132 ../src/iop/exposure.c:134 #: ../src/iop/flip.c:111 ../src/iop/flip.c:112 ../src/iop/hazeremoval.c:113 -#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:242 ../src/iop/lens.cc:244 -#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/retouch.c:210 -#: ../src/iop/retouch.c:212 ../src/iop/sigmoid.c:103 -#: ../src/iop/splittoning.c:104 ../src/iop/splittoning.c:106 -#: ../src/iop/spots.c:70 ../src/iop/spots.c:72 ../src/iop/toneequal.c:325 -#: ../src/iop/velvia.c:106 ../src/iop/velvia.c:108 +#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:263 ../src/iop/lens.cc:265 +#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/primaries.c:81 +#: ../src/iop/primaries.c:83 ../src/iop/retouch.c:210 ../src/iop/retouch.c:212 +#: ../src/iop/sigmoid.c:209 ../src/iop/splittoning.c:106 +#: ../src/iop/splittoning.c:108 ../src/iop/spots.c:70 ../src/iop/spots.c:72 +#: ../src/iop/toneequal.c:333 ../src/iop/velvia.c:99 ../src/iop/velvia.c:101 msgid "linear, RGB, scene-referred" msgstr "doğrusal, RGB, sahne referanslı" -#: ../src/iop/ashift.c:133 ../src/iop/borders.c:200 ../src/iop/clipping.c:322 -#: ../src/iop/crop.c:146 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 +#: ../src/iop/ashift.c:133 ../src/iop/borders.c:325 ../src/iop/clipping.c:365 +#: ../src/iop/crop.c:136 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 msgid "geometric, RGB" msgstr "geometrik, RGB" -#: ../src/iop/ashift.c:2820 +#: ../src/iop/ashift.c:2866 msgid "automatic cropping failed" msgstr "otomatik kırpma başarısız oldu" -#: ../src/iop/ashift.c:3234 ../src/iop/ashift.c:3286 ../src/iop/ashift.c:3334 +#: ../src/iop/ashift.c:3276 ../src/iop/ashift.c:3328 ../src/iop/ashift.c:3375 msgid "data pending - please repeat" msgstr "bekleyen veri - lütfen tekrar edin" -#: ../src/iop/ashift.c:3243 +#: ../src/iop/ashift.c:3285 msgid "could not detect structural data in image" msgstr "görüntüdeki yapısal verileri algılayamadı" -#: ../src/iop/ashift.c:3255 +#: ../src/iop/ashift.c:3297 msgid "could not run outlier removal" msgstr "aykırı değer kaldırma çalıştırılamadı" -#: ../src/iop/ashift.c:3434 +#: ../src/iop/ashift.c:3474 #, c-format msgid "" "not enough structure for automatic correction\n" @@ -12192,41 +12711,41 @@ "otomatik düzeltme için yeterli yapı yok\n" "ilgili her yönde asgari %d satır" -#: ../src/iop/ashift.c:3440 +#: ../src/iop/ashift.c:3480 msgid "automatic correction failed, please correct manually" msgstr "otomatik düzeltme başarısız oldu, lütfen kendiniz düzeltin" -#: ../src/iop/ashift.c:5096 +#: ../src/iop/ashift.c:5077 #, c-format msgid "only %d lines can be saved in parameters" msgstr "parametrelerde sadece %d satır kaydedilebilir" -#: ../src/iop/ashift.c:5201 +#: ../src/iop/ashift.c:5157 #, c-format -msgid "rotation adjusted by %3.1f° to %3.1f°" -msgstr "döndürme %3.1f° ile %3.1f° arasında ayarlandı" +msgid "rotation adjusted by %3.2f° to %3.2f°" +msgstr "dönüş ayarlandı %3.2f° ile %3.2f°" -#: ../src/iop/ashift.c:5852 ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 -#: ../src/iop/ashift.c:5961 +#: ../src/iop/ashift.c:5797 ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 +#: ../src/iop/ashift.c:5906 #, c-format msgid "lens shift (%s)" msgstr "mercek kaydırma (%s)" -#: ../src/iop/ashift.c:6125 +#: ../src/iop/ashift.c:6072 msgid "manual perspective" msgstr "elle ayarlama perspektif" -#: ../src/iop/ashift.c:6170 +#: ../src/iop/ashift.c:6117 msgctxt "section" msgid "perspective" msgstr "perspektif" -#: ../src/iop/ashift.c:6177 ../src/iop/ashift.c:6286 ../src/iop/ashift.c:6288 -#: ../src/iop/ashift.c:6290 +#: ../src/iop/ashift.c:6124 ../src/iop/ashift.c:6233 ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6237 msgid "structure" msgstr "yapı" -#: ../src/iop/ashift.c:6212 +#: ../src/iop/ashift.c:6159 msgid "" "rotate image\n" "right-click and drag to define a horizontal or vertical line by drawing on " @@ -12236,30 +12755,30 @@ "görüntünün üzerini çizerek yatay veya dikey bir çizgi tanımlamak için sağ " "tıklayın ve sürükleyin" -#: ../src/iop/ashift.c:6215 ../src/iop/ashift.c:6217 +#: ../src/iop/ashift.c:6162 ../src/iop/ashift.c:6164 msgid "apply lens shift correction in one direction" msgstr "tek yönde mercek kaydırma düzeltmesi uygula" -#: ../src/iop/ashift.c:6219 +#: ../src/iop/ashift.c:6166 msgid "shear the image along one diagonal" msgstr "görüntüyü bir diyagonal boyunca kırpın" -#: ../src/iop/ashift.c:6220 ../src/iop/clipping.c:2117 +#: ../src/iop/ashift.c:6167 ../src/iop/clipping.c:2170 msgid "automatically crop to avoid black edges" msgstr "siyah kenarlardan kaçınmak için otomatik olarak kırpın" -#: ../src/iop/ashift.c:6221 +#: ../src/iop/ashift.c:6168 msgid "" "lens model of the perspective correction: generic or according to the focal " "length" msgstr "perspektif düzeltmenin mercek modeli: genel veya odak uzaklığına göre" -#: ../src/iop/ashift.c:6224 +#: ../src/iop/ashift.c:6171 msgid "focal length of the lens, default value set from EXIF data if available" msgstr "" "merceğin odak uzaklığı, varsa EXIF verilerinden ayarlanan varsayılan değer" -#: ../src/iop/ashift.c:6227 +#: ../src/iop/ashift.c:6174 msgid "" "crop factor of the camera sensor, default value set from EXIF data if " "available, manual setting is often required" @@ -12267,7 +12786,7 @@ "kamera sensörünün kırpma faktörü, varsa EXIF verilerinden ayarlanan " "varsayılan değer, genellikle elle ayar gereklidir" -#: ../src/iop/ashift.c:6231 +#: ../src/iop/ashift.c:6178 msgid "" "the level of lens dependent correction, set to maximum for full lens " "dependency, set to zero for the generic case" @@ -12275,11 +12794,11 @@ "merceğe bağlı düzeltme seviyesi, tam mercek bağımlılığı için azamiye " "ayarlandı, genel durum için sıfıra ayarlandı" -#: ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6182 msgid "adjust aspect ratio of image by horizontal and vertical scaling" msgstr "yatay ve dikey ölçekleme ile görüntünün en boy oranını ayarlayın" -#: ../src/iop/ashift.c:6237 +#: ../src/iop/ashift.c:6184 msgid "" "automatically correct for vertical perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12289,7 +12808,7 @@ "yalnızca döndürmeye sığdırmak için ctrl+tıklayın\n" "yalnızca mercek kaydırmaya sığdırmak için shift+tıklayın" -#: ../src/iop/ashift.c:6241 +#: ../src/iop/ashift.c:6188 msgid "" "automatically correct for horizontal perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12299,7 +12818,7 @@ "yalnızca döndürmeye sığdırmak için ctrl+tıklayın\n" "yalnızca lens kaydırmaya sığdırmak için shift+tıklayın" -#: ../src/iop/ashift.c:6245 +#: ../src/iop/ashift.c:6192 msgid "" "automatically correct for vertical and horizontal perspective distortions, " "fitting rotation, lens shift in both directions, and shear\n" @@ -12313,7 +12832,7 @@ "yalnızca mercek kaydırmaya sığdırmak için shift+tıklayın\n" "yalnızca döndürme ve mercek kaydırmayı sığdırmak için ctrl+shift+tıklayın" -#: ../src/iop/ashift.c:6252 +#: ../src/iop/ashift.c:6199 msgid "" "automatically analyse line structure in image\n" "ctrl+click for an additional edge enhancement\n" @@ -12325,225 +12844,225 @@ "ek ayrıntı geliştirmesi için shift+tıklayın\n" "her iki yöntemin bir kombinasyonu için ctrl+shift+tıklayın" -#: ../src/iop/ashift.c:6257 +#: ../src/iop/ashift.c:6204 msgid "manually define perspective rectangle" msgstr "perspektif dikdörtgeni elle tanımla" -#: ../src/iop/ashift.c:6258 +#: ../src/iop/ashift.c:6205 msgid "manually draw structure lines" msgstr "yapı çizgilerini elle çiz" -#: ../src/iop/ashift.c:6287 +#: ../src/iop/ashift.c:6234 msgid "rectangle" msgstr "dikdörtgen" -#: ../src/iop/ashift.c:6289 +#: ../src/iop/ashift.c:6236 msgid "lines" msgstr "çizgiler" -#: ../src/iop/ashift.c:6323 ../src/iop/clipping.c:3343 +#: ../src/iop/ashift.c:6270 ../src/iop/clipping.c:3383 #, c-format msgid "[%s] define/rotate horizon" msgstr "[%s] ufku tanımla/döndür" -#: ../src/iop/ashift.c:6326 +#: ../src/iop/ashift.c:6273 #, c-format msgid "[%s on segment] select segment" msgstr "[segmentte %s] segment seç" -#: ../src/iop/ashift.c:6330 +#: ../src/iop/ashift.c:6277 #, c-format msgid "[%s on segment] unselect segment" msgstr "[segmentte %s] segmentin seçimini kaldır" -#: ../src/iop/ashift.c:6334 +#: ../src/iop/ashift.c:6281 #, c-format msgid "[%s] select all segments from zone" msgstr "[%s] bölgeden tüm segmentleri seç" -#: ../src/iop/ashift.c:6338 +#: ../src/iop/ashift.c:6285 #, c-format msgid "[%s] unselect all segments from zone" msgstr "[%s] bölgeden tüm segmentlerin seçimini kaldırın" -#: ../src/iop/atrous.c:123 ../src/iop/atrous.c:1638 +#: ../src/iop/atrous.c:122 ../src/iop/atrous.c:1770 msgid "contrast equalizer" msgstr "kontrast ekolayzır" -#: ../src/iop/atrous.c:128 +#: ../src/iop/atrous.c:127 msgid "sharpness|acutance|local contrast" msgstr "keskinlik|keskinlik|yerel kontrast" -#: ../src/iop/atrous.c:133 +#: ../src/iop/atrous.c:132 msgid "add or remove local contrast, sharpness, acutance" msgstr "yerel kontrast, keskinlik, keskinlik ekleyin veya kaldırın" -#: ../src/iop/atrous.c:134 ../src/iop/bilateral.cc:100 ../src/iop/diffuse.c:145 +#: ../src/iop/atrous.c:133 ../src/iop/bilateral.cc:102 ../src/iop/diffuse.c:145 #: ../src/iop/exposure.c:131 ../src/iop/filmicrgb.c:352 #: ../src/iop/graduatednd.c:146 ../src/iop/negadoctor.c:146 -#: ../src/iop/rgbcurve.c:143 ../src/iop/rgblevels.c:123 ../src/iop/shadhi.c:197 -#: ../src/iop/sigmoid.c:102 ../src/iop/tonecurve.c:211 -#: ../src/iop/toneequal.c:324 +#: ../src/iop/rgbcurve.c:145 ../src/iop/rgblevels.c:125 ../src/iop/shadhi.c:144 +#: ../src/iop/sigmoid.c:209 ../src/iop/tonecurve.c:184 +#: ../src/iop/toneequal.c:332 msgid "corrective and creative" msgstr "düzeltici ve oluşturucu" -#: ../src/iop/atrous.c:135 ../src/iop/atrous.c:137 -#: ../src/iop/colorbalance.c:162 +#: ../src/iop/atrous.c:134 ../src/iop/atrous.c:136 +#: ../src/iop/colorbalance.c:164 msgid "linear, Lab, scene-referred" msgstr "doğrusal, Laboratuar, sahne referanslı" -#: ../src/iop/atrous.c:136 ../src/iop/censorize.c:85 +#: ../src/iop/atrous.c:135 ../src/iop/censorize.c:85 #: ../src/iop/hazeremoval.c:114 msgid "frequential, RGB" msgstr "sık kullanılan, RGB" -#: ../src/iop/atrous.c:727 +#: ../src/iop/atrous.c:799 msgctxt "eq_preset" msgid "coarse" msgstr "kaba" -#: ../src/iop/atrous.c:742 +#: ../src/iop/atrous.c:815 msgid "denoise & sharpen" msgstr "gürültüyü azalt & keskinleştir" -#: ../src/iop/atrous.c:757 +#: ../src/iop/atrous.c:831 msgctxt "atrous" msgid "sharpen" msgstr "keskinleştirme" -#: ../src/iop/atrous.c:772 +#: ../src/iop/atrous.c:847 msgid "denoise chroma" msgstr "gürültü rengi" -#: ../src/iop/atrous.c:787 +#: ../src/iop/atrous.c:863 msgid "denoise" msgstr "gürültü" -#: ../src/iop/atrous.c:803 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:421 +#: ../src/iop/atrous.c:880 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:448 msgid "bloom" msgstr "çiçekler" -#: ../src/iop/atrous.c:818 ../src/iop/bilat.c:169 +#: ../src/iop/atrous.c:896 ../src/iop/bilat.c:186 msgid "clarity" msgstr "netlik" -#: ../src/iop/atrous.c:838 +#: ../src/iop/atrous.c:917 msgid "deblur: large blur, strength 3" msgstr "bulanıklaştırma: büyük bulanıklık, güç 3" -#: ../src/iop/atrous.c:855 +#: ../src/iop/atrous.c:935 msgid "deblur: medium blur, strength 3" msgstr "bulanıklaştırma: orta bulanıklık, güç 3" -#: ../src/iop/atrous.c:871 +#: ../src/iop/atrous.c:952 msgid "deblur: fine blur, strength 3" msgstr "bulanıklaştırma: ince bulanıklık, güç 3" -#: ../src/iop/atrous.c:889 +#: ../src/iop/atrous.c:971 msgid "deblur: large blur, strength 2" msgstr "bulanıklaştırma: büyük bulanıklık, güç 2" -#: ../src/iop/atrous.c:906 +#: ../src/iop/atrous.c:989 msgid "deblur: medium blur, strength 2" msgstr "bulanıklaştırma: orta bulanıklık, güç 2" -#: ../src/iop/atrous.c:922 +#: ../src/iop/atrous.c:1006 msgid "deblur: fine blur, strength 2" msgstr "bulanıklaştırma: ince bulanıklık, güç 2" -#: ../src/iop/atrous.c:940 +#: ../src/iop/atrous.c:1025 msgid "deblur: large blur, strength 1" msgstr "bulanıklaştırma: büyük bulanıklık, güç 1" -#: ../src/iop/atrous.c:957 +#: ../src/iop/atrous.c:1043 msgid "deblur: medium blur, strength 1" msgstr "bulanıklaştırma: ince bulanıklık, güç 1" -#: ../src/iop/atrous.c:973 +#: ../src/iop/atrous.c:1060 msgid "deblur: fine blur, strength 1" msgstr "bulanıklaştırma: ince bulanıklık, güç 1" -#: ../src/iop/atrous.c:1289 ../src/iop/atrous.c:1525 -#: ../src/iop/denoiseprofile.c:3510 ../src/iop/rawdenoise.c:738 +#: ../src/iop/atrous.c:1390 ../src/iop/atrous.c:1639 +#: ../src/iop/denoiseprofile.c:3514 ../src/iop/rawdenoise.c:754 msgid "coarse" msgstr "kaba" -#: ../src/iop/atrous.c:1296 ../src/iop/atrous.c:1526 -#: ../src/iop/denoiseprofile.c:3518 ../src/iop/rawdenoise.c:746 +#: ../src/iop/atrous.c:1397 ../src/iop/atrous.c:1640 +#: ../src/iop/denoiseprofile.c:3522 ../src/iop/rawdenoise.c:762 msgid "fine" msgstr "iyi" -#: ../src/iop/atrous.c:1308 +#: ../src/iop/atrous.c:1409 msgid "contrasty" msgstr "kontrastlı" -#: ../src/iop/atrous.c:1314 ../src/iop/denoiseprofile.c:3532 -#: ../src/iop/rawdenoise.c:760 +#: ../src/iop/atrous.c:1415 ../src/iop/denoiseprofile.c:3536 +#: ../src/iop/rawdenoise.c:776 msgid "noisy" msgstr "gürültülü" #. case atrous_s: -#: ../src/iop/atrous.c:1317 +#: ../src/iop/atrous.c:1418 msgid "bold" msgstr "kalın" -#: ../src/iop/atrous.c:1318 +#: ../src/iop/atrous.c:1419 msgid "dull" msgstr "sıkıcı" -#: ../src/iop/atrous.c:1513 ../src/iop/atrous.c:1564 +#: ../src/iop/atrous.c:1627 ../src/iop/atrous.c:1685 msgid "boost" msgstr "artırma" -#: ../src/iop/atrous.c:1514 +#: ../src/iop/atrous.c:1628 msgid "reduce" msgstr "azaltma" -#: ../src/iop/atrous.c:1515 +#: ../src/iop/atrous.c:1629 msgid "raise" msgstr "yüksek" -#: ../src/iop/atrous.c:1516 +#: ../src/iop/atrous.c:1630 msgid "lower" msgstr "düşük" -#: ../src/iop/atrous.c:1523 +#: ../src/iop/atrous.c:1637 msgid "coarsest" msgstr "en kaba" -#: ../src/iop/atrous.c:1524 +#: ../src/iop/atrous.c:1638 msgid "coarser" msgstr "daha kaba" -#: ../src/iop/atrous.c:1527 +#: ../src/iop/atrous.c:1641 msgid "finer" msgstr "daha ince" -#: ../src/iop/atrous.c:1528 +#: ../src/iop/atrous.c:1642 msgid "finest" msgstr "en iyi" -#: ../src/iop/atrous.c:1586 ../src/libs/export.c:1143 ../src/libs/export.c:1158 +#: ../src/iop/atrous.c:1710 ../src/libs/export.c:1239 ../src/libs/export.c:1255 msgid "x" msgstr "x" -#: ../src/iop/atrous.c:1666 ../src/iop/nlmeans.c:465 +#: ../src/iop/atrous.c:1799 ../src/iop/nlmeans.c:468 msgid "luma" msgstr "parlaklık" -#: ../src/iop/atrous.c:1666 +#: ../src/iop/atrous.c:1800 msgid "change lightness at each feature size" msgstr "her özellik boyutunda açıklığı değiştir" -#: ../src/iop/atrous.c:1667 +#: ../src/iop/atrous.c:1802 msgid "change color saturation at each feature size" msgstr "her özellik boyutunda renk doygunluğunu değiştir" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1804 msgid "edges" msgstr "kenarlar" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1805 msgid "" "change edge halos at each feature size\n" "only changes results of luma and chroma tabs" @@ -12551,97 +13070,97 @@ "her bir özellik boyutunda kenar halelerini değiştir\n" "sadece parlaklık ve renklendirme sekmelerinin sonuçlarını değiştirir" -#: ../src/iop/atrous.c:1679 ../src/iop/colorbalancergb.c:2058 -#: ../src/iop/colorzones.c:2473 ../src/iop/denoiseprofile.c:3743 -#: ../src/iop/filmicrgb.c:4407 ../src/iop/lowlight.c:823 -#: ../src/iop/rawdenoise.c:919 ../src/iop/toneequal.c:3371 +#: ../src/iop/atrous.c:1818 ../src/iop/colorbalancergb.c:2129 +#: ../src/iop/colorzones.c:2732 ../src/iop/denoiseprofile.c:3747 +#: ../src/iop/filmicrgb.c:4471 ../src/iop/lowlight.c:821 +#: ../src/iop/rawdenoise.c:935 ../src/iop/toneequal.c:3424 msgid "graph" msgstr "grafik" -#: ../src/iop/atrous.c:1690 ../src/iop/colorzones.c:2470 +#: ../src/iop/atrous.c:1836 ../src/iop/colorzones.c:2729 msgid "make effect stronger or weaker" msgstr "etkiyi daha güçlü veya daha zayıf yapma" -#: ../src/iop/basecurve.c:213 +#: ../src/iop/basecurve.c:260 msgid "neutral" msgstr "nötr" -#: ../src/iop/basecurve.c:214 +#: ../src/iop/basecurve.c:261 msgid "canon eos like" msgstr "canon eos gibi" -#: ../src/iop/basecurve.c:215 +#: ../src/iop/basecurve.c:262 msgid "canon eos like alternate" msgstr "canon eos gibi alternatif" -#: ../src/iop/basecurve.c:216 +#: ../src/iop/basecurve.c:263 msgid "nikon like" msgstr "nikon gibi" -#: ../src/iop/basecurve.c:217 +#: ../src/iop/basecurve.c:264 msgid "nikon like alternate" msgstr "nikon gibi alternatif" -#: ../src/iop/basecurve.c:218 +#: ../src/iop/basecurve.c:265 msgid "sony alpha like" msgstr "sony alfa gibi" -#: ../src/iop/basecurve.c:219 +#: ../src/iop/basecurve.c:266 msgid "pentax like" msgstr "pentax gibi" -#: ../src/iop/basecurve.c:220 +#: ../src/iop/basecurve.c:267 msgid "ricoh like" msgstr "ricoh gibi" -#: ../src/iop/basecurve.c:221 +#: ../src/iop/basecurve.c:268 msgid "olympus like" msgstr "olympus gibi" -#: ../src/iop/basecurve.c:222 +#: ../src/iop/basecurve.c:269 msgid "olympus like alternate" msgstr "olympus gibi alternatif" -#: ../src/iop/basecurve.c:223 +#: ../src/iop/basecurve.c:270 msgid "panasonic like" msgstr "panasonik gibi" -#: ../src/iop/basecurve.c:224 +#: ../src/iop/basecurve.c:271 msgid "leica like" msgstr "leika gibi" -#: ../src/iop/basecurve.c:225 +#: ../src/iop/basecurve.c:272 msgid "kodak easyshare like" msgstr "kodak kolay paylaşım" -#: ../src/iop/basecurve.c:226 +#: ../src/iop/basecurve.c:273 msgid "konica minolta like" msgstr "konica minolta gibi" -#: ../src/iop/basecurve.c:227 +#: ../src/iop/basecurve.c:274 msgid "samsung like" msgstr "samsung gibi" -#: ../src/iop/basecurve.c:228 +#: ../src/iop/basecurve.c:275 msgid "fujifilm like" msgstr "fujifilm gibi" -#: ../src/iop/basecurve.c:229 +#: ../src/iop/basecurve.c:276 msgid "nokia like" msgstr "nokia gibi" #. clang-format off #. smoother cubic spline curve -#: ../src/iop/basecurve.c:284 ../src/iop/colorzones.c:2495 -#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1173 +#: ../src/iop/basecurve.c:331 ../src/iop/colorzones.c:2763 +#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1195 msgid "cubic spline" msgstr "kübik eğri" -#: ../src/iop/basecurve.c:343 +#: ../src/iop/basecurve.c:390 msgid "base curve" msgstr "taban eğrisi" -#: ../src/iop/basecurve.c:350 +#: ../src/iop/basecurve.c:397 msgid "" "apply a view transform based on personal or camera manufacturer look,\n" "for corrective purposes, to prepare images for display" @@ -12650,65 +13169,65 @@ "uygulamak,\n" "düzeltici amaçlar için, görüntüleri gösterime hazırlamak için" -#: ../src/iop/basecurve.c:352 ../src/iop/cacorrect.c:78 -#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:135 -#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:727 +#: ../src/iop/basecurve.c:399 ../src/iop/cacorrect.c:84 +#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:120 +#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:779 #: ../src/iop/flip.c:110 ../src/iop/hazeremoval.c:112 -#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:73 -#: ../src/iop/invert.c:119 ../src/iop/lens.cc:241 ../src/iop/nlmeans.c:95 -#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:130 -#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:94 ../src/iop/spots.c:69 -#: ../src/iop/temperature.c:212 +#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:75 +#: ../src/iop/invert.c:136 ../src/iop/lens.cc:262 ../src/iop/nlmeans.c:89 +#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:144 +#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:96 ../src/iop/spots.c:69 +#: ../src/iop/temperature.c:220 msgid "corrective" msgstr "düzeltici" -#: ../src/iop/basecurve.c:353 ../src/iop/channelmixer.c:140 -#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:142 +#: ../src/iop/basecurve.c:400 ../src/iop/channelmixer.c:140 +#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:143 #: ../src/iop/negadoctor.c:147 ../src/iop/profile_gamma.c:103 -#: ../src/iop/rgbcurve.c:144 ../src/iop/rgbcurve.c:146 -#: ../src/iop/rgblevels.c:124 ../src/iop/sigmoid.c:105 ../src/iop/soften.c:102 -#: ../src/iop/soften.c:104 +#: ../src/iop/rgbcurve.c:146 ../src/iop/rgbcurve.c:148 +#: ../src/iop/rgblevels.c:126 ../src/iop/sigmoid.c:210 ../src/iop/soften.c:104 +#: ../src/iop/soften.c:106 msgid "linear, RGB, display-referred" msgstr "doğrusal, RGB, ekran referanslı" -#: ../src/iop/basecurve.c:354 ../src/iop/basicadj.c:149 -#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:187 +#: ../src/iop/basecurve.c:401 ../src/iop/basicadj.c:175 +#: ../src/iop/colorbalance.c:165 ../src/iop/colorbalancergb.c:187 #: ../src/iop/dither.c:121 ../src/iop/filmicrgb.c:354 #: ../src/iop/graduatednd.c:148 ../src/iop/negadoctor.c:148 -#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:145 -#: ../src/iop/rgblevels.c:125 ../src/iop/sigmoid.c:104 -#: ../src/iop/vignette.c:161 ../src/iop/watermark.c:379 +#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:147 +#: ../src/iop/rgblevels.c:127 ../src/iop/sigmoid.c:210 +#: ../src/iop/vignette.c:122 ../src/iop/watermark.c:424 msgid "non-linear, RGB" msgstr "doğrusal olmayan, RGB" -#: ../src/iop/basecurve.c:355 ../src/iop/dither.c:120 ../src/iop/dither.c:122 +#: ../src/iop/basecurve.c:402 ../src/iop/dither.c:120 ../src/iop/dither.c:122 #: ../src/iop/filmicrgb.c:355 ../src/iop/graduatednd.c:149 #: ../src/iop/negadoctor.c:149 ../src/iop/profile_gamma.c:105 -#: ../src/iop/rgblevels.c:126 ../src/iop/vignette.c:160 -#: ../src/iop/vignette.c:162 ../src/iop/watermark.c:378 -#: ../src/iop/watermark.c:380 +#: ../src/iop/rgblevels.c:128 ../src/iop/vignette.c:121 +#: ../src/iop/vignette.c:123 ../src/iop/watermark.c:423 +#: ../src/iop/watermark.c:425 msgid "non-linear, RGB, display-referred" msgstr "doğrusal olmayan, RGB, ekran referanslı" -#: ../src/iop/basecurve.c:2184 +#: ../src/iop/basecurve.c:2205 msgid "abscissa: input, ordinate: output. works on RGB channels" msgstr "apsis: girdi, ordinat: çıktı. RGB kanallarında çalışır" -#: ../src/iop/basecurve.c:2190 ../src/iop/basicadj.c:612 -#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1072 -#: ../src/iop/tonecurve.c:1184 +#: ../src/iop/basecurve.c:2211 ../src/iop/basicadj.c:642 +#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1133 +#: ../src/iop/tonecurve.c:1206 msgid "method to preserve colors when applying contrast" msgstr "kontrast uygularken renkleri koruma yöntemi" -#: ../src/iop/basecurve.c:2194 +#: ../src/iop/basecurve.c:2215 msgid "two exposures" msgstr "iki pozlama" -#: ../src/iop/basecurve.c:2195 +#: ../src/iop/basecurve.c:2216 msgid "three exposures" msgstr "üç pozlama" -#: ../src/iop/basecurve.c:2196 +#: ../src/iop/basecurve.c:2217 msgid "" "fuse this image stopped up/down a couple of times with itself, to compress " "high dynamic range. expose for the highlights before use." @@ -12716,53 +13235,52 @@ "yüksek dinamik aralığı sıkıştırmak için bu görüntüyü birkaç kez yukarı/aşağı " "durdurun. Kullanmadan önce öne çıkan noktalara pozlayın." -#: ../src/iop/basecurve.c:2201 +#: ../src/iop/basecurve.c:2222 msgid "how many stops to shift the individual exposures apart" msgstr "bireysel pozları birbirinden ayırmak için kaç durak" -#: ../src/iop/basecurve.c:2210 +#: ../src/iop/basecurve.c:2231 msgid "" "whether to shift exposure up or down (-1: reduce highlight, +1: reduce " "shadows)" msgstr "" "pozlamayı yukarı veya aşağı kaydırma (-1: vurguyu azalt, +1: gölgeleri azalt)" -#: ../src/iop/basecurve.c:2215 ../src/iop/tonecurve.c:1187 +#: ../src/iop/basecurve.c:2236 ../src/iop/tonecurve.c:1209 msgid "scale for graph" msgstr "grafik için ölçek" -#: ../src/iop/basicadj.c:136 +#: ../src/iop/basicadj.c:162 msgid "this module is deprecated. please use the quick access panel instead." msgstr "" "bu modül kullanımdan kaldırılmıştır. lütfen bunun yerine hızlı erişim " "panelini kullanın." -#: ../src/iop/basicadj.c:141 +#: ../src/iop/basicadj.c:167 msgid "basic adjustments" msgstr "temel ayarlamalar" -#: ../src/iop/basicadj.c:146 +#: ../src/iop/basicadj.c:172 msgid "apply usual image adjustments" msgstr "olağan görüntü ayarlamalarını uygula" -#: ../src/iop/basicadj.c:147 ../src/iop/bilat.c:102 ../src/iop/bloom.c:81 -#: ../src/iop/blurs.c:93 ../src/iop/borders.c:198 ../src/iop/censorize.c:83 -#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:97 -#: ../src/iop/colorize.c:105 ../src/iop/colormapping.c:153 -#: ../src/iop/colorzones.c:145 ../src/iop/grain.c:434 ../src/iop/highpass.c:78 -#: ../src/iop/levels.c:138 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 -#: ../src/iop/lowpass.c:134 ../src/iop/monochrome.c:98 ../src/iop/soften.c:101 -#: ../src/iop/splittoning.c:103 ../src/iop/velvia.c:105 -#: ../src/iop/vibrance.c:95 ../src/iop/vignette.c:159 -#: ../src/iop/watermark.c:377 +#: ../src/iop/basicadj.c:173 ../src/iop/bilat.c:83 ../src/iop/bloom.c:81 +#: ../src/iop/blurs.c:93 ../src/iop/borders.c:323 ../src/iop/censorize.c:83 +#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:89 +#: ../src/iop/colorize.c:98 ../src/iop/colormapping.c:153 +#: ../src/iop/colorzones.c:146 ../src/iop/grain.c:450 ../src/iop/highpass.c:78 +#: ../src/iop/levels.c:140 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 +#: ../src/iop/lowpass.c:106 ../src/iop/monochrome.c:100 ../src/iop/soften.c:103 +#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:98 ../src/iop/vibrance.c:97 +#: ../src/iop/vignette.c:120 ../src/iop/watermark.c:422 msgid "creative" msgstr "oluşturucu" -#: ../src/iop/basicadj.c:150 ../src/iop/colorbalancergb.c:188 +#: ../src/iop/basicadj.c:176 ../src/iop/colorbalancergb.c:188 msgid "non-linear, RGB, scene-referred" msgstr "doğrusal olmayan, RGB, sahne referanslı" -#: ../src/iop/basicadj.c:593 +#: ../src/iop/basicadj.c:623 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -12775,39 +13293,39 @@ "kötü ayarlanmışsa, gamut dışında siyaha yakın renkleri keser\n" "RGB değerlerini negatiflere iterek" -#: ../src/iop/basicadj.c:601 ../src/iop/exposure.c:1118 +#: ../src/iop/basicadj.c:631 ../src/iop/exposure.c:1136 msgid "adjust the exposure correction" msgstr "pozlama düzeltmesini ayarla" -#: ../src/iop/basicadj.c:605 +#: ../src/iop/basicadj.c:635 msgid "highlight compression adjustment" msgstr "vurgu sıkıştırma ayarı" -#: ../src/iop/basicadj.c:609 ../src/iop/colisa.c:308 +#: ../src/iop/basicadj.c:639 ../src/iop/colisa.c:302 msgid "contrast adjustment" msgstr "kontrast ayarı" -#: ../src/iop/basicadj.c:617 +#: ../src/iop/basicadj.c:647 msgid "middle gray adjustment" msgstr "orta gri ayarı" -#: ../src/iop/basicadj.c:622 ../src/iop/colisa.c:309 +#: ../src/iop/basicadj.c:652 ../src/iop/colisa.c:303 msgid "brightness adjustment" msgstr "parlaklık ayarı" -#: ../src/iop/basicadj.c:625 +#: ../src/iop/basicadj.c:655 msgid "saturation adjustment" msgstr "doygunluk ayarı" -#: ../src/iop/basicadj.c:628 +#: ../src/iop/basicadj.c:658 msgid "vibrance adjustment" msgstr "titreşim ayarı" -#: ../src/iop/basicadj.c:632 +#: ../src/iop/basicadj.c:662 msgid "apply auto exposure based on the entire image" msgstr "görüntünün tamamına göre otomatik pozlama uygula" -#: ../src/iop/basicadj.c:639 +#: ../src/iop/basicadj.c:669 msgid "" "apply auto exposure based on a region defined by the user\n" "click and drag to draw the area\n" @@ -12817,51 +13335,51 @@ "alanı çizmek için tıklayın ve sürükleyin\n" "iptal etmek için sağ tıklayın" -#: ../src/iop/basicadj.c:647 +#: ../src/iop/basicadj.c:677 msgid "clip" msgstr "klip" -#: ../src/iop/basicadj.c:649 +#: ../src/iop/basicadj.c:679 msgid "adjusts clipping value for auto exposure calculation" msgstr "otomatik pozlama hesaplaması için kırpma değerini ayarlar" #. local contrast -#: ../src/iop/bilat.c:96 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:551 +#: ../src/iop/bilat.c:77 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:578 msgid "local contrast" msgstr "yerel kontrast" -#: ../src/iop/bilat.c:101 +#: ../src/iop/bilat.c:82 msgid "manipulate local and global contrast separately" msgstr "yerel ve genel kontrastı ayrı ayrı manipüle edin" -#: ../src/iop/bilat.c:103 ../src/iop/bilat.c:105 ../src/iop/bloom.c:82 +#: ../src/iop/bilat.c:84 ../src/iop/bilat.c:86 ../src/iop/bloom.c:82 #: ../src/iop/bloom.c:84 ../src/iop/colisa.c:91 ../src/iop/colisa.c:93 -#: ../src/iop/colorcontrast.c:98 ../src/iop/colorcontrast.c:100 +#: ../src/iop/colorcontrast.c:90 ../src/iop/colorcontrast.c:92 #: ../src/iop/colorcorrection.c:78 ../src/iop/colorcorrection.c:80 -#: ../src/iop/colorize.c:108 ../src/iop/colormapping.c:156 -#: ../src/iop/colorreconstruction.c:138 ../src/iop/colorzones.c:148 -#: ../src/iop/defringe.c:85 ../src/iop/grain.c:435 ../src/iop/grain.c:437 -#: ../src/iop/levels.c:141 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 -#: ../src/iop/monochrome.c:101 ../src/iop/nlmeans.c:96 ../src/iop/nlmeans.c:98 -#: ../src/iop/shadhi.c:200 ../src/iop/tonecurve.c:214 ../src/iop/vibrance.c:98 +#: ../src/iop/colorize.c:101 ../src/iop/colormapping.c:156 +#: ../src/iop/colorreconstruction.c:123 ../src/iop/colorzones.c:149 +#: ../src/iop/defringe.c:85 ../src/iop/grain.c:451 ../src/iop/grain.c:453 +#: ../src/iop/levels.c:143 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 +#: ../src/iop/monochrome.c:103 ../src/iop/nlmeans.c:90 ../src/iop/nlmeans.c:92 +#: ../src/iop/shadhi.c:147 ../src/iop/tonecurve.c:187 ../src/iop/vibrance.c:100 msgid "non-linear, Lab, display-referred" msgstr "doğrusal olmayan, Laboratuar, ekran referanslı" -#: ../src/iop/bilat.c:104 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 -#: ../src/iop/colorcontrast.c:99 ../src/iop/colorcorrection.c:79 -#: ../src/iop/colorize.c:107 ../src/iop/colormapping.c:155 -#: ../src/iop/colorreconstruction.c:137 ../src/iop/colorzones.c:147 -#: ../src/iop/defringe.c:84 ../src/iop/grain.c:436 ../src/iop/levels.c:140 -#: ../src/iop/monochrome.c:100 ../src/iop/nlmeans.c:97 ../src/iop/shadhi.c:199 -#: ../src/iop/tonecurve.c:213 ../src/iop/vibrance.c:97 +#: ../src/iop/bilat.c:85 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 +#: ../src/iop/colorcontrast.c:91 ../src/iop/colorcorrection.c:79 +#: ../src/iop/colorize.c:100 ../src/iop/colormapping.c:155 +#: ../src/iop/colorreconstruction.c:122 ../src/iop/colorzones.c:148 +#: ../src/iop/defringe.c:84 ../src/iop/grain.c:452 ../src/iop/levels.c:142 +#: ../src/iop/monochrome.c:102 ../src/iop/nlmeans.c:91 ../src/iop/shadhi.c:146 +#: ../src/iop/tonecurve.c:186 ../src/iop/vibrance.c:99 msgid "non-linear, Lab" msgstr "doğrusal olmayan, Laboratuvar" -#: ../src/iop/bilat.c:178 +#: ../src/iop/bilat.c:195 msgid "HDR local tone-mapping" msgstr "HDR yerel ton eşleme" -#: ../src/iop/bilat.c:431 +#: ../src/iop/bilat.c:441 msgid "" "the filter used for local contrast enhancement. bilateral is faster but can " "lead to artifacts around edges for extreme settings." @@ -12869,32 +13387,32 @@ "yerel kontrast geliştirme için kullanılan filtre. iki taraflı daha hızlıdır " "ancak aşırı ayarlar için kenarlarda eserlere yol açabilir." -#: ../src/iop/bilat.c:435 ../src/iop/globaltonemap.c:635 +#: ../src/iop/bilat.c:445 ../src/iop/globaltonemap.c:668 msgid "detail" msgstr "ayrıntı" -#: ../src/iop/bilat.c:438 +#: ../src/iop/bilat.c:448 msgid "changes the local contrast" msgstr "yerel kontrastı değiştirir" -#: ../src/iop/bilat.c:453 +#: ../src/iop/bilat.c:463 msgid "feature size of local details (spatial sigma of bilateral filter)" msgstr "" "yerel ayrıntıların özellik boyutu (iki taraflı filtrenin uzamsal sigma)" -#: ../src/iop/bilat.c:461 +#: ../src/iop/bilat.c:471 msgid "L difference to detect edges (range sigma of bilateral filter)" msgstr "Kenarları algılamak için L farkı (iki taraflı filtrenin aralık sigma)" -#: ../src/iop/bilat.c:467 +#: ../src/iop/bilat.c:477 msgid "changes the local contrast of highlights" msgstr "vurguların yerel kontrastını değiştirir" -#: ../src/iop/bilat.c:473 +#: ../src/iop/bilat.c:483 msgid "changes the local contrast of shadows" msgstr "gölgelerin yerel kontrastını değiştirir" -#: ../src/iop/bilat.c:479 +#: ../src/iop/bilat.c:489 msgid "" "defines what counts as mid-tones. lower for better dynamic range compression " "(reduce shadow and highlight contrast), increase for more powerful local " @@ -12904,7 +13422,7 @@ "sıkıştırması için daha düşük (gölge ve vurgu kontrastını azaltın), daha " "güçlü yerel kontrast için artırın" -#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:396 +#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:423 msgid "surface blur" msgstr "yüzey bulandırma" @@ -12912,24 +13430,24 @@ msgid "denoise (bilateral filter)" msgstr "gürültü (ikili filtre)" -#: ../src/iop/bilateral.cc:99 +#: ../src/iop/bilateral.cc:101 msgid "apply edge-aware surface blur to denoise or smoothen textures" msgstr "" "dokuları yumuşatmak veya yumuşatmak için kenara duyarlı yüzey bulanıklığı " "uygulayın" -#: ../src/iop/bilateral.cc:102 ../src/iop/blurs.c:93 -#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:729 -#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/soften.c:103 -#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:107 +#: ../src/iop/bilateral.cc:104 ../src/iop/blurs.c:93 +#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:781 +#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/primaries.c:82 +#: ../src/iop/soften.c:105 ../src/iop/splittoning.c:107 ../src/iop/velvia.c:100 msgid "linear, RGB" msgstr "doğrusal, RGB" -#: ../src/iop/bilateral.cc:136 +#: ../src/iop/bilateral.cc:138 msgid "image too large" msgstr "görüntü çok büyük" -#: ../src/iop/bilateral.cc:137 +#: ../src/iop/bilateral.cc:139 msgid "" "this module is unable to process\n" "images with more than 2 gigapixels.\n" @@ -12939,19 +13457,19 @@ "2'den fazla gigapiksel içeren görüntüler.\n" "işleme atlandı." -#: ../src/iop/bilateral.cc:351 +#: ../src/iop/bilateral.cc:353 msgid "spatial extent of the gaussian" msgstr "gauss'un uzaysal boyutu" -#: ../src/iop/bilateral.cc:355 +#: ../src/iop/bilateral.cc:357 msgid "how much to blur red" msgstr "kırmızıyı bulanıklaştırmak ne kadar" -#: ../src/iop/bilateral.cc:360 +#: ../src/iop/bilateral.cc:362 msgid "how much to blur green" msgstr "yeşili bulanıklaştırmak ne kadar" -#: ../src/iop/bilateral.cc:365 +#: ../src/iop/bilateral.cc:367 msgid "how much to blur blue" msgstr "maviyi bulanıklaştırmak ne kadar" @@ -12959,20 +13477,20 @@ msgid "apply Orton effect for a dreamy aetherical look" msgstr "rüya gibi eterik bir görünüm için Orton efektini uygulayın" -#: ../src/iop/bloom.c:368 ../src/iop/soften.c:369 ../src/libs/camera.c:567 -#: ../src/libs/masks.c:105 +#: ../src/iop/bloom.c:364 ../src/iop/soften.c:364 ../src/libs/camera.c:567 +#: ../src/libs/masks.c:106 msgid "size" msgstr "boyut" -#: ../src/iop/bloom.c:370 +#: ../src/iop/bloom.c:366 msgid "the size of bloom" msgstr "çiçek boyutu" -#: ../src/iop/bloom.c:374 +#: ../src/iop/bloom.c:370 msgid "the threshold of light" msgstr "ışık eşiği" -#: ../src/iop/bloom.c:378 +#: ../src/iop/bloom.c:374 msgid "the strength of bloom" msgstr "çiçek gücü" @@ -12988,266 +13506,275 @@ msgid "simulate physically-accurate lens and motion blurs" msgstr "fiziksel olarak doğru mercek ve hareket bulanıklığını benzetin" -#: ../src/iop/borders.c:187 +#: ../src/iop/borders.c:312 msgid "framing" msgstr "çerçeveleme" -#: ../src/iop/borders.c:192 +#: ../src/iop/borders.c:317 msgid "borders|enlarge canvas|expand canvas" msgstr "kenarlıklar|tuvali büyüt|tuvali genişlet" -#: ../src/iop/borders.c:197 +#: ../src/iop/borders.c:322 msgid "add solid borders or margins around the picture" msgstr "resmin etrafına düz kenarlıklar veya kenar boşlukları ekleyin" -#: ../src/iop/borders.c:199 ../src/iop/borders.c:201 ../src/iop/lut3d.c:144 +#: ../src/iop/borders.c:324 ../src/iop/borders.c:326 ../src/iop/lut3d.c:145 msgid "linear or non-linear, RGB, display-referred" msgstr "doğrusal veya doğrusal olmayan, RGB, ekran referanslı" -#: ../src/iop/borders.c:727 +#: ../src/iop/borders.c:737 msgid "15:10 postcard white" msgstr "15:10 kartpostal beyaz" -#: ../src/iop/borders.c:732 +#: ../src/iop/borders.c:742 msgid "15:10 postcard black" msgstr "15:10 kartpostal siyah" -#: ../src/iop/borders.c:942 -msgid "size of the border in percent of the full image" -msgstr "tam görüntünün yüzdesi olarak kenarlığın boyutu" +#: ../src/iop/borders.c:948 +msgid "which dimension to use for the size calculation" +msgstr "boyut hesaplaması için hangi boyutun kullanılacağı" + +#: ../src/iop/borders.c:954 +msgid "size of the border in percent of the chosen basis" +msgstr "seçilen esasa göre yüzde olarak sınırın boyutu" -#: ../src/iop/borders.c:944 ../src/iop/clipping.c:2218 ../src/iop/crop.c:1224 +#: ../src/iop/borders.c:956 ../src/iop/clipping.c:2271 ../src/iop/crop.c:1208 msgid "aspect" msgstr "en boy" -#: ../src/iop/borders.c:945 +#: ../src/iop/borders.c:957 msgid "" -"select the aspect ratio (right click on slider below to type your own w:h)" +"select the aspect ratio\n" +"(right click on slider below to type your own w:h)" msgstr "" -"en boy oranını seçin (kendi w:h'nizi yazmak için aşağıdaki kaydırıcıya sağ " -"tıklayın)" +"en boy oranını seçin\n" +"(kendi w:h'nizi yazmak için aşağıdaki kaydırıcıya sağ tıklayın)" -#: ../src/iop/borders.c:948 +#: ../src/iop/borders.c:961 msgid "3:1" msgstr "3:1" -#: ../src/iop/borders.c:949 +#: ../src/iop/borders.c:962 msgid "95:33" msgstr "95:33" -#: ../src/iop/borders.c:950 +#: ../src/iop/borders.c:963 msgid "CinemaScope 2.39:1" msgstr "SinemaSkop 2.39:1" -#: ../src/iop/borders.c:951 +#: ../src/iop/borders.c:964 msgid "2:1" msgstr "2:1" -#: ../src/iop/borders.c:952 +#: ../src/iop/borders.c:965 msgid "16:9" msgstr "16:9" -#: ../src/iop/borders.c:953 +#: ../src/iop/borders.c:966 msgid "5:3" msgstr "5:3" -#: ../src/iop/borders.c:954 +#: ../src/iop/borders.c:967 msgid "US Legal 8.5x14" msgstr "ABD Yasal 8,5x14" -#: ../src/iop/borders.c:955 ../src/iop/clipping.c:2131 ../src/iop/crop.c:1128 +#: ../src/iop/borders.c:968 ../src/iop/clipping.c:2184 ../src/iop/crop.c:1112 msgid "golden cut" msgstr "altın kesim" -#: ../src/iop/borders.c:956 +#: ../src/iop/borders.c:969 msgid "16:10" msgstr "16:10" -#: ../src/iop/borders.c:957 +#: ../src/iop/borders.c:970 msgid "3:2 (4x6, 10x15cm)" msgstr "3:2 (4x6, 10x15cm)" -#: ../src/iop/borders.c:959 +#: ../src/iop/borders.c:972 msgid "DIN" msgstr "DIN" -#: ../src/iop/borders.c:960 +#: ../src/iop/borders.c:973 msgid "7:5" msgstr "7:5" -#: ../src/iop/borders.c:961 +#: ../src/iop/borders.c:974 msgid "4:3" msgstr "4:3" -#: ../src/iop/borders.c:962 +#: ../src/iop/borders.c:975 msgid "US Letter 8.5x11" msgstr "ABD Mektup 8,5x11" -#: ../src/iop/borders.c:963 +#: ../src/iop/borders.c:976 msgid "14:11" msgstr "14:11" -#: ../src/iop/borders.c:964 +#: ../src/iop/borders.c:977 msgid "5:4 (8x10)" msgstr "5:4 (8x10)" -#: ../src/iop/borders.c:965 ../src/iop/clipping.c:2121 ../src/iop/crop.c:1118 -#: ../src/libs/filtering.c:301 ../src/libs/filters/ratio.c:126 -#: ../src/libs/histogram.c:141 +#: ../src/iop/borders.c:978 ../src/iop/clipping.c:2174 ../src/iop/crop.c:1102 +#: ../src/libs/filtering.c:307 ../src/libs/filters/ratio.c:126 +#: ../src/libs/histogram.c:118 msgid "square" msgstr "kare" -#: ../src/iop/borders.c:966 +#: ../src/iop/borders.c:979 msgid "constant border" msgstr "sabit sınır" -#: ../src/iop/borders.c:967 ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:980 ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "custom..." msgstr "özel..." -#: ../src/iop/borders.c:972 -msgid "set the custom aspect ratio (right click to enter number or w:h)" -msgstr "özel en boy oranını ayarlayın (sayı veya w:h girmek için sağ tıklayın)" +#: ../src/iop/borders.c:984 +msgid "" +"set the custom aspect ratio\n" +"(right click to enter number or w:h)" +msgstr "" +"özel en boy oranını ayarlayın\n" +"(sayı veya w:h girmek için sağ tıklayın)" -#: ../src/iop/borders.c:975 +#: ../src/iop/borders.c:989 msgid "aspect ratio orientation of the image with border" msgstr "kenarlıklı görüntünün en boy oranı yönü" -#: ../src/iop/borders.c:977 +#: ../src/iop/borders.c:991 msgid "horizontal position" msgstr "yatay pozisyon" -#: ../src/iop/borders.c:978 +#: ../src/iop/borders.c:992 msgid "" -"select the horizontal position ratio relative to top or right click and type " -"your own (y:h)" +"select the horizontal position ratio relative to top\n" +"(right click on slider below to type your own x:w)" msgstr "" -"üst veya sağ tıklamaya göre yatay konum oranını seçin ve kendinizinkini " -"yazın (y:h)" +"yukarıya göre yatay konum oranını seçin\n" +"(kendi x:w'nizi yazmak için aşağıdaki kaydırıcıya sağ tıklayın)" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "center" msgstr "merkez" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "1/3" msgstr "1/3" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "3/8" msgstr "3/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "5/8" msgstr "5/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "2/3" msgstr "2/3" -#: ../src/iop/borders.c:986 +#: ../src/iop/borders.c:1000 msgid "custom horizontal position" msgstr "özel yatay konum" -#: ../src/iop/borders.c:988 +#: ../src/iop/borders.c:1002 msgid "vertical position" msgstr "dikey pozisyon" -#: ../src/iop/borders.c:989 +#: ../src/iop/borders.c:1003 msgid "" -"select the vertical position ratio relative to left or right click and type " -"your own (x:w)" +"select the vertical position ratio relative to left\n" +"(right click on slider below to type your own y:h)" msgstr "" -"sol veya sağ tıklamaya göre dikey konum oranını seçin ve kendinizinkini " -"yazın (x:w)" +"sola göre dikey konum oranını seçin\n" +"(kendi y:h'nizi yazmak için aşağıdaki kaydırıcıya sağ tıklayın)" -#: ../src/iop/borders.c:997 +#: ../src/iop/borders.c:1011 msgid "custom vertical position" msgstr "özel dikey konum" -#: ../src/iop/borders.c:1002 +#: ../src/iop/borders.c:1017 msgid "size of the frame line in percent of min border width" msgstr "asgari sınır genişliğinin yüzdesi olarak çerçeve çizgisinin boyutu" -#: ../src/iop/borders.c:1007 +#: ../src/iop/borders.c:1023 msgid "offset of the frame line beginning on picture side" msgstr "resim tarafında başlayan çerçeve çizgisinin ofseti" -#: ../src/iop/borders.c:1014 ../src/iop/borders.c:1023 +#: ../src/iop/borders.c:1033 ../src/iop/borders.c:1044 msgid "border color" msgstr "kenarlık rengi" -#: ../src/iop/borders.c:1018 +#: ../src/iop/borders.c:1037 msgid "select border color" msgstr "kenarlık rengini seç" -#: ../src/iop/borders.c:1022 +#: ../src/iop/borders.c:1043 msgid "pick border color from image" msgstr "görüntüden kenarlık rengini seç" -#: ../src/iop/borders.c:1023 ../src/iop/borders.c:1036 -#: ../src/iop/colorzones.c:2415 ../src/iop/colorzones.c:2425 -#: ../src/iop/negadoctor.c:848 ../src/iop/negadoctor.c:915 -#: ../src/iop/negadoctor.c:953 ../src/iop/rgbcurve.c:1369 -#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1026 -#: ../src/iop/rgblevels.c:1032 ../src/iop/rgblevels.c:1038 +#: ../src/iop/borders.c:1044 ../src/iop/borders.c:1061 +#: ../src/iop/colorzones.c:2662 ../src/iop/colorzones.c:2677 +#: ../src/iop/negadoctor.c:867 ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:972 ../src/iop/rgbcurve.c:1369 +#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1075 +#: ../src/iop/rgblevels.c:1083 ../src/iop/rgblevels.c:1091 msgid "pickers" msgstr "toplayıcılar" -#: ../src/iop/borders.c:1027 ../src/iop/borders.c:1036 +#: ../src/iop/borders.c:1049 ../src/iop/borders.c:1061 msgid "frame line color" msgstr "çerçeve çizgi rengi" -#: ../src/iop/borders.c:1031 +#: ../src/iop/borders.c:1054 msgid "select frame line color" msgstr "çerçeve çizgi rengini seç" -#: ../src/iop/borders.c:1035 +#: ../src/iop/borders.c:1060 msgid "pick frame line color from image" msgstr "görüntüden çerçeve çizgi rengini seç" #. make sure you put all your translatable strings into _() ! -#: ../src/iop/cacorrect.c:72 +#: ../src/iop/cacorrect.c:78 msgid "raw chromatic aberrations" msgstr "raw renklendirme sapmaları" -#: ../src/iop/cacorrect.c:77 +#: ../src/iop/cacorrect.c:83 msgid "correct chromatic aberrations for Bayer sensors" msgstr "Bayer sensörleri için doğru renk sapmaları" -#: ../src/iop/cacorrect.c:79 ../src/iop/cacorrect.c:81 +#: ../src/iop/cacorrect.c:85 ../src/iop/cacorrect.c:87 #: ../src/iop/cacorrectrgb.c:171 ../src/iop/cacorrectrgb.c:173 #: ../src/iop/demosaic.c:294 ../src/iop/highlights.c:180 -#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:74 -#: ../src/iop/hotpixels.c:76 ../src/iop/rawdenoise.c:131 -#: ../src/iop/rawdenoise.c:133 ../src/iop/rawprepare.c:159 -#: ../src/iop/rawprepare.c:161 ../src/iop/temperature.c:213 -#: ../src/iop/temperature.c:215 +#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:76 +#: ../src/iop/hotpixels.c:78 ../src/iop/rawdenoise.c:145 +#: ../src/iop/rawdenoise.c:147 ../src/iop/rawprepare.c:175 +#: ../src/iop/rawprepare.c:177 ../src/iop/temperature.c:221 +#: ../src/iop/temperature.c:223 msgid "linear, raw, scene-referred" msgstr "doğrusal, raw, sahne referanslı" -#: ../src/iop/cacorrect.c:80 ../src/iop/cacorrectrgb.c:172 -#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:121 -#: ../src/iop/rawdenoise.c:132 ../src/iop/rawprepare.c:160 -#: ../src/iop/temperature.c:214 +#: ../src/iop/cacorrect.c:86 ../src/iop/cacorrectrgb.c:172 +#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:138 +#: ../src/iop/rawdenoise.c:146 ../src/iop/rawprepare.c:176 +#: ../src/iop/temperature.c:222 msgid "linear, raw" msgstr "doğrusal, raw" -#: ../src/iop/cacorrect.c:1405 +#: ../src/iop/cacorrect.c:1424 msgid "iteration runs, default is twice" msgstr "yineleme çalışır, varsayılan iki kezdir" -#: ../src/iop/cacorrect.c:1408 +#: ../src/iop/cacorrect.c:1427 msgid "activate colorshift correction for blue & red channels" msgstr "mavi ve kırmızı kanallar için renk kayması düzeltmesini etkinleştir" -#: ../src/iop/cacorrect.c:1415 +#: ../src/iop/cacorrect.c:1434 msgid "" "automatic chromatic aberration correction\n" -"only for Bayer raw files" +"only for Bayer raw files with 3 color channels" msgstr "" "otomatik renk sapması düzeltmesi\n" -"sadece Bayer ham dosyaları için" +"yalnızca 3 renk kanallı Bayer raw dosyaları için" #: ../src/iop/cacorrectrgb.c:164 ../src/iop/defringe.c:76 msgid "chromatic aberrations" @@ -13257,7 +13784,7 @@ msgid "correct chromatic aberrations" msgstr "doğru renk sapmaları" -#: ../src/iop/cacorrectrgb.c:743 +#: ../src/iop/cacorrectrgb.c:745 msgid "" "channel used as a reference to\n" "correct the other channels.\n" @@ -13273,11 +13800,11 @@ "varsa rehber kanalını değiştirmeyi deneyin.\n" "eserler var." -#: ../src/iop/cacorrectrgb.c:750 +#: ../src/iop/cacorrectrgb.c:752 msgid "increase for stronger correction" msgstr "daha güçlü düzeltme için artır" -#: ../src/iop/cacorrectrgb.c:752 +#: ../src/iop/cacorrectrgb.c:754 msgid "" "balance between smoothing colors\n" "and preserving them.\n" @@ -13289,12 +13816,12 @@ "yüksek değerler aşırıya kaçmaya neden olabilir\n" "ve kenar kanaması." -#: ../src/iop/cacorrectrgb.c:757 +#: ../src/iop/cacorrectrgb.c:759 msgctxt "section" msgid "advanced parameters" msgstr "gelişmiş parametreler" -#: ../src/iop/cacorrectrgb.c:759 +#: ../src/iop/cacorrectrgb.c:761 msgid "" "correction mode to use.\n" "can help with multiple\n" @@ -13312,7 +13839,7 @@ "maviyi düzeltmek için etkili\n" "renk sapmaları." -#: ../src/iop/cacorrectrgb.c:767 +#: ../src/iop/cacorrectrgb.c:769 msgid "" "runs an iterative approach\n" "with several radii.\n" @@ -13347,35 +13874,35 @@ msgid "special, RGB, scene-referred" msgstr "özel, RGB, sahne referanslı" -#: ../src/iop/censorize.c:412 +#: ../src/iop/censorize.c:404 msgid "radius_1" msgstr "yarıçap_1" -#: ../src/iop/censorize.c:414 +#: ../src/iop/censorize.c:406 msgid "pixelate" msgstr "pikselleştirmek" -#: ../src/iop/censorize.c:416 +#: ../src/iop/censorize.c:408 msgid "radius_2" msgstr "yarıçap_2" -#: ../src/iop/censorize.c:418 +#: ../src/iop/censorize.c:410 msgid "noise" msgstr "gürültü" -#: ../src/iop/censorize.c:420 +#: ../src/iop/censorize.c:412 msgid "radius of gaussian blur before pixellation" msgstr "pikselleşmeden önce gauss bulanıklığının yarıçapı" -#: ../src/iop/censorize.c:421 +#: ../src/iop/censorize.c:413 msgid "radius of gaussian blur after pixellation" msgstr "pikselleşmeden sonra gauss bulanıklığının yarıçapı" -#: ../src/iop/censorize.c:422 +#: ../src/iop/censorize.c:414 msgid "radius of the intermediate pixellation" msgstr "ara pikselleşmenin yarıçapı" -#: ../src/iop/censorize.c:423 +#: ../src/iop/censorize.c:415 msgid "amount of noise to add at the end" msgstr "sonuna eklenecek gürültü miktarı" @@ -13390,7 +13917,7 @@ "bu modül kullanımdan kaldırılmıştır. lütfen bunun yerine renk kalibrasyon " "modülünü kullanın." -#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:229 +#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:230 msgid "" "perform color space corrections\n" "such as white balance, channels mixing\n" @@ -13400,168 +13927,168 @@ "beyaz dengesi, kanal karıştırma gibi\n" "ve tek renkli öykünme filmine dönüşümler" -#: ../src/iop/channelmixer.c:614 +#: ../src/iop/channelmixer.c:633 msgid "destination" msgstr "hedef" -#: ../src/iop/channelmixer.c:621 +#: ../src/iop/channelmixer.c:640 msgctxt "channelmixer" msgid "gray" msgstr "gri" -#: ../src/iop/channelmixer.c:627 +#: ../src/iop/channelmixer.c:646 msgid "amount of red channel in the output channel" msgstr "çıkış kanalındaki kırmızı kanal miktarı" -#: ../src/iop/channelmixer.c:633 +#: ../src/iop/channelmixer.c:652 msgid "amount of green channel in the output channel" msgstr "çıkış kanalındaki yeşil kanal miktarı" -#: ../src/iop/channelmixer.c:639 +#: ../src/iop/channelmixer.c:658 msgid "amount of blue channel in the output channel" msgstr "çıkış kanalındaki mavi kanal miktarı" -#: ../src/iop/channelmixer.c:655 ../src/iop/channelmixerrgb.c:524 +#: ../src/iop/channelmixer.c:674 ../src/iop/channelmixerrgb.c:588 msgid "swap R and B" msgstr "K ve S'hı değiştir" -#: ../src/iop/channelmixer.c:661 ../src/iop/channelmixerrgb.c:498 +#: ../src/iop/channelmixer.c:680 ../src/iop/channelmixerrgb.c:562 msgid "swap G and B" msgstr "Y ve S hı değiştirin" -#: ../src/iop/channelmixer.c:667 +#: ../src/iop/channelmixer.c:686 msgid "color contrast boost" msgstr "renk kontrastı artırma" -#: ../src/iop/channelmixer.c:673 +#: ../src/iop/channelmixer.c:692 msgid "color details boost" msgstr "renk ayrıntıları artırma" -#: ../src/iop/channelmixer.c:679 +#: ../src/iop/channelmixer.c:698 msgid "color artifacts boost" msgstr "renk artefaktları artırma" -#: ../src/iop/channelmixer.c:685 +#: ../src/iop/channelmixer.c:704 msgid "B/W luminance-based" msgstr "S/B parlaklık tabanlı" -#: ../src/iop/channelmixer.c:691 +#: ../src/iop/channelmixer.c:710 msgid "B/W artifacts boost" msgstr "S/Beserler artırma" -#: ../src/iop/channelmixer.c:697 +#: ../src/iop/channelmixer.c:716 msgid "B/W smooth skin" msgstr "S/B pürüzsüz cilt" -#: ../src/iop/channelmixer.c:703 +#: ../src/iop/channelmixer.c:722 msgid "B/W blue artifacts reduce" msgstr "S/B mavi artefaktları azaltır" -#: ../src/iop/channelmixer.c:710 +#: ../src/iop/channelmixer.c:729 msgid "B/W Ilford Delta 100-400" msgstr "S/B Ilford Deltası 100-400" -#: ../src/iop/channelmixer.c:717 +#: ../src/iop/channelmixer.c:736 msgid "B/W Ilford Delta 3200" msgstr "S/B Ilford Deltası 3200" -#: ../src/iop/channelmixer.c:724 +#: ../src/iop/channelmixer.c:743 msgid "B/W Ilford FP4" msgstr "S/B Ilford FP4" -#: ../src/iop/channelmixer.c:731 +#: ../src/iop/channelmixer.c:750 msgid "B/W Ilford HP5" msgstr "S/B Ilford HP5" -#: ../src/iop/channelmixer.c:738 +#: ../src/iop/channelmixer.c:757 msgid "B/W Ilford SFX" msgstr "S/B Ilford SFX" -#: ../src/iop/channelmixer.c:745 +#: ../src/iop/channelmixer.c:764 msgid "B/W Kodak T-Max 100" msgstr "S/B Kodak T-Max 100" -#: ../src/iop/channelmixer.c:752 +#: ../src/iop/channelmixer.c:771 msgid "B/W Kodak T-max 400" msgstr "S/B Kodak T-max 400" -#: ../src/iop/channelmixer.c:759 +#: ../src/iop/channelmixer.c:778 msgid "B/W Kodak Tri-X 400" msgstr "S/B Kodak Tri-X 400" -#: ../src/iop/channelmixerrgb.c:219 +#: ../src/iop/channelmixerrgb.c:220 msgid "color calibration" msgstr "renk kalibrasyonu" -#: ../src/iop/channelmixerrgb.c:224 +#: ../src/iop/channelmixerrgb.c:225 msgid "channel mixer|white balance|monochrome" msgstr "kanal karıştırıcı|beyaz dengesi|tek renkli" -#: ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:235 msgid "linear, RGB or XYZ" msgstr "doğrusal, RGB veya XYZ" -#: ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:460 msgid "B&W: luminance-based" msgstr "S&B: parlaklık tabanlı" -#: ../src/iop/channelmixerrgb.c:431 +#: ../src/iop/channelmixerrgb.c:495 msgid "B&W: ILFORD HP5+" msgstr "S&B: ILFORD HP5+" -#: ../src/iop/channelmixerrgb.c:440 +#: ../src/iop/channelmixerrgb.c:504 msgid "B&W: ILFORD DELTA 100" msgstr "S&B: ILFORD DELTA 100" -#: ../src/iop/channelmixerrgb.c:450 +#: ../src/iop/channelmixerrgb.c:514 msgid "B&W: ILFORD DELTA 400 - 3200" msgstr "S&B: ILFORD DELTA 400 - 3200" -#: ../src/iop/channelmixerrgb.c:459 +#: ../src/iop/channelmixerrgb.c:523 msgid "B&W: ILFORD FP4+" msgstr "S&B: ILFORD FP4+" -#: ../src/iop/channelmixerrgb.c:468 +#: ../src/iop/channelmixerrgb.c:532 msgid "B&W: Fuji Acros 100" msgstr "S&B: Fuji Acros 100" -#: ../src/iop/channelmixerrgb.c:485 +#: ../src/iop/channelmixerrgb.c:549 msgid "basic channel mixer" msgstr "temel kanal karıştırıcı" -#: ../src/iop/channelmixerrgb.c:511 +#: ../src/iop/channelmixerrgb.c:575 msgid "swap G and R" msgstr "Y ve K'yı değiştir" -#: ../src/iop/channelmixerrgb.c:1869 +#: ../src/iop/channelmixerrgb.c:1926 msgid "(daylight)" msgstr "(gün ışığı)" -#: ../src/iop/channelmixerrgb.c:1871 +#: ../src/iop/channelmixerrgb.c:1928 msgid "(black body)" msgstr "(siyah gövde)" -#: ../src/iop/channelmixerrgb.c:1873 +#: ../src/iop/channelmixerrgb.c:1930 msgid "(invalid)" msgstr "(geçersiz)" -#: ../src/iop/channelmixerrgb.c:1877 ../src/iop/channelmixerrgb.c:1935 +#: ../src/iop/channelmixerrgb.c:1934 ../src/iop/channelmixerrgb.c:1992 msgid "very good" msgstr "çok iyi" -#: ../src/iop/channelmixerrgb.c:1879 ../src/iop/channelmixerrgb.c:1937 +#: ../src/iop/channelmixerrgb.c:1936 ../src/iop/channelmixerrgb.c:1994 msgid "good" msgstr "iyi" -#: ../src/iop/channelmixerrgb.c:1881 ../src/iop/channelmixerrgb.c:1939 +#: ../src/iop/channelmixerrgb.c:1938 ../src/iop/channelmixerrgb.c:1996 msgid "passable" msgstr "fena değil" -#: ../src/iop/channelmixerrgb.c:1883 ../src/iop/channelmixerrgb.c:1941 +#: ../src/iop/channelmixerrgb.c:1940 ../src/iop/channelmixerrgb.c:1998 msgid "bad" msgstr "kötü" -#: ../src/iop/channelmixerrgb.c:1890 +#: ../src/iop/channelmixerrgb.c:1947 #, c-format msgid "" "\n" @@ -13598,7 +14125,7 @@ "pozlama telafisi: \t%+.2f EV\n" "siyah ofset: \t%+.4f" -#: ../src/iop/channelmixerrgb.c:1946 +#: ../src/iop/channelmixerrgb.c:2003 #, c-format msgid "" "\n" @@ -13617,27 +14144,43 @@ "pozlama telafisi: \t%+.2f EV\n" "siyah ofset: \t%+.4f" -#: ../src/iop/channelmixerrgb.c:1978 +#: ../src/iop/channelmixerrgb.c:2054 msgid "double CAT applied" msgstr "çift CAT uygulandı" -#: ../src/iop/channelmixerrgb.c:1979 +#: ../src/iop/channelmixerrgb.c:2055 msgid "" "you have 2 instances or more of color calibration,\n" -"all performing chromatic adaptation.\n" -"this can lead to inconsistencies, unless you\n" +"all providing chromatic adaptation.\n" +"this can lead to inconsistencies unless you\n" "use them with masks or know what you are doing." msgstr "" -"2 veya daha fazla renk kalibrasyonunuz var,\n" -"tüm performans kromatik adaptasyon.\n" -"sürece, bu tutarsızlıklara yol açabilir.\n" -"maskelerle kullanın veya ne yaptığınızı bilin." +"2 veya daha fazla renk kalibrasyonu örneğiniz var,\n" +"hepsi kromatik adaptasyon sağlıyor.\n" +"bunu yapmadığınız sürece bu tutarsızlıklara yol açabilir\n" +"bunları maskelerle kullanın veya ne yaptığınızı bilin." + +#: ../src/iop/channelmixerrgb.c:2071 +msgid "white balance applied twice" +msgstr "beyaz dengesi iki kez uygulandı" + +#: ../src/iop/channelmixerrgb.c:2072 +msgid "" +"the color calibration module is enabled and already provides\n" +"chromatic adaptation.\n" +"set the white balance here to camera reference (D65)\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"renk kalibrasyon modülü etkindir ve zaten sağlar\n" +"kromatik adaptasyon.\n" +"beyaz dengesini burada fotoğraf makinesi referansına ayarlayın (D65)\n" +"veya renk kalibrasyonunda kromatik uyarlamayı devre dışı bırakın." -#: ../src/iop/channelmixerrgb.c:1991 +#: ../src/iop/channelmixerrgb.c:2080 msgid "white balance module error" msgstr "beyaz dengesi modülü hatası" -#: ../src/iop/channelmixerrgb.c:1992 +#: ../src/iop/channelmixerrgb.c:2081 msgid "" "the white balance module is not using the camera\n" "reference illuminant, which will cause issues here\n" @@ -13649,20 +14192,48 @@ "kromatik adaptasyon ile. ya referans olarak ayarla\n" "veya burada kromatik uyarlamayı devre dışı bırakın." -#: ../src/iop/channelmixerrgb.c:2083 +#: ../src/iop/channelmixerrgb.c:2095 ../src/iop/channelmixerrgb.c:2104 +msgid "white balance missing" +msgstr "beyaz dengesi eksik" + +#: ../src/iop/channelmixerrgb.c:2096 +msgid "" +"this module is not providing a valid reference illuminant\n" +"causing chromatic adaptation issues in color calibration.\n" +"enable this module and either set it to reference\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"bu modül geçerli bir referans aydınlatıcı sağlamıyor\n" +"renk kalibrasyonunda kromatik adaptasyon sorunlarına neden oluyor.\n" +"bu modülü etkinleştirin ve referans olarak ayarlayın\n" +"veya renk kalibrasyonunda kromatik uyarlamayı devre dışı bırakın." + +#: ../src/iop/channelmixerrgb.c:2105 +msgid "" +"the white balance module is not providing a valid reference\n" +"illuminant causing issues with chromatic adaptation here.\n" +"enable white balance and either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" +"beyaz dengesi modülü geçerli bir referans sağlamıyor\n" +"aydınlatıcı burada kromatik adaptasyonla ilgili sorunlara neden oluyor.\n" +"beyaz dengesini etkinleştirin ve referans olarak ayarlayın\n" +"veya buradan kromatik uyarlamayı devre dışı bırakın." + +#: ../src/iop/channelmixerrgb.c:2196 msgid "auto-detection of white balance completed" msgstr "beyaz dengesi otomatik algılama tamamlandı" -#: ../src/iop/channelmixerrgb.c:2236 +#: ../src/iop/channelmixerrgb.c:2346 msgid "channelmixerrgb works only on RGB input" msgstr "kanal karıştırıcı rgb yalnızca RGB girişinde çalışır" -#: ../src/iop/channelmixerrgb.c:3621 +#: ../src/iop/channelmixerrgb.c:3692 #, c-format msgid "CCT: %.0f K (daylight)" msgstr "CCT: %.0f K (gün ışığı)" -#: ../src/iop/channelmixerrgb.c:3624 +#: ../src/iop/channelmixerrgb.c:3695 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a daylight spectrum,\n" @@ -13672,12 +14243,12 @@ "bu aydınlatıcı, bir gün ışığı tayfı ile doğru bir şekilde modellenebilir,\n" "bu nedenle sıcaklığı bir D aydınlatıcı ile alakalı ve anlamlıdır." -#: ../src/iop/channelmixerrgb.c:3630 +#: ../src/iop/channelmixerrgb.c:3701 #, c-format msgid "CCT: %.0f K (black body)" msgstr "CCT: %.0f K (siyah cisim)" -#: ../src/iop/channelmixerrgb.c:3633 +#: ../src/iop/channelmixerrgb.c:3704 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a black body spectrum,\n" @@ -13687,12 +14258,12 @@ "bu aydınlatıcı siyah cisim tayfı ile doğru bir şekilde modellenebilir,\n" "bu yüzden sıcaklığı Planckçı bir hastalıkla alakalı ve anlamlıdır." -#: ../src/iop/channelmixerrgb.c:3639 +#: ../src/iop/channelmixerrgb.c:3710 #, c-format msgid "CCT: %.0f K (invalid)" msgstr "CCT: %.0f K (geçersiz)" -#: ../src/iop/channelmixerrgb.c:3642 +#: ../src/iop/channelmixerrgb.c:3713 msgid "" "approximated correlated color temperature.\n" "this illuminant cannot be accurately modeled by a daylight or black body " @@ -13706,12 +14277,12 @@ "bu nedenle sıcaklığı alakalı ve anlamlı değildir ve özel bir aydınlatıcı " "kullanmanız gerekir." -#: ../src/iop/channelmixerrgb.c:3651 +#: ../src/iop/channelmixerrgb.c:3722 #, c-format msgid "CCT: undefined" msgstr "CCT: tanımsız" -#: ../src/iop/channelmixerrgb.c:3654 +#: ../src/iop/channelmixerrgb.c:3725 msgid "" "the approximated correlated color temperature\n" "cannot be computed at all so you need to use a custom illuminant." @@ -13719,16 +14290,16 @@ "yaklaşık ilişkili renk sıcaklığı\n" "hiç hesaplanamaz, bu nedenle özel bir aydınlatıcı kullanmanız gerekir." -#: ../src/iop/channelmixerrgb.c:3967 +#: ../src/iop/channelmixerrgb.c:4038 msgid "white balance successfully extracted from raw image" msgstr "beyaz dengesi ham görüntüden başarıyla çıkarıldı" #. We need to recompute only the full preview -#: ../src/iop/channelmixerrgb.c:3973 +#: ../src/iop/channelmixerrgb.c:4044 msgid "auto-detection of white balance started…" msgstr "beyaz dengesi otomatik algılama başladı…" -#: ../src/iop/channelmixerrgb.c:4078 +#: ../src/iop/channelmixerrgb.c:4149 msgid "" "color calibration: the sum of the gray channel parameters is zero, " "normalization will be disabled." @@ -13737,7 +14308,7 @@ "normalleştirme devre dışı bırakılır." #. Write report in GUI -#: ../src/iop/channelmixerrgb.c:4126 +#: ../src/iop/channelmixerrgb.c:4194 #, c-format msgid "" "L: \t%.1f %%\n" @@ -13748,27 +14319,27 @@ "h: \t%.1f °\n" "c: \t%.1f" -#: ../src/iop/channelmixerrgb.c:4394 ../src/iop/clipping.c:2087 -#: ../src/iop/colorbalancergb.c:1873 ../src/iop/filmicrgb.c:4419 -#: ../src/iop/negadoctor.c:829 ../src/iop/toneequal.c:3319 -#: ../src/libs/image.c:460 ../src/views/lighttable.c:1258 +#: ../src/iop/channelmixerrgb.c:4462 ../src/iop/clipping.c:2140 +#: ../src/iop/colorbalancergb.c:1944 ../src/iop/filmicrgb.c:4483 +#: ../src/iop/negadoctor.c:848 ../src/iop/toneequal.c:3372 +#: ../src/libs/image.c:490 ../src/views/lighttable.c:1258 msgid "page" msgstr "sayfa" #. Page CAT -#: ../src/iop/channelmixerrgb.c:4397 +#: ../src/iop/channelmixerrgb.c:4465 msgid "CAT" msgstr "CAT" -#: ../src/iop/channelmixerrgb.c:4398 +#: ../src/iop/channelmixerrgb.c:4466 msgid "chromatic adaptation transform" msgstr "kromatik adaptasyon dönüşümü" -#: ../src/iop/channelmixerrgb.c:4400 +#: ../src/iop/channelmixerrgb.c:4468 msgid "adaptation" msgstr "adaptasyon" -#: ../src/iop/channelmixerrgb.c:4403 +#: ../src/iop/channelmixerrgb.c:4471 msgid "" "choose the method to adapt the illuminant\n" "and the colorspace in which the module works: \n" @@ -13789,7 +14360,7 @@ "• hiçbiri herhangi bir uyarlamayı devre dışı bırakmaz ve ardışık düzende " "çalışan RGB'yi kullanır." -#: ../src/iop/channelmixerrgb.c:4423 +#: ../src/iop/channelmixerrgb.c:4491 msgid "" "this is the color of the scene illuminant before chromatic adaptation\n" "this color will be turned into pure white by the adaptation." @@ -13797,27 +14368,27 @@ "bu, kromatik uyarlamadan önceki sahne aydınlatmasının rengidir\n" "bu renk adaptasyon ile saf beyaza dönüşecektir." -#: ../src/iop/channelmixerrgb.c:4431 +#: ../src/iop/channelmixerrgb.c:4499 msgid "picker" msgstr "seçici" -#: ../src/iop/channelmixerrgb.c:4433 ../src/iop/temperature.c:2047 +#: ../src/iop/channelmixerrgb.c:4501 ../src/iop/temperature.c:2015 msgid "set white balance to detected from area" msgstr "beyaz dengesini alandan algılanacak şekilde ayarla" -#: ../src/iop/channelmixerrgb.c:4437 ../src/iop/negadoctor.c:953 +#: ../src/iop/channelmixerrgb.c:4505 ../src/iop/negadoctor.c:972 msgid "illuminant" msgstr "aydınlatıcı" -#: ../src/iop/channelmixerrgb.c:4443 ../src/iop/temperature.c:2107 +#: ../src/iop/channelmixerrgb.c:4511 ../src/iop/temperature.c:2072 msgid "temperature" msgstr "sıcaklık" -#: ../src/iop/channelmixerrgb.c:4474 -msgid "spot color mapping" -msgstr "nokta renk eşleme" +#: ../src/iop/channelmixerrgb.c:4542 +msgid "area color mapping" +msgstr "alan renk eşlemesi" -#: ../src/iop/channelmixerrgb.c:4480 +#: ../src/iop/channelmixerrgb.c:4548 msgid "" "define a target chromaticity (hue and chroma) for a particular region of the " "image (the control sample), which you then match against the same target " @@ -13831,17 +14402,17 @@ "parçası olabilir veya görüntü seriniz üzerinde hareket etmeyen ve sürekli " "olarak aydınlatılan bir yüzey olabilir." -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/channelmixerrgb.c:4502 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/channelmixerrgb.c:4573 +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/channelmixerrgb.c:4570 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/channelmixerrgb.c:4641 msgid "mapping" msgstr "eşleme" -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/exposure.c:1188 -msgid "spot mode" -msgstr "nokta modu" +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/exposure.c:1206 +msgid "area mode" +msgstr "alan modu" -#: ../src/iop/channelmixerrgb.c:4488 +#: ../src/iop/channelmixerrgb.c:4556 msgid "" "\"correction\" automatically adjust the illuminant\n" "such that the input color is mapped to the target.\n" @@ -13854,19 +14425,19 @@ "gösterir\n" "ve bir hedefi örneklemek için kullanılabilir." -#: ../src/iop/channelmixerrgb.c:4493 ../src/iop/exposure.c:1194 +#: ../src/iop/channelmixerrgb.c:4561 ../src/iop/exposure.c:1212 msgid "correction" msgstr "düzeltme" -#: ../src/iop/channelmixerrgb.c:4494 ../src/iop/exposure.c:1195 +#: ../src/iop/channelmixerrgb.c:4562 ../src/iop/exposure.c:1213 msgid "measure" msgstr "ölçüm" -#: ../src/iop/channelmixerrgb.c:4500 +#: ../src/iop/channelmixerrgb.c:4568 msgid "take channel mixing into account" msgstr "kanal karıştırmayı hesaba kat" -#: ../src/iop/channelmixerrgb.c:4507 +#: ../src/iop/channelmixerrgb.c:4575 msgid "" "compute the target by taking the channel mixing into account.\n" "if disabled, only the CAT is considered." @@ -13874,16 +14445,16 @@ "kanal karıştırmayı hesaba katarak hedefi hesaplayın.\n" "devre dışı bırakılırsa, yalnızca CAT dikkate alınır." -#: ../src/iop/channelmixerrgb.c:4519 ../src/iop/exposure.c:1202 +#: ../src/iop/channelmixerrgb.c:4587 ../src/iop/exposure.c:1220 msgctxt "section" msgid "input" msgstr "girdi" -#: ../src/iop/channelmixerrgb.c:4526 ../src/iop/exposure.c:1210 +#: ../src/iop/channelmixerrgb.c:4594 ../src/iop/exposure.c:1228 msgid "the input color that should be mapped to the target" msgstr "hedefe eşlenmesi gereken giriş rengi" -#: ../src/iop/channelmixerrgb.c:4532 +#: ../src/iop/channelmixerrgb.c:4600 msgid "" "L: \tN/A\n" "h: \tN/A\n" @@ -13893,116 +14464,116 @@ "h: \tN/A\n" "c: \tN/A" -#: ../src/iop/channelmixerrgb.c:4535 ../src/iop/exposure.c:1218 +#: ../src/iop/channelmixerrgb.c:4603 ../src/iop/exposure.c:1236 msgid "these LCh coordinates are computed from CIE Lab 1976 coordinates" -msgstr "bu LCh koordinatları, CIE Lab 1976 koordinatlarından hesaplanır." +msgstr "bu LCh koordinatları, CIE Lab 1976 koordinatlarından hesaplanır" -#: ../src/iop/channelmixerrgb.c:4543 ../src/iop/exposure.c:1225 +#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/exposure.c:1243 msgctxt "section" msgid "target" msgstr "hedef" -#: ../src/iop/channelmixerrgb.c:4550 +#: ../src/iop/channelmixerrgb.c:4618 msgid "the desired target color after mapping" msgstr "haritalamadan sonra istenen hedef renk" -#: ../src/iop/channelmixerrgb.c:4589 +#: ../src/iop/channelmixerrgb.c:4657 msgid "input R" msgstr "K girişi" -#: ../src/iop/channelmixerrgb.c:4594 +#: ../src/iop/channelmixerrgb.c:4662 msgid "input G" msgstr "Y girişi" -#: ../src/iop/channelmixerrgb.c:4599 +#: ../src/iop/channelmixerrgb.c:4667 msgid "input B" msgstr "S girişi" -#: ../src/iop/channelmixerrgb.c:4609 +#: ../src/iop/channelmixerrgb.c:4677 msgid "output R" msgstr "K çıktısı" -#: ../src/iop/channelmixerrgb.c:4610 +#: ../src/iop/channelmixerrgb.c:4678 msgid "output G" msgstr "Y çıktısı" -#: ../src/iop/channelmixerrgb.c:4611 +#: ../src/iop/channelmixerrgb.c:4679 msgid "output B" msgstr "S çıktısı" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "colorfulness" msgstr "renklilik" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "output colorfulness" msgstr "çıktı renkliliği" -#: ../src/iop/channelmixerrgb.c:4617 +#: ../src/iop/channelmixerrgb.c:4685 msgid "output brightness" msgstr "çıkış parlaklığı" -#: ../src/iop/channelmixerrgb.c:4620 +#: ../src/iop/channelmixerrgb.c:4688 msgid "output gray" msgstr "çıktı gri" -#: ../src/iop/channelmixerrgb.c:4635 +#: ../src/iop/channelmixerrgb.c:4703 msgid "calibrate with a color checker" msgstr "renk denetleyicisi ile kalibre edin" -#: ../src/iop/channelmixerrgb.c:4640 +#: ../src/iop/channelmixerrgb.c:4708 msgid "use a color checker target to autoset CAT and channels" msgstr "" "CAT ve kanalları otomatik olarak ayarlamak için bir renk denetleyici hedefi " "kullanın" -#: ../src/iop/channelmixerrgb.c:4647 ../src/iop/channelmixerrgb.c:4660 -#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/channelmixerrgb.c:4696 -#: ../src/iop/channelmixerrgb.c:4705 ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4715 ../src/iop/channelmixerrgb.c:4728 +#: ../src/iop/channelmixerrgb.c:4746 ../src/iop/channelmixerrgb.c:4764 +#: ../src/iop/channelmixerrgb.c:4773 ../src/iop/channelmixerrgb.c:4781 msgid "calibrate" msgstr "ayarlama" -#: ../src/iop/channelmixerrgb.c:4647 +#: ../src/iop/channelmixerrgb.c:4715 msgid "chart" msgstr "çizelge" -#: ../src/iop/channelmixerrgb.c:4648 +#: ../src/iop/channelmixerrgb.c:4716 msgid "choose the vendor and the type of your chart" msgstr "satıcıyı ve grafiğinizin türünü seçin" -#: ../src/iop/channelmixerrgb.c:4650 +#: ../src/iop/channelmixerrgb.c:4718 msgid "Xrite ColorChecker 24 pre-2014" msgstr "XRite Renk Denetleyicisi 24 2014 öncesi" -#: ../src/iop/channelmixerrgb.c:4651 +#: ../src/iop/channelmixerrgb.c:4719 msgid "Xrite ColorChecker 24 post-2014" msgstr "XRite Renk Denetleyicisi 24 2014 sonrası" -#: ../src/iop/channelmixerrgb.c:4652 +#: ../src/iop/channelmixerrgb.c:4720 msgid "Datacolor SpyderCheckr 24 pre-2018" msgstr "Veri rengi Casus Denetleyicisi 24 2018 öncesi" -#: ../src/iop/channelmixerrgb.c:4653 +#: ../src/iop/channelmixerrgb.c:4721 msgid "Datacolor SpyderCheckr 24 post-2018" msgstr "Veri rengi Casus Denetleyicisi 24 2018 sonrası" -#: ../src/iop/channelmixerrgb.c:4654 +#: ../src/iop/channelmixerrgb.c:4722 msgid "Datacolor SpyderCheckr 48 pre-2018" msgstr "Veri rengi Casus Denetleyicisi 48 2018 öncesi" -#: ../src/iop/channelmixerrgb.c:4655 +#: ../src/iop/channelmixerrgb.c:4723 msgid "Datacolor SpyderCheckr 48 post-2018" msgstr "Veri rengi Casus Denetleyicisi 48 2018 sonrası" -#: ../src/iop/channelmixerrgb.c:4656 +#: ../src/iop/channelmixerrgb.c:4724 msgid "Datacolor SpyderCheckr Photo" msgstr "Veri rengi SpyderCheckr Fotoğraf" -#: ../src/iop/channelmixerrgb.c:4660 +#: ../src/iop/channelmixerrgb.c:4728 msgid "optimize for" msgstr "optimize et" -#: ../src/iop/channelmixerrgb.c:4661 +#: ../src/iop/channelmixerrgb.c:4729 msgid "" "choose the colors that will be optimized with higher priority.\n" "neutral colors gives the lowest average delta E but a high maximum delta E\n" @@ -14019,35 +14590,35 @@ "hiçbiri ikisi arasında bir takas değildir\n" "diğerleri bazı tonları korumak için özel davranışlardır" -#: ../src/iop/channelmixerrgb.c:4668 +#: ../src/iop/channelmixerrgb.c:4736 msgid "neutral colors" msgstr "nötr renkler" -#: ../src/iop/channelmixerrgb.c:4670 +#: ../src/iop/channelmixerrgb.c:4738 msgid "skin and soil colors" msgstr "cilt ve toprak renkleri" -#: ../src/iop/channelmixerrgb.c:4671 +#: ../src/iop/channelmixerrgb.c:4739 msgid "foliage colors" msgstr "yeşillik renkleri" -#: ../src/iop/channelmixerrgb.c:4672 +#: ../src/iop/channelmixerrgb.c:4740 msgid "sky and water colors" msgstr "gökyüzü ve su renkleri" -#: ../src/iop/channelmixerrgb.c:4673 +#: ../src/iop/channelmixerrgb.c:4741 msgid "average delta E" msgstr "ortalama delta E" -#: ../src/iop/channelmixerrgb.c:4674 +#: ../src/iop/channelmixerrgb.c:4742 msgid "maximum delta E" msgstr "azami delta E" -#: ../src/iop/channelmixerrgb.c:4678 +#: ../src/iop/channelmixerrgb.c:4746 msgid "patch scale" msgstr "yama ölçeği" -#: ../src/iop/channelmixerrgb.c:4681 +#: ../src/iop/channelmixerrgb.c:4749 msgid "" "reduce the radius of the patches to select the more or less central part.\n" "useful when the perspective correction is sloppy or\n" @@ -14058,31 +14629,31 @@ "perspektif düzeltmesi özensiz olduğunda veya\n" "yamalar çerçevesi, yamanın kenarlarında bir gölge oluşturur." -#: ../src/iop/channelmixerrgb.c:4691 +#: ../src/iop/channelmixerrgb.c:4759 msgid "the delta E is using the CIE 2000 formula" msgstr "delta E, CIE 2000 formülünü kullanıyor" -#: ../src/iop/channelmixerrgb.c:4696 +#: ../src/iop/channelmixerrgb.c:4764 msgid "accept" msgstr "kabul" -#: ../src/iop/channelmixerrgb.c:4702 +#: ../src/iop/channelmixerrgb.c:4770 msgid "accept the computed profile and set it in the module" msgstr "hesaplanan profili kabul edin ve modülde ayarlayın" -#: ../src/iop/channelmixerrgb.c:4705 +#: ../src/iop/channelmixerrgb.c:4773 msgid "recompute" msgstr "yeniden hesapla" -#: ../src/iop/channelmixerrgb.c:4709 +#: ../src/iop/channelmixerrgb.c:4777 msgid "recompute the profile" msgstr "profili yeniden hesapla" -#: ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4781 msgid "validate" msgstr "doğrulama" -#: ../src/iop/channelmixerrgb.c:4717 +#: ../src/iop/channelmixerrgb.c:4785 msgid "check the output delta E" msgstr "çıktı deltasını kontrol et E" @@ -14098,19 +14669,19 @@ "bu modül kullanımdan kaldırılmıştır. bunun yerine yeni yerel kontrast " "modülünü kullansanız iyi olur." -#: ../src/iop/clahe.c:337 ../src/iop/sharpen.c:445 +#: ../src/iop/clahe.c:339 ../src/iop/sharpen.c:440 msgid "amount" msgstr "miktar" -#: ../src/iop/clahe.c:346 +#: ../src/iop/clahe.c:348 msgid "size of features to preserve" msgstr "korunacak özelliklerin boyutu" -#: ../src/iop/clahe.c:347 ../src/iop/nlmeans.c:464 +#: ../src/iop/clahe.c:349 ../src/iop/nlmeans.c:467 msgid "strength of the effect" msgstr "etkinin gücü" -#: ../src/iop/clipping.c:304 +#: ../src/iop/clipping.c:347 msgid "" "this module is deprecated. please use the crop, orientation and/or rotate " "and perspective modules instead." @@ -14118,144 +14689,144 @@ "bu modül kullanımdan kaldırılmıştır. lütfen bunun yerine kırpma, yönlendirme " "ve/veya döndürme ve perspektif modüllerini kullanın." -#: ../src/iop/clipping.c:309 +#: ../src/iop/clipping.c:352 msgid "crop and rotate" msgstr "kırp ve döndür" -#: ../src/iop/clipping.c:314 +#: ../src/iop/clipping.c:357 msgid "reframe|perspective|keystone|distortion" msgstr "yeniden çerçeveleme|perspektif|anahtar taşı|bozulma" -#: ../src/iop/clipping.c:319 +#: ../src/iop/clipping.c:362 msgid "change the framing and correct the perspective" msgstr "çerçeveyi değiştir ve perspektifi düzelt" -#: ../src/iop/clipping.c:1394 ../src/iop/clipping.c:2120 ../src/iop/crop.c:517 -#: ../src/iop/crop.c:1117 +#: ../src/iop/clipping.c:1447 ../src/iop/clipping.c:2173 ../src/iop/crop.c:501 +#: ../src/iop/crop.c:1101 msgid "original image" msgstr "gerçek görüntü" -#: ../src/iop/clipping.c:1698 ../src/iop/crop.c:824 +#: ../src/iop/clipping.c:1751 ../src/iop/crop.c:808 msgid "invalid ratio format. it should be \"number:number\"" msgstr "geçersiz oran biçimi. \"sayı: sayı\" olmalıdır" -#: ../src/iop/clipping.c:1714 ../src/iop/crop.c:840 +#: ../src/iop/clipping.c:1767 ../src/iop/crop.c:824 msgid "invalid ratio format. it should be a positive number" msgstr "geçersiz oran biçimi. pozitif bir sayı olmalı" -#: ../src/iop/clipping.c:1903 ../src/iop/clipping.c:2111 +#: ../src/iop/clipping.c:1956 ../src/iop/clipping.c:2164 msgid "full" msgstr "tam" -#: ../src/iop/clipping.c:1904 +#: ../src/iop/clipping.c:1957 msgid "old system" msgstr "eski sistem" -#: ../src/iop/clipping.c:1905 +#: ../src/iop/clipping.c:1958 msgid "correction applied" msgstr "düzeltme uygulandı" -#: ../src/iop/clipping.c:2089 +#: ../src/iop/clipping.c:2142 msgid "main" msgstr "ana" -#: ../src/iop/clipping.c:2098 +#: ../src/iop/clipping.c:2151 msgid "mirror image horizontally and/or vertically" msgstr "ayna görüntüsünü yatay ve/veya dikey olarak" -#: ../src/iop/clipping.c:2101 +#: ../src/iop/clipping.c:2154 msgid "angle" msgstr "açı" -#: ../src/iop/clipping.c:2104 +#: ../src/iop/clipping.c:2157 msgid "right-click and drag a line on the image to drag a straight line" msgstr "" "düz bir çizgiyi sürüklemek için görüntünün üzerine bir çizgiyi sağ tıklayın " "ve sürükleyin" -#: ../src/iop/clipping.c:2107 +#: ../src/iop/clipping.c:2160 msgid "keystone" msgstr "kilit taşı" -#: ../src/iop/clipping.c:2112 +#: ../src/iop/clipping.c:2165 msgid "set perspective correction for your image" msgstr "resminiz için perspektif düzeltmesi ayarlayın" -#: ../src/iop/clipping.c:2119 ../src/iop/crop.c:1116 +#: ../src/iop/clipping.c:2172 ../src/iop/crop.c:1100 msgid "freehand" msgstr "serbest çizim" -#: ../src/iop/clipping.c:2122 ../src/iop/crop.c:1119 +#: ../src/iop/clipping.c:2175 ../src/iop/crop.c:1103 msgid "10:8 in print" msgstr "10:8 baskıda" -#: ../src/iop/clipping.c:2123 ../src/iop/crop.c:1120 +#: ../src/iop/clipping.c:2176 ../src/iop/crop.c:1104 msgid "5:4, 4x5, 8x10" msgstr "5:4, 4x5, 8x10" -#: ../src/iop/clipping.c:2124 ../src/iop/crop.c:1121 +#: ../src/iop/clipping.c:2177 ../src/iop/crop.c:1105 msgid "11x14" msgstr "11x14" -#: ../src/iop/clipping.c:2125 ../src/iop/crop.c:1122 +#: ../src/iop/clipping.c:2178 ../src/iop/crop.c:1106 msgid "8.5x11, letter" msgstr "8.5x11, mektup" -#: ../src/iop/clipping.c:2126 ../src/iop/crop.c:1123 +#: ../src/iop/clipping.c:2179 ../src/iop/crop.c:1107 msgid "4:3, VGA, TV" msgstr "4:3, VGA, TV" -#: ../src/iop/clipping.c:2127 ../src/iop/crop.c:1124 +#: ../src/iop/clipping.c:2180 ../src/iop/crop.c:1108 msgid "5x7" msgstr "5x7" -#: ../src/iop/clipping.c:2128 ../src/iop/crop.c:1125 +#: ../src/iop/clipping.c:2181 ../src/iop/crop.c:1109 msgid "ISO 216, DIN 476, A4" msgstr "ISO 216, DIN 476, A4" -#: ../src/iop/clipping.c:2129 ../src/iop/crop.c:1126 +#: ../src/iop/clipping.c:2182 ../src/iop/crop.c:1110 msgid "3:2, 4x6, 35mm" msgstr "3:2, 4x6, 35mm" -#: ../src/iop/clipping.c:2130 ../src/iop/crop.c:1127 +#: ../src/iop/clipping.c:2183 ../src/iop/crop.c:1111 msgid "16:10, 8x5" msgstr "16:10, 8x5" -#: ../src/iop/clipping.c:2132 ../src/iop/crop.c:1129 +#: ../src/iop/clipping.c:2185 ../src/iop/crop.c:1113 msgid "16:9, HDTV" msgstr "16:9, HDTV" -#: ../src/iop/clipping.c:2133 ../src/iop/crop.c:1130 +#: ../src/iop/clipping.c:2186 ../src/iop/crop.c:1114 msgid "widescreen" msgstr "geniş ekran" -#: ../src/iop/clipping.c:2134 ../src/iop/crop.c:1131 +#: ../src/iop/clipping.c:2187 ../src/iop/crop.c:1115 msgid "2:1, univisium" msgstr "2:1, univisium" -#: ../src/iop/clipping.c:2135 ../src/iop/crop.c:1132 +#: ../src/iop/clipping.c:2188 ../src/iop/crop.c:1116 msgid "cinemascope" msgstr "sinemaskop" -#: ../src/iop/clipping.c:2136 ../src/iop/crop.c:1133 +#: ../src/iop/clipping.c:2189 ../src/iop/crop.c:1117 msgid "21:9" msgstr "21:9" -#: ../src/iop/clipping.c:2137 ../src/iop/crop.c:1134 +#: ../src/iop/clipping.c:2190 ../src/iop/crop.c:1118 msgid "anamorphic" msgstr "anamorfik" -#: ../src/iop/clipping.c:2138 ../src/iop/crop.c:1135 +#: ../src/iop/clipping.c:2191 ../src/iop/crop.c:1119 msgid "3:1, panorama" msgstr "3:1, panorama" -#: ../src/iop/clipping.c:2170 ../src/iop/clipping.c:2182 ../src/iop/crop.c:1171 -#: ../src/iop/crop.c:1187 +#: ../src/iop/clipping.c:2223 ../src/iop/clipping.c:2235 ../src/iop/crop.c:1155 +#: ../src/iop/crop.c:1171 #, c-format msgid "invalid ratio format for `%s'. it should be \"number:number\"" msgstr "`%s' için geçersiz oran formatı. \"sayı: sayı\" olmalıdır" -#: ../src/iop/clipping.c:2229 ../src/iop/crop.c:1238 +#: ../src/iop/clipping.c:2282 ../src/iop/crop.c:1222 msgid "" "set the aspect ratio\n" "the list is sorted: from most square to least square\n" @@ -14267,31 +14838,31 @@ "özel en boy oranı girmek için birleşik giriş kutusunu açın ve oranı x:y veya " "ondalık biçimde yazın" -#: ../src/iop/clipping.c:2236 ../src/iop/crop.c:1252 +#: ../src/iop/clipping.c:2289 ../src/iop/crop.c:1236 msgid "margins" msgstr "kenar boşlukları" -#: ../src/iop/clipping.c:2241 ../src/iop/crop.c:1262 +#: ../src/iop/clipping.c:2294 ../src/iop/crop.c:1246 msgid "the left margin cannot overlap with the right margin" msgstr "sol kenar boşluğu sağ kenar boşluğu ile örtüşemez" -#: ../src/iop/clipping.c:2248 ../src/iop/crop.c:1270 +#: ../src/iop/clipping.c:2301 ../src/iop/crop.c:1254 msgid "the right margin cannot overlap with the left margin" msgstr "sağ kenar boşluğu sol kenar boşluğu ile örtüşemez" -#: ../src/iop/clipping.c:2253 ../src/iop/crop.c:1276 +#: ../src/iop/clipping.c:2306 ../src/iop/crop.c:1260 msgid "the top margin cannot overlap with the bottom margin" msgstr "üst kenar boşluğu alt kenar boşluğu ile örtüşemez" -#: ../src/iop/clipping.c:2260 ../src/iop/crop.c:1284 +#: ../src/iop/clipping.c:2313 ../src/iop/crop.c:1268 msgid "the bottom margin cannot overlap with the top margin" msgstr "alt kenar boşluğu üst kenar boşluğu ile örtüşemez" -#: ../src/iop/clipping.c:3019 +#: ../src/iop/clipping.c:3059 msgid "<b>commit</b>: double-click, <b>straighten</b>: right-drag" msgstr "<b>işleme</b>: çift tıklayın, <b>düzleştirin</b>: sağ sürükleyin" -#: ../src/iop/clipping.c:3023 +#: ../src/iop/clipping.c:3063 msgid "" "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag\n" "<b>straighten</b>: right-drag" @@ -14300,16 +14871,16 @@ "shift+sürükle\n" "<b>düzleştir</b>: sağa sürükleyin" -#: ../src/iop/clipping.c:3066 +#: ../src/iop/clipping.c:3104 msgid "<b>move control point</b>: drag" msgstr "<b>kontrol noktasını hareket ettir</b>: sürükleyin" -#: ../src/iop/clipping.c:3071 +#: ../src/iop/clipping.c:3109 msgid "<b>move line</b>: drag, <b>toggle symmetry</b>: click ꝏ" msgstr "" "<b>satırı taşı</b>: sürükle, <b>simetriyi değiştir</b>: ꝏ düğmesini tıklayın" -#: ../src/iop/clipping.c:3076 +#: ../src/iop/clipping.c:3114 msgid "" "<b>apply</b>: click <tt>ok</tt>, <b>toggle symmetry</b>: click ꝏ\n" "<b>move line/control point</b>: drag" @@ -14317,7 +14888,7 @@ "<b>uygula</b>: tıkla <tt>tamam</tt>, <b>simetriyi değiştir</b>: tıkla ꝏ\n" "<b>satırı taşı/kontrol noktasına</b>: sürükle" -#: ../src/iop/clipping.c:3083 +#: ../src/iop/clipping.c:3121 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag\n" @@ -14327,12 +14898,12 @@ "<b>yatay olarak taşıyın</b>: ctrl+sürükle\n" "<b>düzelt</b>: sağ sürükleyin, <b>taahhüt edin</b>: çift tıklayın" -#: ../src/iop/clipping.c:3340 ../src/iop/crop.c:1796 +#: ../src/iop/clipping.c:3380 ../src/iop/crop.c:1770 #, c-format msgid "[%s on borders] crop" msgstr "[kenarlıklarda %s] kırp" -#: ../src/iop/clipping.c:3342 ../src/iop/crop.c:1798 +#: ../src/iop/clipping.c:3382 ../src/iop/crop.c:1772 #, c-format msgid "[%s on borders] crop keeping ratio" msgstr "[kenarlıklarda %s] kırpma tutma oranı" @@ -14351,224 +14922,224 @@ msgid "adjust the look of the image" msgstr "görüntünün görünümünü ayarla" -#: ../src/iop/colisa.c:310 +#: ../src/iop/colisa.c:304 msgid "color saturation adjustment" msgstr "renk doygunluğu ayarı" -#: ../src/iop/colorbalance.c:150 +#: ../src/iop/colorbalance.c:152 msgid "color balance" msgstr "renk dengesi" -#: ../src/iop/colorbalance.c:155 +#: ../src/iop/colorbalance.c:157 msgid "lift gamma gain|cdl|color grading|contrast|saturation|hue" msgstr "kaldırma gama kazancı|cdl|renk derecelendirmesi|kontrast|doygunluk|ton" -#: ../src/iop/colorbalance.c:160 +#: ../src/iop/colorbalance.c:162 msgid "shift colors selectively by luminance range" msgstr "renkleri parlaklık aralığına göre seçici olarak kaydırın" -#: ../src/iop/colorbalance.c:164 +#: ../src/iop/colorbalance.c:166 msgid "non-linear, Lab, scene-referred" msgstr "doğrusal olmayan, Laboratuvar, sahne referanslı" #. these blobs were exported as dtstyle and copied from there: -#: ../src/iop/colorbalance.c:275 +#: ../src/iop/colorbalance.c:304 msgid "split-toning teal-orange (2nd instance)" msgstr "bölünmüş tonlu deniz mavisi-turuncu (2. örnek)" -#: ../src/iop/colorbalance.c:278 +#: ../src/iop/colorbalance.c:307 msgid "split-toning teal-orange (1st instance)" msgstr "bölünmüş tonlu deniz mavisi-turuncu (1. örnek)" -#: ../src/iop/colorbalance.c:282 +#: ../src/iop/colorbalance.c:311 msgid "generic film" msgstr "genel film" -#: ../src/iop/colorbalance.c:286 +#: ../src/iop/colorbalance.c:315 msgid "similar to Kodak Portra" msgstr "Kodak Portra'ya benzer" -#: ../src/iop/colorbalance.c:290 +#: ../src/iop/colorbalance.c:319 msgid "similar to Kodak Ektar" msgstr "Kodak Ektar'a benzer" -#: ../src/iop/colorbalance.c:294 +#: ../src/iop/colorbalance.c:323 msgid "similar to Kodachrome" msgstr "Kodachrome'a benzer" -#: ../src/iop/colorbalance.c:990 +#: ../src/iop/colorbalance.c:964 msgid "optimize luma from patches" msgstr "parlatma'yı yamalardan optimize edin" -#: ../src/iop/colorbalance.c:992 ../src/iop/colorbalance.c:2110 +#: ../src/iop/colorbalance.c:966 ../src/iop/colorbalance.c:2085 msgid "optimize luma" msgstr "parlatmayı optimize et" -#: ../src/iop/colorbalance.c:996 +#: ../src/iop/colorbalance.c:970 msgid "neutralize colors from patches" msgstr "yamalardaki renkleri nötralize et" -#: ../src/iop/colorbalance.c:998 ../src/iop/colorbalance.c:2116 +#: ../src/iop/colorbalance.c:972 ../src/iop/colorbalance.c:2091 msgid "neutralize colors" msgstr "renkleri nötralize etme" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "offset" msgstr "ofset" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "power" msgstr "güç" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "slope" msgstr "eğim" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "lift" msgstr "kaldırma" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gamma" msgstr "gamma" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gain" msgstr "kazanç" -#: ../src/iop/colorbalance.c:1787 +#: ../src/iop/colorbalance.c:1762 msgctxt "section" msgid "shadows: lift / offset" msgstr "gölgeler: kaldırma / kaydırma" -#: ../src/iop/colorbalance.c:1788 +#: ../src/iop/colorbalance.c:1763 msgctxt "section" msgid "mid-tones: gamma / power" msgstr "orta tonlar: gama / güç" -#: ../src/iop/colorbalance.c:1789 +#: ../src/iop/colorbalance.c:1764 msgctxt "section" msgid "highlights: gain / slope" msgstr "vurgular: kazanç / eğim" -#: ../src/iop/colorbalance.c:1813 +#: ../src/iop/colorbalance.c:1788 msgid "shadows / mid-tones / highlights" msgstr "gölgeler / orta tonlar / vurgular" -#: ../src/iop/colorbalance.c:1910 ../src/iop/colorbalance.c:1919 +#: ../src/iop/colorbalance.c:1885 ../src/iop/colorbalance.c:1894 msgid "color-grading mapping method" msgstr "renk derecelendirme eşleme yöntemi" -#: ../src/iop/colorbalance.c:1914 +#: ../src/iop/colorbalance.c:1889 msgid "color control sliders" msgstr "renk kontrol kaydırıcıları" -#: ../src/iop/colorbalance.c:1915 ../src/libs/colorpicker.c:51 +#: ../src/iop/colorbalance.c:1890 ../src/libs/colorpicker.c:51 msgid "HSL" msgstr "HSL" -#: ../src/iop/colorbalance.c:1916 +#: ../src/iop/colorbalance.c:1891 msgid "RGBL" msgstr "RGBL" -#: ../src/iop/colorbalance.c:1928 +#: ../src/iop/colorbalance.c:1903 msgctxt "section" msgid "master" msgstr "usta" -#: ../src/iop/colorbalance.c:1934 +#: ../src/iop/colorbalance.c:1909 msgid "saturation correction before the color balance" msgstr "renk dengesinden önce doygunluk düzeltmesi" -#: ../src/iop/colorbalance.c:1940 +#: ../src/iop/colorbalance.c:1915 msgid "saturation correction after the color balance" msgstr "renk dengesinden sonra doygunluk düzeltmesi" -#: ../src/iop/colorbalance.c:1945 +#: ../src/iop/colorbalance.c:1920 msgid "adjust to match a neutral tone" msgstr "nötr bir tona uyacak şekilde ayarlayın" #. is set in _configure_slider_blocks -#: ../src/iop/colorbalance.c:2003 +#: ../src/iop/colorbalance.c:1978 msgid "click to cycle layout" msgstr "düzeni döndürmek için tıklayın" -#: ../src/iop/colorbalance.c:2037 +#: ../src/iop/colorbalance.c:2012 msgid "factor" msgstr "etken" -#: ../src/iop/colorbalance.c:2051 +#: ../src/iop/colorbalance.c:2026 msgid "select the hue" msgstr "tonu seç" -#: ../src/iop/colorbalance.c:2063 +#: ../src/iop/colorbalance.c:2038 msgid "select the saturation" msgstr "doygunluğu seç" -#: ../src/iop/colorbalance.c:2082 +#: ../src/iop/colorbalance.c:2057 msgid "factor of lift/offset" msgstr "kaldırma/kaydırma etkeni" -#: ../src/iop/colorbalance.c:2083 +#: ../src/iop/colorbalance.c:2058 msgid "factor of red for lift/offset" msgstr "kaldırma/kaydırma için kırmızı etkeni" -#: ../src/iop/colorbalance.c:2084 +#: ../src/iop/colorbalance.c:2059 msgid "factor of green for lift/offset" msgstr "kaldırma/kaydırma için yeşil etkeni" -#: ../src/iop/colorbalance.c:2085 +#: ../src/iop/colorbalance.c:2060 msgid "factor of blue for lift/offset" msgstr "kaldırma/ofset için mavi etkeni" -#: ../src/iop/colorbalance.c:2088 +#: ../src/iop/colorbalance.c:2063 msgid "factor of gamma/power" msgstr "gama/güç etkeni" -#: ../src/iop/colorbalance.c:2089 +#: ../src/iop/colorbalance.c:2064 msgid "factor of red for gamma/power" msgstr "gama/güç için kırmızı etkeni" -#: ../src/iop/colorbalance.c:2090 +#: ../src/iop/colorbalance.c:2065 msgid "factor of green for gamma/power" msgstr "gama/güç için yeşil etkeni" -#: ../src/iop/colorbalance.c:2091 +#: ../src/iop/colorbalance.c:2066 msgid "factor of blue for gamma/power" msgstr "gama/güç için mavi etkeni" -#: ../src/iop/colorbalance.c:2094 +#: ../src/iop/colorbalance.c:2069 msgid "factor of gain/slope" msgstr "kazanç/eğim etkeni" -#: ../src/iop/colorbalance.c:2095 +#: ../src/iop/colorbalance.c:2070 msgid "factor of red for gain/slope" msgstr "kazanç/eğim için kırmızı etkeni" -#: ../src/iop/colorbalance.c:2096 +#: ../src/iop/colorbalance.c:2071 msgid "factor of green for gain/slope" msgstr "kazanç/eğim için yeşil etkeni" -#: ../src/iop/colorbalance.c:2097 +#: ../src/iop/colorbalance.c:2072 msgid "factor of blue for gain/slope" msgstr "kazanç/eğim için mavi etkeni" -#: ../src/iop/colorbalance.c:2106 +#: ../src/iop/colorbalance.c:2081 msgctxt "section" msgid "auto optimizers" msgstr "otomatik optimize ediciler" -#: ../src/iop/colorbalance.c:2111 +#: ../src/iop/colorbalance.c:2086 msgid "fit the whole histogram and center the average luma" msgstr "tüm histogramı sığdır ve ortalama parlaklığı ortala" -#: ../src/iop/colorbalance.c:2117 +#: ../src/iop/colorbalance.c:2092 msgid "optimize the RGB curves to remove color casts" msgstr "renk tonlarını ortadan kaldırmak için RGB eğrilerini optimize edin" @@ -14592,105 +15163,105 @@ "ayırmak için alfa maskeleri kullanan renk derecelendirme araçları\n" "gölgeler, orta tonlar ve vurgular" -#: ../src/iop/colorbalancergb.c:443 +#: ../src/iop/colorbalancergb.c:536 msgid "add basic colorfulness (legacy)" msgstr "temel renklilik ekle (eski)" -#: ../src/iop/colorbalancergb.c:452 +#: ../src/iop/colorbalancergb.c:545 msgid "basic colorfulness: natural skin" msgstr "temel renklilik: doğal cilt tonu" -#: ../src/iop/colorbalancergb.c:458 +#: ../src/iop/colorbalancergb.c:551 msgid "basic colorfulness: vibrant colors" msgstr "temel renklilik: canlı renkler" -#: ../src/iop/colorbalancergb.c:464 +#: ../src/iop/colorbalancergb.c:557 msgid "basic colorfulness: standard" msgstr "temel renklilik: standart" -#: ../src/iop/colorbalancergb.c:937 +#: ../src/iop/colorbalancergb.c:1022 msgid "colorbalance works only on RGB input" msgstr "renk dengesi yalnızca RGB girişinde çalışır" -#: ../src/iop/colorbalancergb.c:1506 ../src/iop/colorzones.c:2164 -#: ../src/iop/retouch.c:1884 ../src/iop/toneequal.c:1966 +#: ../src/iop/colorbalancergb.c:1577 ../src/iop/colorzones.c:2394 +#: ../src/iop/retouch.c:2069 ../src/iop/toneequal.c:1996 msgid "cannot display masks when the blending mask is displayed" msgstr "karıştırma maskesi görüntülendiğinde maskeler görüntülenemez" #. Page master -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "master" msgstr "usta" -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "global grading" msgstr "genel derecelendirme" -#: ../src/iop/colorbalancergb.c:1880 +#: ../src/iop/colorbalancergb.c:1951 msgid "rotate all hues by an angle, at the same luminance" msgstr "tüm tonları aynı parlaklıkta bir açıyla döndürün" -#: ../src/iop/colorbalancergb.c:1886 +#: ../src/iop/colorbalancergb.c:1957 msgid "increase colorfulness mostly on low-chroma colors" msgstr "çoğunlukla düşük renklendirilmiş renklerde renkliliği artırın" -#: ../src/iop/colorbalancergb.c:1892 +#: ../src/iop/colorbalancergb.c:1963 msgid "increase the contrast at constant chromaticity" msgstr "sabit renklilikte kontrastı artırın" -#: ../src/iop/colorbalancergb.c:1894 +#: ../src/iop/colorbalancergb.c:1965 msgctxt "section" msgid "linear chroma grading" msgstr "doğrusal renk derecelendirme" -#: ../src/iop/colorbalancergb.c:1901 +#: ../src/iop/colorbalancergb.c:1972 msgid "increase colorfulness at same luminance globally" msgstr "genel olarak aynı parlaklıkta renkliliği artırın" -#: ../src/iop/colorbalancergb.c:1906 +#: ../src/iop/colorbalancergb.c:1977 msgid "increase colorfulness at same luminance mostly in shadows" msgstr "çoğunlukla gölgelerde aynı parlaklıkta renkliliği artırın" -#: ../src/iop/colorbalancergb.c:1911 +#: ../src/iop/colorbalancergb.c:1982 msgid "increase colorfulness at same luminance mostly in mid-tones" msgstr "çoğunlukla orta tonlarda aynı parlaklıkta renkliliği artırın" -#: ../src/iop/colorbalancergb.c:1916 +#: ../src/iop/colorbalancergb.c:1987 msgid "increase colorfulness at same luminance mostly in highlights" msgstr "çoğunlukla vurgularda aynı parlaklıkta renkliliği artırın" -#: ../src/iop/colorbalancergb.c:1918 +#: ../src/iop/colorbalancergb.c:1989 msgctxt "section" msgid "perceptual saturation grading" msgstr "algısal doygunluk derecelendirmesi" -#: ../src/iop/colorbalancergb.c:1924 +#: ../src/iop/colorbalancergb.c:1995 msgid "add or remove saturation by an absolute amount" msgstr "mutlak bir miktarda doygunluk ekleyin veya kaldırın" -#: ../src/iop/colorbalancergb.c:1929 ../src/iop/colorbalancergb.c:1934 -#: ../src/iop/colorbalancergb.c:1939 +#: ../src/iop/colorbalancergb.c:2000 ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2010 msgid "" "increase or decrease saturation proportionally to the original pixel " "saturation" msgstr "" "doygunluğu orijinal piksel doygunluğuyla orantılı olarak artırın veya azaltın" -#: ../src/iop/colorbalancergb.c:1941 +#: ../src/iop/colorbalancergb.c:2012 msgctxt "section" msgid "perceptual brilliance grading" msgstr "algısal parlaklık derecelendirmesi" -#: ../src/iop/colorbalancergb.c:1942 +#: ../src/iop/colorbalancergb.c:2013 msgid "brilliance" msgstr "parlaklık" -#: ../src/iop/colorbalancergb.c:1947 +#: ../src/iop/colorbalancergb.c:2018 msgid "add or remove brilliance by an absolute amount" msgstr "mutlak bir miktarda parlaklık ekleyin veya kaldırın" -#: ../src/iop/colorbalancergb.c:1952 ../src/iop/colorbalancergb.c:1957 -#: ../src/iop/colorbalancergb.c:1962 +#: ../src/iop/colorbalancergb.c:2023 ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2033 msgid "" "increase or decrease brilliance proportionally to the original pixel " "brilliance" @@ -14698,156 +15269,156 @@ "parlaklığı orijinal piksel parlaklığıyla orantılı olarak artırın veya azaltın" #. Page 4-ways -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "4 ways" msgstr "4 yollu" -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "selective color grading" msgstr "seçici renk derecelendirme" -#: ../src/iop/colorbalancergb.c:1967 +#: ../src/iop/colorbalancergb.c:2038 msgctxt "section" msgid "global offset" msgstr "genel ofset" -#: ../src/iop/colorbalancergb.c:1974 +#: ../src/iop/colorbalancergb.c:2045 msgid "global luminance offset" msgstr "genel parlaklık ofseti" -#: ../src/iop/colorbalancergb.c:1979 +#: ../src/iop/colorbalancergb.c:2050 msgid "hue of the global color offset" msgstr "genel renk ofsetinin tonu" -#: ../src/iop/colorbalancergb.c:1985 +#: ../src/iop/colorbalancergb.c:2056 msgid "chroma of the global color offset" msgstr "genel renk ofsetinin renklendirmesi" -#: ../src/iop/colorbalancergb.c:1987 +#: ../src/iop/colorbalancergb.c:2058 msgctxt "section" msgid "shadows lift" msgstr "gölgeler kalkar" -#: ../src/iop/colorbalancergb.c:1988 +#: ../src/iop/colorbalancergb.c:2059 msgid "lift" msgstr "kaldırma" -#: ../src/iop/colorbalancergb.c:1994 +#: ../src/iop/colorbalancergb.c:2065 msgid "luminance gain in shadows" msgstr "gölgelerde parlaklık kazancı" -#: ../src/iop/colorbalancergb.c:1999 +#: ../src/iop/colorbalancergb.c:2070 msgid "hue of the color gain in shadows" msgstr "gölgelerde renk kazancının tonu" -#: ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2076 msgid "chroma of the color gain in shadows" msgstr "gölgelerde renk kazancının renklendirmesi" -#: ../src/iop/colorbalancergb.c:2007 +#: ../src/iop/colorbalancergb.c:2078 msgctxt "section" msgid "highlights gain" msgstr "vurgular kazanç" -#: ../src/iop/colorbalancergb.c:2008 +#: ../src/iop/colorbalancergb.c:2079 msgid "gain" msgstr "kazanç" -#: ../src/iop/colorbalancergb.c:2014 +#: ../src/iop/colorbalancergb.c:2085 msgid "luminance gain in highlights" msgstr "vurgularda parlaklık kazancı" -#: ../src/iop/colorbalancergb.c:2019 +#: ../src/iop/colorbalancergb.c:2090 msgid "hue of the color gain in highlights" msgstr "vurgularda renk kazancının tonu" -#: ../src/iop/colorbalancergb.c:2025 +#: ../src/iop/colorbalancergb.c:2096 msgid "chroma of the color gain in highlights" msgstr "vurgularda renk kazancının renklendirmesi" -#: ../src/iop/colorbalancergb.c:2027 +#: ../src/iop/colorbalancergb.c:2098 msgctxt "section" msgid "power" msgstr "güç" -#: ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2099 msgid "power" msgstr "güç" -#: ../src/iop/colorbalancergb.c:2034 +#: ../src/iop/colorbalancergb.c:2105 msgid "luminance exponent in mid-tones" msgstr "orta tonlarda parlaklık üssü" -#: ../src/iop/colorbalancergb.c:2039 +#: ../src/iop/colorbalancergb.c:2110 msgid "hue of the color exponent in mid-tones" msgstr "orta tonlarda renk üssünün tonu" -#: ../src/iop/colorbalancergb.c:2045 +#: ../src/iop/colorbalancergb.c:2116 msgid "chroma of the color exponent in mid-tones" msgstr "orta tonlarda renk üssünün renklendirmesi" #. Page masks -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "masks" msgstr "maskeler" -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "isolate luminances" msgstr "parlaklıkları izole et" -#: ../src/iop/colorbalancergb.c:2052 +#: ../src/iop/colorbalancergb.c:2123 msgid "choose in which uniform color space the saturation is computed" msgstr "doygunluğun hangi tekdüze renk boşluğunda hesaplanacağını seçin" -#: ../src/iop/colorbalancergb.c:2054 +#: ../src/iop/colorbalancergb.c:2125 msgctxt "section" msgid "luminance ranges" msgstr "parlaklık aralıkları" -#: ../src/iop/colorbalancergb.c:2065 +#: ../src/iop/colorbalancergb.c:2136 msgid "weight of the shadows over the whole tonal range" msgstr "tüm ton aralığında gölgelerin ağırlığı" -#: ../src/iop/colorbalancergb.c:2073 +#: ../src/iop/colorbalancergb.c:2144 msgid "position of the middle-gray reference for masking" msgstr "maskeleme için orta gri referansın konumu" -#: ../src/iop/colorbalancergb.c:2081 +#: ../src/iop/colorbalancergb.c:2152 msgid "weights of highlights over the whole tonal range" msgstr "tüm ton aralığında vurguların ağırlıkları" -#: ../src/iop/colorbalancergb.c:2086 +#: ../src/iop/colorbalancergb.c:2157 msgctxt "section" msgid "threshold" msgstr "eşik" -#: ../src/iop/colorbalancergb.c:2091 +#: ../src/iop/colorbalancergb.c:2162 msgid "peak white luminance value used to normalize the power function" msgstr "" "güç işlevini normalleştirmek için kullanılan tepe beyaz parlaklık değeri" -#: ../src/iop/colorbalancergb.c:2097 +#: ../src/iop/colorbalancergb.c:2168 msgid "peak gray luminance value used to normalize the power function" msgstr "güç işlevini normalleştirmek için kullanılan tepe gri parlaklık değeri" -#: ../src/iop/colorbalancergb.c:2099 +#: ../src/iop/colorbalancergb.c:2170 msgctxt "section" msgid "mask preview settings" msgstr "maske önizleme ayarları" -#: ../src/iop/colorbalancergb.c:2102 +#: ../src/iop/colorbalancergb.c:2173 msgid "checkerboard color 1" msgstr "dama tahtası rengi 1" -#: ../src/iop/colorbalancergb.c:2105 ../src/iop/colorbalancergb.c:2114 +#: ../src/iop/colorbalancergb.c:2176 ../src/iop/colorbalancergb.c:2185 msgid "select color of the checkerboard from a swatch" msgstr "bir renk örneğinden dama tahtasının rengini seçin" -#: ../src/iop/colorbalancergb.c:2111 +#: ../src/iop/colorbalancergb.c:2182 msgid "checkerboard color 2" msgstr "dama tahtası rengi 2" -#: ../src/iop/colorbalancergb.c:2121 +#: ../src/iop/colorbalancergb.c:2192 msgid "checkerboard size" msgstr "dama tahtası boyutu" @@ -14864,11 +15435,11 @@ msgstr "renk alanı düzeltmeleri yapın ve görünümleri uygulayın" #: ../src/iop/colorchecker.c:131 ../src/iop/colorchecker.c:133 -#: ../src/iop/colorize.c:106 ../src/iop/colormapping.c:154 -#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:136 -#: ../src/iop/colorzones.c:146 ../src/iop/defringe.c:83 ../src/iop/levels.c:139 -#: ../src/iop/monochrome.c:99 ../src/iop/shadhi.c:198 -#: ../src/iop/tonecurve.c:212 ../src/iop/vibrance.c:96 +#: ../src/iop/colorize.c:99 ../src/iop/colormapping.c:154 +#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:121 +#: ../src/iop/colorzones.c:147 ../src/iop/defringe.c:83 ../src/iop/levels.c:141 +#: ../src/iop/monochrome.c:101 ../src/iop/shadhi.c:145 +#: ../src/iop/tonecurve.c:185 ../src/iop/vibrance.c:98 msgid "linear or non-linear, Lab, display-referred" msgstr "doğrusal veya doğrusal olmayan, Laboratuar, ekran referanslı" @@ -14876,40 +15447,40 @@ msgid "defined by profile, Lab" msgstr "profil tarafından tanımlanmış, Lab" -#: ../src/iop/colorchecker.c:294 +#: ../src/iop/colorchecker.c:308 msgid "it8 skin tones" msgstr "it8 ten tonları" -#: ../src/iop/colorchecker.c:310 +#: ../src/iop/colorchecker.c:324 msgid "Helmholtz/Kohlrausch monochrome" msgstr "Helmholtz/Kohlrausch tek renkli" -#: ../src/iop/colorchecker.c:327 +#: ../src/iop/colorchecker.c:341 msgid "Fuji Astia emulation" msgstr "Fuji Astia öykünmesi" -#: ../src/iop/colorchecker.c:341 +#: ../src/iop/colorchecker.c:355 msgid "Fuji Classic Chrome emulation" msgstr "Fuji Klasik Renkli öykünmesi" -#: ../src/iop/colorchecker.c:355 +#: ../src/iop/colorchecker.c:369 msgid "Fuji Monochrome emulation" msgstr "Fuji Tek renkli öykünmesi" -#: ../src/iop/colorchecker.c:369 +#: ../src/iop/colorchecker.c:383 msgid "Fuji Provia emulation" msgstr "Fuji Provia öykünmesi" -#: ../src/iop/colorchecker.c:383 +#: ../src/iop/colorchecker.c:397 msgid "Fuji Velvia emulation" msgstr "Fuji Velvia öykünmesi" -#: ../src/iop/colorchecker.c:841 ../src/iop/colorchecker.c:1436 +#: ../src/iop/colorchecker.c:846 ../src/iop/colorchecker.c:1441 #, c-format msgid "patch #%d" msgstr "yama #%d" -#: ../src/iop/colorchecker.c:1283 +#: ../src/iop/colorchecker.c:1288 #, c-format msgid "" "(%2.2f %2.2f %2.2f)\n" @@ -14926,15 +15497,15 @@ "yamayı silmek için sağ tıklayın\n" "yamayı değiştirmek için renk seçerken shift+tıklayın" -#: ../src/iop/colorchecker.c:1431 +#: ../src/iop/colorchecker.c:1436 msgid "patch" msgstr "yama" -#: ../src/iop/colorchecker.c:1432 +#: ../src/iop/colorchecker.c:1437 msgid "color checker patch" msgstr "renk denetleyicisi yama" -#: ../src/iop/colorchecker.c:1446 +#: ../src/iop/colorchecker.c:1451 msgid "" "adjust target color Lab 'L' channel\n" "lower values darken target color while higher brighten it" @@ -14942,7 +15513,7 @@ "hedef rengi ayarla Lab 'L' kanalı\n" "düşük değerler hedef rengi koyulaştırırken yüksek değerler onu aydınlatır" -#: ../src/iop/colorchecker.c:1454 +#: ../src/iop/colorchecker.c:1459 msgid "" "adjust target color Lab 'a' channel\n" "lower values shift target color towards greens while higher shift towards " @@ -14952,11 +15523,11 @@ "daha düşük değerler, hedef rengi yeşillere doğru kaydırırken, daha yüksek " "değerler eflatuna doğru kayar" -#: ../src/iop/colorchecker.c:1457 +#: ../src/iop/colorchecker.c:1462 msgid "green-magenta offset" msgstr "yeşil-eflatun ofset" -#: ../src/iop/colorchecker.c:1466 +#: ../src/iop/colorchecker.c:1471 msgid "" "adjust target color Lab 'b' channel\n" "lower values shift target color towards blues while higher shift towards " @@ -14966,11 +15537,11 @@ "daha düşük değerler hedef rengi maviye kaydırırken daha yüksek değerler " "sarıya doğru kayar" -#: ../src/iop/colorchecker.c:1469 +#: ../src/iop/colorchecker.c:1474 msgid "blue-yellow offset" msgstr "mavi-sarı ofset" -#: ../src/iop/colorchecker.c:1478 +#: ../src/iop/colorchecker.c:1483 msgid "" "adjust target color saturation\n" "adjusts 'a' and 'b' channels of target color in Lab space simultaneously\n" @@ -14982,11 +15553,11 @@ "düşük değerler daha düşük doygunluğa doğru ölçeklenirken, daha yüksek ölçek " "daha yüksek doygunluğa doğru ölçeklenir" -#: ../src/iop/colorchecker.c:1487 +#: ../src/iop/colorchecker.c:1492 msgid "target color" msgstr "hedef renk" -#: ../src/iop/colorchecker.c:1490 +#: ../src/iop/colorchecker.c:1495 msgid "" "control target color of the patches\n" "relative - target color is relative from the patch original color\n" @@ -14996,15 +15567,15 @@ "göreceli - hedef renk, yamanın orijinal renginden görecelidir\n" "mutlak - hedef renk mutlak Lab değeridir" -#: ../src/iop/colorchecker.c:1494 +#: ../src/iop/colorchecker.c:1499 msgid "absolute" msgstr "mutlak" -#: ../src/iop/colorcontrast.c:85 +#: ../src/iop/colorcontrast.c:77 msgid "color contrast" msgstr "renk kontrastı" -#: ../src/iop/colorcontrast.c:95 +#: ../src/iop/colorcontrast.c:87 msgid "" "increase saturation and separation between\n" "opposite colors" @@ -15012,7 +15583,7 @@ "arasındaki doygunluğu ve ayrımı artırın\n" "zıt renkler" -#: ../src/iop/colorcontrast.c:324 +#: ../src/iop/colorcontrast.c:330 msgid "" "steepness of the a* curve in Lab\n" "lower values desaturate greens and magenta while higher saturate them" @@ -15021,7 +15592,7 @@ "daha düşük değerler yeşilleri ve eflatunu solgunlaştırırken, daha yüksek " "değerler onları doyurur" -#: ../src/iop/colorcontrast.c:331 +#: ../src/iop/colorcontrast.c:337 msgid "" "steepness of the b* curve in Lab\n" "lower values desaturate blues and yellows while higher saturate them" @@ -15038,19 +15609,19 @@ msgid "correct white balance selectively for blacks and whites" msgstr "siyahlar ve beyazlar için seçici olarak beyaz dengesini düzeltin" -#: ../src/iop/colorcorrection.c:107 +#: ../src/iop/colorcorrection.c:109 msgid "warm tone" msgstr "sıcak ton" -#: ../src/iop/colorcorrection.c:115 +#: ../src/iop/colorcorrection.c:117 msgid "warming filter" msgstr "ısıtma filtresi" -#: ../src/iop/colorcorrection.c:123 +#: ../src/iop/colorcorrection.c:125 msgid "cooling filter" msgstr "soğutma filtresi" -#: ../src/iop/colorcorrection.c:257 +#: ../src/iop/colorcorrection.c:250 msgid "" "drag the line for split-toning. bright means highlights, dark means shadows. " "use mouse wheel to change saturation." @@ -15058,7 +15629,7 @@ "bölünmüş tonlama için çizgiyi sürükleyin. parlak vurgular, karanlık gölgeler " "anlamına gelir. doygunluğu değiştirmek için fare tekerleğini kullanın." -#: ../src/iop/colorcorrection.c:276 +#: ../src/iop/colorcorrection.c:269 msgid "set the global saturation" msgstr "genel doygunluğu ayarla" @@ -15075,7 +15646,7 @@ "RGB değerlerini yeniden eşlemek için renk profillerini kullanma" #: ../src/iop/colorin.c:133 ../src/iop/colorout.c:89 ../src/iop/demosaic.c:293 -#: ../src/iop/rawprepare.c:158 +#: ../src/iop/rawprepare.c:174 msgid "mandatory" msgstr "zorunlu" @@ -15083,31 +15654,31 @@ msgid "defined by profile" msgstr "profil tarafından tanımlanmış" -#: ../src/iop/colorin.c:542 +#: ../src/iop/colorin.c:582 #, c-format msgid "" "can't extract matrix from colorspace `%s', it will be replaced by Rec2020 " "RGB!" msgstr "`%s' renk alanından matris çıkaramaz, onun yerine Kayıt2020 RGB geçer!" -#: ../src/iop/colorin.c:1424 +#: ../src/iop/colorin.c:1362 #, c-format msgid "`%s' color matrix not found!" msgstr "`%s' renk matrisi bulunamadı!" -#: ../src/iop/colorin.c:1463 +#: ../src/iop/colorin.c:1401 msgid "input profile could not be generated!" msgstr "giriş profili oluşturulamadı!" -#: ../src/iop/colorin.c:1560 +#: ../src/iop/colorin.c:1498 msgid "unsupported input profile has been replaced by linear Rec709 RGB!" msgstr "desteklenmeyen giriş profili lineer Kayıt709 RGB ile değiştirildi!" -#: ../src/iop/colorin.c:1844 +#: ../src/iop/colorin.c:1782 msgid "external ICC profiles" msgstr "harici ICC profilleri" -#: ../src/iop/colorin.c:1889 +#: ../src/iop/colorin.c:1827 #, c-format msgid "" "embedded ICC profile properties:\n" @@ -15130,43 +15701,43 @@ "telif hakkı: <b>%s</b>\n" "\n" -#: ../src/iop/colorin.c:2084 +#: ../src/iop/colorin.c:2022 msgid "input profile" msgstr "giriş profili" -#: ../src/iop/colorin.c:2088 +#: ../src/iop/colorin.c:2026 msgid "working profile" msgstr "çalışma profili" -#: ../src/iop/colorin.c:2097 +#: ../src/iop/colorin.c:2035 msgid "working ICC profiles" msgstr "çalışan ICC profilleri" -#: ../src/iop/colorin.c:2109 +#: ../src/iop/colorin.c:2047 msgid "confine Lab values to gamut of RGB color space" msgstr "Lab değerlerini RGB renk alanı gamut ile sınırlandırın" -#: ../src/iop/colorize.c:84 +#: ../src/iop/colorize.c:75 msgid "colorize" msgstr "renklendir" -#: ../src/iop/colorize.c:104 +#: ../src/iop/colorize.c:97 msgid "overlay a solid color on the image" msgstr "resmin üzerine düz bir renk bindir" -#: ../src/iop/colorize.c:341 ../src/iop/splittoning.c:485 +#: ../src/iop/colorize.c:354 ../src/iop/splittoning.c:481 msgid "select the hue tone" msgstr "ton tonunu seç" -#: ../src/iop/colorize.c:347 +#: ../src/iop/colorize.c:360 msgid "select the saturation shadow tone" msgstr "doygunluk gölge tonunu seçin" -#: ../src/iop/colorize.c:351 +#: ../src/iop/colorize.c:364 msgid "lightness of color" msgstr "rengin açıklığı" -#: ../src/iop/colorize.c:355 +#: ../src/iop/colorize.c:368 msgid "mix value of source lightness" msgstr "kaynak hafifliğinin karışım değeri" @@ -15180,36 +15751,36 @@ msgstr "" "bir görüntüden diğerine bir renk paleti ve ton yeniden bölümleme aktarın" -#: ../src/iop/colormapping.c:1030 +#: ../src/iop/colormapping.c:1019 msgid "source clusters:" msgstr "kaynak kümeleri:" -#: ../src/iop/colormapping.c:1036 +#: ../src/iop/colormapping.c:1025 msgid "target clusters:" msgstr "hedef kümeler:" -#: ../src/iop/colormapping.c:1045 +#: ../src/iop/colormapping.c:1034 msgid "acquire as source" msgstr "kaynak olarak alma" -#: ../src/iop/colormapping.c:1049 +#: ../src/iop/colormapping.c:1038 msgid "analyze this image as a source image" msgstr "bu görüntüyü kaynak görüntü olarak analiz et" -#: ../src/iop/colormapping.c:1051 +#: ../src/iop/colormapping.c:1040 msgid "acquire as target" msgstr "hedef olarak alma" -#: ../src/iop/colormapping.c:1055 +#: ../src/iop/colormapping.c:1044 msgid "analyze this image as a target image" msgstr "bu görüntüyü hedef görüntü olarak analiz et" -#: ../src/iop/colormapping.c:1058 +#: ../src/iop/colormapping.c:1047 msgid "number of clusters to find in image. value change resets all clusters" msgstr "" "görüntüde bulunacak küme sayısı. değer değişikliği tüm kümeleri sıfırlar" -#: ../src/iop/colormapping.c:1061 +#: ../src/iop/colormapping.c:1050 msgid "" "how clusters are mapped. low values: based on color proximity, high values: " "based on color dominance" @@ -15217,7 +15788,7 @@ "kümeler nasıl eşlenir. düşük değerler: renk yakınlığına göre, yüksek " "değerler: renk baskınlığına göre" -#: ../src/iop/colormapping.c:1066 +#: ../src/iop/colormapping.c:1055 msgid "level of histogram equalization" msgstr "histogram eşitleme seviyesi" @@ -15237,112 +15808,112 @@ msgid "non-linear, RGB or Lab, display-referred" msgstr "doğrusal olmayan, RGB veya Lab, ekran referanslı" -#: ../src/iop/colorout.c:679 +#: ../src/iop/colorout.c:695 msgid "missing output profile has been replaced by sRGB!" msgstr "eksik çıktı profili sRGB ile değiştirildi!" -#: ../src/iop/colorout.c:701 +#: ../src/iop/colorout.c:717 msgid "missing softproof profile has been replaced by sRGB!" msgstr "eksik softproof profili sRGB ile değiştirildi!" -#: ../src/iop/colorout.c:744 +#: ../src/iop/colorout.c:760 msgid "unsupported output profile has been replaced by sRGB!" msgstr "desteklenmeyen çıktı profili sRGB ile değiştirildi!" -#: ../src/iop/colorout.c:869 +#: ../src/iop/colorout.c:885 msgid "output intent" msgstr "çıktı amacı" -#: ../src/iop/colorout.c:870 +#: ../src/iop/colorout.c:886 msgid "rendering intent" msgstr "amaç oluşturma" -#: ../src/iop/colorout.c:872 ../src/libs/export.c:1246 +#: ../src/iop/colorout.c:888 ../src/libs/export.c:1358 #: ../src/libs/print_settings.c:2475 ../src/libs/print_settings.c:2824 -#: ../src/views/darkroom.c:2518 ../src/views/lighttable.c:1176 +#: ../src/views/darkroom.c:2359 ../src/views/lighttable.c:1176 msgid "perceptual" msgstr "algısal" -#: ../src/iop/colorout.c:873 ../src/libs/export.c:1247 +#: ../src/iop/colorout.c:889 ../src/libs/export.c:1359 #: ../src/libs/print_settings.c:2476 ../src/libs/print_settings.c:2825 -#: ../src/views/darkroom.c:2519 ../src/views/lighttable.c:1177 +#: ../src/views/darkroom.c:2360 ../src/views/lighttable.c:1177 msgid "relative colorimetric" msgstr "bağıl kolorimetrik" -#: ../src/iop/colorout.c:874 ../src/libs/export.c:1248 +#: ../src/iop/colorout.c:890 ../src/libs/export.c:1360 #: ../src/libs/print_settings.c:2477 ../src/libs/print_settings.c:2826 -#: ../src/views/darkroom.c:2520 ../src/views/lighttable.c:1178 +#: ../src/views/darkroom.c:2361 ../src/views/lighttable.c:1178 msgctxt "rendering intent" msgid "saturation" msgstr "doygunluk" -#: ../src/iop/colorout.c:875 ../src/libs/export.c:1249 +#: ../src/iop/colorout.c:891 ../src/libs/export.c:1361 #: ../src/libs/print_settings.c:2478 ../src/libs/print_settings.c:2827 -#: ../src/views/darkroom.c:2521 ../src/views/lighttable.c:1179 +#: ../src/views/darkroom.c:2362 ../src/views/lighttable.c:1179 msgid "absolute colorimetric" msgstr "mutlak kolorimetrik" -#: ../src/iop/colorout.c:893 +#: ../src/iop/colorout.c:909 msgid "export ICC profiles" msgstr "ICC profillerini dışa aktar" -#: ../src/iop/colorreconstruction.c:129 +#: ../src/iop/colorreconstruction.c:114 msgid "color reconstruction" msgstr "renk yeniden yapılanması" -#: ../src/iop/colorreconstruction.c:134 +#: ../src/iop/colorreconstruction.c:119 msgid "recover clipped highlights by propagating surrounding colors" msgstr "çevreleyen renkleri yayarak kırpılan vurguları kurtarın" -#: ../src/iop/colorreconstruction.c:628 ../src/iop/colorreconstruction.c:1040 -#: ../src/iop/globaltonemap.c:193 ../src/iop/globaltonemap.c:362 -#: ../src/iop/hazeremoval.c:553 ../src/iop/hazeremoval.c:788 -#: ../src/iop/levels.c:336 +#: ../src/iop/colorreconstruction.c:647 ../src/iop/colorreconstruction.c:1053 +#: ../src/iop/globaltonemap.c:227 ../src/iop/globaltonemap.c:396 +#: ../src/iop/hazeremoval.c:541 ../src/iop/hazeremoval.c:776 +#: ../src/iop/levels.c:358 msgid "inconsistent output" msgstr "tutarsız çıktı" -#: ../src/iop/colorreconstruction.c:666 +#: ../src/iop/colorreconstruction.c:685 msgid "module `color reconstruction' failed" msgstr "modül \"renk yeniden yapılandırma\" başarısız oldu" -#: ../src/iop/colorreconstruction.c:1237 +#: ../src/iop/colorreconstruction.c:1246 msgid "spatial" msgstr "uzaysal" -#: ../src/iop/colorreconstruction.c:1238 +#: ../src/iop/colorreconstruction.c:1247 msgid "range" msgstr "aralık" -#: ../src/iop/colorreconstruction.c:1239 +#: ../src/iop/colorreconstruction.c:1248 msgid "precedence" msgstr "öncelik" -#: ../src/iop/colorreconstruction.c:1255 +#: ../src/iop/colorreconstruction.c:1264 msgid "pixels with lightness values above this threshold are corrected" msgstr "bu eşiğin üzerindeki açıklık değerlerine sahip pikseller düzeltilir" -#: ../src/iop/colorreconstruction.c:1256 +#: ../src/iop/colorreconstruction.c:1265 msgid "how far to look for replacement colors in spatial dimensions" msgstr "uzamsal boyutlarda yedek renkler için ne kadar uzağa bakılacağı" -#: ../src/iop/colorreconstruction.c:1257 +#: ../src/iop/colorreconstruction.c:1266 msgid "how far to look for replacement colors in the luminance dimension" msgstr "parlaklık boyutunda yedek renkler için ne kadar uzağa bakılacağı" -#: ../src/iop/colorreconstruction.c:1258 +#: ../src/iop/colorreconstruction.c:1267 msgid "if and how to give precedence to specific replacement colors" msgstr "belirli değiştirme renklerine öncelik verilmesi durumunda ve nasıl" -#: ../src/iop/colorreconstruction.c:1259 +#: ../src/iop/colorreconstruction.c:1268 msgid "the hue tone which should be given precedence over other hue tones" msgstr "diğer ton tonlarına göre öncelik verilmesi gereken ton tonu" -#: ../src/iop/colorreconstruction.c:1261 ../src/iop/demosaic.c:1277 -#: ../src/iop/highlights.c:1168 +#: ../src/iop/colorreconstruction.c:1270 ../src/iop/demosaic.c:1324 +#: ../src/iop/highlights.c:1258 msgid "not applicable" msgstr "uygulanamaz" -#: ../src/iop/colorreconstruction.c:1262 +#: ../src/iop/colorreconstruction.c:1271 msgid "no highlights reconstruction for monochrome images" msgstr "tek renkli görüntüler için parlak nokta rekonstrüksiyonu yok" @@ -15356,7 +15927,7 @@ "bu modül kullanımdan kaldırılmıştır. bunun yerine renk eşleme modülünü daha " "iyi kullanın." -#: ../src/iop/colortransfer.c:439 +#: ../src/iop/colortransfer.c:441 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -15366,43 +15937,43 @@ "ve sadece kapatabilmeniz için burada\n" "ve yeni renk eşleme modülüne geçin." -#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2332 +#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2573 msgid "color zones" msgstr "renk bölgeleri" -#: ../src/iop/colorzones.c:144 +#: ../src/iop/colorzones.c:145 msgid "selectively shift hues, chroma and lightness of pixels" msgstr "piksellerin tonlarını, rengini ve parlaklığını seçerek değiştirin" -#: ../src/iop/colorzones.c:606 +#: ../src/iop/colorzones.c:684 msgid "B&W: with red" msgstr "S&B: kırmızı ile" -#: ../src/iop/colorzones.c:629 +#: ../src/iop/colorzones.c:707 msgid "B&W: with skin tones" msgstr "S&B: ten tonları" -#: ../src/iop/colorzones.c:652 +#: ../src/iop/colorzones.c:732 msgid "polarizing filter" msgstr "polarize filtre" -#: ../src/iop/colorzones.c:673 +#: ../src/iop/colorzones.c:753 msgid "natural skin tones" msgstr "doğal ten tonları" -#: ../src/iop/colorzones.c:704 +#: ../src/iop/colorzones.c:784 msgid "B&W: film" msgstr "S&B: film" -#: ../src/iop/colorzones.c:724 +#: ../src/iop/colorzones.c:804 msgid "HSL base setting" msgstr "HSL temel ayarı" -#: ../src/iop/colorzones.c:2264 +#: ../src/iop/colorzones.c:2500 msgid "orange" msgstr "turuncu" -#: ../src/iop/colorzones.c:2421 ../src/iop/rgbcurve.c:1375 +#: ../src/iop/colorzones.c:2673 ../src/iop/rgbcurve.c:1375 msgid "" "create a curve based on an area from the image\n" "drag to create a flat curve\n" @@ -15414,48 +15985,48 @@ "pozitif bir eğri oluşturmak için ctrl+sürükle\n" "negatif bir eğri oluşturmak için shift+sürükle" -#: ../src/iop/colorzones.c:2425 ../src/iop/rgbcurve.c:1379 +#: ../src/iop/colorzones.c:2677 ../src/iop/rgbcurve.c:1379 msgid "create curve" msgstr "eğri oluştur" #. edit by area -#: ../src/iop/colorzones.c:2442 +#: ../src/iop/colorzones.c:2696 msgid "edit by area" msgstr "alana göre düzenle" -#: ../src/iop/colorzones.c:2447 +#: ../src/iop/colorzones.c:2702 msgid "edit the curve nodes by area" msgstr "eğri düğümlerini alana göre düzenle" -#: ../src/iop/colorzones.c:2454 +#: ../src/iop/colorzones.c:2710 msgid "display selection" msgstr "ekran seçimi" -#: ../src/iop/colorzones.c:2463 +#: ../src/iop/colorzones.c:2722 msgid "choose selection criterion, will be the abscissa in the graph" msgstr "seçim kriterini seçin, grafikteki apsis olacaktır" -#: ../src/iop/colorzones.c:2466 +#: ../src/iop/colorzones.c:2725 msgid "choose between a smoother or stronger effect" msgstr "daha yumuşak veya daha güçlü bir efekt arasında seçim yapın" -#: ../src/iop/colorzones.c:2494 ../src/iop/rgbcurve.c:1410 -#: ../src/iop/tonecurve.c:1172 +#: ../src/iop/colorzones.c:2762 ../src/iop/rgbcurve.c:1410 +#: ../src/iop/tonecurve.c:1194 msgid "interpolation method" msgstr "aradeğerleme yöntemi" -#: ../src/iop/colorzones.c:2496 ../src/iop/rgbcurve.c:1412 -#: ../src/iop/tonecurve.c:1174 +#: ../src/iop/colorzones.c:2764 ../src/iop/rgbcurve.c:1412 +#: ../src/iop/tonecurve.c:1196 msgid "centripetal spline" msgstr "merkezcil eğri" -#: ../src/iop/colorzones.c:2497 ../src/iop/rgbcurve.c:1413 -#: ../src/iop/tonecurve.c:1175 +#: ../src/iop/colorzones.c:2765 ../src/iop/rgbcurve.c:1413 +#: ../src/iop/tonecurve.c:1197 msgid "monotonic spline" msgstr "monotonik eğri" -#: ../src/iop/colorzones.c:2500 ../src/iop/rgbcurve.c:1416 -#: ../src/iop/tonecurve.c:1177 +#: ../src/iop/colorzones.c:2768 ../src/iop/rgbcurve.c:1416 +#: ../src/iop/tonecurve.c:1199 msgid "" "change this method if you see oscillations or cusps in the curve\n" "- cubic spline is better to produce smooth curves but oscillates when nodes " @@ -15473,25 +16044,25 @@ "- monotonik, saf analitik fonksiyonların doğruluğu için daha iyidir (log, " "gama, exp)" -#: ../src/iop/crop.c:132 +#: ../src/iop/crop.c:122 msgid "crop" msgstr "kırp" -#: ../src/iop/crop.c:137 +#: ../src/iop/crop.c:127 msgid "reframe|distortion" msgstr "yeniden çerçeveleme|bozulma" -#: ../src/iop/crop.c:143 +#: ../src/iop/crop.c:133 msgid "change the framing" msgstr "çerçeveyi değiştir" -#: ../src/iop/crop.c:1667 +#: ../src/iop/crop.c:1651 msgid "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag" msgstr "" "<b>yeniden boyutlandır</b>: sürükleyin, <b>en boy oranını koru</b>: " "shift+sürükle" -#: ../src/iop/crop.c:1676 +#: ../src/iop/crop.c:1660 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag" @@ -15515,7 +16086,7 @@ "bu modül kullanımdan kaldırılmıştır. lütfen bunun yerine kromatik sapma " "modülünü kullanın." -#: ../src/iop/defringe.c:415 +#: ../src/iop/defringe.c:417 msgid "" "method for color protection:\n" " - global average: fast, might show slightly wrong previews in high " @@ -15535,11 +16106,11 @@ "gerektiğinde daha fazla desatürasyona izin verebilir\n" " - statik: hızlı, eşiği yalnızca statik bir sınır olarak kullanır" -#: ../src/iop/defringe.c:422 +#: ../src/iop/defringe.c:424 msgid "radius for detecting fringe" msgstr "saçak algılama yarıçapı" -#: ../src/iop/defringe.c:425 +#: ../src/iop/defringe.c:427 msgid "threshold for defringe, higher values mean less defringing" msgstr "sınırlama eşiği, daha yüksek değerler daha az sınırlama anlamına gelir" @@ -15553,12 +16124,12 @@ "bir sensör renk filtresi dizisi okumasından tam RGB piksellerini yeniden " "oluşturun" -#: ../src/iop/demosaic.c:1086 +#: ../src/iop/demosaic.c:1133 #, c-format msgid "`%s' color matrix not found for 4bayer image!" msgstr "4bayer görüntüsü için `%s' renk matrisi bulunamadı!" -#: ../src/iop/demosaic.c:1238 +#: ../src/iop/demosaic.c:1285 msgid "" "Bayer sensor demosaicing method, PPG and RCD are fast, AMaZE and LMMSE are " "slow.\n" @@ -15570,7 +16141,7 @@ "LMMSE, yüksek ISO görüntüleri için en uygunudur.\n" "çift demosaicers çift işlem süresi." -#: ../src/iop/demosaic.c:1242 +#: ../src/iop/demosaic.c:1289 msgid "" "X-Trans sensor demosaicing method, Markesteijn 3-pass and frequency domain " "chroma are slow.\n" @@ -15580,11 +16151,11 @@ "kroma yavaştır.\n" "çift demosaicers çift işlem süresi." -#: ../src/iop/demosaic.c:1248 +#: ../src/iop/demosaic.c:1295 msgid "Bayer4 sensor demosaicing methods." msgstr "Bayer4 sensörü demozaikleştirme yöntemleri." -#: ../src/iop/demosaic.c:1252 +#: ../src/iop/demosaic.c:1299 msgid "" "threshold for edge-aware median.\n" "set to 0.0 to switch off\n" @@ -15594,7 +16165,7 @@ "kapatmak için 0.0'a ayarlayın\n" "kenarları yok saymak için 1.0'a ayarlayın" -#: ../src/iop/demosaic.c:1257 +#: ../src/iop/demosaic.c:1304 msgid "" "contrast threshold for dual demosaic.\n" "set to 0.0 for high frequency content\n" @@ -15606,7 +16177,7 @@ "düz içerik için 1.0 olarak ayarlayın\n" "maskeyi görselleştirmek için geçiş yap" -#: ../src/iop/demosaic.c:1265 +#: ../src/iop/demosaic.c:1312 msgid "" "LMMSE refinement steps. the median steps average the output,\n" "refine adds some recalculation of red & blue channels" @@ -15614,50 +16185,50 @@ "LMMSE iyileştirme adımları. medyan adımlar çıktının ortalamasını alır,\n" "rafine, kırmızı ve mavi kanalların bazı yeniden hesaplanmasını ekler" -#: ../src/iop/demosaic.c:1268 +#: ../src/iop/demosaic.c:1315 msgid "how many color smoothing median steps after demosaicing" msgstr "demosaicing'den sonra kaç renk yumuşatma medyan adımı" -#: ../src/iop/demosaic.c:1271 +#: ../src/iop/demosaic.c:1318 msgid "green channels matching method" msgstr "yeşil kanallar eşleştirme yöntemi" -#: ../src/iop/demosaic.c:1278 +#: ../src/iop/demosaic.c:1325 msgid "demosaicing is only used for color raw images" msgstr "demosaicing yalnızca renkli ham görüntüler için kullanılır" -#: ../src/iop/denoiseprofile.c:714 +#: ../src/iop/denoiseprofile.c:766 msgid "wavelets: chroma only" msgstr "dalgacıklar: yalnızca renklendirme" -#: ../src/iop/denoiseprofile.c:720 +#: ../src/iop/denoiseprofile.c:772 msgid "denoise (profiled)" msgstr "gürültü (profilli)" -#: ../src/iop/denoiseprofile.c:726 +#: ../src/iop/denoiseprofile.c:778 msgid "denoise using noise statistics profiled on sensors" msgstr "" "sensörlerde profilli gürültü istatistiklerini kullanarak gürültüyü azaltın" -#: ../src/iop/denoiseprofile.c:2846 +#: ../src/iop/denoiseprofile.c:2850 #, c-format msgid "found match for ISO %d" msgstr "ISO %d için eşleşme bulundu" -#: ../src/iop/denoiseprofile.c:2855 +#: ../src/iop/denoiseprofile.c:2859 #, c-format msgid "interpolated from ISO %d and %d" msgstr "ISO %d ve %d'den enterpolasyonlu" -#: ../src/iop/denoiseprofile.c:3719 +#: ../src/iop/denoiseprofile.c:3723 msgid "Y0" msgstr "Y0" -#: ../src/iop/denoiseprofile.c:3720 +#: ../src/iop/denoiseprofile.c:3724 msgid "U0V0" msgstr "U0V0" -#: ../src/iop/denoiseprofile.c:3760 +#: ../src/iop/denoiseprofile.c:3764 msgid "" "use only with a perfectly\n" "uniform image if you want to\n" @@ -15667,36 +16238,36 @@ "isterseniz tek tip görüntü\n" "gürültü varyansını tahmin edin." -#: ../src/iop/denoiseprofile.c:3766 +#: ../src/iop/denoiseprofile.c:3770 msgid "variance red: " msgstr "varyans kırmızı: " -#: ../src/iop/denoiseprofile.c:3770 +#: ../src/iop/denoiseprofile.c:3774 msgid "variance computed on the red channel" msgstr "kırmızı kanalda hesaplanan varyans" -#: ../src/iop/denoiseprofile.c:3775 +#: ../src/iop/denoiseprofile.c:3779 msgid "variance green: " msgstr "varyans yeşili: " -#: ../src/iop/denoiseprofile.c:3779 +#: ../src/iop/denoiseprofile.c:3783 msgid "variance computed on the green channel" msgstr "yeşil kanalda hesaplanan varyans" -#: ../src/iop/denoiseprofile.c:3784 +#: ../src/iop/denoiseprofile.c:3788 msgid "variance blue: " msgstr "varyans mavisi: " -#: ../src/iop/denoiseprofile.c:3788 +#: ../src/iop/denoiseprofile.c:3792 msgid "variance computed on the blue channel" msgstr "mavi kanalda hesaplanan varyans" -#: ../src/iop/denoiseprofile.c:3799 ../src/libs/export.c:1208 +#: ../src/iop/denoiseprofile.c:3803 ../src/libs/export.c:1320 #: ../src/libs/print_settings.c:2418 ../src/libs/print_settings.c:2774 msgid "profile" msgstr "profil" -#: ../src/iop/denoiseprofile.c:3833 +#: ../src/iop/denoiseprofile.c:3837 msgid "" "adapt denoising according to the\n" "white balance coefficients.\n" @@ -15712,7 +16283,7 @@ "daha önceki bir örnekse devre dışı bırakılmalıdır\n" "renk karıştırma modu ile kullanılmıştır." -#: ../src/iop/denoiseprofile.c:3840 +#: ../src/iop/denoiseprofile.c:3844 msgid "" "fix bugs in Anscombe transform resulting\n" "in undersmoothing of the green channel in\n" @@ -15734,11 +16305,11 @@ "alırsın etkinleştirildikten sonra, yapamayacaksınız\n" "eski algoritmaya geri dön." -#: ../src/iop/denoiseprofile.c:3850 +#: ../src/iop/denoiseprofile.c:3854 msgid "profile used for variance stabilization" msgstr "varyans stabilizasyonu için kullanılan profil" -#: ../src/iop/denoiseprofile.c:3852 +#: ../src/iop/denoiseprofile.c:3856 msgid "" "method used in the denoising core.\n" "non-local means works best for `lightness' blending,\n" @@ -15748,7 +16319,7 @@ "yerel olmayan araçlar, \"hafiflik\" karıştırma için en iyi sonucu verir,\n" "dalgacıklar \"renk\" karıştırma için en iyi sonucu verir" -#: ../src/iop/denoiseprofile.c:3856 +#: ../src/iop/denoiseprofile.c:3860 msgid "" "color representation used within the algorithm.\n" "RGB keeps the RGB channels separated,\n" @@ -15760,7 +16331,7 @@ "Y0U0V0 kanalları birleştirirken\n" "renklendirme ve parlatma'yı ayrı ayrı gürültüden arındırın." -#: ../src/iop/denoiseprofile.c:3861 +#: ../src/iop/denoiseprofile.c:3865 msgid "" "radius of the patches to match.\n" "increase for more sharpness on strong edges, and better denoising of smooth " @@ -15774,7 +16345,7 @@ "ayrıntılar aşırı yumuşatılmışsa, bu değeri azaltın veya merkezi piksel " "ağırlığı kaydırıcısını artırın." -#: ../src/iop/denoiseprofile.c:3867 +#: ../src/iop/denoiseprofile.c:3871 msgid "" "emergency use only: radius of the neighborhood to search patches in. " "increase for better denoising performance, but watch the long runtimes! " @@ -15784,7 +16355,7 @@ "daha iyi gürültü giderme performansı için artırın, ancak uzun çalışma " "sürelerine dikkat edin! büyük yarıçaplar çok yavaş olabilir. uyarıldın" -#: ../src/iop/denoiseprofile.c:3873 +#: ../src/iop/denoiseprofile.c:3877 msgid "" "scattering of the neighborhood to search patches in.\n" "increase for better coarse-grain noise reduction.\n" @@ -15794,7 +16365,7 @@ "daha iyi iri taneli gürültü azaltma için artırın.\n" "yürütme süresini etkilemez." -#: ../src/iop/denoiseprofile.c:3877 +#: ../src/iop/denoiseprofile.c:3881 msgid "" "increase the weight of the central pixel\n" "of the patch in the patch comparison.\n" @@ -15806,11 +16377,11 @@ "yama boyutu olduğunda ayrıntıları kurtarmak için kullanışlıdır\n" "oldukça büyüktür." -#: ../src/iop/denoiseprofile.c:3881 +#: ../src/iop/denoiseprofile.c:3885 msgid "finetune denoising strength" msgstr "ince ayar gürültü azaltma gücü" -#: ../src/iop/denoiseprofile.c:3883 +#: ../src/iop/denoiseprofile.c:3887 msgid "" "controls the way parameters are autoset\n" "increase if shadows are not denoised enough\n" @@ -15822,7 +16393,7 @@ "veya kroma gürültüsü devam ederse.\n" "Bu, fotoğrafınız az pozlanmışsa olabilir." -#: ../src/iop/denoiseprofile.c:3888 +#: ../src/iop/denoiseprofile.c:3892 msgid "" "finetune shadows denoising.\n" "decrease to denoise more aggressively\n" @@ -15832,7 +16403,7 @@ "daha agresif bir şekilde gürültüyü azaltmak için azaltın\n" "görüntünün karanlık alanları." -#: ../src/iop/denoiseprofile.c:3892 +#: ../src/iop/denoiseprofile.c:3896 msgid "" "correct color cast in shadows.\n" "decrease if shadows are too purple.\n" @@ -15842,7 +16413,7 @@ "gölgeler çok mor ise azaltın.\n" "gölgeler çok yeşilse artırın." -#: ../src/iop/denoiseprofile.c:3896 +#: ../src/iop/denoiseprofile.c:3900 msgid "" "upgrade the variance stabilizing algorithm.\n" "new algorithm extends the current one.\n" @@ -15875,80 +16446,80 @@ "ortadan kaldırın." #. deblurring presets -#: ../src/iop/diffuse.c:219 +#: ../src/iop/diffuse.c:246 msgid "lens deblur: soft" msgstr "mercek bulanıklığı: yumuşak" -#: ../src/iop/diffuse.c:244 +#: ../src/iop/diffuse.c:271 msgid "lens deblur: medium" msgstr "mercek bulanıklığı: orta" -#: ../src/iop/diffuse.c:269 +#: ../src/iop/diffuse.c:296 msgid "lens deblur: hard" msgstr "mercek bulanıklığı: sert" -#: ../src/iop/diffuse.c:295 +#: ../src/iop/diffuse.c:322 msgid "dehaze" msgstr "buğusunu gidermek" -#: ../src/iop/diffuse.c:321 +#: ../src/iop/diffuse.c:348 msgid "denoise: fine" msgstr "gürültü: iyi" -#: ../src/iop/diffuse.c:346 +#: ../src/iop/diffuse.c:373 msgid "denoise: medium" msgstr "gürültü: orta" -#: ../src/iop/diffuse.c:371 +#: ../src/iop/diffuse.c:398 msgid "denoise: coarse" msgstr "gürültü: kaba" -#: ../src/iop/diffuse.c:446 +#: ../src/iop/diffuse.c:473 msgid "sharpen demosaicing: no AA filter" msgstr "demosaicing'i keskinleştirin AA filtresi yok" -#: ../src/iop/diffuse.c:472 +#: ../src/iop/diffuse.c:499 msgid "sharpen demosaicing: AA filter" msgstr "desaicing'i keskinleştirin: AA filtresi" -#: ../src/iop/diffuse.c:499 +#: ../src/iop/diffuse.c:526 msgid "simulate watercolor" msgstr "sulu boyayı benzetme" -#: ../src/iop/diffuse.c:524 +#: ../src/iop/diffuse.c:551 msgid "simulate line drawing" msgstr "çizgi çizmeyi benzetme" -#: ../src/iop/diffuse.c:576 +#: ../src/iop/diffuse.c:603 msgid "inpaint highlights" msgstr "iç boya vurguları" #. fast presets for slow hardware -#: ../src/iop/diffuse.c:603 +#: ../src/iop/diffuse.c:630 msgid "sharpness: fast" msgstr "keskinlik: hızlı" -#: ../src/iop/diffuse.c:655 +#: ../src/iop/diffuse.c:682 msgid "sharpness: strong" msgstr "keskinlik: güçlü" -#: ../src/iop/diffuse.c:680 +#: ../src/iop/diffuse.c:707 msgid "local contrast: fast" msgstr "yerel kontrast: hızlı" -#: ../src/iop/diffuse.c:1391 ../src/iop/diffuse.c:1666 +#: ../src/iop/diffuse.c:1418 ../src/iop/diffuse.c:1693 msgid "diffuse/sharpen failed to allocate memory, check your RAM settings" msgstr "dağıtma/keskinleştirme bellek ayıramadı, RAM ayarlarınızı kontrol edin" #. Additional parameters #. Camera settings -#: ../src/iop/diffuse.c:1782 ../src/iop/splittoning.c:537 +#: ../src/iop/diffuse.c:1797 ../src/iop/splittoning.c:533 #: ../src/libs/camera.c:486 msgctxt "section" msgid "properties" msgstr "özellikler" -#: ../src/iop/diffuse.c:1788 +#: ../src/iop/diffuse.c:1803 msgid "" "more iterations make the effect stronger but the module slower.\n" "this is analogous to giving more time to the diffusion reaction.\n" @@ -15961,7 +16532,7 @@ "keskinleştirme veya iç boyama yapmayı planlıyorsanız,\n" "daha fazla yineleme yeniden yapılandırmaya yardımcı olur." -#: ../src/iop/diffuse.c:1797 +#: ../src/iop/diffuse.c:1812 msgid "" "main scale of the diffusion.\n" "zero makes diffusion act on the finest details more heavily.\n" @@ -15976,7 +16547,7 @@ "bulanıklaştırma ve gürültü giderme için sıfıra ayarlayın.\n" "bunun yerine yerel kontrast üzerinde hareket etmek için artırın." -#: ../src/iop/diffuse.c:1807 +#: ../src/iop/diffuse.c:1822 msgid "" "width of the diffusion around the central radius.\n" "high values diffuse on a large band of radii.\n" @@ -15990,12 +16561,12 @@ "bulanıklaştırmayı planlıyorsanız,\n" "yarıçap, mercek bulanıklığınızın genişliği civarında olmalıdır." -#: ../src/iop/diffuse.c:1814 +#: ../src/iop/diffuse.c:1829 msgctxt "section" msgid "speed (sharpen ↔ diffuse)" msgstr "hız (keskinleştir ↔ dağıt)" -#: ../src/iop/diffuse.c:1821 +#: ../src/iop/diffuse.c:1836 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 1st order anisotropy (set below).\n" @@ -16011,7 +16582,7 @@ "pozitif değerler dağılır ve bulanıklaşır,\n" "sıfır hiçbir şey yapmaz." -#: ../src/iop/diffuse.c:1831 +#: ../src/iop/diffuse.c:1846 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 2nd order anisotropy (set below).\n" @@ -16027,7 +16598,7 @@ "pozitif değerler dağılır ve bulanıklaşır,\n" "sıfır hiçbir şey yapmaz." -#: ../src/iop/diffuse.c:1841 +#: ../src/iop/diffuse.c:1856 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 3rd order anisotropy (set below).\n" @@ -16043,7 +16614,7 @@ "pozitif değerler dağılır ve bulanıklaşır,\n" "sıfır hiçbir şey yapmaz." -#: ../src/iop/diffuse.c:1851 +#: ../src/iop/diffuse.c:1866 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 4th order anisotropy (set below).\n" @@ -16059,12 +16630,12 @@ "pozitif değerler dağılır ve bulanıklaşır,\n" "sıfır hiçbir şey yapmaz." -#: ../src/iop/diffuse.c:1857 +#: ../src/iop/diffuse.c:1872 msgctxt "section" msgid "direction" msgstr "yön" -#: ../src/iop/diffuse.c:1864 +#: ../src/iop/diffuse.c:1879 msgid "" "direction of 1st order speed (set above).\n" "\n" @@ -16078,7 +16649,7 @@ "pozitif değerler kenarlardan kaçınır (izofotlar),\n" "sıfır her ikisini de eşit olarak etkiler (izotropik)." -#: ../src/iop/diffuse.c:1873 +#: ../src/iop/diffuse.c:1888 msgid "" "direction of 2nd order speed (set above).\n" "\n" @@ -16092,7 +16663,7 @@ "pozitif değerler kenarlardan kaçınır (izofotlar),\n" "sıfır her ikisini de eşit olarak etkiler (izotropik)." -#: ../src/iop/diffuse.c:1882 +#: ../src/iop/diffuse.c:1897 msgid "" "direction of 3rd order speed (set above).\n" "\n" @@ -16106,7 +16677,7 @@ "pozitif değerler kenarlardan kaçınır (izofotlar),\n" "sıfır her ikisini de eşit olarak etkiler (izotropik)." -#: ../src/iop/diffuse.c:1891 +#: ../src/iop/diffuse.c:1906 msgid "" "direction of 4th order speed (set above).\n" "\n" @@ -16120,12 +16691,12 @@ "pozitif değerler kenarlardan kaçınır (izofotlar),\n" "sıfır her ikisini de eşit olarak etkiler (izotropik)." -#: ../src/iop/diffuse.c:1897 +#: ../src/iop/diffuse.c:1912 msgctxt "section" msgid "edge management" msgstr "kenar yönetimi" -#: ../src/iop/diffuse.c:1904 +#: ../src/iop/diffuse.c:1919 msgid "" "increase or decrease the sharpness of the highest frequencies.\n" "can be used to keep details after blooming,\n" @@ -16135,7 +16706,7 @@ "çiçek açtıktan sonra detayları saklamak için kullanılabilir,\n" "bağımsız keskinlik için hızı negatif değerlere ayarlayın." -#: ../src/iop/diffuse.c:1911 +#: ../src/iop/diffuse.c:1926 msgid "" "define the sensitivity of the variance penalty for edges.\n" "increase to exclude more edges from diffusion,\n" @@ -16145,7 +16716,7 @@ "daha fazla kenarı yayılmasını hariç tutmak için artırın,\n" "saçaklar veya haleler belirirse." -#: ../src/iop/diffuse.c:1918 +#: ../src/iop/diffuse.c:1933 msgid "" "define the variance threshold between edge amplification and penalty.\n" "decrease if you want pixels on smooth surfaces get a boost,\n" @@ -16157,12 +16728,12 @@ "pürüzsüz yüzeylerde parazit görüyorsanız veya\n" "karanlık alanlar parlak alanlara kıyasla fazla keskin görünüyorsa." -#: ../src/iop/diffuse.c:1924 +#: ../src/iop/diffuse.c:1939 msgctxt "section" msgid "diffusion spatiality" msgstr "yayılma uzamsallığı" -#: ../src/iop/diffuse.c:1931 +#: ../src/iop/diffuse.c:1946 msgid "" "luminance threshold for the mask.\n" "0. disables the luminance masking and applies the module on the whole " @@ -16182,7 +16753,7 @@ msgstr "titret veya posterleştir" #: ../src/iop/dither.c:112 -msgid "dithering|posterization|reduce bit-depth" +msgid "dithering|posterization|reduce bit depth" msgstr "renk taklidi|posterleştirme|bit derinliğini azalt" #: ../src/iop/dither.c:117 @@ -16198,23 +16769,23 @@ msgstr "düzeltici, artistik" #. add the preset. -#: ../src/iop/dither.c:147 +#: ../src/iop/dither.c:149 msgid "dither" msgstr "titreme" -#: ../src/iop/dither.c:759 +#: ../src/iop/dither.c:761 msgid "radius for blurring step" msgstr "bulanıklaştırma adımı yarıçapı" -#: ../src/iop/dither.c:771 +#: ../src/iop/dither.c:773 msgid "the gradient range where to apply random dither" msgstr "rastgele renk taklidinin uygulanacağı eğri aralığı" -#: ../src/iop/dither.c:772 +#: ../src/iop/dither.c:774 msgid "gradient range" msgstr "eğri aralığı" -#: ../src/iop/dither.c:780 +#: ../src/iop/dither.c:782 msgid "damping level of random dither" msgstr "rastgele titreşim sönümleme seviyesi" @@ -16222,14 +16793,14 @@ msgid "legacy equalizer" msgstr "eski ekolayzır" -#: ../src/iop/equalizer.c:110 +#: ../src/iop/equalizer.c:112 msgid "" "this module is deprecated. better use contrast equalizer module instead." msgstr "" "bu modül kullanımdan kaldırılmıştır. bunun yerine kontrast ekolayzır " "modülünü daha iyi kullanın." -#: ../src/iop/equalizer.c:238 +#: ../src/iop/equalizer.c:240 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -16247,33 +16818,33 @@ "çekimin pozunu hala kameranın içindeymişsiniz gibi yeniden yapın\n" "artan ISO ayarına benzer, renk açısından güvenli bir parlaklık kullanarak" -#: ../src/iop/exposure.c:279 +#: ../src/iop/exposure.c:301 msgid "magic lantern defaults" msgstr "sihirli fener varsayılanları" -#: ../src/iop/exposure.c:351 ../src/iop/rawoverexposed.c:135 -#: ../src/iop/rawoverexposed.c:254 +#: ../src/iop/exposure.c:373 ../src/iop/rawoverexposed.c:137 +#: ../src/iop/rawoverexposed.c:256 #, c-format msgid "failed to get raw buffer from image `%s'" msgstr "`%s' görüntüsünden ham arabellek alınamadı" -#: ../src/iop/exposure.c:629 +#: ../src/iop/exposure.c:647 #, no-c-format msgid "compensate camera exposure (%+.1f EV)" msgstr "kamera pozlamasını telafi et (%+.1f EV)" #. Write report in GUI -#: ../src/iop/exposure.c:813 +#: ../src/iop/exposure.c:831 #, c-format msgid "L : \t%.1f %%" msgstr "L : \t%.1f %%" -#: ../src/iop/exposure.c:945 ../src/libs/history.c:953 +#: ../src/iop/exposure.c:963 ../src/libs/history.c:953 #, c-format msgid "%.2f EV" msgstr "%.2f EV" -#: ../src/iop/exposure.c:1113 +#: ../src/iop/exposure.c:1131 msgid "" "automatically remove the camera exposure bias\n" "this is useful if you exposed the image to the right." @@ -16281,27 +16852,27 @@ "kamera pozlama önyargısını otomatik olarak kaldırın\n" "bu, görüntüyü sağda gösterirseniz kullanışlıdır." -#: ../src/iop/exposure.c:1132 +#: ../src/iop/exposure.c:1150 #, no-c-format msgid "where in the histogram to meter for deflicking. E.g. 50% is median" msgstr "saptırma için ölçüm yapılacak histogramın neresinde. Örneğin. %50 orta" -#: ../src/iop/exposure.c:1138 +#: ../src/iop/exposure.c:1156 msgid "" "where to place the exposure level for processed pics, EV below overexposure." msgstr "" "işlenmiş resimler için pozlama seviyesinin nereye yerleştirileceği, EV aşırı " "pozlamanın altında." -#: ../src/iop/exposure.c:1142 +#: ../src/iop/exposure.c:1160 msgid "computed EC: " msgstr "hesaplanmış EC: " -#: ../src/iop/exposure.c:1145 +#: ../src/iop/exposure.c:1163 msgid "what exposure correction has actually been used" msgstr "gerçekte hangi pozlama düzeltmesi kullanılmış" -#: ../src/iop/exposure.c:1164 +#: ../src/iop/exposure.c:1182 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -16314,11 +16885,11 @@ "kötü ayarlanmışsa, gamut dışında siyaha yakın renkleri keser\n" "RGB değerlerini negatiflere iterek." -#: ../src/iop/exposure.c:1174 -msgid "spot exposure mapping" -msgstr "noktasal maruz kalma eşlemesi" +#: ../src/iop/exposure.c:1192 +msgid "area exposure mapping" +msgstr "alan maruziyeti haritalaması" -#: ../src/iop/exposure.c:1180 +#: ../src/iop/exposure.c:1198 msgid "" "define a target brightness, in terms of exposure,\n" "for a selected region of the image (the control sample),\n" @@ -16334,7 +16905,7 @@ " konunuzun kritik bir parçası veya hareket etmeyen ve\n" " görüntü serinizin üzerinde sürekli olarak aydınlatılmış yüzey." -#: ../src/iop/exposure.c:1189 +#: ../src/iop/exposure.c:1207 msgid "" "\"correction\" automatically adjust exposure\n" "such that the input lightness is mapped to the target.\n" @@ -16346,11 +16917,11 @@ "\"ölçü\" basitçe bir giriş renginin şu şekilde nasıl eşlendiğini gösterir:\n" "pozlama telafisi ve bir hedefi tanımlamak için kullanılabilir." -#: ../src/iop/exposure.c:1215 +#: ../src/iop/exposure.c:1233 msgid "L : \tN/A" msgstr "L : \tN/A" -#: ../src/iop/exposure.c:1233 +#: ../src/iop/exposure.c:1251 msgid "the desired target exposure after mapping" msgstr "haritalamadan sonra istenen hedef maruziyet" @@ -16360,53 +16931,53 @@ "bu modül kullanımdan kaldırılmıştır. bunun yerine filmik rgb modülünü " "kullansan iyi olur." -#: ../src/iop/filmic.c:304 +#: ../src/iop/filmic.c:333 msgid "09 EV (low-key)" msgstr "09 EV (düşük anahtar)" -#: ../src/iop/filmic.c:312 +#: ../src/iop/filmic.c:341 msgid "10 EV (indoors)" msgstr "10 EV (iç mekan)" -#: ../src/iop/filmic.c:320 +#: ../src/iop/filmic.c:349 msgid "11 EV (dim outdoors)" msgstr "11 EV (dışarıda loş)" -#: ../src/iop/filmic.c:328 +#: ../src/iop/filmic.c:357 msgid "12 EV (outdoors)" msgstr "12 EV (dış mekan)" -#: ../src/iop/filmic.c:336 +#: ../src/iop/filmic.c:365 msgid "13 EV (bright outdoors)" msgstr "13 EV (açık havada aydınlık)" -#: ../src/iop/filmic.c:344 +#: ../src/iop/filmic.c:373 msgid "14 EV (backlighting)" msgstr "14 EV (arka aydınlatma)" -#: ../src/iop/filmic.c:352 +#: ../src/iop/filmic.c:381 msgid "15 EV (sunset)" msgstr "15 EV (gün batımı)" -#: ../src/iop/filmic.c:360 +#: ../src/iop/filmic.c:389 msgid "16 EV (HDR)" msgstr "16 EV (HDR)" -#: ../src/iop/filmic.c:368 +#: ../src/iop/filmic.c:397 msgid "18 EV (HDR++)" msgstr "18 EV (HDR++)" -#: ../src/iop/filmic.c:1480 +#: ../src/iop/filmic.c:1505 msgid "read-only graph, use the parameters below to set the nodes" msgstr "" "salt okunur grafik, düğümleri ayarlamak için aşağıdaki parametreleri kullanın" -#: ../src/iop/filmic.c:1484 +#: ../src/iop/filmic.c:1509 msgctxt "section" msgid "logarithmic shaper" msgstr "logaritmik şekillendirici" -#: ../src/iop/filmic.c:1492 +#: ../src/iop/filmic.c:1517 msgid "" "adjust to match the average luminance of the subject.\n" "except in back-lighting situations, this should be around 18%." @@ -16414,7 +16985,7 @@ "konunun ortalama parlaklığına uyacak şekilde ayarlayın.\n" "arkadan aydınlatma durumları dışında, bu %18 civarında olmalıdır." -#: ../src/iop/filmic.c:1504 ../src/iop/filmicrgb.c:4442 +#: ../src/iop/filmic.c:1529 ../src/iop/filmicrgb.c:4506 msgid "" "number of stops between middle gray and pure white.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16424,7 +16995,7 @@ "Bu, bir ışık ölçerin olay yerinde size vereceği bir okumadır.\n" "vurguların kırpılmasından kaçınılacak şekilde ayarlayın" -#: ../src/iop/filmic.c:1517 ../src/iop/filmicrgb.c:4453 +#: ../src/iop/filmic.c:1542 ../src/iop/filmicrgb.c:4517 msgid "" "number of stops between middle gray and pure black.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16436,20 +17007,20 @@ "daha fazla kontrast elde etmek için artırın.\n" "düşük ışıkta daha fazla ayrıntı elde etmek için azaltın." -#: ../src/iop/filmic.c:1529 +#: ../src/iop/filmic.c:1554 msgid "" -"enlarge or shrink the computed dynamic range.\n" +"increase or decrease the computed dynamic range.\n" "useful in conjunction with \"auto tune levels\"." msgstr "" -"hesaplanan dinamik aralığı büyütün veya küçültün.\n" +"hesaplanan dinamik aralığı artırın veya azaltın.\n" "\"otomatik ayar seviyeleri\" ile birlikte kullanışlıdır." -#: ../src/iop/filmic.c:1535 ../src/iop/filmicrgb.c:4467 -#: ../src/iop/profile_gamma.c:659 +#: ../src/iop/filmic.c:1560 ../src/iop/filmicrgb.c:4531 +#: ../src/iop/profile_gamma.c:673 msgid "auto tune levels" msgstr "otomatik ayar seviyeleri" -#: ../src/iop/filmic.c:1538 +#: ../src/iop/filmic.c:1563 msgid "" "try to optimize the settings with some guessing.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16461,12 +17032,12 @@ "manzaralar ve eşit şekilde aydınlatılmış resimler için daha iyi çalışır\n" "ancak yüksek tuşlar ve düşük tuşlar için başarısız olur." -#: ../src/iop/filmic.c:1543 +#: ../src/iop/filmic.c:1568 msgctxt "section" msgid "filmic S curve" msgstr "filmsel S eğrisi" -#: ../src/iop/filmic.c:1550 ../src/iop/filmicrgb.c:4554 +#: ../src/iop/filmic.c:1575 ../src/iop/filmicrgb.c:4618 msgid "" "slope of the linear part of the curve\n" "affects mostly the mid-tones" @@ -16475,12 +17046,12 @@ "çoğunlukla orta tonları etkiler" #. geotagging -#: ../src/iop/filmic.c:1557 ../src/iop/filmicrgb.c:4563 -#: ../src/libs/metadata_view.c:157 +#: ../src/iop/filmic.c:1582 ../src/iop/filmicrgb.c:4627 +#: ../src/libs/metadata_view.c:161 msgid "latitude" msgstr "enlem" -#: ../src/iop/filmic.c:1560 +#: ../src/iop/filmic.c:1585 msgid "" "width of the linear domain in the middle of the curve.\n" "increase to get more contrast at the extreme luminances.\n" @@ -16490,11 +17061,11 @@ "aşırı parlaklıklarda daha fazla kontrast elde etmek için artırın.\n" "bunun orta tonlar üzerinde hiçbir etkisi yoktur." -#: ../src/iop/filmic.c:1567 +#: ../src/iop/filmic.c:1592 msgid "shadows/highlights balance" msgstr "gölgeler/vurgular dengesi" -#: ../src/iop/filmic.c:1570 ../src/iop/filmicrgb.c:4574 +#: ../src/iop/filmic.c:1595 ../src/iop/filmicrgb.c:4638 msgid "" "slides the latitude along the slope\n" "to give more room to shadows or highlights.\n" @@ -16506,7 +17077,7 @@ "ayrıntıları korumanız gerekiyorsa kullanın\n" "histogramın bir ucunda." -#: ../src/iop/filmic.c:1580 +#: ../src/iop/filmic.c:1605 msgid "" "desaturates the input of the module globally.\n" "you need to set this value below 100%\n" @@ -16516,7 +17087,7 @@ "bu değeri %100'ün altına ayarlamanız gerekir\n" "krominans koruması etkinse." -#: ../src/iop/filmic.c:1590 +#: ../src/iop/filmic.c:1615 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16527,41 +17098,41 @@ "gölgeler ve/veya vurgular aşırı doygunsa azaltın." #. Add export intent combo -#: ../src/iop/filmic.c:1600 ../src/libs/export.c:1227 +#: ../src/iop/filmic.c:1625 ../src/libs/export.c:1339 #: ../src/libs/print_settings.c:2473 ../src/libs/print_settings.c:2820 -#: ../src/views/darkroom.c:2524 ../src/views/lighttable.c:1182 +#: ../src/views/darkroom.c:2365 ../src/views/lighttable.c:1182 msgid "intent" msgstr "amaç" -#: ../src/iop/filmic.c:1601 +#: ../src/iop/filmic.c:1626 msgid "contrasted" msgstr "kontrastlı" #. cubic spline -#: ../src/iop/filmic.c:1602 +#: ../src/iop/filmic.c:1627 msgid "faded" msgstr "solmuş" #. centripetal spline -#: ../src/iop/filmic.c:1603 ../src/iop/profile_gamma.c:621 +#: ../src/iop/filmic.c:1628 ../src/iop/profile_gamma.c:635 msgid "linear" msgstr "doğrusal" #. monotonic spline -#: ../src/iop/filmic.c:1604 +#: ../src/iop/filmic.c:1629 msgid "optimized" msgstr "iyileştirilmiş" -#: ../src/iop/filmic.c:1606 +#: ../src/iop/filmic.c:1631 msgid "change this method if you see reversed contrast or faded blacks" msgstr "ters kontrast veya soluk siyahlar görürseniz bu yöntemi değiştirin" #. Preserve color -#: ../src/iop/filmic.c:1610 +#: ../src/iop/filmic.c:1635 msgid "preserve the chrominance" msgstr "krominansı korumak" -#: ../src/iop/filmic.c:1612 +#: ../src/iop/filmic.c:1637 msgid "" "ensure the original color are preserved.\n" "may reinforce chromatic aberrations.\n" @@ -16571,12 +17142,12 @@ "renk sapmalarını güçlendirebilir.\n" "bu modu kullanırken doygunluğu manuel olarak ayarlamanız gerekir." -#: ../src/iop/filmic.c:1622 +#: ../src/iop/filmic.c:1647 msgctxt "section" msgid "destination/display" msgstr "hedef/ekran" -#: ../src/iop/filmic.c:1640 ../src/iop/filmicrgb.c:4593 +#: ../src/iop/filmic.c:1665 ../src/iop/filmicrgb.c:4657 msgid "" "luminance of output pure black, this should be 0%\n" "except if you want a faded look" @@ -16584,7 +17155,7 @@ "saf siyah çıktının parlaklığı, bu %0 olmalıdır\n" "soluk bir görünüm istiyorsanız hariç" -#: ../src/iop/filmic.c:1649 ../src/iop/filmicrgb.c:4600 +#: ../src/iop/filmic.c:1674 ../src/iop/filmicrgb.c:4664 msgid "" "middle gray value of the target display or color space.\n" "you should never touch that unless you know what you are doing." @@ -16592,7 +17163,7 @@ "hedef görüntüsünün veya renk uzayının orta gri değeri.\n" "ne yaptığınızı bilmiyorsanız buna asla dokunmamalısınız." -#: ../src/iop/filmic.c:1658 ../src/iop/filmicrgb.c:4607 +#: ../src/iop/filmic.c:1683 ../src/iop/filmicrgb.c:4671 msgid "" "luminance of output pure white, this should be 100%\n" "except if you want a faded look" @@ -16600,11 +17171,11 @@ "çıktının parlaklığı saf beyaz, bu %100 olmalıdır\n" "soluk bir görünüm istiyorsanız hariç" -#: ../src/iop/filmic.c:1664 +#: ../src/iop/filmic.c:1689 msgid "target gamma" msgstr "hedef gama" -#: ../src/iop/filmic.c:1666 +#: ../src/iop/filmic.c:1691 msgid "" "power or gamma of the transfer function\n" "of the display or color space.\n" @@ -16633,7 +17204,7 @@ "SDR ekranlarında ve kağıt çıktılarda görüntülemek için\n" "tahribatsız yollarla kırpmayı önlerken" -#: ../src/iop/filmicrgb.c:1310 +#: ../src/iop/filmicrgb.c:1365 msgid "" "filmic highlights reconstruction failed to allocate memory, check your RAM " "settings" @@ -16641,71 +17212,71 @@ "filmsel vurgular yeniden yapılandırması bellek ayıramadı, RAM ayarlarınızı " "kontrol edin" -#: ../src/iop/filmicrgb.c:2301 +#: ../src/iop/filmicrgb.c:2369 msgid "filmic highlights reconstruction failed to allocate memory on GPU" msgstr "filmsel olayları yeniden yapılandırma GPU'da bellek ayıramadı" -#: ../src/iop/filmicrgb.c:2419 +#: ../src/iop/filmicrgb.c:2487 msgid "filmic works only on RGB input" msgstr "filmic yalnızca RGB girişinde çalışır" -#: ../src/iop/filmicrgb.c:3484 +#: ../src/iop/filmicrgb.c:3548 msgid "look only" msgstr "sadece bak" -#: ../src/iop/filmicrgb.c:3486 +#: ../src/iop/filmicrgb.c:3550 msgid "look + mapping (lin)" msgstr "bak + haritalama (lin)" -#: ../src/iop/filmicrgb.c:3488 +#: ../src/iop/filmicrgb.c:3552 msgid "look + mapping (log)" msgstr "bak + eşleme (günlük)" -#: ../src/iop/filmicrgb.c:3490 +#: ../src/iop/filmicrgb.c:3554 msgid "dynamic range mapping" msgstr "dinamik aralık eşleme" -#: ../src/iop/filmicrgb.c:3857 +#: ../src/iop/filmicrgb.c:3921 #, c-format msgid "(%.0f %%)" msgstr "(%.0f %%)" -#: ../src/iop/filmicrgb.c:3873 +#: ../src/iop/filmicrgb.c:3937 #, no-c-format msgid "% display" msgstr "% görüntüle" -#: ../src/iop/filmicrgb.c:3885 +#: ../src/iop/filmicrgb.c:3949 msgid "EV scene" msgstr "EV sahnesi" -#: ../src/iop/filmicrgb.c:3889 +#: ../src/iop/filmicrgb.c:3953 #, no-c-format msgid "% camera" msgstr "% Kamera" #. Page DISPLAY -#: ../src/iop/filmicrgb.c:3925 ../src/iop/filmicrgb.c:4587 +#: ../src/iop/filmicrgb.c:3989 ../src/iop/filmicrgb.c:4651 msgid "display" msgstr "ekran" #. axis legend -#: ../src/iop/filmicrgb.c:3934 +#: ../src/iop/filmicrgb.c:3998 msgid "(%)" msgstr "(%)" #. Page SCENE -#: ../src/iop/filmicrgb.c:3943 ../src/iop/filmicrgb.c:4422 +#: ../src/iop/filmicrgb.c:4007 ../src/iop/filmicrgb.c:4486 msgid "scene" msgstr "sahne" #. axis legend -#: ../src/iop/filmicrgb.c:3952 +#: ../src/iop/filmicrgb.c:4016 msgid "(EV)" msgstr "(EV)" #. we are over the graph area -#: ../src/iop/filmicrgb.c:4364 +#: ../src/iop/filmicrgb.c:4428 msgid "" "use the parameters below to set the nodes.\n" "the bright curve is the filmic tone mapping curve\n" @@ -16715,11 +17286,11 @@ "parlak eğri, filmsel ton haritalama eğrisidir\n" "karanlık eğri doygunluk eğrisidir." -#: ../src/iop/filmicrgb.c:4370 +#: ../src/iop/filmicrgb.c:4434 msgid "toggle axis labels and values display" msgstr "eksen etiketleri ve değerleri ekranı arasında geçiş yap" -#: ../src/iop/filmicrgb.c:4374 +#: ../src/iop/filmicrgb.c:4438 msgid "" "cycle through graph views.\n" "left click: cycle forward.\n" @@ -16731,7 +17302,7 @@ "sağ tıklayın: geri gidin.\n" "çift tıklayın: görünüme bakmak için sıfırlayın." -#: ../src/iop/filmicrgb.c:4431 +#: ../src/iop/filmicrgb.c:4495 #, no-c-format msgid "" "adjust to match the average luminance of the image's subject.\n" @@ -16742,15 +17313,15 @@ "buraya girilen değer daha sonra %18.45'e yeniden eşlenecektir.\n" "genel parlaklığı artırmak için değeri azaltın." -#: ../src/iop/filmicrgb.c:4461 +#: ../src/iop/filmicrgb.c:4525 msgid "" -"symmetrically enlarge or shrink the computed dynamic range.\n" +"symmetrically increase or decrease the computed dynamic range.\n" "useful to give a safety margin to extreme luminances." msgstr "" -"hesaplanan dinamik aralığı simetrik olarak büyütür veya küçültür.\n" -"aşırı parlaklıklara bir güvenlik payı vermek için kullanışlıdır." +"hesaplanan dinamik aralığı simetrik olarak artırın veya azaltın.\n" +"aşırı parlaklıklara bir güvenlik payı vermek açısından kullanışlıdır." -#: ../src/iop/filmicrgb.c:4468 +#: ../src/iop/filmicrgb.c:4532 msgid "" "try to optimize the settings with some statistical assumptions.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16768,16 +17339,16 @@ "kullanmadan önce varsayımlarını anladığınızdan emin olun." #. Page RECONSTRUCT -#: ../src/iop/filmicrgb.c:4477 +#: ../src/iop/filmicrgb.c:4541 msgid "reconstruct" msgstr "yeniden inşa etmek" -#: ../src/iop/filmicrgb.c:4479 +#: ../src/iop/filmicrgb.c:4543 msgctxt "section" msgid "highlights clipping" msgstr "kırpmayı vurgular" -#: ../src/iop/filmicrgb.c:4487 +#: ../src/iop/filmicrgb.c:4551 msgid "" "set the exposure threshold upon which\n" "clipped highlights get reconstructed.\n" @@ -16793,7 +17364,7 @@ "daha fazla alanı içerecek şekilde azaltmak,\n" "daha fazla alanı hariç tutmak için artırın." -#: ../src/iop/filmicrgb.c:4497 +#: ../src/iop/filmicrgb.c:4561 msgid "" "soften the transition between clipped highlights and valid pixels.\n" "decrease to make the transition harder and sharper,\n" @@ -16803,72 +17374,72 @@ "geçişi daha sert ve keskin hale getirmek için azaltın,\n" "geçişi daha yumuşak ve bulanık hale getirmek için artırın." -#: ../src/iop/filmicrgb.c:4503 ../src/iop/filmicrgb.c:4504 +#: ../src/iop/filmicrgb.c:4567 ../src/iop/filmicrgb.c:4568 msgid "display highlight reconstruction mask" msgstr "vurgulanan yeniden yapılandırma maskesini göster" -#: ../src/iop/filmicrgb.c:4511 +#: ../src/iop/filmicrgb.c:4575 msgctxt "section" msgid "balance" msgstr "denge" -#: ../src/iop/filmicrgb.c:4518 +#: ../src/iop/filmicrgb.c:4582 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between inpainting a smooth color gradient,\n" +"inpainting a smooth color gradient\n" "or trying to recover the textured details.\n" "0% is an equal mix of both.\n" "increase if at least one RGB channel is not clipped.\n" "decrease if all RGB channels are clipped over large areas." msgstr "" "hangi yeniden yapılandırma stratejisinin tercih edileceğine karar vermek,\n" -"pürüzsüz bir renk gradyanı boyama arasında,\n" +"düzgün bir renk gradyanını iç boyama\n" "veya dokulu ayrıntıları kurtarmaya çalışmak.\n" -"%0 her ikisinin de eşit karışımıdır.\n" -"en az bir RGB kanalı kırpılmamışsa artırın.\n" -"tüm RGB kanalları geniş alanlarda kırpılırsa azalır." +"%0 her ikisinin eşit karışımıdır.\n" +"en az bir RGB kanalı kırpılmazsa artar.\n" +"tüm RGB kanalları geniş alanlara kırpılırsa azalır." -#: ../src/iop/filmicrgb.c:4529 +#: ../src/iop/filmicrgb.c:4593 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between blooming highlights like film does,\n" +"blooming highlights like film does\n" "or trying to recover sharp details.\n" "0% is an equal mix of both.\n" "increase if you want more details.\n" "decrease if you want more blur." msgstr "" "hangi yeniden yapılandırma stratejisinin tercih edileceğine karar vermek,\n" -"filmin yaptığı gibi çiçek açan olaylar arasında,\n" -"veya keskin detayları kurtarmaya çalışmak.\n" -"%0 her ikisinin de eşit karışımıdır.\n" +"filmde olduğu gibi çiçek açan önemli noktalar\n" +"veya keskin ayrıntıları kurtarmaya çalışmak.\n" +"%0 her ikisinin eşit karışımıdır.\n" "daha fazla ayrıntı istiyorsanız artırın.\n" -"daha fazla bulanıklık istiyorsanız azaltın." +"Daha fazla bulanıklık istiyorsanız azaltın." -#: ../src/iop/filmicrgb.c:4541 +#: ../src/iop/filmicrgb.c:4605 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between recovering monochromatic highlights,\n" +"recovering monochromatic highlights\n" "or trying to recover colorful highlights.\n" "0% is an equal mix of both.\n" "increase if you want more color.\n" "decrease if you see magenta or out-of-gamut highlights." msgstr "" "hangi yeniden yapılandırma stratejisinin tercih edileceğine karar vermek,\n" -"tek renkli vurguları kurtarma arasında,\n" -"veya renkli olayları kurtarmaya çalışmak.\n" -"%0 her ikisinin de eşit karışımıdır.\n" -"Daha fazla renk istiyorsanız artırın.\n" -"eflatun veya gamut dışı vurgular görürseniz azaltın." +"tek renkli vurguları kurtarma\n" +"veya renkli vurguları kurtarmaya çalışmak.\n" +"%0 her ikisinin eşit karışımıdır.\n" +"daha fazla renk istiyorsanız artırın.\n" +"macenta veya gam dışı vurgular görürseniz azaltın." #. Page LOOK -#: ../src/iop/filmicrgb.c:4549 +#: ../src/iop/filmicrgb.c:4613 msgid "look" msgstr "bak" -#: ../src/iop/filmicrgb.c:4559 +#: ../src/iop/filmicrgb.c:4623 msgid "" "equivalent to paper grade in analog.\n" "increase to make highlights brighter and less compressed.\n" @@ -16878,7 +17449,7 @@ "vurguları daha parlak ve daha az sıkıştırılmış hale getirmek için artırın.\n" "vurguları kapatmak için azaltın." -#: ../src/iop/filmicrgb.c:4567 +#: ../src/iop/filmicrgb.c:4631 msgid "" "width of the linear domain in the middle of the curve,\n" "increase to get more contrast and less desaturation at extreme luminances,\n" @@ -16891,7 +17462,7 @@ "başka türlü azaltın. enlem aralığında desatürasyon olmaz.\n" "bunun orta tonlar üzerinde hiçbir etkisi yoktur." -#: ../src/iop/filmicrgb.c:4582 ../src/iop/filmicrgb.c:4730 +#: ../src/iop/filmicrgb.c:4646 ../src/iop/filmicrgb.c:4794 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16902,11 +17473,11 @@ "gölgeler ve/veya vurgular yeterince doygun değilse artırın." #. Page OPTIONS -#: ../src/iop/filmicrgb.c:4611 +#: ../src/iop/filmicrgb.c:4675 msgid "options" msgstr "seçenekler" -#: ../src/iop/filmicrgb.c:4616 +#: ../src/iop/filmicrgb.c:4680 msgid "" "v3 is darktable 3.0 desaturation method, same as color balance.\n" "v4 is a newer desaturation method, based on spectral purity of light." @@ -16915,7 +17486,7 @@ "v4, ışığın spektral saflığına dayanan daha yeni bir doygunlaştırma " "yöntemidir." -#: ../src/iop/filmicrgb.c:4620 +#: ../src/iop/filmicrgb.c:4684 msgid "" "ensure the original colors are preserved.\n" "may reinforce chromatic aberrations and chroma noise,\n" @@ -16925,7 +17496,7 @@ "renk sapmalarını ve renk gürültüsünü güçlendirebilir,\n" "bu nedenle, başka bir yerde düzgün bir şekilde düzeltildiklerinden emin olun." -#: ../src/iop/filmicrgb.c:4629 +#: ../src/iop/filmicrgb.c:4693 msgid "" "choose the desired curvature of the filmic spline in highlights.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -16936,7 +17507,7 @@ "kullanır.\n" "yumuşak, daha az ton sıkıştırmasıyla sonuçlanan düşük bir eğrilik kullanır." -#: ../src/iop/filmicrgb.c:4634 +#: ../src/iop/filmicrgb.c:4698 msgid "" "choose the desired curvature of the filmic spline in shadows.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -16947,7 +17518,7 @@ "kullanır.\n" "yumuşak, daha az ton sıkıştırmasıyla sonuçlanan düşük bir eğrilik kullanır." -#: ../src/iop/filmicrgb.c:4641 +#: ../src/iop/filmicrgb.c:4705 #, no-c-format msgid "" "enable to input custom middle-gray values.\n" @@ -16960,7 +17531,7 @@ "bunun yerine genel pozlamayı pozlama modülünde düzeltin.\n" "standart % 18.45 orta griyi kullanmayı devre dışı bırakın." -#: ../src/iop/filmicrgb.c:4648 +#: ../src/iop/filmicrgb.c:4712 msgid "" "enable to auto-set the look hardness depending on the scene white and black " "points.\n" @@ -16972,7 +17543,7 @@ "bu, orta griyi kimlik çizgisinde tutar ve hızlı ayarlamayı geliştirir.\n" "elle kontrol istiyorsanız devre dışı bırakın." -#: ../src/iop/filmicrgb.c:4654 +#: ../src/iop/filmicrgb.c:4718 msgid "" "run extra passes of chromaticity reconstruction.\n" "more iterations means more color propagation from neighborhood.\n" @@ -16984,7 +17555,7 @@ "bu daha yavaş olacak, ancak daha tarafsız vurgular sağlayacaktır.\n" "ayrıca zor eflatun vurgulama durumlarında da yardımcı olur." -#: ../src/iop/filmicrgb.c:4661 +#: ../src/iop/filmicrgb.c:4725 msgid "" "add statistical noise in reconstructed highlights.\n" "this avoids highlights to look too smooth\n" @@ -16996,7 +17567,7 @@ "resim genel olarak gürültülü olduğunda,\n" "böylece resmin geri kalanıyla karışırlar." -#: ../src/iop/filmicrgb.c:4668 +#: ../src/iop/filmicrgb.c:4732 msgid "" "choose the statistical distribution of noise.\n" "this is useful to match natural sensor noise pattern." @@ -17004,11 +17575,11 @@ "gürültünün istatistiksel dağılımını seçin.\n" "bu, doğal sensör gürültü düzenini eşleştirmek için kullanışlıdır." -#: ../src/iop/filmicrgb.c:4736 +#: ../src/iop/filmicrgb.c:4800 msgid "mid-tones saturation" msgstr "orta ton doygunluğu" -#: ../src/iop/filmicrgb.c:4737 +#: ../src/iop/filmicrgb.c:4801 msgid "" "desaturates the output of the module\n" "specifically at medium luminances.\n" @@ -17018,11 +17589,11 @@ "özellikle orta parlaklıkta.\n" "orta tonlar yeterince doygun değilse artırın." -#: ../src/iop/filmicrgb.c:4743 +#: ../src/iop/filmicrgb.c:4807 msgid "highlights saturation mix" msgstr "doygunluk karışımını vurgular" -#: ../src/iop/filmicrgb.c:4744 +#: ../src/iop/filmicrgb.c:4808 msgid "" "positive values ensure saturation is kept unchanged over the whole range.\n" "negative values bleach highlights at constant hue and luminance.\n" @@ -17045,39 +17616,39 @@ msgid "flip or rotate image by step of 90 degrees" msgstr "90 derecelik adımlarla görüntüyü çevirin veya döndürün" -#: ../src/iop/flip.c:477 +#: ../src/iop/flip.c:475 msgid "no rotation" msgstr "döndürme yok" -#: ../src/iop/flip.c:481 ../src/iop/flip.c:624 +#: ../src/iop/flip.c:479 ../src/iop/flip.c:622 msgid "flip horizontally" msgstr "yatay olarak çevir" -#: ../src/iop/flip.c:485 ../src/iop/flip.c:628 +#: ../src/iop/flip.c:483 ../src/iop/flip.c:626 msgid "flip vertically" msgstr "dikey olarak çevir" -#: ../src/iop/flip.c:489 +#: ../src/iop/flip.c:487 msgid "rotate by -90 degrees" msgstr "-90 derece döndür" -#: ../src/iop/flip.c:493 +#: ../src/iop/flip.c:491 msgid "rotate by 90 degrees" msgstr "90 derece döndür" -#: ../src/iop/flip.c:497 +#: ../src/iop/flip.c:495 msgid "rotate by 180 degrees" msgstr "180 derece döndür" -#: ../src/iop/flip.c:612 +#: ../src/iop/flip.c:610 msgid "transform" msgstr "dönüştür" -#: ../src/iop/flip.c:616 ../src/libs/live_view.c:293 +#: ../src/iop/flip.c:614 ../src/libs/live_view.c:293 msgid "rotate 90 degrees CCW" msgstr "90 derece CCW döndür" -#: ../src/iop/flip.c:620 ../src/libs/live_view.c:294 +#: ../src/iop/flip.c:618 ../src/libs/live_view.c:294 msgid "rotate 90 degrees CW" msgstr "90 derece CW döndür" @@ -17096,15 +17667,15 @@ "bu modül kullanımdan kaldırılmıştır. lütfen bunun yerine filmik rgb modülünü " "kullanın." -#: ../src/iop/globaltonemap.c:625 ../src/libs/filters/colors.c:259 +#: ../src/iop/globaltonemap.c:658 ../src/libs/filters/colors.c:259 msgid "operator" msgstr "işleç" -#: ../src/iop/globaltonemap.c:626 +#: ../src/iop/globaltonemap.c:659 msgid "the global tonemap operator" msgstr "genel ton haritası işleç`i" -#: ../src/iop/globaltonemap.c:629 +#: ../src/iop/globaltonemap.c:662 msgid "" "the bias for tonemapper controls the linearity, the higher the more details " "in blacks" @@ -17112,7 +17683,7 @@ "ton eşleyicinin eğilimi doğrusallığı kontrol eder, siyahlarda daha fazla " "ayrıntı ne kadar yüksekse" -#: ../src/iop/globaltonemap.c:633 +#: ../src/iop/globaltonemap.c:666 msgid "the target light for tonemapper specified as cd/m2" msgstr "ton eşleyici için cd/m2 olarak belirtilen hedef ışık" @@ -17176,11 +17747,11 @@ msgid "simulate an optical graduated neutral density filter" msgstr "optik dereceli nötr yoğunluk filtresini benzetin" -#: ../src/iop/graduatednd.c:1114 +#: ../src/iop/graduatednd.c:1083 msgid "the density in EV for the filter" msgstr "filtre için EV cinsinden yoğunluk" -#: ../src/iop/graduatednd.c:1119 +#: ../src/iop/graduatednd.c:1088 #, no-c-format msgid "" "hardness of graduation:\n" @@ -17189,55 +17760,55 @@ "bitirme sertliği:\n" "%0 = yumuşak, %100 = sert" -#: ../src/iop/graduatednd.c:1123 +#: ../src/iop/graduatednd.c:1092 msgid "rotation of filter -180 to 180 degrees" msgstr "filtrenin dönüşü -180 ila 180 derece" -#: ../src/iop/graduatednd.c:1136 +#: ../src/iop/graduatednd.c:1105 msgid "select the hue tone of filter" msgstr "filtrenin tonunu seçin" -#: ../src/iop/graduatednd.c:1142 +#: ../src/iop/graduatednd.c:1111 msgid "select the saturation of filter" msgstr "filtrenin doygunluğunu seçin" -#: ../src/iop/graduatednd.c:1153 +#: ../src/iop/graduatednd.c:1122 #, c-format msgid "[%s on nodes] change line rotation" msgstr "[%s düğümünde] satır dönüşünü değiştir" -#: ../src/iop/graduatednd.c:1154 +#: ../src/iop/graduatednd.c:1123 #, c-format msgid "[%s on line] move line" msgstr "[%s satırında] satırı taşı" -#: ../src/iop/graduatednd.c:1156 +#: ../src/iop/graduatednd.c:1125 #, c-format msgid "[%s on line] change density" msgstr "[%s satırında] yoğunluğu değiştir" -#: ../src/iop/graduatednd.c:1158 +#: ../src/iop/graduatednd.c:1127 #, c-format msgid "[%s on line] change hardness" msgstr "[%s satırında] sertliği değiştir" -#: ../src/iop/grain.c:428 +#: ../src/iop/grain.c:444 msgid "grain" msgstr "tane" -#: ../src/iop/grain.c:433 +#: ../src/iop/grain.c:449 msgid "simulate silver grains from film" msgstr "filmden gümüş taneleri benzet" -#: ../src/iop/grain.c:582 +#: ../src/iop/grain.c:600 msgid "the grain size (~ISO of the film)" msgstr "tane boyutu (filmin ~ ISO'su)" -#: ../src/iop/grain.c:586 +#: ../src/iop/grain.c:604 msgid "the strength of applied grain" msgstr "uygulanan tanenin gücü" -#: ../src/iop/grain.c:590 +#: ../src/iop/grain.c:608 msgid "" "amount of mid-tones bias from the photographic paper response modeling. the " "greater the bias, the more pronounced the fall off of the grain in shadows " @@ -17258,15 +17829,15 @@ msgid "remove fog and atmospheric hazing from pictures" msgstr "resimlerden sis ve atmosferik tacizi ortadan kaldırın" -#: ../src/iop/hazeremoval.c:202 +#: ../src/iop/hazeremoval.c:204 msgid "amount of haze reduction" msgstr "pus azaltma miktarı" -#: ../src/iop/hazeremoval.c:204 +#: ../src/iop/hazeremoval.c:206 msgid "distance" msgstr "mesafe" -#: ../src/iop/hazeremoval.c:206 +#: ../src/iop/hazeremoval.c:208 msgid "limit haze removal up to a specific spatial depth" msgstr "belirli bir uzaysal derinliğe kadar pus gidermeyi sınırlayın" @@ -17278,11 +17849,11 @@ msgid "avoid magenta highlights and try to recover highlights colors" msgstr "eflatun vurgularından kaçının ve vurgu renklerini kurtarmaya çalışın" -#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:75 +#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:77 msgid "reconstruction, raw" msgstr "yeniden yapılanma, ham" -#: ../src/iop/highlights.c:923 +#: ../src/iop/highlights.c:1004 msgid "" "highlights: mode not available for this type of image. falling back to " "inpaint opposed." @@ -17290,46 +17861,65 @@ "vurgular: mod bu tür bir görüntü için kullanılamaz. karşıt boyamaya geri " "dönüyor." -#: ../src/iop/highlights.c:1101 +#: ../src/iop/highlights.c:1184 msgid "highlight reconstruction method" msgstr "yeniden yapılandırma yöntemini vurgulayın" -#: ../src/iop/highlights.c:1106 +#: ../src/iop/highlights.c:1189 msgid "" "manually adjust the clipping threshold mostly used against magenta " -"highlights\n" -"the mask icon shows the clipped areas.\n" +"highlights.\n" "you might use this for tuning 'laplacian', 'inpaint opposed' or " "'segmentation' modes,\n" "especially if camera white point is incorrect." msgstr "" -"çoğunlukla kırpma eşiğini eflatun vurgularına göre elle ayarlayın\n" -"maske simgesi kırpılan alanları gösterir\n" -"bunu 'laplasiyen' veya 'bölümleme' modlarını ayarlamak için " -"kullanabilirsiniz,\n" -"özellikle kamera beyaz noktası yanlışsa." +"çoğunlukla macenta parlak noktalarda kullanılan kırpma eşiğini manuel olarak " +"ayarlayın.\n" +"bunu 'laplacian', 'iç boya karşıt' veya 'segmentasyon' modlarını ayarlamak " +"için kullanabilirsiniz,\n" +"özellikle kameranın beyaz noktası yanlışsa." -#: ../src/iop/highlights.c:1117 +#: ../src/iop/highlights.c:1193 +msgid "" +"visualize clipped highlights in a false color representation.\n" +"the effective clipping level also depends on the reconstruction method." +msgstr "" +"kırpılmış vurguları sahte renk sunumuyla görselleştirin.\n" +"etkili kırpma düzeyi aynı zamanda yeniden yapılandırma yöntemine de bağlıdır." + +#: ../src/iop/highlights.c:1203 msgid "" "combine closely related clipped segments by morphological operations.\n" -"the mask button shows the exact positions of resulting segment borders." +"this often leads to improved color reconstruction for tiny segments before " +"dark background." msgstr "" -"yakından ilişkili kırpılmış parçaları morfolojik işlemlerle birleştirir.\n" -"maske düğmesi, ortaya çıkan parça kenarlıklarının tam konumlarını gösterir." +"yakından ilişkili kırpılmış bölümleri morfolojik işlemlerle birleştirir.\n" +"bu genellikle koyu arka plan öncesinde küçük bölümler için daha iyi renk " +"yeniden yapılandırmasına yol açar." + +#: ../src/iop/highlights.c:1206 +msgid "visualize the combined segments in a false color representation." +msgstr "birleştirilmiş bölümleri sahte renk temsilinde görselleştirin." -#: ../src/iop/highlights.c:1125 +#: ../src/iop/highlights.c:1213 msgid "" "select inpainting after segmentation analysis.\n" -"increase to favour candidates found in segmentation analysis, decrease for " -"opposed means inpainting.\n" -"the mask button shows segments that are considered to have a good candidate." -msgstr "" -"bölümleme analizinden sonra iç boyamayı seçin.\n" -"bölümleme analizinde bulunan adayları tercih etmek için artış, zıt anlamlar " -"için azalma iç boyama anlamına gelir.\n" -"maske düğmesi, iyi bir aday olduğu düşünülen bölümleri gösterir." +"increase to favor candidates found in segmentation analysis, decrease for " +"opposed means inpainting." +msgstr "" +"segmentasyon analizinden sonra iç boyamayı seçin.\n" +"segmentasyon analizinde bulunan adayların lehine artış, boyamada karşıt " +"ortalamaların azalması." -#: ../src/iop/highlights.c:1136 +#: ../src/iop/highlights.c:1216 +msgid "" +"visualize segments that are considered to have a good candidate in a false " +"color representation." +msgstr "" +"sahte renk gösteriminde iyi bir aday olduğu düşünülen segmentleri " +"görselleştirin." + +#: ../src/iop/highlights.c:1225 msgid "" "approximate lost data in regions with all photosites clipped, the effect " "depends on segment size and border gradients.\n" @@ -17349,18 +17939,16 @@ "düz modlar, vurguların yeniden oluşturulmasını sağlamak ve degradelerden " "kaçınmak için dar kırpılmamış yapıları (güç hatları gibi) yok sayar." -#: ../src/iop/highlights.c:1142 -msgid "" -"set strength of rebuilding in regions with all photosites clipped.\n" -"the mask buttons shows the effect that is added to already reconstructed " -"data." +#: ../src/iop/highlights.c:1231 +msgid "set strength of rebuilding in regions with all photosites clipped." msgstr "" -"tüm fotositelerin kırpıldığı bölgelerde yeniden oluşturmanın gücünü " -"ayarlayın.\n" -"maske düğmeleri, halihazırda yeniden oluşturulmuş verilere eklenen efekti " -"gösterir." +"tüm fotositlerin kırpıldığı bölgelerde yeniden inşanın gücü belirlendi." + +#: ../src/iop/highlights.c:1233 +msgid "show the effect that is added to already reconstructed data." +msgstr "önceden yeniden yapılandırılmış verilere eklenen etkiyi gösterir." -#: ../src/iop/highlights.c:1152 +#: ../src/iop/highlights.c:1242 msgid "" "add noise to visually blend the reconstructed areas\n" "into the rest of the noisy image. useful at high ISO." @@ -17369,7 +17957,7 @@ "ekleyin\n" "gürültülü görüntünün geri kalanına. yüksek ISO'da kullanışlıdır." -#: ../src/iop/highlights.c:1156 +#: ../src/iop/highlights.c:1246 msgid "" "increase if magenta highlights don't get fully corrected\n" "each new iteration brings a performance penalty." @@ -17377,7 +17965,7 @@ "eflatun vurguları tam olarak düzeltilmezse artır\n" "her yeni yineleme bir performans kaybı getirir." -#: ../src/iop/highlights.c:1161 +#: ../src/iop/highlights.c:1251 msgid "" "increase if magenta highlights don't get fully corrected.\n" "this may produce non-smooth boundaries between valid and clipped regions." @@ -17386,7 +17974,7 @@ "bu, geçerli ve kırpılmış bölgeler arasında düzgün olmayan sınırlar " "üretebilir." -#: ../src/iop/highlights.c:1165 +#: ../src/iop/highlights.c:1255 msgid "" "increase to correct larger clipped areas.\n" "large values bring huge performance penalties" @@ -17394,9 +17982,9 @@ "daha büyük kırpılmış alanları düzeltmek için artırın.\n" "büyük değerler büyük performans kayıpları getirir" -#: ../src/iop/highlights.c:1169 -msgid "this module only works with non-monochrome RAW and sRAW" -msgstr "bu modül yalnızca tek renkli olmayan RAW ve sRAW ile çalışır" +#: ../src/iop/highlights.c:1259 +msgid "this module does not work with monochrome RAW files" +msgstr "bu modül tek renkli RAW dosyalarıyla çalışmaz" #: ../src/iop/highpass.c:72 msgid "highpass" @@ -17406,50 +17994,50 @@ msgid "isolate high frequencies in the image" msgstr "görüntüdeki yüksek frekansları izole et" -#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:135 +#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:107 msgid "linear or non-linear, Lab, scene-referred" msgstr "doğrusal veya doğrusal olmayan, Laboratuvar, sahne referanslı" -#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:136 ../src/iop/sharpen.c:96 +#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:108 ../src/iop/sharpen.c:98 msgid "frequential, Lab" msgstr "sık kullanılan, Laboratuvar" -#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:137 +#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:109 msgid "special, Lab, scene-referred" msgstr "özel, Laboratuar, sahne referanslı" -#: ../src/iop/highpass.c:383 +#: ../src/iop/highpass.c:378 msgid "the sharpness of highpass filter" msgstr "yüksek geçiren filtrenin keskinliği" -#: ../src/iop/highpass.c:387 +#: ../src/iop/highpass.c:382 msgid "the contrast of highpass filter" msgstr "yüksek geçiren filtrenin kontrastı" -#: ../src/iop/hotpixels.c:67 +#: ../src/iop/hotpixels.c:69 msgid "hot pixels" msgstr "sıcak pikseller" -#: ../src/iop/hotpixels.c:72 +#: ../src/iop/hotpixels.c:74 msgid "remove abnormally bright pixels by dampening them with neighbors" msgstr "anormal derecede parlak pikselleri komşularla sönümleyerek kaldırın" -#: ../src/iop/hotpixels.c:363 +#: ../src/iop/hotpixels.c:442 #, c-format msgid "fixed %d pixel" msgid_plural "fixed %d pixels" msgstr[0] "sabit %d piksel" msgstr[1] "sabit %d pikseller" -#: ../src/iop/hotpixels.c:386 +#: ../src/iop/hotpixels.c:465 msgid "lower threshold for hot pixel" msgstr "sıcak piksel için alt eşik" -#: ../src/iop/hotpixels.c:390 +#: ../src/iop/hotpixels.c:469 msgid "strength of hot pixel correction" msgstr "sıcak piksel düzeltme gücü" -#: ../src/iop/hotpixels.c:406 +#: ../src/iop/hotpixels.c:485 msgid "" "hot pixel correction\n" "only works for raw images." @@ -17457,64 +18045,64 @@ "sıcak piksel düzeltme\n" "yalnızca ham görüntüler için çalışır." -#: ../src/iop/invert.c:92 ../src/iop/invert.c:427 +#: ../src/iop/invert.c:106 ../src/iop/invert.c:442 #, c-format msgid "`%s' color matrix not found for 4bayer image" msgstr "4bayer görüntüsü için `%s' renk matrisi bulunamadı" -#: ../src/iop/invert.c:108 +#: ../src/iop/invert.c:125 msgid "invert" msgstr "ters çevir" -#: ../src/iop/invert.c:113 +#: ../src/iop/invert.c:130 msgid "this module is deprecated. please use the negadoctor module instead." msgstr "" "bu modül kullanımdan kaldırılmıştır. lütfen bunun yerine negadoctor modülünü " "kullanın." -#: ../src/iop/invert.c:118 +#: ../src/iop/invert.c:135 msgid "invert film negatives" msgstr "film negatiflerini ters çevir" -#: ../src/iop/invert.c:120 ../src/iop/invert.c:122 +#: ../src/iop/invert.c:137 ../src/iop/invert.c:139 msgid "linear, raw, display-referred" msgstr "doğrusal, ham, ekran referanslı" #. Here we could provide more for monochrome special cases. As no monochrome camera #. has a bayer sensor we don't need g->RGB_to_CAM and g->CAM_to_RGB corrections -#: ../src/iop/invert.c:412 +#: ../src/iop/invert.c:427 msgid "brightness of film material" msgstr "film malzemesinin parlaklığı" -#: ../src/iop/invert.c:416 +#: ../src/iop/invert.c:431 msgid "color of film material" msgstr "film malzemesinin rengi" -#: ../src/iop/invert.c:500 ../src/iop/negadoctor.c:847 +#: ../src/iop/invert.c:515 ../src/iop/negadoctor.c:866 msgid "pick color of film material from image" msgstr "görüntüden film malzemesinin rengini seç" -#: ../src/iop/invert.c:502 +#: ../src/iop/invert.c:517 msgid "select color of film material" msgstr "film malzemesinin rengini seçin" -#: ../src/iop/lens.cc:230 +#: ../src/iop/lens.cc:251 msgid "lens correction" msgstr "mercek düzeltme" -#: ../src/iop/lens.cc:235 +#: ../src/iop/lens.cc:256 msgid "vignette|chromatic aberrations|distortion" msgstr "skeç|kromatik sapmalar|bozulma" -#: ../src/iop/lens.cc:240 +#: ../src/iop/lens.cc:261 msgid "correct lenses optical flaws" msgstr "doğru mercekler optik kusurlar" -#: ../src/iop/lens.cc:243 +#: ../src/iop/lens.cc:264 msgid "geometric and reconstruction, RGB" msgstr "geometrik ve yeniden yapılandırma, RGB" -#: ../src/iop/lens.cc:3148 +#: ../src/iop/lens.cc:3773 #, c-format msgid "" "maker:\t\t%s\n" @@ -17527,7 +18115,7 @@ "dayanak:\t\t%s\n" "kırpma ölçeği:\t%.1f" -#: ../src/iop/lens.cc:3396 +#: ../src/iop/lens.cc:4026 #, c-format msgid "" "maker:\t\t%s\n" @@ -17546,31 +18134,31 @@ "tür:\t\t%s\n" "dayanak:\t%s" -#: ../src/iop/lens.cc:3442 +#: ../src/iop/lens.cc:4072 msgid "focal length (mm)" msgstr "odak uzaklığı (mm)" -#: ../src/iop/lens.cc:3468 +#: ../src/iop/lens.cc:4098 msgid "f/" msgstr "f/" -#: ../src/iop/lens.cc:3469 +#: ../src/iop/lens.cc:4099 msgid "f-number (aperture)" msgstr "f-sayısı (diyafram)" -#: ../src/iop/lens.cc:3485 +#: ../src/iop/lens.cc:4115 msgid "d" msgstr "d" -#: ../src/iop/lens.cc:3486 +#: ../src/iop/lens.cc:4116 msgid "distance to subject" msgstr "konuya uzaklık" -#: ../src/iop/lens.cc:3645 +#: ../src/iop/lens.cc:4277 msgid "camera/lens not found" msgstr "kamera/mercek bulunamadı" -#: ../src/iop/lens.cc:3646 +#: ../src/iop/lens.cc:4278 msgid "" "please select your lens manually\n" "you might also want to check if your Lensfun database is up-to-date\n" @@ -17581,45 +18169,50 @@ "isteyebilirsiniz.\n" "lensfun-update-data çalıştırarak" -#: ../src/iop/lens.cc:3769 +#: ../src/iop/lens.cc:4423 msgid "camera model" msgstr "kamera modeli" -#: ../src/iop/lens.cc:3774 +#: ../src/iop/lens.cc:4428 msgid "find camera" msgstr "kamera bul" -#: ../src/iop/lens.cc:3789 +#: ../src/iop/lens.cc:4443 msgid "find lens" msgstr "mercek bul" #. scale -#: ../src/iop/lens.cc:3823 ../src/iop/vignette.c:968 -#: ../src/iop/watermark.c:1324 ../src/libs/export.c:1165 +#: ../src/iop/lens.cc:4477 ../src/iop/vignette.c:1055 +#: ../src/iop/watermark.c:1372 ../src/libs/export.c:1264 msgid "scale" msgstr "ölçek" -#: ../src/iop/lens.cc:3828 +#: ../src/iop/lens.cc:4482 msgid "auto scale" msgstr "otomatik ölçek" -#: ../src/iop/lens.cc:3832 +#: ../src/iop/lens.cc:4484 +msgid "automatic scale to available image size due to Lensfun data" +msgstr "" +"Lensfun verileri sayesinde mevcut görüntü boyutuna otomatik ölçeklendirme" + +#: ../src/iop/lens.cc:4488 msgid "correct distortions or apply them" msgstr "çarpıklıkları düzeltin veya uygulayın" -#: ../src/iop/lens.cc:3839 +#: ../src/iop/lens.cc:4495 msgid "transversal chromatic aberration red" msgstr "enine renk sapması kırmızı" -#: ../src/iop/lens.cc:3843 +#: ../src/iop/lens.cc:4499 msgid "transversal chromatic aberration blue" msgstr "enine renk sapması mavi" -#: ../src/iop/lens.cc:3849 +#: ../src/iop/lens.cc:4509 msgid "use latest algorithm" msgstr "en son algoritmayı kullan" -#: ../src/iop/lens.cc:3851 +#: ../src/iop/lens.cc:4511 msgid "" "you're using an old version of the algorithm.\n" "once enabled, you won't be able to\n" @@ -17629,95 +18222,146 @@ "etkinleştirildikten sonra, yapamayacaksınız\n" "eski algoritmaya geri dön." -#: ../src/iop/lens.cc:3860 +#: ../src/iop/lens.cc:4521 +msgid "fine-tuning" +msgstr "ince ayar" + +#. DT_IOP_SECTION_FOR_PARAMS doesn't work in C++ so create section module manually +#: ../src/iop/lens.cc:4526 +msgid "fine-tune" +msgstr "ince ayar" + +#: ../src/iop/lens.cc:4532 msgid "tune the warp and chromatic aberration correction" msgstr "çözgü ve renk sapması düzeltmesini ayarlayın" -#: ../src/iop/lens.cc:3864 +#: ../src/iop/lens.cc:4536 msgid "tune the vignette correction" msgstr "skeç düzeltmesini ayarla" -#: ../src/iop/lens.cc:3868 +#: ../src/iop/lens.cc:4540 msgid "tune the TCA red correction" msgstr "TCA kırmızı düzeltmesini ayarlayın" -#: ../src/iop/lens.cc:3872 +#: ../src/iop/lens.cc:4544 msgid "tune the TCA blue correction" msgstr "TCA mavi düzeltmesini ayarlayın" -#: ../src/iop/lens.cc:3879 +#: ../src/iop/lens.cc:4551 msgid "image scaling" msgstr "görüntü ölçekleme" -#: ../src/iop/lens.cc:3891 +#: ../src/iop/lens.cc:4553 +msgid "automatic scale to available image size" +msgstr "mevcut görüntü boyutuna göre otomatik ölçeklendirme" + +#: ../src/iop/lens.cc:4561 +msgid "" +"select a correction mode either based on\n" +" a) data and algorithms provided by the Lensfun project\n" +" b) embedded metadata provided by the camera or software vendor" +msgstr "" +"dayalı olarak bir düzeltme modu seçin\n" +" a) Lensfun projesi tarafından sağlanan veriler ve algoritmalar\n" +" b) kamera veya yazılım satıcısı tarafından sağlanan gömülü meta veriler" + +#: ../src/iop/lens.cc:4568 msgid "which corrections to apply" msgstr "hangi düzeltmelerin uygulanacağı" -#: ../src/iop/lens.cc:3904 +#: ../src/iop/lens.cc:4574 msgid "corrections done: " msgstr "yapılan düzeltmeler: " -#: ../src/iop/lens.cc:3906 +#: ../src/iop/lens.cc:4576 msgid "which corrections have actually been done" msgstr "gerçekte hangi düzeltmeler yapıldı" +#: ../src/iop/lens.cc:4595 +msgid "manual vignette correction" +msgstr "elle skeç düzeltme" + +#: ../src/iop/lens.cc:4599 +msgid "additional manually controlled optical vignetting correction" +msgstr "elle kontrol edilen ek optik kenar ayrıntısı düzeltmesi" + +#: ../src/iop/lens.cc:4602 +msgid "vignette" +msgstr "skeç" + +#: ../src/iop/lens.cc:4606 +msgid "amount of the applied optical vignetting correction" +msgstr "uygulanan optik kenar ayrıntısı düzeltmesinin miktarı" + +#: ../src/iop/lens.cc:4608 +msgid "show applied optical vignette correction mask" +msgstr "uygulanan optik skeç düzeltme maskesini göster" + +#: ../src/iop/lens.cc:4618 +msgid "radius of uncorrected centre" +msgstr "düzeltilmemiş merkezin yarıçapı" + +#: ../src/iop/lens.cc:4624 +msgid "steepness of the correction effect outside of radius" +msgstr "düzeltme etkisinin yarıçapın dışındaki dikliği" + #: ../src/iop/levels.c:112 msgid "this module is deprecated. please use the RGB levels module instead." msgstr "" "bu modül kullanımdan kaldırıldı. lütfen bunun yerine RGB seviyeleri modülünü " "kullanın." -#: ../src/iop/levels.c:117 ../src/iop/levels.c:630 ../src/iop/rgblevels.c:984 -#: ../src/iop/rgblevels.c:1014 +#: ../src/iop/levels.c:117 ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1022 +#: ../src/iop/rgblevels.c:1056 msgid "levels" msgstr "seviyeler" -#: ../src/iop/levels.c:137 +#: ../src/iop/levels.c:139 msgid "adjust black, white and mid-gray points" msgstr "siyah, beyaz ve orta gri noktaları ayarlayın" -#: ../src/iop/levels.c:628 ../src/iop/rgblevels.c:1016 +#: ../src/iop/levels.c:644 ../src/iop/rgblevels.c:1059 msgid "" "drag handles to set black, gray, and white points. operates on L channel." msgstr "" "siyah, gri ve beyaz noktaları ayarlamak için tutamaçları sürükleyin. L " "kanalında çalışır." -#: ../src/iop/levels.c:642 ../src/iop/rgblevels.c:1052 +#: ../src/iop/levels.c:658 ../src/iop/rgblevels.c:1108 msgid "apply auto levels" msgstr "otomatik seviyeleri uygula" -#: ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1027 +#: ../src/iop/levels.c:662 ../src/iop/rgblevels.c:1077 msgid "pick black point from image" msgstr "görüntüden siyah nokta seç" -#: ../src/iop/levels.c:650 ../src/iop/rgblevels.c:1033 +#: ../src/iop/levels.c:666 ../src/iop/rgblevels.c:1085 msgid "pick medium gray point from image" msgstr "görüntüden orta gri noktayı seç" -#: ../src/iop/levels.c:654 ../src/iop/rgblevels.c:1039 +#: ../src/iop/levels.c:670 ../src/iop/rgblevels.c:1093 msgid "pick white point from image" msgstr "görüntüden beyaz noktayı seç" -#: ../src/iop/levels.c:667 ../src/iop/rgblevels.c:936 -#: ../src/iop/rgblevels.c:1026 +#: ../src/iop/levels.c:683 ../src/iop/rgblevels.c:968 +#: ../src/iop/rgblevels.c:1075 msgid "black" msgstr "siyah" -#: ../src/iop/levels.c:668 +#: ../src/iop/levels.c:684 msgid "black percentile" msgstr "siyah yüzdelik" -#: ../src/iop/levels.c:672 +#: ../src/iop/levels.c:688 msgid "gray percentile" msgstr "gri yüzdelik dilim" -#: ../src/iop/levels.c:675 ../src/iop/rgblevels.c:938 -#: ../src/iop/rgblevels.c:1038 +#: ../src/iop/levels.c:691 ../src/iop/rgblevels.c:970 +#: ../src/iop/rgblevels.c:1091 msgid "white" msgstr "beyaz" -#: ../src/iop/levels.c:676 +#: ../src/iop/levels.c:692 msgid "white percentile" msgstr "beyaz yüzdelik" @@ -17729,11 +18373,11 @@ msgid "distort parts of the image" msgstr "görüntünün parçalarını deforme etmek" -#: ../src/iop/liquify.c:2933 +#: ../src/iop/liquify.c:2895 msgid "click to edit nodes" msgstr "düğümleri düzenlemek için tıklayın" -#: ../src/iop/liquify.c:3636 +#: ../src/iop/liquify.c:3599 msgid "" "<b>add point</b>: click and drag\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17743,7 +18387,7 @@ "<b>boyut</b>: kaydırma - <b>kuvvet</b>: shift+kaydır - <b>yön</b>: " "ctrl+kaydır" -#: ../src/iop/liquify.c:3639 +#: ../src/iop/liquify.c:3602 msgid "" "<b>add line</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17753,7 +18397,7 @@ "<b>boyut</b>: kaydırma - <b>kuvvet</b>: shift+kaydır - <b>yön</b>: " "ctrl+kaydır" -#: ../src/iop/liquify.c:3642 +#: ../src/iop/liquify.c:3605 msgid "" "<b>add curve</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17762,7 +18406,7 @@ "<b>eğri ekle</b>: tıklayın\n" "<b>boyut</b>: kaydır - <b>kuvvet</b>: shift+kaydır - <b>yön</b>: ctrl+kaydır" -#: ../src/iop/liquify.c:3693 +#: ../src/iop/liquify.c:3656 msgid "" "use a tool to add warps\n" "<b>remove a warp</b>: right-click" @@ -17770,48 +18414,48 @@ "çarpıtma eklemek için bir araç kullanın\n" "<b>çarpıtmayı kaldır</b>: sağ tıklayın" -#: ../src/iop/liquify.c:3696 +#: ../src/iop/liquify.c:3659 msgid "warps|nodes count:" msgstr "çarpıtma|düğüm sayısı:" -#: ../src/iop/liquify.c:3705 +#: ../src/iop/liquify.c:3668 msgid "edit, add and delete nodes" msgstr "düğümleri düzenleme, ekleme ve silme" -#: ../src/iop/liquify.c:3710 ../src/iop/liquify.c:3716 -#: ../src/iop/liquify.c:3722 ../src/iop/retouch.c:2238 -#: ../src/iop/retouch.c:2242 ../src/iop/retouch.c:2246 -#: ../src/iop/retouch.c:2250 ../src/iop/spots.c:883 ../src/iop/spots.c:888 -#: ../src/iop/spots.c:893 ../src/libs/masks.c:1816 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1834 ../src/libs/masks.c:1843 ../src/libs/masks.c:1852 +#: ../src/iop/liquify.c:3673 ../src/iop/liquify.c:3679 +#: ../src/iop/liquify.c:3685 ../src/iop/retouch.c:2465 +#: ../src/iop/retouch.c:2471 ../src/iop/retouch.c:2476 +#: ../src/iop/retouch.c:2481 ../src/iop/spots.c:885 ../src/iop/spots.c:890 +#: ../src/iop/spots.c:895 ../src/libs/masks.c:1812 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1830 ../src/libs/masks.c:1839 ../src/libs/masks.c:1848 msgid "shapes" msgstr "şekiller" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw curves" msgstr "eğriler çiz" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw multiple curves" msgstr "çoklu eğriler çiz" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw lines" msgstr "çizgiler çiz" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw multiple lines" msgstr "birden fazla çizgi çiz" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw points" msgstr "noktalar çizmek" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw multiple points" msgstr "birden fazla nokta çiz" -#: ../src/iop/liquify.c:3729 +#: ../src/iop/liquify.c:3692 msgid "" "<b>add node</b>: ctrl+click - <b>remove path</b>: right click\n" "<b>toggle line/curve</b>: ctrl+alt+click" @@ -17819,7 +18463,7 @@ "<b>düğüm ekle</b>: ctrl+tıkla - <b>yolu kaldır</b>: sağ tıkla\n" "<b>çizgiyi/eğriyi değiştir</b>: ctrl+alt+tıkla" -#: ../src/iop/liquify.c:3732 +#: ../src/iop/liquify.c:3695 msgid "" "<b>move</b>: click and drag - <b>show/hide feathering controls</b>: click\n" "<b>autosmooth, cusp, smooth, symmetrical</b>: ctrl+click - <b>remove</b>: " @@ -17830,23 +18474,23 @@ "<b>otomatik yumuşatma, doruk, pürüzsüz, simetrik</b>: ctrl+tıkla - " "<b>kaldır</b>: sağ tık" -#: ../src/iop/liquify.c:3736 ../src/iop/liquify.c:3738 +#: ../src/iop/liquify.c:3699 ../src/iop/liquify.c:3701 msgid "<b>shape of path</b>: drag" msgstr "<b>yolun şekli</b>: sürükle" -#: ../src/iop/liquify.c:3740 +#: ../src/iop/liquify.c:3703 msgid "<b>radius</b>: drag" msgstr "<b>yarıçap</b>: sürükle" -#: ../src/iop/liquify.c:3742 +#: ../src/iop/liquify.c:3705 msgid "<b>hardness (center)</b>: drag" msgstr "<b>sertlik (merkez)</b>: sürükle" -#: ../src/iop/liquify.c:3744 +#: ../src/iop/liquify.c:3707 msgid "<b>hardness (feather)</b>: drag" msgstr "<b>sertlik (tüy)</b>: sürükle" -#: ../src/iop/liquify.c:3746 +#: ../src/iop/liquify.c:3709 msgid "" "<b>strength</b>: drag\n" "<b>linear, grow, and shrink</b>: ctrl+click" @@ -17866,236 +18510,236 @@ msgid "linear, XYZ" msgstr "doğrusal, XYZ" -#: ../src/iop/lowlight.c:341 +#: ../src/iop/lowlight.c:338 msgid "indoor bright" msgstr "kapalı alan aydınlatması" -#: ../src/iop/lowlight.c:359 +#: ../src/iop/lowlight.c:356 msgid "indoor dim" msgstr "kapalıalan loş" -#: ../src/iop/lowlight.c:377 +#: ../src/iop/lowlight.c:374 msgid "indoor dark" msgstr "kapalı alan karanlık" -#: ../src/iop/lowlight.c:395 +#: ../src/iop/lowlight.c:392 msgid "twilight" msgstr "alacakaranlık" -#: ../src/iop/lowlight.c:413 +#: ../src/iop/lowlight.c:410 msgid "night street lit" msgstr "gece sokak aydınlatması" -#: ../src/iop/lowlight.c:431 +#: ../src/iop/lowlight.c:428 msgid "night street" msgstr "gece sokak" -#: ../src/iop/lowlight.c:449 +#: ../src/iop/lowlight.c:446 msgid "night street dark" msgstr "gece sokak karanlık" -#: ../src/iop/lowlight.c:468 +#: ../src/iop/lowlight.c:465 msgid "night" msgstr "gece" -#: ../src/iop/lowlight.c:641 +#: ../src/iop/lowlight.c:639 msgid "dark" msgstr "karanlık" -#: ../src/iop/lowlight.c:649 +#: ../src/iop/lowlight.c:647 msgid "bright" msgstr "aydınlık" -#: ../src/iop/lowlight.c:658 +#: ../src/iop/lowlight.c:656 msgid "day vision" msgstr "gündüz görüşü" -#: ../src/iop/lowlight.c:663 +#: ../src/iop/lowlight.c:661 msgid "night vision" msgstr "gece görüşü" -#: ../src/iop/lowlight.c:835 +#: ../src/iop/lowlight.c:833 msgid "blueness in shadows" msgstr "gölgelerdeki mavilik" -#: ../src/iop/lowpass.c:128 +#: ../src/iop/lowpass.c:100 msgid "lowpass" msgstr "düşük geçiş" -#: ../src/iop/lowpass.c:133 +#: ../src/iop/lowpass.c:105 msgid "isolate low frequencies in the image" msgstr "görüntüdeki düşük frekansları izole et" -#: ../src/iop/lowpass.c:565 +#: ../src/iop/lowpass.c:578 msgid "local contrast mask" msgstr "yerel kontrast maskesi" -#: ../src/iop/lowpass.c:590 +#: ../src/iop/lowpass.c:603 msgid "radius of gaussian/bilateral blur" msgstr "gauss/ikili bulanıklık yarıçapı" -#: ../src/iop/lowpass.c:591 +#: ../src/iop/lowpass.c:604 msgid "contrast of lowpass filter" msgstr "alçak geçiren filtrenin kontrastı" -#: ../src/iop/lowpass.c:592 +#: ../src/iop/lowpass.c:605 msgid "brightness adjustment of lowpass filter" msgstr "alçak geçiren filtrenin parlaklık ayarı" -#: ../src/iop/lowpass.c:593 +#: ../src/iop/lowpass.c:606 msgid "color saturation of lowpass filter" msgstr "alçak geçiren filtrenin renk doygunluğu" -#: ../src/iop/lowpass.c:594 +#: ../src/iop/lowpass.c:607 msgid "which filter to use for blurring" msgstr "bulanıklaştırma için hangi filtre kullanılacak" -#: ../src/iop/lut3d.c:135 +#: ../src/iop/lut3d.c:136 msgid "LUT 3D" msgstr "LUT 3D" -#: ../src/iop/lut3d.c:140 +#: ../src/iop/lut3d.c:141 msgid "perform color space corrections and apply look" msgstr "renk alanı düzeltmeleri yapın ve görünüm uygulayın" -#: ../src/iop/lut3d.c:143 +#: ../src/iop/lut3d.c:144 msgid "defined by profile, RGB" msgstr "profil tarafından tanımlanmış, RGB" -#: ../src/iop/lut3d.c:468 +#: ../src/iop/lut3d.c:486 msgid "error allocating buffer for gmz LUT" msgstr "gmz LUT için ön bellek ayırma hatası" -#: ../src/iop/lut3d.c:494 +#: ../src/iop/lut3d.c:512 #, c-format msgid "invalid png file %s" msgstr "geçersiz png dosyası %s" -#: ../src/iop/lut3d.c:502 +#: ../src/iop/lut3d.c:520 #, c-format -msgid "png bit-depth %d not supported" +msgid "png bit depth %d is not supported" msgstr "png bit derinliği %d desteklenmiyor" -#: ../src/iop/lut3d.c:516 ../src/iop/lut3d.c:526 +#: ../src/iop/lut3d.c:534 ../src/iop/lut3d.c:544 #, c-format msgid "invalid level in png file %d %d" msgstr "png dosyasında geçersiz seviye %d %d" -#: ../src/iop/lut3d.c:521 +#: ../src/iop/lut3d.c:539 msgid "this darktable build is not compatible with compressed CLUT" msgstr "bu darktable yapısı, sıkıştırılmış CLUT ile uyumlu değil" -#: ../src/iop/lut3d.c:538 ../src/iop/lut3d.c:788 +#: ../src/iop/lut3d.c:556 ../src/iop/lut3d.c:808 #, c-format msgid "error - LUT 3D size %d exceeds the maximum supported" msgstr "hata - LUT 3D boyutu %d desteklenen azami değeri aşıyor" -#: ../src/iop/lut3d.c:550 +#: ../src/iop/lut3d.c:568 msgid "error allocating buffer for png LUT" msgstr "png LUT için ön bellek ayırma hatası" -#: ../src/iop/lut3d.c:558 +#: ../src/iop/lut3d.c:576 #, c-format msgid "error - could not read png image %s" msgstr "hata - png resmi %s okunamadı" -#: ../src/iop/lut3d.c:568 +#: ../src/iop/lut3d.c:586 msgid "error - allocating buffer for png LUT" msgstr "hata - png LUT için arabellek ayırma" -#: ../src/iop/lut3d.c:743 +#: ../src/iop/lut3d.c:761 #, c-format msgid "error - invalid cube file: %s" msgstr "hata - geçersiz küp dosyası: %s" -#: ../src/iop/lut3d.c:757 -msgid "DOMAIN MIN <> 0.0 is not supported" -msgstr "ALAN ADI ASG <> 0.0 desteklenmiyor" - -#: ../src/iop/lut3d.c:768 -msgid "DOMAIN MAX <> 1.0 is not supported" -msgstr "ALAN ADI AZM <> 1.0 desteklenmiyor" +#: ../src/iop/lut3d.c:775 +msgid "DOMAIN MIN other than 0 is not supported" +msgstr "ALAN ADI ASG 0 dışında desteklenmiyor" + +#: ../src/iop/lut3d.c:787 +msgid "DOMAIN MAX other than 1 is not supported" +msgstr "ALAN ADI AZM 1 dışında desteklenmiyor" -#: ../src/iop/lut3d.c:777 +#: ../src/iop/lut3d.c:797 msgid "1D cube LUT is not supported" msgstr "1D küp LUT desteklenmiyor" -#: ../src/iop/lut3d.c:799 +#: ../src/iop/lut3d.c:819 msgid "error - allocating buffer for cube LUT" msgstr "hata - LUT küpü için arabellek ayırma" -#: ../src/iop/lut3d.c:810 +#: ../src/iop/lut3d.c:830 msgid "error - cube LUT size is not defined" msgstr "hata - küp LUT boyutu tanımlı değil" -#: ../src/iop/lut3d.c:821 +#: ../src/iop/lut3d.c:841 #, c-format msgid "error - cube LUT invalid number line %d" msgstr "hata - küp LUT geçersiz satır sayısı %d" -#: ../src/iop/lut3d.c:837 +#: ../src/iop/lut3d.c:857 #, c-format msgid "error - cube LUT lines number %d is not correct, should be %d" msgstr "hata - küp LUT satır sayısı %d doğru değil, %d olmalıdır" -#: ../src/iop/lut3d.c:847 +#: ../src/iop/lut3d.c:867 #, c-format msgid "warning - cube LUT has %d values out of range [0,1]" msgstr "uyarı - LUT küpü, [0,1] aralığının dışında %d değere sahip" -#: ../src/iop/lut3d.c:872 +#: ../src/iop/lut3d.c:892 #, c-format msgid "error - invalid 3dl file: %s" msgstr "hata - geçersiz 3dl dosyası: %s" -#: ../src/iop/lut3d.c:893 +#: ../src/iop/lut3d.c:913 #, c-format msgid "error - the maximum shaper LUT value %d is too low" msgstr "hata - azami şekillendirici LUT değeri %d çok düşük" -#: ../src/iop/lut3d.c:904 +#: ../src/iop/lut3d.c:924 msgid "error - allocating buffer for 3dl LUT" msgstr "hata - 3dl LUT için arabellek ayırma" -#: ../src/iop/lut3d.c:917 +#: ../src/iop/lut3d.c:937 msgid "error - 3dl LUT size is not defined" msgstr "hata - 3dl LUT boyutu tanımlı değil" -#: ../src/iop/lut3d.c:945 +#: ../src/iop/lut3d.c:965 msgid "error - 3dl LUT lines number is not correct" msgstr "hata - 3dl LUT satır numarası doğru değil" -#: ../src/iop/lut3d.c:961 +#: ../src/iop/lut3d.c:981 msgid "error - the maximum LUT value does not match any valid bit depth" msgstr "" "hata - azami LUT değeri geçerli herhangi bir bit derinliğiyle eşleşmiyor" -#: ../src/iop/lut3d.c:1539 +#: ../src/iop/lut3d.c:1553 msgid "LUT root folder not defined" msgstr "LUT kök klasörü tanımlı değil" -#: ../src/iop/lut3d.c:1545 +#: ../src/iop/lut3d.c:1559 msgid "select LUT file" msgstr "LUT dosyasını seçin" -#: ../src/iop/lut3d.c:1546 +#: ../src/iop/lut3d.c:1560 msgid "_select" msgstr "_seç" -#: ../src/iop/lut3d.c:1566 +#: ../src/iop/lut3d.c:1580 msgid "hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" msgstr "" "hald CLUT (png), 3D LUT (küp veya 3dl) veya gmic sıkıştırılmış LUT (gmz)" -#: ../src/iop/lut3d.c:1568 +#: ../src/iop/lut3d.c:1582 msgid "hald CLUT (png) or 3D LUT (cube or 3dl)" msgstr "hald CLUT (png) veya 3D LUT (küp veya 3dl)" -#: ../src/iop/lut3d.c:1592 +#: ../src/iop/lut3d.c:1606 msgid "select file outside LUT root folder is not allowed" msgstr "LUT kök klasörünün dışında dosya seçmeye izin verilmiyor" -#: ../src/iop/lut3d.c:1663 +#: ../src/iop/lut3d.c:1677 msgid "" "select a png (haldclut), a cube, a 3dl or a gmz (compressed LUT) file " "CAUTION: 3D LUT folder must be set in preferences/processing before choosing " @@ -18105,7 +18749,7 @@ "dosyası seçin DİKKAT: LUT dosyasını seçmeden önce tercihlerde/işlemede 3D " "LUT klasörü ayarlanmalıdır" -#: ../src/iop/lut3d.c:1667 +#: ../src/iop/lut3d.c:1681 msgid "" "select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be " "set in preferences/processing before choosing the LUT file" @@ -18113,7 +18757,7 @@ "bir png (haldclut), bir küp veya bir 3dl dosyası seçin DİKKAT: LUT dosyasını " "seçmeden önce tercihlerde/işlemede 3D LUT klasörü ayarlanmalıdır" -#: ../src/iop/lut3d.c:1679 +#: ../src/iop/lut3d.c:1693 msgid "" "the file path (relative to LUT folder) is saved with image along with the " "LUT data if it's a compressed LUT (gmz)" @@ -18121,7 +18765,7 @@ "dosya yolu (LUT klasörüne göre), sıkıştırılmış bir LUT (gmz) ise, LUT " "verileriyle birlikte görüntüyle birlikte kaydedilir" -#: ../src/iop/lut3d.c:1682 +#: ../src/iop/lut3d.c:1696 msgid "" "the file path (relative to LUT folder) is saved with image (and not the LUT " "data themselves)" @@ -18129,46 +18773,46 @@ "dosya yolu (LUT klasörüne göre) görüntüyle birlikte kaydedilir (LUT " "verilerinin kendileri değil)" -#: ../src/iop/lut3d.c:1691 +#: ../src/iop/lut3d.c:1705 msgid "enter LUT name" msgstr "LUT adını girin" -#: ../src/iop/lut3d.c:1712 +#: ../src/iop/lut3d.c:1726 msgid "select the LUT" msgstr "LUT'u seçin" -#: ../src/iop/lut3d.c:1725 +#: ../src/iop/lut3d.c:1739 msgid "select the color space in which the LUT has to be applied" msgstr "LUT'nin uygulanması gereken renk uzayını seçin" -#: ../src/iop/lut3d.c:1727 +#: ../src/iop/lut3d.c:1741 msgid "interpolation" msgstr "aradeğerleme" -#: ../src/iop/lut3d.c:1728 +#: ../src/iop/lut3d.c:1742 msgid "select the interpolation method" msgstr "aradeğerleme yöntemini seçin" -#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:62 +#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:63 msgid "mask manager" msgstr "maske yöneticisi" -#: ../src/iop/monochrome.c:97 +#: ../src/iop/monochrome.c:99 msgid "quickly convert an image to black & white using a variable color filter" msgstr "" "değişken bir renk filtresi kullanarak bir görüntüyü hızla siyah & beyaza " "dönüştürün" -#: ../src/iop/monochrome.c:127 +#: ../src/iop/monochrome.c:153 msgid "red filter" msgstr "kırmızı filtresi" -#: ../src/iop/monochrome.c:546 +#: ../src/iop/monochrome.c:568 msgid "drag and scroll mouse wheel to adjust the virtual color filter" msgstr "" "sanal renk filtresini ayarlamak için fare tekerleğini sürükleyip kaydırın" -#: ../src/iop/monochrome.c:562 +#: ../src/iop/monochrome.c:584 msgid "how much to keep highlights" msgstr "vurgulamalar ne kadar tutulur" @@ -18185,35 +18829,35 @@ msgstr "" "film negatif taramalarını tersine çevirin ve kağıda yazdırmayı benzetin" -#: ../src/iop/negadoctor.c:469 +#: ../src/iop/negadoctor.c:483 msgid "D min" msgstr "D asg" -#: ../src/iop/negadoctor.c:475 ../src/iop/negadoctor.c:856 +#: ../src/iop/negadoctor.c:489 ../src/iop/negadoctor.c:875 msgid "D min red component" msgstr "D asg kırmızı bileşen" #. Page FILM PROPERTIES -#: ../src/iop/negadoctor.c:832 +#: ../src/iop/negadoctor.c:851 msgid "film properties" msgstr "film özellikleri" #. Dmin -#: ../src/iop/negadoctor.c:836 +#: ../src/iop/negadoctor.c:855 msgctxt "section" msgid "color of the film base" msgstr "film tabanının rengi" -#: ../src/iop/negadoctor.c:842 +#: ../src/iop/negadoctor.c:861 msgid "select color of film material from a swatch" msgstr "bir renk örneğinden film malzemesinin rengini seçin" -#: ../src/iop/negadoctor.c:848 +#: ../src/iop/negadoctor.c:867 msgid "film material" msgstr "film malzemesi" -#: ../src/iop/negadoctor.c:857 ../src/iop/negadoctor.c:867 -#: ../src/iop/negadoctor.c:877 +#: ../src/iop/negadoctor.c:876 ../src/iop/negadoctor.c:886 +#: ../src/iop/negadoctor.c:896 msgid "" "adjust the color and shade of the film transparent base.\n" "this value depends on the film material, \n" @@ -18225,21 +18869,21 @@ "filmi geliştirirken üretilen kimyasal sis,\n" "ve tarayıcı beyaz dengesi." -#: ../src/iop/negadoctor.c:866 +#: ../src/iop/negadoctor.c:885 msgid "D min green component" msgstr "D asg yeşil bileşen" -#: ../src/iop/negadoctor.c:876 +#: ../src/iop/negadoctor.c:895 msgid "D min blue component" msgstr "D asg mavi bileşen" #. D max and scanner bias -#: ../src/iop/negadoctor.c:884 +#: ../src/iop/negadoctor.c:903 msgctxt "section" msgid "dynamic range of the film" msgstr "filmin dinamik aralığı" -#: ../src/iop/negadoctor.c:888 +#: ../src/iop/negadoctor.c:907 msgid "" "maximum density of the film, corresponding to white after inversion.\n" "this value depends on the film specifications, the developing process,\n" @@ -18249,12 +18893,12 @@ "bu değer film özelliklerine, geliştirme sürecine,\n" "sahnenin dinamik aralığı ve tarayıcı pozlama ayarları." -#: ../src/iop/negadoctor.c:892 +#: ../src/iop/negadoctor.c:911 msgctxt "section" msgid "scanner exposure settings" msgstr "tarayıcı pozlama ayarları" -#: ../src/iop/negadoctor.c:896 +#: ../src/iop/negadoctor.c:915 msgid "" "correct the exposure of the scanner, for all RGB channels,\n" "before the inversion, so blacks are neither clipped or too pale." @@ -18263,25 +18907,25 @@ "ters çevirmeden önce, bu nedenle siyahlar ne kırpılmış ne de çok solgun." #. WB shadows -#: ../src/iop/negadoctor.c:903 +#: ../src/iop/negadoctor.c:922 msgctxt "section" msgid "shadows color cast" msgstr "gölgeler renk dökümü" -#: ../src/iop/negadoctor.c:909 +#: ../src/iop/negadoctor.c:928 msgid "select color of shadows from a swatch" msgstr "bir renk örneğinden gölgelerin rengini seçin" -#: ../src/iop/negadoctor.c:914 +#: ../src/iop/negadoctor.c:933 msgid "pick shadows color from image" msgstr "görüntüden gölge rengini seç" -#: ../src/iop/negadoctor.c:920 +#: ../src/iop/negadoctor.c:939 msgid "shadows red offset" msgstr "gölgeler kırmızı ofset" -#: ../src/iop/negadoctor.c:921 ../src/iop/negadoctor.c:928 -#: ../src/iop/negadoctor.c:935 +#: ../src/iop/negadoctor.c:940 ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:954 msgid "" "correct the color cast in shadows so blacks are\n" "truly achromatic. Setting this value before\n" @@ -18294,34 +18938,34 @@ "önce ayarlamak, zor durumlarda genel beyaz dengesinin\n" "geri kazanılmasına yardımcı olacaktır." -#: ../src/iop/negadoctor.c:927 +#: ../src/iop/negadoctor.c:946 msgid "shadows green offset" msgstr "gölgeler yeşil ofset" -#: ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:953 msgid "shadows blue offset" msgstr "gölgeler mavi ofset" #. WB highlights -#: ../src/iop/negadoctor.c:941 +#: ../src/iop/negadoctor.c:960 msgctxt "section" msgid "highlights white balance" msgstr "beyaz dengesini vurgular" -#: ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:966 msgid "select color of illuminant from a swatch" msgstr "bir renk örneğinden aydınlatıcı rengi seçin" -#: ../src/iop/negadoctor.c:952 +#: ../src/iop/negadoctor.c:971 msgid "pick illuminant color from image" msgstr "görüntüden aydınlatıcı renk seç" -#: ../src/iop/negadoctor.c:958 +#: ../src/iop/negadoctor.c:977 msgid "illuminant red gain" msgstr "aydınlatıcı kırmızı kazanç" -#: ../src/iop/negadoctor.c:959 ../src/iop/negadoctor.c:966 -#: ../src/iop/negadoctor.c:973 +#: ../src/iop/negadoctor.c:978 ../src/iop/negadoctor.c:985 +#: ../src/iop/negadoctor.c:992 msgid "" "correct the color of the illuminant so whites are\n" "truly achromatic. Setting this value after\n" @@ -18333,26 +18977,26 @@ "dağılımından sonra ayarlamak, zor durumlarda \n" "genel beyaz dengesinin geri kazanılmasına yardımcı olacaktır." -#: ../src/iop/negadoctor.c:965 +#: ../src/iop/negadoctor.c:984 msgid "illuminant green gain" msgstr "aydınlatıcı yeşil kazanç" -#: ../src/iop/negadoctor.c:972 +#: ../src/iop/negadoctor.c:991 msgid "illuminant blue gain" msgstr "aydınlatıcı mavi kazanç" #. Page PRINT PROPERTIES -#: ../src/iop/negadoctor.c:979 +#: ../src/iop/negadoctor.c:998 msgid "print properties" msgstr "yazdırma özellikleri" #. print corrections -#: ../src/iop/negadoctor.c:982 +#: ../src/iop/negadoctor.c:1001 msgctxt "section" msgid "virtual paper properties" msgstr "sanal kağıt özellikleri" -#: ../src/iop/negadoctor.c:988 +#: ../src/iop/negadoctor.c:1007 msgid "" "correct the density of black after the inversion,\n" "to adjust the global contrast while avoiding clipping shadows." @@ -18360,7 +19004,7 @@ "kırpma gölgelerinden kaçınırken genel kontrastı ayarlamak için,\n" "ters çevirmeden sonra siyahın yoğunluğunu düzeltin." -#: ../src/iop/negadoctor.c:993 +#: ../src/iop/negadoctor.c:1012 msgid "" "select the grade of the virtual paper, which is actually\n" "equivalent to applying a gamma. it compensates the film D max\n" @@ -18370,7 +19014,7 @@ "bir gama uygulamaya eşdeğerdir. D azm filmini telafi eder\n" "ve kontrastı kurtarır. yüksek D azm için yüksek bir derece kullanın." -#: ../src/iop/negadoctor.c:1001 +#: ../src/iop/negadoctor.c:1020 msgid "" "gradually compress specular highlights past this value\n" "to avoid clipping while pushing the exposure for mid-tones.\n" @@ -18380,12 +19024,12 @@ "Orta tonlar için pozlamayı zorlarken kırpılmayı önlemek için.\n" "bu, mat kağıdın davranışını bir şekilde yeniden üretir." -#: ../src/iop/negadoctor.c:1005 +#: ../src/iop/negadoctor.c:1024 msgctxt "section" msgid "virtual print emulation" msgstr "sanal baskı öykünmesi" -#: ../src/iop/negadoctor.c:1012 +#: ../src/iop/negadoctor.c:1031 msgid "" "correct the printing exposure after inversion to adjust\n" "the global contrast and avoid clipping highlights." @@ -18393,51 +19037,83 @@ "ayarlamak için ters çevirmeden sonra baskı pozunu düzeltin\n" "genel kontrast ve kırpılan vurgulardan kaçının." -#: ../src/iop/negadoctor.c:1020 +#: ../src/iop/negadoctor.c:1039 msgid "toggle on or off the color controls" msgstr "renk kontrollerini aç veya kapat" -#: ../src/iop/nlmeans.c:84 +#: ../src/iop/nlmeans.c:78 msgid "astrophoto denoise" msgstr "astrofoto gürültü" -#: ../src/iop/nlmeans.c:89 +#: ../src/iop/nlmeans.c:83 msgid "denoise (non-local means)" msgstr "gürültü (yerel olmayan araçlar)" -#: ../src/iop/nlmeans.c:94 +#: ../src/iop/nlmeans.c:88 msgid "apply a poisson noise removal best suited for astrophotography" msgstr "astrofotografi için en uygun poisson parazit gidermeyi uygulayın" -#: ../src/iop/nlmeans.c:459 +#: ../src/iop/nlmeans.c:462 msgid "radius of the patches to match" msgstr "eşleşecek yamaların yarıçapı" -#: ../src/iop/nlmeans.c:467 +#: ../src/iop/nlmeans.c:470 msgid "how much to smooth brightness" msgstr "parlaklığı düzeltmek için ne kadar" -#: ../src/iop/nlmeans.c:470 +#: ../src/iop/nlmeans.c:473 msgid "how much to smooth colors" msgstr "renkleri yumuşatmak ne kadar" #. * let's fill the encapsulating widgets #. preview mode #. color scheme -#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2419 -#: ../src/views/darkroom.c:2437 ../src/views/darkroom.c:2444 -#: ../src/views/darkroom.c:2454 ../src/views/darkroom.c:2471 +#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2258 +#: ../src/views/darkroom.c:2276 ../src/views/darkroom.c:2283 +#: ../src/views/darkroom.c:2293 ../src/views/darkroom.c:2310 msgid "overexposed" msgstr "aşırı pozlanmış" -#: ../src/iop/overexposed.c:130 ../src/iop/overexposed.c:360 +#: ../src/iop/overexposed.c:123 ../src/iop/overexposed.c:352 msgid "module overexposed failed in buffer allocation" msgstr "aşırı maruz kalan modül, arabellek tahsisinde başarısız oldu" -#: ../src/iop/overexposed.c:156 ../src/iop/overexposed.c:370 +#: ../src/iop/overexposed.c:149 ../src/iop/overexposed.c:362 msgid "module overexposed failed in color conversion" msgstr "modül aşırı pozlanmış renk dönüşümünde başarısız oldu" +#: ../src/iop/primaries.c:74 +msgid "rgb primaries" +msgstr "rgb ön seçimleri" + +#: ../src/iop/primaries.c:79 +msgid "adjustment of the RGB color primaries for color grading" +msgstr "renk sınıflandırması için RGB renk ana renklerinin ayarlanması" + +#: ../src/iop/primaries.c:395 +msgid "shift red towards yellow or magenta" +msgstr "kırmızıyı sarıya veya macentaya kaydır" + +#: ../src/iop/primaries.c:396 +msgid "red primary purity" +msgstr "kırmızı birincil saflık" + +#: ../src/iop/primaries.c:397 +msgid "shift green towards cyan or yellow" +msgstr "yeşili camgöbeği veya sarıya doğru kaydır" + +#: ../src/iop/primaries.c:398 +msgid "green primary purity" +msgstr "yeşil birincil saflık" + +#: ../src/iop/primaries.c:399 +msgid "shift blue towards magenta or cyan" +msgstr "maviyi macenta veya camgöbeğine doğru kaydır" + +#: ../src/iop/primaries.c:400 +msgid "blue primary purity" +msgstr "mavi birincil saflık" + #: ../src/iop/profile_gamma.c:96 msgid "unbreak input profile" msgstr "giriş profilini kırmak" @@ -18447,39 +19123,39 @@ msgstr "" "doğrusal olmayan RGB'ye uygulanması amaçlanan doğru giriş renk profilleri" -#: ../src/iop/profile_gamma.c:136 +#: ../src/iop/profile_gamma.c:138 msgid "16 EV dynamic range (generic)" msgstr "16 EV dinamik aralık (genel)" -#: ../src/iop/profile_gamma.c:142 +#: ../src/iop/profile_gamma.c:144 msgid "14 EV dynamic range (generic)" msgstr "14 EV dinamik aralık (genel)" -#: ../src/iop/profile_gamma.c:148 +#: ../src/iop/profile_gamma.c:150 msgid "12 EV dynamic range (generic)" msgstr "12 EV dinamik aralık (genel)" -#: ../src/iop/profile_gamma.c:154 +#: ../src/iop/profile_gamma.c:156 msgid "10 EV dynamic range (generic)" msgstr "10 EV dinamik aralık (genel)" -#: ../src/iop/profile_gamma.c:160 +#: ../src/iop/profile_gamma.c:162 msgid "08 EV dynamic range (generic)" msgstr "08 EV dinamik aralık (genel)" -#: ../src/iop/profile_gamma.c:623 +#: ../src/iop/profile_gamma.c:637 msgid "linear part" msgstr "doğrusal kısım" -#: ../src/iop/profile_gamma.c:627 +#: ../src/iop/profile_gamma.c:641 msgid "gamma exponential factor" msgstr "gama üstel etken" -#: ../src/iop/profile_gamma.c:638 +#: ../src/iop/profile_gamma.c:652 msgid "adjust to match the average luma of the subject" msgstr "öznenin ortalama parlaklığına uyacak şekilde ayarlayın" -#: ../src/iop/profile_gamma.c:644 +#: ../src/iop/profile_gamma.c:658 msgid "" "number of stops between middle gray and pure black\n" "this is a reading a light meter would give you on the scene" @@ -18487,7 +19163,7 @@ "orta gri ile saf siyah arasındaki durak sayısı\n" "bu, bir ışık ölçerin size olay yerinde vereceği bir okumadır" -#: ../src/iop/profile_gamma.c:650 +#: ../src/iop/profile_gamma.c:664 msgid "" "number of stops between pure black and pure white\n" "this is a reading a light meter would give you on the scene" @@ -18495,36 +19171,36 @@ "saf siyah ve saf beyaz arasındaki durak sayısı\n" "bu, bir ışık ölçerin size olay yerinde vereceği bir okumadır" -#: ../src/iop/profile_gamma.c:652 +#: ../src/iop/profile_gamma.c:666 msgctxt "section" msgid "optimize automatically" msgstr "otomatik olarak optimize et" -#: ../src/iop/profile_gamma.c:656 +#: ../src/iop/profile_gamma.c:670 msgid "" -"enlarge or shrink the computed dynamic range\n" -"this is useful when noise perturbates the measurements" +"increase or decrease the computed dynamic range\n" +"this is useful when noise distorts the measurement" msgstr "" -"hesaplanan dinamik aralığı büyüt veya küçült\n" -"bu, gürültü ölçümleri bozduğunda kullanışlıdır" +"hesaplanan dinamik aralığı artırın veya azaltın\n" +"gürültü ölçümü bozduğunda bu kullanışlıdır" -#: ../src/iop/profile_gamma.c:660 +#: ../src/iop/profile_gamma.c:674 msgid "make an optimization with some guessing" msgstr "biraz tahminde bulunarak bir optimizasyon yapın" -#: ../src/iop/profile_gamma.c:669 +#: ../src/iop/profile_gamma.c:683 msgid "tone mapping method" msgstr "ton eşleme yöntemi" -#: ../src/iop/rawdenoise.c:124 +#: ../src/iop/rawdenoise.c:138 msgid "raw denoise" msgstr "ham gürültü" -#: ../src/iop/rawdenoise.c:129 +#: ../src/iop/rawdenoise.c:143 msgid "denoise the raw picture early in the pipeline" msgstr "ham resmi boru hattında erkenden gürültüden arındırın" -#: ../src/iop/rawdenoise.c:939 +#: ../src/iop/rawdenoise.c:955 msgid "" "raw denoising\n" "only works for raw images." @@ -18534,9 +19210,9 @@ #. * let's fill the encapsulating widgets #. mode of operation -#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2387 ../src/views/darkroom.c:2393 -#: ../src/views/darkroom.c:2406 +#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2226 ../src/views/darkroom.c:2232 +#: ../src/views/darkroom.c:2245 msgid "raw overexposed" msgstr "ham aşırı maruz kalmış" @@ -18545,7 +19221,7 @@ msgid "raw black/white point" msgstr "ham siyah/beyaz nokta" -#: ../src/iop/rawprepare.c:156 +#: ../src/iop/rawprepare.c:172 msgid "" "sets technical specificities of the raw sensor.\n" "touch with great care!" @@ -18553,63 +19229,63 @@ "ham sensörün teknik özelliklerini belirler.\n" "büyük bir dikkatle dokunun!" -#: ../src/iop/rawprepare.c:168 +#: ../src/iop/rawprepare.c:184 msgid "passthrough" msgstr "geçit" -#: ../src/iop/rawprepare.c:655 +#: ../src/iop/rawprepare.c:663 msgid "invalid crop parameters" msgstr "geçersiz kırpma parametreleri" -#: ../src/iop/rawprepare.c:656 +#: ../src/iop/rawprepare.c:664 msgid "" "please reset to defaults, update your preset or set to something correct" msgstr "" "lütfen varsayılanlara sıfırlayın, ön ayarınızı güncelleyin veya doğru bir " "şeye ayarlayın" -#: ../src/iop/rawprepare.c:922 +#: ../src/iop/rawprepare.c:930 msgid "black level 0" msgstr "siyah seviye 0" -#: ../src/iop/rawprepare.c:923 +#: ../src/iop/rawprepare.c:931 msgid "black level 1" msgstr "siyah seviye 1" -#: ../src/iop/rawprepare.c:924 +#: ../src/iop/rawprepare.c:932 msgid "black level 2" msgstr "siyah seviye 2" -#: ../src/iop/rawprepare.c:925 +#: ../src/iop/rawprepare.c:933 msgid "black level 3" msgstr "siyah seviye 3" -#: ../src/iop/rawprepare.c:952 +#: ../src/iop/rawprepare.c:960 msgid "raw flat field correction to compensate for lens shading" msgstr "mercek gölgelemesini telafi etmek için ham düz alan düzeltmesi" -#: ../src/iop/rawprepare.c:957 +#: ../src/iop/rawprepare.c:965 msgctxt "section" msgid "crop" msgstr "kırp" -#: ../src/iop/rawprepare.c:960 +#: ../src/iop/rawprepare.c:968 msgid "crop left border" msgstr "sol kenarlığı kırp" -#: ../src/iop/rawprepare.c:964 +#: ../src/iop/rawprepare.c:972 msgid "crop top border" msgstr "üst kenarlığı kırp" -#: ../src/iop/rawprepare.c:968 +#: ../src/iop/rawprepare.c:976 msgid "crop right border" msgstr "sağ kenarlığı kırp" -#: ../src/iop/rawprepare.c:972 +#: ../src/iop/rawprepare.c:980 msgid "crop bottom border" msgstr "alt kenarlığı kırp" -#: ../src/iop/rawprepare.c:981 +#: ../src/iop/rawprepare.c:989 msgid "" "raw black/white point correction\n" "only works for the sensors that need it." @@ -18636,11 +19312,11 @@ "bu modül kullanımdan kaldırılmıştır. lütfen bunun yerine ton ekolayzır " "modülünü kullanın." -#: ../src/iop/relight.c:263 +#: ../src/iop/relight.c:259 msgid "the fill-light in EV" msgstr "EV'deki dolgu ışığı" -#: ../src/iop/relight.c:272 +#: ../src/iop/relight.c:268 msgid "" "select the center of fill-light\n" "ctrl+click to select an area" @@ -18648,16 +19324,11 @@ "dolgu ışığının merkezini seçin\n" "bir alan seçmek için ctrl+tıklayın" -#: ../src/iop/relight.c:276 +#: ../src/iop/relight.c:272 msgid "toggle tool for picking median lightness in image" msgstr "görüntüdeki ortanca açıklığı seçmek için geçiş aracı" -#: ../src/iop/relight.c:279 ../src/libs/export.c:1131 -#: ../src/libs/metadata_view.c:147 ../src/libs/print_settings.c:2537 -msgid "width" -msgstr "genişlik" - -#: ../src/iop/relight.c:280 +#: ../src/iop/relight.c:276 msgid "width of fill-light area defined in zones" msgstr "bölgelerde tanımlanan dolgu-ışık alanının genişliği" @@ -18678,29 +19349,29 @@ msgid "geometric and frequential, RGB" msgstr "geometrik ve frekans, RGB" -#: ../src/iop/retouch.c:1538 +#: ../src/iop/retouch.c:1689 msgid "cannot display scales when the blending mask is displayed" msgstr "karıştırma maskesi görüntülendiğinde ölçekler görüntülenemez" -#: ../src/iop/retouch.c:1861 ../src/iop/retouch.c:1863 -#: ../src/iop/retouch.c:1865 ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2045 ../src/iop/retouch.c:2047 +#: ../src/iop/retouch.c:2049 ../src/iop/retouch.c:2051 #, c-format msgid "default tool changed to %s" msgstr "varsayılan araç %s olarak değiştirildi" -#: ../src/iop/retouch.c:1861 +#: ../src/iop/retouch.c:2045 msgid "cloning" msgstr "klonlama" -#: ../src/iop/retouch.c:1863 +#: ../src/iop/retouch.c:2047 msgid "healing" msgstr "iyileştirme" -#: ../src/iop/retouch.c:2226 +#: ../src/iop/retouch.c:2448 msgid "shapes:" msgstr "şekiller:" -#: ../src/iop/retouch.c:2230 +#: ../src/iop/retouch.c:2454 msgid "" "to add a shape select an algorithm and a shape type and click on the image.\n" "shapes are added to the current scale" @@ -18709,77 +19380,73 @@ "tıklayın.\n" "şekiller geçerli ölçeğe eklenir" -#. display & suppress masks -#. copy/paste shapes -#. display final image/current scale -#. auto-levels button -#: ../src/iop/retouch.c:2233 ../src/iop/retouch.c:2334 -#: ../src/iop/retouch.c:2339 ../src/iop/retouch.c:2347 -#: ../src/iop/retouch.c:2351 ../src/iop/retouch.c:2358 -#: ../src/iop/retouch.c:2392 +#: ../src/iop/retouch.c:2458 ../src/iop/retouch.c:2591 +#: ../src/iop/retouch.c:2597 ../src/iop/retouch.c:2606 +#: ../src/iop/retouch.c:2611 ../src/iop/retouch.c:2619 +#: ../src/iop/retouch.c:2664 msgid "editing" msgstr "düzenleme" -#: ../src/iop/retouch.c:2233 +#: ../src/iop/retouch.c:2459 msgid "show and edit shapes on the current scale" msgstr "şekilleri geçerli ölçekte göster ve düzenle" -#: ../src/iop/retouch.c:2234 +#: ../src/iop/retouch.c:2460 msgid "show and edit shapes in restricted mode" msgstr "kısıtlı modda şekilleri göster ve düzenle" -#: ../src/iop/retouch.c:2257 +#: ../src/iop/retouch.c:2489 msgid "algorithms:" msgstr "algoritmalar:" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2498 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2510 msgid "tools" msgstr "araçlar" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2278 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2518 msgid "activate blur tool" msgstr "bulanıklaştırma aracını etkinleştir" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2493 ../src/iop/retouch.c:2499 +#: ../src/iop/retouch.c:2505 ../src/iop/retouch.c:2511 msgid "change algorithm for current form" msgstr "mevcut biçim için algoritmayı değiştir" -#: ../src/iop/retouch.c:2264 ../src/iop/retouch.c:2281 +#: ../src/iop/retouch.c:2498 ../src/iop/retouch.c:2521 msgid "activate fill tool" msgstr "dolgu aracını etkinleştir" -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2284 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2524 msgid "activate cloning tool" msgstr "klonlama aracını etkinleştir" -#: ../src/iop/retouch.c:2272 ../src/iop/retouch.c:2287 +#: ../src/iop/retouch.c:2510 ../src/iop/retouch.c:2527 msgid "activate healing tool" msgstr "iyileştirme aracını etkinleştir" #. overwrite tooltip ourself to handle shift+click -#: ../src/iop/retouch.c:2276 +#: ../src/iop/retouch.c:2516 msgid "ctrl+click to change tool for current form" msgstr "geçerli biçimin aracını değiştirmek için ctrl+tıklayın" -#: ../src/iop/retouch.c:2277 +#: ../src/iop/retouch.c:2517 msgid "shift+click to set the tool as default" msgstr "aracı varsayılan olarak ayarlamak için shift+tıklayın" -#: ../src/iop/retouch.c:2296 +#: ../src/iop/retouch.c:2537 msgid "scales:" msgstr "ölçekler:" -#: ../src/iop/retouch.c:2301 +#: ../src/iop/retouch.c:2544 msgid "current:" msgstr "geçerli:" -#: ../src/iop/retouch.c:2306 +#: ../src/iop/retouch.c:2551 msgid "merge from:" msgstr "birleştirme:" -#: ../src/iop/retouch.c:2314 +#: ../src/iop/retouch.c:2562 msgid "" "top slider adjusts where the merge scales start\n" "bottom slider adjusts the number of scales\n" @@ -18794,44 +19461,44 @@ "gösterir\n" "alt satır, ölçeğin üzerinde şekiller olduğunu gösterir" -#: ../src/iop/retouch.c:2334 +#: ../src/iop/retouch.c:2591 msgid "display masks" msgstr "maskeleri göster" -#: ../src/iop/retouch.c:2339 +#: ../src/iop/retouch.c:2597 msgid "temporarily switch off shapes" msgstr "şekilleri geçici olarak kapat" -#: ../src/iop/retouch.c:2347 +#: ../src/iop/retouch.c:2606 msgid "paste cut shapes to current scale" msgstr "kesilen şekilleri geçerli ölçeğe yapıştır" -#: ../src/iop/retouch.c:2351 +#: ../src/iop/retouch.c:2611 msgid "cut shapes from current scale" msgstr "mevcut ölçekten şekilleri kes" -#: ../src/iop/retouch.c:2358 +#: ../src/iop/retouch.c:2619 msgid "display wavelet scale" msgstr "dalgacık ölçeğini göster" -#: ../src/iop/retouch.c:2366 +#: ../src/iop/retouch.c:2627 msgctxt "section" msgid "preview single scale" msgstr "tek ölçekli önizleme" -#: ../src/iop/retouch.c:2377 +#: ../src/iop/retouch.c:2641 msgid "adjust preview levels" msgstr "önizleme seviyelerini ayarla" -#: ../src/iop/retouch.c:2392 ../src/iop/rgblevels.c:1051 +#: ../src/iop/retouch.c:2664 ../src/iop/rgblevels.c:1106 msgid "auto levels" msgstr "otomatik seviyeler" -#: ../src/iop/retouch.c:2400 +#: ../src/iop/retouch.c:2672 msgid "shape selected:" msgstr "seçilen şekil:" -#: ../src/iop/retouch.c:2405 +#: ../src/iop/retouch.c:2678 msgid "" "click on a shape to select it,\n" "to unselect click on an empty space" @@ -18839,60 +19506,60 @@ "seçmek için bir şekle tıklayın,\n" "seçimi kaldırmak için boş bir alana tıklayın" -#: ../src/iop/retouch.c:2412 +#: ../src/iop/retouch.c:2687 msgid "erase the detail or fills with chosen color" msgstr "ayrıntıyı sil veya seçilen renkle doldur" -#: ../src/iop/retouch.c:2419 +#: ../src/iop/retouch.c:2697 msgid "fill color: " msgstr "dolgu rengi: " -#: ../src/iop/retouch.c:2424 ../src/iop/retouch.c:2425 +#: ../src/iop/retouch.c:2702 ../src/iop/retouch.c:2703 msgid "select fill color" msgstr "dolgu rengini seç" -#: ../src/iop/retouch.c:2430 +#: ../src/iop/retouch.c:2713 msgid "pick fill color from image" msgstr "görüntüden dolgu rengini seç" -#: ../src/iop/retouch.c:2431 +#: ../src/iop/retouch.c:2714 msgid "pick fill color" msgstr "dolgu rengini seç" -#: ../src/iop/retouch.c:2439 +#: ../src/iop/retouch.c:2724 msgid "adjusts color brightness to fine-tune it. works with erase as well" msgstr "ince ayar yapmak için renk parlaklığını ayarlar. silme ile de çalışır" -#: ../src/iop/retouch.c:2445 +#: ../src/iop/retouch.c:2730 msgid "type for the blur algorithm" msgstr "bulanıklık algoritması için yazın" -#: ../src/iop/retouch.c:2449 +#: ../src/iop/retouch.c:2734 msgid "radius of the selected blur type" msgstr "seçilen bulanıklaştırma türünün yarıçapı" -#: ../src/iop/retouch.c:2455 +#: ../src/iop/retouch.c:2741 msgid "set the opacity on the selected shape" msgstr "opaklığı seçilen şekle ayarla" -#: ../src/iop/retouch.c:2461 +#: ../src/iop/retouch.c:2748 msgctxt "section" msgid "retouch tools" msgstr "rötuş araçları" #. wavelet decompose -#: ../src/iop/retouch.c:2470 +#: ../src/iop/retouch.c:2757 msgctxt "section" msgid "wavelet decompose" msgstr "dalgacık ayrıştırma" #. shapes -#: ../src/iop/retouch.c:2484 +#: ../src/iop/retouch.c:2771 msgctxt "section" msgid "shapes" msgstr "şekiller" -#: ../src/iop/retouch.c:3589 ../src/iop/retouch.c:4427 +#: ../src/iop/retouch.c:3986 ../src/iop/retouch.c:4956 #, c-format msgid "max scale is %i for this image size" msgstr "bu görüntü boyutu için azami ölçek %i'dir" @@ -18901,60 +19568,60 @@ msgid "rgb curve" msgstr "rgb eğrisi" -#: ../src/iop/rgbcurve.c:142 +#: ../src/iop/rgbcurve.c:144 msgid "alter an image’s tones using curves in RGB color space" msgstr "" "RGB renk uzayındaki eğrileri kullanarak bir görüntünün tonlarını değiştirin" -#: ../src/iop/rgbcurve.c:193 ../src/iop/tonecurve.c:548 +#: ../src/iop/rgbcurve.c:195 ../src/iop/tonecurve.c:569 msgid "gamma 1.0 (linear)" msgstr "gama 1.0 (doğrusal)" -#: ../src/iop/rgbcurve.c:203 ../src/iop/tonecurve.c:558 +#: ../src/iop/rgbcurve.c:205 ../src/iop/tonecurve.c:579 msgid "contrast - med (linear)" msgstr "kontrast - orta (doğrusal)" -#: ../src/iop/rgbcurve.c:212 ../src/iop/tonecurve.c:567 +#: ../src/iop/rgbcurve.c:214 ../src/iop/tonecurve.c:588 msgid "contrast - high (linear)" msgstr "kontrast - yüksek (doğrusal)" -#: ../src/iop/rgbcurve.c:226 ../src/iop/tonecurve.c:579 +#: ../src/iop/rgbcurve.c:228 ../src/iop/tonecurve.c:600 msgid "contrast - med (gamma 2.2)" msgstr "kontrast - orta (gama 2.2)" -#: ../src/iop/rgbcurve.c:239 ../src/iop/tonecurve.c:590 +#: ../src/iop/rgbcurve.c:241 ../src/iop/tonecurve.c:611 msgid "contrast - high (gamma 2.2)" msgstr "kontrast - yüksek (gama 2.2)" -#: ../src/iop/rgbcurve.c:252 ../src/iop/tonecurve.c:603 +#: ../src/iop/rgbcurve.c:254 ../src/iop/tonecurve.c:624 msgid "gamma 2.0" msgstr "gama 2.0" -#: ../src/iop/rgbcurve.c:258 ../src/iop/tonecurve.c:609 +#: ../src/iop/rgbcurve.c:260 ../src/iop/tonecurve.c:630 msgid "gamma 0.5" msgstr "gama 0.5" -#: ../src/iop/rgbcurve.c:263 ../src/iop/tonecurve.c:614 +#: ../src/iop/rgbcurve.c:265 ../src/iop/tonecurve.c:635 msgid "logarithm (base 2)" msgstr "logaritma (taban 2)" -#: ../src/iop/rgbcurve.c:268 ../src/iop/tonecurve.c:619 +#: ../src/iop/rgbcurve.c:270 ../src/iop/tonecurve.c:640 msgid "exponential (base 2)" msgstr "üstel (taban 2)" -#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:999 +#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:1038 msgid "choose between linked and independent channels." msgstr "bağlantılı ve bağımsız kanallar arasında seçim yapın." -#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1003 +#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1043 msgid "curve nodes for r channel" msgstr "r kanalı için eğri düğümleri" -#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1004 +#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1044 msgid "curve nodes for g channel" msgstr "g kanalı için eğri düğümleri" -#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1005 +#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1045 msgid "curve nodes for b channel" msgstr "b kanalı için eğri düğümleri" @@ -18962,15 +19629,15 @@ msgid "rgb levels" msgstr "rgb seviyeleri" -#: ../src/iop/rgblevels.c:122 +#: ../src/iop/rgblevels.c:124 msgid "adjust black, white and mid-gray points in RGB color space" msgstr "RGB renk uzayında siyah, beyaz ve orta gri noktaları ayarlayın" -#: ../src/iop/rgblevels.c:1056 +#: ../src/iop/rgblevels.c:1112 msgid "auto region" msgstr "otomatik bölge" -#: ../src/iop/rgblevels.c:1058 +#: ../src/iop/rgblevels.c:1115 msgid "" "apply auto levels based on a region defined by the user\n" "click and drag to draw the area\n" @@ -18986,7 +19653,7 @@ msgid "rotate pixels" msgstr "pikselleri döndür" -#: ../src/iop/rotatepixels.c:97 ../src/iop/scalepixels.c:82 +#: ../src/iop/rotatepixels.c:99 ../src/iop/scalepixels.c:84 msgid "" "internal module to setup technical specificities of raw sensor.\n" "\n" @@ -18996,11 +19663,11 @@ "\n" "buradaki değerlere dokunmamalısınız!" -#: ../src/iop/rotatepixels.c:366 +#: ../src/iop/rotatepixels.c:381 msgid "automatic pixel rotation" msgstr "otomatik piksel döndürme" -#: ../src/iop/rotatepixels.c:367 +#: ../src/iop/rotatepixels.c:382 msgid "" "automatic pixel rotation\n" "only works for the sensors that need it." @@ -19013,11 +19680,11 @@ msgid "scale pixels" msgstr "pikselleri ölçeklendirme" -#: ../src/iop/scalepixels.c:271 +#: ../src/iop/scalepixels.c:281 msgid "automatic pixel scaling" msgstr "otomatik piksel ölçekleme" -#: ../src/iop/scalepixels.c:272 +#: ../src/iop/scalepixels.c:282 msgid "" "automatic pixel scaling\n" "only works for the sensors that need it." @@ -19025,11 +19692,11 @@ "otomatik piksel ölçekleme\n" "sadece ihtiyaç duyan sensörler için çalışır." -#: ../src/iop/shadhi.c:175 +#: ../src/iop/shadhi.c:120 msgid "shadows and highlights" msgstr "gölgeler ve vurgular" -#: ../src/iop/shadhi.c:195 +#: ../src/iop/shadhi.c:142 msgid "" "modify the tonal range of the shadows and highlights\n" "of an image by enhancing local contrast." @@ -19037,27 +19704,27 @@ "gölgelerin ve vurguların ton aralığını değiştirin\n" "yerel kontrastı artırarak bir görüntünün." -#: ../src/iop/shadhi.c:676 ../src/iop/splittoning.c:548 +#: ../src/iop/shadhi.c:711 ../src/iop/splittoning.c:544 msgid "compress" msgstr "sıkıştır" -#: ../src/iop/shadhi.c:683 +#: ../src/iop/shadhi.c:718 msgid "correct shadows" msgstr "doğru gölgeler" -#: ../src/iop/shadhi.c:684 +#: ../src/iop/shadhi.c:719 msgid "correct highlights" msgstr "doğru vurgular" -#: ../src/iop/shadhi.c:685 +#: ../src/iop/shadhi.c:720 msgid "shift white point" msgstr "beyaz noktayı değiştir" -#: ../src/iop/shadhi.c:687 +#: ../src/iop/shadhi.c:722 msgid "filter to use for softening. bilateral avoids halos" msgstr "yumuşatmak için kullanılacak filtre. iki taraflı haleleri önler" -#: ../src/iop/shadhi.c:688 +#: ../src/iop/shadhi.c:723 msgid "" "compress the effect on shadows/highlights and\n" "preserve mid-tones" @@ -19065,11 +19732,11 @@ "gölgeler/vurgular üzerindeki efekti sıkıştırın ve\n" "orta tonları koru" -#: ../src/iop/shadhi.c:689 +#: ../src/iop/shadhi.c:724 msgid "adjust saturation of shadows" msgstr "gölgelerin doygunluğunu ayarla" -#: ../src/iop/shadhi.c:690 +#: ../src/iop/shadhi.c:725 msgid "adjust saturation of highlights" msgstr "vurguların doygunluğunu ayarla" @@ -19078,48 +19745,48 @@ msgid "sharpen" msgstr "keskinleştirme" -#: ../src/iop/sharpen.c:93 +#: ../src/iop/sharpen.c:95 msgid "sharpen the details in the image using a standard UnSharp Mask (USM)" msgstr "" "standart bir UnSharp Mask (USM) kullanarak görüntüdeki ayrıntıları " "netleştirin" -#: ../src/iop/sharpen.c:95 +#: ../src/iop/sharpen.c:97 msgid "linear or non-linear, Lab, display or scene-referred" msgstr "" "doğrusal veya doğrusal olmayan, Laboratuar, ekran veya sahne referanslı" -#: ../src/iop/sharpen.c:97 +#: ../src/iop/sharpen.c:99 msgid "quasi-linear, Lab, display or scene-referred" msgstr "yarı doğrusal, Laboratuar, ekran veya sahne referanslı" #. add the preset. #. restrict to raw images -#: ../src/iop/sharpen.c:104 ../src/iop/sharpen.c:108 +#: ../src/iop/sharpen.c:106 ../src/iop/sharpen.c:110 msgid "sharpen" msgstr "keskinleştirme" -#: ../src/iop/sharpen.c:443 +#: ../src/iop/sharpen.c:438 msgid "spatial extent of the unblurring" msgstr "bulanıklaştırmanın uzamsal boyutu" -#: ../src/iop/sharpen.c:447 +#: ../src/iop/sharpen.c:442 msgid "strength of the sharpen" msgstr "keskinleştirme gücü" -#: ../src/iop/sharpen.c:451 +#: ../src/iop/sharpen.c:446 msgid "threshold to activate sharpen" msgstr "keskinleştirmeyi etkinleştirmek için eşik" -#: ../src/iop/sigmoid.c:89 +#: ../src/iop/sigmoid.c:195 msgid "sigmoid" msgstr "sigmoid" -#: ../src/iop/sigmoid.c:94 +#: ../src/iop/sigmoid.c:200 msgid "tone mapping|view transform|display transform" msgstr "ton eşleme|görünüm dönüşümü|görüntü dönüşümü" -#: ../src/iop/sigmoid.c:99 +#: ../src/iop/sigmoid.c:206 msgid "" "apply a view transform to make a image displayable\n" "on a screen or print. uses a robust and smooth\n" @@ -19130,19 +19797,19 @@ "bir ekranda veya baskıda. sağlam ve pürüzsüz kullanır\n" "isteğe bağlı renk koruma yöntemleriyle ton eğrisi." -#: ../src/iop/sigmoid.c:155 +#: ../src/iop/sigmoid.c:258 msgid "neutral gray" msgstr "doğal gri" -#: ../src/iop/sigmoid.c:160 +#: ../src/iop/sigmoid.c:264 msgid "ACES 100-nit like" msgstr "ACES 100-nit gibi" -#: ../src/iop/sigmoid.c:165 +#: ../src/iop/sigmoid.c:270 msgid "Reinhard" msgstr "Reinhard" -#: ../src/iop/sigmoid.c:683 +#: ../src/iop/sigmoid.c:917 msgid "" "compression of the applied curve\n" "implicitly defines the supported input dynamic range" @@ -19150,7 +19817,7 @@ "uygulanan eğrinin sıkıştırılması\n" "desteklenen giriş dinamik aralığını dolaylı olarak tanımlar" -#: ../src/iop/sigmoid.c:686 +#: ../src/iop/sigmoid.c:920 msgid "" "shift the compression towards shadows or highlights.\n" "negative values increase contrast in shadows.\n" @@ -19162,7 +19829,7 @@ "pozitif değerler parlak noktalarda kontrastı artırır.\n" "karşı uç kontrastta bir azalma görecektir." -#: ../src/iop/sigmoid.c:695 +#: ../src/iop/sigmoid.c:929 msgid "" "optional correction of the hue twist introduced by\n" "the per-channel processing method." @@ -19170,15 +19837,55 @@ "tarafından sunulan ton bükülmesinin isteğe bağlı düzeltmesi\n" "kanal başına işleme yöntemi." -#: ../src/iop/sigmoid.c:702 +#: ../src/iop/sigmoid.c:936 ../src/iop/sigmoid.c:940 +msgid "primaries" +msgstr "ön seçimler" + +#: ../src/iop/sigmoid.c:937 +msgid "set custom primaries" +msgstr "özel ön seçimleri ayarla" + +#: ../src/iop/sigmoid.c:943 +msgid "primaries to use as the base for below adjustments" +msgstr "aşağıdaki ayarlamalar için temel olarak kullanılacak birinciller" + +#: ../src/iop/sigmoid.c:962 +msgid "attenuate the purity of the red primary" +msgstr "kırmızı birincilin saflığını zayıflatır" + +#: ../src/iop/sigmoid.c:963 +msgid "rotate the red primary" +msgstr "kırmızı birincili döndür" + +#: ../src/iop/sigmoid.c:964 +msgid "attenuate the purity of the green primary" +msgstr "yeşil birincilin saflığını zayıflatır" + +#: ../src/iop/sigmoid.c:965 +msgid "rotate the green primary" +msgstr "yeşil birincili döndür" + +#: ../src/iop/sigmoid.c:966 +msgid "attenuate the purity of the blue primary" +msgstr "mavi birincilin saflığını zayıflatır" + +#: ../src/iop/sigmoid.c:967 +msgid "rotate the blue primary" +msgstr "mavi birincil olanı döndür" + +#: ../src/iop/sigmoid.c:974 +msgid "recover some of the original purity after the inset" +msgstr "eklemeden sonra orijinal saflığın bir kısmını geri kazanın" + +#: ../src/iop/sigmoid.c:978 msgid "display luminance" msgstr "ekran parlaklığı" -#: ../src/iop/sigmoid.c:706 +#: ../src/iop/sigmoid.c:979 msgid "set display black/white targets" msgstr "siyah/beyaz görüntüleme hedeflerini ayarla" -#: ../src/iop/sigmoid.c:714 +#: ../src/iop/sigmoid.c:987 msgid "" "the black luminance of the target display or print.\n" "can be used creatively for a faded look." @@ -19186,7 +19893,7 @@ "hedef ekranın veya baskının siyah parlaklığı.\n" "soluk bir görünüm için yaratıcı bir şekilde kullanılabilir." -#: ../src/iop/sigmoid.c:719 +#: ../src/iop/sigmoid.c:992 msgid "" "the white luminance of the target display or print.\n" "can be used creatively for a faded look or blowing out whites earlier." @@ -19199,23 +19906,23 @@ msgid "soften" msgstr "yumuşatma" -#: ../src/iop/soften.c:100 +#: ../src/iop/soften.c:102 msgid "create a softened image using the Orton effect" msgstr "Orton efektini kullanarak yumuşatılmış bir görüntü oluşturun" -#: ../src/iop/soften.c:371 +#: ../src/iop/soften.c:366 msgid "the size of blur" msgstr "bulanıklık boyutu" -#: ../src/iop/soften.c:375 +#: ../src/iop/soften.c:370 msgid "the saturation of blur" msgstr "bulanıklığın doygunluğu" -#: ../src/iop/soften.c:379 +#: ../src/iop/soften.c:374 msgid "the brightness of blur" msgstr "bulanıklığın parlaklığı" -#: ../src/iop/soften.c:383 +#: ../src/iop/soften.c:378 msgid "the mix of effect" msgstr "efekt karışımı" @@ -19223,7 +19930,7 @@ msgid "split-toning" msgstr "bölünmüş tonlama" -#: ../src/iop/splittoning.c:101 +#: ../src/iop/splittoning.c:103 msgid "" "use two specific colors for shadows and highlights and\n" "create a linear toning effect between them up to a pivot." @@ -19231,49 +19938,49 @@ "gölgeler ve vurgular için iki özel renk kullanın ve\n" "bir pivota kadar aralarında doğrusal bir tonlama etkisi yaratın." -#: ../src/iop/splittoning.c:118 +#: ../src/iop/splittoning.c:120 msgid "authentic sepia" msgstr "otantik sepya" -#: ../src/iop/splittoning.c:127 +#: ../src/iop/splittoning.c:129 msgid "authentic cyanotype" msgstr "otantik siyanotip" -#: ../src/iop/splittoning.c:136 +#: ../src/iop/splittoning.c:138 msgid "authentic platinotype" msgstr "otantik platin tipi" -#: ../src/iop/splittoning.c:145 +#: ../src/iop/splittoning.c:147 msgid "chocolate brown" msgstr "çikolata kahverengi" -#: ../src/iop/splittoning.c:490 +#: ../src/iop/splittoning.c:486 msgid "select the saturation tone" msgstr "doygunluk tonunu seçin" -#: ../src/iop/splittoning.c:494 +#: ../src/iop/splittoning.c:490 msgid "select tone color" msgstr "ton rengini seç" -#: ../src/iop/splittoning.c:524 +#: ../src/iop/splittoning.c:520 msgctxt "section" msgid "shadows" msgstr "gölgeler" -#: ../src/iop/splittoning.c:530 +#: ../src/iop/splittoning.c:526 msgctxt "section" msgid "highlights" msgstr "vurgular" -#: ../src/iop/splittoning.c:539 +#: ../src/iop/splittoning.c:535 msgid "balance" msgstr "denge" -#: ../src/iop/splittoning.c:546 +#: ../src/iop/splittoning.c:542 msgid "the balance of center of split-toning" msgstr "bölünmüş tonlama merkezi dengesi" -#: ../src/iop/splittoning.c:550 +#: ../src/iop/splittoning.c:546 msgid "" "compress the effect on highlights/shadows and\n" "preserve mid-tones" @@ -19299,15 +20006,15 @@ msgid "geometric, raw" msgstr "geometrik, ham" -#: ../src/iop/spots.c:226 +#: ../src/iop/spots.c:238 msgid "spot module is limited to 64 shapes. please add a new instance!" msgstr "spot modülü 64 şekil ile sınırlıdır. lütfen yeni bir örnek ekleyin!" -#: ../src/iop/spots.c:872 +#: ../src/iop/spots.c:874 msgid "number of strokes:" msgstr "vuruş sayısı:" -#: ../src/iop/spots.c:876 +#: ../src/iop/spots.c:878 msgid "" "click on a shape and drag on canvas.\n" "use the mouse wheel to adjust size.\n" @@ -19317,130 +20024,118 @@ "boyutunu ayarlamak için fare tekerleğini kullanın.\n" "bir şekli kaldırmak için sağ tıklayın." -#: ../src/iop/spots.c:879 +#: ../src/iop/spots.c:881 msgid "show and edit shapes" msgstr "şekilleri göster ve düzenle" -#: ../src/iop/temperature.c:204 +#: ../src/iop/temperature.c:212 msgctxt "modulename" msgid "white balance" msgstr "beyaz dengesi" -#: ../src/iop/temperature.c:211 +#: ../src/iop/temperature.c:219 msgid "scale raw RGB channels to balance white and help demosaicing" msgstr "" "beyazı dengelemek ve demosaicing'e yardımcı olmak için ham RGB kanallarını " "ölçeklendirin" -#: ../src/iop/temperature.c:1149 -msgid "white balance applied twice" -msgstr "beyaz dengesi iki kez uygulandı" - -#: ../src/iop/temperature.c:1150 -msgid "" -"the color calibration module is enabled,\n" -"and performing chromatic adaptation.\n" -"set the white balance here to camera reference (D65)\n" -"or disable chromatic adaptation in color calibration." -msgstr "" -"renk kalibrasyon modülü etkinleştirildi,\n" -"ve kromatik uyarlamanın gerçekleştirilmesi.\n" -"burada beyaz dengesini kamera referansına ayarlayın (D65)\n" -"veya renk kalibrasyonunda kromatik uyarlamayı devre dışı bırakın." - -#: ../src/iop/temperature.c:1430 +#: ../src/iop/temperature.c:1388 #, c-format msgid "`%s' color matrix not found for image" msgstr "`%s' renk matrisi resim için bulunamadı" -#: ../src/iop/temperature.c:1459 +#: ../src/iop/temperature.c:1418 #, c-format msgid "failed to read camera white balance information from `%s'!" msgstr "`%s' cihazından kamera beyaz dengesi bilgisi okunamadı!" -#: ../src/iop/temperature.c:1631 +#: ../src/iop/temperature.c:1612 msgctxt "white balance" msgid "as shot" msgstr "çekim olarak" #. old "spot", reason: describes exactly what'll happen -#: ../src/iop/temperature.c:1634 +#: ../src/iop/temperature.c:1615 msgctxt "white balance" msgid "from image area" msgstr "görüntü alanından" -#: ../src/iop/temperature.c:1635 +#: ../src/iop/temperature.c:1616 msgctxt "white balance" msgid "user modified" msgstr "kullanıcı değiştirildi" #. old "camera neutral", reason: better matches intent -#: ../src/iop/temperature.c:1637 +#: ../src/iop/temperature.c:1618 msgctxt "white balance" msgid "camera reference" msgstr "kamera referansı" -#: ../src/iop/temperature.c:1920 ../src/iop/temperature.c:1938 +#: ../src/iop/temperature.c:1897 ../src/iop/temperature.c:1915 msgid "green channel coefficient" msgstr "yeşil kanal katsayısı" -#: ../src/iop/temperature.c:1922 +#: ../src/iop/temperature.c:1899 msgid "magenta channel coefficient" msgstr "eflatun kanal katsayısı" -#: ../src/iop/temperature.c:1924 +#: ../src/iop/temperature.c:1901 msgid "cyan channel coefficient" msgstr "camgöbeği kanal katsayısı" -#: ../src/iop/temperature.c:1926 +#: ../src/iop/temperature.c:1903 msgid "yellow channel coefficient" msgstr "sarı kanal katsayısı" -#: ../src/iop/temperature.c:1936 +#: ../src/iop/temperature.c:1913 msgid "red channel coefficient" msgstr "kırmızı kanal katsayısı" -#: ../src/iop/temperature.c:1940 +#: ../src/iop/temperature.c:1917 msgid "blue channel coefficient" msgstr "mavi kanal katsayısı" -#: ../src/iop/temperature.c:1942 +#: ../src/iop/temperature.c:1918 +msgid "emerald" +msgstr "zümrüt" + +#: ../src/iop/temperature.c:1919 msgid "emerald channel coefficient" msgstr "zümrüt kanal katsayısı" #. relabel to settings to remove confusion between module presets #. and white balance settings -#: ../src/iop/temperature.c:2029 ../src/iop/temperature.c:2042 -#: ../src/iop/temperature.c:2049 ../src/iop/temperature.c:2055 -#: ../src/iop/temperature.c:2074 +#: ../src/iop/temperature.c:1997 ../src/iop/temperature.c:2010 +#: ../src/iop/temperature.c:2017 ../src/iop/temperature.c:2023 +#: ../src/iop/temperature.c:2042 msgid "settings" msgstr "ayarlar" -#: ../src/iop/temperature.c:2029 +#: ../src/iop/temperature.c:1997 msgid "as shot" msgstr "çekim olarak" -#: ../src/iop/temperature.c:2032 +#: ../src/iop/temperature.c:2000 msgid "set white balance to as shot" msgstr "beyaz dengesini çekim olarak ayarla" -#: ../src/iop/temperature.c:2042 +#: ../src/iop/temperature.c:2010 msgid "from image area" msgstr "görüntü alanından" -#: ../src/iop/temperature.c:2049 +#: ../src/iop/temperature.c:2017 msgid "user modified" msgstr "kullanıcı değiştirildi" -#: ../src/iop/temperature.c:2052 +#: ../src/iop/temperature.c:2020 msgid "set white balance to user modified" msgstr "beyaz dengesini kullanıcı tarafından değiştirilmiş olarak ayarla" -#: ../src/iop/temperature.c:2055 +#: ../src/iop/temperature.c:2023 msgid "camera reference" msgstr "kamera referansı" -#: ../src/iop/temperature.c:2060 +#: ../src/iop/temperature.c:2028 msgid "" "set white balance to camera reference point\n" "in most cases it should be D65" @@ -19448,56 +20143,60 @@ "beyaz dengesini kamera referans noktasına ayarla\n" "çoğu durumda D65 olmalıdır" -#: ../src/iop/temperature.c:2075 +#: ../src/iop/temperature.c:2043 msgid "choose white balance setting" msgstr "beyaz dengesi ayarını seçin" -#: ../src/iop/temperature.c:2080 +#: ../src/iop/temperature.c:2048 msgid "finetune" msgstr "ince ayar" -#: ../src/iop/temperature.c:2082 +#: ../src/iop/temperature.c:2050 msgid "fine tune camera's white balance setting" msgstr "kameranın beyaz dengesi ayarına ince ayar yapın" -#: ../src/iop/temperature.c:2093 +#: ../src/iop/temperature.c:2058 msgctxt "section" msgid "scene illuminant temp" msgstr "sahne aydınlatma sıcaklığı" -#: ../src/iop/temperature.c:2094 +#: ../src/iop/temperature.c:2059 msgid "click to cycle color mode on sliders" msgstr "kaydırıcılarda renk modunu değiştirmek için tıklayın" -#: ../src/iop/temperature.c:2108 +#: ../src/iop/temperature.c:2073 msgid "color temperature (in Kelvin)" msgstr "renk sıcaklığı (Kelvin cinsinden)" -#: ../src/iop/temperature.c:2114 +#: ../src/iop/temperature.c:2079 msgid "tint" msgstr "renk tonu" -#: ../src/iop/temperature.c:2117 +#: ../src/iop/temperature.c:2082 msgid "color tint of the image, from magenta (value < 1) to green (value > 1)" msgstr "görüntünün renk tonu, eflatundan (değer < 1) yeşile (değer > 1)" -#: ../src/iop/temperature.c:2123 +#: ../src/iop/temperature.c:2088 msgid "channel coefficients" msgstr "kanal katsayıları" -#: ../src/iop/temperature.c:2158 +#: ../src/iop/temperature.c:2097 +msgid "various" +msgstr "çeşitli" + +#: ../src/iop/temperature.c:2123 msgid "white balance disabled for camera" msgstr "kamera için beyaz dengesi devre dışı" -#: ../src/iop/tonecurve.c:190 +#: ../src/iop/tonecurve.c:161 msgid "tone curve" msgstr "ton eğrisi" -#: ../src/iop/tonecurve.c:210 +#: ../src/iop/tonecurve.c:183 msgid "alter an image’s tones using curves" msgstr "eğrileri kullanarak bir görüntünün tonlarını değiştirin" -#: ../src/iop/tonecurve.c:1125 +#: ../src/iop/tonecurve.c:1147 msgid "" "if set to auto, a and b curves have no effect and are not displayed. chroma " "values (a and b) of each pixel are then adjusted based on L curve data. auto " @@ -19508,118 +20207,110 @@ "verilerine göre ayarlanır. otomatik XYZ benzerdir ancak doygunluk " "değişikliklerini XYZ uzayında uygular." -#: ../src/iop/tonecurve.c:1134 +#: ../src/iop/tonecurve.c:1156 msgid "tonecurve for L channel" msgstr "L kanalı için ton eğrisi" -#: ../src/iop/tonecurve.c:1135 +#: ../src/iop/tonecurve.c:1157 msgid "tonecurve for a channel" msgstr "kanal için ton eğrisi" -#: ../src/iop/tonecurve.c:1136 +#: ../src/iop/tonecurve.c:1158 msgid "tonecurve for b channel" msgstr "b kanalı için ton eğrisi" -#: ../src/iop/tonecurve.c:1143 ../src/iop/watermark.c:1305 -#: ../src/libs/colorpicker.c:597 +#: ../src/iop/tonecurve.c:1165 ../src/iop/watermark.c:1353 +#: ../src/libs/colorpicker.c:675 msgid "pick color" msgstr "renk seç" -#: ../src/iop/toneequal.c:311 +#: ../src/iop/toneequal.c:319 msgid "tone equalizer" msgstr "ton ekolayzır" -#: ../src/iop/toneequal.c:316 +#: ../src/iop/toneequal.c:324 msgid "tone curve|tone mapping|relight|background light|shadows highlights" msgstr "" "ton eğrisi|ton eşleme|yeniden aydınlatma|arka plan ışığı|gölgeler vurgular" -#: ../src/iop/toneequal.c:323 +#: ../src/iop/toneequal.c:331 msgid "relight the scene as if the lighting was done directly on the scene" msgstr "" "aydınlatma doğrudan olay yerinde yapılmış gibi sahneyi yeniden aydınlatın" -#: ../src/iop/toneequal.c:326 +#: ../src/iop/toneequal.c:334 msgid "quasi-linear, RGB" msgstr "yarı doğrusal, RGB" -#: ../src/iop/toneequal.c:327 +#: ../src/iop/toneequal.c:335 msgid "quasi-linear, RGB, scene-referred" msgstr "yarı doğrusal, RGB, sahne referanslı" -#: ../src/iop/toneequal.c:458 +#: ../src/iop/toneequal.c:489 msgid "simple tone curve" msgstr "basit ton eğrisi" -#: ../src/iop/toneequal.c:472 +#: ../src/iop/toneequal.c:503 msgid "mask blending: all purposes" msgstr "maske karıştırma: tüm amaçlar" -#: ../src/iop/toneequal.c:479 +#: ../src/iop/toneequal.c:510 msgid "mask blending: people with backlight" msgstr "maske karıştırma: arkadan aydınlatmalı insanlar" -#: ../src/iop/toneequal.c:496 +#: ../src/iop/toneequal.c:527 msgid "compress shadows/highlights (EIGF): strong" msgstr "gölgeleri/vurguları sıkıştır (EIGF): güçlü" -#: ../src/iop/toneequal.c:501 +#: ../src/iop/toneequal.c:532 msgid "compress shadows/highlights (GF): strong" msgstr "gölgeleri/vurguları sıkıştır (GF): güçlü" -#: ../src/iop/toneequal.c:510 +#: ../src/iop/toneequal.c:541 msgid "compress shadows/highlights (EIGF): medium" msgstr "gölgeleri/vurguları sıkıştır (EIGF): orta" -#: ../src/iop/toneequal.c:515 +#: ../src/iop/toneequal.c:546 msgid "compress shadows/highlights (GF): medium" msgstr "gölgeleri/vurguları sıkıştır (GF): orta" -#: ../src/iop/toneequal.c:524 +#: ../src/iop/toneequal.c:555 msgid "compress shadows/highlights (EIGF): soft" msgstr "gölgeleri/vurguları sıkıştır (EIGF): yumuşak" -#: ../src/iop/toneequal.c:529 +#: ../src/iop/toneequal.c:560 msgid "compress shadows/highlights (GF): soft" msgstr "gölgeleri/vurguları sıkıştır (GF): yumuşak" -#: ../src/iop/toneequal.c:537 +#: ../src/iop/toneequal.c:568 msgid "contrast tone curve: soft" msgstr "kontrast ton eğrisi: yumuşak" -#: ../src/iop/toneequal.c:542 +#: ../src/iop/toneequal.c:573 msgid "contrast tone curve: medium" msgstr "kontrast ton eğrisi: orta" -#: ../src/iop/toneequal.c:547 +#: ../src/iop/toneequal.c:578 msgid "contrast tone curve: strong" msgstr "kontrast ton eğrisi: güçlü" -#: ../src/iop/toneequal.c:570 +#: ../src/iop/toneequal.c:601 msgid "relight: fill-in" msgstr "yeniden aydınlatma: dolgu" -#: ../src/iop/toneequal.c:627 -msgid "" -"tone equalizer needs to be after distortion modules in the pipeline – " -"disabled" -msgstr "" -"ton ekolayzerin boru hattındaki bozulma modüllerinden sonra olması gerekiyor " -"- devre dışı" - -#: ../src/iop/toneequal.c:1091 +#: ../src/iop/toneequal.c:1120 msgid "tone equalizer failed to allocate memory, check your RAM settings" msgstr "ton ekolayzer bellek ayıramadı, RAM ayarlarınızı kontrol edin" -#: ../src/iop/toneequal.c:1795 ../src/iop/toneequal.c:2180 +#: ../src/iop/toneequal.c:1825 ../src/iop/toneequal.c:2196 msgid "the interpolation is unstable, decrease the curve smoothing" msgstr "ara değerleme kararsız, eğri yumuşatmayı azaltın" -#: ../src/iop/toneequal.c:1830 ../src/iop/toneequal.c:1897 +#: ../src/iop/toneequal.c:1860 ../src/iop/toneequal.c:1927 msgid "wait for the preview to finish recomputing" msgstr "önizlemenin yeniden hesaplamayı bitirmesini bekleyin" -#: ../src/iop/toneequal.c:2037 ../src/iop/toneequal.c:2587 +#: ../src/iop/toneequal.c:2069 ../src/iop/toneequal.c:2628 msgid "" "scroll over image to change tone exposure\n" "shift+scroll for large steps; ctrl+scroll for small steps" @@ -19627,89 +20318,89 @@ "ton pozlamasını değiştirmek için görüntünün üzerine kaydırın\n" "büyük adımlar için shift+kaydırma; küçük adımlar için ctrl+scroll" -#: ../src/iop/toneequal.c:2185 +#: ../src/iop/toneequal.c:2201 msgid "some parameters are out-of-bounds" msgstr "bazı parametreler sınırların dışında" -#: ../src/iop/toneequal.c:2524 +#: ../src/iop/toneequal.c:2518 #, c-format msgid "%+.1f EV" msgstr "%+.1f EV" -#: ../src/iop/toneequal.c:3236 +#: ../src/iop/toneequal.c:3283 #, c-format msgid "[%s over image] change tone exposure" msgstr "[görüntü üzerinde %s] ton pozunu değiştir" -#: ../src/iop/toneequal.c:3239 +#: ../src/iop/toneequal.c:3286 #, c-format msgid "[%s over image] change tone exposure in large steps" msgstr "[görüntü üzerinde %s] büyük adımlarla ton pozunu değiştirin" -#: ../src/iop/toneequal.c:3242 +#: ../src/iop/toneequal.c:3289 #, c-format msgid "[%s over image] change tone exposure in small steps" msgstr "[görüntü üzerinde %s] küçük adımlarla ton pozunu değiştirin" #. Simple view -#: ../src/iop/toneequal.c:3323 ../src/iop/toneequal.c:3352 -#: ../src/iop/toneequal.c:3353 ../src/iop/toneequal.c:3354 -#: ../src/iop/toneequal.c:3355 ../src/iop/toneequal.c:3356 -#: ../src/iop/toneequal.c:3357 ../src/iop/toneequal.c:3358 -#: ../src/iop/toneequal.c:3359 ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3376 ../src/iop/toneequal.c:3405 +#: ../src/iop/toneequal.c:3406 ../src/iop/toneequal.c:3407 +#: ../src/iop/toneequal.c:3408 ../src/iop/toneequal.c:3409 +#: ../src/iop/toneequal.c:3410 ../src/iop/toneequal.c:3411 +#: ../src/iop/toneequal.c:3412 ../src/iop/toneequal.c:3413 msgid "simple" msgstr "basit" -#: ../src/iop/toneequal.c:3352 +#: ../src/iop/toneequal.c:3405 msgid "-8 EV" msgstr "-8 EV" -#: ../src/iop/toneequal.c:3353 +#: ../src/iop/toneequal.c:3406 msgid "-7 EV" msgstr "-7 EV" -#: ../src/iop/toneequal.c:3354 +#: ../src/iop/toneequal.c:3407 msgid "-6 EV" msgstr "-6 EV" -#: ../src/iop/toneequal.c:3355 +#: ../src/iop/toneequal.c:3408 msgid "-5 EV" msgstr "-5 EV" -#: ../src/iop/toneequal.c:3356 +#: ../src/iop/toneequal.c:3409 msgid "-4 EV" msgstr "-4 EV" -#: ../src/iop/toneequal.c:3357 +#: ../src/iop/toneequal.c:3410 msgid "-3 EV" msgstr "-3 EV" -#: ../src/iop/toneequal.c:3358 +#: ../src/iop/toneequal.c:3411 msgid "-2 EV" msgstr "-2 EV" -#: ../src/iop/toneequal.c:3359 +#: ../src/iop/toneequal.c:3412 msgid "-1 EV" msgstr "-1 EV" -#: ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3413 msgid "+0 EV" msgstr "+0 EV" #. Advanced view -#: ../src/iop/toneequal.c:3364 +#: ../src/iop/toneequal.c:3417 msgid "advanced" msgstr "gelişmiş" -#: ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3444 msgid "double-click to reset the curve" msgstr "eğriyi sıfırlamak için çift tıklayın" -#: ../src/iop/toneequal.c:3395 +#: ../src/iop/toneequal.c:3448 msgid "curve smoothing" msgstr "eğri yumuşatma" -#: ../src/iop/toneequal.c:3398 +#: ../src/iop/toneequal.c:3451 msgid "" "positive values will produce more progressive tone transitions\n" "but the curve might become oscillatory in some settings.\n" @@ -19722,11 +20413,11 @@ "ancak sert ton geçişleri üretebilir ve yerel kontrasta zarar verebilir." #. Masking options -#: ../src/iop/toneequal.c:3408 +#: ../src/iop/toneequal.c:3461 msgid "masking" msgstr "maskeleme" -#: ../src/iop/toneequal.c:3413 +#: ../src/iop/toneequal.c:3466 msgid "" "preview the mask and chose the estimator that gives you the\n" "higher contrast between areas to dodge and areas to burn" @@ -19734,15 +20425,15 @@ "maskeyi önizleyin ve size aşağıdakileri veren tahminciyi seçin\n" "atlatılacak alanlar ve yakılacak alanlar arasında daha yüksek kontrast" -#: ../src/iop/toneequal.c:3416 +#: ../src/iop/toneequal.c:3469 msgid "details" msgstr "ayrıntılar" -#: ../src/iop/toneequal.c:3417 +#: ../src/iop/toneequal.c:3470 msgid "preserve details" msgstr "ayrıntıları koru" -#: ../src/iop/toneequal.c:3420 +#: ../src/iop/toneequal.c:3473 msgid "" "'no' affects global and local contrast (safe if you only add contrast)\n" "'guided filter' only affects global contrast and tries to preserve local " @@ -19767,7 +20458,7 @@ "\"ortalama EIGF\", \"hayır\" ve \"maruziyetten bağımsız kılavuzlu filtre\" " "yöntemlerinin geometrik bir ortalamasıdır" -#: ../src/iop/toneequal.c:3433 +#: ../src/iop/toneequal.c:3486 msgid "" "number of passes of guided filter to apply\n" "helps diffusing the edges of the filter at the expense of speed" @@ -19775,7 +20466,7 @@ "uygulanacak kılavuzlu filtre geçiş sayısı\n" "hız pahasına filtrenin kenarlarının dağılmasına yardımcı olur" -#: ../src/iop/toneequal.c:3441 +#: ../src/iop/toneequal.c:3494 msgid "" "diameter of the blur in percent of the largest image size\n" "warning: big values of this parameter can make the darkroom\n" @@ -19785,7 +20476,7 @@ "uyarı: bu parametrenin büyük değerleri karanlık odayı\n" "gürültü profilli kullanılıyorsa önizleme çok daha yavaştır." -#: ../src/iop/toneequal.c:3449 +#: ../src/iop/toneequal.c:3502 msgid "" "precision of the feathering:\n" "higher values force the mask to follow edges more closely\n" @@ -19799,12 +20490,12 @@ "daha düşük değerler daha yumuşak eyimler ve daha iyi yumuşatma sağlar\n" "ancak hatalı kenar bantlanmasına ve halelere neden olabilir" -#: ../src/iop/toneequal.c:3456 +#: ../src/iop/toneequal.c:3509 msgctxt "section" msgid "mask post-processing" msgstr "maskeleme sonrası işleme" -#: ../src/iop/toneequal.c:3467 +#: ../src/iop/toneequal.c:3520 msgid "" "mask histogram span between the first and last deciles.\n" "the central line shows the average. orange bars appear at extrema if " @@ -19814,7 +20505,7 @@ "orta çizgi ortalamayı gösterir. kırpma meydana gelirse aşırı turuncu " "çubuklar görünür." -#: ../src/iop/toneequal.c:3475 +#: ../src/iop/toneequal.c:3528 msgid "" "0 disables the quantization.\n" "higher values posterize the luminance mask to help the guiding\n" @@ -19826,7 +20517,7 @@ "yüksek geçiş yumuşatma değerleri kullanırken parça bazında pürüzsüz alanlar " "üretin" -#: ../src/iop/toneequal.c:3484 +#: ../src/iop/toneequal.c:3537 msgid "" "use this to slide the mask average exposure along channels\n" "for a better control of the exposure correction with the available nodes.\n" @@ -19836,7 +20527,7 @@ "mevcut düğümlerle pozlama düzeltmesinin daha iyi kontrolü için.\n" "sihirli değnek ortalama pozlamayı otomatik olarak ayarlayacaktır" -#: ../src/iop/toneequal.c:3497 +#: ../src/iop/toneequal.c:3550 msgid "" "use this to counter the averaging effect of the guided filter\n" "and dilate the mask contrast around -4EV\n" @@ -19850,7 +20541,7 @@ "Pozlama düzeltmesinin daha iyi kontrolü için.\n" "sihirli değnek kontrastı otomatik olarak ayarlayacaktır" -#: ../src/iop/toneequal.c:3520 ../src/iop/toneequal.c:3523 +#: ../src/iop/toneequal.c:3573 ../src/iop/toneequal.c:3576 msgid "display exposure mask" msgstr "maruz kalma maskesini göster" @@ -19866,22 +20557,22 @@ "bu modül kullanımdan kaldırılmıştır. lütfen bunun yerine yerel kontrast veya " "ton ekolayzır modülünü kullanın." -#: ../src/iop/velvia.c:79 +#: ../src/iop/velvia.c:70 msgid "velvia" msgstr "kadife çiçeği" -#: ../src/iop/velvia.c:104 +#: ../src/iop/velvia.c:97 msgid "" "resaturate giving more weight to blacks, whites and low-saturation pixels" msgstr "" "siyahlara, beyazlara ve düşük doygunluktaki piksellere daha fazla ağırlık " "vererek yeniden doygunlaştırın" -#: ../src/iop/velvia.c:281 +#: ../src/iop/velvia.c:290 msgid "the strength of saturation boost" msgstr "doygunluk artışının gücü" -#: ../src/iop/velvia.c:284 +#: ../src/iop/velvia.c:293 msgid "how much to spare highlights and shadows" msgstr "vurgular ve gölgeler ne kadar yedeklenir" @@ -19893,7 +20584,7 @@ "bu modül kullanımdan kaldırılmıştır. lütfen bunun yerine renk dengesi rgb " "modülündeki titreşim kaydırıcısını kullanın." -#: ../src/iop/vibrance.c:93 +#: ../src/iop/vibrance.c:95 msgid "" "saturate and reduce the lightness of the most saturated pixels\n" "to make the colors more vivid." @@ -19901,56 +20592,52 @@ "en doygun piksellerin parlaklığını doygunlaştırın ve azaltın\n" "renkleri daha canlı hale getirmek için." -#: ../src/iop/vibrance.c:217 +#: ../src/iop/vibrance.c:211 msgid "the amount of vibrance" msgstr "canlılık miktarı" -#: ../src/iop/vignette.c:153 -msgid "vignetting" -msgstr "skeç oluşturma" - -#: ../src/iop/vignette.c:158 +#: ../src/iop/vignette.c:119 msgid "simulate a lens fall-off close to edges" msgstr "kenarlara yakın bir mercek düşüşünü benzetin" -#: ../src/iop/vignette.c:940 +#: ../src/iop/vignette.c:1022 msgid "lomo" msgstr "lomo" -#: ../src/iop/vignette.c:974 +#: ../src/iop/vignette.c:1061 msgctxt "section" msgid "position / form" msgstr "konum / biçim" -#: ../src/iop/vignette.c:981 +#: ../src/iop/vignette.c:1069 msgid "dithering" msgstr "titreme" -#: ../src/iop/vignette.c:992 +#: ../src/iop/vignette.c:1081 msgid "the radii scale of vignette for start of fall-off" msgstr "düşüşün başlangıcı için skeç yarıçap ölçeği" -#: ../src/iop/vignette.c:993 +#: ../src/iop/vignette.c:1083 msgid "the radii scale of vignette for end of fall-off" msgstr "düşüşün sonu için skeç yarıçap ölçeği" -#: ../src/iop/vignette.c:994 +#: ../src/iop/vignette.c:1084 msgid "strength of effect on brightness" msgstr "parlaklık üzerindeki efektin gücü" -#: ../src/iop/vignette.c:995 +#: ../src/iop/vignette.c:1085 msgid "strength of effect on saturation" msgstr "doygunluk üzerindeki efektin gücü" -#: ../src/iop/vignette.c:996 +#: ../src/iop/vignette.c:1086 msgid "horizontal offset of center of the effect" msgstr "efektin merkezinin yatay kayması" -#: ../src/iop/vignette.c:997 +#: ../src/iop/vignette.c:1087 msgid "vertical offset of center of the effect" msgstr "efektin merkezinin dikey kayması" -#: ../src/iop/vignette.c:998 +#: ../src/iop/vignette.c:1090 msgid "" "shape factor\n" "0 produces a rectangle\n" @@ -19962,56 +20649,56 @@ "1 bir daire veya elips üretir\n" "2 bir elmas üretir" -#: ../src/iop/vignette.c:1000 +#: ../src/iop/vignette.c:1094 msgid "enable to have the ratio automatically follow the image size" msgstr "oranın görüntü boyutunu otomatik olarak takip etmesini sağlayın" -#: ../src/iop/vignette.c:1001 +#: ../src/iop/vignette.c:1095 msgid "width-to-height ratio" msgstr "genişlik-yükseklik oranı" -#: ../src/iop/vignette.c:1002 +#: ../src/iop/vignette.c:1097 msgid "add some level of random noise to prevent banding" msgstr "bantlanmayı önlemek için bir miktar rastgele gürültü ekleyin" -#: ../src/iop/vignette.c:1009 +#: ../src/iop/vignette.c:1105 #, c-format msgid "[%s on node] change vignette/feather size" msgstr "[düğümde %s] skeç/geçiş yumuşatma boyutunu değiştir" -#: ../src/iop/vignette.c:1011 +#: ../src/iop/vignette.c:1108 #, c-format msgid "[%s on node] change vignette/feather size keeping ratio" msgstr "[düğümde %s] skeç/geçiş yumuşatma boyutu tutma oranını değiştir" -#: ../src/iop/vignette.c:1013 +#: ../src/iop/vignette.c:1111 #, c-format msgid "[%s on center] move vignette" msgstr "[%s merkezine] skeç taşı" -#: ../src/iop/watermark.c:371 +#: ../src/iop/watermark.c:416 msgid "watermark" msgstr "filigran" -#: ../src/iop/watermark.c:376 +#: ../src/iop/watermark.c:421 msgid "overlay an SVG watermark like a signature on the picture" msgstr "görüntünün üzerine bir imza gibi bir SVG filigranı yerleştirin" -#: ../src/iop/watermark.c:1258 +#: ../src/iop/watermark.c:1306 msgid "marker" msgstr "işaretleyici" -#: ../src/iop/watermark.c:1261 +#: ../src/iop/watermark.c:1309 #, c-format msgid "SVG watermarks in %s/watermarks or %s/watermarks" msgstr "%s/filigran veya %s/filigran biçiminde SVG filigranları" #. Simple text -#: ../src/iop/watermark.c:1271 ../src/iop/watermark.c:1272 +#: ../src/iop/watermark.c:1319 ../src/iop/watermark.c:1320 msgid "text" msgstr "metin" -#: ../src/iop/watermark.c:1273 +#: ../src/iop/watermark.c:1321 msgid "" "text string, tag:\n" "$(WATERMARK_TEXT)" @@ -20019,16 +20706,16 @@ "metin dizesi, etiket:\n" "$(WATERMARK_TEXT)" -#: ../src/iop/watermark.c:1275 +#: ../src/iop/watermark.c:1323 msgid "content" msgstr "içerik" #. Text font -#: ../src/iop/watermark.c:1280 +#: ../src/iop/watermark.c:1328 msgid "font" msgstr "yazı tipi" -#: ../src/iop/watermark.c:1285 +#: ../src/iop/watermark.c:1333 msgid "" "text font, tags:\n" "$(WATERMARK_FONT_FAMILY)\n" @@ -20040,7 +20727,7 @@ "$(WATERMARK_FONT_STYLE)\n" "$(WATERMARK_FONT_WEIGHT)" -#: ../src/iop/watermark.c:1300 +#: ../src/iop/watermark.c:1348 msgid "" "watermark color, tag:\n" "$(WATERMARK_COLOR)" @@ -20048,60 +20735,61 @@ "filigran rengi, etiket:\n" "$(WATERMARK_COLOR)" -#: ../src/iop/watermark.c:1302 +#: ../src/iop/watermark.c:1350 msgid "select watermark color" msgstr "filigran rengini seç" -#: ../src/iop/watermark.c:1304 +#: ../src/iop/watermark.c:1352 msgid "pick color from image" msgstr "görüntüden renk seç" -#: ../src/iop/watermark.c:1317 +#: ../src/iop/watermark.c:1365 msgctxt "section" msgid "placement" msgstr "yerleşim" -#: ../src/iop/watermark.c:1330 +#: ../src/iop/watermark.c:1378 msgid "" -"scaling is done relative to this object\n" -"• image: fits marker into whole image\n" -"• larger border: fits larger marker border to larger image border\n" -"• smaller border: fits larger marker border to smaller image border\n" -"• height: fits marker height to image height, e.g. suitable for texts\n" -"• advanced options: activates two additional drop-down menus" -msgstr "" -"ölçekleme bu nesneye göre yapılır\n" -"• görüntü: işaretçiyi tüm görüntüye sığdırır\n" -"• daha geniş kenarlık: daha büyük işaretçi kenarlığını daha büyük görüntü " -"kenarlığına sığdırır\n" -"• daha küçük kenarlık: daha büyük işaretçi kenarlığını daha küçük görüntü " -"kenarlığına sığdırır\n" -"• yükseklik: işaretçi yüksekliğini görüntü yüksekliğine sığdırır, örn. " -"metinler için uygun\n" -"• gelişmiş seçenekler: iki ek açılır menüyü etkinleştirir" - -#: ../src/iop/watermark.c:1339 -msgid "reference to which the marker should be scaled to" -msgstr "işaretçinin ölçeklenmesi gereken referans" - -#: ../src/iop/watermark.c:1343 -msgid "length of the marker which is used as scaling reference" -msgstr "ölçekleme referansı olarak kullanılan işaretçinin uzunluğu" +"choose how to scale the watermark\n" +"• image: scale watermark relative to whole image\n" +"• larger border: scale larger watermark border relative to larger image " +"border\n" +"• smaller border: scale larger watermark border relative to smaller image " +"border\n" +"• height: scale watermark height to image height\n" +"• advanced options: choose watermark and image dimensions independently" +msgstr "" +"filigranın nasıl ölçeklendirileceğini seçin\n" +"• resim: filigranı resmin tamamına göre ölçeklendir\n" +"• daha büyük kenarlık: daha büyük filigran kenarlığını daha büyük görüntü " +"kenarlığına göre ölçeklendirin\n" +"• daha küçük kenarlık: Daha büyük filigran kenarlığını, daha küçük resim " +"kenarlığına göre ölçeklendirin\n" +"• yükseklik: filigran yüksekliğini görüntü yüksekliğine göre ölçeklendirin\n" +"• gelişmiş seçenekler: filigran ve görüntü boyutlarını bağımsız olarak seçin" + +#: ../src/iop/watermark.c:1387 +msgid "reference image dimension against which to scale the watermark" +msgstr "filigranın ölçekleneceği referans görüntü boyutu" + +#: ../src/iop/watermark.c:1391 +msgid "watermark dimension to scale" +msgstr "ölçeğe göre filigran boyutu" -#: ../src/iop/watermark.c:1347 ../src/libs/print_settings.c:2675 +#: ../src/iop/watermark.c:1395 ../src/libs/print_settings.c:2675 msgid "alignment" msgstr "hizalama" #. Let's add some tooltips and hook up some signals... -#: ../src/iop/watermark.c:1368 +#: ../src/iop/watermark.c:1416 msgid "the opacity of the watermark" msgstr "filigranın opaklığı" -#: ../src/iop/watermark.c:1369 +#: ../src/iop/watermark.c:1417 msgid "the scale of the watermark" msgstr "filigranın ölçeği" -#: ../src/iop/watermark.c:1370 +#: ../src/iop/watermark.c:1418 msgid "the rotation of the watermark" msgstr "filigranın dönüşü" @@ -20109,7 +20797,7 @@ msgid "zone system" msgstr "bölge sistemi" -#: ../src/iop/zonesystem.c:490 +#: ../src/iop/zonesystem.c:486 msgid "" "lightness zones\n" "use mouse scrollwheel to change the number of zones\n" @@ -20151,7 +20839,7 @@ msgid "camera control" msgstr "kamera kontrolü" -#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2360 +#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2679 msgid "modes" msgstr "modlar" @@ -20257,36 +20945,49 @@ msgid "WB" msgstr "BD" -#: ../src/libs/collect.c:151 +#: ../src/libs/collect.c:164 msgid "collections" msgstr "koleksiyonlar" -#: ../src/libs/collect.c:407 +#: ../src/libs/collect.c:424 msgid "search filmroll" msgstr "film rulosu ara" -#: ../src/libs/collect.c:490 +#: ../src/libs/collect.c:507 #, c-format msgid "problem selecting new path for the filmroll in %s" msgstr "%s'de film rulosu için yeni yol seçme sorunu" -#: ../src/libs/collect.c:553 +#: ../src/libs/collect.c:579 msgid "search filmroll..." msgstr "film rulosu ara..." -#: ../src/libs/collect.c:557 +#: ../src/libs/collect.c:584 msgid "remove..." msgstr "kaldır..." -#: ../src/libs/collect.c:1225 +#: ../src/libs/collect.c:1310 msgid "uncategorized" msgstr "kategorisiz" -#: ../src/libs/collect.c:2138 +#: ../src/libs/collect.c:2172 ../src/libs/filters/rating_range.c:120 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:151 +#: ../src/libs/filters/rating_range.c:302 +msgid "rejected" +msgstr "reddedilmiş" + +#: ../src/libs/collect.c:2175 ../src/libs/filters/rating_range.c:122 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:303 +msgid "not rated" +msgstr "oylanmamış" + +#: ../src/libs/collect.c:2359 msgid "use <, <=, >, >=, <>, =, [;] as operators" msgstr "işleç olarak <, <=, >, >=, <>, =, [;] kullanın" -#: ../src/libs/collect.c:2142 +#: ../src/libs/collect.c:2363 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "star rating: 0-5\n" @@ -20296,7 +20997,7 @@ "yıldız oranı: 0-5\n" "reddedilen görüntüler: -1" -#: ../src/libs/collect.c:2149 +#: ../src/libs/collect.c:2371 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)" @@ -20304,12 +21005,12 @@ "işleç olarak <, <=, >, >=, <>, =, [;] kullanın\n" "tarihleri şu biçimde yazın: YYYY:AA:GG ss:dd:ss.sss (yalnızca yıl zorunludur)" -#: ../src/libs/collect.c:2156 +#: ../src/libs/collect.c:2378 #, no-c-format msgid "use `%' as wildcard and `,' to separate values" msgstr "joker karakter olarak `%' ve değerleri ayırmak için `,' kullanın" -#: ../src/libs/collect.c:2162 +#: ../src/libs/collect.c:2385 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20322,7 +21023,7 @@ "yalnızca geçerli hiyerarşiyi dahil etmek için shift+tıklayın (sonek yok)\n" "Yalnızca alt hiyerarşileri dahil etmek için ctrl+tıklayın (`|%' soneki)" -#: ../src/libs/collect.c:2174 +#: ../src/libs/collect.c:2398 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20335,7 +21036,7 @@ "yalnızca geçerli konumu dahil etmek için shift+tıklayın (son ek yok)\n" "Yalnızca alt konumları dahil etmek için ctrl+tıklayın (`|%' soneki)" -#: ../src/libs/collect.c:2186 +#: ../src/libs/collect.c:2411 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20348,111 +21049,103 @@ "yalnızca geçerli klasörü dahil etmek için shift+tıklayın (sonek yok)\n" "Yalnızca alt klasörleri dahil etmek için ctrl+tıklayın (`|%' soneki)" -#: ../src/libs/collect.c:2197 +#: ../src/libs/collect.c:2422 #, no-c-format msgid "use `%' as wildcard" msgstr "joker karakter olarak `%' kullanın" -#: ../src/libs/collect.c:2263 ../src/libs/collect.c:2277 -#: ../src/libs/collect.c:2800 +#: ../src/libs/collect.c:2488 ../src/libs/collect.c:2502 +#: ../src/libs/collect.c:3111 msgid "clear this rule" msgstr "bu kuralı temizle" -#: ../src/libs/collect.c:2267 +#: ../src/libs/collect.c:2492 msgid "clear this rule or add new rules" msgstr "bu kuralı temizleyin veya yeni kurallar ekleyin" -#: ../src/libs/collect.c:2806 +#: ../src/libs/collect.c:3117 msgid "narrow down search" msgstr "aramayı daralt" -#: ../src/libs/collect.c:2811 +#: ../src/libs/collect.c:3124 msgid "add more images" msgstr "daha fazla görüntü ekle" -#: ../src/libs/collect.c:2816 +#: ../src/libs/collect.c:3131 msgid "exclude images" msgstr "görüntüleri hariç tut" -#: ../src/libs/collect.c:2823 +#: ../src/libs/collect.c:3140 msgid "change to: and" msgstr "olarak değiştir: ve" -#: ../src/libs/collect.c:2828 +#: ../src/libs/collect.c:3147 msgid "change to: or" msgstr "olarak değiştir: veya" -#: ../src/libs/collect.c:2833 +#: ../src/libs/collect.c:3154 msgid "change to: except" msgstr "şu şekilde değiştir: hariç" #. the different categories -#: ../src/libs/collect.c:2859 ../src/libs/filtering.c:857 -#: ../src/libs/filtering.c:924 ../src/libs/filtering.c:1558 -#: ../src/libs/filtering.c:1890 +#: ../src/libs/collect.c:3184 ../src/libs/filtering.c:883 +#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1620 +#: ../src/libs/filtering.c:1964 msgid "files" msgstr "dosyalar" -#: ../src/libs/collect.c:2864 ../src/libs/export_metadata.c:312 -#: ../src/libs/filtering.c:862 ../src/libs/filtering.c:929 -#: ../src/libs/filtering.c:1566 ../src/libs/filtering.c:1894 -#: ../src/libs/image.c:464 ../src/libs/image.c:574 ../src/libs/image.c:582 -#: ../src/libs/metadata.c:676 ../src/libs/metadata_view.c:1226 +#: ../src/libs/collect.c:3189 ../src/libs/export_metadata.c:301 +#: ../src/libs/filtering.c:888 ../src/libs/filtering.c:955 +#: ../src/libs/filtering.c:1628 ../src/libs/filtering.c:1968 +#: ../src/libs/image.c:495 ../src/libs/image.c:633 ../src/libs/image.c:645 +#: ../src/libs/metadata.c:509 ../src/libs/metadata_view.c:1256 msgid "metadata" msgstr "üst veri" -#: ../src/libs/collect.c:2883 ../src/libs/filtering.c:883 -#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1892 +#: ../src/libs/collect.c:3208 ../src/libs/filtering.c:909 +#: ../src/libs/filtering.c:976 ../src/libs/filtering.c:1966 msgid "times" msgstr "kez" -#: ../src/libs/collect.c:2891 ../src/libs/filtering.c:891 -#: ../src/libs/filtering.c:958 ../src/libs/filtering.c:1590 +#: ../src/libs/collect.c:3216 ../src/libs/filtering.c:917 +#: ../src/libs/filtering.c:984 ../src/libs/filtering.c:1652 msgid "capture details" msgstr "yakalama ayrıntıları" -#: ../src/libs/collect.c:2900 ../src/libs/filtering.c:900 -#: ../src/libs/filtering.c:967 ../src/libs/filtering.c:1602 -#: ../src/libs/filtering.c:1896 ../src/libs/tools/darktable.c:65 +#: ../src/libs/collect.c:3225 ../src/libs/filtering.c:926 +#: ../src/libs/filtering.c:993 ../src/libs/filtering.c:1664 +#: ../src/libs/filtering.c:1970 ../src/libs/tools/darktable.c:61 msgid "darktable" msgstr "darktable" -#: ../src/libs/collect.c:2913 +#: ../src/libs/collect.c:3240 msgid "collections settings" msgstr "koleksiyon ayarları" -#: ../src/libs/collect.c:2916 ../src/libs/export_metadata.c:288 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:228 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3472 -msgid "save" -msgstr "kaydet" - -#: ../src/libs/collect.c:2936 ../src/libs/export.c:1046 -#: ../src/libs/metadata.c:779 ../src/libs/metadata_view.c:1306 -#: ../src/libs/recentcollect.c:293 ../src/libs/tagging.c:3494 +#: ../src/libs/collect.c:3267 ../src/libs/export.c:1126 +#: ../src/libs/metadata.c:615 ../src/libs/metadata_view.c:1339 +#: ../src/libs/recentcollect.c:295 ../src/libs/tagging.c:3526 msgid "preferences..." msgstr "tercihler..." -#: ../src/libs/collect.c:3041 ../src/libs/filtering.c:1432 +#: ../src/libs/collect.c:3388 ../src/libs/filtering.c:1494 msgid "AND" msgstr "VE" -#: ../src/libs/collect.c:3046 ../src/libs/filtering.c:1437 +#: ../src/libs/collect.c:3393 ../src/libs/filtering.c:1499 msgid "OR" msgstr "VEYA" #. case DT_LIB_COLLECT_MODE_AND_NOT: -#: ../src/libs/collect.c:3051 ../src/libs/filtering.c:1442 +#: ../src/libs/collect.c:3398 ../src/libs/filtering.c:1504 msgid "BUT NOT" msgstr "AMA DEĞİL" -#: ../src/libs/collect.c:3223 ../src/libs/filtering.c:2164 +#: ../src/libs/collect.c:3588 ../src/libs/filtering.c:2238 msgid "revert to a previous set of rules" msgstr "önceki bir dizi kurala geri dön" -#: ../src/libs/collect.c:3280 +#: ../src/libs/collect.c:3671 msgid "jump back to previous collection" msgstr "önceki koleksiyona geri dön" @@ -20476,7 +21169,7 @@ msgid "color picker" msgstr "renk seçici" -#: ../src/libs/colorpicker.c:463 +#: ../src/libs/colorpicker.c:513 msgid "" "hover to highlight sample on canvas,\n" "click to lock sample,\n" @@ -20486,23 +21179,23 @@ "örneği kilitlemek için tıklayın,\n" "örnek alanı aktif renk seçiciye yüklemek için sağ tıklayın" -#: ../src/libs/colorpicker.c:561 ../src/libs/colorpicker.c:612 +#: ../src/libs/colorpicker.c:626 ../src/libs/colorpicker.c:693 msgid "click to (un)hide large color patch" msgstr "büyük renk yamasını gizlemek (çözmek) için tıklayın" -#: ../src/libs/colorpicker.c:575 +#: ../src/libs/colorpicker.c:649 msgid "statistic" msgstr "istatistik" -#: ../src/libs/colorpicker.c:576 +#: ../src/libs/colorpicker.c:650 msgid "select which statistic to show" msgstr "hangi istatistiğin gösterileceğini seçin" -#: ../src/libs/colorpicker.c:585 +#: ../src/libs/colorpicker.c:660 msgid "select which color mode to use" msgstr "hangi renk modunun kullanılacağını seçin" -#: ../src/libs/colorpicker.c:594 +#: ../src/libs/colorpicker.c:671 msgid "" "turn on color picker\n" "ctrl+click or right-click to select an area" @@ -20510,21 +21203,21 @@ "renk seçiciyi aç\n" "bir alan seçmek için ctrl+tıklayın veya sağ tıklayın" -#: ../src/libs/colorpicker.c:636 +#: ../src/libs/colorpicker.c:722 msgid "add sample" msgstr "örnek ekle" #. Adding the live samples section -#: ../src/libs/colorpicker.c:640 +#: ../src/libs/colorpicker.c:727 msgctxt "section" msgid "live samples" msgstr "canlı örnekler" -#: ../src/libs/colorpicker.c:648 +#: ../src/libs/colorpicker.c:738 msgid "display samples on image/vectorscope" msgstr "örnekleri görüntü/vektör kapsamında göster" -#: ../src/libs/colorpicker.c:657 +#: ../src/libs/colorpicker.c:749 msgid "restrict scope to selection" msgstr "kapsamı seçimle sınırla" @@ -20536,10 +21229,6 @@ msgid "open sidecar file" msgstr "sepet dosyasını aç" -#: ../src/libs/copy_history.c:149 -msgid "XMP sidecar files" -msgstr "XMP sepet dosyaları" - #: ../src/libs/copy_history.c:166 #, c-format msgid "error loading file '%s'" @@ -20589,7 +21278,7 @@ msgid "choose which modules to paste to the target image(s)" msgstr "hedef görüntüye/görüntülere yapıştırılacak modülleri seçin" -#: ../src/libs/copy_history.c:382 ../src/libs/image.c:588 +#: ../src/libs/copy_history.c:382 ../src/libs/image.c:655 msgid "paste" msgstr "yapıştır" @@ -20621,11 +21310,11 @@ "geçmiş yığınını at\n" "seçilen tüm görüntüler" -#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:847 +#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:851 msgid "how to handle existing history" msgstr "mevcut geçmiş nasıl ele alınır" -#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:850 +#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:854 msgid "append" msgstr "ekleme" @@ -20645,91 +21334,98 @@ msgid "write history stack and tags to XMP sidecar files" msgstr "XMP sepet dosyalarına geçmiş yığını ve etiketler yazın" -#: ../src/libs/duplicate.c:56 +#: ../src/libs/duplicate.c:60 msgid "duplicate manager" msgstr "çiftleme yöneticisi" -#: ../src/libs/duplicate.c:401 +#: ../src/libs/duplicate.c:407 msgid "create a 'virgin' duplicate of the image without any development" msgstr "" "herhangi bir geliştirme olmadan görüntünün 'ellenmemiş' bir kopyasını " "oluşturun" -#: ../src/libs/duplicate.c:406 +#: ../src/libs/duplicate.c:412 msgid "create a duplicate of the image with same history stack" msgstr "aynı geçmiş yığınıyla görüntünün bir kopyasını oluşturun" -#. Export button -#: ../src/libs/export.c:153 ../src/libs/export.c:1281 +#: ../src/libs/export.c:160 msgid "export" msgstr "dışa aktar" #: ../src/libs/export.c:306 +msgid "invalid format for export selected" +msgstr "dışa aktarma için geçersiz biçim seçildi" + +#: ../src/libs/export.c:311 +msgid "invalid storage for export selected" +msgstr "dışa aktarma için geçersiz depolama alanı seçildi" + +#: ../src/libs/export.c:322 msgid "export to disk" msgstr "diske aktar" -#: ../src/libs/export.c:485 +#: ../src/libs/export.c:516 #, c-format msgid "which is equal to %s × %s px" msgstr "%s × %s piksele eşittir" -#: ../src/libs/export.c:520 +#: ../src/libs/export.c:555 msgctxt "unit" msgid "in" msgstr "olarak" -#: ../src/libs/export.c:1060 +#: ../src/libs/export.c:1141 msgctxt "section" msgid "storage options" msgstr "depolama seçenekleri" -#: ../src/libs/export.c:1064 +#: ../src/libs/export.c:1145 msgid "target storage" msgstr "hedef depolama" -#: ../src/libs/export.c:1086 +#: ../src/libs/export.c:1171 msgctxt "section" msgid "format options" msgstr "biçim seçenekleri" -#: ../src/libs/export.c:1090 +#: ../src/libs/export.c:1175 msgid "file format" msgstr "dosya biçimi" -#: ../src/libs/export.c:1107 +#: ../src/libs/export.c:1193 msgctxt "section" msgid "global options" msgstr "genel seçenekler" -#: ../src/libs/export.c:1110 +#: ../src/libs/export.c:1196 msgid "set size" msgstr "boyutu ayarla" -#: ../src/libs/export.c:1111 +#: ../src/libs/export.c:1197 msgid "choose a method for setting the output size" msgstr "çıktı boyutunu ayarlamak için bir yöntem seçin" -#: ../src/libs/export.c:1114 +#: ../src/libs/export.c:1200 msgid "in pixels (for file)" msgstr "piksel cinsinden (dosya için)" -#: ../src/libs/export.c:1115 +#: ../src/libs/export.c:1201 msgid "in cm (for print)" msgstr "cm cinsinden (baskı için)" -#: ../src/libs/export.c:1116 +#: ../src/libs/export.c:1202 msgid "in inch (for print)" msgstr "inç cinsinden (baskı için)" -#: ../src/libs/export.c:1117 +#: ../src/libs/export.c:1203 msgid "by scale (for file)" msgstr "ölçeğe göre (dosya için)" -#: ../src/libs/export.c:1119 +#: ../src/libs/export.c:1206 msgid "print width" msgstr "baskı genişliği" -#: ../src/libs/export.c:1120 ../src/libs/export.c:1132 +#: ../src/libs/export.c:1208 ../src/libs/export.c:1225 msgid "" "maximum output width limit.\n" "click middle mouse button to reset to 0." @@ -20737,11 +21433,11 @@ "azami çıktı genişliği sınırı.\n" "0'a sıfırlamak için orta fare düğmesini tıklayın." -#: ../src/libs/export.c:1123 +#: ../src/libs/export.c:1212 msgid "print height" msgstr "baskı yüksekliği" -#: ../src/libs/export.c:1124 ../src/libs/export.c:1136 +#: ../src/libs/export.c:1214 ../src/libs/export.c:1231 msgid "" "maximum output height limit.\n" "click middle mouse button to reset to 0." @@ -20749,19 +21445,19 @@ "azami çıktı yüksekliği sınırı.\n" "0'a sıfırlamak için orta fare düğmesini tıklayın." -#: ../src/libs/export.c:1128 +#: ../src/libs/export.c:1220 msgid "resolution in dot per inch" msgstr "inç başına nokta olarak çözünürlük" -#: ../src/libs/export.c:1148 +#: ../src/libs/export.c:1244 msgid "@" msgstr "@" -#: ../src/libs/export.c:1161 ../src/libs/tools/global_toolbox.c:217 +#: ../src/libs/export.c:1258 ../src/libs/tools/global_toolbox.c:217 msgid "px" msgstr "px" -#: ../src/libs/export.c:1166 +#: ../src/libs/export.c:1266 msgid "" "it can be an integer, decimal number or simple fraction.\n" "zero or empty values are equal to 1.\n" @@ -20771,38 +21467,38 @@ "sıfır veya boş değerler 1'e eşittir.\n" "1'e sıfırlamak için orta fare düğmesini tıklayın." -#: ../src/libs/export.c:1185 +#: ../src/libs/export.c:1292 msgid "allow upscaling" msgstr "yükseltmeye izin ver" -#: ../src/libs/export.c:1191 +#: ../src/libs/export.c:1301 msgid "high quality resampling" msgstr "yüksek kaliteli yeniden örnekleme" -#: ../src/libs/export.c:1192 +#: ../src/libs/export.c:1302 msgid "do high quality resampling during export" msgstr "dışa aktarma sırasında yüksek kalitede yeniden örnekleme yapın" -#: ../src/libs/export.c:1198 +#: ../src/libs/export.c:1310 msgid "store masks" msgstr "maskeleri saklama" -#: ../src/libs/export.c:1199 +#: ../src/libs/export.c:1311 msgid "store masks as layers in exported images. only works for some formats." msgstr "" "maskeleri dışa aktarılan görüntülerde katmanlar olarak saklayın. yalnızca " "bazı biçimler için çalışır." -#: ../src/libs/export.c:1210 ../src/libs/export.c:1245 +#: ../src/libs/export.c:1322 ../src/libs/export.c:1357 #: ../src/libs/print_settings.c:2777 ../src/libs/print_settings.c:2823 msgid "image settings" msgstr "görüntü ayarları" -#: ../src/libs/export.c:1220 ../src/libs/print_settings.c:2811 +#: ../src/libs/export.c:1332 ../src/libs/print_settings.c:2811 msgid "output ICC profiles" msgstr "çıkış ICC profilleri" -#: ../src/libs/export.c:1228 +#: ../src/libs/export.c:1340 msgid "" "• perceptual: smoothly moves out-of-gamut colors into gamut, preserving " "gradations,\n" @@ -20840,46 +21536,55 @@ "kullanılır.\n" "(fotoğraf için uygun değildir)." -#: ../src/libs/export.c:1255 ../src/libs/print_settings.c:2833 +#: ../src/libs/export.c:1367 ../src/libs/print_settings.c:2833 msgid "style" msgstr "tarz" -#: ../src/libs/export.c:1258 +#: ../src/libs/export.c:1370 msgid "temporary style to use while exporting" msgstr "dışa aktarırken kullanılacak geçici tarz" -#: ../src/libs/export.c:1263 ../src/libs/print_settings.c:2876 +#: ../src/libs/export.c:1377 ../src/libs/print_settings.c:2876 msgid "" "whether the style items are appended to the history or replacing the history" msgstr "" "tarz öğelerinin tarihe eklenip eklenmeyeceği veya geçmişi değiştirip " "değiştirmeyeceği" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "replace history" msgstr "geçmişi değiştir" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "append history" msgstr "geçmişe ekle" -#: ../src/libs/export.c:1282 +#: ../src/libs/export.c:1398 +msgctxt "actionbutton" +msgid "export" +msgstr "dışa aktar" + +#: ../src/libs/export.c:1400 msgid "export with current settings" msgstr "mevcut ayarlarla dışa aktar" -#: ../src/libs/export_metadata.c:163 +#: ../src/libs/export_metadata.c:148 msgid "select tag" msgstr "etiket seç" -#: ../src/libs/export_metadata.c:164 -msgid "add" -msgstr "ekle" +#: ../src/libs/export_metadata.c:150 +msgid "_add" +msgstr "_ekle" + +#: ../src/libs/export_metadata.c:151 ../src/libs/geotagging.c:811 +msgid "_done" +msgstr "_tamamlandı" -#: ../src/libs/export_metadata.c:175 +#: ../src/libs/export_metadata.c:162 msgid "list filter" msgstr "liste filtresi" -#: ../src/libs/export_metadata.c:186 +#: ../src/libs/export_metadata.c:173 msgid "" "list of available tags. click 'add' button or double-click on tag to add the " "selected one" @@ -20887,32 +21592,32 @@ "mevcut etiketlerin listesi. seçili olanı eklemek için 'ekle' düğmesini " "tıklayın veya etikete çift tıklayın" -#: ../src/libs/export_metadata.c:287 +#: ../src/libs/export_metadata.c:274 msgid "edit metadata exportation" msgstr "üst veri dışa aktarımını düzenle" -#: ../src/libs/export_metadata.c:304 +#: ../src/libs/export_metadata.c:293 msgid "general settings" msgstr "genel ayarlar" -#: ../src/libs/export_metadata.c:309 +#: ../src/libs/export_metadata.c:298 msgid "EXIF data" msgstr "EXIF verisi" -#: ../src/libs/export_metadata.c:310 +#: ../src/libs/export_metadata.c:299 msgid "export EXIF metadata" msgstr "EXIF üst verilerini dışa aktar" -#: ../src/libs/export_metadata.c:313 +#: ../src/libs/export_metadata.c:302 msgid "export darktable XMP metadata (from metadata editor module)" msgstr "" "darktable XMP meta verilerini dışa aktarın (meta veri düzenleyici modülünden)" -#: ../src/libs/export_metadata.c:323 +#: ../src/libs/export_metadata.c:312 msgid "only embedded" msgstr "sadece gömülü" -#: ../src/libs/export_metadata.c:324 +#: ../src/libs/export_metadata.c:313 msgid "" "per default the interface sends some (limited) metadata beside the image to " "remote storage.\n" @@ -20928,39 +21633,39 @@ "uzak depolama, darktable XMP üst verilerini anlamıyorsa bunun yerine " "hesaplanmış üst verileri kullanabilirsiniz" -#: ../src/libs/export_metadata.c:330 ../src/libs/image.c:566 +#: ../src/libs/export_metadata.c:319 ../src/libs/image.c:623 msgid "geo tags" msgstr "coğrafi etiketler" -#: ../src/libs/export_metadata.c:331 +#: ../src/libs/export_metadata.c:320 msgid "export geo tags" msgstr "coğrafi etiketi dışa aktar" -#: ../src/libs/export_metadata.c:334 +#: ../src/libs/export_metadata.c:323 msgid "export tags (to Xmp.dc.Subject)" msgstr "etiketleri dışa aktar (Xmp.dc.Subject'e)" -#: ../src/libs/export_metadata.c:342 +#: ../src/libs/export_metadata.c:331 msgid "private tags" msgstr "özel etiketler" -#: ../src/libs/export_metadata.c:343 +#: ../src/libs/export_metadata.c:332 msgid "export private tags" msgstr "özel etiketleri dışa aktar" -#: ../src/libs/export_metadata.c:345 +#: ../src/libs/export_metadata.c:334 msgid "synonyms" msgstr "eş anlamlı" -#: ../src/libs/export_metadata.c:346 +#: ../src/libs/export_metadata.c:335 msgid "export tags synonyms" msgstr "eş anlamlı etiketleri dışa aktar" -#: ../src/libs/export_metadata.c:348 +#: ../src/libs/export_metadata.c:337 msgid "omit hierarchy" msgstr "hiyerarşiyi atla" -#: ../src/libs/export_metadata.c:349 +#: ../src/libs/export_metadata.c:338 msgid "" "only the last part of the hierarchical tags is included. can be useful if " "categories are not used" @@ -20968,19 +21673,19 @@ "hiyerarşik etiketlerin yalnızca son kısmı dahil edilmiştir. kategoriler " "kullanılmıyorsa faydalı olabilir" -#: ../src/libs/export_metadata.c:352 +#: ../src/libs/export_metadata.c:341 msgid "hierarchical tags" msgstr "hiyerarşik etiketler" -#: ../src/libs/export_metadata.c:353 +#: ../src/libs/export_metadata.c:342 msgid "export hierarchical tags (to Xmp.lr.Hierarchical Subject)" msgstr "hiyerarşik etiketleri dışa aktar (Xmp.lr.Hiyerarşik Konuya)" -#: ../src/libs/export_metadata.c:355 +#: ../src/libs/export_metadata.c:344 msgid "develop history" msgstr "tarih geliştirme" -#: ../src/libs/export_metadata.c:356 +#: ../src/libs/export_metadata.c:345 msgid "" "export darktable development data (recovery purpose in case of loss of " "database or XMP file)" @@ -20988,19 +21693,19 @@ "darktable geliştirme verilerini dışa aktarın (veritabanı veya XMP dosyasının " "kaybı durumunda kurtarma amacı)" -#: ../src/libs/export_metadata.c:363 +#: ../src/libs/export_metadata.c:352 msgid "per metadata settings" msgstr "üst veri ayarlarına göre" -#: ../src/libs/export_metadata.c:376 +#: ../src/libs/export_metadata.c:364 msgid "redefined tag" msgstr "yeniden tanımlanmış etiket" -#: ../src/libs/export_metadata.c:382 +#: ../src/libs/export_metadata.c:370 msgid "formula" msgstr "formül" -#: ../src/libs/export_metadata.c:385 +#: ../src/libs/export_metadata.c:373 msgid "" "list of calculated metadata\n" "click on '+' button to select and add new metadata\n" @@ -21023,15 +21728,15 @@ "düzenlemek için formül hücresine tıklayın\n" "tamamlamayı etkinleştirmek ve değişkenlerin listesini görmek için '$(' yazın" -#: ../src/libs/export_metadata.c:442 +#: ../src/libs/export_metadata.c:430 msgid "add an output metadata tag" msgstr "bir çıktı üst veri etiketi ekleyin" -#: ../src/libs/export_metadata.c:447 +#: ../src/libs/export_metadata.c:435 msgid "delete metadata tag" msgstr "üst veri etiketini sil" -#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:128 +#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:130 msgid "full path" msgstr "tam yol" @@ -21051,49 +21756,49 @@ msgid "shuffle" msgstr "karıştır" -#: ../src/libs/filtering.c:263 +#: ../src/libs/filtering.c:269 msgid "collection filters" msgstr "koleksiyon filtreleri" -#: ../src/libs/filtering.c:296 +#: ../src/libs/filtering.c:302 msgid "initial setting" msgstr "ilk ayarlar" -#: ../src/libs/filtering.c:315 +#: ../src/libs/filtering.c:321 msgid "imported: last 24h" msgstr "içe aktarılan: son 24 saat" -#: ../src/libs/filtering.c:320 +#: ../src/libs/filtering.c:326 msgid "imported: last 30 days" msgstr "içe aktarılan: son 30 gün" -#: ../src/libs/filtering.c:326 +#: ../src/libs/filtering.c:332 msgid "taken: last 24h" msgstr "alınan: son 24 saat" -#: ../src/libs/filtering.c:330 +#: ../src/libs/filtering.c:336 msgid "taken: last 30 days" msgstr "alınan: son 30 gün" -#: ../src/libs/filtering.c:702 +#: ../src/libs/filtering.c:728 msgid "click or click&drag to select one or multiple values" msgstr "" "bir veya birden çok değer seçmek için tıklayın veya sürükleyip&tıklayın" -#: ../src/libs/filtering.c:703 +#: ../src/libs/filtering.c:729 msgid "right-click opens a menu to select the available values" msgstr "sağ tıklama mevcut değerleri seçmek için bir menü açar" -#: ../src/libs/filtering.c:800 +#: ../src/libs/filtering.c:826 #, c-format msgid "you can't have more than %d rules" msgstr "%d'den fazla kuralınız olamaz" -#: ../src/libs/filtering.c:922 ../src/libs/filtering.c:1556 +#: ../src/libs/filtering.c:948 ../src/libs/filtering.c:1618 msgid "rule property" msgstr "kural özelliği" -#: ../src/libs/filtering.c:987 +#: ../src/libs/filtering.c:1013 msgid "" "rule property\n" "this can't be changed as the rule is pinned to the toolbar" @@ -21101,12 +21806,12 @@ "kural özelliği\n" "kural araç çubuğuna sabitlendiğinden bu değiştirilemez" -#: ../src/libs/filtering.c:1035 +#: ../src/libs/filtering.c:1095 msgctxt "quickfilter" msgid "filter" msgstr "filtre" -#: ../src/libs/filtering.c:1062 +#: ../src/libs/filtering.c:1124 msgid "" "this rule is pinned to the top toolbar\n" "click to un-pin" @@ -21114,120 +21819,128 @@ "bu kural üst araç çubuğuna sabitlenmiştir\n" "sabitlemeyi kaldırmak için tıklayın" -#: ../src/libs/filtering.c:1063 +#: ../src/libs/filtering.c:1125 msgid "you can't disable the rule as it is pinned to the toolbar" msgstr "araç çubuğuna sabitlendiği için kuralı devre dışı bırakamazsınız" -#: ../src/libs/filtering.c:1064 +#: ../src/libs/filtering.c:1126 msgid "you can't remove the rule as it is pinned to the toolbar" msgstr "araç çubuğuna sabitlendiği için kuralı kaldıramazsınız" -#: ../src/libs/filtering.c:1069 +#: ../src/libs/filtering.c:1131 msgid "click to pin this rule to the top toolbar" msgstr "bu kuralı üst araç çubuğuna sabitlemek için tıklayın" -#: ../src/libs/filtering.c:1070 +#: ../src/libs/filtering.c:1132 msgid "remove this collect rule" msgstr "bu toplama kuralını kaldır" -#: ../src/libs/filtering.c:1072 +#: ../src/libs/filtering.c:1134 msgid "this rule is enabled" msgstr "bu kural etkinleştirildi" -#: ../src/libs/filtering.c:1074 +#: ../src/libs/filtering.c:1136 msgid "this rule is disabled" msgstr "bu kural devre dışı" -#: ../src/libs/filtering.c:1202 +#: ../src/libs/filtering.c:1264 msgid "or" msgstr "veya" -#: ../src/libs/filtering.c:1203 +#: ../src/libs/filtering.c:1265 msgid "and not" msgstr "ve yok" -#: ../src/libs/filtering.c:1205 +#: ../src/libs/filtering.c:1267 msgid "define how this rule should interact with the previous one" msgstr "" "bu kuralın bir öncekiyle nasıl etkileşime girmesi gerektiğini tanımlayın" -#: ../src/libs/filtering.c:1466 +#: ../src/libs/filtering.c:1528 msgid " (off)" msgstr " (kapalı)" -#: ../src/libs/filtering.c:1663 +#: ../src/libs/filtering.c:1725 msgid "you can't add more rules." msgstr "daha fazla kural ekleyemezsiniz." -#. fill the popover with all pinned rules -#: ../src/libs/filtering.c:1696 +#: ../src/libs/filtering.c:1759 msgid "shown filters" msgstr "gösterilen filtreler" -#: ../src/libs/filtering.c:1711 +#: ../src/libs/filtering.c:1774 msgid "new filter" msgstr "yeni filtre" -#: ../src/libs/filtering.c:1884 +#. the actions part of the popover +#: ../src/libs/filtering.c:1781 +msgid "actions" +msgstr "eylemler" + +#: ../src/libs/filtering.c:1784 +msgid "reset quickfilters" +msgstr "hızlı filtreleri sıfırla" + +#: ../src/libs/filtering.c:1957 msgid "sort order" msgstr "sıralama düzeni" -#: ../src/libs/filtering.c:1886 +#: ../src/libs/filtering.c:1960 msgid "determine the sort order of shown images" msgstr "gösterilen görüntülerin sıralama düzenini belirleyin" -#: ../src/libs/filtering.c:1906 +#: ../src/libs/filtering.c:1980 msgid "sort direction" msgstr "sıralama yönü" -#: ../src/libs/filtering.c:1911 +#: ../src/libs/filtering.c:1985 msgid "remove this sort order" msgstr "bu sıralama düzenini kaldır" -#: ../src/libs/filtering.c:1995 +#: ../src/libs/filtering.c:2069 #, c-format msgid "you can't have more than %d sort orders" msgstr "%d'den fazla sıralama düzeniniz olamaz" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "DESC" msgstr "AZALAN" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "ASC" msgstr "ARTAN" -#: ../src/libs/filtering.c:2160 +#: ../src/libs/filtering.c:2234 msgid "new rule" msgstr "yeni kural" -#: ../src/libs/filtering.c:2161 +#: ../src/libs/filtering.c:2235 msgid "append new rule to collect images" msgstr "görüntüleri toplamak için yeni kural ekle" -#: ../src/libs/filtering.c:2172 ../src/libs/tools/filter.c:116 +#: ../src/libs/filtering.c:2246 ../src/libs/tools/filter.c:116 msgid "sort by" msgstr "göre sırala" -#: ../src/libs/filtering.c:2180 +#: ../src/libs/filtering.c:2254 msgid "new sort" msgstr "yeni sıralama" -#: ../src/libs/filtering.c:2181 +#: ../src/libs/filtering.c:2255 msgid "append new sort to order images" msgstr "görüntüleri sipariş etmek için yeni sıralama ekle" -#: ../src/libs/filtering.c:2184 +#: ../src/libs/filtering.c:2258 msgid "revert to a previous set of sort orders" msgstr "önceki bir sıralama düzeni grubuna geri dön" #. we change the tooltip of the reset button here, as we are sure the header is defined now -#: ../src/libs/filtering.c:2234 +#: ../src/libs/filtering.c:2308 msgid "" "reset\n" "ctrl+click to remove pinned rules too" msgstr "" -"Sıfırla\n" +"sıfırla\n" "sabitlenmiş kuralları da kaldırmak için ctrl+tıklayın" #: ../src/libs/filters/colors.c:140 @@ -21259,7 +21972,7 @@ #: ../src/libs/filters/grouping.c:167 ../src/libs/filters/history.c:153 #: ../src/libs/filters/local_copy.c:142 ../src/libs/filters/module_order.c:161 #: ../src/libs/filters/rating.c:199 ../src/libs/filters/rating.c:210 -#: ../src/libs/filters/rating_range.c:325 +#: ../src/libs/filters/rating_range.c:356 msgid "rules" msgstr "kurallar" @@ -21273,7 +21986,7 @@ "ve (∩): seçilen tüm renk etiketlerine sahip görüntüler\n" "veya (∪): seçilen renk etiketlerinden en az birine sahip görüntüler" -#: ../src/libs/filters/filename.c:365 +#: ../src/libs/filters/filename.c:370 msgid "" "enter filename to search.\n" "multiple values can be separated by ','\n" @@ -21285,11 +21998,11 @@ "\n" "mevcut dosya adlarını almak için sağ tıklayın" -#: ../src/libs/filters/filename.c:376 +#: ../src/libs/filters/filename.c:381 msgid "extension" msgstr "uzantı" -#: ../src/libs/filters/filename.c:377 +#: ../src/libs/filters/filename.c:382 msgid "" "enter extension to search with starting dot\n" "multiple values can be separated by ','\n" @@ -21303,7 +22016,7 @@ "\n" "mevcut uzantıları almak için sağ tıklayın" -#: ../src/libs/filters/filename.c:405 +#: ../src/libs/filters/filename.c:410 msgid "" "click to select filename\n" "ctrl+click to select multiple values" @@ -21311,7 +22024,7 @@ "dosya adını seçmek için tıklayın\n" "birden fazla değer seçmek için ctrl+tıklayın" -#: ../src/libs/filters/filename.c:432 +#: ../src/libs/filters/filename.c:437 msgid "" "click to select extension\n" "ctrl+click to select multiple values" @@ -21319,6 +22032,11 @@ "uzantı seçmek için tıklayın\n" "birden fazla değer seçmek için ctrl+tıklayın" +#. the button to close the popup +#: ../src/libs/filters/filename.c:457 +msgid "ok" +msgstr "tamam" + #: ../src/libs/filters/grouping.c:141 ../src/libs/filters/grouping.c:169 msgid "ungrouped images" msgstr "gruplanmamış görüntüler" @@ -21330,8 +22048,8 @@ #. predefined selections #: ../src/libs/filters/grouping.c:169 ../src/libs/filters/history.c:38 #: ../src/libs/filters/local_copy.c:38 ../src/libs/filters/module_order.c:155 -#: ../src/libs/filters/rating_range.c:56 ../src/libs/filters/rating_range.c:72 -#: ../src/libs/filters/rating_range.c:109 ../src/libs/filters/ratio.c:68 +#: ../src/libs/filters/rating_range.c:59 ../src/libs/filters/rating_range.c:83 +#: ../src/libs/filters/rating_range.c:131 ../src/libs/filters/ratio.c:68 #: ../src/libs/filters/ratio.c:81 msgid "all images" msgstr "tüm görüntüler" @@ -21356,7 +22074,7 @@ msgid "filter by images rating" msgstr "görüntü derecelendirmesine göre filtrele" -#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:542 +#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:596 #: ../src/libs/tools/ratings.c:56 msgid "ratings" msgstr "derecelendirme" @@ -21365,49 +22083,33 @@ msgid "unstarred only" msgstr "yalnızca yıldızsız" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:60 -#: ../src/libs/filters/rating_range.c:75 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:65 +#: ../src/libs/filters/rating_range.c:89 msgid "rejected only" msgstr "sadece reddedilen" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:58 -#: ../src/libs/filters/rating_range.c:73 ../src/libs/filters/rating_range.c:138 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:62 +#: ../src/libs/filters/rating_range.c:86 ../src/libs/filters/rating_range.c:158 msgid "all except rejected" msgstr "reddedilenler hariç hepsi" -#: ../src/libs/filters/rating_range.c:61 ../src/libs/filters/rating_range.c:76 +#: ../src/libs/filters/rating_range.c:67 ../src/libs/filters/rating_range.c:91 msgid "not rated only" msgstr "sadece derecelendirilmemiş" -#: ../src/libs/filters/rating_range.c:99 ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:131 -#: ../src/libs/filters/rating_range.c:275 -msgid "rejected" -msgstr "reddedilmiş" - -#: ../src/libs/filters/rating_range.c:101 -#: ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:276 -msgid "not rated" -msgstr "oylanmamış" - -#: ../src/libs/filters/rating_range.c:117 -msgid "only" -msgstr "sadece" - -#: ../src/libs/filters/rating_range.c:269 +#: ../src/libs/filters/rating_range.c:296 msgid "better" msgstr "daha iyi" -#: ../src/libs/filters/rating_range.c:270 +#: ../src/libs/filters/rating_range.c:297 msgid "worse" msgstr "daha kötü" -#: ../src/libs/filters/rating_range.c:271 +#: ../src/libs/filters/rating_range.c:298 msgid "cap" msgstr "yakalama" -#: ../src/libs/filters/rating_range.c:286 +#: ../src/libs/filters/rating_range.c:313 msgid "rating filter" msgstr "derecelendirme filtresi" @@ -21446,7 +22148,7 @@ msgid "apply offset and geo-location" msgstr "ofset ve coğrafi konum uygula" -#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1910 +#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1914 msgid "apply geo-location" msgstr "coğrafi konumu uygula" @@ -21458,49 +22160,49 @@ "eşleşen görüntülere ofset ve coğrafi konum uygulayın\n" "çift işlem: geri almak için iki ctrl-z" -#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1911 +#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1915 msgid "apply geo-location to matching images" msgstr "eşleşen görüntülere coğrafi konum uygula" -#: ../src/libs/geotagging.c:810 +#: ../src/libs/geotagging.c:809 msgid "GPX file track segments" msgstr "GPX dosya parça segmentleri" -#: ../src/libs/geotagging.c:830 ../src/libs/geotagging.c:1869 +#: ../src/libs/geotagging.c:831 ../src/libs/geotagging.c:1873 msgid "start time" msgstr "başlangıç zamanı" -#: ../src/libs/geotagging.c:831 +#: ../src/libs/geotagging.c:832 msgid "end time" msgstr "bitiş zamanı" -#: ../src/libs/geotagging.c:832 ../src/libs/geotagging.c:1871 +#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1875 msgid "points" msgstr "noktalar" -#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1873 -#: ../src/libs/image.c:463 +#: ../src/libs/geotagging.c:834 ../src/libs/geotagging.c:1877 +#: ../src/libs/image.c:494 msgid "images" msgstr "görüntüler" -#: ../src/libs/geotagging.c:926 +#: ../src/libs/geotagging.c:927 msgid "open GPX file" msgstr "GPX dosyasını aç" -#: ../src/libs/geotagging.c:927 ../src/libs/tools/lighttable.c:333 -#: ../src/libs/tools/lighttable.c:402 ../src/views/darkroom.c:2232 +#: ../src/libs/geotagging.c:928 ../src/libs/tools/lighttable.c:330 +#: ../src/libs/tools/lighttable.c:399 ../src/views/darkroom.c:2091 msgid "preview" msgstr "ön izleme" -#: ../src/libs/geotagging.c:940 +#: ../src/libs/geotagging.c:941 msgid "GPS data exchange format" msgstr "GPS veri alışverişi formatı" -#: ../src/libs/geotagging.c:1739 +#: ../src/libs/geotagging.c:1743 msgid "date/time" msgstr "tarih/saat" -#: ../src/libs/geotagging.c:1740 +#: ../src/libs/geotagging.c:1744 msgid "" "enter the new date/time (YYYY:MM:DD hh:mm:ss[.sss])\n" "key in the new numbers or scroll over the cell" @@ -21508,40 +22210,40 @@ "yeni tarih/saati girin (YYYY:AA:GG ss:dd:ss[.sss])\n" "yeni sayıları girin veya hücrenin üzerine gelin" -#: ../src/libs/geotagging.c:1744 +#: ../src/libs/geotagging.c:1748 msgid "original date/time" msgstr "orijinal tarih/saat" -#: ../src/libs/geotagging.c:1748 +#: ../src/libs/geotagging.c:1752 msgid "lock date/time offset value to apply it onto another selection" msgstr "başka bir seçime uygulamak için tarih/saat fark değerini kilitle" -#: ../src/libs/geotagging.c:1752 +#: ../src/libs/geotagging.c:1756 msgid "date/time offset" msgstr "tarih/saat farkı" -#: ../src/libs/geotagging.c:1753 +#: ../src/libs/geotagging.c:1757 msgid "offset or difference ([-]dd hh:mm:ss[.sss])" msgstr "ofset veya fark ([-]gg ss:dd:ss[.sss])" #. apply -#: ../src/libs/geotagging.c:1757 +#: ../src/libs/geotagging.c:1761 msgid "apply offset" msgstr "farkı uygula" -#: ../src/libs/geotagging.c:1758 +#: ../src/libs/geotagging.c:1762 msgid "apply offset to selected images" msgstr "seçili görüntülere fark uygula" -#: ../src/libs/geotagging.c:1761 +#: ../src/libs/geotagging.c:1765 msgid "apply date/time" msgstr "tarih/saat uygula" -#: ../src/libs/geotagging.c:1762 +#: ../src/libs/geotagging.c:1766 msgid "apply the same date/time to selected images" msgstr "seçilen görüntülere aynı tarih/saati uygula" -#: ../src/libs/geotagging.c:1772 +#: ../src/libs/geotagging.c:1776 msgid "" "start typing to show a list of permitted values and select your timezone.\n" "press enter to confirm, so that the asterisk * disappears" @@ -21551,25 +22253,25 @@ "yıldız işaretinin * kaybolması için onaylamak için enter tuşuna basın" #. gpx -#: ../src/libs/geotagging.c:1815 +#: ../src/libs/geotagging.c:1819 msgid "apply GPX track file..." msgstr "GPX parça dosyasını uygula..." -#: ../src/libs/geotagging.c:1816 +#: ../src/libs/geotagging.c:1820 msgid "parses a GPX file and updates location of selected images" msgstr "" "bir GPX dosyasını ayrıştırır ve seçilen görüntülerin konumunu günceller" -#: ../src/libs/geotagging.c:1827 +#: ../src/libs/geotagging.c:1831 msgctxt "section" msgid "GPX file" msgstr "GPX dosyası" -#: ../src/libs/geotagging.c:1834 +#: ../src/libs/geotagging.c:1838 msgid "select a GPX track file..." msgstr "bir GPX parça dosyası seçin..." -#: ../src/libs/geotagging.c:1851 +#: ../src/libs/geotagging.c:1855 msgid "" "list of track segments in the GPX file, for each segment:\n" "- the start date/time in local time (LT)\n" @@ -21585,172 +22287,180 @@ "görüntülerin sayısı\n" "- satırın üzerine gelindiğinde daha ayrıntılı zaman bilgisi" -#: ../src/libs/geotagging.c:1890 +#: ../src/libs/geotagging.c:1894 msgid "preview images" msgstr "görüntüleri önizleme" -#: ../src/libs/geotagging.c:1895 +#: ../src/libs/geotagging.c:1899 msgid "show on map matching images" msgstr "eşleşen görüntüleri haritada göster" -#: ../src/libs/geotagging.c:1898 +#: ../src/libs/geotagging.c:1902 msgid "select images" msgstr "görüntüleri seç" -#: ../src/libs/geotagging.c:1899 +#: ../src/libs/geotagging.c:1903 msgid "select matching images" msgstr "eşleşen görüntüleri seç" -#: ../src/libs/geotagging.c:1907 +#: ../src/libs/geotagging.c:1911 msgid "number of matching images versus selected images" msgstr "seçilen görüntülere karşılık eşleşen resimlerin sayısı" -#: ../src/libs/histogram.c:133 +#: ../src/libs/histogram.c:110 msgid "monochromatic" msgstr "tek renkli" -#: ../src/libs/histogram.c:134 +#: ../src/libs/histogram.c:111 msgid "analogous" msgstr "benzer" -#: ../src/libs/histogram.c:135 +#: ../src/libs/histogram.c:112 msgid "analogous complementary" msgstr "benzer tamamlayıcı" -#: ../src/libs/histogram.c:136 +#: ../src/libs/histogram.c:113 msgid "complementary" msgstr "tamamlayıcı" -#: ../src/libs/histogram.c:137 +#: ../src/libs/histogram.c:114 msgid "split complementary" msgstr "bölünmüş tamamlayıcı" -#: ../src/libs/histogram.c:138 +#: ../src/libs/histogram.c:115 msgid "dyad" msgstr "ikili" -#: ../src/libs/histogram.c:139 +#: ../src/libs/histogram.c:116 msgid "triad" msgstr "üçlü" -#: ../src/libs/histogram.c:140 +#: ../src/libs/histogram.c:117 msgid "tetrad" msgstr "dörtlü" -#: ../src/libs/histogram.c:146 +#: ../src/libs/histogram.c:123 msgid "vectorscope" msgstr "vektör kapsamı" -#: ../src/libs/histogram.c:147 +#: ../src/libs/histogram.c:124 msgid "waveform" msgstr "dalga şekli" -#: ../src/libs/histogram.c:148 +#: ../src/libs/histogram.c:125 msgid "RGB parade" msgstr "RGB geçişi" -#: ../src/libs/histogram.c:149 ../src/libs/histogram.c:2309 +#: ../src/libs/histogram.c:126 ../src/libs/histogram.c:2622 msgid "histogram" msgstr "histogram" -#: ../src/libs/histogram.c:243 +#: ../src/libs/histogram.c:218 msgid "scopes" msgstr "kapsamlar" -#: ../src/libs/histogram.c:1542 +#: ../src/libs/histogram.c:757 +msgid "" +"unsupported vectorscope profile selected, it will be replaced with linear " +"Rec2020" +msgstr "" +"desteklenmeyen vektörskop profili seçildiğinde doğrusal Rec2020 ile " +"değiştirilecektir" + +#: ../src/libs/histogram.c:1715 msgid "scroll to coarse-rotate" msgstr "pürüzlü döndürmek için kaydırın" -#: ../src/libs/histogram.c:1543 +#: ../src/libs/histogram.c:1716 msgid "ctrl+scroll to fine rotate" msgstr "yumuşak döndürmek için ctrl+scroll" -#: ../src/libs/histogram.c:1544 +#: ../src/libs/histogram.c:1717 msgid "shift+scroll to change width" msgstr "genişliği değiştirmek için shift+kaydırma" -#: ../src/libs/histogram.c:1545 +#: ../src/libs/histogram.c:1718 msgid "alt+scroll to cycle" msgstr "alt+kaydırma döngüsü" -#: ../src/libs/histogram.c:1556 +#: ../src/libs/histogram.c:1732 msgid "drag to change black point" msgstr "siyah noktayı değiştirmek için sürükleyin" -#: ../src/libs/histogram.c:1557 ../src/libs/histogram.c:1564 +#: ../src/libs/histogram.c:1733 ../src/libs/histogram.c:1740 msgid "double-click resets" msgstr "çift tıklamayla sıfırlar" -#: ../src/libs/histogram.c:1563 +#: ../src/libs/histogram.c:1739 msgid "drag to change exposure" msgstr "pozlamayı değiştirmek için sürükleyin" -#: ../src/libs/histogram.c:1725 ../src/libs/histogram.c:1765 +#: ../src/libs/histogram.c:1923 ../src/libs/histogram.c:1965 msgid "set scale to linear" msgstr "ölçeği doğrusal olarak ayarla" -#: ../src/libs/histogram.c:1730 ../src/libs/histogram.c:1770 +#: ../src/libs/histogram.c:1928 ../src/libs/histogram.c:1970 msgid "set scale to logarithmic" msgstr "ölçeği logaritmik olarak ayarla" -#: ../src/libs/histogram.c:1746 +#: ../src/libs/histogram.c:1946 msgid "set scope to vertical" msgstr "kapsamı dikey olarak ayarla" -#: ../src/libs/histogram.c:1751 +#: ../src/libs/histogram.c:1951 msgid "set scope to horizontal" msgstr "kapsamı yatay olarak ayarla" -#: ../src/libs/histogram.c:1780 +#: ../src/libs/histogram.c:1980 msgid "set view to AzBz" msgstr "görünümü AzBz olarak ayarla" -#: ../src/libs/histogram.c:1786 +#: ../src/libs/histogram.c:1986 msgid "set view to RYB" msgstr "görünümü RYB olarak ayarla" -#: ../src/libs/histogram.c:1792 +#: ../src/libs/histogram.c:1992 msgid "set view to u*v*" msgstr "görünümü u*v* olarak ayarla" -#: ../src/libs/histogram.c:2312 ../src/libs/histogram.c:2370 +#: ../src/libs/histogram.c:2625 ../src/libs/histogram.c:2691 msgid "cycle histogram modes" msgstr "döngü histogram modları" -#: ../src/libs/histogram.c:2316 ../src/libs/histogram.c:2371 +#: ../src/libs/histogram.c:2630 ../src/libs/histogram.c:2693 msgid "hide histogram" msgstr "histogramı gizle" -#: ../src/libs/histogram.c:2372 ../src/libs/histogram.c:2401 +#: ../src/libs/histogram.c:2696 ../src/libs/histogram.c:2729 msgid "switch histogram view" msgstr "histogram görünümünü değiştir" -#: ../src/libs/histogram.c:2379 +#: ../src/libs/histogram.c:2704 msgid "toggle blue channel" msgstr "mavi kanalı değiştir" -#: ../src/libs/histogram.c:2381 ../src/libs/histogram.c:2389 -#: ../src/libs/histogram.c:2397 +#: ../src/libs/histogram.c:2706 ../src/libs/histogram.c:2715 +#: ../src/libs/histogram.c:2724 msgid "toggle colors" msgstr "renkleri değiştir" -#: ../src/libs/histogram.c:2387 +#: ../src/libs/histogram.c:2713 msgid "toggle green channel" msgstr "yeşil kanalı değiştir" -#: ../src/libs/histogram.c:2395 +#: ../src/libs/histogram.c:2722 msgid "toggle red channel" msgstr "kırmızı kanalı değiştir" -#: ../src/libs/histogram.c:2405 +#: ../src/libs/histogram.c:2734 msgid "cycle vectorscope types" msgstr "döngü vektörskop türleri" -#: ../src/libs/histogram.c:2413 +#: ../src/libs/histogram.c:2745 msgid "color harmonies" msgstr "renk uyumları" -#: ../src/libs/histogram.c:2425 +#: ../src/libs/histogram.c:2759 msgid "cycle color harmonies" msgstr "döngü renk uyumları" @@ -21794,10 +22504,18 @@ msgid "mask mode" msgstr "maske modu" +#: ../src/libs/history.c:949 +msgid "blend mode" +msgstr "karıştırma modu" + #: ../src/libs/history.c:951 msgid "blend operation" msgstr "harmanlama işlemi" +#: ../src/libs/history.c:953 +msgid "blend fulcrum" +msgstr "dayanak noktası harmanlamak" + #: ../src/libs/history.c:961 msgid "mask blur" msgstr "maske bulanıklığı" @@ -21841,199 +22559,199 @@ msgid "parametric input mask:" msgstr "parametrik girdi maskesi:" -#: ../src/libs/history.c:1323 +#: ../src/libs/history.c:1322 msgid "delete image's history?" msgstr "görüntünün geçmişi silinsin mi?" -#: ../src/libs/history.c:1324 +#: ../src/libs/history.c:1323 msgid "do you really want to clear history of current image?" msgstr "gerçekten mevcut görüntünün geçmişini temizlemek istiyor musunuz?" -#: ../src/libs/image.c:72 -msgid "selected image[s]" -msgstr "seçilen görüntü[ler]" +#: ../src/libs/image.c:74 +msgid "actions on selection" +msgstr "seçimle ilgili eylemler" -#: ../src/libs/image.c:284 +#: ../src/libs/image.c:302 msgid "delete (trash)" msgstr "sil (çöp)" -#: ../src/libs/image.c:287 +#: ../src/libs/image.c:305 msgid "physically delete from disk (using trash if possible)" msgstr "diskten fiziksel olarak sil (mümkünse çöp kutusunu kullanarak)" -#: ../src/libs/image.c:288 +#: ../src/libs/image.c:306 msgid "physically delete from disk immediately" msgstr "hemen diskten fiziksel olarak sil" -#: ../src/libs/image.c:474 ../src/libs/modulegroups.c:3811 -#: ../src/libs/styles.c:876 +#: ../src/libs/image.c:506 ../src/libs/modulegroups.c:3813 +#: ../src/libs/styles.c:880 msgid "remove" msgstr "kaldır" -#: ../src/libs/image.c:475 +#: ../src/libs/image.c:508 msgid "remove images from the image library, without deleting" msgstr "görüntüleri silmeden resim kitaplığından kaldırma" -#: ../src/libs/image.c:483 +#: ../src/libs/image.c:517 msgid "move..." msgstr "taşı..." -#: ../src/libs/image.c:484 +#: ../src/libs/image.c:519 msgid "move to other folder" msgstr "diğer klasöre taşı" -#: ../src/libs/image.c:487 +#: ../src/libs/image.c:522 msgid "copy..." msgstr "kopyala..." -#: ../src/libs/image.c:488 +#: ../src/libs/image.c:524 msgid "copy to other folder" msgstr "diğer klasöre kopyala" -#: ../src/libs/image.c:491 +#: ../src/libs/image.c:528 msgid "create HDR" msgstr "HDR oluştur" -#: ../src/libs/image.c:492 +#: ../src/libs/image.c:530 msgid "create a high dynamic range image from selected shots" msgstr "seçilen çekimlerden yüksek dinamik aralıklı bir görüntü oluşturun" -#: ../src/libs/image.c:496 +#: ../src/libs/image.c:535 msgid "add a duplicate to the image library, including its history stack" msgstr "" "geçmiş yığını da dahil olmak üzere görüntü kitaplığına bir kopya ekleyin" -#: ../src/libs/image.c:502 ../src/libs/image.c:505 +#: ../src/libs/image.c:542 ../src/libs/image.c:547 msgid "rotate selected images 90 degrees CCW" msgstr "seçilen görüntüleri CCW 90 derece döndür" -#: ../src/libs/image.c:509 ../src/libs/image.c:512 +#: ../src/libs/image.c:553 ../src/libs/image.c:558 msgid "rotate selected images 90 degrees CW" msgstr "seçilen görüntüleri sağa 90 derece döndür" -#: ../src/libs/image.c:514 +#: ../src/libs/image.c:561 msgid "reset rotation" msgstr "döndürmeyi sıfırla" -#: ../src/libs/image.c:515 +#: ../src/libs/image.c:563 msgid "reset rotation to EXIF data" msgstr "rotasyonu EXIF verilerine sıfırla" -#: ../src/libs/image.c:518 +#: ../src/libs/image.c:566 msgid "copy locally" msgstr "yerel olarak kopyala" -#: ../src/libs/image.c:519 +#: ../src/libs/image.c:568 msgid "copy the image locally" msgstr "görüntüyü yerel olarak kopyala" -#: ../src/libs/image.c:522 +#: ../src/libs/image.c:572 msgid "resync local copy" msgstr "yerel kopyayı yeniden eşitle" -#: ../src/libs/image.c:523 +#: ../src/libs/image.c:574 msgid "synchronize the image's XMP and remove the local copy" msgstr "görüntünün XMP'sini senkronize edin ve yerel kopyayı kaldırın" -#: ../src/libs/image.c:526 +#: ../src/libs/image.c:578 msgctxt "selected images action" msgid "group" msgstr "grup" -#: ../src/libs/image.c:527 +#: ../src/libs/image.c:580 msgid "add selected images to expanded group or create a new one" msgstr "" "seçilen görüntüleri genişletilmiş gruba ekleyin veya yeni bir tane oluşturun" -#: ../src/libs/image.c:531 +#: ../src/libs/image.c:584 msgid "ungroup" msgstr "grubu çöz" -#: ../src/libs/image.c:532 +#: ../src/libs/image.c:586 msgid "remove selected images from the group" msgstr "gruptan seçilen görüntüleri kaldır" -#: ../src/libs/image.c:544 +#: ../src/libs/image.c:598 msgid "select ratings metadata" msgstr "derecelendirme üst verilerini seçin" -#: ../src/libs/image.c:550 +#: ../src/libs/image.c:605 msgid "colors" msgstr "renk" -#: ../src/libs/image.c:552 +#: ../src/libs/image.c:607 msgid "select colors metadata" msgstr "renklerin üst verilerini seçme" -#: ../src/libs/image.c:560 +#: ../src/libs/image.c:616 msgid "select tags metadata" msgstr "etiketlerin üst verilerini seçme" -#: ../src/libs/image.c:568 +#: ../src/libs/image.c:625 msgid "select geo tags metadata" msgstr "coğrafi etiketler üst verilerini seçme" -#: ../src/libs/image.c:576 +#: ../src/libs/image.c:636 msgid "select darktable metadata (from metadata editor module)" msgstr "darktable üst verilerini seçin (üst veri düzenleyici modülünden)" -#: ../src/libs/image.c:584 +#: ../src/libs/image.c:649 msgid "set the selected image as source of metadata" msgstr "seçilen görüntüyü üst veri kaynağı olarak ayarla" -#: ../src/libs/image.c:589 +#: ../src/libs/image.c:656 msgid "paste selected metadata on selected images" msgstr "seçilen üst verileri seçilen görüntülere yapıştır" -#: ../src/libs/image.c:593 +#: ../src/libs/image.c:661 msgid "clear selected metadata on selected images" msgstr "seçili görüntülerde seçili üst verileri temizle" -#: ../src/libs/image.c:598 +#: ../src/libs/image.c:667 msgid "how to handle existing metadata" msgstr "mevcut üst veriler nasıl işlenir" -#: ../src/libs/image.c:601 +#: ../src/libs/image.c:670 msgid "merge" msgstr "birleştir" -#: ../src/libs/image.c:605 +#: ../src/libs/image.c:675 msgid "update image information to match changes to file" msgstr "" "dosyadaki değişiklikleri eşleştirmek için görüntü bilgilerini güncelleyin" -#: ../src/libs/image.c:609 +#: ../src/libs/image.c:680 msgid "set selection as monochrome images and activate monochrome workflow" msgstr "" "seçimi tek renkli görüntüler olarak ayarlayın ve tek renkli iş akışını " "etkinleştirin" -#: ../src/libs/image.c:613 +#: ../src/libs/image.c:684 msgid "set selection as color images" msgstr "seçimi renkli görüntüler olarak ayarla" -#: ../src/libs/image.c:625 +#: ../src/libs/image.c:696 msgid "duplicate virgin" msgstr "ellenmemiş çoğaltma" -#: ../src/libs/import.c:263 +#: ../src/libs/import.c:264 #, c-format msgid "device \"%s\" connected on port \"%s\"." msgstr "\"%s\" aygıtı \"%s\" bağlantı noktasına bağlı." -#: ../src/libs/import.c:273 ../src/libs/import.c:334 ../src/libs/import.c:1692 +#: ../src/libs/import.c:274 ../src/libs/import.c:335 ../src/libs/import.c:1701 msgid "copy & import from camera" msgstr "kameradan kopyala & içe aktar" -#: ../src/libs/import.c:284 ../src/libs/import.c:336 +#: ../src/libs/import.c:285 ../src/libs/import.c:337 msgid "tethered shoot" msgstr "bağlı çekim" -#: ../src/libs/import.c:291 ../src/libs/import.c:337 +#: ../src/libs/import.c:292 ../src/libs/import.c:338 msgid "unmount camera" msgstr "kameranın bağlantısını kes" -#: ../src/libs/import.c:312 +#: ../src/libs/import.c:313 msgid "" "camera is locked by another application\n" "make sure it is no longer mounted\n" @@ -22043,38 +22761,38 @@ "artık bağlı olmadığından emin olun\n" "veya kilitleyen uygulamadan çıkın" -#: ../src/libs/import.c:315 +#: ../src/libs/import.c:316 msgid "tethering and importing is disabled for this camera" msgstr "bu kamera için bağlama ve içe aktarma devre dışı" -#: ../src/libs/import.c:317 ../src/libs/import.c:335 +#: ../src/libs/import.c:318 ../src/libs/import.c:336 msgid "mount camera" msgstr "kamerayı bağla" -#: ../src/libs/import.c:747 +#: ../src/libs/import.c:754 #, c-format msgid "%d image out of %d selected" msgid_plural "%d images out of %d selected" msgstr[0] "%d görüntüden %d tanesi seçildi" msgstr[1] "%d görüntülerden %d tanesi seçildi" -#: ../src/libs/import.c:1039 +#: ../src/libs/import.c:1046 msgid "you can't delete the selected place" msgstr "seçilen yeri silemezsiniz" -#: ../src/libs/import.c:1153 +#: ../src/libs/import.c:1160 msgid "choose the root of the folder tree below" msgstr "aşağıdaki klasör ağacının kökünü seçin" -#: ../src/libs/import.c:1156 +#: ../src/libs/import.c:1163 msgid "places" msgstr "yerler" -#: ../src/libs/import.c:1162 +#: ../src/libs/import.c:1169 msgid "restore all default places you have removed by right-click" msgstr "sağ tıkla kaldırdığınız tüm varsayılan yerleri geri yükleyin" -#: ../src/libs/import.c:1167 +#: ../src/libs/import.c:1174 msgid "" "add a custom place\n" "\n" @@ -22084,80 +22802,108 @@ "\n" "kaldırmak için bir yere sağ tıklayın" -#: ../src/libs/import.c:1174 +#: ../src/libs/import.c:1181 msgid "you can add custom places using the plus icon" msgstr "artı simgesini kullanarak özel yerler ekleyebilirsiniz" -#: ../src/libs/import.c:1199 +#: ../src/libs/import.c:1206 msgid "select a folder to see the content" msgstr "içeriği görmek için bir klasör seçin" -#: ../src/libs/import.c:1202 +#: ../src/libs/import.c:1209 msgid "folders" msgstr "klasörler" -#: ../src/libs/import.c:1272 +#: ../src/libs/import.c:1279 msgid "home" msgstr "ev" -#: ../src/libs/import.c:1284 +#: ../src/libs/import.c:1291 msgid "pictures" msgstr "resimler" -#: ../src/libs/import.c:1548 +#: ../src/libs/import.c:1557 msgid "mark already imported pictures" msgstr "zaten içe aktarılan resimleri işaretle" -#: ../src/libs/import.c:1562 +#: ../src/libs/import.c:1571 msgid "modified" msgstr "değiştirilmiş" -#: ../src/libs/import.c:1567 +#: ../src/libs/import.c:1576 msgid "file 'modified date/time', may be different from 'Exif date/time'" msgstr "" "'değiştirilen tarih/saat' dosyası, 'Exif tarihi/saati'nden farklı olabilir" -#: ../src/libs/import.c:1579 +#: ../src/libs/import.c:1588 msgid "show/hide thumbnails" msgstr "küçük resimleri göster/gizle" -#: ../src/libs/import.c:1649 +#: ../src/libs/import.c:1658 msgid "naming rules" msgstr "adlandırma kuralları" -#: ../src/libs/import.c:1690 +#: ../src/libs/import.c:1699 msgid "add to library" msgstr "kütüphaneye ekle" -#: ../src/libs/import.c:1691 +#: ../src/libs/import.c:1700 msgid "copy & import" msgstr "kopyala & içe aktar" -#: ../src/libs/import.c:1730 +#: ../src/libs/import.c:1740 msgid "select new" msgstr "yeni seç" -#: ../src/libs/import.c:1773 +#: ../src/libs/import.c:1783 msgid "please wait while prefetching the list of images from camera..." msgstr "kameradan görüntülerin listesini önceden getirirken lütfen bekleyin..." -#: ../src/libs/import.c:1907 +#: ../src/libs/import.c:1922 msgid "invalid override date/time format" msgstr "geçersiz geçersiz kılma tarih/saat biçimi" -#: ../src/libs/import.c:2022 +#: ../src/libs/import.c:1986 +msgid "import base directory" +msgstr "temel dizini içe aktar" + +#: ../src/libs/import.c:1987 +msgid "" +"before copying images to the darktable base directory make sure it is " +"defined as you prefer.\n" +"further information can be found in the darktable manual.\n" +"\n" +"inspect darktable preferences -> import.\n" +"check and possibly correct the 'base directory naming pattern'" +msgstr "" +"görüntüleri karanlık tablo temel dizinine kopyalamadan önce, tercih " +"ettiğiniz gibi tanımlandığından emin olun.\n" +"Daha fazla bilgiyi karanlık masa kılavuzunda bulabilirsiniz.\n" +"\n" +"karanlık tablo tercihlerini inceleyin -> içe aktar.\n" +"'temel dizin adlandırma modelini' kontrol edin ve muhtemelen düzeltin" + +#: ../src/libs/import.c:1991 +msgid "_come back & check" +msgstr "_geri gelip kontrol edin" + +#: ../src/libs/import.c:1991 +msgid "_understood & done" +msgstr "_anlaşıldı veya yapıldı" + +#: ../src/libs/import.c:2057 msgid "add to library..." msgstr "kütüphaneye ekle..." -#: ../src/libs/import.c:2023 +#: ../src/libs/import.c:2058 msgid "add existing images to the library" msgstr "mevcut görüntüleri kütüphaneye ekle" -#: ../src/libs/import.c:2029 +#: ../src/libs/import.c:2064 msgid "copy & import..." msgstr "kopyala & içe aktar..." -#: ../src/libs/import.c:2030 +#: ../src/libs/import.c:2065 msgid "" "copy and optionally rename images before adding them to the library\n" "patterns can be defined to rename the images and specify the destination " @@ -22169,15 +22915,15 @@ "tanımlanabilir" #. collapsible section -#: ../src/libs/import.c:2053 +#: ../src/libs/import.c:2088 msgid "parameters" msgstr "parametreler" -#: ../src/libs/ioporder.c:204 +#: ../src/libs/ioporder.c:202 msgid "v3.0 for RAW input (default)" msgstr "RAW girişi için v3.0 (varsayılan)" -#: ../src/libs/ioporder.c:210 +#: ../src/libs/ioporder.c:208 msgid "v3.0 for JPEG/non-RAW input" msgstr "JPEG/RAW olmayan giriş için v3.0" @@ -22193,11 +22939,11 @@ msgid "nothing to save" msgstr "kaydedilecek bir şey yok" -#: ../src/libs/lib.c:1105 +#: ../src/libs/lib.c:1106 msgid "show module" msgstr "modülü göster" -#: ../src/libs/lib.c:1430 +#: ../src/libs/lib.c:1431 msgid "utility module" msgstr "yardımcı modül" @@ -22429,167 +23175,109 @@ msgid "map settings" msgstr "harita ayarları" -#: ../src/libs/map_settings.c:107 +#: ../src/libs/map_settings.c:89 msgid "map source" msgstr "harita kaynağı" -#: ../src/libs/map_settings.c:112 +#: ../src/libs/map_settings.c:90 msgid "select the source of the map. some entries might not work" msgstr "haritanın kaynağını seçin. bazı girdiler çalışmayabilir" -#: ../src/libs/masks.c:107 +#: ../src/libs/masks.c:108 msgid "feather" msgstr "kuş tüyü" -#: ../src/libs/masks.c:114 -msgid "hardness (relative)" -msgstr "sertlik (bağıl)" - -#: ../src/libs/masks.c:115 -msgid "hardness (absolute)" -msgstr "sertlik (mutlak)" - -#: ../src/libs/masks.c:116 -msgid "opacity (relative)" -msgstr "opaklık (göreceli)" - -#: ../src/libs/masks.c:117 -msgid "opacity (absolute)" -msgstr "opaklık (mutlak)" - -#: ../src/libs/masks.c:118 -msgid "brush size (relative)" -msgstr "fırça boyutu (göreceli)" - -#: ../src/libs/masks.c:121 -msgid "low" -msgstr "düşük" - -#: ../src/libs/masks.c:122 -msgid "medium" -msgstr "orta" - -#: ../src/libs/masks.c:123 -msgid "high" -msgstr "yüksek" - -#: ../src/libs/masks.c:381 +#: ../src/libs/masks.c:357 #, c-format msgid "group #%d" msgstr "grup #%d" -#: ../src/libs/masks.c:1081 +#: ../src/libs/masks.c:1097 msgid "duplicate this shape" msgstr "bu şekli çoğalt" -#: ../src/libs/masks.c:1085 +#: ../src/libs/masks.c:1101 msgid "delete this shape" msgstr "bu şekli sil" -#: ../src/libs/masks.c:1091 +#: ../src/libs/masks.c:1107 msgid "delete group" msgstr "grubu sil" -#: ../src/libs/masks.c:1098 +#: ../src/libs/masks.c:1114 msgid "remove from group" msgstr "gruptan çıkar" -#: ../src/libs/masks.c:1106 +#: ../src/libs/masks.c:1122 msgid "group the forms" msgstr "formları gruplandır" -#: ../src/libs/masks.c:1114 +#: ../src/libs/masks.c:1130 msgid "use inverted shape" msgstr "ters şekil kullan" -#: ../src/libs/masks.c:1121 +#: ../src/libs/masks.c:1134 msgid "mode: union" msgstr "mod: birlik" -#: ../src/libs/masks.c:1127 +#: ../src/libs/masks.c:1136 msgid "mode: intersection" msgstr "mod: kavşak" -#: ../src/libs/masks.c:1133 +#: ../src/libs/masks.c:1138 msgid "mode: difference" msgstr "mod: fark" -#: ../src/libs/masks.c:1139 +#: ../src/libs/masks.c:1140 msgid "mode: sum" msgstr "mod: toplam" -#: ../src/libs/masks.c:1145 +#: ../src/libs/masks.c:1142 msgid "mode: exclusion" msgstr "mod: dışlama" -#: ../src/libs/masks.c:1164 +#: ../src/libs/masks.c:1158 msgid "cleanup unused shapes" msgstr "kullanılmayan şekilleri temizleme" -#: ../src/libs/masks.c:1811 +#: ../src/libs/masks.c:1807 msgid "created shapes" msgstr "oluşturulan şekiller" -#: ../src/libs/masks.c:1904 ../src/libs/masks.c:1919 ../src/libs/masks.c:1939 -#: ../src/libs/masks.c:1955 +#: ../src/libs/masks.c:1900 ../src/libs/masks.c:1915 ../src/libs/masks.c:1929 +#: ../src/libs/masks.c:1933 msgid "properties" msgstr "özellikler" -#: ../src/libs/masks.c:1907 +#: ../src/libs/masks.c:1903 msgid "no shapes selected" msgstr "şekil seçilmedi" -#: ../src/libs/masks.c:1940 +#: ../src/libs/masks.c:1929 msgid "pressure" msgstr "basınç" -#: ../src/libs/masks.c:1941 -msgid "" -"pen pressure control for brush masks\n" -"'off': pressure reading ignored,\n" -"'hardness'/'opacity'/'brush size': pressure reading controls specified " -"attribute,\n" -"'absolute'/'relative': pressure reading is taken directly as attribute value " -"or multiplied with pre-defined setting." -msgstr "" -" fırça maskeleri için kalem basıncı kontrolü\n" -"'kapalı': basınç okuması yoksayılır,\n" -"'sertlik'/'opaklık'/'fırça boyutu': basınç okuma belirtilen özelliği kontrol " -"eder,\n" -"'mutlak'/'göreceli': basınç okuması doğrudan öznitelik değeri olarak alınır " -"veya önceden tanımlanmış ayarla çarpılır." - -#: ../src/libs/masks.c:1956 +#: ../src/libs/masks.c:1933 msgid "smoothing" msgstr "yumuşatma" -#: ../src/libs/masks.c:1957 -msgid "" -"smoothing of brush strokes\n" -"stronger smoothing leads to fewer nodes and easier editing but with lower " -"control of accuracy." -msgstr "" -"fırça darbelerinin yumuşatılması\n" -"daha güçlü yumuşatma, daha az düğüme ve daha kolay düzenlemeye, ancak daha " -"düşük doğruluk kontrolüne yol açar." - -#: ../src/libs/metadata.c:64 +#: ../src/libs/metadata.c:60 msgid "metadata editor" msgstr "üst veri düzenleyici" -#: ../src/libs/metadata.c:206 ../src/libs/metadata.c:496 -msgid "<leave unchanged>" -msgstr "<degismeden birakilan>" - -#: ../src/libs/metadata.c:630 ../src/libs/metadata_view.c:1192 +#: ../src/libs/metadata.c:459 ../src/libs/metadata_view.c:1219 msgid "metadata settings" msgstr "üstveri ayarları" -#: ../src/libs/metadata.c:683 ../src/libs/metadata_view.c:1237 +#: ../src/libs/metadata.c:461 ../src/libs/metadata_view.c:1221 +msgid "_default" +msgstr "_öntanımlı" + +#: ../src/libs/metadata.c:516 ../src/libs/metadata_view.c:1267 msgid "visible" msgstr "görünür" -#: ../src/libs/metadata.c:688 +#: ../src/libs/metadata.c:524 msgid "" "tick if the corresponding metadata is of interest for you\n" "it will be visible from metadata editor, collection and import module\n" @@ -22599,19 +23287,19 @@ "üst veri düzenleyici, toplama ve içe aktarma modülünden görünür olacak\n" "o da dışa aktaracak" -#: ../src/libs/metadata.c:693 ../src/libs/tagging.c:1683 -#: ../src/libs/tagging.c:1827 +#: ../src/libs/metadata.c:529 ../src/libs/tagging.c:1705 +#: ../src/libs/tagging.c:1854 msgid "private" msgstr "özel" -#: ../src/libs/metadata.c:698 +#: ../src/libs/metadata.c:534 msgid "" "tick if you want to keep this information private (not exported with images)" msgstr "" "bu bilgiyi gizli tutmak istiyorsanız işaretleyin (görüntüler ile dışa " "aktarılmaz)" -#: ../src/libs/metadata.c:857 +#: ../src/libs/metadata.c:691 msgid "" "metadata text\n" "ctrl+enter inserts a new line (caution, may not be compatible with standard " @@ -22627,169 +23315,181 @@ "bu durumda, sağ tıklama bunlardan birini seçme imkanı verir\n" "açılır pencereden çıkmak için Esc" -#: ../src/libs/metadata.c:902 +#: ../src/libs/metadata.c:736 msgid "write metadata for selected images" msgstr "seçilen görüntüler için üst veri yaz" +#: ../src/libs/metadata.c:737 +msgid "cancel" +msgstr "vazgeç" + +#: ../src/libs/metadata.c:738 +msgid "ignore changed metadata" +msgstr "değiştirilen meta verileri yoksay" + #. <title>\0<description>\0<rights>\0<creator>\0<publisher> -#: ../src/libs/metadata.c:958 +#: ../src/libs/metadata.c:793 msgid "CC BY" msgstr "CC BY" -#: ../src/libs/metadata.c:959 +#: ../src/libs/metadata.c:794 msgid "Creative Commons Attribution (CC BY)" msgstr "Genel yaratıcı (CC BY)" -#: ../src/libs/metadata.c:960 +#: ../src/libs/metadata.c:795 msgid "CC BY-SA" msgstr "CC BY-SA" -#: ../src/libs/metadata.c:961 +#: ../src/libs/metadata.c:796 msgid "Creative Commons Attribution-ShareAlike (CC BY-SA)" msgstr "Genel yaratıcı-ShareAlike (CC BY-SA)" -#: ../src/libs/metadata.c:962 +#: ../src/libs/metadata.c:797 msgid "CC BY-ND" msgstr "CC BY-ND" -#: ../src/libs/metadata.c:963 +#: ../src/libs/metadata.c:798 msgid "Creative Commons Attribution-NoDerivs (CC BY-ND)" msgstr "Genel yaratıcı-Türevsiz (CC BY-ND)" -#: ../src/libs/metadata.c:964 +#: ../src/libs/metadata.c:799 msgid "CC BY-NC" msgstr "CC BY-NC" -#: ../src/libs/metadata.c:965 +#: ../src/libs/metadata.c:800 msgid "Creative Commons Attribution-NonCommercial (CC BY-NC)" msgstr "Genel yaratıcı-Ticari Olmayan (CC BY-NC)" -#: ../src/libs/metadata.c:966 +#: ../src/libs/metadata.c:801 msgid "CC BY-NC-SA" msgstr "CC BY-NC-SA" -#: ../src/libs/metadata.c:967 +#: ../src/libs/metadata.c:802 msgid "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" msgstr "Genel yaratıcı-Ticari olmayan-ShareAlike (CC BY-NC-SA)" -#: ../src/libs/metadata.c:968 +#: ../src/libs/metadata.c:803 msgid "CC BY-NC-ND" msgstr "CC BY-NC-ND" -#: ../src/libs/metadata.c:969 +#: ../src/libs/metadata.c:804 msgid "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" msgstr "Genel yaratıcı-Ticari olmayan-NoDerivs (CC BY-NC-ND)" -#: ../src/libs/metadata.c:970 ../src/libs/metadata.c:971 +#: ../src/libs/metadata.c:805 ../src/libs/metadata.c:806 msgid "all rights reserved" msgstr "her hakkı saklıdır" #. internal -#: ../src/libs/metadata_view.c:123 +#: ../src/libs/metadata_view.c:125 msgid "filmroll" msgstr "film rulosu" -#: ../src/libs/metadata_view.c:125 +#: ../src/libs/metadata_view.c:127 msgid "group id" msgstr "grup kimliği" -#: ../src/libs/metadata_view.c:127 +#: ../src/libs/metadata_view.c:129 msgid "version" msgstr "sürüm" -#: ../src/libs/metadata_view.c:130 +#: ../src/libs/metadata_view.c:132 msgid "import timestamp" msgstr "zaman damgasını içe aktar" -#: ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:133 msgid "change timestamp" msgstr "zaman damgasını değiştir" -#: ../src/libs/metadata_view.c:132 +#: ../src/libs/metadata_view.c:134 msgid "export timestamp" msgstr "zaman damgasını dışa aktar" -#: ../src/libs/metadata_view.c:133 +#: ../src/libs/metadata_view.c:135 msgid "print timestamp" msgstr "zaman damgasını yazdır" -#: ../src/libs/metadata_view.c:134 +#: ../src/libs/metadata_view.c:136 msgid "flags" msgstr "işaretler" -#: ../src/libs/metadata_view.c:144 +#: ../src/libs/metadata_view.c:146 +msgid "35mm equiv focal length" +msgstr "35 mm eşdeğer odak uzaklığı" + +#: ../src/libs/metadata_view.c:148 msgid "focus distance" msgstr "odak mesafesi" -#: ../src/libs/metadata_view.c:146 +#: ../src/libs/metadata_view.c:150 msgid "datetime" msgstr "tarih saat" -#: ../src/libs/metadata_view.c:149 +#: ../src/libs/metadata_view.c:153 msgid "export width" msgstr "dışa aktarım genişliği" -#: ../src/libs/metadata_view.c:150 +#: ../src/libs/metadata_view.c:154 msgid "export height" msgstr "dışa aktarım yüksekliği" -#: ../src/libs/metadata_view.c:158 +#: ../src/libs/metadata_view.c:162 msgid "longitude" msgstr "boylam" -#: ../src/libs/metadata_view.c:159 +#: ../src/libs/metadata_view.c:163 msgid "elevation" msgstr "yükseklik" -#: ../src/libs/metadata_view.c:163 +#: ../src/libs/metadata_view.c:167 msgid "categories" msgstr "kategoriler" -#: ../src/libs/metadata_view.c:170 +#: ../src/libs/metadata_view.c:174 msgid "image information" msgstr "görüntü bilgisi" -#: ../src/libs/metadata_view.c:330 +#: ../src/libs/metadata_view.c:334 msgid "unused/deprecated" msgstr "kullanılmamış/kullanımdan kaldırılmış" -#: ../src/libs/metadata_view.c:331 +#: ../src/libs/metadata_view.c:335 msgid "LDR" msgstr "LDR" -#: ../src/libs/metadata_view.c:334 +#: ../src/libs/metadata_view.c:338 msgid "marked for deletion" msgstr "silinmek üzere işaretlendi" -#: ../src/libs/metadata_view.c:335 +#: ../src/libs/metadata_view.c:339 msgid "auto-applying presets applied" msgstr "otomatik uygulanan ön ayarlar uygulandı" -#: ../src/libs/metadata_view.c:337 +#: ../src/libs/metadata_view.c:341 msgid "has .txt" msgstr "has .txt" -#: ../src/libs/metadata_view.c:338 +#: ../src/libs/metadata_view.c:342 msgid "has .wav" msgstr "has .wav" -#: ../src/libs/metadata_view.c:356 +#: ../src/libs/metadata_view.c:360 #, c-format msgid "image has %d star" msgid_plural "image has %d stars" msgstr[0] "görüntüde %d yıldız var" msgstr[1] "görüntüde %d yıldız var" -#: ../src/libs/metadata_view.c:432 +#: ../src/libs/metadata_view.c:436 #, c-format msgid "loader: %s" msgstr "yükleyici: %s" -#: ../src/libs/metadata_view.c:623 +#: ../src/libs/metadata_view.c:626 msgid "<various values>" msgstr "<cesitli degerler>" -#: ../src/libs/metadata_view.c:636 +#: ../src/libs/metadata_view.c:639 #, c-format msgid "" "double-click to jump to film roll\n" @@ -22798,32 +23498,28 @@ "film rulosuna atlamak için çift tıklayın\n" "%s" -#: ../src/libs/metadata_view.c:728 +#: ../src/libs/metadata_view.c:731 #, c-format msgid "%+.2f EV" msgstr "%+.2f EV" -#: ../src/libs/metadata_view.c:735 -#, c-format -msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" -msgstr "%.1f mm (%.1f mm FF eşdeğeri, kırpma %.1f)" - -#: ../src/libs/metadata_view.c:740 +#: ../src/libs/metadata_view.c:737 ../src/libs/metadata_view.c:749 +#: ../src/libs/metadata_view.c:754 #, c-format msgid "%.1f mm" msgstr "%.1f mm" -#: ../src/libs/metadata_view.c:751 +#: ../src/libs/metadata_view.c:778 #, c-format msgid "infinity" msgstr "sonsuz" -#: ../src/libs/metadata_view.c:755 +#: ../src/libs/metadata_view.c:782 #, c-format msgid "%.2f m" msgstr "%.2f m" -#: ../src/libs/metadata_view.c:1232 +#: ../src/libs/metadata_view.c:1262 msgid "" "drag and drop one row at a time until you get the desired order\n" "untick to hide metadata which are not of interest for you\n" @@ -22833,7 +23529,7 @@ "ilginizi çekmeyen üst verileri gizlemek için işareti kaldırın\n" "farklı ayarlar gerekiyorsa ön ayarları kullanın" -#: ../src/libs/metadata_view.c:1388 +#: ../src/libs/metadata_view.c:1423 msgid "jump to film roll" msgstr "film rulosuna atla" @@ -22858,7 +23554,7 @@ msgid "recent collections settings" msgstr "son koleksiyon ayarları" -#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1769 +#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1753 msgid "workflow: scene-referred" msgstr "iş akışı: sahne referansı" @@ -22876,12 +23572,12 @@ #. FIXME don't check here if on/off is enabled, because it depends on image (reload_defaults) #. respond later to image changed signal -#: ../src/libs/modulegroups.c:306 ../src/libs/modulegroups.c:318 -#: ../src/libs/modulegroups.c:2427 ../src/libs/modulegroups.c:2429 +#: ../src/libs/modulegroups.c:307 ../src/libs/modulegroups.c:319 +#: ../src/libs/modulegroups.c:2411 ../src/libs/modulegroups.c:2413 msgid "on-off" msgstr "aç/kapat" -#: ../src/libs/modulegroups.c:498 ../src/libs/modulegroups.c:501 +#: ../src/libs/modulegroups.c:501 ../src/libs/modulegroups.c:504 msgid "" "this quick access widget is disabled as there are multiple instances of this " "module present. Please use the full module to access this widget..." @@ -22889,157 +23585,157 @@ "bu modülün birden çok örneği mevcut olduğundan, bu hızlı erişim aracı devre " "dışı bırakıldı. Bu araç'a erişmek için lütfen tam modülü kullanın..." -#: ../src/libs/modulegroups.c:591 +#: ../src/libs/modulegroups.c:594 msgid "(some features may only be available in the full module interface)" msgstr "(bazı özellikler yalnızca tam modül arayüzünde mevcut olabilir)" -#: ../src/libs/modulegroups.c:635 +#: ../src/libs/modulegroups.c:632 #, c-format msgid "go to the full version of the %s module" msgstr "%s modülünün tam sürümüne gidin" -#: ../src/libs/modulegroups.c:1556 ../src/libs/modulegroups.c:1641 -#: ../src/libs/modulegroups.c:1677 ../src/libs/modulegroups.c:1727 -#: ../src/libs/modulegroups.c:1817 +#: ../src/libs/modulegroups.c:1538 ../src/libs/modulegroups.c:1624 +#: ../src/libs/modulegroups.c:1660 ../src/libs/modulegroups.c:1710 +#: ../src/libs/modulegroups.c:1801 msgctxt "modulegroup" msgid "base" msgstr "temel" -#: ../src/libs/modulegroups.c:1575 +#: ../src/libs/modulegroups.c:1557 msgctxt "modulegroup" msgid "tone" msgstr "ton" -#: ../src/libs/modulegroups.c:1584 ../src/libs/modulegroups.c:1691 -#: ../src/libs/modulegroups.c:1741 +#: ../src/libs/modulegroups.c:1566 ../src/libs/modulegroups.c:1674 +#: ../src/libs/modulegroups.c:1724 msgctxt "modulegroup" msgid "color" msgstr "renk" -#: ../src/libs/modulegroups.c:1599 ../src/libs/modulegroups.c:1699 -#: ../src/libs/modulegroups.c:1746 +#: ../src/libs/modulegroups.c:1582 ../src/libs/modulegroups.c:1682 +#: ../src/libs/modulegroups.c:1730 msgctxt "modulegroup" msgid "correct" msgstr "uygun" -#: ../src/libs/modulegroups.c:1617 ../src/libs/modulegroups.c:1711 -#: ../src/libs/modulegroups.c:1758 ../src/libs/modulegroups.c:2321 +#: ../src/libs/modulegroups.c:1600 ../src/libs/modulegroups.c:1694 +#: ../src/libs/modulegroups.c:1742 ../src/libs/modulegroups.c:2305 msgctxt "modulegroup" msgid "effect" msgstr "etki" -#: ../src/libs/modulegroups.c:1635 +#: ../src/libs/modulegroups.c:1618 msgid "modules: all" msgstr "modüller: tümü" -#: ../src/libs/modulegroups.c:1656 +#: ../src/libs/modulegroups.c:1639 msgctxt "modulegroup" msgid "grading" msgstr "sınıflandırma" -#: ../src/libs/modulegroups.c:1664 ../src/libs/modulegroups.c:2325 +#: ../src/libs/modulegroups.c:1647 ../src/libs/modulegroups.c:2309 msgctxt "modulegroup" msgid "effects" msgstr "etkiler" -#: ../src/libs/modulegroups.c:1672 +#: ../src/libs/modulegroups.c:1655 msgid "workflow: beginner" msgstr "iş akışı: başlangıç" -#: ../src/libs/modulegroups.c:1721 +#: ../src/libs/modulegroups.c:1704 msgid "workflow: display-referred" msgstr "iş akışı: ekran yönlendirmeli" -#: ../src/libs/modulegroups.c:1773 +#: ../src/libs/modulegroups.c:1757 msgid "search only" msgstr "sadece ara" -#: ../src/libs/modulegroups.c:1779 ../src/libs/modulegroups.c:2090 -#: ../src/libs/modulegroups.c:2599 +#: ../src/libs/modulegroups.c:1763 ../src/libs/modulegroups.c:2074 +#: ../src/libs/modulegroups.c:2583 msgctxt "modulegroup" msgid "deprecated" msgstr "kullanımdan kaldırıldı" -#: ../src/libs/modulegroups.c:1792 +#: ../src/libs/modulegroups.c:1776 msgid "previous config" msgstr "önceki yapılandırma" -#: ../src/libs/modulegroups.c:1793 +#: ../src/libs/modulegroups.c:1777 msgid "previous layout" msgstr "önceki düzen" -#: ../src/libs/modulegroups.c:1797 +#: ../src/libs/modulegroups.c:1781 msgid "previous config with new layout" msgstr "yeni düzen ile önceki yapılandırma" -#: ../src/libs/modulegroups.c:1957 ../src/libs/modulegroups.c:2472 -#: ../src/libs/modulegroups.c:2484 +#: ../src/libs/modulegroups.c:1941 ../src/libs/modulegroups.c:2456 +#: ../src/libs/modulegroups.c:2468 msgid "remove this widget" msgstr "bu araç`ı kaldır" -#: ../src/libs/modulegroups.c:2107 ../src/libs/modulegroups.c:2347 +#: ../src/libs/modulegroups.c:2091 ../src/libs/modulegroups.c:2331 msgid "remove this module" msgstr "bu modülü kaldır" #. does it belong to recommended modules ? -#: ../src/libs/modulegroups.c:2316 +#: ../src/libs/modulegroups.c:2300 msgid "base" msgstr "temel" -#: ../src/libs/modulegroups.c:2319 +#: ../src/libs/modulegroups.c:2303 msgid "tone" msgstr "ton" -#: ../src/libs/modulegroups.c:2322 +#: ../src/libs/modulegroups.c:2306 msgid "technical" msgstr "teknik" -#: ../src/libs/modulegroups.c:2323 +#: ../src/libs/modulegroups.c:2307 msgid "grading" msgstr "sınıflandırma" -#: ../src/libs/modulegroups.c:2329 ../src/libs/modulegroups.c:2337 +#: ../src/libs/modulegroups.c:2313 ../src/libs/modulegroups.c:2321 msgid "add this module" msgstr "bu modülü ekle" #. show the submenu with all the modules -#: ../src/libs/modulegroups.c:2359 ../src/libs/modulegroups.c:2559 +#: ../src/libs/modulegroups.c:2343 ../src/libs/modulegroups.c:2543 msgid "all available modules" msgstr "tüm kullanılabilir modüller" -#: ../src/libs/modulegroups.c:2367 +#: ../src/libs/modulegroups.c:2351 msgid "add module" msgstr "modül ekle" -#: ../src/libs/modulegroups.c:2372 +#: ../src/libs/modulegroups.c:2356 msgid "remove module" msgstr "modülü kaldır" -#: ../src/libs/modulegroups.c:2478 +#: ../src/libs/modulegroups.c:2462 msgid "header needed for other widgets" msgstr "diğer gereç'ler için gerekli başlık" -#: ../src/libs/modulegroups.c:2494 ../src/libs/modulegroups.c:2501 +#: ../src/libs/modulegroups.c:2478 ../src/libs/modulegroups.c:2485 msgid "add this widget" msgstr "bu araç'ı ekle" -#: ../src/libs/modulegroups.c:2514 +#: ../src/libs/modulegroups.c:2498 msgid "currently invisible" msgstr "şu anda görünmez" -#: ../src/libs/modulegroups.c:2543 +#: ../src/libs/modulegroups.c:2527 msgid "add widget" msgstr "araç ekle" -#: ../src/libs/modulegroups.c:2548 +#: ../src/libs/modulegroups.c:2532 msgid "remove widget" msgstr "araç`ı kaldır" -#: ../src/libs/modulegroups.c:2653 +#: ../src/libs/modulegroups.c:2637 msgid "show all history modules" msgstr "tüm geçmiş modüllerini göster" -#: ../src/libs/modulegroups.c:2656 ../src/libs/modulegroups.c:3834 +#: ../src/libs/modulegroups.c:2640 ../src/libs/modulegroups.c:3836 msgid "" "show modules that are present in the history stack, regardless of whether or " "not they are currently enabled" @@ -23047,7 +23743,7 @@ "şu anda etkin olup olmadıklarına bakılmaksızın geçmiş yığınında bulunan " "modülleri göster" -#: ../src/libs/modulegroups.c:2747 ../src/libs/modulegroups.c:2816 +#: ../src/libs/modulegroups.c:2731 ../src/libs/modulegroups.c:2823 msgid "" "the following modules are deprecated because they have internal design " "mistakes that can't be corrected and alternative modules that correct them.\n" @@ -23057,19 +23753,19 @@ "alternatif modüller olduğu için kullanımdan kaldırılmıştır.\n" "sonraki sürümde yeni düzenlemeler için kaldırılacaklar." -#: ../src/libs/modulegroups.c:2775 ../src/libs/modulegroups.c:2776 +#: ../src/libs/modulegroups.c:2782 ../src/libs/modulegroups.c:2783 msgid "quick access panel" msgstr "hızlı erişim paneli" -#: ../src/libs/modulegroups.c:2786 +#: ../src/libs/modulegroups.c:2793 msgid "show only active modules" msgstr "yalnızca etkin modülleri göster" -#: ../src/libs/modulegroups.c:2787 +#: ../src/libs/modulegroups.c:2794 msgid "active modules" msgstr "etkin modüller" -#: ../src/libs/modulegroups.c:2792 +#: ../src/libs/modulegroups.c:2799 msgid "" "presets\n" "ctrl+click to manage" @@ -23077,143 +23773,147 @@ "ön ayarlar\n" "yönetmek için ctrl+tıkla" -#: ../src/libs/modulegroups.c:2798 +#: ../src/libs/modulegroups.c:2805 msgid "search modules" msgstr "arama modülleri" -#: ../src/libs/modulegroups.c:2799 +#: ../src/libs/modulegroups.c:2806 msgid "search modules by name or tag" msgstr "ada veya etikete göre modülleri ara" -#: ../src/libs/modulegroups.c:2809 +#: ../src/libs/modulegroups.c:2816 msgid "clear text" msgstr "metni temizle" -#: ../src/libs/modulegroups.c:3051 +#: ../src/libs/modulegroups.c:3056 msgid "basic icon" msgstr "temel simge" -#: ../src/libs/modulegroups.c:3061 +#: ../src/libs/modulegroups.c:3066 msgid "active icon" msgstr "etkin simge" -#: ../src/libs/modulegroups.c:3071 +#: ../src/libs/modulegroups.c:3076 msgid "color icon" msgstr "renk simgesi" -#: ../src/libs/modulegroups.c:3081 +#: ../src/libs/modulegroups.c:3086 msgid "correct icon" msgstr "uygun simgesi" -#: ../src/libs/modulegroups.c:3091 +#: ../src/libs/modulegroups.c:3096 msgid "effect icon" msgstr "etki simgesi" -#: ../src/libs/modulegroups.c:3101 +#: ../src/libs/modulegroups.c:3106 msgid "favorites icon" msgstr "favoriler simgesi" -#: ../src/libs/modulegroups.c:3111 +#: ../src/libs/modulegroups.c:3116 msgid "tone icon" msgstr "ton simgesi" -#: ../src/libs/modulegroups.c:3121 +#: ../src/libs/modulegroups.c:3126 msgid "grading icon" msgstr "sınıflandırma simgesi" -#: ../src/libs/modulegroups.c:3131 +#: ../src/libs/modulegroups.c:3136 msgid "technical icon" msgstr "teknik simgesi" -#: ../src/libs/modulegroups.c:3164 +#: ../src/libs/modulegroups.c:3169 msgid "quick access panel widgets" msgstr "hızlı erişim paneli araç'ı" -#: ../src/libs/modulegroups.c:3166 +#: ../src/libs/modulegroups.c:3171 msgid "quick access" msgstr "hızlı erişim" -#: ../src/libs/modulegroups.c:3186 +#: ../src/libs/modulegroups.c:3191 msgid "add widget to the quick access panel" msgstr "hızlı erişim paneline araç ekle" -#: ../src/libs/modulegroups.c:3218 +#: ../src/libs/modulegroups.c:3223 msgid "group icon" msgstr "grup simgesi" -#: ../src/libs/modulegroups.c:3227 +#: ../src/libs/modulegroups.c:3232 msgid "group name" msgstr "grup ismi" -#: ../src/libs/modulegroups.c:3238 +#: ../src/libs/modulegroups.c:3243 msgid "remove group" msgstr "grubu kaldır" -#: ../src/libs/modulegroups.c:3264 +#: ../src/libs/modulegroups.c:3269 msgid "move group to the left" msgstr "grubu sola taşı" -#: ../src/libs/modulegroups.c:3272 +#: ../src/libs/modulegroups.c:3277 msgid "add module to the group" msgstr "gruba modül ekle" -#: ../src/libs/modulegroups.c:3283 +#: ../src/libs/modulegroups.c:3288 msgid "move group to the right" msgstr "grubu sağa kaydır" -#: ../src/libs/modulegroups.c:3463 +#: ../src/libs/modulegroups.c:3464 msgid "rename preset" msgstr "ön ayarı yeniden adlandır" -#: ../src/libs/modulegroups.c:3470 +#: ../src/libs/modulegroups.c:3467 +msgid "_rename" +msgstr "_yeniden adlandır" + +#: ../src/libs/modulegroups.c:3473 msgid "new preset name:" msgstr "yeni ön ayar adı:" -#: ../src/libs/modulegroups.c:3471 +#: ../src/libs/modulegroups.c:3474 msgid "a preset with this name already exists!" msgstr "bu ada sahip bir ön ayar zaten var!" -#: ../src/libs/modulegroups.c:3804 +#: ../src/libs/modulegroups.c:3806 msgid "preset: " msgstr "ön ayar: " -#: ../src/libs/modulegroups.c:3811 +#: ../src/libs/modulegroups.c:3813 msgid "remove the preset" msgstr "ön ayarı kaldır" -#: ../src/libs/modulegroups.c:3813 +#: ../src/libs/modulegroups.c:3815 msgid "duplicate the preset" msgstr "ön ayarı çoğalt" -#: ../src/libs/modulegroups.c:3815 +#: ../src/libs/modulegroups.c:3817 msgid "rename the preset" msgstr "ön ayarı yeniden adlandır" -#: ../src/libs/modulegroups.c:3817 +#: ../src/libs/modulegroups.c:3819 msgid "create a new empty preset" msgstr "yeni bir boş ön ayar oluştur" -#: ../src/libs/modulegroups.c:3825 +#: ../src/libs/modulegroups.c:3827 msgid "show search line" msgstr "arama satırını göster" -#: ../src/libs/modulegroups.c:3828 +#: ../src/libs/modulegroups.c:3830 msgid "show quick access panel" msgstr "hızlı erişim panelini göster" -#: ../src/libs/modulegroups.c:3831 +#: ../src/libs/modulegroups.c:3833 msgid "show all history modules in active group" msgstr "etkin gruptaki tüm geçmiş modüllerini göster" -#: ../src/libs/modulegroups.c:3843 +#: ../src/libs/modulegroups.c:3845 msgid "auto-apply this preset" msgstr "bu ön ayarı otomatik olarak uygula" -#: ../src/libs/modulegroups.c:3858 +#: ../src/libs/modulegroups.c:3860 msgid "module groups" msgstr "modül grupları" -#: ../src/libs/modulegroups.c:3875 +#: ../src/libs/modulegroups.c:3877 msgid "" "this is a built-in read-only preset. duplicate it if you want to make changes" msgstr "" @@ -23224,16 +23924,16 @@ msgid "navigation" msgstr "gezinme" -#: ../src/libs/navigation.c:111 ../src/libs/navigation.c:191 +#: ../src/libs/navigation.c:112 ../src/libs/navigation.c:194 msgctxt "navigationbox" msgid "fill" msgstr "dolgu" -#: ../src/libs/navigation.c:114 ../src/libs/navigation.c:189 +#: ../src/libs/navigation.c:115 ../src/libs/navigation.c:192 msgid "small" msgstr "küçük" -#: ../src/libs/navigation.c:151 +#: ../src/libs/navigation.c:154 msgid "" "navigation\n" "click or drag to position zoomed area in center view" @@ -23242,35 +23942,35 @@ "yakınlaştırılmış alanı orta görünümde konumlandırmak için tıklayın veya " "sürükleyin" -#: ../src/libs/navigation.c:173 +#: ../src/libs/navigation.c:176 msgid "hide navigation thumbnail" msgstr "gezinme küçük resmini gizle" -#: ../src/libs/navigation.c:187 +#: ../src/libs/navigation.c:190 msgid "image zoom level" msgstr "görüntü yakınlaştırma düzeyi" -#: ../src/libs/navigation.c:192 +#: ../src/libs/navigation.c:195 msgid "50%" msgstr "%50" -#: ../src/libs/navigation.c:193 +#: ../src/libs/navigation.c:196 msgid "100%" msgstr "%100" -#: ../src/libs/navigation.c:194 +#: ../src/libs/navigation.c:197 msgid "200%" msgstr "%200" -#: ../src/libs/navigation.c:195 +#: ../src/libs/navigation.c:198 msgid "400%" msgstr "%400" -#: ../src/libs/navigation.c:196 +#: ../src/libs/navigation.c:199 msgid "800%" msgstr "%800" -#: ../src/libs/navigation.c:197 +#: ../src/libs/navigation.c:200 msgid "1600%" msgstr "%1600" @@ -23514,15 +24214,15 @@ msgid "print with current settings" msgstr "mevcut ayarlarla yazdır" -#: ../src/libs/select.c:136 +#: ../src/libs/select.c:137 msgid "select all images in current collection" msgstr "mevcut koleksiyondaki tüm görüntüleri seç" -#: ../src/libs/select.c:140 +#: ../src/libs/select.c:141 msgid "clear selection" msgstr "seçimi temizle" -#: ../src/libs/select.c:144 +#: ../src/libs/select.c:145 msgid "" "select unselected images\n" "in current collection" @@ -23530,7 +24230,7 @@ "seçilmemiş görüntüleri seç\n" "mevcut koleksiyonda" -#: ../src/libs/select.c:148 +#: ../src/libs/select.c:149 msgid "" "select all images which are in the same\n" "film roll as the selected images" @@ -23538,7 +24238,7 @@ "aynı olan tüm görüntüleri seçin\n" "seçilen görüntüler olarak film rulosu" -#: ../src/libs/select.c:152 +#: ../src/libs/select.c:153 msgid "" "select untouched images in\n" "current collection" @@ -23558,29 +24258,33 @@ msgid "create" msgstr "oluştur" -#: ../src/libs/snapshots.c:92 +#: ../src/libs/snapshots.c:88 msgid "snapshots" msgstr "ekran görüntüleri" -#: ../src/libs/snapshots.c:141 +#: ../src/libs/snapshots.c:137 msgctxt "snapshot sign" msgid "S" msgstr "S" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:662 +msgid "snapshots for removed image have been deleted" +msgstr "kaldırılan görselin anlık görüntüleri silindi" + +#: ../src/libs/snapshots.c:703 #, c-format msgid "↗ %s '%s'" msgstr "↗ %s '%s'" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:703 msgid "this snapshot was taken from" msgstr "bu anlık görüntü alındı" -#: ../src/libs/snapshots.c:663 +#: ../src/libs/snapshots.c:742 msgid "take snapshot" msgstr "ekran görüntüsü yakala" -#: ../src/libs/snapshots.c:665 +#: ../src/libs/snapshots.c:744 msgid "" "take snapshot to compare with another image or the same image at another " "stage of development" @@ -23588,7 +24292,7 @@ "geliştirmenin başka bir aşamasında başka bir görüntüyle veya aynı görüntüyle " "karşılaştırmak için anlık görüntü alın" -#: ../src/libs/snapshots.c:734 +#: ../src/libs/snapshots.c:790 msgid "toggle last snapshot" msgstr "son anlık görüntüyü aç/kapat" @@ -23605,7 +24309,11 @@ msgstr[0] "%d tarzını gerçekten kaldırmak istiyor musunuz?" msgstr[1] "%d tarzları gerçekten kaldırmak istiyor musunuz?" -#: ../src/libs/styles.c:444 ../src/libs/styles.c:627 +#: ../src/libs/styles.c:441 ../src/libs/styles.c:626 +msgid "_overwrite" +msgstr "_üzerine yaz" + +#: ../src/libs/styles.c:446 ../src/libs/styles.c:631 #, c-format msgid "" "style `%s' already exists.\n" @@ -23614,24 +24322,24 @@ "`%s' tarzı zaten var.\n" "mevcut tarzın üzerine yazmak istiyor musunuz?\n" -#: ../src/libs/styles.c:446 ../src/libs/styles.c:629 +#: ../src/libs/styles.c:448 ../src/libs/styles.c:633 msgid "apply this option to all existing styles" msgstr "bu seçeneği mevcut tüm tarzlara uygula" -#: ../src/libs/styles.c:509 +#: ../src/libs/styles.c:511 #, c-format msgid "style %s was successfully exported" msgstr "%s tarzı başarıyla dışa aktarıldı" -#: ../src/libs/styles.c:526 +#: ../src/libs/styles.c:528 msgid "select style" msgstr "tarz seç" -#: ../src/libs/styles.c:536 +#: ../src/libs/styles.c:538 msgid "darktable style files" msgstr "darktable tarzı dosyalar" -#: ../src/libs/styles.c:815 +#: ../src/libs/styles.c:819 msgid "" "available styles,\n" "double-click to apply" @@ -23639,73 +24347,73 @@ "kullanılabilir stiller,\n" "uygulamak için çift tıklayın" -#: ../src/libs/styles.c:824 ../src/libs/styles.c:825 +#: ../src/libs/styles.c:828 ../src/libs/styles.c:829 msgid "filter style names" msgstr "tarz adlarını filtrele" -#: ../src/libs/styles.c:837 +#: ../src/libs/styles.c:841 msgid "create duplicate" msgstr "kopya oluştur" -#: ../src/libs/styles.c:844 +#: ../src/libs/styles.c:848 msgid "creates a duplicate of the image before applying style" msgstr "tarzı uygulamadan önce görüntünün bir kopyasını oluşturur" -#: ../src/libs/styles.c:862 +#: ../src/libs/styles.c:866 msgid "create..." msgstr "oluştur..." -#: ../src/libs/styles.c:864 +#: ../src/libs/styles.c:868 msgid "create styles from history stack of selected images" msgstr "seçilen görüntülerin geçmiş yığınından tarzlar oluşturun" -#: ../src/libs/styles.c:869 ../src/libs/tagging.c:2252 +#: ../src/libs/styles.c:873 ../src/libs/tagging.c:2283 msgid "edit..." msgstr "düzenle..." -#: ../src/libs/styles.c:871 +#: ../src/libs/styles.c:875 msgid "edit the selected styles in list above" msgstr "yukarıdaki listede seçilen tarzları düzenle" -#: ../src/libs/styles.c:878 +#: ../src/libs/styles.c:882 msgid "removes the selected styles in list above" msgstr "yukarıdaki listede seçilen tarzları kaldırır" -#: ../src/libs/styles.c:885 +#: ../src/libs/styles.c:889 msgid "import styles from a style files" msgstr "tarz dosyalarından tarzları içe aktar" -#: ../src/libs/styles.c:892 +#: ../src/libs/styles.c:896 msgid "export the selected styles into a style files" msgstr "seçili tarzları stil dosyalarına aktar" -#: ../src/libs/styles.c:899 +#: ../src/libs/styles.c:903 msgid "apply the selected styles in list above to selected images" msgstr "yukarıdaki listede seçilen tarzları seçilen görüntülere uygula" -#: ../src/libs/tagging.c:105 +#: ../src/libs/tagging.c:109 msgid "tagging" msgstr "etiketleme" -#: ../src/libs/tagging.c:1255 +#: ../src/libs/tagging.c:1258 msgid "attach tag to all" msgstr "hepsine etiket ekle" -#: ../src/libs/tagging.c:1263 ../src/libs/tagging.c:2225 +#: ../src/libs/tagging.c:1266 ../src/libs/tagging.c:2256 msgid "detach tag" msgstr "etiketi ayır" -#: ../src/libs/tagging.c:1483 +#: ../src/libs/tagging.c:1486 msgid "delete tag?" msgstr "etiketi sil?" -#: ../src/libs/tagging.c:1490 ../src/libs/tagging.c:1578 -#: ../src/libs/tagging.c:1789 ../src/libs/tagging.c:2063 +#: ../src/libs/tagging.c:1496 ../src/libs/tagging.c:1587 +#: ../src/libs/tagging.c:1814 ../src/libs/tagging.c:2093 #, c-format msgid "selected: %s" msgstr "seçildi: %s" -#: ../src/libs/tagging.c:1497 +#: ../src/libs/tagging.c:1503 #, c-format msgid "" "do you really want to delete the tag `%s'?\n" @@ -23720,73 +24428,73 @@ "%s' etiketini gerçekten silmek istiyor musunuz?\n" "%d görüntülere bu etiket atandı!" -#: ../src/libs/tagging.c:1531 +#: ../src/libs/tagging.c:1537 #, c-format msgid "tag %s removed" msgstr "%s etiketi kaldırıldı" -#: ../src/libs/tagging.c:1571 +#: ../src/libs/tagging.c:1577 msgid "delete node?" msgstr "düğümü sil?" -#: ../src/libs/tagging.c:1585 +#: ../src/libs/tagging.c:1594 #, c-format msgid "<u>%d</u> tag will be deleted" msgid_plural "<u>%d</u> tags will be deleted" msgstr[0] "<u>%d</u> etiketi silinecek" msgstr[1] "<u>%d</u> etiketleri silinecek" -#: ../src/libs/tagging.c:1590 ../src/libs/tagging.c:1801 -#: ../src/libs/tagging.c:2075 +#: ../src/libs/tagging.c:1599 ../src/libs/tagging.c:1826 +#: ../src/libs/tagging.c:2105 #, c-format msgid "<u>%d</u> image will be updated" msgid_plural "<u>%d</u> images will be updated" msgstr[0] "<u>%d</u> görüntü güncellenecek" msgstr[1] "<u>%d</u> görüntüler güncellenecek" -#: ../src/libs/tagging.c:1616 +#: ../src/libs/tagging.c:1625 #, c-format msgid "%d tags removed" msgstr "%d etiket kaldırıldı" -#: ../src/libs/tagging.c:1652 +#: ../src/libs/tagging.c:1668 msgid "create tag" msgstr "etiket oluştur" -#: ../src/libs/tagging.c:1662 ../src/libs/tagging.c:1809 +#: ../src/libs/tagging.c:1681 ../src/libs/tagging.c:1834 msgid "name: " msgstr "isim: " -#: ../src/libs/tagging.c:1674 +#: ../src/libs/tagging.c:1696 #, c-format msgid "add to: \"%s\" " msgstr "ekle: \"%s\" " -#: ../src/libs/tagging.c:1680 ../src/libs/tagging.c:1824 +#: ../src/libs/tagging.c:1702 ../src/libs/tagging.c:1851 msgid "category" msgstr "kategori" -#: ../src/libs/tagging.c:1689 ../src/libs/tagging.c:1833 +#: ../src/libs/tagging.c:1711 ../src/libs/tagging.c:1860 msgid "synonyms: " msgstr "eş anlamlı: " -#: ../src/libs/tagging.c:1706 ../src/libs/tagging.c:1855 -#: ../src/libs/tagging.c:2097 +#: ../src/libs/tagging.c:1728 ../src/libs/tagging.c:1882 +#: ../src/libs/tagging.c:2128 msgid "empty tag is not allowed, aborting" msgstr "boş etikete izin verilmiyor, iptal ediliyor" -#: ../src/libs/tagging.c:1717 +#: ../src/libs/tagging.c:1739 msgid "tag name already exists. aborting." msgstr "etiket adı zaten var. iptal ediliyor." -#: ../src/libs/tagging.c:1796 ../src/libs/tagging.c:2070 +#: ../src/libs/tagging.c:1821 ../src/libs/tagging.c:2100 #, c-format msgid "<u>%d</u> tag will be updated" msgid_plural "<u>%d</u> tags will be updated" msgstr[0] "<u>%d</u> etiketi güncellenecek" msgstr[1] "<u>%d</u> etiketleri güncellenecek" -#: ../src/libs/tagging.c:1857 +#: ../src/libs/tagging.c:1884 msgid "" "'|' character is not allowed for renaming tag.\n" "to modify the hierarchy use rename path instead. Aborting." @@ -23795,100 +24503,100 @@ "hiyerarşiyi değiştirmek için bunun yerine yeniden adlandırma yolunu " "kullanın. İptal ediliyor." -#: ../src/libs/tagging.c:1896 ../src/libs/tagging.c:2004 +#: ../src/libs/tagging.c:1923 ../src/libs/tagging.c:2031 #, c-format msgid "at least one new tag name (%s) already exists, aborting" msgstr "en az bir yeni etiket adı (%s) zaten var, iptal ediliyor" -#: ../src/libs/tagging.c:2056 +#: ../src/libs/tagging.c:2083 msgid "change path" msgstr "yolu değiştir" -#: ../src/libs/tagging.c:2099 +#: ../src/libs/tagging.c:2130 msgid "'|' misplaced, empty tag is not allowed, aborting" msgstr "'|' yanlış yerleştirilmiş, boş etikete izin verilmiyor, iptal ediliyor" -#: ../src/libs/tagging.c:2195 +#: ../src/libs/tagging.c:2226 #, c-format msgid "tag %s created" msgstr "%s etiketi oluşturuldu" -#: ../src/libs/tagging.c:2221 +#: ../src/libs/tagging.c:2252 msgid "attach tag" msgstr "etiket ekle" -#: ../src/libs/tagging.c:2234 +#: ../src/libs/tagging.c:2265 msgid "create tag..." msgstr "etiket oluştur..." -#: ../src/libs/tagging.c:2240 +#: ../src/libs/tagging.c:2271 msgid "delete tag" msgstr "etiketi sil" -#: ../src/libs/tagging.c:2247 +#: ../src/libs/tagging.c:2278 msgid "delete node" msgstr "düğümü sil" -#: ../src/libs/tagging.c:2260 +#: ../src/libs/tagging.c:2291 msgid "change path..." msgstr "yolu değiştir..." -#: ../src/libs/tagging.c:2270 +#: ../src/libs/tagging.c:2301 msgid "set as a tag" msgstr "etiket olarak ayarla" -#: ../src/libs/tagging.c:2281 +#: ../src/libs/tagging.c:2312 msgid "copy to entry" msgstr "girişe kopyala" -#: ../src/libs/tagging.c:2298 +#: ../src/libs/tagging.c:2329 msgid "go to tag collection" msgstr "etiket koleksiyonuna git" -#: ../src/libs/tagging.c:2304 +#: ../src/libs/tagging.c:2335 msgid "go back to work" msgstr "çalışmaya geri dön" -#: ../src/libs/tagging.c:2461 +#: ../src/libs/tagging.c:2492 #, c-format msgid "%s" msgstr "%s" -#: ../src/libs/tagging.c:2462 +#: ../src/libs/tagging.c:2493 msgid "(private)" msgstr "(özel)" -#: ../src/libs/tagging.c:2488 +#: ../src/libs/tagging.c:2519 msgid "select a keyword file" msgstr "bir anahtar kelime dosyası seçin" -#: ../src/libs/tagging.c:2501 +#: ../src/libs/tagging.c:2532 msgid "error importing tags" msgstr "etiketleri içe aktarma hatası" -#: ../src/libs/tagging.c:2503 +#: ../src/libs/tagging.c:2534 #, c-format msgid "%zd tags imported" msgstr "%zd etiket içe aktarıldı" -#: ../src/libs/tagging.c:2524 +#: ../src/libs/tagging.c:2555 msgid "select file to export to" msgstr "dışa aktarılacak dosyayı seçin" -#: ../src/libs/tagging.c:2538 +#: ../src/libs/tagging.c:2569 msgid "error exporting tags" msgstr "etiketleri dışa aktarma hatası" -#: ../src/libs/tagging.c:2540 +#: ../src/libs/tagging.c:2571 #, c-format msgid "%zd tags exported" msgstr "%zd etiket dışa aktarıldı" -#: ../src/libs/tagging.c:2964 +#: ../src/libs/tagging.c:2995 msgid "drop to root" msgstr "köke bırak" -#: ../src/libs/tagging.c:3100 +#: ../src/libs/tagging.c:3131 msgid "" "attached tags\n" "press Delete or double-click to detach\n" @@ -23900,47 +24608,47 @@ "ekli etiketteki diğer işlemler için sağ tıklayın,\n" "Girdiye odak vermek için sekme" -#: ../src/libs/tagging.c:3111 +#: ../src/libs/tagging.c:3142 msgid "attach" msgstr "ekleme" -#: ../src/libs/tagging.c:3112 +#: ../src/libs/tagging.c:3143 msgid "attach tag to all selected images" msgstr "seçili tüm görüntülere etiket ekle" -#: ../src/libs/tagging.c:3115 +#: ../src/libs/tagging.c:3146 msgid "detach" msgstr "ayırma" -#: ../src/libs/tagging.c:3116 +#: ../src/libs/tagging.c:3147 msgid "detach tag from all selected images" msgstr "seçili tüm görüntülerden etiketi ayır" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "toggle list with / without hierarchy" msgstr "hiyerarşili / hiyerarşisiz geçiş listesi" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "hide" msgstr "gizle" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "toggle sort by name or by count" msgstr "ada veya sayıya göre sıralamayı değiştir" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "sort" msgstr "sırala" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "toggle show or not darktable tags" msgstr "darktable etiketlerini göster veya gösterme arasında geçiş yap" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "dttags" msgstr "dtetiketleri" -#: ../src/libs/tagging.c:3149 +#: ../src/libs/tagging.c:3180 msgid "" "enter tag name\n" "press Enter to create a new tag and attach it on selected images\n" @@ -23952,11 +24660,11 @@ "ilk eşleşen etikete gitmek için Sekme veya Aşağı tuşuna basın\n" "eklenen ilk kullanıcı etiketini seçmek için shift+Tab tuşlarına basın" -#: ../src/libs/tagging.c:3160 ../src/libs/tagging.c:3166 +#: ../src/libs/tagging.c:3191 ../src/libs/tagging.c:3197 msgid "clear entry" msgstr "girdiyi temizle" -#: ../src/libs/tagging.c:3213 +#: ../src/libs/tagging.c:3244 msgid "" "tag dictionary,\n" "Enter or double-click to attach selected tag on selected images\n" @@ -23972,7 +24680,7 @@ "seçili etiketteki diğer işlemler için sağ tıklayın\n" "girişe odak vermek için shift+Sekme" -#: ../src/libs/tagging.c:3248 +#: ../src/libs/tagging.c:3279 msgid "" "create a new tag with the\n" "name you entered" @@ -23980,42 +24688,42 @@ "ile yeni bir etiket oluşturun\n" "girdiğin isim" -#: ../src/libs/tagging.c:3251 +#: ../src/libs/tagging.c:3282 msgid "import tags from a Lightroom keyword file" msgstr "etiketleri bir Lightroom anahtar kelime dosyasından içe aktarın" -#: ../src/libs/tagging.c:3254 +#: ../src/libs/tagging.c:3285 msgid "export all tags to a Lightroom keyword file" msgstr "tüm etiketleri bir Lightroom anahtar kelime dosyasına aktarın" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "toggle list / tree view" msgstr "liste / ağaç görünümü arasında geçiş yap" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "tree" msgstr "ağaç" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "toggle list with / without suggestion" msgstr "önerili / önerisiz geçiş listesi" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "suggestion" msgstr "öneri" -#: ../src/libs/tagging.c:3282 +#: ../src/libs/tagging.c:3313 msgid "redo last tag" msgstr "son etiketi yeniden yap" -#: ../src/libs/tagging.c:3365 +#: ../src/libs/tagging.c:3396 msgid "" "tag shortcut is not active with tag tree view. please switch to list view" msgstr "" "etiket ağacı görünümünde etiket kısayolu etkin değil. lütfen liste " "görünümüne geçin" -#: ../src/libs/tagging.c:3469 +#: ../src/libs/tagging.c:3500 msgid "tagging settings" msgstr "etiketleme ayarları" @@ -24032,27 +24740,6 @@ msgid "toggle color label of selected images" msgstr "seçilen resimlerin renk etiketini aç/kapat" -#: ../src/libs/tools/darktable.c:284 -#, c-format -msgid "copyright (c) the authors 2009-%s" -msgstr "telif hakkı (c) yazarlar 2009-%s" - -#: ../src/libs/tools/darktable.c:288 -msgid "organize and develop images from digital cameras" -msgstr "dijital kameralardan görüntüler düzenleme ve geliştirme" - -#: ../src/libs/tools/darktable.c:300 -msgid "all those of you that made previous releases possible" -msgstr "önceki yayınları mümkün kılan hepiniz" - -#: ../src/libs/tools/darktable.c:305 -msgid "and..." -msgstr "ve..." - -#: ../src/libs/tools/darktable.c:307 -msgid "translator-credits" -msgstr "serkan ÖNDER <serkanonder@outlook.com> 2022" - #: ../src/libs/tools/filmstrip.c:45 msgid "filmstrip" msgstr "film şeridi" @@ -24373,35 +25060,35 @@ msgid "click to enter culling layout in dynamic mode." msgstr "dinamik modda ayırma düzenine girmek için tıklayın." -#: ../src/libs/tools/lighttable.c:368 +#: ../src/libs/tools/lighttable.c:365 msgid "toggle filemanager layout" msgstr "dosya yöneticisi düzenini değiştir" -#: ../src/libs/tools/lighttable.c:371 +#: ../src/libs/tools/lighttable.c:368 msgid "click to enter filemanager layout." msgstr "dosya yöneticisi düzenine girmek için tıklayın." -#: ../src/libs/tools/lighttable.c:377 +#: ../src/libs/tools/lighttable.c:374 msgid "toggle zoomable lighttable layout" msgstr "yakınlaştırılabilir ışık tablosu düzenini değiştir" -#: ../src/libs/tools/lighttable.c:380 +#: ../src/libs/tools/lighttable.c:377 msgid "click to enter zoomable lighttable layout." msgstr "yakınlaştırılabilir ışık masası düzenine girmek için tıklayın." -#: ../src/libs/tools/lighttable.c:386 +#: ../src/libs/tools/lighttable.c:383 msgid "toggle culling mode" msgstr "toplama modu arasında geçiş yap" -#: ../src/libs/tools/lighttable.c:394 +#: ../src/libs/tools/lighttable.c:391 msgid "toggle culling dynamic mode" msgstr "toplama dinamik modunu aç/kapat" -#: ../src/libs/tools/lighttable.c:441 +#: ../src/libs/tools/lighttable.c:438 msgid "toggle culling zoom mode" msgstr "toplama yakınlaştırma modunu aç/kapat" -#: ../src/libs/tools/lighttable.c:443 +#: ../src/libs/tools/lighttable.c:440 msgid "exit current layout" msgstr "mevcut düzenden çık" @@ -24482,7 +25169,7 @@ msgid "Lua options" msgstr "Lua seçenekleri" -#: ../src/views/darkroom.c:607 +#: ../src/views/darkroom.c:503 #, c-format msgid "" "darktable could not load `%s', switching to lighttable now.\n" @@ -24505,62 +25192,62 @@ "düşünün\n" "https://github.com/darktable-org/darktable adresinde" -#: ../src/views/darkroom.c:625 +#: ../src/views/darkroom.c:521 #, c-format msgctxt "darkroom" msgid "loading `%s' ..." msgstr "`%s' yükleniyor..." -#: ../src/views/darkroom.c:749 ../src/views/darkroom.c:2496 +#: ../src/views/darkroom.c:668 ../src/views/darkroom.c:2335 msgid "gamut check" msgstr "gamut kontrolü" -#: ../src/views/darkroom.c:749 +#: ../src/views/darkroom.c:668 msgid "soft proof" msgstr "yumuşak prova" #. fail :( -#: ../src/views/darkroom.c:787 ../src/views/print.c:356 +#: ../src/views/darkroom.c:708 ../src/views/print.c:356 msgid "no image to open!" msgstr "açılacak görüntü yok!" -#: ../src/views/darkroom.c:1331 +#: ../src/views/darkroom.c:1232 msgid "no user-defined presets for favorite modules were found" msgstr "favori modüller için kullanıcı tanımlı ön ayar bulunamadı" -#: ../src/views/darkroom.c:1476 +#: ../src/views/darkroom.c:1377 msgid "no styles have been created yet" msgstr "henüz tarz oluşturulmadı" -#: ../src/views/darkroom.c:2331 ../src/views/darkroom.c:2332 +#: ../src/views/darkroom.c:2170 ../src/views/darkroom.c:2171 msgid "quick access to presets" msgstr "ön ayarlara hızlı erişim" -#: ../src/views/darkroom.c:2340 +#: ../src/views/darkroom.c:2179 msgid "quick access to styles" msgstr "stillere hızlı erişim" -#: ../src/views/darkroom.c:2342 +#: ../src/views/darkroom.c:2181 msgid "quick access for applying any of your styles" msgstr "tarzlarınız`dan herhangi birini uygulamak için hızlı erişim" -#: ../src/views/darkroom.c:2348 +#: ../src/views/darkroom.c:2187 msgid "second window" msgstr "ikinci pencere" -#: ../src/views/darkroom.c:2351 +#: ../src/views/darkroom.c:2190 msgid "display a second darkroom image window" msgstr "ikinci bir karanlık oda görüntü penceresi göster" -#: ../src/views/darkroom.c:2356 +#: ../src/views/darkroom.c:2195 msgid "color assessment" msgstr "renk değerlendirmesi" -#: ../src/views/darkroom.c:2359 +#: ../src/views/darkroom.c:2198 msgid "toggle ISO 12646 color assessment conditions" msgstr "ISO 12646 renk değerlendirme koşullarını değiştir" -#: ../src/views/darkroom.c:2372 +#: ../src/views/darkroom.c:2211 msgid "" "toggle raw over exposed indication\n" "right click for options" @@ -24568,27 +25255,27 @@ "açık gösterge üzerinde raw geçiş yap\n" "seçenekler için sağ tıklayın" -#: ../src/views/darkroom.c:2388 +#: ../src/views/darkroom.c:2227 msgid "select how to mark the clipped pixels" msgstr "kırpılan piksellerin nasıl işaretleneceğini seçin" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with CFA color" msgstr "CFA rengiyle işaretleyin" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with solid color" msgstr "düz renkle işaretle" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "false color" msgstr "yanlış renk" -#: ../src/views/darkroom.c:2393 ../src/views/darkroom.c:2444 +#: ../src/views/darkroom.c:2232 ../src/views/darkroom.c:2283 msgid "color scheme" msgstr "renk şeması" -#: ../src/views/darkroom.c:2394 +#: ../src/views/darkroom.c:2233 msgid "" "select the solid color to indicate over exposure.\n" "will only be used if mode = mark with solid color" @@ -24596,27 +25283,27 @@ "aşırı pozlamayı belirtmek için düz rengi seçin.\n" "yalnızca mod = düz renkle işaretlediğinde kullanılacaktır" -#: ../src/views/darkroom.c:2397 +#: ../src/views/darkroom.c:2236 msgctxt "solidcolor" msgid "red" msgstr "kırmızı" -#: ../src/views/darkroom.c:2398 +#: ../src/views/darkroom.c:2237 msgctxt "solidcolor" msgid "green" msgstr "yeşil" -#: ../src/views/darkroom.c:2399 +#: ../src/views/darkroom.c:2238 msgctxt "solidcolor" msgid "blue" msgstr "mavi" -#: ../src/views/darkroom.c:2400 +#: ../src/views/darkroom.c:2239 msgctxt "solidcolor" msgid "black" msgstr "siyah" -#: ../src/views/darkroom.c:2408 +#: ../src/views/darkroom.c:2247 msgid "" "threshold of what shall be considered overexposed\n" "1.0 - white level\n" @@ -24626,7 +25313,7 @@ "1.0 - beyaz seviyesi\n" "0.0 - siyah seviye" -#: ../src/views/darkroom.c:2422 +#: ../src/views/darkroom.c:2261 msgid "" "toggle clipping indication\n" "right click for options" @@ -24634,11 +25321,11 @@ "kırpma göstergesi aç/kapat\n" "seçenekler için sağ tıklayın" -#: ../src/views/darkroom.c:2437 +#: ../src/views/darkroom.c:2276 msgid "clipping preview mode" msgstr "kırpma önizleme modu" -#: ../src/views/darkroom.c:2438 +#: ../src/views/darkroom.c:2277 msgid "" "select the metric you want to preview\n" "full gamut is the combination of all other modes" @@ -24646,39 +25333,39 @@ "önizlemek istediğiniz metriği seçin\n" "tam gamut, diğer tüm modların birleşimidir" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "full gamut" msgstr "tam gamut" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "any RGB channel" msgstr "herhangi bir RGB kanalı" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "luminance only" msgstr "sadece parlaklık" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "saturation only" msgstr "sadece doygunluk" -#: ../src/views/darkroom.c:2445 +#: ../src/views/darkroom.c:2284 msgid "select colors to indicate clipping" msgstr "kırpmayı belirtmek için renkleri seçin" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "red & blue" msgstr "kırmızı & mavi" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "purple & green" msgstr "mor & yeşil" -#: ../src/views/darkroom.c:2454 +#: ../src/views/darkroom.c:2293 msgid "lower threshold" msgstr "alt eşik" -#: ../src/views/darkroom.c:2455 +#: ../src/views/darkroom.c:2294 msgid "" "clipping threshold for the black point,\n" "in EV, relatively to white (0 EV).\n" @@ -24698,11 +25385,11 @@ "tipik renkli parlak baskılar -8.00 EV'de siyah üretir,\n" "tipik siyah beyaz parlak baskılar -9.00 EV'de siyah üretir." -#: ../src/views/darkroom.c:2471 +#: ../src/views/darkroom.c:2310 msgid "upper threshold" msgstr "üst eşik" -#: ../src/views/darkroom.c:2473 +#: ../src/views/darkroom.c:2312 #, no-c-format msgid "" "clipping threshold for the white point.\n" @@ -24711,11 +25398,11 @@ "beyaz nokta için kırpma eşiği.\n" "%100 en yüksek orta parlaklıktır." -#: ../src/views/darkroom.c:2485 +#: ../src/views/darkroom.c:2324 msgid "softproof" msgstr "yumuşak prova" -#: ../src/views/darkroom.c:2488 +#: ../src/views/darkroom.c:2327 msgid "" "toggle softproofing\n" "right click for profile options" @@ -24723,7 +25410,7 @@ "yumuşak prova aç kapat\n" "profil seçenekleri için sağ tıklayın" -#: ../src/views/darkroom.c:2499 +#: ../src/views/darkroom.c:2338 msgid "" "toggle gamut checking\n" "right click for profile options" @@ -24731,46 +25418,54 @@ "gamut kontrolünü aç/kapat\n" "profil seçenekleri için sağ tıklayın" -#: ../src/views/darkroom.c:2524 ../src/views/darkroom.c:2526 -#: ../src/views/darkroom.c:2540 ../src/views/darkroom.c:2541 -#: ../src/views/darkroom.c:2542 ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2365 ../src/views/darkroom.c:2367 +#: ../src/views/darkroom.c:2381 ../src/views/darkroom.c:2382 +#: ../src/views/darkroom.c:2383 ../src/views/darkroom.c:2384 #: ../src/views/lighttable.c:1182 ../src/views/lighttable.c:1184 msgid "profiles" msgstr "profiller" -#: ../src/views/darkroom.c:2526 ../src/views/lighttable.c:1184 +#: ../src/views/darkroom.c:2367 ../src/views/lighttable.c:1184 msgid "preview intent" msgstr "önizleme amacı" -#: ../src/views/darkroom.c:2540 ../src/views/lighttable.c:1188 +#: ../src/views/darkroom.c:2381 ../src/views/lighttable.c:1188 msgid "display profile" msgstr "görüntüleme profili" -#: ../src/views/darkroom.c:2541 ../src/views/lighttable.c:1191 +#: ../src/views/darkroom.c:2382 ../src/views/lighttable.c:1191 msgid "preview display profile" msgstr "görüntüleme profilini önizle" -#: ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2384 msgid "histogram profile" msgstr "histogram profili" -#: ../src/views/darkroom.c:2605 ../src/views/lighttable.c:1225 +#: ../src/views/darkroom.c:2391 +msgid "second preview window ISO 12646 color assessment" +msgstr "ikinci önizleme penceresi ISO 12646 renk değerlendirmesi" + +#: ../src/views/darkroom.c:2393 +msgid "color assessment second preview" +msgstr "renk değerlendirmesi ikinci önizleme" + +#: ../src/views/darkroom.c:2452 ../src/views/lighttable.c:1225 msgid "display ICC profiles" msgstr "ICC profillerini göster" -#: ../src/views/darkroom.c:2609 ../src/views/lighttable.c:1229 +#: ../src/views/darkroom.c:2456 ../src/views/lighttable.c:1229 msgid "preview display ICC profiles" msgstr "önizleme görüntüleme ICC profilleri" -#: ../src/views/darkroom.c:2613 +#: ../src/views/darkroom.c:2460 msgid "softproof ICC profiles" msgstr "yazılıma dayanıklı ICC profilleri" -#: ../src/views/darkroom.c:2617 +#: ../src/views/darkroom.c:2464 msgid "histogram and color picker ICC profiles" msgstr "histogram ve renk seçici ICC profilleri" -#: ../src/views/darkroom.c:2651 +#: ../src/views/darkroom.c:2497 msgid "" "toggle guide lines\n" "right click for guides options" @@ -24779,137 +25474,137 @@ "kılavuz seçenekleri için sağ tıklayın" #. Fullscreen preview key -#: ../src/views/darkroom.c:2668 +#: ../src/views/darkroom.c:2514 msgid "full preview" msgstr "tam önizleme" #. add an option to allow skip mouse events while other overlays are consuming mouse actions -#: ../src/views/darkroom.c:2672 +#: ../src/views/darkroom.c:2518 msgid "force pan/zoom/rotate with mouse" msgstr "fare ile kaydırmaya/yakınlaştırmaya/döndürmeye zorla" #. Zoom shortcuts -#: ../src/views/darkroom.c:2684 +#: ../src/views/darkroom.c:2530 msgid "zoom close-up" msgstr "yakınlaştırmayı kapat" #. zoom in/out #. zoom in/out/min/max -#: ../src/views/darkroom.c:2687 ../src/views/lighttable.c:1283 +#: ../src/views/darkroom.c:2533 ../src/views/lighttable.c:1283 msgid "zoom in" msgstr "yakınlaştır" -#: ../src/views/darkroom.c:2688 ../src/views/lighttable.c:1285 +#: ../src/views/darkroom.c:2534 ../src/views/lighttable.c:1285 msgid "zoom out" msgstr "uzaklaştır" #. Shortcut to skip images -#: ../src/views/darkroom.c:2691 +#: ../src/views/darkroom.c:2537 msgid "image forward" msgstr "görüntü ileri" -#: ../src/views/darkroom.c:2692 +#: ../src/views/darkroom.c:2538 msgid "image back" msgstr "görüntü geri" #. cycle overlay colors -#: ../src/views/darkroom.c:2695 +#: ../src/views/darkroom.c:2541 msgid "cycle overlay colors" msgstr "döngü bindirme renkleri" #. toggle visibility of drawn masks for current gui module -#: ../src/views/darkroom.c:2698 +#: ../src/views/darkroom.c:2544 msgid "show drawn masks" msgstr "çizilmiş maskeleri göster" #. brush size +/- -#: ../src/views/darkroom.c:2701 +#: ../src/views/darkroom.c:2547 msgid "increase brush size" msgstr "fırça boyutunu artır" -#: ../src/views/darkroom.c:2702 +#: ../src/views/darkroom.c:2548 msgid "decrease brush size" msgstr "fırça boyutunu küçült" #. brush hardness +/- -#: ../src/views/darkroom.c:2705 +#: ../src/views/darkroom.c:2551 msgid "increase brush hardness" msgstr "fırça sertliğini arttır" -#: ../src/views/darkroom.c:2706 +#: ../src/views/darkroom.c:2552 msgid "decrease brush hardness" msgstr "fırça sertliğini azalt" #. brush opacity +/- -#: ../src/views/darkroom.c:2709 +#: ../src/views/darkroom.c:2555 msgid "increase brush opacity" msgstr "fırça opaklığını artır" -#: ../src/views/darkroom.c:2710 +#: ../src/views/darkroom.c:2556 msgid "decrease brush opacity" msgstr "fırça opaklığını azalt" #. undo/redo -#: ../src/views/darkroom.c:2713 ../src/views/lighttable.c:1275 +#: ../src/views/darkroom.c:2559 ../src/views/lighttable.c:1275 #: ../src/views/map.c:2115 msgid "undo" msgstr "geri al" -#: ../src/views/darkroom.c:2714 ../src/views/lighttable.c:1276 +#: ../src/views/darkroom.c:2560 ../src/views/lighttable.c:1276 #: ../src/views/map.c:2116 msgid "redo" msgstr "ileri al" #. change the precision for adjusting sliders with keyboard shortcuts -#: ../src/views/darkroom.c:2717 +#: ../src/views/darkroom.c:2563 msgid "change keyboard shortcut slider precision" msgstr "klavye kısayolu kaydırıcı hassasiyetini değiştir" -#: ../src/views/darkroom.c:3989 +#: ../src/views/darkroom.c:3565 msgid "keyboard shortcut slider precision: fine" msgstr "klavye kısayolu kaydırıcı hassasiyeti: iyi" -#: ../src/views/darkroom.c:3991 +#: ../src/views/darkroom.c:3567 msgid "keyboard shortcut slider precision: normal" msgstr "klavye kısayolu kaydırıcı hassasiyeti: normal" -#: ../src/views/darkroom.c:3993 +#: ../src/views/darkroom.c:3569 msgid "keyboard shortcut slider precision: coarse" msgstr "klavye kısayolu kaydırıcı hassasiyeti: kaba" -#: ../src/views/darkroom.c:4009 +#: ../src/views/darkroom.c:3584 msgid "switch to lighttable" msgstr "ışıklı masaya geç" -#: ../src/views/darkroom.c:4010 ../src/views/lighttable.c:882 +#: ../src/views/darkroom.c:3585 ../src/views/lighttable.c:882 msgid "zoom in the image" msgstr "görüntüyü yakınlaştır" -#: ../src/views/darkroom.c:4011 +#: ../src/views/darkroom.c:3586 msgid "unbounded zoom in the image" msgstr "görüntüde sınırsız yakınlaştırma" -#: ../src/views/darkroom.c:4012 +#: ../src/views/darkroom.c:3587 msgid "zoom to 100% 200% and back" msgstr "%100'e %200'e yakınlaştırın ve geri dönün" -#: ../src/views/darkroom.c:4013 ../src/views/lighttable.c:885 +#: ../src/views/darkroom.c:3588 ../src/views/lighttable.c:885 msgid "pan a zoomed image" msgstr "yakınlaştırılmış bir görüntüyü kaydır" -#: ../src/views/darkroom.c:4015 ../src/views/lighttable.c:927 +#: ../src/views/darkroom.c:3590 ../src/views/lighttable.c:927 msgid "[modules] expand module without closing others" msgstr "[modüller] diğerlerini kapatmadan modülü genişlet" -#: ../src/views/darkroom.c:4016 ../src/views/lighttable.c:928 +#: ../src/views/darkroom.c:3591 ../src/views/lighttable.c:928 msgid "[modules] expand module and close others" msgstr "[modüller] modülü genişletin ve diğerlerini kapatın" -#: ../src/views/darkroom.c:4018 +#: ../src/views/darkroom.c:3593 msgid "[modules] rename module" msgstr "[modüller] modülü yeniden adlandır" -#: ../src/views/darkroom.c:4020 +#: ../src/views/darkroom.c:3595 msgid "[modules] change module position in pipe" msgstr "[modüller] borudaki modül konumunu değiştir" @@ -25054,60 +25749,60 @@ msgid "print" msgstr "yazdır" -#: ../src/views/slideshow.c:353 +#: ../src/views/slideshow.c:355 msgid "end of images" msgstr "görüntülerin sonu" -#: ../src/views/slideshow.c:374 +#: ../src/views/slideshow.c:376 msgid "end of images. press any key to return to lighttable mode" msgstr "" "görüntülerin sonu. ışık masası moduna dönmek için herhangi bir tuşa basın" -#: ../src/views/slideshow.c:504 +#: ../src/views/slideshow.c:509 msgid "waiting to start slideshow" msgstr "slayt gösterisini başlatmak için bekliyor" -#: ../src/views/slideshow.c:640 ../src/views/slideshow.c:661 -#: ../src/views/slideshow.c:669 +#: ../src/views/slideshow.c:678 ../src/views/slideshow.c:705 +#: ../src/views/slideshow.c:713 msgid "slideshow paused" msgstr "slayt gösterisi duraklatıldı" -#: ../src/views/slideshow.c:648 ../src/views/slideshow.c:655 +#: ../src/views/slideshow.c:686 ../src/views/slideshow.c:696 #, c-format msgid "slideshow delay set to %d second" msgid_plural "slideshow delay set to %d seconds" msgstr[0] "slayt gösterisi gecikmesi %d saniyeye ayarlandı" msgstr[1] "slayt gösterisi gecikmesi %d saniyeye ayarlandı" -#: ../src/views/slideshow.c:684 +#: ../src/views/slideshow.c:728 msgid "start and stop" msgstr "başlat ve durdur" -#: ../src/views/slideshow.c:685 +#: ../src/views/slideshow.c:730 msgid "exit slideshow" msgstr "slayt gösterisinden çık" -#: ../src/views/slideshow.c:688 +#: ../src/views/slideshow.c:734 msgid "slow down" msgstr "yavaşlat" -#: ../src/views/slideshow.c:691 +#: ../src/views/slideshow.c:738 msgid "speed up" msgstr "hızlandır" -#: ../src/views/slideshow.c:695 +#: ../src/views/slideshow.c:743 msgid "step forward" msgstr "öne çıkart" -#: ../src/views/slideshow.c:696 +#: ../src/views/slideshow.c:745 msgid "step back" msgstr "geri it" -#: ../src/views/slideshow.c:702 +#: ../src/views/slideshow.c:753 msgid "go to next image" msgstr "sonraki görüntüye git" -#: ../src/views/slideshow.c:703 +#: ../src/views/slideshow.c:755 msgid "go to previous image" msgstr "önceki görüntüye git" @@ -25120,51 +25815,300 @@ msgid "no camera with tethering support available for use..." msgstr "kullanım için bağlama destekli kamera yok..." -#: ../src/views/view.c:1193 +#: ../src/views/view.c:1352 msgid "left click" msgstr "sol tık" -#: ../src/views/view.c:1196 +#: ../src/views/view.c:1355 msgid "right click" msgstr "sağ tık" -#: ../src/views/view.c:1199 +#: ../src/views/view.c:1358 msgid "middle click" msgstr "orta tık" -#: ../src/views/view.c:1205 +#: ../src/views/view.c:1364 msgid "left double-click" msgstr "sol çift tıklama" -#: ../src/views/view.c:1208 +#: ../src/views/view.c:1367 msgid "right double-click" msgstr "sağ çift tıklama" -#: ../src/views/view.c:1211 +#: ../src/views/view.c:1370 msgid "drag and drop" msgstr "sürükle ve bırak" -#: ../src/views/view.c:1214 +#: ../src/views/view.c:1373 msgid "left click+drag" msgstr "sol tıklama+sürükle" -#: ../src/views/view.c:1217 +#: ../src/views/view.c:1376 msgid "right click+drag" msgstr "sağ tıklama+sürükle" -#: ../src/views/view.c:1237 +#: ../src/views/view.c:1398 msgid "darktable - accels window" msgstr "darktable - pencereyi açar" -#: ../src/views/view.c:1285 +#: ../src/views/view.c:1447 msgid "switch to a classic window which will stay open after key release" msgstr "anahtar bırakıldıktan sonra açık kalacak klasik bir pencereye geçin" #. we add the mouse actions too -#: ../src/views/view.c:1344 +#: ../src/views/view.c:1514 msgid "mouse actions" msgstr "fare eylemleri" +#~ msgctxt "preferences" +#~ msgid "nothing" +#~ msgstr "hiçbir şey" + +#~ msgctxt "preferences" +#~ msgid "memory size" +#~ msgstr "bellek boyutu" + +#~ msgctxt "preferences" +#~ msgid "memory transfer" +#~ msgstr "bellek aktarımı" + +#~ msgctxt "preferences" +#~ msgid "memory size and transfer" +#~ msgstr "bellek boyutu ve aktarım" + +#~ msgctxt "preferences" +#~ msgid "id" +#~ msgstr "kimlik" + +#~ msgctxt "preferences" +#~ msgid "folder" +#~ msgstr "klasör" + +#~ msgid "" +#~ "when having raw+JPEG images together in one directory it makes no sense " +#~ "to import both. with this flag one can ignore all JPEGs found." +#~ msgstr "" +#~ "raw+JPEG görüntüleri bir dizinde bir arada bulundururken, her ikisini de " +#~ "içe aktarmanın bir anlamı yoktur. bu işaretle bulunan tüm JPEG'ler göz " +#~ "ardı edilebilir." + +#~ msgid "tune OpenCL performance" +#~ msgstr "OpenCL performansını ayarla" + +#~ msgid "" +#~ "allows runtime tuning of OpenCL devices:\n" +#~ " - 'memory size': uses a fixed headroom (400MB as default),\n" +#~ " - 'memory transfer': tries a faster memory access mode (pinned memory) " +#~ "used for tiling." +#~ msgstr "" +#~ "OpenCL cihazlarının çalışma zamanı ayarına izin verir:\n" +#~ " - 'bellek boyutu': sabit bir boşluk kullanır (varsayılan olarak 400MB),\n" +#~ " - 'bellek aktarımı': döşeme için kullanılan daha hızlı bir bellek erişim " +#~ "modunu (sabitlenmiş bellek) dener." + +#~ msgid "write sidecar file for each image" +#~ msgstr "her görüntü için sepet dosyası yaz" + +#~ msgid "" +#~ "if an instance of the module has focus, apply shortcut to that instance\n" +#~ "note: blending shortcuts always apply to the focused instance" +#~ msgstr "" +#~ "modülün bir örneğinin odağı varsa, o örneğe kısayol uygulayın\n" +#~ "not: karıştırma kısayolları her zaman odaklanılan örneğe uygulanır" + +#~ msgid "distortion fine-tune" +#~ msgstr "çarpıtma ince ayarı" + +#~ msgid "vignetting fine-tune" +#~ msgstr "eskitme ince ayarı" + +#~ msgid "TCA red fine-tune" +#~ msgstr "TCA kırmızı ince ayar" + +#~ msgid "TCA blue fine-tune" +#~ msgstr "TCA mavi ince ayarı" + +#~ msgid "tiff" +#~ msgstr "tiff" + +#~ msgid "png" +#~ msgstr "png" + +#~ msgid "j2k" +#~ msgstr "j2k" + +#~ msgid "jpeg" +#~ msgstr "jpeg" + +#~ msgid "exr" +#~ msgstr "exr" + +#~ msgid "rgbe" +#~ msgstr "rgbe" + +#~ msgid "pfm" +#~ msgstr "pfm" + +#~ msgid "netpnm" +#~ msgstr "netpnm" + +#~ msgid "avif" +#~ msgstr "avif" + +#~ msgid "heif" +#~ msgstr "heif" + +#~ msgid "libraw" +#~ msgstr "libraw" + +#~ msgid "webp" +#~ msgstr "webp" + +#~ msgid "jpeg xl" +#~ msgstr "jpeg xl" + +#~ msgid "" +#~ "due to a slow GPU hardware acceleration using OpenCL has been deactivated" +#~ msgstr "" +#~ "yavaş bir GPU donanım ivmesi nedeniyle OpenCL kullanılarak devre dışı " +#~ "bırakıldı" + +#~ msgid "" +#~ "multiple GPUs detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "birden çok GPU algılandı - OpenCL zamanlama profili buna göre ayarlandı" + +#~ msgid "" +#~ "very fast GPU detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "çok hızlı GPU algılandı - OpenCL zamanlama profili buna göre ayarlandı" + +#~ msgid "" +#~ "darktable discovered problems with your OpenCL setup; disabling OpenCL " +#~ "for this session!" +#~ msgstr "" +#~ "darktable, OpenCL kurulumunuzla ilgili sorunları keşfetti; bu oturum için " +#~ "OpenCL'yi devre dışı bırak!" + +#~ msgid "no-op" +#~ msgstr "işlem yok" + +#~ msgid "RGB colors" +#~ msgstr "RGB renkleri" + +#~ msgid "compression type" +#~ msgstr "sıkıştırma tipi" + +#~ msgid "jp2" +#~ msgstr "jp2" + +#~ msgid "b&w image" +#~ msgstr "s&b görüntü" + +#~ msgid "write RGB colors" +#~ msgstr "RGB renklerini yaz" + +#~ msgid "write grayscale" +#~ msgstr "gri tonlamalı yaz" + +#~ msgid "spot color mapping" +#~ msgstr "nokta renk eşleme" + +#~ msgid "spot mode" +#~ msgstr "nokta modu" + +#~ msgid "" +#~ "set strength of rebuilding in regions with all photosites clipped.\n" +#~ "the mask buttons shows the effect that is added to already reconstructed " +#~ "data." +#~ msgstr "" +#~ "tüm fotositelerin kırpıldığı bölgelerde yeniden oluşturmanın gücünü " +#~ "ayarlayın.\n" +#~ "maske düğmeleri, halihazırda yeniden oluşturulmuş verilere eklenen efekti " +#~ "gösterir." + +#~ msgid "" +#~ "tone equalizer needs to be after distortion modules in the pipeline – " +#~ "disabled" +#~ msgstr "" +#~ "ton ekolayzerin boru hattındaki bozulma modüllerinden sonra olması " +#~ "gerekiyor - devre dışı" + +#~ msgid "reference to which the marker should be scaled to" +#~ msgstr "işaretçinin ölçeklenmesi gereken referans" + +#~ msgid "length of the marker which is used as scaling reference" +#~ msgstr "ölçekleme referansı olarak kullanılan işaretçinin uzunluğu" + +#~ msgid "save" +#~ msgstr "kaydet" + +#~ msgid "add" +#~ msgstr "ekle" + +#~ msgid "only" +#~ msgstr "sadece" + +#~ msgid "selected image[s]" +#~ msgstr "seçilen görüntü[ler]" + +#~ msgid "hardness (relative)" +#~ msgstr "sertlik (bağıl)" + +#~ msgid "hardness (absolute)" +#~ msgstr "sertlik (mutlak)" + +#~ msgid "opacity (relative)" +#~ msgstr "opaklık (göreceli)" + +#~ msgid "opacity (absolute)" +#~ msgstr "opaklık (mutlak)" + +#~ msgid "brush size (relative)" +#~ msgstr "fırça boyutu (göreceli)" + +#~ msgid "low" +#~ msgstr "düşük" + +#~ msgid "medium" +#~ msgstr "orta" + +#~ msgid "high" +#~ msgstr "yüksek" + +#~ msgid "" +#~ "pen pressure control for brush masks\n" +#~ "'off': pressure reading ignored,\n" +#~ "'hardness'/'opacity'/'brush size': pressure reading controls specified " +#~ "attribute,\n" +#~ "'absolute'/'relative': pressure reading is taken directly as attribute " +#~ "value or multiplied with pre-defined setting." +#~ msgstr "" +#~ " fırça maskeleri için kalem basıncı kontrolü\n" +#~ "'kapalı': basınç okuması yoksayılır,\n" +#~ "'sertlik'/'opaklık'/'fırça boyutu': basınç okuma belirtilen özelliği " +#~ "kontrol eder,\n" +#~ "'mutlak'/'göreceli': basınç okuması doğrudan öznitelik değeri olarak " +#~ "alınır veya önceden tanımlanmış ayarla çarpılır." + +#~ msgid "" +#~ "smoothing of brush strokes\n" +#~ "stronger smoothing leads to fewer nodes and easier editing but with lower " +#~ "control of accuracy." +#~ msgstr "" +#~ "fırça darbelerinin yumuşatılması\n" +#~ "daha güçlü yumuşatma, daha az düğüme ve daha kolay düzenlemeye, ancak " +#~ "daha düşük doğruluk kontrolüne yol açar." + +#~ msgid "<leave unchanged>" +#~ msgstr "<degismeden birakilan>" + +#, c-format +#~ msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" +#~ msgstr "%.1f mm (%.1f mm FF eşdeğeri, kırpma %.1f)" + #~ msgid "pen pressure control for brush masks" #~ msgstr "fırça maskeleri için kalemin basınç kontrolü" @@ -25245,9 +26189,6 @@ #~ msgid "3:2" #~ msgstr "3:2" -#~ msgid "set the custom aspect ratio" -#~ msgstr "özel en boy oranını ayarla" - #~ msgid "lensfun" #~ msgstr "lensfun" @@ -25261,9 +26202,6 @@ #~ msgid "size is relative to" #~ msgstr "boyut görecelidir" -#~ msgid "rgb parade" -#~ msgstr "rgb geçişi" - #~ msgid "rotate 90 degrees ccw" #~ msgstr "90 derece ccw döndür" @@ -25701,9 +26639,6 @@ #~ "veri tabanı bakımının otomatik olarak isteneceği veya gerçekleştirileceği " #~ "parçalanma oranı" -#~ msgid "recovery" -#~ msgstr "kurtarma" - #~ msgid "click later to be asked on next startup" #~ msgstr "sonraki açılışta sorulmak için daha sonraya tıklayın" @@ -25780,19 +26715,10 @@ #~ msgid "xcf" #~ msgstr "xcf" -#~ msgid "" -#~ "set strength of reconstruction in regions with all photosites clipped" -#~ msgstr "" -#~ "Tüm foto sitelerin kırpıldığı bölgelerde yeniden yapılanmanın gücünü " -#~ "ayarlayın" - #, no-c-format #~ msgid "preview is only possible for zoom lower than 200%%" #~ msgstr "önizleme yalnızca %%200'den daha düşük yakınlaştırma için mümkündür" -#~ msgid "actual selection" -#~ msgstr "güncel seçim" - #~ msgid "v3.0" #~ msgstr "v3.0" @@ -25850,9 +26776,6 @@ #~ msgid "lift chroma" #~ msgstr "kaldırma renklendirmesi" -#~ msgid "lift hue" -#~ msgstr "kaldırma tonu" - #~ msgid "power luminance" #~ msgstr "güç parlaklığı" @@ -25886,9 +26809,6 @@ #~ msgid "chroma highlights" #~ msgstr "renklendirme vurguları" -#~ msgid "chroma global" -#~ msgstr "genel renklendirme" - #~ msgid "chroma mid-tones" #~ msgstr "renklendirme orta tonlar" diff -Nru darktable-4.4.2/po/uk.po darktable-4.6.1/po/uk.po --- darktable-4.4.2/po/uk.po 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/po/uk.po 2024-02-16 17:31:09.000000000 +0000 @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: darktable\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-31 13:24+0200\n" -"PO-Revision-Date: 2023-05-31 19:11+0300\n" +"POT-Creation-Date: 2023-11-30 19:32+0100\n" +"PO-Revision-Date: 2023-12-14 00:14+0200\n" "Last-Translator: Victor Forsiuk <vvforce@gmail.com>\n" "Language-Team: \n" "Language: uk\n" @@ -17,272 +17,237 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" -"X-Generator: Poedit 3.3.1\n" +"X-Generator: Poedit 3.4.1\n" -#: ../build/bin/conf_gen.h:172 ../build/bin/preferences_gen.h:7632 +#: ../build/bin/conf_gen.h:174 msgctxt "preferences" msgid "first instance" msgstr "перший екземпляр" -#: ../build/bin/conf_gen.h:173 ../build/bin/preferences_gen.h:7637 -#: ../build/bin/preferences_gen.h:7656 +#: ../build/bin/conf_gen.h:175 ../build/bin/preferences_gen.h:7922 msgctxt "preferences" msgid "last instance" msgstr "останній екземпляр" -#: ../build/bin/conf_gen.h:240 ../build/bin/conf_gen.h:346 -#: ../build/bin/conf_gen.h:356 ../build/bin/conf_gen.h:1186 -#: ../build/bin/conf_gen.h:1202 ../build/bin/preferences_gen.h:4137 -#: ../build/bin/preferences_gen.h:4156 ../build/bin/preferences_gen.h:4232 -#: ../build/bin/preferences_gen.h:6706 ../build/bin/preferences_gen.h:6834 -#: ../build/bin/preferences_gen.h:6899 +#: ../build/bin/conf_gen.h:252 ../build/bin/conf_gen.h:352 +#: ../build/bin/conf_gen.h:362 ../build/bin/conf_gen.h:1239 +#: ../build/bin/conf_gen.h:1255 ../build/bin/conf_gen.h:1275 +#: ../build/bin/preferences_gen.h:4747 ../build/bin/preferences_gen.h:4885 msgctxt "preferences" msgid "never" msgstr "ніколи" -#: ../build/bin/conf_gen.h:241 ../build/bin/preferences_gen.h:6711 +#: ../build/bin/conf_gen.h:253 msgctxt "preferences" msgid "once a month" msgstr "раз на місяць" -#: ../build/bin/conf_gen.h:242 ../build/bin/preferences_gen.h:6716 -#: ../build/bin/preferences_gen.h:6745 +#: ../build/bin/conf_gen.h:254 ../build/bin/preferences_gen.h:7138 msgctxt "preferences" msgid "once a week" msgstr "раз на тиждень" -#: ../build/bin/conf_gen.h:243 ../build/bin/preferences_gen.h:6721 +#: ../build/bin/conf_gen.h:255 msgctxt "preferences" msgid "once a day" msgstr "раз на день" -#: ../build/bin/conf_gen.h:244 ../build/bin/preferences_gen.h:6726 +#: ../build/bin/conf_gen.h:256 msgctxt "preferences" msgid "on close" msgstr "при закритті" -#: ../build/bin/conf_gen.h:280 ../build/bin/conf_gen.h:1179 -#: ../build/bin/conf_gen.h:1195 ../build/bin/preferences_gen.h:4102 -#: ../build/bin/preferences_gen.h:4197 ../build/bin/preferences_gen.h:5748 +#: ../build/bin/conf_gen.h:292 ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1248 ../build/bin/conf_gen.h:1276 msgctxt "preferences" msgid "small" msgstr "малий" -#: ../build/bin/conf_gen.h:281 ../build/bin/conf_gen.h:393 -#: ../build/bin/preferences_gen.h:5753 ../build/bin/preferences_gen.h:5782 -#: ../build/bin/preferences_gen.h:5969 ../build/bin/preferences_gen.h:5998 +#: ../build/bin/conf_gen.h:293 ../build/bin/conf_gen.h:405 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6223 msgctxt "preferences" msgid "default" msgstr "за замовчуванням" -#: ../build/bin/conf_gen.h:282 ../build/bin/conf_gen.h:2814 -#: ../build/bin/preferences_gen.h:5758 +#: ../build/bin/conf_gen.h:294 ../build/bin/conf_gen.h:2904 msgctxt "preferences" msgid "large" msgstr "великий" -#: ../build/bin/conf_gen.h:283 ../build/bin/preferences_gen.h:5763 +#: ../build/bin/conf_gen.h:295 msgctxt "preferences" msgid "unrestricted" msgstr "без обмежень" -#: ../build/bin/conf_gen.h:347 ../build/bin/preferences_gen.h:6839 +#: ../build/bin/conf_gen.h:353 msgctxt "preferences" msgid "after edit" msgstr "після редагування" -#: ../build/bin/conf_gen.h:348 ../build/bin/preferences_gen.h:6844 -#: ../build/bin/preferences_gen.h:6863 +#: ../build/bin/conf_gen.h:354 ../build/bin/preferences_gen.h:7224 msgctxt "preferences" msgid "on import" msgstr "при імпорті" -#: ../build/bin/conf_gen.h:357 ../build/bin/conf_gen.h:1178 -#: ../build/bin/conf_gen.h:1194 ../build/bin/conf_gen.h:3214 -#: ../build/bin/preferences_gen.h:4097 ../build/bin/preferences_gen.h:4192 -#: ../build/bin/preferences_gen.h:5112 ../build/bin/preferences_gen.h:5166 -#: ../build/bin/preferences_gen.h:6904 +#: ../build/bin/conf_gen.h:363 ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1247 ../build/bin/conf_gen.h:3300 +#: ../build/bin/preferences_gen.h:5644 msgctxt "preferences" msgid "always" msgstr "завжди" -#: ../build/bin/conf_gen.h:358 ../build/bin/preferences_gen.h:6909 -#: ../build/bin/preferences_gen.h:6928 +#: ../build/bin/conf_gen.h:364 ../build/bin/preferences_gen.h:7259 msgctxt "preferences" msgid "only large entries" msgstr "лише великі записи" -#: ../build/bin/conf_gen.h:378 ../build/bin/preferences_gen.h:8069 +#: ../build/bin/conf_gen.h:390 msgctxt "preferences" msgid "sensitive" msgstr "чутливо" -#: ../build/bin/conf_gen.h:379 ../build/bin/preferences_gen.h:8074 -#: ../build/bin/preferences_gen.h:8093 +#: ../build/bin/conf_gen.h:391 ../build/bin/preferences_gen.h:8133 msgctxt "preferences" msgid "insensitive" msgstr "нечутливо" -#: ../build/bin/conf_gen.h:394 ../build/bin/preferences_gen.h:5974 +#: ../build/bin/conf_gen.h:406 msgctxt "preferences" msgid "multiple GPUs" msgstr "кілька GPU" -#: ../build/bin/conf_gen.h:395 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/conf_gen.h:407 msgctxt "preferences" msgid "very fast GPU" msgstr "дуже швидкий GPU" -#: ../build/bin/conf_gen.h:403 ../build/bin/preferences_gen.h:6040 -#: ../build/bin/preferences_gen.h:6074 +#: ../build/bin/conf_gen.h:755 msgctxt "preferences" -msgid "nothing" -msgstr "немає" - -#: ../build/bin/conf_gen.h:404 ../build/bin/preferences_gen.h:6045 -msgctxt "preferences" -msgid "memory size" -msgstr "розмір пам'яті" - -#: ../build/bin/conf_gen.h:405 ../build/bin/preferences_gen.h:6050 -msgctxt "preferences" -msgid "memory transfer" -msgstr "переміщення в пам'яті" - -#: ../build/bin/conf_gen.h:406 ../build/bin/preferences_gen.h:6055 -msgctxt "preferences" -msgid "memory size and transfer" -msgstr "розмір і переміщення" - -#: ../build/bin/conf_gen.h:706 ../build/bin/preferences_gen.h:8257 -#: ../build/bin/preferences_gen.h:8281 -msgctxt "preferences" -msgid "id" -msgstr "id" +msgid "import time" +msgstr "Час імпорту" -#: ../build/bin/conf_gen.h:707 ../build/bin/preferences_gen.h:8262 +#: ../build/bin/conf_gen.h:756 msgctxt "preferences" -msgid "folder" -msgstr "каталогом" +msgid "folder name" +msgstr "імена каталогів" -#: ../build/bin/conf_gen.h:721 +#: ../build/bin/conf_gen.h:770 msgctxt "preferences" msgid "RGB" msgstr "RGB" -#: ../build/bin/conf_gen.h:722 +#: ../build/bin/conf_gen.h:771 msgctxt "preferences" msgid "Lab" msgstr "Lab" -#: ../build/bin/conf_gen.h:723 +#: ../build/bin/conf_gen.h:772 msgctxt "preferences" msgid "LCh" msgstr "LCh" -#: ../build/bin/conf_gen.h:724 +#: ../build/bin/conf_gen.h:773 msgctxt "preferences" msgid "HSL" msgstr "HSL" -#: ../build/bin/conf_gen.h:725 +#: ../build/bin/conf_gen.h:774 msgctxt "preferences" msgid "Hex" msgstr "Hex" -#: ../build/bin/conf_gen.h:726 ../build/bin/conf_gen.h:1830 -#: ../build/bin/conf_gen.h:2488 ../build/bin/conf_gen.h:2790 -#: ../build/bin/conf_gen.h:3044 ../build/bin/preferences_gen.h:5577 -#: ../build/bin/preferences_gen.h:6561 +#: ../build/bin/conf_gen.h:775 ../build/bin/conf_gen.h:1916 +#: ../build/bin/conf_gen.h:2578 ../build/bin/conf_gen.h:2880 +#: ../build/bin/conf_gen.h:3136 msgctxt "preferences" msgid "none" msgstr "немає" -#: ../build/bin/conf_gen.h:734 +#: ../build/bin/conf_gen.h:783 msgctxt "preferences" msgid "mean" msgstr "середнє" -#: ../build/bin/conf_gen.h:735 +#: ../build/bin/conf_gen.h:784 msgctxt "preferences" msgid "min" msgstr "мін" -#: ../build/bin/conf_gen.h:736 +#: ../build/bin/conf_gen.h:785 msgctxt "preferences" msgid "max" msgstr "макс" -#: ../build/bin/conf_gen.h:924 +#: ../build/bin/conf_gen.h:973 msgid "select only new pictures" msgstr "Вибирати лише нові" -#: ../build/bin/conf_gen.h:925 +#: ../build/bin/conf_gen.h:974 msgid "only select images that have not already been imported" msgstr "Вибирати лише ті зображення, які ще не були імпортовані." -#: ../build/bin/conf_gen.h:930 -msgid "ignore JPEG images" -msgstr "Ігнорувати JPEG файли" +#: ../build/bin/conf_gen.h:979 +msgid "ignore non-raw images" +msgstr "Ігнорувати не-raw зображення" -#: ../build/bin/conf_gen.h:931 +#: ../build/bin/conf_gen.h:980 msgid "" -"when having raw+JPEG images together in one directory it makes no sense to " -"import both. with this flag one can ignore all JPEGs found." +"if enabled, only raw files will be allowed to import. non-raw files will not " +"be visible in the dialog and will not be imported." msgstr "" -"Коли в одному каталозі є пари зображень raw+JPEG, немає сенсу імпортувати " -"обидва. За допомогою цього прапорця можна ігнорувати всі знайдені файли JPEG." +"Якщо ввімкнено, буде дозволено імпортувати лише raw файли. Не-raw файли не " +"відображатимуться в діалоговому вікні та не імпортуватимуться." -#: ../build/bin/conf_gen.h:936 +#: ../build/bin/conf_gen.h:985 msgid "apply metadata" msgstr "Застосовувати метадані" -#: ../build/bin/conf_gen.h:937 +#: ../build/bin/conf_gen.h:986 msgid "apply some metadata to all newly imported images." msgstr "Застосувати деякі метадані до всіх імпортованих зображень." -#: ../build/bin/conf_gen.h:942 +#: ../build/bin/conf_gen.h:991 msgid "recursive directory" msgstr "Імпортувати з підкаталогами" -#: ../build/bin/conf_gen.h:943 +#: ../build/bin/conf_gen.h:992 msgid "recursive directory traversal when importing filmrolls" msgstr "Рекурсивний обхід каталогу під час імпорту фотоплівок." -#: ../build/bin/conf_gen.h:948 +#: ../build/bin/conf_gen.h:997 msgid "creator to be applied when importing" msgstr "Автор (застосовується під час імпорту)" -#: ../build/bin/conf_gen.h:954 +#: ../build/bin/conf_gen.h:1003 msgid "publisher to be applied when importing" msgstr "Видавець (застосовується під час імпорту)" -#: ../build/bin/conf_gen.h:960 +#: ../build/bin/conf_gen.h:1009 msgid "rights to be applied when importing" msgstr "Права (застосовується під час імпорту)" -#: ../build/bin/conf_gen.h:966 +#: ../build/bin/conf_gen.h:1015 msgid "comma separated tags to be applied when importing" msgstr "Теги, розділені комами (застосовуються під час імпорту)" -#: ../build/bin/conf_gen.h:972 +#: ../build/bin/conf_gen.h:1021 msgid "import tags from XMP" msgstr "Імпортувати теги з XMP" -#: ../build/bin/conf_gen.h:998 +#: ../build/bin/conf_gen.h:1051 msgid "initial rating" msgstr "Початковий рейтинг" -#: ../build/bin/conf_gen.h:999 +#: ../build/bin/conf_gen.h:1052 msgid "initial star rating for all images when importing a filmroll" msgstr "" "Початковий рейтинг зірок для всіх зображень під час імпорту фотоплівки." -#: ../build/bin/conf_gen.h:1004 +#: ../build/bin/conf_gen.h:1057 msgid "ignore EXIF rating" msgstr "Ігнорувати рейтинг з EXIF" -#: ../build/bin/conf_gen.h:1005 +#: ../build/bin/conf_gen.h:1058 msgid "" "ignore EXIF rating. if not set and EXIF rating is found, it overrides " "'initial rating'" @@ -290,19 +255,19 @@ "Ігнорувати рейтинг з EXIF. Якщо це не встановлено і рейтинг в EXIF знайдено, " "він замінює \"початковий рейтинг\"." -#: ../build/bin/conf_gen.h:1010 +#: ../build/bin/conf_gen.h:1063 msgid "import job" msgstr "Завдання імпорту" -#: ../build/bin/conf_gen.h:1011 +#: ../build/bin/conf_gen.h:1064 msgid "name of the import job" msgstr "Ім'я завдання імпорту." -#: ../build/bin/conf_gen.h:1016 +#: ../build/bin/conf_gen.h:1069 msgid "override today's date" msgstr "Замінити сьогоднішню дату" -#: ../build/bin/conf_gen.h:1017 +#: ../build/bin/conf_gen.h:1070 msgid "" "type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override " "the current date/time used when expanding variables:\n" @@ -314,162 +279,159 @@ "$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS), $(MSEC).\n" "Якщо не хочете заміни, залиште поле порожнім." -#: ../build/bin/conf_gen.h:1022 +#: ../build/bin/conf_gen.h:1075 msgid "keep this window open" msgstr "Тримати це вікно відкритим" -#: ../build/bin/conf_gen.h:1023 +#: ../build/bin/conf_gen.h:1076 msgid "keep this window open to run several imports" msgstr "Тримайте це вікно відкритим для запуску декількох імпортів." -#: ../build/bin/conf_gen.h:1180 ../build/bin/conf_gen.h:1196 -#: ../build/bin/preferences_gen.h:4107 ../build/bin/preferences_gen.h:4202 +#: ../build/bin/conf_gen.h:1233 ../build/bin/conf_gen.h:1249 +#: ../build/bin/conf_gen.h:1277 msgctxt "preferences" msgid "VGA" msgstr "VGA" -#: ../build/bin/conf_gen.h:1181 ../build/bin/conf_gen.h:1197 -#: ../build/bin/preferences_gen.h:4112 ../build/bin/preferences_gen.h:4207 -#: ../build/bin/preferences_gen.h:4251 +#: ../build/bin/conf_gen.h:1234 ../build/bin/conf_gen.h:1250 +#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4782 msgctxt "preferences" msgid "720p" msgstr "720p" -#: ../build/bin/conf_gen.h:1182 ../build/bin/conf_gen.h:1198 -#: ../build/bin/preferences_gen.h:4117 ../build/bin/preferences_gen.h:4212 +#: ../build/bin/conf_gen.h:1235 ../build/bin/conf_gen.h:1251 +#: ../build/bin/conf_gen.h:1279 msgctxt "preferences" msgid "1080p" msgstr "1080p" -#: ../build/bin/conf_gen.h:1183 ../build/bin/conf_gen.h:1199 -#: ../build/bin/preferences_gen.h:4122 ../build/bin/preferences_gen.h:4217 +#: ../build/bin/conf_gen.h:1236 ../build/bin/conf_gen.h:1252 +#: ../build/bin/conf_gen.h:1280 msgctxt "preferences" msgid "WQXGA" msgstr "WQXGA" -#: ../build/bin/conf_gen.h:1184 ../build/bin/conf_gen.h:1200 -#: ../build/bin/preferences_gen.h:4127 ../build/bin/preferences_gen.h:4222 +#: ../build/bin/conf_gen.h:1237 ../build/bin/conf_gen.h:1253 +#: ../build/bin/conf_gen.h:1281 msgctxt "preferences" msgid "4K" msgstr "4K" -#: ../build/bin/conf_gen.h:1185 ../build/bin/conf_gen.h:1201 -#: ../build/bin/preferences_gen.h:4132 ../build/bin/preferences_gen.h:4227 +#: ../build/bin/conf_gen.h:1238 ../build/bin/conf_gen.h:1254 +#: ../build/bin/conf_gen.h:1282 msgctxt "preferences" msgid "5K" msgstr "5K" -#: ../build/bin/conf_gen.h:1228 +#: ../build/bin/conf_gen.h:1314 msgctxt "preferences" msgid "off" msgstr "вимкнено" -#: ../build/bin/conf_gen.h:1229 +#: ../build/bin/conf_gen.h:1315 msgctxt "preferences" msgid "hardness (relative)" msgstr "жорсткість (відносна)" -#: ../build/bin/conf_gen.h:1230 +#: ../build/bin/conf_gen.h:1316 msgctxt "preferences" msgid "hardness (absolute)" msgstr "жорсткість (абсолютна)" -#: ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1317 msgctxt "preferences" msgid "opacity (relative)" msgstr "непрозорість (відносна)" -#: ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1318 msgctxt "preferences" msgid "opacity (absolute)" msgstr "непрозорість (абсолютна)" -#: ../build/bin/conf_gen.h:1233 +#: ../build/bin/conf_gen.h:1319 msgctxt "preferences" msgid "brush size (relative)" msgstr "розмір пензля (відносний)" -#: ../build/bin/conf_gen.h:1241 +#: ../build/bin/conf_gen.h:1327 msgctxt "preferences" msgid "low" msgstr "слабке" -#: ../build/bin/conf_gen.h:1242 +#: ../build/bin/conf_gen.h:1328 msgctxt "preferences" msgid "medium" msgstr "середнє" -#: ../build/bin/conf_gen.h:1243 +#: ../build/bin/conf_gen.h:1329 msgctxt "preferences" msgid "high" msgstr "сильне" -#: ../build/bin/conf_gen.h:1263 ../build/bin/preferences_gen.h:4836 -#: ../build/bin/preferences_gen.h:4860 +#: ../build/bin/conf_gen.h:1349 ../build/bin/preferences_gen.h:5405 msgctxt "preferences" msgid "false color" msgstr "псевдоколір" -#: ../build/bin/conf_gen.h:1264 ../build/bin/preferences_gen.h:4841 +#: ../build/bin/conf_gen.h:1350 msgctxt "preferences" msgid "grayscale" msgstr "відтінки сірого" -#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4567 +#: ../build/bin/conf_gen.h:1364 msgctxt "preferences" msgid "top left" msgstr "зверху ліворуч" -#: ../build/bin/conf_gen.h:1279 ../build/bin/preferences_gen.h:4572 +#: ../build/bin/conf_gen.h:1365 msgctxt "preferences" msgid "top right" msgstr "зверху праворуч" -#: ../build/bin/conf_gen.h:1280 ../build/bin/preferences_gen.h:4577 +#: ../build/bin/conf_gen.h:1366 msgctxt "preferences" msgid "top center" msgstr "зверху в центрі" -#: ../build/bin/conf_gen.h:1281 ../build/bin/preferences_gen.h:4582 -#: ../build/bin/preferences_gen.h:4606 +#: ../build/bin/conf_gen.h:1367 ../build/bin/preferences_gen.h:5217 msgctxt "preferences" msgid "bottom" msgstr "низ" -#: ../build/bin/conf_gen.h:1282 ../build/bin/preferences_gen.h:4587 +#: ../build/bin/conf_gen.h:1368 msgctxt "preferences" msgid "hidden" msgstr "приховано" -#: ../build/bin/conf_gen.h:1792 +#: ../build/bin/conf_gen.h:1878 msgid "show OSD" msgstr "OSD" -#: ../build/bin/conf_gen.h:1793 +#: ../build/bin/conf_gen.h:1879 msgid "toggle the visibility of the map overlays" msgstr "Перемикає видимість елементів керування і інформації на мапі." -#: ../build/bin/conf_gen.h:1798 ../src/libs/map_settings.c:146 +#: ../build/bin/conf_gen.h:1884 ../src/libs/map_settings.c:119 msgid "filtered images" msgstr "Фільтрувати" -#: ../build/bin/conf_gen.h:1799 +#: ../build/bin/conf_gen.h:1885 msgid "when set limit the images drawn to the current filmstrip" msgstr "Показувати лише зображення з поточної плівки." -#: ../build/bin/conf_gen.h:1806 +#: ../build/bin/conf_gen.h:1892 msgid "max images" msgstr "Максимально" -#: ../build/bin/conf_gen.h:1807 +#: ../build/bin/conf_gen.h:1893 msgid "the maximum number of image thumbnails drawn on the map" msgstr "Максимальна кількість мініатюр, розміщених на мапі." -#: ../build/bin/conf_gen.h:1814 +#: ../build/bin/conf_gen.h:1900 msgid "group size factor" msgstr "Розмір групи" -#: ../build/bin/conf_gen.h:1815 +#: ../build/bin/conf_gen.h:1901 msgid "" "increase or decrease the spatial size of images groups on the map. can " "influence the calculation time" @@ -477,11 +439,11 @@ "Збільшити або зменшити просторовий розмір груп зображень на мапі. Може " "вплинути на час обчислення." -#: ../build/bin/conf_gen.h:1822 +#: ../build/bin/conf_gen.h:1908 msgid "min images per group" msgstr "Мінімально в групі" -#: ../build/bin/conf_gen.h:1823 +#: ../build/bin/conf_gen.h:1909 msgid "" "the minimum number of images to set up an images group. can influence the " "calculation time." @@ -489,289 +451,280 @@ "Мінімальна кількість зображень для створення групи зображень. Може вплинути " "на час обчислення." -#: ../build/bin/conf_gen.h:1828 +#: ../build/bin/conf_gen.h:1914 msgctxt "preferences" msgid "thumbnail" msgstr "мініатюри" -#: ../build/bin/conf_gen.h:1829 +#: ../build/bin/conf_gen.h:1915 msgctxt "preferences" msgid "count" msgstr "Кількість зображень" -#: ../build/bin/conf_gen.h:1832 ../src/libs/map_settings.c:159 +#: ../build/bin/conf_gen.h:1918 msgid "thumbnail display" msgstr "Показ мініатюр" -#: ../build/bin/conf_gen.h:1833 +#: ../build/bin/conf_gen.h:1919 msgid "" "three options are available: images thumbnails, only the count of images of " "the group or nothing" msgstr "" "Доступні три варіанти: мініатюри, лише кількість зображень групи або нічого." -#: ../build/bin/conf_gen.h:1844 +#: ../build/bin/conf_gen.h:1930 msgid "max polygon points" msgstr "Макс. точок полігонів" -#: ../build/bin/conf_gen.h:1845 +#: ../build/bin/conf_gen.h:1931 msgid "" "limit the number of points imported with polygon in find location module" msgstr "" "Обмежити кількість точок, імпортованих з багатокутником у модулі пошуку на " "мапі." -#: ../build/bin/conf_gen.h:2135 ../build/bin/preferences_gen.h:4722 -#: ../build/bin/preferences_gen.h:4756 +#: ../build/bin/conf_gen.h:2221 ../build/bin/preferences_gen.h:5329 msgctxt "preferences" msgid "original" msgstr "залишити оригінальну" -#: ../build/bin/conf_gen.h:2136 ../build/bin/preferences_gen.h:4727 +#: ../build/bin/conf_gen.h:2222 msgctxt "preferences" msgid "to 1/2" msgstr "до 1/2" -#: ../build/bin/conf_gen.h:2137 ../build/bin/preferences_gen.h:4732 +#: ../build/bin/conf_gen.h:2223 msgctxt "preferences" msgid "to 1/3" msgstr "до 1/3" -#: ../build/bin/conf_gen.h:2138 ../build/bin/preferences_gen.h:4737 +#: ../build/bin/conf_gen.h:2224 msgctxt "preferences" msgid "to 1/4" msgstr "до 1/4" -#: ../build/bin/conf_gen.h:2152 ../build/bin/conf_gen.h:2162 -#: ../build/bin/preferences_gen.h:5384 ../build/bin/preferences_gen.h:5449 +#: ../build/bin/conf_gen.h:2244 ../build/bin/conf_gen.h:2254 msgctxt "preferences" msgid "bilinear" msgstr "білінійний" -#: ../build/bin/conf_gen.h:2153 ../build/bin/conf_gen.h:2163 -#: ../build/bin/preferences_gen.h:5389 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5454 +#: ../build/bin/conf_gen.h:2245 ../build/bin/conf_gen.h:2255 +#: ../build/bin/preferences_gen.h:5847 msgctxt "preferences" msgid "bicubic" msgstr "бікубічний" -#: ../build/bin/conf_gen.h:2154 ../build/bin/conf_gen.h:2164 -#: ../build/bin/preferences_gen.h:5394 ../build/bin/preferences_gen.h:5459 +#: ../build/bin/conf_gen.h:2246 ../build/bin/conf_gen.h:2256 msgctxt "preferences" msgid "lanczos2" msgstr "lanczos2" -#: ../build/bin/conf_gen.h:2165 ../build/bin/preferences_gen.h:5464 -#: ../build/bin/preferences_gen.h:5483 +#: ../build/bin/conf_gen.h:2257 ../build/bin/preferences_gen.h:5882 msgctxt "preferences" msgid "lanczos3" msgstr "lanczos3" -#: ../build/bin/conf_gen.h:2487 ../build/bin/conf_gen.h:3217 -#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:6556 -#: ../build/bin/preferences_gen.h:6592 +#: ../build/bin/conf_gen.h:2577 ../build/bin/conf_gen.h:3303 +#: ../build/bin/preferences_gen.h:7032 msgctxt "preferences" msgid "auto" msgstr "авто" -#: ../build/bin/conf_gen.h:2489 ../build/bin/preferences_gen.h:6566 +#: ../build/bin/conf_gen.h:2579 msgctxt "preferences" msgid "libsecret" msgstr "libsecret" -#: ../build/bin/conf_gen.h:2490 ../build/bin/preferences_gen.h:6572 +#: ../build/bin/conf_gen.h:2580 msgctxt "preferences" msgid "kwallet" msgstr "kwallet" -#: ../build/bin/conf_gen.h:2700 +#: ../build/bin/conf_gen.h:2790 msgctxt "preferences" msgid "vectorscope" msgstr "vectorscope" -#: ../build/bin/conf_gen.h:2701 +#: ../build/bin/conf_gen.h:2791 msgctxt "preferences" msgid "waveform" msgstr "waveform" -#: ../build/bin/conf_gen.h:2702 +#: ../build/bin/conf_gen.h:2792 msgctxt "preferences" msgid "RGB parade" msgstr "RGB-парад" -#: ../build/bin/conf_gen.h:2703 +#: ../build/bin/conf_gen.h:2793 msgctxt "preferences" msgid "histogram" msgstr "histogram" -#: ../build/bin/conf_gen.h:2711 ../build/bin/preferences_gen.h:7264 +#: ../build/bin/conf_gen.h:2801 msgctxt "preferences" msgid "left" msgstr "зліва" -#: ../build/bin/conf_gen.h:2712 ../build/bin/preferences_gen.h:7269 -#: ../build/bin/preferences_gen.h:7288 +#: ../build/bin/conf_gen.h:2802 ../build/bin/preferences_gen.h:7619 msgctxt "preferences" msgid "right" msgstr "справа" -#: ../build/bin/conf_gen.h:2720 ../build/bin/conf_gen.h:2757 +#: ../build/bin/conf_gen.h:2810 ../build/bin/conf_gen.h:2847 msgctxt "preferences" msgid "logarithmic" msgstr "logarithmic" -#: ../build/bin/conf_gen.h:2721 ../build/bin/conf_gen.h:2758 +#: ../build/bin/conf_gen.h:2811 ../build/bin/conf_gen.h:2848 msgctxt "preferences" msgid "linear" msgstr "linear" -#: ../build/bin/conf_gen.h:2729 +#: ../build/bin/conf_gen.h:2819 msgctxt "preferences" msgid "horizontal" msgstr "горизонтально" -#: ../build/bin/conf_gen.h:2730 +#: ../build/bin/conf_gen.h:2820 msgctxt "preferences" msgid "vertical" msgstr "вертикально" -#: ../build/bin/conf_gen.h:2738 +#: ../build/bin/conf_gen.h:2828 msgctxt "preferences" msgid "overlaid" msgstr "overlaid" -#: ../build/bin/conf_gen.h:2739 +#: ../build/bin/conf_gen.h:2829 msgctxt "preferences" msgid "parade" msgstr "parade" -#: ../build/bin/conf_gen.h:2747 +#: ../build/bin/conf_gen.h:2837 msgctxt "preferences" msgid "u*v*" msgstr "u*v*" -#: ../build/bin/conf_gen.h:2748 +#: ../build/bin/conf_gen.h:2838 msgctxt "preferences" msgid "AzBz" msgstr "AzBz" -#: ../build/bin/conf_gen.h:2749 +#: ../build/bin/conf_gen.h:2839 msgctxt "preferences" msgid "RYB" msgstr "RYB" -#: ../build/bin/conf_gen.h:2791 +#: ../build/bin/conf_gen.h:2881 msgctxt "preferences" msgid "monochromatic" msgstr "монохроматична" -#: ../build/bin/conf_gen.h:2792 +#: ../build/bin/conf_gen.h:2882 msgctxt "preferences" msgid "analogous" msgstr "аналогова" -#: ../build/bin/conf_gen.h:2793 +#: ../build/bin/conf_gen.h:2883 msgctxt "preferences" msgid "analogous complementary" msgstr "аналогова комплементарна" -#: ../build/bin/conf_gen.h:2794 +#: ../build/bin/conf_gen.h:2884 msgctxt "preferences" msgid "complementary" msgstr "комплементарна" -#: ../build/bin/conf_gen.h:2795 +#: ../build/bin/conf_gen.h:2885 msgctxt "preferences" msgid "split complementary" msgstr "спліт-комплементарна" -#: ../build/bin/conf_gen.h:2796 +#: ../build/bin/conf_gen.h:2886 msgctxt "preferences" msgid "dyad" msgstr "діада" -#: ../build/bin/conf_gen.h:2797 +#: ../build/bin/conf_gen.h:2887 msgctxt "preferences" msgid "triad" msgstr "тріада" -#: ../build/bin/conf_gen.h:2798 +#: ../build/bin/conf_gen.h:2888 msgctxt "preferences" msgid "tetrad" msgstr "тетрада" -#: ../build/bin/conf_gen.h:2799 +#: ../build/bin/conf_gen.h:2889 msgctxt "preferences" msgid "square" msgstr "квадрат" -#: ../build/bin/conf_gen.h:2813 +#: ../build/bin/conf_gen.h:2903 msgctxt "preferences" msgid "normal" msgstr "нормальна" -#: ../build/bin/conf_gen.h:2815 +#: ../build/bin/conf_gen.h:2905 msgctxt "preferences" msgid "narrow" msgstr "вузька" -#: ../build/bin/conf_gen.h:2816 +#: ../build/bin/conf_gen.h:2906 msgctxt "preferences" msgid "line" msgstr "лінія" -#: ../build/bin/conf_gen.h:2956 +#: ../build/bin/conf_gen.h:3046 msgctxt "preferences" msgid "mm" msgstr "мм" -#: ../build/bin/conf_gen.h:2957 +#: ../build/bin/conf_gen.h:3047 msgctxt "preferences" msgid "cm" msgstr "см" -#: ../build/bin/conf_gen.h:2958 +#: ../build/bin/conf_gen.h:3048 msgctxt "preferences" msgid "inch" msgstr "дюйм" -#: ../build/bin/conf_gen.h:3003 ../build/bin/preferences_gen.h:7324 -#: ../build/bin/preferences_gen.h:7353 +#: ../build/bin/conf_gen.h:3093 ../build/bin/preferences_gen.h:7654 msgctxt "preferences" msgid "all" msgstr "всі" -#: ../build/bin/conf_gen.h:3004 ../build/bin/preferences_gen.h:7329 +#: ../build/bin/conf_gen.h:3094 msgctxt "preferences" msgid "xatom" msgstr "xatom" -#: ../build/bin/conf_gen.h:3005 ../build/bin/preferences_gen.h:7334 +#: ../build/bin/conf_gen.h:3095 msgctxt "preferences" msgid "colord" msgstr "colord" -#: ../build/bin/conf_gen.h:3041 ../build/bin/preferences_gen.h:5562 -#: ../build/bin/preferences_gen.h:5596 +#: ../build/bin/conf_gen.h:3133 ../build/bin/preferences_gen.h:5958 msgctxt "preferences" msgid "scene-referred (filmic)" msgstr "на основі сцен (filmic)" -#: ../build/bin/conf_gen.h:3042 ../build/bin/preferences_gen.h:5567 +#: ../build/bin/conf_gen.h:3134 msgctxt "preferences" msgid "scene-referred (sigmoid)" msgstr "на основі сцен (сигмоїда)" -#: ../build/bin/conf_gen.h:3043 ../build/bin/preferences_gen.h:5572 +#: ../build/bin/conf_gen.h:3135 msgctxt "preferences" msgid "display-referred (legacy)" msgstr "на основі відображення (застаріло)" -#: ../build/bin/conf_gen.h:3144 +#: ../build/bin/conf_gen.h:3230 msgid "camera time zone" msgstr "Часовий пояс камери" -#: ../build/bin/conf_gen.h:3145 +#: ../build/bin/conf_gen.h:3231 msgid "" "most cameras don't store the time zone in EXIF. give the correct time zone " "so the GPX data can be correctly matched" @@ -779,212 +732,272 @@ "Більшість камер на записує часовий пояс в EXIF. Вкажіть правильний часовий " "пояс, щоб дані з GPX були застосовані коректно." -#: ../build/bin/conf_gen.h:3156 +#: ../build/bin/conf_gen.h:3242 msgctxt "preferences" msgid "no color" msgstr "не змінювати" -#: ../build/bin/conf_gen.h:3157 +#: ../build/bin/conf_gen.h:3243 msgctxt "preferences" msgid "illuminant color" msgstr "колір джерела світла" -#: ../build/bin/conf_gen.h:3158 +#: ../build/bin/conf_gen.h:3244 msgctxt "preferences" msgid "effect emulation" msgstr "емуляція ефекту" -#: ../build/bin/conf_gen.h:3204 +#: ../build/bin/conf_gen.h:3290 msgctxt "preferences" msgid "list" msgstr "список" -#: ../build/bin/conf_gen.h:3205 +#: ../build/bin/conf_gen.h:3291 msgctxt "preferences" msgid "tabs" msgstr "вкладки" -#: ../build/bin/conf_gen.h:3206 +#: ../build/bin/conf_gen.h:3292 msgctxt "preferences" msgid "columns" msgstr "колонки" -#: ../build/bin/conf_gen.h:3215 ../build/bin/preferences_gen.h:5117 +#: ../build/bin/conf_gen.h:3301 msgctxt "preferences" msgid "active" msgstr "при наведенні" -#: ../build/bin/conf_gen.h:3216 ../build/bin/preferences_gen.h:5122 +#: ../build/bin/conf_gen.h:3302 msgctxt "preferences" msgid "dim" msgstr "підсвічувати тьмяні" -#: ../build/bin/conf_gen.h:3218 ../build/bin/preferences_gen.h:5132 +#: ../build/bin/conf_gen.h:3304 msgctxt "preferences" msgid "fade" msgstr "поступово прибирати" -#: ../build/bin/conf_gen.h:3219 ../build/bin/preferences_gen.h:5137 +#: ../build/bin/conf_gen.h:3305 msgctxt "preferences" msgid "fit" msgstr "пріоритет імені модуля" -#: ../build/bin/conf_gen.h:3220 ../build/bin/preferences_gen.h:5142 +#: ../build/bin/conf_gen.h:3306 msgctxt "preferences" msgid "smooth" msgstr "гасити одночасно при недостатній ширині" -#: ../build/bin/conf_gen.h:3221 ../build/bin/preferences_gen.h:5147 +#: ../build/bin/conf_gen.h:3307 msgctxt "preferences" msgid "glide" msgstr "витісняти при недостатній ширині" -#: ../build/bin/preferences_gen.h:81 ../build/bin/preferences_gen.h:3823 -#: ../build/bin/preferences_gen.h:3859 ../build/bin/preferences_gen.h:3895 -#: ../build/bin/preferences_gen.h:3931 ../build/bin/preferences_gen.h:3967 -#: ../build/bin/preferences_gen.h:4003 ../build/bin/preferences_gen.h:4039 -#: ../build/bin/preferences_gen.h:4083 ../build/bin/preferences_gen.h:4178 -#: ../build/bin/preferences_gen.h:4273 ../build/bin/preferences_gen.h:4313 -#: ../build/bin/preferences_gen.h:4356 ../build/bin/preferences_gen.h:4437 -#: ../build/bin/preferences_gen.h:4473 ../build/bin/preferences_gen.h:4510 -#: ../build/bin/preferences_gen.h:4553 ../build/bin/preferences_gen.h:4627 -#: ../build/bin/preferences_gen.h:4672 ../build/bin/preferences_gen.h:4708 -#: ../build/bin/preferences_gen.h:4778 ../build/bin/preferences_gen.h:4822 -#: ../build/bin/preferences_gen.h:4882 ../build/bin/preferences_gen.h:4918 -#: ../build/bin/preferences_gen.h:4954 ../build/bin/preferences_gen.h:4990 -#: ../build/bin/preferences_gen.h:5026 ../build/bin/preferences_gen.h:5062 -#: ../build/bin/preferences_gen.h:5098 ../build/bin/preferences_gen.h:5188 -#: ../build/bin/preferences_gen.h:5224 ../build/bin/preferences_gen.h:5260 -#: ../build/bin/preferences_gen.h:5334 ../build/bin/preferences_gen.h:5370 -#: ../build/bin/preferences_gen.h:5435 ../build/bin/preferences_gen.h:5505 -#: ../build/bin/preferences_gen.h:5548 ../build/bin/preferences_gen.h:5618 -#: ../build/bin/preferences_gen.h:5654 ../build/bin/preferences_gen.h:5690 -#: ../build/bin/preferences_gen.h:5734 ../build/bin/preferences_gen.h:5805 -#: ../build/bin/preferences_gen.h:5841 ../build/bin/preferences_gen.h:5877 -#: ../build/bin/preferences_gen.h:5913 ../build/bin/preferences_gen.h:5955 -#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6140 -#: ../build/bin/preferences_gen.h:6176 ../build/bin/preferences_gen.h:6212 -#: ../build/bin/preferences_gen.h:6248 ../build/bin/preferences_gen.h:6284 -#: ../build/bin/preferences_gen.h:6320 ../build/bin/preferences_gen.h:6356 -#: ../build/bin/preferences_gen.h:6392 ../build/bin/preferences_gen.h:6427 -#: ../build/bin/preferences_gen.h:6462 ../build/bin/preferences_gen.h:6498 -#: ../build/bin/preferences_gen.h:6542 ../build/bin/preferences_gen.h:6614 -#: ../build/bin/preferences_gen.h:6692 ../build/bin/preferences_gen.h:6767 -#: ../build/bin/preferences_gen.h:6820 ../build/bin/preferences_gen.h:6885 -#: ../build/bin/preferences_gen.h:6950 ../build/bin/preferences_gen.h:7024 -#: ../build/bin/preferences_gen.h:7060 ../build/bin/preferences_gen.h:7096 -#: ../build/bin/preferences_gen.h:7132 ../build/bin/preferences_gen.h:7168 -#: ../build/bin/preferences_gen.h:7204 ../build/bin/preferences_gen.h:7250 -#: ../build/bin/preferences_gen.h:7310 ../build/bin/preferences_gen.h:7375 -#: ../build/bin/preferences_gen.h:7429 ../build/bin/preferences_gen.h:7474 -#: ../build/bin/preferences_gen.h:7510 ../build/bin/preferences_gen.h:7546 -#: ../build/bin/preferences_gen.h:7582 ../build/bin/preferences_gen.h:7618 -#: ../build/bin/preferences_gen.h:7678 ../build/bin/preferences_gen.h:7722 -#: ../build/bin/preferences_gen.h:7766 ../build/bin/preferences_gen.h:7848 -#: ../build/bin/preferences_gen.h:7888 ../build/bin/preferences_gen.h:7928 -#: ../build/bin/preferences_gen.h:7964 ../build/bin/preferences_gen.h:8019 -#: ../build/bin/preferences_gen.h:8055 ../build/bin/preferences_gen.h:8115 -#: ../build/bin/preferences_gen.h:8161 ../build/bin/preferences_gen.h:8197 -#: ../build/bin/preferences_gen.h:8243 ../build/bin/preferences_gen.h:8303 -#: ../build/bin/preferences_gen.h:8355 ../build/bin/preferences_gen.h:8401 -#: ../build/bin/preferences_gen.h:8469 ../build/bin/preferences_gen.h:8516 +#: ../build/bin/preferences_gen.h:77 ../build/bin/preferences_gen.h:4305 +#: ../build/bin/preferences_gen.h:4344 ../build/bin/preferences_gen.h:4383 +#: ../build/bin/preferences_gen.h:4417 ../build/bin/preferences_gen.h:4488 +#: ../build/bin/preferences_gen.h:4522 ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:4590 ../build/bin/preferences_gen.h:4624 +#: ../build/bin/preferences_gen.h:4658 ../build/bin/preferences_gen.h:4692 +#: ../build/bin/preferences_gen.h:4733 ../build/bin/preferences_gen.h:4768 +#: ../build/bin/preferences_gen.h:4803 ../build/bin/preferences_gen.h:4837 +#: ../build/bin/preferences_gen.h:4871 ../build/bin/preferences_gen.h:4906 +#: ../build/bin/preferences_gen.h:4940 ../build/bin/preferences_gen.h:4979 +#: ../build/bin/preferences_gen.h:5020 ../build/bin/preferences_gen.h:5093 +#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:5162 +#: ../build/bin/preferences_gen.h:5203 ../build/bin/preferences_gen.h:5237 +#: ../build/bin/preferences_gen.h:5281 ../build/bin/preferences_gen.h:5315 +#: ../build/bin/preferences_gen.h:5350 ../build/bin/preferences_gen.h:5391 +#: ../build/bin/preferences_gen.h:5426 ../build/bin/preferences_gen.h:5460 +#: ../build/bin/preferences_gen.h:5494 ../build/bin/preferences_gen.h:5528 +#: ../build/bin/preferences_gen.h:5562 ../build/bin/preferences_gen.h:5596 +#: ../build/bin/preferences_gen.h:5630 ../build/bin/preferences_gen.h:5665 +#: ../build/bin/preferences_gen.h:5699 ../build/bin/preferences_gen.h:5733 +#: ../build/bin/preferences_gen.h:5799 ../build/bin/preferences_gen.h:5833 +#: ../build/bin/preferences_gen.h:5868 ../build/bin/preferences_gen.h:5903 +#: ../build/bin/preferences_gen.h:5944 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/preferences_gen.h:6013 ../build/bin/preferences_gen.h:6047 +#: ../build/bin/preferences_gen.h:6088 ../build/bin/preferences_gen.h:6124 +#: ../build/bin/preferences_gen.h:6165 ../build/bin/preferences_gen.h:6209 +#: ../build/bin/preferences_gen.h:6254 ../build/bin/preferences_gen.h:6305 +#: ../build/bin/preferences_gen.h:6349 ../build/bin/preferences_gen.h:6393 +#: ../build/bin/preferences_gen.h:6437 ../build/bin/preferences_gen.h:6481 +#: ../build/bin/preferences_gen.h:6525 ../build/bin/preferences_gen.h:6569 +#: ../build/bin/preferences_gen.h:6635 ../build/bin/preferences_gen.h:6669 +#: ../build/bin/preferences_gen.h:6703 ../build/bin/preferences_gen.h:6737 +#: ../build/bin/preferences_gen.h:6771 ../build/bin/preferences_gen.h:6805 +#: ../build/bin/preferences_gen.h:6839 ../build/bin/preferences_gen.h:6873 +#: ../build/bin/preferences_gen.h:6906 ../build/bin/preferences_gen.h:6939 +#: ../build/bin/preferences_gen.h:6973 ../build/bin/preferences_gen.h:7014 +#: ../build/bin/preferences_gen.h:7053 ../build/bin/preferences_gen.h:7124 +#: ../build/bin/preferences_gen.h:7159 ../build/bin/preferences_gen.h:7210 +#: ../build/bin/preferences_gen.h:7245 ../build/bin/preferences_gen.h:7280 +#: ../build/bin/preferences_gen.h:7324 ../build/bin/preferences_gen.h:7390 +#: ../build/bin/preferences_gen.h:7424 ../build/bin/preferences_gen.h:7458 +#: ../build/bin/preferences_gen.h:7492 ../build/bin/preferences_gen.h:7526 +#: ../build/bin/preferences_gen.h:7560 ../build/bin/preferences_gen.h:7605 +#: ../build/bin/preferences_gen.h:7640 ../build/bin/preferences_gen.h:7675 +#: ../build/bin/preferences_gen.h:7731 ../build/bin/preferences_gen.h:7772 +#: ../build/bin/preferences_gen.h:7806 ../build/bin/preferences_gen.h:7840 +#: ../build/bin/preferences_gen.h:7874 ../build/bin/preferences_gen.h:7908 +#: ../build/bin/preferences_gen.h:7943 ../build/bin/preferences_gen.h:7984 +#: ../build/bin/preferences_gen.h:8025 ../build/bin/preferences_gen.h:8085 +#: ../build/bin/preferences_gen.h:8119 ../build/bin/preferences_gen.h:8154 +#: ../build/bin/preferences_gen.h:8199 ../build/bin/preferences_gen.h:8233 +#: ../build/bin/preferences_gen.h:8278 ../build/bin/preferences_gen.h:8313 +#: ../build/bin/preferences_gen.h:8365 ../build/bin/preferences_gen.h:8410 +#: ../build/bin/preferences_gen.h:8480 ../build/bin/preferences_gen.h:8526 msgid "this setting has been modified" msgstr "Цей параметр було змінено." #. doesn't seem to work from gtkrc -#: ../build/bin/preferences_gen.h:3793 ../build/bin/preferences_gen.h:4407 -#: ../build/bin/preferences_gen.h:5304 ../build/bin/preferences_gen.h:6110 -#: ../build/bin/preferences_gen.h:6662 ../build/bin/preferences_gen.h:6994 -#: ../build/bin/preferences_gen.h:7818 ../src/gui/accelerators.c:2724 -#: ../src/gui/gtk.c:2580 ../src/gui/preferences.c:421 -#: ../src/gui/preferences.c:876 ../src/libs/modulegroups.c:3886 +#: ../build/bin/preferences_gen.h:4277 ../build/bin/preferences_gen.h:4460 +#: ../build/bin/preferences_gen.h:5065 ../build/bin/preferences_gen.h:5771 +#: ../build/bin/preferences_gen.h:6607 ../build/bin/preferences_gen.h:7096 +#: ../build/bin/preferences_gen.h:7362 ../src/gui/accelerators.c:2996 +#: ../src/gui/gtk.c:2641 ../src/gui/preferences.c:424 +#: ../src/gui/preferences.c:874 ../src/libs/modulegroups.c:3888 msgid "?" msgstr "?" -#: ../build/bin/preferences_gen.h:3806 ../build/bin/preferences_gen.h:4420 -#: ../build/bin/preferences_gen.h:6123 ../src/gui/preferences.c:270 -msgid "general" -msgstr "Загальні" +#: ../build/bin/preferences_gen.h:4287 ../src/control/jobs/control_jobs.c:2352 +#: ../src/libs/import.c:173 +msgid "import" +msgstr "Імпорт" -#: ../build/bin/preferences_gen.h:3826 -msgid "hide built-in presets for utility modules" -msgstr "Приховати вбудовані пресети сервісних модулів" +#: ../build/bin/preferences_gen.h:4289 +msgid "session options" +msgstr "Опції сеансу" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4017 -#: ../build/bin/preferences_gen.h:4053 ../build/bin/preferences_gen.h:4156 -#: ../build/bin/preferences_gen.h:4251 ../build/bin/preferences_gen.h:4291 -#: ../build/bin/preferences_gen.h:4334 ../build/bin/preferences_gen.h:4377 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4531 ../build/bin/preferences_gen.h:4606 -#: ../build/bin/preferences_gen.h:4686 ../build/bin/preferences_gen.h:4756 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4860 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5040 ../build/bin/preferences_gen.h:5076 -#: ../build/bin/preferences_gen.h:5166 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5274 -#: ../build/bin/preferences_gen.h:5348 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5483 ../build/bin/preferences_gen.h:5525 -#: ../build/bin/preferences_gen.h:5596 ../build/bin/preferences_gen.h:5632 -#: ../build/bin/preferences_gen.h:5668 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5782 ../build/bin/preferences_gen.h:5819 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:5927 ../build/bin/preferences_gen.h:5998 -#: ../build/bin/preferences_gen.h:6074 ../build/bin/preferences_gen.h:6154 -#: ../build/bin/preferences_gen.h:6190 ../build/bin/preferences_gen.h:6226 -#: ../build/bin/preferences_gen.h:6262 ../build/bin/preferences_gen.h:6298 -#: ../build/bin/preferences_gen.h:6334 ../build/bin/preferences_gen.h:6370 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:6592 ../build/bin/preferences_gen.h:6632 -#: ../build/bin/preferences_gen.h:6745 ../build/bin/preferences_gen.h:6863 -#: ../build/bin/preferences_gen.h:6928 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7146 -#: ../build/bin/preferences_gen.h:7182 ../build/bin/preferences_gen.h:7288 -#: ../build/bin/preferences_gen.h:7353 ../build/bin/preferences_gen.h:7393 -#: ../build/bin/preferences_gen.h:7443 ../build/bin/preferences_gen.h:7488 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7656 -#: ../build/bin/preferences_gen.h:7692 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:7866 ../build/bin/preferences_gen.h:7906 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:7982 -#: ../build/bin/preferences_gen.h:8033 ../build/bin/preferences_gen.h:8093 -#: ../build/bin/preferences_gen.h:8175 ../build/bin/preferences_gen.h:8281 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4308 +msgid "base directory naming pattern" +msgstr "Шаблон іменування базового каталогу" + +#: ../build/bin/preferences_gen.h:4323 ../build/bin/preferences_gen.h:4362 +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4435 +#: ../build/bin/preferences_gen.h:4501 ../build/bin/preferences_gen.h:4535 +#: ../build/bin/preferences_gen.h:4569 ../build/bin/preferences_gen.h:4603 +#: ../build/bin/preferences_gen.h:4637 ../build/bin/preferences_gen.h:4671 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4747 +#: ../build/bin/preferences_gen.h:4782 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:4850 ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:4958 +#: ../build/bin/preferences_gen.h:4999 ../build/bin/preferences_gen.h:5040 +#: ../build/bin/preferences_gen.h:5106 ../build/bin/preferences_gen.h:5140 +#: ../build/bin/preferences_gen.h:5182 ../build/bin/preferences_gen.h:5217 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5329 +#: ../build/bin/preferences_gen.h:5363 ../build/bin/preferences_gen.h:5405 +#: ../build/bin/preferences_gen.h:5439 ../build/bin/preferences_gen.h:5473 +#: ../build/bin/preferences_gen.h:5507 ../build/bin/preferences_gen.h:5541 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5644 ../build/bin/preferences_gen.h:5678 +#: ../build/bin/preferences_gen.h:5712 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5847 +#: ../build/bin/preferences_gen.h:5882 ../build/bin/preferences_gen.h:5922 +#: ../build/bin/preferences_gen.h:5958 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6060 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6178 ../build/bin/preferences_gen.h:6223 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6318 +#: ../build/bin/preferences_gen.h:6362 ../build/bin/preferences_gen.h:6406 +#: ../build/bin/preferences_gen.h:6450 ../build/bin/preferences_gen.h:6494 +#: ../build/bin/preferences_gen.h:6538 ../build/bin/preferences_gen.h:6582 +#: ../build/bin/preferences_gen.h:6648 ../build/bin/preferences_gen.h:6682 +#: ../build/bin/preferences_gen.h:6716 ../build/bin/preferences_gen.h:6750 +#: ../build/bin/preferences_gen.h:6784 ../build/bin/preferences_gen.h:6818 +#: ../build/bin/preferences_gen.h:6852 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7032 +#: ../build/bin/preferences_gen.h:7071 ../build/bin/preferences_gen.h:7138 +#: ../build/bin/preferences_gen.h:7224 ../build/bin/preferences_gen.h:7259 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7505 ../build/bin/preferences_gen.h:7539 +#: ../build/bin/preferences_gen.h:7619 ../build/bin/preferences_gen.h:7654 +#: ../build/bin/preferences_gen.h:7693 ../build/bin/preferences_gen.h:7744 +#: ../build/bin/preferences_gen.h:7785 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7922 ../build/bin/preferences_gen.h:7956 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8133 ../build/bin/preferences_gen.h:8212 +#: ../build/bin/preferences_gen.h:8292 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 #, c-format msgid "double click to reset to `%s'" msgstr "Подвійний клік для скидання до `%s'" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4053 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4686 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:5040 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5348 -#: ../build/bin/preferences_gen.h:5632 ../build/bin/preferences_gen.h:5668 -#: ../build/bin/preferences_gen.h:5819 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:6370 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7146 ../build/bin/preferences_gen.h:7443 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7692 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:8033 -#: ../build/bin/preferences_gen.h:8175 +#: ../build/bin/preferences_gen.h:4326 ../build/bin/preferences_gen.h:4365 +msgid "part of full import path for an import session" +msgstr "Частина повного шляху імпорту для сеансу імпорту." + +#: ../build/bin/preferences_gen.h:4347 +msgid "sub directory naming pattern" +msgstr "Шаблон іменування підкаталогів" + +#: ../build/bin/preferences_gen.h:4386 +msgid "keep original filename" +msgstr "Зберегти оригінальне ім'я файлу" + +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4501 +#: ../build/bin/preferences_gen.h:4535 ../build/bin/preferences_gen.h:4569 +#: ../build/bin/preferences_gen.h:4603 ../build/bin/preferences_gen.h:4637 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4850 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:5106 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5439 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5712 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6450 +#: ../build/bin/preferences_gen.h:6494 ../build/bin/preferences_gen.h:6538 +#: ../build/bin/preferences_gen.h:6582 ../build/bin/preferences_gen.h:6852 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7505 +#: ../build/bin/preferences_gen.h:7744 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7956 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8212 msgctxt "preferences" msgid "FALSE" msgstr "ВИМКНЕНО" -#: ../build/bin/preferences_gen.h:3840 +#: ../build/bin/preferences_gen.h:4399 +msgid "" +"keep original filename instead of a pattern while importing from camera or " +"card" +msgstr "" +"Зберігати оригінальне ім’я файлу замість застосування шаблону під час " +"імпортування з камери чи картки." + +#: ../build/bin/preferences_gen.h:4420 +msgid "file naming pattern" +msgstr "Шаблон іменування файлів" + +#: ../build/bin/preferences_gen.h:4438 +msgid "file naming pattern used for a import session" +msgstr "Шаблон іменування файлів, який використовується для сеансу імпорту." + +#: ../build/bin/preferences_gen.h:4470 ../src/gui/gtk.c:1266 +#: ../src/gui/preferences.c:544 ../src/libs/tools/lighttable.c:66 +#: ../src/views/lighttable.c:91 +msgid "lighttable" +msgstr "Світлий стіл" + +#: ../build/bin/preferences_gen.h:4472 ../build/bin/preferences_gen.h:5077 +#: ../build/bin/preferences_gen.h:6619 ../src/gui/preferences.c:270 +msgid "general" +msgstr "Загальні" + +#: ../build/bin/preferences_gen.h:4491 +msgid "hide built-in presets for utility modules" +msgstr "Приховати вбудовані пресети сервісних модулів" + +#: ../build/bin/preferences_gen.h:4504 msgid "hides built-in presets of utility modules in presets menu." msgstr "Приховує вбудовані пресети сервісних модулів в меню пресетів." -#: ../build/bin/preferences_gen.h:3862 +#: ../build/bin/preferences_gen.h:4525 msgid "use single-click in the collections module" msgstr "Використовувати одиночне натискання в модулі колекцій" -#: ../build/bin/preferences_gen.h:3876 +#: ../build/bin/preferences_gen.h:4538 msgid "" "check this option to use single-click to select items in the collections " "module. this will allow you to do range selections for date-time and numeric " @@ -994,19 +1007,19 @@ "модулі колекцій. Це дозволить вам вибирати діапазони для дати-часу та " "числових значень." -#: ../build/bin/preferences_gen.h:3898 +#: ../build/bin/preferences_gen.h:4559 msgid "expand a single utility module at a time" msgstr "Розгортати одночасно лише один сервісний модуль" -#: ../build/bin/preferences_gen.h:3912 +#: ../build/bin/preferences_gen.h:4572 msgid "this option toggles the behavior of shift clicking in lighttable mode" msgstr "Ця опція перемикає поведінку shift+клік в режимі світлого стола." -#: ../build/bin/preferences_gen.h:3934 +#: ../build/bin/preferences_gen.h:4593 msgid "scroll utility modules to the top when expanded" msgstr "Підняти розгорнутий сервісний модуль якнайвище в панелі" -#: ../build/bin/preferences_gen.h:3948 ../build/bin/preferences_gen.h:5079 +#: ../build/bin/preferences_gen.h:4606 ../build/bin/preferences_gen.h:5612 msgid "" "when this option is enabled then darktable will try to scroll the module to " "the top of the visible list" @@ -1014,62 +1027,64 @@ "Коли цю опцію ввімкнено, darktable спробує прокрутити модуль до початку " "видимого списку." -#: ../build/bin/preferences_gen.h:3970 +#: ../build/bin/preferences_gen.h:4627 msgid "rating an image one star twice will not zero out the rating" msgstr "Повторна оцінка однією зіркою не обнуляє рейтинг" -#: ../build/bin/preferences_gen.h:3984 +#: ../build/bin/preferences_gen.h:4640 msgid "" "defines whether rating an image one star twice will zero out star rating" msgstr "" "Визначає, чи буде повторна оцінка зображення однією зіркою обнуляти рейтинг." -#: ../build/bin/preferences_gen.h:4006 ../build/bin/preferences_gen.h:4675 +#: ../build/bin/preferences_gen.h:4661 ../build/bin/preferences_gen.h:5284 msgid "show scrollbars for central view" msgstr "Показати смуги прокрутки для центральної панелі" -#: ../build/bin/preferences_gen.h:4017 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5076 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5274 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5927 -#: ../build/bin/preferences_gen.h:6154 ../build/bin/preferences_gen.h:6190 -#: ../build/bin/preferences_gen.h:6226 ../build/bin/preferences_gen.h:6262 -#: ../build/bin/preferences_gen.h:6298 ../build/bin/preferences_gen.h:6334 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7182 -#: ../build/bin/preferences_gen.h:7488 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4671 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:5140 ../build/bin/preferences_gen.h:5363 +#: ../build/bin/preferences_gen.h:5473 ../build/bin/preferences_gen.h:5507 +#: ../build/bin/preferences_gen.h:5541 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5678 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:6060 ../build/bin/preferences_gen.h:6178 +#: ../build/bin/preferences_gen.h:6318 ../build/bin/preferences_gen.h:6362 +#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6648 +#: ../build/bin/preferences_gen.h:6682 ../build/bin/preferences_gen.h:6716 +#: ../build/bin/preferences_gen.h:6750 ../build/bin/preferences_gen.h:6784 +#: ../build/bin/preferences_gen.h:6818 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7539 ../build/bin/preferences_gen.h:7785 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 msgctxt "preferences" msgid "TRUE" msgstr "УВІМКНЕНО" -#: ../build/bin/preferences_gen.h:4020 ../build/bin/preferences_gen.h:4689 +#: ../build/bin/preferences_gen.h:4674 ../build/bin/preferences_gen.h:5297 msgid "defines whether scrollbars should be displayed" msgstr "Визначає, чи відображати смуги прокрутки." -#: ../build/bin/preferences_gen.h:4042 +#: ../build/bin/preferences_gen.h:4695 msgid "show image time with milliseconds" msgstr "Показувати час зображення з мілісекундами" -#: ../build/bin/preferences_gen.h:4056 +#: ../build/bin/preferences_gen.h:4708 msgid "defines whether time should be displayed with milliseconds" msgstr "Визначає, чи відображати час із мілісекундами." -#: ../build/bin/preferences_gen.h:4066 +#: ../build/bin/preferences_gen.h:4717 msgid "thumbnails" msgstr "Мініатюри" -#: ../build/bin/preferences_gen.h:4086 +#: ../build/bin/preferences_gen.h:4736 msgid "use raw file instead of embedded JPEG from size" msgstr "" "Розмір мініатюри, від якого використовується raw файл замість вбудованого " "JPEG" -#: ../build/bin/preferences_gen.h:4159 +#: ../build/bin/preferences_gen.h:4750 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "raw file instead of the embedded preview JPEG (better but slower).\n" @@ -1084,11 +1099,11 @@ "найкращій якості, слід вибрати опцію *завжди*.\n" "(більше коментарів у посібнику)" -#: ../build/bin/preferences_gen.h:4181 +#: ../build/bin/preferences_gen.h:4771 msgid "high quality processing from size" msgstr "Мінімальний розмір для високоякісної обробки мініатюр" -#: ../build/bin/preferences_gen.h:4254 +#: ../build/bin/preferences_gen.h:4785 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "the full quality rendering path (better but slower).\n" @@ -1103,11 +1118,83 @@ "найкращій якості, слід вибрати опцію *завжди*.\n" "(більше коментарів у посібнику)" -#: ../build/bin/preferences_gen.h:4276 +#: ../build/bin/preferences_gen.h:4806 +msgid "enable disk backend for thumbnail cache" +msgstr "Увімкнути запис кешу мініатюр на диск" + +#: ../build/bin/preferences_gen.h:4819 +msgid "" +"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want. light table " +"performance will be increased greatly when browsing a lot.\n" +"to generate all thumbnails of your entire collection offline, run 'darktable-" +"generate-cache'." +msgstr "" +"Якщо ввімкнено, записує мініатюри на диск (.cache/darktable/) при витісненні " +"з кешу пам'яті.\n" +"Зауважте, що це може зайняти багато пам’яті (кілька гігабайт для 20 тис. " +"зображень) і кешовані мініатюри ніколи не будуть видалятися.\n" +"Якщо хочете, можете видалити їх вручну, це безпечно.\n" +"З кешуванням продуктивність світлого столу значно збільшиться, якщо ви " +"переглядаєте багато мініатюр.\n" +"Щоб генерувати всі мініатюри всієї вашої колекції в автономному режимі, " +"запустіть 'darktable-generate-cache'." + +#: ../build/bin/preferences_gen.h:4840 +msgid "enable disk backend for full preview cache" +msgstr "Увімкнути запис кешу повнорозмірних зображень на диск" + +#: ../build/bin/preferences_gen.h:4853 +msgid "" +"if enabled, write full preview to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want.\n" +"light table performance will be increased greatly when zooming image in full " +"preview mode." +msgstr "" +"Якщо ввімкнено, записує повний попередній перегляд на диск (.cache/" +"darktable/) при витісненні з кешу пам'яті.\n" +"Зауважте, що це може зайняти багато пам’яті (кілька гігабайт для 20 тис. " +"зображень) і кешовані мініатюри ніколи не будуть видалятися.\n" +"Якщо хочете, можете видалити їх вручну, це безпечно.\n" +"З кешуванням продуктивність світлого столу значно збільшиться при " +"масштабуванні зображення в режимі повного попереднього перегляду." + +#: ../build/bin/preferences_gen.h:4874 +msgid "generate thumbnails in background" +msgstr "Cтворювати мініатюри у фоновому режимі" + +#: ../build/bin/preferences_gen.h:4888 +msgid "" +"if 'enable disk backend for thumbnail cache' is enabled thumbnails/mipmaps " +"up to the selected size are generated while user is inactive in lighttable." +msgstr "" +"Якщо активовано \"Увімкнути запис кешу мініатюр на диск\", мініатюри аж до " +"вибраного розміру створюються, поки користувач неактивний в режимі Світлого " +"стола." + +#: ../build/bin/preferences_gen.h:4909 +msgid "reset cached thumbnails" +msgstr "Скинути кешовані мініатюри" + +#: ../build/bin/preferences_gen.h:4922 +msgid "" +"force thumbnails to be regenerated by resetting the database. this may be " +"needed in case some thumbnails have been manually removed or corrupted." +msgstr "" +"Примусово повторно створити мініатюри шляхом скидання в базі даних. Це може " +"знадобитися, якщо деякі мініатюри пошкоджено або їх було видалено вручну." + +#: ../build/bin/preferences_gen.h:4943 msgid "delimiters for size categories" msgstr "Роздільники для категорій розміру" -#: ../build/bin/preferences_gen.h:4294 +#: ../build/bin/preferences_gen.h:4961 msgid "" "size categories are used to be able to set different overlays and CSS values " "depending of the size of the thumbnail, separated by |.\n" @@ -1119,24 +1206,29 @@ "від розміру мініатюри. Вони розділяються знаком '|'. Наприклад, 120|400 " "означає 3 категорії мініатюр: <120px, від 120px до 400px, >400px." -#: ../build/bin/preferences_gen.h:4316 +#: ../build/bin/preferences_gen.h:4982 msgid "pattern for the thumbnail extended overlay text" msgstr "Шаблон для тексту розширеної інформації на мініатюрах" -#: ../build/bin/preferences_gen.h:4337 ../build/bin/preferences_gen.h:4380 +#: ../build/bin/preferences_gen.h:5002 ../build/bin/preferences_gen.h:5043 msgid "see manual to know all the tags you can use." msgstr "" "Дивіться посібник, щоб дізнатися про всі теги, якими ви можете користуватися." -#: ../build/bin/preferences_gen.h:4359 +#: ../build/bin/preferences_gen.h:5023 msgid "pattern for the thumbnail tooltip (empty to disable)" msgstr "Шаблон для спливних підказок мініатюр (порожній для вимкнення)" -#: ../build/bin/preferences_gen.h:4440 +#: ../build/bin/preferences_gen.h:5075 ../src/gui/gtk.c:1267 +#: ../src/gui/preferences.c:544 ../src/views/darkroom.c:94 +msgid "darkroom" +msgstr "Темна кімната" + +#: ../build/bin/preferences_gen.h:5096 msgid "scroll down to increase mask parameters" msgstr "Прокручувати вниз для збільшення параметрів маски" -#: ../build/bin/preferences_gen.h:4454 +#: ../build/bin/preferences_gen.h:5109 msgid "" "when using the mouse scroll wheel to change mask parameters, scroll down to " "increase the mask size, feather size, opacity, brush hardness and gradient " @@ -1149,11 +1241,11 @@ "пензля та вигин градієнта.\n" "За замовчуванням прокручування вгору збільшує ці параметри." -#: ../build/bin/preferences_gen.h:4476 +#: ../build/bin/preferences_gen.h:5130 msgid "middle mouse button zooms to 200%" msgstr "Середня кнопка миші масштабує до 200%" -#: ../build/bin/preferences_gen.h:4491 +#: ../build/bin/preferences_gen.h:5144 #, no-c-format msgid "" "if enabled, the zoom level will cycle between 100%, 200% and fit to viewport " @@ -1165,34 +1257,34 @@ "вимкнено, він буде перемикатись між розміром панелі перегляду та 100%, а " "клавішу Ctrl можна використовувати для керування рівнем масштабування." -#: ../build/bin/preferences_gen.h:4513 +#: ../build/bin/preferences_gen.h:5165 msgid "pattern for the image information line" msgstr "Шаблон для інформаційного рядка зображення" -#: ../build/bin/preferences_gen.h:4534 +#: ../build/bin/preferences_gen.h:5185 msgid "see manual for a list of the tags you can use." msgstr "" "Дивіться посібник, щоб дізнатися перелік тегів, якими ви можете " "користуватися." -#: ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:5206 msgid "position of the image information line" msgstr "Розміщення інформаційного рядка зображення" -#: ../build/bin/preferences_gen.h:4630 +#: ../build/bin/preferences_gen.h:5240 msgid "border around image in darkroom mode" msgstr "Облямівка навколо зображення в режимі темної кімнати" -#: ../build/bin/preferences_gen.h:4650 ../build/bin/preferences_gen.h:6790 -#: ../build/bin/preferences_gen.h:7228 ../build/bin/preferences_gen.h:7789 -#: ../build/bin/preferences_gen.h:8139 ../build/bin/preferences_gen.h:8221 -#: ../build/bin/preferences_gen.h:8379 ../build/bin/preferences_gen.h:8493 -#: ../build/bin/preferences_gen.h:8540 +#: ../build/bin/preferences_gen.h:5260 ../build/bin/preferences_gen.h:7182 +#: ../build/bin/preferences_gen.h:7303 ../build/bin/preferences_gen.h:7584 +#: ../build/bin/preferences_gen.h:8048 ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8257 ../build/bin/preferences_gen.h:8389 +#: ../build/bin/preferences_gen.h:8504 ../build/bin/preferences_gen.h:8550 #, c-format msgid "double click to reset to `%d'" msgstr "Подвійний клік для скидання до `%d'" -#: ../build/bin/preferences_gen.h:4653 +#: ../build/bin/preferences_gen.h:5263 msgid "" "process the image in darkroom mode with a small border. set to 0 if you " "don't want any border." @@ -1200,21 +1292,21 @@ "Обробляти зображення в режимі темної кімнати з невеликою облямівкою.\n" "Встановіть в 0, якщо не хочете жодної облямівки." -#: ../build/bin/preferences_gen.h:4711 +#: ../build/bin/preferences_gen.h:5318 msgid "reduce resolution of preview image" msgstr "Зменшити роздільну здатність попереднього перегляду" -#: ../build/bin/preferences_gen.h:4759 +#: ../build/bin/preferences_gen.h:5332 msgid "decrease to speed up preview rendering, may hinder accurate masking" msgstr "" "Зменшення прискорить візуалізацію попереднього перегляду, може заважати " "точному маскуванню." -#: ../build/bin/preferences_gen.h:4781 +#: ../build/bin/preferences_gen.h:5353 msgid "show loading screen between images" msgstr "Показувати екран завантаження між зображеннями" -#: ../build/bin/preferences_gen.h:4795 +#: ../build/bin/preferences_gen.h:5366 msgid "" "show gray loading screen when navigating between images in the darkroom\n" "disable to just show a toast message" @@ -1224,15 +1316,15 @@ "Якщо вимкнено, буде просто показуватись тимчасове сповіщення про виконання " "операції." -#: ../build/bin/preferences_gen.h:4805 +#: ../build/bin/preferences_gen.h:5375 msgid "modules" msgstr "Модулі" -#: ../build/bin/preferences_gen.h:4825 +#: ../build/bin/preferences_gen.h:5394 msgid "display of individual color channels" msgstr "Відображення окремих кольорових каналів" -#: ../build/bin/preferences_gen.h:4863 +#: ../build/bin/preferences_gen.h:5408 msgid "" "defines how color channels are displayed when activated in the parametric " "masks feature." @@ -1240,34 +1332,34 @@ "Визначає спосіб відображення кольорових каналів при активації у функції " "параметричних масок." -#: ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:5429 msgid "hide built-in presets for processing modules" msgstr "Приховати вбудовані пресети модулів обробки" -#: ../build/bin/preferences_gen.h:4899 +#: ../build/bin/preferences_gen.h:5442 msgid "" "hides built-in presets of processing modules in both presets and favourites " "menu." msgstr "Приховує вбудовані пресети модулів обробки." -#: ../build/bin/preferences_gen.h:4921 ../build/bin/preferences_gen.h:4935 +#: ../build/bin/preferences_gen.h:5463 ../build/bin/preferences_gen.h:5476 msgid "show the guides widget in modules UI" msgstr "Показувати віджет напрямних в інтерфейсі модулів" -#: ../build/bin/preferences_gen.h:4957 +#: ../build/bin/preferences_gen.h:5497 msgid "expand a single processing module at a time" msgstr "Розгортати одночасно лише один модуль обробки" -#: ../build/bin/preferences_gen.h:4971 +#: ../build/bin/preferences_gen.h:5510 msgid "this option toggles the behavior of shift clicking in darkroom mode" msgstr "" "Ця опція перемикає поведінку натискання з Shift в режимі темної кімнати." -#: ../build/bin/preferences_gen.h:4993 +#: ../build/bin/preferences_gen.h:5531 msgid "only collapse modules in current group" msgstr "Згортати модулі лише в поточній групі" -#: ../build/bin/preferences_gen.h:5007 +#: ../build/bin/preferences_gen.h:5544 msgid "" "if only expanding a single module at a time, only collapse other modules in " "the current group - ignore modules in other groups" @@ -1275,11 +1367,11 @@ "В режимі розгортання лише одного модуля згортати інші модулі лише в поточній " "групі - ігнорувати модулі в інших групах." -#: ../build/bin/preferences_gen.h:5029 +#: ../build/bin/preferences_gen.h:5565 msgid "expand the module when it is activated, and collapse it when disabled" msgstr "Розгортати активований модуль і згортати, коли його вимкнено" -#: ../build/bin/preferences_gen.h:5043 +#: ../build/bin/preferences_gen.h:5578 msgid "" "this option allows to expand or collapse automatically the module when it is " "enabled or disabled." @@ -1287,15 +1379,15 @@ "Ця опція дозволяє автоматично розгортати або згортати модуль, коли він " "увімкнений або вимкнений." -#: ../build/bin/preferences_gen.h:5065 +#: ../build/bin/preferences_gen.h:5599 msgid "scroll processing modules to the top when expanded" msgstr "Підняти розгорнутий модуль обробки якнайвище в панелі" -#: ../build/bin/preferences_gen.h:5101 +#: ../build/bin/preferences_gen.h:5633 msgid "show right-side buttons in processing module headers" msgstr "Показувати кнопки в заголовках модулів обробки" -#: ../build/bin/preferences_gen.h:5169 +#: ../build/bin/preferences_gen.h:5647 msgid "" "when the mouse is not over a module, the multi-instance, reset and preset " "buttons can be hidden:\n" @@ -1324,11 +1416,11 @@ " - 'Витісняти при недостатній ширині': поступово приховуються окремі кнопки " "за потреби" -#: ../build/bin/preferences_gen.h:5191 +#: ../build/bin/preferences_gen.h:5668 msgid "show mask indicator in module headers" msgstr "Показувати індикатор маски в заголовках модулів" -#: ../build/bin/preferences_gen.h:5205 +#: ../build/bin/preferences_gen.h:5681 msgid "" "if enabled, an icon will be shown in the header of any processing modules " "that have a mask applied" @@ -1336,11 +1428,11 @@ "Якщо ввімкнено, у заголовку будь-яких модулів обробки, до яких застосовано " "маску, відображатиметься піктограма." -#: ../build/bin/preferences_gen.h:5227 +#: ../build/bin/preferences_gen.h:5702 msgid "prompt for name on addition of new instance" msgstr "Запитувати ім'я при додаванні нового екземпляра" -#: ../build/bin/preferences_gen.h:5241 +#: ../build/bin/preferences_gen.h:5715 msgid "" "if enabled, a rename prompt will be present for each new module instance " "(either new instance or duplicate)" @@ -1348,11 +1440,11 @@ "Якщо ввімкнено, запит на перейменування з'являтиметься для кожного нового " "екземпляра модуля (як нового екземпляра, так і дубліката)." -#: ../build/bin/preferences_gen.h:5263 +#: ../build/bin/preferences_gen.h:5736 msgid "automatically update module name" msgstr "Автоматично оновлювати ім'я модуля" -#: ../build/bin/preferences_gen.h:5277 +#: ../build/bin/preferences_gen.h:5749 msgid "" "if enabled, the module name will be automatically updated to match a preset " "name or a preset instance name if present." @@ -1360,24 +1452,28 @@ "Якщо ввімкнено, ім'я модуля буде автоматично оновлено відповідно до імені " "пресету або імені екземпляра пресету, якщо він є." -#: ../build/bin/preferences_gen.h:5317 +#: ../build/bin/preferences_gen.h:5781 +msgid "processing" +msgstr "Обробка" + +#: ../build/bin/preferences_gen.h:5783 msgid "image processing" msgstr "Обробка зображення" -#: ../build/bin/preferences_gen.h:5337 +#: ../build/bin/preferences_gen.h:5802 msgid "always use LittleCMS 2 to apply output color profile" msgstr "" "Завжди використовувати LittleCMS 2, щоб застосувати вихідний колірний профіль" -#: ../build/bin/preferences_gen.h:5351 +#: ../build/bin/preferences_gen.h:5815 msgid "this is slower than the default." msgstr "Це повільніше, ніж за замовчуванням." -#: ../build/bin/preferences_gen.h:5373 +#: ../build/bin/preferences_gen.h:5836 msgid "pixel interpolator (warp)" msgstr "Інтерполятор пікселів (деформації)" -#: ../build/bin/preferences_gen.h:5416 +#: ../build/bin/preferences_gen.h:5850 msgid "" "pixel interpolator used in modules for rotation, lens correction, liquify, " "cropping and final scaling (bilinear, bicubic, lanczos2)." @@ -1387,33 +1483,33 @@ "деформаціях, обрізанні та остаточному масштабуванні (білінійний, бікубічний, " "lanczos2)." -#: ../build/bin/preferences_gen.h:5438 +#: ../build/bin/preferences_gen.h:5871 msgid "pixel interpolator (scaling)" msgstr "Інтерполятор пікселів (масштабування)" -#: ../build/bin/preferences_gen.h:5486 +#: ../build/bin/preferences_gen.h:5885 msgid "" "pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." msgstr "" "Інтерполятор пікселів, що використовується при масштабуванні\n" "(білінійний, бікубічний, lanczos2, lanczos3)." -#: ../build/bin/preferences_gen.h:5508 +#: ../build/bin/preferences_gen.h:5906 msgid "LUT 3D root folder" msgstr "Кореневий каталог LUT 3D" -#: ../build/bin/preferences_gen.h:5513 ../src/control/jobs/control_jobs.c:1688 -#: ../src/control/jobs/control_jobs.c:1742 ../src/gui/preferences.c:1081 -#: ../src/gui/presets.c:419 ../src/imageio/storage/disk.c:122 -#: ../src/imageio/storage/disk.c:178 ../src/imageio/storage/gallery.c:109 -#: ../src/imageio/storage/gallery.c:163 ../src/imageio/storage/latex.c:108 -#: ../src/imageio/storage/latex.c:162 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/import.c:1664 ../src/libs/styles.c:391 +#: ../build/bin/preferences_gen.h:5912 ../src/control/jobs/control_jobs.c:1691 +#: ../src/control/jobs/control_jobs.c:1745 ../src/gui/preferences.c:1080 +#: ../src/gui/presets.c:421 ../src/imageio/storage/disk.c:197 +#: ../src/imageio/storage/disk.c:261 ../src/imageio/storage/gallery.c:149 +#: ../src/imageio/storage/gallery.c:213 ../src/imageio/storage/latex.c:145 +#: ../src/imageio/storage/latex.c:199 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1673 ../src/libs/styles.c:391 #: ../src/lua/preferences.c:668 msgid "select directory" msgstr "Виберіть каталог" -#: ../build/bin/preferences_gen.h:5529 +#: ../build/bin/preferences_gen.h:5926 msgid "" "this folder (and sub-folders) contains LUT files used by LUT 3D module. " "(need a restart)." @@ -1422,11 +1518,11 @@ "модулем LUT 3D.\n" "(потрібен перезапуск)." -#: ../build/bin/preferences_gen.h:5551 +#: ../build/bin/preferences_gen.h:5947 msgid "auto-apply pixel workflow defaults" msgstr "Автозастосування замовчувань робочого процесу" -#: ../build/bin/preferences_gen.h:5599 +#: ../build/bin/preferences_gen.h:5961 msgid "" "scene-referred workflow is based on linear modules and will auto-apply " "filmic or sigmoid, color calibration and exposure,\n" @@ -1441,11 +1537,11 @@ "модулі 'Базова крива', 'Баланс білого' та застарілий порядок модулів у " "конвеєрі." -#: ../build/bin/preferences_gen.h:5621 +#: ../build/bin/preferences_gen.h:5982 msgid "auto-apply per camera basecurve presets" msgstr "Автозастосування пресетів базових кривих у відповідності до камери" -#: ../build/bin/preferences_gen.h:5635 +#: ../build/bin/preferences_gen.h:5995 msgid "" "use the per-camera basecurve by default instead of the generic manufacturer " "one if there is one available (needs a restart).\n" @@ -1462,11 +1558,11 @@ "\"автозастосування замовчувань робочого процесу\" має бути встановлено на " "\"немає\"." -#: ../build/bin/preferences_gen.h:5657 +#: ../build/bin/preferences_gen.h:6016 msgid "detect monochrome previews" msgstr "Виявляти монохромні зображення" -#: ../build/bin/preferences_gen.h:5671 +#: ../build/bin/preferences_gen.h:6029 msgid "" "many monochrome images can be identified via EXIF and preview data. beware: " "this slows down imports and reading of EXIF data" @@ -1475,11 +1571,11 @@ "попереднього перегляду.\n" "Будьте обережні: це уповільнює імпорт та зчитування даних EXIF." -#: ../build/bin/preferences_gen.h:5693 +#: ../build/bin/preferences_gen.h:6050 msgid "show warning messages" msgstr "Показувати попереджувальні повідомлення" -#: ../build/bin/preferences_gen.h:5707 +#: ../build/bin/preferences_gen.h:6063 msgid "" "display messages in modules to warn beginner users when non-standard and " "possibly harmful settings are used in the pipeline.\n" @@ -1491,15 +1587,15 @@ "Ці повідомлення можуть бути хибнопозитивними, і їх слід ігнорувати, якщо ви " "знаєте, що робите. Цей параметр буде постійно їх приховувати." -#: ../build/bin/preferences_gen.h:5717 -msgid "CPU / GPU / memory" -msgstr "CPU / GPU / пам'ять" +#: ../build/bin/preferences_gen.h:6072 +msgid "CPU / memory" +msgstr "CPU / Пам'ять" -#: ../build/bin/preferences_gen.h:5737 +#: ../build/bin/preferences_gen.h:6091 msgid "darktable resources" msgstr "Рівень ресурсів для darktable" -#: ../build/bin/preferences_gen.h:5786 +#: ../build/bin/preferences_gen.h:6106 #, no-c-format msgid "" "defines how much darktable may take from your system resources:\n" @@ -1530,11 +1626,11 @@ " Використовуйте 'без обмежень' з обережністю, не рекомендується для " "загального використання!" -#: ../build/bin/preferences_gen.h:5808 +#: ../build/bin/preferences_gen.h:6127 msgid "prefer performance over quality" msgstr "Віддавати перевагу продуктивності перед якістю" -#: ../build/bin/preferences_gen.h:5822 +#: ../build/bin/preferences_gen.h:6140 msgid "" "if switched on, thumbnails and previews are rendered at lower quality but 4 " "times faster" @@ -1542,58 +1638,15 @@ "Якщо ввімкнено, мініатюри та попередній перегляд відображаються з нижчою " "якістю, але в 4 рази швидше." -#: ../build/bin/preferences_gen.h:5844 -msgid "enable disk backend for thumbnail cache" -msgstr "Увімкнути запис кешу мініатюр на диск" - -#: ../build/bin/preferences_gen.h:5858 -msgid "" -"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want. light table " -"performance will be increased greatly when browsing a lot.\n" -"to generate all thumbnails of your entire collection offline, run 'darktable-" -"generate-cache'." -msgstr "" -"Якщо ввімкнено, записує мініатюри на диск (.cache/darktable/) при витісненні " -"з кешу пам'яті.\n" -"Зауважте, що це може зайняти багато пам’яті (кілька гігабайт для 20 тис. " -"зображень) і кешовані мініатюри ніколи не будуть видалятися.\n" -"Якщо хочете, можете видалити їх вручну, це безпечно.\n" -"З кешуванням продуктивність світлого столу значно збільшиться, якщо ви " -"переглядаєте багато мініатюр.\n" -"Щоб генерувати всі мініатюри всієї вашої колекції в автономному режимі, " -"запустіть 'darktable-generate-cache'." - -#: ../build/bin/preferences_gen.h:5880 -msgid "enable disk backend for full preview cache" -msgstr "Увімкнути запис кешу повнорозмірних зображень на диск" +#: ../build/bin/preferences_gen.h:6149 +msgid "OpenCL" +msgstr "OpenCL" -#: ../build/bin/preferences_gen.h:5894 -msgid "" -"if enabled, write full preview to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want.\n" -"light table performance will be increased greatly when zooming image in full " -"preview mode." -msgstr "" -"Якщо ввімкнено, записує повний попередній перегляд на диск (.cache/" -"darktable/) при витісненні з кешу пам'яті.\n" -"Зауважте, що це може зайняти багато пам’яті (кілька гігабайт для 20 тис. " -"зображень) і кешовані мініатюри ніколи не будуть видалятися.\n" -"Якщо хочете, можете видалити їх вручну, це безпечно.\n" -"З кешуванням продуктивність світлого столу значно збільшиться при " -"масштабуванні зображення в режимі повного попереднього перегляду." - -#: ../build/bin/preferences_gen.h:5916 +#: ../build/bin/preferences_gen.h:6168 msgid "activate OpenCL support" msgstr "Активувати підтримку OpenCL" -#: ../build/bin/preferences_gen.h:5930 +#: ../build/bin/preferences_gen.h:6181 msgid "" "if found, use OpenCL runtime on your system to speed up processing.\n" "can be switched on and off at any time." @@ -1602,23 +1655,32 @@ "обробки.\n" "Можна вмикати та вимикати в будь-який час." -#: ../build/bin/preferences_gen.h:5931 ../build/bin/preferences_gen.h:6002 -#: ../build/bin/preferences_gen.h:6078 ../build/bin/preferences_gen.h:7397 +#: ../build/bin/preferences_gen.h:6185 ../build/bin/preferences_gen.h:6230 +#: ../build/bin/preferences_gen.h:6274 ../build/bin/preferences_gen.h:6325 +#: ../build/bin/preferences_gen.h:6369 ../build/bin/preferences_gen.h:6413 +#: ../build/bin/preferences_gen.h:6457 ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6545 ../build/bin/preferences_gen.h:7700 msgid "not available" msgstr "Недоступно" -#: ../build/bin/preferences_gen.h:5934 ../build/bin/preferences_gen.h:5938 -#: ../build/bin/preferences_gen.h:6005 ../build/bin/preferences_gen.h:6009 -#: ../build/bin/preferences_gen.h:6081 ../build/bin/preferences_gen.h:6085 -#: ../build/bin/preferences_gen.h:7400 ../build/bin/preferences_gen.h:7404 +#: ../build/bin/preferences_gen.h:6187 ../build/bin/preferences_gen.h:6188 +#: ../build/bin/preferences_gen.h:6232 ../build/bin/preferences_gen.h:6233 +#: ../build/bin/preferences_gen.h:6276 ../build/bin/preferences_gen.h:6277 +#: ../build/bin/preferences_gen.h:6327 ../build/bin/preferences_gen.h:6328 +#: ../build/bin/preferences_gen.h:6371 ../build/bin/preferences_gen.h:6372 +#: ../build/bin/preferences_gen.h:6415 ../build/bin/preferences_gen.h:6416 +#: ../build/bin/preferences_gen.h:6459 ../build/bin/preferences_gen.h:6460 +#: ../build/bin/preferences_gen.h:6503 ../build/bin/preferences_gen.h:6504 +#: ../build/bin/preferences_gen.h:6547 ../build/bin/preferences_gen.h:6548 +#: ../build/bin/preferences_gen.h:7702 ../build/bin/preferences_gen.h:7703 msgid "not available on this system" msgstr "Недоступно на цій системі." -#: ../build/bin/preferences_gen.h:5958 +#: ../build/bin/preferences_gen.h:6212 msgid "OpenCL scheduling profile" msgstr "Профіль планування OpenCL" -#: ../build/bin/preferences_gen.h:6001 +#: ../build/bin/preferences_gen.h:6226 msgid "" "defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled " "systems:\n" @@ -1636,57 +1698,129 @@ "GPU.\n" " - 'Дуже швидкий GPU': ці два конвеєра обробляються послідовно на GPU." -#: ../build/bin/preferences_gen.h:6029 -msgid "tune OpenCL performance" -msgstr "Налаштування продуктивності OpenCL" +#: ../build/bin/preferences_gen.h:6257 +msgid "use all device memory" +msgstr "Використовувати всю пам'ять пристрою" + +#: ../build/bin/preferences_gen.h:6270 +msgid "" +"if enabled darktable will use all device memory except a safety margin " +"(headroom, default is 600MB)" +msgstr "" +"Якщо ввімкнено, Darktable використовуватиме всю пам’ять пристрою, окрім " +"запасу безпеки (запас, за замовчуванням – 600 МБ)" + +#: ../build/bin/preferences_gen.h:6289 +msgid "OpenCL drivers" +msgstr "Драйвери OpenCL" + +#: ../build/bin/preferences_gen.h:6308 +msgid "Intel GPU" +msgstr "Intel GPU" + +#: ../build/bin/preferences_gen.h:6321 +msgid "Intel(R) OpenCL Graphics for all supported platforms (vendor provided)" +msgstr "" +"Intel® OpenCL Graphics для всіх підтримуваних платформ (надається вендором)" + +#: ../build/bin/preferences_gen.h:6352 +msgid "Nvidia CUDA" +msgstr "Nvidia CUDA" + +#: ../build/bin/preferences_gen.h:6365 +msgid "Nvidia CUDA based OpenCL (vendor provided)" +msgstr "OpenCL на основі Nvidia CUDA (надається вендором)" -#: ../build/bin/preferences_gen.h:6077 +#: ../build/bin/preferences_gen.h:6396 +msgid "AMD ROCm" +msgstr "AMD ROCm" + +#: ../build/bin/preferences_gen.h:6409 +msgid "AMD Accelerated Parallel Processing (vendor provided)" +msgstr "AMD Accelerated Parallel Processing (надається вендором)" + +#: ../build/bin/preferences_gen.h:6440 +msgid "RustiCL" +msgstr "RustiCL" + +#: ../build/bin/preferences_gen.h:6453 +msgid "" +"RustiCL Mesa OpenCL, still unstable. if you want to use this, you should " +"disable the vendor driver" +msgstr "" +"RustiCL Mesa OpenCL, все ще нестабільний. Якщо ви хочете використовувати це, " +"вам слід вимкнути драйвер вендора" + +#: ../build/bin/preferences_gen.h:6484 +msgid "Apple" +msgstr "Apple" + +#: ../build/bin/preferences_gen.h:6497 +msgid "Apple OpenCL (vendor provided)" +msgstr "Apple OpenCL (надається вендором)" + +#: ../build/bin/preferences_gen.h:6528 +msgid "Microsoft OpenCLOn12" +msgstr "Microsoft OpenCLOn12" + +#: ../build/bin/preferences_gen.h:6541 msgid "" -"allows runtime tuning of OpenCL devices:\n" -" - 'memory size': uses a fixed headroom (400MB as default),\n" -" - 'memory transfer': tries a faster memory access mode (pinned memory) used " -"for tiling." -msgstr "" -"Дозволяє оптимізацію часу виконання для пристроїв OpenCL:\n" -" - 'Розмір пам'яті': використовує фіксований запас (400 МБ за " -"замовчуванням).\n" -" - 'Переміщення в пам'яті': намагається використовувати швидший режим " -"доступу до пам'яті (закріплена пам'ять)." +"Microsoft OpenCLOn12, only use this if the vendor provided driver does not " +"work or there is none provided." +msgstr "" +"Microsoft OpenCLOn12, використовуйте це, лише якщо наданий вендором драйвер " +"не працює або його немає." + +#: ../build/bin/preferences_gen.h:6572 +msgid "other platforms" +msgstr "Інші платформи" -#: ../build/bin/preferences_gen.h:6143 +#: ../build/bin/preferences_gen.h:6585 +msgid "" +"if set, all unspecified platforms are accepted. only do this if no vendor " +"driver is available" +msgstr "" +"Якщо встановлено, приймаються всі невизначені платформи. Робіть це, лише " +"якщо драйвер вендора недоступний" + +#: ../build/bin/preferences_gen.h:6617 +msgid "security" +msgstr "Безпека" + +#: ../build/bin/preferences_gen.h:6638 msgid "ask before removing images from the library" msgstr "Запитувати перед вилученням зображень з бібліотеки" -#: ../build/bin/preferences_gen.h:6157 +#: ../build/bin/preferences_gen.h:6651 msgid "always ask the user before removing image information from the library" msgstr "" "Завжди запитувати користувача, перш ніж інформацію про зображення буде " "вилучено з бібліотеки." -#: ../build/bin/preferences_gen.h:6179 +#: ../build/bin/preferences_gen.h:6672 msgid "ask before deleting images from disk" msgstr "Запитувати перед видаленням зображень з диска" -#: ../build/bin/preferences_gen.h:6193 +#: ../build/bin/preferences_gen.h:6685 msgid "always ask the user before any image file is deleted" msgstr "" "Завжди запитувати користувача перед видаленням будь-якого файлу зображення." -#: ../build/bin/preferences_gen.h:6215 +#: ../build/bin/preferences_gen.h:6706 msgid "ask before discarding history stack" msgstr "Запитувати перед видаленням історії змін" -#: ../build/bin/preferences_gen.h:6229 +#: ../build/bin/preferences_gen.h:6719 msgid "always ask the user before history stack is discarded on any image" msgstr "" "Завжди запитувати користувача, перш ніж історію змін буде видалено для будь-" "якого зображення." -#: ../build/bin/preferences_gen.h:6251 +#: ../build/bin/preferences_gen.h:6740 msgid "try to use trash when deleting images" msgstr "Намагатись використовувати сміттєвий кошик при видаленні зображень" -#: ../build/bin/preferences_gen.h:6265 +#: ../build/bin/preferences_gen.h:6753 msgid "" "send files to trash instead of permanently deleting files on system that " "supports it" @@ -1694,31 +1828,31 @@ "Відправляти файли в сміттєвий кошик замість того, щоб назавжди видаляти " "файли в системі, яка це підтримує." -#: ../build/bin/preferences_gen.h:6287 +#: ../build/bin/preferences_gen.h:6774 msgid "ask before moving images from film roll folder" msgstr "Запитувати перед переміщенням зображень з каталогу плівки" -#: ../build/bin/preferences_gen.h:6301 +#: ../build/bin/preferences_gen.h:6787 msgid "always ask the user before any image file is moved." msgstr "" "Завжди запитувати користувача, перш ніж будь-який файл зображення буде " "переміщений." -#: ../build/bin/preferences_gen.h:6323 +#: ../build/bin/preferences_gen.h:6808 msgid "ask before copying images to new film roll folder" msgstr "Запитувати перед копіюванням зображень до нового каталогу плівки" -#: ../build/bin/preferences_gen.h:6337 +#: ../build/bin/preferences_gen.h:6821 msgid "always ask the user before any image file is copied." msgstr "" "Завжди запитувати користувача, перш ніж будь-який файл зображення буде " "скопійовано." -#: ../build/bin/preferences_gen.h:6359 +#: ../build/bin/preferences_gen.h:6842 msgid "ask before removing empty folders" msgstr "Запитувати перед видаленням порожніх каталогів" -#: ../build/bin/preferences_gen.h:6373 +#: ../build/bin/preferences_gen.h:6855 msgid "" "always ask the user before removing any empty folder. this can happen after " "moving or deleting images." @@ -1726,49 +1860,49 @@ "Завжди запитувати користувача, перш ніж видаляти порожній каталог. Це може " "статися після переміщення або видалення зображень." -#: ../build/bin/preferences_gen.h:6395 +#: ../build/bin/preferences_gen.h:6876 msgid "ask before deleting a tag" msgstr "Запитувати перед видаленням тегу" -#: ../build/bin/preferences_gen.h:6430 +#: ../build/bin/preferences_gen.h:6909 msgid "ask before deleting a style" msgstr "Запитувати перед видаленням стилю" -#: ../build/bin/preferences_gen.h:6465 +#: ../build/bin/preferences_gen.h:6942 msgid "ask before deleting a preset" msgstr "Запитувати перед видаленням пресету" -#: ../build/bin/preferences_gen.h:6479 +#: ../build/bin/preferences_gen.h:6955 msgid "will ask for confirmation before deleting or overwriting a preset" msgstr "Попросить підтвердження перед видаленням або перезаписом пресету." -#: ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6976 msgid "ask before exporting in overwrite mode" msgstr "Запитувати перед експортом в режимі перезапису" -#: ../build/bin/preferences_gen.h:6515 +#: ../build/bin/preferences_gen.h:6989 msgid "will ask for confirmation before exporting files in overwrite mode" msgstr "Попросить підтвердження перед експортом файлів у режимі перезапису." #. italic -#: ../build/bin/preferences_gen.h:6525 ../src/libs/tools/viewswitcher.c:148 +#: ../build/bin/preferences_gen.h:6998 ../src/libs/tools/viewswitcher.c:148 msgid "other" msgstr "Інше" -#: ../build/bin/preferences_gen.h:6545 +#: ../build/bin/preferences_gen.h:7017 msgid "password storage backend to use" msgstr "Бекенд для зберігання паролів" -#: ../build/bin/preferences_gen.h:6595 +#: ../build/bin/preferences_gen.h:7035 msgid "" "the storage backend for password storage: auto, none, libsecret, kwallet" msgstr "Бекенд для зберігання паролів: Авто, Немає, libsecret, kwallet" -#: ../build/bin/preferences_gen.h:6617 +#: ../build/bin/preferences_gen.h:7056 msgid "executable for playing audio files" msgstr "Програма для програвання звукових файлів" -#: ../build/bin/preferences_gen.h:6635 +#: ../build/bin/preferences_gen.h:7074 msgid "" "this external program is used to play audio files some cameras record to " "keep notes for images" @@ -1776,15 +1910,19 @@ "Ця зовнішня програма використовується для відтворення аудіо-файлів,\n" "які деякі камери можуть записувати, щоб зберігати нотатки до зображень." -#: ../build/bin/preferences_gen.h:6675 ../src/control/crawler.c:724 +#: ../build/bin/preferences_gen.h:7106 +msgid "storage" +msgstr "Збереження даних" + +#: ../build/bin/preferences_gen.h:7108 ../src/control/crawler.c:717 msgid "database" msgstr "База даних" -#: ../build/bin/preferences_gen.h:6695 +#: ../build/bin/preferences_gen.h:7127 msgid "create database snapshot" msgstr "Створити знімок бази даних" -#: ../build/bin/preferences_gen.h:6748 +#: ../build/bin/preferences_gen.h:7141 msgid "" "database snapshots are created right before closing darktable. options allow " "you to choose how often to make snapshots:\n" @@ -1808,11 +1946,11 @@ "години чи більше.\n" " - 'При закритті': створює знімок кожного разу, коли darktable закривають." -#: ../build/bin/preferences_gen.h:6770 +#: ../build/bin/preferences_gen.h:7162 msgid "how many snapshots to keep" msgstr "Скільки знімків зберігати" -#: ../build/bin/preferences_gen.h:6793 +#: ../build/bin/preferences_gen.h:7185 msgid "" "after successfully creating snapshot, how many older snapshots to keep " "(excluding mandatory version update ones). enter -1 to keep all snapshots\n" @@ -1825,37 +1963,38 @@ "Майте на увазі, що знімки займають трохи місця, а для успішного відновлення " "вам потрібен лише найновіший." -#: ../build/bin/preferences_gen.h:6803 ../src/control/crawler.c:723 -msgid "XMP" -msgstr "XMP" +#: ../build/bin/preferences_gen.h:7194 ../src/libs/copy_history.c:149 +msgid "XMP sidecar files" +msgstr "Файли XMP" -#: ../build/bin/preferences_gen.h:6823 -msgid "write sidecar file for each image" -msgstr "Записувати файли XMP для кожного зображення" +#: ../build/bin/preferences_gen.h:7213 +msgid "create XMP files" +msgstr "Створювати XMP файли" -#: ../build/bin/preferences_gen.h:6866 +#: ../build/bin/preferences_gen.h:7227 msgid "" -"the sidecar files hold information about all your development steps to allow " +"XMP sidecar files hold information about all your development steps to allow " "flawless re-importing of image files.\n" "\n" -"depending on the selected mode sidecar files will be written:\n" +"depending on the selected mode sidecar files will be created:\n" " - 'never'\n" " - 'on import': immediately after importing the image\n" -" - 'after edit': after any user change on the image." +" - 'after edit': after any user change on the image or adding tags." msgstr "" "Файли XMP містять інформацію про всі ваші кроки обробки, що дає змогу\n" "повторно імпортувати файли зображень зі збереженням усіх редагувань.\n" -"Залежно від обраного режиму файли XMP будуть записані:\n" +"\n" +"Залежно від вибраного режиму файли XMP будуть створюватись:\n" " - 'Ніколи'\n" " - 'При імпорті': одразу після імпорту зображення\n" " - 'Після редагування': після будь-якої зробленої користувачем зміни " -"зображення" +"зображення або додавання тегів." -#: ../build/bin/preferences_gen.h:6888 +#: ../build/bin/preferences_gen.h:7248 msgid "store XMP tags in compressed format" msgstr "Зберігати теги XMP у стислому форматі" -#: ../build/bin/preferences_gen.h:6931 +#: ../build/bin/preferences_gen.h:7262 msgid "" "entries in XMP tags can get rather large and may exceed the available space " "to store the history stack in output files.\n" @@ -1865,11 +2004,25 @@ "доступний простір для зберігання історії змін у вихідних файлах.\n" "Цей параметр дозволяє стиснути теги XMP та заощадити місце." -#: ../build/bin/preferences_gen.h:6953 +#: ../build/bin/preferences_gen.h:7283 +msgid "auto-save interval" +msgstr "Інтервал автоматичного збереження" + +#: ../build/bin/preferences_gen.h:7306 +msgid "" +"automatically save history while developing using the given interval (in " +"seconds); set to zero to disable auto-saving. auto-saving might be disabled " +"on slow drives." +msgstr "" +"Автоматично зберігати історію під час обробки з заданим інтервалом (у " +"секундах); встановіть нуль, щоб вимкнути автоматичне збереження. " +"Автозбереження може бути вимкнено на повільних дисках." + +#: ../build/bin/preferences_gen.h:7327 msgid "look for updated XMP files on startup" msgstr "Шукати оновлення файлів XMP при запуску" -#: ../build/bin/preferences_gen.h:6967 +#: ../build/bin/preferences_gen.h:7340 msgid "" "check file modification times of all XMP files on startup to check if any " "got updated in the meantime" @@ -1877,15 +2030,19 @@ "Перевіряти час модифікації всіх файлів XMP під час запуску, щоб дізнатися, " "чи якісь із них оновлювалися поза darktable." -#: ../build/bin/preferences_gen.h:7007 +#: ../build/bin/preferences_gen.h:7372 +msgid "miscellaneous" +msgstr "Різне" + +#: ../build/bin/preferences_gen.h:7374 msgid "interface" msgstr "Інтерфейс" -#: ../build/bin/preferences_gen.h:7027 +#: ../build/bin/preferences_gen.h:7393 msgid "load default shortcuts at startup" msgstr "Завантажувати стандартні прискорювачі під час запуску" -#: ../build/bin/preferences_gen.h:7041 +#: ../build/bin/preferences_gen.h:7406 msgid "" "load default shortcuts before user settings. switch off to prevent deleted " "defaults returning" @@ -1894,29 +2051,29 @@ "користувачем.\n" "Вимкніть, щоб запобігти поверненню видалених налаштувань за замовчуванням." -#: ../build/bin/preferences_gen.h:7063 +#: ../build/bin/preferences_gen.h:7427 msgid "scale slider step with min/max" msgstr "Масштабувати крок повзунка відповідно до мін/макс" -#: ../build/bin/preferences_gen.h:7077 +#: ../build/bin/preferences_gen.h:7440 msgid "vary slider step size with min/max range" msgstr "Змінювати розмір кроку повзунка відповідно до діапазону мін/макс." -#: ../build/bin/preferences_gen.h:7099 +#: ../build/bin/preferences_gen.h:7461 msgid "sort built-in presets first" msgstr "Показувати вбудовані пресети на початку" -#: ../build/bin/preferences_gen.h:7113 +#: ../build/bin/preferences_gen.h:7474 msgid "" "whether to show built-in presets first before user's presets in presets menu." msgstr "" "Чи показувати вбудовані пресети перед пресетами користувача в меню пресетів." -#: ../build/bin/preferences_gen.h:7135 +#: ../build/bin/preferences_gen.h:7495 msgid "mouse wheel scrolls modules side panel by default" msgstr "Колесо миші прокручує бічну панель модулів" -#: ../build/bin/preferences_gen.h:7149 +#: ../build/bin/preferences_gen.h:7508 msgid "" "when enabled, use mouse wheel to scroll modules side panel. use ctrl+alt to " "use mouse wheel for data entry. when disabled, this behavior is reversed" @@ -1926,11 +2083,11 @@ "Використовуйте Ctrl+Alt з коліщатком миші для введення даних.\n" "Коли вимкнено, ця поведінка змінюється на зворотну." -#: ../build/bin/preferences_gen.h:7171 +#: ../build/bin/preferences_gen.h:7529 msgid "always show panels' scrollbars" msgstr "Завжди показувати смуги прокрутки панелей" -#: ../build/bin/preferences_gen.h:7185 +#: ../build/bin/preferences_gen.h:7542 msgid "" "defines whether the panel scrollbars should be always visible or activated " "only depending on the content. (need a restart)" @@ -1939,11 +2096,11 @@ "активованими лише залежно від вмісту.\n" "(потрібен перезапуск)" -#: ../build/bin/preferences_gen.h:7207 +#: ../build/bin/preferences_gen.h:7563 msgid "duration of the UI transitions in ms" msgstr "Тривалість переходів інтерфейсу (в мс)" -#: ../build/bin/preferences_gen.h:7231 +#: ../build/bin/preferences_gen.h:7587 msgid "" "how long the transitions take (in ms) for expanding or collapsing modules " "and other UI elements" @@ -1951,19 +2108,19 @@ "Скільки часу (в мс) займають переходи для розгортання або згортання модулів " "та інших елементів інтерфейсу." -#: ../build/bin/preferences_gen.h:7253 +#: ../build/bin/preferences_gen.h:7608 msgid "position of the scopes module" msgstr "Розташування модуля гістограм" -#: ../build/bin/preferences_gen.h:7291 +#: ../build/bin/preferences_gen.h:7622 msgid "position the scopes at the top-left or top-right of the screen" msgstr "Розташування гістограм у верхньому лівому або правому куті екрана." -#: ../build/bin/preferences_gen.h:7313 +#: ../build/bin/preferences_gen.h:7643 msgid "method to use for getting the display profile" msgstr "Метод для отримання профілю монітора" -#: ../build/bin/preferences_gen.h:7356 +#: ../build/bin/preferences_gen.h:7657 msgid "" "this option allows to force a specific means of getting the current display " "profile.\n" @@ -1973,11 +2130,11 @@ "відображення.\n" "Це корисно, коли одна з альтернатив дає неправильні результати." -#: ../build/bin/preferences_gen.h:7378 +#: ../build/bin/preferences_gen.h:7678 msgid "order or exclude MIDI devices" msgstr "Упорядкувати або виключити MIDI-пристрої" -#: ../build/bin/preferences_gen.h:7396 +#: ../build/bin/preferences_gen.h:7696 msgid "" "comma-separated list of device name fragments that if matched load MIDI " "device at id given by location in list\n" @@ -1992,20 +2149,20 @@ "\"BeatStep:63:16\"." #. tags -#: ../build/bin/preferences_gen.h:7412 ../src/develop/lightroom.c:1516 -#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:333 -#: ../src/libs/image.c:558 ../src/libs/metadata_view.c:162 +#: ../build/bin/preferences_gen.h:7715 ../src/develop/lightroom.c:1573 +#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:322 +#: ../src/libs/image.c:614 ../src/libs/metadata_view.c:166 msgid "tags" msgstr "Теги" -#: ../build/bin/preferences_gen.h:7432 +#: ../build/bin/preferences_gen.h:7734 msgid "omit hierarchy in simple tag lists" msgstr "Опустити ієрархію у простих списках тегів" -#: ../build/bin/preferences_gen.h:7446 +#: ../build/bin/preferences_gen.h:7747 msgid "" -"when creating XMP file the hierarchical tags are also added as a simple " -"list\n" +"when creating an XMP sidecar file the hierarchical tags are also added as a " +"simple list\n" "of non-hierarchical ones to make them visible to some other programs.\n" "when this option is checked darktable will only include their last part\n" "and ignore the rest. so 'foo|bar|baz' will only add 'baz'." @@ -2013,51 +2170,46 @@ "При створенні файлу XMP ієрархічні теги також додаються у вигляді простого " "списку\n" "неієрархічних тегів, щоб зробити їх видимими для деяких інших програм.\n" -"Коли цю опцію ввімкнено, darktable включатиме лише останню частину,\n" +"Коли цю опцію ввімкнено, Darktable включатиме лише останню частину,\n" "а решту ігноруватиме. У такому випадку 'foo | bar | baz' додасть лише 'baz'." -#: ../build/bin/preferences_gen.h:7456 +#: ../build/bin/preferences_gen.h:7756 msgid "shortcuts with multiple instances" msgstr "Клавіатурні прискорювачі з кількома екземплярами" -#: ../build/bin/preferences_gen.h:7461 -msgid "" -"where multiple module instances are present, these preferences control rules " -"that are applied (in order) to decide which module instance shortcuts will " -"be applied to" -msgstr "" -"Де присутні кілька екземплярів модуля, ці параметри керують правилами, які " -"застосовуються (по порядку)\n" -"щоб вирішити до якого екземпляра модуля клавіатурні прискорювачі " -"застосовуватимуться." - -#: ../build/bin/preferences_gen.h:7477 +#: ../build/bin/preferences_gen.h:7775 msgid "prefer focused instance" msgstr "Пріоритет екземпляра в фокусі" -#: ../build/bin/preferences_gen.h:7491 +#: ../build/bin/preferences_gen.h:7788 msgid "" -"if an instance of the module has focus, apply shortcut to that instance\n" +"where multiple instances of a module are present, apply shortcuts to the " +"instance that has focus\n" +"if none are focused, the preferences below control rules that are followed " +"(in order) to decide which module instance shortcuts will be applied to.\n" "note: blending shortcuts always apply to the focused instance" msgstr "" -"Якщо екземпляр модуля має фокус, застосувати прискорювач до цього " -"екземпляра.\n" -"Примітка: прискорювачі змішування завжди застосовуються до екземпляра в " -"фокусі." +"Якщо присутні кілька екземплярів модуля, прискорювачі застосовуються до " +"екземпляра, який має фокус.\n" +"Якщо жоден з них не сфокусований, наведені нижче опції встановлюють правила, " +"які виконуються (по порядку), щоб вирішити, до якого екземпляра модуля " +"застосовуються клавіатурні прискорювачі.\n" +"Примітка: прискорювачі змішування завжди застосовуються до сфокусованого " +"екземпляра." -#: ../build/bin/preferences_gen.h:7513 +#: ../build/bin/preferences_gen.h:7809 msgid "prefer expanded instances" msgstr "Пріоритет розгорнутих екземплярів" -#: ../build/bin/preferences_gen.h:7527 +#: ../build/bin/preferences_gen.h:7822 msgid "if instances of the module are expanded, ignore collapsed instances" msgstr "Якщо є розгорнуті екземпляри модуля, ігнорувати згорнуті екземпляри." -#: ../build/bin/preferences_gen.h:7549 +#: ../build/bin/preferences_gen.h:7843 msgid "prefer enabled instances" msgstr "Пріоритет увімкнених екземплярів" -#: ../build/bin/preferences_gen.h:7563 +#: ../build/bin/preferences_gen.h:7856 msgid "" "after applying the above rule, if instances of the module are active, ignore " "inactive instances" @@ -2065,11 +2217,11 @@ "Після застосування вищезазначеного правила, якщо є активні екземпляри " "модуля, ігнорувати неактивні екземпляри." -#: ../build/bin/preferences_gen.h:7585 +#: ../build/bin/preferences_gen.h:7877 msgid "prefer unmasked instances" msgstr "Пріоритет незамаскованих екземплярів" -#: ../build/bin/preferences_gen.h:7599 +#: ../build/bin/preferences_gen.h:7890 msgid "" "after applying the above rules, if instances of the module are unmasked, " "ignore masked instances" @@ -2077,11 +2229,11 @@ "Після застосування вищезазначених правил, якщо є незамасковані екземпляри " "модуля, ігнорувати замасковані екземпляри." -#: ../build/bin/preferences_gen.h:7621 +#: ../build/bin/preferences_gen.h:7911 msgid "selection order" msgstr "Порядок вибору" -#: ../build/bin/preferences_gen.h:7659 +#: ../build/bin/preferences_gen.h:7925 msgid "" "after applying the above rules, apply the shortcut based on its position in " "the pixelpipe" @@ -2089,11 +2241,11 @@ "Після застосування вищезазначених правил застосувати прискорювач, виходячи з " "положення в конвеєрі обробки." -#: ../build/bin/preferences_gen.h:7681 +#: ../build/bin/preferences_gen.h:7946 msgid "allow visual assignment to specific instances" msgstr "Дозволити візуальне призначення певним екземплярам" -#: ../build/bin/preferences_gen.h:7695 +#: ../build/bin/preferences_gen.h:7959 msgid "" "when multiple instances are present on an image this allows shortcuts to be " "visually assigned to those specific instances\n" @@ -2103,15 +2255,15 @@ "прискорювачі цим конкретним екземплярам.\n" "Інакше прискорювачі завжди призначатимуться пріоритетному екземпляру." -#: ../build/bin/preferences_gen.h:7705 +#: ../build/bin/preferences_gen.h:7968 msgid "map / geolocalization view" msgstr "Режим мапи / геолокалізація" -#: ../build/bin/preferences_gen.h:7725 +#: ../build/bin/preferences_gen.h:7987 msgid "pretty print the image location" msgstr "Геокоординати в форматі градуси і хвилини" -#: ../build/bin/preferences_gen.h:7739 +#: ../build/bin/preferences_gen.h:8000 msgid "" "show a more readable representation of the location in the image information " "module" @@ -2119,66 +2271,30 @@ "Показати більш читабельні координати місця в інформаційному модулі " "зображення." -#: ../build/bin/preferences_gen.h:7749 +#: ../build/bin/preferences_gen.h:8009 msgid "slideshow view" msgstr "Режим слайд-шоу" -#: ../build/bin/preferences_gen.h:7769 +#: ../build/bin/preferences_gen.h:8028 msgid "waiting time between each picture in slideshow" msgstr "Час очікування між кожним знімком у слайд-шоу" -#: ../build/bin/preferences_gen.h:7831 -msgid "session options" -msgstr "Опції сеансу" - -#: ../build/bin/preferences_gen.h:7851 -msgid "base directory naming pattern" -msgstr "Шаблон іменування базового каталогу" - -#: ../build/bin/preferences_gen.h:7869 ../build/bin/preferences_gen.h:7909 -msgid "part of full import path for an import session" -msgstr "Частина повного шляху імпорту для сеансу імпорту." - -#: ../build/bin/preferences_gen.h:7891 -msgid "sub directory naming pattern" -msgstr "Шаблон іменування підкаталогів" - -#: ../build/bin/preferences_gen.h:7931 -msgid "keep original filename" -msgstr "Зберегти оригінальне ім'я файлу" - -#: ../build/bin/preferences_gen.h:7945 -msgid "" -"keep original filename instead of a pattern while importing from camera or " -"card" -msgstr "" -"Зберігати оригінальне ім’я файлу замість застосування шаблону під час " -"імпортування з камери чи картки." - -#: ../build/bin/preferences_gen.h:7967 -msgid "file naming pattern" -msgstr "Шаблон іменування файлів" - -#: ../build/bin/preferences_gen.h:7985 -msgid "file naming pattern used for a import session" -msgstr "Шаблон іменування файлів, який використовується для сеансу імпорту." - -#: ../build/bin/preferences_gen.h:8022 +#: ../build/bin/preferences_gen.h:8088 msgid "do not set the 'uncategorized' entry for tags" msgstr "Не встановлювати категорію \"без категорії\" для тегів" -#: ../build/bin/preferences_gen.h:8036 +#: ../build/bin/preferences_gen.h:8101 msgid "" "do not set the 'uncategorized' entry for tags which do not have children" msgstr "" "Не встановлювати категорію \"без категорії\" для тегів, у яких немає " "нащадків." -#: ../build/bin/preferences_gen.h:8058 +#: ../build/bin/preferences_gen.h:8122 msgid "tags case sensitivity" msgstr "Чутливість до регістру в тегах" -#: ../build/bin/preferences_gen.h:8096 +#: ../build/bin/preferences_gen.h:8136 msgid "" "tags case sensitivity. without the Sqlite ICU extension, insensitivity works " "only for the 26 latin letters" @@ -2186,27 +2302,27 @@ "Чутливість до регістру в тегах. Без розширення Sqlite ICU нечутливість " "працює лише для 26 латинських літер." -#: ../build/bin/preferences_gen.h:8118 ../build/bin/preferences_gen.h:8358 +#: ../build/bin/preferences_gen.h:8157 ../build/bin/preferences_gen.h:8368 msgid "number of collections to be stored" msgstr "Скільки колекцій зберігати" -#: ../build/bin/preferences_gen.h:8142 ../build/bin/preferences_gen.h:8382 +#: ../build/bin/preferences_gen.h:8181 ../build/bin/preferences_gen.h:8392 msgid "the number of recent collections to store and show in this list" msgstr "Кількість недавніх колекцій для зберігання та показу в цьому списку." -#: ../build/bin/preferences_gen.h:8164 +#: ../build/bin/preferences_gen.h:8202 msgid "hide the history button and show a specific module instead" msgstr "Приховати кнопку історії та показати натомість модуль" -#: ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8215 msgid "hide the history button and show the recent collections module instead" msgstr "Приховати кнопку історії та показати модуль останніх колекцій." -#: ../build/bin/preferences_gen.h:8200 +#: ../build/bin/preferences_gen.h:8236 msgid "number of folder levels to show in lists" msgstr "Кількість рівнів каталогів у списках плівок" -#: ../build/bin/preferences_gen.h:8224 +#: ../build/bin/preferences_gen.h:8260 msgid "" "the number of folder levels to show in film roll names, starting from the " "right" @@ -2214,19 +2330,24 @@ "Кількість рівнів каталогів для відображення в назвах плівок, починаючи " "справа." -#: ../build/bin/preferences_gen.h:8246 +#: ../build/bin/preferences_gen.h:8281 msgid "sort film rolls by" -msgstr "Сортувати плівки за" +msgstr "Порядок сортування плівок" + +#: ../build/bin/preferences_gen.h:8292 +msgctxt "preferences" +msgid "chronological" +msgstr "хронологічний" -#: ../build/bin/preferences_gen.h:8284 +#: ../build/bin/preferences_gen.h:8295 msgid "sets the collections-list order for film rolls" msgstr "Установити порядок сортування в колекціях для плівок." -#: ../build/bin/preferences_gen.h:8306 +#: ../build/bin/preferences_gen.h:8316 msgid "sort collection descending" msgstr "Сортувати у низхідному порядку" -#: ../build/bin/preferences_gen.h:8320 +#: ../build/bin/preferences_gen.h:8329 msgid "" "sort the following collections in descending order: 'film roll' by folder, " "'folder', 'times' (e.g. 'capture date')" @@ -2234,11 +2355,11 @@ "Сортувати наступні колекції у низхідному порядку:\n" "'плівка' за каталогом, 'каталог', 'за часом' (як-от: 'дата зйомки')." -#: ../build/bin/preferences_gen.h:8404 +#: ../build/bin/preferences_gen.h:8413 msgid "prefer a history button in the collections module" msgstr "Віддати перевагу кнопці історії в модулі колекцій" -#: ../build/bin/preferences_gen.h:8418 +#: ../build/bin/preferences_gen.h:8426 msgid "" "hide this module and instead access collections history with a button in the " "collections module" @@ -2246,11 +2367,11 @@ "Приховати цей модуль і натомість отримати доступ до історії колекцій за " "допомогою кнопки в модулі колекцій." -#: ../build/bin/preferences_gen.h:8472 +#: ../build/bin/preferences_gen.h:8483 msgid "suggested tags level of confidence" msgstr "Рівень впевненості запропонованих тегів" -#: ../build/bin/preferences_gen.h:8497 +#: ../build/bin/preferences_gen.h:8508 #, no-c-format msgid "" "level of confidence to include the tag in the suggestions list, 0: all " @@ -2260,11 +2381,11 @@ "Рівень впевненості, щоб включити тег до списку пропозицій,\n" "0: усі пов'язані теги, 99: з рівнем від 99%, 100: лише недавні теги (швидше)" -#: ../build/bin/preferences_gen.h:8519 +#: ../build/bin/preferences_gen.h:8529 msgid "number of recently attached tags" msgstr "Кількість недавно доданих тегів" -#: ../build/bin/preferences_gen.h:8543 +#: ../build/bin/preferences_gen.h:8553 msgid "" "number of recently attached tags which are included in the suggestions list. " "the value `-1' disables the recent list" @@ -2290,14 +2411,15 @@ #. focal length #: ../build/lib/darktable/plugins/introspection_ashift.c:148 #: ../build/lib/darktable/plugins/introspection_ashift.c:291 -#: ../src/common/collection.c:714 ../src/gui/preferences.c:844 -#: ../src/gui/presets.c:718 ../src/libs/camera.c:550 -#: ../src/libs/metadata_view.c:143 +#: ../src/common/collection.c:627 ../src/gui/preferences.c:842 +#: ../src/gui/presets.c:721 ../src/libs/camera.c:550 +#: ../src/libs/metadata_view.c:145 msgid "focal length" msgstr "Фокусна відстань" #: ../build/lib/darktable/plugins/introspection_ashift.c:154 #: ../build/lib/darktable/plugins/introspection_ashift.c:295 +#: ../src/libs/metadata_view.c:147 msgid "crop factor" msgstr "Кроп-фактор" @@ -2313,7 +2435,7 @@ #: ../build/lib/darktable/plugins/introspection_ashift.c:172 #: ../build/lib/darktable/plugins/introspection_ashift.c:307 -#: ../src/iop/lens.cc:3784 +#: ../src/iop/lens.cc:4438 msgid "lens model" msgstr "Модель об'єктива" @@ -2335,14 +2457,14 @@ #. DEVELOP_MASK_DISABLED #: ../build/lib/darktable/plugins/introspection_ashift.c:366 -#: ../build/lib/darktable/plugins/introspection_colorin.c:300 +#: ../build/lib/darktable/plugins/introspection_colorin.c:303 #: ../build/lib/darktable/plugins/introspection_highlights.c:310 #: ../build/lib/darktable/plugins/introspection_vignette.c:264 #: ../src/develop/blend_gui.c:153 ../src/develop/blend_gui.c:182 -#: ../src/develop/blend_gui.c:3410 ../src/gui/accelerators.c:130 -#: ../src/gui/accelerators.c:140 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/imageio/format/j2k.c:669 -#: ../src/libs/live_view.c:361 ../src/libs/masks.c:113 +#: ../src/develop/blend_gui.c:3429 ../src/gui/accelerators.c:148 +#: ../src/gui/accelerators.c:158 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/imageio/format/j2k.c:686 +#: ../src/libs/live_view.c:361 msgid "off" msgstr "Вимкнено" @@ -2366,7 +2488,7 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:146 #: ../build/lib/darktable/plugins/introspection_basecurve.c:239 -#: ../src/libs/metadata_view.c:142 +#: ../src/libs/metadata_view.c:144 msgid "exposure bias" msgstr "Зміщення експозиції" @@ -2386,16 +2508,16 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:262 #: ../build/lib/darktable/plugins/introspection_basicadj.c:249 #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:153 -#: ../build/lib/darktable/plugins/introspection_lens.cc:444 +#: ../build/lib/darktable/plugins/introspection_lens.cc:533 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:251 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:153 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:270 -#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2193 -#: ../src/iop/channelmixerrgb.c:4667 ../src/iop/clipping.c:1900 -#: ../src/iop/clipping.c:2093 ../src/iop/clipping.c:2108 -#: ../src/iop/retouch.c:463 ../src/libs/collect.c:1907 -#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1023 -#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:132 +#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2214 +#: ../src/iop/channelmixerrgb.c:4735 ../src/iop/clipping.c:1953 +#: ../src/iop/clipping.c:2146 ../src/iop/clipping.c:2161 +#: ../src/iop/retouch.c:507 ../src/libs/collect.c:2043 +#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1101 +#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:109 #: ../src/libs/live_view.c:311 ../src/libs/print_settings.c:2835 msgid "none" msgstr "Немає" @@ -2413,7 +2535,7 @@ #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:252 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:154 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:271 -#: ../src/develop/blend_gui.c:2363 ../src/develop/blend_gui.c:2397 +#: ../src/develop/blend_gui.c:2379 ../src/develop/blend_gui.c:2413 msgid "luminance" msgstr "Яскравість" @@ -2523,7 +2645,7 @@ #: ../build/lib/darktable/plugins/introspection_graduatednd.c:144 #: ../build/lib/darktable/plugins/introspection_watermark.c:136 #: ../build/lib/darktable/plugins/introspection_watermark.c:265 -#: ../src/iop/ashift.c:6112 ../src/libs/masks.c:108 +#: ../src/iop/ashift.c:6059 ../src/libs/masks.c:109 msgid "rotation" msgstr "Обертання" @@ -2534,7 +2656,7 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:125 #: ../build/lib/darktable/plugins/introspection_blurs.c:202 -#: ../src/libs/masks.c:109 +#: ../src/libs/masks.c:110 msgid "curvature" msgstr "Вигин" @@ -2542,13 +2664,13 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:206 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:81 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:148 -#: ../src/iop/colorbalancergb.c:1968 +#: ../src/iop/colorbalancergb.c:2039 msgid "offset" msgstr "Зміщення" #: ../build/lib/darktable/plugins/introspection_blurs.c:220 -#: ../src/common/collection.c:712 ../src/gui/preferences.c:828 -#: ../src/gui/presets.c:660 ../src/libs/metadata_view.c:139 +#: ../src/common/collection.c:625 ../src/gui/preferences.c:826 +#: ../src/gui/presets.c:663 ../src/libs/metadata_view.c:141 msgid "lens" msgstr "Об'єктив" @@ -2564,63 +2686,90 @@ msgid "gaussian" msgstr "Гауссівський" -#: ../build/lib/darktable/plugins/introspection_borders.c:112 -#: ../build/lib/darktable/plugins/introspection_borders.c:253 -#: ../src/common/collection.c:722 ../src/libs/filtering.c:59 +#: ../build/lib/darktable/plugins/introspection_borders.c:122 +#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../src/common/collection.c:635 ../src/libs/filtering.c:59 msgid "aspect ratio" msgstr "Співвідношення сторін" #. // portrait / landscape -#: ../build/lib/darktable/plugins/introspection_borders.c:130 -#: ../build/lib/darktable/plugins/introspection_borders.c:265 +#: ../build/lib/darktable/plugins/introspection_borders.c:140 +#: ../build/lib/darktable/plugins/introspection_borders.c:281 #: ../src/iop/flip.c:75 ../src/libs/print_settings.c:2517 msgid "orientation" msgstr "Орієнтація" -#: ../build/lib/darktable/plugins/introspection_borders.c:136 -#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../build/lib/darktable/plugins/introspection_borders.c:146 +#: ../build/lib/darktable/plugins/introspection_borders.c:285 msgid "border size" msgstr "Розмір облямівки" -#: ../build/lib/darktable/plugins/introspection_borders.c:142 -#: ../build/lib/darktable/plugins/introspection_borders.c:273 +#: ../build/lib/darktable/plugins/introspection_borders.c:152 +#: ../build/lib/darktable/plugins/introspection_borders.c:289 msgid "horizontal offset" msgstr "Горизонтальне зміщення" -#: ../build/lib/darktable/plugins/introspection_borders.c:160 -#: ../build/lib/darktable/plugins/introspection_borders.c:285 +#: ../build/lib/darktable/plugins/introspection_borders.c:170 +#: ../build/lib/darktable/plugins/introspection_borders.c:301 msgid "vertical offset" msgstr "Вертикальне зміщення" -#: ../build/lib/darktable/plugins/introspection_borders.c:178 -#: ../build/lib/darktable/plugins/introspection_borders.c:297 +#: ../build/lib/darktable/plugins/introspection_borders.c:188 +#: ../build/lib/darktable/plugins/introspection_borders.c:313 msgid "frame line size" msgstr "Розмір лінії рамки" -#: ../build/lib/darktable/plugins/introspection_borders.c:184 -#: ../build/lib/darktable/plugins/introspection_borders.c:301 +#: ../build/lib/darktable/plugins/introspection_borders.c:194 +#: ../build/lib/darktable/plugins/introspection_borders.c:317 msgid "frame line offset" msgstr "Зміщення лінії рамки" -#: ../build/lib/darktable/plugins/introspection_borders.c:327 -#: ../src/gui/preferences.c:849 ../src/iop/ashift.c:6291 -#: ../src/iop/basicadj.c:632 ../src/iop/flip.c:472 ../src/iop/flip.c:474 -#: ../src/iop/levels.c:641 ../src/iop/rgblevels.c:1050 +#: ../build/lib/darktable/plugins/introspection_borders.c:218 +#: ../build/lib/darktable/plugins/introspection_borders.c:333 +msgid "basis" +msgstr "Базис" + +#: ../build/lib/darktable/plugins/introspection_borders.c:347 +#: ../build/lib/darktable/plugins/introspection_borders.c:353 +#: ../src/gui/preferences.c:847 ../src/imageio/format/jpeg.c:604 +#: ../src/iop/ashift.c:6238 ../src/iop/basicadj.c:662 ../src/iop/flip.c:470 +#: ../src/iop/flip.c:472 ../src/iop/levels.c:657 ../src/iop/rgblevels.c:1105 msgid "auto" msgstr "Авто" -#: ../build/lib/darktable/plugins/introspection_borders.c:328 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:309 +#: ../build/lib/darktable/plugins/introspection_borders.c:348 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:315 #: ../src/libs/filters/ratio.c:122 ../src/libs/print_settings.c:2519 msgid "portrait" msgstr "Портрет" -#: ../build/lib/darktable/plugins/introspection_borders.c:329 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:305 +#: ../build/lib/darktable/plugins/introspection_borders.c:349 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:311 #: ../src/libs/filters/ratio.c:124 ../src/libs/print_settings.c:2519 msgid "landscape" msgstr "Ландшафт" +#: ../build/lib/darktable/plugins/introspection_borders.c:354 +#: ../src/iop/relight.c:275 ../src/libs/export.c:1223 +#: ../src/libs/metadata_view.c:151 ../src/libs/print_settings.c:2537 +msgid "width" +msgstr "Ширина" + +#: ../build/lib/darktable/plugins/introspection_borders.c:355 +#: ../build/lib/darktable/plugins/introspection_watermark.c:326 +#: ../src/libs/export.c:1229 ../src/libs/metadata_view.c:152 +#: ../src/libs/print_settings.c:2541 +msgid "height" +msgstr "Висота" + +#: ../build/lib/darktable/plugins/introspection_borders.c:356 +msgid "shorter" +msgstr "Коротший" + +#: ../build/lib/darktable/plugins/introspection_borders.c:357 +msgid "longer" +msgstr "Довший" + #: ../build/lib/darktable/plugins/introspection_cacorrect.c:42 #: ../build/lib/darktable/plugins/introspection_cacorrect.c:91 msgid "avoid colorshift" @@ -2667,9 +2816,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:67 #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:132 -#: ../src/iop/atrous.c:1522 ../src/iop/bilateral.cc:350 ../src/iop/clahe.c:335 -#: ../src/iop/dither.c:760 ../src/iop/lowpass.c:584 ../src/iop/shadhi.c:675 -#: ../src/iop/sharpen.c:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:340 +#: ../build/lib/darktable/plugins/introspection_lens.cc:501 +#: ../src/iop/atrous.c:1636 ../src/iop/bilateral.cc:352 ../src/iop/clahe.c:337 +#: ../src/iop/dither.c:762 ../src/iop/lowpass.c:597 ../src/iop/shadhi.c:710 +#: ../src/iop/sharpen.c:435 msgid "radius" msgstr "Радіус" @@ -2677,9 +2828,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:136 #: ../build/lib/darktable/plugins/introspection_highlights.c:137 #: ../build/lib/darktable/plugins/introspection_highlights.c:240 -#: ../src/iop/bloom.c:376 ../src/iop/denoiseprofile.c:3818 -#: ../src/iop/grain.c:584 ../src/iop/hazeremoval.c:201 -#: ../src/iop/hotpixels.c:388 ../src/iop/nlmeans.c:460 ../src/iop/velvia.c:279 +#: ../build/lib/darktable/plugins/introspection_lens.cc:334 +#: ../build/lib/darktable/plugins/introspection_lens.cc:497 +#: ../src/iop/bloom.c:372 ../src/iop/denoiseprofile.c:3822 +#: ../src/iop/grain.c:602 ../src/iop/hazeremoval.c:203 +#: ../src/iop/hotpixels.c:467 ../src/iop/nlmeans.c:463 ../src/iop/velvia.c:288 msgid "strength" msgstr "Інтенсивність" @@ -2694,41 +2847,41 @@ msgstr "Дуже велика хроматична аберація" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:158 -#: ../src/common/collection.c:1507 ../src/common/color_vocabulary.c:232 -#: ../src/common/colorlabels.c:334 ../src/develop/blend_gui.c:2330 -#: ../src/develop/blend_gui.c:2378 ../src/develop/lightroom.c:834 -#: ../src/gui/gtk.c:3137 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:354 -#: ../src/iop/channelmixer.c:618 ../src/iop/channelmixer.c:628 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/colorzones.c:2263 -#: ../src/iop/temperature.c:1935 ../src/iop/temperature.c:2129 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:260 -#: ../src/libs/histogram.c:2397 +#: ../src/common/collection.c:1374 ../src/common/color_vocabulary.c:232 +#: ../src/common/colorlabels.c:333 ../src/develop/blend_gui.c:2346 +#: ../src/develop/blend_gui.c:2394 ../src/develop/lightroom.c:887 +#: ../src/gui/gtk.c:3183 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:356 +#: ../src/iop/channelmixer.c:637 ../src/iop/channelmixer.c:647 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/colorzones.c:2499 +#: ../src/iop/temperature.c:1912 ../src/iop/temperature.c:2094 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:260 +#: ../src/libs/histogram.c:2724 msgid "red" msgstr "червоний" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:159 -#: ../src/common/collection.c:1511 ../src/common/color_vocabulary.c:277 -#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2336 -#: ../src/develop/blend_gui.c:2384 ../src/develop/lightroom.c:838 -#: ../src/gui/gtk.c:3138 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:359 -#: ../src/iop/channelmixer.c:619 ../src/iop/channelmixer.c:634 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/colorzones.c:2266 -#: ../src/iop/temperature.c:1919 ../src/iop/temperature.c:1937 -#: ../src/iop/temperature.c:2130 ../src/libs/collect.c:1791 -#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2389 +#: ../src/common/collection.c:1378 ../src/common/color_vocabulary.c:277 +#: ../src/common/colorlabels.c:335 ../src/develop/blend_gui.c:2352 +#: ../src/develop/blend_gui.c:2400 ../src/develop/lightroom.c:891 +#: ../src/gui/gtk.c:3184 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:361 +#: ../src/iop/channelmixer.c:638 ../src/iop/channelmixer.c:653 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/colorzones.c:2502 +#: ../src/iop/temperature.c:1896 ../src/iop/temperature.c:1914 +#: ../src/iop/temperature.c:2095 ../src/libs/collect.c:1916 +#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2715 msgid "green" msgstr "зелений" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:160 -#: ../src/common/collection.c:1513 ../src/common/color_vocabulary.c:324 -#: ../src/common/colorlabels.c:337 ../src/develop/blend_gui.c:2342 -#: ../src/develop/blend_gui.c:2390 ../src/develop/lightroom.c:840 -#: ../src/gui/gtk.c:3139 ../src/iop/bilateral.cc:364 -#: ../src/iop/channelmixer.c:620 ../src/iop/channelmixer.c:640 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/colorzones.c:2268 -#: ../src/iop/temperature.c:1939 ../src/iop/temperature.c:2131 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:263 -#: ../src/libs/histogram.c:2381 +#: ../src/common/collection.c:1380 ../src/common/color_vocabulary.c:324 +#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2358 +#: ../src/develop/blend_gui.c:2406 ../src/develop/lightroom.c:893 +#: ../src/gui/gtk.c:3185 ../src/iop/bilateral.cc:366 +#: ../src/iop/channelmixer.c:639 ../src/iop/channelmixer.c:659 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/colorzones.c:2504 +#: ../src/iop/temperature.c:1916 ../src/iop/temperature.c:2096 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:263 +#: ../src/libs/histogram.c:2706 msgid "blue" msgstr "синій" @@ -2971,7 +3124,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:303 #: ../build/lib/darktable/plugins/introspection_crop.c:61 #: ../build/lib/darktable/plugins/introspection_crop.c:134 -#: ../src/gui/gtk.c:1141 ../src/iop/atrous.c:1518 +#: ../src/gui/gtk.c:1234 ../src/iop/atrous.c:1632 msgid "left" msgstr "зліва" @@ -2979,7 +3132,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:307 #: ../build/lib/darktable/plugins/introspection_crop.c:67 #: ../build/lib/darktable/plugins/introspection_crop.c:138 -#: ../src/gui/accelerators.c:113 ../src/gui/gtk.c:1155 +#: ../src/gui/accelerators.c:131 ../src/gui/gtk.c:1240 msgid "top" msgstr "зверху" @@ -2987,7 +3140,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:311 #: ../build/lib/darktable/plugins/introspection_crop.c:73 #: ../build/lib/darktable/plugins/introspection_crop.c:142 -#: ../src/gui/gtk.c:1148 ../src/iop/atrous.c:1517 +#: ../src/gui/gtk.c:1237 ../src/iop/atrous.c:1631 msgid "right" msgstr "справа" @@ -2995,7 +3148,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:315 #: ../build/lib/darktable/plugins/introspection_crop.c:79 #: ../build/lib/darktable/plugins/introspection_crop.c:146 -#: ../src/gui/accelerators.c:114 ../src/gui/gtk.c:1162 +#: ../src/gui/accelerators.c:132 ../src/gui/gtk.c:1243 msgid "bottom" msgstr "знизу" @@ -3034,10 +3187,11 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:477 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:489 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:501 -#: ../src/develop/blend_gui.c:2356 ../src/develop/blend_gui.c:2404 -#: ../src/iop/atrous.c:1667 ../src/iop/channelmixerrgb.c:4457 -#: ../src/iop/channelmixerrgb.c:4573 ../src/iop/colorbalancergb.c:1895 -#: ../src/iop/colorzones.c:2402 ../src/iop/nlmeans.c:468 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 +#: ../src/develop/blend_gui.c:2372 ../src/develop/blend_gui.c:2420 +#: ../src/iop/atrous.c:1801 ../src/iop/channelmixerrgb.c:4525 +#: ../src/iop/channelmixerrgb.c:4641 ../src/iop/colorbalancergb.c:1966 +#: ../src/iop/colorzones.c:2645 ../src/iop/nlmeans.c:471 msgid "chroma" msgstr "Кольоровість" @@ -3057,11 +3211,11 @@ #: ../build/lib/darktable/plugins/introspection_splittoning.c:73 #: ../build/lib/darktable/plugins/introspection_splittoning.c:134 #: ../build/lib/darktable/plugins/introspection_splittoning.c:142 -#: ../src/develop/blend_gui.c:2315 ../src/develop/blend_gui.c:2349 -#: ../src/develop/blend_gui.c:2411 ../src/iop/channelmixer.c:615 -#: ../src/iop/channelmixerrgb.c:4450 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/colorbalance.c:2042 ../src/iop/colorize.c:330 -#: ../src/iop/colorreconstruction.c:1240 ../src/iop/colorzones.c:2403 +#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2365 +#: ../src/develop/blend_gui.c:2427 ../src/iop/channelmixer.c:634 +#: ../src/iop/channelmixerrgb.c:4518 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/colorbalance.c:2017 ../src/iop/colorize.c:343 +#: ../src/iop/colorreconstruction.c:1249 ../src/iop/colorzones.c:2646 msgid "hue" msgstr "Відтінок" @@ -3088,9 +3242,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:569 #: ../build/lib/darktable/plugins/introspection_toneequal.c:156 #: ../build/lib/darktable/plugins/introspection_toneequal.c:297 -#: ../src/iop/bilat.c:469 ../src/iop/colorbalance.c:2099 -#: ../src/iop/negadoctor.c:915 ../src/iop/shadhi.c:671 -#: ../src/iop/splittoning.c:507 +#: ../src/iop/bilat.c:479 ../src/iop/colorbalance.c:2074 +#: ../src/iop/negadoctor.c:934 ../src/iop/shadhi.c:706 +#: ../src/iop/splittoning.c:503 msgid "shadows" msgstr "Тіні" @@ -3102,9 +3256,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:561 #: ../build/lib/darktable/plugins/introspection_toneequal.c:180 #: ../build/lib/darktable/plugins/introspection_toneequal.c:313 -#: ../src/iop/bilat.c:463 ../src/iop/colorbalance.c:2101 -#: ../src/iop/monochrome.c:561 ../src/iop/shadhi.c:672 -#: ../src/iop/splittoning.c:514 +#: ../src/iop/bilat.c:473 ../src/iop/colorbalance.c:2076 +#: ../src/iop/monochrome.c:583 ../src/iop/shadhi.c:707 +#: ../src/iop/splittoning.c:510 msgid "highlights" msgstr "Світлі тони" @@ -3121,13 +3275,13 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:565 #: ../build/lib/darktable/plugins/introspection_toneequal.c:168 #: ../build/lib/darktable/plugins/introspection_toneequal.c:305 -#: ../src/iop/colorbalance.c:2100 +#: ../src/iop/colorbalance.c:2075 msgid "mid-tones" msgstr "Середні тони" #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:340 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:537 -#: ../src/iop/filmic.c:1576 +#: ../src/iop/filmic.c:1601 msgid "global saturation" msgstr "Глобальна насиченість" @@ -3158,12 +3312,12 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:412 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:585 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:64 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:137 -#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:607 ../src/iop/bilat.c:458 -#: ../src/iop/colisa.c:304 ../src/iop/colorbalance.c:1947 -#: ../src/iop/colorbalance.c:1953 ../src/iop/filmic.c:1548 -#: ../src/iop/filmicrgb.c:4551 ../src/iop/lowpass.c:586 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:116 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:237 +#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:637 ../src/iop/bilat.c:468 +#: ../src/iop/colisa.c:298 ../src/iop/colorbalance.c:1922 +#: ../src/iop/colorbalance.c:1928 ../src/iop/filmic.c:1573 +#: ../src/iop/filmicrgb.c:4615 ../src/iop/lowpass.c:599 msgid "contrast" msgstr "Контраст" @@ -3190,33 +3344,35 @@ msgid "blue-yellow contrast" msgstr "Контраст синій-жовтий" -#: ../build/lib/darktable/plugins/introspection_colorin.c:148 -#: ../build/lib/darktable/plugins/introspection_colorin.c:231 +#: ../build/lib/darktable/plugins/introspection_colorin.c:150 +#: ../build/lib/darktable/plugins/introspection_colorin.c:233 msgid "gamut clipping" msgstr "Обрізання охоплення" -#: ../build/lib/darktable/plugins/introspection_colorin.c:301 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:201 -#: ../src/common/colorspaces.c:1251 ../src/common/colorspaces.c:1484 +#: ../build/lib/darktable/plugins/introspection_colorin.c:304 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:312 +#: ../src/common/colorspaces.c:1410 ../src/common/colorspaces.c:1700 #: ../src/libs/print_settings.c:1356 msgid "sRGB" msgstr "sRGB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:302 -#: ../src/common/colorspaces.c:1260 ../src/common/colorspaces.c:1486 +#: ../build/lib/darktable/plugins/introspection_colorin.c:305 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:311 +#: ../src/common/colorspaces.c:1421 ../src/common/colorspaces.c:1702 #: ../src/libs/print_settings.c:1363 msgid "Adobe RGB (compatible)" msgstr "Adobe RGB (сумісний)" -#: ../build/lib/darktable/plugins/introspection_colorin.c:303 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 -#: ../src/common/colorspaces.c:1265 ../src/common/colorspaces.c:1488 +#: ../build/lib/darktable/plugins/introspection_colorin.c:306 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 +#: ../src/common/colorspaces.c:1428 ../src/common/colorspaces.c:1704 msgid "linear Rec709 RGB" msgstr "Лінійний Rec709 RGB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:304 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 -#: ../src/common/colorspaces.c:1274 ../src/common/colorspaces.c:1490 +#: ../build/lib/darktable/plugins/introspection_colorin.c:307 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:206 +#: ../src/common/colorspaces.c:1442 ../src/common/colorspaces.c:1706 msgid "linear Rec2020 RGB" msgstr "Лінійний Rec2020 RGB" @@ -3244,7 +3400,7 @@ #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:127 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:45 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:92 -#: ../src/iop/shadhi.c:686 +#: ../src/iop/shadhi.c:721 msgid "spatial extent" msgstr "Просторовий вимір" @@ -3254,7 +3410,7 @@ msgstr "Вимір яскравості" #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:154 -#: ../src/iop/channelmixerrgb.c:4669 +#: ../src/iop/channelmixerrgb.c:4737 msgid "saturated colors" msgstr "Насичені кольори" @@ -3268,7 +3424,7 @@ #: ../build/lib/darktable/plugins/introspection_colorzones.c:233 #: ../build/lib/darktable/plugins/introspection_soften.c:66 #: ../build/lib/darktable/plugins/introspection_soften.c:121 -#: ../src/iop/atrous.c:1689 +#: ../src/iop/atrous.c:1835 msgid "mix" msgstr "Інтенсивність" @@ -3278,33 +3434,17 @@ msgstr "Режим обробки" #: ../build/lib/darktable/plugins/introspection_colorzones.c:255 -#: ../src/develop/blend_gui.c:2294 ../src/iop/channelmixer.c:617 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/colorchecker.c:1448 -#: ../src/iop/colorize.c:349 ../src/iop/colorzones.c:2401 -#: ../src/iop/exposure.c:1239 +#: ../src/develop/blend_gui.c:2310 ../src/iop/channelmixer.c:636 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/colorchecker.c:1453 +#: ../src/iop/colorize.c:362 ../src/iop/colorzones.c:2644 +#: ../src/iop/exposure.c:1257 msgid "lightness" msgstr "Світлість" -#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 -#: ../src/develop/blend_gui.c:2310 ../src/iop/basicadj.c:624 -#: ../src/iop/channelmixer.c:616 ../src/iop/colisa.c:306 -#: ../src/iop/colorbalance.c:2059 ../src/iop/colorbalancergb.c:1919 -#: ../src/iop/colorchecker.c:1483 ../src/iop/colorcontrast.c:90 -#: ../src/iop/colorcorrection.c:275 ../src/iop/colorize.c:343 -#: ../src/iop/lowpass.c:588 ../src/iop/soften.c:373 ../src/iop/velvia.c:84 -#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:971 -msgid "saturation" -msgstr "Насиченість" - #: ../build/lib/darktable/plugins/introspection_colorzones.c:267 -#: ../src/iop/atrous.c:1309 ../src/iop/atrous.c:1313 -#: ../src/iop/denoiseprofile.c:3527 ../src/iop/rawdenoise.c:755 +#: ../src/iop/atrous.c:1410 ../src/iop/atrous.c:1414 +#: ../src/iop/denoiseprofile.c:3531 ../src/iop/rawdenoise.c:771 +#: ../src/iop/sigmoid.c:292 msgid "smooth" msgstr "Плавно" @@ -3321,9 +3461,9 @@ #: ../build/lib/darktable/plugins/introspection_defringe.c:106 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:230 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:435 -#: ../src/iop/atrous.c:1572 ../src/iop/bloom.c:372 -#: ../src/iop/colorreconstruction.c:1236 ../src/iop/hotpixels.c:384 -#: ../src/iop/sharpen.c:449 +#: ../src/iop/atrous.c:1695 ../src/iop/bloom.c:368 +#: ../src/iop/colorreconstruction.c:1245 ../src/iop/hotpixels.c:463 +#: ../src/iop/sharpen.c:444 msgid "threshold" msgstr "Поріг" @@ -3458,7 +3598,7 @@ #. history #: ../build/lib/darktable/plugins/introspection_demosaic.c:232 -#: ../src/common/collection.c:1526 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1394 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "basic" msgstr "Без змін" @@ -3531,12 +3671,9 @@ msgid "upgrade profiled transform" msgstr "Оновити профільоване перетворення" -#. -#. * Color mode combo box -#. #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:257 #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:388 -#: ../src/imageio/format/avif.c:786 ../src/libs/colorpicker.c:584 +#: ../src/libs/colorpicker.c:659 msgid "color mode" msgstr "Колірний режим" @@ -3561,7 +3698,7 @@ msgstr "Обчислити дисперсію" #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:410 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:266 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:292 msgid "RGB" msgstr "RGB" @@ -3572,7 +3709,7 @@ #. two more sharpness (standard & strong) #: ../build/lib/darktable/plugins/introspection_diffuse.c:123 #: ../build/lib/darktable/plugins/introspection_diffuse.c:248 -#: ../src/iop/atrous.c:1564 ../src/iop/diffuse.c:630 ../src/iop/highpass.c:381 +#: ../src/iop/atrous.c:1685 ../src/iop/diffuse.c:657 ../src/iop/highpass.c:376 msgid "sharpness" msgstr "Різкість" @@ -3736,7 +3873,7 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:212 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:423 -#: ../src/iop/filmic.c:1489 +#: ../src/iop/filmic.c:1514 msgid "middle gray luminance" msgstr "Яскравість середнього сірого" @@ -3744,13 +3881,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:427 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:97 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:166 -#: ../src/iop/filmic.c:1514 +#: ../src/iop/filmic.c:1539 msgid "black relative exposure" msgstr "Відносна експозиція чорного" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:224 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:431 -#: ../src/iop/filmic.c:1501 +#: ../src/iop/filmic.c:1526 msgid "white relative exposure" msgstr "Відносна експозиція білого" @@ -3781,19 +3918,19 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:266 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:459 -#: ../src/iop/filmic.c:1646 +#: ../src/iop/filmic.c:1671 msgid "target middle gray" msgstr "Цільова точка середнього сірого" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:272 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:463 -#: ../src/iop/filmic.c:1637 +#: ../src/iop/filmic.c:1662 msgid "target black luminance" msgstr "Цільова яскравість чорного" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:278 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:467 -#: ../src/iop/filmic.c:1655 +#: ../src/iop/filmic.c:1680 msgid "target white luminance" msgstr "Цільова яскравість білого" @@ -3801,13 +3938,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:471 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:69 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:140 -#: ../src/libs/masks.c:106 +#: ../src/libs/masks.c:107 msgid "hardness" msgstr "Жорсткість" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:302 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:483 -#: ../src/iop/filmic.c:1586 ../src/iop/filmicrgb.c:4729 +#: ../src/iop/filmic.c:1611 ../src/iop/filmicrgb.c:4793 msgid "extreme luminance saturation" msgstr "Насиченість екстремальних яскравостей" @@ -3878,11 +4015,11 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:549 #: ../build/lib/darktable/plugins/introspection_toneequal.c:371 -#: ../src/common/database.c:2785 ../src/common/variables.c:705 -#: ../src/develop/imageop_gui.c:209 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 +#: ../src/common/variables.c:714 ../src/develop/imageop_gui.c:209 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 msgid "no" msgstr "Ні" @@ -3984,9 +4121,25 @@ msgid "density" msgstr "Щільність" +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 +#: ../src/develop/blend_gui.c:2326 ../src/iop/basicadj.c:654 +#: ../src/iop/channelmixer.c:635 ../src/iop/colisa.c:300 +#: ../src/iop/colorbalance.c:2034 ../src/iop/colorbalancergb.c:1990 +#: ../src/iop/colorchecker.c:1488 ../src/iop/colorcontrast.c:82 +#: ../src/iop/colorcorrection.c:268 ../src/iop/colorize.c:356 +#: ../src/iop/lowpass.c:601 ../src/iop/soften.c:368 ../src/iop/velvia.c:75 +#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:1058 +msgid "saturation" +msgstr "Насиченість" + #: ../build/lib/darktable/plugins/introspection_grain.c:58 #: ../build/lib/darktable/plugins/introspection_grain.c:117 -#: ../src/iop/bilat.c:450 +#: ../src/iop/bilat.c:460 msgid "coarseness" msgstr "Зернистість" @@ -3999,7 +4152,7 @@ #: ../build/lib/darktable/plugins/introspection_highlights.c:143 #: ../build/lib/darktable/plugins/introspection_highlights.c:244 -#: ../src/views/darkroom.c:2406 +#: ../src/views/darkroom.c:2245 msgid "clipping threshold" msgstr "Поріг кліппінгу" @@ -4135,168 +4288,172 @@ msgid "detect by 3 neighbors" msgstr "Виявляти за 3 сусідніми" -#: ../build/lib/darktable/plugins/introspection_lens.cc:162 -#: ../build/lib/darktable/plugins/introspection_lens.cc:337 +#: ../build/lib/darktable/plugins/introspection_lens.cc:190 +#: ../build/lib/darktable/plugins/introspection_lens.cc:401 msgid "correction method" msgstr "Метод корекції" #. Page CORRECTIONS -#: ../build/lib/darktable/plugins/introspection_lens.cc:168 -#: ../build/lib/darktable/plugins/introspection_lens.cc:341 -#: ../src/iop/negadoctor.c:900 +#: ../build/lib/darktable/plugins/introspection_lens.cc:196 +#: ../build/lib/darktable/plugins/introspection_lens.cc:405 +#: ../src/iop/negadoctor.c:919 msgid "corrections" msgstr "Корекції" #. mode choice -#. Add check to control whether the style is to replace or append the current module -#: ../build/lib/darktable/plugins/introspection_lens.cc:174 -#: ../build/lib/darktable/plugins/introspection_lens.cc:345 +#: ../build/lib/darktable/plugins/introspection_lens.cc:202 +#: ../build/lib/darktable/plugins/introspection_lens.cc:409 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:128 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:219 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:51 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:118 -#: ../src/iop/bilat.c:428 ../src/iop/colorbalance.c:1909 -#: ../src/iop/denoiseprofile.c:3806 ../src/iop/exposure.c:1157 -#: ../src/iop/levels.c:684 ../src/iop/profile_gamma.c:668 -#: ../src/libs/copy_history.c:399 ../src/libs/export.c:1262 -#: ../src/libs/image.c:597 ../src/libs/print_settings.c:2875 -#: ../src/libs/styles.c:846 ../src/views/darkroom.c:2387 +#: ../src/develop/blend_gui.c:3546 ../src/iop/bilat.c:438 +#: ../src/iop/colorbalance.c:1884 ../src/iop/denoiseprofile.c:3810 +#: ../src/iop/exposure.c:1175 ../src/iop/levels.c:700 +#: ../src/iop/profile_gamma.c:682 ../src/libs/copy_history.c:399 +#: ../src/libs/export.c:1376 ../src/libs/image.c:666 +#: ../src/libs/print_settings.c:2875 ../src/libs/styles.c:850 +#: ../src/views/darkroom.c:2226 msgid "mode" msgstr "Режим" -#: ../build/lib/darktable/plugins/introspection_lens.cc:210 -#: ../build/lib/darktable/plugins/introspection_lens.cc:369 -#: ../src/iop/lens.cc:3820 +#: ../build/lib/darktable/plugins/introspection_lens.cc:238 +#: ../build/lib/darktable/plugins/introspection_lens.cc:433 +#: ../src/iop/lens.cc:4474 msgid "target geometry" msgstr "Цільова геометрія" -#: ../build/lib/darktable/plugins/introspection_lens.cc:240 -#: ../build/lib/darktable/plugins/introspection_lens.cc:389 +#: ../build/lib/darktable/plugins/introspection_lens.cc:268 +#: ../build/lib/darktable/plugins/introspection_lens.cc:453 msgid "TCA overwrite" msgstr "Ручне регулювання поперечних ХА" -#: ../build/lib/darktable/plugins/introspection_lens.cc:246 -#: ../build/lib/darktable/plugins/introspection_lens.cc:393 +#: ../build/lib/darktable/plugins/introspection_lens.cc:274 +#: ../build/lib/darktable/plugins/introspection_lens.cc:298 +#: ../build/lib/darktable/plugins/introspection_lens.cc:457 +#: ../build/lib/darktable/plugins/introspection_lens.cc:473 msgid "TCA red" msgstr "Поперечні ХА - червона" -#: ../build/lib/darktable/plugins/introspection_lens.cc:252 -#: ../build/lib/darktable/plugins/introspection_lens.cc:397 +#: ../build/lib/darktable/plugins/introspection_lens.cc:280 +#: ../build/lib/darktable/plugins/introspection_lens.cc:304 +#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:477 msgid "TCA blue" msgstr "Поперечні ХА - синя" -#: ../build/lib/darktable/plugins/introspection_lens.cc:258 -#: ../build/lib/darktable/plugins/introspection_lens.cc:401 -msgid "distortion fine-tune" -msgstr "Тонке регулювання дисторсії" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:264 -#: ../build/lib/darktable/plugins/introspection_lens.cc:405 -msgid "vignetting fine-tune" -msgstr "Тонке регулювання віньєтування" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:270 -#: ../build/lib/darktable/plugins/introspection_lens.cc:409 -msgid "TCA red fine-tune" -msgstr "Поперечні ХА - коригування червоного" +#: ../build/lib/darktable/plugins/introspection_lens.cc:286 +#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +msgid "distortion" +msgstr "Дисторсія" -#: ../build/lib/darktable/plugins/introspection_lens.cc:276 -#: ../build/lib/darktable/plugins/introspection_lens.cc:413 -msgid "TCA blue fine-tune" -msgstr "Поперечні ХА - коригування синього" +#: ../build/lib/darktable/plugins/introspection_lens.cc:292 +#: ../build/lib/darktable/plugins/introspection_lens.cc:469 +#: ../src/iop/vignette.c:114 +msgid "vignetting" +msgstr "Віньєтування" -#: ../build/lib/darktable/plugins/introspection_lens.cc:282 -#: ../build/lib/darktable/plugins/introspection_lens.cc:417 +#: ../build/lib/darktable/plugins/introspection_lens.cc:310 +#: ../build/lib/darktable/plugins/introspection_lens.cc:481 msgid "scale fine-tune" msgstr "Точне регулювання масштабування" -#: ../build/lib/darktable/plugins/introspection_lens.cc:294 -#: ../build/lib/darktable/plugins/introspection_lens.cc:425 +#: ../build/lib/darktable/plugins/introspection_lens.cc:322 +#: ../build/lib/darktable/plugins/introspection_lens.cc:489 msgid "image scale" msgstr "Масштаб зображення" -#: ../build/lib/darktable/plugins/introspection_lens.cc:439 +#: ../build/lib/darktable/plugins/introspection_lens.cc:346 +#: ../build/lib/darktable/plugins/introspection_lens.cc:505 +msgid "steepness" +msgstr "Крутизна" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:527 msgid "embedded metadata" msgstr "Вбудовані метадані" -#: ../build/lib/darktable/plugins/introspection_lens.cc:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:528 msgid "Lensfun database" msgstr "База даних Lensfun" +#: ../build/lib/darktable/plugins/introspection_lens.cc:529 +msgid "only manual vignette" +msgstr "Лише ручна корекція віньєтування" + #. get nice text for bounds #. Side-border hide/show -#: ../build/lib/darktable/plugins/introspection_lens.cc:445 -#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2367 -#: ../src/gui/accelerators.c:2447 ../src/gui/gtk.c:1204 ../src/gui/gtk.c:3136 -#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3709 -#: ../src/iop/rawdenoise.c:893 ../src/libs/collect.c:3066 -#: ../src/libs/filtering.c:1459 ../src/libs/filters/colors.c:157 +#: ../build/lib/darktable/plugins/introspection_lens.cc:534 +#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2592 +#: ../src/gui/accelerators.c:2674 ../src/gui/gtk.c:1282 ../src/gui/gtk.c:3182 +#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3713 +#: ../src/iop/rawdenoise.c:909 ../src/libs/collect.c:3413 +#: ../src/libs/filtering.c:1521 ../src/libs/filters/colors.c:157 #: ../src/libs/filters/colors.c:265 ../src/libs/filters/rating.c:211 msgid "all" msgstr "Всі" -#: ../build/lib/darktable/plugins/introspection_lens.cc:446 +#: ../build/lib/darktable/plugins/introspection_lens.cc:535 msgid "distortion & TCA" msgstr "Дисторсія і поперечні ХА" -#: ../build/lib/darktable/plugins/introspection_lens.cc:447 +#: ../build/lib/darktable/plugins/introspection_lens.cc:536 msgid "distortion & vignetting" msgstr "Дисторсія і віньєтування" -#: ../build/lib/darktable/plugins/introspection_lens.cc:448 +#: ../build/lib/darktable/plugins/introspection_lens.cc:537 msgid "TCA & vignetting" msgstr "Поперечні ХА і віньєтування" -#: ../build/lib/darktable/plugins/introspection_lens.cc:449 +#: ../build/lib/darktable/plugins/introspection_lens.cc:538 msgid "only distortion" msgstr "Лише дисторсія" -#: ../build/lib/darktable/plugins/introspection_lens.cc:450 +#: ../build/lib/darktable/plugins/introspection_lens.cc:539 msgid "only TCA" msgstr "Лише поперечні ХА" -#: ../build/lib/darktable/plugins/introspection_lens.cc:451 +#: ../build/lib/darktable/plugins/introspection_lens.cc:540 msgid "only vignetting" msgstr "Лише віньєтування" -#: ../build/lib/darktable/plugins/introspection_lens.cc:455 -#: ../src/libs/modulegroups.c:2318 +#: ../build/lib/darktable/plugins/introspection_lens.cc:544 +#: ../src/libs/modulegroups.c:2302 msgid "correct" msgstr "Коригувати" -#: ../build/lib/darktable/plugins/introspection_lens.cc:456 +#: ../build/lib/darktable/plugins/introspection_lens.cc:545 msgid "distort" msgstr "Деформувати" -#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:550 msgid "rectilinear" msgstr "Прямолінійна" -#: ../build/lib/darktable/plugins/introspection_lens.cc:462 +#: ../build/lib/darktable/plugins/introspection_lens.cc:551 msgid "fisheye" msgstr "Риб'яче око (fisheye)" -#: ../build/lib/darktable/plugins/introspection_lens.cc:463 +#: ../build/lib/darktable/plugins/introspection_lens.cc:552 msgid "panoramic" msgstr "Панорамна" -#: ../build/lib/darktable/plugins/introspection_lens.cc:464 +#: ../build/lib/darktable/plugins/introspection_lens.cc:553 msgid "equirectangular" msgstr "Еквідистантна" -#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +#: ../build/lib/darktable/plugins/introspection_lens.cc:554 msgid "orthographic" msgstr "Ортографічна" -#: ../build/lib/darktable/plugins/introspection_lens.cc:466 +#: ../build/lib/darktable/plugins/introspection_lens.cc:555 msgid "stereographic" msgstr "Стереографічна" -#: ../build/lib/darktable/plugins/introspection_lens.cc:467 +#: ../build/lib/darktable/plugins/introspection_lens.cc:556 msgid "equisolid angle" msgstr "Еквітілесний кут" -#: ../build/lib/darktable/plugins/introspection_lens.cc:468 +#: ../build/lib/darktable/plugins/introspection_lens.cc:557 msgid "Thoby fisheye" msgstr "Thoby fisheye" @@ -4306,8 +4463,8 @@ #. move left/right/up/down #: ../build/lib/darktable/plugins/introspection_liquify.c:429 -#: ../src/views/darkroom.c:2282 ../src/views/darkroom.c:2676 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:765 +#: ../src/views/darkroom.c:2121 ../src/views/darkroom.c:2522 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:765 #: ../src/views/lighttable.c:774 ../src/views/lighttable.c:1246 #: ../src/views/lighttable.c:1250 ../src/views/lighttable.c:1254 #: ../src/views/lighttable.c:1258 ../src/views/lighttable.c:1262 @@ -4319,8 +4476,8 @@ msgstr "Лінія" #: ../build/lib/darktable/plugins/introspection_liquify.c:431 -#: ../src/iop/basecurve.c:2186 ../src/iop/rgbcurve.c:1387 -#: ../src/iop/tonecurve.c:1149 +#: ../src/iop/basecurve.c:2207 ../src/iop/rgbcurve.c:1387 +#: ../src/iop/tonecurve.c:1171 msgid "curve" msgstr "Крива" @@ -4356,28 +4513,33 @@ msgid "bilateral filter" msgstr "Білатеральний" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:76 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:163 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:77 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:164 msgid "application color space" msgstr "Застосовується в колірному просторі" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 msgid "Adobe RGB" msgstr "Adobe RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 msgid "gamma Rec709 RGB" msgstr "gamma Rec709 RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:209 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:207 +#: ../src/common/colorspaces.c:1486 ../src/common/colorspaces.c:1740 +msgid "linear ProPhoto RGB" +msgstr "Лінійний ProPhoto RGB" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 msgid "tetrahedral" msgstr "Тетраедрична" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:210 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:212 msgid "trilinear" msgstr "Трилінійна" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:213 msgid "pyramid" msgstr "Пірамідальна" @@ -4398,7 +4560,7 @@ #: ../build/lib/darktable/plugins/introspection_negadoctor.c:144 #: ../build/lib/darktable/plugins/introspection_negadoctor.c:239 -#: ../src/iop/negadoctor.c:992 +#: ../src/iop/negadoctor.c:1011 msgid "paper grade (gamma)" msgstr "Грейд паперу (гамма)" @@ -4413,15 +4575,57 @@ msgstr "Регулювання експозиції друку" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:261 -#: ../src/iop/negadoctor.c:417 +#: ../src/iop/negadoctor.c:431 msgid "black and white film" msgstr "Чорно-біла плівка" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:262 -#: ../src/iop/negadoctor.c:402 +#: ../src/iop/negadoctor.c:416 msgid "color film" msgstr "Кольорова плівка" +#: ../build/lib/darktable/plugins/introspection_primaries.c:75 +#: ../build/lib/darktable/plugins/introspection_primaries.c:160 +#: ../src/iop/primaries.c:406 +msgid "tint hue" +msgstr "Напрямок зміщення точки білого" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:81 +#: ../build/lib/darktable/plugins/introspection_primaries.c:164 +#: ../src/iop/primaries.c:413 +msgid "tint purity" +msgstr "Величина зміщення точки білого" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:87 +#: ../build/lib/darktable/plugins/introspection_primaries.c:168 +msgid "red hue" +msgstr "Відтінок червоного" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:93 +#: ../build/lib/darktable/plugins/introspection_primaries.c:172 +msgid "red purity" +msgstr "Чистота червоного" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:99 +#: ../build/lib/darktable/plugins/introspection_primaries.c:176 +msgid "green hue" +msgstr "Відтінок зеленого" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:105 +#: ../build/lib/darktable/plugins/introspection_primaries.c:180 +msgid "green purity" +msgstr "Чистота зеленого" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:111 +#: ../build/lib/darktable/plugins/introspection_primaries.c:184 +msgid "blue hue" +msgstr "Відтінок синього" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:117 +#: ../build/lib/darktable/plugins/introspection_primaries.c:188 +msgid "blue purity" +msgstr "Чистота синього" + #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:85 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:158 msgid "dynamic range" @@ -4434,7 +4638,7 @@ #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:103 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:170 -#: ../src/iop/filmic.c:1526 +#: ../src/iop/filmic.c:1551 msgid "safety factor" msgstr "Стиснення динамічного діапазону" @@ -4443,7 +4647,7 @@ msgstr "Логарифмічний" #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:185 -#: ../src/iop/profile_gamma.c:625 +#: ../src/iop/profile_gamma.c:639 msgid "gamma" msgstr "Гамма" @@ -4481,7 +4685,7 @@ #: ../build/lib/darktable/plugins/introspection_rawprepare.c:106 #: ../build/lib/darktable/plugins/introspection_rawprepare.c:179 -#: ../src/iop/rawprepare.c:946 +#: ../src/iop/rawprepare.c:954 msgid "white point" msgstr "Точка білого" @@ -4497,9 +4701,9 @@ #. exposure #: ../build/lib/darktable/plugins/introspection_relight.c:43 #: ../build/lib/darktable/plugins/introspection_relight.c:98 -#: ../src/common/collection.c:720 ../src/gui/preferences.c:836 -#: ../src/gui/presets.c:684 ../src/iop/basicadj.c:598 ../src/iop/exposure.c:122 -#: ../src/iop/exposure.c:1117 ../src/libs/metadata_view.c:141 +#: ../src/common/collection.c:633 ../src/gui/preferences.c:834 +#: ../src/gui/presets.c:687 ../src/iop/basicadj.c:628 ../src/iop/exposure.c:122 +#: ../src/iop/exposure.c:1135 ../src/libs/metadata_view.c:143 msgid "exposure" msgstr "Експозиція" @@ -4510,9 +4714,9 @@ #: ../build/lib/darktable/plugins/introspection_retouch.c:285 #: ../build/lib/darktable/plugins/introspection_retouch.c:426 -#: ../src/iop/basicadj.c:620 ../src/iop/channelmixerrgb.c:4617 -#: ../src/iop/colisa.c:305 ../src/iop/lowpass.c:587 ../src/iop/soften.c:377 -#: ../src/iop/vignette.c:970 ../src/libs/history.c:963 +#: ../src/iop/basicadj.c:650 ../src/iop/channelmixerrgb.c:4685 +#: ../src/iop/colisa.c:299 ../src/iop/lowpass.c:600 ../src/iop/soften.c:372 +#: ../src/iop/vignette.c:1057 ../src/libs/history.c:963 msgid "brightness" msgstr "Яскравість" @@ -4522,7 +4726,7 @@ msgstr "max_iter" #: ../build/lib/darktable/plugins/introspection_retouch.c:444 -#: ../src/libs/metadata_view.c:329 +#: ../src/libs/metadata_view.c:333 msgid "unused" msgstr "Не використовується" @@ -4535,12 +4739,12 @@ msgstr "Лікування" #: ../build/lib/darktable/plugins/introspection_retouch.c:447 -#: ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2051 msgid "blur" msgstr "Розмиття" #: ../build/lib/darktable/plugins/introspection_retouch.c:448 -#: ../src/iop/retouch.c:1865 +#: ../src/iop/retouch.c:2049 msgid "fill" msgstr "Заливка" @@ -4553,9 +4757,9 @@ msgstr "Стирати" #: ../build/lib/darktable/plugins/introspection_retouch.c:458 -#: ../src/gui/presets.c:59 ../src/iop/watermark.c:1298 -#: ../src/libs/colorpicker.c:291 ../src/libs/image.c:612 -#: ../src/libs/modulegroups.c:2317 +#: ../src/gui/presets.c:61 ../src/iop/watermark.c:1346 +#: ../src/libs/colorpicker.c:320 ../src/libs/image.c:683 +#: ../src/libs/modulegroups.c:2301 msgid "color" msgstr "Колір" @@ -4591,45 +4795,93 @@ msgid "highlights color adjustment" msgstr "Регулювання кольору в світлих тонах" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:70 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:141 -#: ../src/gui/accelerators.c:85 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:122 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:241 +#: ../src/gui/accelerators.c:101 msgid "skew" msgstr "Перекіс" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:76 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:145 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:128 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:245 msgid "target white" msgstr "Цільова яскравість білого" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:82 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:149 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:134 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:249 msgid "target black" msgstr "Цільова яскравість чорного" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:88 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:153 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:140 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:253 msgid "color processing" msgstr "Обробка кольорів" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:94 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:157 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:146 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:257 msgid "preserve hue" msgstr "Збереження відтінків" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:171 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:152 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:261 +msgid "red attenuation" +msgstr "Послаблення червоного" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:158 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:265 +msgid "red rotation" +msgstr "Обертання червоного" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:164 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:269 +msgid "green attenuation" +msgstr "Послаблення зеленого" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:170 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:273 +msgid "green rotation" +msgstr "Обертання зеленого" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:176 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:277 +msgid "blue attenuation" +msgstr "Послаблення синього" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:182 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:281 +msgid "blue rotation" +msgstr "Обертання синього" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:188 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:285 +msgid "recover purity" +msgstr "Відновити чистоту" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:194 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:289 +msgid "base primaries" +msgstr "Основні кольори" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:303 msgid "per channel" msgstr "Поканально" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:172 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:304 msgid "RGB ratio" msgstr "Співвідношення RGB" -#: ../build/lib/darktable/plugins/introspection_temperature.c:66 -#: ../build/lib/darktable/plugins/introspection_temperature.c:121 -#: ../src/iop/temperature.c:1941 -msgid "emerald" -msgstr "Смарагдовий" +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:308 +#: ../src/common/colorspaces.c:1377 ../src/common/colorspaces.c:1734 +msgid "work profile" +msgstr "Робочий профіль" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:309 +msgid "Rec2020" +msgstr "Rec2020" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:310 +#: ../src/common/colorspaces.c:1750 +msgid "Display P3" +msgstr "Display P3" #: ../build/lib/darktable/plugins/introspection_tonecurve.c:135 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:232 @@ -4751,13 +5003,13 @@ #: ../build/lib/darktable/plugins/introspection_tonemap.cc:39 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:88 -#: ../src/iop/rgbcurve.c:184 ../src/iop/tonecurve.c:539 +#: ../src/iop/rgbcurve.c:186 ../src/iop/tonecurve.c:560 msgid "contrast compression" msgstr "Стиснення контрасту" #: ../build/lib/darktable/plugins/introspection_vibrance.c:33 #: ../build/lib/darktable/plugins/introspection_vibrance.c:76 -#: ../src/iop/basicadj.c:627 ../src/iop/vibrance.c:67 +#: ../src/iop/basicadj.c:657 ../src/iop/vibrance.c:67 msgid "vibrance" msgstr "Резонанс" @@ -4793,7 +5045,7 @@ #: ../build/lib/darktable/plugins/introspection_vignette.c:146 #: ../build/lib/darktable/plugins/introspection_vignette.c:237 -#: ../src/iop/vignette.c:978 +#: ../src/iop/vignette.c:1066 msgid "shape" msgstr "Фігура" @@ -4832,7 +5084,7 @@ #: ../build/lib/darktable/plugins/introspection_watermark.c:323 #: ../src/imageio/format/tiff.c:125 ../src/imageio/format/xcf.c:159 -#: ../src/iop/borders.c:947 +#: ../src/iop/borders.c:960 msgid "image" msgstr "Зображення" @@ -4844,12 +5096,6 @@ msgid "smaller border" msgstr "Коротша сторона" -#: ../build/lib/darktable/plugins/introspection_watermark.c:326 -#: ../src/libs/export.c:1135 ../src/libs/metadata_view.c:148 -#: ../src/libs/print_settings.c:2541 -msgid "height" -msgstr "Висота" - #: ../build/lib/darktable/plugins/introspection_watermark.c:327 msgid "advanced options" msgstr "Розширені опції" @@ -4878,23 +5124,23 @@ msgid "marker height" msgstr "Висота знака" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:6 +#: ../build/bin/tools/darktable_authors.h:6 msgid "developers" msgstr "Розробники" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:11 +#: ../build/bin/tools/darktable_authors.h:11 msgid "translators" msgstr "Перекладачі" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:16 +#: ../build/bin/tools/darktable_authors.h:16 msgid "contributors" msgstr "Співавтори" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:21 +#: ../build/bin/tools/darktable_authors.h:21 msgid "rawspeed contributors" msgstr "Співавтори Rawspeed" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:26 +#: ../build/bin/tools/darktable_authors.h:26 msgid "integration contributors" msgstr "Співавтори інтеграційних тестів" @@ -4961,90 +5207,104 @@ msgid "Print your images" msgstr "Друк зображень" -#: ../src/bauhaus/bauhaus.c:752 ../src/bauhaus/bauhaus.c:3689 +#: ../src/bauhaus/bauhaus.c:845 ../src/bauhaus/bauhaus.c:3957 msgid "sliders" msgstr "повзунки" -#: ../src/bauhaus/bauhaus.c:753 ../src/bauhaus/bauhaus.c:3694 +#: ../src/bauhaus/bauhaus.c:847 ../src/bauhaus/bauhaus.c:3962 msgid "dropdowns" msgstr "спадні меню" -#: ../src/bauhaus/bauhaus.c:754 ../src/bauhaus/bauhaus.c:3699 +#: ../src/bauhaus/bauhaus.c:849 ../src/bauhaus/bauhaus.c:3967 msgid "buttons" msgstr "кнопки" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button on" msgstr "кнопка on" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button off" msgstr "кнопка off" -#: ../src/bauhaus/bauhaus.c:3406 +#: ../src/bauhaus/bauhaus.c:3624 msgid "button pressed" msgstr "кнопку натиснуто" -#: ../src/bauhaus/bauhaus.c:3623 +#: ../src/bauhaus/bauhaus.c:3862 msgid "not that many sliders" msgstr "немає стільки повзунків" -#: ../src/bauhaus/bauhaus.c:3633 +#: ../src/bauhaus/bauhaus.c:3876 msgid "not that many dropdowns" msgstr "немає стільки спадних меню" -#: ../src/bauhaus/bauhaus.c:3648 +#: ../src/bauhaus/bauhaus.c:3895 msgid "not that many buttons" msgstr "немає стільки кнопок" -#: ../src/bauhaus/bauhaus.c:3653 ../src/gui/accelerators.c:348 +#: ../src/bauhaus/bauhaus.c:3900 ../src/gui/accelerators.c:389 msgid "value" msgstr "Значення" -#: ../src/bauhaus/bauhaus.c:3654 ../src/bauhaus/bauhaus.c:3660 -#: ../src/gui/accelerators.c:326 +#: ../src/bauhaus/bauhaus.c:3901 ../src/bauhaus/bauhaus.c:3907 +#: ../src/gui/accelerators.c:368 msgid "button" msgstr "Кнопка" -#: ../src/bauhaus/bauhaus.c:3655 +#: ../src/bauhaus/bauhaus.c:3902 msgid "force" msgstr "Необмежено" -#: ../src/bauhaus/bauhaus.c:3656 ../src/libs/navigation.c:187 -#: ../src/libs/navigation.c:199 +#: ../src/bauhaus/bauhaus.c:3903 ../src/libs/navigation.c:190 +#: ../src/libs/navigation.c:202 msgid "zoom" msgstr "Масштаб" -#: ../src/bauhaus/bauhaus.c:3659 +#: ../src/bauhaus/bauhaus.c:3906 ../src/libs/select.c:40 msgid "selection" msgstr "Вибір" -#: ../src/bauhaus/bauhaus.c:3678 +#: ../src/bauhaus/bauhaus.c:3946 msgid "slider" msgstr "Повзунок" -#: ../src/bauhaus/bauhaus.c:3683 +#: ../src/bauhaus/bauhaus.c:3951 msgid "dropdown" msgstr "Спадне меню" -#: ../src/chart/main.c:504 ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 ../src/gui/accelerators.c:2278 -#: ../src/gui/accelerators.c:2355 ../src/gui/accelerators.c:2407 -#: ../src/gui/accelerators.c:2435 ../src/gui/accelerators.c:2495 -#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1043 -#: ../src/gui/preferences.c:1082 ../src/gui/presets.c:420 -#: ../src/gui/presets.c:563 ../src/gui/styles_dialog.c:519 -#: ../src/imageio/storage/disk.c:123 ../src/imageio/storage/gallery.c:110 -#: ../src/imageio/storage/latex.c:109 ../src/iop/lut3d.c:1546 -#: ../src/libs/collect.c:408 ../src/libs/copy_history.c:115 -#: ../src/libs/geotagging.c:928 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/styles.c:392 ../src/libs/styles.c:527 -#: ../src/libs/tagging.c:2489 ../src/libs/tagging.c:2525 +#: ../src/chart/main.c:504 ../src/common/database.c:3372 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 ../src/gui/accelerators.c:2497 +#: ../src/gui/accelerators.c:2579 ../src/gui/accelerators.c:2632 +#: ../src/gui/accelerators.c:2661 ../src/gui/accelerators.c:2723 +#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1081 ../src/gui/presets.c:422 +#: ../src/gui/presets.c:565 ../src/gui/styles_dialog.c:526 +#: ../src/imageio/storage/disk.c:198 ../src/imageio/storage/gallery.c:150 +#: ../src/imageio/storage/latex.c:146 ../src/iop/lut3d.c:1560 +#: ../src/libs/collect.c:425 ../src/libs/collect.c:3242 +#: ../src/libs/copy_history.c:115 ../src/libs/export_metadata.c:276 +#: ../src/libs/geotagging.c:929 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1711 +#: ../src/libs/metadata.c:462 ../src/libs/metadata_view.c:1222 +#: ../src/libs/recentcollect.c:228 ../src/libs/modulegroups.c:3466 +#: ../src/libs/styles.c:392 ../src/libs/styles.c:439 ../src/libs/styles.c:529 +#: ../src/libs/styles.c:624 ../src/libs/tagging.c:1488 +#: ../src/libs/tagging.c:1579 ../src/libs/tagging.c:1670 +#: ../src/libs/tagging.c:1806 ../src/libs/tagging.c:2085 +#: ../src/libs/tagging.c:2520 ../src/libs/tagging.c:2556 +#: ../src/libs/tagging.c:3502 msgid "_cancel" msgstr "_Скасувати" -#: ../src/chart/main.c:504 ../src/gui/preferences.c:1082 -#: ../src/gui/styles_dialog.c:520 ../src/libs/styles.c:392 +#: ../src/chart/main.c:504 ../src/gui/preferences.c:1081 +#: ../src/gui/styles_dialog.c:527 ../src/libs/collect.c:3243 +#: ../src/libs/export_metadata.c:277 ../src/libs/metadata.c:463 +#: ../src/libs/metadata_view.c:1223 ../src/libs/recentcollect.c:229 +#: ../src/libs/styles.c:392 ../src/libs/tagging.c:1671 +#: ../src/libs/tagging.c:1807 ../src/libs/tagging.c:2086 +#: ../src/libs/tagging.c:3503 msgid "_save" msgstr "_Зберегти" @@ -5058,62 +5318,62 @@ "Середня dE: %.02f\n" "Максимальна dE: %.02f" -#: ../src/cli/main.c:247 +#: ../src/cli/main.c:270 msgid "TODO: sorry, due to API restrictions we currently cannot set the BPP to" msgstr "" "TODO: вибачте, через обмеження API наразі ми не можемо встановити BPP в" -#: ../src/cli/main.c:259 +#: ../src/cli/main.c:282 msgid "unknown option for --hq" msgstr "Невідома опція для --hq" -#: ../src/cli/main.c:275 +#: ../src/cli/main.c:298 msgid "unknown option for --export_masks" msgstr "Невідома опція для --export_masks" -#: ../src/cli/main.c:291 +#: ../src/cli/main.c:314 msgid "unknown option for --upscale" msgstr "Невідома опція для --upscale" -#: ../src/cli/main.c:316 +#: ../src/cli/main.c:339 msgid "unknown option for --apply-custom-presets" msgstr "Невідома опція для --apply-custom-presets" -#: ../src/cli/main.c:327 +#: ../src/cli/main.c:350 msgid "too long ext for --out-ext" msgstr "Занадто довге розширення для --out-ext" -#: ../src/cli/main.c:344 +#: ../src/cli/main.c:367 #, c-format msgid "notice: input file or dir '%s' doesn't exist, skipping\n" msgstr "Повідомлення: вхідний файл чи каталог '%s' не існує, пропускається\n" -#: ../src/cli/main.c:353 +#: ../src/cli/main.c:376 #, c-format msgid "incorrect ICC type for --icc-type: '%s'\n" msgstr "Неправильний тип ICC для --icc-type: '%s'\n" -#: ../src/cli/main.c:369 +#: ../src/cli/main.c:392 #, c-format msgid "notice: ICC file '%s' doesn't exist, skipping\n" msgstr "Повідомлення: файл ICC '%s' не існує, пропускається\n" -#: ../src/cli/main.c:378 +#: ../src/cli/main.c:401 #, c-format msgid "incorrect ICC intent for --icc-intent: '%s'\n" msgstr "Неправильний метод ICC для --icc-intent: '%s'\n" -#: ../src/cli/main.c:396 +#: ../src/cli/main.c:419 #, c-format msgid "warning: unknown option '%s'\n" msgstr "Попередження: невідома опція '%s'\n" -#: ../src/cli/main.c:454 +#: ../src/cli/main.c:477 #, c-format msgid "error: input file and import opts specified! that's not supported!\n" msgstr "Помилка: вказано вхідний файл та опції імпорту! Це не підтримується!\n" -#: ../src/cli/main.c:487 +#: ../src/cli/main.c:510 #, c-format msgid "" "notice: output location is a directory. assuming '%s/$(FILE_NAME).%s' output " @@ -5123,48 +5383,48 @@ "шаблон: '%s/$(FILE_NAME).%s'" #. output file exists or there's output ext specified and it's same as file... -#: ../src/cli/main.c:502 +#: ../src/cli/main.c:525 msgid "output file already exists, it will get renamed" msgstr "Вихідний файл вже існує, він буде перейменований" #. one of inputs was a failure, no prob -#: ../src/cli/main.c:532 +#: ../src/cli/main.c:555 #, c-format msgid "error: can't open folder %s" msgstr "Помилка: не вдається відкрити каталог %s" -#: ../src/cli/main.c:549 +#: ../src/cli/main.c:572 #, c-format msgid "error: can't open file %s" msgstr "Помилка: не вдається відкрити файл %s" -#: ../src/cli/main.c:566 +#: ../src/cli/main.c:589 #, c-format msgid "no images to export, aborting\n" msgstr "Немає зображень для експорту, переривання\n" -#: ../src/cli/main.c:583 +#: ../src/cli/main.c:606 #, c-format msgid "error: can't open XMP file %s" msgstr "Помилка: не вдається відкрити файл %s" -#: ../src/cli/main.c:604 +#: ../src/cli/main.c:627 msgid "empty history stack" msgstr "Порожня історія змін" #. too long ext, no point in wasting time -#: ../src/cli/main.c:616 +#: ../src/cli/main.c:639 #, c-format msgid "too long output file extension: %s\n" msgstr "Занадто довге розширення вихідного файлу: %s\n" #. no ext or empty ext, no point in wasting time -#: ../src/cli/main.c:624 +#: ../src/cli/main.c:647 #, c-format msgid "no output file extension given\n" msgstr "Не вказано розширення вихідного файлу\n" -#: ../src/cli/main.c:663 +#: ../src/cli/main.c:692 msgid "" "cannot find disk storage module. please check your installation, something " "seems to be broken." @@ -5172,17 +5432,17 @@ "Не вдається знайти модуль збереження на диску. Будь ласка, перевірте свою " "інсталяцію, здається, щось не працює." -#: ../src/cli/main.c:673 +#: ../src/cli/main.c:702 msgid "failed to get parameters from storage module, aborting export ..." msgstr "" "Не вдалося отримати параметри з модуля зберігання, скасування експорту..." -#: ../src/cli/main.c:689 +#: ../src/cli/main.c:718 #, c-format msgid "unknown extension '.%s'" msgstr "Невідоме розширення '.%s'" -#: ../src/cli/main.c:699 +#: ../src/cli/main.c:728 msgid "failed to get parameters from format module, aborting export ..." msgstr "Не вдалося отримати параметри з модуля формату, скасування експорту..." @@ -5229,193 +5489,199 @@ "Камеру `%s' на порту `%s' потрібно перемонтувати\n" "Переконайтеся, що вона дозволяє доступ і не змонтована іншою програмою" -#: ../src/common/collection.c:673 +#: ../src/common/collection.c:586 msgid "too much time to update aspect ratio for the collection" msgstr "Занадто довго йде оновлення співвідношення сторін зображень в колекції" -#: ../src/common/collection.c:688 +#: ../src/common/collection.c:601 msgid "film roll" msgstr "Плівка" -#: ../src/common/collection.c:690 +#: ../src/common/collection.c:603 msgid "folder" msgstr "Каталог" -#: ../src/common/collection.c:692 +#: ../src/common/collection.c:605 msgid "camera" msgstr "Камера" -#: ../src/common/collection.c:694 ../src/libs/export_metadata.c:189 -#: ../src/libs/tagging.c:3281 +#: ../src/common/collection.c:607 ../src/libs/export_metadata.c:176 +#: ../src/libs/tagging.c:3312 msgid "tag" msgstr "Тег" -#: ../src/common/collection.c:696 +#: ../src/common/collection.c:609 msgid "capture date" msgstr "Дата зйомки" -#: ../src/common/collection.c:698 ../src/libs/filtering.c:61 +#: ../src/common/collection.c:611 ../src/libs/filtering.c:61 msgid "capture time" msgstr "Час зйомки" -#: ../src/common/collection.c:700 ../src/libs/filtering.c:62 +#: ../src/common/collection.c:613 ../src/libs/filtering.c:62 msgid "import time" msgstr "Час імпорту" -#: ../src/common/collection.c:702 ../src/libs/filtering.c:63 +#: ../src/common/collection.c:615 ../src/libs/filtering.c:63 msgid "modification time" msgstr "Час останньої зміни" -#: ../src/common/collection.c:704 ../src/libs/filtering.c:64 +#: ../src/common/collection.c:617 ../src/libs/filtering.c:64 msgid "export time" msgstr "Час останнього експорту" -#: ../src/common/collection.c:706 ../src/libs/filtering.c:65 +#: ../src/common/collection.c:619 ../src/libs/filtering.c:65 msgid "print time" msgstr "Час останнього друку" -#: ../src/common/collection.c:708 ../src/libs/collect.c:3222 -#: ../src/libs/filtering.c:2163 ../src/libs/filtering.c:2183 +#: ../src/common/collection.c:621 ../src/libs/collect.c:3586 +#: ../src/libs/filtering.c:2237 ../src/libs/filtering.c:2257 #: ../src/libs/filters/history.c:153 ../src/libs/history.c:92 msgid "history" msgstr "Історія" -#: ../src/common/collection.c:710 ../src/common/colorlabels.c:342 -#: ../src/develop/lightroom.c:1550 ../src/dtgtk/thumbnail.c:1560 +#: ../src/common/collection.c:623 ../src/common/colorlabels.c:341 +#: ../src/develop/lightroom.c:1607 ../src/dtgtk/thumbnail.c:1548 #: ../src/libs/filtering.c:68 ../src/libs/filters/colors.c:301 #: ../src/libs/filters/colors.c:312 ../src/libs/tools/colorlabels.c:93 msgid "color label" msgstr "Кольорова позначка" #. iso -#: ../src/common/collection.c:716 ../src/gui/preferences.c:832 -#: ../src/gui/presets.c:666 ../src/libs/camera.c:558 -#: ../src/libs/metadata_view.c:145 +#: ../src/common/collection.c:629 ../src/gui/preferences.c:830 +#: ../src/gui/presets.c:669 ../src/libs/camera.c:558 +#: ../src/libs/metadata_view.c:149 msgid "ISO" msgstr "ISO" #. aperture -#: ../src/common/collection.c:718 ../src/gui/preferences.c:840 -#: ../src/gui/presets.c:701 ../src/libs/camera.c:545 ../src/libs/camera.c:547 -#: ../src/libs/metadata_view.c:140 +#: ../src/common/collection.c:631 ../src/gui/preferences.c:838 +#: ../src/gui/presets.c:704 ../src/libs/camera.c:545 ../src/libs/camera.c:547 +#: ../src/libs/metadata_view.c:142 msgid "aperture" msgstr "Діафрагма" -#: ../src/common/collection.c:724 ../src/libs/filtering.c:57 -#: ../src/libs/filters/filename.c:364 ../src/libs/metadata_view.c:126 +#: ../src/common/collection.c:637 ../src/libs/filtering.c:57 +#: ../src/libs/filters/filename.c:369 ../src/libs/metadata_view.c:128 msgid "filename" msgstr "Файл" -#: ../src/common/collection.c:726 ../src/develop/lightroom.c:1541 +#: ../src/common/collection.c:639 ../src/develop/lightroom.c:1598 #: ../src/libs/geotagging.c:141 msgid "geotagging" msgstr "Геотегування" -#: ../src/common/collection.c:728 ../src/libs/filters/grouping.c:167 +#: ../src/common/collection.c:641 ../src/libs/filters/grouping.c:167 #: ../src/libs/tools/global_toolbox.c:394 msgid "grouping" msgstr "Групування" -#: ../src/common/collection.c:730 ../src/dtgtk/thumbnail.c:1575 -#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:129 -#: ../src/libs/metadata_view.c:336 +#: ../src/common/collection.c:643 ../src/dtgtk/thumbnail.c:1563 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:340 msgid "local copy" msgstr "Локальна копія" -#: ../src/common/collection.c:732 ../src/gui/preferences.c:808 +#: ../src/common/collection.c:645 ../src/gui/preferences.c:806 msgid "module" msgstr "Модуль" -#: ../src/common/collection.c:734 ../src/gui/hist_dialog.c:346 -#: ../src/gui/styles_dialog.c:722 ../src/gui/styles_dialog.c:771 +#: ../src/common/collection.c:647 ../src/gui/hist_dialog.c:346 +#: ../src/gui/styles_dialog.c:734 ../src/gui/styles_dialog.c:783 #: ../src/libs/filters/module_order.c:161 ../src/libs/ioporder.c:39 msgid "module order" msgstr "Порядок модулів" -#: ../src/common/collection.c:736 +#: ../src/common/collection.c:649 msgid "range rating" msgstr "Діапазон рейтингів" -#: ../src/common/collection.c:738 ../src/common/ratings.c:322 -#: ../src/develop/lightroom.c:1525 ../src/libs/filtering.c:67 +#: ../src/common/collection.c:651 ../src/common/ratings.c:321 +#: ../src/develop/lightroom.c:1582 ../src/libs/filtering.c:67 #: ../src/libs/tools/ratings.c:110 msgid "rating" msgstr "Рейтинг" -#: ../src/common/collection.c:740 +#: ../src/common/collection.c:653 msgid "search" msgstr "Пошук" -#: ../src/common/collection.c:1509 ../src/common/colorlabels.c:335 -#: ../src/develop/lightroom.c:836 ../src/gui/guides.c:732 -#: ../src/iop/colorzones.c:2265 ../src/iop/temperature.c:1925 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:261 +#: ../src/common/collection.c:1376 ../src/common/colorlabels.c:334 +#: ../src/develop/lightroom.c:889 ../src/gui/guides.c:732 +#: ../src/iop/colorzones.c:2501 ../src/iop/temperature.c:1902 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:261 msgid "yellow" msgstr "Жовтий" -#: ../src/common/collection.c:1515 ../src/common/color_vocabulary.c:339 -#: ../src/common/colorlabels.c:338 ../src/iop/colorzones.c:2269 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:264 +#: ../src/common/collection.c:1382 ../src/common/color_vocabulary.c:339 +#: ../src/common/colorlabels.c:337 ../src/iop/colorzones.c:2505 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:264 msgid "purple" msgstr "Пурпурний" -#: ../src/common/collection.c:1532 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1400 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "auto applied" msgstr "Тільки автозастосовані зміни" -#: ../src/common/collection.c:1536 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1406 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "altered" msgstr "Зі змінами" -#: ../src/common/collection.c:1553 ../src/common/collection.c:1649 -#: ../src/libs/collect.c:1166 ../src/libs/collect.c:1330 -#: ../src/libs/collect.c:1354 ../src/libs/collect.c:1473 -#: ../src/libs/collect.c:2432 +#: ../src/common/collection.c:1424 ../src/common/collection.c:1535 +#: ../src/libs/collect.c:1242 ../src/libs/collect.c:1426 +#: ../src/libs/collect.c:1452 ../src/libs/collect.c:1592 +#: ../src/libs/collect.c:2662 msgid "not tagged" msgstr "Без тегу" -#: ../src/common/collection.c:1554 ../src/libs/collect.c:1354 +#: ../src/common/collection.c:1425 ../src/libs/collect.c:1452 #: ../src/libs/map_locations.c:742 msgid "tagged" msgstr "З тегом" -#: ../src/common/collection.c:1555 +#: ../src/common/collection.c:1426 msgid "tagged*" msgstr "З тегом*" #. local copy -#: ../src/common/collection.c:1588 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1460 ../src/libs/collect.c:1883 #: ../src/libs/filters/local_copy.c:38 msgid "not copied locally" msgstr "Немає локальної копії" -#: ../src/common/collection.c:1592 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1465 ../src/libs/collect.c:1882 #: ../src/libs/filters/local_copy.c:38 msgid "copied locally" msgstr "Є локальна копія" -#: ../src/common/collection.c:1974 ../src/libs/collect.c:1879 +#. if its undefined +#: ../src/common/collection.c:1507 ../src/common/collection.c:1619 +#: ../src/libs/collect.c:2209 ../src/libs/collect.c:2210 +msgid "unnamed" +msgstr "Без імені" + +#: ../src/common/collection.c:1905 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:147 ../src/libs/filters/grouping.c:170 msgid "group leaders" msgstr "Лідери груп" -#: ../src/common/collection.c:1978 ../src/libs/collect.c:1879 +#: ../src/common/collection.c:1909 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:150 ../src/libs/filters/grouping.c:170 msgid "group followers" msgstr "Члени груп" -#: ../src/common/collection.c:2126 ../src/libs/collect.c:1959 +#: ../src/common/collection.c:2066 ../src/libs/collect.c:2100 msgid "not defined" msgstr "Не визначено" -#: ../src/common/collection.c:2575 +#: ../src/common/collection.c:2521 #, c-format msgid "<b>%d</b> image (#<b>%d</b>) selected of <b>%d</b>" msgstr "<b>%d</b> зображення (#<b>%d</b>) вибрано з <b>%d</b>" -#: ../src/common/collection.c:2582 +#: ../src/common/collection.c:2528 #, c-format msgid "<b>%d</b> image selected of <b>%d</b>" msgid_plural "<b>%d</b> images selected of <b>%d</b>" @@ -5423,10 +5689,10 @@ msgstr[1] "<b>%d</b> зображення вибрано з <b>%d</b>" msgstr[2] "<b>%d</b> зображень вибрано з <b>%d</b>" -#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2324 -#: ../src/develop/blend_gui.c:2372 ../src/gui/guides.c:729 -#: ../src/iop/channelmixerrgb.c:4620 ../src/iop/levels.c:671 -#: ../src/iop/rgblevels.c:937 ../src/iop/rgblevels.c:1032 +#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2340 +#: ../src/develop/blend_gui.c:2388 ../src/gui/guides.c:729 +#: ../src/iop/channelmixerrgb.c:4688 ../src/iop/levels.c:687 +#: ../src/iop/rgblevels.c:969 ../src/iop/rgblevels.c:1083 msgid "gray" msgstr "Сірий" @@ -5635,12 +5901,12 @@ msgstr "темний ціановий" #: ../src/common/color_vocabulary.c:297 ../src/common/color_vocabulary.c:317 -#: ../src/iop/colorzones.c:2267 +#: ../src/iop/colorzones.c:2503 msgid "aqua" msgstr "аква" #: ../src/common/color_vocabulary.c:298 ../src/gui/guides.c:733 -#: ../src/iop/temperature.c:1923 +#: ../src/iop/temperature.c:1900 msgid "cyan" msgstr "ціан" @@ -5706,7 +5972,7 @@ msgstr "темний маджентовий" #: ../src/common/color_vocabulary.c:341 ../src/gui/guides.c:734 -#: ../src/iop/colorzones.c:2270 ../src/iop/temperature.c:1921 +#: ../src/iop/colorzones.c:2506 ../src/iop/temperature.c:1898 msgid "magenta" msgstr "маджента" @@ -5718,90 +5984,85 @@ msgid "color not found" msgstr "колір не знайдено" -#: ../src/common/colorlabels.c:310 +#: ../src/common/colorlabels.c:309 #, c-format msgid "colorlabels set to %s" msgstr "кольорові позначки встановлено в %s" -#: ../src/common/colorlabels.c:312 +#: ../src/common/colorlabels.c:311 msgid "all colorlabels removed" msgstr "всі кольорові позначки видалено" -#: ../src/common/colorlabels.c:333 ../src/gui/accelerators.c:170 -#: ../src/libs/image.c:592 +#: ../src/common/colorlabels.c:332 ../src/gui/accelerators.c:188 +#: ../src/libs/image.c:660 msgid "clear" msgstr "Очистити" -#. init the category profile with NULL profile, the actual profile must be retrieved dynamically by the caller -#: ../src/common/colorspaces.c:1229 ../src/common/colorspaces.c:1518 -msgid "work profile" -msgstr "Робочий профіль" - -#: ../src/common/colorspaces.c:1232 ../src/common/colorspaces.c:1514 -#: ../src/iop/colorout.c:885 +#: ../src/common/colorspaces.c:1382 ../src/common/colorspaces.c:1730 +#: ../src/iop/colorout.c:901 msgid "export profile" msgstr "Профіль експорту" -#: ../src/common/colorspaces.c:1236 ../src/common/colorspaces.c:1516 -#: ../src/views/darkroom.c:2542 +#: ../src/common/colorspaces.c:1387 ../src/common/colorspaces.c:1732 +#: ../src/views/darkroom.c:2383 msgid "softproof profile" msgstr "Профіль екранної кольоропроби" -#: ../src/common/colorspaces.c:1242 ../src/common/colorspaces.c:1498 +#: ../src/common/colorspaces.c:1397 ../src/common/colorspaces.c:1714 msgid "system display profile" msgstr "Профіль системи" -#: ../src/common/colorspaces.c:1245 ../src/common/colorspaces.c:1520 +#: ../src/common/colorspaces.c:1402 ../src/common/colorspaces.c:1736 msgid "system display profile (second window)" msgstr "Профіль системи (друге вікно)" -#: ../src/common/colorspaces.c:1255 +#: ../src/common/colorspaces.c:1415 msgid "sRGB (web-safe)" msgstr "sRGB (для веб)" -#: ../src/common/colorspaces.c:1269 ../src/common/colorspaces.c:1522 +#: ../src/common/colorspaces.c:1435 ../src/common/colorspaces.c:1738 msgid "Rec709 RGB" msgstr "Rec709 RGB" -#: ../src/common/colorspaces.c:1279 +#: ../src/common/colorspaces.c:1450 msgid "PQ Rec2020 RGB" msgstr "PQ Rec2020 RGB" -#: ../src/common/colorspaces.c:1284 +#: ../src/common/colorspaces.c:1458 msgid "HLG Rec2020 RGB" msgstr "HLG Rec2020 RGB" -#: ../src/common/colorspaces.c:1289 +#: ../src/common/colorspaces.c:1465 msgid "PQ P3 RGB" msgstr "PQ P3 RGB" -#: ../src/common/colorspaces.c:1294 +#: ../src/common/colorspaces.c:1471 msgid "HLG P3 RGB" msgstr "HLG P3 RGB" -#: ../src/common/colorspaces.c:1299 ../src/common/colorspaces.c:1524 -msgid "linear ProPhoto RGB" -msgstr "Лінійний ProPhoto RGB" +#: ../src/common/colorspaces.c:1478 +msgid "Display P3 RGB" +msgstr "Display P3 RGB" -#: ../src/common/colorspaces.c:1304 ../src/common/colorspaces.c:1492 +#: ../src/common/colorspaces.c:1493 ../src/common/colorspaces.c:1708 msgid "linear XYZ" msgstr "Лінійний XYZ" -#: ../src/common/colorspaces.c:1308 ../src/common/colorspaces.c:1494 -#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2000 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:267 +#: ../src/common/colorspaces.c:1500 ../src/common/colorspaces.c:1710 +#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2016 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:293 msgid "Lab" msgstr "Lab" -#: ../src/common/colorspaces.c:1313 ../src/common/colorspaces.c:1496 +#: ../src/common/colorspaces.c:1508 ../src/common/colorspaces.c:1712 msgid "linear infrared BGR" msgstr "Лінійний інфрачервоний BGR" -#: ../src/common/colorspaces.c:1317 +#: ../src/common/colorspaces.c:1513 msgid "BRG (for testing)" msgstr "BRG (для тестування)" -#: ../src/common/colorspaces.c:1409 +#: ../src/common/colorspaces.c:1619 #, c-format msgid "" "profile `%s' not usable as histogram profile. it has been replaced by sRGB!" @@ -5809,47 +6070,47 @@ "Профіль `%s' не можна використати як профіль гістограми. Його замінено на " "sRGB!" -#: ../src/common/colorspaces.c:1500 +#: ../src/common/colorspaces.c:1716 msgid "embedded ICC profile" msgstr "Вбудований ICC профіль" -#: ../src/common/colorspaces.c:1502 +#: ../src/common/colorspaces.c:1718 msgid "embedded matrix" msgstr "Вбудована матриця" -#: ../src/common/colorspaces.c:1504 +#: ../src/common/colorspaces.c:1720 msgid "standard color matrix" msgstr "Стандартна матриця кольорів" -#: ../src/common/colorspaces.c:1506 +#: ../src/common/colorspaces.c:1722 msgid "enhanced color matrix" msgstr "Покращена матриця кольорів" -#: ../src/common/colorspaces.c:1508 +#: ../src/common/colorspaces.c:1724 msgid "vendor color matrix" msgstr "Матриця кольорів виробника" -#: ../src/common/colorspaces.c:1510 +#: ../src/common/colorspaces.c:1726 msgid "alternate color matrix" msgstr "Альтернативна матриця кольорів" -#: ../src/common/colorspaces.c:1512 +#: ../src/common/colorspaces.c:1728 msgid "BRG (experimental)" msgstr "BRG (експериментально)" -#: ../src/common/colorspaces.c:1526 +#: ../src/common/colorspaces.c:1742 msgid "PQ Rec2020" msgstr "PQ Rec2020" -#: ../src/common/colorspaces.c:1528 +#: ../src/common/colorspaces.c:1744 msgid "HLG Rec2020" msgstr "HLG Rec2020" -#: ../src/common/colorspaces.c:1530 +#: ../src/common/colorspaces.c:1746 msgid "PQ P3" msgstr "PQ P3" -#: ../src/common/colorspaces.c:1532 +#: ../src/common/colorspaces.c:1748 msgid "HLG P3" msgstr "HLG P3" @@ -5877,40 +6138,40 @@ msgid "printing `%s' on `%s'" msgstr "Друк `%s' на `%s'" -#: ../src/common/darktable.c:250 +#: ../src/common/darktable.c:375 #, c-format msgid "found strange path `%s'" msgstr "Знайдено дивний шлях `%s'" -#: ../src/common/darktable.c:265 +#: ../src/common/darktable.c:390 #, c-format msgid "error loading directory `%s'" msgstr "Помилка завантаження каталогу `%s'" -#: ../src/common/darktable.c:289 +#: ../src/common/darktable.c:414 #, c-format msgid "file `%s' has unknown format!" msgstr "Файл `%s' має невідомий формат!" -#: ../src/common/darktable.c:302 ../src/control/jobs/control_jobs.c:2118 -#: ../src/control/jobs/control_jobs.c:2177 +#: ../src/common/darktable.c:427 ../src/control/jobs/control_jobs.c:2121 +#: ../src/control/jobs/control_jobs.c:2180 #, c-format msgid "error loading file `%s'" msgstr "Помилка завантаження файлу `%s'" -#: ../src/common/darktable.c:1509 +#: ../src/common/darktable.c:1650 msgid "configuration information" msgstr "Інформація щодо налаштування" -#: ../src/common/darktable.c:1511 -msgid "show this information again" +#: ../src/common/darktable.c:1652 +msgid "_show this information again" msgstr "Показати це наступного разу" -#: ../src/common/darktable.c:1511 -msgid "understood" +#: ../src/common/darktable.c:1652 +msgid "_understood" msgstr "Зрозуміло" -#: ../src/common/darktable.c:1968 +#: ../src/common/darktable.c:2106 msgid "" "the RCD demosaicer has been defined as default instead of PPG because of " "better quality and performance." @@ -5918,13 +6179,13 @@ "Метод демозаїкізації RCD було встановлено за замовчуванням замість PPG через " "кращу якість та продуктивність." -#: ../src/common/darktable.c:1970 +#: ../src/common/darktable.c:2108 msgid "see preferences/darkroom/demosaicing for zoomed out darkroom mode" msgstr "" "Щодо демозаїкізації масштабованих зображень в режимі темної кімнати " "перегляньте відповідний параметр в \"Налаштування > Темна кімната\"" -#: ../src/common/darktable.c:1976 +#: ../src/common/darktable.c:2114 msgid "" "the user interface and the underlying internals for tuning darktable " "performance have changed." @@ -5932,7 +6193,7 @@ "Інтерфейс користувача та базові внутрішні елементи для налаштування " "продуктивності darktable змінилися." -#: ../src/common/darktable.c:1978 +#: ../src/common/darktable.c:2116 msgid "" "you won't find headroom and friends any longer, instead in preferences/" "processing use:" @@ -5940,15 +6201,15 @@ "Ви більше не знайдете старих параметрів, замість цього \"в Налаштування > " "Обробка\" використовуйте:" -#: ../src/common/darktable.c:1980 +#: ../src/common/darktable.c:2118 msgid "1) darktable resources" msgstr "1) рівень ресурсів для darktable" -#: ../src/common/darktable.c:1982 +#: ../src/common/darktable.c:2120 msgid "2) tune OpenCL performance" msgstr "2) налаштування продуктивності OpenCL" -#: ../src/common/darktable.c:1989 +#: ../src/common/darktable.c:2127 msgid "" "some global config parameters relevant for OpenCL performance are not used " "any longer." @@ -5956,34 +6217,35 @@ "Деякі глобальні параметри конфігурації, що мають відношення до " "продуктивності OpenCL, більше не використовуються." -#: ../src/common/darktable.c:1991 +#: ../src/common/darktable.c:2129 msgid "" -"instead you will find 'per device' data in 'cl_device_v4_canonical-name'. " +"instead you will find 'per device' data in 'cldevice_v5_canonical-name'. " "content is:" msgstr "" -"Замість цього ви знайдете окремі дані для пристроїв у 'cldevice_v4_canonical-" +"Замість цього ви знайдете окремі дані для пристроїв у 'cldevice_v5_canonical-" "name'. Зміст:" -#: ../src/common/darktable.c:1993 ../src/common/darktable.c:2012 +#: ../src/common/darktable.c:2131 ../src/common/darktable.c:2150 +#: ../src/common/darktable.c:2165 msgid "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" msgstr "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" -#: ../src/common/darktable.c:1995 ../src/common/darktable.c:2014 +#: ../src/common/darktable.c:2133 ../src/common/darktable.c:2152 msgid "you may tune as before except 'magic'" msgstr "Ви можете регулювати ці параметри, як і раніше, за винятком 'magic'" -#: ../src/common/darktable.c:2001 +#: ../src/common/darktable.c:2139 msgid "" "your OpenCL compiler settings for all devices have been reset to default." msgstr "" "Налаштування компілятора OpenCL для всіх пристроїв були скинуті до значень " "за замовчуванням." -#: ../src/common/darktable.c:2008 +#: ../src/common/darktable.c:2146 msgid "" "OpenCL global config parameters 'per device' data has been recreated with an " "updated name." @@ -5991,13 +6253,13 @@ "Дані параметрів глобальної конфігурації OpenCL 'для окремих пристроїв' було " "відтворено з оновленою назвою." -#: ../src/common/darktable.c:2010 +#: ../src/common/darktable.c:2148 ../src/common/darktable.c:2163 msgid "" -"you will find 'per device' data in 'cl_device_v5_canonical-name'. content is:" +"you will find 'per device' data in 'cldevice_v5_canonical-name'. content is:" msgstr "" -"Ви знайдете окремі дані для пристроїв у 'cl_device_v5_canonical-name'. Зміст:" +"Ви знайдете окремі дані для пристроїв у 'cldevice_v5_canonical-name'. Зміст:" -#: ../src/common/darktable.c:2016 +#: ../src/common/darktable.c:2154 msgid "" "If you're using device names in 'opencl_device_priority' you should update " "them to the new names." @@ -6005,7 +6267,24 @@ "Якщо ви використовуєте імена пристроїв у 'opencl_device_priority', вам слід " "оновити їх до нових імен." -#: ../src/common/database.c:2756 +#: ../src/common/darktable.c:2161 +msgid "" +"OpenCL 'per device' config data have been automatically extended by 'unified-" +"fraction'." +msgstr "" +"Конфігураційні дані OpenCL для окремих пристроїв автоматично розширено " +"додаванням 'unified-fraction'." + +#: ../src/common/darktable.c:2172 +msgid "" +"OpenCL 'per device' compiler settings might have been updated.\n" +"\n" +msgstr "" +"Специфічні для пристроїв налаштування компілятора OpenCL могли бути " +"оновлені.\n" +"\n" + +#: ../src/common/database.c:3350 #, c-format msgid "" "\n" @@ -6064,30 +6343,19 @@ "даних.</i>\n" #. clang-format on -#: ../src/common/database.c:2777 +#: ../src/common/database.c:3371 msgid "error starting darktable" msgstr "Помилка запуску darktable" -#: ../src/common/database.c:2778 ../src/libs/collect.c:2915 -#: ../src/libs/export_metadata.c:288 ../src/libs/import.c:1702 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:227 ../src/libs/modulegroups.c:3464 -#: ../src/libs/styles.c:438 ../src/libs/styles.c:621 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3471 -msgid "cancel" -msgstr "Скасувати" - -#: ../src/common/database.c:2778 -msgid "delete database lock files" +#: ../src/common/database.c:3372 +msgid "_delete database lock files" msgstr "Видалити файли блокування бази даних" -#: ../src/common/database.c:2784 +#: ../src/common/database.c:3378 msgid "are you sure?" msgstr "Ви впевнені?" -#: ../src/common/database.c:2785 +#: ../src/common/database.c:3379 msgid "" "\n" "do you really want to delete the lock files?\n" @@ -6095,20 +6363,19 @@ "\n" "Ви дійсно хочете видалити файли блокування?\n" -#: ../src/common/database.c:2785 ../src/common/variables.c:703 -#: ../src/develop/imageop_gui.c:210 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 -msgid "yes" -msgstr "Так" +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2597 +msgid "_no" +msgstr "_Ні" -#: ../src/common/database.c:2801 ../src/libs/export_metadata.c:164 -#: ../src/libs/geotagging.c:811 +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2596 +msgid "_yes" +msgstr "_Так" + +#: ../src/common/database.c:3395 msgid "done" msgstr "Зроблено" -#: ../src/common/database.c:2802 +#: ../src/common/database.c:3396 msgid "" "\n" "successfully deleted the lock files.\n" @@ -6118,17 +6385,17 @@ "Файли блокування успішно видалені.\n" "Тепер ви можете перезапустити darktable\n" -#. the button to close the popup -#: ../src/common/database.c:2803 ../src/common/database.c:2810 -#: ../src/libs/filters/filename.c:452 -msgid "ok" -msgstr "OK" +#: ../src/common/database.c:3397 ../src/common/database.c:3404 +#: ../src/gui/accelerators.c:2580 ../src/gui/accelerators.c:2662 +#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:566 +msgid "_ok" +msgstr "_OK" -#: ../src/common/database.c:2806 +#: ../src/common/database.c:3400 msgid "error" msgstr "Помилка" -#: ../src/common/database.c:2807 +#: ../src/common/database.c:3401 #, c-format msgid "" "\n" @@ -6143,7 +6410,7 @@ "db.lock</i>\n" "в каталозі <a href=\"file:///%s\">%s</a>.\n" -#: ../src/common/database.c:2924 +#: ../src/common/database.c:3518 #, c-format msgid "" "the database lock file contains a pid that seems to be alive in your system: " @@ -6152,18 +6419,43 @@ "Файл блокування бази даних містить pid, який, здається, є живим у вашій " "системі: %d" -#: ../src/common/database.c:2931 +#: ../src/common/database.c:3525 #, c-format msgid "the database lock file seems to be empty" msgstr "Файл блокування бази даних здається порожнім" -#: ../src/common/database.c:2941 +#: ../src/common/database.c:3535 #, c-format msgid "error opening the database lock file for reading: %s" msgstr "Помилка відкриття файлу блокування бази даних для читання: %s" +#: ../src/common/database.c:3605 +#, c-format +msgid "" +"the database schema version of\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"is too new for this build of darktable (this means the database was created " +"or upgraded by a newer darktable version)\n" +msgstr "" +"Версія схеми бази даних\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"занадто нова для цієї збірки Darktable (це означає, що базу даних було " +"створено або оновлено за допомогою новішої версії Darktable)\n" + +#: ../src/common/database.c:3612 +msgid "darktable - too new db version" +msgstr "Darktable - занадто нова версія бази даних" + +#: ../src/common/database.c:3613 +msgid "_quit darktable" +msgstr "_Вийти з Darktable" + #. the database has to be upgraded, let's ask user -#: ../src/common/database.c:2978 +#: ../src/common/database.c:3628 #, c-format msgid "" "the database schema has to be upgraded for\n" @@ -6182,21 +6474,21 @@ "\n" "Хочете продовжити чи вийти зараз, щоб зробити резервну копію?\n" -#: ../src/common/database.c:2986 +#: ../src/common/database.c:3636 msgid "darktable - schema migration" -msgstr "darktable - міграція схеми бази даних" +msgstr "Darktable - міграція схеми бази даних" -#: ../src/common/database.c:2987 ../src/common/database.c:3306 -#: ../src/common/database.c:3324 ../src/common/database.c:3491 -#: ../src/common/database.c:3509 -msgid "close darktable" -msgstr "Закрити darktable" +#: ../src/common/database.c:3637 ../src/common/database.c:3959 +#: ../src/common/database.c:3974 ../src/common/database.c:4142 +#: ../src/common/database.c:4157 +msgid "_close darktable" +msgstr "Закрити Darktable" -#: ../src/common/database.c:2987 -msgid "upgrade database" +#: ../src/common/database.c:3637 +msgid "_upgrade database" msgstr "Оновити базу даних" -#: ../src/common/database.c:3286 ../src/common/database.c:3471 +#: ../src/common/database.c:3939 ../src/common/database.c:4122 #, c-format msgid "" "quick_check said:\n" @@ -6205,43 +6497,43 @@ "Повідомлення quick_check:\n" "%s \n" -#: ../src/common/database.c:3303 ../src/common/database.c:3321 -#: ../src/common/database.c:3488 ../src/common/database.c:3506 +#: ../src/common/database.c:3956 ../src/common/database.c:3971 +#: ../src/common/database.c:4139 ../src/common/database.c:4154 msgid "darktable - error opening database" -msgstr "darktable - помилка відкриття бази даних" +msgstr "Darktable - помилка відкриття бази даних" -#: ../src/common/database.c:3308 ../src/common/database.c:3493 -msgid "attempt restore" +#: ../src/common/database.c:3960 ../src/common/database.c:4143 +msgid "_attempt restore" msgstr "Спробувати відновити" -#: ../src/common/database.c:3310 ../src/common/database.c:3326 -#: ../src/common/database.c:3495 ../src/common/database.c:3511 -msgid "delete database" +#: ../src/common/database.c:3961 ../src/common/database.c:3975 +#: ../src/common/database.c:4144 ../src/common/database.c:4158 +msgid "_delete database" msgstr "Видалити базу даних" -#: ../src/common/database.c:3314 ../src/common/database.c:3499 +#: ../src/common/database.c:3964 ../src/common/database.c:4147 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup, attempt an automatic restore\n" "from the most recent snapshot or delete the corrupted database\n" "and start with a new one?" msgstr "" -"Ви хочете закрити darktable зараз, щоб відновити вручну\n" +"Ви хочете закрити Darktable зараз, щоб відновити вручну\n" "базу даних із резервної копії, спробувати автоматичне відновлення\n" "з останнього знімка бази або видалити пошкоджену базу даних\n" "і почати з новою?" -#: ../src/common/database.c:3330 ../src/common/database.c:3515 +#: ../src/common/database.c:3978 ../src/common/database.c:4161 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup or delete the corrupted database\n" "and start with a new one?" msgstr "" -"Ви хочете закрити darktable зараз, щоб відновити вручну\n" +"Ви хочете закрити Darktable зараз, щоб відновити вручну\n" "базу даних із резервної копії чи видалити пошкоджену базу даних\n" "і почати з новою?" -#: ../src/common/database.c:3337 ../src/common/database.c:3520 +#: ../src/common/database.c:3985 ../src/common/database.c:4166 #, c-format msgid "" "an error has occurred while trying to open the database from\n" @@ -6266,12 +6558,12 @@ "Швидкий незалежний від експозиції керований фільтр не зміг виділити пам'ять, " "перевірте налаштування оперативної пам'яті" -#: ../src/common/exif.cc:5200 +#: ../src/common/exif.cc:5482 #, c-format msgid "cannot read XMP file '%s': '%s'" msgstr "Не вдається прочитати файл XMP '%s': '%s'" -#: ../src/common/exif.cc:5258 +#: ../src/common/exif.cc:5540 #, c-format msgid "cannot write XMP file '%s': '%s'" msgstr "Не вдається записати в файл XMP '%s': '%s'" @@ -6282,42 +6574,42 @@ "Швидкий керований фільтр не зміг виділити пам'ять, перевірте налаштування " "оперативної пам'яті" -#: ../src/common/film.c:345 +#: ../src/common/film.c:356 msgid "do you want to remove this empty directory?" msgid_plural "do you want to remove these empty directories?" msgstr[0] "Ви хочете видалити цей порожній каталог?" msgstr[1] "Ви хочете видалити ці порожні каталоги?" msgstr[2] "Ви хочете видалити ці порожні каталоги?" -#: ../src/common/film.c:352 +#: ../src/common/film.c:363 msgid "remove empty directory?" msgid_plural "remove empty directories?" msgstr[0] "Видалити порожній каталог?" msgstr[1] "Видалити порожній каталог?" msgstr[2] "Видалити порожній каталог?" -#: ../src/common/film.c:371 ../src/gui/preferences.c:816 -#: ../src/gui/styles_dialog.c:548 ../src/libs/geotagging.c:829 -#: ../src/libs/import.c:1551 +#: ../src/common/film.c:383 ../src/gui/preferences.c:814 +#: ../src/gui/styles_dialog.c:556 ../src/libs/geotagging.c:830 +#: ../src/libs/import.c:1560 msgid "name" msgstr "Ім'я" -#: ../src/common/film.c:477 +#: ../src/common/film.c:492 msgid "" "cannot remove film roll having local copies with non accessible originals" msgstr "" "Неможливо видалити плівку з локальними копіями і недоступними оригіналами" -#: ../src/common/history.c:840 +#: ../src/common/history.c:876 msgid "you need to copy history from an image before you paste it onto another" msgstr "" "Вам потрібно скопіювати історію із зображення, перш ніж вставити її в інше" -#: ../src/common/image.c:325 +#: ../src/common/image.c:333 msgid "orphaned image" msgstr "Осиротіле зображення" -#: ../src/common/image.c:620 +#: ../src/common/image.c:629 #, c-format msgid "geo-location undone for %d image" msgid_plural "geo-location undone for %d images" @@ -6325,7 +6617,7 @@ msgstr[1] "Геокоординати скасовано для %d зображень" msgstr[2] "Геокоординати скасовано для %d зображень" -#: ../src/common/image.c:622 +#: ../src/common/image.c:631 #, c-format msgid "geo-location re-applied to %d image" msgid_plural "geo-location re-applied to %d images" @@ -6333,7 +6625,7 @@ msgstr[1] "Геокоординати повторно застосовано для %d зображень" msgstr[2] "Геокоординати повторно застосовано для %d зображень" -#: ../src/common/image.c:645 +#: ../src/common/image.c:654 #, c-format msgid "date/time undone for %d image" msgid_plural "date/time undone for %d images" @@ -6341,7 +6633,7 @@ msgstr[1] "Дату/час скасовано для %d зображень" msgstr[2] "Дату/час скасовано для %d зображень" -#: ../src/common/image.c:647 +#: ../src/common/image.c:656 #, c-format msgid "date/time re-applied to %d image" msgid_plural "date/time re-applied to %d images" @@ -6349,49 +6641,49 @@ msgstr[1] "Дату/час повторно застосовано для %d зображень" msgstr[2] "Дату/час повторно застосовано для %d зображень" -#: ../src/common/image.c:2188 +#: ../src/common/image.c:2260 #, c-format msgid "cannot access local copy `%s'" msgstr "Не вдається отримати доступ до локальної копії `%s'" -#: ../src/common/image.c:2195 +#: ../src/common/image.c:2267 #, c-format msgid "cannot write local copy `%s'" msgstr "Не вдається записати локальну копію `%s'" -#: ../src/common/image.c:2202 +#: ../src/common/image.c:2274 #, c-format msgid "error moving local copy `%s' -> `%s'" msgstr "Помилка переміщення локальної копії `%s' -> `%s'" -#: ../src/common/image.c:2219 +#: ../src/common/image.c:2291 #, c-format msgid "error moving `%s': file not found" msgstr "Помилка переміщення `%s': файл не знайдено" -#: ../src/common/image.c:2229 +#: ../src/common/image.c:2301 #, c-format msgid "error moving `%s' -> `%s': file exists" msgstr "Помилка переміщення `%s' -> `%s': файл існує" -#: ../src/common/image.c:2233 +#: ../src/common/image.c:2305 #, c-format msgid "error moving `%s' -> `%s'" msgstr "Помилка переміщення `%s' -> `%s'" -#: ../src/common/image.c:2562 +#: ../src/common/image.c:2634 msgid "cannot create local copy when the original file is not accessible." msgstr "Неможливо створити локальну копію, коли оригінал недоступний." -#: ../src/common/image.c:2576 +#: ../src/common/image.c:2648 msgid "cannot create local copy." msgstr "Неможливо створити локальну копію." -#: ../src/common/image.c:2656 ../src/control/jobs/control_jobs.c:777 +#: ../src/common/image.c:2728 ../src/control/jobs/control_jobs.c:777 msgid "cannot remove local copy when the original file is not accessible." msgstr "Неможливо видалити локальну копію, коли оригінал недоступний." -#: ../src/common/image.c:2821 +#: ../src/common/image.c:2901 #, c-format msgid "%d local copy has been synchronized" msgid_plural "%d local copies have been synchronized" @@ -6399,11 +6691,11 @@ msgstr[1] "%d локальні копії синхронізовано" msgstr[2] "%d локальних копій синхронізовано" -#: ../src/common/image.c:3022 +#: ../src/common/image.c:3102 msgid "<b>WARNING</b>: camera is missing samples!" msgstr "<b>ПОПЕРЕДЖЕННЯ</b>: відсутні зразки зображень із цієї моделі камери!" -#: ../src/common/image.c:3023 +#: ../src/common/image.c:3103 msgid "" "You must provide samples in <a href='https://raw.pixls.us/'>https://raw." "pixls.us/</a>" @@ -6411,7 +6703,7 @@ "Вам слід надати такі зразки, завантаживши їх на сайт <a href='https://raw." "pixls.us/'>https://raw.pixls.us/</a>" -#: ../src/common/image.c:3024 +#: ../src/common/image.c:3104 #, c-format msgid "" "for `%s' `%s'\n" @@ -6420,83 +6712,84 @@ "для `%s' `%s'\n" "у якомога більшій кількості форматів/варіантів стиснення/глибин кольору" -#: ../src/common/image.c:3027 +#: ../src/common/image.c:3107 msgid "or the <b>RAW won't be readable</b> in next version." msgstr "" "інакше <b>RAW з цієї камери не буде читатися</b> у наступній версії " "darktable." -#: ../src/common/image.h:209 ../src/common/ratings.c:284 -#: ../src/libs/history.c:843 ../src/libs/snapshots.c:779 +#: ../src/common/image.h:217 ../src/common/ratings.c:283 +#: ../src/imageio/format/avif.c:114 ../src/libs/history.c:843 +#: ../src/libs/snapshots.c:837 msgid "unknown" msgstr "невідомо" #. EMPTY_FIELD -#: ../src/common/image.h:210 -msgid "tiff" +#: ../src/common/image.h:218 ../src/imageio/format/tiff.c:831 +msgid "TIFF" msgstr "TIFF" -#: ../src/common/image.h:211 -msgid "png" +#: ../src/common/image.h:219 ../src/imageio/format/png.c:599 +msgid "PNG" msgstr "PNG" -#: ../src/common/image.h:212 ../src/imageio/format/j2k.c:652 -msgid "j2k" -msgstr "J2K" +#: ../src/common/image.h:220 +msgid "JPEG 2000" +msgstr "JPEG 2000" -#: ../src/common/image.h:213 -msgid "jpeg" +#: ../src/common/image.h:221 +msgid "JPEG" msgstr "JPEG" -#: ../src/common/image.h:214 -msgid "exr" +#: ../src/common/image.h:222 +msgid "EXR" msgstr "EXR" -#: ../src/common/image.h:215 -msgid "rgbe" +#: ../src/common/image.h:223 +msgid "RGBE" msgstr "RGBE" -#: ../src/common/image.h:216 -msgid "pfm" +#: ../src/common/image.h:224 ../src/imageio/format/pfm.c:120 +msgid "PFM" msgstr "PFM" -#: ../src/common/image.h:217 +#: ../src/common/image.h:225 msgid "GraphicsMagick" msgstr "GraphicsMagick" -#: ../src/common/image.h:218 -msgid "rawspeed" +#: ../src/common/image.h:226 +msgid "RawSpeed" msgstr "RawSpeed" -#: ../src/common/image.h:219 -msgid "netpnm" -msgstr "NetPNM" +#: ../src/common/image.h:227 +msgid "Netpbm" +msgstr "Netpbm" -#: ../src/common/image.h:220 -msgid "avif" +#: ../src/common/image.h:228 ../src/imageio/format/avif.c:728 +msgid "AVIF" msgstr "AVIF" -#: ../src/common/image.h:221 +#: ../src/common/image.h:229 msgid "ImageMagick" msgstr "ImageMagick" -#: ../src/common/image.h:222 -msgid "heif" +#: ../src/common/image.h:230 +msgid "HEIF" msgstr "HEIF" -#: ../src/common/image.h:223 -msgid "libraw" +#: ../src/common/image.h:231 +msgid "LibRaw" msgstr "LibRaw" -#: ../src/common/image.h:224 -msgid "webp" +#: ../src/common/image.h:232 ../src/imageio/format/webp.c:380 +msgid "WebP" msgstr "WebP" -#: ../src/common/image.h:225 -msgid "jpeg xl" +#: ../src/common/image.h:233 ../src/imageio/format/jxl.c:482 +msgid "JPEG XL" msgstr "JPEG XL" -#: ../src/common/image.h:226 +#: ../src/common/image.h:234 msgid "QOI" msgstr "QOI" @@ -6527,7 +6820,7 @@ msgid "requested session path not available. device not mounted?" msgstr "Запитаний шлях сеансу недоступний. Пристрій не змонтовано?" -#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:197 +#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:195 msgid "legacy" msgstr "Застарілий" @@ -6539,7 +6832,7 @@ msgid "v3.0 JPEG" msgstr "v3.0 JPEG" -#: ../src/common/iop_profile.c:1205 +#: ../src/common/iop_profile.c:1207 #, c-format msgid "" "darktable loads %s from\n" @@ -6563,13 +6856,13 @@ #. title #: ../src/common/metadata.c:48 ../src/imageio/format/pdf.c:574 -#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:169 -#: ../src/imageio/storage/gallery.c:170 ../src/imageio/storage/latex.c:169 -#: ../src/imageio/storage/piwigo.c:1058 ../src/libs/filtering.c:69 +#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:219 +#: ../src/imageio/storage/gallery.c:222 ../src/imageio/storage/latex.c:206 +#: ../src/imageio/storage/piwigo.c:1091 ../src/libs/filtering.c:69 msgid "title" msgstr "Заголовок" -#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:552 +#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:563 #: ../src/libs/filtering.c:70 msgid "description" msgstr "Опис" @@ -6587,11 +6880,11 @@ msgstr "Ім'я версії" #: ../src/common/metadata.c:53 ../src/libs/live_view.c:319 -#: ../src/libs/metadata_view.c:124 +#: ../src/libs/metadata_view.c:126 msgid "image id" msgstr "Id зображення" -#: ../src/common/mipmap_cache.c:1065 ../src/imageio/imageio.c:787 +#: ../src/common/mipmap_cache.c:1070 ../src/imageio/imageio.c:799 #, c-format msgid "image `%s' is not available!" msgstr "Зображення `%s' недоступне!" @@ -6605,7 +6898,43 @@ msgid "noiseprofile file `%s' is not valid" msgstr "Файл профілю шуму `%s' недійсний" -#: ../src/common/opencl.c:1376 +#: ../src/common/opencl.c:1165 +msgid "no working OpenCL library found" +msgstr "Не знайдено робочої бібліотеки OpenCL" + +#: ../src/common/opencl.c:1185 +msgid "" +"platform detection failed. some possible causes:\n" +" - OpenCL ICD (ocl-icd) missing,\n" +" - previous OpenCL errors leading to blocked devices,\n" +" - power management problems,\n" +" - buggy drivers,\n" +" - no OpenCL driver installed." +msgstr "" +"Не вдалося виявити платформу. Деякі можливі причини:\n" +" - OpenCL ICD (ocl-icd) відсутній,\n" +" - попередні помилки OpenCL, що призвели до блокування пристроїв,\n" +" - проблеми з керуванням живленням,\n" +" - помилки в драйверах,\n" +" - драйвер OpenCL не встановлено." + +#: ../src/common/opencl.c:1277 +msgid "no devices found for unknown platform" +msgstr "Не знайдено пристроїв для невідомої платформи" + +#: ../src/common/opencl.c:1323 +msgid "not enough memory for OpenCL devices" +msgstr "Недостатньо пам'яті для пристроїв OpenCL" + +#: ../src/common/opencl.c:1358 +msgid "no OpenCL devices found" +msgstr "Пристроїв OpenCL не знайдено" + +#: ../src/common/opencl.c:1401 +msgid "no suitable OpenCL devices found" +msgstr "Відповідних пристроїв OpenCL не знайдено" + +#: ../src/common/opencl.c:1422 #, c-format msgid "" "OpenCL initializing problem:\n" @@ -6614,36 +6943,22 @@ "Проблема ініціалізації OpenCL:\n" "%s" -#: ../src/common/opencl.c:1439 -msgid "" -"due to a slow GPU hardware acceleration using OpenCL has been deactivated" +#: ../src/common/opencl.c:1454 +msgid "OpenCL scheduling profile set to default, setup has changed" msgstr "" -"Через повільний GPU апаратне прискорення за допомогою OpenCL було " -"деактивовано" +"Профіль планування OpenCL встановлено за замовчуванням, налаштування змінено" -#: ../src/common/opencl.c:1449 -msgid "" -"multiple GPUs detected - OpenCL scheduling profile has been set accordingly" -msgstr "" -"Виявлено кілька GPU - профіль планування OpenCL було встановлено відповідно" - -#: ../src/common/opencl.c:1462 -msgid "" -"very fast GPU detected - OpenCL scheduling profile has been set accordingly" -msgstr "" -"Виявлено дуже швидкий GPU - профіль планування OpenCL було встановлено " -"відповідно" - -#: ../src/common/opencl.c:1471 -msgid "OpenCL scheduling profile set to default" -msgstr "Профіль планування OpenCL встановлено за замовчуванням" +#: ../src/common/opencl.c:2283 +#, c-format +msgid "building OpenCL program %s for %s" +msgstr "Компіляція програми OpenCL %s для %s" -#: ../src/common/pdf.h:88 ../src/iop/lens.cc:3441 +#: ../src/common/pdf.h:88 ../src/iop/lens.cc:4071 #: ../src/libs/filters/focal.c:74 ../src/libs/print_settings.c:81 msgid "mm" msgstr "мм" -#: ../src/common/pdf.h:89 ../src/libs/export.c:520 ../src/libs/export.c:1145 +#: ../src/common/pdf.h:89 ../src/libs/export.c:555 ../src/libs/export.c:1241 #: ../src/libs/print_settings.c:81 msgid "cm" msgstr "см" @@ -6656,7 +6971,7 @@ msgid "\"" msgstr "\"" -#: ../src/common/pdf.h:104 ../src/iop/borders.c:958 +#: ../src/common/pdf.h:104 ../src/iop/borders.c:971 msgid "A4" msgstr "A4" @@ -6698,66 +7013,65 @@ msgid "no images selected to apply rating" msgstr "Не вибрано зображень для застосування рейтингу" -#: ../src/common/ratings.c:275 ../src/libs/metadata_view.c:351 +#: ../src/common/ratings.c:274 ../src/libs/metadata_view.c:355 msgid "image rejected" msgstr "Зображення відхилено" -#: ../src/common/ratings.c:277 +#: ../src/common/ratings.c:276 msgid "image rated to 0 star" msgstr "Рейтинг зображення: 0 зірок" -#: ../src/common/ratings.c:279 +#: ../src/common/ratings.c:278 #, c-format msgid "image rated to %s" msgstr "Рейтинг зображення: %s" -#: ../src/common/ratings.c:306 ../src/libs/select.c:39 -#: ../src/views/lighttable.c:766 +#: ../src/common/ratings.c:305 ../src/views/lighttable.c:766 msgid "select" msgstr "Вибрати" -#: ../src/common/ratings.c:307 +#: ../src/common/ratings.c:306 msgid "upgrade" msgstr "підвищити рейтинг" -#: ../src/common/ratings.c:308 +#: ../src/common/ratings.c:307 msgid "downgrade" msgstr "знизити рейтинг" -#: ../src/common/ratings.c:312 +#: ../src/common/ratings.c:311 msgid "zero" msgstr "нуль" -#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:277 +#: ../src/common/ratings.c:312 ../src/libs/filters/rating_range.c:304 msgid "one" msgstr "один" -#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:278 +#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:305 msgid "two" msgstr "два" -#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:279 +#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:306 msgid "three" msgstr "три" -#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:280 +#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:307 msgid "four" msgstr "чотири" -#: ../src/common/ratings.c:317 ../src/libs/filters/rating_range.c:281 +#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:308 msgid "five" msgstr "п'ять" -#: ../src/common/ratings.c:318 +#: ../src/common/ratings.c:317 msgid "reject" msgstr "відхилити" -#: ../src/common/styles.c:244 +#: ../src/common/styles.c:243 #, c-format msgid "style with name '%s' already exists" msgstr "Стиль з іменем '%s' вже існує" -#: ../src/common/styles.c:270 ../src/common/styles.c:1776 +#: ../src/common/styles.c:270 ../src/common/styles.c:1783 #: ../src/libs/styles.c:54 msgid "styles" msgstr "Стилі" @@ -6767,58 +7081,58 @@ msgid "style named '%s' successfully created" msgstr "Стиль '%s' успішно створено" -#: ../src/common/styles.c:689 ../src/common/styles.c:719 -#: ../src/common/styles.c:759 ../src/dtgtk/culling.c:1097 +#: ../src/common/styles.c:688 ../src/common/styles.c:718 +#: ../src/common/styles.c:758 ../src/dtgtk/culling.c:1066 msgid "no image selected!" msgstr "Жодне зображення не вибрано!" -#: ../src/common/styles.c:693 +#: ../src/common/styles.c:692 #, c-format msgid "style %s successfully applied!" msgstr "Стиль %s успішно застосовано!" -#: ../src/common/styles.c:709 +#: ../src/common/styles.c:708 msgid "no images nor styles selected!" msgstr "Не вибрано ні зображень, ні стилів!" -#: ../src/common/styles.c:714 +#: ../src/common/styles.c:713 msgid "no styles selected!" msgstr "Жоден стиль не вибрано!" -#: ../src/common/styles.c:744 +#: ../src/common/styles.c:743 msgid "style successfully applied!" msgid_plural "styles successfully applied!" msgstr[0] "Стиль успішно застосовано!" msgstr[1] "Стилі успішно застосовано!" msgstr[2] "Стилі успішно застосовано!" -#: ../src/common/styles.c:840 +#: ../src/common/styles.c:838 #, c-format msgid "module `%s' version mismatch: %d != %d" msgstr "Невідповідність версій модуля `%s': %d != %d" -#: ../src/common/styles.c:1124 +#: ../src/common/styles.c:1125 #, c-format msgid "applied style `%s' on current image" msgstr "Застосовано стиль `%s' до поточного зображення" -#: ../src/common/styles.c:1378 +#: ../src/common/styles.c:1383 #, c-format msgid "failed to overwrite style file for %s" msgstr "Не вдається перезаписати стильовий файл для %s" -#: ../src/common/styles.c:1384 +#: ../src/common/styles.c:1389 #, c-format msgid "style file for %s exists" msgstr "Стильовий файл для %s існує" -#: ../src/common/styles.c:1667 +#: ../src/common/styles.c:1674 #, c-format msgid "style %s was successfully imported" msgstr "Стиль %s було успішно імпортовано" #. Failed to open file, clean up. -#: ../src/common/styles.c:1711 +#: ../src/common/styles.c:1718 #, c-format msgid "could not read file `%s'" msgstr "Не вдається прочитати файл `%s'" @@ -6831,10 +7145,18 @@ msgid "below sea level" msgstr "нижче рівня моря" -#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:880 +#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:907 msgid "m" msgstr "м" +#: ../src/common/variables.c:712 ../src/develop/imageop_gui.c:210 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "yes" +msgstr "Так" + #. Column 1 - "make" of the camera. #. * Column 2 - "model" (use the "make" and "model" as provided by DCRaw). #. * Column 3 - WB name. @@ -6847,7 +7169,7 @@ #. * #. * WB name is standardized to one of the following: #. "Sunlight" and other variation should be switched to this: -#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:323 +#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:320 msgid "daylight" msgstr "Денне світло" @@ -6947,7 +7269,7 @@ msgid "underwater" msgstr "Під водою" -#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2447 +#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2286 msgid "black & white" msgstr "Чорно-білий" @@ -6967,85 +7289,85 @@ msgid "auto WB" msgstr "Автоматичний ББ" -#: ../src/control/control.c:66 ../src/gui/accelerators.c:138 -#: ../src/views/darkroom.c:2162 +#: ../src/control/control.c:69 ../src/gui/accelerators.c:156 +#: ../src/views/darkroom.c:2029 msgid "hold" msgstr "Утримання" -#: ../src/control/control.c:102 ../src/control/control.c:205 +#: ../src/control/control.c:108 ../src/control/control.c:214 msgid "modifiers" msgstr "Модифікатори" -#: ../src/control/control.c:111 +#: ../src/control/control.c:117 msgctxt "accel" msgid "global" msgstr "Глобально" -#: ../src/control/control.c:118 +#: ../src/control/control.c:124 msgctxt "accel" msgid "views" msgstr "Режими" -#: ../src/control/control.c:125 +#: ../src/control/control.c:131 msgctxt "accel" msgid "thumbtable" msgstr "Стіл мініатюр" -#: ../src/control/control.c:132 +#: ../src/control/control.c:138 msgctxt "accel" msgid "utility modules" msgstr "Сервісні модулі" -#: ../src/control/control.c:139 +#: ../src/control/control.c:145 msgctxt "accel" msgid "format" msgstr "Опції формату" -#: ../src/control/control.c:146 +#: ../src/control/control.c:152 msgctxt "accel" msgid "storage" msgstr "Опції збереження" -#: ../src/control/control.c:153 +#: ../src/control/control.c:159 msgctxt "accel" msgid "processing modules" msgstr "Модулі обробки" -#: ../src/control/control.c:160 +#: ../src/control/control.c:166 msgctxt "accel" msgid "<blending>" msgstr "<змішування>" -#: ../src/control/control.c:167 +#: ../src/control/control.c:173 msgctxt "accel" msgid "Lua scripts" msgstr "Сценарії Lua" -#: ../src/control/control.c:174 +#: ../src/control/control.c:180 msgctxt "accel" msgid "fallbacks" msgstr "Резервні дії" -#: ../src/control/control.c:183 +#: ../src/control/control.c:189 msgctxt "accel" msgid "<focused>" msgstr "<сфокусовано>" -#: ../src/control/control.c:202 +#: ../src/control/control.c:209 msgid "show accels window" msgstr "Показати вікно прискорювачів" -#: ../src/control/control.c:363 +#: ../src/control/control.c:371 msgid "working..." msgstr "Операція виконується..." -#: ../src/control/crawler.c:425 +#: ../src/control/crawler.c:418 #, c-format msgid "ERROR: %s NOT synced XMP → DB" msgstr "ПОМИЛКА: %s НЕ синхронізовано XMP → DB" -#: ../src/control/crawler.c:426 ../src/control/crawler.c:492 -#: ../src/control/crawler.c:561 +#: ../src/control/crawler.c:419 ../src/control/crawler.c:485 +#: ../src/control/crawler.c:554 msgid "" "ERROR: cannot write the database. the destination may be full, offline or " "read-only." @@ -7053,18 +7375,18 @@ "ПОМИЛКА: не вдалося записати до бази даних. Місце призначення може бути " "заповненим, не підключеним або доступним лише для читання." -#: ../src/control/crawler.c:433 +#: ../src/control/crawler.c:426 #, c-format msgid "SUCCESS: %s synced XMP → DB" msgstr "УСПІШНО: %s синхронізовано XMP → DB" -#: ../src/control/crawler.c:455 +#: ../src/control/crawler.c:448 #, c-format msgid "ERROR: %s NOT synced DB → XMP" msgstr "ПОМИЛКА: %s НЕ синхронізовано DB → XMP" -#: ../src/control/crawler.c:457 ../src/control/crawler.c:516 -#: ../src/control/crawler.c:582 +#: ../src/control/crawler.c:450 ../src/control/crawler.c:509 +#: ../src/control/crawler.c:575 #, c-format msgid "" "ERROR: cannot write %s \n" @@ -7074,129 +7396,133 @@ "Місце призначення може бути заповненим, не підключеним або доступним лише " "для читання." -#: ../src/control/crawler.c:463 +#: ../src/control/crawler.c:456 #, c-format msgid "SUCCESS: %s synced DB → XMP" msgstr "УСПІШНО: %s синхронізовано DB → XMP" -#: ../src/control/crawler.c:489 +#: ../src/control/crawler.c:482 #, c-format msgid "ERROR: %s NOT synced new (XMP) → old (DB)" msgstr "ПОМИЛКА: %s НЕ синхронізовано в напрямку новіше (XMP) → старіше (DB)" -#: ../src/control/crawler.c:499 +#: ../src/control/crawler.c:492 #, c-format msgid "SUCCESS: %s synced new (XMP) → old (DB)" msgstr "УСПІШНО: %s синхронізовано в напрямку новіше (XMP) → старіше (DB)" -#: ../src/control/crawler.c:513 +#: ../src/control/crawler.c:506 #, c-format msgid "ERROR: %s NOT synced new (DB) → old (XMP)" msgstr "ПОМИЛКА: %s НЕ синхронізовано в напрямку новіше (DB) → старіше (XMP)" -#: ../src/control/crawler.c:521 +#: ../src/control/crawler.c:514 #, c-format msgid "SUCCESS: %s synced new (DB) → old (XMP)" msgstr "УСПІШНО: %s синхронізовано в напрямку новіше (DB) → старіше (XMP)" -#: ../src/control/crawler.c:530 ../src/control/crawler.c:598 +#: ../src/control/crawler.c:523 ../src/control/crawler.c:591 #, c-format msgid "EXCEPTION: %s has inconsistent timestamps" msgstr "ВИНЯТОК: %s має невідповідні позначки часу" -#: ../src/control/crawler.c:558 +#: ../src/control/crawler.c:551 #, c-format msgid "ERROR: %s NOT synced old (XMP) → new (DB)" msgstr "ПОМИЛКА: %s НЕ синхронізовано в напрямку старіше (XMP) → новіше (DB)" -#: ../src/control/crawler.c:567 +#: ../src/control/crawler.c:560 #, c-format msgid "SUCCESS: %s synced old (XMP) → new (DB)" msgstr "УСПІШНО: %s синхронізовано в напрямку старіше (XMP) → новіше (DB)" -#: ../src/control/crawler.c:579 +#: ../src/control/crawler.c:572 #, c-format msgid "ERROR: %s NOT synced old (DB) → new (XMP)" msgstr "ПОМИЛКА: %s НЕ синхронізовано в напрямку старіше (DB) → новіше (XMP)" -#: ../src/control/crawler.c:588 +#: ../src/control/crawler.c:581 #, c-format msgid "SUCCESS: %s synced old (DB) → new (XMP)" msgstr "УСПІШНО: %s синхронізовано в напрямку старіше (DB) → новіше (XMP)" -#: ../src/control/crawler.c:670 +#: ../src/control/crawler.c:663 #, c-format msgid "%id %02dh %02dm %02ds" msgstr "%iд %02dгод %02dхв %02dс" -#: ../src/control/crawler.c:740 ../src/imageio/storage/disk.c:168 -#: ../src/imageio/storage/gallery.c:154 ../src/imageio/storage/latex.c:153 -#: ../src/imageio/storage/latex.c:171 +#: ../src/control/crawler.c:716 +msgid "XMP" +msgstr "XMP" + +#: ../src/control/crawler.c:733 ../src/imageio/storage/disk.c:250 +#: ../src/imageio/storage/gallery.c:202 ../src/imageio/storage/latex.c:190 +#: ../src/imageio/storage/latex.c:208 msgid "path" msgstr "Шлях" -#: ../src/control/crawler.c:749 +#: ../src/control/crawler.c:742 msgid "XMP timestamp" msgstr "Позначка часу файлу XMP" -#: ../src/control/crawler.c:754 +#: ../src/control/crawler.c:747 msgid "database timestamp" msgstr "Позначка часу бази даних" -#: ../src/control/crawler.c:759 +#: ../src/control/crawler.c:752 msgid "newest" msgstr "Новіше" -#: ../src/control/crawler.c:765 +#: ../src/control/crawler.c:758 msgid "time difference" msgstr "Різниця в часі" -#: ../src/control/crawler.c:777 +#: ../src/control/crawler.c:770 msgid "updated XMP sidecar files found" msgstr "Знайдено оновлений XMP файл" -#: ../src/control/crawler.c:778 +#: ../src/control/crawler.c:771 msgid "_close" msgstr "_Закрити" #. setup selection accelerators #. action-box -#: ../src/control/crawler.c:793 ../src/dtgtk/thumbtable.c:2578 -#: ../src/libs/import.c:1722 ../src/libs/select.c:135 +#: ../src/control/crawler.c:786 ../src/dtgtk/thumbtable.c:2755 +#: ../src/libs/import.c:1732 ../src/libs/select.c:136 msgid "select all" msgstr "Вибрати всі" -#: ../src/control/crawler.c:794 ../src/dtgtk/thumbtable.c:2580 -#: ../src/libs/import.c:1726 ../src/libs/select.c:139 +#: ../src/control/crawler.c:787 ../src/dtgtk/thumbtable.c:2757 +#: ../src/libs/import.c:1736 ../src/libs/select.c:140 msgid "select none" msgstr "Скасувати вибір" -#: ../src/control/crawler.c:795 ../src/dtgtk/thumbtable.c:2582 -#: ../src/libs/select.c:143 +#: ../src/control/crawler.c:788 ../src/dtgtk/thumbtable.c:2759 +#: ../src/libs/select.c:144 msgid "invert selection" msgstr "Інвертувати вибір" -#: ../src/control/crawler.c:807 +#: ../src/control/crawler.c:800 msgid "on the selection:" msgstr "Для вибраного:" -#: ../src/control/crawler.c:808 +#: ../src/control/crawler.c:801 msgid "keep the XMP edit" msgstr "Зберегти редагування з XMP" -#: ../src/control/crawler.c:809 +#: ../src/control/crawler.c:802 msgid "keep the database edit" msgstr "Зберегти редагування з бази даних" -#: ../src/control/crawler.c:810 +#: ../src/control/crawler.c:803 msgid "keep the newest edit" msgstr "Зберегти найновіше редагування" -#: ../src/control/crawler.c:811 +#: ../src/control/crawler.c:804 msgid "keep the oldest edit" msgstr "Зберегти найстаріше редагування" -#: ../src/control/crawler.c:836 +#: ../src/control/crawler.c:829 msgid "synchronization log" msgstr "Журнал синхронізації" @@ -7228,6 +7554,10 @@ msgid "starting to import images from camera" msgstr "Початок імпортування зображень з камери" +#: ../src/control/jobs/camera_jobs.c:302 +msgid "failed to import images from camera." +msgstr "Не вдалося імпортувати зображення з камери." + #: ../src/control/jobs/camera_jobs.c:309 #, c-format msgid "importing %d image from camera" @@ -7342,7 +7672,8 @@ msgid "_remove from library" msgstr "Вилучити з бібліотеки зображень" -#: ../src/control/jobs/control_jobs.c:884 +#: ../src/control/jobs/control_jobs.c:884 ../src/libs/styles.c:440 +#: ../src/libs/styles.c:625 msgid "_skip" msgstr "Пропустити" @@ -7447,42 +7778,42 @@ msgid "exporting %d / %d to %s" msgstr "Експорт %d / %d до %s" -#: ../src/control/jobs/control_jobs.c:1459 ../src/views/darkroom.c:800 +#: ../src/control/jobs/control_jobs.c:1451 ../src/views/darkroom.c:721 #: ../src/views/print.c:369 #, c-format msgid "image `%s' is currently unavailable" msgstr "Зображення `%s' наразі недоступне" -#: ../src/control/jobs/control_jobs.c:1551 +#: ../src/control/jobs/control_jobs.c:1554 msgid "merge HDR image" msgstr "Об'єднати HDR зображення" -#: ../src/control/jobs/control_jobs.c:1565 +#: ../src/control/jobs/control_jobs.c:1568 msgid "duplicate images" msgstr "Створення дублікатів зображень" -#: ../src/control/jobs/control_jobs.c:1571 +#: ../src/control/jobs/control_jobs.c:1574 msgid "flip images" msgstr "Віддзеркалити зображення" -#: ../src/control/jobs/control_jobs.c:1578 +#: ../src/control/jobs/control_jobs.c:1581 msgid "set monochrome images" msgstr "Встановити зображення як монохромні" #. get all selected images now, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1585 +#: ../src/control/jobs/control_jobs.c:1588 msgid "remove images" msgstr "Видалити зображення" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove image?" msgstr "Вилучити зображення?" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove images?" msgstr "Видалити зображення?" -#: ../src/control/jobs/control_jobs.c:1599 +#: ../src/control/jobs/control_jobs.c:1602 #, c-format msgid "" "do you really want to remove %d image from darktable\n" @@ -7501,21 +7832,21 @@ "(без видалення файлу на диску)?" #. first get all selected images, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1614 -#: ../src/control/jobs/control_jobs.c:1647 +#: ../src/control/jobs/control_jobs.c:1617 +#: ../src/control/jobs/control_jobs.c:1650 msgid "delete images" msgstr "Видалення зображень" -#: ../src/control/jobs/control_jobs.c:1630 -#: ../src/control/jobs/control_jobs.c:1660 +#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1663 msgid "delete image?" msgstr "Видалити зображення?" -#: ../src/control/jobs/control_jobs.c:1630 +#: ../src/control/jobs/control_jobs.c:1633 msgid "delete images?" msgstr "Видалити зображення?" -#: ../src/control/jobs/control_jobs.c:1631 +#: ../src/control/jobs/control_jobs.c:1634 #, c-format msgid "" "do you really want to physically delete %d image\n" @@ -7533,7 +7864,7 @@ "Ви дійсно хочете фізично видалити %d зображень з диска\n" "(використовуючи сміттєвий кошик, якщо це можливо)?" -#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1636 #, c-format msgid "do you really want to physically delete %d image from disk?" msgid_plural "do you really want to physically delete %d images from disk?" @@ -7541,7 +7872,7 @@ msgstr[1] "Ви дійсно хочете фізично видалити %d зображення з диска?" msgstr[2] "Ви дійсно хочете фізично видалити %d зображень з диска?" -#: ../src/control/jobs/control_jobs.c:1661 +#: ../src/control/jobs/control_jobs.c:1664 msgid "" "do you really want to physically delete selected image (using trash if " "possible)?" @@ -7549,27 +7880,27 @@ "Ви дійсно хочете фізично видалити вибране зображення з диска (використовуючи " "сміттєвий кошик, якщо це можливо)?" -#: ../src/control/jobs/control_jobs.c:1662 +#: ../src/control/jobs/control_jobs.c:1665 msgid "do you really want to physically delete selected image from disk?" msgstr "Ви дійсно хочете фізично видалити вибране зображення з диска?" -#: ../src/control/jobs/control_jobs.c:1677 +#: ../src/control/jobs/control_jobs.c:1680 msgid "move images" msgstr "Перемістити зображення" -#: ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 msgid "_select as destination" msgstr "_Вибрати як призначення" -#: ../src/control/jobs/control_jobs.c:1708 +#: ../src/control/jobs/control_jobs.c:1711 msgid "move image?" msgid_plural "move images?" msgstr[0] "Перемістити зображення?" msgstr[1] "Перемістити зображення?" msgstr[2] "Перемістити зображення?" -#: ../src/control/jobs/control_jobs.c:1709 +#: ../src/control/jobs/control_jobs.c:1712 #, c-format msgid "" "do you really want to physically move %d image to %s?\n" @@ -7587,18 +7918,18 @@ "Ви дійсно хочете фізично перемістити %d зображень в %s?\n" "(усі дублікати будуть переміщені)" -#: ../src/control/jobs/control_jobs.c:1731 +#: ../src/control/jobs/control_jobs.c:1734 msgid "copy images" msgstr "Копіювання зображень" -#: ../src/control/jobs/control_jobs.c:1762 +#: ../src/control/jobs/control_jobs.c:1765 msgid "copy image?" msgid_plural "copy images?" msgstr[0] "Копіювати зображення?" msgstr[1] "Копіювати зображення?" msgstr[2] "Копіювати зображення?" -#: ../src/control/jobs/control_jobs.c:1763 +#: ../src/control/jobs/control_jobs.c:1766 #, c-format msgid "do you really want to physically copy %d image to %s?" msgid_plural "do you really want to physically copy %d images to %s?" @@ -7606,75 +7937,75 @@ msgstr[1] "Ви дійсно хочете фізично копіювати %d зображення в %s?" msgstr[2] "Ви дійсно хочете фізично копіювати %d зображень в %s?" -#: ../src/control/jobs/control_jobs.c:1781 -#: ../src/control/jobs/control_jobs.c:1789 +#: ../src/control/jobs/control_jobs.c:1784 +#: ../src/control/jobs/control_jobs.c:1792 msgid "local copy images" msgstr "Зробити локальну копію" -#: ../src/control/jobs/control_jobs.c:1796 ../src/libs/image.c:604 +#: ../src/control/jobs/control_jobs.c:1799 ../src/libs/image.c:674 msgid "refresh EXIF" msgstr "Оновити EXIF" -#: ../src/control/jobs/control_jobs.c:1860 +#: ../src/control/jobs/control_jobs.c:1863 #, c-format msgid "failed to get parameters from storage module `%s', aborting export.." msgstr "" "Не вдалося отримати параметри з модуля зберігання `%s', переривання " "експорту..." -#: ../src/control/jobs/control_jobs.c:1876 +#: ../src/control/jobs/control_jobs.c:1879 msgid "export images" msgstr "Експортувати зображення" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "adding time offset to %d image" msgstr "Додавання зміщення часу до %d зображення" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "setting date/time of %d image" msgstr "Встановлення дати і часу %d зображенню" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "adding time offset to %d images" msgstr "Додавання зміщення часу до %d зображень" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "setting date/time of %d images" msgstr "Встановлення дати і часу %d зображенням" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "added time offset to %d image" msgstr "Додано зміщення часу до %d зображення" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "set date/time of %d image" msgstr "Встановлено дату і час %d зображенню" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "added time offset to %d images" msgstr "Додано зміщення часу до %d зображень" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "set date/time of %d images" msgstr "Встановлено дату і час %d зображенням" -#: ../src/control/jobs/control_jobs.c:2014 +#: ../src/control/jobs/control_jobs.c:2017 msgid "time offset" msgstr "Зміщення часу" -#: ../src/control/jobs/control_jobs.c:2042 ../src/libs/copy_history.c:414 +#: ../src/control/jobs/control_jobs.c:2045 ../src/libs/copy_history.c:414 msgid "write sidecar files" msgstr "Записати XMP файли" -#: ../src/control/jobs/control_jobs.c:2256 ../src/control/jobs/film_jobs.c:297 +#: ../src/control/jobs/control_jobs.c:2259 ../src/control/jobs/film_jobs.c:297 #, c-format msgid "importing %d image" msgid_plural "importing %d images" @@ -7682,7 +8013,7 @@ msgstr[1] "Імпортується %d зображення" msgstr[2] "Імпортується %d зображень" -#: ../src/control/jobs/control_jobs.c:2292 +#: ../src/control/jobs/control_jobs.c:2295 #, c-format msgid "importing %d/%d image" msgid_plural "importing %d/%d images" @@ -7690,7 +8021,7 @@ msgstr[1] "Імпортується %d/%d зображення" msgstr[2] "Імпортується %d/%d зображень" -#: ../src/control/jobs/control_jobs.c:2300 +#: ../src/control/jobs/control_jobs.c:2305 #, c-format msgid "imported %d image" msgid_plural "imported %d images" @@ -7698,11 +8029,6 @@ msgstr[1] "Імпортовано %d зображення" msgstr[2] "Імпортовано %d зображень" -#: ../src/control/jobs/control_jobs.c:2347 ../src/gui/preferences.c:530 -#: ../src/libs/import.c:172 -msgid "import" -msgstr "Імпорт" - #: ../src/control/jobs/film_jobs.c:73 ../src/control/jobs/film_jobs.c:109 msgid "import images" msgstr "Імпортування зображень" @@ -7720,11 +8046,11 @@ msgid "import image" msgstr "Імпортувати зображення" -#: ../src/develop/blend.c:322 +#: ../src/develop/blend.c:315 msgid "detail mask blending error" msgstr "Помилка змішування маски деталей" -#: ../src/develop/blend.c:864 +#: ../src/develop/blend.c:904 msgid "detail mask CL blending problem" msgstr "Помилка змішування маски деталей (CL)" @@ -7925,8 +8251,7 @@ msgid "reverse" msgstr "Зворотна" -#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:413 -#: ../src/libs/metadata.c:631 ../src/libs/metadata_view.c:1193 +#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:442 msgid "default" msgstr "Замовчування" @@ -7934,35 +8259,35 @@ msgid "RAW" msgstr "RAW" -#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2014 +#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2030 msgid "RGB (display)" msgstr "RGB (відображення)" -#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2027 +#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2043 msgid "RGB (scene)" msgstr "RGB (сцена)" #. DEVELOP_MASK_ENABLED -#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3419 +#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3438 msgid "uniformly" msgstr "Рівномірно" -#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:3429 ../src/develop/imageop.c:2660 +#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:3448 ../src/develop/imageop.c:2669 msgid "drawn mask" msgstr "Намальована маска" -#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2512 -#: ../src/develop/blend_gui.c:3440 ../src/develop/imageop.c:2662 +#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2528 +#: ../src/develop/blend_gui.c:3459 ../src/develop/imageop.c:2671 msgid "parametric mask" msgstr "Параметрична маска" -#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2951 -#: ../src/develop/blend_gui.c:3467 ../src/develop/imageop.c:2664 +#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2966 +#: ../src/develop/blend_gui.c:3486 ../src/develop/imageop.c:2673 msgid "raster mask" msgstr "Растрова маска" -#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3454 +#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3473 msgid "drawn & parametric mask" msgstr "Намальована і параметрична маски" @@ -7998,177 +8323,177 @@ msgid "input after blur" msgstr "Вхід після розмиття" -#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:129 -#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/libs/live_view.c:362 +#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:157 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/libs/live_view.c:362 msgid "on" msgstr "Увімкнено" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "input" msgstr "На вході" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "output" msgstr "На виході" -#: ../src/develop/blend_gui.c:995 +#: ../src/develop/blend_gui.c:998 msgid " (zoom)" msgstr "(масштаб)" -#: ../src/develop/blend_gui.c:1003 +#: ../src/develop/blend_gui.c:1006 msgid " (log)" msgstr " (log)" -#: ../src/develop/blend_gui.c:1988 +#: ../src/develop/blend_gui.c:2004 msgid "reset to default blend colorspace" msgstr "Скинути до кольорового простору змішування за замовчуванням" -#: ../src/develop/blend_gui.c:2044 +#: ../src/develop/blend_gui.c:2060 msgid "reset and hide output channels" msgstr "Скинути і приховати вихідні канали" -#: ../src/develop/blend_gui.c:2051 +#: ../src/develop/blend_gui.c:2067 msgid "show output channels" msgstr "Показати вихідні канали" -#: ../src/develop/blend_gui.c:2290 ../src/develop/blend_gui.c:2357 -#: ../src/iop/tonecurve.c:1134 +#: ../src/develop/blend_gui.c:2306 ../src/develop/blend_gui.c:2373 +#: ../src/iop/tonecurve.c:1156 msgid "L" msgstr "L" -#: ../src/develop/blend_gui.c:2290 +#: ../src/develop/blend_gui.c:2306 msgid "sliders for L channel" msgstr "Повзунки для каналу L" -#: ../src/develop/blend_gui.c:2295 ../src/iop/tonecurve.c:1135 +#: ../src/develop/blend_gui.c:2311 ../src/iop/tonecurve.c:1157 msgid "a" msgstr "a" -#: ../src/develop/blend_gui.c:2295 +#: ../src/develop/blend_gui.c:2311 msgid "sliders for a channel" msgstr "Повзунки для каналу a" -#: ../src/develop/blend_gui.c:2299 +#: ../src/develop/blend_gui.c:2315 msgid "green/red" msgstr "зелений/червоний" -#: ../src/develop/blend_gui.c:2300 ../src/iop/tonecurve.c:1136 +#: ../src/develop/blend_gui.c:2316 ../src/iop/tonecurve.c:1158 msgid "b" msgstr "b" -#: ../src/develop/blend_gui.c:2300 +#: ../src/develop/blend_gui.c:2316 msgid "sliders for b channel" msgstr "Повзунки для каналу b" -#: ../src/develop/blend_gui.c:2304 +#: ../src/develop/blend_gui.c:2320 msgid "blue/yellow" msgstr "синій/жовтий" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "C" msgstr "C" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "sliders for chroma channel (of LCh)" msgstr "Повзунки для каналу кольоровості (LCh)" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "h" msgstr "h" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "sliders for hue channel (of LCh)" msgstr "Повзунки для каналу відтінку (LCh)" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "g" msgstr "g" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "sliders for gray value" msgstr "Повзунки для значення сірого" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/denoiseprofile.c:3710 -#: ../src/iop/rawdenoise.c:894 ../src/iop/rgbcurve.c:1358 -#: ../src/iop/rgblevels.c:1003 ../src/libs/filters/colors.c:137 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/denoiseprofile.c:3714 +#: ../src/iop/rawdenoise.c:910 ../src/iop/rgbcurve.c:1358 +#: ../src/iop/rgblevels.c:1043 ../src/libs/filters/colors.c:137 msgid "R" msgstr "R" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 msgid "sliders for red channel" msgstr "Повзунки для каналу червоного" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/denoiseprofile.c:3711 -#: ../src/iop/rawdenoise.c:895 ../src/iop/rgbcurve.c:1359 -#: ../src/iop/rgblevels.c:1004 ../src/libs/filters/colors.c:143 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/denoiseprofile.c:3715 +#: ../src/iop/rawdenoise.c:911 ../src/iop/rgbcurve.c:1359 +#: ../src/iop/rgblevels.c:1044 ../src/libs/filters/colors.c:143 msgid "G" msgstr "G" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 msgid "sliders for green channel" msgstr "Повзунки для каналу зеленого" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/denoiseprofile.c:3712 -#: ../src/iop/rawdenoise.c:896 ../src/iop/rgbcurve.c:1360 -#: ../src/iop/rgblevels.c:1005 ../src/libs/filters/colors.c:146 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/denoiseprofile.c:3716 +#: ../src/iop/rawdenoise.c:912 ../src/iop/rgbcurve.c:1360 +#: ../src/iop/rgblevels.c:1045 ../src/libs/filters/colors.c:146 msgid "B" msgstr "B" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 msgid "sliders for blue channel" msgstr "Повзунки для каналу синього" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "H" msgstr "H" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "sliders for hue channel (of HSL)" msgstr "Повзунки для каналу відтінку (HSL)" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "S" msgstr "S" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "sliders for chroma channel (of HSL)" msgstr "Повзунки для каналу кольоровості (HSL)" -#: ../src/develop/blend_gui.c:2357 +#: ../src/develop/blend_gui.c:2373 msgid "sliders for value channel (of HSL)" msgstr "Повзунки для каналу значення (HSL)" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "Jz" msgstr "Jz" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "sliders for value channel (of JzCzhz)" msgstr "Повзунки для каналу значення (JzCzhz)" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "Cz" msgstr "Cz" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "sliders for chroma channel (of JzCzhz)" msgstr "Повзунки для каналу кольоровості (JzCzhz)" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "hz" msgstr "hz" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "sliders for hue channel (of JzCzhz)" msgstr "Повзунки для каналу відтінку (JzCzhz)" -#: ../src/develop/blend_gui.c:2415 +#: ../src/develop/blend_gui.c:2431 msgid "" "adjustment based on input received by this module:\n" "* range defined by upper markers: blend fully\n" @@ -8180,7 +8505,7 @@ "* діапазон, визначений нижніми маркерами: взагалі не змішувати\n" "* діапазон між сусідніми верхніми/нижніми маркерами: змішувати поступово" -#: ../src/develop/blend_gui.c:2419 +#: ../src/develop/blend_gui.c:2435 msgid "" "adjustment based on unblended output of this module:\n" "* range defined by upper markers: blend fully\n" @@ -8192,19 +8517,19 @@ "* діапазон, визначений нижніми маркерами: взагалі не змішувати\n" "* діапазон між сусідніми верхніми/нижніми маркерами: змішувати поступово" -#: ../src/develop/blend_gui.c:2516 +#: ../src/develop/blend_gui.c:2532 msgid "reset blend mask settings" msgstr "Скинути налаштування маски змішування" -#: ../src/develop/blend_gui.c:2527 ../src/iop/atrous.c:1665 -#: ../src/iop/colorzones.c:2399 ../src/iop/denoiseprofile.c:3707 -#: ../src/iop/rawdenoise.c:891 ../src/iop/rgbcurve.c:1357 -#: ../src/iop/rgblevels.c:1002 ../src/iop/tonecurve.c:1133 +#: ../src/develop/blend_gui.c:2543 ../src/iop/atrous.c:1797 +#: ../src/iop/colorzones.c:2641 ../src/iop/denoiseprofile.c:3711 +#: ../src/iop/rawdenoise.c:907 ../src/iop/rgbcurve.c:1357 +#: ../src/iop/rgblevels.c:1041 ../src/iop/tonecurve.c:1155 msgid "channel" msgstr "Канал" -#: ../src/develop/blend_gui.c:2542 ../src/iop/colorzones.c:2413 -#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1142 +#: ../src/develop/blend_gui.c:2558 ../src/iop/colorzones.c:2660 +#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1164 msgid "" "pick GUI color from image\n" "ctrl+click or right-click to select an area" @@ -8212,12 +8537,12 @@ "Виберіть колір із зображення\n" "Ctrl+клік або клік правою кнопкою миші, щоб вибрати область" -#: ../src/develop/blend_gui.c:2545 ../src/iop/colorzones.c:2415 +#: ../src/develop/blend_gui.c:2561 ../src/iop/colorzones.c:2662 #: ../src/iop/rgbcurve.c:1369 msgid "show color" msgstr "Показати колір" -#: ../src/develop/blend_gui.c:2554 +#: ../src/develop/blend_gui.c:2570 msgid "" "set the range based on an area from the image\n" "drag to use the input image\n" @@ -8227,20 +8552,20 @@ "Перетягніть, щоб використати вхідне зображення\n" "Ctrl+перетягування - використати вихідне зображення" -#: ../src/develop/blend_gui.c:2557 +#: ../src/develop/blend_gui.c:2573 msgid "set range" msgstr "Встановити діапазон" -#: ../src/develop/blend_gui.c:2560 +#: ../src/develop/blend_gui.c:2576 msgid "invert all channel's polarities" msgstr "Інвертувати полярність всіх каналів" -#: ../src/develop/blend_gui.c:2584 +#: ../src/develop/blend_gui.c:2600 msgid "toggle polarity. best seen by enabling 'display mask'" msgstr "" "Перемкнути полярність. Найкраще побачити, ввімкнувши \"показати маску\"" -#: ../src/develop/blend_gui.c:2613 +#: ../src/develop/blend_gui.c:2629 msgid "" "double-click to reset.\n" "press 'a' to toggle available slider modes.\n" @@ -8252,42 +8577,42 @@ "Натисніть 'c' для перемикання перегляду даних каналу.\n" "Натисніть 'm' для перемикання перегляду маски." -#: ../src/develop/blend_gui.c:2640 ../src/develop/blend_gui.c:3531 -#: ../src/iop/basicadj.c:600 ../src/iop/colorbalancergb.c:2090 -#: ../src/iop/exposure.c:1120 ../src/iop/exposure.c:1135 -#: ../src/iop/filmic.c:1503 ../src/iop/filmic.c:1516 ../src/iop/filmic.c:1558 -#: ../src/iop/filmicrgb.c:4440 ../src/iop/filmicrgb.c:4451 -#: ../src/iop/filmicrgb.c:4485 ../src/iop/filmicrgb.c:4495 -#: ../src/iop/graduatednd.c:1113 ../src/iop/negadoctor.c:1011 -#: ../src/iop/profile_gamma.c:643 ../src/iop/profile_gamma.c:649 -#: ../src/iop/relight.c:262 ../src/iop/soften.c:378 ../src/iop/toneequal.c:3326 -#: ../src/iop/toneequal.c:3329 ../src/iop/toneequal.c:3332 -#: ../src/iop/toneequal.c:3335 ../src/iop/toneequal.c:3338 -#: ../src/iop/toneequal.c:3341 ../src/iop/toneequal.c:3344 -#: ../src/iop/toneequal.c:3347 ../src/iop/toneequal.c:3350 -#: ../src/iop/toneequal.c:3472 ../src/iop/toneequal.c:3481 -#: ../src/iop/toneequal.c:3494 ../src/views/darkroom.c:2453 +#: ../src/develop/blend_gui.c:2656 ../src/develop/blend_gui.c:3577 +#: ../src/iop/basicadj.c:630 ../src/iop/colorbalancergb.c:2161 +#: ../src/iop/exposure.c:1138 ../src/iop/exposure.c:1153 +#: ../src/iop/filmic.c:1528 ../src/iop/filmic.c:1541 ../src/iop/filmic.c:1583 +#: ../src/iop/filmicrgb.c:4504 ../src/iop/filmicrgb.c:4515 +#: ../src/iop/filmicrgb.c:4549 ../src/iop/filmicrgb.c:4559 +#: ../src/iop/graduatednd.c:1082 ../src/iop/negadoctor.c:1030 +#: ../src/iop/profile_gamma.c:657 ../src/iop/profile_gamma.c:663 +#: ../src/iop/relight.c:258 ../src/iop/soften.c:373 ../src/iop/toneequal.c:3379 +#: ../src/iop/toneequal.c:3382 ../src/iop/toneequal.c:3385 +#: ../src/iop/toneequal.c:3388 ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3394 ../src/iop/toneequal.c:3397 +#: ../src/iop/toneequal.c:3400 ../src/iop/toneequal.c:3403 +#: ../src/iop/toneequal.c:3525 ../src/iop/toneequal.c:3534 +#: ../src/iop/toneequal.c:3547 ../src/views/darkroom.c:2292 msgid " EV" msgstr " EV" -#: ../src/develop/blend_gui.c:2642 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:2951 ../src/develop/blend_gui.c:3014 -#: ../src/develop/blend_gui.c:3499 ../src/develop/blend_gui.c:3529 -#: ../src/develop/blend_gui.c:3542 ../src/develop/blend_gui.c:3559 -#: ../src/develop/blend_gui.c:3583 ../src/develop/blend_gui.c:3593 -#: ../src/develop/blend_gui.c:3602 ../src/develop/blend_gui.c:3613 +#: ../src/develop/blend_gui.c:2658 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:2966 ../src/develop/blend_gui.c:3029 +#: ../src/develop/blend_gui.c:3545 ../src/develop/blend_gui.c:3575 +#: ../src/develop/blend_gui.c:3588 ../src/develop/blend_gui.c:3605 +#: ../src/develop/blend_gui.c:3629 ../src/develop/blend_gui.c:3641 +#: ../src/develop/blend_gui.c:3652 ../src/develop/blend_gui.c:3663 msgid "blend" msgstr "Змішування" -#: ../src/develop/blend_gui.c:2642 +#: ../src/develop/blend_gui.c:2658 msgid "boost factor" msgstr "Коефіцієнт посилення" -#: ../src/develop/blend_gui.c:2645 +#: ../src/develop/blend_gui.c:2661 msgid "adjust the boost factor of the channel mask" msgstr "Відрегулювати коефіцієнт посилення маски каналу" -#: ../src/develop/blend_gui.c:2682 +#: ../src/develop/blend_gui.c:2698 #, c-format msgid "%d shape used" msgid_plural "%d shapes used" @@ -8295,128 +8620,163 @@ msgstr[1] "%d фігури використано" msgstr[2] "%d фігур використано" -#: ../src/develop/blend_gui.c:2687 ../src/develop/blend_gui.c:2743 -#: ../src/develop/blend_gui.c:2831 ../src/develop/blend_gui.c:2952 +#: ../src/develop/blend_gui.c:2703 ../src/develop/blend_gui.c:2759 +#: ../src/develop/blend_gui.c:2847 ../src/develop/blend_gui.c:2967 msgid "no mask used" msgstr "Не використовується" -#: ../src/develop/blend_gui.c:2751 +#: ../src/develop/blend_gui.c:2767 msgid "toggle polarity of drawn mask" msgstr "Перемкнути полярність намальованої маски" -#: ../src/develop/blend_gui.c:2760 +#: ../src/develop/blend_gui.c:2776 msgid "show and edit mask elements" msgstr "Показати і редагувати елементи маски" -#: ../src/develop/blend_gui.c:2761 +#: ../src/develop/blend_gui.c:2777 msgid "show and edit in restricted mode" msgstr "Показувати і редагувати в обмеженому режимі" -#: ../src/develop/blend_gui.c:2768 ../src/libs/masks.c:998 -#: ../src/libs/masks.c:1816 ../src/libs/masks.c:1820 +#: ../src/develop/blend_gui.c:2784 ../src/libs/masks.c:1014 +#: ../src/libs/masks.c:1812 ../src/libs/masks.c:1816 msgid "add gradient" msgstr "Додати градієнт" -#: ../src/develop/blend_gui.c:2769 +#: ../src/develop/blend_gui.c:2785 msgid "add multiple gradients" msgstr "Додати кілька градієнтів" -#: ../src/develop/blend_gui.c:2776 ../src/iop/retouch.c:2238 -#: ../src/libs/masks.c:978 ../src/libs/masks.c:1852 ../src/libs/masks.c:1856 +#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2466 +#: ../src/libs/masks.c:994 ../src/libs/masks.c:1848 ../src/libs/masks.c:1852 msgid "add brush" msgstr "Додати пензля" -#: ../src/develop/blend_gui.c:2777 ../src/iop/retouch.c:2238 +#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2466 msgid "add multiple brush strokes" msgstr "Додати кілька мазків пензлем" -#: ../src/develop/blend_gui.c:2784 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 ../src/libs/masks.c:993 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1829 +#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 ../src/libs/masks.c:1009 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1825 msgid "add path" msgstr "Додати контур" -#: ../src/develop/blend_gui.c:2785 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 +#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 msgid "add multiple paths" msgstr "Додати кілька контурів" -#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 ../src/libs/masks.c:988 ../src/libs/masks.c:1834 -#: ../src/libs/masks.c:1838 +#: ../src/develop/blend_gui.c:2808 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 ../src/libs/masks.c:1004 ../src/libs/masks.c:1830 +#: ../src/libs/masks.c:1834 msgid "add ellipse" msgstr "Додати еліпс" -#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 +#: ../src/develop/blend_gui.c:2809 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 msgid "add multiple ellipses" msgstr "Додати кілька еліпсів" -#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 ../src/libs/masks.c:983 ../src/libs/masks.c:1843 -#: ../src/libs/masks.c:1847 +#: ../src/develop/blend_gui.c:2816 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 ../src/libs/masks.c:999 ../src/libs/masks.c:1839 +#: ../src/libs/masks.c:1843 msgid "add circle" msgstr "Додати коло" -#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 +#: ../src/develop/blend_gui.c:2817 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 msgid "add multiple circles" msgstr "Додати кілька кіл" -#: ../src/develop/blend_gui.c:2961 +#: ../src/develop/blend_gui.c:2976 msgid "toggle polarity of raster mask" msgstr "Перемкнути полярність растрової маски" -#: ../src/develop/blend_gui.c:3101 +#: ../src/develop/blend_gui.c:3119 msgid "normal & difference" msgstr "Нормальні і різницеві" -#: ../src/develop/blend_gui.c:3106 +#: ../src/develop/blend_gui.c:3124 msgid "lighten" msgstr "Заміна світлим" -#: ../src/develop/blend_gui.c:3113 +#: ../src/develop/blend_gui.c:3131 msgid "darken" msgstr "Затемнення" -#: ../src/develop/blend_gui.c:3120 +#: ../src/develop/blend_gui.c:3138 msgid "contrast enhancing" msgstr "Покращення контрасту" -#: ../src/develop/blend_gui.c:3127 ../src/develop/blend_gui.c:3150 +#: ../src/develop/blend_gui.c:3145 ../src/develop/blend_gui.c:3168 msgid "color channel" msgstr "Кольорові канали" -#: ../src/develop/blend_gui.c:3138 ../src/develop/blend_gui.c:3153 +#: ../src/develop/blend_gui.c:3156 ../src/develop/blend_gui.c:3171 msgid "chromaticity & lightness" msgstr "Хроматичність та яскравість" -#: ../src/develop/blend_gui.c:3145 +#: ../src/develop/blend_gui.c:3163 msgid "normal & arithmetic" msgstr "Нормальні та арифметичні" #. add deprecated blend mode -#: ../src/develop/blend_gui.c:3166 +#: ../src/develop/blend_gui.c:3184 msgid "deprecated" msgstr "Застарілі" -#: ../src/develop/blend_gui.c:3478 +#. should never happen: unknown blend mode +#: ../src/develop/blend_gui.c:3188 +#, c-format +msgid "unknown blend mode '%d' in module '%s'" +msgstr "Невідомий режим змішування '%d' у модулі '%s'" + +#: ../src/develop/blend_gui.c:3497 msgid "blending options" msgstr "Опції змішування" -#: ../src/develop/blend_gui.c:3500 ../src/libs/history.c:949 -msgid "blend mode" -msgstr "Режим змішування" +#: ../src/develop/blend_gui.c:3516 +msgid "blend mask" +msgstr "Маска змішування" + +#: ../src/develop/blend_gui.c:3520 +msgid "display mask and/or color channel" +msgstr "Показати маску та/або канал кольору" -#: ../src/develop/blend_gui.c:3503 +#: ../src/develop/blend_gui.c:3525 +msgid "" +"display mask and/or color channel.\n" +"ctrl+click to display mask,\n" +"shift+click to display channel.\n" +"hover over parametric mask slider to select channel for display" +msgstr "" +"Показати маску та/або канал кольору.\n" +"Ctrl+клік - показати маску,\n" +"Shift+клік - показати канал.\n" +"Наведіть курсор на повзунок параметричної маски, щоб вибрати канал для " +"відображення" + +#: ../src/develop/blend_gui.c:3532 +msgid "temporarily switch off blend mask" +msgstr "Тимчасово вимкнути маску змішування" + +#: ../src/develop/blend_gui.c:3537 +msgid "" +"temporarily switch off blend mask.\n" +"only for module in focus" +msgstr "" +"Тимчасово вимкнути маску змішування.\n" +"Лише для модуля у фокусі." + +#: ../src/develop/blend_gui.c:3549 msgid "choose blending mode" msgstr "Виберіть режим змішування" -#: ../src/develop/blend_gui.c:3513 +#: ../src/develop/blend_gui.c:3559 msgid "toggle blend order" msgstr "Перемикання порядку змішування" -#: ../src/develop/blend_gui.c:3519 +#: ../src/develop/blend_gui.c:3565 msgid "" "toggle the blending order between the input and the output of the module,\n" "by default the output will be blended on top of the input,\n" @@ -8426,40 +8786,40 @@ "За замовчуванням вихід буде змішаний поверх входу.\n" "Порядок можна змінити, натиснувши на піктограму (вхід поверх виходу)" -#: ../src/develop/blend_gui.c:3530 ../src/libs/history.c:953 -msgid "blend fulcrum" -msgstr "Опорна точка змішування" +#: ../src/develop/blend_gui.c:3576 +msgid "fulcrum" +msgstr "Поворотна точка" -#: ../src/develop/blend_gui.c:3534 +#: ../src/develop/blend_gui.c:3580 msgid "adjust the fulcrum used by some blending operations" msgstr "Регулювання точки опори, яку використовують деякі операції змішування" #. Add opacity/scale sliders to table -#: ../src/develop/blend_gui.c:3542 ../src/iop/watermark.c:1314 -#: ../src/libs/masks.c:104 +#: ../src/develop/blend_gui.c:3588 ../src/iop/watermark.c:1362 +#: ../src/libs/masks.c:105 msgid "opacity" msgstr "Непрозорість" -#: ../src/develop/blend_gui.c:3546 +#: ../src/develop/blend_gui.c:3591 msgid "set the opacity of the blending" msgstr "Встановити непрозорість змішування" -#: ../src/develop/blend_gui.c:3550 ../src/libs/history.c:956 +#: ../src/develop/blend_gui.c:3596 ../src/libs/history.c:956 msgid "combine masks" msgstr "Поєднувати маски" -#: ../src/develop/blend_gui.c:3552 +#: ../src/develop/blend_gui.c:3598 msgid "" "how to combine individual drawn mask and different channels of parametric " "mask" msgstr "" "Як поєднувати окрему намальовану маску та різні канали параметричної маски" -#: ../src/develop/blend_gui.c:3559 +#: ../src/develop/blend_gui.c:3605 msgid "details threshold" msgstr "Поріг деталей" -#: ../src/develop/blend_gui.c:3563 +#: ../src/develop/blend_gui.c:3609 msgid "" "adjust the threshold for the details mask (using raw data),\n" "positive values select areas with strong details,\n" @@ -8469,11 +8829,11 @@ "Позитивні значення вибирають області з чіткими деталями.\n" "Негативні значення вибирають гладкі ділянки." -#: ../src/develop/blend_gui.c:3571 ../src/libs/history.c:959 +#: ../src/develop/blend_gui.c:3617 ../src/libs/history.c:959 msgid "feathering guide" msgstr "Веде розтушовку" -#: ../src/develop/blend_gui.c:3574 +#: ../src/develop/blend_gui.c:3620 msgid "" "choose to guide mask by input or output image and\n" "choose to apply feathering before or after mask blur" @@ -8481,28 +8841,28 @@ "Вибрати наведення маски за вхідним або вихідним зображенням і\n" "вибрати застосування розтушовки до або після розмиття маски" -#: ../src/develop/blend_gui.c:3583 ../src/libs/history.c:958 +#: ../src/develop/blend_gui.c:3629 ../src/libs/history.c:958 msgid "feathering radius" msgstr "Радіус розтушовки" -#: ../src/develop/blend_gui.c:3586 +#: ../src/develop/blend_gui.c:3632 msgid "spatial radius of feathering" msgstr "Просторовий радіус розтушовки" -#: ../src/develop/blend_gui.c:3593 +#: ../src/develop/blend_gui.c:3641 msgid "blurring radius" msgstr "Радіус розмиття" -#: ../src/develop/blend_gui.c:3596 +#: ../src/develop/blend_gui.c:3644 msgid "radius for gaussian blur of blend mask" msgstr "Радіус гауссівського розмиття маски змішування" -#: ../src/develop/blend_gui.c:3602 ../src/iop/retouch.c:2453 +#: ../src/develop/blend_gui.c:3652 ../src/iop/retouch.c:2738 #: ../src/libs/history.c:954 msgid "mask opacity" msgstr "Непрозорість маски" -#: ../src/develop/blend_gui.c:3606 +#: ../src/develop/blend_gui.c:3656 msgid "" "shifts and tilts the tone curve of the blend mask to adjust its brightness\n" "without affecting fully transparent/fully opaque regions" @@ -8510,57 +8870,34 @@ "Зміщує і нахиляє криву тону маски змішування для регулювання її яскравості,\n" "не впливаючи на повністю прозорі / повністю непрозорі області" -#: ../src/develop/blend_gui.c:3613 ../src/libs/history.c:962 +#: ../src/develop/blend_gui.c:3663 ../src/libs/history.c:962 msgid "mask contrast" msgstr "Контраст маски" -#: ../src/develop/blend_gui.c:3617 +#: ../src/develop/blend_gui.c:3667 msgid "" "gives the tone curve of the blend mask an s-like shape to adjust its contrast" msgstr "" "Надає кривій тону маски змішування S-подібну форму для регулювання її " "контрастності" -#: ../src/develop/blend_gui.c:3621 +#: ../src/develop/blend_gui.c:3671 msgid "mask refinement" msgstr "Уточнення маски" -#: ../src/develop/blend_gui.c:3625 -msgid "display mask and/or color channel" -msgstr "Показати маску та/або канал кольору" - -#: ../src/develop/blend_gui.c:3630 -msgid "" -"display mask and/or color channel.\n" -"ctrl+click to display mask,\n" -"shift+click to display channel.\n" -"hover over parametric mask slider to select channel for display" -msgstr "" -"Показати маску та/або канал кольору.\n" -"Ctrl+клік - показати маску,\n" -"Shift+клік - показати канал.\n" -"Наведіть курсор на повзунок параметричної маски, щоб вибрати канал для " -"відображення" - -#: ../src/develop/blend_gui.c:3637 -msgid "temporarily switch off blend mask" -msgstr "Тимчасово вимкнути маску змішування" - -#: ../src/develop/blend_gui.c:3642 +#: ../src/develop/develop.c:732 msgid "" -"temporarily switch off blend mask.\n" -"only for module in focus" -msgstr "" -"Тимчасово вимкнути маску змішування.\n" -"Лише для модуля у фокусі." +"autosaving history has been disabled for this session because of a slow " +"drive used" +msgstr "Автозбереження історії вимкнено для цього сеансу через повільний диск" -#: ../src/develop/develop.c:2303 +#: ../src/develop/develop.c:2202 #, c-format msgid "%s: module `%s' version mismatch: %d != %d" msgstr "%s: невідповідність версій модуля `%s': %d != %d" -#: ../src/develop/develop.c:2834 -msgid "module duplicate, can't move new instance after the base one\n" +#: ../src/develop/develop.c:3016 +msgid "duplicate module, can't move new instance after the base one\n" msgstr "Не вдається перемістити новий екземпляр модуля після базового\n" #: ../src/develop/imageop.c:1031 @@ -8571,70 +8908,69 @@ msgid "duplicate instance" msgstr "Зробити дублікат екземпляра" -#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3739 -#: ../src/libs/masks.c:1152 +#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3755 +#: ../src/libs/masks.c:1146 msgid "move up" msgstr "Підняти" -#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3740 -#: ../src/libs/masks.c:1157 +#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3756 +#: ../src/libs/masks.c:1151 msgid "move down" msgstr "Опустити" #. delete button label and tooltip will be updated based on trash pref -#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3742 -#: ../src/gui/accelerators.c:155 ../src/gui/presets.c:562 -#: ../src/libs/image.c:285 ../src/libs/image.c:480 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 +#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3758 +#: ../src/gui/accelerators.c:173 ../src/libs/image.c:303 +#: ../src/libs/image.c:513 msgid "delete" msgstr "Видалити" -#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3743 -#: ../src/libs/modulegroups.c:3464 ../src/libs/modulegroups.c:3815 +#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3759 +#: ../src/libs/modulegroups.c:3817 msgid "rename" msgstr "Перейменувати" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched on" msgstr "'%s' включено" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched off" msgstr "'%s' виключено" -#: ../src/develop/imageop.c:2654 +#: ../src/develop/imageop.c:2663 msgid "unknown mask" msgstr "Невідома маска" -#: ../src/develop/imageop.c:2658 +#: ../src/develop/imageop.c:2667 msgid "drawn + parametric mask" msgstr "Намальована і параметрична маски" -#: ../src/develop/imageop.c:2667 +#: ../src/develop/imageop.c:2676 #, c-format msgid "this module has a `%s'" msgstr "У цього модуля є `%s'" -#: ../src/develop/imageop.c:2672 +#: ../src/develop/imageop.c:2681 #, c-format msgid "taken from module %s" msgstr "взята з модуля %s" -#: ../src/develop/imageop.c:2677 +#: ../src/develop/imageop.c:2686 msgid "click to display (module must be activated first)" msgstr "Натисніть для показу (спочатку модуль має бути активовано)" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "purpose" msgstr "Призначення" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "process" msgstr "Обробка" -#: ../src/develop/imageop.c:2906 +#: ../src/develop/imageop.c:2917 msgid "" "multiple instance actions\n" "right-click creates new instance" @@ -8642,7 +8978,7 @@ "Дії з екземплярами модуля\n" "Права кнопка миші створює новий екземпляр" -#: ../src/develop/imageop.c:2921 +#: ../src/develop/imageop.c:2932 msgid "" "reset parameters\n" "ctrl+click to reapply any automatic presets" @@ -8650,7 +8986,7 @@ "Скинути параметри\n" "Ctrl+клік - повторно застосувати будь-які автоматичні пресети" -#: ../src/develop/imageop.c:2933 +#: ../src/develop/imageop.c:2944 msgid "" "presets\n" "right-click to apply on new instance" @@ -8658,15 +8994,15 @@ "Пресети\n" "Права кнопка миші - застосувати в новому екземплярі" -#: ../src/develop/imageop.c:3183 ../src/develop/imageop.c:3205 +#: ../src/develop/imageop.c:3194 ../src/develop/imageop.c:3216 msgid "ERROR" msgstr "ПОМИЛКА" -#: ../src/develop/imageop.c:3620 +#: ../src/develop/imageop.c:3622 msgid "unsupported input" msgstr "Непідтримуваний вхід" -#: ../src/develop/imageop.c:3621 +#: ../src/develop/imageop.c:3623 msgid "" "you have placed this module at\n" "a position in the pipeline where\n" @@ -8678,49 +9014,49 @@ "формат даних не відповідає\n" "вимогам модуля." -#: ../src/develop/imageop.c:3738 ../src/develop/imageop.c:3748 -#: ../src/gui/accelerators.c:151 ../src/libs/lib.c:1414 +#: ../src/develop/imageop.c:3754 ../src/develop/imageop.c:3764 +#: ../src/gui/accelerators.c:169 ../src/libs/lib.c:1415 msgid "show" msgstr "Показати" -#: ../src/develop/imageop.c:3741 ../src/libs/modulegroups.c:3310 -#: ../src/libs/modulegroups.c:3436 ../src/libs/modulegroups.c:3817 -#: ../src/libs/tagging.c:3248 +#: ../src/develop/imageop.c:3757 ../src/libs/modulegroups.c:3315 +#: ../src/libs/modulegroups.c:3438 ../src/libs/modulegroups.c:3819 +#: ../src/libs/tagging.c:3279 msgid "new" msgstr "Новий" -#: ../src/develop/imageop.c:3744 ../src/libs/duplicate.c:405 -#: ../src/libs/image.c:495 ../src/libs/modulegroups.c:3813 +#: ../src/develop/imageop.c:3760 ../src/libs/duplicate.c:411 +#: ../src/libs/image.c:534 ../src/libs/modulegroups.c:3815 msgid "duplicate" msgstr "Зняти копію" -#: ../src/develop/imageop.c:3749 +#: ../src/develop/imageop.c:3765 msgid "enable" msgstr "Вмикаючий елемент" -#: ../src/develop/imageop.c:3750 ../src/gui/accelerators.c:167 +#: ../src/develop/imageop.c:3766 ../src/gui/accelerators.c:185 msgid "focus" msgstr "Фокус" -#: ../src/develop/imageop.c:3751 ../src/gui/accelerators.c:2617 +#: ../src/develop/imageop.c:3767 ../src/gui/accelerators.c:2874 msgid "instance" msgstr "Екземпляр" -#: ../src/develop/imageop.c:3752 ../src/gui/accelerators.c:112 -#: ../src/gui/accelerators.c:122 ../src/gui/gtk.c:3009 ../src/gui/gtk.c:3056 -#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:603 -#: ../src/gui/styles_dialog.c:625 ../src/iop/atrous.c:1512 -#: ../src/libs/lib.c:1415 ../src/libs/modulegroups.c:3882 +#: ../src/develop/imageop.c:3768 ../src/gui/accelerators.c:130 +#: ../src/gui/accelerators.c:140 ../src/gui/gtk.c:3055 ../src/gui/gtk.c:3102 +#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:615 +#: ../src/gui/styles_dialog.c:637 ../src/iop/atrous.c:1626 +#: ../src/libs/lib.c:1416 ../src/libs/modulegroups.c:3884 msgid "reset" msgstr "Скинути" #. Adding the outer container -#: ../src/develop/imageop.c:3753 ../src/gui/preferences.c:798 -#: ../src/libs/lib.c:1416 +#: ../src/develop/imageop.c:3769 ../src/gui/preferences.c:796 +#: ../src/libs/lib.c:1417 msgid "presets" msgstr "Пресети" -#: ../src/develop/imageop.c:3773 +#: ../src/develop/imageop.c:3789 msgid "processing module" msgstr "Модуль обробки" @@ -8733,17 +9069,17 @@ "%s\n" "Ctrl+клік – %s" -#: ../src/develop/lightroom.c:1083 +#: ../src/develop/lightroom.c:1137 msgid "cannot find Lightroom XMP!" msgstr "Не вдається знайти XMP від Lightroom!" -#: ../src/develop/lightroom.c:1115 ../src/develop/lightroom.c:1137 -#: ../src/develop/lightroom.c:1157 +#: ../src/develop/lightroom.c:1169 ../src/develop/lightroom.c:1191 +#: ../src/develop/lightroom.c:1211 #, c-format msgid "`%s' is not a Lightroom XMP!" msgstr "`%s' не є файлом XMP від Lightroom!" -#: ../src/develop/lightroom.c:1556 +#: ../src/develop/lightroom.c:1613 #, c-format msgid "%s has been imported" msgid_plural "%s have been imported" @@ -8751,37 +9087,37 @@ msgstr[1] "%s було імпортовано" msgstr[2] "%s було імпортовано" -#: ../src/develop/masks/brush.c:1356 ../src/develop/masks/brush.c:1410 +#: ../src/develop/masks/brush.c:1346 ../src/develop/masks/brush.c:1400 #, c-format msgid "hardness: %3.2f%%" msgstr "Жорсткість: %3.2f%%" -#: ../src/develop/masks/brush.c:1372 ../src/develop/masks/brush.c:1470 +#: ../src/develop/masks/brush.c:1362 ../src/develop/masks/brush.c:1460 #: ../src/develop/masks/circle.c:148 ../src/develop/masks/circle.c:193 #: ../src/develop/masks/ellipse.c:484 ../src/develop/masks/ellipse.c:546 -#: ../src/develop/masks/path.c:1273 +#: ../src/develop/masks/path.c:1255 #, c-format msgid "size: %3.2f%%" msgstr "Розмір: %3.2f%%" -#: ../src/develop/masks/brush.c:3247 +#: ../src/develop/masks/brush.c:3191 msgid "[BRUSH] change size" msgstr "[ПЕНЗЕЛЬ] змінити розмір" -#: ../src/develop/masks/brush.c:3249 +#: ../src/develop/masks/brush.c:3193 msgid "[BRUSH] change hardness" msgstr "[ПЕНЗЕЛЬ] змінити жорсткість" -#: ../src/develop/masks/brush.c:3251 +#: ../src/develop/masks/brush.c:3195 msgid "[BRUSH] change opacity" msgstr "[ПЕНЗЕЛЬ] змінити непрозорість" -#: ../src/develop/masks/brush.c:3263 +#: ../src/develop/masks/brush.c:3207 #, c-format msgid "brush #%d" msgstr "Пензель #%d" -#: ../src/develop/masks/brush.c:3276 +#: ../src/develop/masks/brush.c:3220 #, c-format msgid "" "<b>size</b>: scroll, <b>hardness</b>: shift+scroll\n" @@ -8790,35 +9126,35 @@ "<b>Розмір</b>: прокрутка, <b>Жорсткість</b>: Shift+прокрутка\n" "<b>Непрозорість</b>: Ctrl+прокрутка (%d%%)" -#: ../src/develop/masks/brush.c:3279 +#: ../src/develop/masks/brush.c:3223 msgid "<b>size</b>: scroll" msgstr "<b>Розмір</b>: прокрутка" #: ../src/develop/masks/circle.c:137 ../src/develop/masks/circle.c:181 #: ../src/develop/masks/ellipse.c:470 ../src/develop/masks/ellipse.c:531 -#: ../src/develop/masks/path.c:1205 +#: ../src/develop/masks/path.c:1187 #, c-format msgid "feather size: %3.2f%%" msgstr "Розмір розтушовки: %3.2f%%" -#: ../src/develop/masks/circle.c:1510 +#: ../src/develop/masks/circle.c:1462 msgid "[CIRCLE] change size" msgstr "[КОЛО] змінити розмір" -#: ../src/develop/masks/circle.c:1512 +#: ../src/develop/masks/circle.c:1464 msgid "[CIRCLE] change feather size" msgstr "[КОЛО] змінити розмір розтушовки" -#: ../src/develop/masks/circle.c:1514 +#: ../src/develop/masks/circle.c:1466 msgid "[CIRCLE] change opacity" msgstr "[КОЛО] змінити непрозорість" -#: ../src/develop/masks/circle.c:1527 +#: ../src/develop/masks/circle.c:1479 #, c-format msgid "circle #%d" msgstr "Коло #%d" -#: ../src/develop/masks/circle.c:1538 ../src/develop/masks/path.c:3490 +#: ../src/develop/masks/circle.c:1490 ../src/develop/masks/path.c:3406 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8832,32 +9168,32 @@ msgid "rotation: %3.f°" msgstr "Обертання: %3.f°" -#: ../src/develop/masks/ellipse.c:2068 +#: ../src/develop/masks/ellipse.c:2015 msgid "[ELLIPSE] change size" msgstr "[ЕЛІПС] змінити розмір" -#: ../src/develop/masks/ellipse.c:2071 +#: ../src/develop/masks/ellipse.c:2018 msgid "[ELLIPSE] change feather size" msgstr "[ЕЛІПС] змінити розмір розтушовки" -#: ../src/develop/masks/ellipse.c:2074 ../src/develop/masks/ellipse.c:2083 +#: ../src/develop/masks/ellipse.c:2021 ../src/develop/masks/ellipse.c:2030 msgid "[ELLIPSE] rotate shape" msgstr "[ЕЛІПС] обертати фігуру" -#: ../src/develop/masks/ellipse.c:2077 +#: ../src/develop/masks/ellipse.c:2024 msgid "[ELLIPSE] change opacity" msgstr "[ЕЛІПС] змінити непрозорість" -#: ../src/develop/masks/ellipse.c:2080 +#: ../src/develop/masks/ellipse.c:2027 msgid "[ELLIPSE] switch feathering mode" msgstr "[ЕЛІПС] перемкнути режим розтушовки" -#: ../src/develop/masks/ellipse.c:2090 +#: ../src/develop/masks/ellipse.c:2037 #, c-format msgid "ellipse #%d" msgstr "Еліпс #%d" -#: ../src/develop/masks/ellipse.c:2128 +#: ../src/develop/masks/ellipse.c:2075 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8867,11 +9203,11 @@ "<b>Обертання</b>: Ctrl+Shift+прокрутка, <b>Непрозорість</b>: Ctrl+прокрутка " "(%d%%)" -#: ../src/develop/masks/ellipse.c:2132 +#: ../src/develop/masks/ellipse.c:2079 msgid "<b>rotate</b>: ctrl+drag" msgstr "<b>Обертання</b>: Ctrl+перетягування" -#: ../src/develop/masks/ellipse.c:2135 +#: ../src/develop/masks/ellipse.c:2082 #, c-format msgid "" "<b>feather mode</b>: shift+click, <b>rotate</b>: ctrl+drag\n" @@ -8892,32 +9228,32 @@ msgid "curvature: %3.2f%%" msgstr "Вигин: %3.2f%%" -#: ../src/develop/masks/gradient.c:1555 +#: ../src/develop/masks/gradient.c:1514 msgid "[GRADIENT on pivot] rotate shape" msgstr "[ГРАДІЄНТ на точці опори] обертати фігуру" -#: ../src/develop/masks/gradient.c:1557 +#: ../src/develop/masks/gradient.c:1516 msgid "[GRADIENT creation] set rotation" msgstr "[ГРАДІЄНТ - створення] встановити поворот" -#: ../src/develop/masks/gradient.c:1559 +#: ../src/develop/masks/gradient.c:1518 msgid "[GRADIENT] change curvature" msgstr "[ГРАДІЄНТ] змінити вигин" -#: ../src/develop/masks/gradient.c:1561 +#: ../src/develop/masks/gradient.c:1520 msgid "[GRADIENT] change compression" msgstr "[ГРАДІЄНТ] змінити стиснення" -#: ../src/develop/masks/gradient.c:1563 +#: ../src/develop/masks/gradient.c:1522 msgid "[GRADIENT] change opacity" msgstr "[ГРАДІЄНТ] змінити непрозорість" -#: ../src/develop/masks/gradient.c:1576 +#: ../src/develop/masks/gradient.c:1535 #, c-format msgid "gradient #%d" msgstr "Градієнт #%d" -#: ../src/develop/masks/gradient.c:1587 +#: ../src/develop/masks/gradient.c:1546 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8927,7 +9263,7 @@ "<b>Обертання</b>: клік+перетягування, <b>Непрозорість</b>: Ctrl+прокрутка " "(%d%%)" -#: ../src/develop/masks/gradient.c:1592 +#: ../src/develop/masks/gradient.c:1551 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8936,7 +9272,7 @@ "<b>Вигин</b>: прокрутка, <b>Стиснення</b>: Shift+прокрутка\n" "<b>Непрозорість</b>: Ctrl+прокрутка (%d%%)" -#: ../src/develop/masks/gradient.c:1595 +#: ../src/develop/masks/gradient.c:1554 msgid "<b>rotate</b>: drag" msgstr "<b>Обертання</b>: перетягування" @@ -8944,84 +9280,84 @@ msgid "[SHAPE] remove shape" msgstr "[ФІГУРА] видалити фігуру" -#: ../src/develop/masks/masks.c:306 +#: ../src/develop/masks/masks.c:305 #, c-format msgid "group `%s'" msgstr "Група '%s'" -#: ../src/develop/masks/masks.c:423 +#: ../src/develop/masks/masks.c:422 #, c-format msgid "copy of `%s'" msgstr "Копія '%s'" -#: ../src/develop/masks/masks.c:984 +#: ../src/develop/masks/masks.c:985 #, c-format msgid "%s: mask version mismatch: %d != %d" msgstr "%s: невідповідність версій маски: %d != %d" -#: ../src/develop/masks/masks.c:1239 ../src/develop/masks/masks.c:1906 +#: ../src/develop/masks/masks.c:1230 ../src/develop/masks/masks.c:1881 #, c-format msgid "opacity: %.0f%%" msgstr "Непрозорість: %.0f%%" -#: ../src/develop/masks/masks.c:1650 ../src/libs/masks.c:1068 +#: ../src/develop/masks/masks.c:1625 ../src/libs/masks.c:1084 msgid "add existing shape" msgstr "Додати наявну фігуру" -#: ../src/develop/masks/masks.c:1677 +#: ../src/develop/masks/masks.c:1652 msgid "use same shapes as" msgstr "Використати фігури з модуля" -#: ../src/develop/masks/masks.c:1990 +#: ../src/develop/masks/masks.c:1965 msgid "masks can not contain themselves" msgstr "Маски не можуть містити себе" -#: ../src/develop/masks/path.c:3433 +#: ../src/develop/masks/path.c:3349 msgid "[PATH creation] add a smooth node" msgstr "[КОНТУР - створення] додати плавний вузол" -#: ../src/develop/masks/path.c:3435 +#: ../src/develop/masks/path.c:3351 msgid "[PATH creation] add a sharp node" msgstr "[КОНТУР - створення] додати гострий вузол" -#: ../src/develop/masks/path.c:3437 +#: ../src/develop/masks/path.c:3353 msgid "[PATH creation] terminate path creation" msgstr "[КОНТУР - створення] завершити створення контуру" -#: ../src/develop/masks/path.c:3439 +#: ../src/develop/masks/path.c:3355 msgid "[PATH on node] switch between smooth/sharp node" msgstr "[КОНТУР - на вузлі] перемкнутися між плавним і гострим вузлом" -#: ../src/develop/masks/path.c:3441 +#: ../src/develop/masks/path.c:3357 msgid "[PATH on node] remove the node" msgstr "[КОНТУР - на вузлі] видалити вузол" -#: ../src/develop/masks/path.c:3443 +#: ../src/develop/masks/path.c:3359 msgid "[PATH on feather] reset curvature" msgstr "[КОНТУР - розтушовка] скинути вигин" -#: ../src/develop/masks/path.c:3445 +#: ../src/develop/masks/path.c:3361 msgid "[PATH on segment] add node" msgstr "[КОНТУР - на сегменті] додати вузол" -#: ../src/develop/masks/path.c:3447 +#: ../src/develop/masks/path.c:3363 msgid "[PATH] change size" msgstr "[КОНТУР] змінити розмір" -#: ../src/develop/masks/path.c:3449 +#: ../src/develop/masks/path.c:3365 msgid "[PATH] change feather size" msgstr "[КОНТУР] змінити розмір розтушовки" -#: ../src/develop/masks/path.c:3451 +#: ../src/develop/masks/path.c:3367 msgid "[PATH] change opacity" msgstr "[КОНТУР] змінити непрозорість" -#: ../src/develop/masks/path.c:3463 +#: ../src/develop/masks/path.c:3379 #, c-format msgid "path #%d" msgstr "Контур #%d" -#: ../src/develop/masks/path.c:3473 +#: ../src/develop/masks/path.c:3389 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>cancel</b>: right-click" @@ -9029,7 +9365,7 @@ "<b>Додати вузол</b>: клік, <b>Додати гострий вузол</b>: Ctrl+клік\n" "<b>Скасування</b>: правий клік" -#: ../src/develop/masks/path.c:3476 +#: ../src/develop/masks/path.c:3392 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>finish path</b>: right-click" @@ -9037,7 +9373,7 @@ "<b>Додати вузол</b>: клік, <b>Додати гострий вузол</b>: Ctrl+клік\n" "<b>Закінчити контур</b>: правий клік" -#: ../src/develop/masks/path.c:3479 +#: ../src/develop/masks/path.c:3395 msgid "" "<b>move node</b>: drag, <b>remove node</b>: right-click\n" "<b>switch smooth/sharp mode</b>: ctrl+click" @@ -9045,7 +9381,7 @@ "<b>Перемістити вузол</b>: перетягнути, <b>Видалити вузол</b>: правий клік\n" "<b>Перемкнути плавний/різкий режим</b>: Ctrl+клік" -#: ../src/develop/masks/path.c:3483 +#: ../src/develop/masks/path.c:3399 msgid "" "<b>node curvature</b>: drag\n" "<b>reset curvature</b>: right-click" @@ -9053,7 +9389,7 @@ "<b>Вигин вузла</b>: перетягнути\n" "<b>Скинути вигин</b>: правий клік" -#: ../src/develop/masks/path.c:3487 +#: ../src/develop/masks/path.c:3403 msgid "" "<b>move segment</b>: drag\n" "<b>add node</b>: ctrl+click" @@ -9061,11 +9397,11 @@ "<b>Перемістити сегмент</b>: перетягнути\n" "<b>Додати вузол</b>: Ctrl+клік" -#: ../src/develop/pixelpipe_hb.c:500 +#: ../src/develop/pixelpipe_hb.c:486 msgid "enabled as required" msgstr "Увімкнено за необхідності" -#: ../src/develop/pixelpipe_hb.c:501 +#: ../src/develop/pixelpipe_hb.c:487 msgid "" "history had module disabled but it is required for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -9073,11 +9409,11 @@ "В історії був вимкнений модуль, але він потрібен для цього типу зображень.\n" "Імовірно, причиною є застосування пресету, стилю, або копіювання історії" -#: ../src/develop/pixelpipe_hb.c:508 +#: ../src/develop/pixelpipe_hb.c:494 msgid "disabled as not appropriate" msgstr "Вимкнено як непідходящий" -#: ../src/develop/pixelpipe_hb.c:509 +#: ../src/develop/pixelpipe_hb.c:495 msgid "" "history had module enabled but it is not allowed for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -9086,15 +9422,28 @@ "зображень.\n" "Імовірно, причиною є застосування пресету, стилю, або копіювання історії" -#: ../src/develop/pixelpipe_hb.c:2705 +#: ../src/develop/pixelpipe_hb.c:2697 msgid "" -"darktable discovered problems with your OpenCL setup; disabling OpenCL for " -"this session!" -msgstr "" -"darktable має проблеми з вашим налаштуванням OpenCL; вимкнення OpenCL для " -"цього сеансу!" +"OpenCL errors encountered; disabling OpenCL for this session! some possible " +"causes:\n" +" - OpenCL out of resources due to preference settings. please try with " +"defaults,\n" +" - buggy driver for some device. please run darktable with `-d opencl' to " +"identify,\n" +" - some drivers don't support needed number of events,\n" +" - too small headroom settings while using 'use all device memory'." +msgstr "" +"Виявлено помилки OpenCL, тому OpenCL вимкнено для цього сеансу! Можливі " +"причини:\n" +" - OpenCL бракує ресурсів через налаштування параметрів. Спробуйте зі " +"значеннями за замовчуванням.\n" +" - Глючний драйвер для якогось пристрою. Запустіть Darktable з '-d opencl' " +"для ідентифікації.\n" +" - Деякі драйвери не підтримують необхідну кількість подій.\n" +" - Занадто малі параметри запасу при використанні опції 'використовувати " +"всю пам'ять пристрою'." -#: ../src/develop/pixelpipe_hb.c:2853 +#: ../src/develop/pixelpipe_hb.c:2847 #, c-format msgid "" "module '%s' can't get raster mask from module\n" @@ -9105,28 +9454,32 @@ "модуля '%s', бо це обробляється пізніше в конвеєрі.\n" "Растрова маска ігнорується." -#: ../src/develop/tiling.c:820 ../src/develop/tiling.c:1173 +#: ../src/develop/tiling.c:819 ../src/develop/tiling.c:1172 #, c-format -msgid "tiling failed for module '%s'. output might be garbled." -msgstr "Невдалий тайлінг для модуля '%s'. вихід може бути спотворений." +msgid "" +"tiling failed for module '%s'. the output most likely will be OK, but you " +"might want to check." +msgstr "" +"Невдалий тайлінг для модуля '%s'. Результат, швидше за все, буде нормальним, " +"але ви можете перевірити." -#: ../src/dtgtk/culling.c:254 +#: ../src/dtgtk/culling.c:223 msgid "you have reached the start of your selection" msgstr "Ви досягли початку своєї вибірки" -#: ../src/dtgtk/culling.c:263 +#: ../src/dtgtk/culling.c:232 msgid "you have reached the start of your collection" msgstr "Ви досягли початку своєї колекції" -#: ../src/dtgtk/culling.c:310 +#: ../src/dtgtk/culling.c:279 msgid "you have reached the end of your selection" msgstr "Ви досягли кінця своєї вибірки" -#: ../src/dtgtk/culling.c:337 +#: ../src/dtgtk/culling.c:306 msgid "you have reached the end of your collection" msgstr "Ви досягли кінця своєї колекції" -#: ../src/dtgtk/culling.c:446 +#: ../src/dtgtk/culling.c:415 #, c-format msgid "zooming is limited to %d images" msgstr "Максимальна кількість зображень: %d" @@ -9219,7 +9572,7 @@ msgid "fixed" msgstr "Фіксовані значення" -#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1493 +#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1498 msgid "relative" msgstr "Відносні значення" @@ -9233,7 +9586,7 @@ msgstr "Мін" #: ../src/dtgtk/range.c:630 ../src/dtgtk/range.c:1780 ../src/dtgtk/range.c:1831 -#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:282 +#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:309 msgid "max" msgstr "Макс" @@ -9242,7 +9595,7 @@ msgstr "Тип дати" #. the date section -#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1505 msgid "date" msgstr "Дата" @@ -9267,7 +9620,7 @@ msgstr "Дні: " #. the time section -#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1505 msgid "time" msgstr "Час" @@ -9286,8 +9639,8 @@ "Встановити значення так, щоб воно завжди відповідало поточній даті й часу" #. apply button -#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:162 -#: ../src/libs/metadata.c:901 ../src/libs/styles.c:897 +#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:180 +#: ../src/libs/metadata.c:735 ../src/libs/styles.c:901 msgid "apply" msgstr "Застосувати" @@ -9321,39 +9674,39 @@ msgid "grouped images" msgstr "Згруповані зображення" -#: ../src/dtgtk/thumbnail.c:820 ../src/dtgtk/thumbnail.c:1635 -#: ../src/iop/ashift.c:6191 ../src/iop/ashift.c:6280 ../src/iop/ashift.c:6282 -#: ../src/iop/ashift.c:6284 ../src/libs/navigation.c:110 -#: ../src/libs/navigation.c:190 +#: ../src/dtgtk/thumbnail.c:814 ../src/dtgtk/thumbnail.c:1623 +#: ../src/iop/ashift.c:6138 ../src/iop/ashift.c:6227 ../src/iop/ashift.c:6229 +#: ../src/iop/ashift.c:6231 ../src/libs/navigation.c:111 +#: ../src/libs/navigation.c:193 msgid "fit" msgstr "Підгонка" -#: ../src/dtgtk/thumbtable.c:1041 ../src/views/slideshow.c:421 +#: ../src/dtgtk/thumbtable.c:1139 ../src/views/slideshow.c:422 msgid "there are no images in this collection" msgstr "В цій колекції немає зображень" -#: ../src/dtgtk/thumbtable.c:1048 +#: ../src/dtgtk/thumbtable.c:1146 msgid "if you have not imported any images yet" msgstr "Якщо ви ще не імпортували жодного зображення" -#: ../src/dtgtk/thumbtable.c:1052 +#: ../src/dtgtk/thumbtable.c:1150 msgid "you can do so in the import module" msgstr "ви можете зробити це в модулі імпорту" -#: ../src/dtgtk/thumbtable.c:1061 +#: ../src/dtgtk/thumbtable.c:1159 msgid "try to relax the filter settings in the top panel" msgstr "Спробуйте послабити налаштування фільтра на верхній панелі" -#: ../src/dtgtk/thumbtable.c:1072 +#: ../src/dtgtk/thumbtable.c:1170 msgid "or add images in the collections module in the left panel" msgstr "або додати зображення в модулі колекції на лівій панелі" -#: ../src/dtgtk/thumbtable.c:1338 +#: ../src/dtgtk/thumbtable.c:1455 msgid "" "you have changed the settings related to how thumbnails are generated.\n" msgstr "Ви змінили налаштування, пов’язані з тим, як генеруються мініатюри.\n" -#: ../src/dtgtk/thumbtable.c:1341 +#: ../src/dtgtk/thumbtable.c:1458 msgid "" "all cached thumbnails need to be invalidated.\n" "\n" @@ -9361,7 +9714,7 @@ "Усі кешовані мініатюри потрібно визнати недійсними.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1345 +#: ../src/dtgtk/thumbtable.c:1462 #, c-format msgid "" "cached thumbnails starting from level %d need to be invalidated.\n" @@ -9370,7 +9723,7 @@ "Кешовані мініатюри, починаючи з рівня %d, потрібно визнати недійсними.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1350 +#: ../src/dtgtk/thumbtable.c:1467 #, c-format msgid "" "cached thumbnails below level %d need to be invalidated.\n" @@ -9379,7 +9732,7 @@ "Кешовані мініатюри нижче рівня %d потрібно визнати недійсними.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1355 +#: ../src/dtgtk/thumbtable.c:1472 #, c-format msgid "" "cached thumbnails between level %d and %d need to be invalidated.\n" @@ -9388,48 +9741,48 @@ "Кешовані мініатюри між рівнями %d і %d потрібно визнати недійсними.\n" "\n" -#: ../src/dtgtk/thumbtable.c:1358 +#: ../src/dtgtk/thumbtable.c:1475 msgid "do you want to do that now?" msgstr "Хочете зробити це зараз?" -#: ../src/dtgtk/thumbtable.c:1360 +#: ../src/dtgtk/thumbtable.c:1477 msgid "cached thumbnails invalidation" msgstr "Анулювання кешованих мініатюр" #. setup history key accelerators -#: ../src/dtgtk/thumbtable.c:2561 +#: ../src/dtgtk/thumbtable.c:2738 msgid "copy history" msgstr "Копіювати історію" -#: ../src/dtgtk/thumbtable.c:2563 +#: ../src/dtgtk/thumbtable.c:2740 msgid "copy history parts" msgstr "Копіювати частини історії" -#: ../src/dtgtk/thumbtable.c:2565 +#: ../src/dtgtk/thumbtable.c:2742 msgid "paste history" msgstr "Вставити історію" -#: ../src/dtgtk/thumbtable.c:2567 +#: ../src/dtgtk/thumbtable.c:2744 msgid "paste history parts" msgstr "Вставити частини історії" -#: ../src/dtgtk/thumbtable.c:2569 ../src/libs/copy_history.c:394 +#: ../src/dtgtk/thumbtable.c:2746 ../src/libs/copy_history.c:394 msgid "discard history" msgstr "Видалити історію" -#: ../src/dtgtk/thumbtable.c:2572 +#: ../src/dtgtk/thumbtable.c:2749 msgid "duplicate image" msgstr "Створити дублікат зображення" -#: ../src/dtgtk/thumbtable.c:2574 +#: ../src/dtgtk/thumbtable.c:2751 msgid "duplicate image virgin" msgstr "Створити дублікат нередагованого зображення" -#: ../src/dtgtk/thumbtable.c:2584 ../src/libs/select.c:147 +#: ../src/dtgtk/thumbtable.c:2761 ../src/libs/select.c:148 msgid "select film roll" msgstr "Вибрати плівку" -#: ../src/dtgtk/thumbtable.c:2586 ../src/libs/select.c:151 +#: ../src/dtgtk/thumbtable.c:2763 ../src/libs/select.c:152 msgid "select untouched" msgstr "Вибрати необроблені" @@ -9498,265 +9851,299 @@ msgid "creating complete lighttable thumbnail cache\n" msgstr "Створення повного кешу мініатюр для світлого стола\n" -#: ../src/gui/accelerators.c:61 -msgid "active view" -msgstr "Активний режим" - -#: ../src/gui/accelerators.c:62 -msgid "other views" -msgstr "Інші режими" +#: ../src/gui/about.c:34 +#, c-format +msgid "copyright (c) the authors 2009-%s" +msgstr "Авторські права (c) належать авторам 2009-%s" + +#: ../src/gui/about.c:39 +msgid "organize and develop images from digital cameras" +msgstr "Організація і обробка цифрових фотографій" -#: ../src/gui/accelerators.c:63 +#: ../src/gui/about.c:51 +msgid "all those of you that made previous releases possible" +msgstr "усі, хто зробив можливим попередні випуски" + +#: ../src/gui/about.c:56 +msgid "and..." +msgstr "і..." + +#: ../src/gui/about.c:59 +msgid "translator-credits" +msgstr "" +"Віктор Форсюк <vvforce@gmail.com>\n" +"Слава Україні! Героям слава!\n" +" " + +#: ../src/gui/accelerators.c:72 +msgid "in active view" +msgstr "В активному режимі" + +#: ../src/gui/accelerators.c:73 +msgid "in other views" +msgstr "В інших режимах" + +#: ../src/gui/accelerators.c:74 msgid "fallbacks" msgstr "Резервні дії" -#: ../src/gui/accelerators.c:64 ../src/gui/accelerators.c:722 -#: ../src/gui/accelerators.c:2607 ../src/gui/accelerators.c:3470 -msgid "speed" -msgstr "Швидкість" +#: ../src/gui/accelerators.c:75 +msgid "speed adjustments" +msgstr "Регулювання швидкості" + +#: ../src/gui/accelerators.c:76 +msgid "disabled defaults" +msgstr "Вимкнені замовчування" -#: ../src/gui/accelerators.c:80 ../src/views/view.c:1202 +#: ../src/gui/accelerators.c:96 ../src/views/view.c:1361 msgid "scroll" msgstr "Прокрутка" -#: ../src/gui/accelerators.c:81 +#: ../src/gui/accelerators.c:97 msgid "pan" msgstr "Панорамування" -#: ../src/gui/accelerators.c:82 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6283 ../src/iop/clipping.c:1902 -#: ../src/iop/clipping.c:2094 ../src/iop/clipping.c:2110 -#: ../src/views/darkroom.c:2676 ../src/views/lighttable.c:1250 +#: ../src/gui/accelerators.c:98 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6230 ../src/iop/clipping.c:1955 +#: ../src/iop/clipping.c:2147 ../src/iop/clipping.c:2163 +#: ../src/views/darkroom.c:2522 ../src/views/lighttable.c:1250 msgid "horizontal" msgstr "Горизонтально" -#: ../src/gui/accelerators.c:83 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6281 ../src/iop/clipping.c:1901 -#: ../src/iop/clipping.c:2095 ../src/iop/clipping.c:2109 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:1254 +#: ../src/gui/accelerators.c:99 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6228 ../src/iop/clipping.c:1954 +#: ../src/iop/clipping.c:2148 ../src/iop/clipping.c:2162 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:1254 msgid "vertical" msgstr "Вертикально" -#: ../src/gui/accelerators.c:84 +#: ../src/gui/accelerators.c:100 msgid "diagonal" msgstr "Діагональ" -#: ../src/gui/accelerators.c:86 +#: ../src/gui/accelerators.c:102 msgid "leftright" msgstr "Ліво-право" -#: ../src/gui/accelerators.c:87 +#: ../src/gui/accelerators.c:103 msgid "updown" msgstr "updown" -#: ../src/gui/accelerators.c:88 +#: ../src/gui/accelerators.c:104 msgid "pgupdown" msgstr "pgupdown" -#: ../src/gui/accelerators.c:96 ../src/views/view.c:1186 +#: ../src/gui/accelerators.c:112 ../src/views/view.c:1343 msgid "shift" msgstr "Shift" -#: ../src/gui/accelerators.c:97 ../src/views/view.c:1187 +#: ../src/gui/accelerators.c:113 ../src/views/view.c:1345 msgid "ctrl" msgstr "Ctrl" -#: ../src/gui/accelerators.c:98 ../src/views/view.c:1188 +#: ../src/gui/accelerators.c:114 ../src/views/view.c:1347 msgid "alt" msgstr "Alt" -#: ../src/gui/accelerators.c:99 +#: ../src/gui/accelerators.c:115 msgid "cmd" msgstr "Cmd" -#: ../src/gui/accelerators.c:100 +#: ../src/gui/accelerators.c:116 msgid "altgr" msgstr "Права Alt" -#: ../src/gui/accelerators.c:109 ../src/gui/accelerators.c:156 -#: ../src/libs/tagging.c:1782 +#: ../src/gui/accelerators.c:127 ../src/gui/accelerators.c:174 +#: ../src/libs/tagging.c:1804 msgid "edit" msgstr "Редагувати" -#: ../src/gui/accelerators.c:110 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "up" msgstr "Підняти" -#: ../src/gui/accelerators.c:111 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:129 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "down" msgstr "Опустити" -#: ../src/gui/accelerators.c:115 +#: ../src/gui/accelerators.c:133 msgid "set" msgstr "Встановити" -#: ../src/gui/accelerators.c:119 +#: ../src/gui/accelerators.c:137 msgid "popup" msgstr "popup" -#: ../src/gui/accelerators.c:120 ../src/gui/accelerators.c:153 -#: ../src/gui/gtk.c:3054 ../src/views/lighttable.c:760 +#: ../src/gui/accelerators.c:138 ../src/gui/accelerators.c:171 +#: ../src/gui/gtk.c:3100 ../src/views/lighttable.c:760 msgid "next" msgstr "Вперед" -#: ../src/gui/accelerators.c:121 ../src/gui/accelerators.c:152 -#: ../src/gui/gtk.c:3055 ../src/views/lighttable.c:761 +#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:170 +#: ../src/gui/gtk.c:3101 ../src/views/lighttable.c:761 msgid "previous" msgstr "Назад" -#: ../src/gui/accelerators.c:123 ../src/gui/accelerators.c:1462 +#: ../src/gui/accelerators.c:141 ../src/gui/accelerators.c:1598 msgid "last" msgstr "Останній" -#: ../src/gui/accelerators.c:124 ../src/gui/accelerators.c:1461 +#: ../src/gui/accelerators.c:142 ../src/gui/accelerators.c:1597 msgid "first" msgstr "Перший" -#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:141 -#: ../src/gui/accelerators.c:314 ../src/libs/filters/rating_range.c:268 -#: ../src/libs/tagging.c:3119 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2419 ../src/views/darkroom.c:2648 +#: ../src/gui/accelerators.c:146 ../src/gui/accelerators.c:159 +#: ../src/gui/accelerators.c:356 ../src/libs/filters/rating_range.c:295 +#: ../src/libs/tagging.c:3150 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2258 ../src/views/darkroom.c:2494 msgid "toggle" msgstr "Перемикач" -#: ../src/gui/accelerators.c:131 +#: ../src/gui/accelerators.c:149 msgid "ctrl-toggle" msgstr "Ctrl-перемикач" -#: ../src/gui/accelerators.c:132 +#: ../src/gui/accelerators.c:150 msgid "ctrl-on" msgstr "Ctrl-вмикання" -#: ../src/gui/accelerators.c:133 +#: ../src/gui/accelerators.c:151 msgid "right-toggle" msgstr "Права-перемикання" -#: ../src/gui/accelerators.c:134 +#: ../src/gui/accelerators.c:152 msgid "right-on" msgstr "Права-вмикання" -#: ../src/gui/accelerators.c:145 ../src/gui/gtk.c:3053 +#: ../src/gui/accelerators.c:163 ../src/gui/gtk.c:3099 msgid "activate" msgstr "Активація" -#: ../src/gui/accelerators.c:146 +#: ../src/gui/accelerators.c:164 msgid "ctrl-activate" msgstr "Ctrl-активація" -#: ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:165 msgid "right-activate" msgstr "Права-активація" -#: ../src/gui/accelerators.c:154 +#: ../src/gui/accelerators.c:172 msgid "store" msgstr "Зберегти" -#: ../src/gui/accelerators.c:157 ../src/gui/styles_dialog.c:639 +#: ../src/gui/accelerators.c:175 ../src/gui/styles_dialog.c:651 msgid "update" msgstr "Оновити" -#: ../src/gui/accelerators.c:158 ../src/libs/tools/global_toolbox.c:60 +#: ../src/gui/accelerators.c:176 ../src/libs/tools/global_toolbox.c:60 #: ../src/libs/tools/global_toolbox.c:510 msgid "preferences" msgstr "Уподобання" -#: ../src/gui/accelerators.c:163 +#: ../src/gui/accelerators.c:181 msgid "apply on new instance" msgstr "Застосувати на новому екземплярі" -#: ../src/gui/accelerators.c:168 +#: ../src/gui/accelerators.c:186 msgid "start" msgstr "Початок" -#: ../src/gui/accelerators.c:169 +#: ../src/gui/accelerators.c:187 msgid "end" msgstr "Кінець" -#: ../src/gui/accelerators.c:332 +#: ../src/gui/accelerators.c:374 msgid "entry" msgstr "Вхідний текст" -#: ../src/gui/accelerators.c:409 +#: ../src/gui/accelerators.c:450 msgid "combo effect not found" msgstr "Дію для меню не знайдено" -#: ../src/gui/accelerators.c:578 +#: ../src/gui/accelerators.c:627 msgid "(keypad)" msgstr "(цифровий блок)" -#: ../src/gui/accelerators.c:587 +#: ../src/gui/accelerators.c:636 msgid "tablet button" msgstr "Кнопка планшета" -#: ../src/gui/accelerators.c:596 +#: ../src/gui/accelerators.c:645 msgid "unknown driver" msgstr "Невідомий драйвер" -#: ../src/gui/accelerators.c:663 +#: ../src/gui/accelerators.c:718 msgid "long" msgstr "Довге" -#: ../src/gui/accelerators.c:664 +#: ../src/gui/accelerators.c:719 msgid "double-press" msgstr "Подвійне натискання" -#: ../src/gui/accelerators.c:665 +#: ../src/gui/accelerators.c:720 msgid "triple-press" msgstr "Потрійне натискання" -#: ../src/gui/accelerators.c:666 +#: ../src/gui/accelerators.c:721 msgid "press" msgstr "Натискання" -#: ../src/gui/accelerators.c:670 +#: ../src/gui/accelerators.c:725 msgctxt "accel" msgid "left" msgstr "Лівий" -#: ../src/gui/accelerators.c:671 +#: ../src/gui/accelerators.c:726 msgctxt "accel" msgid "right" msgstr "Правий" -#: ../src/gui/accelerators.c:672 +#: ../src/gui/accelerators.c:727 msgctxt "accel" msgid "middle" msgstr "Середній" -#: ../src/gui/accelerators.c:673 +#: ../src/gui/accelerators.c:728 msgctxt "accel" msgid "long" msgstr "Довгий" -#: ../src/gui/accelerators.c:674 +#: ../src/gui/accelerators.c:729 msgctxt "accel" msgid "double-click" msgstr "Подвійний клік" -#: ../src/gui/accelerators.c:675 +#: ../src/gui/accelerators.c:730 msgctxt "accel" msgid "triple-click" msgstr "Потрійний клік" -#: ../src/gui/accelerators.c:676 +#: ../src/gui/accelerators.c:731 msgid "click" msgstr "Клік" -#: ../src/gui/accelerators.c:704 +#: ../src/gui/accelerators.c:759 msgid "first instance" msgstr "Перший екземпляр" -#: ../src/gui/accelerators.c:706 +#: ../src/gui/accelerators.c:761 msgid "last instance" msgstr "Останній екземпляр" -#: ../src/gui/accelerators.c:708 +#: ../src/gui/accelerators.c:763 msgid "relative instance" msgstr "Відносний екземпляр" -#: ../src/gui/accelerators.c:867 +#: ../src/gui/accelerators.c:780 ../src/gui/accelerators.c:2864 +#: ../src/gui/accelerators.c:3811 +msgid "speed" +msgstr "Швидкість" + +#: ../src/gui/accelerators.c:923 #, c-format msgid "" "Lua script command copied to clipboard:\n" @@ -9767,11 +10154,11 @@ "\n" "<tt>%s</tt>" -#: ../src/gui/accelerators.c:965 ../src/gui/accelerators.c:978 +#: ../src/gui/accelerators.c:1025 ../src/gui/accelerators.c:1044 msgid "start typing for incremental search" msgstr "Почніть вводити для поступального пошуку" -#: ../src/gui/accelerators.c:966 +#: ../src/gui/accelerators.c:1028 msgid "" "\n" "press Delete to delete selected shortcut" @@ -9779,7 +10166,23 @@ "\n" "Натисність Delete, щоб видалити вибраний прискорювач" -#: ../src/gui/accelerators.c:968 +#: ../src/gui/accelerators.c:1030 +msgid "" +"\n" +"press Delete to disable selected default shortcut" +msgstr "" +"\n" +"Натисність Delete, щоб вимкнути вибраний прискорювач за замовчуванням" + +#: ../src/gui/accelerators.c:1031 +msgid "" +"\n" +"press Delete to restore selected default shortcut" +msgstr "" +"\n" +"Натисність Delete, щоб відновити вибраний прискорювач за замовчуванням" + +#: ../src/gui/accelerators.c:1033 msgid "" "\n" "double-click to add new shortcut" @@ -9787,11 +10190,11 @@ "\n" "Подвійний клік, щоб додати новий прискорювач" -#: ../src/gui/accelerators.c:979 +#: ../src/gui/accelerators.c:1045 msgid "click to filter shortcuts list" msgstr "Клікніть для фільтрації списку прискорювачів" -#: ../src/gui/accelerators.c:981 +#: ../src/gui/accelerators.c:1047 msgid "" "\n" "right click to show action of selected shortcut" @@ -9799,7 +10202,7 @@ "\n" "Клікніть правою кнопкою миші, щоб показати дію вибраного прискорювача" -#: ../src/gui/accelerators.c:984 +#: ../src/gui/accelerators.c:1050 msgid "" "\n" "double-click to define new shortcut" @@ -9807,11 +10210,11 @@ "\n" "Подвійний клік, щоб визначити новий прискорювач" -#: ../src/gui/accelerators.c:1015 +#: ../src/gui/accelerators.c:1081 msgid "shift+alt+scroll to change height" msgstr "Shift+Alt+прокрутка для зміни висоти" -#: ../src/gui/accelerators.c:1035 +#: ../src/gui/accelerators.c:1101 msgid "" "press keys with mouse click and scroll or move combinations to create a " "shortcut" @@ -9819,27 +10222,27 @@ "Натискайте клавіші в комбінації з кліком або прокручуванням або рухом миші " "для створення прискорювача" -#: ../src/gui/accelerators.c:1036 +#: ../src/gui/accelerators.c:1102 msgid "click to open shortcut configuration" msgstr "Натисніть, щоб відкрити конфігурацію прискорювачів" -#: ../src/gui/accelerators.c:1037 +#: ../src/gui/accelerators.c:1103 msgid "ctrl+click to add to quick access panel\n" msgstr "Ctrl+клік, щоб додати до панелі швидкого доступу\n" -#: ../src/gui/accelerators.c:1038 +#: ../src/gui/accelerators.c:1104 msgid "ctrl+click to remove from quick access panel\n" msgstr "Ctrl+клік, щоб видалити з панелі швидкого доступу\n" -#: ../src/gui/accelerators.c:1039 +#: ../src/gui/accelerators.c:1105 msgid "scroll to change default speed" msgstr "Прокрутіть, щоб змінити швидкість за замовчуванням" -#: ../src/gui/accelerators.c:1040 +#: ../src/gui/accelerators.c:1106 msgid "right click to exit mapping mode" msgstr "Правий клік, щоб вийти з режиму зіставлення" -#: ../src/gui/accelerators.c:1051 +#: ../src/gui/accelerators.c:1119 #, c-format msgid "" "%sright-click to type a specific value between <b>%s</b> and <b>%s</b>\n" @@ -9849,74 +10252,89 @@ "<b>%s</b>, або утримуйте Ctrl+Shift під час перетягування, щоб ігнорувати " "м’які обмеження." -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "ctrl+v" msgstr "Ctrl+v" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "right long click" msgstr "Правий довгий клік" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "to copy Lua command" msgstr "для копіювання команди Lua" -#: ../src/gui/accelerators.c:1344 +#: ../src/gui/accelerators.c:1451 msgid "shortcut for move exists with single effect" msgstr "Прискорювач для переміщення існує з єдиною дією" -#: ../src/gui/accelerators.c:1345 +#: ../src/gui/accelerators.c:1452 +#, c-format +msgid "" +"%s\n" +"\n" +"(assign %s to %s)" +msgstr "" +"%s\n" +"\n" +"(призначення %s на %s)" + +#: ../src/gui/accelerators.c:1453 msgid "create separate shortcuts for up and down move?" msgstr "Сворити окремі прискорювачі для переміщення вгору та вниз?" -#: ../src/gui/accelerators.c:1368 +#: ../src/gui/accelerators.c:1479 #, c-format msgid "%s, speed reset" msgstr "%s, скидання швидкості" -#: ../src/gui/accelerators.c:1377 +#: ../src/gui/accelerators.c:1497 msgid "shortcut exists with different settings" msgstr "Прискорювач існує з іншими налаштуваннями" -#: ../src/gui/accelerators.c:1378 +#: ../src/gui/accelerators.c:1498 msgid "reset the settings of the shortcut?" msgstr "Скинути налаштування прискорювача?" -#: ../src/gui/accelerators.c:1389 +#: ../src/gui/accelerators.c:1507 msgid "shortcut already exists" msgstr "Прискорювач вже існує" -#: ../src/gui/accelerators.c:1390 +#: ../src/gui/accelerators.c:1509 +msgid "disable this default shortcut?" +msgstr "Вимкнути цей прискорювач за замовчуванням?" + +#: ../src/gui/accelerators.c:1510 msgid "remove the shortcut?" msgstr "Видалити прискорювач?" -#: ../src/gui/accelerators.c:1423 +#: ../src/gui/accelerators.c:1550 msgid "clashing shortcuts exist" msgstr "Існують конфліктуючі прискорювачі" -#: ../src/gui/accelerators.c:1424 +#: ../src/gui/accelerators.c:1551 msgid "remove these existing shortcuts?" msgstr "Видалити ці наявні прискорювачі?" #. or 3, but change char relative[] = "-2" to "-1" #. NUM_INSTANCES -#: ../src/gui/accelerators.c:1460 +#: ../src/gui/accelerators.c:1596 msgid "preferred" msgstr "Пріоритетний" -#: ../src/gui/accelerators.c:1463 +#: ../src/gui/accelerators.c:1599 msgid "second" msgstr "Другий" -#: ../src/gui/accelerators.c:1464 +#: ../src/gui/accelerators.c:1600 msgid "last but one" msgstr "Передостанній" -#: ../src/gui/accelerators.c:1610 ../src/gui/accelerators.c:1670 +#: ../src/gui/accelerators.c:1761 ../src/gui/accelerators.c:1826 msgid "(unchanged)" msgstr "(не змінено)" -#: ../src/gui/accelerators.c:1776 +#: ../src/gui/accelerators.c:1941 msgid "" "define a shortcut by pressing a key, optionally combined with modifier keys " "(ctrl/shift/alt)\n" @@ -9941,39 +10359,47 @@ "\n" "Клікніть правою кнопкою миші, щоб скасувати" -#: ../src/gui/accelerators.c:1847 +#: ../src/gui/accelerators.c:2014 msgid "removing shortcut" msgstr "Видалення прискорювача" -#: ../src/gui/accelerators.c:1848 +#: ../src/gui/accelerators.c:2016 +msgid "disable the selected default shortcut?" +msgstr "Вимкнути вибраний прискорювач за замовчуванням?" + +#: ../src/gui/accelerators.c:2017 +msgid "restore the selected default shortcut?" +msgstr "Відновити вибраний прискорювач за замовчуванням?" + +#: ../src/gui/accelerators.c:2018 msgid "remove the selected shortcut?" msgstr "Видалити вибраний прискорювач?" -#: ../src/gui/accelerators.c:1938 +#: ../src/gui/accelerators.c:2107 msgid "command" msgstr "Команда" -#: ../src/gui/accelerators.c:1939 +#: ../src/gui/accelerators.c:2108 msgid "preset" msgstr "пресет" -#: ../src/gui/accelerators.c:2272 +#: ../src/gui/accelerators.c:2491 msgid "restore shortcuts" msgstr "Відновити прискорювачі" -#: ../src/gui/accelerators.c:2275 +#: ../src/gui/accelerators.c:2494 msgid "_defaults" msgstr "Замовчування" -#: ../src/gui/accelerators.c:2276 +#: ../src/gui/accelerators.c:2495 msgid "_startup" msgstr "Як при запуску" -#: ../src/gui/accelerators.c:2277 +#: ../src/gui/accelerators.c:2496 msgid "_edits" msgstr "Редагування" -#: ../src/gui/accelerators.c:2283 +#: ../src/gui/accelerators.c:2503 msgid "" "restore shortcuts from one of these states:\n" " - default\n" @@ -9985,7 +10411,7 @@ " - як при запуску\n" " - як під час відкриття цього діалогового вікна\n" -#: ../src/gui/accelerators.c:2289 +#: ../src/gui/accelerators.c:2510 msgid "" "clear all newer shortcuts\n" "(instead of just restoring changed ones)" @@ -9993,22 +10419,17 @@ "Очистити всі нові прискорювачі\n" "(замість того, щоб просто відновити змінені)" -#: ../src/gui/accelerators.c:2344 ../src/gui/preferences.c:906 +#: ../src/gui/accelerators.c:2567 ../src/gui/preferences.c:905 #: ../src/libs/tools/global_toolbox.c:494 -#: ../src/libs/tools/global_toolbox.c:645 +#: ../src/libs/tools/global_toolbox.c:652 msgid "shortcuts" msgstr "Клавіатурні прискорювачі" -#: ../src/gui/accelerators.c:2353 +#: ../src/gui/accelerators.c:2577 msgid "export shortcuts" msgstr "Експортувати прискорювачі" -#: ../src/gui/accelerators.c:2356 ../src/gui/accelerators.c:2436 -#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:564 -msgid "_ok" -msgstr "_OK" - -#: ../src/gui/accelerators.c:2361 +#: ../src/gui/accelerators.c:2586 msgid "" "export all shortcuts to a file\n" "or just for one selected device\n" @@ -10016,27 +10437,27 @@ "Експортувати всі клавіатурні прискорювачі в файл\n" "або лише для одного вибраного пристрою\n" -#: ../src/gui/accelerators.c:2368 ../src/gui/accelerators.c:2448 +#: ../src/gui/accelerators.c:2593 ../src/gui/accelerators.c:2675 msgid "keyboard" msgstr "Клавіатура" -#: ../src/gui/accelerators.c:2380 +#: ../src/gui/accelerators.c:2605 msgid "device id" msgstr "Id пристрою" -#: ../src/gui/accelerators.c:2406 +#: ../src/gui/accelerators.c:2631 msgid "select file to export" msgstr "Виберіть файл для експорту" -#: ../src/gui/accelerators.c:2407 ../src/libs/tagging.c:2525 +#: ../src/gui/accelerators.c:2632 ../src/libs/tagging.c:2556 msgid "_export" msgstr "_Експортувати" -#: ../src/gui/accelerators.c:2433 +#: ../src/gui/accelerators.c:2659 msgid "import shortcuts" msgstr "Імпортувати прискорювачі" -#: ../src/gui/accelerators.c:2441 +#: ../src/gui/accelerators.c:2668 msgid "" "import all shortcuts from a file\n" "or just for one selected device\n" @@ -10044,31 +10465,31 @@ "Імпортувати всі клавіатурні прискорювачі з файлу\n" "або лише для одного вибраного пристрою\n" -#: ../src/gui/accelerators.c:2460 +#: ../src/gui/accelerators.c:2687 msgid "id in file" msgstr "Id у файлі" -#: ../src/gui/accelerators.c:2466 +#: ../src/gui/accelerators.c:2693 msgid "id when loaded" msgstr "Id при завантаженні" -#: ../src/gui/accelerators.c:2470 +#: ../src/gui/accelerators.c:2697 msgid "clear device first" msgstr "Спочатку очистити пристрій" -#: ../src/gui/accelerators.c:2494 +#: ../src/gui/accelerators.c:2722 msgid "select file to import" msgstr "Виберіть файл для імпорту" -#: ../src/gui/accelerators.c:2495 ../src/libs/tagging.c:2489 +#: ../src/gui/accelerators.c:2723 ../src/libs/tagging.c:2520 msgid "_import" msgstr "_Імпорт" -#: ../src/gui/accelerators.c:2568 +#: ../src/gui/accelerators.c:2815 msgid "search shortcuts list" msgstr "Пошук у списку прискорювачів" -#: ../src/gui/accelerators.c:2569 +#: ../src/gui/accelerators.c:2817 msgid "" "incrementally search the list of shortcuts\n" "press up or down keys to cycle through matches" @@ -10076,29 +10497,28 @@ "Інкрементний пошук у списку прискорювачів\n" "Натискайте клавіші вгору або вниз, щоб переключатися між збігами" -#. Setting up the cell renderers -#: ../src/gui/accelerators.c:2583 ../src/views/view.c:1383 +#: ../src/gui/accelerators.c:2837 ../src/views/view.c:1554 msgid "shortcut" msgstr "Прискорювач" -#: ../src/gui/accelerators.c:2585 ../src/gui/accelerators.c:2676 -#: ../src/views/view.c:1385 +#: ../src/gui/accelerators.c:2840 ../src/gui/accelerators.c:2942 +#: ../src/views/view.c:1556 msgid "action" msgstr "Дія" -#: ../src/gui/accelerators.c:2594 +#: ../src/gui/accelerators.c:2850 msgid "element" msgstr "Елемент" -#: ../src/gui/accelerators.c:2601 +#: ../src/gui/accelerators.c:2858 msgid "effect" msgstr "Тип дії" -#: ../src/gui/accelerators.c:2658 +#: ../src/gui/accelerators.c:2918 msgid "search actions list" msgstr "Пошук у списку дій" -#: ../src/gui/accelerators.c:2659 +#: ../src/gui/accelerators.c:2920 msgid "" "incrementally search the list of actions\n" "press up or down keys to cycle through matches" @@ -10106,16 +10526,16 @@ "Інкрементний пошук у списку дій\n" "Натискайте клавіші вгору або вниз, щоб переключатися між збігами" -#: ../src/gui/accelerators.c:2682 ../src/gui/guides.c:719 -#: ../src/libs/export_metadata.c:192 +#: ../src/gui/accelerators.c:2950 ../src/gui/guides.c:719 +#: ../src/libs/export_metadata.c:179 msgid "type" msgstr "Тип" -#: ../src/gui/accelerators.c:2717 +#: ../src/gui/accelerators.c:2988 msgid "enable fallbacks" msgstr "Дозволити резервні дії" -#: ../src/gui/accelerators.c:2718 +#: ../src/gui/accelerators.c:2989 msgid "" "enables default meanings for additional buttons, modifiers or moves\n" "when used in combination with a base shortcut" @@ -10124,67 +10544,111 @@ "переміщень\n" "при використанні в поєднанні з базовим клавіатурним прискорювачем" -#: ../src/gui/accelerators.c:2725 +#: ../src/gui/accelerators.c:2997 msgid "open help page for shortcuts" msgstr "Відкрити довідкову сторінку для прискорювачів" -#: ../src/gui/accelerators.c:2730 +#: ../src/gui/accelerators.c:3002 msgid "restore..." msgstr "Відновити..." -#: ../src/gui/accelerators.c:2731 +#: ../src/gui/accelerators.c:3003 msgid "restore default shortcuts or previous state" msgstr "Відновити прискорювачі за замовчуванням або попередній стан" -#: ../src/gui/accelerators.c:2735 ../src/libs/styles.c:883 -#: ../src/libs/tagging.c:3251 +#: ../src/gui/accelerators.c:3007 ../src/libs/styles.c:887 +#: ../src/libs/tagging.c:3282 msgid "import..." msgstr "Імпортувати..." -#: ../src/gui/accelerators.c:2736 +#: ../src/gui/accelerators.c:3008 msgid "fully or partially import shortcuts from file" msgstr "Повністю або частково імпортувати клавіатурні прискорювачі з файлу" -#: ../src/gui/accelerators.c:2740 ../src/libs/styles.c:890 -#: ../src/libs/tagging.c:3254 +#: ../src/gui/accelerators.c:3012 ../src/libs/styles.c:894 +#: ../src/libs/tagging.c:3285 msgid "export..." msgstr "Експортувати..." -#: ../src/gui/accelerators.c:2741 +#: ../src/gui/accelerators.c:3013 msgid "fully or partially export shortcuts to file" msgstr "Повністю або частково експортувати клавіатурні прискорювачі в файл" -#: ../src/gui/accelerators.c:3139 +#: ../src/gui/accelerators.c:3021 +msgid "" +"the recommended way to assign shortcuts to visual elements is the <b>visual " +"shortcut mapping</b> mode.\n" +"this is switched on by toggling the <i>\"keyboard\"</i> button next to " +"preferences in the top panel. in this mode, clicking on a widget or area " +"will open this dialog with the appropriate selection for advanced " +"configuration.\n" +"\n" +"multiple shortcuts can be assigned to the same action. this is especially " +"useful if it has multiple <i>elements</i>, like the module buttons or the " +"colorpickers attached to sliders. however, with <i>fallbacks</i> enabled one " +"can use the same simple shortcuts and change their <i>element</i> or " +"<i>effect</i> by adding mouse clicks.\n" +"\n" +"<i>click <b> three times </b> to dismiss this notice permanently</i>" +msgstr "" +"Рекомендованим способом призначення прискорювачів візуальним елементам є " +"режим <b>візуального зіставлення прискорювачів</b>.\n" +"Цей режим активується кнопкою <i>\"клавіатура\"</i> поруч із кнопкою " +"відкриття налаштувань на верхній панелі. У цьому режимі клік на віджеті або " +"області відкриває це діалогове вікно з відповідним вибором для розширеного " +"налаштування.\n" +"\n" +"Одній дії можна призначити кілька прискорювачів. Це особливо корисно, якщо є " +"кілька <i>елементів</i>, як-от кнопки модулів або піпетки кольорів, " +"прикріплені до повзунків. Однак, якщо ввімкнено <i>резервні дії</i>, можна " +"використовувати ті самі прості прискорювачі й змінювати їхній <i>елемент</i> " +"або <i>ефект</i>, додаючи дію мишею.\n" +"\n" +"<i>Клікніть <b> тричі </b>, щоб назавжди закрити це сповіщення</i>" + +#: ../src/gui/accelerators.c:3452 msgid "reinitialising input devices" msgstr "Повторно ініціалізувати пристрої введення" -#: ../src/gui/accelerators.c:3342 +#: ../src/gui/accelerators.c:3594 +msgid "down move" +msgstr "Переміщення вниз" + +#: ../src/gui/accelerators.c:3594 +msgid "flip top/bottom first/last" +msgstr "Перевернути верх/низ перший/останній" + +#: ../src/gui/accelerators.c:3679 msgid "fallback to move" msgstr "Резервна дія з рухом" -#: ../src/gui/accelerators.c:3578 +#: ../src/gui/accelerators.c:3921 #, c-format msgid "%s not assigned" msgstr "%s не призначено" -#: ../src/gui/accelerators.c:3751 +#: ../src/gui/accelerators.c:4102 #, c-format msgid "%s assigned to %s" msgstr "%s призначено на %s" -#: ../src/gui/gtk.c:173 ../src/views/darkroom.c:4650 +#: ../src/gui/accelerators.c:4321 +msgid "short key press resets stuck keys" +msgstr "Коротке натискання клавіші скидає застряглі клавіші" + +#: ../src/gui/gtk.c:175 ../src/views/darkroom.c:3861 msgid "darktable - darkroom preview" msgstr "darktable - попередній перегляд зображення з темної кімнати" -#: ../src/gui/gtk.c:184 +#: ../src/gui/gtk.c:186 msgid "tooltips off" msgstr "Контекстні підказки вимкнено" -#: ../src/gui/gtk.c:186 +#: ../src/gui/gtk.c:188 msgid "tooltips on" msgstr "Контекстні підказки ввімкнено" -#: ../src/gui/gtk.c:191 +#: ../src/gui/gtk.c:193 msgid "" "tooltip visibility can only be toggled if compositing is enabled in your " "window manager" @@ -10192,184 +10656,217 @@ "Видимість підказок можна перемикати, лише якщо у вашому менеджері вікон " "увімкнено композитинг" -#: ../src/gui/gtk.c:814 +#: ../src/gui/gtk.c:809 msgid "closing darktable..." msgstr "Закриття darktable..." -#: ../src/gui/gtk.c:1135 +#: ../src/gui/gtk.c:1032 +msgid "URL opened in web browser" +msgstr "URL відкрито у веб-браузері" + +#: ../src/gui/gtk.c:1036 +msgid "error while opening URL in web browser" +msgstr "Помилка під час відкриття URL у веб-браузері" + +#. View menu +#: ../src/gui/gtk.c:1104 +msgctxt "menu" +msgid "Views" +msgstr "Режими" + +#: ../src/gui/gtk.c:1108 +msgctxt "menu" +msgid "lighttable" +msgstr "Світлий стіл" + +#: ../src/gui/gtk.c:1109 +msgctxt "menu" +msgid "darkroom" +msgstr "Темна кімната" + +#: ../src/gui/gtk.c:1115 +msgctxt "menu" +msgid "slideshow" +msgstr "Слайд-шоу" + +#: ../src/gui/gtk.c:1117 +msgctxt "menu" +msgid "map" +msgstr "Мапа" + +#: ../src/gui/gtk.c:1119 +msgctxt "menu" +msgid "print" +msgstr "Друк" + +#: ../src/gui/gtk.c:1121 +msgctxt "menu" +msgid "tethering" +msgstr "Камера" + +#. Help menu +#: ../src/gui/gtk.c:1127 +msgctxt "menu" +msgid "Help" +msgstr "Довідка" + +#: ../src/gui/gtk.c:1131 +msgctxt "menu" +msgid "darktable Manual" +msgstr "Посібник користувача Darktable" + +#: ../src/gui/gtk.c:1138 +msgctxt "menu" +msgid "darktable Homepage" +msgstr "Домашня сторінка Darktable" + +#: ../src/gui/gtk.c:1162 +msgctxt "menu" +msgid "Preferences" +msgstr "Уподобання" + +#: ../src/gui/gtk.c:1232 msgid "panels" msgstr "Панелі" -#. an action that does nothing - used for overriding/removing default shortcuts -#: ../src/gui/gtk.c:1184 -msgid "no-op" -msgstr "no-op" - -#: ../src/gui/gtk.c:1186 +#: ../src/gui/gtk.c:1264 msgid "switch views" msgstr "Перемикання режимів" -#: ../src/gui/gtk.c:1187 ../src/views/tethering.c:102 +#: ../src/gui/gtk.c:1265 ../src/views/tethering.c:102 msgid "tethering" msgstr "Камера" -#: ../src/gui/gtk.c:1188 ../src/gui/preferences.c:531 -#: ../src/gui/preferences.c:542 ../src/libs/tools/lighttable.c:66 -#: ../src/views/lighttable.c:91 -msgid "lighttable" -msgstr "Світлий стіл" - -#: ../src/gui/gtk.c:1189 ../src/gui/preferences.c:532 -#: ../src/gui/preferences.c:542 ../src/views/darkroom.c:94 -msgid "darkroom" -msgstr "Темна кімната" - -#: ../src/gui/gtk.c:1190 ../src/views/map.c:197 +#: ../src/gui/gtk.c:1268 ../src/views/map.c:197 msgid "map" msgstr "Мапа" -#: ../src/gui/gtk.c:1191 ../src/views/slideshow.c:389 +#: ../src/gui/gtk.c:1269 ../src/views/slideshow.c:390 msgid "slideshow" msgstr "Слайд-шоу" #. Print button -#: ../src/gui/gtk.c:1192 ../src/libs/print_settings.c:2885 +#: ../src/gui/gtk.c:1270 ../src/libs/print_settings.c:2885 msgid "print" msgstr "Друкувати" #. register ctrl-q to quit: -#: ../src/gui/gtk.c:1198 +#: ../src/gui/gtk.c:1276 msgid "quit" msgstr "Вийти з програми" #. Full-screen accelerator (no ESC handler here to enable quit-slideshow using ESC) -#: ../src/gui/gtk.c:1201 +#: ../src/gui/gtk.c:1279 msgid "fullscreen" msgstr "Повний екран" -#: ../src/gui/gtk.c:1205 +#: ../src/gui/gtk.c:1283 msgid "collapsing controls" msgstr "Елементи керування згортанням" #. specific top/bottom toggles -#: ../src/gui/gtk.c:1207 +#: ../src/gui/gtk.c:1285 msgid "header" msgstr "Заголовок" -#: ../src/gui/gtk.c:1208 +#: ../src/gui/gtk.c:1286 msgid "filmstrip and timeline" msgstr "Стрічка знімків і шкала часу" -#: ../src/gui/gtk.c:1209 +#: ../src/gui/gtk.c:1287 msgid "top toolbar" msgstr "Верхня панель інструментів" -#: ../src/gui/gtk.c:1210 +#: ../src/gui/gtk.c:1288 msgid "bottom toolbar" msgstr "Нижня панель інструментів" -#: ../src/gui/gtk.c:1211 +#: ../src/gui/gtk.c:1289 msgid "all top" msgstr "Всі верхні" -#: ../src/gui/gtk.c:1212 +#: ../src/gui/gtk.c:1290 msgid "all bottom" msgstr "Всі нижні" -#: ../src/gui/gtk.c:1214 +#: ../src/gui/gtk.c:1292 msgid "toggle tooltip visibility" msgstr "Перемкнути видимість підказок" -#: ../src/gui/gtk.c:1215 +#: ../src/gui/gtk.c:1293 msgid "reinitialise input devices" msgstr "Повторно ініціалізувати пристрої введення" -#: ../src/gui/gtk.c:1253 +#: ../src/gui/gtk.c:1331 msgid "toggle focus-peaking mode" msgstr "Перемкнути виділення контурів у фокусі" #. toggle focus peaking everywhere -#: ../src/gui/gtk.c:1258 +#: ../src/gui/gtk.c:1336 msgid "toggle focus peaking" msgstr "Перемкнути виділення контурів у фокусі" -#: ../src/gui/gtk.c:1594 ../src/gui/gtk.c:3143 ../src/gui/gtk.c:3148 -#: ../src/gui/gtk.c:3153 ../src/gui/gtk.c:3158 +#: ../src/gui/gtk.c:1654 ../src/gui/gtk.c:3189 ../src/gui/gtk.c:3194 +#: ../src/gui/gtk.c:3199 ../src/gui/gtk.c:3204 msgid "tabs" msgstr "Вкладки" -#: ../src/gui/gtk.c:2535 -msgid "_yes" -msgstr "_Так" - -#: ../src/gui/gtk.c:2536 -msgid "_no" -msgstr "_Ні" - #. ask the user if darktable.org may be accessed -#: ../src/gui/gtk.c:2647 +#: ../src/gui/gtk.c:2707 msgid "access the online user manual?" msgstr "Отримати доступ до онлайн-довідника?" -#: ../src/gui/gtk.c:2648 +#: ../src/gui/gtk.c:2708 #, c-format msgid "do you want to access `%s'?" msgstr "Хочете отримати доступ до `%s'?" -#: ../src/gui/gtk.c:2717 -msgid "help url opened in web browser" -msgstr "URL довідки відкрито у веб-браузері" - -#: ../src/gui/gtk.c:2721 -msgid "error while opening help url in web browser" -msgstr "Помилка під час відкриття URL-адреси довідки у веб-браузері" - -#: ../src/gui/gtk.c:2732 +#: ../src/gui/gtk.c:2778 msgid "there is no help available for this element" msgstr "Для цього елемента немає допомоги" #. font name can only use period as decimal separator #. but printf format strings use comma for some locales, so replace comma with period -#: ../src/gui/gtk.c:2752 +#: ../src/gui/gtk.c:2798 ../src/libs/metadata_view.c:762 #, c-format msgid "%.1f" msgstr "%.1f" -#: ../src/gui/gtk.c:2754 +#: ../src/gui/gtk.c:2800 #, c-format msgid "Sans %s" msgstr "Sans %s" -#: ../src/gui/gtk.c:3048 +#: ../src/gui/gtk.c:3094 msgid "does not contain pages" msgstr "Не містить вкладок" -#: ../src/gui/gtk.c:3265 +#: ../src/gui/gtk.c:3313 #, c-format msgid "never show more than %d lines" msgstr "Ніколи не показувати більше %d рядків" -#: ../src/gui/gtkentry.c:172 +#: ../src/gui/gtkentry.c:173 msgid "$(ROLL.NAME) - roll of the input image" msgstr "$(ROLL.NAME) - плівка вхідного зображення" -#: ../src/gui/gtkentry.c:173 +#: ../src/gui/gtkentry.c:174 msgid "$(FILE.FOLDER) - folder containing the input image" msgstr "$(FILE.FOLDER) - каталог, що містить вхідне зображення" -#: ../src/gui/gtkentry.c:174 +#: ../src/gui/gtkentry.c:175 msgid "$(FILE.NAME) - basename of the input image" msgstr "$(FILE.NAME) - базове ім'я файлу вхідного зображення" -#: ../src/gui/gtkentry.c:175 +#: ../src/gui/gtkentry.c:176 msgid "$(FILE.EXTENSION) - extension of the input image" msgstr "$(FILE.EXTENSION) - розширення файлу вхідного зображення" -#: ../src/gui/gtkentry.c:176 +#: ../src/gui/gtkentry.c:177 msgid "$(VERSION) - duplicate version" msgstr "$(VERSION) - версія дубліката" -#: ../src/gui/gtkentry.c:177 +#: ../src/gui/gtkentry.c:178 msgid "" "$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version " "exists" @@ -10377,115 +10874,115 @@ "$(VERSION.IF_MULTI) - те саме, що й $(VERSION), але без значення, якщо існує " "лише одна версія" -#: ../src/gui/gtkentry.c:178 +#: ../src/gui/gtkentry.c:179 msgid "$(VERSION.NAME) - version name from metadata" msgstr "$(VERSION.NAME) - ім'я версії з метаданих" -#: ../src/gui/gtkentry.c:179 +#: ../src/gui/gtkentry.c:180 msgid "$(JOBCODE) - job code for import" msgstr "$(JOBCODE) - код завдання імпорту" -#: ../src/gui/gtkentry.c:180 +#: ../src/gui/gtkentry.c:181 msgid "$(SEQUENCE) - sequence number" msgstr "$(SEQUENCE) - порядковий номер" -#: ../src/gui/gtkentry.c:181 +#: ../src/gui/gtkentry.c:182 msgid "$(WIDTH.MAX) - maximum image export width" msgstr "$(WIDTH.MAX) - максимальна ширина зображення при експорті" -#: ../src/gui/gtkentry.c:182 +#: ../src/gui/gtkentry.c:183 msgid "$(WIDTH.SENSOR) - image sensor width" msgstr "$(WIDTH.SENSOR) - ширина сенсора зображення" -#: ../src/gui/gtkentry.c:183 +#: ../src/gui/gtkentry.c:184 msgid "$(WIDTH.RAW) - RAW image width" msgstr "$(WIDTH.RAW) - ширина зображення raw" -#: ../src/gui/gtkentry.c:184 +#: ../src/gui/gtkentry.c:185 msgid "$(WIDTH.CROP) - image width after crop" msgstr "$(WIDTH.CROP) - ширина зображення після обрізання" -#: ../src/gui/gtkentry.c:185 +#: ../src/gui/gtkentry.c:186 msgid "$(WIDTH.EXPORT) - exported image width" msgstr "$(WIDTH.EXPORT) - ширина експортованого зображення" -#: ../src/gui/gtkentry.c:186 +#: ../src/gui/gtkentry.c:187 msgid "$(HEIGHT.MAX) - maximum image export height" msgstr "$(HEIGHT.MAX) - максимальна висота зображення при експорті" -#: ../src/gui/gtkentry.c:187 +#: ../src/gui/gtkentry.c:188 msgid "$(HEIGHT.SENSOR) - image sensor height" msgstr "$(HEIGHT.SENSOR) - висота сенсора зображення" -#: ../src/gui/gtkentry.c:188 +#: ../src/gui/gtkentry.c:189 msgid "$(HEIGHT.RAW) - RAW image height" msgstr "$(HEIGHT.RAW) - висота зображення raw" -#: ../src/gui/gtkentry.c:189 +#: ../src/gui/gtkentry.c:190 msgid "$(HEIGHT.CROP) - image height after crop" msgstr "$(HEIGHT.CROP) - висота зображення після обрізання" -#: ../src/gui/gtkentry.c:190 +#: ../src/gui/gtkentry.c:191 msgid "$(HEIGHT.EXPORT) - exported image height" msgstr "$(HEIGHT.EXPORT) - висота експортованого зображення" -#: ../src/gui/gtkentry.c:191 +#: ../src/gui/gtkentry.c:192 msgid "$(YEAR) - year" msgstr "$(YEAR) - рік" -#: ../src/gui/gtkentry.c:192 +#: ../src/gui/gtkentry.c:193 msgid "$(YEAR.SHORT) - year without century" msgstr "$(YEAR.SHORT) - рік без століття" -#: ../src/gui/gtkentry.c:193 +#: ../src/gui/gtkentry.c:194 msgid "$(MONTH) - month" msgstr "$(MONTH) - місяць" -#: ../src/gui/gtkentry.c:194 +#: ../src/gui/gtkentry.c:195 msgid "$(MONTH.SHORT) - abbreviated month name according to the current locale" msgstr "$(MONTH.SHORT) - скорочена назва місяця відповідно до поточної локалі" -#: ../src/gui/gtkentry.c:195 +#: ../src/gui/gtkentry.c:196 msgid "$(MONTH.LONG) - full month name according to the current locale" msgstr "$(MONTH.LONG) - повна назва місяця відповідно до поточної локалі" -#: ../src/gui/gtkentry.c:196 +#: ../src/gui/gtkentry.c:197 msgid "$(DAY) - day" msgstr "$(DAY) - день" -#: ../src/gui/gtkentry.c:197 +#: ../src/gui/gtkentry.c:198 msgid "$(HOUR) - hour" msgstr "$(HOUR) - година" -#: ../src/gui/gtkentry.c:198 +#: ../src/gui/gtkentry.c:199 msgid "$(HOUR.AMPM) - hour, 12-hour clock" msgstr "$(HOUR.AMPM) - година в 12-годинному форматі" -#: ../src/gui/gtkentry.c:199 +#: ../src/gui/gtkentry.c:200 msgid "$(MINUTE) - minute" msgstr "$(MINUTE) - хвилина" -#: ../src/gui/gtkentry.c:200 +#: ../src/gui/gtkentry.c:201 msgid "$(SECOND) - second" msgstr "$(SECOND) - секунда" -#: ../src/gui/gtkentry.c:201 +#: ../src/gui/gtkentry.c:202 msgid "$(MSEC) - millisecond" msgstr "$(MSEC) - мілісекунда" -#: ../src/gui/gtkentry.c:202 +#: ../src/gui/gtkentry.c:203 msgid "$(EXIF.YEAR) - EXIF year" msgstr "$(EXIF.YEAR) - рік з EXIF" -#: ../src/gui/gtkentry.c:203 +#: ../src/gui/gtkentry.c:204 msgid "$(EXIF.YEAR.SHORT) - EXIF year without century" msgstr "$(EXIF.YEAR.SHORT) - рік з EXIF без століття" -#: ../src/gui/gtkentry.c:204 +#: ../src/gui/gtkentry.c:205 msgid "$(EXIF.MONTH) - EXIF month" msgstr "$(EXIF.MONTH) - місяць з EXIF" -#: ../src/gui/gtkentry.c:205 +#: ../src/gui/gtkentry.c:206 msgid "" "$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current " "locale" @@ -10493,162 +10990,170 @@ "$(EXIF.MONTH.SHORT) - скорочена назва місяця з EXIF відповідно до поточної " "локалі" -#: ../src/gui/gtkentry.c:206 +#: ../src/gui/gtkentry.c:207 msgid "" "$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" msgstr "" "$(EXIF.MONTH.LONG) - повна назва місяця з EXIF відповідно до поточної локалі" -#: ../src/gui/gtkentry.c:207 +#: ../src/gui/gtkentry.c:208 msgid "$(EXIF.DAY) - EXIF day" msgstr "$(EXIF.DAY) - день з EXIF" -#: ../src/gui/gtkentry.c:208 +#: ../src/gui/gtkentry.c:209 msgid "$(EXIF.HOUR) - EXIF hour" msgstr "$(EXIF.HOUR) - година з EXIF" -#: ../src/gui/gtkentry.c:209 +#: ../src/gui/gtkentry.c:210 msgid "$(EXIF.HOUR.AMPM) - EXIF hour, 12-hour clock" msgstr "$(EXIF.HOUR.AMPM) - година з EXIF у 12-годинному форматі" -#: ../src/gui/gtkentry.c:210 +#: ../src/gui/gtkentry.c:211 msgid "$(EXIF.MINUTE) - EXIF minute" msgstr "$(EXIF.MINUTE) - хвилина з EXIF" -#: ../src/gui/gtkentry.c:211 +#: ../src/gui/gtkentry.c:212 msgid "$(EXIF.SECOND) - EXIF second" msgstr "$(EXIF.SECOND) - секунда з EXIF" -#: ../src/gui/gtkentry.c:212 +#: ../src/gui/gtkentry.c:213 msgid "$(EXIF.MSEC) - EXIF millisecond" msgstr "$(EXIF.MSEC) - мілісекунда з EXIF" -#: ../src/gui/gtkentry.c:213 +#: ../src/gui/gtkentry.c:214 msgid "$(EXIF.ISO) - ISO value" msgstr "$(EXIF.ISO) - значення ISO" -#: ../src/gui/gtkentry.c:214 +#: ../src/gui/gtkentry.c:215 msgid "$(EXIF.EXPOSURE) - EXIF exposure" msgstr "$(EXIF.EXPOSURE) - експозиція з EXIF" -#: ../src/gui/gtkentry.c:215 +#: ../src/gui/gtkentry.c:216 msgid "$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias" msgstr "$(EXIF.EXPOSURE.BIAS) - компенсація експозиції з EXIF" -#: ../src/gui/gtkentry.c:216 +#: ../src/gui/gtkentry.c:217 msgid "$(EXIF.APERTURE) - EXIF aperture" msgstr "$(EXIF.APERTURE) - діафрагма з EXIF" -#: ../src/gui/gtkentry.c:217 +#: ../src/gui/gtkentry.c:218 +msgid "$(EXIF.CROP_FACTOR) - EXIF crop factor" +msgstr "$(EXIF.CROP_FACTOR) - кроп-фактор з EXIF" + +#: ../src/gui/gtkentry.c:219 msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" msgstr "$(EXIF.FOCAL.LENGTH) - фокусна відстань з EXIF" -#: ../src/gui/gtkentry.c:218 +#: ../src/gui/gtkentry.c:220 +msgid "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent focal length" +msgstr "$(EXIF.FOCAL.LENGTH.EQUIV) - еквівалентна фокусна відстань з EXIF" + +#: ../src/gui/gtkentry.c:221 msgid "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" msgstr "$(EXIF.FOCUS.DISTANCE) - дистанція фокусування з EXIF" -#: ../src/gui/gtkentry.c:219 +#: ../src/gui/gtkentry.c:222 msgid "$(EXIF.MAKER) - camera maker" msgstr "$(EXIF.MAKER) - виробник камери" -#: ../src/gui/gtkentry.c:220 +#: ../src/gui/gtkentry.c:223 msgid "$(EXIF.MODEL) - camera model" msgstr "$(EXIF.MODEL) - модель камери" -#: ../src/gui/gtkentry.c:221 +#: ../src/gui/gtkentry.c:224 msgid "$(EXIF.LENS) - lens" msgstr "$(EXIF.LENS) - об'єктив" -#: ../src/gui/gtkentry.c:222 +#: ../src/gui/gtkentry.c:225 msgid "$(LONGITUDE) - longitude" msgstr "$(LONGITUDE) - довгота" -#: ../src/gui/gtkentry.c:223 +#: ../src/gui/gtkentry.c:226 msgid "$(LATITUDE) - latitude" msgstr "$(LATITUDE) - широта" -#: ../src/gui/gtkentry.c:224 +#: ../src/gui/gtkentry.c:227 msgid "$(ELEVATION) - elevation" msgstr "$(ELEVATION) - висота" -#: ../src/gui/gtkentry.c:225 +#: ../src/gui/gtkentry.c:228 msgid "$(STARS) - star rating as number (-1 for rejected)" msgstr "$(STARS) - рейтинг в зірках як число (-1 означає відхилення)" -#: ../src/gui/gtkentry.c:226 +#: ../src/gui/gtkentry.c:229 msgid "$(RATING.ICONS) - star/reject rating in icon form" msgstr "" "$(RATING.ICONS) - рейтинг в зірках чи статус відхилення у вигляді значка" -#: ../src/gui/gtkentry.c:227 +#: ../src/gui/gtkentry.c:230 msgid "$(LABELS) - color labels as text" msgstr "$(LABELS) - кольорові позначки як текст" -#: ../src/gui/gtkentry.c:228 +#: ../src/gui/gtkentry.c:231 msgid "$(LABELS.ICONS) - color labels as icons" msgstr "$(LABELS.ICONS) - кольорові позначки як значки" -#: ../src/gui/gtkentry.c:229 +#: ../src/gui/gtkentry.c:232 msgid "$(ID) - image ID" msgstr "$(ID) - ID зображення" -#: ../src/gui/gtkentry.c:230 +#: ../src/gui/gtkentry.c:233 msgid "$(TITLE) - title from metadata" msgstr "$(TITLE) - заголовок з метаданих" -#: ../src/gui/gtkentry.c:231 +#: ../src/gui/gtkentry.c:234 msgid "$(DESCRIPTION) - description from metadata" msgstr "$(DESCRIPTION) - опис із метаданих" -#: ../src/gui/gtkentry.c:232 +#: ../src/gui/gtkentry.c:235 msgid "$(CREATOR) - creator from metadata" msgstr "$(CREATOR) - автор з метаданих" -#: ../src/gui/gtkentry.c:233 +#: ../src/gui/gtkentry.c:236 msgid "$(PUBLISHER) - publisher from metadata" msgstr "$(PUBLISHER) - видавець з метаданих" -#: ../src/gui/gtkentry.c:234 +#: ../src/gui/gtkentry.c:237 msgid "$(RIGHTS) - rights from metadata" msgstr "$(RIGHTS) - права з метаданих" -#: ../src/gui/gtkentry.c:235 +#: ../src/gui/gtkentry.c:238 msgid "$(USERNAME) - login name" msgstr "$(USERNAME) - ім'я облікового запису" -#: ../src/gui/gtkentry.c:236 +#: ../src/gui/gtkentry.c:239 msgid "$(FOLDER.PICTURES) - pictures folder" msgstr "$(FOLDER.PICTURES) - каталог із зображеннями" -#: ../src/gui/gtkentry.c:237 +#: ../src/gui/gtkentry.c:240 msgid "$(FOLDER.HOME) - home folder" msgstr "$(FOLDER.HOME) - домашній каталог" -#: ../src/gui/gtkentry.c:238 +#: ../src/gui/gtkentry.c:241 msgid "$(FOLDER.DESKTOP) - desktop folder" msgstr "$(FOLDER.DESKTOP) - каталог робочого стола" -#: ../src/gui/gtkentry.c:239 +#: ../src/gui/gtkentry.c:242 msgid "$(OPENCL.ACTIVATED) - whether OpenCL is activated" msgstr "$(OPENCL.ACTIVATED) - чи активовано OpenCL" -#: ../src/gui/gtkentry.c:240 +#: ../src/gui/gtkentry.c:243 msgid "$(CATEGORY0(category)) - subtag of level 0 in hierarchical tags" msgstr "$(CATEGORY0(category)) - нульовий рівень в ієрархічних тегах" -#: ../src/gui/gtkentry.c:241 +#: ../src/gui/gtkentry.c:244 msgid "$(TAGS) - tags as set in metadata settings" msgstr "$(TAGS) - теги" -#: ../src/gui/gtkentry.c:242 +#: ../src/gui/gtkentry.c:245 msgid "$(DARKTABLE.NAME) - darktable name" msgstr "$(DARKTABLE.NAME) - ім'я darktable" -#: ../src/gui/gtkentry.c:243 +#: ../src/gui/gtkentry.c:246 msgid "$(DARKTABLE.VERSION) - current darktable version" msgstr "$(DARKTABLE.VERSION) - версія поточного екземпляра darktable" -#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:255 +#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:248 msgid "grid" msgstr "Сітка" @@ -10718,11 +11223,11 @@ msgstr "Глобальні налаштування накладання напрямних" #: ../src/gui/guides.c:710 ../src/gui/guides.c:719 ../src/gui/guides.c:727 -#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2648 +#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2494 msgid "guide lines" msgstr "Напрямні" -#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2092 +#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2145 msgid "flip" msgstr "Віддзеркалити" @@ -10738,8 +11243,8 @@ msgid "vertically" msgstr "Вертикально" -#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6285 ../src/iop/clipping.c:2096 -#: ../src/iop/colorbalance.c:1917 +#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6232 ../src/iop/clipping.c:2149 +#: ../src/iop/colorbalance.c:1892 msgid "both" msgstr "Обидва" @@ -10787,26 +11292,26 @@ msgid "select parts to paste" msgstr "Виберіть частини для вставки" -#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:517 +#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:524 msgid "select _all" msgstr "Вибрати _все" -#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:518 +#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:525 msgid "select _none" msgstr "_Нічого не вибирати" -#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:593 -#: ../src/gui/styles_dialog.c:615 +#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:605 +#: ../src/gui/styles_dialog.c:627 msgid "include" msgstr "Включити" -#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:669 -#: ../src/gui/styles_dialog.c:675 +#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:681 +#: ../src/gui/styles_dialog.c:687 msgid "item" msgstr "Зміни в модулі" -#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:682 -#: ../src/gui/styles_dialog.c:691 +#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:694 +#: ../src/gui/styles_dialog.c:703 msgid "mask" msgstr "Маска" @@ -10860,12 +11365,12 @@ msgid "interface language" msgstr "Мова інтерфейсу" -#: ../src/gui/preferences.c:289 +#: ../src/gui/preferences.c:290 msgid "double-click to reset to the system language" msgstr "" "Подвійний клік скидає налаштування до системної мови операційної системи" -#: ../src/gui/preferences.c:291 +#: ../src/gui/preferences.c:292 msgid "" "set the language of the user interface. the system default is marked with an " "* (needs a restart)" @@ -10873,27 +11378,27 @@ "мова інтерфейсу darktable. умовчання системи позначено * (потребує " "перезапуску)" -#: ../src/gui/preferences.c:300 +#: ../src/gui/preferences.c:301 msgid "theme" msgstr "Тема" -#: ../src/gui/preferences.c:328 +#: ../src/gui/preferences.c:331 msgid "set the theme for the user interface" msgstr "Встановлює тему інтерфейсу користувача" -#: ../src/gui/preferences.c:341 ../src/gui/preferences.c:348 +#: ../src/gui/preferences.c:344 ../src/gui/preferences.c:351 msgid "use system font size" msgstr "Використовувати системний розмір шрифту" -#: ../src/gui/preferences.c:357 ../src/gui/preferences.c:364 +#: ../src/gui/preferences.c:360 ../src/gui/preferences.c:367 msgid "font size in points" msgstr "Розмір шрифту в пунктах" -#: ../src/gui/preferences.c:369 +#: ../src/gui/preferences.c:372 msgid "GUI controls and text DPI" msgstr "dpi елементів інтерфейсу" -#: ../src/gui/preferences.c:376 +#: ../src/gui/preferences.c:379 msgid "" "adjust the global GUI resolution to rescale controls, buttons, labels, etc.\n" "increase for a magnified GUI, decrease to fit more content in window.\n" @@ -10911,79 +11416,63 @@ "(потребує перезапуску)." #. checkbox to allow user to modify theme with user.css -#: ../src/gui/preferences.c:385 +#: ../src/gui/preferences.c:388 msgid "modify selected theme with CSS tweaks below" msgstr "Застосувати вказані нижче зміни CSS до вибраної теми" -#: ../src/gui/preferences.c:393 +#: ../src/gui/preferences.c:396 msgid "modify theme with CSS keyed below (saved to user.css)" msgstr "Модифікувати тему з CSS введеними нижче (буде збережено до user.css)" -#: ../src/gui/preferences.c:415 +#: ../src/gui/preferences.c:418 msgctxt "usercss" msgid "save CSS and apply" msgstr "Зберегти CSS і застосувати" -#: ../src/gui/preferences.c:420 +#: ../src/gui/preferences.c:423 msgid "click to save and apply the CSS tweaks entered in this editor" msgstr "" "Натисніть, щоб зберегти та застосувати налаштування CSS, введені в цьому " "редакторі" -#: ../src/gui/preferences.c:422 +#: ../src/gui/preferences.c:425 msgid "open help page for CSS tweaks" msgstr "Відкрити довідкову сторінку для налаштувань CSS" #. load default text with some pointers -#: ../src/gui/preferences.c:443 +#: ../src/gui/preferences.c:446 msgid "ERROR Loading user.css" msgstr "ПОМИЛКА завантаження user.css" #. load default text -#: ../src/gui/preferences.c:452 +#: ../src/gui/preferences.c:455 msgid "Enter CSS theme tweaks here" msgstr "Вказуйте зміни до CSS теми тут" -#: ../src/gui/preferences.c:488 +#: ../src/gui/preferences.c:491 msgid "darktable preferences" msgstr "Налаштування darktable" -#: ../src/gui/preferences.c:533 -msgid "processing" -msgstr "Обробка" - -#: ../src/gui/preferences.c:534 -msgid "security" -msgstr "Безпека" - -#: ../src/gui/preferences.c:535 -msgid "storage" -msgstr "Збереження даних" - -#: ../src/gui/preferences.c:536 -msgid "miscellaneous" -msgstr "Різне" - -#: ../src/gui/preferences.c:561 +#: ../src/gui/preferences.c:559 msgid "darktable needs to be restarted for settings to take effect" msgstr "darktable потрібно перезапустити, щоб налаштування набрали чинності" #. exif -#: ../src/gui/preferences.c:820 ../src/gui/presets.c:644 -#: ../src/libs/metadata_view.c:137 +#: ../src/gui/preferences.c:818 ../src/gui/presets.c:647 +#: ../src/libs/metadata_view.c:139 msgid "model" msgstr "Модель" -#: ../src/gui/preferences.c:824 ../src/gui/presets.c:652 -#: ../src/libs/metadata_view.c:138 +#: ../src/gui/preferences.c:822 ../src/gui/presets.c:655 +#: ../src/libs/metadata_view.c:140 msgid "maker" msgstr "Виробник" -#: ../src/gui/preferences.c:861 +#: ../src/gui/preferences.c:859 msgid "search presets list" msgstr "Пошук у списку пресетів" -#: ../src/gui/preferences.c:862 +#: ../src/gui/preferences.c:860 msgid "" "incrementally search the list of presets\n" "press up or down keys to cycle through matches" @@ -10991,70 +11480,70 @@ "Інкрементний пошук у списку пресетів\n" "Натискайте клавіші вгору або вниз, щоб переключатися між збігами" -#: ../src/gui/preferences.c:868 +#: ../src/gui/preferences.c:866 msgctxt "preferences" msgid "import..." msgstr "Імпортувати..." -#: ../src/gui/preferences.c:872 +#: ../src/gui/preferences.c:870 msgctxt "preferences" msgid "export..." msgstr "Експортувати..." -#: ../src/gui/preferences.c:1031 +#: ../src/gui/preferences.c:1030 #, c-format msgid "failed to import preset %s" msgstr "Не вдається імпортувати пресет %s" -#: ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1041 msgid "select preset(s) to import" msgstr "Виберіть пресет(и) для імпорту" -#: ../src/gui/preferences.c:1043 ../src/libs/collect.c:408 -#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:929 -#: ../src/libs/import.c:1506 ../src/libs/import.c:1610 ../src/libs/styles.c:527 +#: ../src/gui/preferences.c:1042 ../src/libs/collect.c:425 +#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:930 +#: ../src/libs/import.c:1515 ../src/libs/import.c:1619 ../src/libs/styles.c:529 msgid "_open" msgstr "_Відкрити" -#: ../src/gui/preferences.c:1052 +#: ../src/gui/preferences.c:1051 msgid "darktable preset files" msgstr "Файли пресетів darktable" -#: ../src/gui/preferences.c:1057 ../src/iop/lut3d.c:1577 -#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:945 -#: ../src/libs/styles.c:541 +#: ../src/gui/preferences.c:1056 ../src/iop/lut3d.c:1591 +#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:946 +#: ../src/libs/styles.c:543 msgid "all files" msgstr "Всі файли" -#: ../src/gui/presets.c:59 +#: ../src/gui/presets.c:61 msgid "non-raw" msgstr "Не-raw" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:332 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:336 msgid "raw" msgstr "raw" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:333 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:337 msgid "HDR" msgstr "HDR" -#: ../src/gui/presets.c:59 ../src/iop/monochrome.c:77 ../src/libs/image.c:608 -#: ../src/libs/metadata_view.c:339 +#: ../src/gui/presets.c:61 ../src/iop/monochrome.c:77 ../src/libs/image.c:679 +#: ../src/libs/metadata_view.c:343 msgid "monochrome" msgstr "Монохром" -#: ../src/gui/presets.c:151 +#: ../src/gui/presets.c:153 #, c-format msgid "preset `%s' is write-protected, can't delete!" msgstr "Пресет `%s' захищено від запису, не вдається видалити!" -#: ../src/gui/presets.c:157 ../src/gui/presets.c:461 ../src/libs/lib.c:238 -#: ../src/libs/modulegroups.c:3701 +#: ../src/gui/presets.c:159 ../src/gui/presets.c:463 ../src/libs/lib.c:238 +#: ../src/libs/modulegroups.c:3703 msgid "delete preset?" msgstr "Видалити пресет?" -#: ../src/gui/presets.c:158 ../src/gui/presets.c:462 ../src/libs/lib.c:239 -#: ../src/libs/modulegroups.c:3702 +#: ../src/gui/presets.c:160 ../src/gui/presets.c:464 ../src/libs/lib.c:239 +#: ../src/libs/modulegroups.c:3704 #, c-format msgid "do you really want to delete the preset `%s'?" msgstr "Ви дійсно хочете видалити пресет `%s'?" @@ -11065,25 +11554,25 @@ #. clang-format on #. create a shortcut for the new entry #. then show edit dialog -#: ../src/gui/presets.c:200 ../src/gui/presets.c:1035 ../src/gui/presets.c:1038 -#: ../src/gui/presets.c:1041 ../src/libs/lib.c:188 ../src/libs/lib.c:205 +#: ../src/gui/presets.c:202 ../src/gui/presets.c:1022 ../src/gui/presets.c:1025 +#: ../src/gui/presets.c:1028 ../src/libs/lib.c:188 ../src/libs/lib.c:205 #: ../src/libs/lib.c:213 ../src/libs/lib.c:216 msgid "new preset" msgstr "Новий пресет" -#: ../src/gui/presets.c:207 +#: ../src/gui/presets.c:209 msgid "please give preset a name" msgstr "Будь ласка, дайте пресету ім'я" -#: ../src/gui/presets.c:212 +#: ../src/gui/presets.c:214 msgid "unnamed preset" msgstr "Пресет без імені" -#: ../src/gui/presets.c:241 +#: ../src/gui/presets.c:243 msgid "overwrite preset?" msgstr "Перезаписати пресет?" -#: ../src/gui/presets.c:242 +#: ../src/gui/presets.c:244 #, c-format msgid "" "preset `%s' already exists.\n" @@ -11092,38 +11581,43 @@ "Пресет `%s' вже існує.\n" "Хочете перезаписати?" -#: ../src/gui/presets.c:420 ../src/imageio/storage/disk.c:123 -#: ../src/imageio/storage/gallery.c:110 ../src/imageio/storage/latex.c:109 +#: ../src/gui/presets.c:422 ../src/imageio/storage/disk.c:198 +#: ../src/imageio/storage/gallery.c:150 ../src/imageio/storage/latex.c:146 msgid "_select as output destination" msgstr "_Вибрати як каталог для експорту" -#: ../src/gui/presets.c:429 +#: ../src/gui/presets.c:431 #, c-format msgid "preset %s was successfully exported" msgstr "Пресет %s було успішно експортовано" -#: ../src/gui/presets.c:557 +#: ../src/gui/presets.c:559 #, c-format msgid "edit `%s' for module `%s'" msgstr "Редагувати `%s' для модуля `%s'" -#: ../src/gui/presets.c:561 +#: ../src/gui/presets.c:563 msgid "_export..." msgstr "_Експортувати..." -#: ../src/gui/presets.c:585 +#: ../src/gui/presets.c:564 ../src/libs/tagging.c:1489 +#: ../src/libs/tagging.c:1580 +msgid "_delete" +msgstr "Видалити" + +#: ../src/gui/presets.c:588 msgid "name of the preset" msgstr "Ім'я пресету" -#: ../src/gui/presets.c:594 +#: ../src/gui/presets.c:597 msgid "description or further information" msgstr "Опис або подальша інформація" -#: ../src/gui/presets.c:598 +#: ../src/gui/presets.c:601 msgid "reset all module parameters to their default values" msgstr "Скинути всі параметри модуля до значень за замовчуванням" -#: ../src/gui/presets.c:601 +#: ../src/gui/presets.c:604 msgid "" "the parameters will be reset to their default values, which may be " "automatically set based on image metadata" @@ -11131,15 +11625,15 @@ "Параметри буде скинуто до значень за замовчуванням, які можуть бути " "автоматично встановлені на основі метаданих зображення" -#: ../src/gui/presets.c:607 +#: ../src/gui/presets.c:610 msgid "auto apply this preset to matching images" msgstr "Автоматично застосувати цей пресет до відповідних зображень" -#: ../src/gui/presets.c:611 +#: ../src/gui/presets.c:614 msgid "only show this preset for matching images" msgstr "Показувати цей пресет лише для відповідних зображень" -#: ../src/gui/presets.c:613 +#: ../src/gui/presets.c:616 msgid "" "be very careful with this option. this might be the last time you see your " "preset." @@ -11147,29 +11641,29 @@ "Будьте дуже обережні з цією опцією. Це може бути останній раз, коли ви " "бачите ваш пресет." -#: ../src/gui/presets.c:643 +#: ../src/gui/presets.c:646 #, no-c-format msgid "string to match model (use % as wildcard)" msgstr "" "Шаблон, який відповідає моделі камери (символ % відповідає будь-якому тексту)" -#: ../src/gui/presets.c:651 +#: ../src/gui/presets.c:654 #, no-c-format msgid "string to match maker (use % as wildcard)" msgstr "" "Шаблон, який відповідає виробнику (символ % відповідає будь-якому тексту)" -#: ../src/gui/presets.c:659 +#: ../src/gui/presets.c:662 #, no-c-format msgid "string to match lens (use % as wildcard)" msgstr "" "Шаблон, який відповідає об'єктиву (символ % відповідає будь-якому тексту)" -#: ../src/gui/presets.c:669 +#: ../src/gui/presets.c:672 msgid "minimum ISO value" msgstr "Мінімальне значення ISO" -#: ../src/gui/presets.c:675 +#: ../src/gui/presets.c:678 msgid "" "maximum ISO value\n" "if left blank, it is equivalent to no upper limit" @@ -11177,71 +11671,71 @@ "Максимальне значення ISO\n" "Порожнє поле означає, що верхня межа відсутня" -#: ../src/gui/presets.c:688 +#: ../src/gui/presets.c:691 msgid "minimum exposure time" msgstr "Мінімальний час експозиції" -#: ../src/gui/presets.c:689 +#: ../src/gui/presets.c:692 msgid "maximum exposure time" msgstr "Максимальний час експозиції" -#: ../src/gui/presets.c:705 +#: ../src/gui/presets.c:708 msgid "minimum aperture value" msgstr "Мінімальне значення діафрагми" -#: ../src/gui/presets.c:706 +#: ../src/gui/presets.c:709 msgid "maximum aperture value" msgstr "Максимальне значення діафрагми" -#: ../src/gui/presets.c:724 +#: ../src/gui/presets.c:727 msgid "minimum focal length" msgstr "Мінімальна фокусна відстань" -#: ../src/gui/presets.c:725 +#: ../src/gui/presets.c:728 msgid "maximum focal length" msgstr "Максимальна фокусна відстань" #. raw/hdr/ldr/mono/color -#: ../src/gui/presets.c:733 ../src/imageio/format/j2k.c:650 +#: ../src/gui/presets.c:736 msgid "format" msgstr "Формат" -#: ../src/gui/presets.c:738 +#: ../src/gui/presets.c:741 msgid "select image types you want this preset to be available for" msgstr "" "Виберіть типи зображень, для яких ви хочете зробити доступним цей пресет" -#: ../src/gui/presets.c:751 ../src/libs/filtering.c:1201 +#: ../src/gui/presets.c:754 ../src/libs/filtering.c:1263 msgid "and" msgstr "і" -#: ../src/gui/presets.c:795 ../src/gui/presets.c:847 +#: ../src/gui/presets.c:798 ../src/gui/presets.c:850 msgid "∞" msgstr "∞" -#: ../src/gui/presets.c:979 +#: ../src/gui/presets.c:966 #, c-format msgid "preset `%s' is write-protected! can't edit it!" msgstr "Пресет `%s' захищено від запису! Не вдається його змінити!" -#: ../src/gui/presets.c:1003 ../src/libs/lib.c:158 +#: ../src/gui/presets.c:990 ../src/libs/lib.c:158 msgid "update preset?" msgstr "Оновити пресет?" -#: ../src/gui/presets.c:1004 ../src/libs/lib.c:159 +#: ../src/gui/presets.c:991 ../src/libs/lib.c:159 #, c-format msgid "do you really want to update the preset `%s'?" msgstr "Ви дійсно хочете оновити пресет `%s'?" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(first)" msgstr "(перший)" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(last)" msgstr "(останній)" -#: ../src/gui/presets.c:1165 +#: ../src/gui/presets.c:1152 #, c-format msgid "" "preset %s\n" @@ -11250,63 +11744,63 @@ "Пресет %s\n" "%s" -#: ../src/gui/presets.c:1166 +#: ../src/gui/presets.c:1153 msgid "no presets" msgstr "Немає пресетів" -#: ../src/gui/presets.c:1199 ../src/iop/basecurve.c:528 -#: ../src/iop/basecurve.c:532 ../src/iop/basecurve.c:535 +#: ../src/gui/presets.c:1188 ../src/iop/basecurve.c:575 +#: ../src/iop/basecurve.c:579 ../src/iop/basecurve.c:582 msgid "display-referred default" msgstr "Замовчування процесу \"на основі відображення\"" -#: ../src/gui/presets.c:1201 ../src/iop/channelmixerrgb.c:332 -#: ../src/iop/channelmixerrgb.c:336 ../src/iop/channelmixerrgb.c:339 -#: ../src/iop/exposure.c:297 ../src/iop/exposure.c:301 -#: ../src/iop/exposure.c:304 ../src/iop/filmicrgb.c:3248 -#: ../src/iop/filmicrgb.c:3252 ../src/iop/filmicrgb.c:3255 -#: ../src/iop/sigmoid.c:134 ../src/iop/sigmoid.c:138 ../src/iop/sigmoid.c:141 +#: ../src/gui/presets.c:1190 ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:400 ../src/iop/channelmixerrgb.c:403 +#: ../src/iop/exposure.c:319 ../src/iop/exposure.c:323 +#: ../src/iop/exposure.c:326 ../src/iop/filmicrgb.c:3311 +#: ../src/iop/filmicrgb.c:3315 ../src/iop/filmicrgb.c:3318 +#: ../src/iop/sigmoid.c:240 ../src/iop/sigmoid.c:243 ../src/iop/sigmoid.c:245 msgid "scene-referred default" msgstr "Замовчування процесу \"на основі сцен\"" -#: ../src/gui/presets.c:1393 ../src/libs/modulegroups.c:3781 -#: ../src/libs/modulegroups.c:3790 +#: ../src/gui/presets.c:1394 ../src/libs/modulegroups.c:3783 +#: ../src/libs/modulegroups.c:3792 msgid "manage module layouts" msgstr "Керування розкладкою модулів" -#: ../src/gui/presets.c:1402 +#: ../src/gui/presets.c:1403 msgid "manage quick presets" msgstr "Керування швидкими пресетами" -#: ../src/gui/presets.c:1586 +#: ../src/gui/presets.c:1587 msgid "manage quick presets list..." msgstr "Список швидких пресетів..." -#: ../src/gui/presets.c:1727 +#: ../src/gui/presets.c:1728 msgid "(default)" msgstr "(за замовчуванням)" -#: ../src/gui/presets.c:1754 +#: ../src/gui/presets.c:1755 msgid "disabled: wrong module version" msgstr "Вимкнено: неправильна версія модуля" -#: ../src/gui/presets.c:1776 ../src/libs/lib.c:551 +#: ../src/gui/presets.c:1777 ../src/libs/lib.c:551 msgid "edit this preset.." msgstr "Редагувати цей пресет..." -#: ../src/gui/presets.c:1781 ../src/libs/lib.c:555 +#: ../src/gui/presets.c:1782 ../src/libs/lib.c:555 msgid "delete this preset" msgstr "Видалити цей пресет" -#: ../src/gui/presets.c:1788 ../src/libs/lib.c:563 +#: ../src/gui/presets.c:1789 ../src/libs/lib.c:563 msgid "store new preset.." msgstr "Зберегти новий пресет..." -#: ../src/gui/presets.c:1796 ../src/libs/lib.c:576 +#: ../src/gui/presets.c:1797 ../src/libs/lib.c:576 msgid "update preset" msgstr "Оновити пресет" #: ../src/gui/styles_dialog.c:221 ../src/libs/styles.c:437 -#: ../src/libs/styles.c:620 +#: ../src/libs/styles.c:622 msgid "overwrite style?" msgstr "Перезаписати стиль?" @@ -11332,39 +11826,39 @@ msgid "style %s was successfully saved" msgstr "Стиль %s було успішно збережено" -#: ../src/gui/styles_dialog.c:505 +#: ../src/gui/styles_dialog.c:512 msgid "edit style" msgstr "Редагувати стиль" -#: ../src/gui/styles_dialog.c:506 +#: ../src/gui/styles_dialog.c:513 msgid "duplicate style" msgstr "Зробити копію стилю" -#: ../src/gui/styles_dialog.c:507 +#: ../src/gui/styles_dialog.c:514 msgid "creates a duplicate of the style before applying changes" msgstr "Створює дублікат стилю перед застосуванням змін" -#: ../src/gui/styles_dialog.c:511 +#: ../src/gui/styles_dialog.c:518 msgid "create new style" msgstr "Створити новий стиль" -#: ../src/gui/styles_dialog.c:549 +#: ../src/gui/styles_dialog.c:557 msgid "enter a name for the new style" msgstr "Вкажіть ім'я для нового стилю" -#: ../src/gui/styles_dialog.c:554 +#: ../src/gui/styles_dialog.c:565 msgid "enter a description for the new style, this description is searchable" msgstr "Вкажіть опис для нового стилю, цей опис доступний для пошуку" -#: ../src/gui/styles_dialog.c:593 +#: ../src/gui/styles_dialog.c:605 msgid "keep" msgstr "Зберегти" -#: ../src/gui/styles_dialog.c:820 +#: ../src/gui/styles_dialog.c:832 msgid "can't create style out of unaltered image" msgstr "Неможливо створити стиль із незміненого зображення" -#: ../src/imageio/imageio.c:804 +#: ../src/imageio/imageio.c:816 #, c-format msgid "" "failed to allocate memory for %s, please lower the threads used for export " @@ -11373,91 +11867,115 @@ "Не вдалося виділити пам'ять для %s, будь ласка, зменште кількість потоків, " "що використовуються для експорту, або придбайте більше пам'яті." -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "thumbnail export" msgstr "Експорт мініатюр" -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "export" msgstr "Експорт" -#: ../src/imageio/imageio.c:819 +#: ../src/imageio/imageio.c:831 #, c-format msgid "cannot find the style '%s' to apply during export." msgstr "Не вдається знайти стиль '%s', який застосовується при експорті." -#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:536 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/imageio_libraw.c:295 +msgid "" +"<span foreground='red'><b>WARNING</b></span>: camera is not fully supported!" +msgstr "" +"<span foreground='red'><b>УВАГА</b></span>: камера підтримується не повністю!" + +#: ../src/imageio/imageio_libraw.c:297 +#, c-format +msgid "" +"colors for `%s' could be misrepresented,\n" +"and edits might not be compatible with future versions." +msgstr "" +"Кольори для '%s' можуть бути представлені неправильно,\n" +"а редагування можуть бути несумісними з майбутніми версіями." + +#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:641 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "8 bit" msgstr "8 біт" -#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:567 msgid "10 bit" msgstr "10 біт" -#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:567 msgid "12 bit" msgstr "12 біт" -#: ../src/imageio/format/avif.c:431 +#: ../src/imageio/format/avif.c:110 ../src/imageio/format/webp.c:416 +msgid "lossless" +msgstr "Без втрат" + +#: ../src/imageio/format/avif.c:112 ../src/imageio/format/webp.c:416 +msgid "lossy" +msgstr "З втратами" + +#: ../src/imageio/format/avif.c:463 msgid "invalid AVIF bit depth!" msgstr "Недійсна бітова глибина AVIF!" -#: ../src/imageio/format/avif.c:694 -msgid "AVIF" -msgstr "AVIF" - #. Bit depth combo box -#: ../src/imageio/format/avif.c:766 ../src/imageio/format/exr.cc:565 -#: ../src/imageio/format/jxl.c:555 ../src/imageio/format/pdf.c:661 -#: ../src/imageio/format/png.c:534 ../src/imageio/format/tiff.c:843 +#: ../src/imageio/format/avif.c:800 ../src/imageio/format/exr.cc:601 +#: ../src/imageio/format/jxl.c:566 ../src/imageio/format/pdf.c:661 +#: ../src/imageio/format/png.c:639 ../src/imageio/format/tiff.c:900 #: ../src/imageio/format/xcf.c:354 msgid "bit depth" msgstr "Бітова глибина" -#: ../src/imageio/format/avif.c:779 +#: ../src/imageio/format/avif.c:813 msgid "color information stored in an image, higher is better" msgstr "Інформація про колір, яка зберігається в зображенні, вище - краще" -#: ../src/imageio/format/avif.c:787 +#. +#. * Color mode combo box +#. +#. shortfile option combo box +#: ../src/imageio/format/avif.c:820 ../src/imageio/format/tiff.c:944 +msgid "B&W as grayscale" +msgstr "Ч/Б як відтінки сірого" + +#: ../src/imageio/format/avif.c:821 ../src/imageio/format/tiff.c:945 msgid "saving as grayscale will reduce the size for black & white images" msgstr "Збереження у відтінках сірого зменшить розмір чорно-білих зображень" -#: ../src/imageio/format/avif.c:789 -msgid "RGB colors" -msgstr "RGB кольори" - -#: ../src/imageio/format/avif.c:789 -msgid "grayscale" -msgstr "Відтінки сірого" - #. #. * Tiling combo box #. -#: ../src/imageio/format/avif.c:799 +#: ../src/imageio/format/avif.c:832 msgid "tiling" msgstr "Тайлінг" -#: ../src/imageio/format/avif.c:800 +#: ../src/imageio/format/avif.c:833 msgid "" "tile an image into segments.\n" "\n" -"makes encoding faster. the impact on quality reduction is negligible, but " -"increases the file size." +"makes encoding faster, but increases the file size. the loss of image " +"quality is negligible." msgstr "" "Ділить зображення на сегменти.\n" "\n" -"Робить кодування швидшим. Вплив на зниження якості незначний, але збільшує " -"розмір файлу." +"Пришвидшує кодування, але збільшує розмір файлу. Втрата якості зображення " +"незначна." -#: ../src/imageio/format/avif.c:817 ../src/imageio/format/webp.c:383 -msgid "compression type" -msgstr "Тип стиснення" +#. compression +#. Compression method combo box +#: ../src/imageio/format/avif.c:850 ../src/imageio/format/exr.cc:611 +#: ../src/imageio/format/pdf.c:676 ../src/imageio/format/png.c:653 +#: ../src/imageio/format/tiff.c:923 ../src/imageio/format/webp.c:414 +#: ../src/libs/masks.c:111 +msgid "compression" +msgstr "Стиснення" -#: ../src/imageio/format/avif.c:825 +#: ../src/imageio/format/avif.c:858 msgid "the compression for the image" msgstr "Тип стиснення для зображення" @@ -11466,36 +11984,28 @@ #. step #. default #. digits -#: ../src/imageio/format/avif.c:842 ../src/imageio/format/j2k.c:661 -#: ../src/imageio/format/jpeg.c:587 ../src/imageio/format/jxl.c:579 -#: ../src/imageio/format/webp.c:394 ../src/libs/camera.c:564 +#: ../src/imageio/format/avif.c:878 ../src/imageio/format/j2k.c:679 +#: ../src/imageio/format/jpeg.c:584 ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/webp.c:425 ../src/libs/camera.c:564 msgid "quality" msgstr "Якість" -#: ../src/imageio/format/avif.c:847 +#: ../src/imageio/format/avif.c:881 msgid "" "the quality of an image, less quality means fewer details.\n" "\n" -"the following applies only to lossy setting\n" -"\n" -"pixelformat based on quality:\n" +"pixel format is controlled by quality:\n" "\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" msgstr "" "Якість зображення, менша якість означає менше деталей.\n" "\n" -"Наступне стосується лише стиснення з втратами\n" +"Піксельний формат контролюється якістю:\n" "\n" -"Піксельний формат на основі якості:\n" -"\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" #: ../src/imageio/format/copy.c:109 ../src/libs/copy_history.c:370 -#: ../src/libs/image.c:583 +#: ../src/libs/image.c:647 msgid "copy" msgstr "Копіювати" @@ -11511,120 +12021,141 @@ msgid "the selected output profile doesn't work well with EXR" msgstr "Вибраний вихідний профіль погано працює з EXR" -#: ../src/imageio/format/exr.cc:540 +#: ../src/imageio/format/exr.cc:576 msgid "OpenEXR" msgstr "OpenEXR" -#: ../src/imageio/format/exr.cc:567 +#: ../src/imageio/format/exr.cc:603 msgid "16 bit (float)" msgstr "16 біт (рухома кома)" -#: ../src/imageio/format/exr.cc:567 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/format/exr.cc:603 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "32 bit (float)" msgstr "32 біти (рухома кома)" -#. compression -#. Compression method combo box -#: ../src/imageio/format/exr.cc:575 ../src/imageio/format/pdf.c:676 -#: ../src/imageio/format/png.c:548 ../src/imageio/format/tiff.c:866 -#: ../src/libs/masks.c:110 -msgid "compression" -msgstr "Стиснення" - -#: ../src/imageio/format/exr.cc:577 ../src/imageio/format/pdf.c:682 -#: ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/exr.cc:613 ../src/imageio/format/pdf.c:682 +#: ../src/imageio/format/tiff.c:924 msgid "uncompressed" msgstr "Без стиснення" -#: ../src/imageio/format/exr.cc:578 +#: ../src/imageio/format/exr.cc:614 msgid "RLE" msgstr "RLE" -#: ../src/imageio/format/exr.cc:579 +#: ../src/imageio/format/exr.cc:615 msgid "ZIPS" msgstr "ZIPS" -#: ../src/imageio/format/exr.cc:580 +#: ../src/imageio/format/exr.cc:616 msgid "ZIP" msgstr "ZIP" -#: ../src/imageio/format/exr.cc:581 +#: ../src/imageio/format/exr.cc:617 msgid "PIZ" msgstr "PIZ" -#: ../src/imageio/format/exr.cc:582 +#: ../src/imageio/format/exr.cc:618 msgid "PXR24" msgstr "PXR24" -#: ../src/imageio/format/exr.cc:583 +#: ../src/imageio/format/exr.cc:619 msgid "B44" msgstr "B44" -#: ../src/imageio/format/exr.cc:584 +#: ../src/imageio/format/exr.cc:620 msgid "B44A" msgstr "B44A" -#: ../src/imageio/format/exr.cc:585 +#: ../src/imageio/format/exr.cc:621 msgid "DWAA" msgstr "DWAA" -#: ../src/imageio/format/exr.cc:586 +#: ../src/imageio/format/exr.cc:622 msgid "DWAB" msgstr "DWAB" -#: ../src/imageio/format/j2k.c:618 +#: ../src/imageio/format/j2k.c:648 msgid "JPEG 2000 (12-bit)" msgstr "JPEG 2000 (12 біт)" -#: ../src/imageio/format/j2k.c:652 -msgid "jp2" -msgstr "jp2" - -#: ../src/imageio/format/j2k.c:667 +#: ../src/imageio/format/j2k.c:684 msgid "DCP mode" msgstr "режим DCP" -#: ../src/imageio/format/j2k.c:670 +#: ../src/imageio/format/j2k.c:687 msgid "Cinema2K, 24FPS" msgstr "Cinema2K, 24FPS" -#: ../src/imageio/format/j2k.c:671 +#: ../src/imageio/format/j2k.c:688 msgid "Cinema2K, 48FPS" msgstr "Cinema2K, 48FPS" -#: ../src/imageio/format/j2k.c:672 +#: ../src/imageio/format/j2k.c:689 msgid "Cinema4K, 24FPS" msgstr "Cinema4K, 24FPS" -#: ../src/imageio/format/jpeg.c:564 +#: ../src/imageio/format/jpeg.c:546 msgid "JPEG (8-bit)" msgstr "JPEG (8 біт)" -#: ../src/imageio/format/jxl.c:471 -msgid "JPEG XL" -msgstr "JPEG XL" +#: ../src/imageio/format/jpeg.c:594 +msgid "chroma subsampling" +msgstr "Колірна субдискретизація" + +#: ../src/imageio/format/jpeg.c:595 +msgid "" +"chroma subsampling setting for JPEG encoder.\n" +"auto - use subsampling determined by the quality value\n" +"4:4:4 - no chroma subsampling\n" +"4:4:0 - color sampling rate halved vertically\n" +"4:2:2 - color sampling rate halved horizontally\n" +"4:2:0 - color sampling rate halved horizontally and vertically" +msgstr "" +"Колірна субдискретизація для кодера JPEG.\n" +"Авто - використовувати субдискретизацію, визначену значенням якості\n" +"4:4:4 - відсутня субдискретизація\n" +"4:4:0 - частота дискретизації кольорів зменшена вдвічі по вертикалі\n" +"4:2:2 - частота дискретизації кольорів зменшена вдвічі по горизонталі\n" +"4:2:0 - частота дискретизації кольорів зменшена вдвічі по горизонталі та " +"вертикалі" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:4" +msgstr "4:4:4" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:0" +msgstr "4:4:0" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:2" +msgstr "4:2:2" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:0" +msgstr "4:2:0" -#: ../src/imageio/format/jxl.c:556 ../src/imageio/format/pdf.c:81 -#: ../src/imageio/format/png.c:536 ../src/imageio/format/tiff.c:847 +#: ../src/imageio/format/jxl.c:567 ../src/imageio/format/pdf.c:81 +#: ../src/imageio/format/png.c:641 ../src/imageio/format/tiff.c:904 #: ../src/imageio/format/xcf.c:357 msgid "16 bit" msgstr "16 біт" #. Pixel format combo box -#: ../src/imageio/format/jxl.c:562 ../src/imageio/format/tiff.c:852 +#: ../src/imageio/format/jxl.c:573 ../src/imageio/format/tiff.c:909 msgid "pixel type" msgstr "Тип пікселя" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "unsigned integer" msgstr "Беззнакове ціле" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "floating point" msgstr "Рухома кома" -#: ../src/imageio/format/jxl.c:580 +#: ../src/imageio/format/jxl.c:591 msgid "" "the quality of the output image\n" "0-29 = very lossy\n" @@ -11636,11 +12167,11 @@ "30-99 = порівнянна з відповідною якістю JPEG\n" "100 = без втрат (лише ціла бітова глибина)" -#: ../src/imageio/format/jxl.c:589 +#: ../src/imageio/format/jxl.c:600 msgid "encoding color profile" msgstr "Колірний профіль кодування" -#: ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/jxl.c:601 msgid "" "the color profile used by the encoder\n" "permit internal XYB color space conversion for more efficient lossy " @@ -11654,20 +12185,20 @@ "або забезпечує відсутність перетворення, щоб зберегти оригінальний колірний " "простір зображення (неявно встановлюється для кодування без втрат)" -#: ../src/imageio/format/jxl.c:593 +#: ../src/imageio/format/jxl.c:604 msgid "internal" msgstr "Внутрішній" -#: ../src/imageio/format/jxl.c:593 ../src/libs/duplicate.c:399 -#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:782 +#: ../src/imageio/format/jxl.c:604 ../src/libs/duplicate.c:405 +#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:840 msgid "original" msgstr "Оригінал" -#: ../src/imageio/format/jxl.c:607 +#: ../src/imageio/format/jxl.c:618 msgid "encoding effort" msgstr "Зусилля кодування" -#: ../src/imageio/format/jxl.c:608 +#: ../src/imageio/format/jxl.c:619 msgid "" "the effort used to encode the image, higher efforts will have better results " "at the expense of longer encoding times" @@ -11675,11 +12206,11 @@ "Зусилля, використане для кодування зображення, більші зусилля дадуть кращі " "результати за рахунок довшого часу кодування" -#: ../src/imageio/format/jxl.c:619 +#: ../src/imageio/format/jxl.c:630 msgid "decoding speed" msgstr "Швидкість декодування" -#: ../src/imageio/format/jxl.c:620 +#: ../src/imageio/format/jxl.c:631 msgid "the preferred decoding speed with some sacrifice of quality" msgstr "Бажана швидкість декодування з певною втратою якості" @@ -11691,9 +12222,9 @@ msgid "invalid border size, using 0" msgstr "Некоректний розмір облямівки, використовується 0" -#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:316 -#: ../src/imageio/storage/email.c:137 ../src/imageio/storage/gallery.c:331 -#: ../src/imageio/storage/gallery.c:370 ../src/imageio/storage/piwigo.c:1202 +#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:460 +#: ../src/imageio/storage/email.c:187 ../src/imageio/storage/gallery.c:409 +#: ../src/imageio/storage/gallery.c:450 ../src/imageio/storage/piwigo.c:1236 #, c-format msgid "could not export to file `%s'!" msgstr "Не вдається експортувати в файл `%s'!" @@ -11747,8 +12278,8 @@ "Приклади: 10 mm, 1 inch" #. dpi -#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1127 -#: ../src/libs/export.c:1150 +#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1218 +#: ../src/libs/export.c:1246 msgid "dpi" msgstr "DPI" @@ -11810,7 +12341,7 @@ "Без стиснення - швидко, але великі файли\n" "Deflate - менші файли, але повільніше" -#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:924 msgid "deflate" msgstr "Deflate" @@ -11841,60 +12372,23 @@ msgid "debug" msgstr "Debug" -#: ../src/imageio/format/pfm.c:120 -msgid "PFM" -msgstr "PFM" - -#: ../src/imageio/format/png.c:493 -msgid "PNG" -msgstr "PNG" - #: ../src/imageio/format/ppm.c:111 msgid "PPM (16-bit)" msgstr "PPM (16 біт)" -#: ../src/imageio/format/tiff.c:228 -msgid "will export as a grayscale image" -msgstr "Експортуватиметься у відтінках сірого" +#: ../src/imageio/format/tiff.c:246 +msgid "not a B&W image, will not export as grayscale" +msgstr "Не чорно-біле зображення, не буде експортовано у відтінки сірого" -#: ../src/imageio/format/tiff.c:774 -msgid "TIFF" -msgstr "TIFF" - -#: ../src/imageio/format/tiff.c:868 +#: ../src/imageio/format/tiff.c:925 msgid "deflate with predictor" msgstr "Deflate з предиктором" -#: ../src/imageio/format/tiff.c:878 +#: ../src/imageio/format/tiff.c:935 msgid "compression level" msgstr "Рівень стиснення" -#. shortfile option combo box -#: ../src/imageio/format/tiff.c:887 -msgid "b&w image" -msgstr "Ч/Б зображення" - -#: ../src/imageio/format/tiff.c:888 -msgid "write RGB colors" -msgstr "Записати RGB кольори" - -#: ../src/imageio/format/tiff.c:888 -msgid "write grayscale" -msgstr "Записати відтінки сірого" - -#: ../src/imageio/format/webp.c:349 -msgid "WebP" -msgstr "WebP" - -#: ../src/imageio/format/webp.c:385 -msgid "lossy" -msgstr "З втратами" - -#: ../src/imageio/format/webp.c:385 -msgid "lossless" -msgstr "Без втрат" - -#: ../src/imageio/format/webp.c:397 +#: ../src/imageio/format/webp.c:426 msgid "" "for lossy, 0 gives the smallest size and 100 the best quality.\n" "for lossless, 0 is the fastest but gives larger files compared\n" @@ -11906,11 +12400,11 @@ "порівнянні\n" "з найповільнішим значенням 100." -#: ../src/imageio/format/webp.c:407 +#: ../src/imageio/format/webp.c:436 msgid "image hint" msgstr "Підказка типу зображення" -#: ../src/imageio/format/webp.c:408 +#: ../src/imageio/format/webp.c:437 msgid "" "image characteristics hint for the underlying encoder.\n" "picture: digital picture, like portrait, inner shot\n" @@ -11922,15 +12416,15 @@ "photo: фотографія просто неба, з природним освітленням\n" "graphic: зображення з дискретними тонами (графіки тощо)" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "picture" msgstr "picture" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "photo" msgstr "photo" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "graphic" msgstr "graphic" @@ -11938,12 +12432,12 @@ msgid "XCF" msgstr "XCF" -#: ../src/imageio/storage/disk.c:71 ../src/libs/export.c:1040 +#: ../src/imageio/storage/disk.c:74 ../src/libs/export.c:1119 msgid "file on disk" msgstr "Файл на диску" -#: ../src/imageio/storage/disk.c:169 ../src/imageio/storage/gallery.c:155 -#: ../src/imageio/storage/latex.c:154 +#: ../src/imageio/storage/disk.c:251 ../src/imageio/storage/gallery.c:204 +#: ../src/imageio/storage/latex.c:191 msgid "" "enter the path where to put exported images\n" "variables support bash like string manipulation\n" @@ -11953,38 +12447,41 @@ "Змінні підтримують маніпулювання рядками в стилі bash\n" "Введіть '$(', щоб активувати завершення та переглянути список змінних" -#: ../src/imageio/storage/disk.c:182 ../src/imageio/storage/piwigo.c:1079 +#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/piwigo.c:1113 msgid "on conflict" msgstr "При конфлікті" -#: ../src/imageio/storage/disk.c:185 +#: ../src/imageio/storage/disk.c:268 msgid "create unique filename" msgstr "Створити унікальне ім'я файлу" #. DT_COPY_HISTORY_APPEND -#: ../src/imageio/storage/disk.c:186 ../src/imageio/storage/piwigo.c:1083 -#: ../src/libs/copy_history.c:404 ../src/libs/image.c:601 -#: ../src/libs/styles.c:440 ../src/libs/styles.c:623 ../src/libs/styles.c:850 +#: ../src/imageio/storage/disk.c:269 ../src/imageio/storage/piwigo.c:1117 +#: ../src/libs/copy_history.c:404 ../src/libs/image.c:670 +#: ../src/libs/styles.c:854 msgid "overwrite" msgstr "Перезаписати" -#: ../src/imageio/storage/disk.c:187 ../src/imageio/storage/piwigo.c:1081 -#: ../src/libs/styles.c:439 ../src/libs/styles.c:622 +#: ../src/imageio/storage/disk.c:270 +msgid "overwrite if changed" +msgstr "Перезаписати у разі зміни" + +#: ../src/imageio/storage/disk.c:271 ../src/imageio/storage/piwigo.c:1115 msgid "skip" msgstr "Пропустити" -#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/gallery.c:253 -#: ../src/imageio/storage/latex.c:252 +#: ../src/imageio/storage/disk.c:371 ../src/imageio/storage/gallery.c:326 +#: ../src/imageio/storage/latex.c:289 #, c-format msgid "could not create directory `%s'!" msgstr "Не вдається створити каталог `%s'!" -#: ../src/imageio/storage/disk.c:272 +#: ../src/imageio/storage/disk.c:382 #, c-format msgid "could not write to directory `%s'!" msgstr "Не вдається записати в каталог `%s'!" -#: ../src/imageio/storage/disk.c:302 +#: ../src/imageio/storage/disk.c:419 #, c-format msgid "%d/%d skipping `%s'" msgid_plural "%d/%d skipping `%s'" @@ -11992,8 +12489,16 @@ msgstr[1] "%d/%d пропущено `%s'" msgstr[2] "%d/%d пропущено `%s'" -#: ../src/imageio/storage/disk.c:321 ../src/imageio/storage/email.c:144 -#: ../src/imageio/storage/gallery.c:378 ../src/imageio/storage/latex.c:340 +#: ../src/imageio/storage/disk.c:441 +#, c-format +msgid "%d/%d skipping (not modified since export) `%s'" +msgid_plural "%d/%d skipping (not modified since export) `%s'" +msgstr[0] "%d/%d пропущено (не змінено після експорту) '%s'" +msgstr[1] "%d/%d пропущено (не змінено після експорту) '%s'" +msgstr[2] "%d/%d пропущено (не змінено після експорту) '%s'" + +#: ../src/imageio/storage/disk.c:465 ../src/imageio/storage/email.c:194 +#: ../src/imageio/storage/gallery.c:458 ../src/imageio/storage/latex.c:377 #, c-format msgid "%d/%d exported to `%s'" msgid_plural "%d/%d exported to `%s'" @@ -12001,7 +12506,7 @@ msgstr[1] "%d/%d експортовано в `%s'" msgstr[2] "%d/%d експортовано в `%s'" -#: ../src/imageio/storage/disk.c:380 +#: ../src/imageio/storage/disk.c:530 msgid "" "you are going to export in overwrite mode, this will overwrite any existing " "images\n" @@ -12013,23 +12518,33 @@ "\n" "Ви дійсно хочете продовжити?" -#: ../src/imageio/storage/email.c:52 +#: ../src/imageio/storage/email.c:57 msgid "send as email" msgstr "Відправити як електронну пошту" -#: ../src/imageio/storage/email.c:198 +#. Unlikely in normal Windows installations, but let's notify the user if it happens +#: ../src/imageio/storage/email.c:265 +msgid "could not open mapi32.dll" +msgstr "Не вдалося відкрити mapi32.dll" + +#. Even more unlikely +#: ../src/imageio/storage/email.c:275 +msgid "could not get SendMail function" +msgstr "Не вдалося отримати функцію SendMail" + +#: ../src/imageio/storage/email.c:319 ../src/imageio/storage/email.c:409 msgid "images exported from darktable" msgstr "Зображення експортовані з darktable" -#: ../src/imageio/storage/email.c:251 +#: ../src/imageio/storage/email.c:388 ../src/imageio/storage/email.c:467 msgid "could not launch email client!" msgstr "Не вдається запустити поштовий клієнт!" -#: ../src/imageio/storage/gallery.c:73 +#: ../src/imageio/storage/gallery.c:76 msgid "website gallery" msgstr "Веб-галерея" -#: ../src/imageio/storage/gallery.c:171 +#: ../src/imageio/storage/gallery.c:224 msgid "enter the title of the website" msgstr "Назва веб-галереї" @@ -12037,149 +12552,148 @@ msgid "LaTeX book template" msgstr "Шаблон книги LaTeX" -#: ../src/imageio/storage/latex.c:172 +#: ../src/imageio/storage/latex.c:209 msgid "enter the title of the book" msgstr "Назва книги" -#: ../src/imageio/storage/piwigo.c:522 +#: ../src/imageio/storage/piwigo.c:525 msgid "authenticated" msgstr "Автентифіковано" -#: ../src/imageio/storage/piwigo.c:532 ../src/imageio/storage/piwigo.c:547 -#: ../src/imageio/storage/piwigo.c:559 +#: ../src/imageio/storage/piwigo.c:536 ../src/imageio/storage/piwigo.c:552 +#: ../src/imageio/storage/piwigo.c:565 msgid "not authenticated" msgstr "Не автентифіковано" -#: ../src/imageio/storage/piwigo.c:538 +#: ../src/imageio/storage/piwigo.c:542 msgid "not authenticated, cannot reach server" msgstr "Не автентифіковано, не вдається отримати доступ до сервера" -#: ../src/imageio/storage/piwigo.c:587 ../src/imageio/storage/piwigo.c:675 +#: ../src/imageio/storage/piwigo.c:595 ../src/imageio/storage/piwigo.c:684 msgid "create new album" msgstr "Створити новий альбом" -#: ../src/imageio/storage/piwigo.c:676 +#: ../src/imageio/storage/piwigo.c:685 msgid "---" msgstr "---" -#: ../src/imageio/storage/piwigo.c:721 +#: ../src/imageio/storage/piwigo.c:735 msgid "cannot refresh albums" msgstr "Не вдається оновити альбоми" -#: ../src/imageio/storage/piwigo.c:929 +#: ../src/imageio/storage/piwigo.c:950 msgid "Piwigo" msgstr "Piwigo" -#: ../src/imageio/storage/piwigo.c:954 +#: ../src/imageio/storage/piwigo.c:976 msgid "accounts" msgstr "Облікові записи" -#: ../src/imageio/storage/piwigo.c:972 ../src/imageio/storage/piwigo.c:978 +#: ../src/imageio/storage/piwigo.c:995 ../src/imageio/storage/piwigo.c:1004 msgid "server" msgstr "Сервер " -#: ../src/imageio/storage/piwigo.c:974 ../src/imageio/storage/piwigo.c:989 +#: ../src/imageio/storage/piwigo.c:998 msgid "" "the server name\n" "default protocol is https\n" -"specify http:// if non secure server" +"specify insecure protocol http:// explicitly if that protocol is required" msgstr "" "Ім'я сервера\n" "Протокол за замовчуванням - https\n" -"Вказуйте http:// при потребі" +"Вказуйте незахищений протокол http:// явно, якщо це необхідно" -#: ../src/imageio/storage/piwigo.c:987 ../src/imageio/storage/piwigo.c:993 +#: ../src/imageio/storage/piwigo.c:1014 ../src/imageio/storage/piwigo.c:1021 msgid "user" msgstr "Користувач " -#: ../src/imageio/storage/piwigo.c:1000 ../src/imageio/storage/piwigo.c:1005 +#: ../src/imageio/storage/piwigo.c:1029 ../src/imageio/storage/piwigo.c:1034 msgid "password" msgstr "Пароль " #. login button -#: ../src/imageio/storage/piwigo.c:1010 +#: ../src/imageio/storage/piwigo.c:1039 msgid "login" msgstr "Увійти" -#: ../src/imageio/storage/piwigo.c:1011 +#: ../src/imageio/storage/piwigo.c:1040 msgid "Piwigo login" msgstr "Вхід до Piwigo" #. permissions list -#: ../src/imageio/storage/piwigo.c:1025 +#: ../src/imageio/storage/piwigo.c:1056 msgid "visible to" msgstr "Видимий для" -#: ../src/imageio/storage/piwigo.c:1027 +#: ../src/imageio/storage/piwigo.c:1058 msgid "everyone" msgstr "кожного" -#: ../src/imageio/storage/piwigo.c:1028 +#: ../src/imageio/storage/piwigo.c:1059 msgid "contacts" msgstr "контактів" -#: ../src/imageio/storage/piwigo.c:1029 +#: ../src/imageio/storage/piwigo.c:1060 msgid "friends" msgstr "друзів" -#: ../src/imageio/storage/piwigo.c:1030 +#: ../src/imageio/storage/piwigo.c:1061 msgid "family" msgstr "родини" -#: ../src/imageio/storage/piwigo.c:1031 +#: ../src/imageio/storage/piwigo.c:1062 msgid "you" msgstr "вас" #. Available albums -#: ../src/imageio/storage/piwigo.c:1038 +#: ../src/imageio/storage/piwigo.c:1069 msgid "album" msgstr "Альбом" -#: ../src/imageio/storage/piwigo.c:1045 +#: ../src/imageio/storage/piwigo.c:1076 msgid "refresh album list" msgstr "Оновити список альбомів" #. Album title -#: ../src/imageio/storage/piwigo.c:1063 +#: ../src/imageio/storage/piwigo.c:1096 msgid "new album" msgstr "Новий альбом" -#. parent album list #. Available albums -#: ../src/imageio/storage/piwigo.c:1071 +#: ../src/imageio/storage/piwigo.c:1105 msgid "parent album" msgstr "Батьківський альбом" -#: ../src/imageio/storage/piwigo.c:1075 +#: ../src/imageio/storage/piwigo.c:1109 msgid "click login button to start" msgstr "Натисніть кнопку \"увійти\"" -#: ../src/imageio/storage/piwigo.c:1080 +#: ../src/imageio/storage/piwigo.c:1114 msgid "don't check" msgstr "Не перевіряти" -#: ../src/imageio/storage/piwigo.c:1082 +#: ../src/imageio/storage/piwigo.c:1116 msgid "update metadata" msgstr "Оновити метадані" -#: ../src/imageio/storage/piwigo.c:1221 +#: ../src/imageio/storage/piwigo.c:1255 msgid "cannot create a new Piwigo album!" msgstr "Не вдається створити новий альбом Piwigo!" -#: ../src/imageio/storage/piwigo.c:1240 +#: ../src/imageio/storage/piwigo.c:1274 msgid "could not update to Piwigo!" msgstr "Не вдається оновити в Piwigo!" -#: ../src/imageio/storage/piwigo.c:1255 +#: ../src/imageio/storage/piwigo.c:1290 msgid "could not upload to Piwigo!" msgstr "Не вдається вивантажити до Piwigo!" -#: ../src/imageio/storage/piwigo.c:1284 +#: ../src/imageio/storage/piwigo.c:1319 #, c-format msgid "%d/%d skipped (already exists)" msgstr "%d/%d пропущено (вже існує)" -#: ../src/imageio/storage/piwigo.c:1290 +#: ../src/imageio/storage/piwigo.c:1325 #, c-format msgid "%d/%d exported to Piwigo webalbum" msgid_plural "%d/%d exported to Piwigo webalbum" @@ -12200,54 +12714,54 @@ msgstr "Повернути або спотворити перспективу" #: ../src/iop/ashift.c:131 ../src/iop/channelmixer.c:139 -#: ../src/iop/channelmixerrgb.c:232 ../src/iop/clipping.c:320 -#: ../src/iop/colorbalance.c:161 ../src/iop/colorbalancergb.c:185 +#: ../src/iop/channelmixerrgb.c:233 ../src/iop/clipping.c:363 +#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:185 #: ../src/iop/colorchecker.c:130 ../src/iop/colorcorrection.c:77 -#: ../src/iop/crop.c:144 ../src/iop/lut3d.c:141 +#: ../src/iop/crop.c:134 ../src/iop/lut3d.c:142 ../src/iop/primaries.c:80 msgid "corrective or creative" msgstr "коригуюче чи креативне" -#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:148 -#: ../src/iop/bilateral.cc:101 ../src/iop/bilateral.cc:103 -#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:233 -#: ../src/iop/channelmixerrgb.c:235 ../src/iop/clipping.c:321 -#: ../src/iop/clipping.c:323 ../src/iop/colorbalancergb.c:186 -#: ../src/iop/colorin.c:136 ../src/iop/crop.c:145 ../src/iop/crop.c:147 -#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:728 -#: ../src/iop/denoiseprofile.c:730 ../src/iop/diffuse.c:146 +#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:174 +#: ../src/iop/bilateral.cc:103 ../src/iop/bilateral.cc:105 +#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:236 ../src/iop/clipping.c:364 +#: ../src/iop/clipping.c:366 ../src/iop/colorbalancergb.c:186 +#: ../src/iop/colorin.c:136 ../src/iop/crop.c:135 ../src/iop/crop.c:137 +#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:780 +#: ../src/iop/denoiseprofile.c:782 ../src/iop/diffuse.c:146 #: ../src/iop/diffuse.c:148 ../src/iop/exposure.c:132 ../src/iop/exposure.c:134 #: ../src/iop/flip.c:111 ../src/iop/flip.c:112 ../src/iop/hazeremoval.c:113 -#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:242 ../src/iop/lens.cc:244 -#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/retouch.c:210 -#: ../src/iop/retouch.c:212 ../src/iop/sigmoid.c:103 -#: ../src/iop/splittoning.c:104 ../src/iop/splittoning.c:106 -#: ../src/iop/spots.c:70 ../src/iop/spots.c:72 ../src/iop/toneequal.c:325 -#: ../src/iop/velvia.c:106 ../src/iop/velvia.c:108 +#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:263 ../src/iop/lens.cc:265 +#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/primaries.c:81 +#: ../src/iop/primaries.c:83 ../src/iop/retouch.c:210 ../src/iop/retouch.c:212 +#: ../src/iop/sigmoid.c:209 ../src/iop/splittoning.c:106 +#: ../src/iop/splittoning.c:108 ../src/iop/spots.c:70 ../src/iop/spots.c:72 +#: ../src/iop/toneequal.c:333 ../src/iop/velvia.c:99 ../src/iop/velvia.c:101 msgid "linear, RGB, scene-referred" msgstr "лінійний простір, RGB, на основі сцен" -#: ../src/iop/ashift.c:133 ../src/iop/borders.c:200 ../src/iop/clipping.c:322 -#: ../src/iop/crop.c:146 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 +#: ../src/iop/ashift.c:133 ../src/iop/borders.c:325 ../src/iop/clipping.c:365 +#: ../src/iop/crop.c:136 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 msgid "geometric, RGB" msgstr "геометрична, RGB" -#: ../src/iop/ashift.c:2820 +#: ../src/iop/ashift.c:2866 msgid "automatic cropping failed" msgstr "Не вдалося автоматично обрізати" -#: ../src/iop/ashift.c:3234 ../src/iop/ashift.c:3286 ../src/iop/ashift.c:3334 +#: ../src/iop/ashift.c:3276 ../src/iop/ashift.c:3328 ../src/iop/ashift.c:3375 msgid "data pending - please repeat" msgstr "В очікуванні даних - будь ласка, повторіть" -#: ../src/iop/ashift.c:3243 +#: ../src/iop/ashift.c:3285 msgid "could not detect structural data in image" msgstr "Не вдалося виявити структурні дані на зображенні" -#: ../src/iop/ashift.c:3255 +#: ../src/iop/ashift.c:3297 msgid "could not run outlier removal" msgstr "Не вдалося виконати видалення структури" -#: ../src/iop/ashift.c:3434 +#: ../src/iop/ashift.c:3474 #, c-format msgid "" "not enough structure for automatic correction\n" @@ -12256,41 +12770,41 @@ "Недостатньо структури для автоматичної корекції\n" "Мінімально необхідна кількість ліній у кожному відповідному напрямку: %d" -#: ../src/iop/ashift.c:3440 +#: ../src/iop/ashift.c:3480 msgid "automatic correction failed, please correct manually" msgstr "Не вдалося виконати автоматичне виправлення. виправте вручну" -#: ../src/iop/ashift.c:5096 +#: ../src/iop/ashift.c:5077 #, c-format msgid "only %d lines can be saved in parameters" msgstr "Максимальна кількість ліній, яку можна зберегти в параметрах: %d" -#: ../src/iop/ashift.c:5201 +#: ../src/iop/ashift.c:5157 #, c-format -msgid "rotation adjusted by %3.1f° to %3.1f°" -msgstr "Обертання скориговано на %3.1f° до %3.1f°" +msgid "rotation adjusted by %3.2f° to %3.2f°" +msgstr "Обертання скориговано на %3.2f° до %3.2f°" -#: ../src/iop/ashift.c:5852 ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 -#: ../src/iop/ashift.c:5961 +#: ../src/iop/ashift.c:5797 ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 +#: ../src/iop/ashift.c:5906 #, c-format msgid "lens shift (%s)" msgstr "Зміщення об'єктива (%s)" -#: ../src/iop/ashift.c:6125 +#: ../src/iop/ashift.c:6072 msgid "manual perspective" msgstr "Ручна підгонка" -#: ../src/iop/ashift.c:6170 +#: ../src/iop/ashift.c:6117 msgctxt "section" msgid "perspective" msgstr "Перспектива" -#: ../src/iop/ashift.c:6177 ../src/iop/ashift.c:6286 ../src/iop/ashift.c:6288 -#: ../src/iop/ashift.c:6290 +#: ../src/iop/ashift.c:6124 ../src/iop/ashift.c:6233 ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6237 msgid "structure" msgstr "Структура" -#: ../src/iop/ashift.c:6212 +#: ../src/iop/ashift.c:6159 msgid "" "rotate image\n" "right-click and drag to define a horizontal or vertical line by drawing on " @@ -12300,19 +12814,19 @@ "Клікніть правою кнопкою миші та перетягніть, щоб визначити горизонтальну або " "вертикальну лінію шляхом малювання на зображенні" -#: ../src/iop/ashift.c:6215 ../src/iop/ashift.c:6217 +#: ../src/iop/ashift.c:6162 ../src/iop/ashift.c:6164 msgid "apply lens shift correction in one direction" msgstr "Застосувати корекцію зміщення об'єктива в одному напрямку" -#: ../src/iop/ashift.c:6219 +#: ../src/iop/ashift.c:6166 msgid "shear the image along one diagonal" msgstr "Корекція зображення вздовж однієї з діагоналей" -#: ../src/iop/ashift.c:6220 ../src/iop/clipping.c:2117 +#: ../src/iop/ashift.c:6167 ../src/iop/clipping.c:2170 msgid "automatically crop to avoid black edges" msgstr "Автоматично обрізати, щоб уникнути чорних країв" -#: ../src/iop/ashift.c:6221 +#: ../src/iop/ashift.c:6168 msgid "" "lens model of the perspective correction: generic or according to the focal " "length" @@ -12320,13 +12834,13 @@ "Модель об'єктива для корекції перспективи: загальна або залежна від фокусної " "відстані" -#: ../src/iop/ashift.c:6224 +#: ../src/iop/ashift.c:6171 msgid "focal length of the lens, default value set from EXIF data if available" msgstr "" "Фокусна відстань об'єктива, значення за замовчуванням установлюється з даних " "EXIF, якщо є" -#: ../src/iop/ashift.c:6227 +#: ../src/iop/ashift.c:6174 msgid "" "crop factor of the camera sensor, default value set from EXIF data if " "available, manual setting is often required" @@ -12334,7 +12848,7 @@ "Кроп-фактор сенсора камери, значення за замовчуванням установлюється з даних " "EXIF, якщо є. Часто потрібне ручне встановлення" -#: ../src/iop/ashift.c:6231 +#: ../src/iop/ashift.c:6178 msgid "" "the level of lens dependent correction, set to maximum for full lens " "dependency, set to zero for the generic case" @@ -12342,13 +12856,13 @@ "Рівень залежності корекції від об'єктива, встановлюйте на максимум для " "повної залежності від об'єктива, встановлюйте на нуль для загального випадку" -#: ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6182 msgid "adjust aspect ratio of image by horizontal and vertical scaling" msgstr "" "Регулювати співвідношення сторін зображення за допомогою горизонтального та " "вертикального масштабування" -#: ../src/iop/ashift.c:6237 +#: ../src/iop/ashift.c:6184 msgid "" "automatically correct for vertical perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12358,7 +12872,7 @@ "Ctrl+клік - лише обертання\n" "Shift+клік - лише зміщення об'єктива" -#: ../src/iop/ashift.c:6241 +#: ../src/iop/ashift.c:6188 msgid "" "automatically correct for horizontal perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12368,7 +12882,7 @@ "Ctrl+клік - лише обертання\n" "Shift+клік - лише зміщення об'єктива" -#: ../src/iop/ashift.c:6245 +#: ../src/iop/ashift.c:6192 msgid "" "automatically correct for vertical and horizontal perspective distortions, " "fitting rotation, lens shift in both directions, and shear\n" @@ -12382,7 +12896,7 @@ "Shift+клік - лише зміщення об'єктива\n" "Ctrl+Shift+клік - лише обертання та зміщення об'єктива" -#: ../src/iop/ashift.c:6252 +#: ../src/iop/ashift.c:6199 msgid "" "automatically analyse line structure in image\n" "ctrl+click for an additional edge enhancement\n" @@ -12394,225 +12908,225 @@ "Shift+клік для додаткового покращення деталей\n" "Ctrl+Shift+клік для поєднання обох методів" -#: ../src/iop/ashift.c:6257 +#: ../src/iop/ashift.c:6204 msgid "manually define perspective rectangle" msgstr "Вручну визначити прямокутник перспективи" -#: ../src/iop/ashift.c:6258 +#: ../src/iop/ashift.c:6205 msgid "manually draw structure lines" msgstr "Вручну намалювати лінії структури" -#: ../src/iop/ashift.c:6287 +#: ../src/iop/ashift.c:6234 msgid "rectangle" msgstr "Прямокутник" -#: ../src/iop/ashift.c:6289 +#: ../src/iop/ashift.c:6236 msgid "lines" msgstr "Лінії" -#: ../src/iop/ashift.c:6323 ../src/iop/clipping.c:3343 +#: ../src/iop/ashift.c:6270 ../src/iop/clipping.c:3383 #, c-format msgid "[%s] define/rotate horizon" msgstr "[%s] визначити/повернути горизонт" -#: ../src/iop/ashift.c:6326 +#: ../src/iop/ashift.c:6273 #, c-format msgid "[%s on segment] select segment" msgstr "[%s на сегменті] вибрати сегмент" -#: ../src/iop/ashift.c:6330 +#: ../src/iop/ashift.c:6277 #, c-format msgid "[%s on segment] unselect segment" msgstr "[%s на сегменті] скасувати вибір сегмента" -#: ../src/iop/ashift.c:6334 +#: ../src/iop/ashift.c:6281 #, c-format msgid "[%s] select all segments from zone" msgstr "[%s] вибрати усі сегменти із зони" -#: ../src/iop/ashift.c:6338 +#: ../src/iop/ashift.c:6285 #, c-format msgid "[%s] unselect all segments from zone" msgstr "[%s] скасувати вибір усіх сегментів із зони" -#: ../src/iop/atrous.c:123 ../src/iop/atrous.c:1638 +#: ../src/iop/atrous.c:122 ../src/iop/atrous.c:1770 msgid "contrast equalizer" msgstr "Еквалайзер контрасту" -#: ../src/iop/atrous.c:128 +#: ../src/iop/atrous.c:127 msgid "sharpness|acutance|local contrast" msgstr "sharpness|acutance|local contrast" -#: ../src/iop/atrous.c:133 +#: ../src/iop/atrous.c:132 msgid "add or remove local contrast, sharpness, acutance" msgstr "Додати або прибрати локальний контраст, різкість, гостроту" -#: ../src/iop/atrous.c:134 ../src/iop/bilateral.cc:100 ../src/iop/diffuse.c:145 +#: ../src/iop/atrous.c:133 ../src/iop/bilateral.cc:102 ../src/iop/diffuse.c:145 #: ../src/iop/exposure.c:131 ../src/iop/filmicrgb.c:352 #: ../src/iop/graduatednd.c:146 ../src/iop/negadoctor.c:146 -#: ../src/iop/rgbcurve.c:143 ../src/iop/rgblevels.c:123 ../src/iop/shadhi.c:197 -#: ../src/iop/sigmoid.c:102 ../src/iop/tonecurve.c:211 -#: ../src/iop/toneequal.c:324 +#: ../src/iop/rgbcurve.c:145 ../src/iop/rgblevels.c:125 ../src/iop/shadhi.c:144 +#: ../src/iop/sigmoid.c:209 ../src/iop/tonecurve.c:184 +#: ../src/iop/toneequal.c:332 msgid "corrective and creative" msgstr "коригуюче і креативне" -#: ../src/iop/atrous.c:135 ../src/iop/atrous.c:137 -#: ../src/iop/colorbalance.c:162 +#: ../src/iop/atrous.c:134 ../src/iop/atrous.c:136 +#: ../src/iop/colorbalance.c:164 msgid "linear, Lab, scene-referred" msgstr "лінійний простір, Lab, на основі сцен" -#: ../src/iop/atrous.c:136 ../src/iop/censorize.c:85 +#: ../src/iop/atrous.c:135 ../src/iop/censorize.c:85 #: ../src/iop/hazeremoval.c:114 msgid "frequential, RGB" msgstr "частотна, RGB" -#: ../src/iop/atrous.c:727 +#: ../src/iop/atrous.c:799 msgctxt "eq_preset" msgid "coarse" msgstr "Грубі деталі" -#: ../src/iop/atrous.c:742 +#: ../src/iop/atrous.c:815 msgid "denoise & sharpen" msgstr "Знешумлення і різкість" -#: ../src/iop/atrous.c:757 +#: ../src/iop/atrous.c:831 msgctxt "atrous" msgid "sharpen" msgstr "Збільшення різкості" -#: ../src/iop/atrous.c:772 +#: ../src/iop/atrous.c:847 msgid "denoise chroma" -msgstr "знешумлення кольорового шуму" +msgstr "Знешумлення кольорового шуму" -#: ../src/iop/atrous.c:787 +#: ../src/iop/atrous.c:863 msgid "denoise" -msgstr "знешумлення" +msgstr "Знешумлення" -#: ../src/iop/atrous.c:803 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:421 +#: ../src/iop/atrous.c:880 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:448 msgid "bloom" msgstr "Світіння" -#: ../src/iop/atrous.c:818 ../src/iop/bilat.c:169 +#: ../src/iop/atrous.c:896 ../src/iop/bilat.c:186 msgid "clarity" msgstr "Чіткість" -#: ../src/iop/atrous.c:838 +#: ../src/iop/atrous.c:917 msgid "deblur: large blur, strength 3" -msgstr "усунення розмиття: велике розмиття, інтенсивність 3" +msgstr "Усунення розмиття: велике розмиття, інтенсивність 3" -#: ../src/iop/atrous.c:855 +#: ../src/iop/atrous.c:935 msgid "deblur: medium blur, strength 3" -msgstr "усунення розмиття: середнє розмиття, інтенсивність 3" +msgstr "Усунення розмиття: середнє розмиття, інтенсивність 3" -#: ../src/iop/atrous.c:871 +#: ../src/iop/atrous.c:952 msgid "deblur: fine blur, strength 3" -msgstr "усунення розмиття: дрібне розмиття, інтенсивність 3" +msgstr "Усунення розмиття: дрібне розмиття, інтенсивність 3" -#: ../src/iop/atrous.c:889 +#: ../src/iop/atrous.c:971 msgid "deblur: large blur, strength 2" -msgstr "усунення розмиття: велике розмиття, інтенсивність 2" +msgstr "Усунення розмиття: велике розмиття, інтенсивність 2" -#: ../src/iop/atrous.c:906 +#: ../src/iop/atrous.c:989 msgid "deblur: medium blur, strength 2" -msgstr "усунення розмиття: середнє розмиття, інтенсивність 2" +msgstr "Усунення розмиття: середнє розмиття, інтенсивність 2" -#: ../src/iop/atrous.c:922 +#: ../src/iop/atrous.c:1006 msgid "deblur: fine blur, strength 2" -msgstr "усунення розмиття: дрібне розмиття, інтенсивність 2" +msgstr "Усунення розмиття: дрібне розмиття, інтенсивність 2" -#: ../src/iop/atrous.c:940 +#: ../src/iop/atrous.c:1025 msgid "deblur: large blur, strength 1" -msgstr "усунення розмиття: велике розмиття, інтенсивність 1" +msgstr "Усунення розмиття: велике розмиття, інтенсивність 1" -#: ../src/iop/atrous.c:957 +#: ../src/iop/atrous.c:1043 msgid "deblur: medium blur, strength 1" -msgstr "усунення розмиття: середнє розмиття, інтенсивність 1" +msgstr "Усунення розмиття: середнє розмиття, інтенсивність 1" -#: ../src/iop/atrous.c:973 +#: ../src/iop/atrous.c:1060 msgid "deblur: fine blur, strength 1" -msgstr "усунення розмиття: дрібне розмиття, інтенсивність 1" +msgstr "Усунення розмиття: дрібне розмиття, інтенсивність 1" -#: ../src/iop/atrous.c:1289 ../src/iop/atrous.c:1525 -#: ../src/iop/denoiseprofile.c:3510 ../src/iop/rawdenoise.c:738 +#: ../src/iop/atrous.c:1390 ../src/iop/atrous.c:1639 +#: ../src/iop/denoiseprofile.c:3514 ../src/iop/rawdenoise.c:754 msgid "coarse" msgstr "Грубі деталі" -#: ../src/iop/atrous.c:1296 ../src/iop/atrous.c:1526 -#: ../src/iop/denoiseprofile.c:3518 ../src/iop/rawdenoise.c:746 +#: ../src/iop/atrous.c:1397 ../src/iop/atrous.c:1640 +#: ../src/iop/denoiseprofile.c:3522 ../src/iop/rawdenoise.c:762 msgid "fine" msgstr "Дрібні деталі" -#: ../src/iop/atrous.c:1308 +#: ../src/iop/atrous.c:1409 msgid "contrasty" msgstr "Контрастно" -#: ../src/iop/atrous.c:1314 ../src/iop/denoiseprofile.c:3532 -#: ../src/iop/rawdenoise.c:760 +#: ../src/iop/atrous.c:1415 ../src/iop/denoiseprofile.c:3536 +#: ../src/iop/rawdenoise.c:776 msgid "noisy" msgstr "Шумно" #. case atrous_s: -#: ../src/iop/atrous.c:1317 +#: ../src/iop/atrous.c:1418 msgid "bold" msgstr "Чітко" -#: ../src/iop/atrous.c:1318 +#: ../src/iop/atrous.c:1419 msgid "dull" msgstr "Нечітко" -#: ../src/iop/atrous.c:1513 ../src/iop/atrous.c:1564 +#: ../src/iop/atrous.c:1627 ../src/iop/atrous.c:1685 msgid "boost" msgstr "Посилити" -#: ../src/iop/atrous.c:1514 +#: ../src/iop/atrous.c:1628 msgid "reduce" msgstr "Послабити" -#: ../src/iop/atrous.c:1515 +#: ../src/iop/atrous.c:1629 msgid "raise" msgstr "Підняти" -#: ../src/iop/atrous.c:1516 +#: ../src/iop/atrous.c:1630 msgid "lower" msgstr "Опустити" -#: ../src/iop/atrous.c:1523 +#: ../src/iop/atrous.c:1637 msgid "coarsest" msgstr "Найгрубші деталі" -#: ../src/iop/atrous.c:1524 +#: ../src/iop/atrous.c:1638 msgid "coarser" msgstr "Грубіші деталі" -#: ../src/iop/atrous.c:1527 +#: ../src/iop/atrous.c:1641 msgid "finer" msgstr "Дрібніші деталі" -#: ../src/iop/atrous.c:1528 +#: ../src/iop/atrous.c:1642 msgid "finest" msgstr "Найдрібніші деталі" -#: ../src/iop/atrous.c:1586 ../src/libs/export.c:1143 ../src/libs/export.c:1158 +#: ../src/iop/atrous.c:1710 ../src/libs/export.c:1239 ../src/libs/export.c:1255 msgid "x" msgstr "x" -#: ../src/iop/atrous.c:1666 ../src/iop/nlmeans.c:465 +#: ../src/iop/atrous.c:1799 ../src/iop/nlmeans.c:468 msgid "luma" msgstr "Яскравість" -#: ../src/iop/atrous.c:1666 +#: ../src/iop/atrous.c:1800 msgid "change lightness at each feature size" msgstr "Змінити яскравість в кожному частотному діапазоні" -#: ../src/iop/atrous.c:1667 +#: ../src/iop/atrous.c:1802 msgid "change color saturation at each feature size" msgstr "Змінити насиченість в кожному частотному діапазоні" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1804 msgid "edges" msgstr "Контури" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1805 msgid "" "change edge halos at each feature size\n" "only changes results of luma and chroma tabs" @@ -12620,97 +13134,97 @@ "Змінити ореоли контурів в кожному частотному діапазоні\n" "Впливає лише на результати вкладок \"яскравість\" і \"кольоровість\"" -#: ../src/iop/atrous.c:1679 ../src/iop/colorbalancergb.c:2058 -#: ../src/iop/colorzones.c:2473 ../src/iop/denoiseprofile.c:3743 -#: ../src/iop/filmicrgb.c:4407 ../src/iop/lowlight.c:823 -#: ../src/iop/rawdenoise.c:919 ../src/iop/toneequal.c:3371 +#: ../src/iop/atrous.c:1818 ../src/iop/colorbalancergb.c:2129 +#: ../src/iop/colorzones.c:2732 ../src/iop/denoiseprofile.c:3747 +#: ../src/iop/filmicrgb.c:4471 ../src/iop/lowlight.c:821 +#: ../src/iop/rawdenoise.c:935 ../src/iop/toneequal.c:3424 msgid "graph" msgstr "Діаграма" -#: ../src/iop/atrous.c:1690 ../src/iop/colorzones.c:2470 +#: ../src/iop/atrous.c:1836 ../src/iop/colorzones.c:2729 msgid "make effect stronger or weaker" msgstr "Зробити ефект сильнішим або слабшим" -#: ../src/iop/basecurve.c:213 +#: ../src/iop/basecurve.c:260 msgid "neutral" msgstr "Нейтральна" -#: ../src/iop/basecurve.c:214 +#: ../src/iop/basecurve.c:261 msgid "canon eos like" msgstr "Canon EOS" -#: ../src/iop/basecurve.c:215 +#: ../src/iop/basecurve.c:262 msgid "canon eos like alternate" msgstr "Canon EOS (альтернативна)" -#: ../src/iop/basecurve.c:216 +#: ../src/iop/basecurve.c:263 msgid "nikon like" msgstr "Nikon" -#: ../src/iop/basecurve.c:217 +#: ../src/iop/basecurve.c:264 msgid "nikon like alternate" msgstr "Nikon (альтернативна)" -#: ../src/iop/basecurve.c:218 +#: ../src/iop/basecurve.c:265 msgid "sony alpha like" msgstr "Sony Alpha" -#: ../src/iop/basecurve.c:219 +#: ../src/iop/basecurve.c:266 msgid "pentax like" msgstr "Pentax" -#: ../src/iop/basecurve.c:220 +#: ../src/iop/basecurve.c:267 msgid "ricoh like" msgstr "Ricoh" -#: ../src/iop/basecurve.c:221 +#: ../src/iop/basecurve.c:268 msgid "olympus like" msgstr "Olympus" -#: ../src/iop/basecurve.c:222 +#: ../src/iop/basecurve.c:269 msgid "olympus like alternate" msgstr "Olympus (альтернативна)" -#: ../src/iop/basecurve.c:223 +#: ../src/iop/basecurve.c:270 msgid "panasonic like" msgstr "Panasonic" -#: ../src/iop/basecurve.c:224 +#: ../src/iop/basecurve.c:271 msgid "leica like" msgstr "Leica" -#: ../src/iop/basecurve.c:225 +#: ../src/iop/basecurve.c:272 msgid "kodak easyshare like" msgstr "Kodak EasyShare" -#: ../src/iop/basecurve.c:226 +#: ../src/iop/basecurve.c:273 msgid "konica minolta like" msgstr "Konica Minolta" -#: ../src/iop/basecurve.c:227 +#: ../src/iop/basecurve.c:274 msgid "samsung like" msgstr "Samsung" -#: ../src/iop/basecurve.c:228 +#: ../src/iop/basecurve.c:275 msgid "fujifilm like" msgstr "Fujifilm" -#: ../src/iop/basecurve.c:229 +#: ../src/iop/basecurve.c:276 msgid "nokia like" msgstr "Nokia" #. clang-format off #. smoother cubic spline curve -#: ../src/iop/basecurve.c:284 ../src/iop/colorzones.c:2495 -#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1173 +#: ../src/iop/basecurve.c:331 ../src/iop/colorzones.c:2763 +#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1195 msgid "cubic spline" msgstr "Кубічний сплайн" -#: ../src/iop/basecurve.c:343 +#: ../src/iop/basecurve.c:390 msgid "base curve" msgstr "Базова крива" -#: ../src/iop/basecurve.c:350 +#: ../src/iop/basecurve.c:397 msgid "" "apply a view transform based on personal or camera manufacturer look,\n" "for corrective purposes, to prepare images for display" @@ -12719,65 +13233,65 @@ "виробника камери,\n" "з метою корекції, щоб підготувати зображення для показу" -#: ../src/iop/basecurve.c:352 ../src/iop/cacorrect.c:78 -#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:135 -#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:727 +#: ../src/iop/basecurve.c:399 ../src/iop/cacorrect.c:84 +#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:120 +#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:779 #: ../src/iop/flip.c:110 ../src/iop/hazeremoval.c:112 -#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:73 -#: ../src/iop/invert.c:119 ../src/iop/lens.cc:241 ../src/iop/nlmeans.c:95 -#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:130 -#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:94 ../src/iop/spots.c:69 -#: ../src/iop/temperature.c:212 +#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:75 +#: ../src/iop/invert.c:136 ../src/iop/lens.cc:262 ../src/iop/nlmeans.c:89 +#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:144 +#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:96 ../src/iop/spots.c:69 +#: ../src/iop/temperature.c:220 msgid "corrective" msgstr "коригуюче" -#: ../src/iop/basecurve.c:353 ../src/iop/channelmixer.c:140 -#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:142 +#: ../src/iop/basecurve.c:400 ../src/iop/channelmixer.c:140 +#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:143 #: ../src/iop/negadoctor.c:147 ../src/iop/profile_gamma.c:103 -#: ../src/iop/rgbcurve.c:144 ../src/iop/rgbcurve.c:146 -#: ../src/iop/rgblevels.c:124 ../src/iop/sigmoid.c:105 ../src/iop/soften.c:102 -#: ../src/iop/soften.c:104 +#: ../src/iop/rgbcurve.c:146 ../src/iop/rgbcurve.c:148 +#: ../src/iop/rgblevels.c:126 ../src/iop/sigmoid.c:210 ../src/iop/soften.c:104 +#: ../src/iop/soften.c:106 msgid "linear, RGB, display-referred" msgstr "лінійний простір, RGB, на основі відображення" -#: ../src/iop/basecurve.c:354 ../src/iop/basicadj.c:149 -#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:187 +#: ../src/iop/basecurve.c:401 ../src/iop/basicadj.c:175 +#: ../src/iop/colorbalance.c:165 ../src/iop/colorbalancergb.c:187 #: ../src/iop/dither.c:121 ../src/iop/filmicrgb.c:354 #: ../src/iop/graduatednd.c:148 ../src/iop/negadoctor.c:148 -#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:145 -#: ../src/iop/rgblevels.c:125 ../src/iop/sigmoid.c:104 -#: ../src/iop/vignette.c:161 ../src/iop/watermark.c:379 +#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:147 +#: ../src/iop/rgblevels.c:127 ../src/iop/sigmoid.c:210 +#: ../src/iop/vignette.c:122 ../src/iop/watermark.c:424 msgid "non-linear, RGB" msgstr "нелінійна, RGB" -#: ../src/iop/basecurve.c:355 ../src/iop/dither.c:120 ../src/iop/dither.c:122 +#: ../src/iop/basecurve.c:402 ../src/iop/dither.c:120 ../src/iop/dither.c:122 #: ../src/iop/filmicrgb.c:355 ../src/iop/graduatednd.c:149 #: ../src/iop/negadoctor.c:149 ../src/iop/profile_gamma.c:105 -#: ../src/iop/rgblevels.c:126 ../src/iop/vignette.c:160 -#: ../src/iop/vignette.c:162 ../src/iop/watermark.c:378 -#: ../src/iop/watermark.c:380 +#: ../src/iop/rgblevels.c:128 ../src/iop/vignette.c:121 +#: ../src/iop/vignette.c:123 ../src/iop/watermark.c:423 +#: ../src/iop/watermark.c:425 msgid "non-linear, RGB, display-referred" msgstr "нелінійний простір, RGB, на основі відображення" -#: ../src/iop/basecurve.c:2184 +#: ../src/iop/basecurve.c:2205 msgid "abscissa: input, ordinate: output. works on RGB channels" msgstr "абсциса: вхід, ордината: вихід. працює на RGB-каналах" -#: ../src/iop/basecurve.c:2190 ../src/iop/basicadj.c:612 -#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1072 -#: ../src/iop/tonecurve.c:1184 +#: ../src/iop/basecurve.c:2211 ../src/iop/basicadj.c:642 +#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1133 +#: ../src/iop/tonecurve.c:1206 msgid "method to preserve colors when applying contrast" msgstr "метод збереження кольорів при застосуванні контрасту" -#: ../src/iop/basecurve.c:2194 +#: ../src/iop/basecurve.c:2215 msgid "two exposures" msgstr "Дві експозиції" -#: ../src/iop/basecurve.c:2195 +#: ../src/iop/basecurve.c:2216 msgid "three exposures" msgstr "Три експозиції" -#: ../src/iop/basecurve.c:2196 +#: ../src/iop/basecurve.c:2217 msgid "" "fuse this image stopped up/down a couple of times with itself, to compress " "high dynamic range. expose for the highlights before use." @@ -12786,11 +13300,11 @@ "високий динамічний діапазон. Виставте експозицію зі збереженням світлих " "тонів перед використанням." -#: ../src/iop/basecurve.c:2201 +#: ../src/iop/basecurve.c:2222 msgid "how many stops to shift the individual exposures apart" msgstr "Скільки стопів відстані між окремими експозиціями" -#: ../src/iop/basecurve.c:2210 +#: ../src/iop/basecurve.c:2231 msgid "" "whether to shift exposure up or down (-1: reduce highlight, +1: reduce " "shadows)" @@ -12798,42 +13312,41 @@ "Чи потрібно зміщувати експозицію вгору чи вниз (-1: зменшити світлі тони, " "+1: зменшити тіні)" -#: ../src/iop/basecurve.c:2215 ../src/iop/tonecurve.c:1187 +#: ../src/iop/basecurve.c:2236 ../src/iop/tonecurve.c:1209 msgid "scale for graph" msgstr "Логарифмічна шкала графіка" -#: ../src/iop/basicadj.c:136 +#: ../src/iop/basicadj.c:162 msgid "this module is deprecated. please use the quick access panel instead." msgstr "" "Цей модуль застарілий. Краще використовувати панель швидкого доступу замість " "нього." -#: ../src/iop/basicadj.c:141 +#: ../src/iop/basicadj.c:167 msgid "basic adjustments" msgstr "Основні коригування" -#: ../src/iop/basicadj.c:146 +#: ../src/iop/basicadj.c:172 msgid "apply usual image adjustments" msgstr "Застосування звичайних коригувань зображення" -#: ../src/iop/basicadj.c:147 ../src/iop/bilat.c:102 ../src/iop/bloom.c:81 -#: ../src/iop/blurs.c:93 ../src/iop/borders.c:198 ../src/iop/censorize.c:83 -#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:97 -#: ../src/iop/colorize.c:105 ../src/iop/colormapping.c:153 -#: ../src/iop/colorzones.c:145 ../src/iop/grain.c:434 ../src/iop/highpass.c:78 -#: ../src/iop/levels.c:138 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 -#: ../src/iop/lowpass.c:134 ../src/iop/monochrome.c:98 ../src/iop/soften.c:101 -#: ../src/iop/splittoning.c:103 ../src/iop/velvia.c:105 -#: ../src/iop/vibrance.c:95 ../src/iop/vignette.c:159 -#: ../src/iop/watermark.c:377 +#: ../src/iop/basicadj.c:173 ../src/iop/bilat.c:83 ../src/iop/bloom.c:81 +#: ../src/iop/blurs.c:93 ../src/iop/borders.c:323 ../src/iop/censorize.c:83 +#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:89 +#: ../src/iop/colorize.c:98 ../src/iop/colormapping.c:153 +#: ../src/iop/colorzones.c:146 ../src/iop/grain.c:450 ../src/iop/highpass.c:78 +#: ../src/iop/levels.c:140 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 +#: ../src/iop/lowpass.c:106 ../src/iop/monochrome.c:100 ../src/iop/soften.c:103 +#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:98 ../src/iop/vibrance.c:97 +#: ../src/iop/vignette.c:120 ../src/iop/watermark.c:422 msgid "creative" msgstr "креативне" -#: ../src/iop/basicadj.c:150 ../src/iop/colorbalancergb.c:188 +#: ../src/iop/basicadj.c:176 ../src/iop/colorbalancergb.c:188 msgid "non-linear, RGB, scene-referred" msgstr "нелінійний простір, RGB, на основі сцен" -#: ../src/iop/basicadj.c:593 +#: ../src/iop/basicadj.c:623 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -12847,39 +13360,39 @@ "охопленням\n" "шляхом підштовхування значень RGB до негативних" -#: ../src/iop/basicadj.c:601 ../src/iop/exposure.c:1118 +#: ../src/iop/basicadj.c:631 ../src/iop/exposure.c:1136 msgid "adjust the exposure correction" msgstr "Відрегулювати корекцію експозиції" -#: ../src/iop/basicadj.c:605 +#: ../src/iop/basicadj.c:635 msgid "highlight compression adjustment" msgstr "Регулювання стиснення світлих тонів" -#: ../src/iop/basicadj.c:609 ../src/iop/colisa.c:308 +#: ../src/iop/basicadj.c:639 ../src/iop/colisa.c:302 msgid "contrast adjustment" msgstr "Регулювання контрасту" -#: ../src/iop/basicadj.c:617 +#: ../src/iop/basicadj.c:647 msgid "middle gray adjustment" msgstr "Регулювання середньо-сірого" -#: ../src/iop/basicadj.c:622 ../src/iop/colisa.c:309 +#: ../src/iop/basicadj.c:652 ../src/iop/colisa.c:303 msgid "brightness adjustment" msgstr "Регулювання яскравості" -#: ../src/iop/basicadj.c:625 +#: ../src/iop/basicadj.c:655 msgid "saturation adjustment" msgstr "Регулювання насиченості" -#: ../src/iop/basicadj.c:628 +#: ../src/iop/basicadj.c:658 msgid "vibrance adjustment" msgstr "Регулювання резонансу" -#: ../src/iop/basicadj.c:632 +#: ../src/iop/basicadj.c:662 msgid "apply auto exposure based on the entire image" msgstr "Застосувати автоматичну експозицію на основі всього зображення" -#: ../src/iop/basicadj.c:639 +#: ../src/iop/basicadj.c:669 msgid "" "apply auto exposure based on a region defined by the user\n" "click and drag to draw the area\n" @@ -12890,51 +13403,51 @@ "Натисніть і перетягніть, щоб намалювати область\n" "Права кнопка миші - скасувати" -#: ../src/iop/basicadj.c:647 +#: ../src/iop/basicadj.c:677 msgid "clip" msgstr "Обрізка" -#: ../src/iop/basicadj.c:649 +#: ../src/iop/basicadj.c:679 msgid "adjusts clipping value for auto exposure calculation" msgstr "Регулює значення кліппінгу для розрахунку автоматичної експозиції" #. local contrast -#: ../src/iop/bilat.c:96 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:551 +#: ../src/iop/bilat.c:77 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:578 msgid "local contrast" msgstr "Локальний контраст" -#: ../src/iop/bilat.c:101 +#: ../src/iop/bilat.c:82 msgid "manipulate local and global contrast separately" msgstr "Маніпулювати локальним та глобальним контрастом окремо" -#: ../src/iop/bilat.c:103 ../src/iop/bilat.c:105 ../src/iop/bloom.c:82 +#: ../src/iop/bilat.c:84 ../src/iop/bilat.c:86 ../src/iop/bloom.c:82 #: ../src/iop/bloom.c:84 ../src/iop/colisa.c:91 ../src/iop/colisa.c:93 -#: ../src/iop/colorcontrast.c:98 ../src/iop/colorcontrast.c:100 +#: ../src/iop/colorcontrast.c:90 ../src/iop/colorcontrast.c:92 #: ../src/iop/colorcorrection.c:78 ../src/iop/colorcorrection.c:80 -#: ../src/iop/colorize.c:108 ../src/iop/colormapping.c:156 -#: ../src/iop/colorreconstruction.c:138 ../src/iop/colorzones.c:148 -#: ../src/iop/defringe.c:85 ../src/iop/grain.c:435 ../src/iop/grain.c:437 -#: ../src/iop/levels.c:141 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 -#: ../src/iop/monochrome.c:101 ../src/iop/nlmeans.c:96 ../src/iop/nlmeans.c:98 -#: ../src/iop/shadhi.c:200 ../src/iop/tonecurve.c:214 ../src/iop/vibrance.c:98 +#: ../src/iop/colorize.c:101 ../src/iop/colormapping.c:156 +#: ../src/iop/colorreconstruction.c:123 ../src/iop/colorzones.c:149 +#: ../src/iop/defringe.c:85 ../src/iop/grain.c:451 ../src/iop/grain.c:453 +#: ../src/iop/levels.c:143 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 +#: ../src/iop/monochrome.c:103 ../src/iop/nlmeans.c:90 ../src/iop/nlmeans.c:92 +#: ../src/iop/shadhi.c:147 ../src/iop/tonecurve.c:187 ../src/iop/vibrance.c:100 msgid "non-linear, Lab, display-referred" msgstr "нелінійний простір, Lab, на основі відображення" -#: ../src/iop/bilat.c:104 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 -#: ../src/iop/colorcontrast.c:99 ../src/iop/colorcorrection.c:79 -#: ../src/iop/colorize.c:107 ../src/iop/colormapping.c:155 -#: ../src/iop/colorreconstruction.c:137 ../src/iop/colorzones.c:147 -#: ../src/iop/defringe.c:84 ../src/iop/grain.c:436 ../src/iop/levels.c:140 -#: ../src/iop/monochrome.c:100 ../src/iop/nlmeans.c:97 ../src/iop/shadhi.c:199 -#: ../src/iop/tonecurve.c:213 ../src/iop/vibrance.c:97 +#: ../src/iop/bilat.c:85 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 +#: ../src/iop/colorcontrast.c:91 ../src/iop/colorcorrection.c:79 +#: ../src/iop/colorize.c:100 ../src/iop/colormapping.c:155 +#: ../src/iop/colorreconstruction.c:122 ../src/iop/colorzones.c:148 +#: ../src/iop/defringe.c:84 ../src/iop/grain.c:452 ../src/iop/levels.c:142 +#: ../src/iop/monochrome.c:102 ../src/iop/nlmeans.c:91 ../src/iop/shadhi.c:146 +#: ../src/iop/tonecurve.c:186 ../src/iop/vibrance.c:99 msgid "non-linear, Lab" msgstr "нелінійна, Lab" -#: ../src/iop/bilat.c:178 +#: ../src/iop/bilat.c:195 msgid "HDR local tone-mapping" msgstr "HDR локальне тональне відображення" -#: ../src/iop/bilat.c:431 +#: ../src/iop/bilat.c:441 msgid "" "the filter used for local contrast enhancement. bilateral is faster but can " "lead to artifacts around edges for extreme settings." @@ -12943,31 +13456,31 @@ "білатеральний швидший, але може призвести до артефактів навколо контурів для " "екстремальних параметрів." -#: ../src/iop/bilat.c:435 ../src/iop/globaltonemap.c:635 +#: ../src/iop/bilat.c:445 ../src/iop/globaltonemap.c:668 msgid "detail" msgstr "Деталізація" -#: ../src/iop/bilat.c:438 +#: ../src/iop/bilat.c:448 msgid "changes the local contrast" msgstr "Змінює локальний контраст" -#: ../src/iop/bilat.c:453 +#: ../src/iop/bilat.c:463 msgid "feature size of local details (spatial sigma of bilateral filter)" msgstr "Розмір локальних деталей" -#: ../src/iop/bilat.c:461 +#: ../src/iop/bilat.c:471 msgid "L difference to detect edges (range sigma of bilateral filter)" msgstr "Різниця в каналі L для визначення контурів" -#: ../src/iop/bilat.c:467 +#: ../src/iop/bilat.c:477 msgid "changes the local contrast of highlights" msgstr "Корекція локального контрасту в світлих тонах" -#: ../src/iop/bilat.c:473 +#: ../src/iop/bilat.c:483 msgid "changes the local contrast of shadows" msgstr "Корекція локального контрасту в тінях" -#: ../src/iop/bilat.c:479 +#: ../src/iop/bilat.c:489 msgid "" "defines what counts as mid-tones. lower for better dynamic range compression " "(reduce shadow and highlight contrast), increase for more powerful local " @@ -12977,7 +13490,7 @@ "динамічного діапазону (зменшить контраст між тінями і світлими тонами), " "збільшення підсилить локальний контраст" -#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:396 +#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:423 msgid "surface blur" msgstr "Поверхневе розмиття" @@ -12985,24 +13498,24 @@ msgid "denoise (bilateral filter)" msgstr "Знешумлення (білатеральний фільтр)" -#: ../src/iop/bilateral.cc:99 +#: ../src/iop/bilateral.cc:101 msgid "apply edge-aware surface blur to denoise or smoothen textures" msgstr "" "Застосування розмиття поверхні з урахуванням контурів, щоб знешумити або " "згладити текстури" -#: ../src/iop/bilateral.cc:102 ../src/iop/blurs.c:93 -#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:729 -#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/soften.c:103 -#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:107 +#: ../src/iop/bilateral.cc:104 ../src/iop/blurs.c:93 +#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:781 +#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/primaries.c:82 +#: ../src/iop/soften.c:105 ../src/iop/splittoning.c:107 ../src/iop/velvia.c:100 msgid "linear, RGB" msgstr "лінійна, RGB" -#: ../src/iop/bilateral.cc:136 +#: ../src/iop/bilateral.cc:138 msgid "image too large" msgstr "Зображення занадто велике" -#: ../src/iop/bilateral.cc:137 +#: ../src/iop/bilateral.cc:139 msgid "" "this module is unable to process\n" "images with more than 2 gigapixels.\n" @@ -13012,19 +13525,19 @@ "зображення розміром понад 2 гігапікселі.\n" "Обробку пропущено." -#: ../src/iop/bilateral.cc:351 +#: ../src/iop/bilateral.cc:353 msgid "spatial extent of the gaussian" msgstr "Просторова протяжність гаусівського розмивання" -#: ../src/iop/bilateral.cc:355 +#: ../src/iop/bilateral.cc:357 msgid "how much to blur red" msgstr "Наскільки розмивати червоний" -#: ../src/iop/bilateral.cc:360 +#: ../src/iop/bilateral.cc:362 msgid "how much to blur green" msgstr "Наскільки розмивати зелений" -#: ../src/iop/bilateral.cc:365 +#: ../src/iop/bilateral.cc:367 msgid "how much to blur blue" msgstr "Наскільки розмивати синій" @@ -13032,20 +13545,20 @@ msgid "apply Orton effect for a dreamy aetherical look" msgstr "Застосувати ефект Ортона для мрійливого ефірного вигляду" -#: ../src/iop/bloom.c:368 ../src/iop/soften.c:369 ../src/libs/camera.c:567 -#: ../src/libs/masks.c:105 +#: ../src/iop/bloom.c:364 ../src/iop/soften.c:364 ../src/libs/camera.c:567 +#: ../src/libs/masks.c:106 msgid "size" msgstr "Розмір" -#: ../src/iop/bloom.c:370 +#: ../src/iop/bloom.c:366 msgid "the size of bloom" msgstr "Розмір світіння" -#: ../src/iop/bloom.c:374 +#: ../src/iop/bloom.c:370 msgid "the threshold of light" msgstr "Поріг світла" -#: ../src/iop/bloom.c:378 +#: ../src/iop/bloom.c:374 msgid "the strength of bloom" msgstr "Інтенсивність світіння" @@ -13061,268 +13574,281 @@ msgid "simulate physically-accurate lens and motion blurs" msgstr "Імітувати фізично точні розмиття об'єктива та розмиття руху" -#: ../src/iop/borders.c:187 +#: ../src/iop/borders.c:312 msgid "framing" msgstr "Обрамлення" -#: ../src/iop/borders.c:192 +#: ../src/iop/borders.c:317 msgid "borders|enlarge canvas|expand canvas" msgstr "borders|enlarge canvas|expand canvas" -#: ../src/iop/borders.c:197 +#: ../src/iop/borders.c:322 msgid "add solid borders or margins around the picture" msgstr "Додати суцільну облямівку або поля навколо зображення" -#: ../src/iop/borders.c:199 ../src/iop/borders.c:201 ../src/iop/lut3d.c:144 +#: ../src/iop/borders.c:324 ../src/iop/borders.c:326 ../src/iop/lut3d.c:145 msgid "linear or non-linear, RGB, display-referred" msgstr "лінійний або нелінійний простір, RGB, на основі відображення" -#: ../src/iop/borders.c:727 +#: ../src/iop/borders.c:737 msgid "15:10 postcard white" msgstr "15:10, листівка біла" -#: ../src/iop/borders.c:732 +#: ../src/iop/borders.c:742 msgid "15:10 postcard black" msgstr "15:10, листівка чорна" -#: ../src/iop/borders.c:942 -msgid "size of the border in percent of the full image" -msgstr "Розмір облямівки в процентах від повного зображення" +#: ../src/iop/borders.c:948 +msgid "which dimension to use for the size calculation" +msgstr "Який вимір використовувати для обчислення розміру" + +#: ../src/iop/borders.c:954 +msgid "size of the border in percent of the chosen basis" +msgstr "Розмір облямівки в процентах від вибраного базису" -#: ../src/iop/borders.c:944 ../src/iop/clipping.c:2218 ../src/iop/crop.c:1224 +#: ../src/iop/borders.c:956 ../src/iop/clipping.c:2271 ../src/iop/crop.c:1208 msgid "aspect" msgstr "Співвідношення сторін" -#: ../src/iop/borders.c:945 +#: ../src/iop/borders.c:957 msgid "" -"select the aspect ratio (right click on slider below to type your own w:h)" +"select the aspect ratio\n" +"(right click on slider below to type your own w:h)" msgstr "" -"Виберіть співвідношення сторін (клікніть правою кнопкою миші на повзунку " -"нижче, щоб ввести власне значення w:h)" +"Виберіть співвідношення сторін\n" +"(клікніть правою кнопкою миші на повзунку нижче, щоб ввести власне значення " +"w:h)" -#: ../src/iop/borders.c:948 +#: ../src/iop/borders.c:961 msgid "3:1" msgstr "3:1" -#: ../src/iop/borders.c:949 +#: ../src/iop/borders.c:962 msgid "95:33" msgstr "95:33" -#: ../src/iop/borders.c:950 +#: ../src/iop/borders.c:963 msgid "CinemaScope 2.39:1" msgstr "CinemaScope 2.39:1" -#: ../src/iop/borders.c:951 +#: ../src/iop/borders.c:964 msgid "2:1" msgstr "2:1" -#: ../src/iop/borders.c:952 +#: ../src/iop/borders.c:965 msgid "16:9" msgstr "16:9" -#: ../src/iop/borders.c:953 +#: ../src/iop/borders.c:966 msgid "5:3" msgstr "5:3" -#: ../src/iop/borders.c:954 +#: ../src/iop/borders.c:967 msgid "US Legal 8.5x14" msgstr "US Legal 8.5x14" -#: ../src/iop/borders.c:955 ../src/iop/clipping.c:2131 ../src/iop/crop.c:1128 +#: ../src/iop/borders.c:968 ../src/iop/clipping.c:2184 ../src/iop/crop.c:1112 msgid "golden cut" msgstr "Золотий перетин" -#: ../src/iop/borders.c:956 +#: ../src/iop/borders.c:969 msgid "16:10" msgstr "16:10" -#: ../src/iop/borders.c:957 +#: ../src/iop/borders.c:970 msgid "3:2 (4x6, 10x15cm)" msgstr "3:2 (4x6, 10x15см)" -#: ../src/iop/borders.c:959 +#: ../src/iop/borders.c:972 msgid "DIN" msgstr "DIN" -#: ../src/iop/borders.c:960 +#: ../src/iop/borders.c:973 msgid "7:5" msgstr "7:5" -#: ../src/iop/borders.c:961 +#: ../src/iop/borders.c:974 msgid "4:3" msgstr "4:3" -#: ../src/iop/borders.c:962 +#: ../src/iop/borders.c:975 msgid "US Letter 8.5x11" msgstr "US Letter 8.5x11" -#: ../src/iop/borders.c:963 +#: ../src/iop/borders.c:976 msgid "14:11" msgstr "14:11" -#: ../src/iop/borders.c:964 +#: ../src/iop/borders.c:977 msgid "5:4 (8x10)" msgstr "5:4 (8x10)" -#: ../src/iop/borders.c:965 ../src/iop/clipping.c:2121 ../src/iop/crop.c:1118 -#: ../src/libs/filtering.c:301 ../src/libs/filters/ratio.c:126 -#: ../src/libs/histogram.c:141 +#: ../src/iop/borders.c:978 ../src/iop/clipping.c:2174 ../src/iop/crop.c:1102 +#: ../src/libs/filtering.c:307 ../src/libs/filters/ratio.c:126 +#: ../src/libs/histogram.c:118 msgid "square" msgstr "Квадрат" -#: ../src/iop/borders.c:966 +#: ../src/iop/borders.c:979 msgid "constant border" msgstr "Постійна товщина" -#: ../src/iop/borders.c:967 ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:980 ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "custom..." msgstr "Власне..." -#: ../src/iop/borders.c:972 -msgid "set the custom aspect ratio (right click to enter number or w:h)" +#: ../src/iop/borders.c:984 +msgid "" +"set the custom aspect ratio\n" +"(right click to enter number or w:h)" msgstr "" -"Встановити власне співвідношення сторін (клікніть правою кнопкою миші, щоб " -"ввести число або w:h)" +"Встановити власне співвідношення сторін\n" +"(клікніть правою кнопкою миші, щоб ввести число або w:h)" -#: ../src/iop/borders.c:975 +#: ../src/iop/borders.c:989 msgid "aspect ratio orientation of the image with border" msgstr "Співвідношення сторін зображення з облямівкою" -#: ../src/iop/borders.c:977 +#: ../src/iop/borders.c:991 msgid "horizontal position" msgstr "Горизонтальне положення" -#: ../src/iop/borders.c:978 +#: ../src/iop/borders.c:992 msgid "" -"select the horizontal position ratio relative to top or right click and type " -"your own (y:h)" +"select the horizontal position ratio relative to top\n" +"(right click on slider below to type your own x:w)" msgstr "" "Виберіть співвідношення горизонтальної позиції відносно розміру верхньої " -"облямівки або введіть своє власне (Y:вис)" +"облямівки\n" +"(клікніть правою кнопкою миші на повзунку нижче, щоб ввести власне " +"співвідношення x:w)" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "center" msgstr "Центр" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "1/3" msgstr "1/3" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "3/8" msgstr "3/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "5/8" msgstr "5/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "2/3" msgstr "2/3" -#: ../src/iop/borders.c:986 +#: ../src/iop/borders.c:1000 msgid "custom horizontal position" msgstr "Нестандартне горизонтальне положення" -#: ../src/iop/borders.c:988 +#: ../src/iop/borders.c:1002 msgid "vertical position" msgstr "Вертикальне положення" -#: ../src/iop/borders.c:989 +#: ../src/iop/borders.c:1003 msgid "" -"select the vertical position ratio relative to left or right click and type " -"your own (x:w)" +"select the vertical position ratio relative to left\n" +"(right click on slider below to type your own y:h)" msgstr "" "Виберіть співвідношення вертикальної позиції відносно розміру лівої " -"облямівки або введіть своє власне (X:шир)" +"облямівки\n" +"(клікніть правою кнопкою миші на повзунку нижче, щоб ввести власне " +"співвідношення y:h)" -#: ../src/iop/borders.c:997 +#: ../src/iop/borders.c:1011 msgid "custom vertical position" msgstr "Нестандартне вертикальне положення" -#: ../src/iop/borders.c:1002 +#: ../src/iop/borders.c:1017 msgid "size of the frame line in percent of min border width" msgstr "Розмір лінії рамки у відсотках від мінімальної ширини облямівки" -#: ../src/iop/borders.c:1007 +#: ../src/iop/borders.c:1023 msgid "offset of the frame line beginning on picture side" msgstr "Зміщення лінії рамки від сторони знімка" -#: ../src/iop/borders.c:1014 ../src/iop/borders.c:1023 +#: ../src/iop/borders.c:1033 ../src/iop/borders.c:1044 msgid "border color" msgstr "Колір облямівки" -#: ../src/iop/borders.c:1018 +#: ../src/iop/borders.c:1037 msgid "select border color" msgstr "Виберіть колір облямівки" -#: ../src/iop/borders.c:1022 +#: ../src/iop/borders.c:1043 msgid "pick border color from image" msgstr "Виберіть колір облямівки із зображення" -#: ../src/iop/borders.c:1023 ../src/iop/borders.c:1036 -#: ../src/iop/colorzones.c:2415 ../src/iop/colorzones.c:2425 -#: ../src/iop/negadoctor.c:848 ../src/iop/negadoctor.c:915 -#: ../src/iop/negadoctor.c:953 ../src/iop/rgbcurve.c:1369 -#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1026 -#: ../src/iop/rgblevels.c:1032 ../src/iop/rgblevels.c:1038 +#: ../src/iop/borders.c:1044 ../src/iop/borders.c:1061 +#: ../src/iop/colorzones.c:2662 ../src/iop/colorzones.c:2677 +#: ../src/iop/negadoctor.c:867 ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:972 ../src/iop/rgbcurve.c:1369 +#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1075 +#: ../src/iop/rgblevels.c:1083 ../src/iop/rgblevels.c:1091 msgid "pickers" msgstr "Піпетки" -#: ../src/iop/borders.c:1027 ../src/iop/borders.c:1036 +#: ../src/iop/borders.c:1049 ../src/iop/borders.c:1061 msgid "frame line color" msgstr "Колір лінії рамки" -#: ../src/iop/borders.c:1031 +#: ../src/iop/borders.c:1054 msgid "select frame line color" msgstr "Виберіть колір лінії рамки" -#: ../src/iop/borders.c:1035 +#: ../src/iop/borders.c:1060 msgid "pick frame line color from image" msgstr "Виберіть колір лінії рамки із зображення" #. make sure you put all your translatable strings into _() ! -#: ../src/iop/cacorrect.c:72 +#: ../src/iop/cacorrect.c:78 msgid "raw chromatic aberrations" msgstr "Raw хроматичні аберації" -#: ../src/iop/cacorrect.c:77 +#: ../src/iop/cacorrect.c:83 msgid "correct chromatic aberrations for Bayer sensors" msgstr "Коригувати хроматичні аберації для сенсорів з фільтрами Баєра" -#: ../src/iop/cacorrect.c:79 ../src/iop/cacorrect.c:81 +#: ../src/iop/cacorrect.c:85 ../src/iop/cacorrect.c:87 #: ../src/iop/cacorrectrgb.c:171 ../src/iop/cacorrectrgb.c:173 #: ../src/iop/demosaic.c:294 ../src/iop/highlights.c:180 -#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:74 -#: ../src/iop/hotpixels.c:76 ../src/iop/rawdenoise.c:131 -#: ../src/iop/rawdenoise.c:133 ../src/iop/rawprepare.c:159 -#: ../src/iop/rawprepare.c:161 ../src/iop/temperature.c:213 -#: ../src/iop/temperature.c:215 +#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:76 +#: ../src/iop/hotpixels.c:78 ../src/iop/rawdenoise.c:145 +#: ../src/iop/rawdenoise.c:147 ../src/iop/rawprepare.c:175 +#: ../src/iop/rawprepare.c:177 ../src/iop/temperature.c:221 +#: ../src/iop/temperature.c:223 msgid "linear, raw, scene-referred" msgstr "лінійний простір, raw, на основі сцен" -#: ../src/iop/cacorrect.c:80 ../src/iop/cacorrectrgb.c:172 -#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:121 -#: ../src/iop/rawdenoise.c:132 ../src/iop/rawprepare.c:160 -#: ../src/iop/temperature.c:214 +#: ../src/iop/cacorrect.c:86 ../src/iop/cacorrectrgb.c:172 +#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:138 +#: ../src/iop/rawdenoise.c:146 ../src/iop/rawprepare.c:176 +#: ../src/iop/temperature.c:222 msgid "linear, raw" msgstr "лінійна, raw" -#: ../src/iop/cacorrect.c:1405 +#: ../src/iop/cacorrect.c:1424 msgid "iteration runs, default is twice" msgstr "Кількість ітерацій, за замовчуванням дві" -#: ../src/iop/cacorrect.c:1408 +#: ../src/iop/cacorrect.c:1427 msgid "activate colorshift correction for blue & red channels" msgstr "Активувати корекцію зміщення кольорів для синього та червоного каналів" -#: ../src/iop/cacorrect.c:1415 +#: ../src/iop/cacorrect.c:1434 msgid "" "automatic chromatic aberration correction\n" -"only for Bayer raw files" +"only for Bayer raw files with 3 color channels" msgstr "" "Автоматична корекція хроматичних аберацій\n" -"Працює лише на raw зображеннях з сенсорів Баєра" +"Працює лише на raw зображеннях з сенсорів\n" +"Баєра з трьома кольоровими каналами" #: ../src/iop/cacorrectrgb.c:164 ../src/iop/defringe.c:76 msgid "chromatic aberrations" @@ -13332,7 +13858,7 @@ msgid "correct chromatic aberrations" msgstr "Виправлення хроматичних аберацій" -#: ../src/iop/cacorrectrgb.c:743 +#: ../src/iop/cacorrectrgb.c:745 msgid "" "channel used as a reference to\n" "correct the other channels.\n" @@ -13348,11 +13874,11 @@ "Спробуйте змінити направляючий канал, якщо\n" "виникають артефакти." -#: ../src/iop/cacorrectrgb.c:750 +#: ../src/iop/cacorrectrgb.c:752 msgid "increase for stronger correction" msgstr "Збільшити для сильнішого виправлення" -#: ../src/iop/cacorrectrgb.c:752 +#: ../src/iop/cacorrectrgb.c:754 msgid "" "balance between smoothing colors\n" "and preserving them.\n" @@ -13364,12 +13890,12 @@ "Високі значення можуть призвести до\n" "\"протікання контурів\"." -#: ../src/iop/cacorrectrgb.c:757 +#: ../src/iop/cacorrectrgb.c:759 msgctxt "section" msgid "advanced parameters" msgstr "Розширені параметри" -#: ../src/iop/cacorrectrgb.c:759 +#: ../src/iop/cacorrectrgb.c:761 msgid "" "correction mode to use.\n" "can help with multiple\n" @@ -13387,7 +13913,7 @@ "ефективно виправляє синю\n" "хроматичну аберацію." -#: ../src/iop/cacorrectrgb.c:767 +#: ../src/iop/cacorrectrgb.c:769 msgid "" "runs an iterative approach\n" "with several radii.\n" @@ -13422,35 +13948,35 @@ msgid "special, RGB, scene-referred" msgstr "спеціальний, RGB, на основі сцен" -#: ../src/iop/censorize.c:412 +#: ../src/iop/censorize.c:404 msgid "radius_1" msgstr "Радіус_1" -#: ../src/iop/censorize.c:414 +#: ../src/iop/censorize.c:406 msgid "pixelate" msgstr "Пікселювати" -#: ../src/iop/censorize.c:416 +#: ../src/iop/censorize.c:408 msgid "radius_2" msgstr "Радіус_2" -#: ../src/iop/censorize.c:418 +#: ../src/iop/censorize.c:410 msgid "noise" msgstr "Шум" -#: ../src/iop/censorize.c:420 +#: ../src/iop/censorize.c:412 msgid "radius of gaussian blur before pixellation" msgstr "Радіус гауссівського розмиття до пікселяції" -#: ../src/iop/censorize.c:421 +#: ../src/iop/censorize.c:413 msgid "radius of gaussian blur after pixellation" msgstr "Радіус гауссівського розмиття після пікселяції" -#: ../src/iop/censorize.c:422 +#: ../src/iop/censorize.c:414 msgid "radius of the intermediate pixellation" msgstr "Радіус проміжної пікселяції" -#: ../src/iop/censorize.c:423 +#: ../src/iop/censorize.c:415 msgid "amount of noise to add at the end" msgstr "Кількість шуму, яку слід додати в кінці" @@ -13465,7 +13991,7 @@ "Цей модуль застарілий. Краще використовувати модуль 'Калібрування кольору' " "замість нього." -#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:229 +#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:230 msgid "" "perform color space corrections\n" "such as white balance, channels mixing\n" @@ -13475,168 +14001,168 @@ "такі як баланс білого, змішування каналів\n" "і перетворення на монохром з емуляцією плівки" -#: ../src/iop/channelmixer.c:614 +#: ../src/iop/channelmixer.c:633 msgid "destination" msgstr "Вихідний канал" -#: ../src/iop/channelmixer.c:621 +#: ../src/iop/channelmixer.c:640 msgctxt "channelmixer" msgid "gray" msgstr "Сірий" -#: ../src/iop/channelmixer.c:627 +#: ../src/iop/channelmixer.c:646 msgid "amount of red channel in the output channel" msgstr "Кількість червоного каналу у вихідному каналі" -#: ../src/iop/channelmixer.c:633 +#: ../src/iop/channelmixer.c:652 msgid "amount of green channel in the output channel" msgstr "Кількість зеленого каналу у вихідному каналі" -#: ../src/iop/channelmixer.c:639 +#: ../src/iop/channelmixer.c:658 msgid "amount of blue channel in the output channel" msgstr "Кількість синього каналу у вихідному каналі" -#: ../src/iop/channelmixer.c:655 ../src/iop/channelmixerrgb.c:524 +#: ../src/iop/channelmixer.c:674 ../src/iop/channelmixerrgb.c:588 msgid "swap R and B" msgstr "Поміняти R і B" -#: ../src/iop/channelmixer.c:661 ../src/iop/channelmixerrgb.c:498 +#: ../src/iop/channelmixer.c:680 ../src/iop/channelmixerrgb.c:562 msgid "swap G and B" msgstr "Поміняти G і B" -#: ../src/iop/channelmixer.c:667 +#: ../src/iop/channelmixer.c:686 msgid "color contrast boost" msgstr "Підсилення контрасту кольорів" -#: ../src/iop/channelmixer.c:673 +#: ../src/iop/channelmixer.c:692 msgid "color details boost" msgstr "Підсилення кольорових деталей" -#: ../src/iop/channelmixer.c:679 +#: ../src/iop/channelmixer.c:698 msgid "color artifacts boost" msgstr "Підсилення кольорових артефактів" -#: ../src/iop/channelmixer.c:685 +#: ../src/iop/channelmixer.c:704 msgid "B/W luminance-based" msgstr "ч/б на основі яскравості" -#: ../src/iop/channelmixer.c:691 +#: ../src/iop/channelmixer.c:710 msgid "B/W artifacts boost" msgstr "ч/б підсилення артефактів" -#: ../src/iop/channelmixer.c:697 +#: ../src/iop/channelmixer.c:716 msgid "B/W smooth skin" msgstr "ч/б гладка шкіра" -#: ../src/iop/channelmixer.c:703 +#: ../src/iop/channelmixer.c:722 msgid "B/W blue artifacts reduce" msgstr "ч/б зменшення синіх артефактів" -#: ../src/iop/channelmixer.c:710 +#: ../src/iop/channelmixer.c:729 msgid "B/W Ilford Delta 100-400" msgstr "ч/б Ilford Delta 100-400" -#: ../src/iop/channelmixer.c:717 +#: ../src/iop/channelmixer.c:736 msgid "B/W Ilford Delta 3200" msgstr "ч/б Ilford Delta 3200" -#: ../src/iop/channelmixer.c:724 +#: ../src/iop/channelmixer.c:743 msgid "B/W Ilford FP4" msgstr "ч/б Ilford FP4" -#: ../src/iop/channelmixer.c:731 +#: ../src/iop/channelmixer.c:750 msgid "B/W Ilford HP5" msgstr "ч/б Ilford HP5" -#: ../src/iop/channelmixer.c:738 +#: ../src/iop/channelmixer.c:757 msgid "B/W Ilford SFX" msgstr "ч/б Ilford SFX" -#: ../src/iop/channelmixer.c:745 +#: ../src/iop/channelmixer.c:764 msgid "B/W Kodak T-Max 100" msgstr "ч/б Kodak T-Max 100" -#: ../src/iop/channelmixer.c:752 +#: ../src/iop/channelmixer.c:771 msgid "B/W Kodak T-max 400" msgstr "ч/б Kodak T-max 400" -#: ../src/iop/channelmixer.c:759 +#: ../src/iop/channelmixer.c:778 msgid "B/W Kodak Tri-X 400" msgstr "ч/б Kodak Tri-X 400" -#: ../src/iop/channelmixerrgb.c:219 +#: ../src/iop/channelmixerrgb.c:220 msgid "color calibration" msgstr "Калібрування кольору" -#: ../src/iop/channelmixerrgb.c:224 +#: ../src/iop/channelmixerrgb.c:225 msgid "channel mixer|white balance|monochrome" msgstr "channel mixer|white balance|monochrome" -#: ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:235 msgid "linear, RGB or XYZ" msgstr "лінійна, RGB або XYZ" -#: ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:460 msgid "B&W: luminance-based" msgstr "Ч/Б: на основі яскравості" -#: ../src/iop/channelmixerrgb.c:431 +#: ../src/iop/channelmixerrgb.c:495 msgid "B&W: ILFORD HP5+" msgstr "Ч/Б: ILFORD HP5+" -#: ../src/iop/channelmixerrgb.c:440 +#: ../src/iop/channelmixerrgb.c:504 msgid "B&W: ILFORD DELTA 100" msgstr "Ч/Б: ILFORD DELTA 100" -#: ../src/iop/channelmixerrgb.c:450 +#: ../src/iop/channelmixerrgb.c:514 msgid "B&W: ILFORD DELTA 400 - 3200" msgstr "Ч/Б: ILFORD DELTA 400 - 3200" -#: ../src/iop/channelmixerrgb.c:459 +#: ../src/iop/channelmixerrgb.c:523 msgid "B&W: ILFORD FP4+" msgstr "Ч/Б: ILFORD FP4+" -#: ../src/iop/channelmixerrgb.c:468 +#: ../src/iop/channelmixerrgb.c:532 msgid "B&W: Fuji Acros 100" msgstr "Ч/Б: Fuji Acros 100" -#: ../src/iop/channelmixerrgb.c:485 +#: ../src/iop/channelmixerrgb.c:549 msgid "basic channel mixer" msgstr "Спрощений змішувач каналів" -#: ../src/iop/channelmixerrgb.c:511 +#: ../src/iop/channelmixerrgb.c:575 msgid "swap G and R" msgstr "Поміняти G і R" -#: ../src/iop/channelmixerrgb.c:1869 +#: ../src/iop/channelmixerrgb.c:1926 msgid "(daylight)" msgstr "(денне світло)" -#: ../src/iop/channelmixerrgb.c:1871 +#: ../src/iop/channelmixerrgb.c:1928 msgid "(black body)" msgstr "(чорне тіло)" -#: ../src/iop/channelmixerrgb.c:1873 +#: ../src/iop/channelmixerrgb.c:1930 msgid "(invalid)" msgstr "(недійсне)" -#: ../src/iop/channelmixerrgb.c:1877 ../src/iop/channelmixerrgb.c:1935 +#: ../src/iop/channelmixerrgb.c:1934 ../src/iop/channelmixerrgb.c:1992 msgid "very good" msgstr "Дуже хороша" -#: ../src/iop/channelmixerrgb.c:1879 ../src/iop/channelmixerrgb.c:1937 +#: ../src/iop/channelmixerrgb.c:1936 ../src/iop/channelmixerrgb.c:1994 msgid "good" msgstr "Хороша" -#: ../src/iop/channelmixerrgb.c:1881 ../src/iop/channelmixerrgb.c:1939 +#: ../src/iop/channelmixerrgb.c:1938 ../src/iop/channelmixerrgb.c:1996 msgid "passable" msgstr "Прийнятна" -#: ../src/iop/channelmixerrgb.c:1883 ../src/iop/channelmixerrgb.c:1941 +#: ../src/iop/channelmixerrgb.c:1940 ../src/iop/channelmixerrgb.c:1998 msgid "bad" msgstr "Погана" -#: ../src/iop/channelmixerrgb.c:1890 +#: ../src/iop/channelmixerrgb.c:1947 #, c-format msgid "" "\n" @@ -13673,7 +14199,7 @@ "компенсація експозиції: \t%+.2f EV\n" "зміщення чорного кольору: \t%+.4f" -#: ../src/iop/channelmixerrgb.c:1946 +#: ../src/iop/channelmixerrgb.c:2003 #, c-format msgid "" "\n" @@ -13692,27 +14218,43 @@ "компенсація експозиції: \t%+.2f EV\n" "зміщення чорного кольору: \t%+.4f" -#: ../src/iop/channelmixerrgb.c:1978 +#: ../src/iop/channelmixerrgb.c:2054 msgid "double CAT applied" msgstr "Подвійне CAT застосовано" -#: ../src/iop/channelmixerrgb.c:1979 +#: ../src/iop/channelmixerrgb.c:2055 msgid "" "you have 2 instances or more of color calibration,\n" -"all performing chromatic adaptation.\n" -"this can lead to inconsistencies, unless you\n" +"all providing chromatic adaptation.\n" +"this can lead to inconsistencies unless you\n" "use them with masks or know what you are doing." msgstr "" -"Ви маєте більше одного екземпляра модуля калібрування кольору,\n" -"які виконують хроматичну адаптацію.\n" +"Ви маєте більше одного екземпляра калібрування кольору,\n" +"усі забезпечують хроматичну адаптацію.\n" "Це може призвести до невідповідностей, хіба що ви\n" "використовуєте їх з масками, або знаєте, для чого це робите." -#: ../src/iop/channelmixerrgb.c:1991 +#: ../src/iop/channelmixerrgb.c:2071 +msgid "white balance applied twice" +msgstr "Баланс білого застосовано двічі" + +#: ../src/iop/channelmixerrgb.c:2072 +msgid "" +"the color calibration module is enabled and already provides\n" +"chromatic adaptation.\n" +"set the white balance here to camera reference (D65)\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"Модуль калібрування кольору ввімкнено і він вже\n" +"забезпечує хроматичну адаптацію.\n" +"Встановіть тут баланс білого на референс з камери (D65)\n" +"або вимкніть хроматичну адаптацію при калібруванні кольорів." + +#: ../src/iop/channelmixerrgb.c:2080 msgid "white balance module error" msgstr "Помилка модуля балансу білого" -#: ../src/iop/channelmixerrgb.c:1992 +#: ../src/iop/channelmixerrgb.c:2081 msgid "" "the white balance module is not using the camera\n" "reference illuminant, which will cause issues here\n" @@ -13724,20 +14266,48 @@ "з хроматичною адаптацією. Або встановіть його в референсе\n" "значення або вимкніть тут хроматичну адаптацію." -#: ../src/iop/channelmixerrgb.c:2083 +#: ../src/iop/channelmixerrgb.c:2095 ../src/iop/channelmixerrgb.c:2104 +msgid "white balance missing" +msgstr "Відсутній баланс білого" + +#: ../src/iop/channelmixerrgb.c:2096 +msgid "" +"this module is not providing a valid reference illuminant\n" +"causing chromatic adaptation issues in color calibration.\n" +"enable this module and either set it to reference\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"Цей модуль не надає дійсного референсного освітлювача, що\n" +"спричиняє проблеми з хроматичною адаптацією під час калібрування кольору.\n" +"Увімкніть цей модуль і або встановіть його на референс,\n" +"або вимкніть хроматичну адаптацію при калібруванні кольорів." + +#: ../src/iop/channelmixerrgb.c:2105 +msgid "" +"the white balance module is not providing a valid reference\n" +"illuminant causing issues with chromatic adaptation here.\n" +"enable white balance and either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" +"Модуль 'Баланс білого' не забезпечує дійсного референсного\n" +"освітлювача, що спричиняє тут проблеми з хроматичною адаптацією.\n" +"Увімкніть баланс білого і або встановіть його в референсе\n" +"значення або вимкніть тут хроматичну адаптацію." + +#: ../src/iop/channelmixerrgb.c:2196 msgid "auto-detection of white balance completed" msgstr "Автовизначення балансу білого завершено" -#: ../src/iop/channelmixerrgb.c:2236 +#: ../src/iop/channelmixerrgb.c:2346 msgid "channelmixerrgb works only on RGB input" msgstr "channelmixerrgb (калібрування кольору) працює лише з RGB входом" -#: ../src/iop/channelmixerrgb.c:3621 +#: ../src/iop/channelmixerrgb.c:3692 #, c-format msgid "CCT: %.0f K (daylight)" msgstr "CCT: %.0f K (денне світло)" -#: ../src/iop/channelmixerrgb.c:3624 +#: ../src/iop/channelmixerrgb.c:3695 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a daylight spectrum,\n" @@ -13747,12 +14317,12 @@ "Цей освітлювач можна точно змоделювати за спектром денного світла,\n" "тому його температура є релевантною та значущою з D-освітлювачем." -#: ../src/iop/channelmixerrgb.c:3630 +#: ../src/iop/channelmixerrgb.c:3701 #, c-format msgid "CCT: %.0f K (black body)" msgstr "CCT: %.0f K (чорне тіло)" -#: ../src/iop/channelmixerrgb.c:3633 +#: ../src/iop/channelmixerrgb.c:3704 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a black body spectrum,\n" @@ -13763,12 +14333,12 @@ "тому його температура є релевантною та значущою з планківським " "випромінювачем." -#: ../src/iop/channelmixerrgb.c:3639 +#: ../src/iop/channelmixerrgb.c:3710 #, c-format msgid "CCT: %.0f K (invalid)" msgstr "CCT: %.0f K (недійсна)" -#: ../src/iop/channelmixerrgb.c:3642 +#: ../src/iop/channelmixerrgb.c:3713 msgid "" "approximated correlated color temperature.\n" "this illuminant cannot be accurately modeled by a daylight or black body " @@ -13782,12 +14352,12 @@ "тому його температура не є релевантною та значущою і вам потрібно " "використовувати спеціальний освітлювач." -#: ../src/iop/channelmixerrgb.c:3651 +#: ../src/iop/channelmixerrgb.c:3722 #, c-format msgid "CCT: undefined" msgstr "CCT: невизначена" -#: ../src/iop/channelmixerrgb.c:3654 +#: ../src/iop/channelmixerrgb.c:3725 msgid "" "the approximated correlated color temperature\n" "cannot be computed at all so you need to use a custom illuminant." @@ -13796,16 +14366,16 @@ "Неможливо обчислити взагалі, тому вам потрібно використовувати спеціальний " "освітлювач." -#: ../src/iop/channelmixerrgb.c:3967 +#: ../src/iop/channelmixerrgb.c:4038 msgid "white balance successfully extracted from raw image" msgstr "Баланс білого успішно отримано з raw зображення" #. We need to recompute only the full preview -#: ../src/iop/channelmixerrgb.c:3973 +#: ../src/iop/channelmixerrgb.c:4044 msgid "auto-detection of white balance started…" msgstr "Розпочато автоматичне виявлення балансу білого..." -#: ../src/iop/channelmixerrgb.c:4078 +#: ../src/iop/channelmixerrgb.c:4149 msgid "" "color calibration: the sum of the gray channel parameters is zero, " "normalization will be disabled." @@ -13814,7 +14384,7 @@ "нормалізацію буде вимкнено." #. Write report in GUI -#: ../src/iop/channelmixerrgb.c:4126 +#: ../src/iop/channelmixerrgb.c:4194 #, c-format msgid "" "L: \t%.1f %%\n" @@ -13825,29 +14395,29 @@ "h: \t%.1f °\n" "c: \t%.1f" -#: ../src/iop/channelmixerrgb.c:4394 ../src/iop/clipping.c:2087 -#: ../src/iop/colorbalancergb.c:1873 ../src/iop/filmicrgb.c:4419 -#: ../src/iop/negadoctor.c:829 ../src/iop/toneequal.c:3319 -#: ../src/libs/image.c:460 ../src/views/lighttable.c:1258 +#: ../src/iop/channelmixerrgb.c:4462 ../src/iop/clipping.c:2140 +#: ../src/iop/colorbalancergb.c:1944 ../src/iop/filmicrgb.c:4483 +#: ../src/iop/negadoctor.c:848 ../src/iop/toneequal.c:3372 +#: ../src/libs/image.c:490 ../src/views/lighttable.c:1258 msgid "page" msgstr "Сторінка" #. Page CAT -#: ../src/iop/channelmixerrgb.c:4397 +#: ../src/iop/channelmixerrgb.c:4465 msgid "CAT" msgstr "CAT" -#: ../src/iop/channelmixerrgb.c:4398 +#: ../src/iop/channelmixerrgb.c:4466 msgid "chromatic adaptation transform" msgstr "" "Перетворення хроматичної адаптації\n" "\"chromatic adaptation transform\" - CAT" -#: ../src/iop/channelmixerrgb.c:4400 +#: ../src/iop/channelmixerrgb.c:4468 msgid "adaptation" msgstr "Адаптація" -#: ../src/iop/channelmixerrgb.c:4403 +#: ../src/iop/channelmixerrgb.c:4471 msgid "" "choose the method to adapt the illuminant\n" "and the colorspace in which the module works: \n" @@ -13867,7 +14437,7 @@ "• XYZ - це просте масштабування в просторі XYZ. не рекомендується.\n" "• Немає - вимикає будь-яку адаптацію і використовує робочий RGB конвеєра." -#: ../src/iop/channelmixerrgb.c:4423 +#: ../src/iop/channelmixerrgb.c:4491 msgid "" "this is the color of the scene illuminant before chromatic adaptation\n" "this color will be turned into pure white by the adaptation." @@ -13875,27 +14445,27 @@ "Це колір джерела світла до хроматичної адаптації.\n" "Цей колір адаптацією перетвориться на чисто білий." -#: ../src/iop/channelmixerrgb.c:4431 +#: ../src/iop/channelmixerrgb.c:4499 msgid "picker" msgstr "Піпетка" -#: ../src/iop/channelmixerrgb.c:4433 ../src/iop/temperature.c:2047 +#: ../src/iop/channelmixerrgb.c:4501 ../src/iop/temperature.c:2015 msgid "set white balance to detected from area" msgstr "Встановити баланс білого на виявлений з області зображення" -#: ../src/iop/channelmixerrgb.c:4437 ../src/iop/negadoctor.c:953 +#: ../src/iop/channelmixerrgb.c:4505 ../src/iop/negadoctor.c:972 msgid "illuminant" msgstr "Освітлювач" -#: ../src/iop/channelmixerrgb.c:4443 ../src/iop/temperature.c:2107 +#: ../src/iop/channelmixerrgb.c:4511 ../src/iop/temperature.c:2072 msgid "temperature" msgstr "Температура" -#: ../src/iop/channelmixerrgb.c:4474 -msgid "spot color mapping" +#: ../src/iop/channelmixerrgb.c:4542 +msgid "area color mapping" msgstr "Відображення кольору області зображення" -#: ../src/iop/channelmixerrgb.c:4480 +#: ../src/iop/channelmixerrgb.c:4548 msgid "" "define a target chromaticity (hue and chroma) for a particular region of the " "image (the control sample), which you then match against the same target " @@ -13909,17 +14479,17 @@ "важливою частиною вашого об’єкта, так і нерухомою та рівномірно освітленою " "поверхнею в серії зображень." -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/channelmixerrgb.c:4502 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/channelmixerrgb.c:4573 +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/channelmixerrgb.c:4570 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/channelmixerrgb.c:4641 msgid "mapping" msgstr "Відображення" -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/exposure.c:1188 -msgid "spot mode" +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/exposure.c:1206 +msgid "area mode" msgstr "Режим області зображення" -#: ../src/iop/channelmixerrgb.c:4488 +#: ../src/iop/channelmixerrgb.c:4556 msgid "" "\"correction\" automatically adjust the illuminant\n" "such that the input color is mapped to the target.\n" @@ -13931,19 +14501,19 @@ "\"Вимірювання\" просто показує, як вхідний колір відображається CAT\n" "і може використовуватися для вибірки цілі." -#: ../src/iop/channelmixerrgb.c:4493 ../src/iop/exposure.c:1194 +#: ../src/iop/channelmixerrgb.c:4561 ../src/iop/exposure.c:1212 msgid "correction" msgstr "Корекція" -#: ../src/iop/channelmixerrgb.c:4494 ../src/iop/exposure.c:1195 +#: ../src/iop/channelmixerrgb.c:4562 ../src/iop/exposure.c:1213 msgid "measure" msgstr "Вимірювання" -#: ../src/iop/channelmixerrgb.c:4500 +#: ../src/iop/channelmixerrgb.c:4568 msgid "take channel mixing into account" msgstr "Врахувати змішування каналів" -#: ../src/iop/channelmixerrgb.c:4507 +#: ../src/iop/channelmixerrgb.c:4575 msgid "" "compute the target by taking the channel mixing into account.\n" "if disabled, only the CAT is considered." @@ -13951,16 +14521,16 @@ "Обчислити ціль, беручи до уваги змішування каналів.\n" "Якщо вимкнено, розглядається лише CAT." -#: ../src/iop/channelmixerrgb.c:4519 ../src/iop/exposure.c:1202 +#: ../src/iop/channelmixerrgb.c:4587 ../src/iop/exposure.c:1220 msgctxt "section" msgid "input" msgstr "На вході" -#: ../src/iop/channelmixerrgb.c:4526 ../src/iop/exposure.c:1210 +#: ../src/iop/channelmixerrgb.c:4594 ../src/iop/exposure.c:1228 msgid "the input color that should be mapped to the target" msgstr "Вхідний колір, який має бути відображений на цільовий" -#: ../src/iop/channelmixerrgb.c:4532 +#: ../src/iop/channelmixerrgb.c:4600 msgid "" "L: \tN/A\n" "h: \tN/A\n" @@ -13970,114 +14540,114 @@ "h: \tN/A\n" "c: \tN/A" -#: ../src/iop/channelmixerrgb.c:4535 ../src/iop/exposure.c:1218 +#: ../src/iop/channelmixerrgb.c:4603 ../src/iop/exposure.c:1236 msgid "these LCh coordinates are computed from CIE Lab 1976 coordinates" msgstr "Ці координати LCh обчислюються з координат CIE Lab 1976" -#: ../src/iop/channelmixerrgb.c:4543 ../src/iop/exposure.c:1225 +#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/exposure.c:1243 msgctxt "section" msgid "target" msgstr "Ціль" -#: ../src/iop/channelmixerrgb.c:4550 +#: ../src/iop/channelmixerrgb.c:4618 msgid "the desired target color after mapping" msgstr "Бажаний цільовий колір після відображення" -#: ../src/iop/channelmixerrgb.c:4589 +#: ../src/iop/channelmixerrgb.c:4657 msgid "input R" msgstr "Вхідний R" -#: ../src/iop/channelmixerrgb.c:4594 +#: ../src/iop/channelmixerrgb.c:4662 msgid "input G" msgstr "Вхідний G" -#: ../src/iop/channelmixerrgb.c:4599 +#: ../src/iop/channelmixerrgb.c:4667 msgid "input B" msgstr "Вхідний B" -#: ../src/iop/channelmixerrgb.c:4609 +#: ../src/iop/channelmixerrgb.c:4677 msgid "output R" msgstr "Вихідний R" -#: ../src/iop/channelmixerrgb.c:4610 +#: ../src/iop/channelmixerrgb.c:4678 msgid "output G" msgstr "Вихідний G" -#: ../src/iop/channelmixerrgb.c:4611 +#: ../src/iop/channelmixerrgb.c:4679 msgid "output B" msgstr "Вихідний B" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "colorfulness" msgstr "Барвистість" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "output colorfulness" msgstr "Вихідна барвистість" -#: ../src/iop/channelmixerrgb.c:4617 +#: ../src/iop/channelmixerrgb.c:4685 msgid "output brightness" msgstr "Вихідна яскравість" -#: ../src/iop/channelmixerrgb.c:4620 +#: ../src/iop/channelmixerrgb.c:4688 msgid "output gray" msgstr "Вихідний сірий" -#: ../src/iop/channelmixerrgb.c:4635 +#: ../src/iop/channelmixerrgb.c:4703 msgid "calibrate with a color checker" msgstr "Калібрувати за допомогою мішені" -#: ../src/iop/channelmixerrgb.c:4640 +#: ../src/iop/channelmixerrgb.c:4708 msgid "use a color checker target to autoset CAT and channels" msgstr "Використати кольорову мішень для автовстановлення CAT і каналів" -#: ../src/iop/channelmixerrgb.c:4647 ../src/iop/channelmixerrgb.c:4660 -#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/channelmixerrgb.c:4696 -#: ../src/iop/channelmixerrgb.c:4705 ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4715 ../src/iop/channelmixerrgb.c:4728 +#: ../src/iop/channelmixerrgb.c:4746 ../src/iop/channelmixerrgb.c:4764 +#: ../src/iop/channelmixerrgb.c:4773 ../src/iop/channelmixerrgb.c:4781 msgid "calibrate" msgstr "Калібрування" -#: ../src/iop/channelmixerrgb.c:4647 +#: ../src/iop/channelmixerrgb.c:4715 msgid "chart" msgstr "Мішень" -#: ../src/iop/channelmixerrgb.c:4648 +#: ../src/iop/channelmixerrgb.c:4716 msgid "choose the vendor and the type of your chart" msgstr "Виберіть виробника та тип вашої мішені" -#: ../src/iop/channelmixerrgb.c:4650 +#: ../src/iop/channelmixerrgb.c:4718 msgid "Xrite ColorChecker 24 pre-2014" msgstr "Xrite ColorChecker 24 pre-2014" -#: ../src/iop/channelmixerrgb.c:4651 +#: ../src/iop/channelmixerrgb.c:4719 msgid "Xrite ColorChecker 24 post-2014" msgstr "Xrite ColorChecker 24 post-2014" -#: ../src/iop/channelmixerrgb.c:4652 +#: ../src/iop/channelmixerrgb.c:4720 msgid "Datacolor SpyderCheckr 24 pre-2018" msgstr "Datacolor SpyderCheckr 24 pre-2018" -#: ../src/iop/channelmixerrgb.c:4653 +#: ../src/iop/channelmixerrgb.c:4721 msgid "Datacolor SpyderCheckr 24 post-2018" msgstr "Datacolor SpyderCheckr 24 post-2018" -#: ../src/iop/channelmixerrgb.c:4654 +#: ../src/iop/channelmixerrgb.c:4722 msgid "Datacolor SpyderCheckr 48 pre-2018" msgstr "Datacolor SpyderCheckr 48 pre-2018" -#: ../src/iop/channelmixerrgb.c:4655 +#: ../src/iop/channelmixerrgb.c:4723 msgid "Datacolor SpyderCheckr 48 post-2018" msgstr "Datacolor SpyderCheckr 48 post-2018" -#: ../src/iop/channelmixerrgb.c:4656 +#: ../src/iop/channelmixerrgb.c:4724 msgid "Datacolor SpyderCheckr Photo" msgstr "Datacolor SpyderCheckr Photo" -#: ../src/iop/channelmixerrgb.c:4660 +#: ../src/iop/channelmixerrgb.c:4728 msgid "optimize for" msgstr "Ціль оптимізації" -#: ../src/iop/channelmixerrgb.c:4661 +#: ../src/iop/channelmixerrgb.c:4729 msgid "" "choose the colors that will be optimized with higher priority.\n" "neutral colors gives the lowest average delta E but a high maximum delta E\n" @@ -14092,35 +14662,35 @@ "Немає - компроміс між ними\n" "Інші варіанти задають особливу поведінку для захисту деяких відтінків" -#: ../src/iop/channelmixerrgb.c:4668 +#: ../src/iop/channelmixerrgb.c:4736 msgid "neutral colors" msgstr "Нейтральні кольори" -#: ../src/iop/channelmixerrgb.c:4670 +#: ../src/iop/channelmixerrgb.c:4738 msgid "skin and soil colors" msgstr "Кольори шкіри та грунту" -#: ../src/iop/channelmixerrgb.c:4671 +#: ../src/iop/channelmixerrgb.c:4739 msgid "foliage colors" msgstr "Кольори листя" -#: ../src/iop/channelmixerrgb.c:4672 +#: ../src/iop/channelmixerrgb.c:4740 msgid "sky and water colors" msgstr "Кольори неба та води" -#: ../src/iop/channelmixerrgb.c:4673 +#: ../src/iop/channelmixerrgb.c:4741 msgid "average delta E" msgstr "Середня ΔE*" -#: ../src/iop/channelmixerrgb.c:4674 +#: ../src/iop/channelmixerrgb.c:4742 msgid "maximum delta E" msgstr "Максимальна ΔE*" -#: ../src/iop/channelmixerrgb.c:4678 +#: ../src/iop/channelmixerrgb.c:4746 msgid "patch scale" msgstr "Масштаб зразків" -#: ../src/iop/channelmixerrgb.c:4681 +#: ../src/iop/channelmixerrgb.c:4749 msgid "" "reduce the radius of the patches to select the more or less central part.\n" "useful when the perspective correction is sloppy or\n" @@ -14130,31 +14700,31 @@ "Корисно, коли корекція перспективи є неакуратною або\n" "рамка зразків відкидає тіні по краях зразків." -#: ../src/iop/channelmixerrgb.c:4691 +#: ../src/iop/channelmixerrgb.c:4759 msgid "the delta E is using the CIE 2000 formula" msgstr "Для ΔE* використовується формула CIE 2000" -#: ../src/iop/channelmixerrgb.c:4696 +#: ../src/iop/channelmixerrgb.c:4764 msgid "accept" msgstr "Прийняти" -#: ../src/iop/channelmixerrgb.c:4702 +#: ../src/iop/channelmixerrgb.c:4770 msgid "accept the computed profile and set it in the module" msgstr "Прийняти обчислений профіль і встановити його в модулі" -#: ../src/iop/channelmixerrgb.c:4705 +#: ../src/iop/channelmixerrgb.c:4773 msgid "recompute" msgstr "Переобчислення" -#: ../src/iop/channelmixerrgb.c:4709 +#: ../src/iop/channelmixerrgb.c:4777 msgid "recompute the profile" msgstr "Перерахувати профіль" -#: ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4781 msgid "validate" msgstr "Валідація" -#: ../src/iop/channelmixerrgb.c:4717 +#: ../src/iop/channelmixerrgb.c:4785 msgid "check the output delta E" msgstr "Перевірити вихідну ΔE*" @@ -14172,19 +14742,19 @@ "Цей модуль застарілий. Краще використовувати новий модуль 'Локальний " "контраст' замість нього." -#: ../src/iop/clahe.c:337 ../src/iop/sharpen.c:445 +#: ../src/iop/clahe.c:339 ../src/iop/sharpen.c:440 msgid "amount" msgstr "Кількість" -#: ../src/iop/clahe.c:346 +#: ../src/iop/clahe.c:348 msgid "size of features to preserve" msgstr "Частотний діапазон, який слід зберегти" -#: ../src/iop/clahe.c:347 ../src/iop/nlmeans.c:464 +#: ../src/iop/clahe.c:349 ../src/iop/nlmeans.c:467 msgid "strength of the effect" msgstr "Інтенсивність ефекту" -#: ../src/iop/clipping.c:304 +#: ../src/iop/clipping.c:347 msgid "" "this module is deprecated. please use the crop, orientation and/or rotate " "and perspective modules instead." @@ -14192,144 +14762,144 @@ "Цей модуль застарілий. Натомість краще використовувати модулі 'Кадрування', " "'Орієнтація' та/або 'Обертання та перспектива'." -#: ../src/iop/clipping.c:309 +#: ../src/iop/clipping.c:352 msgid "crop and rotate" msgstr "Трансформації" -#: ../src/iop/clipping.c:314 +#: ../src/iop/clipping.c:357 msgid "reframe|perspective|keystone|distortion" msgstr "reframe|perspective|keystone|distortion" -#: ../src/iop/clipping.c:319 +#: ../src/iop/clipping.c:362 msgid "change the framing and correct the perspective" msgstr "Змінити кадрування та виправити перспективу" -#: ../src/iop/clipping.c:1394 ../src/iop/clipping.c:2120 ../src/iop/crop.c:517 -#: ../src/iop/crop.c:1117 +#: ../src/iop/clipping.c:1447 ../src/iop/clipping.c:2173 ../src/iop/crop.c:501 +#: ../src/iop/crop.c:1101 msgid "original image" msgstr "Як в оригіналі" -#: ../src/iop/clipping.c:1698 ../src/iop/crop.c:824 +#: ../src/iop/clipping.c:1751 ../src/iop/crop.c:808 msgid "invalid ratio format. it should be \"number:number\"" msgstr "Недійсний формат співвідношення. це має бути \"число:число\"" -#: ../src/iop/clipping.c:1714 ../src/iop/crop.c:840 +#: ../src/iop/clipping.c:1767 ../src/iop/crop.c:824 msgid "invalid ratio format. it should be a positive number" msgstr "Недійсний формат співвідношення. це має бути додатне число" -#: ../src/iop/clipping.c:1903 ../src/iop/clipping.c:2111 +#: ../src/iop/clipping.c:1956 ../src/iop/clipping.c:2164 msgid "full" msgstr "Повна" -#: ../src/iop/clipping.c:1904 +#: ../src/iop/clipping.c:1957 msgid "old system" msgstr "Стара система" -#: ../src/iop/clipping.c:1905 +#: ../src/iop/clipping.c:1958 msgid "correction applied" msgstr "Корекцію застосовано" -#: ../src/iop/clipping.c:2089 +#: ../src/iop/clipping.c:2142 msgid "main" msgstr "Головне" -#: ../src/iop/clipping.c:2098 +#: ../src/iop/clipping.c:2151 msgid "mirror image horizontally and/or vertically" msgstr "Віддзеркалити зображення в горизонтальній та/або вертикальній площині" -#: ../src/iop/clipping.c:2101 +#: ../src/iop/clipping.c:2154 msgid "angle" msgstr "Кут" -#: ../src/iop/clipping.c:2104 +#: ../src/iop/clipping.c:2157 msgid "right-click and drag a line on the image to drag a straight line" msgstr "" "Клікніть правою кнопкою та перетягніть лінію на зображенні, щоб вказати " "пряму лінію" -#: ../src/iop/clipping.c:2107 +#: ../src/iop/clipping.c:2160 msgid "keystone" msgstr "Корекція перспективи" -#: ../src/iop/clipping.c:2112 +#: ../src/iop/clipping.c:2165 msgid "set perspective correction for your image" msgstr "Встановити корекцію перспективи для вашого зображення" -#: ../src/iop/clipping.c:2119 ../src/iop/crop.c:1116 +#: ../src/iop/clipping.c:2172 ../src/iop/crop.c:1100 msgid "freehand" msgstr "Вільне" -#: ../src/iop/clipping.c:2122 ../src/iop/crop.c:1119 +#: ../src/iop/clipping.c:2175 ../src/iop/crop.c:1103 msgid "10:8 in print" msgstr "10:8, друк" -#: ../src/iop/clipping.c:2123 ../src/iop/crop.c:1120 +#: ../src/iop/clipping.c:2176 ../src/iop/crop.c:1104 msgid "5:4, 4x5, 8x10" msgstr "5:4, 4x5, 8x10" -#: ../src/iop/clipping.c:2124 ../src/iop/crop.c:1121 +#: ../src/iop/clipping.c:2177 ../src/iop/crop.c:1105 msgid "11x14" msgstr "11x14" -#: ../src/iop/clipping.c:2125 ../src/iop/crop.c:1122 +#: ../src/iop/clipping.c:2178 ../src/iop/crop.c:1106 msgid "8.5x11, letter" msgstr "8.5x11, Letter" -#: ../src/iop/clipping.c:2126 ../src/iop/crop.c:1123 +#: ../src/iop/clipping.c:2179 ../src/iop/crop.c:1107 msgid "4:3, VGA, TV" msgstr "4:3, VGA, TV" -#: ../src/iop/clipping.c:2127 ../src/iop/crop.c:1124 +#: ../src/iop/clipping.c:2180 ../src/iop/crop.c:1108 msgid "5x7" msgstr "5x7" -#: ../src/iop/clipping.c:2128 ../src/iop/crop.c:1125 +#: ../src/iop/clipping.c:2181 ../src/iop/crop.c:1109 msgid "ISO 216, DIN 476, A4" msgstr "ISO 216, DIN 476, A4" -#: ../src/iop/clipping.c:2129 ../src/iop/crop.c:1126 +#: ../src/iop/clipping.c:2182 ../src/iop/crop.c:1110 msgid "3:2, 4x6, 35mm" msgstr "3:2, 4x6, 35мм" -#: ../src/iop/clipping.c:2130 ../src/iop/crop.c:1127 +#: ../src/iop/clipping.c:2183 ../src/iop/crop.c:1111 msgid "16:10, 8x5" msgstr "16:10, 8x5" -#: ../src/iop/clipping.c:2132 ../src/iop/crop.c:1129 +#: ../src/iop/clipping.c:2185 ../src/iop/crop.c:1113 msgid "16:9, HDTV" msgstr "16:9, HDTV" -#: ../src/iop/clipping.c:2133 ../src/iop/crop.c:1130 +#: ../src/iop/clipping.c:2186 ../src/iop/crop.c:1114 msgid "widescreen" msgstr "Широкий екран" -#: ../src/iop/clipping.c:2134 ../src/iop/crop.c:1131 +#: ../src/iop/clipping.c:2187 ../src/iop/crop.c:1115 msgid "2:1, univisium" msgstr "2:1, Univisium" -#: ../src/iop/clipping.c:2135 ../src/iop/crop.c:1132 +#: ../src/iop/clipping.c:2188 ../src/iop/crop.c:1116 msgid "cinemascope" msgstr "Сінемаскоп" -#: ../src/iop/clipping.c:2136 ../src/iop/crop.c:1133 +#: ../src/iop/clipping.c:2189 ../src/iop/crop.c:1117 msgid "21:9" msgstr "21:9" -#: ../src/iop/clipping.c:2137 ../src/iop/crop.c:1134 +#: ../src/iop/clipping.c:2190 ../src/iop/crop.c:1118 msgid "anamorphic" msgstr "Анаморф" -#: ../src/iop/clipping.c:2138 ../src/iop/crop.c:1135 +#: ../src/iop/clipping.c:2191 ../src/iop/crop.c:1119 msgid "3:1, panorama" msgstr "3:1, панорама" -#: ../src/iop/clipping.c:2170 ../src/iop/clipping.c:2182 ../src/iop/crop.c:1171 -#: ../src/iop/crop.c:1187 +#: ../src/iop/clipping.c:2223 ../src/iop/clipping.c:2235 ../src/iop/crop.c:1155 +#: ../src/iop/crop.c:1171 #, c-format msgid "invalid ratio format for `%s'. it should be \"number:number\"" msgstr "Недійсний формат співвідношення для `%s'. Це має бути \"число:число\"" -#: ../src/iop/clipping.c:2229 ../src/iop/crop.c:1238 +#: ../src/iop/clipping.c:2282 ../src/iop/crop.c:1222 msgid "" "set the aspect ratio\n" "the list is sorted: from most square to least square\n" @@ -14342,33 +14912,33 @@ "співвідношення у форматі x:y або у вигляді десяткового дробу (чи цілого " "числа)" -#: ../src/iop/clipping.c:2236 ../src/iop/crop.c:1252 +#: ../src/iop/clipping.c:2289 ../src/iop/crop.c:1236 msgid "margins" msgstr "Поля" -#: ../src/iop/clipping.c:2241 ../src/iop/crop.c:1262 +#: ../src/iop/clipping.c:2294 ../src/iop/crop.c:1246 msgid "the left margin cannot overlap with the right margin" msgstr "Ліве поле не може накладатися на праве" -#: ../src/iop/clipping.c:2248 ../src/iop/crop.c:1270 +#: ../src/iop/clipping.c:2301 ../src/iop/crop.c:1254 msgid "the right margin cannot overlap with the left margin" msgstr "Праве поле не може перекриватися з лівим" -#: ../src/iop/clipping.c:2253 ../src/iop/crop.c:1276 +#: ../src/iop/clipping.c:2306 ../src/iop/crop.c:1260 msgid "the top margin cannot overlap with the bottom margin" msgstr "Верхнє поле не може перекриватися з нижнім" -#: ../src/iop/clipping.c:2260 ../src/iop/crop.c:1284 +#: ../src/iop/clipping.c:2313 ../src/iop/crop.c:1268 msgid "the bottom margin cannot overlap with the top margin" msgstr "Нижнє поле не може накладатися на верхнє" -#: ../src/iop/clipping.c:3019 +#: ../src/iop/clipping.c:3059 msgid "<b>commit</b>: double-click, <b>straighten</b>: right-drag" msgstr "" "<b>Фіксація змін</b>: подвійний клік, <b>Випрямлення</b>: перетягування " "правою кнопкою" -#: ../src/iop/clipping.c:3023 +#: ../src/iop/clipping.c:3063 msgid "" "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag\n" "<b>straighten</b>: right-drag" @@ -14377,17 +14947,17 @@ "Shift+перетягування\n" "<b>Випрямлення</b>: перетягування правою кнопкою" -#: ../src/iop/clipping.c:3066 +#: ../src/iop/clipping.c:3104 msgid "<b>move control point</b>: drag" msgstr "<b>Переміщення контрольної точки</b>: перетягування" -#: ../src/iop/clipping.c:3071 +#: ../src/iop/clipping.c:3109 msgid "<b>move line</b>: drag, <b>toggle symmetry</b>: click ꝏ" msgstr "" "<b>Переміщення лінії</b>: перетягування, <b>Перемикання симетрії</b>: " "натисніть ꝏ" -#: ../src/iop/clipping.c:3076 +#: ../src/iop/clipping.c:3114 msgid "" "<b>apply</b>: click <tt>ok</tt>, <b>toggle symmetry</b>: click ꝏ\n" "<b>move line/control point</b>: drag" @@ -14396,7 +14966,7 @@ "натисніть ꝏ\n" "<b>Переміщення лінії/контрольної точки</b>: перетягування" -#: ../src/iop/clipping.c:3083 +#: ../src/iop/clipping.c:3121 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag\n" @@ -14407,12 +14977,12 @@ "<b>Випрямлення</b>: перетягування правою кнопкою, <b>Фіксація змін</b>: " "подвійний клік" -#: ../src/iop/clipping.c:3340 ../src/iop/crop.c:1796 +#: ../src/iop/clipping.c:3380 ../src/iop/crop.c:1770 #, c-format msgid "[%s on borders] crop" msgstr "[%s на краях] обрізати" -#: ../src/iop/clipping.c:3342 ../src/iop/crop.c:1798 +#: ../src/iop/clipping.c:3382 ../src/iop/crop.c:1772 #, c-format msgid "[%s on borders] crop keeping ratio" msgstr "[%s на краях] обрізати зі збереженням співвідношення сторін" @@ -14431,224 +15001,224 @@ msgid "adjust the look of the image" msgstr "Регулювання вигляду зображення" -#: ../src/iop/colisa.c:310 +#: ../src/iop/colisa.c:304 msgid "color saturation adjustment" msgstr "Регулювання насиченості" -#: ../src/iop/colorbalance.c:150 +#: ../src/iop/colorbalance.c:152 msgid "color balance" msgstr "Колірний баланс" -#: ../src/iop/colorbalance.c:155 +#: ../src/iop/colorbalance.c:157 msgid "lift gamma gain|cdl|color grading|contrast|saturation|hue" msgstr "lift gamma gain|cdl|color grading|contrast|saturation|hue" -#: ../src/iop/colorbalance.c:160 +#: ../src/iop/colorbalance.c:162 msgid "shift colors selectively by luminance range" msgstr "Зміщувати кольори вибірково за діапазоном яскравості" -#: ../src/iop/colorbalance.c:164 +#: ../src/iop/colorbalance.c:166 msgid "non-linear, Lab, scene-referred" msgstr "нелінійний простір, Lab, на основі сцен" #. these blobs were exported as dtstyle and copied from there: -#: ../src/iop/colorbalance.c:275 +#: ../src/iop/colorbalance.c:304 msgid "split-toning teal-orange (2nd instance)" msgstr "Спліт-тонування бірюзово-оранжевий (2-й екземпляр)" -#: ../src/iop/colorbalance.c:278 +#: ../src/iop/colorbalance.c:307 msgid "split-toning teal-orange (1st instance)" msgstr "Спліт-тонування бірюзово-оранжевий (1-й екземпляр)" -#: ../src/iop/colorbalance.c:282 +#: ../src/iop/colorbalance.c:311 msgid "generic film" msgstr "Типова фотоплівка" -#: ../src/iop/colorbalance.c:286 +#: ../src/iop/colorbalance.c:315 msgid "similar to Kodak Portra" msgstr "Схожа на Kodak Portra" -#: ../src/iop/colorbalance.c:290 +#: ../src/iop/colorbalance.c:319 msgid "similar to Kodak Ektar" msgstr "Схожа на Kodak Ektar" -#: ../src/iop/colorbalance.c:294 +#: ../src/iop/colorbalance.c:323 msgid "similar to Kodachrome" msgstr "Схожа на Kodachrome" -#: ../src/iop/colorbalance.c:990 +#: ../src/iop/colorbalance.c:964 msgid "optimize luma from patches" msgstr "Оптимізувати яскравість із зразків" -#: ../src/iop/colorbalance.c:992 ../src/iop/colorbalance.c:2110 +#: ../src/iop/colorbalance.c:966 ../src/iop/colorbalance.c:2085 msgid "optimize luma" msgstr "Оптимізувати яскравість" -#: ../src/iop/colorbalance.c:996 +#: ../src/iop/colorbalance.c:970 msgid "neutralize colors from patches" msgstr "Нейтралізувати кольори із зразків" -#: ../src/iop/colorbalance.c:998 ../src/iop/colorbalance.c:2116 +#: ../src/iop/colorbalance.c:972 ../src/iop/colorbalance.c:2091 msgid "neutralize colors" msgstr "Нейтралізувати кольори" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "offset" msgstr "Зміщення" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "power" msgstr "Показник степеня" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "slope" msgstr "Нахил" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "lift" msgstr "Підйом" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gamma" msgstr "Гамма" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gain" msgstr "Підсилення" -#: ../src/iop/colorbalance.c:1787 +#: ../src/iop/colorbalance.c:1762 msgctxt "section" msgid "shadows: lift / offset" msgstr "Тіні: підйом / зміщення" -#: ../src/iop/colorbalance.c:1788 +#: ../src/iop/colorbalance.c:1763 msgctxt "section" msgid "mid-tones: gamma / power" msgstr "Середні тони: гамма / показник степеня" -#: ../src/iop/colorbalance.c:1789 +#: ../src/iop/colorbalance.c:1764 msgctxt "section" msgid "highlights: gain / slope" msgstr "Світлі тони: підсилення / нахил" -#: ../src/iop/colorbalance.c:1813 +#: ../src/iop/colorbalance.c:1788 msgid "shadows / mid-tones / highlights" msgstr "Тіні / середні тони / світлі тони" -#: ../src/iop/colorbalance.c:1910 ../src/iop/colorbalance.c:1919 +#: ../src/iop/colorbalance.c:1885 ../src/iop/colorbalance.c:1894 msgid "color-grading mapping method" msgstr "Метод відображення грейдингу кольорів" -#: ../src/iop/colorbalance.c:1914 +#: ../src/iop/colorbalance.c:1889 msgid "color control sliders" msgstr "Повзунки керування кольором" -#: ../src/iop/colorbalance.c:1915 ../src/libs/colorpicker.c:51 +#: ../src/iop/colorbalance.c:1890 ../src/libs/colorpicker.c:51 msgid "HSL" msgstr "HSL" -#: ../src/iop/colorbalance.c:1916 +#: ../src/iop/colorbalance.c:1891 msgid "RGBL" msgstr "RGBL" -#: ../src/iop/colorbalance.c:1928 +#: ../src/iop/colorbalance.c:1903 msgctxt "section" msgid "master" msgstr "Основні параметри" -#: ../src/iop/colorbalance.c:1934 +#: ../src/iop/colorbalance.c:1909 msgid "saturation correction before the color balance" msgstr "Корекція насиченості перед колірним балансом" -#: ../src/iop/colorbalance.c:1940 +#: ../src/iop/colorbalance.c:1915 msgid "saturation correction after the color balance" msgstr "Корекція насиченості після колірного балансу" -#: ../src/iop/colorbalance.c:1945 +#: ../src/iop/colorbalance.c:1920 msgid "adjust to match a neutral tone" msgstr "Регулювати для відповідності нейтральному тону" #. is set in _configure_slider_blocks -#: ../src/iop/colorbalance.c:2003 +#: ../src/iop/colorbalance.c:1978 msgid "click to cycle layout" msgstr "Натисніть для перебирання розкладок" -#: ../src/iop/colorbalance.c:2037 +#: ../src/iop/colorbalance.c:2012 msgid "factor" msgstr "Коефіцієнт" -#: ../src/iop/colorbalance.c:2051 +#: ../src/iop/colorbalance.c:2026 msgid "select the hue" msgstr "Виберіть відтінок" -#: ../src/iop/colorbalance.c:2063 +#: ../src/iop/colorbalance.c:2038 msgid "select the saturation" msgstr "Виберіть насиченість" -#: ../src/iop/colorbalance.c:2082 +#: ../src/iop/colorbalance.c:2057 msgid "factor of lift/offset" msgstr "Коефіцієнт для тіней" -#: ../src/iop/colorbalance.c:2083 +#: ../src/iop/colorbalance.c:2058 msgid "factor of red for lift/offset" msgstr "Коефіцієнт червоного для тіней" -#: ../src/iop/colorbalance.c:2084 +#: ../src/iop/colorbalance.c:2059 msgid "factor of green for lift/offset" msgstr "Коефіцієнт зеленого для тіней" -#: ../src/iop/colorbalance.c:2085 +#: ../src/iop/colorbalance.c:2060 msgid "factor of blue for lift/offset" msgstr "Коефіцієнт синього для тіней" -#: ../src/iop/colorbalance.c:2088 +#: ../src/iop/colorbalance.c:2063 msgid "factor of gamma/power" msgstr "Коефіцієнт для середніх тонів" -#: ../src/iop/colorbalance.c:2089 +#: ../src/iop/colorbalance.c:2064 msgid "factor of red for gamma/power" msgstr "Коефіцієнт червоного для середніх тонів" -#: ../src/iop/colorbalance.c:2090 +#: ../src/iop/colorbalance.c:2065 msgid "factor of green for gamma/power" msgstr "Коефіцієнт зеленого для середніх тонів" -#: ../src/iop/colorbalance.c:2091 +#: ../src/iop/colorbalance.c:2066 msgid "factor of blue for gamma/power" msgstr "Коефіцієнт синього для середніх тонів" -#: ../src/iop/colorbalance.c:2094 +#: ../src/iop/colorbalance.c:2069 msgid "factor of gain/slope" msgstr "Коефіцієнт для світлих тонів" -#: ../src/iop/colorbalance.c:2095 +#: ../src/iop/colorbalance.c:2070 msgid "factor of red for gain/slope" msgstr "Коефіцієнт червоного для світлих тонів" -#: ../src/iop/colorbalance.c:2096 +#: ../src/iop/colorbalance.c:2071 msgid "factor of green for gain/slope" msgstr "Коефіцієнт зеленого для світлих тонів" -#: ../src/iop/colorbalance.c:2097 +#: ../src/iop/colorbalance.c:2072 msgid "factor of blue for gain/slope" msgstr "Коефіцієнт синього для світлих тонів" -#: ../src/iop/colorbalance.c:2106 +#: ../src/iop/colorbalance.c:2081 msgctxt "section" msgid "auto optimizers" msgstr "Автоматичні оптимізатори" -#: ../src/iop/colorbalance.c:2111 +#: ../src/iop/colorbalance.c:2086 msgid "fit the whole histogram and center the average luma" msgstr "Нормалізувати гістограму і центрувати середню яскравість" -#: ../src/iop/colorbalance.c:2117 +#: ../src/iop/colorbalance.c:2092 msgid "optimize the RGB curves to remove color casts" msgstr "Оптимізувати криві RGB для видалення обарвлення" @@ -14672,84 +15242,84 @@ "Інструменти градації кольорів, які використовують альфа-маски\n" "для розділення тіней, середніх тонів і світлих ділянок" -#: ../src/iop/colorbalancergb.c:443 +#: ../src/iop/colorbalancergb.c:536 msgid "add basic colorfulness (legacy)" msgstr "Базова барвистість (попередня версія)" -#: ../src/iop/colorbalancergb.c:452 +#: ../src/iop/colorbalancergb.c:545 msgid "basic colorfulness: natural skin" msgstr "Базова барвистість: природна шкіра" -#: ../src/iop/colorbalancergb.c:458 +#: ../src/iop/colorbalancergb.c:551 msgid "basic colorfulness: vibrant colors" msgstr "Базова барвистість: яскраві кольори" -#: ../src/iop/colorbalancergb.c:464 +#: ../src/iop/colorbalancergb.c:557 msgid "basic colorfulness: standard" msgstr "Базова барвистість: стандарт" -#: ../src/iop/colorbalancergb.c:937 +#: ../src/iop/colorbalancergb.c:1022 msgid "colorbalance works only on RGB input" msgstr "Колірний баланс працює лише з RGB входом" -#: ../src/iop/colorbalancergb.c:1506 ../src/iop/colorzones.c:2164 -#: ../src/iop/retouch.c:1884 ../src/iop/toneequal.c:1966 +#: ../src/iop/colorbalancergb.c:1577 ../src/iop/colorzones.c:2394 +#: ../src/iop/retouch.c:2069 ../src/iop/toneequal.c:1996 msgid "cannot display masks when the blending mask is displayed" msgstr "Неможливо відображати маски, коли відображається маска змішування" #. Page master -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "master" msgstr "Основні параметри" -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "global grading" msgstr "Глобальний грейдинг" -#: ../src/iop/colorbalancergb.c:1880 +#: ../src/iop/colorbalancergb.c:1951 msgid "rotate all hues by an angle, at the same luminance" msgstr "Обертати всі відтінки на певний кут з однаковою яскравістю" -#: ../src/iop/colorbalancergb.c:1886 +#: ../src/iop/colorbalancergb.c:1957 msgid "increase colorfulness mostly on low-chroma colors" msgstr "Збільшити барвистість переважно низькохроматичних відтінків" -#: ../src/iop/colorbalancergb.c:1892 +#: ../src/iop/colorbalancergb.c:1963 msgid "increase the contrast at constant chromaticity" msgstr "Збільшити контраст при незмінній хроматичності" -#: ../src/iop/colorbalancergb.c:1894 +#: ../src/iop/colorbalancergb.c:1965 msgctxt "section" msgid "linear chroma grading" msgstr "Лінійний грейдинг кольоровості" -#: ../src/iop/colorbalancergb.c:1901 +#: ../src/iop/colorbalancergb.c:1972 msgid "increase colorfulness at same luminance globally" msgstr "Збільшити барвистість при однаковій яскравості глобально" -#: ../src/iop/colorbalancergb.c:1906 +#: ../src/iop/colorbalancergb.c:1977 msgid "increase colorfulness at same luminance mostly in shadows" msgstr "Збільшити барвистість при однаковій яскравості в тінях" -#: ../src/iop/colorbalancergb.c:1911 +#: ../src/iop/colorbalancergb.c:1982 msgid "increase colorfulness at same luminance mostly in mid-tones" msgstr "Збільшити барвистість при однаковій яскравості в середніх тонах" -#: ../src/iop/colorbalancergb.c:1916 +#: ../src/iop/colorbalancergb.c:1987 msgid "increase colorfulness at same luminance mostly in highlights" msgstr "Збільшити барвистість при однаковій яскравості в світлих тонах" -#: ../src/iop/colorbalancergb.c:1918 +#: ../src/iop/colorbalancergb.c:1989 msgctxt "section" msgid "perceptual saturation grading" msgstr "Перцепційний грейдинг насиченості" -#: ../src/iop/colorbalancergb.c:1924 +#: ../src/iop/colorbalancergb.c:1995 msgid "add or remove saturation by an absolute amount" msgstr "Додати чи прибрати насиченість в абсолютній величині" -#: ../src/iop/colorbalancergb.c:1929 ../src/iop/colorbalancergb.c:1934 -#: ../src/iop/colorbalancergb.c:1939 +#: ../src/iop/colorbalancergb.c:2000 ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2010 msgid "" "increase or decrease saturation proportionally to the original pixel " "saturation" @@ -14757,21 +15327,21 @@ "Збільшувати або зменшувати насиченість пропорційно оригінальній насиченості " "пікселів" -#: ../src/iop/colorbalancergb.c:1941 +#: ../src/iop/colorbalancergb.c:2012 msgctxt "section" msgid "perceptual brilliance grading" msgstr "Перцепційний грейдинг блискучості" -#: ../src/iop/colorbalancergb.c:1942 +#: ../src/iop/colorbalancergb.c:2013 msgid "brilliance" msgstr "Блискучість" -#: ../src/iop/colorbalancergb.c:1947 +#: ../src/iop/colorbalancergb.c:2018 msgid "add or remove brilliance by an absolute amount" msgstr "Додати чи прибрати блискучість в абсолютній величині" -#: ../src/iop/colorbalancergb.c:1952 ../src/iop/colorbalancergb.c:1957 -#: ../src/iop/colorbalancergb.c:1962 +#: ../src/iop/colorbalancergb.c:2023 ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2033 msgid "" "increase or decrease brilliance proportionally to the original pixel " "brilliance" @@ -14780,160 +15350,160 @@ "пікселів" #. Page 4-ways -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "4 ways" msgstr "4 діапазони" -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "selective color grading" msgstr "Вибірковий грейдинг" -#: ../src/iop/colorbalancergb.c:1967 +#: ../src/iop/colorbalancergb.c:2038 msgctxt "section" msgid "global offset" msgstr "Глобальне зміщення" -#: ../src/iop/colorbalancergb.c:1974 +#: ../src/iop/colorbalancergb.c:2045 msgid "global luminance offset" msgstr "Глобальне зміщення яскравості" -#: ../src/iop/colorbalancergb.c:1979 +#: ../src/iop/colorbalancergb.c:2050 msgid "hue of the global color offset" msgstr "Глобальне зміщення відтінку" -#: ../src/iop/colorbalancergb.c:1985 +#: ../src/iop/colorbalancergb.c:2056 msgid "chroma of the global color offset" msgstr "Глобальне зміщення кольоровості" -#: ../src/iop/colorbalancergb.c:1987 +#: ../src/iop/colorbalancergb.c:2058 msgctxt "section" msgid "shadows lift" msgstr "Підйом тіней" -#: ../src/iop/colorbalancergb.c:1988 +#: ../src/iop/colorbalancergb.c:2059 msgid "lift" msgstr "Підйом" -#: ../src/iop/colorbalancergb.c:1994 +#: ../src/iop/colorbalancergb.c:2065 msgid "luminance gain in shadows" msgstr "Посилення яскравості в тінях" -#: ../src/iop/colorbalancergb.c:1999 +#: ../src/iop/colorbalancergb.c:2070 msgid "hue of the color gain in shadows" msgstr "Посилення відтінку в тінях" -#: ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2076 msgid "chroma of the color gain in shadows" msgstr "Посилення кольоровості в тінях" -#: ../src/iop/colorbalancergb.c:2007 +#: ../src/iop/colorbalancergb.c:2078 msgctxt "section" msgid "highlights gain" msgstr "Підсилення світлих тонів" -#: ../src/iop/colorbalancergb.c:2008 +#: ../src/iop/colorbalancergb.c:2079 msgid "gain" msgstr "Підсилення" -#: ../src/iop/colorbalancergb.c:2014 +#: ../src/iop/colorbalancergb.c:2085 msgid "luminance gain in highlights" msgstr "Посилення яскравості в світлих тонах" -#: ../src/iop/colorbalancergb.c:2019 +#: ../src/iop/colorbalancergb.c:2090 msgid "hue of the color gain in highlights" msgstr "Посилення відтінку в світлих тонах" -#: ../src/iop/colorbalancergb.c:2025 +#: ../src/iop/colorbalancergb.c:2096 msgid "chroma of the color gain in highlights" msgstr "Посилення кольоровості в світлих тонах" -#: ../src/iop/colorbalancergb.c:2027 +#: ../src/iop/colorbalancergb.c:2098 msgctxt "section" msgid "power" msgstr "Показник степеня" -#: ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2099 msgid "power" msgstr "Показник степеня" -#: ../src/iop/colorbalancergb.c:2034 +#: ../src/iop/colorbalancergb.c:2105 msgid "luminance exponent in mid-tones" msgstr "Експонента яскравості в середніх тонах" -#: ../src/iop/colorbalancergb.c:2039 +#: ../src/iop/colorbalancergb.c:2110 msgid "hue of the color exponent in mid-tones" msgstr "Експонента відтінку в середніх тонах" -#: ../src/iop/colorbalancergb.c:2045 +#: ../src/iop/colorbalancergb.c:2116 msgid "chroma of the color exponent in mid-tones" msgstr "Експонента кольоровості в середніх тонах" #. Page masks -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "masks" msgstr "Маски" -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "isolate luminances" msgstr "Ізоляція яскравостей" -#: ../src/iop/colorbalancergb.c:2052 +#: ../src/iop/colorbalancergb.c:2123 msgid "choose in which uniform color space the saturation is computed" msgstr "" "Вибрати, в якому рівномірному кольоровому просторі обчислюється насиченість" -#: ../src/iop/colorbalancergb.c:2054 +#: ../src/iop/colorbalancergb.c:2125 msgctxt "section" msgid "luminance ranges" msgstr "Діапазони яскравості" -#: ../src/iop/colorbalancergb.c:2065 +#: ../src/iop/colorbalancergb.c:2136 msgid "weight of the shadows over the whole tonal range" msgstr "Вага тіней у всьому тональному діапазоні" -#: ../src/iop/colorbalancergb.c:2073 +#: ../src/iop/colorbalancergb.c:2144 msgid "position of the middle-gray reference for masking" msgstr "Положення середньо-сірого еталону для маскування" -#: ../src/iop/colorbalancergb.c:2081 +#: ../src/iop/colorbalancergb.c:2152 msgid "weights of highlights over the whole tonal range" msgstr "Вага світлих тонів у всьому тональному діапазоні" -#: ../src/iop/colorbalancergb.c:2086 +#: ../src/iop/colorbalancergb.c:2157 msgctxt "section" msgid "threshold" msgstr "Поріг" -#: ../src/iop/colorbalancergb.c:2091 +#: ../src/iop/colorbalancergb.c:2162 msgid "peak white luminance value used to normalize the power function" msgstr "" "Пікове значення яскравості білого, що використовується для нормалізації " "степеневої функції" -#: ../src/iop/colorbalancergb.c:2097 +#: ../src/iop/colorbalancergb.c:2168 msgid "peak gray luminance value used to normalize the power function" msgstr "" "Пікове значення яскравості сірого, що використовується для нормалізації " "степеневої функції" -#: ../src/iop/colorbalancergb.c:2099 +#: ../src/iop/colorbalancergb.c:2170 msgctxt "section" msgid "mask preview settings" msgstr "Параметри попереднього перегляду маски" -#: ../src/iop/colorbalancergb.c:2102 +#: ../src/iop/colorbalancergb.c:2173 msgid "checkerboard color 1" msgstr "Шахівниця, колір 1" -#: ../src/iop/colorbalancergb.c:2105 ../src/iop/colorbalancergb.c:2114 +#: ../src/iop/colorbalancergb.c:2176 ../src/iop/colorbalancergb.c:2185 msgid "select color of the checkerboard from a swatch" msgstr "Вибрати колір шахівниці зі зразка" -#: ../src/iop/colorbalancergb.c:2111 +#: ../src/iop/colorbalancergb.c:2182 msgid "checkerboard color 2" msgstr "Шахівниця, колір 2" -#: ../src/iop/colorbalancergb.c:2121 +#: ../src/iop/colorbalancergb.c:2192 msgid "checkerboard size" msgstr "Розмір шахівниці" @@ -14950,11 +15520,11 @@ msgstr "Виконувати корекцію кольорового простору та застосовувати вигляд" #: ../src/iop/colorchecker.c:131 ../src/iop/colorchecker.c:133 -#: ../src/iop/colorize.c:106 ../src/iop/colormapping.c:154 -#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:136 -#: ../src/iop/colorzones.c:146 ../src/iop/defringe.c:83 ../src/iop/levels.c:139 -#: ../src/iop/monochrome.c:99 ../src/iop/shadhi.c:198 -#: ../src/iop/tonecurve.c:212 ../src/iop/vibrance.c:96 +#: ../src/iop/colorize.c:99 ../src/iop/colormapping.c:154 +#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:121 +#: ../src/iop/colorzones.c:147 ../src/iop/defringe.c:83 ../src/iop/levels.c:141 +#: ../src/iop/monochrome.c:101 ../src/iop/shadhi.c:145 +#: ../src/iop/tonecurve.c:185 ../src/iop/vibrance.c:98 msgid "linear or non-linear, Lab, display-referred" msgstr "лінійний або нелінійний простір, Lab, на основі відображення" @@ -14962,40 +15532,40 @@ msgid "defined by profile, Lab" msgstr "визначається профілем, Lab" -#: ../src/iop/colorchecker.c:294 +#: ../src/iop/colorchecker.c:308 msgid "it8 skin tones" msgstr "Тони шкіри IT8" -#: ../src/iop/colorchecker.c:310 +#: ../src/iop/colorchecker.c:324 msgid "Helmholtz/Kohlrausch monochrome" msgstr "Монохром Гельмгольц/Кольрауш" -#: ../src/iop/colorchecker.c:327 +#: ../src/iop/colorchecker.c:341 msgid "Fuji Astia emulation" msgstr "Емуляція Fuji Astia" -#: ../src/iop/colorchecker.c:341 +#: ../src/iop/colorchecker.c:355 msgid "Fuji Classic Chrome emulation" msgstr "Емуляція Fuji Classic Chrome" -#: ../src/iop/colorchecker.c:355 +#: ../src/iop/colorchecker.c:369 msgid "Fuji Monochrome emulation" msgstr "Емуляція Fuji Monochrome" -#: ../src/iop/colorchecker.c:369 +#: ../src/iop/colorchecker.c:383 msgid "Fuji Provia emulation" msgstr "Емуляція Fuji Provia" -#: ../src/iop/colorchecker.c:383 +#: ../src/iop/colorchecker.c:397 msgid "Fuji Velvia emulation" msgstr "Емуляція Fuji Velvia" -#: ../src/iop/colorchecker.c:841 ../src/iop/colorchecker.c:1436 +#: ../src/iop/colorchecker.c:846 ../src/iop/colorchecker.c:1441 #, c-format msgid "patch #%d" msgstr "Зразок #%d" -#: ../src/iop/colorchecker.c:1283 +#: ../src/iop/colorchecker.c:1288 #, c-format msgid "" "(%2.2f %2.2f %2.2f)\n" @@ -15012,15 +15582,15 @@ "Клік правою кнопкою - видалити зразок\n" "Shift+клік при виборі кольору - замінити зразок" -#: ../src/iop/colorchecker.c:1431 +#: ../src/iop/colorchecker.c:1436 msgid "patch" msgstr "Зразок" -#: ../src/iop/colorchecker.c:1432 +#: ../src/iop/colorchecker.c:1437 msgid "color checker patch" msgstr "Зразок калібраційної мішені" -#: ../src/iop/colorchecker.c:1446 +#: ../src/iop/colorchecker.c:1451 msgid "" "adjust target color Lab 'L' channel\n" "lower values darken target color while higher brighten it" @@ -15028,7 +15598,7 @@ "Регулювати канал 'L' (Lab) цільового кольору\n" "Нижчі значення затемняють цільовий колір, а вищі роблять його яскравішим" -#: ../src/iop/colorchecker.c:1454 +#: ../src/iop/colorchecker.c:1459 msgid "" "adjust target color Lab 'a' channel\n" "lower values shift target color towards greens while higher shift towards " @@ -15038,11 +15608,11 @@ "Нижчі значення зміщують цільовий колір у бік зеленого, тоді як вищі зміщують " "до мадженти" -#: ../src/iop/colorchecker.c:1457 +#: ../src/iop/colorchecker.c:1462 msgid "green-magenta offset" msgstr "Зміщення зелений-маджента" -#: ../src/iop/colorchecker.c:1466 +#: ../src/iop/colorchecker.c:1471 msgid "" "adjust target color Lab 'b' channel\n" "lower values shift target color towards blues while higher shift towards " @@ -15052,11 +15622,11 @@ "Нижчі значення зміщують цільовий колір у бік синього, тоді як вищі в бік " "жовтого" -#: ../src/iop/colorchecker.c:1469 +#: ../src/iop/colorchecker.c:1474 msgid "blue-yellow offset" msgstr "Зміщення синій-жовтий" -#: ../src/iop/colorchecker.c:1478 +#: ../src/iop/colorchecker.c:1483 msgid "" "adjust target color saturation\n" "adjusts 'a' and 'b' channels of target color in Lab space simultaneously\n" @@ -15068,11 +15638,11 @@ "Нижчі значення зміщують колір до меншої насиченості, а вищі до більшої " "насиченості" -#: ../src/iop/colorchecker.c:1487 +#: ../src/iop/colorchecker.c:1492 msgid "target color" msgstr "Цільовий колір" -#: ../src/iop/colorchecker.c:1490 +#: ../src/iop/colorchecker.c:1495 msgid "" "control target color of the patches\n" "relative - target color is relative from the patch original color\n" @@ -15083,15 +15653,15 @@ "зразка\n" "Абсолютні значення - цільовий колір є абсолютним значенням Lab" -#: ../src/iop/colorchecker.c:1494 +#: ../src/iop/colorchecker.c:1499 msgid "absolute" msgstr "Абсолютні значення" -#: ../src/iop/colorcontrast.c:85 +#: ../src/iop/colorcontrast.c:77 msgid "color contrast" msgstr "Колірний контраст" -#: ../src/iop/colorcontrast.c:95 +#: ../src/iop/colorcontrast.c:87 msgid "" "increase saturation and separation between\n" "opposite colors" @@ -15099,7 +15669,7 @@ "Збільшити насиченість і розділення між\n" "протилежними кольорами" -#: ../src/iop/colorcontrast.c:324 +#: ../src/iop/colorcontrast.c:330 msgid "" "steepness of the a* curve in Lab\n" "lower values desaturate greens and magenta while higher saturate them" @@ -15108,7 +15678,7 @@ "Нижчі значення зменшують насиченість зелених і мадженти, тоді як вищі " "насичують їх" -#: ../src/iop/colorcontrast.c:331 +#: ../src/iop/colorcontrast.c:337 msgid "" "steepness of the b* curve in Lab\n" "lower values desaturate blues and yellows while higher saturate them" @@ -15125,19 +15695,19 @@ msgid "correct white balance selectively for blacks and whites" msgstr "Вибіркове коригування балансу білого для тіней та світлих ділянок" -#: ../src/iop/colorcorrection.c:107 +#: ../src/iop/colorcorrection.c:109 msgid "warm tone" msgstr "Теплий тон" -#: ../src/iop/colorcorrection.c:115 +#: ../src/iop/colorcorrection.c:117 msgid "warming filter" msgstr "Утеплюючий фільтр" -#: ../src/iop/colorcorrection.c:123 +#: ../src/iop/colorcorrection.c:125 msgid "cooling filter" msgstr "Охолоджуючий фільтр" -#: ../src/iop/colorcorrection.c:257 +#: ../src/iop/colorcorrection.c:250 msgid "" "drag the line for split-toning. bright means highlights, dark means shadows. " "use mouse wheel to change saturation." @@ -15146,7 +15716,7 @@ "світлі тони, темна означає тіні. Використовуйте колесо миші, щоб змінити " "насиченість." -#: ../src/iop/colorcorrection.c:276 +#: ../src/iop/colorcorrection.c:269 msgid "set the global saturation" msgstr "Встановити глобальну насиченість" @@ -15163,7 +15733,7 @@ "використовуючи кольорові профілі для відображення RGB значень" #: ../src/iop/colorin.c:133 ../src/iop/colorout.c:89 ../src/iop/demosaic.c:293 -#: ../src/iop/rawprepare.c:158 +#: ../src/iop/rawprepare.c:174 msgid "mandatory" msgstr "Обов'язковий модуль" @@ -15171,7 +15741,7 @@ msgid "defined by profile" msgstr "Визначається профілем" -#: ../src/iop/colorin.c:542 +#: ../src/iop/colorin.c:582 #, c-format msgid "" "can't extract matrix from colorspace `%s', it will be replaced by Rec2020 " @@ -15180,24 +15750,24 @@ "Не вдається отримати матрицю з кольорового простору `%s', його замінить " "Rec2020 RGB!" -#: ../src/iop/colorin.c:1424 +#: ../src/iop/colorin.c:1362 #, c-format msgid "`%s' color matrix not found!" msgstr "Матрицю кольорів `%s' не знайдено!" -#: ../src/iop/colorin.c:1463 +#: ../src/iop/colorin.c:1401 msgid "input profile could not be generated!" msgstr "Вхідний профіль не вдається згенерувати!" -#: ../src/iop/colorin.c:1560 +#: ../src/iop/colorin.c:1498 msgid "unsupported input profile has been replaced by linear Rec709 RGB!" msgstr "Непідтримуваний вхідний профіль замінено на лінійний Rec709 RGB!" -#: ../src/iop/colorin.c:1844 +#: ../src/iop/colorin.c:1782 msgid "external ICC profiles" msgstr "зовнішні ICC профілі" -#: ../src/iop/colorin.c:1889 +#: ../src/iop/colorin.c:1827 #, c-format msgid "" "embedded ICC profile properties:\n" @@ -15220,43 +15790,43 @@ "Авторське право: <b>%s</b>\n" "\n" -#: ../src/iop/colorin.c:2084 +#: ../src/iop/colorin.c:2022 msgid "input profile" msgstr "Вхідний профіль" -#: ../src/iop/colorin.c:2088 +#: ../src/iop/colorin.c:2026 msgid "working profile" msgstr "Робочий профіль" -#: ../src/iop/colorin.c:2097 +#: ../src/iop/colorin.c:2035 msgid "working ICC profiles" msgstr "робочі ICC профілі" -#: ../src/iop/colorin.c:2109 +#: ../src/iop/colorin.c:2047 msgid "confine Lab values to gamut of RGB color space" msgstr "Обмежити значення Lab до охоплення колірного простору RGB" -#: ../src/iop/colorize.c:84 +#: ../src/iop/colorize.c:75 msgid "colorize" msgstr "Тонування" -#: ../src/iop/colorize.c:104 +#: ../src/iop/colorize.c:97 msgid "overlay a solid color on the image" msgstr "Накласти на зображення суцільний колір" -#: ../src/iop/colorize.c:341 ../src/iop/splittoning.c:485 +#: ../src/iop/colorize.c:354 ../src/iop/splittoning.c:481 msgid "select the hue tone" msgstr "Виберіть відтінок" -#: ../src/iop/colorize.c:347 +#: ../src/iop/colorize.c:360 msgid "select the saturation shadow tone" msgstr "Виберіть насиченість тону в тінях" -#: ../src/iop/colorize.c:351 +#: ../src/iop/colorize.c:364 msgid "lightness of color" msgstr "Яскравість кольорового шару" -#: ../src/iop/colorize.c:355 +#: ../src/iop/colorize.c:368 msgid "mix value of source lightness" msgstr "Частина внеску яскравості початкового зображення в результат" @@ -15270,37 +15840,37 @@ msgstr "" "Перенос палітри кольорів і тонального розподілу з одного зображення в інше" -#: ../src/iop/colormapping.c:1030 +#: ../src/iop/colormapping.c:1019 msgid "source clusters:" msgstr "Джерельні кластери:" -#: ../src/iop/colormapping.c:1036 +#: ../src/iop/colormapping.c:1025 msgid "target clusters:" msgstr "Цільові кластери:" -#: ../src/iop/colormapping.c:1045 +#: ../src/iop/colormapping.c:1034 msgid "acquire as source" msgstr "Отримати з джерела" -#: ../src/iop/colormapping.c:1049 +#: ../src/iop/colormapping.c:1038 msgid "analyze this image as a source image" msgstr "Проаналізувати це зображення як джерельне" -#: ../src/iop/colormapping.c:1051 +#: ../src/iop/colormapping.c:1040 msgid "acquire as target" msgstr "Отримати з цілі" -#: ../src/iop/colormapping.c:1055 +#: ../src/iop/colormapping.c:1044 msgid "analyze this image as a target image" msgstr "Проаналізувати це зображення як цільове" -#: ../src/iop/colormapping.c:1058 +#: ../src/iop/colormapping.c:1047 msgid "number of clusters to find in image. value change resets all clusters" msgstr "" "Скільки кластерів отримати із зображення. Зміна значення скидає всі " "заповнені кластери" -#: ../src/iop/colormapping.c:1061 +#: ../src/iop/colormapping.c:1050 msgid "" "how clusters are mapped. low values: based on color proximity, high values: " "based on color dominance" @@ -15308,7 +15878,7 @@ "Як кластери відображаються. Низькі значення - на основі близькості кольорів, " "високі значення - на основі домінуючих кольорів" -#: ../src/iop/colormapping.c:1066 +#: ../src/iop/colormapping.c:1055 msgid "level of histogram equalization" msgstr "Рівень вирівнювання гістограми" @@ -15328,114 +15898,114 @@ msgid "non-linear, RGB or Lab, display-referred" msgstr "нелінійний простір, RGB або Lab, на основі відображення" -#: ../src/iop/colorout.c:679 +#: ../src/iop/colorout.c:695 msgid "missing output profile has been replaced by sRGB!" msgstr "Відсутній вихідний профіль замінено на sRGB!" -#: ../src/iop/colorout.c:701 +#: ../src/iop/colorout.c:717 msgid "missing softproof profile has been replaced by sRGB!" msgstr "Відсутній профіль екранної кольоропроби замінено на sRGB!" -#: ../src/iop/colorout.c:744 +#: ../src/iop/colorout.c:760 msgid "unsupported output profile has been replaced by sRGB!" msgstr "Непідтримуваний вихідний профіль замінено на sRGB!" -#: ../src/iop/colorout.c:869 +#: ../src/iop/colorout.c:885 msgid "output intent" msgstr "Вихідний метод" -#: ../src/iop/colorout.c:870 +#: ../src/iop/colorout.c:886 msgid "rendering intent" msgstr "Метод візуалізації" -#: ../src/iop/colorout.c:872 ../src/libs/export.c:1246 +#: ../src/iop/colorout.c:888 ../src/libs/export.c:1358 #: ../src/libs/print_settings.c:2475 ../src/libs/print_settings.c:2824 -#: ../src/views/darkroom.c:2518 ../src/views/lighttable.c:1176 +#: ../src/views/darkroom.c:2359 ../src/views/lighttable.c:1176 msgid "perceptual" msgstr "Перцепційний" -#: ../src/iop/colorout.c:873 ../src/libs/export.c:1247 +#: ../src/iop/colorout.c:889 ../src/libs/export.c:1359 #: ../src/libs/print_settings.c:2476 ../src/libs/print_settings.c:2825 -#: ../src/views/darkroom.c:2519 ../src/views/lighttable.c:1177 +#: ../src/views/darkroom.c:2360 ../src/views/lighttable.c:1177 msgid "relative colorimetric" msgstr "Відносний колориметричний" -#: ../src/iop/colorout.c:874 ../src/libs/export.c:1248 +#: ../src/iop/colorout.c:890 ../src/libs/export.c:1360 #: ../src/libs/print_settings.c:2477 ../src/libs/print_settings.c:2826 -#: ../src/views/darkroom.c:2520 ../src/views/lighttable.c:1178 +#: ../src/views/darkroom.c:2361 ../src/views/lighttable.c:1178 msgctxt "rendering intent" msgid "saturation" msgstr "Насиченість" -#: ../src/iop/colorout.c:875 ../src/libs/export.c:1249 +#: ../src/iop/colorout.c:891 ../src/libs/export.c:1361 #: ../src/libs/print_settings.c:2478 ../src/libs/print_settings.c:2827 -#: ../src/views/darkroom.c:2521 ../src/views/lighttable.c:1179 +#: ../src/views/darkroom.c:2362 ../src/views/lighttable.c:1179 msgid "absolute colorimetric" msgstr "Абсолютний колориметричний" -#: ../src/iop/colorout.c:893 +#: ../src/iop/colorout.c:909 msgid "export ICC profiles" msgstr "ICC профілі експорту" -#: ../src/iop/colorreconstruction.c:129 +#: ../src/iop/colorreconstruction.c:114 msgid "color reconstruction" msgstr "Відновлення кольору" -#: ../src/iop/colorreconstruction.c:134 +#: ../src/iop/colorreconstruction.c:119 msgid "recover clipped highlights by propagating surrounding colors" msgstr "" "Відновлення обрізаних переекспонованих ділянок шляхом поширення навколишніх " "кольорів" -#: ../src/iop/colorreconstruction.c:628 ../src/iop/colorreconstruction.c:1040 -#: ../src/iop/globaltonemap.c:193 ../src/iop/globaltonemap.c:362 -#: ../src/iop/hazeremoval.c:553 ../src/iop/hazeremoval.c:788 -#: ../src/iop/levels.c:336 +#: ../src/iop/colorreconstruction.c:647 ../src/iop/colorreconstruction.c:1053 +#: ../src/iop/globaltonemap.c:227 ../src/iop/globaltonemap.c:396 +#: ../src/iop/hazeremoval.c:541 ../src/iop/hazeremoval.c:776 +#: ../src/iop/levels.c:358 msgid "inconsistent output" msgstr "inconsistent output" -#: ../src/iop/colorreconstruction.c:666 +#: ../src/iop/colorreconstruction.c:685 msgid "module `color reconstruction' failed" msgstr "Модуль 'Відновлення кольору' не спрацював" -#: ../src/iop/colorreconstruction.c:1237 +#: ../src/iop/colorreconstruction.c:1246 msgid "spatial" msgstr "Просторовий вимір" -#: ../src/iop/colorreconstruction.c:1238 +#: ../src/iop/colorreconstruction.c:1247 msgid "range" msgstr "Діапазон" -#: ../src/iop/colorreconstruction.c:1239 +#: ../src/iop/colorreconstruction.c:1248 msgid "precedence" msgstr "Пріоритет" -#: ../src/iop/colorreconstruction.c:1255 +#: ../src/iop/colorreconstruction.c:1264 msgid "pixels with lightness values above this threshold are corrected" msgstr "Пікселі зі значеннями яскравості вище цього порогу виправляються" -#: ../src/iop/colorreconstruction.c:1256 +#: ../src/iop/colorreconstruction.c:1265 msgid "how far to look for replacement colors in spatial dimensions" msgstr "Як далеко шукати кольори заміни в просторовому вимірі" -#: ../src/iop/colorreconstruction.c:1257 +#: ../src/iop/colorreconstruction.c:1266 msgid "how far to look for replacement colors in the luminance dimension" msgstr "Як далеко шукати кольори заміни у вимірі яскравості" -#: ../src/iop/colorreconstruction.c:1258 +#: ../src/iop/colorreconstruction.c:1267 msgid "if and how to give precedence to specific replacement colors" msgstr "Коли і як давати пріоритет певним кольорам заміни" -#: ../src/iop/colorreconstruction.c:1259 +#: ../src/iop/colorreconstruction.c:1268 msgid "the hue tone which should be given precedence over other hue tones" msgstr "Тон відтінку, якому слід надавати перевагу над іншими відтінками" -#: ../src/iop/colorreconstruction.c:1261 ../src/iop/demosaic.c:1277 -#: ../src/iop/highlights.c:1168 +#: ../src/iop/colorreconstruction.c:1270 ../src/iop/demosaic.c:1324 +#: ../src/iop/highlights.c:1258 msgid "not applicable" msgstr "Не застосовується" -#: ../src/iop/colorreconstruction.c:1262 +#: ../src/iop/colorreconstruction.c:1271 msgid "no highlights reconstruction for monochrome images" msgstr "" "Для монохромних зображень відновлення переекспонованих ділянок не " @@ -15451,7 +16021,7 @@ "Цей модуль застарілий. Краще використовувати модуль 'Перенос кольорів' " "замість нього." -#: ../src/iop/colortransfer.c:439 +#: ../src/iop/colortransfer.c:441 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -15461,43 +16031,43 @@ "Він тут лише для того, щоб ви могли його вимкнути\n" "і перейти до нового модуля відображення кольорів." -#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2332 +#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2573 msgid "color zones" msgstr "Колірні зони" -#: ../src/iop/colorzones.c:144 +#: ../src/iop/colorzones.c:145 msgid "selectively shift hues, chroma and lightness of pixels" msgstr "Вибірково зміщувати відтінки, кольоровість та яскравість пікселів" -#: ../src/iop/colorzones.c:606 +#: ../src/iop/colorzones.c:684 msgid "B&W: with red" msgstr "Ч/Б: з червоним" -#: ../src/iop/colorzones.c:629 +#: ../src/iop/colorzones.c:707 msgid "B&W: with skin tones" msgstr "Ч/Б: з тонами шкіри" -#: ../src/iop/colorzones.c:652 +#: ../src/iop/colorzones.c:732 msgid "polarizing filter" msgstr "Поляризаційний фільтр" -#: ../src/iop/colorzones.c:673 +#: ../src/iop/colorzones.c:753 msgid "natural skin tones" msgstr "Тони шкіри" -#: ../src/iop/colorzones.c:704 +#: ../src/iop/colorzones.c:784 msgid "B&W: film" msgstr "Ч/Б: плівка" -#: ../src/iop/colorzones.c:724 +#: ../src/iop/colorzones.c:804 msgid "HSL base setting" msgstr "Базове налаштування HSL" -#: ../src/iop/colorzones.c:2264 +#: ../src/iop/colorzones.c:2500 msgid "orange" msgstr "Помаранчевий" -#: ../src/iop/colorzones.c:2421 ../src/iop/rgbcurve.c:1375 +#: ../src/iop/colorzones.c:2673 ../src/iop/rgbcurve.c:1375 msgid "" "create a curve based on an area from the image\n" "drag to create a flat curve\n" @@ -15509,48 +16079,48 @@ "Ctrl+перетягування - створити позитивну криву\n" "Shift+перетягування - створити негативну криву" -#: ../src/iop/colorzones.c:2425 ../src/iop/rgbcurve.c:1379 +#: ../src/iop/colorzones.c:2677 ../src/iop/rgbcurve.c:1379 msgid "create curve" msgstr "Створити криву" #. edit by area -#: ../src/iop/colorzones.c:2442 +#: ../src/iop/colorzones.c:2696 msgid "edit by area" msgstr "Редагувати за областями" -#: ../src/iop/colorzones.c:2447 +#: ../src/iop/colorzones.c:2702 msgid "edit the curve nodes by area" msgstr "Редагувати вузли кривої за областями" -#: ../src/iop/colorzones.c:2454 +#: ../src/iop/colorzones.c:2710 msgid "display selection" msgstr "Показати маску" -#: ../src/iop/colorzones.c:2463 +#: ../src/iop/colorzones.c:2722 msgid "choose selection criterion, will be the abscissa in the graph" msgstr "Виберіть критерій виділення, він буде абсцисою на графіку" -#: ../src/iop/colorzones.c:2466 +#: ../src/iop/colorzones.c:2725 msgid "choose between a smoother or stronger effect" msgstr "Виберіть між більш плавним або сильнішим ефектом" -#: ../src/iop/colorzones.c:2494 ../src/iop/rgbcurve.c:1410 -#: ../src/iop/tonecurve.c:1172 +#: ../src/iop/colorzones.c:2762 ../src/iop/rgbcurve.c:1410 +#: ../src/iop/tonecurve.c:1194 msgid "interpolation method" msgstr "Метод інтерполяції" -#: ../src/iop/colorzones.c:2496 ../src/iop/rgbcurve.c:1412 -#: ../src/iop/tonecurve.c:1174 +#: ../src/iop/colorzones.c:2764 ../src/iop/rgbcurve.c:1412 +#: ../src/iop/tonecurve.c:1196 msgid "centripetal spline" msgstr "Доцентровий сплайн" -#: ../src/iop/colorzones.c:2497 ../src/iop/rgbcurve.c:1413 -#: ../src/iop/tonecurve.c:1175 +#: ../src/iop/colorzones.c:2765 ../src/iop/rgbcurve.c:1413 +#: ../src/iop/tonecurve.c:1197 msgid "monotonic spline" msgstr "Монотонний сплайн" -#: ../src/iop/colorzones.c:2500 ../src/iop/rgbcurve.c:1416 -#: ../src/iop/tonecurve.c:1177 +#: ../src/iop/colorzones.c:2768 ../src/iop/rgbcurve.c:1416 +#: ../src/iop/tonecurve.c:1199 msgid "" "change this method if you see oscillations or cusps in the curve\n" "- cubic spline is better to produce smooth curves but oscillates when nodes " @@ -15567,25 +16137,25 @@ "але менш плавний\n" "- Монотонний краще для точності чистих аналітичних функцій (log, gamma, exp)" -#: ../src/iop/crop.c:132 +#: ../src/iop/crop.c:122 msgid "crop" msgstr "Кадрування" -#: ../src/iop/crop.c:137 +#: ../src/iop/crop.c:127 msgid "reframe|distortion" msgstr "reframe|distortion" -#: ../src/iop/crop.c:143 +#: ../src/iop/crop.c:133 msgid "change the framing" msgstr "Змінити кадрування" -#: ../src/iop/crop.c:1667 +#: ../src/iop/crop.c:1651 msgid "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag" msgstr "" "<b>Зміна розміру</b>: перетягування, <b>Зберегти співвідношення сторін</b>: " "Shift+перетягування" -#: ../src/iop/crop.c:1676 +#: ../src/iop/crop.c:1660 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag" @@ -15609,7 +16179,7 @@ "Цей модуль застарілий. Краще використовувати модуль 'Хроматичні аберації' " "замість нього." -#: ../src/iop/defringe.c:415 +#: ../src/iop/defringe.c:417 msgid "" "method for color protection:\n" " - global average: fast, might show slightly wrong previews in high " @@ -15629,11 +16199,11 @@ "може забезпечити більшу десатурацію там, де це потрібно\n" "- Статичний поріг: швидкий, лише використовує поріг як статичне обмеження" -#: ../src/iop/defringe.c:422 +#: ../src/iop/defringe.c:424 msgid "radius for detecting fringe" msgstr "Радіус для виявлення кайми" -#: ../src/iop/defringe.c:425 +#: ../src/iop/defringe.c:427 msgid "threshold for defringe, higher values mean less defringing" msgstr "Поріг для видалення кайми, вищі значення означають менше видалення" @@ -15646,12 +16216,12 @@ msgstr "" "Реконструювати повні RGB-пікселі з даних масиву кольорових фільтрів сенсора" -#: ../src/iop/demosaic.c:1086 +#: ../src/iop/demosaic.c:1133 #, c-format msgid "`%s' color matrix not found for 4bayer image!" -msgstr "Матрицю кольорів `%s' не знайдено для Quad Bayer зображення!" +msgstr "Матрицю кольорів `%s' не знайдено для Bayer4 зображення!" -#: ../src/iop/demosaic.c:1238 +#: ../src/iop/demosaic.c:1285 msgid "" "Bayer sensor demosaicing method, PPG and RCD are fast, AMaZE and LMMSE are " "slow.\n" @@ -15663,7 +16233,7 @@ "LMMSE найкраще підходить для зображень з високим значенням ISO.\n" "Варіанти з двома методами подвоюють час обробки." -#: ../src/iop/demosaic.c:1242 +#: ../src/iop/demosaic.c:1289 msgid "" "X-Trans sensor demosaicing method, Markesteijn 3-pass and frequency domain " "chroma are slow.\n" @@ -15673,11 +16243,11 @@ "domain chroma повільні.\n" "Варіанти з двома методами подвоюють час обробки." -#: ../src/iop/demosaic.c:1248 +#: ../src/iop/demosaic.c:1295 msgid "Bayer4 sensor demosaicing methods." -msgstr "Методи демозаїкізації Quad Bayer." +msgstr "Методи демозаїкізації Bayer4." -#: ../src/iop/demosaic.c:1252 +#: ../src/iop/demosaic.c:1299 msgid "" "threshold for edge-aware median.\n" "set to 0.0 to switch off\n" @@ -15687,7 +16257,7 @@ "0.0 - вимикає медіанну фільтрацію\n" "1.0 - ігнорувати контури" -#: ../src/iop/demosaic.c:1257 +#: ../src/iop/demosaic.c:1304 msgid "" "contrast threshold for dual demosaic.\n" "set to 0.0 for high frequency content\n" @@ -15699,7 +16269,7 @@ "1.0 - для плоского вмісту\n" "Перемикач візуалізує маску" -#: ../src/iop/demosaic.c:1265 +#: ../src/iop/demosaic.c:1312 msgid "" "LMMSE refinement steps. the median steps average the output,\n" "refine adds some recalculation of red & blue channels" @@ -15707,50 +16277,50 @@ "Кроки уточнення LMMSE. Медіанні кроки усереднюють вихід,\n" "уточнення додає певний перерахунок червоних та синіх каналів" -#: ../src/iop/demosaic.c:1268 +#: ../src/iop/demosaic.c:1315 msgid "how many color smoothing median steps after demosaicing" msgstr "" "Кількість медіанних проходів згладжування кольорів після демозаїкізації" -#: ../src/iop/demosaic.c:1271 +#: ../src/iop/demosaic.c:1318 msgid "green channels matching method" msgstr "Метод вирівнювання зелених каналів" -#: ../src/iop/demosaic.c:1278 +#: ../src/iop/demosaic.c:1325 msgid "demosaicing is only used for color raw images" msgstr "Демозаїкізація використовується лише для кольорових raw зображень" -#: ../src/iop/denoiseprofile.c:714 +#: ../src/iop/denoiseprofile.c:766 msgid "wavelets: chroma only" msgstr "Вейвлети: лише кольоровість" -#: ../src/iop/denoiseprofile.c:720 +#: ../src/iop/denoiseprofile.c:772 msgid "denoise (profiled)" msgstr "Знешумлення (профільоване)" -#: ../src/iop/denoiseprofile.c:726 +#: ../src/iop/denoiseprofile.c:778 msgid "denoise using noise statistics profiled on sensors" msgstr "Знешумлення з використанням статистичних профілів шуму сенсорів" -#: ../src/iop/denoiseprofile.c:2846 +#: ../src/iop/denoiseprofile.c:2850 #, c-format msgid "found match for ISO %d" msgstr "Знайдено збіг для ISO %d" -#: ../src/iop/denoiseprofile.c:2855 +#: ../src/iop/denoiseprofile.c:2859 #, c-format msgid "interpolated from ISO %d and %d" msgstr "Інтерпольовано з ISO %d і %d" -#: ../src/iop/denoiseprofile.c:3719 +#: ../src/iop/denoiseprofile.c:3723 msgid "Y0" msgstr "Y0" -#: ../src/iop/denoiseprofile.c:3720 +#: ../src/iop/denoiseprofile.c:3724 msgid "U0V0" msgstr "U0V0" -#: ../src/iop/denoiseprofile.c:3760 +#: ../src/iop/denoiseprofile.c:3764 msgid "" "use only with a perfectly\n" "uniform image if you want to\n" @@ -15760,36 +16330,36 @@ "однорідним зображенням, якщо хочете\n" "оцінити дисперсію шуму." -#: ../src/iop/denoiseprofile.c:3766 +#: ../src/iop/denoiseprofile.c:3770 msgid "variance red: " msgstr "Дисперсія червоного: " -#: ../src/iop/denoiseprofile.c:3770 +#: ../src/iop/denoiseprofile.c:3774 msgid "variance computed on the red channel" msgstr "Дисперсія, обчислена на червоному каналі" -#: ../src/iop/denoiseprofile.c:3775 +#: ../src/iop/denoiseprofile.c:3779 msgid "variance green: " msgstr "Дисперсія зеленого: " -#: ../src/iop/denoiseprofile.c:3779 +#: ../src/iop/denoiseprofile.c:3783 msgid "variance computed on the green channel" msgstr "Дисперсія, обчислена на зеленому каналі" -#: ../src/iop/denoiseprofile.c:3784 +#: ../src/iop/denoiseprofile.c:3788 msgid "variance blue: " msgstr "Дисперсія синього: " -#: ../src/iop/denoiseprofile.c:3788 +#: ../src/iop/denoiseprofile.c:3792 msgid "variance computed on the blue channel" msgstr "Дисперсія, обчислена на синьому каналі" -#: ../src/iop/denoiseprofile.c:3799 ../src/libs/export.c:1208 +#: ../src/iop/denoiseprofile.c:3803 ../src/libs/export.c:1320 #: ../src/libs/print_settings.c:2418 ../src/libs/print_settings.c:2774 msgid "profile" msgstr "Профіль" -#: ../src/iop/denoiseprofile.c:3833 +#: ../src/iop/denoiseprofile.c:3837 msgid "" "adapt denoising according to the\n" "white balance coefficients.\n" @@ -15805,7 +16375,7 @@ "Слід вимкнути, якщо попередній екземпляр\n" "було використано в режимі змішування кольорів." -#: ../src/iop/denoiseprofile.c:3840 +#: ../src/iop/denoiseprofile.c:3844 msgid "" "fix bugs in Anscombe transform resulting\n" "in undersmoothing of the green channel in\n" @@ -15825,11 +16395,11 @@ "Увімкнення цієї опції змінить отримуване вами знешумлення.\n" "Після ввімкнення ви не зможете повернутися до старого алгоритму." -#: ../src/iop/denoiseprofile.c:3850 +#: ../src/iop/denoiseprofile.c:3854 msgid "profile used for variance stabilization" msgstr "Профіль, що використовується для стабілізації дисперсії" -#: ../src/iop/denoiseprofile.c:3852 +#: ../src/iop/denoiseprofile.c:3856 msgid "" "method used in the denoising core.\n" "non-local means works best for `lightness' blending,\n" @@ -15839,7 +16409,7 @@ "Нелокальні середні працюють краще для змішування яскравості,\n" "вейвлети працюють краще для змішування кольоровості" -#: ../src/iop/denoiseprofile.c:3856 +#: ../src/iop/denoiseprofile.c:3860 msgid "" "color representation used within the algorithm.\n" "RGB keeps the RGB channels separated,\n" @@ -15851,7 +16421,7 @@ "тоді як Y0U0V0 об'єднує канали, щоб\n" "знешумлювати кольоровість і яскравість окремо." -#: ../src/iop/denoiseprofile.c:3861 +#: ../src/iop/denoiseprofile.c:3865 msgid "" "radius of the patches to match.\n" "increase for more sharpness on strong edges, and better denoising of smooth " @@ -15865,7 +16435,7 @@ "Якщо деталі занадто згладжені, зменште це значення або збільште повзунок " "ваги центрального пікселя." -#: ../src/iop/denoiseprofile.c:3867 +#: ../src/iop/denoiseprofile.c:3871 msgid "" "emergency use only: radius of the neighborhood to search patches in. " "increase for better denoising performance, but watch the long runtimes! " @@ -15875,7 +16445,7 @@ "для кращого знешумлення, але слідкуйте за тривалим часом роботи! Великі " "радіуси можуть бути дуже повільними. Вас попередили!" -#: ../src/iop/denoiseprofile.c:3873 +#: ../src/iop/denoiseprofile.c:3877 msgid "" "scattering of the neighborhood to search patches in.\n" "increase for better coarse-grain noise reduction.\n" @@ -15885,7 +16455,7 @@ "Збільшуйте для кращого знешумлення грубозернистого шуму.\n" "Не впливає на час виконання." -#: ../src/iop/denoiseprofile.c:3877 +#: ../src/iop/denoiseprofile.c:3881 msgid "" "increase the weight of the central pixel\n" "of the patch in the patch comparison.\n" @@ -15897,11 +16467,11 @@ "Корисно для відновлення деталей, коли розмір\n" "зразка досить великий." -#: ../src/iop/denoiseprofile.c:3881 +#: ../src/iop/denoiseprofile.c:3885 msgid "finetune denoising strength" msgstr "Тонке регулювання інтенсивності знешумлення" -#: ../src/iop/denoiseprofile.c:3883 +#: ../src/iop/denoiseprofile.c:3887 msgid "" "controls the way parameters are autoset\n" "increase if shadows are not denoised enough\n" @@ -15913,7 +16483,7 @@ "або якщо залишається кольоровий шум.\n" "Це може статися, якщо ваше зображення недоекспоноване." -#: ../src/iop/denoiseprofile.c:3888 +#: ../src/iop/denoiseprofile.c:3892 msgid "" "finetune shadows denoising.\n" "decrease to denoise more aggressively\n" @@ -15923,7 +16493,7 @@ "Зменшуйте, щоб більш агресивно знешумлювати\n" "темні ділянки зображення." -#: ../src/iop/denoiseprofile.c:3892 +#: ../src/iop/denoiseprofile.c:3896 msgid "" "correct color cast in shadows.\n" "decrease if shadows are too purple.\n" @@ -15933,7 +16503,7 @@ "Зменшити, якщо тіні занадто пурпурні.\n" "Збільшити, якщо тіні занадто зелені." -#: ../src/iop/denoiseprofile.c:3896 +#: ../src/iop/denoiseprofile.c:3900 msgid "" "upgrade the variance stabilizing algorithm.\n" "new algorithm extends the current one.\n" @@ -15966,68 +16536,68 @@ "або видалення розмиття за допомогою сліпої деконволюції." #. deblurring presets -#: ../src/iop/diffuse.c:219 +#: ../src/iop/diffuse.c:246 msgid "lens deblur: soft" msgstr "Відновлення різкості об'єктива: м'яке" -#: ../src/iop/diffuse.c:244 +#: ../src/iop/diffuse.c:271 msgid "lens deblur: medium" msgstr "Відновлення різкості об'єктива: помірне" -#: ../src/iop/diffuse.c:269 +#: ../src/iop/diffuse.c:296 msgid "lens deblur: hard" msgstr "Відновлення різкості об'єктива: сильне" -#: ../src/iop/diffuse.c:295 +#: ../src/iop/diffuse.c:322 msgid "dehaze" msgstr "Видалення серпанку" -#: ../src/iop/diffuse.c:321 +#: ../src/iop/diffuse.c:348 msgid "denoise: fine" msgstr "Знешумлення: дрібний шум" -#: ../src/iop/diffuse.c:346 +#: ../src/iop/diffuse.c:373 msgid "denoise: medium" msgstr "Знешумлення: середній шум" -#: ../src/iop/diffuse.c:371 +#: ../src/iop/diffuse.c:398 msgid "denoise: coarse" msgstr "Знешумлення: грубий шум" -#: ../src/iop/diffuse.c:446 +#: ../src/iop/diffuse.c:473 msgid "sharpen demosaicing: no AA filter" msgstr "Зменшення розмиття демозаїки: сенсори без AA-фільтра" -#: ../src/iop/diffuse.c:472 +#: ../src/iop/diffuse.c:499 msgid "sharpen demosaicing: AA filter" msgstr "Зменшення розмиття демозаїки: сенсори з AA-фільтром" -#: ../src/iop/diffuse.c:499 +#: ../src/iop/diffuse.c:526 msgid "simulate watercolor" msgstr "Імітувати акварель" -#: ../src/iop/diffuse.c:524 +#: ../src/iop/diffuse.c:551 msgid "simulate line drawing" msgstr "Імітувати малюнок" -#: ../src/iop/diffuse.c:576 +#: ../src/iop/diffuse.c:603 msgid "inpaint highlights" msgstr "Домальовувати переекспоноване" #. fast presets for slow hardware -#: ../src/iop/diffuse.c:603 +#: ../src/iop/diffuse.c:630 msgid "sharpness: fast" msgstr "Різкість: швидко" -#: ../src/iop/diffuse.c:655 +#: ../src/iop/diffuse.c:682 msgid "sharpness: strong" msgstr "Різкість: сильно" -#: ../src/iop/diffuse.c:680 +#: ../src/iop/diffuse.c:707 msgid "local contrast: fast" msgstr "Локальний контраст: швидко" -#: ../src/iop/diffuse.c:1391 ../src/iop/diffuse.c:1666 +#: ../src/iop/diffuse.c:1418 ../src/iop/diffuse.c:1693 msgid "diffuse/sharpen failed to allocate memory, check your RAM settings" msgstr "" "Не вдалося виділити пам'ять для модуля \"Дифузія / різкість\", перевірте " @@ -16035,13 +16605,13 @@ #. Additional parameters #. Camera settings -#: ../src/iop/diffuse.c:1782 ../src/iop/splittoning.c:537 +#: ../src/iop/diffuse.c:1797 ../src/iop/splittoning.c:533 #: ../src/libs/camera.c:486 msgctxt "section" msgid "properties" msgstr "Параметри" -#: ../src/iop/diffuse.c:1788 +#: ../src/iop/diffuse.c:1803 msgid "" "more iterations make the effect stronger but the module slower.\n" "this is analogous to giving more time to the diffusion reaction.\n" @@ -16053,7 +16623,7 @@ "Якщо ви плануєте збільшувати різкість або підмальовувати,\n" "більша кількість ітерацій допоможе реконструкції." -#: ../src/iop/diffuse.c:1797 +#: ../src/iop/diffuse.c:1812 msgid "" "main scale of the diffusion.\n" "zero makes diffusion act on the finest details more heavily.\n" @@ -16067,7 +16637,7 @@ "Установіть на нуль для відновлення різкості і знешумлення.\n" "Збільште, щоб натомість діяти на локальний контраст." -#: ../src/iop/diffuse.c:1807 +#: ../src/iop/diffuse.c:1822 msgid "" "width of the diffusion around the central radius.\n" "high values diffuse on a large band of radii.\n" @@ -16081,12 +16651,12 @@ "Якщо ви плануєте усувати розмиття,\n" "радіус повинен бути приблизно на ширині розмиття вашого об’єктива." -#: ../src/iop/diffuse.c:1814 +#: ../src/iop/diffuse.c:1829 msgctxt "section" msgid "speed (sharpen ↔ diffuse)" msgstr "Швидкість (різкість ↔ дифузія)" -#: ../src/iop/diffuse.c:1821 +#: ../src/iop/diffuse.c:1836 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 1st order anisotropy (set below).\n" @@ -16102,7 +16672,7 @@ "позитивні значення застосовують дифузію та розмивають,\n" "нуль нічого не робить." -#: ../src/iop/diffuse.c:1831 +#: ../src/iop/diffuse.c:1846 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 2nd order anisotropy (set below).\n" @@ -16118,7 +16688,7 @@ "позитивні значення застосовують дифузію та розмивають,\n" "нуль нічого не робить." -#: ../src/iop/diffuse.c:1841 +#: ../src/iop/diffuse.c:1856 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 3rd order anisotropy (set below).\n" @@ -16134,7 +16704,7 @@ "позитивні значення застосовують дифузію та розмивають,\n" "нуль нічого не робить." -#: ../src/iop/diffuse.c:1851 +#: ../src/iop/diffuse.c:1866 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 4th order anisotropy (set below).\n" @@ -16150,12 +16720,12 @@ "позитивні значення застосовують дифузію та розмивають,\n" "нуль нічого не робить." -#: ../src/iop/diffuse.c:1857 +#: ../src/iop/diffuse.c:1872 msgctxt "section" msgid "direction" msgstr "Напрямок" -#: ../src/iop/diffuse.c:1864 +#: ../src/iop/diffuse.c:1879 msgid "" "direction of 1st order speed (set above).\n" "\n" @@ -16169,7 +16739,7 @@ "при позитивних значеннях скоріше уникає контурів (ізофотів),\n" "нуль впливає на обидва напрямки однаково (ізотропно)." -#: ../src/iop/diffuse.c:1873 +#: ../src/iop/diffuse.c:1888 msgid "" "direction of 2nd order speed (set above).\n" "\n" @@ -16183,7 +16753,7 @@ "при позитивних значеннях скоріше уникає контурів (ізофотів),\n" "нуль впливає на обидва напрямки однаково (ізотропно)." -#: ../src/iop/diffuse.c:1882 +#: ../src/iop/diffuse.c:1897 msgid "" "direction of 3rd order speed (set above).\n" "\n" @@ -16197,7 +16767,7 @@ "при позитивних значеннях скоріше уникає контурів (ізофотів),\n" "нуль впливає на обидва напрямки однаково (ізотропно)." -#: ../src/iop/diffuse.c:1891 +#: ../src/iop/diffuse.c:1906 msgid "" "direction of 4th order speed (set above).\n" "\n" @@ -16211,12 +16781,12 @@ "при позитивних значеннях скоріше уникає контурів (ізофотів),\n" "нуль впливає на обидва напрямки однаково (ізотропно)." -#: ../src/iop/diffuse.c:1897 +#: ../src/iop/diffuse.c:1912 msgctxt "section" msgid "edge management" msgstr "Управління контурами" -#: ../src/iop/diffuse.c:1904 +#: ../src/iop/diffuse.c:1919 msgid "" "increase or decrease the sharpness of the highest frequencies.\n" "can be used to keep details after blooming,\n" @@ -16226,7 +16796,7 @@ "Можна використовувати для збереження деталей після світіння,\n" "для окремого збільшення різкості встановіть швидкість на негативні значення." -#: ../src/iop/diffuse.c:1911 +#: ../src/iop/diffuse.c:1926 msgid "" "define the sensitivity of the variance penalty for edges.\n" "increase to exclude more edges from diffusion,\n" @@ -16236,7 +16806,7 @@ "Збільште, щоб виключити більше контурів з дифузії,\n" "якщо з’являються окантовки або ореоли." -#: ../src/iop/diffuse.c:1918 +#: ../src/iop/diffuse.c:1933 msgid "" "define the variance threshold between edge amplification and penalty.\n" "decrease if you want pixels on smooth surfaces get a boost,\n" @@ -16248,12 +16818,12 @@ "збільште, якщо бачите шум на гладких поверхнях або\n" "якщо темні ділянки здаються занадто різкими порівняно з яскравими." -#: ../src/iop/diffuse.c:1924 +#: ../src/iop/diffuse.c:1939 msgctxt "section" msgid "diffusion spatiality" msgstr "Просторовість дифузії" -#: ../src/iop/diffuse.c:1931 +#: ../src/iop/diffuse.c:1946 msgid "" "luminance threshold for the mask.\n" "0. disables the luminance masking and applies the module on the whole " @@ -16273,8 +16843,8 @@ msgstr "Дизеринг або постерізація" #: ../src/iop/dither.c:112 -msgid "dithering|posterization|reduce bit-depth" -msgstr "dithering|posterization|reduce bit-depth" +msgid "dithering|posterization|reduce bit depth" +msgstr "dithering|posterization|reduce bit depth" #: ../src/iop/dither.c:117 msgid "" @@ -16289,23 +16859,23 @@ msgstr "коригуюче, художнє" #. add the preset. -#: ../src/iop/dither.c:147 +#: ../src/iop/dither.c:149 msgid "dither" msgstr "Дизеринг (авто)" -#: ../src/iop/dither.c:759 +#: ../src/iop/dither.c:761 msgid "radius for blurring step" msgstr "Радіус для кроку розмиття" -#: ../src/iop/dither.c:771 +#: ../src/iop/dither.c:773 msgid "the gradient range where to apply random dither" msgstr "Діапазон градієнта, де застосовувати випадковий дизеринг" -#: ../src/iop/dither.c:772 +#: ../src/iop/dither.c:774 msgid "gradient range" msgstr "Діапазон градієнта" -#: ../src/iop/dither.c:780 +#: ../src/iop/dither.c:782 msgid "damping level of random dither" msgstr "Рівень приглушення випадкового шуму" @@ -16313,14 +16883,14 @@ msgid "legacy equalizer" msgstr "Застарілий еквалайзер" -#: ../src/iop/equalizer.c:110 +#: ../src/iop/equalizer.c:112 msgid "" "this module is deprecated. better use contrast equalizer module instead." msgstr "" "Цей модуль застарілий. Краще використовувати модуль 'Еквалайзер контрасту' " "замість нього." -#: ../src/iop/equalizer.c:238 +#: ../src/iop/equalizer.c:240 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -16339,33 +16909,33 @@ "Використовується безпечне для кольорів підвищення яскравості,\n" "подібне до підвищення значення ISO" -#: ../src/iop/exposure.c:279 +#: ../src/iop/exposure.c:301 msgid "magic lantern defaults" msgstr "Замовчування magic lantern" -#: ../src/iop/exposure.c:351 ../src/iop/rawoverexposed.c:135 -#: ../src/iop/rawoverexposed.c:254 +#: ../src/iop/exposure.c:373 ../src/iop/rawoverexposed.c:137 +#: ../src/iop/rawoverexposed.c:256 #, c-format msgid "failed to get raw buffer from image `%s'" msgstr "Не вдалося отримати raw буфер із зображення `%s'" -#: ../src/iop/exposure.c:629 +#: ../src/iop/exposure.c:647 #, no-c-format msgid "compensate camera exposure (%+.1f EV)" msgstr "Компенсувати експозицію камери (%+.1f EV)" #. Write report in GUI -#: ../src/iop/exposure.c:813 +#: ../src/iop/exposure.c:831 #, c-format msgid "L : \t%.1f %%" msgstr "L : \t%.1f %%" -#: ../src/iop/exposure.c:945 ../src/libs/history.c:953 +#: ../src/iop/exposure.c:963 ../src/libs/history.c:953 #, c-format msgid "%.2f EV" msgstr "%.2f EV" -#: ../src/iop/exposure.c:1113 +#: ../src/iop/exposure.c:1131 msgid "" "automatically remove the camera exposure bias\n" "this is useful if you exposed the image to the right." @@ -16373,7 +16943,7 @@ "Автоматично видаляти зміщення експозиції камери.\n" "Це корисно, якщо ви експонуєте зображення \"вправо\" (ETTR)." -#: ../src/iop/exposure.c:1132 +#: ../src/iop/exposure.c:1150 #, no-c-format msgid "where in the histogram to meter for deflicking. E.g. 50% is median" msgstr "" @@ -16381,22 +16951,22 @@ "експозиції. 50% процентиля позначає позицію в гістограмі, де 50% значень " "пікселів вище, а 50% значень пікселів нижче цієї експозиції." -#: ../src/iop/exposure.c:1138 +#: ../src/iop/exposure.c:1156 msgid "" "where to place the exposure level for processed pics, EV below overexposure." msgstr "" "Задає цільовий рівень для автоматичної корекції експозиції, в EV щодо точки " "білого камери." -#: ../src/iop/exposure.c:1142 +#: ../src/iop/exposure.c:1160 msgid "computed EC: " msgstr "Обчислена корекція експозиції: " -#: ../src/iop/exposure.c:1145 +#: ../src/iop/exposure.c:1163 msgid "what exposure correction has actually been used" msgstr "Яка корекція експозиції насправді була використана" -#: ../src/iop/exposure.c:1164 +#: ../src/iop/exposure.c:1182 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -16409,11 +16979,11 @@ "При невдалих значеннях, модуль відсікатиме майже чорні кольори з охоплення\n" "шляхом підштовхування значень RGB до негативних." -#: ../src/iop/exposure.c:1174 -msgid "spot exposure mapping" +#: ../src/iop/exposure.c:1192 +msgid "area exposure mapping" msgstr "Відображення експозиції області зображення" -#: ../src/iop/exposure.c:1180 +#: ../src/iop/exposure.c:1198 msgid "" "define a target brightness, in terms of exposure,\n" "for a selected region of the image (the control sample),\n" @@ -16429,7 +16999,7 @@ "важливою частиною вашого об’єкта, яка потребує постійної яскравості,\n" "так і нерухомою та рівномірно освітленою поверхнею в серії зображень." -#: ../src/iop/exposure.c:1189 +#: ../src/iop/exposure.c:1207 msgid "" "\"correction\" automatically adjust exposure\n" "such that the input lightness is mapped to the target.\n" @@ -16442,11 +17012,11 @@ "допомогою\n" "компенсації експозиції і може використовуватися для визначення цілі." -#: ../src/iop/exposure.c:1215 +#: ../src/iop/exposure.c:1233 msgid "L : \tN/A" msgstr "L : \tN/A" -#: ../src/iop/exposure.c:1233 +#: ../src/iop/exposure.c:1251 msgid "the desired target exposure after mapping" msgstr "Бажана цільова експозиція після відображення" @@ -16456,53 +17026,53 @@ "Цей модуль застарілий. Краще використовувати модуль 'Filmic RGB' замість " "нього." -#: ../src/iop/filmic.c:304 +#: ../src/iop/filmic.c:333 msgid "09 EV (low-key)" msgstr "09 EV (низький ключ)" -#: ../src/iop/filmic.c:312 +#: ../src/iop/filmic.c:341 msgid "10 EV (indoors)" msgstr "10 EV (в приміщенні)" -#: ../src/iop/filmic.c:320 +#: ../src/iop/filmic.c:349 msgid "11 EV (dim outdoors)" msgstr "11 EV (тьмяно на відкритому повітрі)" -#: ../src/iop/filmic.c:328 +#: ../src/iop/filmic.c:357 msgid "12 EV (outdoors)" msgstr "12 EV (на відкритому повітрі)" -#: ../src/iop/filmic.c:336 +#: ../src/iop/filmic.c:365 msgid "13 EV (bright outdoors)" msgstr "13 EV (яскраво на відкритому повітрі)" -#: ../src/iop/filmic.c:344 +#: ../src/iop/filmic.c:373 msgid "14 EV (backlighting)" msgstr "14 EV (світло позаду об'єкта)" -#: ../src/iop/filmic.c:352 +#: ../src/iop/filmic.c:381 msgid "15 EV (sunset)" msgstr "15 EV (захід сонця)" -#: ../src/iop/filmic.c:360 +#: ../src/iop/filmic.c:389 msgid "16 EV (HDR)" msgstr "16 EV (HDR)" -#: ../src/iop/filmic.c:368 +#: ../src/iop/filmic.c:397 msgid "18 EV (HDR++)" msgstr "18 EV (HDR++)" -#: ../src/iop/filmic.c:1480 +#: ../src/iop/filmic.c:1505 msgid "read-only graph, use the parameters below to set the nodes" msgstr "" "Графік лише для читання, використовуйте параметри нижче, щоб встановити вузли" -#: ../src/iop/filmic.c:1484 +#: ../src/iop/filmic.c:1509 msgctxt "section" msgid "logarithmic shaper" msgstr "Логарифмічний формувач" -#: ../src/iop/filmic.c:1492 +#: ../src/iop/filmic.c:1517 msgid "" "adjust to match the average luminance of the subject.\n" "except in back-lighting situations, this should be around 18%." @@ -16510,7 +17080,7 @@ "Відрегулюйте відповідно до середньої яскравості об'єкта.\n" "Крім ситуацій зі світлом в сторону об'єктива, це має бути близько 18%." -#: ../src/iop/filmic.c:1504 ../src/iop/filmicrgb.c:4442 +#: ../src/iop/filmic.c:1529 ../src/iop/filmicrgb.c:4506 msgid "" "number of stops between middle gray and pure white.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16520,7 +17090,7 @@ "Це показання, яке експонометр дав би вам для цієї сцени.\n" "Відрегулюйте, щоб уникнути кліппінгу найсвітліших тонів" -#: ../src/iop/filmic.c:1517 ../src/iop/filmicrgb.c:4453 +#: ../src/iop/filmic.c:1542 ../src/iop/filmicrgb.c:4517 msgid "" "number of stops between middle gray and pure black.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16532,20 +17102,20 @@ "Збільште, щоб отримати більший контраст.\n" "Зменште, щоб відновити більше деталей в затемнених ділянках." -#: ../src/iop/filmic.c:1529 +#: ../src/iop/filmic.c:1554 msgid "" -"enlarge or shrink the computed dynamic range.\n" +"increase or decrease the computed dynamic range.\n" "useful in conjunction with \"auto tune levels\"." msgstr "" "Збільшити або зменшити обчислений динамічний діапазон.\n" "Корисно у поєднанні з \"автоналаштуванням рівнів\"." -#: ../src/iop/filmic.c:1535 ../src/iop/filmicrgb.c:4467 -#: ../src/iop/profile_gamma.c:659 +#: ../src/iop/filmic.c:1560 ../src/iop/filmicrgb.c:4531 +#: ../src/iop/profile_gamma.c:673 msgid "auto tune levels" msgstr "Автоналаштування рівнів" -#: ../src/iop/filmic.c:1538 +#: ../src/iop/filmic.c:1563 msgid "" "try to optimize the settings with some guessing.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16557,12 +17127,12 @@ "Працює краще для пейзажів та рівномірно освітлених сцен\n" "але зазнає невдачі для зображень у високому ключі та низькому ключі." -#: ../src/iop/filmic.c:1543 +#: ../src/iop/filmic.c:1568 msgctxt "section" msgid "filmic S curve" msgstr "S-крива filmic" -#: ../src/iop/filmic.c:1550 ../src/iop/filmicrgb.c:4554 +#: ../src/iop/filmic.c:1575 ../src/iop/filmicrgb.c:4618 msgid "" "slope of the linear part of the curve\n" "affects mostly the mid-tones" @@ -16571,12 +17141,12 @@ "впливає переважно на середні тони" #. geotagging -#: ../src/iop/filmic.c:1557 ../src/iop/filmicrgb.c:4563 -#: ../src/libs/metadata_view.c:157 +#: ../src/iop/filmic.c:1582 ../src/iop/filmicrgb.c:4627 +#: ../src/libs/metadata_view.c:161 msgid "latitude" msgstr "Широта" -#: ../src/iop/filmic.c:1560 +#: ../src/iop/filmic.c:1585 msgid "" "width of the linear domain in the middle of the curve.\n" "increase to get more contrast at the extreme luminances.\n" @@ -16586,11 +17156,11 @@ "Збільшення дає більший контраст при екстремальних яскравостях.\n" "Це не впливає на середні тони." -#: ../src/iop/filmic.c:1567 +#: ../src/iop/filmic.c:1592 msgid "shadows/highlights balance" msgstr "Баланс тіней та світлих ділянок" -#: ../src/iop/filmic.c:1570 ../src/iop/filmicrgb.c:4574 +#: ../src/iop/filmic.c:1595 ../src/iop/filmicrgb.c:4638 msgid "" "slides the latitude along the slope\n" "to give more room to shadows or highlights.\n" @@ -16602,7 +17172,7 @@ "Використовуйте це, якщо вам потрібно захистити деталі\n" "на одному кінці гістограми." -#: ../src/iop/filmic.c:1580 +#: ../src/iop/filmic.c:1605 msgid "" "desaturates the input of the module globally.\n" "you need to set this value below 100%\n" @@ -16612,7 +17182,7 @@ "Вам потрібно встановити це значення нижче 100%\n" "якщо ввімкнено збереження кольоровості." -#: ../src/iop/filmic.c:1590 +#: ../src/iop/filmic.c:1615 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16623,43 +17193,43 @@ "Зменште, якщо тіні та/або світлі тони перенасичені." #. Add export intent combo -#: ../src/iop/filmic.c:1600 ../src/libs/export.c:1227 +#: ../src/iop/filmic.c:1625 ../src/libs/export.c:1339 #: ../src/libs/print_settings.c:2473 ../src/libs/print_settings.c:2820 -#: ../src/views/darkroom.c:2524 ../src/views/lighttable.c:1182 +#: ../src/views/darkroom.c:2365 ../src/views/lighttable.c:1182 msgid "intent" msgstr "Метод" -#: ../src/iop/filmic.c:1601 +#: ../src/iop/filmic.c:1626 msgid "contrasted" msgstr "Контрастний" #. cubic spline -#: ../src/iop/filmic.c:1602 +#: ../src/iop/filmic.c:1627 msgid "faded" msgstr "Вицвілі кольори" #. centripetal spline -#: ../src/iop/filmic.c:1603 ../src/iop/profile_gamma.c:621 +#: ../src/iop/filmic.c:1628 ../src/iop/profile_gamma.c:635 msgid "linear" msgstr "Лінійна частина" #. monotonic spline -#: ../src/iop/filmic.c:1604 +#: ../src/iop/filmic.c:1629 msgid "optimized" msgstr "Оптимізований" -#: ../src/iop/filmic.c:1606 +#: ../src/iop/filmic.c:1631 msgid "change this method if you see reversed contrast or faded blacks" msgstr "" "Змініть цей метод, якщо ви бачите зворотний контраст або вицвілий чорний " "колір" #. Preserve color -#: ../src/iop/filmic.c:1610 +#: ../src/iop/filmic.c:1635 msgid "preserve the chrominance" msgstr "Зберегти кольоровість" -#: ../src/iop/filmic.c:1612 +#: ../src/iop/filmic.c:1637 msgid "" "ensure the original color are preserved.\n" "may reinforce chromatic aberrations.\n" @@ -16669,12 +17239,12 @@ "Може посилити хроматичні аберації.\n" "Вам потрібно вручну налаштувати насиченість при використанні цього режиму." -#: ../src/iop/filmic.c:1622 +#: ../src/iop/filmic.c:1647 msgctxt "section" msgid "destination/display" msgstr "Призначення/дисплей" -#: ../src/iop/filmic.c:1640 ../src/iop/filmicrgb.c:4593 +#: ../src/iop/filmic.c:1665 ../src/iop/filmicrgb.c:4657 msgid "" "luminance of output pure black, this should be 0%\n" "except if you want a faded look" @@ -16682,7 +17252,7 @@ "Яскравість вихідного чистого чорного, вона має бути 0%\n" "крім випадків, коли ви хочете вицвілого вигляду" -#: ../src/iop/filmic.c:1649 ../src/iop/filmicrgb.c:4600 +#: ../src/iop/filmic.c:1674 ../src/iop/filmicrgb.c:4664 msgid "" "middle gray value of the target display or color space.\n" "you should never touch that unless you know what you are doing." @@ -16690,7 +17260,7 @@ "Значення середньо-сірого цільового дисплея або кольорового простору.\n" "Ніколи не слід змінювати це, якщо не знаєте, що робите." -#: ../src/iop/filmic.c:1658 ../src/iop/filmicrgb.c:4607 +#: ../src/iop/filmic.c:1683 ../src/iop/filmicrgb.c:4671 msgid "" "luminance of output pure white, this should be 100%\n" "except if you want a faded look" @@ -16698,11 +17268,11 @@ "Яскравість вихідного чистого білого, вона має бути 100%\n" "крім випадків, коли ви хочете вицвілого вигляду" -#: ../src/iop/filmic.c:1664 +#: ../src/iop/filmic.c:1689 msgid "target gamma" msgstr "Цільова гамма" -#: ../src/iop/filmic.c:1666 +#: ../src/iop/filmic.c:1691 msgid "" "power or gamma of the transfer function\n" "of the display or color space.\n" @@ -16730,7 +17300,7 @@ "для відображення на екранах зі стандартним динамічним діапазоном і друку на " "папері, при цьому запобігаючи кліппінгу неруйнівними способами" -#: ../src/iop/filmicrgb.c:1310 +#: ../src/iop/filmicrgb.c:1365 msgid "" "filmic highlights reconstruction failed to allocate memory, check your RAM " "settings" @@ -16738,72 +17308,72 @@ "Не вдалося виділити пам'ять для відновлення переекспонованого в Filmic, " "перевірте налаштування оперативної пам'яті" -#: ../src/iop/filmicrgb.c:2301 +#: ../src/iop/filmicrgb.c:2369 msgid "filmic highlights reconstruction failed to allocate memory on GPU" msgstr "" "Не вдалося виділити пам'ять в GPU для відновлення переекспонованого в Filmic" -#: ../src/iop/filmicrgb.c:2419 +#: ../src/iop/filmicrgb.c:2487 msgid "filmic works only on RGB input" msgstr "Filmic працює лише з RGB входом" -#: ../src/iop/filmicrgb.c:3484 +#: ../src/iop/filmicrgb.c:3548 msgid "look only" msgstr "Лише крива" -#: ../src/iop/filmicrgb.c:3486 +#: ../src/iop/filmicrgb.c:3550 msgid "look + mapping (lin)" msgstr "Лінійне відображення" -#: ../src/iop/filmicrgb.c:3488 +#: ../src/iop/filmicrgb.c:3552 msgid "look + mapping (log)" msgstr "Логарифмічне відображення" -#: ../src/iop/filmicrgb.c:3490 +#: ../src/iop/filmicrgb.c:3554 msgid "dynamic range mapping" msgstr "Відображення динамічного діапазону" -#: ../src/iop/filmicrgb.c:3857 +#: ../src/iop/filmicrgb.c:3921 #, c-format msgid "(%.0f %%)" msgstr "(%.0f %%)" -#: ../src/iop/filmicrgb.c:3873 +#: ../src/iop/filmicrgb.c:3937 #, no-c-format msgid "% display" msgstr "Вихід, %" -#: ../src/iop/filmicrgb.c:3885 +#: ../src/iop/filmicrgb.c:3949 msgid "EV scene" msgstr "Вхід, EV" -#: ../src/iop/filmicrgb.c:3889 +#: ../src/iop/filmicrgb.c:3953 #, no-c-format msgid "% camera" msgstr "Камера, %" #. Page DISPLAY -#: ../src/iop/filmicrgb.c:3925 ../src/iop/filmicrgb.c:4587 +#: ../src/iop/filmicrgb.c:3989 ../src/iop/filmicrgb.c:4651 msgid "display" msgstr "Вихід" #. axis legend -#: ../src/iop/filmicrgb.c:3934 +#: ../src/iop/filmicrgb.c:3998 msgid "(%)" msgstr "(%)" #. Page SCENE -#: ../src/iop/filmicrgb.c:3943 ../src/iop/filmicrgb.c:4422 +#: ../src/iop/filmicrgb.c:4007 ../src/iop/filmicrgb.c:4486 msgid "scene" msgstr "Вхід" #. axis legend -#: ../src/iop/filmicrgb.c:3952 +#: ../src/iop/filmicrgb.c:4016 msgid "(EV)" msgstr "(EV)" #. we are over the graph area -#: ../src/iop/filmicrgb.c:4364 +#: ../src/iop/filmicrgb.c:4428 msgid "" "use the parameters below to set the nodes.\n" "the bright curve is the filmic tone mapping curve\n" @@ -16813,11 +17383,11 @@ "Яскрава крива - це крива тонового відображення Filmic.\n" "Темна крива - це крива десатурації." -#: ../src/iop/filmicrgb.c:4370 +#: ../src/iop/filmicrgb.c:4434 msgid "toggle axis labels and values display" msgstr "Перемикає відображення міток і значень на осях" -#: ../src/iop/filmicrgb.c:4374 +#: ../src/iop/filmicrgb.c:4438 msgid "" "cycle through graph views.\n" "left click: cycle forward.\n" @@ -16829,7 +17399,7 @@ "Права кнопка миші: попередній тип.\n" "Подвійний клік: скинути до типу \"лише крива\"." -#: ../src/iop/filmicrgb.c:4431 +#: ../src/iop/filmicrgb.c:4495 #, no-c-format msgid "" "adjust to match the average luminance of the image's subject.\n" @@ -16840,15 +17410,15 @@ "Введене тут значення буде відображено на 18,45%.\n" "Зменшуйте значення, щоб збільшити загальну яскравість." -#: ../src/iop/filmicrgb.c:4461 +#: ../src/iop/filmicrgb.c:4525 msgid "" -"symmetrically enlarge or shrink the computed dynamic range.\n" +"symmetrically increase or decrease the computed dynamic range.\n" "useful to give a safety margin to extreme luminances." msgstr "" "Симетрично збільшити або зменшити обчислений динамічний діапазон.\n" -"Корисно для забезпечення запасу безпеки для екстремальних яскравостей." +"Корисно для створення запасу безпеки для екстремальних яскравостей." -#: ../src/iop/filmicrgb.c:4468 +#: ../src/iop/filmicrgb.c:4532 msgid "" "try to optimize the settings with some statistical assumptions.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16866,16 +17436,16 @@ "Переконайтеся, що ви розумієте ці припущення перед використанням." #. Page RECONSTRUCT -#: ../src/iop/filmicrgb.c:4477 +#: ../src/iop/filmicrgb.c:4541 msgid "reconstruct" msgstr "Відновлення" -#: ../src/iop/filmicrgb.c:4479 +#: ../src/iop/filmicrgb.c:4543 msgctxt "section" msgid "highlights clipping" msgstr "Переекспозиція" -#: ../src/iop/filmicrgb.c:4487 +#: ../src/iop/filmicrgb.c:4551 msgid "" "set the exposure threshold upon which\n" "clipped highlights get reconstructed.\n" @@ -16891,7 +17461,7 @@ "Зменшуйте, щоб включити більше областей,\n" "Збільшуйте, щоб виключити більше областей." -#: ../src/iop/filmicrgb.c:4497 +#: ../src/iop/filmicrgb.c:4561 msgid "" "soften the transition between clipped highlights and valid pixels.\n" "decrease to make the transition harder and sharper,\n" @@ -16901,73 +17471,73 @@ "Зменшуйте, щоб зробити перехід більш жорстким і різким,\n" "Збільшуйте, щоб зробити перехід більш м’яким і розмитим." -#: ../src/iop/filmicrgb.c:4503 ../src/iop/filmicrgb.c:4504 +#: ../src/iop/filmicrgb.c:4567 ../src/iop/filmicrgb.c:4568 msgid "display highlight reconstruction mask" msgstr "Показати маску відновлення переекспозиції" -#: ../src/iop/filmicrgb.c:4511 +#: ../src/iop/filmicrgb.c:4575 msgctxt "section" msgid "balance" msgstr "Баланс" -#: ../src/iop/filmicrgb.c:4518 +#: ../src/iop/filmicrgb.c:4582 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between inpainting a smooth color gradient,\n" +"inpainting a smooth color gradient\n" "or trying to recover the textured details.\n" "0% is an equal mix of both.\n" "increase if at least one RGB channel is not clipped.\n" "decrease if all RGB channels are clipped over large areas." msgstr "" "Вибрати, якій стратегії відновлення віддавати перевагу,\n" -"між нанесенням плавного градієнта кольору\n" -"та спробою відновити текстуровані деталі.\n" +"нанесенню плавного градієнта кольору\n" +"чи спробі відновити текстуровані деталі.\n" "0% - це рівна суміш обох.\n" -"Збільшити, якщо хоча б один канал RGB не обрізаний.\n" -"Зменшити, якщо всі канали RGB обрізані на великих ділянках." +"Збільште, якщо хоча б один канал RGB не обрізаний.\n" +"Зменште, якщо всі канали RGB обрізані на великих ділянках." -#: ../src/iop/filmicrgb.c:4529 +#: ../src/iop/filmicrgb.c:4593 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between blooming highlights like film does,\n" +"blooming highlights like film does\n" "or trying to recover sharp details.\n" "0% is an equal mix of both.\n" "increase if you want more details.\n" "decrease if you want more blur." msgstr "" "Вибрати, якій стратегії відновлення віддавати перевагу,\n" -"між ефектом світіння в найсвітліших тонах, як на фотоплівці,\n" -"та спробою відновити чіткі деталі.\n" +"ефекту світіння в найсвітліших тонах, як на фотоплівці\n" +"чи спробі відновити чіткі деталі.\n" "0% - це рівна суміш обох.\n" "Збільште, якщо хочете більше деталей.\n" "Зменште, якщо хочете більше розмиття." -#: ../src/iop/filmicrgb.c:4541 +#: ../src/iop/filmicrgb.c:4605 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between recovering monochromatic highlights,\n" +"recovering monochromatic highlights\n" "or trying to recover colorful highlights.\n" "0% is an equal mix of both.\n" "increase if you want more color.\n" "decrease if you see magenta or out-of-gamut highlights." msgstr "" "Вибрати, якій стратегії відновлення віддавати перевагу,\n" -"між відновленням монохроматичних найсвітліших тонів\n" -"та спробою відновити барвистість.\n" +"відновленню монохроматичних найсвітліших тонів\n" +"чи спробі відновити в них барвистість.\n" "0% - це рівна суміш обох.\n" "Збільште, якщо хочете більше кольору.\n" "Зменште, якщо бачите мадженту або кольори поза охопленням у переекспонованих " "ділянках." #. Page LOOK -#: ../src/iop/filmicrgb.c:4549 +#: ../src/iop/filmicrgb.c:4613 msgid "look" msgstr "Крива" -#: ../src/iop/filmicrgb.c:4559 +#: ../src/iop/filmicrgb.c:4623 msgid "" "equivalent to paper grade in analog.\n" "increase to make highlights brighter and less compressed.\n" @@ -16977,7 +17547,7 @@ "Збільшити, щоб зробити світлі тони яскравішими та менш стиснутими.\n" "Зменшити для приглушення світлих тонів." -#: ../src/iop/filmicrgb.c:4567 +#: ../src/iop/filmicrgb.c:4631 msgid "" "width of the linear domain in the middle of the curve,\n" "increase to get more contrast and less desaturation at extreme luminances,\n" @@ -16990,7 +17560,7 @@ "У цьому діапазоні широти не відбувається десатурація.\n" "Це не впливає на середні тони." -#: ../src/iop/filmicrgb.c:4582 ../src/iop/filmicrgb.c:4730 +#: ../src/iop/filmicrgb.c:4646 ../src/iop/filmicrgb.c:4794 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -17001,11 +17571,11 @@ "Збільште, якщо тіні та/або світлі ділянки недостатньо насичені." #. Page OPTIONS -#: ../src/iop/filmicrgb.c:4611 +#: ../src/iop/filmicrgb.c:4675 msgid "options" msgstr "Опції" -#: ../src/iop/filmicrgb.c:4616 +#: ../src/iop/filmicrgb.c:4680 msgid "" "v3 is darktable 3.0 desaturation method, same as color balance.\n" "v4 is a newer desaturation method, based on spectral purity of light." @@ -17014,7 +17584,7 @@ "балансу.\n" "v4 - новіший метод десатурації, на основі спектральної чистоти світла." -#: ../src/iop/filmicrgb.c:4620 +#: ../src/iop/filmicrgb.c:4684 msgid "" "ensure the original colors are preserved.\n" "may reinforce chromatic aberrations and chroma noise,\n" @@ -17024,7 +17594,7 @@ "Може посилити хроматичні аберації та кольоровий шум,\n" "тому переконайтеся, що вони правильно виправлені в іншому місці." -#: ../src/iop/filmicrgb.c:4629 +#: ../src/iop/filmicrgb.c:4693 msgid "" "choose the desired curvature of the filmic spline in highlights.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -17036,7 +17606,7 @@ "М'який використовує низьку кривизну, що призводить до меншого тонального " "стиснення." -#: ../src/iop/filmicrgb.c:4634 +#: ../src/iop/filmicrgb.c:4698 msgid "" "choose the desired curvature of the filmic spline in shadows.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -17048,7 +17618,7 @@ "М'який використовує низьку кривизну, що призводить до меншого тонального " "стиснення." -#: ../src/iop/filmicrgb.c:4641 +#: ../src/iop/filmicrgb.c:4705 #, no-c-format msgid "" "enable to input custom middle-gray values.\n" @@ -17061,7 +17631,7 @@ "Замість цього виправляйте глобальну експозицію в модулі експозиції.\n" "Вимкніть для використання стандартного 18,45% середньо-сірого." -#: ../src/iop/filmicrgb.c:4648 +#: ../src/iop/filmicrgb.c:4712 msgid "" "enable to auto-set the look hardness depending on the scene white and black " "points.\n" @@ -17074,7 +17644,7 @@ "налаштування.\n" "Вимкніть, якщо хочете управляти цим вручну." -#: ../src/iop/filmicrgb.c:4654 +#: ../src/iop/filmicrgb.c:4718 msgid "" "run extra passes of chromaticity reconstruction.\n" "more iterations means more color propagation from neighborhood.\n" @@ -17088,7 +17658,7 @@ "Це також допомагає при складних випадках мадженти в переекспонованих " "ділянках." -#: ../src/iop/filmicrgb.c:4661 +#: ../src/iop/filmicrgb.c:4725 msgid "" "add statistical noise in reconstructed highlights.\n" "this avoids highlights to look too smooth\n" @@ -17100,7 +17670,7 @@ "коли зображення загалом містить шум, що забезпечує більш\n" "природне поєднання з рештою зображення." -#: ../src/iop/filmicrgb.c:4668 +#: ../src/iop/filmicrgb.c:4732 msgid "" "choose the statistical distribution of noise.\n" "this is useful to match natural sensor noise pattern." @@ -17108,11 +17678,11 @@ "Вибрати статистичний розподіл шуму.\n" "Це корисно, щоб відповідати природній схемі шуму сенсора." -#: ../src/iop/filmicrgb.c:4736 +#: ../src/iop/filmicrgb.c:4800 msgid "mid-tones saturation" msgstr "Насиченість середніх тонів" -#: ../src/iop/filmicrgb.c:4737 +#: ../src/iop/filmicrgb.c:4801 msgid "" "desaturates the output of the module\n" "specifically at medium luminances.\n" @@ -17122,11 +17692,11 @@ "особливо при середніх яскравостях.\n" "Збільште, якщо середні тони недостатньо насичені." -#: ../src/iop/filmicrgb.c:4743 +#: ../src/iop/filmicrgb.c:4807 msgid "highlights saturation mix" msgstr "Насиченість світлих тонів" -#: ../src/iop/filmicrgb.c:4744 +#: ../src/iop/filmicrgb.c:4808 msgid "" "positive values ensure saturation is kept unchanged over the whole range.\n" "negative values bleach highlights at constant hue and luminance.\n" @@ -17150,39 +17720,39 @@ msgid "flip or rotate image by step of 90 degrees" msgstr "Віддзеркалення або обертання зображення з кроком в 90 градусів" -#: ../src/iop/flip.c:477 +#: ../src/iop/flip.c:475 msgid "no rotation" msgstr "Без обертання" -#: ../src/iop/flip.c:481 ../src/iop/flip.c:624 +#: ../src/iop/flip.c:479 ../src/iop/flip.c:622 msgid "flip horizontally" msgstr "Віддзеркалити за горизонталлю" -#: ../src/iop/flip.c:485 ../src/iop/flip.c:628 +#: ../src/iop/flip.c:483 ../src/iop/flip.c:626 msgid "flip vertically" msgstr "Віддзеркалити за вертикаллю" -#: ../src/iop/flip.c:489 +#: ../src/iop/flip.c:487 msgid "rotate by -90 degrees" msgstr "Повернути на -90 градусів" -#: ../src/iop/flip.c:493 +#: ../src/iop/flip.c:491 msgid "rotate by 90 degrees" msgstr "Повернути на 90 градусів" -#: ../src/iop/flip.c:497 +#: ../src/iop/flip.c:495 msgid "rotate by 180 degrees" msgstr "Повернути на 180 градусів" -#: ../src/iop/flip.c:612 +#: ../src/iop/flip.c:610 msgid "transform" msgstr "Трансформації:" -#: ../src/iop/flip.c:616 ../src/libs/live_view.c:293 +#: ../src/iop/flip.c:614 ../src/libs/live_view.c:293 msgid "rotate 90 degrees CCW" msgstr "Поворот на 90 градусів проти годинникової стрілки" -#: ../src/iop/flip.c:620 ../src/libs/live_view.c:294 +#: ../src/iop/flip.c:618 ../src/libs/live_view.c:294 msgid "rotate 90 degrees CW" msgstr "Поворот на 90 градусів за годинниковою стрілкою" @@ -17201,22 +17771,22 @@ "Цей модуль застарілий. Краще використовувати модуль 'Filmic RGB' замість " "нього." -#: ../src/iop/globaltonemap.c:625 ../src/libs/filters/colors.c:259 +#: ../src/iop/globaltonemap.c:658 ../src/libs/filters/colors.c:259 msgid "operator" msgstr "Оператор" -#: ../src/iop/globaltonemap.c:626 +#: ../src/iop/globaltonemap.c:659 msgid "the global tonemap operator" msgstr "Оператор глобального тонального відображення" -#: ../src/iop/globaltonemap.c:629 +#: ../src/iop/globaltonemap.c:662 msgid "" "the bias for tonemapper controls the linearity, the higher the more details " "in blacks" msgstr "" "Зміщення контролює лінійність, чим вище, тим більше деталей у темних тонах" -#: ../src/iop/globaltonemap.c:633 +#: ../src/iop/globaltonemap.c:666 msgid "the target light for tonemapper specified as cd/m2" msgstr "Цільова яскравість тонового відображення, вказана як кд/м²" @@ -17280,11 +17850,11 @@ msgid "simulate an optical graduated neutral density filter" msgstr "Імітувати оптичний градуйований фільтр нейтральної щільності" -#: ../src/iop/graduatednd.c:1114 +#: ../src/iop/graduatednd.c:1083 msgid "the density in EV for the filter" msgstr "Щільність фільтра в EV" -#: ../src/iop/graduatednd.c:1119 +#: ../src/iop/graduatednd.c:1088 #, no-c-format msgid "" "hardness of graduation:\n" @@ -17293,55 +17863,55 @@ "Жорсткість градієнтного переходу:\n" "0% = м'який, 100% = жорсткий" -#: ../src/iop/graduatednd.c:1123 +#: ../src/iop/graduatednd.c:1092 msgid "rotation of filter -180 to 180 degrees" msgstr "Обертання фільтра, між -180° і 180°" -#: ../src/iop/graduatednd.c:1136 +#: ../src/iop/graduatednd.c:1105 msgid "select the hue tone of filter" msgstr "Виберіть відтінок фільтра" -#: ../src/iop/graduatednd.c:1142 +#: ../src/iop/graduatednd.c:1111 msgid "select the saturation of filter" msgstr "Виберіть насиченість фільтра" -#: ../src/iop/graduatednd.c:1153 +#: ../src/iop/graduatednd.c:1122 #, c-format msgid "[%s on nodes] change line rotation" msgstr "[%s на вузлах] змінити кут повороту лінії" -#: ../src/iop/graduatednd.c:1154 +#: ../src/iop/graduatednd.c:1123 #, c-format msgid "[%s on line] move line" msgstr "[%s на лінії] перемістити лінію" -#: ../src/iop/graduatednd.c:1156 +#: ../src/iop/graduatednd.c:1125 #, c-format msgid "[%s on line] change density" msgstr "[%s на лінії] змінити щільність" -#: ../src/iop/graduatednd.c:1158 +#: ../src/iop/graduatednd.c:1127 #, c-format msgid "[%s on line] change hardness" msgstr "[%s на лінії] змінити жорсткість" -#: ../src/iop/grain.c:428 +#: ../src/iop/grain.c:444 msgid "grain" msgstr "Зерно" -#: ../src/iop/grain.c:433 +#: ../src/iop/grain.c:449 msgid "simulate silver grains from film" msgstr "Імітувати зерна срібла з фотоплівки" -#: ../src/iop/grain.c:582 +#: ../src/iop/grain.c:600 msgid "the grain size (~ISO of the film)" msgstr "Розмір зерна (~ISO плівки)" -#: ../src/iop/grain.c:586 +#: ../src/iop/grain.c:604 msgid "the strength of applied grain" msgstr "Інтенсивність застосованого зерна" -#: ../src/iop/grain.c:590 +#: ../src/iop/grain.c:608 msgid "" "amount of mid-tones bias from the photographic paper response modeling. the " "greater the bias, the more pronounced the fall off of the grain in shadows " @@ -17363,32 +17933,32 @@ msgid "remove fog and atmospheric hazing from pictures" msgstr "Видалити із зображень туман та атмосферний серпанок" -#: ../src/iop/hazeremoval.c:202 +#: ../src/iop/hazeremoval.c:204 msgid "amount of haze reduction" msgstr "Кількість зменшення серпанку" -#: ../src/iop/hazeremoval.c:204 +#: ../src/iop/hazeremoval.c:206 msgid "distance" msgstr "Відстань" -#: ../src/iop/hazeremoval.c:206 +#: ../src/iop/hazeremoval.c:208 msgid "limit haze removal up to a specific spatial depth" msgstr "Обмежити видалення серпанку до певної просторової глибини" #: ../src/iop/highlights.c:173 msgid "highlight reconstruction" -msgstr "Відновлення переекспонованих ділянок" +msgstr "Відновлення переекспонованого" #: ../src/iop/highlights.c:178 msgid "avoid magenta highlights and try to recover highlights colors" msgstr "" "Уникнення мадженти та спроба відновити кольори в переекспонованих ділянках" -#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:75 +#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:77 msgid "reconstruction, raw" msgstr "відновлювальна, raw" -#: ../src/iop/highlights.c:923 +#: ../src/iop/highlights.c:1004 msgid "" "highlights: mode not available for this type of image. falling back to " "inpaint opposed." @@ -17396,48 +17966,65 @@ "Відновлення пересвітленого: режим недоступний для цього типу зображень.\n" "Повертаємось до домальовування протилежного." -#: ../src/iop/highlights.c:1101 +#: ../src/iop/highlights.c:1184 msgid "highlight reconstruction method" msgstr "метод відновлення переекспонованих ділянок" -#: ../src/iop/highlights.c:1106 +#: ../src/iop/highlights.c:1189 msgid "" "manually adjust the clipping threshold mostly used against magenta " -"highlights\n" -"the mask icon shows the clipped areas.\n" +"highlights.\n" "you might use this for tuning 'laplacian', 'inpaint opposed' or " "'segmentation' modes,\n" "especially if camera white point is incorrect." msgstr "" "Ручне регулювання порогу обрізання для боротьби з маджентою в пересвітлених " "ділянках.\n" -"Піктограма маски показує обрізані області.\n" -"Ви можете використовувати це для регулювання в режимах 'лапласіанів', " -"'домальовування протилежного'\n" -"або 'сегментації', особливо якщо точка білого камери неправильна." +"Ви можете використовувати це для регулювання в режимах 'Лапласіанів', " +"'Домальовування протилежного'\n" +"або 'Сегментації', особливо якщо точка білого камери неправильна." + +#: ../src/iop/highlights.c:1193 +msgid "" +"visualize clipped highlights in a false color representation.\n" +"the effective clipping level also depends on the reconstruction method." +msgstr "" +"Візуалізувати обрізані ділянки в спеціальному кольорі.\n" +"Ефективний рівень кліппінгу також залежить від методу реконструкції." -#: ../src/iop/highlights.c:1117 +#: ../src/iop/highlights.c:1203 msgid "" "combine closely related clipped segments by morphological operations.\n" -"the mask button shows the exact positions of resulting segment borders." +"this often leads to improved color reconstruction for tiny segments before " +"dark background." msgstr "" "Об’єднати тісно пов’язані пересвітлені сегменти за допомогою морфологічних " "операцій.\n" -"Кнопка маски показує точне положення меж отриманого сегмента." +"Це часто призводить до покращеної реконструкції кольорів для крихітних " +"сегментів перед темним тлом." + +#: ../src/iop/highlights.c:1206 +msgid "visualize the combined segments in a false color representation." +msgstr "Візуалізувати об'єднані сегменти в спеціальному кольорі." -#: ../src/iop/highlights.c:1125 +#: ../src/iop/highlights.c:1213 msgid "" "select inpainting after segmentation analysis.\n" -"increase to favour candidates found in segmentation analysis, decrease for " -"opposed means inpainting.\n" -"the mask button shows segments that are considered to have a good candidate." -msgstr "" -"Виберіть домальовування після аналізу сегментації.\n" -"Збільште для надання переваги знайденим у аналізі кандидатам, зменште для " -"домальовування протилежного.\n" -"Кнопка маски показує сегменти, які вважаються хорошими кандидатами." +"increase to favor candidates found in segmentation analysis, decrease for " +"opposed means inpainting." +msgstr "" +"Збільште для надання переваги знайденим у аналізі сегментації кандидатам, " +"зменште для домальовування протилежного." -#: ../src/iop/highlights.c:1136 +#: ../src/iop/highlights.c:1216 +msgid "" +"visualize segments that are considered to have a good candidate in a false " +"color representation." +msgstr "" +"Візуалізувати сегменти, які вважаються такими, що мають хороші пікселі-" +"кандидати, в спеціальному кольорі." + +#: ../src/iop/highlights.c:1225 msgid "" "approximate lost data in regions with all photosites clipped, the effect " "depends on segment size and border gradients.\n" @@ -17458,16 +18045,16 @@ "електропередач), щоб зберегти пересвітлене реконструйованим і уникнути " "градієнтів." -#: ../src/iop/highlights.c:1142 -msgid "" -"set strength of rebuilding in regions with all photosites clipped.\n" -"the mask buttons shows the effect that is added to already reconstructed " -"data." +#: ../src/iop/highlights.c:1231 +msgid "set strength of rebuilding in regions with all photosites clipped." msgstr "" -"Встановити силу реконструкції в областях, де всі фотопікселі пересвітлені.\n" -"Кнопки маски показують ефект, який додається до вже реконструйованих даних." +"Установити силу реконструкції в областях, де всі фотопікселі пересвітлені." + +#: ../src/iop/highlights.c:1233 +msgid "show the effect that is added to already reconstructed data." +msgstr "Показати ефект, який додається до вже реконструйованих даних." -#: ../src/iop/highlights.c:1152 +#: ../src/iop/highlights.c:1242 msgid "" "add noise to visually blend the reconstructed areas\n" "into the rest of the noisy image. useful at high ISO." @@ -17475,7 +18062,7 @@ "Додати шум, щоб візуально змішати реконструйовані області\n" "з рештою шумного зображення. корисно при високих ISO." -#: ../src/iop/highlights.c:1156 +#: ../src/iop/highlights.c:1246 msgid "" "increase if magenta highlights don't get fully corrected\n" "each new iteration brings a performance penalty." @@ -17483,7 +18070,7 @@ "Збільште, якщо маджентові ділянки не повністю виправлені\n" "кожна нова ітерація призводить до зниження продуктивності." -#: ../src/iop/highlights.c:1161 +#: ../src/iop/highlights.c:1251 msgid "" "increase if magenta highlights don't get fully corrected.\n" "this may produce non-smooth boundaries between valid and clipped regions." @@ -17491,7 +18078,7 @@ "Збільште, якщо маджентові ділянки не повністю виправлені\n" "Це може створити негладкі межі між дійсними та обрізаними областями." -#: ../src/iop/highlights.c:1165 +#: ../src/iop/highlights.c:1255 msgid "" "increase to correct larger clipped areas.\n" "large values bring huge performance penalties" @@ -17499,9 +18086,9 @@ "Збільште, щоб виправити більші переекспоновані ділянки.\n" "великі значення призводять до значного зниження продуктивності" -#: ../src/iop/highlights.c:1169 -msgid "this module only works with non-monochrome RAW and sRAW" -msgstr "Цей модуль працює лише з немонохромними RAW та sRAW" +#: ../src/iop/highlights.c:1259 +msgid "this module does not work with monochrome RAW files" +msgstr "Цей модуль не працює з монохромними файлами RAW" #: ../src/iop/highpass.c:72 msgid "highpass" @@ -17511,35 +18098,35 @@ msgid "isolate high frequencies in the image" msgstr "Ізолювати високі частоти на зображенні" -#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:135 +#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:107 msgid "linear or non-linear, Lab, scene-referred" msgstr "лінійний або нелінійний простір, Lab, на основі сцен" -#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:136 ../src/iop/sharpen.c:96 +#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:108 ../src/iop/sharpen.c:98 msgid "frequential, Lab" msgstr "частотна, Lab" -#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:137 +#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:109 msgid "special, Lab, scene-referred" msgstr "спеціальний, Lab, на основі сцен" -#: ../src/iop/highpass.c:383 +#: ../src/iop/highpass.c:378 msgid "the sharpness of highpass filter" msgstr "Різкість фільтра високих частот" -#: ../src/iop/highpass.c:387 +#: ../src/iop/highpass.c:382 msgid "the contrast of highpass filter" msgstr "Контраст фільтра високих частот" -#: ../src/iop/hotpixels.c:67 +#: ../src/iop/hotpixels.c:69 msgid "hot pixels" msgstr "Дефектні пікселі" -#: ../src/iop/hotpixels.c:72 +#: ../src/iop/hotpixels.c:74 msgid "remove abnormally bright pixels by dampening them with neighbors" msgstr "Замінити надзвичайно яскраві пікселі усередненням сусідніх пікселів" -#: ../src/iop/hotpixels.c:363 +#: ../src/iop/hotpixels.c:442 #, c-format msgid "fixed %d pixel" msgid_plural "fixed %d pixels" @@ -17547,15 +18134,15 @@ msgstr[1] "Виправлено %d пікселя" msgstr[2] "Виправлено %d пікселів" -#: ../src/iop/hotpixels.c:386 +#: ../src/iop/hotpixels.c:465 msgid "lower threshold for hot pixel" msgstr "Знизити поріг для дефектних пікселів" -#: ../src/iop/hotpixels.c:390 +#: ../src/iop/hotpixels.c:469 msgid "strength of hot pixel correction" msgstr "Інтенсивність корекції дефектних пікселів" -#: ../src/iop/hotpixels.c:406 +#: ../src/iop/hotpixels.c:485 msgid "" "hot pixel correction\n" "only works for raw images." @@ -17563,64 +18150,64 @@ "Корекція дефектних пікселів\n" "працює лише для raw зображень." -#: ../src/iop/invert.c:92 ../src/iop/invert.c:427 +#: ../src/iop/invert.c:106 ../src/iop/invert.c:442 #, c-format msgid "`%s' color matrix not found for 4bayer image" -msgstr "Матрицю кольорів `%s' не знайдено для Quad Bayer зображення" +msgstr "Матрицю кольорів `%s' не знайдено для Bayer4 зображення" -#: ../src/iop/invert.c:108 +#: ../src/iop/invert.c:125 msgid "invert" msgstr "Інверсія" -#: ../src/iop/invert.c:113 +#: ../src/iop/invert.c:130 msgid "this module is deprecated. please use the negadoctor module instead." msgstr "" "Цей модуль застарілий. Краще використовувати модуль 'Негадоктор' замість " "нього." -#: ../src/iop/invert.c:118 +#: ../src/iop/invert.c:135 msgid "invert film negatives" msgstr "Інвертувати негативну фотоплівку" -#: ../src/iop/invert.c:120 ../src/iop/invert.c:122 +#: ../src/iop/invert.c:137 ../src/iop/invert.c:139 msgid "linear, raw, display-referred" msgstr "лінійний простір, raw, на основі відображення" #. Here we could provide more for monochrome special cases. As no monochrome camera #. has a bayer sensor we don't need g->RGB_to_CAM and g->CAM_to_RGB corrections -#: ../src/iop/invert.c:412 +#: ../src/iop/invert.c:427 msgid "brightness of film material" msgstr "Яскравість плівкового матеріалу" -#: ../src/iop/invert.c:416 +#: ../src/iop/invert.c:431 msgid "color of film material" msgstr "Колір матеріалу фотоплівки" -#: ../src/iop/invert.c:500 ../src/iop/negadoctor.c:847 +#: ../src/iop/invert.c:515 ../src/iop/negadoctor.c:866 msgid "pick color of film material from image" msgstr "Вибрати колір матеріалу фотоплівки із зображення" -#: ../src/iop/invert.c:502 +#: ../src/iop/invert.c:517 msgid "select color of film material" msgstr "Вибір кольору матеріалу фотоплівки" -#: ../src/iop/lens.cc:230 +#: ../src/iop/lens.cc:251 msgid "lens correction" msgstr "Корекція оптики" -#: ../src/iop/lens.cc:235 +#: ../src/iop/lens.cc:256 msgid "vignette|chromatic aberrations|distortion" msgstr "vignette|chromatic aberrations|distortion" -#: ../src/iop/lens.cc:240 +#: ../src/iop/lens.cc:261 msgid "correct lenses optical flaws" msgstr "Виправити оптичні недоліки лінз" -#: ../src/iop/lens.cc:243 +#: ../src/iop/lens.cc:264 msgid "geometric and reconstruction, RGB" msgstr "геометрична і відновлювальна, RGB" -#: ../src/iop/lens.cc:3148 +#: ../src/iop/lens.cc:3773 #, c-format msgid "" "maker:\t\t%s\n" @@ -17633,7 +18220,7 @@ "Байонет:\t\t%s\n" "Кроп-фактор:\t%.1f" -#: ../src/iop/lens.cc:3396 +#: ../src/iop/lens.cc:4026 #, c-format msgid "" "maker:\t\t%s\n" @@ -17652,31 +18239,31 @@ "Тип:\t\t%s\n" "Байонети:\t%s" -#: ../src/iop/lens.cc:3442 +#: ../src/iop/lens.cc:4072 msgid "focal length (mm)" msgstr "Фокусна відстань (мм)" -#: ../src/iop/lens.cc:3468 +#: ../src/iop/lens.cc:4098 msgid "f/" msgstr "f/" -#: ../src/iop/lens.cc:3469 +#: ../src/iop/lens.cc:4099 msgid "f-number (aperture)" msgstr "f-номер (діафрагма)" -#: ../src/iop/lens.cc:3485 +#: ../src/iop/lens.cc:4115 msgid "d" msgstr "відстань" -#: ../src/iop/lens.cc:3486 +#: ../src/iop/lens.cc:4116 msgid "distance to subject" msgstr "Відстань до об'єкта" -#: ../src/iop/lens.cc:3645 +#: ../src/iop/lens.cc:4277 msgid "camera/lens not found" msgstr "Камеру/об'єктив не знайдено" -#: ../src/iop/lens.cc:3646 +#: ../src/iop/lens.cc:4278 msgid "" "please select your lens manually\n" "you might also want to check if your Lensfun database is up-to-date\n" @@ -17686,45 +18273,50 @@ "Ви також можете перевірити, чи ваша база даних Lensfun оновлена\n" "за допомогою lensfun-update-data" -#: ../src/iop/lens.cc:3769 +#: ../src/iop/lens.cc:4423 msgid "camera model" msgstr "Модель камери" -#: ../src/iop/lens.cc:3774 +#: ../src/iop/lens.cc:4428 msgid "find camera" msgstr "Знайти камеру" -#: ../src/iop/lens.cc:3789 +#: ../src/iop/lens.cc:4443 msgid "find lens" msgstr "Знайти об'єктив" #. scale -#: ../src/iop/lens.cc:3823 ../src/iop/vignette.c:968 -#: ../src/iop/watermark.c:1324 ../src/libs/export.c:1165 +#: ../src/iop/lens.cc:4477 ../src/iop/vignette.c:1055 +#: ../src/iop/watermark.c:1372 ../src/libs/export.c:1264 msgid "scale" msgstr "Масштаб" -#: ../src/iop/lens.cc:3828 +#: ../src/iop/lens.cc:4482 msgid "auto scale" msgstr "Автоматичне масштабування" -#: ../src/iop/lens.cc:3832 +#: ../src/iop/lens.cc:4484 +msgid "automatic scale to available image size due to Lensfun data" +msgstr "" +"Автоматичне масштабування до доступного розміру зображення за даними Lensfun" + +#: ../src/iop/lens.cc:4488 msgid "correct distortions or apply them" msgstr "Коригувати деформації об'єктива чи застосувати їх" -#: ../src/iop/lens.cc:3839 +#: ../src/iop/lens.cc:4495 msgid "transversal chromatic aberration red" msgstr "Поперечні ХА - червоний" -#: ../src/iop/lens.cc:3843 +#: ../src/iop/lens.cc:4499 msgid "transversal chromatic aberration blue" msgstr "Поперечні ХА - синій" -#: ../src/iop/lens.cc:3849 +#: ../src/iop/lens.cc:4509 msgid "use latest algorithm" msgstr "Використовувати найновіший алгоритм" -#: ../src/iop/lens.cc:3851 +#: ../src/iop/lens.cc:4511 msgid "" "you're using an old version of the algorithm.\n" "once enabled, you won't be able to\n" @@ -17734,95 +18326,147 @@ "Після ввімкнення ви не зможете\n" "повернутися до старого алгоритму." -#: ../src/iop/lens.cc:3860 +#: ../src/iop/lens.cc:4521 +msgid "fine-tuning" +msgstr "Тонке регулювання" + +#. DT_IOP_SECTION_FOR_PARAMS doesn't work in C++ so create section module manually +#: ../src/iop/lens.cc:4526 +msgid "fine-tune" +msgstr "Тонке регулювання" + +#: ../src/iop/lens.cc:4532 msgid "tune the warp and chromatic aberration correction" msgstr "Підкоригувати викривлення та корекцію хроматичної аберації" -#: ../src/iop/lens.cc:3864 +#: ../src/iop/lens.cc:4536 msgid "tune the vignette correction" msgstr "Підкоригувати виправлення віньєтування" -#: ../src/iop/lens.cc:3868 +#: ../src/iop/lens.cc:4540 msgid "tune the TCA red correction" msgstr "Підкоригувати виправлення червоної ХА" -#: ../src/iop/lens.cc:3872 +#: ../src/iop/lens.cc:4544 msgid "tune the TCA blue correction" msgstr "Підкоригувати виправлення синьої ХА" -#: ../src/iop/lens.cc:3879 +#: ../src/iop/lens.cc:4551 msgid "image scaling" msgstr "Масштабування зображення" -#: ../src/iop/lens.cc:3891 +#: ../src/iop/lens.cc:4553 +msgid "automatic scale to available image size" +msgstr "Автоматичне масштабування до доступного розміру зображення" + +#: ../src/iop/lens.cc:4561 +msgid "" +"select a correction mode either based on\n" +" a) data and algorithms provided by the Lensfun project\n" +" b) embedded metadata provided by the camera or software vendor" +msgstr "" +"Виберіть режим корекції на основі\n" +" а) даних та алгоритмів, наданих проектом Lensfun\n" +" b) вбудованих метаданих, наданих вендором камери чи програмного " +"забезпечення" + +#: ../src/iop/lens.cc:4568 msgid "which corrections to apply" msgstr "Які коригування застосовувати" -#: ../src/iop/lens.cc:3904 +#: ../src/iop/lens.cc:4574 msgid "corrections done: " msgstr "Скориговано: " -#: ../src/iop/lens.cc:3906 +#: ../src/iop/lens.cc:4576 msgid "which corrections have actually been done" msgstr "Які коригування було застосовано" +#: ../src/iop/lens.cc:4595 +msgid "manual vignette correction" +msgstr "Ручна корекція віньєтування" + +#: ../src/iop/lens.cc:4599 +msgid "additional manually controlled optical vignetting correction" +msgstr "Додаткова корекція оптичного віньєтування з ручним керуванням" + +#: ../src/iop/lens.cc:4602 +msgid "vignette" +msgstr "Віньєтування" + +#: ../src/iop/lens.cc:4606 +msgid "amount of the applied optical vignetting correction" +msgstr "Обсяг застосованої корекції оптичного віньєтування" + +#: ../src/iop/lens.cc:4608 +msgid "show applied optical vignette correction mask" +msgstr "Показати застосовану маску корекції оптичного віньєтування" + +#: ../src/iop/lens.cc:4618 +msgid "radius of uncorrected centre" +msgstr "Радіус невиправленого центру" + +#: ../src/iop/lens.cc:4624 +msgid "steepness of the correction effect outside of radius" +msgstr "Крутизна ефекту корекції за межами радіуса" + #: ../src/iop/levels.c:112 msgid "this module is deprecated. please use the RGB levels module instead." msgstr "" "Цей модуль застарілий. Краще використовувати модуль 'Рівні RGB' замість " "нього." -#: ../src/iop/levels.c:117 ../src/iop/levels.c:630 ../src/iop/rgblevels.c:984 -#: ../src/iop/rgblevels.c:1014 +#: ../src/iop/levels.c:117 ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1022 +#: ../src/iop/rgblevels.c:1056 msgid "levels" msgstr "Рівні" -#: ../src/iop/levels.c:137 +#: ../src/iop/levels.c:139 msgid "adjust black, white and mid-gray points" msgstr "Регулювати точки чорного, білого і середнього сірого" -#: ../src/iop/levels.c:628 ../src/iop/rgblevels.c:1016 +#: ../src/iop/levels.c:644 ../src/iop/rgblevels.c:1059 msgid "" "drag handles to set black, gray, and white points. operates on L channel." msgstr "" "Перетягніть вертикальні лінії, щоб встановити точки чорного, середньо-сірого " "та білого. працює в каналі L." -#: ../src/iop/levels.c:642 ../src/iop/rgblevels.c:1052 +#: ../src/iop/levels.c:658 ../src/iop/rgblevels.c:1108 msgid "apply auto levels" msgstr "Застосувати авто-рівні" -#: ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1027 +#: ../src/iop/levels.c:662 ../src/iop/rgblevels.c:1077 msgid "pick black point from image" msgstr "Вибрати точку чорного із зображення" -#: ../src/iop/levels.c:650 ../src/iop/rgblevels.c:1033 +#: ../src/iop/levels.c:666 ../src/iop/rgblevels.c:1085 msgid "pick medium gray point from image" msgstr "Вибрати точку середнього сірого із зображення" -#: ../src/iop/levels.c:654 ../src/iop/rgblevels.c:1039 +#: ../src/iop/levels.c:670 ../src/iop/rgblevels.c:1093 msgid "pick white point from image" msgstr "Вибрати точку білого із зображення" -#: ../src/iop/levels.c:667 ../src/iop/rgblevels.c:936 -#: ../src/iop/rgblevels.c:1026 +#: ../src/iop/levels.c:683 ../src/iop/rgblevels.c:968 +#: ../src/iop/rgblevels.c:1075 msgid "black" msgstr "Чорний" -#: ../src/iop/levels.c:668 +#: ../src/iop/levels.c:684 msgid "black percentile" msgstr "Процентиль чорного" -#: ../src/iop/levels.c:672 +#: ../src/iop/levels.c:688 msgid "gray percentile" msgstr "Процентиль сірого" -#: ../src/iop/levels.c:675 ../src/iop/rgblevels.c:938 -#: ../src/iop/rgblevels.c:1038 +#: ../src/iop/levels.c:691 ../src/iop/rgblevels.c:970 +#: ../src/iop/rgblevels.c:1091 msgid "white" msgstr "Білий" -#: ../src/iop/levels.c:676 +#: ../src/iop/levels.c:692 msgid "white percentile" msgstr "Процентиль білого" @@ -17834,11 +18478,11 @@ msgid "distort parts of the image" msgstr "Деформації частин зображення" -#: ../src/iop/liquify.c:2933 +#: ../src/iop/liquify.c:2895 msgid "click to edit nodes" msgstr "Натисніть, щоб редагувати вузли" -#: ../src/iop/liquify.c:3636 +#: ../src/iop/liquify.c:3599 msgid "" "<b>add point</b>: click and drag\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17848,7 +18492,7 @@ "<b>Розмір</b>: прокрутка - <b>Сила</b>: Shift+прокрутка - <b>Напрямок</b>: " "Ctrl+прокрутка" -#: ../src/iop/liquify.c:3639 +#: ../src/iop/liquify.c:3602 msgid "" "<b>add line</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17858,7 +18502,7 @@ "<b>Розмір</b>: прокрутка - <b>Сила</b>: Shift+прокрутка - <b>Напрямок</b>: " "Ctrl+прокрутка" -#: ../src/iop/liquify.c:3642 +#: ../src/iop/liquify.c:3605 msgid "" "<b>add curve</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -17868,7 +18512,7 @@ "<b>Розмір</b>: прокрутка - <b>Сила</b>: Shift+прокрутка - <b>Напрямок</b>: " "Ctrl+прокрутка" -#: ../src/iop/liquify.c:3693 +#: ../src/iop/liquify.c:3656 msgid "" "use a tool to add warps\n" "<b>remove a warp</b>: right-click" @@ -17876,48 +18520,48 @@ "Використовуйте інструмент для додавання деформацій\n" "<b>Видалити деформацію</b>: права кнопка миші" -#: ../src/iop/liquify.c:3696 +#: ../src/iop/liquify.c:3659 msgid "warps|nodes count:" msgstr "Деформацій | Вузлів: " -#: ../src/iop/liquify.c:3705 +#: ../src/iop/liquify.c:3668 msgid "edit, add and delete nodes" msgstr "Редагувати, додавати і видаляти вузли" -#: ../src/iop/liquify.c:3710 ../src/iop/liquify.c:3716 -#: ../src/iop/liquify.c:3722 ../src/iop/retouch.c:2238 -#: ../src/iop/retouch.c:2242 ../src/iop/retouch.c:2246 -#: ../src/iop/retouch.c:2250 ../src/iop/spots.c:883 ../src/iop/spots.c:888 -#: ../src/iop/spots.c:893 ../src/libs/masks.c:1816 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1834 ../src/libs/masks.c:1843 ../src/libs/masks.c:1852 +#: ../src/iop/liquify.c:3673 ../src/iop/liquify.c:3679 +#: ../src/iop/liquify.c:3685 ../src/iop/retouch.c:2465 +#: ../src/iop/retouch.c:2471 ../src/iop/retouch.c:2476 +#: ../src/iop/retouch.c:2481 ../src/iop/spots.c:885 ../src/iop/spots.c:890 +#: ../src/iop/spots.c:895 ../src/libs/masks.c:1812 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1830 ../src/libs/masks.c:1839 ../src/libs/masks.c:1848 msgid "shapes" msgstr "Фігури" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw curves" msgstr "Додати криві" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw multiple curves" msgstr "Додати кілька кривих" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw lines" msgstr "Додати лінії" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw multiple lines" msgstr "Додати кілька ліній" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw points" msgstr "Додати точку" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw multiple points" msgstr "Додати кілька точок" -#: ../src/iop/liquify.c:3729 +#: ../src/iop/liquify.c:3692 msgid "" "<b>add node</b>: ctrl+click - <b>remove path</b>: right click\n" "<b>toggle line/curve</b>: ctrl+alt+click" @@ -17925,7 +18569,7 @@ "<b>Додати вузол</b>: Ctrl+клік - <b>Видалити контур</b>: правий клік\n" "<b>Перемкнути лінія/крива</b>: Ctrl+Alt+клік" -#: ../src/iop/liquify.c:3732 +#: ../src/iop/liquify.c:3695 msgid "" "<b>move</b>: click and drag - <b>show/hide feathering controls</b>: click\n" "<b>autosmooth, cusp, smooth, symmetrical</b>: ctrl+click - <b>remove</b>: " @@ -17936,23 +18580,23 @@ "<b>Автозгладжування, виступи, згладжування, симетричність</b>: Ctrl+клік - " "<b>Прибрати</b>: клік правою кнопкою" -#: ../src/iop/liquify.c:3736 ../src/iop/liquify.c:3738 +#: ../src/iop/liquify.c:3699 ../src/iop/liquify.c:3701 msgid "<b>shape of path</b>: drag" msgstr "<b>Зміна форми контуру</b>: перетягування" -#: ../src/iop/liquify.c:3740 +#: ../src/iop/liquify.c:3703 msgid "<b>radius</b>: drag" msgstr "<b>Радіус</b>: перетягування" -#: ../src/iop/liquify.c:3742 +#: ../src/iop/liquify.c:3705 msgid "<b>hardness (center)</b>: drag" msgstr "<b>Регулювання жорсткості (центр)</b>: перетягування" -#: ../src/iop/liquify.c:3744 +#: ../src/iop/liquify.c:3707 msgid "<b>hardness (feather)</b>: drag" msgstr "<b>Регулювання жорсткості (розтушовка)</b>: перетягування" -#: ../src/iop/liquify.c:3746 +#: ../src/iop/liquify.c:3709 msgid "" "<b>strength</b>: drag\n" "<b>linear, grow, and shrink</b>: ctrl+click" @@ -17972,236 +18616,236 @@ msgid "linear, XYZ" msgstr "лінійна, XYZ" -#: ../src/iop/lowlight.c:341 +#: ../src/iop/lowlight.c:338 msgid "indoor bright" msgstr "В приміщенні, яскраво" -#: ../src/iop/lowlight.c:359 +#: ../src/iop/lowlight.c:356 msgid "indoor dim" msgstr "В приміщенні, тьмяно" -#: ../src/iop/lowlight.c:377 +#: ../src/iop/lowlight.c:374 msgid "indoor dark" msgstr "В приміщенні, темно" -#: ../src/iop/lowlight.c:395 +#: ../src/iop/lowlight.c:392 msgid "twilight" msgstr "Сутінки" -#: ../src/iop/lowlight.c:413 +#: ../src/iop/lowlight.c:410 msgid "night street lit" msgstr "Нічна вулиця, освітлено" -#: ../src/iop/lowlight.c:431 +#: ../src/iop/lowlight.c:428 msgid "night street" msgstr "Нічна вулиця" -#: ../src/iop/lowlight.c:449 +#: ../src/iop/lowlight.c:446 msgid "night street dark" msgstr "Нічна вулиця, темно" -#: ../src/iop/lowlight.c:468 +#: ../src/iop/lowlight.c:465 msgid "night" msgstr "Ніч" -#: ../src/iop/lowlight.c:641 +#: ../src/iop/lowlight.c:639 msgid "dark" msgstr "Темно" -#: ../src/iop/lowlight.c:649 +#: ../src/iop/lowlight.c:647 msgid "bright" msgstr "Яскраво" -#: ../src/iop/lowlight.c:658 +#: ../src/iop/lowlight.c:656 msgid "day vision" msgstr "Денне бачення" -#: ../src/iop/lowlight.c:663 +#: ../src/iop/lowlight.c:661 msgid "night vision" msgstr "Нічне бачення" -#: ../src/iop/lowlight.c:835 +#: ../src/iop/lowlight.c:833 msgid "blueness in shadows" msgstr "Синява в тінях" -#: ../src/iop/lowpass.c:128 +#: ../src/iop/lowpass.c:100 msgid "lowpass" msgstr "Фільтр низьких частот" -#: ../src/iop/lowpass.c:133 +#: ../src/iop/lowpass.c:105 msgid "isolate low frequencies in the image" msgstr "Ізолювати низькі частоти на зображенні" -#: ../src/iop/lowpass.c:565 +#: ../src/iop/lowpass.c:578 msgid "local contrast mask" msgstr "Маска локального контрасту" -#: ../src/iop/lowpass.c:590 +#: ../src/iop/lowpass.c:603 msgid "radius of gaussian/bilateral blur" msgstr "Радіус гауссівського/білатерального розмиття" -#: ../src/iop/lowpass.c:591 +#: ../src/iop/lowpass.c:604 msgid "contrast of lowpass filter" msgstr "Регулювання контрасту фільтра низьких частот" -#: ../src/iop/lowpass.c:592 +#: ../src/iop/lowpass.c:605 msgid "brightness adjustment of lowpass filter" msgstr "Регулювання яскравості фільтра низьких частот" -#: ../src/iop/lowpass.c:593 +#: ../src/iop/lowpass.c:606 msgid "color saturation of lowpass filter" msgstr "Регулювання насиченості фільтра низьких частот" -#: ../src/iop/lowpass.c:594 +#: ../src/iop/lowpass.c:607 msgid "which filter to use for blurring" msgstr "Який фільтр використовувати для розмиття" -#: ../src/iop/lut3d.c:135 +#: ../src/iop/lut3d.c:136 msgid "LUT 3D" msgstr "LUT 3D" -#: ../src/iop/lut3d.c:140 +#: ../src/iop/lut3d.c:141 msgid "perform color space corrections and apply look" msgstr "Виконувати корекцію кольорового простору та застосовувати вигляд" -#: ../src/iop/lut3d.c:143 +#: ../src/iop/lut3d.c:144 msgid "defined by profile, RGB" msgstr "Визначається профілем, RGB" -#: ../src/iop/lut3d.c:468 +#: ../src/iop/lut3d.c:486 msgid "error allocating buffer for gmz LUT" msgstr "Помилка виділення буфера для gmz LUT" -#: ../src/iop/lut3d.c:494 +#: ../src/iop/lut3d.c:512 #, c-format msgid "invalid png file %s" -msgstr "Некоректний файл png %s" +msgstr "Некоректний файл PNG %s" -#: ../src/iop/lut3d.c:502 +#: ../src/iop/lut3d.c:520 #, c-format -msgid "png bit-depth %d not supported" -msgstr "Бітова глибина %d файлу png не підтримується" +msgid "png bit depth %d is not supported" +msgstr "Бітова глибина %d для PNG не підтримується" -#: ../src/iop/lut3d.c:516 ../src/iop/lut3d.c:526 +#: ../src/iop/lut3d.c:534 ../src/iop/lut3d.c:544 #, c-format msgid "invalid level in png file %d %d" -msgstr "Недійсний рівень в png файлі %d %d" +msgstr "Недійсний рівень в PNG файлі %d %d" -#: ../src/iop/lut3d.c:521 +#: ../src/iop/lut3d.c:539 msgid "this darktable build is not compatible with compressed CLUT" -msgstr "Ця збірка darktable несумісна зі стиснутим форматом CLUT" +msgstr "Ця збірка Darktable несумісна зі стиснутим форматом CLUT" -#: ../src/iop/lut3d.c:538 ../src/iop/lut3d.c:788 +#: ../src/iop/lut3d.c:556 ../src/iop/lut3d.c:808 #, c-format msgid "error - LUT 3D size %d exceeds the maximum supported" msgstr "Помилка - розмір LUT 3D %d перевищує максимально підтримуваний" -#: ../src/iop/lut3d.c:550 +#: ../src/iop/lut3d.c:568 msgid "error allocating buffer for png LUT" -msgstr "Помилка виділення буфера для png LUT" +msgstr "Помилка виділення буфера для PNG LUT" -#: ../src/iop/lut3d.c:558 +#: ../src/iop/lut3d.c:576 #, c-format msgid "error - could not read png image %s" -msgstr "Помилка - не вдається прочитати png зображення %s" +msgstr "Помилка - не вдається прочитати PNG зображення %s" -#: ../src/iop/lut3d.c:568 +#: ../src/iop/lut3d.c:586 msgid "error - allocating buffer for png LUT" -msgstr "Помилка - виділення буфера для png LUT" +msgstr "Помилка - виділення буфера для PNG LUT" -#: ../src/iop/lut3d.c:743 +#: ../src/iop/lut3d.c:761 #, c-format msgid "error - invalid cube file: %s" msgstr "Помилка - недійсний cube файл: %s" -#: ../src/iop/lut3d.c:757 -msgid "DOMAIN MIN <> 0.0 is not supported" -msgstr "DOMAIN MIN <> 0.0 не підтримується" - -#: ../src/iop/lut3d.c:768 -msgid "DOMAIN MAX <> 1.0 is not supported" -msgstr "DOMAIN MAX <> 1.0 не підтримується" +#: ../src/iop/lut3d.c:775 +msgid "DOMAIN MIN other than 0 is not supported" +msgstr "DOMAIN MIN, відмінний від 0.0, не підтримується" + +#: ../src/iop/lut3d.c:787 +msgid "DOMAIN MAX other than 1 is not supported" +msgstr "DOMAIN MAX, відмінний від 1.0, не підтримується" -#: ../src/iop/lut3d.c:777 +#: ../src/iop/lut3d.c:797 msgid "1D cube LUT is not supported" msgstr "1D cube LUT не підтримується" -#: ../src/iop/lut3d.c:799 +#: ../src/iop/lut3d.c:819 msgid "error - allocating buffer for cube LUT" msgstr "Помилка - виділення буфера для cube LUT" -#: ../src/iop/lut3d.c:810 +#: ../src/iop/lut3d.c:830 msgid "error - cube LUT size is not defined" msgstr "Помилка - розмір cube LUT не визначено" -#: ../src/iop/lut3d.c:821 +#: ../src/iop/lut3d.c:841 #, c-format msgid "error - cube LUT invalid number line %d" msgstr "Помилка - cube LUT: недійсне число в рядку %d" -#: ../src/iop/lut3d.c:837 +#: ../src/iop/lut3d.c:857 #, c-format msgid "error - cube LUT lines number %d is not correct, should be %d" msgstr "Помилка - cube LUT: кількість рядків %d неправильна, має бути %d" -#: ../src/iop/lut3d.c:847 +#: ../src/iop/lut3d.c:867 #, c-format msgid "warning - cube LUT has %d values out of range [0,1]" msgstr "Попередження - cube LUT: %d значень поза діапазоном [0,1]" -#: ../src/iop/lut3d.c:872 +#: ../src/iop/lut3d.c:892 #, c-format msgid "error - invalid 3dl file: %s" msgstr "Помилка - недійсний 3dl файл: %s" -#: ../src/iop/lut3d.c:893 +#: ../src/iop/lut3d.c:913 #, c-format msgid "error - the maximum shaper LUT value %d is too low" msgstr "Помилка - максимальне значення shaper LUT %d занадто низьке" -#: ../src/iop/lut3d.c:904 +#: ../src/iop/lut3d.c:924 msgid "error - allocating buffer for 3dl LUT" msgstr "Помилка - виділення буфера для 3dl LUT" -#: ../src/iop/lut3d.c:917 +#: ../src/iop/lut3d.c:937 msgid "error - 3dl LUT size is not defined" msgstr "Помилка - розмір 3dl LUT не визначено" -#: ../src/iop/lut3d.c:945 +#: ../src/iop/lut3d.c:965 msgid "error - 3dl LUT lines number is not correct" msgstr "Помилка - неправильна кількість рядків в 3dl LUT" -#: ../src/iop/lut3d.c:961 +#: ../src/iop/lut3d.c:981 msgid "error - the maximum LUT value does not match any valid bit depth" msgstr "" "Помилка - максимальне значення в LUT не відповідає жодній дійсній бітовій " "глибині" -#: ../src/iop/lut3d.c:1539 +#: ../src/iop/lut3d.c:1553 msgid "LUT root folder not defined" msgstr "Кореневий каталог LUT не визначено" -#: ../src/iop/lut3d.c:1545 +#: ../src/iop/lut3d.c:1559 msgid "select LUT file" msgstr "Вибрати LUT файл" -#: ../src/iop/lut3d.c:1546 +#: ../src/iop/lut3d.c:1560 msgid "_select" msgstr "_вибрати" -#: ../src/iop/lut3d.c:1566 +#: ../src/iop/lut3d.c:1580 msgid "hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" msgstr "hald CLUT (png), 3D LUT (cube чи 3dl) або стиснутий gmic LUT (gmz)" -#: ../src/iop/lut3d.c:1568 +#: ../src/iop/lut3d.c:1582 msgid "hald CLUT (png) or 3D LUT (cube or 3dl)" msgstr "hald CLUT (png) або 3D LUT (cube чи 3dl)" -#: ../src/iop/lut3d.c:1592 +#: ../src/iop/lut3d.c:1606 msgid "select file outside LUT root folder is not allowed" msgstr "Вибір файлу поза кореневим каталогом LUT файлів не дозволено" -#: ../src/iop/lut3d.c:1663 +#: ../src/iop/lut3d.c:1677 msgid "" "select a png (haldclut), a cube, a 3dl or a gmz (compressed LUT) file " "CAUTION: 3D LUT folder must be set in preferences/processing before choosing " @@ -18211,7 +18855,7 @@ "ПОПЕРЕДЖЕННЯ: Перед вибором файлу LUT потрібно встановити кореневий каталог " "3D LUT файлів в розділі 'обробка' налаштувань darktable" -#: ../src/iop/lut3d.c:1667 +#: ../src/iop/lut3d.c:1681 msgid "" "select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be " "set in preferences/processing before choosing the LUT file" @@ -18220,7 +18864,7 @@ "LUT потрібно встановити кореневий каталог 3D LUT файлів в розділі 'обробка' " "налаштувань darktable" -#: ../src/iop/lut3d.c:1679 +#: ../src/iop/lut3d.c:1693 msgid "" "the file path (relative to LUT folder) is saved with image along with the " "LUT data if it's a compressed LUT (gmz)" @@ -18228,7 +18872,7 @@ "Шлях до файлу (відносно каталогу LUT) зберігається із зображенням разом із " "даними LUT, якщо це стиснутий LUT (gmz)" -#: ../src/iop/lut3d.c:1682 +#: ../src/iop/lut3d.c:1696 msgid "" "the file path (relative to LUT folder) is saved with image (and not the LUT " "data themselves)" @@ -18236,47 +18880,47 @@ "Шлях до файлу (відносно каталогу LUT) зберігається із зображенням (але не " "самі дані LUT)" -#: ../src/iop/lut3d.c:1691 +#: ../src/iop/lut3d.c:1705 msgid "enter LUT name" msgstr "Вкажіть ім'я LUT" -#: ../src/iop/lut3d.c:1712 +#: ../src/iop/lut3d.c:1726 msgid "select the LUT" msgstr "Вибір файлу LUT" -#: ../src/iop/lut3d.c:1725 +#: ../src/iop/lut3d.c:1739 msgid "select the color space in which the LUT has to be applied" msgstr "Виберіть колірний простір, в якому має застосовуватися LUT" -#: ../src/iop/lut3d.c:1727 +#: ../src/iop/lut3d.c:1741 msgid "interpolation" msgstr "Інтерполяція" -#: ../src/iop/lut3d.c:1728 +#: ../src/iop/lut3d.c:1742 msgid "select the interpolation method" msgstr "Виберіть метод інтерполяції" -#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:62 +#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:63 msgid "mask manager" msgstr "Менеджер масок" -#: ../src/iop/monochrome.c:97 +#: ../src/iop/monochrome.c:99 msgid "quickly convert an image to black & white using a variable color filter" msgstr "" "Швидко перетворює зображення в чорно-біле за допомогою фільтра змінних " "кольорів" -#: ../src/iop/monochrome.c:127 +#: ../src/iop/monochrome.c:153 msgid "red filter" msgstr "Червоний фільтр" -#: ../src/iop/monochrome.c:546 +#: ../src/iop/monochrome.c:568 msgid "drag and scroll mouse wheel to adjust the virtual color filter" msgstr "" "Перетягуйте та прокручуйте коліщатко миші для\n" "налаштування віртуального кольорового фільтра" -#: ../src/iop/monochrome.c:562 +#: ../src/iop/monochrome.c:584 msgid "how much to keep highlights" msgstr "Наскільки зберігати світлі тони" @@ -18292,35 +18936,35 @@ msgid "invert film negative scans and simulate printing on paper" msgstr "Інвертувати сканування негативної плівки та імітувати друк на папері" -#: ../src/iop/negadoctor.c:469 +#: ../src/iop/negadoctor.c:483 msgid "D min" msgstr "D min" -#: ../src/iop/negadoctor.c:475 ../src/iop/negadoctor.c:856 +#: ../src/iop/negadoctor.c:489 ../src/iop/negadoctor.c:875 msgid "D min red component" msgstr "D min червоного компонента" #. Page FILM PROPERTIES -#: ../src/iop/negadoctor.c:832 +#: ../src/iop/negadoctor.c:851 msgid "film properties" msgstr "Параметри плівки" #. Dmin -#: ../src/iop/negadoctor.c:836 +#: ../src/iop/negadoctor.c:855 msgctxt "section" msgid "color of the film base" msgstr "Колір основи фотоплівки" -#: ../src/iop/negadoctor.c:842 +#: ../src/iop/negadoctor.c:861 msgid "select color of film material from a swatch" msgstr "Виберіть колір плівкового матеріалу із зразка" -#: ../src/iop/negadoctor.c:848 +#: ../src/iop/negadoctor.c:867 msgid "film material" msgstr "Матеріал фотоплівки" -#: ../src/iop/negadoctor.c:857 ../src/iop/negadoctor.c:867 -#: ../src/iop/negadoctor.c:877 +#: ../src/iop/negadoctor.c:876 ../src/iop/negadoctor.c:886 +#: ../src/iop/negadoctor.c:896 msgid "" "adjust the color and shade of the film transparent base.\n" "this value depends on the film material, \n" @@ -18332,21 +18976,21 @@ "вуалі, що утворюється при обробці плівки,\n" "і балансу білого сканера." -#: ../src/iop/negadoctor.c:866 +#: ../src/iop/negadoctor.c:885 msgid "D min green component" msgstr "D min зеленого компонента" -#: ../src/iop/negadoctor.c:876 +#: ../src/iop/negadoctor.c:895 msgid "D min blue component" msgstr "D min синього компонента" #. D max and scanner bias -#: ../src/iop/negadoctor.c:884 +#: ../src/iop/negadoctor.c:903 msgctxt "section" msgid "dynamic range of the film" msgstr "Динамічний діапазон плівки" -#: ../src/iop/negadoctor.c:888 +#: ../src/iop/negadoctor.c:907 msgid "" "maximum density of the film, corresponding to white after inversion.\n" "this value depends on the film specifications, the developing process,\n" @@ -18356,12 +19000,12 @@ "Це значення залежить від технічних характеристик плівки, процесу обробки,\n" "динамічного діапазону сцени та налаштування експозиції сканера." -#: ../src/iop/negadoctor.c:892 +#: ../src/iop/negadoctor.c:911 msgctxt "section" msgid "scanner exposure settings" msgstr "Налаштування експозиції сканера" -#: ../src/iop/negadoctor.c:896 +#: ../src/iop/negadoctor.c:915 msgid "" "correct the exposure of the scanner, for all RGB channels,\n" "before the inversion, so blacks are neither clipped or too pale." @@ -18370,25 +19014,25 @@ "інверсією, щоб темні тони не були ні обрізані, ні занадто бліді." #. WB shadows -#: ../src/iop/negadoctor.c:903 +#: ../src/iop/negadoctor.c:922 msgctxt "section" msgid "shadows color cast" msgstr "Обарвлення тіней" -#: ../src/iop/negadoctor.c:909 +#: ../src/iop/negadoctor.c:928 msgid "select color of shadows from a swatch" msgstr "Вибрати колір тіней із зразка" -#: ../src/iop/negadoctor.c:914 +#: ../src/iop/negadoctor.c:933 msgid "pick shadows color from image" msgstr "Вибрати колір тіней із зображення" -#: ../src/iop/negadoctor.c:920 +#: ../src/iop/negadoctor.c:939 msgid "shadows red offset" msgstr "Зміщення червоного в тінях" -#: ../src/iop/negadoctor.c:921 ../src/iop/negadoctor.c:928 -#: ../src/iop/negadoctor.c:935 +#: ../src/iop/negadoctor.c:940 ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:954 msgid "" "correct the color cast in shadows so blacks are\n" "truly achromatic. Setting this value before\n" @@ -18400,34 +19044,34 @@ "освітлювачем світлих тонів допоможе відновити\n" "глобальний балансу білого у складних випадках." -#: ../src/iop/negadoctor.c:927 +#: ../src/iop/negadoctor.c:946 msgid "shadows green offset" msgstr "Зміщення зеленого в тінях" -#: ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:953 msgid "shadows blue offset" msgstr "Зміщення синього в тінях" #. WB highlights -#: ../src/iop/negadoctor.c:941 +#: ../src/iop/negadoctor.c:960 msgctxt "section" msgid "highlights white balance" msgstr "Баланс білого в світлих тонах" -#: ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:966 msgid "select color of illuminant from a swatch" msgstr "Вибрати колір джерела світла із зразка" -#: ../src/iop/negadoctor.c:952 +#: ../src/iop/negadoctor.c:971 msgid "pick illuminant color from image" msgstr "Вибрати колір джерела світла із зображення" -#: ../src/iop/negadoctor.c:958 +#: ../src/iop/negadoctor.c:977 msgid "illuminant red gain" msgstr "Посилення червоного в джерелі світла" -#: ../src/iop/negadoctor.c:959 ../src/iop/negadoctor.c:966 -#: ../src/iop/negadoctor.c:973 +#: ../src/iop/negadoctor.c:978 ../src/iop/negadoctor.c:985 +#: ../src/iop/negadoctor.c:992 msgid "" "correct the color of the illuminant so whites are\n" "truly achromatic. Setting this value after\n" @@ -18439,26 +19083,26 @@ "обарвлення тіней допоможе відновити\n" "глобальний баланс білого у складних випадках." -#: ../src/iop/negadoctor.c:965 +#: ../src/iop/negadoctor.c:984 msgid "illuminant green gain" msgstr "Посилення зеленого в джерелі світла" -#: ../src/iop/negadoctor.c:972 +#: ../src/iop/negadoctor.c:991 msgid "illuminant blue gain" msgstr "Посилення синього в джерелі світла" #. Page PRINT PROPERTIES -#: ../src/iop/negadoctor.c:979 +#: ../src/iop/negadoctor.c:998 msgid "print properties" msgstr "Параметри друку" #. print corrections -#: ../src/iop/negadoctor.c:982 +#: ../src/iop/negadoctor.c:1001 msgctxt "section" msgid "virtual paper properties" msgstr "Параметри віртуального паперу" -#: ../src/iop/negadoctor.c:988 +#: ../src/iop/negadoctor.c:1007 msgid "" "correct the density of black after the inversion,\n" "to adjust the global contrast while avoiding clipping shadows." @@ -18466,7 +19110,7 @@ "Виправити щільність чорного після інверсії,\n" "для регулювання глобальної контрастності, уникаючи відсікання тіней." -#: ../src/iop/negadoctor.c:993 +#: ../src/iop/negadoctor.c:1012 msgid "" "select the grade of the virtual paper, which is actually\n" "equivalent to applying a gamma. it compensates the film D max\n" @@ -18476,7 +19120,7 @@ "еквівалентом застосування гамми. Це компенсує D max плівки\n" "і відновлює контраст. Використовуйте високий грейд для високого D max." -#: ../src/iop/negadoctor.c:1001 +#: ../src/iop/negadoctor.c:1020 msgid "" "gradually compress specular highlights past this value\n" "to avoid clipping while pushing the exposure for mid-tones.\n" @@ -18486,12 +19130,12 @@ "щоб уникнути кліппінгу при зміщенні експозиції для середніх тонів.\n" "Це певною мірою відтворює поведінку матового паперу." -#: ../src/iop/negadoctor.c:1005 +#: ../src/iop/negadoctor.c:1024 msgctxt "section" msgid "virtual print emulation" msgstr "Емуляція віртуального друку" -#: ../src/iop/negadoctor.c:1012 +#: ../src/iop/negadoctor.c:1031 msgid "" "correct the printing exposure after inversion to adjust\n" "the global contrast and avoid clipping highlights." @@ -18499,53 +19143,85 @@ "Коригувати експозицію друку після інверсії, щоб відрегулювати\n" "глобальний контраст і уникнути кліппінгу світлих тонів." -#: ../src/iop/negadoctor.c:1020 +#: ../src/iop/negadoctor.c:1039 msgid "toggle on or off the color controls" msgstr "Увімкнути/вимкнути управління кольором" -#: ../src/iop/nlmeans.c:84 +#: ../src/iop/nlmeans.c:78 msgid "astrophoto denoise" msgstr "Знешумлення астрофото" -#: ../src/iop/nlmeans.c:89 +#: ../src/iop/nlmeans.c:83 msgid "denoise (non-local means)" msgstr "Знешумлення (нелокальні середні)" -#: ../src/iop/nlmeans.c:94 +#: ../src/iop/nlmeans.c:88 msgid "apply a poisson noise removal best suited for astrophotography" msgstr "" "Застосувати пуассонівське усунення шуму, що найкраще підходить для " "астрофотографії" -#: ../src/iop/nlmeans.c:459 +#: ../src/iop/nlmeans.c:462 msgid "radius of the patches to match" msgstr "Радіус зразка, що використовується для оцінки подібності" -#: ../src/iop/nlmeans.c:467 +#: ../src/iop/nlmeans.c:470 msgid "how much to smooth brightness" msgstr "Наскільки згладжувати яскравість" -#: ../src/iop/nlmeans.c:470 +#: ../src/iop/nlmeans.c:473 msgid "how much to smooth colors" msgstr "Наскільки згладжувати кольори" #. * let's fill the encapsulating widgets #. preview mode #. color scheme -#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2419 -#: ../src/views/darkroom.c:2437 ../src/views/darkroom.c:2444 -#: ../src/views/darkroom.c:2454 ../src/views/darkroom.c:2471 +#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2258 +#: ../src/views/darkroom.c:2276 ../src/views/darkroom.c:2283 +#: ../src/views/darkroom.c:2293 ../src/views/darkroom.c:2310 msgid "overexposed" msgstr "Переекспоноване" -#: ../src/iop/overexposed.c:130 ../src/iop/overexposed.c:360 +#: ../src/iop/overexposed.c:123 ../src/iop/overexposed.c:352 msgid "module overexposed failed in buffer allocation" msgstr "Не вдалося виділити буфер в модулі переекспонованого" -#: ../src/iop/overexposed.c:156 ../src/iop/overexposed.c:370 +#: ../src/iop/overexposed.c:149 ../src/iop/overexposed.c:362 msgid "module overexposed failed in color conversion" msgstr "Не вдалося перетворення кольорів в модулі переекспонованого" +#: ../src/iop/primaries.c:74 +msgid "rgb primaries" +msgstr "Основні кольори RGB" + +#: ../src/iop/primaries.c:79 +msgid "adjustment of the RGB color primaries for color grading" +msgstr "Коригування основних кольорів RGB для грейдингу" + +#: ../src/iop/primaries.c:395 +msgid "shift red towards yellow or magenta" +msgstr "Зміщення червоного в бік жовтого або мадженти" + +#: ../src/iop/primaries.c:396 +msgid "red primary purity" +msgstr "Чистота основного червоного" + +#: ../src/iop/primaries.c:397 +msgid "shift green towards cyan or yellow" +msgstr "Зміщення зеленого в бік ціану або жовтого" + +#: ../src/iop/primaries.c:398 +msgid "green primary purity" +msgstr "Чистота основного зеленого" + +#: ../src/iop/primaries.c:399 +msgid "shift blue towards magenta or cyan" +msgstr "Зміщення синього в бік мадженти або ціану" + +#: ../src/iop/primaries.c:400 +msgid "blue primary purity" +msgstr "Чистота основного синього" + #: ../src/iop/profile_gamma.c:96 msgid "unbreak input profile" msgstr "Корекція вхідного профілю" @@ -18555,39 +19231,39 @@ msgstr "" "Корекція вхідного профілю призначена для застосування на нелінійному RGB" -#: ../src/iop/profile_gamma.c:136 +#: ../src/iop/profile_gamma.c:138 msgid "16 EV dynamic range (generic)" msgstr "Динамічний діапазон 16 EV" -#: ../src/iop/profile_gamma.c:142 +#: ../src/iop/profile_gamma.c:144 msgid "14 EV dynamic range (generic)" msgstr "Динамічний діапазон 14 EV" -#: ../src/iop/profile_gamma.c:148 +#: ../src/iop/profile_gamma.c:150 msgid "12 EV dynamic range (generic)" msgstr "Динамічний діапазон 12 EV" -#: ../src/iop/profile_gamma.c:154 +#: ../src/iop/profile_gamma.c:156 msgid "10 EV dynamic range (generic)" msgstr "Динамічний діапазон 10 EV" -#: ../src/iop/profile_gamma.c:160 +#: ../src/iop/profile_gamma.c:162 msgid "08 EV dynamic range (generic)" msgstr "Динамічний діапазон 08 EV" -#: ../src/iop/profile_gamma.c:623 +#: ../src/iop/profile_gamma.c:637 msgid "linear part" msgstr "Лінійна частина" -#: ../src/iop/profile_gamma.c:627 +#: ../src/iop/profile_gamma.c:641 msgid "gamma exponential factor" msgstr "Експоненційний множник гамми" -#: ../src/iop/profile_gamma.c:638 +#: ../src/iop/profile_gamma.c:652 msgid "adjust to match the average luma of the subject" msgstr "Відрегулювати відповідно до середньої яскравості об'єкта" -#: ../src/iop/profile_gamma.c:644 +#: ../src/iop/profile_gamma.c:658 msgid "" "number of stops between middle gray and pure black\n" "this is a reading a light meter would give you on the scene" @@ -18595,7 +19271,7 @@ "Кількість стопів (EV) між середнім сірим і чистим чорним\n" "Це значення, яке експонометр показав би вам для цієї сцени" -#: ../src/iop/profile_gamma.c:650 +#: ../src/iop/profile_gamma.c:664 msgid "" "number of stops between pure black and pure white\n" "this is a reading a light meter would give you on the scene" @@ -18603,36 +19279,36 @@ "Кількість стопів (EV) між чистим чорним і чистим білим\n" "Це значення, яке експонометр показав би вам для цієї сцени" -#: ../src/iop/profile_gamma.c:652 +#: ../src/iop/profile_gamma.c:666 msgctxt "section" msgid "optimize automatically" msgstr "Оптимізувати автоматично" -#: ../src/iop/profile_gamma.c:656 +#: ../src/iop/profile_gamma.c:670 msgid "" -"enlarge or shrink the computed dynamic range\n" -"this is useful when noise perturbates the measurements" +"increase or decrease the computed dynamic range\n" +"this is useful when noise distorts the measurement" msgstr "" "Збільшити або зменшити обчислений динамічний діапазон\n" -"Це корисно, коли шум порушує вимірювання" +"Це корисно, коли шум спотворює вимірювання" -#: ../src/iop/profile_gamma.c:660 +#: ../src/iop/profile_gamma.c:674 msgid "make an optimization with some guessing" msgstr "Зробити оптимізацію з деякими припущеннями" -#: ../src/iop/profile_gamma.c:669 +#: ../src/iop/profile_gamma.c:683 msgid "tone mapping method" msgstr "Метод тонального відображення" -#: ../src/iop/rawdenoise.c:124 +#: ../src/iop/rawdenoise.c:138 msgid "raw denoise" msgstr "Знешумлення raw" -#: ../src/iop/rawdenoise.c:129 +#: ../src/iop/rawdenoise.c:143 msgid "denoise the raw picture early in the pipeline" msgstr "Знешумлювати raw зображення на ранньому етапі в конвеєрі обробки" -#: ../src/iop/rawdenoise.c:939 +#: ../src/iop/rawdenoise.c:955 msgid "" "raw denoising\n" "only works for raw images." @@ -18642,9 +19318,9 @@ #. * let's fill the encapsulating widgets #. mode of operation -#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2387 ../src/views/darkroom.c:2393 -#: ../src/views/darkroom.c:2406 +#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2226 ../src/views/darkroom.c:2232 +#: ../src/views/darkroom.c:2245 msgid "raw overexposed" msgstr "Переекспоноване в raw" @@ -18653,7 +19329,7 @@ msgid "raw black/white point" msgstr "Точки чорного і білого в raw" -#: ../src/iop/rawprepare.c:156 +#: ../src/iop/rawprepare.c:172 msgid "" "sets technical specificities of the raw sensor.\n" "touch with great care!" @@ -18661,63 +19337,63 @@ "Налаштування технічних особливостей сенсора.\n" "Використовувати з великою обережністю!" -#: ../src/iop/rawprepare.c:168 +#: ../src/iop/rawprepare.c:184 msgid "passthrough" msgstr "Без корекції" -#: ../src/iop/rawprepare.c:655 +#: ../src/iop/rawprepare.c:663 msgid "invalid crop parameters" msgstr "Недійсні параметри обрізання" -#: ../src/iop/rawprepare.c:656 +#: ../src/iop/rawprepare.c:664 msgid "" "please reset to defaults, update your preset or set to something correct" msgstr "" "Будь ласка, скиньте до налаштувань за замовчуванням, оновіть пресет або " "встановіть щось правильне" -#: ../src/iop/rawprepare.c:922 +#: ../src/iop/rawprepare.c:930 msgid "black level 0" msgstr "Рівень чорного 0" -#: ../src/iop/rawprepare.c:923 +#: ../src/iop/rawprepare.c:931 msgid "black level 1" msgstr "Рівень чорного 1" -#: ../src/iop/rawprepare.c:924 +#: ../src/iop/rawprepare.c:932 msgid "black level 2" msgstr "Рівень чорного 2" -#: ../src/iop/rawprepare.c:925 +#: ../src/iop/rawprepare.c:933 msgid "black level 3" msgstr "Рівень чорного 3" -#: ../src/iop/rawprepare.c:952 +#: ../src/iop/rawprepare.c:960 msgid "raw flat field correction to compensate for lens shading" msgstr "Корекція плоского поля для компенсації затінення оптики" -#: ../src/iop/rawprepare.c:957 +#: ../src/iop/rawprepare.c:965 msgctxt "section" msgid "crop" msgstr "Кадрування" -#: ../src/iop/rawprepare.c:960 +#: ../src/iop/rawprepare.c:968 msgid "crop left border" msgstr "Кількість обрізаних пікселів від лівого краю" -#: ../src/iop/rawprepare.c:964 +#: ../src/iop/rawprepare.c:972 msgid "crop top border" msgstr "Кількість обрізаних пікселів від верхнього краю" -#: ../src/iop/rawprepare.c:968 +#: ../src/iop/rawprepare.c:976 msgid "crop right border" msgstr "Кількість обрізаних пікселів від правого краю" -#: ../src/iop/rawprepare.c:972 +#: ../src/iop/rawprepare.c:980 msgid "crop bottom border" msgstr "Кількість обрізаних пікселів від нижнього краю" -#: ../src/iop/rawprepare.c:981 +#: ../src/iop/rawprepare.c:989 msgid "" "raw black/white point correction\n" "only works for the sensors that need it." @@ -18745,11 +19421,11 @@ "Цей модуль застарілий. Краще використовувати модуль 'Еквалайзер тонів' " "замість нього." -#: ../src/iop/relight.c:263 +#: ../src/iop/relight.c:259 msgid "the fill-light in EV" msgstr "Заповнююче світло в EV" -#: ../src/iop/relight.c:272 +#: ../src/iop/relight.c:268 msgid "" "select the center of fill-light\n" "ctrl+click to select an area" @@ -18757,16 +19433,11 @@ "Виберіть центр заповнення світлом\n" "Ctrl+клік - вибрати область" -#: ../src/iop/relight.c:276 +#: ../src/iop/relight.c:272 msgid "toggle tool for picking median lightness in image" msgstr "Вибрати медіанну яскравість із зображення" -#: ../src/iop/relight.c:279 ../src/libs/export.c:1131 -#: ../src/libs/metadata_view.c:147 ../src/libs/print_settings.c:2537 -msgid "width" -msgstr "Ширина" - -#: ../src/iop/relight.c:280 +#: ../src/iop/relight.c:276 msgid "width of fill-light area defined in zones" msgstr "Ширина області заповнення, визначена в зонах" @@ -18788,29 +19459,29 @@ msgid "geometric and frequential, RGB" msgstr "геометрична і частотна, RGB" -#: ../src/iop/retouch.c:1538 +#: ../src/iop/retouch.c:1689 msgid "cannot display scales when the blending mask is displayed" msgstr "Неможливо відображати масштаби, коли відображається маска змішування" -#: ../src/iop/retouch.c:1861 ../src/iop/retouch.c:1863 -#: ../src/iop/retouch.c:1865 ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2045 ../src/iop/retouch.c:2047 +#: ../src/iop/retouch.c:2049 ../src/iop/retouch.c:2051 #, c-format msgid "default tool changed to %s" msgstr "Інструмент за замовчуванням змінено на '%s'" -#: ../src/iop/retouch.c:1861 +#: ../src/iop/retouch.c:2045 msgid "cloning" msgstr "Клонування" -#: ../src/iop/retouch.c:1863 +#: ../src/iop/retouch.c:2047 msgid "healing" msgstr "Лікування" -#: ../src/iop/retouch.c:2226 +#: ../src/iop/retouch.c:2448 msgid "shapes:" msgstr "Фігури:" -#: ../src/iop/retouch.c:2230 +#: ../src/iop/retouch.c:2454 msgid "" "to add a shape select an algorithm and a shape type and click on the image.\n" "shapes are added to the current scale" @@ -18819,77 +19490,73 @@ "зображення.\n" "Фігури додаються до поточного масштабу" -#. display & suppress masks -#. copy/paste shapes -#. display final image/current scale -#. auto-levels button -#: ../src/iop/retouch.c:2233 ../src/iop/retouch.c:2334 -#: ../src/iop/retouch.c:2339 ../src/iop/retouch.c:2347 -#: ../src/iop/retouch.c:2351 ../src/iop/retouch.c:2358 -#: ../src/iop/retouch.c:2392 +#: ../src/iop/retouch.c:2458 ../src/iop/retouch.c:2591 +#: ../src/iop/retouch.c:2597 ../src/iop/retouch.c:2606 +#: ../src/iop/retouch.c:2611 ../src/iop/retouch.c:2619 +#: ../src/iop/retouch.c:2664 msgid "editing" msgstr "Редагування" -#: ../src/iop/retouch.c:2233 +#: ../src/iop/retouch.c:2459 msgid "show and edit shapes on the current scale" msgstr "Показувати та редагувати фігури в поточному масштабі" -#: ../src/iop/retouch.c:2234 +#: ../src/iop/retouch.c:2460 msgid "show and edit shapes in restricted mode" msgstr "Показувати та редагувати фігури в обмеженому режимі" -#: ../src/iop/retouch.c:2257 +#: ../src/iop/retouch.c:2489 msgid "algorithms:" msgstr "Алгоритми:" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2498 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2510 msgid "tools" msgstr "Інструменти" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2278 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2518 msgid "activate blur tool" msgstr "Розмиття" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2493 ../src/iop/retouch.c:2499 +#: ../src/iop/retouch.c:2505 ../src/iop/retouch.c:2511 msgid "change algorithm for current form" msgstr "Змінити алгоритм для поточної фігури" -#: ../src/iop/retouch.c:2264 ../src/iop/retouch.c:2281 +#: ../src/iop/retouch.c:2498 ../src/iop/retouch.c:2521 msgid "activate fill tool" msgstr "Заливка" -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2284 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2524 msgid "activate cloning tool" msgstr "Клонування" -#: ../src/iop/retouch.c:2272 ../src/iop/retouch.c:2287 +#: ../src/iop/retouch.c:2510 ../src/iop/retouch.c:2527 msgid "activate healing tool" msgstr "Лікувальний пензель" #. overwrite tooltip ourself to handle shift+click -#: ../src/iop/retouch.c:2276 +#: ../src/iop/retouch.c:2516 msgid "ctrl+click to change tool for current form" msgstr "Ctrl+клік - змінити інструмент для поточної фігури" -#: ../src/iop/retouch.c:2277 +#: ../src/iop/retouch.c:2517 msgid "shift+click to set the tool as default" msgstr "shift+клік - встановити інструмент за замовчуванням" -#: ../src/iop/retouch.c:2296 +#: ../src/iop/retouch.c:2537 msgid "scales:" msgstr "Масштаби:" -#: ../src/iop/retouch.c:2301 +#: ../src/iop/retouch.c:2544 msgid "current:" msgstr "Поточний:" -#: ../src/iop/retouch.c:2306 +#: ../src/iop/retouch.c:2551 msgid "merge from:" msgstr "Об'єднати від:" -#: ../src/iop/retouch.c:2314 +#: ../src/iop/retouch.c:2562 msgid "" "top slider adjusts where the merge scales start\n" "bottom slider adjusts the number of scales\n" @@ -18904,44 +19571,44 @@ "масштабування\n" "Нижня лінія означає, що масштаб містить фігури" -#: ../src/iop/retouch.c:2334 +#: ../src/iop/retouch.c:2591 msgid "display masks" msgstr "Показати маски" -#: ../src/iop/retouch.c:2339 +#: ../src/iop/retouch.c:2597 msgid "temporarily switch off shapes" msgstr "Тимчасово вимкнути фігури" -#: ../src/iop/retouch.c:2347 +#: ../src/iop/retouch.c:2606 msgid "paste cut shapes to current scale" msgstr "Вставити вирізані фігури в поточний масштаб" -#: ../src/iop/retouch.c:2351 +#: ../src/iop/retouch.c:2611 msgid "cut shapes from current scale" msgstr "Вирізати фігури з поточного масштабу" -#: ../src/iop/retouch.c:2358 +#: ../src/iop/retouch.c:2619 msgid "display wavelet scale" msgstr "Відображати масштаби" -#: ../src/iop/retouch.c:2366 +#: ../src/iop/retouch.c:2627 msgctxt "section" msgid "preview single scale" msgstr "Попередній перегляд окремого масштабу" -#: ../src/iop/retouch.c:2377 +#: ../src/iop/retouch.c:2641 msgid "adjust preview levels" msgstr "Відрегулювати рівні попереднього перегляду" -#: ../src/iop/retouch.c:2392 ../src/iop/rgblevels.c:1051 +#: ../src/iop/retouch.c:2664 ../src/iop/rgblevels.c:1106 msgid "auto levels" msgstr "Авторівні" -#: ../src/iop/retouch.c:2400 +#: ../src/iop/retouch.c:2672 msgid "shape selected:" msgstr "Вибрана фігура: " -#: ../src/iop/retouch.c:2405 +#: ../src/iop/retouch.c:2678 msgid "" "click on a shape to select it,\n" "to unselect click on an empty space" @@ -18949,60 +19616,60 @@ "Натисніть на фігуру, щоб вибрати її,\n" "щоб скасувати вибір, натисніть на порожній простір" -#: ../src/iop/retouch.c:2412 +#: ../src/iop/retouch.c:2687 msgid "erase the detail or fills with chosen color" msgstr "Стирати або заливати вибраним кольором" -#: ../src/iop/retouch.c:2419 +#: ../src/iop/retouch.c:2697 msgid "fill color: " msgstr "Колір заливки: " -#: ../src/iop/retouch.c:2424 ../src/iop/retouch.c:2425 +#: ../src/iop/retouch.c:2702 ../src/iop/retouch.c:2703 msgid "select fill color" msgstr "Вибрати колір заливки" -#: ../src/iop/retouch.c:2430 +#: ../src/iop/retouch.c:2713 msgid "pick fill color from image" msgstr "Вибрати колір заливки із зображення" -#: ../src/iop/retouch.c:2431 +#: ../src/iop/retouch.c:2714 msgid "pick fill color" msgstr "Вибрати колір заливки" -#: ../src/iop/retouch.c:2439 +#: ../src/iop/retouch.c:2724 msgid "adjusts color brightness to fine-tune it. works with erase as well" msgstr "Регулювати яскравість кольору" -#: ../src/iop/retouch.c:2445 +#: ../src/iop/retouch.c:2730 msgid "type for the blur algorithm" msgstr "Тип алгоритму розмиття" -#: ../src/iop/retouch.c:2449 +#: ../src/iop/retouch.c:2734 msgid "radius of the selected blur type" msgstr "Радіус вибраного типу розмиття" -#: ../src/iop/retouch.c:2455 +#: ../src/iop/retouch.c:2741 msgid "set the opacity on the selected shape" msgstr "Установити непрозорість вибраної фігури" -#: ../src/iop/retouch.c:2461 +#: ../src/iop/retouch.c:2748 msgctxt "section" msgid "retouch tools" msgstr "Інструменти ретушування" #. wavelet decompose -#: ../src/iop/retouch.c:2470 +#: ../src/iop/retouch.c:2757 msgctxt "section" msgid "wavelet decompose" msgstr "Вейвлет-декомпозиція" #. shapes -#: ../src/iop/retouch.c:2484 +#: ../src/iop/retouch.c:2771 msgctxt "section" msgid "shapes" msgstr "Фігури" -#: ../src/iop/retouch.c:3589 ../src/iop/retouch.c:4427 +#: ../src/iop/retouch.c:3986 ../src/iop/retouch.c:4956 #, c-format msgid "max scale is %i for this image size" msgstr "Для цього розміру зображення максимальний масштаб %i" @@ -19011,60 +19678,60 @@ msgid "rgb curve" msgstr "Крива RGB" -#: ../src/iop/rgbcurve.c:142 +#: ../src/iop/rgbcurve.c:144 msgid "alter an image’s tones using curves in RGB color space" msgstr "" "Змінювати тони зображення, використовуючи криві в кольоровому просторі RGB" -#: ../src/iop/rgbcurve.c:193 ../src/iop/tonecurve.c:548 +#: ../src/iop/rgbcurve.c:195 ../src/iop/tonecurve.c:569 msgid "gamma 1.0 (linear)" msgstr "Гамма 1.0 (лінійна)" -#: ../src/iop/rgbcurve.c:203 ../src/iop/tonecurve.c:558 +#: ../src/iop/rgbcurve.c:205 ../src/iop/tonecurve.c:579 msgid "contrast - med (linear)" msgstr "Контраст - середній (лінійна)" -#: ../src/iop/rgbcurve.c:212 ../src/iop/tonecurve.c:567 +#: ../src/iop/rgbcurve.c:214 ../src/iop/tonecurve.c:588 msgid "contrast - high (linear)" msgstr "Контраст - високий (лінійна)" -#: ../src/iop/rgbcurve.c:226 ../src/iop/tonecurve.c:579 +#: ../src/iop/rgbcurve.c:228 ../src/iop/tonecurve.c:600 msgid "contrast - med (gamma 2.2)" msgstr "Контраст - середній (гамма 2.2)" -#: ../src/iop/rgbcurve.c:239 ../src/iop/tonecurve.c:590 +#: ../src/iop/rgbcurve.c:241 ../src/iop/tonecurve.c:611 msgid "contrast - high (gamma 2.2)" msgstr "Контраст - високий (гамма 2.2)" -#: ../src/iop/rgbcurve.c:252 ../src/iop/tonecurve.c:603 +#: ../src/iop/rgbcurve.c:254 ../src/iop/tonecurve.c:624 msgid "gamma 2.0" msgstr "Гамма 2.0" -#: ../src/iop/rgbcurve.c:258 ../src/iop/tonecurve.c:609 +#: ../src/iop/rgbcurve.c:260 ../src/iop/tonecurve.c:630 msgid "gamma 0.5" msgstr "Гамма 0.5" -#: ../src/iop/rgbcurve.c:263 ../src/iop/tonecurve.c:614 +#: ../src/iop/rgbcurve.c:265 ../src/iop/tonecurve.c:635 msgid "logarithm (base 2)" msgstr "Логарифм (основа 2)" -#: ../src/iop/rgbcurve.c:268 ../src/iop/tonecurve.c:619 +#: ../src/iop/rgbcurve.c:270 ../src/iop/tonecurve.c:640 msgid "exponential (base 2)" msgstr "Експоненціальна (основа 2)" -#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:999 +#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:1038 msgid "choose between linked and independent channels." msgstr "Виберіть між пов'язаними та незалежними каналами." -#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1003 +#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1043 msgid "curve nodes for r channel" msgstr "Вузли кривої для каналу R" -#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1004 +#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1044 msgid "curve nodes for g channel" msgstr "Вузли кривої для каналу G" -#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1005 +#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1045 msgid "curve nodes for b channel" msgstr "Вузли кривої для каналу B" @@ -19072,17 +19739,17 @@ msgid "rgb levels" msgstr "Рівні RGB" -#: ../src/iop/rgblevels.c:122 +#: ../src/iop/rgblevels.c:124 msgid "adjust black, white and mid-gray points in RGB color space" msgstr "" "Відрегулювати точки чорного, білого та середньо-сірого в колірному просторі " "RGB" -#: ../src/iop/rgblevels.c:1056 +#: ../src/iop/rgblevels.c:1112 msgid "auto region" msgstr "Авто-рівні з регіону" -#: ../src/iop/rgblevels.c:1058 +#: ../src/iop/rgblevels.c:1115 msgid "" "apply auto levels based on a region defined by the user\n" "click and drag to draw the area\n" @@ -19097,7 +19764,7 @@ msgid "rotate pixels" msgstr "Обертання пікселів" -#: ../src/iop/rotatepixels.c:97 ../src/iop/scalepixels.c:82 +#: ../src/iop/rotatepixels.c:99 ../src/iop/scalepixels.c:84 msgid "" "internal module to setup technical specificities of raw sensor.\n" "\n" @@ -19107,11 +19774,11 @@ "\n" "Не варто змінювати значення в цьому модулі!" -#: ../src/iop/rotatepixels.c:366 +#: ../src/iop/rotatepixels.c:381 msgid "automatic pixel rotation" msgstr "Автоматичне обертання пікселів" -#: ../src/iop/rotatepixels.c:367 +#: ../src/iop/rotatepixels.c:382 msgid "" "automatic pixel rotation\n" "only works for the sensors that need it." @@ -19124,11 +19791,11 @@ msgid "scale pixels" msgstr "Масштабування пікселів" -#: ../src/iop/scalepixels.c:271 +#: ../src/iop/scalepixels.c:281 msgid "automatic pixel scaling" msgstr "Автоматичне масштабування пікселів" -#: ../src/iop/scalepixels.c:272 +#: ../src/iop/scalepixels.c:282 msgid "" "automatic pixel scaling\n" "only works for the sensors that need it." @@ -19136,11 +19803,11 @@ "Автоматичне масштабування пікселів\n" "працює лише для сенсорів, які цього потребують." -#: ../src/iop/shadhi.c:175 +#: ../src/iop/shadhi.c:120 msgid "shadows and highlights" msgstr "Тіні та світлі тони" -#: ../src/iop/shadhi.c:195 +#: ../src/iop/shadhi.c:142 msgid "" "modify the tonal range of the shadows and highlights\n" "of an image by enhancing local contrast." @@ -19148,27 +19815,27 @@ "Змінити тональний діапазон тіней і світлих тонів\n" "зображення шляхом посилення локального контрасту." -#: ../src/iop/shadhi.c:676 ../src/iop/splittoning.c:548 +#: ../src/iop/shadhi.c:711 ../src/iop/splittoning.c:544 msgid "compress" msgstr "Стиснення" -#: ../src/iop/shadhi.c:683 +#: ../src/iop/shadhi.c:718 msgid "correct shadows" msgstr "Коригувати тіні" -#: ../src/iop/shadhi.c:684 +#: ../src/iop/shadhi.c:719 msgid "correct highlights" msgstr "Коригувати світлі тони" -#: ../src/iop/shadhi.c:685 +#: ../src/iop/shadhi.c:720 msgid "shift white point" msgstr "Зміщення точки білого" -#: ../src/iop/shadhi.c:687 +#: ../src/iop/shadhi.c:722 msgid "filter to use for softening. bilateral avoids halos" msgstr "Фільтр для пом'якшення. Білатеральний уникає ореолів" -#: ../src/iop/shadhi.c:688 +#: ../src/iop/shadhi.c:723 msgid "" "compress the effect on shadows/highlights and\n" "preserve mid-tones" @@ -19176,11 +19843,11 @@ "Стиснути ефект на тіні / світлі тони\n" "і зберегти середні тони" -#: ../src/iop/shadhi.c:689 +#: ../src/iop/shadhi.c:724 msgid "adjust saturation of shadows" msgstr "Відрегулювати насиченість в тінях" -#: ../src/iop/shadhi.c:690 +#: ../src/iop/shadhi.c:725 msgid "adjust saturation of highlights" msgstr "Відрегулювати насиченість в світлих тонах" @@ -19189,47 +19856,47 @@ msgid "sharpen" msgstr "Різкість" -#: ../src/iop/sharpen.c:93 +#: ../src/iop/sharpen.c:95 msgid "sharpen the details in the image using a standard UnSharp Mask (USM)" msgstr "" "Збільшення різкості деталей в зображенні за допомогою стандартного методу " "\"маски нерізкості\" (USM)" -#: ../src/iop/sharpen.c:95 +#: ../src/iop/sharpen.c:97 msgid "linear or non-linear, Lab, display or scene-referred" msgstr "лінійний або нелінійний простір, Lab, на основі відображення або сцен" -#: ../src/iop/sharpen.c:97 +#: ../src/iop/sharpen.c:99 msgid "quasi-linear, Lab, display or scene-referred" msgstr "квазілінійний простір, Lab, на основі відображення або сцен" #. add the preset. #. restrict to raw images -#: ../src/iop/sharpen.c:104 ../src/iop/sharpen.c:108 +#: ../src/iop/sharpen.c:106 ../src/iop/sharpen.c:110 msgid "sharpen" msgstr "Різкість" -#: ../src/iop/sharpen.c:443 +#: ../src/iop/sharpen.c:438 msgid "spatial extent of the unblurring" msgstr "Просторова ступінь ефекту" -#: ../src/iop/sharpen.c:447 +#: ../src/iop/sharpen.c:442 msgid "strength of the sharpen" msgstr "Інтенсивність збільшення різкості" -#: ../src/iop/sharpen.c:451 +#: ../src/iop/sharpen.c:446 msgid "threshold to activate sharpen" msgstr "Поріг активації збільшення різкості" -#: ../src/iop/sigmoid.c:89 +#: ../src/iop/sigmoid.c:195 msgid "sigmoid" msgstr "Сигмоїда" -#: ../src/iop/sigmoid.c:94 +#: ../src/iop/sigmoid.c:200 msgid "tone mapping|view transform|display transform" msgstr "tone mapping|view transform|display transform" -#: ../src/iop/sigmoid.c:99 +#: ../src/iop/sigmoid.c:206 msgid "" "apply a view transform to make a image displayable\n" "on a screen or print. uses a robust and smooth\n" @@ -19239,19 +19906,19 @@ "доступним для відображення на екрані або друку. Використовує надійну\n" "та плавну тонову криву з опціональними методами збереження кольору." -#: ../src/iop/sigmoid.c:155 +#: ../src/iop/sigmoid.c:258 msgid "neutral gray" msgstr "Нейтральний сірий" -#: ../src/iop/sigmoid.c:160 +#: ../src/iop/sigmoid.c:264 msgid "ACES 100-nit like" msgstr "ACES 100 ніт" -#: ../src/iop/sigmoid.c:165 +#: ../src/iop/sigmoid.c:270 msgid "Reinhard" msgstr "Reinhard" -#: ../src/iop/sigmoid.c:683 +#: ../src/iop/sigmoid.c:917 msgid "" "compression of the applied curve\n" "implicitly defines the supported input dynamic range" @@ -19259,7 +19926,7 @@ "Стиснення застосованої кривої неявно визначає\n" "підтримуваний вхідний динамічний діапазон" -#: ../src/iop/sigmoid.c:686 +#: ../src/iop/sigmoid.c:920 msgid "" "shift the compression towards shadows or highlights.\n" "negative values increase contrast in shadows.\n" @@ -19271,7 +19938,7 @@ "Позитивні значення збільшують контраст у світлих ділянках.\n" "На протилежному кінці спостерігатиметься зменшення контрасту." -#: ../src/iop/sigmoid.c:695 +#: ../src/iop/sigmoid.c:929 msgid "" "optional correction of the hue twist introduced by\n" "the per-channel processing method." @@ -19279,15 +19946,56 @@ "Опціональна корекція закручування відтінку,\n" "введеного поканальним методом обробки." -#: ../src/iop/sigmoid.c:702 +#: ../src/iop/sigmoid.c:936 ../src/iop/sigmoid.c:940 +msgid "primaries" +msgstr "Основні кольори" + +#: ../src/iop/sigmoid.c:937 +msgid "set custom primaries" +msgstr "Встановити власні основні кольори" + +#: ../src/iop/sigmoid.c:943 +msgid "primaries to use as the base for below adjustments" +msgstr "" +"Основні кольори для використання як основи для наведених нижче коригувань" + +#: ../src/iop/sigmoid.c:962 +msgid "attenuate the purity of the red primary" +msgstr "Послабити чистоту основного червоного" + +#: ../src/iop/sigmoid.c:963 +msgid "rotate the red primary" +msgstr "Обертати основний червоний" + +#: ../src/iop/sigmoid.c:964 +msgid "attenuate the purity of the green primary" +msgstr "Послабити чистоту основного зеленого" + +#: ../src/iop/sigmoid.c:965 +msgid "rotate the green primary" +msgstr "Обертати основний зелений" + +#: ../src/iop/sigmoid.c:966 +msgid "attenuate the purity of the blue primary" +msgstr "Послабити чистоту основного синього" + +#: ../src/iop/sigmoid.c:967 +msgid "rotate the blue primary" +msgstr "Обертати основний синій" + +#: ../src/iop/sigmoid.c:974 +msgid "recover some of the original purity after the inset" +msgstr "Відновити частину початкової чистоти після зміщення" + +#: ../src/iop/sigmoid.c:978 msgid "display luminance" msgstr "Яскравість дисплея" -#: ../src/iop/sigmoid.c:706 +#: ../src/iop/sigmoid.c:979 msgid "set display black/white targets" msgstr "Установити цільові значення чорного/білого" -#: ../src/iop/sigmoid.c:714 +#: ../src/iop/sigmoid.c:987 msgid "" "the black luminance of the target display or print.\n" "can be used creatively for a faded look." @@ -19295,7 +20003,7 @@ "Яскравість чорного цільового дисплея або друку.\n" "Можна творчо використати для вицвілого вигляду." -#: ../src/iop/sigmoid.c:719 +#: ../src/iop/sigmoid.c:992 msgid "" "the white luminance of the target display or print.\n" "can be used creatively for a faded look or blowing out whites earlier." @@ -19308,23 +20016,23 @@ msgid "soften" msgstr "Пом'якшення" -#: ../src/iop/soften.c:100 +#: ../src/iop/soften.c:102 msgid "create a softened image using the Orton effect" msgstr "Створення пом’якшеного зображення за допомогою ефекту Ортона" -#: ../src/iop/soften.c:371 +#: ../src/iop/soften.c:366 msgid "the size of blur" msgstr "Розмір розмиття" -#: ../src/iop/soften.c:375 +#: ../src/iop/soften.c:370 msgid "the saturation of blur" msgstr "Насиченість розмиття" -#: ../src/iop/soften.c:379 +#: ../src/iop/soften.c:374 msgid "the brightness of blur" msgstr "Яскравість розмиття" -#: ../src/iop/soften.c:383 +#: ../src/iop/soften.c:378 msgid "the mix of effect" msgstr "Суміш ефектів" @@ -19332,7 +20040,7 @@ msgid "split-toning" msgstr "Спліт-тонування" -#: ../src/iop/splittoning.c:101 +#: ../src/iop/splittoning.c:103 msgid "" "use two specific colors for shadows and highlights and\n" "create a linear toning effect between them up to a pivot." @@ -19340,49 +20048,49 @@ "Використовуйте два вказаних кольори для тіней і світлих тонів та\n" "створюйте лінійний тональний ефект між ними аж до точки опори." -#: ../src/iop/splittoning.c:118 +#: ../src/iop/splittoning.c:120 msgid "authentic sepia" msgstr "Автентична сепія" -#: ../src/iop/splittoning.c:127 +#: ../src/iop/splittoning.c:129 msgid "authentic cyanotype" msgstr "Автентичний ціанотип" -#: ../src/iop/splittoning.c:136 +#: ../src/iop/splittoning.c:138 msgid "authentic platinotype" msgstr "Автентичний платинотип" -#: ../src/iop/splittoning.c:145 +#: ../src/iop/splittoning.c:147 msgid "chocolate brown" msgstr "Шоколадний коричневий" -#: ../src/iop/splittoning.c:490 +#: ../src/iop/splittoning.c:486 msgid "select the saturation tone" msgstr "Виберіть насиченість" -#: ../src/iop/splittoning.c:494 +#: ../src/iop/splittoning.c:490 msgid "select tone color" msgstr "Виберіть колір тонування" -#: ../src/iop/splittoning.c:524 +#: ../src/iop/splittoning.c:520 msgctxt "section" msgid "shadows" msgstr "Тіні" -#: ../src/iop/splittoning.c:530 +#: ../src/iop/splittoning.c:526 msgctxt "section" msgid "highlights" msgstr "Світлі тони" -#: ../src/iop/splittoning.c:539 +#: ../src/iop/splittoning.c:535 msgid "balance" msgstr "Баланс" -#: ../src/iop/splittoning.c:546 +#: ../src/iop/splittoning.c:542 msgid "the balance of center of split-toning" msgstr "Балансування центру спліт-тонування" -#: ../src/iop/splittoning.c:550 +#: ../src/iop/splittoning.c:546 msgid "" "compress the effect on highlights/shadows and\n" "preserve mid-tones" @@ -19407,17 +20115,17 @@ msgid "geometric, raw" msgstr "геометрична, raw" -#: ../src/iop/spots.c:226 +#: ../src/iop/spots.c:238 msgid "spot module is limited to 64 shapes. please add a new instance!" msgstr "" "Модуль видалення плям обмежується 64 фігурами. Будь ласка, додайте новий " "екземпляр!" -#: ../src/iop/spots.c:872 +#: ../src/iop/spots.c:874 msgid "number of strokes:" msgstr "Кількість мазків пензлем: " -#: ../src/iop/spots.c:876 +#: ../src/iop/spots.c:878 msgid "" "click on a shape and drag on canvas.\n" "use the mouse wheel to adjust size.\n" @@ -19427,130 +20135,118 @@ "За допомогою колеса миші регулюйте розмір.\n" "Правою кнопкою миші можна видалити фігуру." -#: ../src/iop/spots.c:879 +#: ../src/iop/spots.c:881 msgid "show and edit shapes" msgstr "Показати і редагувати фігури" -#: ../src/iop/temperature.c:204 +#: ../src/iop/temperature.c:212 msgctxt "modulename" msgid "white balance" msgstr "Баланс білого" -#: ../src/iop/temperature.c:211 +#: ../src/iop/temperature.c:219 msgid "scale raw RGB channels to balance white and help demosaicing" msgstr "" "Масштабування raw RGB каналів для балансування білого і допомоги " "демозаїкізації" -#: ../src/iop/temperature.c:1149 -msgid "white balance applied twice" -msgstr "Баланс білого застосовано двічі" - -#: ../src/iop/temperature.c:1150 -msgid "" -"the color calibration module is enabled,\n" -"and performing chromatic adaptation.\n" -"set the white balance here to camera reference (D65)\n" -"or disable chromatic adaptation in color calibration." -msgstr "" -"Модуль калібрування кольору увімкнено\n" -"і він виконує хроматичну адаптацію.\n" -"Встановіть тут баланс білого на референс з камери (D65)\n" -"або вимкніть хроматичну адаптацію при калібруванні кольорів." - -#: ../src/iop/temperature.c:1430 +#: ../src/iop/temperature.c:1388 #, c-format msgid "`%s' color matrix not found for image" msgstr "Матрицю кольорів `%s' не знайдено для зображення" -#: ../src/iop/temperature.c:1459 +#: ../src/iop/temperature.c:1418 #, c-format msgid "failed to read camera white balance information from `%s'!" msgstr "Не вдалося прочитати інформацію про баланс білого з камери `%s'!" -#: ../src/iop/temperature.c:1631 +#: ../src/iop/temperature.c:1612 msgctxt "white balance" msgid "as shot" msgstr "Як знято" #. old "spot", reason: describes exactly what'll happen -#: ../src/iop/temperature.c:1634 +#: ../src/iop/temperature.c:1615 msgctxt "white balance" msgid "from image area" msgstr "З області зображення" -#: ../src/iop/temperature.c:1635 +#: ../src/iop/temperature.c:1616 msgctxt "white balance" msgid "user modified" msgstr "Змінені користувачем" #. old "camera neutral", reason: better matches intent -#: ../src/iop/temperature.c:1637 +#: ../src/iop/temperature.c:1618 msgctxt "white balance" msgid "camera reference" msgstr "Референсне значення з камери" -#: ../src/iop/temperature.c:1920 ../src/iop/temperature.c:1938 +#: ../src/iop/temperature.c:1897 ../src/iop/temperature.c:1915 msgid "green channel coefficient" msgstr "Коефіцієнт каналу зеленого" -#: ../src/iop/temperature.c:1922 +#: ../src/iop/temperature.c:1899 msgid "magenta channel coefficient" msgstr "Коефіцієнт каналу мадженти" -#: ../src/iop/temperature.c:1924 +#: ../src/iop/temperature.c:1901 msgid "cyan channel coefficient" msgstr "Коефіцієнт каналу ціану" -#: ../src/iop/temperature.c:1926 +#: ../src/iop/temperature.c:1903 msgid "yellow channel coefficient" msgstr "Коефіцієнт каналу жовтого" -#: ../src/iop/temperature.c:1936 +#: ../src/iop/temperature.c:1913 msgid "red channel coefficient" msgstr "Коефіцієнт каналу червоного" -#: ../src/iop/temperature.c:1940 +#: ../src/iop/temperature.c:1917 msgid "blue channel coefficient" msgstr "Коефіцієнт каналу синього" -#: ../src/iop/temperature.c:1942 +#: ../src/iop/temperature.c:1918 +msgid "emerald" +msgstr "Смарагдовий" + +#: ../src/iop/temperature.c:1919 msgid "emerald channel coefficient" msgstr "Коефіцієнт каналу смарагдового" #. relabel to settings to remove confusion between module presets #. and white balance settings -#: ../src/iop/temperature.c:2029 ../src/iop/temperature.c:2042 -#: ../src/iop/temperature.c:2049 ../src/iop/temperature.c:2055 -#: ../src/iop/temperature.c:2074 +#: ../src/iop/temperature.c:1997 ../src/iop/temperature.c:2010 +#: ../src/iop/temperature.c:2017 ../src/iop/temperature.c:2023 +#: ../src/iop/temperature.c:2042 msgid "settings" msgstr "Налаштування" -#: ../src/iop/temperature.c:2029 +#: ../src/iop/temperature.c:1997 msgid "as shot" msgstr "Як знято" -#: ../src/iop/temperature.c:2032 +#: ../src/iop/temperature.c:2000 msgid "set white balance to as shot" msgstr "Встановити баланс білого у визначений камерою" -#: ../src/iop/temperature.c:2042 +#: ../src/iop/temperature.c:2010 msgid "from image area" msgstr "З області зображення" -#: ../src/iop/temperature.c:2049 +#: ../src/iop/temperature.c:2017 msgid "user modified" msgstr "Вказаний користувачем" -#: ../src/iop/temperature.c:2052 +#: ../src/iop/temperature.c:2020 msgid "set white balance to user modified" msgstr "Встановити баланс білого у вказаний користувачем" -#: ../src/iop/temperature.c:2055 +#: ../src/iop/temperature.c:2023 msgid "camera reference" msgstr "Референсні значення камери" -#: ../src/iop/temperature.c:2060 +#: ../src/iop/temperature.c:2028 msgid "" "set white balance to camera reference point\n" "in most cases it should be D65" @@ -19558,56 +20254,60 @@ "Встановити баланс білого на референсне значення камери\n" "В більшості випадків це має бути D65" -#: ../src/iop/temperature.c:2075 +#: ../src/iop/temperature.c:2043 msgid "choose white balance setting" msgstr "Виберіть налаштування балансу білого" -#: ../src/iop/temperature.c:2080 +#: ../src/iop/temperature.c:2048 msgid "finetune" msgstr "Точне налаштування" -#: ../src/iop/temperature.c:2082 +#: ../src/iop/temperature.c:2050 msgid "fine tune camera's white balance setting" msgstr "Точне налаштування балансу білого камери" -#: ../src/iop/temperature.c:2093 +#: ../src/iop/temperature.c:2058 msgctxt "section" msgid "scene illuminant temp" msgstr "Температура джерела світла" -#: ../src/iop/temperature.c:2094 +#: ../src/iop/temperature.c:2059 msgid "click to cycle color mode on sliders" msgstr "Натисніть для перебирання колірних режимів повзунків" -#: ../src/iop/temperature.c:2108 +#: ../src/iop/temperature.c:2073 msgid "color temperature (in Kelvin)" msgstr "Колірна температура (в Кельвінах)" -#: ../src/iop/temperature.c:2114 +#: ../src/iop/temperature.c:2079 msgid "tint" msgstr "Відтінок" -#: ../src/iop/temperature.c:2117 +#: ../src/iop/temperature.c:2082 msgid "color tint of the image, from magenta (value < 1) to green (value > 1)" msgstr "Відтінок, від мадженти (значення < 1) до зеленого (значення > 1)" -#: ../src/iop/temperature.c:2123 +#: ../src/iop/temperature.c:2088 msgid "channel coefficients" msgstr "Коефіцієнти каналів" -#: ../src/iop/temperature.c:2158 +#: ../src/iop/temperature.c:2097 +msgid "various" +msgstr "Різні" + +#: ../src/iop/temperature.c:2123 msgid "white balance disabled for camera" msgstr "Баланс білого вимкнено для камери" -#: ../src/iop/tonecurve.c:190 +#: ../src/iop/tonecurve.c:161 msgid "tone curve" msgstr "Тонова крива" -#: ../src/iop/tonecurve.c:210 +#: ../src/iop/tonecurve.c:183 msgid "alter an image’s tones using curves" msgstr "Змінювати тони зображення за допомогою кривих" -#: ../src/iop/tonecurve.c:1125 +#: ../src/iop/tonecurve.c:1147 msgid "" "if set to auto, a and b curves have no effect and are not displayed. chroma " "values (a and b) of each pixel are then adjusted based on L curve data. auto " @@ -19618,117 +20318,110 @@ "коригуються на основі даних кривої L. Авто XYZ подібний, але застосовує " "зміни насиченості в просторі XYZ." -#: ../src/iop/tonecurve.c:1134 +#: ../src/iop/tonecurve.c:1156 msgid "tonecurve for L channel" msgstr "Тонова крива для каналу L" -#: ../src/iop/tonecurve.c:1135 +#: ../src/iop/tonecurve.c:1157 msgid "tonecurve for a channel" msgstr "Тонова крива для каналу a" -#: ../src/iop/tonecurve.c:1136 +#: ../src/iop/tonecurve.c:1158 msgid "tonecurve for b channel" msgstr "Тонова крива для каналу b" -#: ../src/iop/tonecurve.c:1143 ../src/iop/watermark.c:1305 -#: ../src/libs/colorpicker.c:597 +#: ../src/iop/tonecurve.c:1165 ../src/iop/watermark.c:1353 +#: ../src/libs/colorpicker.c:675 msgid "pick color" msgstr "Вибрати колір" -#: ../src/iop/toneequal.c:311 +#: ../src/iop/toneequal.c:319 msgid "tone equalizer" msgstr "Еквалайзер тонів" -#: ../src/iop/toneequal.c:316 +#: ../src/iop/toneequal.c:324 msgid "tone curve|tone mapping|relight|background light|shadows highlights" msgstr "tone curve|tone mapping|relight|background light|shadows highlights" -#: ../src/iop/toneequal.c:323 +#: ../src/iop/toneequal.c:331 msgid "relight the scene as if the lighting was done directly on the scene" msgstr "Змінити освітлення сцени так, ніби це робилося безпосередньо на сцені" -#: ../src/iop/toneequal.c:326 +#: ../src/iop/toneequal.c:334 msgid "quasi-linear, RGB" msgstr "квазілінійна, RGB" -#: ../src/iop/toneequal.c:327 +#: ../src/iop/toneequal.c:335 msgid "quasi-linear, RGB, scene-referred" msgstr "квазілінійний простір, RGB, на основі сцен" -#: ../src/iop/toneequal.c:458 +#: ../src/iop/toneequal.c:489 msgid "simple tone curve" msgstr "Проста тонова крива" -#: ../src/iop/toneequal.c:472 +#: ../src/iop/toneequal.c:503 msgid "mask blending: all purposes" msgstr "Режим змішування: загальне призначення" -#: ../src/iop/toneequal.c:479 +#: ../src/iop/toneequal.c:510 msgid "mask blending: people with backlight" msgstr "Режим змішування: люди і світло в камеру" -#: ../src/iop/toneequal.c:496 +#: ../src/iop/toneequal.c:527 msgid "compress shadows/highlights (EIGF): strong" msgstr "Стиснення тіней і світлих тонів (EIGF): сильне" -#: ../src/iop/toneequal.c:501 +#: ../src/iop/toneequal.c:532 msgid "compress shadows/highlights (GF): strong" msgstr "Стиснення тіней і світлих тонів (GF): сильне" -#: ../src/iop/toneequal.c:510 +#: ../src/iop/toneequal.c:541 msgid "compress shadows/highlights (EIGF): medium" msgstr "Стиснення тіней і світлих тонів (EIGF): середнє" -#: ../src/iop/toneequal.c:515 +#: ../src/iop/toneequal.c:546 msgid "compress shadows/highlights (GF): medium" msgstr "Стиснення тіней і світлих тонів (GF): середнє" -#: ../src/iop/toneequal.c:524 +#: ../src/iop/toneequal.c:555 msgid "compress shadows/highlights (EIGF): soft" msgstr "Стиснення тіней і світлих тонів (EIGF): м'яке" -#: ../src/iop/toneequal.c:529 +#: ../src/iop/toneequal.c:560 msgid "compress shadows/highlights (GF): soft" msgstr "Стиснення тіней і світлих тонів (GF): м'яке" -#: ../src/iop/toneequal.c:537 +#: ../src/iop/toneequal.c:568 msgid "contrast tone curve: soft" msgstr "Крива тонального контрасту: м'який контраст" -#: ../src/iop/toneequal.c:542 +#: ../src/iop/toneequal.c:573 msgid "contrast tone curve: medium" msgstr "Крива тонального контрасту: середній контраст" -#: ../src/iop/toneequal.c:547 +#: ../src/iop/toneequal.c:578 msgid "contrast tone curve: strong" msgstr "Крива тонального контрасту: сильний контраст" -#: ../src/iop/toneequal.c:570 +#: ../src/iop/toneequal.c:601 msgid "relight: fill-in" msgstr "Заповнення світлом" -#: ../src/iop/toneequal.c:627 -msgid "" -"tone equalizer needs to be after distortion modules in the pipeline – " -"disabled" -msgstr "" -"Еквалайзер тонів повинен бути після модулів дисторсії в конвеєрі - вимкнено" - -#: ../src/iop/toneequal.c:1091 +#: ../src/iop/toneequal.c:1120 msgid "tone equalizer failed to allocate memory, check your RAM settings" msgstr "" "Не вдалося виділити пам'ять для еквалайзера тонів, перевірте налаштування " "оперативної пам'яті" -#: ../src/iop/toneequal.c:1795 ../src/iop/toneequal.c:2180 +#: ../src/iop/toneequal.c:1825 ../src/iop/toneequal.c:2196 msgid "the interpolation is unstable, decrease the curve smoothing" msgstr "Інтерполяція нестабільна, зменште згладжування кривої" -#: ../src/iop/toneequal.c:1830 ../src/iop/toneequal.c:1897 +#: ../src/iop/toneequal.c:1860 ../src/iop/toneequal.c:1927 msgid "wait for the preview to finish recomputing" msgstr "Зачекайте, поки завершиться переобчислення попереднього перегляду" -#: ../src/iop/toneequal.c:2037 ../src/iop/toneequal.c:2587 +#: ../src/iop/toneequal.c:2069 ../src/iop/toneequal.c:2628 msgid "" "scroll over image to change tone exposure\n" "shift+scroll for large steps; ctrl+scroll for small steps" @@ -19736,89 +20429,89 @@ "Прокрутка над зображенням змінює експозицію тону\n" "Shift+прокрутка - великі кроки; Ctrl+прокрутка - маленькі кроки" -#: ../src/iop/toneequal.c:2185 +#: ../src/iop/toneequal.c:2201 msgid "some parameters are out-of-bounds" msgstr "Деякі параметри є поза межами" -#: ../src/iop/toneequal.c:2524 +#: ../src/iop/toneequal.c:2518 #, c-format msgid "%+.1f EV" msgstr "%+.1f EV" -#: ../src/iop/toneequal.c:3236 +#: ../src/iop/toneequal.c:3283 #, c-format msgid "[%s over image] change tone exposure" msgstr "[%s над зображенням] змінити експозицію тону" -#: ../src/iop/toneequal.c:3239 +#: ../src/iop/toneequal.c:3286 #, c-format msgid "[%s over image] change tone exposure in large steps" msgstr "[%s над зображенням] змінити експозицію тону великими кроками" -#: ../src/iop/toneequal.c:3242 +#: ../src/iop/toneequal.c:3289 #, c-format msgid "[%s over image] change tone exposure in small steps" msgstr "[%s над зображенням] змінити експозицію тону маленькими кроками" #. Simple view -#: ../src/iop/toneequal.c:3323 ../src/iop/toneequal.c:3352 -#: ../src/iop/toneequal.c:3353 ../src/iop/toneequal.c:3354 -#: ../src/iop/toneequal.c:3355 ../src/iop/toneequal.c:3356 -#: ../src/iop/toneequal.c:3357 ../src/iop/toneequal.c:3358 -#: ../src/iop/toneequal.c:3359 ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3376 ../src/iop/toneequal.c:3405 +#: ../src/iop/toneequal.c:3406 ../src/iop/toneequal.c:3407 +#: ../src/iop/toneequal.c:3408 ../src/iop/toneequal.c:3409 +#: ../src/iop/toneequal.c:3410 ../src/iop/toneequal.c:3411 +#: ../src/iop/toneequal.c:3412 ../src/iop/toneequal.c:3413 msgid "simple" msgstr "Простий" -#: ../src/iop/toneequal.c:3352 +#: ../src/iop/toneequal.c:3405 msgid "-8 EV" msgstr "-8 EV" -#: ../src/iop/toneequal.c:3353 +#: ../src/iop/toneequal.c:3406 msgid "-7 EV" msgstr "-7 EV" -#: ../src/iop/toneequal.c:3354 +#: ../src/iop/toneequal.c:3407 msgid "-6 EV" msgstr "-6 EV" -#: ../src/iop/toneequal.c:3355 +#: ../src/iop/toneequal.c:3408 msgid "-5 EV" msgstr "-5 EV" -#: ../src/iop/toneequal.c:3356 +#: ../src/iop/toneequal.c:3409 msgid "-4 EV" msgstr "-4 EV" -#: ../src/iop/toneequal.c:3357 +#: ../src/iop/toneequal.c:3410 msgid "-3 EV" msgstr "-3 EV" -#: ../src/iop/toneequal.c:3358 +#: ../src/iop/toneequal.c:3411 msgid "-2 EV" msgstr "-2 EV" -#: ../src/iop/toneequal.c:3359 +#: ../src/iop/toneequal.c:3412 msgid "-1 EV" msgstr "-1 EV" -#: ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3413 msgid "+0 EV" msgstr "+0 EV" #. Advanced view -#: ../src/iop/toneequal.c:3364 +#: ../src/iop/toneequal.c:3417 msgid "advanced" msgstr "Просунутий" -#: ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3444 msgid "double-click to reset the curve" msgstr "Подвійний клік для скидання кривої" -#: ../src/iop/toneequal.c:3395 +#: ../src/iop/toneequal.c:3448 msgid "curve smoothing" msgstr "Згладжування кривої" -#: ../src/iop/toneequal.c:3398 +#: ../src/iop/toneequal.c:3451 msgid "" "positive values will produce more progressive tone transitions\n" "but the curve might become oscillatory in some settings.\n" @@ -19832,11 +20525,11 @@ "але можуть створити жорстокі переходи тону і зашкодити локальному контрасту." #. Masking options -#: ../src/iop/toneequal.c:3408 +#: ../src/iop/toneequal.c:3461 msgid "masking" msgstr "Маска" -#: ../src/iop/toneequal.c:3413 +#: ../src/iop/toneequal.c:3466 msgid "" "preview the mask and chose the estimator that gives you the\n" "higher contrast between areas to dodge and areas to burn" @@ -19845,15 +20538,15 @@ "вищий контраст між ділянками які будуть освітлюватись та які будуть " "випалюватись" -#: ../src/iop/toneequal.c:3416 +#: ../src/iop/toneequal.c:3469 msgid "details" msgstr "Деталі" -#: ../src/iop/toneequal.c:3417 +#: ../src/iop/toneequal.c:3470 msgid "preserve details" msgstr "Зберегти деталі" -#: ../src/iop/toneequal.c:3420 +#: ../src/iop/toneequal.c:3473 msgid "" "'no' affects global and local contrast (safe if you only add contrast)\n" "'guided filter' only affects global contrast and tries to preserve local " @@ -19878,7 +20571,7 @@ "\"усереднений EIGF\" - це геометричне середнє значення методів \"ні\" та " "\"EIGF\"" -#: ../src/iop/toneequal.c:3433 +#: ../src/iop/toneequal.c:3486 msgid "" "number of passes of guided filter to apply\n" "helps diffusing the edges of the filter at the expense of speed" @@ -19886,7 +20579,7 @@ "Кількість проходів керованого фільтра.\n" "Допомагає розсіювати краї фільтра за рахунок швидкості" -#: ../src/iop/toneequal.c:3441 +#: ../src/iop/toneequal.c:3494 msgid "" "diameter of the blur in percent of the largest image size\n" "warning: big values of this parameter can make the darkroom\n" @@ -19898,7 +20591,7 @@ "в темній кімнаті набагато повільнішим, якщо використовується профіль " "знешумлення." -#: ../src/iop/toneequal.c:3449 +#: ../src/iop/toneequal.c:3502 msgid "" "precision of the feathering:\n" "higher values force the mask to follow edges more closely\n" @@ -19912,12 +20605,12 @@ "Нижчі значення дають більш плавні градієнти та краще згладжування,\n" "але можуть призвести до неточного огортання країв та до ореолів." -#: ../src/iop/toneequal.c:3456 +#: ../src/iop/toneequal.c:3509 msgctxt "section" msgid "mask post-processing" msgstr "Постобробка маски" -#: ../src/iop/toneequal.c:3467 +#: ../src/iop/toneequal.c:3520 msgid "" "mask histogram span between the first and last deciles.\n" "the central line shows the average. orange bars appear at extrema if " @@ -19927,7 +20620,7 @@ "Центральна лінія показує середнє значення.\n" "Помаранчеві смужки з'являються в екстремумах, якщо відбувається кліппінг." -#: ../src/iop/toneequal.c:3475 +#: ../src/iop/toneequal.c:3528 msgid "" "0 disables the quantization.\n" "higher values posterize the luminance mask to help the guiding\n" @@ -19939,7 +20632,7 @@ "Сворює гладкі ділянки поштучно при використанні з високим значенням " "розтушовки." -#: ../src/iop/toneequal.c:3484 +#: ../src/iop/toneequal.c:3537 msgid "" "use this to slide the mask average exposure along channels\n" "for a better control of the exposure correction with the available nodes.\n" @@ -19949,7 +20642,7 @@ "для кращого контролю корекції експозиції з наявними вузлами.\n" "Значок чарівної палички автоматично відрегулює середню експозицію." -#: ../src/iop/toneequal.c:3497 +#: ../src/iop/toneequal.c:3550 msgid "" "use this to counter the averaging effect of the guided filter\n" "and dilate the mask contrast around -4EV\n" @@ -19963,7 +20656,7 @@ "для кращого контролю корекції експозиції.\n" "Значок чарівної палички автоматично відрегулює контраст." -#: ../src/iop/toneequal.c:3520 ../src/iop/toneequal.c:3523 +#: ../src/iop/toneequal.c:3573 ../src/iop/toneequal.c:3576 msgid "display exposure mask" msgstr "Показати маску експозиції" @@ -19979,22 +20672,22 @@ "Цей модуль застарілий. Краще використовувати модулі 'Локальний контраст' або " "'Еквалайзер тонів' замість нього." -#: ../src/iop/velvia.c:79 +#: ../src/iop/velvia.c:70 msgid "velvia" msgstr "Velvia" -#: ../src/iop/velvia.c:104 +#: ../src/iop/velvia.c:97 msgid "" "resaturate giving more weight to blacks, whites and low-saturation pixels" msgstr "" "Збільшити насиченість надаючи більшої ваги найтемнішим, найсвітлішим та " "пікселям із низькою насиченістю" -#: ../src/iop/velvia.c:281 +#: ../src/iop/velvia.c:290 msgid "the strength of saturation boost" msgstr "Інтенсивність підсилення насиченості" -#: ../src/iop/velvia.c:284 +#: ../src/iop/velvia.c:293 msgid "how much to spare highlights and shadows" msgstr "Захист середніх тонів" @@ -20006,7 +20699,7 @@ "Цей модуль застарілий. Краще використовувати повзунок резонансу в модулі " "'Колірний баланс RGB' замість нього." -#: ../src/iop/vibrance.c:93 +#: ../src/iop/vibrance.c:95 msgid "" "saturate and reduce the lightness of the most saturated pixels\n" "to make the colors more vivid." @@ -20014,56 +20707,52 @@ "Насичення та зменшення яскравості найбільш насичених пікселів,\n" "щоб зробити кольори більш живими." -#: ../src/iop/vibrance.c:217 +#: ../src/iop/vibrance.c:211 msgid "the amount of vibrance" msgstr "Кількість резонансу" -#: ../src/iop/vignette.c:153 -msgid "vignetting" -msgstr "Віньєтування" - -#: ../src/iop/vignette.c:158 +#: ../src/iop/vignette.c:119 msgid "simulate a lens fall-off close to edges" msgstr "Імітувати затемнення об'єктива ближче до країв" -#: ../src/iop/vignette.c:940 +#: ../src/iop/vignette.c:1022 msgid "lomo" msgstr "Ломо" -#: ../src/iop/vignette.c:974 +#: ../src/iop/vignette.c:1061 msgctxt "section" msgid "position / form" msgstr "Позиція / форма" -#: ../src/iop/vignette.c:981 +#: ../src/iop/vignette.c:1069 msgid "dithering" msgstr "Дизеринг" -#: ../src/iop/vignette.c:992 +#: ../src/iop/vignette.c:1081 msgid "the radii scale of vignette for start of fall-off" msgstr "Радіальний масштаб початку затемнення віньєтки" -#: ../src/iop/vignette.c:993 +#: ../src/iop/vignette.c:1083 msgid "the radii scale of vignette for end of fall-off" msgstr "Радіальний масштаб кінця затемнення віньєтки" -#: ../src/iop/vignette.c:994 +#: ../src/iop/vignette.c:1084 msgid "strength of effect on brightness" msgstr "Сила впливу на яскравість" -#: ../src/iop/vignette.c:995 +#: ../src/iop/vignette.c:1085 msgid "strength of effect on saturation" msgstr "Сила впливу на насиченість" -#: ../src/iop/vignette.c:996 +#: ../src/iop/vignette.c:1086 msgid "horizontal offset of center of the effect" msgstr "Горизонтальне зміщення центра ефекту" -#: ../src/iop/vignette.c:997 +#: ../src/iop/vignette.c:1087 msgid "vertical offset of center of the effect" msgstr "Вертикальне зміщення центра ефекту" -#: ../src/iop/vignette.c:998 +#: ../src/iop/vignette.c:1090 msgid "" "shape factor\n" "0 produces a rectangle\n" @@ -20075,60 +20764,60 @@ "1 створює коло або еліпс\n" "2 створює ромб" -#: ../src/iop/vignette.c:1000 +#: ../src/iop/vignette.c:1094 msgid "enable to have the ratio automatically follow the image size" msgstr "" "Увімкніть, щоб співвідношення сторін автоматично відповідало розміру " "зображення" -#: ../src/iop/vignette.c:1001 +#: ../src/iop/vignette.c:1095 msgid "width-to-height ratio" msgstr "Співвідношення ширина-висота" -#: ../src/iop/vignette.c:1002 +#: ../src/iop/vignette.c:1097 msgid "add some level of random noise to prevent banding" msgstr "Додати деякий рівень випадкового шуму, щоб запобігти бандингу" -#: ../src/iop/vignette.c:1009 +#: ../src/iop/vignette.c:1105 #, c-format msgid "[%s on node] change vignette/feather size" msgstr "[%s на вузлі] змінити розмір віньєтки/розтушовки" -#: ../src/iop/vignette.c:1011 +#: ../src/iop/vignette.c:1108 #, c-format msgid "[%s on node] change vignette/feather size keeping ratio" msgstr "" "[%s на вузлі] змінити розмір віньєтки/розтушовки зі збереженням " "співвідношення сторін" -#: ../src/iop/vignette.c:1013 +#: ../src/iop/vignette.c:1111 #, c-format msgid "[%s on center] move vignette" msgstr "[%s на центрі] перемістити віньєтку" -#: ../src/iop/watermark.c:371 +#: ../src/iop/watermark.c:416 msgid "watermark" msgstr "Водяний знак" -#: ../src/iop/watermark.c:376 +#: ../src/iop/watermark.c:421 msgid "overlay an SVG watermark like a signature on the picture" msgstr "Накласти водяний знак в форматі SVG, як підпис на малюнку" -#: ../src/iop/watermark.c:1258 +#: ../src/iop/watermark.c:1306 msgid "marker" msgstr "Знак" -#: ../src/iop/watermark.c:1261 +#: ../src/iop/watermark.c:1309 #, c-format msgid "SVG watermarks in %s/watermarks or %s/watermarks" msgstr "Водяні знаки в форматі SVG в %s/watermarks або %s/watermarks" #. Simple text -#: ../src/iop/watermark.c:1271 ../src/iop/watermark.c:1272 +#: ../src/iop/watermark.c:1319 ../src/iop/watermark.c:1320 msgid "text" msgstr "Текст" -#: ../src/iop/watermark.c:1273 +#: ../src/iop/watermark.c:1321 msgid "" "text string, tag:\n" "$(WATERMARK_TEXT)" @@ -20136,16 +20825,16 @@ "Текст водяного знаку, тег:\n" "$(WATERMARK_TEXT)" -#: ../src/iop/watermark.c:1275 +#: ../src/iop/watermark.c:1323 msgid "content" msgstr "Вміст" #. Text font -#: ../src/iop/watermark.c:1280 +#: ../src/iop/watermark.c:1328 msgid "font" msgstr "Шрифт" -#: ../src/iop/watermark.c:1285 +#: ../src/iop/watermark.c:1333 msgid "" "text font, tags:\n" "$(WATERMARK_FONT_FAMILY)\n" @@ -20157,7 +20846,7 @@ "$(WATERMARK_FONT_STYLE)\n" "$(WATERMARK_FONT_WEIGHT)" -#: ../src/iop/watermark.c:1300 +#: ../src/iop/watermark.c:1348 msgid "" "watermark color, tag:\n" "$(WATERMARK_COLOR)" @@ -20165,58 +20854,61 @@ "колір водяного знаку, тег:\n" "$(WATERMARK_COLOR)" -#: ../src/iop/watermark.c:1302 +#: ../src/iop/watermark.c:1350 msgid "select watermark color" msgstr "Вибрати колір водяного знаку" -#: ../src/iop/watermark.c:1304 +#: ../src/iop/watermark.c:1352 msgid "pick color from image" msgstr "Вибрати колір із зображення" -#: ../src/iop/watermark.c:1317 +#: ../src/iop/watermark.c:1365 msgctxt "section" msgid "placement" msgstr "Розміщення" -#: ../src/iop/watermark.c:1330 +#: ../src/iop/watermark.c:1378 msgid "" -"scaling is done relative to this object\n" -"• image: fits marker into whole image\n" -"• larger border: fits larger marker border to larger image border\n" -"• smaller border: fits larger marker border to smaller image border\n" -"• height: fits marker height to image height, e.g. suitable for texts\n" -"• advanced options: activates two additional drop-down menus" -msgstr "" -"Масштабування виконується відносно цього об'єкта:\n" -"• Зображення: підгонка водяного знака до всього зображення\n" -"• Довша сторона: підгонка довшої сторони знака до довшої сторони зображення\n" -"• Коротша сторона: підгонка довшої сторони знака до коротшої сторони " -"зображення\n" -"• Висота: підгонка висоти водяного знака до висоти зображення\n" -"• Додаткові опції: активує два додаткових спадних меню" - -#: ../src/iop/watermark.c:1339 -msgid "reference to which the marker should be scaled to" -msgstr "Референс, до якого слід масштабувати маркер" - -#: ../src/iop/watermark.c:1343 -msgid "length of the marker which is used as scaling reference" -msgstr "Довжина маркера, який використовується як еталон масштабування" +"choose how to scale the watermark\n" +"• image: scale watermark relative to whole image\n" +"• larger border: scale larger watermark border relative to larger image " +"border\n" +"• smaller border: scale larger watermark border relative to smaller image " +"border\n" +"• height: scale watermark height to image height\n" +"• advanced options: choose watermark and image dimensions independently" +msgstr "" +"Виберіть, як масштабувати водяний знак\n" +"• Зображення: масштабувати водяний знак відносно всього зображення\n" +"• Довша сторона: масштабувати довшу сторону водяного знаку відносно довшої " +"сторони зображення\n" +"• Коротша сторона: масштабувати довшу сторону водяного знаку відносно " +"коротшої сторони зображення\n" +"• Висота: масштабувати висоту водяного знаку відносно висоти зображення\n" +"• Додаткові опції: вибрати сторони водяного знаку та зображення окремо" + +#: ../src/iop/watermark.c:1387 +msgid "reference image dimension against which to scale the watermark" +msgstr "Сторона зображення, відносно якої масштабуватиметься водяний знак" + +#: ../src/iop/watermark.c:1391 +msgid "watermark dimension to scale" +msgstr "Сторона водяного знаку, яка масштабуватиметься" -#: ../src/iop/watermark.c:1347 ../src/libs/print_settings.c:2675 +#: ../src/iop/watermark.c:1395 ../src/libs/print_settings.c:2675 msgid "alignment" msgstr "Вирівнювання" #. Let's add some tooltips and hook up some signals... -#: ../src/iop/watermark.c:1368 +#: ../src/iop/watermark.c:1416 msgid "the opacity of the watermark" msgstr "Непрозорість водяного знаку" -#: ../src/iop/watermark.c:1369 +#: ../src/iop/watermark.c:1417 msgid "the scale of the watermark" msgstr "Масштаб водяного знаку" -#: ../src/iop/watermark.c:1370 +#: ../src/iop/watermark.c:1418 msgid "the rotation of the watermark" msgstr "Обертання водяного знаку" @@ -20224,7 +20916,7 @@ msgid "zone system" msgstr "Зонна система" -#: ../src/iop/zonesystem.c:490 +#: ../src/iop/zonesystem.c:486 msgid "" "lightness zones\n" "use mouse scrollwheel to change the number of zones\n" @@ -20266,7 +20958,7 @@ msgid "camera control" msgstr "Керування камерою" -#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2360 +#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2679 msgid "modes" msgstr "Режими" @@ -20373,36 +21065,49 @@ msgid "WB" msgstr "ББ" -#: ../src/libs/collect.c:151 +#: ../src/libs/collect.c:164 msgid "collections" msgstr "Колекції" -#: ../src/libs/collect.c:407 +#: ../src/libs/collect.c:424 msgid "search filmroll" msgstr "Пошук плівки" -#: ../src/libs/collect.c:490 +#: ../src/libs/collect.c:507 #, c-format msgid "problem selecting new path for the filmroll in %s" msgstr "Проблема з вибором нового шляху для фотоплівки в %s" -#: ../src/libs/collect.c:553 +#: ../src/libs/collect.c:579 msgid "search filmroll..." msgstr "Шукати плівку..." -#: ../src/libs/collect.c:557 +#: ../src/libs/collect.c:584 msgid "remove..." msgstr "Видалити..." -#: ../src/libs/collect.c:1225 +#: ../src/libs/collect.c:1310 msgid "uncategorized" msgstr "Без категорії" -#: ../src/libs/collect.c:2138 +#: ../src/libs/collect.c:2172 ../src/libs/filters/rating_range.c:120 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:151 +#: ../src/libs/filters/rating_range.c:302 +msgid "rejected" +msgstr "Відхилені" + +#: ../src/libs/collect.c:2175 ../src/libs/filters/rating_range.c:122 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:303 +msgid "not rated" +msgstr "Без рейтингу" + +#: ../src/libs/collect.c:2359 msgid "use <, <=, >, >=, <>, =, [;] as operators" msgstr "Використовуйте <, <=, >, >=, <>, =, [;] як оператори" -#: ../src/libs/collect.c:2142 +#: ../src/libs/collect.c:2363 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "star rating: 0-5\n" @@ -20412,7 +21117,7 @@ "рейтинг в зірках: 0-5\n" "відхилені зображення: -1" -#: ../src/libs/collect.c:2149 +#: ../src/libs/collect.c:2371 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)" @@ -20420,12 +21125,12 @@ "Використовуйте <, <=, >, >=, <>, =, [;] як оператори\n" "Вказуйте дати в форматі: YYYY:MM:DD hh:mm:ss.sss (лише рік є обов'язковим)" -#: ../src/libs/collect.c:2156 +#: ../src/libs/collect.c:2378 #, no-c-format msgid "use `%' as wildcard and `,' to separate values" msgstr "Використовуйте `%' для вибору всього і `,' для розділення значень" -#: ../src/libs/collect.c:2162 +#: ../src/libs/collect.c:2385 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20438,7 +21143,7 @@ "Shift+клік - включити лише поточну ієрархію (без суфікса)\n" "Ctrl+клік - включити лише підієрархії (суфікс `|%')" -#: ../src/libs/collect.c:2174 +#: ../src/libs/collect.c:2398 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20451,7 +21156,7 @@ "Shift+клік - включити лише поточне місце (без суфікса)\n" "Ctrl+клік - включити лише вкладені місця (суфікс `|%')" -#: ../src/libs/collect.c:2186 +#: ../src/libs/collect.c:2411 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20464,111 +21169,103 @@ "Shift+клік - включити лише поточну папку (без суфікса)\n" "Ctrl+клік - включити лише підпапки (суфікс `|%')" -#: ../src/libs/collect.c:2197 +#: ../src/libs/collect.c:2422 #, no-c-format msgid "use `%' as wildcard" msgstr "Використовуйте `%' для вибору всього" -#: ../src/libs/collect.c:2263 ../src/libs/collect.c:2277 -#: ../src/libs/collect.c:2800 +#: ../src/libs/collect.c:2488 ../src/libs/collect.c:2502 +#: ../src/libs/collect.c:3111 msgid "clear this rule" msgstr "Очистити це правило" -#: ../src/libs/collect.c:2267 +#: ../src/libs/collect.c:2492 msgid "clear this rule or add new rules" msgstr "Очистити це правило чи додати нові правила" -#: ../src/libs/collect.c:2806 +#: ../src/libs/collect.c:3117 msgid "narrow down search" msgstr "Фільтр типу 'І' (звузити пошук)" -#: ../src/libs/collect.c:2811 +#: ../src/libs/collect.c:3124 msgid "add more images" msgstr "Фільтр типу 'АБО' (додати до колекції)" -#: ../src/libs/collect.c:2816 +#: ../src/libs/collect.c:3131 msgid "exclude images" msgstr "Фільтр типу 'КРІМ' (виключити з колекції)" -#: ../src/libs/collect.c:2823 +#: ../src/libs/collect.c:3140 msgid "change to: and" msgstr "Змінити на 'І'" -#: ../src/libs/collect.c:2828 +#: ../src/libs/collect.c:3147 msgid "change to: or" msgstr "Змінити на 'АБО'" -#: ../src/libs/collect.c:2833 +#: ../src/libs/collect.c:3154 msgid "change to: except" msgstr "Змінити на 'КРІМ'" #. the different categories -#: ../src/libs/collect.c:2859 ../src/libs/filtering.c:857 -#: ../src/libs/filtering.c:924 ../src/libs/filtering.c:1558 -#: ../src/libs/filtering.c:1890 +#: ../src/libs/collect.c:3184 ../src/libs/filtering.c:883 +#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1620 +#: ../src/libs/filtering.c:1964 msgid "files" msgstr "Файли" -#: ../src/libs/collect.c:2864 ../src/libs/export_metadata.c:312 -#: ../src/libs/filtering.c:862 ../src/libs/filtering.c:929 -#: ../src/libs/filtering.c:1566 ../src/libs/filtering.c:1894 -#: ../src/libs/image.c:464 ../src/libs/image.c:574 ../src/libs/image.c:582 -#: ../src/libs/metadata.c:676 ../src/libs/metadata_view.c:1226 +#: ../src/libs/collect.c:3189 ../src/libs/export_metadata.c:301 +#: ../src/libs/filtering.c:888 ../src/libs/filtering.c:955 +#: ../src/libs/filtering.c:1628 ../src/libs/filtering.c:1968 +#: ../src/libs/image.c:495 ../src/libs/image.c:633 ../src/libs/image.c:645 +#: ../src/libs/metadata.c:509 ../src/libs/metadata_view.c:1256 msgid "metadata" msgstr "Метадані" -#: ../src/libs/collect.c:2883 ../src/libs/filtering.c:883 -#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1892 +#: ../src/libs/collect.c:3208 ../src/libs/filtering.c:909 +#: ../src/libs/filtering.c:976 ../src/libs/filtering.c:1966 msgid "times" msgstr "Позначки часу" -#: ../src/libs/collect.c:2891 ../src/libs/filtering.c:891 -#: ../src/libs/filtering.c:958 ../src/libs/filtering.c:1590 +#: ../src/libs/collect.c:3216 ../src/libs/filtering.c:917 +#: ../src/libs/filtering.c:984 ../src/libs/filtering.c:1652 msgid "capture details" msgstr "Деталі зйомки" -#: ../src/libs/collect.c:2900 ../src/libs/filtering.c:900 -#: ../src/libs/filtering.c:967 ../src/libs/filtering.c:1602 -#: ../src/libs/filtering.c:1896 ../src/libs/tools/darktable.c:65 +#: ../src/libs/collect.c:3225 ../src/libs/filtering.c:926 +#: ../src/libs/filtering.c:993 ../src/libs/filtering.c:1664 +#: ../src/libs/filtering.c:1970 ../src/libs/tools/darktable.c:61 msgid "darktable" msgstr "darktable" -#: ../src/libs/collect.c:2913 +#: ../src/libs/collect.c:3240 msgid "collections settings" msgstr "Налаштування колекцій зображень" -#: ../src/libs/collect.c:2916 ../src/libs/export_metadata.c:288 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:228 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3472 -msgid "save" -msgstr "Зберегти" - -#: ../src/libs/collect.c:2936 ../src/libs/export.c:1046 -#: ../src/libs/metadata.c:779 ../src/libs/metadata_view.c:1306 -#: ../src/libs/recentcollect.c:293 ../src/libs/tagging.c:3494 +#: ../src/libs/collect.c:3267 ../src/libs/export.c:1126 +#: ../src/libs/metadata.c:615 ../src/libs/metadata_view.c:1339 +#: ../src/libs/recentcollect.c:295 ../src/libs/tagging.c:3526 msgid "preferences..." msgstr "Уподобання..." -#: ../src/libs/collect.c:3041 ../src/libs/filtering.c:1432 +#: ../src/libs/collect.c:3388 ../src/libs/filtering.c:1494 msgid "AND" msgstr "ТА" -#: ../src/libs/collect.c:3046 ../src/libs/filtering.c:1437 +#: ../src/libs/collect.c:3393 ../src/libs/filtering.c:1499 msgid "OR" msgstr "АБО" #. case DT_LIB_COLLECT_MODE_AND_NOT: -#: ../src/libs/collect.c:3051 ../src/libs/filtering.c:1442 +#: ../src/libs/collect.c:3398 ../src/libs/filtering.c:1504 msgid "BUT NOT" msgstr "АЛЕ НЕ" -#: ../src/libs/collect.c:3223 ../src/libs/filtering.c:2164 +#: ../src/libs/collect.c:3588 ../src/libs/filtering.c:2238 msgid "revert to a previous set of rules" msgstr "Повернутися до попереднього набору правил" -#: ../src/libs/collect.c:3280 +#: ../src/libs/collect.c:3671 msgid "jump back to previous collection" msgstr "Назад до попередньої колекції" @@ -20592,7 +21289,7 @@ msgid "color picker" msgstr "Піпетка кольору" -#: ../src/libs/colorpicker.c:463 +#: ../src/libs/colorpicker.c:513 msgid "" "hover to highlight sample on canvas,\n" "click to lock sample,\n" @@ -20602,23 +21299,23 @@ "Клік - фіксує колір зразка\n" "Правий клік - завантажує область зразка в активну піпетку кольору" -#: ../src/libs/colorpicker.c:561 ../src/libs/colorpicker.c:612 +#: ../src/libs/colorpicker.c:626 ../src/libs/colorpicker.c:693 msgid "click to (un)hide large color patch" msgstr "Натискання перемикає відображення великого зразка" -#: ../src/libs/colorpicker.c:575 +#: ../src/libs/colorpicker.c:649 msgid "statistic" msgstr "Статистика" -#: ../src/libs/colorpicker.c:576 +#: ../src/libs/colorpicker.c:650 msgid "select which statistic to show" msgstr "Виберіть, яку статистику показувати" -#: ../src/libs/colorpicker.c:585 +#: ../src/libs/colorpicker.c:660 msgid "select which color mode to use" msgstr "Виберіть, який колірний режим використовувати" -#: ../src/libs/colorpicker.c:594 +#: ../src/libs/colorpicker.c:671 msgid "" "turn on color picker\n" "ctrl+click or right-click to select an area" @@ -20626,21 +21323,21 @@ "Увімкнути піпетку кольору\n" "Ctrl+клік або клік правою кнопкою - вибрати область" -#: ../src/libs/colorpicker.c:636 +#: ../src/libs/colorpicker.c:722 msgid "add sample" msgstr "Додати зразок" #. Adding the live samples section -#: ../src/libs/colorpicker.c:640 +#: ../src/libs/colorpicker.c:727 msgctxt "section" msgid "live samples" msgstr "Живі зразки" -#: ../src/libs/colorpicker.c:648 +#: ../src/libs/colorpicker.c:738 msgid "display samples on image/vectorscope" msgstr "Показувати зразки на зображенні/вектороскопі" -#: ../src/libs/colorpicker.c:657 +#: ../src/libs/colorpicker.c:749 msgid "restrict scope to selection" msgstr "Гістограма лише для вибраних зразків" @@ -20652,10 +21349,6 @@ msgid "open sidecar file" msgstr "Відкрити XMP файл" -#: ../src/libs/copy_history.c:149 -msgid "XMP sidecar files" -msgstr "Файли XMP" - #: ../src/libs/copy_history.c:166 #, c-format msgid "error loading file '%s'" @@ -20705,7 +21398,7 @@ msgid "choose which modules to paste to the target image(s)" msgstr "Вибрати, які модулі вставляти в цільові зображення" -#: ../src/libs/copy_history.c:382 ../src/libs/image.c:588 +#: ../src/libs/copy_history.c:382 ../src/libs/image.c:655 msgid "paste" msgstr "Вставити" @@ -20737,11 +21430,11 @@ "Видалити історію змін\n" "всіх вибраних зображень" -#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:847 +#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:851 msgid "how to handle existing history" msgstr "Як обробляти існуючу історію" -#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:850 +#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:854 msgid "append" msgstr "Додати" @@ -20761,89 +21454,96 @@ msgid "write history stack and tags to XMP sidecar files" msgstr "Записати історію змін і теги в XMP файли" -#: ../src/libs/duplicate.c:56 +#: ../src/libs/duplicate.c:60 msgid "duplicate manager" msgstr "Менеджер дублікатів" -#: ../src/libs/duplicate.c:401 +#: ../src/libs/duplicate.c:407 msgid "create a 'virgin' duplicate of the image without any development" msgstr "Створити дублікат зображення без жодної обробки" -#: ../src/libs/duplicate.c:406 +#: ../src/libs/duplicate.c:412 msgid "create a duplicate of the image with same history stack" msgstr "Створити дублікат зображення з тією ж історією змін" -#. Export button -#: ../src/libs/export.c:153 ../src/libs/export.c:1281 +#: ../src/libs/export.c:160 msgid "export" msgstr "Експорт" #: ../src/libs/export.c:306 +msgid "invalid format for export selected" +msgstr "Вибрано недійсний формат для експорту" + +#: ../src/libs/export.c:311 +msgid "invalid storage for export selected" +msgstr "Вибрано недійсний тип збереження для експорту" + +#: ../src/libs/export.c:322 msgid "export to disk" msgstr "Експорт на диск" -#: ../src/libs/export.c:485 +#: ../src/libs/export.c:516 #, c-format msgid "which is equal to %s × %s px" msgstr "що еквівалентно %s × %s px" -#: ../src/libs/export.c:520 +#: ../src/libs/export.c:555 msgctxt "unit" msgid "in" msgstr "дюйм" -#: ../src/libs/export.c:1060 +#: ../src/libs/export.c:1141 msgctxt "section" msgid "storage options" msgstr "Опції збереження" -#: ../src/libs/export.c:1064 +#: ../src/libs/export.c:1145 msgid "target storage" msgstr "Ціль" -#: ../src/libs/export.c:1086 +#: ../src/libs/export.c:1171 msgctxt "section" msgid "format options" msgstr "Опції формату" -#: ../src/libs/export.c:1090 +#: ../src/libs/export.c:1175 msgid "file format" msgstr "Формат" -#: ../src/libs/export.c:1107 +#: ../src/libs/export.c:1193 msgctxt "section" msgid "global options" msgstr "Глобальні опції" -#: ../src/libs/export.c:1110 +#: ../src/libs/export.c:1196 msgid "set size" msgstr "Установити розмір" -#: ../src/libs/export.c:1111 +#: ../src/libs/export.c:1197 msgid "choose a method for setting the output size" msgstr "Вибрати метод установлення вихідного розміру" -#: ../src/libs/export.c:1114 +#: ../src/libs/export.c:1200 msgid "in pixels (for file)" msgstr "у пікселях (для файлу)" -#: ../src/libs/export.c:1115 +#: ../src/libs/export.c:1201 msgid "in cm (for print)" msgstr "в сантиметрах (для друку)" -#: ../src/libs/export.c:1116 +#: ../src/libs/export.c:1202 msgid "in inch (for print)" msgstr "в дюймах (для друку)" -#: ../src/libs/export.c:1117 +#: ../src/libs/export.c:1203 msgid "by scale (for file)" msgstr "за масштабом (для файлу)" -#: ../src/libs/export.c:1119 +#: ../src/libs/export.c:1206 msgid "print width" msgstr "Ширина друку" -#: ../src/libs/export.c:1120 ../src/libs/export.c:1132 +#: ../src/libs/export.c:1208 ../src/libs/export.c:1225 msgid "" "maximum output width limit.\n" "click middle mouse button to reset to 0." @@ -20851,11 +21551,11 @@ "Максимальна вихідна ширина.\n" "Натисніть середню кнопку миші, щоб скинути значення в 0." -#: ../src/libs/export.c:1123 +#: ../src/libs/export.c:1212 msgid "print height" msgstr "Висота друку" -#: ../src/libs/export.c:1124 ../src/libs/export.c:1136 +#: ../src/libs/export.c:1214 ../src/libs/export.c:1231 msgid "" "maximum output height limit.\n" "click middle mouse button to reset to 0." @@ -20863,19 +21563,19 @@ "Максимальна вихідна висота.\n" "Натисніть середню кнопку миші, щоб скинути значення в 0." -#: ../src/libs/export.c:1128 +#: ../src/libs/export.c:1220 msgid "resolution in dot per inch" msgstr "Роздільність в точках на дюйм (dpi)" -#: ../src/libs/export.c:1148 +#: ../src/libs/export.c:1244 msgid "@" msgstr "@" -#: ../src/libs/export.c:1161 ../src/libs/tools/global_toolbox.c:217 +#: ../src/libs/export.c:1258 ../src/libs/tools/global_toolbox.c:217 msgid "px" msgstr "px" -#: ../src/libs/export.c:1166 +#: ../src/libs/export.c:1266 msgid "" "it can be an integer, decimal number or simple fraction.\n" "zero or empty values are equal to 1.\n" @@ -20885,38 +21585,38 @@ "Нульові або порожні значення еквівалентні 1.\n" "Натисніть середню кнопку миші, щоб скинути значення в 1." -#: ../src/libs/export.c:1185 +#: ../src/libs/export.c:1292 msgid "allow upscaling" msgstr "Дозволити збільшення" -#: ../src/libs/export.c:1191 +#: ../src/libs/export.c:1301 msgid "high quality resampling" msgstr "Високоякісна передискретизація" -#: ../src/libs/export.c:1192 +#: ../src/libs/export.c:1302 msgid "do high quality resampling during export" msgstr "Робити якісну передискретизацію під час експорту" -#: ../src/libs/export.c:1198 +#: ../src/libs/export.c:1310 msgid "store masks" msgstr "Зберігати маски" -#: ../src/libs/export.c:1199 +#: ../src/libs/export.c:1311 msgid "store masks as layers in exported images. only works for some formats." msgstr "" "Зберігати маски як шари в експортованих зображеннях. Працює лише для деяких " "форматів." -#: ../src/libs/export.c:1210 ../src/libs/export.c:1245 +#: ../src/libs/export.c:1322 ../src/libs/export.c:1357 #: ../src/libs/print_settings.c:2777 ../src/libs/print_settings.c:2823 msgid "image settings" msgstr "Налаштування зображення" -#: ../src/libs/export.c:1220 ../src/libs/print_settings.c:2811 +#: ../src/libs/export.c:1332 ../src/libs/print_settings.c:2811 msgid "output ICC profiles" msgstr "вихідні ICC профілі" -#: ../src/libs/export.c:1228 +#: ../src/libs/export.c:1340 msgid "" "• perceptual: smoothly moves out-of-gamut colors into gamut, preserving " "gradations,\n" @@ -20954,44 +21654,53 @@ "кольоропробах.\n" "(не підходить для фотографії)." -#: ../src/libs/export.c:1255 ../src/libs/print_settings.c:2833 +#: ../src/libs/export.c:1367 ../src/libs/print_settings.c:2833 msgid "style" msgstr "Стиль" -#: ../src/libs/export.c:1258 +#: ../src/libs/export.c:1370 msgid "temporary style to use while exporting" msgstr "Тимчасовий стиль для використання під час експорту" -#: ../src/libs/export.c:1263 ../src/libs/print_settings.c:2876 +#: ../src/libs/export.c:1377 ../src/libs/print_settings.c:2876 msgid "" "whether the style items are appended to the history or replacing the history" msgstr "Чи елементи стилю додаються до історії чи замінюють історію" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "replace history" msgstr "Замінити історію" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "append history" msgstr "Додати історію" -#: ../src/libs/export.c:1282 +#: ../src/libs/export.c:1398 +msgctxt "actionbutton" +msgid "export" +msgstr "Експортувати" + +#: ../src/libs/export.c:1400 msgid "export with current settings" msgstr "Експортувати з поточними налаштуваннями" -#: ../src/libs/export_metadata.c:163 +#: ../src/libs/export_metadata.c:148 msgid "select tag" msgstr "Вибрати тег" -#: ../src/libs/export_metadata.c:164 -msgid "add" +#: ../src/libs/export_metadata.c:150 +msgid "_add" msgstr "Додати" -#: ../src/libs/export_metadata.c:175 +#: ../src/libs/export_metadata.c:151 ../src/libs/geotagging.c:811 +msgid "_done" +msgstr "Зроблено" + +#: ../src/libs/export_metadata.c:162 msgid "list filter" msgstr "Фільтр списку" -#: ../src/libs/export_metadata.c:186 +#: ../src/libs/export_metadata.c:173 msgid "" "list of available tags. click 'add' button or double-click on tag to add the " "selected one" @@ -20999,31 +21708,31 @@ "Список доступних тегів. Натисніть кнопку 'додати' або двічі клікніть на " "тегу, щоб додати вибраний." -#: ../src/libs/export_metadata.c:287 +#: ../src/libs/export_metadata.c:274 msgid "edit metadata exportation" msgstr "Редактор експорту метаданих" -#: ../src/libs/export_metadata.c:304 +#: ../src/libs/export_metadata.c:293 msgid "general settings" msgstr "Загальні налаштування" -#: ../src/libs/export_metadata.c:309 +#: ../src/libs/export_metadata.c:298 msgid "EXIF data" msgstr "Дані EXIF" -#: ../src/libs/export_metadata.c:310 +#: ../src/libs/export_metadata.c:299 msgid "export EXIF metadata" msgstr "Експортувати метадані EXIF" -#: ../src/libs/export_metadata.c:313 +#: ../src/libs/export_metadata.c:302 msgid "export darktable XMP metadata (from metadata editor module)" msgstr "Експортувати XMP метадані darktable (з модуля редактора метаданих)" -#: ../src/libs/export_metadata.c:323 +#: ../src/libs/export_metadata.c:312 msgid "only embedded" msgstr "Лише вбудовані" -#: ../src/libs/export_metadata.c:324 +#: ../src/libs/export_metadata.c:313 msgid "" "per default the interface sends some (limited) metadata beside the image to " "remote storage.\n" @@ -21039,39 +21748,39 @@ "Якщо віддалене сховище не розуміє метадані darktable XMP, ви можете замість " "них використовувати обчислені метадані." -#: ../src/libs/export_metadata.c:330 ../src/libs/image.c:566 +#: ../src/libs/export_metadata.c:319 ../src/libs/image.c:623 msgid "geo tags" msgstr "Геотеги" -#: ../src/libs/export_metadata.c:331 +#: ../src/libs/export_metadata.c:320 msgid "export geo tags" msgstr "Експортувати геотеги" -#: ../src/libs/export_metadata.c:334 +#: ../src/libs/export_metadata.c:323 msgid "export tags (to Xmp.dc.Subject)" msgstr "Експортувати теги (до Xmp.dc.Subject)" -#: ../src/libs/export_metadata.c:342 +#: ../src/libs/export_metadata.c:331 msgid "private tags" msgstr "Приватні теги" -#: ../src/libs/export_metadata.c:343 +#: ../src/libs/export_metadata.c:332 msgid "export private tags" msgstr "Експортувати приватні теги" -#: ../src/libs/export_metadata.c:345 +#: ../src/libs/export_metadata.c:334 msgid "synonyms" msgstr "Синоніми" -#: ../src/libs/export_metadata.c:346 +#: ../src/libs/export_metadata.c:335 msgid "export tags synonyms" msgstr "Експортувати синоніми тегів" -#: ../src/libs/export_metadata.c:348 +#: ../src/libs/export_metadata.c:337 msgid "omit hierarchy" msgstr "Опустити ієрархію" -#: ../src/libs/export_metadata.c:349 +#: ../src/libs/export_metadata.c:338 msgid "" "only the last part of the hierarchical tags is included. can be useful if " "categories are not used" @@ -21079,19 +21788,19 @@ "Включена лише остання частина ієрархічних тегів. Може бути корисним, якщо " "категорії не використовуються." -#: ../src/libs/export_metadata.c:352 +#: ../src/libs/export_metadata.c:341 msgid "hierarchical tags" msgstr "Ієрархічні теги" -#: ../src/libs/export_metadata.c:353 +#: ../src/libs/export_metadata.c:342 msgid "export hierarchical tags (to Xmp.lr.Hierarchical Subject)" msgstr "Експортувати ієрархічні теги (до Xmp.lr.Hierarchical)" -#: ../src/libs/export_metadata.c:355 +#: ../src/libs/export_metadata.c:344 msgid "develop history" msgstr "Історія обробки" -#: ../src/libs/export_metadata.c:356 +#: ../src/libs/export_metadata.c:345 msgid "" "export darktable development data (recovery purpose in case of loss of " "database or XMP file)" @@ -21099,19 +21808,19 @@ "Експортувати дані про обробку в darktable (з метою її відновлення у разі " "втрати бази даних або файлу XMP)" -#: ../src/libs/export_metadata.c:363 +#: ../src/libs/export_metadata.c:352 msgid "per metadata settings" msgstr "Обробка окремих метаданих" -#: ../src/libs/export_metadata.c:376 +#: ../src/libs/export_metadata.c:364 msgid "redefined tag" msgstr "Перевизначений тег" -#: ../src/libs/export_metadata.c:382 +#: ../src/libs/export_metadata.c:370 msgid "formula" msgstr "Формула" -#: ../src/libs/export_metadata.c:385 +#: ../src/libs/export_metadata.c:373 msgid "" "list of calculated metadata\n" "click on '+' button to select and add new metadata\n" @@ -21135,15 +21844,15 @@ "Натисніть на клітинку формули для редагування.\n" "Введіть '$(', щоб активувати завершення та переглянути список змінних." -#: ../src/libs/export_metadata.c:442 +#: ../src/libs/export_metadata.c:430 msgid "add an output metadata tag" msgstr "Додати тег вихідних метаданих" -#: ../src/libs/export_metadata.c:447 +#: ../src/libs/export_metadata.c:435 msgid "delete metadata tag" msgstr "Видалити тег метаданих" -#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:128 +#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:130 msgid "full path" msgstr "Повний шлях" @@ -21163,49 +21872,49 @@ msgid "shuffle" msgstr "Перетасувати" -#: ../src/libs/filtering.c:263 +#: ../src/libs/filtering.c:269 msgid "collection filters" msgstr "Фільтри для колекцій" -#: ../src/libs/filtering.c:296 +#: ../src/libs/filtering.c:302 msgid "initial setting" msgstr "Початкове налаштування" -#: ../src/libs/filtering.c:315 +#: ../src/libs/filtering.c:321 msgid "imported: last 24h" msgstr "Імпортовано: останні 24 години" -#: ../src/libs/filtering.c:320 +#: ../src/libs/filtering.c:326 msgid "imported: last 30 days" msgstr "Імпортовано: останні 30 днів" -#: ../src/libs/filtering.c:326 +#: ../src/libs/filtering.c:332 msgid "taken: last 24h" msgstr "Знято: останні 24 години" -#: ../src/libs/filtering.c:330 +#: ../src/libs/filtering.c:336 msgid "taken: last 30 days" msgstr "Знято: останні 30 днів" -#: ../src/libs/filtering.c:702 +#: ../src/libs/filtering.c:728 msgid "click or click&drag to select one or multiple values" msgstr "" "Простий клік або клік з перетягуванням вибирає одне або кількох значень" -#: ../src/libs/filtering.c:703 +#: ../src/libs/filtering.c:729 msgid "right-click opens a menu to select the available values" msgstr "Клік правою кнопкою миші відкриває меню для вибору доступних значень" -#: ../src/libs/filtering.c:800 +#: ../src/libs/filtering.c:826 #, c-format msgid "you can't have more than %d rules" msgstr "Ви не можете мати більше %d правил" -#: ../src/libs/filtering.c:922 ../src/libs/filtering.c:1556 +#: ../src/libs/filtering.c:948 ../src/libs/filtering.c:1618 msgid "rule property" msgstr "Тип правила" -#: ../src/libs/filtering.c:987 +#: ../src/libs/filtering.c:1013 msgid "" "rule property\n" "this can't be changed as the rule is pinned to the toolbar" @@ -21213,12 +21922,12 @@ "Тип правила\n" "Це не можна змінити, оскільки правило закріплено на панелі інструментів" -#: ../src/libs/filtering.c:1035 +#: ../src/libs/filtering.c:1095 msgctxt "quickfilter" msgid "filter" msgstr "Фільтр" -#: ../src/libs/filtering.c:1062 +#: ../src/libs/filtering.c:1124 msgid "" "this rule is pinned to the top toolbar\n" "click to un-pin" @@ -21226,118 +21935,126 @@ "Це правило закріплено на верхній панелі інструментів\n" "Клікніть для відкріплення" -#: ../src/libs/filtering.c:1063 +#: ../src/libs/filtering.c:1125 msgid "you can't disable the rule as it is pinned to the toolbar" msgstr "" "Ви не можете вимкнути це правило, оскільки воно закріплено на панелі " "інструментів" -#: ../src/libs/filtering.c:1064 +#: ../src/libs/filtering.c:1126 msgid "you can't remove the rule as it is pinned to the toolbar" msgstr "" "Ви не можете видалити це правило, оскільки воно закріплено на панелі " "інструментів" -#: ../src/libs/filtering.c:1069 +#: ../src/libs/filtering.c:1131 msgid "click to pin this rule to the top toolbar" msgstr "Натисніть для закріплення цього правила на верхній панелі інструментів" -#: ../src/libs/filtering.c:1070 +#: ../src/libs/filtering.c:1132 msgid "remove this collect rule" msgstr "Видалити це правило" -#: ../src/libs/filtering.c:1072 +#: ../src/libs/filtering.c:1134 msgid "this rule is enabled" msgstr "Це правило ввімкнено" -#: ../src/libs/filtering.c:1074 +#: ../src/libs/filtering.c:1136 msgid "this rule is disabled" msgstr "Це правило вимкнено" -#: ../src/libs/filtering.c:1202 +#: ../src/libs/filtering.c:1264 msgid "or" msgstr "або" -#: ../src/libs/filtering.c:1203 +#: ../src/libs/filtering.c:1265 msgid "and not" msgstr "і не" -#: ../src/libs/filtering.c:1205 +#: ../src/libs/filtering.c:1267 msgid "define how this rule should interact with the previous one" msgstr "Визначає, як це правило має взаємодіяти з попереднім" -#: ../src/libs/filtering.c:1466 +#: ../src/libs/filtering.c:1528 msgid " (off)" msgstr " (off)" -#: ../src/libs/filtering.c:1663 +#: ../src/libs/filtering.c:1725 msgid "you can't add more rules." msgstr "Ви не можете додавати більше правил." -#. fill the popover with all pinned rules -#: ../src/libs/filtering.c:1696 +#: ../src/libs/filtering.c:1759 msgid "shown filters" msgstr "Показані фільтри" -#: ../src/libs/filtering.c:1711 +#: ../src/libs/filtering.c:1774 msgid "new filter" msgstr "Додати новий фільтр" -#: ../src/libs/filtering.c:1884 +#. the actions part of the popover +#: ../src/libs/filtering.c:1781 +msgid "actions" +msgstr "Дії" + +#: ../src/libs/filtering.c:1784 +msgid "reset quickfilters" +msgstr "Скинути швидкі фільтри" + +#: ../src/libs/filtering.c:1957 msgid "sort order" msgstr "Порядок сортування" -#: ../src/libs/filtering.c:1886 +#: ../src/libs/filtering.c:1960 msgid "determine the sort order of shown images" msgstr "Визначає порядок сортування показаних зображень" -#: ../src/libs/filtering.c:1906 +#: ../src/libs/filtering.c:1980 msgid "sort direction" msgstr "Напрямок сортування" -#: ../src/libs/filtering.c:1911 +#: ../src/libs/filtering.c:1985 msgid "remove this sort order" msgstr "Видалити цей порядок сортування" -#: ../src/libs/filtering.c:1995 +#: ../src/libs/filtering.c:2069 #, c-format msgid "you can't have more than %d sort orders" msgstr "Ви не можете мати більше %d порядків сортування" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "DESC" msgstr "НИЗХ" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "ASC" msgstr "ВИСХ" -#: ../src/libs/filtering.c:2160 +#: ../src/libs/filtering.c:2234 msgid "new rule" msgstr "Нове правило" -#: ../src/libs/filtering.c:2161 +#: ../src/libs/filtering.c:2235 msgid "append new rule to collect images" msgstr "Додає нове правило до колекції зображень" -#: ../src/libs/filtering.c:2172 ../src/libs/tools/filter.c:116 +#: ../src/libs/filtering.c:2246 ../src/libs/tools/filter.c:116 msgid "sort by" msgstr "Сортування" -#: ../src/libs/filtering.c:2180 +#: ../src/libs/filtering.c:2254 msgid "new sort" msgstr "Нове сортування" -#: ../src/libs/filtering.c:2181 +#: ../src/libs/filtering.c:2255 msgid "append new sort to order images" msgstr "Додає нове правило до порядку сортування зображень" -#: ../src/libs/filtering.c:2184 +#: ../src/libs/filtering.c:2258 msgid "revert to a previous set of sort orders" msgstr "Повернутися до попереднього набору порядків сортування" #. we change the tooltip of the reset button here, as we are sure the header is defined now -#: ../src/libs/filtering.c:2234 +#: ../src/libs/filtering.c:2308 msgid "" "reset\n" "ctrl+click to remove pinned rules too" @@ -21374,7 +22091,7 @@ #: ../src/libs/filters/grouping.c:167 ../src/libs/filters/history.c:153 #: ../src/libs/filters/local_copy.c:142 ../src/libs/filters/module_order.c:161 #: ../src/libs/filters/rating.c:199 ../src/libs/filters/rating.c:210 -#: ../src/libs/filters/rating_range.c:325 +#: ../src/libs/filters/rating_range.c:356 msgid "rules" msgstr "правила" @@ -21389,7 +22106,7 @@ "оператор \"або\" (∪): зображення з принаймні однією з вибраних кольорових " "позначок" -#: ../src/libs/filters/filename.c:365 +#: ../src/libs/filters/filename.c:370 msgid "" "enter filename to search.\n" "multiple values can be separated by ','\n" @@ -21401,11 +22118,11 @@ "\n" "Клікніть правою кнопкою миші, щоб отримати наявні імена файлів" -#: ../src/libs/filters/filename.c:376 +#: ../src/libs/filters/filename.c:381 msgid "extension" msgstr "розширення" -#: ../src/libs/filters/filename.c:377 +#: ../src/libs/filters/filename.c:382 msgid "" "enter extension to search with starting dot\n" "multiple values can be separated by ','\n" @@ -21419,7 +22136,7 @@ "\n" "Клікніть правою кнопкою миші, щоб отримати наявні розширення" -#: ../src/libs/filters/filename.c:405 +#: ../src/libs/filters/filename.c:410 msgid "" "click to select filename\n" "ctrl+click to select multiple values" @@ -21427,7 +22144,7 @@ "Клік для вибору імені файлу\n" "Клік з утриманням Ctrl для вибору кількох значень" -#: ../src/libs/filters/filename.c:432 +#: ../src/libs/filters/filename.c:437 msgid "" "click to select extension\n" "ctrl+click to select multiple values" @@ -21435,6 +22152,11 @@ "Клік для вибору розширення файлу\n" "Клік з утриманням Ctrl для вибору кількох значень" +#. the button to close the popup +#: ../src/libs/filters/filename.c:457 +msgid "ok" +msgstr "OK" + #: ../src/libs/filters/grouping.c:141 ../src/libs/filters/grouping.c:169 msgid "ungrouped images" msgstr "зображення без групи" @@ -21446,8 +22168,8 @@ #. predefined selections #: ../src/libs/filters/grouping.c:169 ../src/libs/filters/history.c:38 #: ../src/libs/filters/local_copy.c:38 ../src/libs/filters/module_order.c:155 -#: ../src/libs/filters/rating_range.c:56 ../src/libs/filters/rating_range.c:72 -#: ../src/libs/filters/rating_range.c:109 ../src/libs/filters/ratio.c:68 +#: ../src/libs/filters/rating_range.c:59 ../src/libs/filters/rating_range.c:83 +#: ../src/libs/filters/rating_range.c:131 ../src/libs/filters/ratio.c:68 #: ../src/libs/filters/ratio.c:81 msgid "all images" msgstr "Всі зображення" @@ -21472,7 +22194,7 @@ msgid "filter by images rating" msgstr "Фільтр за рейтингом зображень" -#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:542 +#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:596 #: ../src/libs/tools/ratings.c:56 msgid "ratings" msgstr "Рейтинги" @@ -21481,49 +22203,33 @@ msgid "unstarred only" msgstr "Тільки без зірок" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:60 -#: ../src/libs/filters/rating_range.c:75 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:65 +#: ../src/libs/filters/rating_range.c:89 msgid "rejected only" msgstr "Тільки відхилені" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:58 -#: ../src/libs/filters/rating_range.c:73 ../src/libs/filters/rating_range.c:138 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:62 +#: ../src/libs/filters/rating_range.c:86 ../src/libs/filters/rating_range.c:158 msgid "all except rejected" msgstr "Всі, крім відхилених" -#: ../src/libs/filters/rating_range.c:61 ../src/libs/filters/rating_range.c:76 +#: ../src/libs/filters/rating_range.c:67 ../src/libs/filters/rating_range.c:91 msgid "not rated only" msgstr "Тільки без рейтингу" -#: ../src/libs/filters/rating_range.c:99 ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:131 -#: ../src/libs/filters/rating_range.c:275 -msgid "rejected" -msgstr "Відхилені" - -#: ../src/libs/filters/rating_range.c:101 -#: ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:276 -msgid "not rated" -msgstr "Без рейтингу" - -#: ../src/libs/filters/rating_range.c:117 -msgid "only" -msgstr "тільки" - -#: ../src/libs/filters/rating_range.c:269 +#: ../src/libs/filters/rating_range.c:296 msgid "better" msgstr "покращити" -#: ../src/libs/filters/rating_range.c:270 +#: ../src/libs/filters/rating_range.c:297 msgid "worse" msgstr "погіршити" -#: ../src/libs/filters/rating_range.c:271 +#: ../src/libs/filters/rating_range.c:298 msgid "cap" msgstr "обмежити" -#: ../src/libs/filters/rating_range.c:286 +#: ../src/libs/filters/rating_range.c:313 msgid "rating filter" msgstr "Фільтр по рейтингу" @@ -21562,7 +22268,7 @@ msgid "apply offset and geo-location" msgstr "Застосувати зміщення та геокоординати" -#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1910 +#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1914 msgid "apply geo-location" msgstr "Застосувати геокоординати" @@ -21574,49 +22280,49 @@ "Застосувати зміщення та геокоординати до відповідних зображень\n" "Це подвійна операція: потрібно два Ctrl-z для скасування" -#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1911 +#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1915 msgid "apply geo-location to matching images" msgstr "Застосувати геокоординати до відповідних зображень" -#: ../src/libs/geotagging.c:810 +#: ../src/libs/geotagging.c:809 msgid "GPX file track segments" msgstr "Сегменти файлу GPX" -#: ../src/libs/geotagging.c:830 ../src/libs/geotagging.c:1869 +#: ../src/libs/geotagging.c:831 ../src/libs/geotagging.c:1873 msgid "start time" msgstr "Час початку" -#: ../src/libs/geotagging.c:831 +#: ../src/libs/geotagging.c:832 msgid "end time" msgstr "Кінцевий час" -#: ../src/libs/geotagging.c:832 ../src/libs/geotagging.c:1871 +#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1875 msgid "points" msgstr "Точки" -#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1873 -#: ../src/libs/image.c:463 +#: ../src/libs/geotagging.c:834 ../src/libs/geotagging.c:1877 +#: ../src/libs/image.c:494 msgid "images" msgstr "Зображення" -#: ../src/libs/geotagging.c:926 +#: ../src/libs/geotagging.c:927 msgid "open GPX file" msgstr "Відкрити файл GPX" -#: ../src/libs/geotagging.c:927 ../src/libs/tools/lighttable.c:333 -#: ../src/libs/tools/lighttable.c:402 ../src/views/darkroom.c:2232 +#: ../src/libs/geotagging.c:928 ../src/libs/tools/lighttable.c:330 +#: ../src/libs/tools/lighttable.c:399 ../src/views/darkroom.c:2091 msgid "preview" msgstr "Попередній перегляд" -#: ../src/libs/geotagging.c:940 +#: ../src/libs/geotagging.c:941 msgid "GPS data exchange format" msgstr "Формат обміну даними GPS" -#: ../src/libs/geotagging.c:1739 +#: ../src/libs/geotagging.c:1743 msgid "date/time" msgstr "Дата і час" -#: ../src/libs/geotagging.c:1740 +#: ../src/libs/geotagging.c:1744 msgid "" "enter the new date/time (YYYY:MM:DD hh:mm:ss[.sss])\n" "key in the new numbers or scroll over the cell" @@ -21625,42 +22331,42 @@ "введенням чисел з клавітури або прокручуванням\n" "коліщатка миші над полями вводу" -#: ../src/libs/geotagging.c:1744 +#: ../src/libs/geotagging.c:1748 msgid "original date/time" msgstr "Оригінальні дата і час" -#: ../src/libs/geotagging.c:1748 +#: ../src/libs/geotagging.c:1752 msgid "lock date/time offset value to apply it onto another selection" msgstr "" "Фіксувати значення зміщення дати та часу, щоб застосувати його до іншої " "вибірки" -#: ../src/libs/geotagging.c:1752 +#: ../src/libs/geotagging.c:1756 msgid "date/time offset" msgstr "Зміщення дати і часу" -#: ../src/libs/geotagging.c:1753 +#: ../src/libs/geotagging.c:1757 msgid "offset or difference ([-]dd hh:mm:ss[.sss])" msgstr "Зміщення чи різниця ([-]dd hh:mm:ss[.sss])" #. apply -#: ../src/libs/geotagging.c:1757 +#: ../src/libs/geotagging.c:1761 msgid "apply offset" msgstr "Застосувати зміщення" -#: ../src/libs/geotagging.c:1758 +#: ../src/libs/geotagging.c:1762 msgid "apply offset to selected images" msgstr "Застосувати зміщення до вибраних зображень" -#: ../src/libs/geotagging.c:1761 +#: ../src/libs/geotagging.c:1765 msgid "apply date/time" msgstr "Застосувати дату і час" -#: ../src/libs/geotagging.c:1762 +#: ../src/libs/geotagging.c:1766 msgid "apply the same date/time to selected images" msgstr "Застосувати ті ж самі дату і час до вибраних зображень" -#: ../src/libs/geotagging.c:1772 +#: ../src/libs/geotagging.c:1776 msgid "" "start typing to show a list of permitted values and select your timezone.\n" "press enter to confirm, so that the asterisk * disappears" @@ -21670,24 +22376,24 @@ "Натисніть Enter для підтвердження, щоб зірочка * біля поля вводу зникла." #. gpx -#: ../src/libs/geotagging.c:1815 +#: ../src/libs/geotagging.c:1819 msgid "apply GPX track file..." msgstr "Застосувати файл GPX..." -#: ../src/libs/geotagging.c:1816 +#: ../src/libs/geotagging.c:1820 msgid "parses a GPX file and updates location of selected images" msgstr "Аналізує файл GPX та оновлює геокоординати вибраних зображень" -#: ../src/libs/geotagging.c:1827 +#: ../src/libs/geotagging.c:1831 msgctxt "section" msgid "GPX file" msgstr "Файл GPX" -#: ../src/libs/geotagging.c:1834 +#: ../src/libs/geotagging.c:1838 msgid "select a GPX track file..." msgstr "Вибрати файл GPX..." -#: ../src/libs/geotagging.c:1851 +#: ../src/libs/geotagging.c:1855 msgid "" "list of track segments in the GPX file, for each segment:\n" "- the start date/time in local time (LT)\n" @@ -21703,172 +22409,180 @@ "часового поясу\n" "- більш детальна інформацію про час при наведенні миші на рядок" -#: ../src/libs/geotagging.c:1890 +#: ../src/libs/geotagging.c:1894 msgid "preview images" msgstr "Попередній перегляд зображень" -#: ../src/libs/geotagging.c:1895 +#: ../src/libs/geotagging.c:1899 msgid "show on map matching images" msgstr "Показувати відповідні зображення на мапі" -#: ../src/libs/geotagging.c:1898 +#: ../src/libs/geotagging.c:1902 msgid "select images" msgstr "Вибрати зображення" -#: ../src/libs/geotagging.c:1899 +#: ../src/libs/geotagging.c:1903 msgid "select matching images" msgstr "Вибрати відповідні зображення" -#: ../src/libs/geotagging.c:1907 +#: ../src/libs/geotagging.c:1911 msgid "number of matching images versus selected images" msgstr "Кількість відповідних зображень проти вибраних зображень" -#: ../src/libs/histogram.c:133 +#: ../src/libs/histogram.c:110 msgid "monochromatic" msgstr "Монохроматична" -#: ../src/libs/histogram.c:134 +#: ../src/libs/histogram.c:111 msgid "analogous" msgstr "Аналогова" -#: ../src/libs/histogram.c:135 +#: ../src/libs/histogram.c:112 msgid "analogous complementary" msgstr "Аналогова комплементарна" -#: ../src/libs/histogram.c:136 +#: ../src/libs/histogram.c:113 msgid "complementary" msgstr "Комплементарна" -#: ../src/libs/histogram.c:137 +#: ../src/libs/histogram.c:114 msgid "split complementary" msgstr "Спліт-комплементарна" -#: ../src/libs/histogram.c:138 +#: ../src/libs/histogram.c:115 msgid "dyad" msgstr "Діада" -#: ../src/libs/histogram.c:139 +#: ../src/libs/histogram.c:116 msgid "triad" msgstr "Тріада" -#: ../src/libs/histogram.c:140 +#: ../src/libs/histogram.c:117 msgid "tetrad" msgstr "Тетрада" -#: ../src/libs/histogram.c:146 +#: ../src/libs/histogram.c:123 msgid "vectorscope" msgstr "Вектороскоп" -#: ../src/libs/histogram.c:147 +#: ../src/libs/histogram.c:124 msgid "waveform" msgstr "Waveform" -#: ../src/libs/histogram.c:148 +#: ../src/libs/histogram.c:125 msgid "RGB parade" msgstr "RGB-парад" -#: ../src/libs/histogram.c:149 ../src/libs/histogram.c:2309 +#: ../src/libs/histogram.c:126 ../src/libs/histogram.c:2622 msgid "histogram" msgstr "Гістограма" -#: ../src/libs/histogram.c:243 +#: ../src/libs/histogram.c:218 msgid "scopes" msgstr "Гістограми" -#: ../src/libs/histogram.c:1542 +#: ../src/libs/histogram.c:757 +msgid "" +"unsupported vectorscope profile selected, it will be replaced with linear " +"Rec2020" +msgstr "" +"Вибрано непідтримуваний профіль вектороскопа, його буде замінено лінійним " +"Rec2020" + +#: ../src/libs/histogram.c:1715 msgid "scroll to coarse-rotate" msgstr "Прокрутка для грубого обертання" -#: ../src/libs/histogram.c:1543 +#: ../src/libs/histogram.c:1716 msgid "ctrl+scroll to fine rotate" msgstr "Ctrl+прокрутка для точного обертання" -#: ../src/libs/histogram.c:1544 +#: ../src/libs/histogram.c:1717 msgid "shift+scroll to change width" msgstr "Shift+прокрутка для зміни ширини" -#: ../src/libs/histogram.c:1545 +#: ../src/libs/histogram.c:1718 msgid "alt+scroll to cycle" msgstr "Alt+прокрутка для перебору опцій" -#: ../src/libs/histogram.c:1556 +#: ../src/libs/histogram.c:1732 msgid "drag to change black point" msgstr "Перетягніть, щоб змінити точку чорного" -#: ../src/libs/histogram.c:1557 ../src/libs/histogram.c:1564 +#: ../src/libs/histogram.c:1733 ../src/libs/histogram.c:1740 msgid "double-click resets" msgstr "Подвійний клік для скидання" -#: ../src/libs/histogram.c:1563 +#: ../src/libs/histogram.c:1739 msgid "drag to change exposure" msgstr "Перетягніть, щоб змінити експозицію" -#: ../src/libs/histogram.c:1725 ../src/libs/histogram.c:1765 +#: ../src/libs/histogram.c:1923 ../src/libs/histogram.c:1965 msgid "set scale to linear" msgstr "Встановити лінійну шкалу" -#: ../src/libs/histogram.c:1730 ../src/libs/histogram.c:1770 +#: ../src/libs/histogram.c:1928 ../src/libs/histogram.c:1970 msgid "set scale to logarithmic" msgstr "Встановити логарифмічну шкалу" -#: ../src/libs/histogram.c:1746 +#: ../src/libs/histogram.c:1946 msgid "set scope to vertical" msgstr "Встановити гістограму вертикально" -#: ../src/libs/histogram.c:1751 +#: ../src/libs/histogram.c:1951 msgid "set scope to horizontal" msgstr "Встановити гістограму горизонтально" -#: ../src/libs/histogram.c:1780 +#: ../src/libs/histogram.c:1980 msgid "set view to AzBz" msgstr "Встановити тип перегляду на AzBz" -#: ../src/libs/histogram.c:1786 +#: ../src/libs/histogram.c:1986 msgid "set view to RYB" msgstr "Встановити тип перегляду на RYB" -#: ../src/libs/histogram.c:1792 +#: ../src/libs/histogram.c:1992 msgid "set view to u*v*" msgstr "Встановити тип перегляду на u*v*" -#: ../src/libs/histogram.c:2312 ../src/libs/histogram.c:2370 +#: ../src/libs/histogram.c:2625 ../src/libs/histogram.c:2691 msgid "cycle histogram modes" msgstr "Цикл по режимах гістограми" -#: ../src/libs/histogram.c:2316 ../src/libs/histogram.c:2371 +#: ../src/libs/histogram.c:2630 ../src/libs/histogram.c:2693 msgid "hide histogram" msgstr "Приховати гістограму" -#: ../src/libs/histogram.c:2372 ../src/libs/histogram.c:2401 +#: ../src/libs/histogram.c:2696 ../src/libs/histogram.c:2729 msgid "switch histogram view" msgstr "Перемикати режим гістограми" -#: ../src/libs/histogram.c:2379 +#: ../src/libs/histogram.c:2704 msgid "toggle blue channel" msgstr "Перемикає видимість каналу синього" -#: ../src/libs/histogram.c:2381 ../src/libs/histogram.c:2389 -#: ../src/libs/histogram.c:2397 +#: ../src/libs/histogram.c:2706 ../src/libs/histogram.c:2715 +#: ../src/libs/histogram.c:2724 msgid "toggle colors" msgstr "Перемикає кольори" -#: ../src/libs/histogram.c:2387 +#: ../src/libs/histogram.c:2713 msgid "toggle green channel" msgstr "Перемикає видимість каналу зеленого" -#: ../src/libs/histogram.c:2395 +#: ../src/libs/histogram.c:2722 msgid "toggle red channel" msgstr "Перемикає видимість каналу червоного" -#: ../src/libs/histogram.c:2405 +#: ../src/libs/histogram.c:2734 msgid "cycle vectorscope types" msgstr "Перебирати типи вектороскопа" -#: ../src/libs/histogram.c:2413 +#: ../src/libs/histogram.c:2745 msgid "color harmonies" msgstr "Гармонії кольорів" -#: ../src/libs/histogram.c:2425 +#: ../src/libs/histogram.c:2759 msgid "cycle color harmonies" msgstr "Перебирання гармоній кольорів" @@ -21912,10 +22626,18 @@ msgid "mask mode" msgstr "Режим маски" +#: ../src/libs/history.c:949 +msgid "blend mode" +msgstr "Режим змішування" + #: ../src/libs/history.c:951 msgid "blend operation" msgstr "Операція змішування" +#: ../src/libs/history.c:953 +msgid "blend fulcrum" +msgstr "Опорна точка змішування" + #: ../src/libs/history.c:961 msgid "mask blur" msgstr "Розмиття маски" @@ -21959,198 +22681,198 @@ msgid "parametric input mask:" msgstr "Параметрична маска входу:" -#: ../src/libs/history.c:1323 +#: ../src/libs/history.c:1322 msgid "delete image's history?" msgstr "Видалити історію зображення?" -#: ../src/libs/history.c:1324 +#: ../src/libs/history.c:1323 msgid "do you really want to clear history of current image?" msgstr "Ви дійсно хочете очистити історію поточного зображення?" -#: ../src/libs/image.c:72 -msgid "selected image[s]" -msgstr "Дії з вибраними зображеннями" +#: ../src/libs/image.c:74 +msgid "actions on selection" +msgstr "Дії з вибраним" -#: ../src/libs/image.c:284 +#: ../src/libs/image.c:302 msgid "delete (trash)" msgstr "Видалити (в кошик)" -#: ../src/libs/image.c:287 +#: ../src/libs/image.c:305 msgid "physically delete from disk (using trash if possible)" msgstr "" "Фізично видалити з диску (використовуючи сміттєвий кошик, якщо це можливо)" -#: ../src/libs/image.c:288 +#: ../src/libs/image.c:306 msgid "physically delete from disk immediately" msgstr "Фізично видалити з диску відразу ж" -#: ../src/libs/image.c:474 ../src/libs/modulegroups.c:3811 -#: ../src/libs/styles.c:876 +#: ../src/libs/image.c:506 ../src/libs/modulegroups.c:3813 +#: ../src/libs/styles.c:880 msgid "remove" msgstr "Вилучити" -#: ../src/libs/image.c:475 +#: ../src/libs/image.c:508 msgid "remove images from the image library, without deleting" msgstr "" "Вилучити зображення з бібліотеки зображень, без фізичного видалення файлів" -#: ../src/libs/image.c:483 +#: ../src/libs/image.c:517 msgid "move..." msgstr "Перемістити..." -#: ../src/libs/image.c:484 +#: ../src/libs/image.c:519 msgid "move to other folder" msgstr "Перемістити в інший каталог" -#: ../src/libs/image.c:487 +#: ../src/libs/image.c:522 msgid "copy..." msgstr "Копіювати..." -#: ../src/libs/image.c:488 +#: ../src/libs/image.c:524 msgid "copy to other folder" msgstr "Скопіювати в інший каталог" -#: ../src/libs/image.c:491 +#: ../src/libs/image.c:528 msgid "create HDR" msgstr "Створити HDR" -#: ../src/libs/image.c:492 +#: ../src/libs/image.c:530 msgid "create a high dynamic range image from selected shots" msgstr "Створити HDR зображення з вибраних знімків" -#: ../src/libs/image.c:496 +#: ../src/libs/image.c:535 msgid "add a duplicate to the image library, including its history stack" msgstr "Додати дублікат до бібліотеки зображень, включно з історією змін" -#: ../src/libs/image.c:502 ../src/libs/image.c:505 +#: ../src/libs/image.c:542 ../src/libs/image.c:547 msgid "rotate selected images 90 degrees CCW" msgstr "Повернути вибрані зображення на 90 градусів проти годинникової стрілки" -#: ../src/libs/image.c:509 ../src/libs/image.c:512 +#: ../src/libs/image.c:553 ../src/libs/image.c:558 msgid "rotate selected images 90 degrees CW" msgstr "Повернути вибрані зображення на 90 градусів за годинниковою стрілкою" -#: ../src/libs/image.c:514 +#: ../src/libs/image.c:561 msgid "reset rotation" msgstr "Скинути обертання" -#: ../src/libs/image.c:515 +#: ../src/libs/image.c:563 msgid "reset rotation to EXIF data" msgstr "Скинути обертання до вказаного в EXIF" -#: ../src/libs/image.c:518 +#: ../src/libs/image.c:566 msgid "copy locally" msgstr "Локальна копія" -#: ../src/libs/image.c:519 +#: ../src/libs/image.c:568 msgid "copy the image locally" msgstr "Зробити локальну копію" -#: ../src/libs/image.c:522 +#: ../src/libs/image.c:572 msgid "resync local copy" msgstr "Синхронізувати" -#: ../src/libs/image.c:523 +#: ../src/libs/image.c:574 msgid "synchronize the image's XMP and remove the local copy" msgstr "Синхронізувати XMP зображення і видалити локальну копію" -#: ../src/libs/image.c:526 +#: ../src/libs/image.c:578 msgctxt "selected images action" msgid "group" msgstr "Згрупувати" -#: ../src/libs/image.c:527 +#: ../src/libs/image.c:580 msgid "add selected images to expanded group or create a new one" msgstr "Додати вибрані зображення в групу чи створити нову" -#: ../src/libs/image.c:531 +#: ../src/libs/image.c:584 msgid "ungroup" msgstr "Розгрупувати" -#: ../src/libs/image.c:532 +#: ../src/libs/image.c:586 msgid "remove selected images from the group" msgstr "Видалити вибрані зображення з групи" -#: ../src/libs/image.c:544 +#: ../src/libs/image.c:598 msgid "select ratings metadata" msgstr "Вибрати метадані з інформацією про рейтинги" -#: ../src/libs/image.c:550 +#: ../src/libs/image.c:605 msgid "colors" msgstr "Кольори" -#: ../src/libs/image.c:552 +#: ../src/libs/image.c:607 msgid "select colors metadata" msgstr "Вибрати метадані з інформацією про кольорові позначки" -#: ../src/libs/image.c:560 +#: ../src/libs/image.c:616 msgid "select tags metadata" msgstr "Вибрати метадані, що містять теги" -#: ../src/libs/image.c:568 +#: ../src/libs/image.c:625 msgid "select geo tags metadata" msgstr "Вибрати метадані, що містять геоінформацію" -#: ../src/libs/image.c:576 +#: ../src/libs/image.c:636 msgid "select darktable metadata (from metadata editor module)" msgstr "Вибрати метадані darktable (з модуля редактора метаданих)" -#: ../src/libs/image.c:584 +#: ../src/libs/image.c:649 msgid "set the selected image as source of metadata" msgstr "Встановити вибране зображення як джерело метаданих" -#: ../src/libs/image.c:589 +#: ../src/libs/image.c:656 msgid "paste selected metadata on selected images" msgstr "Вставити вибрані метадані у вибрані зображення" -#: ../src/libs/image.c:593 +#: ../src/libs/image.c:661 msgid "clear selected metadata on selected images" msgstr "Очистити вибрані метадані у вибраних зображеннях" -#: ../src/libs/image.c:598 +#: ../src/libs/image.c:667 msgid "how to handle existing metadata" msgstr "Як поводитися з наявними метаданими" -#: ../src/libs/image.c:601 +#: ../src/libs/image.c:670 msgid "merge" msgstr "Об'єднати" -#: ../src/libs/image.c:605 +#: ../src/libs/image.c:675 msgid "update image information to match changes to file" msgstr "Оновити інформацію про зображення відповідно до змін у файлі" -#: ../src/libs/image.c:609 +#: ../src/libs/image.c:680 msgid "set selection as monochrome images and activate monochrome workflow" msgstr "" "Позначити вибрані зображення як монохромні і активувати монохромний робочий " "процес" -#: ../src/libs/image.c:613 +#: ../src/libs/image.c:684 msgid "set selection as color images" msgstr "Позначити вибрані зображення як кольорові" -#: ../src/libs/image.c:625 +#: ../src/libs/image.c:696 msgid "duplicate virgin" msgstr "Зробити дублікат нередагованого зображення" -#: ../src/libs/import.c:263 +#: ../src/libs/import.c:264 #, c-format msgid "device \"%s\" connected on port \"%s\"." msgstr "Пристрій \"%s\" приєднано до порту \"%s\"." -#: ../src/libs/import.c:273 ../src/libs/import.c:334 ../src/libs/import.c:1692 +#: ../src/libs/import.c:274 ../src/libs/import.c:335 ../src/libs/import.c:1701 msgid "copy & import from camera" msgstr "Копіювати й імпортувати з камери" -#: ../src/libs/import.c:284 ../src/libs/import.c:336 +#: ../src/libs/import.c:285 ../src/libs/import.c:337 msgid "tethered shoot" msgstr "Дистанційна зйомка" -#: ../src/libs/import.c:291 ../src/libs/import.c:337 +#: ../src/libs/import.c:292 ../src/libs/import.c:338 msgid "unmount camera" msgstr "Розмонтувати камеру" -#: ../src/libs/import.c:312 +#: ../src/libs/import.c:313 msgid "" "camera is locked by another application\n" "make sure it is no longer mounted\n" @@ -22160,15 +22882,15 @@ "Переконайтеся, що вона більше не змонтована в операційній системі,\n" "або закрийте блокуючу програму." -#: ../src/libs/import.c:315 +#: ../src/libs/import.c:316 msgid "tethering and importing is disabled for this camera" msgstr "Дистанційне керування та імпорт для цієї камери вимкнені" -#: ../src/libs/import.c:317 ../src/libs/import.c:335 +#: ../src/libs/import.c:318 ../src/libs/import.c:336 msgid "mount camera" msgstr "Змонтувати камеру" -#: ../src/libs/import.c:747 +#: ../src/libs/import.c:754 #, c-format msgid "%d image out of %d selected" msgid_plural "%d images out of %d selected" @@ -22176,25 +22898,25 @@ msgstr[1] "вибрано %d зображення з %d" msgstr[2] "вибрано %d зображень з %d" -#: ../src/libs/import.c:1039 +#: ../src/libs/import.c:1046 msgid "you can't delete the selected place" msgstr "Ви не можете видалити вибране місце" -#: ../src/libs/import.c:1153 +#: ../src/libs/import.c:1160 msgid "choose the root of the folder tree below" msgstr "Виберіть корінь дерева папок нижче" -#: ../src/libs/import.c:1156 +#: ../src/libs/import.c:1163 msgid "places" msgstr "Місця" -#: ../src/libs/import.c:1162 +#: ../src/libs/import.c:1169 msgid "restore all default places you have removed by right-click" msgstr "" "Відновити всі місця за замовчуванням, які ви видалили, клікнувши правою " "кнопкою миші" -#: ../src/libs/import.c:1167 +#: ../src/libs/import.c:1174 msgid "" "add a custom place\n" "\n" @@ -22204,79 +22926,107 @@ "\n" "Клікніть правою кнопкою миші на місці, щоб видалити його" -#: ../src/libs/import.c:1174 +#: ../src/libs/import.c:1181 msgid "you can add custom places using the plus icon" msgstr "Ви можете додати власні місця за допомогою значка з плюсом" -#: ../src/libs/import.c:1199 +#: ../src/libs/import.c:1206 msgid "select a folder to see the content" msgstr "Виберіть каталог, щоб переглянути його вміст" -#: ../src/libs/import.c:1202 +#: ../src/libs/import.c:1209 msgid "folders" msgstr "Каталоги" -#: ../src/libs/import.c:1272 +#: ../src/libs/import.c:1279 msgid "home" msgstr "Домівка" -#: ../src/libs/import.c:1284 +#: ../src/libs/import.c:1291 msgid "pictures" msgstr "Зображення" -#: ../src/libs/import.c:1548 +#: ../src/libs/import.c:1557 msgid "mark already imported pictures" msgstr "Позначає вже імпортовані зображення" -#: ../src/libs/import.c:1562 +#: ../src/libs/import.c:1571 msgid "modified" msgstr "Змінено" -#: ../src/libs/import.c:1567 +#: ../src/libs/import.c:1576 msgid "file 'modified date/time', may be different from 'Exif date/time'" msgstr "'дата/час зміни файлу', може відрізнятись від 'дата/час із Exif'" -#: ../src/libs/import.c:1579 +#: ../src/libs/import.c:1588 msgid "show/hide thumbnails" msgstr "Показати/приховати мініатюри" -#: ../src/libs/import.c:1649 +#: ../src/libs/import.c:1658 msgid "naming rules" msgstr "Правила іменування" -#: ../src/libs/import.c:1690 +#: ../src/libs/import.c:1699 msgid "add to library" msgstr "Додати до бібліотеки" -#: ../src/libs/import.c:1691 +#: ../src/libs/import.c:1700 msgid "copy & import" msgstr "Копіювати й імпортувати" -#: ../src/libs/import.c:1730 +#: ../src/libs/import.c:1740 msgid "select new" msgstr "Вибрати нові" -#: ../src/libs/import.c:1773 +#: ../src/libs/import.c:1783 msgid "please wait while prefetching the list of images from camera..." msgstr "Зачекайте, поки попередньо отримується список зображень з камери..." -#: ../src/libs/import.c:1907 +#: ../src/libs/import.c:1922 msgid "invalid override date/time format" msgstr "Недійсний формат замінної дати чи часу" -#: ../src/libs/import.c:2022 +#: ../src/libs/import.c:1986 +msgid "import base directory" +msgstr "Базовий каталог імпорту" + +#: ../src/libs/import.c:1987 +msgid "" +"before copying images to the darktable base directory make sure it is " +"defined as you prefer.\n" +"further information can be found in the darktable manual.\n" +"\n" +"inspect darktable preferences -> import.\n" +"check and possibly correct the 'base directory naming pattern'" +msgstr "" +"Перед копіюванням зображень до базового каталогу darktable переконайтеся, що " +"його визначено так, як вам подобається.\n" +"Додаткову інформацію можна знайти в посібнику користувача darktable.\n" +"\n" +"Перевірте налаштування darktable -> Імпорт.\n" +"Перевірте та, можливо, виправте \"Шаблон іменування базового каталогу\"" + +#: ../src/libs/import.c:1991 +msgid "_come back & check" +msgstr "Повернутися й перевірити" + +#: ../src/libs/import.c:1991 +msgid "_understood & done" +msgstr "Зрозуміло" + +#: ../src/libs/import.c:2057 msgid "add to library..." msgstr "Додати до бібліотеки..." -#: ../src/libs/import.c:2023 +#: ../src/libs/import.c:2058 msgid "add existing images to the library" msgstr "Додати існуючі зображення до бібліотеки" -#: ../src/libs/import.c:2029 +#: ../src/libs/import.c:2064 msgid "copy & import..." msgstr "Копіювати й імпортувати..." -#: ../src/libs/import.c:2030 +#: ../src/libs/import.c:2065 msgid "" "copy and optionally rename images before adding them to the library\n" "patterns can be defined to rename the images and specify the destination " @@ -22287,15 +23037,15 @@ "Каталог призначення та правило перейменування зображень задаються шаблонами." #. collapsible section -#: ../src/libs/import.c:2053 +#: ../src/libs/import.c:2088 msgid "parameters" msgstr "Параметри" -#: ../src/libs/ioporder.c:204 +#: ../src/libs/ioporder.c:202 msgid "v3.0 for RAW input (default)" msgstr "v3.0 для RAW (умовчання)" -#: ../src/libs/ioporder.c:210 +#: ../src/libs/ioporder.c:208 msgid "v3.0 for JPEG/non-RAW input" msgstr "v3.0 для JPEG/не-RAW" @@ -22311,11 +23061,11 @@ msgid "nothing to save" msgstr "Нічого зберігати" -#: ../src/libs/lib.c:1105 +#: ../src/libs/lib.c:1106 msgid "show module" msgstr "Показати модуль" -#: ../src/libs/lib.c:1430 +#: ../src/libs/lib.c:1431 msgid "utility module" msgstr "Сервісний модуль" @@ -22549,169 +23299,110 @@ msgid "map settings" msgstr "Налаштування мапи" -#: ../src/libs/map_settings.c:107 +#: ../src/libs/map_settings.c:89 msgid "map source" msgstr "Джерело мапи" -#: ../src/libs/map_settings.c:112 +#: ../src/libs/map_settings.c:90 msgid "select the source of the map. some entries might not work" msgstr "" "Вибрати джерело картографічних даних. Деякі джерела можуть бути недоступними." -#: ../src/libs/masks.c:107 +#: ../src/libs/masks.c:108 msgid "feather" msgstr "Розтушовка" -#: ../src/libs/masks.c:114 -msgid "hardness (relative)" -msgstr "Жорсткість (відносна)" - -#: ../src/libs/masks.c:115 -msgid "hardness (absolute)" -msgstr "Жорсткість (абсолютна)" - -#: ../src/libs/masks.c:116 -msgid "opacity (relative)" -msgstr "Непрозорість (відносна)" - -#: ../src/libs/masks.c:117 -msgid "opacity (absolute)" -msgstr "Непрозорість (абсолютна)" - -#: ../src/libs/masks.c:118 -msgid "brush size (relative)" -msgstr "Розмір пензля (відносний)" - -#: ../src/libs/masks.c:121 -msgid "low" -msgstr "слабке" - -#: ../src/libs/masks.c:122 -msgid "medium" -msgstr "середнє" - -#: ../src/libs/masks.c:123 -msgid "high" -msgstr "сильне" - -#: ../src/libs/masks.c:381 +#: ../src/libs/masks.c:357 #, c-format msgid "group #%d" msgstr "Група #%d" -#: ../src/libs/masks.c:1081 +#: ../src/libs/masks.c:1097 msgid "duplicate this shape" msgstr "Зробити дублікат цієї фігури" -#: ../src/libs/masks.c:1085 +#: ../src/libs/masks.c:1101 msgid "delete this shape" msgstr "Видалити цю фігуру" -#: ../src/libs/masks.c:1091 +#: ../src/libs/masks.c:1107 msgid "delete group" msgstr "Видалити групу" -#: ../src/libs/masks.c:1098 +#: ../src/libs/masks.c:1114 msgid "remove from group" msgstr "Видалити з групи" -#: ../src/libs/masks.c:1106 +#: ../src/libs/masks.c:1122 msgid "group the forms" msgstr "Групувати фігури" -#: ../src/libs/masks.c:1114 +#: ../src/libs/masks.c:1130 msgid "use inverted shape" msgstr "Інверсія фігури" -#: ../src/libs/masks.c:1121 +#: ../src/libs/masks.c:1134 msgid "mode: union" msgstr "Режим: об'єднання" -#: ../src/libs/masks.c:1127 +#: ../src/libs/masks.c:1136 msgid "mode: intersection" msgstr "Режим: перетин" -#: ../src/libs/masks.c:1133 +#: ../src/libs/masks.c:1138 msgid "mode: difference" msgstr "Режим: різниця" -#: ../src/libs/masks.c:1139 +#: ../src/libs/masks.c:1140 msgid "mode: sum" msgstr "Режим: сума" -#: ../src/libs/masks.c:1145 +#: ../src/libs/masks.c:1142 msgid "mode: exclusion" msgstr "Режим: виключення" -#: ../src/libs/masks.c:1164 +#: ../src/libs/masks.c:1158 msgid "cleanup unused shapes" msgstr "Прибрати невикористані фігури" -#: ../src/libs/masks.c:1811 +#: ../src/libs/masks.c:1807 msgid "created shapes" msgstr "Створені фігури" -#: ../src/libs/masks.c:1904 ../src/libs/masks.c:1919 ../src/libs/masks.c:1939 -#: ../src/libs/masks.c:1955 +#: ../src/libs/masks.c:1900 ../src/libs/masks.c:1915 ../src/libs/masks.c:1929 +#: ../src/libs/masks.c:1933 msgid "properties" msgstr "Параметри" -#: ../src/libs/masks.c:1907 +#: ../src/libs/masks.c:1903 msgid "no shapes selected" msgstr "Не вибрано жодної фігури" -#: ../src/libs/masks.c:1940 +#: ../src/libs/masks.c:1929 msgid "pressure" msgstr "Натискання" -#: ../src/libs/masks.c:1941 -msgid "" -"pen pressure control for brush masks\n" -"'off': pressure reading ignored,\n" -"'hardness'/'opacity'/'brush size': pressure reading controls specified " -"attribute,\n" -"'absolute'/'relative': pressure reading is taken directly as attribute value " -"or multiplied with pre-defined setting." -msgstr "" -"Контроль натискання пера при малюванні масок\n" -"'Вимкнено': сила натискання ігнорується,\n" -"'Жорсткість'/'Непрозорість'/'Розмір пензля': сила натискання контролює " -"вказаний атрибут,\n" -"'Відносна/Абсолютна': сила натискання приймається безпосередньо як значення " -"атрибута\n" -"або помножується із заздалегідь визначеним параметром." - -#: ../src/libs/masks.c:1956 +#: ../src/libs/masks.c:1933 msgid "smoothing" msgstr "Згладжування" -#: ../src/libs/masks.c:1957 -msgid "" -"smoothing of brush strokes\n" -"stronger smoothing leads to fewer nodes and easier editing but with lower " -"control of accuracy." -msgstr "" -"Згладжування мазків\n" -"Сильніше згладжування призводить до меншої кількості вузлів і легшого " -"редагування, але з меншим контролем точності." - -#: ../src/libs/metadata.c:64 +#: ../src/libs/metadata.c:60 msgid "metadata editor" msgstr "Редактор метаданих" -#: ../src/libs/metadata.c:206 ../src/libs/metadata.c:496 -msgid "<leave unchanged>" -msgstr "<залишити незмінним>" - -#: ../src/libs/metadata.c:630 ../src/libs/metadata_view.c:1192 +#: ../src/libs/metadata.c:459 ../src/libs/metadata_view.c:1219 msgid "metadata settings" msgstr "Налаштування метаданих" -#: ../src/libs/metadata.c:683 ../src/libs/metadata_view.c:1237 +#: ../src/libs/metadata.c:461 ../src/libs/metadata_view.c:1221 +msgid "_default" +msgstr "Замовчування" + +#: ../src/libs/metadata.c:516 ../src/libs/metadata_view.c:1267 msgid "visible" msgstr "Видимі" -#: ../src/libs/metadata.c:688 +#: ../src/libs/metadata.c:524 msgid "" "tick if the corresponding metadata is of interest for you\n" "it will be visible from metadata editor, collection and import module\n" @@ -22721,19 +23412,19 @@ "Вони будуть видимі з редактора метаданих, колекцій і модуля імпорту.\n" "Вони також будуть експортуватися." -#: ../src/libs/metadata.c:693 ../src/libs/tagging.c:1683 -#: ../src/libs/tagging.c:1827 +#: ../src/libs/metadata.c:529 ../src/libs/tagging.c:1705 +#: ../src/libs/tagging.c:1854 msgid "private" msgstr "Приватно" -#: ../src/libs/metadata.c:698 +#: ../src/libs/metadata.c:534 msgid "" "tick if you want to keep this information private (not exported with images)" msgstr "" "Поставте галочку, якщо хочете залишити цю інформацію приватною (не " "експортувати із зображеннями)" -#: ../src/libs/metadata.c:857 +#: ../src/libs/metadata.c:691 msgid "" "metadata text\n" "ctrl+enter inserts a new line (caution, may not be compatible with standard " @@ -22749,153 +23440,165 @@ "У такому випадку клік правою кнопкою дає можливість вибрати щось із них.\n" "Натисніть клавішу Escape, щоб вийти зі спливного вікна" -#: ../src/libs/metadata.c:902 +#: ../src/libs/metadata.c:736 msgid "write metadata for selected images" msgstr "Записати метадані для вибраних зображень" +#: ../src/libs/metadata.c:737 +msgid "cancel" +msgstr "Скасувати" + +#: ../src/libs/metadata.c:738 +msgid "ignore changed metadata" +msgstr "Ігнорувати змінені метадані" + #. <title>\0<description>\0<rights>\0<creator>\0<publisher> -#: ../src/libs/metadata.c:958 +#: ../src/libs/metadata.c:793 msgid "CC BY" msgstr "CC BY" -#: ../src/libs/metadata.c:959 +#: ../src/libs/metadata.c:794 msgid "Creative Commons Attribution (CC BY)" msgstr "Creative Commons Attribution (CC BY)" -#: ../src/libs/metadata.c:960 +#: ../src/libs/metadata.c:795 msgid "CC BY-SA" msgstr "CC BY-SA" -#: ../src/libs/metadata.c:961 +#: ../src/libs/metadata.c:796 msgid "Creative Commons Attribution-ShareAlike (CC BY-SA)" msgstr "Creative Commons Attribution-ShareAlike (CC BY-SA)" -#: ../src/libs/metadata.c:962 +#: ../src/libs/metadata.c:797 msgid "CC BY-ND" msgstr "CC BY-ND" -#: ../src/libs/metadata.c:963 +#: ../src/libs/metadata.c:798 msgid "Creative Commons Attribution-NoDerivs (CC BY-ND)" msgstr "Creative Commons Attribution-NoDerivs (CC BY-ND)" -#: ../src/libs/metadata.c:964 +#: ../src/libs/metadata.c:799 msgid "CC BY-NC" msgstr "CC BY-NC" -#: ../src/libs/metadata.c:965 +#: ../src/libs/metadata.c:800 msgid "Creative Commons Attribution-NonCommercial (CC BY-NC)" msgstr "Creative Commons Attribution-NonCommercial (CC BY-NC)" -#: ../src/libs/metadata.c:966 +#: ../src/libs/metadata.c:801 msgid "CC BY-NC-SA" msgstr "CC BY-NC-SA" -#: ../src/libs/metadata.c:967 +#: ../src/libs/metadata.c:802 msgid "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" msgstr "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" -#: ../src/libs/metadata.c:968 +#: ../src/libs/metadata.c:803 msgid "CC BY-NC-ND" msgstr "CC BY-NC-ND" -#: ../src/libs/metadata.c:969 +#: ../src/libs/metadata.c:804 msgid "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" msgstr "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" -#: ../src/libs/metadata.c:970 ../src/libs/metadata.c:971 +#: ../src/libs/metadata.c:805 ../src/libs/metadata.c:806 msgid "all rights reserved" msgstr "Всі права зберігаються" #. internal -#: ../src/libs/metadata_view.c:123 +#: ../src/libs/metadata_view.c:125 msgid "filmroll" msgstr "Плівка" -#: ../src/libs/metadata_view.c:125 +#: ../src/libs/metadata_view.c:127 msgid "group id" msgstr "Id групи" -#: ../src/libs/metadata_view.c:127 +#: ../src/libs/metadata_view.c:129 msgid "version" msgstr "Версія" -#: ../src/libs/metadata_view.c:130 +#: ../src/libs/metadata_view.c:132 msgid "import timestamp" msgstr "Час імпорту" -#: ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:133 msgid "change timestamp" msgstr "Час зміни" -#: ../src/libs/metadata_view.c:132 +#: ../src/libs/metadata_view.c:134 msgid "export timestamp" msgstr "Час експорту" -#: ../src/libs/metadata_view.c:133 +#: ../src/libs/metadata_view.c:135 msgid "print timestamp" msgstr "Час друку" -#: ../src/libs/metadata_view.c:134 +#: ../src/libs/metadata_view.c:136 msgid "flags" msgstr "Прапорці" -#: ../src/libs/metadata_view.c:144 +#: ../src/libs/metadata_view.c:146 +msgid "35mm equiv focal length" +msgstr "35мм фокусна відстань" + +#: ../src/libs/metadata_view.c:148 msgid "focus distance" msgstr "Дистанція фокусування" -#: ../src/libs/metadata_view.c:146 +#: ../src/libs/metadata_view.c:150 msgid "datetime" msgstr "Дата і час" -#: ../src/libs/metadata_view.c:149 +#: ../src/libs/metadata_view.c:153 msgid "export width" msgstr "Ширина експорту" -#: ../src/libs/metadata_view.c:150 +#: ../src/libs/metadata_view.c:154 msgid "export height" msgstr "Висота експорту" -#: ../src/libs/metadata_view.c:158 +#: ../src/libs/metadata_view.c:162 msgid "longitude" msgstr "Довгота" -#: ../src/libs/metadata_view.c:159 +#: ../src/libs/metadata_view.c:163 msgid "elevation" msgstr "Висота" -#: ../src/libs/metadata_view.c:163 +#: ../src/libs/metadata_view.c:167 msgid "categories" msgstr "Категорії" -#: ../src/libs/metadata_view.c:170 +#: ../src/libs/metadata_view.c:174 msgid "image information" msgstr "Інформація про зображення" -#: ../src/libs/metadata_view.c:330 +#: ../src/libs/metadata_view.c:334 msgid "unused/deprecated" msgstr "Не використовується/застарілий" -#: ../src/libs/metadata_view.c:331 +#: ../src/libs/metadata_view.c:335 msgid "LDR" msgstr "LDR" -#: ../src/libs/metadata_view.c:334 +#: ../src/libs/metadata_view.c:338 msgid "marked for deletion" msgstr "Позначено для видалення" -#: ../src/libs/metadata_view.c:335 +#: ../src/libs/metadata_view.c:339 msgid "auto-applying presets applied" msgstr "Застосовано пресети автоматичного застосування" -#: ../src/libs/metadata_view.c:337 +#: ../src/libs/metadata_view.c:341 msgid "has .txt" msgstr "Має .txt" -#: ../src/libs/metadata_view.c:338 +#: ../src/libs/metadata_view.c:342 msgid "has .wav" msgstr "Має .wav" -#: ../src/libs/metadata_view.c:356 +#: ../src/libs/metadata_view.c:360 #, c-format msgid "image has %d star" msgid_plural "image has %d stars" @@ -22903,16 +23606,16 @@ msgstr[1] "Зображення має %d зірки" msgstr[2] "Зображення має %d зірок" -#: ../src/libs/metadata_view.c:432 +#: ../src/libs/metadata_view.c:436 #, c-format msgid "loader: %s" msgstr "Завантажувач: %s" -#: ../src/libs/metadata_view.c:623 +#: ../src/libs/metadata_view.c:626 msgid "<various values>" msgstr "<різні значення>" -#: ../src/libs/metadata_view.c:636 +#: ../src/libs/metadata_view.c:639 #, c-format msgid "" "double-click to jump to film roll\n" @@ -22921,32 +23624,28 @@ "Подвійний клік для переходу до плівки\n" "%s" -#: ../src/libs/metadata_view.c:728 +#: ../src/libs/metadata_view.c:731 #, c-format msgid "%+.2f EV" msgstr "%+.2f EV" -#: ../src/libs/metadata_view.c:735 -#, c-format -msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" -msgstr "%.1f мм (%.1f мм еквівалент, Кроп %.1f)" - -#: ../src/libs/metadata_view.c:740 +#: ../src/libs/metadata_view.c:737 ../src/libs/metadata_view.c:749 +#: ../src/libs/metadata_view.c:754 #, c-format msgid "%.1f mm" msgstr "%.1f мм" -#: ../src/libs/metadata_view.c:751 +#: ../src/libs/metadata_view.c:778 #, c-format msgid "infinity" msgstr "нескінченність" -#: ../src/libs/metadata_view.c:755 +#: ../src/libs/metadata_view.c:782 #, c-format msgid "%.2f m" msgstr "%.2f м" -#: ../src/libs/metadata_view.c:1232 +#: ../src/libs/metadata_view.c:1262 msgid "" "drag and drop one row at a time until you get the desired order\n" "untick to hide metadata which are not of interest for you\n" @@ -22956,7 +23655,7 @@ "Зніміть позначку, щоб приховати метадані, які вас не цікавлять.\n" "Якщо потрібні різні налаштування, використовуйте пресети." -#: ../src/libs/metadata_view.c:1388 +#: ../src/libs/metadata_view.c:1423 msgid "jump to film roll" msgstr "Перейти до плівки" @@ -22981,7 +23680,7 @@ msgid "recent collections settings" msgstr "Налаштування недавно використаних колекцій" -#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1769 +#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1753 msgid "workflow: scene-referred" msgstr "Робочий процес: на основі сцен" @@ -22999,12 +23698,12 @@ #. FIXME don't check here if on/off is enabled, because it depends on image (reload_defaults) #. respond later to image changed signal -#: ../src/libs/modulegroups.c:306 ../src/libs/modulegroups.c:318 -#: ../src/libs/modulegroups.c:2427 ../src/libs/modulegroups.c:2429 +#: ../src/libs/modulegroups.c:307 ../src/libs/modulegroups.c:319 +#: ../src/libs/modulegroups.c:2411 ../src/libs/modulegroups.c:2413 msgid "on-off" msgstr "вкл.-викл." -#: ../src/libs/modulegroups.c:498 ../src/libs/modulegroups.c:501 +#: ../src/libs/modulegroups.c:501 ../src/libs/modulegroups.c:504 msgid "" "this quick access widget is disabled as there are multiple instances of this " "module present. Please use the full module to access this widget..." @@ -23012,157 +23711,157 @@ "Цей віджет швидкого доступу вимкнено, оскільки для цього модуля існує кілька " "екземплярів. Використовуйте повний модуль для доступу до цього віджета..." -#: ../src/libs/modulegroups.c:591 +#: ../src/libs/modulegroups.c:594 msgid "(some features may only be available in the full module interface)" msgstr "(деякі функції можуть бути доступні лише в інтерфейсі повного модуля)" -#: ../src/libs/modulegroups.c:635 +#: ../src/libs/modulegroups.c:632 #, c-format msgid "go to the full version of the %s module" msgstr "Перейти до повної версії модуля %s" -#: ../src/libs/modulegroups.c:1556 ../src/libs/modulegroups.c:1641 -#: ../src/libs/modulegroups.c:1677 ../src/libs/modulegroups.c:1727 -#: ../src/libs/modulegroups.c:1817 +#: ../src/libs/modulegroups.c:1538 ../src/libs/modulegroups.c:1624 +#: ../src/libs/modulegroups.c:1660 ../src/libs/modulegroups.c:1710 +#: ../src/libs/modulegroups.c:1801 msgctxt "modulegroup" msgid "base" msgstr "Базові" -#: ../src/libs/modulegroups.c:1575 +#: ../src/libs/modulegroups.c:1557 msgctxt "modulegroup" msgid "tone" msgstr "Тонування" -#: ../src/libs/modulegroups.c:1584 ../src/libs/modulegroups.c:1691 -#: ../src/libs/modulegroups.c:1741 +#: ../src/libs/modulegroups.c:1566 ../src/libs/modulegroups.c:1674 +#: ../src/libs/modulegroups.c:1724 msgctxt "modulegroup" msgid "color" msgstr "Колір" -#: ../src/libs/modulegroups.c:1599 ../src/libs/modulegroups.c:1699 -#: ../src/libs/modulegroups.c:1746 +#: ../src/libs/modulegroups.c:1582 ../src/libs/modulegroups.c:1682 +#: ../src/libs/modulegroups.c:1730 msgctxt "modulegroup" msgid "correct" msgstr "Корекція" -#: ../src/libs/modulegroups.c:1617 ../src/libs/modulegroups.c:1711 -#: ../src/libs/modulegroups.c:1758 ../src/libs/modulegroups.c:2321 +#: ../src/libs/modulegroups.c:1600 ../src/libs/modulegroups.c:1694 +#: ../src/libs/modulegroups.c:1742 ../src/libs/modulegroups.c:2305 msgctxt "modulegroup" msgid "effect" msgstr "Ефект" -#: ../src/libs/modulegroups.c:1635 +#: ../src/libs/modulegroups.c:1618 msgid "modules: all" msgstr "Модулі: всі" -#: ../src/libs/modulegroups.c:1656 +#: ../src/libs/modulegroups.c:1639 msgctxt "modulegroup" msgid "grading" msgstr "Кольорокорекція" -#: ../src/libs/modulegroups.c:1664 ../src/libs/modulegroups.c:2325 +#: ../src/libs/modulegroups.c:1647 ../src/libs/modulegroups.c:2309 msgctxt "modulegroup" msgid "effects" msgstr "Ефекти" -#: ../src/libs/modulegroups.c:1672 +#: ../src/libs/modulegroups.c:1655 msgid "workflow: beginner" msgstr "Робочий процес: початківець" -#: ../src/libs/modulegroups.c:1721 +#: ../src/libs/modulegroups.c:1704 msgid "workflow: display-referred" msgstr "Робочий процес: на основі відображення" -#: ../src/libs/modulegroups.c:1773 +#: ../src/libs/modulegroups.c:1757 msgid "search only" msgstr "Лише пошук" -#: ../src/libs/modulegroups.c:1779 ../src/libs/modulegroups.c:2090 -#: ../src/libs/modulegroups.c:2599 +#: ../src/libs/modulegroups.c:1763 ../src/libs/modulegroups.c:2074 +#: ../src/libs/modulegroups.c:2583 msgctxt "modulegroup" msgid "deprecated" msgstr "Застарілі" -#: ../src/libs/modulegroups.c:1792 +#: ../src/libs/modulegroups.c:1776 msgid "previous config" msgstr "Попередня конфігурація" -#: ../src/libs/modulegroups.c:1793 +#: ../src/libs/modulegroups.c:1777 msgid "previous layout" msgstr "Попередня розкладка модулів" -#: ../src/libs/modulegroups.c:1797 +#: ../src/libs/modulegroups.c:1781 msgid "previous config with new layout" msgstr "Попередня конфігурація з новою розкладкою" -#: ../src/libs/modulegroups.c:1957 ../src/libs/modulegroups.c:2472 -#: ../src/libs/modulegroups.c:2484 +#: ../src/libs/modulegroups.c:1941 ../src/libs/modulegroups.c:2456 +#: ../src/libs/modulegroups.c:2468 msgid "remove this widget" msgstr "Видалити цей віджет" -#: ../src/libs/modulegroups.c:2107 ../src/libs/modulegroups.c:2347 +#: ../src/libs/modulegroups.c:2091 ../src/libs/modulegroups.c:2331 msgid "remove this module" msgstr "Видалити цей модуль" #. does it belong to recommended modules ? -#: ../src/libs/modulegroups.c:2316 +#: ../src/libs/modulegroups.c:2300 msgid "base" msgstr "Базові" -#: ../src/libs/modulegroups.c:2319 +#: ../src/libs/modulegroups.c:2303 msgid "tone" msgstr "Тонові" -#: ../src/libs/modulegroups.c:2322 +#: ../src/libs/modulegroups.c:2306 msgid "technical" msgstr "Технічні" -#: ../src/libs/modulegroups.c:2323 +#: ../src/libs/modulegroups.c:2307 msgid "grading" msgstr "Грейдинг" -#: ../src/libs/modulegroups.c:2329 ../src/libs/modulegroups.c:2337 +#: ../src/libs/modulegroups.c:2313 ../src/libs/modulegroups.c:2321 msgid "add this module" msgstr "Додати цей модуль" #. show the submenu with all the modules -#: ../src/libs/modulegroups.c:2359 ../src/libs/modulegroups.c:2559 +#: ../src/libs/modulegroups.c:2343 ../src/libs/modulegroups.c:2543 msgid "all available modules" msgstr "Всі доступні модулі" -#: ../src/libs/modulegroups.c:2367 +#: ../src/libs/modulegroups.c:2351 msgid "add module" msgstr "Додати модуль" -#: ../src/libs/modulegroups.c:2372 +#: ../src/libs/modulegroups.c:2356 msgid "remove module" msgstr "Видалити модуль" -#: ../src/libs/modulegroups.c:2478 +#: ../src/libs/modulegroups.c:2462 msgid "header needed for other widgets" msgstr "Заголовок потрібен для інших віджетів" -#: ../src/libs/modulegroups.c:2494 ../src/libs/modulegroups.c:2501 +#: ../src/libs/modulegroups.c:2478 ../src/libs/modulegroups.c:2485 msgid "add this widget" msgstr "Додати цей віджет" -#: ../src/libs/modulegroups.c:2514 +#: ../src/libs/modulegroups.c:2498 msgid "currently invisible" msgstr "Наразі невидимий" -#: ../src/libs/modulegroups.c:2543 +#: ../src/libs/modulegroups.c:2527 msgid "add widget" msgstr "Додати віджет" -#: ../src/libs/modulegroups.c:2548 +#: ../src/libs/modulegroups.c:2532 msgid "remove widget" msgstr "Видалити віджет" -#: ../src/libs/modulegroups.c:2653 +#: ../src/libs/modulegroups.c:2637 msgid "show all history modules" msgstr "Показувати всі модулі зі стеку історії" -#: ../src/libs/modulegroups.c:2656 ../src/libs/modulegroups.c:3834 +#: ../src/libs/modulegroups.c:2640 ../src/libs/modulegroups.c:3836 msgid "" "show modules that are present in the history stack, regardless of whether or " "not they are currently enabled" @@ -23170,7 +23869,7 @@ "Показувати модулі, які присутні в стеку історії, незалежно від того, чи " "ввімкнено їх зараз" -#: ../src/libs/modulegroups.c:2747 ../src/libs/modulegroups.c:2816 +#: ../src/libs/modulegroups.c:2731 ../src/libs/modulegroups.c:2823 msgid "" "the following modules are deprecated because they have internal design " "mistakes that can't be corrected and alternative modules that correct them.\n" @@ -23180,19 +23879,19 @@ "неможливо виправити, та альтернативні модулі, які їх виправляють.\n" "Застарілі модулі будуть недоступні для нових редагувань у наступному випуску." -#: ../src/libs/modulegroups.c:2775 ../src/libs/modulegroups.c:2776 +#: ../src/libs/modulegroups.c:2782 ../src/libs/modulegroups.c:2783 msgid "quick access panel" msgstr "Панель швидкого доступу" -#: ../src/libs/modulegroups.c:2786 +#: ../src/libs/modulegroups.c:2793 msgid "show only active modules" msgstr "Показувати лише активні модулі" -#: ../src/libs/modulegroups.c:2787 +#: ../src/libs/modulegroups.c:2794 msgid "active modules" msgstr "Активні модулі" -#: ../src/libs/modulegroups.c:2792 +#: ../src/libs/modulegroups.c:2799 msgid "" "presets\n" "ctrl+click to manage" @@ -23200,143 +23899,147 @@ "Пресети\n" "Ctrl+клік – керувати" -#: ../src/libs/modulegroups.c:2798 +#: ../src/libs/modulegroups.c:2805 msgid "search modules" msgstr "Пошук модулів" -#: ../src/libs/modulegroups.c:2799 +#: ../src/libs/modulegroups.c:2806 msgid "search modules by name or tag" msgstr "Пошук модуля по імені чи тегу" -#: ../src/libs/modulegroups.c:2809 +#: ../src/libs/modulegroups.c:2816 msgid "clear text" msgstr "Очистити текст" -#: ../src/libs/modulegroups.c:3051 +#: ../src/libs/modulegroups.c:3056 msgid "basic icon" msgstr "Базові" -#: ../src/libs/modulegroups.c:3061 +#: ../src/libs/modulegroups.c:3066 msgid "active icon" msgstr "Активні" -#: ../src/libs/modulegroups.c:3071 +#: ../src/libs/modulegroups.c:3076 msgid "color icon" msgstr "Корекція кольорів" -#: ../src/libs/modulegroups.c:3081 +#: ../src/libs/modulegroups.c:3086 msgid "correct icon" msgstr "Коригування" -#: ../src/libs/modulegroups.c:3091 +#: ../src/libs/modulegroups.c:3096 msgid "effect icon" msgstr "Ефекти" -#: ../src/libs/modulegroups.c:3101 +#: ../src/libs/modulegroups.c:3106 msgid "favorites icon" msgstr "Улюблені" -#: ../src/libs/modulegroups.c:3111 +#: ../src/libs/modulegroups.c:3116 msgid "tone icon" msgstr "Тонокорекція" -#: ../src/libs/modulegroups.c:3121 +#: ../src/libs/modulegroups.c:3126 msgid "grading icon" msgstr "Грейдинг" -#: ../src/libs/modulegroups.c:3131 +#: ../src/libs/modulegroups.c:3136 msgid "technical icon" msgstr "Технічні" -#: ../src/libs/modulegroups.c:3164 +#: ../src/libs/modulegroups.c:3169 msgid "quick access panel widgets" msgstr "Віджети панелі швидкого доступу" -#: ../src/libs/modulegroups.c:3166 +#: ../src/libs/modulegroups.c:3171 msgid "quick access" msgstr "Швидкий доступ" -#: ../src/libs/modulegroups.c:3186 +#: ../src/libs/modulegroups.c:3191 msgid "add widget to the quick access panel" msgstr "Додати віджет до панелі швидкого доступу" -#: ../src/libs/modulegroups.c:3218 +#: ../src/libs/modulegroups.c:3223 msgid "group icon" msgstr "Значок групи" -#: ../src/libs/modulegroups.c:3227 +#: ../src/libs/modulegroups.c:3232 msgid "group name" msgstr "Ім'я групи" -#: ../src/libs/modulegroups.c:3238 +#: ../src/libs/modulegroups.c:3243 msgid "remove group" msgstr "Видалити групу" -#: ../src/libs/modulegroups.c:3264 +#: ../src/libs/modulegroups.c:3269 msgid "move group to the left" msgstr "Перемістити групу вліво" -#: ../src/libs/modulegroups.c:3272 +#: ../src/libs/modulegroups.c:3277 msgid "add module to the group" msgstr "Додати модуль до групи" -#: ../src/libs/modulegroups.c:3283 +#: ../src/libs/modulegroups.c:3288 msgid "move group to the right" msgstr "Перемістити групу вправо" -#: ../src/libs/modulegroups.c:3463 +#: ../src/libs/modulegroups.c:3464 msgid "rename preset" msgstr "Перейменувати пресет" -#: ../src/libs/modulegroups.c:3470 +#: ../src/libs/modulegroups.c:3467 +msgid "_rename" +msgstr "Перейменувати" + +#: ../src/libs/modulegroups.c:3473 msgid "new preset name:" msgstr "Ім'я нового пресету:" -#: ../src/libs/modulegroups.c:3471 +#: ../src/libs/modulegroups.c:3474 msgid "a preset with this name already exists!" msgstr "Пресет із цим іменем вже існує!" -#: ../src/libs/modulegroups.c:3804 +#: ../src/libs/modulegroups.c:3806 msgid "preset: " msgstr "Пресет: " -#: ../src/libs/modulegroups.c:3811 +#: ../src/libs/modulegroups.c:3813 msgid "remove the preset" msgstr "Видалити пресет" -#: ../src/libs/modulegroups.c:3813 +#: ../src/libs/modulegroups.c:3815 msgid "duplicate the preset" msgstr "Зробити копію цього пресету" -#: ../src/libs/modulegroups.c:3815 +#: ../src/libs/modulegroups.c:3817 msgid "rename the preset" msgstr "Перейменувати цей пресет" -#: ../src/libs/modulegroups.c:3817 +#: ../src/libs/modulegroups.c:3819 msgid "create a new empty preset" msgstr "Створити новий порожній пресет" -#: ../src/libs/modulegroups.c:3825 +#: ../src/libs/modulegroups.c:3827 msgid "show search line" msgstr "Показувати рядок пошуку" -#: ../src/libs/modulegroups.c:3828 +#: ../src/libs/modulegroups.c:3830 msgid "show quick access panel" msgstr "Показати панель швидкого доступу" -#: ../src/libs/modulegroups.c:3831 +#: ../src/libs/modulegroups.c:3833 msgid "show all history modules in active group" msgstr "Показувати всі модулі зі стеку історії в групі активних" -#: ../src/libs/modulegroups.c:3843 +#: ../src/libs/modulegroups.c:3845 msgid "auto-apply this preset" msgstr "Автозастосувати цей пресет" -#: ../src/libs/modulegroups.c:3858 +#: ../src/libs/modulegroups.c:3860 msgid "module groups" msgstr "Групи модулів" -#: ../src/libs/modulegroups.c:3875 +#: ../src/libs/modulegroups.c:3877 msgid "" "this is a built-in read-only preset. duplicate it if you want to make changes" msgstr "" @@ -23347,16 +24050,16 @@ msgid "navigation" msgstr "Навігація" -#: ../src/libs/navigation.c:111 ../src/libs/navigation.c:191 +#: ../src/libs/navigation.c:112 ../src/libs/navigation.c:194 msgctxt "navigationbox" msgid "fill" msgstr "Заповнення" -#: ../src/libs/navigation.c:114 ../src/libs/navigation.c:189 +#: ../src/libs/navigation.c:115 ../src/libs/navigation.c:192 msgid "small" msgstr "Дрібно" -#: ../src/libs/navigation.c:151 +#: ../src/libs/navigation.c:154 msgid "" "navigation\n" "click or drag to position zoomed area in center view" @@ -23365,35 +24068,35 @@ "Клікніть або перетягніть, щоб розмістити збільшену область у центральній " "панелі" -#: ../src/libs/navigation.c:173 +#: ../src/libs/navigation.c:176 msgid "hide navigation thumbnail" msgstr "Перемкнути мініатюру навігації" -#: ../src/libs/navigation.c:187 +#: ../src/libs/navigation.c:190 msgid "image zoom level" msgstr "Масштаб зображення" -#: ../src/libs/navigation.c:192 +#: ../src/libs/navigation.c:195 msgid "50%" msgstr "50%" -#: ../src/libs/navigation.c:193 +#: ../src/libs/navigation.c:196 msgid "100%" msgstr "100%" -#: ../src/libs/navigation.c:194 +#: ../src/libs/navigation.c:197 msgid "200%" msgstr "200%" -#: ../src/libs/navigation.c:195 +#: ../src/libs/navigation.c:198 msgid "400%" msgstr "400%" -#: ../src/libs/navigation.c:196 +#: ../src/libs/navigation.c:199 msgid "800%" msgstr "800%" -#: ../src/libs/navigation.c:197 +#: ../src/libs/navigation.c:200 msgid "1600%" msgstr "1600%" @@ -23637,15 +24340,15 @@ msgid "print with current settings" msgstr "Друкувати з поточними налаштуваннями" -#: ../src/libs/select.c:136 +#: ../src/libs/select.c:137 msgid "select all images in current collection" msgstr "Вибрати всі зображення в поточній колекції" -#: ../src/libs/select.c:140 +#: ../src/libs/select.c:141 msgid "clear selection" msgstr "Скасувати вибір" -#: ../src/libs/select.c:144 +#: ../src/libs/select.c:145 msgid "" "select unselected images\n" "in current collection" @@ -23653,7 +24356,7 @@ "Вибрати невибрані зображення\n" "(інвертувати вибір) в поточній колекції" -#: ../src/libs/select.c:148 +#: ../src/libs/select.c:149 msgid "" "select all images which are in the same\n" "film roll as the selected images" @@ -23661,7 +24364,7 @@ "Вибрати всі зображення з плівки, до\n" "якої належать вибрані зображення" -#: ../src/libs/select.c:152 +#: ../src/libs/select.c:153 msgid "" "select untouched images in\n" "current collection" @@ -23681,29 +24384,33 @@ msgid "create" msgstr "Створити" -#: ../src/libs/snapshots.c:92 +#: ../src/libs/snapshots.c:88 msgid "snapshots" msgstr "Миттєві знімки" -#: ../src/libs/snapshots.c:141 +#: ../src/libs/snapshots.c:137 msgctxt "snapshot sign" msgid "S" msgstr "S" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:662 +msgid "snapshots for removed image have been deleted" +msgstr "Миттєві знімки для видаленого зображення видалено" + +#: ../src/libs/snapshots.c:703 #, c-format msgid "↗ %s '%s'" msgstr "↗ %s '%s'" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:703 msgid "this snapshot was taken from" msgstr "Цей миттєвий знімок зроблено з" -#: ../src/libs/snapshots.c:663 +#: ../src/libs/snapshots.c:742 msgid "take snapshot" msgstr "Зробити миттєвий знімок" -#: ../src/libs/snapshots.c:665 +#: ../src/libs/snapshots.c:744 msgid "" "take snapshot to compare with another image or the same image at another " "stage of development" @@ -23711,7 +24418,7 @@ "Зробити миттєвий знімок, щоб порівняти з іншим зображенням або тим самим " "зображенням на іншій стадії обробки" -#: ../src/libs/snapshots.c:734 +#: ../src/libs/snapshots.c:790 msgid "toggle last snapshot" msgstr "Перемкнути останній моментальний знімок" @@ -23730,7 +24437,11 @@ msgstr[1] "Ви дійсно хочете видалити %d стилі?" msgstr[2] "Ви дійсно хочете видалити %d стилів?" -#: ../src/libs/styles.c:444 ../src/libs/styles.c:627 +#: ../src/libs/styles.c:441 ../src/libs/styles.c:626 +msgid "_overwrite" +msgstr "Перезаписати" + +#: ../src/libs/styles.c:446 ../src/libs/styles.c:631 #, c-format msgid "" "style `%s' already exists.\n" @@ -23739,24 +24450,24 @@ "Стиль `%s' вже існує.\n" "Ви хочете переписати існуючий стиль?\n" -#: ../src/libs/styles.c:446 ../src/libs/styles.c:629 +#: ../src/libs/styles.c:448 ../src/libs/styles.c:633 msgid "apply this option to all existing styles" msgstr "Застосувати цю опцію до всіх наявних стилів" -#: ../src/libs/styles.c:509 +#: ../src/libs/styles.c:511 #, c-format msgid "style %s was successfully exported" msgstr "Стиль %s було успішно експортовано" -#: ../src/libs/styles.c:526 +#: ../src/libs/styles.c:528 msgid "select style" msgstr "Вибрати стиль" -#: ../src/libs/styles.c:536 +#: ../src/libs/styles.c:538 msgid "darktable style files" msgstr "Файли стилів darktable" -#: ../src/libs/styles.c:815 +#: ../src/libs/styles.c:819 msgid "" "available styles,\n" "double-click to apply" @@ -23764,73 +24475,73 @@ "Доступні стилі,\n" "Двічі клікніть, щоб застосувати" -#: ../src/libs/styles.c:824 ../src/libs/styles.c:825 +#: ../src/libs/styles.c:828 ../src/libs/styles.c:829 msgid "filter style names" msgstr "Фільтр по іменах стилів" -#: ../src/libs/styles.c:837 +#: ../src/libs/styles.c:841 msgid "create duplicate" msgstr "Створити дублікат" -#: ../src/libs/styles.c:844 +#: ../src/libs/styles.c:848 msgid "creates a duplicate of the image before applying style" msgstr "Створює дублікат зображення перед застосуванням стилю" -#: ../src/libs/styles.c:862 +#: ../src/libs/styles.c:866 msgid "create..." msgstr "Створити..." -#: ../src/libs/styles.c:864 +#: ../src/libs/styles.c:868 msgid "create styles from history stack of selected images" msgstr "Створити стилі з історії змін вибраних зображень" -#: ../src/libs/styles.c:869 ../src/libs/tagging.c:2252 +#: ../src/libs/styles.c:873 ../src/libs/tagging.c:2283 msgid "edit..." msgstr "Редагувати..." -#: ../src/libs/styles.c:871 +#: ../src/libs/styles.c:875 msgid "edit the selected styles in list above" msgstr "Редагувати вибрані стилі у списку вище" -#: ../src/libs/styles.c:878 +#: ../src/libs/styles.c:882 msgid "removes the selected styles in list above" msgstr "Видаляє вибрані стилі у списку вище" -#: ../src/libs/styles.c:885 +#: ../src/libs/styles.c:889 msgid "import styles from a style files" msgstr "Імпортувати стилі з стильових файлів" -#: ../src/libs/styles.c:892 +#: ../src/libs/styles.c:896 msgid "export the selected styles into a style files" msgstr "Експортувати вибрані стилі у файли стилів" -#: ../src/libs/styles.c:899 +#: ../src/libs/styles.c:903 msgid "apply the selected styles in list above to selected images" msgstr "Застосувати вибрані стилі у списку вище до вибраних зображень" -#: ../src/libs/tagging.c:105 +#: ../src/libs/tagging.c:109 msgid "tagging" msgstr "Теги" -#: ../src/libs/tagging.c:1255 +#: ../src/libs/tagging.c:1258 msgid "attach tag to all" msgstr "Прикріпити тег до всіх" -#: ../src/libs/tagging.c:1263 ../src/libs/tagging.c:2225 +#: ../src/libs/tagging.c:1266 ../src/libs/tagging.c:2256 msgid "detach tag" msgstr "Від'єднати тег" -#: ../src/libs/tagging.c:1483 +#: ../src/libs/tagging.c:1486 msgid "delete tag?" msgstr "Видалити тег?" -#: ../src/libs/tagging.c:1490 ../src/libs/tagging.c:1578 -#: ../src/libs/tagging.c:1789 ../src/libs/tagging.c:2063 +#: ../src/libs/tagging.c:1496 ../src/libs/tagging.c:1587 +#: ../src/libs/tagging.c:1814 ../src/libs/tagging.c:2093 #, c-format msgid "selected: %s" msgstr "Вибрано: %s " -#: ../src/libs/tagging.c:1497 +#: ../src/libs/tagging.c:1503 #, c-format msgid "" "do you really want to delete the tag `%s'?\n" @@ -23848,16 +24559,16 @@ "Ви дійсно хочете видалити тег `%s'?\n" "Цей тег присвоєно %d зображенням!" -#: ../src/libs/tagging.c:1531 +#: ../src/libs/tagging.c:1537 #, c-format msgid "tag %s removed" msgstr "Тег %s видалено" -#: ../src/libs/tagging.c:1571 +#: ../src/libs/tagging.c:1577 msgid "delete node?" msgstr "Видалити вузол?" -#: ../src/libs/tagging.c:1585 +#: ../src/libs/tagging.c:1594 #, c-format msgid "<u>%d</u> tag will be deleted" msgid_plural "<u>%d</u> tags will be deleted" @@ -23865,8 +24576,8 @@ msgstr[1] "<u>%d</u> теги буде видалено" msgstr[2] "<u>%d</u> тегів буде видалено" -#: ../src/libs/tagging.c:1590 ../src/libs/tagging.c:1801 -#: ../src/libs/tagging.c:2075 +#: ../src/libs/tagging.c:1599 ../src/libs/tagging.c:1826 +#: ../src/libs/tagging.c:2105 #, c-format msgid "<u>%d</u> image will be updated" msgid_plural "<u>%d</u> images will be updated" @@ -23874,42 +24585,42 @@ msgstr[1] "<u>%d</u> зображення буде оновлено" msgstr[2] "<u>%d</u> зображень буде оновлено" -#: ../src/libs/tagging.c:1616 +#: ../src/libs/tagging.c:1625 #, c-format msgid "%d tags removed" msgstr "Видалено тегів: %d" -#: ../src/libs/tagging.c:1652 +#: ../src/libs/tagging.c:1668 msgid "create tag" msgstr "Створити тег" -#: ../src/libs/tagging.c:1662 ../src/libs/tagging.c:1809 +#: ../src/libs/tagging.c:1681 ../src/libs/tagging.c:1834 msgid "name: " msgstr "Ім'я: " -#: ../src/libs/tagging.c:1674 +#: ../src/libs/tagging.c:1696 #, c-format msgid "add to: \"%s\" " msgstr "Додати до: \"%s\" " -#: ../src/libs/tagging.c:1680 ../src/libs/tagging.c:1824 +#: ../src/libs/tagging.c:1702 ../src/libs/tagging.c:1851 msgid "category" msgstr "Категорія" -#: ../src/libs/tagging.c:1689 ../src/libs/tagging.c:1833 +#: ../src/libs/tagging.c:1711 ../src/libs/tagging.c:1860 msgid "synonyms: " msgstr "Синоніми: " -#: ../src/libs/tagging.c:1706 ../src/libs/tagging.c:1855 -#: ../src/libs/tagging.c:2097 +#: ../src/libs/tagging.c:1728 ../src/libs/tagging.c:1882 +#: ../src/libs/tagging.c:2128 msgid "empty tag is not allowed, aborting" msgstr "Порожній тег заборонено, переривання" -#: ../src/libs/tagging.c:1717 +#: ../src/libs/tagging.c:1739 msgid "tag name already exists. aborting." msgstr "Ім'я тегу вже існує. Переривання." -#: ../src/libs/tagging.c:1796 ../src/libs/tagging.c:2070 +#: ../src/libs/tagging.c:1821 ../src/libs/tagging.c:2100 #, c-format msgid "<u>%d</u> tag will be updated" msgid_plural "<u>%d</u> tags will be updated" @@ -23917,7 +24628,7 @@ msgstr[1] "<u>%d</u> теги буде оновлено" msgstr[2] "<u>%d</u> тегів буде оновлено" -#: ../src/libs/tagging.c:1857 +#: ../src/libs/tagging.c:1884 msgid "" "'|' character is not allowed for renaming tag.\n" "to modify the hierarchy use rename path instead. Aborting." @@ -23926,101 +24637,101 @@ "Щоб змінити ієрархію, використовуйте замість цього перейменування шляху. " "Переривання." -#: ../src/libs/tagging.c:1896 ../src/libs/tagging.c:2004 +#: ../src/libs/tagging.c:1923 ../src/libs/tagging.c:2031 #, c-format msgid "at least one new tag name (%s) already exists, aborting" msgstr "Принаймні одне нове ім'я тегу (%s) уже існує, переривання" -#: ../src/libs/tagging.c:2056 +#: ../src/libs/tagging.c:2083 msgid "change path" msgstr "Змінити шлях" -#: ../src/libs/tagging.c:2099 +#: ../src/libs/tagging.c:2130 msgid "'|' misplaced, empty tag is not allowed, aborting" msgstr "" "Символ '|' неправильно розміщений, порожній тег заборонено, переривання" -#: ../src/libs/tagging.c:2195 +#: ../src/libs/tagging.c:2226 #, c-format msgid "tag %s created" msgstr "Тег %s створено" -#: ../src/libs/tagging.c:2221 +#: ../src/libs/tagging.c:2252 msgid "attach tag" msgstr "Прикріпити тег" -#: ../src/libs/tagging.c:2234 +#: ../src/libs/tagging.c:2265 msgid "create tag..." msgstr "Створити тег..." -#: ../src/libs/tagging.c:2240 +#: ../src/libs/tagging.c:2271 msgid "delete tag" msgstr "Видалити тег" -#: ../src/libs/tagging.c:2247 +#: ../src/libs/tagging.c:2278 msgid "delete node" msgstr "Видалити вузол" -#: ../src/libs/tagging.c:2260 +#: ../src/libs/tagging.c:2291 msgid "change path..." msgstr "Змінити шлях..." -#: ../src/libs/tagging.c:2270 +#: ../src/libs/tagging.c:2301 msgid "set as a tag" msgstr "Встановити як тег" -#: ../src/libs/tagging.c:2281 +#: ../src/libs/tagging.c:2312 msgid "copy to entry" msgstr "Копіювати в поле вводу" -#: ../src/libs/tagging.c:2298 +#: ../src/libs/tagging.c:2329 msgid "go to tag collection" msgstr "Перейти до колекції тегів" -#: ../src/libs/tagging.c:2304 +#: ../src/libs/tagging.c:2335 msgid "go back to work" msgstr "Повернутись до роботи" -#: ../src/libs/tagging.c:2461 +#: ../src/libs/tagging.c:2492 #, c-format msgid "%s" msgstr "%s" -#: ../src/libs/tagging.c:2462 +#: ../src/libs/tagging.c:2493 msgid "(private)" msgstr "(приватно)" -#: ../src/libs/tagging.c:2488 +#: ../src/libs/tagging.c:2519 msgid "select a keyword file" msgstr "Вибір файлу ключових слів" -#: ../src/libs/tagging.c:2501 +#: ../src/libs/tagging.c:2532 msgid "error importing tags" msgstr "Помилка при імпорті тегів" -#: ../src/libs/tagging.c:2503 +#: ../src/libs/tagging.c:2534 #, c-format msgid "%zd tags imported" msgstr "Імпортовано тегів: %zd" -#: ../src/libs/tagging.c:2524 +#: ../src/libs/tagging.c:2555 msgid "select file to export to" msgstr "Виберіть файл для експорту" -#: ../src/libs/tagging.c:2538 +#: ../src/libs/tagging.c:2569 msgid "error exporting tags" msgstr "Помилка при експорті тегів" -#: ../src/libs/tagging.c:2540 +#: ../src/libs/tagging.c:2571 #, c-format msgid "%zd tags exported" msgstr "Експортовано тегів: %zd" -#: ../src/libs/tagging.c:2964 +#: ../src/libs/tagging.c:2995 msgid "drop to root" msgstr "drop to root" -#: ../src/libs/tagging.c:3100 +#: ../src/libs/tagging.c:3131 msgid "" "attached tags\n" "press Delete or double-click to detach\n" @@ -24032,47 +24743,47 @@ "Права кнопка миші - інші дії з прикріпленим тегом\n" "Натисніть Tab, щоб встановити фокус на введення" -#: ../src/libs/tagging.c:3111 +#: ../src/libs/tagging.c:3142 msgid "attach" msgstr "Прикріпити" -#: ../src/libs/tagging.c:3112 +#: ../src/libs/tagging.c:3143 msgid "attach tag to all selected images" msgstr "Прикріпити тег до всіх вибраних зображень" -#: ../src/libs/tagging.c:3115 +#: ../src/libs/tagging.c:3146 msgid "detach" msgstr "Від'єднати" -#: ../src/libs/tagging.c:3116 +#: ../src/libs/tagging.c:3147 msgid "detach tag from all selected images" msgstr "Від'єднати тег від усіх вибраних зображень" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "toggle list with / without hierarchy" msgstr "Перемкнути відображення ієрархії тегів" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "hide" msgstr "Приховати" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "toggle sort by name or by count" msgstr "Перемкнути між сортуванням за іменем та по кількості" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "sort" msgstr "Сортування" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "toggle show or not darktable tags" msgstr "Перемкнути відображення тегів darktable" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "dttags" msgstr "Показ тегів darktable" -#: ../src/libs/tagging.c:3149 +#: ../src/libs/tagging.c:3180 msgid "" "enter tag name\n" "press Enter to create a new tag and attach it on selected images\n" @@ -24085,11 +24796,11 @@ "Натисніть клавішу Tab або Down, щоб перейти до першого відповідного тегу\n" "Натисніть shift+Tab, щоб вибрати перший прикріплений тег користувача" -#: ../src/libs/tagging.c:3160 ../src/libs/tagging.c:3166 +#: ../src/libs/tagging.c:3191 ../src/libs/tagging.c:3197 msgid "clear entry" msgstr "Очистити поле" -#: ../src/libs/tagging.c:3213 +#: ../src/libs/tagging.c:3244 msgid "" "tag dictionary,\n" "Enter or double-click to attach selected tag on selected images\n" @@ -24105,7 +24816,7 @@ "Клікніть правою кнопкою миші для інших дій з вибраним тегом.\n" "Натисніть shift+Tab, щоб встановити фокус на введення." -#: ../src/libs/tagging.c:3248 +#: ../src/libs/tagging.c:3279 msgid "" "create a new tag with the\n" "name you entered" @@ -24113,44 +24824,44 @@ "Створити новий тег\n" "із введеним ім'ям" -#: ../src/libs/tagging.c:3251 +#: ../src/libs/tagging.c:3282 msgid "import tags from a Lightroom keyword file" msgstr "Імпортувати теги з файлу ключових слів Lightroom" -#: ../src/libs/tagging.c:3254 +#: ../src/libs/tagging.c:3285 msgid "export all tags to a Lightroom keyword file" msgstr "Експортувати всі теги у файл ключових слів Lightroom" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "toggle list / tree view" msgstr "" "Перемкнути режим показу тегів між\n" "звичайним списком та ієрархічним деревом" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "tree" msgstr "Дерево" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "toggle list with / without suggestion" msgstr "Перемкнути пропозиції до тегів" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "suggestion" msgstr "Пропозиції до тегів" -#: ../src/libs/tagging.c:3282 +#: ../src/libs/tagging.c:3313 msgid "redo last tag" msgstr "Повторити останній тег" -#: ../src/libs/tagging.c:3365 +#: ../src/libs/tagging.c:3396 msgid "" "tag shortcut is not active with tag tree view. please switch to list view" msgstr "" "Прискорювач неактивний при перегляді тегів у вигляді дерева. Будь ласка, " "перейдіть до перегляду у вигляді списку." -#: ../src/libs/tagging.c:3469 +#: ../src/libs/tagging.c:3500 msgid "tagging settings" msgstr "Налаштування тегів" @@ -24167,30 +24878,6 @@ msgid "toggle color label of selected images" msgstr "Перемкнути кольорову позначку вибраних зображень" -#: ../src/libs/tools/darktable.c:284 -#, c-format -msgid "copyright (c) the authors 2009-%s" -msgstr "Авторські права (c) належать авторам 2009-%s" - -#: ../src/libs/tools/darktable.c:288 -msgid "organize and develop images from digital cameras" -msgstr "Організація і обробка цифрових фотографій" - -#: ../src/libs/tools/darktable.c:300 -msgid "all those of you that made previous releases possible" -msgstr "усі, хто зробив можливим попередні випуски" - -#: ../src/libs/tools/darktable.c:305 -msgid "and..." -msgstr "і..." - -#: ../src/libs/tools/darktable.c:307 -msgid "translator-credits" -msgstr "" -"Віктор Форсюк <vvforce@gmail.com>\n" -"Слава Україні! Героям слава!\n" -" " - #: ../src/libs/tools/filmstrip.c:45 msgid "filmstrip" msgstr "Стрічка знімків" @@ -24509,35 +25196,35 @@ msgid "click to enter culling layout in dynamic mode." msgstr "Натисніть, щоб перейти до розкладки вибракування в динамічному режимі." -#: ../src/libs/tools/lighttable.c:368 +#: ../src/libs/tools/lighttable.c:365 msgid "toggle filemanager layout" msgstr "Перемкнути розкладку файлового менеджера" -#: ../src/libs/tools/lighttable.c:371 +#: ../src/libs/tools/lighttable.c:368 msgid "click to enter filemanager layout." msgstr "Натисніть, щоб перейти до розкладки файлового менеджера." -#: ../src/libs/tools/lighttable.c:377 +#: ../src/libs/tools/lighttable.c:374 msgid "toggle zoomable lighttable layout" msgstr "Перемкнути розкладку масштабованого світлого стола" -#: ../src/libs/tools/lighttable.c:380 +#: ../src/libs/tools/lighttable.c:377 msgid "click to enter zoomable lighttable layout." msgstr "Натисніть, щоб перейти до розкладки масштабованого світлого стола" -#: ../src/libs/tools/lighttable.c:386 +#: ../src/libs/tools/lighttable.c:383 msgid "toggle culling mode" msgstr "Перемкнути режим вибракування" -#: ../src/libs/tools/lighttable.c:394 +#: ../src/libs/tools/lighttable.c:391 msgid "toggle culling dynamic mode" msgstr "Перемкнути динамічний режим вибракування" -#: ../src/libs/tools/lighttable.c:441 +#: ../src/libs/tools/lighttable.c:438 msgid "toggle culling zoom mode" msgstr "Перемкнути режими розкладки вибракування" -#: ../src/libs/tools/lighttable.c:443 +#: ../src/libs/tools/lighttable.c:440 msgid "exit current layout" msgstr "Вийти з поточної розкладки" @@ -24620,7 +25307,7 @@ msgid "Lua options" msgstr "Опції Lua" -#: ../src/views/darkroom.c:607 +#: ../src/views/darkroom.c:503 #, c-format msgid "" "darktable could not load `%s', switching to lighttable now.\n" @@ -24643,62 +25330,62 @@ "повідомити про проблему\n" "на https://github.com/darktable-org/darktable." -#: ../src/views/darkroom.c:625 +#: ../src/views/darkroom.c:521 #, c-format msgctxt "darkroom" msgid "loading `%s' ..." msgstr "Завантажується `%s' ..." -#: ../src/views/darkroom.c:749 ../src/views/darkroom.c:2496 +#: ../src/views/darkroom.c:668 ../src/views/darkroom.c:2335 msgid "gamut check" msgstr "Перевірка охоплення" -#: ../src/views/darkroom.c:749 +#: ../src/views/darkroom.c:668 msgid "soft proof" msgstr "Екранна кольоропроба" #. fail :( -#: ../src/views/darkroom.c:787 ../src/views/print.c:356 +#: ../src/views/darkroom.c:708 ../src/views/print.c:356 msgid "no image to open!" msgstr "Немає зображення для відкриття!" -#: ../src/views/darkroom.c:1331 +#: ../src/views/darkroom.c:1232 msgid "no user-defined presets for favorite modules were found" msgstr "Не знайдено визначених користувачем пресетів для улюблених модулів" -#: ../src/views/darkroom.c:1476 +#: ../src/views/darkroom.c:1377 msgid "no styles have been created yet" msgstr "Ще не створено стилів" -#: ../src/views/darkroom.c:2331 ../src/views/darkroom.c:2332 +#: ../src/views/darkroom.c:2170 ../src/views/darkroom.c:2171 msgid "quick access to presets" msgstr "Швидкий доступ до пресетів" -#: ../src/views/darkroom.c:2340 +#: ../src/views/darkroom.c:2179 msgid "quick access to styles" msgstr "Швидкий доступ до стилів" -#: ../src/views/darkroom.c:2342 +#: ../src/views/darkroom.c:2181 msgid "quick access for applying any of your styles" msgstr "Швидкий доступ до застосування стилів" -#: ../src/views/darkroom.c:2348 +#: ../src/views/darkroom.c:2187 msgid "second window" msgstr "Друге вікно" -#: ../src/views/darkroom.c:2351 +#: ../src/views/darkroom.c:2190 msgid "display a second darkroom image window" msgstr "Відкрити друге вікно перегляду зображення з темної кімнати" -#: ../src/views/darkroom.c:2356 +#: ../src/views/darkroom.c:2195 msgid "color assessment" msgstr "Оцінка кольорів" -#: ../src/views/darkroom.c:2359 +#: ../src/views/darkroom.c:2198 msgid "toggle ISO 12646 color assessment conditions" msgstr "Перемкнути умови оцінки кольору ISO 12646" -#: ../src/views/darkroom.c:2372 +#: ../src/views/darkroom.c:2211 msgid "" "toggle raw over exposed indication\n" "right click for options" @@ -24706,27 +25393,27 @@ "Перемкнути індикацію переекспозиції в raw\n" "Права кнопка миші - опції" -#: ../src/views/darkroom.c:2388 +#: ../src/views/darkroom.c:2227 msgid "select how to mark the clipped pixels" msgstr "Виберіть спосіб позначення переекспонованих пікселів" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with CFA color" msgstr "Позначити кольором обрізаного каналу" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with solid color" msgstr "Позначити суцільним кольором" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "false color" msgstr "Псевдоколір" -#: ../src/views/darkroom.c:2393 ../src/views/darkroom.c:2444 +#: ../src/views/darkroom.c:2232 ../src/views/darkroom.c:2283 msgid "color scheme" msgstr "Колірна схема" -#: ../src/views/darkroom.c:2394 +#: ../src/views/darkroom.c:2233 msgid "" "select the solid color to indicate over exposure.\n" "will only be used if mode = mark with solid color" @@ -24734,27 +25421,27 @@ "Виберіть суцільний колір для позначення переекспозиції\n" "Буде використовуватися лише в режимі позначення суцільним кольором" -#: ../src/views/darkroom.c:2397 +#: ../src/views/darkroom.c:2236 msgctxt "solidcolor" msgid "red" msgstr "Червоний" -#: ../src/views/darkroom.c:2398 +#: ../src/views/darkroom.c:2237 msgctxt "solidcolor" msgid "green" msgstr "Зелений" -#: ../src/views/darkroom.c:2399 +#: ../src/views/darkroom.c:2238 msgctxt "solidcolor" msgid "blue" msgstr "Синій" -#: ../src/views/darkroom.c:2400 +#: ../src/views/darkroom.c:2239 msgctxt "solidcolor" msgid "black" msgstr "Чорний" -#: ../src/views/darkroom.c:2408 +#: ../src/views/darkroom.c:2247 msgid "" "threshold of what shall be considered overexposed\n" "1.0 - white level\n" @@ -24764,7 +25451,7 @@ "1.0 - рівень білого\n" "0.0 - рівень чорного" -#: ../src/views/darkroom.c:2422 +#: ../src/views/darkroom.c:2261 msgid "" "toggle clipping indication\n" "right click for options" @@ -24772,11 +25459,11 @@ "Перемкнути індикацію кліппінгу\n" "Права кнопка миші - опції" -#: ../src/views/darkroom.c:2437 +#: ../src/views/darkroom.c:2276 msgid "clipping preview mode" msgstr "Показ кліппінгу" -#: ../src/views/darkroom.c:2438 +#: ../src/views/darkroom.c:2277 msgid "" "select the metric you want to preview\n" "full gamut is the combination of all other modes" @@ -24784,39 +25471,39 @@ "Виберіть метрику, для якої хочете бачити попередній перегляд\n" "Повне охоплення - це поєднання всіх інших режимів" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "full gamut" msgstr "Повне охоплення" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "any RGB channel" msgstr "Будь-який канал RGB" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "luminance only" msgstr "Лише яскравість" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "saturation only" msgstr "Лише насиченість" -#: ../src/views/darkroom.c:2445 +#: ../src/views/darkroom.c:2284 msgid "select colors to indicate clipping" msgstr "Виберіть кольори для позначення кліппінгу" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "red & blue" msgstr "червоний і синій" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "purple & green" msgstr "пурпурний і зелений" -#: ../src/views/darkroom.c:2454 +#: ../src/views/darkroom.c:2293 msgid "lower threshold" msgstr "Нижній поріг" -#: ../src/views/darkroom.c:2455 +#: ../src/views/darkroom.c:2294 msgid "" "clipping threshold for the black point,\n" "in EV, relatively to white (0 EV).\n" @@ -24836,11 +25523,11 @@ "типові кольорові глянцеві відбитки дають чорний колір на -8.00 EV,\n" "типові чорно-білі глянцеві відбитки дають чорний колір на -9.00 EV." -#: ../src/views/darkroom.c:2471 +#: ../src/views/darkroom.c:2310 msgid "upper threshold" msgstr "Верхній поріг" -#: ../src/views/darkroom.c:2473 +#: ../src/views/darkroom.c:2312 #, no-c-format msgid "" "clipping threshold for the white point.\n" @@ -24849,11 +25536,11 @@ "Поріг кліппінгу для точки білого.\n" "100% - це пікова яскравість носія." -#: ../src/views/darkroom.c:2485 +#: ../src/views/darkroom.c:2324 msgid "softproof" msgstr "Екранна кольоропроба" -#: ../src/views/darkroom.c:2488 +#: ../src/views/darkroom.c:2327 msgid "" "toggle softproofing\n" "right click for profile options" @@ -24861,7 +25548,7 @@ "Перемкнути екранну кольоропробу\n" "Права кнопка миші - опції профілів" -#: ../src/views/darkroom.c:2499 +#: ../src/views/darkroom.c:2338 msgid "" "toggle gamut checking\n" "right click for profile options" @@ -24869,46 +25556,54 @@ "Перемкнути перевірку охоплення\n" "Права кнопка миші - опції профілів" -#: ../src/views/darkroom.c:2524 ../src/views/darkroom.c:2526 -#: ../src/views/darkroom.c:2540 ../src/views/darkroom.c:2541 -#: ../src/views/darkroom.c:2542 ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2365 ../src/views/darkroom.c:2367 +#: ../src/views/darkroom.c:2381 ../src/views/darkroom.c:2382 +#: ../src/views/darkroom.c:2383 ../src/views/darkroom.c:2384 #: ../src/views/lighttable.c:1182 ../src/views/lighttable.c:1184 msgid "profiles" msgstr "Профілі" -#: ../src/views/darkroom.c:2526 ../src/views/lighttable.c:1184 +#: ../src/views/darkroom.c:2367 ../src/views/lighttable.c:1184 msgid "preview intent" msgstr "Метод попереднього перегляду" -#: ../src/views/darkroom.c:2540 ../src/views/lighttable.c:1188 +#: ../src/views/darkroom.c:2381 ../src/views/lighttable.c:1188 msgid "display profile" msgstr "Профіль відображення" -#: ../src/views/darkroom.c:2541 ../src/views/lighttable.c:1191 +#: ../src/views/darkroom.c:2382 ../src/views/lighttable.c:1191 msgid "preview display profile" msgstr "Профіль попереднього перегляду" -#: ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2384 msgid "histogram profile" msgstr "Профіль гістограми" -#: ../src/views/darkroom.c:2605 ../src/views/lighttable.c:1225 +#: ../src/views/darkroom.c:2391 +msgid "second preview window ISO 12646 color assessment" +msgstr "Умови оцінки кольору ISO 12646 для другого вікна перегляду" + +#: ../src/views/darkroom.c:2393 +msgid "color assessment second preview" +msgstr "Оцінка кольору для другого вікна" + +#: ../src/views/darkroom.c:2452 ../src/views/lighttable.c:1225 msgid "display ICC profiles" msgstr "ICC профілі дисплея" -#: ../src/views/darkroom.c:2609 ../src/views/lighttable.c:1229 +#: ../src/views/darkroom.c:2456 ../src/views/lighttable.c:1229 msgid "preview display ICC profiles" msgstr "ICC профілі попереднього перегляду" -#: ../src/views/darkroom.c:2613 +#: ../src/views/darkroom.c:2460 msgid "softproof ICC profiles" msgstr "ICC профілі екранної кольоропроби" -#: ../src/views/darkroom.c:2617 +#: ../src/views/darkroom.c:2464 msgid "histogram and color picker ICC profiles" msgstr "ICC профілі гістограми та піпетки кольорів" -#: ../src/views/darkroom.c:2651 +#: ../src/views/darkroom.c:2497 msgid "" "toggle guide lines\n" "right click for guides options" @@ -24917,137 +25612,137 @@ "Клікніть правою кнопкою миші, щоб переглянути опції напрямних" #. Fullscreen preview key -#: ../src/views/darkroom.c:2668 +#: ../src/views/darkroom.c:2514 msgid "full preview" msgstr "Попередній перегляд на все вікно" #. add an option to allow skip mouse events while other overlays are consuming mouse actions -#: ../src/views/darkroom.c:2672 +#: ../src/views/darkroom.c:2518 msgid "force pan/zoom/rotate with mouse" msgstr "Миша керує панорамуванням/масштабуванням/обертанням" #. Zoom shortcuts -#: ../src/views/darkroom.c:2684 +#: ../src/views/darkroom.c:2530 msgid "zoom close-up" msgstr "Масштабування: масштаб 100% (і 200%)" #. zoom in/out #. zoom in/out/min/max -#: ../src/views/darkroom.c:2687 ../src/views/lighttable.c:1283 +#: ../src/views/darkroom.c:2533 ../src/views/lighttable.c:1283 msgid "zoom in" msgstr "Масштабування: збільшити" -#: ../src/views/darkroom.c:2688 ../src/views/lighttable.c:1285 +#: ../src/views/darkroom.c:2534 ../src/views/lighttable.c:1285 msgid "zoom out" msgstr "Масштабування: зменшити" #. Shortcut to skip images -#: ../src/views/darkroom.c:2691 +#: ../src/views/darkroom.c:2537 msgid "image forward" msgstr "Наступне зображення" -#: ../src/views/darkroom.c:2692 +#: ../src/views/darkroom.c:2538 msgid "image back" msgstr "Попереднє зображення" #. cycle overlay colors -#: ../src/views/darkroom.c:2695 +#: ../src/views/darkroom.c:2541 msgid "cycle overlay colors" msgstr "Колір допоміжних ліній на зображенні" #. toggle visibility of drawn masks for current gui module -#: ../src/views/darkroom.c:2698 +#: ../src/views/darkroom.c:2544 msgid "show drawn masks" msgstr "Показати намальовані маски" #. brush size +/- -#: ../src/views/darkroom.c:2701 +#: ../src/views/darkroom.c:2547 msgid "increase brush size" msgstr "Збільшити розмір пензля" -#: ../src/views/darkroom.c:2702 +#: ../src/views/darkroom.c:2548 msgid "decrease brush size" msgstr "Зменшити розмір пензля" #. brush hardness +/- -#: ../src/views/darkroom.c:2705 +#: ../src/views/darkroom.c:2551 msgid "increase brush hardness" msgstr "Збільшити жорсткість пензля" -#: ../src/views/darkroom.c:2706 +#: ../src/views/darkroom.c:2552 msgid "decrease brush hardness" msgstr "Зменшити жорсткість пензля" #. brush opacity +/- -#: ../src/views/darkroom.c:2709 +#: ../src/views/darkroom.c:2555 msgid "increase brush opacity" msgstr "Збільшити непрозорість пензля" -#: ../src/views/darkroom.c:2710 +#: ../src/views/darkroom.c:2556 msgid "decrease brush opacity" msgstr "Зменшити непрозорість пензля" #. undo/redo -#: ../src/views/darkroom.c:2713 ../src/views/lighttable.c:1275 +#: ../src/views/darkroom.c:2559 ../src/views/lighttable.c:1275 #: ../src/views/map.c:2115 msgid "undo" msgstr "Скасувати" -#: ../src/views/darkroom.c:2714 ../src/views/lighttable.c:1276 +#: ../src/views/darkroom.c:2560 ../src/views/lighttable.c:1276 #: ../src/views/map.c:2116 msgid "redo" msgstr "Повторити" #. change the precision for adjusting sliders with keyboard shortcuts -#: ../src/views/darkroom.c:2717 +#: ../src/views/darkroom.c:2563 msgid "change keyboard shortcut slider precision" msgstr "Змінити точність керування повзунками з клавіатури" -#: ../src/views/darkroom.c:3989 +#: ../src/views/darkroom.c:3565 msgid "keyboard shortcut slider precision: fine" msgstr "Точність клавіатурного прискорювача повзунка: тонко" -#: ../src/views/darkroom.c:3991 +#: ../src/views/darkroom.c:3567 msgid "keyboard shortcut slider precision: normal" msgstr "Точність клавіатурного прискорювача повзунка: нормально" -#: ../src/views/darkroom.c:3993 +#: ../src/views/darkroom.c:3569 msgid "keyboard shortcut slider precision: coarse" msgstr "Точність клавіатурного прискорювача повзунка: грубо" -#: ../src/views/darkroom.c:4009 +#: ../src/views/darkroom.c:3584 msgid "switch to lighttable" msgstr "Перейти до світлого столу" -#: ../src/views/darkroom.c:4010 ../src/views/lighttable.c:882 +#: ../src/views/darkroom.c:3585 ../src/views/lighttable.c:882 msgid "zoom in the image" msgstr "Масштабувати зображення, максимум - 100%" -#: ../src/views/darkroom.c:4011 +#: ../src/views/darkroom.c:3586 msgid "unbounded zoom in the image" msgstr "Масштабувати зображення, максимум - 1600%" -#: ../src/views/darkroom.c:4012 +#: ../src/views/darkroom.c:3587 msgid "zoom to 100% 200% and back" msgstr "Масштабувати до 100%, 200% і назад" -#: ../src/views/darkroom.c:4013 ../src/views/lighttable.c:885 +#: ../src/views/darkroom.c:3588 ../src/views/lighttable.c:885 msgid "pan a zoomed image" msgstr "Панорамувати збільшене зображення" -#: ../src/views/darkroom.c:4015 ../src/views/lighttable.c:927 +#: ../src/views/darkroom.c:3590 ../src/views/lighttable.c:927 msgid "[modules] expand module without closing others" msgstr "[модулі] розширити модуль, не закриваючи інші" -#: ../src/views/darkroom.c:4016 ../src/views/lighttable.c:928 +#: ../src/views/darkroom.c:3591 ../src/views/lighttable.c:928 msgid "[modules] expand module and close others" msgstr "[модулі] розширити модуль і закрити інші" -#: ../src/views/darkroom.c:4018 +#: ../src/views/darkroom.c:3593 msgid "[modules] rename module" msgstr "[модулі] перейменувати модуль" -#: ../src/views/darkroom.c:4020 +#: ../src/views/darkroom.c:3595 msgid "[modules] change module position in pipe" msgstr "[модулі] змінити положення модуля в конвеєрі" @@ -25192,26 +25887,26 @@ msgid "print" msgstr "Друк" -#: ../src/views/slideshow.c:353 +#: ../src/views/slideshow.c:355 msgid "end of images" msgstr "Кінець зображень" -#: ../src/views/slideshow.c:374 +#: ../src/views/slideshow.c:376 msgid "end of images. press any key to return to lighttable mode" msgstr "" "Кінець зображень. Натисніть будь-яку клавішу, щоб повернутися до режиму " "світлого стола." -#: ../src/views/slideshow.c:504 +#: ../src/views/slideshow.c:509 msgid "waiting to start slideshow" msgstr "Очікування запуску слайд-шоу" -#: ../src/views/slideshow.c:640 ../src/views/slideshow.c:661 -#: ../src/views/slideshow.c:669 +#: ../src/views/slideshow.c:678 ../src/views/slideshow.c:705 +#: ../src/views/slideshow.c:713 msgid "slideshow paused" msgstr "Слайд-шоу призупинено" -#: ../src/views/slideshow.c:648 ../src/views/slideshow.c:655 +#: ../src/views/slideshow.c:686 ../src/views/slideshow.c:696 #, c-format msgid "slideshow delay set to %d second" msgid_plural "slideshow delay set to %d seconds" @@ -25219,35 +25914,35 @@ msgstr[1] "Затримку слайд-шоу встановлено на %d секунди" msgstr[2] "Затримку слайд-шоу встановлено на %d секунд" -#: ../src/views/slideshow.c:684 +#: ../src/views/slideshow.c:728 msgid "start and stop" msgstr "Пуск і зупинка" -#: ../src/views/slideshow.c:685 +#: ../src/views/slideshow.c:730 msgid "exit slideshow" msgstr "Вийти зі слайд-шоу" -#: ../src/views/slideshow.c:688 +#: ../src/views/slideshow.c:734 msgid "slow down" msgstr "Уповільнити" -#: ../src/views/slideshow.c:691 +#: ../src/views/slideshow.c:738 msgid "speed up" msgstr "Прискорити" -#: ../src/views/slideshow.c:695 +#: ../src/views/slideshow.c:743 msgid "step forward" msgstr "Наступне зображення" -#: ../src/views/slideshow.c:696 +#: ../src/views/slideshow.c:745 msgid "step back" msgstr "Попереднє зображення" -#: ../src/views/slideshow.c:702 +#: ../src/views/slideshow.c:753 msgid "go to next image" msgstr "Перейти до наступного зображення" -#: ../src/views/slideshow.c:703 +#: ../src/views/slideshow.c:755 msgid "go to previous image" msgstr "Перейти до попереднього зображення" @@ -25260,53 +25955,357 @@ msgid "no camera with tethering support available for use..." msgstr "Камер з підтримкою віддаленого керування не знайдено..." -#: ../src/views/view.c:1193 +#: ../src/views/view.c:1352 msgid "left click" msgstr "Лівий клік" -#: ../src/views/view.c:1196 +#: ../src/views/view.c:1355 msgid "right click" msgstr "Правий клік" -#: ../src/views/view.c:1199 +#: ../src/views/view.c:1358 msgid "middle click" msgstr "Середній клік" -#: ../src/views/view.c:1205 +#: ../src/views/view.c:1364 msgid "left double-click" msgstr "Лівий подвійний клік" -#: ../src/views/view.c:1208 +#: ../src/views/view.c:1367 msgid "right double-click" msgstr "Правий подвійний клік" -#: ../src/views/view.c:1211 +#: ../src/views/view.c:1370 msgid "drag and drop" msgstr "Перетягнути" -#: ../src/views/view.c:1214 +#: ../src/views/view.c:1373 msgid "left click+drag" msgstr "Лівий клік+перетягування" -#: ../src/views/view.c:1217 +#: ../src/views/view.c:1376 msgid "right click+drag" msgstr "Правий клік+перетягування" -#: ../src/views/view.c:1237 +#: ../src/views/view.c:1398 msgid "darktable - accels window" msgstr "darktable - вікно прискорювачів" -#: ../src/views/view.c:1285 +#: ../src/views/view.c:1447 msgid "switch to a classic window which will stay open after key release" msgstr "" "Перейти на класичне вікно, яке залишатиметься відкритим після відпускання " "клавіші" #. we add the mouse actions too -#: ../src/views/view.c:1344 +#: ../src/views/view.c:1514 msgid "mouse actions" msgstr "Дії за допомогою миші" +#~ msgid "selected image[s]" +#~ msgstr "Дії з вибраними зображеннями" + +#~ msgid "spot color mapping" +#~ msgstr "Відображення кольору області зображення" + +#~ msgid "spot mode" +#~ msgstr "Режим області зображення" + +#~ msgid "save history while developing" +#~ msgstr "Зберігати історію під час обробки" + +#~ msgid "longest" +#~ msgstr "Довший" + +#~ msgid "" +#~ "when having raw+JPEG images together in one directory it makes no sense " +#~ "to import both. with this flag one can ignore all JPEGs found." +#~ msgstr "" +#~ "Коли в одному каталозі є пари зображень raw+JPEG, немає сенсу імпортувати " +#~ "обидва. За допомогою цього прапорця можна ігнорувати всі знайдені файли " +#~ "JPEG." + +#~ msgid "red inset" +#~ msgstr "Зміщення червоного" + +#~ msgid "green inset" +#~ msgstr "Зміщення зеленого" + +#~ msgid "blue inset" +#~ msgstr "Зміщення синього" + +#~ msgid "b&w as grayscale" +#~ msgstr "Ч/Б як відтінки сірого" + +#~ msgid "red primary inset" +#~ msgstr "Зміщення основного червоного" + +#~ msgid "red primary rotation" +#~ msgstr "Обертання основного червоного" + +#~ msgid "green primary inset" +#~ msgstr "Зміщення основного зеленого" + +#~ msgid "green primary rotation" +#~ msgstr "Обертання основного зеленого" + +#~ msgid "blue primary inset" +#~ msgstr "Зміщення основного синього" + +#~ msgid "blue primary rotation" +#~ msgstr "Обертання основного синього" + +#~ msgid "" +#~ "tone equalizer needs to be after distortion modules in the pipeline – " +#~ "disabled" +#~ msgstr "" +#~ "Еквалайзер тонів повинен бути після модулів дисторсії в конвеєрі - " +#~ "вимкнено" + +#~ msgid "red primary hue" +#~ msgstr "Відтінок основного червоного" + +#~ msgctxt "preferences" +#~ msgid "4k" +#~ msgstr "4K" + +#~ msgid "only" +#~ msgstr "тільки" + +#~ msgctxt "preferences" +#~ msgid "id" +#~ msgstr "id" + +#~ msgctxt "preferences" +#~ msgid "folder" +#~ msgstr "каталогом" + +#~ msgid "" +#~ "if an instance of the module has focus, apply shortcut to that instance\n" +#~ "note: blending shortcuts always apply to the focused instance" +#~ msgstr "" +#~ "Якщо екземпляр модуля має фокус, застосувати прискорювач до цього " +#~ "екземпляра.\n" +#~ "Примітка: прискорювачі змішування завжди застосовуються до екземпляра в " +#~ "фокусі." + +#~ msgid "click to dismiss this notice permanently" +#~ msgstr "Натисніть на це повідомлення, щоб надалі його не показувати" + +#~ msgid "hardness (relative)" +#~ msgstr "Жорсткість (відносна)" + +#~ msgid "hardness (absolute)" +#~ msgstr "Жорсткість (абсолютна)" + +#~ msgid "opacity (relative)" +#~ msgstr "Непрозорість (відносна)" + +#~ msgid "opacity (absolute)" +#~ msgstr "Непрозорість (абсолютна)" + +#~ msgid "brush size (relative)" +#~ msgstr "Розмір пензля (відносний)" + +#~ msgid "low" +#~ msgstr "слабке" + +#~ msgid "medium" +#~ msgstr "середнє" + +#~ msgid "high" +#~ msgstr "сильне" + +#~ msgid "" +#~ "pen pressure control for brush masks\n" +#~ "'off': pressure reading ignored,\n" +#~ "'hardness'/'opacity'/'brush size': pressure reading controls specified " +#~ "attribute,\n" +#~ "'absolute'/'relative': pressure reading is taken directly as attribute " +#~ "value or multiplied with pre-defined setting." +#~ msgstr "" +#~ "Контроль натискання пера при малюванні масок\n" +#~ "'Вимкнено': сила натискання ігнорується,\n" +#~ "'Жорсткість'/'Непрозорість'/'Розмір пензля': сила натискання контролює " +#~ "вказаний атрибут,\n" +#~ "'Відносна/Абсолютна': сила натискання приймається безпосередньо як " +#~ "значення атрибута\n" +#~ "або помножується із заздалегідь визначеним параметром." + +#~ msgid "" +#~ "smoothing of brush strokes\n" +#~ "stronger smoothing leads to fewer nodes and easier editing but with lower " +#~ "control of accuracy." +#~ msgstr "" +#~ "Згладжування мазків\n" +#~ "Сильніше згладжування призводить до меншої кількості вузлів і легшого " +#~ "редагування, але з меншим контролем точності." + +#~ msgid "" +#~ "set strength of rebuilding in regions with all photosites clipped.\n" +#~ "the mask buttons shows the effect that is added to already reconstructed " +#~ "data." +#~ msgstr "" +#~ "Встановити силу реконструкції в областях, де всі фотопікселі " +#~ "пересвітлені.\n" +#~ "Кнопки маски показують ефект, який додається до вже реконструйованих " +#~ "даних." + +#~ msgid "" +#~ "darktable discovered problems with your OpenCL setup; disabling OpenCL " +#~ "for this session!" +#~ msgstr "" +#~ "darktable має проблеми з вашим налаштуванням OpenCL; вимкнення OpenCL для " +#~ "цього сеансу!" + +#~ msgid "RGB colors" +#~ msgstr "RGB кольори" + +#~ msgid "compression type" +#~ msgstr "Тип стиснення" + +#~ msgid "b&w image" +#~ msgstr "Ч/Б зображення" + +#~ msgid "write RGB colors" +#~ msgstr "Записати RGB кольори" + +#~ msgid "write grayscale" +#~ msgstr "Записати відтінки сірого" + +#~ msgid "tiff" +#~ msgstr "TIFF" + +#~ msgid "png" +#~ msgstr "PNG" + +#~ msgid "j2k" +#~ msgstr "J2K" + +#~ msgid "jpeg" +#~ msgstr "JPEG" + +#~ msgid "exr" +#~ msgstr "EXR" + +#~ msgid "rgbe" +#~ msgstr "RGBE" + +#~ msgid "pfm" +#~ msgstr "PFM" + +#~ msgid "netpnm" +#~ msgstr "NetPNM" + +#~ msgid "avif" +#~ msgstr "AVIF" + +#~ msgid "heif" +#~ msgstr "HEIF" + +#~ msgid "libraw" +#~ msgstr "LibRaw" + +#~ msgid "webp" +#~ msgstr "WebP" + +#~ msgid "jpeg xl" +#~ msgstr "JPEG XL" + +#~ msgid "save" +#~ msgstr "Зберегти" + +#~ msgid "add" +#~ msgstr "Додати" + +#~ msgid "write sidecar file for each image" +#~ msgstr "Записувати файли XMP для кожного зображення" + +#~ msgctxt "preferences" +#~ msgid "nothing" +#~ msgstr "немає" + +#~ msgctxt "preferences" +#~ msgid "memory size" +#~ msgstr "розмір пам'яті" + +#~ msgctxt "preferences" +#~ msgid "memory transfer" +#~ msgstr "переміщення в пам'яті" + +#~ msgctxt "preferences" +#~ msgid "memory size and transfer" +#~ msgstr "розмір і переміщення" + +#~ msgid "tune OpenCL performance" +#~ msgstr "Налаштування продуктивності OpenCL" + +#~ msgid "" +#~ "allows runtime tuning of OpenCL devices:\n" +#~ " - 'memory size': uses a fixed headroom (400MB as default),\n" +#~ " - 'memory transfer': tries a faster memory access mode (pinned memory) " +#~ "used for tiling." +#~ msgstr "" +#~ "Дозволяє оптимізацію часу виконання для пристроїв OpenCL:\n" +#~ " - 'Розмір пам'яті': використовує фіксований запас (400 МБ за " +#~ "замовчуванням).\n" +#~ " - 'Переміщення в пам'яті': намагається використовувати швидший режим " +#~ "доступу до пам'яті (закріплена пам'ять)." + +#~ msgid "" +#~ "due to a slow GPU hardware acceleration using OpenCL has been deactivated" +#~ msgstr "" +#~ "Через повільний GPU апаратне прискорення за допомогою OpenCL було " +#~ "деактивовано" + +#~ msgid "" +#~ "multiple GPUs detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "Виявлено кілька GPU - профіль планування OpenCL було встановлено " +#~ "відповідно" + +#~ msgid "" +#~ "very fast GPU detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "Виявлено дуже швидкий GPU - профіль планування OpenCL було встановлено " +#~ "відповідно" + +#~ msgid "jp2" +#~ msgstr "jp2" + +#~ msgid "no-op" +#~ msgstr "no-op" + +#~ msgid "distortion fine-tune" +#~ msgstr "Тонке регулювання дисторсії" + +#~ msgid "vignetting fine-tune" +#~ msgstr "Тонке регулювання віньєтування" + +#~ msgid "TCA red fine-tune" +#~ msgstr "Поперечні ХА - коригування червоного" + +#~ msgid "TCA blue fine-tune" +#~ msgstr "Поперечні ХА - коригування синього" + +#~ msgid "linear Prophoto RGB" +#~ msgstr "Лінійний ProPhoto RGB" + +#~ msgid "<leave unchanged>" +#~ msgstr "<залишити незмінним>" + +#~ msgid "reference to which the marker should be scaled to" +#~ msgstr "Референс, до якого слід масштабувати маркер" + +#~ msgid "length of the marker which is used as scaling reference" +#~ msgstr "Довжина маркера, який використовується як еталон масштабування" + +#, c-format +#~ msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" +#~ msgstr "%.1f мм (%.1f мм еквівалент, Кроп %.1f)" + #~ msgid "_yes, physically delete" #~ msgstr "Так, фізично видалити" @@ -25370,9 +26369,6 @@ #~ msgid "stop process" #~ msgstr "Зупинити процес" -#~ msgid "set the custom aspect ratio" -#~ msgstr "Встановити власне співвідношення сторін" - #~ msgid "legacy flag. set for all new images" #~ msgstr "Застарілий прапорець. Встановлюється для всіх нових зображень." @@ -25386,9 +26382,6 @@ #~ msgid "rgb colors" #~ msgstr "Кольори RGB" -#~ msgid "rgb parade" -#~ msgstr "RGB-парад" - #~ msgid "rotate 90 degrees ccw" #~ msgstr "Поворот на 90 градусів проти годинникової стрілки" @@ -25863,20 +26856,12 @@ #~ "вбудовані метадані корекції оптики недоступні\n" #~ "і darktable скомпільовано без lensfun" -#~ msgid "actual selection" -#~ msgstr "поточний вибір" - #~ msgid "allow to pan & zoom while editing masks" #~ msgstr "дозволити панорамування і масштабування при редагуванні масок" #~ msgid "recovery" #~ msgstr "відновлення" -#~ msgid "" -#~ "set strength of reconstruction in regions with all photosites clipped" -#~ msgstr "" -#~ "встановити силу реконструкції в областях, де всі фотопікселі пересвітлені" - #~ msgctxt "preferences" #~ msgid "on startup" #~ msgstr "при запуску" @@ -26018,9 +27003,6 @@ #~ msgid "lift chroma" #~ msgstr "підйом кольоровості" -#~ msgid "lift hue" -#~ msgstr "підйом відтінку" - #~ msgid "power luminance" #~ msgstr "експонента яскравості" @@ -26054,9 +27036,6 @@ #~ msgid "chroma highlights" #~ msgstr "кольоровість в світлих тонах" -#~ msgid "chroma global" -#~ msgstr "глобальна кольоровість" - #~ msgid "chroma mid-tones" #~ msgstr "кольоровість в середніх тонах" @@ -26817,9 +27796,6 @@ #~ msgid "%.0f ISO" #~ msgstr "%.0f ISO" -#~ msgid "white balance settings" -#~ msgstr "налаштування балансу білого" - #, c-format #~ msgid "%.0f mired" #~ msgstr "%.0f майред" @@ -27318,10 +28294,6 @@ #~ msgid "set view to waveform" #~ msgstr "встановити тип перегляду на форму хвиль" -#~ msgctxt "accel" -#~ msgid "replace metadata" -#~ msgstr "замінити метадані" - #~ msgid "open folder" #~ msgstr "відкрити каталог" @@ -27810,9 +28782,6 @@ #~ "вставити частини історії змін\n" #~ "у всі вибрані зображення" -#~ msgid "export selected" -#~ msgstr "експорт вибраного" - #~ msgctxt "accel" #~ msgid "import image" #~ msgstr "імпортувати зображення" diff -Nru darktable-4.4.2/po/zh_CN.po darktable-4.6.1/po/zh_CN.po --- darktable-4.4.2/po/zh_CN.po 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/po/zh_CN.po 2024-02-16 17:31:09.000000000 +0000 @@ -14,8 +14,8 @@ msgstr "" "Project-Id-Version: darktable 3.6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-31 13:24+0200\n" -"PO-Revision-Date: 2023-06-04 01:27-0400\n" +"POT-Creation-Date: 2023-11-30 19:32+0100\n" +"PO-Revision-Date: 2023-11-30 23:03-0500\n" "Last-Translator: Tianhao Chai <cth451@gmail.com>\n" "Language-Team: Chinese - China <>\n" "Language: zh_CN\n" @@ -23,290 +23,255 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 3.0\n" +"X-Generator: Poedit 3.4.1\n" "X-Poedit-SourceCharset: UTF-8\n" -#: ../build/bin/conf_gen.h:172 ../build/bin/preferences_gen.h:7632 +#: ../build/bin/conf_gen.h:174 msgctxt "preferences" msgid "first instance" msgstr "第一个实例" -#: ../build/bin/conf_gen.h:173 ../build/bin/preferences_gen.h:7637 -#: ../build/bin/preferences_gen.h:7656 +#: ../build/bin/conf_gen.h:175 ../build/bin/preferences_gen.h:7922 msgctxt "preferences" msgid "last instance" msgstr "最后一个实例" -#: ../build/bin/conf_gen.h:240 ../build/bin/conf_gen.h:346 -#: ../build/bin/conf_gen.h:356 ../build/bin/conf_gen.h:1186 -#: ../build/bin/conf_gen.h:1202 ../build/bin/preferences_gen.h:4137 -#: ../build/bin/preferences_gen.h:4156 ../build/bin/preferences_gen.h:4232 -#: ../build/bin/preferences_gen.h:6706 ../build/bin/preferences_gen.h:6834 -#: ../build/bin/preferences_gen.h:6899 +#: ../build/bin/conf_gen.h:252 ../build/bin/conf_gen.h:352 +#: ../build/bin/conf_gen.h:362 ../build/bin/conf_gen.h:1239 +#: ../build/bin/conf_gen.h:1255 ../build/bin/conf_gen.h:1275 +#: ../build/bin/preferences_gen.h:4747 ../build/bin/preferences_gen.h:4885 msgctxt "preferences" msgid "never" msgstr "从不" -#: ../build/bin/conf_gen.h:241 ../build/bin/preferences_gen.h:6711 +#: ../build/bin/conf_gen.h:253 msgctxt "preferences" msgid "once a month" msgstr "每月一次" -#: ../build/bin/conf_gen.h:242 ../build/bin/preferences_gen.h:6716 -#: ../build/bin/preferences_gen.h:6745 +#: ../build/bin/conf_gen.h:254 ../build/bin/preferences_gen.h:7138 msgctxt "preferences" msgid "once a week" msgstr "每周一次" -#: ../build/bin/conf_gen.h:243 ../build/bin/preferences_gen.h:6721 +#: ../build/bin/conf_gen.h:255 msgctxt "preferences" msgid "once a day" msgstr "每天一次" -#: ../build/bin/conf_gen.h:244 ../build/bin/preferences_gen.h:6726 +#: ../build/bin/conf_gen.h:256 msgctxt "preferences" msgid "on close" msgstr "关闭时" -#: ../build/bin/conf_gen.h:280 ../build/bin/conf_gen.h:1179 -#: ../build/bin/conf_gen.h:1195 ../build/bin/preferences_gen.h:4102 -#: ../build/bin/preferences_gen.h:4197 ../build/bin/preferences_gen.h:5748 +#: ../build/bin/conf_gen.h:292 ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1248 ../build/bin/conf_gen.h:1276 msgctxt "preferences" msgid "small" msgstr "小" -#: ../build/bin/conf_gen.h:281 ../build/bin/conf_gen.h:393 -#: ../build/bin/preferences_gen.h:5753 ../build/bin/preferences_gen.h:5782 -#: ../build/bin/preferences_gen.h:5969 ../build/bin/preferences_gen.h:5998 +#: ../build/bin/conf_gen.h:293 ../build/bin/conf_gen.h:405 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6223 msgctxt "preferences" msgid "default" msgstr "默认" -#: ../build/bin/conf_gen.h:282 ../build/bin/conf_gen.h:2814 -#: ../build/bin/preferences_gen.h:5758 +#: ../build/bin/conf_gen.h:294 ../build/bin/conf_gen.h:2904 msgctxt "preferences" msgid "large" msgstr "多数" -#: ../build/bin/conf_gen.h:283 ../build/bin/preferences_gen.h:5763 +#: ../build/bin/conf_gen.h:295 msgctxt "preferences" msgid "unrestricted" msgstr "无限制" -#: ../build/bin/conf_gen.h:347 ../build/bin/preferences_gen.h:6839 +#: ../build/bin/conf_gen.h:353 msgctxt "preferences" msgid "after edit" msgstr "编辑后" -#: ../build/bin/conf_gen.h:348 ../build/bin/preferences_gen.h:6844 -#: ../build/bin/preferences_gen.h:6863 +#: ../build/bin/conf_gen.h:354 ../build/bin/preferences_gen.h:7224 msgctxt "preferences" msgid "on import" msgstr "导入时" -#: ../build/bin/conf_gen.h:357 ../build/bin/conf_gen.h:1178 -#: ../build/bin/conf_gen.h:1194 ../build/bin/conf_gen.h:3214 -#: ../build/bin/preferences_gen.h:4097 ../build/bin/preferences_gen.h:4192 -#: ../build/bin/preferences_gen.h:5112 ../build/bin/preferences_gen.h:5166 -#: ../build/bin/preferences_gen.h:6904 +#: ../build/bin/conf_gen.h:363 ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1247 ../build/bin/conf_gen.h:3300 +#: ../build/bin/preferences_gen.h:5644 msgctxt "preferences" msgid "always" msgstr "总是" -#: ../build/bin/conf_gen.h:358 ../build/bin/preferences_gen.h:6909 -#: ../build/bin/preferences_gen.h:6928 +#: ../build/bin/conf_gen.h:364 ../build/bin/preferences_gen.h:7259 msgctxt "preferences" msgid "only large entries" msgstr "只有大的条目" -#: ../build/bin/conf_gen.h:378 ../build/bin/preferences_gen.h:8069 +#: ../build/bin/conf_gen.h:390 msgctxt "preferences" msgid "sensitive" msgstr "区分大小写" -#: ../build/bin/conf_gen.h:379 ../build/bin/preferences_gen.h:8074 -#: ../build/bin/preferences_gen.h:8093 +#: ../build/bin/conf_gen.h:391 ../build/bin/preferences_gen.h:8133 msgctxt "preferences" msgid "insensitive" msgstr "不区分大小写" -#: ../build/bin/conf_gen.h:394 ../build/bin/preferences_gen.h:5974 +#: ../build/bin/conf_gen.h:406 msgctxt "preferences" msgid "multiple GPUs" msgstr "多个 GPU" -#: ../build/bin/conf_gen.h:395 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/conf_gen.h:407 msgctxt "preferences" msgid "very fast GPU" msgstr "非常快的 GPU" -#: ../build/bin/conf_gen.h:403 ../build/bin/preferences_gen.h:6040 -#: ../build/bin/preferences_gen.h:6074 +#: ../build/bin/conf_gen.h:755 msgctxt "preferences" -msgid "nothing" -msgstr "空" - -#: ../build/bin/conf_gen.h:404 ../build/bin/preferences_gen.h:6045 -msgctxt "preferences" -msgid "memory size" -msgstr "内存大小" - -#: ../build/bin/conf_gen.h:405 ../build/bin/preferences_gen.h:6050 -msgctxt "preferences" -msgid "memory transfer" -msgstr "内存传输" - -#: ../build/bin/conf_gen.h:406 ../build/bin/preferences_gen.h:6055 -msgctxt "preferences" -msgid "memory size and transfer" -msgstr "内存大小和传输" - -#: ../build/bin/conf_gen.h:706 ../build/bin/preferences_gen.h:8257 -#: ../build/bin/preferences_gen.h:8281 -msgctxt "preferences" -msgid "id" -msgstr "id" +msgid "import time" +msgstr "导入时间" -#: ../build/bin/conf_gen.h:707 ../build/bin/preferences_gen.h:8262 +#: ../build/bin/conf_gen.h:756 msgctxt "preferences" -msgid "folder" -msgstr "文件夹" +msgid "folder name" +msgstr "文件夹名称" -#: ../build/bin/conf_gen.h:721 +#: ../build/bin/conf_gen.h:770 msgctxt "preferences" msgid "RGB" msgstr "RGB" -#: ../build/bin/conf_gen.h:722 +#: ../build/bin/conf_gen.h:771 msgctxt "preferences" msgid "Lab" msgstr "Lab" -#: ../build/bin/conf_gen.h:723 +#: ../build/bin/conf_gen.h:772 msgctxt "preferences" msgid "LCh" msgstr "LCh" -#: ../build/bin/conf_gen.h:724 +#: ../build/bin/conf_gen.h:773 msgctxt "preferences" msgid "HSL" msgstr "HSL" -#: ../build/bin/conf_gen.h:725 +#: ../build/bin/conf_gen.h:774 msgctxt "preferences" msgid "Hex" msgstr "Hex" -#: ../build/bin/conf_gen.h:726 ../build/bin/conf_gen.h:1830 -#: ../build/bin/conf_gen.h:2488 ../build/bin/conf_gen.h:2790 -#: ../build/bin/conf_gen.h:3044 ../build/bin/preferences_gen.h:5577 -#: ../build/bin/preferences_gen.h:6561 +#: ../build/bin/conf_gen.h:775 ../build/bin/conf_gen.h:1916 +#: ../build/bin/conf_gen.h:2578 ../build/bin/conf_gen.h:2880 +#: ../build/bin/conf_gen.h:3136 msgctxt "preferences" msgid "none" msgstr "无" -#: ../build/bin/conf_gen.h:734 +#: ../build/bin/conf_gen.h:783 msgctxt "preferences" msgid "mean" msgstr "均值" -#: ../build/bin/conf_gen.h:735 +#: ../build/bin/conf_gen.h:784 msgctxt "preferences" msgid "min" msgstr "最小" -#: ../build/bin/conf_gen.h:736 +#: ../build/bin/conf_gen.h:785 msgctxt "preferences" msgid "max" msgstr "最大" -#: ../build/bin/conf_gen.h:924 +#: ../build/bin/conf_gen.h:973 msgid "select only new pictures" msgstr "仅选择新图像" -#: ../build/bin/conf_gen.h:925 +#: ../build/bin/conf_gen.h:974 msgid "only select images that have not already been imported" msgstr "仅选择未导入的图像" -#: ../build/bin/conf_gen.h:930 -msgid "ignore JPEG images" -msgstr "忽略 JPEG 文件" +#: ../build/bin/conf_gen.h:979 +msgid "ignore non-raw images" +msgstr "忽略非 raw 图像" -#: ../build/bin/conf_gen.h:931 +#: ../build/bin/conf_gen.h:980 msgid "" -"when having raw+JPEG images together in one directory it makes no sense to " -"import both. with this flag one can ignore all JPEGs found." +"if enabled, only raw files will be allowed to import. non-raw files will not " +"be visible in the dialog and will not be imported." msgstr "" -"在目录中同时有 raw 和 JPEG 格式时,两者都导入是没有意义的。此选项会忽略发现的" -"所有 JPEG 文件。" +"选中时,仅导入 raw 图像。raw 图像之外的文件(如 jpeg)将不会在列表中显示也不" +"会被导入。" -#: ../build/bin/conf_gen.h:936 +#: ../build/bin/conf_gen.h:985 msgid "apply metadata" msgstr "应用元数据" -#: ../build/bin/conf_gen.h:937 +#: ../build/bin/conf_gen.h:986 msgid "apply some metadata to all newly imported images." msgstr "对所有新导入的图像应用元数据。" -#: ../build/bin/conf_gen.h:942 +#: ../build/bin/conf_gen.h:991 msgid "recursive directory" msgstr "递归遍历" -#: ../build/bin/conf_gen.h:943 +#: ../build/bin/conf_gen.h:992 msgid "recursive directory traversal when importing filmrolls" msgstr "导入胶卷时递归遍历目录" -#: ../build/bin/conf_gen.h:948 +#: ../build/bin/conf_gen.h:997 msgid "creator to be applied when importing" msgstr "导入图像时应用的作者" -#: ../build/bin/conf_gen.h:954 +#: ../build/bin/conf_gen.h:1003 msgid "publisher to be applied when importing" msgstr "导入图像时应用的发行者" -#: ../build/bin/conf_gen.h:960 +#: ../build/bin/conf_gen.h:1009 msgid "rights to be applied when importing" msgstr "导入图像时应用的授权协议" -#: ../build/bin/conf_gen.h:966 +#: ../build/bin/conf_gen.h:1015 msgid "comma separated tags to be applied when importing" msgstr "导入图像时应用的标签(逗号分隔)" -#: ../build/bin/conf_gen.h:972 +#: ../build/bin/conf_gen.h:1021 msgid "import tags from XMP" msgstr "从 XMP 导入标签" -#: ../build/bin/conf_gen.h:998 +#: ../build/bin/conf_gen.h:1051 msgid "initial rating" msgstr "初始评级" -#: ../build/bin/conf_gen.h:999 +#: ../build/bin/conf_gen.h:1052 msgid "initial star rating for all images when importing a filmroll" msgstr "导入一个胶卷时对所有图像的初始星级评定" -#: ../build/bin/conf_gen.h:1004 +#: ../build/bin/conf_gen.h:1057 msgid "ignore EXIF rating" msgstr "忽略 EXIF 评级" -#: ../build/bin/conf_gen.h:1005 +#: ../build/bin/conf_gen.h:1058 msgid "" "ignore EXIF rating. if not set and EXIF rating is found, it overrides " "'initial rating'" msgstr "忽略 EXIF 评级。未设定此选项时,EXIF 评级信息会覆盖“初始导入评级”。" -#: ../build/bin/conf_gen.h:1010 +#: ../build/bin/conf_gen.h:1063 msgid "import job" msgstr "导入任务" -#: ../build/bin/conf_gen.h:1011 +#: ../build/bin/conf_gen.h:1064 msgid "name of the import job" msgstr "导入任务名称" -#: ../build/bin/conf_gen.h:1016 +#: ../build/bin/conf_gen.h:1069 msgid "override today's date" msgstr "覆盖今天的日期" -#: ../build/bin/conf_gen.h:1017 +#: ../build/bin/conf_gen.h:1070 msgid "" "type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override " "the current date/time used when expanding variables:\n" @@ -318,192 +283,189 @@ "$(YEAR), $(MONTH), $(DAY), $(HOUR), $(MINUTE), $(SECONDS), $(MSEC)\n" "不需要时请留空" -#: ../build/bin/conf_gen.h:1022 +#: ../build/bin/conf_gen.h:1075 msgid "keep this window open" msgstr "保持窗口打开" -#: ../build/bin/conf_gen.h:1023 +#: ../build/bin/conf_gen.h:1076 msgid "keep this window open to run several imports" msgstr "保持窗口打开以运行多次导入" -#: ../build/bin/conf_gen.h:1180 ../build/bin/conf_gen.h:1196 -#: ../build/bin/preferences_gen.h:4107 ../build/bin/preferences_gen.h:4202 +#: ../build/bin/conf_gen.h:1233 ../build/bin/conf_gen.h:1249 +#: ../build/bin/conf_gen.h:1277 msgctxt "preferences" msgid "VGA" msgstr "VGA" -#: ../build/bin/conf_gen.h:1181 ../build/bin/conf_gen.h:1197 -#: ../build/bin/preferences_gen.h:4112 ../build/bin/preferences_gen.h:4207 -#: ../build/bin/preferences_gen.h:4251 +#: ../build/bin/conf_gen.h:1234 ../build/bin/conf_gen.h:1250 +#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4782 msgctxt "preferences" msgid "720p" msgstr "720p" -#: ../build/bin/conf_gen.h:1182 ../build/bin/conf_gen.h:1198 -#: ../build/bin/preferences_gen.h:4117 ../build/bin/preferences_gen.h:4212 +#: ../build/bin/conf_gen.h:1235 ../build/bin/conf_gen.h:1251 +#: ../build/bin/conf_gen.h:1279 msgctxt "preferences" msgid "1080p" msgstr "1080p" -#: ../build/bin/conf_gen.h:1183 ../build/bin/conf_gen.h:1199 -#: ../build/bin/preferences_gen.h:4122 ../build/bin/preferences_gen.h:4217 +#: ../build/bin/conf_gen.h:1236 ../build/bin/conf_gen.h:1252 +#: ../build/bin/conf_gen.h:1280 msgctxt "preferences" msgid "WQXGA" msgstr "WQXGA" -#: ../build/bin/conf_gen.h:1184 ../build/bin/conf_gen.h:1200 -#: ../build/bin/preferences_gen.h:4127 ../build/bin/preferences_gen.h:4222 +#: ../build/bin/conf_gen.h:1237 ../build/bin/conf_gen.h:1253 +#: ../build/bin/conf_gen.h:1281 msgctxt "preferences" msgid "4K" msgstr "4K" -#: ../build/bin/conf_gen.h:1185 ../build/bin/conf_gen.h:1201 -#: ../build/bin/preferences_gen.h:4132 ../build/bin/preferences_gen.h:4227 +#: ../build/bin/conf_gen.h:1238 ../build/bin/conf_gen.h:1254 +#: ../build/bin/conf_gen.h:1282 msgctxt "preferences" msgid "5K" msgstr "5K" -#: ../build/bin/conf_gen.h:1228 +#: ../build/bin/conf_gen.h:1314 msgctxt "preferences" msgid "off" msgstr "关" -#: ../build/bin/conf_gen.h:1229 +#: ../build/bin/conf_gen.h:1315 msgctxt "preferences" msgid "hardness (relative)" msgstr "硬度 (相对值)" -#: ../build/bin/conf_gen.h:1230 +#: ../build/bin/conf_gen.h:1316 msgctxt "preferences" msgid "hardness (absolute)" msgstr "硬度 (绝对值)" -#: ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1317 msgctxt "preferences" msgid "opacity (relative)" msgstr "透明度 (相对值)" -#: ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1318 msgctxt "preferences" msgid "opacity (absolute)" msgstr "透明度 (绝对值)" -#: ../build/bin/conf_gen.h:1233 +#: ../build/bin/conf_gen.h:1319 msgctxt "preferences" msgid "brush size (relative)" msgstr "笔刷尺寸 (相对值)" -#: ../build/bin/conf_gen.h:1241 +#: ../build/bin/conf_gen.h:1327 msgctxt "preferences" msgid "low" msgstr "低" -#: ../build/bin/conf_gen.h:1242 +#: ../build/bin/conf_gen.h:1328 msgctxt "preferences" msgid "medium" msgstr "中" -#: ../build/bin/conf_gen.h:1243 +#: ../build/bin/conf_gen.h:1329 msgctxt "preferences" msgid "high" msgstr "高" -#: ../build/bin/conf_gen.h:1263 ../build/bin/preferences_gen.h:4836 -#: ../build/bin/preferences_gen.h:4860 +#: ../build/bin/conf_gen.h:1349 ../build/bin/preferences_gen.h:5405 msgctxt "preferences" msgid "false color" msgstr "伪色" -#: ../build/bin/conf_gen.h:1264 ../build/bin/preferences_gen.h:4841 +#: ../build/bin/conf_gen.h:1350 msgctxt "preferences" msgid "grayscale" msgstr "灰度" -#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4567 +#: ../build/bin/conf_gen.h:1364 msgctxt "preferences" msgid "top left" msgstr "左上" -#: ../build/bin/conf_gen.h:1279 ../build/bin/preferences_gen.h:4572 +#: ../build/bin/conf_gen.h:1365 msgctxt "preferences" msgid "top right" msgstr "右上" -#: ../build/bin/conf_gen.h:1280 ../build/bin/preferences_gen.h:4577 +#: ../build/bin/conf_gen.h:1366 msgctxt "preferences" msgid "top center" msgstr "上中" -#: ../build/bin/conf_gen.h:1281 ../build/bin/preferences_gen.h:4582 -#: ../build/bin/preferences_gen.h:4606 +#: ../build/bin/conf_gen.h:1367 ../build/bin/preferences_gen.h:5217 msgctxt "preferences" msgid "bottom" msgstr "底部" -#: ../build/bin/conf_gen.h:1282 ../build/bin/preferences_gen.h:4587 +#: ../build/bin/conf_gen.h:1368 msgctxt "preferences" msgid "hidden" msgstr "隐藏" -#: ../build/bin/conf_gen.h:1792 +#: ../build/bin/conf_gen.h:1878 msgid "show OSD" msgstr "显示 OSD" -#: ../build/bin/conf_gen.h:1793 +#: ../build/bin/conf_gen.h:1879 msgid "toggle the visibility of the map overlays" msgstr "切换地图叠加层的能见性" -#: ../build/bin/conf_gen.h:1798 ../src/libs/map_settings.c:146 +#: ../build/bin/conf_gen.h:1884 ../src/libs/map_settings.c:119 msgid "filtered images" msgstr "过滤图像" -#: ../build/bin/conf_gen.h:1799 +#: ../build/bin/conf_gen.h:1885 msgid "when set limit the images drawn to the current filmstrip" msgstr "设定此选项时,仅在地图上显示当前胶卷内的图像" -#: ../build/bin/conf_gen.h:1806 +#: ../build/bin/conf_gen.h:1892 msgid "max images" msgstr "最大图像数" -#: ../build/bin/conf_gen.h:1807 +#: ../build/bin/conf_gen.h:1893 msgid "the maximum number of image thumbnails drawn on the map" msgstr "在地图上显示图像的最大数量" -#: ../build/bin/conf_gen.h:1814 +#: ../build/bin/conf_gen.h:1900 msgid "group size factor" msgstr "分组缩放比例" -#: ../build/bin/conf_gen.h:1815 +#: ../build/bin/conf_gen.h:1901 msgid "" "increase or decrease the spatial size of images groups on the map. can " "influence the calculation time" msgstr "增加/减少图像分组在地图上的空间大小。此选项会影响计算所需时间" -#: ../build/bin/conf_gen.h:1822 +#: ../build/bin/conf_gen.h:1908 msgid "min images per group" msgstr "每组最小图像数" -#: ../build/bin/conf_gen.h:1823 +#: ../build/bin/conf_gen.h:1909 msgid "" "the minimum number of images to set up an images group. can influence the " "calculation time." msgstr "可以分为一组的最小图像数。此选项会影响计算所需时间。" -#: ../build/bin/conf_gen.h:1828 +#: ../build/bin/conf_gen.h:1914 msgctxt "preferences" msgid "thumbnail" msgstr "缩略图" -#: ../build/bin/conf_gen.h:1829 +#: ../build/bin/conf_gen.h:1915 msgctxt "preferences" msgid "count" msgstr "计数" -#: ../build/bin/conf_gen.h:1832 ../src/libs/map_settings.c:159 +#: ../build/bin/conf_gen.h:1918 msgid "thumbnail display" msgstr "缩略图显示" -#: ../build/bin/conf_gen.h:1833 +#: ../build/bin/conf_gen.h:1919 msgid "" "three options are available: images thumbnails, only the count of images of " "the group or nothing" @@ -511,266 +473,257 @@ "可从以下选择:\n" "图像缩略图、分组内图像数量或不显示" -#: ../build/bin/conf_gen.h:1844 +#: ../build/bin/conf_gen.h:1930 msgid "max polygon points" msgstr "最大多边形节点数" -#: ../build/bin/conf_gen.h:1845 +#: ../build/bin/conf_gen.h:1931 msgid "" "limit the number of points imported with polygon in find location module" msgstr "限制地点查找模块中按多边形查找时最大可以使用的节点数" -#: ../build/bin/conf_gen.h:2135 ../build/bin/preferences_gen.h:4722 -#: ../build/bin/preferences_gen.h:4756 +#: ../build/bin/conf_gen.h:2221 ../build/bin/preferences_gen.h:5329 msgctxt "preferences" msgid "original" msgstr "原始" -#: ../build/bin/conf_gen.h:2136 ../build/bin/preferences_gen.h:4727 +#: ../build/bin/conf_gen.h:2222 msgctxt "preferences" msgid "to 1/2" msgstr "至 1/2" -#: ../build/bin/conf_gen.h:2137 ../build/bin/preferences_gen.h:4732 +#: ../build/bin/conf_gen.h:2223 msgctxt "preferences" msgid "to 1/3" msgstr "至 1/3" -#: ../build/bin/conf_gen.h:2138 ../build/bin/preferences_gen.h:4737 +#: ../build/bin/conf_gen.h:2224 msgctxt "preferences" msgid "to 1/4" msgstr "至 1/4" -#: ../build/bin/conf_gen.h:2152 ../build/bin/conf_gen.h:2162 -#: ../build/bin/preferences_gen.h:5384 ../build/bin/preferences_gen.h:5449 +#: ../build/bin/conf_gen.h:2244 ../build/bin/conf_gen.h:2254 msgctxt "preferences" msgid "bilinear" msgstr "双线性" -#: ../build/bin/conf_gen.h:2153 ../build/bin/conf_gen.h:2163 -#: ../build/bin/preferences_gen.h:5389 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5454 +#: ../build/bin/conf_gen.h:2245 ../build/bin/conf_gen.h:2255 +#: ../build/bin/preferences_gen.h:5847 msgctxt "preferences" msgid "bicubic" msgstr "双立方" -#: ../build/bin/conf_gen.h:2154 ../build/bin/conf_gen.h:2164 -#: ../build/bin/preferences_gen.h:5394 ../build/bin/preferences_gen.h:5459 +#: ../build/bin/conf_gen.h:2246 ../build/bin/conf_gen.h:2256 msgctxt "preferences" msgid "lanczos2" msgstr "lanczos2" -#: ../build/bin/conf_gen.h:2165 ../build/bin/preferences_gen.h:5464 -#: ../build/bin/preferences_gen.h:5483 +#: ../build/bin/conf_gen.h:2257 ../build/bin/preferences_gen.h:5882 msgctxt "preferences" msgid "lanczos3" msgstr "lanczos3" -#: ../build/bin/conf_gen.h:2487 ../build/bin/conf_gen.h:3217 -#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:6556 -#: ../build/bin/preferences_gen.h:6592 +#: ../build/bin/conf_gen.h:2577 ../build/bin/conf_gen.h:3303 +#: ../build/bin/preferences_gen.h:7032 msgctxt "preferences" msgid "auto" msgstr "自动" -#: ../build/bin/conf_gen.h:2489 ../build/bin/preferences_gen.h:6566 +#: ../build/bin/conf_gen.h:2579 msgctxt "preferences" msgid "libsecret" msgstr "libsecret" -#: ../build/bin/conf_gen.h:2490 ../build/bin/preferences_gen.h:6572 +#: ../build/bin/conf_gen.h:2580 msgctxt "preferences" msgid "kwallet" msgstr "kwallet" -#: ../build/bin/conf_gen.h:2700 +#: ../build/bin/conf_gen.h:2790 msgctxt "preferences" msgid "vectorscope" msgstr "矢量表" -#: ../build/bin/conf_gen.h:2701 +#: ../build/bin/conf_gen.h:2791 msgctxt "preferences" msgid "waveform" msgstr "波形" -#: ../build/bin/conf_gen.h:2702 +#: ../build/bin/conf_gen.h:2792 msgctxt "preferences" msgid "RGB parade" msgstr "RGB parade" -#: ../build/bin/conf_gen.h:2703 +#: ../build/bin/conf_gen.h:2793 msgctxt "preferences" msgid "histogram" msgstr "直方图" -#: ../build/bin/conf_gen.h:2711 ../build/bin/preferences_gen.h:7264 +#: ../build/bin/conf_gen.h:2801 msgctxt "preferences" msgid "left" msgstr "左" -#: ../build/bin/conf_gen.h:2712 ../build/bin/preferences_gen.h:7269 -#: ../build/bin/preferences_gen.h:7288 +#: ../build/bin/conf_gen.h:2802 ../build/bin/preferences_gen.h:7619 msgctxt "preferences" msgid "right" msgstr "右" -#: ../build/bin/conf_gen.h:2720 ../build/bin/conf_gen.h:2757 +#: ../build/bin/conf_gen.h:2810 ../build/bin/conf_gen.h:2847 msgctxt "preferences" msgid "logarithmic" msgstr "对数" -#: ../build/bin/conf_gen.h:2721 ../build/bin/conf_gen.h:2758 +#: ../build/bin/conf_gen.h:2811 ../build/bin/conf_gen.h:2848 msgctxt "preferences" msgid "linear" msgstr "线性" -#: ../build/bin/conf_gen.h:2729 +#: ../build/bin/conf_gen.h:2819 msgctxt "preferences" msgid "horizontal" msgstr "水平" -#: ../build/bin/conf_gen.h:2730 +#: ../build/bin/conf_gen.h:2820 msgctxt "preferences" msgid "vertical" msgstr "垂直" -#: ../build/bin/conf_gen.h:2738 +#: ../build/bin/conf_gen.h:2828 msgctxt "preferences" msgid "overlaid" msgstr "叠加层" -#: ../build/bin/conf_gen.h:2739 +#: ../build/bin/conf_gen.h:2829 msgctxt "preferences" msgid "parade" msgstr "parade" -#: ../build/bin/conf_gen.h:2747 +#: ../build/bin/conf_gen.h:2837 msgctxt "preferences" msgid "u*v*" msgstr "u*v*" -#: ../build/bin/conf_gen.h:2748 +#: ../build/bin/conf_gen.h:2838 msgctxt "preferences" msgid "AzBz" msgstr "AzBz" -#: ../build/bin/conf_gen.h:2749 +#: ../build/bin/conf_gen.h:2839 msgctxt "preferences" msgid "RYB" msgstr "RYB" -#: ../build/bin/conf_gen.h:2791 +#: ../build/bin/conf_gen.h:2881 msgctxt "preferences" msgid "monochromatic" msgstr "单色" -#: ../build/bin/conf_gen.h:2792 +#: ../build/bin/conf_gen.h:2882 msgctxt "preferences" msgid "analogous" msgstr "相似色" -#: ../build/bin/conf_gen.h:2793 +#: ../build/bin/conf_gen.h:2883 msgctxt "preferences" msgid "analogous complementary" msgstr "相似色及反相色" -#: ../build/bin/conf_gen.h:2794 +#: ../build/bin/conf_gen.h:2884 msgctxt "preferences" msgid "complementary" msgstr "反相色" -#: ../build/bin/conf_gen.h:2795 +#: ../build/bin/conf_gen.h:2885 msgctxt "preferences" msgid "split complementary" msgstr "拆分反相色" -#: ../build/bin/conf_gen.h:2796 +#: ../build/bin/conf_gen.h:2886 msgctxt "preferences" msgid "dyad" msgstr "二值分布" -#: ../build/bin/conf_gen.h:2797 +#: ../build/bin/conf_gen.h:2887 msgctxt "preferences" msgid "triad" msgstr "三值分布" -#: ../build/bin/conf_gen.h:2798 +#: ../build/bin/conf_gen.h:2888 msgctxt "preferences" msgid "tetrad" msgstr "四值分布" -#: ../build/bin/conf_gen.h:2799 +#: ../build/bin/conf_gen.h:2889 msgctxt "preferences" msgid "square" msgstr "正方分布" -#: ../build/bin/conf_gen.h:2813 +#: ../build/bin/conf_gen.h:2903 msgctxt "preferences" msgid "normal" msgstr "正常" -#: ../build/bin/conf_gen.h:2815 +#: ../build/bin/conf_gen.h:2905 msgctxt "preferences" msgid "narrow" msgstr "狭窄" -#: ../build/bin/conf_gen.h:2816 +#: ../build/bin/conf_gen.h:2906 msgctxt "preferences" msgid "line" msgstr "直线" -#: ../build/bin/conf_gen.h:2956 +#: ../build/bin/conf_gen.h:3046 msgctxt "preferences" msgid "mm" msgstr "毫米" -#: ../build/bin/conf_gen.h:2957 +#: ../build/bin/conf_gen.h:3047 msgctxt "preferences" msgid "cm" msgstr "厘米" -#: ../build/bin/conf_gen.h:2958 +#: ../build/bin/conf_gen.h:3048 msgctxt "preferences" msgid "inch" msgstr "英寸" -#: ../build/bin/conf_gen.h:3003 ../build/bin/preferences_gen.h:7324 -#: ../build/bin/preferences_gen.h:7353 +#: ../build/bin/conf_gen.h:3093 ../build/bin/preferences_gen.h:7654 msgctxt "preferences" msgid "all" msgstr "全部" -#: ../build/bin/conf_gen.h:3004 ../build/bin/preferences_gen.h:7329 +#: ../build/bin/conf_gen.h:3094 msgctxt "preferences" msgid "xatom" msgstr "xatom" -#: ../build/bin/conf_gen.h:3005 ../build/bin/preferences_gen.h:7334 +#: ../build/bin/conf_gen.h:3095 msgctxt "preferences" msgid "colord" msgstr "colord" -#: ../build/bin/conf_gen.h:3041 ../build/bin/preferences_gen.h:5562 -#: ../build/bin/preferences_gen.h:5596 +#: ../build/bin/conf_gen.h:3133 ../build/bin/preferences_gen.h:5958 msgctxt "preferences" msgid "scene-referred (filmic)" msgstr "基于场景(胶片对数曲线)" -#: ../build/bin/conf_gen.h:3042 ../build/bin/preferences_gen.h:5567 +#: ../build/bin/conf_gen.h:3134 msgctxt "preferences" msgid "scene-referred (sigmoid)" msgstr "基于场景(S 形曲线)" -#: ../build/bin/conf_gen.h:3043 ../build/bin/preferences_gen.h:5572 +#: ../build/bin/conf_gen.h:3135 msgctxt "preferences" msgid "display-referred (legacy)" msgstr "基于显示(传统)" -#: ../build/bin/conf_gen.h:3144 +#: ../build/bin/conf_gen.h:3230 msgid "camera time zone" msgstr "相机的时区" -#: ../build/bin/conf_gen.h:3145 +#: ../build/bin/conf_gen.h:3231 msgid "" "most cameras don't store the time zone in EXIF. give the correct time zone " "so the GPX data can be correctly matched" @@ -778,212 +731,270 @@ "大多数相机不在 exif 文件中存储时区。指定正确的时区以便将图像正确匹配至 gpx 数" "据" -#: ../build/bin/conf_gen.h:3156 +#: ../build/bin/conf_gen.h:3242 msgctxt "preferences" msgid "no color" msgstr "无色" -#: ../build/bin/conf_gen.h:3157 +#: ../build/bin/conf_gen.h:3243 msgctxt "preferences" msgid "illuminant color" msgstr "光照颜色" -#: ../build/bin/conf_gen.h:3158 +#: ../build/bin/conf_gen.h:3244 msgctxt "preferences" msgid "effect emulation" msgstr "效果模拟" -#: ../build/bin/conf_gen.h:3204 +#: ../build/bin/conf_gen.h:3290 msgctxt "preferences" msgid "list" msgstr "列表" -#: ../build/bin/conf_gen.h:3205 +#: ../build/bin/conf_gen.h:3291 msgctxt "preferences" msgid "tabs" msgstr "选项卡" -#: ../build/bin/conf_gen.h:3206 +#: ../build/bin/conf_gen.h:3292 msgctxt "preferences" msgid "columns" msgstr "列" -#: ../build/bin/conf_gen.h:3215 ../build/bin/preferences_gen.h:5117 +#: ../build/bin/conf_gen.h:3301 msgctxt "preferences" msgid "active" msgstr "活动" -#: ../build/bin/conf_gen.h:3216 ../build/bin/preferences_gen.h:5122 +#: ../build/bin/conf_gen.h:3302 msgctxt "preferences" msgid "dim" msgstr "暗淡" -#: ../build/bin/conf_gen.h:3218 ../build/bin/preferences_gen.h:5132 +#: ../build/bin/conf_gen.h:3304 msgctxt "preferences" msgid "fade" msgstr "淡出" -#: ../build/bin/conf_gen.h:3219 ../build/bin/preferences_gen.h:5137 +#: ../build/bin/conf_gen.h:3305 msgctxt "preferences" msgid "fit" msgstr "合适" -#: ../build/bin/conf_gen.h:3220 ../build/bin/preferences_gen.h:5142 +#: ../build/bin/conf_gen.h:3306 msgctxt "preferences" msgid "smooth" msgstr "平滑" -#: ../build/bin/conf_gen.h:3221 ../build/bin/preferences_gen.h:5147 +#: ../build/bin/conf_gen.h:3307 msgctxt "preferences" msgid "glide" msgstr "滑动" -#: ../build/bin/preferences_gen.h:81 ../build/bin/preferences_gen.h:3823 -#: ../build/bin/preferences_gen.h:3859 ../build/bin/preferences_gen.h:3895 -#: ../build/bin/preferences_gen.h:3931 ../build/bin/preferences_gen.h:3967 -#: ../build/bin/preferences_gen.h:4003 ../build/bin/preferences_gen.h:4039 -#: ../build/bin/preferences_gen.h:4083 ../build/bin/preferences_gen.h:4178 -#: ../build/bin/preferences_gen.h:4273 ../build/bin/preferences_gen.h:4313 -#: ../build/bin/preferences_gen.h:4356 ../build/bin/preferences_gen.h:4437 -#: ../build/bin/preferences_gen.h:4473 ../build/bin/preferences_gen.h:4510 -#: ../build/bin/preferences_gen.h:4553 ../build/bin/preferences_gen.h:4627 -#: ../build/bin/preferences_gen.h:4672 ../build/bin/preferences_gen.h:4708 -#: ../build/bin/preferences_gen.h:4778 ../build/bin/preferences_gen.h:4822 -#: ../build/bin/preferences_gen.h:4882 ../build/bin/preferences_gen.h:4918 -#: ../build/bin/preferences_gen.h:4954 ../build/bin/preferences_gen.h:4990 -#: ../build/bin/preferences_gen.h:5026 ../build/bin/preferences_gen.h:5062 -#: ../build/bin/preferences_gen.h:5098 ../build/bin/preferences_gen.h:5188 -#: ../build/bin/preferences_gen.h:5224 ../build/bin/preferences_gen.h:5260 -#: ../build/bin/preferences_gen.h:5334 ../build/bin/preferences_gen.h:5370 -#: ../build/bin/preferences_gen.h:5435 ../build/bin/preferences_gen.h:5505 -#: ../build/bin/preferences_gen.h:5548 ../build/bin/preferences_gen.h:5618 -#: ../build/bin/preferences_gen.h:5654 ../build/bin/preferences_gen.h:5690 -#: ../build/bin/preferences_gen.h:5734 ../build/bin/preferences_gen.h:5805 -#: ../build/bin/preferences_gen.h:5841 ../build/bin/preferences_gen.h:5877 -#: ../build/bin/preferences_gen.h:5913 ../build/bin/preferences_gen.h:5955 -#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6140 -#: ../build/bin/preferences_gen.h:6176 ../build/bin/preferences_gen.h:6212 -#: ../build/bin/preferences_gen.h:6248 ../build/bin/preferences_gen.h:6284 -#: ../build/bin/preferences_gen.h:6320 ../build/bin/preferences_gen.h:6356 -#: ../build/bin/preferences_gen.h:6392 ../build/bin/preferences_gen.h:6427 -#: ../build/bin/preferences_gen.h:6462 ../build/bin/preferences_gen.h:6498 -#: ../build/bin/preferences_gen.h:6542 ../build/bin/preferences_gen.h:6614 -#: ../build/bin/preferences_gen.h:6692 ../build/bin/preferences_gen.h:6767 -#: ../build/bin/preferences_gen.h:6820 ../build/bin/preferences_gen.h:6885 -#: ../build/bin/preferences_gen.h:6950 ../build/bin/preferences_gen.h:7024 -#: ../build/bin/preferences_gen.h:7060 ../build/bin/preferences_gen.h:7096 -#: ../build/bin/preferences_gen.h:7132 ../build/bin/preferences_gen.h:7168 -#: ../build/bin/preferences_gen.h:7204 ../build/bin/preferences_gen.h:7250 -#: ../build/bin/preferences_gen.h:7310 ../build/bin/preferences_gen.h:7375 -#: ../build/bin/preferences_gen.h:7429 ../build/bin/preferences_gen.h:7474 -#: ../build/bin/preferences_gen.h:7510 ../build/bin/preferences_gen.h:7546 -#: ../build/bin/preferences_gen.h:7582 ../build/bin/preferences_gen.h:7618 -#: ../build/bin/preferences_gen.h:7678 ../build/bin/preferences_gen.h:7722 -#: ../build/bin/preferences_gen.h:7766 ../build/bin/preferences_gen.h:7848 -#: ../build/bin/preferences_gen.h:7888 ../build/bin/preferences_gen.h:7928 -#: ../build/bin/preferences_gen.h:7964 ../build/bin/preferences_gen.h:8019 -#: ../build/bin/preferences_gen.h:8055 ../build/bin/preferences_gen.h:8115 -#: ../build/bin/preferences_gen.h:8161 ../build/bin/preferences_gen.h:8197 -#: ../build/bin/preferences_gen.h:8243 ../build/bin/preferences_gen.h:8303 -#: ../build/bin/preferences_gen.h:8355 ../build/bin/preferences_gen.h:8401 -#: ../build/bin/preferences_gen.h:8469 ../build/bin/preferences_gen.h:8516 +#: ../build/bin/preferences_gen.h:77 ../build/bin/preferences_gen.h:4305 +#: ../build/bin/preferences_gen.h:4344 ../build/bin/preferences_gen.h:4383 +#: ../build/bin/preferences_gen.h:4417 ../build/bin/preferences_gen.h:4488 +#: ../build/bin/preferences_gen.h:4522 ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:4590 ../build/bin/preferences_gen.h:4624 +#: ../build/bin/preferences_gen.h:4658 ../build/bin/preferences_gen.h:4692 +#: ../build/bin/preferences_gen.h:4733 ../build/bin/preferences_gen.h:4768 +#: ../build/bin/preferences_gen.h:4803 ../build/bin/preferences_gen.h:4837 +#: ../build/bin/preferences_gen.h:4871 ../build/bin/preferences_gen.h:4906 +#: ../build/bin/preferences_gen.h:4940 ../build/bin/preferences_gen.h:4979 +#: ../build/bin/preferences_gen.h:5020 ../build/bin/preferences_gen.h:5093 +#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:5162 +#: ../build/bin/preferences_gen.h:5203 ../build/bin/preferences_gen.h:5237 +#: ../build/bin/preferences_gen.h:5281 ../build/bin/preferences_gen.h:5315 +#: ../build/bin/preferences_gen.h:5350 ../build/bin/preferences_gen.h:5391 +#: ../build/bin/preferences_gen.h:5426 ../build/bin/preferences_gen.h:5460 +#: ../build/bin/preferences_gen.h:5494 ../build/bin/preferences_gen.h:5528 +#: ../build/bin/preferences_gen.h:5562 ../build/bin/preferences_gen.h:5596 +#: ../build/bin/preferences_gen.h:5630 ../build/bin/preferences_gen.h:5665 +#: ../build/bin/preferences_gen.h:5699 ../build/bin/preferences_gen.h:5733 +#: ../build/bin/preferences_gen.h:5799 ../build/bin/preferences_gen.h:5833 +#: ../build/bin/preferences_gen.h:5868 ../build/bin/preferences_gen.h:5903 +#: ../build/bin/preferences_gen.h:5944 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/preferences_gen.h:6013 ../build/bin/preferences_gen.h:6047 +#: ../build/bin/preferences_gen.h:6088 ../build/bin/preferences_gen.h:6124 +#: ../build/bin/preferences_gen.h:6165 ../build/bin/preferences_gen.h:6209 +#: ../build/bin/preferences_gen.h:6254 ../build/bin/preferences_gen.h:6305 +#: ../build/bin/preferences_gen.h:6349 ../build/bin/preferences_gen.h:6393 +#: ../build/bin/preferences_gen.h:6437 ../build/bin/preferences_gen.h:6481 +#: ../build/bin/preferences_gen.h:6525 ../build/bin/preferences_gen.h:6569 +#: ../build/bin/preferences_gen.h:6635 ../build/bin/preferences_gen.h:6669 +#: ../build/bin/preferences_gen.h:6703 ../build/bin/preferences_gen.h:6737 +#: ../build/bin/preferences_gen.h:6771 ../build/bin/preferences_gen.h:6805 +#: ../build/bin/preferences_gen.h:6839 ../build/bin/preferences_gen.h:6873 +#: ../build/bin/preferences_gen.h:6906 ../build/bin/preferences_gen.h:6939 +#: ../build/bin/preferences_gen.h:6973 ../build/bin/preferences_gen.h:7014 +#: ../build/bin/preferences_gen.h:7053 ../build/bin/preferences_gen.h:7124 +#: ../build/bin/preferences_gen.h:7159 ../build/bin/preferences_gen.h:7210 +#: ../build/bin/preferences_gen.h:7245 ../build/bin/preferences_gen.h:7280 +#: ../build/bin/preferences_gen.h:7324 ../build/bin/preferences_gen.h:7390 +#: ../build/bin/preferences_gen.h:7424 ../build/bin/preferences_gen.h:7458 +#: ../build/bin/preferences_gen.h:7492 ../build/bin/preferences_gen.h:7526 +#: ../build/bin/preferences_gen.h:7560 ../build/bin/preferences_gen.h:7605 +#: ../build/bin/preferences_gen.h:7640 ../build/bin/preferences_gen.h:7675 +#: ../build/bin/preferences_gen.h:7731 ../build/bin/preferences_gen.h:7772 +#: ../build/bin/preferences_gen.h:7806 ../build/bin/preferences_gen.h:7840 +#: ../build/bin/preferences_gen.h:7874 ../build/bin/preferences_gen.h:7908 +#: ../build/bin/preferences_gen.h:7943 ../build/bin/preferences_gen.h:7984 +#: ../build/bin/preferences_gen.h:8025 ../build/bin/preferences_gen.h:8085 +#: ../build/bin/preferences_gen.h:8119 ../build/bin/preferences_gen.h:8154 +#: ../build/bin/preferences_gen.h:8199 ../build/bin/preferences_gen.h:8233 +#: ../build/bin/preferences_gen.h:8278 ../build/bin/preferences_gen.h:8313 +#: ../build/bin/preferences_gen.h:8365 ../build/bin/preferences_gen.h:8410 +#: ../build/bin/preferences_gen.h:8480 ../build/bin/preferences_gen.h:8526 msgid "this setting has been modified" msgstr "此设定已被更改" #. doesn't seem to work from gtkrc -#: ../build/bin/preferences_gen.h:3793 ../build/bin/preferences_gen.h:4407 -#: ../build/bin/preferences_gen.h:5304 ../build/bin/preferences_gen.h:6110 -#: ../build/bin/preferences_gen.h:6662 ../build/bin/preferences_gen.h:6994 -#: ../build/bin/preferences_gen.h:7818 ../src/gui/accelerators.c:2724 -#: ../src/gui/gtk.c:2580 ../src/gui/preferences.c:421 -#: ../src/gui/preferences.c:876 ../src/libs/modulegroups.c:3886 +#: ../build/bin/preferences_gen.h:4277 ../build/bin/preferences_gen.h:4460 +#: ../build/bin/preferences_gen.h:5065 ../build/bin/preferences_gen.h:5771 +#: ../build/bin/preferences_gen.h:6607 ../build/bin/preferences_gen.h:7096 +#: ../build/bin/preferences_gen.h:7362 ../src/gui/accelerators.c:2996 +#: ../src/gui/gtk.c:2641 ../src/gui/preferences.c:424 +#: ../src/gui/preferences.c:874 ../src/libs/modulegroups.c:3888 msgid "?" msgstr "?" -#: ../build/bin/preferences_gen.h:3806 ../build/bin/preferences_gen.h:4420 -#: ../build/bin/preferences_gen.h:6123 ../src/gui/preferences.c:270 -msgid "general" -msgstr "常规" +#: ../build/bin/preferences_gen.h:4287 ../src/control/jobs/control_jobs.c:2352 +#: ../src/libs/import.c:173 +msgid "import" +msgstr "导入" -#: ../build/bin/preferences_gen.h:3826 -msgid "hide built-in presets for utility modules" -msgstr "隐藏实用程序模块的内置预设" +#: ../build/bin/preferences_gen.h:4289 +msgid "session options" +msgstr "会话选项" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4017 -#: ../build/bin/preferences_gen.h:4053 ../build/bin/preferences_gen.h:4156 -#: ../build/bin/preferences_gen.h:4251 ../build/bin/preferences_gen.h:4291 -#: ../build/bin/preferences_gen.h:4334 ../build/bin/preferences_gen.h:4377 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4531 ../build/bin/preferences_gen.h:4606 -#: ../build/bin/preferences_gen.h:4686 ../build/bin/preferences_gen.h:4756 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4860 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5040 ../build/bin/preferences_gen.h:5076 -#: ../build/bin/preferences_gen.h:5166 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5274 -#: ../build/bin/preferences_gen.h:5348 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5483 ../build/bin/preferences_gen.h:5525 -#: ../build/bin/preferences_gen.h:5596 ../build/bin/preferences_gen.h:5632 -#: ../build/bin/preferences_gen.h:5668 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5782 ../build/bin/preferences_gen.h:5819 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:5927 ../build/bin/preferences_gen.h:5998 -#: ../build/bin/preferences_gen.h:6074 ../build/bin/preferences_gen.h:6154 -#: ../build/bin/preferences_gen.h:6190 ../build/bin/preferences_gen.h:6226 -#: ../build/bin/preferences_gen.h:6262 ../build/bin/preferences_gen.h:6298 -#: ../build/bin/preferences_gen.h:6334 ../build/bin/preferences_gen.h:6370 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:6592 ../build/bin/preferences_gen.h:6632 -#: ../build/bin/preferences_gen.h:6745 ../build/bin/preferences_gen.h:6863 -#: ../build/bin/preferences_gen.h:6928 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7146 -#: ../build/bin/preferences_gen.h:7182 ../build/bin/preferences_gen.h:7288 -#: ../build/bin/preferences_gen.h:7353 ../build/bin/preferences_gen.h:7393 -#: ../build/bin/preferences_gen.h:7443 ../build/bin/preferences_gen.h:7488 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7656 -#: ../build/bin/preferences_gen.h:7692 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:7866 ../build/bin/preferences_gen.h:7906 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:7982 -#: ../build/bin/preferences_gen.h:8033 ../build/bin/preferences_gen.h:8093 -#: ../build/bin/preferences_gen.h:8175 ../build/bin/preferences_gen.h:8281 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4308 +msgid "base directory naming pattern" +msgstr "基准目录命名模式" + +#: ../build/bin/preferences_gen.h:4323 ../build/bin/preferences_gen.h:4362 +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4435 +#: ../build/bin/preferences_gen.h:4501 ../build/bin/preferences_gen.h:4535 +#: ../build/bin/preferences_gen.h:4569 ../build/bin/preferences_gen.h:4603 +#: ../build/bin/preferences_gen.h:4637 ../build/bin/preferences_gen.h:4671 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4747 +#: ../build/bin/preferences_gen.h:4782 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:4850 ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:4958 +#: ../build/bin/preferences_gen.h:4999 ../build/bin/preferences_gen.h:5040 +#: ../build/bin/preferences_gen.h:5106 ../build/bin/preferences_gen.h:5140 +#: ../build/bin/preferences_gen.h:5182 ../build/bin/preferences_gen.h:5217 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5329 +#: ../build/bin/preferences_gen.h:5363 ../build/bin/preferences_gen.h:5405 +#: ../build/bin/preferences_gen.h:5439 ../build/bin/preferences_gen.h:5473 +#: ../build/bin/preferences_gen.h:5507 ../build/bin/preferences_gen.h:5541 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5644 ../build/bin/preferences_gen.h:5678 +#: ../build/bin/preferences_gen.h:5712 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5847 +#: ../build/bin/preferences_gen.h:5882 ../build/bin/preferences_gen.h:5922 +#: ../build/bin/preferences_gen.h:5958 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6060 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6178 ../build/bin/preferences_gen.h:6223 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6318 +#: ../build/bin/preferences_gen.h:6362 ../build/bin/preferences_gen.h:6406 +#: ../build/bin/preferences_gen.h:6450 ../build/bin/preferences_gen.h:6494 +#: ../build/bin/preferences_gen.h:6538 ../build/bin/preferences_gen.h:6582 +#: ../build/bin/preferences_gen.h:6648 ../build/bin/preferences_gen.h:6682 +#: ../build/bin/preferences_gen.h:6716 ../build/bin/preferences_gen.h:6750 +#: ../build/bin/preferences_gen.h:6784 ../build/bin/preferences_gen.h:6818 +#: ../build/bin/preferences_gen.h:6852 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7032 +#: ../build/bin/preferences_gen.h:7071 ../build/bin/preferences_gen.h:7138 +#: ../build/bin/preferences_gen.h:7224 ../build/bin/preferences_gen.h:7259 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7505 ../build/bin/preferences_gen.h:7539 +#: ../build/bin/preferences_gen.h:7619 ../build/bin/preferences_gen.h:7654 +#: ../build/bin/preferences_gen.h:7693 ../build/bin/preferences_gen.h:7744 +#: ../build/bin/preferences_gen.h:7785 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7922 ../build/bin/preferences_gen.h:7956 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8133 ../build/bin/preferences_gen.h:8212 +#: ../build/bin/preferences_gen.h:8292 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 #, c-format msgid "double click to reset to `%s'" msgstr "双击以重置到“%s”" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4053 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4686 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:5040 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5348 -#: ../build/bin/preferences_gen.h:5632 ../build/bin/preferences_gen.h:5668 -#: ../build/bin/preferences_gen.h:5819 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:6370 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7146 ../build/bin/preferences_gen.h:7443 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7692 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:8033 -#: ../build/bin/preferences_gen.h:8175 +#: ../build/bin/preferences_gen.h:4326 ../build/bin/preferences_gen.h:4365 +msgid "part of full import path for an import session" +msgstr "图像导入会话的部分输入路径" + +#: ../build/bin/preferences_gen.h:4347 +msgid "sub directory naming pattern" +msgstr "子目录命名模式" + +#: ../build/bin/preferences_gen.h:4386 +msgid "keep original filename" +msgstr "保留原始文件名" + +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4501 +#: ../build/bin/preferences_gen.h:4535 ../build/bin/preferences_gen.h:4569 +#: ../build/bin/preferences_gen.h:4603 ../build/bin/preferences_gen.h:4637 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4850 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:5106 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5439 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5712 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6450 +#: ../build/bin/preferences_gen.h:6494 ../build/bin/preferences_gen.h:6538 +#: ../build/bin/preferences_gen.h:6582 ../build/bin/preferences_gen.h:6852 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7505 +#: ../build/bin/preferences_gen.h:7744 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7956 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8212 msgctxt "preferences" msgid "FALSE" msgstr "否" -#: ../build/bin/preferences_gen.h:3840 +#: ../build/bin/preferences_gen.h:4399 +msgid "" +"keep original filename instead of a pattern while importing from camera or " +"card" +msgstr "从相机或卡片导入时保留原始文件名而不是模式" + +#: ../build/bin/preferences_gen.h:4420 +msgid "file naming pattern" +msgstr "文件命名模式" + +#: ../build/bin/preferences_gen.h:4438 +msgid "file naming pattern used for a import session" +msgstr "导入会话使用文件命名模式" + +#: ../build/bin/preferences_gen.h:4470 ../src/gui/gtk.c:1266 +#: ../src/gui/preferences.c:544 ../src/libs/tools/lighttable.c:66 +#: ../src/views/lighttable.c:91 +msgid "lighttable" +msgstr "光台" + +#: ../build/bin/preferences_gen.h:4472 ../build/bin/preferences_gen.h:5077 +#: ../build/bin/preferences_gen.h:6619 ../src/gui/preferences.c:270 +msgid "general" +msgstr "常规" + +#: ../build/bin/preferences_gen.h:4491 +msgid "hide built-in presets for utility modules" +msgstr "隐藏实用程序模块的内置预设" + +#: ../build/bin/preferences_gen.h:4504 msgid "hides built-in presets of utility modules in presets menu." msgstr "在预设菜单中隐藏实用程序模块的内置预设。" -#: ../build/bin/preferences_gen.h:3862 +#: ../build/bin/preferences_gen.h:4525 msgid "use single-click in the collections module" msgstr "在图像收集面板中使用单击" -#: ../build/bin/preferences_gen.h:3876 +#: ../build/bin/preferences_gen.h:4538 msgid "" "check this option to use single-click to select items in the collections " "module. this will allow you to do range selections for date-time and numeric " @@ -992,77 +1003,79 @@ "选中此选项可使用单击选择“收集”模块中的项目。这将允许您选择日期时间和数值的范" "围。" -#: ../build/bin/preferences_gen.h:3898 +#: ../build/bin/preferences_gen.h:4559 msgid "expand a single utility module at a time" msgstr "一次展开一个实用程序模块" -#: ../build/bin/preferences_gen.h:3912 +#: ../build/bin/preferences_gen.h:4572 msgid "this option toggles the behavior of shift clicking in lighttable mode" msgstr "这个选项可以改变在lighttable模式下shift的点击行为" -#: ../build/bin/preferences_gen.h:3934 +#: ../build/bin/preferences_gen.h:4593 msgid "scroll utility modules to the top when expanded" msgstr "展开时滚动应用程序模块置顶" -#: ../build/bin/preferences_gen.h:3948 ../build/bin/preferences_gen.h:5079 +#: ../build/bin/preferences_gen.h:4606 ../build/bin/preferences_gen.h:5612 msgid "" "when this option is enabled then darktable will try to scroll the module to " "the top of the visible list" msgstr "当启用该选项时,darktable将尝试将模块滚动到可见列表的顶部" -#: ../build/bin/preferences_gen.h:3970 +#: ../build/bin/preferences_gen.h:4627 msgid "rating an image one star twice will not zero out the rating" msgstr "一张图片被评为一星两次不会清空评分" -#: ../build/bin/preferences_gen.h:3984 +#: ../build/bin/preferences_gen.h:4640 msgid "" "defines whether rating an image one star twice will zero out star rating" msgstr "此选项控制对一张图片两次评为一星时是否清空评分" -#: ../build/bin/preferences_gen.h:4006 ../build/bin/preferences_gen.h:4675 +#: ../build/bin/preferences_gen.h:4661 ../build/bin/preferences_gen.h:5284 msgid "show scrollbars for central view" msgstr "显示中心视图的滚动条" -#: ../build/bin/preferences_gen.h:4017 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5076 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5274 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5927 -#: ../build/bin/preferences_gen.h:6154 ../build/bin/preferences_gen.h:6190 -#: ../build/bin/preferences_gen.h:6226 ../build/bin/preferences_gen.h:6262 -#: ../build/bin/preferences_gen.h:6298 ../build/bin/preferences_gen.h:6334 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7182 -#: ../build/bin/preferences_gen.h:7488 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4671 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:5140 ../build/bin/preferences_gen.h:5363 +#: ../build/bin/preferences_gen.h:5473 ../build/bin/preferences_gen.h:5507 +#: ../build/bin/preferences_gen.h:5541 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5678 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:6060 ../build/bin/preferences_gen.h:6178 +#: ../build/bin/preferences_gen.h:6318 ../build/bin/preferences_gen.h:6362 +#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6648 +#: ../build/bin/preferences_gen.h:6682 ../build/bin/preferences_gen.h:6716 +#: ../build/bin/preferences_gen.h:6750 ../build/bin/preferences_gen.h:6784 +#: ../build/bin/preferences_gen.h:6818 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7539 ../build/bin/preferences_gen.h:7785 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 msgctxt "preferences" msgid "TRUE" msgstr "是" -#: ../build/bin/preferences_gen.h:4020 ../build/bin/preferences_gen.h:4689 +#: ../build/bin/preferences_gen.h:4674 ../build/bin/preferences_gen.h:5297 msgid "defines whether scrollbars should be displayed" msgstr "定义是否应显示滚动条" -#: ../build/bin/preferences_gen.h:4042 +#: ../build/bin/preferences_gen.h:4695 msgid "show image time with milliseconds" msgstr "以毫秒为单位显示图像时间" -#: ../build/bin/preferences_gen.h:4056 +#: ../build/bin/preferences_gen.h:4708 msgid "defines whether time should be displayed with milliseconds" msgstr "定义是否以毫秒为单位显示时间" -#: ../build/bin/preferences_gen.h:4066 +#: ../build/bin/preferences_gen.h:4717 msgid "thumbnails" msgstr "缩略图" -#: ../build/bin/preferences_gen.h:4086 +#: ../build/bin/preferences_gen.h:4736 msgid "use raw file instead of embedded JPEG from size" msgstr "使用 RAW 文件生成缩略图时的最小尺寸" -#: ../build/bin/preferences_gen.h:4159 +#: ../build/bin/preferences_gen.h:4750 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "raw file instead of the embedded preview JPEG (better but slower).\n" @@ -1075,11 +1088,11 @@ "若您希望使用最高质量的缩略图与预渲染图像,您应在此选择“总是”。(参阅文档以查" "看更多信息)" -#: ../build/bin/preferences_gen.h:4181 +#: ../build/bin/preferences_gen.h:4771 msgid "high quality processing from size" msgstr "按大小处理高质量缩略图" -#: ../build/bin/preferences_gen.h:4254 +#: ../build/bin/preferences_gen.h:4785 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "the full quality rendering path (better but slower).\n" @@ -1092,11 +1105,74 @@ "若您希望使用最高质量的缩略图与预渲染图像,您应在此选择“总是”。(参阅文档以查" "看更多信息)" -#: ../build/bin/preferences_gen.h:4276 +#: ../build/bin/preferences_gen.h:4806 +msgid "enable disk backend for thumbnail cache" +msgstr "为缩略图缓存启用磁盘后端" + +#: ../build/bin/preferences_gen.h:4819 +msgid "" +"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want. light table " +"performance will be increased greatly when browsing a lot.\n" +"to generate all thumbnails of your entire collection offline, run 'darktable-" +"generate-cache'." +msgstr "" +"启用后,当缩略图从内存缓冲区移除时将被写入磁盘(.cache/darktable/)。注意这可" +"能会使用大量内存(两万张图片可能占用数 GB)。磁盘上的缩略图不会被自动删除,但" +"需要时您可以手动删除该目录内的文件。此选项可以大幅提高浏览时的光台性能。您可" +"以通过“darktable-generate-cache”离线生成整个照片库的缩略图。" + +#: ../build/bin/preferences_gen.h:4840 +msgid "enable disk backend for full preview cache" +msgstr "为完全预览缓存启用磁盘后端" + +#: ../build/bin/preferences_gen.h:4853 +msgid "" +"if enabled, write full preview to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want.\n" +"light table performance will be increased greatly when zooming image in full " +"preview mode." +msgstr "" +"启用后,当完整预览图从内存缓冲区移除时将被写入磁盘(.cache/darktable/)。注意" +"这可能会使用大量内存(两万张图片可能占用数 GB)。磁盘上的预览图不会被自动删" +"除,但需要时您可以手动删除该目录内的文件。此选项可以显著提升在完整预览模式下" +"缩放图像时的光台性能。" + +#: ../build/bin/preferences_gen.h:4874 +msgid "generate thumbnails in background" +msgstr "在后台生成缩略图" + +#: ../build/bin/preferences_gen.h:4888 +msgid "" +"if 'enable disk backend for thumbnail cache' is enabled thumbnails/mipmaps " +"up to the selected size are generated while user is inactive in lighttable." +msgstr "" +"若“为缩略图缓存启用磁盘后端”也已启用,当用户停留在光台界面时,darktable 会在" +"后台生成您设置大小限制以内的缩略图。" + +#: ../build/bin/preferences_gen.h:4909 +msgid "reset cached thumbnails" +msgstr "重置已缓存的缩略图" + +#: ../build/bin/preferences_gen.h:4922 +msgid "" +"force thumbnails to be regenerated by resetting the database. this may be " +"needed in case some thumbnails have been manually removed or corrupted." +msgstr "" +"重置数据库并强制重新生成所有缩略图。部分缩略图被手动删除或意外损坏时可能需要" +"使用此功能。" + +#: ../build/bin/preferences_gen.h:4943 msgid "delimiters for size categories" msgstr "大小类别的分隔符" -#: ../build/bin/preferences_gen.h:4294 +#: ../build/bin/preferences_gen.h:4961 msgid "" "size categories are used to be able to set different overlays and CSS values " "depending of the size of the thumbnail, separated by |.\n" @@ -1107,23 +1183,28 @@ "符。\n" "例如,“120|400“表示将缩略图大小分为三类:0px->120px、120px->400px 和 >400px" -#: ../build/bin/preferences_gen.h:4316 +#: ../build/bin/preferences_gen.h:4982 msgid "pattern for the thumbnail extended overlay text" msgstr "缩略图扩展覆盖文本的模式" -#: ../build/bin/preferences_gen.h:4337 ../build/bin/preferences_gen.h:4380 +#: ../build/bin/preferences_gen.h:5002 ../build/bin/preferences_gen.h:5043 msgid "see manual to know all the tags you can use." msgstr "查看手册以了解所有可用的标签。" -#: ../build/bin/preferences_gen.h:4359 +#: ../build/bin/preferences_gen.h:5023 msgid "pattern for the thumbnail tooltip (empty to disable)" msgstr "缩略图工具提示的模式(为空表示禁用)" -#: ../build/bin/preferences_gen.h:4440 +#: ../build/bin/preferences_gen.h:5075 ../src/gui/gtk.c:1267 +#: ../src/gui/preferences.c:544 ../src/views/darkroom.c:94 +msgid "darkroom" +msgstr "暗房" + +#: ../build/bin/preferences_gen.h:5096 msgid "scroll down to increase mask parameters" msgstr "向下滚动以改变蒙版参数" -#: ../build/bin/preferences_gen.h:4454 +#: ../build/bin/preferences_gen.h:5109 msgid "" "when using the mouse scroll wheel to change mask parameters, scroll down to " "increase the mask size, feather size, opacity, brush hardness and gradient " @@ -1134,11 +1215,11 @@ "硬度或渐变曲率\n" "默认设置下增加以上参数时需要向上滚动" -#: ../build/bin/preferences_gen.h:4476 +#: ../build/bin/preferences_gen.h:5130 msgid "middle mouse button zooms to 200%" msgstr "按下滚轮切换缩放时启用 200% 缩放" -#: ../build/bin/preferences_gen.h:4491 +#: ../build/bin/preferences_gen.h:5144 #, no-c-format msgid "" "if enabled, the zoom level will cycle between 100%, 200% and fit to viewport " @@ -1149,50 +1230,50 @@ "时,按下滚轮将在 100% 和适合屏幕大小的比例之间切换,使用 ctrl 键来调整缩放比" "例。" -#: ../build/bin/preferences_gen.h:4513 +#: ../build/bin/preferences_gen.h:5165 msgid "pattern for the image information line" msgstr "图像信息线的图案" -#: ../build/bin/preferences_gen.h:4534 +#: ../build/bin/preferences_gen.h:5185 msgid "see manual for a list of the tags you can use." msgstr "有关可以使用的标签的列表,请参阅手册。" -#: ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:5206 msgid "position of the image information line" msgstr "图像信息行的位置" -#: ../build/bin/preferences_gen.h:4630 +#: ../build/bin/preferences_gen.h:5240 msgid "border around image in darkroom mode" msgstr "暗室模式下图像周围的边框" -#: ../build/bin/preferences_gen.h:4650 ../build/bin/preferences_gen.h:6790 -#: ../build/bin/preferences_gen.h:7228 ../build/bin/preferences_gen.h:7789 -#: ../build/bin/preferences_gen.h:8139 ../build/bin/preferences_gen.h:8221 -#: ../build/bin/preferences_gen.h:8379 ../build/bin/preferences_gen.h:8493 -#: ../build/bin/preferences_gen.h:8540 +#: ../build/bin/preferences_gen.h:5260 ../build/bin/preferences_gen.h:7182 +#: ../build/bin/preferences_gen.h:7303 ../build/bin/preferences_gen.h:7584 +#: ../build/bin/preferences_gen.h:8048 ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8257 ../build/bin/preferences_gen.h:8389 +#: ../build/bin/preferences_gen.h:8504 ../build/bin/preferences_gen.h:8550 #, c-format msgid "double click to reset to `%d'" msgstr "双击以重置到 `%d'" -#: ../build/bin/preferences_gen.h:4653 +#: ../build/bin/preferences_gen.h:5263 msgid "" "process the image in darkroom mode with a small border. set to 0 if you " "don't want any border." msgstr "为暗房模式下的图像添加边框,设定为 0 将会禁用边框。" -#: ../build/bin/preferences_gen.h:4711 +#: ../build/bin/preferences_gen.h:5318 msgid "reduce resolution of preview image" msgstr "降低预览图像的分辨率" -#: ../build/bin/preferences_gen.h:4759 +#: ../build/bin/preferences_gen.h:5332 msgid "decrease to speed up preview rendering, may hinder accurate masking" msgstr "减少以加速预览渲染,可能会妨碍精确遮罩" -#: ../build/bin/preferences_gen.h:4781 +#: ../build/bin/preferences_gen.h:5353 msgid "show loading screen between images" msgstr "切换图像时显示加载画面" -#: ../build/bin/preferences_gen.h:4795 +#: ../build/bin/preferences_gen.h:5366 msgid "" "show gray loading screen when navigating between images in the darkroom\n" "disable to just show a toast message" @@ -1200,71 +1281,71 @@ "暗室模式下在图像之间切换时显示灰色的加载画面\n" "禁用此选项后切换图像时仅显示加载消息框" -#: ../build/bin/preferences_gen.h:4805 +#: ../build/bin/preferences_gen.h:5375 msgid "modules" msgstr "模块" -#: ../build/bin/preferences_gen.h:4825 +#: ../build/bin/preferences_gen.h:5394 msgid "display of individual color channels" msgstr "显示单独的颜色通道" -#: ../build/bin/preferences_gen.h:4863 +#: ../build/bin/preferences_gen.h:5408 msgid "" "defines how color channels are displayed when activated in the parametric " "masks feature." msgstr "定义在参数蒙版功能启用时如何显示颜色通道。" -#: ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:5429 msgid "hide built-in presets for processing modules" msgstr "隐藏处理模块的内置预设" -#: ../build/bin/preferences_gen.h:4899 +#: ../build/bin/preferences_gen.h:5442 msgid "" "hides built-in presets of processing modules in both presets and favourites " "menu." msgstr "在预设配置菜单和收藏夹菜单中都隐藏内建的处理模块预设配置。" -#: ../build/bin/preferences_gen.h:4921 ../build/bin/preferences_gen.h:4935 +#: ../build/bin/preferences_gen.h:5463 ../build/bin/preferences_gen.h:5476 msgid "show the guides widget in modules UI" msgstr "在模块 UI 内显示参考线组件" -#: ../build/bin/preferences_gen.h:4957 +#: ../build/bin/preferences_gen.h:5497 msgid "expand a single processing module at a time" msgstr "一次展开一个处理模块" -#: ../build/bin/preferences_gen.h:4971 +#: ../build/bin/preferences_gen.h:5510 msgid "this option toggles the behavior of shift clicking in darkroom mode" msgstr "此选项可以定义shift+单击在暗房模式下的行为" -#: ../build/bin/preferences_gen.h:4993 +#: ../build/bin/preferences_gen.h:5531 msgid "only collapse modules in current group" msgstr "仅折叠当前组中的模块" -#: ../build/bin/preferences_gen.h:5007 +#: ../build/bin/preferences_gen.h:5544 msgid "" "if only expanding a single module at a time, only collapse other modules in " "the current group - ignore modules in other groups" msgstr "如果一次只展开一个模块,则只折叠当前组中的其他模块-忽略其他组中的模块" -#: ../build/bin/preferences_gen.h:5029 +#: ../build/bin/preferences_gen.h:5565 msgid "expand the module when it is activated, and collapse it when disabled" msgstr "激活时展开模块,禁用时折叠模块" -#: ../build/bin/preferences_gen.h:5043 +#: ../build/bin/preferences_gen.h:5578 msgid "" "this option allows to expand or collapse automatically the module when it is " "enabled or disabled." msgstr "此选项可以使模块在启用时自动展开,在禁用时自动折叠。" -#: ../build/bin/preferences_gen.h:5065 +#: ../build/bin/preferences_gen.h:5599 msgid "scroll processing modules to the top when expanded" msgstr "展开时滚动处理模块置顶" -#: ../build/bin/preferences_gen.h:5101 +#: ../build/bin/preferences_gen.h:5633 msgid "show right-side buttons in processing module headers" msgstr "在处理模块标题中显示右侧按钮" -#: ../build/bin/preferences_gen.h:5169 +#: ../build/bin/preferences_gen.h:5647 msgid "" "when the mouse is not over a module, the multi-instance, reset and preset " "buttons can be hidden:\n" @@ -1287,54 +1368,58 @@ " - 平滑:同时淡出一个标题中的所有按钮\n" " - 滑动:根据需要逐渐隐藏各个按钮" -#: ../build/bin/preferences_gen.h:5191 +#: ../build/bin/preferences_gen.h:5668 msgid "show mask indicator in module headers" msgstr "在模块标题栏中显示蒙版指示图标" -#: ../build/bin/preferences_gen.h:5205 +#: ../build/bin/preferences_gen.h:5681 msgid "" "if enabled, an icon will be shown in the header of any processing modules " "that have a mask applied" msgstr "启用后,处理模块使用蒙版时将会在模块标题栏内显示指示图标" -#: ../build/bin/preferences_gen.h:5227 +#: ../build/bin/preferences_gen.h:5702 msgid "prompt for name on addition of new instance" msgstr "增加新实例时提示输入模块名称" -#: ../build/bin/preferences_gen.h:5241 +#: ../build/bin/preferences_gen.h:5715 msgid "" "if enabled, a rename prompt will be present for each new module instance " "(either new instance or duplicate)" msgstr "" "启用后,每一个新的模块实例(无论是新实例还是重复添加)都会提示输入实例名称" -#: ../build/bin/preferences_gen.h:5263 +#: ../build/bin/preferences_gen.h:5736 msgid "automatically update module name" msgstr "自动更新模块名称" -#: ../build/bin/preferences_gen.h:5277 +#: ../build/bin/preferences_gen.h:5749 msgid "" "if enabled, the module name will be automatically updated to match a preset " "name or a preset instance name if present." msgstr "启用后,正在使用预置时,将在模块名称上显示预置的名称。" -#: ../build/bin/preferences_gen.h:5317 +#: ../build/bin/preferences_gen.h:5781 +msgid "processing" +msgstr "数据处理" + +#: ../build/bin/preferences_gen.h:5783 msgid "image processing" msgstr "图像处理" -#: ../build/bin/preferences_gen.h:5337 +#: ../build/bin/preferences_gen.h:5802 msgid "always use LittleCMS 2 to apply output color profile" msgstr "始终使用 LittleCMS 2 应用输出颜色配置文件" -#: ../build/bin/preferences_gen.h:5351 +#: ../build/bin/preferences_gen.h:5815 msgid "this is slower than the default." msgstr "比起默认这会显著变慢。" -#: ../build/bin/preferences_gen.h:5373 +#: ../build/bin/preferences_gen.h:5836 msgid "pixel interpolator (warp)" msgstr "像素插值器" -#: ../build/bin/preferences_gen.h:5416 +#: ../build/bin/preferences_gen.h:5850 msgid "" "pixel interpolator used in modules for rotation, lens correction, liquify, " "cropping and final scaling (bilinear, bicubic, lanczos2)." @@ -1342,41 +1427,41 @@ "用于转动、镜头校正、液化、裁剪及最终缩放的像素插值器(双线性,双立方," "lanczos2)。" -#: ../build/bin/preferences_gen.h:5438 +#: ../build/bin/preferences_gen.h:5871 msgid "pixel interpolator (scaling)" msgstr "像素插值器(缩放)" -#: ../build/bin/preferences_gen.h:5486 +#: ../build/bin/preferences_gen.h:5885 msgid "" "pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." msgstr "用于缩放的像素插值器(双线性,双三次,lanczos2,lanczos3)。" -#: ../build/bin/preferences_gen.h:5508 +#: ../build/bin/preferences_gen.h:5906 msgid "LUT 3D root folder" msgstr "3D LUT 根文件夹" -#: ../build/bin/preferences_gen.h:5513 ../src/control/jobs/control_jobs.c:1688 -#: ../src/control/jobs/control_jobs.c:1742 ../src/gui/preferences.c:1081 -#: ../src/gui/presets.c:419 ../src/imageio/storage/disk.c:122 -#: ../src/imageio/storage/disk.c:178 ../src/imageio/storage/gallery.c:109 -#: ../src/imageio/storage/gallery.c:163 ../src/imageio/storage/latex.c:108 -#: ../src/imageio/storage/latex.c:162 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/import.c:1664 ../src/libs/styles.c:391 +#: ../build/bin/preferences_gen.h:5912 ../src/control/jobs/control_jobs.c:1691 +#: ../src/control/jobs/control_jobs.c:1745 ../src/gui/preferences.c:1080 +#: ../src/gui/presets.c:421 ../src/imageio/storage/disk.c:197 +#: ../src/imageio/storage/disk.c:261 ../src/imageio/storage/gallery.c:149 +#: ../src/imageio/storage/gallery.c:213 ../src/imageio/storage/latex.c:145 +#: ../src/imageio/storage/latex.c:199 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1673 ../src/libs/styles.c:391 #: ../src/lua/preferences.c:668 msgid "select directory" msgstr "选择目录" -#: ../build/bin/preferences_gen.h:5529 +#: ../build/bin/preferences_gen.h:5926 msgid "" "this folder (and sub-folders) contains LUT files used by LUT 3D module. " "(need a restart)." msgstr "该目录(及其子目录)应包含 LUT 3D 模块使用的 LUT 文件。" -#: ../build/bin/preferences_gen.h:5551 +#: ../build/bin/preferences_gen.h:5947 msgid "auto-apply pixel workflow defaults" msgstr "自动应用像素工作流默认值" -#: ../build/bin/preferences_gen.h:5599 +#: ../build/bin/preferences_gen.h:5961 msgid "" "scene-referred workflow is based on linear modules and will auto-apply " "filmic or sigmoid, color calibration and exposure,\n" @@ -1387,11 +1472,11 @@ "色彩校准和曝光设定,\n" "显示工作流基于 Lab 模块,自动应用基准曲线、白平衡和传统模块处理顺序。" -#: ../build/bin/preferences_gen.h:5621 +#: ../build/bin/preferences_gen.h:5982 msgid "auto-apply per camera basecurve presets" msgstr "自动应用每个摄影机的基线曲线预设" -#: ../build/bin/preferences_gen.h:5635 +#: ../build/bin/preferences_gen.h:5995 msgid "" "use the per-camera basecurve by default instead of the generic manufacturer " "one if there is one available (needs a restart).\n" @@ -1405,11 +1490,11 @@ "当‘自动应用像素工作流默认值’设置为‘基于显示’时,将考虑此选项\n" "为防止自动应用基线曲线预设,‘自动应用像素工作流默认值’应设置为“无”" -#: ../build/bin/preferences_gen.h:5657 +#: ../build/bin/preferences_gen.h:6016 msgid "detect monochrome previews" msgstr "检测单色预览" -#: ../build/bin/preferences_gen.h:5671 +#: ../build/bin/preferences_gen.h:6029 msgid "" "many monochrome images can be identified via EXIF and preview data. beware: " "this slows down imports and reading of EXIF data" @@ -1417,11 +1502,11 @@ "许多单色图像可以通过EXIF和预览数据来识别。注意:这会减慢导入和读取EXIF数据的" "速度" -#: ../build/bin/preferences_gen.h:5693 +#: ../build/bin/preferences_gen.h:6050 msgid "show warning messages" msgstr "显示警告信息" -#: ../build/bin/preferences_gen.h:5707 +#: ../build/bin/preferences_gen.h:6063 msgid "" "display messages in modules to warn beginner users when non-standard and " "possibly harmful settings are used in the pipeline.\n" @@ -1432,15 +1517,15 @@ "这些信息有可能误判,若您确定您需要使用这些设置,可以忽略警告信息。启用此选项" "后,警告信息将不再显示。" -#: ../build/bin/preferences_gen.h:5717 -msgid "CPU / GPU / memory" -msgstr "中央处理器/显卡处理器/内存" +#: ../build/bin/preferences_gen.h:6072 +msgid "CPU / memory" +msgstr "中央处理器与内存" -#: ../build/bin/preferences_gen.h:5737 +#: ../build/bin/preferences_gen.h:6091 msgid "darktable resources" msgstr "darktable 资源" -#: ../build/bin/preferences_gen.h:5786 +#: ../build/bin/preferences_gen.h:6106 #, no-c-format msgid "" "defines how much darktable may take from your system resources:\n" @@ -1466,60 +1551,25 @@ "资源,导致内存交换和不可预见的性能骤减。请小心选择此选项。一般用户不建议使" "用!" -#: ../build/bin/preferences_gen.h:5808 +#: ../build/bin/preferences_gen.h:6127 msgid "prefer performance over quality" msgstr "重性能轻质量" -#: ../build/bin/preferences_gen.h:5822 +#: ../build/bin/preferences_gen.h:6140 msgid "" "if switched on, thumbnails and previews are rendered at lower quality but 4 " "times faster" msgstr "如果打开,缩略图和预览的渲染质量会降低,但速度会提高4倍" -#: ../build/bin/preferences_gen.h:5844 -msgid "enable disk backend for thumbnail cache" -msgstr "为缩略图缓存启用磁盘后端" - -#: ../build/bin/preferences_gen.h:5858 -msgid "" -"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want. light table " -"performance will be increased greatly when browsing a lot.\n" -"to generate all thumbnails of your entire collection offline, run 'darktable-" -"generate-cache'." -msgstr "" -"启用后,当缩略图从内存缓冲区移除时将被写入磁盘(.cache/darktable/)。注意这可" -"能会使用大量内存(两万张图片可能占用数 GB)。磁盘上的缩略图不会被自动删除,但" -"需要时您可以手动删除该目录内的文件。此选项可以大幅提高浏览时的光台性能。您可" -"以通过“darktable-generate-cache”离线生成整个照片库的缩略图。" - -#: ../build/bin/preferences_gen.h:5880 -msgid "enable disk backend for full preview cache" -msgstr "为完全预览缓存启用磁盘后端" +#: ../build/bin/preferences_gen.h:6149 +msgid "OpenCL" +msgstr "OpenCL" -#: ../build/bin/preferences_gen.h:5894 -msgid "" -"if enabled, write full preview to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want.\n" -"light table performance will be increased greatly when zooming image in full " -"preview mode." -msgstr "" -"启用后,当完整预览图从内存缓冲区移除时将被写入磁盘(.cache/darktable/)。注意" -"这可能会使用大量内存(两万张图片可能占用数 GB)。磁盘上的预览图不会被自动删" -"除,但需要时您可以手动删除该目录内的文件。此选项可以显著提升在完整预览模式下" -"缩放图像时的光台性能。" - -#: ../build/bin/preferences_gen.h:5916 +#: ../build/bin/preferences_gen.h:6168 msgid "activate OpenCL support" msgstr "启用 OpenCL 支持" -#: ../build/bin/preferences_gen.h:5930 +#: ../build/bin/preferences_gen.h:6181 msgid "" "if found, use OpenCL runtime on your system to speed up processing.\n" "can be switched on and off at any time." @@ -1527,23 +1577,32 @@ "若您的系统上已安装 OpenCL 运行时,将使用 OpenCL 加速处理。这一功能能够随时开" "启或关闭。" -#: ../build/bin/preferences_gen.h:5931 ../build/bin/preferences_gen.h:6002 -#: ../build/bin/preferences_gen.h:6078 ../build/bin/preferences_gen.h:7397 +#: ../build/bin/preferences_gen.h:6185 ../build/bin/preferences_gen.h:6230 +#: ../build/bin/preferences_gen.h:6274 ../build/bin/preferences_gen.h:6325 +#: ../build/bin/preferences_gen.h:6369 ../build/bin/preferences_gen.h:6413 +#: ../build/bin/preferences_gen.h:6457 ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6545 ../build/bin/preferences_gen.h:7700 msgid "not available" msgstr "不可用" -#: ../build/bin/preferences_gen.h:5934 ../build/bin/preferences_gen.h:5938 -#: ../build/bin/preferences_gen.h:6005 ../build/bin/preferences_gen.h:6009 -#: ../build/bin/preferences_gen.h:6081 ../build/bin/preferences_gen.h:6085 -#: ../build/bin/preferences_gen.h:7400 ../build/bin/preferences_gen.h:7404 +#: ../build/bin/preferences_gen.h:6187 ../build/bin/preferences_gen.h:6188 +#: ../build/bin/preferences_gen.h:6232 ../build/bin/preferences_gen.h:6233 +#: ../build/bin/preferences_gen.h:6276 ../build/bin/preferences_gen.h:6277 +#: ../build/bin/preferences_gen.h:6327 ../build/bin/preferences_gen.h:6328 +#: ../build/bin/preferences_gen.h:6371 ../build/bin/preferences_gen.h:6372 +#: ../build/bin/preferences_gen.h:6415 ../build/bin/preferences_gen.h:6416 +#: ../build/bin/preferences_gen.h:6459 ../build/bin/preferences_gen.h:6460 +#: ../build/bin/preferences_gen.h:6503 ../build/bin/preferences_gen.h:6504 +#: ../build/bin/preferences_gen.h:6547 ../build/bin/preferences_gen.h:6548 +#: ../build/bin/preferences_gen.h:7702 ../build/bin/preferences_gen.h:7703 msgid "not available on this system" msgstr "在此系统不可用" -#: ../build/bin/preferences_gen.h:5958 +#: ../build/bin/preferences_gen.h:6212 msgid "OpenCL scheduling profile" msgstr "OpenCL 调度配置" -#: ../build/bin/preferences_gen.h:6001 +#: ../build/bin/preferences_gen.h:6226 msgid "" "defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled " "systems:\n" @@ -1558,138 +1617,213 @@ " - 多个 GPU:在多个 GPU 上并行处理所有任务\n" " - 非常快的 GPU:在单个 GPU 上顺序处理所有任务。" -#: ../build/bin/preferences_gen.h:6029 -msgid "tune OpenCL performance" -msgstr "调整 OpenCL 性能" +#: ../build/bin/preferences_gen.h:6257 +msgid "use all device memory" +msgstr "使用所有可用的计算设备内存" -#: ../build/bin/preferences_gen.h:6077 +#: ../build/bin/preferences_gen.h:6270 msgid "" -"allows runtime tuning of OpenCL devices:\n" -" - 'memory size': uses a fixed headroom (400MB as default),\n" -" - 'memory transfer': tries a faster memory access mode (pinned memory) used " -"for tiling." +"if enabled darktable will use all device memory except a safety margin " +"(headroom, default is 600MB)" msgstr "" -"允许对 OpenCL 设备进行运行时调整:\n" -" - “内存大小”将会预留固定量的内存(默认为 400MB),\n" -" - “内存传输”将会尝试使用更快内存访问模式(固定内存)以便网格化并行处理。" +"启用后,darktable 将只会保留一小部分的安全余量(默认为 600 MB)并使用全部剩余" +"内存进行计算" + +#: ../build/bin/preferences_gen.h:6289 +msgid "OpenCL drivers" +msgstr "OpenCL 驱动" + +#: ../build/bin/preferences_gen.h:6308 +msgid "Intel GPU" +msgstr "Intel GPU" + +#: ../build/bin/preferences_gen.h:6321 +msgid "Intel(R) OpenCL Graphics for all supported platforms (vendor provided)" +msgstr "英特尔(R) OpenCL 显卡驱动(由显卡制造商提供)" + +#: ../build/bin/preferences_gen.h:6352 +msgid "Nvidia CUDA" +msgstr "Nvidia CUDA" -#: ../build/bin/preferences_gen.h:6143 +#: ../build/bin/preferences_gen.h:6365 +msgid "Nvidia CUDA based OpenCL (vendor provided)" +msgstr "基于英伟达 CUDA 的 OpenCL 驱动(由显卡制造商提供)" + +#: ../build/bin/preferences_gen.h:6396 +msgid "AMD ROCm" +msgstr "AMD ROCm" + +#: ../build/bin/preferences_gen.h:6409 +msgid "AMD Accelerated Parallel Processing (vendor provided)" +msgstr "AMD 并行处理加速(由显卡制造商提供)" + +#: ../build/bin/preferences_gen.h:6440 +msgid "RustiCL" +msgstr "RustiCL" + +#: ../build/bin/preferences_gen.h:6453 +msgid "" +"RustiCL Mesa OpenCL, still unstable. if you want to use this, you should " +"disable the vendor driver" +msgstr "" +"RustiCL Mesa OpenCL - 实验性的不稳定版驱动,要使用此驱动时请禁用其他制造商提" +"供的驱动" + +#: ../build/bin/preferences_gen.h:6484 +msgid "Apple" +msgstr "Apple" + +#: ../build/bin/preferences_gen.h:6497 +msgid "Apple OpenCL (vendor provided)" +msgstr "Apple OpenCL(由设备制造商提供)" + +#: ../build/bin/preferences_gen.h:6528 +msgid "Microsoft OpenCLOn12" +msgstr "Microsoft OpenCLOn12" + +#: ../build/bin/preferences_gen.h:6541 +msgid "" +"Microsoft OpenCLOn12, only use this if the vendor provided driver does not " +"work or there is none provided." +msgstr "" +"Microsoft OpenCLOn12 - 您仅应在显卡制造商不提供驱动或提供的驱动无法正常工作时" +"选择此项。" + +#: ../build/bin/preferences_gen.h:6572 +msgid "other platforms" +msgstr "其他平台" + +#: ../build/bin/preferences_gen.h:6585 +msgid "" +"if set, all unspecified platforms are accepted. only do this if no vendor " +"driver is available" +msgstr "启用后将接受所有未定义平台。请仅在没有显卡制造商驱动可用时选择此项" + +#: ../build/bin/preferences_gen.h:6617 +msgid "security" +msgstr "安全性" + +#: ../build/bin/preferences_gen.h:6638 msgid "ask before removing images from the library" msgstr "从照片库移除图像前询问" -#: ../build/bin/preferences_gen.h:6157 +#: ../build/bin/preferences_gen.h:6651 msgid "always ask the user before removing image information from the library" msgstr "从照片库移除任何图像前询问用户" -#: ../build/bin/preferences_gen.h:6179 +#: ../build/bin/preferences_gen.h:6672 msgid "ask before deleting images from disk" msgstr "从磁盘擦除图像前询问" -#: ../build/bin/preferences_gen.h:6193 +#: ../build/bin/preferences_gen.h:6685 msgid "always ask the user before any image file is deleted" msgstr "在删除任何图像文件之前,始终询问用户" -#: ../build/bin/preferences_gen.h:6215 +#: ../build/bin/preferences_gen.h:6706 msgid "ask before discarding history stack" msgstr "丢弃历史堆栈前询问" -#: ../build/bin/preferences_gen.h:6229 +#: ../build/bin/preferences_gen.h:6719 msgid "always ask the user before history stack is discarded on any image" msgstr "在任何图像上丢弃历史堆栈之前,始终询问用户" -#: ../build/bin/preferences_gen.h:6251 +#: ../build/bin/preferences_gen.h:6740 msgid "try to use trash when deleting images" msgstr "删除图像时尝试将文件发送到垃圾箱" -#: ../build/bin/preferences_gen.h:6265 +#: ../build/bin/preferences_gen.h:6753 msgid "" "send files to trash instead of permanently deleting files on system that " "supports it" msgstr "将文件发送到垃圾箱,而不是永久删除支持它的系统上的文件" -#: ../build/bin/preferences_gen.h:6287 +#: ../build/bin/preferences_gen.h:6774 msgid "ask before moving images from film roll folder" msgstr "从胶卷文件夹中移除图像前询问" -#: ../build/bin/preferences_gen.h:6301 +#: ../build/bin/preferences_gen.h:6787 msgid "always ask the user before any image file is moved." msgstr "移动任何图像前询问用户。" -#: ../build/bin/preferences_gen.h:6323 +#: ../build/bin/preferences_gen.h:6808 msgid "ask before copying images to new film roll folder" msgstr "复制图像到新的胶卷文件夹前询问" -#: ../build/bin/preferences_gen.h:6337 +#: ../build/bin/preferences_gen.h:6821 msgid "always ask the user before any image file is copied." msgstr "复制任何图像前询问用户。" -#: ../build/bin/preferences_gen.h:6359 +#: ../build/bin/preferences_gen.h:6842 msgid "ask before removing empty folders" msgstr "移除空文件夹前询问" -#: ../build/bin/preferences_gen.h:6373 +#: ../build/bin/preferences_gen.h:6855 msgid "" "always ask the user before removing any empty folder. this can happen after " "moving or deleting images." msgstr "在磁盘中删除任何空文件夹前询问用户。可能发生在移动或删除图像之后。" -#: ../build/bin/preferences_gen.h:6395 +#: ../build/bin/preferences_gen.h:6876 msgid "ask before deleting a tag" msgstr "删除标签前询问" -#: ../build/bin/preferences_gen.h:6430 +#: ../build/bin/preferences_gen.h:6909 msgid "ask before deleting a style" msgstr "删除样式前询问" -#: ../build/bin/preferences_gen.h:6465 +#: ../build/bin/preferences_gen.h:6942 msgid "ask before deleting a preset" msgstr "删除预设前询问" -#: ../build/bin/preferences_gen.h:6479 +#: ../build/bin/preferences_gen.h:6955 msgid "will ask for confirmation before deleting or overwriting a preset" msgstr "将在删除或覆盖预设前请求确认" -#: ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6976 msgid "ask before exporting in overwrite mode" msgstr "在以覆盖模式导出前询问" -#: ../build/bin/preferences_gen.h:6515 +#: ../build/bin/preferences_gen.h:6989 msgid "will ask for confirmation before exporting files in overwrite mode" msgstr "将在以覆盖模式导出前请求确认" #. italic -#: ../build/bin/preferences_gen.h:6525 ../src/libs/tools/viewswitcher.c:148 +#: ../build/bin/preferences_gen.h:6998 ../src/libs/tools/viewswitcher.c:148 msgid "other" msgstr "其他" -#: ../build/bin/preferences_gen.h:6545 +#: ../build/bin/preferences_gen.h:7017 msgid "password storage backend to use" msgstr "密码管理后端" -#: ../build/bin/preferences_gen.h:6595 +#: ../build/bin/preferences_gen.h:7035 msgid "" "the storage backend for password storage: auto, none, libsecret, kwallet" msgstr "用于保存密码的后端服务:自动,无,libsecret,kwallet" -#: ../build/bin/preferences_gen.h:6617 +#: ../build/bin/preferences_gen.h:7056 msgid "executable for playing audio files" msgstr "用于播放音频文件的可执行文件" -#: ../build/bin/preferences_gen.h:6635 +#: ../build/bin/preferences_gen.h:7074 msgid "" "this external program is used to play audio files some cameras record to " "keep notes for images" msgstr "使用此外部程序播放相机记录的备忘音频" -#: ../build/bin/preferences_gen.h:6675 ../src/control/crawler.c:724 +#: ../build/bin/preferences_gen.h:7106 +msgid "storage" +msgstr "存储" + +#: ../build/bin/preferences_gen.h:7108 ../src/control/crawler.c:717 msgid "database" msgstr "数据库" -#: ../build/bin/preferences_gen.h:6695 +#: ../build/bin/preferences_gen.h:7127 msgid "create database snapshot" msgstr "创建数据库快照" -#: ../build/bin/preferences_gen.h:6748 +#: ../build/bin/preferences_gen.h:7141 msgid "" "database snapshots are created right before closing darktable. options allow " "you to choose how often to make snapshots:\n" @@ -1708,11 +1842,11 @@ " - 每天:距离上次快照超过 24 小时时创建快照\n" " - 关闭时:每次关闭 darktable 都创建快照" -#: ../build/bin/preferences_gen.h:6770 +#: ../build/bin/preferences_gen.h:7162 msgid "how many snapshots to keep" msgstr "要保留多少快照" -#: ../build/bin/preferences_gen.h:6793 +#: ../build/bin/preferences_gen.h:7185 msgid "" "after successfully creating snapshot, how many older snapshots to keep " "(excluding mandatory version update ones). enter -1 to keep all snapshots\n" @@ -1722,37 +1856,38 @@ "每次创建快照后保留的旧快照数量(不包括版本更新时的强制快照)。输入 -1 以保留" "所有快照。注意:快照会占用一定的磁盘空间。您只需要最近的快照即可完成恢复" -#: ../build/bin/preferences_gen.h:6803 ../src/control/crawler.c:723 -msgid "XMP" -msgstr "XMP" +#: ../build/bin/preferences_gen.h:7194 ../src/libs/copy_history.c:149 +msgid "XMP sidecar files" +msgstr "XMP 附属文件" -#: ../build/bin/preferences_gen.h:6823 -msgid "write sidecar file for each image" -msgstr "为每个图片写入附属文件" +#: ../build/bin/preferences_gen.h:7213 +msgid "create XMP files" +msgstr "创建 XMP 附属文件" -#: ../build/bin/preferences_gen.h:6866 +#: ../build/bin/preferences_gen.h:7227 msgid "" -"the sidecar files hold information about all your development steps to allow " +"XMP sidecar files hold information about all your development steps to allow " "flawless re-importing of image files.\n" "\n" -"depending on the selected mode sidecar files will be written:\n" +"depending on the selected mode sidecar files will be created:\n" " - 'never'\n" " - 'on import': immediately after importing the image\n" -" - 'after edit': after any user change on the image." +" - 'after edit': after any user change on the image or adding tags." msgstr "" -"附属文件记录了您在导入后的照片处理步骤,以允许您重新导入无损的原始图像文" +"XMP 附属文件记录了您在导入后的照片处理步骤,以允许您重新导入无损的原始图像文" "件。\n" "\n" +"\n" "根据在此选择的模式:\n" -" - 从不:从不写入附属文件\n" +" - 从不:不要创建任何附属文件\n" " - 导入时:导入图像时立即写入附属文件\n" -" - 编辑后:在更改任何图像后写入附属文件。" +" - 编辑后:在图像或标签被更改后或写入附属文件。" -#: ../build/bin/preferences_gen.h:6888 +#: ../build/bin/preferences_gen.h:7248 msgid "store XMP tags in compressed format" msgstr "以压缩格式存储 xmp 标签" -#: ../build/bin/preferences_gen.h:6931 +#: ../build/bin/preferences_gen.h:7262 msgid "" "entries in XMP tags can get rather large and may exceed the available space " "to store the history stack in output files.\n" @@ -1761,53 +1896,70 @@ "大量 xmp 标签中的条目可能会超过输出文件中存储历史栈的可用空间。\n" "此选项允许压缩 xmp 标签以节约空间。" -#: ../build/bin/preferences_gen.h:6953 +#: ../build/bin/preferences_gen.h:7283 +msgid "auto-save interval" +msgstr "自动保存时间间隔" + +#: ../build/bin/preferences_gen.h:7306 +msgid "" +"automatically save history while developing using the given interval (in " +"seconds); set to zero to disable auto-saving. auto-saving might be disabled " +"on slow drives." +msgstr "" +"间隔一定时间之后保存照片处理步骤历史记录,以秒为单位;设置为 0 以禁用自动保" +"存。当磁盘太慢时自动保存会被禁用。" + +#: ../build/bin/preferences_gen.h:7327 msgid "look for updated XMP files on startup" msgstr "启动时查找发生更改的 XMP 文件" -#: ../build/bin/preferences_gen.h:6967 +#: ../build/bin/preferences_gen.h:7340 msgid "" "check file modification times of all XMP files on startup to check if any " "got updated in the meantime" msgstr "启动时检查所有 XMP 文件的更改时间以判断文件是否被更新" -#: ../build/bin/preferences_gen.h:7007 +#: ../build/bin/preferences_gen.h:7372 +msgid "miscellaneous" +msgstr "杂项" + +#: ../build/bin/preferences_gen.h:7374 msgid "interface" msgstr "界面" -#: ../build/bin/preferences_gen.h:7027 +#: ../build/bin/preferences_gen.h:7393 msgid "load default shortcuts at startup" msgstr "启动时恢复快捷键为默认值" -#: ../build/bin/preferences_gen.h:7041 +#: ../build/bin/preferences_gen.h:7406 msgid "" "load default shortcuts before user settings. switch off to prevent deleted " "defaults returning" msgstr "" "在用户设定前恢复默认快捷键。关闭此功能可防止已被删除的默认设置又重新恢复" -#: ../build/bin/preferences_gen.h:7063 +#: ../build/bin/preferences_gen.h:7427 msgid "scale slider step with min/max" msgstr "比例滑块步长以及最小和最大值" -#: ../build/bin/preferences_gen.h:7077 +#: ../build/bin/preferences_gen.h:7440 msgid "vary slider step size with min/max range" msgstr "改变滑块步长大小和最小值最大值范围" -#: ../build/bin/preferences_gen.h:7099 +#: ../build/bin/preferences_gen.h:7461 msgid "sort built-in presets first" msgstr "先对内置预设排序" -#: ../build/bin/preferences_gen.h:7113 +#: ../build/bin/preferences_gen.h:7474 msgid "" "whether to show built-in presets first before user's presets in presets menu." msgstr "是否先显示内置预设,然后在预设菜单中显示用户预设。" -#: ../build/bin/preferences_gen.h:7135 +#: ../build/bin/preferences_gen.h:7495 msgid "mouse wheel scrolls modules side panel by default" msgstr "默认情况下,鼠标滚轮滚动模块侧面板" -#: ../build/bin/preferences_gen.h:7149 +#: ../build/bin/preferences_gen.h:7508 msgid "" "when enabled, use mouse wheel to scroll modules side panel. use ctrl+alt to " "use mouse wheel for data entry. when disabled, this behavior is reversed" @@ -1815,40 +1967,40 @@ "启用时,使用鼠标滚轮滚动模块侧面版。按住 ctrl + alt 时鼠标滚轮用于数据输入。" "禁用时滚动行为相反" -#: ../build/bin/preferences_gen.h:7171 +#: ../build/bin/preferences_gen.h:7529 msgid "always show panels' scrollbars" msgstr "总是显示面板滚动条" -#: ../build/bin/preferences_gen.h:7185 +#: ../build/bin/preferences_gen.h:7542 msgid "" "defines whether the panel scrollbars should be always visible or activated " "only depending on the content. (need a restart)" msgstr "" "此选项控制面板滚动条是否始终可见或者根据内容自动隐藏。此选项在重启后生效。" -#: ../build/bin/preferences_gen.h:7207 +#: ../build/bin/preferences_gen.h:7563 msgid "duration of the UI transitions in ms" msgstr "界面过渡动画的持续时间(毫秒)" -#: ../build/bin/preferences_gen.h:7231 +#: ../build/bin/preferences_gen.h:7587 msgid "" "how long the transitions take (in ms) for expanding or collapsing modules " "and other UI elements" msgstr "展开/折叠模块以及其他界面元素动画的持续时间(毫秒)" -#: ../build/bin/preferences_gen.h:7253 +#: ../build/bin/preferences_gen.h:7608 msgid "position of the scopes module" msgstr "向量表模块的位置" -#: ../build/bin/preferences_gen.h:7291 +#: ../build/bin/preferences_gen.h:7622 msgid "position the scopes at the top-left or top-right of the screen" msgstr "将向量表放置于屏幕左上角或右上角" -#: ../build/bin/preferences_gen.h:7313 +#: ../build/bin/preferences_gen.h:7643 msgid "method to use for getting the display profile" msgstr "用于获取显示配置文件的方法" -#: ../build/bin/preferences_gen.h:7356 +#: ../build/bin/preferences_gen.h:7657 msgid "" "this option allows to force a specific means of getting the current display " "profile.\n" @@ -1857,12 +2009,12 @@ "此选项可以强制使用特定方式获取显示器的色彩管理配置。\n" "当某一个查询方式返回错误结果时请使用此选项" -#: ../build/bin/preferences_gen.h:7378 +#: ../build/bin/preferences_gen.h:7678 msgid "order or exclude MIDI devices" msgstr "排序或移除 midi 设备" # Needs more explaination from the developer. -#: ../build/bin/preferences_gen.h:7396 +#: ../build/bin/preferences_gen.h:7696 msgid "" "comma-separated list of device name fragments that if matched load MIDI " "device at id given by location in list\n" @@ -1874,95 +2026,93 @@ "关旋钮数目,例如'BeatStep:63:16'" #. tags -#: ../build/bin/preferences_gen.h:7412 ../src/develop/lightroom.c:1516 -#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:333 -#: ../src/libs/image.c:558 ../src/libs/metadata_view.c:162 +#: ../build/bin/preferences_gen.h:7715 ../src/develop/lightroom.c:1573 +#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:322 +#: ../src/libs/image.c:614 ../src/libs/metadata_view.c:166 msgid "tags" msgstr "标签" -#: ../build/bin/preferences_gen.h:7432 +#: ../build/bin/preferences_gen.h:7734 msgid "omit hierarchy in simple tag lists" msgstr "省略简单标签列表中的层次结构" -#: ../build/bin/preferences_gen.h:7446 +#: ../build/bin/preferences_gen.h:7747 msgid "" -"when creating XMP file the hierarchical tags are also added as a simple " -"list\n" +"when creating an XMP sidecar file the hierarchical tags are also added as a " +"simple list\n" "of non-hierarchical ones to make them visible to some other programs.\n" "when this option is checked darktable will only include their last part\n" "and ignore the rest. so 'foo|bar|baz' will only add 'baz'." msgstr "" -"创建 xmp 文件时,层级标签也会以无结构列表插入,以允许其他程序使用这些标签。当" -"此选项启用时,darktable 将只会插入层级标签最后的部分。例如“foo|bar|baz”会" +"创建 XMP 附属文件时,层级标签也会以无结构列表插入,以允许其他程序使用这些标" +"签。\n" +"当此选项启用时,darktable 将只会插入层级标签最后的部分。例如“foo|bar|baz”会" "以“baz”添加。" -#: ../build/bin/preferences_gen.h:7456 +#: ../build/bin/preferences_gen.h:7756 msgid "shortcuts with multiple instances" msgstr "具有多个实例的键盘快捷键" -#: ../build/bin/preferences_gen.h:7461 -msgid "" -"where multiple module instances are present, these preferences control rules " -"that are applied (in order) to decide which module instance shortcuts will " -"be applied to" -msgstr "当模块有多个实例时,此选项控制快捷键应用于多个模块时的优先顺序" - -#: ../build/bin/preferences_gen.h:7477 +#: ../build/bin/preferences_gen.h:7775 msgid "prefer focused instance" msgstr "优先应用于当前实例" -#: ../build/bin/preferences_gen.h:7491 +#: ../build/bin/preferences_gen.h:7788 msgid "" -"if an instance of the module has focus, apply shortcut to that instance\n" +"where multiple instances of a module are present, apply shortcuts to the " +"instance that has focus\n" +"if none are focused, the preferences below control rules that are followed " +"(in order) to decide which module instance shortcuts will be applied to.\n" "note: blending shortcuts always apply to the focused instance" msgstr "" -"如果一个模块的实例被选中,快捷键将被应用到那个实例\n" -"注意:混合功能快捷键会始终被应用到当前实例上" +"当模块有多个实例时,快捷键将优先应用至鼠标焦点下的模块\n" +"若没有模块处于焦点下,下列控制规则将按顺序判断快捷键将发送至哪个模块。\n" +"注意:混合快捷键始终会应用到鼠标焦点下的模块" -#: ../build/bin/preferences_gen.h:7513 +#: ../build/bin/preferences_gen.h:7809 msgid "prefer expanded instances" msgstr "优先应用于展开的实例" -#: ../build/bin/preferences_gen.h:7527 +#: ../build/bin/preferences_gen.h:7822 msgid "if instances of the module are expanded, ignore collapsed instances" msgstr "当部分实例已展开时,快捷键将忽略已折叠的实例" -#: ../build/bin/preferences_gen.h:7549 +#: ../build/bin/preferences_gen.h:7843 msgid "prefer enabled instances" msgstr "优先应用于启用的实例" -#: ../build/bin/preferences_gen.h:7563 +#: ../build/bin/preferences_gen.h:7856 msgid "" "after applying the above rule, if instances of the module are active, ignore " "inactive instances" msgstr "当应用以上规则后,当部分实例已启用时,快捷键将忽略已禁用的实例" -#: ../build/bin/preferences_gen.h:7585 +#: ../build/bin/preferences_gen.h:7877 msgid "prefer unmasked instances" msgstr "优先应用于解除遮罩的实例" -#: ../build/bin/preferences_gen.h:7599 +#: ../build/bin/preferences_gen.h:7890 msgid "" "after applying the above rules, if instances of the module are unmasked, " "ignore masked instances" msgstr "" "当应用以上规则后,快捷键将适用于遮罩已解除的实例,处于遮罩状态的实例将被忽略" -#: ../build/bin/preferences_gen.h:7621 +#: ../build/bin/preferences_gen.h:7911 msgid "selection order" msgstr "选择顺序" -#: ../build/bin/preferences_gen.h:7659 +#: ../build/bin/preferences_gen.h:7925 msgid "" "after applying the above rules, apply the shortcut based on its position in " "the pixelpipe" msgstr "当应用以上规则后,根据处理管线中的位置选择要应用快捷键的实例" -#: ../build/bin/preferences_gen.h:7681 +#: ../build/bin/preferences_gen.h:7946 msgid "allow visual assignment to specific instances" msgstr "允许对特定实例进行可视化分配" -#: ../build/bin/preferences_gen.h:7695 +#: ../build/bin/preferences_gen.h:7959 msgid "" "when multiple instances are present on an image this allows shortcuts to be " "visually assigned to those specific instances\n" @@ -1971,76 +2121,42 @@ "当图像上有同一模块的多个实例时,允许快捷键以可视方式分配到特定模块\n" "否则快捷键将被分配到偏好的实例上" -#: ../build/bin/preferences_gen.h:7705 +#: ../build/bin/preferences_gen.h:7968 msgid "map / geolocalization view" msgstr "地图与地理定位视图" -#: ../build/bin/preferences_gen.h:7725 +#: ../build/bin/preferences_gen.h:7987 msgid "pretty print the image location" msgstr "打印图像的位置" -#: ../build/bin/preferences_gen.h:7739 +#: ../build/bin/preferences_gen.h:8000 msgid "" "show a more readable representation of the location in the image information " "module" msgstr "在图像的信息模块中显示更具可读性的位置标示" -#: ../build/bin/preferences_gen.h:7749 +#: ../build/bin/preferences_gen.h:8009 msgid "slideshow view" msgstr "幻灯视图" -#: ../build/bin/preferences_gen.h:7769 +#: ../build/bin/preferences_gen.h:8028 msgid "waiting time between each picture in slideshow" msgstr "幻灯片放映中每张图片之间的等待时间" -#: ../build/bin/preferences_gen.h:7831 -msgid "session options" -msgstr "会话选项" - -#: ../build/bin/preferences_gen.h:7851 -msgid "base directory naming pattern" -msgstr "基准目录命名模式" - -#: ../build/bin/preferences_gen.h:7869 ../build/bin/preferences_gen.h:7909 -msgid "part of full import path for an import session" -msgstr "图像导入会话的部分输入路径" - -#: ../build/bin/preferences_gen.h:7891 -msgid "sub directory naming pattern" -msgstr "子目录命名模式" - -#: ../build/bin/preferences_gen.h:7931 -msgid "keep original filename" -msgstr "保留原始文件名" - -#: ../build/bin/preferences_gen.h:7945 -msgid "" -"keep original filename instead of a pattern while importing from camera or " -"card" -msgstr "从相机或卡片导入时保留原始文件名而不是模式" - -#: ../build/bin/preferences_gen.h:7967 -msgid "file naming pattern" -msgstr "文件命名模式" - -#: ../build/bin/preferences_gen.h:7985 -msgid "file naming pattern used for a import session" -msgstr "导入会话使用文件命名模式" - -#: ../build/bin/preferences_gen.h:8022 +#: ../build/bin/preferences_gen.h:8088 msgid "do not set the 'uncategorized' entry for tags" msgstr "不设定“uncategorized”标签" -#: ../build/bin/preferences_gen.h:8036 +#: ../build/bin/preferences_gen.h:8101 msgid "" "do not set the 'uncategorized' entry for tags which do not have children" msgstr "当标签下没有子标签时不设定“uncategorized”标签" -#: ../build/bin/preferences_gen.h:8058 +#: ../build/bin/preferences_gen.h:8122 msgid "tags case sensitivity" msgstr "标签是否大小写敏感" -#: ../build/bin/preferences_gen.h:8096 +#: ../build/bin/preferences_gen.h:8136 msgid "" "tags case sensitivity. without the Sqlite ICU extension, insensitivity works " "only for the 26 latin letters" @@ -2048,45 +2164,50 @@ "标签是否区分大小写。在没有 SQLite ICU 扩展的情况下,大小写不敏感仅适用于 26 " "个拉丁字母" -#: ../build/bin/preferences_gen.h:8118 ../build/bin/preferences_gen.h:8358 +#: ../build/bin/preferences_gen.h:8157 ../build/bin/preferences_gen.h:8368 msgid "number of collections to be stored" msgstr "要保存的集合数量" -#: ../build/bin/preferences_gen.h:8142 ../build/bin/preferences_gen.h:8382 +#: ../build/bin/preferences_gen.h:8181 ../build/bin/preferences_gen.h:8392 msgid "the number of recent collections to store and show in this list" msgstr "此列表中最近使用集合的显示数量" -#: ../build/bin/preferences_gen.h:8164 +#: ../build/bin/preferences_gen.h:8202 msgid "hide the history button and show a specific module instead" msgstr "隐藏历史按钮,以显示一个具体的模块来代替" -#: ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8215 msgid "hide the history button and show the recent collections module instead" msgstr "隐藏历史按钮,以显示最近的集合模块代替" -#: ../build/bin/preferences_gen.h:8200 +#: ../build/bin/preferences_gen.h:8236 msgid "number of folder levels to show in lists" msgstr "列表中要显示的文件夹级别" -#: ../build/bin/preferences_gen.h:8224 +#: ../build/bin/preferences_gen.h:8260 msgid "" "the number of folder levels to show in film roll names, starting from the " "right" msgstr "指定胶卷名称中要显示的文件夹层数,从右边开始" -#: ../build/bin/preferences_gen.h:8246 +#: ../build/bin/preferences_gen.h:8281 msgid "sort film rolls by" msgstr "胶片卷排序依据" -#: ../build/bin/preferences_gen.h:8284 +#: ../build/bin/preferences_gen.h:8292 +msgctxt "preferences" +msgid "chronological" +msgstr "时间顺序" + +#: ../build/bin/preferences_gen.h:8295 msgid "sets the collections-list order for film rolls" msgstr "设置胶卷的集合列表顺序" -#: ../build/bin/preferences_gen.h:8306 +#: ../build/bin/preferences_gen.h:8316 msgid "sort collection descending" msgstr "降序排列图像集" -#: ../build/bin/preferences_gen.h:8320 +#: ../build/bin/preferences_gen.h:8329 msgid "" "sort the following collections in descending order: 'film roll' by folder, " "'folder', 'times' (e.g. 'capture date')" @@ -2094,21 +2215,21 @@ "将以下的图像集用降序排列:“胶卷”(按文件夹),“文件夹”,“时间”(例如“拍摄时" "间”)" -#: ../build/bin/preferences_gen.h:8404 +#: ../build/bin/preferences_gen.h:8413 msgid "prefer a history button in the collections module" msgstr "在图像集模块中使用历史按键" -#: ../build/bin/preferences_gen.h:8418 +#: ../build/bin/preferences_gen.h:8426 msgid "" "hide this module and instead access collections history with a button in the " "collections module" msgstr "隐藏此模块,改为在图像集模块中用按键来获取图像集历史" -#: ../build/bin/preferences_gen.h:8472 +#: ../build/bin/preferences_gen.h:8483 msgid "suggested tags level of confidence" msgstr "推荐的标签可信度" -#: ../build/bin/preferences_gen.h:8497 +#: ../build/bin/preferences_gen.h:8508 #, no-c-format msgid "" "level of confidence to include the tag in the suggestions list, 0: all " @@ -2118,11 +2239,11 @@ "可能将此标签加入到推荐列表里的信心程度,0表示所有相关标签,99表示99%匹配的相" "关标签,100表示没有匹配的标签可显示,取而代之,显示最近的标签(更快)" -#: ../build/bin/preferences_gen.h:8519 +#: ../build/bin/preferences_gen.h:8529 msgid "number of recently attached tags" msgstr "最近添加的标签个数" -#: ../build/bin/preferences_gen.h:8543 +#: ../build/bin/preferences_gen.h:8553 msgid "" "number of recently attached tags which are included in the suggestions list. " "the value `-1' disables the recent list" @@ -2146,14 +2267,15 @@ #. focal length #: ../build/lib/darktable/plugins/introspection_ashift.c:148 #: ../build/lib/darktable/plugins/introspection_ashift.c:291 -#: ../src/common/collection.c:714 ../src/gui/preferences.c:844 -#: ../src/gui/presets.c:718 ../src/libs/camera.c:550 -#: ../src/libs/metadata_view.c:143 +#: ../src/common/collection.c:627 ../src/gui/preferences.c:842 +#: ../src/gui/presets.c:721 ../src/libs/camera.c:550 +#: ../src/libs/metadata_view.c:145 msgid "focal length" msgstr "镜头焦距" #: ../build/lib/darktable/plugins/introspection_ashift.c:154 #: ../build/lib/darktable/plugins/introspection_ashift.c:295 +#: ../src/libs/metadata_view.c:147 msgid "crop factor" msgstr "裁剪系数" @@ -2169,7 +2291,7 @@ #: ../build/lib/darktable/plugins/introspection_ashift.c:172 #: ../build/lib/darktable/plugins/introspection_ashift.c:307 -#: ../src/iop/lens.cc:3784 +#: ../src/iop/lens.cc:4438 msgid "lens model" msgstr "镜头型号" @@ -2191,14 +2313,14 @@ #. DEVELOP_MASK_DISABLED #: ../build/lib/darktable/plugins/introspection_ashift.c:366 -#: ../build/lib/darktable/plugins/introspection_colorin.c:300 +#: ../build/lib/darktable/plugins/introspection_colorin.c:303 #: ../build/lib/darktable/plugins/introspection_highlights.c:310 #: ../build/lib/darktable/plugins/introspection_vignette.c:264 #: ../src/develop/blend_gui.c:153 ../src/develop/blend_gui.c:182 -#: ../src/develop/blend_gui.c:3410 ../src/gui/accelerators.c:130 -#: ../src/gui/accelerators.c:140 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/imageio/format/j2k.c:669 -#: ../src/libs/live_view.c:361 ../src/libs/masks.c:113 +#: ../src/develop/blend_gui.c:3429 ../src/gui/accelerators.c:148 +#: ../src/gui/accelerators.c:158 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/imageio/format/j2k.c:686 +#: ../src/libs/live_view.c:361 msgid "off" msgstr "关" @@ -2222,7 +2344,7 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:146 #: ../build/lib/darktable/plugins/introspection_basecurve.c:239 -#: ../src/libs/metadata_view.c:142 +#: ../src/libs/metadata_view.c:144 msgid "exposure bias" msgstr "曝光偏差" @@ -2242,16 +2364,16 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:262 #: ../build/lib/darktable/plugins/introspection_basicadj.c:249 #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:153 -#: ../build/lib/darktable/plugins/introspection_lens.cc:444 +#: ../build/lib/darktable/plugins/introspection_lens.cc:533 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:251 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:153 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:270 -#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2193 -#: ../src/iop/channelmixerrgb.c:4667 ../src/iop/clipping.c:1900 -#: ../src/iop/clipping.c:2093 ../src/iop/clipping.c:2108 -#: ../src/iop/retouch.c:463 ../src/libs/collect.c:1907 -#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1023 -#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:132 +#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2214 +#: ../src/iop/channelmixerrgb.c:4735 ../src/iop/clipping.c:1953 +#: ../src/iop/clipping.c:2146 ../src/iop/clipping.c:2161 +#: ../src/iop/retouch.c:507 ../src/libs/collect.c:2043 +#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1101 +#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:109 #: ../src/libs/live_view.c:311 ../src/libs/print_settings.c:2835 msgid "none" msgstr "无" @@ -2269,7 +2391,7 @@ #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:252 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:154 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:271 -#: ../src/develop/blend_gui.c:2363 ../src/develop/blend_gui.c:2397 +#: ../src/develop/blend_gui.c:2379 ../src/develop/blend_gui.c:2413 msgid "luminance" msgstr "亮度" @@ -2379,7 +2501,7 @@ #: ../build/lib/darktable/plugins/introspection_graduatednd.c:144 #: ../build/lib/darktable/plugins/introspection_watermark.c:136 #: ../build/lib/darktable/plugins/introspection_watermark.c:265 -#: ../src/iop/ashift.c:6112 ../src/libs/masks.c:108 +#: ../src/iop/ashift.c:6059 ../src/libs/masks.c:109 msgid "rotation" msgstr "旋转" @@ -2390,7 +2512,7 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:125 #: ../build/lib/darktable/plugins/introspection_blurs.c:202 -#: ../src/libs/masks.c:109 +#: ../src/libs/masks.c:110 msgid "curvature" msgstr "曲率" @@ -2398,13 +2520,13 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:206 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:81 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:148 -#: ../src/iop/colorbalancergb.c:1968 +#: ../src/iop/colorbalancergb.c:2039 msgid "offset" msgstr "偏移" #: ../build/lib/darktable/plugins/introspection_blurs.c:220 -#: ../src/common/collection.c:712 ../src/gui/preferences.c:828 -#: ../src/gui/presets.c:660 ../src/libs/metadata_view.c:139 +#: ../src/common/collection.c:625 ../src/gui/preferences.c:826 +#: ../src/gui/presets.c:663 ../src/libs/metadata_view.c:141 msgid "lens" msgstr "镜头" @@ -2420,63 +2542,90 @@ msgid "gaussian" msgstr "高斯" -#: ../build/lib/darktable/plugins/introspection_borders.c:112 -#: ../build/lib/darktable/plugins/introspection_borders.c:253 -#: ../src/common/collection.c:722 ../src/libs/filtering.c:59 +#: ../build/lib/darktable/plugins/introspection_borders.c:122 +#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../src/common/collection.c:635 ../src/libs/filtering.c:59 msgid "aspect ratio" msgstr "宽高比" #. // portrait / landscape -#: ../build/lib/darktable/plugins/introspection_borders.c:130 -#: ../build/lib/darktable/plugins/introspection_borders.c:265 +#: ../build/lib/darktable/plugins/introspection_borders.c:140 +#: ../build/lib/darktable/plugins/introspection_borders.c:281 #: ../src/iop/flip.c:75 ../src/libs/print_settings.c:2517 msgid "orientation" msgstr "方向" -#: ../build/lib/darktable/plugins/introspection_borders.c:136 -#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../build/lib/darktable/plugins/introspection_borders.c:146 +#: ../build/lib/darktable/plugins/introspection_borders.c:285 msgid "border size" msgstr "边框尺寸" -#: ../build/lib/darktable/plugins/introspection_borders.c:142 -#: ../build/lib/darktable/plugins/introspection_borders.c:273 +#: ../build/lib/darktable/plugins/introspection_borders.c:152 +#: ../build/lib/darktable/plugins/introspection_borders.c:289 msgid "horizontal offset" msgstr "水平偏移" -#: ../build/lib/darktable/plugins/introspection_borders.c:160 -#: ../build/lib/darktable/plugins/introspection_borders.c:285 +#: ../build/lib/darktable/plugins/introspection_borders.c:170 +#: ../build/lib/darktable/plugins/introspection_borders.c:301 msgid "vertical offset" msgstr "垂直偏移" -#: ../build/lib/darktable/plugins/introspection_borders.c:178 -#: ../build/lib/darktable/plugins/introspection_borders.c:297 +#: ../build/lib/darktable/plugins/introspection_borders.c:188 +#: ../build/lib/darktable/plugins/introspection_borders.c:313 msgid "frame line size" msgstr "分帧线尺寸" -#: ../build/lib/darktable/plugins/introspection_borders.c:184 -#: ../build/lib/darktable/plugins/introspection_borders.c:301 +#: ../build/lib/darktable/plugins/introspection_borders.c:194 +#: ../build/lib/darktable/plugins/introspection_borders.c:317 msgid "frame line offset" msgstr "分帧线偏移" -#: ../build/lib/darktable/plugins/introspection_borders.c:327 -#: ../src/gui/preferences.c:849 ../src/iop/ashift.c:6291 -#: ../src/iop/basicadj.c:632 ../src/iop/flip.c:472 ../src/iop/flip.c:474 -#: ../src/iop/levels.c:641 ../src/iop/rgblevels.c:1050 +#: ../build/lib/darktable/plugins/introspection_borders.c:218 +#: ../build/lib/darktable/plugins/introspection_borders.c:333 +msgid "basis" +msgstr "基准" + +#: ../build/lib/darktable/plugins/introspection_borders.c:347 +#: ../build/lib/darktable/plugins/introspection_borders.c:353 +#: ../src/gui/preferences.c:847 ../src/imageio/format/jpeg.c:604 +#: ../src/iop/ashift.c:6238 ../src/iop/basicadj.c:662 ../src/iop/flip.c:470 +#: ../src/iop/flip.c:472 ../src/iop/levels.c:657 ../src/iop/rgblevels.c:1105 msgid "auto" msgstr "自动" -#: ../build/lib/darktable/plugins/introspection_borders.c:328 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:309 +#: ../build/lib/darktable/plugins/introspection_borders.c:348 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:315 #: ../src/libs/filters/ratio.c:122 ../src/libs/print_settings.c:2519 msgid "portrait" msgstr "纵向" -#: ../build/lib/darktable/plugins/introspection_borders.c:329 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:305 +#: ../build/lib/darktable/plugins/introspection_borders.c:349 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:311 #: ../src/libs/filters/ratio.c:124 ../src/libs/print_settings.c:2519 msgid "landscape" msgstr "横向" +#: ../build/lib/darktable/plugins/introspection_borders.c:354 +#: ../src/iop/relight.c:275 ../src/libs/export.c:1223 +#: ../src/libs/metadata_view.c:151 ../src/libs/print_settings.c:2537 +msgid "width" +msgstr "宽度" + +#: ../build/lib/darktable/plugins/introspection_borders.c:355 +#: ../build/lib/darktable/plugins/introspection_watermark.c:326 +#: ../src/libs/export.c:1229 ../src/libs/metadata_view.c:152 +#: ../src/libs/print_settings.c:2541 +msgid "height" +msgstr "高度" + +#: ../build/lib/darktable/plugins/introspection_borders.c:356 +msgid "shorter" +msgstr "更短" + +#: ../build/lib/darktable/plugins/introspection_borders.c:357 +msgid "longer" +msgstr "更长" + #: ../build/lib/darktable/plugins/introspection_cacorrect.c:42 #: ../build/lib/darktable/plugins/introspection_cacorrect.c:91 msgid "avoid colorshift" @@ -2523,9 +2672,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:67 #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:132 -#: ../src/iop/atrous.c:1522 ../src/iop/bilateral.cc:350 ../src/iop/clahe.c:335 -#: ../src/iop/dither.c:760 ../src/iop/lowpass.c:584 ../src/iop/shadhi.c:675 -#: ../src/iop/sharpen.c:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:340 +#: ../build/lib/darktable/plugins/introspection_lens.cc:501 +#: ../src/iop/atrous.c:1636 ../src/iop/bilateral.cc:352 ../src/iop/clahe.c:337 +#: ../src/iop/dither.c:762 ../src/iop/lowpass.c:597 ../src/iop/shadhi.c:710 +#: ../src/iop/sharpen.c:435 msgid "radius" msgstr "半径" @@ -2533,9 +2684,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:136 #: ../build/lib/darktable/plugins/introspection_highlights.c:137 #: ../build/lib/darktable/plugins/introspection_highlights.c:240 -#: ../src/iop/bloom.c:376 ../src/iop/denoiseprofile.c:3818 -#: ../src/iop/grain.c:584 ../src/iop/hazeremoval.c:201 -#: ../src/iop/hotpixels.c:388 ../src/iop/nlmeans.c:460 ../src/iop/velvia.c:279 +#: ../build/lib/darktable/plugins/introspection_lens.cc:334 +#: ../build/lib/darktable/plugins/introspection_lens.cc:497 +#: ../src/iop/bloom.c:372 ../src/iop/denoiseprofile.c:3822 +#: ../src/iop/grain.c:602 ../src/iop/hazeremoval.c:203 +#: ../src/iop/hotpixels.c:467 ../src/iop/nlmeans.c:463 ../src/iop/velvia.c:288 msgid "strength" msgstr "力度" @@ -2550,41 +2703,41 @@ msgstr "严重色差" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:158 -#: ../src/common/collection.c:1507 ../src/common/color_vocabulary.c:232 -#: ../src/common/colorlabels.c:334 ../src/develop/blend_gui.c:2330 -#: ../src/develop/blend_gui.c:2378 ../src/develop/lightroom.c:834 -#: ../src/gui/gtk.c:3137 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:354 -#: ../src/iop/channelmixer.c:618 ../src/iop/channelmixer.c:628 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/colorzones.c:2263 -#: ../src/iop/temperature.c:1935 ../src/iop/temperature.c:2129 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:260 -#: ../src/libs/histogram.c:2397 +#: ../src/common/collection.c:1374 ../src/common/color_vocabulary.c:232 +#: ../src/common/colorlabels.c:333 ../src/develop/blend_gui.c:2346 +#: ../src/develop/blend_gui.c:2394 ../src/develop/lightroom.c:887 +#: ../src/gui/gtk.c:3183 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:356 +#: ../src/iop/channelmixer.c:637 ../src/iop/channelmixer.c:647 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/colorzones.c:2499 +#: ../src/iop/temperature.c:1912 ../src/iop/temperature.c:2094 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:260 +#: ../src/libs/histogram.c:2724 msgid "red" msgstr "红" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:159 -#: ../src/common/collection.c:1511 ../src/common/color_vocabulary.c:277 -#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2336 -#: ../src/develop/blend_gui.c:2384 ../src/develop/lightroom.c:838 -#: ../src/gui/gtk.c:3138 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:359 -#: ../src/iop/channelmixer.c:619 ../src/iop/channelmixer.c:634 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/colorzones.c:2266 -#: ../src/iop/temperature.c:1919 ../src/iop/temperature.c:1937 -#: ../src/iop/temperature.c:2130 ../src/libs/collect.c:1791 -#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2389 +#: ../src/common/collection.c:1378 ../src/common/color_vocabulary.c:277 +#: ../src/common/colorlabels.c:335 ../src/develop/blend_gui.c:2352 +#: ../src/develop/blend_gui.c:2400 ../src/develop/lightroom.c:891 +#: ../src/gui/gtk.c:3184 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:361 +#: ../src/iop/channelmixer.c:638 ../src/iop/channelmixer.c:653 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/colorzones.c:2502 +#: ../src/iop/temperature.c:1896 ../src/iop/temperature.c:1914 +#: ../src/iop/temperature.c:2095 ../src/libs/collect.c:1916 +#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2715 msgid "green" msgstr "绿" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:160 -#: ../src/common/collection.c:1513 ../src/common/color_vocabulary.c:324 -#: ../src/common/colorlabels.c:337 ../src/develop/blend_gui.c:2342 -#: ../src/develop/blend_gui.c:2390 ../src/develop/lightroom.c:840 -#: ../src/gui/gtk.c:3139 ../src/iop/bilateral.cc:364 -#: ../src/iop/channelmixer.c:620 ../src/iop/channelmixer.c:640 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/colorzones.c:2268 -#: ../src/iop/temperature.c:1939 ../src/iop/temperature.c:2131 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:263 -#: ../src/libs/histogram.c:2381 +#: ../src/common/collection.c:1380 ../src/common/color_vocabulary.c:324 +#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2358 +#: ../src/develop/blend_gui.c:2406 ../src/develop/lightroom.c:893 +#: ../src/gui/gtk.c:3185 ../src/iop/bilateral.cc:366 +#: ../src/iop/channelmixer.c:639 ../src/iop/channelmixer.c:659 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/colorzones.c:2504 +#: ../src/iop/temperature.c:1916 ../src/iop/temperature.c:2096 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:263 +#: ../src/libs/histogram.c:2706 msgid "blue" msgstr "蓝" @@ -2827,7 +2980,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:303 #: ../build/lib/darktable/plugins/introspection_crop.c:61 #: ../build/lib/darktable/plugins/introspection_crop.c:134 -#: ../src/gui/gtk.c:1141 ../src/iop/atrous.c:1518 +#: ../src/gui/gtk.c:1234 ../src/iop/atrous.c:1632 msgid "left" msgstr "左" @@ -2835,7 +2988,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:307 #: ../build/lib/darktable/plugins/introspection_crop.c:67 #: ../build/lib/darktable/plugins/introspection_crop.c:138 -#: ../src/gui/accelerators.c:113 ../src/gui/gtk.c:1155 +#: ../src/gui/accelerators.c:131 ../src/gui/gtk.c:1240 msgid "top" msgstr "顶" @@ -2843,7 +2996,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:311 #: ../build/lib/darktable/plugins/introspection_crop.c:73 #: ../build/lib/darktable/plugins/introspection_crop.c:142 -#: ../src/gui/gtk.c:1148 ../src/iop/atrous.c:1517 +#: ../src/gui/gtk.c:1237 ../src/iop/atrous.c:1631 msgid "right" msgstr "右" @@ -2851,7 +3004,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:315 #: ../build/lib/darktable/plugins/introspection_crop.c:79 #: ../build/lib/darktable/plugins/introspection_crop.c:146 -#: ../src/gui/accelerators.c:114 ../src/gui/gtk.c:1162 +#: ../src/gui/accelerators.c:132 ../src/gui/gtk.c:1243 msgid "bottom" msgstr "底" @@ -2890,10 +3043,11 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:477 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:489 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:501 -#: ../src/develop/blend_gui.c:2356 ../src/develop/blend_gui.c:2404 -#: ../src/iop/atrous.c:1667 ../src/iop/channelmixerrgb.c:4457 -#: ../src/iop/channelmixerrgb.c:4573 ../src/iop/colorbalancergb.c:1895 -#: ../src/iop/colorzones.c:2402 ../src/iop/nlmeans.c:468 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 +#: ../src/develop/blend_gui.c:2372 ../src/develop/blend_gui.c:2420 +#: ../src/iop/atrous.c:1801 ../src/iop/channelmixerrgb.c:4525 +#: ../src/iop/channelmixerrgb.c:4641 ../src/iop/colorbalancergb.c:1966 +#: ../src/iop/colorzones.c:2645 ../src/iop/nlmeans.c:471 msgid "chroma" msgstr "色度" @@ -2913,11 +3067,11 @@ #: ../build/lib/darktable/plugins/introspection_splittoning.c:73 #: ../build/lib/darktable/plugins/introspection_splittoning.c:134 #: ../build/lib/darktable/plugins/introspection_splittoning.c:142 -#: ../src/develop/blend_gui.c:2315 ../src/develop/blend_gui.c:2349 -#: ../src/develop/blend_gui.c:2411 ../src/iop/channelmixer.c:615 -#: ../src/iop/channelmixerrgb.c:4450 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/colorbalance.c:2042 ../src/iop/colorize.c:330 -#: ../src/iop/colorreconstruction.c:1240 ../src/iop/colorzones.c:2403 +#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2365 +#: ../src/develop/blend_gui.c:2427 ../src/iop/channelmixer.c:634 +#: ../src/iop/channelmixerrgb.c:4518 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/colorbalance.c:2017 ../src/iop/colorize.c:343 +#: ../src/iop/colorreconstruction.c:1249 ../src/iop/colorzones.c:2646 msgid "hue" msgstr "色相" @@ -2944,9 +3098,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:569 #: ../build/lib/darktable/plugins/introspection_toneequal.c:156 #: ../build/lib/darktable/plugins/introspection_toneequal.c:297 -#: ../src/iop/bilat.c:469 ../src/iop/colorbalance.c:2099 -#: ../src/iop/negadoctor.c:915 ../src/iop/shadhi.c:671 -#: ../src/iop/splittoning.c:507 +#: ../src/iop/bilat.c:479 ../src/iop/colorbalance.c:2074 +#: ../src/iop/negadoctor.c:934 ../src/iop/shadhi.c:706 +#: ../src/iop/splittoning.c:503 msgid "shadows" msgstr "阴影" @@ -2958,9 +3112,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:561 #: ../build/lib/darktable/plugins/introspection_toneequal.c:180 #: ../build/lib/darktable/plugins/introspection_toneequal.c:313 -#: ../src/iop/bilat.c:463 ../src/iop/colorbalance.c:2101 -#: ../src/iop/monochrome.c:561 ../src/iop/shadhi.c:672 -#: ../src/iop/splittoning.c:514 +#: ../src/iop/bilat.c:473 ../src/iop/colorbalance.c:2076 +#: ../src/iop/monochrome.c:583 ../src/iop/shadhi.c:707 +#: ../src/iop/splittoning.c:510 msgid "highlights" msgstr "高光" @@ -2977,13 +3131,13 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:565 #: ../build/lib/darktable/plugins/introspection_toneequal.c:168 #: ../build/lib/darktable/plugins/introspection_toneequal.c:305 -#: ../src/iop/colorbalance.c:2100 +#: ../src/iop/colorbalance.c:2075 msgid "mid-tones" msgstr "中间调" #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:340 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:537 -#: ../src/iop/filmic.c:1576 +#: ../src/iop/filmic.c:1601 msgid "global saturation" msgstr "全局饱和度" @@ -3014,12 +3168,12 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:412 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:585 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:64 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:137 -#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:607 ../src/iop/bilat.c:458 -#: ../src/iop/colisa.c:304 ../src/iop/colorbalance.c:1947 -#: ../src/iop/colorbalance.c:1953 ../src/iop/filmic.c:1548 -#: ../src/iop/filmicrgb.c:4551 ../src/iop/lowpass.c:586 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:116 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:237 +#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:637 ../src/iop/bilat.c:468 +#: ../src/iop/colisa.c:298 ../src/iop/colorbalance.c:1922 +#: ../src/iop/colorbalance.c:1928 ../src/iop/filmic.c:1573 +#: ../src/iop/filmicrgb.c:4615 ../src/iop/lowpass.c:599 msgid "contrast" msgstr "对比" @@ -3046,33 +3200,35 @@ msgid "blue-yellow contrast" msgstr "蓝色-黄色对比" -#: ../build/lib/darktable/plugins/introspection_colorin.c:148 -#: ../build/lib/darktable/plugins/introspection_colorin.c:231 +#: ../build/lib/darktable/plugins/introspection_colorin.c:150 +#: ../build/lib/darktable/plugins/introspection_colorin.c:233 msgid "gamut clipping" msgstr "色域裁剪" -#: ../build/lib/darktable/plugins/introspection_colorin.c:301 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:201 -#: ../src/common/colorspaces.c:1251 ../src/common/colorspaces.c:1484 +#: ../build/lib/darktable/plugins/introspection_colorin.c:304 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:312 +#: ../src/common/colorspaces.c:1410 ../src/common/colorspaces.c:1700 #: ../src/libs/print_settings.c:1356 msgid "sRGB" msgstr "sRGB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:302 -#: ../src/common/colorspaces.c:1260 ../src/common/colorspaces.c:1486 +#: ../build/lib/darktable/plugins/introspection_colorin.c:305 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:311 +#: ../src/common/colorspaces.c:1421 ../src/common/colorspaces.c:1702 #: ../src/libs/print_settings.c:1363 msgid "Adobe RGB (compatible)" msgstr "Adobe RGB(兼容)" -#: ../build/lib/darktable/plugins/introspection_colorin.c:303 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 -#: ../src/common/colorspaces.c:1265 ../src/common/colorspaces.c:1488 +#: ../build/lib/darktable/plugins/introspection_colorin.c:306 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 +#: ../src/common/colorspaces.c:1428 ../src/common/colorspaces.c:1704 msgid "linear Rec709 RGB" msgstr "线性 Rec709 RGB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:304 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 -#: ../src/common/colorspaces.c:1274 ../src/common/colorspaces.c:1490 +#: ../build/lib/darktable/plugins/introspection_colorin.c:307 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:206 +#: ../src/common/colorspaces.c:1442 ../src/common/colorspaces.c:1706 msgid "linear Rec2020 RGB" msgstr "线性 Rec2020 RGB" @@ -3100,7 +3256,7 @@ #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:127 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:45 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:92 -#: ../src/iop/shadhi.c:686 +#: ../src/iop/shadhi.c:721 msgid "spatial extent" msgstr "空间范围" @@ -3110,7 +3266,7 @@ msgstr "界限范围" #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:154 -#: ../src/iop/channelmixerrgb.c:4669 +#: ../src/iop/channelmixerrgb.c:4737 msgid "saturated colors" msgstr "饱和色" @@ -3124,7 +3280,7 @@ #: ../build/lib/darktable/plugins/introspection_colorzones.c:233 #: ../build/lib/darktable/plugins/introspection_soften.c:66 #: ../build/lib/darktable/plugins/introspection_soften.c:121 -#: ../src/iop/atrous.c:1689 +#: ../src/iop/atrous.c:1835 msgid "mix" msgstr "混合" @@ -3134,33 +3290,17 @@ msgstr "处理模式" #: ../build/lib/darktable/plugins/introspection_colorzones.c:255 -#: ../src/develop/blend_gui.c:2294 ../src/iop/channelmixer.c:617 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/colorchecker.c:1448 -#: ../src/iop/colorize.c:349 ../src/iop/colorzones.c:2401 -#: ../src/iop/exposure.c:1239 +#: ../src/develop/blend_gui.c:2310 ../src/iop/channelmixer.c:636 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/colorchecker.c:1453 +#: ../src/iop/colorize.c:362 ../src/iop/colorzones.c:2644 +#: ../src/iop/exposure.c:1257 msgid "lightness" msgstr "明度" -#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 -#: ../src/develop/blend_gui.c:2310 ../src/iop/basicadj.c:624 -#: ../src/iop/channelmixer.c:616 ../src/iop/colisa.c:306 -#: ../src/iop/colorbalance.c:2059 ../src/iop/colorbalancergb.c:1919 -#: ../src/iop/colorchecker.c:1483 ../src/iop/colorcontrast.c:90 -#: ../src/iop/colorcorrection.c:275 ../src/iop/colorize.c:343 -#: ../src/iop/lowpass.c:588 ../src/iop/soften.c:373 ../src/iop/velvia.c:84 -#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:971 -msgid "saturation" -msgstr "饱和度" - #: ../build/lib/darktable/plugins/introspection_colorzones.c:267 -#: ../src/iop/atrous.c:1309 ../src/iop/atrous.c:1313 -#: ../src/iop/denoiseprofile.c:3527 ../src/iop/rawdenoise.c:755 +#: ../src/iop/atrous.c:1410 ../src/iop/atrous.c:1414 +#: ../src/iop/denoiseprofile.c:3531 ../src/iop/rawdenoise.c:771 +#: ../src/iop/sigmoid.c:292 msgid "smooth" msgstr "平滑" @@ -3177,9 +3317,9 @@ #: ../build/lib/darktable/plugins/introspection_defringe.c:106 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:230 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:435 -#: ../src/iop/atrous.c:1572 ../src/iop/bloom.c:372 -#: ../src/iop/colorreconstruction.c:1236 ../src/iop/hotpixels.c:384 -#: ../src/iop/sharpen.c:449 +#: ../src/iop/atrous.c:1695 ../src/iop/bloom.c:368 +#: ../src/iop/colorreconstruction.c:1245 ../src/iop/hotpixels.c:463 +#: ../src/iop/sharpen.c:444 msgid "threshold" msgstr "阈值" @@ -3314,7 +3454,7 @@ #. history #: ../build/lib/darktable/plugins/introspection_demosaic.c:232 -#: ../src/common/collection.c:1526 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1394 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "basic" msgstr "基础" @@ -3387,12 +3527,9 @@ msgid "upgrade profiled transform" msgstr "升级分析变换" -#. -#. * Color mode combo box -#. #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:257 #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:388 -#: ../src/imageio/format/avif.c:786 ../src/libs/colorpicker.c:584 +#: ../src/libs/colorpicker.c:659 msgid "color mode" msgstr "色彩模式" @@ -3417,7 +3554,7 @@ msgstr "计算方差" #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:410 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:266 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:292 msgid "RGB" msgstr "RGB" @@ -3428,7 +3565,7 @@ #. two more sharpness (standard & strong) #: ../build/lib/darktable/plugins/introspection_diffuse.c:123 #: ../build/lib/darktable/plugins/introspection_diffuse.c:248 -#: ../src/iop/atrous.c:1564 ../src/iop/diffuse.c:630 ../src/iop/highpass.c:381 +#: ../src/iop/atrous.c:1685 ../src/iop/diffuse.c:657 ../src/iop/highpass.c:376 msgid "sharpness" msgstr "锐度" @@ -3592,7 +3729,7 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:212 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:423 -#: ../src/iop/filmic.c:1489 +#: ../src/iop/filmic.c:1514 msgid "middle gray luminance" msgstr "中间灰亮度" @@ -3600,13 +3737,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:427 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:97 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:166 -#: ../src/iop/filmic.c:1514 +#: ../src/iop/filmic.c:1539 msgid "black relative exposure" msgstr "黑色相对曝光" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:224 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:431 -#: ../src/iop/filmic.c:1501 +#: ../src/iop/filmic.c:1526 msgid "white relative exposure" msgstr "白色相对曝光" @@ -3637,19 +3774,19 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:266 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:459 -#: ../src/iop/filmic.c:1646 +#: ../src/iop/filmic.c:1671 msgid "target middle gray" msgstr "目标中间灰" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:272 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:463 -#: ../src/iop/filmic.c:1637 +#: ../src/iop/filmic.c:1662 msgid "target black luminance" msgstr "目标黑亮度" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:278 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:467 -#: ../src/iop/filmic.c:1655 +#: ../src/iop/filmic.c:1680 msgid "target white luminance" msgstr "目标白亮度" @@ -3657,13 +3794,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:471 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:69 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:140 -#: ../src/libs/masks.c:106 +#: ../src/libs/masks.c:107 msgid "hardness" msgstr "硬度" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:302 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:483 -#: ../src/iop/filmic.c:1586 ../src/iop/filmicrgb.c:4729 +#: ../src/iop/filmic.c:1611 ../src/iop/filmicrgb.c:4793 msgid "extreme luminance saturation" msgstr "极端亮度饱和度" @@ -3734,11 +3871,11 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:549 #: ../build/lib/darktable/plugins/introspection_toneequal.c:371 -#: ../src/common/database.c:2785 ../src/common/variables.c:705 -#: ../src/develop/imageop_gui.c:209 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 +#: ../src/common/variables.c:714 ../src/develop/imageop_gui.c:209 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 msgid "no" msgstr "否" @@ -3840,9 +3977,25 @@ msgid "density" msgstr "密度" +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 +#: ../src/develop/blend_gui.c:2326 ../src/iop/basicadj.c:654 +#: ../src/iop/channelmixer.c:635 ../src/iop/colisa.c:300 +#: ../src/iop/colorbalance.c:2034 ../src/iop/colorbalancergb.c:1990 +#: ../src/iop/colorchecker.c:1488 ../src/iop/colorcontrast.c:82 +#: ../src/iop/colorcorrection.c:268 ../src/iop/colorize.c:356 +#: ../src/iop/lowpass.c:601 ../src/iop/soften.c:368 ../src/iop/velvia.c:75 +#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:1058 +msgid "saturation" +msgstr "饱和度" + #: ../build/lib/darktable/plugins/introspection_grain.c:58 #: ../build/lib/darktable/plugins/introspection_grain.c:117 -#: ../src/iop/bilat.c:450 +#: ../src/iop/bilat.c:460 msgid "coarseness" msgstr "粗糙度" @@ -3855,7 +4008,7 @@ #: ../build/lib/darktable/plugins/introspection_highlights.c:143 #: ../build/lib/darktable/plugins/introspection_highlights.c:244 -#: ../src/views/darkroom.c:2406 +#: ../src/views/darkroom.c:2245 msgid "clipping threshold" msgstr "限幅阈值" @@ -3991,168 +4144,172 @@ msgid "detect by 3 neighbors" msgstr "使用 3 个相邻像素检测" -#: ../build/lib/darktable/plugins/introspection_lens.cc:162 -#: ../build/lib/darktable/plugins/introspection_lens.cc:337 +#: ../build/lib/darktable/plugins/introspection_lens.cc:190 +#: ../build/lib/darktable/plugins/introspection_lens.cc:401 msgid "correction method" msgstr "修正方法" #. Page CORRECTIONS -#: ../build/lib/darktable/plugins/introspection_lens.cc:168 -#: ../build/lib/darktable/plugins/introspection_lens.cc:341 -#: ../src/iop/negadoctor.c:900 +#: ../build/lib/darktable/plugins/introspection_lens.cc:196 +#: ../build/lib/darktable/plugins/introspection_lens.cc:405 +#: ../src/iop/negadoctor.c:919 msgid "corrections" msgstr "应用修正" #. mode choice -#. Add check to control whether the style is to replace or append the current module -#: ../build/lib/darktable/plugins/introspection_lens.cc:174 -#: ../build/lib/darktable/plugins/introspection_lens.cc:345 +#: ../build/lib/darktable/plugins/introspection_lens.cc:202 +#: ../build/lib/darktable/plugins/introspection_lens.cc:409 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:128 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:219 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:51 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:118 -#: ../src/iop/bilat.c:428 ../src/iop/colorbalance.c:1909 -#: ../src/iop/denoiseprofile.c:3806 ../src/iop/exposure.c:1157 -#: ../src/iop/levels.c:684 ../src/iop/profile_gamma.c:668 -#: ../src/libs/copy_history.c:399 ../src/libs/export.c:1262 -#: ../src/libs/image.c:597 ../src/libs/print_settings.c:2875 -#: ../src/libs/styles.c:846 ../src/views/darkroom.c:2387 +#: ../src/develop/blend_gui.c:3546 ../src/iop/bilat.c:438 +#: ../src/iop/colorbalance.c:1884 ../src/iop/denoiseprofile.c:3810 +#: ../src/iop/exposure.c:1175 ../src/iop/levels.c:700 +#: ../src/iop/profile_gamma.c:682 ../src/libs/copy_history.c:399 +#: ../src/libs/export.c:1376 ../src/libs/image.c:666 +#: ../src/libs/print_settings.c:2875 ../src/libs/styles.c:850 +#: ../src/views/darkroom.c:2226 msgid "mode" msgstr "模式" -#: ../build/lib/darktable/plugins/introspection_lens.cc:210 -#: ../build/lib/darktable/plugins/introspection_lens.cc:369 -#: ../src/iop/lens.cc:3820 +#: ../build/lib/darktable/plugins/introspection_lens.cc:238 +#: ../build/lib/darktable/plugins/introspection_lens.cc:433 +#: ../src/iop/lens.cc:4474 msgid "target geometry" msgstr "目标几何体" -#: ../build/lib/darktable/plugins/introspection_lens.cc:240 -#: ../build/lib/darktable/plugins/introspection_lens.cc:389 +#: ../build/lib/darktable/plugins/introspection_lens.cc:268 +#: ../build/lib/darktable/plugins/introspection_lens.cc:453 msgid "TCA overwrite" msgstr "手动设置景深色差(TCA)修正" -#: ../build/lib/darktable/plugins/introspection_lens.cc:246 -#: ../build/lib/darktable/plugins/introspection_lens.cc:393 +#: ../build/lib/darktable/plugins/introspection_lens.cc:274 +#: ../build/lib/darktable/plugins/introspection_lens.cc:298 +#: ../build/lib/darktable/plugins/introspection_lens.cc:457 +#: ../build/lib/darktable/plugins/introspection_lens.cc:473 msgid "TCA red" msgstr "TCA 红色" -#: ../build/lib/darktable/plugins/introspection_lens.cc:252 -#: ../build/lib/darktable/plugins/introspection_lens.cc:397 +#: ../build/lib/darktable/plugins/introspection_lens.cc:280 +#: ../build/lib/darktable/plugins/introspection_lens.cc:304 +#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:477 msgid "TCA blue" msgstr "TCA 蓝色" -#: ../build/lib/darktable/plugins/introspection_lens.cc:258 -#: ../build/lib/darktable/plugins/introspection_lens.cc:401 -msgid "distortion fine-tune" -msgstr "失真微调" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:264 -#: ../build/lib/darktable/plugins/introspection_lens.cc:405 -msgid "vignetting fine-tune" -msgstr "渐晕微调" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:270 -#: ../build/lib/darktable/plugins/introspection_lens.cc:409 -msgid "TCA red fine-tune" -msgstr "TCA 红色微调" +#: ../build/lib/darktable/plugins/introspection_lens.cc:286 +#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +msgid "distortion" +msgstr "扭曲" -#: ../build/lib/darktable/plugins/introspection_lens.cc:276 -#: ../build/lib/darktable/plugins/introspection_lens.cc:413 -msgid "TCA blue fine-tune" -msgstr "TCA 蓝色微调" +#: ../build/lib/darktable/plugins/introspection_lens.cc:292 +#: ../build/lib/darktable/plugins/introspection_lens.cc:469 +#: ../src/iop/vignette.c:114 +msgid "vignetting" +msgstr "渐晕" -#: ../build/lib/darktable/plugins/introspection_lens.cc:282 -#: ../build/lib/darktable/plugins/introspection_lens.cc:417 +#: ../build/lib/darktable/plugins/introspection_lens.cc:310 +#: ../build/lib/darktable/plugins/introspection_lens.cc:481 msgid "scale fine-tune" msgstr "缩放微调" -#: ../build/lib/darktable/plugins/introspection_lens.cc:294 -#: ../build/lib/darktable/plugins/introspection_lens.cc:425 +#: ../build/lib/darktable/plugins/introspection_lens.cc:322 +#: ../build/lib/darktable/plugins/introspection_lens.cc:489 msgid "image scale" msgstr "图像缩放比率" -#: ../build/lib/darktable/plugins/introspection_lens.cc:439 +#: ../build/lib/darktable/plugins/introspection_lens.cc:346 +#: ../build/lib/darktable/plugins/introspection_lens.cc:505 +msgid "steepness" +msgstr "陡度" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:527 msgid "embedded metadata" msgstr "嵌入的元数据" -#: ../build/lib/darktable/plugins/introspection_lens.cc:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:528 msgid "Lensfun database" msgstr "Lensfun 数据库" +#: ../build/lib/darktable/plugins/introspection_lens.cc:529 +msgid "only manual vignette" +msgstr "仅手动调整渐晕" + #. get nice text for bounds #. Side-border hide/show -#: ../build/lib/darktable/plugins/introspection_lens.cc:445 -#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2367 -#: ../src/gui/accelerators.c:2447 ../src/gui/gtk.c:1204 ../src/gui/gtk.c:3136 -#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3709 -#: ../src/iop/rawdenoise.c:893 ../src/libs/collect.c:3066 -#: ../src/libs/filtering.c:1459 ../src/libs/filters/colors.c:157 +#: ../build/lib/darktable/plugins/introspection_lens.cc:534 +#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2592 +#: ../src/gui/accelerators.c:2674 ../src/gui/gtk.c:1282 ../src/gui/gtk.c:3182 +#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3713 +#: ../src/iop/rawdenoise.c:909 ../src/libs/collect.c:3413 +#: ../src/libs/filtering.c:1521 ../src/libs/filters/colors.c:157 #: ../src/libs/filters/colors.c:265 ../src/libs/filters/rating.c:211 msgid "all" msgstr "全部" -#: ../build/lib/darktable/plugins/introspection_lens.cc:446 +#: ../build/lib/darktable/plugins/introspection_lens.cc:535 msgid "distortion & TCA" msgstr "失真和景深色差" -#: ../build/lib/darktable/plugins/introspection_lens.cc:447 +#: ../build/lib/darktable/plugins/introspection_lens.cc:536 msgid "distortion & vignetting" msgstr "失真和渐晕" -#: ../build/lib/darktable/plugins/introspection_lens.cc:448 +#: ../build/lib/darktable/plugins/introspection_lens.cc:537 msgid "TCA & vignetting" msgstr "景深色差和渐晕" -#: ../build/lib/darktable/plugins/introspection_lens.cc:449 +#: ../build/lib/darktable/plugins/introspection_lens.cc:538 msgid "only distortion" msgstr "仅失真" -#: ../build/lib/darktable/plugins/introspection_lens.cc:450 +#: ../build/lib/darktable/plugins/introspection_lens.cc:539 msgid "only TCA" msgstr "仅景深色差" -#: ../build/lib/darktable/plugins/introspection_lens.cc:451 +#: ../build/lib/darktable/plugins/introspection_lens.cc:540 msgid "only vignetting" msgstr "仅渐晕" -#: ../build/lib/darktable/plugins/introspection_lens.cc:455 -#: ../src/libs/modulegroups.c:2318 +#: ../build/lib/darktable/plugins/introspection_lens.cc:544 +#: ../src/libs/modulegroups.c:2302 msgid "correct" msgstr "修正" -#: ../build/lib/darktable/plugins/introspection_lens.cc:456 +#: ../build/lib/darktable/plugins/introspection_lens.cc:545 msgid "distort" msgstr "失真" -#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:550 msgid "rectilinear" msgstr "直线" -#: ../build/lib/darktable/plugins/introspection_lens.cc:462 +#: ../build/lib/darktable/plugins/introspection_lens.cc:551 msgid "fisheye" msgstr "鱼眼" -#: ../build/lib/darktable/plugins/introspection_lens.cc:463 +#: ../build/lib/darktable/plugins/introspection_lens.cc:552 msgid "panoramic" msgstr "全景" -#: ../build/lib/darktable/plugins/introspection_lens.cc:464 +#: ../build/lib/darktable/plugins/introspection_lens.cc:553 msgid "equirectangular" msgstr "等距柱形" -#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +#: ../build/lib/darktable/plugins/introspection_lens.cc:554 msgid "orthographic" msgstr "正交" -#: ../build/lib/darktable/plugins/introspection_lens.cc:466 +#: ../build/lib/darktable/plugins/introspection_lens.cc:555 msgid "stereographic" msgstr "球极平面" -#: ../build/lib/darktable/plugins/introspection_lens.cc:467 +#: ../build/lib/darktable/plugins/introspection_lens.cc:556 msgid "equisolid angle" msgstr "等立体角" -#: ../build/lib/darktable/plugins/introspection_lens.cc:468 +#: ../build/lib/darktable/plugins/introspection_lens.cc:557 msgid "Thoby fisheye" msgstr "Thoby 鱼眼" @@ -4162,8 +4319,8 @@ #. move left/right/up/down #: ../build/lib/darktable/plugins/introspection_liquify.c:429 -#: ../src/views/darkroom.c:2282 ../src/views/darkroom.c:2676 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:765 +#: ../src/views/darkroom.c:2121 ../src/views/darkroom.c:2522 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:765 #: ../src/views/lighttable.c:774 ../src/views/lighttable.c:1246 #: ../src/views/lighttable.c:1250 ../src/views/lighttable.c:1254 #: ../src/views/lighttable.c:1258 ../src/views/lighttable.c:1262 @@ -4175,8 +4332,8 @@ msgstr "直线" #: ../build/lib/darktable/plugins/introspection_liquify.c:431 -#: ../src/iop/basecurve.c:2186 ../src/iop/rgbcurve.c:1387 -#: ../src/iop/tonecurve.c:1149 +#: ../src/iop/basecurve.c:2207 ../src/iop/rgbcurve.c:1387 +#: ../src/iop/tonecurve.c:1171 msgid "curve" msgstr "曲线" @@ -4212,28 +4369,33 @@ msgid "bilateral filter" msgstr "降噪(双边滤波)" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:76 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:163 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:77 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:164 msgid "application color space" msgstr "应用程序色彩空间" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 msgid "Adobe RGB" msgstr "Adobe RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 msgid "gamma Rec709 RGB" msgstr "伽马 Rec709 RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:209 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:207 +#: ../src/common/colorspaces.c:1486 ../src/common/colorspaces.c:1740 +msgid "linear ProPhoto RGB" +msgstr "线性 ProPhoto RGB" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 msgid "tetrahedral" msgstr "四面体" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:210 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:212 msgid "trilinear" msgstr "三线性" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:213 msgid "pyramid" msgstr "金字塔" @@ -4254,7 +4416,7 @@ #: ../build/lib/darktable/plugins/introspection_negadoctor.c:144 #: ../build/lib/darktable/plugins/introspection_negadoctor.c:239 -#: ../src/iop/negadoctor.c:992 +#: ../src/iop/negadoctor.c:1011 msgid "paper grade (gamma)" msgstr "纸的等级(伽马)" @@ -4269,15 +4431,57 @@ msgstr "打印曝光调整" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:261 -#: ../src/iop/negadoctor.c:417 +#: ../src/iop/negadoctor.c:431 msgid "black and white film" msgstr "黑白胶片" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:262 -#: ../src/iop/negadoctor.c:402 +#: ../src/iop/negadoctor.c:416 msgid "color film" msgstr "彩色胶片" +#: ../build/lib/darktable/plugins/introspection_primaries.c:75 +#: ../build/lib/darktable/plugins/introspection_primaries.c:160 +#: ../src/iop/primaries.c:406 +msgid "tint hue" +msgstr "减光色相" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:81 +#: ../build/lib/darktable/plugins/introspection_primaries.c:164 +#: ../src/iop/primaries.c:413 +msgid "tint purity" +msgstr "减光纯度" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:87 +#: ../build/lib/darktable/plugins/introspection_primaries.c:168 +msgid "red hue" +msgstr "红色色相" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:93 +#: ../build/lib/darktable/plugins/introspection_primaries.c:172 +msgid "red purity" +msgstr "红色纯度" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:99 +#: ../build/lib/darktable/plugins/introspection_primaries.c:176 +msgid "green hue" +msgstr "绿色色相" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:105 +#: ../build/lib/darktable/plugins/introspection_primaries.c:180 +msgid "green purity" +msgstr "绿色纯度" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:111 +#: ../build/lib/darktable/plugins/introspection_primaries.c:184 +msgid "blue hue" +msgstr "蓝色色相" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:117 +#: ../build/lib/darktable/plugins/introspection_primaries.c:188 +msgid "blue purity" +msgstr "蓝色纯度" + #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:85 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:158 msgid "dynamic range" @@ -4290,7 +4494,7 @@ #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:103 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:170 -#: ../src/iop/filmic.c:1526 +#: ../src/iop/filmic.c:1551 msgid "safety factor" msgstr "安全系数" @@ -4299,7 +4503,7 @@ msgstr "对数" #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:185 -#: ../src/iop/profile_gamma.c:625 +#: ../src/iop/profile_gamma.c:639 msgid "gamma" msgstr "伽马" @@ -4337,7 +4541,7 @@ #: ../build/lib/darktable/plugins/introspection_rawprepare.c:106 #: ../build/lib/darktable/plugins/introspection_rawprepare.c:179 -#: ../src/iop/rawprepare.c:946 +#: ../src/iop/rawprepare.c:954 msgid "white point" msgstr "白场" @@ -4353,9 +4557,9 @@ #. exposure #: ../build/lib/darktable/plugins/introspection_relight.c:43 #: ../build/lib/darktable/plugins/introspection_relight.c:98 -#: ../src/common/collection.c:720 ../src/gui/preferences.c:836 -#: ../src/gui/presets.c:684 ../src/iop/basicadj.c:598 ../src/iop/exposure.c:122 -#: ../src/iop/exposure.c:1117 ../src/libs/metadata_view.c:141 +#: ../src/common/collection.c:633 ../src/gui/preferences.c:834 +#: ../src/gui/presets.c:687 ../src/iop/basicadj.c:628 ../src/iop/exposure.c:122 +#: ../src/iop/exposure.c:1135 ../src/libs/metadata_view.c:143 msgid "exposure" msgstr "曝光" @@ -4366,9 +4570,9 @@ #: ../build/lib/darktable/plugins/introspection_retouch.c:285 #: ../build/lib/darktable/plugins/introspection_retouch.c:426 -#: ../src/iop/basicadj.c:620 ../src/iop/channelmixerrgb.c:4617 -#: ../src/iop/colisa.c:305 ../src/iop/lowpass.c:587 ../src/iop/soften.c:377 -#: ../src/iop/vignette.c:970 ../src/libs/history.c:963 +#: ../src/iop/basicadj.c:650 ../src/iop/channelmixerrgb.c:4685 +#: ../src/iop/colisa.c:299 ../src/iop/lowpass.c:600 ../src/iop/soften.c:372 +#: ../src/iop/vignette.c:1057 ../src/libs/history.c:963 msgid "brightness" msgstr "亮度" @@ -4378,7 +4582,7 @@ msgstr "最大循环次数" #: ../build/lib/darktable/plugins/introspection_retouch.c:444 -#: ../src/libs/metadata_view.c:329 +#: ../src/libs/metadata_view.c:333 msgid "unused" msgstr "未使用" @@ -4391,12 +4595,12 @@ msgstr "修复" #: ../build/lib/darktable/plugins/introspection_retouch.c:447 -#: ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2051 msgid "blur" msgstr "模糊" #: ../build/lib/darktable/plugins/introspection_retouch.c:448 -#: ../src/iop/retouch.c:1865 +#: ../src/iop/retouch.c:2049 msgid "fill" msgstr "填充" @@ -4409,9 +4613,9 @@ msgstr "擦除" #: ../build/lib/darktable/plugins/introspection_retouch.c:458 -#: ../src/gui/presets.c:59 ../src/iop/watermark.c:1298 -#: ../src/libs/colorpicker.c:291 ../src/libs/image.c:612 -#: ../src/libs/modulegroups.c:2317 +#: ../src/gui/presets.c:61 ../src/iop/watermark.c:1346 +#: ../src/libs/colorpicker.c:320 ../src/libs/image.c:683 +#: ../src/libs/modulegroups.c:2301 msgid "color" msgstr "颜色" @@ -4447,45 +4651,93 @@ msgid "highlights color adjustment" msgstr "高亮色彩调整" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:70 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:141 -#: ../src/gui/accelerators.c:85 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:122 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:241 +#: ../src/gui/accelerators.c:101 msgid "skew" msgstr "扭曲" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:76 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:145 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:128 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:245 msgid "target white" msgstr "目标白" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:82 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:149 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:134 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:249 msgid "target black" msgstr "目标黑" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:88 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:153 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:140 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:253 msgid "color processing" msgstr "颜色处理" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:94 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:157 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:146 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:257 msgid "preserve hue" msgstr "保留色相" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:171 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:152 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:261 +msgid "red attenuation" +msgstr "红色衰减" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:158 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:265 +msgid "red rotation" +msgstr "红色旋转" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:164 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:269 +msgid "green attenuation" +msgstr "绿色衰减" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:170 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:273 +msgid "green rotation" +msgstr "绿色旋转" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:176 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:277 +msgid "blue attenuation" +msgstr "蓝色衰减" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:182 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:281 +msgid "blue rotation" +msgstr "蓝色旋转" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:188 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:285 +msgid "recover purity" +msgstr "修正纯度" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:194 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:289 +msgid "base primaries" +msgstr "基底原色" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:303 msgid "per channel" msgstr "分通道" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:172 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:304 msgid "RGB ratio" msgstr "RGB 比例" -#: ../build/lib/darktable/plugins/introspection_temperature.c:66 -#: ../build/lib/darktable/plugins/introspection_temperature.c:121 -#: ../src/iop/temperature.c:1941 -msgid "emerald" -msgstr "祖母绿" +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:308 +#: ../src/common/colorspaces.c:1377 ../src/common/colorspaces.c:1734 +msgid "work profile" +msgstr "工作档案" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:309 +msgid "Rec2020" +msgstr "Rec2020" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:310 +#: ../src/common/colorspaces.c:1750 +msgid "Display P3" +msgstr "Display P3" #: ../build/lib/darktable/plugins/introspection_tonecurve.c:135 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:232 @@ -4607,13 +4859,13 @@ #: ../build/lib/darktable/plugins/introspection_tonemap.cc:39 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:88 -#: ../src/iop/rgbcurve.c:184 ../src/iop/tonecurve.c:539 +#: ../src/iop/rgbcurve.c:186 ../src/iop/tonecurve.c:560 msgid "contrast compression" msgstr "对比度压缩" #: ../build/lib/darktable/plugins/introspection_vibrance.c:33 #: ../build/lib/darktable/plugins/introspection_vibrance.c:76 -#: ../src/iop/basicadj.c:627 ../src/iop/vibrance.c:67 +#: ../src/iop/basicadj.c:657 ../src/iop/vibrance.c:67 msgid "vibrance" msgstr "鲜艳度" @@ -4649,7 +4901,7 @@ #: ../build/lib/darktable/plugins/introspection_vignette.c:146 #: ../build/lib/darktable/plugins/introspection_vignette.c:237 -#: ../src/iop/vignette.c:978 +#: ../src/iop/vignette.c:1066 msgid "shape" msgstr "形状" @@ -4688,7 +4940,7 @@ #: ../build/lib/darktable/plugins/introspection_watermark.c:323 #: ../src/imageio/format/tiff.c:125 ../src/imageio/format/xcf.c:159 -#: ../src/iop/borders.c:947 +#: ../src/iop/borders.c:960 msgid "image" msgstr "照片" @@ -4700,12 +4952,6 @@ msgid "smaller border" msgstr "短边" -#: ../build/lib/darktable/plugins/introspection_watermark.c:326 -#: ../src/libs/export.c:1135 ../src/libs/metadata_view.c:148 -#: ../src/libs/print_settings.c:2541 -msgid "height" -msgstr "高度" - #: ../build/lib/darktable/plugins/introspection_watermark.c:327 msgid "advanced options" msgstr "高级选项" @@ -4734,23 +4980,23 @@ msgid "marker height" msgstr "水印高度" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:6 +#: ../build/bin/tools/darktable_authors.h:6 msgid "developers" msgstr "开发者" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:11 +#: ../build/bin/tools/darktable_authors.h:11 msgid "translators" msgstr "翻译人员" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:16 +#: ../build/bin/tools/darktable_authors.h:16 msgid "contributors" msgstr "贡献者" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:21 +#: ../build/bin/tools/darktable_authors.h:21 msgid "rawspeed contributors" msgstr "rawspeed 贡献者" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:26 +#: ../build/bin/tools/darktable_authors.h:26 msgid "integration contributors" msgstr "集成贡献者" @@ -4814,90 +5060,104 @@ msgid "Print your images" msgstr "打印图像" -#: ../src/bauhaus/bauhaus.c:752 ../src/bauhaus/bauhaus.c:3689 +#: ../src/bauhaus/bauhaus.c:845 ../src/bauhaus/bauhaus.c:3957 msgid "sliders" msgstr "滑块" -#: ../src/bauhaus/bauhaus.c:753 ../src/bauhaus/bauhaus.c:3694 +#: ../src/bauhaus/bauhaus.c:847 ../src/bauhaus/bauhaus.c:3962 msgid "dropdowns" msgstr "下拉菜单" -#: ../src/bauhaus/bauhaus.c:754 ../src/bauhaus/bauhaus.c:3699 +#: ../src/bauhaus/bauhaus.c:849 ../src/bauhaus/bauhaus.c:3967 msgid "buttons" msgstr "按钮" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button on" msgstr "开" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button off" msgstr "关" -#: ../src/bauhaus/bauhaus.c:3406 +#: ../src/bauhaus/bauhaus.c:3624 msgid "button pressed" msgstr "按下" -#: ../src/bauhaus/bauhaus.c:3623 +#: ../src/bauhaus/bauhaus.c:3862 msgid "not that many sliders" msgstr "没有那么多滑块" -#: ../src/bauhaus/bauhaus.c:3633 +#: ../src/bauhaus/bauhaus.c:3876 msgid "not that many dropdowns" msgstr "没有那么多下拉菜单" -#: ../src/bauhaus/bauhaus.c:3648 +#: ../src/bauhaus/bauhaus.c:3895 msgid "not that many buttons" msgstr "没有那么多按钮" -#: ../src/bauhaus/bauhaus.c:3653 ../src/gui/accelerators.c:348 +#: ../src/bauhaus/bauhaus.c:3900 ../src/gui/accelerators.c:389 msgid "value" msgstr "值" -#: ../src/bauhaus/bauhaus.c:3654 ../src/bauhaus/bauhaus.c:3660 -#: ../src/gui/accelerators.c:326 +#: ../src/bauhaus/bauhaus.c:3901 ../src/bauhaus/bauhaus.c:3907 +#: ../src/gui/accelerators.c:368 msgid "button" msgstr "按钮" -#: ../src/bauhaus/bauhaus.c:3655 +#: ../src/bauhaus/bauhaus.c:3902 msgid "force" msgstr "力度" -#: ../src/bauhaus/bauhaus.c:3656 ../src/libs/navigation.c:187 -#: ../src/libs/navigation.c:199 +#: ../src/bauhaus/bauhaus.c:3903 ../src/libs/navigation.c:190 +#: ../src/libs/navigation.c:202 msgid "zoom" msgstr "缩放" -#: ../src/bauhaus/bauhaus.c:3659 +#: ../src/bauhaus/bauhaus.c:3906 ../src/libs/select.c:40 msgid "selection" msgstr "选择" -#: ../src/bauhaus/bauhaus.c:3678 +#: ../src/bauhaus/bauhaus.c:3946 msgid "slider" msgstr "滑块" -#: ../src/bauhaus/bauhaus.c:3683 +#: ../src/bauhaus/bauhaus.c:3951 msgid "dropdown" msgstr "下拉菜单" -#: ../src/chart/main.c:504 ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 ../src/gui/accelerators.c:2278 -#: ../src/gui/accelerators.c:2355 ../src/gui/accelerators.c:2407 -#: ../src/gui/accelerators.c:2435 ../src/gui/accelerators.c:2495 -#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1043 -#: ../src/gui/preferences.c:1082 ../src/gui/presets.c:420 -#: ../src/gui/presets.c:563 ../src/gui/styles_dialog.c:519 -#: ../src/imageio/storage/disk.c:123 ../src/imageio/storage/gallery.c:110 -#: ../src/imageio/storage/latex.c:109 ../src/iop/lut3d.c:1546 -#: ../src/libs/collect.c:408 ../src/libs/copy_history.c:115 -#: ../src/libs/geotagging.c:928 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/styles.c:392 ../src/libs/styles.c:527 -#: ../src/libs/tagging.c:2489 ../src/libs/tagging.c:2525 +#: ../src/chart/main.c:504 ../src/common/database.c:3372 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 ../src/gui/accelerators.c:2497 +#: ../src/gui/accelerators.c:2579 ../src/gui/accelerators.c:2632 +#: ../src/gui/accelerators.c:2661 ../src/gui/accelerators.c:2723 +#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1081 ../src/gui/presets.c:422 +#: ../src/gui/presets.c:565 ../src/gui/styles_dialog.c:526 +#: ../src/imageio/storage/disk.c:198 ../src/imageio/storage/gallery.c:150 +#: ../src/imageio/storage/latex.c:146 ../src/iop/lut3d.c:1560 +#: ../src/libs/collect.c:425 ../src/libs/collect.c:3242 +#: ../src/libs/copy_history.c:115 ../src/libs/export_metadata.c:276 +#: ../src/libs/geotagging.c:929 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1711 +#: ../src/libs/metadata.c:462 ../src/libs/metadata_view.c:1222 +#: ../src/libs/recentcollect.c:228 ../src/libs/modulegroups.c:3466 +#: ../src/libs/styles.c:392 ../src/libs/styles.c:439 ../src/libs/styles.c:529 +#: ../src/libs/styles.c:624 ../src/libs/tagging.c:1488 +#: ../src/libs/tagging.c:1579 ../src/libs/tagging.c:1670 +#: ../src/libs/tagging.c:1806 ../src/libs/tagging.c:2085 +#: ../src/libs/tagging.c:2520 ../src/libs/tagging.c:2556 +#: ../src/libs/tagging.c:3502 msgid "_cancel" msgstr "取消 (_c)" -#: ../src/chart/main.c:504 ../src/gui/preferences.c:1082 -#: ../src/gui/styles_dialog.c:520 ../src/libs/styles.c:392 +#: ../src/chart/main.c:504 ../src/gui/preferences.c:1081 +#: ../src/gui/styles_dialog.c:527 ../src/libs/collect.c:3243 +#: ../src/libs/export_metadata.c:277 ../src/libs/metadata.c:463 +#: ../src/libs/metadata_view.c:1223 ../src/libs/recentcollect.c:229 +#: ../src/libs/styles.c:392 ../src/libs/tagging.c:1671 +#: ../src/libs/tagging.c:1807 ../src/libs/tagging.c:2086 +#: ../src/libs/tagging.c:3503 msgid "_save" msgstr "保存 (_s)" @@ -4911,61 +5171,61 @@ "平均 dE: %.02f\n" "最大 dE: %.02f" -#: ../src/cli/main.c:247 +#: ../src/cli/main.c:270 msgid "TODO: sorry, due to API restrictions we currently cannot set the BPP to" msgstr "TODO:很抱歉,由于api的限制,我们目前无法将 BPP 设置为" -#: ../src/cli/main.c:259 +#: ../src/cli/main.c:282 msgid "unknown option for --hq" msgstr "在 --hq 指定了未知选项" -#: ../src/cli/main.c:275 +#: ../src/cli/main.c:298 msgid "unknown option for --export_masks" msgstr "在 --export 指定了未知选项" -#: ../src/cli/main.c:291 +#: ../src/cli/main.c:314 msgid "unknown option for --upscale" msgstr "在 --upscale 指定了未知选项" -#: ../src/cli/main.c:316 +#: ../src/cli/main.c:339 msgid "unknown option for --apply-custom-presets" msgstr "在 --apply-custom-presets 指定了未知选项" -#: ../src/cli/main.c:327 +#: ../src/cli/main.c:350 msgid "too long ext for --out-ext" msgstr "--out-ext 的扩展名过长" -#: ../src/cli/main.c:344 +#: ../src/cli/main.c:367 #, c-format msgid "notice: input file or dir '%s' doesn't exist, skipping\n" msgstr "注意:输入文件或目录“%s”不存在,已跳过\n" -#: ../src/cli/main.c:353 +#: ../src/cli/main.c:376 #, c-format msgid "incorrect ICC type for --icc-type: '%s'\n" msgstr "--icc-type 传入了不正确的 ICC 类型:“%s”\n" -#: ../src/cli/main.c:369 +#: ../src/cli/main.c:392 #, c-format msgid "notice: ICC file '%s' doesn't exist, skipping\n" msgstr "注意:ICC 文件“%s”不存在,已跳过\n" -#: ../src/cli/main.c:378 +#: ../src/cli/main.c:401 #, c-format msgid "incorrect ICC intent for --icc-intent: '%s'\n" msgstr "--icc-intent 传入了不正确的 ICC 渲染意图:“%s”\n" -#: ../src/cli/main.c:396 +#: ../src/cli/main.c:419 #, c-format msgid "warning: unknown option '%s'\n" msgstr "警告:未知选项“%s”\n" -#: ../src/cli/main.c:454 +#: ../src/cli/main.c:477 #, c-format msgid "error: input file and import opts specified! that's not supported!\n" msgstr "错误:输入文件和输入选项皆已指定,不支持此选项组合!\n" -#: ../src/cli/main.c:487 +#: ../src/cli/main.c:510 #, c-format msgid "" "notice: output location is a directory. assuming '%s/$(FILE_NAME).%s' output " @@ -4973,63 +5233,63 @@ msgstr "注意:输出位置是一个目录。默认使用“%s/$(FILE_NAME).%s”作为文件名模板" #. output file exists or there's output ext specified and it's same as file... -#: ../src/cli/main.c:502 +#: ../src/cli/main.c:525 msgid "output file already exists, it will get renamed" msgstr "输出文件已经存在,它将会被重命名" #. one of inputs was a failure, no prob -#: ../src/cli/main.c:532 +#: ../src/cli/main.c:555 #, c-format msgid "error: can't open folder %s" msgstr "错误:无法打开文件夹 %s" -#: ../src/cli/main.c:549 +#: ../src/cli/main.c:572 #, c-format msgid "error: can't open file %s" msgstr "错误:无法打开文件 %s" -#: ../src/cli/main.c:566 +#: ../src/cli/main.c:589 #, c-format msgid "no images to export, aborting\n" msgstr "没有图像要导出,取消\n" -#: ../src/cli/main.c:583 +#: ../src/cli/main.c:606 #, c-format msgid "error: can't open XMP file %s" msgstr "错误:无法打开 XMP 文件 %s" -#: ../src/cli/main.c:604 +#: ../src/cli/main.c:627 msgid "empty history stack" msgstr "清空历史记录栈" #. too long ext, no point in wasting time -#: ../src/cli/main.c:616 +#: ../src/cli/main.c:639 #, c-format msgid "too long output file extension: %s\n" msgstr "输出文件扩展名过长:%s\n" #. no ext or empty ext, no point in wasting time -#: ../src/cli/main.c:624 +#: ../src/cli/main.c:647 #, c-format msgid "no output file extension given\n" msgstr "未指定输出文件扩展名\n" -#: ../src/cli/main.c:663 +#: ../src/cli/main.c:692 msgid "" "cannot find disk storage module. please check your installation, something " "seems to be broken." msgstr "无法找到硬盘存储模块。请检查已安装的程序文件,有些部分似乎已损坏。" -#: ../src/cli/main.c:673 +#: ../src/cli/main.c:702 msgid "failed to get parameters from storage module, aborting export ..." msgstr "从存储模块获取参数失败,导出中断……" -#: ../src/cli/main.c:689 +#: ../src/cli/main.c:718 #, c-format msgid "unknown extension '.%s'" msgstr "未知扩展“.%s”" -#: ../src/cli/main.c:699 +#: ../src/cli/main.c:728 msgid "failed to get parameters from format module, aborting export ..." msgstr "从格式模块获取参数失败,导出中断……" @@ -5074,202 +5334,208 @@ "您需要重新挂载端口“%2$s”上的相机“%1$s”\n" "请确认您的相机允许电脑访问,并且未被其他程序挂载" -#: ../src/common/collection.c:673 +#: ../src/common/collection.c:586 msgid "too much time to update aspect ratio for the collection" msgstr "更新图像集纵横比操作时间过长" -#: ../src/common/collection.c:688 +#: ../src/common/collection.c:601 msgid "film roll" msgstr "胶卷" -#: ../src/common/collection.c:690 +#: ../src/common/collection.c:603 msgid "folder" msgstr "文件夹" -#: ../src/common/collection.c:692 +#: ../src/common/collection.c:605 msgid "camera" msgstr "相机" -#: ../src/common/collection.c:694 ../src/libs/export_metadata.c:189 -#: ../src/libs/tagging.c:3281 +#: ../src/common/collection.c:607 ../src/libs/export_metadata.c:176 +#: ../src/libs/tagging.c:3312 msgid "tag" msgstr "标签" -#: ../src/common/collection.c:696 +#: ../src/common/collection.c:609 msgid "capture date" msgstr "拍摄日期" -#: ../src/common/collection.c:698 ../src/libs/filtering.c:61 +#: ../src/common/collection.c:611 ../src/libs/filtering.c:61 msgid "capture time" msgstr "拍摄时间" -#: ../src/common/collection.c:700 ../src/libs/filtering.c:62 +#: ../src/common/collection.c:613 ../src/libs/filtering.c:62 msgid "import time" msgstr "导入时间" -#: ../src/common/collection.c:702 ../src/libs/filtering.c:63 +#: ../src/common/collection.c:615 ../src/libs/filtering.c:63 msgid "modification time" msgstr "修改时间" -#: ../src/common/collection.c:704 ../src/libs/filtering.c:64 +#: ../src/common/collection.c:617 ../src/libs/filtering.c:64 msgid "export time" msgstr "导出时间" -#: ../src/common/collection.c:706 ../src/libs/filtering.c:65 +#: ../src/common/collection.c:619 ../src/libs/filtering.c:65 msgid "print time" msgstr "打印时间" -#: ../src/common/collection.c:708 ../src/libs/collect.c:3222 -#: ../src/libs/filtering.c:2163 ../src/libs/filtering.c:2183 +#: ../src/common/collection.c:621 ../src/libs/collect.c:3586 +#: ../src/libs/filtering.c:2237 ../src/libs/filtering.c:2257 #: ../src/libs/filters/history.c:153 ../src/libs/history.c:92 msgid "history" msgstr "历史" -#: ../src/common/collection.c:710 ../src/common/colorlabels.c:342 -#: ../src/develop/lightroom.c:1550 ../src/dtgtk/thumbnail.c:1560 +#: ../src/common/collection.c:623 ../src/common/colorlabels.c:341 +#: ../src/develop/lightroom.c:1607 ../src/dtgtk/thumbnail.c:1548 #: ../src/libs/filtering.c:68 ../src/libs/filters/colors.c:301 #: ../src/libs/filters/colors.c:312 ../src/libs/tools/colorlabels.c:93 msgid "color label" msgstr "色彩标识" #. iso -#: ../src/common/collection.c:716 ../src/gui/preferences.c:832 -#: ../src/gui/presets.c:666 ../src/libs/camera.c:558 -#: ../src/libs/metadata_view.c:145 +#: ../src/common/collection.c:629 ../src/gui/preferences.c:830 +#: ../src/gui/presets.c:669 ../src/libs/camera.c:558 +#: ../src/libs/metadata_view.c:149 msgid "ISO" msgstr "ISO" #. aperture -#: ../src/common/collection.c:718 ../src/gui/preferences.c:840 -#: ../src/gui/presets.c:701 ../src/libs/camera.c:545 ../src/libs/camera.c:547 -#: ../src/libs/metadata_view.c:140 +#: ../src/common/collection.c:631 ../src/gui/preferences.c:838 +#: ../src/gui/presets.c:704 ../src/libs/camera.c:545 ../src/libs/camera.c:547 +#: ../src/libs/metadata_view.c:142 msgid "aperture" msgstr "光圈" -#: ../src/common/collection.c:724 ../src/libs/filtering.c:57 -#: ../src/libs/filters/filename.c:364 ../src/libs/metadata_view.c:126 +#: ../src/common/collection.c:637 ../src/libs/filtering.c:57 +#: ../src/libs/filters/filename.c:369 ../src/libs/metadata_view.c:128 msgid "filename" msgstr "文件名" -#: ../src/common/collection.c:726 ../src/develop/lightroom.c:1541 +#: ../src/common/collection.c:639 ../src/develop/lightroom.c:1598 #: ../src/libs/geotagging.c:141 msgid "geotagging" msgstr "地理标签" -#: ../src/common/collection.c:728 ../src/libs/filters/grouping.c:167 +#: ../src/common/collection.c:641 ../src/libs/filters/grouping.c:167 #: ../src/libs/tools/global_toolbox.c:394 msgid "grouping" msgstr "分组" -#: ../src/common/collection.c:730 ../src/dtgtk/thumbnail.c:1575 -#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:129 -#: ../src/libs/metadata_view.c:336 +#: ../src/common/collection.c:643 ../src/dtgtk/thumbnail.c:1563 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:340 msgid "local copy" msgstr "本地副本" -#: ../src/common/collection.c:732 ../src/gui/preferences.c:808 +#: ../src/common/collection.c:645 ../src/gui/preferences.c:806 msgid "module" msgstr "模块" -#: ../src/common/collection.c:734 ../src/gui/hist_dialog.c:346 -#: ../src/gui/styles_dialog.c:722 ../src/gui/styles_dialog.c:771 +#: ../src/common/collection.c:647 ../src/gui/hist_dialog.c:346 +#: ../src/gui/styles_dialog.c:734 ../src/gui/styles_dialog.c:783 #: ../src/libs/filters/module_order.c:161 ../src/libs/ioporder.c:39 msgid "module order" msgstr "模块顺序" -#: ../src/common/collection.c:736 +#: ../src/common/collection.c:649 msgid "range rating" msgstr "评级范围" -#: ../src/common/collection.c:738 ../src/common/ratings.c:322 -#: ../src/develop/lightroom.c:1525 ../src/libs/filtering.c:67 +#: ../src/common/collection.c:651 ../src/common/ratings.c:321 +#: ../src/develop/lightroom.c:1582 ../src/libs/filtering.c:67 #: ../src/libs/tools/ratings.c:110 msgid "rating" msgstr "评级" -#: ../src/common/collection.c:740 +#: ../src/common/collection.c:653 msgid "search" msgstr "搜索" -#: ../src/common/collection.c:1509 ../src/common/colorlabels.c:335 -#: ../src/develop/lightroom.c:836 ../src/gui/guides.c:732 -#: ../src/iop/colorzones.c:2265 ../src/iop/temperature.c:1925 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:261 +#: ../src/common/collection.c:1376 ../src/common/colorlabels.c:334 +#: ../src/develop/lightroom.c:889 ../src/gui/guides.c:732 +#: ../src/iop/colorzones.c:2501 ../src/iop/temperature.c:1902 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:261 msgid "yellow" msgstr "黄" -#: ../src/common/collection.c:1515 ../src/common/color_vocabulary.c:339 -#: ../src/common/colorlabels.c:338 ../src/iop/colorzones.c:2269 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:264 +#: ../src/common/collection.c:1382 ../src/common/color_vocabulary.c:339 +#: ../src/common/colorlabels.c:337 ../src/iop/colorzones.c:2505 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:264 msgid "purple" msgstr "紫" -#: ../src/common/collection.c:1532 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1400 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "auto applied" msgstr "已自动应用" -#: ../src/common/collection.c:1536 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1406 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "altered" msgstr "已改变" -#: ../src/common/collection.c:1553 ../src/common/collection.c:1649 -#: ../src/libs/collect.c:1166 ../src/libs/collect.c:1330 -#: ../src/libs/collect.c:1354 ../src/libs/collect.c:1473 -#: ../src/libs/collect.c:2432 +#: ../src/common/collection.c:1424 ../src/common/collection.c:1535 +#: ../src/libs/collect.c:1242 ../src/libs/collect.c:1426 +#: ../src/libs/collect.c:1452 ../src/libs/collect.c:1592 +#: ../src/libs/collect.c:2662 msgid "not tagged" msgstr "无标签" -#: ../src/common/collection.c:1554 ../src/libs/collect.c:1354 +#: ../src/common/collection.c:1425 ../src/libs/collect.c:1452 #: ../src/libs/map_locations.c:742 msgid "tagged" msgstr "已加标签" -#: ../src/common/collection.c:1555 +#: ../src/common/collection.c:1426 msgid "tagged*" msgstr "已加标签*" #. local copy -#: ../src/common/collection.c:1588 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1460 ../src/libs/collect.c:1883 #: ../src/libs/filters/local_copy.c:38 msgid "not copied locally" msgstr "没有本地复制" -#: ../src/common/collection.c:1592 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1465 ../src/libs/collect.c:1882 #: ../src/libs/filters/local_copy.c:38 msgid "copied locally" msgstr "有本地副本" -#: ../src/common/collection.c:1974 ../src/libs/collect.c:1879 +#. if its undefined +#: ../src/common/collection.c:1507 ../src/common/collection.c:1619 +#: ../src/libs/collect.c:2209 ../src/libs/collect.c:2210 +msgid "unnamed" +msgstr "未命名" + +#: ../src/common/collection.c:1905 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:147 ../src/libs/filters/grouping.c:170 msgid "group leaders" msgstr "分组首张图像" -#: ../src/common/collection.c:1978 ../src/libs/collect.c:1879 +#: ../src/common/collection.c:1909 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:150 ../src/libs/filters/grouping.c:170 msgid "group followers" msgstr "分组成员" -#: ../src/common/collection.c:2126 ../src/libs/collect.c:1959 +#: ../src/common/collection.c:2066 ../src/libs/collect.c:2100 msgid "not defined" msgstr "未定义" -#: ../src/common/collection.c:2575 +#: ../src/common/collection.c:2521 #, c-format msgid "<b>%d</b> image (#<b>%d</b>) selected of <b>%d</b>" msgstr "已选择 <b>%d</b> 张图像,当前选中 #<b>%d</b>,共 <b>%d</b> 张" -#: ../src/common/collection.c:2582 +#: ../src/common/collection.c:2528 #, c-format msgid "<b>%d</b> image selected of <b>%d</b>" msgid_plural "<b>%d</b> images selected of <b>%d</b>" msgstr[0] "已选择 <b>%d</b> 张图像,共 <b>%d</b> 张" -#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2324 -#: ../src/develop/blend_gui.c:2372 ../src/gui/guides.c:729 -#: ../src/iop/channelmixerrgb.c:4620 ../src/iop/levels.c:671 -#: ../src/iop/rgblevels.c:937 ../src/iop/rgblevels.c:1032 +#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2340 +#: ../src/develop/blend_gui.c:2388 ../src/gui/guides.c:729 +#: ../src/iop/channelmixerrgb.c:4688 ../src/iop/levels.c:687 +#: ../src/iop/rgblevels.c:969 ../src/iop/rgblevels.c:1083 msgid "gray" msgstr "灰" @@ -5478,12 +5744,12 @@ msgstr "深青色" #: ../src/common/color_vocabulary.c:297 ../src/common/color_vocabulary.c:317 -#: ../src/iop/colorzones.c:2267 +#: ../src/iop/colorzones.c:2503 msgid "aqua" msgstr "水蓝" #: ../src/common/color_vocabulary.c:298 ../src/gui/guides.c:733 -#: ../src/iop/temperature.c:1923 +#: ../src/iop/temperature.c:1900 msgid "cyan" msgstr "青色" @@ -5549,7 +5815,7 @@ msgstr "深洋红" #: ../src/common/color_vocabulary.c:341 ../src/gui/guides.c:734 -#: ../src/iop/colorzones.c:2270 ../src/iop/temperature.c:1921 +#: ../src/iop/colorzones.c:2506 ../src/iop/temperature.c:1898 msgid "magenta" msgstr "品红" @@ -5561,136 +5827,131 @@ msgid "color not found" msgstr "未找到此色彩" -#: ../src/common/colorlabels.c:310 +#: ../src/common/colorlabels.c:309 #, c-format msgid "colorlabels set to %s" msgstr "色标设置为%s" -#: ../src/common/colorlabels.c:312 +#: ../src/common/colorlabels.c:311 msgid "all colorlabels removed" msgstr "全部色标已删除" -#: ../src/common/colorlabels.c:333 ../src/gui/accelerators.c:170 -#: ../src/libs/image.c:592 +#: ../src/common/colorlabels.c:332 ../src/gui/accelerators.c:188 +#: ../src/libs/image.c:660 msgid "clear" msgstr "清空" -#. init the category profile with NULL profile, the actual profile must be retrieved dynamically by the caller -#: ../src/common/colorspaces.c:1229 ../src/common/colorspaces.c:1518 -msgid "work profile" -msgstr "工作档案" - -#: ../src/common/colorspaces.c:1232 ../src/common/colorspaces.c:1514 -#: ../src/iop/colorout.c:885 +#: ../src/common/colorspaces.c:1382 ../src/common/colorspaces.c:1730 +#: ../src/iop/colorout.c:901 msgid "export profile" msgstr "输出配置" -#: ../src/common/colorspaces.c:1236 ../src/common/colorspaces.c:1516 -#: ../src/views/darkroom.c:2542 +#: ../src/common/colorspaces.c:1387 ../src/common/colorspaces.c:1732 +#: ../src/views/darkroom.c:2383 msgid "softproof profile" msgstr "软打样配置" -#: ../src/common/colorspaces.c:1242 ../src/common/colorspaces.c:1498 +#: ../src/common/colorspaces.c:1397 ../src/common/colorspaces.c:1714 msgid "system display profile" msgstr "系统显示配置" -#: ../src/common/colorspaces.c:1245 ../src/common/colorspaces.c:1520 +#: ../src/common/colorspaces.c:1402 ../src/common/colorspaces.c:1736 msgid "system display profile (second window)" msgstr "系统显示配置(第二窗口)" -#: ../src/common/colorspaces.c:1255 +#: ../src/common/colorspaces.c:1415 msgid "sRGB (web-safe)" msgstr "sRGB(网页兼容)" -#: ../src/common/colorspaces.c:1269 ../src/common/colorspaces.c:1522 +#: ../src/common/colorspaces.c:1435 ../src/common/colorspaces.c:1738 msgid "Rec709 RGB" msgstr "Rec709 RGB" -#: ../src/common/colorspaces.c:1279 +#: ../src/common/colorspaces.c:1450 msgid "PQ Rec2020 RGB" msgstr "感知型量化(PQ)Rec2020 RGB" -#: ../src/common/colorspaces.c:1284 +#: ../src/common/colorspaces.c:1458 msgid "HLG Rec2020 RGB" msgstr "混合对数伽马(HLG)Rec2020 RGB" -#: ../src/common/colorspaces.c:1289 +#: ../src/common/colorspaces.c:1465 msgid "PQ P3 RGB" msgstr "感知型量化(PQ)P3 RGB" -#: ../src/common/colorspaces.c:1294 +#: ../src/common/colorspaces.c:1471 msgid "HLG P3 RGB" msgstr "混合对数伽马(HLG)P3 RGB" -#: ../src/common/colorspaces.c:1299 ../src/common/colorspaces.c:1524 -msgid "linear ProPhoto RGB" -msgstr "线性 ProPhoto RGB" +#: ../src/common/colorspaces.c:1478 +msgid "Display P3 RGB" +msgstr "Display P3 RGB" -#: ../src/common/colorspaces.c:1304 ../src/common/colorspaces.c:1492 +#: ../src/common/colorspaces.c:1493 ../src/common/colorspaces.c:1708 msgid "linear XYZ" msgstr "线性 XYZ" -#: ../src/common/colorspaces.c:1308 ../src/common/colorspaces.c:1494 -#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2000 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:267 +#: ../src/common/colorspaces.c:1500 ../src/common/colorspaces.c:1710 +#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2016 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:293 msgid "Lab" msgstr "Lab" -#: ../src/common/colorspaces.c:1313 ../src/common/colorspaces.c:1496 +#: ../src/common/colorspaces.c:1508 ../src/common/colorspaces.c:1712 msgid "linear infrared BGR" msgstr "线性红外 BGR" -#: ../src/common/colorspaces.c:1317 +#: ../src/common/colorspaces.c:1513 msgid "BRG (for testing)" msgstr "BRG(测试用)" -#: ../src/common/colorspaces.c:1409 +#: ../src/common/colorspaces.c:1619 #, c-format msgid "" "profile `%s' not usable as histogram profile. it has been replaced by sRGB!" msgstr "无法在直方图中使用色彩配置“%s”。已使用 sRGB 代替!" -#: ../src/common/colorspaces.c:1500 +#: ../src/common/colorspaces.c:1716 msgid "embedded ICC profile" msgstr "嵌入的 ICC 文件" -#: ../src/common/colorspaces.c:1502 +#: ../src/common/colorspaces.c:1718 msgid "embedded matrix" msgstr "嵌入的矩阵" -#: ../src/common/colorspaces.c:1504 +#: ../src/common/colorspaces.c:1720 msgid "standard color matrix" msgstr "标准颜色矩阵" -#: ../src/common/colorspaces.c:1506 +#: ../src/common/colorspaces.c:1722 msgid "enhanced color matrix" msgstr "增强颜色矩阵" -#: ../src/common/colorspaces.c:1508 +#: ../src/common/colorspaces.c:1724 msgid "vendor color matrix" msgstr "供应商颜色矩阵" -#: ../src/common/colorspaces.c:1510 +#: ../src/common/colorspaces.c:1726 msgid "alternate color matrix" msgstr "备用颜色矩阵" -#: ../src/common/colorspaces.c:1512 +#: ../src/common/colorspaces.c:1728 msgid "BRG (experimental)" msgstr "BRG(实验性的)" -#: ../src/common/colorspaces.c:1526 +#: ../src/common/colorspaces.c:1742 msgid "PQ Rec2020" msgstr "感知型量化(PQ)Rec2020" -#: ../src/common/colorspaces.c:1528 +#: ../src/common/colorspaces.c:1744 msgid "HLG Rec2020" msgstr "混合对数伽马(HLG)Rec2020" -#: ../src/common/colorspaces.c:1530 +#: ../src/common/colorspaces.c:1746 msgid "PQ P3" msgstr "感知型量化(PQ)P3" -#: ../src/common/colorspaces.c:1532 +#: ../src/common/colorspaces.c:1748 msgid "HLG P3" msgstr "混合对数伽马(HLG)P3" @@ -5718,40 +5979,40 @@ msgid "printing `%s' on `%s'" msgstr "打印“%s”至“%s”" -#: ../src/common/darktable.c:250 +#: ../src/common/darktable.c:375 #, c-format msgid "found strange path `%s'" msgstr "发现异常路径“%s”" -#: ../src/common/darktable.c:265 +#: ../src/common/darktable.c:390 #, c-format msgid "error loading directory `%s'" msgstr "载入目录“%s”失败" -#: ../src/common/darktable.c:289 +#: ../src/common/darktable.c:414 #, c-format msgid "file `%s' has unknown format!" msgstr "文件“%s”使用了未知格式!" -#: ../src/common/darktable.c:302 ../src/control/jobs/control_jobs.c:2118 -#: ../src/control/jobs/control_jobs.c:2177 +#: ../src/common/darktable.c:427 ../src/control/jobs/control_jobs.c:2121 +#: ../src/control/jobs/control_jobs.c:2180 #, c-format msgid "error loading file `%s'" msgstr "载入文件“%s”错误" -#: ../src/common/darktable.c:1509 +#: ../src/common/darktable.c:1650 msgid "configuration information" msgstr "配置信息" -#: ../src/common/darktable.c:1511 -msgid "show this information again" -msgstr "重新显示此信息" - -#: ../src/common/darktable.c:1511 -msgid "understood" -msgstr "明白" +#: ../src/common/darktable.c:1652 +msgid "_show this information again" +msgstr "重新显示此信息 (_s)" + +#: ../src/common/darktable.c:1652 +msgid "_understood" +msgstr "明白 (_u)" -#: ../src/common/darktable.c:1968 +#: ../src/common/darktable.c:2106 msgid "" "the RCD demosaicer has been defined as default instead of PPG because of " "better quality and performance." @@ -5759,73 +6020,72 @@ "与 PPG 方法相比,RCD 去马赛克可提供更好和更快的算法,因此 RCD 被定义为默认方" "法." -#: ../src/common/darktable.c:1970 +#: ../src/common/darktable.c:2108 msgid "see preferences/darkroom/demosaicing for zoomed out darkroom mode" msgstr "对于暗房模式下缩小的图片,见 首选项->暗房->去马赛克" -#: ../src/common/darktable.c:1976 +#: ../src/common/darktable.c:2114 msgid "" "the user interface and the underlying internals for tuning darktable " "performance have changed." msgstr "关于调整 darktable 性能的用户界面和底层算法已改变。" -#: ../src/common/darktable.c:1978 +#: ../src/common/darktable.c:2116 msgid "" "you won't find headroom and friends any longer, instead in preferences/" "processing use:" msgstr "内存预留和附属选项已被移除,请使用首选项->处理中使用以下选项替代:" -#: ../src/common/darktable.c:1980 +#: ../src/common/darktable.c:2118 msgid "1) darktable resources" msgstr "1) darktable 资源" -#: ../src/common/darktable.c:1982 +#: ../src/common/darktable.c:2120 msgid "2) tune OpenCL performance" msgstr "2) 调整 OpenCL 性能" -#: ../src/common/darktable.c:1989 +#: ../src/common/darktable.c:2127 msgid "" "some global config parameters relevant for OpenCL performance are not used " "any longer." msgstr "一些关于 OpenCL 性能的全局配置将不再可用。" -#: ../src/common/darktable.c:1991 +#: ../src/common/darktable.c:2129 msgid "" -"instead you will find 'per device' data in 'cl_device_v4_canonical-name'. " +"instead you will find 'per device' data in 'cldevice_v5_canonical-name'. " "content is:" -msgstr "" -"请使用“cl_device_v4_canonical-name”中的“per device”数据替代。其内容是:" +msgstr "请使用“cldevice_v5_canonical-name”中的“per device”数据替代。其内容是:" -#: ../src/common/darktable.c:1993 ../src/common/darktable.c:2012 +#: ../src/common/darktable.c:2131 ../src/common/darktable.c:2150 +#: ../src/common/darktable.c:2165 msgid "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" msgstr "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" -#: ../src/common/darktable.c:1995 ../src/common/darktable.c:2014 +#: ../src/common/darktable.c:2133 ../src/common/darktable.c:2152 msgid "you may tune as before except 'magic'" msgstr "除了“magic”选项之外,您还可像以前一样调整" -#: ../src/common/darktable.c:2001 +#: ../src/common/darktable.c:2139 msgid "" "your OpenCL compiler settings for all devices have been reset to default." msgstr "所有设备的 OpenCL 编译器设置已恢复默认值。" -#: ../src/common/darktable.c:2008 +#: ../src/common/darktable.c:2146 msgid "" "OpenCL global config parameters 'per device' data has been recreated with an " "updated name." msgstr "按设备设置 OpenCL 全局配置的选项名称在此版本更新后发生了改变。" -#: ../src/common/darktable.c:2010 +#: ../src/common/darktable.c:2148 ../src/common/darktable.c:2163 msgid "" -"you will find 'per device' data in 'cl_device_v5_canonical-name'. content is:" -msgstr "" -"请使用“cl_device_v5_canonical-name”中的“per device”数据替代。其内容是:" +"you will find 'per device' data in 'cldevice_v5_canonical-name'. content is:" +msgstr "请使用“cldevice_v5_canonical-name”中的“per device”数据替代。其内容是:" -#: ../src/common/darktable.c:2016 +#: ../src/common/darktable.c:2154 msgid "" "If you're using device names in 'opencl_device_priority' you should update " "them to the new names." @@ -5833,7 +6093,21 @@ "若您在“opencl_device_priority”中指定了设备名称,您需要手动更新此项中的设备" "名。" -#: ../src/common/database.c:2756 +#: ../src/common/darktable.c:2161 +msgid "" +"OpenCL 'per device' config data have been automatically extended by 'unified-" +"fraction'." +msgstr "OpenCL 分设备设置已使用“unified-fraction”扩展。" + +#: ../src/common/darktable.c:2172 +msgid "" +"OpenCL 'per device' compiler settings might have been updated.\n" +"\n" +msgstr "" +"OpenCL 分设备编译器设置可能发生了改变。\n" +"\n" + +#: ../src/common/database.c:3350 #, c-format msgid "" "\n" @@ -5886,30 +6160,19 @@ " 会被严重破坏。</i>\n" #. clang-format on -#: ../src/common/database.c:2777 +#: ../src/common/database.c:3371 msgid "error starting darktable" msgstr "darktable 启动失败" -#: ../src/common/database.c:2778 ../src/libs/collect.c:2915 -#: ../src/libs/export_metadata.c:288 ../src/libs/import.c:1702 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:227 ../src/libs/modulegroups.c:3464 -#: ../src/libs/styles.c:438 ../src/libs/styles.c:621 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3471 -msgid "cancel" -msgstr "取消" - -#: ../src/common/database.c:2778 -msgid "delete database lock files" -msgstr "删除数据库锁" +#: ../src/common/database.c:3372 +msgid "_delete database lock files" +msgstr "删除数据库锁 (_d)" -#: ../src/common/database.c:2784 +#: ../src/common/database.c:3378 msgid "are you sure?" msgstr "确定吗?" -#: ../src/common/database.c:2785 +#: ../src/common/database.c:3379 msgid "" "\n" "do you really want to delete the lock files?\n" @@ -5917,20 +6180,19 @@ "\n" "确定要删除数据库锁文件?\n" -#: ../src/common/database.c:2785 ../src/common/variables.c:703 -#: ../src/develop/imageop_gui.c:210 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 -msgid "yes" -msgstr "是" +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2597 +msgid "_no" +msgstr "否 (_n)" -#: ../src/common/database.c:2801 ../src/libs/export_metadata.c:164 -#: ../src/libs/geotagging.c:811 +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2596 +msgid "_yes" +msgstr "是 (_y)" + +#: ../src/common/database.c:3395 msgid "done" msgstr "完成" -#: ../src/common/database.c:2802 +#: ../src/common/database.c:3396 msgid "" "\n" "successfully deleted the lock files.\n" @@ -5940,17 +6202,17 @@ "删除数据库锁文件成功。\n" "请重新启动 darktable\n" -#. the button to close the popup -#: ../src/common/database.c:2803 ../src/common/database.c:2810 -#: ../src/libs/filters/filename.c:452 -msgid "ok" -msgstr "ok" +#: ../src/common/database.c:3397 ../src/common/database.c:3404 +#: ../src/gui/accelerators.c:2580 ../src/gui/accelerators.c:2662 +#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:566 +msgid "_ok" +msgstr "_ok" -#: ../src/common/database.c:2806 +#: ../src/common/database.c:3400 msgid "error" msgstr "错误" -#: ../src/common/database.c:2807 +#: ../src/common/database.c:3401 #, c-format msgid "" "\n" @@ -5964,25 +6226,50 @@ "请尝试手动删除目录 <a href=\"file:///%s\">%s</a> 中的\n" "文件 <i>data.db.lock</i> 和 <i>library.db.lock</i>。\n" -#: ../src/common/database.c:2924 +#: ../src/common/database.c:3518 #, c-format msgid "" "the database lock file contains a pid that seems to be alive in your system: " "%d" msgstr "数据库锁表明了一个似乎正在活动的进程:%d" -#: ../src/common/database.c:2931 +#: ../src/common/database.c:3525 #, c-format msgid "the database lock file seems to be empty" msgstr "数据库锁是似乎空的" -#: ../src/common/database.c:2941 +#: ../src/common/database.c:3535 #, c-format msgid "error opening the database lock file for reading: %s" msgstr "读取数据库锁失败:%s" +#: ../src/common/database.c:3605 +#, c-format +msgid "" +"the database schema version of\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"is too new for this build of darktable (this means the database was created " +"or upgraded by a newer darktable version)\n" +msgstr "" +"数据库\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"的架构版本太新,无法被此版本的 darktable 读取。这意味着此数据库可能是由更高版" +"本的 darktable 创建或使用过。\n" + +#: ../src/common/database.c:3612 +msgid "darktable - too new db version" +msgstr "darktable - 数据库版本太新" + +#: ../src/common/database.c:3613 +msgid "_quit darktable" +msgstr "退出 darktable (_q)" + #. the database has to be upgraded, let's ask user -#: ../src/common/database.c:2978 +#: ../src/common/database.c:3628 #, c-format msgid "" "the database schema has to be upgraded for\n" @@ -5999,21 +6286,21 @@ "\n" "是否要继续?若要备份数据库,请现在退出程序\n" -#: ../src/common/database.c:2986 +#: ../src/common/database.c:3636 msgid "darktable - schema migration" msgstr "darktable - 数据库版本迁移" -#: ../src/common/database.c:2987 ../src/common/database.c:3306 -#: ../src/common/database.c:3324 ../src/common/database.c:3491 -#: ../src/common/database.c:3509 -msgid "close darktable" -msgstr "关闭 darktable" - -#: ../src/common/database.c:2987 -msgid "upgrade database" -msgstr "升级数据库" +#: ../src/common/database.c:3637 ../src/common/database.c:3959 +#: ../src/common/database.c:3974 ../src/common/database.c:4142 +#: ../src/common/database.c:4157 +msgid "_close darktable" +msgstr "关闭 darktable (_c)" + +#: ../src/common/database.c:3637 +msgid "_upgrade database" +msgstr "升级数据库 (_u)" -#: ../src/common/database.c:3286 ../src/common/database.c:3471 +#: ../src/common/database.c:3939 ../src/common/database.c:4122 #, c-format msgid "" "quick_check said:\n" @@ -6022,21 +6309,21 @@ "快速检查结果:\n" "%s \n" -#: ../src/common/database.c:3303 ../src/common/database.c:3321 -#: ../src/common/database.c:3488 ../src/common/database.c:3506 +#: ../src/common/database.c:3956 ../src/common/database.c:3971 +#: ../src/common/database.c:4139 ../src/common/database.c:4154 msgid "darktable - error opening database" msgstr "darktable - 打开数据库失败" -#: ../src/common/database.c:3308 ../src/common/database.c:3493 -msgid "attempt restore" -msgstr "尝试恢复" - -#: ../src/common/database.c:3310 ../src/common/database.c:3326 -#: ../src/common/database.c:3495 ../src/common/database.c:3511 -msgid "delete database" -msgstr "删除数据库" +#: ../src/common/database.c:3960 ../src/common/database.c:4143 +msgid "_attempt restore" +msgstr "尝试恢复 (_a)" + +#: ../src/common/database.c:3961 ../src/common/database.c:3975 +#: ../src/common/database.c:4144 ../src/common/database.c:4158 +msgid "_delete database" +msgstr "删除数据库 (_d)" -#: ../src/common/database.c:3314 ../src/common/database.c:3499 +#: ../src/common/database.c:3964 ../src/common/database.c:4147 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup, attempt an automatic restore\n" @@ -6046,7 +6333,7 @@ "您希望关闭 darktable 以手动从备份恢复数据库?\n" "还是尝试自动从最近快照恢复数据库,或者删除损坏的数据库并从头开始?" -#: ../src/common/database.c:3330 ../src/common/database.c:3515 +#: ../src/common/database.c:3978 ../src/common/database.c:4161 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup or delete the corrupted database\n" @@ -6055,7 +6342,7 @@ "您希望现在关闭 darktable 并手动从备份恢复数据库\n" "还是删除损坏的数据库重新开始呢?" -#: ../src/common/database.c:3337 ../src/common/database.c:3520 +#: ../src/common/database.c:3985 ../src/common/database.c:4166 #, c-format msgid "" "an error has occurred while trying to open the database from\n" @@ -6078,12 +6365,12 @@ "your RAM settings" msgstr "快速曝光独立导向滤波器无法分配内存,请检查 RAM 设置" -#: ../src/common/exif.cc:5200 +#: ../src/common/exif.cc:5482 #, c-format msgid "cannot read XMP file '%s': '%s'" msgstr "无法读取 xmp 文件“%s”:“%s”" -#: ../src/common/exif.cc:5258 +#: ../src/common/exif.cc:5540 #, c-format msgid "cannot write XMP file '%s': '%s'" msgstr "无法写入 xmp 文件“%s”:“%s”" @@ -6092,119 +6379,119 @@ msgid "fast guided filter failed to allocate memory, check your RAM settings" msgstr "快速引导过滤器无法分配内存,请检查 RAM 设置" -#: ../src/common/film.c:345 +#: ../src/common/film.c:356 msgid "do you want to remove this empty directory?" msgid_plural "do you want to remove these empty directories?" msgstr[0] "你确定要删除此空目录吗?" -#: ../src/common/film.c:352 +#: ../src/common/film.c:363 msgid "remove empty directory?" msgid_plural "remove empty directories?" msgstr[0] "删除空目录?" -#: ../src/common/film.c:371 ../src/gui/preferences.c:816 -#: ../src/gui/styles_dialog.c:548 ../src/libs/geotagging.c:829 -#: ../src/libs/import.c:1551 +#: ../src/common/film.c:383 ../src/gui/preferences.c:814 +#: ../src/gui/styles_dialog.c:556 ../src/libs/geotagging.c:830 +#: ../src/libs/import.c:1560 msgid "name" msgstr "名称" -#: ../src/common/film.c:477 +#: ../src/common/film.c:492 msgid "" "cannot remove film roll having local copies with non accessible originals" msgstr "此胶卷包含无法找到原片的副本,无法删除" -#: ../src/common/history.c:840 +#: ../src/common/history.c:876 msgid "you need to copy history from an image before you paste it onto another" msgstr "你需要复制一张图片的历史,然后才能用在另一张上" -#: ../src/common/image.c:325 +#: ../src/common/image.c:333 msgid "orphaned image" msgstr "孤立图像" -#: ../src/common/image.c:620 +#: ../src/common/image.c:629 #, c-format msgid "geo-location undone for %d image" msgid_plural "geo-location undone for %d images" msgstr[0] "已为 %d 张图像撤销定位信息更改" -#: ../src/common/image.c:622 +#: ../src/common/image.c:631 #, c-format msgid "geo-location re-applied to %d image" msgid_plural "geo-location re-applied to %d images" msgstr[0] "已为 %d 张图像应用定位信息更改" -#: ../src/common/image.c:645 +#: ../src/common/image.c:654 #, c-format msgid "date/time undone for %d image" msgid_plural "date/time undone for %d images" msgstr[0] "已为 %d 张图像撤销时间信息更改" -#: ../src/common/image.c:647 +#: ../src/common/image.c:656 #, c-format msgid "date/time re-applied to %d image" msgid_plural "date/time re-applied to %d images" msgstr[0] "已为 %d 张图像应用时间信息更改" -#: ../src/common/image.c:2188 +#: ../src/common/image.c:2260 #, c-format msgid "cannot access local copy `%s'" msgstr "无法访问本地副本“%s”" -#: ../src/common/image.c:2195 +#: ../src/common/image.c:2267 #, c-format msgid "cannot write local copy `%s'" msgstr "无法写入本地副本“%s”!" -#: ../src/common/image.c:2202 +#: ../src/common/image.c:2274 #, c-format msgid "error moving local copy `%s' -> `%s'" msgstr "无法移动本地副本“%s”至“%s”" -#: ../src/common/image.c:2219 +#: ../src/common/image.c:2291 #, c-format msgid "error moving `%s': file not found" msgstr "无法移动“%s”:文件未找到" -#: ../src/common/image.c:2229 +#: ../src/common/image.c:2301 #, c-format msgid "error moving `%s' -> `%s': file exists" msgstr "无法移动“%s”至“%s”:目标位置已存在" -#: ../src/common/image.c:2233 +#: ../src/common/image.c:2305 #, c-format msgid "error moving `%s' -> `%s'" msgstr "无法移动“%s”至“%s”" -#: ../src/common/image.c:2562 +#: ../src/common/image.c:2634 msgid "cannot create local copy when the original file is not accessible." msgstr "当原件不可用时无法创建本地副本。" -#: ../src/common/image.c:2576 +#: ../src/common/image.c:2648 msgid "cannot create local copy." msgstr "无法创建本地副本。" -#: ../src/common/image.c:2656 ../src/control/jobs/control_jobs.c:777 +#: ../src/common/image.c:2728 ../src/control/jobs/control_jobs.c:777 msgid "cannot remove local copy when the original file is not accessible." msgstr "当原件不可用时无法删除本地副本。" -#: ../src/common/image.c:2821 +#: ../src/common/image.c:2901 #, c-format msgid "%d local copy has been synchronized" msgid_plural "%d local copies have been synchronized" msgstr[0] "已同步 %d 件本地副本" -#: ../src/common/image.c:3022 +#: ../src/common/image.c:3102 msgid "<b>WARNING</b>: camera is missing samples!" msgstr "<b>警告</b>: 相机缺少样片!" -#: ../src/common/image.c:3023 +#: ../src/common/image.c:3103 msgid "" "You must provide samples in <a href='https://raw.pixls.us/'>https://raw." "pixls.us/</a>" msgstr "" "您需要在<a href='https://raw.pixls.us/'>https://raw.pixls.us/</a>提供样片" -#: ../src/common/image.c:3024 +#: ../src/common/image.c:3104 #, c-format msgid "" "for `%s' `%s'\n" @@ -6213,81 +6500,82 @@ "对于“%s” \"%s\"\n" "尽量和 格式->压缩->色彩深度的设置 一样" -#: ../src/common/image.c:3027 +#: ../src/common/image.c:3107 msgid "or the <b>RAW won't be readable</b> in next version." msgstr "或者在下一个版本中 <b>RAW不可读</b> 。" -#: ../src/common/image.h:209 ../src/common/ratings.c:284 -#: ../src/libs/history.c:843 ../src/libs/snapshots.c:779 +#: ../src/common/image.h:217 ../src/common/ratings.c:283 +#: ../src/imageio/format/avif.c:114 ../src/libs/history.c:843 +#: ../src/libs/snapshots.c:837 msgid "unknown" msgstr "未知" #. EMPTY_FIELD -#: ../src/common/image.h:210 -msgid "tiff" -msgstr "tiff" - -#: ../src/common/image.h:211 -msgid "png" -msgstr "png" - -#: ../src/common/image.h:212 ../src/imageio/format/j2k.c:652 -msgid "j2k" -msgstr "j2k" - -#: ../src/common/image.h:213 -msgid "jpeg" -msgstr "jpeg" - -#: ../src/common/image.h:214 -msgid "exr" -msgstr "exr" - -#: ../src/common/image.h:215 -msgid "rgbe" -msgstr "rgbe" - -#: ../src/common/image.h:216 -msgid "pfm" -msgstr "pfm" - -#: ../src/common/image.h:217 -msgid "GraphicsMagick" -msgstr "GraphicsMagick" +#: ../src/common/image.h:218 ../src/imageio/format/tiff.c:831 +msgid "TIFF" +msgstr "TIFF" -#: ../src/common/image.h:218 -msgid "rawspeed" -msgstr "rawspeed" - -#: ../src/common/image.h:219 -msgid "netpnm" -msgstr "netpnm" +#: ../src/common/image.h:219 ../src/imageio/format/png.c:599 +msgid "PNG" +msgstr "PNG" #: ../src/common/image.h:220 -msgid "avif" -msgstr "avif" +msgid "JPEG 2000" +msgstr "JPEG 2000" #: ../src/common/image.h:221 -msgid "ImageMagick" -msgstr "ImageMagick" +msgid "JPEG" +msgstr "JPEG" #: ../src/common/image.h:222 -msgid "heif" -msgstr "heif" +msgid "EXR" +msgstr "EXR" #: ../src/common/image.h:223 -msgid "libraw" -msgstr "libraw" +msgid "RGBE" +msgstr "RGBE" -#: ../src/common/image.h:224 -msgid "webp" -msgstr "webp" +#: ../src/common/image.h:224 ../src/imageio/format/pfm.c:120 +msgid "PFM" +msgstr "PFM" #: ../src/common/image.h:225 -msgid "jpeg xl" -msgstr "jpeg xl" +msgid "GraphicsMagick" +msgstr "GraphicsMagick" #: ../src/common/image.h:226 +msgid "RawSpeed" +msgstr "RawSpeed" + +#: ../src/common/image.h:227 +msgid "Netpbm" +msgstr "Netpbm" + +#: ../src/common/image.h:228 ../src/imageio/format/avif.c:728 +msgid "AVIF" +msgstr "AVIF" + +#: ../src/common/image.h:229 +msgid "ImageMagick" +msgstr "ImageMagick" + +#: ../src/common/image.h:230 +msgid "HEIF" +msgstr "HEIF" + +#: ../src/common/image.h:231 +msgid "LibRaw" +msgstr "LibRaw" + +#: ../src/common/image.h:232 ../src/imageio/format/webp.c:380 +msgid "WebP" +msgstr "WebP" + +#: ../src/common/image.h:233 ../src/imageio/format/jxl.c:482 +msgid "JPEG XL" +msgstr "JPEG XL" + +#: ../src/common/image.h:234 msgid "QOI" msgstr "QOI" @@ -6317,7 +6605,7 @@ msgid "requested session path not available. device not mounted?" msgstr "请求的会话路径不可用。设备未挂载?" -#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:197 +#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:195 msgid "legacy" msgstr "传统" @@ -6329,7 +6617,7 @@ msgid "v3.0 JPEG" msgstr "v3.0 JPEG" -#: ../src/common/iop_profile.c:1205 +#: ../src/common/iop_profile.c:1207 #, c-format msgid "" "darktable loads %s from\n" @@ -6351,13 +6639,13 @@ #. title #: ../src/common/metadata.c:48 ../src/imageio/format/pdf.c:574 -#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:169 -#: ../src/imageio/storage/gallery.c:170 ../src/imageio/storage/latex.c:169 -#: ../src/imageio/storage/piwigo.c:1058 ../src/libs/filtering.c:69 +#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:219 +#: ../src/imageio/storage/gallery.c:222 ../src/imageio/storage/latex.c:206 +#: ../src/imageio/storage/piwigo.c:1091 ../src/libs/filtering.c:69 msgid "title" msgstr "标题" -#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:552 +#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:563 #: ../src/libs/filtering.c:70 msgid "description" msgstr "描述信息" @@ -6375,11 +6663,11 @@ msgstr "版本名称" #: ../src/common/metadata.c:53 ../src/libs/live_view.c:319 -#: ../src/libs/metadata_view.c:124 +#: ../src/libs/metadata_view.c:126 msgid "image id" msgstr "图片 id" -#: ../src/common/mipmap_cache.c:1065 ../src/imageio/imageio.c:787 +#: ../src/common/mipmap_cache.c:1070 ../src/imageio/imageio.c:799 #, c-format msgid "image `%s' is not available!" msgstr "图像“%s”无法获取!" @@ -6393,7 +6681,43 @@ msgid "noiseprofile file `%s' is not valid" msgstr "噪点描述文件“%s”无效" -#: ../src/common/opencl.c:1376 +#: ../src/common/opencl.c:1165 +msgid "no working OpenCL library found" +msgstr "无法找到可用的 OpenCL 支持库" + +#: ../src/common/opencl.c:1185 +msgid "" +"platform detection failed. some possible causes:\n" +" - OpenCL ICD (ocl-icd) missing,\n" +" - previous OpenCL errors leading to blocked devices,\n" +" - power management problems,\n" +" - buggy drivers,\n" +" - no OpenCL driver installed." +msgstr "" +"无法探测平台。可能的原因有:\n" +" - OpenCL ICD (ocl-icd) 缺失、\n" +" - 计算设备被之前发生的错误阻塞、\n" +" - 电源管理问题、\n" +" - 设备驱动 bug、\n" +" - 未安装 OpenCL 驱动。" + +#: ../src/common/opencl.c:1277 +msgid "no devices found for unknown platform" +msgstr "未找到未知平台的 OpenCL 设备" + +#: ../src/common/opencl.c:1323 +msgid "not enough memory for OpenCL devices" +msgstr "OpenCL 设备内存不足" + +#: ../src/common/opencl.c:1358 +msgid "no OpenCL devices found" +msgstr "没有发现 OpenCL 设备" + +#: ../src/common/opencl.c:1401 +msgid "no suitable OpenCL devices found" +msgstr "没有发现支持的 OpenCL 设备" + +#: ../src/common/opencl.c:1422 #, c-format msgid "" "OpenCL initializing problem:\n" @@ -6402,31 +6726,21 @@ "OpenCL 初始化时遇到问题:\n" "%s" -#: ../src/common/opencl.c:1439 -msgid "" -"due to a slow GPU hardware acceleration using OpenCL has been deactivated" -msgstr "由于 GPU 性能不足,OpenCL 硬件加速已禁用" +#: ../src/common/opencl.c:1454 +msgid "OpenCL scheduling profile set to default, setup has changed" +msgstr "OpenCL 调度配置已设定为默认值,您的配置已发生改变" -#: ../src/common/opencl.c:1449 -msgid "" -"multiple GPUs detected - OpenCL scheduling profile has been set accordingly" -msgstr "检测到多个 GPU - 已调整 OpenCL 调度配置" - -#: ../src/common/opencl.c:1462 -msgid "" -"very fast GPU detected - OpenCL scheduling profile has been set accordingly" -msgstr "检测高性能 GPU - 已调整 OpenCL 调度配置" - -#: ../src/common/opencl.c:1471 -msgid "OpenCL scheduling profile set to default" -msgstr "OpenCL 调度配置已设定为默认值" +#: ../src/common/opencl.c:2283 +#, c-format +msgid "building OpenCL program %s for %s" +msgstr "正在为设备 %2$s 编译 OpenCL 程序 %1$s" -#: ../src/common/pdf.h:88 ../src/iop/lens.cc:3441 +#: ../src/common/pdf.h:88 ../src/iop/lens.cc:4071 #: ../src/libs/filters/focal.c:74 ../src/libs/print_settings.c:81 msgid "mm" msgstr "毫米" -#: ../src/common/pdf.h:89 ../src/libs/export.c:520 ../src/libs/export.c:1145 +#: ../src/common/pdf.h:89 ../src/libs/export.c:555 ../src/libs/export.c:1241 #: ../src/libs/print_settings.c:81 msgid "cm" msgstr "厘米" @@ -6439,7 +6753,7 @@ msgid "\"" msgstr "\"" -#: ../src/common/pdf.h:104 ../src/iop/borders.c:958 +#: ../src/common/pdf.h:104 ../src/iop/borders.c:971 msgid "A4" msgstr "A4" @@ -6475,66 +6789,65 @@ msgid "no images selected to apply rating" msgstr "没有选中任何图片应用评级" -#: ../src/common/ratings.c:275 ../src/libs/metadata_view.c:351 +#: ../src/common/ratings.c:274 ../src/libs/metadata_view.c:355 msgid "image rejected" msgstr "图像已被退稿" -#: ../src/common/ratings.c:277 +#: ../src/common/ratings.c:276 msgid "image rated to 0 star" msgstr "图像已评级为 0 星" -#: ../src/common/ratings.c:279 +#: ../src/common/ratings.c:278 #, c-format msgid "image rated to %s" msgstr "图像已评级为 %s" -#: ../src/common/ratings.c:306 ../src/libs/select.c:39 -#: ../src/views/lighttable.c:766 +#: ../src/common/ratings.c:305 ../src/views/lighttable.c:766 msgid "select" msgstr "选择" -#: ../src/common/ratings.c:307 +#: ../src/common/ratings.c:306 msgid "upgrade" msgstr "升级" -#: ../src/common/ratings.c:308 +#: ../src/common/ratings.c:307 msgid "downgrade" msgstr "降级" -#: ../src/common/ratings.c:312 +#: ../src/common/ratings.c:311 msgid "zero" msgstr "零" -#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:277 +#: ../src/common/ratings.c:312 ../src/libs/filters/rating_range.c:304 msgid "one" msgstr "一" -#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:278 +#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:305 msgid "two" msgstr "二" -#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:279 +#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:306 msgid "three" msgstr "三" -#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:280 +#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:307 msgid "four" msgstr "四" -#: ../src/common/ratings.c:317 ../src/libs/filters/rating_range.c:281 +#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:308 msgid "five" msgstr "五" -#: ../src/common/ratings.c:318 +#: ../src/common/ratings.c:317 msgid "reject" msgstr "退稿" -#: ../src/common/styles.c:244 +#: ../src/common/styles.c:243 #, c-format msgid "style with name '%s' already exists" msgstr "名为“%s”的样式已经存在" -#: ../src/common/styles.c:270 ../src/common/styles.c:1776 +#: ../src/common/styles.c:270 ../src/common/styles.c:1783 #: ../src/libs/styles.c:54 msgid "styles" msgstr "风格" @@ -6544,56 +6857,56 @@ msgid "style named '%s' successfully created" msgstr "样式“%s”创建成功" -#: ../src/common/styles.c:689 ../src/common/styles.c:719 -#: ../src/common/styles.c:759 ../src/dtgtk/culling.c:1097 +#: ../src/common/styles.c:688 ../src/common/styles.c:718 +#: ../src/common/styles.c:758 ../src/dtgtk/culling.c:1066 msgid "no image selected!" msgstr "没有选中图片!" -#: ../src/common/styles.c:693 +#: ../src/common/styles.c:692 #, c-format msgid "style %s successfully applied!" msgstr "成功应用样式 %s!" -#: ../src/common/styles.c:709 +#: ../src/common/styles.c:708 msgid "no images nor styles selected!" msgstr "未选择图片或样式!" -#: ../src/common/styles.c:714 +#: ../src/common/styles.c:713 msgid "no styles selected!" msgstr "未选择样式!" -#: ../src/common/styles.c:744 +#: ../src/common/styles.c:743 msgid "style successfully applied!" msgid_plural "styles successfully applied!" msgstr[0] "成功应用样式!" -#: ../src/common/styles.c:840 +#: ../src/common/styles.c:838 #, c-format msgid "module `%s' version mismatch: %d != %d" msgstr "模块“%s”版本不匹配: %d != %d" -#: ../src/common/styles.c:1124 +#: ../src/common/styles.c:1125 #, c-format msgid "applied style `%s' on current image" msgstr "在当前图片使用样式“%s”" -#: ../src/common/styles.c:1378 +#: ../src/common/styles.c:1383 #, c-format msgid "failed to overwrite style file for %s" msgstr "覆盖 %s 的样式文件失败" -#: ../src/common/styles.c:1384 +#: ../src/common/styles.c:1389 #, c-format msgid "style file for %s exists" msgstr "%s 的样式文件已存在" -#: ../src/common/styles.c:1667 +#: ../src/common/styles.c:1674 #, c-format msgid "style %s was successfully imported" msgstr "样式 %s 导入成功" #. Failed to open file, clean up. -#: ../src/common/styles.c:1711 +#: ../src/common/styles.c:1718 #, c-format msgid "could not read file `%s'" msgstr "无法读取文件“%s”!" @@ -6606,10 +6919,18 @@ msgid "below sea level" msgstr "海平面以下" -#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:880 +#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:907 msgid "m" msgstr "米" +#: ../src/common/variables.c:712 ../src/develop/imageop_gui.c:210 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "yes" +msgstr "是" + #. Column 1 - "make" of the camera. #. * Column 2 - "model" (use the "make" and "model" as provided by DCRaw). #. * Column 3 - WB name. @@ -6622,7 +6943,7 @@ #. * #. * WB name is standardized to one of the following: #. "Sunlight" and other variation should be switched to this: -#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:323 +#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:320 msgid "daylight" msgstr "日光" @@ -6722,7 +7043,7 @@ msgid "underwater" msgstr "水下" -#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2447 +#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2286 msgid "black & white" msgstr "黑白" @@ -6742,102 +7063,102 @@ msgid "auto WB" msgstr "自动白平衡" -#: ../src/control/control.c:66 ../src/gui/accelerators.c:138 -#: ../src/views/darkroom.c:2162 +#: ../src/control/control.c:69 ../src/gui/accelerators.c:156 +#: ../src/views/darkroom.c:2029 msgid "hold" msgstr "保持" -#: ../src/control/control.c:102 ../src/control/control.c:205 +#: ../src/control/control.c:108 ../src/control/control.c:214 msgid "modifiers" msgstr "修饰键" -#: ../src/control/control.c:111 +#: ../src/control/control.c:117 msgctxt "accel" msgid "global" msgstr "全局" -#: ../src/control/control.c:118 +#: ../src/control/control.c:124 msgctxt "accel" msgid "views" msgstr "视图" -#: ../src/control/control.c:125 +#: ../src/control/control.c:131 msgctxt "accel" msgid "thumbtable" msgstr "缩略图" -#: ../src/control/control.c:132 +#: ../src/control/control.c:138 msgctxt "accel" msgid "utility modules" msgstr "实用模块" -#: ../src/control/control.c:139 +#: ../src/control/control.c:145 msgctxt "accel" msgid "format" msgstr "文件格式" -#: ../src/control/control.c:146 +#: ../src/control/control.c:152 msgctxt "accel" msgid "storage" msgstr "存储" -#: ../src/control/control.c:153 +#: ../src/control/control.c:159 msgctxt "accel" msgid "processing modules" msgstr "处理模块" -#: ../src/control/control.c:160 +#: ../src/control/control.c:166 msgctxt "accel" msgid "<blending>" msgstr "<混合>" -#: ../src/control/control.c:167 +#: ../src/control/control.c:173 msgctxt "accel" msgid "Lua scripts" msgstr "Lua 脚本" -#: ../src/control/control.c:174 +#: ../src/control/control.c:180 msgctxt "accel" msgid "fallbacks" msgstr "缺省" -#: ../src/control/control.c:183 +#: ../src/control/control.c:189 msgctxt "accel" msgid "<focused>" msgstr "<聚焦>" -#: ../src/control/control.c:202 +#: ../src/control/control.c:209 msgid "show accels window" msgstr "显示快捷键窗口" -#: ../src/control/control.c:363 +#: ../src/control/control.c:371 msgid "working..." msgstr "工作中……" -#: ../src/control/crawler.c:425 +#: ../src/control/crawler.c:418 #, c-format msgid "ERROR: %s NOT synced XMP → DB" msgstr "错误:%s 张图像未从 XMP 同步至数据库" -#: ../src/control/crawler.c:426 ../src/control/crawler.c:492 -#: ../src/control/crawler.c:561 +#: ../src/control/crawler.c:419 ../src/control/crawler.c:485 +#: ../src/control/crawler.c:554 msgid "" "ERROR: cannot write the database. the destination may be full, offline or " "read-only." msgstr "错误:无法写入数据库。目标位置可能已满、离线或处于只读状态。" -#: ../src/control/crawler.c:433 +#: ../src/control/crawler.c:426 #, c-format msgid "SUCCESS: %s synced XMP → DB" msgstr "成功:%s 张图像已从 XMP 同步至数据库" -#: ../src/control/crawler.c:455 +#: ../src/control/crawler.c:448 #, c-format msgid "ERROR: %s NOT synced DB → XMP" msgstr "错误:%s 张图像未从数据库同步至 XMP" -#: ../src/control/crawler.c:457 ../src/control/crawler.c:516 -#: ../src/control/crawler.c:582 +#: ../src/control/crawler.c:450 ../src/control/crawler.c:509 +#: ../src/control/crawler.c:575 #, c-format msgid "" "ERROR: cannot write %s \n" @@ -6846,129 +7167,133 @@ "错误:无法写入 %s 张图像。\n" "目标位置可能已满、离线或处于只读状态。" -#: ../src/control/crawler.c:463 +#: ../src/control/crawler.c:456 #, c-format msgid "SUCCESS: %s synced DB → XMP" msgstr "成功:%s 张图像已从数据库同步至 XMP" -#: ../src/control/crawler.c:489 +#: ../src/control/crawler.c:482 #, c-format msgid "ERROR: %s NOT synced new (XMP) → old (DB)" msgstr "错误:%s 张图像的数据未从新 XMP 同步至旧数据库" -#: ../src/control/crawler.c:499 +#: ../src/control/crawler.c:492 #, c-format msgid "SUCCESS: %s synced new (XMP) → old (DB)" msgstr "成功:%s 张图像的数据已从新 XMP 同步至旧数据库" -#: ../src/control/crawler.c:513 +#: ../src/control/crawler.c:506 #, c-format msgid "ERROR: %s NOT synced new (DB) → old (XMP)" msgstr "错误:%s 张图像的数据未从新数据库同步至旧 XMP" -#: ../src/control/crawler.c:521 +#: ../src/control/crawler.c:514 #, c-format msgid "SUCCESS: %s synced new (DB) → old (XMP)" msgstr "成功:%s 张图像的数据已从新数据库同步至旧 XMP" -#: ../src/control/crawler.c:530 ../src/control/crawler.c:598 +#: ../src/control/crawler.c:523 ../src/control/crawler.c:591 #, c-format msgid "EXCEPTION: %s has inconsistent timestamps" msgstr "异常:%s 的时间戳不统一" -#: ../src/control/crawler.c:558 +#: ../src/control/crawler.c:551 #, c-format msgid "ERROR: %s NOT synced old (XMP) → new (DB)" msgstr "错误:%s 张图像的数据未从 旧XMP 同步至新数据库" -#: ../src/control/crawler.c:567 +#: ../src/control/crawler.c:560 #, c-format msgid "SUCCESS: %s synced old (XMP) → new (DB)" msgstr "成功:%s 张图像的数据已从旧 XMP 同步至新数据库" -#: ../src/control/crawler.c:579 +#: ../src/control/crawler.c:572 #, c-format msgid "ERROR: %s NOT synced old (DB) → new (XMP)" msgstr "错误:%s 张图像的数据未从旧数据库同步至新 XMP" -#: ../src/control/crawler.c:588 +#: ../src/control/crawler.c:581 #, c-format msgid "SUCCESS: %s synced old (DB) → new (XMP)" msgstr "成功:%s 张图像的数据已从旧数据库同步至新 XMP" -#: ../src/control/crawler.c:670 +#: ../src/control/crawler.c:663 #, c-format msgid "%id %02dh %02dm %02ds" msgstr "%i 天 %02d 小时 %02d 分钟 %02d 秒" -#: ../src/control/crawler.c:740 ../src/imageio/storage/disk.c:168 -#: ../src/imageio/storage/gallery.c:154 ../src/imageio/storage/latex.c:153 -#: ../src/imageio/storage/latex.c:171 +#: ../src/control/crawler.c:716 +msgid "XMP" +msgstr "XMP" + +#: ../src/control/crawler.c:733 ../src/imageio/storage/disk.c:250 +#: ../src/imageio/storage/gallery.c:202 ../src/imageio/storage/latex.c:190 +#: ../src/imageio/storage/latex.c:208 msgid "path" msgstr "路径" -#: ../src/control/crawler.c:749 +#: ../src/control/crawler.c:742 msgid "XMP timestamp" msgstr "XMP 时间戳" -#: ../src/control/crawler.c:754 +#: ../src/control/crawler.c:747 msgid "database timestamp" msgstr "数据库时间戳" -#: ../src/control/crawler.c:759 +#: ../src/control/crawler.c:752 msgid "newest" msgstr "最新" -#: ../src/control/crawler.c:765 +#: ../src/control/crawler.c:758 msgid "time difference" msgstr "时间差异" -#: ../src/control/crawler.c:777 +#: ../src/control/crawler.c:770 msgid "updated XMP sidecar files found" msgstr "发现较新的 XMP 附属文件" -#: ../src/control/crawler.c:778 +#: ../src/control/crawler.c:771 msgid "_close" msgstr "关闭" #. setup selection accelerators #. action-box -#: ../src/control/crawler.c:793 ../src/dtgtk/thumbtable.c:2578 -#: ../src/libs/import.c:1722 ../src/libs/select.c:135 +#: ../src/control/crawler.c:786 ../src/dtgtk/thumbtable.c:2755 +#: ../src/libs/import.c:1732 ../src/libs/select.c:136 msgid "select all" msgstr "全选" -#: ../src/control/crawler.c:794 ../src/dtgtk/thumbtable.c:2580 -#: ../src/libs/import.c:1726 ../src/libs/select.c:139 +#: ../src/control/crawler.c:787 ../src/dtgtk/thumbtable.c:2757 +#: ../src/libs/import.c:1736 ../src/libs/select.c:140 msgid "select none" msgstr "全不选" -#: ../src/control/crawler.c:795 ../src/dtgtk/thumbtable.c:2582 -#: ../src/libs/select.c:143 +#: ../src/control/crawler.c:788 ../src/dtgtk/thumbtable.c:2759 +#: ../src/libs/select.c:144 msgid "invert selection" msgstr "反转选择" -#: ../src/control/crawler.c:807 +#: ../src/control/crawler.c:800 msgid "on the selection:" msgstr "当选择时:" -#: ../src/control/crawler.c:808 +#: ../src/control/crawler.c:801 msgid "keep the XMP edit" msgstr "保留 XMP 中的修改" -#: ../src/control/crawler.c:809 +#: ../src/control/crawler.c:802 msgid "keep the database edit" msgstr "保留数据库中的修改" -#: ../src/control/crawler.c:810 +#: ../src/control/crawler.c:803 msgid "keep the newest edit" msgstr "保留最新的修改" -#: ../src/control/crawler.c:811 +#: ../src/control/crawler.c:804 msgid "keep the oldest edit" msgstr "保留最旧的修改" -#: ../src/control/crawler.c:836 +#: ../src/control/crawler.c:829 msgid "synchronization log" msgstr "同步日志" @@ -6996,6 +7321,10 @@ msgid "starting to import images from camera" msgstr "开始从相机导入图像" +#: ../src/control/jobs/camera_jobs.c:302 +msgid "failed to import images from camera." +msgstr "从相机导入图像失败。" + #: ../src/control/jobs/camera_jobs.c:309 #, c-format msgid "importing %d image from camera" @@ -7094,7 +7423,8 @@ msgid "_remove from library" msgstr "从照片库中移除 (_r)" -#: ../src/control/jobs/control_jobs.c:884 +#: ../src/control/jobs/control_jobs.c:884 ../src/libs/styles.c:440 +#: ../src/libs/styles.c:625 msgid "_skip" msgstr "跳过 (_s)" @@ -7185,42 +7515,42 @@ msgid "exporting %d / %d to %s" msgstr "正在导出 %d 张(共 %d 张)图像到 %s" -#: ../src/control/jobs/control_jobs.c:1459 ../src/views/darkroom.c:800 +#: ../src/control/jobs/control_jobs.c:1451 ../src/views/darkroom.c:721 #: ../src/views/print.c:369 #, c-format msgid "image `%s' is currently unavailable" msgstr "图像“%s”目前不可用" -#: ../src/control/jobs/control_jobs.c:1551 +#: ../src/control/jobs/control_jobs.c:1554 msgid "merge HDR image" msgstr "合并 HDR 图像" -#: ../src/control/jobs/control_jobs.c:1565 +#: ../src/control/jobs/control_jobs.c:1568 msgid "duplicate images" msgstr "复制图像" -#: ../src/control/jobs/control_jobs.c:1571 +#: ../src/control/jobs/control_jobs.c:1574 msgid "flip images" msgstr "翻转图像" -#: ../src/control/jobs/control_jobs.c:1578 +#: ../src/control/jobs/control_jobs.c:1581 msgid "set monochrome images" msgstr "将图像设置为黑白" #. get all selected images now, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1585 +#: ../src/control/jobs/control_jobs.c:1588 msgid "remove images" msgstr "移除图像" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove image?" msgstr "移除图像?" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove images?" msgstr "移除图像?" -#: ../src/control/jobs/control_jobs.c:1599 +#: ../src/control/jobs/control_jobs.c:1602 #, c-format msgid "" "do you really want to remove %d image from darktable\n" @@ -7231,21 +7561,21 @@ msgstr[0] "是否要从 darktable 中移除 %d 个图像而不从磁盘上删除文件?" #. first get all selected images, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1614 -#: ../src/control/jobs/control_jobs.c:1647 +#: ../src/control/jobs/control_jobs.c:1617 +#: ../src/control/jobs/control_jobs.c:1650 msgid "delete images" msgstr "删除图像" -#: ../src/control/jobs/control_jobs.c:1630 -#: ../src/control/jobs/control_jobs.c:1660 +#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1663 msgid "delete image?" msgstr "删除图像?" -#: ../src/control/jobs/control_jobs.c:1630 +#: ../src/control/jobs/control_jobs.c:1633 msgid "delete images?" msgstr "删除图像?" -#: ../src/control/jobs/control_jobs.c:1631 +#: ../src/control/jobs/control_jobs.c:1634 #, c-format msgid "" "do you really want to physically delete %d image\n" @@ -7255,37 +7585,37 @@ "(using trash if possible)?" msgstr[0] "你确定要从磁盘物理删除 %d 张已选图像吗(若可用将移动到回收站)?" -#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1636 #, c-format msgid "do you really want to physically delete %d image from disk?" msgid_plural "do you really want to physically delete %d images from disk?" msgstr[0] "你确定要从磁盘物理删除 %d 张已选图像吗?" -#: ../src/control/jobs/control_jobs.c:1661 +#: ../src/control/jobs/control_jobs.c:1664 msgid "" "do you really want to physically delete selected image (using trash if " "possible)?" msgstr "你确定要从磁盘物理删除已选图像吗(若可用将移动到回收站)?" -#: ../src/control/jobs/control_jobs.c:1662 +#: ../src/control/jobs/control_jobs.c:1665 msgid "do you really want to physically delete selected image from disk?" msgstr "你确定要从磁盘物理删除已选图像吗?" -#: ../src/control/jobs/control_jobs.c:1677 +#: ../src/control/jobs/control_jobs.c:1680 msgid "move images" msgstr "移动图像" -#: ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 msgid "_select as destination" msgstr "选择目的地" -#: ../src/control/jobs/control_jobs.c:1708 +#: ../src/control/jobs/control_jobs.c:1711 msgid "move image?" msgid_plural "move images?" msgstr[0] "移动图像?" -#: ../src/control/jobs/control_jobs.c:1709 +#: ../src/control/jobs/control_jobs.c:1712 #, c-format msgid "" "do you really want to physically move %d image to %s?\n" @@ -7297,110 +7627,105 @@ "你确定要物理移动 %d 张已选图像至 %s 吗?\n" "(所有重复图像将一并移动)" -#: ../src/control/jobs/control_jobs.c:1731 +#: ../src/control/jobs/control_jobs.c:1734 msgid "copy images" msgstr "复制图像" -#: ../src/control/jobs/control_jobs.c:1762 +#: ../src/control/jobs/control_jobs.c:1765 msgid "copy image?" msgid_plural "copy images?" msgstr[0] "复制图像?" -#: ../src/control/jobs/control_jobs.c:1763 +#: ../src/control/jobs/control_jobs.c:1766 #, c-format msgid "do you really want to physically copy %d image to %s?" msgid_plural "do you really want to physically copy %d images to %s?" msgstr[0] "你确定要物理复制 %d 张已选图像至 %s 吗?" -#: ../src/control/jobs/control_jobs.c:1781 -#: ../src/control/jobs/control_jobs.c:1789 +#: ../src/control/jobs/control_jobs.c:1784 +#: ../src/control/jobs/control_jobs.c:1792 msgid "local copy images" msgstr "本地复制图像" -#: ../src/control/jobs/control_jobs.c:1796 ../src/libs/image.c:604 +#: ../src/control/jobs/control_jobs.c:1799 ../src/libs/image.c:674 msgid "refresh EXIF" msgstr "刷新 EXIF" -#: ../src/control/jobs/control_jobs.c:1860 +#: ../src/control/jobs/control_jobs.c:1863 #, c-format msgid "failed to get parameters from storage module `%s', aborting export.." msgstr "从存储模块“%s”获取参数失败,导出中断.." -#: ../src/control/jobs/control_jobs.c:1876 +#: ../src/control/jobs/control_jobs.c:1879 msgid "export images" msgstr "导出图像" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "adding time offset to %d image" msgstr "向 %d 张图像添加时间偏移" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "setting date/time of %d image" msgstr "为 %d 张图像设置拍摄日期与时间" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "adding time offset to %d images" msgstr "向 %d 张图像添加时间偏移" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "setting date/time of %d images" msgstr "为 %d 张图像设置拍摄日期与时间" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "added time offset to %d image" msgstr "已向 %d 张图像添加时间偏移" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "set date/time of %d image" msgstr "已为 %d 张图像设置拍摄日期与时间" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "added time offset to %d images" msgstr "已向 %d 张图像添加时间偏移" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "set date/time of %d images" msgstr "已为 %d 张图像设置拍摄日期与时间" -#: ../src/control/jobs/control_jobs.c:2014 +#: ../src/control/jobs/control_jobs.c:2017 msgid "time offset" msgstr "时间偏移" -#: ../src/control/jobs/control_jobs.c:2042 ../src/libs/copy_history.c:414 +#: ../src/control/jobs/control_jobs.c:2045 ../src/libs/copy_history.c:414 msgid "write sidecar files" msgstr "写入附属文件" -#: ../src/control/jobs/control_jobs.c:2256 ../src/control/jobs/film_jobs.c:297 +#: ../src/control/jobs/control_jobs.c:2259 ../src/control/jobs/film_jobs.c:297 #, c-format msgid "importing %d image" msgid_plural "importing %d images" msgstr[0] "导入 %d 张图像" -#: ../src/control/jobs/control_jobs.c:2292 +#: ../src/control/jobs/control_jobs.c:2295 #, c-format msgid "importing %d/%d image" msgid_plural "importing %d/%d images" msgstr[0] "正在导入 %d 张图像(共 %d 张)" -#: ../src/control/jobs/control_jobs.c:2300 +#: ../src/control/jobs/control_jobs.c:2305 #, c-format msgid "imported %d image" msgid_plural "imported %d images" msgstr[0] "已导入 %d 张图像" -#: ../src/control/jobs/control_jobs.c:2347 ../src/gui/preferences.c:530 -#: ../src/libs/import.c:172 -msgid "import" -msgstr "导入" - #: ../src/control/jobs/film_jobs.c:73 ../src/control/jobs/film_jobs.c:109 msgid "import images" msgstr "导入图像" @@ -7418,11 +7743,11 @@ msgid "import image" msgstr "导入图像" -#: ../src/develop/blend.c:322 +#: ../src/develop/blend.c:315 msgid "detail mask blending error" msgstr "细节蒙版混合出现错误" -#: ../src/develop/blend.c:864 +#: ../src/develop/blend.c:904 msgid "detail mask CL blending problem" msgstr "细节蒙版 CL 混合出现错误" @@ -7623,8 +7948,7 @@ msgid "reverse" msgstr "反转" -#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:413 -#: ../src/libs/metadata.c:631 ../src/libs/metadata_view.c:1193 +#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:442 msgid "default" msgstr "默认" @@ -7632,35 +7956,35 @@ msgid "RAW" msgstr "RAW" -#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2014 +#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2030 msgid "RGB (display)" msgstr "RGB(显示)" -#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2027 +#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2043 msgid "RGB (scene)" msgstr "RGB(场景)" #. DEVELOP_MASK_ENABLED -#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3419 +#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3438 msgid "uniformly" msgstr "均匀" -#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:3429 ../src/develop/imageop.c:2660 +#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:3448 ../src/develop/imageop.c:2669 msgid "drawn mask" msgstr "绘制蒙板" -#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2512 -#: ../src/develop/blend_gui.c:3440 ../src/develop/imageop.c:2662 +#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2528 +#: ../src/develop/blend_gui.c:3459 ../src/develop/imageop.c:2671 msgid "parametric mask" msgstr "参数蒙版" -#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2951 -#: ../src/develop/blend_gui.c:3467 ../src/develop/imageop.c:2664 +#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2966 +#: ../src/develop/blend_gui.c:3486 ../src/develop/imageop.c:2673 msgid "raster mask" msgstr "光栅蒙版" -#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3454 +#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3473 msgid "drawn & parametric mask" msgstr "绘制&参数蒙版" @@ -7696,177 +8020,177 @@ msgid "input after blur" msgstr "模糊后的输入" -#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:129 -#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/libs/live_view.c:362 +#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:157 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/libs/live_view.c:362 msgid "on" msgstr "开" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "input" msgstr "输入" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "output" msgstr "输出" -#: ../src/develop/blend_gui.c:995 +#: ../src/develop/blend_gui.c:998 msgid " (zoom)" msgstr " (缩放)" -#: ../src/develop/blend_gui.c:1003 +#: ../src/develop/blend_gui.c:1006 msgid " (log)" msgstr " (对数)" -#: ../src/develop/blend_gui.c:1988 +#: ../src/develop/blend_gui.c:2004 msgid "reset to default blend colorspace" msgstr "重置为默认混合颜色空间" -#: ../src/develop/blend_gui.c:2044 +#: ../src/develop/blend_gui.c:2060 msgid "reset and hide output channels" msgstr "重置和隐藏输出通道" -#: ../src/develop/blend_gui.c:2051 +#: ../src/develop/blend_gui.c:2067 msgid "show output channels" msgstr "显示输出通道" -#: ../src/develop/blend_gui.c:2290 ../src/develop/blend_gui.c:2357 -#: ../src/iop/tonecurve.c:1134 +#: ../src/develop/blend_gui.c:2306 ../src/develop/blend_gui.c:2373 +#: ../src/iop/tonecurve.c:1156 msgid "L" msgstr "L" -#: ../src/develop/blend_gui.c:2290 +#: ../src/develop/blend_gui.c:2306 msgid "sliders for L channel" msgstr "滑块 - L 通道" -#: ../src/develop/blend_gui.c:2295 ../src/iop/tonecurve.c:1135 +#: ../src/develop/blend_gui.c:2311 ../src/iop/tonecurve.c:1157 msgid "a" msgstr "a" -#: ../src/develop/blend_gui.c:2295 +#: ../src/develop/blend_gui.c:2311 msgid "sliders for a channel" msgstr "滑块 - a 通道" -#: ../src/develop/blend_gui.c:2299 +#: ../src/develop/blend_gui.c:2315 msgid "green/red" msgstr "绿/红" -#: ../src/develop/blend_gui.c:2300 ../src/iop/tonecurve.c:1136 +#: ../src/develop/blend_gui.c:2316 ../src/iop/tonecurve.c:1158 msgid "b" msgstr "b" -#: ../src/develop/blend_gui.c:2300 +#: ../src/develop/blend_gui.c:2316 msgid "sliders for b channel" msgstr "滑块 - b 通道" -#: ../src/develop/blend_gui.c:2304 +#: ../src/develop/blend_gui.c:2320 msgid "blue/yellow" msgstr "蓝/黄" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "C" msgstr "C" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "sliders for chroma channel (of LCh)" msgstr "色度通道滑块(LCh)" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "h" msgstr "h" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "sliders for hue channel (of LCh)" msgstr "色相通道滑块(LCh)" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "g" msgstr "g" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "sliders for gray value" msgstr "灰度值滑块" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/denoiseprofile.c:3710 -#: ../src/iop/rawdenoise.c:894 ../src/iop/rgbcurve.c:1358 -#: ../src/iop/rgblevels.c:1003 ../src/libs/filters/colors.c:137 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/denoiseprofile.c:3714 +#: ../src/iop/rawdenoise.c:910 ../src/iop/rgbcurve.c:1358 +#: ../src/iop/rgblevels.c:1043 ../src/libs/filters/colors.c:137 msgid "R" msgstr "红" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 msgid "sliders for red channel" msgstr "红色通道滑块" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/denoiseprofile.c:3711 -#: ../src/iop/rawdenoise.c:895 ../src/iop/rgbcurve.c:1359 -#: ../src/iop/rgblevels.c:1004 ../src/libs/filters/colors.c:143 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/denoiseprofile.c:3715 +#: ../src/iop/rawdenoise.c:911 ../src/iop/rgbcurve.c:1359 +#: ../src/iop/rgblevels.c:1044 ../src/libs/filters/colors.c:143 msgid "G" msgstr "绿" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 msgid "sliders for green channel" msgstr "绿色通道滑块" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/denoiseprofile.c:3712 -#: ../src/iop/rawdenoise.c:896 ../src/iop/rgbcurve.c:1360 -#: ../src/iop/rgblevels.c:1005 ../src/libs/filters/colors.c:146 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/denoiseprofile.c:3716 +#: ../src/iop/rawdenoise.c:912 ../src/iop/rgbcurve.c:1360 +#: ../src/iop/rgblevels.c:1045 ../src/libs/filters/colors.c:146 msgid "B" msgstr "蓝" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 msgid "sliders for blue channel" msgstr "蓝色通道滑块" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "H" msgstr "H" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "sliders for hue channel (of HSL)" msgstr "色相通道滑块(HSL)" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "S" msgstr "S" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "sliders for chroma channel (of HSL)" msgstr "饱和度通道滑块(HSL)" -#: ../src/develop/blend_gui.c:2357 +#: ../src/develop/blend_gui.c:2373 msgid "sliders for value channel (of HSL)" msgstr "值通道滑块(HSL)" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "Jz" msgstr "Jz" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "sliders for value channel (of JzCzhz)" msgstr "值通道滑块(JzCzhz)" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "Cz" msgstr "Cz" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "sliders for chroma channel (of JzCzhz)" msgstr "色度通道滑块(JzCzhz)" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "hz" msgstr "hz" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "sliders for hue channel (of JzCzhz)" msgstr "色调通道滑块(JzCzhz)" -#: ../src/develop/blend_gui.c:2415 +#: ../src/develop/blend_gui.c:2431 msgid "" "adjustment based on input received by this module:\n" "* range defined by upper markers: blend fully\n" @@ -7878,7 +8202,7 @@ "* 由下标定义的范围:完全不混合\n" "* 相邻的上/下标之间的范围:逐渐混合" -#: ../src/develop/blend_gui.c:2419 +#: ../src/develop/blend_gui.c:2435 msgid "" "adjustment based on unblended output of this module:\n" "* range defined by upper markers: blend fully\n" @@ -7890,19 +8214,19 @@ "* 由下标定义的范围:完全不混合\n" "* 相邻的上/下标之间的范围:逐渐混合" -#: ../src/develop/blend_gui.c:2516 +#: ../src/develop/blend_gui.c:2532 msgid "reset blend mask settings" msgstr "重置混合蒙板设置" -#: ../src/develop/blend_gui.c:2527 ../src/iop/atrous.c:1665 -#: ../src/iop/colorzones.c:2399 ../src/iop/denoiseprofile.c:3707 -#: ../src/iop/rawdenoise.c:891 ../src/iop/rgbcurve.c:1357 -#: ../src/iop/rgblevels.c:1002 ../src/iop/tonecurve.c:1133 +#: ../src/develop/blend_gui.c:2543 ../src/iop/atrous.c:1797 +#: ../src/iop/colorzones.c:2641 ../src/iop/denoiseprofile.c:3711 +#: ../src/iop/rawdenoise.c:907 ../src/iop/rgbcurve.c:1357 +#: ../src/iop/rgblevels.c:1041 ../src/iop/tonecurve.c:1155 msgid "channel" msgstr "通道" -#: ../src/develop/blend_gui.c:2542 ../src/iop/colorzones.c:2413 -#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1142 +#: ../src/develop/blend_gui.c:2558 ../src/iop/colorzones.c:2660 +#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1164 msgid "" "pick GUI color from image\n" "ctrl+click or right-click to select an area" @@ -7910,12 +8234,12 @@ "从图像中选择 GUI 颜色\n" "ctrl + 单击或右键以选择区域" -#: ../src/develop/blend_gui.c:2545 ../src/iop/colorzones.c:2415 +#: ../src/develop/blend_gui.c:2561 ../src/iop/colorzones.c:2662 #: ../src/iop/rgbcurve.c:1369 msgid "show color" msgstr "显示颜色" -#: ../src/develop/blend_gui.c:2554 +#: ../src/develop/blend_gui.c:2570 msgid "" "set the range based on an area from the image\n" "drag to use the input image\n" @@ -7924,19 +8248,19 @@ "以输入图像的方式从图像框选区域来设置范围\n" "ctrl + 框选,将以输出图像的方式来设置范围" -#: ../src/develop/blend_gui.c:2557 +#: ../src/develop/blend_gui.c:2573 msgid "set range" msgstr "设置取值范围" -#: ../src/develop/blend_gui.c:2560 +#: ../src/develop/blend_gui.c:2576 msgid "invert all channel's polarities" msgstr "切换所有通道的正反选择" -#: ../src/develop/blend_gui.c:2584 +#: ../src/develop/blend_gui.c:2600 msgid "toggle polarity. best seen by enabling 'display mask'" msgstr "极性切换。启用“显示蒙板”显示最好效果" -#: ../src/develop/blend_gui.c:2613 +#: ../src/develop/blend_gui.c:2629 msgid "" "double-click to reset.\n" "press 'a' to toggle available slider modes.\n" @@ -7948,169 +8272,201 @@ "按c键切换至通道数据视图。\n" "按m键切换至蒙版视图。" -#: ../src/develop/blend_gui.c:2640 ../src/develop/blend_gui.c:3531 -#: ../src/iop/basicadj.c:600 ../src/iop/colorbalancergb.c:2090 -#: ../src/iop/exposure.c:1120 ../src/iop/exposure.c:1135 -#: ../src/iop/filmic.c:1503 ../src/iop/filmic.c:1516 ../src/iop/filmic.c:1558 -#: ../src/iop/filmicrgb.c:4440 ../src/iop/filmicrgb.c:4451 -#: ../src/iop/filmicrgb.c:4485 ../src/iop/filmicrgb.c:4495 -#: ../src/iop/graduatednd.c:1113 ../src/iop/negadoctor.c:1011 -#: ../src/iop/profile_gamma.c:643 ../src/iop/profile_gamma.c:649 -#: ../src/iop/relight.c:262 ../src/iop/soften.c:378 ../src/iop/toneequal.c:3326 -#: ../src/iop/toneequal.c:3329 ../src/iop/toneequal.c:3332 -#: ../src/iop/toneequal.c:3335 ../src/iop/toneequal.c:3338 -#: ../src/iop/toneequal.c:3341 ../src/iop/toneequal.c:3344 -#: ../src/iop/toneequal.c:3347 ../src/iop/toneequal.c:3350 -#: ../src/iop/toneequal.c:3472 ../src/iop/toneequal.c:3481 -#: ../src/iop/toneequal.c:3494 ../src/views/darkroom.c:2453 +#: ../src/develop/blend_gui.c:2656 ../src/develop/blend_gui.c:3577 +#: ../src/iop/basicadj.c:630 ../src/iop/colorbalancergb.c:2161 +#: ../src/iop/exposure.c:1138 ../src/iop/exposure.c:1153 +#: ../src/iop/filmic.c:1528 ../src/iop/filmic.c:1541 ../src/iop/filmic.c:1583 +#: ../src/iop/filmicrgb.c:4504 ../src/iop/filmicrgb.c:4515 +#: ../src/iop/filmicrgb.c:4549 ../src/iop/filmicrgb.c:4559 +#: ../src/iop/graduatednd.c:1082 ../src/iop/negadoctor.c:1030 +#: ../src/iop/profile_gamma.c:657 ../src/iop/profile_gamma.c:663 +#: ../src/iop/relight.c:258 ../src/iop/soften.c:373 ../src/iop/toneequal.c:3379 +#: ../src/iop/toneequal.c:3382 ../src/iop/toneequal.c:3385 +#: ../src/iop/toneequal.c:3388 ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3394 ../src/iop/toneequal.c:3397 +#: ../src/iop/toneequal.c:3400 ../src/iop/toneequal.c:3403 +#: ../src/iop/toneequal.c:3525 ../src/iop/toneequal.c:3534 +#: ../src/iop/toneequal.c:3547 ../src/views/darkroom.c:2292 msgid " EV" msgstr " EV" -#: ../src/develop/blend_gui.c:2642 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:2951 ../src/develop/blend_gui.c:3014 -#: ../src/develop/blend_gui.c:3499 ../src/develop/blend_gui.c:3529 -#: ../src/develop/blend_gui.c:3542 ../src/develop/blend_gui.c:3559 -#: ../src/develop/blend_gui.c:3583 ../src/develop/blend_gui.c:3593 -#: ../src/develop/blend_gui.c:3602 ../src/develop/blend_gui.c:3613 +#: ../src/develop/blend_gui.c:2658 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:2966 ../src/develop/blend_gui.c:3029 +#: ../src/develop/blend_gui.c:3545 ../src/develop/blend_gui.c:3575 +#: ../src/develop/blend_gui.c:3588 ../src/develop/blend_gui.c:3605 +#: ../src/develop/blend_gui.c:3629 ../src/develop/blend_gui.c:3641 +#: ../src/develop/blend_gui.c:3652 ../src/develop/blend_gui.c:3663 msgid "blend" msgstr "混合" -#: ../src/develop/blend_gui.c:2642 +#: ../src/develop/blend_gui.c:2658 msgid "boost factor" msgstr "强化要素" -#: ../src/develop/blend_gui.c:2645 +#: ../src/develop/blend_gui.c:2661 msgid "adjust the boost factor of the channel mask" msgstr "调整通道蒙版的强化要素" -#: ../src/develop/blend_gui.c:2682 +#: ../src/develop/blend_gui.c:2698 #, c-format msgid "%d shape used" msgid_plural "%d shapes used" msgstr[0] "已使用 %d 个形状" -#: ../src/develop/blend_gui.c:2687 ../src/develop/blend_gui.c:2743 -#: ../src/develop/blend_gui.c:2831 ../src/develop/blend_gui.c:2952 +#: ../src/develop/blend_gui.c:2703 ../src/develop/blend_gui.c:2759 +#: ../src/develop/blend_gui.c:2847 ../src/develop/blend_gui.c:2967 msgid "no mask used" msgstr "没有蒙版被使用" -#: ../src/develop/blend_gui.c:2751 +#: ../src/develop/blend_gui.c:2767 msgid "toggle polarity of drawn mask" msgstr "切换绘制遮罩的正反选择" -#: ../src/develop/blend_gui.c:2760 +#: ../src/develop/blend_gui.c:2776 msgid "show and edit mask elements" msgstr "显示和编辑蒙版元素" -#: ../src/develop/blend_gui.c:2761 +#: ../src/develop/blend_gui.c:2777 msgid "show and edit in restricted mode" msgstr "在受限模式中显示并编辑形状" -#: ../src/develop/blend_gui.c:2768 ../src/libs/masks.c:998 -#: ../src/libs/masks.c:1816 ../src/libs/masks.c:1820 +#: ../src/develop/blend_gui.c:2784 ../src/libs/masks.c:1014 +#: ../src/libs/masks.c:1812 ../src/libs/masks.c:1816 msgid "add gradient" msgstr "添加渐变" -#: ../src/develop/blend_gui.c:2769 +#: ../src/develop/blend_gui.c:2785 msgid "add multiple gradients" msgstr "添加多个渐变" -#: ../src/develop/blend_gui.c:2776 ../src/iop/retouch.c:2238 -#: ../src/libs/masks.c:978 ../src/libs/masks.c:1852 ../src/libs/masks.c:1856 +#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2466 +#: ../src/libs/masks.c:994 ../src/libs/masks.c:1848 ../src/libs/masks.c:1852 msgid "add brush" msgstr "添加画笔" -#: ../src/develop/blend_gui.c:2777 ../src/iop/retouch.c:2238 +#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2466 msgid "add multiple brush strokes" msgstr "添加多个笔刷" -#: ../src/develop/blend_gui.c:2784 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 ../src/libs/masks.c:993 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1829 +#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 ../src/libs/masks.c:1009 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1825 msgid "add path" msgstr "添加路径" -#: ../src/develop/blend_gui.c:2785 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 +#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 msgid "add multiple paths" msgstr "添加多个路径" -#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 ../src/libs/masks.c:988 ../src/libs/masks.c:1834 -#: ../src/libs/masks.c:1838 +#: ../src/develop/blend_gui.c:2808 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 ../src/libs/masks.c:1004 ../src/libs/masks.c:1830 +#: ../src/libs/masks.c:1834 msgid "add ellipse" msgstr "添加椭圆" -#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 +#: ../src/develop/blend_gui.c:2809 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 msgid "add multiple ellipses" msgstr "添加多个椭圆" -#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 ../src/libs/masks.c:983 ../src/libs/masks.c:1843 -#: ../src/libs/masks.c:1847 +#: ../src/develop/blend_gui.c:2816 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 ../src/libs/masks.c:999 ../src/libs/masks.c:1839 +#: ../src/libs/masks.c:1843 msgid "add circle" msgstr "添加圆" -#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 +#: ../src/develop/blend_gui.c:2817 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 msgid "add multiple circles" msgstr "添加多个圆" -#: ../src/develop/blend_gui.c:2961 +#: ../src/develop/blend_gui.c:2976 msgid "toggle polarity of raster mask" msgstr "切换光栅蒙版的正反选择" -#: ../src/develop/blend_gui.c:3101 +#: ../src/develop/blend_gui.c:3119 msgid "normal & difference" msgstr "正常模式和差异模式" -#: ../src/develop/blend_gui.c:3106 +#: ../src/develop/blend_gui.c:3124 msgid "lighten" msgstr "变亮" -#: ../src/develop/blend_gui.c:3113 +#: ../src/develop/blend_gui.c:3131 msgid "darken" msgstr "变暗" -#: ../src/develop/blend_gui.c:3120 +#: ../src/develop/blend_gui.c:3138 msgid "contrast enhancing" msgstr "对比增强模式" -#: ../src/develop/blend_gui.c:3127 ../src/develop/blend_gui.c:3150 +#: ../src/develop/blend_gui.c:3145 ../src/develop/blend_gui.c:3168 msgid "color channel" msgstr "色彩通道模式" -#: ../src/develop/blend_gui.c:3138 ../src/develop/blend_gui.c:3153 +#: ../src/develop/blend_gui.c:3156 ../src/develop/blend_gui.c:3171 msgid "chromaticity & lightness" msgstr "色度与亮度模式" -#: ../src/develop/blend_gui.c:3145 +#: ../src/develop/blend_gui.c:3163 msgid "normal & arithmetic" msgstr "正常与计算模式" #. add deprecated blend mode -#: ../src/develop/blend_gui.c:3166 +#: ../src/develop/blend_gui.c:3184 msgid "deprecated" msgstr "已废弃" -#: ../src/develop/blend_gui.c:3478 +#. should never happen: unknown blend mode +#: ../src/develop/blend_gui.c:3188 +#, c-format +msgid "unknown blend mode '%d' in module '%s'" +msgstr "模块‘%2$s’中使用了未知的混合模式‘%1$d’" + +#: ../src/develop/blend_gui.c:3497 msgid "blending options" msgstr "混合选项" -#: ../src/develop/blend_gui.c:3500 ../src/libs/history.c:949 -msgid "blend mode" -msgstr "混合模式" +#: ../src/develop/blend_gui.c:3516 +msgid "blend mask" +msgstr "混合蒙板" + +#: ../src/develop/blend_gui.c:3520 +msgid "display mask and/or color channel" +msgstr "显示蒙版及颜色通道" + +#: ../src/develop/blend_gui.c:3525 +msgid "" +"display mask and/or color channel.\n" +"ctrl+click to display mask,\n" +"shift+click to display channel.\n" +"hover over parametric mask slider to select channel for display" +msgstr "" +"显示蒙版及颜色通道。\n" +"ctrl + 单击可显示蒙版,\n" +"shift + 单击可显示通道\n" +"将鼠标悬停在“参数蒙版”滑块上以选择要显示的通道" -#: ../src/develop/blend_gui.c:3503 +#: ../src/develop/blend_gui.c:3532 +msgid "temporarily switch off blend mask" +msgstr "临时关闭混合蒙板" + +#: ../src/develop/blend_gui.c:3537 +msgid "" +"temporarily switch off blend mask.\n" +"only for module in focus" +msgstr "临时关闭混合蒙板。只对当前模块有效" + +#: ../src/develop/blend_gui.c:3549 msgid "choose blending mode" msgstr "选择混合模式" -#: ../src/develop/blend_gui.c:3513 +#: ../src/develop/blend_gui.c:3559 msgid "toggle blend order" msgstr "切换混合顺序" -#: ../src/develop/blend_gui.c:3519 +#: ../src/develop/blend_gui.c:3565 msgid "" "toggle the blending order between the input and the output of the module,\n" "by default the output will be blended on top of the input,\n" @@ -8120,39 +8476,39 @@ "默认情况下,输出将在输入的上方混合,\n" "顺序可以通过点击图标逆转(输入在输出的上方)。" -#: ../src/develop/blend_gui.c:3530 ../src/libs/history.c:953 -msgid "blend fulcrum" -msgstr "混合支点" +#: ../src/develop/blend_gui.c:3576 +msgid "fulcrum" +msgstr "支点" -#: ../src/develop/blend_gui.c:3534 +#: ../src/develop/blend_gui.c:3580 msgid "adjust the fulcrum used by some blending operations" msgstr "调整部分混合操作的支点" #. Add opacity/scale sliders to table -#: ../src/develop/blend_gui.c:3542 ../src/iop/watermark.c:1314 -#: ../src/libs/masks.c:104 +#: ../src/develop/blend_gui.c:3588 ../src/iop/watermark.c:1362 +#: ../src/libs/masks.c:105 msgid "opacity" msgstr "不透明度" -#: ../src/develop/blend_gui.c:3546 +#: ../src/develop/blend_gui.c:3591 msgid "set the opacity of the blending" msgstr "设置混合模式的不透明度" -#: ../src/develop/blend_gui.c:3550 ../src/libs/history.c:956 +#: ../src/develop/blend_gui.c:3596 ../src/libs/history.c:956 msgid "combine masks" msgstr "组合蒙版" -#: ../src/develop/blend_gui.c:3552 +#: ../src/develop/blend_gui.c:3598 msgid "" "how to combine individual drawn mask and different channels of parametric " "mask" msgstr "如何组合单独的绘制蒙版和参数蒙版的不同频道" -#: ../src/develop/blend_gui.c:3559 +#: ../src/develop/blend_gui.c:3605 msgid "details threshold" msgstr "细节阈值" -#: ../src/develop/blend_gui.c:3563 +#: ../src/develop/blend_gui.c:3609 msgid "" "adjust the threshold for the details mask (using raw data),\n" "positive values select areas with strong details,\n" @@ -8162,11 +8518,11 @@ "正值选择具有强烈细节的区域,\n" "负值选择平坦的区域" -#: ../src/develop/blend_gui.c:3571 ../src/libs/history.c:959 +#: ../src/develop/blend_gui.c:3617 ../src/libs/history.c:959 msgid "feathering guide" msgstr "羽化引导" -#: ../src/develop/blend_gui.c:3574 +#: ../src/develop/blend_gui.c:3620 msgid "" "choose to guide mask by input or output image and\n" "choose to apply feathering before or after mask blur" @@ -8174,81 +8530,61 @@ "选择通过输入或输出图像来引导蒙版\n" "选择在蒙版模糊之前或之后应用羽化" -#: ../src/develop/blend_gui.c:3583 ../src/libs/history.c:958 +#: ../src/develop/blend_gui.c:3629 ../src/libs/history.c:958 msgid "feathering radius" msgstr "羽化半径" -#: ../src/develop/blend_gui.c:3586 +#: ../src/develop/blend_gui.c:3632 msgid "spatial radius of feathering" msgstr "羽化的空间半径" -#: ../src/develop/blend_gui.c:3593 +#: ../src/develop/blend_gui.c:3641 msgid "blurring radius" msgstr "模糊半径" -#: ../src/develop/blend_gui.c:3596 +#: ../src/develop/blend_gui.c:3644 msgid "radius for gaussian blur of blend mask" msgstr "混合蒙板的高斯模糊半径" -#: ../src/develop/blend_gui.c:3602 ../src/iop/retouch.c:2453 +#: ../src/develop/blend_gui.c:3652 ../src/iop/retouch.c:2738 #: ../src/libs/history.c:954 msgid "mask opacity" msgstr "蒙板透明度" -#: ../src/develop/blend_gui.c:3606 +#: ../src/develop/blend_gui.c:3656 msgid "" "shifts and tilts the tone curve of the blend mask to adjust its brightness\n" "without affecting fully transparent/fully opaque regions" msgstr "" "移动和倾斜混合蒙版的色调曲线以调整其亮度,而不影响完全透明/完全不透明区域" -#: ../src/develop/blend_gui.c:3613 ../src/libs/history.c:962 +#: ../src/develop/blend_gui.c:3663 ../src/libs/history.c:962 msgid "mask contrast" msgstr "蒙板对比度" -#: ../src/develop/blend_gui.c:3617 +#: ../src/develop/blend_gui.c:3667 msgid "" "gives the tone curve of the blend mask an s-like shape to adjust its contrast" msgstr "将混合蒙版的色调曲线设置为s形以调整其对比度" -#: ../src/develop/blend_gui.c:3621 +#: ../src/develop/blend_gui.c:3671 msgid "mask refinement" msgstr "蒙版改进" -#: ../src/develop/blend_gui.c:3625 -msgid "display mask and/or color channel" -msgstr "显示蒙版及颜色通道" - -#: ../src/develop/blend_gui.c:3630 -msgid "" -"display mask and/or color channel.\n" -"ctrl+click to display mask,\n" -"shift+click to display channel.\n" -"hover over parametric mask slider to select channel for display" -msgstr "" -"显示蒙版及颜色通道。\n" -"ctrl + 单击可显示蒙版,\n" -"shift + 单击可显示通道\n" -"将鼠标悬停在“参数蒙版”滑块上以选择要显示的通道" - -#: ../src/develop/blend_gui.c:3637 -msgid "temporarily switch off blend mask" -msgstr "临时关闭混合蒙板" - -#: ../src/develop/blend_gui.c:3642 +#: ../src/develop/develop.c:732 msgid "" -"temporarily switch off blend mask.\n" -"only for module in focus" -msgstr "临时关闭混合蒙板。只对当前模块有效" +"autosaving history has been disabled for this session because of a slow " +"drive used" +msgstr "因为您的硬盘速度太慢,此会话中无法使用历史记录自动保存" -#: ../src/develop/develop.c:2303 +#: ../src/develop/develop.c:2202 #, c-format msgid "%s: module `%s' version mismatch: %d != %d" msgstr "%s:模块“%s”版本不匹配: %d != %d" -#: ../src/develop/develop.c:2834 -msgid "module duplicate, can't move new instance after the base one\n" -msgstr "无法将模块副本排序到基准模块之前\n" +#: ../src/develop/develop.c:3016 +msgid "duplicate module, can't move new instance after the base one\n" +msgstr "有多个相同模块时,无法将模块副本排序到基准模块之前\n" #: ../src/develop/imageop.c:1031 msgid "new instance" @@ -8258,70 +8594,69 @@ msgid "duplicate instance" msgstr "复制副本" -#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3739 -#: ../src/libs/masks.c:1152 +#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3755 +#: ../src/libs/masks.c:1146 msgid "move up" msgstr "向上移动" -#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3740 -#: ../src/libs/masks.c:1157 +#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3756 +#: ../src/libs/masks.c:1151 msgid "move down" msgstr "向下移动" #. delete button label and tooltip will be updated based on trash pref -#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3742 -#: ../src/gui/accelerators.c:155 ../src/gui/presets.c:562 -#: ../src/libs/image.c:285 ../src/libs/image.c:480 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 +#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3758 +#: ../src/gui/accelerators.c:173 ../src/libs/image.c:303 +#: ../src/libs/image.c:513 msgid "delete" msgstr "删除" -#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3743 -#: ../src/libs/modulegroups.c:3464 ../src/libs/modulegroups.c:3815 +#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3759 +#: ../src/libs/modulegroups.c:3817 msgid "rename" msgstr "重命名" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched on" msgstr "‘%s’已打开" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched off" msgstr "‘%s’已关闭" -#: ../src/develop/imageop.c:2654 +#: ../src/develop/imageop.c:2663 msgid "unknown mask" msgstr "未知蒙版" -#: ../src/develop/imageop.c:2658 +#: ../src/develop/imageop.c:2667 msgid "drawn + parametric mask" msgstr "绘制 + 参数蒙版" -#: ../src/develop/imageop.c:2667 +#: ../src/develop/imageop.c:2676 #, c-format msgid "this module has a `%s'" msgstr "此模块有“%s”" -#: ../src/develop/imageop.c:2672 +#: ../src/develop/imageop.c:2681 #, c-format msgid "taken from module %s" msgstr "来自模块 %s" -#: ../src/develop/imageop.c:2677 +#: ../src/develop/imageop.c:2686 msgid "click to display (module must be activated first)" msgstr "点击显示(模块必须先激活)" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "purpose" msgstr "用途" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "process" msgstr "流程" -#: ../src/develop/imageop.c:2906 +#: ../src/develop/imageop.c:2917 msgid "" "multiple instance actions\n" "right-click creates new instance" @@ -8329,7 +8664,7 @@ "多个实例行为\n" "右键点击创建新的实例" -#: ../src/develop/imageop.c:2921 +#: ../src/develop/imageop.c:2932 msgid "" "reset parameters\n" "ctrl+click to reapply any automatic presets" @@ -8337,7 +8672,7 @@ "重置参数\n" "按住 ctrl 并单击可重新应用任何自动预设" -#: ../src/develop/imageop.c:2933 +#: ../src/develop/imageop.c:2944 msgid "" "presets\n" "right-click to apply on new instance" @@ -8345,15 +8680,15 @@ "预设\n" "单击鼠标右键可应用于新实例" -#: ../src/develop/imageop.c:3183 ../src/develop/imageop.c:3205 +#: ../src/develop/imageop.c:3194 ../src/develop/imageop.c:3216 msgid "ERROR" msgstr "错误" -#: ../src/develop/imageop.c:3620 +#: ../src/develop/imageop.c:3622 msgid "unsupported input" msgstr "不支持的输入" -#: ../src/develop/imageop.c:3621 +#: ../src/develop/imageop.c:3623 msgid "" "you have placed this module at\n" "a position in the pipeline where\n" @@ -8361,49 +8696,49 @@ "its requirements." msgstr "此模块在管线中的位置与此模块的数据格式要求不匹配。" -#: ../src/develop/imageop.c:3738 ../src/develop/imageop.c:3748 -#: ../src/gui/accelerators.c:151 ../src/libs/lib.c:1414 +#: ../src/develop/imageop.c:3754 ../src/develop/imageop.c:3764 +#: ../src/gui/accelerators.c:169 ../src/libs/lib.c:1415 msgid "show" msgstr "显示" -#: ../src/develop/imageop.c:3741 ../src/libs/modulegroups.c:3310 -#: ../src/libs/modulegroups.c:3436 ../src/libs/modulegroups.c:3817 -#: ../src/libs/tagging.c:3248 +#: ../src/develop/imageop.c:3757 ../src/libs/modulegroups.c:3315 +#: ../src/libs/modulegroups.c:3438 ../src/libs/modulegroups.c:3819 +#: ../src/libs/tagging.c:3279 msgid "new" msgstr "新建" -#: ../src/develop/imageop.c:3744 ../src/libs/duplicate.c:405 -#: ../src/libs/image.c:495 ../src/libs/modulegroups.c:3813 +#: ../src/develop/imageop.c:3760 ../src/libs/duplicate.c:411 +#: ../src/libs/image.c:534 ../src/libs/modulegroups.c:3815 msgid "duplicate" msgstr "复制" -#: ../src/develop/imageop.c:3749 +#: ../src/develop/imageop.c:3765 msgid "enable" msgstr "启用" -#: ../src/develop/imageop.c:3750 ../src/gui/accelerators.c:167 +#: ../src/develop/imageop.c:3766 ../src/gui/accelerators.c:185 msgid "focus" msgstr "聚焦" -#: ../src/develop/imageop.c:3751 ../src/gui/accelerators.c:2617 +#: ../src/develop/imageop.c:3767 ../src/gui/accelerators.c:2874 msgid "instance" msgstr "实例" -#: ../src/develop/imageop.c:3752 ../src/gui/accelerators.c:112 -#: ../src/gui/accelerators.c:122 ../src/gui/gtk.c:3009 ../src/gui/gtk.c:3056 -#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:603 -#: ../src/gui/styles_dialog.c:625 ../src/iop/atrous.c:1512 -#: ../src/libs/lib.c:1415 ../src/libs/modulegroups.c:3882 +#: ../src/develop/imageop.c:3768 ../src/gui/accelerators.c:130 +#: ../src/gui/accelerators.c:140 ../src/gui/gtk.c:3055 ../src/gui/gtk.c:3102 +#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:615 +#: ../src/gui/styles_dialog.c:637 ../src/iop/atrous.c:1626 +#: ../src/libs/lib.c:1416 ../src/libs/modulegroups.c:3884 msgid "reset" msgstr "重置" #. Adding the outer container -#: ../src/develop/imageop.c:3753 ../src/gui/preferences.c:798 -#: ../src/libs/lib.c:1416 +#: ../src/develop/imageop.c:3769 ../src/gui/preferences.c:796 +#: ../src/libs/lib.c:1417 msgid "presets" msgstr "预置" -#: ../src/develop/imageop.c:3773 +#: ../src/develop/imageop.c:3789 msgid "processing module" msgstr "处理模块" @@ -8416,53 +8751,53 @@ "%s\n" "Ctrl + 单击 %s" -#: ../src/develop/lightroom.c:1083 +#: ../src/develop/lightroom.c:1137 msgid "cannot find Lightroom XMP!" msgstr "找不到 Lightroom XMP!" -#: ../src/develop/lightroom.c:1115 ../src/develop/lightroom.c:1137 -#: ../src/develop/lightroom.c:1157 +#: ../src/develop/lightroom.c:1169 ../src/develop/lightroom.c:1191 +#: ../src/develop/lightroom.c:1211 #, c-format msgid "`%s' is not a Lightroom XMP!" msgstr "“%s”不是 Lightroom XMP!" -#: ../src/develop/lightroom.c:1556 +#: ../src/develop/lightroom.c:1613 #, c-format msgid "%s has been imported" msgid_plural "%s have been imported" msgstr[0] "%s 导入成功" -#: ../src/develop/masks/brush.c:1356 ../src/develop/masks/brush.c:1410 +#: ../src/develop/masks/brush.c:1346 ../src/develop/masks/brush.c:1400 #, c-format msgid "hardness: %3.2f%%" msgstr "硬度:%3.2f%%" -#: ../src/develop/masks/brush.c:1372 ../src/develop/masks/brush.c:1470 +#: ../src/develop/masks/brush.c:1362 ../src/develop/masks/brush.c:1460 #: ../src/develop/masks/circle.c:148 ../src/develop/masks/circle.c:193 #: ../src/develop/masks/ellipse.c:484 ../src/develop/masks/ellipse.c:546 -#: ../src/develop/masks/path.c:1273 +#: ../src/develop/masks/path.c:1255 #, c-format msgid "size: %3.2f%%" msgstr "大小:%3.2f%%" -#: ../src/develop/masks/brush.c:3247 +#: ../src/develop/masks/brush.c:3191 msgid "[BRUSH] change size" msgstr "更改大小" -#: ../src/develop/masks/brush.c:3249 +#: ../src/develop/masks/brush.c:3193 msgid "[BRUSH] change hardness" msgstr "更改硬度" -#: ../src/develop/masks/brush.c:3251 +#: ../src/develop/masks/brush.c:3195 msgid "[BRUSH] change opacity" msgstr "更改不透明度" -#: ../src/develop/masks/brush.c:3263 +#: ../src/develop/masks/brush.c:3207 #, c-format msgid "brush #%d" msgstr "笔刷 #%d" -#: ../src/develop/masks/brush.c:3276 +#: ../src/develop/masks/brush.c:3220 #, c-format msgid "" "<b>size</b>: scroll, <b>hardness</b>: shift+scroll\n" @@ -8471,35 +8806,35 @@ "<b>大小</b>:鼠标滚轮,<b>硬度</b>:shift + 滚轮\n" "<b>不透明度</b>:ctrl + 滚轮 (%d%%)" -#: ../src/develop/masks/brush.c:3279 +#: ../src/develop/masks/brush.c:3223 msgid "<b>size</b>: scroll" msgstr "<b>大小</b>:鼠标滚轮" #: ../src/develop/masks/circle.c:137 ../src/develop/masks/circle.c:181 #: ../src/develop/masks/ellipse.c:470 ../src/develop/masks/ellipse.c:531 -#: ../src/develop/masks/path.c:1205 +#: ../src/develop/masks/path.c:1187 #, c-format msgid "feather size: %3.2f%%" msgstr "羽化大小:%3.2f%%" -#: ../src/develop/masks/circle.c:1510 +#: ../src/develop/masks/circle.c:1462 msgid "[CIRCLE] change size" msgstr "更改大小" -#: ../src/develop/masks/circle.c:1512 +#: ../src/develop/masks/circle.c:1464 msgid "[CIRCLE] change feather size" msgstr "更改羽化尺寸" -#: ../src/develop/masks/circle.c:1514 +#: ../src/develop/masks/circle.c:1466 msgid "[CIRCLE] change opacity" msgstr "更改不透明度" -#: ../src/develop/masks/circle.c:1527 +#: ../src/develop/masks/circle.c:1479 #, c-format msgid "circle #%d" msgstr "圆 #%d" -#: ../src/develop/masks/circle.c:1538 ../src/develop/masks/path.c:3490 +#: ../src/develop/masks/circle.c:1490 ../src/develop/masks/path.c:3406 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8513,32 +8848,32 @@ msgid "rotation: %3.f°" msgstr "旋转角度:%3.f°" -#: ../src/develop/masks/ellipse.c:2068 +#: ../src/develop/masks/ellipse.c:2015 msgid "[ELLIPSE] change size" msgstr "更改大小" -#: ../src/develop/masks/ellipse.c:2071 +#: ../src/develop/masks/ellipse.c:2018 msgid "[ELLIPSE] change feather size" msgstr "更改羽化尺寸" -#: ../src/develop/masks/ellipse.c:2074 ../src/develop/masks/ellipse.c:2083 +#: ../src/develop/masks/ellipse.c:2021 ../src/develop/masks/ellipse.c:2030 msgid "[ELLIPSE] rotate shape" msgstr "旋转形状" -#: ../src/develop/masks/ellipse.c:2077 +#: ../src/develop/masks/ellipse.c:2024 msgid "[ELLIPSE] change opacity" msgstr "更改不透明度" -#: ../src/develop/masks/ellipse.c:2080 +#: ../src/develop/masks/ellipse.c:2027 msgid "[ELLIPSE] switch feathering mode" msgstr "切换羽化模式" -#: ../src/develop/masks/ellipse.c:2090 +#: ../src/develop/masks/ellipse.c:2037 #, c-format msgid "ellipse #%d" msgstr "椭圆 #%d" -#: ../src/develop/masks/ellipse.c:2128 +#: ../src/develop/masks/ellipse.c:2075 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8547,11 +8882,11 @@ "<b>大小</b>:鼠标滚轮,<b>羽化大小</b>:shift + 滚轮\n" "<b>旋转</b>:ctrl + shift + 滚轮,<b>不透明度</b>:ctrl + 滚轮 (%d%%)" -#: ../src/develop/masks/ellipse.c:2132 +#: ../src/develop/masks/ellipse.c:2079 msgid "<b>rotate</b>: ctrl+drag" msgstr "<b>旋转</b>:ctrl + 拖动" -#: ../src/develop/masks/ellipse.c:2135 +#: ../src/develop/masks/ellipse.c:2082 #, c-format msgid "" "<b>feather mode</b>: shift+click, <b>rotate</b>: ctrl+drag\n" @@ -8572,32 +8907,32 @@ msgid "curvature: %3.2f%%" msgstr "曲率:%3.2f%%" -#: ../src/develop/masks/gradient.c:1555 +#: ../src/develop/masks/gradient.c:1514 msgid "[GRADIENT on pivot] rotate shape" msgstr "旋转形状" -#: ../src/develop/masks/gradient.c:1557 +#: ../src/develop/masks/gradient.c:1516 msgid "[GRADIENT creation] set rotation" msgstr "设定旋转角度" -#: ../src/develop/masks/gradient.c:1559 +#: ../src/develop/masks/gradient.c:1518 msgid "[GRADIENT] change curvature" msgstr "更改曲率" -#: ../src/develop/masks/gradient.c:1561 +#: ../src/develop/masks/gradient.c:1520 msgid "[GRADIENT] change compression" msgstr "更改压缩" -#: ../src/develop/masks/gradient.c:1563 +#: ../src/develop/masks/gradient.c:1522 msgid "[GRADIENT] change opacity" msgstr "更改不透明度" -#: ../src/develop/masks/gradient.c:1576 +#: ../src/develop/masks/gradient.c:1535 #, c-format msgid "gradient #%d" msgstr "渐变 #%d" -#: ../src/develop/masks/gradient.c:1587 +#: ../src/develop/masks/gradient.c:1546 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8606,7 +8941,7 @@ "<b>曲率</b>:滚轮,<b>压缩</b>:shift + 滚轮\n" "<b>旋转</b>:单击并拖动,<b>不透明度</b>:ctrl + 滚轮 (%d%%)" -#: ../src/develop/masks/gradient.c:1592 +#: ../src/develop/masks/gradient.c:1551 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8615,7 +8950,7 @@ "<b>曲率</b>:滚轮,<b>压缩</b>:shift + 滚轮\n" "<b>不透明度</b>:ctrl + 滚轮 (%d%%)" -#: ../src/develop/masks/gradient.c:1595 +#: ../src/develop/masks/gradient.c:1554 msgid "<b>rotate</b>: drag" msgstr "<b>旋转</b>:拖动" @@ -8623,84 +8958,84 @@ msgid "[SHAPE] remove shape" msgstr "移除形状" -#: ../src/develop/masks/masks.c:306 +#: ../src/develop/masks/masks.c:305 #, c-format msgid "group `%s'" msgstr "分组“%s”" -#: ../src/develop/masks/masks.c:423 +#: ../src/develop/masks/masks.c:422 #, c-format msgid "copy of `%s'" msgstr "“%s” 的副本" -#: ../src/develop/masks/masks.c:984 +#: ../src/develop/masks/masks.c:985 #, c-format msgid "%s: mask version mismatch: %d != %d" msgstr "%s:蒙板版本不匹配:%d != %d" -#: ../src/develop/masks/masks.c:1239 ../src/develop/masks/masks.c:1906 +#: ../src/develop/masks/masks.c:1230 ../src/develop/masks/masks.c:1881 #, c-format msgid "opacity: %.0f%%" msgstr "不透明度: %.0f%%" -#: ../src/develop/masks/masks.c:1650 ../src/libs/masks.c:1068 +#: ../src/develop/masks/masks.c:1625 ../src/libs/masks.c:1084 msgid "add existing shape" msgstr "添加已存在形状" -#: ../src/develop/masks/masks.c:1677 +#: ../src/develop/masks/masks.c:1652 msgid "use same shapes as" msgstr "复制形状自" -#: ../src/develop/masks/masks.c:1990 +#: ../src/develop/masks/masks.c:1965 msgid "masks can not contain themselves" msgstr "蒙版不能包括自身" -#: ../src/develop/masks/path.c:3433 +#: ../src/develop/masks/path.c:3349 msgid "[PATH creation] add a smooth node" msgstr "添加平滑节点" -#: ../src/develop/masks/path.c:3435 +#: ../src/develop/masks/path.c:3351 msgid "[PATH creation] add a sharp node" msgstr "添加尖锐节点" -#: ../src/develop/masks/path.c:3437 +#: ../src/develop/masks/path.c:3353 msgid "[PATH creation] terminate path creation" msgstr "终止创建路径" -#: ../src/develop/masks/path.c:3439 +#: ../src/develop/masks/path.c:3355 msgid "[PATH on node] switch between smooth/sharp node" msgstr "切换平滑/尖锐节点" -#: ../src/develop/masks/path.c:3441 +#: ../src/develop/masks/path.c:3357 msgid "[PATH on node] remove the node" msgstr "删除节点" -#: ../src/develop/masks/path.c:3443 +#: ../src/develop/masks/path.c:3359 msgid "[PATH on feather] reset curvature" msgstr "重置曲率" -#: ../src/develop/masks/path.c:3445 +#: ../src/develop/masks/path.c:3361 msgid "[PATH on segment] add node" msgstr "添加节点" -#: ../src/develop/masks/path.c:3447 +#: ../src/develop/masks/path.c:3363 msgid "[PATH] change size" msgstr "更改大小" -#: ../src/develop/masks/path.c:3449 +#: ../src/develop/masks/path.c:3365 msgid "[PATH] change feather size" msgstr "更改羽化尺寸" -#: ../src/develop/masks/path.c:3451 +#: ../src/develop/masks/path.c:3367 msgid "[PATH] change opacity" msgstr "更改不透明度" -#: ../src/develop/masks/path.c:3463 +#: ../src/develop/masks/path.c:3379 #, c-format msgid "path #%d" msgstr "路径 #%d" -#: ../src/develop/masks/path.c:3473 +#: ../src/develop/masks/path.c:3389 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>cancel</b>: right-click" @@ -8708,7 +9043,7 @@ "<b>添加节点</b>:单击,<b>添加尖锐节点</b>:ctrl + 单击\n" "<b>取消</b>:右键单击" -#: ../src/develop/masks/path.c:3476 +#: ../src/develop/masks/path.c:3392 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>finish path</b>: right-click" @@ -8716,7 +9051,7 @@ "<b>添加节点</b>:单击,<b>添加尖锐节点</b>:ctrl + 单击\n" "<b>完成路径</b>:右键单击" -#: ../src/develop/masks/path.c:3479 +#: ../src/develop/masks/path.c:3395 msgid "" "<b>move node</b>: drag, <b>remove node</b>: right-click\n" "<b>switch smooth/sharp mode</b>: ctrl+click" @@ -8724,7 +9059,7 @@ "<b>移动节点</b>:拖动,<b>移除节点</b>:右键单击\n" "<b>切换平滑/尖锐</b>:ctrl + 单击" -#: ../src/develop/masks/path.c:3483 +#: ../src/develop/masks/path.c:3399 msgid "" "<b>node curvature</b>: drag\n" "<b>reset curvature</b>: right-click" @@ -8732,7 +9067,7 @@ "<b>节点曲率</b>:拖动\n" "<b>重置曲率</b>:右键单击" -#: ../src/develop/masks/path.c:3487 +#: ../src/develop/masks/path.c:3403 msgid "" "<b>move segment</b>: drag\n" "<b>add node</b>: ctrl+click" @@ -8740,11 +9075,11 @@ "<b>移动节点</b>:拖动\n" "<b>添加节点</b>:ctrl + 单击" -#: ../src/develop/pixelpipe_hb.c:500 +#: ../src/develop/pixelpipe_hb.c:486 msgid "enabled as required" msgstr "由于处理要求必须启用" -#: ../src/develop/pixelpipe_hb.c:501 +#: ../src/develop/pixelpipe_hb.c:487 msgid "" "history had module disabled but it is required for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -8752,11 +9087,11 @@ "根据历史信息此模块未启用,但对此图像而言此模块必须启用。\n" "此问题可能由预置,样式或者粘贴历史记录导致" -#: ../src/develop/pixelpipe_hb.c:508 +#: ../src/develop/pixelpipe_hb.c:494 msgid "disabled as not appropriate" msgstr "由于不适用而必须禁用" -#: ../src/develop/pixelpipe_hb.c:509 +#: ../src/develop/pixelpipe_hb.c:495 msgid "" "history had module enabled but it is not allowed for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -8764,13 +9099,24 @@ "根据历史信息此模块已启用,但对此图像而言此模块不可用。\n" "此问题可能由预置,样式或者粘贴历史记录导致" -#: ../src/develop/pixelpipe_hb.c:2705 +#: ../src/develop/pixelpipe_hb.c:2697 msgid "" -"darktable discovered problems with your OpenCL setup; disabling OpenCL for " -"this session!" -msgstr "darktable 检测到 OpenCL 设置出现问题;OpenCL 已在此次会话中禁用!" +"OpenCL errors encountered; disabling OpenCL for this session! some possible " +"causes:\n" +" - OpenCL out of resources due to preference settings. please try with " +"defaults,\n" +" - buggy driver for some device. please run darktable with `-d opencl' to " +"identify,\n" +" - some drivers don't support needed number of events,\n" +" - too small headroom settings while using 'use all device memory'." +msgstr "" +"发生了 OpenCL 错误!此绘画中将无法再使用 OpenCL!可能原因如下:\n" +" - OpenCL 没有足够的资源。请更改设置或尝试使用默认值;\n" +" - 设备驱动有 bug。请使用 `-d opencl` 重新运行 darktable 来排除故障;\n" +" - 部分驱动无法支持所需的事件数量;\n" +" - 内存预留空间太小。" -#: ../src/develop/pixelpipe_hb.c:2853 +#: ../src/develop/pixelpipe_hb.c:2847 #, c-format msgid "" "module '%s' can't get raster mask from module\n" @@ -8780,28 +9126,30 @@ "模块“%s”无法从模块“%s”获取光栅遮罩。\n" "由于光栅遮罩必须在像素管线后期进行处理,光栅遮罩已被忽略。" -#: ../src/develop/tiling.c:820 ../src/develop/tiling.c:1173 +#: ../src/develop/tiling.c:819 ../src/develop/tiling.c:1172 #, c-format -msgid "tiling failed for module '%s'. output might be garbled." -msgstr "模块“%s”分块失败。输出可能会出现混乱。" +msgid "" +"tiling failed for module '%s'. the output most likely will be OK, but you " +"might want to check." +msgstr "模块“%s”分块失败。输出大概率没有问题,但您需要手动检查。" -#: ../src/dtgtk/culling.c:254 +#: ../src/dtgtk/culling.c:223 msgid "you have reached the start of your selection" msgstr "你已到达所选内容的开头" -#: ../src/dtgtk/culling.c:263 +#: ../src/dtgtk/culling.c:232 msgid "you have reached the start of your collection" msgstr "你已到达该集合的开头" -#: ../src/dtgtk/culling.c:310 +#: ../src/dtgtk/culling.c:279 msgid "you have reached the end of your selection" msgstr "你已到达所选内容的终点" -#: ../src/dtgtk/culling.c:337 +#: ../src/dtgtk/culling.c:306 msgid "you have reached the end of your collection" msgstr "你已到达该集合的终点" -#: ../src/dtgtk/culling.c:446 +#: ../src/dtgtk/culling.c:415 #, c-format msgid "zooming is limited to %d images" msgstr "缩放视图仅在 %d 张图像以下可用" @@ -8895,7 +9243,7 @@ msgid "fixed" msgstr "固定的" -#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1493 +#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1498 msgid "relative" msgstr "相对的" @@ -8909,7 +9257,7 @@ msgstr "最小" #: ../src/dtgtk/range.c:630 ../src/dtgtk/range.c:1780 ../src/dtgtk/range.c:1831 -#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:282 +#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:309 msgid "max" msgstr "最大" @@ -8918,7 +9266,7 @@ msgstr "日期类型" #. the date section -#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1505 msgid "date" msgstr "日期" @@ -8943,7 +9291,7 @@ msgstr "日: " #. the time section -#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1505 msgid "time" msgstr "时间" @@ -8961,8 +9309,8 @@ msgstr "永远使用当前日期时间" #. apply button -#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:162 -#: ../src/libs/metadata.c:901 ../src/libs/styles.c:897 +#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:180 +#: ../src/libs/metadata.c:735 ../src/libs/styles.c:901 msgid "apply" msgstr "应用" @@ -8996,39 +9344,39 @@ msgid "grouped images" msgstr "分组的图像" -#: ../src/dtgtk/thumbnail.c:820 ../src/dtgtk/thumbnail.c:1635 -#: ../src/iop/ashift.c:6191 ../src/iop/ashift.c:6280 ../src/iop/ashift.c:6282 -#: ../src/iop/ashift.c:6284 ../src/libs/navigation.c:110 -#: ../src/libs/navigation.c:190 +#: ../src/dtgtk/thumbnail.c:814 ../src/dtgtk/thumbnail.c:1623 +#: ../src/iop/ashift.c:6138 ../src/iop/ashift.c:6227 ../src/iop/ashift.c:6229 +#: ../src/iop/ashift.c:6231 ../src/libs/navigation.c:111 +#: ../src/libs/navigation.c:193 msgid "fit" msgstr "适应" -#: ../src/dtgtk/thumbtable.c:1041 ../src/views/slideshow.c:421 +#: ../src/dtgtk/thumbtable.c:1139 ../src/views/slideshow.c:422 msgid "there are no images in this collection" msgstr "当前集合中无图像" -#: ../src/dtgtk/thumbtable.c:1048 +#: ../src/dtgtk/thumbtable.c:1146 msgid "if you have not imported any images yet" msgstr "若您还没有导入任何图像" -#: ../src/dtgtk/thumbtable.c:1052 +#: ../src/dtgtk/thumbtable.c:1150 msgid "you can do so in the import module" msgstr "您可以在导入模块做这些" -#: ../src/dtgtk/thumbtable.c:1061 +#: ../src/dtgtk/thumbtable.c:1159 msgid "try to relax the filter settings in the top panel" msgstr "使用顶部面板的过滤设置" -#: ../src/dtgtk/thumbtable.c:1072 +#: ../src/dtgtk/thumbtable.c:1170 msgid "or add images in the collections module in the left panel" msgstr "或者添加图像至左面板的集合模块" -#: ../src/dtgtk/thumbtable.c:1338 +#: ../src/dtgtk/thumbtable.c:1455 msgid "" "you have changed the settings related to how thumbnails are generated.\n" msgstr "你已经改变了与如何生成缩略图有关的设置。\n" -#: ../src/dtgtk/thumbtable.c:1341 +#: ../src/dtgtk/thumbtable.c:1458 msgid "" "all cached thumbnails need to be invalidated.\n" "\n" @@ -9036,7 +9384,7 @@ "所有缓存的缩略图都需要被清除。\n" "\n" -#: ../src/dtgtk/thumbtable.c:1345 +#: ../src/dtgtk/thumbtable.c:1462 #, c-format msgid "" "cached thumbnails starting from level %d need to be invalidated.\n" @@ -9045,7 +9393,7 @@ "从第 %d 级开始的缓存缩略图需要被清除。\n" "\n" -#: ../src/dtgtk/thumbtable.c:1350 +#: ../src/dtgtk/thumbtable.c:1467 #, c-format msgid "" "cached thumbnails below level %d need to be invalidated.\n" @@ -9054,7 +9402,7 @@ "低于第 %d 级的缓存缩略图需要被清除。\n" "\n" -#: ../src/dtgtk/thumbtable.c:1355 +#: ../src/dtgtk/thumbtable.c:1472 #, c-format msgid "" "cached thumbnails between level %d and %d need to be invalidated.\n" @@ -9063,48 +9411,48 @@ "级别为 %d 和 %d 之间的缓存缩略图需要被清除。\n" "\n" -#: ../src/dtgtk/thumbtable.c:1358 +#: ../src/dtgtk/thumbtable.c:1475 msgid "do you want to do that now?" msgstr "要现在进行此操作吗?" -#: ../src/dtgtk/thumbtable.c:1360 +#: ../src/dtgtk/thumbtable.c:1477 msgid "cached thumbnails invalidation" msgstr "缩略图缓存失效" #. setup history key accelerators -#: ../src/dtgtk/thumbtable.c:2561 +#: ../src/dtgtk/thumbtable.c:2738 msgid "copy history" msgstr "复制历史" -#: ../src/dtgtk/thumbtable.c:2563 +#: ../src/dtgtk/thumbtable.c:2740 msgid "copy history parts" msgstr "复制历史的多个部分" -#: ../src/dtgtk/thumbtable.c:2565 +#: ../src/dtgtk/thumbtable.c:2742 msgid "paste history" msgstr "粘贴历史" -#: ../src/dtgtk/thumbtable.c:2567 +#: ../src/dtgtk/thumbtable.c:2744 msgid "paste history parts" msgstr "粘贴历史的多个部分" -#: ../src/dtgtk/thumbtable.c:2569 ../src/libs/copy_history.c:394 +#: ../src/dtgtk/thumbtable.c:2746 ../src/libs/copy_history.c:394 msgid "discard history" msgstr "丢弃历史记录" -#: ../src/dtgtk/thumbtable.c:2572 +#: ../src/dtgtk/thumbtable.c:2749 msgid "duplicate image" msgstr "复制图像" -#: ../src/dtgtk/thumbtable.c:2574 +#: ../src/dtgtk/thumbtable.c:2751 msgid "duplicate image virgin" msgstr "复制原始图像" -#: ../src/dtgtk/thumbtable.c:2584 ../src/libs/select.c:147 +#: ../src/dtgtk/thumbtable.c:2761 ../src/libs/select.c:148 msgid "select film roll" msgstr "选择胶卷" -#: ../src/dtgtk/thumbtable.c:2586 ../src/libs/select.c:151 +#: ../src/dtgtk/thumbtable.c:2763 ../src/libs/select.c:152 msgid "select untouched" msgstr "选择未改动的" @@ -9169,265 +9517,296 @@ msgid "creating complete lighttable thumbnail cache\n" msgstr "正在创建完整的光台缩略图缓存\n" -#: ../src/gui/accelerators.c:61 -msgid "active view" -msgstr "活动视图" - -#: ../src/gui/accelerators.c:62 -msgid "other views" -msgstr "其他视图" +#: ../src/gui/about.c:34 +#, c-format +msgid "copyright (c) the authors 2009-%s" +msgstr "版权所有 (c) 贡献者 2009-%s" + +#: ../src/gui/about.c:39 +msgid "organize and develop images from digital cameras" +msgstr "组织并处理数码相机导出的图片" -#: ../src/gui/accelerators.c:63 +#: ../src/gui/about.c:51 +msgid "all those of you that made previous releases possible" +msgstr "所有过去版本的贡献者" + +#: ../src/gui/about.c:56 +msgid "and..." +msgstr "与……" + +#: ../src/gui/about.c:59 +msgid "translator-credits" +msgstr "翻译贡献者" + +#: ../src/gui/accelerators.c:72 +msgid "in active view" +msgstr "在活动视图内" + +#: ../src/gui/accelerators.c:73 +msgid "in other views" +msgstr "在其他视图内" + +#: ../src/gui/accelerators.c:74 msgid "fallbacks" msgstr "备用" -#: ../src/gui/accelerators.c:64 ../src/gui/accelerators.c:722 -#: ../src/gui/accelerators.c:2607 ../src/gui/accelerators.c:3470 -msgid "speed" -msgstr "速度" +#: ../src/gui/accelerators.c:75 +msgid "speed adjustments" +msgstr "速度调整" + +#: ../src/gui/accelerators.c:76 +msgid "disabled defaults" +msgstr "默认关闭" -#: ../src/gui/accelerators.c:80 ../src/views/view.c:1202 +#: ../src/gui/accelerators.c:96 ../src/views/view.c:1361 msgid "scroll" msgstr "滚轮" -#: ../src/gui/accelerators.c:81 +#: ../src/gui/accelerators.c:97 msgid "pan" msgstr "平移" -#: ../src/gui/accelerators.c:82 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6283 ../src/iop/clipping.c:1902 -#: ../src/iop/clipping.c:2094 ../src/iop/clipping.c:2110 -#: ../src/views/darkroom.c:2676 ../src/views/lighttable.c:1250 +#: ../src/gui/accelerators.c:98 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6230 ../src/iop/clipping.c:1955 +#: ../src/iop/clipping.c:2147 ../src/iop/clipping.c:2163 +#: ../src/views/darkroom.c:2522 ../src/views/lighttable.c:1250 msgid "horizontal" msgstr "水平" -#: ../src/gui/accelerators.c:83 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6281 ../src/iop/clipping.c:1901 -#: ../src/iop/clipping.c:2095 ../src/iop/clipping.c:2109 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:1254 +#: ../src/gui/accelerators.c:99 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6228 ../src/iop/clipping.c:1954 +#: ../src/iop/clipping.c:2148 ../src/iop/clipping.c:2162 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:1254 msgid "vertical" msgstr "垂直" -#: ../src/gui/accelerators.c:84 +#: ../src/gui/accelerators.c:100 msgid "diagonal" msgstr "对角线" -#: ../src/gui/accelerators.c:86 +#: ../src/gui/accelerators.c:102 msgid "leftright" msgstr "左右" -#: ../src/gui/accelerators.c:87 +#: ../src/gui/accelerators.c:103 msgid "updown" msgstr "上下" -#: ../src/gui/accelerators.c:88 +#: ../src/gui/accelerators.c:104 msgid "pgupdown" msgstr "上下翻页" -#: ../src/gui/accelerators.c:96 ../src/views/view.c:1186 +#: ../src/gui/accelerators.c:112 ../src/views/view.c:1343 msgid "shift" msgstr "shift" -#: ../src/gui/accelerators.c:97 ../src/views/view.c:1187 +#: ../src/gui/accelerators.c:113 ../src/views/view.c:1345 msgid "ctrl" msgstr "ctrl" -#: ../src/gui/accelerators.c:98 ../src/views/view.c:1188 +#: ../src/gui/accelerators.c:114 ../src/views/view.c:1347 msgid "alt" msgstr "alt" -#: ../src/gui/accelerators.c:99 +#: ../src/gui/accelerators.c:115 msgid "cmd" msgstr "cmd" -#: ../src/gui/accelerators.c:100 +#: ../src/gui/accelerators.c:116 msgid "altgr" msgstr "altgr" -#: ../src/gui/accelerators.c:109 ../src/gui/accelerators.c:156 -#: ../src/libs/tagging.c:1782 +#: ../src/gui/accelerators.c:127 ../src/gui/accelerators.c:174 +#: ../src/libs/tagging.c:1804 msgid "edit" msgstr "编辑" -#: ../src/gui/accelerators.c:110 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "up" msgstr "上" -#: ../src/gui/accelerators.c:111 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:129 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "down" msgstr "下" -#: ../src/gui/accelerators.c:115 +#: ../src/gui/accelerators.c:133 msgid "set" msgstr "设定" -#: ../src/gui/accelerators.c:119 +#: ../src/gui/accelerators.c:137 msgid "popup" msgstr "弹出窗口" -#: ../src/gui/accelerators.c:120 ../src/gui/accelerators.c:153 -#: ../src/gui/gtk.c:3054 ../src/views/lighttable.c:760 +#: ../src/gui/accelerators.c:138 ../src/gui/accelerators.c:171 +#: ../src/gui/gtk.c:3100 ../src/views/lighttable.c:760 msgid "next" msgstr "下一个" -#: ../src/gui/accelerators.c:121 ../src/gui/accelerators.c:152 -#: ../src/gui/gtk.c:3055 ../src/views/lighttable.c:761 +#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:170 +#: ../src/gui/gtk.c:3101 ../src/views/lighttable.c:761 msgid "previous" msgstr "前一个" -#: ../src/gui/accelerators.c:123 ../src/gui/accelerators.c:1462 +#: ../src/gui/accelerators.c:141 ../src/gui/accelerators.c:1598 msgid "last" msgstr "最后一个" -#: ../src/gui/accelerators.c:124 ../src/gui/accelerators.c:1461 +#: ../src/gui/accelerators.c:142 ../src/gui/accelerators.c:1597 msgid "first" msgstr "第一个" -#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:141 -#: ../src/gui/accelerators.c:314 ../src/libs/filters/rating_range.c:268 -#: ../src/libs/tagging.c:3119 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2419 ../src/views/darkroom.c:2648 +#: ../src/gui/accelerators.c:146 ../src/gui/accelerators.c:159 +#: ../src/gui/accelerators.c:356 ../src/libs/filters/rating_range.c:295 +#: ../src/libs/tagging.c:3150 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2258 ../src/views/darkroom.c:2494 msgid "toggle" msgstr "切换" -#: ../src/gui/accelerators.c:131 +#: ../src/gui/accelerators.c:149 msgid "ctrl-toggle" msgstr "ctrl 切换" -#: ../src/gui/accelerators.c:132 +#: ../src/gui/accelerators.c:150 msgid "ctrl-on" msgstr "ctrl 打开" -#: ../src/gui/accelerators.c:133 +#: ../src/gui/accelerators.c:151 msgid "right-toggle" msgstr "右键切换" -#: ../src/gui/accelerators.c:134 +#: ../src/gui/accelerators.c:152 msgid "right-on" msgstr "右键打开" -#: ../src/gui/accelerators.c:145 ../src/gui/gtk.c:3053 +#: ../src/gui/accelerators.c:163 ../src/gui/gtk.c:3099 msgid "activate" msgstr "启用" -#: ../src/gui/accelerators.c:146 +#: ../src/gui/accelerators.c:164 msgid "ctrl-activate" msgstr "ctrl 启用" -#: ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:165 msgid "right-activate" msgstr "右键启用" -#: ../src/gui/accelerators.c:154 +#: ../src/gui/accelerators.c:172 msgid "store" msgstr "存储" -#: ../src/gui/accelerators.c:157 ../src/gui/styles_dialog.c:639 +#: ../src/gui/accelerators.c:175 ../src/gui/styles_dialog.c:651 msgid "update" msgstr "更新" -#: ../src/gui/accelerators.c:158 ../src/libs/tools/global_toolbox.c:60 +#: ../src/gui/accelerators.c:176 ../src/libs/tools/global_toolbox.c:60 #: ../src/libs/tools/global_toolbox.c:510 msgid "preferences" msgstr "首选项" -#: ../src/gui/accelerators.c:163 +#: ../src/gui/accelerators.c:181 msgid "apply on new instance" msgstr "应用于新实例" -#: ../src/gui/accelerators.c:168 +#: ../src/gui/accelerators.c:186 msgid "start" msgstr "开始" -#: ../src/gui/accelerators.c:169 +#: ../src/gui/accelerators.c:187 msgid "end" msgstr "结束" -#: ../src/gui/accelerators.c:332 +#: ../src/gui/accelerators.c:374 msgid "entry" msgstr "输入" -#: ../src/gui/accelerators.c:409 +#: ../src/gui/accelerators.c:450 msgid "combo effect not found" msgstr "未找到组合效果" -#: ../src/gui/accelerators.c:578 +#: ../src/gui/accelerators.c:627 msgid "(keypad)" msgstr "(小键盘)" -#: ../src/gui/accelerators.c:587 +#: ../src/gui/accelerators.c:636 msgid "tablet button" msgstr "平板按键" -#: ../src/gui/accelerators.c:596 +#: ../src/gui/accelerators.c:645 msgid "unknown driver" msgstr "未知驱动" -#: ../src/gui/accelerators.c:663 +#: ../src/gui/accelerators.c:718 msgid "long" msgstr "长" -#: ../src/gui/accelerators.c:664 +#: ../src/gui/accelerators.c:719 msgid "double-press" msgstr "双击" -#: ../src/gui/accelerators.c:665 +#: ../src/gui/accelerators.c:720 msgid "triple-press" msgstr "按三下" -#: ../src/gui/accelerators.c:666 +#: ../src/gui/accelerators.c:721 msgid "press" msgstr "按" -#: ../src/gui/accelerators.c:670 +#: ../src/gui/accelerators.c:725 msgctxt "accel" msgid "left" msgstr "左键" -#: ../src/gui/accelerators.c:671 +#: ../src/gui/accelerators.c:726 msgctxt "accel" msgid "right" msgstr "右键" -#: ../src/gui/accelerators.c:672 +#: ../src/gui/accelerators.c:727 msgctxt "accel" msgid "middle" msgstr "中键" -#: ../src/gui/accelerators.c:673 +#: ../src/gui/accelerators.c:728 msgctxt "accel" msgid "long" msgstr "长按" -#: ../src/gui/accelerators.c:674 +#: ../src/gui/accelerators.c:729 msgctxt "accel" msgid "double-click" msgstr "双击" -#: ../src/gui/accelerators.c:675 +#: ../src/gui/accelerators.c:730 msgctxt "accel" msgid "triple-click" msgstr "按三下" -#: ../src/gui/accelerators.c:676 +#: ../src/gui/accelerators.c:731 msgid "click" msgstr "单击" -#: ../src/gui/accelerators.c:704 +#: ../src/gui/accelerators.c:759 msgid "first instance" msgstr "第一个实例" -#: ../src/gui/accelerators.c:706 +#: ../src/gui/accelerators.c:761 msgid "last instance" msgstr "最后一个实例" -#: ../src/gui/accelerators.c:708 +#: ../src/gui/accelerators.c:763 msgid "relative instance" msgstr "相对的实例" -#: ../src/gui/accelerators.c:867 +#: ../src/gui/accelerators.c:780 ../src/gui/accelerators.c:2864 +#: ../src/gui/accelerators.c:3811 +msgid "speed" +msgstr "速度" + +#: ../src/gui/accelerators.c:923 #, c-format msgid "" "Lua script command copied to clipboard:\n" @@ -9438,11 +9817,11 @@ "\n" "<tt>%s</tt>" -#: ../src/gui/accelerators.c:965 ../src/gui/accelerators.c:978 +#: ../src/gui/accelerators.c:1025 ../src/gui/accelerators.c:1044 msgid "start typing for incremental search" msgstr "键入关键字以进行增量搜索" -#: ../src/gui/accelerators.c:966 +#: ../src/gui/accelerators.c:1028 msgid "" "\n" "press Delete to delete selected shortcut" @@ -9450,7 +9829,23 @@ "\n" "按下 Delete 以删除选定的快捷键" -#: ../src/gui/accelerators.c:968 +#: ../src/gui/accelerators.c:1030 +msgid "" +"\n" +"press Delete to disable selected default shortcut" +msgstr "" +"\n" +"按下 Delete 以禁用选定的默认快捷键" + +#: ../src/gui/accelerators.c:1031 +msgid "" +"\n" +"press Delete to restore selected default shortcut" +msgstr "" +"\n" +"按下 Delete 以恢复选定的默认快捷键" + +#: ../src/gui/accelerators.c:1033 msgid "" "\n" "double-click to add new shortcut" @@ -9458,11 +9853,11 @@ "\n" "双击以添加新的快捷键" -#: ../src/gui/accelerators.c:979 +#: ../src/gui/accelerators.c:1045 msgid "click to filter shortcuts list" msgstr "点击对快捷键列表进行过滤" -#: ../src/gui/accelerators.c:981 +#: ../src/gui/accelerators.c:1047 msgid "" "\n" "right click to show action of selected shortcut" @@ -9470,7 +9865,7 @@ "\n" "单击鼠标右键以显示所选快捷键对应的操作" -#: ../src/gui/accelerators.c:984 +#: ../src/gui/accelerators.c:1050 msgid "" "\n" "double-click to define new shortcut" @@ -9478,37 +9873,37 @@ "\n" "双击以定义新的快捷键" -#: ../src/gui/accelerators.c:1015 +#: ../src/gui/accelerators.c:1081 msgid "shift+alt+scroll to change height" msgstr "shift + alt + 滚轮以更改显示高度" -#: ../src/gui/accelerators.c:1035 +#: ../src/gui/accelerators.c:1101 msgid "" "press keys with mouse click and scroll or move combinations to create a " "shortcut" msgstr "使用键盘按键、鼠标按钮、滚轮或拖动的组合创建快捷键" -#: ../src/gui/accelerators.c:1036 +#: ../src/gui/accelerators.c:1102 msgid "click to open shortcut configuration" msgstr "点击打开快捷键配置" -#: ../src/gui/accelerators.c:1037 +#: ../src/gui/accelerators.c:1103 msgid "ctrl+click to add to quick access panel\n" msgstr "ctrl + 单击以添加至快速访问面板\n" -#: ../src/gui/accelerators.c:1038 +#: ../src/gui/accelerators.c:1104 msgid "ctrl+click to remove from quick access panel\n" msgstr "ctrl + 单击以从快速访问面板移除\n" -#: ../src/gui/accelerators.c:1039 +#: ../src/gui/accelerators.c:1105 msgid "scroll to change default speed" msgstr "鼠标滚轮更改默认速度" -#: ../src/gui/accelerators.c:1040 +#: ../src/gui/accelerators.c:1106 msgid "right click to exit mapping mode" msgstr "点击右键,退出映射模式" -#: ../src/gui/accelerators.c:1051 +#: ../src/gui/accelerators.c:1119 #, c-format msgid "" "%sright-click to type a specific value between <b>%s</b> and <b>%s</b>\n" @@ -9517,74 +9912,89 @@ "%s 右键以输入准确数值,取值范围为 <b>%s</b> 到 <b>%s</b>\n" "拖动时按住 ctrl + shift 以忽略数值限制。" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "ctrl+v" msgstr "ctrl + v" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "right long click" msgstr "长按鼠标右键" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "to copy Lua command" msgstr "以复制 Lua 命令" -#: ../src/gui/accelerators.c:1344 +#: ../src/gui/accelerators.c:1451 msgid "shortcut for move exists with single effect" msgstr "用于移动的快捷键只有单一效果" -#: ../src/gui/accelerators.c:1345 +#: ../src/gui/accelerators.c:1452 +#, c-format +msgid "" +"%s\n" +"\n" +"(assign %s to %s)" +msgstr "" +"%s\n" +"\n" +"(%s 已分配至 %s)" + +#: ../src/gui/accelerators.c:1453 msgid "create separate shortcuts for up and down move?" msgstr "为向上和向下移动创建单独的快捷键?" -#: ../src/gui/accelerators.c:1368 +#: ../src/gui/accelerators.c:1479 #, c-format msgid "%s, speed reset" msgstr "%s,速度重置" -#: ../src/gui/accelerators.c:1377 +#: ../src/gui/accelerators.c:1497 msgid "shortcut exists with different settings" msgstr "同一快捷键绑定至了不同的设置" -#: ../src/gui/accelerators.c:1378 +#: ../src/gui/accelerators.c:1498 msgid "reset the settings of the shortcut?" msgstr "重置快捷键的设置?" -#: ../src/gui/accelerators.c:1389 +#: ../src/gui/accelerators.c:1507 msgid "shortcut already exists" msgstr "快捷键已存在" -#: ../src/gui/accelerators.c:1390 +#: ../src/gui/accelerators.c:1509 +msgid "disable this default shortcut?" +msgstr "禁用此默认快捷键?" + +#: ../src/gui/accelerators.c:1510 msgid "remove the shortcut?" msgstr "移除快捷键?" -#: ../src/gui/accelerators.c:1423 +#: ../src/gui/accelerators.c:1550 msgid "clashing shortcuts exist" msgstr "有冲突的快捷键" -#: ../src/gui/accelerators.c:1424 +#: ../src/gui/accelerators.c:1551 msgid "remove these existing shortcuts?" msgstr "删除已有的快捷键?" #. or 3, but change char relative[] = "-2" to "-1" #. NUM_INSTANCES -#: ../src/gui/accelerators.c:1460 +#: ../src/gui/accelerators.c:1596 msgid "preferred" msgstr "首选" -#: ../src/gui/accelerators.c:1463 +#: ../src/gui/accelerators.c:1599 msgid "second" msgstr "次选" -#: ../src/gui/accelerators.c:1464 +#: ../src/gui/accelerators.c:1600 msgid "last but one" msgstr "最后一个" -#: ../src/gui/accelerators.c:1610 ../src/gui/accelerators.c:1670 +#: ../src/gui/accelerators.c:1761 ../src/gui/accelerators.c:1826 msgid "(unchanged)" msgstr "(无修改)" -#: ../src/gui/accelerators.c:1776 +#: ../src/gui/accelerators.c:1941 msgid "" "define a shortcut by pressing a key, optionally combined with modifier keys " "(ctrl/shift/alt)\n" @@ -9605,39 +10015,47 @@ "\n" "单击右键以取消" -#: ../src/gui/accelerators.c:1847 +#: ../src/gui/accelerators.c:2014 msgid "removing shortcut" msgstr "正在移除快捷键" -#: ../src/gui/accelerators.c:1848 +#: ../src/gui/accelerators.c:2016 +msgid "disable the selected default shortcut?" +msgstr "禁用选定的默认快捷键?" + +#: ../src/gui/accelerators.c:2017 +msgid "restore the selected default shortcut?" +msgstr "恢复选定的默认快捷键?" + +#: ../src/gui/accelerators.c:2018 msgid "remove the selected shortcut?" msgstr "移除选定的快捷键?" -#: ../src/gui/accelerators.c:1938 +#: ../src/gui/accelerators.c:2107 msgid "command" msgstr "命令" -#: ../src/gui/accelerators.c:1939 +#: ../src/gui/accelerators.c:2108 msgid "preset" msgstr "预置" -#: ../src/gui/accelerators.c:2272 +#: ../src/gui/accelerators.c:2491 msgid "restore shortcuts" msgstr "恢复快捷键设置" -#: ../src/gui/accelerators.c:2275 +#: ../src/gui/accelerators.c:2494 msgid "_defaults" msgstr "默认(_d)" -#: ../src/gui/accelerators.c:2276 +#: ../src/gui/accelerators.c:2495 msgid "_startup" msgstr "启动(_s)" -#: ../src/gui/accelerators.c:2277 +#: ../src/gui/accelerators.c:2496 msgid "_edits" msgstr "编辑(_e)" -#: ../src/gui/accelerators.c:2283 +#: ../src/gui/accelerators.c:2503 msgid "" "restore shortcuts from one of these states:\n" " - default\n" @@ -9649,28 +10067,23 @@ " - darktable 启动时的设置\n" " - 打开快捷键配置对话框时的设置\n" -#: ../src/gui/accelerators.c:2289 +#: ../src/gui/accelerators.c:2510 msgid "" "clear all newer shortcuts\n" "(instead of just restoring changed ones)" msgstr "清除所有更新的快捷键(而不是仅恢复已变更的快捷键)" -#: ../src/gui/accelerators.c:2344 ../src/gui/preferences.c:906 +#: ../src/gui/accelerators.c:2567 ../src/gui/preferences.c:905 #: ../src/libs/tools/global_toolbox.c:494 -#: ../src/libs/tools/global_toolbox.c:645 +#: ../src/libs/tools/global_toolbox.c:652 msgid "shortcuts" msgstr "快捷键" -#: ../src/gui/accelerators.c:2353 +#: ../src/gui/accelerators.c:2577 msgid "export shortcuts" msgstr "导出快捷键设置" -#: ../src/gui/accelerators.c:2356 ../src/gui/accelerators.c:2436 -#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:564 -msgid "_ok" -msgstr "_ok" - -#: ../src/gui/accelerators.c:2361 +#: ../src/gui/accelerators.c:2586 msgid "" "export all shortcuts to a file\n" "or just for one selected device\n" @@ -9678,27 +10091,27 @@ "将所有快捷键导出到文件\n" "或仅导出特定设备的快捷键\n" -#: ../src/gui/accelerators.c:2368 ../src/gui/accelerators.c:2448 +#: ../src/gui/accelerators.c:2593 ../src/gui/accelerators.c:2675 msgid "keyboard" msgstr "键盘" -#: ../src/gui/accelerators.c:2380 +#: ../src/gui/accelerators.c:2605 msgid "device id" msgstr "设备 id" -#: ../src/gui/accelerators.c:2406 +#: ../src/gui/accelerators.c:2631 msgid "select file to export" msgstr "选择导出文件" -#: ../src/gui/accelerators.c:2407 ../src/libs/tagging.c:2525 +#: ../src/gui/accelerators.c:2632 ../src/libs/tagging.c:2556 msgid "_export" msgstr "导出(_e)" -#: ../src/gui/accelerators.c:2433 +#: ../src/gui/accelerators.c:2659 msgid "import shortcuts" msgstr "导入快捷键设置" -#: ../src/gui/accelerators.c:2441 +#: ../src/gui/accelerators.c:2668 msgid "" "import all shortcuts from a file\n" "or just for one selected device\n" @@ -9706,31 +10119,31 @@ "从文件导入所有快捷键\n" "或仅导入特定设备的快捷键\n" -#: ../src/gui/accelerators.c:2460 +#: ../src/gui/accelerators.c:2687 msgid "id in file" msgstr "文件中的 id" -#: ../src/gui/accelerators.c:2466 +#: ../src/gui/accelerators.c:2693 msgid "id when loaded" msgstr "加载时的 id" -#: ../src/gui/accelerators.c:2470 +#: ../src/gui/accelerators.c:2697 msgid "clear device first" msgstr "首先清除设备" -#: ../src/gui/accelerators.c:2494 +#: ../src/gui/accelerators.c:2722 msgid "select file to import" msgstr "选择导入文件" -#: ../src/gui/accelerators.c:2495 ../src/libs/tagging.c:2489 +#: ../src/gui/accelerators.c:2723 ../src/libs/tagging.c:2520 msgid "_import" msgstr "导入(_i)" -#: ../src/gui/accelerators.c:2568 +#: ../src/gui/accelerators.c:2815 msgid "search shortcuts list" msgstr "搜索快捷键" -#: ../src/gui/accelerators.c:2569 +#: ../src/gui/accelerators.c:2817 msgid "" "incrementally search the list of shortcuts\n" "press up or down keys to cycle through matches" @@ -9738,29 +10151,28 @@ "渐进式搜索快捷键列表\n" "按上或下键来查看搜索匹配的内容" -#. Setting up the cell renderers -#: ../src/gui/accelerators.c:2583 ../src/views/view.c:1383 +#: ../src/gui/accelerators.c:2837 ../src/views/view.c:1554 msgid "shortcut" msgstr "快捷键" -#: ../src/gui/accelerators.c:2585 ../src/gui/accelerators.c:2676 -#: ../src/views/view.c:1385 +#: ../src/gui/accelerators.c:2840 ../src/gui/accelerators.c:2942 +#: ../src/views/view.c:1556 msgid "action" msgstr "行为" -#: ../src/gui/accelerators.c:2594 +#: ../src/gui/accelerators.c:2850 msgid "element" msgstr "元素" -#: ../src/gui/accelerators.c:2601 +#: ../src/gui/accelerators.c:2858 msgid "effect" msgstr "效果" -#: ../src/gui/accelerators.c:2658 +#: ../src/gui/accelerators.c:2918 msgid "search actions list" msgstr "搜索动作" -#: ../src/gui/accelerators.c:2659 +#: ../src/gui/accelerators.c:2920 msgid "" "incrementally search the list of actions\n" "press up or down keys to cycle through matches" @@ -9768,539 +10180,619 @@ "渐进式搜索动作列表\n" "按上或下键来查看搜索匹配的内容" -#: ../src/gui/accelerators.c:2682 ../src/gui/guides.c:719 -#: ../src/libs/export_metadata.c:192 +#: ../src/gui/accelerators.c:2950 ../src/gui/guides.c:719 +#: ../src/libs/export_metadata.c:179 msgid "type" msgstr "类型" -#: ../src/gui/accelerators.c:2717 +#: ../src/gui/accelerators.c:2988 msgid "enable fallbacks" msgstr "启用备用的回退设置" -#: ../src/gui/accelerators.c:2718 +#: ../src/gui/accelerators.c:2989 msgid "" "enables default meanings for additional buttons, modifiers or moves\n" "when used in combination with a base shortcut" msgstr "启用基本快捷键下额外按钮、修饰键或动作的默认行为" -#: ../src/gui/accelerators.c:2725 +#: ../src/gui/accelerators.c:2997 msgid "open help page for shortcuts" msgstr "打开快捷键帮助页面" -#: ../src/gui/accelerators.c:2730 +#: ../src/gui/accelerators.c:3002 msgid "restore..." msgstr "恢复..." -#: ../src/gui/accelerators.c:2731 +#: ../src/gui/accelerators.c:3003 msgid "restore default shortcuts or previous state" msgstr "恢复快捷键为默认值或之前的状态" -#: ../src/gui/accelerators.c:2735 ../src/libs/styles.c:883 -#: ../src/libs/tagging.c:3251 +#: ../src/gui/accelerators.c:3007 ../src/libs/styles.c:887 +#: ../src/libs/tagging.c:3282 msgid "import..." msgstr "导入…" -#: ../src/gui/accelerators.c:2736 +#: ../src/gui/accelerators.c:3008 msgid "fully or partially import shortcuts from file" msgstr "从文件导入所有或部分快捷键" -#: ../src/gui/accelerators.c:2740 ../src/libs/styles.c:890 -#: ../src/libs/tagging.c:3254 +#: ../src/gui/accelerators.c:3012 ../src/libs/styles.c:894 +#: ../src/libs/tagging.c:3285 msgid "export..." msgstr "导出…" -#: ../src/gui/accelerators.c:2741 +#: ../src/gui/accelerators.c:3013 msgid "fully or partially export shortcuts to file" msgstr "向文件导出所有或部分快捷键" -#: ../src/gui/accelerators.c:3139 +#: ../src/gui/accelerators.c:3021 +msgid "" +"the recommended way to assign shortcuts to visual elements is the <b>visual " +"shortcut mapping</b> mode.\n" +"this is switched on by toggling the <i>\"keyboard\"</i> button next to " +"preferences in the top panel. in this mode, clicking on a widget or area " +"will open this dialog with the appropriate selection for advanced " +"configuration.\n" +"\n" +"multiple shortcuts can be assigned to the same action. this is especially " +"useful if it has multiple <i>elements</i>, like the module buttons or the " +"colorpickers attached to sliders. however, with <i>fallbacks</i> enabled one " +"can use the same simple shortcuts and change their <i>element</i> or " +"<i>effect</i> by adding mouse clicks.\n" +"\n" +"<i>click <b> three times </b> to dismiss this notice permanently</i>" +msgstr "" +"推荐您使用<b>可视化键位映射</b>模式设置图形界面元素的快捷键。\n" +"可以点击顶部菜单“设置”按钮边上的“键盘”按钮来开启。在此模式下,点击任意界面元" +"素或区域即可跳转到此对话框的正确位置。\n" +"\n" +"一个按键组合可以执行多个动作。您可以使用一个快捷键来同时操作多个按钮、选色器" +"或者滑动条。启用<i>回落值</i>后可以,可以同时附加鼠标点击以操作另一组<i>界面" +"元素</i>或更改其<i>效果</i>\n" +"\n" +"<i>点击<b>三次</b>可永久禁用此提示</i>" + +#: ../src/gui/accelerators.c:3452 msgid "reinitialising input devices" msgstr "正在重新初始化输入设备" -#: ../src/gui/accelerators.c:3342 +#: ../src/gui/accelerators.c:3594 +msgid "down move" +msgstr "向下移动" + +#: ../src/gui/accelerators.c:3594 +msgid "flip top/bottom first/last" +msgstr "翻转 顶部/底部 或 最先/最后" + +#: ../src/gui/accelerators.c:3679 msgid "fallback to move" msgstr "回退到移动" -#: ../src/gui/accelerators.c:3578 +#: ../src/gui/accelerators.c:3921 #, c-format msgid "%s not assigned" msgstr "%s 未分配" -#: ../src/gui/accelerators.c:3751 +#: ../src/gui/accelerators.c:4102 #, c-format msgid "%s assigned to %s" msgstr "%s 已分配至 %s" -#: ../src/gui/gtk.c:173 ../src/views/darkroom.c:4650 +#: ../src/gui/accelerators.c:4321 +msgid "short key press resets stuck keys" +msgstr "短按以释放粘连按键" + +#: ../src/gui/gtk.c:175 ../src/views/darkroom.c:3861 msgid "darktable - darkroom preview" msgstr "darktable - 暗房预览" -#: ../src/gui/gtk.c:184 +#: ../src/gui/gtk.c:186 msgid "tooltips off" msgstr "禁用悬浮提示信息" -#: ../src/gui/gtk.c:186 +#: ../src/gui/gtk.c:188 msgid "tooltips on" msgstr "显示悬浮提示信息" -#: ../src/gui/gtk.c:191 +#: ../src/gui/gtk.c:193 msgid "" "tooltip visibility can only be toggled if compositing is enabled in your " "window manager" msgstr "悬浮提示信息只能在当前窗口管理器开启混成时使用" -#: ../src/gui/gtk.c:814 +#: ../src/gui/gtk.c:809 msgid "closing darktable..." msgstr "正在关闭 darktable……" -#: ../src/gui/gtk.c:1135 +#: ../src/gui/gtk.c:1032 +msgid "URL opened in web browser" +msgstr "URL 已在浏览器中打开" + +#: ../src/gui/gtk.c:1036 +msgid "error while opening URL in web browser" +msgstr "无法在浏览器中打开 URL" + +#. View menu +#: ../src/gui/gtk.c:1104 +msgctxt "menu" +msgid "Views" +msgstr "视图" + +#: ../src/gui/gtk.c:1108 +msgctxt "menu" +msgid "lighttable" +msgstr "光台" + +#: ../src/gui/gtk.c:1109 +msgctxt "menu" +msgid "darkroom" +msgstr "暗房" + +#: ../src/gui/gtk.c:1115 +msgctxt "menu" +msgid "slideshow" +msgstr "幻灯片放映" + +#: ../src/gui/gtk.c:1117 +msgctxt "menu" +msgid "map" +msgstr "地图" + +#: ../src/gui/gtk.c:1119 +msgctxt "menu" +msgid "print" +msgstr "打印" + +#: ../src/gui/gtk.c:1121 +msgctxt "menu" +msgid "tethering" +msgstr "连机拍摄" + +#. Help menu +#: ../src/gui/gtk.c:1127 +msgctxt "menu" +msgid "Help" +msgstr "帮助" + +#: ../src/gui/gtk.c:1131 +msgctxt "menu" +msgid "darktable Manual" +msgstr "darktable 用户手册" + +#: ../src/gui/gtk.c:1138 +msgctxt "menu" +msgid "darktable Homepage" +msgstr "darktable 网站主页" + +#: ../src/gui/gtk.c:1162 +msgctxt "menu" +msgid "Preferences" +msgstr "首选项" + +#: ../src/gui/gtk.c:1232 msgid "panels" msgstr "面板" -#. an action that does nothing - used for overriding/removing default shortcuts -#: ../src/gui/gtk.c:1184 -msgid "no-op" -msgstr "无操作" - -#: ../src/gui/gtk.c:1186 +#: ../src/gui/gtk.c:1264 msgid "switch views" msgstr "切换视图" -#: ../src/gui/gtk.c:1187 ../src/views/tethering.c:102 +#: ../src/gui/gtk.c:1265 ../src/views/tethering.c:102 msgid "tethering" msgstr "连机拍摄" -#: ../src/gui/gtk.c:1188 ../src/gui/preferences.c:531 -#: ../src/gui/preferences.c:542 ../src/libs/tools/lighttable.c:66 -#: ../src/views/lighttable.c:91 -msgid "lighttable" -msgstr "光台" - -#: ../src/gui/gtk.c:1189 ../src/gui/preferences.c:532 -#: ../src/gui/preferences.c:542 ../src/views/darkroom.c:94 -msgid "darkroom" -msgstr "暗房" - -#: ../src/gui/gtk.c:1190 ../src/views/map.c:197 +#: ../src/gui/gtk.c:1268 ../src/views/map.c:197 msgid "map" msgstr "地图" -#: ../src/gui/gtk.c:1191 ../src/views/slideshow.c:389 +#: ../src/gui/gtk.c:1269 ../src/views/slideshow.c:390 msgid "slideshow" msgstr "幻灯片放映" #. Print button -#: ../src/gui/gtk.c:1192 ../src/libs/print_settings.c:2885 +#: ../src/gui/gtk.c:1270 ../src/libs/print_settings.c:2885 msgid "print" msgstr "打印" #. register ctrl-q to quit: -#: ../src/gui/gtk.c:1198 +#: ../src/gui/gtk.c:1276 msgid "quit" msgstr "退出" #. Full-screen accelerator (no ESC handler here to enable quit-slideshow using ESC) -#: ../src/gui/gtk.c:1201 +#: ../src/gui/gtk.c:1279 msgid "fullscreen" msgstr "全屏" -#: ../src/gui/gtk.c:1205 +#: ../src/gui/gtk.c:1283 msgid "collapsing controls" msgstr "展开控制面板" #. specific top/bottom toggles -#: ../src/gui/gtk.c:1207 +#: ../src/gui/gtk.c:1285 msgid "header" msgstr "标题" -#: ../src/gui/gtk.c:1208 +#: ../src/gui/gtk.c:1286 msgid "filmstrip and timeline" msgstr "胶片栏与时间线面板" -#: ../src/gui/gtk.c:1209 +#: ../src/gui/gtk.c:1287 msgid "top toolbar" msgstr "顶部工具栏" -#: ../src/gui/gtk.c:1210 +#: ../src/gui/gtk.c:1288 msgid "bottom toolbar" msgstr "底部工具栏" -#: ../src/gui/gtk.c:1211 +#: ../src/gui/gtk.c:1289 msgid "all top" msgstr "所有顶部面板" -#: ../src/gui/gtk.c:1212 +#: ../src/gui/gtk.c:1290 msgid "all bottom" msgstr "所有底部面板" -#: ../src/gui/gtk.c:1214 +#: ../src/gui/gtk.c:1292 msgid "toggle tooltip visibility" msgstr "切换提示的可见性" -#: ../src/gui/gtk.c:1215 +#: ../src/gui/gtk.c:1293 msgid "reinitialise input devices" msgstr "重新初始化输入设备" -#: ../src/gui/gtk.c:1253 +#: ../src/gui/gtk.c:1331 msgid "toggle focus-peaking mode" msgstr "切换焦点峰值模式" #. toggle focus peaking everywhere -#: ../src/gui/gtk.c:1258 +#: ../src/gui/gtk.c:1336 msgid "toggle focus peaking" msgstr "切换焦点峰值" -#: ../src/gui/gtk.c:1594 ../src/gui/gtk.c:3143 ../src/gui/gtk.c:3148 -#: ../src/gui/gtk.c:3153 ../src/gui/gtk.c:3158 +#: ../src/gui/gtk.c:1654 ../src/gui/gtk.c:3189 ../src/gui/gtk.c:3194 +#: ../src/gui/gtk.c:3199 ../src/gui/gtk.c:3204 msgid "tabs" msgstr "选项卡" -#: ../src/gui/gtk.c:2535 -msgid "_yes" -msgstr "是(_y)" - -#: ../src/gui/gtk.c:2536 -msgid "_no" -msgstr "否(_n)" - #. ask the user if darktable.org may be accessed -#: ../src/gui/gtk.c:2647 +#: ../src/gui/gtk.c:2707 msgid "access the online user manual?" msgstr "查看在线用户文档?" -#: ../src/gui/gtk.c:2648 +#: ../src/gui/gtk.c:2708 #, c-format msgid "do you want to access `%s'?" msgstr "您是否要访问“%s”?" -#: ../src/gui/gtk.c:2717 -msgid "help url opened in web browser" -msgstr "在网页浏览器中打开的帮助链接" - -#: ../src/gui/gtk.c:2721 -msgid "error while opening help url in web browser" -msgstr "无法在浏览器中打开帮助文档 url" - -#: ../src/gui/gtk.c:2732 +#: ../src/gui/gtk.c:2778 msgid "there is no help available for this element" msgstr "此元素没有可用的帮助" #. font name can only use period as decimal separator #. but printf format strings use comma for some locales, so replace comma with period -#: ../src/gui/gtk.c:2752 +#: ../src/gui/gtk.c:2798 ../src/libs/metadata_view.c:762 #, c-format msgid "%.1f" msgstr "%.1f" -#: ../src/gui/gtk.c:2754 +#: ../src/gui/gtk.c:2800 #, c-format msgid "Sans %s" msgstr "Sans %s" -#: ../src/gui/gtk.c:3048 +#: ../src/gui/gtk.c:3094 msgid "does not contain pages" msgstr "不包含任何页面" -#: ../src/gui/gtk.c:3265 +#: ../src/gui/gtk.c:3313 #, c-format msgid "never show more than %d lines" msgstr "从不显示超过 %d 行" -#: ../src/gui/gtkentry.c:172 +#: ../src/gui/gtkentry.c:173 msgid "$(ROLL.NAME) - roll of the input image" msgstr "$(ROLL.NAME) - 输入图像的胶卷名称" -#: ../src/gui/gtkentry.c:173 +#: ../src/gui/gtkentry.c:174 msgid "$(FILE.FOLDER) - folder containing the input image" msgstr "$(FILE.FOLDER) - 输入图像所在的文件夹名" -#: ../src/gui/gtkentry.c:174 +#: ../src/gui/gtkentry.c:175 msgid "$(FILE.NAME) - basename of the input image" msgstr "$(FILE.NAME) - 输入图像的基本文件名" -#: ../src/gui/gtkentry.c:175 +#: ../src/gui/gtkentry.c:176 msgid "$(FILE.EXTENSION) - extension of the input image" msgstr "$(FILE.EXTENSION) - 输入图像文件的扩展名" -#: ../src/gui/gtkentry.c:176 +#: ../src/gui/gtkentry.c:177 msgid "$(VERSION) - duplicate version" msgstr "$(VERSION) - 副本版本号" -#: ../src/gui/gtkentry.c:177 +#: ../src/gui/gtkentry.c:178 msgid "" "$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version " "exists" msgstr "" "$(VERSION.IF_MULTI) - 等同于 $(VERSION) 但如果只存在一个版本,则为空字符串" -#: ../src/gui/gtkentry.c:178 +#: ../src/gui/gtkentry.c:179 msgid "$(VERSION.NAME) - version name from metadata" msgstr "$(VERSION.NAME) - 元数据中的版本名" -#: ../src/gui/gtkentry.c:179 +#: ../src/gui/gtkentry.c:180 msgid "$(JOBCODE) - job code for import" msgstr "$(JOBCODE) - 导入图像的工作编号" -#: ../src/gui/gtkentry.c:180 +#: ../src/gui/gtkentry.c:181 msgid "$(SEQUENCE) - sequence number" msgstr "$(SEQUENCE) - 序列号" -#: ../src/gui/gtkentry.c:181 +#: ../src/gui/gtkentry.c:182 msgid "$(WIDTH.MAX) - maximum image export width" msgstr "$(WIDTH.MAX) - 图像导出最大宽度" -#: ../src/gui/gtkentry.c:182 +#: ../src/gui/gtkentry.c:183 msgid "$(WIDTH.SENSOR) - image sensor width" msgstr "$(WIDTH.SENSOR) - 图像传感器宽度" -#: ../src/gui/gtkentry.c:183 +#: ../src/gui/gtkentry.c:184 msgid "$(WIDTH.RAW) - RAW image width" msgstr "$(WIDTH.RAW) - RAW 图像宽度" -#: ../src/gui/gtkentry.c:184 +#: ../src/gui/gtkentry.c:185 msgid "$(WIDTH.CROP) - image width after crop" msgstr "$(WIDTH.CROP) - 裁剪后的图像宽度" -#: ../src/gui/gtkentry.c:185 +#: ../src/gui/gtkentry.c:186 msgid "$(WIDTH.EXPORT) - exported image width" msgstr "$(WIDTH.EXPORT) - 导出图像宽度" -#: ../src/gui/gtkentry.c:186 +#: ../src/gui/gtkentry.c:187 msgid "$(HEIGHT.MAX) - maximum image export height" msgstr "$(HEIGHT.MAX) - 图像导出最大高度" -#: ../src/gui/gtkentry.c:187 +#: ../src/gui/gtkentry.c:188 msgid "$(HEIGHT.SENSOR) - image sensor height" msgstr "$(HEIGHT.SENSOR) - 图像传感器高度" -#: ../src/gui/gtkentry.c:188 +#: ../src/gui/gtkentry.c:189 msgid "$(HEIGHT.RAW) - RAW image height" msgstr "$(HEIGHT.RAW) - RAW 图像高度" -#: ../src/gui/gtkentry.c:189 +#: ../src/gui/gtkentry.c:190 msgid "$(HEIGHT.CROP) - image height after crop" msgstr "$(HEIGHT.CROP) - 裁剪后的图像高度" -#: ../src/gui/gtkentry.c:190 +#: ../src/gui/gtkentry.c:191 msgid "$(HEIGHT.EXPORT) - exported image height" msgstr "$(HEIGHT.EXPORT) - 导出图像高度" -#: ../src/gui/gtkentry.c:191 +#: ../src/gui/gtkentry.c:192 msgid "$(YEAR) - year" msgstr "$(YEAR) - 年份" -#: ../src/gui/gtkentry.c:192 +#: ../src/gui/gtkentry.c:193 msgid "$(YEAR.SHORT) - year without century" msgstr "$(YEAR.SHORT) - 年份后两位" -#: ../src/gui/gtkentry.c:193 +#: ../src/gui/gtkentry.c:194 msgid "$(MONTH) - month" msgstr "$(MONTH) - 月" -#: ../src/gui/gtkentry.c:194 +#: ../src/gui/gtkentry.c:195 msgid "$(MONTH.SHORT) - abbreviated month name according to the current locale" msgstr "$(MONTH.SHORT) - 所在区域的月份名缩写" -#: ../src/gui/gtkentry.c:195 +#: ../src/gui/gtkentry.c:196 msgid "$(MONTH.LONG) - full month name according to the current locale" msgstr "$(MONTH.LONG) - 所在区域的月份名全称" -#: ../src/gui/gtkentry.c:196 +#: ../src/gui/gtkentry.c:197 msgid "$(DAY) - day" msgstr "$(DAY) - 日" -#: ../src/gui/gtkentry.c:197 +#: ../src/gui/gtkentry.c:198 msgid "$(HOUR) - hour" msgstr "$(HOUR) - 小时" -#: ../src/gui/gtkentry.c:198 +#: ../src/gui/gtkentry.c:199 msgid "$(HOUR.AMPM) - hour, 12-hour clock" msgstr "$(HOUR.AMPM) - 小时,12 小时制" -#: ../src/gui/gtkentry.c:199 +#: ../src/gui/gtkentry.c:200 msgid "$(MINUTE) - minute" msgstr "$(MINUTE) - 分" -#: ../src/gui/gtkentry.c:200 +#: ../src/gui/gtkentry.c:201 msgid "$(SECOND) - second" msgstr "$(SECOND) - 秒" -#: ../src/gui/gtkentry.c:201 +#: ../src/gui/gtkentry.c:202 msgid "$(MSEC) - millisecond" msgstr "$(MSEC) - 毫秒" -#: ../src/gui/gtkentry.c:202 +#: ../src/gui/gtkentry.c:203 msgid "$(EXIF.YEAR) - EXIF year" msgstr "$(EXIF.YEAR) - EXIF 年份" -#: ../src/gui/gtkentry.c:203 +#: ../src/gui/gtkentry.c:204 msgid "$(EXIF.YEAR.SHORT) - EXIF year without century" msgstr "$(EXIF.YEAR.SHORT) - EXIF 年份后两位" -#: ../src/gui/gtkentry.c:204 +#: ../src/gui/gtkentry.c:205 msgid "$(EXIF.MONTH) - EXIF month" msgstr "$(EXIF.MONTH) - EXIF 月" -#: ../src/gui/gtkentry.c:205 +#: ../src/gui/gtkentry.c:206 msgid "" "$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current " "locale" msgstr "$(EXIF.MONTH.SHORT) - 当前语言的 EXIF 月份缩写" -#: ../src/gui/gtkentry.c:206 +#: ../src/gui/gtkentry.c:207 msgid "" "$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" msgstr "$(EXIF.MONTH.LONG) - 当前语言的 EXIF 月份全称" -#: ../src/gui/gtkentry.c:207 +#: ../src/gui/gtkentry.c:208 msgid "$(EXIF.DAY) - EXIF day" msgstr "$(EXIF.DAY) - EXIF 日" -#: ../src/gui/gtkentry.c:208 +#: ../src/gui/gtkentry.c:209 msgid "$(EXIF.HOUR) - EXIF hour" msgstr "$(EXIF.HOUR) - EXIF 小时" -#: ../src/gui/gtkentry.c:209 +#: ../src/gui/gtkentry.c:210 msgid "$(EXIF.HOUR.AMPM) - EXIF hour, 12-hour clock" msgstr "$(EXIF.HOUR.AMPM) - EXIF 小时,12 小时制" -#: ../src/gui/gtkentry.c:210 +#: ../src/gui/gtkentry.c:211 msgid "$(EXIF.MINUTE) - EXIF minute" msgstr "$(EXIF.MINUTE) - EXIF 分" -#: ../src/gui/gtkentry.c:211 +#: ../src/gui/gtkentry.c:212 msgid "$(EXIF.SECOND) - EXIF second" msgstr "$(EXIF.SECOND) - EXIF 秒" -#: ../src/gui/gtkentry.c:212 +#: ../src/gui/gtkentry.c:213 msgid "$(EXIF.MSEC) - EXIF millisecond" msgstr "$(EXIF.MSEC) - EXIF 毫秒" -#: ../src/gui/gtkentry.c:213 +#: ../src/gui/gtkentry.c:214 msgid "$(EXIF.ISO) - ISO value" msgstr "$(EXIF.ISO) - 感光度" -#: ../src/gui/gtkentry.c:214 +#: ../src/gui/gtkentry.c:215 msgid "$(EXIF.EXPOSURE) - EXIF exposure" msgstr "$(EXIF.EXPOSURE) - EXIF 曝光" -#: ../src/gui/gtkentry.c:215 +#: ../src/gui/gtkentry.c:216 msgid "$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias" msgstr "$(EXIF.EXPOSURE.BIAS) - EXIF 曝光偏差" -#: ../src/gui/gtkentry.c:216 +#: ../src/gui/gtkentry.c:217 msgid "$(EXIF.APERTURE) - EXIF aperture" msgstr "$(EXIF.APERTURE) - EXIF 光圈" -#: ../src/gui/gtkentry.c:217 +#: ../src/gui/gtkentry.c:218 +msgid "$(EXIF.CROP_FACTOR) - EXIF crop factor" +msgstr "$(EXIF.CROP_FACTOR) - EXIF 裁切系数" + +#: ../src/gui/gtkentry.c:219 msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" msgstr "$(EXIF.FOCAL.LENGTH) - EXIF 焦距" -#: ../src/gui/gtkentry.c:218 +#: ../src/gui/gtkentry.c:220 +msgid "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent focal length" +msgstr "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm 等效焦距" + +#: ../src/gui/gtkentry.c:221 msgid "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" msgstr "$(EXIF.FOCUS.DISTANCE) - EXIF 焦点距离" -#: ../src/gui/gtkentry.c:219 +#: ../src/gui/gtkentry.c:222 msgid "$(EXIF.MAKER) - camera maker" msgstr "$(EXIF.MAKER) - 相机制造商" -#: ../src/gui/gtkentry.c:220 +#: ../src/gui/gtkentry.c:223 msgid "$(EXIF.MODEL) - camera model" msgstr "$(EXIF.MODEL) - 相机型号" -#: ../src/gui/gtkentry.c:221 +#: ../src/gui/gtkentry.c:224 msgid "$(EXIF.LENS) - lens" msgstr "$(EXIF.LENS) - 镜头" -#: ../src/gui/gtkentry.c:222 +#: ../src/gui/gtkentry.c:225 msgid "$(LONGITUDE) - longitude" msgstr "$(LONGITUDE) - 经度" -#: ../src/gui/gtkentry.c:223 +#: ../src/gui/gtkentry.c:226 msgid "$(LATITUDE) - latitude" msgstr "$(LATITUDE) - 纬度" -#: ../src/gui/gtkentry.c:224 +#: ../src/gui/gtkentry.c:227 msgid "$(ELEVATION) - elevation" msgstr "$(ELEVATION) - 海拔" -#: ../src/gui/gtkentry.c:225 +#: ../src/gui/gtkentry.c:228 msgid "$(STARS) - star rating as number (-1 for rejected)" msgstr "$(STARS) - 星级评定(数字形式,-1 表示退稿图像)" -#: ../src/gui/gtkentry.c:226 +#: ../src/gui/gtkentry.c:229 msgid "$(RATING.ICONS) - star/reject rating in icon form" msgstr "$(RATING.ICONS) - 星级或退稿评级(图标形式)" -#: ../src/gui/gtkentry.c:227 +#: ../src/gui/gtkentry.c:230 msgid "$(LABELS) - color labels as text" msgstr "$(LABELS) - 色彩标识(文字形式)" -#: ../src/gui/gtkentry.c:228 +#: ../src/gui/gtkentry.c:231 msgid "$(LABELS.ICONS) - color labels as icons" msgstr "$(LABELS.ICONS) - 色彩标识(图标形式)" -#: ../src/gui/gtkentry.c:229 +#: ../src/gui/gtkentry.c:232 msgid "$(ID) - image ID" msgstr "$(ID) - 图像编号" -#: ../src/gui/gtkentry.c:230 +#: ../src/gui/gtkentry.c:233 msgid "$(TITLE) - title from metadata" msgstr "$(TITLE) - 来自元数据的标题" -#: ../src/gui/gtkentry.c:231 +#: ../src/gui/gtkentry.c:234 msgid "$(DESCRIPTION) - description from metadata" msgstr "$(DESCRIPTION) - 来自元数据的描述" -#: ../src/gui/gtkentry.c:232 +#: ../src/gui/gtkentry.c:235 msgid "$(CREATOR) - creator from metadata" msgstr "$(CREATOR) - 来自元数据的创作者" -#: ../src/gui/gtkentry.c:233 +#: ../src/gui/gtkentry.c:236 msgid "$(PUBLISHER) - publisher from metadata" msgstr "$(PUBLISHER) - 来自元数据的发布者" -#: ../src/gui/gtkentry.c:234 +#: ../src/gui/gtkentry.c:237 msgid "$(RIGHTS) - rights from metadata" msgstr "$(RIGHTS) - 来自元数据的版权" -#: ../src/gui/gtkentry.c:235 +#: ../src/gui/gtkentry.c:238 msgid "$(USERNAME) - login name" msgstr "$(USERNAME) - 登录用户名" -#: ../src/gui/gtkentry.c:236 +#: ../src/gui/gtkentry.c:239 msgid "$(FOLDER.PICTURES) - pictures folder" msgstr "$(FOLDER.PICTURES) - 照片文件夹" -#: ../src/gui/gtkentry.c:237 +#: ../src/gui/gtkentry.c:240 msgid "$(FOLDER.HOME) - home folder" msgstr "$(FOLDER.HOME) - 根目录" -#: ../src/gui/gtkentry.c:238 +#: ../src/gui/gtkentry.c:241 msgid "$(FOLDER.DESKTOP) - desktop folder" msgstr "$(FOLDER.DESKTOP) - 桌面文件夹" -#: ../src/gui/gtkentry.c:239 +#: ../src/gui/gtkentry.c:242 msgid "$(OPENCL.ACTIVATED) - whether OpenCL is activated" msgstr "$(OPENCL.ACTIVATED) - OpenCL 是否启用" -#: ../src/gui/gtkentry.c:240 +#: ../src/gui/gtkentry.c:243 msgid "$(CATEGORY0(category)) - subtag of level 0 in hierarchical tags" msgstr "$(CATEGORY0(category)) - 结构化标签中的 0 级子标签" -#: ../src/gui/gtkentry.c:241 +#: ../src/gui/gtkentry.c:244 msgid "$(TAGS) - tags as set in metadata settings" msgstr "$(TAGS) - 元数据设定中的标签" -#: ../src/gui/gtkentry.c:242 +#: ../src/gui/gtkentry.c:245 msgid "$(DARKTABLE.NAME) - darktable name" msgstr "$(DARKTABLE.NAME) - darktable 名" -#: ../src/gui/gtkentry.c:243 +#: ../src/gui/gtkentry.c:246 msgid "$(DARKTABLE.VERSION) - current darktable version" msgstr "$(DARKTABLE.VERSION) - 当前 darktable 版本号" -#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:255 +#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:248 msgid "grid" msgstr "方格" @@ -10370,11 +10862,11 @@ msgstr "全局参考线叠加层设置" #: ../src/gui/guides.c:710 ../src/gui/guides.c:719 ../src/gui/guides.c:727 -#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2648 +#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2494 msgid "guide lines" msgstr "参考线" -#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2092 +#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2145 msgid "flip" msgstr "翻转" @@ -10390,8 +10882,8 @@ msgid "vertically" msgstr "垂直地" -#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6285 ../src/iop/clipping.c:2096 -#: ../src/iop/colorbalance.c:1917 +#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6232 ../src/iop/clipping.c:2149 +#: ../src/iop/colorbalance.c:1892 msgid "both" msgstr "两者" @@ -10437,26 +10929,26 @@ msgid "select parts to paste" msgstr "选择要粘贴的部分" -#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:517 +#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:524 msgid "select _all" msgstr "全选(_a)" -#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:518 +#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:525 msgid "select _none" msgstr "全不选(_n)" -#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:593 -#: ../src/gui/styles_dialog.c:615 +#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:605 +#: ../src/gui/styles_dialog.c:627 msgid "include" msgstr "包含" -#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:669 -#: ../src/gui/styles_dialog.c:675 +#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:681 +#: ../src/gui/styles_dialog.c:687 msgid "item" msgstr "项" -#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:682 -#: ../src/gui/styles_dialog.c:691 +#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:694 +#: ../src/gui/styles_dialog.c:703 msgid "mask" msgstr "蒙版" @@ -10508,37 +11000,37 @@ msgid "interface language" msgstr "界面语言" -#: ../src/gui/preferences.c:289 +#: ../src/gui/preferences.c:290 msgid "double-click to reset to the system language" msgstr "双击可重置系统语言" -#: ../src/gui/preferences.c:291 +#: ../src/gui/preferences.c:292 msgid "" "set the language of the user interface. the system default is marked with an " "* (needs a restart)" msgstr "设置用户界面的语言。系统默认值标记为*(需要重新启动)" -#: ../src/gui/preferences.c:300 +#: ../src/gui/preferences.c:301 msgid "theme" msgstr "主题" -#: ../src/gui/preferences.c:328 +#: ../src/gui/preferences.c:331 msgid "set the theme for the user interface" msgstr "设置用户界面的主题" -#: ../src/gui/preferences.c:341 ../src/gui/preferences.c:348 +#: ../src/gui/preferences.c:344 ../src/gui/preferences.c:351 msgid "use system font size" msgstr "使用系统字体大小" -#: ../src/gui/preferences.c:357 ../src/gui/preferences.c:364 +#: ../src/gui/preferences.c:360 ../src/gui/preferences.c:367 msgid "font size in points" msgstr "字体大小(磅)" -#: ../src/gui/preferences.c:369 +#: ../src/gui/preferences.c:372 msgid "GUI controls and text DPI" msgstr "GUI 控件和文本 DPI" -#: ../src/gui/preferences.c:376 +#: ../src/gui/preferences.c:379 msgid "" "adjust the global GUI resolution to rescale controls, buttons, labels, etc.\n" "increase for a magnified GUI, decrease to fit more content in window.\n" @@ -10553,77 +11045,61 @@ "(设置在重新启动后生效)" #. checkbox to allow user to modify theme with user.css -#: ../src/gui/preferences.c:385 +#: ../src/gui/preferences.c:388 msgid "modify selected theme with CSS tweaks below" msgstr "使用下面的 CSS 调整选定的主题" -#: ../src/gui/preferences.c:393 +#: ../src/gui/preferences.c:396 msgid "modify theme with CSS keyed below (saved to user.css)" msgstr "用下面的 CSS 修改主题(保存到 user.css)" -#: ../src/gui/preferences.c:415 +#: ../src/gui/preferences.c:418 msgctxt "usercss" msgid "save CSS and apply" msgstr "保存 CSS 并应用" -#: ../src/gui/preferences.c:420 +#: ../src/gui/preferences.c:423 msgid "click to save and apply the CSS tweaks entered in this editor" msgstr "点击保存并应用在此编辑器中输入的 CSS 调整" -#: ../src/gui/preferences.c:422 +#: ../src/gui/preferences.c:425 msgid "open help page for CSS tweaks" msgstr "打开 CSS 微调帮助页" #. load default text with some pointers -#: ../src/gui/preferences.c:443 +#: ../src/gui/preferences.c:446 msgid "ERROR Loading user.css" msgstr "加载 user.css 时发生错误" #. load default text -#: ../src/gui/preferences.c:452 +#: ../src/gui/preferences.c:455 msgid "Enter CSS theme tweaks here" msgstr "在此处输入 CSS 主题调整" -#: ../src/gui/preferences.c:488 +#: ../src/gui/preferences.c:491 msgid "darktable preferences" msgstr "darktable 首选项" -#: ../src/gui/preferences.c:533 -msgid "processing" -msgstr "数据处理" - -#: ../src/gui/preferences.c:534 -msgid "security" -msgstr "安全性" - -#: ../src/gui/preferences.c:535 -msgid "storage" -msgstr "存储" - -#: ../src/gui/preferences.c:536 -msgid "miscellaneous" -msgstr "杂项" - -#: ../src/gui/preferences.c:561 +#: ../src/gui/preferences.c:559 msgid "darktable needs to be restarted for settings to take effect" msgstr "darktable 需要重新启动才能使设置生效" #. exif -#: ../src/gui/preferences.c:820 ../src/gui/presets.c:644 -#: ../src/libs/metadata_view.c:137 +#: ../src/gui/preferences.c:818 ../src/gui/presets.c:647 +#: ../src/libs/metadata_view.c:139 msgid "model" msgstr "型号" -#: ../src/gui/preferences.c:824 ../src/gui/presets.c:652 -#: ../src/libs/metadata_view.c:138 +#: ../src/gui/preferences.c:822 ../src/gui/presets.c:655 +#: ../src/libs/metadata_view.c:140 msgid "maker" msgstr "厂商" -#: ../src/gui/preferences.c:861 +#: ../src/gui/preferences.c:859 msgid "search presets list" msgstr "搜索快捷预设" -#: ../src/gui/preferences.c:862 +#: ../src/gui/preferences.c:860 msgid "" "incrementally search the list of presets\n" "press up or down keys to cycle through matches" @@ -10631,70 +11107,70 @@ "渐进式搜索预设列表\n" "按上或下键来查看搜索匹配的内容" -#: ../src/gui/preferences.c:868 +#: ../src/gui/preferences.c:866 msgctxt "preferences" msgid "import..." msgstr "导入…" -#: ../src/gui/preferences.c:872 +#: ../src/gui/preferences.c:870 msgctxt "preferences" msgid "export..." msgstr "导出…" -#: ../src/gui/preferences.c:1031 +#: ../src/gui/preferences.c:1030 #, c-format msgid "failed to import preset %s" msgstr "导入预设 %s 失败" -#: ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1041 msgid "select preset(s) to import" msgstr "选择要导入的预设" -#: ../src/gui/preferences.c:1043 ../src/libs/collect.c:408 -#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:929 -#: ../src/libs/import.c:1506 ../src/libs/import.c:1610 ../src/libs/styles.c:527 +#: ../src/gui/preferences.c:1042 ../src/libs/collect.c:425 +#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:930 +#: ../src/libs/import.c:1515 ../src/libs/import.c:1619 ../src/libs/styles.c:529 msgid "_open" msgstr "打开(_o)" -#: ../src/gui/preferences.c:1052 +#: ../src/gui/preferences.c:1051 msgid "darktable preset files" msgstr "darktable 预设文件" -#: ../src/gui/preferences.c:1057 ../src/iop/lut3d.c:1577 -#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:945 -#: ../src/libs/styles.c:541 +#: ../src/gui/preferences.c:1056 ../src/iop/lut3d.c:1591 +#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:946 +#: ../src/libs/styles.c:543 msgid "all files" msgstr "全部文件" -#: ../src/gui/presets.c:59 +#: ../src/gui/presets.c:61 msgid "non-raw" msgstr "非 raw" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:332 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:336 msgid "raw" msgstr "raw" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:333 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:337 msgid "HDR" msgstr "HDR" -#: ../src/gui/presets.c:59 ../src/iop/monochrome.c:77 ../src/libs/image.c:608 -#: ../src/libs/metadata_view.c:339 +#: ../src/gui/presets.c:61 ../src/iop/monochrome.c:77 ../src/libs/image.c:679 +#: ../src/libs/metadata_view.c:343 msgid "monochrome" msgstr "单色" -#: ../src/gui/presets.c:151 +#: ../src/gui/presets.c:153 #, c-format msgid "preset `%s' is write-protected, can't delete!" msgstr "样式“%s”已被写保护,无法删除!" -#: ../src/gui/presets.c:157 ../src/gui/presets.c:461 ../src/libs/lib.c:238 -#: ../src/libs/modulegroups.c:3701 +#: ../src/gui/presets.c:159 ../src/gui/presets.c:463 ../src/libs/lib.c:238 +#: ../src/libs/modulegroups.c:3703 msgid "delete preset?" msgstr "删除预置?" -#: ../src/gui/presets.c:158 ../src/gui/presets.c:462 ../src/libs/lib.c:239 -#: ../src/libs/modulegroups.c:3702 +#: ../src/gui/presets.c:160 ../src/gui/presets.c:464 ../src/libs/lib.c:239 +#: ../src/libs/modulegroups.c:3704 #, c-format msgid "do you really want to delete the preset `%s'?" msgstr "确定要删除预设配置“%s”?" @@ -10705,102 +11181,107 @@ #. clang-format on #. create a shortcut for the new entry #. then show edit dialog -#: ../src/gui/presets.c:200 ../src/gui/presets.c:1035 ../src/gui/presets.c:1038 -#: ../src/gui/presets.c:1041 ../src/libs/lib.c:188 ../src/libs/lib.c:205 +#: ../src/gui/presets.c:202 ../src/gui/presets.c:1022 ../src/gui/presets.c:1025 +#: ../src/gui/presets.c:1028 ../src/libs/lib.c:188 ../src/libs/lib.c:205 #: ../src/libs/lib.c:213 ../src/libs/lib.c:216 msgid "new preset" msgstr "新预设" -#: ../src/gui/presets.c:207 +#: ../src/gui/presets.c:209 msgid "please give preset a name" msgstr "请命名该预设" -#: ../src/gui/presets.c:212 +#: ../src/gui/presets.c:214 msgid "unnamed preset" msgstr "未命名预设" -#: ../src/gui/presets.c:241 +#: ../src/gui/presets.c:243 msgid "overwrite preset?" msgstr "覆盖预设?" -#: ../src/gui/presets.c:242 +#: ../src/gui/presets.c:244 #, c-format msgid "" "preset `%s' already exists.\n" "do you want to overwrite?" msgstr "预设“%s”已存在。您想覆盖它吗?" -#: ../src/gui/presets.c:420 ../src/imageio/storage/disk.c:123 -#: ../src/imageio/storage/gallery.c:110 ../src/imageio/storage/latex.c:109 +#: ../src/gui/presets.c:422 ../src/imageio/storage/disk.c:198 +#: ../src/imageio/storage/gallery.c:150 ../src/imageio/storage/latex.c:146 msgid "_select as output destination" msgstr "选其作为输出目录" -#: ../src/gui/presets.c:429 +#: ../src/gui/presets.c:431 #, c-format msgid "preset %s was successfully exported" msgstr "样式 %s 导出成功" -#: ../src/gui/presets.c:557 +#: ../src/gui/presets.c:559 #, c-format msgid "edit `%s' for module `%s'" msgstr "编辑模块“%1$s”中的“%2$s”" -#: ../src/gui/presets.c:561 +#: ../src/gui/presets.c:563 msgid "_export..." msgstr "导出… (_e)" -#: ../src/gui/presets.c:585 +#: ../src/gui/presets.c:564 ../src/libs/tagging.c:1489 +#: ../src/libs/tagging.c:1580 +msgid "_delete" +msgstr "删除 (_d)" + +#: ../src/gui/presets.c:588 msgid "name of the preset" msgstr "预置名称" -#: ../src/gui/presets.c:594 +#: ../src/gui/presets.c:597 msgid "description or further information" msgstr "描述或进一步的信息" -#: ../src/gui/presets.c:598 +#: ../src/gui/presets.c:601 msgid "reset all module parameters to their default values" msgstr "重置模块参数为默认值" -#: ../src/gui/presets.c:601 +#: ../src/gui/presets.c:604 msgid "" "the parameters will be reset to their default values, which may be " "automatically set based on image metadata" msgstr "将会重置参数为默认值,默认值可能会根据图像元数据有所不同" -#: ../src/gui/presets.c:607 +#: ../src/gui/presets.c:610 msgid "auto apply this preset to matching images" msgstr "自动应用此预设到匹配的图像" -#: ../src/gui/presets.c:611 +#: ../src/gui/presets.c:614 msgid "only show this preset for matching images" msgstr "只对匹配的图像显示此预设" -#: ../src/gui/presets.c:613 +#: ../src/gui/presets.c:616 msgid "" "be very careful with this option. this might be the last time you see your " "preset." msgstr "勾选此项时请格外小心。这有可能是你最后一次看到你的预设。" -#: ../src/gui/presets.c:643 +#: ../src/gui/presets.c:646 #, no-c-format msgid "string to match model (use % as wildcard)" msgstr "匹配型号的字符串(使用 % 作为通配符)" -#: ../src/gui/presets.c:651 +#: ../src/gui/presets.c:654 #, no-c-format msgid "string to match maker (use % as wildcard)" msgstr "匹配制造商的字符串(使用 % 作为通配符)" -#: ../src/gui/presets.c:659 +#: ../src/gui/presets.c:662 #, no-c-format msgid "string to match lens (use % as wildcard)" msgstr "匹配镜头的字符串(使用 % 作为通配符)" -#: ../src/gui/presets.c:669 +#: ../src/gui/presets.c:672 msgid "minimum ISO value" msgstr "最小 ISO 值" -#: ../src/gui/presets.c:675 +#: ../src/gui/presets.c:678 msgid "" "maximum ISO value\n" "if left blank, it is equivalent to no upper limit" @@ -10808,70 +11289,70 @@ "最大 ISO 值\n" "要设置为无上限时请留空" -#: ../src/gui/presets.c:688 +#: ../src/gui/presets.c:691 msgid "minimum exposure time" msgstr "最小曝光时间" -#: ../src/gui/presets.c:689 +#: ../src/gui/presets.c:692 msgid "maximum exposure time" msgstr "最大曝光时间" -#: ../src/gui/presets.c:705 +#: ../src/gui/presets.c:708 msgid "minimum aperture value" msgstr "最小光圈值" -#: ../src/gui/presets.c:706 +#: ../src/gui/presets.c:709 msgid "maximum aperture value" msgstr "最大光圈值" -#: ../src/gui/presets.c:724 +#: ../src/gui/presets.c:727 msgid "minimum focal length" msgstr "最小焦距" -#: ../src/gui/presets.c:725 +#: ../src/gui/presets.c:728 msgid "maximum focal length" msgstr "最大焦距" #. raw/hdr/ldr/mono/color -#: ../src/gui/presets.c:733 ../src/imageio/format/j2k.c:650 +#: ../src/gui/presets.c:736 msgid "format" msgstr "文件格式" -#: ../src/gui/presets.c:738 +#: ../src/gui/presets.c:741 msgid "select image types you want this preset to be available for" msgstr "选择此预置设定可以使用的图像类型" -#: ../src/gui/presets.c:751 ../src/libs/filtering.c:1201 +#: ../src/gui/presets.c:754 ../src/libs/filtering.c:1263 msgid "and" msgstr "与" -#: ../src/gui/presets.c:795 ../src/gui/presets.c:847 +#: ../src/gui/presets.c:798 ../src/gui/presets.c:850 msgid "∞" msgstr "∞" -#: ../src/gui/presets.c:979 +#: ../src/gui/presets.c:966 #, c-format msgid "preset `%s' is write-protected! can't edit it!" msgstr "样式“%s”已被写保护,无法修改!" -#: ../src/gui/presets.c:1003 ../src/libs/lib.c:158 +#: ../src/gui/presets.c:990 ../src/libs/lib.c:158 msgid "update preset?" msgstr "更新预置?" -#: ../src/gui/presets.c:1004 ../src/libs/lib.c:159 +#: ../src/gui/presets.c:991 ../src/libs/lib.c:159 #, c-format msgid "do you really want to update the preset `%s'?" msgstr "确定要更新预设配置“%s”?" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(first)" msgstr "(第一个)" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(last)" msgstr "(最后一个)" -#: ../src/gui/presets.c:1165 +#: ../src/gui/presets.c:1152 #, c-format msgid "" "preset %s\n" @@ -10880,63 +11361,63 @@ "预置 %s\n" "%s" -#: ../src/gui/presets.c:1166 +#: ../src/gui/presets.c:1153 msgid "no presets" msgstr "无预置" -#: ../src/gui/presets.c:1199 ../src/iop/basecurve.c:528 -#: ../src/iop/basecurve.c:532 ../src/iop/basecurve.c:535 +#: ../src/gui/presets.c:1188 ../src/iop/basecurve.c:575 +#: ../src/iop/basecurve.c:579 ../src/iop/basecurve.c:582 msgid "display-referred default" msgstr "基于显示工作流默认值" -#: ../src/gui/presets.c:1201 ../src/iop/channelmixerrgb.c:332 -#: ../src/iop/channelmixerrgb.c:336 ../src/iop/channelmixerrgb.c:339 -#: ../src/iop/exposure.c:297 ../src/iop/exposure.c:301 -#: ../src/iop/exposure.c:304 ../src/iop/filmicrgb.c:3248 -#: ../src/iop/filmicrgb.c:3252 ../src/iop/filmicrgb.c:3255 -#: ../src/iop/sigmoid.c:134 ../src/iop/sigmoid.c:138 ../src/iop/sigmoid.c:141 +#: ../src/gui/presets.c:1190 ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:400 ../src/iop/channelmixerrgb.c:403 +#: ../src/iop/exposure.c:319 ../src/iop/exposure.c:323 +#: ../src/iop/exposure.c:326 ../src/iop/filmicrgb.c:3311 +#: ../src/iop/filmicrgb.c:3315 ../src/iop/filmicrgb.c:3318 +#: ../src/iop/sigmoid.c:240 ../src/iop/sigmoid.c:243 ../src/iop/sigmoid.c:245 msgid "scene-referred default" msgstr "基于场景工作流默认值" -#: ../src/gui/presets.c:1393 ../src/libs/modulegroups.c:3781 -#: ../src/libs/modulegroups.c:3790 +#: ../src/gui/presets.c:1394 ../src/libs/modulegroups.c:3783 +#: ../src/libs/modulegroups.c:3792 msgid "manage module layouts" msgstr "管理模块布局" -#: ../src/gui/presets.c:1402 +#: ../src/gui/presets.c:1403 msgid "manage quick presets" msgstr "管理快速预设" -#: ../src/gui/presets.c:1586 +#: ../src/gui/presets.c:1587 msgid "manage quick presets list..." msgstr "管理快速预设列表..." -#: ../src/gui/presets.c:1727 +#: ../src/gui/presets.c:1728 msgid "(default)" msgstr "(默认)" -#: ../src/gui/presets.c:1754 +#: ../src/gui/presets.c:1755 msgid "disabled: wrong module version" msgstr "已禁用:错误的模块版本" -#: ../src/gui/presets.c:1776 ../src/libs/lib.c:551 +#: ../src/gui/presets.c:1777 ../src/libs/lib.c:551 msgid "edit this preset.." -msgstr "编辑此预置……" +msgstr "编辑此预置..." -#: ../src/gui/presets.c:1781 ../src/libs/lib.c:555 +#: ../src/gui/presets.c:1782 ../src/libs/lib.c:555 msgid "delete this preset" msgstr "删除此预置" -#: ../src/gui/presets.c:1788 ../src/libs/lib.c:563 +#: ../src/gui/presets.c:1789 ../src/libs/lib.c:563 msgid "store new preset.." -msgstr "存为新的预置……" +msgstr "存为新的预置..." -#: ../src/gui/presets.c:1796 ../src/libs/lib.c:576 +#: ../src/gui/presets.c:1797 ../src/libs/lib.c:576 msgid "update preset" msgstr "更新预置" #: ../src/gui/styles_dialog.c:221 ../src/libs/styles.c:437 -#: ../src/libs/styles.c:620 +#: ../src/libs/styles.c:622 msgid "overwrite style?" msgstr "覆盖样式?" @@ -10960,128 +11441,152 @@ msgid "style %s was successfully saved" msgstr "样式 %s 保存成功" -#: ../src/gui/styles_dialog.c:505 +#: ../src/gui/styles_dialog.c:512 msgid "edit style" msgstr "编辑样式" -#: ../src/gui/styles_dialog.c:506 +#: ../src/gui/styles_dialog.c:513 msgid "duplicate style" msgstr "创建样式副本" -#: ../src/gui/styles_dialog.c:507 +#: ../src/gui/styles_dialog.c:514 msgid "creates a duplicate of the style before applying changes" msgstr "应用改变前创建一个此样式的副本" -#: ../src/gui/styles_dialog.c:511 +#: ../src/gui/styles_dialog.c:518 msgid "create new style" msgstr "创建新样式" -#: ../src/gui/styles_dialog.c:549 +#: ../src/gui/styles_dialog.c:557 msgid "enter a name for the new style" msgstr "输入新样式的名称" -#: ../src/gui/styles_dialog.c:554 +#: ../src/gui/styles_dialog.c:565 msgid "enter a description for the new style, this description is searchable" msgstr "输入新样式的描述,该描述可被搜索到" -#: ../src/gui/styles_dialog.c:593 +#: ../src/gui/styles_dialog.c:605 msgid "keep" msgstr "保留" -#: ../src/gui/styles_dialog.c:820 +#: ../src/gui/styles_dialog.c:832 msgid "can't create style out of unaltered image" msgstr "不能从未改变的图像创建样式" -#: ../src/imageio/imageio.c:804 +#: ../src/imageio/imageio.c:816 #, c-format msgid "" "failed to allocate memory for %s, please lower the threads used for export " "or buy more memory." msgstr "为 %s 分配内存失败,请减少用于导出的线程数,或者扩充您的内存。" -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "thumbnail export" msgstr "缩略图导出" -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "export" msgstr "导出" -#: ../src/imageio/imageio.c:819 +#: ../src/imageio/imageio.c:831 #, c-format msgid "cannot find the style '%s' to apply during export." msgstr "无法找到并应用样式 '%s' 用于导出。" -#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:536 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/imageio_libraw.c:295 +msgid "" +"<span foreground='red'><b>WARNING</b></span>: camera is not fully supported!" +msgstr "<span foreground='red'><b>警告</b></span>:此相机的支持不完全!" + +#: ../src/imageio/imageio_libraw.c:297 +#, c-format +msgid "" +"colors for `%s' could be misrepresented,\n" +"and edits might not be compatible with future versions." +msgstr "" +"‘%s’的颜色可能无法被准确表示,\n" +"现在做出的编辑可能无法和后续版本兼容。" + +#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:641 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "8 bit" msgstr "8 bit" -#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:567 msgid "10 bit" msgstr "10 bit" -#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:567 msgid "12 bit" msgstr "12 bit" -#: ../src/imageio/format/avif.c:431 +#: ../src/imageio/format/avif.c:110 ../src/imageio/format/webp.c:416 +msgid "lossless" +msgstr "无损" + +#: ../src/imageio/format/avif.c:112 ../src/imageio/format/webp.c:416 +msgid "lossy" +msgstr "有损" + +#: ../src/imageio/format/avif.c:463 msgid "invalid AVIF bit depth!" msgstr "无效的 AVIF 位深!" -#: ../src/imageio/format/avif.c:694 -msgid "AVIF" -msgstr "AVIF" - #. Bit depth combo box -#: ../src/imageio/format/avif.c:766 ../src/imageio/format/exr.cc:565 -#: ../src/imageio/format/jxl.c:555 ../src/imageio/format/pdf.c:661 -#: ../src/imageio/format/png.c:534 ../src/imageio/format/tiff.c:843 +#: ../src/imageio/format/avif.c:800 ../src/imageio/format/exr.cc:601 +#: ../src/imageio/format/jxl.c:566 ../src/imageio/format/pdf.c:661 +#: ../src/imageio/format/png.c:639 ../src/imageio/format/tiff.c:900 #: ../src/imageio/format/xcf.c:354 msgid "bit depth" msgstr "位深" -#: ../src/imageio/format/avif.c:779 +#: ../src/imageio/format/avif.c:813 msgid "color information stored in an image, higher is better" msgstr "图像中存储的色彩数据量,越高质量越好" -#: ../src/imageio/format/avif.c:787 +#. +#. * Color mode combo box +#. +#. shortfile option combo box +#: ../src/imageio/format/avif.c:820 ../src/imageio/format/tiff.c:944 +msgid "B&W as grayscale" +msgstr "黑白图像作为灰度" + +#: ../src/imageio/format/avif.c:821 ../src/imageio/format/tiff.c:945 msgid "saving as grayscale will reduce the size for black & white images" msgstr "以灰度存储可以降低黑白图像的大小" -#: ../src/imageio/format/avif.c:789 -msgid "RGB colors" -msgstr "RGB 颜色" - -#: ../src/imageio/format/avif.c:789 -msgid "grayscale" -msgstr "灰度" - #. #. * Tiling combo box #. -#: ../src/imageio/format/avif.c:799 +#: ../src/imageio/format/avif.c:832 msgid "tiling" msgstr "分块" -#: ../src/imageio/format/avif.c:800 +#: ../src/imageio/format/avif.c:833 msgid "" "tile an image into segments.\n" "\n" -"makes encoding faster. the impact on quality reduction is negligible, but " -"increases the file size." +"makes encoding faster, but increases the file size. the loss of image " +"quality is negligible." msgstr "" -"将图像拆分成块以加速编码。\n" -"对图像质量的影响可以忽略不计,但是文件大小会有所增加。" +"将图像拆分成块处理。\n" +"\n" +"可以加速编码但文件大小会有所增加。对图像质量的影响可以忽略不计。" -#: ../src/imageio/format/avif.c:817 ../src/imageio/format/webp.c:383 -msgid "compression type" -msgstr "压缩方式" +#. compression +#. Compression method combo box +#: ../src/imageio/format/avif.c:850 ../src/imageio/format/exr.cc:611 +#: ../src/imageio/format/pdf.c:676 ../src/imageio/format/png.c:653 +#: ../src/imageio/format/tiff.c:923 ../src/imageio/format/webp.c:414 +#: ../src/libs/masks.c:111 +msgid "compression" +msgstr "压缩" -#: ../src/imageio/format/avif.c:825 +#: ../src/imageio/format/avif.c:858 msgid "the compression for the image" msgstr "图像压缩方式" @@ -11090,36 +11595,30 @@ #. step #. default #. digits -#: ../src/imageio/format/avif.c:842 ../src/imageio/format/j2k.c:661 -#: ../src/imageio/format/jpeg.c:587 ../src/imageio/format/jxl.c:579 -#: ../src/imageio/format/webp.c:394 ../src/libs/camera.c:564 +#: ../src/imageio/format/avif.c:878 ../src/imageio/format/j2k.c:679 +#: ../src/imageio/format/jpeg.c:584 ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/webp.c:425 ../src/libs/camera.c:564 msgid "quality" msgstr "品质" -#: ../src/imageio/format/avif.c:847 +#: ../src/imageio/format/avif.c:881 msgid "" "the quality of an image, less quality means fewer details.\n" "\n" -"the following applies only to lossy setting\n" -"\n" -"pixelformat based on quality:\n" +"pixel format is controlled by quality:\n" "\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" msgstr "" "图像品质,较低的值意味着较少的细节。\n" "\n" -"以下信息仅适用于有损压缩\n" -"\n" "根据质量选择像素格式\n" "\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +" 5 - 80:YUV420\n" +" 81 - 90:YUV422\n" +" 91 -100:YUV444" #: ../src/imageio/format/copy.c:109 ../src/libs/copy_history.c:370 -#: ../src/libs/image.c:583 +#: ../src/libs/image.c:647 msgid "copy" msgstr "复制" @@ -11135,120 +11634,140 @@ msgid "the selected output profile doesn't work well with EXR" msgstr "选择的输出色彩配置无法在 exr 下正常工作" -#: ../src/imageio/format/exr.cc:540 +#: ../src/imageio/format/exr.cc:576 msgid "OpenEXR" msgstr "OpenEXR" -#: ../src/imageio/format/exr.cc:567 +#: ../src/imageio/format/exr.cc:603 msgid "16 bit (float)" msgstr "16 bit(浮点)" -#: ../src/imageio/format/exr.cc:567 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/format/exr.cc:603 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "32 bit (float)" msgstr "32 bit(浮点)" -#. compression -#. Compression method combo box -#: ../src/imageio/format/exr.cc:575 ../src/imageio/format/pdf.c:676 -#: ../src/imageio/format/png.c:548 ../src/imageio/format/tiff.c:866 -#: ../src/libs/masks.c:110 -msgid "compression" -msgstr "压缩" - -#: ../src/imageio/format/exr.cc:577 ../src/imageio/format/pdf.c:682 -#: ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/exr.cc:613 ../src/imageio/format/pdf.c:682 +#: ../src/imageio/format/tiff.c:924 msgid "uncompressed" msgstr "未压缩" -#: ../src/imageio/format/exr.cc:578 +#: ../src/imageio/format/exr.cc:614 msgid "RLE" msgstr "RLE" -#: ../src/imageio/format/exr.cc:579 +#: ../src/imageio/format/exr.cc:615 msgid "ZIPS" msgstr "ZIPS" -#: ../src/imageio/format/exr.cc:580 +#: ../src/imageio/format/exr.cc:616 msgid "ZIP" msgstr "ZIP" -#: ../src/imageio/format/exr.cc:581 +#: ../src/imageio/format/exr.cc:617 msgid "PIZ" msgstr "PIZ" -#: ../src/imageio/format/exr.cc:582 +#: ../src/imageio/format/exr.cc:618 msgid "PXR24" msgstr "PXR24" -#: ../src/imageio/format/exr.cc:583 +#: ../src/imageio/format/exr.cc:619 msgid "B44" msgstr "B44" -#: ../src/imageio/format/exr.cc:584 +#: ../src/imageio/format/exr.cc:620 msgid "B44A" msgstr "B44A" -#: ../src/imageio/format/exr.cc:585 +#: ../src/imageio/format/exr.cc:621 msgid "DWAA" msgstr "DWAA" -#: ../src/imageio/format/exr.cc:586 +#: ../src/imageio/format/exr.cc:622 msgid "DWAB" msgstr "DWAB" -#: ../src/imageio/format/j2k.c:618 +#: ../src/imageio/format/j2k.c:648 msgid "JPEG 2000 (12-bit)" msgstr "JPEG 2000 (12-bit)" -#: ../src/imageio/format/j2k.c:652 -msgid "jp2" -msgstr "jp2" - -#: ../src/imageio/format/j2k.c:667 +#: ../src/imageio/format/j2k.c:684 msgid "DCP mode" msgstr "DCP 模式" -#: ../src/imageio/format/j2k.c:670 +#: ../src/imageio/format/j2k.c:687 msgid "Cinema2K, 24FPS" msgstr "Cinema2K, 24FPS" -#: ../src/imageio/format/j2k.c:671 +#: ../src/imageio/format/j2k.c:688 msgid "Cinema2K, 48FPS" msgstr "Cinema2K, 48FPS" -#: ../src/imageio/format/j2k.c:672 +#: ../src/imageio/format/j2k.c:689 msgid "Cinema4K, 24FPS" msgstr "Cinema4K, 24FPS" -#: ../src/imageio/format/jpeg.c:564 +#: ../src/imageio/format/jpeg.c:546 msgid "JPEG (8-bit)" msgstr "JPEG (8-bit)" -#: ../src/imageio/format/jxl.c:471 -msgid "JPEG XL" -msgstr "JPEG XL" +#: ../src/imageio/format/jpeg.c:594 +msgid "chroma subsampling" +msgstr "色度抽样" + +#: ../src/imageio/format/jpeg.c:595 +msgid "" +"chroma subsampling setting for JPEG encoder.\n" +"auto - use subsampling determined by the quality value\n" +"4:4:4 - no chroma subsampling\n" +"4:4:0 - color sampling rate halved vertically\n" +"4:2:2 - color sampling rate halved horizontally\n" +"4:2:0 - color sampling rate halved horizontally and vertically" +msgstr "" +"JPEG 编码器的色度抽样设置。\n" +"自动 - 从质量数值自动计算\n" +"4:4:4 - 不使用色度抽样\n" +"4:4:0 - 减半纵向色度抽样频率\n" +"4:2:2 - 减半横向色度抽样频率\n" +"4:2:0 - 减半纵向和横向色度抽样频率" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:4" +msgstr "4:4:4" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:0" +msgstr "4:4:0" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:2" +msgstr "4:2:2" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:0" +msgstr "4:2:0" -#: ../src/imageio/format/jxl.c:556 ../src/imageio/format/pdf.c:81 -#: ../src/imageio/format/png.c:536 ../src/imageio/format/tiff.c:847 +#: ../src/imageio/format/jxl.c:567 ../src/imageio/format/pdf.c:81 +#: ../src/imageio/format/png.c:641 ../src/imageio/format/tiff.c:904 #: ../src/imageio/format/xcf.c:357 msgid "16 bit" msgstr "16 bit" #. Pixel format combo box -#: ../src/imageio/format/jxl.c:562 ../src/imageio/format/tiff.c:852 +#: ../src/imageio/format/jxl.c:573 ../src/imageio/format/tiff.c:909 msgid "pixel type" msgstr "像素类型" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "unsigned integer" msgstr "无符号整数" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "floating point" msgstr "浮点小数" -#: ../src/imageio/format/jxl.c:580 +#: ../src/imageio/format/jxl.c:591 msgid "" "the quality of the output image\n" "0-29 = very lossy\n" @@ -11260,11 +11779,11 @@ "30-99 = 接近 JPEG 质量\n" "100 = 无损(仅适用于整数像素)" -#: ../src/imageio/format/jxl.c:589 +#: ../src/imageio/format/jxl.c:600 msgid "encoding color profile" msgstr "用于编码的色彩配置" -#: ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/jxl.c:601 msgid "" "the color profile used by the encoder\n" "permit internal XYB color space conversion for more efficient lossy " @@ -11276,30 +11795,30 @@ "允许内置 XYB 色彩空间转换以提高有损压缩效率\n" "禁止转换以保持图像原始色彩空间(无损导出默认使用此项)" -#: ../src/imageio/format/jxl.c:593 +#: ../src/imageio/format/jxl.c:604 msgid "internal" msgstr "内部转换空间" -#: ../src/imageio/format/jxl.c:593 ../src/libs/duplicate.c:399 -#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:782 +#: ../src/imageio/format/jxl.c:604 ../src/libs/duplicate.c:405 +#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:840 msgid "original" msgstr "原始色彩空间" -#: ../src/imageio/format/jxl.c:607 +#: ../src/imageio/format/jxl.c:618 msgid "encoding effort" msgstr "编码力度" -#: ../src/imageio/format/jxl.c:608 +#: ../src/imageio/format/jxl.c:619 msgid "" "the effort used to encode the image, higher efforts will have better results " "at the expense of longer encoding times" msgstr "编码器力度,力度越大图像质量越好,但编码时间更长" -#: ../src/imageio/format/jxl.c:619 +#: ../src/imageio/format/jxl.c:630 msgid "decoding speed" msgstr "解码速度" -#: ../src/imageio/format/jxl.c:620 +#: ../src/imageio/format/jxl.c:631 msgid "the preferred decoding speed with some sacrifice of quality" msgstr "偏好的解码速度,可能会牺牲质量" @@ -11311,9 +11830,9 @@ msgid "invalid border size, using 0" msgstr "无效的边距大小,已默认为 0" -#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:316 -#: ../src/imageio/storage/email.c:137 ../src/imageio/storage/gallery.c:331 -#: ../src/imageio/storage/gallery.c:370 ../src/imageio/storage/piwigo.c:1202 +#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:460 +#: ../src/imageio/storage/email.c:187 ../src/imageio/storage/gallery.c:409 +#: ../src/imageio/storage/gallery.c:450 ../src/imageio/storage/piwigo.c:1236 #, c-format msgid "could not export to file `%s'!" msgstr "无法导出至文件“%s”!" @@ -11367,8 +11886,8 @@ "例如:“10 mm”或“1 inch”" #. dpi -#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1127 -#: ../src/libs/export.c:1150 +#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1218 +#: ../src/libs/export.c:1246 msgid "dpi" msgstr "dpi" @@ -11428,7 +11947,7 @@ "不压缩 —— 更快但文件更大\n" "deflate —— 文件更小但导出更慢" -#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:924 msgid "deflate" msgstr "deflate" @@ -11459,60 +11978,23 @@ msgid "debug" msgstr "调试" -#: ../src/imageio/format/pfm.c:120 -msgid "PFM" -msgstr "PFM" - -#: ../src/imageio/format/png.c:493 -msgid "PNG" -msgstr "PNG" - #: ../src/imageio/format/ppm.c:111 msgid "PPM (16-bit)" msgstr "PPM(16-bit)" -#: ../src/imageio/format/tiff.c:228 -msgid "will export as a grayscale image" -msgstr "将以灰阶图像导出" +#: ../src/imageio/format/tiff.c:246 +msgid "not a B&W image, will not export as grayscale" +msgstr "并非黑白图像,无法以灰阶图像导出" -#: ../src/imageio/format/tiff.c:774 -msgid "TIFF" -msgstr "TIFF" - -#: ../src/imageio/format/tiff.c:868 +#: ../src/imageio/format/tiff.c:925 msgid "deflate with predictor" msgstr "deflate 预测器" -#: ../src/imageio/format/tiff.c:878 +#: ../src/imageio/format/tiff.c:935 msgid "compression level" msgstr "压缩级别" -#. shortfile option combo box -#: ../src/imageio/format/tiff.c:887 -msgid "b&w image" -msgstr "黑白图片" - -#: ../src/imageio/format/tiff.c:888 -msgid "write RGB colors" -msgstr "写入 RGB 颜色" - -#: ../src/imageio/format/tiff.c:888 -msgid "write grayscale" -msgstr "写入灰阶" - -#: ../src/imageio/format/webp.c:349 -msgid "WebP" -msgstr "WebP" - -#: ../src/imageio/format/webp.c:385 -msgid "lossy" -msgstr "有损" - -#: ../src/imageio/format/webp.c:385 -msgid "lossless" -msgstr "无损" - -#: ../src/imageio/format/webp.c:397 +#: ../src/imageio/format/webp.c:426 msgid "" "for lossy, 0 gives the smallest size and 100 the best quality.\n" "for lossless, 0 is the fastest but gives larger files compared\n" @@ -11521,11 +12003,11 @@ "对于有损图像,0 提供最小的文件尺寸,100 提供最佳的图像质量。\n" "对于无损图像,0 提供最快的导出速度,100 提供最小的文件尺寸。" -#: ../src/imageio/format/webp.c:407 +#: ../src/imageio/format/webp.c:436 msgid "image hint" msgstr "图片类型提示" -#: ../src/imageio/format/webp.c:408 +#: ../src/imageio/format/webp.c:437 msgid "" "image characteristics hint for the underlying encoder.\n" "picture: digital picture, like portrait, inner shot\n" @@ -11537,15 +12019,15 @@ "照片:使用自然照明的户外照片\n" "图形:离散色调的图像,如图形、地图块等" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "picture" msgstr "图片" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "photo" msgstr "照片" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "graphic" msgstr "图形" @@ -11553,12 +12035,12 @@ msgid "XCF" msgstr "XCF" -#: ../src/imageio/storage/disk.c:71 ../src/libs/export.c:1040 +#: ../src/imageio/storage/disk.c:74 ../src/libs/export.c:1119 msgid "file on disk" msgstr "磁盘上的文件" -#: ../src/imageio/storage/disk.c:169 ../src/imageio/storage/gallery.c:155 -#: ../src/imageio/storage/latex.c:154 +#: ../src/imageio/storage/disk.c:251 ../src/imageio/storage/gallery.c:204 +#: ../src/imageio/storage/latex.c:191 msgid "" "enter the path where to put exported images\n" "variables support bash like string manipulation\n" @@ -11568,51 +12050,60 @@ "支持 bash 格式的变量操作\n" "输入字符 '$(' 以激活自动补全和查看变量列表" -#: ../src/imageio/storage/disk.c:182 ../src/imageio/storage/piwigo.c:1079 +#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/piwigo.c:1113 msgid "on conflict" msgstr "文件冲突时" -#: ../src/imageio/storage/disk.c:185 +#: ../src/imageio/storage/disk.c:268 msgid "create unique filename" msgstr "创建不重复的文件名" #. DT_COPY_HISTORY_APPEND -#: ../src/imageio/storage/disk.c:186 ../src/imageio/storage/piwigo.c:1083 -#: ../src/libs/copy_history.c:404 ../src/libs/image.c:601 -#: ../src/libs/styles.c:440 ../src/libs/styles.c:623 ../src/libs/styles.c:850 +#: ../src/imageio/storage/disk.c:269 ../src/imageio/storage/piwigo.c:1117 +#: ../src/libs/copy_history.c:404 ../src/libs/image.c:670 +#: ../src/libs/styles.c:854 msgid "overwrite" msgstr "覆盖" -#: ../src/imageio/storage/disk.c:187 ../src/imageio/storage/piwigo.c:1081 -#: ../src/libs/styles.c:439 ../src/libs/styles.c:622 +#: ../src/imageio/storage/disk.c:270 +msgid "overwrite if changed" +msgstr "若发生更改则覆盖" + +#: ../src/imageio/storage/disk.c:271 ../src/imageio/storage/piwigo.c:1115 msgid "skip" msgstr "跳过" -#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/gallery.c:253 -#: ../src/imageio/storage/latex.c:252 +#: ../src/imageio/storage/disk.c:371 ../src/imageio/storage/gallery.c:326 +#: ../src/imageio/storage/latex.c:289 #, c-format msgid "could not create directory `%s'!" msgstr "无法创建目录“%s”!" -#: ../src/imageio/storage/disk.c:272 +#: ../src/imageio/storage/disk.c:382 #, c-format msgid "could not write to directory `%s'!" msgstr "无法写入目录“%s”!" -#: ../src/imageio/storage/disk.c:302 +#: ../src/imageio/storage/disk.c:419 #, c-format msgid "%d/%d skipping `%s'" msgid_plural "%d/%d skipping `%s'" msgstr[0] "%d/%d,已跳过“%s”" -#: ../src/imageio/storage/disk.c:321 ../src/imageio/storage/email.c:144 -#: ../src/imageio/storage/gallery.c:378 ../src/imageio/storage/latex.c:340 +#: ../src/imageio/storage/disk.c:441 +#, c-format +msgid "%d/%d skipping (not modified since export) `%s'" +msgid_plural "%d/%d skipping (not modified since export) `%s'" +msgstr[0] "%d/%d,已跳过上次导出后未修改的“%s”" + +#: ../src/imageio/storage/disk.c:465 ../src/imageio/storage/email.c:194 +#: ../src/imageio/storage/gallery.c:458 ../src/imageio/storage/latex.c:377 #, c-format msgid "%d/%d exported to `%s'" msgid_plural "%d/%d exported to `%s'" -msgstr[0] "%d/%d 已导出到“%s”" +msgstr[0] "%d/%d,已导出到“%s”" -#: ../src/imageio/storage/disk.c:380 +#: ../src/imageio/storage/disk.c:530 msgid "" "you are going to export in overwrite mode, this will overwrite any existing " "images\n" @@ -11623,23 +12114,33 @@ "\n" "是否继续?" -#: ../src/imageio/storage/email.c:52 +#: ../src/imageio/storage/email.c:57 msgid "send as email" msgstr "作为邮件发送" -#: ../src/imageio/storage/email.c:198 +#. Unlikely in normal Windows installations, but let's notify the user if it happens +#: ../src/imageio/storage/email.c:265 +msgid "could not open mapi32.dll" +msgstr "无法打开 mapi32.dll" + +#. Even more unlikely +#: ../src/imageio/storage/email.c:275 +msgid "could not get SendMail function" +msgstr "无法获取 SendMail 函数" + +#: ../src/imageio/storage/email.c:319 ../src/imageio/storage/email.c:409 msgid "images exported from darktable" msgstr "从 darktable 导出的图像" -#: ../src/imageio/storage/email.c:251 +#: ../src/imageio/storage/email.c:388 ../src/imageio/storage/email.c:467 msgid "could not launch email client!" msgstr "无法启动电子邮件客户端!" -#: ../src/imageio/storage/gallery.c:73 +#: ../src/imageio/storage/gallery.c:76 msgid "website gallery" msgstr "网站展示" -#: ../src/imageio/storage/gallery.c:171 +#: ../src/imageio/storage/gallery.c:224 msgid "enter the title of the website" msgstr "输入网站标题" @@ -11647,149 +12148,148 @@ msgid "LaTeX book template" msgstr "LaTeX book 模板" -#: ../src/imageio/storage/latex.c:172 +#: ../src/imageio/storage/latex.c:209 msgid "enter the title of the book" msgstr "输入书籍标题" -#: ../src/imageio/storage/piwigo.c:522 +#: ../src/imageio/storage/piwigo.c:525 msgid "authenticated" msgstr "已授权" -#: ../src/imageio/storage/piwigo.c:532 ../src/imageio/storage/piwigo.c:547 -#: ../src/imageio/storage/piwigo.c:559 +#: ../src/imageio/storage/piwigo.c:536 ../src/imageio/storage/piwigo.c:552 +#: ../src/imageio/storage/piwigo.c:565 msgid "not authenticated" msgstr "未授权" -#: ../src/imageio/storage/piwigo.c:538 +#: ../src/imageio/storage/piwigo.c:542 msgid "not authenticated, cannot reach server" msgstr "未授权,无法连接至服务器" -#: ../src/imageio/storage/piwigo.c:587 ../src/imageio/storage/piwigo.c:675 +#: ../src/imageio/storage/piwigo.c:595 ../src/imageio/storage/piwigo.c:684 msgid "create new album" msgstr "创建新相册" -#: ../src/imageio/storage/piwigo.c:676 +#: ../src/imageio/storage/piwigo.c:685 msgid "---" msgstr "---" -#: ../src/imageio/storage/piwigo.c:721 +#: ../src/imageio/storage/piwigo.c:735 msgid "cannot refresh albums" msgstr "无法刷新相册列表" -#: ../src/imageio/storage/piwigo.c:929 +#: ../src/imageio/storage/piwigo.c:950 msgid "Piwigo" msgstr "Piwigo" -#: ../src/imageio/storage/piwigo.c:954 +#: ../src/imageio/storage/piwigo.c:976 msgid "accounts" msgstr "账户" -#: ../src/imageio/storage/piwigo.c:972 ../src/imageio/storage/piwigo.c:978 +#: ../src/imageio/storage/piwigo.c:995 ../src/imageio/storage/piwigo.c:1004 msgid "server" msgstr "服务器" -#: ../src/imageio/storage/piwigo.c:974 ../src/imageio/storage/piwigo.c:989 +#: ../src/imageio/storage/piwigo.c:998 msgid "" "the server name\n" "default protocol is https\n" -"specify http:// if non secure server" +"specify insecure protocol http:// explicitly if that protocol is required" msgstr "" "服务器名称\n" "默认协议为 https\n" -"服务器不支持加密连接时需要指定“http://”" +"服务器只能使用明文连接时需要指定“http://”" -#: ../src/imageio/storage/piwigo.c:987 ../src/imageio/storage/piwigo.c:993 +#: ../src/imageio/storage/piwigo.c:1014 ../src/imageio/storage/piwigo.c:1021 msgid "user" msgstr "用户" -#: ../src/imageio/storage/piwigo.c:1000 ../src/imageio/storage/piwigo.c:1005 +#: ../src/imageio/storage/piwigo.c:1029 ../src/imageio/storage/piwigo.c:1034 msgid "password" msgstr "密码" #. login button -#: ../src/imageio/storage/piwigo.c:1010 +#: ../src/imageio/storage/piwigo.c:1039 msgid "login" msgstr "登入" -#: ../src/imageio/storage/piwigo.c:1011 +#: ../src/imageio/storage/piwigo.c:1040 msgid "Piwigo login" msgstr "Piwigo 登陆" #. permissions list -#: ../src/imageio/storage/piwigo.c:1025 +#: ../src/imageio/storage/piwigo.c:1056 msgid "visible to" msgstr "可见性" -#: ../src/imageio/storage/piwigo.c:1027 +#: ../src/imageio/storage/piwigo.c:1058 msgid "everyone" msgstr "所有人" -#: ../src/imageio/storage/piwigo.c:1028 +#: ../src/imageio/storage/piwigo.c:1059 msgid "contacts" msgstr "联系人" -#: ../src/imageio/storage/piwigo.c:1029 +#: ../src/imageio/storage/piwigo.c:1060 msgid "friends" msgstr "朋友" -#: ../src/imageio/storage/piwigo.c:1030 +#: ../src/imageio/storage/piwigo.c:1061 msgid "family" msgstr "家庭" -#: ../src/imageio/storage/piwigo.c:1031 +#: ../src/imageio/storage/piwigo.c:1062 msgid "you" msgstr "你" #. Available albums -#: ../src/imageio/storage/piwigo.c:1038 +#: ../src/imageio/storage/piwigo.c:1069 msgid "album" msgstr "相册" -#: ../src/imageio/storage/piwigo.c:1045 +#: ../src/imageio/storage/piwigo.c:1076 msgid "refresh album list" msgstr "刷新相册列表" #. Album title -#: ../src/imageio/storage/piwigo.c:1063 +#: ../src/imageio/storage/piwigo.c:1096 msgid "new album" msgstr "新相册" -#. parent album list #. Available albums -#: ../src/imageio/storage/piwigo.c:1071 +#: ../src/imageio/storage/piwigo.c:1105 msgid "parent album" msgstr "上级相册" -#: ../src/imageio/storage/piwigo.c:1075 +#: ../src/imageio/storage/piwigo.c:1109 msgid "click login button to start" msgstr "要开始,点击“登录”按钮" -#: ../src/imageio/storage/piwigo.c:1080 +#: ../src/imageio/storage/piwigo.c:1114 msgid "don't check" msgstr "不检查" -#: ../src/imageio/storage/piwigo.c:1082 +#: ../src/imageio/storage/piwigo.c:1116 msgid "update metadata" msgstr "更新元数据" -#: ../src/imageio/storage/piwigo.c:1221 +#: ../src/imageio/storage/piwigo.c:1255 msgid "cannot create a new Piwigo album!" msgstr "无法创建新 Piwigo 相册!" -#: ../src/imageio/storage/piwigo.c:1240 +#: ../src/imageio/storage/piwigo.c:1274 msgid "could not update to Piwigo!" msgstr "无法上传更改到 Piwigo!" -#: ../src/imageio/storage/piwigo.c:1255 +#: ../src/imageio/storage/piwigo.c:1290 msgid "could not upload to Piwigo!" msgstr "无法上传到 Piwigo!" -#: ../src/imageio/storage/piwigo.c:1284 +#: ../src/imageio/storage/piwigo.c:1319 #, c-format msgid "%d/%d skipped (already exists)" msgstr "%d/%d 已跳过(已存在)" -#: ../src/imageio/storage/piwigo.c:1290 +#: ../src/imageio/storage/piwigo.c:1325 #, c-format msgid "%d/%d exported to Piwigo webalbum" msgid_plural "%d/%d exported to Piwigo webalbum" @@ -11808,54 +12308,54 @@ msgstr "旋转或扭曲透视" #: ../src/iop/ashift.c:131 ../src/iop/channelmixer.c:139 -#: ../src/iop/channelmixerrgb.c:232 ../src/iop/clipping.c:320 -#: ../src/iop/colorbalance.c:161 ../src/iop/colorbalancergb.c:185 +#: ../src/iop/channelmixerrgb.c:233 ../src/iop/clipping.c:363 +#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:185 #: ../src/iop/colorchecker.c:130 ../src/iop/colorcorrection.c:77 -#: ../src/iop/crop.c:144 ../src/iop/lut3d.c:141 +#: ../src/iop/crop.c:134 ../src/iop/lut3d.c:142 ../src/iop/primaries.c:80 msgid "corrective or creative" msgstr "纠正或创作" -#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:148 -#: ../src/iop/bilateral.cc:101 ../src/iop/bilateral.cc:103 -#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:233 -#: ../src/iop/channelmixerrgb.c:235 ../src/iop/clipping.c:321 -#: ../src/iop/clipping.c:323 ../src/iop/colorbalancergb.c:186 -#: ../src/iop/colorin.c:136 ../src/iop/crop.c:145 ../src/iop/crop.c:147 -#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:728 -#: ../src/iop/denoiseprofile.c:730 ../src/iop/diffuse.c:146 +#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:174 +#: ../src/iop/bilateral.cc:103 ../src/iop/bilateral.cc:105 +#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:236 ../src/iop/clipping.c:364 +#: ../src/iop/clipping.c:366 ../src/iop/colorbalancergb.c:186 +#: ../src/iop/colorin.c:136 ../src/iop/crop.c:135 ../src/iop/crop.c:137 +#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:780 +#: ../src/iop/denoiseprofile.c:782 ../src/iop/diffuse.c:146 #: ../src/iop/diffuse.c:148 ../src/iop/exposure.c:132 ../src/iop/exposure.c:134 #: ../src/iop/flip.c:111 ../src/iop/flip.c:112 ../src/iop/hazeremoval.c:113 -#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:242 ../src/iop/lens.cc:244 -#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/retouch.c:210 -#: ../src/iop/retouch.c:212 ../src/iop/sigmoid.c:103 -#: ../src/iop/splittoning.c:104 ../src/iop/splittoning.c:106 -#: ../src/iop/spots.c:70 ../src/iop/spots.c:72 ../src/iop/toneequal.c:325 -#: ../src/iop/velvia.c:106 ../src/iop/velvia.c:108 +#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:263 ../src/iop/lens.cc:265 +#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/primaries.c:81 +#: ../src/iop/primaries.c:83 ../src/iop/retouch.c:210 ../src/iop/retouch.c:212 +#: ../src/iop/sigmoid.c:209 ../src/iop/splittoning.c:106 +#: ../src/iop/splittoning.c:108 ../src/iop/spots.c:70 ../src/iop/spots.c:72 +#: ../src/iop/toneequal.c:333 ../src/iop/velvia.c:99 ../src/iop/velvia.c:101 msgid "linear, RGB, scene-referred" msgstr "线性、RGB、基于场景" -#: ../src/iop/ashift.c:133 ../src/iop/borders.c:200 ../src/iop/clipping.c:322 -#: ../src/iop/crop.c:146 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 +#: ../src/iop/ashift.c:133 ../src/iop/borders.c:325 ../src/iop/clipping.c:365 +#: ../src/iop/crop.c:136 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 msgid "geometric, RGB" msgstr "几何、RGB" -#: ../src/iop/ashift.c:2820 +#: ../src/iop/ashift.c:2866 msgid "automatic cropping failed" msgstr "自动剪裁失败" -#: ../src/iop/ashift.c:3234 ../src/iop/ashift.c:3286 ../src/iop/ashift.c:3334 +#: ../src/iop/ashift.c:3276 ../src/iop/ashift.c:3328 ../src/iop/ashift.c:3375 msgid "data pending - please repeat" msgstr "数据待定 - 请重复" -#: ../src/iop/ashift.c:3243 +#: ../src/iop/ashift.c:3285 msgid "could not detect structural data in image" msgstr "无法检测出图像中的结构数据" -#: ../src/iop/ashift.c:3255 +#: ../src/iop/ashift.c:3297 msgid "could not run outlier removal" msgstr "无法运行离群点移除" -#: ../src/iop/ashift.c:3434 +#: ../src/iop/ashift.c:3474 #, c-format msgid "" "not enough structure for automatic correction\n" @@ -11864,41 +12364,41 @@ "没有足够的结构进行自动校正\n" "每个方向上最少需要 %d 条直线" -#: ../src/iop/ashift.c:3440 +#: ../src/iop/ashift.c:3480 msgid "automatic correction failed, please correct manually" msgstr "自动校正失败,请手动校正" -#: ../src/iop/ashift.c:5096 +#: ../src/iop/ashift.c:5077 #, c-format msgid "only %d lines can be saved in parameters" msgstr "参数内仅可保存 %d 行" -#: ../src/iop/ashift.c:5201 +#: ../src/iop/ashift.c:5157 #, c-format -msgid "rotation adjusted by %3.1f° to %3.1f°" -msgstr "旋转角度已调整 %3.1f° 到 %3.1f°" +msgid "rotation adjusted by %3.2f° to %3.2f°" +msgstr "旋转角度已调整 %3.2f° 到 %3.2f°" -#: ../src/iop/ashift.c:5852 ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 -#: ../src/iop/ashift.c:5961 +#: ../src/iop/ashift.c:5797 ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 +#: ../src/iop/ashift.c:5906 #, c-format msgid "lens shift (%s)" msgstr "镜头平移(%s)" -#: ../src/iop/ashift.c:6125 +#: ../src/iop/ashift.c:6072 msgid "manual perspective" msgstr "人工视角" -#: ../src/iop/ashift.c:6170 +#: ../src/iop/ashift.c:6117 msgctxt "section" msgid "perspective" msgstr "透视" -#: ../src/iop/ashift.c:6177 ../src/iop/ashift.c:6286 ../src/iop/ashift.c:6288 -#: ../src/iop/ashift.c:6290 +#: ../src/iop/ashift.c:6124 ../src/iop/ashift.c:6233 ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6237 msgid "structure" msgstr "结构" -#: ../src/iop/ashift.c:6212 +#: ../src/iop/ashift.c:6159 msgid "" "rotate image\n" "right-click and drag to define a horizontal or vertical line by drawing on " @@ -11907,36 +12407,36 @@ "旋转图像\n" "右键点击并拖动以在图像上绘制水平或垂直直线" -#: ../src/iop/ashift.c:6215 ../src/iop/ashift.c:6217 +#: ../src/iop/ashift.c:6162 ../src/iop/ashift.c:6164 msgid "apply lens shift correction in one direction" msgstr "在一个方向上应用镜头偏移校正" -#: ../src/iop/ashift.c:6219 +#: ../src/iop/ashift.c:6166 msgid "shear the image along one diagonal" msgstr "沿一条对角线剪切图像" -#: ../src/iop/ashift.c:6220 ../src/iop/clipping.c:2117 +#: ../src/iop/ashift.c:6167 ../src/iop/clipping.c:2170 msgid "automatically crop to avoid black edges" msgstr "自动裁剪以避免黑边" -#: ../src/iop/ashift.c:6221 +#: ../src/iop/ashift.c:6168 msgid "" "lens model of the perspective correction: generic or according to the focal " "length" msgstr "透视校正的镜头模块:通用还是按焦距" -#: ../src/iop/ashift.c:6224 +#: ../src/iop/ashift.c:6171 msgid "focal length of the lens, default value set from EXIF data if available" msgstr "镜头的焦距,根据EXIF数据设置默认值(如果可获得)" -#: ../src/iop/ashift.c:6227 +#: ../src/iop/ashift.c:6174 msgid "" "crop factor of the camera sensor, default value set from EXIF data if " "available, manual setting is often required" msgstr "" "相机传感器的裁剪系数,若可用,将从 EXIF 数据获取默认值。通常需要手动设置" -#: ../src/iop/ashift.c:6231 +#: ../src/iop/ashift.c:6178 msgid "" "the level of lens dependent correction, set to maximum for full lens " "dependency, set to zero for the generic case" @@ -11944,11 +12444,11 @@ "与镜头有关的校正水平,对于完全与镜头有关的情况设置为最大,对于一般情况设置为" "零" -#: ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6182 msgid "adjust aspect ratio of image by horizontal and vertical scaling" msgstr "通过水平和垂直缩放调整图像的宽高比" -#: ../src/iop/ashift.c:6237 +#: ../src/iop/ashift.c:6184 msgid "" "automatically correct for vertical perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -11958,7 +12458,7 @@ "ctrl + 单击以仅拟合旋转\n" "shift + 单击以仅拟合镜头偏移" -#: ../src/iop/ashift.c:6241 +#: ../src/iop/ashift.c:6188 msgid "" "automatically correct for horizontal perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -11968,7 +12468,7 @@ "ctrl + 单击以仅拟合旋转\n" "shift + 单击以仅拟合镜头偏移" -#: ../src/iop/ashift.c:6245 +#: ../src/iop/ashift.c:6192 msgid "" "automatically correct for vertical and horizontal perspective distortions, " "fitting rotation, lens shift in both directions, and shear\n" @@ -11981,7 +12481,7 @@ "shift + 单击以仅拟合镜头偏移\n" "ctrl + shift + 单击以仅拟合旋转和镜头偏移" -#: ../src/iop/ashift.c:6252 +#: ../src/iop/ashift.c:6199 msgid "" "automatically analyse line structure in image\n" "ctrl+click for an additional edge enhancement\n" @@ -11993,321 +12493,321 @@ "shift + 单击可获得额外的细节增强\n" "ctrl + shift + 单击可同时获得额外的边缘和细节增强" -#: ../src/iop/ashift.c:6257 +#: ../src/iop/ashift.c:6204 msgid "manually define perspective rectangle" msgstr "手动定义透视矩形" -#: ../src/iop/ashift.c:6258 +#: ../src/iop/ashift.c:6205 msgid "manually draw structure lines" msgstr "手动绘制结构线" -#: ../src/iop/ashift.c:6287 +#: ../src/iop/ashift.c:6234 msgid "rectangle" msgstr "矩形" -#: ../src/iop/ashift.c:6289 +#: ../src/iop/ashift.c:6236 msgid "lines" msgstr "线" -#: ../src/iop/ashift.c:6323 ../src/iop/clipping.c:3343 +#: ../src/iop/ashift.c:6270 ../src/iop/clipping.c:3383 #, c-format msgid "[%s] define/rotate horizon" msgstr "[%s] 定义/旋转水平线" -#: ../src/iop/ashift.c:6326 +#: ../src/iop/ashift.c:6273 #, c-format msgid "[%s on segment] select segment" msgstr "[线段 %s] 选择线段" -#: ../src/iop/ashift.c:6330 +#: ../src/iop/ashift.c:6277 #, c-format msgid "[%s on segment] unselect segment" msgstr "[线段 %s] 取消选择线段" -#: ../src/iop/ashift.c:6334 +#: ../src/iop/ashift.c:6281 #, c-format msgid "[%s] select all segments from zone" msgstr "[%s] 选择区域内的所有线段" -#: ../src/iop/ashift.c:6338 +#: ../src/iop/ashift.c:6285 #, c-format msgid "[%s] unselect all segments from zone" msgstr "[%s] 取消选择区域内的所有线段" -#: ../src/iop/atrous.c:123 ../src/iop/atrous.c:1638 +#: ../src/iop/atrous.c:122 ../src/iop/atrous.c:1770 msgid "contrast equalizer" msgstr "对比度均衡器" -#: ../src/iop/atrous.c:128 +#: ../src/iop/atrous.c:127 msgid "sharpness|acutance|local contrast" msgstr "锐利度|鲜明度|局部对比度" -#: ../src/iop/atrous.c:133 +#: ../src/iop/atrous.c:132 msgid "add or remove local contrast, sharpness, acutance" msgstr "增加或消除局部对比度、清晰度、锐度" -#: ../src/iop/atrous.c:134 ../src/iop/bilateral.cc:100 ../src/iop/diffuse.c:145 +#: ../src/iop/atrous.c:133 ../src/iop/bilateral.cc:102 ../src/iop/diffuse.c:145 #: ../src/iop/exposure.c:131 ../src/iop/filmicrgb.c:352 #: ../src/iop/graduatednd.c:146 ../src/iop/negadoctor.c:146 -#: ../src/iop/rgbcurve.c:143 ../src/iop/rgblevels.c:123 ../src/iop/shadhi.c:197 -#: ../src/iop/sigmoid.c:102 ../src/iop/tonecurve.c:211 -#: ../src/iop/toneequal.c:324 +#: ../src/iop/rgbcurve.c:145 ../src/iop/rgblevels.c:125 ../src/iop/shadhi.c:144 +#: ../src/iop/sigmoid.c:209 ../src/iop/tonecurve.c:184 +#: ../src/iop/toneequal.c:332 msgid "corrective and creative" msgstr "纠正和创作" -#: ../src/iop/atrous.c:135 ../src/iop/atrous.c:137 -#: ../src/iop/colorbalance.c:162 +#: ../src/iop/atrous.c:134 ../src/iop/atrous.c:136 +#: ../src/iop/colorbalance.c:164 msgid "linear, Lab, scene-referred" msgstr "线性、Lab、基于场景" -#: ../src/iop/atrous.c:136 ../src/iop/censorize.c:85 +#: ../src/iop/atrous.c:135 ../src/iop/censorize.c:85 #: ../src/iop/hazeremoval.c:114 msgid "frequential, RGB" msgstr "频率、RGB" -#: ../src/iop/atrous.c:727 +#: ../src/iop/atrous.c:799 msgctxt "eq_preset" msgid "coarse" msgstr "粗糙" -#: ../src/iop/atrous.c:742 +#: ../src/iop/atrous.c:815 msgid "denoise & sharpen" msgstr "降噪 & 锐化" -#: ../src/iop/atrous.c:757 +#: ../src/iop/atrous.c:831 msgctxt "atrous" msgid "sharpen" msgstr "锐化" -#: ../src/iop/atrous.c:772 +#: ../src/iop/atrous.c:847 msgid "denoise chroma" msgstr "色度降噪" -#: ../src/iop/atrous.c:787 +#: ../src/iop/atrous.c:863 msgid "denoise" msgstr "降噪" -#: ../src/iop/atrous.c:803 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:421 +#: ../src/iop/atrous.c:880 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:448 msgid "bloom" msgstr "辉光" -#: ../src/iop/atrous.c:818 ../src/iop/bilat.c:169 +#: ../src/iop/atrous.c:896 ../src/iop/bilat.c:186 msgid "clarity" msgstr "清晰度" -#: ../src/iop/atrous.c:838 +#: ../src/iop/atrous.c:917 msgid "deblur: large blur, strength 3" msgstr "去模糊: 大型模糊,强度 3" -#: ../src/iop/atrous.c:855 +#: ../src/iop/atrous.c:935 msgid "deblur: medium blur, strength 3" msgstr "去模糊: 中等模糊,强度 3" -#: ../src/iop/atrous.c:871 +#: ../src/iop/atrous.c:952 msgid "deblur: fine blur, strength 3" msgstr "去模糊: 精细模糊,强度 3" -#: ../src/iop/atrous.c:889 +#: ../src/iop/atrous.c:971 msgid "deblur: large blur, strength 2" msgstr "去模糊: 大型模糊,强度 2" -#: ../src/iop/atrous.c:906 +#: ../src/iop/atrous.c:989 msgid "deblur: medium blur, strength 2" msgstr "去模糊: 中等模糊,强度 2" -#: ../src/iop/atrous.c:922 +#: ../src/iop/atrous.c:1006 msgid "deblur: fine blur, strength 2" msgstr "去模糊: 精细模糊,强度 2" -#: ../src/iop/atrous.c:940 +#: ../src/iop/atrous.c:1025 msgid "deblur: large blur, strength 1" msgstr "去模糊: 大型模糊,强度 1" -#: ../src/iop/atrous.c:957 +#: ../src/iop/atrous.c:1043 msgid "deblur: medium blur, strength 1" msgstr "去模糊: 中等模糊,强度 1" -#: ../src/iop/atrous.c:973 +#: ../src/iop/atrous.c:1060 msgid "deblur: fine blur, strength 1" msgstr "去模糊: 精细模糊,强度 1" -#: ../src/iop/atrous.c:1289 ../src/iop/atrous.c:1525 -#: ../src/iop/denoiseprofile.c:3510 ../src/iop/rawdenoise.c:738 +#: ../src/iop/atrous.c:1390 ../src/iop/atrous.c:1639 +#: ../src/iop/denoiseprofile.c:3514 ../src/iop/rawdenoise.c:754 msgid "coarse" msgstr "粗糙" -#: ../src/iop/atrous.c:1296 ../src/iop/atrous.c:1526 -#: ../src/iop/denoiseprofile.c:3518 ../src/iop/rawdenoise.c:746 +#: ../src/iop/atrous.c:1397 ../src/iop/atrous.c:1640 +#: ../src/iop/denoiseprofile.c:3522 ../src/iop/rawdenoise.c:762 msgid "fine" msgstr "精细" -#: ../src/iop/atrous.c:1308 +#: ../src/iop/atrous.c:1409 msgid "contrasty" msgstr "强对比" -#: ../src/iop/atrous.c:1314 ../src/iop/denoiseprofile.c:3532 -#: ../src/iop/rawdenoise.c:760 +#: ../src/iop/atrous.c:1415 ../src/iop/denoiseprofile.c:3536 +#: ../src/iop/rawdenoise.c:776 msgid "noisy" msgstr "噪声化" #. case atrous_s: -#: ../src/iop/atrous.c:1317 +#: ../src/iop/atrous.c:1418 msgid "bold" msgstr "加重(bold)" -#: ../src/iop/atrous.c:1318 +#: ../src/iop/atrous.c:1419 msgid "dull" msgstr "减轻(dull)" -#: ../src/iop/atrous.c:1513 ../src/iop/atrous.c:1564 +#: ../src/iop/atrous.c:1627 ../src/iop/atrous.c:1685 msgid "boost" msgstr "增强" -#: ../src/iop/atrous.c:1514 +#: ../src/iop/atrous.c:1628 msgid "reduce" msgstr "减少" -#: ../src/iop/atrous.c:1515 +#: ../src/iop/atrous.c:1629 msgid "raise" msgstr "提升" -#: ../src/iop/atrous.c:1516 +#: ../src/iop/atrous.c:1630 msgid "lower" msgstr "更低" -#: ../src/iop/atrous.c:1523 +#: ../src/iop/atrous.c:1637 msgid "coarsest" msgstr "最粗糙" -#: ../src/iop/atrous.c:1524 +#: ../src/iop/atrous.c:1638 msgid "coarser" msgstr "粗糙" -#: ../src/iop/atrous.c:1527 +#: ../src/iop/atrous.c:1641 msgid "finer" msgstr "精细" -#: ../src/iop/atrous.c:1528 +#: ../src/iop/atrous.c:1642 msgid "finest" msgstr "最精细" -#: ../src/iop/atrous.c:1586 ../src/libs/export.c:1143 ../src/libs/export.c:1158 +#: ../src/iop/atrous.c:1710 ../src/libs/export.c:1239 ../src/libs/export.c:1255 msgid "x" msgstr "x" -#: ../src/iop/atrous.c:1666 ../src/iop/nlmeans.c:465 +#: ../src/iop/atrous.c:1799 ../src/iop/nlmeans.c:468 msgid "luma" msgstr "亮度" -#: ../src/iop/atrous.c:1666 +#: ../src/iop/atrous.c:1800 msgid "change lightness at each feature size" msgstr "以每个特性大小改变明度" -#: ../src/iop/atrous.c:1667 +#: ../src/iop/atrous.c:1802 msgid "change color saturation at each feature size" msgstr "以每个特性大小改变颜色饱和度" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1804 msgid "edges" msgstr "边缘" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1805 msgid "" "change edge halos at each feature size\n" "only changes results of luma and chroma tabs" msgstr "更改每个特征尺寸的边缘光晕,仅当更改亮度和色度选项卡后才有效果" -#: ../src/iop/atrous.c:1679 ../src/iop/colorbalancergb.c:2058 -#: ../src/iop/colorzones.c:2473 ../src/iop/denoiseprofile.c:3743 -#: ../src/iop/filmicrgb.c:4407 ../src/iop/lowlight.c:823 -#: ../src/iop/rawdenoise.c:919 ../src/iop/toneequal.c:3371 +#: ../src/iop/atrous.c:1818 ../src/iop/colorbalancergb.c:2129 +#: ../src/iop/colorzones.c:2732 ../src/iop/denoiseprofile.c:3747 +#: ../src/iop/filmicrgb.c:4471 ../src/iop/lowlight.c:821 +#: ../src/iop/rawdenoise.c:935 ../src/iop/toneequal.c:3424 msgid "graph" msgstr "图表" -#: ../src/iop/atrous.c:1690 ../src/iop/colorzones.c:2470 +#: ../src/iop/atrous.c:1836 ../src/iop/colorzones.c:2729 msgid "make effect stronger or weaker" msgstr "使得效果增强或削弱" -#: ../src/iop/basecurve.c:213 +#: ../src/iop/basecurve.c:260 msgid "neutral" msgstr "中性的" -#: ../src/iop/basecurve.c:214 +#: ../src/iop/basecurve.c:261 msgid "canon eos like" msgstr "佳能 EOS 系列" -#: ../src/iop/basecurve.c:215 +#: ../src/iop/basecurve.c:262 msgid "canon eos like alternate" msgstr "佳能 EOS 系列替代方案" -#: ../src/iop/basecurve.c:216 +#: ../src/iop/basecurve.c:263 msgid "nikon like" msgstr "尼康系列" -#: ../src/iop/basecurve.c:217 +#: ../src/iop/basecurve.c:264 msgid "nikon like alternate" msgstr "尼康系列替代方案" -#: ../src/iop/basecurve.c:218 +#: ../src/iop/basecurve.c:265 msgid "sony alpha like" msgstr "索尼 alpha 系列" -#: ../src/iop/basecurve.c:219 +#: ../src/iop/basecurve.c:266 msgid "pentax like" msgstr "宾得系列" -#: ../src/iop/basecurve.c:220 +#: ../src/iop/basecurve.c:267 msgid "ricoh like" msgstr "理光系列" -#: ../src/iop/basecurve.c:221 +#: ../src/iop/basecurve.c:268 msgid "olympus like" msgstr "奥林巴斯系列" -#: ../src/iop/basecurve.c:222 +#: ../src/iop/basecurve.c:269 msgid "olympus like alternate" msgstr "奥林巴斯系列替代方案" -#: ../src/iop/basecurve.c:223 +#: ../src/iop/basecurve.c:270 msgid "panasonic like" msgstr "松下样式" -#: ../src/iop/basecurve.c:224 +#: ../src/iop/basecurve.c:271 msgid "leica like" msgstr "徕卡样式" -#: ../src/iop/basecurve.c:225 +#: ../src/iop/basecurve.c:272 msgid "kodak easyshare like" msgstr "柯达 easyshare 系列" -#: ../src/iop/basecurve.c:226 +#: ../src/iop/basecurve.c:273 msgid "konica minolta like" msgstr "柯尼卡 minolta 系列" -#: ../src/iop/basecurve.c:227 +#: ../src/iop/basecurve.c:274 msgid "samsung like" msgstr "三星系列" -#: ../src/iop/basecurve.c:228 +#: ../src/iop/basecurve.c:275 msgid "fujifilm like" msgstr "富士系列" -#: ../src/iop/basecurve.c:229 +#: ../src/iop/basecurve.c:276 msgid "nokia like" msgstr "诺基亚系列" #. clang-format off #. smoother cubic spline curve -#: ../src/iop/basecurve.c:284 ../src/iop/colorzones.c:2495 -#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1173 +#: ../src/iop/basecurve.c:331 ../src/iop/colorzones.c:2763 +#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1195 msgid "cubic spline" msgstr "立方样条" -#: ../src/iop/basecurve.c:343 +#: ../src/iop/basecurve.c:390 msgid "base curve" msgstr "基础曲线" -#: ../src/iop/basecurve.c:350 +#: ../src/iop/basecurve.c:397 msgid "" "apply a view transform based on personal or camera manufacturer look,\n" "for corrective purposes, to prepare images for display" @@ -12315,65 +12815,65 @@ "应用基于个人或相机制造商的图像标准的视图变换,\n" "起到纠正的目的,以便展示图片" -#: ../src/iop/basecurve.c:352 ../src/iop/cacorrect.c:78 -#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:135 -#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:727 +#: ../src/iop/basecurve.c:399 ../src/iop/cacorrect.c:84 +#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:120 +#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:779 #: ../src/iop/flip.c:110 ../src/iop/hazeremoval.c:112 -#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:73 -#: ../src/iop/invert.c:119 ../src/iop/lens.cc:241 ../src/iop/nlmeans.c:95 -#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:130 -#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:94 ../src/iop/spots.c:69 -#: ../src/iop/temperature.c:212 +#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:75 +#: ../src/iop/invert.c:136 ../src/iop/lens.cc:262 ../src/iop/nlmeans.c:89 +#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:144 +#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:96 ../src/iop/spots.c:69 +#: ../src/iop/temperature.c:220 msgid "corrective" msgstr "纠正" -#: ../src/iop/basecurve.c:353 ../src/iop/channelmixer.c:140 -#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:142 +#: ../src/iop/basecurve.c:400 ../src/iop/channelmixer.c:140 +#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:143 #: ../src/iop/negadoctor.c:147 ../src/iop/profile_gamma.c:103 -#: ../src/iop/rgbcurve.c:144 ../src/iop/rgbcurve.c:146 -#: ../src/iop/rgblevels.c:124 ../src/iop/sigmoid.c:105 ../src/iop/soften.c:102 -#: ../src/iop/soften.c:104 +#: ../src/iop/rgbcurve.c:146 ../src/iop/rgbcurve.c:148 +#: ../src/iop/rgblevels.c:126 ../src/iop/sigmoid.c:210 ../src/iop/soften.c:104 +#: ../src/iop/soften.c:106 msgid "linear, RGB, display-referred" msgstr "线性、RGB、基于显示" -#: ../src/iop/basecurve.c:354 ../src/iop/basicadj.c:149 -#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:187 +#: ../src/iop/basecurve.c:401 ../src/iop/basicadj.c:175 +#: ../src/iop/colorbalance.c:165 ../src/iop/colorbalancergb.c:187 #: ../src/iop/dither.c:121 ../src/iop/filmicrgb.c:354 #: ../src/iop/graduatednd.c:148 ../src/iop/negadoctor.c:148 -#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:145 -#: ../src/iop/rgblevels.c:125 ../src/iop/sigmoid.c:104 -#: ../src/iop/vignette.c:161 ../src/iop/watermark.c:379 +#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:147 +#: ../src/iop/rgblevels.c:127 ../src/iop/sigmoid.c:210 +#: ../src/iop/vignette.c:122 ../src/iop/watermark.c:424 msgid "non-linear, RGB" msgstr "非线性、RGB" -#: ../src/iop/basecurve.c:355 ../src/iop/dither.c:120 ../src/iop/dither.c:122 +#: ../src/iop/basecurve.c:402 ../src/iop/dither.c:120 ../src/iop/dither.c:122 #: ../src/iop/filmicrgb.c:355 ../src/iop/graduatednd.c:149 #: ../src/iop/negadoctor.c:149 ../src/iop/profile_gamma.c:105 -#: ../src/iop/rgblevels.c:126 ../src/iop/vignette.c:160 -#: ../src/iop/vignette.c:162 ../src/iop/watermark.c:378 -#: ../src/iop/watermark.c:380 +#: ../src/iop/rgblevels.c:128 ../src/iop/vignette.c:121 +#: ../src/iop/vignette.c:123 ../src/iop/watermark.c:423 +#: ../src/iop/watermark.c:425 msgid "non-linear, RGB, display-referred" msgstr "非线性、RGB、基于显示" -#: ../src/iop/basecurve.c:2184 +#: ../src/iop/basecurve.c:2205 msgid "abscissa: input, ordinate: output. works on RGB channels" msgstr "横轴:输入,纵轴:输出。作用于RGB通道" -#: ../src/iop/basecurve.c:2190 ../src/iop/basicadj.c:612 -#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1072 -#: ../src/iop/tonecurve.c:1184 +#: ../src/iop/basecurve.c:2211 ../src/iop/basicadj.c:642 +#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1133 +#: ../src/iop/tonecurve.c:1206 msgid "method to preserve colors when applying contrast" msgstr "应用对比度时保留颜色的方法" -#: ../src/iop/basecurve.c:2194 +#: ../src/iop/basecurve.c:2215 msgid "two exposures" msgstr "两次曝光" -#: ../src/iop/basecurve.c:2195 +#: ../src/iop/basecurve.c:2216 msgid "three exposures" msgstr "三次曝光" -#: ../src/iop/basecurve.c:2196 +#: ../src/iop/basecurve.c:2217 msgid "" "fuse this image stopped up/down a couple of times with itself, to compress " "high dynamic range. expose for the highlights before use." @@ -12381,50 +12881,49 @@ "对图像进行几次不同的曝光,并将结果进行融合,以产生更高的动态范围。\n" "为了获得最佳效果,使用前先对高光区的曝光作出正确合适的调整。" -#: ../src/iop/basecurve.c:2201 +#: ../src/iop/basecurve.c:2222 msgid "how many stops to shift the individual exposures apart" msgstr "将各次曝光分离多少曝光档" -#: ../src/iop/basecurve.c:2210 +#: ../src/iop/basecurve.c:2231 msgid "" "whether to shift exposure up or down (-1: reduce highlight, +1: reduce " "shadows)" msgstr "是否要将曝光上移或下移(-1:降低高光,+1:降低阴影)" -#: ../src/iop/basecurve.c:2215 ../src/iop/tonecurve.c:1187 +#: ../src/iop/basecurve.c:2236 ../src/iop/tonecurve.c:1209 msgid "scale for graph" msgstr "曲线规模" -#: ../src/iop/basicadj.c:136 +#: ../src/iop/basicadj.c:162 msgid "this module is deprecated. please use the quick access panel instead." msgstr "此模块已弃用。请使用快速访问面板替代。" -#: ../src/iop/basicadj.c:141 +#: ../src/iop/basicadj.c:167 msgid "basic adjustments" msgstr "基本调整" -#: ../src/iop/basicadj.c:146 +#: ../src/iop/basicadj.c:172 msgid "apply usual image adjustments" msgstr "应用常规图像调整" -#: ../src/iop/basicadj.c:147 ../src/iop/bilat.c:102 ../src/iop/bloom.c:81 -#: ../src/iop/blurs.c:93 ../src/iop/borders.c:198 ../src/iop/censorize.c:83 -#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:97 -#: ../src/iop/colorize.c:105 ../src/iop/colormapping.c:153 -#: ../src/iop/colorzones.c:145 ../src/iop/grain.c:434 ../src/iop/highpass.c:78 -#: ../src/iop/levels.c:138 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 -#: ../src/iop/lowpass.c:134 ../src/iop/monochrome.c:98 ../src/iop/soften.c:101 -#: ../src/iop/splittoning.c:103 ../src/iop/velvia.c:105 -#: ../src/iop/vibrance.c:95 ../src/iop/vignette.c:159 -#: ../src/iop/watermark.c:377 +#: ../src/iop/basicadj.c:173 ../src/iop/bilat.c:83 ../src/iop/bloom.c:81 +#: ../src/iop/blurs.c:93 ../src/iop/borders.c:323 ../src/iop/censorize.c:83 +#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:89 +#: ../src/iop/colorize.c:98 ../src/iop/colormapping.c:153 +#: ../src/iop/colorzones.c:146 ../src/iop/grain.c:450 ../src/iop/highpass.c:78 +#: ../src/iop/levels.c:140 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 +#: ../src/iop/lowpass.c:106 ../src/iop/monochrome.c:100 ../src/iop/soften.c:103 +#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:98 ../src/iop/vibrance.c:97 +#: ../src/iop/vignette.c:120 ../src/iop/watermark.c:422 msgid "creative" msgstr "创作" -#: ../src/iop/basicadj.c:150 ../src/iop/colorbalancergb.c:188 +#: ../src/iop/basicadj.c:176 ../src/iop/colorbalancergb.c:188 msgid "non-linear, RGB, scene-referred" msgstr "非线性、RGB、基于场景" -#: ../src/iop/basicadj.c:593 +#: ../src/iop/basicadj.c:623 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -12436,39 +12935,39 @@ "如果设置不当,它会将 RGB 值推入负数中,\n" "从而将接近黑色的颜色从色域中裁剪掉" -#: ../src/iop/basicadj.c:601 ../src/iop/exposure.c:1118 +#: ../src/iop/basicadj.c:631 ../src/iop/exposure.c:1136 msgid "adjust the exposure correction" msgstr "调整以校正曝光" -#: ../src/iop/basicadj.c:605 +#: ../src/iop/basicadj.c:635 msgid "highlight compression adjustment" msgstr "调整高亮的收缩" -#: ../src/iop/basicadj.c:609 ../src/iop/colisa.c:308 +#: ../src/iop/basicadj.c:639 ../src/iop/colisa.c:302 msgid "contrast adjustment" msgstr "对比度调整" -#: ../src/iop/basicadj.c:617 +#: ../src/iop/basicadj.c:647 msgid "middle gray adjustment" msgstr "调整中间灰" -#: ../src/iop/basicadj.c:622 ../src/iop/colisa.c:309 +#: ../src/iop/basicadj.c:652 ../src/iop/colisa.c:303 msgid "brightness adjustment" msgstr "亮度调整" -#: ../src/iop/basicadj.c:625 +#: ../src/iop/basicadj.c:655 msgid "saturation adjustment" msgstr "饱和度调整" -#: ../src/iop/basicadj.c:628 +#: ../src/iop/basicadj.c:658 msgid "vibrance adjustment" msgstr "自然饱和度调整" -#: ../src/iop/basicadj.c:632 +#: ../src/iop/basicadj.c:662 msgid "apply auto exposure based on the entire image" msgstr "基于整个图像应用自动曝光" -#: ../src/iop/basicadj.c:639 +#: ../src/iop/basicadj.c:669 msgid "" "apply auto exposure based on a region defined by the user\n" "click and drag to draw the area\n" @@ -12477,51 +12976,51 @@ "根据用户定义的区域应用自动曝光。\n" "单击并拖动鼠标以绘制区域,右击取消" -#: ../src/iop/basicadj.c:647 +#: ../src/iop/basicadj.c:677 msgid "clip" msgstr "裁剪" -#: ../src/iop/basicadj.c:649 +#: ../src/iop/basicadj.c:679 msgid "adjusts clipping value for auto exposure calculation" msgstr "调整自动曝光计算的削色值" #. local contrast -#: ../src/iop/bilat.c:96 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:551 +#: ../src/iop/bilat.c:77 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:578 msgid "local contrast" msgstr "局部对比度" -#: ../src/iop/bilat.c:101 +#: ../src/iop/bilat.c:82 msgid "manipulate local and global contrast separately" msgstr "分别操纵局部和全局对比度" -#: ../src/iop/bilat.c:103 ../src/iop/bilat.c:105 ../src/iop/bloom.c:82 +#: ../src/iop/bilat.c:84 ../src/iop/bilat.c:86 ../src/iop/bloom.c:82 #: ../src/iop/bloom.c:84 ../src/iop/colisa.c:91 ../src/iop/colisa.c:93 -#: ../src/iop/colorcontrast.c:98 ../src/iop/colorcontrast.c:100 +#: ../src/iop/colorcontrast.c:90 ../src/iop/colorcontrast.c:92 #: ../src/iop/colorcorrection.c:78 ../src/iop/colorcorrection.c:80 -#: ../src/iop/colorize.c:108 ../src/iop/colormapping.c:156 -#: ../src/iop/colorreconstruction.c:138 ../src/iop/colorzones.c:148 -#: ../src/iop/defringe.c:85 ../src/iop/grain.c:435 ../src/iop/grain.c:437 -#: ../src/iop/levels.c:141 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 -#: ../src/iop/monochrome.c:101 ../src/iop/nlmeans.c:96 ../src/iop/nlmeans.c:98 -#: ../src/iop/shadhi.c:200 ../src/iop/tonecurve.c:214 ../src/iop/vibrance.c:98 +#: ../src/iop/colorize.c:101 ../src/iop/colormapping.c:156 +#: ../src/iop/colorreconstruction.c:123 ../src/iop/colorzones.c:149 +#: ../src/iop/defringe.c:85 ../src/iop/grain.c:451 ../src/iop/grain.c:453 +#: ../src/iop/levels.c:143 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 +#: ../src/iop/monochrome.c:103 ../src/iop/nlmeans.c:90 ../src/iop/nlmeans.c:92 +#: ../src/iop/shadhi.c:147 ../src/iop/tonecurve.c:187 ../src/iop/vibrance.c:100 msgid "non-linear, Lab, display-referred" msgstr "非线性、Lab、基于显示" -#: ../src/iop/bilat.c:104 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 -#: ../src/iop/colorcontrast.c:99 ../src/iop/colorcorrection.c:79 -#: ../src/iop/colorize.c:107 ../src/iop/colormapping.c:155 -#: ../src/iop/colorreconstruction.c:137 ../src/iop/colorzones.c:147 -#: ../src/iop/defringe.c:84 ../src/iop/grain.c:436 ../src/iop/levels.c:140 -#: ../src/iop/monochrome.c:100 ../src/iop/nlmeans.c:97 ../src/iop/shadhi.c:199 -#: ../src/iop/tonecurve.c:213 ../src/iop/vibrance.c:97 +#: ../src/iop/bilat.c:85 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 +#: ../src/iop/colorcontrast.c:91 ../src/iop/colorcorrection.c:79 +#: ../src/iop/colorize.c:100 ../src/iop/colormapping.c:155 +#: ../src/iop/colorreconstruction.c:122 ../src/iop/colorzones.c:148 +#: ../src/iop/defringe.c:84 ../src/iop/grain.c:452 ../src/iop/levels.c:142 +#: ../src/iop/monochrome.c:102 ../src/iop/nlmeans.c:91 ../src/iop/shadhi.c:146 +#: ../src/iop/tonecurve.c:186 ../src/iop/vibrance.c:99 msgid "non-linear, Lab" msgstr "非线性、Lab" -#: ../src/iop/bilat.c:178 +#: ../src/iop/bilat.c:195 msgid "HDR local tone-mapping" msgstr "HDR 局部色调映射" -#: ../src/iop/bilat.c:431 +#: ../src/iop/bilat.c:441 msgid "" "the filter used for local contrast enhancement. bilateral is faster but can " "lead to artifacts around edges for extreme settings." @@ -12529,31 +13028,31 @@ "用于局部对比度增强的滤波器。\n" "双边比较快,但在极端设置下会导致边缘周围出现瑕疵。" -#: ../src/iop/bilat.c:435 ../src/iop/globaltonemap.c:635 +#: ../src/iop/bilat.c:445 ../src/iop/globaltonemap.c:668 msgid "detail" msgstr "细节" -#: ../src/iop/bilat.c:438 +#: ../src/iop/bilat.c:448 msgid "changes the local contrast" msgstr "更改局部对比度" -#: ../src/iop/bilat.c:453 +#: ../src/iop/bilat.c:463 msgid "feature size of local details (spatial sigma of bilateral filter)" msgstr "局部细节的特征大小(双边滤波的空间 Sigma)" -#: ../src/iop/bilat.c:461 +#: ../src/iop/bilat.c:471 msgid "L difference to detect edges (range sigma of bilateral filter)" msgstr "用于检测边缘的光度差异(双边滤波的值域 Sigma)" -#: ../src/iop/bilat.c:467 +#: ../src/iop/bilat.c:477 msgid "changes the local contrast of highlights" msgstr "更改高亮区域的局部对比度" -#: ../src/iop/bilat.c:473 +#: ../src/iop/bilat.c:483 msgid "changes the local contrast of shadows" msgstr "更改阴影区域的局部对比度" -#: ../src/iop/bilat.c:479 +#: ../src/iop/bilat.c:489 msgid "" "defines what counts as mid-tones. lower for better dynamic range compression " "(reduce shadow and highlight contrast), increase for more powerful local " @@ -12562,7 +13061,7 @@ "定义中间调。降低可获得更好的动态范围压缩(减少阴影和高光对比度),增加可获得" "更强的局部对比度" -#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:396 +#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:423 msgid "surface blur" msgstr "表面模糊" @@ -12570,22 +13069,22 @@ msgid "denoise (bilateral filter)" msgstr "降噪(双边滤波)" -#: ../src/iop/bilateral.cc:99 +#: ../src/iop/bilateral.cc:101 msgid "apply edge-aware surface blur to denoise or smoothen textures" msgstr "利用边缘感知表面模糊进行去噪或平滑纹理" -#: ../src/iop/bilateral.cc:102 ../src/iop/blurs.c:93 -#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:729 -#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/soften.c:103 -#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:107 +#: ../src/iop/bilateral.cc:104 ../src/iop/blurs.c:93 +#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:781 +#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/primaries.c:82 +#: ../src/iop/soften.c:105 ../src/iop/splittoning.c:107 ../src/iop/velvia.c:100 msgid "linear, RGB" msgstr "线性、RGB" -#: ../src/iop/bilateral.cc:136 +#: ../src/iop/bilateral.cc:138 msgid "image too large" msgstr "图像过大" -#: ../src/iop/bilateral.cc:137 +#: ../src/iop/bilateral.cc:139 msgid "" "this module is unable to process\n" "images with more than 2 gigapixels.\n" @@ -12594,19 +13093,19 @@ "此模块无法处理尺寸超过 20 亿像素的照片。\n" "处理步骤已跳过。" -#: ../src/iop/bilateral.cc:351 +#: ../src/iop/bilateral.cc:353 msgid "spatial extent of the gaussian" msgstr "高斯空间范围" -#: ../src/iop/bilateral.cc:355 +#: ../src/iop/bilateral.cc:357 msgid "how much to blur red" msgstr "红色的模糊量" -#: ../src/iop/bilateral.cc:360 +#: ../src/iop/bilateral.cc:362 msgid "how much to blur green" msgstr "绿色的模糊量" -#: ../src/iop/bilateral.cc:365 +#: ../src/iop/bilateral.cc:367 msgid "how much to blur blue" msgstr "蓝色的模糊量" @@ -12614,20 +13113,20 @@ msgid "apply Orton effect for a dreamy aetherical look" msgstr "应用奥顿效果(Orton Effect),打造朦胧梦幻的效果" -#: ../src/iop/bloom.c:368 ../src/iop/soften.c:369 ../src/libs/camera.c:567 -#: ../src/libs/masks.c:105 +#: ../src/iop/bloom.c:364 ../src/iop/soften.c:364 ../src/libs/camera.c:567 +#: ../src/libs/masks.c:106 msgid "size" msgstr "尺寸" -#: ../src/iop/bloom.c:370 +#: ../src/iop/bloom.c:366 msgid "the size of bloom" msgstr "辉光的尺寸" -#: ../src/iop/bloom.c:374 +#: ../src/iop/bloom.c:370 msgid "the threshold of light" msgstr "光阈值" -#: ../src/iop/bloom.c:378 +#: ../src/iop/bloom.c:374 msgid "the strength of bloom" msgstr "辉光的力度" @@ -12643,260 +13142,272 @@ msgid "simulate physically-accurate lens and motion blurs" msgstr "模拟物理准确的镜头模糊和运动模糊" -#: ../src/iop/borders.c:187 +#: ../src/iop/borders.c:312 msgid "framing" msgstr "加相框" -#: ../src/iop/borders.c:192 +#: ../src/iop/borders.c:317 msgid "borders|enlarge canvas|expand canvas" msgstr "加边框|放大画面|扩展画面" -#: ../src/iop/borders.c:197 +#: ../src/iop/borders.c:322 msgid "add solid borders or margins around the picture" msgstr "在图片周围添加实心边框或" -#: ../src/iop/borders.c:199 ../src/iop/borders.c:201 ../src/iop/lut3d.c:144 +#: ../src/iop/borders.c:324 ../src/iop/borders.c:326 ../src/iop/lut3d.c:145 msgid "linear or non-linear, RGB, display-referred" msgstr "线性或非线性、RGB、基于显示" -#: ../src/iop/borders.c:727 +#: ../src/iop/borders.c:737 msgid "15:10 postcard white" msgstr "15:10 明信片 白色" -#: ../src/iop/borders.c:732 +#: ../src/iop/borders.c:742 msgid "15:10 postcard black" msgstr "15:10 明信片 黑色" -#: ../src/iop/borders.c:942 -msgid "size of the border in percent of the full image" -msgstr "边框的尺寸(以全图尺寸百分比表示)" +#: ../src/iop/borders.c:948 +msgid "which dimension to use for the size calculation" +msgstr "使用哪一边来计算图像大小" + +#: ../src/iop/borders.c:954 +msgid "size of the border in percent of the chosen basis" +msgstr "边框的尺寸(以选中长度基准的百分比表示)" -#: ../src/iop/borders.c:944 ../src/iop/clipping.c:2218 ../src/iop/crop.c:1224 +#: ../src/iop/borders.c:956 ../src/iop/clipping.c:2271 ../src/iop/crop.c:1208 msgid "aspect" msgstr "宽高比" -#: ../src/iop/borders.c:945 +#: ../src/iop/borders.c:957 msgid "" -"select the aspect ratio (right click on slider below to type your own w:h)" -msgstr "选择纵横比(在下方滑块单击可以直接输入“<宽度>:<高度>”形式的比例)" +"select the aspect ratio\n" +"(right click on slider below to type your own w:h)" +msgstr "选择纵横比(在下方滑块右键可以直接输入“<宽度>:<高度>”形式的比例)" -#: ../src/iop/borders.c:948 +#: ../src/iop/borders.c:961 msgid "3:1" msgstr "3:1" -#: ../src/iop/borders.c:949 +#: ../src/iop/borders.c:962 msgid "95:33" msgstr "95:33" -#: ../src/iop/borders.c:950 +#: ../src/iop/borders.c:963 msgid "CinemaScope 2.39:1" msgstr "CinemaScope 2.39:1" -#: ../src/iop/borders.c:951 +#: ../src/iop/borders.c:964 msgid "2:1" msgstr "2:1" -#: ../src/iop/borders.c:952 +#: ../src/iop/borders.c:965 msgid "16:9" msgstr "16:9" -#: ../src/iop/borders.c:953 +#: ../src/iop/borders.c:966 msgid "5:3" msgstr "5:3" -#: ../src/iop/borders.c:954 +#: ../src/iop/borders.c:967 msgid "US Legal 8.5x14" msgstr "美国法律用纸 8.5x14" -#: ../src/iop/borders.c:955 ../src/iop/clipping.c:2131 ../src/iop/crop.c:1128 +#: ../src/iop/borders.c:968 ../src/iop/clipping.c:2184 ../src/iop/crop.c:1112 msgid "golden cut" msgstr "黄金分割" -#: ../src/iop/borders.c:956 +#: ../src/iop/borders.c:969 msgid "16:10" msgstr "16:10" -#: ../src/iop/borders.c:957 +#: ../src/iop/borders.c:970 msgid "3:2 (4x6, 10x15cm)" msgstr "3:2 (4x6 英寸、10x15 厘米)" -#: ../src/iop/borders.c:959 +#: ../src/iop/borders.c:972 msgid "DIN" msgstr "DIN" -#: ../src/iop/borders.c:960 +#: ../src/iop/borders.c:973 msgid "7:5" msgstr "7:5" -#: ../src/iop/borders.c:961 +#: ../src/iop/borders.c:974 msgid "4:3" msgstr "4:3" -#: ../src/iop/borders.c:962 +#: ../src/iop/borders.c:975 msgid "US Letter 8.5x11" msgstr "美国信纸 8.5x11" -#: ../src/iop/borders.c:963 +#: ../src/iop/borders.c:976 msgid "14:11" msgstr "14:11" -#: ../src/iop/borders.c:964 +#: ../src/iop/borders.c:977 msgid "5:4 (8x10)" msgstr "5:4(8x10 英寸)" -#: ../src/iop/borders.c:965 ../src/iop/clipping.c:2121 ../src/iop/crop.c:1118 -#: ../src/libs/filtering.c:301 ../src/libs/filters/ratio.c:126 -#: ../src/libs/histogram.c:141 +#: ../src/iop/borders.c:978 ../src/iop/clipping.c:2174 ../src/iop/crop.c:1102 +#: ../src/libs/filtering.c:307 ../src/libs/filters/ratio.c:126 +#: ../src/libs/histogram.c:118 msgid "square" msgstr "正方形" -#: ../src/iop/borders.c:966 +#: ../src/iop/borders.c:979 msgid "constant border" msgstr "定长边框" -#: ../src/iop/borders.c:967 ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:980 ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "custom..." msgstr "自定义..." -#: ../src/iop/borders.c:972 -msgid "set the custom aspect ratio (right click to enter number or w:h)" -msgstr "选择自定义纵横比,右键单击可以输入数值或“<宽度>:<高度>”形式的比例" +#: ../src/iop/borders.c:984 +msgid "" +"set the custom aspect ratio\n" +"(right click to enter number or w:h)" +msgstr "" +"指定自定义纵横比(在下方滑块右键可以直接输入数字或“<宽度>:<高度>”形式的比例)" -#: ../src/iop/borders.c:975 +#: ../src/iop/borders.c:989 msgid "aspect ratio orientation of the image with border" msgstr "包含边框的图像的纵横比取向" -#: ../src/iop/borders.c:977 +#: ../src/iop/borders.c:991 msgid "horizontal position" msgstr "水平位置" -#: ../src/iop/borders.c:978 +#: ../src/iop/borders.c:992 msgid "" -"select the horizontal position ratio relative to top or right click and type " -"your own (y:h)" -msgstr "选择相对于顶部的水平位置比或右键单击并自定义(y:h)" +"select the horizontal position ratio relative to top\n" +"(right click on slider below to type your own x:w)" +msgstr "" +"选择相对于顶部的纵向位置比\n" +"(右键单击并输入 x:w 形式的自定义值)" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "center" msgstr "中心" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "1/3" msgstr "1/3" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "3/8" msgstr "3/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "5/8" msgstr "5/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "2/3" msgstr "2/3" -#: ../src/iop/borders.c:986 +#: ../src/iop/borders.c:1000 msgid "custom horizontal position" msgstr "自定义水平位置" -#: ../src/iop/borders.c:988 +#: ../src/iop/borders.c:1002 msgid "vertical position" msgstr "垂直位置" -#: ../src/iop/borders.c:989 +#: ../src/iop/borders.c:1003 msgid "" -"select the vertical position ratio relative to left or right click and type " -"your own (x:w)" -msgstr "选择相对于顶部的垂直位置比或右键单击并自定义(x:w)" +"select the vertical position ratio relative to left\n" +"(right click on slider below to type your own y:h)" +msgstr "" +"选择相对于左边的水平位置比\n" +"(右键单击并输入 y:h 形式的自定义值)" -#: ../src/iop/borders.c:997 +#: ../src/iop/borders.c:1011 msgid "custom vertical position" msgstr "自定义垂直位置" -#: ../src/iop/borders.c:1002 +#: ../src/iop/borders.c:1017 msgid "size of the frame line in percent of min border width" msgstr "分帧线的尺寸(以全图尺寸百分比表示)" -#: ../src/iop/borders.c:1007 +#: ../src/iop/borders.c:1023 msgid "offset of the frame line beginning on picture side" msgstr "分帧线偏移(从图片一侧开始计算)" -#: ../src/iop/borders.c:1014 ../src/iop/borders.c:1023 +#: ../src/iop/borders.c:1033 ../src/iop/borders.c:1044 msgid "border color" msgstr "边框颜色" -#: ../src/iop/borders.c:1018 +#: ../src/iop/borders.c:1037 msgid "select border color" msgstr "选择边框颜色" -#: ../src/iop/borders.c:1022 +#: ../src/iop/borders.c:1043 msgid "pick border color from image" msgstr "从图片选取边框颜色" -#: ../src/iop/borders.c:1023 ../src/iop/borders.c:1036 -#: ../src/iop/colorzones.c:2415 ../src/iop/colorzones.c:2425 -#: ../src/iop/negadoctor.c:848 ../src/iop/negadoctor.c:915 -#: ../src/iop/negadoctor.c:953 ../src/iop/rgbcurve.c:1369 -#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1026 -#: ../src/iop/rgblevels.c:1032 ../src/iop/rgblevels.c:1038 +#: ../src/iop/borders.c:1044 ../src/iop/borders.c:1061 +#: ../src/iop/colorzones.c:2662 ../src/iop/colorzones.c:2677 +#: ../src/iop/negadoctor.c:867 ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:972 ../src/iop/rgbcurve.c:1369 +#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1075 +#: ../src/iop/rgblevels.c:1083 ../src/iop/rgblevels.c:1091 msgid "pickers" msgstr "取色器" -#: ../src/iop/borders.c:1027 ../src/iop/borders.c:1036 +#: ../src/iop/borders.c:1049 ../src/iop/borders.c:1061 msgid "frame line color" msgstr "分帧线颜色" -#: ../src/iop/borders.c:1031 +#: ../src/iop/borders.c:1054 msgid "select frame line color" msgstr "选择分帧线颜色" -#: ../src/iop/borders.c:1035 +#: ../src/iop/borders.c:1060 msgid "pick frame line color from image" msgstr "从图片选取分帧线颜色" #. make sure you put all your translatable strings into _() ! -#: ../src/iop/cacorrect.c:72 +#: ../src/iop/cacorrect.c:78 msgid "raw chromatic aberrations" msgstr "raw 色差" -#: ../src/iop/cacorrect.c:77 +#: ../src/iop/cacorrect.c:83 msgid "correct chromatic aberrations for Bayer sensors" msgstr "修正拜耳传感器(Bayer sensors)的色差" -#: ../src/iop/cacorrect.c:79 ../src/iop/cacorrect.c:81 +#: ../src/iop/cacorrect.c:85 ../src/iop/cacorrect.c:87 #: ../src/iop/cacorrectrgb.c:171 ../src/iop/cacorrectrgb.c:173 #: ../src/iop/demosaic.c:294 ../src/iop/highlights.c:180 -#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:74 -#: ../src/iop/hotpixels.c:76 ../src/iop/rawdenoise.c:131 -#: ../src/iop/rawdenoise.c:133 ../src/iop/rawprepare.c:159 -#: ../src/iop/rawprepare.c:161 ../src/iop/temperature.c:213 -#: ../src/iop/temperature.c:215 +#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:76 +#: ../src/iop/hotpixels.c:78 ../src/iop/rawdenoise.c:145 +#: ../src/iop/rawdenoise.c:147 ../src/iop/rawprepare.c:175 +#: ../src/iop/rawprepare.c:177 ../src/iop/temperature.c:221 +#: ../src/iop/temperature.c:223 msgid "linear, raw, scene-referred" msgstr "线性、RAW、基于场景" -#: ../src/iop/cacorrect.c:80 ../src/iop/cacorrectrgb.c:172 -#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:121 -#: ../src/iop/rawdenoise.c:132 ../src/iop/rawprepare.c:160 -#: ../src/iop/temperature.c:214 +#: ../src/iop/cacorrect.c:86 ../src/iop/cacorrectrgb.c:172 +#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:138 +#: ../src/iop/rawdenoise.c:146 ../src/iop/rawprepare.c:176 +#: ../src/iop/temperature.c:222 msgid "linear, raw" msgstr "线性、RAW" -#: ../src/iop/cacorrect.c:1405 +#: ../src/iop/cacorrect.c:1424 msgid "iteration runs, default is twice" msgstr "迭代运行,默认为两次" -#: ../src/iop/cacorrect.c:1408 +#: ../src/iop/cacorrect.c:1427 msgid "activate colorshift correction for blue & red channels" msgstr "激活蓝色和红色通道的色移校正" -#: ../src/iop/cacorrect.c:1415 +#: ../src/iop/cacorrect.c:1434 msgid "" "automatic chromatic aberration correction\n" -"only for Bayer raw files" +"only for Bayer raw files with 3 color channels" msgstr "" "自动色差校正\n" -"只作用于拜尔 RAW 图像" +"只作用于使用三原色通道的拜尔 RAW 图像" #: ../src/iop/cacorrectrgb.c:164 ../src/iop/defringe.c:76 msgid "chromatic aberrations" @@ -12906,7 +13417,7 @@ msgid "correct chromatic aberrations" msgstr "纠正色差" -#: ../src/iop/cacorrectrgb.c:743 +#: ../src/iop/cacorrectrgb.c:745 msgid "" "channel used as a reference to\n" "correct the other channels.\n" @@ -12919,11 +13430,11 @@ "如果某些通道模糊不清,则使用最清晰的通道。\n" "如出现伪影,请尝试改变参考通道。" -#: ../src/iop/cacorrectrgb.c:750 +#: ../src/iop/cacorrectrgb.c:752 msgid "increase for stronger correction" msgstr "增加以加强矫正" -#: ../src/iop/cacorrectrgb.c:752 +#: ../src/iop/cacorrectrgb.c:754 msgid "" "balance between smoothing colors\n" "and preserving them.\n" @@ -12933,12 +13444,12 @@ "在平滑颜色和保留颜色之间取得平衡。\n" "高值会导致过和边缘渗出。" -#: ../src/iop/cacorrectrgb.c:757 +#: ../src/iop/cacorrectrgb.c:759 msgctxt "section" msgid "advanced parameters" msgstr "高级参数" -#: ../src/iop/cacorrectrgb.c:759 +#: ../src/iop/cacorrectrgb.c:761 msgid "" "correction mode to use.\n" "can help with multiple\n" @@ -12952,7 +13463,7 @@ "添加多个实例可以帮助对严重受损的图像进行处理。\n" "“仅变暗”对纠正蓝色色差来说特别有效。" -#: ../src/iop/cacorrectrgb.c:767 +#: ../src/iop/cacorrectrgb.c:769 msgid "" "runs an iterative approach\n" "with several radii.\n" @@ -12982,35 +13493,35 @@ msgid "special, RGB, scene-referred" msgstr "特殊、Lab、基于场景" -#: ../src/iop/censorize.c:412 +#: ../src/iop/censorize.c:404 msgid "radius_1" msgstr "半径 _1" -#: ../src/iop/censorize.c:414 +#: ../src/iop/censorize.c:406 msgid "pixelate" msgstr "像素化" -#: ../src/iop/censorize.c:416 +#: ../src/iop/censorize.c:408 msgid "radius_2" msgstr "半径 _2" -#: ../src/iop/censorize.c:418 +#: ../src/iop/censorize.c:410 msgid "noise" msgstr "噪点" -#: ../src/iop/censorize.c:420 +#: ../src/iop/censorize.c:412 msgid "radius of gaussian blur before pixellation" msgstr "像素化前的高斯模糊半径" -#: ../src/iop/censorize.c:421 +#: ../src/iop/censorize.c:413 msgid "radius of gaussian blur after pixellation" msgstr "像素化后的高斯模糊半径" -#: ../src/iop/censorize.c:422 +#: ../src/iop/censorize.c:414 msgid "radius of the intermediate pixellation" msgstr "中间像素化的半径" -#: ../src/iop/censorize.c:423 +#: ../src/iop/censorize.c:415 msgid "amount of noise to add at the end" msgstr "最后加入的噪点量" @@ -13023,7 +13534,7 @@ "this module is deprecated. please use the color calibration module instead." msgstr "此模块已弃用。请使用颜色校准模块替代。" -#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:229 +#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:230 msgid "" "perform color space corrections\n" "such as white balance, channels mixing\n" @@ -13032,168 +13543,168 @@ "执行颜色空间校正,\n" "如白平衡,通道混合以及转换成单色胶片效果" -#: ../src/iop/channelmixer.c:614 +#: ../src/iop/channelmixer.c:633 msgid "destination" msgstr "目的地" -#: ../src/iop/channelmixer.c:621 +#: ../src/iop/channelmixer.c:640 msgctxt "channelmixer" msgid "gray" msgstr "灰" -#: ../src/iop/channelmixer.c:627 +#: ../src/iop/channelmixer.c:646 msgid "amount of red channel in the output channel" msgstr "输出通道中红色通道的应用量" -#: ../src/iop/channelmixer.c:633 +#: ../src/iop/channelmixer.c:652 msgid "amount of green channel in the output channel" msgstr "输出通道中绿色通道的应用量" -#: ../src/iop/channelmixer.c:639 +#: ../src/iop/channelmixer.c:658 msgid "amount of blue channel in the output channel" msgstr "输出通道中蓝色通道的应用量" -#: ../src/iop/channelmixer.c:655 ../src/iop/channelmixerrgb.c:524 +#: ../src/iop/channelmixer.c:674 ../src/iop/channelmixerrgb.c:588 msgid "swap R and B" msgstr "对调 红和蓝" -#: ../src/iop/channelmixer.c:661 ../src/iop/channelmixerrgb.c:498 +#: ../src/iop/channelmixer.c:680 ../src/iop/channelmixerrgb.c:562 msgid "swap G and B" msgstr "对调 绿和蓝" -#: ../src/iop/channelmixer.c:667 +#: ../src/iop/channelmixer.c:686 msgid "color contrast boost" msgstr "色彩对比增加" -#: ../src/iop/channelmixer.c:673 +#: ../src/iop/channelmixer.c:692 msgid "color details boost" msgstr "色彩细节增加" -#: ../src/iop/channelmixer.c:679 +#: ../src/iop/channelmixer.c:698 msgid "color artifacts boost" msgstr "色彩伪影增加" -#: ../src/iop/channelmixer.c:685 +#: ../src/iop/channelmixer.c:704 msgid "B/W luminance-based" msgstr "B/W 基于亮度" -#: ../src/iop/channelmixer.c:691 +#: ../src/iop/channelmixer.c:710 msgid "B/W artifacts boost" msgstr "B/W 伪影增加" -#: ../src/iop/channelmixer.c:697 +#: ../src/iop/channelmixer.c:716 msgid "B/W smooth skin" msgstr "B/W 平滑皮肤" -#: ../src/iop/channelmixer.c:703 +#: ../src/iop/channelmixer.c:722 msgid "B/W blue artifacts reduce" msgstr "B/W 蓝色伪影减小" -#: ../src/iop/channelmixer.c:710 +#: ../src/iop/channelmixer.c:729 msgid "B/W Ilford Delta 100-400" msgstr "B/W 伊尔福 Delta 100-400" -#: ../src/iop/channelmixer.c:717 +#: ../src/iop/channelmixer.c:736 msgid "B/W Ilford Delta 3200" msgstr "B/W 伊尔福 Delta 3200" -#: ../src/iop/channelmixer.c:724 +#: ../src/iop/channelmixer.c:743 msgid "B/W Ilford FP4" msgstr "B/W 伊尔福 FP4" -#: ../src/iop/channelmixer.c:731 +#: ../src/iop/channelmixer.c:750 msgid "B/W Ilford HP5" msgstr "B/W 伊尔福 HP5" -#: ../src/iop/channelmixer.c:738 +#: ../src/iop/channelmixer.c:757 msgid "B/W Ilford SFX" msgstr "B/W 伊尔福 SFX" -#: ../src/iop/channelmixer.c:745 +#: ../src/iop/channelmixer.c:764 msgid "B/W Kodak T-Max 100" msgstr "B/W 柯达 T-Max 100" -#: ../src/iop/channelmixer.c:752 +#: ../src/iop/channelmixer.c:771 msgid "B/W Kodak T-max 400" msgstr "B/W 柯达 T-max 400" -#: ../src/iop/channelmixer.c:759 +#: ../src/iop/channelmixer.c:778 msgid "B/W Kodak Tri-X 400" msgstr "B/W 柯达 Tri-X 400" -#: ../src/iop/channelmixerrgb.c:219 +#: ../src/iop/channelmixerrgb.c:220 msgid "color calibration" msgstr "颜色校准" -#: ../src/iop/channelmixerrgb.c:224 +#: ../src/iop/channelmixerrgb.c:225 msgid "channel mixer|white balance|monochrome" msgstr "通道混合器|白平衡|黑白" -#: ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:235 msgid "linear, RGB or XYZ" msgstr "线性、RGB或XYZ" -#: ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:460 msgid "B&W: luminance-based" msgstr "黑白:基于亮度" -#: ../src/iop/channelmixerrgb.c:431 +#: ../src/iop/channelmixerrgb.c:495 msgid "B&W: ILFORD HP5+" msgstr "黑白:伊尔福 HP5+" -#: ../src/iop/channelmixerrgb.c:440 +#: ../src/iop/channelmixerrgb.c:504 msgid "B&W: ILFORD DELTA 100" msgstr "黑白:伊尔福 DELTA 100" -#: ../src/iop/channelmixerrgb.c:450 +#: ../src/iop/channelmixerrgb.c:514 msgid "B&W: ILFORD DELTA 400 - 3200" msgstr "黑白:伊尔福 DELTA 400 - 3200" -#: ../src/iop/channelmixerrgb.c:459 +#: ../src/iop/channelmixerrgb.c:523 msgid "B&W: ILFORD FP4+" msgstr "黑白:伊尔福 FP4+" -#: ../src/iop/channelmixerrgb.c:468 +#: ../src/iop/channelmixerrgb.c:532 msgid "B&W: Fuji Acros 100" msgstr "黑白:富士 Acros 100" -#: ../src/iop/channelmixerrgb.c:485 +#: ../src/iop/channelmixerrgb.c:549 msgid "basic channel mixer" msgstr "基本通道混合器" -#: ../src/iop/channelmixerrgb.c:511 +#: ../src/iop/channelmixerrgb.c:575 msgid "swap G and R" msgstr "对调 绿和红" -#: ../src/iop/channelmixerrgb.c:1869 +#: ../src/iop/channelmixerrgb.c:1926 msgid "(daylight)" msgstr "(日光)" -#: ../src/iop/channelmixerrgb.c:1871 +#: ../src/iop/channelmixerrgb.c:1928 msgid "(black body)" msgstr "(黑体)" -#: ../src/iop/channelmixerrgb.c:1873 +#: ../src/iop/channelmixerrgb.c:1930 msgid "(invalid)" msgstr "(无效)" -#: ../src/iop/channelmixerrgb.c:1877 ../src/iop/channelmixerrgb.c:1935 +#: ../src/iop/channelmixerrgb.c:1934 ../src/iop/channelmixerrgb.c:1992 msgid "very good" msgstr "非常好" -#: ../src/iop/channelmixerrgb.c:1879 ../src/iop/channelmixerrgb.c:1937 +#: ../src/iop/channelmixerrgb.c:1936 ../src/iop/channelmixerrgb.c:1994 msgid "good" msgstr "良好" -#: ../src/iop/channelmixerrgb.c:1881 ../src/iop/channelmixerrgb.c:1939 +#: ../src/iop/channelmixerrgb.c:1938 ../src/iop/channelmixerrgb.c:1996 msgid "passable" msgstr "勉强" -#: ../src/iop/channelmixerrgb.c:1883 ../src/iop/channelmixerrgb.c:1941 +#: ../src/iop/channelmixerrgb.c:1940 ../src/iop/channelmixerrgb.c:1998 msgid "bad" msgstr "差" -#: ../src/iop/channelmixerrgb.c:1890 +#: ../src/iop/channelmixerrgb.c:1947 #, c-format msgid "" "\n" @@ -13230,7 +13741,7 @@ "曝光补偿:\t%+.2f EV\n" "黑色位移\t%+.4f" -#: ../src/iop/channelmixerrgb.c:1946 +#: ../src/iop/channelmixerrgb.c:2003 #, c-format msgid "" "\n" @@ -13249,26 +13760,40 @@ "曝光补偿:\t%+.2f EV\n" "黑色位移\t%+.4f" -#: ../src/iop/channelmixerrgb.c:1978 +#: ../src/iop/channelmixerrgb.c:2054 msgid "double CAT applied" msgstr "应用了双重 CAT" -#: ../src/iop/channelmixerrgb.c:1979 +#: ../src/iop/channelmixerrgb.c:2055 msgid "" "you have 2 instances or more of color calibration,\n" -"all performing chromatic adaptation.\n" -"this can lead to inconsistencies, unless you\n" +"all providing chromatic adaptation.\n" +"this can lead to inconsistencies unless you\n" "use them with masks or know what you are doing." msgstr "" -"你有两个或更多的色彩校准实例,都在进行色度适应。\n" -"这可能会导致输出不一致,除非你用遮罩来使用它们或你\n" -"确定知道你在做什么。" +"你有两个或更多的色彩校准实例,都在进行色度适应。这可能会导致输出不一致。\n" +"除非你对这多个模块使用蒙版或你确定知道你在做什么,您可能应该只保留一个色彩校" +"准模块。" -#: ../src/iop/channelmixerrgb.c:1991 +#: ../src/iop/channelmixerrgb.c:2071 +msgid "white balance applied twice" +msgstr "白平衡设置被应用了两次" + +#: ../src/iop/channelmixerrgb.c:2072 +msgid "" +"the color calibration module is enabled and already provides\n" +"chromatic adaptation.\n" +"set the white balance here to camera reference (D65)\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"色彩校准模块已启用并提供色度适应功能。\n" +"请在此将白平衡设置为相机基准点(D65)或在色彩校准模块中禁用色度适应。" + +#: ../src/iop/channelmixerrgb.c:2080 msgid "white balance module error" msgstr "白平衡模块错误" -#: ../src/iop/channelmixerrgb.c:1992 +#: ../src/iop/channelmixerrgb.c:2081 msgid "" "the white balance module is not using the camera\n" "reference illuminant, which will cause issues here\n" @@ -13278,20 +13803,44 @@ "白平衡模块没有使用相机的参考光源,\n" "这将导致这里的色度适应问题。" -#: ../src/iop/channelmixerrgb.c:2083 +#: ../src/iop/channelmixerrgb.c:2095 ../src/iop/channelmixerrgb.c:2104 +msgid "white balance missing" +msgstr "白平衡缺失" + +#: ../src/iop/channelmixerrgb.c:2096 +msgid "" +"this module is not providing a valid reference illuminant\n" +"causing chromatic adaptation issues in color calibration.\n" +"enable this module and either set it to reference\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"此模块未提供一个有效的参照光源,可能在色彩校准步骤中出现色度适应问题。\n" +"请启用此模块并将其设置为参考光源或在色彩校准模块中禁用色度适应。" + +#: ../src/iop/channelmixerrgb.c:2105 +msgid "" +"the white balance module is not providing a valid reference\n" +"illuminant causing issues with chromatic adaptation here.\n" +"enable white balance and either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" +"白平衡模块没有提供有效的参考光源,会在此造成色度适应问题。\n" +"请启用白平衡模块并设置为参考光源或在此模块中禁用色度适应。" + +#: ../src/iop/channelmixerrgb.c:2196 msgid "auto-detection of white balance completed" msgstr "白平衡的自动检测已完成" -#: ../src/iop/channelmixerrgb.c:2236 +#: ../src/iop/channelmixerrgb.c:2346 msgid "channelmixerrgb works only on RGB input" msgstr "rgb 通道混色器仅对 rgb 输入有效" -#: ../src/iop/channelmixerrgb.c:3621 +#: ../src/iop/channelmixerrgb.c:3692 #, c-format msgid "CCT: %.0f K (daylight)" msgstr "CCT:%.0f K(日光)" -#: ../src/iop/channelmixerrgb.c:3624 +#: ../src/iop/channelmixerrgb.c:3695 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a daylight spectrum,\n" @@ -13300,12 +13849,12 @@ "近似的相关色温。\n" "这种光源可以通过日光光谱准确地建模,因此它的温度与 D 型光源相关。" -#: ../src/iop/channelmixerrgb.c:3630 +#: ../src/iop/channelmixerrgb.c:3701 #, c-format msgid "CCT: %.0f K (black body)" msgstr "CCT:%.0f K(黑体)" -#: ../src/iop/channelmixerrgb.c:3633 +#: ../src/iop/channelmixerrgb.c:3704 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a black body spectrum,\n" @@ -13314,12 +13863,12 @@ "近似的相关色温。\n" "这种光源可以通过黑体光谱准确地建模,因此它的温度与黑体光源相关。" -#: ../src/iop/channelmixerrgb.c:3639 +#: ../src/iop/channelmixerrgb.c:3710 #, c-format msgid "CCT: %.0f K (invalid)" msgstr "CCT:%.0f K(无效)" -#: ../src/iop/channelmixerrgb.c:3642 +#: ../src/iop/channelmixerrgb.c:3713 msgid "" "approximated correlated color temperature.\n" "this illuminant cannot be accurately modeled by a daylight or black body " @@ -13331,12 +13880,12 @@ "这种光源不能被日光或黑体光谱准确地模拟出来。\n" "所以它的温度是不相关的,也是没有意义的,你需要使用一个自定义光源。" -#: ../src/iop/channelmixerrgb.c:3651 +#: ../src/iop/channelmixerrgb.c:3722 #, c-format msgid "CCT: undefined" msgstr "CCT:未定义" -#: ../src/iop/channelmixerrgb.c:3654 +#: ../src/iop/channelmixerrgb.c:3725 msgid "" "the approximated correlated color temperature\n" "cannot be computed at all so you need to use a custom illuminant." @@ -13344,23 +13893,23 @@ "近似的相关色温\n" "无法计算,你需要使用一个自定义光源。" -#: ../src/iop/channelmixerrgb.c:3967 +#: ../src/iop/channelmixerrgb.c:4038 msgid "white balance successfully extracted from raw image" msgstr "成功从 raw 图像中提取白平衡" #. We need to recompute only the full preview -#: ../src/iop/channelmixerrgb.c:3973 +#: ../src/iop/channelmixerrgb.c:4044 msgid "auto-detection of white balance started…" msgstr "开始自动检测白平衡……" -#: ../src/iop/channelmixerrgb.c:4078 +#: ../src/iop/channelmixerrgb.c:4149 msgid "" "color calibration: the sum of the gray channel parameters is zero, " "normalization will be disabled." msgstr "颜色校准:灰度通道参数之和为零,正常化将被禁用。" #. Write report in GUI -#: ../src/iop/channelmixerrgb.c:4126 +#: ../src/iop/channelmixerrgb.c:4194 #, c-format msgid "" "L: \t%.1f %%\n" @@ -13371,27 +13920,27 @@ "h: \t%.1f °\n" "c: \t%.1f" -#: ../src/iop/channelmixerrgb.c:4394 ../src/iop/clipping.c:2087 -#: ../src/iop/colorbalancergb.c:1873 ../src/iop/filmicrgb.c:4419 -#: ../src/iop/negadoctor.c:829 ../src/iop/toneequal.c:3319 -#: ../src/libs/image.c:460 ../src/views/lighttable.c:1258 +#: ../src/iop/channelmixerrgb.c:4462 ../src/iop/clipping.c:2140 +#: ../src/iop/colorbalancergb.c:1944 ../src/iop/filmicrgb.c:4483 +#: ../src/iop/negadoctor.c:848 ../src/iop/toneequal.c:3372 +#: ../src/libs/image.c:490 ../src/views/lighttable.c:1258 msgid "page" msgstr "页面" #. Page CAT -#: ../src/iop/channelmixerrgb.c:4397 +#: ../src/iop/channelmixerrgb.c:4465 msgid "CAT" msgstr "色适应变换" -#: ../src/iop/channelmixerrgb.c:4398 +#: ../src/iop/channelmixerrgb.c:4466 msgid "chromatic adaptation transform" msgstr "色适应变换" -#: ../src/iop/channelmixerrgb.c:4400 +#: ../src/iop/channelmixerrgb.c:4468 msgid "adaptation" msgstr "适应" -#: ../src/iop/channelmixerrgb.c:4403 +#: ../src/iop/channelmixerrgb.c:4471 msgid "" "choose the method to adapt the illuminant\n" "and the colorspace in which the module works: \n" @@ -13411,7 +13960,7 @@ "• XYZ 是 XYZ 空间的简单缩放。一般不推荐使用。\n" "• none 禁用任何自适应并使用 RGB 流水线工作。" -#: ../src/iop/channelmixerrgb.c:4423 +#: ../src/iop/channelmixerrgb.c:4491 msgid "" "this is the color of the scene illuminant before chromatic adaptation\n" "this color will be turned into pure white by the adaptation." @@ -13419,27 +13968,27 @@ "这是色度适应前的场景照明物的颜色\n" "这个颜色将通过适应变成纯白色。" -#: ../src/iop/channelmixerrgb.c:4431 +#: ../src/iop/channelmixerrgb.c:4499 msgid "picker" msgstr "取色器" -#: ../src/iop/channelmixerrgb.c:4433 ../src/iop/temperature.c:2047 +#: ../src/iop/channelmixerrgb.c:4501 ../src/iop/temperature.c:2015 msgid "set white balance to detected from area" msgstr "将白平衡设置为从区域检测" -#: ../src/iop/channelmixerrgb.c:4437 ../src/iop/negadoctor.c:953 +#: ../src/iop/channelmixerrgb.c:4505 ../src/iop/negadoctor.c:972 msgid "illuminant" msgstr "光照" -#: ../src/iop/channelmixerrgb.c:4443 ../src/iop/temperature.c:2107 +#: ../src/iop/channelmixerrgb.c:4511 ../src/iop/temperature.c:2072 msgid "temperature" msgstr "色温" -#: ../src/iop/channelmixerrgb.c:4474 -msgid "spot color mapping" -msgstr "专色映射 (Spot Color Mapping)" +#: ../src/iop/channelmixerrgb.c:4542 +msgid "area color mapping" +msgstr "区域颜色映射" -#: ../src/iop/channelmixerrgb.c:4480 +#: ../src/iop/channelmixerrgb.c:4548 msgid "" "define a target chromaticity (hue and chroma) for a particular region of the " "image (the control sample), which you then match against the same target " @@ -13450,17 +13999,17 @@ "为选择的部分图像(对照样本)定义目标颜色(色相与色度)。此颜色将作为目标色应" "用到其他图像。对照图像可以是拍摄对象的重要部分,或一个有持续光照的静止表面。" -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/channelmixerrgb.c:4502 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/channelmixerrgb.c:4573 +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/channelmixerrgb.c:4570 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/channelmixerrgb.c:4641 msgid "mapping" msgstr "映射" -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/exposure.c:1188 -msgid "spot mode" -msgstr "点模式" +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/exposure.c:1206 +msgid "area mode" +msgstr "区域模式" -#: ../src/iop/channelmixerrgb.c:4488 +#: ../src/iop/channelmixerrgb.c:4556 msgid "" "\"correction\" automatically adjust the illuminant\n" "such that the input color is mapped to the target.\n" @@ -13472,19 +14021,19 @@ "选项“测量(measure)”将直接显示输入颜色是\n" "如何被 CAT 映射的,可被用于定义目标颜色。" -#: ../src/iop/channelmixerrgb.c:4493 ../src/iop/exposure.c:1194 +#: ../src/iop/channelmixerrgb.c:4561 ../src/iop/exposure.c:1212 msgid "correction" msgstr "修正(correction)" -#: ../src/iop/channelmixerrgb.c:4494 ../src/iop/exposure.c:1195 +#: ../src/iop/channelmixerrgb.c:4562 ../src/iop/exposure.c:1213 msgid "measure" msgstr "测量(measure)" -#: ../src/iop/channelmixerrgb.c:4500 +#: ../src/iop/channelmixerrgb.c:4568 msgid "take channel mixing into account" msgstr "考虑通道混合" -#: ../src/iop/channelmixerrgb.c:4507 +#: ../src/iop/channelmixerrgb.c:4575 msgid "" "compute the target by taking the channel mixing into account.\n" "if disabled, only the CAT is considered." @@ -13492,16 +14041,16 @@ "计算目标颜色时考虑通道混合(channel mixing)\n" "若关闭此选项,仅有色彩适应变换(CAT)被用于计算。" -#: ../src/iop/channelmixerrgb.c:4519 ../src/iop/exposure.c:1202 +#: ../src/iop/channelmixerrgb.c:4587 ../src/iop/exposure.c:1220 msgctxt "section" msgid "input" msgstr "输入" -#: ../src/iop/channelmixerrgb.c:4526 ../src/iop/exposure.c:1210 +#: ../src/iop/channelmixerrgb.c:4594 ../src/iop/exposure.c:1228 msgid "the input color that should be mapped to the target" msgstr "被映射到目标的的输入颜色" -#: ../src/iop/channelmixerrgb.c:4532 +#: ../src/iop/channelmixerrgb.c:4600 msgid "" "L: \tN/A\n" "h: \tN/A\n" @@ -13511,114 +14060,114 @@ "h: \tN/A\n" "c: \tN/A" -#: ../src/iop/channelmixerrgb.c:4535 ../src/iop/exposure.c:1218 +#: ../src/iop/channelmixerrgb.c:4603 ../src/iop/exposure.c:1236 msgid "these LCh coordinates are computed from CIE Lab 1976 coordinates" msgstr "此处 LCh 值基于 CIE Lab 1976 计算" -#: ../src/iop/channelmixerrgb.c:4543 ../src/iop/exposure.c:1225 +#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/exposure.c:1243 msgctxt "section" msgid "target" msgstr "目标" -#: ../src/iop/channelmixerrgb.c:4550 +#: ../src/iop/channelmixerrgb.c:4618 msgid "the desired target color after mapping" msgstr "映射后所期望的目标颜色" -#: ../src/iop/channelmixerrgb.c:4589 +#: ../src/iop/channelmixerrgb.c:4657 msgid "input R" msgstr "输入 R" -#: ../src/iop/channelmixerrgb.c:4594 +#: ../src/iop/channelmixerrgb.c:4662 msgid "input G" msgstr "输入 G" -#: ../src/iop/channelmixerrgb.c:4599 +#: ../src/iop/channelmixerrgb.c:4667 msgid "input B" msgstr "输入 B" -#: ../src/iop/channelmixerrgb.c:4609 +#: ../src/iop/channelmixerrgb.c:4677 msgid "output R" msgstr "输出 R" -#: ../src/iop/channelmixerrgb.c:4610 +#: ../src/iop/channelmixerrgb.c:4678 msgid "output G" msgstr "输出 G" -#: ../src/iop/channelmixerrgb.c:4611 +#: ../src/iop/channelmixerrgb.c:4679 msgid "output B" msgstr "输出 B" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "colorfulness" msgstr "彩度" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "output colorfulness" msgstr "输出彩度" -#: ../src/iop/channelmixerrgb.c:4617 +#: ../src/iop/channelmixerrgb.c:4685 msgid "output brightness" msgstr "输出亮度" -#: ../src/iop/channelmixerrgb.c:4620 +#: ../src/iop/channelmixerrgb.c:4688 msgid "output gray" msgstr "输出灰色" -#: ../src/iop/channelmixerrgb.c:4635 +#: ../src/iop/channelmixerrgb.c:4703 msgid "calibrate with a color checker" msgstr "用颜色检查器进行校准" -#: ../src/iop/channelmixerrgb.c:4640 +#: ../src/iop/channelmixerrgb.c:4708 msgid "use a color checker target to autoset CAT and channels" msgstr "使用颜色检查器目标来自动设置色适应变换和通道" -#: ../src/iop/channelmixerrgb.c:4647 ../src/iop/channelmixerrgb.c:4660 -#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/channelmixerrgb.c:4696 -#: ../src/iop/channelmixerrgb.c:4705 ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4715 ../src/iop/channelmixerrgb.c:4728 +#: ../src/iop/channelmixerrgb.c:4746 ../src/iop/channelmixerrgb.c:4764 +#: ../src/iop/channelmixerrgb.c:4773 ../src/iop/channelmixerrgb.c:4781 msgid "calibrate" msgstr "校准" -#: ../src/iop/channelmixerrgb.c:4647 +#: ../src/iop/channelmixerrgb.c:4715 msgid "chart" msgstr "表格" -#: ../src/iop/channelmixerrgb.c:4648 +#: ../src/iop/channelmixerrgb.c:4716 msgid "choose the vendor and the type of your chart" msgstr "选择厂商和图表类型" -#: ../src/iop/channelmixerrgb.c:4650 +#: ../src/iop/channelmixerrgb.c:4718 msgid "Xrite ColorChecker 24 pre-2014" msgstr "Xrite ColorChecker 24 (2014 前的型号)" -#: ../src/iop/channelmixerrgb.c:4651 +#: ../src/iop/channelmixerrgb.c:4719 msgid "Xrite ColorChecker 24 post-2014" msgstr "Xrite ColorChecker 24 (2014 后的型号)" -#: ../src/iop/channelmixerrgb.c:4652 +#: ../src/iop/channelmixerrgb.c:4720 msgid "Datacolor SpyderCheckr 24 pre-2018" msgstr "Datacolor SpyderCheckr 24 (2018 前的型号)" -#: ../src/iop/channelmixerrgb.c:4653 +#: ../src/iop/channelmixerrgb.c:4721 msgid "Datacolor SpyderCheckr 24 post-2018" msgstr "Datacolor SpyderCheckr 24 (2018 后的型号)" -#: ../src/iop/channelmixerrgb.c:4654 +#: ../src/iop/channelmixerrgb.c:4722 msgid "Datacolor SpyderCheckr 48 pre-2018" msgstr "Datacolor SpyderCheckr 48 (2018 前的型号)" -#: ../src/iop/channelmixerrgb.c:4655 +#: ../src/iop/channelmixerrgb.c:4723 msgid "Datacolor SpyderCheckr 48 post-2018" msgstr "Datacolor SpyderCheckr 48 (2018 后的型号)" -#: ../src/iop/channelmixerrgb.c:4656 +#: ../src/iop/channelmixerrgb.c:4724 msgid "Datacolor SpyderCheckr Photo" msgstr "Datacolor SpyderCheckr 照片" -#: ../src/iop/channelmixerrgb.c:4660 +#: ../src/iop/channelmixerrgb.c:4728 msgid "optimize for" msgstr "优化用于" -#: ../src/iop/channelmixerrgb.c:4661 +#: ../src/iop/channelmixerrgb.c:4729 msgid "" "choose the colors that will be optimized with higher priority.\n" "neutral colors gives the lowest average delta E but a high maximum delta E\n" @@ -13633,35 +14182,35 @@ "选择“无”以使用两者之间的权衡\n" "其他选项是保护某些色相的特殊行为" -#: ../src/iop/channelmixerrgb.c:4668 +#: ../src/iop/channelmixerrgb.c:4736 msgid "neutral colors" msgstr "中性色" -#: ../src/iop/channelmixerrgb.c:4670 +#: ../src/iop/channelmixerrgb.c:4738 msgid "skin and soil colors" msgstr "皮肤和土壤的颜色" -#: ../src/iop/channelmixerrgb.c:4671 +#: ../src/iop/channelmixerrgb.c:4739 msgid "foliage colors" msgstr "叶子的颜色" -#: ../src/iop/channelmixerrgb.c:4672 +#: ../src/iop/channelmixerrgb.c:4740 msgid "sky and water colors" msgstr "天空和水的颜色" -#: ../src/iop/channelmixerrgb.c:4673 +#: ../src/iop/channelmixerrgb.c:4741 msgid "average delta E" msgstr "平均 delta E" -#: ../src/iop/channelmixerrgb.c:4674 +#: ../src/iop/channelmixerrgb.c:4742 msgid "maximum delta E" msgstr "最大 delta E" -#: ../src/iop/channelmixerrgb.c:4678 +#: ../src/iop/channelmixerrgb.c:4746 msgid "patch scale" msgstr "色块大小" -#: ../src/iop/channelmixerrgb.c:4681 +#: ../src/iop/channelmixerrgb.c:4749 msgid "" "reduce the radius of the patches to select the more or less central part.\n" "useful when the perspective correction is sloppy or\n" @@ -13670,31 +14219,31 @@ "缩小补丁的半径来选择或多或少的中心部分。\n" "当透视校正不严谨或补丁框架在补丁的边缘投下阴影时,这个方法很有效。" -#: ../src/iop/channelmixerrgb.c:4691 +#: ../src/iop/channelmixerrgb.c:4759 msgid "the delta E is using the CIE 2000 formula" msgstr "delta E 使用 CIE 2000 公式计算" -#: ../src/iop/channelmixerrgb.c:4696 +#: ../src/iop/channelmixerrgb.c:4764 msgid "accept" msgstr "接受" -#: ../src/iop/channelmixerrgb.c:4702 +#: ../src/iop/channelmixerrgb.c:4770 msgid "accept the computed profile and set it in the module" msgstr "接受计算出的配置文件并将其设置在模块中" -#: ../src/iop/channelmixerrgb.c:4705 +#: ../src/iop/channelmixerrgb.c:4773 msgid "recompute" msgstr "重新计算" -#: ../src/iop/channelmixerrgb.c:4709 +#: ../src/iop/channelmixerrgb.c:4777 msgid "recompute the profile" msgstr "重新计算配置" -#: ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4781 msgid "validate" msgstr "验证" -#: ../src/iop/channelmixerrgb.c:4717 +#: ../src/iop/channelmixerrgb.c:4785 msgid "check the output delta E" msgstr "检查输出 delta E" @@ -13708,160 +14257,160 @@ "this module is deprecated. better use new local contrast module instead." msgstr "此模块已弃用。最好改用新的‘局部对比度’模块。" -#: ../src/iop/clahe.c:337 ../src/iop/sharpen.c:445 +#: ../src/iop/clahe.c:339 ../src/iop/sharpen.c:440 msgid "amount" msgstr "总量" -#: ../src/iop/clahe.c:346 +#: ../src/iop/clahe.c:348 msgid "size of features to preserve" msgstr "保持特性大小" -#: ../src/iop/clahe.c:347 ../src/iop/nlmeans.c:464 +#: ../src/iop/clahe.c:349 ../src/iop/nlmeans.c:467 msgid "strength of the effect" msgstr "效果的力度" -#: ../src/iop/clipping.c:304 +#: ../src/iop/clipping.c:347 msgid "" "this module is deprecated. please use the crop, orientation and/or rotate " "and perspective modules instead." msgstr "此模块已弃用。请使用裁剪、方向、旋转与透视模块替代。" -#: ../src/iop/clipping.c:309 +#: ../src/iop/clipping.c:352 msgid "crop and rotate" msgstr "裁剪和旋转" -#: ../src/iop/clipping.c:314 +#: ../src/iop/clipping.c:357 msgid "reframe|perspective|keystone|distortion" msgstr "边框|透视|梯度|失真" -#: ../src/iop/clipping.c:319 +#: ../src/iop/clipping.c:362 msgid "change the framing and correct the perspective" msgstr "改变边框比例,纠正视角" -#: ../src/iop/clipping.c:1394 ../src/iop/clipping.c:2120 ../src/iop/crop.c:517 -#: ../src/iop/crop.c:1117 +#: ../src/iop/clipping.c:1447 ../src/iop/clipping.c:2173 ../src/iop/crop.c:501 +#: ../src/iop/crop.c:1101 msgid "original image" msgstr "原始图像" -#: ../src/iop/clipping.c:1698 ../src/iop/crop.c:824 +#: ../src/iop/clipping.c:1751 ../src/iop/crop.c:808 msgid "invalid ratio format. it should be \"number:number\"" msgstr "无效的比例格式。请以“数字:数字”输入" -#: ../src/iop/clipping.c:1714 ../src/iop/crop.c:840 +#: ../src/iop/clipping.c:1767 ../src/iop/crop.c:824 msgid "invalid ratio format. it should be a positive number" msgstr "无效的比例格式。需要是一个正数" -#: ../src/iop/clipping.c:1903 ../src/iop/clipping.c:2111 +#: ../src/iop/clipping.c:1956 ../src/iop/clipping.c:2164 msgid "full" msgstr "完整" -#: ../src/iop/clipping.c:1904 +#: ../src/iop/clipping.c:1957 msgid "old system" msgstr "旧系统" -#: ../src/iop/clipping.c:1905 +#: ../src/iop/clipping.c:1958 msgid "correction applied" msgstr "修正已应用" -#: ../src/iop/clipping.c:2089 +#: ../src/iop/clipping.c:2142 msgid "main" msgstr "主要" -#: ../src/iop/clipping.c:2098 +#: ../src/iop/clipping.c:2151 msgid "mirror image horizontally and/or vertically" msgstr "镜像图像水平和/或垂直" -#: ../src/iop/clipping.c:2101 +#: ../src/iop/clipping.c:2154 msgid "angle" msgstr "角度" -#: ../src/iop/clipping.c:2104 +#: ../src/iop/clipping.c:2157 msgid "right-click and drag a line on the image to drag a straight line" msgstr "右击在图像上拖线可以得到一条直线" -#: ../src/iop/clipping.c:2107 +#: ../src/iop/clipping.c:2160 msgid "keystone" msgstr "梯形畸变" -#: ../src/iop/clipping.c:2112 +#: ../src/iop/clipping.c:2165 msgid "set perspective correction for your image" msgstr "为您的图像设置透视校正" -#: ../src/iop/clipping.c:2119 ../src/iop/crop.c:1116 +#: ../src/iop/clipping.c:2172 ../src/iop/crop.c:1100 msgid "freehand" msgstr "无限制" -#: ../src/iop/clipping.c:2122 ../src/iop/crop.c:1119 +#: ../src/iop/clipping.c:2175 ../src/iop/crop.c:1103 msgid "10:8 in print" msgstr "打印(10:8)" -#: ../src/iop/clipping.c:2123 ../src/iop/crop.c:1120 +#: ../src/iop/clipping.c:2176 ../src/iop/crop.c:1104 msgid "5:4, 4x5, 8x10" msgstr "5:4、4x5、8x10" -#: ../src/iop/clipping.c:2124 ../src/iop/crop.c:1121 +#: ../src/iop/clipping.c:2177 ../src/iop/crop.c:1105 msgid "11x14" msgstr "11x14" -#: ../src/iop/clipping.c:2125 ../src/iop/crop.c:1122 +#: ../src/iop/clipping.c:2178 ../src/iop/crop.c:1106 msgid "8.5x11, letter" msgstr "8.5x11、信纸" -#: ../src/iop/clipping.c:2126 ../src/iop/crop.c:1123 +#: ../src/iop/clipping.c:2179 ../src/iop/crop.c:1107 msgid "4:3, VGA, TV" msgstr "4:3、VGA、电视" -#: ../src/iop/clipping.c:2127 ../src/iop/crop.c:1124 +#: ../src/iop/clipping.c:2180 ../src/iop/crop.c:1108 msgid "5x7" msgstr "5x7" -#: ../src/iop/clipping.c:2128 ../src/iop/crop.c:1125 +#: ../src/iop/clipping.c:2181 ../src/iop/crop.c:1109 msgid "ISO 216, DIN 476, A4" msgstr "ISO 216、DIN 476、A4" -#: ../src/iop/clipping.c:2129 ../src/iop/crop.c:1126 +#: ../src/iop/clipping.c:2182 ../src/iop/crop.c:1110 msgid "3:2, 4x6, 35mm" msgstr "3:2、4x6、35mm" -#: ../src/iop/clipping.c:2130 ../src/iop/crop.c:1127 +#: ../src/iop/clipping.c:2183 ../src/iop/crop.c:1111 msgid "16:10, 8x5" msgstr "16:10、8x5" -#: ../src/iop/clipping.c:2132 ../src/iop/crop.c:1129 +#: ../src/iop/clipping.c:2185 ../src/iop/crop.c:1113 msgid "16:9, HDTV" msgstr "16:9、高清电视" -#: ../src/iop/clipping.c:2133 ../src/iop/crop.c:1130 +#: ../src/iop/clipping.c:2186 ../src/iop/crop.c:1114 msgid "widescreen" msgstr "宽屏(widescreen)" -#: ../src/iop/clipping.c:2134 ../src/iop/crop.c:1131 +#: ../src/iop/clipping.c:2187 ../src/iop/crop.c:1115 msgid "2:1, univisium" msgstr "2:1,图像一体化(univisium)" -#: ../src/iop/clipping.c:2135 ../src/iop/crop.c:1132 +#: ../src/iop/clipping.c:2188 ../src/iop/crop.c:1116 msgid "cinemascope" msgstr "宽银幕(cinemascope)" -#: ../src/iop/clipping.c:2136 ../src/iop/crop.c:1133 +#: ../src/iop/clipping.c:2189 ../src/iop/crop.c:1117 msgid "21:9" msgstr "21:9" -#: ../src/iop/clipping.c:2137 ../src/iop/crop.c:1134 +#: ../src/iop/clipping.c:2190 ../src/iop/crop.c:1118 msgid "anamorphic" msgstr "变形宽银幕(anamorphic)" -#: ../src/iop/clipping.c:2138 ../src/iop/crop.c:1135 +#: ../src/iop/clipping.c:2191 ../src/iop/crop.c:1119 msgid "3:1, panorama" msgstr "3:1、全景" -#: ../src/iop/clipping.c:2170 ../src/iop/clipping.c:2182 ../src/iop/crop.c:1171 -#: ../src/iop/crop.c:1187 +#: ../src/iop/clipping.c:2223 ../src/iop/clipping.c:2235 ../src/iop/crop.c:1155 +#: ../src/iop/crop.c:1171 #, c-format msgid "invalid ratio format for `%s'. it should be \"number:number\"" msgstr "无效的比例格式“%s”。请以“数字:数字”输入" -#: ../src/iop/clipping.c:2229 ../src/iop/crop.c:1238 +#: ../src/iop/clipping.c:2282 ../src/iop/crop.c:1222 msgid "" "set the aspect ratio\n" "the list is sorted: from most square to least square\n" @@ -13872,31 +14421,31 @@ "该列表按照从最接近正方形到最扁/狭窄排序\n" "要使用自定义的宽高比,请打开选择框并以 x:y 或小数形式输入" -#: ../src/iop/clipping.c:2236 ../src/iop/crop.c:1252 +#: ../src/iop/clipping.c:2289 ../src/iop/crop.c:1236 msgid "margins" msgstr "边距" -#: ../src/iop/clipping.c:2241 ../src/iop/crop.c:1262 +#: ../src/iop/clipping.c:2294 ../src/iop/crop.c:1246 msgid "the left margin cannot overlap with the right margin" msgstr "左边距不能与右边距重叠" -#: ../src/iop/clipping.c:2248 ../src/iop/crop.c:1270 +#: ../src/iop/clipping.c:2301 ../src/iop/crop.c:1254 msgid "the right margin cannot overlap with the left margin" msgstr "右边距不能与左边距重叠" -#: ../src/iop/clipping.c:2253 ../src/iop/crop.c:1276 +#: ../src/iop/clipping.c:2306 ../src/iop/crop.c:1260 msgid "the top margin cannot overlap with the bottom margin" msgstr "顶边距不能与底边距重叠" -#: ../src/iop/clipping.c:2260 ../src/iop/crop.c:1284 +#: ../src/iop/clipping.c:2313 ../src/iop/crop.c:1268 msgid "the bottom margin cannot overlap with the top margin" msgstr "底边距不能与顶边距重叠" -#: ../src/iop/clipping.c:3019 +#: ../src/iop/clipping.c:3059 msgid "<b>commit</b>: double-click, <b>straighten</b>: right-drag" msgstr "<b>确认</b>:双击,<b>拉直</b>:右键拖动" -#: ../src/iop/clipping.c:3023 +#: ../src/iop/clipping.c:3063 msgid "" "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag\n" "<b>straighten</b>: right-drag" @@ -13904,15 +14453,15 @@ "<b>调整大小</b>:拖动,<b>调整大小并保持纵横比</b>:shift + 拖动\n" "<b>取直</b>:右键拖动" -#: ../src/iop/clipping.c:3066 +#: ../src/iop/clipping.c:3104 msgid "<b>move control point</b>: drag" msgstr "<b>移动控制点</b>:拖动" -#: ../src/iop/clipping.c:3071 +#: ../src/iop/clipping.c:3109 msgid "<b>move line</b>: drag, <b>toggle symmetry</b>: click ꝏ" msgstr "<b>移动线条</b>:拖动,<b>启用/禁用对称</b>:单击 ꝏ" -#: ../src/iop/clipping.c:3076 +#: ../src/iop/clipping.c:3114 msgid "" "<b>apply</b>: click <tt>ok</tt>, <b>toggle symmetry</b>: click ꝏ\n" "<b>move line/control point</b>: drag" @@ -13920,7 +14469,7 @@ "<b>应用</b>:单击 <tt>ok</tt>,<b>启用/禁用对称</b>:单击 ꝏ\n" "<b>移动直线和控制点</b>:拖动" -#: ../src/iop/clipping.c:3083 +#: ../src/iop/clipping.c:3121 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag\n" @@ -13930,12 +14479,12 @@ "动\n" "<b>拉直</b>:右键拖动,<b>完成</b>:双击" -#: ../src/iop/clipping.c:3340 ../src/iop/crop.c:1796 +#: ../src/iop/clipping.c:3380 ../src/iop/crop.c:1770 #, c-format msgid "[%s on borders] crop" msgstr "[边缘 %s] 裁剪" -#: ../src/iop/clipping.c:3342 ../src/iop/crop.c:1798 +#: ../src/iop/clipping.c:3382 ../src/iop/crop.c:1772 #, c-format msgid "[%s on borders] crop keeping ratio" msgstr "[边缘 %s] 保持宽高比裁剪" @@ -13952,224 +14501,224 @@ msgid "adjust the look of the image" msgstr "调整图像的外观" -#: ../src/iop/colisa.c:310 +#: ../src/iop/colisa.c:304 msgid "color saturation adjustment" msgstr "色彩饱和度调整" -#: ../src/iop/colorbalance.c:150 +#: ../src/iop/colorbalance.c:152 msgid "color balance" msgstr "色彩平衡" -#: ../src/iop/colorbalance.c:155 +#: ../src/iop/colorbalance.c:157 msgid "lift gamma gain|cdl|color grading|contrast|saturation|hue" msgstr "提升、伽玛、增益|CDL|调色|对比度|饱和度|色调" -#: ../src/iop/colorbalance.c:160 +#: ../src/iop/colorbalance.c:162 msgid "shift colors selectively by luminance range" msgstr "根据亮度范围选择性偏移颜色" -#: ../src/iop/colorbalance.c:164 +#: ../src/iop/colorbalance.c:166 msgid "non-linear, Lab, scene-referred" msgstr "非线性、Lab、基于场景" #. these blobs were exported as dtstyle and copied from there: -#: ../src/iop/colorbalance.c:275 +#: ../src/iop/colorbalance.c:304 msgid "split-toning teal-orange (2nd instance)" msgstr "色调分离:青橙色(实例 2)" -#: ../src/iop/colorbalance.c:278 +#: ../src/iop/colorbalance.c:307 msgid "split-toning teal-orange (1st instance)" msgstr "色调分离:青橙色(实例 1)" -#: ../src/iop/colorbalance.c:282 +#: ../src/iop/colorbalance.c:311 msgid "generic film" msgstr "一般胶卷" -#: ../src/iop/colorbalance.c:286 +#: ../src/iop/colorbalance.c:315 msgid "similar to Kodak Portra" msgstr "模拟柯达 Portra" -#: ../src/iop/colorbalance.c:290 +#: ../src/iop/colorbalance.c:319 msgid "similar to Kodak Ektar" msgstr "模拟柯达 Ektar" -#: ../src/iop/colorbalance.c:294 +#: ../src/iop/colorbalance.c:323 msgid "similar to Kodachrome" msgstr "模拟柯达克罗姆胶卷" -#: ../src/iop/colorbalance.c:990 +#: ../src/iop/colorbalance.c:964 msgid "optimize luma from patches" msgstr "从色块优化亮度" -#: ../src/iop/colorbalance.c:992 ../src/iop/colorbalance.c:2110 +#: ../src/iop/colorbalance.c:966 ../src/iop/colorbalance.c:2085 msgid "optimize luma" msgstr "优化亮度" -#: ../src/iop/colorbalance.c:996 +#: ../src/iop/colorbalance.c:970 msgid "neutralize colors from patches" msgstr "从色块中和颜色" -#: ../src/iop/colorbalance.c:998 ../src/iop/colorbalance.c:2116 +#: ../src/iop/colorbalance.c:972 ../src/iop/colorbalance.c:2091 msgid "neutralize colors" msgstr "中和颜色" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "offset" msgstr "偏移" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "power" msgstr "乘方" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "slope" msgstr "斜率" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "lift" msgstr "提升" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gamma" msgstr "伽马" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gain" msgstr "增益" -#: ../src/iop/colorbalance.c:1787 +#: ../src/iop/colorbalance.c:1762 msgctxt "section" msgid "shadows: lift / offset" msgstr "阴影:提升(lift)/偏移(offset)" -#: ../src/iop/colorbalance.c:1788 +#: ../src/iop/colorbalance.c:1763 msgctxt "section" msgid "mid-tones: gamma / power" msgstr "中间调:伽马/乘方" -#: ../src/iop/colorbalance.c:1789 +#: ../src/iop/colorbalance.c:1764 msgctxt "section" msgid "highlights: gain / slope" msgstr "高光:增益/斜率" -#: ../src/iop/colorbalance.c:1813 +#: ../src/iop/colorbalance.c:1788 msgid "shadows / mid-tones / highlights" msgstr "阴影/中间调/高光" -#: ../src/iop/colorbalance.c:1910 ../src/iop/colorbalance.c:1919 +#: ../src/iop/colorbalance.c:1885 ../src/iop/colorbalance.c:1894 msgid "color-grading mapping method" msgstr "色彩分级映射法" -#: ../src/iop/colorbalance.c:1914 +#: ../src/iop/colorbalance.c:1889 msgid "color control sliders" msgstr "颜色控制滑块" -#: ../src/iop/colorbalance.c:1915 ../src/libs/colorpicker.c:51 +#: ../src/iop/colorbalance.c:1890 ../src/libs/colorpicker.c:51 msgid "HSL" msgstr "HSL" -#: ../src/iop/colorbalance.c:1916 +#: ../src/iop/colorbalance.c:1891 msgid "RGBL" msgstr "RGBL" -#: ../src/iop/colorbalance.c:1928 +#: ../src/iop/colorbalance.c:1903 msgctxt "section" msgid "master" msgstr "主控" -#: ../src/iop/colorbalance.c:1934 +#: ../src/iop/colorbalance.c:1909 msgid "saturation correction before the color balance" msgstr "色彩平衡前的饱和度校正" -#: ../src/iop/colorbalance.c:1940 +#: ../src/iop/colorbalance.c:1915 msgid "saturation correction after the color balance" msgstr "色彩平衡后的饱和度校正" -#: ../src/iop/colorbalance.c:1945 +#: ../src/iop/colorbalance.c:1920 msgid "adjust to match a neutral tone" msgstr "调整以匹配出中间调" #. is set in _configure_slider_blocks -#: ../src/iop/colorbalance.c:2003 +#: ../src/iop/colorbalance.c:1978 msgid "click to cycle layout" msgstr "单击以循环布局" -#: ../src/iop/colorbalance.c:2037 +#: ../src/iop/colorbalance.c:2012 msgid "factor" msgstr "系数" -#: ../src/iop/colorbalance.c:2051 +#: ../src/iop/colorbalance.c:2026 msgid "select the hue" msgstr "选择色相" -#: ../src/iop/colorbalance.c:2063 +#: ../src/iop/colorbalance.c:2038 msgid "select the saturation" msgstr "选择饱和度" -#: ../src/iop/colorbalance.c:2082 +#: ../src/iop/colorbalance.c:2057 msgid "factor of lift/offset" msgstr "提升/偏移的系数" -#: ../src/iop/colorbalance.c:2083 +#: ../src/iop/colorbalance.c:2058 msgid "factor of red for lift/offset" msgstr "红色的提升/偏移系数" -#: ../src/iop/colorbalance.c:2084 +#: ../src/iop/colorbalance.c:2059 msgid "factor of green for lift/offset" msgstr "绿色的提升/偏移系数" -#: ../src/iop/colorbalance.c:2085 +#: ../src/iop/colorbalance.c:2060 msgid "factor of blue for lift/offset" msgstr "蓝色的提升/偏移系数" -#: ../src/iop/colorbalance.c:2088 +#: ../src/iop/colorbalance.c:2063 msgid "factor of gamma/power" msgstr "伽马/乘方的系数" -#: ../src/iop/colorbalance.c:2089 +#: ../src/iop/colorbalance.c:2064 msgid "factor of red for gamma/power" msgstr "红色的伽马/乘方系数" -#: ../src/iop/colorbalance.c:2090 +#: ../src/iop/colorbalance.c:2065 msgid "factor of green for gamma/power" msgstr "绿色的伽马/乘方系数" -#: ../src/iop/colorbalance.c:2091 +#: ../src/iop/colorbalance.c:2066 msgid "factor of blue for gamma/power" msgstr "蓝色的伽马/乘方系数" -#: ../src/iop/colorbalance.c:2094 +#: ../src/iop/colorbalance.c:2069 msgid "factor of gain/slope" msgstr "增益/斜率的系数" -#: ../src/iop/colorbalance.c:2095 +#: ../src/iop/colorbalance.c:2070 msgid "factor of red for gain/slope" msgstr "红色的增益/斜率系数" -#: ../src/iop/colorbalance.c:2096 +#: ../src/iop/colorbalance.c:2071 msgid "factor of green for gain/slope" msgstr "绿色的增益/斜率系数" -#: ../src/iop/colorbalance.c:2097 +#: ../src/iop/colorbalance.c:2072 msgid "factor of blue for gain/slope" msgstr "蓝色的增益/斜率系数" -#: ../src/iop/colorbalance.c:2106 +#: ../src/iop/colorbalance.c:2081 msgctxt "section" msgid "auto optimizers" msgstr "自动优化器" -#: ../src/iop/colorbalance.c:2111 +#: ../src/iop/colorbalance.c:2086 msgid "fit the whole histogram and center the average luma" msgstr "拟合整个直方图并将正常亮度居中" -#: ../src/iop/colorbalance.c:2117 +#: ../src/iop/colorbalance.c:2092 msgid "optimize the RGB curves to remove color casts" msgstr "优化 RGB 曲线以移除色偏" @@ -14191,259 +14740,259 @@ "shadows, mid-tones and highlights" msgstr "调色工具使用 alpha 通道遮罩来分离阴影、中间调和高光" -#: ../src/iop/colorbalancergb.c:443 +#: ../src/iop/colorbalancergb.c:536 msgid "add basic colorfulness (legacy)" msgstr "增加基本的色彩(已过时)" -#: ../src/iop/colorbalancergb.c:452 +#: ../src/iop/colorbalancergb.c:545 msgid "basic colorfulness: natural skin" msgstr "基本色彩:自然肤色" -#: ../src/iop/colorbalancergb.c:458 +#: ../src/iop/colorbalancergb.c:551 msgid "basic colorfulness: vibrant colors" msgstr "基本色彩: 鲜艳色彩" -#: ../src/iop/colorbalancergb.c:464 +#: ../src/iop/colorbalancergb.c:557 msgid "basic colorfulness: standard" msgstr "基本色彩:标准色" -#: ../src/iop/colorbalancergb.c:937 +#: ../src/iop/colorbalancergb.c:1022 msgid "colorbalance works only on RGB input" msgstr "颜色平衡仅适用于 RGB 输入" -#: ../src/iop/colorbalancergb.c:1506 ../src/iop/colorzones.c:2164 -#: ../src/iop/retouch.c:1884 ../src/iop/toneequal.c:1966 +#: ../src/iop/colorbalancergb.c:1577 ../src/iop/colorzones.c:2394 +#: ../src/iop/retouch.c:2069 ../src/iop/toneequal.c:1996 msgid "cannot display masks when the blending mask is displayed" msgstr "显示混合蒙版时不能显示其他蒙版" #. Page master -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "master" msgstr "主控" -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "global grading" msgstr "全局调色" -#: ../src/iop/colorbalancergb.c:1880 +#: ../src/iop/colorbalancergb.c:1951 msgid "rotate all hues by an angle, at the same luminance" msgstr "在相同的亮度下,将所有色调旋转一个角度" -#: ../src/iop/colorbalancergb.c:1886 +#: ../src/iop/colorbalancergb.c:1957 msgid "increase colorfulness mostly on low-chroma colors" msgstr "在大多数低色度的颜色上增加色彩的鲜艳度" -#: ../src/iop/colorbalancergb.c:1892 +#: ../src/iop/colorbalancergb.c:1963 msgid "increase the contrast at constant chromaticity" msgstr "在恒定色度下增加对比度" -#: ../src/iop/colorbalancergb.c:1894 +#: ../src/iop/colorbalancergb.c:1965 msgctxt "section" msgid "linear chroma grading" msgstr "线性色度调整" -#: ../src/iop/colorbalancergb.c:1901 +#: ../src/iop/colorbalancergb.c:1972 msgid "increase colorfulness at same luminance globally" msgstr "在相同的亮度下,增加全局色彩的鲜艳度" -#: ../src/iop/colorbalancergb.c:1906 +#: ../src/iop/colorbalancergb.c:1977 msgid "increase colorfulness at same luminance mostly in shadows" msgstr "在相同的亮度下,增加大多阴影区域色彩的鲜艳度" -#: ../src/iop/colorbalancergb.c:1911 +#: ../src/iop/colorbalancergb.c:1982 msgid "increase colorfulness at same luminance mostly in mid-tones" msgstr "在相同的亮度下,增加大多中间亮度区域色彩的鲜艳度" -#: ../src/iop/colorbalancergb.c:1916 +#: ../src/iop/colorbalancergb.c:1987 msgid "increase colorfulness at same luminance mostly in highlights" msgstr "在相同的亮度下,增加大多高光区域色彩的鲜艳度" -#: ../src/iop/colorbalancergb.c:1918 +#: ../src/iop/colorbalancergb.c:1989 msgctxt "section" msgid "perceptual saturation grading" msgstr "感知饱和度调整" -#: ../src/iop/colorbalancergb.c:1924 +#: ../src/iop/colorbalancergb.c:1995 msgid "add or remove saturation by an absolute amount" msgstr "以绝对数量添加或减少饱和度" -#: ../src/iop/colorbalancergb.c:1929 ../src/iop/colorbalancergb.c:1934 -#: ../src/iop/colorbalancergb.c:1939 +#: ../src/iop/colorbalancergb.c:2000 ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2010 msgid "" "increase or decrease saturation proportionally to the original pixel " "saturation" msgstr "根据原始像素的饱和度按比例增加或减少饱和度" -#: ../src/iop/colorbalancergb.c:1941 +#: ../src/iop/colorbalancergb.c:2012 msgctxt "section" msgid "perceptual brilliance grading" msgstr "感知亮度调整" -#: ../src/iop/colorbalancergb.c:1942 +#: ../src/iop/colorbalancergb.c:2013 msgid "brilliance" msgstr "鲜艳度" -#: ../src/iop/colorbalancergb.c:1947 +#: ../src/iop/colorbalancergb.c:2018 msgid "add or remove brilliance by an absolute amount" msgstr "以绝对数量添加或减少亮度" -#: ../src/iop/colorbalancergb.c:1952 ../src/iop/colorbalancergb.c:1957 -#: ../src/iop/colorbalancergb.c:1962 +#: ../src/iop/colorbalancergb.c:2023 ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2033 msgid "" "increase or decrease brilliance proportionally to the original pixel " "brilliance" msgstr "根据原始像素的饱和度按比例增加或减少亮度" #. Page 4-ways -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "4 ways" msgstr "4 个方向" -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "selective color grading" msgstr "选择性调色" -#: ../src/iop/colorbalancergb.c:1967 +#: ../src/iop/colorbalancergb.c:2038 msgctxt "section" msgid "global offset" msgstr "全局偏移" -#: ../src/iop/colorbalancergb.c:1974 +#: ../src/iop/colorbalancergb.c:2045 msgid "global luminance offset" msgstr "全局亮度偏移" -#: ../src/iop/colorbalancergb.c:1979 +#: ../src/iop/colorbalancergb.c:2050 msgid "hue of the global color offset" msgstr "全局颜色偏移的色调" -#: ../src/iop/colorbalancergb.c:1985 +#: ../src/iop/colorbalancergb.c:2056 msgid "chroma of the global color offset" msgstr "全局颜色偏移的色度" -#: ../src/iop/colorbalancergb.c:1987 +#: ../src/iop/colorbalancergb.c:2058 msgctxt "section" msgid "shadows lift" msgstr "阴影提升" -#: ../src/iop/colorbalancergb.c:1988 +#: ../src/iop/colorbalancergb.c:2059 msgid "lift" msgstr "提升" -#: ../src/iop/colorbalancergb.c:1994 +#: ../src/iop/colorbalancergb.c:2065 msgid "luminance gain in shadows" msgstr "阴影区域中的亮度增益" -#: ../src/iop/colorbalancergb.c:1999 +#: ../src/iop/colorbalancergb.c:2070 msgid "hue of the color gain in shadows" msgstr "阴影区域中颜色增益的色调" -#: ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2076 msgid "chroma of the color gain in shadows" msgstr "阴影区域中颜色增益的色度" -#: ../src/iop/colorbalancergb.c:2007 +#: ../src/iop/colorbalancergb.c:2078 msgctxt "section" msgid "highlights gain" msgstr "高光增益" -#: ../src/iop/colorbalancergb.c:2008 +#: ../src/iop/colorbalancergb.c:2079 msgid "gain" msgstr "增益" -#: ../src/iop/colorbalancergb.c:2014 +#: ../src/iop/colorbalancergb.c:2085 msgid "luminance gain in highlights" msgstr "高光区域中的亮度增益" -#: ../src/iop/colorbalancergb.c:2019 +#: ../src/iop/colorbalancergb.c:2090 msgid "hue of the color gain in highlights" msgstr "高光区域中颜色增益的色调" -#: ../src/iop/colorbalancergb.c:2025 +#: ../src/iop/colorbalancergb.c:2096 msgid "chroma of the color gain in highlights" msgstr "高光区域中颜色增益的色度" -#: ../src/iop/colorbalancergb.c:2027 +#: ../src/iop/colorbalancergb.c:2098 msgctxt "section" msgid "power" msgstr "乘方" -#: ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2099 msgid "power" msgstr "乘方" -#: ../src/iop/colorbalancergb.c:2034 +#: ../src/iop/colorbalancergb.c:2105 msgid "luminance exponent in mid-tones" msgstr "中间色的亮度指数" -#: ../src/iop/colorbalancergb.c:2039 +#: ../src/iop/colorbalancergb.c:2110 msgid "hue of the color exponent in mid-tones" msgstr "中间色亮度指数的色调" -#: ../src/iop/colorbalancergb.c:2045 +#: ../src/iop/colorbalancergb.c:2116 msgid "chroma of the color exponent in mid-tones" msgstr "中间色亮度指数的色度" #. Page masks -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "masks" msgstr "蒙版" -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "isolate luminances" msgstr "分离亮度" -#: ../src/iop/colorbalancergb.c:2052 +#: ../src/iop/colorbalancergb.c:2123 msgid "choose in which uniform color space the saturation is computed" msgstr "选取采用哪一种均匀色彩空间计算饱和度" -#: ../src/iop/colorbalancergb.c:2054 +#: ../src/iop/colorbalancergb.c:2125 msgctxt "section" msgid "luminance ranges" msgstr "亮度范围" -#: ../src/iop/colorbalancergb.c:2065 +#: ../src/iop/colorbalancergb.c:2136 msgid "weight of the shadows over the whole tonal range" msgstr "整个色调范围内阴影的权重" -#: ../src/iop/colorbalancergb.c:2073 +#: ../src/iop/colorbalancergb.c:2144 msgid "position of the middle-gray reference for masking" msgstr "用于蒙版中间灰参考色的位置" -#: ../src/iop/colorbalancergb.c:2081 +#: ../src/iop/colorbalancergb.c:2152 msgid "weights of highlights over the whole tonal range" msgstr "整个色调范围内高光的权重" -#: ../src/iop/colorbalancergb.c:2086 +#: ../src/iop/colorbalancergb.c:2157 msgctxt "section" msgid "threshold" msgstr "阈值" -#: ../src/iop/colorbalancergb.c:2091 +#: ../src/iop/colorbalancergb.c:2162 msgid "peak white luminance value used to normalize the power function" msgstr "用于归一化功率函数的峰值白色亮度值" -#: ../src/iop/colorbalancergb.c:2097 +#: ../src/iop/colorbalancergb.c:2168 msgid "peak gray luminance value used to normalize the power function" msgstr "用于归一化功率函数的峰值灰色亮度值" -#: ../src/iop/colorbalancergb.c:2099 +#: ../src/iop/colorbalancergb.c:2170 msgctxt "section" msgid "mask preview settings" msgstr "蒙板预览设置" -#: ../src/iop/colorbalancergb.c:2102 +#: ../src/iop/colorbalancergb.c:2173 msgid "checkerboard color 1" msgstr "棋盘格颜色 1" -#: ../src/iop/colorbalancergb.c:2105 ../src/iop/colorbalancergb.c:2114 +#: ../src/iop/colorbalancergb.c:2176 ../src/iop/colorbalancergb.c:2185 msgid "select color of the checkerboard from a swatch" msgstr "从色表中选择棋盘格颜色" -#: ../src/iop/colorbalancergb.c:2111 +#: ../src/iop/colorbalancergb.c:2182 msgid "checkerboard color 2" msgstr "棋盘格颜色 2" -#: ../src/iop/colorbalancergb.c:2121 +#: ../src/iop/colorbalancergb.c:2192 msgid "checkerboard size" msgstr "棋盘格大小" @@ -14460,11 +15009,11 @@ msgstr "执行颜色空间校正并应用相应的设置" #: ../src/iop/colorchecker.c:131 ../src/iop/colorchecker.c:133 -#: ../src/iop/colorize.c:106 ../src/iop/colormapping.c:154 -#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:136 -#: ../src/iop/colorzones.c:146 ../src/iop/defringe.c:83 ../src/iop/levels.c:139 -#: ../src/iop/monochrome.c:99 ../src/iop/shadhi.c:198 -#: ../src/iop/tonecurve.c:212 ../src/iop/vibrance.c:96 +#: ../src/iop/colorize.c:99 ../src/iop/colormapping.c:154 +#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:121 +#: ../src/iop/colorzones.c:147 ../src/iop/defringe.c:83 ../src/iop/levels.c:141 +#: ../src/iop/monochrome.c:101 ../src/iop/shadhi.c:145 +#: ../src/iop/tonecurve.c:185 ../src/iop/vibrance.c:98 msgid "linear or non-linear, Lab, display-referred" msgstr "线性或非线性、Lab、基于显示" @@ -14472,40 +15021,40 @@ msgid "defined by profile, Lab" msgstr "由配置文件定义、Lab" -#: ../src/iop/colorchecker.c:294 +#: ../src/iop/colorchecker.c:308 msgid "it8 skin tones" msgstr "it8 肤色" -#: ../src/iop/colorchecker.c:310 +#: ../src/iop/colorchecker.c:324 msgid "Helmholtz/Kohlrausch monochrome" msgstr "赫尔姆霍-科耳劳奇单色照片" -#: ../src/iop/colorchecker.c:327 +#: ../src/iop/colorchecker.c:341 msgid "Fuji Astia emulation" msgstr "模拟:富士 Astia" -#: ../src/iop/colorchecker.c:341 +#: ../src/iop/colorchecker.c:355 msgid "Fuji Classic Chrome emulation" msgstr "模拟:富士 Classic Chrome" -#: ../src/iop/colorchecker.c:355 +#: ../src/iop/colorchecker.c:369 msgid "Fuji Monochrome emulation" msgstr "模拟:富士 Monochrome" -#: ../src/iop/colorchecker.c:369 +#: ../src/iop/colorchecker.c:383 msgid "Fuji Provia emulation" msgstr "模拟:富士 Provia" -#: ../src/iop/colorchecker.c:383 +#: ../src/iop/colorchecker.c:397 msgid "Fuji Velvia emulation" msgstr "模拟:富士 Velvia" -#: ../src/iop/colorchecker.c:841 ../src/iop/colorchecker.c:1436 +#: ../src/iop/colorchecker.c:846 ../src/iop/colorchecker.c:1441 #, c-format msgid "patch #%d" msgstr "色块 #%d" -#: ../src/iop/colorchecker.c:1283 +#: ../src/iop/colorchecker.c:1288 #, c-format msgid "" "(%2.2f %2.2f %2.2f)\n" @@ -14522,15 +15071,15 @@ "右键单击删除色块。\n" "shift+单击色块,可将色块颜色替换成吸管工具选中的颜色" -#: ../src/iop/colorchecker.c:1431 +#: ../src/iop/colorchecker.c:1436 msgid "patch" msgstr "色块" -#: ../src/iop/colorchecker.c:1432 +#: ../src/iop/colorchecker.c:1437 msgid "color checker patch" msgstr "色卡块" -#: ../src/iop/colorchecker.c:1446 +#: ../src/iop/colorchecker.c:1451 msgid "" "adjust target color Lab 'L' channel\n" "lower values darken target color while higher brighten it" @@ -14538,7 +15087,7 @@ "调节 Lab 空间下目标颜色的 L 通道\n" "更低的值将使颜色变暗,更高的值将使颜色变亮" -#: ../src/iop/colorchecker.c:1454 +#: ../src/iop/colorchecker.c:1459 msgid "" "adjust target color Lab 'a' channel\n" "lower values shift target color towards greens while higher shift towards " @@ -14547,11 +15096,11 @@ "调节 Lab 空间下目标颜色的 a 通道\n" "更低的值将使颜色偏绿,更高的值将使颜色偏品红" -#: ../src/iop/colorchecker.c:1457 +#: ../src/iop/colorchecker.c:1462 msgid "green-magenta offset" msgstr "绿色-品红对比" -#: ../src/iop/colorchecker.c:1466 +#: ../src/iop/colorchecker.c:1471 msgid "" "adjust target color Lab 'b' channel\n" "lower values shift target color towards blues while higher shift towards " @@ -14560,11 +15109,11 @@ "调节 Lab 空间下目标颜色的 b 通道\n" "更低的值将使颜色偏蓝,更高的值将使颜色偏黄" -#: ../src/iop/colorchecker.c:1469 +#: ../src/iop/colorchecker.c:1474 msgid "blue-yellow offset" msgstr "蓝色-黄色对比" -#: ../src/iop/colorchecker.c:1478 +#: ../src/iop/colorchecker.c:1483 msgid "" "adjust target color saturation\n" "adjusts 'a' and 'b' channels of target color in Lab space simultaneously\n" @@ -14575,11 +15124,11 @@ "同时调节 Lab 空间下目标颜色的 a 和 b 通道\n" "更低的值将减少饱和度,更高的值将增加饱和度" -#: ../src/iop/colorchecker.c:1487 +#: ../src/iop/colorchecker.c:1492 msgid "target color" msgstr "目标颜色" -#: ../src/iop/colorchecker.c:1490 +#: ../src/iop/colorchecker.c:1495 msgid "" "control target color of the patches\n" "relative - target color is relative from the patch original color\n" @@ -14589,21 +15138,21 @@ "相对 - 通过距离色块原始颜色的相对值指定目标颜色\n" "绝对 - 使用绝对 Lab 值指定目标颜色" -#: ../src/iop/colorchecker.c:1494 +#: ../src/iop/colorchecker.c:1499 msgid "absolute" msgstr "绝对的" -#: ../src/iop/colorcontrast.c:85 +#: ../src/iop/colorcontrast.c:77 msgid "color contrast" msgstr "色彩对比度" -#: ../src/iop/colorcontrast.c:95 +#: ../src/iop/colorcontrast.c:87 msgid "" "increase saturation and separation between\n" "opposite colors" msgstr "增加对比色之间的饱和度和分离度" -#: ../src/iop/colorcontrast.c:324 +#: ../src/iop/colorcontrast.c:330 msgid "" "steepness of the a* curve in Lab\n" "lower values desaturate greens and magenta while higher saturate them" @@ -14611,7 +15160,7 @@ "Lab 中 a* 曲线的陡度。\n" "值越低,绿色和品红就越不饱和,而值越高,绿色和品红就越饱和" -#: ../src/iop/colorcontrast.c:331 +#: ../src/iop/colorcontrast.c:337 msgid "" "steepness of the b* curve in Lab\n" "lower values desaturate blues and yellows while higher saturate them" @@ -14627,19 +15176,19 @@ msgid "correct white balance selectively for blacks and whites" msgstr "有选择地纠正黑与白的白平衡" -#: ../src/iop/colorcorrection.c:107 +#: ../src/iop/colorcorrection.c:109 msgid "warm tone" msgstr "暖色调" -#: ../src/iop/colorcorrection.c:115 +#: ../src/iop/colorcorrection.c:117 msgid "warming filter" msgstr "暖调滤镜" -#: ../src/iop/colorcorrection.c:123 +#: ../src/iop/colorcorrection.c:125 msgid "cooling filter" msgstr "冷调滤镜" -#: ../src/iop/colorcorrection.c:257 +#: ../src/iop/colorcorrection.c:250 msgid "" "drag the line for split-toning. bright means highlights, dark means shadows. " "use mouse wheel to change saturation." @@ -14648,7 +15197,7 @@ "白点意味着高光区域,黑点意味着阴影区域。\n" "使用鼠标滚轮更改饱和度。" -#: ../src/iop/colorcorrection.c:276 +#: ../src/iop/colorcorrection.c:269 msgid "set the global saturation" msgstr "设定全局饱和度" @@ -14665,7 +15214,7 @@ "使用色彩配置文件重新映射 RGB 值" #: ../src/iop/colorin.c:133 ../src/iop/colorout.c:89 ../src/iop/demosaic.c:293 -#: ../src/iop/rawprepare.c:158 +#: ../src/iop/rawprepare.c:174 msgid "mandatory" msgstr "必要的" @@ -14673,31 +15222,31 @@ msgid "defined by profile" msgstr "由配置文件定义" -#: ../src/iop/colorin.c:542 +#: ../src/iop/colorin.c:582 #, c-format msgid "" "can't extract matrix from colorspace `%s', it will be replaced by Rec2020 " "RGB!" msgstr "无法从色彩空间“%s”提取色彩矩阵,已使用 Rec2020 RGB 替换!" -#: ../src/iop/colorin.c:1424 +#: ../src/iop/colorin.c:1362 #, c-format msgid "`%s' color matrix not found!" msgstr "未找到“%s”色彩矩阵!" -#: ../src/iop/colorin.c:1463 +#: ../src/iop/colorin.c:1401 msgid "input profile could not be generated!" msgstr "无法生成用于导入的色彩配置!" -#: ../src/iop/colorin.c:1560 +#: ../src/iop/colorin.c:1498 msgid "unsupported input profile has been replaced by linear Rec709 RGB!" msgstr "不支持的输入色彩配置已用线性 Rec709 RGB 取代!" -#: ../src/iop/colorin.c:1844 +#: ../src/iop/colorin.c:1782 msgid "external ICC profiles" msgstr "外部 ICC 色彩配置" -#: ../src/iop/colorin.c:1889 +#: ../src/iop/colorin.c:1827 #, c-format msgid "" "embedded ICC profile properties:\n" @@ -14720,43 +15269,43 @@ "版权:<b>%s</b>\n" "\n" -#: ../src/iop/colorin.c:2084 +#: ../src/iop/colorin.c:2022 msgid "input profile" msgstr "输入配置文件" -#: ../src/iop/colorin.c:2088 +#: ../src/iop/colorin.c:2026 msgid "working profile" msgstr "工作中的配置文件" -#: ../src/iop/colorin.c:2097 +#: ../src/iop/colorin.c:2035 msgid "working ICC profiles" msgstr "工作中的 ICC 配置文件" -#: ../src/iop/colorin.c:2109 +#: ../src/iop/colorin.c:2047 msgid "confine Lab values to gamut of RGB color space" msgstr "将 Lab 值限制为 RGB 颜色空间的色域" -#: ../src/iop/colorize.c:84 +#: ../src/iop/colorize.c:75 msgid "colorize" msgstr "色彩化" -#: ../src/iop/colorize.c:104 +#: ../src/iop/colorize.c:97 msgid "overlay a solid color on the image" msgstr "在图像上覆盖纯色" -#: ../src/iop/colorize.c:341 ../src/iop/splittoning.c:485 +#: ../src/iop/colorize.c:354 ../src/iop/splittoning.c:481 msgid "select the hue tone" msgstr "选择色相的风格" -#: ../src/iop/colorize.c:347 +#: ../src/iop/colorize.c:360 msgid "select the saturation shadow tone" msgstr "选择阴影色调的饱和度" -#: ../src/iop/colorize.c:351 +#: ../src/iop/colorize.c:364 msgid "lightness of color" msgstr "色彩明度" -#: ../src/iop/colorize.c:355 +#: ../src/iop/colorize.c:368 msgid "mix value of source lightness" msgstr "源明度的混合值" @@ -14769,35 +15318,35 @@ "transfer a color palette and tonal repartition from one image to another" msgstr "将色板和色调重新划分从一个图像转移到另一个图像" -#: ../src/iop/colormapping.c:1030 +#: ../src/iop/colormapping.c:1019 msgid "source clusters:" msgstr "来源聚簇:" -#: ../src/iop/colormapping.c:1036 +#: ../src/iop/colormapping.c:1025 msgid "target clusters:" msgstr "目的聚簇:" -#: ../src/iop/colormapping.c:1045 +#: ../src/iop/colormapping.c:1034 msgid "acquire as source" msgstr "作为来源获取" -#: ../src/iop/colormapping.c:1049 +#: ../src/iop/colormapping.c:1038 msgid "analyze this image as a source image" msgstr "作为来源图像分析此图像" -#: ../src/iop/colormapping.c:1051 +#: ../src/iop/colormapping.c:1040 msgid "acquire as target" msgstr "作为目标获取" -#: ../src/iop/colormapping.c:1055 +#: ../src/iop/colormapping.c:1044 msgid "analyze this image as a target image" msgstr "作为目标图像分析此图像" -#: ../src/iop/colormapping.c:1058 +#: ../src/iop/colormapping.c:1047 msgid "number of clusters to find in image. value change resets all clusters" msgstr "图像中发现的聚簇数量:更改值将重置所有聚簇" -#: ../src/iop/colormapping.c:1061 +#: ../src/iop/colormapping.c:1050 msgid "" "how clusters are mapped. low values: based on color proximity, high values: " "based on color dominance" @@ -14805,7 +15354,7 @@ "如何映射聚簇。低阶值:基于颜色近似(color proximity),高阶值:基于颜色支配" "(color dominance)" -#: ../src/iop/colormapping.c:1066 +#: ../src/iop/colormapping.c:1055 msgid "level of histogram equalization" msgstr "直方图均衡级别" @@ -14825,112 +15374,112 @@ msgid "non-linear, RGB or Lab, display-referred" msgstr "非线性、RGB 或 Lab、基于显示" -#: ../src/iop/colorout.c:679 +#: ../src/iop/colorout.c:695 msgid "missing output profile has been replaced by sRGB!" msgstr "未找到的导出色彩档案用 sRGB 替代了!" -#: ../src/iop/colorout.c:701 +#: ../src/iop/colorout.c:717 msgid "missing softproof profile has been replaced by sRGB!" msgstr "未找到的软打样色彩档案用 sRGB 替代了!" -#: ../src/iop/colorout.c:744 +#: ../src/iop/colorout.c:760 msgid "unsupported output profile has been replaced by sRGB!" msgstr "不支持的导出色彩档案用 sRGB 替代了!" -#: ../src/iop/colorout.c:869 +#: ../src/iop/colorout.c:885 msgid "output intent" msgstr "输出目的" -#: ../src/iop/colorout.c:870 +#: ../src/iop/colorout.c:886 msgid "rendering intent" msgstr "渲染目的" -#: ../src/iop/colorout.c:872 ../src/libs/export.c:1246 +#: ../src/iop/colorout.c:888 ../src/libs/export.c:1358 #: ../src/libs/print_settings.c:2475 ../src/libs/print_settings.c:2824 -#: ../src/views/darkroom.c:2518 ../src/views/lighttable.c:1176 +#: ../src/views/darkroom.c:2359 ../src/views/lighttable.c:1176 msgid "perceptual" msgstr "可感知度" -#: ../src/iop/colorout.c:873 ../src/libs/export.c:1247 +#: ../src/iop/colorout.c:889 ../src/libs/export.c:1359 #: ../src/libs/print_settings.c:2476 ../src/libs/print_settings.c:2825 -#: ../src/views/darkroom.c:2519 ../src/views/lighttable.c:1177 +#: ../src/views/darkroom.c:2360 ../src/views/lighttable.c:1177 msgid "relative colorimetric" msgstr "相对色度" -#: ../src/iop/colorout.c:874 ../src/libs/export.c:1248 +#: ../src/iop/colorout.c:890 ../src/libs/export.c:1360 #: ../src/libs/print_settings.c:2477 ../src/libs/print_settings.c:2826 -#: ../src/views/darkroom.c:2520 ../src/views/lighttable.c:1178 +#: ../src/views/darkroom.c:2361 ../src/views/lighttable.c:1178 msgctxt "rendering intent" msgid "saturation" msgstr "饱和度" -#: ../src/iop/colorout.c:875 ../src/libs/export.c:1249 +#: ../src/iop/colorout.c:891 ../src/libs/export.c:1361 #: ../src/libs/print_settings.c:2478 ../src/libs/print_settings.c:2827 -#: ../src/views/darkroom.c:2521 ../src/views/lighttable.c:1179 +#: ../src/views/darkroom.c:2362 ../src/views/lighttable.c:1179 msgid "absolute colorimetric" msgstr "绝对色度" -#: ../src/iop/colorout.c:893 +#: ../src/iop/colorout.c:909 msgid "export ICC profiles" msgstr "输出 ICC 配置" -#: ../src/iop/colorreconstruction.c:129 +#: ../src/iop/colorreconstruction.c:114 msgid "color reconstruction" msgstr "色彩重构" -#: ../src/iop/colorreconstruction.c:134 +#: ../src/iop/colorreconstruction.c:119 msgid "recover clipped highlights by propagating surrounding colors" msgstr "通过传播周围的颜色来恢复改善过曝的高光" -#: ../src/iop/colorreconstruction.c:628 ../src/iop/colorreconstruction.c:1040 -#: ../src/iop/globaltonemap.c:193 ../src/iop/globaltonemap.c:362 -#: ../src/iop/hazeremoval.c:553 ../src/iop/hazeremoval.c:788 -#: ../src/iop/levels.c:336 +#: ../src/iop/colorreconstruction.c:647 ../src/iop/colorreconstruction.c:1053 +#: ../src/iop/globaltonemap.c:227 ../src/iop/globaltonemap.c:396 +#: ../src/iop/hazeremoval.c:541 ../src/iop/hazeremoval.c:776 +#: ../src/iop/levels.c:358 msgid "inconsistent output" msgstr "输出不一致" -#: ../src/iop/colorreconstruction.c:666 +#: ../src/iop/colorreconstruction.c:685 msgid "module `color reconstruction' failed" msgstr "模块“色彩重构”出现错误" -#: ../src/iop/colorreconstruction.c:1237 +#: ../src/iop/colorreconstruction.c:1246 msgid "spatial" msgstr "空间范围" -#: ../src/iop/colorreconstruction.c:1238 +#: ../src/iop/colorreconstruction.c:1247 msgid "range" msgstr "取值范围" -#: ../src/iop/colorreconstruction.c:1239 +#: ../src/iop/colorreconstruction.c:1248 msgid "precedence" msgstr "优先" -#: ../src/iop/colorreconstruction.c:1255 +#: ../src/iop/colorreconstruction.c:1264 msgid "pixels with lightness values above this threshold are corrected" msgstr "亮度值高于此阈值的像素将被校正" -#: ../src/iop/colorreconstruction.c:1256 +#: ../src/iop/colorreconstruction.c:1265 msgid "how far to look for replacement colors in spatial dimensions" msgstr "用多远的程度在空间维度中寻找替换颜色" -#: ../src/iop/colorreconstruction.c:1257 +#: ../src/iop/colorreconstruction.c:1266 msgid "how far to look for replacement colors in the luminance dimension" msgstr "用多远的程度在亮度维度中寻找替换颜色" -#: ../src/iop/colorreconstruction.c:1258 +#: ../src/iop/colorreconstruction.c:1267 msgid "if and how to give precedence to specific replacement colors" msgstr "是否给予或者如何给予特定替换颜色优先权" -#: ../src/iop/colorreconstruction.c:1259 +#: ../src/iop/colorreconstruction.c:1268 msgid "the hue tone which should be given precedence over other hue tones" msgstr "应优先于其他色调的色调" -#: ../src/iop/colorreconstruction.c:1261 ../src/iop/demosaic.c:1277 -#: ../src/iop/highlights.c:1168 +#: ../src/iop/colorreconstruction.c:1270 ../src/iop/demosaic.c:1324 +#: ../src/iop/highlights.c:1258 msgid "not applicable" msgstr "不可用" -#: ../src/iop/colorreconstruction.c:1262 +#: ../src/iop/colorreconstruction.c:1271 msgid "no highlights reconstruction for monochrome images" msgstr "单色照片不可进行高亮修复" @@ -14942,7 +15491,7 @@ msgid "this module is deprecated. better use color mapping module instead." msgstr "此模块已弃用。最好改用‘颜色映射’模块。" -#: ../src/iop/colortransfer.c:439 +#: ../src/iop/colortransfer.c:441 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -14952,43 +15501,43 @@ "请关掉该模块\n" "并使用新的“颜色映射”模块替代。" -#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2332 +#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2573 msgid "color zones" msgstr "色彩空间" -#: ../src/iop/colorzones.c:144 +#: ../src/iop/colorzones.c:145 msgid "selectively shift hues, chroma and lightness of pixels" msgstr "有选择地移动色相、饱和度和亮度" -#: ../src/iop/colorzones.c:606 +#: ../src/iop/colorzones.c:684 msgid "B&W: with red" msgstr "黑白:基于红色通道" -#: ../src/iop/colorzones.c:629 +#: ../src/iop/colorzones.c:707 msgid "B&W: with skin tones" msgstr "黑白:基于肤色" -#: ../src/iop/colorzones.c:652 +#: ../src/iop/colorzones.c:732 msgid "polarizing filter" msgstr "偏振片" -#: ../src/iop/colorzones.c:673 +#: ../src/iop/colorzones.c:753 msgid "natural skin tones" msgstr "自然皮肤色调" -#: ../src/iop/colorzones.c:704 +#: ../src/iop/colorzones.c:784 msgid "B&W: film" msgstr "黑白:胶片" -#: ../src/iop/colorzones.c:724 +#: ../src/iop/colorzones.c:804 msgid "HSL base setting" msgstr "HSL 基础设置" -#: ../src/iop/colorzones.c:2264 +#: ../src/iop/colorzones.c:2500 msgid "orange" msgstr "橙色" -#: ../src/iop/colorzones.c:2421 ../src/iop/rgbcurve.c:1375 +#: ../src/iop/colorzones.c:2673 ../src/iop/rgbcurve.c:1375 msgid "" "create a curve based on an area from the image\n" "drag to create a flat curve\n" @@ -15000,48 +15549,48 @@ "ctrl + 框选创建正曲线\n" "shift + 框选创建负曲线" -#: ../src/iop/colorzones.c:2425 ../src/iop/rgbcurve.c:1379 +#: ../src/iop/colorzones.c:2677 ../src/iop/rgbcurve.c:1379 msgid "create curve" msgstr "创建曲线" #. edit by area -#: ../src/iop/colorzones.c:2442 +#: ../src/iop/colorzones.c:2696 msgid "edit by area" msgstr "按区域编辑" -#: ../src/iop/colorzones.c:2447 +#: ../src/iop/colorzones.c:2702 msgid "edit the curve nodes by area" msgstr "按区域编辑曲线节点" -#: ../src/iop/colorzones.c:2454 +#: ../src/iop/colorzones.c:2710 msgid "display selection" msgstr "显示选中区域" -#: ../src/iop/colorzones.c:2463 +#: ../src/iop/colorzones.c:2722 msgid "choose selection criterion, will be the abscissa in the graph" msgstr "选择选取标准作为图中的横坐标" -#: ../src/iop/colorzones.c:2466 +#: ../src/iop/colorzones.c:2725 msgid "choose between a smoother or stronger effect" msgstr "选择更平滑或更强烈的效果" -#: ../src/iop/colorzones.c:2494 ../src/iop/rgbcurve.c:1410 -#: ../src/iop/tonecurve.c:1172 +#: ../src/iop/colorzones.c:2762 ../src/iop/rgbcurve.c:1410 +#: ../src/iop/tonecurve.c:1194 msgid "interpolation method" msgstr "插值法" -#: ../src/iop/colorzones.c:2496 ../src/iop/rgbcurve.c:1412 -#: ../src/iop/tonecurve.c:1174 +#: ../src/iop/colorzones.c:2764 ../src/iop/rgbcurve.c:1412 +#: ../src/iop/tonecurve.c:1196 msgid "centripetal spline" msgstr "向心样条" -#: ../src/iop/colorzones.c:2497 ../src/iop/rgbcurve.c:1413 -#: ../src/iop/tonecurve.c:1175 +#: ../src/iop/colorzones.c:2765 ../src/iop/rgbcurve.c:1413 +#: ../src/iop/tonecurve.c:1197 msgid "monotonic spline" msgstr "单调样条" -#: ../src/iop/colorzones.c:2500 ../src/iop/rgbcurve.c:1416 -#: ../src/iop/tonecurve.c:1177 +#: ../src/iop/colorzones.c:2768 ../src/iop/rgbcurve.c:1416 +#: ../src/iop/tonecurve.c:1199 msgid "" "change this method if you see oscillations or cusps in the curve\n" "- cubic spline is better to produce smooth curves but oscillates when nodes " @@ -15056,23 +15605,23 @@ "- 向心样条能更好地避免尖点,以及密切节点的振荡,但不太平滑。\n" "- 对于纯解析函数(log,gamma,exp)的精度,单调样条更好。" -#: ../src/iop/crop.c:132 +#: ../src/iop/crop.c:122 msgid "crop" msgstr "裁剪" -#: ../src/iop/crop.c:137 +#: ../src/iop/crop.c:127 msgid "reframe|distortion" msgstr "边框|失真" -#: ../src/iop/crop.c:143 +#: ../src/iop/crop.c:133 msgid "change the framing" msgstr "更改边框" -#: ../src/iop/crop.c:1667 +#: ../src/iop/crop.c:1651 msgid "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag" msgstr "<b>调整大小</b>:拖动,<b>调整大小并保持纵横比</b>:shift + 拖动" -#: ../src/iop/crop.c:1676 +#: ../src/iop/crop.c:1660 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag" @@ -15095,7 +15644,7 @@ "instead." msgstr "此模块已弃用。请使用色差校准模块替代。" -#: ../src/iop/defringe.c:415 +#: ../src/iop/defringe.c:417 msgid "" "method for color protection:\n" " - global average: fast, might show slightly wrong previews in high " @@ -15113,11 +15662,11 @@ "度,为需要时继续提升饱和度留出空间。\n" " - 静态:较快,仅使用阈值作为静态分界点" -#: ../src/iop/defringe.c:422 +#: ../src/iop/defringe.c:424 msgid "radius for detecting fringe" msgstr "色差条纹的探测半径" -#: ../src/iop/defringe.c:425 +#: ../src/iop/defringe.c:427 msgid "threshold for defringe, higher values mean less defringing" msgstr "去边的阈值,较高的值意味着更少的去边缘效果" @@ -15129,12 +15678,12 @@ msgid "reconstruct full RGB pixels from a sensor color filter array reading" msgstr "依照传感器色彩滤波阵列读数来重建完整的RGB像素" -#: ../src/iop/demosaic.c:1086 +#: ../src/iop/demosaic.c:1133 #, c-format msgid "`%s' color matrix not found for 4bayer image!" msgstr "未找到 4bayer 图像的“%s”颜色矩阵!" -#: ../src/iop/demosaic.c:1238 +#: ../src/iop/demosaic.c:1285 msgid "" "Bayer sensor demosaicing method, PPG and RCD are fast, AMaZE and LMMSE are " "slow.\n" @@ -15145,7 +15694,7 @@ "线性最小二乘估计(LMMSE)最适合于高 ISO 图像。\n" "双重去马赛克会使处理时间加倍。" -#: ../src/iop/demosaic.c:1242 +#: ../src/iop/demosaic.c:1289 msgid "" "X-Trans sensor demosaicing method, Markesteijn 3-pass and frequency domain " "chroma are slow.\n" @@ -15154,11 +15703,11 @@ "X-Trans传感器的去马赛克方法,Markesteijn 3-pass 和频域色度都很慢。\n" "双重去马赛克器会使处理时间加倍。" -#: ../src/iop/demosaic.c:1248 +#: ../src/iop/demosaic.c:1295 msgid "Bayer4 sensor demosaicing methods." msgstr "用于拜尔滤色传感器的去马赛克方式。" -#: ../src/iop/demosaic.c:1252 +#: ../src/iop/demosaic.c:1299 msgid "" "threshold for edge-aware median.\n" "set to 0.0 to switch off\n" @@ -15168,7 +15717,7 @@ "设为 0.0 以关闭\n" "设为 1.0 以忽略边缘" -#: ../src/iop/demosaic.c:1257 +#: ../src/iop/demosaic.c:1304 msgid "" "contrast threshold for dual demosaic.\n" "set to 0.0 for high frequency content\n" @@ -15180,7 +15729,7 @@ "对于平坦的内容,设置为 1.0\n" "切换显示蒙板" -#: ../src/iop/demosaic.c:1265 +#: ../src/iop/demosaic.c:1312 msgid "" "LMMSE refinement steps. the median steps average the output,\n" "refine adds some recalculation of red & blue channels" @@ -15188,49 +15737,49 @@ "LMMSE 细化步骤数。中位数步骤对输出进行平均化,\n" "细化步骤会增加一些红色和蓝色通道的重新计算" -#: ../src/iop/demosaic.c:1268 +#: ../src/iop/demosaic.c:1315 msgid "how many color smoothing median steps after demosaicing" msgstr "计数去马赛克后色彩平滑的中间步骤" -#: ../src/iop/demosaic.c:1271 +#: ../src/iop/demosaic.c:1318 msgid "green channels matching method" msgstr "绿色通道匹配方法" -#: ../src/iop/demosaic.c:1278 +#: ../src/iop/demosaic.c:1325 msgid "demosaicing is only used for color raw images" msgstr "去马赛克只能用于彩色 raw 图像" -#: ../src/iop/denoiseprofile.c:714 +#: ../src/iop/denoiseprofile.c:766 msgid "wavelets: chroma only" msgstr "小波:仅色度(chroma)" -#: ../src/iop/denoiseprofile.c:720 +#: ../src/iop/denoiseprofile.c:772 msgid "denoise (profiled)" msgstr "降噪(图像分析)" -#: ../src/iop/denoiseprofile.c:726 +#: ../src/iop/denoiseprofile.c:778 msgid "denoise using noise statistics profiled on sensors" msgstr "利用传感器的噪声统计数据降噪" -#: ../src/iop/denoiseprofile.c:2846 +#: ../src/iop/denoiseprofile.c:2850 #, c-format msgid "found match for ISO %d" msgstr "已发现匹配 ISO %d" -#: ../src/iop/denoiseprofile.c:2855 +#: ../src/iop/denoiseprofile.c:2859 #, c-format msgid "interpolated from ISO %d and %d" msgstr "从 ISO %d 与 %d 插值获得" -#: ../src/iop/denoiseprofile.c:3719 +#: ../src/iop/denoiseprofile.c:3723 msgid "Y0" msgstr "Y0" -#: ../src/iop/denoiseprofile.c:3720 +#: ../src/iop/denoiseprofile.c:3724 msgid "U0V0" msgstr "U0V0" -#: ../src/iop/denoiseprofile.c:3760 +#: ../src/iop/denoiseprofile.c:3764 msgid "" "use only with a perfectly\n" "uniform image if you want to\n" @@ -15239,36 +15788,36 @@ "计算噪点方差时请\n" "使用完全均匀的图像。" -#: ../src/iop/denoiseprofile.c:3766 +#: ../src/iop/denoiseprofile.c:3770 msgid "variance red: " msgstr "红色方差: " -#: ../src/iop/denoiseprofile.c:3770 +#: ../src/iop/denoiseprofile.c:3774 msgid "variance computed on the red channel" msgstr "基于红色通道计算的方差" -#: ../src/iop/denoiseprofile.c:3775 +#: ../src/iop/denoiseprofile.c:3779 msgid "variance green: " msgstr "绿色方差: " -#: ../src/iop/denoiseprofile.c:3779 +#: ../src/iop/denoiseprofile.c:3783 msgid "variance computed on the green channel" msgstr "基于绿色通道计算的方差" -#: ../src/iop/denoiseprofile.c:3784 +#: ../src/iop/denoiseprofile.c:3788 msgid "variance blue: " msgstr "蓝色方差: " -#: ../src/iop/denoiseprofile.c:3788 +#: ../src/iop/denoiseprofile.c:3792 msgid "variance computed on the blue channel" msgstr "基于蓝色通道计算的方差" -#: ../src/iop/denoiseprofile.c:3799 ../src/libs/export.c:1208 +#: ../src/iop/denoiseprofile.c:3803 ../src/libs/export.c:1320 #: ../src/libs/print_settings.c:2418 ../src/libs/print_settings.c:2774 msgid "profile" msgstr "配置文件" -#: ../src/iop/denoiseprofile.c:3833 +#: ../src/iop/denoiseprofile.c:3837 msgid "" "adapt denoising according to the\n" "white balance coefficients.\n" @@ -15281,7 +15830,7 @@ "应在第一个实例上启用,以便更好地去噪。\n" "如果早期实例已与颜色混合模式一起使用,则应禁用。" -#: ../src/iop/denoiseprofile.c:3840 +#: ../src/iop/denoiseprofile.c:3844 msgid "" "fix bugs in Anscombe transform resulting\n" "in undersmoothing of the green channel in\n" @@ -15300,11 +15849,11 @@ "启用后您将无法再使用旧版算法。" # variance-stabilization 为学术词汇 -#: ../src/iop/denoiseprofile.c:3850 +#: ../src/iop/denoiseprofile.c:3854 msgid "profile used for variance stabilization" msgstr "用于方差稳定的配置文件" -#: ../src/iop/denoiseprofile.c:3852 +#: ../src/iop/denoiseprofile.c:3856 msgid "" "method used in the denoising core.\n" "non-local means works best for `lightness' blending,\n" @@ -15314,7 +15863,7 @@ "非局部均值对于“亮度”混成效果最好,\n" "小波对于“颜色”混成效果最好" -#: ../src/iop/denoiseprofile.c:3856 +#: ../src/iop/denoiseprofile.c:3860 msgid "" "color representation used within the algorithm.\n" "RGB keeps the RGB channels separated,\n" @@ -15325,7 +15874,7 @@ "RGB保持RGB通道分离,\n" "Y0U0V0组合通道分别以色度和亮度进行去噪。" -#: ../src/iop/denoiseprofile.c:3861 +#: ../src/iop/denoiseprofile.c:3865 msgid "" "radius of the patches to match.\n" "increase for more sharpness on strong edges, and better denoising of smooth " @@ -15337,7 +15886,7 @@ "增加以使强边缘更锐利,以及更好的平滑区域去噪。\n" "如果细节过度平滑,减小此值或增加中央像素权重滑块。" -#: ../src/iop/denoiseprofile.c:3867 +#: ../src/iop/denoiseprofile.c:3871 msgid "" "emergency use only: radius of the neighborhood to search patches in. " "increase for better denoising performance, but watch the long runtimes! " @@ -15347,7 +15896,7 @@ "增加该值以获得更好的去噪性能,但要注意运行时间会更长!\n" "大的半径可能会非常慢,已经警告过你了" -#: ../src/iop/denoiseprofile.c:3873 +#: ../src/iop/denoiseprofile.c:3877 msgid "" "scattering of the neighborhood to search patches in.\n" "increase for better coarse-grain noise reduction.\n" @@ -15357,7 +15906,7 @@ "增加该值以更好的去除粗粒噪点。\n" "此选项不影响运行时间。" -#: ../src/iop/denoiseprofile.c:3877 +#: ../src/iop/denoiseprofile.c:3881 msgid "" "increase the weight of the central pixel\n" "of the patch in the patch comparison.\n" @@ -15367,11 +15916,11 @@ "在色块比较中增加色块中心像素的权重。\n" "当色块大小相当大时,对恢复细节非常有用。" -#: ../src/iop/denoiseprofile.c:3881 +#: ../src/iop/denoiseprofile.c:3885 msgid "finetune denoising strength" msgstr "调整降噪强度" -#: ../src/iop/denoiseprofile.c:3883 +#: ../src/iop/denoiseprofile.c:3887 msgid "" "controls the way parameters are autoset\n" "increase if shadows are not denoised enough\n" @@ -15382,14 +15931,14 @@ "如果阴影降噪不够或彩色噪点依然存在,则增加数值。\n" "假如你的照片曝光不足,可能会发生这种情况。" -#: ../src/iop/denoiseprofile.c:3888 +#: ../src/iop/denoiseprofile.c:3892 msgid "" "finetune shadows denoising.\n" "decrease to denoise more aggressively\n" "dark areas of the image." msgstr "微调阴影去噪。减少图像中较暗区域的噪点。" -#: ../src/iop/denoiseprofile.c:3892 +#: ../src/iop/denoiseprofile.c:3896 msgid "" "correct color cast in shadows.\n" "decrease if shadows are too purple.\n" @@ -15398,7 +15947,7 @@ "纠正阴影区域的颜色。\n" "如果阴影太紫,则减小。如果阴影太绿,则增大。" -#: ../src/iop/denoiseprofile.c:3896 +#: ../src/iop/denoiseprofile.c:3900 msgid "" "upgrade the variance stabilizing algorithm.\n" "new algorithm extends the current one.\n" @@ -15429,80 +15978,80 @@ "修复画面上损坏的区域或通过反卷积减少模糊。" #. deblurring presets -#: ../src/iop/diffuse.c:219 +#: ../src/iop/diffuse.c:246 msgid "lens deblur: soft" msgstr "镜头去光:柔软" -#: ../src/iop/diffuse.c:244 +#: ../src/iop/diffuse.c:271 msgid "lens deblur: medium" msgstr "镜头去光:中等" -#: ../src/iop/diffuse.c:269 +#: ../src/iop/diffuse.c:296 msgid "lens deblur: hard" msgstr "镜头去光:强烈" -#: ../src/iop/diffuse.c:295 +#: ../src/iop/diffuse.c:322 msgid "dehaze" msgstr "去霾" -#: ../src/iop/diffuse.c:321 +#: ../src/iop/diffuse.c:348 msgid "denoise: fine" msgstr "降噪:精细" -#: ../src/iop/diffuse.c:346 +#: ../src/iop/diffuse.c:373 msgid "denoise: medium" msgstr "降噪:中等" -#: ../src/iop/diffuse.c:371 +#: ../src/iop/diffuse.c:398 msgid "denoise: coarse" msgstr "降噪:粗糙" -#: ../src/iop/diffuse.c:446 +#: ../src/iop/diffuse.c:473 msgid "sharpen demosaicing: no AA filter" msgstr "锐化去马赛克:无抗锯齿滤镜" -#: ../src/iop/diffuse.c:472 +#: ../src/iop/diffuse.c:499 msgid "sharpen demosaicing: AA filter" msgstr "锐化去马赛克:使用抗锯齿滤镜" -#: ../src/iop/diffuse.c:499 +#: ../src/iop/diffuse.c:526 msgid "simulate watercolor" msgstr "模拟水彩效果" -#: ../src/iop/diffuse.c:524 +#: ../src/iop/diffuse.c:551 msgid "simulate line drawing" msgstr "模拟线框画效果" -#: ../src/iop/diffuse.c:576 +#: ../src/iop/diffuse.c:603 msgid "inpaint highlights" msgstr "高光填色修复" #. fast presets for slow hardware -#: ../src/iop/diffuse.c:603 +#: ../src/iop/diffuse.c:630 msgid "sharpness: fast" msgstr "锐度:快速" -#: ../src/iop/diffuse.c:655 +#: ../src/iop/diffuse.c:682 msgid "sharpness: strong" msgstr "锐度:强烈" -#: ../src/iop/diffuse.c:680 +#: ../src/iop/diffuse.c:707 msgid "local contrast: fast" msgstr "局部对比度:快速" -#: ../src/iop/diffuse.c:1391 ../src/iop/diffuse.c:1666 +#: ../src/iop/diffuse.c:1418 ../src/iop/diffuse.c:1693 msgid "diffuse/sharpen failed to allocate memory, check your RAM settings" msgstr "扩散与锐化模块未能分配内存,请检查 RAM 设置" #. Additional parameters #. Camera settings -#: ../src/iop/diffuse.c:1782 ../src/iop/splittoning.c:537 +#: ../src/iop/diffuse.c:1797 ../src/iop/splittoning.c:533 #: ../src/libs/camera.c:486 msgctxt "section" msgid "properties" msgstr "属性" -#: ../src/iop/diffuse.c:1788 +#: ../src/iop/diffuse.c:1803 msgid "" "more iterations make the effect stronger but the module slower.\n" "this is analogous to giving more time to the diffusion reaction.\n" @@ -15514,7 +16063,7 @@ "若您需要锐化或修复图像,\n" "增加迭代次数可以帮助重建。" -#: ../src/iop/diffuse.c:1797 +#: ../src/iop/diffuse.c:1812 msgid "" "main scale of the diffusion.\n" "zero makes diffusion act on the finest details more heavily.\n" @@ -15528,7 +16077,7 @@ "减少模糊或降噪时请设置为 0。\n" "处理局部对比度时请增加值。" -#: ../src/iop/diffuse.c:1807 +#: ../src/iop/diffuse.c:1822 msgid "" "width of the diffusion around the central radius.\n" "high values diffuse on a large band of radii.\n" @@ -15542,12 +16091,12 @@ "若您需要去模糊,\n" "半径应与镜头模糊的宽度保持大致相同。" -#: ../src/iop/diffuse.c:1814 +#: ../src/iop/diffuse.c:1829 msgctxt "section" msgid "speed (sharpen ↔ diffuse)" msgstr "速度 (锐化 ↔ 漫反射)" -#: ../src/iop/diffuse.c:1821 +#: ../src/iop/diffuse.c:1836 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 1st order anisotropy (set below).\n" @@ -15563,7 +16112,7 @@ "正值表示漫反射或是模糊处理,\n" "零表示跳过此操作。" -#: ../src/iop/diffuse.c:1831 +#: ../src/iop/diffuse.c:1846 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 2nd order anisotropy (set below).\n" @@ -15579,7 +16128,7 @@ "正值表示漫反射或是模糊处理,\n" "零表示跳过此操作。" -#: ../src/iop/diffuse.c:1841 +#: ../src/iop/diffuse.c:1856 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 3rd order anisotropy (set below).\n" @@ -15595,7 +16144,7 @@ "正值表示漫反射或是模糊处理,\n" "零表示跳过此操作。" -#: ../src/iop/diffuse.c:1851 +#: ../src/iop/diffuse.c:1866 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 4th order anisotropy (set below).\n" @@ -15611,12 +16160,12 @@ "正值表示漫反射或是模糊处理,\n" "零表示跳过此操作。" -#: ../src/iop/diffuse.c:1857 +#: ../src/iop/diffuse.c:1872 msgctxt "section" msgid "direction" msgstr "方向" -#: ../src/iop/diffuse.c:1864 +#: ../src/iop/diffuse.c:1879 msgid "" "direction of 1st order speed (set above).\n" "\n" @@ -15630,7 +16179,7 @@ "正值表示则会避开边缘 (等照度线),\n" "零会等效影响以上两种情况(各向同性)。" -#: ../src/iop/diffuse.c:1873 +#: ../src/iop/diffuse.c:1888 msgid "" "direction of 2nd order speed (set above).\n" "\n" @@ -15644,7 +16193,7 @@ "正值表示则会避开边缘 (等照度线),\n" "零会等效影响以上两种情况(各向同性)。" -#: ../src/iop/diffuse.c:1882 +#: ../src/iop/diffuse.c:1897 msgid "" "direction of 3rd order speed (set above).\n" "\n" @@ -15658,7 +16207,7 @@ "正值表示则会避开边缘 (等照度线),\n" "零会等效影响以上两种情况(各向同性)。" -#: ../src/iop/diffuse.c:1891 +#: ../src/iop/diffuse.c:1906 msgid "" "direction of 4th order speed (set above).\n" "\n" @@ -15672,12 +16221,12 @@ "正值表示则会避开边缘 (等照度线),\n" "零会等效影响以上两种情况(各向同性)。" -#: ../src/iop/diffuse.c:1897 +#: ../src/iop/diffuse.c:1912 msgctxt "section" msgid "edge management" msgstr "边缘管理" -#: ../src/iop/diffuse.c:1904 +#: ../src/iop/diffuse.c:1919 msgid "" "increase or decrease the sharpness of the highest frequencies.\n" "can be used to keep details after blooming,\n" @@ -15687,7 +16236,7 @@ "可用于在晕光(blooming)后保留细节。\n" "若希望单独使用,将速度设置为负值。" -#: ../src/iop/diffuse.c:1911 +#: ../src/iop/diffuse.c:1926 msgid "" "define the sensitivity of the variance penalty for edges.\n" "increase to exclude more edges from diffusion,\n" @@ -15696,7 +16245,7 @@ "设置边缘放大/削减的方差敏感度。\n" "需要减少边缘扩散、出现流苏或光环时请增加该值。" -#: ../src/iop/diffuse.c:1918 +#: ../src/iop/diffuse.c:1933 msgid "" "define the variance threshold between edge amplification and penalty.\n" "decrease if you want pixels on smooth surfaces get a boost,\n" @@ -15707,12 +16256,12 @@ "减少该值以增强平整表面上的像素,\n" "若平坦表面上出现噪点和暗色区域相比亮色区域被过度锐化,请减少该值。" -#: ../src/iop/diffuse.c:1924 +#: ../src/iop/diffuse.c:1939 msgctxt "section" msgid "diffusion spatiality" msgstr "扩散空间性" -#: ../src/iop/diffuse.c:1931 +#: ../src/iop/diffuse.c:1946 msgid "" "luminance threshold for the mask.\n" "0. disables the luminance masking and applies the module on the whole " @@ -15730,7 +16279,7 @@ msgstr "抖动或减色" #: ../src/iop/dither.c:112 -msgid "dithering|posterization|reduce bit-depth" +msgid "dithering|posterization|reduce bit depth" msgstr "抖动|减色|减少位深" #: ../src/iop/dither.c:117 @@ -15746,23 +16295,23 @@ msgstr "纠正和创作" #. add the preset. -#: ../src/iop/dither.c:147 +#: ../src/iop/dither.c:149 msgid "dither" msgstr "抖动" -#: ../src/iop/dither.c:759 +#: ../src/iop/dither.c:761 msgid "radius for blurring step" msgstr "模糊半径" -#: ../src/iop/dither.c:771 +#: ../src/iop/dither.c:773 msgid "the gradient range where to apply random dither" msgstr "使用随机抖动的渐变范围" -#: ../src/iop/dither.c:772 +#: ../src/iop/dither.c:774 msgid "gradient range" msgstr "渐变范围" -#: ../src/iop/dither.c:780 +#: ../src/iop/dither.c:782 msgid "damping level of random dither" msgstr "随机抖动的阻尼" @@ -15770,12 +16319,12 @@ msgid "legacy equalizer" msgstr "旧版均衡器" -#: ../src/iop/equalizer.c:110 +#: ../src/iop/equalizer.c:112 msgid "" "this module is deprecated. better use contrast equalizer module instead." msgstr "此模块已弃用。最好改用‘对比度均衡器’模块。" -#: ../src/iop/equalizer.c:238 +#: ../src/iop/equalizer.c:240 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -15791,33 +16340,33 @@ "using a color-safe brightening similar to increasing ISO setting" msgstr "改变图像的曝光而不影响颜色,类似于设置相机的ISO" -#: ../src/iop/exposure.c:279 +#: ../src/iop/exposure.c:301 msgid "magic lantern defaults" msgstr "魔灯默认值" -#: ../src/iop/exposure.c:351 ../src/iop/rawoverexposed.c:135 -#: ../src/iop/rawoverexposed.c:254 +#: ../src/iop/exposure.c:373 ../src/iop/rawoverexposed.c:137 +#: ../src/iop/rawoverexposed.c:256 #, c-format msgid "failed to get raw buffer from image `%s'" msgstr "无法从图像“%s”获取 RAW 缓冲区" -#: ../src/iop/exposure.c:629 +#: ../src/iop/exposure.c:647 #, no-c-format msgid "compensate camera exposure (%+.1f EV)" msgstr "相机曝光补偿(%+.1f EV)" #. Write report in GUI -#: ../src/iop/exposure.c:813 +#: ../src/iop/exposure.c:831 #, c-format msgid "L : \t%.1f %%" msgstr "L : \t%.1f %%" -#: ../src/iop/exposure.c:945 ../src/libs/history.c:953 +#: ../src/iop/exposure.c:963 ../src/libs/history.c:953 #, c-format msgid "%.2f EV" msgstr "%.2f EV" -#: ../src/iop/exposure.c:1113 +#: ../src/iop/exposure.c:1131 msgid "" "automatically remove the camera exposure bias\n" "this is useful if you exposed the image to the right." @@ -15825,27 +16374,27 @@ "自动消除相机曝光偏差\n" "如果将图像曝光到了右侧,这将非常有用。" -#: ../src/iop/exposure.c:1132 +#: ../src/iop/exposure.c:1150 #, no-c-format msgid "where in the histogram to meter for deflicking. E.g. 50% is median" msgstr "" "自定义在直方图中用于自动曝光校正的位置。\n" "例如:设为 50% 则为中间位置" -#: ../src/iop/exposure.c:1138 +#: ../src/iop/exposure.c:1156 msgid "" "where to place the exposure level for processed pics, EV below overexposure." msgstr "自定义当超过哪个曝光等级(EV)时对应白场过曝。" -#: ../src/iop/exposure.c:1142 +#: ../src/iop/exposure.c:1160 msgid "computed EC: " msgstr "计算曝光补偿(EC): " -#: ../src/iop/exposure.c:1145 +#: ../src/iop/exposure.c:1163 msgid "what exposure correction has actually been used" msgstr "已经应用的曝光修正" -#: ../src/iop/exposure.c:1164 +#: ../src/iop/exposure.c:1182 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -15857,11 +16406,11 @@ "如果设置不当,它会将 RGB 值推入负数中,\n" "从而将接近黑色的颜色从色域中裁剪掉。" -#: ../src/iop/exposure.c:1174 -msgid "spot exposure mapping" -msgstr "点曝光映射" +#: ../src/iop/exposure.c:1192 +msgid "area exposure mapping" +msgstr "区域曝光映射" -#: ../src/iop/exposure.c:1180 +#: ../src/iop/exposure.c:1198 msgid "" "define a target brightness, in terms of exposure,\n" "for a selected region of the image (the control sample),\n" @@ -15874,7 +16423,7 @@ "作为目标亮度应用到其他图像。对照图像可以是拍摄对象的重要部\n" "分,或一个有持续光照的静止表面。" -#: ../src/iop/exposure.c:1189 +#: ../src/iop/exposure.c:1207 msgid "" "\"correction\" automatically adjust exposure\n" "such that the input lightness is mapped to the target.\n" @@ -15886,11 +16435,11 @@ "选项“测量(measure)“将直接显示输入颜色是如何被曝光补偿映射的\n" "可用于定义目标亮度。" -#: ../src/iop/exposure.c:1215 +#: ../src/iop/exposure.c:1233 msgid "L : \tN/A" msgstr "L : \tN/A" -#: ../src/iop/exposure.c:1233 +#: ../src/iop/exposure.c:1251 msgid "the desired target exposure after mapping" msgstr "映射后所期望的目标曝光" @@ -15898,52 +16447,52 @@ msgid "this module is deprecated. better use filmic rgb module instead." msgstr "此模块已弃用,请用“胶片 RGB(filmic RGB)”模块替代。" -#: ../src/iop/filmic.c:304 +#: ../src/iop/filmic.c:333 msgid "09 EV (low-key)" msgstr "09 EV(低调)" -#: ../src/iop/filmic.c:312 +#: ../src/iop/filmic.c:341 msgid "10 EV (indoors)" msgstr "10 EV(室内)" -#: ../src/iop/filmic.c:320 +#: ../src/iop/filmic.c:349 msgid "11 EV (dim outdoors)" msgstr "11 EV(昏暗的户外)" -#: ../src/iop/filmic.c:328 +#: ../src/iop/filmic.c:357 msgid "12 EV (outdoors)" msgstr "12 EV(户外)" -#: ../src/iop/filmic.c:336 +#: ../src/iop/filmic.c:365 msgid "13 EV (bright outdoors)" msgstr "13 EV(明亮的户外)" -#: ../src/iop/filmic.c:344 +#: ../src/iop/filmic.c:373 msgid "14 EV (backlighting)" msgstr "14 EV(背光)" -#: ../src/iop/filmic.c:352 +#: ../src/iop/filmic.c:381 msgid "15 EV (sunset)" msgstr "15 EV(日落)" -#: ../src/iop/filmic.c:360 +#: ../src/iop/filmic.c:389 msgid "16 EV (HDR)" msgstr "16 EV(HDR)" -#: ../src/iop/filmic.c:368 +#: ../src/iop/filmic.c:397 msgid "18 EV (HDR++)" msgstr "18 EV(HDR++)" -#: ../src/iop/filmic.c:1480 +#: ../src/iop/filmic.c:1505 msgid "read-only graph, use the parameters below to set the nodes" msgstr "该图表只读,请使用以下参数来设置节点位置" -#: ../src/iop/filmic.c:1484 +#: ../src/iop/filmic.c:1509 msgctxt "section" msgid "logarithmic shaper" msgstr "对数整形器" -#: ../src/iop/filmic.c:1492 +#: ../src/iop/filmic.c:1517 msgid "" "adjust to match the average luminance of the subject.\n" "except in back-lighting situations, this should be around 18%." @@ -15951,7 +16500,7 @@ "调整以符合被摄对象的正常亮度。\n" "除了在背光的情况下,该值应该是18%左右。" -#: ../src/iop/filmic.c:1504 ../src/iop/filmicrgb.c:4442 +#: ../src/iop/filmic.c:1529 ../src/iop/filmicrgb.c:4506 msgid "" "number of stops between middle gray and pure white.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -15961,7 +16510,7 @@ "可以在拍摄现场使用光度计测量。\n" "调整以避免高光削色" -#: ../src/iop/filmic.c:1517 ../src/iop/filmicrgb.c:4453 +#: ../src/iop/filmic.c:1542 ../src/iop/filmicrgb.c:4517 msgid "" "number of stops between middle gray and pure black.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -15973,20 +16522,20 @@ "增加以获得更大对比度。\n" "降低以恢复低光照区域的细节。" -#: ../src/iop/filmic.c:1529 +#: ../src/iop/filmic.c:1554 msgid "" -"enlarge or shrink the computed dynamic range.\n" +"increase or decrease the computed dynamic range.\n" "useful in conjunction with \"auto tune levels\"." msgstr "" -"放大或缩小计算获得的动态范围。\n" +"增加或缩小计算获得的动态范围。\n" "请与“自动调整色阶”一同使用。" -#: ../src/iop/filmic.c:1535 ../src/iop/filmicrgb.c:4467 -#: ../src/iop/profile_gamma.c:659 +#: ../src/iop/filmic.c:1560 ../src/iop/filmicrgb.c:4531 +#: ../src/iop/profile_gamma.c:673 msgid "auto tune levels" msgstr "自动调整色阶" -#: ../src/iop/filmic.c:1538 +#: ../src/iop/filmic.c:1563 msgid "" "try to optimize the settings with some guessing.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -15997,12 +16546,12 @@ "这将使亮度范围符合直方图的界限。\n" "对风景画和光线均匀的照片效果较好,但对亮度较高和较低的照片则无效。" -#: ../src/iop/filmic.c:1543 +#: ../src/iop/filmic.c:1568 msgctxt "section" msgid "filmic S curve" msgstr "胶片 S 曲线" -#: ../src/iop/filmic.c:1550 ../src/iop/filmicrgb.c:4554 +#: ../src/iop/filmic.c:1575 ../src/iop/filmicrgb.c:4618 msgid "" "slope of the linear part of the curve\n" "affects mostly the mid-tones" @@ -16011,12 +16560,12 @@ "主要影响中间调" #. geotagging -#: ../src/iop/filmic.c:1557 ../src/iop/filmicrgb.c:4563 -#: ../src/libs/metadata_view.c:157 +#: ../src/iop/filmic.c:1582 ../src/iop/filmicrgb.c:4627 +#: ../src/libs/metadata_view.c:161 msgid "latitude" msgstr "纬度" -#: ../src/iop/filmic.c:1560 +#: ../src/iop/filmic.c:1585 msgid "" "width of the linear domain in the middle of the curve.\n" "increase to get more contrast at the extreme luminances.\n" @@ -16026,11 +16575,11 @@ "增加以获得极端亮度下的更多对比度。\n" "这对中间色调没有影响。" -#: ../src/iop/filmic.c:1567 +#: ../src/iop/filmic.c:1592 msgid "shadows/highlights balance" msgstr "阴影/高光平衡" -#: ../src/iop/filmic.c:1570 ../src/iop/filmicrgb.c:4574 +#: ../src/iop/filmic.c:1595 ../src/iop/filmicrgb.c:4638 msgid "" "slides the latitude along the slope\n" "to give more room to shadows or highlights.\n" @@ -16041,7 +16590,7 @@ "给阴影或高光更多的空间。\n" "如果您需要保护直方图一端的细节,请使用它。" -#: ../src/iop/filmic.c:1580 +#: ../src/iop/filmic.c:1605 msgid "" "desaturates the input of the module globally.\n" "you need to set this value below 100%\n" @@ -16050,7 +16599,7 @@ "对该模块的输入进行全局去饱和。\n" "如果启用了色度保护,则需要将此值设置为低于100%。" -#: ../src/iop/filmic.c:1590 +#: ../src/iop/filmic.c:1615 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16060,41 +16609,41 @@ "如果阴影和/或高光部分过度饱和,请降低该值。" #. Add export intent combo -#: ../src/iop/filmic.c:1600 ../src/libs/export.c:1227 +#: ../src/iop/filmic.c:1625 ../src/libs/export.c:1339 #: ../src/libs/print_settings.c:2473 ../src/libs/print_settings.c:2820 -#: ../src/views/darkroom.c:2524 ../src/views/lighttable.c:1182 +#: ../src/views/darkroom.c:2365 ../src/views/lighttable.c:1182 msgid "intent" msgstr "意图" -#: ../src/iop/filmic.c:1601 +#: ../src/iop/filmic.c:1626 msgid "contrasted" msgstr "对比" #. cubic spline -#: ../src/iop/filmic.c:1602 +#: ../src/iop/filmic.c:1627 msgid "faded" msgstr "褪色" #. centripetal spline -#: ../src/iop/filmic.c:1603 ../src/iop/profile_gamma.c:621 +#: ../src/iop/filmic.c:1628 ../src/iop/profile_gamma.c:635 msgid "linear" msgstr "线性" #. monotonic spline -#: ../src/iop/filmic.c:1604 +#: ../src/iop/filmic.c:1629 msgid "optimized" msgstr "有话" -#: ../src/iop/filmic.c:1606 +#: ../src/iop/filmic.c:1631 msgid "change this method if you see reversed contrast or faded blacks" msgstr "如果你看到相反的对比度或褪色的黑色,请改变此方法设置" #. Preserve color -#: ../src/iop/filmic.c:1610 +#: ../src/iop/filmic.c:1635 msgid "preserve the chrominance" msgstr "保持色度" -#: ../src/iop/filmic.c:1612 +#: ../src/iop/filmic.c:1637 msgid "" "ensure the original color are preserved.\n" "may reinforce chromatic aberrations.\n" @@ -16104,18 +16653,18 @@ "可能会加强色差。\n" "使用此模式时,您需要手动调整饱和度。" -#: ../src/iop/filmic.c:1622 +#: ../src/iop/filmic.c:1647 msgctxt "section" msgid "destination/display" msgstr "目标/显示器" -#: ../src/iop/filmic.c:1640 ../src/iop/filmicrgb.c:4593 +#: ../src/iop/filmic.c:1665 ../src/iop/filmicrgb.c:4657 msgid "" "luminance of output pure black, this should be 0%\n" "except if you want a faded look" msgstr "输出纯黑色的亮度,除非希望产生褪色效果,该值应当是 0%" -#: ../src/iop/filmic.c:1649 ../src/iop/filmicrgb.c:4600 +#: ../src/iop/filmic.c:1674 ../src/iop/filmicrgb.c:4664 msgid "" "middle gray value of the target display or color space.\n" "you should never touch that unless you know what you are doing." @@ -16123,17 +16672,17 @@ "目标显示或颜色空间的中间灰度值。\n" "除非你知道自己在做什么,否则请勿更改此数值。" -#: ../src/iop/filmic.c:1658 ../src/iop/filmicrgb.c:4607 +#: ../src/iop/filmic.c:1683 ../src/iop/filmicrgb.c:4671 msgid "" "luminance of output pure white, this should be 100%\n" "except if you want a faded look" msgstr "输出纯白色的亮度,除非希望产生褪色效果,该值应当是 0%" -#: ../src/iop/filmic.c:1664 +#: ../src/iop/filmic.c:1689 msgid "target gamma" msgstr "目标伽马" -#: ../src/iop/filmic.c:1666 +#: ../src/iop/filmic.c:1691 msgid "" "power or gamma of the transfer function\n" "of the display or color space.\n" @@ -16160,77 +16709,77 @@ "张,\n" "同时以无损的方式阻止削色产生" -#: ../src/iop/filmicrgb.c:1310 +#: ../src/iop/filmicrgb.c:1365 msgid "" "filmic highlights reconstruction failed to allocate memory, check your RAM " "settings" msgstr "filmic 高光重建未能分配内存,请检查 RAM 设置" -#: ../src/iop/filmicrgb.c:2301 +#: ../src/iop/filmicrgb.c:2369 msgid "filmic highlights reconstruction failed to allocate memory on GPU" msgstr "filmic 高光重建未能在 GPU 上分配内存" -#: ../src/iop/filmicrgb.c:2419 +#: ../src/iop/filmicrgb.c:2487 msgid "filmic works only on RGB input" msgstr "胶片效果仅适用于 RGB 输入" -#: ../src/iop/filmicrgb.c:3484 +#: ../src/iop/filmicrgb.c:3548 msgid "look only" msgstr "仅外观" -#: ../src/iop/filmicrgb.c:3486 +#: ../src/iop/filmicrgb.c:3550 msgid "look + mapping (lin)" msgstr "外观 + 映射(线性)" -#: ../src/iop/filmicrgb.c:3488 +#: ../src/iop/filmicrgb.c:3552 msgid "look + mapping (log)" msgstr "外观 + 映射(对数)" -#: ../src/iop/filmicrgb.c:3490 +#: ../src/iop/filmicrgb.c:3554 msgid "dynamic range mapping" msgstr "动态范围映射" -#: ../src/iop/filmicrgb.c:3857 +#: ../src/iop/filmicrgb.c:3921 #, c-format msgid "(%.0f %%)" msgstr "(%.0f %%)" -#: ../src/iop/filmicrgb.c:3873 +#: ../src/iop/filmicrgb.c:3937 #, no-c-format msgid "% display" msgstr "% 显示" -#: ../src/iop/filmicrgb.c:3885 +#: ../src/iop/filmicrgb.c:3949 msgid "EV scene" msgstr "EV 值 场景" -#: ../src/iop/filmicrgb.c:3889 +#: ../src/iop/filmicrgb.c:3953 #, no-c-format msgid "% camera" msgstr "% 相机" #. Page DISPLAY -#: ../src/iop/filmicrgb.c:3925 ../src/iop/filmicrgb.c:4587 +#: ../src/iop/filmicrgb.c:3989 ../src/iop/filmicrgb.c:4651 msgid "display" msgstr "显示" #. axis legend -#: ../src/iop/filmicrgb.c:3934 +#: ../src/iop/filmicrgb.c:3998 msgid "(%)" msgstr "(%)" #. Page SCENE -#: ../src/iop/filmicrgb.c:3943 ../src/iop/filmicrgb.c:4422 +#: ../src/iop/filmicrgb.c:4007 ../src/iop/filmicrgb.c:4486 msgid "scene" msgstr "场景" #. axis legend -#: ../src/iop/filmicrgb.c:3952 +#: ../src/iop/filmicrgb.c:4016 msgid "(EV)" msgstr "(EV)" #. we are over the graph area -#: ../src/iop/filmicrgb.c:4364 +#: ../src/iop/filmicrgb.c:4428 msgid "" "use the parameters below to set the nodes.\n" "the bright curve is the filmic tone mapping curve\n" @@ -16240,11 +16789,11 @@ "亮曲线是胶片色调映射曲线。\n" "暗曲线是去饱和曲线。" -#: ../src/iop/filmicrgb.c:4370 +#: ../src/iop/filmicrgb.c:4434 msgid "toggle axis labels and values display" msgstr "切换轴标签和值显示" -#: ../src/iop/filmicrgb.c:4374 +#: ../src/iop/filmicrgb.c:4438 msgid "" "cycle through graph views.\n" "left click: cycle forward.\n" @@ -16256,7 +16805,7 @@ "右键单击:向后循环。\n" "双击:重置为仅查看视图。" -#: ../src/iop/filmicrgb.c:4431 +#: ../src/iop/filmicrgb.c:4495 #, no-c-format msgid "" "adjust to match the average luminance of the image's subject.\n" @@ -16267,15 +16816,15 @@ "然后,此处输入的值将重新映射为18.45%。\n" "减小该值可增加整体亮度。" -#: ../src/iop/filmicrgb.c:4461 +#: ../src/iop/filmicrgb.c:4525 msgid "" -"symmetrically enlarge or shrink the computed dynamic range.\n" +"symmetrically increase or decrease the computed dynamic range.\n" "useful to give a safety margin to extreme luminances." msgstr "" "对称地放大或缩小计算的动态范围。\n" "有助于为极端亮度提供安全界限。" -#: ../src/iop/filmicrgb.c:4468 +#: ../src/iop/filmicrgb.c:4532 msgid "" "try to optimize the settings with some statistical assumptions.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16291,16 +16840,16 @@ "因此,在使用之前了解这些估算是很重要的。" #. Page RECONSTRUCT -#: ../src/iop/filmicrgb.c:4477 +#: ../src/iop/filmicrgb.c:4541 msgid "reconstruct" msgstr "重建" -#: ../src/iop/filmicrgb.c:4479 +#: ../src/iop/filmicrgb.c:4543 msgctxt "section" msgid "highlights clipping" msgstr "高光限幅" -#: ../src/iop/filmicrgb.c:4487 +#: ../src/iop/filmicrgb.c:4551 msgid "" "set the exposure threshold upon which\n" "clipped highlights get reconstructed.\n" @@ -16316,7 +16865,7 @@ "减少以包含更多区域,\n" "增加以排除更多区域。" -#: ../src/iop/filmicrgb.c:4497 +#: ../src/iop/filmicrgb.c:4561 msgid "" "soften the transition between clipped highlights and valid pixels.\n" "decrease to make the transition harder and sharper,\n" @@ -16326,69 +16875,72 @@ "减少以使过渡更加激烈和锐利,\n" "增加以使过渡更加柔和和模糊。" -#: ../src/iop/filmicrgb.c:4503 ../src/iop/filmicrgb.c:4504 +#: ../src/iop/filmicrgb.c:4567 ../src/iop/filmicrgb.c:4568 msgid "display highlight reconstruction mask" msgstr "显示高光修复蒙版" -#: ../src/iop/filmicrgb.c:4511 +#: ../src/iop/filmicrgb.c:4575 msgctxt "section" msgid "balance" msgstr "平衡" -#: ../src/iop/filmicrgb.c:4518 +#: ../src/iop/filmicrgb.c:4582 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between inpainting a smooth color gradient,\n" +"inpainting a smooth color gradient\n" "or trying to recover the textured details.\n" "0% is an equal mix of both.\n" "increase if at least one RGB channel is not clipped.\n" "decrease if all RGB channels are clipped over large areas." msgstr "" -"确定支持哪种修复计划:\n" -"介于修复平滑的颜色渐变或试图恢复纹理细节之间。\n" +"选择使用哪种修复策略:\n" +"填充平滑的颜色渐变 或 试图恢复纹理细节\n" +"\n" "0%是两者的相等混合。\n" -"如果至少有一个RGB通道未溢出,则增加。\n" -"如果所有RGB通道大面积溢出,则减小。" +"如果至少有一个 RGB 通道未溢出,则增加。\n" +"如果所有 RGB 通道大面积溢出,则减小。" -#: ../src/iop/filmicrgb.c:4529 +#: ../src/iop/filmicrgb.c:4593 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between blooming highlights like film does,\n" +"blooming highlights like film does\n" "or trying to recover sharp details.\n" "0% is an equal mix of both.\n" "increase if you want more details.\n" "decrease if you want more blur." msgstr "" -"确定支持哪种修复计划:\n" -"介于像电影一样的高光光晕或者试图恢复锐利的细节之间。\n" -"0%是两者的相等混合。\n" -"如果你想要更多细节,增加。\n" -"如果你想要更多朦胧,减少。" +"选择使用哪种修复策略:\n" +"像胶卷一样在高亮度区域辉光 或 试图恢复纹理细节\n" +"\n" +"0% 是两者的相等混合。\n" +"如果至少有一个 RGB 通道未溢出,则增加。\n" +"如果所有 RGB 通道大面积溢出,则减小。" -#: ../src/iop/filmicrgb.c:4541 +#: ../src/iop/filmicrgb.c:4605 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between recovering monochromatic highlights,\n" +"recovering monochromatic highlights\n" "or trying to recover colorful highlights.\n" "0% is an equal mix of both.\n" "increase if you want more color.\n" "decrease if you see magenta or out-of-gamut highlights." msgstr "" -"确定支持哪种修复计划:\n" -"介于恢复单色高光或尝试恢复多彩高光之间。\n" -"0%是两者的相等混合。\n" +"选择使用哪种修复策略:\n" +"修复单色高光 或 尝试恢复多彩高光\n" +"\n" +"0% 是两者的相等混合。\n" "如果你想要更多的颜色,就增加。\n" "如果你看到品红或色域外的高光,就减少。" #. Page LOOK -#: ../src/iop/filmicrgb.c:4549 +#: ../src/iop/filmicrgb.c:4613 msgid "look" msgstr "外观" -#: ../src/iop/filmicrgb.c:4559 +#: ../src/iop/filmicrgb.c:4623 msgid "" "equivalent to paper grade in analog.\n" "increase to make highlights brighter and less compressed.\n" @@ -16398,7 +16950,7 @@ "增加以使高光更亮和更少压缩。\n" "减少以减弱高光。" -#: ../src/iop/filmicrgb.c:4567 +#: ../src/iop/filmicrgb.c:4631 msgid "" "width of the linear domain in the middle of the curve,\n" "increase to get more contrast and less desaturation at extreme luminances,\n" @@ -16410,7 +16962,7 @@ "在纬度范围内不会发生去饱和现象。\n" "这对中间调没有影响。" -#: ../src/iop/filmicrgb.c:4582 ../src/iop/filmicrgb.c:4730 +#: ../src/iop/filmicrgb.c:4646 ../src/iop/filmicrgb.c:4794 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16420,11 +16972,11 @@ "如果阴影或高光欠饱和,请增加该值。" #. Page OPTIONS -#: ../src/iop/filmicrgb.c:4611 +#: ../src/iop/filmicrgb.c:4675 msgid "options" msgstr "选项" -#: ../src/iop/filmicrgb.c:4616 +#: ../src/iop/filmicrgb.c:4680 msgid "" "v3 is darktable 3.0 desaturation method, same as color balance.\n" "v4 is a newer desaturation method, based on spectral purity of light." @@ -16432,7 +16984,7 @@ "v3 是 darktable 3.0 去饱和方法,和色彩平衡相同。\n" "v4 是一种新的去饱和方法,基于光的光谱纯度。" -#: ../src/iop/filmicrgb.c:4620 +#: ../src/iop/filmicrgb.c:4684 msgid "" "ensure the original colors are preserved.\n" "may reinforce chromatic aberrations and chroma noise,\n" @@ -16442,7 +16994,7 @@ "可能会加强色差和色度噪音。\n" "因此请确保它们在其他地方得到适当的纠正。" -#: ../src/iop/filmicrgb.c:4629 +#: ../src/iop/filmicrgb.c:4693 msgid "" "choose the desired curvature of the filmic spline in highlights.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -16452,7 +17004,7 @@ "‘强烈’使用高曲率,产生更多的色调压缩。\n" "‘柔和’使用低曲率,从而减少色调压缩。" -#: ../src/iop/filmicrgb.c:4634 +#: ../src/iop/filmicrgb.c:4698 msgid "" "choose the desired curvature of the filmic spline in shadows.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -16462,7 +17014,7 @@ "‘强烈’使用高曲率,产生更多的色调压缩。\n" "‘柔和’使用低曲率,从而减少色调压缩。" -#: ../src/iop/filmicrgb.c:4641 +#: ../src/iop/filmicrgb.c:4705 #, no-c-format msgid "" "enable to input custom middle-gray values.\n" @@ -16474,7 +17026,7 @@ "一般不建议调整此值,您应使用曝光模块修正全局曝光。\n" "禁用此选项以使用标准 18.45% 中间灰。" -#: ../src/iop/filmicrgb.c:4648 +#: ../src/iop/filmicrgb.c:4712 msgid "" "enable to auto-set the look hardness depending on the scene white and black " "points.\n" @@ -16485,7 +17037,7 @@ "这将使中间灰色保持在标识线上,并改进快速调整。\n" "如果需要手动控制,请禁用。" -#: ../src/iop/filmicrgb.c:4654 +#: ../src/iop/filmicrgb.c:4718 msgid "" "run extra passes of chromaticity reconstruction.\n" "more iterations means more color propagation from neighborhood.\n" @@ -16497,7 +17049,7 @@ "这将会变慢,但会产生更多的中和的高光。\n" "它也有助于解决品红高光的疑难问题。" -#: ../src/iop/filmicrgb.c:4661 +#: ../src/iop/filmicrgb.c:4725 msgid "" "add statistical noise in reconstructed highlights.\n" "this avoids highlights to look too smooth\n" @@ -16508,7 +17060,7 @@ "这样可以避免高光看起来过于平滑,\n" "当图片整体有噪点效果时,它们会与图片的其他部分混合。" -#: ../src/iop/filmicrgb.c:4668 +#: ../src/iop/filmicrgb.c:4732 msgid "" "choose the statistical distribution of noise.\n" "this is useful to match natural sensor noise pattern." @@ -16516,11 +17068,11 @@ "选择噪声的统计分布。\n" "这有助于匹配自然的传感器噪声模式。" -#: ../src/iop/filmicrgb.c:4736 +#: ../src/iop/filmicrgb.c:4800 msgid "mid-tones saturation" msgstr "中间调饱和度" -#: ../src/iop/filmicrgb.c:4737 +#: ../src/iop/filmicrgb.c:4801 msgid "" "desaturates the output of the module\n" "specifically at medium luminances.\n" @@ -16530,11 +17082,11 @@ "特别是在中等亮度下。\n" "如果中间影调欠饱和,请增加该值。" -#: ../src/iop/filmicrgb.c:4743 +#: ../src/iop/filmicrgb.c:4807 msgid "highlights saturation mix" msgstr "高光 / 饱和平衡" -#: ../src/iop/filmicrgb.c:4744 +#: ../src/iop/filmicrgb.c:4808 msgid "" "positive values ensure saturation is kept unchanged over the whole range.\n" "negative values bleach highlights at constant hue and luminance.\n" @@ -16557,39 +17109,39 @@ msgid "flip or rotate image by step of 90 degrees" msgstr "以 90 度为单位翻转或旋转图像" -#: ../src/iop/flip.c:477 +#: ../src/iop/flip.c:475 msgid "no rotation" msgstr "不旋转" -#: ../src/iop/flip.c:481 ../src/iop/flip.c:624 +#: ../src/iop/flip.c:479 ../src/iop/flip.c:622 msgid "flip horizontally" msgstr "水平翻转" -#: ../src/iop/flip.c:485 ../src/iop/flip.c:628 +#: ../src/iop/flip.c:483 ../src/iop/flip.c:626 msgid "flip vertically" msgstr "垂直翻转" -#: ../src/iop/flip.c:489 +#: ../src/iop/flip.c:487 msgid "rotate by -90 degrees" msgstr "旋转 -90 度" -#: ../src/iop/flip.c:493 +#: ../src/iop/flip.c:491 msgid "rotate by 90 degrees" msgstr "旋转 90 度" -#: ../src/iop/flip.c:497 +#: ../src/iop/flip.c:495 msgid "rotate by 180 degrees" msgstr "旋转 180 度" -#: ../src/iop/flip.c:612 +#: ../src/iop/flip.c:610 msgid "transform" msgstr "变换" -#: ../src/iop/flip.c:616 ../src/libs/live_view.c:293 +#: ../src/iop/flip.c:614 ../src/libs/live_view.c:293 msgid "rotate 90 degrees CCW" msgstr "逆时针旋转 90 度" -#: ../src/iop/flip.c:620 ../src/libs/live_view.c:294 +#: ../src/iop/flip.c:618 ../src/libs/live_view.c:294 msgid "rotate 90 degrees CW" msgstr "顺时针旋转 90 度" @@ -16606,21 +17158,21 @@ msgid "this module is deprecated. please use the filmic rgb module instead." msgstr "此模块已弃用,请用胶片 RGB 模块替代。" -#: ../src/iop/globaltonemap.c:625 ../src/libs/filters/colors.c:259 +#: ../src/iop/globaltonemap.c:658 ../src/libs/filters/colors.c:259 msgid "operator" msgstr "操作" -#: ../src/iop/globaltonemap.c:626 +#: ../src/iop/globaltonemap.c:659 msgid "the global tonemap operator" msgstr "全局色调映射操作" -#: ../src/iop/globaltonemap.c:629 +#: ../src/iop/globaltonemap.c:662 msgid "" "the bias for tonemapper controls the linearity, the higher the more details " "in blacks" msgstr "色调映射器的偏差为线性,越高则越多细节位于黑色区域" -#: ../src/iop/globaltonemap.c:633 +#: ../src/iop/globaltonemap.c:666 msgid "the target light for tonemapper specified as cd/m2" msgstr "色调映射器的明度单位为 cd/m2" @@ -16684,11 +17236,11 @@ msgid "simulate an optical graduated neutral density filter" msgstr "模拟光学渐变减光镜" -#: ../src/iop/graduatednd.c:1114 +#: ../src/iop/graduatednd.c:1083 msgid "the density in EV for the filter" msgstr "滤镜的密度(EV)" -#: ../src/iop/graduatednd.c:1119 +#: ../src/iop/graduatednd.c:1088 #, no-c-format msgid "" "hardness of graduation:\n" @@ -16697,55 +17249,55 @@ "过渡的缓急程度:\n" "0% = 柔和,100% = 强烈" -#: ../src/iop/graduatednd.c:1123 +#: ../src/iop/graduatednd.c:1092 msgid "rotation of filter -180 to 180 degrees" msgstr "滤镜可旋转角度 -180 至 180度" -#: ../src/iop/graduatednd.c:1136 +#: ../src/iop/graduatednd.c:1105 msgid "select the hue tone of filter" msgstr "选择滤波器的色相" -#: ../src/iop/graduatednd.c:1142 +#: ../src/iop/graduatednd.c:1111 msgid "select the saturation of filter" msgstr "选择滤波器的饱和度" -#: ../src/iop/graduatednd.c:1153 +#: ../src/iop/graduatednd.c:1122 #, c-format msgid "[%s on nodes] change line rotation" msgstr "[节点 %s] 更改直线旋转角度" -#: ../src/iop/graduatednd.c:1154 +#: ../src/iop/graduatednd.c:1123 #, c-format msgid "[%s on line] move line" msgstr "[直线 %s] 移动直线" -#: ../src/iop/graduatednd.c:1156 +#: ../src/iop/graduatednd.c:1125 #, c-format msgid "[%s on line] change density" msgstr "[直线 %s] 更改密度" -#: ../src/iop/graduatednd.c:1158 +#: ../src/iop/graduatednd.c:1127 #, c-format msgid "[%s on line] change hardness" msgstr "[直线 %s] 更改硬度" -#: ../src/iop/grain.c:428 +#: ../src/iop/grain.c:444 msgid "grain" msgstr "颗粒" -#: ../src/iop/grain.c:433 +#: ../src/iop/grain.c:449 msgid "simulate silver grains from film" msgstr "模拟电影的银盐颗粒效果" -#: ../src/iop/grain.c:582 +#: ../src/iop/grain.c:600 msgid "the grain size (~ISO of the film)" msgstr "颗粒大小(约等于胶片的 ISO 感光度)" -#: ../src/iop/grain.c:586 +#: ../src/iop/grain.c:604 msgid "the strength of applied grain" msgstr "应用颗粒的力度" -#: ../src/iop/grain.c:590 +#: ../src/iop/grain.c:608 msgid "" "amount of mid-tones bias from the photographic paper response modeling. the " "greater the bias, the more pronounced the fall off of the grain in shadows " @@ -16766,15 +17318,15 @@ msgid "remove fog and atmospheric hazing from pictures" msgstr "去除图片中的雾和空气模糊" -#: ../src/iop/hazeremoval.c:202 +#: ../src/iop/hazeremoval.c:204 msgid "amount of haze reduction" msgstr "雾霾减少量" -#: ../src/iop/hazeremoval.c:204 +#: ../src/iop/hazeremoval.c:206 msgid "distance" msgstr "距离" -#: ../src/iop/hazeremoval.c:206 +#: ../src/iop/hazeremoval.c:208 msgid "limit haze removal up to a specific spatial depth" msgstr "将去雾限制在特定的空间深度" @@ -16786,53 +17338,68 @@ msgid "avoid magenta highlights and try to recover highlights colors" msgstr "避免品红色高光,并尝试恢复高光颜色" -#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:75 +#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:77 msgid "reconstruction, raw" msgstr "修复、raw" -#: ../src/iop/highlights.c:923 +#: ../src/iop/highlights.c:1004 msgid "" "highlights: mode not available for this type of image. falling back to " "inpaint opposed." msgstr "高光:选择的模式对于当前图像类型不可用。回退到修复填色模式。" -#: ../src/iop/highlights.c:1101 +#: ../src/iop/highlights.c:1184 msgid "highlight reconstruction method" msgstr "高亮修复方法" -#: ../src/iop/highlights.c:1106 +#: ../src/iop/highlights.c:1189 msgid "" "manually adjust the clipping threshold mostly used against magenta " -"highlights\n" -"the mask icon shows the clipped areas.\n" +"highlights.\n" "you might use this for tuning 'laplacian', 'inpaint opposed' or " "'segmentation' modes,\n" "especially if camera white point is incorrect." msgstr "" -"手动调整洋红色高亮的限幅阈值\n" -"遮罩图标用于显示过曝区域\n" +"手动调整紫红色高亮的限幅阈值。\n" "此选项用于微调“拉普拉斯”、“填色修复”、“分段”模式,尤其当相机白点不正确时。" -#: ../src/iop/highlights.c:1117 +#: ../src/iop/highlights.c:1193 +msgid "" +"visualize clipped highlights in a false color representation.\n" +"the effective clipping level also depends on the reconstruction method." +msgstr "" +"以伪色显示被裁切的高光。\n" +"实际应用的裁切亮度也取决于重建方法。" + +#: ../src/iop/highlights.c:1203 msgid "" "combine closely related clipped segments by morphological operations.\n" -"the mask button shows the exact positions of resulting segment borders." +"this often leads to improved color reconstruction for tiny segments before " +"dark background." msgstr "" "合并多个密切关联的过曝分段。\n" -"遮罩按钮可以显示输出分段边界的精确位置。" +"通常可以提升暗色背景前的细小过曝分段的色彩重建效果。" -#: ../src/iop/highlights.c:1125 +#: ../src/iop/highlights.c:1206 +msgid "visualize the combined segments in a false color representation." +msgstr "以伪色显示合并后的亮度分段。" + +#: ../src/iop/highlights.c:1213 msgid "" "select inpainting after segmentation analysis.\n" -"increase to favour candidates found in segmentation analysis, decrease for " -"opposed means inpainting.\n" -"the mask button shows segments that are considered to have a good candidate." +"increase to favor candidates found in segmentation analysis, decrease for " +"opposed means inpainting." msgstr "" "选择分段分析后的填色修复。\n" -"增加以使用分段分析后的待选颜色,减少以使用反向填色修复。\n" -"遮罩按钮可以显示可以作为待选颜色的分段。" +"增加以使用分段分析后的待选颜色,减少以使用反向填色修复。" + +#: ../src/iop/highlights.c:1216 +msgid "" +"visualize segments that are considered to have a good candidate in a false " +"color representation." +msgstr "以为色可视化形式显示适合的分段。" -#: ../src/iop/highlights.c:1136 +#: ../src/iop/highlights.c:1225 msgid "" "approximate lost data in regions with all photosites clipped, the effect " "depends on segment size and border gradients.\n" @@ -16849,16 +17416,15 @@ "扁平模式将忽略过曝区域中狭窄的在范围内的区域(例如电线),这有助于保持重构的" "高光并避免渐变。" -#: ../src/iop/highlights.c:1142 -msgid "" -"set strength of rebuilding in regions with all photosites clipped.\n" -"the mask buttons shows the effect that is added to already reconstructed " -"data." -msgstr "" -"设置所有过曝区域中的重建力度。\n" -"遮罩按钮可以显示在现有重构数据上添加的图像效果。" +#: ../src/iop/highlights.c:1231 +msgid "set strength of rebuilding in regions with all photosites clipped." +msgstr "设置所有过曝区域中的重建力度。" + +#: ../src/iop/highlights.c:1233 +msgid "show the effect that is added to already reconstructed data." +msgstr "显示在已重建区域上的效果。" -#: ../src/iop/highlights.c:1152 +#: ../src/iop/highlights.c:1242 msgid "" "add noise to visually blend the reconstructed areas\n" "into the rest of the noisy image. useful at high ISO." @@ -16866,7 +17432,7 @@ "添加噪声以在视觉上使重构区域更好地\n" "融入其他部分。在高 ISO 时很有用。" -#: ../src/iop/highlights.c:1156 +#: ../src/iop/highlights.c:1246 msgid "" "increase if magenta highlights don't get fully corrected\n" "each new iteration brings a performance penalty." @@ -16874,7 +17440,7 @@ "若洋红色高亮未被完全校正,增加此值\n" "增加迭代数目会使计算性能下降。" -#: ../src/iop/highlights.c:1161 +#: ../src/iop/highlights.c:1251 msgid "" "increase if magenta highlights don't get fully corrected.\n" "this may produce non-smooth boundaries between valid and clipped regions." @@ -16882,7 +17448,7 @@ "若洋红色高亮未被完全校正,增加此值。\n" "这可能会在有效区域和过曝区域间产生不平滑边界。" -#: ../src/iop/highlights.c:1165 +#: ../src/iop/highlights.c:1255 msgid "" "increase to correct larger clipped areas.\n" "large values bring huge performance penalties" @@ -16890,9 +17456,9 @@ "增加此值以校正大面积的过曝或欠曝区域。\n" "同时会使计算性能大幅下降" -#: ../src/iop/highlights.c:1169 -msgid "this module only works with non-monochrome RAW and sRAW" -msgstr "此模块只适用于非黑白的 RAW 和 sRAW" +#: ../src/iop/highlights.c:1259 +msgid "this module does not work with monochrome RAW files" +msgstr "此模块不适用于黑白的 RAW" #: ../src/iop/highpass.c:72 msgid "highpass" @@ -16902,49 +17468,49 @@ msgid "isolate high frequencies in the image" msgstr "分离出图像中的高频" -#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:135 +#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:107 msgid "linear or non-linear, Lab, scene-referred" msgstr "线性或非线性、Lab、基于场景" -#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:136 ../src/iop/sharpen.c:96 +#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:108 ../src/iop/sharpen.c:98 msgid "frequential, Lab" msgstr "频率、Lab" -#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:137 +#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:109 msgid "special, Lab, scene-referred" msgstr "特殊、Lab、基于场景" -#: ../src/iop/highpass.c:383 +#: ../src/iop/highpass.c:378 msgid "the sharpness of highpass filter" msgstr "高通滤镜的锐度" -#: ../src/iop/highpass.c:387 +#: ../src/iop/highpass.c:382 msgid "the contrast of highpass filter" msgstr "高通滤镜的对比度" -#: ../src/iop/hotpixels.c:67 +#: ../src/iop/hotpixels.c:69 msgid "hot pixels" msgstr "热像素" -#: ../src/iop/hotpixels.c:72 +#: ../src/iop/hotpixels.c:74 msgid "remove abnormally bright pixels by dampening them with neighbors" msgstr "通过用相邻的像素来消除异常明亮的像素" -#: ../src/iop/hotpixels.c:363 +#: ../src/iop/hotpixels.c:442 #, c-format msgid "fixed %d pixel" msgid_plural "fixed %d pixels" msgstr[0] "修复了 %d 个像素" -#: ../src/iop/hotpixels.c:386 +#: ../src/iop/hotpixels.c:465 msgid "lower threshold for hot pixel" msgstr "减小热像素的阈值" -#: ../src/iop/hotpixels.c:390 +#: ../src/iop/hotpixels.c:469 msgid "strength of hot pixel correction" msgstr "热像素校正力度" -#: ../src/iop/hotpixels.c:406 +#: ../src/iop/hotpixels.c:485 msgid "" "hot pixel correction\n" "only works for raw images." @@ -16952,63 +17518,63 @@ "自动热像素校正\n" "只作用于 RAW 图像。" -#: ../src/iop/invert.c:92 ../src/iop/invert.c:427 +#: ../src/iop/invert.c:106 ../src/iop/invert.c:442 #, c-format msgid "`%s' color matrix not found for 4bayer image" msgstr "未找到 4bayer 图像的“%s”颜色矩阵" -#: ../src/iop/invert.c:108 +#: ../src/iop/invert.c:125 msgid "invert" msgstr "反转" -#: ../src/iop/invert.c:113 +#: ../src/iop/invert.c:130 msgid "this module is deprecated. please use the negadoctor module instead." msgstr "此模块已弃用。请使用 Negadoctor 模块替代。" -#: ../src/iop/invert.c:118 +#: ../src/iop/invert.c:135 msgid "invert film negatives" msgstr "反转负片" -#: ../src/iop/invert.c:120 ../src/iop/invert.c:122 +#: ../src/iop/invert.c:137 ../src/iop/invert.c:139 msgid "linear, raw, display-referred" msgstr "线性、raw、基于显示" #. Here we could provide more for monochrome special cases. As no monochrome camera #. has a bayer sensor we don't need g->RGB_to_CAM and g->CAM_to_RGB corrections -#: ../src/iop/invert.c:412 +#: ../src/iop/invert.c:427 msgid "brightness of film material" msgstr "胶片材料的亮度" -#: ../src/iop/invert.c:416 +#: ../src/iop/invert.c:431 msgid "color of film material" msgstr "胶片材料的颜色" -#: ../src/iop/invert.c:500 ../src/iop/negadoctor.c:847 +#: ../src/iop/invert.c:515 ../src/iop/negadoctor.c:866 msgid "pick color of film material from image" msgstr "从图像中选取胶片材料的颜色" -#: ../src/iop/invert.c:502 +#: ../src/iop/invert.c:517 msgid "select color of film material" msgstr "选择胶片材料的颜色" -#: ../src/iop/lens.cc:230 +#: ../src/iop/lens.cc:251 msgid "lens correction" msgstr "镜头矫正" -#: ../src/iop/lens.cc:235 +#: ../src/iop/lens.cc:256 msgid "vignette|chromatic aberrations|distortion" msgstr "渐晕|色差|失真" -#: ../src/iop/lens.cc:240 +#: ../src/iop/lens.cc:261 msgid "correct lenses optical flaws" msgstr "修正镜片光学缺陷" -#: ../src/iop/lens.cc:243 +#: ../src/iop/lens.cc:264 msgid "geometric and reconstruction, RGB" msgstr "几何与修复、RGB" # mount 翻译不确定 -#: ../src/iop/lens.cc:3148 +#: ../src/iop/lens.cc:3773 #, c-format msgid "" "maker:\t\t%s\n" @@ -17021,7 +17587,7 @@ "接口:\t\t%s\n" "裁切系数:\t%.1f" -#: ../src/iop/lens.cc:3396 +#: ../src/iop/lens.cc:4026 #, c-format msgid "" "maker:\t\t%s\n" @@ -17040,31 +17606,31 @@ "类型:\t\t%s\n" "接口:\t\t%s" -#: ../src/iop/lens.cc:3442 +#: ../src/iop/lens.cc:4072 msgid "focal length (mm)" msgstr "镜头焦距(毫米)" -#: ../src/iop/lens.cc:3468 +#: ../src/iop/lens.cc:4098 msgid "f/" msgstr "f/" -#: ../src/iop/lens.cc:3469 +#: ../src/iop/lens.cc:4099 msgid "f-number (aperture)" msgstr "f 值(光圈)" -#: ../src/iop/lens.cc:3485 +#: ../src/iop/lens.cc:4115 msgid "d" msgstr "d" -#: ../src/iop/lens.cc:3486 +#: ../src/iop/lens.cc:4116 msgid "distance to subject" msgstr "到主体的距离" -#: ../src/iop/lens.cc:3645 +#: ../src/iop/lens.cc:4277 msgid "camera/lens not found" msgstr "未找到相机/镜头" -#: ../src/iop/lens.cc:3646 +#: ../src/iop/lens.cc:4278 msgid "" "please select your lens manually\n" "you might also want to check if your Lensfun database is up-to-date\n" @@ -17073,45 +17639,49 @@ "请手动选择您的镜头\n" "您也可以使用 lensfun-update-data 检查 Lensfun 数据库是否有更新" -#: ../src/iop/lens.cc:3769 +#: ../src/iop/lens.cc:4423 msgid "camera model" msgstr "相机型号" -#: ../src/iop/lens.cc:3774 +#: ../src/iop/lens.cc:4428 msgid "find camera" msgstr "寻找相机" -#: ../src/iop/lens.cc:3789 +#: ../src/iop/lens.cc:4443 msgid "find lens" msgstr "寻找镜头" #. scale -#: ../src/iop/lens.cc:3823 ../src/iop/vignette.c:968 -#: ../src/iop/watermark.c:1324 ../src/libs/export.c:1165 +#: ../src/iop/lens.cc:4477 ../src/iop/vignette.c:1055 +#: ../src/iop/watermark.c:1372 ../src/libs/export.c:1264 msgid "scale" msgstr "缩放" -#: ../src/iop/lens.cc:3828 +#: ../src/iop/lens.cc:4482 msgid "auto scale" msgstr "自动缩放" -#: ../src/iop/lens.cc:3832 +#: ../src/iop/lens.cc:4484 +msgid "automatic scale to available image size due to Lensfun data" +msgstr "使用 lensfun 数据自动缩放到可用图像尺寸" + +#: ../src/iop/lens.cc:4488 msgid "correct distortions or apply them" msgstr "修正失真或应用它们" -#: ../src/iop/lens.cc:3839 +#: ../src/iop/lens.cc:4495 msgid "transversal chromatic aberration red" msgstr "横向色差红色" -#: ../src/iop/lens.cc:3843 +#: ../src/iop/lens.cc:4499 msgid "transversal chromatic aberration blue" msgstr "横向色差蓝色" -#: ../src/iop/lens.cc:3849 +#: ../src/iop/lens.cc:4509 msgid "use latest algorithm" msgstr "使用最新算法" -#: ../src/iop/lens.cc:3851 +#: ../src/iop/lens.cc:4511 msgid "" "you're using an old version of the algorithm.\n" "once enabled, you won't be able to\n" @@ -17120,91 +17690,142 @@ "您正在使用旧版本的算法。\n" "启用此选项后,将无法再回退至旧版本算法。" -#: ../src/iop/lens.cc:3860 +#: ../src/iop/lens.cc:4521 +msgid "fine-tuning" +msgstr "微调" + +#. DT_IOP_SECTION_FOR_PARAMS doesn't work in C++ so create section module manually +#: ../src/iop/lens.cc:4526 +msgid "fine-tune" +msgstr "微调" + +#: ../src/iop/lens.cc:4532 msgid "tune the warp and chromatic aberration correction" msgstr "微调扭曲和色差修正" -#: ../src/iop/lens.cc:3864 +#: ../src/iop/lens.cc:4536 msgid "tune the vignette correction" msgstr "微调渐晕修正" -#: ../src/iop/lens.cc:3868 +#: ../src/iop/lens.cc:4540 msgid "tune the TCA red correction" msgstr "微调 TCA 红色修正" -#: ../src/iop/lens.cc:3872 +#: ../src/iop/lens.cc:4544 msgid "tune the TCA blue correction" msgstr "微调 TCA 蓝色修正" -#: ../src/iop/lens.cc:3879 +#: ../src/iop/lens.cc:4551 msgid "image scaling" msgstr "图像缩放比率" -#: ../src/iop/lens.cc:3891 +#: ../src/iop/lens.cc:4553 +msgid "automatic scale to available image size" +msgstr "自动缩放到可用的图像尺寸" + +#: ../src/iop/lens.cc:4561 +msgid "" +"select a correction mode either based on\n" +" a) data and algorithms provided by the Lensfun project\n" +" b) embedded metadata provided by the camera or software vendor" +msgstr "" +"选择基于以下两种数据的修复模式:\n" +"a) 由 lensfun 项目提供的数据和算法\n" +"b) 由相机或软件制造商提供的内嵌元数据" + +#: ../src/iop/lens.cc:4568 msgid "which corrections to apply" -msgstr "应用的修正" +msgstr "要应用的修正" -#: ../src/iop/lens.cc:3904 +#: ../src/iop/lens.cc:4574 msgid "corrections done: " msgstr "已应用修正: " -#: ../src/iop/lens.cc:3906 +#: ../src/iop/lens.cc:4576 msgid "which corrections have actually been done" -msgstr "已经完成的修正" +msgstr "实际已经完成的修正" + +#: ../src/iop/lens.cc:4595 +msgid "manual vignette correction" +msgstr "手动渐晕修正" + +#: ../src/iop/lens.cc:4599 +msgid "additional manually controlled optical vignetting correction" +msgstr "额外手动控制光学渐晕校准" + +#: ../src/iop/lens.cc:4602 +msgid "vignette" +msgstr "渐晕" + +#: ../src/iop/lens.cc:4606 +msgid "amount of the applied optical vignetting correction" +msgstr "渐晕修正强度" + +#: ../src/iop/lens.cc:4608 +msgid "show applied optical vignette correction mask" +msgstr "显示渐晕修真蒙版" + +#: ../src/iop/lens.cc:4618 +msgid "radius of uncorrected centre" +msgstr "无需修正的中心区域半径" + +#: ../src/iop/lens.cc:4624 +msgid "steepness of the correction effect outside of radius" +msgstr "中心半径之外修正强度上升的陡度" #: ../src/iop/levels.c:112 msgid "this module is deprecated. please use the RGB levels module instead." msgstr "此模块已弃用。请使用 RGB 色阶模块替代。" -#: ../src/iop/levels.c:117 ../src/iop/levels.c:630 ../src/iop/rgblevels.c:984 -#: ../src/iop/rgblevels.c:1014 +#: ../src/iop/levels.c:117 ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1022 +#: ../src/iop/rgblevels.c:1056 msgid "levels" msgstr "色阶" -#: ../src/iop/levels.c:137 +#: ../src/iop/levels.c:139 msgid "adjust black, white and mid-gray points" msgstr "调整黑、白和中间灰的的位置" -#: ../src/iop/levels.c:628 ../src/iop/rgblevels.c:1016 +#: ../src/iop/levels.c:644 ../src/iop/rgblevels.c:1059 msgid "" "drag handles to set black, gray, and white points. operates on L channel." msgstr "拖动滑块设置黑色、灰色、白色点。 在L通道上操作。" -#: ../src/iop/levels.c:642 ../src/iop/rgblevels.c:1052 +#: ../src/iop/levels.c:658 ../src/iop/rgblevels.c:1108 msgid "apply auto levels" msgstr "应用自动色阶" -#: ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1027 +#: ../src/iop/levels.c:662 ../src/iop/rgblevels.c:1077 msgid "pick black point from image" msgstr "从图片选取黑点" -#: ../src/iop/levels.c:650 ../src/iop/rgblevels.c:1033 +#: ../src/iop/levels.c:666 ../src/iop/rgblevels.c:1085 msgid "pick medium gray point from image" msgstr "从图片选取中灰点" -#: ../src/iop/levels.c:654 ../src/iop/rgblevels.c:1039 +#: ../src/iop/levels.c:670 ../src/iop/rgblevels.c:1093 msgid "pick white point from image" msgstr "从图片选取白点" -#: ../src/iop/levels.c:667 ../src/iop/rgblevels.c:936 -#: ../src/iop/rgblevels.c:1026 +#: ../src/iop/levels.c:683 ../src/iop/rgblevels.c:968 +#: ../src/iop/rgblevels.c:1075 msgid "black" msgstr "黑色" -#: ../src/iop/levels.c:668 +#: ../src/iop/levels.c:684 msgid "black percentile" msgstr "黑色百分位置" -#: ../src/iop/levels.c:672 +#: ../src/iop/levels.c:688 msgid "gray percentile" msgstr "灰色百分位置" -#: ../src/iop/levels.c:675 ../src/iop/rgblevels.c:938 -#: ../src/iop/rgblevels.c:1038 +#: ../src/iop/levels.c:691 ../src/iop/rgblevels.c:970 +#: ../src/iop/rgblevels.c:1091 msgid "white" msgstr "白色" -#: ../src/iop/levels.c:676 +#: ../src/iop/levels.c:692 msgid "white percentile" msgstr "白色百分位置" @@ -17216,11 +17837,11 @@ msgid "distort parts of the image" msgstr "扭曲部分图像" -#: ../src/iop/liquify.c:2933 +#: ../src/iop/liquify.c:2895 msgid "click to edit nodes" msgstr "单击以编辑节点" -#: ../src/iop/liquify.c:3636 +#: ../src/iop/liquify.c:3599 msgid "" "<b>add point</b>: click and drag\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: ctrl" @@ -17229,7 +17850,7 @@ "<b>添加节点</b>:点击并拖动\n" "<b>大小</b>:鼠标滚轮,<b>力度</b>:shift + 滚动,<b>方向</b>:ctrl + 滚轮" -#: ../src/iop/liquify.c:3639 +#: ../src/iop/liquify.c:3602 msgid "" "<b>add line</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: ctrl" @@ -17238,7 +17859,7 @@ "<b>添加直线</b>:点击\n" "<b>大小</b>:滚轮,<b>力度</b>:shift + 滚动,<b>方向</b>:ctrl + 滚轮" -#: ../src/iop/liquify.c:3642 +#: ../src/iop/liquify.c:3605 msgid "" "<b>add curve</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: ctrl" @@ -17247,7 +17868,7 @@ "<b>添加曲线</b>:点击\n" "<b>大小</b>:滚轮,<b>力度</b>:shift + 滚动,<b>方向</b>:ctrl + 滚轮" -#: ../src/iop/liquify.c:3693 +#: ../src/iop/liquify.c:3656 msgid "" "use a tool to add warps\n" "<b>remove a warp</b>: right-click" @@ -17255,48 +17876,48 @@ "使用工具来添加变形扭曲\n" "右键单击以删除变形扭曲" -#: ../src/iop/liquify.c:3696 +#: ../src/iop/liquify.c:3659 msgid "warps|nodes count:" msgstr "扭曲|节点计数:" -#: ../src/iop/liquify.c:3705 +#: ../src/iop/liquify.c:3668 msgid "edit, add and delete nodes" msgstr "编辑、添加和删除锚点" -#: ../src/iop/liquify.c:3710 ../src/iop/liquify.c:3716 -#: ../src/iop/liquify.c:3722 ../src/iop/retouch.c:2238 -#: ../src/iop/retouch.c:2242 ../src/iop/retouch.c:2246 -#: ../src/iop/retouch.c:2250 ../src/iop/spots.c:883 ../src/iop/spots.c:888 -#: ../src/iop/spots.c:893 ../src/libs/masks.c:1816 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1834 ../src/libs/masks.c:1843 ../src/libs/masks.c:1852 +#: ../src/iop/liquify.c:3673 ../src/iop/liquify.c:3679 +#: ../src/iop/liquify.c:3685 ../src/iop/retouch.c:2465 +#: ../src/iop/retouch.c:2471 ../src/iop/retouch.c:2476 +#: ../src/iop/retouch.c:2481 ../src/iop/spots.c:885 ../src/iop/spots.c:890 +#: ../src/iop/spots.c:895 ../src/libs/masks.c:1812 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1830 ../src/libs/masks.c:1839 ../src/libs/masks.c:1848 msgid "shapes" msgstr "形状" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw curves" msgstr "绘制曲线" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw multiple curves" msgstr "绘制多条曲线" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw lines" msgstr "绘制直线" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw multiple lines" msgstr "绘制多条直线" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw points" msgstr "绘制点" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw multiple points" msgstr "绘制多个点" -#: ../src/iop/liquify.c:3729 +#: ../src/iop/liquify.c:3692 msgid "" "<b>add node</b>: ctrl+click - <b>remove path</b>: right click\n" "<b>toggle line/curve</b>: ctrl+alt+click" @@ -17304,7 +17925,7 @@ "<b>添加节点</b>:ctrl + 单击,<b>移除路径</b>:右键单击\n" "<b>切换直线/曲线</b>:ctrl + alt + 单击" -#: ../src/iop/liquify.c:3732 +#: ../src/iop/liquify.c:3695 msgid "" "<b>move</b>: click and drag - <b>show/hide feathering controls</b>: click\n" "<b>autosmooth, cusp, smooth, symmetrical</b>: ctrl+click - <b>remove</b>: " @@ -17313,23 +17934,23 @@ "<b>移动</b>:单击并拖动,<b>显示/隐藏羽化控制</b>:单击\n" "<b>自动平滑、尖点、平滑、对称</b>:ctrl + 单击,<b>移除</b>:右键单击" -#: ../src/iop/liquify.c:3736 ../src/iop/liquify.c:3738 +#: ../src/iop/liquify.c:3699 ../src/iop/liquify.c:3701 msgid "<b>shape of path</b>: drag" msgstr "<b>路径形状</b>:拖动" -#: ../src/iop/liquify.c:3740 +#: ../src/iop/liquify.c:3703 msgid "<b>radius</b>: drag" msgstr "<b>半径</b>:拖动" -#: ../src/iop/liquify.c:3742 +#: ../src/iop/liquify.c:3705 msgid "<b>hardness (center)</b>: drag" msgstr "<b>硬度(中心)</b>:拖动" -#: ../src/iop/liquify.c:3744 +#: ../src/iop/liquify.c:3707 msgid "<b>hardness (feather)</b>: drag" msgstr "<b>硬度(羽化边缘)</b>:拖动" -#: ../src/iop/liquify.c:3746 +#: ../src/iop/liquify.c:3709 msgid "" "<b>strength</b>: drag\n" "<b>linear, grow, and shrink</b>: ctrl+click" @@ -17349,234 +17970,234 @@ msgid "linear, XYZ" msgstr "线性、XYZ" -#: ../src/iop/lowlight.c:341 +#: ../src/iop/lowlight.c:338 msgid "indoor bright" msgstr "室内:明亮" -#: ../src/iop/lowlight.c:359 +#: ../src/iop/lowlight.c:356 msgid "indoor dim" msgstr "室内:阴暗" -#: ../src/iop/lowlight.c:377 +#: ../src/iop/lowlight.c:374 msgid "indoor dark" msgstr "室内:黑暗" -#: ../src/iop/lowlight.c:395 +#: ../src/iop/lowlight.c:392 msgid "twilight" msgstr "日出/日落" -#: ../src/iop/lowlight.c:413 +#: ../src/iop/lowlight.c:410 msgid "night street lit" msgstr "夜景:街灯" -#: ../src/iop/lowlight.c:431 +#: ../src/iop/lowlight.c:428 msgid "night street" msgstr "夜景:街道" -#: ../src/iop/lowlight.c:449 +#: ../src/iop/lowlight.c:446 msgid "night street dark" msgstr "夜景:黑暗街道" -#: ../src/iop/lowlight.c:468 +#: ../src/iop/lowlight.c:465 msgid "night" msgstr "夜晚" -#: ../src/iop/lowlight.c:641 +#: ../src/iop/lowlight.c:639 msgid "dark" msgstr "黑暗" -#: ../src/iop/lowlight.c:649 +#: ../src/iop/lowlight.c:647 msgid "bright" msgstr "亮处" -#: ../src/iop/lowlight.c:658 +#: ../src/iop/lowlight.c:656 msgid "day vision" msgstr "日间成像" -#: ../src/iop/lowlight.c:663 +#: ../src/iop/lowlight.c:661 msgid "night vision" msgstr "夜间成像" -#: ../src/iop/lowlight.c:835 +#: ../src/iop/lowlight.c:833 msgid "blueness in shadows" msgstr "发蓝阴影" -#: ../src/iop/lowpass.c:128 +#: ../src/iop/lowpass.c:100 msgid "lowpass" msgstr "低通滤镜" -#: ../src/iop/lowpass.c:133 +#: ../src/iop/lowpass.c:105 msgid "isolate low frequencies in the image" msgstr "分离出图像中的低频" -#: ../src/iop/lowpass.c:565 +#: ../src/iop/lowpass.c:578 msgid "local contrast mask" msgstr "局部对比蒙板" -#: ../src/iop/lowpass.c:590 +#: ../src/iop/lowpass.c:603 msgid "radius of gaussian/bilateral blur" msgstr "高斯/双边模糊半径" -#: ../src/iop/lowpass.c:591 +#: ../src/iop/lowpass.c:604 msgid "contrast of lowpass filter" msgstr "低通滤镜的对比度" -#: ../src/iop/lowpass.c:592 +#: ../src/iop/lowpass.c:605 msgid "brightness adjustment of lowpass filter" msgstr "低通滤镜的亮度调节" -#: ../src/iop/lowpass.c:593 +#: ../src/iop/lowpass.c:606 msgid "color saturation of lowpass filter" msgstr "低通滤镜的颜色饱和度" -#: ../src/iop/lowpass.c:594 +#: ../src/iop/lowpass.c:607 msgid "which filter to use for blurring" msgstr "模糊使用的滤镜" -#: ../src/iop/lut3d.c:135 +#: ../src/iop/lut3d.c:136 msgid "LUT 3D" msgstr "LUT 3D" -#: ../src/iop/lut3d.c:140 +#: ../src/iop/lut3d.c:141 msgid "perform color space corrections and apply look" msgstr "执行颜色空间校正并应用样式" -#: ../src/iop/lut3d.c:143 +#: ../src/iop/lut3d.c:144 msgid "defined by profile, RGB" msgstr "由配置文件定义、RGB" -#: ../src/iop/lut3d.c:468 +#: ../src/iop/lut3d.c:486 msgid "error allocating buffer for gmz LUT" msgstr "错误 - 无法为 gmz LUT 分配缓冲区内存" -#: ../src/iop/lut3d.c:494 +#: ../src/iop/lut3d.c:512 #, c-format msgid "invalid png file %s" msgstr "png 文件 %s 无效" -#: ../src/iop/lut3d.c:502 +#: ../src/iop/lut3d.c:520 #, c-format -msgid "png bit-depth %d not supported" +msgid "png bit depth %d is not supported" msgstr "png 位深 %d 不受支持" -#: ../src/iop/lut3d.c:516 ../src/iop/lut3d.c:526 +#: ../src/iop/lut3d.c:534 ../src/iop/lut3d.c:544 #, c-format msgid "invalid level in png file %d %d" msgstr "png 文件使用了不支持的色阶 %d %d" -#: ../src/iop/lut3d.c:521 +#: ../src/iop/lut3d.c:539 msgid "this darktable build is not compatible with compressed CLUT" msgstr "此版本 darktable 不支持压缩 CLUT" -#: ../src/iop/lut3d.c:538 ../src/iop/lut3d.c:788 +#: ../src/iop/lut3d.c:556 ../src/iop/lut3d.c:808 #, c-format msgid "error - LUT 3D size %d exceeds the maximum supported" msgstr "错误 - LUT 3D 大小 %d 超出支持范围" -#: ../src/iop/lut3d.c:550 +#: ../src/iop/lut3d.c:568 msgid "error allocating buffer for png LUT" msgstr "错误 - 无法为 png LUT 分配缓冲区内存" -#: ../src/iop/lut3d.c:558 +#: ../src/iop/lut3d.c:576 #, c-format msgid "error - could not read png image %s" msgstr "错误 - 无法读取 png 图像 %s" -#: ../src/iop/lut3d.c:568 +#: ../src/iop/lut3d.c:586 msgid "error - allocating buffer for png LUT" msgstr "错误 - 为 png LUT 分配缓冲区内存" -#: ../src/iop/lut3d.c:743 +#: ../src/iop/lut3d.c:761 #, c-format msgid "error - invalid cube file: %s" msgstr "错误 - 无效的 cube 文件 %s" -#: ../src/iop/lut3d.c:757 -msgid "DOMAIN MIN <> 0.0 is not supported" -msgstr "DOMAIN MIN <> 0.0 不受支持" - -#: ../src/iop/lut3d.c:768 -msgid "DOMAIN MAX <> 1.0 is not supported" -msgstr "DOMAIN MAX <> 1.0 不受支持" +#: ../src/iop/lut3d.c:775 +msgid "DOMAIN MIN other than 0 is not supported" +msgstr "DOMAIN MIN 只能设置为 0.0" + +#: ../src/iop/lut3d.c:787 +msgid "DOMAIN MAX other than 1 is not supported" +msgstr "DOMAIN MAX 只能设置为 1.0" -#: ../src/iop/lut3d.c:777 +#: ../src/iop/lut3d.c:797 msgid "1D cube LUT is not supported" msgstr "一维 cube LUT 不受支持" -#: ../src/iop/lut3d.c:799 +#: ../src/iop/lut3d.c:819 msgid "error - allocating buffer for cube LUT" msgstr "错误 - 无法为 Cube LUT 分配缓冲区内存" -#: ../src/iop/lut3d.c:810 +#: ../src/iop/lut3d.c:830 msgid "error - cube LUT size is not defined" msgstr "错误 - cube LUT 尺寸未定义" -#: ../src/iop/lut3d.c:821 +#: ../src/iop/lut3d.c:841 #, c-format msgid "error - cube LUT invalid number line %d" msgstr "错误 - cube LUT 第 %d 行出现无效数值" -#: ../src/iop/lut3d.c:837 +#: ../src/iop/lut3d.c:857 #, c-format msgid "error - cube LUT lines number %d is not correct, should be %d" msgstr "错误 - cube LUT 第 %d 行出现无效数值,应为 %d" -#: ../src/iop/lut3d.c:847 +#: ../src/iop/lut3d.c:867 #, c-format msgid "warning - cube LUT has %d values out of range [0,1]" msgstr "错误 - cube LUT 中 %d 超出取值范围 [0, 1]" -#: ../src/iop/lut3d.c:872 +#: ../src/iop/lut3d.c:892 #, c-format msgid "error - invalid 3dl file: %s" msgstr "错误 - 无效的 3dl 文件:%s" -#: ../src/iop/lut3d.c:893 +#: ../src/iop/lut3d.c:913 #, c-format msgid "error - the maximum shaper LUT value %d is too low" msgstr "错误 - 最大塑形器 LUT 值 %d 过低" -#: ../src/iop/lut3d.c:904 +#: ../src/iop/lut3d.c:924 msgid "error - allocating buffer for 3dl LUT" msgstr "错误 - 无法为 3dl LUT 分配缓冲区内存" -#: ../src/iop/lut3d.c:917 +#: ../src/iop/lut3d.c:937 msgid "error - 3dl LUT size is not defined" msgstr "错误 - 3dl LUT 尺寸未定义" -#: ../src/iop/lut3d.c:945 +#: ../src/iop/lut3d.c:965 msgid "error - 3dl LUT lines number is not correct" msgstr "错误 - 3dl LUT 行数不正确" -#: ../src/iop/lut3d.c:961 +#: ../src/iop/lut3d.c:981 msgid "error - the maximum LUT value does not match any valid bit depth" msgstr "错误 - 最大 LUT 值不匹配任何有效的色深" -#: ../src/iop/lut3d.c:1539 +#: ../src/iop/lut3d.c:1553 msgid "LUT root folder not defined" msgstr "未指定 LUT 根文件夹" -#: ../src/iop/lut3d.c:1545 +#: ../src/iop/lut3d.c:1559 msgid "select LUT file" msgstr "选择 LUT 文件" -#: ../src/iop/lut3d.c:1546 +#: ../src/iop/lut3d.c:1560 msgid "_select" msgstr "选择 (_s)" -#: ../src/iop/lut3d.c:1566 +#: ../src/iop/lut3d.c:1580 msgid "hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" msgstr "hald CLUT (png),3D LUT(cube 或 3dl) 或者 GMIC 压缩 LUT (gmz)" -#: ../src/iop/lut3d.c:1568 +#: ../src/iop/lut3d.c:1582 msgid "hald CLUT (png) or 3D LUT (cube or 3dl)" msgstr "hald CLUT (png) 或者 3D LUT (cube 或 3dl)" -#: ../src/iop/lut3d.c:1592 +#: ../src/iop/lut3d.c:1606 msgid "select file outside LUT root folder is not allowed" msgstr "不允许在 LUT 根文件夹外选择文件" -#: ../src/iop/lut3d.c:1663 +#: ../src/iop/lut3d.c:1677 msgid "" "select a png (haldclut), a cube, a 3dl or a gmz (compressed LUT) file " "CAUTION: 3D LUT folder must be set in preferences/processing before choosing " @@ -17585,7 +18206,7 @@ "选择一个 png(haldclut),cube,3dl 或 gmz(压缩 LUT)文件。注意:在选择 LUT " "文件之前,必须在首选项->数据处理 中设置 3D LUT 文件夹" -#: ../src/iop/lut3d.c:1667 +#: ../src/iop/lut3d.c:1681 msgid "" "select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be " "set in preferences/processing before choosing the LUT file" @@ -17593,56 +18214,56 @@ "选择一个 png(haldclut),cube 或 3dl 文件。注意:在选择 LUT 文件之前,必须在" "首选项->数据处理 中设置3D LUT 文件夹" -#: ../src/iop/lut3d.c:1679 +#: ../src/iop/lut3d.c:1693 msgid "" "the file path (relative to LUT folder) is saved with image along with the " "LUT data if it's a compressed LUT (gmz)" msgstr "" "若使用压缩 LUT(gmz),相对于 LUT 文件夹的文件路径和 LUT 数据将与图像一起保存" -#: ../src/iop/lut3d.c:1682 +#: ../src/iop/lut3d.c:1696 msgid "" "the file path (relative to LUT folder) is saved with image (and not the LUT " "data themselves)" msgstr "相对于 LUT 文件夹的文件路径将与图像一起保存(不保存 LUT 数据本身)" -#: ../src/iop/lut3d.c:1691 +#: ../src/iop/lut3d.c:1705 msgid "enter LUT name" msgstr "输入 LUT 名称" -#: ../src/iop/lut3d.c:1712 +#: ../src/iop/lut3d.c:1726 msgid "select the LUT" msgstr "选择 LUT" -#: ../src/iop/lut3d.c:1725 +#: ../src/iop/lut3d.c:1739 msgid "select the color space in which the LUT has to be applied" msgstr "选择该 LUT 适用的色彩空间" -#: ../src/iop/lut3d.c:1727 +#: ../src/iop/lut3d.c:1741 msgid "interpolation" msgstr "插值" -#: ../src/iop/lut3d.c:1728 +#: ../src/iop/lut3d.c:1742 msgid "select the interpolation method" msgstr "选择插值方法" -#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:62 +#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:63 msgid "mask manager" msgstr "蒙版管理器" -#: ../src/iop/monochrome.c:97 +#: ../src/iop/monochrome.c:99 msgid "quickly convert an image to black & white using a variable color filter" msgstr "使用可变滤色器将图像快速转换为黑白" -#: ../src/iop/monochrome.c:127 +#: ../src/iop/monochrome.c:153 msgid "red filter" msgstr "红色滤镜" -#: ../src/iop/monochrome.c:546 +#: ../src/iop/monochrome.c:568 msgid "drag and scroll mouse wheel to adjust the virtual color filter" msgstr "拖动并滚动鼠标滚轮调整虚拟色彩滤镜" -#: ../src/iop/monochrome.c:562 +#: ../src/iop/monochrome.c:584 msgid "how much to keep highlights" msgstr "保持高亮的数量" @@ -17658,35 +18279,35 @@ msgid "invert film negative scans and simulate printing on paper" msgstr "反转胶片为负片并模拟纸上打印效果" -#: ../src/iop/negadoctor.c:469 +#: ../src/iop/negadoctor.c:483 msgid "D min" msgstr "最低密度区" -#: ../src/iop/negadoctor.c:475 ../src/iop/negadoctor.c:856 +#: ../src/iop/negadoctor.c:489 ../src/iop/negadoctor.c:875 msgid "D min red component" msgstr "最低密度区红色量" #. Page FILM PROPERTIES -#: ../src/iop/negadoctor.c:832 +#: ../src/iop/negadoctor.c:851 msgid "film properties" msgstr "胶片特性" #. Dmin -#: ../src/iop/negadoctor.c:836 +#: ../src/iop/negadoctor.c:855 msgctxt "section" msgid "color of the film base" msgstr "底片颜色" -#: ../src/iop/negadoctor.c:842 +#: ../src/iop/negadoctor.c:861 msgid "select color of film material from a swatch" msgstr "从色表中选择胶片材料颜色" -#: ../src/iop/negadoctor.c:848 +#: ../src/iop/negadoctor.c:867 msgid "film material" msgstr "胶片材料" -#: ../src/iop/negadoctor.c:857 ../src/iop/negadoctor.c:867 -#: ../src/iop/negadoctor.c:877 +#: ../src/iop/negadoctor.c:876 ../src/iop/negadoctor.c:886 +#: ../src/iop/negadoctor.c:896 msgid "" "adjust the color and shade of the film transparent base.\n" "this value depends on the film material, \n" @@ -17698,21 +18319,21 @@ "冲洗胶片时产生的化学雾,\n" "和扫描器白平衡。" -#: ../src/iop/negadoctor.c:866 +#: ../src/iop/negadoctor.c:885 msgid "D min green component" msgstr "最低密度区绿色量" -#: ../src/iop/negadoctor.c:876 +#: ../src/iop/negadoctor.c:895 msgid "D min blue component" msgstr "最低密度区蓝色量" #. D max and scanner bias -#: ../src/iop/negadoctor.c:884 +#: ../src/iop/negadoctor.c:903 msgctxt "section" msgid "dynamic range of the film" msgstr "胶片动态范围" -#: ../src/iop/negadoctor.c:888 +#: ../src/iop/negadoctor.c:907 msgid "" "maximum density of the film, corresponding to white after inversion.\n" "this value depends on the film specifications, the developing process,\n" @@ -17722,12 +18343,12 @@ "这个值取决于胶片规格,显影过程,\n" "场景的动态范围和扫描仪曝光设置。" -#: ../src/iop/negadoctor.c:892 +#: ../src/iop/negadoctor.c:911 msgctxt "section" msgid "scanner exposure settings" msgstr "扫描仪曝光设置" -#: ../src/iop/negadoctor.c:896 +#: ../src/iop/negadoctor.c:915 msgid "" "correct the exposure of the scanner, for all RGB channels,\n" "before the inversion, so blacks are neither clipped or too pale." @@ -17736,25 +18357,25 @@ "以便黑色既不过曝也不过度苍白。" #. WB shadows -#: ../src/iop/negadoctor.c:903 +#: ../src/iop/negadoctor.c:922 msgctxt "section" msgid "shadows color cast" msgstr "阴影颜色映射" -#: ../src/iop/negadoctor.c:909 +#: ../src/iop/negadoctor.c:928 msgid "select color of shadows from a swatch" msgstr "从色表中选择阴影颜色" -#: ../src/iop/negadoctor.c:914 +#: ../src/iop/negadoctor.c:933 msgid "pick shadows color from image" msgstr "从图像中拾取阴影颜色" -#: ../src/iop/negadoctor.c:920 +#: ../src/iop/negadoctor.c:939 msgid "shadows red offset" msgstr "阴影红色偏移" -#: ../src/iop/negadoctor.c:921 ../src/iop/negadoctor.c:928 -#: ../src/iop/negadoctor.c:935 +#: ../src/iop/negadoctor.c:940 ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:954 msgid "" "correct the color cast in shadows so blacks are\n" "truly achromatic. Setting this value before\n" @@ -17764,34 +18385,34 @@ "校正阴影中的颜色映射,使黑色没有色彩倾向。\n" "在高亮光照白平衡之前设置此值,将有助于在困难情况下恢复全局白平衡。" -#: ../src/iop/negadoctor.c:927 +#: ../src/iop/negadoctor.c:946 msgid "shadows green offset" msgstr "阴影绿色偏移" -#: ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:953 msgid "shadows blue offset" msgstr "阴影蓝色偏移" #. WB highlights -#: ../src/iop/negadoctor.c:941 +#: ../src/iop/negadoctor.c:960 msgctxt "section" msgid "highlights white balance" msgstr "高光区白平衡" -#: ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:966 msgid "select color of illuminant from a swatch" msgstr "从色表中选择光照颜色" -#: ../src/iop/negadoctor.c:952 +#: ../src/iop/negadoctor.c:971 msgid "pick illuminant color from image" msgstr "从图像中选取光照颜色" -#: ../src/iop/negadoctor.c:958 +#: ../src/iop/negadoctor.c:977 msgid "illuminant red gain" msgstr "光照红色增益" -#: ../src/iop/negadoctor.c:959 ../src/iop/negadoctor.c:966 -#: ../src/iop/negadoctor.c:973 +#: ../src/iop/negadoctor.c:978 ../src/iop/negadoctor.c:985 +#: ../src/iop/negadoctor.c:992 msgid "" "correct the color of the illuminant so whites are\n" "truly achromatic. Setting this value after\n" @@ -17801,26 +18422,26 @@ "校正光照的颜色,使黑色没有色彩倾向。\n" "在阴影颜色映射后设置此值,将有助于在困难情况下恢复全局白平衡。" -#: ../src/iop/negadoctor.c:965 +#: ../src/iop/negadoctor.c:984 msgid "illuminant green gain" msgstr "光照绿色增益" -#: ../src/iop/negadoctor.c:972 +#: ../src/iop/negadoctor.c:991 msgid "illuminant blue gain" msgstr "光照蓝色增益" #. Page PRINT PROPERTIES -#: ../src/iop/negadoctor.c:979 +#: ../src/iop/negadoctor.c:998 msgid "print properties" msgstr "打印特性" #. print corrections -#: ../src/iop/negadoctor.c:982 +#: ../src/iop/negadoctor.c:1001 msgctxt "section" msgid "virtual paper properties" msgstr "模拟纸张特性" -#: ../src/iop/negadoctor.c:988 +#: ../src/iop/negadoctor.c:1007 msgid "" "correct the density of black after the inversion,\n" "to adjust the global contrast while avoiding clipping shadows." @@ -17828,7 +18449,7 @@ "校正反转后黑色的密度,\n" "以避免裁剪阴影的同时调整全局对比度。" -#: ../src/iop/negadoctor.c:993 +#: ../src/iop/negadoctor.c:1012 msgid "" "select the grade of the virtual paper, which is actually\n" "equivalent to applying a gamma. it compensates the film D max\n" @@ -17838,7 +18459,7 @@ "它补偿胶片最高密度区,并恢复对比度。\n" "高的等级对应高的最高密度区值。" -#: ../src/iop/negadoctor.c:1001 +#: ../src/iop/negadoctor.c:1020 msgid "" "gradually compress specular highlights past this value\n" "to avoid clipping while pushing the exposure for mid-tones.\n" @@ -17848,12 +18469,12 @@ "以避免在将曝光推到中间调时产生裁剪。\n" "这在某种程度上再现了亚光纸的特性。" -#: ../src/iop/negadoctor.c:1005 +#: ../src/iop/negadoctor.c:1024 msgctxt "section" msgid "virtual print emulation" msgstr "模拟打印机仿真" -#: ../src/iop/negadoctor.c:1012 +#: ../src/iop/negadoctor.c:1031 msgid "" "correct the printing exposure after inversion to adjust\n" "the global contrast and avoid clipping highlights." @@ -17861,51 +18482,83 @@ "校正反转后的打印曝光,\n" "以调整全局对比度并避免裁剪高光。" -#: ../src/iop/negadoctor.c:1020 +#: ../src/iop/negadoctor.c:1039 msgid "toggle on or off the color controls" msgstr "打开或关闭颜色滑块" -#: ../src/iop/nlmeans.c:84 +#: ../src/iop/nlmeans.c:78 msgid "astrophoto denoise" msgstr "天文照片去噪" -#: ../src/iop/nlmeans.c:89 +#: ../src/iop/nlmeans.c:83 msgid "denoise (non-local means)" msgstr "去噪点(非局部平均)" -#: ../src/iop/nlmeans.c:94 +#: ../src/iop/nlmeans.c:88 msgid "apply a poisson noise removal best suited for astrophotography" msgstr "应用最适合天体摄影的泊松噪声消除" -#: ../src/iop/nlmeans.c:459 +#: ../src/iop/nlmeans.c:462 msgid "radius of the patches to match" msgstr "匹配的块半径" -#: ../src/iop/nlmeans.c:467 +#: ../src/iop/nlmeans.c:470 msgid "how much to smooth brightness" msgstr "平滑亮度的程度" -#: ../src/iop/nlmeans.c:470 +#: ../src/iop/nlmeans.c:473 msgid "how much to smooth colors" msgstr "平滑色彩的程度" #. * let's fill the encapsulating widgets #. preview mode #. color scheme -#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2419 -#: ../src/views/darkroom.c:2437 ../src/views/darkroom.c:2444 -#: ../src/views/darkroom.c:2454 ../src/views/darkroom.c:2471 +#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2258 +#: ../src/views/darkroom.c:2276 ../src/views/darkroom.c:2283 +#: ../src/views/darkroom.c:2293 ../src/views/darkroom.c:2310 msgid "overexposed" msgstr "曝光过度" -#: ../src/iop/overexposed.c:130 ../src/iop/overexposed.c:360 +#: ../src/iop/overexposed.c:123 ../src/iop/overexposed.c:352 msgid "module overexposed failed in buffer allocation" msgstr "曝光过度处理模块无法分配缓冲区内存" -#: ../src/iop/overexposed.c:156 ../src/iop/overexposed.c:370 +#: ../src/iop/overexposed.c:149 ../src/iop/overexposed.c:362 msgid "module overexposed failed in color conversion" msgstr "曝光过度处理模块无法转换颜色值" +#: ../src/iop/primaries.c:74 +msgid "rgb primaries" +msgstr "rgb 三原色" + +#: ../src/iop/primaries.c:79 +msgid "adjustment of the RGB color primaries for color grading" +msgstr "在调色前调整 RGB 三原色" + +#: ../src/iop/primaries.c:395 +msgid "shift red towards yellow or magenta" +msgstr "使红色向黄色或紫红色偏移" + +#: ../src/iop/primaries.c:396 +msgid "red primary purity" +msgstr "红原色纯度" + +#: ../src/iop/primaries.c:397 +msgid "shift green towards cyan or yellow" +msgstr "使绿色向青色或黄色偏移" + +#: ../src/iop/primaries.c:398 +msgid "green primary purity" +msgstr "绿原色纯度" + +#: ../src/iop/primaries.c:399 +msgid "shift blue towards magenta or cyan" +msgstr "使蓝色向紫红色或青色偏移" + +#: ../src/iop/primaries.c:400 +msgid "blue primary purity" +msgstr "蓝原色纯度" + #: ../src/iop/profile_gamma.c:96 msgid "unbreak input profile" msgstr "修复输入配置文件" @@ -17914,39 +18567,39 @@ msgid "correct input color profiles meant to be applied on non-linear RGB" msgstr "修正输入的颜色配置文件,以便应用于非线性RGB" -#: ../src/iop/profile_gamma.c:136 +#: ../src/iop/profile_gamma.c:138 msgid "16 EV dynamic range (generic)" msgstr "16 EV 动态范围(通用)" -#: ../src/iop/profile_gamma.c:142 +#: ../src/iop/profile_gamma.c:144 msgid "14 EV dynamic range (generic)" msgstr "14 EV 动态范围(通用)" -#: ../src/iop/profile_gamma.c:148 +#: ../src/iop/profile_gamma.c:150 msgid "12 EV dynamic range (generic)" msgstr "12 EV 动态范围(通用)" -#: ../src/iop/profile_gamma.c:154 +#: ../src/iop/profile_gamma.c:156 msgid "10 EV dynamic range (generic)" msgstr "10 EV 动态范围(通用)" -#: ../src/iop/profile_gamma.c:160 +#: ../src/iop/profile_gamma.c:162 msgid "08 EV dynamic range (generic)" msgstr "08 EV 动态范围(通用)" -#: ../src/iop/profile_gamma.c:623 +#: ../src/iop/profile_gamma.c:637 msgid "linear part" msgstr "线性部分" -#: ../src/iop/profile_gamma.c:627 +#: ../src/iop/profile_gamma.c:641 msgid "gamma exponential factor" msgstr "伽马指数因子" -#: ../src/iop/profile_gamma.c:638 +#: ../src/iop/profile_gamma.c:652 msgid "adjust to match the average luma of the subject" msgstr "调整以匹配题材的正常亮度" -#: ../src/iop/profile_gamma.c:644 +#: ../src/iop/profile_gamma.c:658 msgid "" "number of stops between middle gray and pure black\n" "this is a reading a light meter would give you on the scene" @@ -17954,7 +18607,7 @@ "中间灰和纯黑色之间的步数。\n" "可以在拍摄现场使用光度计测量" -#: ../src/iop/profile_gamma.c:650 +#: ../src/iop/profile_gamma.c:664 msgid "" "number of stops between pure black and pure white\n" "this is a reading a light meter would give you on the scene" @@ -17962,36 +18615,36 @@ "纯黑色和纯白色之间的步数。\n" "可以在拍摄现场使用光度计测量" -#: ../src/iop/profile_gamma.c:652 +#: ../src/iop/profile_gamma.c:666 msgctxt "section" msgid "optimize automatically" msgstr "自动优化" -#: ../src/iop/profile_gamma.c:656 +#: ../src/iop/profile_gamma.c:670 msgid "" -"enlarge or shrink the computed dynamic range\n" -"this is useful when noise perturbates the measurements" +"increase or decrease the computed dynamic range\n" +"this is useful when noise distorts the measurement" msgstr "" "扩大或缩小计算的动态范围\n" -"此选项适合噪声扰乱测量的场合" +"此选项适合噪点扰乱测量的场合" -#: ../src/iop/profile_gamma.c:660 +#: ../src/iop/profile_gamma.c:674 msgid "make an optimization with some guessing" msgstr "通过一些估算来进行优化" -#: ../src/iop/profile_gamma.c:669 +#: ../src/iop/profile_gamma.c:683 msgid "tone mapping method" msgstr "色调映射方式" -#: ../src/iop/rawdenoise.c:124 +#: ../src/iop/rawdenoise.c:138 msgid "raw denoise" msgstr "raw 降噪" -#: ../src/iop/rawdenoise.c:129 +#: ../src/iop/rawdenoise.c:143 msgid "denoise the raw picture early in the pipeline" msgstr "在前期对 raw 进行去噪" -#: ../src/iop/rawdenoise.c:939 +#: ../src/iop/rawdenoise.c:955 msgid "" "raw denoising\n" "only works for raw images." @@ -18001,9 +18654,9 @@ #. * let's fill the encapsulating widgets #. mode of operation -#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2387 ../src/views/darkroom.c:2393 -#: ../src/views/darkroom.c:2406 +#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2226 ../src/views/darkroom.c:2232 +#: ../src/views/darkroom.c:2245 msgid "raw overexposed" msgstr "raw 曝光过度" @@ -18012,7 +18665,7 @@ msgid "raw black/white point" msgstr "raw 黑/白点" -#: ../src/iop/rawprepare.c:156 +#: ../src/iop/rawprepare.c:172 msgid "" "sets technical specificities of the raw sensor.\n" "touch with great care!" @@ -18020,61 +18673,61 @@ "改变传感器技术参数。\n" "请谨慎修改!" -#: ../src/iop/rawprepare.c:168 +#: ../src/iop/rawprepare.c:184 msgid "passthrough" msgstr "直通" -#: ../src/iop/rawprepare.c:655 +#: ../src/iop/rawprepare.c:663 msgid "invalid crop parameters" msgstr "无效裁剪参数" -#: ../src/iop/rawprepare.c:656 +#: ../src/iop/rawprepare.c:664 msgid "" "please reset to defaults, update your preset or set to something correct" msgstr "请重置为默认值,更改你的预置或者设置为正确的参数" -#: ../src/iop/rawprepare.c:922 +#: ../src/iop/rawprepare.c:930 msgid "black level 0" msgstr "黑电平 0" -#: ../src/iop/rawprepare.c:923 +#: ../src/iop/rawprepare.c:931 msgid "black level 1" msgstr "黑电平 1" -#: ../src/iop/rawprepare.c:924 +#: ../src/iop/rawprepare.c:932 msgid "black level 2" msgstr "黑电平 2" -#: ../src/iop/rawprepare.c:925 +#: ../src/iop/rawprepare.c:933 msgid "black level 3" msgstr "黑电平 3" -#: ../src/iop/rawprepare.c:952 +#: ../src/iop/rawprepare.c:960 msgid "raw flat field correction to compensate for lens shading" msgstr "平场校正以补偿镜头阴影" -#: ../src/iop/rawprepare.c:957 +#: ../src/iop/rawprepare.c:965 msgctxt "section" msgid "crop" msgstr "裁剪" -#: ../src/iop/rawprepare.c:960 +#: ../src/iop/rawprepare.c:968 msgid "crop left border" msgstr "从左边缘裁减" -#: ../src/iop/rawprepare.c:964 +#: ../src/iop/rawprepare.c:972 msgid "crop top border" msgstr "从顶部裁减" -#: ../src/iop/rawprepare.c:968 +#: ../src/iop/rawprepare.c:976 msgid "crop right border" msgstr "从右边缘裁减" -#: ../src/iop/rawprepare.c:972 +#: ../src/iop/rawprepare.c:980 msgid "crop bottom border" msgstr "从底部裁减" -#: ../src/iop/rawprepare.c:981 +#: ../src/iop/rawprepare.c:989 msgid "" "raw black/white point correction\n" "only works for the sensors that need it." @@ -18099,11 +18752,11 @@ "this module is deprecated. please use the tone equalizer module instead." msgstr "此模块已弃用。请使用色调均衡器替代。" -#: ../src/iop/relight.c:263 +#: ../src/iop/relight.c:259 msgid "the fill-light in EV" msgstr "曝光补偿(单位为 EV)" -#: ../src/iop/relight.c:272 +#: ../src/iop/relight.c:268 msgid "" "select the center of fill-light\n" "ctrl+click to select an area" @@ -18111,16 +18764,11 @@ "选择补光的中心位置\n" "按住 ctrl 点击以选中区域" -#: ../src/iop/relight.c:276 +#: ../src/iop/relight.c:272 msgid "toggle tool for picking median lightness in image" msgstr "用于选取图像明度中值的切换工具" -#: ../src/iop/relight.c:279 ../src/libs/export.c:1131 -#: ../src/libs/metadata_view.c:147 ../src/libs/print_settings.c:2537 -msgid "width" -msgstr "宽度" - -#: ../src/iop/relight.c:280 +#: ../src/iop/relight.c:276 msgid "width of fill-light area defined in zones" msgstr "补光区域宽度" @@ -18140,29 +18788,29 @@ msgid "geometric and frequential, RGB" msgstr "几何与频率、RGB" -#: ../src/iop/retouch.c:1538 +#: ../src/iop/retouch.c:1689 msgid "cannot display scales when the blending mask is displayed" msgstr "显示混合蒙版时不能显示比例尺" -#: ../src/iop/retouch.c:1861 ../src/iop/retouch.c:1863 -#: ../src/iop/retouch.c:1865 ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2045 ../src/iop/retouch.c:2047 +#: ../src/iop/retouch.c:2049 ../src/iop/retouch.c:2051 #, c-format msgid "default tool changed to %s" msgstr "默认工具已切换至 %s" -#: ../src/iop/retouch.c:1861 +#: ../src/iop/retouch.c:2045 msgid "cloning" msgstr "复制" -#: ../src/iop/retouch.c:1863 +#: ../src/iop/retouch.c:2047 msgid "healing" msgstr "修复" -#: ../src/iop/retouch.c:2226 +#: ../src/iop/retouch.c:2448 msgid "shapes:" msgstr "形状:" -#: ../src/iop/retouch.c:2230 +#: ../src/iop/retouch.c:2454 msgid "" "to add a shape select an algorithm and a shape type and click on the image.\n" "shapes are added to the current scale" @@ -18170,77 +18818,73 @@ "要添加一个形状,选择一个算法和一个形状类型,然后点击图像。\n" "形状将被添加到当前的尺度上" -#. display & suppress masks -#. copy/paste shapes -#. display final image/current scale -#. auto-levels button -#: ../src/iop/retouch.c:2233 ../src/iop/retouch.c:2334 -#: ../src/iop/retouch.c:2339 ../src/iop/retouch.c:2347 -#: ../src/iop/retouch.c:2351 ../src/iop/retouch.c:2358 -#: ../src/iop/retouch.c:2392 +#: ../src/iop/retouch.c:2458 ../src/iop/retouch.c:2591 +#: ../src/iop/retouch.c:2597 ../src/iop/retouch.c:2606 +#: ../src/iop/retouch.c:2611 ../src/iop/retouch.c:2619 +#: ../src/iop/retouch.c:2664 msgid "editing" msgstr "编辑" -#: ../src/iop/retouch.c:2233 +#: ../src/iop/retouch.c:2459 msgid "show and edit shapes on the current scale" msgstr "在当前范围上显示和编辑形状" -#: ../src/iop/retouch.c:2234 +#: ../src/iop/retouch.c:2460 msgid "show and edit shapes in restricted mode" msgstr "在限制模式下显示和编辑形状" -#: ../src/iop/retouch.c:2257 +#: ../src/iop/retouch.c:2489 msgid "algorithms:" msgstr "算法:" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2498 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2510 msgid "tools" msgstr "工具" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2278 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2518 msgid "activate blur tool" msgstr "激活模糊工具" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2493 ../src/iop/retouch.c:2499 +#: ../src/iop/retouch.c:2505 ../src/iop/retouch.c:2511 msgid "change algorithm for current form" msgstr "为当前形态更改算法" -#: ../src/iop/retouch.c:2264 ../src/iop/retouch.c:2281 +#: ../src/iop/retouch.c:2498 ../src/iop/retouch.c:2521 msgid "activate fill tool" msgstr "激活填充工具" -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2284 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2524 msgid "activate cloning tool" msgstr "激活克隆工具" -#: ../src/iop/retouch.c:2272 ../src/iop/retouch.c:2287 +#: ../src/iop/retouch.c:2510 ../src/iop/retouch.c:2527 msgid "activate healing tool" msgstr "激活修复工具" #. overwrite tooltip ourself to handle shift+click -#: ../src/iop/retouch.c:2276 +#: ../src/iop/retouch.c:2516 msgid "ctrl+click to change tool for current form" msgstr "ctrl + 单击为当前形态更改算法" -#: ../src/iop/retouch.c:2277 +#: ../src/iop/retouch.c:2517 msgid "shift+click to set the tool as default" msgstr "shift + 单击将当前工具设置为默认" -#: ../src/iop/retouch.c:2296 +#: ../src/iop/retouch.c:2537 msgid "scales:" msgstr "层级:" -#: ../src/iop/retouch.c:2301 +#: ../src/iop/retouch.c:2544 msgid "current:" msgstr "当前的:" -#: ../src/iop/retouch.c:2306 +#: ../src/iop/retouch.c:2551 msgid "merge from:" msgstr "合并自:" -#: ../src/iop/retouch.c:2314 +#: ../src/iop/retouch.c:2562 msgid "" "top slider adjusts where the merge scales start\n" "bottom slider adjusts the number of scales\n" @@ -18254,44 +18898,44 @@ "顶线表示在当前的缩放级别上,该比例尺可见\n" "底线表示该比例尺上有形状" -#: ../src/iop/retouch.c:2334 +#: ../src/iop/retouch.c:2591 msgid "display masks" msgstr "显示蒙板" -#: ../src/iop/retouch.c:2339 +#: ../src/iop/retouch.c:2597 msgid "temporarily switch off shapes" msgstr "暂时不显示形状" -#: ../src/iop/retouch.c:2347 +#: ../src/iop/retouch.c:2606 msgid "paste cut shapes to current scale" msgstr "将剪切形状粘贴到当前层级" -#: ../src/iop/retouch.c:2351 +#: ../src/iop/retouch.c:2611 msgid "cut shapes from current scale" msgstr "从当前层级剪切形状" -#: ../src/iop/retouch.c:2358 +#: ../src/iop/retouch.c:2619 msgid "display wavelet scale" msgstr "显示小波层次" -#: ../src/iop/retouch.c:2366 +#: ../src/iop/retouch.c:2627 msgctxt "section" msgid "preview single scale" msgstr "预览单个层级" -#: ../src/iop/retouch.c:2377 +#: ../src/iop/retouch.c:2641 msgid "adjust preview levels" msgstr "调整预览级别" -#: ../src/iop/retouch.c:2392 ../src/iop/rgblevels.c:1051 +#: ../src/iop/retouch.c:2664 ../src/iop/rgblevels.c:1106 msgid "auto levels" msgstr "自动级别" -#: ../src/iop/retouch.c:2400 +#: ../src/iop/retouch.c:2672 msgid "shape selected:" msgstr "已选择形状:" -#: ../src/iop/retouch.c:2405 +#: ../src/iop/retouch.c:2678 msgid "" "click on a shape to select it,\n" "to unselect click on an empty space" @@ -18299,60 +18943,60 @@ "点击一个形状来选择它,\n" "要取消选择,请点击一个空白区域" -#: ../src/iop/retouch.c:2412 +#: ../src/iop/retouch.c:2687 msgid "erase the detail or fills with chosen color" msgstr "擦除细节或用所选颜色填充" -#: ../src/iop/retouch.c:2419 +#: ../src/iop/retouch.c:2697 msgid "fill color: " msgstr "填充颜色: " -#: ../src/iop/retouch.c:2424 ../src/iop/retouch.c:2425 +#: ../src/iop/retouch.c:2702 ../src/iop/retouch.c:2703 msgid "select fill color" msgstr "选择填充颜色" -#: ../src/iop/retouch.c:2430 +#: ../src/iop/retouch.c:2713 msgid "pick fill color from image" msgstr "从图像中选取填充颜色" -#: ../src/iop/retouch.c:2431 +#: ../src/iop/retouch.c:2714 msgid "pick fill color" msgstr "选择填充颜色" -#: ../src/iop/retouch.c:2439 +#: ../src/iop/retouch.c:2724 msgid "adjusts color brightness to fine-tune it. works with erase as well" msgstr "调整颜色亮度以进行微调,也适用于擦除" -#: ../src/iop/retouch.c:2445 +#: ../src/iop/retouch.c:2730 msgid "type for the blur algorithm" msgstr "模糊算法的类型" -#: ../src/iop/retouch.c:2449 +#: ../src/iop/retouch.c:2734 msgid "radius of the selected blur type" msgstr "选定的模糊类型的半径" -#: ../src/iop/retouch.c:2455 +#: ../src/iop/retouch.c:2741 msgid "set the opacity on the selected shape" msgstr "设置选定形状的不透明度" -#: ../src/iop/retouch.c:2461 +#: ../src/iop/retouch.c:2748 msgctxt "section" msgid "retouch tools" msgstr "修饰工具" #. wavelet decompose -#: ../src/iop/retouch.c:2470 +#: ../src/iop/retouch.c:2757 msgctxt "section" msgid "wavelet decompose" msgstr "小波分解" #. shapes -#: ../src/iop/retouch.c:2484 +#: ../src/iop/retouch.c:2771 msgctxt "section" msgid "shapes" msgstr "形状" -#: ../src/iop/retouch.c:3589 ../src/iop/retouch.c:4427 +#: ../src/iop/retouch.c:3986 ../src/iop/retouch.c:4956 #, c-format msgid "max scale is %i for this image size" msgstr "对于该图像尺寸,最大比例为 %i" @@ -18361,59 +19005,59 @@ msgid "rgb curve" msgstr "rgb 曲线" -#: ../src/iop/rgbcurve.c:142 +#: ../src/iop/rgbcurve.c:144 msgid "alter an image’s tones using curves in RGB color space" msgstr "在 RGB 色彩空间中使用曲线改变图像的色调" -#: ../src/iop/rgbcurve.c:193 ../src/iop/tonecurve.c:548 +#: ../src/iop/rgbcurve.c:195 ../src/iop/tonecurve.c:569 msgid "gamma 1.0 (linear)" msgstr "gamma 1.0(线性)" -#: ../src/iop/rgbcurve.c:203 ../src/iop/tonecurve.c:558 +#: ../src/iop/rgbcurve.c:205 ../src/iop/tonecurve.c:579 msgid "contrast - med (linear)" msgstr "对比度 - 中(线性)" -#: ../src/iop/rgbcurve.c:212 ../src/iop/tonecurve.c:567 +#: ../src/iop/rgbcurve.c:214 ../src/iop/tonecurve.c:588 msgid "contrast - high (linear)" msgstr "对比度 - 高(线性)" -#: ../src/iop/rgbcurve.c:226 ../src/iop/tonecurve.c:579 +#: ../src/iop/rgbcurve.c:228 ../src/iop/tonecurve.c:600 msgid "contrast - med (gamma 2.2)" msgstr "对比度 - 中(gamma 2.2)" -#: ../src/iop/rgbcurve.c:239 ../src/iop/tonecurve.c:590 +#: ../src/iop/rgbcurve.c:241 ../src/iop/tonecurve.c:611 msgid "contrast - high (gamma 2.2)" msgstr "对比度 - 高(gamma 2.2)" -#: ../src/iop/rgbcurve.c:252 ../src/iop/tonecurve.c:603 +#: ../src/iop/rgbcurve.c:254 ../src/iop/tonecurve.c:624 msgid "gamma 2.0" msgstr "gamma 2.0" -#: ../src/iop/rgbcurve.c:258 ../src/iop/tonecurve.c:609 +#: ../src/iop/rgbcurve.c:260 ../src/iop/tonecurve.c:630 msgid "gamma 0.5" msgstr "gamma 0.5" -#: ../src/iop/rgbcurve.c:263 ../src/iop/tonecurve.c:614 +#: ../src/iop/rgbcurve.c:265 ../src/iop/tonecurve.c:635 msgid "logarithm (base 2)" msgstr "对数(以 2 为底)" -#: ../src/iop/rgbcurve.c:268 ../src/iop/tonecurve.c:619 +#: ../src/iop/rgbcurve.c:270 ../src/iop/tonecurve.c:640 msgid "exponential (base 2)" msgstr "指数(以 2 为底)" -#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:999 +#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:1038 msgid "choose between linked and independent channels." msgstr "在链接和独立的通道之间选择。" -#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1003 +#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1043 msgid "curve nodes for r channel" msgstr "色调曲线 - r 通道" -#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1004 +#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1044 msgid "curve nodes for g channel" msgstr "色调曲线 - g 通道" -#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1005 +#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1045 msgid "curve nodes for b channel" msgstr "色调曲线 - b 通道" @@ -18421,15 +19065,15 @@ msgid "rgb levels" msgstr "rgb 色阶" -#: ../src/iop/rgblevels.c:122 +#: ../src/iop/rgblevels.c:124 msgid "adjust black, white and mid-gray points in RGB color space" msgstr "调整 RGB 色彩空间中的黑、白和中间灰点位置" -#: ../src/iop/rgblevels.c:1056 +#: ../src/iop/rgblevels.c:1112 msgid "auto region" msgstr "自动确定区域" -#: ../src/iop/rgblevels.c:1058 +#: ../src/iop/rgblevels.c:1115 msgid "" "apply auto levels based on a region defined by the user\n" "click and drag to draw the area\n" @@ -18444,7 +19088,7 @@ msgid "rotate pixels" msgstr "旋转像素" -#: ../src/iop/rotatepixels.c:97 ../src/iop/scalepixels.c:82 +#: ../src/iop/rotatepixels.c:99 ../src/iop/scalepixels.c:84 msgid "" "internal module to setup technical specificities of raw sensor.\n" "\n" @@ -18454,11 +19098,11 @@ "\n" "您不应该修改这里的数值!" -#: ../src/iop/rotatepixels.c:366 +#: ../src/iop/rotatepixels.c:381 msgid "automatic pixel rotation" msgstr "自动像素旋转" -#: ../src/iop/rotatepixels.c:367 +#: ../src/iop/rotatepixels.c:382 msgid "" "automatic pixel rotation\n" "only works for the sensors that need it." @@ -18471,11 +19115,11 @@ msgid "scale pixels" msgstr "缩放像素" -#: ../src/iop/scalepixels.c:271 +#: ../src/iop/scalepixels.c:281 msgid "automatic pixel scaling" msgstr "自动像素缩放" -#: ../src/iop/scalepixels.c:272 +#: ../src/iop/scalepixels.c:282 msgid "" "automatic pixel scaling\n" "only works for the sensors that need it." @@ -18483,11 +19127,11 @@ "自动像素缩放。\n" "只适用于需要它的传感器。" -#: ../src/iop/shadhi.c:175 +#: ../src/iop/shadhi.c:120 msgid "shadows and highlights" msgstr "阴影和高亮" -#: ../src/iop/shadhi.c:195 +#: ../src/iop/shadhi.c:142 msgid "" "modify the tonal range of the shadows and highlights\n" "of an image by enhancing local contrast." @@ -18495,27 +19139,27 @@ "通过增强局部对比度来修改图像\n" "的阴影和高光部分的色调范围。" -#: ../src/iop/shadhi.c:676 ../src/iop/splittoning.c:548 +#: ../src/iop/shadhi.c:711 ../src/iop/splittoning.c:544 msgid "compress" msgstr "压缩" -#: ../src/iop/shadhi.c:683 +#: ../src/iop/shadhi.c:718 msgid "correct shadows" msgstr "修正阴影" -#: ../src/iop/shadhi.c:684 +#: ../src/iop/shadhi.c:719 msgid "correct highlights" msgstr "修正高亮" -#: ../src/iop/shadhi.c:685 +#: ../src/iop/shadhi.c:720 msgid "shift white point" msgstr "移动白点" -#: ../src/iop/shadhi.c:687 +#: ../src/iop/shadhi.c:722 msgid "filter to use for softening. bilateral avoids halos" msgstr "柔化使用的滤镜。双边避免光晕" -#: ../src/iop/shadhi.c:688 +#: ../src/iop/shadhi.c:723 msgid "" "compress the effect on shadows/highlights and\n" "preserve mid-tones" @@ -18523,11 +19167,11 @@ "压缩在阴影/高亮处的效果\n" "并保留中间色调" -#: ../src/iop/shadhi.c:689 +#: ../src/iop/shadhi.c:724 msgid "adjust saturation of shadows" msgstr "调整阴影的饱和度" -#: ../src/iop/shadhi.c:690 +#: ../src/iop/shadhi.c:725 msgid "adjust saturation of highlights" msgstr "调整高亮的饱和度" @@ -18536,45 +19180,45 @@ msgid "sharpen" msgstr "锐化" -#: ../src/iop/sharpen.c:93 +#: ../src/iop/sharpen.c:95 msgid "sharpen the details in the image using a standard UnSharp Mask (USM)" msgstr "使用USM锐化方式锐化图像中的细节" -#: ../src/iop/sharpen.c:95 +#: ../src/iop/sharpen.c:97 msgid "linear or non-linear, Lab, display or scene-referred" msgstr "线性或非线性、Lab、基于显示或场景" -#: ../src/iop/sharpen.c:97 +#: ../src/iop/sharpen.c:99 msgid "quasi-linear, Lab, display or scene-referred" msgstr "准线性、Lab、基于显示或场景" #. add the preset. #. restrict to raw images -#: ../src/iop/sharpen.c:104 ../src/iop/sharpen.c:108 +#: ../src/iop/sharpen.c:106 ../src/iop/sharpen.c:110 msgid "sharpen" msgstr "锐化" -#: ../src/iop/sharpen.c:443 +#: ../src/iop/sharpen.c:438 msgid "spatial extent of the unblurring" msgstr "去模糊的空间范围" -#: ../src/iop/sharpen.c:447 +#: ../src/iop/sharpen.c:442 msgid "strength of the sharpen" msgstr "锐化力度" -#: ../src/iop/sharpen.c:451 +#: ../src/iop/sharpen.c:446 msgid "threshold to activate sharpen" msgstr "激活锐化阀值" -#: ../src/iop/sigmoid.c:89 +#: ../src/iop/sigmoid.c:195 msgid "sigmoid" msgstr "S 形函数" -#: ../src/iop/sigmoid.c:94 +#: ../src/iop/sigmoid.c:200 msgid "tone mapping|view transform|display transform" msgstr "色调映射|视图变换|显示变换" -#: ../src/iop/sigmoid.c:99 +#: ../src/iop/sigmoid.c:206 msgid "" "apply a view transform to make a image displayable\n" "on a screen or print. uses a robust and smooth\n" @@ -18583,19 +19227,19 @@ "对图像体应用视图变换,使得图像可以在屏幕上显示或者印刷。使用一个带有可选色彩" "维持方法的稳定平滑的色调曲线。" -#: ../src/iop/sigmoid.c:155 +#: ../src/iop/sigmoid.c:258 msgid "neutral gray" msgstr "中性灰" -#: ../src/iop/sigmoid.c:160 +#: ../src/iop/sigmoid.c:264 msgid "ACES 100-nit like" msgstr "类似 ACES 100 尼特" -#: ../src/iop/sigmoid.c:165 +#: ../src/iop/sigmoid.c:270 msgid "Reinhard" msgstr "Reinhard" -#: ../src/iop/sigmoid.c:683 +#: ../src/iop/sigmoid.c:917 msgid "" "compression of the applied curve\n" "implicitly defines the supported input dynamic range" @@ -18603,7 +19247,7 @@ "对应用的曲线进行压缩\n" "此选项同时将定义输入动态范围" -#: ../src/iop/sigmoid.c:686 +#: ../src/iop/sigmoid.c:920 msgid "" "shift the compression towards shadows or highlights.\n" "negative values increase contrast in shadows.\n" @@ -18615,21 +19259,61 @@ "正值将增强高光中的对比度。\n" "亮度另一端的对比度将会降低。" -#: ../src/iop/sigmoid.c:695 +#: ../src/iop/sigmoid.c:929 msgid "" "optional correction of the hue twist introduced by\n" "the per-channel processing method." msgstr "针对分通道处理导致色相偏离的可选修复。" -#: ../src/iop/sigmoid.c:702 +#: ../src/iop/sigmoid.c:936 ../src/iop/sigmoid.c:940 +msgid "primaries" +msgstr "三原色" + +#: ../src/iop/sigmoid.c:937 +msgid "set custom primaries" +msgstr "设置自定义原色" + +#: ../src/iop/sigmoid.c:943 +msgid "primaries to use as the base for below adjustments" +msgstr "作为调整基础的三原色" + +#: ../src/iop/sigmoid.c:962 +msgid "attenuate the purity of the red primary" +msgstr "衰减红原色的纯度" + +#: ../src/iop/sigmoid.c:963 +msgid "rotate the red primary" +msgstr "旋转红原色" + +#: ../src/iop/sigmoid.c:964 +msgid "attenuate the purity of the green primary" +msgstr "衰减绿原色的纯度" + +#: ../src/iop/sigmoid.c:965 +msgid "rotate the green primary" +msgstr "旋转绿原色" + +#: ../src/iop/sigmoid.c:966 +msgid "attenuate the purity of the blue primary" +msgstr "衰减蓝原色的纯度" + +#: ../src/iop/sigmoid.c:967 +msgid "rotate the blue primary" +msgstr "旋转绿原色" + +#: ../src/iop/sigmoid.c:974 +msgid "recover some of the original purity after the inset" +msgstr "在衰减后恢复部分纯度" + +#: ../src/iop/sigmoid.c:978 msgid "display luminance" msgstr "显示亮度" -#: ../src/iop/sigmoid.c:706 +#: ../src/iop/sigmoid.c:979 msgid "set display black/white targets" msgstr "设置显示目标黑色和白色" -#: ../src/iop/sigmoid.c:714 +#: ../src/iop/sigmoid.c:987 msgid "" "the black luminance of the target display or print.\n" "can be used creatively for a faded look." @@ -18637,7 +19321,7 @@ "目标显示器或印刷品的黑色亮度。\n" "可以有创意的使用以获得褪色效果。" -#: ../src/iop/sigmoid.c:719 +#: ../src/iop/sigmoid.c:992 msgid "" "the white luminance of the target display or print.\n" "can be used creatively for a faded look or blowing out whites earlier." @@ -18649,23 +19333,23 @@ msgid "soften" msgstr "柔化" -#: ../src/iop/soften.c:100 +#: ../src/iop/soften.c:102 msgid "create a softened image using the Orton effect" msgstr "使用奥顿效果(Orton Effect)创建柔和的图像" -#: ../src/iop/soften.c:371 +#: ../src/iop/soften.c:366 msgid "the size of blur" msgstr "模糊尺寸" -#: ../src/iop/soften.c:375 +#: ../src/iop/soften.c:370 msgid "the saturation of blur" msgstr "模糊的饱和度" -#: ../src/iop/soften.c:379 +#: ../src/iop/soften.c:374 msgid "the brightness of blur" msgstr "亮度模糊" -#: ../src/iop/soften.c:383 +#: ../src/iop/soften.c:378 msgid "the mix of effect" msgstr "混合效果" @@ -18673,55 +19357,55 @@ msgid "split-toning" msgstr "色调分离" -#: ../src/iop/splittoning.c:101 +#: ../src/iop/splittoning.c:103 msgid "" "use two specific colors for shadows and highlights and\n" "create a linear toning effect between them up to a pivot." msgstr "对阴影和高光使用两种指定的颜色,并在它们之间创建一个线性的色调效果。" -#: ../src/iop/splittoning.c:118 +#: ../src/iop/splittoning.c:120 msgid "authentic sepia" msgstr "怀旧照片褪色效果" -#: ../src/iop/splittoning.c:127 +#: ../src/iop/splittoning.c:129 msgid "authentic cyanotype" msgstr "怀旧蓝印色效果" -#: ../src/iop/splittoning.c:136 +#: ../src/iop/splittoning.c:138 msgid "authentic platinotype" msgstr "怀旧单色效果" -#: ../src/iop/splittoning.c:145 +#: ../src/iop/splittoning.c:147 msgid "chocolate brown" msgstr "巧克力棕" -#: ../src/iop/splittoning.c:490 +#: ../src/iop/splittoning.c:486 msgid "select the saturation tone" msgstr "选择饱和度" -#: ../src/iop/splittoning.c:494 +#: ../src/iop/splittoning.c:490 msgid "select tone color" msgstr "选择色调的色彩" -#: ../src/iop/splittoning.c:524 +#: ../src/iop/splittoning.c:520 msgctxt "section" msgid "shadows" msgstr "阴影" -#: ../src/iop/splittoning.c:530 +#: ../src/iop/splittoning.c:526 msgctxt "section" msgid "highlights" msgstr "高光" -#: ../src/iop/splittoning.c:539 +#: ../src/iop/splittoning.c:535 msgid "balance" msgstr "平衡" -#: ../src/iop/splittoning.c:546 +#: ../src/iop/splittoning.c:542 msgid "the balance of center of split-toning" msgstr "分割色调中心的平衡" -#: ../src/iop/splittoning.c:550 +#: ../src/iop/splittoning.c:546 msgid "" "compress the effect on highlights/shadows and\n" "preserve mid-tones" @@ -18745,15 +19429,15 @@ msgid "geometric, raw" msgstr "几何、RAW" -#: ../src/iop/spots.c:226 +#: ../src/iop/spots.c:238 msgid "spot module is limited to 64 shapes. please add a new instance!" msgstr "污点去除模块最大只能支持 64 个形状。请添加新的实例!" -#: ../src/iop/spots.c:872 +#: ../src/iop/spots.c:874 msgid "number of strokes:" msgstr "笔画数目:" -#: ../src/iop/spots.c:876 +#: ../src/iop/spots.c:878 msgid "" "click on a shape and drag on canvas.\n" "use the mouse wheel to adjust size.\n" @@ -18763,126 +19447,116 @@ "滚轮调整大小。\n" "右键单击以删除形状。" -#: ../src/iop/spots.c:879 +#: ../src/iop/spots.c:881 msgid "show and edit shapes" msgstr "显示和编辑形状" -#: ../src/iop/temperature.c:204 +#: ../src/iop/temperature.c:212 msgctxt "modulename" msgid "white balance" msgstr "白平衡" -#: ../src/iop/temperature.c:211 +#: ../src/iop/temperature.c:219 msgid "scale raw RGB channels to balance white and help demosaicing" msgstr "衡量RAW的RGB通道以平衡白色并帮助色彩重建" -#: ../src/iop/temperature.c:1149 -msgid "white balance applied twice" -msgstr "白平衡设置被应用了两次" - -#: ../src/iop/temperature.c:1150 -msgid "" -"the color calibration module is enabled,\n" -"and performing chromatic adaptation.\n" -"set the white balance here to camera reference (D65)\n" -"or disable chromatic adaptation in color calibration." -msgstr "" -"色彩校准模块已启用,\n" -"请在此将白平衡设置为相机基准点(D65)或在色彩校准模块中禁用色彩适应。" - -#: ../src/iop/temperature.c:1430 +#: ../src/iop/temperature.c:1388 #, c-format msgid "`%s' color matrix not found for image" msgstr "未找到图像的“%s”色彩矩阵" -#: ../src/iop/temperature.c:1459 +#: ../src/iop/temperature.c:1418 #, c-format msgid "failed to read camera white balance information from `%s'!" msgstr "无法从“%s”读取相机白平衡信息!" -#: ../src/iop/temperature.c:1631 +#: ../src/iop/temperature.c:1612 msgctxt "white balance" msgid "as shot" msgstr "拍摄时的设定" #. old "spot", reason: describes exactly what'll happen -#: ../src/iop/temperature.c:1634 +#: ../src/iop/temperature.c:1615 msgctxt "white balance" msgid "from image area" msgstr "从图像区域" -#: ../src/iop/temperature.c:1635 +#: ../src/iop/temperature.c:1616 msgctxt "white balance" msgid "user modified" msgstr "用户调整" #. old "camera neutral", reason: better matches intent -#: ../src/iop/temperature.c:1637 +#: ../src/iop/temperature.c:1618 msgctxt "white balance" msgid "camera reference" msgstr "相机参考" -#: ../src/iop/temperature.c:1920 ../src/iop/temperature.c:1938 +#: ../src/iop/temperature.c:1897 ../src/iop/temperature.c:1915 msgid "green channel coefficient" msgstr "绿色通道系数" -#: ../src/iop/temperature.c:1922 +#: ../src/iop/temperature.c:1899 msgid "magenta channel coefficient" msgstr "品红通道系数" -#: ../src/iop/temperature.c:1924 +#: ../src/iop/temperature.c:1901 msgid "cyan channel coefficient" msgstr "青色通道系数" -#: ../src/iop/temperature.c:1926 +#: ../src/iop/temperature.c:1903 msgid "yellow channel coefficient" msgstr "黄色通道系数" -#: ../src/iop/temperature.c:1936 +#: ../src/iop/temperature.c:1913 msgid "red channel coefficient" msgstr "红色通道系数" -#: ../src/iop/temperature.c:1940 +#: ../src/iop/temperature.c:1917 msgid "blue channel coefficient" msgstr "蓝色通道系数" -#: ../src/iop/temperature.c:1942 +#: ../src/iop/temperature.c:1918 +msgid "emerald" +msgstr "祖母绿" + +#: ../src/iop/temperature.c:1919 msgid "emerald channel coefficient" msgstr "青绿色通道系数" #. relabel to settings to remove confusion between module presets #. and white balance settings -#: ../src/iop/temperature.c:2029 ../src/iop/temperature.c:2042 -#: ../src/iop/temperature.c:2049 ../src/iop/temperature.c:2055 -#: ../src/iop/temperature.c:2074 +#: ../src/iop/temperature.c:1997 ../src/iop/temperature.c:2010 +#: ../src/iop/temperature.c:2017 ../src/iop/temperature.c:2023 +#: ../src/iop/temperature.c:2042 msgid "settings" msgstr "设置" -#: ../src/iop/temperature.c:2029 +#: ../src/iop/temperature.c:1997 msgid "as shot" msgstr "机身设置" -#: ../src/iop/temperature.c:2032 +#: ../src/iop/temperature.c:2000 msgid "set white balance to as shot" msgstr "将白平衡设置为拍摄时的设定" -#: ../src/iop/temperature.c:2042 +#: ../src/iop/temperature.c:2010 msgid "from image area" msgstr "从图像区域" -#: ../src/iop/temperature.c:2049 +#: ../src/iop/temperature.c:2017 msgid "user modified" msgstr "用户调整" -#: ../src/iop/temperature.c:2052 +#: ../src/iop/temperature.c:2020 msgid "set white balance to user modified" msgstr "将白平衡设置为用户自定义设置" -#: ../src/iop/temperature.c:2055 +#: ../src/iop/temperature.c:2023 msgid "camera reference" msgstr "相机参考" -#: ../src/iop/temperature.c:2060 +#: ../src/iop/temperature.c:2028 msgid "" "set white balance to camera reference point\n" "in most cases it should be D65" @@ -18890,56 +19564,60 @@ "将白平衡设置为相机基准点\n" "绝大多数情况下都是 D65 光源" -#: ../src/iop/temperature.c:2075 +#: ../src/iop/temperature.c:2043 msgid "choose white balance setting" msgstr "选择白平衡设置" -#: ../src/iop/temperature.c:2080 +#: ../src/iop/temperature.c:2048 msgid "finetune" msgstr "微调" -#: ../src/iop/temperature.c:2082 +#: ../src/iop/temperature.c:2050 msgid "fine tune camera's white balance setting" msgstr "微调相机白平衡设置" -#: ../src/iop/temperature.c:2093 +#: ../src/iop/temperature.c:2058 msgctxt "section" msgid "scene illuminant temp" msgstr "场景光照色温" -#: ../src/iop/temperature.c:2094 +#: ../src/iop/temperature.c:2059 msgid "click to cycle color mode on sliders" msgstr "单击切换滑动条的色彩模式" -#: ../src/iop/temperature.c:2108 +#: ../src/iop/temperature.c:2073 msgid "color temperature (in Kelvin)" msgstr "色温(开尔文)" -#: ../src/iop/temperature.c:2114 +#: ../src/iop/temperature.c:2079 msgid "tint" msgstr "色调" -#: ../src/iop/temperature.c:2117 +#: ../src/iop/temperature.c:2082 msgid "color tint of the image, from magenta (value < 1) to green (value > 1)" msgstr "图像的色调,从品红(值<1)到绿色(值>1)" -#: ../src/iop/temperature.c:2123 +#: ../src/iop/temperature.c:2088 msgid "channel coefficients" msgstr "通道系数" -#: ../src/iop/temperature.c:2158 +#: ../src/iop/temperature.c:2097 +msgid "various" +msgstr "多个值" + +#: ../src/iop/temperature.c:2123 msgid "white balance disabled for camera" msgstr "已禁用此相机的白平衡设置" -#: ../src/iop/tonecurve.c:190 +#: ../src/iop/tonecurve.c:161 msgid "tone curve" msgstr "色调曲线" -#: ../src/iop/tonecurve.c:210 +#: ../src/iop/tonecurve.c:183 msgid "alter an image’s tones using curves" msgstr "使用曲线改变图像的色调" -#: ../src/iop/tonecurve.c:1125 +#: ../src/iop/tonecurve.c:1147 msgid "" "if set to auto, a and b curves have no effect and are not displayed. chroma " "values (a and b) of each pixel are then adjusted based on L curve data. auto " @@ -18948,114 +19626,108 @@ "设为自动时 a 和 b 通道曲线不生效并隐藏。每个像素的色度值(a 和 b)会根据 L 曲" "线数据自动调整。" -#: ../src/iop/tonecurve.c:1134 +#: ../src/iop/tonecurve.c:1156 msgid "tonecurve for L channel" msgstr "色调曲线 - L 通道" -#: ../src/iop/tonecurve.c:1135 +#: ../src/iop/tonecurve.c:1157 msgid "tonecurve for a channel" msgstr "色调曲线 - a 通道" -#: ../src/iop/tonecurve.c:1136 +#: ../src/iop/tonecurve.c:1158 msgid "tonecurve for b channel" msgstr "色调曲线 - b 通道" -#: ../src/iop/tonecurve.c:1143 ../src/iop/watermark.c:1305 -#: ../src/libs/colorpicker.c:597 +#: ../src/iop/tonecurve.c:1165 ../src/iop/watermark.c:1353 +#: ../src/libs/colorpicker.c:675 msgid "pick color" msgstr "取色" -#: ../src/iop/toneequal.c:311 +#: ../src/iop/toneequal.c:319 msgid "tone equalizer" msgstr "色调均衡器" -#: ../src/iop/toneequal.c:316 +#: ../src/iop/toneequal.c:324 msgid "tone curve|tone mapping|relight|background light|shadows highlights" msgstr "色调曲线|色调映射|重新打光|背景光照|阴影高光" -#: ../src/iop/toneequal.c:323 +#: ../src/iop/toneequal.c:331 msgid "relight the scene as if the lighting was done directly on the scene" msgstr "重新照亮景物,就像直接在场景里进行照明一样" -#: ../src/iop/toneequal.c:326 +#: ../src/iop/toneequal.c:334 msgid "quasi-linear, RGB" msgstr "准线性、RGB" -#: ../src/iop/toneequal.c:327 +#: ../src/iop/toneequal.c:335 msgid "quasi-linear, RGB, scene-referred" msgstr "准线性、RGB、基于场景" -#: ../src/iop/toneequal.c:458 +#: ../src/iop/toneequal.c:489 msgid "simple tone curve" msgstr "简单色调曲线" -#: ../src/iop/toneequal.c:472 +#: ../src/iop/toneequal.c:503 msgid "mask blending: all purposes" msgstr "蒙版混合:通用" -#: ../src/iop/toneequal.c:479 +#: ../src/iop/toneequal.c:510 msgid "mask blending: people with backlight" msgstr "蒙版混合:人物背光" -#: ../src/iop/toneequal.c:496 +#: ../src/iop/toneequal.c:527 msgid "compress shadows/highlights (EIGF): strong" msgstr "压缩阴影/高光(EIGF):强烈" -#: ../src/iop/toneequal.c:501 +#: ../src/iop/toneequal.c:532 msgid "compress shadows/highlights (GF): strong" msgstr "压缩阴影/高光(GF):强烈" -#: ../src/iop/toneequal.c:510 +#: ../src/iop/toneequal.c:541 msgid "compress shadows/highlights (EIGF): medium" msgstr "压缩阴影/高光(EIGF):中等" -#: ../src/iop/toneequal.c:515 +#: ../src/iop/toneequal.c:546 msgid "compress shadows/highlights (GF): medium" msgstr "压缩阴影/高光(GF):中等" -#: ../src/iop/toneequal.c:524 +#: ../src/iop/toneequal.c:555 msgid "compress shadows/highlights (EIGF): soft" msgstr "压缩阴影/高光(EIGF):柔和" -#: ../src/iop/toneequal.c:529 +#: ../src/iop/toneequal.c:560 msgid "compress shadows/highlights (GF): soft" msgstr "压缩阴影/高光(GF):柔和" -#: ../src/iop/toneequal.c:537 +#: ../src/iop/toneequal.c:568 msgid "contrast tone curve: soft" msgstr "对比度曲线:柔和" -#: ../src/iop/toneequal.c:542 +#: ../src/iop/toneequal.c:573 msgid "contrast tone curve: medium" msgstr "对比度曲线:中等" -#: ../src/iop/toneequal.c:547 +#: ../src/iop/toneequal.c:578 msgid "contrast tone curve: strong" msgstr "对比度曲线:强烈" -#: ../src/iop/toneequal.c:570 +#: ../src/iop/toneequal.c:601 msgid "relight: fill-in" msgstr "重新打光:填充" -#: ../src/iop/toneequal.c:627 -msgid "" -"tone equalizer needs to be after distortion modules in the pipeline – " -"disabled" -msgstr "在处理管线中,色调均衡器需要置于失真模块之后 - 已禁用" - -#: ../src/iop/toneequal.c:1091 +#: ../src/iop/toneequal.c:1120 msgid "tone equalizer failed to allocate memory, check your RAM settings" msgstr "色调均衡器未能分配内存,请检查 RAM 设置" -#: ../src/iop/toneequal.c:1795 ../src/iop/toneequal.c:2180 +#: ../src/iop/toneequal.c:1825 ../src/iop/toneequal.c:2196 msgid "the interpolation is unstable, decrease the curve smoothing" msgstr "插值不稳定,减少曲线平滑度" -#: ../src/iop/toneequal.c:1830 ../src/iop/toneequal.c:1897 +#: ../src/iop/toneequal.c:1860 ../src/iop/toneequal.c:1927 msgid "wait for the preview to finish recomputing" msgstr "等待预览图重新计算" -#: ../src/iop/toneequal.c:2037 ../src/iop/toneequal.c:2587 +#: ../src/iop/toneequal.c:2069 ../src/iop/toneequal.c:2628 msgid "" "scroll over image to change tone exposure\n" "shift+scroll for large steps; ctrl+scroll for small steps" @@ -19063,89 +19735,89 @@ "在图像上滚动滚轮以更改曝光色调,\n" "shift + 滚轮大幅度变化;ctrl + 滚轮小幅度变化" -#: ../src/iop/toneequal.c:2185 +#: ../src/iop/toneequal.c:2201 msgid "some parameters are out-of-bounds" msgstr "部分参数超出取值范围" -#: ../src/iop/toneequal.c:2524 +#: ../src/iop/toneequal.c:2518 #, c-format msgid "%+.1f EV" msgstr "%+.1f EV" -#: ../src/iop/toneequal.c:3236 +#: ../src/iop/toneequal.c:3283 #, c-format msgid "[%s over image] change tone exposure" msgstr "[图像 %s] 更改色调曝光" -#: ../src/iop/toneequal.c:3239 +#: ../src/iop/toneequal.c:3286 #, c-format msgid "[%s over image] change tone exposure in large steps" msgstr "[图像 %s] 大幅度更改色调曝光" -#: ../src/iop/toneequal.c:3242 +#: ../src/iop/toneequal.c:3289 #, c-format msgid "[%s over image] change tone exposure in small steps" msgstr "[图像 %s] 小幅度更改色调曝光" #. Simple view -#: ../src/iop/toneequal.c:3323 ../src/iop/toneequal.c:3352 -#: ../src/iop/toneequal.c:3353 ../src/iop/toneequal.c:3354 -#: ../src/iop/toneequal.c:3355 ../src/iop/toneequal.c:3356 -#: ../src/iop/toneequal.c:3357 ../src/iop/toneequal.c:3358 -#: ../src/iop/toneequal.c:3359 ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3376 ../src/iop/toneequal.c:3405 +#: ../src/iop/toneequal.c:3406 ../src/iop/toneequal.c:3407 +#: ../src/iop/toneequal.c:3408 ../src/iop/toneequal.c:3409 +#: ../src/iop/toneequal.c:3410 ../src/iop/toneequal.c:3411 +#: ../src/iop/toneequal.c:3412 ../src/iop/toneequal.c:3413 msgid "simple" msgstr "简单" -#: ../src/iop/toneequal.c:3352 +#: ../src/iop/toneequal.c:3405 msgid "-8 EV" msgstr "-8 EV" -#: ../src/iop/toneequal.c:3353 +#: ../src/iop/toneequal.c:3406 msgid "-7 EV" msgstr "-7 EV" -#: ../src/iop/toneequal.c:3354 +#: ../src/iop/toneequal.c:3407 msgid "-6 EV" msgstr "-6 EV" -#: ../src/iop/toneequal.c:3355 +#: ../src/iop/toneequal.c:3408 msgid "-5 EV" msgstr "-5 EV" -#: ../src/iop/toneequal.c:3356 +#: ../src/iop/toneequal.c:3409 msgid "-4 EV" msgstr "-4 EV" -#: ../src/iop/toneequal.c:3357 +#: ../src/iop/toneequal.c:3410 msgid "-3 EV" msgstr "-3 EV" -#: ../src/iop/toneequal.c:3358 +#: ../src/iop/toneequal.c:3411 msgid "-2 EV" msgstr "-2 EV" -#: ../src/iop/toneequal.c:3359 +#: ../src/iop/toneequal.c:3412 msgid "-1 EV" msgstr "-1 EV" -#: ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3413 msgid "+0 EV" msgstr "+0 EV" #. Advanced view -#: ../src/iop/toneequal.c:3364 +#: ../src/iop/toneequal.c:3417 msgid "advanced" msgstr "高级" -#: ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3444 msgid "double-click to reset the curve" msgstr "双击重置曲线" -#: ../src/iop/toneequal.c:3395 +#: ../src/iop/toneequal.c:3448 msgid "curve smoothing" msgstr "曲线平滑" -#: ../src/iop/toneequal.c:3398 +#: ../src/iop/toneequal.c:3451 msgid "" "positive values will produce more progressive tone transitions\n" "but the curve might become oscillatory in some settings.\n" @@ -19157,25 +19829,25 @@ "度。" #. Masking options -#: ../src/iop/toneequal.c:3408 +#: ../src/iop/toneequal.c:3461 msgid "masking" msgstr "蒙版" -#: ../src/iop/toneequal.c:3413 +#: ../src/iop/toneequal.c:3466 msgid "" "preview the mask and chose the estimator that gives you the\n" "higher contrast between areas to dodge and areas to burn" msgstr "预览蒙版并选择在变暗的区域和变亮的区域之间提供最大对比度的估计量" -#: ../src/iop/toneequal.c:3416 +#: ../src/iop/toneequal.c:3469 msgid "details" msgstr "细节" -#: ../src/iop/toneequal.c:3417 +#: ../src/iop/toneequal.c:3470 msgid "preserve details" msgstr "保留细节" -#: ../src/iop/toneequal.c:3420 +#: ../src/iop/toneequal.c:3473 msgid "" "'no' affects global and local contrast (safe if you only add contrast)\n" "'guided filter' only affects global contrast and tries to preserve local " @@ -19195,13 +19867,13 @@ "平滑阴影和高光的方式是相同的,这与‘引导过滤’平滑较少的高光的方式相反)。\n" "‘平均 EIGF’是‘否’和‘独立于曝光的引导滤波’两者的几何平均值" -#: ../src/iop/toneequal.c:3433 +#: ../src/iop/toneequal.c:3486 msgid "" "number of passes of guided filter to apply\n" "helps diffusing the edges of the filter at the expense of speed" msgstr "要应用的引导滤波的次数,有助于以牺牲速度为代价扩散滤波的边缘" -#: ../src/iop/toneequal.c:3441 +#: ../src/iop/toneequal.c:3494 msgid "" "diameter of the blur in percent of the largest image size\n" "warning: big values of this parameter can make the darkroom\n" @@ -19210,7 +19882,7 @@ "模糊的直径占最大图像大小的百分比。\n" "警告:如果使用了“降噪(预置)”,那么此百分比过大可能降低暗房模式的预览性能。" -#: ../src/iop/toneequal.c:3449 +#: ../src/iop/toneequal.c:3502 msgid "" "precision of the feathering:\n" "higher values force the mask to follow edges more closely\n" @@ -19224,12 +19896,12 @@ "较低的值可以提供更平滑的过渡和更好的平滑\n" "但可能会导致边缘贴合不准确和光晕" -#: ../src/iop/toneequal.c:3456 +#: ../src/iop/toneequal.c:3509 msgctxt "section" msgid "mask post-processing" msgstr "蒙版后处理" -#: ../src/iop/toneequal.c:3467 +#: ../src/iop/toneequal.c:3520 msgid "" "mask histogram span between the first and last deciles.\n" "the central line shows the average. orange bars appear at extrema if " @@ -19239,7 +19911,7 @@ "中线表示平均值。\n" "如果阴影或高光发生裁剪,橙色小框会出现在左右两端。" -#: ../src/iop/toneequal.c:3475 +#: ../src/iop/toneequal.c:3528 msgid "" "0 disables the quantization.\n" "higher values posterize the luminance mask to help the guiding\n" @@ -19249,7 +19921,7 @@ "较高的值会对亮度蒙版进行分色处理,当使用高羽化值时,能帮助引导生成分段的平滑" "区域" -#: ../src/iop/toneequal.c:3484 +#: ../src/iop/toneequal.c:3537 msgid "" "use this to slide the mask average exposure along channels\n" "for a better control of the exposure correction with the available nodes.\n" @@ -19259,7 +19931,7 @@ "用节点的曝光校正得到更好的控制。\n" "点击魔法棒以自动调整平均曝光" -#: ../src/iop/toneequal.c:3497 +#: ../src/iop/toneequal.c:3550 msgid "" "use this to counter the averaging effect of the guided filter\n" "and dilate the mask contrast around -4EV\n" @@ -19271,7 +19943,7 @@ "这允许将曝光直方图分布在更多通道上,以便更好地控制曝光校正。\n" "点击魔法棒可以自动调整对比度" -#: ../src/iop/toneequal.c:3520 ../src/iop/toneequal.c:3523 +#: ../src/iop/toneequal.c:3573 ../src/iop/toneequal.c:3576 msgid "display exposure mask" msgstr "显示曝光蒙版" @@ -19285,20 +19957,20 @@ "module instead." msgstr "此模块已弃用。请使用局部对比度或色调均衡器模块替代。" -#: ../src/iop/velvia.c:79 +#: ../src/iop/velvia.c:70 msgid "velvia" msgstr "velvia 转片" -#: ../src/iop/velvia.c:104 +#: ../src/iop/velvia.c:97 msgid "" "resaturate giving more weight to blacks, whites and low-saturation pixels" msgstr "给黑,白和低饱和度像素区域增加更多饱和度" -#: ../src/iop/velvia.c:281 +#: ../src/iop/velvia.c:290 msgid "the strength of saturation boost" msgstr "饱和度增加的力度" -#: ../src/iop/velvia.c:284 +#: ../src/iop/velvia.c:293 msgid "how much to spare highlights and shadows" msgstr "高亮和阴影的量" @@ -19308,62 +19980,58 @@ "balance rgb module instead." msgstr "此模块已弃用。请使用 rgb 色彩平衡模块中的鲜艳度滑动条替代。" -#: ../src/iop/vibrance.c:93 +#: ../src/iop/vibrance.c:95 msgid "" "saturate and reduce the lightness of the most saturated pixels\n" "to make the colors more vivid." msgstr "改变饱和度的同时,控制最饱和像素的亮度,使颜色生动且自然。" -#: ../src/iop/vibrance.c:217 +#: ../src/iop/vibrance.c:211 msgid "the amount of vibrance" msgstr "自然饱和的量" -#: ../src/iop/vignette.c:153 -msgid "vignetting" -msgstr "渐晕" - -#: ../src/iop/vignette.c:158 +#: ../src/iop/vignette.c:119 msgid "simulate a lens fall-off close to edges" msgstr "模拟镜头边缘的光衰减" -#: ../src/iop/vignette.c:940 +#: ../src/iop/vignette.c:1022 msgid "lomo" msgstr "lomo" -#: ../src/iop/vignette.c:974 +#: ../src/iop/vignette.c:1061 msgctxt "section" msgid "position / form" msgstr "位置/形式" -#: ../src/iop/vignette.c:981 +#: ../src/iop/vignette.c:1069 msgid "dithering" msgstr "抖动" -#: ../src/iop/vignette.c:992 +#: ../src/iop/vignette.c:1081 msgid "the radii scale of vignette for start of fall-off" msgstr "渐晕起始光衰减的比例半径" -#: ../src/iop/vignette.c:993 +#: ../src/iop/vignette.c:1083 msgid "the radii scale of vignette for end of fall-off" msgstr "渐晕结束光衰减的比例半径" -#: ../src/iop/vignette.c:994 +#: ../src/iop/vignette.c:1084 msgid "strength of effect on brightness" msgstr "亮度效果的力度" -#: ../src/iop/vignette.c:995 +#: ../src/iop/vignette.c:1085 msgid "strength of effect on saturation" msgstr "饱和度效果的力度" -#: ../src/iop/vignette.c:996 +#: ../src/iop/vignette.c:1086 msgid "horizontal offset of center of the effect" msgstr "效果中心的横向偏移量" -#: ../src/iop/vignette.c:997 +#: ../src/iop/vignette.c:1087 msgid "vertical offset of center of the effect" msgstr "效果中心的纵向偏移量" -#: ../src/iop/vignette.c:998 +#: ../src/iop/vignette.c:1090 msgid "" "shape factor\n" "0 produces a rectangle\n" @@ -19375,56 +20043,56 @@ "1 产生环或椭圆\n" "2 产生菱形" -#: ../src/iop/vignette.c:1000 +#: ../src/iop/vignette.c:1094 msgid "enable to have the ratio automatically follow the image size" msgstr "启用以随图片尺寸自动调整比例" -#: ../src/iop/vignette.c:1001 +#: ../src/iop/vignette.c:1095 msgid "width-to-height ratio" msgstr "宽高比例" -#: ../src/iop/vignette.c:1002 +#: ../src/iop/vignette.c:1097 msgid "add some level of random noise to prevent banding" msgstr "添加一些随机程度的噪声以防止断层" -#: ../src/iop/vignette.c:1009 +#: ../src/iop/vignette.c:1105 #, c-format msgid "[%s on node] change vignette/feather size" msgstr "[节点 %s] 更改渐晕/羽化尺寸" -#: ../src/iop/vignette.c:1011 +#: ../src/iop/vignette.c:1108 #, c-format msgid "[%s on node] change vignette/feather size keeping ratio" msgstr "[节点 %s] 更改渐晕/羽化尺寸 - 保持纵横比" -#: ../src/iop/vignette.c:1013 +#: ../src/iop/vignette.c:1111 #, c-format msgid "[%s on center] move vignette" msgstr "[中央 %s] 移动渐晕暗角" -#: ../src/iop/watermark.c:371 +#: ../src/iop/watermark.c:416 msgid "watermark" msgstr "水印" -#: ../src/iop/watermark.c:376 +#: ../src/iop/watermark.c:421 msgid "overlay an SVG watermark like a signature on the picture" msgstr "在图片上覆盖上 SVG 水印" -#: ../src/iop/watermark.c:1258 +#: ../src/iop/watermark.c:1306 msgid "marker" msgstr "标记" -#: ../src/iop/watermark.c:1261 +#: ../src/iop/watermark.c:1309 #, c-format msgid "SVG watermarks in %s/watermarks or %s/watermarks" msgstr "在 %s/watermarks 或 %s/watermarks 中查找 SVG 水印" #. Simple text -#: ../src/iop/watermark.c:1271 ../src/iop/watermark.c:1272 +#: ../src/iop/watermark.c:1319 ../src/iop/watermark.c:1320 msgid "text" msgstr "文本" -#: ../src/iop/watermark.c:1273 +#: ../src/iop/watermark.c:1321 msgid "" "text string, tag:\n" "$(WATERMARK_TEXT)" @@ -19432,16 +20100,16 @@ "文本字符串,标签:\n" "$(WATERMARK_TEXT)" -#: ../src/iop/watermark.c:1275 +#: ../src/iop/watermark.c:1323 msgid "content" msgstr "内容" #. Text font -#: ../src/iop/watermark.c:1280 +#: ../src/iop/watermark.c:1328 msgid "font" msgstr "字体" -#: ../src/iop/watermark.c:1285 +#: ../src/iop/watermark.c:1333 msgid "" "text font, tags:\n" "$(WATERMARK_FONT_FAMILY)\n" @@ -19453,7 +20121,7 @@ "$(WATERMARK_FONT_STYLE)\n" "$(WATERMARK_FONT_WEIGHT)" -#: ../src/iop/watermark.c:1300 +#: ../src/iop/watermark.c:1348 msgid "" "watermark color, tag:\n" "$(WATERMARK_COLOR)" @@ -19461,57 +20129,59 @@ "水印颜色,标签:\n" "$(WATERMARK_COLOR)" -#: ../src/iop/watermark.c:1302 +#: ../src/iop/watermark.c:1350 msgid "select watermark color" msgstr "选择水印颜色" -#: ../src/iop/watermark.c:1304 +#: ../src/iop/watermark.c:1352 msgid "pick color from image" msgstr "从图像中选择颜色" -#: ../src/iop/watermark.c:1317 +#: ../src/iop/watermark.c:1365 msgctxt "section" msgid "placement" msgstr "摆放" -#: ../src/iop/watermark.c:1330 +#: ../src/iop/watermark.c:1378 msgid "" -"scaling is done relative to this object\n" -"• image: fits marker into whole image\n" -"• larger border: fits larger marker border to larger image border\n" -"• smaller border: fits larger marker border to smaller image border\n" -"• height: fits marker height to image height, e.g. suitable for texts\n" -"• advanced options: activates two additional drop-down menus" +"choose how to scale the watermark\n" +"• image: scale watermark relative to whole image\n" +"• larger border: scale larger watermark border relative to larger image " +"border\n" +"• smaller border: scale larger watermark border relative to smaller image " +"border\n" +"• height: scale watermark height to image height\n" +"• advanced options: choose watermark and image dimensions independently" msgstr "" "相对于以下对象的尺寸缩放水印:\n" -"• 照片:将水印放置于整张图像上\n" -"• 长边:将水印缩放至符合图像长边\n" -"• 短边:将水印缩放至符合图像短边\n" +"• 照片:基于整张图像的大小缩放水印\n" +"• 长边:基于长边缩放水印\n" +"• 短边:基于短边缩放水印\n" "• 高度:使水印高度和图像高度一致,适合添加文字水印\n" -"• 高级选项:启用高级设置下拉菜单" +"• 高级选项:单独设置水印和图像尺寸参考" -#: ../src/iop/watermark.c:1339 -msgid "reference to which the marker should be scaled to" -msgstr "相对于选中对象的尺寸按制定比例缩放水印" +#: ../src/iop/watermark.c:1387 +msgid "reference image dimension against which to scale the watermark" +msgstr "选择以图像的一边或大小为基准缩放水印" -#: ../src/iop/watermark.c:1343 -msgid "length of the marker which is used as scaling reference" -msgstr "将水印边长用作缩放参考" +#: ../src/iop/watermark.c:1391 +msgid "watermark dimension to scale" +msgstr "计算水印缩放用的基准长度" -#: ../src/iop/watermark.c:1347 ../src/libs/print_settings.c:2675 +#: ../src/iop/watermark.c:1395 ../src/libs/print_settings.c:2675 msgid "alignment" msgstr "对齐" #. Let's add some tooltips and hook up some signals... -#: ../src/iop/watermark.c:1368 +#: ../src/iop/watermark.c:1416 msgid "the opacity of the watermark" msgstr "水印的透明度" -#: ../src/iop/watermark.c:1369 +#: ../src/iop/watermark.c:1417 msgid "the scale of the watermark" msgstr "水印的尺寸" -#: ../src/iop/watermark.c:1370 +#: ../src/iop/watermark.c:1418 msgid "the rotation of the watermark" msgstr "水印的旋转" @@ -19519,7 +20189,7 @@ msgid "zone system" msgstr "明度分区系统" -#: ../src/iop/zonesystem.c:490 +#: ../src/iop/zonesystem.c:486 msgid "" "lightness zones\n" "use mouse scrollwheel to change the number of zones\n" @@ -19561,7 +20231,7 @@ msgid "camera control" msgstr "相机控制" -#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2360 +#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2679 msgid "modes" msgstr "模式" @@ -19663,36 +20333,49 @@ msgid "WB" msgstr "白平衡" -#: ../src/libs/collect.c:151 +#: ../src/libs/collect.c:164 msgid "collections" msgstr "集合" -#: ../src/libs/collect.c:407 +#: ../src/libs/collect.c:424 msgid "search filmroll" msgstr "搜索胶卷" -#: ../src/libs/collect.c:490 +#: ../src/libs/collect.c:507 #, c-format msgid "problem selecting new path for the filmroll in %s" msgstr "为 %s 中的胶卷选择新的路径时出现问题" -#: ../src/libs/collect.c:553 +#: ../src/libs/collect.c:579 msgid "search filmroll..." msgstr "搜索胶卷..." -#: ../src/libs/collect.c:557 +#: ../src/libs/collect.c:584 msgid "remove..." msgstr "移除..." -#: ../src/libs/collect.c:1225 +#: ../src/libs/collect.c:1310 msgid "uncategorized" msgstr "未分类" -#: ../src/libs/collect.c:2138 +#: ../src/libs/collect.c:2172 ../src/libs/filters/rating_range.c:120 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:151 +#: ../src/libs/filters/rating_range.c:302 +msgid "rejected" +msgstr "已退稿" + +#: ../src/libs/collect.c:2175 ../src/libs/filters/rating_range.c:122 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:303 +msgid "not rated" +msgstr "未评定的" + +#: ../src/libs/collect.c:2359 msgid "use <, <=, >, >=, <>, =, [;] as operators" msgstr "可以使用以下操作符:<、<=、>、>=、<>、=、[;]" -#: ../src/libs/collect.c:2142 +#: ../src/libs/collect.c:2363 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "star rating: 0-5\n" @@ -19702,7 +20385,7 @@ "星级:0-5\n" "退稿:-1" -#: ../src/libs/collect.c:2149 +#: ../src/libs/collect.c:2371 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)" @@ -19710,12 +20393,12 @@ "可以使用以下操作符:<、<=、>、>=、<>、=、[;]\n" "请以 YYYY:MM:DD hh:mm:ss.sss 的形式输入日期(年份为必须填写项)" -#: ../src/libs/collect.c:2156 +#: ../src/libs/collect.c:2378 #, no-c-format msgid "use `%' as wildcard and `,' to separate values" msgstr "使用“%”作为通配符,使用“,”分割多个值" -#: ../src/libs/collect.c:2162 +#: ../src/libs/collect.c:2385 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -19728,7 +20411,7 @@ "shift + 单击将只选中当前项目(无后缀)\n" "ctrl + 单击将只选中子项目(使用“|%”后缀)" -#: ../src/libs/collect.c:2174 +#: ../src/libs/collect.c:2398 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -19741,7 +20424,7 @@ "shift + 单击将只选中当前地点(无后缀)\n" "ctrl + 单击将只选中子地点(使用\"|%\"后缀)" -#: ../src/libs/collect.c:2186 +#: ../src/libs/collect.c:2411 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -19754,111 +20437,103 @@ "shift + 单击将只选中当前目录(无后缀)\n" "ctrl + 单击将只选中子目录(使用\"|%\"后缀)" -#: ../src/libs/collect.c:2197 +#: ../src/libs/collect.c:2422 #, no-c-format msgid "use `%' as wildcard" msgstr "使用“%”作为通配符" -#: ../src/libs/collect.c:2263 ../src/libs/collect.c:2277 -#: ../src/libs/collect.c:2800 +#: ../src/libs/collect.c:2488 ../src/libs/collect.c:2502 +#: ../src/libs/collect.c:3111 msgid "clear this rule" msgstr "清除规则" -#: ../src/libs/collect.c:2267 +#: ../src/libs/collect.c:2492 msgid "clear this rule or add new rules" msgstr "清除此规则或添加新规则" -#: ../src/libs/collect.c:2806 +#: ../src/libs/collect.c:3117 msgid "narrow down search" msgstr "缩小搜索范围" -#: ../src/libs/collect.c:2811 +#: ../src/libs/collect.c:3124 msgid "add more images" msgstr "添加更多图片" -#: ../src/libs/collect.c:2816 +#: ../src/libs/collect.c:3131 msgid "exclude images" msgstr "排除图片" -#: ../src/libs/collect.c:2823 +#: ../src/libs/collect.c:3140 msgid "change to: and" msgstr "改为:添加" -#: ../src/libs/collect.c:2828 +#: ../src/libs/collect.c:3147 msgid "change to: or" msgstr "改为:分别" -#: ../src/libs/collect.c:2833 +#: ../src/libs/collect.c:3154 msgid "change to: except" msgstr "改为:排除" #. the different categories -#: ../src/libs/collect.c:2859 ../src/libs/filtering.c:857 -#: ../src/libs/filtering.c:924 ../src/libs/filtering.c:1558 -#: ../src/libs/filtering.c:1890 +#: ../src/libs/collect.c:3184 ../src/libs/filtering.c:883 +#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1620 +#: ../src/libs/filtering.c:1964 msgid "files" msgstr "文件" -#: ../src/libs/collect.c:2864 ../src/libs/export_metadata.c:312 -#: ../src/libs/filtering.c:862 ../src/libs/filtering.c:929 -#: ../src/libs/filtering.c:1566 ../src/libs/filtering.c:1894 -#: ../src/libs/image.c:464 ../src/libs/image.c:574 ../src/libs/image.c:582 -#: ../src/libs/metadata.c:676 ../src/libs/metadata_view.c:1226 +#: ../src/libs/collect.c:3189 ../src/libs/export_metadata.c:301 +#: ../src/libs/filtering.c:888 ../src/libs/filtering.c:955 +#: ../src/libs/filtering.c:1628 ../src/libs/filtering.c:1968 +#: ../src/libs/image.c:495 ../src/libs/image.c:633 ../src/libs/image.c:645 +#: ../src/libs/metadata.c:509 ../src/libs/metadata_view.c:1256 msgid "metadata" msgstr "元数据" -#: ../src/libs/collect.c:2883 ../src/libs/filtering.c:883 -#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1892 +#: ../src/libs/collect.c:3208 ../src/libs/filtering.c:909 +#: ../src/libs/filtering.c:976 ../src/libs/filtering.c:1966 msgid "times" msgstr "时间" -#: ../src/libs/collect.c:2891 ../src/libs/filtering.c:891 -#: ../src/libs/filtering.c:958 ../src/libs/filtering.c:1590 +#: ../src/libs/collect.c:3216 ../src/libs/filtering.c:917 +#: ../src/libs/filtering.c:984 ../src/libs/filtering.c:1652 msgid "capture details" msgstr "拍摄细节" -#: ../src/libs/collect.c:2900 ../src/libs/filtering.c:900 -#: ../src/libs/filtering.c:967 ../src/libs/filtering.c:1602 -#: ../src/libs/filtering.c:1896 ../src/libs/tools/darktable.c:65 +#: ../src/libs/collect.c:3225 ../src/libs/filtering.c:926 +#: ../src/libs/filtering.c:993 ../src/libs/filtering.c:1664 +#: ../src/libs/filtering.c:1970 ../src/libs/tools/darktable.c:61 msgid "darktable" msgstr "darktable" -#: ../src/libs/collect.c:2913 +#: ../src/libs/collect.c:3240 msgid "collections settings" msgstr "图片采集选项" -#: ../src/libs/collect.c:2916 ../src/libs/export_metadata.c:288 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:228 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3472 -msgid "save" -msgstr "保存" - -#: ../src/libs/collect.c:2936 ../src/libs/export.c:1046 -#: ../src/libs/metadata.c:779 ../src/libs/metadata_view.c:1306 -#: ../src/libs/recentcollect.c:293 ../src/libs/tagging.c:3494 +#: ../src/libs/collect.c:3267 ../src/libs/export.c:1126 +#: ../src/libs/metadata.c:615 ../src/libs/metadata_view.c:1339 +#: ../src/libs/recentcollect.c:295 ../src/libs/tagging.c:3526 msgid "preferences..." msgstr "首选项……" -#: ../src/libs/collect.c:3041 ../src/libs/filtering.c:1432 +#: ../src/libs/collect.c:3388 ../src/libs/filtering.c:1494 msgid "AND" msgstr "与" -#: ../src/libs/collect.c:3046 ../src/libs/filtering.c:1437 +#: ../src/libs/collect.c:3393 ../src/libs/filtering.c:1499 msgid "OR" msgstr "或" #. case DT_LIB_COLLECT_MODE_AND_NOT: -#: ../src/libs/collect.c:3051 ../src/libs/filtering.c:1442 +#: ../src/libs/collect.c:3398 ../src/libs/filtering.c:1504 msgid "BUT NOT" msgstr "而不是" -#: ../src/libs/collect.c:3223 ../src/libs/filtering.c:2164 +#: ../src/libs/collect.c:3588 ../src/libs/filtering.c:2238 msgid "revert to a previous set of rules" msgstr "撤回到前一组规则" -#: ../src/libs/collect.c:3280 +#: ../src/libs/collect.c:3671 msgid "jump back to previous collection" msgstr "回到上一个集合" @@ -19882,7 +20557,7 @@ msgid "color picker" msgstr "取色工具" -#: ../src/libs/colorpicker.c:463 +#: ../src/libs/colorpicker.c:513 msgid "" "hover to highlight sample on canvas,\n" "click to lock sample,\n" @@ -19892,23 +20567,23 @@ "点击以锁定样本\n" "右键点击可以将样本区域加载到活跃的选色器中" -#: ../src/libs/colorpicker.c:561 ../src/libs/colorpicker.c:612 +#: ../src/libs/colorpicker.c:626 ../src/libs/colorpicker.c:693 msgid "click to (un)hide large color patch" msgstr "单击以显示或隐藏大色块" -#: ../src/libs/colorpicker.c:575 +#: ../src/libs/colorpicker.c:649 msgid "statistic" msgstr "统计数据" -#: ../src/libs/colorpicker.c:576 +#: ../src/libs/colorpicker.c:650 msgid "select which statistic to show" msgstr "选择要显示的统计数据" -#: ../src/libs/colorpicker.c:585 +#: ../src/libs/colorpicker.c:660 msgid "select which color mode to use" msgstr "选择要使用的颜色模式" -#: ../src/libs/colorpicker.c:594 +#: ../src/libs/colorpicker.c:671 msgid "" "turn on color picker\n" "ctrl+click or right-click to select an area" @@ -19916,21 +20591,21 @@ "启用颜色选择器\n" "按住 ctrl 键并单击或右键以选择区域" -#: ../src/libs/colorpicker.c:636 +#: ../src/libs/colorpicker.c:722 msgid "add sample" msgstr "添加样本" #. Adding the live samples section -#: ../src/libs/colorpicker.c:640 +#: ../src/libs/colorpicker.c:727 msgctxt "section" msgid "live samples" msgstr "在线样本" -#: ../src/libs/colorpicker.c:648 +#: ../src/libs/colorpicker.c:738 msgid "display samples on image/vectorscope" msgstr "在图像和向量表上显示样本" -#: ../src/libs/colorpicker.c:657 +#: ../src/libs/colorpicker.c:749 msgid "restrict scope to selection" msgstr "将向量表分析区域限制到选择范围" @@ -19942,10 +20617,6 @@ msgid "open sidecar file" msgstr "打开附属文件" -#: ../src/libs/copy_history.c:149 -msgid "XMP sidecar files" -msgstr "XMP 附属文件" - #: ../src/libs/copy_history.c:166 #, c-format msgid "error loading file '%s'" @@ -19989,7 +20660,7 @@ msgid "choose which modules to paste to the target image(s)" msgstr "选择要粘贴到目标图像的模块" -#: ../src/libs/copy_history.c:382 ../src/libs/image.c:588 +#: ../src/libs/copy_history.c:382 ../src/libs/image.c:655 msgid "paste" msgstr "粘贴" @@ -20015,11 +20686,11 @@ "all selected images" msgstr "丢弃所有选中图片的历史记录" -#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:847 +#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:851 msgid "how to handle existing history" msgstr "如何处理存在的历史" -#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:850 +#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:854 msgid "append" msgstr "添加" @@ -20037,89 +20708,96 @@ msgid "write history stack and tags to XMP sidecar files" msgstr "将历史记录和标签写入 xmp 附属文件" -#: ../src/libs/duplicate.c:56 +#: ../src/libs/duplicate.c:60 msgid "duplicate manager" msgstr "副本管理器" -#: ../src/libs/duplicate.c:401 +#: ../src/libs/duplicate.c:407 msgid "create a 'virgin' duplicate of the image without any development" msgstr "创建一个没有任何调整的初始图像副本" -#: ../src/libs/duplicate.c:406 +#: ../src/libs/duplicate.c:412 msgid "create a duplicate of the image with same history stack" msgstr "创建一个具有相同历史记录的图像副本" -#. Export button -#: ../src/libs/export.c:153 ../src/libs/export.c:1281 +#: ../src/libs/export.c:160 msgid "export" msgstr "导出" #: ../src/libs/export.c:306 +msgid "invalid format for export selected" +msgstr "导出图像的格式无效" + +#: ../src/libs/export.c:311 +msgid "invalid storage for export selected" +msgstr "导出图像的存储位置无效" + +#: ../src/libs/export.c:322 msgid "export to disk" msgstr "导出至磁盘" -#: ../src/libs/export.c:485 +#: ../src/libs/export.c:516 #, c-format msgid "which is equal to %s × %s px" msgstr "相当于 %s × %s 像素" -#: ../src/libs/export.c:520 +#: ../src/libs/export.c:555 msgctxt "unit" msgid "in" msgstr "使用单位" -#: ../src/libs/export.c:1060 +#: ../src/libs/export.c:1141 msgctxt "section" msgid "storage options" msgstr "存储选项" -#: ../src/libs/export.c:1064 +#: ../src/libs/export.c:1145 msgid "target storage" msgstr "导出目的地" -#: ../src/libs/export.c:1086 +#: ../src/libs/export.c:1171 msgctxt "section" msgid "format options" msgstr "格式选项" -#: ../src/libs/export.c:1090 +#: ../src/libs/export.c:1175 msgid "file format" msgstr "文件格式" -#: ../src/libs/export.c:1107 +#: ../src/libs/export.c:1193 msgctxt "section" msgid "global options" msgstr "全局选项" -#: ../src/libs/export.c:1110 +#: ../src/libs/export.c:1196 msgid "set size" msgstr "设置大小" -#: ../src/libs/export.c:1111 +#: ../src/libs/export.c:1197 msgid "choose a method for setting the output size" msgstr "选择设置输出大小的方法" -#: ../src/libs/export.c:1114 +#: ../src/libs/export.c:1200 msgid "in pixels (for file)" msgstr "像素(文件)" -#: ../src/libs/export.c:1115 +#: ../src/libs/export.c:1201 msgid "in cm (for print)" msgstr "厘米(打印)" -#: ../src/libs/export.c:1116 +#: ../src/libs/export.c:1202 msgid "in inch (for print)" msgstr "英寸(打印)" -#: ../src/libs/export.c:1117 +#: ../src/libs/export.c:1203 msgid "by scale (for file)" msgstr "缩放比例(文件)" -#: ../src/libs/export.c:1119 +#: ../src/libs/export.c:1206 msgid "print width" msgstr "印刷宽度" -#: ../src/libs/export.c:1120 ../src/libs/export.c:1132 +#: ../src/libs/export.c:1208 ../src/libs/export.c:1225 msgid "" "maximum output width limit.\n" "click middle mouse button to reset to 0." @@ -20127,11 +20805,11 @@ "最大输出宽度限制。\n" "单击鼠标中键重置为 0。" -#: ../src/libs/export.c:1123 +#: ../src/libs/export.c:1212 msgid "print height" msgstr "印刷高度" -#: ../src/libs/export.c:1124 ../src/libs/export.c:1136 +#: ../src/libs/export.c:1214 ../src/libs/export.c:1231 msgid "" "maximum output height limit.\n" "click middle mouse button to reset to 0." @@ -20139,19 +20817,19 @@ "最大输出高度限制。\n" "单击鼠标中键重置为 0。" -#: ../src/libs/export.c:1128 +#: ../src/libs/export.c:1220 msgid "resolution in dot per inch" msgstr "分辨率,以 DPI 为单位" -#: ../src/libs/export.c:1148 +#: ../src/libs/export.c:1244 msgid "@" msgstr "@" -#: ../src/libs/export.c:1161 ../src/libs/tools/global_toolbox.c:217 +#: ../src/libs/export.c:1258 ../src/libs/tools/global_toolbox.c:217 msgid "px" msgstr "像素" -#: ../src/libs/export.c:1166 +#: ../src/libs/export.c:1266 msgid "" "it can be an integer, decimal number or simple fraction.\n" "zero or empty values are equal to 1.\n" @@ -20161,36 +20839,36 @@ "0 或空值将被视为 1。\n" "中键点击以将值重置为 1。" -#: ../src/libs/export.c:1185 +#: ../src/libs/export.c:1292 msgid "allow upscaling" msgstr "允许放大图像" -#: ../src/libs/export.c:1191 +#: ../src/libs/export.c:1301 msgid "high quality resampling" msgstr "在导出时进行高质量重新采样" -#: ../src/libs/export.c:1192 +#: ../src/libs/export.c:1302 msgid "do high quality resampling during export" msgstr "在导出时进行高质量重新采样" -#: ../src/libs/export.c:1198 +#: ../src/libs/export.c:1310 msgid "store masks" msgstr "保存蒙版" -#: ../src/libs/export.c:1199 +#: ../src/libs/export.c:1311 msgid "store masks as layers in exported images. only works for some formats." msgstr "将蒙版作为图层存储在导出的图像中。仅适用于某些格式。" -#: ../src/libs/export.c:1210 ../src/libs/export.c:1245 +#: ../src/libs/export.c:1322 ../src/libs/export.c:1357 #: ../src/libs/print_settings.c:2777 ../src/libs/print_settings.c:2823 msgid "image settings" msgstr "图像设定" -#: ../src/libs/export.c:1220 ../src/libs/print_settings.c:2811 +#: ../src/libs/export.c:1332 ../src/libs/print_settings.c:2811 msgid "output ICC profiles" msgstr "导出 ICC 色彩档案" -#: ../src/libs/export.c:1228 +#: ../src/libs/export.c:1340 msgid "" "• perceptual: smoothly moves out-of-gamut colors into gamut, preserving " "gradations,\n" @@ -20217,74 +20895,83 @@ "\n" "• 饱和度:通过保持饱和度来呈现引人注目的商业图形。(不适合于摄影)" -#: ../src/libs/export.c:1255 ../src/libs/print_settings.c:2833 +#: ../src/libs/export.c:1367 ../src/libs/print_settings.c:2833 msgid "style" msgstr "样式" -#: ../src/libs/export.c:1258 +#: ../src/libs/export.c:1370 msgid "temporary style to use while exporting" msgstr "导出时要使用的临时样式" -#: ../src/libs/export.c:1263 ../src/libs/print_settings.c:2876 +#: ../src/libs/export.c:1377 ../src/libs/print_settings.c:2876 msgid "" "whether the style items are appended to the history or replacing the history" msgstr "样式项是附加到历史记录还是替换历史记录" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "replace history" msgstr "替换历史记录" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "append history" msgstr "附加历史记录" -#: ../src/libs/export.c:1282 +#: ../src/libs/export.c:1398 +msgctxt "actionbutton" +msgid "export" +msgstr "导出" + +#: ../src/libs/export.c:1400 msgid "export with current settings" msgstr "当前设定下导出" -#: ../src/libs/export_metadata.c:163 +#: ../src/libs/export_metadata.c:148 msgid "select tag" msgstr "选择标签" -#: ../src/libs/export_metadata.c:164 -msgid "add" -msgstr "添加" +#: ../src/libs/export_metadata.c:150 +msgid "_add" +msgstr "添加 (_a)" + +#: ../src/libs/export_metadata.c:151 ../src/libs/geotagging.c:811 +msgid "_done" +msgstr "完成(_d)" -#: ../src/libs/export_metadata.c:175 +#: ../src/libs/export_metadata.c:162 msgid "list filter" msgstr "列出滤镜" -#: ../src/libs/export_metadata.c:186 +#: ../src/libs/export_metadata.c:173 msgid "" "list of available tags. click 'add' button or double-click on tag to add the " "selected one" msgstr "可用标签的列表。点击“添加”按钮或双击已选中的标签来添加" -#: ../src/libs/export_metadata.c:287 +#: ../src/libs/export_metadata.c:274 msgid "edit metadata exportation" msgstr "编辑元数据导出" -#: ../src/libs/export_metadata.c:304 +#: ../src/libs/export_metadata.c:293 msgid "general settings" msgstr "常规设置" -#: ../src/libs/export_metadata.c:309 +#: ../src/libs/export_metadata.c:298 msgid "EXIF data" msgstr "EXIF数据" -#: ../src/libs/export_metadata.c:310 +#: ../src/libs/export_metadata.c:299 msgid "export EXIF metadata" msgstr "导出EXIF元数据" -#: ../src/libs/export_metadata.c:313 +#: ../src/libs/export_metadata.c:302 msgid "export darktable XMP metadata (from metadata editor module)" msgstr "从元数据编辑器模块导出 darktable XML 元数据" -#: ../src/libs/export_metadata.c:323 +#: ../src/libs/export_metadata.c:312 msgid "only embedded" msgstr "仅限已嵌入的数据" -#: ../src/libs/export_metadata.c:324 +#: ../src/libs/export_metadata.c:313 msgid "" "per default the interface sends some (limited) metadata beside the image to " "remote storage.\n" @@ -20297,76 +20984,76 @@ "若希望仅使用图像嵌入的 darktable XMP 元数据,请勾选此项。\n" "若远端存储无法识别 darktable XMP 元数据,您可以使用计算元数据替代" -#: ../src/libs/export_metadata.c:330 ../src/libs/image.c:566 +#: ../src/libs/export_metadata.c:319 ../src/libs/image.c:623 msgid "geo tags" msgstr "地理标签" -#: ../src/libs/export_metadata.c:331 +#: ../src/libs/export_metadata.c:320 msgid "export geo tags" msgstr "导出地理标签" -#: ../src/libs/export_metadata.c:334 +#: ../src/libs/export_metadata.c:323 msgid "export tags (to Xmp.dc.Subject)" msgstr "导出标签(到 Xmp.dc.Subject)" -#: ../src/libs/export_metadata.c:342 +#: ../src/libs/export_metadata.c:331 msgid "private tags" msgstr "私有标签" -#: ../src/libs/export_metadata.c:343 +#: ../src/libs/export_metadata.c:332 msgid "export private tags" msgstr "导出私有标签" -#: ../src/libs/export_metadata.c:345 +#: ../src/libs/export_metadata.c:334 msgid "synonyms" msgstr "同义词" -#: ../src/libs/export_metadata.c:346 +#: ../src/libs/export_metadata.c:335 msgid "export tags synonyms" msgstr "导出标签同义词" -#: ../src/libs/export_metadata.c:348 +#: ../src/libs/export_metadata.c:337 msgid "omit hierarchy" msgstr "忽略层次结构" -#: ../src/libs/export_metadata.c:349 +#: ../src/libs/export_metadata.c:338 msgid "" "only the last part of the hierarchical tags is included. can be useful if " "categories are not used" msgstr "只包括多层标签的最后一部分。若您不使用类别,则可以使用此选项" -#: ../src/libs/export_metadata.c:352 +#: ../src/libs/export_metadata.c:341 msgid "hierarchical tags" msgstr "层次标签" -#: ../src/libs/export_metadata.c:353 +#: ../src/libs/export_metadata.c:342 msgid "export hierarchical tags (to Xmp.lr.Hierarchical Subject)" msgstr "导出层次标签(到 Xmp.lr.Hierarchical Subject)" -#: ../src/libs/export_metadata.c:355 +#: ../src/libs/export_metadata.c:344 msgid "develop history" msgstr "图像调整历史" -#: ../src/libs/export_metadata.c:356 +#: ../src/libs/export_metadata.c:345 msgid "" "export darktable development data (recovery purpose in case of loss of " "database or XMP file)" msgstr "" "导出 darktable 图像调整数据(以便数据库或 XMP 文件丢失时也能恢复图像状态)" -#: ../src/libs/export_metadata.c:363 +#: ../src/libs/export_metadata.c:352 msgid "per metadata settings" msgstr "按元数据设置" -#: ../src/libs/export_metadata.c:376 +#: ../src/libs/export_metadata.c:364 msgid "redefined tag" msgstr "重新定义的标签" -#: ../src/libs/export_metadata.c:382 +#: ../src/libs/export_metadata.c:370 msgid "formula" msgstr "公式" -#: ../src/libs/export_metadata.c:385 +#: ../src/libs/export_metadata.c:373 msgid "" "list of calculated metadata\n" "click on '+' button to select and add new metadata\n" @@ -20387,15 +21074,15 @@ "单击‘公式’栏进行编辑\n" "输入字符'$('以激活自动补全和显示变量列表" -#: ../src/libs/export_metadata.c:442 +#: ../src/libs/export_metadata.c:430 msgid "add an output metadata tag" msgstr "添加输出的元数据标签" -#: ../src/libs/export_metadata.c:447 +#: ../src/libs/export_metadata.c:435 msgid "delete metadata tag" msgstr "删除元数据标签" -#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:128 +#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:130 msgid "full path" msgstr "完整路径" @@ -20415,48 +21102,48 @@ msgid "shuffle" msgstr "乱序" -#: ../src/libs/filtering.c:263 +#: ../src/libs/filtering.c:269 msgid "collection filters" msgstr "图片集过滤器" -#: ../src/libs/filtering.c:296 +#: ../src/libs/filtering.c:302 msgid "initial setting" msgstr "初始设置" -#: ../src/libs/filtering.c:315 +#: ../src/libs/filtering.c:321 msgid "imported: last 24h" msgstr "导入时间:最近 24 小时" -#: ../src/libs/filtering.c:320 +#: ../src/libs/filtering.c:326 msgid "imported: last 30 days" msgstr "导入时间:最近 30 天" -#: ../src/libs/filtering.c:326 +#: ../src/libs/filtering.c:332 msgid "taken: last 24h" msgstr "拍摄时间:最近 24 小时" -#: ../src/libs/filtering.c:330 +#: ../src/libs/filtering.c:336 msgid "taken: last 30 days" msgstr "拍摄时间:最近 30 天" -#: ../src/libs/filtering.c:702 +#: ../src/libs/filtering.c:728 msgid "click or click&drag to select one or multiple values" msgstr "单击以选择单一值,点击并拖拽以选择取值范围" -#: ../src/libs/filtering.c:703 +#: ../src/libs/filtering.c:729 msgid "right-click opens a menu to select the available values" msgstr "鼠标右键单击打开可选值菜单" -#: ../src/libs/filtering.c:800 +#: ../src/libs/filtering.c:826 #, c-format msgid "you can't have more than %d rules" msgstr "无法添加超过 %d 条规则" -#: ../src/libs/filtering.c:922 ../src/libs/filtering.c:1556 +#: ../src/libs/filtering.c:948 ../src/libs/filtering.c:1618 msgid "rule property" msgstr "规则属性" -#: ../src/libs/filtering.c:987 +#: ../src/libs/filtering.c:1013 msgid "" "rule property\n" "this can't be changed as the rule is pinned to the toolbar" @@ -20464,12 +21151,12 @@ "规则属性\n" "此规则已被固定到工具栏,不可改变" -#: ../src/libs/filtering.c:1035 +#: ../src/libs/filtering.c:1095 msgctxt "quickfilter" msgid "filter" msgstr "过滤器" -#: ../src/libs/filtering.c:1062 +#: ../src/libs/filtering.c:1124 msgid "" "this rule is pinned to the top toolbar\n" "click to un-pin" @@ -20477,114 +21164,122 @@ "此规则已被固定到顶部工具栏\n" "单击取消固定" -#: ../src/libs/filtering.c:1063 +#: ../src/libs/filtering.c:1125 msgid "you can't disable the rule as it is pinned to the toolbar" msgstr "此规则已被固定到工具栏,不可禁用" -#: ../src/libs/filtering.c:1064 +#: ../src/libs/filtering.c:1126 msgid "you can't remove the rule as it is pinned to the toolbar" msgstr "此规则已被固定到工具栏,不可移除" -#: ../src/libs/filtering.c:1069 +#: ../src/libs/filtering.c:1131 msgid "click to pin this rule to the top toolbar" msgstr "单击将此规则固定到顶部工具栏" -#: ../src/libs/filtering.c:1070 +#: ../src/libs/filtering.c:1132 msgid "remove this collect rule" msgstr "移除此过滤规则" -#: ../src/libs/filtering.c:1072 +#: ../src/libs/filtering.c:1134 msgid "this rule is enabled" msgstr "此规则已启用" -#: ../src/libs/filtering.c:1074 +#: ../src/libs/filtering.c:1136 msgid "this rule is disabled" msgstr "此规则已禁用" -#: ../src/libs/filtering.c:1202 +#: ../src/libs/filtering.c:1264 msgid "or" msgstr "或" -#: ../src/libs/filtering.c:1203 +#: ../src/libs/filtering.c:1265 msgid "and not" msgstr "而不是" -#: ../src/libs/filtering.c:1205 +#: ../src/libs/filtering.c:1267 msgid "define how this rule should interact with the previous one" msgstr "定义此规则如何与前一规则交互" -#: ../src/libs/filtering.c:1466 +#: ../src/libs/filtering.c:1528 msgid " (off)" msgstr " (关闭)" -#: ../src/libs/filtering.c:1663 +#: ../src/libs/filtering.c:1725 msgid "you can't add more rules." msgstr "您无法添加更多规则。" -#. fill the popover with all pinned rules -#: ../src/libs/filtering.c:1696 +#: ../src/libs/filtering.c:1759 msgid "shown filters" msgstr "已显示的过滤器" -#: ../src/libs/filtering.c:1711 +#: ../src/libs/filtering.c:1774 msgid "new filter" msgstr "新建过滤器" -#: ../src/libs/filtering.c:1884 +#. the actions part of the popover +#: ../src/libs/filtering.c:1781 +msgid "actions" +msgstr "行为" + +#: ../src/libs/filtering.c:1784 +msgid "reset quickfilters" +msgstr "重置快速过滤" + +#: ../src/libs/filtering.c:1957 msgid "sort order" msgstr "排序方式" -#: ../src/libs/filtering.c:1886 +#: ../src/libs/filtering.c:1960 msgid "determine the sort order of shown images" msgstr "选择图像显示的排序方式" -#: ../src/libs/filtering.c:1906 +#: ../src/libs/filtering.c:1980 msgid "sort direction" msgstr "排序方向" -#: ../src/libs/filtering.c:1911 +#: ../src/libs/filtering.c:1985 msgid "remove this sort order" msgstr "移除此排序方式" -#: ../src/libs/filtering.c:1995 +#: ../src/libs/filtering.c:2069 #, c-format msgid "you can't have more than %d sort orders" msgstr "您无法添加超过 %d 条排序规则" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "DESC" msgstr "降序" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "ASC" msgstr "升序" -#: ../src/libs/filtering.c:2160 +#: ../src/libs/filtering.c:2234 msgid "new rule" msgstr "新规则" -#: ../src/libs/filtering.c:2161 +#: ../src/libs/filtering.c:2235 msgid "append new rule to collect images" msgstr "将新规则附加到图片集" -#: ../src/libs/filtering.c:2172 ../src/libs/tools/filter.c:116 +#: ../src/libs/filtering.c:2246 ../src/libs/tools/filter.c:116 msgid "sort by" msgstr "排序方式" -#: ../src/libs/filtering.c:2180 +#: ../src/libs/filtering.c:2254 msgid "new sort" msgstr "新排序" -#: ../src/libs/filtering.c:2181 +#: ../src/libs/filtering.c:2255 msgid "append new sort to order images" msgstr "附加新图片排序方式" -#: ../src/libs/filtering.c:2184 +#: ../src/libs/filtering.c:2258 msgid "revert to a previous set of sort orders" msgstr "撤回到前一组排序方式" #. we change the tooltip of the reset button here, as we are sure the header is defined now -#: ../src/libs/filtering.c:2234 +#: ../src/libs/filtering.c:2308 msgid "" "reset\n" "ctrl+click to remove pinned rules too" @@ -20621,7 +21316,7 @@ #: ../src/libs/filters/grouping.c:167 ../src/libs/filters/history.c:153 #: ../src/libs/filters/local_copy.c:142 ../src/libs/filters/module_order.c:161 #: ../src/libs/filters/rating.c:199 ../src/libs/filters/rating.c:210 -#: ../src/libs/filters/rating_range.c:325 +#: ../src/libs/filters/rating_range.c:356 msgid "rules" msgstr "规则" @@ -20635,7 +21330,7 @@ "与操作符 (∩): 将会列出包含所有已选颜色标签的照片\n" "或操作符 (∪): 将会列出包含至少一种所选颜色标签的照片" -#: ../src/libs/filters/filename.c:365 +#: ../src/libs/filters/filename.c:370 msgid "" "enter filename to search.\n" "multiple values can be separated by ','\n" @@ -20647,11 +21342,11 @@ "\n" "点击鼠标右键获取已有文件名" -#: ../src/libs/filters/filename.c:376 +#: ../src/libs/filters/filename.c:381 msgid "extension" msgstr "扩展名" -#: ../src/libs/filters/filename.c:377 +#: ../src/libs/filters/filename.c:382 msgid "" "enter extension to search with starting dot\n" "multiple values can be separated by ','\n" @@ -20665,7 +21360,7 @@ "\n" "点击鼠标右键获取已有扩展名" -#: ../src/libs/filters/filename.c:405 +#: ../src/libs/filters/filename.c:410 msgid "" "click to select filename\n" "ctrl+click to select multiple values" @@ -20673,7 +21368,7 @@ "单击选择文件名\n" "ctrl + 单击以选择多个文件名" -#: ../src/libs/filters/filename.c:432 +#: ../src/libs/filters/filename.c:437 msgid "" "click to select extension\n" "ctrl+click to select multiple values" @@ -20681,6 +21376,11 @@ "单击选择扩展名\n" "ctrl + 单击以选择多个扩展名" +#. the button to close the popup +#: ../src/libs/filters/filename.c:457 +msgid "ok" +msgstr "ok" + #: ../src/libs/filters/grouping.c:141 ../src/libs/filters/grouping.c:169 msgid "ungrouped images" msgstr "未分组图像" @@ -20692,8 +21392,8 @@ #. predefined selections #: ../src/libs/filters/grouping.c:169 ../src/libs/filters/history.c:38 #: ../src/libs/filters/local_copy.c:38 ../src/libs/filters/module_order.c:155 -#: ../src/libs/filters/rating_range.c:56 ../src/libs/filters/rating_range.c:72 -#: ../src/libs/filters/rating_range.c:109 ../src/libs/filters/ratio.c:68 +#: ../src/libs/filters/rating_range.c:59 ../src/libs/filters/rating_range.c:83 +#: ../src/libs/filters/rating_range.c:131 ../src/libs/filters/ratio.c:68 #: ../src/libs/filters/ratio.c:81 msgid "all images" msgstr "所有图片" @@ -20718,7 +21418,7 @@ msgid "filter by images rating" msgstr "按照图像评级进行过滤" -#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:542 +#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:596 #: ../src/libs/tools/ratings.c:56 msgid "ratings" msgstr "评级" @@ -20727,49 +21427,33 @@ msgid "unstarred only" msgstr "仅限无评级" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:60 -#: ../src/libs/filters/rating_range.c:75 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:65 +#: ../src/libs/filters/rating_range.c:89 msgid "rejected only" msgstr "仅限退稿图像" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:58 -#: ../src/libs/filters/rating_range.c:73 ../src/libs/filters/rating_range.c:138 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:62 +#: ../src/libs/filters/rating_range.c:86 ../src/libs/filters/rating_range.c:158 msgid "all except rejected" msgstr "全部,退稿图像除外" -#: ../src/libs/filters/rating_range.c:61 ../src/libs/filters/rating_range.c:76 +#: ../src/libs/filters/rating_range.c:67 ../src/libs/filters/rating_range.c:91 msgid "not rated only" msgstr "仅限未评级图片" -#: ../src/libs/filters/rating_range.c:99 ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:131 -#: ../src/libs/filters/rating_range.c:275 -msgid "rejected" -msgstr "已退稿" - -#: ../src/libs/filters/rating_range.c:101 -#: ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:276 -msgid "not rated" -msgstr "未评定的" - -#: ../src/libs/filters/rating_range.c:117 -msgid "only" -msgstr "仅此" - -#: ../src/libs/filters/rating_range.c:269 +#: ../src/libs/filters/rating_range.c:296 msgid "better" msgstr "较好" -#: ../src/libs/filters/rating_range.c:270 +#: ../src/libs/filters/rating_range.c:297 msgid "worse" msgstr "较差" -#: ../src/libs/filters/rating_range.c:271 +#: ../src/libs/filters/rating_range.c:298 msgid "cap" msgstr "最高值" -#: ../src/libs/filters/rating_range.c:286 +#: ../src/libs/filters/rating_range.c:313 msgid "rating filter" msgstr "评级过滤器" @@ -20805,7 +21489,7 @@ msgid "apply offset and geo-location" msgstr "应用偏移及地理定位信息" -#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1910 +#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1914 msgid "apply geo-location" msgstr "应用地理定位信息" @@ -20817,49 +21501,49 @@ "为匹配的图像应用时间偏移及地理定位信息\n" "连按两次 ctrl + z 撤销" -#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1911 +#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1915 msgid "apply geo-location to matching images" msgstr "为匹配的图像应用地理定位信息" -#: ../src/libs/geotagging.c:810 +#: ../src/libs/geotagging.c:809 msgid "GPX file track segments" msgstr "GPX 文件轨迹分段" -#: ../src/libs/geotagging.c:830 ../src/libs/geotagging.c:1869 +#: ../src/libs/geotagging.c:831 ../src/libs/geotagging.c:1873 msgid "start time" msgstr "开始时间" -#: ../src/libs/geotagging.c:831 +#: ../src/libs/geotagging.c:832 msgid "end time" msgstr "结束时间" -#: ../src/libs/geotagging.c:832 ../src/libs/geotagging.c:1871 +#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1875 msgid "points" msgstr "点" -#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1873 -#: ../src/libs/image.c:463 +#: ../src/libs/geotagging.c:834 ../src/libs/geotagging.c:1877 +#: ../src/libs/image.c:494 msgid "images" msgstr "图像" -#: ../src/libs/geotagging.c:926 +#: ../src/libs/geotagging.c:927 msgid "open GPX file" msgstr "打开 GPX 文件" -#: ../src/libs/geotagging.c:927 ../src/libs/tools/lighttable.c:333 -#: ../src/libs/tools/lighttable.c:402 ../src/views/darkroom.c:2232 +#: ../src/libs/geotagging.c:928 ../src/libs/tools/lighttable.c:330 +#: ../src/libs/tools/lighttable.c:399 ../src/views/darkroom.c:2091 msgid "preview" msgstr "预览" -#: ../src/libs/geotagging.c:940 +#: ../src/libs/geotagging.c:941 msgid "GPS data exchange format" msgstr "GPS 数据交换格式" -#: ../src/libs/geotagging.c:1739 +#: ../src/libs/geotagging.c:1743 msgid "date/time" msgstr "日期与时间" -#: ../src/libs/geotagging.c:1740 +#: ../src/libs/geotagging.c:1744 msgid "" "enter the new date/time (YYYY:MM:DD hh:mm:ss[.sss])\n" "key in the new numbers or scroll over the cell" @@ -20867,40 +21551,40 @@ "以YYYY:MM:DD hh:mm:ss[.sss]格式输入新的日期与时间\n" "您可以输入数字或在输入框内使用鼠标滚轮" -#: ../src/libs/geotagging.c:1744 +#: ../src/libs/geotagging.c:1748 msgid "original date/time" msgstr "原始日期与时间" -#: ../src/libs/geotagging.c:1748 +#: ../src/libs/geotagging.c:1752 msgid "lock date/time offset value to apply it onto another selection" msgstr "锁定日期/时间偏移值,将其应用到其他选择的图片上" -#: ../src/libs/geotagging.c:1752 +#: ../src/libs/geotagging.c:1756 msgid "date/time offset" msgstr "日期与时间偏移" -#: ../src/libs/geotagging.c:1753 +#: ../src/libs/geotagging.c:1757 msgid "offset or difference ([-]dd hh:mm:ss[.sss])" msgstr "时间偏移([-]dd hh:mm:ss[.sss])" #. apply -#: ../src/libs/geotagging.c:1757 +#: ../src/libs/geotagging.c:1761 msgid "apply offset" msgstr "应用偏移" -#: ../src/libs/geotagging.c:1758 +#: ../src/libs/geotagging.c:1762 msgid "apply offset to selected images" msgstr "为选中的图像应用时间偏移" -#: ../src/libs/geotagging.c:1761 +#: ../src/libs/geotagging.c:1765 msgid "apply date/time" msgstr "为图像设置拍摄日期与时间" -#: ../src/libs/geotagging.c:1762 +#: ../src/libs/geotagging.c:1766 msgid "apply the same date/time to selected images" msgstr "为选中图像设置拍摄日期与时间" -#: ../src/libs/geotagging.c:1772 +#: ../src/libs/geotagging.c:1776 msgid "" "start typing to show a list of permitted values and select your timezone.\n" "press enter to confirm, so that the asterisk * disappears" @@ -20909,24 +21593,24 @@ "按 enter 确认,这样星号 * 就会消失" #. gpx -#: ../src/libs/geotagging.c:1815 +#: ../src/libs/geotagging.c:1819 msgid "apply GPX track file..." msgstr "应用 GPX 跟踪文件…" -#: ../src/libs/geotagging.c:1816 +#: ../src/libs/geotagging.c:1820 msgid "parses a GPX file and updates location of selected images" msgstr "解析 GPX 文件并更新所选图像的位置" -#: ../src/libs/geotagging.c:1827 +#: ../src/libs/geotagging.c:1831 msgctxt "section" msgid "GPX file" msgstr "GPX 文件" -#: ../src/libs/geotagging.c:1834 +#: ../src/libs/geotagging.c:1838 msgid "select a GPX track file..." msgstr "选择 GPX 跟踪文件..." -#: ../src/libs/geotagging.c:1851 +#: ../src/libs/geotagging.c:1855 msgid "" "list of track segments in the GPX file, for each segment:\n" "- the start date/time in local time (LT)\n" @@ -20941,172 +21625,178 @@ "- 匹配图像的数量,偏移和时区\n" "- 鼠标悬浮时显示更多详细时间信息" -#: ../src/libs/geotagging.c:1890 +#: ../src/libs/geotagging.c:1894 msgid "preview images" msgstr "预览图像" -#: ../src/libs/geotagging.c:1895 +#: ../src/libs/geotagging.c:1899 msgid "show on map matching images" msgstr "在地图上显示匹配的图像" -#: ../src/libs/geotagging.c:1898 +#: ../src/libs/geotagging.c:1902 msgid "select images" msgstr "选择图像" -#: ../src/libs/geotagging.c:1899 +#: ../src/libs/geotagging.c:1903 msgid "select matching images" msgstr "选择匹配的图像" -#: ../src/libs/geotagging.c:1907 +#: ../src/libs/geotagging.c:1911 msgid "number of matching images versus selected images" msgstr "比较已匹配图像的数量与已选择图像的数量" -#: ../src/libs/histogram.c:133 +#: ../src/libs/histogram.c:110 msgid "monochromatic" msgstr "单色" -#: ../src/libs/histogram.c:134 +#: ../src/libs/histogram.c:111 msgid "analogous" msgstr "相似色" -#: ../src/libs/histogram.c:135 +#: ../src/libs/histogram.c:112 msgid "analogous complementary" msgstr "相似色及反相色" -#: ../src/libs/histogram.c:136 +#: ../src/libs/histogram.c:113 msgid "complementary" msgstr "反相色" -#: ../src/libs/histogram.c:137 +#: ../src/libs/histogram.c:114 msgid "split complementary" msgstr "拆分反相色" -#: ../src/libs/histogram.c:138 +#: ../src/libs/histogram.c:115 msgid "dyad" msgstr "二值分布" -#: ../src/libs/histogram.c:139 +#: ../src/libs/histogram.c:116 msgid "triad" msgstr "三值分布" -#: ../src/libs/histogram.c:140 +#: ../src/libs/histogram.c:117 msgid "tetrad" msgstr "四值分布" -#: ../src/libs/histogram.c:146 +#: ../src/libs/histogram.c:123 msgid "vectorscope" msgstr "矢量表" -#: ../src/libs/histogram.c:147 +#: ../src/libs/histogram.c:124 msgid "waveform" msgstr "波形" -#: ../src/libs/histogram.c:148 +#: ../src/libs/histogram.c:125 msgid "RGB parade" msgstr "RGB parade" -#: ../src/libs/histogram.c:149 ../src/libs/histogram.c:2309 +#: ../src/libs/histogram.c:126 ../src/libs/histogram.c:2622 msgid "histogram" msgstr "直方图" -#: ../src/libs/histogram.c:243 +#: ../src/libs/histogram.c:218 msgid "scopes" msgstr "向量表" -#: ../src/libs/histogram.c:1542 +#: ../src/libs/histogram.c:757 +msgid "" +"unsupported vectorscope profile selected, it will be replaced with linear " +"Rec2020" +msgstr "不支持的向量表配置,已使用线性 Rec2020 替代" + +#: ../src/libs/histogram.c:1715 msgid "scroll to coarse-rotate" msgstr "滚动以粗略旋转" -#: ../src/libs/histogram.c:1543 +#: ../src/libs/histogram.c:1716 msgid "ctrl+scroll to fine rotate" msgstr "ctrl + 滚动以精确旋转" -#: ../src/libs/histogram.c:1544 +#: ../src/libs/histogram.c:1717 msgid "shift+scroll to change width" msgstr "shift + 滚轮以更改显示宽度" -#: ../src/libs/histogram.c:1545 +#: ../src/libs/histogram.c:1718 msgid "alt+scroll to cycle" msgstr "alt + 滚轮以切换参考线" -#: ../src/libs/histogram.c:1556 +#: ../src/libs/histogram.c:1732 msgid "drag to change black point" msgstr "拖动以更改黑点" -#: ../src/libs/histogram.c:1557 ../src/libs/histogram.c:1564 +#: ../src/libs/histogram.c:1733 ../src/libs/histogram.c:1740 msgid "double-click resets" msgstr "双击以重置" -#: ../src/libs/histogram.c:1563 +#: ../src/libs/histogram.c:1739 msgid "drag to change exposure" msgstr "拖动以更改曝光" -#: ../src/libs/histogram.c:1725 ../src/libs/histogram.c:1765 +#: ../src/libs/histogram.c:1923 ../src/libs/histogram.c:1965 msgid "set scale to linear" msgstr "将比例尺设置为线性" -#: ../src/libs/histogram.c:1730 ../src/libs/histogram.c:1770 +#: ../src/libs/histogram.c:1928 ../src/libs/histogram.c:1970 msgid "set scale to logarithmic" msgstr "将比例尺设置为对数" -#: ../src/libs/histogram.c:1746 +#: ../src/libs/histogram.c:1946 msgid "set scope to vertical" msgstr "纵向显示向量表" -#: ../src/libs/histogram.c:1751 +#: ../src/libs/histogram.c:1951 msgid "set scope to horizontal" msgstr "水平显示向量表" -#: ../src/libs/histogram.c:1780 +#: ../src/libs/histogram.c:1980 msgid "set view to AzBz" msgstr "将模式设置为 AzBz" -#: ../src/libs/histogram.c:1786 +#: ../src/libs/histogram.c:1986 msgid "set view to RYB" msgstr "将模式设置为 RYB" -#: ../src/libs/histogram.c:1792 +#: ../src/libs/histogram.c:1992 msgid "set view to u*v*" msgstr "将模式设置为 u*v*" -#: ../src/libs/histogram.c:2312 ../src/libs/histogram.c:2370 +#: ../src/libs/histogram.c:2625 ../src/libs/histogram.c:2691 msgid "cycle histogram modes" msgstr "循环直方图模式" -#: ../src/libs/histogram.c:2316 ../src/libs/histogram.c:2371 +#: ../src/libs/histogram.c:2630 ../src/libs/histogram.c:2693 msgid "hide histogram" msgstr "隐藏直方图" -#: ../src/libs/histogram.c:2372 ../src/libs/histogram.c:2401 +#: ../src/libs/histogram.c:2696 ../src/libs/histogram.c:2729 msgid "switch histogram view" msgstr "切换直方图模式" -#: ../src/libs/histogram.c:2379 +#: ../src/libs/histogram.c:2704 msgid "toggle blue channel" msgstr "切换蓝色通道" -#: ../src/libs/histogram.c:2381 ../src/libs/histogram.c:2389 -#: ../src/libs/histogram.c:2397 +#: ../src/libs/histogram.c:2706 ../src/libs/histogram.c:2715 +#: ../src/libs/histogram.c:2724 msgid "toggle colors" msgstr "切换彩色模式" -#: ../src/libs/histogram.c:2387 +#: ../src/libs/histogram.c:2713 msgid "toggle green channel" msgstr "切换绿色通道" -#: ../src/libs/histogram.c:2395 +#: ../src/libs/histogram.c:2722 msgid "toggle red channel" msgstr "切换红色通道" -#: ../src/libs/histogram.c:2405 +#: ../src/libs/histogram.c:2734 msgid "cycle vectorscope types" msgstr "切换矢量表类型" -#: ../src/libs/histogram.c:2413 +#: ../src/libs/histogram.c:2745 msgid "color harmonies" msgstr "切换和谐参考线" -#: ../src/libs/histogram.c:2425 +#: ../src/libs/histogram.c:2759 msgid "cycle color harmonies" msgstr "切换色彩和谐参考线" @@ -21150,10 +21840,18 @@ msgid "mask mode" msgstr "蒙版模式" +#: ../src/libs/history.c:949 +msgid "blend mode" +msgstr "混合模式" + #: ../src/libs/history.c:951 msgid "blend operation" msgstr "混合操作" +#: ../src/libs/history.c:953 +msgid "blend fulcrum" +msgstr "混合支点" + #: ../src/libs/history.c:961 msgid "mask blur" msgstr "蒙板模糊" @@ -21197,194 +21895,194 @@ msgid "parametric input mask:" msgstr "参数输入蒙版:" -#: ../src/libs/history.c:1323 +#: ../src/libs/history.c:1322 msgid "delete image's history?" msgstr "删除图像的历史记录?" -#: ../src/libs/history.c:1324 +#: ../src/libs/history.c:1323 msgid "do you really want to clear history of current image?" msgstr "是否确实要清除当前图像的历史记录?" -#: ../src/libs/image.c:72 -msgid "selected image[s]" -msgstr "选中的图片" +#: ../src/libs/image.c:74 +msgid "actions on selection" +msgstr "选择后的动作" -#: ../src/libs/image.c:284 +#: ../src/libs/image.c:302 msgid "delete (trash)" msgstr "删除(移至回收站)" -#: ../src/libs/image.c:287 +#: ../src/libs/image.c:305 msgid "physically delete from disk (using trash if possible)" msgstr "从磁盘中物理删除(若回收站可用将移动到回收站)" -#: ../src/libs/image.c:288 +#: ../src/libs/image.c:306 msgid "physically delete from disk immediately" msgstr "立即从磁盘中物理删除" -#: ../src/libs/image.c:474 ../src/libs/modulegroups.c:3811 -#: ../src/libs/styles.c:876 +#: ../src/libs/image.c:506 ../src/libs/modulegroups.c:3813 +#: ../src/libs/styles.c:880 msgid "remove" msgstr "移除" -#: ../src/libs/image.c:475 +#: ../src/libs/image.c:508 msgid "remove images from the image library, without deleting" msgstr "仅从照片库中移除而不删除图像" -#: ../src/libs/image.c:483 +#: ../src/libs/image.c:517 msgid "move..." msgstr "移动..." -#: ../src/libs/image.c:484 +#: ../src/libs/image.c:519 msgid "move to other folder" msgstr "移到其他文件夹" -#: ../src/libs/image.c:487 +#: ../src/libs/image.c:522 msgid "copy..." msgstr "复制..." -#: ../src/libs/image.c:488 +#: ../src/libs/image.c:524 msgid "copy to other folder" msgstr "复制到其他文件夹" -#: ../src/libs/image.c:491 +#: ../src/libs/image.c:528 msgid "create HDR" msgstr "创建 HDR" -#: ../src/libs/image.c:492 +#: ../src/libs/image.c:530 msgid "create a high dynamic range image from selected shots" msgstr "从一系列选中的图片制作 HDR 高动态范围成像" -#: ../src/libs/image.c:496 +#: ../src/libs/image.c:535 msgid "add a duplicate to the image library, including its history stack" msgstr "添加一张图片的副本,包括它的历史记录栈" -#: ../src/libs/image.c:502 ../src/libs/image.c:505 +#: ../src/libs/image.c:542 ../src/libs/image.c:547 msgid "rotate selected images 90 degrees CCW" msgstr "将选中的图像逆时针旋转 90 度" -#: ../src/libs/image.c:509 ../src/libs/image.c:512 +#: ../src/libs/image.c:553 ../src/libs/image.c:558 msgid "rotate selected images 90 degrees CW" msgstr "将选中的图像顺时针旋转 90 度" -#: ../src/libs/image.c:514 +#: ../src/libs/image.c:561 msgid "reset rotation" msgstr "重置旋转" -#: ../src/libs/image.c:515 +#: ../src/libs/image.c:563 msgid "reset rotation to EXIF data" msgstr "从 exif 重置旋转信息" -#: ../src/libs/image.c:518 +#: ../src/libs/image.c:566 msgid "copy locally" msgstr "创建本地副本" -#: ../src/libs/image.c:519 +#: ../src/libs/image.c:568 msgid "copy the image locally" msgstr "创建图像本地副本" -#: ../src/libs/image.c:522 +#: ../src/libs/image.c:572 msgid "resync local copy" msgstr "重新同步本地副本" -#: ../src/libs/image.c:523 +#: ../src/libs/image.c:574 msgid "synchronize the image's XMP and remove the local copy" msgstr "同步图像的 XMP 并移除本地副本" -#: ../src/libs/image.c:526 +#: ../src/libs/image.c:578 msgctxt "selected images action" msgid "group" msgstr "分组" -#: ../src/libs/image.c:527 +#: ../src/libs/image.c:580 msgid "add selected images to expanded group or create a new one" msgstr "添加选中的图像至已展开分组或新建分组" -#: ../src/libs/image.c:531 +#: ../src/libs/image.c:584 msgid "ungroup" msgstr "取消分组" -#: ../src/libs/image.c:532 +#: ../src/libs/image.c:586 msgid "remove selected images from the group" msgstr "移除分组中选中的图片" -#: ../src/libs/image.c:544 +#: ../src/libs/image.c:598 msgid "select ratings metadata" msgstr "选择评级元数据" -#: ../src/libs/image.c:550 +#: ../src/libs/image.c:605 msgid "colors" msgstr "颜色" -#: ../src/libs/image.c:552 +#: ../src/libs/image.c:607 msgid "select colors metadata" msgstr "选择颜色元数据" -#: ../src/libs/image.c:560 +#: ../src/libs/image.c:616 msgid "select tags metadata" msgstr "选择标签元数据" -#: ../src/libs/image.c:568 +#: ../src/libs/image.c:625 msgid "select geo tags metadata" msgstr "选择地理标签元数据" -#: ../src/libs/image.c:576 +#: ../src/libs/image.c:636 msgid "select darktable metadata (from metadata editor module)" msgstr "选择来自元数据编辑器的 darktable 元数据" -#: ../src/libs/image.c:584 +#: ../src/libs/image.c:649 msgid "set the selected image as source of metadata" msgstr "从选中的图片中获取元数据" -#: ../src/libs/image.c:589 +#: ../src/libs/image.c:656 msgid "paste selected metadata on selected images" msgstr "在选定的图像上粘贴选定的元数据" -#: ../src/libs/image.c:593 +#: ../src/libs/image.c:661 msgid "clear selected metadata on selected images" msgstr "清除选定图像上的选定元数据" -#: ../src/libs/image.c:598 +#: ../src/libs/image.c:667 msgid "how to handle existing metadata" msgstr "如何处理现有元数据" -#: ../src/libs/image.c:601 +#: ../src/libs/image.c:670 msgid "merge" msgstr "合并" -#: ../src/libs/image.c:605 +#: ../src/libs/image.c:675 msgid "update image information to match changes to file" msgstr "更新图像信息以与更改后的文件保持一致" -#: ../src/libs/image.c:609 +#: ../src/libs/image.c:680 msgid "set selection as monochrome images and activate monochrome workflow" msgstr "将选中的图像标记为黑白并使用黑白照片工作流" -#: ../src/libs/image.c:613 +#: ../src/libs/image.c:684 msgid "set selection as color images" msgstr "将选中的图像标记为彩色" -#: ../src/libs/image.c:625 +#: ../src/libs/image.c:696 msgid "duplicate virgin" msgstr "复制原始图像" -#: ../src/libs/import.c:263 +#: ../src/libs/import.c:264 #, c-format msgid "device \"%s\" connected on port \"%s\"." msgstr "设备“%s”已连接端口到“%s”。" -#: ../src/libs/import.c:273 ../src/libs/import.c:334 ../src/libs/import.c:1692 +#: ../src/libs/import.c:274 ../src/libs/import.c:335 ../src/libs/import.c:1701 msgid "copy & import from camera" msgstr "从相机复制并导入" -#: ../src/libs/import.c:284 ../src/libs/import.c:336 +#: ../src/libs/import.c:285 ../src/libs/import.c:337 msgid "tethered shoot" msgstr "连机拍摄" -#: ../src/libs/import.c:291 ../src/libs/import.c:337 +#: ../src/libs/import.c:292 ../src/libs/import.c:338 msgid "unmount camera" msgstr "卸载相机" -#: ../src/libs/import.c:312 +#: ../src/libs/import.c:313 msgid "" "camera is locked by another application\n" "make sure it is no longer mounted\n" @@ -21393,37 +22091,37 @@ "相机正被其他应用程序占用\n" "请确认相机未被挂载,或退出占用相机的应用" -#: ../src/libs/import.c:315 +#: ../src/libs/import.c:316 msgid "tethering and importing is disabled for this camera" msgstr "此相机的联机拍摄和导入功能被禁用" -#: ../src/libs/import.c:317 ../src/libs/import.c:335 +#: ../src/libs/import.c:318 ../src/libs/import.c:336 msgid "mount camera" msgstr "挂载相机" -#: ../src/libs/import.c:747 +#: ../src/libs/import.c:754 #, c-format msgid "%d image out of %d selected" msgid_plural "%d images out of %d selected" msgstr[0] "已选 %d 张图像,当前集合共 %d 张图像" -#: ../src/libs/import.c:1039 +#: ../src/libs/import.c:1046 msgid "you can't delete the selected place" msgstr "您不能删除当前选择的地点" -#: ../src/libs/import.c:1153 +#: ../src/libs/import.c:1160 msgid "choose the root of the folder tree below" msgstr "在以下界面选择文件夹树的根目录" -#: ../src/libs/import.c:1156 +#: ../src/libs/import.c:1163 msgid "places" msgstr "地点" -#: ../src/libs/import.c:1162 +#: ../src/libs/import.c:1169 msgid "restore all default places you have removed by right-click" msgstr "右键单击以恢复被删除的默认地点" -#: ../src/libs/import.c:1167 +#: ../src/libs/import.c:1174 msgid "" "add a custom place\n" "\n" @@ -21433,79 +22131,105 @@ "\n" "右键可以删除地点" -#: ../src/libs/import.c:1174 +#: ../src/libs/import.c:1181 msgid "you can add custom places using the plus icon" msgstr "您可以使用加号图标添加自定义地点" -#: ../src/libs/import.c:1199 +#: ../src/libs/import.c:1206 msgid "select a folder to see the content" msgstr "选择一个文件夹来查看内容" -#: ../src/libs/import.c:1202 +#: ../src/libs/import.c:1209 msgid "folders" msgstr "文件夹" -#: ../src/libs/import.c:1272 +#: ../src/libs/import.c:1279 msgid "home" msgstr "家" -#: ../src/libs/import.c:1284 +#: ../src/libs/import.c:1291 msgid "pictures" msgstr "图片" -#: ../src/libs/import.c:1548 +#: ../src/libs/import.c:1557 msgid "mark already imported pictures" msgstr "标记已导入的图片" -#: ../src/libs/import.c:1562 +#: ../src/libs/import.c:1571 msgid "modified" msgstr "已更改" -#: ../src/libs/import.c:1567 +#: ../src/libs/import.c:1576 msgid "file 'modified date/time', may be different from 'Exif date/time'" msgstr "文件内的“更改日期与时间”,可能与 EXIF 记录的时间不同" -#: ../src/libs/import.c:1579 +#: ../src/libs/import.c:1588 msgid "show/hide thumbnails" msgstr "显示/隐藏缩略图" -#: ../src/libs/import.c:1649 +#: ../src/libs/import.c:1658 msgid "naming rules" msgstr "命名规则" -#: ../src/libs/import.c:1690 +#: ../src/libs/import.c:1699 msgid "add to library" msgstr "添加到照片库" -#: ../src/libs/import.c:1691 +#: ../src/libs/import.c:1700 msgid "copy & import" msgstr "复制并导入" -#: ../src/libs/import.c:1730 +#: ../src/libs/import.c:1740 msgid "select new" msgstr "选择新图像" -#: ../src/libs/import.c:1773 +#: ../src/libs/import.c:1783 msgid "please wait while prefetching the list of images from camera..." msgstr "正在从相机预读取图像列表,请稍等……" -#: ../src/libs/import.c:1907 +#: ../src/libs/import.c:1922 msgid "invalid override date/time format" msgstr "用于覆盖日期或时间的格式无效" -#: ../src/libs/import.c:2022 +#: ../src/libs/import.c:1986 +msgid "import base directory" +msgstr "工作区文件夹" + +#: ../src/libs/import.c:1987 +msgid "" +"before copying images to the darktable base directory make sure it is " +"defined as you prefer.\n" +"further information can be found in the darktable manual.\n" +"\n" +"inspect darktable preferences -> import.\n" +"check and possibly correct the 'base directory naming pattern'" +msgstr "" +"在复制图像到 darktable 工作区文件夹内前请确认您的偏好设置。\n" +"参考 darktable 用户手册获得更多信息。\n" +"\n" +"在 darktable 首选项 -> 导入中检查“工作区文件夹命名规则”" + +#: ../src/libs/import.c:1991 +msgid "_come back & check" +msgstr "后退并检查 (_c)" + +#: ../src/libs/import.c:1991 +msgid "_understood & done" +msgstr "完成 (_u)" + +#: ../src/libs/import.c:2057 msgid "add to library..." msgstr "添加到照片库..." -#: ../src/libs/import.c:2023 +#: ../src/libs/import.c:2058 msgid "add existing images to the library" msgstr "将现有照片添加至照片库" -#: ../src/libs/import.c:2029 +#: ../src/libs/import.c:2064 msgid "copy & import..." msgstr "复制并导入..." -#: ../src/libs/import.c:2030 +#: ../src/libs/import.c:2065 msgid "" "copy and optionally rename images before adding them to the library\n" "patterns can be defined to rename the images and specify the destination " @@ -21515,15 +22239,15 @@ "您可以使用表达式定义重命名行为并指定复制目标目录" #. collapsible section -#: ../src/libs/import.c:2053 +#: ../src/libs/import.c:2088 msgid "parameters" msgstr "参数" -#: ../src/libs/ioporder.c:204 +#: ../src/libs/ioporder.c:202 msgid "v3.0 for RAW input (default)" msgstr "v3.0 用于 RAW 输入(默认)" -#: ../src/libs/ioporder.c:210 +#: ../src/libs/ioporder.c:208 msgid "v3.0 for JPEG/non-RAW input" msgstr "v3.0 用于 JPEG / 非 RAW 输入" @@ -21539,11 +22263,11 @@ msgid "nothing to save" msgstr "无需保存" -#: ../src/libs/lib.c:1105 +#: ../src/libs/lib.c:1106 msgid "show module" msgstr "显示模块" -#: ../src/libs/lib.c:1430 +#: ../src/libs/lib.c:1431 msgid "utility module" msgstr "实用模块" @@ -21771,164 +22495,109 @@ msgid "map settings" msgstr "地图设定" -#: ../src/libs/map_settings.c:107 +#: ../src/libs/map_settings.c:89 msgid "map source" msgstr "地图来源" -#: ../src/libs/map_settings.c:112 +#: ../src/libs/map_settings.c:90 msgid "select the source of the map. some entries might not work" msgstr "选择地图来源。有些表项可能无法正常工作" -#: ../src/libs/masks.c:107 +#: ../src/libs/masks.c:108 msgid "feather" msgstr "羽化" -#: ../src/libs/masks.c:114 -msgid "hardness (relative)" -msgstr "硬度(相对值)" - -#: ../src/libs/masks.c:115 -msgid "hardness (absolute)" -msgstr "硬度 (绝对值)" - -#: ../src/libs/masks.c:116 -msgid "opacity (relative)" -msgstr "不透明度(相对值)" - -#: ../src/libs/masks.c:117 -msgid "opacity (absolute)" -msgstr "不透明度(绝对值)" - -#: ../src/libs/masks.c:118 -msgid "brush size (relative)" -msgstr "笔刷尺寸(相对值)" - -#: ../src/libs/masks.c:121 -msgid "low" -msgstr "低" - -#: ../src/libs/masks.c:122 -msgid "medium" -msgstr "中" - -#: ../src/libs/masks.c:123 -msgid "high" -msgstr "高" - -#: ../src/libs/masks.c:381 +#: ../src/libs/masks.c:357 #, c-format msgid "group #%d" msgstr "分组 #%d" -#: ../src/libs/masks.c:1081 +#: ../src/libs/masks.c:1097 msgid "duplicate this shape" msgstr "复制此形状" -#: ../src/libs/masks.c:1085 +#: ../src/libs/masks.c:1101 msgid "delete this shape" msgstr "删除此形状" -#: ../src/libs/masks.c:1091 +#: ../src/libs/masks.c:1107 msgid "delete group" msgstr "删除分组" -#: ../src/libs/masks.c:1098 +#: ../src/libs/masks.c:1114 msgid "remove from group" msgstr "从组中移除" -#: ../src/libs/masks.c:1106 +#: ../src/libs/masks.c:1122 msgid "group the forms" msgstr "组合形状" -#: ../src/libs/masks.c:1114 +#: ../src/libs/masks.c:1130 msgid "use inverted shape" msgstr "使用反转形状" -#: ../src/libs/masks.c:1121 +#: ../src/libs/masks.c:1134 msgid "mode: union" msgstr "模式:并集" -#: ../src/libs/masks.c:1127 +#: ../src/libs/masks.c:1136 msgid "mode: intersection" msgstr "模式:交集" -#: ../src/libs/masks.c:1133 +#: ../src/libs/masks.c:1138 msgid "mode: difference" msgstr "模式:差集" -#: ../src/libs/masks.c:1139 +#: ../src/libs/masks.c:1140 msgid "mode: sum" msgstr "模式:加和" -#: ../src/libs/masks.c:1145 +#: ../src/libs/masks.c:1142 msgid "mode: exclusion" msgstr "模式:排除" -#: ../src/libs/masks.c:1164 +#: ../src/libs/masks.c:1158 msgid "cleanup unused shapes" msgstr "清理未使用的形状" -#: ../src/libs/masks.c:1811 +#: ../src/libs/masks.c:1807 msgid "created shapes" msgstr "已创建形状" -#: ../src/libs/masks.c:1904 ../src/libs/masks.c:1919 ../src/libs/masks.c:1939 -#: ../src/libs/masks.c:1955 +#: ../src/libs/masks.c:1900 ../src/libs/masks.c:1915 ../src/libs/masks.c:1929 +#: ../src/libs/masks.c:1933 msgid "properties" msgstr "属性" -#: ../src/libs/masks.c:1907 +#: ../src/libs/masks.c:1903 msgid "no shapes selected" msgstr "未选择形状" -#: ../src/libs/masks.c:1940 +#: ../src/libs/masks.c:1929 msgid "pressure" msgstr "压感" -#: ../src/libs/masks.c:1941 -msgid "" -"pen pressure control for brush masks\n" -"'off': pressure reading ignored,\n" -"'hardness'/'opacity'/'brush size': pressure reading controls specified " -"attribute,\n" -"'absolute'/'relative': pressure reading is taken directly as attribute value " -"or multiplied with pre-defined setting." -msgstr "" -"笔刷蒙板压感选项\n" -"关闭:忽略压感读数,\n" -"硬度/不透明度/笔刷大小:压感读数控制指定属性,\n" -"绝对/相对:将压感读数直接作为属性值,或与预定义设置相乘。" - -#: ../src/libs/masks.c:1956 +#: ../src/libs/masks.c:1933 msgid "smoothing" msgstr "平滑" -#: ../src/libs/masks.c:1957 -msgid "" -"smoothing of brush strokes\n" -"stronger smoothing leads to fewer nodes and easier editing but with lower " -"control of accuracy." -msgstr "" -"设置笔刷的平滑度。\n" -"更强的平滑会导致更少的节点并更容易编辑,但精度控制会更低。" - -#: ../src/libs/metadata.c:64 +#: ../src/libs/metadata.c:60 msgid "metadata editor" msgstr "编辑元数据" -#: ../src/libs/metadata.c:206 ../src/libs/metadata.c:496 -msgid "<leave unchanged>" -msgstr "<保持不变>" - -#: ../src/libs/metadata.c:630 ../src/libs/metadata_view.c:1192 +#: ../src/libs/metadata.c:459 ../src/libs/metadata_view.c:1219 msgid "metadata settings" msgstr "元数据设置" -#: ../src/libs/metadata.c:683 ../src/libs/metadata_view.c:1237 +#: ../src/libs/metadata.c:461 ../src/libs/metadata_view.c:1221 +msgid "_default" +msgstr "默认 (_d)" + +#: ../src/libs/metadata.c:516 ../src/libs/metadata_view.c:1267 msgid "visible" msgstr "可见" -#: ../src/libs/metadata.c:688 +#: ../src/libs/metadata.c:524 msgid "" "tick if the corresponding metadata is of interest for you\n" "it will be visible from metadata editor, collection and import module\n" @@ -21938,17 +22607,17 @@ "勾选后将在元数据编辑器、集合和导入模块中显示\n" "勾选的元数据也会随图像一并导出" -#: ../src/libs/metadata.c:693 ../src/libs/tagging.c:1683 -#: ../src/libs/tagging.c:1827 +#: ../src/libs/metadata.c:529 ../src/libs/tagging.c:1705 +#: ../src/libs/tagging.c:1854 msgid "private" msgstr "私有" -#: ../src/libs/metadata.c:698 +#: ../src/libs/metadata.c:534 msgid "" "tick if you want to keep this information private (not exported with images)" msgstr "如果您想将此信息保密(不随图像导出),请勾选。" -#: ../src/libs/metadata.c:857 +#: ../src/libs/metadata.c:691 msgid "" "metadata text\n" "ctrl+enter inserts a new line (caution, may not be compatible with standard " @@ -21962,200 +22631,208 @@ "若元数据 <保持不变> 且已选中的图像含有不同的元数据,右键可以从中选择一个。\n" "按下 Escape 关闭弹出窗口" -#: ../src/libs/metadata.c:902 +#: ../src/libs/metadata.c:736 msgid "write metadata for selected images" msgstr "向选中的图片写入元数据" +#: ../src/libs/metadata.c:737 +msgid "cancel" +msgstr "取消" + +#: ../src/libs/metadata.c:738 +msgid "ignore changed metadata" +msgstr "忽略元数据变更" + #. <title>\0<description>\0<rights>\0<creator>\0<publisher> -#: ../src/libs/metadata.c:958 +#: ../src/libs/metadata.c:793 msgid "CC BY" msgstr "CC BY" -#: ../src/libs/metadata.c:959 +#: ../src/libs/metadata.c:794 msgid "Creative Commons Attribution (CC BY)" msgstr "知识共享 署名(CC-BY)" -#: ../src/libs/metadata.c:960 +#: ../src/libs/metadata.c:795 msgid "CC BY-SA" msgstr "CC BY-SA" -#: ../src/libs/metadata.c:961 +#: ../src/libs/metadata.c:796 msgid "Creative Commons Attribution-ShareAlike (CC BY-SA)" msgstr "知识共享 署名-相同方式共享(CC-BY-SA)" -#: ../src/libs/metadata.c:962 +#: ../src/libs/metadata.c:797 msgid "CC BY-ND" msgstr "CC BY-ND" -#: ../src/libs/metadata.c:963 +#: ../src/libs/metadata.c:798 msgid "Creative Commons Attribution-NoDerivs (CC BY-ND)" msgstr "知识共享 署名-禁止演绎(CC-BY-ND)" -#: ../src/libs/metadata.c:964 +#: ../src/libs/metadata.c:799 msgid "CC BY-NC" msgstr "CC BY-NC" -#: ../src/libs/metadata.c:965 +#: ../src/libs/metadata.c:800 msgid "Creative Commons Attribution-NonCommercial (CC BY-NC)" msgstr "知识共享 署名-非商业性使用(CC-BY-NC)" -#: ../src/libs/metadata.c:966 +#: ../src/libs/metadata.c:801 msgid "CC BY-NC-SA" msgstr "CC BY-NC-SA" -#: ../src/libs/metadata.c:967 +#: ../src/libs/metadata.c:802 msgid "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" msgstr "知识共享 署名-非商业性使用-相同方式共享(CC-BY-NC-SA)" -#: ../src/libs/metadata.c:968 +#: ../src/libs/metadata.c:803 msgid "CC BY-NC-ND" msgstr "CC BY-NC-ND" -#: ../src/libs/metadata.c:969 +#: ../src/libs/metadata.c:804 msgid "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" msgstr "知识共享 署名-非商业性使用-禁止演绎(CC-BY-NC-ND)" -#: ../src/libs/metadata.c:970 ../src/libs/metadata.c:971 +#: ../src/libs/metadata.c:805 ../src/libs/metadata.c:806 msgid "all rights reserved" msgstr "保留所有权利" #. internal -#: ../src/libs/metadata_view.c:123 +#: ../src/libs/metadata_view.c:125 msgid "filmroll" msgstr "胶卷" -#: ../src/libs/metadata_view.c:125 +#: ../src/libs/metadata_view.c:127 msgid "group id" msgstr "分组 id" -#: ../src/libs/metadata_view.c:127 +#: ../src/libs/metadata_view.c:129 msgid "version" msgstr "版本" -#: ../src/libs/metadata_view.c:130 +#: ../src/libs/metadata_view.c:132 msgid "import timestamp" msgstr "导入时间" -#: ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:133 msgid "change timestamp" msgstr "修改时间" -#: ../src/libs/metadata_view.c:132 +#: ../src/libs/metadata_view.c:134 msgid "export timestamp" msgstr "导出时间" -#: ../src/libs/metadata_view.c:133 +#: ../src/libs/metadata_view.c:135 msgid "print timestamp" msgstr "打印时间" -#: ../src/libs/metadata_view.c:134 +#: ../src/libs/metadata_view.c:136 msgid "flags" msgstr "标示" -#: ../src/libs/metadata_view.c:144 +#: ../src/libs/metadata_view.c:146 +msgid "35mm equiv focal length" +msgstr "在 35mm 画幅上的等效焦距" + +#: ../src/libs/metadata_view.c:148 msgid "focus distance" msgstr "焦距" -#: ../src/libs/metadata_view.c:146 +#: ../src/libs/metadata_view.c:150 msgid "datetime" msgstr "拍摄时间" -#: ../src/libs/metadata_view.c:149 +#: ../src/libs/metadata_view.c:153 msgid "export width" msgstr "导出宽度" -#: ../src/libs/metadata_view.c:150 +#: ../src/libs/metadata_view.c:154 msgid "export height" msgstr "导出高度" -#: ../src/libs/metadata_view.c:158 +#: ../src/libs/metadata_view.c:162 msgid "longitude" msgstr "经度" -#: ../src/libs/metadata_view.c:159 +#: ../src/libs/metadata_view.c:163 msgid "elevation" msgstr "海拔" -#: ../src/libs/metadata_view.c:163 +#: ../src/libs/metadata_view.c:167 msgid "categories" msgstr "类别" -#: ../src/libs/metadata_view.c:170 +#: ../src/libs/metadata_view.c:174 msgid "image information" msgstr "图片信息" -#: ../src/libs/metadata_view.c:330 +#: ../src/libs/metadata_view.c:334 msgid "unused/deprecated" msgstr "未使用/已废弃" -#: ../src/libs/metadata_view.c:331 +#: ../src/libs/metadata_view.c:335 msgid "LDR" msgstr "LDR" -#: ../src/libs/metadata_view.c:334 +#: ../src/libs/metadata_view.c:338 msgid "marked for deletion" msgstr "已标记删除" -#: ../src/libs/metadata_view.c:335 +#: ../src/libs/metadata_view.c:339 msgid "auto-applying presets applied" msgstr "已使用自动应用的预设" -#: ../src/libs/metadata_view.c:337 +#: ../src/libs/metadata_view.c:341 msgid "has .txt" msgstr "含有 .txt" -#: ../src/libs/metadata_view.c:338 +#: ../src/libs/metadata_view.c:342 msgid "has .wav" msgstr "含有 .wav" -#: ../src/libs/metadata_view.c:356 +#: ../src/libs/metadata_view.c:360 #, c-format msgid "image has %d star" msgid_plural "image has %d stars" msgstr[0] "图像被评级为 %d 星" -#: ../src/libs/metadata_view.c:432 +#: ../src/libs/metadata_view.c:436 #, c-format msgid "loader: %s" msgstr "加载库:%s" -#: ../src/libs/metadata_view.c:623 +#: ../src/libs/metadata_view.c:626 msgid "<various values>" msgstr "<多个不同的值>" -#: ../src/libs/metadata_view.c:636 +#: ../src/libs/metadata_view.c:639 #, c-format msgid "" "double-click to jump to film roll\n" "%s" msgstr "双击以跳转到胶卷 %s" -#: ../src/libs/metadata_view.c:728 +#: ../src/libs/metadata_view.c:731 #, c-format msgid "%+.2f EV" msgstr "%+.2f EV" -#: ../src/libs/metadata_view.c:735 -#, c-format -msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" -msgstr "%.1f 毫米(等效全幅 %.1f 毫米,裁切系数 %.1f)" - -#: ../src/libs/metadata_view.c:740 +#: ../src/libs/metadata_view.c:737 ../src/libs/metadata_view.c:749 +#: ../src/libs/metadata_view.c:754 #, c-format msgid "%.1f mm" msgstr "%.1f 毫米" -#: ../src/libs/metadata_view.c:751 +#: ../src/libs/metadata_view.c:778 #, c-format msgid "infinity" msgstr "无限" -#: ../src/libs/metadata_view.c:755 +#: ../src/libs/metadata_view.c:782 #, c-format msgid "%.2f m" msgstr "%.2f 米" -#: ../src/libs/metadata_view.c:1232 +#: ../src/libs/metadata_view.c:1262 msgid "" "drag and drop one row at a time until you get the desired order\n" "untick to hide metadata which are not of interest for you\n" @@ -22165,7 +22842,7 @@ "取消勾选来隐藏不感兴趣的元数据\n" "如果需要不同的设置,请使用预设" -#: ../src/libs/metadata_view.c:1388 +#: ../src/libs/metadata_view.c:1423 msgid "jump to film roll" msgstr "跳到胶卷" @@ -22190,7 +22867,7 @@ msgid "recent collections settings" msgstr "最近集合选项" -#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1769 +#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1753 msgid "workflow: scene-referred" msgstr "工作流:基于场景" @@ -22208,174 +22885,174 @@ #. FIXME don't check here if on/off is enabled, because it depends on image (reload_defaults) #. respond later to image changed signal -#: ../src/libs/modulegroups.c:306 ../src/libs/modulegroups.c:318 -#: ../src/libs/modulegroups.c:2427 ../src/libs/modulegroups.c:2429 +#: ../src/libs/modulegroups.c:307 ../src/libs/modulegroups.c:319 +#: ../src/libs/modulegroups.c:2411 ../src/libs/modulegroups.c:2413 msgid "on-off" msgstr "开关" -#: ../src/libs/modulegroups.c:498 ../src/libs/modulegroups.c:501 +#: ../src/libs/modulegroups.c:501 ../src/libs/modulegroups.c:504 msgid "" "this quick access widget is disabled as there are multiple instances of this " "module present. Please use the full module to access this widget..." msgstr "此快速访问部件有多个实例,无法启用。您需要使用完整版模块……" -#: ../src/libs/modulegroups.c:591 +#: ../src/libs/modulegroups.c:594 msgid "(some features may only be available in the full module interface)" msgstr "(一些特性可能仅在完整版模块内可用)" -#: ../src/libs/modulegroups.c:635 +#: ../src/libs/modulegroups.c:632 #, c-format msgid "go to the full version of the %s module" msgstr "转到模块 %s 的完整版本" -#: ../src/libs/modulegroups.c:1556 ../src/libs/modulegroups.c:1641 -#: ../src/libs/modulegroups.c:1677 ../src/libs/modulegroups.c:1727 -#: ../src/libs/modulegroups.c:1817 +#: ../src/libs/modulegroups.c:1538 ../src/libs/modulegroups.c:1624 +#: ../src/libs/modulegroups.c:1660 ../src/libs/modulegroups.c:1710 +#: ../src/libs/modulegroups.c:1801 msgctxt "modulegroup" msgid "base" msgstr "基础" -#: ../src/libs/modulegroups.c:1575 +#: ../src/libs/modulegroups.c:1557 msgctxt "modulegroup" msgid "tone" msgstr "色调" -#: ../src/libs/modulegroups.c:1584 ../src/libs/modulegroups.c:1691 -#: ../src/libs/modulegroups.c:1741 +#: ../src/libs/modulegroups.c:1566 ../src/libs/modulegroups.c:1674 +#: ../src/libs/modulegroups.c:1724 msgctxt "modulegroup" msgid "color" msgstr "颜色" -#: ../src/libs/modulegroups.c:1599 ../src/libs/modulegroups.c:1699 -#: ../src/libs/modulegroups.c:1746 +#: ../src/libs/modulegroups.c:1582 ../src/libs/modulegroups.c:1682 +#: ../src/libs/modulegroups.c:1730 msgctxt "modulegroup" msgid "correct" msgstr "修正" -#: ../src/libs/modulegroups.c:1617 ../src/libs/modulegroups.c:1711 -#: ../src/libs/modulegroups.c:1758 ../src/libs/modulegroups.c:2321 +#: ../src/libs/modulegroups.c:1600 ../src/libs/modulegroups.c:1694 +#: ../src/libs/modulegroups.c:1742 ../src/libs/modulegroups.c:2305 msgctxt "modulegroup" msgid "effect" msgstr "效果" -#: ../src/libs/modulegroups.c:1635 +#: ../src/libs/modulegroups.c:1618 msgid "modules: all" msgstr "模块:全部" -#: ../src/libs/modulegroups.c:1656 +#: ../src/libs/modulegroups.c:1639 msgctxt "modulegroup" msgid "grading" msgstr "分类" -#: ../src/libs/modulegroups.c:1664 ../src/libs/modulegroups.c:2325 +#: ../src/libs/modulegroups.c:1647 ../src/libs/modulegroups.c:2309 msgctxt "modulegroup" msgid "effects" msgstr "效果" -#: ../src/libs/modulegroups.c:1672 +#: ../src/libs/modulegroups.c:1655 msgid "workflow: beginner" msgstr "工作流:入门" -#: ../src/libs/modulegroups.c:1721 +#: ../src/libs/modulegroups.c:1704 msgid "workflow: display-referred" msgstr "工作流:基于显示" -#: ../src/libs/modulegroups.c:1773 +#: ../src/libs/modulegroups.c:1757 msgid "search only" msgstr "仅搜索" -#: ../src/libs/modulegroups.c:1779 ../src/libs/modulegroups.c:2090 -#: ../src/libs/modulegroups.c:2599 +#: ../src/libs/modulegroups.c:1763 ../src/libs/modulegroups.c:2074 +#: ../src/libs/modulegroups.c:2583 msgctxt "modulegroup" msgid "deprecated" msgstr "过时" -#: ../src/libs/modulegroups.c:1792 +#: ../src/libs/modulegroups.c:1776 msgid "previous config" msgstr "旧配置" -#: ../src/libs/modulegroups.c:1793 +#: ../src/libs/modulegroups.c:1777 msgid "previous layout" msgstr "旧布局" -#: ../src/libs/modulegroups.c:1797 +#: ../src/libs/modulegroups.c:1781 msgid "previous config with new layout" msgstr "旧设置,新布局" -#: ../src/libs/modulegroups.c:1957 ../src/libs/modulegroups.c:2472 -#: ../src/libs/modulegroups.c:2484 +#: ../src/libs/modulegroups.c:1941 ../src/libs/modulegroups.c:2456 +#: ../src/libs/modulegroups.c:2468 msgid "remove this widget" msgstr "移除此部件" -#: ../src/libs/modulegroups.c:2107 ../src/libs/modulegroups.c:2347 +#: ../src/libs/modulegroups.c:2091 ../src/libs/modulegroups.c:2331 msgid "remove this module" msgstr "移除此模块" #. does it belong to recommended modules ? -#: ../src/libs/modulegroups.c:2316 +#: ../src/libs/modulegroups.c:2300 msgid "base" msgstr "基础" -#: ../src/libs/modulegroups.c:2319 +#: ../src/libs/modulegroups.c:2303 msgid "tone" msgstr "色调" -#: ../src/libs/modulegroups.c:2322 +#: ../src/libs/modulegroups.c:2306 msgid "technical" msgstr "技术" -#: ../src/libs/modulegroups.c:2323 +#: ../src/libs/modulegroups.c:2307 msgid "grading" msgstr "分级" -#: ../src/libs/modulegroups.c:2329 ../src/libs/modulegroups.c:2337 +#: ../src/libs/modulegroups.c:2313 ../src/libs/modulegroups.c:2321 msgid "add this module" msgstr "添加此模块" #. show the submenu with all the modules -#: ../src/libs/modulegroups.c:2359 ../src/libs/modulegroups.c:2559 +#: ../src/libs/modulegroups.c:2343 ../src/libs/modulegroups.c:2543 msgid "all available modules" msgstr "全部模块" -#: ../src/libs/modulegroups.c:2367 +#: ../src/libs/modulegroups.c:2351 msgid "add module" msgstr "添加模块" -#: ../src/libs/modulegroups.c:2372 +#: ../src/libs/modulegroups.c:2356 msgid "remove module" msgstr "移除模块" -#: ../src/libs/modulegroups.c:2478 +#: ../src/libs/modulegroups.c:2462 msgid "header needed for other widgets" msgstr "其他部件需要此标签" -#: ../src/libs/modulegroups.c:2494 ../src/libs/modulegroups.c:2501 +#: ../src/libs/modulegroups.c:2478 ../src/libs/modulegroups.c:2485 msgid "add this widget" msgstr "添加此部件" -#: ../src/libs/modulegroups.c:2514 +#: ../src/libs/modulegroups.c:2498 msgid "currently invisible" msgstr "目前不可见" -#: ../src/libs/modulegroups.c:2543 +#: ../src/libs/modulegroups.c:2527 msgid "add widget" msgstr "添加部件" -#: ../src/libs/modulegroups.c:2548 +#: ../src/libs/modulegroups.c:2532 msgid "remove widget" msgstr "移除部件" -#: ../src/libs/modulegroups.c:2653 +#: ../src/libs/modulegroups.c:2637 msgid "show all history modules" msgstr "显示所有历史模块" -#: ../src/libs/modulegroups.c:2656 ../src/libs/modulegroups.c:3834 +#: ../src/libs/modulegroups.c:2640 ../src/libs/modulegroups.c:3836 msgid "" "show modules that are present in the history stack, regardless of whether or " "not they are currently enabled" msgstr "显示存在于历史记录栈中的模块,不管它们当前是否被启用" -#: ../src/libs/modulegroups.c:2747 ../src/libs/modulegroups.c:2816 +#: ../src/libs/modulegroups.c:2731 ../src/libs/modulegroups.c:2823 msgid "" "the following modules are deprecated because they have internal design " "mistakes that can't be corrected and alternative modules that correct them.\n" @@ -22385,19 +23062,19 @@ "因为它们有无法解决的内部设计错误和正确解决这些错误的替代方案。\n" "在下一版本中编辑新图像时,这些模块将不可用。" -#: ../src/libs/modulegroups.c:2775 ../src/libs/modulegroups.c:2776 +#: ../src/libs/modulegroups.c:2782 ../src/libs/modulegroups.c:2783 msgid "quick access panel" msgstr "快速访问面板" -#: ../src/libs/modulegroups.c:2786 +#: ../src/libs/modulegroups.c:2793 msgid "show only active modules" msgstr "仅显示活动模块" -#: ../src/libs/modulegroups.c:2787 +#: ../src/libs/modulegroups.c:2794 msgid "active modules" msgstr "活跃模块" -#: ../src/libs/modulegroups.c:2792 +#: ../src/libs/modulegroups.c:2799 msgid "" "presets\n" "ctrl+click to manage" @@ -22405,143 +23082,147 @@ "预设\n" "ctrl + 单击以管理预设" -#: ../src/libs/modulegroups.c:2798 +#: ../src/libs/modulegroups.c:2805 msgid "search modules" msgstr "搜索模块" -#: ../src/libs/modulegroups.c:2799 +#: ../src/libs/modulegroups.c:2806 msgid "search modules by name or tag" msgstr "按名称或标签搜索模块" -#: ../src/libs/modulegroups.c:2809 +#: ../src/libs/modulegroups.c:2816 msgid "clear text" msgstr "清空文字" -#: ../src/libs/modulegroups.c:3051 +#: ../src/libs/modulegroups.c:3056 msgid "basic icon" msgstr "基本工具图标" -#: ../src/libs/modulegroups.c:3061 +#: ../src/libs/modulegroups.c:3066 msgid "active icon" msgstr "活动图标" -#: ../src/libs/modulegroups.c:3071 +#: ../src/libs/modulegroups.c:3076 msgid "color icon" msgstr "色彩图标" -#: ../src/libs/modulegroups.c:3081 +#: ../src/libs/modulegroups.c:3086 msgid "correct icon" msgstr "修正图标" -#: ../src/libs/modulegroups.c:3091 +#: ../src/libs/modulegroups.c:3096 msgid "effect icon" msgstr "特效图标" -#: ../src/libs/modulegroups.c:3101 +#: ../src/libs/modulegroups.c:3106 msgid "favorites icon" msgstr "收藏夹图标" -#: ../src/libs/modulegroups.c:3111 +#: ../src/libs/modulegroups.c:3116 msgid "tone icon" msgstr "色调图标" -#: ../src/libs/modulegroups.c:3121 +#: ../src/libs/modulegroups.c:3126 msgid "grading icon" msgstr "分级图标" -#: ../src/libs/modulegroups.c:3131 +#: ../src/libs/modulegroups.c:3136 msgid "technical icon" msgstr "技术工具图标" -#: ../src/libs/modulegroups.c:3164 +#: ../src/libs/modulegroups.c:3169 msgid "quick access panel widgets" msgstr "快速访问面板部件" -#: ../src/libs/modulegroups.c:3166 +#: ../src/libs/modulegroups.c:3171 msgid "quick access" msgstr "快速访问" -#: ../src/libs/modulegroups.c:3186 +#: ../src/libs/modulegroups.c:3191 msgid "add widget to the quick access panel" msgstr "将部件添加至快速访问面板" -#: ../src/libs/modulegroups.c:3218 +#: ../src/libs/modulegroups.c:3223 msgid "group icon" msgstr "组图标" -#: ../src/libs/modulegroups.c:3227 +#: ../src/libs/modulegroups.c:3232 msgid "group name" msgstr "组名" -#: ../src/libs/modulegroups.c:3238 +#: ../src/libs/modulegroups.c:3243 msgid "remove group" msgstr "移除分组" -#: ../src/libs/modulegroups.c:3264 +#: ../src/libs/modulegroups.c:3269 msgid "move group to the left" msgstr "将分组向左移动" -#: ../src/libs/modulegroups.c:3272 +#: ../src/libs/modulegroups.c:3277 msgid "add module to the group" msgstr "向分组添加模块" -#: ../src/libs/modulegroups.c:3283 +#: ../src/libs/modulegroups.c:3288 msgid "move group to the right" msgstr "将分组向右移动" -#: ../src/libs/modulegroups.c:3463 +#: ../src/libs/modulegroups.c:3464 msgid "rename preset" msgstr "重命名预设" -#: ../src/libs/modulegroups.c:3470 +#: ../src/libs/modulegroups.c:3467 +msgid "_rename" +msgstr "重命名 (_r)" + +#: ../src/libs/modulegroups.c:3473 msgid "new preset name:" msgstr "新预设名称:" -#: ../src/libs/modulegroups.c:3471 +#: ../src/libs/modulegroups.c:3474 msgid "a preset with this name already exists!" msgstr "同名预设已经存在!" -#: ../src/libs/modulegroups.c:3804 +#: ../src/libs/modulegroups.c:3806 msgid "preset: " msgstr "预设: " -#: ../src/libs/modulegroups.c:3811 +#: ../src/libs/modulegroups.c:3813 msgid "remove the preset" msgstr "移除此预设" -#: ../src/libs/modulegroups.c:3813 +#: ../src/libs/modulegroups.c:3815 msgid "duplicate the preset" msgstr "复制此预设" -#: ../src/libs/modulegroups.c:3815 +#: ../src/libs/modulegroups.c:3817 msgid "rename the preset" msgstr "重命名此预设" -#: ../src/libs/modulegroups.c:3817 +#: ../src/libs/modulegroups.c:3819 msgid "create a new empty preset" msgstr "添加新的空预设" -#: ../src/libs/modulegroups.c:3825 +#: ../src/libs/modulegroups.c:3827 msgid "show search line" msgstr "显示搜索行" -#: ../src/libs/modulegroups.c:3828 +#: ../src/libs/modulegroups.c:3830 msgid "show quick access panel" msgstr "显示快速访问面板" -#: ../src/libs/modulegroups.c:3831 +#: ../src/libs/modulegroups.c:3833 msgid "show all history modules in active group" msgstr "显示活动分组内的历史模块" -#: ../src/libs/modulegroups.c:3843 +#: ../src/libs/modulegroups.c:3845 msgid "auto-apply this preset" msgstr "自动应用此预设" -#: ../src/libs/modulegroups.c:3858 +#: ../src/libs/modulegroups.c:3860 msgid "module groups" msgstr "模块组" -#: ../src/libs/modulegroups.c:3875 +#: ../src/libs/modulegroups.c:3877 msgid "" "this is a built-in read-only preset. duplicate it if you want to make changes" msgstr "这是一个内置的只读预设。如果要进行更改,请先复制它" @@ -22550,16 +23231,16 @@ msgid "navigation" msgstr "导航" -#: ../src/libs/navigation.c:111 ../src/libs/navigation.c:191 +#: ../src/libs/navigation.c:112 ../src/libs/navigation.c:194 msgctxt "navigationbox" msgid "fill" msgstr "填充" -#: ../src/libs/navigation.c:114 ../src/libs/navigation.c:189 +#: ../src/libs/navigation.c:115 ../src/libs/navigation.c:192 msgid "small" msgstr "小" -#: ../src/libs/navigation.c:151 +#: ../src/libs/navigation.c:154 msgid "" "navigation\n" "click or drag to position zoomed area in center view" @@ -22567,35 +23248,35 @@ "导航\n" "单击或拖动以移动缩放视图" -#: ../src/libs/navigation.c:173 +#: ../src/libs/navigation.c:176 msgid "hide navigation thumbnail" msgstr "隐藏导航缩略图" -#: ../src/libs/navigation.c:187 +#: ../src/libs/navigation.c:190 msgid "image zoom level" msgstr "图像缩放等级" -#: ../src/libs/navigation.c:192 +#: ../src/libs/navigation.c:195 msgid "50%" msgstr "50%" -#: ../src/libs/navigation.c:193 +#: ../src/libs/navigation.c:196 msgid "100%" msgstr "100%" -#: ../src/libs/navigation.c:194 +#: ../src/libs/navigation.c:197 msgid "200%" msgstr "200%" -#: ../src/libs/navigation.c:195 +#: ../src/libs/navigation.c:198 msgid "400%" msgstr "400%" -#: ../src/libs/navigation.c:196 +#: ../src/libs/navigation.c:199 msgid "800%" msgstr "800%" -#: ../src/libs/navigation.c:197 +#: ../src/libs/navigation.c:200 msgid "1600%" msgstr "1600%" @@ -22838,27 +23519,27 @@ msgid "print with current settings" msgstr "以当前设定打印" -#: ../src/libs/select.c:136 +#: ../src/libs/select.c:137 msgid "select all images in current collection" msgstr "选择当前集合中的所有图片" -#: ../src/libs/select.c:140 +#: ../src/libs/select.c:141 msgid "clear selection" msgstr "清除选择" -#: ../src/libs/select.c:144 +#: ../src/libs/select.c:145 msgid "" "select unselected images\n" "in current collection" msgstr "选择当前集合中未选择的图片" -#: ../src/libs/select.c:148 +#: ../src/libs/select.c:149 msgid "" "select all images which are in the same\n" "film roll as the selected images" msgstr "选择与所选图片位于同一胶卷中的所有图片" -#: ../src/libs/select.c:152 +#: ../src/libs/select.c:153 msgid "" "select untouched images in\n" "current collection" @@ -22876,35 +23557,39 @@ msgid "create" msgstr "创建" -#: ../src/libs/snapshots.c:92 +#: ../src/libs/snapshots.c:88 msgid "snapshots" msgstr "快照" -#: ../src/libs/snapshots.c:141 +#: ../src/libs/snapshots.c:137 msgctxt "snapshot sign" msgid "S" msgstr "S" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:662 +msgid "snapshots for removed image have been deleted" +msgstr "已移除图像的快照已被删除" + +#: ../src/libs/snapshots.c:703 #, c-format msgid "↗ %s '%s'" msgstr "↗ %s “%s”" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:703 msgid "this snapshot was taken from" msgstr "此快照创建自" -#: ../src/libs/snapshots.c:663 +#: ../src/libs/snapshots.c:742 msgid "take snapshot" msgstr "取样快照" -#: ../src/libs/snapshots.c:665 +#: ../src/libs/snapshots.c:744 msgid "" "take snapshot to compare with another image or the same image at another " "stage of development" msgstr "取样快照以与另一个图像或处于另一个处理阶段的同一图像进行比较" -#: ../src/libs/snapshots.c:734 +#: ../src/libs/snapshots.c:790 msgid "toggle last snapshot" msgstr "切换上次快照" @@ -22919,31 +23604,35 @@ msgid_plural "do you really want to remove %d styles?" msgstr[0] "确定要删除 %d 个样式?" -#: ../src/libs/styles.c:444 ../src/libs/styles.c:627 +#: ../src/libs/styles.c:441 ../src/libs/styles.c:626 +msgid "_overwrite" +msgstr "覆盖 (_o)" + +#: ../src/libs/styles.c:446 ../src/libs/styles.c:631 #, c-format msgid "" "style `%s' already exists.\n" "do you want to overwrite existing style?\n" msgstr "样式“%s”已存在。您想覆盖它吗?\n" -#: ../src/libs/styles.c:446 ../src/libs/styles.c:629 +#: ../src/libs/styles.c:448 ../src/libs/styles.c:633 msgid "apply this option to all existing styles" msgstr "将此选项应用到所有现存样式" -#: ../src/libs/styles.c:509 +#: ../src/libs/styles.c:511 #, c-format msgid "style %s was successfully exported" msgstr "样式 %s 导出成功" -#: ../src/libs/styles.c:526 +#: ../src/libs/styles.c:528 msgid "select style" msgstr "选择风格" -#: ../src/libs/styles.c:536 +#: ../src/libs/styles.c:538 msgid "darktable style files" msgstr "darktable 样式文件" -#: ../src/libs/styles.c:815 +#: ../src/libs/styles.c:819 msgid "" "available styles,\n" "double-click to apply" @@ -22951,73 +23640,73 @@ "可用样式,\n" "双击应用" -#: ../src/libs/styles.c:824 ../src/libs/styles.c:825 +#: ../src/libs/styles.c:828 ../src/libs/styles.c:829 msgid "filter style names" msgstr "输入样式名称" -#: ../src/libs/styles.c:837 +#: ../src/libs/styles.c:841 msgid "create duplicate" msgstr "创建副本" -#: ../src/libs/styles.c:844 +#: ../src/libs/styles.c:848 msgid "creates a duplicate of the image before applying style" msgstr "样式应用前创建一个此图片的复制品" -#: ../src/libs/styles.c:862 +#: ../src/libs/styles.c:866 msgid "create..." msgstr "创建…" -#: ../src/libs/styles.c:864 +#: ../src/libs/styles.c:868 msgid "create styles from history stack of selected images" msgstr "从选中的图片的历史栈创建新的风格" -#: ../src/libs/styles.c:869 ../src/libs/tagging.c:2252 +#: ../src/libs/styles.c:873 ../src/libs/tagging.c:2283 msgid "edit..." msgstr "编辑…" -#: ../src/libs/styles.c:871 +#: ../src/libs/styles.c:875 msgid "edit the selected styles in list above" msgstr "编辑上面列表中的选定样式" -#: ../src/libs/styles.c:878 +#: ../src/libs/styles.c:882 msgid "removes the selected styles in list above" msgstr "删除上面列表中的选定样式" -#: ../src/libs/styles.c:885 +#: ../src/libs/styles.c:889 msgid "import styles from a style files" msgstr "从样式文件导入样式" -#: ../src/libs/styles.c:892 +#: ../src/libs/styles.c:896 msgid "export the selected styles into a style files" msgstr "导出样式到一个样式文件" -#: ../src/libs/styles.c:899 +#: ../src/libs/styles.c:903 msgid "apply the selected styles in list above to selected images" msgstr "将上面列表中选定的样式应用于选定的图像" -#: ../src/libs/tagging.c:105 +#: ../src/libs/tagging.c:109 msgid "tagging" msgstr "标签管理" -#: ../src/libs/tagging.c:1255 +#: ../src/libs/tagging.c:1258 msgid "attach tag to all" msgstr "给所有图片加上标签" -#: ../src/libs/tagging.c:1263 ../src/libs/tagging.c:2225 +#: ../src/libs/tagging.c:1266 ../src/libs/tagging.c:2256 msgid "detach tag" msgstr "分离标签" -#: ../src/libs/tagging.c:1483 +#: ../src/libs/tagging.c:1486 msgid "delete tag?" msgstr "删除标签?" -#: ../src/libs/tagging.c:1490 ../src/libs/tagging.c:1578 -#: ../src/libs/tagging.c:1789 ../src/libs/tagging.c:2063 +#: ../src/libs/tagging.c:1496 ../src/libs/tagging.c:1587 +#: ../src/libs/tagging.c:1814 ../src/libs/tagging.c:2093 #, c-format msgid "selected: %s" msgstr "已选择:%s" -#: ../src/libs/tagging.c:1497 +#: ../src/libs/tagging.c:1503 #, c-format msgid "" "do you really want to delete the tag `%s'?\n" @@ -23029,70 +23718,70 @@ "真的要删除标签“%s”?\n" "%d 张图片正在使用此标签!" -#: ../src/libs/tagging.c:1531 +#: ../src/libs/tagging.c:1537 #, c-format msgid "tag %s removed" msgstr "标签 %s 已删除" -#: ../src/libs/tagging.c:1571 +#: ../src/libs/tagging.c:1577 msgid "delete node?" msgstr "删除节点?" -#: ../src/libs/tagging.c:1585 +#: ../src/libs/tagging.c:1594 #, c-format msgid "<u>%d</u> tag will be deleted" msgid_plural "<u>%d</u> tags will be deleted" msgstr[0] "将移除 <u>%d</u> 个标签" -#: ../src/libs/tagging.c:1590 ../src/libs/tagging.c:1801 -#: ../src/libs/tagging.c:2075 +#: ../src/libs/tagging.c:1599 ../src/libs/tagging.c:1826 +#: ../src/libs/tagging.c:2105 #, c-format msgid "<u>%d</u> image will be updated" msgid_plural "<u>%d</u> images will be updated" msgstr[0] "将更新 <u>%d</u> 张图像" -#: ../src/libs/tagging.c:1616 +#: ../src/libs/tagging.c:1625 #, c-format msgid "%d tags removed" msgstr "已移除 <u>%d</u> 个标签" -#: ../src/libs/tagging.c:1652 +#: ../src/libs/tagging.c:1668 msgid "create tag" msgstr "创建标签" -#: ../src/libs/tagging.c:1662 ../src/libs/tagging.c:1809 +#: ../src/libs/tagging.c:1681 ../src/libs/tagging.c:1834 msgid "name: " msgstr "名称: " -#: ../src/libs/tagging.c:1674 +#: ../src/libs/tagging.c:1696 #, c-format msgid "add to: \"%s\" " msgstr "添加到:“%s” " -#: ../src/libs/tagging.c:1680 ../src/libs/tagging.c:1824 +#: ../src/libs/tagging.c:1702 ../src/libs/tagging.c:1851 msgid "category" msgstr "类别" -#: ../src/libs/tagging.c:1689 ../src/libs/tagging.c:1833 +#: ../src/libs/tagging.c:1711 ../src/libs/tagging.c:1860 msgid "synonyms: " msgstr "同义词: " -#: ../src/libs/tagging.c:1706 ../src/libs/tagging.c:1855 -#: ../src/libs/tagging.c:2097 +#: ../src/libs/tagging.c:1728 ../src/libs/tagging.c:1882 +#: ../src/libs/tagging.c:2128 msgid "empty tag is not allowed, aborting" msgstr "您不能添加空标签,操作已取消" -#: ../src/libs/tagging.c:1717 +#: ../src/libs/tagging.c:1739 msgid "tag name already exists. aborting." msgstr "标签名已经存在,操作已取消。" -#: ../src/libs/tagging.c:1796 ../src/libs/tagging.c:2070 +#: ../src/libs/tagging.c:1821 ../src/libs/tagging.c:2100 #, c-format msgid "<u>%d</u> tag will be updated" msgid_plural "<u>%d</u> tags will be updated" msgstr[0] "将更新 <u>%d</u> 个标签" -#: ../src/libs/tagging.c:1857 +#: ../src/libs/tagging.c:1884 msgid "" "'|' character is not allowed for renaming tag.\n" "to modify the hierarchy use rename path instead. Aborting." @@ -23100,100 +23789,100 @@ "“|”不可用于重命名标签。\n" "请使用路径重命名功能更改标签从属关系。操作已取消。" -#: ../src/libs/tagging.c:1896 ../src/libs/tagging.c:2004 +#: ../src/libs/tagging.c:1923 ../src/libs/tagging.c:2031 #, c-format msgid "at least one new tag name (%s) already exists, aborting" msgstr "至少一个要添加的标签名(%s)已经存在,操作已取消" -#: ../src/libs/tagging.c:2056 +#: ../src/libs/tagging.c:2083 msgid "change path" msgstr "更改标签路径" -#: ../src/libs/tagging.c:2099 +#: ../src/libs/tagging.c:2130 msgid "'|' misplaced, empty tag is not allowed, aborting" msgstr "“|”位置错误,您不能添加空标签,操作已取消" -#: ../src/libs/tagging.c:2195 +#: ../src/libs/tagging.c:2226 #, c-format msgid "tag %s created" msgstr "标签 %s 已创建" -#: ../src/libs/tagging.c:2221 +#: ../src/libs/tagging.c:2252 msgid "attach tag" msgstr "附加标签" -#: ../src/libs/tagging.c:2234 +#: ../src/libs/tagging.c:2265 msgid "create tag..." msgstr "创建标签..." -#: ../src/libs/tagging.c:2240 +#: ../src/libs/tagging.c:2271 msgid "delete tag" msgstr "删除标签" -#: ../src/libs/tagging.c:2247 +#: ../src/libs/tagging.c:2278 msgid "delete node" msgstr "删除节点" -#: ../src/libs/tagging.c:2260 +#: ../src/libs/tagging.c:2291 msgid "change path..." msgstr "更改路径..." -#: ../src/libs/tagging.c:2270 +#: ../src/libs/tagging.c:2301 msgid "set as a tag" msgstr "作为标签使用" -#: ../src/libs/tagging.c:2281 +#: ../src/libs/tagging.c:2312 msgid "copy to entry" msgstr "复制到条目" -#: ../src/libs/tagging.c:2298 +#: ../src/libs/tagging.c:2329 msgid "go to tag collection" msgstr "显示标签集" -#: ../src/libs/tagging.c:2304 +#: ../src/libs/tagging.c:2335 msgid "go back to work" msgstr "回到工作流" -#: ../src/libs/tagging.c:2461 +#: ../src/libs/tagging.c:2492 #, c-format msgid "%s" msgstr "%s" -#: ../src/libs/tagging.c:2462 +#: ../src/libs/tagging.c:2493 msgid "(private)" msgstr "(私有)" -#: ../src/libs/tagging.c:2488 +#: ../src/libs/tagging.c:2519 msgid "select a keyword file" msgstr "选择关键字文件" -#: ../src/libs/tagging.c:2501 +#: ../src/libs/tagging.c:2532 msgid "error importing tags" msgstr "导入标签错误" -#: ../src/libs/tagging.c:2503 +#: ../src/libs/tagging.c:2534 #, c-format msgid "%zd tags imported" msgstr "已导入 %zd 个标签" -#: ../src/libs/tagging.c:2524 +#: ../src/libs/tagging.c:2555 msgid "select file to export to" msgstr "选择导出目标文件" -#: ../src/libs/tagging.c:2538 +#: ../src/libs/tagging.c:2569 msgid "error exporting tags" msgstr "导出标签错误" -#: ../src/libs/tagging.c:2540 +#: ../src/libs/tagging.c:2571 #, c-format msgid "%zd tags exported" msgstr "已导出 %zd 个标签" -#: ../src/libs/tagging.c:2964 +#: ../src/libs/tagging.c:2995 msgid "drop to root" msgstr "下降到根节点" -#: ../src/libs/tagging.c:3100 +#: ../src/libs/tagging.c:3131 msgid "" "attached tags\n" "press Delete or double-click to detach\n" @@ -23205,47 +23894,47 @@ "鼠标右键以对选中标签进行其他操作,\n" "Tab 键选中当前项" -#: ../src/libs/tagging.c:3111 +#: ../src/libs/tagging.c:3142 msgid "attach" msgstr "附加" -#: ../src/libs/tagging.c:3112 +#: ../src/libs/tagging.c:3143 msgid "attach tag to all selected images" msgstr "给所有选中的图片加上标签" -#: ../src/libs/tagging.c:3115 +#: ../src/libs/tagging.c:3146 msgid "detach" msgstr "分离" -#: ../src/libs/tagging.c:3116 +#: ../src/libs/tagging.c:3147 msgid "detach tag from all selected images" msgstr "从所有选中的图片去除标签" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "toggle list with / without hierarchy" msgstr "切换带/不带层次结构的列表" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "hide" msgstr "隐藏" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "toggle sort by name or by count" msgstr "切换按名称或按计数排序" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "sort" msgstr "排序" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "toggle show or not darktable tags" msgstr "开关 darktable 标签显示" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "dttags" msgstr "darktable标签" -#: ../src/libs/tagging.c:3149 +#: ../src/libs/tagging.c:3180 msgid "" "enter tag name\n" "press Enter to create a new tag and attach it on selected images\n" @@ -23257,11 +23946,11 @@ "Tab键或向下(Down)键选择第一个匹配的标签\n" "Shift+Tab键选择第一个已添加的用户标签" -#: ../src/libs/tagging.c:3160 ../src/libs/tagging.c:3166 +#: ../src/libs/tagging.c:3191 ../src/libs/tagging.c:3197 msgid "clear entry" msgstr "清除输入数据" -#: ../src/libs/tagging.c:3213 +#: ../src/libs/tagging.c:3244 msgid "" "tag dictionary,\n" "Enter or double-click to attach selected tag on selected images\n" @@ -23277,46 +23966,46 @@ "右键单击以对选中标签进行其他操作,\n" "Shift+Tab 键选中当前项" -#: ../src/libs/tagging.c:3248 +#: ../src/libs/tagging.c:3279 msgid "" "create a new tag with the\n" "name you entered" msgstr "输入名称创建一个新的标签" -#: ../src/libs/tagging.c:3251 +#: ../src/libs/tagging.c:3282 msgid "import tags from a Lightroom keyword file" msgstr "从 Lighttoom 关键字文件导入标签" -#: ../src/libs/tagging.c:3254 +#: ../src/libs/tagging.c:3285 msgid "export all tags to a Lightroom keyword file" msgstr "将所有标签导出到Lightroom关键字文件" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "toggle list / tree view" msgstr "切换列表/树视图" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "tree" msgstr "树" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "toggle list with / without suggestion" msgstr "切换带/不带建议的列表" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "suggestion" msgstr "建议" -#: ../src/libs/tagging.c:3282 +#: ../src/libs/tagging.c:3313 msgid "redo last tag" msgstr "重做上一个标签" -#: ../src/libs/tagging.c:3365 +#: ../src/libs/tagging.c:3396 msgid "" "tag shortcut is not active with tag tree view. please switch to list view" msgstr "标签树状视图内打标快捷键不可用。请切换至列表视图" -#: ../src/libs/tagging.c:3469 +#: ../src/libs/tagging.c:3500 msgid "tagging settings" msgstr "标签设定" @@ -23333,27 +24022,6 @@ msgid "toggle color label of selected images" msgstr "切换所选图像的颜色标签" -#: ../src/libs/tools/darktable.c:284 -#, c-format -msgid "copyright (c) the authors 2009-%s" -msgstr "版权所有 (c) 贡献者 2009-%s" - -#: ../src/libs/tools/darktable.c:288 -msgid "organize and develop images from digital cameras" -msgstr "组织并处理数码相机导出的图片" - -#: ../src/libs/tools/darktable.c:300 -msgid "all those of you that made previous releases possible" -msgstr "所有过去版本的贡献者" - -#: ../src/libs/tools/darktable.c:305 -msgid "and..." -msgstr "与……" - -#: ../src/libs/tools/darktable.c:307 -msgid "translator-credits" -msgstr "翻译贡献者" - #: ../src/libs/tools/filmstrip.c:45 msgid "filmstrip" msgstr "胶卷条" @@ -23668,35 +24336,35 @@ msgid "click to enter culling layout in dynamic mode." msgstr "单击以进入动态模式的删减布局。" -#: ../src/libs/tools/lighttable.c:368 +#: ../src/libs/tools/lighttable.c:365 msgid "toggle filemanager layout" msgstr "切换文件管理器布局" -#: ../src/libs/tools/lighttable.c:371 +#: ../src/libs/tools/lighttable.c:368 msgid "click to enter filemanager layout." msgstr "单击以进入文件管理器布局。" -#: ../src/libs/tools/lighttable.c:377 +#: ../src/libs/tools/lighttable.c:374 msgid "toggle zoomable lighttable layout" msgstr "切换缩放光台布局" -#: ../src/libs/tools/lighttable.c:380 +#: ../src/libs/tools/lighttable.c:377 msgid "click to enter zoomable lighttable layout." msgstr "单击以进入缩放光台布局。" -#: ../src/libs/tools/lighttable.c:386 +#: ../src/libs/tools/lighttable.c:383 msgid "toggle culling mode" msgstr "开启和关闭‘挑选’模式" -#: ../src/libs/tools/lighttable.c:394 +#: ../src/libs/tools/lighttable.c:391 msgid "toggle culling dynamic mode" msgstr "开启和关闭‘挑选’动态模式" -#: ../src/libs/tools/lighttable.c:441 +#: ../src/libs/tools/lighttable.c:438 msgid "toggle culling zoom mode" msgstr "切换‘挑选’预览的缩放模式" -#: ../src/libs/tools/lighttable.c:443 +#: ../src/libs/tools/lighttable.c:440 msgid "exit current layout" msgstr "退出当前布局" @@ -23777,7 +24445,7 @@ msgid "Lua options" msgstr "Lua 选项" -#: ../src/views/darkroom.c:607 +#: ../src/views/darkroom.c:503 #, c-format msgid "" "darktable could not load `%s', switching to lighttable now.\n" @@ -23797,62 +24465,62 @@ "若 darktable 确实支持此相机,请考虑在 https://github.com/darktable-org/" "darktable 报告问题" -#: ../src/views/darkroom.c:625 +#: ../src/views/darkroom.c:521 #, c-format msgctxt "darkroom" msgid "loading `%s' ..." msgstr "正在加载“%s”……" -#: ../src/views/darkroom.c:749 ../src/views/darkroom.c:2496 +#: ../src/views/darkroom.c:668 ../src/views/darkroom.c:2335 msgid "gamut check" msgstr "色域检查" -#: ../src/views/darkroom.c:749 +#: ../src/views/darkroom.c:668 msgid "soft proof" msgstr "软打样" #. fail :( -#: ../src/views/darkroom.c:787 ../src/views/print.c:356 +#: ../src/views/darkroom.c:708 ../src/views/print.c:356 msgid "no image to open!" msgstr "没有要打开的图像!" -#: ../src/views/darkroom.c:1331 +#: ../src/views/darkroom.c:1232 msgid "no user-defined presets for favorite modules were found" msgstr "收藏模块尚无用户自定义预置" -#: ../src/views/darkroom.c:1476 +#: ../src/views/darkroom.c:1377 msgid "no styles have been created yet" msgstr "还没有创建样式" -#: ../src/views/darkroom.c:2331 ../src/views/darkroom.c:2332 +#: ../src/views/darkroom.c:2170 ../src/views/darkroom.c:2171 msgid "quick access to presets" msgstr "快速访问预设" -#: ../src/views/darkroom.c:2340 +#: ../src/views/darkroom.c:2179 msgid "quick access to styles" msgstr "快速访问样式" -#: ../src/views/darkroom.c:2342 +#: ../src/views/darkroom.c:2181 msgid "quick access for applying any of your styles" msgstr "快速访问并应用您的样式" -#: ../src/views/darkroom.c:2348 +#: ../src/views/darkroom.c:2187 msgid "second window" msgstr "第二窗口" -#: ../src/views/darkroom.c:2351 +#: ../src/views/darkroom.c:2190 msgid "display a second darkroom image window" msgstr "显示第二个暗房图像窗口" -#: ../src/views/darkroom.c:2356 +#: ../src/views/darkroom.c:2195 msgid "color assessment" msgstr "色彩评估" -#: ../src/views/darkroom.c:2359 +#: ../src/views/darkroom.c:2198 msgid "toggle ISO 12646 color assessment conditions" msgstr "切换ISO 12646颜色评估条件" -#: ../src/views/darkroom.c:2372 +#: ../src/views/darkroom.c:2211 msgid "" "toggle raw over exposed indication\n" "right click for options" @@ -23860,27 +24528,27 @@ "切换RAW过曝的指示\n" "右键查看选项" -#: ../src/views/darkroom.c:2388 +#: ../src/views/darkroom.c:2227 msgid "select how to mark the clipped pixels" msgstr "选择如何标记划分出的过曝或欠曝像素" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with CFA color" msgstr "用色彩滤波阵列来标记" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with solid color" msgstr "用纯色来标记" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "false color" msgstr "用伪色来标记" -#: ../src/views/darkroom.c:2393 ../src/views/darkroom.c:2444 +#: ../src/views/darkroom.c:2232 ../src/views/darkroom.c:2283 msgid "color scheme" msgstr "配色方案" -#: ../src/views/darkroom.c:2394 +#: ../src/views/darkroom.c:2233 msgid "" "select the solid color to indicate over exposure.\n" "will only be used if mode = mark with solid color" @@ -23888,34 +24556,34 @@ "选择以纯色指示过曝\n" "仅当模式为‘用纯色来标记’时才有效果" -#: ../src/views/darkroom.c:2397 +#: ../src/views/darkroom.c:2236 msgctxt "solidcolor" msgid "red" msgstr "红" -#: ../src/views/darkroom.c:2398 +#: ../src/views/darkroom.c:2237 msgctxt "solidcolor" msgid "green" msgstr "绿" -#: ../src/views/darkroom.c:2399 +#: ../src/views/darkroom.c:2238 msgctxt "solidcolor" msgid "blue" msgstr "蓝" -#: ../src/views/darkroom.c:2400 +#: ../src/views/darkroom.c:2239 msgctxt "solidcolor" msgid "black" msgstr "黑" -#: ../src/views/darkroom.c:2408 +#: ../src/views/darkroom.c:2247 msgid "" "threshold of what shall be considered overexposed\n" "1.0 - white level\n" "0.0 - black level" msgstr "应被作为曝光过度部分的阈值" -#: ../src/views/darkroom.c:2422 +#: ../src/views/darkroom.c:2261 msgid "" "toggle clipping indication\n" "right click for options" @@ -23923,11 +24591,11 @@ "切换欠曝过曝提示\n" "右键查看选项" -#: ../src/views/darkroom.c:2437 +#: ../src/views/darkroom.c:2276 msgid "clipping preview mode" msgstr "裁剪预览模式" -#: ../src/views/darkroom.c:2438 +#: ../src/views/darkroom.c:2277 msgid "" "select the metric you want to preview\n" "full gamut is the combination of all other modes" @@ -23935,39 +24603,39 @@ "选择要预览的度量\n" "“全色域”是所有其他模式的组合" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "full gamut" msgstr "全色域" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "any RGB channel" msgstr "任何RGB通道" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "luminance only" msgstr "仅亮度" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "saturation only" msgstr "仅饱和度" -#: ../src/views/darkroom.c:2445 +#: ../src/views/darkroom.c:2284 msgid "select colors to indicate clipping" msgstr "选择表现提示的颜色" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "red & blue" msgstr "红蓝" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "purple & green" msgstr "紫绿" -#: ../src/views/darkroom.c:2454 +#: ../src/views/darkroom.c:2293 msgid "lower threshold" msgstr "降低阈值" -#: ../src/views/darkroom.c:2455 +#: ../src/views/darkroom.c:2294 msgid "" "clipping threshold for the black point,\n" "in EV, relatively to white (0 EV).\n" @@ -23986,11 +24654,11 @@ "典型的彩色光面印刷品,黑色定位为 -8.00 EV;\n" "典型的黑白光面印刷品,黑色定位为 -9.00 EV。" -#: ../src/views/darkroom.c:2471 +#: ../src/views/darkroom.c:2310 msgid "upper threshold" msgstr "增加阈值" -#: ../src/views/darkroom.c:2473 +#: ../src/views/darkroom.c:2312 #, no-c-format msgid "" "clipping threshold for the white point.\n" @@ -23999,11 +24667,11 @@ "调整白点的划分阈值。\n" "100%为峰值中等亮度。" -#: ../src/views/darkroom.c:2485 +#: ../src/views/darkroom.c:2324 msgid "softproof" msgstr "软打样" -#: ../src/views/darkroom.c:2488 +#: ../src/views/darkroom.c:2327 msgid "" "toggle softproofing\n" "right click for profile options" @@ -24011,7 +24679,7 @@ "切换软打样\n" "右键查看配置文件选项" -#: ../src/views/darkroom.c:2499 +#: ../src/views/darkroom.c:2338 msgid "" "toggle gamut checking\n" "right click for profile options" @@ -24019,46 +24687,54 @@ "切换色域检查\n" "右键查看配置文件选项" -#: ../src/views/darkroom.c:2524 ../src/views/darkroom.c:2526 -#: ../src/views/darkroom.c:2540 ../src/views/darkroom.c:2541 -#: ../src/views/darkroom.c:2542 ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2365 ../src/views/darkroom.c:2367 +#: ../src/views/darkroom.c:2381 ../src/views/darkroom.c:2382 +#: ../src/views/darkroom.c:2383 ../src/views/darkroom.c:2384 #: ../src/views/lighttable.c:1182 ../src/views/lighttable.c:1184 msgid "profiles" msgstr "色彩配置文件" -#: ../src/views/darkroom.c:2526 ../src/views/lighttable.c:1184 +#: ../src/views/darkroom.c:2367 ../src/views/lighttable.c:1184 msgid "preview intent" msgstr "预览目的" -#: ../src/views/darkroom.c:2540 ../src/views/lighttable.c:1188 +#: ../src/views/darkroom.c:2381 ../src/views/lighttable.c:1188 msgid "display profile" msgstr "显示配置文件" -#: ../src/views/darkroom.c:2541 ../src/views/lighttable.c:1191 +#: ../src/views/darkroom.c:2382 ../src/views/lighttable.c:1191 msgid "preview display profile" msgstr "预览显示配置文件" -#: ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2384 msgid "histogram profile" msgstr "直方图配置" -#: ../src/views/darkroom.c:2605 ../src/views/lighttable.c:1225 +#: ../src/views/darkroom.c:2391 +msgid "second preview window ISO 12646 color assessment" +msgstr "在第二个窗口中打开 ISO 12646 颜色评估环境" + +#: ../src/views/darkroom.c:2393 +msgid "color assessment second preview" +msgstr "打开第二个色彩评估窗口" + +#: ../src/views/darkroom.c:2452 ../src/views/lighttable.c:1225 msgid "display ICC profiles" msgstr "用于显示的 ICC 配置文件" -#: ../src/views/darkroom.c:2609 ../src/views/lighttable.c:1229 +#: ../src/views/darkroom.c:2456 ../src/views/lighttable.c:1229 msgid "preview display ICC profiles" msgstr "用于预览显示的 ICC 配置文件" -#: ../src/views/darkroom.c:2613 +#: ../src/views/darkroom.c:2460 msgid "softproof ICC profiles" msgstr "软打样 ICC 配置" -#: ../src/views/darkroom.c:2617 +#: ../src/views/darkroom.c:2464 msgid "histogram and color picker ICC profiles" msgstr "直方图和颜色选择器的 ICC 配置文件" -#: ../src/views/darkroom.c:2651 +#: ../src/views/darkroom.c:2497 msgid "" "toggle guide lines\n" "right click for guides options" @@ -24067,137 +24743,137 @@ "右键查看参考线选项" #. Fullscreen preview key -#: ../src/views/darkroom.c:2668 +#: ../src/views/darkroom.c:2514 msgid "full preview" msgstr "全屏预览" #. add an option to allow skip mouse events while other overlays are consuming mouse actions -#: ../src/views/darkroom.c:2672 +#: ../src/views/darkroom.c:2518 msgid "force pan/zoom/rotate with mouse" msgstr "使用鼠标强制平移/缩放/旋转" #. Zoom shortcuts -#: ../src/views/darkroom.c:2684 +#: ../src/views/darkroom.c:2530 msgid "zoom close-up" msgstr "拉近缩放" #. zoom in/out #. zoom in/out/min/max -#: ../src/views/darkroom.c:2687 ../src/views/lighttable.c:1283 +#: ../src/views/darkroom.c:2533 ../src/views/lighttable.c:1283 msgid "zoom in" msgstr "放大" -#: ../src/views/darkroom.c:2688 ../src/views/lighttable.c:1285 +#: ../src/views/darkroom.c:2534 ../src/views/lighttable.c:1285 msgid "zoom out" msgstr "缩小" #. Shortcut to skip images -#: ../src/views/darkroom.c:2691 +#: ../src/views/darkroom.c:2537 msgid "image forward" msgstr "前进一张图" -#: ../src/views/darkroom.c:2692 +#: ../src/views/darkroom.c:2538 msgid "image back" msgstr "后退一张图" #. cycle overlay colors -#: ../src/views/darkroom.c:2695 +#: ../src/views/darkroom.c:2541 msgid "cycle overlay colors" msgstr "循环覆盖颜色" #. toggle visibility of drawn masks for current gui module -#: ../src/views/darkroom.c:2698 +#: ../src/views/darkroom.c:2544 msgid "show drawn masks" msgstr "显示绘制的遮罩" #. brush size +/- -#: ../src/views/darkroom.c:2701 +#: ../src/views/darkroom.c:2547 msgid "increase brush size" msgstr "加大画笔尺寸" -#: ../src/views/darkroom.c:2702 +#: ../src/views/darkroom.c:2548 msgid "decrease brush size" msgstr "减小画笔尺寸" #. brush hardness +/- -#: ../src/views/darkroom.c:2705 +#: ../src/views/darkroom.c:2551 msgid "increase brush hardness" msgstr "增加笔刷硬度" -#: ../src/views/darkroom.c:2706 +#: ../src/views/darkroom.c:2552 msgid "decrease brush hardness" msgstr "降低笔刷硬度" #. brush opacity +/- -#: ../src/views/darkroom.c:2709 +#: ../src/views/darkroom.c:2555 msgid "increase brush opacity" msgstr "增加笔刷不透明度" -#: ../src/views/darkroom.c:2710 +#: ../src/views/darkroom.c:2556 msgid "decrease brush opacity" msgstr "降低笔刷不透明度" #. undo/redo -#: ../src/views/darkroom.c:2713 ../src/views/lighttable.c:1275 +#: ../src/views/darkroom.c:2559 ../src/views/lighttable.c:1275 #: ../src/views/map.c:2115 msgid "undo" msgstr "撤销" -#: ../src/views/darkroom.c:2714 ../src/views/lighttable.c:1276 +#: ../src/views/darkroom.c:2560 ../src/views/lighttable.c:1276 #: ../src/views/map.c:2116 msgid "redo" msgstr "重做" #. change the precision for adjusting sliders with keyboard shortcuts -#: ../src/views/darkroom.c:2717 +#: ../src/views/darkroom.c:2563 msgid "change keyboard shortcut slider precision" msgstr "更改键盘快捷键滑块精度" -#: ../src/views/darkroom.c:3989 +#: ../src/views/darkroom.c:3565 msgid "keyboard shortcut slider precision: fine" msgstr "键盘快捷键滑块的精度:高" -#: ../src/views/darkroom.c:3991 +#: ../src/views/darkroom.c:3567 msgid "keyboard shortcut slider precision: normal" msgstr "键盘快捷键滑块的精度:中" -#: ../src/views/darkroom.c:3993 +#: ../src/views/darkroom.c:3569 msgid "keyboard shortcut slider precision: coarse" msgstr "键盘快捷键滑块的精度:低" -#: ../src/views/darkroom.c:4009 +#: ../src/views/darkroom.c:3584 msgid "switch to lighttable" msgstr "转到光台" -#: ../src/views/darkroom.c:4010 ../src/views/lighttable.c:882 +#: ../src/views/darkroom.c:3585 ../src/views/lighttable.c:882 msgid "zoom in the image" msgstr "放大图像" -#: ../src/views/darkroom.c:4011 +#: ../src/views/darkroom.c:3586 msgid "unbounded zoom in the image" msgstr "无限放大图像" -#: ../src/views/darkroom.c:4012 +#: ../src/views/darkroom.c:3587 msgid "zoom to 100% 200% and back" msgstr "缩放到 100% 200% 然后返回" -#: ../src/views/darkroom.c:4013 ../src/views/lighttable.c:885 +#: ../src/views/darkroom.c:3588 ../src/views/lighttable.c:885 msgid "pan a zoomed image" msgstr "在放大的图像上平移" -#: ../src/views/darkroom.c:4015 ../src/views/lighttable.c:927 +#: ../src/views/darkroom.c:3590 ../src/views/lighttable.c:927 msgid "[modules] expand module without closing others" msgstr "展开模块时不折叠其他模块" -#: ../src/views/darkroom.c:4016 ../src/views/lighttable.c:928 +#: ../src/views/darkroom.c:3591 ../src/views/lighttable.c:928 msgid "[modules] expand module and close others" msgstr "展开模块时折叠其他模块" -#: ../src/views/darkroom.c:4018 +#: ../src/views/darkroom.c:3593 msgid "[modules] rename module" msgstr "重命名模块" -#: ../src/views/darkroom.c:4020 +#: ../src/views/darkroom.c:3595 msgid "[modules] change module position in pipe" msgstr "更改模块在处理管线中的位置" @@ -24342,58 +25018,58 @@ msgid "print" msgstr "打印" -#: ../src/views/slideshow.c:353 +#: ../src/views/slideshow.c:355 msgid "end of images" msgstr "图像放映结束" -#: ../src/views/slideshow.c:374 +#: ../src/views/slideshow.c:376 msgid "end of images. press any key to return to lighttable mode" msgstr "已播放全部图像。按任意按键回到光台模式" -#: ../src/views/slideshow.c:504 +#: ../src/views/slideshow.c:509 msgid "waiting to start slideshow" msgstr "等待幻灯片开始" -#: ../src/views/slideshow.c:640 ../src/views/slideshow.c:661 -#: ../src/views/slideshow.c:669 +#: ../src/views/slideshow.c:678 ../src/views/slideshow.c:705 +#: ../src/views/slideshow.c:713 msgid "slideshow paused" msgstr "幻灯播放已暂停" -#: ../src/views/slideshow.c:648 ../src/views/slideshow.c:655 +#: ../src/views/slideshow.c:686 ../src/views/slideshow.c:696 #, c-format msgid "slideshow delay set to %d second" msgid_plural "slideshow delay set to %d seconds" msgstr[0] "幻灯切换延时已设定为 %d 秒" -#: ../src/views/slideshow.c:684 +#: ../src/views/slideshow.c:728 msgid "start and stop" msgstr "开始/停止" -#: ../src/views/slideshow.c:685 +#: ../src/views/slideshow.c:730 msgid "exit slideshow" msgstr "退出幻灯" -#: ../src/views/slideshow.c:688 +#: ../src/views/slideshow.c:734 msgid "slow down" msgstr "减速" -#: ../src/views/slideshow.c:691 +#: ../src/views/slideshow.c:738 msgid "speed up" msgstr "加速" -#: ../src/views/slideshow.c:695 +#: ../src/views/slideshow.c:743 msgid "step forward" msgstr "前进" -#: ../src/views/slideshow.c:696 +#: ../src/views/slideshow.c:745 msgid "step back" msgstr "后退" -#: ../src/views/slideshow.c:702 +#: ../src/views/slideshow.c:753 msgid "go to next image" msgstr "下一张图像" -#: ../src/views/slideshow.c:703 +#: ../src/views/slideshow.c:755 msgid "go to previous image" msgstr "前一张图像" @@ -24406,51 +25082,277 @@ msgid "no camera with tethering support available for use..." msgstr "未找到支持连机拍摄的相机……" -#: ../src/views/view.c:1193 +#: ../src/views/view.c:1352 msgid "left click" msgstr "单击左键" -#: ../src/views/view.c:1196 +#: ../src/views/view.c:1355 msgid "right click" msgstr "单击右键" -#: ../src/views/view.c:1199 +#: ../src/views/view.c:1358 msgid "middle click" msgstr "单击鼠标中键" -#: ../src/views/view.c:1205 +#: ../src/views/view.c:1364 msgid "left double-click" msgstr "左键双击" -#: ../src/views/view.c:1208 +#: ../src/views/view.c:1367 msgid "right double-click" msgstr "右键双击" -#: ../src/views/view.c:1211 +#: ../src/views/view.c:1370 msgid "drag and drop" msgstr "拖放" -#: ../src/views/view.c:1214 +#: ../src/views/view.c:1373 msgid "left click+drag" msgstr "左键单击 + 拖动" -#: ../src/views/view.c:1217 +#: ../src/views/view.c:1376 msgid "right click+drag" msgstr "右键单击 + 拖动" -#: ../src/views/view.c:1237 +#: ../src/views/view.c:1398 msgid "darktable - accels window" msgstr "darktable - 快捷键窗口" -#: ../src/views/view.c:1285 +#: ../src/views/view.c:1447 msgid "switch to a classic window which will stay open after key release" msgstr "切换至经典窗口,此窗口在放开按键后也保持显示" #. we add the mouse actions too -#: ../src/views/view.c:1344 +#: ../src/views/view.c:1514 msgid "mouse actions" msgstr "鼠标行为" +#~ msgctxt "preferences" +#~ msgid "nothing" +#~ msgstr "空" + +#~ msgctxt "preferences" +#~ msgid "memory size" +#~ msgstr "内存大小" + +#~ msgctxt "preferences" +#~ msgid "memory transfer" +#~ msgstr "内存传输" + +#~ msgctxt "preferences" +#~ msgid "memory size and transfer" +#~ msgstr "内存大小和传输" + +#~ msgctxt "preferences" +#~ msgid "id" +#~ msgstr "id" + +#~ msgctxt "preferences" +#~ msgid "folder" +#~ msgstr "文件夹" + +#~ msgid "" +#~ "when having raw+JPEG images together in one directory it makes no sense " +#~ "to import both. with this flag one can ignore all JPEGs found." +#~ msgstr "" +#~ "在目录中同时有 raw 和 JPEG 格式时,两者都导入是没有意义的。此选项会忽略发" +#~ "现的所有 JPEG 文件。" + +#~ msgid "tune OpenCL performance" +#~ msgstr "调整 OpenCL 性能" + +#~ msgid "" +#~ "allows runtime tuning of OpenCL devices:\n" +#~ " - 'memory size': uses a fixed headroom (400MB as default),\n" +#~ " - 'memory transfer': tries a faster memory access mode (pinned memory) " +#~ "used for tiling." +#~ msgstr "" +#~ "允许对 OpenCL 设备进行运行时调整:\n" +#~ " - “内存大小”将会预留固定量的内存(默认为 400MB),\n" +#~ " - “内存传输”将会尝试使用更快内存访问模式(固定内存)以便网格化并行处理。" + +#~ msgid "write sidecar file for each image" +#~ msgstr "为每个图片写入附属文件" + +#~ msgid "" +#~ "if an instance of the module has focus, apply shortcut to that instance\n" +#~ "note: blending shortcuts always apply to the focused instance" +#~ msgstr "" +#~ "如果一个模块的实例被选中,快捷键将被应用到那个实例\n" +#~ "注意:混合功能快捷键会始终被应用到当前实例上" + +#~ msgid "distortion fine-tune" +#~ msgstr "失真微调" + +#~ msgid "vignetting fine-tune" +#~ msgstr "渐晕微调" + +#~ msgid "TCA red fine-tune" +#~ msgstr "TCA 红色微调" + +#~ msgid "TCA blue fine-tune" +#~ msgstr "TCA 蓝色微调" + +#~ msgid "tiff" +#~ msgstr "tiff" + +#~ msgid "png" +#~ msgstr "png" + +#~ msgid "j2k" +#~ msgstr "j2k" + +#~ msgid "jpeg" +#~ msgstr "jpeg" + +#~ msgid "exr" +#~ msgstr "exr" + +#~ msgid "rgbe" +#~ msgstr "rgbe" + +#~ msgid "pfm" +#~ msgstr "pfm" + +#~ msgid "netpnm" +#~ msgstr "netpnm" + +#~ msgid "avif" +#~ msgstr "avif" + +#~ msgid "heif" +#~ msgstr "heif" + +#~ msgid "libraw" +#~ msgstr "libraw" + +#~ msgid "webp" +#~ msgstr "webp" + +#~ msgid "jpeg xl" +#~ msgstr "jpeg xl" + +#~ msgid "" +#~ "due to a slow GPU hardware acceleration using OpenCL has been deactivated" +#~ msgstr "由于 GPU 性能不足,OpenCL 硬件加速已禁用" + +#~ msgid "" +#~ "multiple GPUs detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "检测到多个 GPU - 已调整 OpenCL 调度配置" + +#~ msgid "" +#~ "very fast GPU detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "检测高性能 GPU - 已调整 OpenCL 调度配置" + +#~ msgid "" +#~ "darktable discovered problems with your OpenCL setup; disabling OpenCL " +#~ "for this session!" +#~ msgstr "darktable 检测到 OpenCL 设置出现问题;OpenCL 已在此次会话中禁用!" + +#~ msgid "no-op" +#~ msgstr "无操作" + +#~ msgid "RGB colors" +#~ msgstr "RGB 颜色" + +#~ msgid "compression type" +#~ msgstr "压缩方式" + +#~ msgid "jp2" +#~ msgstr "jp2" + +#~ msgid "b&w image" +#~ msgstr "黑白图片" + +#~ msgid "write RGB colors" +#~ msgstr "写入 RGB 颜色" + +#~ msgid "write grayscale" +#~ msgstr "写入灰阶" + +#~ msgid "spot color mapping" +#~ msgstr "专色映射 (Spot Color Mapping)" + +#~ msgid "spot mode" +#~ msgstr "点模式" + +#~ msgid "" +#~ "tone equalizer needs to be after distortion modules in the pipeline – " +#~ "disabled" +#~ msgstr "在处理管线中,色调均衡器需要置于失真模块之后 - 已禁用" + +#~ msgid "reference to which the marker should be scaled to" +#~ msgstr "相对于选中对象的尺寸按制定比例缩放水印" + +#~ msgid "length of the marker which is used as scaling reference" +#~ msgstr "将水印边长用作缩放参考" + +#~ msgid "save" +#~ msgstr "保存" + +#~ msgid "add" +#~ msgstr "添加" + +#~ msgid "only" +#~ msgstr "仅此" + +#~ msgid "selected image[s]" +#~ msgstr "选中的图片" + +#~ msgid "hardness (relative)" +#~ msgstr "硬度(相对值)" + +#~ msgid "hardness (absolute)" +#~ msgstr "硬度 (绝对值)" + +#~ msgid "opacity (relative)" +#~ msgstr "不透明度(相对值)" + +#~ msgid "opacity (absolute)" +#~ msgstr "不透明度(绝对值)" + +#~ msgid "brush size (relative)" +#~ msgstr "笔刷尺寸(相对值)" + +#~ msgid "low" +#~ msgstr "低" + +#~ msgid "medium" +#~ msgstr "中" + +#~ msgid "high" +#~ msgstr "高" + +#~ msgid "" +#~ "pen pressure control for brush masks\n" +#~ "'off': pressure reading ignored,\n" +#~ "'hardness'/'opacity'/'brush size': pressure reading controls specified " +#~ "attribute,\n" +#~ "'absolute'/'relative': pressure reading is taken directly as attribute " +#~ "value or multiplied with pre-defined setting." +#~ msgstr "" +#~ "笔刷蒙板压感选项\n" +#~ "关闭:忽略压感读数,\n" +#~ "硬度/不透明度/笔刷大小:压感读数控制指定属性,\n" +#~ "绝对/相对:将压感读数直接作为属性值,或与预定义设置相乘。" + +#~ msgid "" +#~ "smoothing of brush strokes\n" +#~ "stronger smoothing leads to fewer nodes and easier editing but with lower " +#~ "control of accuracy." +#~ msgstr "" +#~ "设置笔刷的平滑度。\n" +#~ "更强的平滑会导致更少的节点并更容易编辑,但精度控制会更低。" + +#~ msgid "<leave unchanged>" +#~ msgstr "<保持不变>" + +#, c-format +#~ msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" +#~ msgstr "%.1f 毫米(等效全幅 %.1f 毫米,裁切系数 %.1f)" + #~ msgid "_yes, physically delete" #~ msgstr "是,从磁盘上物理删除 (_y)" @@ -24520,12 +25422,6 @@ #~ msgid "rgb colors" #~ msgstr "rgb 颜色" -#~ msgid "set the custom aspect ratio" -#~ msgstr "设置自定义高宽比" - -#~ msgid "rgb parade" -#~ msgstr "rgb parade" - #~ msgid "rotate 90 degrees ccw" #~ msgstr "逆时针旋转90度" @@ -25033,9 +25929,6 @@ #~ msgid "lift chroma" #~ msgstr "提升色度" -#~ msgid "lift hue" -#~ msgstr "提升色调" - #~ msgid "power luminance" #~ msgstr "乘方亮度" @@ -25069,9 +25962,6 @@ #~ msgid "chroma highlights" #~ msgstr "色度高光" -#~ msgid "chroma global" -#~ msgstr "色度全局" - #~ msgid "chroma mid-tones" #~ msgstr "色度中间调" @@ -25200,9 +26090,6 @@ #~ msgid "preview is only possible for zoom lower than 200%%" #~ msgstr "只能在小于 200%% 的锁放下使用预览" -#~ msgid "actual selection" -#~ msgstr "实际选择" - #~ msgid "v3.0" #~ msgstr "v3.0" @@ -25514,9 +26401,6 @@ #~ msgid "grey" #~ msgstr "灰" -#~ msgid "white balance settings" -#~ msgstr "白平衡设置" - #, c-format #~ msgid "%.0f mired" #~ msgstr "%.0f 微倒度(色温单位)" @@ -27774,9 +28658,6 @@ #~ msgid "existing duplicates" #~ msgstr "已有的副本" -#~ msgid "export selected" -#~ msgstr "导出选中的" - #~ msgid "" #~ "maximum output width\n" #~ "set to 0 for no scaling" @@ -27875,9 +28756,6 @@ #~ msgid "import folders recursively" #~ msgstr "递归导入文件夹" -#~ msgid "no supported devices found" -#~ msgstr "没有发现支持的设备" - #~ msgid "import options" #~ msgstr "导入选项" @@ -28217,9 +29095,6 @@ #~ "to run from recent to older" #~ msgstr "将文件夹、时间和日期的默认集合列表顺序从“最近”更改为“较旧”" -#~ msgid "color manage cached thumbnails" -#~ msgstr "颜色管理缓存的缩略图" - #~ msgid "" #~ "if enabled, cached thumbnails will be color managed so that lighttable " #~ "and filmstrip can show correct colors. otherwise the results may look " @@ -28466,10 +29341,6 @@ #~ "\n" #~ msgctxt "accel" -#~ msgid "replace metadata" -#~ msgstr "替换元数据" - -#~ msgctxt "accel" #~ msgid "views/thumbtable/clear color labels" #~ msgstr "视图/缩略图窗口/清除颜色标签" @@ -28648,9 +29519,6 @@ #~ "下面三项设置定义了导入存储和图像的目录结构和文件重命名格式;如果你不知道如" #~ "何使用,请保持默认设置。" -#~ msgid "storage directory" -#~ msgstr "存储目录" - #~ msgid "directory structure" #~ msgstr "目录结构" @@ -29342,9 +30210,6 @@ #~ msgid "blend hue (0 is same as clipping)" #~ msgstr "混合色相(0等同于裁剪)" -#~ msgid "blend L" -#~ msgstr "混合L" - #~ msgid "blend C" #~ msgstr "混合C" diff -Nru darktable-4.4.2/po/zh_TW.po darktable-4.6.1/po/zh_TW.po --- darktable-4.4.2/po/zh_TW.po 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/po/zh_TW.po 2024-02-16 17:31:09.000000000 +0000 @@ -1,9 +1,9 @@ msgid "" msgstr "" -"Project-Id-Version: darktable 4.4\n" +"Project-Id-Version: darktable 4.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-31 13:24+0200\n" -"PO-Revision-Date: 2023-06-06 11:03+0800\n" +"POT-Creation-Date: 2023-11-30 19:32+0100\n" +"PO-Revision-Date: 2023-12-01 16:50+0800\n" "Last-Translator: Hsu Kang-Wei <beblue.shi@gmail.com>\n" "Language-Team: \n" "Language: zh_TW\n" @@ -13,287 +13,250 @@ "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.3.1\n" -#: ../build/bin/conf_gen.h:172 ../build/bin/preferences_gen.h:7632 +#: ../build/bin/conf_gen.h:174 msgctxt "preferences" msgid "first instance" msgstr "第一個模組實例" -#: ../build/bin/conf_gen.h:173 ../build/bin/preferences_gen.h:7637 -#: ../build/bin/preferences_gen.h:7656 +#: ../build/bin/conf_gen.h:175 ../build/bin/preferences_gen.h:7922 msgctxt "preferences" msgid "last instance" msgstr "最後一個模組實例" -#: ../build/bin/conf_gen.h:240 ../build/bin/conf_gen.h:346 -#: ../build/bin/conf_gen.h:356 ../build/bin/conf_gen.h:1186 -#: ../build/bin/conf_gen.h:1202 ../build/bin/preferences_gen.h:4137 -#: ../build/bin/preferences_gen.h:4156 ../build/bin/preferences_gen.h:4232 -#: ../build/bin/preferences_gen.h:6706 ../build/bin/preferences_gen.h:6834 -#: ../build/bin/preferences_gen.h:6899 +#: ../build/bin/conf_gen.h:252 ../build/bin/conf_gen.h:352 +#: ../build/bin/conf_gen.h:362 ../build/bin/conf_gen.h:1239 +#: ../build/bin/conf_gen.h:1255 ../build/bin/conf_gen.h:1275 +#: ../build/bin/preferences_gen.h:4747 ../build/bin/preferences_gen.h:4885 msgctxt "preferences" msgid "never" msgstr "絕不" -#: ../build/bin/conf_gen.h:241 ../build/bin/preferences_gen.h:6711 +#: ../build/bin/conf_gen.h:253 msgctxt "preferences" msgid "once a month" msgstr "每月一次" -#: ../build/bin/conf_gen.h:242 ../build/bin/preferences_gen.h:6716 -#: ../build/bin/preferences_gen.h:6745 +#: ../build/bin/conf_gen.h:254 ../build/bin/preferences_gen.h:7138 msgctxt "preferences" msgid "once a week" msgstr "每週一次" -#: ../build/bin/conf_gen.h:243 ../build/bin/preferences_gen.h:6721 +#: ../build/bin/conf_gen.h:255 msgctxt "preferences" msgid "once a day" msgstr "每天一次" -#: ../build/bin/conf_gen.h:244 ../build/bin/preferences_gen.h:6726 +#: ../build/bin/conf_gen.h:256 msgctxt "preferences" msgid "on close" msgstr "關閉時" -#: ../build/bin/conf_gen.h:280 ../build/bin/conf_gen.h:1179 -#: ../build/bin/conf_gen.h:1195 ../build/bin/preferences_gen.h:4102 -#: ../build/bin/preferences_gen.h:4197 ../build/bin/preferences_gen.h:5748 +#: ../build/bin/conf_gen.h:292 ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1248 ../build/bin/conf_gen.h:1276 msgctxt "preferences" msgid "small" msgstr "低" -#: ../build/bin/conf_gen.h:281 ../build/bin/conf_gen.h:393 -#: ../build/bin/preferences_gen.h:5753 ../build/bin/preferences_gen.h:5782 -#: ../build/bin/preferences_gen.h:5969 ../build/bin/preferences_gen.h:5998 +#: ../build/bin/conf_gen.h:293 ../build/bin/conf_gen.h:405 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6223 msgctxt "preferences" msgid "default" msgstr "中" -#: ../build/bin/conf_gen.h:282 ../build/bin/conf_gen.h:2814 -#: ../build/bin/preferences_gen.h:5758 +#: ../build/bin/conf_gen.h:294 ../build/bin/conf_gen.h:2904 msgctxt "preferences" msgid "large" msgstr "高" -#: ../build/bin/conf_gen.h:283 ../build/bin/preferences_gen.h:5763 +#: ../build/bin/conf_gen.h:295 msgctxt "preferences" msgid "unrestricted" msgstr "無上限" -#: ../build/bin/conf_gen.h:347 ../build/bin/preferences_gen.h:6839 +#: ../build/bin/conf_gen.h:353 msgctxt "preferences" msgid "after edit" msgstr "編輯後" -#: ../build/bin/conf_gen.h:348 ../build/bin/preferences_gen.h:6844 -#: ../build/bin/preferences_gen.h:6863 +#: ../build/bin/conf_gen.h:354 ../build/bin/preferences_gen.h:7224 msgctxt "preferences" msgid "on import" msgstr "匯入時" -#: ../build/bin/conf_gen.h:357 ../build/bin/conf_gen.h:1178 -#: ../build/bin/conf_gen.h:1194 ../build/bin/conf_gen.h:3214 -#: ../build/bin/preferences_gen.h:4097 ../build/bin/preferences_gen.h:4192 -#: ../build/bin/preferences_gen.h:5112 ../build/bin/preferences_gen.h:5166 -#: ../build/bin/preferences_gen.h:6904 +#: ../build/bin/conf_gen.h:363 ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1247 ../build/bin/conf_gen.h:3300 +#: ../build/bin/preferences_gen.h:5644 msgctxt "preferences" msgid "always" msgstr "一律" -#: ../build/bin/conf_gen.h:358 ../build/bin/preferences_gen.h:6909 -#: ../build/bin/preferences_gen.h:6928 +#: ../build/bin/conf_gen.h:364 ../build/bin/preferences_gen.h:7259 msgctxt "preferences" msgid "only large entries" msgstr "僅大型文件" -#: ../build/bin/conf_gen.h:378 ../build/bin/preferences_gen.h:8069 +#: ../build/bin/conf_gen.h:390 msgctxt "preferences" msgid "sensitive" msgstr "區分大小寫" -#: ../build/bin/conf_gen.h:379 ../build/bin/preferences_gen.h:8074 -#: ../build/bin/preferences_gen.h:8093 +#: ../build/bin/conf_gen.h:391 ../build/bin/preferences_gen.h:8133 msgctxt "preferences" msgid "insensitive" msgstr "大小寫視作相同" -#: ../build/bin/conf_gen.h:394 ../build/bin/preferences_gen.h:5974 +#: ../build/bin/conf_gen.h:406 msgctxt "preferences" msgid "multiple GPUs" msgstr "多張顯示卡" -#: ../build/bin/conf_gen.h:395 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/conf_gen.h:407 msgctxt "preferences" msgid "very fast GPU" msgstr "高階的顯示卡" -#: ../build/bin/conf_gen.h:403 ../build/bin/preferences_gen.h:6040 -#: ../build/bin/preferences_gen.h:6074 +#: ../build/bin/conf_gen.h:755 msgctxt "preferences" -msgid "nothing" -msgstr "不調整(預設)" - -#: ../build/bin/conf_gen.h:404 ../build/bin/preferences_gen.h:6045 -msgctxt "preferences" -msgid "memory size" -msgstr "記憶體容量" - -#: ../build/bin/conf_gen.h:405 ../build/bin/preferences_gen.h:6050 -msgctxt "preferences" -msgid "memory transfer" -msgstr "記憶體傳輸" - -#: ../build/bin/conf_gen.h:406 ../build/bin/preferences_gen.h:6055 -msgctxt "preferences" -msgid "memory size and transfer" -msgstr "記憶體空間和傳輸" +msgid "import time" +msgstr "匯入時間" -#: ../build/bin/conf_gen.h:706 ../build/bin/preferences_gen.h:8257 -#: ../build/bin/preferences_gen.h:8281 +#: ../build/bin/conf_gen.h:756 msgctxt "preferences" -msgid "id" -msgstr "識別碼" +msgid "folder name" +msgstr "依檔名排列" -#: ../build/bin/conf_gen.h:707 ../build/bin/preferences_gen.h:8262 -msgctxt "preferences" -msgid "folder" -msgstr "資料夾" - -#: ../build/bin/conf_gen.h:721 +#: ../build/bin/conf_gen.h:770 msgctxt "preferences" msgid "RGB" msgstr "RGB" -#: ../build/bin/conf_gen.h:722 +#: ../build/bin/conf_gen.h:771 msgctxt "preferences" msgid "Lab" msgstr "L*a*b*" -#: ../build/bin/conf_gen.h:723 +#: ../build/bin/conf_gen.h:772 msgctxt "preferences" msgid "LCh" msgstr "LCh" -#: ../build/bin/conf_gen.h:724 +#: ../build/bin/conf_gen.h:773 msgctxt "preferences" msgid "HSL" msgstr "HSL" -#: ../build/bin/conf_gen.h:725 +#: ../build/bin/conf_gen.h:774 msgctxt "preferences" msgid "Hex" msgstr "十六進位值" -#: ../build/bin/conf_gen.h:726 ../build/bin/conf_gen.h:1830 -#: ../build/bin/conf_gen.h:2488 ../build/bin/conf_gen.h:2790 -#: ../build/bin/conf_gen.h:3044 ../build/bin/preferences_gen.h:5577 -#: ../build/bin/preferences_gen.h:6561 +#: ../build/bin/conf_gen.h:775 ../build/bin/conf_gen.h:1916 +#: ../build/bin/conf_gen.h:2578 ../build/bin/conf_gen.h:2880 +#: ../build/bin/conf_gen.h:3136 msgctxt "preferences" msgid "none" msgstr "無" -#: ../build/bin/conf_gen.h:734 +#: ../build/bin/conf_gen.h:783 msgctxt "preferences" msgid "mean" msgstr "平均" -#: ../build/bin/conf_gen.h:735 +#: ../build/bin/conf_gen.h:784 msgctxt "preferences" msgid "min" msgstr "最小" -#: ../build/bin/conf_gen.h:736 +#: ../build/bin/conf_gen.h:785 msgctxt "preferences" msgid "max" msgstr "最大" -#: ../build/bin/conf_gen.h:924 +#: ../build/bin/conf_gen.h:973 msgid "select only new pictures" msgstr "只選取新的影像" -#: ../build/bin/conf_gen.h:925 +#: ../build/bin/conf_gen.h:974 msgid "only select images that have not already been imported" msgstr "只選取尚未匯入的影像" -#: ../build/bin/conf_gen.h:930 -msgid "ignore JPEG images" -msgstr "忽略 JPEG 檔案" +#: ../build/bin/conf_gen.h:979 +msgid "ignore non-raw images" +msgstr "忽略非 RAW 檔案" -#: ../build/bin/conf_gen.h:931 +#: ../build/bin/conf_gen.h:980 msgid "" -"when having raw+JPEG images together in one directory it makes no sense to " -"import both. with this flag one can ignore all JPEGs found." -msgstr "" -"忽略所有的 JPEG 檔案,不會顯示在檔案列表上\n" -"因為資料夾內若同時有 RAW + JPEG 時,沒有必要兩個檔案都匯入" +"if enabled, only raw files will be allowed to import. non-raw files will not " +"be visible in the dialog and will not be imported." +msgstr "啟用後僅能匯入 RAW 檔案,非 RAW 檔案將不可見且不會被匯入。" -#: ../build/bin/conf_gen.h:936 +#: ../build/bin/conf_gen.h:985 msgid "apply metadata" msgstr "套用詮釋資料" -#: ../build/bin/conf_gen.h:937 +#: ../build/bin/conf_gen.h:986 msgid "apply some metadata to all newly imported images." msgstr "套用詮釋資料到所有新匯入的影像" -#: ../build/bin/conf_gen.h:942 +#: ../build/bin/conf_gen.h:991 msgid "recursive directory" msgstr "搜尋子資料夾" -#: ../build/bin/conf_gen.h:943 +#: ../build/bin/conf_gen.h:992 msgid "recursive directory traversal when importing filmrolls" msgstr "匯入時包含下層子資料夾內的影像" -#: ../build/bin/conf_gen.h:948 +#: ../build/bin/conf_gen.h:997 msgid "creator to be applied when importing" msgstr "匯入時同步設定創作者" -#: ../build/bin/conf_gen.h:954 +#: ../build/bin/conf_gen.h:1003 msgid "publisher to be applied when importing" msgstr "匯入時同步設定發布者" -#: ../build/bin/conf_gen.h:960 +#: ../build/bin/conf_gen.h:1009 msgid "rights to be applied when importing" msgstr "匯入時同步設定版權" -#: ../build/bin/conf_gen.h:966 +#: ../build/bin/conf_gen.h:1015 msgid "comma separated tags to be applied when importing" msgstr "匯入時同步設定標籤" -#: ../build/bin/conf_gen.h:972 +#: ../build/bin/conf_gen.h:1021 msgid "import tags from XMP" msgstr "從 XMP 匯入標籤" -#: ../build/bin/conf_gen.h:998 +#: ../build/bin/conf_gen.h:1051 msgid "initial rating" msgstr "預設評分" -#: ../build/bin/conf_gen.h:999 +#: ../build/bin/conf_gen.h:1052 msgid "initial star rating for all images when importing a filmroll" msgstr "所有影像匯入的預設評分(星級)" -#: ../build/bin/conf_gen.h:1004 +#: ../build/bin/conf_gen.h:1057 msgid "ignore EXIF rating" msgstr "忽略 EXIF 的評分" -#: ../build/bin/conf_gen.h:1005 +#: ../build/bin/conf_gen.h:1058 msgid "" "ignore EXIF rating. if not set and EXIF rating is found, it overrides " "'initial rating'" msgstr "如未勾選且 EXIF 內有評分資料,會以 EXIF 的評分取代預設評分設定" -#: ../build/bin/conf_gen.h:1010 +#: ../build/bin/conf_gen.h:1063 msgid "import job" msgstr "匯入作業" -#: ../build/bin/conf_gen.h:1011 +#: ../build/bin/conf_gen.h:1064 msgid "name of the import job" msgstr "匯入作業的名稱" -#: ../build/bin/conf_gen.h:1016 +#: ../build/bin/conf_gen.h:1069 msgid "override today's date" msgstr "替換為今天的日期" -#: ../build/bin/conf_gen.h:1017 +#: ../build/bin/conf_gen.h:1070 msgid "" "type a date in the form: YYYY:MM:DD[ hh:mm:ss[.sss]] if you want to override " "the current date/time used when expanding variables:\n" @@ -305,672 +268,718 @@ "$(YEAR)、$(MONTH)、$(DAY)、$(HOUR)、$(MINUTE)、$(SECONDS)、$(MSEC)\n" "如不更動請留空" -#: ../build/bin/conf_gen.h:1022 +#: ../build/bin/conf_gen.h:1075 msgid "keep this window open" msgstr "保持視窗開啟" -#: ../build/bin/conf_gen.h:1023 +#: ../build/bin/conf_gen.h:1076 msgid "keep this window open to run several imports" msgstr "讓視窗保持開啟狀態以執行多個匯入作業" -#: ../build/bin/conf_gen.h:1180 ../build/bin/conf_gen.h:1196 -#: ../build/bin/preferences_gen.h:4107 ../build/bin/preferences_gen.h:4202 +#: ../build/bin/conf_gen.h:1233 ../build/bin/conf_gen.h:1249 +#: ../build/bin/conf_gen.h:1277 msgctxt "preferences" msgid "VGA" msgstr "VGA (480P - 640x480)" -#: ../build/bin/conf_gen.h:1181 ../build/bin/conf_gen.h:1197 -#: ../build/bin/preferences_gen.h:4112 ../build/bin/preferences_gen.h:4207 -#: ../build/bin/preferences_gen.h:4251 +#: ../build/bin/conf_gen.h:1234 ../build/bin/conf_gen.h:1250 +#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4782 msgctxt "preferences" msgid "720p" msgstr "HD (720p - 1280x720)" -#: ../build/bin/conf_gen.h:1182 ../build/bin/conf_gen.h:1198 -#: ../build/bin/preferences_gen.h:4117 ../build/bin/preferences_gen.h:4212 +#: ../build/bin/conf_gen.h:1235 ../build/bin/conf_gen.h:1251 +#: ../build/bin/conf_gen.h:1279 msgctxt "preferences" msgid "1080p" msgstr "FHD (1080p - 1920x1080)" -#: ../build/bin/conf_gen.h:1183 ../build/bin/conf_gen.h:1199 -#: ../build/bin/preferences_gen.h:4122 ../build/bin/preferences_gen.h:4217 +#: ../build/bin/conf_gen.h:1236 ../build/bin/conf_gen.h:1252 +#: ../build/bin/conf_gen.h:1280 msgctxt "preferences" msgid "WQXGA" msgstr "WQXGA (2560x1600)" -#: ../build/bin/conf_gen.h:1184 ../build/bin/conf_gen.h:1200 -#: ../build/bin/preferences_gen.h:4127 ../build/bin/preferences_gen.h:4222 +#: ../build/bin/conf_gen.h:1237 ../build/bin/conf_gen.h:1253 +#: ../build/bin/conf_gen.h:1281 msgctxt "preferences" msgid "4K" msgstr "4K UHD (3840×2160)" -#: ../build/bin/conf_gen.h:1185 ../build/bin/conf_gen.h:1201 -#: ../build/bin/preferences_gen.h:4132 ../build/bin/preferences_gen.h:4227 +#: ../build/bin/conf_gen.h:1238 ../build/bin/conf_gen.h:1254 +#: ../build/bin/conf_gen.h:1282 msgctxt "preferences" msgid "5K" msgstr "5K (5120x2880)" -#: ../build/bin/conf_gen.h:1228 +#: ../build/bin/conf_gen.h:1314 msgctxt "preferences" msgid "off" msgstr "關閉" -#: ../build/bin/conf_gen.h:1229 +#: ../build/bin/conf_gen.h:1315 msgctxt "preferences" msgid "hardness (relative)" msgstr "硬度(相對值)" -#: ../build/bin/conf_gen.h:1230 +#: ../build/bin/conf_gen.h:1316 msgctxt "preferences" msgid "hardness (absolute)" msgstr "硬度(絕對值)" -#: ../build/bin/conf_gen.h:1231 +#: ../build/bin/conf_gen.h:1317 msgctxt "preferences" msgid "opacity (relative)" msgstr "透明度(相對值)" -#: ../build/bin/conf_gen.h:1232 +#: ../build/bin/conf_gen.h:1318 msgctxt "preferences" msgid "opacity (absolute)" msgstr "透明度(絕對值)" -#: ../build/bin/conf_gen.h:1233 +#: ../build/bin/conf_gen.h:1319 msgctxt "preferences" msgid "brush size (relative)" msgstr "筆刷尺寸(相對值)" -#: ../build/bin/conf_gen.h:1241 +#: ../build/bin/conf_gen.h:1327 msgctxt "preferences" msgid "low" msgstr "低" -#: ../build/bin/conf_gen.h:1242 +#: ../build/bin/conf_gen.h:1328 msgctxt "preferences" msgid "medium" msgstr "中" -#: ../build/bin/conf_gen.h:1243 +#: ../build/bin/conf_gen.h:1329 msgctxt "preferences" msgid "high" msgstr "高" -#: ../build/bin/conf_gen.h:1263 ../build/bin/preferences_gen.h:4836 -#: ../build/bin/preferences_gen.h:4860 +#: ../build/bin/conf_gen.h:1349 ../build/bin/preferences_gen.h:5405 msgctxt "preferences" msgid "false color" msgstr "偽色" -#: ../build/bin/conf_gen.h:1264 ../build/bin/preferences_gen.h:4841 +#: ../build/bin/conf_gen.h:1350 msgctxt "preferences" msgid "grayscale" msgstr "灰階" -#: ../build/bin/conf_gen.h:1278 ../build/bin/preferences_gen.h:4567 +#: ../build/bin/conf_gen.h:1364 msgctxt "preferences" msgid "top left" msgstr "左上" -#: ../build/bin/conf_gen.h:1279 ../build/bin/preferences_gen.h:4572 +#: ../build/bin/conf_gen.h:1365 msgctxt "preferences" msgid "top right" msgstr "右上" -#: ../build/bin/conf_gen.h:1280 ../build/bin/preferences_gen.h:4577 +#: ../build/bin/conf_gen.h:1366 msgctxt "preferences" msgid "top center" msgstr "中上" -#: ../build/bin/conf_gen.h:1281 ../build/bin/preferences_gen.h:4582 -#: ../build/bin/preferences_gen.h:4606 +#: ../build/bin/conf_gen.h:1367 ../build/bin/preferences_gen.h:5217 msgctxt "preferences" msgid "bottom" msgstr "下方" -#: ../build/bin/conf_gen.h:1282 ../build/bin/preferences_gen.h:4587 +#: ../build/bin/conf_gen.h:1368 msgctxt "preferences" msgid "hidden" msgstr "隱藏" -#: ../build/bin/conf_gen.h:1792 +#: ../build/bin/conf_gen.h:1878 msgid "show OSD" msgstr "顯示地圖控制鈕" -#: ../build/bin/conf_gen.h:1793 +#: ../build/bin/conf_gen.h:1879 msgid "toggle the visibility of the map overlays" msgstr "控制是否在地圖的左上角顯示地圖控制鈕" -#: ../build/bin/conf_gen.h:1798 ../src/libs/map_settings.c:146 +#: ../build/bin/conf_gen.h:1884 ../src/libs/map_settings.c:119 msgid "filtered images" msgstr "篩選影像" -#: ../build/bin/conf_gen.h:1799 +#: ../build/bin/conf_gen.h:1885 msgid "when set limit the images drawn to the current filmstrip" msgstr "" "啟用時僅在地圖上顯示符合目前篩選條件的影像,未勾選時顯示所有已匯入的影像" -#: ../build/bin/conf_gen.h:1806 +#: ../build/bin/conf_gen.h:1892 msgid "max images" msgstr "最多影像數量" -#: ../build/bin/conf_gen.h:1807 +#: ../build/bin/conf_gen.h:1893 msgid "the maximum number of image thumbnails drawn on the map" msgstr "地圖上顯示的縮圖數量上限" -#: ../build/bin/conf_gen.h:1814 +#: ../build/bin/conf_gen.h:1900 msgid "group size factor" msgstr "群組縮放比例" -#: ../build/bin/conf_gen.h:1815 +#: ../build/bin/conf_gen.h:1901 msgid "" "increase or decrease the spatial size of images groups on the map. can " "influence the calculation time" msgstr "調整群組影像顯示的大小,此選項會影響計算效能" -#: ../build/bin/conf_gen.h:1822 +#: ../build/bin/conf_gen.h:1908 msgid "min images per group" msgstr "群組最少影像數" -#: ../build/bin/conf_gen.h:1823 +#: ../build/bin/conf_gen.h:1909 msgid "" "the minimum number of images to set up an images group. can influence the " "calculation time." msgstr "單一影像群組包含的最少影像數量,此選項會影響計算效能" -#: ../build/bin/conf_gen.h:1828 +#: ../build/bin/conf_gen.h:1914 msgctxt "preferences" msgid "thumbnail" msgstr "縮圖" -#: ../build/bin/conf_gen.h:1829 +#: ../build/bin/conf_gen.h:1915 msgctxt "preferences" msgid "count" msgstr "數量" -#: ../build/bin/conf_gen.h:1832 ../src/libs/map_settings.c:159 +#: ../build/bin/conf_gen.h:1918 msgid "thumbnail display" msgstr "縮圖顯示" -#: ../build/bin/conf_gen.h:1833 +#: ../build/bin/conf_gen.h:1919 msgid "" "three options are available: images thumbnails, only the count of images of " "the group or nothing" msgstr "選擇縮圖的顯示方式" -#: ../build/bin/conf_gen.h:1844 +#: ../build/bin/conf_gen.h:1930 msgid "max polygon points" msgstr "多邊形節點數量上限" -#: ../build/bin/conf_gen.h:1845 +#: ../build/bin/conf_gen.h:1931 msgid "" "limit the number of points imported with polygon in find location module" msgstr "限制顯示的多邊形節點數以獲取較高效能" -#: ../build/bin/conf_gen.h:2135 ../build/bin/preferences_gen.h:4722 -#: ../build/bin/preferences_gen.h:4756 +#: ../build/bin/conf_gen.h:2221 ../build/bin/preferences_gen.h:5329 msgctxt "preferences" msgid "original" msgstr "完整解析度" -#: ../build/bin/conf_gen.h:2136 ../build/bin/preferences_gen.h:4727 +#: ../build/bin/conf_gen.h:2222 msgctxt "preferences" msgid "to 1/2" msgstr "降至 1/2" -#: ../build/bin/conf_gen.h:2137 ../build/bin/preferences_gen.h:4732 +#: ../build/bin/conf_gen.h:2223 msgctxt "preferences" msgid "to 1/3" msgstr "降至 1/3" -#: ../build/bin/conf_gen.h:2138 ../build/bin/preferences_gen.h:4737 +#: ../build/bin/conf_gen.h:2224 msgctxt "preferences" msgid "to 1/4" msgstr "降至 1/4" -#: ../build/bin/conf_gen.h:2152 ../build/bin/conf_gen.h:2162 -#: ../build/bin/preferences_gen.h:5384 ../build/bin/preferences_gen.h:5449 +#: ../build/bin/conf_gen.h:2244 ../build/bin/conf_gen.h:2254 msgctxt "preferences" msgid "bilinear" msgstr "雙線性 bilinear" -#: ../build/bin/conf_gen.h:2153 ../build/bin/conf_gen.h:2163 -#: ../build/bin/preferences_gen.h:5389 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5454 +#: ../build/bin/conf_gen.h:2245 ../build/bin/conf_gen.h:2255 +#: ../build/bin/preferences_gen.h:5847 msgctxt "preferences" msgid "bicubic" msgstr "雙立方 bicubic" -#: ../build/bin/conf_gen.h:2154 ../build/bin/conf_gen.h:2164 -#: ../build/bin/preferences_gen.h:5394 ../build/bin/preferences_gen.h:5459 +#: ../build/bin/conf_gen.h:2246 ../build/bin/conf_gen.h:2256 msgctxt "preferences" msgid "lanczos2" msgstr "lanczos2" -#: ../build/bin/conf_gen.h:2165 ../build/bin/preferences_gen.h:5464 -#: ../build/bin/preferences_gen.h:5483 +#: ../build/bin/conf_gen.h:2257 ../build/bin/preferences_gen.h:5882 msgctxt "preferences" msgid "lanczos3" msgstr "lanczos3" -#: ../build/bin/conf_gen.h:2487 ../build/bin/conf_gen.h:3217 -#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:6556 -#: ../build/bin/preferences_gen.h:6592 +#: ../build/bin/conf_gen.h:2577 ../build/bin/conf_gen.h:3303 +#: ../build/bin/preferences_gen.h:7032 msgctxt "preferences" msgid "auto" msgstr "自動" -#: ../build/bin/conf_gen.h:2489 ../build/bin/preferences_gen.h:6566 +#: ../build/bin/conf_gen.h:2579 msgctxt "preferences" msgid "libsecret" msgstr "libsecret" -#: ../build/bin/conf_gen.h:2490 ../build/bin/preferences_gen.h:6572 +#: ../build/bin/conf_gen.h:2580 msgctxt "preferences" msgid "kwallet" msgstr "kwallet" -#: ../build/bin/conf_gen.h:2700 +#: ../build/bin/conf_gen.h:2790 msgctxt "preferences" msgid "vectorscope" msgstr "彩度圖" -#: ../build/bin/conf_gen.h:2701 +#: ../build/bin/conf_gen.h:2791 msgctxt "preferences" msgid "waveform" msgstr "波形圖" -#: ../build/bin/conf_gen.h:2702 +#: ../build/bin/conf_gen.h:2792 msgctxt "preferences" msgid "RGB parade" msgstr "RGB 並列波形圖" -#: ../build/bin/conf_gen.h:2703 +#: ../build/bin/conf_gen.h:2793 msgctxt "preferences" msgid "histogram" msgstr "直方圖" -#: ../build/bin/conf_gen.h:2711 ../build/bin/preferences_gen.h:7264 +#: ../build/bin/conf_gen.h:2801 msgctxt "preferences" msgid "left" msgstr "左側欄" -#: ../build/bin/conf_gen.h:2712 ../build/bin/preferences_gen.h:7269 -#: ../build/bin/preferences_gen.h:7288 +#: ../build/bin/conf_gen.h:2802 ../build/bin/preferences_gen.h:7619 msgctxt "preferences" msgid "right" msgstr "右側欄" -#: ../build/bin/conf_gen.h:2720 ../build/bin/conf_gen.h:2757 +#: ../build/bin/conf_gen.h:2810 ../build/bin/conf_gen.h:2847 msgctxt "preferences" msgid "logarithmic" msgstr "對數(感知)" -#: ../build/bin/conf_gen.h:2721 ../build/bin/conf_gen.h:2758 +#: ../build/bin/conf_gen.h:2811 ../build/bin/conf_gen.h:2848 msgctxt "preferences" msgid "linear" msgstr "線性(強度)" -#: ../build/bin/conf_gen.h:2729 +#: ../build/bin/conf_gen.h:2819 msgctxt "preferences" msgid "horizontal" msgstr "水平" -#: ../build/bin/conf_gen.h:2730 +#: ../build/bin/conf_gen.h:2820 msgctxt "preferences" msgid "vertical" msgstr "垂直" -#: ../build/bin/conf_gen.h:2738 +#: ../build/bin/conf_gen.h:2828 msgctxt "preferences" msgid "overlaid" msgstr "覆蓋" -#: ../build/bin/conf_gen.h:2739 +#: ../build/bin/conf_gen.h:2829 msgctxt "preferences" msgid "parade" msgstr "並列" -#: ../build/bin/conf_gen.h:2747 +#: ../build/bin/conf_gen.h:2837 msgctxt "preferences" msgid "u*v*" msgstr "CIELUV" -#: ../build/bin/conf_gen.h:2748 +#: ../build/bin/conf_gen.h:2838 msgctxt "preferences" msgid "AzBz" msgstr "Jz az bz" -#: ../build/bin/conf_gen.h:2749 +#: ../build/bin/conf_gen.h:2839 msgctxt "preferences" msgid "RYB" msgstr "繪畫三原色" -#: ../build/bin/conf_gen.h:2791 +#: ../build/bin/conf_gen.h:2881 msgctxt "preferences" msgid "monochromatic" msgstr "單色" -#: ../build/bin/conf_gen.h:2792 +#: ../build/bin/conf_gen.h:2882 msgctxt "preferences" msgid "analogous" msgstr "相近色" -#: ../build/bin/conf_gen.h:2793 +#: ../build/bin/conf_gen.h:2883 msgctxt "preferences" msgid "analogous complementary" msgstr "相近補色" -#: ../build/bin/conf_gen.h:2794 +#: ../build/bin/conf_gen.h:2884 msgctxt "preferences" msgid "complementary" msgstr "互補色" -#: ../build/bin/conf_gen.h:2795 +#: ../build/bin/conf_gen.h:2885 msgctxt "preferences" msgid "split complementary" msgstr "分離補色" -#: ../build/bin/conf_gen.h:2796 +#: ../build/bin/conf_gen.h:2886 msgctxt "preferences" msgid "dyad" msgstr "分離相近色" -#: ../build/bin/conf_gen.h:2797 +#: ../build/bin/conf_gen.h:2887 msgctxt "preferences" msgid "triad" msgstr "三等分" -#: ../build/bin/conf_gen.h:2798 +#: ../build/bin/conf_gen.h:2888 msgctxt "preferences" msgid "tetrad" msgstr "雙互補色" -#: ../build/bin/conf_gen.h:2799 +#: ../build/bin/conf_gen.h:2889 msgctxt "preferences" msgid "square" msgstr "四等分" -#: ../build/bin/conf_gen.h:2813 +#: ../build/bin/conf_gen.h:2903 msgctxt "preferences" msgid "normal" msgstr "一般" -#: ../build/bin/conf_gen.h:2815 +#: ../build/bin/conf_gen.h:2905 msgctxt "preferences" msgid "narrow" msgstr "窄" -#: ../build/bin/conf_gen.h:2816 +#: ../build/bin/conf_gen.h:2906 msgctxt "preferences" msgid "line" msgstr "線" -#: ../build/bin/conf_gen.h:2956 +#: ../build/bin/conf_gen.h:3046 msgctxt "preferences" msgid "mm" msgstr "公釐" -#: ../build/bin/conf_gen.h:2957 +#: ../build/bin/conf_gen.h:3047 msgctxt "preferences" msgid "cm" msgstr "公分" -#: ../build/bin/conf_gen.h:2958 +#: ../build/bin/conf_gen.h:3048 msgctxt "preferences" msgid "inch" msgstr "英寸" -#: ../build/bin/conf_gen.h:3003 ../build/bin/preferences_gen.h:7324 -#: ../build/bin/preferences_gen.h:7353 +#: ../build/bin/conf_gen.h:3093 ../build/bin/preferences_gen.h:7654 msgctxt "preferences" msgid "all" msgstr "全部" -#: ../build/bin/conf_gen.h:3004 ../build/bin/preferences_gen.h:7329 +#: ../build/bin/conf_gen.h:3094 msgctxt "preferences" msgid "xatom" msgstr "xatom" -#: ../build/bin/conf_gen.h:3005 ../build/bin/preferences_gen.h:7334 +#: ../build/bin/conf_gen.h:3095 msgctxt "preferences" msgid "colord" msgstr "colord" -#: ../build/bin/conf_gen.h:3041 ../build/bin/preferences_gen.h:5562 -#: ../build/bin/preferences_gen.h:5596 +#: ../build/bin/conf_gen.h:3133 ../build/bin/preferences_gen.h:5958 msgctxt "preferences" msgid "scene-referred (filmic)" msgstr "場景參照(底片式階調映射)" -#: ../build/bin/conf_gen.h:3042 ../build/bin/preferences_gen.h:5567 +#: ../build/bin/conf_gen.h:3134 msgctxt "preferences" msgid "scene-referred (sigmoid)" msgstr "場景參照(S 形曲線階調映射)" -#: ../build/bin/conf_gen.h:3043 ../build/bin/preferences_gen.h:5572 +#: ../build/bin/conf_gen.h:3135 msgctxt "preferences" msgid "display-referred (legacy)" msgstr "顯示參照(傳統流程)" -#: ../build/bin/conf_gen.h:3144 +#: ../build/bin/conf_gen.h:3230 msgid "camera time zone" msgstr "相機時區" -#: ../build/bin/conf_gen.h:3145 +#: ../build/bin/conf_gen.h:3231 msgid "" "most cameras don't store the time zone in EXIF. give the correct time zone " "so the GPX data can be correctly matched" msgstr "" "大多數的相機不會在 EXIF 裡儲存時區資料,指定正確的時區以便 GPX 資料與實際相符" -#: ../build/bin/conf_gen.h:3156 +#: ../build/bin/conf_gen.h:3242 msgctxt "preferences" msgid "no color" msgstr "沒有顏色" -#: ../build/bin/conf_gen.h:3157 +#: ../build/bin/conf_gen.h:3243 msgctxt "preferences" msgid "illuminant color" msgstr "光源顏色" -#: ../build/bin/conf_gen.h:3158 +#: ../build/bin/conf_gen.h:3244 msgctxt "preferences" msgid "effect emulation" msgstr "效果模擬" -#: ../build/bin/conf_gen.h:3204 +#: ../build/bin/conf_gen.h:3290 msgctxt "preferences" msgid "list" msgstr "垂直清單" -#: ../build/bin/conf_gen.h:3205 +#: ../build/bin/conf_gen.h:3291 msgctxt "preferences" msgid "tabs" msgstr "標籤切換" -#: ../build/bin/conf_gen.h:3206 +#: ../build/bin/conf_gen.h:3292 msgctxt "preferences" msgid "columns" msgstr "水平並列" -#: ../build/bin/conf_gen.h:3215 ../build/bin/preferences_gen.h:5117 +#: ../build/bin/conf_gen.h:3301 msgctxt "preferences" msgid "active" msgstr "使用中" -#: ../build/bin/conf_gen.h:3216 ../build/bin/preferences_gen.h:5122 +#: ../build/bin/conf_gen.h:3302 msgctxt "preferences" msgid "dim" msgstr "變暗" -#: ../build/bin/conf_gen.h:3218 ../build/bin/preferences_gen.h:5132 +#: ../build/bin/conf_gen.h:3304 msgctxt "preferences" msgid "fade" msgstr "淡出" -#: ../build/bin/conf_gen.h:3219 ../build/bin/preferences_gen.h:5137 +#: ../build/bin/conf_gen.h:3305 msgctxt "preferences" msgid "fit" msgstr "符合" -#: ../build/bin/conf_gen.h:3220 ../build/bin/preferences_gen.h:5142 +#: ../build/bin/conf_gen.h:3306 msgctxt "preferences" msgid "smooth" msgstr "滑順" -#: ../build/bin/conf_gen.h:3221 ../build/bin/preferences_gen.h:5147 +#: ../build/bin/conf_gen.h:3307 msgctxt "preferences" msgid "glide" msgstr "滑動" -#: ../build/bin/preferences_gen.h:81 ../build/bin/preferences_gen.h:3823 -#: ../build/bin/preferences_gen.h:3859 ../build/bin/preferences_gen.h:3895 -#: ../build/bin/preferences_gen.h:3931 ../build/bin/preferences_gen.h:3967 -#: ../build/bin/preferences_gen.h:4003 ../build/bin/preferences_gen.h:4039 -#: ../build/bin/preferences_gen.h:4083 ../build/bin/preferences_gen.h:4178 -#: ../build/bin/preferences_gen.h:4273 ../build/bin/preferences_gen.h:4313 -#: ../build/bin/preferences_gen.h:4356 ../build/bin/preferences_gen.h:4437 -#: ../build/bin/preferences_gen.h:4473 ../build/bin/preferences_gen.h:4510 -#: ../build/bin/preferences_gen.h:4553 ../build/bin/preferences_gen.h:4627 -#: ../build/bin/preferences_gen.h:4672 ../build/bin/preferences_gen.h:4708 -#: ../build/bin/preferences_gen.h:4778 ../build/bin/preferences_gen.h:4822 -#: ../build/bin/preferences_gen.h:4882 ../build/bin/preferences_gen.h:4918 -#: ../build/bin/preferences_gen.h:4954 ../build/bin/preferences_gen.h:4990 -#: ../build/bin/preferences_gen.h:5026 ../build/bin/preferences_gen.h:5062 -#: ../build/bin/preferences_gen.h:5098 ../build/bin/preferences_gen.h:5188 -#: ../build/bin/preferences_gen.h:5224 ../build/bin/preferences_gen.h:5260 -#: ../build/bin/preferences_gen.h:5334 ../build/bin/preferences_gen.h:5370 -#: ../build/bin/preferences_gen.h:5435 ../build/bin/preferences_gen.h:5505 -#: ../build/bin/preferences_gen.h:5548 ../build/bin/preferences_gen.h:5618 -#: ../build/bin/preferences_gen.h:5654 ../build/bin/preferences_gen.h:5690 -#: ../build/bin/preferences_gen.h:5734 ../build/bin/preferences_gen.h:5805 -#: ../build/bin/preferences_gen.h:5841 ../build/bin/preferences_gen.h:5877 -#: ../build/bin/preferences_gen.h:5913 ../build/bin/preferences_gen.h:5955 -#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6140 -#: ../build/bin/preferences_gen.h:6176 ../build/bin/preferences_gen.h:6212 -#: ../build/bin/preferences_gen.h:6248 ../build/bin/preferences_gen.h:6284 -#: ../build/bin/preferences_gen.h:6320 ../build/bin/preferences_gen.h:6356 -#: ../build/bin/preferences_gen.h:6392 ../build/bin/preferences_gen.h:6427 -#: ../build/bin/preferences_gen.h:6462 ../build/bin/preferences_gen.h:6498 -#: ../build/bin/preferences_gen.h:6542 ../build/bin/preferences_gen.h:6614 -#: ../build/bin/preferences_gen.h:6692 ../build/bin/preferences_gen.h:6767 -#: ../build/bin/preferences_gen.h:6820 ../build/bin/preferences_gen.h:6885 -#: ../build/bin/preferences_gen.h:6950 ../build/bin/preferences_gen.h:7024 -#: ../build/bin/preferences_gen.h:7060 ../build/bin/preferences_gen.h:7096 -#: ../build/bin/preferences_gen.h:7132 ../build/bin/preferences_gen.h:7168 -#: ../build/bin/preferences_gen.h:7204 ../build/bin/preferences_gen.h:7250 -#: ../build/bin/preferences_gen.h:7310 ../build/bin/preferences_gen.h:7375 -#: ../build/bin/preferences_gen.h:7429 ../build/bin/preferences_gen.h:7474 -#: ../build/bin/preferences_gen.h:7510 ../build/bin/preferences_gen.h:7546 -#: ../build/bin/preferences_gen.h:7582 ../build/bin/preferences_gen.h:7618 -#: ../build/bin/preferences_gen.h:7678 ../build/bin/preferences_gen.h:7722 -#: ../build/bin/preferences_gen.h:7766 ../build/bin/preferences_gen.h:7848 -#: ../build/bin/preferences_gen.h:7888 ../build/bin/preferences_gen.h:7928 -#: ../build/bin/preferences_gen.h:7964 ../build/bin/preferences_gen.h:8019 -#: ../build/bin/preferences_gen.h:8055 ../build/bin/preferences_gen.h:8115 -#: ../build/bin/preferences_gen.h:8161 ../build/bin/preferences_gen.h:8197 -#: ../build/bin/preferences_gen.h:8243 ../build/bin/preferences_gen.h:8303 -#: ../build/bin/preferences_gen.h:8355 ../build/bin/preferences_gen.h:8401 -#: ../build/bin/preferences_gen.h:8469 ../build/bin/preferences_gen.h:8516 +#: ../build/bin/preferences_gen.h:77 ../build/bin/preferences_gen.h:4305 +#: ../build/bin/preferences_gen.h:4344 ../build/bin/preferences_gen.h:4383 +#: ../build/bin/preferences_gen.h:4417 ../build/bin/preferences_gen.h:4488 +#: ../build/bin/preferences_gen.h:4522 ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:4590 ../build/bin/preferences_gen.h:4624 +#: ../build/bin/preferences_gen.h:4658 ../build/bin/preferences_gen.h:4692 +#: ../build/bin/preferences_gen.h:4733 ../build/bin/preferences_gen.h:4768 +#: ../build/bin/preferences_gen.h:4803 ../build/bin/preferences_gen.h:4837 +#: ../build/bin/preferences_gen.h:4871 ../build/bin/preferences_gen.h:4906 +#: ../build/bin/preferences_gen.h:4940 ../build/bin/preferences_gen.h:4979 +#: ../build/bin/preferences_gen.h:5020 ../build/bin/preferences_gen.h:5093 +#: ../build/bin/preferences_gen.h:5127 ../build/bin/preferences_gen.h:5162 +#: ../build/bin/preferences_gen.h:5203 ../build/bin/preferences_gen.h:5237 +#: ../build/bin/preferences_gen.h:5281 ../build/bin/preferences_gen.h:5315 +#: ../build/bin/preferences_gen.h:5350 ../build/bin/preferences_gen.h:5391 +#: ../build/bin/preferences_gen.h:5426 ../build/bin/preferences_gen.h:5460 +#: ../build/bin/preferences_gen.h:5494 ../build/bin/preferences_gen.h:5528 +#: ../build/bin/preferences_gen.h:5562 ../build/bin/preferences_gen.h:5596 +#: ../build/bin/preferences_gen.h:5630 ../build/bin/preferences_gen.h:5665 +#: ../build/bin/preferences_gen.h:5699 ../build/bin/preferences_gen.h:5733 +#: ../build/bin/preferences_gen.h:5799 ../build/bin/preferences_gen.h:5833 +#: ../build/bin/preferences_gen.h:5868 ../build/bin/preferences_gen.h:5903 +#: ../build/bin/preferences_gen.h:5944 ../build/bin/preferences_gen.h:5979 +#: ../build/bin/preferences_gen.h:6013 ../build/bin/preferences_gen.h:6047 +#: ../build/bin/preferences_gen.h:6088 ../build/bin/preferences_gen.h:6124 +#: ../build/bin/preferences_gen.h:6165 ../build/bin/preferences_gen.h:6209 +#: ../build/bin/preferences_gen.h:6254 ../build/bin/preferences_gen.h:6305 +#: ../build/bin/preferences_gen.h:6349 ../build/bin/preferences_gen.h:6393 +#: ../build/bin/preferences_gen.h:6437 ../build/bin/preferences_gen.h:6481 +#: ../build/bin/preferences_gen.h:6525 ../build/bin/preferences_gen.h:6569 +#: ../build/bin/preferences_gen.h:6635 ../build/bin/preferences_gen.h:6669 +#: ../build/bin/preferences_gen.h:6703 ../build/bin/preferences_gen.h:6737 +#: ../build/bin/preferences_gen.h:6771 ../build/bin/preferences_gen.h:6805 +#: ../build/bin/preferences_gen.h:6839 ../build/bin/preferences_gen.h:6873 +#: ../build/bin/preferences_gen.h:6906 ../build/bin/preferences_gen.h:6939 +#: ../build/bin/preferences_gen.h:6973 ../build/bin/preferences_gen.h:7014 +#: ../build/bin/preferences_gen.h:7053 ../build/bin/preferences_gen.h:7124 +#: ../build/bin/preferences_gen.h:7159 ../build/bin/preferences_gen.h:7210 +#: ../build/bin/preferences_gen.h:7245 ../build/bin/preferences_gen.h:7280 +#: ../build/bin/preferences_gen.h:7324 ../build/bin/preferences_gen.h:7390 +#: ../build/bin/preferences_gen.h:7424 ../build/bin/preferences_gen.h:7458 +#: ../build/bin/preferences_gen.h:7492 ../build/bin/preferences_gen.h:7526 +#: ../build/bin/preferences_gen.h:7560 ../build/bin/preferences_gen.h:7605 +#: ../build/bin/preferences_gen.h:7640 ../build/bin/preferences_gen.h:7675 +#: ../build/bin/preferences_gen.h:7731 ../build/bin/preferences_gen.h:7772 +#: ../build/bin/preferences_gen.h:7806 ../build/bin/preferences_gen.h:7840 +#: ../build/bin/preferences_gen.h:7874 ../build/bin/preferences_gen.h:7908 +#: ../build/bin/preferences_gen.h:7943 ../build/bin/preferences_gen.h:7984 +#: ../build/bin/preferences_gen.h:8025 ../build/bin/preferences_gen.h:8085 +#: ../build/bin/preferences_gen.h:8119 ../build/bin/preferences_gen.h:8154 +#: ../build/bin/preferences_gen.h:8199 ../build/bin/preferences_gen.h:8233 +#: ../build/bin/preferences_gen.h:8278 ../build/bin/preferences_gen.h:8313 +#: ../build/bin/preferences_gen.h:8365 ../build/bin/preferences_gen.h:8410 +#: ../build/bin/preferences_gen.h:8480 ../build/bin/preferences_gen.h:8526 msgid "this setting has been modified" msgstr "設定已修改" #. doesn't seem to work from gtkrc -#: ../build/bin/preferences_gen.h:3793 ../build/bin/preferences_gen.h:4407 -#: ../build/bin/preferences_gen.h:5304 ../build/bin/preferences_gen.h:6110 -#: ../build/bin/preferences_gen.h:6662 ../build/bin/preferences_gen.h:6994 -#: ../build/bin/preferences_gen.h:7818 ../src/gui/accelerators.c:2724 -#: ../src/gui/gtk.c:2580 ../src/gui/preferences.c:421 -#: ../src/gui/preferences.c:876 ../src/libs/modulegroups.c:3886 +#: ../build/bin/preferences_gen.h:4277 ../build/bin/preferences_gen.h:4460 +#: ../build/bin/preferences_gen.h:5065 ../build/bin/preferences_gen.h:5771 +#: ../build/bin/preferences_gen.h:6607 ../build/bin/preferences_gen.h:7096 +#: ../build/bin/preferences_gen.h:7362 ../src/gui/accelerators.c:2996 +#: ../src/gui/gtk.c:2641 ../src/gui/preferences.c:424 +#: ../src/gui/preferences.c:874 ../src/libs/modulegroups.c:3888 msgid "?" msgstr "?" -#: ../build/bin/preferences_gen.h:3806 ../build/bin/preferences_gen.h:4420 -#: ../build/bin/preferences_gen.h:6123 ../src/gui/preferences.c:270 -msgid "general" -msgstr "一般設定" +#: ../build/bin/preferences_gen.h:4287 ../src/control/jobs/control_jobs.c:2352 +#: ../src/libs/import.c:173 +msgid "import" +msgstr "影像匯入" -#: ../build/bin/preferences_gen.h:3826 -msgid "hide built-in presets for utility modules" -msgstr "隱藏工具模組的內建預設集" +#: ../build/bin/preferences_gen.h:4289 +msgid "session options" +msgstr "工作階段選項" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4017 -#: ../build/bin/preferences_gen.h:4053 ../build/bin/preferences_gen.h:4156 -#: ../build/bin/preferences_gen.h:4251 ../build/bin/preferences_gen.h:4291 -#: ../build/bin/preferences_gen.h:4334 ../build/bin/preferences_gen.h:4377 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4531 ../build/bin/preferences_gen.h:4606 -#: ../build/bin/preferences_gen.h:4686 ../build/bin/preferences_gen.h:4756 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4860 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5040 ../build/bin/preferences_gen.h:5076 -#: ../build/bin/preferences_gen.h:5166 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5274 -#: ../build/bin/preferences_gen.h:5348 ../build/bin/preferences_gen.h:5413 -#: ../build/bin/preferences_gen.h:5483 ../build/bin/preferences_gen.h:5525 -#: ../build/bin/preferences_gen.h:5596 ../build/bin/preferences_gen.h:5632 -#: ../build/bin/preferences_gen.h:5668 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5782 ../build/bin/preferences_gen.h:5819 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:5927 ../build/bin/preferences_gen.h:5998 -#: ../build/bin/preferences_gen.h:6074 ../build/bin/preferences_gen.h:6154 -#: ../build/bin/preferences_gen.h:6190 ../build/bin/preferences_gen.h:6226 -#: ../build/bin/preferences_gen.h:6262 ../build/bin/preferences_gen.h:6298 -#: ../build/bin/preferences_gen.h:6334 ../build/bin/preferences_gen.h:6370 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:6592 ../build/bin/preferences_gen.h:6632 -#: ../build/bin/preferences_gen.h:6745 ../build/bin/preferences_gen.h:6863 -#: ../build/bin/preferences_gen.h:6928 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7146 -#: ../build/bin/preferences_gen.h:7182 ../build/bin/preferences_gen.h:7288 -#: ../build/bin/preferences_gen.h:7353 ../build/bin/preferences_gen.h:7393 -#: ../build/bin/preferences_gen.h:7443 ../build/bin/preferences_gen.h:7488 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7656 -#: ../build/bin/preferences_gen.h:7692 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:7866 ../build/bin/preferences_gen.h:7906 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:7982 -#: ../build/bin/preferences_gen.h:8033 ../build/bin/preferences_gen.h:8093 -#: ../build/bin/preferences_gen.h:8175 ../build/bin/preferences_gen.h:8281 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4308 +msgid "base directory naming pattern" +msgstr "基礎資料夾命名方式" + +#: ../build/bin/preferences_gen.h:4323 ../build/bin/preferences_gen.h:4362 +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4435 +#: ../build/bin/preferences_gen.h:4501 ../build/bin/preferences_gen.h:4535 +#: ../build/bin/preferences_gen.h:4569 ../build/bin/preferences_gen.h:4603 +#: ../build/bin/preferences_gen.h:4637 ../build/bin/preferences_gen.h:4671 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4747 +#: ../build/bin/preferences_gen.h:4782 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:4850 ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:4958 +#: ../build/bin/preferences_gen.h:4999 ../build/bin/preferences_gen.h:5040 +#: ../build/bin/preferences_gen.h:5106 ../build/bin/preferences_gen.h:5140 +#: ../build/bin/preferences_gen.h:5182 ../build/bin/preferences_gen.h:5217 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5329 +#: ../build/bin/preferences_gen.h:5363 ../build/bin/preferences_gen.h:5405 +#: ../build/bin/preferences_gen.h:5439 ../build/bin/preferences_gen.h:5473 +#: ../build/bin/preferences_gen.h:5507 ../build/bin/preferences_gen.h:5541 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5644 ../build/bin/preferences_gen.h:5678 +#: ../build/bin/preferences_gen.h:5712 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5847 +#: ../build/bin/preferences_gen.h:5882 ../build/bin/preferences_gen.h:5922 +#: ../build/bin/preferences_gen.h:5958 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6060 +#: ../build/bin/preferences_gen.h:6102 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6178 ../build/bin/preferences_gen.h:6223 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6318 +#: ../build/bin/preferences_gen.h:6362 ../build/bin/preferences_gen.h:6406 +#: ../build/bin/preferences_gen.h:6450 ../build/bin/preferences_gen.h:6494 +#: ../build/bin/preferences_gen.h:6538 ../build/bin/preferences_gen.h:6582 +#: ../build/bin/preferences_gen.h:6648 ../build/bin/preferences_gen.h:6682 +#: ../build/bin/preferences_gen.h:6716 ../build/bin/preferences_gen.h:6750 +#: ../build/bin/preferences_gen.h:6784 ../build/bin/preferences_gen.h:6818 +#: ../build/bin/preferences_gen.h:6852 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7032 +#: ../build/bin/preferences_gen.h:7071 ../build/bin/preferences_gen.h:7138 +#: ../build/bin/preferences_gen.h:7224 ../build/bin/preferences_gen.h:7259 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7505 ../build/bin/preferences_gen.h:7539 +#: ../build/bin/preferences_gen.h:7619 ../build/bin/preferences_gen.h:7654 +#: ../build/bin/preferences_gen.h:7693 ../build/bin/preferences_gen.h:7744 +#: ../build/bin/preferences_gen.h:7785 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7922 ../build/bin/preferences_gen.h:7956 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8133 ../build/bin/preferences_gen.h:8212 +#: ../build/bin/preferences_gen.h:8292 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 #, c-format msgid "double click to reset to `%s'" msgstr "雙擊以重設回「%s」" -#: ../build/bin/preferences_gen.h:3837 ../build/bin/preferences_gen.h:3873 -#: ../build/bin/preferences_gen.h:3909 ../build/bin/preferences_gen.h:3945 -#: ../build/bin/preferences_gen.h:3981 ../build/bin/preferences_gen.h:4053 -#: ../build/bin/preferences_gen.h:4451 ../build/bin/preferences_gen.h:4686 -#: ../build/bin/preferences_gen.h:4896 ../build/bin/preferences_gen.h:5040 -#: ../build/bin/preferences_gen.h:5238 ../build/bin/preferences_gen.h:5348 -#: ../build/bin/preferences_gen.h:5632 ../build/bin/preferences_gen.h:5668 -#: ../build/bin/preferences_gen.h:5819 ../build/bin/preferences_gen.h:5891 -#: ../build/bin/preferences_gen.h:6370 ../build/bin/preferences_gen.h:6964 -#: ../build/bin/preferences_gen.h:7146 ../build/bin/preferences_gen.h:7443 -#: ../build/bin/preferences_gen.h:7524 ../build/bin/preferences_gen.h:7560 -#: ../build/bin/preferences_gen.h:7596 ../build/bin/preferences_gen.h:7692 -#: ../build/bin/preferences_gen.h:7942 ../build/bin/preferences_gen.h:8033 -#: ../build/bin/preferences_gen.h:8175 +#: ../build/bin/preferences_gen.h:4326 ../build/bin/preferences_gen.h:4365 +msgid "part of full import path for an import session" +msgstr "匯入作業的儲存路徑" + +#: ../build/bin/preferences_gen.h:4347 +msgid "sub directory naming pattern" +msgstr "子資料夾命名方式" + +#: ../build/bin/preferences_gen.h:4386 +msgid "keep original filename" +msgstr "保留原始檔名" + +#: ../build/bin/preferences_gen.h:4396 ../build/bin/preferences_gen.h:4501 +#: ../build/bin/preferences_gen.h:4535 ../build/bin/preferences_gen.h:4569 +#: ../build/bin/preferences_gen.h:4603 ../build/bin/preferences_gen.h:4637 +#: ../build/bin/preferences_gen.h:4705 ../build/bin/preferences_gen.h:4850 +#: ../build/bin/preferences_gen.h:4919 ../build/bin/preferences_gen.h:5106 +#: ../build/bin/preferences_gen.h:5294 ../build/bin/preferences_gen.h:5439 +#: ../build/bin/preferences_gen.h:5575 ../build/bin/preferences_gen.h:5712 +#: ../build/bin/preferences_gen.h:5812 ../build/bin/preferences_gen.h:5992 +#: ../build/bin/preferences_gen.h:6026 ../build/bin/preferences_gen.h:6137 +#: ../build/bin/preferences_gen.h:6267 ../build/bin/preferences_gen.h:6450 +#: ../build/bin/preferences_gen.h:6494 ../build/bin/preferences_gen.h:6538 +#: ../build/bin/preferences_gen.h:6582 ../build/bin/preferences_gen.h:6852 +#: ../build/bin/preferences_gen.h:7337 ../build/bin/preferences_gen.h:7505 +#: ../build/bin/preferences_gen.h:7744 ../build/bin/preferences_gen.h:7819 +#: ../build/bin/preferences_gen.h:7853 ../build/bin/preferences_gen.h:7887 +#: ../build/bin/preferences_gen.h:7956 ../build/bin/preferences_gen.h:8098 +#: ../build/bin/preferences_gen.h:8212 msgctxt "preferences" msgid "FALSE" msgstr "否" -#: ../build/bin/preferences_gen.h:3840 +#: ../build/bin/preferences_gen.h:4399 +msgid "" +"keep original filename instead of a pattern while importing from camera or " +"card" +msgstr "從相機或記憶卡匯入時保留原始檔名而不依下項方式重命名" + +#: ../build/bin/preferences_gen.h:4420 +msgid "file naming pattern" +msgstr "檔案命名方式" + +#: ../build/bin/preferences_gen.h:4438 +msgid "file naming pattern used for a import session" +msgstr "匯入作業的檔案命名方式" + +#: ../build/bin/preferences_gen.h:4470 ../src/gui/gtk.c:1266 +#: ../src/gui/preferences.c:544 ../src/libs/tools/lighttable.c:66 +#: ../src/views/lighttable.c:91 +msgid "lighttable" +msgstr "燈箱 LightTable" + +#: ../build/bin/preferences_gen.h:4472 ../build/bin/preferences_gen.h:5077 +#: ../build/bin/preferences_gen.h:6619 ../src/gui/preferences.c:270 +msgid "general" +msgstr "一般設定" + +#: ../build/bin/preferences_gen.h:4491 +msgid "hide built-in presets for utility modules" +msgstr "隱藏工具模組的內建預設集" + +#: ../build/bin/preferences_gen.h:4504 msgid "hides built-in presets of utility modules in presets menu." msgstr "" "預設集選單只顯示用戶自定義的預設集\n" "隱藏工具模組內建的預設集" -#: ../build/bin/preferences_gen.h:3862 +#: ../build/bin/preferences_gen.h:4525 msgid "use single-click in the collections module" msgstr "在相冊模組中啟用單擊選取" -#: ../build/bin/preferences_gen.h:3876 +#: ../build/bin/preferences_gen.h:4538 msgid "" "check this option to use single-click to select items in the collections " "module. this will allow you to do range selections for date-time and numeric " @@ -979,83 +988,85 @@ "開啟此選項可在相冊模組中以滑鼠左鍵單擊選擇\n" "以便可以一次選擇多個日期或數據範圍" -#: ../build/bin/preferences_gen.h:3898 +#: ../build/bin/preferences_gen.h:4559 msgid "expand a single utility module at a time" msgstr "一次只展開一個工具模組" -#: ../build/bin/preferences_gen.h:3912 +#: ../build/bin/preferences_gen.h:4572 msgid "this option toggles the behavior of shift clicking in lighttable mode" msgstr "" "啟用此選項時,單擊展開一個模組的同時會收合其他模組\n" "如果想在不折疊其他面板的情況下展開面板,可以按住 Shift+單擊" -#: ../build/bin/preferences_gen.h:3934 +#: ../build/bin/preferences_gen.h:4593 msgid "scroll utility modules to the top when expanded" msgstr "展開工具模組時畫面滾動至模組標題" -#: ../build/bin/preferences_gen.h:3948 ../build/bin/preferences_gen.h:5079 +#: ../build/bin/preferences_gen.h:4606 ../build/bin/preferences_gen.h:5612 msgid "" "when this option is enabled then darktable will try to scroll the module to " "the top of the visible list" msgstr "啟用此選項後,在展開模組時自動調整卷軸位置讓將該模組置頂" -#: ../build/bin/preferences_gen.h:3970 +#: ../build/bin/preferences_gen.h:4627 msgid "rating an image one star twice will not zero out the rating" msgstr "對影像評兩次一星不使評分歸零" -#: ../build/bin/preferences_gen.h:3984 +#: ../build/bin/preferences_gen.h:4640 msgid "" "defines whether rating an image one star twice will zero out star rating" msgstr "" "預設情況下,對評分一顆星的影像再次評一星,會將該影像評分歸零\n" "開啟此選項可停用此功能,需以「0」將評分歸零" -#: ../build/bin/preferences_gen.h:4006 ../build/bin/preferences_gen.h:4675 +#: ../build/bin/preferences_gen.h:4661 ../build/bin/preferences_gen.h:5284 msgid "show scrollbars for central view" msgstr "顯示中央視窗的卷軸" -#: ../build/bin/preferences_gen.h:4017 ../build/bin/preferences_gen.h:4487 -#: ../build/bin/preferences_gen.h:4792 ../build/bin/preferences_gen.h:4932 -#: ../build/bin/preferences_gen.h:4968 ../build/bin/preferences_gen.h:5004 -#: ../build/bin/preferences_gen.h:5076 ../build/bin/preferences_gen.h:5202 -#: ../build/bin/preferences_gen.h:5274 ../build/bin/preferences_gen.h:5704 -#: ../build/bin/preferences_gen.h:5855 ../build/bin/preferences_gen.h:5927 -#: ../build/bin/preferences_gen.h:6154 ../build/bin/preferences_gen.h:6190 -#: ../build/bin/preferences_gen.h:6226 ../build/bin/preferences_gen.h:6262 -#: ../build/bin/preferences_gen.h:6298 ../build/bin/preferences_gen.h:6334 -#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6441 -#: ../build/bin/preferences_gen.h:6476 ../build/bin/preferences_gen.h:6512 -#: ../build/bin/preferences_gen.h:7038 ../build/bin/preferences_gen.h:7074 -#: ../build/bin/preferences_gen.h:7110 ../build/bin/preferences_gen.h:7182 -#: ../build/bin/preferences_gen.h:7488 ../build/bin/preferences_gen.h:7736 -#: ../build/bin/preferences_gen.h:8317 ../build/bin/preferences_gen.h:8415 +#: ../build/bin/preferences_gen.h:4671 ../build/bin/preferences_gen.h:4816 +#: ../build/bin/preferences_gen.h:5140 ../build/bin/preferences_gen.h:5363 +#: ../build/bin/preferences_gen.h:5473 ../build/bin/preferences_gen.h:5507 +#: ../build/bin/preferences_gen.h:5541 ../build/bin/preferences_gen.h:5609 +#: ../build/bin/preferences_gen.h:5678 ../build/bin/preferences_gen.h:5746 +#: ../build/bin/preferences_gen.h:6060 ../build/bin/preferences_gen.h:6178 +#: ../build/bin/preferences_gen.h:6318 ../build/bin/preferences_gen.h:6362 +#: ../build/bin/preferences_gen.h:6406 ../build/bin/preferences_gen.h:6648 +#: ../build/bin/preferences_gen.h:6682 ../build/bin/preferences_gen.h:6716 +#: ../build/bin/preferences_gen.h:6750 ../build/bin/preferences_gen.h:6784 +#: ../build/bin/preferences_gen.h:6818 ../build/bin/preferences_gen.h:6886 +#: ../build/bin/preferences_gen.h:6919 ../build/bin/preferences_gen.h:6952 +#: ../build/bin/preferences_gen.h:6986 ../build/bin/preferences_gen.h:7403 +#: ../build/bin/preferences_gen.h:7437 ../build/bin/preferences_gen.h:7471 +#: ../build/bin/preferences_gen.h:7539 ../build/bin/preferences_gen.h:7785 +#: ../build/bin/preferences_gen.h:7997 ../build/bin/preferences_gen.h:8326 +#: ../build/bin/preferences_gen.h:8423 msgctxt "preferences" msgid "TRUE" msgstr "是" -#: ../build/bin/preferences_gen.h:4020 ../build/bin/preferences_gen.h:4689 +#: ../build/bin/preferences_gen.h:4674 ../build/bin/preferences_gen.h:5297 msgid "defines whether scrollbars should be displayed" msgstr "選擇是否在中央視窗顯示卷軸" -#: ../build/bin/preferences_gen.h:4042 +#: ../build/bin/preferences_gen.h:4695 msgid "show image time with milliseconds" msgstr "以毫秒為單位顯示影像時間" -#: ../build/bin/preferences_gen.h:4056 +#: ../build/bin/preferences_gen.h:4708 msgid "defines whether time should be displayed with milliseconds" msgstr "" "自訂時間顯示是否包括毫秒\n" "開啟時毫秒會顯示在影像資訊模組裡,以及地理標籤模組中" -#: ../build/bin/preferences_gen.h:4066 +#: ../build/bin/preferences_gen.h:4717 msgid "thumbnails" msgstr "縮圖顯示" -#: ../build/bin/preferences_gen.h:4086 +#: ../build/bin/preferences_gen.h:4736 msgid "use raw file instead of embedded JPEG from size" msgstr "使用 RAW 檔生成縮圖取代嵌入 JPEG 的尺寸" -#: ../build/bin/preferences_gen.h:4159 +#: ../build/bin/preferences_gen.h:4750 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "raw file instead of the embedded preview JPEG (better but slower).\n" @@ -1068,11 +1079,11 @@ "經過暗房(Darkroom)編輯處理的影像,預設皆使用 RAW 檔的縮圖\n" "若希望所有縮圖和放大顯示都有最佳品質,應選擇「一律」" -#: ../build/bin/preferences_gen.h:4181 +#: ../build/bin/preferences_gen.h:4771 msgid "high quality processing from size" msgstr "高品質渲染尺寸設定" -#: ../build/bin/preferences_gen.h:4254 +#: ../build/bin/preferences_gen.h:4785 msgid "" "if the thumbnail size is greater than this value, it will be processed using " "the full quality rendering path (better but slower).\n" @@ -1083,11 +1094,77 @@ "如果 RAW 圖檔的縮圖顯示尺寸大於此值,會以完整品質的影像編輯調整運算\n" "此方法效果較佳但速度較慢,要以最高品質渲染所有影像縮圖,應選擇「一律」選項" -#: ../build/bin/preferences_gen.h:4276 +#: ../build/bin/preferences_gen.h:4806 +msgid "enable disk backend for thumbnail cache" +msgstr "開啟縮圖快取硬碟後台" + +#: ../build/bin/preferences_gen.h:4819 +msgid "" +"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want. light table " +"performance will be increased greatly when browsing a lot.\n" +"to generate all thumbnails of your entire collection offline, run 'darktable-" +"generate-cache'." +msgstr "" +"啟用此選項將縮圖儲存至硬碟,讀取快取檔案可免去每次重新運算縮圖\n" +"加快在燈箱模式內瀏覽大量影像時的運作速度\n" +"\n" +"這些縮圖不會被刪除,可以手動至 .cache\\darktable\\ 資料夾刪除以釋出硬碟空間\n" +"\n" +"可執行 bin\\darktable-generate-cache.exe 一次生成所有縮圖" + +#: ../build/bin/preferences_gen.h:4840 +msgid "enable disk backend for full preview cache" +msgstr "儲存完整預覽快取檔案至硬碟" + +#: ../build/bin/preferences_gen.h:4853 +msgid "" +"if enabled, write full preview to disk (.cache/darktable/) when evicted from " +"the memory cache.\n" +"note that this can take a lot of memory (several gigabytes for 20k images) " +"and will never delete cached thumbnails again.\n" +"it's safe though to delete these manually, if you want.\n" +"light table performance will be increased greatly when zooming image in full " +"preview mode." +msgstr "" +"啟用此選項將完整預覽圖檔儲存至硬碟\n" +"可以大幅提升燈箱(lighttable)模式放大影像瀏覽的速度\n" +"\n" +"這些快取檔案不會被刪除,且可能占用數 GB 的空間\n" +"可手動至 .cache/darktable/ 資料夾刪除檔案以釋出硬碟空間" + +#: ../build/bin/preferences_gen.h:4874 +msgid "generate thumbnails in background" +msgstr "在背景生成縮圖" + +#: ../build/bin/preferences_gen.h:4888 +msgid "" +"if 'enable disk backend for thumbnail cache' is enabled thumbnails/mipmaps " +"up to the selected size are generated while user is inactive in lighttable." +msgstr "" +"如果開啟「縮圖快取硬碟後台」功能,當 lighttable 非使用狀態時,將自動生成所選" +"的縮圖尺寸。" + +#: ../build/bin/preferences_gen.h:4909 +msgid "reset cached thumbnails" +msgstr "重設縮圖快取" + +#: ../build/bin/preferences_gen.h:4922 +msgid "" +"force thumbnails to be regenerated by resetting the database. this may be " +"needed in case some thumbnails have been manually removed or corrupted." +msgstr "" +"經由重置資料庫以強制重新生成縮圖。在部分縮圖被手動刪除或檔案損壞的情形下可能" +"需要執行此動作。" + +#: ../build/bin/preferences_gen.h:4943 msgid "delimiters for size categories" msgstr "縮圖尺寸分組" -#: ../build/bin/preferences_gen.h:4294 +#: ../build/bin/preferences_gen.h:4961 msgid "" "size categories are used to be able to set different overlays and CSS values " "depending of the size of the thumbnail, separated by |.\n" @@ -1098,25 +1175,30 @@ "一組以豎線分隔的值定義更改分組的縮圖尺寸\n" "預設值「120|400」表示縮圖被分為三組:0-120px、120-400px 和 >400px" -#: ../build/bin/preferences_gen.h:4316 +#: ../build/bin/preferences_gen.h:4982 msgid "pattern for the thumbnail extended overlay text" msgstr "縮圖上顯示的額外文字訊息" -#: ../build/bin/preferences_gen.h:4337 ../build/bin/preferences_gen.h:4380 +#: ../build/bin/preferences_gen.h:5002 ../build/bin/preferences_gen.h:5043 msgid "see manual to know all the tags you can use." msgstr "" "如果開啟縮圖上顯示額外文字訊息,此設置可定義要顯示的內容\n" "可以使用 darktable 變數中定義的任何參數,詳細參數設定請見說明文件" -#: ../build/bin/preferences_gen.h:4359 +#: ../build/bin/preferences_gen.h:5023 msgid "pattern for the thumbnail tooltip (empty to disable)" msgstr "滑鼠移至縮圖的額外文字訊息" -#: ../build/bin/preferences_gen.h:4440 +#: ../build/bin/preferences_gen.h:5075 ../src/gui/gtk.c:1267 +#: ../src/gui/preferences.c:544 ../src/views/darkroom.c:94 +msgid "darkroom" +msgstr "暗房 Darkroom" + +#: ../build/bin/preferences_gen.h:5096 msgid "scroll down to increase mask parameters" msgstr "滑鼠滾輪向下增加遮罩參數" -#: ../build/bin/preferences_gen.h:4454 +#: ../build/bin/preferences_gen.h:5109 msgid "" "when using the mouse scroll wheel to change mask parameters, scroll down to " "increase the mask size, feather size, opacity, brush hardness and gradient " @@ -1127,11 +1209,11 @@ "預設情況下(選項未勾選),向上滾動增加參數,勾選後動作相反\n" "適用於遮罩尺寸、羽化程度、不透明度、筆刷硬度和漸變曲度等等" -#: ../build/bin/preferences_gen.h:4476 +#: ../build/bin/preferences_gen.h:5130 msgid "middle mouse button zooms to 200%" msgstr "使用滑鼠中鍵縮放至 200%" -#: ../build/bin/preferences_gen.h:4491 +#: ../build/bin/preferences_gen.h:5144 #, no-c-format msgid "" "if enabled, the zoom level will cycle between 100%, 200% and fit to viewport " @@ -1141,52 +1223,52 @@ "啟用後點擊滑鼠中鍵縮放時,縮放比例將在 100%、200%、符合螢幕之間循環。不啟用" "時,只在符合螢幕和 100% 之間切換。ctrl 鍵可用來控制縮放比例。" -#: ../build/bin/preferences_gen.h:4513 +#: ../build/bin/preferences_gen.h:5165 msgid "pattern for the image information line" msgstr "影像訊息列的顯示資訊" -#: ../build/bin/preferences_gen.h:4534 +#: ../build/bin/preferences_gen.h:5185 msgid "see manual for a list of the tags you can use." msgstr "" "設定影像訊息列要顯示的資訊內容\n" "可以使用 darktable 變數中定義的任何參數,詳細參數設定請見說明文件" -#: ../build/bin/preferences_gen.h:4556 +#: ../build/bin/preferences_gen.h:5206 msgid "position of the image information line" msgstr "影像訊息列的位置" -#: ../build/bin/preferences_gen.h:4630 +#: ../build/bin/preferences_gen.h:5240 msgid "border around image in darkroom mode" msgstr "在預覽影像周圍加上邊框" -#: ../build/bin/preferences_gen.h:4650 ../build/bin/preferences_gen.h:6790 -#: ../build/bin/preferences_gen.h:7228 ../build/bin/preferences_gen.h:7789 -#: ../build/bin/preferences_gen.h:8139 ../build/bin/preferences_gen.h:8221 -#: ../build/bin/preferences_gen.h:8379 ../build/bin/preferences_gen.h:8493 -#: ../build/bin/preferences_gen.h:8540 +#: ../build/bin/preferences_gen.h:5260 ../build/bin/preferences_gen.h:7182 +#: ../build/bin/preferences_gen.h:7303 ../build/bin/preferences_gen.h:7584 +#: ../build/bin/preferences_gen.h:8048 ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8257 ../build/bin/preferences_gen.h:8389 +#: ../build/bin/preferences_gen.h:8504 ../build/bin/preferences_gen.h:8550 #, c-format msgid "double click to reset to `%d'" msgstr "雙擊重設回「%d」" -#: ../build/bin/preferences_gen.h:4653 +#: ../build/bin/preferences_gen.h:5263 msgid "" "process the image in darkroom mode with a small border. set to 0 if you " "don't want any border." msgstr "暗房畫面下,在影像周圍周圍顯示邊框" -#: ../build/bin/preferences_gen.h:4711 +#: ../build/bin/preferences_gen.h:5318 msgid "reduce resolution of preview image" msgstr "降低預覽影像的解析度" -#: ../build/bin/preferences_gen.h:4759 +#: ../build/bin/preferences_gen.h:5332 msgid "decrease to speed up preview rendering, may hinder accurate masking" msgstr "降低預覽圖像的分辨率以加快速度,但也可能降低顏色選擇和遮罩的準確性" -#: ../build/bin/preferences_gen.h:4781 +#: ../build/bin/preferences_gen.h:5353 msgid "show loading screen between images" msgstr "在影像切換之間顯示載入畫面" -#: ../build/bin/preferences_gen.h:4795 +#: ../build/bin/preferences_gen.h:5366 msgid "" "show gray loading screen when navigating between images in the darkroom\n" "disable to just show a toast message" @@ -1195,25 +1277,25 @@ "關閉此功能則在載入時仍顯示前一張影像與「讀取中」的訊息\n" "這樣對比較相似影像很有用,但可能因載入過久造成誤解,以為已切換至下一張影像" -#: ../build/bin/preferences_gen.h:4805 +#: ../build/bin/preferences_gen.h:5375 msgid "modules" msgstr "編輯模組" -#: ../build/bin/preferences_gen.h:4825 +#: ../build/bin/preferences_gen.h:5394 msgid "display of individual color channels" msgstr "遮罩的色彩通道顯示" -#: ../build/bin/preferences_gen.h:4863 +#: ../build/bin/preferences_gen.h:5408 msgid "" "defines how color channels are displayed when activated in the parametric " "masks feature." msgstr "自訂在遮罩功能中色彩的顯示方式" -#: ../build/bin/preferences_gen.h:4885 +#: ../build/bin/preferences_gen.h:5429 msgid "hide built-in presets for processing modules" msgstr "隱藏編輯模組的內建預設集" -#: ../build/bin/preferences_gen.h:4899 +#: ../build/bin/preferences_gen.h:5442 msgid "" "hides built-in presets of processing modules in both presets and favourites " "menu." @@ -1221,25 +1303,25 @@ "隱藏編輯模組內建的預設集\n" "預設集選單只顯示用戶自定義的預設集" -#: ../build/bin/preferences_gen.h:4921 ../build/bin/preferences_gen.h:4935 +#: ../build/bin/preferences_gen.h:5463 ../build/bin/preferences_gen.h:5476 msgid "show the guides widget in modules UI" msgstr "在模組介面中顯示參照框線工具" -#: ../build/bin/preferences_gen.h:4957 +#: ../build/bin/preferences_gen.h:5497 msgid "expand a single processing module at a time" msgstr "一次只展開一個編輯模組" -#: ../build/bin/preferences_gen.h:4971 +#: ../build/bin/preferences_gen.h:5510 msgid "this option toggles the behavior of shift clicking in darkroom mode" msgstr "" "啟用此選項時,單擊展開一個模組的同時會收合其他模組\n" "如果想在不收合其他面板的情況下展開面板,可以按住 Shift+單擊" -#: ../build/bin/preferences_gen.h:4993 +#: ../build/bin/preferences_gen.h:5531 msgid "only collapse modules in current group" msgstr "只收合目前群組中的模組" -#: ../build/bin/preferences_gen.h:5007 +#: ../build/bin/preferences_gen.h:5544 msgid "" "if only expanding a single module at a time, only collapse other modules in " "the current group - ignore modules in other groups" @@ -1247,25 +1329,25 @@ "如果上項開啟,自動收合僅限於當下群組中的其他模組\n" "其他群組中的模組不會被收合" -#: ../build/bin/preferences_gen.h:5029 +#: ../build/bin/preferences_gen.h:5565 msgid "expand the module when it is activated, and collapse it when disabled" msgstr "啟用模組時展開,停用時收合" -#: ../build/bin/preferences_gen.h:5043 +#: ../build/bin/preferences_gen.h:5578 msgid "" "this option allows to expand or collapse automatically the module when it is " "enabled or disabled." msgstr "開啟此選項會在模組啟用時自動展開,停用時自動收合" -#: ../build/bin/preferences_gen.h:5065 +#: ../build/bin/preferences_gen.h:5599 msgid "scroll processing modules to the top when expanded" msgstr "展開編輯模組時畫面滾動至模組標題" -#: ../build/bin/preferences_gen.h:5101 +#: ../build/bin/preferences_gen.h:5633 msgid "show right-side buttons in processing module headers" msgstr "在編輯模組標題右側顯示快速按鈕" -#: ../build/bin/preferences_gen.h:5169 +#: ../build/bin/preferences_gen.h:5647 msgid "" "when the mouse is not over a module, the multi-instance, reset and preset " "buttons can be hidden:\n" @@ -1290,45 +1372,49 @@ "滑順:模組名稱過長時淡出所有按鈕\n" "滑動:模組名稱過長時逐一淡出按鈕" -#: ../build/bin/preferences_gen.h:5191 +#: ../build/bin/preferences_gen.h:5668 msgid "show mask indicator in module headers" msgstr "在模組標題中顯示遮罩圖示" -#: ../build/bin/preferences_gen.h:5205 +#: ../build/bin/preferences_gen.h:5681 msgid "" "if enabled, an icon will be shown in the header of any processing modules " "that have a mask applied" msgstr "勾選後將在任何有使用遮罩的編輯模組的標題右側顯示遮罩圖示" -#: ../build/bin/preferences_gen.h:5227 +#: ../build/bin/preferences_gen.h:5702 msgid "prompt for name on addition of new instance" msgstr "增加新的編輯模組實例時提示輸入名稱" -#: ../build/bin/preferences_gen.h:5241 +#: ../build/bin/preferences_gen.h:5715 msgid "" "if enabled, a rename prompt will be present for each new module instance " "(either new instance or duplicate)" msgstr "啟用此功能後,每個新的模組實例或複製模組實例時都會出現命名提示" -#: ../build/bin/preferences_gen.h:5263 +#: ../build/bin/preferences_gen.h:5736 msgid "automatically update module name" msgstr "自動更新模組名稱" -#: ../build/bin/preferences_gen.h:5277 +#: ../build/bin/preferences_gen.h:5749 msgid "" "if enabled, the module name will be automatically updated to match a preset " "name or a preset instance name if present." msgstr "開啟後模組名稱將會自動更新,以與既有的預設集或模組實例名稱相符" -#: ../build/bin/preferences_gen.h:5317 +#: ../build/bin/preferences_gen.h:5781 +msgid "processing" +msgstr "運算方法" + +#: ../build/bin/preferences_gen.h:5783 msgid "image processing" msgstr "影像處理" -#: ../build/bin/preferences_gen.h:5337 +#: ../build/bin/preferences_gen.h:5802 msgid "always use LittleCMS 2 to apply output color profile" msgstr "使用 LittleCMS 2 來處理匯出檔案的色彩描述檔" -#: ../build/bin/preferences_gen.h:5351 +#: ../build/bin/preferences_gen.h:5815 msgid "this is slower than the default." msgstr "" "使用 LittleCMS 2 色彩管理核心取代原有的內部程式來轉換輸出色彩\n" @@ -1337,11 +1423,11 @@ "如果匯出的 ICC 是基於 LUT 或同時包含 LUT 與矩陣\n" "那麼無論此設定是否啟用 darktable 都會使用 LittleCMS 2 來轉換顏色" -#: ../build/bin/preferences_gen.h:5373 +#: ../build/bin/preferences_gen.h:5836 msgid "pixel interpolator (warp)" msgstr "像素內插法(變形時)" -#: ../build/bin/preferences_gen.h:5416 +#: ../build/bin/preferences_gen.h:5850 msgid "" "pixel interpolator used in modules for rotation, lens correction, liquify, " "cropping and final scaling (bilinear, bicubic, lanczos2)." @@ -1349,44 +1435,44 @@ "用於旋轉、鏡頭校正、液化、裁剪等變形模組的像素內插方法\n" "一般來說雙三次在大多數情況下是一個安全的選項" -#: ../build/bin/preferences_gen.h:5438 +#: ../build/bin/preferences_gen.h:5871 msgid "pixel interpolator (scaling)" msgstr "像素內插法(縮放時)" -#: ../build/bin/preferences_gen.h:5486 +#: ../build/bin/preferences_gen.h:5885 msgid "" "pixel interpolator used for scaling (bilinear, bicubic, lanczos2, lanczos3)." msgstr "" "用於縮放的像素內插方法,lanczos3 大部分時候可以提供更清晰的結果\n" "但有可能導致邊緣偽影,所以此算法只限於縮放使用" -#: ../build/bin/preferences_gen.h:5508 +#: ../build/bin/preferences_gen.h:5906 msgid "LUT 3D root folder" msgstr "色彩查找表(LUT)資料夾" -#: ../build/bin/preferences_gen.h:5513 ../src/control/jobs/control_jobs.c:1688 -#: ../src/control/jobs/control_jobs.c:1742 ../src/gui/preferences.c:1081 -#: ../src/gui/presets.c:419 ../src/imageio/storage/disk.c:122 -#: ../src/imageio/storage/disk.c:178 ../src/imageio/storage/gallery.c:109 -#: ../src/imageio/storage/gallery.c:163 ../src/imageio/storage/latex.c:108 -#: ../src/imageio/storage/latex.c:162 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/import.c:1664 ../src/libs/styles.c:391 +#: ../build/bin/preferences_gen.h:5912 ../src/control/jobs/control_jobs.c:1691 +#: ../src/control/jobs/control_jobs.c:1745 ../src/gui/preferences.c:1080 +#: ../src/gui/presets.c:421 ../src/imageio/storage/disk.c:197 +#: ../src/imageio/storage/disk.c:261 ../src/imageio/storage/gallery.c:149 +#: ../src/imageio/storage/gallery.c:213 ../src/imageio/storage/latex.c:145 +#: ../src/imageio/storage/latex.c:199 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1673 ../src/libs/styles.c:391 #: ../src/lua/preferences.c:668 msgid "select directory" msgstr "選擇資料夾" -#: ../build/bin/preferences_gen.h:5529 +#: ../build/bin/preferences_gen.h:5926 msgid "" "this folder (and sub-folders) contains LUT files used by LUT 3D module. " "(need a restart)." msgstr "" "此資料夾及其子資料夾為立體色彩查找表(LUT 3D)模組使用的 LUT 檔預設位置" -#: ../build/bin/preferences_gen.h:5551 +#: ../build/bin/preferences_gen.h:5947 msgid "auto-apply pixel workflow defaults" msgstr "內部運算工作流程預設值" -#: ../build/bin/preferences_gen.h:5599 +#: ../build/bin/preferences_gen.h:5961 msgid "" "scene-referred workflow is based on linear modules and will auto-apply " "filmic or sigmoid, color calibration and exposure,\n" @@ -1406,11 +1492,11 @@ "\n" "選擇無將不會啟用任何模組,並將模組運算順序設置為和場景參照相同的順序" -#: ../build/bin/preferences_gen.h:5621 +#: ../build/bin/preferences_gen.h:5982 msgid "auto-apply per camera basecurve presets" msgstr "自動套用相機的基礎曲線" -#: ../build/bin/preferences_gen.h:5635 +#: ../build/bin/preferences_gen.h:5995 msgid "" "use the per-camera basecurve by default instead of the generic manufacturer " "one if there is one available (needs a restart).\n" @@ -1422,11 +1508,11 @@ "預設套用相機專屬的基礎曲線,而不是通用的曲線\n" "當內部運算工作流程為「顯示參照」時,可自動套用相應的基礎曲線設定" -#: ../build/bin/preferences_gen.h:5657 +#: ../build/bin/preferences_gen.h:6016 msgid "detect monochrome previews" msgstr "偵測黑白影像" -#: ../build/bin/preferences_gen.h:5671 +#: ../build/bin/preferences_gen.h:6029 msgid "" "many monochrome images can be identified via EXIF and preview data. beware: " "this slows down imports and reading of EXIF data" @@ -1434,11 +1520,11 @@ "在導入期間分析 EXIF 資料和預覽縮圖來識別影像是否為黑白\n" "發現黑白影像自動對其標記,讓黑白影像的工作流程更方便,但會減慢匯入的速度" -#: ../build/bin/preferences_gen.h:5693 +#: ../build/bin/preferences_gen.h:6050 msgid "show warning messages" msgstr "顯示警告訊息" -#: ../build/bin/preferences_gen.h:5707 +#: ../build/bin/preferences_gen.h:6063 msgid "" "display messages in modules to warn beginner users when non-standard and " "possibly harmful settings are used in the pipeline.\n" @@ -1449,15 +1535,15 @@ "如果確實知道設定的目的,並有意採用非標準設定,可忽略警告訊息\n" "或是使用此選項,不再顯示任何警告" -#: ../build/bin/preferences_gen.h:5717 -msgid "CPU / GPU / memory" -msgstr "處理器 / 顯示卡 / 記憶體" +#: ../build/bin/preferences_gen.h:6072 +msgid "CPU / memory" +msgstr "處理器 / 記憶體" -#: ../build/bin/preferences_gen.h:5737 +#: ../build/bin/preferences_gen.h:6091 msgid "darktable resources" msgstr "darktable 效能設定" -#: ../build/bin/preferences_gen.h:5786 +#: ../build/bin/preferences_gen.h:6106 #, no-c-format msgid "" "defines how much darktable may take from your system resources:\n" @@ -1494,64 +1580,26 @@ "更多詳細內容及自行修改系統參數,請閱讀操作手冊的「memory & performance " "tuning」章節" -#: ../build/bin/preferences_gen.h:5808 +#: ../build/bin/preferences_gen.h:6127 msgid "prefer performance over quality" msgstr "執行性能高於顯示品質" -#: ../build/bin/preferences_gen.h:5822 +#: ../build/bin/preferences_gen.h:6140 msgid "" "if switched on, thumbnails and previews are rendered at lower quality but 4 " "times faster" msgstr "" "啟用此選項後以較低品質顯示縮圖和預覽,速度可提高四倍,在低階電腦上非常實用" -#: ../build/bin/preferences_gen.h:5844 -msgid "enable disk backend for thumbnail cache" -msgstr "儲存縮圖快取檔案至硬碟" +#: ../build/bin/preferences_gen.h:6149 +msgid "OpenCL" +msgstr "OpenCL" -#: ../build/bin/preferences_gen.h:5858 -msgid "" -"if enabled, write thumbnails to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want. light table " -"performance will be increased greatly when browsing a lot.\n" -"to generate all thumbnails of your entire collection offline, run 'darktable-" -"generate-cache'." -msgstr "" -"啟用此選項將縮圖儲存至硬碟,讀取快取檔案可免去每次重新運算縮圖\n" -"加快在燈箱模式內瀏覽大量影像時的運作速度\n" -"\n" -"這些縮圖不會被刪除,可以手動至 .cache\\darktable\\ 資料夾刪除以釋出硬碟空間\n" -"\n" -"可執行 bin\\darktable-generate-cache.exe 一次生成所有縮圖" - -#: ../build/bin/preferences_gen.h:5880 -msgid "enable disk backend for full preview cache" -msgstr "儲存完整預覽快取檔案至硬碟" - -#: ../build/bin/preferences_gen.h:5894 -msgid "" -"if enabled, write full preview to disk (.cache/darktable/) when evicted from " -"the memory cache.\n" -"note that this can take a lot of memory (several gigabytes for 20k images) " -"and will never delete cached thumbnails again.\n" -"it's safe though to delete these manually, if you want.\n" -"light table performance will be increased greatly when zooming image in full " -"preview mode." -msgstr "" -"啟用此選項將完整預覽圖檔儲存至硬碟\n" -"可以大幅提升燈箱(lighttable)模式放大影像瀏覽的速度\n" -"\n" -"這些快取檔案不會被刪除,且可能占用數 GB 的空間\n" -"可手動至 .cache/darktable/ 資料夾刪除檔案以釋出硬碟空間" - -#: ../build/bin/preferences_gen.h:5916 +#: ../build/bin/preferences_gen.h:6168 msgid "activate OpenCL support" msgstr "開啟 OpenCL 支援" -#: ../build/bin/preferences_gen.h:5930 +#: ../build/bin/preferences_gen.h:6181 msgid "" "if found, use OpenCL runtime on your system to speed up processing.\n" "can be switched on and off at any time." @@ -1559,23 +1607,32 @@ "藉由 OpenCL 使用顯示卡運算來提高速度\n" "此功能需要支援的顯示卡和驅動程式,如果電腦不支援則此選項無法開啟" -#: ../build/bin/preferences_gen.h:5931 ../build/bin/preferences_gen.h:6002 -#: ../build/bin/preferences_gen.h:6078 ../build/bin/preferences_gen.h:7397 +#: ../build/bin/preferences_gen.h:6185 ../build/bin/preferences_gen.h:6230 +#: ../build/bin/preferences_gen.h:6274 ../build/bin/preferences_gen.h:6325 +#: ../build/bin/preferences_gen.h:6369 ../build/bin/preferences_gen.h:6413 +#: ../build/bin/preferences_gen.h:6457 ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6545 ../build/bin/preferences_gen.h:7700 msgid "not available" msgstr "不支援" -#: ../build/bin/preferences_gen.h:5934 ../build/bin/preferences_gen.h:5938 -#: ../build/bin/preferences_gen.h:6005 ../build/bin/preferences_gen.h:6009 -#: ../build/bin/preferences_gen.h:6081 ../build/bin/preferences_gen.h:6085 -#: ../build/bin/preferences_gen.h:7400 ../build/bin/preferences_gen.h:7404 +#: ../build/bin/preferences_gen.h:6187 ../build/bin/preferences_gen.h:6188 +#: ../build/bin/preferences_gen.h:6232 ../build/bin/preferences_gen.h:6233 +#: ../build/bin/preferences_gen.h:6276 ../build/bin/preferences_gen.h:6277 +#: ../build/bin/preferences_gen.h:6327 ../build/bin/preferences_gen.h:6328 +#: ../build/bin/preferences_gen.h:6371 ../build/bin/preferences_gen.h:6372 +#: ../build/bin/preferences_gen.h:6415 ../build/bin/preferences_gen.h:6416 +#: ../build/bin/preferences_gen.h:6459 ../build/bin/preferences_gen.h:6460 +#: ../build/bin/preferences_gen.h:6503 ../build/bin/preferences_gen.h:6504 +#: ../build/bin/preferences_gen.h:6547 ../build/bin/preferences_gen.h:6548 +#: ../build/bin/preferences_gen.h:7702 ../build/bin/preferences_gen.h:7703 msgid "not available on this system" msgstr "沒有此功能需要的顯示卡和驅動程式" -#: ../build/bin/preferences_gen.h:5958 +#: ../build/bin/preferences_gen.h:6212 msgid "OpenCL scheduling profile" msgstr "OpenCL 設定" -#: ../build/bin/preferences_gen.h:6001 +#: ../build/bin/preferences_gen.h:6226 msgid "" "defines how preview and full pixelpipe tasks are scheduled on OpenCL enabled " "systems:\n" @@ -1593,153 +1650,207 @@ "\n" "更多詳細內容及修改系統參數,請閱讀操作手冊的「multiple devices」章節" -#: ../build/bin/preferences_gen.h:6029 -msgid "tune OpenCL performance" -msgstr "調整 OpenCL 性能" +#: ../build/bin/preferences_gen.h:6257 +msgid "use all device memory" +msgstr "使用全部的記憶體" -#: ../build/bin/preferences_gen.h:6077 +#: ../build/bin/preferences_gen.h:6270 msgid "" -"allows runtime tuning of OpenCL devices:\n" -" - 'memory size': uses a fixed headroom (400MB as default),\n" -" - 'memory transfer': tries a faster memory access mode (pinned memory) used " -"for tiling." -msgstr "" -"調整 OpenCL 性能\n" -"\n" -"不調整(預設):\n" -"不改變 OpenCL 的運作方式\n" -"\n" -"記憶體空間:\n" -"保留固定的顯示卡記憶體(預設為 400MB),剩餘記憶體用於 OpenCL 運算\n" -"\n" -"記憶體傳輸:\n" -"運算需要的紀體超過可用空間時,使用特殊模式將影像分解為多個區塊分開處理\n" -"\n" -"記憶體空間和傳輸:\n" -"同時使用以上兩種機制\n" -"\n" -"不同調整方法可能提升或降低性能,甚至耗用更多記憶體,必須自行在安裝的電腦上進" -"行測試。可以透過編輯 darktablerc 文件修改預設數值和多張顯示卡的獨立設定,或是" -"設定自動檢查顯示卡可用記憶體空間,更多詳細內容請閱讀操作手冊的「memory & " -"performance tuning」章節。" +"if enabled darktable will use all device memory except a safety margin " +"(headroom, default is 600MB)" +msgstr "啟用後,darktable 會使用安全餘裕(預設為 600 MB)外的所有記憶體" + +#: ../build/bin/preferences_gen.h:6289 +msgid "OpenCL drivers" +msgstr "OpenCL 驅動" + +#: ../build/bin/preferences_gen.h:6308 +msgid "Intel GPU" +msgstr "Intel GPU" + +#: ../build/bin/preferences_gen.h:6321 +msgid "Intel(R) OpenCL Graphics for all supported platforms (vendor provided)" +msgstr "Intel(R) OpenCL 圖形晶片(由製造商提供)" + +#: ../build/bin/preferences_gen.h:6352 +msgid "Nvidia CUDA" +msgstr "Nvidia CUDA" + +#: ../build/bin/preferences_gen.h:6365 +msgid "Nvidia CUDA based OpenCL (vendor provided)" +msgstr "Nvidia CUDA 為基礎的 OpenCL (由製造商提供)" + +#: ../build/bin/preferences_gen.h:6396 +msgid "AMD ROCm" +msgstr "AMD ROCm" -#: ../build/bin/preferences_gen.h:6143 +#: ../build/bin/preferences_gen.h:6409 +msgid "AMD Accelerated Parallel Processing (vendor provided)" +msgstr "AMD Accelerated Parallel Processing (由製造商提供)" + +#: ../build/bin/preferences_gen.h:6440 +msgid "RustiCL" +msgstr "RustiCL" + +#: ../build/bin/preferences_gen.h:6453 +msgid "" +"RustiCL Mesa OpenCL, still unstable. if you want to use this, you should " +"disable the vendor driver" +msgstr "RustiCL Mesa OpenCL,非穩定版本,如要使用此選項須關閉原廠驅動" + +#: ../build/bin/preferences_gen.h:6484 +msgid "Apple" +msgstr "Apple" + +#: ../build/bin/preferences_gen.h:6497 +msgid "Apple OpenCL (vendor provided)" +msgstr "Apple OpenCL(由製造商提供)" + +#: ../build/bin/preferences_gen.h:6528 +msgid "Microsoft OpenCLOn12" +msgstr "Microsoft OpenCLOn12" + +#: ../build/bin/preferences_gen.h:6541 +msgid "" +"Microsoft OpenCLOn12, only use this if the vendor provided driver does not " +"work or there is none provided." +msgstr "Microsoft OpenCLOn12,僅在驅動程式無法作用或沒有驅動程式時使用。" + +#: ../build/bin/preferences_gen.h:6572 +msgid "other platforms" +msgstr "其他平台" + +#: ../build/bin/preferences_gen.h:6585 +msgid "" +"if set, all unspecified platforms are accepted. only do this if no vendor " +"driver is available" +msgstr "選擇此設定,所有未指定的平台皆會套用。只在無法取得原廠驅動時使用" + +#: ../build/bin/preferences_gen.h:6617 +msgid "security" +msgstr "檔案安全" + +#: ../build/bin/preferences_gen.h:6638 msgid "ask before removing images from the library" msgstr "移除已匯入圖庫的影像前要求確認" -#: ../build/bin/preferences_gen.h:6157 +#: ../build/bin/preferences_gen.h:6651 msgid "always ask the user before removing image information from the library" msgstr "從圖庫中移除任何影像之前詢問使用者" -#: ../build/bin/preferences_gen.h:6179 +#: ../build/bin/preferences_gen.h:6672 msgid "ask before deleting images from disk" msgstr "刪除硬碟裡的影像檔案前要求確認" -#: ../build/bin/preferences_gen.h:6193 +#: ../build/bin/preferences_gen.h:6685 msgid "always ask the user before any image file is deleted" msgstr "在從硬碟裡刪除任何影像檔案之前詢問使用者" -#: ../build/bin/preferences_gen.h:6215 +#: ../build/bin/preferences_gen.h:6706 msgid "ask before discarding history stack" msgstr "刪除影像編輯紀錄之前要求確認" -#: ../build/bin/preferences_gen.h:6229 +#: ../build/bin/preferences_gen.h:6719 msgid "always ask the user before history stack is discarded on any image" msgstr "在刪除任何影像編輯紀錄之前詢問使用者" -#: ../build/bin/preferences_gen.h:6251 +#: ../build/bin/preferences_gen.h:6740 msgid "try to use trash when deleting images" msgstr "刪除影像檔案時優先移至回收桶" -#: ../build/bin/preferences_gen.h:6265 +#: ../build/bin/preferences_gen.h:6753 msgid "" "send files to trash instead of permanently deleting files on system that " "supports it" msgstr "在支援此功能的系統上嘗試將檔案丟到回收桶,而不是從硬碟中永遠刪除檔案" -#: ../build/bin/preferences_gen.h:6287 +#: ../build/bin/preferences_gen.h:6774 msgid "ask before moving images from film roll folder" msgstr "從底片卷中移動影像之前要求確認" -#: ../build/bin/preferences_gen.h:6301 +#: ../build/bin/preferences_gen.h:6787 msgid "always ask the user before any image file is moved." msgstr "在移動任何影像之前詢問使用者" -#: ../build/bin/preferences_gen.h:6323 +#: ../build/bin/preferences_gen.h:6808 msgid "ask before copying images to new film roll folder" msgstr "複製影像到新的底片卷前要求確認" -#: ../build/bin/preferences_gen.h:6337 +#: ../build/bin/preferences_gen.h:6821 msgid "always ask the user before any image file is copied." msgstr "在複製任何影像前詢問使用者" -#: ../build/bin/preferences_gen.h:6359 +#: ../build/bin/preferences_gen.h:6842 msgid "ask before removing empty folders" msgstr "移除空的資料夾之前要求確認" -#: ../build/bin/preferences_gen.h:6373 +#: ../build/bin/preferences_gen.h:6855 msgid "" "always ask the user before removing any empty folder. this can happen after " "moving or deleting images." msgstr "在移除空的資料夾前詢問使用者,空的資料夾可能肇因於影像已被移動或刪除" -#: ../build/bin/preferences_gen.h:6395 +#: ../build/bin/preferences_gen.h:6876 msgid "ask before deleting a tag" msgstr "刪除標籤之前要求確認" -#: ../build/bin/preferences_gen.h:6430 +#: ../build/bin/preferences_gen.h:6909 msgid "ask before deleting a style" msgstr "刪除風格檔之前要求確認" -#: ../build/bin/preferences_gen.h:6465 +#: ../build/bin/preferences_gen.h:6942 msgid "ask before deleting a preset" msgstr "刪除預設集之前要求確認" -#: ../build/bin/preferences_gen.h:6479 +#: ../build/bin/preferences_gen.h:6955 msgid "will ask for confirmation before deleting or overwriting a preset" msgstr "刪除或覆寫預設集之前詢問使用者" -#: ../build/bin/preferences_gen.h:6501 +#: ../build/bin/preferences_gen.h:6976 msgid "ask before exporting in overwrite mode" msgstr "匯出影像使用覆寫既有檔案模式時要求確認" -#: ../build/bin/preferences_gen.h:6515 +#: ../build/bin/preferences_gen.h:6989 msgid "will ask for confirmation before exporting files in overwrite mode" msgstr "在覆寫既有檔案模式下,要匯出檔案之前會詢問使用者" #. italic -#: ../build/bin/preferences_gen.h:6525 ../src/libs/tools/viewswitcher.c:148 +#: ../build/bin/preferences_gen.h:6998 ../src/libs/tools/viewswitcher.c:148 msgid "other" msgstr "其他" -#: ../build/bin/preferences_gen.h:6545 +#: ../build/bin/preferences_gen.h:7017 msgid "password storage backend to use" msgstr "儲存密碼使用的服務" -#: ../build/bin/preferences_gen.h:6595 +#: ../build/bin/preferences_gen.h:7035 msgid "" "the storage backend for password storage: auto, none, libsecret, kwallet" msgstr "用於密碼儲存的後端服務" -#: ../build/bin/preferences_gen.h:6617 +#: ../build/bin/preferences_gen.h:7056 msgid "executable for playing audio files" msgstr "播放錄音檔案的程式" -#: ../build/bin/preferences_gen.h:6635 +#: ../build/bin/preferences_gen.h:7074 msgid "" "this external program is used to play audio files some cameras record to " "keep notes for images" msgstr "使用此外部程式播放相機記錄的音訊檔案" -#: ../build/bin/preferences_gen.h:6675 ../src/control/crawler.c:724 +#: ../build/bin/preferences_gen.h:7106 +msgid "storage" +msgstr "資料儲存" + +#: ../build/bin/preferences_gen.h:7108 ../src/control/crawler.c:717 msgid "database" msgstr "資料庫" -#: ../build/bin/preferences_gen.h:6695 +#: ../build/bin/preferences_gen.h:7127 msgid "create database snapshot" msgstr "資料庫備份頻率" -#: ../build/bin/preferences_gen.h:6748 +#: ../build/bin/preferences_gen.h:7141 msgid "" "database snapshots are created right before closing darktable. options allow " "you to choose how often to make snapshots:\n" @@ -1759,11 +1870,11 @@ "每天一次:如果自上次備份以來超過 24 小時,則建立備份\n" "關閉時:每次關閉 darktable 時建立備份" -#: ../build/bin/preferences_gen.h:6770 +#: ../build/bin/preferences_gen.h:7162 msgid "how many snapshots to keep" msgstr "資料庫備份數量" -#: ../build/bin/preferences_gen.h:6793 +#: ../build/bin/preferences_gen.h:7185 msgid "" "after successfully creating snapshot, how many older snapshots to keep " "(excluding mandatory version update ones). enter -1 to keep all snapshots\n" @@ -1775,42 +1886,43 @@ "備份儲存於 \\Users\\username\\AppData\\Local\\darktable\\ \n" "備份檔案會佔用一些硬碟空間,而且只需要最新的備份即可成功還原" -#: ../build/bin/preferences_gen.h:6803 ../src/control/crawler.c:723 -msgid "XMP" -msgstr "XMP" +#: ../build/bin/preferences_gen.h:7194 ../src/libs/copy_history.c:149 +msgid "XMP sidecar files" +msgstr "XMP 附屬檔案" -#: ../build/bin/preferences_gen.h:6823 -msgid "write sidecar file for each image" -msgstr "為每張影像儲存附屬檔案" +#: ../build/bin/preferences_gen.h:7213 +msgid "create XMP files" +msgstr "生成附屬檔案" -#: ../build/bin/preferences_gen.h:6866 +#: ../build/bin/preferences_gen.h:7227 msgid "" -"the sidecar files hold information about all your development steps to allow " +"XMP sidecar files hold information about all your development steps to allow " "flawless re-importing of image files.\n" "\n" -"depending on the selected mode sidecar files will be written:\n" +"depending on the selected mode sidecar files will be created:\n" " - 'never'\n" " - 'on import': immediately after importing the image\n" -" - 'after edit': after any user change on the image." +" - 'after edit': after any user change on the image or adding tags." msgstr "" -"附屬檔案包含所有編輯步驟的資訊,儲存 XMP 檔案可以在日後完整重新匯入影像\n" +"XMP 附屬檔案包含所有編輯步驟的資訊,可以完美重新匯入影像。\n" "\n" +"根據選擇方式創建附屬檔案:\n" "絕不:\n" "不要儲存 XMP,如果只是要短暫測試可以使用這個設定,但通常不推薦使用\n" "匯入時:\n" "影像匯入到 darktable 圖庫後立即儲存 XMP,每次編輯時都會進行更新\n" "編輯後:\n" -"導入影像不儲存 XMP,第一次對影像執行編輯時才儲存,並在每次後續編輯更新\n" +"對影像執行編輯或變更詮釋資料時儲存,並在每次後續編輯更新\n" "\n" -"強烈建議選擇「匯入時」或「編輯後」,避免在資料庫損壞時遺失數據。只要同時備份 " -"RAW 和隨附的 XMP 檔案,便可以將完整的影像編輯紀錄重新匯入 darktable,完全恢復" -"之前的工作。" +"強烈建議選擇「匯入時」或「編輯後」,以避免在資料庫損壞時遺失數據。只要同時備" +"份 RAW 和隨附的 XMP 檔案,便可以將完整的影像編輯紀錄重新匯入 darktable,完全" +"恢復之前的工作。" -#: ../build/bin/preferences_gen.h:6888 +#: ../build/bin/preferences_gen.h:7248 msgid "store XMP tags in compressed format" msgstr "壓縮附屬檔案" -#: ../build/bin/preferences_gen.h:6931 +#: ../build/bin/preferences_gen.h:7262 msgid "" "entries in XMP tags can get rather large and may exceed the available space " "to store the history stack in output files.\n" @@ -1819,11 +1931,24 @@ "附屬檔案隨著影像編輯可能會變得很大\n" "此選項可以壓縮 XMP 以節省空間" -#: ../build/bin/preferences_gen.h:6953 +#: ../build/bin/preferences_gen.h:7283 +msgid "auto-save interval" +msgstr "自動儲存間隔" + +#: ../build/bin/preferences_gen.h:7306 +msgid "" +"automatically save history while developing using the given interval (in " +"seconds); set to zero to disable auto-saving. auto-saving might be disabled " +"on slow drives." +msgstr "" +"自動儲存編輯紀錄的間隔時間,以秒為單位,零代表不使用此功能。在速度緩慢的硬碟" +"上自動儲存功能可能會被關閉。" + +#: ../build/bin/preferences_gen.h:7327 msgid "look for updated XMP files on startup" msgstr "在啟動時檢查 XMP 檔案更新" -#: ../build/bin/preferences_gen.h:6967 +#: ../build/bin/preferences_gen.h:7340 msgid "" "check file modification times of all XMP files on startup to check if any " "got updated in the meantime" @@ -1831,15 +1956,19 @@ "在 darktable 啟動時檢查所有 XMP\n" "如果找到更新的 XMP 文件會詢問要載入哪個 XMP 檔案" -#: ../build/bin/preferences_gen.h:7007 +#: ../build/bin/preferences_gen.h:7372 +msgid "miscellaneous" +msgstr "其他設定" + +#: ../build/bin/preferences_gen.h:7374 msgid "interface" msgstr "介面配置" -#: ../build/bin/preferences_gen.h:7027 +#: ../build/bin/preferences_gen.h:7393 msgid "load default shortcuts at startup" msgstr "啟動時載入預設快速鍵" -#: ../build/bin/preferences_gen.h:7041 +#: ../build/bin/preferences_gen.h:7406 msgid "" "load default shortcuts before user settings. switch off to prevent deleted " "defaults returning" @@ -1848,19 +1977,19 @@ "可以避免預設快速鍵被刪除後無法啟用,尤其是在版本更新之後新加入的快速鍵\n" "若要關閉已手動刪除的預設快速鍵,則不應啟用此選項" -#: ../build/bin/preferences_gen.h:7063 +#: ../build/bin/preferences_gen.h:7427 msgid "scale slider step with min/max" msgstr "自動調整滑桿精度" -#: ../build/bin/preferences_gen.h:7077 +#: ../build/bin/preferences_gen.h:7440 msgid "vary slider step size with min/max range" msgstr "依據要調整的參數最大 / 最小值範圍改變滑桿的每步精度" -#: ../build/bin/preferences_gen.h:7099 +#: ../build/bin/preferences_gen.h:7461 msgid "sort built-in presets first" msgstr "內建預設集排列在前" -#: ../build/bin/preferences_gen.h:7113 +#: ../build/bin/preferences_gen.h:7474 msgid "" "whether to show built-in presets first before user's presets in presets menu." msgstr "" @@ -1868,11 +1997,11 @@ "勾選時先顯示內建預設集然後才是使用者自訂的預設集\n" "若取消則使用者自訂的預設集顯示在前" -#: ../build/bin/preferences_gen.h:7135 +#: ../build/bin/preferences_gen.h:7495 msgid "mouse wheel scrolls modules side panel by default" msgstr "使用滑鼠滾輪滾動模組面板" -#: ../build/bin/preferences_gen.h:7149 +#: ../build/bin/preferences_gen.h:7508 msgid "" "when enabled, use mouse wheel to scroll modules side panel. use ctrl+alt to " "use mouse wheel for data entry. when disabled, this behavior is reversed" @@ -1884,39 +2013,39 @@ " ctrl + 滑鼠滾輪 = 微調模組參數\n" "shift + 滑鼠滾輪 = 快調模組參數" -#: ../build/bin/preferences_gen.h:7171 +#: ../build/bin/preferences_gen.h:7529 msgid "always show panels' scrollbars" msgstr "顯示模組面板的卷軸" -#: ../build/bin/preferences_gen.h:7185 +#: ../build/bin/preferences_gen.h:7542 msgid "" "defines whether the panel scrollbars should be always visible or activated " "only depending on the content. (need a restart)" msgstr "自訂是否永遠顯示模組面板的卷軸,或僅根據內容自動隱藏與顯示" -#: ../build/bin/preferences_gen.h:7207 +#: ../build/bin/preferences_gen.h:7563 msgid "duration of the UI transitions in ms" msgstr "轉換特效的持續時間" -#: ../build/bin/preferences_gen.h:7231 +#: ../build/bin/preferences_gen.h:7587 msgid "" "how long the transitions take (in ms) for expanding or collapsing modules " "and other UI elements" msgstr "模組展開和收合效果,以及其他介面特效的持續時間(以毫秒為單位)" -#: ../build/bin/preferences_gen.h:7253 +#: ../build/bin/preferences_gen.h:7608 msgid "position of the scopes module" msgstr "色階分布圖的位置" -#: ../build/bin/preferences_gen.h:7291 +#: ../build/bin/preferences_gen.h:7622 msgid "position the scopes at the top-left or top-right of the screen" msgstr "將「色階分布圖」放在螢幕左上角或右上角" -#: ../build/bin/preferences_gen.h:7313 +#: ../build/bin/preferences_gen.h:7643 msgid "method to use for getting the display profile" msgstr "取得螢幕描述檔的方式" -#: ../build/bin/preferences_gen.h:7356 +#: ../build/bin/preferences_gen.h:7657 msgid "" "this option allows to force a specific means of getting the current display " "profile.\n" @@ -1925,11 +2054,11 @@ "允許用戶強制 darktable 使用特定方法取得螢幕的色彩描述檔以進行顏色管理\n" "若不同方法獲得的描述檔不一致,可以手動指定其中一個方法以強制執行" -#: ../build/bin/preferences_gen.h:7378 +#: ../build/bin/preferences_gen.h:7678 msgid "order or exclude MIDI devices" msgstr "排序或排除 MIDI 控制設備" -#: ../build/bin/preferences_gen.h:7396 +#: ../build/bin/preferences_gen.h:7696 msgid "" "comma-separated list of device name fragments that if matched load MIDI " "device at id given by location in list\n" @@ -1942,20 +2071,20 @@ "更多詳細內容及參數,請閱讀操作手冊的「midi device support」章節" #. tags -#: ../build/bin/preferences_gen.h:7412 ../src/develop/lightroom.c:1516 -#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:333 -#: ../src/libs/image.c:558 ../src/libs/metadata_view.c:162 +#: ../build/bin/preferences_gen.h:7715 ../src/develop/lightroom.c:1573 +#: ../src/gui/import_metadata.c:476 ../src/libs/export_metadata.c:322 +#: ../src/libs/image.c:614 ../src/libs/metadata_view.c:166 msgid "tags" msgstr "標籤" -#: ../build/bin/preferences_gen.h:7432 +#: ../build/bin/preferences_gen.h:7734 msgid "omit hierarchy in simple tag lists" msgstr "省略簡單標籤清單中的層次結構" -#: ../build/bin/preferences_gen.h:7446 +#: ../build/bin/preferences_gen.h:7747 msgid "" -"when creating XMP file the hierarchical tags are also added as a simple " -"list\n" +"when creating an XMP sidecar file the hierarchical tags are also added as a " +"simple list\n" "of non-hierarchical ones to make them visible to some other programs.\n" "when this option is checked darktable will only include their last part\n" "and ignore the rest. so 'foo|bar|baz' will only add 'baz'." @@ -1964,72 +2093,69 @@ "開啟此選項後,darktable 只儲存底層標籤而忽略其上層標籤結構\n" "例如:City|Taiwan|Taipei,只會儲存 Taipei 單一個標籤" -#: ../build/bin/preferences_gen.h:7456 +#: ../build/bin/preferences_gen.h:7756 msgid "shortcuts with multiple instances" msgstr "多個模組實例快速鍵控制" -#: ../build/bin/preferences_gen.h:7461 -msgid "" -"where multiple module instances are present, these preferences control rules " -"that are applied (in order) to decide which module instance shortcuts will " -"be applied to" -msgstr "有多個相同的模組實例時,以下規則依序決定快速鍵應該作用到那些模組中" - -#: ../build/bin/preferences_gen.h:7477 +#: ../build/bin/preferences_gen.h:7775 msgid "prefer focused instance" msgstr "選取中的模組優先" -#: ../build/bin/preferences_gen.h:7491 +#: ../build/bin/preferences_gen.h:7788 msgid "" -"if an instance of the module has focus, apply shortcut to that instance\n" +"where multiple instances of a module are present, apply shortcuts to the " +"instance that has focus\n" +"if none are focused, the preferences below control rules that are followed " +"(in order) to decide which module instance shortcuts will be applied to.\n" "note: blending shortcuts always apply to the focused instance" msgstr "" -"快速鍵套用在目前選取的模組,並忽略其他相同的模組\n" -"備註: 混合快速鍵永遠作用於選取的模組" +"有多個相同的模組實例時,快速鍵將作用在使用中的模組。\n" +"如果沒有模組正在使用中,則依以下條件順序控制快速鍵應用於哪一個模組。\n" +"注意:混合快速鍵永遠作用在使用中的模組" -#: ../build/bin/preferences_gen.h:7513 +#: ../build/bin/preferences_gen.h:7809 msgid "prefer expanded instances" msgstr "已展開的模組優先" -#: ../build/bin/preferences_gen.h:7527 +#: ../build/bin/preferences_gen.h:7822 msgid "if instances of the module are expanded, ignore collapsed instances" msgstr "如果模組實例中有已展開的,快速鍵將套用在該模組,並忽略未展開的模組" -#: ../build/bin/preferences_gen.h:7549 +#: ../build/bin/preferences_gen.h:7843 msgid "prefer enabled instances" msgstr "已啟用的模組優先" -#: ../build/bin/preferences_gen.h:7563 +#: ../build/bin/preferences_gen.h:7856 msgid "" "after applying the above rule, if instances of the module are active, ignore " "inactive instances" msgstr "當有模組實例處於啟用狀態,快速鍵會忽略其他未啟用的相同模組" -#: ../build/bin/preferences_gen.h:7585 +#: ../build/bin/preferences_gen.h:7877 msgid "prefer unmasked instances" msgstr "無遮罩控制的模組優先" -#: ../build/bin/preferences_gen.h:7599 +#: ../build/bin/preferences_gen.h:7890 msgid "" "after applying the above rules, if instances of the module are unmasked, " "ignore masked instances" msgstr "當有模組實例未使用遮罩,快速鍵會忽略其他有使用遮罩範圍的相同模組" -#: ../build/bin/preferences_gen.h:7621 +#: ../build/bin/preferences_gen.h:7911 msgid "selection order" msgstr "依模組順序" -#: ../build/bin/preferences_gen.h:7659 +#: ../build/bin/preferences_gen.h:7925 msgid "" "after applying the above rules, apply the shortcut based on its position in " "the pixelpipe" msgstr "根據模組的處理順序套用快速鍵" -#: ../build/bin/preferences_gen.h:7681 +#: ../build/bin/preferences_gen.h:7946 msgid "allow visual assignment to specific instances" msgstr "手動控制特定模組" -#: ../build/bin/preferences_gen.h:7695 +#: ../build/bin/preferences_gen.h:7959 msgid "" "when multiple instances are present on an image this allows shortcuts to be " "visually assigned to those specific instances\n" @@ -2038,141 +2164,112 @@ "允許將快速鍵直接分配給某些特定的模組實例\n" "未勾選時快速鍵將依以上設定套用" -#: ../build/bin/preferences_gen.h:7705 +#: ../build/bin/preferences_gen.h:7968 msgid "map / geolocalization view" msgstr "地圖 / 地理位置檢視" -#: ../build/bin/preferences_gen.h:7725 +#: ../build/bin/preferences_gen.h:7987 msgid "pretty print the image location" msgstr "顯示美觀的影像位置" -#: ../build/bin/preferences_gen.h:7739 +#: ../build/bin/preferences_gen.h:8000 msgid "" "show a more readable representation of the location in the image information " "module" msgstr "在「影像資訊」模組中顯示更易辨讀的地理位置" -#: ../build/bin/preferences_gen.h:7749 +#: ../build/bin/preferences_gen.h:8009 msgid "slideshow view" msgstr "影像輪播" -#: ../build/bin/preferences_gen.h:7769 +#: ../build/bin/preferences_gen.h:8028 msgid "waiting time between each picture in slideshow" msgstr "每張影像之間的間隔時間" -#: ../build/bin/preferences_gen.h:7831 -msgid "session options" -msgstr "工作階段選項" - -#: ../build/bin/preferences_gen.h:7851 -msgid "base directory naming pattern" -msgstr "根目錄命名方式" - -#: ../build/bin/preferences_gen.h:7869 ../build/bin/preferences_gen.h:7909 -msgid "part of full import path for an import session" -msgstr "匯入作業的儲存路徑" - -#: ../build/bin/preferences_gen.h:7891 -msgid "sub directory naming pattern" -msgstr "子資料夾命名方式" - -#: ../build/bin/preferences_gen.h:7931 -msgid "keep original filename" -msgstr "保留原始檔名" - -#: ../build/bin/preferences_gen.h:7945 -msgid "" -"keep original filename instead of a pattern while importing from camera or " -"card" -msgstr "從相機或記憶卡匯入時保留原始檔名而不依下項方式重命名" - -#: ../build/bin/preferences_gen.h:7967 -msgid "file naming pattern" -msgstr "檔案命名方式" - -#: ../build/bin/preferences_gen.h:7985 -msgid "file naming pattern used for a import session" -msgstr "匯入作業的檔案命名方式" - -#: ../build/bin/preferences_gen.h:8022 +#: ../build/bin/preferences_gen.h:8088 msgid "do not set the 'uncategorized' entry for tags" msgstr "不要設定未分類標籤" -#: ../build/bin/preferences_gen.h:8036 +#: ../build/bin/preferences_gen.h:8101 msgid "" "do not set the 'uncategorized' entry for tags which do not have children" msgstr "不要為沒有子標籤的標籤設定「未分類」類別" -#: ../build/bin/preferences_gen.h:8058 +#: ../build/bin/preferences_gen.h:8122 msgid "tags case sensitivity" msgstr "標籤區分大小寫" -#: ../build/bin/preferences_gen.h:8096 +#: ../build/bin/preferences_gen.h:8136 msgid "" "tags case sensitivity. without the Sqlite ICU extension, insensitivity works " "only for the 26 latin letters" msgstr "設定標籤是否區分大小寫,僅限於 26 個英文字母" -#: ../build/bin/preferences_gen.h:8118 ../build/bin/preferences_gen.h:8358 +#: ../build/bin/preferences_gen.h:8157 ../build/bin/preferences_gen.h:8368 msgid "number of collections to be stored" msgstr "紀錄的相冊數量" -#: ../build/bin/preferences_gen.h:8142 ../build/bin/preferences_gen.h:8382 +#: ../build/bin/preferences_gen.h:8181 ../build/bin/preferences_gen.h:8392 msgid "the number of recent collections to store and show in this list" msgstr "要在最近用過的相冊中記錄和顯示的數量" -#: ../build/bin/preferences_gen.h:8164 +#: ../build/bin/preferences_gen.h:8202 msgid "hide the history button and show a specific module instead" msgstr "顯示「最近用過的相冊」模組" -#: ../build/bin/preferences_gen.h:8178 +#: ../build/bin/preferences_gen.h:8215 msgid "hide the history button and show the recent collections module instead" msgstr "隱藏歷史紀錄按鈕,顯示舊版「最近用過的相冊」模組" -#: ../build/bin/preferences_gen.h:8200 +#: ../build/bin/preferences_gen.h:8236 msgid "number of folder levels to show in lists" msgstr "顯示的資料夾層數" -#: ../build/bin/preferences_gen.h:8224 +#: ../build/bin/preferences_gen.h:8260 msgid "" "the number of folder levels to show in film roll names, starting from the " "right" msgstr "指定底片卷名稱之前要顯示的資料夾層數" -#: ../build/bin/preferences_gen.h:8246 +#: ../build/bin/preferences_gen.h:8281 msgid "sort film rolls by" msgstr "底片卷排列順序" -#: ../build/bin/preferences_gen.h:8284 +#: ../build/bin/preferences_gen.h:8292 +msgctxt "preferences" +msgid "chronological" +msgstr "依時序排列" + +#: ../build/bin/preferences_gen.h:8295 msgid "sets the collections-list order for film rolls" msgstr "" "設置底片卷的順序依「資料夾」(檔案路徑)或「影像識別碼」(匯入底片的日期)" -#: ../build/bin/preferences_gen.h:8306 +#: ../build/bin/preferences_gen.h:8316 msgid "sort collection descending" msgstr "降序排列相冊" -#: ../build/bin/preferences_gen.h:8320 +#: ../build/bin/preferences_gen.h:8329 msgid "" "sort the following collections in descending order: 'film roll' by folder, " "'folder', 'times' (e.g. 'capture date')" msgstr "以降序方式排列以下項目:「底片卷」、「資料夾」、「時間」" -#: ../build/bin/preferences_gen.h:8404 +#: ../build/bin/preferences_gen.h:8413 msgid "prefer a history button in the collections module" msgstr "使用「歷史紀錄」按鈕" -#: ../build/bin/preferences_gen.h:8418 +#: ../build/bin/preferences_gen.h:8426 msgid "" "hide this module and instead access collections history with a button in the " "collections module" msgstr "隱藏這個模組,使用相冊模組裡的「歷史紀錄」按鈕來套用過去的設定" -#: ../build/bin/preferences_gen.h:8472 +#: ../build/bin/preferences_gen.h:8483 msgid "suggested tags level of confidence" msgstr "建議標籤的可信度" -#: ../build/bin/preferences_gen.h:8497 +#: ../build/bin/preferences_gen.h:8508 #, no-c-format msgid "" "level of confidence to include the tag in the suggestions list, 0: all " @@ -2184,11 +2281,11 @@ "99:以 99% 的可信度匹配標籤\n" "100:不可能達到的水準,因此不會顯示符合的標籤,而是最近使用的標籤" -#: ../build/bin/preferences_gen.h:8519 +#: ../build/bin/preferences_gen.h:8529 msgid "number of recently attached tags" msgstr "最近使用的標籤數量" -#: ../build/bin/preferences_gen.h:8543 +#: ../build/bin/preferences_gen.h:8553 msgid "" "number of recently attached tags which are included in the suggestions list. " "the value `-1' disables the recent list" @@ -2212,14 +2309,15 @@ #. focal length #: ../build/lib/darktable/plugins/introspection_ashift.c:148 #: ../build/lib/darktable/plugins/introspection_ashift.c:291 -#: ../src/common/collection.c:714 ../src/gui/preferences.c:844 -#: ../src/gui/presets.c:718 ../src/libs/camera.c:550 -#: ../src/libs/metadata_view.c:143 +#: ../src/common/collection.c:627 ../src/gui/preferences.c:842 +#: ../src/gui/presets.c:721 ../src/libs/camera.c:550 +#: ../src/libs/metadata_view.c:145 msgid "focal length" msgstr "鏡頭焦距" #: ../build/lib/darktable/plugins/introspection_ashift.c:154 #: ../build/lib/darktable/plugins/introspection_ashift.c:295 +#: ../src/libs/metadata_view.c:147 msgid "crop factor" msgstr "裁切係數" @@ -2235,7 +2333,7 @@ #: ../build/lib/darktable/plugins/introspection_ashift.c:172 #: ../build/lib/darktable/plugins/introspection_ashift.c:307 -#: ../src/iop/lens.cc:3784 +#: ../src/iop/lens.cc:4438 msgid "lens model" msgstr "鏡頭型號" @@ -2257,14 +2355,14 @@ #. DEVELOP_MASK_DISABLED #: ../build/lib/darktable/plugins/introspection_ashift.c:366 -#: ../build/lib/darktable/plugins/introspection_colorin.c:300 +#: ../build/lib/darktable/plugins/introspection_colorin.c:303 #: ../build/lib/darktable/plugins/introspection_highlights.c:310 #: ../build/lib/darktable/plugins/introspection_vignette.c:264 #: ../src/develop/blend_gui.c:153 ../src/develop/blend_gui.c:182 -#: ../src/develop/blend_gui.c:3410 ../src/gui/accelerators.c:130 -#: ../src/gui/accelerators.c:140 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/imageio/format/j2k.c:669 -#: ../src/libs/live_view.c:361 ../src/libs/masks.c:113 +#: ../src/develop/blend_gui.c:3429 ../src/gui/accelerators.c:148 +#: ../src/gui/accelerators.c:158 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/imageio/format/j2k.c:686 +#: ../src/libs/live_view.c:361 msgid "off" msgstr "關閉" @@ -2288,7 +2386,7 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:146 #: ../build/lib/darktable/plugins/introspection_basecurve.c:239 -#: ../src/libs/metadata_view.c:142 +#: ../src/libs/metadata_view.c:144 msgid "exposure bias" msgstr "曝光補償" @@ -2308,16 +2406,16 @@ #: ../build/lib/darktable/plugins/introspection_basecurve.c:262 #: ../build/lib/darktable/plugins/introspection_basicadj.c:249 #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:153 -#: ../build/lib/darktable/plugins/introspection_lens.cc:444 +#: ../build/lib/darktable/plugins/introspection_lens.cc:533 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:251 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:153 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:270 -#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2193 -#: ../src/iop/channelmixerrgb.c:4667 ../src/iop/clipping.c:1900 -#: ../src/iop/clipping.c:2093 ../src/iop/clipping.c:2108 -#: ../src/iop/retouch.c:463 ../src/libs/collect.c:1907 -#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1023 -#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:132 +#: ../src/gui/guides.c:712 ../src/iop/basecurve.c:2214 +#: ../src/iop/channelmixerrgb.c:4735 ../src/iop/clipping.c:1953 +#: ../src/iop/clipping.c:2146 ../src/iop/clipping.c:2161 +#: ../src/iop/retouch.c:507 ../src/libs/collect.c:2043 +#: ../src/libs/colorpicker.c:51 ../src/libs/export.c:1101 +#: ../src/libs/filters/module_order.c:158 ../src/libs/histogram.c:109 #: ../src/libs/live_view.c:311 ../src/libs/print_settings.c:2835 msgid "none" msgstr "無" @@ -2335,7 +2433,7 @@ #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:252 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:154 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:271 -#: ../src/develop/blend_gui.c:2363 ../src/develop/blend_gui.c:2397 +#: ../src/develop/blend_gui.c:2379 ../src/develop/blend_gui.c:2413 msgid "luminance" msgstr "亮度" @@ -2445,7 +2543,7 @@ #: ../build/lib/darktable/plugins/introspection_graduatednd.c:144 #: ../build/lib/darktable/plugins/introspection_watermark.c:136 #: ../build/lib/darktable/plugins/introspection_watermark.c:265 -#: ../src/iop/ashift.c:6112 ../src/libs/masks.c:108 +#: ../src/iop/ashift.c:6059 ../src/libs/masks.c:109 msgid "rotation" msgstr "旋轉" @@ -2456,7 +2554,7 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:125 #: ../build/lib/darktable/plugins/introspection_blurs.c:202 -#: ../src/libs/masks.c:109 +#: ../src/libs/masks.c:110 msgid "curvature" msgstr "運動軌跡曲率" @@ -2464,13 +2562,13 @@ #: ../build/lib/darktable/plugins/introspection_blurs.c:206 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:81 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:148 -#: ../src/iop/colorbalancergb.c:1968 +#: ../src/iop/colorbalancergb.c:2039 msgid "offset" msgstr "偏移" #: ../build/lib/darktable/plugins/introspection_blurs.c:220 -#: ../src/common/collection.c:712 ../src/gui/preferences.c:828 -#: ../src/gui/presets.c:660 ../src/libs/metadata_view.c:139 +#: ../src/common/collection.c:625 ../src/gui/preferences.c:826 +#: ../src/gui/presets.c:663 ../src/libs/metadata_view.c:141 msgid "lens" msgstr "鏡頭" @@ -2486,63 +2584,90 @@ msgid "gaussian" msgstr "高斯" -#: ../build/lib/darktable/plugins/introspection_borders.c:112 -#: ../build/lib/darktable/plugins/introspection_borders.c:253 -#: ../src/common/collection.c:722 ../src/libs/filtering.c:59 +#: ../build/lib/darktable/plugins/introspection_borders.c:122 +#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../src/common/collection.c:635 ../src/libs/filtering.c:59 msgid "aspect ratio" msgstr "寬高比" #. // portrait / landscape -#: ../build/lib/darktable/plugins/introspection_borders.c:130 -#: ../build/lib/darktable/plugins/introspection_borders.c:265 +#: ../build/lib/darktable/plugins/introspection_borders.c:140 +#: ../build/lib/darktable/plugins/introspection_borders.c:281 #: ../src/iop/flip.c:75 ../src/libs/print_settings.c:2517 msgid "orientation" msgstr "方向" -#: ../build/lib/darktable/plugins/introspection_borders.c:136 -#: ../build/lib/darktable/plugins/introspection_borders.c:269 +#: ../build/lib/darktable/plugins/introspection_borders.c:146 +#: ../build/lib/darktable/plugins/introspection_borders.c:285 msgid "border size" msgstr "外框尺寸" -#: ../build/lib/darktable/plugins/introspection_borders.c:142 -#: ../build/lib/darktable/plugins/introspection_borders.c:273 +#: ../build/lib/darktable/plugins/introspection_borders.c:152 +#: ../build/lib/darktable/plugins/introspection_borders.c:289 msgid "horizontal offset" msgstr "水平偏移" -#: ../build/lib/darktable/plugins/introspection_borders.c:160 -#: ../build/lib/darktable/plugins/introspection_borders.c:285 +#: ../build/lib/darktable/plugins/introspection_borders.c:170 +#: ../build/lib/darktable/plugins/introspection_borders.c:301 msgid "vertical offset" msgstr "垂直偏移" -#: ../build/lib/darktable/plugins/introspection_borders.c:178 -#: ../build/lib/darktable/plugins/introspection_borders.c:297 +#: ../build/lib/darktable/plugins/introspection_borders.c:188 +#: ../build/lib/darktable/plugins/introspection_borders.c:313 msgid "frame line size" msgstr "框線尺寸" -#: ../build/lib/darktable/plugins/introspection_borders.c:184 -#: ../build/lib/darktable/plugins/introspection_borders.c:301 +#: ../build/lib/darktable/plugins/introspection_borders.c:194 +#: ../build/lib/darktable/plugins/introspection_borders.c:317 msgid "frame line offset" msgstr "框線偏移" -#: ../build/lib/darktable/plugins/introspection_borders.c:327 -#: ../src/gui/preferences.c:849 ../src/iop/ashift.c:6291 -#: ../src/iop/basicadj.c:632 ../src/iop/flip.c:472 ../src/iop/flip.c:474 -#: ../src/iop/levels.c:641 ../src/iop/rgblevels.c:1050 +#: ../build/lib/darktable/plugins/introspection_borders.c:218 +#: ../build/lib/darktable/plugins/introspection_borders.c:333 +msgid "basis" +msgstr "基於" + +#: ../build/lib/darktable/plugins/introspection_borders.c:347 +#: ../build/lib/darktable/plugins/introspection_borders.c:353 +#: ../src/gui/preferences.c:847 ../src/imageio/format/jpeg.c:604 +#: ../src/iop/ashift.c:6238 ../src/iop/basicadj.c:662 ../src/iop/flip.c:470 +#: ../src/iop/flip.c:472 ../src/iop/levels.c:657 ../src/iop/rgblevels.c:1105 msgid "auto" msgstr "自動" -#: ../build/lib/darktable/plugins/introspection_borders.c:328 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:309 +#: ../build/lib/darktable/plugins/introspection_borders.c:348 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:315 #: ../src/libs/filters/ratio.c:122 ../src/libs/print_settings.c:2519 msgid "portrait" msgstr "直式" -#: ../build/lib/darktable/plugins/introspection_borders.c:329 -#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:305 +#: ../build/lib/darktable/plugins/introspection_borders.c:349 +#: ../src/imageio/format/pdf.c:604 ../src/libs/filtering.c:311 #: ../src/libs/filters/ratio.c:124 ../src/libs/print_settings.c:2519 msgid "landscape" msgstr "橫式" +#: ../build/lib/darktable/plugins/introspection_borders.c:354 +#: ../src/iop/relight.c:275 ../src/libs/export.c:1223 +#: ../src/libs/metadata_view.c:151 ../src/libs/print_settings.c:2537 +msgid "width" +msgstr "寬度" + +#: ../build/lib/darktable/plugins/introspection_borders.c:355 +#: ../build/lib/darktable/plugins/introspection_watermark.c:326 +#: ../src/libs/export.c:1229 ../src/libs/metadata_view.c:152 +#: ../src/libs/print_settings.c:2541 +msgid "height" +msgstr "高度" + +#: ../build/lib/darktable/plugins/introspection_borders.c:356 +msgid "shorter" +msgstr "短邊" + +#: ../build/lib/darktable/plugins/introspection_borders.c:357 +msgid "longer" +msgstr "長邊" + #: ../build/lib/darktable/plugins/introspection_cacorrect.c:42 #: ../build/lib/darktable/plugins/introspection_cacorrect.c:91 msgid "avoid colorshift" @@ -2589,9 +2714,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:67 #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:132 -#: ../src/iop/atrous.c:1522 ../src/iop/bilateral.cc:350 ../src/iop/clahe.c:335 -#: ../src/iop/dither.c:760 ../src/iop/lowpass.c:584 ../src/iop/shadhi.c:675 -#: ../src/iop/sharpen.c:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:340 +#: ../build/lib/darktable/plugins/introspection_lens.cc:501 +#: ../src/iop/atrous.c:1636 ../src/iop/bilateral.cc:352 ../src/iop/clahe.c:337 +#: ../src/iop/dither.c:762 ../src/iop/lowpass.c:597 ../src/iop/shadhi.c:710 +#: ../src/iop/sharpen.c:435 msgid "radius" msgstr "半徑" @@ -2599,9 +2726,11 @@ #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:136 #: ../build/lib/darktable/plugins/introspection_highlights.c:137 #: ../build/lib/darktable/plugins/introspection_highlights.c:240 -#: ../src/iop/bloom.c:376 ../src/iop/denoiseprofile.c:3818 -#: ../src/iop/grain.c:584 ../src/iop/hazeremoval.c:201 -#: ../src/iop/hotpixels.c:388 ../src/iop/nlmeans.c:460 ../src/iop/velvia.c:279 +#: ../build/lib/darktable/plugins/introspection_lens.cc:334 +#: ../build/lib/darktable/plugins/introspection_lens.cc:497 +#: ../src/iop/bloom.c:372 ../src/iop/denoiseprofile.c:3822 +#: ../src/iop/grain.c:602 ../src/iop/hazeremoval.c:203 +#: ../src/iop/hotpixels.c:467 ../src/iop/nlmeans.c:463 ../src/iop/velvia.c:288 msgid "strength" msgstr "強度" @@ -2616,41 +2745,41 @@ msgstr "非常嚴重的色像差" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:158 -#: ../src/common/collection.c:1507 ../src/common/color_vocabulary.c:232 -#: ../src/common/colorlabels.c:334 ../src/develop/blend_gui.c:2330 -#: ../src/develop/blend_gui.c:2378 ../src/develop/lightroom.c:834 -#: ../src/gui/gtk.c:3137 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:354 -#: ../src/iop/channelmixer.c:618 ../src/iop/channelmixer.c:628 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/colorzones.c:2263 -#: ../src/iop/temperature.c:1935 ../src/iop/temperature.c:2129 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:260 -#: ../src/libs/histogram.c:2397 +#: ../src/common/collection.c:1374 ../src/common/color_vocabulary.c:232 +#: ../src/common/colorlabels.c:333 ../src/develop/blend_gui.c:2346 +#: ../src/develop/blend_gui.c:2394 ../src/develop/lightroom.c:887 +#: ../src/gui/gtk.c:3183 ../src/gui/guides.c:730 ../src/iop/bilateral.cc:356 +#: ../src/iop/channelmixer.c:637 ../src/iop/channelmixer.c:647 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/colorzones.c:2499 +#: ../src/iop/temperature.c:1912 ../src/iop/temperature.c:2094 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:260 +#: ../src/libs/histogram.c:2724 msgid "red" msgstr "紅" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:159 -#: ../src/common/collection.c:1511 ../src/common/color_vocabulary.c:277 -#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2336 -#: ../src/develop/blend_gui.c:2384 ../src/develop/lightroom.c:838 -#: ../src/gui/gtk.c:3138 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:359 -#: ../src/iop/channelmixer.c:619 ../src/iop/channelmixer.c:634 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/colorzones.c:2266 -#: ../src/iop/temperature.c:1919 ../src/iop/temperature.c:1937 -#: ../src/iop/temperature.c:2130 ../src/libs/collect.c:1791 -#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2389 +#: ../src/common/collection.c:1378 ../src/common/color_vocabulary.c:277 +#: ../src/common/colorlabels.c:335 ../src/develop/blend_gui.c:2352 +#: ../src/develop/blend_gui.c:2400 ../src/develop/lightroom.c:891 +#: ../src/gui/gtk.c:3184 ../src/gui/guides.c:731 ../src/iop/bilateral.cc:361 +#: ../src/iop/channelmixer.c:638 ../src/iop/channelmixer.c:653 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/colorzones.c:2502 +#: ../src/iop/temperature.c:1896 ../src/iop/temperature.c:1914 +#: ../src/iop/temperature.c:2095 ../src/libs/collect.c:1916 +#: ../src/libs/filters/colors.c:262 ../src/libs/histogram.c:2715 msgid "green" msgstr "綠" #: ../build/lib/darktable/plugins/introspection_cacorrectrgb.c:160 -#: ../src/common/collection.c:1513 ../src/common/color_vocabulary.c:324 -#: ../src/common/colorlabels.c:337 ../src/develop/blend_gui.c:2342 -#: ../src/develop/blend_gui.c:2390 ../src/develop/lightroom.c:840 -#: ../src/gui/gtk.c:3139 ../src/iop/bilateral.cc:364 -#: ../src/iop/channelmixer.c:620 ../src/iop/channelmixer.c:640 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/colorzones.c:2268 -#: ../src/iop/temperature.c:1939 ../src/iop/temperature.c:2131 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:263 -#: ../src/libs/histogram.c:2381 +#: ../src/common/collection.c:1380 ../src/common/color_vocabulary.c:324 +#: ../src/common/colorlabels.c:336 ../src/develop/blend_gui.c:2358 +#: ../src/develop/blend_gui.c:2406 ../src/develop/lightroom.c:893 +#: ../src/gui/gtk.c:3185 ../src/iop/bilateral.cc:366 +#: ../src/iop/channelmixer.c:639 ../src/iop/channelmixer.c:659 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/colorzones.c:2504 +#: ../src/iop/temperature.c:1916 ../src/iop/temperature.c:2096 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:263 +#: ../src/libs/histogram.c:2706 msgid "blue" msgstr "藍" @@ -2893,7 +3022,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:303 #: ../build/lib/darktable/plugins/introspection_crop.c:61 #: ../build/lib/darktable/plugins/introspection_crop.c:134 -#: ../src/gui/gtk.c:1141 ../src/iop/atrous.c:1518 +#: ../src/gui/gtk.c:1234 ../src/iop/atrous.c:1632 msgid "left" msgstr "左" @@ -2901,7 +3030,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:307 #: ../build/lib/darktable/plugins/introspection_crop.c:67 #: ../build/lib/darktable/plugins/introspection_crop.c:138 -#: ../src/gui/accelerators.c:113 ../src/gui/gtk.c:1155 +#: ../src/gui/accelerators.c:131 ../src/gui/gtk.c:1240 msgid "top" msgstr "上" @@ -2909,7 +3038,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:311 #: ../build/lib/darktable/plugins/introspection_crop.c:73 #: ../build/lib/darktable/plugins/introspection_crop.c:142 -#: ../src/gui/gtk.c:1148 ../src/iop/atrous.c:1517 +#: ../src/gui/gtk.c:1237 ../src/iop/atrous.c:1631 msgid "right" msgstr "右" @@ -2917,7 +3046,7 @@ #: ../build/lib/darktable/plugins/introspection_clipping.c:315 #: ../build/lib/darktable/plugins/introspection_crop.c:79 #: ../build/lib/darktable/plugins/introspection_crop.c:146 -#: ../src/gui/accelerators.c:114 ../src/gui/gtk.c:1162 +#: ../src/gui/accelerators.c:132 ../src/gui/gtk.c:1243 msgid "bottom" msgstr "下" @@ -2956,10 +3085,11 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:477 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:489 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:501 -#: ../src/develop/blend_gui.c:2356 ../src/develop/blend_gui.c:2404 -#: ../src/iop/atrous.c:1667 ../src/iop/channelmixerrgb.c:4457 -#: ../src/iop/channelmixerrgb.c:4573 ../src/iop/colorbalancergb.c:1895 -#: ../src/iop/colorzones.c:2402 ../src/iop/nlmeans.c:468 +#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 +#: ../src/develop/blend_gui.c:2372 ../src/develop/blend_gui.c:2420 +#: ../src/iop/atrous.c:1801 ../src/iop/channelmixerrgb.c:4525 +#: ../src/iop/channelmixerrgb.c:4641 ../src/iop/colorbalancergb.c:1966 +#: ../src/iop/colorzones.c:2645 ../src/iop/nlmeans.c:471 msgid "chroma" msgstr "彩度" @@ -2979,11 +3109,11 @@ #: ../build/lib/darktable/plugins/introspection_splittoning.c:73 #: ../build/lib/darktable/plugins/introspection_splittoning.c:134 #: ../build/lib/darktable/plugins/introspection_splittoning.c:142 -#: ../src/develop/blend_gui.c:2315 ../src/develop/blend_gui.c:2349 -#: ../src/develop/blend_gui.c:2411 ../src/iop/channelmixer.c:615 -#: ../src/iop/channelmixerrgb.c:4450 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/colorbalance.c:2042 ../src/iop/colorize.c:330 -#: ../src/iop/colorreconstruction.c:1240 ../src/iop/colorzones.c:2403 +#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2365 +#: ../src/develop/blend_gui.c:2427 ../src/iop/channelmixer.c:634 +#: ../src/iop/channelmixerrgb.c:4518 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/colorbalance.c:2017 ../src/iop/colorize.c:343 +#: ../src/iop/colorreconstruction.c:1249 ../src/iop/colorzones.c:2646 msgid "hue" msgstr "色相" @@ -3010,9 +3140,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:569 #: ../build/lib/darktable/plugins/introspection_toneequal.c:156 #: ../build/lib/darktable/plugins/introspection_toneequal.c:297 -#: ../src/iop/bilat.c:469 ../src/iop/colorbalance.c:2099 -#: ../src/iop/negadoctor.c:915 ../src/iop/shadhi.c:671 -#: ../src/iop/splittoning.c:507 +#: ../src/iop/bilat.c:479 ../src/iop/colorbalance.c:2074 +#: ../src/iop/negadoctor.c:934 ../src/iop/shadhi.c:706 +#: ../src/iop/splittoning.c:503 msgid "shadows" msgstr "暗部" @@ -3024,9 +3154,9 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:561 #: ../build/lib/darktable/plugins/introspection_toneequal.c:180 #: ../build/lib/darktable/plugins/introspection_toneequal.c:313 -#: ../src/iop/bilat.c:463 ../src/iop/colorbalance.c:2101 -#: ../src/iop/monochrome.c:561 ../src/iop/shadhi.c:672 -#: ../src/iop/splittoning.c:514 +#: ../src/iop/bilat.c:473 ../src/iop/colorbalance.c:2076 +#: ../src/iop/monochrome.c:583 ../src/iop/shadhi.c:707 +#: ../src/iop/splittoning.c:510 msgid "highlights" msgstr "亮部" @@ -3043,13 +3173,13 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:565 #: ../build/lib/darktable/plugins/introspection_toneequal.c:168 #: ../build/lib/darktable/plugins/introspection_toneequal.c:305 -#: ../src/iop/colorbalance.c:2100 +#: ../src/iop/colorbalance.c:2075 msgid "mid-tones" msgstr "中間調" #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:340 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:537 -#: ../src/iop/filmic.c:1576 +#: ../src/iop/filmic.c:1601 msgid "global saturation" msgstr "整體飽和度" @@ -3080,12 +3210,12 @@ #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:412 #: ../build/lib/darktable/plugins/introspection_colorbalancergb.c:585 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:64 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:137 -#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:607 ../src/iop/bilat.c:458 -#: ../src/iop/colisa.c:304 ../src/iop/colorbalance.c:1947 -#: ../src/iop/colorbalance.c:1953 ../src/iop/filmic.c:1548 -#: ../src/iop/filmicrgb.c:4551 ../src/iop/lowpass.c:586 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:116 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:237 +#: ../src/gui/guides.c:740 ../src/iop/basicadj.c:637 ../src/iop/bilat.c:468 +#: ../src/iop/colisa.c:298 ../src/iop/colorbalance.c:1922 +#: ../src/iop/colorbalance.c:1928 ../src/iop/filmic.c:1573 +#: ../src/iop/filmicrgb.c:4615 ../src/iop/lowpass.c:599 msgid "contrast" msgstr "對比" @@ -3112,33 +3242,35 @@ msgid "blue-yellow contrast" msgstr "藍色 - 黃色 對比" -#: ../build/lib/darktable/plugins/introspection_colorin.c:148 -#: ../build/lib/darktable/plugins/introspection_colorin.c:231 +#: ../build/lib/darktable/plugins/introspection_colorin.c:150 +#: ../build/lib/darktable/plugins/introspection_colorin.c:233 msgid "gamut clipping" msgstr "色域剪裁" -#: ../build/lib/darktable/plugins/introspection_colorin.c:301 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:201 -#: ../src/common/colorspaces.c:1251 ../src/common/colorspaces.c:1484 +#: ../build/lib/darktable/plugins/introspection_colorin.c:304 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:312 +#: ../src/common/colorspaces.c:1410 ../src/common/colorspaces.c:1700 #: ../src/libs/print_settings.c:1356 msgid "sRGB" msgstr "sRGB" -#: ../build/lib/darktable/plugins/introspection_colorin.c:302 -#: ../src/common/colorspaces.c:1260 ../src/common/colorspaces.c:1486 +#: ../build/lib/darktable/plugins/introspection_colorin.c:305 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:311 +#: ../src/common/colorspaces.c:1421 ../src/common/colorspaces.c:1702 #: ../src/libs/print_settings.c:1363 msgid "Adobe RGB (compatible)" msgstr "Adobe RGB(相容)" -#: ../build/lib/darktable/plugins/introspection_colorin.c:303 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 -#: ../src/common/colorspaces.c:1265 ../src/common/colorspaces.c:1488 +#: ../build/lib/darktable/plugins/introspection_colorin.c:306 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 +#: ../src/common/colorspaces.c:1428 ../src/common/colorspaces.c:1704 msgid "linear Rec709 RGB" msgstr "線性 Rec. 709" -#: ../build/lib/darktable/plugins/introspection_colorin.c:304 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:205 -#: ../src/common/colorspaces.c:1274 ../src/common/colorspaces.c:1490 +#: ../build/lib/darktable/plugins/introspection_colorin.c:307 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:206 +#: ../src/common/colorspaces.c:1442 ../src/common/colorspaces.c:1706 msgid "linear Rec2020 RGB" msgstr "線性 Rec. 2020" @@ -3166,7 +3298,7 @@ #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:127 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:45 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:92 -#: ../src/iop/shadhi.c:686 +#: ../src/iop/shadhi.c:721 msgid "spatial extent" msgstr "距離範圍" @@ -3176,7 +3308,7 @@ msgstr "亮度範圍" #: ../build/lib/darktable/plugins/introspection_colorreconstruction.c:154 -#: ../src/iop/channelmixerrgb.c:4669 +#: ../src/iop/channelmixerrgb.c:4737 msgid "saturated colors" msgstr "飽和色彩" @@ -3190,7 +3322,7 @@ #: ../build/lib/darktable/plugins/introspection_colorzones.c:233 #: ../build/lib/darktable/plugins/introspection_soften.c:66 #: ../build/lib/darktable/plugins/introspection_soften.c:121 -#: ../src/iop/atrous.c:1689 +#: ../src/iop/atrous.c:1835 msgid "mix" msgstr "混合" @@ -3200,33 +3332,17 @@ msgstr "處理模式" #: ../build/lib/darktable/plugins/introspection_colorzones.c:255 -#: ../src/develop/blend_gui.c:2294 ../src/iop/channelmixer.c:617 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/colorchecker.c:1448 -#: ../src/iop/colorize.c:349 ../src/iop/colorzones.c:2401 -#: ../src/iop/exposure.c:1239 +#: ../src/develop/blend_gui.c:2310 ../src/iop/channelmixer.c:636 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/colorchecker.c:1453 +#: ../src/iop/colorize.c:362 ../src/iop/colorzones.c:2644 +#: ../src/iop/exposure.c:1257 msgid "lightness" msgstr "明度" -#: ../build/lib/darktable/plugins/introspection_colorzones.c:256 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 -#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 -#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 -#: ../src/develop/blend_gui.c:2310 ../src/iop/basicadj.c:624 -#: ../src/iop/channelmixer.c:616 ../src/iop/colisa.c:306 -#: ../src/iop/colorbalance.c:2059 ../src/iop/colorbalancergb.c:1919 -#: ../src/iop/colorchecker.c:1483 ../src/iop/colorcontrast.c:90 -#: ../src/iop/colorcorrection.c:275 ../src/iop/colorize.c:343 -#: ../src/iop/lowpass.c:588 ../src/iop/soften.c:373 ../src/iop/velvia.c:84 -#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:971 -msgid "saturation" -msgstr "飽和度" - #: ../build/lib/darktable/plugins/introspection_colorzones.c:267 -#: ../src/iop/atrous.c:1309 ../src/iop/atrous.c:1313 -#: ../src/iop/denoiseprofile.c:3527 ../src/iop/rawdenoise.c:755 +#: ../src/iop/atrous.c:1410 ../src/iop/atrous.c:1414 +#: ../src/iop/denoiseprofile.c:3531 ../src/iop/rawdenoise.c:771 +#: ../src/iop/sigmoid.c:292 msgid "smooth" msgstr "平滑" @@ -3243,9 +3359,9 @@ #: ../build/lib/darktable/plugins/introspection_defringe.c:106 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:230 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:435 -#: ../src/iop/atrous.c:1572 ../src/iop/bloom.c:372 -#: ../src/iop/colorreconstruction.c:1236 ../src/iop/hotpixels.c:384 -#: ../src/iop/sharpen.c:449 +#: ../src/iop/atrous.c:1695 ../src/iop/bloom.c:368 +#: ../src/iop/colorreconstruction.c:1245 ../src/iop/hotpixels.c:463 +#: ../src/iop/sharpen.c:444 msgid "threshold" msgstr "臨界值" @@ -3380,7 +3496,7 @@ #. history #: ../build/lib/darktable/plugins/introspection_demosaic.c:232 -#: ../src/common/collection.c:1526 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1394 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "basic" msgstr "基本" @@ -3453,12 +3569,9 @@ msgid "upgrade profiled transform" msgstr "升級分析轉換" -#. -#. * Color mode combo box -#. #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:257 #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:388 -#: ../src/imageio/format/avif.c:786 ../src/libs/colorpicker.c:584 +#: ../src/libs/colorpicker.c:659 msgid "color mode" msgstr "色彩模式" @@ -3483,7 +3596,7 @@ msgstr "計算變異數" #: ../build/lib/darktable/plugins/introspection_denoiseprofile.c:410 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:266 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:292 msgid "RGB" msgstr "RGB" @@ -3494,7 +3607,7 @@ #. two more sharpness (standard & strong) #: ../build/lib/darktable/plugins/introspection_diffuse.c:123 #: ../build/lib/darktable/plugins/introspection_diffuse.c:248 -#: ../src/iop/atrous.c:1564 ../src/iop/diffuse.c:630 ../src/iop/highpass.c:381 +#: ../src/iop/atrous.c:1685 ../src/iop/diffuse.c:657 ../src/iop/highpass.c:376 msgid "sharpness" msgstr "銳利度" @@ -3658,7 +3771,7 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:212 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:423 -#: ../src/iop/filmic.c:1489 +#: ../src/iop/filmic.c:1514 msgid "middle gray luminance" msgstr "中灰亮度" @@ -3666,13 +3779,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:427 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:97 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:166 -#: ../src/iop/filmic.c:1514 +#: ../src/iop/filmic.c:1539 msgid "black relative exposure" msgstr "黑點相對曝光" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:224 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:431 -#: ../src/iop/filmic.c:1501 +#: ../src/iop/filmic.c:1526 msgid "white relative exposure" msgstr "白點相對曝光" @@ -3703,19 +3816,19 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:266 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:459 -#: ../src/iop/filmic.c:1646 +#: ../src/iop/filmic.c:1671 msgid "target middle gray" msgstr "輸出中灰色亮度" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:272 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:463 -#: ../src/iop/filmic.c:1637 +#: ../src/iop/filmic.c:1662 msgid "target black luminance" msgstr "輸出黑點亮度" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:278 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:467 -#: ../src/iop/filmic.c:1655 +#: ../src/iop/filmic.c:1680 msgid "target white luminance" msgstr "輸出白點亮度" @@ -3723,13 +3836,13 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:471 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:69 #: ../build/lib/darktable/plugins/introspection_graduatednd.c:140 -#: ../src/libs/masks.c:106 +#: ../src/libs/masks.c:107 msgid "hardness" msgstr "冪函數曲線硬度" #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:302 #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:483 -#: ../src/iop/filmic.c:1586 ../src/iop/filmicrgb.c:4729 +#: ../src/iop/filmic.c:1611 ../src/iop/filmicrgb.c:4793 msgid "extreme luminance saturation" msgstr "極端亮度的飽和度" @@ -3800,11 +3913,11 @@ #: ../build/lib/darktable/plugins/introspection_filmicrgb.c:549 #: ../build/lib/darktable/plugins/introspection_toneequal.c:371 -#: ../src/common/database.c:2785 ../src/common/variables.c:705 -#: ../src/develop/imageop_gui.c:209 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 +#: ../src/common/variables.c:714 ../src/develop/imageop_gui.c:209 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 msgid "no" msgstr "否" @@ -3906,9 +4019,25 @@ msgid "density" msgstr "濃度" +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:93 +#: ../build/lib/darktable/plugins/introspection_graduatednd.c:156 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:67 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:79 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:138 +#: ../build/lib/darktable/plugins/introspection_splittoning.c:146 +#: ../src/develop/blend_gui.c:2326 ../src/iop/basicadj.c:654 +#: ../src/iop/channelmixer.c:635 ../src/iop/colisa.c:300 +#: ../src/iop/colorbalance.c:2034 ../src/iop/colorbalancergb.c:1990 +#: ../src/iop/colorchecker.c:1488 ../src/iop/colorcontrast.c:82 +#: ../src/iop/colorcorrection.c:268 ../src/iop/colorize.c:356 +#: ../src/iop/lowpass.c:601 ../src/iop/soften.c:368 ../src/iop/velvia.c:75 +#: ../src/iop/vibrance.c:72 ../src/iop/vignette.c:1058 +msgid "saturation" +msgstr "飽和度" + #: ../build/lib/darktable/plugins/introspection_grain.c:58 #: ../build/lib/darktable/plugins/introspection_grain.c:117 -#: ../src/iop/bilat.c:450 +#: ../src/iop/bilat.c:460 msgid "coarseness" msgstr "粗糙度" @@ -3921,7 +4050,7 @@ #: ../build/lib/darktable/plugins/introspection_highlights.c:143 #: ../build/lib/darktable/plugins/introspection_highlights.c:244 -#: ../src/views/darkroom.c:2406 +#: ../src/views/darkroom.c:2245 msgid "clipping threshold" msgstr "過曝剪裁門檻" @@ -4057,168 +4186,172 @@ msgid "detect by 3 neighbors" msgstr "熱壞點的標準由 4 個減至 3 個周邊像素" -#: ../build/lib/darktable/plugins/introspection_lens.cc:162 -#: ../build/lib/darktable/plugins/introspection_lens.cc:337 +#: ../build/lib/darktable/plugins/introspection_lens.cc:190 +#: ../build/lib/darktable/plugins/introspection_lens.cc:401 msgid "correction method" msgstr "校正模式" #. Page CORRECTIONS -#: ../build/lib/darktable/plugins/introspection_lens.cc:168 -#: ../build/lib/darktable/plugins/introspection_lens.cc:341 -#: ../src/iop/negadoctor.c:900 +#: ../build/lib/darktable/plugins/introspection_lens.cc:196 +#: ../build/lib/darktable/plugins/introspection_lens.cc:405 +#: ../src/iop/negadoctor.c:919 msgid "corrections" msgstr "校正項目" #. mode choice -#. Add check to control whether the style is to replace or append the current module -#: ../build/lib/darktable/plugins/introspection_lens.cc:174 -#: ../build/lib/darktable/plugins/introspection_lens.cc:345 +#: ../build/lib/darktable/plugins/introspection_lens.cc:202 +#: ../build/lib/darktable/plugins/introspection_lens.cc:409 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:128 #: ../build/lib/darktable/plugins/introspection_rgbcurve.c:219 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:51 #: ../build/lib/darktable/plugins/introspection_rgblevels.c:118 -#: ../src/iop/bilat.c:428 ../src/iop/colorbalance.c:1909 -#: ../src/iop/denoiseprofile.c:3806 ../src/iop/exposure.c:1157 -#: ../src/iop/levels.c:684 ../src/iop/profile_gamma.c:668 -#: ../src/libs/copy_history.c:399 ../src/libs/export.c:1262 -#: ../src/libs/image.c:597 ../src/libs/print_settings.c:2875 -#: ../src/libs/styles.c:846 ../src/views/darkroom.c:2387 +#: ../src/develop/blend_gui.c:3546 ../src/iop/bilat.c:438 +#: ../src/iop/colorbalance.c:1884 ../src/iop/denoiseprofile.c:3810 +#: ../src/iop/exposure.c:1175 ../src/iop/levels.c:700 +#: ../src/iop/profile_gamma.c:682 ../src/libs/copy_history.c:399 +#: ../src/libs/export.c:1376 ../src/libs/image.c:666 +#: ../src/libs/print_settings.c:2875 ../src/libs/styles.c:850 +#: ../src/views/darkroom.c:2226 msgid "mode" msgstr "模式" -#: ../build/lib/darktable/plugins/introspection_lens.cc:210 -#: ../build/lib/darktable/plugins/introspection_lens.cc:369 -#: ../src/iop/lens.cc:3820 +#: ../build/lib/darktable/plugins/introspection_lens.cc:238 +#: ../build/lib/darktable/plugins/introspection_lens.cc:433 +#: ../src/iop/lens.cc:4474 msgid "target geometry" msgstr "幾何校正方式" -#: ../build/lib/darktable/plugins/introspection_lens.cc:240 -#: ../build/lib/darktable/plugins/introspection_lens.cc:389 +#: ../build/lib/darktable/plugins/introspection_lens.cc:268 +#: ../build/lib/darktable/plugins/introspection_lens.cc:453 msgid "TCA overwrite" msgstr "手動設定橫向色像差" -#: ../build/lib/darktable/plugins/introspection_lens.cc:246 -#: ../build/lib/darktable/plugins/introspection_lens.cc:393 +#: ../build/lib/darktable/plugins/introspection_lens.cc:274 +#: ../build/lib/darktable/plugins/introspection_lens.cc:298 +#: ../build/lib/darktable/plugins/introspection_lens.cc:457 +#: ../build/lib/darktable/plugins/introspection_lens.cc:473 msgid "TCA red" msgstr "紅色橫向色像差" -#: ../build/lib/darktable/plugins/introspection_lens.cc:252 -#: ../build/lib/darktable/plugins/introspection_lens.cc:397 +#: ../build/lib/darktable/plugins/introspection_lens.cc:280 +#: ../build/lib/darktable/plugins/introspection_lens.cc:304 +#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:477 msgid "TCA blue" msgstr "藍色橫向色像差" -#: ../build/lib/darktable/plugins/introspection_lens.cc:258 -#: ../build/lib/darktable/plugins/introspection_lens.cc:401 -msgid "distortion fine-tune" -msgstr "變形校正微調" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:264 -#: ../build/lib/darktable/plugins/introspection_lens.cc:405 -msgid "vignetting fine-tune" -msgstr "暗角校正微調" - -#: ../build/lib/darktable/plugins/introspection_lens.cc:270 -#: ../build/lib/darktable/plugins/introspection_lens.cc:409 -msgid "TCA red fine-tune" -msgstr "微調藍色橫向色像差(red TCA)" +#: ../build/lib/darktable/plugins/introspection_lens.cc:286 +#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +msgid "distortion" +msgstr "變形" -#: ../build/lib/darktable/plugins/introspection_lens.cc:276 -#: ../build/lib/darktable/plugins/introspection_lens.cc:413 -msgid "TCA blue fine-tune" -msgstr "微調藍色橫向色像差(blue TCA)" +#: ../build/lib/darktable/plugins/introspection_lens.cc:292 +#: ../build/lib/darktable/plugins/introspection_lens.cc:469 +#: ../src/iop/vignette.c:114 +msgid "vignetting" +msgstr "暗角" -#: ../build/lib/darktable/plugins/introspection_lens.cc:282 -#: ../build/lib/darktable/plugins/introspection_lens.cc:417 +#: ../build/lib/darktable/plugins/introspection_lens.cc:310 +#: ../build/lib/darktable/plugins/introspection_lens.cc:481 msgid "scale fine-tune" msgstr "縮放微調" -#: ../build/lib/darktable/plugins/introspection_lens.cc:294 -#: ../build/lib/darktable/plugins/introspection_lens.cc:425 +#: ../build/lib/darktable/plugins/introspection_lens.cc:322 +#: ../build/lib/darktable/plugins/introspection_lens.cc:489 msgid "image scale" msgstr "影像比例" -#: ../build/lib/darktable/plugins/introspection_lens.cc:439 +#: ../build/lib/darktable/plugins/introspection_lens.cc:346 +#: ../build/lib/darktable/plugins/introspection_lens.cc:505 +msgid "steepness" +msgstr "暗角量" + +#: ../build/lib/darktable/plugins/introspection_lens.cc:527 msgid "embedded metadata" msgstr "檔案內嵌的數據" -#: ../build/lib/darktable/plugins/introspection_lens.cc:440 +#: ../build/lib/darktable/plugins/introspection_lens.cc:528 msgid "Lensfun database" msgstr "Lensfun 資料庫" +#: ../build/lib/darktable/plugins/introspection_lens.cc:529 +msgid "only manual vignette" +msgstr "僅手動暗角" + #. get nice text for bounds #. Side-border hide/show -#: ../build/lib/darktable/plugins/introspection_lens.cc:445 -#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2367 -#: ../src/gui/accelerators.c:2447 ../src/gui/gtk.c:1204 ../src/gui/gtk.c:3136 -#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3709 -#: ../src/iop/rawdenoise.c:893 ../src/libs/collect.c:3066 -#: ../src/libs/filtering.c:1459 ../src/libs/filters/colors.c:157 +#: ../build/lib/darktable/plugins/introspection_lens.cc:534 +#: ../src/dtgtk/range.c:1763 ../src/gui/accelerators.c:2592 +#: ../src/gui/accelerators.c:2674 ../src/gui/gtk.c:1282 ../src/gui/gtk.c:3182 +#: ../src/imageio/format/pdf.c:645 ../src/iop/denoiseprofile.c:3713 +#: ../src/iop/rawdenoise.c:909 ../src/libs/collect.c:3413 +#: ../src/libs/filtering.c:1521 ../src/libs/filters/colors.c:157 #: ../src/libs/filters/colors.c:265 ../src/libs/filters/rating.c:211 msgid "all" msgstr "全部" -#: ../build/lib/darktable/plugins/introspection_lens.cc:446 +#: ../build/lib/darktable/plugins/introspection_lens.cc:535 msgid "distortion & TCA" msgstr "變形和橫向色像差" -#: ../build/lib/darktable/plugins/introspection_lens.cc:447 +#: ../build/lib/darktable/plugins/introspection_lens.cc:536 msgid "distortion & vignetting" msgstr "變形和暗角" -#: ../build/lib/darktable/plugins/introspection_lens.cc:448 +#: ../build/lib/darktable/plugins/introspection_lens.cc:537 msgid "TCA & vignetting" msgstr "橫向色像差和暗角" -#: ../build/lib/darktable/plugins/introspection_lens.cc:449 +#: ../build/lib/darktable/plugins/introspection_lens.cc:538 msgid "only distortion" msgstr "僅變形" -#: ../build/lib/darktable/plugins/introspection_lens.cc:450 +#: ../build/lib/darktable/plugins/introspection_lens.cc:539 msgid "only TCA" msgstr "僅橫向色像差" -#: ../build/lib/darktable/plugins/introspection_lens.cc:451 +#: ../build/lib/darktable/plugins/introspection_lens.cc:540 msgid "only vignetting" msgstr "僅暗角" -#: ../build/lib/darktable/plugins/introspection_lens.cc:455 -#: ../src/libs/modulegroups.c:2318 +#: ../build/lib/darktable/plugins/introspection_lens.cc:544 +#: ../src/libs/modulegroups.c:2302 msgid "correct" msgstr "校正" -#: ../build/lib/darktable/plugins/introspection_lens.cc:456 +#: ../build/lib/darktable/plugins/introspection_lens.cc:545 msgid "distort" msgstr "變形" -#: ../build/lib/darktable/plugins/introspection_lens.cc:461 +#: ../build/lib/darktable/plugins/introspection_lens.cc:550 msgid "rectilinear" msgstr "拉直" -#: ../build/lib/darktable/plugins/introspection_lens.cc:462 +#: ../build/lib/darktable/plugins/introspection_lens.cc:551 msgid "fisheye" msgstr "魚眼" -#: ../build/lib/darktable/plugins/introspection_lens.cc:463 +#: ../build/lib/darktable/plugins/introspection_lens.cc:552 msgid "panoramic" msgstr "全景" -#: ../build/lib/darktable/plugins/introspection_lens.cc:464 +#: ../build/lib/darktable/plugins/introspection_lens.cc:553 msgid "equirectangular" msgstr "等距長方投影(球形全景圖)" -#: ../build/lib/darktable/plugins/introspection_lens.cc:465 +#: ../build/lib/darktable/plugins/introspection_lens.cc:554 msgid "orthographic" msgstr "正投影" -#: ../build/lib/darktable/plugins/introspection_lens.cc:466 +#: ../build/lib/darktable/plugins/introspection_lens.cc:555 msgid "stereographic" msgstr "立體投影" -#: ../build/lib/darktable/plugins/introspection_lens.cc:467 +#: ../build/lib/darktable/plugins/introspection_lens.cc:556 msgid "equisolid angle" msgstr "等立體角投影" -#: ../build/lib/darktable/plugins/introspection_lens.cc:468 +#: ../build/lib/darktable/plugins/introspection_lens.cc:557 msgid "Thoby fisheye" msgstr "Thoby 魚眼" @@ -4228,8 +4361,8 @@ #. move left/right/up/down #: ../build/lib/darktable/plugins/introspection_liquify.c:429 -#: ../src/views/darkroom.c:2282 ../src/views/darkroom.c:2676 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:765 +#: ../src/views/darkroom.c:2121 ../src/views/darkroom.c:2522 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:765 #: ../src/views/lighttable.c:774 ../src/views/lighttable.c:1246 #: ../src/views/lighttable.c:1250 ../src/views/lighttable.c:1254 #: ../src/views/lighttable.c:1258 ../src/views/lighttable.c:1262 @@ -4241,8 +4374,8 @@ msgstr "線條" #: ../build/lib/darktable/plugins/introspection_liquify.c:431 -#: ../src/iop/basecurve.c:2186 ../src/iop/rgbcurve.c:1387 -#: ../src/iop/tonecurve.c:1149 +#: ../src/iop/basecurve.c:2207 ../src/iop/rgbcurve.c:1387 +#: ../src/iop/tonecurve.c:1171 msgid "curve" msgstr "曲線" @@ -4278,28 +4411,33 @@ msgid "bilateral filter" msgstr "雙邊濾波器" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:76 -#: ../build/lib/darktable/plugins/introspection_lut3d.c:163 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:77 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:164 msgid "application color space" msgstr "執行轉換的色彩空間" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:202 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 msgid "Adobe RGB" msgstr "Adobe RGB" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:203 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:204 msgid "gamma Rec709 RGB" msgstr "非線性 Rec. 709" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:209 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:207 +#: ../src/common/colorspaces.c:1486 ../src/common/colorspaces.c:1740 +msgid "linear ProPhoto RGB" +msgstr "線性 ProPhoto RGB" + +#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 msgid "tetrahedral" msgstr "四面體" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:210 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:212 msgid "trilinear" msgstr "三次線性" -#: ../build/lib/darktable/plugins/introspection_lut3d.c:211 +#: ../build/lib/darktable/plugins/introspection_lut3d.c:213 msgid "pyramid" msgstr "金字塔" @@ -4320,7 +4458,7 @@ #: ../build/lib/darktable/plugins/introspection_negadoctor.c:144 #: ../build/lib/darktable/plugins/introspection_negadoctor.c:239 -#: ../src/iop/negadoctor.c:992 +#: ../src/iop/negadoctor.c:1011 msgid "paper grade (gamma)" msgstr "紙張階調(伽馬)" @@ -4335,15 +4473,57 @@ msgstr "列印曝光調整" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:261 -#: ../src/iop/negadoctor.c:417 +#: ../src/iop/negadoctor.c:431 msgid "black and white film" msgstr "黑白底片" #: ../build/lib/darktable/plugins/introspection_negadoctor.c:262 -#: ../src/iop/negadoctor.c:402 +#: ../src/iop/negadoctor.c:416 msgid "color film" msgstr "彩色底片" +#: ../build/lib/darktable/plugins/introspection_primaries.c:75 +#: ../build/lib/darktable/plugins/introspection_primaries.c:160 +#: ../src/iop/primaries.c:406 +msgid "tint hue" +msgstr "色偏色相" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:81 +#: ../build/lib/darktable/plugins/introspection_primaries.c:164 +#: ../src/iop/primaries.c:413 +msgid "tint purity" +msgstr "色偏純度" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:87 +#: ../build/lib/darktable/plugins/introspection_primaries.c:168 +msgid "red hue" +msgstr "紅色色相" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:93 +#: ../build/lib/darktable/plugins/introspection_primaries.c:172 +msgid "red purity" +msgstr "紅色純度" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:99 +#: ../build/lib/darktable/plugins/introspection_primaries.c:176 +msgid "green hue" +msgstr "綠色色相" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:105 +#: ../build/lib/darktable/plugins/introspection_primaries.c:180 +msgid "green purity" +msgstr "綠色純度" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:111 +#: ../build/lib/darktable/plugins/introspection_primaries.c:184 +msgid "blue hue" +msgstr "藍色色相" + +#: ../build/lib/darktable/plugins/introspection_primaries.c:117 +#: ../build/lib/darktable/plugins/introspection_primaries.c:188 +msgid "blue purity" +msgstr "藍色純度" + #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:85 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:158 msgid "dynamic range" @@ -4356,7 +4536,7 @@ #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:103 #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:170 -#: ../src/iop/filmic.c:1526 +#: ../src/iop/filmic.c:1551 msgid "safety factor" msgstr "安全係數" @@ -4365,7 +4545,7 @@ msgstr "對數(log)" #: ../build/lib/darktable/plugins/introspection_profile_gamma.c:185 -#: ../src/iop/profile_gamma.c:625 +#: ../src/iop/profile_gamma.c:639 msgid "gamma" msgstr "伽瑪(gamma)" @@ -4403,7 +4583,7 @@ #: ../build/lib/darktable/plugins/introspection_rawprepare.c:106 #: ../build/lib/darktable/plugins/introspection_rawprepare.c:179 -#: ../src/iop/rawprepare.c:946 +#: ../src/iop/rawprepare.c:954 msgid "white point" msgstr "白色位準" @@ -4419,9 +4599,9 @@ #. exposure #: ../build/lib/darktable/plugins/introspection_relight.c:43 #: ../build/lib/darktable/plugins/introspection_relight.c:98 -#: ../src/common/collection.c:720 ../src/gui/preferences.c:836 -#: ../src/gui/presets.c:684 ../src/iop/basicadj.c:598 ../src/iop/exposure.c:122 -#: ../src/iop/exposure.c:1117 ../src/libs/metadata_view.c:141 +#: ../src/common/collection.c:633 ../src/gui/preferences.c:834 +#: ../src/gui/presets.c:687 ../src/iop/basicadj.c:628 ../src/iop/exposure.c:122 +#: ../src/iop/exposure.c:1135 ../src/libs/metadata_view.c:143 msgid "exposure" msgstr "曝光" @@ -4432,9 +4612,9 @@ #: ../build/lib/darktable/plugins/introspection_retouch.c:285 #: ../build/lib/darktable/plugins/introspection_retouch.c:426 -#: ../src/iop/basicadj.c:620 ../src/iop/channelmixerrgb.c:4617 -#: ../src/iop/colisa.c:305 ../src/iop/lowpass.c:587 ../src/iop/soften.c:377 -#: ../src/iop/vignette.c:970 ../src/libs/history.c:963 +#: ../src/iop/basicadj.c:650 ../src/iop/channelmixerrgb.c:4685 +#: ../src/iop/colisa.c:299 ../src/iop/lowpass.c:600 ../src/iop/soften.c:372 +#: ../src/iop/vignette.c:1057 ../src/libs/history.c:963 msgid "brightness" msgstr "亮度" @@ -4444,7 +4624,7 @@ msgstr "最高循環次數" #: ../build/lib/darktable/plugins/introspection_retouch.c:444 -#: ../src/libs/metadata_view.c:329 +#: ../src/libs/metadata_view.c:333 msgid "unused" msgstr "未使用" @@ -4457,12 +4637,12 @@ msgstr "修復" #: ../build/lib/darktable/plugins/introspection_retouch.c:447 -#: ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2051 msgid "blur" msgstr "模糊" #: ../build/lib/darktable/plugins/introspection_retouch.c:448 -#: ../src/iop/retouch.c:1865 +#: ../src/iop/retouch.c:2049 msgid "fill" msgstr "填色" @@ -4475,9 +4655,9 @@ msgstr "擦除" #: ../build/lib/darktable/plugins/introspection_retouch.c:458 -#: ../src/gui/presets.c:59 ../src/iop/watermark.c:1298 -#: ../src/libs/colorpicker.c:291 ../src/libs/image.c:612 -#: ../src/libs/modulegroups.c:2317 +#: ../src/gui/presets.c:61 ../src/iop/watermark.c:1346 +#: ../src/libs/colorpicker.c:320 ../src/libs/image.c:683 +#: ../src/libs/modulegroups.c:2301 msgid "color" msgstr "色彩" @@ -4513,45 +4693,93 @@ msgid "highlights color adjustment" msgstr "亮部色彩調整" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:70 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:141 -#: ../src/gui/accelerators.c:85 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:122 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:241 +#: ../src/gui/accelerators.c:101 msgid "skew" msgstr "偏移" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:76 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:145 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:128 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:245 msgid "target white" msgstr "目標白點" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:82 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:149 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:134 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:249 msgid "target black" msgstr "目標黑點" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:88 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:153 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:140 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:253 msgid "color processing" msgstr "色彩處理" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:94 -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:157 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:146 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:257 msgid "preserve hue" msgstr "維持色相" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:171 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:152 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:261 +msgid "red attenuation" +msgstr "紅色衰減" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:158 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:265 +msgid "red rotation" +msgstr "紅色色相旋轉" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:164 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:269 +msgid "green attenuation" +msgstr "綠色衰減" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:170 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:273 +msgid "green rotation" +msgstr "綠色色相旋轉" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:176 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:277 +msgid "blue attenuation" +msgstr "藍色衰減" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:182 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:281 +msgid "blue rotation" +msgstr "藍色色相旋轉" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:188 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:285 +msgid "recover purity" +msgstr "恢復色彩純度" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:194 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:289 +msgid "base primaries" +msgstr "基礎原色" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:303 msgid "per channel" msgstr "個別色版" -#: ../build/lib/darktable/plugins/introspection_sigmoid.c:172 +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:304 msgid "RGB ratio" msgstr "RGB 比例" -#: ../build/lib/darktable/plugins/introspection_temperature.c:66 -#: ../build/lib/darktable/plugins/introspection_temperature.c:121 -#: ../src/iop/temperature.c:1941 -msgid "emerald" -msgstr "祖母綠" +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:308 +#: ../src/common/colorspaces.c:1377 ../src/common/colorspaces.c:1734 +msgid "work profile" +msgstr "工作空間描述檔" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:309 +msgid "Rec2020" +msgstr "Rec. 2020" + +#: ../build/lib/darktable/plugins/introspection_sigmoid.c:310 +#: ../src/common/colorspaces.c:1750 +msgid "Display P3" +msgstr "Display P3" #: ../build/lib/darktable/plugins/introspection_tonecurve.c:135 #: ../build/lib/darktable/plugins/introspection_tonecurve.c:232 @@ -4673,13 +4901,13 @@ #: ../build/lib/darktable/plugins/introspection_tonemap.cc:39 #: ../build/lib/darktable/plugins/introspection_tonemap.cc:88 -#: ../src/iop/rgbcurve.c:184 ../src/iop/tonecurve.c:539 +#: ../src/iop/rgbcurve.c:186 ../src/iop/tonecurve.c:560 msgid "contrast compression" msgstr "壓縮對比" #: ../build/lib/darktable/plugins/introspection_vibrance.c:33 #: ../build/lib/darktable/plugins/introspection_vibrance.c:76 -#: ../src/iop/basicadj.c:627 ../src/iop/vibrance.c:67 +#: ../src/iop/basicadj.c:657 ../src/iop/vibrance.c:67 msgid "vibrance" msgstr "自然飽和度" @@ -4715,7 +4943,7 @@ #: ../build/lib/darktable/plugins/introspection_vignette.c:146 #: ../build/lib/darktable/plugins/introspection_vignette.c:237 -#: ../src/iop/vignette.c:978 +#: ../src/iop/vignette.c:1066 msgid "shape" msgstr "形狀" @@ -4754,7 +4982,7 @@ #: ../build/lib/darktable/plugins/introspection_watermark.c:323 #: ../src/imageio/format/tiff.c:125 ../src/imageio/format/xcf.c:159 -#: ../src/iop/borders.c:947 +#: ../src/iop/borders.c:960 msgid "image" msgstr "影像" @@ -4766,12 +4994,6 @@ msgid "smaller border" msgstr "短邊" -#: ../build/lib/darktable/plugins/introspection_watermark.c:326 -#: ../src/libs/export.c:1135 ../src/libs/metadata_view.c:148 -#: ../src/libs/print_settings.c:2541 -msgid "height" -msgstr "高度" - #: ../build/lib/darktable/plugins/introspection_watermark.c:327 msgid "advanced options" msgstr "進階選項" @@ -4800,23 +5022,23 @@ msgid "marker height" msgstr "浮水印高度" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:6 +#: ../build/bin/tools/darktable_authors.h:6 msgid "developers" msgstr "開發者" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:11 +#: ../build/bin/tools/darktable_authors.h:11 msgid "translators" msgstr "翻譯者" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:16 +#: ../build/bin/tools/darktable_authors.h:16 msgid "contributors" msgstr "貢獻者" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:21 +#: ../build/bin/tools/darktable_authors.h:21 msgid "rawspeed contributors" msgstr "rawspeed 貢獻者" -#: ../build/lib/darktable/plugins/lighttable/tools/darktable_authors.h:26 +#: ../build/bin/tools/darktable_authors.h:26 msgid "integration contributors" msgstr "集成貢獻者" @@ -4881,90 +5103,104 @@ msgid "Print your images" msgstr "列印影像" -#: ../src/bauhaus/bauhaus.c:752 ../src/bauhaus/bauhaus.c:3689 +#: ../src/bauhaus/bauhaus.c:845 ../src/bauhaus/bauhaus.c:3957 msgid "sliders" msgstr "滑桿" -#: ../src/bauhaus/bauhaus.c:753 ../src/bauhaus/bauhaus.c:3694 +#: ../src/bauhaus/bauhaus.c:847 ../src/bauhaus/bauhaus.c:3962 msgid "dropdowns" msgstr "下拉選單" -#: ../src/bauhaus/bauhaus.c:754 ../src/bauhaus/bauhaus.c:3699 +#: ../src/bauhaus/bauhaus.c:849 ../src/bauhaus/bauhaus.c:3967 msgid "buttons" msgstr "按鈕" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button on" msgstr "按鈕開啟" -#: ../src/bauhaus/bauhaus.c:3405 +#: ../src/bauhaus/bauhaus.c:3623 msgid "button off" msgstr "按鈕關閉" -#: ../src/bauhaus/bauhaus.c:3406 +#: ../src/bauhaus/bauhaus.c:3624 msgid "button pressed" msgstr "按鈕已按下" -#: ../src/bauhaus/bauhaus.c:3623 +#: ../src/bauhaus/bauhaus.c:3862 msgid "not that many sliders" msgstr "沒有那麼多滑桿" -#: ../src/bauhaus/bauhaus.c:3633 +#: ../src/bauhaus/bauhaus.c:3876 msgid "not that many dropdowns" msgstr "沒有那麼多下拉選單" -#: ../src/bauhaus/bauhaus.c:3648 +#: ../src/bauhaus/bauhaus.c:3895 msgid "not that many buttons" msgstr "沒有那麼多按鈕" -#: ../src/bauhaus/bauhaus.c:3653 ../src/gui/accelerators.c:348 +#: ../src/bauhaus/bauhaus.c:3900 ../src/gui/accelerators.c:389 msgid "value" msgstr "值" -#: ../src/bauhaus/bauhaus.c:3654 ../src/bauhaus/bauhaus.c:3660 -#: ../src/gui/accelerators.c:326 +#: ../src/bauhaus/bauhaus.c:3901 ../src/bauhaus/bauhaus.c:3907 +#: ../src/gui/accelerators.c:368 msgid "button" msgstr "按鈕" -#: ../src/bauhaus/bauhaus.c:3655 +#: ../src/bauhaus/bauhaus.c:3902 msgid "force" msgstr "強度" -#: ../src/bauhaus/bauhaus.c:3656 ../src/libs/navigation.c:187 -#: ../src/libs/navigation.c:199 +#: ../src/bauhaus/bauhaus.c:3903 ../src/libs/navigation.c:190 +#: ../src/libs/navigation.c:202 msgid "zoom" msgstr "縮放" -#: ../src/bauhaus/bauhaus.c:3659 +#: ../src/bauhaus/bauhaus.c:3906 ../src/libs/select.c:40 msgid "selection" msgstr "勾選" -#: ../src/bauhaus/bauhaus.c:3678 +#: ../src/bauhaus/bauhaus.c:3946 msgid "slider" msgstr "滑桿" -#: ../src/bauhaus/bauhaus.c:3683 +#: ../src/bauhaus/bauhaus.c:3951 msgid "dropdown" msgstr "下拉選單" -#: ../src/chart/main.c:504 ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 ../src/gui/accelerators.c:2278 -#: ../src/gui/accelerators.c:2355 ../src/gui/accelerators.c:2407 -#: ../src/gui/accelerators.c:2435 ../src/gui/accelerators.c:2495 -#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1043 -#: ../src/gui/preferences.c:1082 ../src/gui/presets.c:420 -#: ../src/gui/presets.c:563 ../src/gui/styles_dialog.c:519 -#: ../src/imageio/storage/disk.c:123 ../src/imageio/storage/gallery.c:110 -#: ../src/imageio/storage/latex.c:109 ../src/iop/lut3d.c:1546 -#: ../src/libs/collect.c:408 ../src/libs/copy_history.c:115 -#: ../src/libs/geotagging.c:928 ../src/libs/import.c:1506 -#: ../src/libs/import.c:1610 ../src/libs/styles.c:392 ../src/libs/styles.c:527 -#: ../src/libs/tagging.c:2489 ../src/libs/tagging.c:2525 +#: ../src/chart/main.c:504 ../src/common/database.c:3372 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 ../src/gui/accelerators.c:2497 +#: ../src/gui/accelerators.c:2579 ../src/gui/accelerators.c:2632 +#: ../src/gui/accelerators.c:2661 ../src/gui/accelerators.c:2723 +#: ../src/gui/hist_dialog.c:226 ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1081 ../src/gui/presets.c:422 +#: ../src/gui/presets.c:565 ../src/gui/styles_dialog.c:526 +#: ../src/imageio/storage/disk.c:198 ../src/imageio/storage/gallery.c:150 +#: ../src/imageio/storage/latex.c:146 ../src/iop/lut3d.c:1560 +#: ../src/libs/collect.c:425 ../src/libs/collect.c:3242 +#: ../src/libs/copy_history.c:115 ../src/libs/export_metadata.c:276 +#: ../src/libs/geotagging.c:929 ../src/libs/import.c:1515 +#: ../src/libs/import.c:1619 ../src/libs/import.c:1711 +#: ../src/libs/metadata.c:462 ../src/libs/metadata_view.c:1222 +#: ../src/libs/recentcollect.c:228 ../src/libs/modulegroups.c:3466 +#: ../src/libs/styles.c:392 ../src/libs/styles.c:439 ../src/libs/styles.c:529 +#: ../src/libs/styles.c:624 ../src/libs/tagging.c:1488 +#: ../src/libs/tagging.c:1579 ../src/libs/tagging.c:1670 +#: ../src/libs/tagging.c:1806 ../src/libs/tagging.c:2085 +#: ../src/libs/tagging.c:2520 ../src/libs/tagging.c:2556 +#: ../src/libs/tagging.c:3502 msgid "_cancel" msgstr "取消(_C)" -#: ../src/chart/main.c:504 ../src/gui/preferences.c:1082 -#: ../src/gui/styles_dialog.c:520 ../src/libs/styles.c:392 +#: ../src/chart/main.c:504 ../src/gui/preferences.c:1081 +#: ../src/gui/styles_dialog.c:527 ../src/libs/collect.c:3243 +#: ../src/libs/export_metadata.c:277 ../src/libs/metadata.c:463 +#: ../src/libs/metadata_view.c:1223 ../src/libs/recentcollect.c:229 +#: ../src/libs/styles.c:392 ../src/libs/tagging.c:1671 +#: ../src/libs/tagging.c:1807 ../src/libs/tagging.c:2086 +#: ../src/libs/tagging.c:3503 msgid "_save" msgstr "儲存(_S)" @@ -4978,79 +5214,79 @@ "平均 ΔE:%.02f\n" "最大 ΔE:%.02f" -#: ../src/cli/main.c:247 +#: ../src/cli/main.c:270 msgid "TODO: sorry, due to API restrictions we currently cannot set the BPP to" msgstr "TODO:抱歉,由於 API 的限制,我們目前無法將 BPP 設為" -#: ../src/cli/main.c:259 +#: ../src/cli/main.c:282 msgid "unknown option for --hq" msgstr "" "⚠️ 錯誤 ⚠️\n" "在 --hq 使用未知的選項" -#: ../src/cli/main.c:275 +#: ../src/cli/main.c:298 msgid "unknown option for --export_masks" msgstr "" "⚠️ 錯誤 ⚠️\n" "在 --export_masks 使用未知的選項" -#: ../src/cli/main.c:291 +#: ../src/cli/main.c:314 msgid "unknown option for --upscale" msgstr "" "⚠️ 錯誤 ⚠️\n" "在 --upscale 使用未知的選項" -#: ../src/cli/main.c:316 +#: ../src/cli/main.c:339 msgid "unknown option for --apply-custom-presets" msgstr "" "⚠️ 錯誤 ⚠️\n" "在 --apply-custom-presets 使用未知的選項" -#: ../src/cli/main.c:327 +#: ../src/cli/main.c:350 msgid "too long ext for --out-ext" msgstr "" "⚠️ 錯誤 ⚠️\n" "在 --out-ext 使用過長的附檔名" -#: ../src/cli/main.c:344 +#: ../src/cli/main.c:367 #, c-format msgid "notice: input file or dir '%s' doesn't exist, skipping\n" msgstr "" "⚠️ 注意 ⚠️\n" "匯入的檔案或資料夾「%s」不存在,正在略過\n" -#: ../src/cli/main.c:353 +#: ../src/cli/main.c:376 #, c-format msgid "incorrect ICC type for --icc-type: '%s'\n" msgstr "⚠️ 錯誤的 ICC 類型「%s」⚠️\n" -#: ../src/cli/main.c:369 +#: ../src/cli/main.c:392 #, c-format msgid "notice: ICC file '%s' doesn't exist, skipping\n" msgstr "" "⚠️ 注意 ⚠️\n" "ICC 檔案「%s」不存在,正在略過\n" -#: ../src/cli/main.c:378 +#: ../src/cli/main.c:401 #, c-format msgid "incorrect ICC intent for --icc-intent: '%s'\n" msgstr "⚠️ 錯誤的 ICC 轉換方式「%s」⚠️\n" -#: ../src/cli/main.c:396 +#: ../src/cli/main.c:419 #, c-format msgid "warning: unknown option '%s'\n" msgstr "" "⚠️ 警告 ⚠️\n" "未知選項「%s」\n" -#: ../src/cli/main.c:454 +#: ../src/cli/main.c:477 #, c-format msgid "error: input file and import opts specified! that's not supported!\n" msgstr "" "⚠️ 錯誤 ⚠️\n" "不支援指定的輸入檔案和選項\n" -#: ../src/cli/main.c:487 +#: ../src/cli/main.c:510 #, c-format msgid "" "notice: output location is a directory. assuming '%s/$(FILE_NAME).%s' output " @@ -5060,69 +5296,69 @@ "匯出位置是一個目錄,預設使用「%s/$(FILE_NAME).%s」作為檔案名稱" #. output file exists or there's output ext specified and it's same as file... -#: ../src/cli/main.c:502 +#: ../src/cli/main.c:525 msgid "output file already exists, it will get renamed" msgstr "輸出檔案已經存在,將重新命名" #. one of inputs was a failure, no prob -#: ../src/cli/main.c:532 +#: ../src/cli/main.c:555 #, c-format msgid "error: can't open folder %s" msgstr "" "⚠️ 錯誤 ⚠️\n" "無法開啟「%s」資料夾" -#: ../src/cli/main.c:549 +#: ../src/cli/main.c:572 #, c-format msgid "error: can't open file %s" msgstr "" "⚠️ 錯誤 ⚠️\n" "無法打開「%s」檔案" -#: ../src/cli/main.c:566 +#: ../src/cli/main.c:589 #, c-format msgid "no images to export, aborting\n" msgstr "沒有影像可以匯出,正在中止\n" -#: ../src/cli/main.c:583 +#: ../src/cli/main.c:606 #, c-format msgid "error: can't open XMP file %s" msgstr "" "⚠️ 錯誤 ⚠️\n" "無法打開 XMP 檔案「%s」" -#: ../src/cli/main.c:604 +#: ../src/cli/main.c:627 msgid "empty history stack" msgstr "刪除影像編輯紀錄" #. too long ext, no point in wasting time -#: ../src/cli/main.c:616 +#: ../src/cli/main.c:639 #, c-format msgid "too long output file extension: %s\n" msgstr "輸出檔案的副檔名「.%s」過長\n" #. no ext or empty ext, no point in wasting time -#: ../src/cli/main.c:624 +#: ../src/cli/main.c:647 #, c-format msgid "no output file extension given\n" msgstr "未指定輸出影像的副檔名\n" -#: ../src/cli/main.c:663 +#: ../src/cli/main.c:692 msgid "" "cannot find disk storage module. please check your installation, something " "seems to be broken." msgstr "找不到磁碟儲存模組,請檢查軟體安裝是否正確,有些東西似乎壞了。" -#: ../src/cli/main.c:673 +#: ../src/cli/main.c:702 msgid "failed to get parameters from storage module, aborting export ..." msgstr "無法取得模組參數,正在中止匯出…" -#: ../src/cli/main.c:689 +#: ../src/cli/main.c:718 #, c-format msgid "unknown extension '.%s'" msgstr "未知的副檔名「.%s」" -#: ../src/cli/main.c:699 +#: ../src/cli/main.c:728 msgid "failed to get parameters from format module, aborting export ..." msgstr "無法取得檔案格式參數,正在中止匯出…" @@ -5167,202 +5403,208 @@ "\n" "確認已正確連接相機,並且未被其他程式占用" -#: ../src/common/collection.c:673 +#: ../src/common/collection.c:586 msgid "too much time to update aspect ratio for the collection" msgstr "更新相冊長寬比例的時間太長" -#: ../src/common/collection.c:688 +#: ../src/common/collection.c:601 msgid "film roll" msgstr "底片卷" -#: ../src/common/collection.c:690 +#: ../src/common/collection.c:603 msgid "folder" msgstr "資料夾" -#: ../src/common/collection.c:692 +#: ../src/common/collection.c:605 msgid "camera" msgstr "相機" -#: ../src/common/collection.c:694 ../src/libs/export_metadata.c:189 -#: ../src/libs/tagging.c:3281 +#: ../src/common/collection.c:607 ../src/libs/export_metadata.c:176 +#: ../src/libs/tagging.c:3312 msgid "tag" msgstr "標籤" -#: ../src/common/collection.c:696 +#: ../src/common/collection.c:609 msgid "capture date" msgstr "拍攝日期" -#: ../src/common/collection.c:698 ../src/libs/filtering.c:61 +#: ../src/common/collection.c:611 ../src/libs/filtering.c:61 msgid "capture time" -msgstr "拍攝日期" +msgstr "拍攝時間" -#: ../src/common/collection.c:700 ../src/libs/filtering.c:62 +#: ../src/common/collection.c:613 ../src/libs/filtering.c:62 msgid "import time" msgstr "匯入日期" -#: ../src/common/collection.c:702 ../src/libs/filtering.c:63 +#: ../src/common/collection.c:615 ../src/libs/filtering.c:63 msgid "modification time" msgstr "修改日期" -#: ../src/common/collection.c:704 ../src/libs/filtering.c:64 +#: ../src/common/collection.c:617 ../src/libs/filtering.c:64 msgid "export time" msgstr "匯出日期" -#: ../src/common/collection.c:706 ../src/libs/filtering.c:65 +#: ../src/common/collection.c:619 ../src/libs/filtering.c:65 msgid "print time" msgstr "列印日期" -#: ../src/common/collection.c:708 ../src/libs/collect.c:3222 -#: ../src/libs/filtering.c:2163 ../src/libs/filtering.c:2183 +#: ../src/common/collection.c:621 ../src/libs/collect.c:3586 +#: ../src/libs/filtering.c:2237 ../src/libs/filtering.c:2257 #: ../src/libs/filters/history.c:153 ../src/libs/history.c:92 msgid "history" msgstr "歷史紀錄" -#: ../src/common/collection.c:710 ../src/common/colorlabels.c:342 -#: ../src/develop/lightroom.c:1550 ../src/dtgtk/thumbnail.c:1560 +#: ../src/common/collection.c:623 ../src/common/colorlabels.c:341 +#: ../src/develop/lightroom.c:1607 ../src/dtgtk/thumbnail.c:1548 #: ../src/libs/filtering.c:68 ../src/libs/filters/colors.c:301 #: ../src/libs/filters/colors.c:312 ../src/libs/tools/colorlabels.c:93 msgid "color label" msgstr "色彩標籤" #. iso -#: ../src/common/collection.c:716 ../src/gui/preferences.c:832 -#: ../src/gui/presets.c:666 ../src/libs/camera.c:558 -#: ../src/libs/metadata_view.c:145 +#: ../src/common/collection.c:629 ../src/gui/preferences.c:830 +#: ../src/gui/presets.c:669 ../src/libs/camera.c:558 +#: ../src/libs/metadata_view.c:149 msgid "ISO" msgstr "ISO 感光度" #. aperture -#: ../src/common/collection.c:718 ../src/gui/preferences.c:840 -#: ../src/gui/presets.c:701 ../src/libs/camera.c:545 ../src/libs/camera.c:547 -#: ../src/libs/metadata_view.c:140 +#: ../src/common/collection.c:631 ../src/gui/preferences.c:838 +#: ../src/gui/presets.c:704 ../src/libs/camera.c:545 ../src/libs/camera.c:547 +#: ../src/libs/metadata_view.c:142 msgid "aperture" msgstr "光圈" -#: ../src/common/collection.c:724 ../src/libs/filtering.c:57 -#: ../src/libs/filters/filename.c:364 ../src/libs/metadata_view.c:126 +#: ../src/common/collection.c:637 ../src/libs/filtering.c:57 +#: ../src/libs/filters/filename.c:369 ../src/libs/metadata_view.c:128 msgid "filename" msgstr "檔名" -#: ../src/common/collection.c:726 ../src/develop/lightroom.c:1541 +#: ../src/common/collection.c:639 ../src/develop/lightroom.c:1598 #: ../src/libs/geotagging.c:141 msgid "geotagging" msgstr "地理標籤" -#: ../src/common/collection.c:728 ../src/libs/filters/grouping.c:167 +#: ../src/common/collection.c:641 ../src/libs/filters/grouping.c:167 #: ../src/libs/tools/global_toolbox.c:394 msgid "grouping" msgstr "群組" -#: ../src/common/collection.c:730 ../src/dtgtk/thumbnail.c:1575 -#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:129 -#: ../src/libs/metadata_view.c:336 +#: ../src/common/collection.c:643 ../src/dtgtk/thumbnail.c:1563 +#: ../src/libs/filters/local_copy.c:142 ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:340 msgid "local copy" msgstr "本機備份" -#: ../src/common/collection.c:732 ../src/gui/preferences.c:808 +#: ../src/common/collection.c:645 ../src/gui/preferences.c:806 msgid "module" msgstr "模組" -#: ../src/common/collection.c:734 ../src/gui/hist_dialog.c:346 -#: ../src/gui/styles_dialog.c:722 ../src/gui/styles_dialog.c:771 +#: ../src/common/collection.c:647 ../src/gui/hist_dialog.c:346 +#: ../src/gui/styles_dialog.c:734 ../src/gui/styles_dialog.c:783 #: ../src/libs/filters/module_order.c:161 ../src/libs/ioporder.c:39 msgid "module order" msgstr "模組順序" -#: ../src/common/collection.c:736 +#: ../src/common/collection.c:649 msgid "range rating" msgstr "評分範圍" -#: ../src/common/collection.c:738 ../src/common/ratings.c:322 -#: ../src/develop/lightroom.c:1525 ../src/libs/filtering.c:67 +#: ../src/common/collection.c:651 ../src/common/ratings.c:321 +#: ../src/develop/lightroom.c:1582 ../src/libs/filtering.c:67 #: ../src/libs/tools/ratings.c:110 msgid "rating" msgstr "評分" -#: ../src/common/collection.c:740 +#: ../src/common/collection.c:653 msgid "search" msgstr "關鍵字搜尋" -#: ../src/common/collection.c:1509 ../src/common/colorlabels.c:335 -#: ../src/develop/lightroom.c:836 ../src/gui/guides.c:732 -#: ../src/iop/colorzones.c:2265 ../src/iop/temperature.c:1925 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:261 +#: ../src/common/collection.c:1376 ../src/common/colorlabels.c:334 +#: ../src/develop/lightroom.c:889 ../src/gui/guides.c:732 +#: ../src/iop/colorzones.c:2501 ../src/iop/temperature.c:1902 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:261 msgid "yellow" msgstr "黃色" -#: ../src/common/collection.c:1515 ../src/common/color_vocabulary.c:339 -#: ../src/common/colorlabels.c:338 ../src/iop/colorzones.c:2269 -#: ../src/libs/collect.c:1791 ../src/libs/filters/colors.c:264 +#: ../src/common/collection.c:1382 ../src/common/color_vocabulary.c:339 +#: ../src/common/colorlabels.c:337 ../src/iop/colorzones.c:2505 +#: ../src/libs/collect.c:1916 ../src/libs/filters/colors.c:264 msgid "purple" msgstr "紫色" -#: ../src/common/collection.c:1532 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1400 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "auto applied" msgstr "已自動套用" -#: ../src/common/collection.c:1536 ../src/libs/collect.c:1745 +#: ../src/common/collection.c:1406 ../src/libs/collect.c:1863 #: ../src/libs/filters/history.c:38 msgid "altered" msgstr "已修改" -#: ../src/common/collection.c:1553 ../src/common/collection.c:1649 -#: ../src/libs/collect.c:1166 ../src/libs/collect.c:1330 -#: ../src/libs/collect.c:1354 ../src/libs/collect.c:1473 -#: ../src/libs/collect.c:2432 +#: ../src/common/collection.c:1424 ../src/common/collection.c:1535 +#: ../src/libs/collect.c:1242 ../src/libs/collect.c:1426 +#: ../src/libs/collect.c:1452 ../src/libs/collect.c:1592 +#: ../src/libs/collect.c:2662 msgid "not tagged" msgstr "無標籤" -#: ../src/common/collection.c:1554 ../src/libs/collect.c:1354 +#: ../src/common/collection.c:1425 ../src/libs/collect.c:1452 #: ../src/libs/map_locations.c:742 msgid "tagged" msgstr "有標籤" -#: ../src/common/collection.c:1555 +#: ../src/common/collection.c:1426 msgid "tagged*" msgstr "有標籤*" #. local copy -#: ../src/common/collection.c:1588 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1460 ../src/libs/collect.c:1883 #: ../src/libs/filters/local_copy.c:38 msgid "not copied locally" msgstr "無本機備份副本" -#: ../src/common/collection.c:1592 ../src/libs/collect.c:1759 +#: ../src/common/collection.c:1465 ../src/libs/collect.c:1882 #: ../src/libs/filters/local_copy.c:38 msgid "copied locally" msgstr "有本機備份副本" -#: ../src/common/collection.c:1974 ../src/libs/collect.c:1879 +#. if its undefined +#: ../src/common/collection.c:1507 ../src/common/collection.c:1619 +#: ../src/libs/collect.c:2209 ../src/libs/collect.c:2210 +msgid "unnamed" +msgstr "未命名" + +#: ../src/common/collection.c:1905 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:147 ../src/libs/filters/grouping.c:170 msgid "group leaders" msgstr "群組封面影像" -#: ../src/common/collection.c:1978 ../src/libs/collect.c:1879 +#: ../src/common/collection.c:1909 ../src/libs/collect.c:2013 #: ../src/libs/filters/grouping.c:150 ../src/libs/filters/grouping.c:170 msgid "group followers" msgstr "群組影像" -#: ../src/common/collection.c:2126 ../src/libs/collect.c:1959 +#: ../src/common/collection.c:2066 ../src/libs/collect.c:2100 msgid "not defined" msgstr "未定義" -#: ../src/common/collection.c:2575 +#: ../src/common/collection.c:2521 #, c-format msgid "<b>%d</b> image (#<b>%d</b>) selected of <b>%d</b>" msgstr "已選擇 <b>%d</b> 張(第 <b>%d</b>張),共有 <b>%d</b> 張影像" -#: ../src/common/collection.c:2582 +#: ../src/common/collection.c:2528 #, c-format msgid "<b>%d</b> image selected of <b>%d</b>" msgid_plural "<b>%d</b> images selected of <b>%d</b>" msgstr[0] "已選擇 <b>%d<b> 張,共 <b>%d<b> 張影像" -#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2324 -#: ../src/develop/blend_gui.c:2372 ../src/gui/guides.c:729 -#: ../src/iop/channelmixerrgb.c:4620 ../src/iop/levels.c:671 -#: ../src/iop/rgblevels.c:937 ../src/iop/rgblevels.c:1032 +#: ../src/common/color_vocabulary.c:38 ../src/develop/blend_gui.c:2340 +#: ../src/develop/blend_gui.c:2388 ../src/gui/guides.c:729 +#: ../src/iop/channelmixerrgb.c:4688 ../src/iop/levels.c:687 +#: ../src/iop/rgblevels.c:969 ../src/iop/rgblevels.c:1083 msgid "gray" msgstr "灰階" @@ -5571,12 +5813,12 @@ msgstr "暗青色" #: ../src/common/color_vocabulary.c:297 ../src/common/color_vocabulary.c:317 -#: ../src/iop/colorzones.c:2267 +#: ../src/iop/colorzones.c:2503 msgid "aqua" msgstr "水藍色" #: ../src/common/color_vocabulary.c:298 ../src/gui/guides.c:733 -#: ../src/iop/temperature.c:1923 +#: ../src/iop/temperature.c:1900 msgid "cyan" msgstr "青色" @@ -5642,7 +5884,7 @@ msgstr "暗洋紅色" #: ../src/common/color_vocabulary.c:341 ../src/gui/guides.c:734 -#: ../src/iop/colorzones.c:2270 ../src/iop/temperature.c:1921 +#: ../src/iop/colorzones.c:2506 ../src/iop/temperature.c:1898 msgid "magenta" msgstr "洋紅色" @@ -5654,136 +5896,131 @@ msgid "color not found" msgstr "找不到這個顏色" -#: ../src/common/colorlabels.c:310 +#: ../src/common/colorlabels.c:309 #, c-format msgid "colorlabels set to %s" msgstr "設定色彩標籤為「%s」" -#: ../src/common/colorlabels.c:312 +#: ../src/common/colorlabels.c:311 msgid "all colorlabels removed" msgstr "全部的色彩標籤已刪除" -#: ../src/common/colorlabels.c:333 ../src/gui/accelerators.c:170 -#: ../src/libs/image.c:592 +#: ../src/common/colorlabels.c:332 ../src/gui/accelerators.c:188 +#: ../src/libs/image.c:660 msgid "clear" msgstr "刪除" -#. init the category profile with NULL profile, the actual profile must be retrieved dynamically by the caller -#: ../src/common/colorspaces.c:1229 ../src/common/colorspaces.c:1518 -msgid "work profile" -msgstr "工作空間描述檔" - -#: ../src/common/colorspaces.c:1232 ../src/common/colorspaces.c:1514 -#: ../src/iop/colorout.c:885 +#: ../src/common/colorspaces.c:1382 ../src/common/colorspaces.c:1730 +#: ../src/iop/colorout.c:901 msgid "export profile" msgstr "匯出用描述檔" -#: ../src/common/colorspaces.c:1236 ../src/common/colorspaces.c:1516 -#: ../src/views/darkroom.c:2542 +#: ../src/common/colorspaces.c:1387 ../src/common/colorspaces.c:1732 +#: ../src/views/darkroom.c:2383 msgid "softproof profile" msgstr "軟打樣描述檔" -#: ../src/common/colorspaces.c:1242 ../src/common/colorspaces.c:1498 +#: ../src/common/colorspaces.c:1397 ../src/common/colorspaces.c:1714 msgid "system display profile" msgstr "系統顯示描述檔" -#: ../src/common/colorspaces.c:1245 ../src/common/colorspaces.c:1520 +#: ../src/common/colorspaces.c:1402 ../src/common/colorspaces.c:1736 msgid "system display profile (second window)" msgstr "系統顯示描述檔(第二個視窗)" -#: ../src/common/colorspaces.c:1255 +#: ../src/common/colorspaces.c:1415 msgid "sRGB (web-safe)" msgstr "sRGB(網頁兼容設定)" -#: ../src/common/colorspaces.c:1269 ../src/common/colorspaces.c:1522 +#: ../src/common/colorspaces.c:1435 ../src/common/colorspaces.c:1738 msgid "Rec709 RGB" msgstr "Rec. 709" -#: ../src/common/colorspaces.c:1279 +#: ../src/common/colorspaces.c:1450 msgid "PQ Rec2020 RGB" msgstr "PQ - Rec. 2020" -#: ../src/common/colorspaces.c:1284 +#: ../src/common/colorspaces.c:1458 msgid "HLG Rec2020 RGB" msgstr "HLG - Rec. 2020" -#: ../src/common/colorspaces.c:1289 +#: ../src/common/colorspaces.c:1465 msgid "PQ P3 RGB" msgstr "PQ - P3" -#: ../src/common/colorspaces.c:1294 +#: ../src/common/colorspaces.c:1471 msgid "HLG P3 RGB" msgstr "HLG - P3" -#: ../src/common/colorspaces.c:1299 ../src/common/colorspaces.c:1524 -msgid "linear ProPhoto RGB" -msgstr "線性 ProPhoto RGB" +#: ../src/common/colorspaces.c:1478 +msgid "Display P3 RGB" +msgstr "Display P3 RGB" -#: ../src/common/colorspaces.c:1304 ../src/common/colorspaces.c:1492 +#: ../src/common/colorspaces.c:1493 ../src/common/colorspaces.c:1708 msgid "linear XYZ" msgstr "線性 XYZ" -#: ../src/common/colorspaces.c:1308 ../src/common/colorspaces.c:1494 -#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2000 -#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:267 +#: ../src/common/colorspaces.c:1500 ../src/common/colorspaces.c:1710 +#: ../src/develop/blend_gui.c:144 ../src/develop/blend_gui.c:2016 +#: ../src/libs/colorpicker.c:51 ../src/libs/colorpicker.c:293 msgid "Lab" msgstr "CIELAB" -#: ../src/common/colorspaces.c:1313 ../src/common/colorspaces.c:1496 +#: ../src/common/colorspaces.c:1508 ../src/common/colorspaces.c:1712 msgid "linear infrared BGR" msgstr "線性紅外線 BGR" -#: ../src/common/colorspaces.c:1317 +#: ../src/common/colorspaces.c:1513 msgid "BRG (for testing)" msgstr "BRG(測試用)" -#: ../src/common/colorspaces.c:1409 +#: ../src/common/colorspaces.c:1619 #, c-format msgid "" "profile `%s' not usable as histogram profile. it has been replaced by sRGB!" msgstr "描述檔「%s」無法用於直方圖顯示,已使用 sRGB 取代" -#: ../src/common/colorspaces.c:1500 +#: ../src/common/colorspaces.c:1716 msgid "embedded ICC profile" msgstr "嵌入的 ICC 描述檔" -#: ../src/common/colorspaces.c:1502 +#: ../src/common/colorspaces.c:1718 msgid "embedded matrix" msgstr "嵌入的矩陣" -#: ../src/common/colorspaces.c:1504 +#: ../src/common/colorspaces.c:1720 msgid "standard color matrix" msgstr "標準色彩矩陣" -#: ../src/common/colorspaces.c:1506 +#: ../src/common/colorspaces.c:1722 msgid "enhanced color matrix" msgstr "符合相機特性的增強色彩矩陣" -#: ../src/common/colorspaces.c:1508 +#: ../src/common/colorspaces.c:1724 msgid "vendor color matrix" msgstr "相機廠商提供的色彩矩陣" -#: ../src/common/colorspaces.c:1510 +#: ../src/common/colorspaces.c:1726 msgid "alternate color matrix" msgstr "備用色彩矩陣" -#: ../src/common/colorspaces.c:1512 +#: ../src/common/colorspaces.c:1728 msgid "BRG (experimental)" msgstr "BRG(實驗性質)" -#: ../src/common/colorspaces.c:1526 +#: ../src/common/colorspaces.c:1742 msgid "PQ Rec2020" msgstr "PQ - Rec. 2020" -#: ../src/common/colorspaces.c:1528 +#: ../src/common/colorspaces.c:1744 msgid "HLG Rec2020" msgstr "HLG - Rec. 2020" -#: ../src/common/colorspaces.c:1530 +#: ../src/common/colorspaces.c:1746 msgid "PQ P3" msgstr "PQ - P3" -#: ../src/common/colorspaces.c:1532 +#: ../src/common/colorspaces.c:1748 msgid "HLG P3" msgstr "HLG - P3" @@ -5811,119 +6048,131 @@ msgid "printing `%s' on `%s'" msgstr "列印「%s」至「%s」" -#: ../src/common/darktable.c:250 +#: ../src/common/darktable.c:375 #, c-format msgid "found strange path `%s'" msgstr "發現異常路徑「%s」" -#: ../src/common/darktable.c:265 +#: ../src/common/darktable.c:390 #, c-format msgid "error loading directory `%s'" msgstr "載入資料夾「%s」時發生錯誤" -#: ../src/common/darktable.c:289 +#: ../src/common/darktable.c:414 #, c-format msgid "file `%s' has unknown format!" msgstr "檔案「%s」使用未知的格式" -#: ../src/common/darktable.c:302 ../src/control/jobs/control_jobs.c:2118 -#: ../src/control/jobs/control_jobs.c:2177 +#: ../src/common/darktable.c:427 ../src/control/jobs/control_jobs.c:2121 +#: ../src/control/jobs/control_jobs.c:2180 #, c-format msgid "error loading file `%s'" msgstr "載入檔案「%s」時發生錯誤" -#: ../src/common/darktable.c:1509 +#: ../src/common/darktable.c:1650 msgid "configuration information" msgstr "配置資訊" -#: ../src/common/darktable.c:1511 -msgid "show this information again" -msgstr "下次仍顯示這個資訊" - -#: ../src/common/darktable.c:1511 -msgid "understood" -msgstr "了解" +#: ../src/common/darktable.c:1652 +msgid "_show this information again" +msgstr "下次仍顯示這個資訊(_S)" + +#: ../src/common/darktable.c:1652 +msgid "_understood" +msgstr "了解(_U)" -#: ../src/common/darktable.c:1968 +#: ../src/common/darktable.c:2106 msgid "" "the RCD demosaicer has been defined as default instead of PPG because of " "better quality and performance." msgstr "" "預設的去馬賽克演算法為 RCD,可提供更好的品質和性能,已取代舊的 PPG 算法" -#: ../src/common/darktable.c:1970 +#: ../src/common/darktable.c:2108 msgid "see preferences/darkroom/demosaicing for zoomed out darkroom mode" msgstr "請至「偏好設定 / 暗房 Darkroom」中查看縮小預覽的去馬賽克方式" -#: ../src/common/darktable.c:1976 +#: ../src/common/darktable.c:2114 msgid "" "the user interface and the underlying internals for tuning darktable " "performance have changed." msgstr "用於調整 darktable 性能的使用者介面和底層內部元件已更改" -#: ../src/common/darktable.c:1978 +#: ../src/common/darktable.c:2116 msgid "" "you won't find headroom and friends any longer, instead in preferences/" "processing use:" msgstr "請改由「偏好設定 / 運算方法」中調整:" -#: ../src/common/darktable.c:1980 +#: ../src/common/darktable.c:2118 msgid "1) darktable resources" msgstr "1) darktable 效能設定" -#: ../src/common/darktable.c:1982 +#: ../src/common/darktable.c:2120 msgid "2) tune OpenCL performance" msgstr "2)調整 OpenCL 性能" -#: ../src/common/darktable.c:1989 +#: ../src/common/darktable.c:2127 msgid "" "some global config parameters relevant for OpenCL performance are not used " "any longer." msgstr "某些與 OpenCL 性能相關的參數已經不再使用" -#: ../src/common/darktable.c:1991 +#: ../src/common/darktable.c:2129 msgid "" -"instead you will find 'per device' data in 'cl_device_v4_canonical-name'. " +"instead you will find 'per device' data in 'cldevice_v5_canonical-name'. " "content is:" -msgstr "" -"相對地,可以在「cl_device_v4_canonical-name」中找到「per device」數據如下:" +msgstr "相對地,可以在「cldevice_v5_canonical-name」中找到各設備數據如下:" -#: ../src/common/darktable.c:1993 ../src/common/darktable.c:2012 +#: ../src/common/darktable.c:2131 ../src/common/darktable.c:2150 +#: ../src/common/darktable.c:2165 msgid "" " 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' " -"'eventhandles' 'async' 'disable' 'magic'" +"'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'" msgstr "" "「avoid_atomics」「micro_nap」「pinned_memory」「roundupwd」「roundupht」" -"「eventhandles」「async」「disable」「magic」" +"「eventhandles」「async」「disable」「magic」「advantage」「unified」" -#: ../src/common/darktable.c:1995 ../src/common/darktable.c:2014 +#: ../src/common/darktable.c:2133 ../src/common/darktable.c:2152 msgid "you may tune as before except 'magic'" msgstr "除了「magic」之外,可以像以前一樣調整參數" -#: ../src/common/darktable.c:2001 +#: ../src/common/darktable.c:2139 msgid "" "your OpenCL compiler settings for all devices have been reset to default." msgstr "所有設備的 OpenCL 編譯器設定都已重置為預設值" -#: ../src/common/darktable.c:2008 +#: ../src/common/darktable.c:2146 msgid "" "OpenCL global config parameters 'per device' data has been recreated with an " "updated name." msgstr "OpenCL 整體參數「每個設備」的設定已經依更新的名稱重新建立。" -#: ../src/common/darktable.c:2010 +#: ../src/common/darktable.c:2148 ../src/common/darktable.c:2163 msgid "" -"you will find 'per device' data in 'cl_device_v5_canonical-name'. content is:" -msgstr "可以在「cl_device_v5_canonical-name」中找到「per device」數據如下:" +"you will find 'per device' data in 'cldevice_v5_canonical-name'. content is:" +msgstr "可以在「cldevice_v5_canonical-name」中找到各設備數據如下:" -#: ../src/common/darktable.c:2016 +#: ../src/common/darktable.c:2154 msgid "" "If you're using device names in 'opencl_device_priority' you should update " "them to the new names." msgstr "" "如果在「opencl_device_priority」中使用設備名稱,你必須將其更新為新的名稱。" -#: ../src/common/database.c:2756 +#: ../src/common/darktable.c:2161 +msgid "" +"OpenCL 'per device' config data have been automatically extended by 'unified-" +"fraction'." +msgstr "OpenCL 的各設備分別設定已被自動拓展到所有設備" + +#: ../src/common/darktable.c:2172 +msgid "" +"OpenCL 'per device' compiler settings might have been updated.\n" +"\n" +msgstr "OpenCL 的個別裝置設定可能已變更\n" + +#: ../src/common/database.c:3350 #, c-format msgid "" "\n" @@ -5973,30 +6222,19 @@ "問題 ⚠️</u></i>\n" #. clang-format on -#: ../src/common/database.c:2777 +#: ../src/common/database.c:3371 msgid "error starting darktable" msgstr "啟動 darktable 時發生錯誤" -#: ../src/common/database.c:2778 ../src/libs/collect.c:2915 -#: ../src/libs/export_metadata.c:288 ../src/libs/import.c:1702 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:227 ../src/libs/modulegroups.c:3464 -#: ../src/libs/styles.c:438 ../src/libs/styles.c:621 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3471 -msgid "cancel" -msgstr "取消" - -#: ../src/common/database.c:2778 -msgid "delete database lock files" -msgstr "刪除資料庫鎖定檔案" +#: ../src/common/database.c:3372 +msgid "_delete database lock files" +msgstr "刪除資料庫鎖定檔案(_D)" -#: ../src/common/database.c:2784 +#: ../src/common/database.c:3378 msgid "are you sure?" msgstr "確定?" -#: ../src/common/database.c:2785 +#: ../src/common/database.c:3379 msgid "" "\n" "do you really want to delete the lock files?\n" @@ -6004,20 +6242,19 @@ "\n" "確定要刪除鎖定的檔案?\n" -#: ../src/common/database.c:2785 ../src/common/variables.c:703 -#: ../src/develop/imageop_gui.c:210 ../src/imageio/format/pdf.c:636 -#: ../src/imageio/format/pdf.c:655 ../src/libs/export.c:1188 -#: ../src/libs/export.c:1195 ../src/libs/export.c:1202 -#: ../src/libs/metadata_view.c:670 -msgid "yes" -msgstr "是" +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2597 +msgid "_no" +msgstr "否(_N)" + +#: ../src/common/database.c:3379 ../src/gui/gtk.c:2596 +msgid "_yes" +msgstr "是(_Y)" -#: ../src/common/database.c:2801 ../src/libs/export_metadata.c:164 -#: ../src/libs/geotagging.c:811 +#: ../src/common/database.c:3395 msgid "done" msgstr "完成" -#: ../src/common/database.c:2802 +#: ../src/common/database.c:3396 msgid "" "\n" "successfully deleted the lock files.\n" @@ -6027,17 +6264,17 @@ "已成功刪除鎖定檔案\n" "現在可以重新啟動 darktable\n" -#. the button to close the popup -#: ../src/common/database.c:2803 ../src/common/database.c:2810 -#: ../src/libs/filters/filename.c:452 -msgid "ok" -msgstr "確定" +#: ../src/common/database.c:3397 ../src/common/database.c:3404 +#: ../src/gui/accelerators.c:2580 ../src/gui/accelerators.c:2662 +#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:566 +msgid "_ok" +msgstr "確定(_O)" -#: ../src/common/database.c:2806 +#: ../src/common/database.c:3400 msgid "error" msgstr "錯誤" -#: ../src/common/database.c:2807 +#: ../src/common/database.c:3401 #, c-format msgid "" "\n" @@ -6052,25 +6289,49 @@ "檔案位置 %s>%s,\n" "windows 路徑:「\\Users\\username\\AppData\\Local\\darktable\\」。\n" -#: ../src/common/database.c:2924 +#: ../src/common/database.c:3518 #, c-format msgid "" "the database lock file contains a pid that seems to be alive in your system: " "%d" msgstr "資料庫鎖定檔案裡包含一個仍在運作中的程序:%d" -#: ../src/common/database.c:2931 +#: ../src/common/database.c:3525 #, c-format msgid "the database lock file seems to be empty" msgstr "資料庫鎖定檔案內容似乎是空白的" -#: ../src/common/database.c:2941 +#: ../src/common/database.c:3535 #, c-format msgid "error opening the database lock file for reading: %s" msgstr "開啟資料庫鎖定檔案內容時讀取錯誤: 「%s」" +#: ../src/common/database.c:3605 +#, c-format +msgid "" +"the database schema version of\n" +"\n" +"<span style='italic'>%s</span>\n" +"\n" +"is too new for this build of darktable (this means the database was created " +"or upgraded by a newer darktable version)\n" +msgstr "" +"<span style='italic'>%s</span>\n" +"\n" +"的資料庫架構版本太新\n" +"\n" +"這代表此資料庫是由更新版的 darktable 創建的\n" + +#: ../src/common/database.c:3612 +msgid "darktable - too new db version" +msgstr "darktable 資料庫版本太新" + +#: ../src/common/database.c:3613 +msgid "_quit darktable" +msgstr "退出 darktable" + #. the database has to be upgraded, let's ask user -#: ../src/common/database.c:2978 +#: ../src/common/database.c:3628 #, c-format msgid "" "the database schema has to be upgraded for\n" @@ -6087,21 +6348,21 @@ "\n" "是否要繼續執行?或是關閉以手動進行備份\n" -#: ../src/common/database.c:2986 +#: ../src/common/database.c:3636 msgid "darktable - schema migration" msgstr "darktable 資料庫綱目遷移" -#: ../src/common/database.c:2987 ../src/common/database.c:3306 -#: ../src/common/database.c:3324 ../src/common/database.c:3491 -#: ../src/common/database.c:3509 -msgid "close darktable" -msgstr "關閉 darktable" - -#: ../src/common/database.c:2987 -msgid "upgrade database" -msgstr "更新資料庫" +#: ../src/common/database.c:3637 ../src/common/database.c:3959 +#: ../src/common/database.c:3974 ../src/common/database.c:4142 +#: ../src/common/database.c:4157 +msgid "_close darktable" +msgstr "關閉 darktable(_C)" + +#: ../src/common/database.c:3637 +msgid "_upgrade database" +msgstr "更新資料庫(_U)" -#: ../src/common/database.c:3286 ../src/common/database.c:3471 +#: ../src/common/database.c:3939 ../src/common/database.c:4122 #, c-format msgid "" "quick_check said:\n" @@ -6110,21 +6371,21 @@ "快速檢查結果:\n" "「%s」\n" -#: ../src/common/database.c:3303 ../src/common/database.c:3321 -#: ../src/common/database.c:3488 ../src/common/database.c:3506 +#: ../src/common/database.c:3956 ../src/common/database.c:3971 +#: ../src/common/database.c:4139 ../src/common/database.c:4154 msgid "darktable - error opening database" msgstr "darktable 開啟資料庫時發生錯誤" -#: ../src/common/database.c:3308 ../src/common/database.c:3493 -msgid "attempt restore" -msgstr "嘗試恢復" - -#: ../src/common/database.c:3310 ../src/common/database.c:3326 -#: ../src/common/database.c:3495 ../src/common/database.c:3511 -msgid "delete database" -msgstr "刪除資料庫" +#: ../src/common/database.c:3960 ../src/common/database.c:4143 +msgid "_attempt restore" +msgstr "嘗試恢復(_A)" + +#: ../src/common/database.c:3961 ../src/common/database.c:3975 +#: ../src/common/database.c:4144 ../src/common/database.c:4158 +msgid "_delete database" +msgstr "刪除資料庫(_D)" -#: ../src/common/database.c:3314 ../src/common/database.c:3499 +#: ../src/common/database.c:3964 ../src/common/database.c:4147 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup, attempt an automatic restore\n" @@ -6135,7 +6396,7 @@ "還是使用最近的資料庫備份自動恢復,\n" "或刪除已損壞的資料庫檔案並從頭開始?" -#: ../src/common/database.c:3330 ../src/common/database.c:3515 +#: ../src/common/database.c:3978 ../src/common/database.c:4161 msgid "" "do you want to close darktable now to manually restore\n" "the database from a backup or delete the corrupted database\n" @@ -6144,7 +6405,7 @@ "是否要關閉 darktable 從備份檔案中手動恢復資料庫?\n" "或是刪除已損壞的資料庫檔案並從頭開始?" -#: ../src/common/database.c:3337 ../src/common/database.c:3520 +#: ../src/common/database.c:3985 ../src/common/database.c:4166 #, c-format msgid "" "an error has occurred while trying to open the database from\n" @@ -6167,12 +6428,12 @@ "⚠️ 錯誤 ⚠️\n" "「快速無關曝光的導引濾波器」(fast EIGF)無法分配記憶體,請檢查記憶體設定" -#: ../src/common/exif.cc:5200 +#: ../src/common/exif.cc:5482 #, c-format msgid "cannot read XMP file '%s': '%s'" msgstr "無法讀取 XMP 檔案「%s」:「%s」" -#: ../src/common/exif.cc:5258 +#: ../src/common/exif.cc:5540 #, c-format msgid "cannot write XMP file '%s': '%s'" msgstr "無法寫入 XMP 檔案「%s」:「%s」" @@ -6183,114 +6444,114 @@ "⚠️ 錯誤 ⚠️\n" "「快速導引濾波器」(fast guided filter)無法分配記憶體,請檢查記憶體設定" -#: ../src/common/film.c:345 +#: ../src/common/film.c:356 msgid "do you want to remove this empty directory?" msgid_plural "do you want to remove these empty directories?" msgstr[0] "是否要刪除此空白資料夾?" -#: ../src/common/film.c:352 +#: ../src/common/film.c:363 msgid "remove empty directory?" msgid_plural "remove empty directories?" msgstr[0] "刪除空白資料夾?" -#: ../src/common/film.c:371 ../src/gui/preferences.c:816 -#: ../src/gui/styles_dialog.c:548 ../src/libs/geotagging.c:829 -#: ../src/libs/import.c:1551 +#: ../src/common/film.c:383 ../src/gui/preferences.c:814 +#: ../src/gui/styles_dialog.c:556 ../src/libs/geotagging.c:830 +#: ../src/libs/import.c:1560 msgid "name" msgstr "名稱" -#: ../src/common/film.c:477 +#: ../src/common/film.c:492 msgid "" "cannot remove film roll having local copies with non accessible originals" msgstr "不能移除這卷底片,因其含有無法存取原檔的本機備份副本" -#: ../src/common/history.c:840 +#: ../src/common/history.c:876 msgid "you need to copy history from an image before you paste it onto another" msgstr "需要先複製一張影像的編輯紀錄,然後才能套用在另一張影像上" -#: ../src/common/image.c:325 +#: ../src/common/image.c:333 msgid "orphaned image" msgstr "獨立影像" -#: ../src/common/image.c:620 +#: ../src/common/image.c:629 #, c-format msgid "geo-location undone for %d image" msgid_plural "geo-location undone for %d images" msgstr[0] "已復原 %d 張影像的地理位置" -#: ../src/common/image.c:622 +#: ../src/common/image.c:631 #, c-format msgid "geo-location re-applied to %d image" msgid_plural "geo-location re-applied to %d images" msgstr[0] "已重新套用 %d 張影像的地理位置" -#: ../src/common/image.c:645 +#: ../src/common/image.c:654 #, c-format msgid "date/time undone for %d image" msgid_plural "date/time undone for %d images" msgstr[0] "已復原 %d 張影像的日期與時間" -#: ../src/common/image.c:647 +#: ../src/common/image.c:656 #, c-format msgid "date/time re-applied to %d image" msgid_plural "date/time re-applied to %d images" msgstr[0] "已重新套用 %d 張影像的日期與時間" -#: ../src/common/image.c:2188 +#: ../src/common/image.c:2260 #, c-format msgid "cannot access local copy `%s'" msgstr "無法存取本機備份副本「%s」" -#: ../src/common/image.c:2195 +#: ../src/common/image.c:2267 #, c-format msgid "cannot write local copy `%s'" msgstr "無法寫入本機備份副本「%s」" -#: ../src/common/image.c:2202 +#: ../src/common/image.c:2274 #, c-format msgid "error moving local copy `%s' -> `%s'" msgstr "移動本機備份副本「%s」至「%s」時出錯" -#: ../src/common/image.c:2219 +#: ../src/common/image.c:2291 #, c-format msgid "error moving `%s': file not found" msgstr "移動「%s」時出錯:找不到檔案" -#: ../src/common/image.c:2229 +#: ../src/common/image.c:2301 #, c-format msgid "error moving `%s' -> `%s': file exists" msgstr "移動「%s」至「%s」時出錯:已存在同名檔案" -#: ../src/common/image.c:2233 +#: ../src/common/image.c:2305 #, c-format msgid "error moving `%s' -> `%s'" msgstr "移動「%s」至「%s」時出錯" -#: ../src/common/image.c:2562 +#: ../src/common/image.c:2634 msgid "cannot create local copy when the original file is not accessible." msgstr "無法存取原始檔案時,不能建立本機備份副本" -#: ../src/common/image.c:2576 +#: ../src/common/image.c:2648 msgid "cannot create local copy." msgstr "無法建立本機備份副本" -#: ../src/common/image.c:2656 ../src/control/jobs/control_jobs.c:777 +#: ../src/common/image.c:2728 ../src/control/jobs/control_jobs.c:777 msgid "cannot remove local copy when the original file is not accessible." msgstr "無法存取原始檔案時,不能移除本機備份副本" -#: ../src/common/image.c:2821 +#: ../src/common/image.c:2901 #, c-format msgid "%d local copy has been synchronized" msgid_plural "%d local copies have been synchronized" msgstr[0] "%d 張本機備份副本已同步" -#: ../src/common/image.c:3022 +#: ../src/common/image.c:3102 msgid "<b>WARNING</b>: camera is missing samples!" msgstr "" "⚠️ 警告 ⚠️\n" "缺少相機樣本" -#: ../src/common/image.c:3023 +#: ../src/common/image.c:3103 msgid "" "You must provide samples in <a href='https://raw.pixls.us/'>https://raw." "pixls.us/</a>" @@ -6298,88 +6559,89 @@ "必須在 <a href=‘https://raw.pixls.us/‘>https://raw.pixls.us/</a> 上提供相機圖" "檔" -#: ../src/common/image.c:3024 +#: ../src/common/image.c:3104 #, c-format msgid "" "for `%s' `%s'\n" "in as many format/compression/bit depths as possible" msgstr "盡可能提供更多「%s」「%s」不同格式 / 壓縮 / 位元深度的樣本圖檔" -#: ../src/common/image.c:3027 +#: ../src/common/image.c:3107 msgid "or the <b>RAW won't be readable</b> in next version." msgstr "否則將無法在下一版本中讀取 RAW 檔" -#: ../src/common/image.h:209 ../src/common/ratings.c:284 -#: ../src/libs/history.c:843 ../src/libs/snapshots.c:779 +#: ../src/common/image.h:217 ../src/common/ratings.c:283 +#: ../src/imageio/format/avif.c:114 ../src/libs/history.c:843 +#: ../src/libs/snapshots.c:837 msgid "unknown" msgstr "未知" #. EMPTY_FIELD -#: ../src/common/image.h:210 -msgid "tiff" +#: ../src/common/image.h:218 ../src/imageio/format/tiff.c:831 +msgid "TIFF" msgstr "TIFF" -#: ../src/common/image.h:211 -msgid "png" +#: ../src/common/image.h:219 ../src/imageio/format/png.c:599 +msgid "PNG" msgstr "PNG" -#: ../src/common/image.h:212 ../src/imageio/format/j2k.c:652 -msgid "j2k" +#: ../src/common/image.h:220 +msgid "JPEG 2000" msgstr "JPEG 2000" -#: ../src/common/image.h:213 -msgid "jpeg" +#: ../src/common/image.h:221 +msgid "JPEG" msgstr "JPEG" -#: ../src/common/image.h:214 -msgid "exr" -msgstr "OpenEXR" +#: ../src/common/image.h:222 +msgid "EXR" +msgstr "EXR" -#: ../src/common/image.h:215 -msgid "rgbe" -msgstr "RGBE(Radiance HDR)" +#: ../src/common/image.h:223 +msgid "RGBE" +msgstr "RGBE" -#: ../src/common/image.h:216 -msgid "pfm" +#: ../src/common/image.h:224 ../src/imageio/format/pfm.c:120 +msgid "PFM" msgstr "PFM" -#: ../src/common/image.h:217 +#: ../src/common/image.h:225 msgid "GraphicsMagick" msgstr "GraphicsMagick" -#: ../src/common/image.h:218 -msgid "rawspeed" -msgstr "rawspeed" - -#: ../src/common/image.h:219 -msgid "netpnm" -msgstr "netpnm" +#: ../src/common/image.h:226 +msgid "RawSpeed" +msgstr "RawSpeed" -#: ../src/common/image.h:220 -msgid "avif" +#: ../src/common/image.h:227 +msgid "Netpbm" +msgstr "Netpbm" + +#: ../src/common/image.h:228 ../src/imageio/format/avif.c:728 +msgid "AVIF" msgstr "AVIF" -#: ../src/common/image.h:221 +#: ../src/common/image.h:229 msgid "ImageMagick" msgstr "ImageMagick" -#: ../src/common/image.h:222 -msgid "heif" +#: ../src/common/image.h:230 +msgid "HEIF" msgstr "HEIF" -#: ../src/common/image.h:223 -msgid "libraw" -msgstr "libraw" +#: ../src/common/image.h:231 +msgid "LibRaw" +msgstr "LibRaw" -#: ../src/common/image.h:224 -msgid "webp" +#: ../src/common/image.h:232 ../src/imageio/format/webp.c:380 +msgid "WebP" msgstr "WebP" -#: ../src/common/image.h:225 -msgid "jpeg xl" +#: ../src/common/image.h:233 ../src/imageio/format/jxl.c:482 +msgid "JPEG XL" msgstr "JPEG XL" -#: ../src/common/image.h:226 +#: ../src/common/image.h:234 msgid "QOI" msgstr "QOI" @@ -6407,7 +6669,7 @@ msgid "requested session path not available. device not mounted?" msgstr "資料夾無法存取,請設備確認是否已正確連接" -#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:197 +#: ../src/common/iop_order.c:60 ../src/libs/ioporder.c:195 msgid "legacy" msgstr "傳統" @@ -6419,7 +6681,7 @@ msgid "v3.0 JPEG" msgstr "v3.0 JPEG" -#: ../src/common/iop_profile.c:1205 +#: ../src/common/iop_profile.c:1207 #, c-format msgid "" "darktable loads %s from\n" @@ -6444,13 +6706,13 @@ #. title #: ../src/common/metadata.c:48 ../src/imageio/format/pdf.c:574 -#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:169 -#: ../src/imageio/storage/gallery.c:170 ../src/imageio/storage/latex.c:169 -#: ../src/imageio/storage/piwigo.c:1058 ../src/libs/filtering.c:69 +#: ../src/imageio/format/pdf.c:576 ../src/imageio/storage/gallery.c:219 +#: ../src/imageio/storage/gallery.c:222 ../src/imageio/storage/latex.c:206 +#: ../src/imageio/storage/piwigo.c:1091 ../src/libs/filtering.c:69 msgid "title" msgstr "標題" -#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:552 +#: ../src/common/metadata.c:49 ../src/gui/styles_dialog.c:563 #: ../src/libs/filtering.c:70 msgid "description" msgstr "描述" @@ -6468,11 +6730,11 @@ msgstr "版本名稱" #: ../src/common/metadata.c:53 ../src/libs/live_view.c:319 -#: ../src/libs/metadata_view.c:124 +#: ../src/libs/metadata_view.c:126 msgid "image id" msgstr "影像識別碼" -#: ../src/common/mipmap_cache.c:1065 ../src/imageio/imageio.c:787 +#: ../src/common/mipmap_cache.c:1070 ../src/imageio/imageio.c:799 #, c-format msgid "image `%s' is not available!" msgstr "影像「%s」無法使用" @@ -6488,7 +6750,43 @@ "⚠️ 錯誤 ⚠️\n" "「%s」雜訊描述檔無效" -#: ../src/common/opencl.c:1376 +#: ../src/common/opencl.c:1165 +msgid "no working OpenCL library found" +msgstr "沒有找到可用的 OpenCL 程式庫" + +#: ../src/common/opencl.c:1185 +msgid "" +"platform detection failed. some possible causes:\n" +" - OpenCL ICD (ocl-icd) missing,\n" +" - previous OpenCL errors leading to blocked devices,\n" +" - power management problems,\n" +" - buggy drivers,\n" +" - no OpenCL driver installed." +msgstr "" +"平台偵測失敗,可能原因如下:\n" +" - OpenCL ICD (ocl-icd) 遺失\n" +" - 過去的 OpenCL 錯誤導致設備被阻擋\n" +" - 能源管理設定問題\n" +" - 有問題的驅動程式\n" +" - 沒有安裝 OpenCL 驅動" + +#: ../src/common/opencl.c:1277 +msgid "no devices found for unknown platform" +msgstr "沒有找到未知平台的設備" + +#: ../src/common/opencl.c:1323 +msgid "not enough memory for OpenCL devices" +msgstr "沒有足夠的記憶體可供 OpenCL 設備使用" + +#: ../src/common/opencl.c:1358 +msgid "no OpenCL devices found" +msgstr "沒有找到 OpenCL 設備" + +#: ../src/common/opencl.c:1401 +msgid "no suitable OpenCL devices found" +msgstr "沒有找到適用的 OpenCL 設備" + +#: ../src/common/opencl.c:1422 #, c-format msgid "" "OpenCL initializing problem:\n" @@ -6497,37 +6795,21 @@ "OpenCL 初始化問題:\n" "%s" -#: ../src/common/opencl.c:1439 -msgid "" -"due to a slow GPU hardware acceleration using OpenCL has been deactivated" -msgstr "" -"⚠️ 注意 ⚠️\n" -"由於顯示卡速度過慢, OpenCL 加速功能已停用" - -#: ../src/common/opencl.c:1449 -msgid "" -"multiple GPUs detected - OpenCL scheduling profile has been set accordingly" -msgstr "" -"⚠️ 注意 ⚠️\n" -"偵測到多張顯示卡,已自動調整 OpenCL 至相應設定" - -#: ../src/common/opencl.c:1462 -msgid "" -"very fast GPU detected - OpenCL scheduling profile has been set accordingly" -msgstr "" -"⚠️ 注意 ⚠️\n" -"偵測到高階的顯示卡,已自動調整 OpenCL 至相應設定" +#: ../src/common/opencl.c:1454 +msgid "OpenCL scheduling profile set to default, setup has changed" +msgstr "恢復 OpenCL 設定成預設值,設定已變更" -#: ../src/common/opencl.c:1471 -msgid "OpenCL scheduling profile set to default" -msgstr "恢復 OpenCL 設定成預設值" +#: ../src/common/opencl.c:2283 +#, c-format +msgid "building OpenCL program %s for %s" +msgstr "為 %2$s 建立 OpenCL 程式 %1$s" -#: ../src/common/pdf.h:88 ../src/iop/lens.cc:3441 +#: ../src/common/pdf.h:88 ../src/iop/lens.cc:4071 #: ../src/libs/filters/focal.c:74 ../src/libs/print_settings.c:81 msgid "mm" msgstr "公釐" -#: ../src/common/pdf.h:89 ../src/libs/export.c:520 ../src/libs/export.c:1145 +#: ../src/common/pdf.h:89 ../src/libs/export.c:555 ../src/libs/export.c:1241 #: ../src/libs/print_settings.c:81 msgid "cm" msgstr "公分" @@ -6540,7 +6822,7 @@ msgid "\"" msgstr "\"" -#: ../src/common/pdf.h:104 ../src/iop/borders.c:958 +#: ../src/common/pdf.h:104 ../src/iop/borders.c:971 msgid "A4" msgstr "A4 - 21.0 x 29.7 公分" @@ -6576,66 +6858,65 @@ msgid "no images selected to apply rating" msgstr "沒有選取的影像可以套用評分" -#: ../src/common/ratings.c:275 ../src/libs/metadata_view.c:351 +#: ../src/common/ratings.c:274 ../src/libs/metadata_view.c:355 msgid "image rejected" msgstr "影像已評分為不合格" -#: ../src/common/ratings.c:277 +#: ../src/common/ratings.c:276 msgid "image rated to 0 star" msgstr "影像已評分為 0 顆星" -#: ../src/common/ratings.c:279 +#: ../src/common/ratings.c:278 #, c-format msgid "image rated to %s" msgstr "影像已評分為「%s」顆星" -#: ../src/common/ratings.c:306 ../src/libs/select.c:39 -#: ../src/views/lighttable.c:766 +#: ../src/common/ratings.c:305 ../src/views/lighttable.c:766 msgid "select" msgstr "選取影像" -#: ../src/common/ratings.c:307 +#: ../src/common/ratings.c:306 msgid "upgrade" msgstr "評分升級" -#: ../src/common/ratings.c:308 +#: ../src/common/ratings.c:307 msgid "downgrade" msgstr "評分降級" -#: ../src/common/ratings.c:312 +#: ../src/common/ratings.c:311 msgid "zero" msgstr "零" -#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:277 +#: ../src/common/ratings.c:312 ../src/libs/filters/rating_range.c:304 msgid "one" msgstr "一" -#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:278 +#: ../src/common/ratings.c:313 ../src/libs/filters/rating_range.c:305 msgid "two" msgstr "二" -#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:279 +#: ../src/common/ratings.c:314 ../src/libs/filters/rating_range.c:306 msgid "three" msgstr "三" -#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:280 +#: ../src/common/ratings.c:315 ../src/libs/filters/rating_range.c:307 msgid "four" msgstr "四" -#: ../src/common/ratings.c:317 ../src/libs/filters/rating_range.c:281 +#: ../src/common/ratings.c:316 ../src/libs/filters/rating_range.c:308 msgid "five" msgstr "五" -#: ../src/common/ratings.c:318 +#: ../src/common/ratings.c:317 msgid "reject" msgstr "不合格" -#: ../src/common/styles.c:244 +#: ../src/common/styles.c:243 #, c-format msgid "style with name '%s' already exists" msgstr "風格檔「%s」已存在" -#: ../src/common/styles.c:270 ../src/common/styles.c:1776 +#: ../src/common/styles.c:270 ../src/common/styles.c:1783 #: ../src/libs/styles.c:54 msgid "styles" msgstr "風格檔" @@ -6645,56 +6926,56 @@ msgid "style named '%s' successfully created" msgstr "已建立風格檔「%s」" -#: ../src/common/styles.c:689 ../src/common/styles.c:719 -#: ../src/common/styles.c:759 ../src/dtgtk/culling.c:1097 +#: ../src/common/styles.c:688 ../src/common/styles.c:718 +#: ../src/common/styles.c:758 ../src/dtgtk/culling.c:1066 msgid "no image selected!" msgstr "尚未選取影像" -#: ../src/common/styles.c:693 +#: ../src/common/styles.c:692 #, c-format msgid "style %s successfully applied!" msgstr "已成功套用風格檔「%s」!" -#: ../src/common/styles.c:709 +#: ../src/common/styles.c:708 msgid "no images nor styles selected!" msgstr "尚未選取影像或風格檔" -#: ../src/common/styles.c:714 +#: ../src/common/styles.c:713 msgid "no styles selected!" msgstr "尚未選取風格檔" -#: ../src/common/styles.c:744 +#: ../src/common/styles.c:743 msgid "style successfully applied!" msgid_plural "styles successfully applied!" msgstr[0] "風格檔套用成功" -#: ../src/common/styles.c:840 +#: ../src/common/styles.c:838 #, c-format msgid "module `%s' version mismatch: %d != %d" msgstr "模組「 %s 」版本不匹配:%d≠%d" -#: ../src/common/styles.c:1124 +#: ../src/common/styles.c:1125 #, c-format msgid "applied style `%s' on current image" msgstr "對目前影像套用風格檔「%s」" -#: ../src/common/styles.c:1378 +#: ../src/common/styles.c:1383 #, c-format msgid "failed to overwrite style file for %s" msgstr "無法覆寫風格檔「%s」" -#: ../src/common/styles.c:1384 +#: ../src/common/styles.c:1389 #, c-format msgid "style file for %s exists" msgstr "風格檔「%s」已存在" -#: ../src/common/styles.c:1667 +#: ../src/common/styles.c:1674 #, c-format msgid "style %s was successfully imported" msgstr "風格檔「%s」已匯入" #. Failed to open file, clean up. -#: ../src/common/styles.c:1711 +#: ../src/common/styles.c:1718 #, c-format msgid "could not read file `%s'" msgstr "無法讀取檔案「%s」" @@ -6707,10 +6988,18 @@ msgid "below sea level" msgstr "海平面下" -#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:880 +#: ../src/common/utility.c:557 ../src/libs/metadata_view.c:907 msgid "m" msgstr "公尺" +#: ../src/common/variables.c:712 ../src/develop/imageop_gui.c:210 +#: ../src/imageio/format/avif.c:822 ../src/imageio/format/pdf.c:636 +#: ../src/imageio/format/pdf.c:655 ../src/imageio/format/tiff.c:946 +#: ../src/libs/export.c:1296 ../src/libs/export.c:1305 +#: ../src/libs/export.c:1314 ../src/libs/metadata_view.c:673 +msgid "yes" +msgstr "是" + #. Column 1 - "make" of the camera. #. * Column 2 - "model" (use the "make" and "model" as provided by DCRaw). #. * Column 3 - WB name. @@ -6723,7 +7012,7 @@ #. * #. * WB name is standardized to one of the following: #. "Sunlight" and other variation should be switched to this: -#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:323 +#: ../src/common/wb_presets.c:42 ../src/iop/lowlight.c:320 msgid "daylight" msgstr "晴天" @@ -6823,7 +7112,7 @@ msgid "underwater" msgstr "水下" -#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2447 +#: ../src/common/wb_presets.c:74 ../src/views/darkroom.c:2286 msgid "black & white" msgstr "黑白" @@ -6843,87 +7132,87 @@ msgid "auto WB" msgstr "自動白平衡" -#: ../src/control/control.c:66 ../src/gui/accelerators.c:138 -#: ../src/views/darkroom.c:2162 +#: ../src/control/control.c:69 ../src/gui/accelerators.c:156 +#: ../src/views/darkroom.c:2029 msgid "hold" msgstr "保持按壓" -#: ../src/control/control.c:102 ../src/control/control.c:205 +#: ../src/control/control.c:108 ../src/control/control.c:214 msgid "modifiers" msgstr "修飾鍵" -#: ../src/control/control.c:111 +#: ../src/control/control.c:117 msgctxt "accel" msgid "global" msgstr "全體" -#: ../src/control/control.c:118 +#: ../src/control/control.c:124 msgctxt "accel" msgid "views" msgstr "檢視" -#: ../src/control/control.c:125 +#: ../src/control/control.c:131 msgctxt "accel" msgid "thumbtable" msgstr "縮圖視窗" -#: ../src/control/control.c:132 +#: ../src/control/control.c:138 msgctxt "accel" msgid "utility modules" msgstr "工具模組" -#: ../src/control/control.c:139 +#: ../src/control/control.c:145 msgctxt "accel" msgid "format" msgstr "格式" -#: ../src/control/control.c:146 +#: ../src/control/control.c:152 msgctxt "accel" msgid "storage" msgstr "儲存" -#: ../src/control/control.c:153 +#: ../src/control/control.c:159 msgctxt "accel" msgid "processing modules" msgstr "編輯模組" -#: ../src/control/control.c:160 +#: ../src/control/control.c:166 msgctxt "accel" msgid "<blending>" msgstr "<混合>" -#: ../src/control/control.c:167 +#: ../src/control/control.c:173 msgctxt "accel" msgid "Lua scripts" msgstr "Lua 腳本" -#: ../src/control/control.c:174 +#: ../src/control/control.c:180 msgctxt "accel" msgid "fallbacks" msgstr "備用擴展快速鍵" -#: ../src/control/control.c:183 +#: ../src/control/control.c:189 msgctxt "accel" msgid "<focused>" msgstr "<使用中>" -#: ../src/control/control.c:202 +#: ../src/control/control.c:209 msgid "show accels window" msgstr "顯示快速鍵視窗" -#: ../src/control/control.c:363 +#: ../src/control/control.c:371 msgid "working..." msgstr "處理中…" -#: ../src/control/crawler.c:425 +#: ../src/control/crawler.c:418 #, c-format msgid "ERROR: %s NOT synced XMP → DB" msgstr "" "⚠️ 錯誤 ⚠️\n" "無法將「%s」的 XMP 附屬檔案同步至資料庫" -#: ../src/control/crawler.c:426 ../src/control/crawler.c:492 -#: ../src/control/crawler.c:561 +#: ../src/control/crawler.c:419 ../src/control/crawler.c:485 +#: ../src/control/crawler.c:554 msgid "" "ERROR: cannot write the database. the destination may be full, offline or " "read-only." @@ -6931,20 +7220,20 @@ "⚠️ 錯誤 ⚠️\n" "無法寫入資料庫,硬碟空間可能不足、無法存取或是被設為唯讀" -#: ../src/control/crawler.c:433 +#: ../src/control/crawler.c:426 #, c-format msgid "SUCCESS: %s synced XMP → DB" msgstr "成功:已從 XMP 附屬檔案同步「%s」的資料至資料庫" -#: ../src/control/crawler.c:455 +#: ../src/control/crawler.c:448 #, c-format msgid "ERROR: %s NOT synced DB → XMP" msgstr "" "⚠️ 錯誤 ⚠️\n" "無法將「%s」的資料庫同步至 XMP 附屬檔案" -#: ../src/control/crawler.c:457 ../src/control/crawler.c:516 -#: ../src/control/crawler.c:582 +#: ../src/control/crawler.c:450 ../src/control/crawler.c:509 +#: ../src/control/crawler.c:575 #, c-format msgid "" "ERROR: cannot write %s \n" @@ -6954,137 +7243,141 @@ "無法寫入「%s」\n" "硬碟空間可能不足、無法存取或是被設為唯讀" -#: ../src/control/crawler.c:463 +#: ../src/control/crawler.c:456 #, c-format msgid "SUCCESS: %s synced DB → XMP" msgstr "成功:已從資料庫同步「%s」的資料至 XMP 附屬檔案" -#: ../src/control/crawler.c:489 +#: ../src/control/crawler.c:482 #, c-format msgid "ERROR: %s NOT synced new (XMP) → old (DB)" msgstr "⚠️ 錯誤 ⚠️\v無法將「%s」新的 XMP 附屬檔案同步至舊的資料庫" -#: ../src/control/crawler.c:499 +#: ../src/control/crawler.c:492 #, c-format msgid "SUCCESS: %s synced new (XMP) → old (DB)" msgstr "成功:已從新的 XMP 附屬檔案同步「%s」的資料至舊資料庫" -#: ../src/control/crawler.c:513 +#: ../src/control/crawler.c:506 #, c-format msgid "ERROR: %s NOT synced new (DB) → old (XMP)" msgstr "" "⚠️ 錯誤 ⚠️\n" "無法將「%s」的新資料庫同步至舊 XMP 附屬檔案" -#: ../src/control/crawler.c:521 +#: ../src/control/crawler.c:514 #, c-format msgid "SUCCESS: %s synced new (DB) → old (XMP)" msgstr "成功:已從新資料庫同步「%s」的資料至舊的 XMP 附屬檔案" -#: ../src/control/crawler.c:530 ../src/control/crawler.c:598 +#: ../src/control/crawler.c:523 ../src/control/crawler.c:591 #, c-format msgid "EXCEPTION: %s has inconsistent timestamps" msgstr "" "⚠️ 異常 ⚠️\n" "「%s」具有不同的時間" -#: ../src/control/crawler.c:558 +#: ../src/control/crawler.c:551 #, c-format msgid "ERROR: %s NOT synced old (XMP) → new (DB)" msgstr "" "⚠️ 錯誤 ⚠️\n" "無法將「%s」的舊 XMP 附屬檔案同步至新資料庫" -#: ../src/control/crawler.c:567 +#: ../src/control/crawler.c:560 #, c-format msgid "SUCCESS: %s synced old (XMP) → new (DB)" msgstr "成功:已從舊的 XMP 附屬檔案同步「%s」的資料至新資料庫" -#: ../src/control/crawler.c:579 +#: ../src/control/crawler.c:572 #, c-format msgid "ERROR: %s NOT synced old (DB) → new (XMP)" msgstr "" "⚠️ 錯誤 ⚠️\n" "無法將「%s」的舊資料庫同步至新的 XMP 附屬檔案" -#: ../src/control/crawler.c:588 +#: ../src/control/crawler.c:581 #, c-format msgid "SUCCESS: %s synced old (DB) → new (XMP)" msgstr "成功:已從舊的資料庫同步「%s」的資料至新的 XMP 附屬檔案" -#: ../src/control/crawler.c:670 +#: ../src/control/crawler.c:663 #, c-format msgid "%id %02dh %02dm %02ds" msgstr "%i 天 %02d 小時 %02d 分 %02d 秒" -#: ../src/control/crawler.c:740 ../src/imageio/storage/disk.c:168 -#: ../src/imageio/storage/gallery.c:154 ../src/imageio/storage/latex.c:153 -#: ../src/imageio/storage/latex.c:171 +#: ../src/control/crawler.c:716 +msgid "XMP" +msgstr "XMP" + +#: ../src/control/crawler.c:733 ../src/imageio/storage/disk.c:250 +#: ../src/imageio/storage/gallery.c:202 ../src/imageio/storage/latex.c:190 +#: ../src/imageio/storage/latex.c:208 msgid "path" msgstr "路徑" -#: ../src/control/crawler.c:749 +#: ../src/control/crawler.c:742 msgid "XMP timestamp" msgstr "XMP 日期" -#: ../src/control/crawler.c:754 +#: ../src/control/crawler.c:747 msgid "database timestamp" msgstr "資料庫日期" -#: ../src/control/crawler.c:759 +#: ../src/control/crawler.c:752 msgid "newest" msgstr "最新" -#: ../src/control/crawler.c:765 +#: ../src/control/crawler.c:758 msgid "time difference" msgstr "時間差異" -#: ../src/control/crawler.c:777 +#: ../src/control/crawler.c:770 msgid "updated XMP sidecar files found" msgstr "找到已更新的 XMP 附屬檔案" -#: ../src/control/crawler.c:778 +#: ../src/control/crawler.c:771 msgid "_close" msgstr "關閉(_C)" #. setup selection accelerators #. action-box -#: ../src/control/crawler.c:793 ../src/dtgtk/thumbtable.c:2578 -#: ../src/libs/import.c:1722 ../src/libs/select.c:135 +#: ../src/control/crawler.c:786 ../src/dtgtk/thumbtable.c:2755 +#: ../src/libs/import.c:1732 ../src/libs/select.c:136 msgid "select all" msgstr "全部選取" -#: ../src/control/crawler.c:794 ../src/dtgtk/thumbtable.c:2580 -#: ../src/libs/import.c:1726 ../src/libs/select.c:139 +#: ../src/control/crawler.c:787 ../src/dtgtk/thumbtable.c:2757 +#: ../src/libs/import.c:1736 ../src/libs/select.c:140 msgid "select none" msgstr "取消選取" -#: ../src/control/crawler.c:795 ../src/dtgtk/thumbtable.c:2582 -#: ../src/libs/select.c:143 +#: ../src/control/crawler.c:788 ../src/dtgtk/thumbtable.c:2759 +#: ../src/libs/select.c:144 msgid "invert selection" msgstr "反轉選取" -#: ../src/control/crawler.c:807 +#: ../src/control/crawler.c:800 msgid "on the selection:" msgstr "選擇的:" -#: ../src/control/crawler.c:808 +#: ../src/control/crawler.c:801 msgid "keep the XMP edit" msgstr "保留 XMP 編輯" -#: ../src/control/crawler.c:809 +#: ../src/control/crawler.c:802 msgid "keep the database edit" msgstr "保留資料庫編輯" -#: ../src/control/crawler.c:810 +#: ../src/control/crawler.c:803 msgid "keep the newest edit" msgstr "保留最新的編輯" -#: ../src/control/crawler.c:811 +#: ../src/control/crawler.c:804 msgid "keep the oldest edit" msgstr "保留最舊的編輯" -#: ../src/control/crawler.c:836 +#: ../src/control/crawler.c:829 msgid "synchronization log" msgstr "同步紀錄" @@ -7112,6 +7405,10 @@ msgid "starting to import images from camera" msgstr "開始從相機匯入影像" +#: ../src/control/jobs/camera_jobs.c:302 +msgid "failed to import images from camera." +msgstr "從相機匯入影像失敗" + #: ../src/control/jobs/camera_jobs.c:309 #, c-format msgid "importing %d image from camera" @@ -7210,7 +7507,8 @@ msgid "_remove from library" msgstr "從圖庫中移除" -#: ../src/control/jobs/control_jobs.c:884 +#: ../src/control/jobs/control_jobs.c:884 ../src/libs/styles.c:440 +#: ../src/libs/styles.c:625 msgid "_skip" msgstr "略過而不儲存" @@ -7301,42 +7599,42 @@ msgid "exporting %d / %d to %s" msgstr "匯出 %d 張(共 %d 張)影像到「%s」" -#: ../src/control/jobs/control_jobs.c:1459 ../src/views/darkroom.c:800 +#: ../src/control/jobs/control_jobs.c:1451 ../src/views/darkroom.c:721 #: ../src/views/print.c:369 #, c-format msgid "image `%s' is currently unavailable" msgstr "影像「%s」目前無法使用" -#: ../src/control/jobs/control_jobs.c:1551 +#: ../src/control/jobs/control_jobs.c:1554 msgid "merge HDR image" msgstr "合併 HDR 影像" -#: ../src/control/jobs/control_jobs.c:1565 +#: ../src/control/jobs/control_jobs.c:1568 msgid "duplicate images" msgstr "複製影像" -#: ../src/control/jobs/control_jobs.c:1571 +#: ../src/control/jobs/control_jobs.c:1574 msgid "flip images" msgstr "翻轉影像" -#: ../src/control/jobs/control_jobs.c:1578 +#: ../src/control/jobs/control_jobs.c:1581 msgid "set monochrome images" msgstr "將影像設為黑白" #. get all selected images now, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1585 +#: ../src/control/jobs/control_jobs.c:1588 msgid "remove images" msgstr "移除影像" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove image?" msgstr "是否要移除影像?" -#: ../src/control/jobs/control_jobs.c:1598 +#: ../src/control/jobs/control_jobs.c:1601 msgid "remove images?" msgstr "是否要移除影像?" -#: ../src/control/jobs/control_jobs.c:1599 +#: ../src/control/jobs/control_jobs.c:1602 #, c-format msgid "" "do you really want to remove %d image from darktable\n" @@ -7349,21 +7647,21 @@ "(僅從圖庫中移除,不刪除硬碟裡的檔案)" #. first get all selected images, to avoid the set changing during ui interaction -#: ../src/control/jobs/control_jobs.c:1614 -#: ../src/control/jobs/control_jobs.c:1647 +#: ../src/control/jobs/control_jobs.c:1617 +#: ../src/control/jobs/control_jobs.c:1650 msgid "delete images" msgstr "刪除影像" -#: ../src/control/jobs/control_jobs.c:1630 -#: ../src/control/jobs/control_jobs.c:1660 +#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1663 msgid "delete image?" msgstr "是否要刪除影像?" -#: ../src/control/jobs/control_jobs.c:1630 +#: ../src/control/jobs/control_jobs.c:1633 msgid "delete images?" msgstr "是否要刪除影像?" -#: ../src/control/jobs/control_jobs.c:1631 +#: ../src/control/jobs/control_jobs.c:1634 #, c-format msgid "" "do you really want to physically delete %d image\n" @@ -7375,37 +7673,37 @@ "確定要刪除選取的 %d 張影像?\n" "(從硬碟中刪除實體檔案)" -#: ../src/control/jobs/control_jobs.c:1633 +#: ../src/control/jobs/control_jobs.c:1636 #, c-format msgid "do you really want to physically delete %d image from disk?" msgid_plural "do you really want to physically delete %d images from disk?" msgstr[0] "確定要從硬碟中刪除選取的 %d 張影像檔案?" -#: ../src/control/jobs/control_jobs.c:1661 +#: ../src/control/jobs/control_jobs.c:1664 msgid "" "do you really want to physically delete selected image (using trash if " "possible)?" msgstr "確定要從硬碟中刪除選取的影像檔案?" -#: ../src/control/jobs/control_jobs.c:1662 +#: ../src/control/jobs/control_jobs.c:1665 msgid "do you really want to physically delete selected image from disk?" msgstr "確定要從硬碟中刪除選取的影像檔案?" -#: ../src/control/jobs/control_jobs.c:1677 +#: ../src/control/jobs/control_jobs.c:1680 msgid "move images" msgstr "移動影像" -#: ../src/control/jobs/control_jobs.c:1689 -#: ../src/control/jobs/control_jobs.c:1743 +#: ../src/control/jobs/control_jobs.c:1692 +#: ../src/control/jobs/control_jobs.c:1746 msgid "_select as destination" msgstr "選擇資料夾(_S)" -#: ../src/control/jobs/control_jobs.c:1708 +#: ../src/control/jobs/control_jobs.c:1711 msgid "move image?" msgid_plural "move images?" msgstr[0] "是否要移動影像?" -#: ../src/control/jobs/control_jobs.c:1709 +#: ../src/control/jobs/control_jobs.c:1712 #, c-format msgid "" "do you really want to physically move %d image to %s?\n" @@ -7417,110 +7715,105 @@ "是否要將 %d 張影像實體移動到「%s」?\n" "(所有複本都會被移動)" -#: ../src/control/jobs/control_jobs.c:1731 +#: ../src/control/jobs/control_jobs.c:1734 msgid "copy images" msgstr "複製影像" -#: ../src/control/jobs/control_jobs.c:1762 +#: ../src/control/jobs/control_jobs.c:1765 msgid "copy image?" msgid_plural "copy images?" msgstr[0] "是否要複製影像?" -#: ../src/control/jobs/control_jobs.c:1763 +#: ../src/control/jobs/control_jobs.c:1766 #, c-format msgid "do you really want to physically copy %d image to %s?" msgid_plural "do you really want to physically copy %d images to %s?" msgstr[0] "是否要將 %d 張影像實體複製到「%s」?" -#: ../src/control/jobs/control_jobs.c:1781 -#: ../src/control/jobs/control_jobs.c:1789 +#: ../src/control/jobs/control_jobs.c:1784 +#: ../src/control/jobs/control_jobs.c:1792 msgid "local copy images" msgstr "本機備份影像" -#: ../src/control/jobs/control_jobs.c:1796 ../src/libs/image.c:604 +#: ../src/control/jobs/control_jobs.c:1799 ../src/libs/image.c:674 msgid "refresh EXIF" msgstr "更新 EXIF 資料" -#: ../src/control/jobs/control_jobs.c:1860 +#: ../src/control/jobs/control_jobs.c:1863 #, c-format msgid "failed to get parameters from storage module `%s', aborting export.." msgstr "從儲存模組「%s」取得獲取參數失敗,正在中止匯出" -#: ../src/control/jobs/control_jobs.c:1876 +#: ../src/control/jobs/control_jobs.c:1879 msgid "export images" msgstr "匯出影像" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "adding time offset to %d image" msgstr "寫入 %d 張影像的時間偏差補償" -#: ../src/control/jobs/control_jobs.c:1926 +#: ../src/control/jobs/control_jobs.c:1929 #, c-format msgid "setting date/time of %d image" msgstr "設定 %d 張影像的拍攝日期和時間" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "adding time offset to %d images" msgstr "寫入 %d 張影像的時間偏差補償" -#: ../src/control/jobs/control_jobs.c:1927 +#: ../src/control/jobs/control_jobs.c:1930 #, c-format msgid "setting date/time of %d images" msgstr "設定 %d 張影像的拍攝日期和時間" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "added time offset to %d image" msgstr "已修正 %d 張影像的時間偏差" -#: ../src/control/jobs/control_jobs.c:1972 +#: ../src/control/jobs/control_jobs.c:1975 #, c-format msgid "set date/time of %d image" msgstr "已設定 %d 張影像的日期與時間" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "added time offset to %d images" msgstr "已修正 %d 張影像的時間偏差" -#: ../src/control/jobs/control_jobs.c:1973 +#: ../src/control/jobs/control_jobs.c:1976 #, c-format msgid "set date/time of %d images" msgstr "已設定 %d 張影像的日期與時間" -#: ../src/control/jobs/control_jobs.c:2014 +#: ../src/control/jobs/control_jobs.c:2017 msgid "time offset" msgstr "時間偏差補償" -#: ../src/control/jobs/control_jobs.c:2042 ../src/libs/copy_history.c:414 +#: ../src/control/jobs/control_jobs.c:2045 ../src/libs/copy_history.c:414 msgid "write sidecar files" msgstr "寫入附屬檔案" -#: ../src/control/jobs/control_jobs.c:2256 ../src/control/jobs/film_jobs.c:297 +#: ../src/control/jobs/control_jobs.c:2259 ../src/control/jobs/film_jobs.c:297 #, c-format msgid "importing %d image" msgid_plural "importing %d images" msgstr[0] "匯入 %d 張影像" -#: ../src/control/jobs/control_jobs.c:2292 +#: ../src/control/jobs/control_jobs.c:2295 #, c-format msgid "importing %d/%d image" msgid_plural "importing %d/%d images" msgstr[0] "正在匯入第 %d / %d 張影像" -#: ../src/control/jobs/control_jobs.c:2300 +#: ../src/control/jobs/control_jobs.c:2305 #, c-format msgid "imported %d image" msgid_plural "imported %d images" msgstr[0] "已匯入 %d 張影像" -#: ../src/control/jobs/control_jobs.c:2347 ../src/gui/preferences.c:530 -#: ../src/libs/import.c:172 -msgid "import" -msgstr "影像匯入" - #: ../src/control/jobs/film_jobs.c:73 ../src/control/jobs/film_jobs.c:109 msgid "import images" msgstr "匯入影像" @@ -7538,11 +7831,11 @@ msgid "import image" msgstr "匯入影像" -#: ../src/develop/blend.c:322 +#: ../src/develop/blend.c:315 msgid "detail mask blending error" msgstr "細節遮罩混合錯誤" -#: ../src/develop/blend.c:864 +#: ../src/develop/blend.c:904 msgid "detail mask CL blending problem" msgstr "" "⚠️ 錯誤 ⚠️\n" @@ -7745,8 +8038,7 @@ msgid "reverse" msgstr "反轉" -#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:413 -#: ../src/libs/metadata.c:631 ../src/libs/metadata_view.c:1193 +#: ../src/develop/blend_gui.c:140 ../src/imageio/format/webp.c:442 msgid "default" msgstr "預設" @@ -7754,35 +8046,35 @@ msgid "RAW" msgstr "RAW" -#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2014 +#: ../src/develop/blend_gui.c:146 ../src/develop/blend_gui.c:2030 msgid "RGB (display)" msgstr "RGB(顯示參照)" -#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2027 +#: ../src/develop/blend_gui.c:148 ../src/develop/blend_gui.c:2043 msgid "RGB (scene)" msgstr "RGB(場景參照)" #. DEVELOP_MASK_ENABLED -#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3419 +#: ../src/develop/blend_gui.c:155 ../src/develop/blend_gui.c:3438 msgid "uniformly" msgstr "均勻混合" -#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:3429 ../src/develop/imageop.c:2660 +#: ../src/develop/blend_gui.c:157 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:3448 ../src/develop/imageop.c:2669 msgid "drawn mask" msgstr "繪製範圍遮罩" -#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2512 -#: ../src/develop/blend_gui.c:3440 ../src/develop/imageop.c:2662 +#: ../src/develop/blend_gui.c:159 ../src/develop/blend_gui.c:2528 +#: ../src/develop/blend_gui.c:3459 ../src/develop/imageop.c:2671 msgid "parametric mask" msgstr "設定色版遮罩" -#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2951 -#: ../src/develop/blend_gui.c:3467 ../src/develop/imageop.c:2664 +#: ../src/develop/blend_gui.c:161 ../src/develop/blend_gui.c:2966 +#: ../src/develop/blend_gui.c:3486 ../src/develop/imageop.c:2673 msgid "raster mask" msgstr "點陣遮罩" -#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3454 +#: ../src/develop/blend_gui.c:163 ../src/develop/blend_gui.c:3473 msgid "drawn & parametric mask" msgstr "結合範圍和色版遮罩" @@ -7818,177 +8110,177 @@ msgid "input after blur" msgstr "先模糊後柔化 / 輸入" -#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:129 -#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:227 -#: ../src/imageio/format/avif.c:804 ../src/libs/live_view.c:362 +#: ../src/develop/blend_gui.c:183 ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:157 ../src/gui/accelerators.c:245 +#: ../src/imageio/format/avif.c:837 ../src/libs/live_view.c:362 msgid "on" msgstr "開啟" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "input" msgstr "輸入" -#: ../src/develop/blend_gui.c:981 ../src/develop/blend_gui.c:2590 -#: ../src/develop/imageop.c:2789 +#: ../src/develop/blend_gui.c:984 ../src/develop/blend_gui.c:2606 +#: ../src/develop/imageop.c:2797 msgid "output" msgstr "輸出" -#: ../src/develop/blend_gui.c:995 +#: ../src/develop/blend_gui.c:998 msgid " (zoom)" msgstr "(縮放)" -#: ../src/develop/blend_gui.c:1003 +#: ../src/develop/blend_gui.c:1006 msgid " (log)" msgstr "(對數)" -#: ../src/develop/blend_gui.c:1988 +#: ../src/develop/blend_gui.c:2004 msgid "reset to default blend colorspace" msgstr "重設為預設色彩空間" -#: ../src/develop/blend_gui.c:2044 +#: ../src/develop/blend_gui.c:2060 msgid "reset and hide output channels" msgstr "隱藏輸出色版" -#: ../src/develop/blend_gui.c:2051 +#: ../src/develop/blend_gui.c:2067 msgid "show output channels" msgstr "顯示輸出色版" -#: ../src/develop/blend_gui.c:2290 ../src/develop/blend_gui.c:2357 -#: ../src/iop/tonecurve.c:1134 +#: ../src/develop/blend_gui.c:2306 ../src/develop/blend_gui.c:2373 +#: ../src/iop/tonecurve.c:1156 msgid "L" msgstr "L*" -#: ../src/develop/blend_gui.c:2290 +#: ../src/develop/blend_gui.c:2306 msgid "sliders for L channel" msgstr "以 Lab 的 L* 明度參數控制混合" -#: ../src/develop/blend_gui.c:2295 ../src/iop/tonecurve.c:1135 +#: ../src/develop/blend_gui.c:2311 ../src/iop/tonecurve.c:1157 msgid "a" msgstr "a*" -#: ../src/develop/blend_gui.c:2295 +#: ../src/develop/blend_gui.c:2311 msgid "sliders for a channel" msgstr "以 Lab 的 a* 紅綠參數控制混合" -#: ../src/develop/blend_gui.c:2299 +#: ../src/develop/blend_gui.c:2315 msgid "green/red" msgstr "綠色 / 紅色" -#: ../src/develop/blend_gui.c:2300 ../src/iop/tonecurve.c:1136 +#: ../src/develop/blend_gui.c:2316 ../src/iop/tonecurve.c:1158 msgid "b" msgstr "b*" -#: ../src/develop/blend_gui.c:2300 +#: ../src/develop/blend_gui.c:2316 msgid "sliders for b channel" msgstr "以 Lab 的 b* 黃藍參數控制混合" -#: ../src/develop/blend_gui.c:2304 +#: ../src/develop/blend_gui.c:2320 msgid "blue/yellow" msgstr "藍色 / 黃色" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "C" msgstr "C" -#: ../src/develop/blend_gui.c:2305 +#: ../src/develop/blend_gui.c:2321 msgid "sliders for chroma channel (of LCh)" msgstr "以 LCh 的 C 彩度參數控制混合" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "h" msgstr "h" -#: ../src/develop/blend_gui.c:2311 +#: ../src/develop/blend_gui.c:2327 msgid "sliders for hue channel (of LCh)" msgstr "以 LCh 的 h 色相參數控制混合" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "g" msgstr "gray" -#: ../src/develop/blend_gui.c:2319 ../src/develop/blend_gui.c:2367 +#: ../src/develop/blend_gui.c:2335 ../src/develop/blend_gui.c:2383 msgid "sliders for gray value" msgstr "以灰階參數控制混合" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 -#: ../src/iop/channelmixerrgb.c:4609 ../src/iop/denoiseprofile.c:3710 -#: ../src/iop/rawdenoise.c:894 ../src/iop/rgbcurve.c:1358 -#: ../src/iop/rgblevels.c:1003 ../src/libs/filters/colors.c:137 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 +#: ../src/iop/channelmixerrgb.c:4677 ../src/iop/denoiseprofile.c:3714 +#: ../src/iop/rawdenoise.c:910 ../src/iop/rgbcurve.c:1358 +#: ../src/iop/rgblevels.c:1043 ../src/libs/filters/colors.c:137 msgid "R" msgstr "R" -#: ../src/develop/blend_gui.c:2325 ../src/develop/blend_gui.c:2373 +#: ../src/develop/blend_gui.c:2341 ../src/develop/blend_gui.c:2389 msgid "sliders for red channel" msgstr "以紅色色版參數控制混合" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 -#: ../src/iop/channelmixerrgb.c:4610 ../src/iop/denoiseprofile.c:3711 -#: ../src/iop/rawdenoise.c:895 ../src/iop/rgbcurve.c:1359 -#: ../src/iop/rgblevels.c:1004 ../src/libs/filters/colors.c:143 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 +#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/denoiseprofile.c:3715 +#: ../src/iop/rawdenoise.c:911 ../src/iop/rgbcurve.c:1359 +#: ../src/iop/rgblevels.c:1044 ../src/libs/filters/colors.c:143 msgid "G" msgstr "G" -#: ../src/develop/blend_gui.c:2331 ../src/develop/blend_gui.c:2379 +#: ../src/develop/blend_gui.c:2347 ../src/develop/blend_gui.c:2395 msgid "sliders for green channel" msgstr "以綠色色版參數控制混合" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 -#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/denoiseprofile.c:3712 -#: ../src/iop/rawdenoise.c:896 ../src/iop/rgbcurve.c:1360 -#: ../src/iop/rgblevels.c:1005 ../src/libs/filters/colors.c:146 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 +#: ../src/iop/channelmixerrgb.c:4679 ../src/iop/denoiseprofile.c:3716 +#: ../src/iop/rawdenoise.c:912 ../src/iop/rgbcurve.c:1360 +#: ../src/iop/rgblevels.c:1045 ../src/libs/filters/colors.c:146 msgid "B" msgstr "B" -#: ../src/develop/blend_gui.c:2337 ../src/develop/blend_gui.c:2385 +#: ../src/develop/blend_gui.c:2353 ../src/develop/blend_gui.c:2401 msgid "sliders for blue channel" msgstr "以藍色色版參數控制混合" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "H" msgstr "H" -#: ../src/develop/blend_gui.c:2343 +#: ../src/develop/blend_gui.c:2359 msgid "sliders for hue channel (of HSL)" msgstr "以 HSL 的 H 色相參數控制混合" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "S" msgstr "S" -#: ../src/develop/blend_gui.c:2350 +#: ../src/develop/blend_gui.c:2366 msgid "sliders for chroma channel (of HSL)" msgstr "以 HSL 的 S 飽和度參數控制混合" -#: ../src/develop/blend_gui.c:2357 +#: ../src/develop/blend_gui.c:2373 msgid "sliders for value channel (of HSL)" msgstr "以 HSL 的 L 亮度參數控制混合" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "Jz" msgstr "Jz" -#: ../src/develop/blend_gui.c:2391 +#: ../src/develop/blend_gui.c:2407 msgid "sliders for value channel (of JzCzhz)" msgstr "以 JzCzhz 的 Jz 明度參數控制混合" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "Cz" msgstr "Cz" -#: ../src/develop/blend_gui.c:2398 +#: ../src/develop/blend_gui.c:2414 msgid "sliders for chroma channel (of JzCzhz)" msgstr "以 JzCzhz 的 Cz 彩度參數控制混合" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "hz" msgstr "hz" -#: ../src/develop/blend_gui.c:2405 +#: ../src/develop/blend_gui.c:2421 msgid "sliders for hue channel (of JzCzhz)" msgstr "以 JzCzhz 的 hz 色相參數控制混合" -#: ../src/develop/blend_gui.c:2415 +#: ../src/develop/blend_gui.c:2431 msgid "" "adjustment based on input received by this module:\n" "* range defined by upper markers: blend fully\n" @@ -8000,7 +8292,7 @@ "下標定義的範圍完全不混合\n" "同側的上下標之間的範圍逐步混合" -#: ../src/develop/blend_gui.c:2419 +#: ../src/develop/blend_gui.c:2435 msgid "" "adjustment based on unblended output of this module:\n" "* range defined by upper markers: blend fully\n" @@ -8012,19 +8304,19 @@ "下標定義的範圍完全不混合\n" "同側的上下標之間的範圍逐步混合" -#: ../src/develop/blend_gui.c:2516 +#: ../src/develop/blend_gui.c:2532 msgid "reset blend mask settings" msgstr "重設色版遮罩設定" -#: ../src/develop/blend_gui.c:2527 ../src/iop/atrous.c:1665 -#: ../src/iop/colorzones.c:2399 ../src/iop/denoiseprofile.c:3707 -#: ../src/iop/rawdenoise.c:891 ../src/iop/rgbcurve.c:1357 -#: ../src/iop/rgblevels.c:1002 ../src/iop/tonecurve.c:1133 +#: ../src/develop/blend_gui.c:2543 ../src/iop/atrous.c:1797 +#: ../src/iop/colorzones.c:2641 ../src/iop/denoiseprofile.c:3711 +#: ../src/iop/rawdenoise.c:907 ../src/iop/rgbcurve.c:1357 +#: ../src/iop/rgblevels.c:1041 ../src/iop/tonecurve.c:1155 msgid "channel" msgstr "色版" -#: ../src/develop/blend_gui.c:2542 ../src/iop/colorzones.c:2413 -#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1142 +#: ../src/develop/blend_gui.c:2558 ../src/iop/colorzones.c:2660 +#: ../src/iop/rgbcurve.c:1367 ../src/iop/tonecurve.c:1164 msgid "" "pick GUI color from image\n" "ctrl+click or right-click to select an area" @@ -8033,12 +8325,12 @@ "點擊啟用會顯示一條垂直線,使用滑鼠拖曳像素在影像上的位置\n" "ctrl + 點擊或右鍵點擊可選擇區域,該區域像素的顏色範圍在介面中變亮顯示" -#: ../src/develop/blend_gui.c:2545 ../src/iop/colorzones.c:2415 +#: ../src/develop/blend_gui.c:2561 ../src/iop/colorzones.c:2662 #: ../src/iop/rgbcurve.c:1369 msgid "show color" msgstr "顯示顏色" -#: ../src/develop/blend_gui.c:2554 +#: ../src/develop/blend_gui.c:2570 msgid "" "set the range based on an area from the image\n" "drag to use the input image\n" @@ -8047,19 +8339,19 @@ "選取影像中的區域來設定滑桿範圍\n" "拖曳以輸入影像的色彩來設定,ctrl + 拖曳使用輸出影像的色彩" -#: ../src/develop/blend_gui.c:2557 +#: ../src/develop/blend_gui.c:2573 msgid "set range" msgstr "設定範圍" -#: ../src/develop/blend_gui.c:2560 +#: ../src/develop/blend_gui.c:2576 msgid "invert all channel's polarities" msgstr "反轉所有色版(輸入和輸出)的不透明度設定" -#: ../src/develop/blend_gui.c:2584 +#: ../src/develop/blend_gui.c:2600 msgid "toggle polarity. best seen by enabling 'display mask'" msgstr "反轉不透明度設定,建議透過顯示遮罩範圍來確認" -#: ../src/develop/blend_gui.c:2613 +#: ../src/develop/blend_gui.c:2629 msgid "" "double-click to reset.\n" "press 'a' to toggle available slider modes.\n" @@ -8077,174 +8369,211 @@ "按「c」切換影像預覽顯示為色版\n" "按「m」切換顯示遮罩不透明度" -#: ../src/develop/blend_gui.c:2640 ../src/develop/blend_gui.c:3531 -#: ../src/iop/basicadj.c:600 ../src/iop/colorbalancergb.c:2090 -#: ../src/iop/exposure.c:1120 ../src/iop/exposure.c:1135 -#: ../src/iop/filmic.c:1503 ../src/iop/filmic.c:1516 ../src/iop/filmic.c:1558 -#: ../src/iop/filmicrgb.c:4440 ../src/iop/filmicrgb.c:4451 -#: ../src/iop/filmicrgb.c:4485 ../src/iop/filmicrgb.c:4495 -#: ../src/iop/graduatednd.c:1113 ../src/iop/negadoctor.c:1011 -#: ../src/iop/profile_gamma.c:643 ../src/iop/profile_gamma.c:649 -#: ../src/iop/relight.c:262 ../src/iop/soften.c:378 ../src/iop/toneequal.c:3326 -#: ../src/iop/toneequal.c:3329 ../src/iop/toneequal.c:3332 -#: ../src/iop/toneequal.c:3335 ../src/iop/toneequal.c:3338 -#: ../src/iop/toneequal.c:3341 ../src/iop/toneequal.c:3344 -#: ../src/iop/toneequal.c:3347 ../src/iop/toneequal.c:3350 -#: ../src/iop/toneequal.c:3472 ../src/iop/toneequal.c:3481 -#: ../src/iop/toneequal.c:3494 ../src/views/darkroom.c:2453 +#: ../src/develop/blend_gui.c:2656 ../src/develop/blend_gui.c:3577 +#: ../src/iop/basicadj.c:630 ../src/iop/colorbalancergb.c:2161 +#: ../src/iop/exposure.c:1138 ../src/iop/exposure.c:1153 +#: ../src/iop/filmic.c:1528 ../src/iop/filmic.c:1541 ../src/iop/filmic.c:1583 +#: ../src/iop/filmicrgb.c:4504 ../src/iop/filmicrgb.c:4515 +#: ../src/iop/filmicrgb.c:4549 ../src/iop/filmicrgb.c:4559 +#: ../src/iop/graduatednd.c:1082 ../src/iop/negadoctor.c:1030 +#: ../src/iop/profile_gamma.c:657 ../src/iop/profile_gamma.c:663 +#: ../src/iop/relight.c:258 ../src/iop/soften.c:373 ../src/iop/toneequal.c:3379 +#: ../src/iop/toneequal.c:3382 ../src/iop/toneequal.c:3385 +#: ../src/iop/toneequal.c:3388 ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3394 ../src/iop/toneequal.c:3397 +#: ../src/iop/toneequal.c:3400 ../src/iop/toneequal.c:3403 +#: ../src/iop/toneequal.c:3525 ../src/iop/toneequal.c:3534 +#: ../src/iop/toneequal.c:3547 ../src/views/darkroom.c:2292 msgid " EV" msgstr " EV" -#: ../src/develop/blend_gui.c:2642 ../src/develop/blend_gui.c:2740 -#: ../src/develop/blend_gui.c:2951 ../src/develop/blend_gui.c:3014 -#: ../src/develop/blend_gui.c:3499 ../src/develop/blend_gui.c:3529 -#: ../src/develop/blend_gui.c:3542 ../src/develop/blend_gui.c:3559 -#: ../src/develop/blend_gui.c:3583 ../src/develop/blend_gui.c:3593 -#: ../src/develop/blend_gui.c:3602 ../src/develop/blend_gui.c:3613 +#: ../src/develop/blend_gui.c:2658 ../src/develop/blend_gui.c:2756 +#: ../src/develop/blend_gui.c:2966 ../src/develop/blend_gui.c:3029 +#: ../src/develop/blend_gui.c:3545 ../src/develop/blend_gui.c:3575 +#: ../src/develop/blend_gui.c:3588 ../src/develop/blend_gui.c:3605 +#: ../src/develop/blend_gui.c:3629 ../src/develop/blend_gui.c:3641 +#: ../src/develop/blend_gui.c:3652 ../src/develop/blend_gui.c:3663 msgid "blend" msgstr "混合" -#: ../src/develop/blend_gui.c:2642 +#: ../src/develop/blend_gui.c:2658 msgid "boost factor" msgstr "提升係數" -#: ../src/develop/blend_gui.c:2645 +#: ../src/develop/blend_gui.c:2661 msgid "adjust the boost factor of the channel mask" msgstr "" "提高色版遮罩的數值範圍\n" "可針對場景參考色彩空間中亮度超過 100% 的範圍調整" -#: ../src/develop/blend_gui.c:2682 +#: ../src/develop/blend_gui.c:2698 #, c-format msgid "%d shape used" msgid_plural "%d shapes used" msgstr[0] "已使用 %d 個形狀" -#: ../src/develop/blend_gui.c:2687 ../src/develop/blend_gui.c:2743 -#: ../src/develop/blend_gui.c:2831 ../src/develop/blend_gui.c:2952 +#: ../src/develop/blend_gui.c:2703 ../src/develop/blend_gui.c:2759 +#: ../src/develop/blend_gui.c:2847 ../src/develop/blend_gui.c:2967 msgid "no mask used" msgstr "沒有使用任何遮罩" -#: ../src/develop/blend_gui.c:2751 +#: ../src/develop/blend_gui.c:2767 msgid "toggle polarity of drawn mask" msgstr "反轉範圍遮罩" -#: ../src/develop/blend_gui.c:2760 +#: ../src/develop/blend_gui.c:2776 msgid "show and edit mask elements" msgstr "顯示和編輯遮罩" -#: ../src/develop/blend_gui.c:2761 +#: ../src/develop/blend_gui.c:2777 msgid "show and edit in restricted mode" msgstr "在受限模式下編輯,遮罩的位置和大小被保護避免變更" -#: ../src/develop/blend_gui.c:2768 ../src/libs/masks.c:998 -#: ../src/libs/masks.c:1816 ../src/libs/masks.c:1820 +#: ../src/develop/blend_gui.c:2784 ../src/libs/masks.c:1014 +#: ../src/libs/masks.c:1812 ../src/libs/masks.c:1816 msgid "add gradient" msgstr "增加漸層遮罩" -#: ../src/develop/blend_gui.c:2769 +#: ../src/develop/blend_gui.c:2785 msgid "add multiple gradients" msgstr "增加多個漸層遮罩" -#: ../src/develop/blend_gui.c:2776 ../src/iop/retouch.c:2238 -#: ../src/libs/masks.c:978 ../src/libs/masks.c:1852 ../src/libs/masks.c:1856 +#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2466 +#: ../src/libs/masks.c:994 ../src/libs/masks.c:1848 ../src/libs/masks.c:1852 msgid "add brush" msgstr "增加筆刷遮罩" -#: ../src/develop/blend_gui.c:2777 ../src/iop/retouch.c:2238 +#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2466 msgid "add multiple brush strokes" msgstr "增加多個筆刷遮罩" -#: ../src/develop/blend_gui.c:2784 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 ../src/libs/masks.c:993 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1829 +#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 ../src/libs/masks.c:1009 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1825 msgid "add path" msgstr "增加路徑遮罩" -#: ../src/develop/blend_gui.c:2785 ../src/iop/retouch.c:2242 -#: ../src/iop/spots.c:884 +#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2471 +#: ../src/iop/spots.c:886 msgid "add multiple paths" msgstr "增加多個路徑遮罩" -#: ../src/develop/blend_gui.c:2792 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 ../src/libs/masks.c:988 ../src/libs/masks.c:1834 -#: ../src/libs/masks.c:1838 +#: ../src/develop/blend_gui.c:2808 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 ../src/libs/masks.c:1004 ../src/libs/masks.c:1830 +#: ../src/libs/masks.c:1834 msgid "add ellipse" msgstr "增加橢圓遮罩" -#: ../src/develop/blend_gui.c:2793 ../src/iop/retouch.c:2246 -#: ../src/iop/spots.c:889 +#: ../src/develop/blend_gui.c:2809 ../src/iop/retouch.c:2476 +#: ../src/iop/spots.c:891 msgid "add multiple ellipses" msgstr "增加多個橢圓遮罩" -#: ../src/develop/blend_gui.c:2800 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 ../src/libs/masks.c:983 ../src/libs/masks.c:1843 -#: ../src/libs/masks.c:1847 +#: ../src/develop/blend_gui.c:2816 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 ../src/libs/masks.c:999 ../src/libs/masks.c:1839 +#: ../src/libs/masks.c:1843 msgid "add circle" msgstr "增加圓形遮罩" -#: ../src/develop/blend_gui.c:2801 ../src/iop/retouch.c:2250 -#: ../src/iop/spots.c:894 +#: ../src/develop/blend_gui.c:2817 ../src/iop/retouch.c:2481 +#: ../src/iop/spots.c:896 msgid "add multiple circles" msgstr "增加多個圓形遮罩" -#: ../src/develop/blend_gui.c:2961 +#: ../src/develop/blend_gui.c:2976 msgid "toggle polarity of raster mask" msgstr "反轉光柵遮罩" -#: ../src/develop/blend_gui.c:3101 +#: ../src/develop/blend_gui.c:3119 msgid "normal & difference" msgstr "正常和差異模式" -#: ../src/develop/blend_gui.c:3106 +#: ../src/develop/blend_gui.c:3124 msgid "lighten" msgstr "變亮(lighten)" -#: ../src/develop/blend_gui.c:3113 +#: ../src/develop/blend_gui.c:3131 msgid "darken" msgstr "變暗(darken)" -#: ../src/develop/blend_gui.c:3120 +#: ../src/develop/blend_gui.c:3138 msgid "contrast enhancing" msgstr "對比增強模式" -#: ../src/develop/blend_gui.c:3127 ../src/develop/blend_gui.c:3150 +#: ../src/develop/blend_gui.c:3145 ../src/develop/blend_gui.c:3168 msgid "color channel" msgstr "色版模式" -#: ../src/develop/blend_gui.c:3138 ../src/develop/blend_gui.c:3153 +#: ../src/develop/blend_gui.c:3156 ../src/develop/blend_gui.c:3171 msgid "chromaticity & lightness" msgstr "彩度和明度模式" -#: ../src/develop/blend_gui.c:3145 +#: ../src/develop/blend_gui.c:3163 msgid "normal & arithmetic" msgstr "正常和計算模式" #. add deprecated blend mode -#: ../src/develop/blend_gui.c:3166 +#: ../src/develop/blend_gui.c:3184 msgid "deprecated" msgstr "已被汰除" -#: ../src/develop/blend_gui.c:3478 +#. should never happen: unknown blend mode +#: ../src/develop/blend_gui.c:3188 +#, c-format +msgid "unknown blend mode '%d' in module '%s'" +msgstr "未知的混合模式「%d」於模組「%s」中" + +#: ../src/develop/blend_gui.c:3497 msgid "blending options" msgstr "混合選項" -#: ../src/develop/blend_gui.c:3500 ../src/libs/history.c:949 -msgid "blend mode" -msgstr "混合模式" +#: ../src/develop/blend_gui.c:3516 +msgid "blend mask" +msgstr "混合遮罩" + +#: ../src/develop/blend_gui.c:3520 +msgid "display mask and/or color channel" +msgstr "" +"顯示遮罩範圍或色版\n" +"單擊檢視遮罩並將影像顯示為灰階,黃色代表遮罩不透明度" + +#: ../src/develop/blend_gui.c:3525 +msgid "" +"display mask and/or color channel.\n" +"ctrl+click to display mask,\n" +"shift+click to display channel.\n" +"hover over parametric mask slider to select channel for display" +msgstr "" +"顯示遮罩範圍或色版\n" +"ctrl + 點擊 檢視遮罩並將影像顯示為灰階,黃色代表遮罩不透明度\n" +"shift + 點擊 顯示色版,將滑鼠移至參數滑桿上選擇要檢視的色版" + +#: ../src/develop/blend_gui.c:3532 +msgid "temporarily switch off blend mask" +msgstr "" +"暫時關閉遮罩以在不使用遮罩的情況下檢視模組效果\n" +"混合模式和整體不透明度仍然有效" + +#: ../src/develop/blend_gui.c:3537 +msgid "" +"temporarily switch off blend mask.\n" +"only for module in focus" +msgstr "" +"暫時關閉遮罩以在不使用遮罩的情況下檢視模組效果\n" +"混合模式和整體不透明度仍然有效,僅限於使用中的模組" -#: ../src/develop/blend_gui.c:3503 +#: ../src/develop/blend_gui.c:3549 msgid "choose blending mode" msgstr "" "選擇要使用的混合模式,不同模組和混合色彩空間會有不同的選項\n" "詳細說明請見操作手冊「Darkroom → masking & blending → blend-modes」章節\n" "混合模式中文翻譯後方括弧內保留英文,以便使用者對照查詢" -#: ../src/develop/blend_gui.c:3513 +#: ../src/develop/blend_gui.c:3559 msgid "toggle blend order" msgstr "切換混合順序" -#: ../src/develop/blend_gui.c:3519 +#: ../src/develop/blend_gui.c:3565 msgid "" "toggle the blending order between the input and the output of the module,\n" "by default the output will be blended on top of the input,\n" @@ -8254,11 +8583,11 @@ "預設經過模組效果調整的輸出影像在混合的上層\n" "點選圖示可反轉順序,將輸入的影像調整至上層來混合" -#: ../src/develop/blend_gui.c:3530 ../src/libs/history.c:953 -msgid "blend fulcrum" -msgstr "混合中灰點" +#: ../src/develop/blend_gui.c:3576 +msgid "fulcrum" +msgstr "中間點" -#: ../src/develop/blend_gui.c:3534 +#: ../src/develop/blend_gui.c:3580 msgid "adjust the fulcrum used by some blending operations" msgstr "" "調整某些混合模式操作需要的中灰點\n" @@ -8266,22 +8595,22 @@ "但場景參照流程不受標準動態範圍限制,所以必須由使用者定義中灰點" #. Add opacity/scale sliders to table -#: ../src/develop/blend_gui.c:3542 ../src/iop/watermark.c:1314 -#: ../src/libs/masks.c:104 +#: ../src/develop/blend_gui.c:3588 ../src/iop/watermark.c:1362 +#: ../src/libs/masks.c:105 msgid "opacity" msgstr "不透明度" -#: ../src/develop/blend_gui.c:3546 +#: ../src/develop/blend_gui.c:3591 msgid "set the opacity of the blending" msgstr "" "設定混合的不透明度\n" "若使用一般混合模式,則可藉由此滑桿調整模組的效果強度" -#: ../src/develop/blend_gui.c:3550 ../src/libs/history.c:956 +#: ../src/develop/blend_gui.c:3596 ../src/libs/history.c:956 msgid "combine masks" msgstr "遮罩合併" -#: ../src/develop/blend_gui.c:3552 +#: ../src/develop/blend_gui.c:3598 msgid "" "how to combine individual drawn mask and different channels of parametric " "mask" @@ -8294,11 +8623,11 @@ "並且和反轉:等同並且模式,但在最後反轉遮罩\n" "包含和反轉:等同包含模式,但在最後反轉遮罩" -#: ../src/develop/blend_gui.c:3559 +#: ../src/develop/blend_gui.c:3605 msgid "details threshold" msgstr "細節門檻" -#: ../src/develop/blend_gui.c:3563 +#: ../src/develop/blend_gui.c:3609 msgid "" "adjust the threshold for the details mask (using raw data),\n" "positive values select areas with strong details,\n" @@ -8313,11 +8642,11 @@ "但細節數值取自「去馬賽克」模組,而非使用小波分解\n" "所以任何影像編輯模組都不會影響細節判斷,此功能也不適用於非 RAW 檔影像" -#: ../src/develop/blend_gui.c:3571 ../src/libs/history.c:959 +#: ../src/develop/blend_gui.c:3617 ../src/libs/history.c:959 msgid "feathering guide" msgstr "調整遮罩邊緣" -#: ../src/develop/blend_gui.c:3574 +#: ../src/develop/blend_gui.c:3620 msgid "" "choose to guide mask by input or output image and\n" "choose to apply feathering before or after mask blur" @@ -8332,11 +8661,11 @@ "先柔化後模糊,偵測邊緣之後再套用模糊讓遮罩邊緣平整\n" "先模糊後柔化,先模糊原始遮罩再偵測邊緣以保留邊緣細節" -#: ../src/develop/blend_gui.c:3583 ../src/libs/history.c:958 +#: ../src/develop/blend_gui.c:3629 ../src/libs/history.c:958 msgid "feathering radius" msgstr "柔化半徑" -#: ../src/develop/blend_gui.c:3586 +#: ../src/develop/blend_gui.c:3632 msgid "spatial radius of feathering" msgstr "" "調整遮罩偵測邊緣的範圍\n" @@ -8345,23 +8674,23 @@ "原始遮罩與影像中的物體形狀大致符合時才有最好的效果\n" "設定為 0 時停用邊緣偵測功能,但下方三項調整仍然有效" -#: ../src/develop/blend_gui.c:3593 +#: ../src/develop/blend_gui.c:3641 msgid "blurring radius" msgstr "模糊半徑" -#: ../src/develop/blend_gui.c:3596 +#: ../src/develop/blend_gui.c:3644 msgid "radius for gaussian blur of blend mask" msgstr "" "遮罩的高斯模糊半徑\n" "越大的半徑可創造更柔和的邊緣過渡,避免邊緣不自然感\n" "在邊緣偵測後使用模糊,則可修飾過於生硬的遮罩邊緣" -#: ../src/develop/blend_gui.c:3602 ../src/iop/retouch.c:2453 +#: ../src/develop/blend_gui.c:3652 ../src/iop/retouch.c:2738 #: ../src/libs/history.c:954 msgid "mask opacity" msgstr "遮罩不透明度" -#: ../src/develop/blend_gui.c:3606 +#: ../src/develop/blend_gui.c:3656 msgid "" "shifts and tilts the tone curve of the blend mask to adjust its brightness\n" "without affecting fully transparent/fully opaque regions" @@ -8374,11 +8703,11 @@ "如此可把更多的範圍轉變為完全透明或完全不透明,同時讓過渡更強烈\n" "就如同以色階或曲線工具左右移動遮罩色版的兩側黑白點" -#: ../src/develop/blend_gui.c:3613 ../src/libs/history.c:962 +#: ../src/develop/blend_gui.c:3663 ../src/libs/history.c:962 msgid "mask contrast" msgstr "遮罩對比度" -#: ../src/develop/blend_gui.c:3617 +#: ../src/develop/blend_gui.c:3667 msgid "" "gives the tone curve of the blend mask an s-like shape to adjust its contrast" msgstr "" @@ -8387,48 +8716,23 @@ "實際的內部計算方式是調整遮罩的反差\n" "就如同使用曲線工具以 S 形調整遮罩色版的對比度" -#: ../src/develop/blend_gui.c:3621 +#: ../src/develop/blend_gui.c:3671 msgid "mask refinement" msgstr "調整遮罩範圍" -#: ../src/develop/blend_gui.c:3625 -msgid "display mask and/or color channel" -msgstr "" -"顯示遮罩範圍或色版\n" -"單擊檢視遮罩並將影像顯示為灰階,黃色代表遮罩不透明度" - -#: ../src/develop/blend_gui.c:3630 +#: ../src/develop/develop.c:732 msgid "" -"display mask and/or color channel.\n" -"ctrl+click to display mask,\n" -"shift+click to display channel.\n" -"hover over parametric mask slider to select channel for display" -msgstr "" -"顯示遮罩範圍或色版\n" -"ctrl + 點擊 檢視遮罩並將影像顯示為灰階,黃色代表遮罩不透明度\n" -"shift + 點擊 顯示色版,將滑鼠移至參數滑桿上選擇要檢視的色版" +"autosaving history has been disabled for this session because of a slow " +"drive used" +msgstr "因為硬碟速度較慢,無法使用自動儲存編輯記錄功能" -#: ../src/develop/blend_gui.c:3637 -msgid "temporarily switch off blend mask" -msgstr "" -"暫時關閉遮罩以在不使用遮罩的情況下檢視模組效果\n" -"混合模式和整體不透明度仍然有效" - -#: ../src/develop/blend_gui.c:3642 -msgid "" -"temporarily switch off blend mask.\n" -"only for module in focus" -msgstr "" -"暫時關閉遮罩以在不使用遮罩的情況下檢視模組效果\n" -"混合模式和整體不透明度仍然有效,僅限於使用中的模組" - -#: ../src/develop/develop.c:2303 +#: ../src/develop/develop.c:2202 #, c-format msgid "%s: module `%s' version mismatch: %d != %d" msgstr "%s:模組「%s」版本不符:%d≠%d" -#: ../src/develop/develop.c:2834 -msgid "module duplicate, can't move new instance after the base one\n" +#: ../src/develop/develop.c:3016 +msgid "duplicate module, can't move new instance after the base one\n" msgstr "無法將新的複製模組實例置於原始模組之後\n" #: ../src/develop/imageop.c:1031 @@ -8439,70 +8743,69 @@ msgid "duplicate instance" msgstr "複製模組實例" -#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3739 -#: ../src/libs/masks.c:1152 +#: ../src/develop/imageop.c:1043 ../src/develop/imageop.c:3755 +#: ../src/libs/masks.c:1146 msgid "move up" msgstr "向上移動" -#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3740 -#: ../src/libs/masks.c:1157 +#: ../src/develop/imageop.c:1049 ../src/develop/imageop.c:3756 +#: ../src/libs/masks.c:1151 msgid "move down" msgstr "向下移動" #. delete button label and tooltip will be updated based on trash pref -#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3742 -#: ../src/gui/accelerators.c:155 ../src/gui/presets.c:562 -#: ../src/libs/image.c:285 ../src/libs/image.c:480 ../src/libs/tagging.c:1484 -#: ../src/libs/tagging.c:1572 +#: ../src/develop/imageop.c:1055 ../src/develop/imageop.c:3758 +#: ../src/gui/accelerators.c:173 ../src/libs/image.c:303 +#: ../src/libs/image.c:513 msgid "delete" msgstr "刪除" -#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3743 -#: ../src/libs/modulegroups.c:3464 ../src/libs/modulegroups.c:3815 +#: ../src/develop/imageop.c:1062 ../src/develop/imageop.c:3759 +#: ../src/libs/modulegroups.c:3817 msgid "rename" msgstr "重新命名" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched on" msgstr "「%s」模組正在使用中" -#: ../src/develop/imageop.c:1130 ../src/develop/imageop.c:2950 +#: ../src/develop/imageop.c:1136 ../src/develop/imageop.c:2961 #, c-format msgid "'%s' is switched off" msgstr "「%s」模組效果已關閉" -#: ../src/develop/imageop.c:2654 +#: ../src/develop/imageop.c:2663 msgid "unknown mask" msgstr "未知遮罩" -#: ../src/develop/imageop.c:2658 +#: ../src/develop/imageop.c:2667 msgid "drawn + parametric mask" msgstr "繪製 + 色版遮罩" -#: ../src/develop/imageop.c:2667 +#: ../src/develop/imageop.c:2676 #, c-format msgid "this module has a `%s'" msgstr "此模組包含「%s」" -#: ../src/develop/imageop.c:2672 +#: ../src/develop/imageop.c:2681 #, c-format msgid "taken from module %s" msgstr "取自「%s」模組" -#: ../src/develop/imageop.c:2677 +#: ../src/develop/imageop.c:2686 msgid "click to display (module must be activated first)" msgstr "點擊顯示(須先啟用模組)" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "purpose" msgstr "用途" -#: ../src/develop/imageop.c:2789 +#: ../src/develop/imageop.c:2797 msgid "process" msgstr "運算" -#: ../src/develop/imageop.c:2906 +#: ../src/develop/imageop.c:2917 msgid "" "multiple instance actions\n" "right-click creates new instance" @@ -8510,7 +8813,7 @@ "多個模組實例\n" "左鍵選擇操作方式,右鍵快速建立新的實例" -#: ../src/develop/imageop.c:2921 +#: ../src/develop/imageop.c:2932 msgid "" "reset parameters\n" "ctrl+click to reapply any automatic presets" @@ -8518,7 +8821,7 @@ "重設參數\n" "ctrl + 點擊 重新套用在任何自動預設集上" -#: ../src/develop/imageop.c:2933 +#: ../src/develop/imageop.c:2944 msgid "" "presets\n" "right-click to apply on new instance" @@ -8526,17 +8829,17 @@ "預設集\n" "點擊以選擇預設集套用,或是儲存目前設定為預設集" -#: ../src/develop/imageop.c:3183 ../src/develop/imageop.c:3205 +#: ../src/develop/imageop.c:3194 ../src/develop/imageop.c:3216 msgid "ERROR" msgstr "⚠️ 錯誤 ⚠️" -#: ../src/develop/imageop.c:3620 +#: ../src/develop/imageop.c:3622 msgid "unsupported input" msgstr "" "⚠️ 錯誤 ⚠️\n" "不支援的輸入資料" -#: ../src/develop/imageop.c:3621 +#: ../src/develop/imageop.c:3623 msgid "" "you have placed this module at\n" "a position in the pipeline where\n" @@ -8546,49 +8849,49 @@ "⚠️ 警告 ⚠️\n" "此模組的運算順序(排列位置)不符合資料格式的要求" -#: ../src/develop/imageop.c:3738 ../src/develop/imageop.c:3748 -#: ../src/gui/accelerators.c:151 ../src/libs/lib.c:1414 +#: ../src/develop/imageop.c:3754 ../src/develop/imageop.c:3764 +#: ../src/gui/accelerators.c:169 ../src/libs/lib.c:1415 msgid "show" msgstr "顯示" -#: ../src/develop/imageop.c:3741 ../src/libs/modulegroups.c:3310 -#: ../src/libs/modulegroups.c:3436 ../src/libs/modulegroups.c:3817 -#: ../src/libs/tagging.c:3248 +#: ../src/develop/imageop.c:3757 ../src/libs/modulegroups.c:3315 +#: ../src/libs/modulegroups.c:3438 ../src/libs/modulegroups.c:3819 +#: ../src/libs/tagging.c:3279 msgid "new" msgstr "新增" -#: ../src/develop/imageop.c:3744 ../src/libs/duplicate.c:405 -#: ../src/libs/image.c:495 ../src/libs/modulegroups.c:3813 +#: ../src/develop/imageop.c:3760 ../src/libs/duplicate.c:411 +#: ../src/libs/image.c:534 ../src/libs/modulegroups.c:3815 msgid "duplicate" msgstr "複製" -#: ../src/develop/imageop.c:3749 +#: ../src/develop/imageop.c:3765 msgid "enable" msgstr "啟用" -#: ../src/develop/imageop.c:3750 ../src/gui/accelerators.c:167 +#: ../src/develop/imageop.c:3766 ../src/gui/accelerators.c:185 msgid "focus" msgstr "使用中" -#: ../src/develop/imageop.c:3751 ../src/gui/accelerators.c:2617 +#: ../src/develop/imageop.c:3767 ../src/gui/accelerators.c:2874 msgid "instance" msgstr "多模組實例" -#: ../src/develop/imageop.c:3752 ../src/gui/accelerators.c:112 -#: ../src/gui/accelerators.c:122 ../src/gui/gtk.c:3009 ../src/gui/gtk.c:3056 -#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:603 -#: ../src/gui/styles_dialog.c:625 ../src/iop/atrous.c:1512 -#: ../src/libs/lib.c:1415 ../src/libs/modulegroups.c:3882 +#: ../src/develop/imageop.c:3768 ../src/gui/accelerators.c:130 +#: ../src/gui/accelerators.c:140 ../src/gui/gtk.c:3055 ../src/gui/gtk.c:3102 +#: ../src/gui/hist_dialog.c:270 ../src/gui/styles_dialog.c:615 +#: ../src/gui/styles_dialog.c:637 ../src/iop/atrous.c:1626 +#: ../src/libs/lib.c:1416 ../src/libs/modulegroups.c:3884 msgid "reset" msgstr "重設" #. Adding the outer container -#: ../src/develop/imageop.c:3753 ../src/gui/preferences.c:798 -#: ../src/libs/lib.c:1416 +#: ../src/develop/imageop.c:3769 ../src/gui/preferences.c:796 +#: ../src/libs/lib.c:1417 msgid "presets" msgstr "預設集" -#: ../src/develop/imageop.c:3773 +#: ../src/develop/imageop.c:3789 msgid "processing module" msgstr "編輯模組" @@ -8601,53 +8904,53 @@ "「%s」\n" "ctrl + 點擊 以「%s」" -#: ../src/develop/lightroom.c:1083 +#: ../src/develop/lightroom.c:1137 msgid "cannot find Lightroom XMP!" msgstr "找不到 Lightroom 的 XMP" -#: ../src/develop/lightroom.c:1115 ../src/develop/lightroom.c:1137 -#: ../src/develop/lightroom.c:1157 +#: ../src/develop/lightroom.c:1169 ../src/develop/lightroom.c:1191 +#: ../src/develop/lightroom.c:1211 #, c-format msgid "`%s' is not a Lightroom XMP!" msgstr "「%s」 不是有效的 Lightroom XMP" -#: ../src/develop/lightroom.c:1556 +#: ../src/develop/lightroom.c:1613 #, c-format msgid "%s has been imported" msgid_plural "%s have been imported" msgstr[0] "「%s」已匯入" -#: ../src/develop/masks/brush.c:1356 ../src/develop/masks/brush.c:1410 +#: ../src/develop/masks/brush.c:1346 ../src/develop/masks/brush.c:1400 #, c-format msgid "hardness: %3.2f%%" msgstr "筆刷硬度:%3.2f%%" -#: ../src/develop/masks/brush.c:1372 ../src/develop/masks/brush.c:1470 +#: ../src/develop/masks/brush.c:1362 ../src/develop/masks/brush.c:1460 #: ../src/develop/masks/circle.c:148 ../src/develop/masks/circle.c:193 #: ../src/develop/masks/ellipse.c:484 ../src/develop/masks/ellipse.c:546 -#: ../src/develop/masks/path.c:1273 +#: ../src/develop/masks/path.c:1255 #, c-format msgid "size: %3.2f%%" msgstr "筆刷大小:%3.2f%%" -#: ../src/develop/masks/brush.c:3247 +#: ../src/develop/masks/brush.c:3191 msgid "[BRUSH] change size" msgstr "[筆刷] 變更尺寸" -#: ../src/develop/masks/brush.c:3249 +#: ../src/develop/masks/brush.c:3193 msgid "[BRUSH] change hardness" msgstr "[筆刷] 變更硬度" -#: ../src/develop/masks/brush.c:3251 +#: ../src/develop/masks/brush.c:3195 msgid "[BRUSH] change opacity" msgstr "[筆刷] 變更不透明度" -#: ../src/develop/masks/brush.c:3263 +#: ../src/develop/masks/brush.c:3207 #, c-format msgid "brush #%d" msgstr "筆刷 #%d" -#: ../src/develop/masks/brush.c:3276 +#: ../src/develop/masks/brush.c:3220 #, c-format msgid "" "<b>size</b>: scroll, <b>hardness</b>: shift+scroll\n" @@ -8656,35 +8959,35 @@ "拖曳以移動,滑鼠滾輪調整尺寸,a + 滾輪回復縮放預覽比例\n" "shift + 滾輪調整硬度,ctrl + 滾輪調整不透明度(%d%%)" -#: ../src/develop/masks/brush.c:3279 +#: ../src/develop/masks/brush.c:3223 msgid "<b>size</b>: scroll" msgstr "滑鼠滾輪調整尺寸" #: ../src/develop/masks/circle.c:137 ../src/develop/masks/circle.c:181 #: ../src/develop/masks/ellipse.c:470 ../src/develop/masks/ellipse.c:531 -#: ../src/develop/masks/path.c:1205 +#: ../src/develop/masks/path.c:1187 #, c-format msgid "feather size: %3.2f%%" msgstr "羽化範圍: %3.2f%%" -#: ../src/develop/masks/circle.c:1510 +#: ../src/develop/masks/circle.c:1462 msgid "[CIRCLE] change size" msgstr "[圓形] 變更尺寸" -#: ../src/develop/masks/circle.c:1512 +#: ../src/develop/masks/circle.c:1464 msgid "[CIRCLE] change feather size" msgstr "[圓形] 變更羽化範圍" -#: ../src/develop/masks/circle.c:1514 +#: ../src/develop/masks/circle.c:1466 msgid "[CIRCLE] change opacity" msgstr "[圓形] 變更不透明度" -#: ../src/develop/masks/circle.c:1527 +#: ../src/develop/masks/circle.c:1479 #, c-format msgid "circle #%d" msgstr "圓形 #%d" -#: ../src/develop/masks/circle.c:1538 ../src/develop/masks/path.c:3490 +#: ../src/develop/masks/circle.c:1490 ../src/develop/masks/path.c:3406 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8698,32 +9001,32 @@ msgid "rotation: %3.f°" msgstr "旋轉角度: %3.f°" -#: ../src/develop/masks/ellipse.c:2068 +#: ../src/develop/masks/ellipse.c:2015 msgid "[ELLIPSE] change size" msgstr "[橢圓] 變更尺寸" -#: ../src/develop/masks/ellipse.c:2071 +#: ../src/develop/masks/ellipse.c:2018 msgid "[ELLIPSE] change feather size" msgstr "[橢圓] 變更羽化範圍" -#: ../src/develop/masks/ellipse.c:2074 ../src/develop/masks/ellipse.c:2083 +#: ../src/develop/masks/ellipse.c:2021 ../src/develop/masks/ellipse.c:2030 msgid "[ELLIPSE] rotate shape" msgstr "[橢圓] 旋轉形狀" -#: ../src/develop/masks/ellipse.c:2077 +#: ../src/develop/masks/ellipse.c:2024 msgid "[ELLIPSE] change opacity" msgstr "[橢圓] 變更不透明度" -#: ../src/develop/masks/ellipse.c:2080 +#: ../src/develop/masks/ellipse.c:2027 msgid "[ELLIPSE] switch feathering mode" msgstr "[橢圓] 變更羽化模式" -#: ../src/develop/masks/ellipse.c:2090 +#: ../src/develop/masks/ellipse.c:2037 #, c-format msgid "ellipse #%d" msgstr "橢圓 #%d" -#: ../src/develop/masks/ellipse.c:2128 +#: ../src/develop/masks/ellipse.c:2075 #, c-format msgid "" "<b>size</b>: scroll, <b>feather size</b>: shift+scroll\n" @@ -8733,11 +9036,11 @@ "shift + 滾輪調整羽化範圍,ctrl + 滾輪調整不透明度(%d%%),ctrl + shift + 滾" "輪旋轉橢圓" -#: ../src/develop/masks/ellipse.c:2132 +#: ../src/develop/masks/ellipse.c:2079 msgid "<b>rotate</b>: ctrl+drag" msgstr "ctrl + 拖曳以旋轉" -#: ../src/develop/masks/ellipse.c:2135 +#: ../src/develop/masks/ellipse.c:2082 #, c-format msgid "" "<b>feather mode</b>: shift+click, <b>rotate</b>: ctrl+drag\n" @@ -8757,32 +9060,32 @@ msgid "curvature: %3.2f%%" msgstr "曲率: %3.2f%%" -#: ../src/develop/masks/gradient.c:1555 +#: ../src/develop/masks/gradient.c:1514 msgid "[GRADIENT on pivot] rotate shape" msgstr "[漸層樞紐] 旋轉" -#: ../src/develop/masks/gradient.c:1557 +#: ../src/develop/masks/gradient.c:1516 msgid "[GRADIENT creation] set rotation" msgstr "[漸層建立] 設定旋轉" -#: ../src/develop/masks/gradient.c:1559 +#: ../src/develop/masks/gradient.c:1518 msgid "[GRADIENT] change curvature" msgstr "[漸層] 改變曲率" -#: ../src/develop/masks/gradient.c:1561 +#: ../src/develop/masks/gradient.c:1520 msgid "[GRADIENT] change compression" msgstr "[漸變] 改變羽化範圍" -#: ../src/develop/masks/gradient.c:1563 +#: ../src/develop/masks/gradient.c:1522 msgid "[GRADIENT] change opacity" msgstr "[漸變] 改變不透明度" -#: ../src/develop/masks/gradient.c:1576 +#: ../src/develop/masks/gradient.c:1535 #, c-format msgid "gradient #%d" msgstr "漸層 #%d" -#: ../src/develop/masks/gradient.c:1587 +#: ../src/develop/masks/gradient.c:1546 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8791,7 +9094,7 @@ "滑鼠滾輪調整曲率,拖曳以旋轉角度\n" "shift + 滾輪調整羽化範圍,ctrl + 滾輪調整不透明度(%d%%)" -#: ../src/develop/masks/gradient.c:1592 +#: ../src/develop/masks/gradient.c:1551 #, c-format msgid "" "<b>curvature</b>: scroll, <b>compression</b>: shift+scroll\n" @@ -8800,7 +9103,7 @@ "滑鼠滾輪調整曲率\n" "shift + 滾輪調整羽化範圍,ctrl + 滾輪調整不透明度(%d%%)" -#: ../src/develop/masks/gradient.c:1595 +#: ../src/develop/masks/gradient.c:1554 msgid "<b>rotate</b>: drag" msgstr "拖曳以旋轉" @@ -8808,84 +9111,84 @@ msgid "[SHAPE] remove shape" msgstr "[形狀] 刪除形狀" -#: ../src/develop/masks/masks.c:306 +#: ../src/develop/masks/masks.c:305 #, c-format msgid "group `%s'" msgstr "群組「%s」" -#: ../src/develop/masks/masks.c:423 +#: ../src/develop/masks/masks.c:422 #, c-format msgid "copy of `%s'" msgstr "「%s」的複本" -#: ../src/develop/masks/masks.c:984 +#: ../src/develop/masks/masks.c:985 #, c-format msgid "%s: mask version mismatch: %d != %d" msgstr "「%s」: 遮罩版本不符合: %d != %d" -#: ../src/develop/masks/masks.c:1239 ../src/develop/masks/masks.c:1906 +#: ../src/develop/masks/masks.c:1230 ../src/develop/masks/masks.c:1881 #, c-format msgid "opacity: %.0f%%" msgstr "不透明度:%.0f%%" -#: ../src/develop/masks/masks.c:1650 ../src/libs/masks.c:1068 +#: ../src/develop/masks/masks.c:1625 ../src/libs/masks.c:1084 msgid "add existing shape" msgstr "增加現有的遮罩" -#: ../src/develop/masks/masks.c:1677 +#: ../src/develop/masks/masks.c:1652 msgid "use same shapes as" msgstr "使用與其他模組相同的遮罩" -#: ../src/develop/masks/masks.c:1990 +#: ../src/develop/masks/masks.c:1965 msgid "masks can not contain themselves" msgstr "遮罩不能包含自己本身" -#: ../src/develop/masks/path.c:3433 +#: ../src/develop/masks/path.c:3349 msgid "[PATH creation] add a smooth node" msgstr "[路徑建立] 增加平滑節點" -#: ../src/develop/masks/path.c:3435 +#: ../src/develop/masks/path.c:3351 msgid "[PATH creation] add a sharp node" msgstr "[路徑建立] 增加轉角節點" -#: ../src/develop/masks/path.c:3437 +#: ../src/develop/masks/path.c:3353 msgid "[PATH creation] terminate path creation" msgstr "[路徑建立] 終止路徑建立" -#: ../src/develop/masks/path.c:3439 +#: ../src/develop/masks/path.c:3355 msgid "[PATH on node] switch between smooth/sharp node" msgstr "[路徑節點] 切換平滑 / 轉角節點" -#: ../src/develop/masks/path.c:3441 +#: ../src/develop/masks/path.c:3357 msgid "[PATH on node] remove the node" msgstr "[節點節點] 刪除節點" -#: ../src/develop/masks/path.c:3443 +#: ../src/develop/masks/path.c:3359 msgid "[PATH on feather] reset curvature" msgstr "[路徑羽化] 重設曲率" -#: ../src/develop/masks/path.c:3445 +#: ../src/develop/masks/path.c:3361 msgid "[PATH on segment] add node" msgstr "[路徑線段] 增加節點" -#: ../src/develop/masks/path.c:3447 +#: ../src/develop/masks/path.c:3363 msgid "[PATH] change size" msgstr "[路徑] 變更尺寸" -#: ../src/develop/masks/path.c:3449 +#: ../src/develop/masks/path.c:3365 msgid "[PATH] change feather size" msgstr "[路徑] 變更羽化範圍" -#: ../src/develop/masks/path.c:3451 +#: ../src/develop/masks/path.c:3367 msgid "[PATH] change opacity" msgstr "[路徑] 變更不透明度" -#: ../src/develop/masks/path.c:3463 +#: ../src/develop/masks/path.c:3379 #, c-format msgid "path #%d" msgstr "路徑 #%d" -#: ../src/develop/masks/path.c:3473 +#: ../src/develop/masks/path.c:3389 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>cancel</b>: right-click" @@ -8893,7 +9196,7 @@ "點擊:<b>增加平滑節點</b>,ctrl + 點擊:<b>增加轉角節點</b>\n" "右鍵:<b>取消</b>" -#: ../src/develop/masks/path.c:3476 +#: ../src/develop/masks/path.c:3392 msgid "" "<b>add node</b>: click, <b>add sharp node</b>: ctrl+click\n" "<b>finish path</b>: right-click" @@ -8901,7 +9204,7 @@ "點擊:<b>增加平滑節點</b>,ctrl + 點擊:<b>增加轉角節點</b>\n" "右鍵:<b>完成路徑</b>" -#: ../src/develop/masks/path.c:3479 +#: ../src/develop/masks/path.c:3395 msgid "" "<b>move node</b>: drag, <b>remove node</b>: right-click\n" "<b>switch smooth/sharp mode</b>: ctrl+click" @@ -8909,7 +9212,7 @@ "拖曳以移動節點,右鍵刪除節點\n" "ctrl + 點擊切換平滑或轉角節點" -#: ../src/develop/masks/path.c:3483 +#: ../src/develop/masks/path.c:3399 msgid "" "<b>node curvature</b>: drag\n" "<b>reset curvature</b>: right-click" @@ -8917,7 +9220,7 @@ "拖曳以調整節點曲率\n" "右鍵重設曲率" -#: ../src/develop/masks/path.c:3487 +#: ../src/develop/masks/path.c:3403 msgid "" "<b>move segment</b>: drag\n" "<b>add node</b>: ctrl+click" @@ -8925,11 +9228,11 @@ "拖曳以移動線段\n" "ctrl + 點擊增加節點" -#: ../src/develop/pixelpipe_hb.c:500 +#: ../src/develop/pixelpipe_hb.c:486 msgid "enabled as required" msgstr "由於影像處理需求,強制啟用此模組" -#: ../src/develop/pixelpipe_hb.c:501 +#: ../src/develop/pixelpipe_hb.c:487 msgid "" "history had module disabled but it is required for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -8937,11 +9240,11 @@ "歷史記錄中停用此模組,但對此類型的影像是必須的處理步驟\n" "錯誤有可能是透過套用預設集,或是貼上影像編輯歷史記錄而導致" -#: ../src/develop/pixelpipe_hb.c:508 +#: ../src/develop/pixelpipe_hb.c:494 msgid "disabled as not appropriate" msgstr "影像不適用此模組故不啟用" -#: ../src/develop/pixelpipe_hb.c:509 +#: ../src/develop/pixelpipe_hb.c:495 msgid "" "history had module enabled but it is not allowed for this type of image.\n" "likely introduced by applying a preset, style or history copy&paste" @@ -8949,13 +9252,24 @@ "歷史記錄中啟用此模組,但模組不適用於此類型的影像\n" "錯誤有可能是透過套用預設集,或是貼上影像編輯歷史記錄而導致" -#: ../src/develop/pixelpipe_hb.c:2705 +#: ../src/develop/pixelpipe_hb.c:2697 msgid "" -"darktable discovered problems with your OpenCL setup; disabling OpenCL for " -"this session!" -msgstr "darktable 發現 OpenCL 存在問題,正在為這個工作階段停用 OpenCL" +"OpenCL errors encountered; disabling OpenCL for this session! some possible " +"causes:\n" +" - OpenCL out of resources due to preference settings. please try with " +"defaults,\n" +" - buggy driver for some device. please run darktable with `-d opencl' to " +"identify,\n" +" - some drivers don't support needed number of events,\n" +" - too small headroom settings while using 'use all device memory'." +msgstr "" +"遇到 OpenCL 錯誤,無法啟用 OpenCL!可能原因如下:\n" +" - OpenCL 資源不足,請嘗試改用預設設定\n" +" - 某些設備驅動有問題,請執行「-d opencl」來識別\n" +" - 某些設備不支援需要的平行處理數量\n" +" - 「使用所有記憶體」的安全餘裕不足" -#: ../src/develop/pixelpipe_hb.c:2853 +#: ../src/develop/pixelpipe_hb.c:2847 #, c-format msgid "" "module '%s' can't get raster mask from module\n" @@ -8966,30 +9280,32 @@ "因為這位於之後的處理流程中\n" "點陣遮罩已被忽略" -#: ../src/develop/tiling.c:820 ../src/develop/tiling.c:1173 +#: ../src/develop/tiling.c:819 ../src/develop/tiling.c:1172 #, c-format -msgid "tiling failed for module '%s'. output might be garbled." +msgid "" +"tiling failed for module '%s'. the output most likely will be OK, but you " +"might want to check." msgstr "" "⚠️ 錯誤 ⚠️\n" -"模組「%s」平舖失敗,匯出影像可能會出現錯誤" +"模組「%s」平舖失敗,輸出的影像很可能沒問題,但你也許會想要檢查一下。" -#: ../src/dtgtk/culling.c:254 +#: ../src/dtgtk/culling.c:223 msgid "you have reached the start of your selection" msgstr "已是選取影像的第一張" -#: ../src/dtgtk/culling.c:263 +#: ../src/dtgtk/culling.c:232 msgid "you have reached the start of your collection" msgstr "已是相冊的第一張" -#: ../src/dtgtk/culling.c:310 +#: ../src/dtgtk/culling.c:279 msgid "you have reached the end of your selection" msgstr "已是選取影像的最後一張" -#: ../src/dtgtk/culling.c:337 +#: ../src/dtgtk/culling.c:306 msgid "you have reached the end of your collection" msgstr "已是相冊的最後一張" -#: ../src/dtgtk/culling.c:446 +#: ../src/dtgtk/culling.c:415 #, c-format msgid "zooming is limited to %d images" msgstr "縮放預覽僅限 %d 張影像" @@ -9083,7 +9399,7 @@ msgid "fixed" msgstr "絕對" -#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1493 +#: ../src/dtgtk/range.c:487 ../src/iop/colorchecker.c:1498 msgid "relative" msgstr "相對" @@ -9097,7 +9413,7 @@ msgstr "最小" #: ../src/dtgtk/range.c:630 ../src/dtgtk/range.c:1780 ../src/dtgtk/range.c:1831 -#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:282 +#: ../src/libs/colorpicker.c:53 ../src/libs/filters/rating_range.c:309 msgid "max" msgstr "最大" @@ -9106,7 +9422,7 @@ msgstr "日期格式" #. the date section -#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:955 ../src/libs/geotagging.c:1505 msgid "date" msgstr "日期" @@ -9131,7 +9447,7 @@ msgstr "日:" #. the time section -#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1501 +#: ../src/dtgtk/range.c:1001 ../src/libs/geotagging.c:1505 msgid "time" msgstr "時間" @@ -9149,8 +9465,8 @@ msgstr "將數值設定為目前時間" #. apply button -#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:162 -#: ../src/libs/metadata.c:901 ../src/libs/styles.c:897 +#: ../src/dtgtk/range.c:1058 ../src/gui/accelerators.c:180 +#: ../src/libs/metadata.c:735 ../src/libs/styles.c:901 msgid "apply" msgstr "套用" @@ -9184,39 +9500,39 @@ msgid "grouped images" msgstr "群組影像" -#: ../src/dtgtk/thumbnail.c:820 ../src/dtgtk/thumbnail.c:1635 -#: ../src/iop/ashift.c:6191 ../src/iop/ashift.c:6280 ../src/iop/ashift.c:6282 -#: ../src/iop/ashift.c:6284 ../src/libs/navigation.c:110 -#: ../src/libs/navigation.c:190 +#: ../src/dtgtk/thumbnail.c:814 ../src/dtgtk/thumbnail.c:1623 +#: ../src/iop/ashift.c:6138 ../src/iop/ashift.c:6227 ../src/iop/ashift.c:6229 +#: ../src/iop/ashift.c:6231 ../src/libs/navigation.c:111 +#: ../src/libs/navigation.c:193 msgid "fit" msgstr "符合" -#: ../src/dtgtk/thumbtable.c:1041 ../src/views/slideshow.c:421 +#: ../src/dtgtk/thumbtable.c:1139 ../src/views/slideshow.c:422 msgid "there are no images in this collection" msgstr "這個相冊中沒有任何影像" -#: ../src/dtgtk/thumbtable.c:1048 +#: ../src/dtgtk/thumbtable.c:1146 msgid "if you have not imported any images yet" msgstr "如果尚未匯入任何影像" -#: ../src/dtgtk/thumbtable.c:1052 +#: ../src/dtgtk/thumbtable.c:1150 msgid "you can do so in the import module" msgstr "可以在「影像匯入」模組中執行此操作" -#: ../src/dtgtk/thumbtable.c:1061 +#: ../src/dtgtk/thumbtable.c:1159 msgid "try to relax the filter settings in the top panel" msgstr "使用上方面板的篩選設定" -#: ../src/dtgtk/thumbtable.c:1072 +#: ../src/dtgtk/thumbtable.c:1170 msgid "or add images in the collections module in the left panel" msgstr "或從左側面板的相冊模組中加入影像" -#: ../src/dtgtk/thumbtable.c:1338 +#: ../src/dtgtk/thumbtable.c:1455 msgid "" "you have changed the settings related to how thumbnails are generated.\n" msgstr "您已改變生成縮圖的設定\n" -#: ../src/dtgtk/thumbtable.c:1341 +#: ../src/dtgtk/thumbtable.c:1458 msgid "" "all cached thumbnails need to be invalidated.\n" "\n" @@ -9224,7 +9540,7 @@ "所有的快取縮圖都會失效。\n" "\n" -#: ../src/dtgtk/thumbtable.c:1345 +#: ../src/dtgtk/thumbtable.c:1462 #, c-format msgid "" "cached thumbnails starting from level %d need to be invalidated.\n" @@ -9233,7 +9549,7 @@ "需要清除從第 %d 級開始的快取縮圖。\n" "\n" -#: ../src/dtgtk/thumbtable.c:1350 +#: ../src/dtgtk/thumbtable.c:1467 #, c-format msgid "" "cached thumbnails below level %d need to be invalidated.\n" @@ -9242,7 +9558,7 @@ "需要清除低於 %d 級的快取縮圖。\n" "\n" -#: ../src/dtgtk/thumbtable.c:1355 +#: ../src/dtgtk/thumbtable.c:1472 #, c-format msgid "" "cached thumbnails between level %d and %d need to be invalidated.\n" @@ -9251,48 +9567,48 @@ "需要清除第 %d 至第 %d 級之間的快取縮圖。\n" "\n" -#: ../src/dtgtk/thumbtable.c:1358 +#: ../src/dtgtk/thumbtable.c:1475 msgid "do you want to do that now?" msgstr "確定要現在執行嗎?" -#: ../src/dtgtk/thumbtable.c:1360 +#: ../src/dtgtk/thumbtable.c:1477 msgid "cached thumbnails invalidation" msgstr "清除快取縮圖" #. setup history key accelerators -#: ../src/dtgtk/thumbtable.c:2561 +#: ../src/dtgtk/thumbtable.c:2738 msgid "copy history" msgstr "複製編輯紀錄" -#: ../src/dtgtk/thumbtable.c:2563 +#: ../src/dtgtk/thumbtable.c:2740 msgid "copy history parts" msgstr "複製部分編輯記錄" -#: ../src/dtgtk/thumbtable.c:2565 +#: ../src/dtgtk/thumbtable.c:2742 msgid "paste history" msgstr "套用編輯紀錄" -#: ../src/dtgtk/thumbtable.c:2567 +#: ../src/dtgtk/thumbtable.c:2744 msgid "paste history parts" msgstr "套用部分編輯紀錄" -#: ../src/dtgtk/thumbtable.c:2569 ../src/libs/copy_history.c:394 +#: ../src/dtgtk/thumbtable.c:2746 ../src/libs/copy_history.c:394 msgid "discard history" msgstr "刪除編輯記錄" -#: ../src/dtgtk/thumbtable.c:2572 +#: ../src/dtgtk/thumbtable.c:2749 msgid "duplicate image" msgstr "複製影像" -#: ../src/dtgtk/thumbtable.c:2574 +#: ../src/dtgtk/thumbtable.c:2751 msgid "duplicate image virgin" msgstr "複製原始影像" -#: ../src/dtgtk/thumbtable.c:2584 ../src/libs/select.c:147 +#: ../src/dtgtk/thumbtable.c:2761 ../src/libs/select.c:148 msgid "select film roll" msgstr "選取底片卷" -#: ../src/dtgtk/thumbtable.c:2586 ../src/libs/select.c:151 +#: ../src/dtgtk/thumbtable.c:2763 ../src/libs/select.c:152 msgid "select untouched" msgstr "選取未編修過的影像" @@ -9334,9 +9650,9 @@ "no thumbnails to be generated, done.\n" msgstr "" "⚠️ 警告 ⚠️\n" -"用於縮圖快取的磁碟已關閉\n" -"如果要預先產生縮圖需要啟用磁碟\n" -"操作完成,沒有製作任何縮圖\n" +"縮圖硬碟快取已關閉(檢查硬碟後台選項)\n" +"如果要預先產生縮圖需要啟用磁碟快取\n" +"沒有生成任何縮圖\n" #: ../src/generate-cache/main.c:238 #, c-format @@ -9364,265 +9680,297 @@ msgid "creating complete lighttable thumbnail cache\n" msgstr "正在建立完整的燈箱預覽快取縮圖\n" -#: ../src/gui/accelerators.c:61 -msgid "active view" +#: ../src/gui/about.c:34 +#, c-format +msgid "copyright (c) the authors 2009-%s" +msgstr "版權所有 © 作者 2009 - %s" + +#: ../src/gui/about.c:39 +msgid "organize and develop images from digital cameras" +msgstr "整理和編輯數位相機的影像" + +#: ../src/gui/about.c:51 +msgid "all those of you that made previous releases possible" +msgstr "所有過去版本的貢獻者" + +#: ../src/gui/about.c:56 +msgid "and..." +msgstr "以及…" + +#: ../src/gui/about.c:59 +msgid "translator-credits" +msgstr "" +"<a href=\"https://www.facebook.com/HSUfineprint/\">言午印藝</a> - 許剛維" + +#: ../src/gui/accelerators.c:72 +msgid "in active view" msgstr "目前的模式" -#: ../src/gui/accelerators.c:62 -msgid "other views" +#: ../src/gui/accelerators.c:73 +msgid "in other views" msgstr "其他檢視模式" -#: ../src/gui/accelerators.c:63 +#: ../src/gui/accelerators.c:74 msgid "fallbacks" msgstr "備用擴展快速鍵" -#: ../src/gui/accelerators.c:64 ../src/gui/accelerators.c:722 -#: ../src/gui/accelerators.c:2607 ../src/gui/accelerators.c:3470 -msgid "speed" -msgstr "速度" +#: ../src/gui/accelerators.c:75 +msgid "speed adjustments" +msgstr "速度調整" + +#: ../src/gui/accelerators.c:76 +msgid "disabled defaults" +msgstr "取消預設設定" -#: ../src/gui/accelerators.c:80 ../src/views/view.c:1202 +#: ../src/gui/accelerators.c:96 ../src/views/view.c:1361 msgid "scroll" msgstr "滾輪" -#: ../src/gui/accelerators.c:81 +#: ../src/gui/accelerators.c:97 msgid "pan" msgstr "平移" -#: ../src/gui/accelerators.c:82 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6283 ../src/iop/clipping.c:1902 -#: ../src/iop/clipping.c:2094 ../src/iop/clipping.c:2110 -#: ../src/views/darkroom.c:2676 ../src/views/lighttable.c:1250 +#: ../src/gui/accelerators.c:98 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6230 ../src/iop/clipping.c:1955 +#: ../src/iop/clipping.c:2147 ../src/iop/clipping.c:2163 +#: ../src/views/darkroom.c:2522 ../src/views/lighttable.c:1250 msgid "horizontal" msgstr "水平" -#: ../src/gui/accelerators.c:83 ../src/iop/ashift.c:5852 -#: ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 ../src/iop/ashift.c:5961 -#: ../src/iop/ashift.c:6281 ../src/iop/clipping.c:1901 -#: ../src/iop/clipping.c:2095 ../src/iop/clipping.c:2109 -#: ../src/views/darkroom.c:2679 ../src/views/lighttable.c:1254 +#: ../src/gui/accelerators.c:99 ../src/iop/ashift.c:5797 +#: ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 ../src/iop/ashift.c:5906 +#: ../src/iop/ashift.c:6228 ../src/iop/clipping.c:1954 +#: ../src/iop/clipping.c:2148 ../src/iop/clipping.c:2162 +#: ../src/views/darkroom.c:2525 ../src/views/lighttable.c:1254 msgid "vertical" msgstr "垂直" -#: ../src/gui/accelerators.c:84 +#: ../src/gui/accelerators.c:100 msgid "diagonal" msgstr "對角" -#: ../src/gui/accelerators.c:86 +#: ../src/gui/accelerators.c:102 msgid "leftright" msgstr "左右" -#: ../src/gui/accelerators.c:87 +#: ../src/gui/accelerators.c:103 msgid "updown" msgstr "上下" -#: ../src/gui/accelerators.c:88 +#: ../src/gui/accelerators.c:104 msgid "pgupdown" msgstr "上下翻頁" -#: ../src/gui/accelerators.c:96 ../src/views/view.c:1186 +#: ../src/gui/accelerators.c:112 ../src/views/view.c:1343 msgid "shift" msgstr "shift" -#: ../src/gui/accelerators.c:97 ../src/views/view.c:1187 +#: ../src/gui/accelerators.c:113 ../src/views/view.c:1345 msgid "ctrl" msgstr "ctrl" -#: ../src/gui/accelerators.c:98 ../src/views/view.c:1188 +#: ../src/gui/accelerators.c:114 ../src/views/view.c:1347 msgid "alt" msgstr "alt" -#: ../src/gui/accelerators.c:99 +#: ../src/gui/accelerators.c:115 msgid "cmd" msgstr "cmd" -#: ../src/gui/accelerators.c:100 +#: ../src/gui/accelerators.c:116 msgid "altgr" msgstr "alt(右)" -#: ../src/gui/accelerators.c:109 ../src/gui/accelerators.c:156 -#: ../src/libs/tagging.c:1782 +#: ../src/gui/accelerators.c:127 ../src/gui/accelerators.c:174 +#: ../src/libs/tagging.c:1804 msgid "edit" msgstr "編輯" -#: ../src/gui/accelerators.c:110 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "up" msgstr "上" -#: ../src/gui/accelerators.c:111 ../src/gui/accelerators.c:682 +#: ../src/gui/accelerators.c:129 ../src/gui/accelerators.c:737 +#: ../src/gui/accelerators.c:1455 msgid "down" msgstr "下" -#: ../src/gui/accelerators.c:115 +#: ../src/gui/accelerators.c:133 msgid "set" msgstr "設定" -#: ../src/gui/accelerators.c:119 +#: ../src/gui/accelerators.c:137 msgid "popup" msgstr "彈出式視窗" -#: ../src/gui/accelerators.c:120 ../src/gui/accelerators.c:153 -#: ../src/gui/gtk.c:3054 ../src/views/lighttable.c:760 +#: ../src/gui/accelerators.c:138 ../src/gui/accelerators.c:171 +#: ../src/gui/gtk.c:3100 ../src/views/lighttable.c:760 msgid "next" msgstr "下一個" -#: ../src/gui/accelerators.c:121 ../src/gui/accelerators.c:152 -#: ../src/gui/gtk.c:3055 ../src/views/lighttable.c:761 +#: ../src/gui/accelerators.c:139 ../src/gui/accelerators.c:170 +#: ../src/gui/gtk.c:3101 ../src/views/lighttable.c:761 msgid "previous" msgstr "前一個" -#: ../src/gui/accelerators.c:123 ../src/gui/accelerators.c:1462 +#: ../src/gui/accelerators.c:141 ../src/gui/accelerators.c:1598 msgid "last" msgstr "最後一個" -#: ../src/gui/accelerators.c:124 ../src/gui/accelerators.c:1461 +#: ../src/gui/accelerators.c:142 ../src/gui/accelerators.c:1597 msgid "first" msgstr "第一個" -#: ../src/gui/accelerators.c:128 ../src/gui/accelerators.c:141 -#: ../src/gui/accelerators.c:314 ../src/libs/filters/rating_range.c:268 -#: ../src/libs/tagging.c:3119 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2419 ../src/views/darkroom.c:2648 +#: ../src/gui/accelerators.c:146 ../src/gui/accelerators.c:159 +#: ../src/gui/accelerators.c:356 ../src/libs/filters/rating_range.c:295 +#: ../src/libs/tagging.c:3150 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2258 ../src/views/darkroom.c:2494 msgid "toggle" msgstr "切換" -#: ../src/gui/accelerators.c:131 +#: ../src/gui/accelerators.c:149 msgid "ctrl-toggle" msgstr "ctrl 切換" -#: ../src/gui/accelerators.c:132 +#: ../src/gui/accelerators.c:150 msgid "ctrl-on" msgstr "ctrl 開啟" -#: ../src/gui/accelerators.c:133 +#: ../src/gui/accelerators.c:151 msgid "right-toggle" msgstr "右鍵切換" -#: ../src/gui/accelerators.c:134 +#: ../src/gui/accelerators.c:152 msgid "right-on" msgstr "右鍵開啟" -#: ../src/gui/accelerators.c:145 ../src/gui/gtk.c:3053 +#: ../src/gui/accelerators.c:163 ../src/gui/gtk.c:3099 msgid "activate" msgstr "啟用" -#: ../src/gui/accelerators.c:146 +#: ../src/gui/accelerators.c:164 msgid "ctrl-activate" msgstr "ctrl 啟用" -#: ../src/gui/accelerators.c:147 +#: ../src/gui/accelerators.c:165 msgid "right-activate" msgstr "右鍵啟用" -#: ../src/gui/accelerators.c:154 +#: ../src/gui/accelerators.c:172 msgid "store" msgstr "儲存" -#: ../src/gui/accelerators.c:157 ../src/gui/styles_dialog.c:639 +#: ../src/gui/accelerators.c:175 ../src/gui/styles_dialog.c:651 msgid "update" msgstr "更新" -#: ../src/gui/accelerators.c:158 ../src/libs/tools/global_toolbox.c:60 +#: ../src/gui/accelerators.c:176 ../src/libs/tools/global_toolbox.c:60 #: ../src/libs/tools/global_toolbox.c:510 msgid "preferences" msgstr "偏好設定" -#: ../src/gui/accelerators.c:163 +#: ../src/gui/accelerators.c:181 msgid "apply on new instance" msgstr "套用在新的模組實例" -#: ../src/gui/accelerators.c:168 +#: ../src/gui/accelerators.c:186 msgid "start" msgstr "開始" -#: ../src/gui/accelerators.c:169 +#: ../src/gui/accelerators.c:187 msgid "end" msgstr "結束" -#: ../src/gui/accelerators.c:332 +#: ../src/gui/accelerators.c:374 msgid "entry" msgstr "輸入" -#: ../src/gui/accelerators.c:409 +#: ../src/gui/accelerators.c:450 msgid "combo effect not found" msgstr "找不到組合效果" -#: ../src/gui/accelerators.c:578 +#: ../src/gui/accelerators.c:627 msgid "(keypad)" msgstr "(小鍵盤)" -#: ../src/gui/accelerators.c:587 +#: ../src/gui/accelerators.c:636 msgid "tablet button" msgstr "平板按鈕" -#: ../src/gui/accelerators.c:596 +#: ../src/gui/accelerators.c:645 msgid "unknown driver" msgstr "未知裝置" -#: ../src/gui/accelerators.c:663 +#: ../src/gui/accelerators.c:718 msgid "long" msgstr "長按" -#: ../src/gui/accelerators.c:664 +#: ../src/gui/accelerators.c:719 msgid "double-press" msgstr "雙擊" -#: ../src/gui/accelerators.c:665 +#: ../src/gui/accelerators.c:720 msgid "triple-press" msgstr "按三下" -#: ../src/gui/accelerators.c:666 +#: ../src/gui/accelerators.c:721 msgid "press" msgstr "點擊" -#: ../src/gui/accelerators.c:670 +#: ../src/gui/accelerators.c:725 msgctxt "accel" msgid "left" msgstr "左鍵" -#: ../src/gui/accelerators.c:671 +#: ../src/gui/accelerators.c:726 msgctxt "accel" msgid "right" msgstr "右鍵" -#: ../src/gui/accelerators.c:672 +#: ../src/gui/accelerators.c:727 msgctxt "accel" msgid "middle" msgstr "中鍵" -#: ../src/gui/accelerators.c:673 +#: ../src/gui/accelerators.c:728 msgctxt "accel" msgid "long" msgstr "長按" -#: ../src/gui/accelerators.c:674 +#: ../src/gui/accelerators.c:729 msgctxt "accel" msgid "double-click" msgstr "雙擊" -#: ../src/gui/accelerators.c:675 +#: ../src/gui/accelerators.c:730 msgctxt "accel" msgid "triple-click" msgstr "按三下" -#: ../src/gui/accelerators.c:676 +#: ../src/gui/accelerators.c:731 msgid "click" msgstr "點擊" -#: ../src/gui/accelerators.c:704 +#: ../src/gui/accelerators.c:759 msgid "first instance" msgstr "第一個模組實例" -#: ../src/gui/accelerators.c:706 +#: ../src/gui/accelerators.c:761 msgid "last instance" msgstr "最後一個模組實例" -#: ../src/gui/accelerators.c:708 +#: ../src/gui/accelerators.c:763 msgid "relative instance" msgstr "相對的模組實例" -#: ../src/gui/accelerators.c:867 +#: ../src/gui/accelerators.c:780 ../src/gui/accelerators.c:2864 +#: ../src/gui/accelerators.c:3811 +msgid "speed" +msgstr "速度" + +#: ../src/gui/accelerators.c:923 #, c-format msgid "" "Lua script command copied to clipboard:\n" @@ -9633,11 +9981,11 @@ "\n" "<tt>%s</tt>" -#: ../src/gui/accelerators.c:965 ../src/gui/accelerators.c:978 +#: ../src/gui/accelerators.c:1025 ../src/gui/accelerators.c:1044 msgid "start typing for incremental search" msgstr "直接輸入搜尋動作" -#: ../src/gui/accelerators.c:966 +#: ../src/gui/accelerators.c:1028 msgid "" "\n" "press Delete to delete selected shortcut" @@ -9645,7 +9993,23 @@ "\n" "按 Delete 鍵刪除選取的快速鍵" -#: ../src/gui/accelerators.c:968 +#: ../src/gui/accelerators.c:1030 +msgid "" +"\n" +"press Delete to disable selected default shortcut" +msgstr "" +"\n" +"按 Delete 鍵取消選取的預設快速鍵" + +#: ../src/gui/accelerators.c:1031 +msgid "" +"\n" +"press Delete to restore selected default shortcut" +msgstr "" +"\n" +"按 Delete 鍵恢復選取的預設快速鍵" + +#: ../src/gui/accelerators.c:1033 msgid "" "\n" "double-click to add new shortcut" @@ -9653,11 +10017,11 @@ "\n" "雙擊以新增快速鍵" -#: ../src/gui/accelerators.c:979 +#: ../src/gui/accelerators.c:1045 msgid "click to filter shortcuts list" msgstr "點擊可篩選快速鍵" -#: ../src/gui/accelerators.c:981 +#: ../src/gui/accelerators.c:1047 msgid "" "\n" "right click to show action of selected shortcut" @@ -9665,7 +10029,7 @@ "\n" "右鍵展開選擇的快速鍵清單" -#: ../src/gui/accelerators.c:984 +#: ../src/gui/accelerators.c:1050 msgid "" "\n" "double-click to define new shortcut" @@ -9673,37 +10037,37 @@ "\n" "雙擊以自訂新的快速鍵" -#: ../src/gui/accelerators.c:1015 +#: ../src/gui/accelerators.c:1081 msgid "shift+alt+scroll to change height" msgstr "shift + alt + 滑鼠滾輪改變高度" -#: ../src/gui/accelerators.c:1035 +#: ../src/gui/accelerators.c:1101 msgid "" "press keys with mouse click and scroll or move combinations to create a " "shortcut" msgstr "按鍵和滑鼠動作組合以建立快速鍵" -#: ../src/gui/accelerators.c:1036 +#: ../src/gui/accelerators.c:1102 msgid "click to open shortcut configuration" msgstr "滑鼠點擊打開此功能的快速鍵設定視窗" -#: ../src/gui/accelerators.c:1037 +#: ../src/gui/accelerators.c:1103 msgid "ctrl+click to add to quick access panel\n" msgstr "ctrl + 左鍵添加到快速存取面板\n" -#: ../src/gui/accelerators.c:1038 +#: ../src/gui/accelerators.c:1104 msgid "ctrl+click to remove from quick access panel\n" msgstr "ctrl + 左鍵從快速存取面板中刪除\n" -#: ../src/gui/accelerators.c:1039 +#: ../src/gui/accelerators.c:1105 msgid "scroll to change default speed" msgstr "滑鼠滾輪可改變快速鍵速度" -#: ../src/gui/accelerators.c:1040 +#: ../src/gui/accelerators.c:1106 msgid "right click to exit mapping mode" msgstr "滑鼠右鍵退出快速鍵錄製模式" -#: ../src/gui/accelerators.c:1051 +#: ../src/gui/accelerators.c:1119 #, c-format msgid "" "%sright-click to type a specific value between <b>%s</b> and <b>%s</b>\n" @@ -9712,74 +10076,89 @@ "%s 點擊滑鼠右鍵以輸入介於 <b>%s</b> 和 <b>%s</b> 之間的特定數值\n" "或在拖曳時按住 ctrl 與 shift 以超出軟限制範圍" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "ctrl+v" msgstr "ctrl + v" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "right long click" msgstr "長按滑鼠右鍵" -#: ../src/gui/accelerators.c:1112 +#: ../src/gui/accelerators.c:1183 msgid "to copy Lua command" msgstr "複製 Lua 腳本命令" -#: ../src/gui/accelerators.c:1344 +#: ../src/gui/accelerators.c:1451 msgid "shortcut for move exists with single effect" msgstr "用於移動的快速鍵只有單一效果" -#: ../src/gui/accelerators.c:1345 +#: ../src/gui/accelerators.c:1452 +#, c-format +msgid "" +"%s\n" +"\n" +"(assign %s to %s)" +msgstr "" +"%s\n" +"\n" +"「%s」指定給「%s」" + +#: ../src/gui/accelerators.c:1453 msgid "create separate shortcuts for up and down move?" msgstr "為上下移動建立單獨的快速鍵?" -#: ../src/gui/accelerators.c:1368 +#: ../src/gui/accelerators.c:1479 #, c-format msgid "%s, speed reset" msgstr "「%s」,速度重設" -#: ../src/gui/accelerators.c:1377 +#: ../src/gui/accelerators.c:1497 msgid "shortcut exists with different settings" msgstr "快速鍵已指定為其他的設定" -#: ../src/gui/accelerators.c:1378 +#: ../src/gui/accelerators.c:1498 msgid "reset the settings of the shortcut?" msgstr "是否重設快速鍵的配置?" -#: ../src/gui/accelerators.c:1389 +#: ../src/gui/accelerators.c:1507 msgid "shortcut already exists" msgstr "快速鍵已存在" -#: ../src/gui/accelerators.c:1390 +#: ../src/gui/accelerators.c:1509 +msgid "disable this default shortcut?" +msgstr "取消這個預設的快速鍵?" + +#: ../src/gui/accelerators.c:1510 msgid "remove the shortcut?" msgstr "刪除此快速鍵?" -#: ../src/gui/accelerators.c:1423 +#: ../src/gui/accelerators.c:1550 msgid "clashing shortcuts exist" msgstr "與現有快速鍵衝突" -#: ../src/gui/accelerators.c:1424 +#: ../src/gui/accelerators.c:1551 msgid "remove these existing shortcuts?" msgstr "刪除這些已有的快速鍵?" #. or 3, but change char relative[] = "-2" to "-1" #. NUM_INSTANCES -#: ../src/gui/accelerators.c:1460 +#: ../src/gui/accelerators.c:1596 msgid "preferred" msgstr "優先" -#: ../src/gui/accelerators.c:1463 +#: ../src/gui/accelerators.c:1599 msgid "second" msgstr "第二" -#: ../src/gui/accelerators.c:1464 +#: ../src/gui/accelerators.c:1600 msgid "last but one" msgstr "倒數第二" -#: ../src/gui/accelerators.c:1610 ../src/gui/accelerators.c:1670 +#: ../src/gui/accelerators.c:1761 ../src/gui/accelerators.c:1826 msgid "(unchanged)" msgstr "(未更改)" -#: ../src/gui/accelerators.c:1776 +#: ../src/gui/accelerators.c:1941 msgid "" "define a shortcut by pressing a key, optionally combined with modifier keys " "(ctrl/shift/alt)\n" @@ -9799,39 +10178,47 @@ "\n" "點擊右鍵取消" -#: ../src/gui/accelerators.c:1847 +#: ../src/gui/accelerators.c:2014 msgid "removing shortcut" msgstr "移除快速鍵" -#: ../src/gui/accelerators.c:1848 +#: ../src/gui/accelerators.c:2016 +msgid "disable the selected default shortcut?" +msgstr "取消選取的預設快速鍵?" + +#: ../src/gui/accelerators.c:2017 +msgid "restore the selected default shortcut?" +msgstr "恢復選取的預設快速鍵?" + +#: ../src/gui/accelerators.c:2018 msgid "remove the selected shortcut?" msgstr "是否要移除選取的快速鍵 ?" -#: ../src/gui/accelerators.c:1938 +#: ../src/gui/accelerators.c:2107 msgid "command" msgstr "確認" -#: ../src/gui/accelerators.c:1939 +#: ../src/gui/accelerators.c:2108 msgid "preset" msgstr "預設集" -#: ../src/gui/accelerators.c:2272 +#: ../src/gui/accelerators.c:2491 msgid "restore shortcuts" msgstr "恢復快速鍵" -#: ../src/gui/accelerators.c:2275 +#: ../src/gui/accelerators.c:2494 msgid "_defaults" msgstr "預設(_D)" -#: ../src/gui/accelerators.c:2276 +#: ../src/gui/accelerators.c:2495 msgid "_startup" msgstr "開始(_S)" -#: ../src/gui/accelerators.c:2277 +#: ../src/gui/accelerators.c:2496 msgid "_edits" msgstr "編輯(_E)" -#: ../src/gui/accelerators.c:2283 +#: ../src/gui/accelerators.c:2503 msgid "" "restore shortcuts from one of these states:\n" " - default\n" @@ -9843,7 +10230,7 @@ " - 程式開啟時\n" " - 本次修改前\n" -#: ../src/gui/accelerators.c:2289 +#: ../src/gui/accelerators.c:2510 msgid "" "clear all newer shortcuts\n" "(instead of just restoring changed ones)" @@ -9851,22 +10238,17 @@ "清除所有更新的快速鍵\n" "(而不僅是恢復已更改的)" -#: ../src/gui/accelerators.c:2344 ../src/gui/preferences.c:906 +#: ../src/gui/accelerators.c:2567 ../src/gui/preferences.c:905 #: ../src/libs/tools/global_toolbox.c:494 -#: ../src/libs/tools/global_toolbox.c:645 +#: ../src/libs/tools/global_toolbox.c:652 msgid "shortcuts" msgstr "快速鍵" -#: ../src/gui/accelerators.c:2353 +#: ../src/gui/accelerators.c:2577 msgid "export shortcuts" msgstr "匯出快速鍵" -#: ../src/gui/accelerators.c:2356 ../src/gui/accelerators.c:2436 -#: ../src/gui/hist_dialog.c:227 ../src/gui/presets.c:564 -msgid "_ok" -msgstr "確定(_O)" - -#: ../src/gui/accelerators.c:2361 +#: ../src/gui/accelerators.c:2586 msgid "" "export all shortcuts to a file\n" "or just for one selected device\n" @@ -9874,27 +10256,27 @@ "選擇要匯出全部的快速鍵\n" "或是特定裝置的快速鍵設定\n" -#: ../src/gui/accelerators.c:2368 ../src/gui/accelerators.c:2448 +#: ../src/gui/accelerators.c:2593 ../src/gui/accelerators.c:2675 msgid "keyboard" msgstr "鍵盤" -#: ../src/gui/accelerators.c:2380 +#: ../src/gui/accelerators.c:2605 msgid "device id" msgstr "裝置識別碼" -#: ../src/gui/accelerators.c:2406 +#: ../src/gui/accelerators.c:2631 msgid "select file to export" msgstr "選擇要匯出的檔案" -#: ../src/gui/accelerators.c:2407 ../src/libs/tagging.c:2525 +#: ../src/gui/accelerators.c:2632 ../src/libs/tagging.c:2556 msgid "_export" msgstr "匯出(_E)" -#: ../src/gui/accelerators.c:2433 +#: ../src/gui/accelerators.c:2659 msgid "import shortcuts" msgstr "匯入快速鍵" -#: ../src/gui/accelerators.c:2441 +#: ../src/gui/accelerators.c:2668 msgid "" "import all shortcuts from a file\n" "or just for one selected device\n" @@ -9902,31 +10284,31 @@ "選擇要匯入全部的快速鍵\n" "或是特定裝置的快速鍵設定\n" -#: ../src/gui/accelerators.c:2460 +#: ../src/gui/accelerators.c:2687 msgid "id in file" msgstr "檔案識別碼" -#: ../src/gui/accelerators.c:2466 +#: ../src/gui/accelerators.c:2693 msgid "id when loaded" msgstr "載入時的識別碼" -#: ../src/gui/accelerators.c:2470 +#: ../src/gui/accelerators.c:2697 msgid "clear device first" msgstr "先刪除原有的設備快速鍵" -#: ../src/gui/accelerators.c:2494 +#: ../src/gui/accelerators.c:2722 msgid "select file to import" msgstr "選擇要匯入的檔案" -#: ../src/gui/accelerators.c:2495 ../src/libs/tagging.c:2489 +#: ../src/gui/accelerators.c:2723 ../src/libs/tagging.c:2520 msgid "_import" msgstr "匯入(_I)" -#: ../src/gui/accelerators.c:2568 +#: ../src/gui/accelerators.c:2815 msgid "search shortcuts list" msgstr "搜尋快速鍵" -#: ../src/gui/accelerators.c:2569 +#: ../src/gui/accelerators.c:2817 msgid "" "incrementally search the list of shortcuts\n" "press up or down keys to cycle through matches" @@ -9934,29 +10316,28 @@ "輸入關鍵字搜尋快速鍵\n" "使用上下鍵在符合的快速鍵中切換" -#. Setting up the cell renderers -#: ../src/gui/accelerators.c:2583 ../src/views/view.c:1383 +#: ../src/gui/accelerators.c:2837 ../src/views/view.c:1554 msgid "shortcut" msgstr "快速鍵" -#: ../src/gui/accelerators.c:2585 ../src/gui/accelerators.c:2676 -#: ../src/views/view.c:1385 +#: ../src/gui/accelerators.c:2840 ../src/gui/accelerators.c:2942 +#: ../src/views/view.c:1556 msgid "action" msgstr "動作" -#: ../src/gui/accelerators.c:2594 +#: ../src/gui/accelerators.c:2850 msgid "element" msgstr "元素" -#: ../src/gui/accelerators.c:2601 +#: ../src/gui/accelerators.c:2858 msgid "effect" msgstr "效果" -#: ../src/gui/accelerators.c:2658 +#: ../src/gui/accelerators.c:2918 msgid "search actions list" msgstr "搜尋動作" -#: ../src/gui/accelerators.c:2659 +#: ../src/gui/accelerators.c:2920 msgid "" "incrementally search the list of actions\n" "press up or down keys to cycle through matches" @@ -9964,16 +10345,16 @@ "輸入關鍵字搜尋動作\n" "使用上下鍵在符合的動作中切換" -#: ../src/gui/accelerators.c:2682 ../src/gui/guides.c:719 -#: ../src/libs/export_metadata.c:192 +#: ../src/gui/accelerators.c:2950 ../src/gui/guides.c:719 +#: ../src/libs/export_metadata.c:179 msgid "type" msgstr "類別" -#: ../src/gui/accelerators.c:2717 +#: ../src/gui/accelerators.c:2988 msgid "enable fallbacks" msgstr "啟用更多通用擴展快速鍵" -#: ../src/gui/accelerators.c:2718 +#: ../src/gui/accelerators.c:2989 msgid "" "enables default meanings for additional buttons, modifiers or moves\n" "when used in combination with a base shortcut" @@ -9981,523 +10362,603 @@ "在基本快速鍵之上啟用更多附加按鈕、調整或移動的效果\n" "更多詳細內容及參數,請閱讀操作手冊的「shortcuts」章節" -#: ../src/gui/accelerators.c:2725 +#: ../src/gui/accelerators.c:2997 msgid "open help page for shortcuts" msgstr "開啟快速鍵的說明頁面" -#: ../src/gui/accelerators.c:2730 +#: ../src/gui/accelerators.c:3002 msgid "restore..." msgstr "重設…" -#: ../src/gui/accelerators.c:2731 +#: ../src/gui/accelerators.c:3003 msgid "restore default shortcuts or previous state" msgstr "恢復預設快速鍵或之前的狀態" -#: ../src/gui/accelerators.c:2735 ../src/libs/styles.c:883 -#: ../src/libs/tagging.c:3251 +#: ../src/gui/accelerators.c:3007 ../src/libs/styles.c:887 +#: ../src/libs/tagging.c:3282 msgid "import..." msgstr "匯入…" -#: ../src/gui/accelerators.c:2736 +#: ../src/gui/accelerators.c:3008 msgid "fully or partially import shortcuts from file" msgstr "從檔案匯入快速鍵" -#: ../src/gui/accelerators.c:2740 ../src/libs/styles.c:890 -#: ../src/libs/tagging.c:3254 +#: ../src/gui/accelerators.c:3012 ../src/libs/styles.c:894 +#: ../src/libs/tagging.c:3285 msgid "export..." msgstr "匯出…" -#: ../src/gui/accelerators.c:2741 +#: ../src/gui/accelerators.c:3013 msgid "fully or partially export shortcuts to file" msgstr "匯出快速鍵成檔案" -#: ../src/gui/accelerators.c:3139 +#: ../src/gui/accelerators.c:3021 +msgid "" +"the recommended way to assign shortcuts to visual elements is the <b>visual " +"shortcut mapping</b> mode.\n" +"this is switched on by toggling the <i>\"keyboard\"</i> button next to " +"preferences in the top panel. in this mode, clicking on a widget or area " +"will open this dialog with the appropriate selection for advanced " +"configuration.\n" +"\n" +"multiple shortcuts can be assigned to the same action. this is especially " +"useful if it has multiple <i>elements</i>, like the module buttons or the " +"colorpickers attached to sliders. however, with <i>fallbacks</i> enabled one " +"can use the same simple shortcuts and change their <i>element</i> or " +"<i>effect</i> by adding mouse clicks.\n" +"\n" +"<i>click <b> three times </b> to dismiss this notice permanently</i>" +msgstr "" +"<b>視覺快速鍵對應</b>模式是指定視覺元素快速鍵的推薦方法。\n" +"使用上方面板的<i>鍵盤</i>切換按鈕即可開啟此功能。在此模式下,點擊工具或區域會" +"開啟對話框,以選擇對應的進階配置選項。\n" +"\n" +"可以為同一個動作指定多組快速鍵,這對多元素操作特別有效,例如模組按鈕或滑桿上" +"的顏色選擇器。然而,使用拓展快速鍵也可以達到相同的功能,藉由增加滑鼠點擊等操" +"作來改變效果。\n" +"\n" +"<i>點擊<b>三次</b>可永久關閉此訊息</i>" + +#: ../src/gui/accelerators.c:3452 msgid "reinitialising input devices" msgstr "重新初始化輸入裝置" -#: ../src/gui/accelerators.c:3342 +#: ../src/gui/accelerators.c:3594 +msgid "down move" +msgstr "向下移動" + +#: ../src/gui/accelerators.c:3594 +msgid "flip top/bottom first/last" +msgstr "反轉 頂部/底部 第一/最後" + +#: ../src/gui/accelerators.c:3679 msgid "fallback to move" msgstr "回復上一動" -#: ../src/gui/accelerators.c:3578 +#: ../src/gui/accelerators.c:3921 #, c-format msgid "%s not assigned" msgstr "「%s」未指定" -#: ../src/gui/accelerators.c:3751 +#: ../src/gui/accelerators.c:4102 #, c-format msgid "%s assigned to %s" msgstr "「%s」指定給「%s」" -#: ../src/gui/gtk.c:173 ../src/views/darkroom.c:4650 +#: ../src/gui/accelerators.c:4321 +msgid "short key press resets stuck keys" +msgstr "短按按鍵可重置卡住的按鍵" + +#: ../src/gui/gtk.c:175 ../src/views/darkroom.c:3861 msgid "darktable - darkroom preview" msgstr "darktable - 暗房預覽" -#: ../src/gui/gtk.c:184 +#: ../src/gui/gtk.c:186 msgid "tooltips off" msgstr "關閉影像懸浮資訊" -#: ../src/gui/gtk.c:186 +#: ../src/gui/gtk.c:188 msgid "tooltips on" msgstr "開啟影像懸浮資訊" -#: ../src/gui/gtk.c:191 +#: ../src/gui/gtk.c:193 msgid "" "tooltip visibility can only be toggled if compositing is enabled in your " "window manager" msgstr "只有在視窗管理中開啟混合模式,才能切換懸浮資訊要不要顯示" -#: ../src/gui/gtk.c:814 +#: ../src/gui/gtk.c:809 msgid "closing darktable..." msgstr "正在關閉 darktable…" -#: ../src/gui/gtk.c:1135 +#: ../src/gui/gtk.c:1032 +msgid "URL opened in web browser" +msgstr "在網頁瀏覽器中開啟網址" + +#: ../src/gui/gtk.c:1036 +msgid "error while opening URL in web browser" +msgstr "錯誤:無法在網頁瀏覽器開啟網址" + +#. View menu +#: ../src/gui/gtk.c:1104 +msgctxt "menu" +msgid "Views" +msgstr "檢視" + +#: ../src/gui/gtk.c:1108 +msgctxt "menu" +msgid "lighttable" +msgstr "燈箱 LightTable" + +#: ../src/gui/gtk.c:1109 +msgctxt "menu" +msgid "darkroom" +msgstr "暗房 Darkroom" + +#: ../src/gui/gtk.c:1115 +msgctxt "menu" +msgid "slideshow" +msgstr "影像輪播" + +#: ../src/gui/gtk.c:1117 +msgctxt "menu" +msgid "map" +msgstr "地圖" + +#: ../src/gui/gtk.c:1119 +msgctxt "menu" +msgid "print" +msgstr "列印" + +#: ../src/gui/gtk.c:1121 +msgctxt "menu" +msgid "tethering" +msgstr "連機拍攝" + +#. Help menu +#: ../src/gui/gtk.c:1127 +msgctxt "menu" +msgid "Help" +msgstr "幫助" + +#: ../src/gui/gtk.c:1131 +msgctxt "menu" +msgid "darktable Manual" +msgstr "darktable 操作手冊" + +#: ../src/gui/gtk.c:1138 +msgctxt "menu" +msgid "darktable Homepage" +msgstr "darktable 首頁" + +#: ../src/gui/gtk.c:1162 +msgctxt "menu" +msgid "Preferences" +msgstr "偏好設定" + +#: ../src/gui/gtk.c:1232 msgid "panels" msgstr "版面" -#. an action that does nothing - used for overriding/removing default shortcuts -#: ../src/gui/gtk.c:1184 -msgid "no-op" -msgstr "無操作" - -#: ../src/gui/gtk.c:1186 +#: ../src/gui/gtk.c:1264 msgid "switch views" msgstr "切換檢視" -#: ../src/gui/gtk.c:1187 ../src/views/tethering.c:102 +#: ../src/gui/gtk.c:1265 ../src/views/tethering.c:102 msgid "tethering" msgstr "連機拍攝" -#: ../src/gui/gtk.c:1188 ../src/gui/preferences.c:531 -#: ../src/gui/preferences.c:542 ../src/libs/tools/lighttable.c:66 -#: ../src/views/lighttable.c:91 -msgid "lighttable" -msgstr "燈箱 LightTable" - -#: ../src/gui/gtk.c:1189 ../src/gui/preferences.c:532 -#: ../src/gui/preferences.c:542 ../src/views/darkroom.c:94 -msgid "darkroom" -msgstr "暗房 Darkroom" - -#: ../src/gui/gtk.c:1190 ../src/views/map.c:197 +#: ../src/gui/gtk.c:1268 ../src/views/map.c:197 msgid "map" msgstr "地圖" -#: ../src/gui/gtk.c:1191 ../src/views/slideshow.c:389 +#: ../src/gui/gtk.c:1269 ../src/views/slideshow.c:390 msgid "slideshow" msgstr "影像輪播" #. Print button -#: ../src/gui/gtk.c:1192 ../src/libs/print_settings.c:2885 +#: ../src/gui/gtk.c:1270 ../src/libs/print_settings.c:2885 msgid "print" msgstr "列印" #. register ctrl-q to quit: -#: ../src/gui/gtk.c:1198 +#: ../src/gui/gtk.c:1276 msgid "quit" msgstr "關閉" #. Full-screen accelerator (no ESC handler here to enable quit-slideshow using ESC) -#: ../src/gui/gtk.c:1201 +#: ../src/gui/gtk.c:1279 msgid "fullscreen" msgstr "全螢幕" -#: ../src/gui/gtk.c:1205 +#: ../src/gui/gtk.c:1283 msgid "collapsing controls" msgstr "版面收合控制" #. specific top/bottom toggles -#: ../src/gui/gtk.c:1207 +#: ../src/gui/gtk.c:1285 msgid "header" msgstr "標題列" -#: ../src/gui/gtk.c:1208 +#: ../src/gui/gtk.c:1286 msgid "filmstrip and timeline" msgstr "「幻燈片」和「時間軸」模組" -#: ../src/gui/gtk.c:1209 +#: ../src/gui/gtk.c:1287 msgid "top toolbar" msgstr "上方工具列" -#: ../src/gui/gtk.c:1210 +#: ../src/gui/gtk.c:1288 msgid "bottom toolbar" msgstr "下方工具列" -#: ../src/gui/gtk.c:1211 +#: ../src/gui/gtk.c:1289 msgid "all top" msgstr "所有上方版面" -#: ../src/gui/gtk.c:1212 +#: ../src/gui/gtk.c:1290 msgid "all bottom" msgstr "所有下方版面" -#: ../src/gui/gtk.c:1214 +#: ../src/gui/gtk.c:1292 msgid "toggle tooltip visibility" msgstr "切換工具提示是否顯示" -#: ../src/gui/gtk.c:1215 +#: ../src/gui/gtk.c:1293 msgid "reinitialise input devices" msgstr "重新初始化輸入裝置" -#: ../src/gui/gtk.c:1253 +#: ../src/gui/gtk.c:1331 msgid "toggle focus-peaking mode" msgstr "切換對焦峰值模式" #. toggle focus peaking everywhere -#: ../src/gui/gtk.c:1258 +#: ../src/gui/gtk.c:1336 msgid "toggle focus peaking" msgstr "切換對焦峰值" -#: ../src/gui/gtk.c:1594 ../src/gui/gtk.c:3143 ../src/gui/gtk.c:3148 -#: ../src/gui/gtk.c:3153 ../src/gui/gtk.c:3158 +#: ../src/gui/gtk.c:1654 ../src/gui/gtk.c:3189 ../src/gui/gtk.c:3194 +#: ../src/gui/gtk.c:3199 ../src/gui/gtk.c:3204 msgid "tabs" msgstr "選項" -#: ../src/gui/gtk.c:2535 -msgid "_yes" -msgstr "是(_Y)" - -#: ../src/gui/gtk.c:2536 -msgid "_no" -msgstr "否(_N)" - #. ask the user if darktable.org may be accessed -#: ../src/gui/gtk.c:2647 +#: ../src/gui/gtk.c:2707 msgid "access the online user manual?" msgstr "是否要查看線上使用手冊?" -#: ../src/gui/gtk.c:2648 +#: ../src/gui/gtk.c:2708 #, c-format msgid "do you want to access `%s'?" msgstr "是否要存取「%s」?" -#: ../src/gui/gtk.c:2717 -msgid "help url opened in web browser" -msgstr "在網頁瀏覽器中開啟説明網址" - -#: ../src/gui/gtk.c:2721 -msgid "error while opening help url in web browser" -msgstr "錯誤:無法在網頁瀏覽器開啟説明網址" - -#: ../src/gui/gtk.c:2732 +#: ../src/gui/gtk.c:2778 msgid "there is no help available for this element" msgstr "沒有可用的説明" #. font name can only use period as decimal separator #. but printf format strings use comma for some locales, so replace comma with period -#: ../src/gui/gtk.c:2752 +#: ../src/gui/gtk.c:2798 ../src/libs/metadata_view.c:762 #, c-format msgid "%.1f" msgstr "%.1f" -#: ../src/gui/gtk.c:2754 +#: ../src/gui/gtk.c:2800 #, c-format msgid "Sans %s" msgstr "無襯線字體「%s」" -#: ../src/gui/gtk.c:3048 +#: ../src/gui/gtk.c:3094 msgid "does not contain pages" msgstr "沒有任何頁面" -#: ../src/gui/gtk.c:3265 +#: ../src/gui/gtk.c:3313 #, c-format msgid "never show more than %d lines" msgstr "顯示上限為 %d 行" -#: ../src/gui/gtkentry.c:172 +#: ../src/gui/gtkentry.c:173 msgid "$(ROLL.NAME) - roll of the input image" msgstr "$(ROLL.NAME) - 匯入影像的底片卷名稱" -#: ../src/gui/gtkentry.c:173 +#: ../src/gui/gtkentry.c:174 msgid "$(FILE.FOLDER) - folder containing the input image" msgstr "$(FILE.FOLDER) - 匯入影像的資料夾" -#: ../src/gui/gtkentry.c:174 +#: ../src/gui/gtkentry.c:175 msgid "$(FILE.NAME) - basename of the input image" msgstr "$(FILE.NAME) - 匯入影像的名稱" -#: ../src/gui/gtkentry.c:175 +#: ../src/gui/gtkentry.c:176 msgid "$(FILE.EXTENSION) - extension of the input image" msgstr "$(FILE.EXTENSION) - 匯入影像的副檔名" -#: ../src/gui/gtkentry.c:176 +#: ../src/gui/gtkentry.c:177 msgid "$(VERSION) - duplicate version" msgstr "$(VERSION) - 複本版本" -#: ../src/gui/gtkentry.c:177 +#: ../src/gui/gtkentry.c:178 msgid "" "$(VERSION.IF_MULTI) - same as $(VERSION) but null string if only one version " "exists" msgstr "$(VERSION.IF_MULTI) - 第二個複本版本編號,如果只有一個編號則為空白" -#: ../src/gui/gtkentry.c:178 +#: ../src/gui/gtkentry.c:179 msgid "$(VERSION.NAME) - version name from metadata" msgstr "$(VERSION.NAME) - 詮釋資料中的版本編號" -#: ../src/gui/gtkentry.c:179 +#: ../src/gui/gtkentry.c:180 msgid "$(JOBCODE) - job code for import" msgstr "$(JOBCODE) - 匯入工作的名稱" -#: ../src/gui/gtkentry.c:180 +#: ../src/gui/gtkentry.c:181 msgid "$(SEQUENCE) - sequence number" msgstr "$(SEQUENCE) - 序號" -#: ../src/gui/gtkentry.c:181 +#: ../src/gui/gtkentry.c:182 msgid "$(WIDTH.MAX) - maximum image export width" msgstr "$(WIDTH.MAX) - 影像匯出的最大寬度" -#: ../src/gui/gtkentry.c:182 +#: ../src/gui/gtkentry.c:183 msgid "$(WIDTH.SENSOR) - image sensor width" msgstr "$(WIDTH.SENSOR) - 感光元件的寬度" -#: ../src/gui/gtkentry.c:183 +#: ../src/gui/gtkentry.c:184 msgid "$(WIDTH.RAW) - RAW image width" msgstr "$(WIDTH.RAW) - RAW 檔的影像寬度" -#: ../src/gui/gtkentry.c:184 +#: ../src/gui/gtkentry.c:185 msgid "$(WIDTH.CROP) - image width after crop" msgstr "$(WIDTH.CROP) - 裁切後的影像寬度" -#: ../src/gui/gtkentry.c:185 +#: ../src/gui/gtkentry.c:186 msgid "$(WIDTH.EXPORT) - exported image width" msgstr "$(WIDTH.EXPORT) - 匯出影像的寬度" -#: ../src/gui/gtkentry.c:186 +#: ../src/gui/gtkentry.c:187 msgid "$(HEIGHT.MAX) - maximum image export height" msgstr "$(HEIGHT.MAX) - 影像匯出的最大高度" -#: ../src/gui/gtkentry.c:187 +#: ../src/gui/gtkentry.c:188 msgid "$(HEIGHT.SENSOR) - image sensor height" msgstr "$(HEIGHT.SENSOR) - 感光元件的高度" -#: ../src/gui/gtkentry.c:188 +#: ../src/gui/gtkentry.c:189 msgid "$(HEIGHT.RAW) - RAW image height" msgstr "$(HEIGHT.RAW) - RAW 檔的影像高度" -#: ../src/gui/gtkentry.c:189 +#: ../src/gui/gtkentry.c:190 msgid "$(HEIGHT.CROP) - image height after crop" msgstr "$(HEIGHT.CROP) - 裁切後的影像高度" -#: ../src/gui/gtkentry.c:190 +#: ../src/gui/gtkentry.c:191 msgid "$(HEIGHT.EXPORT) - exported image height" msgstr "$(HEIGHT.EXPORT) - 匯出的影像高度" -#: ../src/gui/gtkentry.c:191 +#: ../src/gui/gtkentry.c:192 msgid "$(YEAR) - year" msgstr "$(YEAR) - 年" -#: ../src/gui/gtkentry.c:192 +#: ../src/gui/gtkentry.c:193 msgid "$(YEAR.SHORT) - year without century" msgstr "$(YEAR.SHORT) - 沒有標示世紀的年份" -#: ../src/gui/gtkentry.c:193 +#: ../src/gui/gtkentry.c:194 msgid "$(MONTH) - month" msgstr "$(MONTH) - 月" -#: ../src/gui/gtkentry.c:194 +#: ../src/gui/gtkentry.c:195 msgid "$(MONTH.SHORT) - abbreviated month name according to the current locale" msgstr "$(MONTH.SHORT) - 目前使用語系的月份縮寫" -#: ../src/gui/gtkentry.c:195 +#: ../src/gui/gtkentry.c:196 msgid "$(MONTH.LONG) - full month name according to the current locale" msgstr "$(MONTH.LONG) - 目前使用語系的完整月份名稱" -#: ../src/gui/gtkentry.c:196 +#: ../src/gui/gtkentry.c:197 msgid "$(DAY) - day" msgstr "$(DAY) - 日" -#: ../src/gui/gtkentry.c:197 +#: ../src/gui/gtkentry.c:198 msgid "$(HOUR) - hour" msgstr "$(HOUR) - 時" -#: ../src/gui/gtkentry.c:198 +#: ../src/gui/gtkentry.c:199 msgid "$(HOUR.AMPM) - hour, 12-hour clock" msgstr "$(HOUR.AMPM) - 12 時制的小時數" -#: ../src/gui/gtkentry.c:199 +#: ../src/gui/gtkentry.c:200 msgid "$(MINUTE) - minute" msgstr "$(MINUTE) - 分" -#: ../src/gui/gtkentry.c:200 +#: ../src/gui/gtkentry.c:201 msgid "$(SECOND) - second" msgstr "$(SECOND) - 秒" -#: ../src/gui/gtkentry.c:201 +#: ../src/gui/gtkentry.c:202 msgid "$(MSEC) - millisecond" msgstr "$(MSEC) - 毫秒" -#: ../src/gui/gtkentry.c:202 +#: ../src/gui/gtkentry.c:203 msgid "$(EXIF.YEAR) - EXIF year" msgstr "$(EXIF.YEAR) - EXIF 年份" -#: ../src/gui/gtkentry.c:203 +#: ../src/gui/gtkentry.c:204 msgid "$(EXIF.YEAR.SHORT) - EXIF year without century" msgstr "$(EXIF.YEAR.SHORT) - EXIF 沒有標示世紀的年份" -#: ../src/gui/gtkentry.c:204 +#: ../src/gui/gtkentry.c:205 msgid "$(EXIF.MONTH) - EXIF month" msgstr "$(EXIF.MONTH) - EXIF 月" -#: ../src/gui/gtkentry.c:205 +#: ../src/gui/gtkentry.c:206 msgid "" "$(EXIF.MONTH.SHORT) - abbreviated EXIF month name according to the current " "locale" msgstr "$(EXIF.MONTH.SHORT) - 目前使用語系的 EXIF 縮寫月份名稱" -#: ../src/gui/gtkentry.c:206 +#: ../src/gui/gtkentry.c:207 msgid "" "$(EXIF.MONTH.LONG) - full EXIF month name according to the current locale" msgstr "$(EXIF.MONTH.LONG) - 目前使用語系的 EXIF 完整月份名稱" -#: ../src/gui/gtkentry.c:207 +#: ../src/gui/gtkentry.c:208 msgid "$(EXIF.DAY) - EXIF day" msgstr "$(EXIF.DAY) - EXIF 日" -#: ../src/gui/gtkentry.c:208 +#: ../src/gui/gtkentry.c:209 msgid "$(EXIF.HOUR) - EXIF hour" msgstr "$(EXIF.HOUR) - EXIF 時" -#: ../src/gui/gtkentry.c:209 +#: ../src/gui/gtkentry.c:210 msgid "$(EXIF.HOUR.AMPM) - EXIF hour, 12-hour clock" msgstr "$(EXIF.HOUR.AMPM) - EXIF 12 時制的小時數" -#: ../src/gui/gtkentry.c:210 +#: ../src/gui/gtkentry.c:211 msgid "$(EXIF.MINUTE) - EXIF minute" msgstr "$(EXIF.MINUTE) - EXIF 分" -#: ../src/gui/gtkentry.c:211 +#: ../src/gui/gtkentry.c:212 msgid "$(EXIF.SECOND) - EXIF second" msgstr "$(EXIF.SECOND) - EXIF 秒" -#: ../src/gui/gtkentry.c:212 +#: ../src/gui/gtkentry.c:213 msgid "$(EXIF.MSEC) - EXIF millisecond" msgstr "$(EXIF.MSEC) - EXIF 毫秒" -#: ../src/gui/gtkentry.c:213 +#: ../src/gui/gtkentry.c:214 msgid "$(EXIF.ISO) - ISO value" msgstr "$(EXIF.ISO) - 感光度 ISO 值" -#: ../src/gui/gtkentry.c:214 +#: ../src/gui/gtkentry.c:215 msgid "$(EXIF.EXPOSURE) - EXIF exposure" msgstr "$(EXIF.EXPOSURE) - EXIF 曝光" -#: ../src/gui/gtkentry.c:215 +#: ../src/gui/gtkentry.c:216 msgid "$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias" msgstr "$(EXIF.EXPOSURE.BIAS) - EXIF 曝光補償" -#: ../src/gui/gtkentry.c:216 +#: ../src/gui/gtkentry.c:217 msgid "$(EXIF.APERTURE) - EXIF aperture" msgstr "$(EXIF.APERTURE) - EXIF 光圈" -#: ../src/gui/gtkentry.c:217 +#: ../src/gui/gtkentry.c:218 +msgid "$(EXIF.CROP_FACTOR) - EXIF crop factor" +msgstr "$(EXIF.CROP_FACTOR) - EXIF 裁切係數" + +#: ../src/gui/gtkentry.c:219 msgid "$(EXIF.FOCAL.LENGTH) - EXIF focal length" msgstr "$(EXIF.FOCAL.LENGTH) - EXIF 鏡頭焦距" -#: ../src/gui/gtkentry.c:218 +#: ../src/gui/gtkentry.c:220 +msgid "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent focal length" +msgstr "$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm 等校焦長" + +#: ../src/gui/gtkentry.c:221 msgid "$(EXIF.FOCUS.DISTANCE) - EXIF focal distance" msgstr "$(EXIF.FOCUS.DISTANCE) - EXIF 對焦距離" -#: ../src/gui/gtkentry.c:219 +#: ../src/gui/gtkentry.c:222 msgid "$(EXIF.MAKER) - camera maker" msgstr "$(EXIF.MAKER) - 相機品牌" -#: ../src/gui/gtkentry.c:220 +#: ../src/gui/gtkentry.c:223 msgid "$(EXIF.MODEL) - camera model" msgstr "$(EXIF.MODEL) - 相機型號" -#: ../src/gui/gtkentry.c:221 +#: ../src/gui/gtkentry.c:224 msgid "$(EXIF.LENS) - lens" msgstr "$(EXIF.LENS) - EXIF 鏡頭型號" -#: ../src/gui/gtkentry.c:222 +#: ../src/gui/gtkentry.c:225 msgid "$(LONGITUDE) - longitude" msgstr "$(LONGITUDE) - 經度" -#: ../src/gui/gtkentry.c:223 +#: ../src/gui/gtkentry.c:226 msgid "$(LATITUDE) - latitude" msgstr "$(LATITUDE) - 緯度" -#: ../src/gui/gtkentry.c:224 +#: ../src/gui/gtkentry.c:227 msgid "$(ELEVATION) - elevation" msgstr "$(ELEVATION) - 海拔" -#: ../src/gui/gtkentry.c:225 +#: ../src/gui/gtkentry.c:228 msgid "$(STARS) - star rating as number (-1 for rejected)" msgstr "$(STARS) - 星級評分(-1 表示不合格)" -#: ../src/gui/gtkentry.c:226 +#: ../src/gui/gtkentry.c:229 msgid "$(RATING.ICONS) - star/reject rating in icon form" msgstr "$(RATING.ICONS) - 評分圖示" -#: ../src/gui/gtkentry.c:227 +#: ../src/gui/gtkentry.c:230 msgid "$(LABELS) - color labels as text" msgstr "$(LABELS) - 文字形式的色彩標籤" -#: ../src/gui/gtkentry.c:228 +#: ../src/gui/gtkentry.c:231 msgid "$(LABELS.ICONS) - color labels as icons" msgstr "$(LABELS.ICONS) - 圖示形式的色彩標籤" -#: ../src/gui/gtkentry.c:229 +#: ../src/gui/gtkentry.c:232 msgid "$(ID) - image ID" msgstr "$(ID) - 影像識別碼" -#: ../src/gui/gtkentry.c:230 +#: ../src/gui/gtkentry.c:233 msgid "$(TITLE) - title from metadata" msgstr "$(TITLE)- 詮釋資料中的標題" -#: ../src/gui/gtkentry.c:231 +#: ../src/gui/gtkentry.c:234 msgid "$(DESCRIPTION) - description from metadata" msgstr "$(DESCRIPTION) - 詮釋資料中的描述" -#: ../src/gui/gtkentry.c:232 +#: ../src/gui/gtkentry.c:235 msgid "$(CREATOR) - creator from metadata" msgstr "$(CREATOR) - 詮釋資料中的創作者" -#: ../src/gui/gtkentry.c:233 +#: ../src/gui/gtkentry.c:236 msgid "$(PUBLISHER) - publisher from metadata" msgstr "$(PUBLISHER) - 詮釋資料中的發布者" -#: ../src/gui/gtkentry.c:234 +#: ../src/gui/gtkentry.c:237 msgid "$(RIGHTS) - rights from metadata" msgstr "$(RIGHTS) - 詮釋資料中的版權" -#: ../src/gui/gtkentry.c:235 +#: ../src/gui/gtkentry.c:238 msgid "$(USERNAME) - login name" msgstr "$(USERNAME) - 使用者名稱" -#: ../src/gui/gtkentry.c:236 +#: ../src/gui/gtkentry.c:239 msgid "$(FOLDER.PICTURES) - pictures folder" msgstr "$(FOLDER.PICTURES) - 影像資料夾" -#: ../src/gui/gtkentry.c:237 +#: ../src/gui/gtkentry.c:240 msgid "$(FOLDER.HOME) - home folder" msgstr "$(FOLDER.HOME) - 家目錄" -#: ../src/gui/gtkentry.c:238 +#: ../src/gui/gtkentry.c:241 msgid "$(FOLDER.DESKTOP) - desktop folder" msgstr "$(FOLDER.DESKTOP) - 桌面資料夾" -#: ../src/gui/gtkentry.c:239 +#: ../src/gui/gtkentry.c:242 msgid "$(OPENCL.ACTIVATED) - whether OpenCL is activated" msgstr "$(OPENCL.ACTIVATED) - OpenCL 是否啟用" -#: ../src/gui/gtkentry.c:240 +#: ../src/gui/gtkentry.c:243 msgid "$(CATEGORY0(category)) - subtag of level 0 in hierarchical tags" msgstr "$(CATEGORY0(category)) - 樹狀標籤裡級別為 0 的子標籤" -#: ../src/gui/gtkentry.c:241 +#: ../src/gui/gtkentry.c:244 msgid "$(TAGS) - tags as set in metadata settings" msgstr "$(TAGS) - 詮釋資料中的標籤" -#: ../src/gui/gtkentry.c:242 +#: ../src/gui/gtkentry.c:245 msgid "$(DARKTABLE.NAME) - darktable name" msgstr "$(DARKTABLE.NAME) - darktable 名稱" -#: ../src/gui/gtkentry.c:243 +#: ../src/gui/gtkentry.c:246 msgid "$(DARKTABLE.VERSION) - current darktable version" msgstr "$(DARKTABLE.VERSION) - 目前的 darktable 版本" -#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:255 +#: ../src/gui/guides.c:30 ../src/iop/colorcorrection.c:248 msgid "grid" msgstr "格線" @@ -10567,11 +11028,11 @@ msgstr "全體參考線設定" #: ../src/gui/guides.c:710 ../src/gui/guides.c:719 ../src/gui/guides.c:727 -#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2648 +#: ../src/gui/guides.c:740 ../src/views/darkroom.c:2494 msgid "guide lines" msgstr "參考線" -#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2092 +#: ../src/gui/guides.c:710 ../src/iop/clipping.c:2145 msgid "flip" msgstr "翻轉" @@ -10587,8 +11048,8 @@ msgid "vertically" msgstr "垂直翻轉" -#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6285 ../src/iop/clipping.c:2096 -#: ../src/iop/colorbalance.c:1917 +#: ../src/gui/guides.c:715 ../src/iop/ashift.c:6232 ../src/iop/clipping.c:2149 +#: ../src/iop/colorbalance.c:1892 msgid "both" msgstr "全部" @@ -10634,26 +11095,26 @@ msgid "select parts to paste" msgstr "選擇要貼上的項目" -#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:517 +#: ../src/gui/hist_dialog.c:224 ../src/gui/styles_dialog.c:524 msgid "select _all" msgstr "選取全部(_A)" -#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:518 +#: ../src/gui/hist_dialog.c:225 ../src/gui/styles_dialog.c:525 msgid "select _none" msgstr "取消選取(_N)" -#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:593 -#: ../src/gui/styles_dialog.c:615 +#: ../src/gui/hist_dialog.c:261 ../src/gui/styles_dialog.c:605 +#: ../src/gui/styles_dialog.c:627 msgid "include" msgstr "包含" -#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:669 -#: ../src/gui/styles_dialog.c:675 +#: ../src/gui/hist_dialog.c:289 ../src/gui/styles_dialog.c:681 +#: ../src/gui/styles_dialog.c:687 msgid "item" msgstr "項目" -#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:682 -#: ../src/gui/styles_dialog.c:691 +#: ../src/gui/hist_dialog.c:295 ../src/gui/styles_dialog.c:694 +#: ../src/gui/styles_dialog.c:703 msgid "mask" msgstr "遮罩" @@ -10705,11 +11166,11 @@ msgid "interface language" msgstr "介面語言" -#: ../src/gui/preferences.c:289 +#: ../src/gui/preferences.c:290 msgid "double-click to reset to the system language" msgstr "雙擊以重設為系統語言" -#: ../src/gui/preferences.c:291 +#: ../src/gui/preferences.c:292 msgid "" "set the language of the user interface. the system default is marked with an " "* (needs a restart)" @@ -10717,27 +11178,27 @@ "設置使用者介面的語言,系統預設值標示為 *\n" "更改設定後需要重新啟動程式才會生效" -#: ../src/gui/preferences.c:300 +#: ../src/gui/preferences.c:301 msgid "theme" msgstr "佈景主題" -#: ../src/gui/preferences.c:328 +#: ../src/gui/preferences.c:331 msgid "set the theme for the user interface" msgstr "設置使用者介面的主題" -#: ../src/gui/preferences.c:341 ../src/gui/preferences.c:348 +#: ../src/gui/preferences.c:344 ../src/gui/preferences.c:351 msgid "use system font size" msgstr "使用系統字型大小" -#: ../src/gui/preferences.c:357 ../src/gui/preferences.c:364 +#: ../src/gui/preferences.c:360 ../src/gui/preferences.c:367 msgid "font size in points" msgstr "字型大小(pt)" -#: ../src/gui/preferences.c:369 +#: ../src/gui/preferences.c:372 msgid "GUI controls and text DPI" msgstr "界面和文字解析度" -#: ../src/gui/preferences.c:376 +#: ../src/gui/preferences.c:379 msgid "" "adjust the global GUI resolution to rescale controls, buttons, labels, etc.\n" "increase for a magnified GUI, decrease to fit more content in window.\n" @@ -10752,81 +11213,65 @@ "(需要重新啟動以讓設定生效)" #. checkbox to allow user to modify theme with user.css -#: ../src/gui/preferences.c:385 +#: ../src/gui/preferences.c:388 msgid "modify selected theme with CSS tweaks below" msgstr "使用下方的 CSS 調整目前選取的佈景主題" -#: ../src/gui/preferences.c:393 +#: ../src/gui/preferences.c:396 msgid "modify theme with CSS keyed below (saved to user.css)" msgstr "" "修改主題,並在下面輸入 CSS\n" "會儲存到 C:\\Users\\username\\AppData\\Local\\darktable\\user.css" -#: ../src/gui/preferences.c:415 +#: ../src/gui/preferences.c:418 msgctxt "usercss" msgid "save CSS and apply" msgstr "保存 CSS 並套用" -#: ../src/gui/preferences.c:420 +#: ../src/gui/preferences.c:423 msgid "click to save and apply the CSS tweaks entered in this editor" msgstr "儲存並套用編輯器中調整的 CSS 代碼" -#: ../src/gui/preferences.c:422 +#: ../src/gui/preferences.c:425 msgid "open help page for CSS tweaks" msgstr "開啟調整 CSS 的說明頁面" #. load default text with some pointers -#: ../src/gui/preferences.c:443 +#: ../src/gui/preferences.c:446 msgid "ERROR Loading user.css" msgstr "" "⚠️ 錯誤 ⚠️\n" "載入使用者自訂 CSS 時出錯" #. load default text -#: ../src/gui/preferences.c:452 +#: ../src/gui/preferences.c:455 msgid "Enter CSS theme tweaks here" msgstr "在此處輸入 CSS 來調整目前選取的佈景主題" -#: ../src/gui/preferences.c:488 +#: ../src/gui/preferences.c:491 msgid "darktable preferences" msgstr "darktable 偏好設定" -#: ../src/gui/preferences.c:533 -msgid "processing" -msgstr "運算方法" - -#: ../src/gui/preferences.c:534 -msgid "security" -msgstr "檔案安全" - -#: ../src/gui/preferences.c:535 -msgid "storage" -msgstr "資料儲存" - -#: ../src/gui/preferences.c:536 -msgid "miscellaneous" -msgstr "其他設定" - -#: ../src/gui/preferences.c:561 +#: ../src/gui/preferences.c:559 msgid "darktable needs to be restarted for settings to take effect" msgstr "需要重新啟動 darktable 才能讓變更的設定生效" #. exif -#: ../src/gui/preferences.c:820 ../src/gui/presets.c:644 -#: ../src/libs/metadata_view.c:137 +#: ../src/gui/preferences.c:818 ../src/gui/presets.c:647 +#: ../src/libs/metadata_view.c:139 msgid "model" msgstr "相機型號" -#: ../src/gui/preferences.c:824 ../src/gui/presets.c:652 -#: ../src/libs/metadata_view.c:138 +#: ../src/gui/preferences.c:822 ../src/gui/presets.c:655 +#: ../src/libs/metadata_view.c:140 msgid "maker" msgstr "相機品牌" -#: ../src/gui/preferences.c:861 +#: ../src/gui/preferences.c:859 msgid "search presets list" msgstr "搜尋預設集" -#: ../src/gui/preferences.c:862 +#: ../src/gui/preferences.c:860 msgid "" "incrementally search the list of presets\n" "press up or down keys to cycle through matches" @@ -10834,70 +11279,70 @@ "搜尋預設集清單,可局部即時顯示結果\n" "使用上下鍵從符合的預設集名稱中選擇" -#: ../src/gui/preferences.c:868 +#: ../src/gui/preferences.c:866 msgctxt "preferences" msgid "import..." msgstr "匯入…" -#: ../src/gui/preferences.c:872 +#: ../src/gui/preferences.c:870 msgctxt "preferences" msgid "export..." msgstr "匯出…" -#: ../src/gui/preferences.c:1031 +#: ../src/gui/preferences.c:1030 #, c-format msgid "failed to import preset %s" msgstr "無法匯入預設集「%s」" -#: ../src/gui/preferences.c:1042 +#: ../src/gui/preferences.c:1041 msgid "select preset(s) to import" msgstr "選擇要匯入的預設集" -#: ../src/gui/preferences.c:1043 ../src/libs/collect.c:408 -#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:929 -#: ../src/libs/import.c:1506 ../src/libs/import.c:1610 ../src/libs/styles.c:527 +#: ../src/gui/preferences.c:1042 ../src/libs/collect.c:425 +#: ../src/libs/copy_history.c:115 ../src/libs/geotagging.c:930 +#: ../src/libs/import.c:1515 ../src/libs/import.c:1619 ../src/libs/styles.c:529 msgid "_open" msgstr "開啟(_O)" -#: ../src/gui/preferences.c:1052 +#: ../src/gui/preferences.c:1051 msgid "darktable preset files" msgstr "darktable 預設集檔案" -#: ../src/gui/preferences.c:1057 ../src/iop/lut3d.c:1577 -#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:945 -#: ../src/libs/styles.c:541 +#: ../src/gui/preferences.c:1056 ../src/iop/lut3d.c:1591 +#: ../src/libs/copy_history.c:154 ../src/libs/geotagging.c:946 +#: ../src/libs/styles.c:543 msgid "all files" msgstr "全部檔案" -#: ../src/gui/presets.c:59 +#: ../src/gui/presets.c:61 msgid "non-raw" msgstr "非 RAW 的檔案" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:332 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:336 msgid "raw" msgstr "RAW 原始檔" -#: ../src/gui/presets.c:59 ../src/libs/metadata_view.c:333 +#: ../src/gui/presets.c:61 ../src/libs/metadata_view.c:337 msgid "HDR" msgstr "高動態範圍影像" -#: ../src/gui/presets.c:59 ../src/iop/monochrome.c:77 ../src/libs/image.c:608 -#: ../src/libs/metadata_view.c:339 +#: ../src/gui/presets.c:61 ../src/iop/monochrome.c:77 ../src/libs/image.c:679 +#: ../src/libs/metadata_view.c:343 msgid "monochrome" msgstr "黑白" -#: ../src/gui/presets.c:151 +#: ../src/gui/presets.c:153 #, c-format msgid "preset `%s' is write-protected, can't delete!" msgstr "預設集「%s」有寫入保護,無法刪除" -#: ../src/gui/presets.c:157 ../src/gui/presets.c:461 ../src/libs/lib.c:238 -#: ../src/libs/modulegroups.c:3701 +#: ../src/gui/presets.c:159 ../src/gui/presets.c:463 ../src/libs/lib.c:238 +#: ../src/libs/modulegroups.c:3703 msgid "delete preset?" msgstr "是否要刪除預設集?" -#: ../src/gui/presets.c:158 ../src/gui/presets.c:462 ../src/libs/lib.c:239 -#: ../src/libs/modulegroups.c:3702 +#: ../src/gui/presets.c:160 ../src/gui/presets.c:464 ../src/libs/lib.c:239 +#: ../src/libs/modulegroups.c:3704 #, c-format msgid "do you really want to delete the preset `%s'?" msgstr "是否要刪除預設集「%s」?" @@ -10908,25 +11353,25 @@ #. clang-format on #. create a shortcut for the new entry #. then show edit dialog -#: ../src/gui/presets.c:200 ../src/gui/presets.c:1035 ../src/gui/presets.c:1038 -#: ../src/gui/presets.c:1041 ../src/libs/lib.c:188 ../src/libs/lib.c:205 +#: ../src/gui/presets.c:202 ../src/gui/presets.c:1022 ../src/gui/presets.c:1025 +#: ../src/gui/presets.c:1028 ../src/libs/lib.c:188 ../src/libs/lib.c:205 #: ../src/libs/lib.c:213 ../src/libs/lib.c:216 msgid "new preset" msgstr "新建預設集" -#: ../src/gui/presets.c:207 +#: ../src/gui/presets.c:209 msgid "please give preset a name" msgstr "輸入預設集的名稱" -#: ../src/gui/presets.c:212 +#: ../src/gui/presets.c:214 msgid "unnamed preset" msgstr "未命名的預設集" -#: ../src/gui/presets.c:241 +#: ../src/gui/presets.c:243 msgid "overwrite preset?" msgstr "是否要覆寫預設集?" -#: ../src/gui/presets.c:242 +#: ../src/gui/presets.c:244 #, c-format msgid "" "preset `%s' already exists.\n" @@ -10935,77 +11380,82 @@ "預設集「%s」已存在\n" "是否要取代既有設定?" -#: ../src/gui/presets.c:420 ../src/imageio/storage/disk.c:123 -#: ../src/imageio/storage/gallery.c:110 ../src/imageio/storage/latex.c:109 +#: ../src/gui/presets.c:422 ../src/imageio/storage/disk.c:198 +#: ../src/imageio/storage/gallery.c:150 ../src/imageio/storage/latex.c:146 msgid "_select as output destination" msgstr "選擇輸出資料夾(_S)" -#: ../src/gui/presets.c:429 +#: ../src/gui/presets.c:431 #, c-format msgid "preset %s was successfully exported" msgstr "預設集「%s」已成功匯出" -#: ../src/gui/presets.c:557 +#: ../src/gui/presets.c:559 #, c-format msgid "edit `%s' for module `%s'" msgstr "編輯模組「%2$s」的預設集「%1$s」" -#: ../src/gui/presets.c:561 +#: ../src/gui/presets.c:563 msgid "_export..." msgstr "匯出(_E)" -#: ../src/gui/presets.c:585 +#: ../src/gui/presets.c:564 ../src/libs/tagging.c:1489 +#: ../src/libs/tagging.c:1580 +msgid "_delete" +msgstr "刪除(_D)" + +#: ../src/gui/presets.c:588 msgid "name of the preset" msgstr "預設集的名稱" -#: ../src/gui/presets.c:594 +#: ../src/gui/presets.c:597 msgid "description or further information" msgstr "預設集描述或說明" -#: ../src/gui/presets.c:598 +#: ../src/gui/presets.c:601 msgid "reset all module parameters to their default values" msgstr "重設所有模組的參數回預設值" -#: ../src/gui/presets.c:601 +#: ../src/gui/presets.c:604 msgid "" "the parameters will be reset to their default values, which may be " "automatically set based on image metadata" msgstr "參數會被重設回預設值,可能因影像詮釋資料不同而自動變更" -#: ../src/gui/presets.c:607 +#: ../src/gui/presets.c:610 msgid "auto apply this preset to matching images" msgstr "自動套用這個預設集在符合的影像上" -#: ../src/gui/presets.c:611 +#: ../src/gui/presets.c:614 msgid "only show this preset for matching images" msgstr "在符合的影像上只顯示這個預設集" -#: ../src/gui/presets.c:613 +#: ../src/gui/presets.c:616 msgid "" "be very careful with this option. this might be the last time you see your " "preset." msgstr "啟用此選項時要非常小心,這可能是最後一次看到這個模組的預設集" -#: ../src/gui/presets.c:643 +#: ../src/gui/presets.c:646 #, no-c-format msgid "string to match model (use % as wildcard)" msgstr "比對符合的相機型號(使用 % 作為萬用字元)" -#: ../src/gui/presets.c:651 +#: ../src/gui/presets.c:654 #, no-c-format msgid "string to match maker (use % as wildcard)" msgstr "比對符合的相機品牌(使用 % 作為萬用字元)" -#: ../src/gui/presets.c:659 +#: ../src/gui/presets.c:662 #, no-c-format msgid "string to match lens (use % as wildcard)" msgstr "比對符合的鏡頭型號(使用 % 作為萬用字元)" -#: ../src/gui/presets.c:669 +#: ../src/gui/presets.c:672 msgid "minimum ISO value" msgstr "最低感光度值(ISO)" -#: ../src/gui/presets.c:675 +#: ../src/gui/presets.c:678 msgid "" "maximum ISO value\n" "if left blank, it is equivalent to no upper limit" @@ -11013,70 +11463,70 @@ "最高感光度值(ISO)\n" "留空代表不設上限" -#: ../src/gui/presets.c:688 +#: ../src/gui/presets.c:691 msgid "minimum exposure time" msgstr "最短曝光時間" -#: ../src/gui/presets.c:689 +#: ../src/gui/presets.c:692 msgid "maximum exposure time" msgstr "最長曝光時間" -#: ../src/gui/presets.c:705 +#: ../src/gui/presets.c:708 msgid "minimum aperture value" msgstr "最大光圈(最小數值)" -#: ../src/gui/presets.c:706 +#: ../src/gui/presets.c:709 msgid "maximum aperture value" msgstr "最小光圈(最大數值)" -#: ../src/gui/presets.c:724 +#: ../src/gui/presets.c:727 msgid "minimum focal length" msgstr "最短鏡頭焦距" -#: ../src/gui/presets.c:725 +#: ../src/gui/presets.c:728 msgid "maximum focal length" msgstr "最長鏡頭焦距" #. raw/hdr/ldr/mono/color -#: ../src/gui/presets.c:733 ../src/imageio/format/j2k.c:650 +#: ../src/gui/presets.c:736 msgid "format" msgstr "格式" -#: ../src/gui/presets.c:738 +#: ../src/gui/presets.c:741 msgid "select image types you want this preset to be available for" msgstr "勾選這個預設集適用的影像類型" -#: ../src/gui/presets.c:751 ../src/libs/filtering.c:1201 +#: ../src/gui/presets.c:754 ../src/libs/filtering.c:1263 msgid "and" msgstr "以及" -#: ../src/gui/presets.c:795 ../src/gui/presets.c:847 +#: ../src/gui/presets.c:798 ../src/gui/presets.c:850 msgid "∞" msgstr "∞" -#: ../src/gui/presets.c:979 +#: ../src/gui/presets.c:966 #, c-format msgid "preset `%s' is write-protected! can't edit it!" msgstr "預設集「%s」有寫入保護,無法編輯" -#: ../src/gui/presets.c:1003 ../src/libs/lib.c:158 +#: ../src/gui/presets.c:990 ../src/libs/lib.c:158 msgid "update preset?" msgstr "是否要更新預設集?" -#: ../src/gui/presets.c:1004 ../src/libs/lib.c:159 +#: ../src/gui/presets.c:991 ../src/libs/lib.c:159 #, c-format msgid "do you really want to update the preset `%s'?" msgstr "要更新預設集「%s」嗎?" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(first)" msgstr "(第一個)" -#: ../src/gui/presets.c:1133 +#: ../src/gui/presets.c:1120 msgid "(last)" msgstr "(最後一個)" -#: ../src/gui/presets.c:1165 +#: ../src/gui/presets.c:1152 #, c-format msgid "" "preset %s\n" @@ -11085,63 +11535,63 @@ "預設集「%s」\n" "「%s」" -#: ../src/gui/presets.c:1166 +#: ../src/gui/presets.c:1153 msgid "no presets" msgstr "無預設集" -#: ../src/gui/presets.c:1199 ../src/iop/basecurve.c:528 -#: ../src/iop/basecurve.c:532 ../src/iop/basecurve.c:535 +#: ../src/gui/presets.c:1188 ../src/iop/basecurve.c:575 +#: ../src/iop/basecurve.c:579 ../src/iop/basecurve.c:582 msgid "display-referred default" msgstr "顯示參照流程預設值" -#: ../src/gui/presets.c:1201 ../src/iop/channelmixerrgb.c:332 -#: ../src/iop/channelmixerrgb.c:336 ../src/iop/channelmixerrgb.c:339 -#: ../src/iop/exposure.c:297 ../src/iop/exposure.c:301 -#: ../src/iop/exposure.c:304 ../src/iop/filmicrgb.c:3248 -#: ../src/iop/filmicrgb.c:3252 ../src/iop/filmicrgb.c:3255 -#: ../src/iop/sigmoid.c:134 ../src/iop/sigmoid.c:138 ../src/iop/sigmoid.c:141 +#: ../src/gui/presets.c:1190 ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:400 ../src/iop/channelmixerrgb.c:403 +#: ../src/iop/exposure.c:319 ../src/iop/exposure.c:323 +#: ../src/iop/exposure.c:326 ../src/iop/filmicrgb.c:3311 +#: ../src/iop/filmicrgb.c:3315 ../src/iop/filmicrgb.c:3318 +#: ../src/iop/sigmoid.c:240 ../src/iop/sigmoid.c:243 ../src/iop/sigmoid.c:245 msgid "scene-referred default" msgstr "場景參照流程預設值" -#: ../src/gui/presets.c:1393 ../src/libs/modulegroups.c:3781 -#: ../src/libs/modulegroups.c:3790 +#: ../src/gui/presets.c:1394 ../src/libs/modulegroups.c:3783 +#: ../src/libs/modulegroups.c:3792 msgid "manage module layouts" msgstr "模組布局管理" -#: ../src/gui/presets.c:1402 +#: ../src/gui/presets.c:1403 msgid "manage quick presets" msgstr "勾選要顯示的快速預設集" -#: ../src/gui/presets.c:1586 +#: ../src/gui/presets.c:1587 msgid "manage quick presets list..." msgstr "管理快速預設集列表…" -#: ../src/gui/presets.c:1727 +#: ../src/gui/presets.c:1728 msgid "(default)" msgstr "(預設)" -#: ../src/gui/presets.c:1754 +#: ../src/gui/presets.c:1755 msgid "disabled: wrong module version" msgstr "模組版本錯誤,已停用" -#: ../src/gui/presets.c:1776 ../src/libs/lib.c:551 +#: ../src/gui/presets.c:1777 ../src/libs/lib.c:551 msgid "edit this preset.." msgstr "編輯這個預設集…" -#: ../src/gui/presets.c:1781 ../src/libs/lib.c:555 +#: ../src/gui/presets.c:1782 ../src/libs/lib.c:555 msgid "delete this preset" msgstr "刪除這個預設集" -#: ../src/gui/presets.c:1788 ../src/libs/lib.c:563 +#: ../src/gui/presets.c:1789 ../src/libs/lib.c:563 msgid "store new preset.." msgstr "儲存為新的預設集…" -#: ../src/gui/presets.c:1796 ../src/libs/lib.c:576 +#: ../src/gui/presets.c:1797 ../src/libs/lib.c:576 msgid "update preset" msgstr "更新預設集" #: ../src/gui/styles_dialog.c:221 ../src/libs/styles.c:437 -#: ../src/libs/styles.c:620 +#: ../src/libs/styles.c:622 msgid "overwrite style?" msgstr "是否要覆寫風格檔?" @@ -11167,39 +11617,39 @@ msgid "style %s was successfully saved" msgstr "風格檔「%s」已儲存" -#: ../src/gui/styles_dialog.c:505 +#: ../src/gui/styles_dialog.c:512 msgid "edit style" msgstr "編輯風格檔" -#: ../src/gui/styles_dialog.c:506 +#: ../src/gui/styles_dialog.c:513 msgid "duplicate style" msgstr "複製風格檔" -#: ../src/gui/styles_dialog.c:507 +#: ../src/gui/styles_dialog.c:514 msgid "creates a duplicate of the style before applying changes" msgstr "套用改變前建立一個此風格檔的複本" -#: ../src/gui/styles_dialog.c:511 +#: ../src/gui/styles_dialog.c:518 msgid "create new style" msgstr "建立新的風格檔" -#: ../src/gui/styles_dialog.c:549 +#: ../src/gui/styles_dialog.c:557 msgid "enter a name for the new style" msgstr "輸入新的風格檔名稱" -#: ../src/gui/styles_dialog.c:554 +#: ../src/gui/styles_dialog.c:565 msgid "enter a description for the new style, this description is searchable" msgstr "輸入風格檔的說明,該描述文字可用於搜尋" -#: ../src/gui/styles_dialog.c:593 +#: ../src/gui/styles_dialog.c:605 msgid "keep" msgstr "保留" -#: ../src/gui/styles_dialog.c:820 +#: ../src/gui/styles_dialog.c:832 msgid "can't create style out of unaltered image" msgstr "不能從未改變的影像建立風格檔" -#: ../src/imageio/imageio.c:804 +#: ../src/imageio/imageio.c:816 #, c-format msgid "" "failed to allocate memory for %s, please lower the threads used for export " @@ -11208,89 +11658,114 @@ "⚠️ 錯誤 ⚠️\n" "無法為「%s」分配記憶體,請關閉其他程式或加裝更多記憶體" -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "thumbnail export" msgstr "縮圖匯出" -#: ../src/imageio/imageio.c:806 +#: ../src/imageio/imageio.c:818 msgctxt "noun" msgid "export" msgstr "匯出" -#: ../src/imageio/imageio.c:819 +#: ../src/imageio/imageio.c:831 #, c-format msgid "cannot find the style '%s' to apply during export." msgstr "找不到要在匯出時套用的風格檔「%s」" -#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:536 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/imageio_libraw.c:295 +msgid "" +"<span foreground='red'><b>WARNING</b></span>: camera is not fully supported!" +msgstr "" +"<span foreground='red'><b>⚠️ 警告 ⚠️</b></span>尚未完全支援此相機的 RAW 檔" + +#: ../src/imageio/imageio_libraw.c:297 +#, c-format +msgid "" +"colors for `%s' could be misrepresented,\n" +"and edits might not be compatible with future versions." +msgstr "" +"「%s」的顏色可能解譯錯誤,\n" +"編輯內容也可能與未來版本不相容。" + +#: ../src/imageio/format/avif.c:89 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/pdf.c:80 ../src/imageio/format/png.c:641 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "8 bit" msgstr "8 位元" -#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:93 ../src/imageio/format/jxl.c:567 msgid "10 bit" msgstr "10 位元" -#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:556 +#: ../src/imageio/format/avif.c:97 ../src/imageio/format/jxl.c:567 msgid "12 bit" msgstr "12 位元" -#: ../src/imageio/format/avif.c:431 +#: ../src/imageio/format/avif.c:110 ../src/imageio/format/webp.c:416 +msgid "lossless" +msgstr "無失真壓縮" + +#: ../src/imageio/format/avif.c:112 ../src/imageio/format/webp.c:416 +msgid "lossy" +msgstr "有損壓縮" + +#: ../src/imageio/format/avif.c:463 msgid "invalid AVIF bit depth!" msgstr "無效的 AVIF 位元深度!" -#: ../src/imageio/format/avif.c:694 -msgid "AVIF" -msgstr "AVIF" - #. Bit depth combo box -#: ../src/imageio/format/avif.c:766 ../src/imageio/format/exr.cc:565 -#: ../src/imageio/format/jxl.c:555 ../src/imageio/format/pdf.c:661 -#: ../src/imageio/format/png.c:534 ../src/imageio/format/tiff.c:843 +#: ../src/imageio/format/avif.c:800 ../src/imageio/format/exr.cc:601 +#: ../src/imageio/format/jxl.c:566 ../src/imageio/format/pdf.c:661 +#: ../src/imageio/format/png.c:639 ../src/imageio/format/tiff.c:900 #: ../src/imageio/format/xcf.c:354 msgid "bit depth" msgstr "色彩深度" -#: ../src/imageio/format/avif.c:779 +#: ../src/imageio/format/avif.c:813 msgid "color information stored in an image, higher is better" msgstr "影像中的色彩儲存位元精度,越高越細膩" -#: ../src/imageio/format/avif.c:787 +#. +#. * Color mode combo box +#. +#. shortfile option combo box +#: ../src/imageio/format/avif.c:820 ../src/imageio/format/tiff.c:944 +msgid "B&W as grayscale" +msgstr "灰階" + +#: ../src/imageio/format/avif.c:821 ../src/imageio/format/tiff.c:945 msgid "saving as grayscale will reduce the size for black & white images" msgstr "選擇色彩模式,儲存為灰階檔案可以縮小黑白影像的尺寸" -#: ../src/imageio/format/avif.c:789 -msgid "RGB colors" -msgstr "RGB 彩色" - -#: ../src/imageio/format/avif.c:789 -msgid "grayscale" -msgstr "灰階" - #. #. * Tiling combo box #. -#: ../src/imageio/format/avif.c:799 +#: ../src/imageio/format/avif.c:832 msgid "tiling" msgstr "分塊平鋪" -#: ../src/imageio/format/avif.c:800 +#: ../src/imageio/format/avif.c:833 msgid "" "tile an image into segments.\n" "\n" -"makes encoding faster. the impact on quality reduction is negligible, but " -"increases the file size." +"makes encoding faster, but increases the file size. the loss of image " +"quality is negligible." msgstr "" "把影像分成數個區塊儲存\n" +"\n" "編碼速度更快,對影像品質的影響極小,但會增加檔案尺寸" -#: ../src/imageio/format/avif.c:817 ../src/imageio/format/webp.c:383 -msgid "compression type" -msgstr "壓縮方式" +#. compression +#. Compression method combo box +#: ../src/imageio/format/avif.c:850 ../src/imageio/format/exr.cc:611 +#: ../src/imageio/format/pdf.c:676 ../src/imageio/format/png.c:653 +#: ../src/imageio/format/tiff.c:923 ../src/imageio/format/webp.c:414 +#: ../src/libs/masks.c:111 +msgid "compression" +msgstr "壓縮" -#: ../src/imageio/format/avif.c:825 +#: ../src/imageio/format/avif.c:858 msgid "the compression for the image" msgstr "影像的壓縮方式" @@ -11299,34 +11774,30 @@ #. step #. default #. digits -#: ../src/imageio/format/avif.c:842 ../src/imageio/format/j2k.c:661 -#: ../src/imageio/format/jpeg.c:587 ../src/imageio/format/jxl.c:579 -#: ../src/imageio/format/webp.c:394 ../src/libs/camera.c:564 +#: ../src/imageio/format/avif.c:878 ../src/imageio/format/j2k.c:679 +#: ../src/imageio/format/jpeg.c:584 ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/webp.c:425 ../src/libs/camera.c:564 msgid "quality" msgstr "影像品質" -#: ../src/imageio/format/avif.c:847 +#: ../src/imageio/format/avif.c:881 msgid "" "the quality of an image, less quality means fewer details.\n" "\n" -"the following applies only to lossy setting\n" +"pixel format is controlled by quality:\n" "\n" -"pixelformat based on quality:\n" -"\n" -" 91% - 100% -> YUV444\n" -" 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +"5-80: YUV420, 81-90: YUV422, 91-100: YUV444" msgstr "" "影像的品質,品質越低代表細節越少\n" -"以下內容僅適用於有損壓縮的設定\n" -"品質設定與像素格式關係:\n" +"\n" +"品質設定與取樣格式關係:\n" "\n" "91% - 100% -> YUV444\n" " 81% - 90% -> YUV422\n" -" 5% - 80% -> YUV420\n" +" 5% - 80% -> YUV420" #: ../src/imageio/format/copy.c:109 ../src/libs/copy_history.c:370 -#: ../src/libs/image.c:583 +#: ../src/libs/image.c:647 msgid "copy" msgstr "複製" @@ -11342,120 +11813,140 @@ msgid "the selected output profile doesn't work well with EXR" msgstr "選取的輸出描述檔與 EXR 不相容" -#: ../src/imageio/format/exr.cc:540 +#: ../src/imageio/format/exr.cc:576 msgid "OpenEXR" msgstr "OpenEXR" -#: ../src/imageio/format/exr.cc:567 +#: ../src/imageio/format/exr.cc:603 msgid "16 bit (float)" msgstr "16 位元(浮點)" -#: ../src/imageio/format/exr.cc:567 ../src/imageio/format/jxl.c:556 -#: ../src/imageio/format/tiff.c:847 ../src/imageio/format/xcf.c:357 +#: ../src/imageio/format/exr.cc:603 ../src/imageio/format/jxl.c:567 +#: ../src/imageio/format/tiff.c:904 ../src/imageio/format/xcf.c:357 msgid "32 bit (float)" msgstr "32 位元(浮點)" -#. compression -#. Compression method combo box -#: ../src/imageio/format/exr.cc:575 ../src/imageio/format/pdf.c:676 -#: ../src/imageio/format/png.c:548 ../src/imageio/format/tiff.c:866 -#: ../src/libs/masks.c:110 -msgid "compression" -msgstr "壓縮" - -#: ../src/imageio/format/exr.cc:577 ../src/imageio/format/pdf.c:682 -#: ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/exr.cc:613 ../src/imageio/format/pdf.c:682 +#: ../src/imageio/format/tiff.c:924 msgid "uncompressed" msgstr "無壓縮" -#: ../src/imageio/format/exr.cc:578 +#: ../src/imageio/format/exr.cc:614 msgid "RLE" msgstr "RLE" -#: ../src/imageio/format/exr.cc:579 +#: ../src/imageio/format/exr.cc:615 msgid "ZIPS" msgstr "ZIPS" -#: ../src/imageio/format/exr.cc:580 +#: ../src/imageio/format/exr.cc:616 msgid "ZIP" msgstr "ZIP" -#: ../src/imageio/format/exr.cc:581 +#: ../src/imageio/format/exr.cc:617 msgid "PIZ" msgstr "PIZ" -#: ../src/imageio/format/exr.cc:582 +#: ../src/imageio/format/exr.cc:618 msgid "PXR24" msgstr "PXR24" -#: ../src/imageio/format/exr.cc:583 +#: ../src/imageio/format/exr.cc:619 msgid "B44" msgstr "B44" -#: ../src/imageio/format/exr.cc:584 +#: ../src/imageio/format/exr.cc:620 msgid "B44A" msgstr "B44A" -#: ../src/imageio/format/exr.cc:585 +#: ../src/imageio/format/exr.cc:621 msgid "DWAA" msgstr "DWAA" -#: ../src/imageio/format/exr.cc:586 +#: ../src/imageio/format/exr.cc:622 msgid "DWAB" msgstr "DWAB" -#: ../src/imageio/format/j2k.c:618 +#: ../src/imageio/format/j2k.c:648 msgid "JPEG 2000 (12-bit)" msgstr "JPEG 2000(12 位元)" -#: ../src/imageio/format/j2k.c:652 -msgid "jp2" -msgstr ".jp2(JPEG 2000)" - -#: ../src/imageio/format/j2k.c:667 +#: ../src/imageio/format/j2k.c:684 msgid "DCP mode" msgstr "DCP 模式" -#: ../src/imageio/format/j2k.c:670 +#: ../src/imageio/format/j2k.c:687 msgid "Cinema2K, 24FPS" msgstr "Cinema 2K 24FPS" -#: ../src/imageio/format/j2k.c:671 +#: ../src/imageio/format/j2k.c:688 msgid "Cinema2K, 48FPS" msgstr "Cinema 2K 48FPS" -#: ../src/imageio/format/j2k.c:672 +#: ../src/imageio/format/j2k.c:689 msgid "Cinema4K, 24FPS" msgstr "Cinema 4K 24FPS" -#: ../src/imageio/format/jpeg.c:564 +#: ../src/imageio/format/jpeg.c:546 msgid "JPEG (8-bit)" msgstr "JPEG(8 位元)" -#: ../src/imageio/format/jxl.c:471 -msgid "JPEG XL" -msgstr "JPEG XL" +#: ../src/imageio/format/jpeg.c:594 +msgid "chroma subsampling" +msgstr "色彩降採樣" + +#: ../src/imageio/format/jpeg.c:595 +msgid "" +"chroma subsampling setting for JPEG encoder.\n" +"auto - use subsampling determined by the quality value\n" +"4:4:4 - no chroma subsampling\n" +"4:4:0 - color sampling rate halved vertically\n" +"4:2:2 - color sampling rate halved horizontally\n" +"4:2:0 - color sampling rate halved horizontally and vertically" +msgstr "" +"JPEG 的色彩採樣設定。\n" +"自動:由品質設定決定\n" +"4:4:4:無色彩降採樣\n" +"4:4:0:色彩垂直解析度減半\n" +"4:2:2:色彩水平解析度減半\n" +"4:2:0:水平與垂直的色彩解析度皆減半" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:4" +msgstr "4:4:4" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:4:0" +msgstr "4:2:0" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:2" +msgstr "4:2:2" + +#: ../src/imageio/format/jpeg.c:604 +msgid "4:2:0" +msgstr "4:2:0" -#: ../src/imageio/format/jxl.c:556 ../src/imageio/format/pdf.c:81 -#: ../src/imageio/format/png.c:536 ../src/imageio/format/tiff.c:847 +#: ../src/imageio/format/jxl.c:567 ../src/imageio/format/pdf.c:81 +#: ../src/imageio/format/png.c:641 ../src/imageio/format/tiff.c:904 #: ../src/imageio/format/xcf.c:357 msgid "16 bit" msgstr "16 位元" #. Pixel format combo box -#: ../src/imageio/format/jxl.c:562 ../src/imageio/format/tiff.c:852 +#: ../src/imageio/format/jxl.c:573 ../src/imageio/format/tiff.c:909 msgid "pixel type" msgstr "數值類別" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "unsigned integer" msgstr "無符號整數" -#: ../src/imageio/format/jxl.c:563 ../src/imageio/format/tiff.c:853 +#: ../src/imageio/format/jxl.c:574 ../src/imageio/format/tiff.c:910 msgid "floating point" msgstr "浮點數" -#: ../src/imageio/format/jxl.c:580 +#: ../src/imageio/format/jxl.c:591 msgid "" "the quality of the output image\n" "0-29 = very lossy\n" @@ -11467,11 +11958,11 @@ "30-99:和一般 JPEG 類似\n" "100:無損壓縮(僅限整數位元)" -#: ../src/imageio/format/jxl.c:589 +#: ../src/imageio/format/jxl.c:600 msgid "encoding color profile" msgstr "用於編碼的色彩空間" -#: ../src/imageio/format/jxl.c:590 +#: ../src/imageio/format/jxl.c:601 msgid "" "the color profile used by the encoder\n" "permit internal XYB color space conversion for more efficient lossy " @@ -11483,30 +11974,30 @@ "固有設定使用 JPEG XL 制定的 XYB 色彩以獲得較好的有損壓縮效率\n" "選擇原始影像色彩空間將不轉換色彩編碼,同時意味著無損壓縮" -#: ../src/imageio/format/jxl.c:593 +#: ../src/imageio/format/jxl.c:604 msgid "internal" msgstr "固有設定" -#: ../src/imageio/format/jxl.c:593 ../src/libs/duplicate.c:399 -#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:782 +#: ../src/imageio/format/jxl.c:604 ../src/libs/duplicate.c:405 +#: ../src/libs/history.c:1132 ../src/libs/snapshots.c:840 msgid "original" msgstr "原始影像" -#: ../src/imageio/format/jxl.c:607 +#: ../src/imageio/format/jxl.c:618 msgid "encoding effort" msgstr "編碼計算量" -#: ../src/imageio/format/jxl.c:608 +#: ../src/imageio/format/jxl.c:619 msgid "" "the effort used to encode the image, higher efforts will have better results " "at the expense of longer encoding times" msgstr "影像編碼的計算量,越高的計算量可獲得更好的成果,但相對需花費更多時間" -#: ../src/imageio/format/jxl.c:619 +#: ../src/imageio/format/jxl.c:630 msgid "decoding speed" msgstr "解碼速度" -#: ../src/imageio/format/jxl.c:620 +#: ../src/imageio/format/jxl.c:631 msgid "the preferred decoding speed with some sacrifice of quality" msgstr "偏好的解碼速度,可能會降低品質" @@ -11518,9 +12009,9 @@ msgid "invalid border size, using 0" msgstr "無效的邊界尺寸,不可為 0" -#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:316 -#: ../src/imageio/storage/email.c:137 ../src/imageio/storage/gallery.c:331 -#: ../src/imageio/storage/gallery.c:370 ../src/imageio/storage/piwigo.c:1202 +#: ../src/imageio/format/pdf.c:257 ../src/imageio/storage/disk.c:460 +#: ../src/imageio/storage/email.c:187 ../src/imageio/storage/gallery.c:409 +#: ../src/imageio/storage/gallery.c:450 ../src/imageio/storage/piwigo.c:1236 #, c-format msgid "could not export to file `%s'!" msgstr "無法匯出至檔案「%s」" @@ -11573,8 +12064,8 @@ "如:10 mm、0.5 cm、1 inch" #. dpi -#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1127 -#: ../src/libs/export.c:1150 +#: ../src/imageio/format/pdf.c:621 ../src/libs/export.c:1218 +#: ../src/libs/export.c:1246 msgid "dpi" msgstr "DPI" @@ -11633,7 +12124,7 @@ "無壓縮:快速但文件大\n" " 壓縮:較慢但文件小" -#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:867 +#: ../src/imageio/format/pdf.c:682 ../src/imageio/format/tiff.c:924 msgid "deflate" msgstr "壓縮(ZIP)" @@ -11664,60 +12155,23 @@ msgid "debug" msgstr "除錯" -#: ../src/imageio/format/pfm.c:120 -msgid "PFM" -msgstr "PFM" - -#: ../src/imageio/format/png.c:493 -msgid "PNG" -msgstr "PNG" - #: ../src/imageio/format/ppm.c:111 msgid "PPM (16-bit)" msgstr "PPM(16 位元)" -#: ../src/imageio/format/tiff.c:228 -msgid "will export as a grayscale image" -msgstr "將匯出為灰階影像" +#: ../src/imageio/format/tiff.c:246 +msgid "not a B&W image, will not export as grayscale" +msgstr "這不是黑白影像,將不會匯出為灰階" -#: ../src/imageio/format/tiff.c:774 -msgid "TIFF" -msgstr "TIFF" - -#: ../src/imageio/format/tiff.c:868 +#: ../src/imageio/format/tiff.c:925 msgid "deflate with predictor" msgstr "預測壓縮法(有利漸層影像)" -#: ../src/imageio/format/tiff.c:878 +#: ../src/imageio/format/tiff.c:935 msgid "compression level" msgstr "壓縮程度" -#. shortfile option combo box -#: ../src/imageio/format/tiff.c:887 -msgid "b&w image" -msgstr "黑白影像" - -#: ../src/imageio/format/tiff.c:888 -msgid "write RGB colors" -msgstr "儲存 RGB 彩色影像" - -#: ../src/imageio/format/tiff.c:888 -msgid "write grayscale" -msgstr "儲存成灰階影像" - -#: ../src/imageio/format/webp.c:349 -msgid "WebP" -msgstr "WebP" - -#: ../src/imageio/format/webp.c:385 -msgid "lossy" -msgstr "有損壓縮" - -#: ../src/imageio/format/webp.c:385 -msgid "lossless" -msgstr "無失真壓縮" - -#: ../src/imageio/format/webp.c:397 +#: ../src/imageio/format/webp.c:426 msgid "" "for lossy, 0 gives the smallest size and 100 the best quality.\n" "for lossless, 0 is the fastest but gives larger files compared\n" @@ -11726,11 +12180,11 @@ "有損壓縮:0 代表壓縮比最高檔案最小,100 代表壓縮比最低品質最高\n" "無損壓縮:0 代表壓縮最快但檔案大,100 代表壓縮最慢但檔案小" -#: ../src/imageio/format/webp.c:407 +#: ../src/imageio/format/webp.c:436 msgid "image hint" msgstr "影像類別提示" -#: ../src/imageio/format/webp.c:408 +#: ../src/imageio/format/webp.c:437 msgid "" "image characteristics hint for the underlying encoder.\n" "picture: digital picture, like portrait, inner shot\n" @@ -11742,15 +12196,15 @@ "照片:自然陽光的影像,如:風景照\n" "圖形:色調較少的影像,如:地圖" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "picture" msgstr "圖片" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "photo" msgstr "照片" -#: ../src/imageio/format/webp.c:413 +#: ../src/imageio/format/webp.c:442 msgid "graphic" msgstr "圖形" @@ -11758,12 +12212,12 @@ msgid "XCF" msgstr "XCF" -#: ../src/imageio/storage/disk.c:71 ../src/libs/export.c:1040 +#: ../src/imageio/storage/disk.c:74 ../src/libs/export.c:1119 msgid "file on disk" msgstr "硬碟裡的檔案" -#: ../src/imageio/storage/disk.c:169 ../src/imageio/storage/gallery.c:155 -#: ../src/imageio/storage/latex.c:154 +#: ../src/imageio/storage/disk.c:251 ../src/imageio/storage/gallery.c:204 +#: ../src/imageio/storage/latex.c:191 msgid "" "enter the path where to put exported images\n" "variables support bash like string manipulation\n" @@ -11772,51 +12226,60 @@ "輸入匯出影像的位置\n" "可使用 darktable 變數,輸入「$(」會顯示變數列表" -#: ../src/imageio/storage/disk.c:182 ../src/imageio/storage/piwigo.c:1079 +#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/piwigo.c:1113 msgid "on conflict" msgstr "檔名衝突時" -#: ../src/imageio/storage/disk.c:185 +#: ../src/imageio/storage/disk.c:268 msgid "create unique filename" msgstr "另存新檔案" #. DT_COPY_HISTORY_APPEND -#: ../src/imageio/storage/disk.c:186 ../src/imageio/storage/piwigo.c:1083 -#: ../src/libs/copy_history.c:404 ../src/libs/image.c:601 -#: ../src/libs/styles.c:440 ../src/libs/styles.c:623 ../src/libs/styles.c:850 +#: ../src/imageio/storage/disk.c:269 ../src/imageio/storage/piwigo.c:1117 +#: ../src/libs/copy_history.c:404 ../src/libs/image.c:670 +#: ../src/libs/styles.c:854 msgid "overwrite" msgstr "覆寫既有檔案" -#: ../src/imageio/storage/disk.c:187 ../src/imageio/storage/piwigo.c:1081 -#: ../src/libs/styles.c:439 ../src/libs/styles.c:622 +#: ../src/imageio/storage/disk.c:270 +msgid "overwrite if changed" +msgstr "覆寫既有檔案" + +#: ../src/imageio/storage/disk.c:271 ../src/imageio/storage/piwigo.c:1115 msgid "skip" msgstr "略過而不儲存" -#: ../src/imageio/storage/disk.c:265 ../src/imageio/storage/gallery.c:253 -#: ../src/imageio/storage/latex.c:252 +#: ../src/imageio/storage/disk.c:371 ../src/imageio/storage/gallery.c:326 +#: ../src/imageio/storage/latex.c:289 #, c-format msgid "could not create directory `%s'!" msgstr "無法建立「%s」資料夾" -#: ../src/imageio/storage/disk.c:272 +#: ../src/imageio/storage/disk.c:382 #, c-format msgid "could not write to directory `%s'!" msgstr "無法寫入「%s」資料夾" -#: ../src/imageio/storage/disk.c:302 +#: ../src/imageio/storage/disk.c:419 #, c-format msgid "%d/%d skipping `%s'" msgid_plural "%d/%d skipping `%s'" msgstr[0] "%d/%d 正在略過「%s」" -#: ../src/imageio/storage/disk.c:321 ../src/imageio/storage/email.c:144 -#: ../src/imageio/storage/gallery.c:378 ../src/imageio/storage/latex.c:340 +#: ../src/imageio/storage/disk.c:441 +#, c-format +msgid "%d/%d skipping (not modified since export) `%s'" +msgid_plural "%d/%d skipping (not modified since export) `%s'" +msgstr[0] "已略過 %d/%d(匯出時無更改)「%s」" + +#: ../src/imageio/storage/disk.c:465 ../src/imageio/storage/email.c:194 +#: ../src/imageio/storage/gallery.c:458 ../src/imageio/storage/latex.c:377 #, c-format msgid "%d/%d exported to `%s'" msgid_plural "%d/%d exported to `%s'" msgstr[0] "%d/%d 已匯出至「%s」" -#: ../src/imageio/storage/disk.c:380 +#: ../src/imageio/storage/disk.c:530 msgid "" "you are going to export in overwrite mode, this will overwrite any existing " "images\n" @@ -11827,23 +12290,33 @@ "\n" "是否要繼續?" -#: ../src/imageio/storage/email.c:52 +#: ../src/imageio/storage/email.c:57 msgid "send as email" msgstr "以郵件發送" -#: ../src/imageio/storage/email.c:198 +#. Unlikely in normal Windows installations, but let's notify the user if it happens +#: ../src/imageio/storage/email.c:265 +msgid "could not open mapi32.dll" +msgstr "無法開啟 mapi32.dll" + +#. Even more unlikely +#: ../src/imageio/storage/email.c:275 +msgid "could not get SendMail function" +msgstr "無法啟動電子郵件程式" + +#: ../src/imageio/storage/email.c:319 ../src/imageio/storage/email.c:409 msgid "images exported from darktable" msgstr "darktable 匯出的影像" -#: ../src/imageio/storage/email.c:251 +#: ../src/imageio/storage/email.c:388 ../src/imageio/storage/email.c:467 msgid "could not launch email client!" msgstr "無法啟動電子郵件程式" -#: ../src/imageio/storage/gallery.c:73 +#: ../src/imageio/storage/gallery.c:76 msgid "website gallery" msgstr "網路相簿" -#: ../src/imageio/storage/gallery.c:171 +#: ../src/imageio/storage/gallery.c:224 msgid "enter the title of the website" msgstr "輸入網站標題" @@ -11851,149 +12324,148 @@ msgid "LaTeX book template" msgstr "LaTeX 書籍模板" -#: ../src/imageio/storage/latex.c:172 +#: ../src/imageio/storage/latex.c:209 msgid "enter the title of the book" msgstr "輸入書籍名稱" -#: ../src/imageio/storage/piwigo.c:522 +#: ../src/imageio/storage/piwigo.c:525 msgid "authenticated" msgstr "已驗證帳號" -#: ../src/imageio/storage/piwigo.c:532 ../src/imageio/storage/piwigo.c:547 -#: ../src/imageio/storage/piwigo.c:559 +#: ../src/imageio/storage/piwigo.c:536 ../src/imageio/storage/piwigo.c:552 +#: ../src/imageio/storage/piwigo.c:565 msgid "not authenticated" msgstr "未驗證帳號" -#: ../src/imageio/storage/piwigo.c:538 +#: ../src/imageio/storage/piwigo.c:542 msgid "not authenticated, cannot reach server" msgstr "未經驗證,無法連接伺服器" -#: ../src/imageio/storage/piwigo.c:587 ../src/imageio/storage/piwigo.c:675 +#: ../src/imageio/storage/piwigo.c:595 ../src/imageio/storage/piwigo.c:684 msgid "create new album" msgstr "建立新的相簿" -#: ../src/imageio/storage/piwigo.c:676 +#: ../src/imageio/storage/piwigo.c:685 msgid "---" msgstr "---" -#: ../src/imageio/storage/piwigo.c:721 +#: ../src/imageio/storage/piwigo.c:735 msgid "cannot refresh albums" msgstr "無法更新相簿列表" -#: ../src/imageio/storage/piwigo.c:929 +#: ../src/imageio/storage/piwigo.c:950 msgid "Piwigo" msgstr "Piwigo 線上相簿" -#: ../src/imageio/storage/piwigo.c:954 +#: ../src/imageio/storage/piwigo.c:976 msgid "accounts" msgstr "帳號" -#: ../src/imageio/storage/piwigo.c:972 ../src/imageio/storage/piwigo.c:978 +#: ../src/imageio/storage/piwigo.c:995 ../src/imageio/storage/piwigo.c:1004 msgid "server" msgstr "伺服器" -#: ../src/imageio/storage/piwigo.c:974 ../src/imageio/storage/piwigo.c:989 +#: ../src/imageio/storage/piwigo.c:998 msgid "" "the server name\n" "default protocol is https\n" -"specify http:// if non secure server" +"specify insecure protocol http:// explicitly if that protocol is required" msgstr "" "伺服器名稱\n" "預設協定為 https\n" "如果沒有安全伺服器請指明 http://" -#: ../src/imageio/storage/piwigo.c:987 ../src/imageio/storage/piwigo.c:993 +#: ../src/imageio/storage/piwigo.c:1014 ../src/imageio/storage/piwigo.c:1021 msgid "user" msgstr "使用者" -#: ../src/imageio/storage/piwigo.c:1000 ../src/imageio/storage/piwigo.c:1005 +#: ../src/imageio/storage/piwigo.c:1029 ../src/imageio/storage/piwigo.c:1034 msgid "password" msgstr "密碼" #. login button -#: ../src/imageio/storage/piwigo.c:1010 +#: ../src/imageio/storage/piwigo.c:1039 msgid "login" msgstr "登入" -#: ../src/imageio/storage/piwigo.c:1011 +#: ../src/imageio/storage/piwigo.c:1040 msgid "Piwigo login" msgstr "登入 Piwigo" #. permissions list -#: ../src/imageio/storage/piwigo.c:1025 +#: ../src/imageio/storage/piwigo.c:1056 msgid "visible to" msgstr "隱私設定" -#: ../src/imageio/storage/piwigo.c:1027 +#: ../src/imageio/storage/piwigo.c:1058 msgid "everyone" msgstr "所有人" -#: ../src/imageio/storage/piwigo.c:1028 +#: ../src/imageio/storage/piwigo.c:1059 msgid "contacts" msgstr "聯絡人" -#: ../src/imageio/storage/piwigo.c:1029 +#: ../src/imageio/storage/piwigo.c:1060 msgid "friends" msgstr "朋友" -#: ../src/imageio/storage/piwigo.c:1030 +#: ../src/imageio/storage/piwigo.c:1061 msgid "family" msgstr "家庭" -#: ../src/imageio/storage/piwigo.c:1031 +#: ../src/imageio/storage/piwigo.c:1062 msgid "you" msgstr "僅限自己" #. Available albums -#: ../src/imageio/storage/piwigo.c:1038 +#: ../src/imageio/storage/piwigo.c:1069 msgid "album" msgstr "相簿" -#: ../src/imageio/storage/piwigo.c:1045 +#: ../src/imageio/storage/piwigo.c:1076 msgid "refresh album list" msgstr "更新相簿列表" #. Album title -#: ../src/imageio/storage/piwigo.c:1063 +#: ../src/imageio/storage/piwigo.c:1096 msgid "new album" msgstr "新的相簿" -#. parent album list #. Available albums -#: ../src/imageio/storage/piwigo.c:1071 +#: ../src/imageio/storage/piwigo.c:1105 msgid "parent album" msgstr "上一層相簿" -#: ../src/imageio/storage/piwigo.c:1075 +#: ../src/imageio/storage/piwigo.c:1109 msgid "click login button to start" msgstr "點擊「登入」按鈕開始作業" -#: ../src/imageio/storage/piwigo.c:1080 +#: ../src/imageio/storage/piwigo.c:1114 msgid "don't check" msgstr "不要檢查" -#: ../src/imageio/storage/piwigo.c:1082 +#: ../src/imageio/storage/piwigo.c:1116 msgid "update metadata" msgstr "更新詮釋資料" -#: ../src/imageio/storage/piwigo.c:1221 +#: ../src/imageio/storage/piwigo.c:1255 msgid "cannot create a new Piwigo album!" msgstr "無法建立新的 Piwigo 相簿" -#: ../src/imageio/storage/piwigo.c:1240 +#: ../src/imageio/storage/piwigo.c:1274 msgid "could not update to Piwigo!" msgstr "無法更新 Piwigo!" -#: ../src/imageio/storage/piwigo.c:1255 +#: ../src/imageio/storage/piwigo.c:1290 msgid "could not upload to Piwigo!" msgstr "無法上傳至 Piwigo!" -#: ../src/imageio/storage/piwigo.c:1284 +#: ../src/imageio/storage/piwigo.c:1319 #, c-format msgid "%d/%d skipped (already exists)" msgstr "略過 %d/%d 張影像(已經存在)" -#: ../src/imageio/storage/piwigo.c:1290 +#: ../src/imageio/storage/piwigo.c:1325 #, c-format msgid "%d/%d exported to Piwigo webalbum" msgid_plural "%d/%d exported to Piwigo webalbum" @@ -12017,60 +12489,60 @@ "或是使用手動調整數值校正" #: ../src/iop/ashift.c:131 ../src/iop/channelmixer.c:139 -#: ../src/iop/channelmixerrgb.c:232 ../src/iop/clipping.c:320 -#: ../src/iop/colorbalance.c:161 ../src/iop/colorbalancergb.c:185 +#: ../src/iop/channelmixerrgb.c:233 ../src/iop/clipping.c:363 +#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:185 #: ../src/iop/colorchecker.c:130 ../src/iop/colorcorrection.c:77 -#: ../src/iop/crop.c:144 ../src/iop/lut3d.c:141 +#: ../src/iop/crop.c:134 ../src/iop/lut3d.c:142 ../src/iop/primaries.c:80 msgid "corrective or creative" msgstr "修正或創意" -#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:148 -#: ../src/iop/bilateral.cc:101 ../src/iop/bilateral.cc:103 -#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:233 -#: ../src/iop/channelmixerrgb.c:235 ../src/iop/clipping.c:321 -#: ../src/iop/clipping.c:323 ../src/iop/colorbalancergb.c:186 -#: ../src/iop/colorin.c:136 ../src/iop/crop.c:145 ../src/iop/crop.c:147 -#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:728 -#: ../src/iop/denoiseprofile.c:730 ../src/iop/diffuse.c:146 +#: ../src/iop/ashift.c:132 ../src/iop/ashift.c:134 ../src/iop/basicadj.c:174 +#: ../src/iop/bilateral.cc:103 ../src/iop/bilateral.cc:105 +#: ../src/iop/blurs.c:93 ../src/iop/blurs.c:94 ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:236 ../src/iop/clipping.c:364 +#: ../src/iop/clipping.c:366 ../src/iop/colorbalancergb.c:186 +#: ../src/iop/colorin.c:136 ../src/iop/crop.c:135 ../src/iop/crop.c:137 +#: ../src/iop/demosaic.c:296 ../src/iop/denoiseprofile.c:780 +#: ../src/iop/denoiseprofile.c:782 ../src/iop/diffuse.c:146 #: ../src/iop/diffuse.c:148 ../src/iop/exposure.c:132 ../src/iop/exposure.c:134 #: ../src/iop/flip.c:111 ../src/iop/flip.c:112 ../src/iop/hazeremoval.c:113 -#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:242 ../src/iop/lens.cc:244 -#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/retouch.c:210 -#: ../src/iop/retouch.c:212 ../src/iop/sigmoid.c:103 -#: ../src/iop/splittoning.c:104 ../src/iop/splittoning.c:106 -#: ../src/iop/spots.c:70 ../src/iop/spots.c:72 ../src/iop/toneequal.c:325 -#: ../src/iop/velvia.c:106 ../src/iop/velvia.c:108 +#: ../src/iop/hazeremoval.c:115 ../src/iop/lens.cc:263 ../src/iop/lens.cc:265 +#: ../src/iop/liquify.c:298 ../src/iop/liquify.c:300 ../src/iop/primaries.c:81 +#: ../src/iop/primaries.c:83 ../src/iop/retouch.c:210 ../src/iop/retouch.c:212 +#: ../src/iop/sigmoid.c:209 ../src/iop/splittoning.c:106 +#: ../src/iop/splittoning.c:108 ../src/iop/spots.c:70 ../src/iop/spots.c:72 +#: ../src/iop/toneequal.c:333 ../src/iop/velvia.c:99 ../src/iop/velvia.c:101 msgid "linear, RGB, scene-referred" msgstr "線性、RGB、場景參照" -#: ../src/iop/ashift.c:133 ../src/iop/borders.c:200 ../src/iop/clipping.c:322 -#: ../src/iop/crop.c:146 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 +#: ../src/iop/ashift.c:133 ../src/iop/borders.c:325 ../src/iop/clipping.c:365 +#: ../src/iop/crop.c:136 ../src/iop/flip.c:111 ../src/iop/liquify.c:299 msgid "geometric, RGB" msgstr "幾何、RGB" -#: ../src/iop/ashift.c:2820 +#: ../src/iop/ashift.c:2866 msgid "automatic cropping failed" msgstr "" "⚠️ 錯誤 ⚠️\n" "自動裁切失敗" -#: ../src/iop/ashift.c:3234 ../src/iop/ashift.c:3286 ../src/iop/ashift.c:3334 +#: ../src/iop/ashift.c:3276 ../src/iop/ashift.c:3328 ../src/iop/ashift.c:3375 msgid "data pending - please repeat" msgstr "資料處理中,請重試" -#: ../src/iop/ashift.c:3243 +#: ../src/iop/ashift.c:3285 msgid "could not detect structural data in image" msgstr "" "⚠️ 錯誤 ⚠️\n" "無法偵測影像中的結構" -#: ../src/iop/ashift.c:3255 +#: ../src/iop/ashift.c:3297 msgid "could not run outlier removal" msgstr "" "⚠️ 錯誤 ⚠️\n" "無法移除離群數值" -#: ../src/iop/ashift.c:3434 +#: ../src/iop/ashift.c:3474 #, c-format msgid "" "not enough structure for automatic correction\n" @@ -12080,43 +12552,43 @@ "沒有足夠的結構進行自動校正\n" "每個方向最少必須有 %d 條直線" -#: ../src/iop/ashift.c:3440 +#: ../src/iop/ashift.c:3480 msgid "automatic correction failed, please correct manually" msgstr "" "⚠️ 錯誤 ⚠️\n" "自動校正失敗,請以手動校正" -#: ../src/iop/ashift.c:5096 +#: ../src/iop/ashift.c:5077 #, c-format msgid "only %d lines can be saved in parameters" msgstr "只能儲存 %d 條直線" -#: ../src/iop/ashift.c:5201 +#: ../src/iop/ashift.c:5157 #, c-format -msgid "rotation adjusted by %3.1f° to %3.1f°" -msgstr "由 %3.1f° 到 %3.1f° 調整旋轉" +msgid "rotation adjusted by %3.2f° to %3.2f°" +msgstr "由 %3.2f° 到 %3.2f° 調整旋轉" -#: ../src/iop/ashift.c:5852 ../src/iop/ashift.c:5854 ../src/iop/ashift.c:5959 -#: ../src/iop/ashift.c:5961 +#: ../src/iop/ashift.c:5797 ../src/iop/ashift.c:5799 ../src/iop/ashift.c:5904 +#: ../src/iop/ashift.c:5906 #, c-format msgid "lens shift (%s)" msgstr "鏡頭平移(%s)" -#: ../src/iop/ashift.c:6125 +#: ../src/iop/ashift.c:6072 msgid "manual perspective" msgstr "手動校正透視" -#: ../src/iop/ashift.c:6170 +#: ../src/iop/ashift.c:6117 msgctxt "section" msgid "perspective" msgstr "透視" -#: ../src/iop/ashift.c:6177 ../src/iop/ashift.c:6286 ../src/iop/ashift.c:6288 -#: ../src/iop/ashift.c:6290 +#: ../src/iop/ashift.c:6124 ../src/iop/ashift.c:6233 ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6237 msgid "structure" msgstr "結構" -#: ../src/iop/ashift.c:6212 +#: ../src/iop/ashift.c:6159 msgid "" "rotate image\n" "right-click and drag to define a horizontal or vertical line by drawing on " @@ -12125,17 +12597,17 @@ "影像旋轉角度\n" "未繪製結構線時,右鍵於影像上點擊繪製水平線或垂直線可自動旋轉" -#: ../src/iop/ashift.c:6215 ../src/iop/ashift.c:6217 +#: ../src/iop/ashift.c:6162 ../src/iop/ashift.c:6164 msgid "apply lens shift correction in one direction" msgstr "調整透視變形校正量" -#: ../src/iop/ashift.c:6219 +#: ../src/iop/ashift.c:6166 msgid "shear the image along one diagonal" msgstr "" "對角線剪切校正影像\n" "若同時處理水平和垂直透視校正就必須使用使功能" -#: ../src/iop/ashift.c:6220 ../src/iop/clipping.c:2117 +#: ../src/iop/ashift.c:6167 ../src/iop/clipping.c:2170 msgid "automatically crop to avoid black edges" msgstr "" "自動裁切掉因透視與旋轉校正造成的周圍黑色區域\n" @@ -12144,7 +12616,7 @@ "最大面積:保留裁切後可用的最大面積區域\n" "原始比例:保持影像的長寬比例,此選項可以手動移動調整影像上的裁切區域" -#: ../src/iop/ashift.c:6221 +#: ../src/iop/ashift.c:6168 msgid "" "lens model of the perspective correction: generic or according to the focal " "length" @@ -12154,11 +12626,11 @@ "通用:假設使用 135 片幅相機 28mm 的視角\n" "特定:依據特定的鏡頭焦距和視角計算透視校正" -#: ../src/iop/ashift.c:6224 +#: ../src/iop/ashift.c:6171 msgid "focal length of the lens, default value set from EXIF data if available" msgstr "鏡頭的焦長,從 EXIF 中讀取資料作為預設值" -#: ../src/iop/ashift.c:6227 +#: ../src/iop/ashift.c:6174 msgid "" "crop factor of the camera sensor, default value set from EXIF data if " "available, manual setting is often required" @@ -12166,7 +12638,7 @@ "相機感光元件相對 135 相機的裁剪係數\n" "若 EXIF 內有資料設定會自動使用,但通常需要手動設定" -#: ../src/iop/ashift.c:6231 +#: ../src/iop/ashift.c:6178 msgid "" "the level of lens dependent correction, set to maximum for full lens " "dependency, set to zero for the generic case" @@ -12174,13 +12646,13 @@ "透視校正與鏡頭相關的程度\n" "設定最大值校正完全與鏡頭相依,設置為零作為通用選項" -#: ../src/iop/ashift.c:6235 +#: ../src/iop/ashift.c:6182 msgid "adjust aspect ratio of image by horizontal and vertical scaling" msgstr "" "調整鏡頭的縮放比例\n" "此參數可自由調整影像比例,對使用變形鏡頭拍攝的照片特別有用" -#: ../src/iop/ashift.c:6237 +#: ../src/iop/ashift.c:6184 msgid "" "automatically correct for vertical perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12190,7 +12662,7 @@ "ctrl + 點擊只作旋轉校正,不校正透視變形\n" "shift + 點擊只作透視變形校正,不旋轉影像" -#: ../src/iop/ashift.c:6241 +#: ../src/iop/ashift.c:6188 msgid "" "automatically correct for horizontal perspective distortion\n" "ctrl+click to only fit rotation\n" @@ -12200,7 +12672,7 @@ "ctrl + 點擊只作旋轉校正,不校正透視變形\n" "shift + 點擊只作透視變形校正,不旋轉影像" -#: ../src/iop/ashift.c:6245 +#: ../src/iop/ashift.c:6192 msgid "" "automatically correct for vertical and horizontal perspective distortions, " "fitting rotation, lens shift in both directions, and shear\n" @@ -12213,7 +12685,7 @@ "shift + 點擊只作透視變形校正,不旋轉影像\n" "ctrl + shift + 點擊執行透視和旋轉校正,但不作剪切校正" -#: ../src/iop/ashift.c:6252 +#: ../src/iop/ashift.c:6199 msgid "" "automatically analyse line structure in image\n" "ctrl+click for an additional edge enhancement\n" @@ -12234,7 +12706,7 @@ "shift + 滑鼠左鍵或右鍵可圈選範圍內的線段一次啟用或取消\n" "完成結構線編輯之後,點擊下方的校正選項以自動完成透視校正" -#: ../src/iop/ashift.c:6257 +#: ../src/iop/ashift.c:6204 msgid "manually define perspective rectangle" msgstr "" "手動繪製透視矩形\n" @@ -12244,7 +12716,7 @@ "\n" "矩形形狀與位置可以隨時重新調整,完成變更後再次點擊校正重新計算" -#: ../src/iop/ashift.c:6258 +#: ../src/iop/ashift.c:6205 msgid "manually draw structure lines" msgstr "" "手動繪製結構線\n" @@ -12256,48 +12728,48 @@ "結構線可以隨時重新調整,單擊線條或端點以移動,或是右鍵刪除線條\n" "完成變更後再次點擊校正,即可重新計算透視校正效果" -#: ../src/iop/ashift.c:6287 +#: ../src/iop/ashift.c:6234 msgid "rectangle" msgstr "矩形" -#: ../src/iop/ashift.c:6289 +#: ../src/iop/ashift.c:6236 msgid "lines" msgstr "線" -#: ../src/iop/ashift.c:6323 ../src/iop/clipping.c:3343 +#: ../src/iop/ashift.c:6270 ../src/iop/clipping.c:3383 #, c-format msgid "[%s] define/rotate horizon" msgstr "[%s] 自訂 / 旋轉水平線" -#: ../src/iop/ashift.c:6326 +#: ../src/iop/ashift.c:6273 #, c-format msgid "[%s on segment] select segment" msgstr "[線段 %s] 選取線段" -#: ../src/iop/ashift.c:6330 +#: ../src/iop/ashift.c:6277 #, c-format msgid "[%s on segment] unselect segment" msgstr "[線段 %s] 取消選取線段" -#: ../src/iop/ashift.c:6334 +#: ../src/iop/ashift.c:6281 #, c-format msgid "[%s] select all segments from zone" msgstr "[%s] 選擇區域內的所有線段" -#: ../src/iop/ashift.c:6338 +#: ../src/iop/ashift.c:6285 #, c-format msgid "[%s] unselect all segments from zone" msgstr "[%s] 取消選擇區域內的所有線段" -#: ../src/iop/atrous.c:123 ../src/iop/atrous.c:1638 +#: ../src/iop/atrous.c:122 ../src/iop/atrous.c:1770 msgid "contrast equalizer" msgstr "對比度等化器" -#: ../src/iop/atrous.c:128 +#: ../src/iop/atrous.c:127 msgid "sharpness|acutance|local contrast" msgstr "銳利度|局部對比|contrast|equalizer" -#: ../src/iop/atrous.c:133 +#: ../src/iop/atrous.c:132 msgid "add or remove local contrast, sharpness, acutance" msgstr "" "對比度等化器 | contrast equalizer\n" @@ -12307,178 +12779,178 @@ "縱軸表示不同細節頻率的亮度和彩度對比\n" "這個功能強大的模組可以達成多種效果,可藉由套用預設集了解控制邏輯" -#: ../src/iop/atrous.c:134 ../src/iop/bilateral.cc:100 ../src/iop/diffuse.c:145 +#: ../src/iop/atrous.c:133 ../src/iop/bilateral.cc:102 ../src/iop/diffuse.c:145 #: ../src/iop/exposure.c:131 ../src/iop/filmicrgb.c:352 #: ../src/iop/graduatednd.c:146 ../src/iop/negadoctor.c:146 -#: ../src/iop/rgbcurve.c:143 ../src/iop/rgblevels.c:123 ../src/iop/shadhi.c:197 -#: ../src/iop/sigmoid.c:102 ../src/iop/tonecurve.c:211 -#: ../src/iop/toneequal.c:324 +#: ../src/iop/rgbcurve.c:145 ../src/iop/rgblevels.c:125 ../src/iop/shadhi.c:144 +#: ../src/iop/sigmoid.c:209 ../src/iop/tonecurve.c:184 +#: ../src/iop/toneequal.c:332 msgid "corrective and creative" msgstr "修正與創意" -#: ../src/iop/atrous.c:135 ../src/iop/atrous.c:137 -#: ../src/iop/colorbalance.c:162 +#: ../src/iop/atrous.c:134 ../src/iop/atrous.c:136 +#: ../src/iop/colorbalance.c:164 msgid "linear, Lab, scene-referred" msgstr "線性、Lab、場景參照" -#: ../src/iop/atrous.c:136 ../src/iop/censorize.c:85 +#: ../src/iop/atrous.c:135 ../src/iop/censorize.c:85 #: ../src/iop/hazeremoval.c:114 msgid "frequential, RGB" msgstr "頻率、RGB" -#: ../src/iop/atrous.c:727 +#: ../src/iop/atrous.c:799 msgctxt "eq_preset" msgid "coarse" msgstr "粗糙" -#: ../src/iop/atrous.c:742 +#: ../src/iop/atrous.c:815 msgid "denoise & sharpen" msgstr "除雜訊並鋭化" -#: ../src/iop/atrous.c:757 +#: ../src/iop/atrous.c:831 msgctxt "atrous" msgid "sharpen" msgstr "銳利化" -#: ../src/iop/atrous.c:772 +#: ../src/iop/atrous.c:847 msgid "denoise chroma" msgstr "降低彩色雜訊" -#: ../src/iop/atrous.c:787 +#: ../src/iop/atrous.c:863 msgid "denoise" msgstr "減少雜訊" -#: ../src/iop/atrous.c:803 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:421 +#: ../src/iop/atrous.c:880 ../src/iop/bloom.c:75 ../src/iop/diffuse.c:448 msgid "bloom" msgstr "朦朧光暈" -#: ../src/iop/atrous.c:818 ../src/iop/bilat.c:169 +#: ../src/iop/atrous.c:896 ../src/iop/bilat.c:186 msgid "clarity" msgstr "清晰" -#: ../src/iop/atrous.c:838 +#: ../src/iop/atrous.c:917 msgid "deblur: large blur, strength 3" msgstr "去除模糊:大型模糊,強度高" -#: ../src/iop/atrous.c:855 +#: ../src/iop/atrous.c:935 msgid "deblur: medium blur, strength 3" msgstr "去除模糊:中等模糊,強度高" -#: ../src/iop/atrous.c:871 +#: ../src/iop/atrous.c:952 msgid "deblur: fine blur, strength 3" msgstr "去除模糊:細微模糊,強度高" -#: ../src/iop/atrous.c:889 +#: ../src/iop/atrous.c:971 msgid "deblur: large blur, strength 2" msgstr "去除模糊:大型模糊,強度中" -#: ../src/iop/atrous.c:906 +#: ../src/iop/atrous.c:989 msgid "deblur: medium blur, strength 2" msgstr "去除模糊:中等模糊,強度中" -#: ../src/iop/atrous.c:922 +#: ../src/iop/atrous.c:1006 msgid "deblur: fine blur, strength 2" msgstr "去除模糊:細微模糊,強度中" -#: ../src/iop/atrous.c:940 +#: ../src/iop/atrous.c:1025 msgid "deblur: large blur, strength 1" msgstr "去除模糊:大型模糊,強度低" -#: ../src/iop/atrous.c:957 +#: ../src/iop/atrous.c:1043 msgid "deblur: medium blur, strength 1" msgstr "去除模糊:中等模糊,強度低" -#: ../src/iop/atrous.c:973 +#: ../src/iop/atrous.c:1060 msgid "deblur: fine blur, strength 1" msgstr "去除模糊:細微模糊,強度低" -#: ../src/iop/atrous.c:1289 ../src/iop/atrous.c:1525 -#: ../src/iop/denoiseprofile.c:3510 ../src/iop/rawdenoise.c:738 +#: ../src/iop/atrous.c:1390 ../src/iop/atrous.c:1639 +#: ../src/iop/denoiseprofile.c:3514 ../src/iop/rawdenoise.c:754 msgid "coarse" msgstr "粗糙" -#: ../src/iop/atrous.c:1296 ../src/iop/atrous.c:1526 -#: ../src/iop/denoiseprofile.c:3518 ../src/iop/rawdenoise.c:746 +#: ../src/iop/atrous.c:1397 ../src/iop/atrous.c:1640 +#: ../src/iop/denoiseprofile.c:3522 ../src/iop/rawdenoise.c:762 msgid "fine" msgstr "精細" -#: ../src/iop/atrous.c:1308 +#: ../src/iop/atrous.c:1409 msgid "contrasty" msgstr "鮮明對比" -#: ../src/iop/atrous.c:1314 ../src/iop/denoiseprofile.c:3532 -#: ../src/iop/rawdenoise.c:760 +#: ../src/iop/atrous.c:1415 ../src/iop/denoiseprofile.c:3536 +#: ../src/iop/rawdenoise.c:776 msgid "noisy" msgstr "高雜訊" #. case atrous_s: -#: ../src/iop/atrous.c:1317 +#: ../src/iop/atrous.c:1418 msgid "bold" msgstr "加重" -#: ../src/iop/atrous.c:1318 +#: ../src/iop/atrous.c:1419 msgid "dull" msgstr "減低" -#: ../src/iop/atrous.c:1513 ../src/iop/atrous.c:1564 +#: ../src/iop/atrous.c:1627 ../src/iop/atrous.c:1685 msgid "boost" msgstr "加強" -#: ../src/iop/atrous.c:1514 +#: ../src/iop/atrous.c:1628 msgid "reduce" msgstr "減少" -#: ../src/iop/atrous.c:1515 +#: ../src/iop/atrous.c:1629 msgid "raise" msgstr "提升" -#: ../src/iop/atrous.c:1516 +#: ../src/iop/atrous.c:1630 msgid "lower" msgstr "降低" -#: ../src/iop/atrous.c:1523 +#: ../src/iop/atrous.c:1637 msgid "coarsest" msgstr "最粗糙" -#: ../src/iop/atrous.c:1524 +#: ../src/iop/atrous.c:1638 msgid "coarser" msgstr "更粗糙" -#: ../src/iop/atrous.c:1527 +#: ../src/iop/atrous.c:1641 msgid "finer" msgstr "更精細" -#: ../src/iop/atrous.c:1528 +#: ../src/iop/atrous.c:1642 msgid "finest" msgstr "最精細" -#: ../src/iop/atrous.c:1586 ../src/libs/export.c:1143 ../src/libs/export.c:1158 +#: ../src/iop/atrous.c:1710 ../src/libs/export.c:1239 ../src/libs/export.c:1255 msgid "x" msgstr "x" -#: ../src/iop/atrous.c:1666 ../src/iop/nlmeans.c:465 +#: ../src/iop/atrous.c:1799 ../src/iop/nlmeans.c:468 msgid "luma" msgstr "亮度" -#: ../src/iop/atrous.c:1666 +#: ../src/iop/atrous.c:1800 msgid "change lightness at each feature size" msgstr "" "調整不同影像細節區域的亮度對比,以白色曲線顯示\n" "執行精細的局部對比度控制,升降曲線左側調整低頻的亮度對比,右側控制高頻區域\n" "圖表底部第二條曲線調整雜訊抑制,拉高曲線增加去除亮度雜訊的強度" -#: ../src/iop/atrous.c:1667 +#: ../src/iop/atrous.c:1802 msgid "change color saturation at each feature size" msgstr "" "調整不同影像細節區域的彩度對比,以棕色曲線顯示\n" "精細的顏色對比度(飽和度)控制,左側調整低頻的彩度對比,右側控制高頻區域\n" "圖表底部第二條曲線調整雜訊抑制,拉高曲線增加去除彩度雜訊的強度" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1804 msgid "edges" msgstr "邊緣修正" -#: ../src/iop/atrous.c:1668 +#: ../src/iop/atrous.c:1805 msgid "" "change edge halos at each feature size\n" "only changes results of luma and chroma tabs" @@ -12487,97 +12959,97 @@ "此功能不直接調整影像,而是調整邊緣計算方法,以避免產生邊緣光暈的偽影\n" "亮度和彩度對比出現不自然的邊緣時可以使用,調整數值因影像而異必須自行嘗試" -#: ../src/iop/atrous.c:1679 ../src/iop/colorbalancergb.c:2058 -#: ../src/iop/colorzones.c:2473 ../src/iop/denoiseprofile.c:3743 -#: ../src/iop/filmicrgb.c:4407 ../src/iop/lowlight.c:823 -#: ../src/iop/rawdenoise.c:919 ../src/iop/toneequal.c:3371 +#: ../src/iop/atrous.c:1818 ../src/iop/colorbalancergb.c:2129 +#: ../src/iop/colorzones.c:2732 ../src/iop/denoiseprofile.c:3747 +#: ../src/iop/filmicrgb.c:4471 ../src/iop/lowlight.c:821 +#: ../src/iop/rawdenoise.c:935 ../src/iop/toneequal.c:3424 msgid "graph" msgstr "圖表" -#: ../src/iop/atrous.c:1690 ../src/iop/colorzones.c:2470 +#: ../src/iop/atrous.c:1836 ../src/iop/colorzones.c:2729 msgid "make effect stronger or weaker" msgstr "調整效果的強弱" -#: ../src/iop/basecurve.c:213 +#: ../src/iop/basecurve.c:260 msgid "neutral" msgstr "中性" -#: ../src/iop/basecurve.c:214 +#: ../src/iop/basecurve.c:261 msgid "canon eos like" msgstr "Canon EOS 風格" -#: ../src/iop/basecurve.c:215 +#: ../src/iop/basecurve.c:262 msgid "canon eos like alternate" msgstr "Canon EOS 備用風格" -#: ../src/iop/basecurve.c:216 +#: ../src/iop/basecurve.c:263 msgid "nikon like" msgstr "Nikon 風格" -#: ../src/iop/basecurve.c:217 +#: ../src/iop/basecurve.c:264 msgid "nikon like alternate" msgstr "Nikon 備用風格" -#: ../src/iop/basecurve.c:218 +#: ../src/iop/basecurve.c:265 msgid "sony alpha like" msgstr "SONY α 風格" -#: ../src/iop/basecurve.c:219 +#: ../src/iop/basecurve.c:266 msgid "pentax like" msgstr "PENTAX 風格" -#: ../src/iop/basecurve.c:220 +#: ../src/iop/basecurve.c:267 msgid "ricoh like" msgstr "RICOH 風格" -#: ../src/iop/basecurve.c:221 +#: ../src/iop/basecurve.c:268 msgid "olympus like" msgstr "OLYMPUS 風格" -#: ../src/iop/basecurve.c:222 +#: ../src/iop/basecurve.c:269 msgid "olympus like alternate" msgstr "OLYMPUS 備用風格" -#: ../src/iop/basecurve.c:223 +#: ../src/iop/basecurve.c:270 msgid "panasonic like" msgstr "Panasonic 風格" -#: ../src/iop/basecurve.c:224 +#: ../src/iop/basecurve.c:271 msgid "leica like" msgstr "Leica 風格" -#: ../src/iop/basecurve.c:225 +#: ../src/iop/basecurve.c:272 msgid "kodak easyshare like" msgstr "Kodak easyshare 風格" -#: ../src/iop/basecurve.c:226 +#: ../src/iop/basecurve.c:273 msgid "konica minolta like" msgstr "KONICA MINOLTA 風格" -#: ../src/iop/basecurve.c:227 +#: ../src/iop/basecurve.c:274 msgid "samsung like" msgstr "SAMSUNG 風格" -#: ../src/iop/basecurve.c:228 +#: ../src/iop/basecurve.c:275 msgid "fujifilm like" msgstr "FUJIFILM 風格" -#: ../src/iop/basecurve.c:229 +#: ../src/iop/basecurve.c:276 msgid "nokia like" msgstr "NOKIA 風格" #. clang-format off #. smoother cubic spline curve -#: ../src/iop/basecurve.c:284 ../src/iop/colorzones.c:2495 -#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1173 +#: ../src/iop/basecurve.c:331 ../src/iop/colorzones.c:2763 +#: ../src/iop/rgbcurve.c:1411 ../src/iop/tonecurve.c:1195 msgid "cubic spline" msgstr "三次擬合曲線" -#: ../src/iop/basecurve.c:343 +#: ../src/iop/basecurve.c:390 msgid "base curve" msgstr "基礎曲線" -#: ../src/iop/basecurve.c:350 +#: ../src/iop/basecurve.c:397 msgid "" "apply a view transform based on personal or camera manufacturer look,\n" "for corrective purposes, to prepare images for display" @@ -12589,55 +13061,55 @@ "並依 EXIF 資料自動套用相機曲線,以便修正影像符合顯示\n" "若使用「場景參照」工作流程則無需使用此模組" -#: ../src/iop/basecurve.c:352 ../src/iop/cacorrect.c:78 -#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:135 -#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:727 +#: ../src/iop/basecurve.c:399 ../src/iop/cacorrect.c:84 +#: ../src/iop/cacorrectrgb.c:170 ../src/iop/colorreconstruction.c:120 +#: ../src/iop/defringe.c:82 ../src/iop/denoiseprofile.c:779 #: ../src/iop/flip.c:110 ../src/iop/hazeremoval.c:112 -#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:73 -#: ../src/iop/invert.c:119 ../src/iop/lens.cc:241 ../src/iop/nlmeans.c:95 -#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:130 -#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:94 ../src/iop/spots.c:69 -#: ../src/iop/temperature.c:212 +#: ../src/iop/highlights.c:179 ../src/iop/hotpixels.c:75 +#: ../src/iop/invert.c:136 ../src/iop/lens.cc:262 ../src/iop/nlmeans.c:89 +#: ../src/iop/profile_gamma.c:102 ../src/iop/rawdenoise.c:144 +#: ../src/iop/retouch.c:209 ../src/iop/sharpen.c:96 ../src/iop/spots.c:69 +#: ../src/iop/temperature.c:220 msgid "corrective" msgstr "修正" -#: ../src/iop/basecurve.c:353 ../src/iop/channelmixer.c:140 -#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:142 +#: ../src/iop/basecurve.c:400 ../src/iop/channelmixer.c:140 +#: ../src/iop/channelmixer.c:142 ../src/iop/lut3d.c:143 #: ../src/iop/negadoctor.c:147 ../src/iop/profile_gamma.c:103 -#: ../src/iop/rgbcurve.c:144 ../src/iop/rgbcurve.c:146 -#: ../src/iop/rgblevels.c:124 ../src/iop/sigmoid.c:105 ../src/iop/soften.c:102 -#: ../src/iop/soften.c:104 +#: ../src/iop/rgbcurve.c:146 ../src/iop/rgbcurve.c:148 +#: ../src/iop/rgblevels.c:126 ../src/iop/sigmoid.c:210 ../src/iop/soften.c:104 +#: ../src/iop/soften.c:106 msgid "linear, RGB, display-referred" msgstr "線性、RGB、顯示參照" -#: ../src/iop/basecurve.c:354 ../src/iop/basicadj.c:149 -#: ../src/iop/colorbalance.c:163 ../src/iop/colorbalancergb.c:187 +#: ../src/iop/basecurve.c:401 ../src/iop/basicadj.c:175 +#: ../src/iop/colorbalance.c:165 ../src/iop/colorbalancergb.c:187 #: ../src/iop/dither.c:121 ../src/iop/filmicrgb.c:354 #: ../src/iop/graduatednd.c:148 ../src/iop/negadoctor.c:148 -#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:145 -#: ../src/iop/rgblevels.c:125 ../src/iop/sigmoid.c:104 -#: ../src/iop/vignette.c:161 ../src/iop/watermark.c:379 +#: ../src/iop/profile_gamma.c:104 ../src/iop/rgbcurve.c:147 +#: ../src/iop/rgblevels.c:127 ../src/iop/sigmoid.c:210 +#: ../src/iop/vignette.c:122 ../src/iop/watermark.c:424 msgid "non-linear, RGB" msgstr "非線性、RGB" -#: ../src/iop/basecurve.c:355 ../src/iop/dither.c:120 ../src/iop/dither.c:122 +#: ../src/iop/basecurve.c:402 ../src/iop/dither.c:120 ../src/iop/dither.c:122 #: ../src/iop/filmicrgb.c:355 ../src/iop/graduatednd.c:149 #: ../src/iop/negadoctor.c:149 ../src/iop/profile_gamma.c:105 -#: ../src/iop/rgblevels.c:126 ../src/iop/vignette.c:160 -#: ../src/iop/vignette.c:162 ../src/iop/watermark.c:378 -#: ../src/iop/watermark.c:380 +#: ../src/iop/rgblevels.c:128 ../src/iop/vignette.c:121 +#: ../src/iop/vignette.c:123 ../src/iop/watermark.c:423 +#: ../src/iop/watermark.c:425 msgid "non-linear, RGB, display-referred" msgstr "非線性、RGB、顯示參照" -#: ../src/iop/basecurve.c:2184 +#: ../src/iop/basecurve.c:2205 msgid "abscissa: input, ordinate: output. works on RGB channels" msgstr "" "橫座標:輸入\n" "縱座標:輸出" -#: ../src/iop/basecurve.c:2190 ../src/iop/basicadj.c:612 -#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1072 -#: ../src/iop/tonecurve.c:1184 +#: ../src/iop/basecurve.c:2211 ../src/iop/basicadj.c:642 +#: ../src/iop/rgbcurve.c:1426 ../src/iop/rgblevels.c:1133 +#: ../src/iop/tonecurve.c:1206 msgid "method to preserve colors when applying contrast" msgstr "" "套用曲線時維持顏色色相不變的方法\n" @@ -12655,15 +13127,15 @@ "RGB 乘冪範數:使用 RGB 的立方和除以平方和加權計算,通常是良好的折衷算法\n" "基礎乘冪:以 RGB 的幾何距離計算,特色是任何 RGB 空間都可以獲得一致的效果" -#: ../src/iop/basecurve.c:2194 +#: ../src/iop/basecurve.c:2215 msgid "two exposures" msgstr "曝光兩次" -#: ../src/iop/basecurve.c:2195 +#: ../src/iop/basecurve.c:2216 msgid "three exposures" msgstr "曝光三次" -#: ../src/iop/basecurve.c:2196 +#: ../src/iop/basecurve.c:2217 msgid "" "fuse this image stopped up/down a couple of times with itself, to compress " "high dynamic range. expose for the highlights before use." @@ -12672,11 +13144,11 @@ "可設定與兩張或三張的提高曝光副本合併\n" "為獲得最佳效果,先在「曝光」模組裡調整正確的亮部曝光" -#: ../src/iop/basecurve.c:2201 +#: ../src/iop/basecurve.c:2222 msgid "how many stops to shift the individual exposures apart" msgstr "以 EV 為單位調整每張要融合的影像副本之間曝光要提高多少" -#: ../src/iop/basecurve.c:2210 +#: ../src/iop/basecurve.c:2231 msgid "" "whether to shift exposure up or down (-1: reduce highlight, +1: reduce " "shadows)" @@ -12686,40 +13158,39 @@ "+1:減少暗部\n" "0:維持整體的亮度" -#: ../src/iop/basecurve.c:2215 ../src/iop/tonecurve.c:1187 +#: ../src/iop/basecurve.c:2236 ../src/iop/tonecurve.c:1209 msgid "scale for graph" msgstr "圖表座標顯示比例(線性 ↔ 對數)" -#: ../src/iop/basicadj.c:136 +#: ../src/iop/basicadj.c:162 msgid "this module is deprecated. please use the quick access panel instead." msgstr "此模組已被汰除,建議使用「快速存取面板」替代" -#: ../src/iop/basicadj.c:141 +#: ../src/iop/basicadj.c:167 msgid "basic adjustments" msgstr "基本調整" -#: ../src/iop/basicadj.c:146 +#: ../src/iop/basicadj.c:172 msgid "apply usual image adjustments" msgstr "套用一般的影像調整" -#: ../src/iop/basicadj.c:147 ../src/iop/bilat.c:102 ../src/iop/bloom.c:81 -#: ../src/iop/blurs.c:93 ../src/iop/borders.c:198 ../src/iop/censorize.c:83 -#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:97 -#: ../src/iop/colorize.c:105 ../src/iop/colormapping.c:153 -#: ../src/iop/colorzones.c:145 ../src/iop/grain.c:434 ../src/iop/highpass.c:78 -#: ../src/iop/levels.c:138 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 -#: ../src/iop/lowpass.c:134 ../src/iop/monochrome.c:98 ../src/iop/soften.c:101 -#: ../src/iop/splittoning.c:103 ../src/iop/velvia.c:105 -#: ../src/iop/vibrance.c:95 ../src/iop/vignette.c:159 -#: ../src/iop/watermark.c:377 +#: ../src/iop/basicadj.c:173 ../src/iop/bilat.c:83 ../src/iop/bloom.c:81 +#: ../src/iop/blurs.c:93 ../src/iop/borders.c:323 ../src/iop/censorize.c:83 +#: ../src/iop/colisa.c:90 ../src/iop/colorcontrast.c:89 +#: ../src/iop/colorize.c:98 ../src/iop/colormapping.c:153 +#: ../src/iop/colorzones.c:146 ../src/iop/grain.c:450 ../src/iop/highpass.c:78 +#: ../src/iop/levels.c:140 ../src/iop/liquify.c:297 ../src/iop/lowlight.c:92 +#: ../src/iop/lowpass.c:106 ../src/iop/monochrome.c:100 ../src/iop/soften.c:103 +#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:98 ../src/iop/vibrance.c:97 +#: ../src/iop/vignette.c:120 ../src/iop/watermark.c:422 msgid "creative" msgstr "創意" -#: ../src/iop/basicadj.c:150 ../src/iop/colorbalancergb.c:188 +#: ../src/iop/basicadj.c:176 ../src/iop/colorbalancergb.c:188 msgid "non-linear, RGB, scene-referred" msgstr "非線性、RGB、場景參照" -#: ../src/iop/basicadj.c:593 +#: ../src/iop/basicadj.c:623 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -12729,41 +13200,41 @@ "調整黑點以保留負的 RGB 值,不應用此設定來增加黑色濃度\n" "如果設定不當將會把近黑點的顏色推出色域,並造成 RGB 負值" -#: ../src/iop/basicadj.c:601 ../src/iop/exposure.c:1118 +#: ../src/iop/basicadj.c:631 ../src/iop/exposure.c:1136 msgid "adjust the exposure correction" msgstr "" "調整曝光校正,向右增加或向左減少曝光值(EV)\n" "使用右側色彩選取工具選擇影像上的區域,以執行「點測光曝光對應」" -#: ../src/iop/basicadj.c:605 +#: ../src/iop/basicadj.c:635 msgid "highlight compression adjustment" msgstr "亮部壓縮調整" -#: ../src/iop/basicadj.c:609 ../src/iop/colisa.c:308 +#: ../src/iop/basicadj.c:639 ../src/iop/colisa.c:302 msgid "contrast adjustment" msgstr "對比度調整" -#: ../src/iop/basicadj.c:617 +#: ../src/iop/basicadj.c:647 msgid "middle gray adjustment" msgstr "中間灰調整" -#: ../src/iop/basicadj.c:622 ../src/iop/colisa.c:309 +#: ../src/iop/basicadj.c:652 ../src/iop/colisa.c:303 msgid "brightness adjustment" msgstr "亮度調整" -#: ../src/iop/basicadj.c:625 +#: ../src/iop/basicadj.c:655 msgid "saturation adjustment" msgstr "飽和度調整" -#: ../src/iop/basicadj.c:628 +#: ../src/iop/basicadj.c:658 msgid "vibrance adjustment" msgstr "自然飽和度調整" -#: ../src/iop/basicadj.c:632 +#: ../src/iop/basicadj.c:662 msgid "apply auto exposure based on the entire image" msgstr "根據整個影像來套用自動曝光" -#: ../src/iop/basicadj.c:639 +#: ../src/iop/basicadj.c:669 msgid "" "apply auto exposure based on a region defined by the user\n" "click and drag to draw the area\n" @@ -12772,20 +13243,20 @@ "根據使用者自訂的範圍套用自動曝光\n" "點擊並拖曳以繪製區域,右鍵點擊取消" -#: ../src/iop/basicadj.c:647 +#: ../src/iop/basicadj.c:677 msgid "clip" msgstr "剪裁" -#: ../src/iop/basicadj.c:649 +#: ../src/iop/basicadj.c:679 msgid "adjusts clipping value for auto exposure calculation" msgstr "調整自動計算曝光的剪裁臨界值" #. local contrast -#: ../src/iop/bilat.c:96 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:551 +#: ../src/iop/bilat.c:77 ../src/iop/clahe.c:64 ../src/iop/diffuse.c:578 msgid "local contrast" msgstr "局部對比度" -#: ../src/iop/bilat.c:101 +#: ../src/iop/bilat.c:82 msgid "manipulate local and global contrast separately" msgstr "" "局部對比度 | local contrast\n" @@ -12794,34 +13265,34 @@ "在 CIELAB 的 L* 色版中執行對比度調整\n" "可用來取代傳統的 UnSharp Mask 銳利化" -#: ../src/iop/bilat.c:103 ../src/iop/bilat.c:105 ../src/iop/bloom.c:82 +#: ../src/iop/bilat.c:84 ../src/iop/bilat.c:86 ../src/iop/bloom.c:82 #: ../src/iop/bloom.c:84 ../src/iop/colisa.c:91 ../src/iop/colisa.c:93 -#: ../src/iop/colorcontrast.c:98 ../src/iop/colorcontrast.c:100 +#: ../src/iop/colorcontrast.c:90 ../src/iop/colorcontrast.c:92 #: ../src/iop/colorcorrection.c:78 ../src/iop/colorcorrection.c:80 -#: ../src/iop/colorize.c:108 ../src/iop/colormapping.c:156 -#: ../src/iop/colorreconstruction.c:138 ../src/iop/colorzones.c:148 -#: ../src/iop/defringe.c:85 ../src/iop/grain.c:435 ../src/iop/grain.c:437 -#: ../src/iop/levels.c:141 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 -#: ../src/iop/monochrome.c:101 ../src/iop/nlmeans.c:96 ../src/iop/nlmeans.c:98 -#: ../src/iop/shadhi.c:200 ../src/iop/tonecurve.c:214 ../src/iop/vibrance.c:98 +#: ../src/iop/colorize.c:101 ../src/iop/colormapping.c:156 +#: ../src/iop/colorreconstruction.c:123 ../src/iop/colorzones.c:149 +#: ../src/iop/defringe.c:85 ../src/iop/grain.c:451 ../src/iop/grain.c:453 +#: ../src/iop/levels.c:143 ../src/iop/lowlight.c:93 ../src/iop/lowlight.c:95 +#: ../src/iop/monochrome.c:103 ../src/iop/nlmeans.c:90 ../src/iop/nlmeans.c:92 +#: ../src/iop/shadhi.c:147 ../src/iop/tonecurve.c:187 ../src/iop/vibrance.c:100 msgid "non-linear, Lab, display-referred" msgstr "非線性、Lab、顯示參照" -#: ../src/iop/bilat.c:104 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 -#: ../src/iop/colorcontrast.c:99 ../src/iop/colorcorrection.c:79 -#: ../src/iop/colorize.c:107 ../src/iop/colormapping.c:155 -#: ../src/iop/colorreconstruction.c:137 ../src/iop/colorzones.c:147 -#: ../src/iop/defringe.c:84 ../src/iop/grain.c:436 ../src/iop/levels.c:140 -#: ../src/iop/monochrome.c:100 ../src/iop/nlmeans.c:97 ../src/iop/shadhi.c:199 -#: ../src/iop/tonecurve.c:213 ../src/iop/vibrance.c:97 +#: ../src/iop/bilat.c:85 ../src/iop/bloom.c:83 ../src/iop/colisa.c:92 +#: ../src/iop/colorcontrast.c:91 ../src/iop/colorcorrection.c:79 +#: ../src/iop/colorize.c:100 ../src/iop/colormapping.c:155 +#: ../src/iop/colorreconstruction.c:122 ../src/iop/colorzones.c:148 +#: ../src/iop/defringe.c:84 ../src/iop/grain.c:452 ../src/iop/levels.c:142 +#: ../src/iop/monochrome.c:102 ../src/iop/nlmeans.c:91 ../src/iop/shadhi.c:146 +#: ../src/iop/tonecurve.c:186 ../src/iop/vibrance.c:99 msgid "non-linear, Lab" msgstr "非線性、Lab" -#: ../src/iop/bilat.c:178 +#: ../src/iop/bilat.c:195 msgid "HDR local tone-mapping" msgstr "HDR 局部階調映射" -#: ../src/iop/bilat.c:431 +#: ../src/iop/bilat.c:441 msgid "" "the filter used for local contrast enhancement. bilateral is faster but can " "lead to artifacts around edges for extreme settings." @@ -12830,39 +13301,39 @@ "雙邊濾波速度較快,但在某些極端參數設定下會導致邊緣偽影\n" "局部拉普拉斯被設計成不易產生光暈和階調反轉等瑕疵" -#: ../src/iop/bilat.c:435 ../src/iop/globaltonemap.c:635 +#: ../src/iop/bilat.c:445 ../src/iop/globaltonemap.c:668 msgid "detail" msgstr "影像細節" -#: ../src/iop/bilat.c:438 +#: ../src/iop/bilat.c:448 msgid "changes the local contrast" msgstr "調整局部對比度" -#: ../src/iop/bilat.c:453 +#: ../src/iop/bilat.c:463 msgid "feature size of local details (spatial sigma of bilateral filter)" msgstr "" "調整影像細節的尺寸\n" "等同雙邊濾波的空間標準差設定" -#: ../src/iop/bilat.c:461 +#: ../src/iop/bilat.c:471 msgid "L difference to detect edges (range sigma of bilateral filter)" msgstr "" "調整影像細節的 L* 差異\n" "等同雙邊濾波的值域標準差設定" -#: ../src/iop/bilat.c:467 +#: ../src/iop/bilat.c:477 msgid "changes the local contrast of highlights" msgstr "" "調整局部對比的亮部\n" "這會影響局部對比中的亮部強度,較低的值可以拉低亮部" -#: ../src/iop/bilat.c:473 +#: ../src/iop/bilat.c:483 msgid "changes the local contrast of shadows" msgstr "" "調整局部對比的暗部\n" "這會影響局部對比中的暗部強度,較低的值可以提升暗部" -#: ../src/iop/bilat.c:479 +#: ../src/iop/bilat.c:489 msgid "" "defines what counts as mid-tones. lower for better dynamic range compression " "(reduce shadow and highlight contrast), increase for more powerful local " @@ -12871,7 +13342,7 @@ "自定義局部對比度的中間調範圍,這會影響動態範圍壓縮\n" "較低的值可以獲得較好的動態範圍壓縮,較高的值有更強的局部對比度" -#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:396 +#: ../src/iop/bilateral.cc:74 ../src/iop/diffuse.c:423 msgid "surface blur" msgstr "表面模糊" @@ -12879,7 +13350,7 @@ msgid "denoise (bilateral filter)" msgstr "雙邊濾波除雜訊" -#: ../src/iop/bilateral.cc:99 +#: ../src/iop/bilateral.cc:101 msgid "apply edge-aware surface blur to denoise or smoothen textures" msgstr "" "表面模糊 | surface blur\n" @@ -12889,18 +13360,18 @@ "「天文攝影除雜訊」或「相機特性除雜訊」\n" "此模組還可用作創意濾鏡以創造卡通般的外觀效果" -#: ../src/iop/bilateral.cc:102 ../src/iop/blurs.c:93 -#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:729 -#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/soften.c:103 -#: ../src/iop/splittoning.c:105 ../src/iop/velvia.c:107 +#: ../src/iop/bilateral.cc:104 ../src/iop/blurs.c:93 +#: ../src/iop/channelmixer.c:141 ../src/iop/denoiseprofile.c:781 +#: ../src/iop/diffuse.c:147 ../src/iop/exposure.c:133 ../src/iop/primaries.c:82 +#: ../src/iop/soften.c:105 ../src/iop/splittoning.c:107 ../src/iop/velvia.c:100 msgid "linear, RGB" msgstr "線性、RGB" -#: ../src/iop/bilateral.cc:136 +#: ../src/iop/bilateral.cc:138 msgid "image too large" msgstr "影像尺寸太大" -#: ../src/iop/bilateral.cc:137 +#: ../src/iop/bilateral.cc:139 msgid "" "this module is unable to process\n" "images with more than 2 gigapixels.\n" @@ -12909,19 +13380,19 @@ "此模組無法執行,已略過處理步驟\n" "因為影像尺寸超過二十億畫素" -#: ../src/iop/bilateral.cc:351 +#: ../src/iop/bilateral.cc:353 msgid "spatial extent of the gaussian" msgstr "高斯模糊的尺寸" -#: ../src/iop/bilateral.cc:355 +#: ../src/iop/bilateral.cc:357 msgid "how much to blur red" msgstr "紅色色版模糊量" -#: ../src/iop/bilateral.cc:360 +#: ../src/iop/bilateral.cc:362 msgid "how much to blur green" msgstr "綠色色版模糊量" -#: ../src/iop/bilateral.cc:365 +#: ../src/iop/bilateral.cc:367 msgid "how much to blur blue" msgstr "藍色色版模糊量" @@ -12934,20 +13405,20 @@ "此模組在 Lab 空間中執行模糊所以不再推薦使用\n" "可嘗試以「柔焦」模組替代" -#: ../src/iop/bloom.c:368 ../src/iop/soften.c:369 ../src/libs/camera.c:567 -#: ../src/libs/masks.c:105 +#: ../src/iop/bloom.c:364 ../src/iop/soften.c:364 ../src/libs/camera.c:567 +#: ../src/libs/masks.c:106 msgid "size" msgstr "尺寸" -#: ../src/iop/bloom.c:370 +#: ../src/iop/bloom.c:366 msgid "the size of bloom" msgstr "光暈的大小" -#: ../src/iop/bloom.c:374 +#: ../src/iop/bloom.c:370 msgid "the threshold of light" msgstr "亮度門檻" -#: ../src/iop/bloom.c:378 +#: ../src/iop/bloom.c:374 msgid "the strength of bloom" msgstr "光暈的強度" @@ -12968,193 +13439,204 @@ "模擬物理上精確的鏡頭或動態模糊以及高斯模糊\n" "模組中顯示的圖形表示模糊的形狀" -#: ../src/iop/borders.c:187 +#: ../src/iop/borders.c:312 msgid "framing" msgstr "外框" -#: ../src/iop/borders.c:192 +#: ../src/iop/borders.c:317 msgid "borders|enlarge canvas|expand canvas" msgstr "邊框|版面尺寸|borders|enlarge canvas|expand canvas" -#: ../src/iop/borders.c:197 +#: ../src/iop/borders.c:322 msgid "add solid borders or margins around the picture" msgstr "" "外框 | framing\n" "\n" "在影像周圍增加外框,由實心的外框和框線兩部分組成" -#: ../src/iop/borders.c:199 ../src/iop/borders.c:201 ../src/iop/lut3d.c:144 +#: ../src/iop/borders.c:324 ../src/iop/borders.c:326 ../src/iop/lut3d.c:145 msgid "linear or non-linear, RGB, display-referred" msgstr "線性或非線性、RGB、顯示參照" -#: ../src/iop/borders.c:727 +#: ../src/iop/borders.c:737 msgid "15:10 postcard white" msgstr "15:10 白色明信片" -#: ../src/iop/borders.c:732 +#: ../src/iop/borders.c:742 msgid "15:10 postcard black" msgstr "15:10 黑色明信片" -#: ../src/iop/borders.c:942 -msgid "size of the border in percent of the full image" -msgstr "設定外框尺寸(相對於影像的百分比)" +#: ../src/iop/borders.c:948 +msgid "which dimension to use for the size calculation" +msgstr "計算時使用的邊長" + +#: ../src/iop/borders.c:954 +msgid "size of the border in percent of the chosen basis" +msgstr "設定外框尺寸(相對於選定邊長的百分比)" -#: ../src/iop/borders.c:944 ../src/iop/clipping.c:2218 ../src/iop/crop.c:1224 +#: ../src/iop/borders.c:956 ../src/iop/clipping.c:2271 ../src/iop/crop.c:1208 msgid "aspect" msgstr "影像長寬比" -#: ../src/iop/borders.c:945 +#: ../src/iop/borders.c:957 msgid "" -"select the aspect ratio (right click on slider below to type your own w:h)" -msgstr "選擇影像比例(滑鼠右鍵點擊下方滑桿以輸入自訂寬高比 w:h)" +"select the aspect ratio\n" +"(right click on slider below to type your own w:h)" +msgstr "" +"選擇影像比例\n" +"(滑鼠右鍵點擊下方滑桿以輸入自訂寬高比 w:h)" -#: ../src/iop/borders.c:948 +#: ../src/iop/borders.c:961 msgid "3:1" msgstr "3:1" -#: ../src/iop/borders.c:949 +#: ../src/iop/borders.c:962 msgid "95:33" msgstr "95:33" -#: ../src/iop/borders.c:950 +#: ../src/iop/borders.c:963 msgid "CinemaScope 2.39:1" msgstr "電影寬螢幕 2.39:1" -#: ../src/iop/borders.c:951 +#: ../src/iop/borders.c:964 msgid "2:1" msgstr "2:1" -#: ../src/iop/borders.c:952 +#: ../src/iop/borders.c:965 msgid "16:9" msgstr "16:9" -#: ../src/iop/borders.c:953 +#: ../src/iop/borders.c:966 msgid "5:3" msgstr "5:3" -#: ../src/iop/borders.c:954 +#: ../src/iop/borders.c:967 msgid "US Legal 8.5x14" msgstr "美規 Legal 8.5 x 14" -#: ../src/iop/borders.c:955 ../src/iop/clipping.c:2131 ../src/iop/crop.c:1128 +#: ../src/iop/borders.c:968 ../src/iop/clipping.c:2184 ../src/iop/crop.c:1112 msgid "golden cut" msgstr "黃金比例" -#: ../src/iop/borders.c:956 +#: ../src/iop/borders.c:969 msgid "16:10" msgstr "16:10" -#: ../src/iop/borders.c:957 +#: ../src/iop/borders.c:970 msgid "3:2 (4x6, 10x15cm)" msgstr "3:2(4 x 6、10 x 15 cm)" -#: ../src/iop/borders.c:959 +#: ../src/iop/borders.c:972 msgid "DIN" msgstr "DIN" -#: ../src/iop/borders.c:960 +#: ../src/iop/borders.c:973 msgid "7:5" msgstr "7:5" -#: ../src/iop/borders.c:961 +#: ../src/iop/borders.c:974 msgid "4:3" msgstr "4:3" -#: ../src/iop/borders.c:962 +#: ../src/iop/borders.c:975 msgid "US Letter 8.5x11" msgstr "美規 Letter 8.5 x 11" -#: ../src/iop/borders.c:963 +#: ../src/iop/borders.c:976 msgid "14:11" msgstr "14:11" -#: ../src/iop/borders.c:964 +#: ../src/iop/borders.c:977 msgid "5:4 (8x10)" msgstr "5:4(8 x 10)" -#: ../src/iop/borders.c:965 ../src/iop/clipping.c:2121 ../src/iop/crop.c:1118 -#: ../src/libs/filtering.c:301 ../src/libs/filters/ratio.c:126 -#: ../src/libs/histogram.c:141 +#: ../src/iop/borders.c:978 ../src/iop/clipping.c:2174 ../src/iop/crop.c:1102 +#: ../src/libs/filtering.c:307 ../src/libs/filters/ratio.c:126 +#: ../src/libs/histogram.c:118 msgid "square" msgstr "正方形" -#: ../src/iop/borders.c:966 +#: ../src/iop/borders.c:979 msgid "constant border" msgstr "四邊外框等大" -#: ../src/iop/borders.c:967 ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:980 ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "custom..." msgstr "自訂比例…" -#: ../src/iop/borders.c:972 -msgid "set the custom aspect ratio (right click to enter number or w:h)" -msgstr "自訂影像比例(點擊滑鼠右鍵輸入數值或寬高比 w:h)" +#: ../src/iop/borders.c:984 +msgid "" +"set the custom aspect ratio\n" +"(right click to enter number or w:h)" +msgstr "" +"自訂影像比例\n" +"(點擊滑鼠右鍵輸入數值或寬高比 w:h)" -#: ../src/iop/borders.c:975 +#: ../src/iop/borders.c:989 msgid "aspect ratio orientation of the image with border" msgstr "" "影像加上外框後的方向,可選擇直式或橫式\n" "或使用自動,會自動符合原始影像方向" -#: ../src/iop/borders.c:977 +#: ../src/iop/borders.c:991 msgid "horizontal position" msgstr "水平位置" -#: ../src/iop/borders.c:978 +#: ../src/iop/borders.c:992 msgid "" -"select the horizontal position ratio relative to top or right click and type " -"your own (y:h)" +"select the horizontal position ratio relative to top\n" +"(right click on slider below to type your own x:w)" msgstr "" "設定原始影像在整個完成影像中的水平位置\n" -"從右側快速選取比例,或使用以下滑桿自訂\n" +"(滑鼠右鍵點擊下方滑桿輸入自訂比例 x:w)\n" "數值代表原始影像距離左側邊界的相對大小" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "center" msgstr "置中" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "1/3" msgstr "1/3" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:995 ../src/iop/borders.c:1006 msgid "3/8" msgstr "3/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "5/8" msgstr "5/8" -#: ../src/iop/borders.c:981 ../src/iop/borders.c:992 +#: ../src/iop/borders.c:996 ../src/iop/borders.c:1007 msgid "2/3" msgstr "2/3" -#: ../src/iop/borders.c:986 +#: ../src/iop/borders.c:1000 msgid "custom horizontal position" msgstr "自訂水平位置" -#: ../src/iop/borders.c:988 +#: ../src/iop/borders.c:1002 msgid "vertical position" msgstr "垂直位置" -#: ../src/iop/borders.c:989 +#: ../src/iop/borders.c:1003 msgid "" -"select the vertical position ratio relative to left or right click and type " -"your own (x:w)" +"select the vertical position ratio relative to left\n" +"(right click on slider below to type your own y:h)" msgstr "" "設定原始影像在整個完成影像中的垂直位置\n" -"從右側快速選取比例,或使用以下滑桿自訂\n" +"(滑鼠右鍵點擊下方滑桿輸入自訂比例 y:h)\n" "數值代表原始影像距離上方邊界的相對大小" -#: ../src/iop/borders.c:997 +#: ../src/iop/borders.c:1011 msgid "custom vertical position" msgstr "自定垂直位置" -#: ../src/iop/borders.c:1002 +#: ../src/iop/borders.c:1017 msgid "size of the frame line in percent of min border width" msgstr "設定框線尺寸(相對於外框尺寸的百分比)" -#: ../src/iop/borders.c:1007 +#: ../src/iop/borders.c:1023 msgid "offset of the frame line beginning on picture side" msgstr "" "框線相對於原始影像的位置\n" @@ -13162,45 +13644,45 @@ "0% 時框線緊貼原始影像,100% 時位於外框最外側\n" "若外框四邊大小不同,框線可能無法每邊都緊貼到最外側" -#: ../src/iop/borders.c:1014 ../src/iop/borders.c:1023 +#: ../src/iop/borders.c:1033 ../src/iop/borders.c:1044 msgid "border color" msgstr "外框顏色" -#: ../src/iop/borders.c:1018 +#: ../src/iop/borders.c:1037 msgid "select border color" msgstr "選擇外框顏色" -#: ../src/iop/borders.c:1022 +#: ../src/iop/borders.c:1043 msgid "pick border color from image" msgstr "從影像中選取外框顏色" -#: ../src/iop/borders.c:1023 ../src/iop/borders.c:1036 -#: ../src/iop/colorzones.c:2415 ../src/iop/colorzones.c:2425 -#: ../src/iop/negadoctor.c:848 ../src/iop/negadoctor.c:915 -#: ../src/iop/negadoctor.c:953 ../src/iop/rgbcurve.c:1369 -#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1026 -#: ../src/iop/rgblevels.c:1032 ../src/iop/rgblevels.c:1038 +#: ../src/iop/borders.c:1044 ../src/iop/borders.c:1061 +#: ../src/iop/colorzones.c:2662 ../src/iop/colorzones.c:2677 +#: ../src/iop/negadoctor.c:867 ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:972 ../src/iop/rgbcurve.c:1369 +#: ../src/iop/rgbcurve.c:1379 ../src/iop/rgblevels.c:1075 +#: ../src/iop/rgblevels.c:1083 ../src/iop/rgblevels.c:1091 msgid "pickers" msgstr "色彩選取工具" -#: ../src/iop/borders.c:1027 ../src/iop/borders.c:1036 +#: ../src/iop/borders.c:1049 ../src/iop/borders.c:1061 msgid "frame line color" msgstr "邊框顏色" -#: ../src/iop/borders.c:1031 +#: ../src/iop/borders.c:1054 msgid "select frame line color" msgstr "選擇邊框顏色" -#: ../src/iop/borders.c:1035 +#: ../src/iop/borders.c:1060 msgid "pick frame line color from image" msgstr "從影像中選擇邊框顏色" #. make sure you put all your translatable strings into _() ! -#: ../src/iop/cacorrect.c:72 +#: ../src/iop/cacorrect.c:78 msgid "raw chromatic aberrations" msgstr "RAW 檔色像差校正" -#: ../src/iop/cacorrect.c:77 +#: ../src/iop/cacorrect.c:83 msgid "correct chromatic aberrations for Bayer sensors" msgstr "" "RAW 檔色像差校正 | raw chromatic aberrations\n" @@ -13209,44 +13691,44 @@ "此模組在去馬賽克前對原始資料進行操作,理論上效果最好\n" "對於非拜耳感光元件 RAW 檔的影像改用「色像差校正」模組" -#: ../src/iop/cacorrect.c:79 ../src/iop/cacorrect.c:81 +#: ../src/iop/cacorrect.c:85 ../src/iop/cacorrect.c:87 #: ../src/iop/cacorrectrgb.c:171 ../src/iop/cacorrectrgb.c:173 #: ../src/iop/demosaic.c:294 ../src/iop/highlights.c:180 -#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:74 -#: ../src/iop/hotpixels.c:76 ../src/iop/rawdenoise.c:131 -#: ../src/iop/rawdenoise.c:133 ../src/iop/rawprepare.c:159 -#: ../src/iop/rawprepare.c:161 ../src/iop/temperature.c:213 -#: ../src/iop/temperature.c:215 +#: ../src/iop/highlights.c:182 ../src/iop/hotpixels.c:76 +#: ../src/iop/hotpixels.c:78 ../src/iop/rawdenoise.c:145 +#: ../src/iop/rawdenoise.c:147 ../src/iop/rawprepare.c:175 +#: ../src/iop/rawprepare.c:177 ../src/iop/temperature.c:221 +#: ../src/iop/temperature.c:223 msgid "linear, raw, scene-referred" msgstr "線性、RAW、場景參照" -#: ../src/iop/cacorrect.c:80 ../src/iop/cacorrectrgb.c:172 -#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:121 -#: ../src/iop/rawdenoise.c:132 ../src/iop/rawprepare.c:160 -#: ../src/iop/temperature.c:214 +#: ../src/iop/cacorrect.c:86 ../src/iop/cacorrectrgb.c:172 +#: ../src/iop/demosaic.c:295 ../src/iop/invert.c:138 +#: ../src/iop/rawdenoise.c:146 ../src/iop/rawprepare.c:176 +#: ../src/iop/temperature.c:222 msgid "linear, raw" msgstr "線性、RAW" -#: ../src/iop/cacorrect.c:1405 +#: ../src/iop/cacorrect.c:1424 msgid "iteration runs, default is twice" msgstr "" "反覆執行運算次數\n" "預設值兩次通常可以提供理想的效果\n" "有時候增加次數可以產生更好的結果" -#: ../src/iop/cacorrect.c:1408 +#: ../src/iop/cacorrect.c:1427 msgid "activate colorshift correction for blue & red channels" msgstr "" "開啟藍色和紅色通道的色彩偏移修正\n" "如果校正效果產生紫色色偏,可啟用此選像以修正" -#: ../src/iop/cacorrect.c:1415 +#: ../src/iop/cacorrect.c:1434 msgid "" "automatic chromatic aberration correction\n" -"only for Bayer raw files" +"only for Bayer raw files with 3 color channels" msgstr "" "自動校正色像差\n" -"僅適用於 Bayer 排列的感光元件 RAW 檔" +"僅適用於 Bayer 排列的三色感光元件 RAW 檔" #: ../src/iop/cacorrectrgb.c:164 ../src/iop/defringe.c:76 msgid "chromatic aberrations" @@ -13261,7 +13743,7 @@ "與「RAW 檔色像差校正」相比\n" "此模組可應用於各種影像類別" -#: ../src/iop/cacorrectrgb.c:743 +#: ../src/iop/cacorrectrgb.c:745 msgid "" "channel used as a reference to\n" "correct the other channels.\n" @@ -13274,13 +13756,13 @@ "暫時將半徑與修正強度調至最高,切換不同色版比較\n" "選擇銳利度最高和邊緣偽影最少的色版做為參考色版" -#: ../src/iop/cacorrectrgb.c:750 +#: ../src/iop/cacorrectrgb.c:752 msgid "increase for stronger correction" msgstr "" "校正色像差的效果半徑\n" "這是此模組中最重要的參數,緩慢提高直到消除色像差" -#: ../src/iop/cacorrectrgb.c:752 +#: ../src/iop/cacorrectrgb.c:754 msgid "" "balance between smoothing colors\n" "and preserving them.\n" @@ -13290,12 +13772,12 @@ "調整修正色彩和保留色彩之間的平衡\n" "越高的值校正效果越強,但可能導致其他顏色變灰" -#: ../src/iop/cacorrectrgb.c:757 +#: ../src/iop/cacorrectrgb.c:759 msgctxt "section" msgid "advanced parameters" msgstr "進階參數" -#: ../src/iop/cacorrectrgb.c:759 +#: ../src/iop/cacorrectrgb.c:761 msgid "" "correction mode to use.\n" "can help with multiple\n" @@ -13310,7 +13792,7 @@ "可以結合多個模組實例與校正模式來修復特別嚴重的影像\n" "或是與色版遮罩混合使用,獲得更精細的完整控制" -#: ../src/iop/cacorrectrgb.c:767 +#: ../src/iop/cacorrectrgb.c:769 msgid "" "runs an iterative approach\n" "with several radii.\n" @@ -13346,41 +13828,41 @@ msgid "special, RGB, scene-referred" msgstr "特殊、RGB、場景參照" -#: ../src/iop/censorize.c:412 +#: ../src/iop/censorize.c:404 msgid "radius_1" msgstr "半徑一" -#: ../src/iop/censorize.c:414 +#: ../src/iop/censorize.c:406 msgid "pixelate" msgstr "像素化" -#: ../src/iop/censorize.c:416 +#: ../src/iop/censorize.c:408 msgid "radius_2" msgstr "半徑二" -#: ../src/iop/censorize.c:418 +#: ../src/iop/censorize.c:410 msgid "noise" msgstr "雜訊" -#: ../src/iop/censorize.c:420 +#: ../src/iop/censorize.c:412 msgid "radius of gaussian blur before pixellation" msgstr "" "第一次高斯模糊的半徑\n" "在馬賽克效果之前執行" -#: ../src/iop/censorize.c:421 +#: ../src/iop/censorize.c:413 msgid "radius of gaussian blur after pixellation" msgstr "" "第二次高斯模糊的半徑\n" "在馬賽克效果之後執行" -#: ../src/iop/censorize.c:422 +#: ../src/iop/censorize.c:414 msgid "radius of the intermediate pixellation" msgstr "" "馬賽克效果的尺寸\n" "在兩次高斯模糊中間執行" -#: ../src/iop/censorize.c:423 +#: ../src/iop/censorize.c:415 msgid "amount of noise to add at the end" msgstr "" "在最後一步增加雜訊的數量\n" @@ -13395,7 +13877,7 @@ "this module is deprecated. please use the color calibration module instead." msgstr "此模組已被汰除,建議使用「色彩校正」模組替代" -#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:229 +#: ../src/iop/channelmixer.c:136 ../src/iop/channelmixerrgb.c:230 msgid "" "perform color space corrections\n" "such as white balance, channels mixing\n" @@ -13409,169 +13891,169 @@ "RGB 色版混合可以調整輸入色版強度執行串擾調色\n" "或是依據像素的 RGB 色版強度來調整影像的飽和度和亮度" -#: ../src/iop/channelmixer.c:614 +#: ../src/iop/channelmixer.c:633 msgid "destination" msgstr "目的地" -#: ../src/iop/channelmixer.c:621 +#: ../src/iop/channelmixer.c:640 msgctxt "channelmixer" msgid "gray" msgstr "灰色" -#: ../src/iop/channelmixer.c:627 +#: ../src/iop/channelmixer.c:646 msgid "amount of red channel in the output channel" msgstr "輸出色版中紅色色版的強度" -#: ../src/iop/channelmixer.c:633 +#: ../src/iop/channelmixer.c:652 msgid "amount of green channel in the output channel" msgstr "輸出色版中綠色色版的強度" -#: ../src/iop/channelmixer.c:639 +#: ../src/iop/channelmixer.c:658 msgid "amount of blue channel in the output channel" msgstr "輸出色版中藍色色版的強度" -#: ../src/iop/channelmixer.c:655 ../src/iop/channelmixerrgb.c:524 +#: ../src/iop/channelmixer.c:674 ../src/iop/channelmixerrgb.c:588 msgid "swap R and B" msgstr "紅藍色版對調" -#: ../src/iop/channelmixer.c:661 ../src/iop/channelmixerrgb.c:498 +#: ../src/iop/channelmixer.c:680 ../src/iop/channelmixerrgb.c:562 msgid "swap G and B" msgstr "藍綠色版對調" -#: ../src/iop/channelmixer.c:667 +#: ../src/iop/channelmixer.c:686 msgid "color contrast boost" msgstr "色彩對比增強" -#: ../src/iop/channelmixer.c:673 +#: ../src/iop/channelmixer.c:692 msgid "color details boost" msgstr "色彩細節增強" -#: ../src/iop/channelmixer.c:679 +#: ../src/iop/channelmixer.c:698 msgid "color artifacts boost" msgstr "色彩偽影增強" -#: ../src/iop/channelmixer.c:685 +#: ../src/iop/channelmixer.c:704 msgid "B/W luminance-based" msgstr "黑白 基於亮度" -#: ../src/iop/channelmixer.c:691 +#: ../src/iop/channelmixer.c:710 msgid "B/W artifacts boost" msgstr "黑白 偽影提升" -#: ../src/iop/channelmixer.c:697 +#: ../src/iop/channelmixer.c:716 msgid "B/W smooth skin" msgstr "黑白 平滑皮膚" -#: ../src/iop/channelmixer.c:703 +#: ../src/iop/channelmixer.c:722 msgid "B/W blue artifacts reduce" msgstr "黑白 藍色偽影降低" -#: ../src/iop/channelmixer.c:710 +#: ../src/iop/channelmixer.c:729 msgid "B/W Ilford Delta 100-400" msgstr "黑白 Ilford Delta 100-400" -#: ../src/iop/channelmixer.c:717 +#: ../src/iop/channelmixer.c:736 msgid "B/W Ilford Delta 3200" msgstr "黑白 Ilford Delta 3200" -#: ../src/iop/channelmixer.c:724 +#: ../src/iop/channelmixer.c:743 msgid "B/W Ilford FP4" msgstr "黑白 Ilford FP4" -#: ../src/iop/channelmixer.c:731 +#: ../src/iop/channelmixer.c:750 msgid "B/W Ilford HP5" msgstr "黑白 Ilford HP5" -#: ../src/iop/channelmixer.c:738 +#: ../src/iop/channelmixer.c:757 msgid "B/W Ilford SFX" msgstr "黑白 Ilford SFX" -#: ../src/iop/channelmixer.c:745 +#: ../src/iop/channelmixer.c:764 msgid "B/W Kodak T-Max 100" msgstr "黑白 Kodak T-Max 100" -#: ../src/iop/channelmixer.c:752 +#: ../src/iop/channelmixer.c:771 msgid "B/W Kodak T-max 400" msgstr "黑白 Kodak T-max 400" -#: ../src/iop/channelmixer.c:759 +#: ../src/iop/channelmixer.c:778 msgid "B/W Kodak Tri-X 400" msgstr "黑白 Kodak Tri-X 400" -#: ../src/iop/channelmixerrgb.c:219 +#: ../src/iop/channelmixerrgb.c:220 msgid "color calibration" msgstr "色彩校正" -#: ../src/iop/channelmixerrgb.c:224 +#: ../src/iop/channelmixerrgb.c:225 msgid "channel mixer|white balance|monochrome" msgstr "" "色版混合|白平衡|黑白|色彩適應|color|calibration|CAT|chromatic|adaptation" -#: ../src/iop/channelmixerrgb.c:234 +#: ../src/iop/channelmixerrgb.c:235 msgid "linear, RGB or XYZ" msgstr "線性、RGB 或 XYZ" -#: ../src/iop/channelmixerrgb.c:396 +#: ../src/iop/channelmixerrgb.c:460 msgid "B&W: luminance-based" msgstr "黑白:基於亮度" -#: ../src/iop/channelmixerrgb.c:431 +#: ../src/iop/channelmixerrgb.c:495 msgid "B&W: ILFORD HP5+" msgstr "黑白:ILFORD HP5+" -#: ../src/iop/channelmixerrgb.c:440 +#: ../src/iop/channelmixerrgb.c:504 msgid "B&W: ILFORD DELTA 100" msgstr "黑白:ILFORD DELTA 100" -#: ../src/iop/channelmixerrgb.c:450 +#: ../src/iop/channelmixerrgb.c:514 msgid "B&W: ILFORD DELTA 400 - 3200" msgstr "黑白:ILFORD DELTA 400 - 3200" -#: ../src/iop/channelmixerrgb.c:459 +#: ../src/iop/channelmixerrgb.c:523 msgid "B&W: ILFORD FP4+" msgstr "黑白:ILFORD FP4+" -#: ../src/iop/channelmixerrgb.c:468 +#: ../src/iop/channelmixerrgb.c:532 msgid "B&W: Fuji Acros 100" msgstr "黑白:Fujifilm Acros 100" -#: ../src/iop/channelmixerrgb.c:485 +#: ../src/iop/channelmixerrgb.c:549 msgid "basic channel mixer" msgstr "基本色版混合器" -#: ../src/iop/channelmixerrgb.c:511 +#: ../src/iop/channelmixerrgb.c:575 msgid "swap G and R" msgstr "紅綠色版對調" -#: ../src/iop/channelmixerrgb.c:1869 +#: ../src/iop/channelmixerrgb.c:1926 msgid "(daylight)" msgstr "(日光)" -#: ../src/iop/channelmixerrgb.c:1871 +#: ../src/iop/channelmixerrgb.c:1928 msgid "(black body)" msgstr "(黑體)" -#: ../src/iop/channelmixerrgb.c:1873 +#: ../src/iop/channelmixerrgb.c:1930 msgid "(invalid)" msgstr "(無效)" -#: ../src/iop/channelmixerrgb.c:1877 ../src/iop/channelmixerrgb.c:1935 +#: ../src/iop/channelmixerrgb.c:1934 ../src/iop/channelmixerrgb.c:1992 msgid "very good" msgstr "非常好" -#: ../src/iop/channelmixerrgb.c:1879 ../src/iop/channelmixerrgb.c:1937 +#: ../src/iop/channelmixerrgb.c:1936 ../src/iop/channelmixerrgb.c:1994 msgid "good" msgstr "良好" -#: ../src/iop/channelmixerrgb.c:1881 ../src/iop/channelmixerrgb.c:1939 +#: ../src/iop/channelmixerrgb.c:1938 ../src/iop/channelmixerrgb.c:1996 msgid "passable" msgstr "尚可" -#: ../src/iop/channelmixerrgb.c:1883 ../src/iop/channelmixerrgb.c:1941 +#: ../src/iop/channelmixerrgb.c:1940 ../src/iop/channelmixerrgb.c:1998 msgid "bad" msgstr "糟糕" -#: ../src/iop/channelmixerrgb.c:1890 +#: ../src/iop/channelmixerrgb.c:1947 #, c-format msgid "" "\n" @@ -13608,7 +14090,7 @@ "曝光補償: %+.2f EV\n" "黑點偏移: %+.4f" -#: ../src/iop/channelmixerrgb.c:1946 +#: ../src/iop/channelmixerrgb.c:2003 #, c-format msgid "" "\n" @@ -13627,15 +14109,15 @@ "曝光補償: %+.2f EV\n" "黑點偏移: %+.4f" -#: ../src/iop/channelmixerrgb.c:1978 +#: ../src/iop/channelmixerrgb.c:2054 msgid "double CAT applied" msgstr "套用了兩次色彩適應" -#: ../src/iop/channelmixerrgb.c:1979 +#: ../src/iop/channelmixerrgb.c:2055 msgid "" "you have 2 instances or more of color calibration,\n" -"all performing chromatic adaptation.\n" -"this can lead to inconsistencies, unless you\n" +"all providing chromatic adaptation.\n" +"this can lead to inconsistencies unless you\n" "use them with masks or know what you are doing." msgstr "" "有兩個以上的「色彩校正」模組正在使用中\n" @@ -13643,11 +14125,26 @@ "請確認已了解這些步驟執行的目的\n" "或是將不同模組與遮罩搭配使用" -#: ../src/iop/channelmixerrgb.c:1991 +#: ../src/iop/channelmixerrgb.c:2071 +msgid "white balance applied twice" +msgstr "白平衡被重複套用兩次" + +#: ../src/iop/channelmixerrgb.c:2072 +msgid "" +"the color calibration module is enabled and already provides\n" +"chromatic adaptation.\n" +"set the white balance here to camera reference (D65)\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"「色彩校正」模組已啟用,並執行色彩適應\n" +"白平衡應設定為相機基準白點\n" +"或在「色彩校正」中停用色彩適應" + +#: ../src/iop/channelmixerrgb.c:2080 msgid "white balance module error" msgstr "白平衡模組錯誤" -#: ../src/iop/channelmixerrgb.c:1992 +#: ../src/iop/channelmixerrgb.c:2081 msgid "" "the white balance module is not using the camera\n" "reference illuminant, which will cause issues here\n" @@ -13658,20 +14155,48 @@ "這會導致本模組的色彩適應問題\n" "更改「白平衡」模組設定或關閉色彩適應" -#: ../src/iop/channelmixerrgb.c:2083 +#: ../src/iop/channelmixerrgb.c:2095 ../src/iop/channelmixerrgb.c:2104 +msgid "white balance missing" +msgstr "無白平衡數據" + +#: ../src/iop/channelmixerrgb.c:2096 +msgid "" +"this module is not providing a valid reference illuminant\n" +"causing chromatic adaptation issues in color calibration.\n" +"enable this module and either set it to reference\n" +"or disable chromatic adaptation in color calibration." +msgstr "" +"此模組沒有提供有效的參考光源,\n" +"導致「色彩校正」模組中的色彩適應計算問題。\n" +"啟用此模組,並將其設定為參考光源,\n" +"或關閉「色彩校正」模組中的色彩適應。" + +#: ../src/iop/channelmixerrgb.c:2105 +msgid "" +"the white balance module is not providing a valid reference\n" +"illuminant causing issues with chromatic adaptation here.\n" +"enable white balance and either set it to reference\n" +"or disable chromatic adaptation here." +msgstr "" +"「白平衡」模組沒有提供有效的參考光源,\n" +"導致本模組中的色彩適應計算問題。\n" +"啟用「白平衡」模組,並將其設定為參考光源,\n" +"或關閉本模組中的色彩適應。" + +#: ../src/iop/channelmixerrgb.c:2196 msgid "auto-detection of white balance completed" msgstr "白平衡自動檢測完成" -#: ../src/iop/channelmixerrgb.c:2236 +#: ../src/iop/channelmixerrgb.c:2346 msgid "channelmixerrgb works only on RGB input" msgstr "RGB 色版混合器僅適用於 RGB 輸入訊號" -#: ../src/iop/channelmixerrgb.c:3621 +#: ../src/iop/channelmixerrgb.c:3692 #, c-format msgid "CCT: %.0f K (daylight)" msgstr "色溫:%.0f K(日光)" -#: ../src/iop/channelmixerrgb.c:3624 +#: ../src/iop/channelmixerrgb.c:3695 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a daylight spectrum,\n" @@ -13681,12 +14206,12 @@ "所選擇的光源色彩可使用標準日光光譜分布描述\n" "所以色溫與 CIE Daylight 相關聯" -#: ../src/iop/channelmixerrgb.c:3630 +#: ../src/iop/channelmixerrgb.c:3701 #, c-format msgid "CCT: %.0f K (black body)" msgstr "色溫:%.0f K(黑體)" -#: ../src/iop/channelmixerrgb.c:3633 +#: ../src/iop/channelmixerrgb.c:3704 msgid "" "approximated correlated color temperature.\n" "this illuminant can be accurately modeled by a black body spectrum,\n" @@ -13696,12 +14221,12 @@ "所選擇的光源色彩可使用理想黑體光譜分布描述\n" "所以色溫與普朗克黑體輻射相關聯" -#: ../src/iop/channelmixerrgb.c:3639 +#: ../src/iop/channelmixerrgb.c:3710 #, c-format msgid "CCT: %.0f K (invalid)" msgstr "色溫:%.0f K(無效)" -#: ../src/iop/channelmixerrgb.c:3642 +#: ../src/iop/channelmixerrgb.c:3713 msgid "" "approximated correlated color temperature.\n" "this illuminant cannot be accurately modeled by a daylight or black body " @@ -13713,12 +14238,12 @@ "所選擇的光源色彩無法使用日光或黑體光譜描述\n" "所以色溫不具有實質意義,需要使用自訂光源" -#: ../src/iop/channelmixerrgb.c:3651 +#: ../src/iop/channelmixerrgb.c:3722 #, c-format msgid "CCT: undefined" msgstr "色溫:未定義" -#: ../src/iop/channelmixerrgb.c:3654 +#: ../src/iop/channelmixerrgb.c:3725 msgid "" "the approximated correlated color temperature\n" "cannot be computed at all so you need to use a custom illuminant." @@ -13726,23 +14251,23 @@ "無法計算相關色溫(CCT)\n" "需要使用自定光源" -#: ../src/iop/channelmixerrgb.c:3967 +#: ../src/iop/channelmixerrgb.c:4038 msgid "white balance successfully extracted from raw image" msgstr "成功從 RAW 檔案中取得白平衡" #. We need to recompute only the full preview -#: ../src/iop/channelmixerrgb.c:3973 +#: ../src/iop/channelmixerrgb.c:4044 msgid "auto-detection of white balance started…" msgstr "正在自動偵測白平衡…" -#: ../src/iop/channelmixerrgb.c:4078 +#: ../src/iop/channelmixerrgb.c:4149 msgid "" "color calibration: the sum of the gray channel parameters is zero, " "normalization will be disabled." msgstr "色彩校正中的灰階色版參數總和為零,歸一化將被停用" #. Write report in GUI -#: ../src/iop/channelmixerrgb.c:4126 +#: ../src/iop/channelmixerrgb.c:4194 #, c-format msgid "" "L: \t%.1f %%\n" @@ -13753,19 +14278,19 @@ "h :\t%.1f °\n" "C*:\t%.1f" -#: ../src/iop/channelmixerrgb.c:4394 ../src/iop/clipping.c:2087 -#: ../src/iop/colorbalancergb.c:1873 ../src/iop/filmicrgb.c:4419 -#: ../src/iop/negadoctor.c:829 ../src/iop/toneequal.c:3319 -#: ../src/libs/image.c:460 ../src/views/lighttable.c:1258 +#: ../src/iop/channelmixerrgb.c:4462 ../src/iop/clipping.c:2140 +#: ../src/iop/colorbalancergb.c:1944 ../src/iop/filmicrgb.c:4483 +#: ../src/iop/negadoctor.c:848 ../src/iop/toneequal.c:3372 +#: ../src/libs/image.c:490 ../src/views/lighttable.c:1258 msgid "page" msgstr "頁面" #. Page CAT -#: ../src/iop/channelmixerrgb.c:4397 +#: ../src/iop/channelmixerrgb.c:4465 msgid "CAT" msgstr "色彩適應轉換" -#: ../src/iop/channelmixerrgb.c:4398 +#: ../src/iop/channelmixerrgb.c:4466 msgid "chromatic adaptation transform" msgstr "" "控制色彩適應轉換的方式和光源設定\n" @@ -13776,11 +14301,11 @@ "色域壓縮參數用於將經過色彩適應轉換後超出色域的顏色飽和度降低\n" "裁切 RGB 負值可以確保輸出數值有效性,避免純色 LED 或雷射光點顏色產生問題" -#: ../src/iop/channelmixerrgb.c:4400 +#: ../src/iop/channelmixerrgb.c:4468 msgid "adaptation" msgstr "色彩適應" -#: ../src/iop/channelmixerrgb.c:4403 +#: ../src/iop/channelmixerrgb.c:4471 msgid "" "choose the method to adapt the illuminant\n" "and the colorspace in which the module works: \n" @@ -13811,7 +14336,7 @@ "無(不轉換)\n" "不執行色彩適應轉換,使用此選項則必須在「白平衡」模組執行色彩轉換" -#: ../src/iop/channelmixerrgb.c:4423 +#: ../src/iop/channelmixerrgb.c:4491 msgid "" "this is the color of the scene illuminant before chromatic adaptation\n" "this color will be turned into pure white by the adaptation." @@ -13820,29 +14345,29 @@ "此顏色會經由色彩適應計算成為純白\n" "其他所有顏色會由色彩適應轉換矩陣轉換成相對應的正確顏色" -#: ../src/iop/channelmixerrgb.c:4431 +#: ../src/iop/channelmixerrgb.c:4499 msgid "picker" msgstr "色彩選取工具" -#: ../src/iop/channelmixerrgb.c:4433 ../src/iop/temperature.c:2047 +#: ../src/iop/channelmixerrgb.c:4501 ../src/iop/temperature.c:2015 msgid "set white balance to detected from area" msgstr "" "在影像上選取範圍做為白平衡的參考光源顏色\n" "應該選取影像中應該為中灰色的區域" -#: ../src/iop/channelmixerrgb.c:4437 ../src/iop/negadoctor.c:953 +#: ../src/iop/channelmixerrgb.c:4505 ../src/iop/negadoctor.c:972 msgid "illuminant" msgstr "光源" -#: ../src/iop/channelmixerrgb.c:4443 ../src/iop/temperature.c:2107 +#: ../src/iop/channelmixerrgb.c:4511 ../src/iop/temperature.c:2072 msgid "temperature" msgstr "色溫" -#: ../src/iop/channelmixerrgb.c:4474 -msgid "spot color mapping" -msgstr "點測色色彩對應" +#: ../src/iop/channelmixerrgb.c:4542 +msgid "area color mapping" +msgstr "區域色彩映射" -#: ../src/iop/channelmixerrgb.c:4480 +#: ../src/iop/channelmixerrgb.c:4548 msgid "" "define a target chromaticity (hue and chroma) for a particular region of the " "image (the control sample), which you then match against the same target " @@ -13854,17 +14379,17 @@ "依據選擇的影像對照範圍設定目標顏色,然後將此顏色對應至其他影像\n" "藉由選擇一系列影像中顏色應保持相同的區域,批次調整多張影像的顏色一致性" -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/channelmixerrgb.c:4502 -#: ../src/iop/channelmixerrgb.c:4556 ../src/iop/channelmixerrgb.c:4565 -#: ../src/iop/channelmixerrgb.c:4573 +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/channelmixerrgb.c:4570 +#: ../src/iop/channelmixerrgb.c:4624 ../src/iop/channelmixerrgb.c:4633 +#: ../src/iop/channelmixerrgb.c:4641 msgid "mapping" msgstr "映射" -#: ../src/iop/channelmixerrgb.c:4487 ../src/iop/exposure.c:1188 -msgid "spot mode" -msgstr "點測對應模式" +#: ../src/iop/channelmixerrgb.c:4555 ../src/iop/exposure.c:1206 +msgid "area mode" +msgstr "區域對應模式" -#: ../src/iop/channelmixerrgb.c:4488 +#: ../src/iop/channelmixerrgb.c:4556 msgid "" "\"correction\" automatically adjust the illuminant\n" "such that the input color is mapped to the target.\n" @@ -13874,19 +14399,19 @@ "「測量」模式藉由選擇範圍定義目標顏色\n" "「校正」模式自動調整光源,將顏色映射至所選目標" -#: ../src/iop/channelmixerrgb.c:4493 ../src/iop/exposure.c:1194 +#: ../src/iop/channelmixerrgb.c:4561 ../src/iop/exposure.c:1212 msgid "correction" msgstr "校正" -#: ../src/iop/channelmixerrgb.c:4494 ../src/iop/exposure.c:1195 +#: ../src/iop/channelmixerrgb.c:4562 ../src/iop/exposure.c:1213 msgid "measure" msgstr "測量" -#: ../src/iop/channelmixerrgb.c:4500 +#: ../src/iop/channelmixerrgb.c:4568 msgid "take channel mixing into account" msgstr "考量色版混合" -#: ../src/iop/channelmixerrgb.c:4507 +#: ../src/iop/channelmixerrgb.c:4575 msgid "" "compute the target by taking the channel mixing into account.\n" "if disabled, only the CAT is considered." @@ -13894,16 +14419,16 @@ "計算顏色時將色版混合納入考量\n" "如果沒有選取,則僅則僅考慮色彩適應轉換" -#: ../src/iop/channelmixerrgb.c:4519 ../src/iop/exposure.c:1202 +#: ../src/iop/channelmixerrgb.c:4587 ../src/iop/exposure.c:1220 msgctxt "section" msgid "input" msgstr "輸入" -#: ../src/iop/channelmixerrgb.c:4526 ../src/iop/exposure.c:1210 +#: ../src/iop/channelmixerrgb.c:4594 ../src/iop/exposure.c:1228 msgid "the input color that should be mapped to the target" msgstr "要對應到目標顏色的輸入顏色" -#: ../src/iop/channelmixerrgb.c:4532 +#: ../src/iop/channelmixerrgb.c:4600 msgid "" "L: \tN/A\n" "h: \tN/A\n" @@ -13913,114 +14438,114 @@ "h :\tN/A\n" "C*:\tN/A" -#: ../src/iop/channelmixerrgb.c:4535 ../src/iop/exposure.c:1218 +#: ../src/iop/channelmixerrgb.c:4603 ../src/iop/exposure.c:1236 msgid "these LCh coordinates are computed from CIE Lab 1976 coordinates" msgstr "這些 LCh 座標是從 CIELAB 1976 座標計算出來的" -#: ../src/iop/channelmixerrgb.c:4543 ../src/iop/exposure.c:1225 +#: ../src/iop/channelmixerrgb.c:4611 ../src/iop/exposure.c:1243 msgctxt "section" msgid "target" msgstr "目標" -#: ../src/iop/channelmixerrgb.c:4550 +#: ../src/iop/channelmixerrgb.c:4618 msgid "the desired target color after mapping" msgstr "想要轉換成的目標顏色" -#: ../src/iop/channelmixerrgb.c:4589 +#: ../src/iop/channelmixerrgb.c:4657 msgid "input R" msgstr "紅色色版的輸入強度係數" -#: ../src/iop/channelmixerrgb.c:4594 +#: ../src/iop/channelmixerrgb.c:4662 msgid "input G" msgstr "綠色色版的輸入強度係數" -#: ../src/iop/channelmixerrgb.c:4599 +#: ../src/iop/channelmixerrgb.c:4667 msgid "input B" msgstr "藍色色版的輸入強度係數" -#: ../src/iop/channelmixerrgb.c:4609 +#: ../src/iop/channelmixerrgb.c:4677 msgid "output R" msgstr "紅色色版的輸出矩陣係數" -#: ../src/iop/channelmixerrgb.c:4610 +#: ../src/iop/channelmixerrgb.c:4678 msgid "output G" msgstr "綠色色版的輸出矩陣係數" -#: ../src/iop/channelmixerrgb.c:4611 +#: ../src/iop/channelmixerrgb.c:4679 msgid "output B" msgstr "藍色色版的輸出矩陣係數" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "colorfulness" msgstr "鮮豔度" -#: ../src/iop/channelmixerrgb.c:4613 +#: ../src/iop/channelmixerrgb.c:4681 msgid "output colorfulness" msgstr "依據不同色版調整輸出的鮮豔度" -#: ../src/iop/channelmixerrgb.c:4617 +#: ../src/iop/channelmixerrgb.c:4685 msgid "output brightness" msgstr "依據不同色版調整輸出的亮度" -#: ../src/iop/channelmixerrgb.c:4620 +#: ../src/iop/channelmixerrgb.c:4688 msgid "output gray" msgstr "使用不同強度的色版混合輸出灰階影像" -#: ../src/iop/channelmixerrgb.c:4635 +#: ../src/iop/channelmixerrgb.c:4703 msgid "calibrate with a color checker" msgstr "使用校色卡校正" -#: ../src/iop/channelmixerrgb.c:4640 +#: ../src/iop/channelmixerrgb.c:4708 msgid "use a color checker target to autoset CAT and channels" msgstr "使用校色卡自動計算色彩適應轉換和調整色版" -#: ../src/iop/channelmixerrgb.c:4647 ../src/iop/channelmixerrgb.c:4660 -#: ../src/iop/channelmixerrgb.c:4678 ../src/iop/channelmixerrgb.c:4696 -#: ../src/iop/channelmixerrgb.c:4705 ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4715 ../src/iop/channelmixerrgb.c:4728 +#: ../src/iop/channelmixerrgb.c:4746 ../src/iop/channelmixerrgb.c:4764 +#: ../src/iop/channelmixerrgb.c:4773 ../src/iop/channelmixerrgb.c:4781 msgid "calibrate" msgstr "校正" -#: ../src/iop/channelmixerrgb.c:4647 +#: ../src/iop/channelmixerrgb.c:4715 msgid "chart" msgstr "色卡" -#: ../src/iop/channelmixerrgb.c:4648 +#: ../src/iop/channelmixerrgb.c:4716 msgid "choose the vendor and the type of your chart" msgstr "選擇廠商和色卡" -#: ../src/iop/channelmixerrgb.c:4650 +#: ../src/iop/channelmixerrgb.c:4718 msgid "Xrite ColorChecker 24 pre-2014" msgstr "Xrite ColorChecker 24 (2014 之前)" -#: ../src/iop/channelmixerrgb.c:4651 +#: ../src/iop/channelmixerrgb.c:4719 msgid "Xrite ColorChecker 24 post-2014" msgstr "Xrite ColorChecker 24 (2014 之後)" -#: ../src/iop/channelmixerrgb.c:4652 +#: ../src/iop/channelmixerrgb.c:4720 msgid "Datacolor SpyderCheckr 24 pre-2018" msgstr "Datacolor SpyderCheckr 24 (2018 之前)" -#: ../src/iop/channelmixerrgb.c:4653 +#: ../src/iop/channelmixerrgb.c:4721 msgid "Datacolor SpyderCheckr 24 post-2018" msgstr "Datacolor SpyderCheckr 24 (2018 之後)" -#: ../src/iop/channelmixerrgb.c:4654 +#: ../src/iop/channelmixerrgb.c:4722 msgid "Datacolor SpyderCheckr 48 pre-2018" msgstr "Datacolor SpyderCheckr 48 (2018 之前)" -#: ../src/iop/channelmixerrgb.c:4655 +#: ../src/iop/channelmixerrgb.c:4723 msgid "Datacolor SpyderCheckr 48 post-2018" msgstr "Datacolor SpyderCheckr 48 (2018 之後)" -#: ../src/iop/channelmixerrgb.c:4656 +#: ../src/iop/channelmixerrgb.c:4724 msgid "Datacolor SpyderCheckr Photo" msgstr "Datacolor SpyderCheckr Photo" -#: ../src/iop/channelmixerrgb.c:4660 +#: ../src/iop/channelmixerrgb.c:4728 msgid "optimize for" msgstr "最佳化目標" -#: ../src/iop/channelmixerrgb.c:4661 +#: ../src/iop/channelmixerrgb.c:4729 msgid "" "choose the colors that will be optimized with higher priority.\n" "neutral colors gives the lowest average delta E but a high maximum delta E\n" @@ -14046,35 +14571,35 @@ "有兩條對角線的色塊:ΔE > 4.6,顏色非常不準確\n" "這樣的標示有助於直覺反應,並調整最佳化的策略目標" -#: ../src/iop/channelmixerrgb.c:4668 +#: ../src/iop/channelmixerrgb.c:4736 msgid "neutral colors" msgstr "中性色" -#: ../src/iop/channelmixerrgb.c:4670 +#: ../src/iop/channelmixerrgb.c:4738 msgid "skin and soil colors" msgstr "皮膚和土壤顏色" -#: ../src/iop/channelmixerrgb.c:4671 +#: ../src/iop/channelmixerrgb.c:4739 msgid "foliage colors" msgstr "樹葉的顏色" -#: ../src/iop/channelmixerrgb.c:4672 +#: ../src/iop/channelmixerrgb.c:4740 msgid "sky and water colors" msgstr "天空和水的顏色" -#: ../src/iop/channelmixerrgb.c:4673 +#: ../src/iop/channelmixerrgb.c:4741 msgid "average delta E" msgstr "平均色差(ΔE)" -#: ../src/iop/channelmixerrgb.c:4674 +#: ../src/iop/channelmixerrgb.c:4742 msgid "maximum delta E" msgstr "最大色差(ΔE)" -#: ../src/iop/channelmixerrgb.c:4678 +#: ../src/iop/channelmixerrgb.c:4746 msgid "patch scale" msgstr "色塊尺寸" -#: ../src/iop/channelmixerrgb.c:4681 +#: ../src/iop/channelmixerrgb.c:4749 msgid "" "reduce the radius of the patches to select the more or less central part.\n" "useful when the perspective correction is sloppy or\n" @@ -14083,31 +14608,31 @@ "調整色塊的半徑以選擇更多或更少的的中央部分\n" "當透視校正不正確或色塊框架在色塊上留下陰影時非常有用" -#: ../src/iop/channelmixerrgb.c:4691 +#: ../src/iop/channelmixerrgb.c:4759 msgid "the delta E is using the CIE 2000 formula" msgstr "色差(ΔE)使用 CIE 2000 公式計算" -#: ../src/iop/channelmixerrgb.c:4696 +#: ../src/iop/channelmixerrgb.c:4764 msgid "accept" msgstr "接受" -#: ../src/iop/channelmixerrgb.c:4702 +#: ../src/iop/channelmixerrgb.c:4770 msgid "accept the computed profile and set it in the module" msgstr "接受目前計算的描述檔,並將其設定到色彩轉換中" -#: ../src/iop/channelmixerrgb.c:4705 +#: ../src/iop/channelmixerrgb.c:4773 msgid "recompute" msgstr "重新計算" -#: ../src/iop/channelmixerrgb.c:4709 +#: ../src/iop/channelmixerrgb.c:4777 msgid "recompute the profile" msgstr "重新計算描述檔" -#: ../src/iop/channelmixerrgb.c:4713 +#: ../src/iop/channelmixerrgb.c:4781 msgid "validate" msgstr "驗證" -#: ../src/iop/channelmixerrgb.c:4717 +#: ../src/iop/channelmixerrgb.c:4785 msgid "check the output delta E" msgstr "檢查輸出色差(ΔE)" @@ -14123,160 +14648,160 @@ "this module is deprecated. better use new local contrast module instead." msgstr "此模組已被汰除,建議使用「局部對比度」模組替代" -#: ../src/iop/clahe.c:337 ../src/iop/sharpen.c:445 +#: ../src/iop/clahe.c:339 ../src/iop/sharpen.c:440 msgid "amount" msgstr "總量" -#: ../src/iop/clahe.c:346 +#: ../src/iop/clahe.c:348 msgid "size of features to preserve" msgstr "要保留的特性大小" -#: ../src/iop/clahe.c:347 ../src/iop/nlmeans.c:464 +#: ../src/iop/clahe.c:349 ../src/iop/nlmeans.c:467 msgid "strength of the effect" msgstr "調整去除雜訊的強度" -#: ../src/iop/clipping.c:304 +#: ../src/iop/clipping.c:347 msgid "" "this module is deprecated. please use the crop, orientation and/or rotate " "and perspective modules instead." msgstr "此模組已被汰除,建議使用「裁切」或「方向」或模組替代" -#: ../src/iop/clipping.c:309 +#: ../src/iop/clipping.c:352 msgid "crop and rotate" msgstr "裁剪與旋轉" -#: ../src/iop/clipping.c:314 +#: ../src/iop/clipping.c:357 msgid "reframe|perspective|keystone|distortion" msgstr "透視|梯形校正|裁切|變形" -#: ../src/iop/clipping.c:319 +#: ../src/iop/clipping.c:362 msgid "change the framing and correct the perspective" msgstr "變更邊界與修正透視" -#: ../src/iop/clipping.c:1394 ../src/iop/clipping.c:2120 ../src/iop/crop.c:517 -#: ../src/iop/crop.c:1117 +#: ../src/iop/clipping.c:1447 ../src/iop/clipping.c:2173 ../src/iop/crop.c:501 +#: ../src/iop/crop.c:1101 msgid "original image" msgstr "原始影像" -#: ../src/iop/clipping.c:1698 ../src/iop/crop.c:824 +#: ../src/iop/clipping.c:1751 ../src/iop/crop.c:808 msgid "invalid ratio format. it should be \"number:number\"" msgstr "無效的比例格式,必須使用「數字:數字」" -#: ../src/iop/clipping.c:1714 ../src/iop/crop.c:840 +#: ../src/iop/clipping.c:1767 ../src/iop/crop.c:824 msgid "invalid ratio format. it should be a positive number" msgstr "無效的比例格式,只能使用正值" -#: ../src/iop/clipping.c:1903 ../src/iop/clipping.c:2111 +#: ../src/iop/clipping.c:1956 ../src/iop/clipping.c:2164 msgid "full" msgstr "全部" -#: ../src/iop/clipping.c:1904 +#: ../src/iop/clipping.c:1957 msgid "old system" msgstr "舊系統" -#: ../src/iop/clipping.c:1905 +#: ../src/iop/clipping.c:1958 msgid "correction applied" msgstr "已套用校正" -#: ../src/iop/clipping.c:2089 +#: ../src/iop/clipping.c:2142 msgid "main" msgstr "主要" -#: ../src/iop/clipping.c:2098 +#: ../src/iop/clipping.c:2151 msgid "mirror image horizontally and/or vertically" msgstr "水平或垂直鏡像" -#: ../src/iop/clipping.c:2101 +#: ../src/iop/clipping.c:2154 msgid "angle" msgstr "角度" -#: ../src/iop/clipping.c:2104 +#: ../src/iop/clipping.c:2157 msgid "right-click and drag a line on the image to drag a straight line" msgstr "在影像用滑鼠右鍵拖曳水平線校正" -#: ../src/iop/clipping.c:2107 +#: ../src/iop/clipping.c:2160 msgid "keystone" msgstr "梯形校正" -#: ../src/iop/clipping.c:2112 +#: ../src/iop/clipping.c:2165 msgid "set perspective correction for your image" msgstr "調整影像的透視校正" -#: ../src/iop/clipping.c:2119 ../src/iop/crop.c:1116 +#: ../src/iop/clipping.c:2172 ../src/iop/crop.c:1100 msgid "freehand" msgstr "手繪" -#: ../src/iop/clipping.c:2122 ../src/iop/crop.c:1119 +#: ../src/iop/clipping.c:2175 ../src/iop/crop.c:1103 msgid "10:8 in print" msgstr "10:8 - 傳統相紙" -#: ../src/iop/clipping.c:2123 ../src/iop/crop.c:1120 +#: ../src/iop/clipping.c:2176 ../src/iop/crop.c:1104 msgid "5:4, 4x5, 8x10" msgstr "5:4 - 4 x 5、8 x 10 大型相機" -#: ../src/iop/clipping.c:2124 ../src/iop/crop.c:1121 +#: ../src/iop/clipping.c:2177 ../src/iop/crop.c:1105 msgid "11x14" msgstr "11:14 - 傳統相紙" -#: ../src/iop/clipping.c:2125 ../src/iop/crop.c:1122 +#: ../src/iop/clipping.c:2178 ../src/iop/crop.c:1106 msgid "8.5x11, letter" msgstr "8.5 x 11 - 北美書信用紙" -#: ../src/iop/clipping.c:2126 ../src/iop/crop.c:1123 +#: ../src/iop/clipping.c:2179 ../src/iop/crop.c:1107 msgid "4:3, VGA, TV" msgstr "4:3 - 傳統電視" -#: ../src/iop/clipping.c:2127 ../src/iop/crop.c:1124 +#: ../src/iop/clipping.c:2180 ../src/iop/crop.c:1108 msgid "5x7" msgstr "5:7 - 傳統相紙" -#: ../src/iop/clipping.c:2128 ../src/iop/crop.c:1125 +#: ../src/iop/clipping.c:2181 ../src/iop/crop.c:1109 msgid "ISO 216, DIN 476, A4" msgstr "A4 - ISO 216、DIN 476" -#: ../src/iop/clipping.c:2129 ../src/iop/crop.c:1126 +#: ../src/iop/clipping.c:2182 ../src/iop/crop.c:1110 msgid "3:2, 4x6, 35mm" msgstr "3:2 - 35mm 底片及數位相機" -#: ../src/iop/clipping.c:2130 ../src/iop/crop.c:1127 +#: ../src/iop/clipping.c:2183 ../src/iop/crop.c:1111 msgid "16:10, 8x5" msgstr "16:10 - 螢幕" -#: ../src/iop/clipping.c:2132 ../src/iop/crop.c:1129 +#: ../src/iop/clipping.c:2185 ../src/iop/crop.c:1113 msgid "16:9, HDTV" msgstr "16:9 - 電視寬螢幕" -#: ../src/iop/clipping.c:2133 ../src/iop/crop.c:1130 +#: ../src/iop/clipping.c:2186 ../src/iop/crop.c:1114 msgid "widescreen" msgstr "寬螢幕" -#: ../src/iop/clipping.c:2134 ../src/iop/crop.c:1131 +#: ../src/iop/clipping.c:2187 ../src/iop/crop.c:1115 msgid "2:1, univisium" msgstr "2:1 - Univisium 電影格式" -#: ../src/iop/clipping.c:2135 ../src/iop/crop.c:1132 +#: ../src/iop/clipping.c:2188 ../src/iop/crop.c:1116 msgid "cinemascope" msgstr "寬螢幕電影鏡頭" -#: ../src/iop/clipping.c:2136 ../src/iop/crop.c:1133 +#: ../src/iop/clipping.c:2189 ../src/iop/crop.c:1117 msgid "21:9" msgstr "21:9" -#: ../src/iop/clipping.c:2137 ../src/iop/crop.c:1134 +#: ../src/iop/clipping.c:2190 ../src/iop/crop.c:1118 msgid "anamorphic" msgstr "電影變形鏡頭" -#: ../src/iop/clipping.c:2138 ../src/iop/crop.c:1135 +#: ../src/iop/clipping.c:2191 ../src/iop/crop.c:1119 msgid "3:1, panorama" msgstr "3:1 - 全景" -#: ../src/iop/clipping.c:2170 ../src/iop/clipping.c:2182 ../src/iop/crop.c:1171 -#: ../src/iop/crop.c:1187 +#: ../src/iop/clipping.c:2223 ../src/iop/clipping.c:2235 ../src/iop/crop.c:1155 +#: ../src/iop/crop.c:1171 #, c-format msgid "invalid ratio format for `%s'. it should be \"number:number\"" msgstr "比例格式「%s」無效,只能使用「數字:數字」" -#: ../src/iop/clipping.c:2229 ../src/iop/crop.c:1238 +#: ../src/iop/clipping.c:2282 ../src/iop/crop.c:1222 msgid "" "set the aspect ratio\n" "the list is sorted: from most square to least square\n" @@ -14287,43 +14812,43 @@ "排列順序:從最接近正方形到最長形\n" "開啟下拉選單後可直接輸入自訂比例,使用「寬:高」或寬高比數值" -#: ../src/iop/clipping.c:2236 ../src/iop/crop.c:1252 +#: ../src/iop/clipping.c:2289 ../src/iop/crop.c:1236 msgid "margins" msgstr "邊界" -#: ../src/iop/clipping.c:2241 ../src/iop/crop.c:1262 +#: ../src/iop/clipping.c:2294 ../src/iop/crop.c:1246 msgid "the left margin cannot overlap with the right margin" msgstr "" "左側裁剪掉的大小,以影像寬度百分比表示\n" "使用滑鼠直接操作影像上的裁切區域會自動更新此數值\n" "左側邊界不能重疊至右側邊界" -#: ../src/iop/clipping.c:2248 ../src/iop/crop.c:1270 +#: ../src/iop/clipping.c:2301 ../src/iop/crop.c:1254 msgid "the right margin cannot overlap with the left margin" msgstr "" "右側裁剪掉的大小,以影像寬度百分比表示\n" "使用滑鼠直接操作影像上的裁切區域會自動更新此數值\n" "右側邊界不能重疊至左側邊界" -#: ../src/iop/clipping.c:2253 ../src/iop/crop.c:1276 +#: ../src/iop/clipping.c:2306 ../src/iop/crop.c:1260 msgid "the top margin cannot overlap with the bottom margin" msgstr "" "上方裁剪掉的大小,以影像高度百分比表示\n" "使用滑鼠直接操作影像上的裁切區域會自動更新此數值\n" "上方邊界不能重疊至下方邊界" -#: ../src/iop/clipping.c:2260 ../src/iop/crop.c:1284 +#: ../src/iop/clipping.c:2313 ../src/iop/crop.c:1268 msgid "the bottom margin cannot overlap with the top margin" msgstr "" "下方裁剪掉的大小,以影像高度百分比表示\n" "使用滑鼠直接操作影像上的裁切區域會自動更新此數值\n" "下方邊界不能重疊至上方邊界" -#: ../src/iop/clipping.c:3019 +#: ../src/iop/clipping.c:3059 msgid "<b>commit</b>: double-click, <b>straighten</b>: right-drag" msgstr "右鍵拖曳:<b>拉水平線</b>,雙擊:<b>完成</b>" -#: ../src/iop/clipping.c:3023 +#: ../src/iop/clipping.c:3063 msgid "" "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag\n" "<b>straighten</b>: right-drag" @@ -14331,15 +14856,15 @@ "拖曳:<b>調整大小</b>,shift + 拖曳:<b>保持長寬比</b>\n" "右鍵拖曳:<b>拉水平線</b>" -#: ../src/iop/clipping.c:3066 +#: ../src/iop/clipping.c:3104 msgid "<b>move control point</b>: drag" msgstr "拖曳:<b>移動控制點</b>" -#: ../src/iop/clipping.c:3071 +#: ../src/iop/clipping.c:3109 msgid "<b>move line</b>: drag, <b>toggle symmetry</b>: click ꝏ" msgstr "拖曳:<b>移動線、控制點/<b>,點擊 ꝏ:<b>啟動對稱邊</b>" -#: ../src/iop/clipping.c:3076 +#: ../src/iop/clipping.c:3114 msgid "" "<b>apply</b>: click <tt>ok</tt>, <b>toggle symmetry</b>: click ꝏ\n" "<b>move line/control point</b>: drag" @@ -14347,7 +14872,7 @@ "點擊 ok:<b>完成確定</b>,點擊 ꝏ:<b>啟動對稱邊</b>\n" "拖曳:<b>移動線、控制點</b>" -#: ../src/iop/clipping.c:3083 +#: ../src/iop/clipping.c:3121 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag\n" @@ -14357,12 +14882,12 @@ "b>\n" "右鍵拖曳:<b>拉水平線</b>,雙擊:<b>完成</b>" -#: ../src/iop/clipping.c:3340 ../src/iop/crop.c:1796 +#: ../src/iop/clipping.c:3380 ../src/iop/crop.c:1770 #, c-format msgid "[%s on borders] crop" msgstr "[邊界 %s] 裁切" -#: ../src/iop/clipping.c:3342 ../src/iop/crop.c:1798 +#: ../src/iop/clipping.c:3382 ../src/iop/crop.c:1772 #, c-format msgid "[%s on borders] crop keeping ratio" msgstr "[邊界 %s] 保持比例裁切" @@ -14384,21 +14909,21 @@ "還有許多模組提供更強大的類似功能\n" "更現代的 RGB 工具請使用「色彩平衡 RGB」模組" -#: ../src/iop/colisa.c:310 +#: ../src/iop/colisa.c:304 msgid "color saturation adjustment" msgstr "色彩飽和度調整" -#: ../src/iop/colorbalance.c:150 +#: ../src/iop/colorbalance.c:152 msgid "color balance" msgstr "色彩平衡" -#: ../src/iop/colorbalance.c:155 +#: ../src/iop/colorbalance.c:157 msgid "lift gamma gain|cdl|color grading|contrast|saturation|hue" msgstr "" "提升伽瑪增益|偏移乘冪斜率|色彩分級|調色|對比度|飽和度|色相|CDL|lift|gamma|" "gain|offset|slope|power" -#: ../src/iop/colorbalance.c:160 +#: ../src/iop/colorbalance.c:162 msgid "shift colors selectively by luminance range" msgstr "" "色彩平衡 | color balance\n" @@ -14406,101 +14931,101 @@ "基礎的色彩調整工具,分別調整影像不同明度範圍的色彩\n" "支援美國電影攝影師協會顏色決策列表 ASC CDL 的調整方式" -#: ../src/iop/colorbalance.c:164 +#: ../src/iop/colorbalance.c:166 msgid "non-linear, Lab, scene-referred" msgstr "非線性、Lab、場景參照" #. these blobs were exported as dtstyle and copied from there: -#: ../src/iop/colorbalance.c:275 +#: ../src/iop/colorbalance.c:304 msgid "split-toning teal-orange (2nd instance)" msgstr "色調分割:青 - 橘(二)" -#: ../src/iop/colorbalance.c:278 +#: ../src/iop/colorbalance.c:307 msgid "split-toning teal-orange (1st instance)" msgstr "色調分割:青 - 橘(一)" -#: ../src/iop/colorbalance.c:282 +#: ../src/iop/colorbalance.c:311 msgid "generic film" msgstr "一般底片" -#: ../src/iop/colorbalance.c:286 +#: ../src/iop/colorbalance.c:315 msgid "similar to Kodak Portra" msgstr "模擬 Kodak Portra" -#: ../src/iop/colorbalance.c:290 +#: ../src/iop/colorbalance.c:319 msgid "similar to Kodak Ektar" msgstr "模擬 Kodak Ektar" -#: ../src/iop/colorbalance.c:294 +#: ../src/iop/colorbalance.c:323 msgid "similar to Kodachrome" msgstr "模擬 Kodachrome" -#: ../src/iop/colorbalance.c:990 +#: ../src/iop/colorbalance.c:964 msgid "optimize luma from patches" msgstr "從選取色塊自動最佳化亮度" -#: ../src/iop/colorbalance.c:992 ../src/iop/colorbalance.c:2110 +#: ../src/iop/colorbalance.c:966 ../src/iop/colorbalance.c:2085 msgid "optimize luma" msgstr "自動最佳化亮度" -#: ../src/iop/colorbalance.c:996 +#: ../src/iop/colorbalance.c:970 msgid "neutralize colors from patches" msgstr "從選取色塊自動平衡色彩" -#: ../src/iop/colorbalance.c:998 ../src/iop/colorbalance.c:2116 +#: ../src/iop/colorbalance.c:972 ../src/iop/colorbalance.c:2091 msgid "neutralize colors" msgstr "自動平衡色彩" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "offset" msgstr "偏移" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "power" msgstr "乘冪" -#: ../src/iop/colorbalance.c:1783 +#: ../src/iop/colorbalance.c:1758 msgctxt "color" msgid "slope" msgstr "斜率" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "lift" msgstr "提升" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gamma" msgstr "伽瑪" -#: ../src/iop/colorbalance.c:1784 +#: ../src/iop/colorbalance.c:1759 msgctxt "color" msgid "gain" msgstr "增益" -#: ../src/iop/colorbalance.c:1787 +#: ../src/iop/colorbalance.c:1762 msgctxt "section" msgid "shadows: lift / offset" msgstr "調整暗部:提升 / 偏移" -#: ../src/iop/colorbalance.c:1788 +#: ../src/iop/colorbalance.c:1763 msgctxt "section" msgid "mid-tones: gamma / power" msgstr "調整中間調:伽瑪 / 乘冪" -#: ../src/iop/colorbalance.c:1789 +#: ../src/iop/colorbalance.c:1764 msgctxt "section" msgid "highlights: gain / slope" msgstr "調整亮部:增益 / 斜率" -#: ../src/iop/colorbalance.c:1813 +#: ../src/iop/colorbalance.c:1788 msgid "shadows / mid-tones / highlights" msgstr "暗部 / 中間調 / 亮部" -#: ../src/iop/colorbalance.c:1910 ../src/iop/colorbalance.c:1919 +#: ../src/iop/colorbalance.c:1885 ../src/iop/colorbalance.c:1894 msgid "color-grading mapping method" msgstr "" "色彩調整的模式,決定使用的色彩空間和 RGB 數值映射公式\n" @@ -14519,116 +15044,116 @@ "但三個參數都會對整個亮度範圍產生部分影響,建議設定順序為斜率→偏移→乘冪\n" "此模式對陰影的調整效果遠大於舊的映射方式,切換模式後應該重新調整參數" -#: ../src/iop/colorbalance.c:1914 +#: ../src/iop/colorbalance.c:1889 msgid "color control sliders" msgstr "色彩控制滑桿選項" -#: ../src/iop/colorbalance.c:1915 ../src/libs/colorpicker.c:51 +#: ../src/iop/colorbalance.c:1890 ../src/libs/colorpicker.c:51 msgid "HSL" msgstr "HSL" -#: ../src/iop/colorbalance.c:1916 +#: ../src/iop/colorbalance.c:1891 msgid "RGBL" msgstr "RGBL" -#: ../src/iop/colorbalance.c:1928 +#: ../src/iop/colorbalance.c:1903 msgctxt "section" msgid "master" msgstr "主要選項" -#: ../src/iop/colorbalance.c:1934 +#: ../src/iop/colorbalance.c:1909 msgid "saturation correction before the color balance" msgstr "" "在執行色彩平衡之前的飽和度校正\n" "主要用於抑制原始影像的色彩,讓光源複雜難以處理的畫面更好調整" -#: ../src/iop/colorbalance.c:1940 +#: ../src/iop/colorbalance.c:1915 msgid "saturation correction after the color balance" msgstr "" "在色彩平衡運算之後的飽和度校正\n" "可一次調整所有色彩平衡效果的飽和度,當色調已經調整正確但效果太重時使用" -#: ../src/iop/colorbalance.c:1945 +#: ../src/iop/colorbalance.c:1920 msgid "adjust to match a neutral tone" msgstr "" "設定不受下項對比調整影響的亮度,預設符合 18% 中灰階調\n" "高於此值的亮度將幾乎線性放大,低於此值的亮度將通過函數壓縮" #. is set in _configure_slider_blocks -#: ../src/iop/colorbalance.c:2003 +#: ../src/iop/colorbalance.c:1978 msgid "click to cycle layout" msgstr "點擊可循環切換暗部、中間調、亮部滑桿布局" -#: ../src/iop/colorbalance.c:2037 +#: ../src/iop/colorbalance.c:2012 msgid "factor" msgstr "亮度係數" -#: ../src/iop/colorbalance.c:2051 +#: ../src/iop/colorbalance.c:2026 msgid "select the hue" msgstr "選擇欲調整的色彩平衡色相" -#: ../src/iop/colorbalance.c:2063 +#: ../src/iop/colorbalance.c:2038 msgid "select the saturation" msgstr "選擇上項色彩平衡色相的飽和度" -#: ../src/iop/colorbalance.c:2082 +#: ../src/iop/colorbalance.c:2057 msgid "factor of lift/offset" msgstr "暗部(提升 / 偏移)亮度調整係數" -#: ../src/iop/colorbalance.c:2083 +#: ../src/iop/colorbalance.c:2058 msgid "factor of red for lift/offset" msgstr "紅色的暗部(提升 / 偏移)調整係數" -#: ../src/iop/colorbalance.c:2084 +#: ../src/iop/colorbalance.c:2059 msgid "factor of green for lift/offset" msgstr "綠色的暗部(提升 / 偏移)調整係數" -#: ../src/iop/colorbalance.c:2085 +#: ../src/iop/colorbalance.c:2060 msgid "factor of blue for lift/offset" msgstr "藍色的暗部(提升 / 偏移)調整係數" -#: ../src/iop/colorbalance.c:2088 +#: ../src/iop/colorbalance.c:2063 msgid "factor of gamma/power" msgstr "中間調(伽馬 / 乘冪)亮度調整係數" -#: ../src/iop/colorbalance.c:2089 +#: ../src/iop/colorbalance.c:2064 msgid "factor of red for gamma/power" msgstr "紅色的中間調(伽馬 / 乘冪)調整係數" -#: ../src/iop/colorbalance.c:2090 +#: ../src/iop/colorbalance.c:2065 msgid "factor of green for gamma/power" msgstr "綠色的中間調(伽馬 / 乘冪)調整係數" -#: ../src/iop/colorbalance.c:2091 +#: ../src/iop/colorbalance.c:2066 msgid "factor of blue for gamma/power" msgstr "藍色的中間調(伽馬 / 乘冪)調整係數" -#: ../src/iop/colorbalance.c:2094 +#: ../src/iop/colorbalance.c:2069 msgid "factor of gain/slope" msgstr "亮部(增益 / 斜率)亮度調整係數" -#: ../src/iop/colorbalance.c:2095 +#: ../src/iop/colorbalance.c:2070 msgid "factor of red for gain/slope" msgstr "紅色的亮部(增益 / 斜率)調整係數" -#: ../src/iop/colorbalance.c:2096 +#: ../src/iop/colorbalance.c:2071 msgid "factor of green for gain/slope" msgstr "綠色的亮部(增益 / 斜率)調整係數" -#: ../src/iop/colorbalance.c:2097 +#: ../src/iop/colorbalance.c:2072 msgid "factor of blue for gain/slope" msgstr "藍色的亮部(增益 / 斜率)調整係數" -#: ../src/iop/colorbalance.c:2106 +#: ../src/iop/colorbalance.c:2081 msgctxt "section" msgid "auto optimizers" msgstr "自動最佳化" -#: ../src/iop/colorbalance.c:2111 +#: ../src/iop/colorbalance.c:2086 msgid "fit the whole histogram and center the average luma" msgstr "點擊右方色彩選取,分析整個影像並自動調整亮度" -#: ../src/iop/colorbalance.c:2117 +#: ../src/iop/colorbalance.c:2092 msgid "optimize the RGB curves to remove color casts" msgstr "點擊右方色彩選取,分析整個影像並自動調整色彩平衡" @@ -14655,97 +15180,97 @@ "在 JzAzBz 或 darktable UCS 色彩空間中計算符合感知的色彩\n" "並具有多種不同色彩尺度的整體調整方式" -#: ../src/iop/colorbalancergb.c:443 +#: ../src/iop/colorbalancergb.c:536 msgid "add basic colorfulness (legacy)" msgstr "增加基礎鮮豔度(舊方法)" -#: ../src/iop/colorbalancergb.c:452 +#: ../src/iop/colorbalancergb.c:545 msgid "basic colorfulness: natural skin" msgstr "基礎鮮豔度:自然膚色" -#: ../src/iop/colorbalancergb.c:458 +#: ../src/iop/colorbalancergb.c:551 msgid "basic colorfulness: vibrant colors" msgstr "基礎鮮豔度:鮮豔色彩" -#: ../src/iop/colorbalancergb.c:464 +#: ../src/iop/colorbalancergb.c:557 msgid "basic colorfulness: standard" msgstr "基礎鮮豔度:標準" -#: ../src/iop/colorbalancergb.c:937 +#: ../src/iop/colorbalancergb.c:1022 msgid "colorbalance works only on RGB input" msgstr "色彩平衡僅適用於 RGB 輸入" -#: ../src/iop/colorbalancergb.c:1506 ../src/iop/colorzones.c:2164 -#: ../src/iop/retouch.c:1884 ../src/iop/toneequal.c:1966 +#: ../src/iop/colorbalancergb.c:1577 ../src/iop/colorzones.c:2394 +#: ../src/iop/retouch.c:2069 ../src/iop/toneequal.c:1996 msgid "cannot display masks when the blending mask is displayed" msgstr "顯示混合遮罩時無法顯示其他遮罩" #. Page master -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "master" msgstr "主要選項" -#: ../src/iop/colorbalancergb.c:1876 +#: ../src/iop/colorbalancergb.c:1947 msgid "global grading" msgstr "快速調整整體顏色和彩度" -#: ../src/iop/colorbalancergb.c:1880 +#: ../src/iop/colorbalancergb.c:1951 msgid "rotate all hues by an angle, at the same luminance" msgstr "旋轉所有顏色的色相,而不影響亮度和彩度" -#: ../src/iop/colorbalancergb.c:1886 +#: ../src/iop/colorbalancergb.c:1957 msgid "increase colorfulness mostly on low-chroma colors" msgstr "主要調整低彩度顏色的鮮豔度,而不過度影響已經很鮮豔的顏色" -#: ../src/iop/colorbalancergb.c:1892 +#: ../src/iop/colorbalancergb.c:1963 msgid "increase the contrast at constant chromaticity" msgstr "" "改變亮度以調整對比,但不影響色相和彩度\n" "需要更精細地調整對比應該使用「階調等化器」模組" -#: ../src/iop/colorbalancergb.c:1894 +#: ../src/iop/colorbalancergb.c:1965 msgctxt "section" msgid "linear chroma grading" msgstr "線性彩度調整" -#: ../src/iop/colorbalancergb.c:1901 +#: ../src/iop/colorbalancergb.c:1972 msgid "increase colorfulness at same luminance globally" msgstr "" "調整整體的鮮豔度而不影響色相和亮度\n" "類似於操作 CIE L*C*h 中的 C* - chroma,但在更先進且符合感知的空間中執行" -#: ../src/iop/colorbalancergb.c:1906 +#: ../src/iop/colorbalancergb.c:1977 msgid "increase colorfulness at same luminance mostly in shadows" msgstr "" "調整暗部的鮮豔度而不影響色相和亮度,暗部的範圍可在「亮度遮罩」選項中調整\n" "類似於操作 CIE L*C*h 中的 C* - chroma,但在更先進且符合感知的空間中執行" -#: ../src/iop/colorbalancergb.c:1911 +#: ../src/iop/colorbalancergb.c:1982 msgid "increase colorfulness at same luminance mostly in mid-tones" msgstr "" "調整中間調的鮮豔度而不影響色相和亮度,中間調的範圍可在「亮度遮罩」選項中調" "整\n" "類似於操作 CIE L*C*h 中的 C* - chroma,但在更先進且符合感知的空間中執行" -#: ../src/iop/colorbalancergb.c:1916 +#: ../src/iop/colorbalancergb.c:1987 msgid "increase colorfulness at same luminance mostly in highlights" msgstr "" "調整亮部的鮮豔度而不影響色相和亮度,亮部的範圍可在「亮度遮罩」選項中調整\n" "類似於操作 CIE L*C*h 中的 C* - chroma,但在更先進且符合感知的空間中執行" -#: ../src/iop/colorbalancergb.c:1918 +#: ../src/iop/colorbalancergb.c:1989 msgctxt "section" msgid "perceptual saturation grading" msgstr "感知飽和度調整" -#: ../src/iop/colorbalancergb.c:1924 +#: ../src/iop/colorbalancergb.c:1995 msgid "add or remove saturation by an absolute amount" msgstr "" "調整整體的色彩飽和度\n" "變更飽和度會稍微影響明度,飽和度定義請查詢色度學書籍" -#: ../src/iop/colorbalancergb.c:1929 ../src/iop/colorbalancergb.c:1934 -#: ../src/iop/colorbalancergb.c:1939 +#: ../src/iop/colorbalancergb.c:2000 ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2010 msgid "" "increase or decrease saturation proportionally to the original pixel " "saturation" @@ -14753,23 +15278,23 @@ "調整不同階調範圍的色彩飽和度,範圍可在「亮度遮罩」選項中調整\n" "變更飽和度會稍微影響明度,飽和度定義請查詢色度學書籍" -#: ../src/iop/colorbalancergb.c:1941 +#: ../src/iop/colorbalancergb.c:2012 msgctxt "section" msgid "perceptual brilliance grading" msgstr "感知明亮度調整" -#: ../src/iop/colorbalancergb.c:1942 +#: ../src/iop/colorbalancergb.c:2013 msgid "brilliance" msgstr "明亮度" -#: ../src/iop/colorbalancergb.c:1947 +#: ../src/iop/colorbalancergb.c:2018 msgid "add or remove brilliance by an absolute amount" msgstr "" "調整整體的色彩明亮度,其效果接近於符合感知的曝光調整\n" "變更明亮度會影響彩度和明度,完整說明請查詢色彩度量學書籍" -#: ../src/iop/colorbalancergb.c:1952 ../src/iop/colorbalancergb.c:1957 -#: ../src/iop/colorbalancergb.c:1962 +#: ../src/iop/colorbalancergb.c:2023 ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2033 msgid "" "increase or decrease brilliance proportionally to the original pixel " "brilliance" @@ -14778,120 +15303,120 @@ "變更明亮度會影響彩度和明度,完整說明請查詢色彩度量學書籍" #. Page 4-ways -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "4 ways" msgstr "四向調整" -#: ../src/iop/colorbalancergb.c:1965 +#: ../src/iop/colorbalancergb.c:2036 msgid "selective color grading" msgstr "依亮部、暗部、中間調等區域分別調整色彩平衡" -#: ../src/iop/colorbalancergb.c:1967 +#: ../src/iop/colorbalancergb.c:2038 msgctxt "section" msgid "global offset" msgstr "整體(偏移)" -#: ../src/iop/colorbalancergb.c:1974 +#: ../src/iop/colorbalancergb.c:2045 msgid "global luminance offset" msgstr "" "整體亮度調整\n" "調整方式相當於 ASC CDL 的偏移,此區塊不使用亮度遮罩" -#: ../src/iop/colorbalancergb.c:1979 +#: ../src/iop/colorbalancergb.c:2050 msgid "hue of the global color offset" msgstr "" "整體色彩平衡調整的色相\n" "調整方式相當於 ASC CDL 的偏移,此區塊不使用亮度遮罩" -#: ../src/iop/colorbalancergb.c:1985 +#: ../src/iop/colorbalancergb.c:2056 msgid "chroma of the global color offset" msgstr "選擇上項色彩平衡色相的彩度" -#: ../src/iop/colorbalancergb.c:1987 +#: ../src/iop/colorbalancergb.c:2058 msgctxt "section" msgid "shadows lift" msgstr "暗部(提升)" -#: ../src/iop/colorbalancergb.c:1988 +#: ../src/iop/colorbalancergb.c:2059 msgid "lift" msgstr "提升" -#: ../src/iop/colorbalancergb.c:1994 +#: ../src/iop/colorbalancergb.c:2065 msgid "luminance gain in shadows" msgstr "" "變更暗部的亮度\n" "調整方式類似傳統的電影調色 lift 選項,但在此使用亮度遮罩控制" -#: ../src/iop/colorbalancergb.c:1999 +#: ../src/iop/colorbalancergb.c:2070 msgid "hue of the color gain in shadows" msgstr "" "暗部色彩平衡調整的色相\n" "調整方式類似傳統的電影調色 lift 選項,但在此使用亮度遮罩控制" -#: ../src/iop/colorbalancergb.c:2005 +#: ../src/iop/colorbalancergb.c:2076 msgid "chroma of the color gain in shadows" msgstr "選擇上項色彩平衡色相的彩度" -#: ../src/iop/colorbalancergb.c:2007 +#: ../src/iop/colorbalancergb.c:2078 msgctxt "section" msgid "highlights gain" msgstr "亮部(增益)" -#: ../src/iop/colorbalancergb.c:2008 +#: ../src/iop/colorbalancergb.c:2079 msgid "gain" msgstr "增益" -#: ../src/iop/colorbalancergb.c:2014 +#: ../src/iop/colorbalancergb.c:2085 msgid "luminance gain in highlights" msgstr "" "變更亮部的亮度\n" "調整方式類似 ASC CDL 的 gain,但在此使用亮度遮罩控制" -#: ../src/iop/colorbalancergb.c:2019 +#: ../src/iop/colorbalancergb.c:2090 msgid "hue of the color gain in highlights" msgstr "" "亮部色彩平衡調整的色相\n" "調整方式類似 ASC CDL 的 gain,但在此使用亮度遮罩控制" -#: ../src/iop/colorbalancergb.c:2025 +#: ../src/iop/colorbalancergb.c:2096 msgid "chroma of the color gain in highlights" msgstr "選擇上項色彩平衡色相的彩度" -#: ../src/iop/colorbalancergb.c:2027 +#: ../src/iop/colorbalancergb.c:2098 msgctxt "section" msgid "power" msgstr "中間調(乘冪)" -#: ../src/iop/colorbalancergb.c:2028 +#: ../src/iop/colorbalancergb.c:2099 msgid "power" msgstr "乘冪" -#: ../src/iop/colorbalancergb.c:2034 +#: ../src/iop/colorbalancergb.c:2105 msgid "luminance exponent in mid-tones" msgstr "" "變更中間調的亮度\n" "調整方式類似 ASC CDL 的 power,但在此使用亮度遮罩控制" -#: ../src/iop/colorbalancergb.c:2039 +#: ../src/iop/colorbalancergb.c:2110 msgid "hue of the color exponent in mid-tones" msgstr "" "中間調色彩平衡調整的色相\n" "調整方式類似 ASC CDL 的 power,但在此使用亮度遮罩控制" -#: ../src/iop/colorbalancergb.c:2045 +#: ../src/iop/colorbalancergb.c:2116 msgid "chroma of the color exponent in mid-tones" msgstr "選擇上項色彩平衡色相的彩度" #. Page masks -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "masks" msgstr "亮度遮罩" -#: ../src/iop/colorbalancergb.c:2048 +#: ../src/iop/colorbalancergb.c:2119 msgid "isolate luminances" msgstr "以遮罩方式調整區隔亮暗部和中間調的範圍" -#: ../src/iop/colorbalancergb.c:2052 +#: ../src/iop/colorbalancergb.c:2123 msgid "choose in which uniform color space the saturation is computed" msgstr "" "選擇使用哪一個色彩空間執行飽和度計算\n" @@ -14905,12 +15430,12 @@ "darktable 前開發者之一 Aurélien Pierre 設計的色彩空間\n" "主要差異是考量 Helmholtz-Kohlrausch 效應,能更準確預測感知飽和度" -#: ../src/iop/colorbalancergb.c:2054 +#: ../src/iop/colorbalancergb.c:2125 msgctxt "section" msgid "luminance ranges" msgstr "亮度範圍" -#: ../src/iop/colorbalancergb.c:2065 +#: ../src/iop/colorbalancergb.c:2136 msgid "weight of the shadows over the whole tonal range" msgstr "" "控制暗部範圍遮罩過渡的曲線斜率\n" @@ -14918,14 +15443,14 @@ "數值越小過渡越平緩,暗部的範圍就拓展得越遠\n" "點擊右側遮罩按鈕可顯示暗部區域,非暗部區域以方格顯示" -#: ../src/iop/colorbalancergb.c:2073 +#: ../src/iop/colorbalancergb.c:2144 msgid "position of the middle-gray reference for masking" msgstr "" "亮度置中的中灰色位置,此亮度值下亮部、暗部和中間調的遮罩透明度都是 50%\n" "在實際使用中,高於此值的被認定為亮部,低於此值的則為暗部\n" "點擊右側遮罩按鈕可顯示中間調區域,非中間調區域以方格顯示" -#: ../src/iop/colorbalancergb.c:2081 +#: ../src/iop/colorbalancergb.c:2152 msgid "weights of highlights over the whole tonal range" msgstr "" "控制亮部範圍遮罩過渡的曲線斜率\n" @@ -14933,18 +15458,18 @@ "數值越小過渡越平緩,亮部的範圍就拓展得越遠\n" "點擊右側遮罩按鈕可顯示亮部區域,非亮部區域以方格顯示" -#: ../src/iop/colorbalancergb.c:2086 +#: ../src/iop/colorbalancergb.c:2157 msgctxt "section" msgid "threshold" msgstr "臨界值" -#: ../src/iop/colorbalancergb.c:2091 +#: ../src/iop/colorbalancergb.c:2162 msgid "peak white luminance value used to normalize the power function" msgstr "" "設置白點亮度,以標準化四向調整中的乘冪函數\n" "使用右側色彩選取工具自動設置為框選範圍最大亮度,大多數情況下這樣就可以了" -#: ../src/iop/colorbalancergb.c:2097 +#: ../src/iop/colorbalancergb.c:2168 msgid "peak gray luminance value used to normalize the power function" msgstr "" "設置對比中灰點,以標準化主要選項中的對比\n" @@ -14952,24 +15477,24 @@ "數值通常與 18% 中灰相同,但也可以手動設定\n" "右側色彩選取工具可自動設定為框選範圍的平均亮度,適合亮度分布均勻的影像" -#: ../src/iop/colorbalancergb.c:2099 +#: ../src/iop/colorbalancergb.c:2170 msgctxt "section" msgid "mask preview settings" msgstr "遮罩預覽設定" -#: ../src/iop/colorbalancergb.c:2102 +#: ../src/iop/colorbalancergb.c:2173 msgid "checkerboard color 1" msgstr "方格顏色一" -#: ../src/iop/colorbalancergb.c:2105 ../src/iop/colorbalancergb.c:2114 +#: ../src/iop/colorbalancergb.c:2176 ../src/iop/colorbalancergb.c:2185 msgid "select color of the checkerboard from a swatch" msgstr "從色板中選擇方格的顏色" -#: ../src/iop/colorbalancergb.c:2111 +#: ../src/iop/colorbalancergb.c:2182 msgid "checkerboard color 2" msgstr "方格顏色二" -#: ../src/iop/colorbalancergb.c:2121 +#: ../src/iop/colorbalancergb.c:2192 msgid "checkerboard size" msgstr "方格尺寸" @@ -14991,11 +15516,11 @@ "要使用色卡效正色偏請使用「色彩校正」模組" #: ../src/iop/colorchecker.c:131 ../src/iop/colorchecker.c:133 -#: ../src/iop/colorize.c:106 ../src/iop/colormapping.c:154 -#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:136 -#: ../src/iop/colorzones.c:146 ../src/iop/defringe.c:83 ../src/iop/levels.c:139 -#: ../src/iop/monochrome.c:99 ../src/iop/shadhi.c:198 -#: ../src/iop/tonecurve.c:212 ../src/iop/vibrance.c:96 +#: ../src/iop/colorize.c:99 ../src/iop/colormapping.c:154 +#: ../src/iop/colorout.c:90 ../src/iop/colorreconstruction.c:121 +#: ../src/iop/colorzones.c:147 ../src/iop/defringe.c:83 ../src/iop/levels.c:141 +#: ../src/iop/monochrome.c:101 ../src/iop/shadhi.c:145 +#: ../src/iop/tonecurve.c:185 ../src/iop/vibrance.c:98 msgid "linear or non-linear, Lab, display-referred" msgstr "線性或非線性、Lab、顯示參照" @@ -15003,40 +15528,40 @@ msgid "defined by profile, Lab" msgstr "由描述檔定義、Lab" -#: ../src/iop/colorchecker.c:294 +#: ../src/iop/colorchecker.c:308 msgid "it8 skin tones" msgstr "IT8 色卡膚色調" -#: ../src/iop/colorchecker.c:310 +#: ../src/iop/colorchecker.c:324 msgid "Helmholtz/Kohlrausch monochrome" msgstr "Helmholtz / Kohlrausch 黑白" -#: ../src/iop/colorchecker.c:327 +#: ../src/iop/colorchecker.c:341 msgid "Fuji Astia emulation" msgstr "模擬 Fujifilm Astia" -#: ../src/iop/colorchecker.c:341 +#: ../src/iop/colorchecker.c:355 msgid "Fuji Classic Chrome emulation" msgstr "模擬 Fujifilm Classic Chrome" -#: ../src/iop/colorchecker.c:355 +#: ../src/iop/colorchecker.c:369 msgid "Fuji Monochrome emulation" msgstr "模擬 Fujifilm Monochrome" -#: ../src/iop/colorchecker.c:369 +#: ../src/iop/colorchecker.c:383 msgid "Fuji Provia emulation" msgstr "模擬 Fujifilm Provia" -#: ../src/iop/colorchecker.c:383 +#: ../src/iop/colorchecker.c:397 msgid "Fuji Velvia emulation" msgstr "模擬 Fujifilm Velvia" -#: ../src/iop/colorchecker.c:841 ../src/iop/colorchecker.c:1436 +#: ../src/iop/colorchecker.c:846 ../src/iop/colorchecker.c:1441 #, c-format msgid "patch #%d" msgstr "第 %d 個色塊" -#: ../src/iop/colorchecker.c:1283 +#: ../src/iop/colorchecker.c:1288 #, c-format msgid "" "(%2.2f %2.2f %2.2f)\n" @@ -15053,15 +15578,15 @@ "右鍵刪除色塊\n" "右下方色彩選取工具啟用時,shift + 點擊以影像中的顏色替換色塊" -#: ../src/iop/colorchecker.c:1431 +#: ../src/iop/colorchecker.c:1436 msgid "patch" msgstr "色塊" -#: ../src/iop/colorchecker.c:1432 +#: ../src/iop/colorchecker.c:1437 msgid "color checker patch" msgstr "ColorChecker 色塊" -#: ../src/iop/colorchecker.c:1446 +#: ../src/iop/colorchecker.c:1451 msgid "" "adjust target color Lab 'L' channel\n" "lower values darken target color while higher brighten it" @@ -15069,7 +15594,7 @@ "調整目標顏色在 CIELAB 中的 L* 色版數值\n" "較低的值會讓顏色變暗,較高的值則把顏色變亮" -#: ../src/iop/colorchecker.c:1454 +#: ../src/iop/colorchecker.c:1459 msgid "" "adjust target color Lab 'a' channel\n" "lower values shift target color towards greens while higher shift towards " @@ -15078,11 +15603,11 @@ "調整目標顏色在 CIELAB 中的 a* 色版數值\n" "較低的值會讓顏色偏向綠色,較高的值則讓顏色偏紅" -#: ../src/iop/colorchecker.c:1457 +#: ../src/iop/colorchecker.c:1462 msgid "green-magenta offset" msgstr "綠色 - 紅色偏移" -#: ../src/iop/colorchecker.c:1466 +#: ../src/iop/colorchecker.c:1471 msgid "" "adjust target color Lab 'b' channel\n" "lower values shift target color towards blues while higher shift towards " @@ -15091,11 +15616,11 @@ "調整目標顏色在 CIELAB 中的 b* 色版數值\n" "較低的值會讓顏色偏向藍色,較高的值則讓顏色偏黃" -#: ../src/iop/colorchecker.c:1469 +#: ../src/iop/colorchecker.c:1474 msgid "blue-yellow offset" msgstr "藍色 - 黃色偏移" -#: ../src/iop/colorchecker.c:1478 +#: ../src/iop/colorchecker.c:1483 msgid "" "adjust target color saturation\n" "adjusts 'a' and 'b' channels of target color in Lab space simultaneously\n" @@ -15105,11 +15630,11 @@ "調整目標顏色在 CIE L*C*h 中的彩度,同步影響 a*、b* 色版\n" "較低的值降低彩度,而較高的值讓彩度變高" -#: ../src/iop/colorchecker.c:1487 +#: ../src/iop/colorchecker.c:1492 msgid "target color" msgstr "目標顏色" -#: ../src/iop/colorchecker.c:1490 +#: ../src/iop/colorchecker.c:1495 msgid "" "control target color of the patches\n" "relative - target color is relative from the patch original color\n" @@ -15119,15 +15644,15 @@ "相對:目標顏色相對於原始色塊顏色的調整數值\n" "絕對:目標顏色的絕對 L*a*b* 值" -#: ../src/iop/colorchecker.c:1494 +#: ../src/iop/colorchecker.c:1499 msgid "absolute" msgstr "絕對" -#: ../src/iop/colorcontrast.c:85 +#: ../src/iop/colorcontrast.c:77 msgid "color contrast" msgstr "色彩對比" -#: ../src/iop/colorcontrast.c:95 +#: ../src/iop/colorcontrast.c:87 msgid "" "increase saturation and separation between\n" "opposite colors" @@ -15138,7 +15663,7 @@ "實際上是操作 CIELAB 空間 a* 與 b* 色版的對比\n" "更精細的控制建議使用「階調曲線」模組中的 L*a*b* 獨立調整功能" -#: ../src/iop/colorcontrast.c:324 +#: ../src/iop/colorcontrast.c:330 msgid "" "steepness of the a* curve in Lab\n" "lower values desaturate greens and magenta while higher saturate them" @@ -15146,7 +15671,7 @@ "調整 CIELAB 空間裡 a* 色版的斜率\n" "影響綠色至洋紅色的彩度,數值越低彩度越低,數值越高彩度越高" -#: ../src/iop/colorcontrast.c:331 +#: ../src/iop/colorcontrast.c:337 msgid "" "steepness of the b* curve in Lab\n" "lower values desaturate blues and yellows while higher saturate them" @@ -15167,19 +15692,19 @@ "修改整體彩度和色調分割的替代模組\n" "使用「色調分割」模組執行更完整的控制" -#: ../src/iop/colorcorrection.c:107 +#: ../src/iop/colorcorrection.c:109 msgid "warm tone" msgstr "暖色調" -#: ../src/iop/colorcorrection.c:115 +#: ../src/iop/colorcorrection.c:117 msgid "warming filter" msgstr "暖調濾鏡" -#: ../src/iop/colorcorrection.c:123 +#: ../src/iop/colorcorrection.c:125 msgid "cooling filter" msgstr "冷調濾鏡" -#: ../src/iop/colorcorrection.c:257 +#: ../src/iop/colorcorrection.c:250 msgid "" "drag the line for split-toning. bright means highlights, dark means shadows. " "use mouse wheel to change saturation." @@ -15187,7 +15712,7 @@ "拖曳黑白點控制色調,白點代表亮部,黑點代表暗部\n" "使用滑鼠滾輪更改飽和度" -#: ../src/iop/colorcorrection.c:276 +#: ../src/iop/colorcorrection.c:269 msgid "set the global saturation" msgstr "設定整體飽和度" @@ -15208,7 +15733,7 @@ "然後將其轉入工作色彩空間,以 32 位元單精度浮點數進行內部運算" #: ../src/iop/colorin.c:133 ../src/iop/colorout.c:89 ../src/iop/demosaic.c:293 -#: ../src/iop/rawprepare.c:158 +#: ../src/iop/rawprepare.c:174 msgid "mandatory" msgstr "必要" @@ -15216,31 +15741,31 @@ msgid "defined by profile" msgstr "由描述檔定義" -#: ../src/iop/colorin.c:542 +#: ../src/iop/colorin.c:582 #, c-format msgid "" "can't extract matrix from colorspace `%s', it will be replaced by Rec2020 " "RGB!" msgstr "無法取得色彩空間「%s」內的矩陣資料,將以 Rec. 2020 取代!" -#: ../src/iop/colorin.c:1424 +#: ../src/iop/colorin.c:1362 #, c-format msgid "`%s' color matrix not found!" msgstr "找不到「%s」的色彩矩陣!" -#: ../src/iop/colorin.c:1463 +#: ../src/iop/colorin.c:1401 msgid "input profile could not be generated!" msgstr "無法生成輸入描述檔!" -#: ../src/iop/colorin.c:1560 +#: ../src/iop/colorin.c:1498 msgid "unsupported input profile has been replaced by linear Rec709 RGB!" -msgstr "不支援的輸入描述檔,已使用現性 Rec. 709 取代!" +msgstr "不支援的輸入描述檔,已使用線性 Rec. 709 取代!" -#: ../src/iop/colorin.c:1844 +#: ../src/iop/colorin.c:1782 msgid "external ICC profiles" msgstr "外部 ICC 描述檔" -#: ../src/iop/colorin.c:1889 +#: ../src/iop/colorin.c:1827 #, c-format msgid "" "embedded ICC profile properties:\n" @@ -15263,19 +15788,19 @@ "版權:<b>%s</b>\n" "\n" -#: ../src/iop/colorin.c:2084 +#: ../src/iop/colorin.c:2022 msgid "input profile" msgstr "影像輸入描述檔" -#: ../src/iop/colorin.c:2088 +#: ../src/iop/colorin.c:2026 msgid "working profile" msgstr "工作空間描述檔" -#: ../src/iop/colorin.c:2097 +#: ../src/iop/colorin.c:2035 msgid "working ICC profiles" msgstr "工作色彩空間描述檔" -#: ../src/iop/colorin.c:2109 +#: ../src/iop/colorin.c:2047 msgid "confine Lab values to gamut of RGB color space" msgstr "" "將顏色限制在所選色彩空間描述檔的色域中\n" @@ -15283,11 +15808,11 @@ "只在影像出現不正常的色彩映射或偽色時才考慮開啟此功能\n" "例如高飽和的舞台雷射光源,尤其是藍色雷射光束特別容易引發此問題" -#: ../src/iop/colorize.c:84 +#: ../src/iop/colorize.c:75 msgid "colorize" msgstr "上色" -#: ../src/iop/colorize.c:104 +#: ../src/iop/colorize.c:97 msgid "overlay a solid color on the image" msgstr "" "上色 | colorize\n" @@ -15295,19 +15820,19 @@ "在影像上覆蓋一層純色\n" "可配合遮罩與混合模式打造創意效果" -#: ../src/iop/colorize.c:341 ../src/iop/splittoning.c:485 +#: ../src/iop/colorize.c:354 ../src/iop/splittoning.c:481 msgid "select the hue tone" msgstr "設定覆蓋純色的色相" -#: ../src/iop/colorize.c:347 +#: ../src/iop/colorize.c:360 msgid "select the saturation shadow tone" msgstr "設定覆蓋純色的飽和度" -#: ../src/iop/colorize.c:351 +#: ../src/iop/colorize.c:364 msgid "lightness of color" msgstr "設定覆蓋純色的明度" -#: ../src/iop/colorize.c:355 +#: ../src/iop/colorize.c:368 msgid "mix value of source lightness" msgstr "" "控制原始影像的明度如何與純色混合\n" @@ -15328,37 +15853,37 @@ "接著開啟要套用的影像,然後點選「套用目的影像」\n" "可使用下方滑桿調整效果,或使用透明度與混合模式來更改" -#: ../src/iop/colormapping.c:1030 +#: ../src/iop/colormapping.c:1019 msgid "source clusters:" msgstr "來源影像色彩群集:" -#: ../src/iop/colormapping.c:1036 +#: ../src/iop/colormapping.c:1025 msgid "target clusters:" msgstr "目標影像色彩群集:" -#: ../src/iop/colormapping.c:1045 +#: ../src/iop/colormapping.c:1034 msgid "acquire as source" msgstr "分析來源影像" -#: ../src/iop/colormapping.c:1049 +#: ../src/iop/colormapping.c:1038 msgid "analyze this image as a source image" msgstr "使用目前影像作為來源,分析影像的色彩與亮度分布製作色彩群集" -#: ../src/iop/colormapping.c:1051 +#: ../src/iop/colormapping.c:1040 msgid "acquire as target" msgstr "套用目的影像" -#: ../src/iop/colormapping.c:1055 +#: ../src/iop/colormapping.c:1044 msgid "analyze this image as a target image" msgstr "將目前影像當作調整目標,分析影像製作色彩群集後套用來源色彩" -#: ../src/iop/colormapping.c:1058 +#: ../src/iop/colormapping.c:1047 msgid "number of clusters to find in image. value change resets all clusters" msgstr "" "依據影像分析製作的色彩群集數量,設定應該與影像中的主要色彩數量相符\n" "色彩由隨機採樣統計產生,代表影像中最常出現的顏色,更改設定會重設色彩群集" -#: ../src/iop/colormapping.c:1061 +#: ../src/iop/colormapping.c:1050 msgid "" "how clusters are mapped. low values: based on color proximity, high values: " "based on color dominance" @@ -15367,7 +15892,7 @@ "越低的值映射趨向改變接近的顏色,效果越不明顯\n" "越高的值映射基於色彩群集所佔的權重, 效果更為強烈" -#: ../src/iop/colormapping.c:1066 +#: ../src/iop/colormapping.c:1055 msgid "level of histogram equalization" msgstr "" "依據來源影像的亮度分配重新調整目標影像的亮度\n" @@ -15392,60 +15917,60 @@ msgid "non-linear, RGB or Lab, display-referred" msgstr "非線性、RGB 或 Lab、顯示參照" -#: ../src/iop/colorout.c:679 +#: ../src/iop/colorout.c:695 msgid "missing output profile has been replaced by sRGB!" msgstr "遺失的輸出描述檔已被 sRGB 取代" -#: ../src/iop/colorout.c:701 +#: ../src/iop/colorout.c:717 msgid "missing softproof profile has been replaced by sRGB!" msgstr "遺失的軟打樣描述檔已被 sRGB 取代" -#: ../src/iop/colorout.c:744 +#: ../src/iop/colorout.c:760 msgid "unsupported output profile has been replaced by sRGB!" msgstr "不支援的輸出描述檔案已被 sRGB 取代" -#: ../src/iop/colorout.c:869 +#: ../src/iop/colorout.c:885 msgid "output intent" msgstr "輸出轉換方式" -#: ../src/iop/colorout.c:870 +#: ../src/iop/colorout.c:886 msgid "rendering intent" msgstr "色彩轉換方式" -#: ../src/iop/colorout.c:872 ../src/libs/export.c:1246 +#: ../src/iop/colorout.c:888 ../src/libs/export.c:1358 #: ../src/libs/print_settings.c:2475 ../src/libs/print_settings.c:2824 -#: ../src/views/darkroom.c:2518 ../src/views/lighttable.c:1176 +#: ../src/views/darkroom.c:2359 ../src/views/lighttable.c:1176 msgid "perceptual" msgstr "感應式" -#: ../src/iop/colorout.c:873 ../src/libs/export.c:1247 +#: ../src/iop/colorout.c:889 ../src/libs/export.c:1359 #: ../src/libs/print_settings.c:2476 ../src/libs/print_settings.c:2825 -#: ../src/views/darkroom.c:2519 ../src/views/lighttable.c:1177 +#: ../src/views/darkroom.c:2360 ../src/views/lighttable.c:1177 msgid "relative colorimetric" msgstr "相對色度" -#: ../src/iop/colorout.c:874 ../src/libs/export.c:1248 +#: ../src/iop/colorout.c:890 ../src/libs/export.c:1360 #: ../src/libs/print_settings.c:2477 ../src/libs/print_settings.c:2826 -#: ../src/views/darkroom.c:2520 ../src/views/lighttable.c:1178 +#: ../src/views/darkroom.c:2361 ../src/views/lighttable.c:1178 msgctxt "rendering intent" msgid "saturation" msgstr "飽和度" -#: ../src/iop/colorout.c:875 ../src/libs/export.c:1249 +#: ../src/iop/colorout.c:891 ../src/libs/export.c:1361 #: ../src/libs/print_settings.c:2478 ../src/libs/print_settings.c:2827 -#: ../src/views/darkroom.c:2521 ../src/views/lighttable.c:1179 +#: ../src/views/darkroom.c:2362 ../src/views/lighttable.c:1179 msgid "absolute colorimetric" msgstr "絶對色度" -#: ../src/iop/colorout.c:893 +#: ../src/iop/colorout.c:909 msgid "export ICC profiles" msgstr "匯出用色彩描述檔" -#: ../src/iop/colorreconstruction.c:129 +#: ../src/iop/colorreconstruction.c:114 msgid "color reconstruction" msgstr "過曝色彩重建" -#: ../src/iop/colorreconstruction.c:134 +#: ../src/iop/colorreconstruction.c:119 msgid "recover clipped highlights by propagating surrounding colors" msgstr "" "過曝色彩重建 | color reconstruction\n" @@ -15453,44 +15978,44 @@ "利用周圍的色彩來恢復過度曝光的顏色資訊\n" "取代原本可能顯示為純白的像素" -#: ../src/iop/colorreconstruction.c:628 ../src/iop/colorreconstruction.c:1040 -#: ../src/iop/globaltonemap.c:193 ../src/iop/globaltonemap.c:362 -#: ../src/iop/hazeremoval.c:553 ../src/iop/hazeremoval.c:788 -#: ../src/iop/levels.c:336 +#: ../src/iop/colorreconstruction.c:647 ../src/iop/colorreconstruction.c:1053 +#: ../src/iop/globaltonemap.c:227 ../src/iop/globaltonemap.c:396 +#: ../src/iop/hazeremoval.c:541 ../src/iop/hazeremoval.c:776 +#: ../src/iop/levels.c:358 msgid "inconsistent output" msgstr "輸出結果不一致" -#: ../src/iop/colorreconstruction.c:666 +#: ../src/iop/colorreconstruction.c:685 msgid "module `color reconstruction' failed" msgstr "「過曝色彩重建」模組發生錯誤" -#: ../src/iop/colorreconstruction.c:1237 +#: ../src/iop/colorreconstruction.c:1246 msgid "spatial" msgstr "距離範圍" -#: ../src/iop/colorreconstruction.c:1238 +#: ../src/iop/colorreconstruction.c:1247 msgid "range" msgstr "亮度範圍" -#: ../src/iop/colorreconstruction.c:1239 +#: ../src/iop/colorreconstruction.c:1248 msgid "precedence" msgstr "優先色彩" -#: ../src/iop/colorreconstruction.c:1255 +#: ../src/iop/colorreconstruction.c:1264 msgid "pixels with lightness values above this threshold are corrected" msgstr "" "修復亮度高於此值的像素顏色,低於此值的像素作為顏色重建的參考\n" "這個參數的最佳設定可能每幅影像都不相同,必須手動判斷" -#: ../src/iop/colorreconstruction.c:1256 +#: ../src/iop/colorreconstruction.c:1265 msgid "how far to look for replacement colors in spatial dimensions" msgstr "重建色彩的參考距離,設定要尋找距離過曝亮點多遠的像素顏色作為來源" -#: ../src/iop/colorreconstruction.c:1257 +#: ../src/iop/colorreconstruction.c:1266 msgid "how far to look for replacement colors in the luminance dimension" msgstr "重建色彩的參考亮度,設定要尋找和過曝亮點亮度差異多大的像素顏色作為來源" -#: ../src/iop/colorreconstruction.c:1258 +#: ../src/iop/colorreconstruction.c:1267 msgid "if and how to give precedence to specific replacement colors" msgstr "" "右側選項定義是否優先考慮使用某些顏色來重建過曝像素色彩\n" @@ -15499,7 +16024,7 @@ "飽和色彩:優先考慮高飽和度的參考像素\n" "色相:在參考像素中指定尋找特定的色調" -#: ../src/iop/colorreconstruction.c:1259 +#: ../src/iop/colorreconstruction.c:1268 msgid "the hue tone which should be given precedence over other hue tones" msgstr "" "優先使用以下色調來重建色彩,只有當設定為色相時,才會顯示這個滑桿\n" @@ -15508,12 +16033,12 @@ "此選項典型的用法是做為修復皮膚的高反光區域\n" "選擇膚色系的色相可以避免附近高亮度的其他顏色混入造成不自然感" -#: ../src/iop/colorreconstruction.c:1261 ../src/iop/demosaic.c:1277 -#: ../src/iop/highlights.c:1168 +#: ../src/iop/colorreconstruction.c:1270 ../src/iop/demosaic.c:1324 +#: ../src/iop/highlights.c:1258 msgid "not applicable" msgstr "不適用" -#: ../src/iop/colorreconstruction.c:1262 +#: ../src/iop/colorreconstruction.c:1271 msgid "no highlights reconstruction for monochrome images" msgstr "黑白影像無法重建亮部色彩" @@ -15525,7 +16050,7 @@ msgid "this module is deprecated. better use color mapping module instead." msgstr "此模組已被汰除,建議使用「色彩映射」模組替代" -#: ../src/iop/colortransfer.c:439 +#: ../src/iop/colortransfer.c:441 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -15534,11 +16059,11 @@ "此模組將在未來移除,僅在此處可用\n" "可以將其關閉,並改用新的「色彩映射」模組" -#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2332 +#: ../src/iop/colorzones.c:139 ../src/iop/colorzones.c:2573 msgid "color zones" msgstr "色彩分區調整" -#: ../src/iop/colorzones.c:144 +#: ../src/iop/colorzones.c:145 msgid "selectively shift hues, chroma and lightness of pixels" msgstr "" "色彩分區調整 | color zones\n" @@ -15547,35 +16072,35 @@ "先選擇橫坐標根據明度、彩度或色相控制範圍\n" "接著以曲線控制相應的明度、彩度和色相變化" -#: ../src/iop/colorzones.c:606 +#: ../src/iop/colorzones.c:684 msgid "B&W: with red" msgstr "黑白:保留紅色" -#: ../src/iop/colorzones.c:629 +#: ../src/iop/colorzones.c:707 msgid "B&W: with skin tones" msgstr "黑白:保留膚色調" -#: ../src/iop/colorzones.c:652 +#: ../src/iop/colorzones.c:732 msgid "polarizing filter" msgstr "仿偏光鏡" -#: ../src/iop/colorzones.c:673 +#: ../src/iop/colorzones.c:753 msgid "natural skin tones" msgstr "自然膚色" -#: ../src/iop/colorzones.c:704 +#: ../src/iop/colorzones.c:784 msgid "B&W: film" msgstr "黑白:底片" -#: ../src/iop/colorzones.c:724 +#: ../src/iop/colorzones.c:804 msgid "HSL base setting" msgstr "HSL 基本設定" -#: ../src/iop/colorzones.c:2264 +#: ../src/iop/colorzones.c:2500 msgid "orange" msgstr "橘色" -#: ../src/iop/colorzones.c:2421 ../src/iop/rgbcurve.c:1375 +#: ../src/iop/colorzones.c:2673 ../src/iop/rgbcurve.c:1375 msgid "" "create a curve based on an area from the image\n" "drag to create a flat curve\n" @@ -15587,53 +16112,53 @@ "ctrl + 點擊除了建立控制點之外,同時調整曲線向上\n" "shift + 點擊除了建立控制點之外,同時調整曲線向下" -#: ../src/iop/colorzones.c:2425 ../src/iop/rgbcurve.c:1379 +#: ../src/iop/colorzones.c:2677 ../src/iop/rgbcurve.c:1379 msgid "create curve" msgstr "創建曲線" #. edit by area -#: ../src/iop/colorzones.c:2442 +#: ../src/iop/colorzones.c:2696 msgid "edit by area" msgstr "以區域調整" -#: ../src/iop/colorzones.c:2447 +#: ../src/iop/colorzones.c:2702 msgid "edit the curve nodes by area" msgstr "" "開啟區域編輯模式\n" "以滑鼠拖動區域內的曲線,而非直接控制曲線節點" -#: ../src/iop/colorzones.c:2454 +#: ../src/iop/colorzones.c:2710 msgid "display selection" msgstr "顯示選取範圍" -#: ../src/iop/colorzones.c:2463 +#: ../src/iop/colorzones.c:2722 msgid "choose selection criterion, will be the abscissa in the graph" msgstr "" "定義水平橫座標,也就是控制如何選取要處理的像素範圍\n" "可切換依據明度、彩度、色相選取控制範圍\n" "更改此設定會重設曲線,如果要同時使用不同控制方式請建立新的模組實例" -#: ../src/iop/colorzones.c:2466 +#: ../src/iop/colorzones.c:2725 msgid "choose between a smoother or stronger effect" msgstr "選擇調整效果的方式" -#: ../src/iop/colorzones.c:2494 ../src/iop/rgbcurve.c:1410 -#: ../src/iop/tonecurve.c:1172 +#: ../src/iop/colorzones.c:2762 ../src/iop/rgbcurve.c:1410 +#: ../src/iop/tonecurve.c:1194 msgid "interpolation method" msgstr "曲線內插法" -#: ../src/iop/colorzones.c:2496 ../src/iop/rgbcurve.c:1412 -#: ../src/iop/tonecurve.c:1174 +#: ../src/iop/colorzones.c:2764 ../src/iop/rgbcurve.c:1412 +#: ../src/iop/tonecurve.c:1196 msgid "centripetal spline" msgstr "向心擬合曲線" -#: ../src/iop/colorzones.c:2497 ../src/iop/rgbcurve.c:1413 -#: ../src/iop/tonecurve.c:1175 +#: ../src/iop/colorzones.c:2765 ../src/iop/rgbcurve.c:1413 +#: ../src/iop/tonecurve.c:1197 msgid "monotonic spline" msgstr "單調擬合曲線" -#: ../src/iop/colorzones.c:2500 ../src/iop/rgbcurve.c:1416 -#: ../src/iop/tonecurve.c:1177 +#: ../src/iop/colorzones.c:2768 ../src/iop/rgbcurve.c:1416 +#: ../src/iop/tonecurve.c:1199 msgid "" "change this method if you see oscillations or cusps in the curve\n" "- cubic spline is better to produce smooth curves but oscillates when nodes " @@ -15654,15 +16179,15 @@ "單調擬合曲線(centripetal):\n" "適合單純函數型態的調整曲線,如 log、gamma 與指數曲線" -#: ../src/iop/crop.c:132 +#: ../src/iop/crop.c:122 msgid "crop" msgstr "裁切" -#: ../src/iop/crop.c:137 +#: ../src/iop/crop.c:127 msgid "reframe|distortion" msgstr "邊框|crop" -#: ../src/iop/crop.c:143 +#: ../src/iop/crop.c:133 msgid "change the framing" msgstr "" "裁切 | crop\n" @@ -15670,13 +16195,13 @@ "以螢幕顯示直覺地操作裁切影像\n" "選取此模組時會顯示完整未裁切影像" -#: ../src/iop/crop.c:1667 +#: ../src/iop/crop.c:1651 msgid "<b>resize</b>: drag, <b>keep aspect ratio</b>: shift+drag" msgstr "" "拖曳邊界改變尺寸\n" "shift + 拖曳維持寬高比" -#: ../src/iop/crop.c:1676 +#: ../src/iop/crop.c:1660 msgid "" "<b>move</b>: drag, <b>move vertically</b>: shift+drag, <b>move horizontally</" "b>: ctrl+drag" @@ -15698,7 +16223,7 @@ "instead." msgstr "此模組已被汰除,建議使用「色像差校正」模組替代" -#: ../src/iop/defringe.c:415 +#: ../src/iop/defringe.c:417 msgid "" "method for color protection:\n" " - global average: fast, might show slightly wrong previews in high " @@ -15715,14 +16240,14 @@ "局部平均:較慢,使用每個像素周遭的像素作為色彩參考計算,可以更好地保護色彩\n" "固定門檻:不考慮影像中的色彩計算,直接使用使用者自訂的色差門檻" -#: ../src/iop/defringe.c:422 +#: ../src/iop/defringe.c:424 msgid "radius for detecting fringe" msgstr "" "邊緣偵測的範圍\n" "邏輯是以原始影像和經過高斯模糊版本比對差異來偵測邊緣\n" "若色像差很明顯或是紫邊太寬時可以調高這個數值" -#: ../src/iop/defringe.c:425 +#: ../src/iop/defringe.c:427 msgid "threshold for defringe, higher values mean less defringing" msgstr "" "邊緣偵測的門檻\n" @@ -15740,14 +16265,14 @@ "\n" "從感光元件的原始數據重建完整的 RGB 像素" -#: ../src/iop/demosaic.c:1086 +#: ../src/iop/demosaic.c:1133 #, c-format msgid "`%s' color matrix not found for 4bayer image!" msgstr "" "⚠️ 錯誤 ⚠️\n" "找不到拜耳影像「%s」的色彩矩陣" -#: ../src/iop/demosaic.c:1238 +#: ../src/iop/demosaic.c:1285 msgid "" "Bayer sensor demosaicing method, PPG and RCD are fast, AMaZE and LMMSE are " "slow.\n" @@ -15769,7 +16294,7 @@ "直通不去馬賽克:直接把 RGB 色版填入相同數值,適用於沒有色彩濾鏡的感光元件\n" "感光元件濾片色彩:呈現 RGB 濾色片,這是為了除錯而設計的,不適用於影像處理" -#: ../src/iop/demosaic.c:1242 +#: ../src/iop/demosaic.c:1289 msgid "" "X-Trans sensor demosaicing method, Markesteijn 3-pass and frequency domain " "chroma are slow.\n" @@ -15788,11 +16313,11 @@ "直通不去馬賽克:直接把 RGB 色版填入相同數值,適用於沒有色彩濾鏡的感光元件\n" "感光元件濾片色彩:呈現 RGB 濾色片,這是為了除錯而設計的,不適用於影像處理" -#: ../src/iop/demosaic.c:1248 +#: ../src/iop/demosaic.c:1295 msgid "Bayer4 sensor demosaicing methods." msgstr "四像素合一感光元件去馬賽克方式" -#: ../src/iop/demosaic.c:1252 +#: ../src/iop/demosaic.c:1299 msgid "" "threshold for edge-aware median.\n" "set to 0.0 to switch off\n" @@ -15802,7 +16327,7 @@ "數值越高略過越多邊緣,1.0 完全忽略邊緣\n" "設定 0 會關閉此功能" -#: ../src/iop/demosaic.c:1257 +#: ../src/iop/demosaic.c:1304 msgid "" "contrast threshold for dual demosaic.\n" "set to 0.0 for high frequency content\n" @@ -15818,7 +16343,7 @@ "遮罩亮度越低,低頻演算法的權重越高,純黑的像素代表只使用低頻數據\n" "雙重去馬賽克功能會逐像素計算高低頻數據的權重,然後計算最終 RGB 數值" -#: ../src/iop/demosaic.c:1265 +#: ../src/iop/demosaic.c:1312 msgid "" "LMMSE refinement steps. the median steps average the output,\n" "refine adds some recalculation of red & blue channels" @@ -15827,34 +16352,34 @@ "增加了紅色和藍色色版的重新計算數值以平均輸出\n" "對亮度雜訊效果很好,但可能會降低具有嚴重色彩雜訊影像的品質" -#: ../src/iop/demosaic.c:1268 +#: ../src/iop/demosaic.c:1315 msgid "how many color smoothing median steps after demosaicing" msgstr "" "啟用去馬賽克後的顏色平滑處理\n" "可能可以解決一些邊緣色彩偽影的問題" -#: ../src/iop/demosaic.c:1271 +#: ../src/iop/demosaic.c:1318 msgid "green channels matching method" msgstr "" "綠色色版匹配方式\n" "某些相機 RGBG 中的兩個綠色濾片略有不同\n" "調整此設定以額外均勻化步驟來抑制偽影" -#: ../src/iop/demosaic.c:1278 +#: ../src/iop/demosaic.c:1325 msgid "demosaicing is only used for color raw images" msgstr "" "⚠️ 錯誤 ⚠️\n" "去馬賽克功能只限用於彩色 RAW 檔" -#: ../src/iop/denoiseprofile.c:714 +#: ../src/iop/denoiseprofile.c:766 msgid "wavelets: chroma only" msgstr "小波:僅彩度" -#: ../src/iop/denoiseprofile.c:720 +#: ../src/iop/denoiseprofile.c:772 msgid "denoise (profiled)" msgstr "相機特性除雜訊" -#: ../src/iop/denoiseprofile.c:726 +#: ../src/iop/denoiseprofile.c:778 msgid "denoise using noise statistics profiled on sensors" msgstr "" "相機特性除雜訊 | denoise (profiled)\n" @@ -15862,61 +16387,61 @@ "使用感光元件的雜訊分析資料降低雜訊\n" "藉由分析相機在不同感光度的特性調整算法以更好地消除雜訊" -#: ../src/iop/denoiseprofile.c:2846 +#: ../src/iop/denoiseprofile.c:2850 #, c-format msgid "found match for ISO %d" msgstr "找到符合 ISO %d 的資料" -#: ../src/iop/denoiseprofile.c:2855 +#: ../src/iop/denoiseprofile.c:2859 #, c-format msgid "interpolated from ISO %d and %d" msgstr "由 ISO %d 和 %d 的資料內插" -#: ../src/iop/denoiseprofile.c:3719 +#: ../src/iop/denoiseprofile.c:3723 msgid "Y0" msgstr "亮度(Y0)" -#: ../src/iop/denoiseprofile.c:3720 +#: ../src/iop/denoiseprofile.c:3724 msgid "U0V0" msgstr "色彩(U0V0)" -#: ../src/iop/denoiseprofile.c:3760 +#: ../src/iop/denoiseprofile.c:3764 msgid "" "use only with a perfectly\n" "uniform image if you want to\n" "estimate the noise variance." msgstr "如果要估計雜訊變異數,必須使用完全均勻的影像" -#: ../src/iop/denoiseprofile.c:3766 +#: ../src/iop/denoiseprofile.c:3770 msgid "variance red: " msgstr "紅色變異數:" -#: ../src/iop/denoiseprofile.c:3770 +#: ../src/iop/denoiseprofile.c:3774 msgid "variance computed on the red channel" msgstr "紅色色版計算的變異數" -#: ../src/iop/denoiseprofile.c:3775 +#: ../src/iop/denoiseprofile.c:3779 msgid "variance green: " msgstr "綠色變異數:" -#: ../src/iop/denoiseprofile.c:3779 +#: ../src/iop/denoiseprofile.c:3783 msgid "variance computed on the green channel" msgstr "綠色色版計算的變異數" -#: ../src/iop/denoiseprofile.c:3784 +#: ../src/iop/denoiseprofile.c:3788 msgid "variance blue: " msgstr "藍色變異數:" -#: ../src/iop/denoiseprofile.c:3788 +#: ../src/iop/denoiseprofile.c:3792 msgid "variance computed on the blue channel" msgstr "藍色色版計算的變異數" -#: ../src/iop/denoiseprofile.c:3799 ../src/libs/export.c:1208 +#: ../src/iop/denoiseprofile.c:3803 ../src/libs/export.c:1320 #: ../src/libs/print_settings.c:2418 ../src/libs/print_settings.c:2774 msgid "profile" msgstr "描述檔" -#: ../src/iop/denoiseprofile.c:3833 +#: ../src/iop/denoiseprofile.c:3837 msgid "" "adapt denoising according to the\n" "white balance coefficients.\n" @@ -15929,7 +16454,7 @@ "若有多個模組實例,應在第一個模組實例上啟用以獲得較好的效果\n" "如果有較早的模組實例配合色彩混合模式一起使用,則應停用此功能" -#: ../src/iop/denoiseprofile.c:3840 +#: ../src/iop/denoiseprofile.c:3844 msgid "" "fix bugs in Anscombe transform resulting\n" "in undersmoothing of the green channel in\n" @@ -15947,7 +16472,7 @@ "以及非局部平均值模式下色塊尺寸增加時平滑度過低的錯誤\n" "啟用此選項將改變除雜訊的效果,一旦啟用就無法再回復到舊的演算法" -#: ../src/iop/denoiseprofile.c:3850 +#: ../src/iop/denoiseprofile.c:3854 msgid "profile used for variance stabilization" msgstr "" "用於除雜訊的相機特性描述檔\n" @@ -15955,7 +16480,7 @@ "如果感光值介於兩個描述檔之間,則會自動使用最接近的兩個描述檔內插\n" "darktabke 沒有支援的相機則顯示使用通用的設定" -#: ../src/iop/denoiseprofile.c:3852 +#: ../src/iop/denoiseprofile.c:3856 msgid "" "method used in the denoising core.\n" "non-local means works best for `lightness' blending,\n" @@ -15972,7 +16497,7 @@ "此模式可使用 YUV 色彩模式,達到分別控制亮度和色彩雜訊的功能\n" "小波分析比非局部算法佔用的資源要少" -#: ../src/iop/denoiseprofile.c:3856 +#: ../src/iop/denoiseprofile.c:3860 msgid "" "color representation used within the algorithm.\n" "RGB keeps the RGB channels separated,\n" @@ -15987,7 +16512,7 @@ "YUV 模式把小波層分為亮度(Y0)和顏色(U0V0)色版分開處理雜訊\n" "通常人眼感覺不適的是顏色偏差的雜訊,對亮度雜訊的接受度較高" -#: ../src/iop/denoiseprofile.c:3861 +#: ../src/iop/denoiseprofile.c:3865 msgid "" "radius of the patches to match.\n" "increase for more sharpness on strong edges, and better denoising of smooth " @@ -15999,7 +16524,7 @@ "增加參數獲得更強的除雜訊效果,並獲得更好的邊緣銳利度\n" "如果細節過度平滑化,可降低此參數或增加中央像素的權重" -#: ../src/iop/denoiseprofile.c:3867 +#: ../src/iop/denoiseprofile.c:3871 msgid "" "emergency use only: radius of the neighborhood to search patches in. " "increase for better denoising performance, but watch the long runtimes! " @@ -16009,7 +16534,7 @@ "如果較大的粗糙雜訊非常明顯時,增加此參數可以提供更好的結果\n" "但處理時間會以設定值的平方等比增加,可改用效果類似的分散搜尋" -#: ../src/iop/denoiseprofile.c:3873 +#: ../src/iop/denoiseprofile.c:3877 msgid "" "scattering of the neighborhood to search patches in.\n" "increase for better coarse-grain noise reduction.\n" @@ -16020,7 +16545,7 @@ "但是此參數維持原有的色塊數量只是將其分散在更大的半徑範圍\n" "所以運算時間不會受到影響" -#: ../src/iop/denoiseprofile.c:3877 +#: ../src/iop/denoiseprofile.c:3881 msgid "" "increase the weight of the central pixel\n" "of the patch in the patch comparison.\n" @@ -16030,13 +16555,13 @@ "增加色塊中心像素的權重,當色塊尺寸很大時可以有效保留細節\n" "調高參數會減少亮度除雜訊強度,使演算法偏重於處理色彩雜訊" -#: ../src/iop/denoiseprofile.c:3881 +#: ../src/iop/denoiseprofile.c:3885 msgid "finetune denoising strength" msgstr "" "微調除雜訊的強度,預設值以最大信噪比為目標\n" "強度調整取決於個人喜好,犧牲細節換取低雜訊,或是較多雜訊但更好的細節" -#: ../src/iop/denoiseprofile.c:3883 +#: ../src/iop/denoiseprofile.c:3887 msgid "" "controls the way parameters are autoset\n" "increase if shadows are not denoised enough\n" @@ -16047,7 +16572,7 @@ "如果暗部雜訊過高或顏色雜訊太過明顯時可以調高數值\n" "或是在精簡自動模式下調整此值,再切換至進階手動模式微調" -#: ../src/iop/denoiseprofile.c:3888 +#: ../src/iop/denoiseprofile.c:3892 msgid "" "finetune shadows denoising.\n" "decrease to denoise more aggressively\n" @@ -16056,7 +16581,7 @@ "微調暗部除雜訊的強度\n" "更高的值保留較多暗部細節,降低以對暗部執行更強的除雜訊處理" -#: ../src/iop/denoiseprofile.c:3892 +#: ../src/iop/denoiseprofile.c:3896 msgid "" "correct color cast in shadows.\n" "decrease if shadows are too purple.\n" @@ -16066,7 +16591,7 @@ "如果暗部偏紫,降低此值\n" "如果暗部偏綠,增加此值" -#: ../src/iop/denoiseprofile.c:3896 +#: ../src/iop/denoiseprofile.c:3900 msgid "" "upgrade the variance stabilizing algorithm.\n" "new algorithm extends the current one.\n" @@ -16099,68 +16624,68 @@ "反捲積銳化效果勝過傳統的銳利化方式是這個模組的最大用處" #. deblurring presets -#: ../src/iop/diffuse.c:219 +#: ../src/iop/diffuse.c:246 msgid "lens deblur: soft" msgstr "恢復鏡頭模糊:輕度" -#: ../src/iop/diffuse.c:244 +#: ../src/iop/diffuse.c:271 msgid "lens deblur: medium" msgstr "恢復鏡頭模糊:中度" -#: ../src/iop/diffuse.c:269 +#: ../src/iop/diffuse.c:296 msgid "lens deblur: hard" msgstr "恢復鏡頭模糊:強烈" -#: ../src/iop/diffuse.c:295 +#: ../src/iop/diffuse.c:322 msgid "dehaze" msgstr "除霧霾" -#: ../src/iop/diffuse.c:321 +#: ../src/iop/diffuse.c:348 msgid "denoise: fine" msgstr "去除雜訊:精細" -#: ../src/iop/diffuse.c:346 +#: ../src/iop/diffuse.c:373 msgid "denoise: medium" msgstr "去除雜訊:中等" -#: ../src/iop/diffuse.c:371 +#: ../src/iop/diffuse.c:398 msgid "denoise: coarse" msgstr "去除雜訊:粗糙" -#: ../src/iop/diffuse.c:446 +#: ../src/iop/diffuse.c:473 msgid "sharpen demosaicing: no AA filter" msgstr "恢復去馬賽克模糊(無低通濾鏡)" -#: ../src/iop/diffuse.c:472 +#: ../src/iop/diffuse.c:499 msgid "sharpen demosaicing: AA filter" msgstr "恢復去馬賽克模糊(有低通濾鏡)" -#: ../src/iop/diffuse.c:499 +#: ../src/iop/diffuse.c:526 msgid "simulate watercolor" msgstr "模擬水彩畫" -#: ../src/iop/diffuse.c:524 +#: ../src/iop/diffuse.c:551 msgid "simulate line drawing" msgstr "模擬線條畫" -#: ../src/iop/diffuse.c:576 +#: ../src/iop/diffuse.c:603 msgid "inpaint highlights" msgstr "修復反光亮點" #. fast presets for slow hardware -#: ../src/iop/diffuse.c:603 +#: ../src/iop/diffuse.c:630 msgid "sharpness: fast" msgstr "銳利度:快速" -#: ../src/iop/diffuse.c:655 +#: ../src/iop/diffuse.c:682 msgid "sharpness: strong" msgstr "銳利度:強烈" -#: ../src/iop/diffuse.c:680 +#: ../src/iop/diffuse.c:707 msgid "local contrast: fast" msgstr "局部對比:快速" -#: ../src/iop/diffuse.c:1391 ../src/iop/diffuse.c:1666 +#: ../src/iop/diffuse.c:1418 ../src/iop/diffuse.c:1693 msgid "diffuse/sharpen failed to allocate memory, check your RAM settings" msgstr "" "⚠️ 錯誤 ⚠️\n" @@ -16168,13 +16693,13 @@ #. Additional parameters #. Camera settings -#: ../src/iop/diffuse.c:1782 ../src/iop/splittoning.c:537 +#: ../src/iop/diffuse.c:1797 ../src/iop/splittoning.c:533 #: ../src/libs/camera.c:486 msgctxt "section" msgid "properties" msgstr "屬性" -#: ../src/iop/diffuse.c:1788 +#: ../src/iop/diffuse.c:1803 msgid "" "more iterations make the effect stronger but the module slower.\n" "this is analogous to giving more time to the diffusion reaction.\n" @@ -16186,7 +16711,7 @@ "高循環次數配合較低的速度,有助於重建細節與去除模糊\n" "在物理上的意義類似於更長的漫射擴散時間,時間越久範圍越大" -#: ../src/iop/diffuse.c:1797 +#: ../src/iop/diffuse.c:1812 msgid "" "main scale of the diffusion.\n" "zero makes diffusion act on the finest details more heavily.\n" @@ -16199,7 +16724,7 @@ "若要重建因去馬賽克或鏡頭引起的模糊細節,請使用 0\n" "自然漫射只應影響最接近的像素,為了計算效率在此使用小波分析以應用在更大範圍" -#: ../src/iop/diffuse.c:1807 +#: ../src/iop/diffuse.c:1822 msgid "" "width of the diffusion around the central radius.\n" "high values diffuse on a large band of radii.\n" @@ -16212,12 +16737,12 @@ "較高的數值擴散半徑越大,較低的數值使擴散範圍更接近中心半徑/n如果要反捲積修復" "鏡頭模糊,數值應使用鏡頭模糊的寬度" -#: ../src/iop/diffuse.c:1814 +#: ../src/iop/diffuse.c:1829 msgctxt "section" msgid "speed (sharpen ↔ diffuse)" msgstr "速度(銳利 ↔ 漫射)" -#: ../src/iop/diffuse.c:1821 +#: ../src/iop/diffuse.c:1836 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 1st order anisotropy (set below).\n" @@ -16232,7 +16757,7 @@ "負值:反轉漫射,修復影像細節\n" " 零:不執行任何操作" -#: ../src/iop/diffuse.c:1831 +#: ../src/iop/diffuse.c:1846 msgid "" "diffusion speed of low-frequency wavelet layers\n" "in the direction of 2nd order anisotropy (set below).\n" @@ -16247,7 +16772,7 @@ "負值:反轉漫射,修復影像細節\n" " 零:不執行任何操作" -#: ../src/iop/diffuse.c:1841 +#: ../src/iop/diffuse.c:1856 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 3rd order anisotropy (set below).\n" @@ -16262,7 +16787,7 @@ "負值:反轉漫射,修復影像細節\n" " 零:不執行任何操作" -#: ../src/iop/diffuse.c:1851 +#: ../src/iop/diffuse.c:1866 msgid "" "diffusion speed of high-frequency wavelet layers\n" "in the direction of 4th order anisotropy (set below).\n" @@ -16277,12 +16802,12 @@ "負值:反轉漫射,修復影像細節\n" " 零:不執行任何操作" -#: ../src/iop/diffuse.c:1857 +#: ../src/iop/diffuse.c:1872 msgctxt "section" msgid "direction" msgstr "方向" -#: ../src/iop/diffuse.c:1864 +#: ../src/iop/diffuse.c:1879 msgid "" "direction of 1st order speed (set above).\n" "\n" @@ -16296,7 +16821,7 @@ "負值:強制漫射方向穿越邊緣\n" " 零:各向同性,所有方向具有相同的權重" -#: ../src/iop/diffuse.c:1873 +#: ../src/iop/diffuse.c:1888 msgid "" "direction of 2nd order speed (set above).\n" "\n" @@ -16310,7 +16835,7 @@ "負值:強制漫射方向穿越邊緣\n" " 零:各向同性,所有方向具有相同的權重" -#: ../src/iop/diffuse.c:1882 +#: ../src/iop/diffuse.c:1897 msgid "" "direction of 3rd order speed (set above).\n" "\n" @@ -16324,7 +16849,7 @@ "負值:強制漫射方向穿越邊緣\n" " 零:各向同性,所有方向具有相同的權重" -#: ../src/iop/diffuse.c:1891 +#: ../src/iop/diffuse.c:1906 msgid "" "direction of 4th order speed (set above).\n" "\n" @@ -16338,12 +16863,12 @@ "負值:強制漫射方向穿越邊緣\n" " 零:各向同性,所有方向具有相同的權重" -#: ../src/iop/diffuse.c:1897 +#: ../src/iop/diffuse.c:1912 msgctxt "section" msgid "edge management" msgstr "邊緣管理" -#: ../src/iop/diffuse.c:1904 +#: ../src/iop/diffuse.c:1919 msgid "" "increase or decrease the sharpness of the highest frequencies.\n" "can be used to keep details after blooming,\n" @@ -16353,7 +16878,7 @@ "可用於在漫射後保留一些邊緣對比,並在邊緣增加光暈\n" "不建議單獨使用此設定做銳化,因為可能出現明顯的邊緣偽影" -#: ../src/iop/diffuse.c:1911 +#: ../src/iop/diffuse.c:1926 msgid "" "define the sensitivity of the variance penalty for edges.\n" "increase to exclude more edges from diffusion,\n" @@ -16363,7 +16888,7 @@ "偵測到邊緣時降低漫射速度以避免邊緣光暈\n" "如果出現邊緣偽影,如光暈時,可調高此設定值" -#: ../src/iop/diffuse.c:1918 +#: ../src/iop/diffuse.c:1933 msgid "" "define the variance threshold between edge amplification and penalty.\n" "decrease if you want pixels on smooth surfaces get a boost,\n" @@ -16374,12 +16899,12 @@ "降低數值讓更多區域被視為邊緣,有利於恢復細節或增加局部對比度\n" "提高數值有利於去噪或模糊,如果平滑區域出現雜訊或暗部比亮部銳化過多時使用" -#: ../src/iop/diffuse.c:1924 +#: ../src/iop/diffuse.c:1939 msgctxt "section" msgid "diffusion spatiality" msgstr "漫射空間" -#: ../src/iop/diffuse.c:1931 +#: ../src/iop/diffuse.c:1946 msgid "" "luminance threshold for the mask.\n" "0. disables the luminance masking and applies the module on the whole " @@ -16397,7 +16922,7 @@ msgstr "遞色或色調分離" #: ../src/iop/dither.c:112 -msgid "dithering|posterization|reduce bit-depth" +msgid "dithering|posterization|reduce bit depth" msgstr "遞色|色調分離|降低位元深度" #: ../src/iop/dither.c:117 @@ -16416,23 +16941,23 @@ msgstr "修正與創意" #. add the preset. -#: ../src/iop/dither.c:147 +#: ../src/iop/dither.c:149 msgid "dither" msgstr "遞色抖動" -#: ../src/iop/dither.c:759 +#: ../src/iop/dither.c:761 msgid "radius for blurring step" msgstr "模糊半徑" -#: ../src/iop/dither.c:771 +#: ../src/iop/dither.c:773 msgid "the gradient range where to apply random dither" msgstr "隨機遞色的漸層範圍" -#: ../src/iop/dither.c:772 +#: ../src/iop/dither.c:774 msgid "gradient range" msgstr "漸層範圍" -#: ../src/iop/dither.c:780 +#: ../src/iop/dither.c:782 msgid "damping level of random dither" msgstr "隨機遞色的阻尼強度" @@ -16440,12 +16965,12 @@ msgid "legacy equalizer" msgstr "傳統等化器" -#: ../src/iop/equalizer.c:110 +#: ../src/iop/equalizer.c:112 msgid "" "this module is deprecated. better use contrast equalizer module instead." msgstr "此模組已被汰除,建議使用「對比度等化器」模組替代" -#: ../src/iop/equalizer.c:238 +#: ../src/iop/equalizer.c:240 msgid "" "this module will be removed in the future\n" "and is only here so you can switch it off\n" @@ -16465,35 +16990,35 @@ "保持色彩同時調整亮度,就如同在相機裡調整感光度設定\n" "有手動和自動模式,自動模式特別適用縮時攝影一致化亮度" -#: ../src/iop/exposure.c:279 +#: ../src/iop/exposure.c:301 msgid "magic lantern defaults" msgstr "Magic Lantern 魔燈預設值" -#: ../src/iop/exposure.c:351 ../src/iop/rawoverexposed.c:135 -#: ../src/iop/rawoverexposed.c:254 +#: ../src/iop/exposure.c:373 ../src/iop/rawoverexposed.c:137 +#: ../src/iop/rawoverexposed.c:256 #, c-format msgid "failed to get raw buffer from image `%s'" msgstr "" "⚠️ 錯誤 ⚠️\n" "無法從影像「%s」取得 RAW 緩衝區" -#: ../src/iop/exposure.c:629 +#: ../src/iop/exposure.c:647 #, no-c-format msgid "compensate camera exposure (%+.1f EV)" msgstr "補償相機曝光(%+.1f EV)" #. Write report in GUI -#: ../src/iop/exposure.c:813 +#: ../src/iop/exposure.c:831 #, c-format msgid "L : \t%.1f %%" msgstr "L:\t%.1f %%" -#: ../src/iop/exposure.c:945 ../src/libs/history.c:953 +#: ../src/iop/exposure.c:963 ../src/libs/history.c:953 #, c-format msgid "%.2f EV" msgstr "%.2f EV" -#: ../src/iop/exposure.c:1113 +#: ../src/iop/exposure.c:1131 msgid "" "automatically remove the camera exposure bias\n" "this is useful if you exposed the image to the right." @@ -16501,27 +17026,27 @@ "自動取消相機曝光補償設定\n" "這對遵循向右曝光(Exposing To The Right)的影像非常有用" -#: ../src/iop/exposure.c:1132 +#: ../src/iop/exposure.c:1150 #, no-c-format msgid "where in the histogram to meter for deflicking. E.g. 50% is median" msgstr "" "定義目標曝光在直方圖中的位置\n" "直方圖中高於此值的像素曝光高於目標,設爲 50% 代表中位數" -#: ../src/iop/exposure.c:1138 +#: ../src/iop/exposure.c:1156 msgid "" "where to place the exposure level for processed pics, EV below overexposure." msgstr "上項百分位數對應的曝光,數值代表相對於過曝白點的曝光級數(EV)" -#: ../src/iop/exposure.c:1142 +#: ../src/iop/exposure.c:1160 msgid "computed EC: " msgstr "曝光補償:" -#: ../src/iop/exposure.c:1145 +#: ../src/iop/exposure.c:1163 msgid "what exposure correction has actually been used" msgstr "實際套用的曝光校正數值" -#: ../src/iop/exposure.c:1164 +#: ../src/iop/exposure.c:1182 msgid "" "adjust the black level to unclip negative RGB values.\n" "you should never use it to add more density in blacks!\n" @@ -16531,11 +17056,11 @@ "調整黑點以保留負的 RGB 值,不應用此設定來增加黑色濃度\n" "如果設定不當將會把近黑點的顏色推出色域,並造成 RGB 負值" -#: ../src/iop/exposure.c:1174 -msgid "spot exposure mapping" -msgstr "點測光曝光對應" +#: ../src/iop/exposure.c:1192 +msgid "area exposure mapping" +msgstr "區域測光曝光對應" -#: ../src/iop/exposure.c:1180 +#: ../src/iop/exposure.c:1198 msgid "" "define a target brightness, in terms of exposure,\n" "for a selected region of the image (the control sample),\n" @@ -16548,7 +17073,7 @@ "依據選擇的影像對照範圍設定目標亮度,然後將此亮度對應至其他影像\n" "藉由選擇一系列影像中亮度應保持相同的區域,批次調整多張影像的亮度一致性" -#: ../src/iop/exposure.c:1189 +#: ../src/iop/exposure.c:1207 msgid "" "\"correction\" automatically adjust exposure\n" "such that the input lightness is mapped to the target.\n" @@ -16558,11 +17083,11 @@ "「校正」模式自動調整曝光,將亮度映射至所選目標\n" "「測量」模式藉由選擇範圍定義目標亮度" -#: ../src/iop/exposure.c:1215 +#: ../src/iop/exposure.c:1233 msgid "L : \tN/A" msgstr "L:\t無" -#: ../src/iop/exposure.c:1233 +#: ../src/iop/exposure.c:1251 msgid "the desired target exposure after mapping" msgstr "選取範圍要對應的曝光目標" @@ -16570,52 +17095,52 @@ msgid "this module is deprecated. better use filmic rgb module instead." msgstr "此模組已被汰除,建議使用「底片式階調映射」模組替代" -#: ../src/iop/filmic.c:304 +#: ../src/iop/filmic.c:333 msgid "09 EV (low-key)" msgstr " 9 EV(低反差)" -#: ../src/iop/filmic.c:312 +#: ../src/iop/filmic.c:341 msgid "10 EV (indoors)" msgstr "10 EV(室內)" -#: ../src/iop/filmic.c:320 +#: ../src/iop/filmic.c:349 msgid "11 EV (dim outdoors)" msgstr "11 EV(戶外陰天)" -#: ../src/iop/filmic.c:328 +#: ../src/iop/filmic.c:357 msgid "12 EV (outdoors)" msgstr "12 EV(戶外)" -#: ../src/iop/filmic.c:336 +#: ../src/iop/filmic.c:365 msgid "13 EV (bright outdoors)" msgstr "13 EV(戶外烈日)" -#: ../src/iop/filmic.c:344 +#: ../src/iop/filmic.c:373 msgid "14 EV (backlighting)" msgstr "14 EV(背光)" -#: ../src/iop/filmic.c:352 +#: ../src/iop/filmic.c:381 msgid "15 EV (sunset)" msgstr "15 EV(日落)" -#: ../src/iop/filmic.c:360 +#: ../src/iop/filmic.c:389 msgid "16 EV (HDR)" msgstr "16 EV(HDR)" -#: ../src/iop/filmic.c:368 +#: ../src/iop/filmic.c:397 msgid "18 EV (HDR++)" msgstr "18 EV(HDR++)" -#: ../src/iop/filmic.c:1480 +#: ../src/iop/filmic.c:1505 msgid "read-only graph, use the parameters below to set the nodes" msgstr "唯讀圖表,使用下方參數來設定節點" -#: ../src/iop/filmic.c:1484 +#: ../src/iop/filmic.c:1509 msgctxt "section" msgid "logarithmic shaper" msgstr "對數調整器" -#: ../src/iop/filmic.c:1492 +#: ../src/iop/filmic.c:1517 msgid "" "adjust to match the average luminance of the subject.\n" "except in back-lighting situations, this should be around 18%." @@ -16625,7 +17150,7 @@ "此參數的效果類似於曝光調整,修改之後白點曝光和黑點曝光會自動相應調整\n" "一般建議在較早期的「曝光」模組調整亮度,所以此滑桿預設為隱藏" -#: ../src/iop/filmic.c:1504 ../src/iop/filmicrgb.c:4442 +#: ../src/iop/filmic.c:1529 ../src/iop/filmicrgb.c:4506 msgid "" "number of stops between middle gray and pure white.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16637,7 +17162,7 @@ "可在拍攝現場以測光表測量,或使用右側顏色選取工具\n" "自動設定選取範圍內的最亮點為映射後的純白色點" -#: ../src/iop/filmic.c:1517 ../src/iop/filmicrgb.c:4453 +#: ../src/iop/filmic.c:1542 ../src/iop/filmicrgb.c:4517 msgid "" "number of stops between middle gray and pure black.\n" "this is a reading a lightmeter would give you on the scene.\n" @@ -16650,20 +17175,20 @@ "可在拍攝現場以測光表測量,或使用右側顏色選取工具\n" "自動設定選取範圍內的最暗點為映射後的純黑色點" -#: ../src/iop/filmic.c:1529 +#: ../src/iop/filmic.c:1554 msgid "" -"enlarge or shrink the computed dynamic range.\n" +"increase or decrease the computed dynamic range.\n" "useful in conjunction with \"auto tune levels\"." msgstr "" -"放大或縮小動態範圍\n" +"擴大或縮減動態範圍\n" "與「自動調整階調」功能結合使用時很有用處" -#: ../src/iop/filmic.c:1535 ../src/iop/filmicrgb.c:4467 -#: ../src/iop/profile_gamma.c:659 +#: ../src/iop/filmic.c:1560 ../src/iop/filmicrgb.c:4531 +#: ../src/iop/profile_gamma.c:673 msgid "auto tune levels" msgstr "自動調整階調" -#: ../src/iop/filmic.c:1538 +#: ../src/iop/filmic.c:1563 msgid "" "try to optimize the settings with some guessing.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16673,12 +17198,12 @@ "透過選取區域內的亮度自動設定動態範圍\n" "適合風景和亮度均勻分布的影像,但不適用於高亮或低亮場景" -#: ../src/iop/filmic.c:1543 +#: ../src/iop/filmic.c:1568 msgctxt "section" msgid "filmic S curve" msgstr "底片 S 曲線" -#: ../src/iop/filmic.c:1550 ../src/iop/filmicrgb.c:4554 +#: ../src/iop/filmic.c:1575 ../src/iop/filmicrgb.c:4618 msgid "" "slope of the linear part of the curve\n" "affects mostly the mid-tones" @@ -16687,12 +17212,12 @@ "數值越大對比越高,以補償大動態範圍映射後的平淡影像" #. geotagging -#: ../src/iop/filmic.c:1557 ../src/iop/filmicrgb.c:4563 -#: ../src/libs/metadata_view.c:157 +#: ../src/iop/filmic.c:1582 ../src/iop/filmicrgb.c:4627 +#: ../src/libs/metadata_view.c:161 msgid "latitude" msgstr "緯度" -#: ../src/iop/filmic.c:1560 +#: ../src/iop/filmic.c:1585 msgid "" "width of the linear domain in the middle of the curve.\n" "increase to get more contrast at the extreme luminances.\n" @@ -16701,11 +17226,11 @@ "曲線中間的線性區段的長度\n" "調高可保留更多區域的整體對比,對大多數中間調沒有影響" -#: ../src/iop/filmic.c:1567 +#: ../src/iop/filmic.c:1592 msgid "shadows/highlights balance" msgstr "暗部 / 亮部平衡" -#: ../src/iop/filmic.c:1570 ../src/iop/filmicrgb.c:4574 +#: ../src/iop/filmic.c:1595 ../src/iop/filmicrgb.c:4638 msgid "" "slides the latitude along the slope\n" "to give more room to shadows or highlights.\n" @@ -16715,7 +17240,7 @@ "調整由緯度定義的亮度範圍位置,以避免在暗部或亮部任一端發生裁切\n" "沿著中間斜率左右調整位置,不讓亮部和暗部線段觸底" -#: ../src/iop/filmic.c:1580 +#: ../src/iop/filmic.c:1605 msgid "" "desaturates the input of the module globally.\n" "you need to set this value below 100%\n" @@ -16724,7 +17249,7 @@ "對輸入顏色執行整體去飽和度\n" "如果啟用了保留彩度,此值設定需要低於 100%" -#: ../src/iop/filmic.c:1590 +#: ../src/iop/filmic.c:1615 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -16734,41 +17259,41 @@ "如果啟用了保留彩度,此值設定需要低於 100%" #. Add export intent combo -#: ../src/iop/filmic.c:1600 ../src/libs/export.c:1227 +#: ../src/iop/filmic.c:1625 ../src/libs/export.c:1339 #: ../src/libs/print_settings.c:2473 ../src/libs/print_settings.c:2820 -#: ../src/views/darkroom.c:2524 ../src/views/lighttable.c:1182 +#: ../src/views/darkroom.c:2365 ../src/views/lighttable.c:1182 msgid "intent" msgstr "轉換方式" -#: ../src/iop/filmic.c:1601 +#: ../src/iop/filmic.c:1626 msgid "contrasted" msgstr "對比" #. cubic spline -#: ../src/iop/filmic.c:1602 +#: ../src/iop/filmic.c:1627 msgid "faded" msgstr "褪色" #. centripetal spline -#: ../src/iop/filmic.c:1603 ../src/iop/profile_gamma.c:621 +#: ../src/iop/filmic.c:1628 ../src/iop/profile_gamma.c:635 msgid "linear" msgstr "線性" #. monotonic spline -#: ../src/iop/filmic.c:1604 +#: ../src/iop/filmic.c:1629 msgid "optimized" msgstr "最佳化" -#: ../src/iop/filmic.c:1606 +#: ../src/iop/filmic.c:1631 msgid "change this method if you see reversed contrast or faded blacks" msgstr "如果發現對比度反轉或黑色變淡,請改變這個設定" #. Preserve color -#: ../src/iop/filmic.c:1610 +#: ../src/iop/filmic.c:1635 msgid "preserve the chrominance" msgstr "保留彩度" -#: ../src/iop/filmic.c:1612 +#: ../src/iop/filmic.c:1637 msgid "" "ensure the original color are preserved.\n" "may reinforce chromatic aberrations.\n" @@ -16777,12 +17302,12 @@ "確保原始色彩被保留\n" "可能會因此增強色像差,使用此模式需要手動調整飽和度" -#: ../src/iop/filmic.c:1622 +#: ../src/iop/filmic.c:1647 msgctxt "section" msgid "destination/display" msgstr "目的地 / 顯示" -#: ../src/iop/filmic.c:1640 ../src/iop/filmicrgb.c:4593 +#: ../src/iop/filmic.c:1665 ../src/iop/filmicrgb.c:4657 msgid "" "luminance of output pure black, this should be 0%\n" "except if you want a faded look" @@ -16792,7 +17317,7 @@ "手動調降至 0 確保純黑,但可能失去極細微的階調\n" "調高數值把黑點變灰,會進一步壓縮動態範圍,創造復古的外觀" -#: ../src/iop/filmic.c:1649 ../src/iop/filmicrgb.c:4600 +#: ../src/iop/filmic.c:1674 ../src/iop/filmicrgb.c:4664 msgid "" "middle gray value of the target display or color space.\n" "you should never touch that unless you know what you are doing." @@ -16800,7 +17325,7 @@ "目的地或顯示空間的中灰色亮度\n" "背後運算自動經過伽馬校正,除非了解數值背後含意,否則不應該更動設定" -#: ../src/iop/filmic.c:1658 ../src/iop/filmicrgb.c:4607 +#: ../src/iop/filmic.c:1683 ../src/iop/filmicrgb.c:4671 msgid "" "luminance of output pure white, this should be 100%\n" "except if you want a faded look" @@ -16808,11 +17333,11 @@ "映射後的純白點亮度值,預設使用 100%,通常不需要調整\n" "調降數值會導致沒有白點的褪色復古外觀" -#: ../src/iop/filmic.c:1664 +#: ../src/iop/filmic.c:1689 msgid "target gamma" msgstr "目標伽瑪值" -#: ../src/iop/filmic.c:1666 +#: ../src/iop/filmic.c:1691 msgid "" "power or gamma of the transfer function\n" "of the display or color space.\n" @@ -16842,7 +17367,7 @@ "建議由左至右調整「場景」→「外觀」→「顯示」三個主要選項\n" "雖然模組介面看似複雜,但建議直接以肉眼觀看調整效果評估參數是最好的方法" -#: ../src/iop/filmicrgb.c:1310 +#: ../src/iop/filmicrgb.c:1365 msgid "" "filmic highlights reconstruction failed to allocate memory, check your RAM " "settings" @@ -16850,73 +17375,73 @@ "⚠️ 錯誤 ⚠️\n" "「底片式階調映射」無法分配記憶體,請檢查記憶體設定" -#: ../src/iop/filmicrgb.c:2301 +#: ../src/iop/filmicrgb.c:2369 msgid "filmic highlights reconstruction failed to allocate memory on GPU" msgstr "" "⚠️ 錯誤 ⚠️\n" "「底片式階調映射」無法分配顯示卡記憶體" -#: ../src/iop/filmicrgb.c:2419 +#: ../src/iop/filmicrgb.c:2487 msgid "filmic works only on RGB input" msgstr "「底片式階調映射」只適用於 RGB 影像" -#: ../src/iop/filmicrgb.c:3484 +#: ../src/iop/filmicrgb.c:3548 msgid "look only" msgstr "示意圖" -#: ../src/iop/filmicrgb.c:3486 +#: ../src/iop/filmicrgb.c:3550 msgid "look + mapping (lin)" msgstr "線性映射圖" -#: ../src/iop/filmicrgb.c:3488 +#: ../src/iop/filmicrgb.c:3552 msgid "look + mapping (log)" msgstr "對數映射圖" -#: ../src/iop/filmicrgb.c:3490 +#: ../src/iop/filmicrgb.c:3554 msgid "dynamic range mapping" msgstr "動態範圍映射" -#: ../src/iop/filmicrgb.c:3857 +#: ../src/iop/filmicrgb.c:3921 #, c-format msgid "(%.0f %%)" msgstr "(%.0f %%)" -#: ../src/iop/filmicrgb.c:3873 +#: ../src/iop/filmicrgb.c:3937 #, no-c-format msgid "% display" msgstr "輸出數值(%)" -#: ../src/iop/filmicrgb.c:3885 +#: ../src/iop/filmicrgb.c:3949 msgid "EV scene" msgstr "場景亮度(EV)" -#: ../src/iop/filmicrgb.c:3889 +#: ../src/iop/filmicrgb.c:3953 #, no-c-format msgid "% camera" msgstr "相機數值(%)" #. Page DISPLAY -#: ../src/iop/filmicrgb.c:3925 ../src/iop/filmicrgb.c:4587 +#: ../src/iop/filmicrgb.c:3989 ../src/iop/filmicrgb.c:4651 msgid "display" msgstr "顯示" #. axis legend -#: ../src/iop/filmicrgb.c:3934 +#: ../src/iop/filmicrgb.c:3998 msgid "(%)" msgstr "(%)" #. Page SCENE -#: ../src/iop/filmicrgb.c:3943 ../src/iop/filmicrgb.c:4422 +#: ../src/iop/filmicrgb.c:4007 ../src/iop/filmicrgb.c:4486 msgid "scene" msgstr "場景" #. axis legend -#: ../src/iop/filmicrgb.c:3952 +#: ../src/iop/filmicrgb.c:4016 msgid "(EV)" msgstr "(EV)" #. we are over the graph area -#: ../src/iop/filmicrgb.c:4364 +#: ../src/iop/filmicrgb.c:4428 msgid "" "use the parameters below to set the nodes.\n" "the bright curve is the filmic tone mapping curve\n" @@ -16932,11 +17457,11 @@ "橫座標實際上是無界的,為了易於和標準動態範圍的圖表比較所以僅顯示至 100%\n" "真正的純白點數值以(XXX %) 顯示在座標軸最大值 100 的下方" -#: ../src/iop/filmicrgb.c:4370 +#: ../src/iop/filmicrgb.c:4434 msgid "toggle axis labels and values display" msgstr "顯示或隱藏座標軸標題與數值" -#: ../src/iop/filmicrgb.c:4374 +#: ../src/iop/filmicrgb.c:4438 msgid "" "cycle through graph views.\n" "left click: cycle forward.\n" @@ -16950,7 +17475,7 @@ "「僅示意圖」最適合一般編輯使用,易於瞭解階調映射狀況\n" "「動態範圍映射」概念取自安瑟‧亞當斯的分區曝光系統" -#: ../src/iop/filmicrgb.c:4431 +#: ../src/iop/filmicrgb.c:4495 #, no-c-format msgid "" "adjust to match the average luminance of the image's subject.\n" @@ -16962,15 +17487,15 @@ "此參數的效果類似於曝光調整,修改之後白點曝光和黑點曝光會自動相應調整\n" "一般建議在較早期的「曝光」模組調整亮度,所以此滑桿預設為隱藏" -#: ../src/iop/filmicrgb.c:4461 +#: ../src/iop/filmicrgb.c:4525 msgid "" -"symmetrically enlarge or shrink the computed dynamic range.\n" +"symmetrically increase or decrease the computed dynamic range.\n" "useful to give a safety margin to extreme luminances." msgstr "" "對稱性地同時擴張或縮減目前的黑白點相對曝光設定數值\n" "有助於為極端的亮度提供安全剩餘量,或是修改自動階調的效果" -#: ../src/iop/filmicrgb.c:4468 +#: ../src/iop/filmicrgb.c:4532 msgid "" "try to optimize the settings with some statistical assumptions.\n" "this will fit the luminance range inside the histogram bounds.\n" @@ -16989,16 +17514,16 @@ "這僅是因為在軟體中的編碼和運算結果,與實際的感光元件性能無關" #. Page RECONSTRUCT -#: ../src/iop/filmicrgb.c:4477 +#: ../src/iop/filmicrgb.c:4541 msgid "reconstruct" msgstr "重建" -#: ../src/iop/filmicrgb.c:4479 +#: ../src/iop/filmicrgb.c:4543 msgctxt "section" msgid "highlights clipping" msgstr "亮部剪裁" -#: ../src/iop/filmicrgb.c:4487 +#: ../src/iop/filmicrgb.c:4551 msgid "" "set the exposure threshold upon which\n" "clipped highlights get reconstructed.\n" @@ -17012,7 +17537,7 @@ "預設數值為 +3 EV,實際上代表幾乎沒有亮部重建效果,讓使用者視情況開啟\n" "建議開啟右下方的遮罩檢視,然後逐步降低參數值至可以看見要重建的區域" -#: ../src/iop/filmicrgb.c:4497 +#: ../src/iop/filmicrgb.c:4561 msgid "" "soften the transition between clipped highlights and valid pixels.\n" "decrease to make the transition harder and sharper,\n" @@ -17021,64 +17546,67 @@ "柔化要被重建的裁切亮部和有效亮度之間的過渡\n" "向右移動滑桿增加數值使過渡更柔和,反之讓過渡更快速" -#: ../src/iop/filmicrgb.c:4503 ../src/iop/filmicrgb.c:4504 +#: ../src/iop/filmicrgb.c:4567 ../src/iop/filmicrgb.c:4568 msgid "display highlight reconstruction mask" msgstr "顯示亮部重建遮罩" -#: ../src/iop/filmicrgb.c:4511 +#: ../src/iop/filmicrgb.c:4575 msgctxt "section" msgid "balance" msgstr "平衡" -#: ../src/iop/filmicrgb.c:4518 +#: ../src/iop/filmicrgb.c:4582 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between inpainting a smooth color gradient,\n" +"inpainting a smooth color gradient\n" "or trying to recover the textured details.\n" "0% is an equal mix of both.\n" "increase if at least one RGB channel is not clipped.\n" "decrease if all RGB channels are clipped over large areas." msgstr "" -"控制亮部重建的策略,在平滑的色彩和恢復紋理細節之間調整\n" -"如果重建區域大部分三個色版都過曝被裁切,則偏向使用色塊設定\n" -"因為已經沒有任何可供重建亮部區域的細節\n" -"若是大部分區域只有一至兩個色版被裁切,則可以偏向紋理的設定\n" -"未剪裁的色版可能有一些細節可以用來重建其他色版" +"控制亮部重建的策略,在平滑的色彩和恢復紋理細節之間調整。\n" +"如果重建區域大部分三個色版都過曝被裁切,則降低以偏向使用平滑設定。\n" +"因為已經沒有任何可供重建亮部區域的細節。\n" +"若是大部分區域只有一至兩個色版被裁切,則增加以偏向細節的設定。\n" +"未剪裁的色版可能有一些細節可以用來重建其他色版。" -#: ../src/iop/filmicrgb.c:4529 +#: ../src/iop/filmicrgb.c:4593 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between blooming highlights like film does,\n" +"blooming highlights like film does\n" "or trying to recover sharp details.\n" "0% is an equal mix of both.\n" "increase if you want more details.\n" "decrease if you want more blur." msgstr "" "控制亮部重建的策略,在朦朧模糊和銳利清晰之間調整\n" -"預設 100% 會盡量試圖重建亮部裁切範圍中的細節\n" -"0% 代表均衡設定,調至負值套用類似傳統底片的光暈模糊效果" +"0% 代表均衡設定。\n" +"預設 100% 會盡量試圖重建亮部裁切範圍中的細節。\n" +"調至負值套用類似傳統底片的光暈模糊效果。" -#: ../src/iop/filmicrgb.c:4541 +#: ../src/iop/filmicrgb.c:4605 #, no-c-format msgid "" "decide which reconstruction strategy to favor,\n" -"between recovering monochromatic highlights,\n" +"recovering monochromatic highlights\n" "or trying to recover colorful highlights.\n" "0% is an equal mix of both.\n" "increase if you want more color.\n" "decrease if you see magenta or out-of-gamut highlights." msgstr "" -"控制亮部重建的策略,在修復灰階或重建亮部色彩之間調整\n" -"希望亮部中有更多的色彩則增加數值,若出現洋紅偽色則降低數值" +"控制亮部重建的策略,在修復灰階或重建亮部色彩之間調整。\n" +"0% 代表均衡設定。\n" +"希望亮部中有更多的色彩則增加數值。\n" +"若出現洋紅偽色則降低數值。" #. Page LOOK -#: ../src/iop/filmicrgb.c:4549 +#: ../src/iop/filmicrgb.c:4613 msgid "look" msgstr "外觀" -#: ../src/iop/filmicrgb.c:4559 +#: ../src/iop/filmicrgb.c:4623 msgid "" "equivalent to paper grade in analog.\n" "increase to make highlights brighter and less compressed.\n" @@ -17089,7 +17617,7 @@ "增加以提升亮部並減少階調壓縮,降低以消減亮部並壓縮暗部\n" "此設定預設自動依動態範圍調整並隱藏,關閉自動調整曲線硬度以顯示此滑桿" -#: ../src/iop/filmicrgb.c:4567 +#: ../src/iop/filmicrgb.c:4631 msgid "" "width of the linear domain in the middle of the curve,\n" "increase to get more contrast and less desaturation at extreme luminances,\n" @@ -17102,7 +17630,7 @@ "一般建議使用更大的數值,若出現曲線反轉或裁切再加以調整\n" "例如藉由調整上方的「對比」或下方「陰影 ↔ 亮部平衡」" -#: ../src/iop/filmicrgb.c:4582 ../src/iop/filmicrgb.c:4730 +#: ../src/iop/filmicrgb.c:4646 ../src/iop/filmicrgb.c:4794 msgid "" "desaturates the output of the module\n" "specifically at extreme luminances.\n" @@ -17113,11 +17641,11 @@ "如果覺得亮暗部的色彩飽和度不足,可以嘗試調高此值" #. Page OPTIONS -#: ../src/iop/filmicrgb.c:4611 +#: ../src/iop/filmicrgb.c:4675 msgid "options" msgstr "選項" -#: ../src/iop/filmicrgb.c:4616 +#: ../src/iop/filmicrgb.c:4680 msgid "" "v3 is darktable 3.0 desaturation method, same as color balance.\n" "v4 is a newer desaturation method, based on spectral purity of light." @@ -17125,7 +17653,7 @@ "模組的色彩映射方式,以及極端亮暗部的自然去飽和方式\n" "新開啟的影像預設使用最新的 v7 方式,仍保留舊版算法以向下相容" -#: ../src/iop/filmicrgb.c:4620 +#: ../src/iop/filmicrgb.c:4684 msgid "" "ensure the original colors are preserved.\n" "may reinforce chromatic aberrations and chroma noise,\n" @@ -17157,7 +17685,7 @@ "RGB 歐基里德距離(舊版):\n" "使用 RGB 的立方和除以平方和加權計算,通常是良好的折衷算法" -#: ../src/iop/filmicrgb.c:4629 +#: ../src/iop/filmicrgb.c:4693 msgid "" "choose the desired curvature of the filmic spline in highlights.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -17167,7 +17695,7 @@ "預設「安全」避免不會產生階調反轉,但相對較柔和且對比度低\n" "選擇「強烈」增加曲率和色調壓縮程度,「柔和」則反之" -#: ../src/iop/filmicrgb.c:4634 +#: ../src/iop/filmicrgb.c:4698 msgid "" "choose the desired curvature of the filmic spline in shadows.\n" "hard uses a high curvature resulting in more tonal compression.\n" @@ -17177,7 +17705,7 @@ "預設「安全」避免不會產生階調反轉,但相對較柔和且對比度低\n" "選擇「強烈」增加曲率和色調壓縮程度,「柔和」則反之" -#: ../src/iop/filmicrgb.c:4641 +#: ../src/iop/filmicrgb.c:4705 #, no-c-format msgid "" "enable to input custom middle-gray values.\n" @@ -17189,7 +17717,7 @@ "目前已不推薦使用此模組這樣操作,建議使用「曝光」模組來調整中灰亮度\n" "因此預設不啟用此選項,並且使用標準的 18.45 % 中間灰" -#: ../src/iop/filmicrgb.c:4648 +#: ../src/iop/filmicrgb.c:4712 msgid "" "enable to auto-set the look hardness depending on the scene white and black " "points.\n" @@ -17199,7 +17727,7 @@ "開啟外觀中的冪函數曲線硬度滑桿,以自行控制輸出曲線伽瑪值\n" "預設啟用此設定,以便自動計算最適合的函數參數" -#: ../src/iop/filmicrgb.c:4654 +#: ../src/iop/filmicrgb.c:4718 msgid "" "run extra passes of chromaticity reconstruction.\n" "more iterations means more color propagation from neighborhood.\n" @@ -17212,7 +17740,7 @@ "若有明顯的色版裁切造成洋紅色光點,使用此功能可能會有幫助\n" "但如果循環次數過多,亮部重建可能會導致遠處的顏色被不正確地引入到光點中" -#: ../src/iop/filmicrgb.c:4661 +#: ../src/iop/filmicrgb.c:4725 msgid "" "add statistical noise in reconstructed highlights.\n" "this avoids highlights to look too smooth\n" @@ -17222,7 +17750,7 @@ "在重建的亮部中添加人造雜訊\n" "這樣可使亮部看起來和其他區域更接近,避免過度平滑的不自然感" -#: ../src/iop/filmicrgb.c:4668 +#: ../src/iop/filmicrgb.c:4732 msgid "" "choose the statistical distribution of noise.\n" "this is useful to match natural sensor noise pattern." @@ -17232,11 +17760,11 @@ "但大多數除雜訊功能的模組會把帕松分布的雜訊轉變為更接近高斯分布\n" "應該選擇能夠更好地融入影像中實際雜訊外觀的選項,以自然融入原始影像" -#: ../src/iop/filmicrgb.c:4736 +#: ../src/iop/filmicrgb.c:4800 msgid "mid-tones saturation" msgstr "中間調的飽和度" -#: ../src/iop/filmicrgb.c:4737 +#: ../src/iop/filmicrgb.c:4801 msgid "" "desaturates the output of the module\n" "specifically at medium luminances.\n" @@ -17247,11 +17775,11 @@ "中間色調在同時也會受到一部分去飽和度影響,可使用此設定補償飽和度\n" "如果中間調的色彩飽和度不足,可以嘗試調高此值" -#: ../src/iop/filmicrgb.c:4743 +#: ../src/iop/filmicrgb.c:4807 msgid "highlights saturation mix" msgstr "亮部飽和度調整" -#: ../src/iop/filmicrgb.c:4744 +#: ../src/iop/filmicrgb.c:4808 msgid "" "positive values ensure saturation is kept unchanged over the whole range.\n" "negative values bleach highlights at constant hue and luminance.\n" @@ -17279,39 +17807,39 @@ "此模組預設開啟,並依據 EXIF 資料自動設定\n" "模組設定和燈箱模式下的影像旋轉控制連動" -#: ../src/iop/flip.c:477 +#: ../src/iop/flip.c:475 msgid "no rotation" msgstr "不旋轉" -#: ../src/iop/flip.c:481 ../src/iop/flip.c:624 +#: ../src/iop/flip.c:479 ../src/iop/flip.c:622 msgid "flip horizontally" msgstr "水平翻轉" -#: ../src/iop/flip.c:485 ../src/iop/flip.c:628 +#: ../src/iop/flip.c:483 ../src/iop/flip.c:626 msgid "flip vertically" msgstr "垂直翻轉" -#: ../src/iop/flip.c:489 +#: ../src/iop/flip.c:487 msgid "rotate by -90 degrees" msgstr "旋轉 -90 度" -#: ../src/iop/flip.c:493 +#: ../src/iop/flip.c:491 msgid "rotate by 90 degrees" msgstr "旋轉 90 度" -#: ../src/iop/flip.c:497 +#: ../src/iop/flip.c:495 msgid "rotate by 180 degrees" msgstr "旋轉 180 度" -#: ../src/iop/flip.c:612 +#: ../src/iop/flip.c:610 msgid "transform" msgstr "轉換" -#: ../src/iop/flip.c:616 ../src/libs/live_view.c:293 +#: ../src/iop/flip.c:614 ../src/libs/live_view.c:293 msgid "rotate 90 degrees CCW" msgstr "逆時針旋轉 90 度" -#: ../src/iop/flip.c:620 ../src/libs/live_view.c:294 +#: ../src/iop/flip.c:618 ../src/libs/live_view.c:294 msgid "rotate 90 degrees CW" msgstr "順時針旋轉 90 度" @@ -17328,23 +17856,23 @@ msgid "this module is deprecated. please use the filmic rgb module instead." msgstr "此模組已被汰除,建議使用「底片式階調映射」模組替代" -#: ../src/iop/globaltonemap.c:625 ../src/libs/filters/colors.c:259 +#: ../src/iop/globaltonemap.c:658 ../src/libs/filters/colors.c:259 msgid "operator" msgstr "操作方式" -#: ../src/iop/globaltonemap.c:626 +#: ../src/iop/globaltonemap.c:659 msgid "the global tonemap operator" msgstr "" "選擇映射使用的運算方式\n" "依據所選的方式會有不同的可調參數" -#: ../src/iop/globaltonemap.c:629 +#: ../src/iop/globaltonemap.c:662 msgid "" "the bias for tonemapper controls the linearity, the higher the more details " "in blacks" msgstr "控制階調映射的線性度,影響影像的對比,數值越高暗部中的細節越多" -#: ../src/iop/globaltonemap.c:633 +#: ../src/iop/globaltonemap.c:666 msgid "the target light for tonemapper specified as cd/m2" msgstr "階調映射的明度單位為 cd/m2" @@ -17413,7 +17941,7 @@ "影像上會顯示一條線以直覺地使用滑鼠控制濾鏡位置和角度\n" "此模組可能讓天空產生斷階,可使用「遞色」模組來減緩問題" -#: ../src/iop/graduatednd.c:1114 +#: ../src/iop/graduatednd.c:1083 msgid "the density in EV for the filter" msgstr "" "漸層濾鏡的濃度\n" @@ -17422,7 +17950,7 @@ "+3 EV = ND8\n" "+6 EV = ND64" -#: ../src/iop/graduatednd.c:1119 +#: ../src/iop/graduatednd.c:1088 #, no-c-format msgid "" "hardness of graduation:\n" @@ -17431,50 +17959,50 @@ "漸層濾鏡濃度漸變的平滑度\n" "0% 代表最柔和,100% 代表最強烈" -#: ../src/iop/graduatednd.c:1123 +#: ../src/iop/graduatednd.c:1092 msgid "rotation of filter -180 to 180 degrees" msgstr "" "漸層濾鏡的旋轉角度\n" "可以直接拖動影像上的直線和端點來改變位置與角度\n" "直線兩側箭頭代表濾鏡濃度較低的方向" -#: ../src/iop/graduatednd.c:1136 +#: ../src/iop/graduatednd.c:1105 msgid "select the hue tone of filter" msgstr "" "漸層濾鏡的顏色\n" "可使用右側色彩選取工具從影像中選擇,會一次設定色相和飽和度" -#: ../src/iop/graduatednd.c:1142 +#: ../src/iop/graduatednd.c:1111 msgid "select the saturation of filter" msgstr "" "漸層濾鏡顏色的飽和度\n" "預設值 0 代表中性灰漸層濾鏡" -#: ../src/iop/graduatednd.c:1153 +#: ../src/iop/graduatednd.c:1122 #, c-format msgid "[%s on nodes] change line rotation" msgstr "[節點 %s] 改變濾鏡角度" -#: ../src/iop/graduatednd.c:1154 +#: ../src/iop/graduatednd.c:1123 #, c-format msgid "[%s on line] move line" msgstr "[線條 %s] 移動濾鏡位置" -#: ../src/iop/graduatednd.c:1156 +#: ../src/iop/graduatednd.c:1125 #, c-format msgid "[%s on line] change density" msgstr "[線條 %s] 改變濾鏡密度" -#: ../src/iop/graduatednd.c:1158 +#: ../src/iop/graduatednd.c:1127 #, c-format msgid "[%s on line] change hardness" msgstr "[線條 %s] 改變濾鏡平滑度" -#: ../src/iop/grain.c:428 +#: ../src/iop/grain.c:444 msgid "grain" msgstr "底片顆粒" -#: ../src/iop/grain.c:433 +#: ../src/iop/grain.c:449 msgid "simulate silver grains from film" msgstr "" "底片顆粒 | grain\n" @@ -17482,15 +18010,15 @@ "模擬底片的顆粒效果\n" "顆粒在 Lab 空間的 L* 中進行運算" -#: ../src/iop/grain.c:582 +#: ../src/iop/grain.c:600 msgid "the grain size (~ISO of the film)" msgstr "模擬不同感光度的底片顆粒大小" -#: ../src/iop/grain.c:586 +#: ../src/iop/grain.c:604 msgid "the strength of applied grain" msgstr "底片顆粒效果的明顯程度" -#: ../src/iop/grain.c:590 +#: ../src/iop/grain.c:608 msgid "" "amount of mid-tones bias from the photographic paper response modeling. the " "greater the bias, the more pronounced the fall off of the grain in shadows " @@ -17517,18 +18045,18 @@ "此模組為每個區域評估漫反射量,然後降低漫射光強度恢復物體顏色\n" "也可用於提升影像低對比度區域的色彩飽和度" -#: ../src/iop/hazeremoval.c:202 +#: ../src/iop/hazeremoval.c:204 msgid "amount of haze reduction" msgstr "" "去除霧霾量\n" "設置到最高時會去除所有設定距離內偵測到的漫射光\n" "負值可以反向增加影像中的漫射光,讓影像更朦朧" -#: ../src/iop/hazeremoval.c:204 +#: ../src/iop/hazeremoval.c:206 msgid "distance" msgstr "距離" -#: ../src/iop/hazeremoval.c:206 +#: ../src/iop/hazeremoval.c:208 msgid "limit haze removal up to a specific spatial depth" msgstr "" "限制去除霧霾距離\n" @@ -17546,11 +18074,11 @@ "嘗試修復亮點顏色避免過曝區域顯示洋紅色\n" "可與「底片式階調映射」的重建功能搭配使用" -#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:75 +#: ../src/iop/highlights.c:181 ../src/iop/hotpixels.c:77 msgid "reconstruction, raw" msgstr "修復、RAW" -#: ../src/iop/highlights.c:923 +#: ../src/iop/highlights.c:1004 msgid "" "highlights: mode not available for this type of image. falling back to " "inpaint opposed." @@ -17558,7 +18086,7 @@ "⚠️ 警告 ⚠️\n" "X-Trans 感光元件不適用目前選擇的重建方法,恢復預設的「對立色版修復」方法" -#: ../src/iop/highlights.c:1101 +#: ../src/iop/highlights.c:1184 msgid "highlight reconstruction method" msgstr "" "選擇亮部重建方式\n" @@ -17587,11 +18115,10 @@ "使用類似「漫射或反卷積銳化」模組的演算法把細節複製到被裁切的色版\n" "這是一種緩慢且耗用大量計算資源的方法,主要用於重建聚光燈和鏡面反射" -#: ../src/iop/highlights.c:1106 +#: ../src/iop/highlights.c:1189 msgid "" "manually adjust the clipping threshold mostly used against magenta " -"highlights\n" -"the mask icon shows the clipped areas.\n" +"highlights.\n" "you might use this for tuning 'laplacian', 'inpaint opposed' or " "'segmentation' modes,\n" "especially if camera white point is incorrect." @@ -17600,26 +18127,43 @@ "可以用此參數微調對立色版、基於分段、拉普拉斯模式,尤其是當相機白點錯誤時\n" "右側遮罩按鈕可顯示目前被裁切的影像範圍" -#: ../src/iop/highlights.c:1117 +#: ../src/iop/highlights.c:1193 +msgid "" +"visualize clipped highlights in a false color representation.\n" +"the effective clipping level also depends on the reconstruction method." +msgstr "" +"以偽色顯示被裁切的亮部,\n" +"裁切程度會受重建方法影響。" + +#: ../src/iop/highlights.c:1203 msgid "" "combine closely related clipped segments by morphological operations.\n" -"the mask button shows the exact positions of resulting segment borders." +"this often leads to improved color reconstruction for tiny segments before " +"dark background." msgstr "" -"藉由型態分析結合密切相關的亮部裁切區段\n" -"使用遮罩按鈕顯示處理後的分段邊緣" +"藉由型態分析結合密切相關的亮部裁切區段。\n" +"這主要會增進暗色背景中的分段色彩除建。" + +#: ../src/iop/highlights.c:1206 +msgid "visualize the combined segments in a false color representation." +msgstr "以偽色顯示合併後的分段。" -#: ../src/iop/highlights.c:1125 +#: ../src/iop/highlights.c:1213 msgid "" "select inpainting after segmentation analysis.\n" -"increase to favour candidates found in segmentation analysis, decrease for " -"opposed means inpainting.\n" -"the mask button shows segments that are considered to have a good candidate." -msgstr "" -"調整分段分析後的修復方式\n" -"提高數值有利於納入更多候選分段,調低數值使用對立色版數值平均\n" -"使用遮罩按鈕顯示可能是良好候選的分段" +"increase to favor candidates found in segmentation analysis, decrease for " +"opposed means inpainting." +msgstr "" +"調整分段分析後的修復方式。\n" +"提高數值有利於納入更多候選分段,調低數值使用對立色版數值平均。" -#: ../src/iop/highlights.c:1136 +#: ../src/iop/highlights.c:1216 +msgid "" +"visualize segments that are considered to have a good candidate in a false " +"color representation." +msgstr "以偽色顯示效果良好的候選分段。" + +#: ../src/iop/highlights.c:1225 msgid "" "approximate lost data in regions with all photosites clipped, the effect " "depends on segment size and border gradients.\n" @@ -17635,16 +18179,15 @@ "小分段指直徑小於 25 像素的區域,大分段適合大於 100 像素的區域\n" "平坦模式會略過狹小且未剪裁的影像內容(如電線)以避免亮部重建產生漸層" -#: ../src/iop/highlights.c:1142 -msgid "" -"set strength of rebuilding in regions with all photosites clipped.\n" -"the mask buttons shows the effect that is added to already reconstructed " -"data." -msgstr "" -"設定亮部裁切區域的重建強度\n" -"遮罩按鈕可顯示已加到重建區域的效果" +#: ../src/iop/highlights.c:1231 +msgid "set strength of rebuilding in regions with all photosites clipped." +msgstr "設定全部亮度裁切區域的重建強度" + +#: ../src/iop/highlights.c:1233 +msgid "show the effect that is added to already reconstructed data." +msgstr "在已重建資料上顯示效果。" -#: ../src/iop/highlights.c:1152 +#: ../src/iop/highlights.c:1242 msgid "" "add noise to visually blend the reconstructed areas\n" "into the rest of the noisy image. useful at high ISO." @@ -17652,7 +18195,7 @@ "在被剪裁重建的亮部區域加入帕松分布的雜訊\n" "效果和感光元件中的雜訊類似,以塑造更為自然的視覺效果" -#: ../src/iop/highlights.c:1156 +#: ../src/iop/highlights.c:1246 msgid "" "increase if magenta highlights don't get fully corrected\n" "each new iteration brings a performance penalty." @@ -17660,7 +18203,7 @@ "每次的導引拉普拉斯計算都可改進前一次的效果\n" "如果剪裁亮點無法完全修復可以調高此值,但相對地犧牲處理速度" -#: ../src/iop/highlights.c:1161 +#: ../src/iop/highlights.c:1251 msgid "" "increase if magenta highlights don't get fully corrected.\n" "this may produce non-smooth boundaries between valid and clipped regions." @@ -17668,7 +18211,7 @@ "利用平滑 RGB 比例來恢復亮部顏色,調高數值以消除難以處理的洋紅色澤\n" "然而這會使重建不太準確,可能導致正常及裁切區域間的不平滑邊界" -#: ../src/iop/highlights.c:1165 +#: ../src/iop/highlights.c:1255 msgid "" "increase to correct larger clipped areas.\n" "large values bring huge performance penalties" @@ -17677,9 +18220,9 @@ "越大的數值將造成速度明顯變慢,並可能導致錯誤的色彩滲入重建區域中\n" "如果有多個裁切區域尺寸不一,建議利用多個模組實例並配合遮罩使用" -#: ../src/iop/highlights.c:1169 -msgid "this module only works with non-monochrome RAW and sRAW" -msgstr "此模組僅適用於非黑白的 RAW 與 sRAW 圖檔" +#: ../src/iop/highlights.c:1259 +msgid "this module does not work with monochrome RAW files" +msgstr "此模組不適用於黑白的 RAW 圖檔" #: ../src/iop/highpass.c:72 msgid "highpass" @@ -17693,31 +18236,31 @@ "分離出影像中的高頻訊號(細節)\n" "主要用於與混合模式搭配使用創造特殊效果" -#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:135 +#: ../src/iop/highpass.c:79 ../src/iop/lowpass.c:107 msgid "linear or non-linear, Lab, scene-referred" msgstr "線性或非線性、Lab、場景參照" -#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:136 ../src/iop/sharpen.c:96 +#: ../src/iop/highpass.c:80 ../src/iop/lowpass.c:108 ../src/iop/sharpen.c:98 msgid "frequential, Lab" msgstr "頻率、Lab" -#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:137 +#: ../src/iop/highpass.c:81 ../src/iop/lowpass.c:109 msgid "special, Lab, scene-referred" msgstr "特殊、Lab、場景參照" -#: ../src/iop/highpass.c:383 +#: ../src/iop/highpass.c:378 msgid "the sharpness of highpass filter" msgstr "高通濾鏡的銳利度" -#: ../src/iop/highpass.c:387 +#: ../src/iop/highpass.c:382 msgid "the contrast of highpass filter" msgstr "高通濾鏡的對比度" -#: ../src/iop/hotpixels.c:67 +#: ../src/iop/hotpixels.c:69 msgid "hot pixels" msgstr "去除熱壞點" -#: ../src/iop/hotpixels.c:72 +#: ../src/iop/hotpixels.c:74 msgid "remove abnormally bright pixels by dampening them with neighbors" msgstr "" "去除熱壞點 | hot pixels\n" @@ -17725,21 +18268,21 @@ "自動偵測和消除可能的熱壞點\n" "以相鄰的像素平均來替換異常過亮的像素" -#: ../src/iop/hotpixels.c:363 +#: ../src/iop/hotpixels.c:442 #, c-format msgid "fixed %d pixel" msgid_plural "fixed %d pixels" msgstr[0] "修復 %d 個壞點" -#: ../src/iop/hotpixels.c:386 +#: ../src/iop/hotpixels.c:465 msgid "lower threshold for hot pixel" msgstr "設定像素的值偏離其周邊像素多少才被視為熱壞點" -#: ../src/iop/hotpixels.c:390 +#: ../src/iop/hotpixels.c:469 msgid "strength of hot pixel correction" msgstr "調整熱壞點的校正強度,代表其與周邊像素的平均權重" -#: ../src/iop/hotpixels.c:406 +#: ../src/iop/hotpixels.c:485 msgid "" "hot pixel correction\n" "only works for raw images." @@ -17747,69 +18290,69 @@ "⚠️ 錯誤 ⚠️\n" "「去除熱壞點」僅適用於 RAW 檔" -#: ../src/iop/invert.c:92 ../src/iop/invert.c:427 +#: ../src/iop/invert.c:106 ../src/iop/invert.c:442 #, c-format msgid "`%s' color matrix not found for 4bayer image" msgstr "找不到 4bayer 影像的色彩模型「%s」" -#: ../src/iop/invert.c:108 +#: ../src/iop/invert.c:125 msgid "invert" msgstr "色調反轉" -#: ../src/iop/invert.c:113 +#: ../src/iop/invert.c:130 msgid "this module is deprecated. please use the negadoctor module instead." msgstr "此模組已被汰除,建議使用「負片反轉師」模組替代" -#: ../src/iop/invert.c:118 +#: ../src/iop/invert.c:135 msgid "invert film negatives" msgstr "反轉負片" -#: ../src/iop/invert.c:120 ../src/iop/invert.c:122 +#: ../src/iop/invert.c:137 ../src/iop/invert.c:139 msgid "linear, raw, display-referred" msgstr "線性、RAW、顯示參照" #. Here we could provide more for monochrome special cases. As no monochrome camera #. has a bayer sensor we don't need g->RGB_to_CAM and g->CAM_to_RGB corrections -#: ../src/iop/invert.c:412 +#: ../src/iop/invert.c:427 msgid "brightness of film material" msgstr "片基的亮度" -#: ../src/iop/invert.c:416 +#: ../src/iop/invert.c:431 msgid "color of film material" msgstr "片基的顏色" -#: ../src/iop/invert.c:500 ../src/iop/negadoctor.c:847 +#: ../src/iop/invert.c:515 ../src/iop/negadoctor.c:866 msgid "pick color of film material from image" msgstr "" "從影像上選取底片片基的顏色\n" "點擊色彩選取從影像上拖曳選取一塊未曝光的區域,以下參數會自動計算完成" -#: ../src/iop/invert.c:502 +#: ../src/iop/invert.c:517 msgid "select color of film material" msgstr "選擇底片片基的顏色" -#: ../src/iop/lens.cc:230 +#: ../src/iop/lens.cc:251 msgid "lens correction" msgstr "鏡頭校正" -#: ../src/iop/lens.cc:235 +#: ../src/iop/lens.cc:256 msgid "vignette|chromatic aberrations|distortion" msgstr "" "暗角|色像差|變形|失光|vignette|chromatic aberrations|distortion|lensfun" -#: ../src/iop/lens.cc:240 +#: ../src/iop/lens.cc:261 msgid "correct lenses optical flaws" msgstr "" "鏡頭校正 | lens correction\n" "\n" "自動修正鏡頭的變形、暗角、橫向色像差等光學缺陷\n" -"使用 EXIF 資料辨識相機和鏡頭型號,並自動取得 lensfun 校正參數" +"使用 EXIF 資料辨識相機和鏡頭型號,並自動取得 Lensfun 校正參數" -#: ../src/iop/lens.cc:243 +#: ../src/iop/lens.cc:264 msgid "geometric and reconstruction, RGB" msgstr "幾何與修復、RGB" -#: ../src/iop/lens.cc:3148 +#: ../src/iop/lens.cc:3773 #, c-format msgid "" "maker:\t\t%s\n" @@ -17822,7 +18365,7 @@ "接環: %s\n" "裁切係數: %.1fx" -#: ../src/iop/lens.cc:3396 +#: ../src/iop/lens.cc:4026 #, c-format msgid "" "maker:\t\t%s\n" @@ -17841,33 +18384,33 @@ "類型: %s\n" "接環: %s" -#: ../src/iop/lens.cc:3442 +#: ../src/iop/lens.cc:4072 msgid "focal length (mm)" msgstr "鏡頭焦距(mm)" -#: ../src/iop/lens.cc:3468 +#: ../src/iop/lens.cc:4098 msgid "f/" msgstr "f/" -#: ../src/iop/lens.cc:3469 +#: ../src/iop/lens.cc:4099 msgid "f-number (aperture)" msgstr "f 值(光圈)" -#: ../src/iop/lens.cc:3485 +#: ../src/iop/lens.cc:4115 msgid "d" msgstr "距離" -#: ../src/iop/lens.cc:3486 +#: ../src/iop/lens.cc:4116 msgid "distance to subject" msgstr "相機到主體的對焦距離" -#: ../src/iop/lens.cc:3645 +#: ../src/iop/lens.cc:4277 msgid "camera/lens not found" msgstr "" "⚠️ 警告 ⚠️\n" "找不到相機和鏡頭的資料" -#: ../src/iop/lens.cc:3646 +#: ../src/iop/lens.cc:4278 msgid "" "please select your lens manually\n" "you might also want to check if your Lensfun database is up-to-date\n" @@ -17876,49 +18419,53 @@ "無法自動偵測鏡頭型號,請手動選擇\n" "並檢查 lensfun 資料庫是否為最新版本" -#: ../src/iop/lens.cc:3769 +#: ../src/iop/lens.cc:4423 msgid "camera model" msgstr "相機型號" -#: ../src/iop/lens.cc:3774 +#: ../src/iop/lens.cc:4428 msgid "find camera" msgstr "尋找相機" -#: ../src/iop/lens.cc:3789 +#: ../src/iop/lens.cc:4443 msgid "find lens" msgstr "尋找鏡頭" #. scale -#: ../src/iop/lens.cc:3823 ../src/iop/vignette.c:968 -#: ../src/iop/watermark.c:1324 ../src/libs/export.c:1165 +#: ../src/iop/lens.cc:4477 ../src/iop/vignette.c:1055 +#: ../src/iop/watermark.c:1372 ../src/libs/export.c:1264 msgid "scale" msgstr "縮放" -#: ../src/iop/lens.cc:3828 +#: ../src/iop/lens.cc:4482 msgid "auto scale" msgstr "" "調整影像的縮放倍率避免校正後出現黑邊\n" "使用右側的自動縮放按鈕由 darktable 自動尋找最適合的設定" -#: ../src/iop/lens.cc:3832 +#: ../src/iop/lens.cc:4484 +msgid "automatic scale to available image size due to Lensfun data" +msgstr "依據 Lensfun 資料自動縮放到可用影像尺寸" + +#: ../src/iop/lens.cc:4488 msgid "correct distortions or apply them" msgstr "" "此模組的預設目的是校正鏡頭缺陷\n" "但也可以切換為變形,模擬特定鏡頭的光學變形和色像差效果" -#: ../src/iop/lens.cc:3839 +#: ../src/iop/lens.cc:4495 msgid "transversal chromatic aberration red" msgstr "手動設定紅色橫向色像差(red TCA)參數取代鏡頭資料庫數值" -#: ../src/iop/lens.cc:3843 +#: ../src/iop/lens.cc:4499 msgid "transversal chromatic aberration blue" msgstr "手動設定藍色橫向色像差(blue TCA)參數取代鏡頭資料庫數值" -#: ../src/iop/lens.cc:3849 +#: ../src/iop/lens.cc:4509 msgid "use latest algorithm" msgstr "使用最新的算法" -#: ../src/iop/lens.cc:3851 +#: ../src/iop/lens.cc:4511 msgid "" "you're using an old version of the algorithm.\n" "once enabled, you won't be able to\n" @@ -17927,48 +18474,99 @@ "你目前使用的是舊版的計算方法\n" "啟用新算法後,將無法回復舊的算法" -#: ../src/iop/lens.cc:3860 +#: ../src/iop/lens.cc:4521 +msgid "fine-tuning" +msgstr "微調" + +#. DT_IOP_SECTION_FOR_PARAMS doesn't work in C++ so create section module manually +#: ../src/iop/lens.cc:4526 +msgid "fine-tune" +msgstr "微調" + +#: ../src/iop/lens.cc:4532 msgid "tune the warp and chromatic aberration correction" msgstr "調整變形及色像差校正" -#: ../src/iop/lens.cc:3864 +#: ../src/iop/lens.cc:4536 msgid "tune the vignette correction" msgstr "調整暗角校正" -#: ../src/iop/lens.cc:3868 +#: ../src/iop/lens.cc:4540 msgid "tune the TCA red correction" msgstr "調整紅色橫向色像差(red TCA)校正" -#: ../src/iop/lens.cc:3872 +#: ../src/iop/lens.cc:4544 msgid "tune the TCA blue correction" msgstr "調整藍色橫向色像差(blue TCA)校正" -#: ../src/iop/lens.cc:3879 +#: ../src/iop/lens.cc:4551 msgid "image scaling" msgstr "影像縮放" -#: ../src/iop/lens.cc:3891 +#: ../src/iop/lens.cc:4553 +msgid "automatic scale to available image size" +msgstr "自動縮放至可用的影像尺寸" + +#: ../src/iop/lens.cc:4561 +msgid "" +"select a correction mode either based on\n" +" a) data and algorithms provided by the Lensfun project\n" +" b) embedded metadata provided by the camera or software vendor" +msgstr "" +"選擇校正方式基於:\n" +" - Lensfun 的資料與算法\n" +" - 相機或軟體廠商的嵌入數據" + +#: ../src/iop/lens.cc:4568 msgid "which corrections to apply" msgstr "要套用的校正項目" -#: ../src/iop/lens.cc:3904 +#: ../src/iop/lens.cc:4574 msgid "corrections done: " msgstr "已校正:" -#: ../src/iop/lens.cc:3906 +#: ../src/iop/lens.cc:4576 msgid "which corrections have actually been done" msgstr "實際進行了哪些更正" +#: ../src/iop/lens.cc:4595 +msgid "manual vignette correction" +msgstr "手動暗角校正" + +#: ../src/iop/lens.cc:4599 +msgid "additional manually controlled optical vignetting correction" +msgstr "額外的手動暗角校正控制" + +#: ../src/iop/lens.cc:4602 +msgid "vignette" +msgstr "暗角" + +#: ../src/iop/lens.cc:4606 +msgid "amount of the applied optical vignetting correction" +msgstr "要應用的整體校正強度" + +#: ../src/iop/lens.cc:4608 +msgid "show applied optical vignette correction mask" +msgstr "顯示已套用的暗角校正遮罩" + +#: ../src/iop/lens.cc:4618 +msgid "radius of uncorrected centre" +msgstr "中央無校正區域的半徑" + +#: ../src/iop/lens.cc:4624 +msgid "steepness of the correction effect outside of radius" +msgstr "圓外的暗角完全校正強度" + #: ../src/iop/levels.c:112 msgid "this module is deprecated. please use the RGB levels module instead." msgstr "此模組已被汰除,建議使用「RGB 色階」模組替代" -#: ../src/iop/levels.c:117 ../src/iop/levels.c:630 ../src/iop/rgblevels.c:984 -#: ../src/iop/rgblevels.c:1014 +#: ../src/iop/levels.c:117 ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1022 +#: ../src/iop/rgblevels.c:1056 msgid "levels" msgstr "色階" -#: ../src/iop/levels.c:137 +#: ../src/iop/levels.c:139 msgid "adjust black, white and mid-gray points" msgstr "" "色階 | levels\n" @@ -17977,54 +18575,54 @@ "這個模組在 CIELAB 空間中調整 L* 色版\n" "需要調整 RGB 色版請使用「RGB 色階」模組" -#: ../src/iop/levels.c:628 ../src/iop/rgblevels.c:1016 +#: ../src/iop/levels.c:644 ../src/iop/rgblevels.c:1059 msgid "" "drag handles to set black, gray, and white points. operates on L channel." msgstr "" "拖曳調整黑點、白點和中灰點的位置\n" "也可以使用下方色彩選取工具從影像中選取" -#: ../src/iop/levels.c:642 ../src/iop/rgblevels.c:1052 +#: ../src/iop/levels.c:658 ../src/iop/rgblevels.c:1108 msgid "apply auto levels" msgstr "偵測影像亮度分布自動調整黑白點位置,並將中灰點置於黑白點正中心" -#: ../src/iop/levels.c:646 ../src/iop/rgblevels.c:1027 +#: ../src/iop/levels.c:662 ../src/iop/rgblevels.c:1077 msgid "pick black point from image" msgstr "從影像中選取黑點" -#: ../src/iop/levels.c:650 ../src/iop/rgblevels.c:1033 +#: ../src/iop/levels.c:666 ../src/iop/rgblevels.c:1085 msgid "pick medium gray point from image" msgstr "從影像中選取中灰點" -#: ../src/iop/levels.c:654 ../src/iop/rgblevels.c:1039 +#: ../src/iop/levels.c:670 ../src/iop/rgblevels.c:1093 msgid "pick white point from image" msgstr "從影像中選取白點" -#: ../src/iop/levels.c:667 ../src/iop/rgblevels.c:936 -#: ../src/iop/rgblevels.c:1026 +#: ../src/iop/levels.c:683 ../src/iop/rgblevels.c:968 +#: ../src/iop/rgblevels.c:1075 msgid "black" msgstr "黑" -#: ../src/iop/levels.c:668 +#: ../src/iop/levels.c:684 msgid "black percentile" msgstr "" "黑色的百分位數\n" "黑點位於直方圖左邊界的位置\n" "數值越大會裁減掉越多暗部階調" -#: ../src/iop/levels.c:672 +#: ../src/iop/levels.c:688 msgid "gray percentile" msgstr "" "中灰點的百分位數\n" "黑點和白點調整後,中灰點在直方圖中的相對位置\n" "數值越小整體越亮,因越多像素被調整為亮部,反之亦同" -#: ../src/iop/levels.c:675 ../src/iop/rgblevels.c:938 -#: ../src/iop/rgblevels.c:1038 +#: ../src/iop/levels.c:691 ../src/iop/rgblevels.c:970 +#: ../src/iop/rgblevels.c:1091 msgid "white" msgstr "白" -#: ../src/iop/levels.c:676 +#: ../src/iop/levels.c:692 msgid "white percentile" msgstr "" "白點的百分位數\n" @@ -18045,11 +18643,11 @@ "節點半徑表示變形的範圍,箭頭表示變形方向,箭頭長度代表變形的強度\n" "如何操作節點請見影像上方顯示的說明文字" -#: ../src/iop/liquify.c:2933 +#: ../src/iop/liquify.c:2895 msgid "click to edit nodes" msgstr "點擊以編輯節點" -#: ../src/iop/liquify.c:3636 +#: ../src/iop/liquify.c:3599 msgid "" "<b>add point</b>: click and drag\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -18058,7 +18656,7 @@ "<b>增加節點</b>:點擊和拖曳\n" "<b>尺寸</b>:滑鼠滾輪,<b>強度</b>:shift + 滾輪,<b>方向</b>:ctrl + 滾輪" -#: ../src/iop/liquify.c:3639 +#: ../src/iop/liquify.c:3602 msgid "" "<b>add line</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -18067,7 +18665,7 @@ "<b>增加線段</b>:點擊\n" "<b>尺寸</b>:滑鼠滾輪,<b>強度</b>:shift + 滾輪,<b>方向</b>:ctrl + 滾輪" -#: ../src/iop/liquify.c:3642 +#: ../src/iop/liquify.c:3605 msgid "" "<b>add curve</b>: click\n" "<b>size</b>: scroll - <b>strength</b>: shift+scroll - <b>direction</b>: " @@ -18076,7 +18674,7 @@ "<b>增加曲線</b>:點擊\n" "<b>尺寸</b>:滑鼠滾輪,<b>強度</b>:shift + 滾輪,<b>方向</b>:ctrl + 滾輪" -#: ../src/iop/liquify.c:3693 +#: ../src/iop/liquify.c:3656 msgid "" "use a tool to add warps\n" "<b>remove a warp</b>: right-click" @@ -18084,48 +18682,48 @@ "點選要使用的變形工具\n" "右鍵點擊影像上的節點可刪除該變形效果" -#: ../src/iop/liquify.c:3696 +#: ../src/iop/liquify.c:3659 msgid "warps|nodes count:" msgstr "變形 | 節點數量:" -#: ../src/iop/liquify.c:3705 +#: ../src/iop/liquify.c:3668 msgid "edit, add and delete nodes" msgstr "編輯、增加和刪除節點" -#: ../src/iop/liquify.c:3710 ../src/iop/liquify.c:3716 -#: ../src/iop/liquify.c:3722 ../src/iop/retouch.c:2238 -#: ../src/iop/retouch.c:2242 ../src/iop/retouch.c:2246 -#: ../src/iop/retouch.c:2250 ../src/iop/spots.c:883 ../src/iop/spots.c:888 -#: ../src/iop/spots.c:893 ../src/libs/masks.c:1816 ../src/libs/masks.c:1825 -#: ../src/libs/masks.c:1834 ../src/libs/masks.c:1843 ../src/libs/masks.c:1852 +#: ../src/iop/liquify.c:3673 ../src/iop/liquify.c:3679 +#: ../src/iop/liquify.c:3685 ../src/iop/retouch.c:2465 +#: ../src/iop/retouch.c:2471 ../src/iop/retouch.c:2476 +#: ../src/iop/retouch.c:2481 ../src/iop/spots.c:885 ../src/iop/spots.c:890 +#: ../src/iop/spots.c:895 ../src/libs/masks.c:1812 ../src/libs/masks.c:1821 +#: ../src/libs/masks.c:1830 ../src/libs/masks.c:1839 ../src/libs/masks.c:1848 msgid "shapes" msgstr "形狀" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw curves" msgstr "曲線變形" -#: ../src/iop/liquify.c:3711 +#: ../src/iop/liquify.c:3674 msgid "draw multiple curves" msgstr "連續繪製多條曲線" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw lines" msgstr "直線變形" -#: ../src/iop/liquify.c:3717 +#: ../src/iop/liquify.c:3680 msgid "draw multiple lines" msgstr "連續繪製多條直線" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw points" msgstr "點變形" -#: ../src/iop/liquify.c:3723 +#: ../src/iop/liquify.c:3686 msgid "draw multiple points" msgstr "連續繪製多個變形點" -#: ../src/iop/liquify.c:3729 +#: ../src/iop/liquify.c:3692 msgid "" "<b>add node</b>: ctrl+click - <b>remove path</b>: right click\n" "<b>toggle line/curve</b>: ctrl+alt+click" @@ -18133,7 +18731,7 @@ "<b>增加節點<b/>:ctrl + 點擊,<b>刪除路徑</b>:右鍵\n" "<b>切換平滑或轉角節點</b>:ctrl + alt + 點擊" -#: ../src/iop/liquify.c:3732 +#: ../src/iop/liquify.c:3695 msgid "" "<b>move</b>: click and drag - <b>show/hide feathering controls</b>: click\n" "<b>autosmooth, cusp, smooth, symmetrical</b>: ctrl+click - <b>remove</b>: " @@ -18143,23 +18741,23 @@ "<b>切換節點連接方式</b>(僅限曲線變型有作用):自動平滑(圓點)、尖銳轉折(三" "角形)、手動平滑(菱形)、對稱(方形點):ctrl + 點擊" -#: ../src/iop/liquify.c:3736 ../src/iop/liquify.c:3738 +#: ../src/iop/liquify.c:3699 ../src/iop/liquify.c:3701 msgid "<b>shape of path</b>: drag" msgstr "<b>改變路徑形狀</b>:拖曳" -#: ../src/iop/liquify.c:3740 +#: ../src/iop/liquify.c:3703 msgid "<b>radius</b>: drag" msgstr "<b>改變半徑</b>:拖曳" -#: ../src/iop/liquify.c:3742 +#: ../src/iop/liquify.c:3705 msgid "<b>hardness (center)</b>: drag" msgstr "<b>改變硬度(中心)</b>:拖曳" -#: ../src/iop/liquify.c:3744 +#: ../src/iop/liquify.c:3707 msgid "<b>hardness (feather)</b>: drag" msgstr "<b>改變硬度(羽化)</b>:拖曳" -#: ../src/iop/liquify.c:3746 +#: ../src/iop/liquify.c:3709 msgid "" "<b>strength</b>: drag\n" "<b>linear, grow, and shrink</b>: ctrl+click" @@ -18184,63 +18782,63 @@ msgid "linear, XYZ" msgstr "線性、XYZ" -#: ../src/iop/lowlight.c:341 +#: ../src/iop/lowlight.c:338 msgid "indoor bright" msgstr "明亮室內" -#: ../src/iop/lowlight.c:359 +#: ../src/iop/lowlight.c:356 msgid "indoor dim" msgstr "陰暗室內" -#: ../src/iop/lowlight.c:377 +#: ../src/iop/lowlight.c:374 msgid "indoor dark" msgstr "黑暗室內" -#: ../src/iop/lowlight.c:395 +#: ../src/iop/lowlight.c:392 msgid "twilight" msgstr "晨昏" -#: ../src/iop/lowlight.c:413 +#: ../src/iop/lowlight.c:410 msgid "night street lit" msgstr "夜晚街燈" -#: ../src/iop/lowlight.c:431 +#: ../src/iop/lowlight.c:428 msgid "night street" msgstr "夜晚街道" -#: ../src/iop/lowlight.c:449 +#: ../src/iop/lowlight.c:446 msgid "night street dark" msgstr "夜晚暗巷" -#: ../src/iop/lowlight.c:468 +#: ../src/iop/lowlight.c:465 msgid "night" msgstr "夜晚" -#: ../src/iop/lowlight.c:641 +#: ../src/iop/lowlight.c:639 msgid "dark" msgstr "黑暗" -#: ../src/iop/lowlight.c:649 +#: ../src/iop/lowlight.c:647 msgid "bright" msgstr "明亮" -#: ../src/iop/lowlight.c:658 +#: ../src/iop/lowlight.c:656 msgid "day vision" msgstr "白天視覺" -#: ../src/iop/lowlight.c:663 +#: ../src/iop/lowlight.c:661 msgid "night vision" msgstr "夜間視覺" -#: ../src/iop/lowlight.c:835 +#: ../src/iop/lowlight.c:833 msgid "blueness in shadows" msgstr "在暗部中增加一些藍色調來模擬 Purkinje 效應" -#: ../src/iop/lowpass.c:128 +#: ../src/iop/lowpass.c:100 msgid "lowpass" msgstr "低通濾鏡" -#: ../src/iop/lowpass.c:133 +#: ../src/iop/lowpass.c:105 msgid "isolate low frequencies in the image" msgstr "" "低通濾鏡 | lowpass\n" @@ -18248,35 +18846,35 @@ "分離出影像中的低頻訊號(色彩)\n" "主要用於與混合模式搭配使用創造特殊效果" -#: ../src/iop/lowpass.c:565 +#: ../src/iop/lowpass.c:578 msgid "local contrast mask" msgstr "局部對比遮罩" -#: ../src/iop/lowpass.c:590 +#: ../src/iop/lowpass.c:603 msgid "radius of gaussian/bilateral blur" msgstr "套用高斯或雙邊濾波器模糊的半徑" -#: ../src/iop/lowpass.c:591 +#: ../src/iop/lowpass.c:604 msgid "contrast of lowpass filter" msgstr "低通濾鏡的對比度" -#: ../src/iop/lowpass.c:592 +#: ../src/iop/lowpass.c:605 msgid "brightness adjustment of lowpass filter" msgstr "低通濾鏡的亮度調整" -#: ../src/iop/lowpass.c:593 +#: ../src/iop/lowpass.c:606 msgid "color saturation of lowpass filter" msgstr "低通濾鏡的飽和度" -#: ../src/iop/lowpass.c:594 +#: ../src/iop/lowpass.c:607 msgid "which filter to use for blurring" msgstr "模糊效果使用的濾鏡" -#: ../src/iop/lut3d.c:135 +#: ../src/iop/lut3d.c:136 msgid "LUT 3D" msgstr "立體色彩查找表" -#: ../src/iop/lut3d.c:140 +#: ../src/iop/lut3d.c:141 msgid "perform color space corrections and apply look" msgstr "" "立體色彩查找表 | LUT 3D\n" @@ -18285,176 +18883,176 @@ "通常用於套用底片模擬效果和調色\n" "此模組會剪裁亮度範圍至 [0,1],請確保沒有要保留的數據超出範圍" -#: ../src/iop/lut3d.c:143 +#: ../src/iop/lut3d.c:144 msgid "defined by profile, RGB" msgstr "由描述檔定義、RGB" -#: ../src/iop/lut3d.c:468 +#: ../src/iop/lut3d.c:486 msgid "error allocating buffer for gmz LUT" msgstr "" "⚠️ 錯誤 ⚠️\n" "為 gmz LUT 分配緩衝區時出現錯誤" -#: ../src/iop/lut3d.c:494 +#: ../src/iop/lut3d.c:512 #, c-format msgid "invalid png file %s" msgstr "無效的 PNG 檔案「%s」" -#: ../src/iop/lut3d.c:502 +#: ../src/iop/lut3d.c:520 #, c-format -msgid "png bit-depth %d not supported" +msgid "png bit depth %d is not supported" msgstr "不支援 %d 位元的 PNG 檔案" -#: ../src/iop/lut3d.c:516 ../src/iop/lut3d.c:526 +#: ../src/iop/lut3d.c:534 ../src/iop/lut3d.c:544 #, c-format msgid "invalid level in png file %d %d" msgstr "PNG 檔案中的色階 %d %d 無效" -#: ../src/iop/lut3d.c:521 +#: ../src/iop/lut3d.c:539 msgid "this darktable build is not compatible with compressed CLUT" msgstr "此版本 darktable 不相容壓縮的 CLUT" -#: ../src/iop/lut3d.c:538 ../src/iop/lut3d.c:788 +#: ../src/iop/lut3d.c:556 ../src/iop/lut3d.c:808 #, c-format msgid "error - LUT 3D size %d exceeds the maximum supported" msgstr "" "⚠️ 錯誤 ⚠️\n" "3D LUT 大小 %d 超過上限" -#: ../src/iop/lut3d.c:550 +#: ../src/iop/lut3d.c:568 msgid "error allocating buffer for png LUT" msgstr "" "⚠️ 錯誤 ⚠️\n" "分配 PNG LUT 緩衝區時出錯" -#: ../src/iop/lut3d.c:558 +#: ../src/iop/lut3d.c:576 #, c-format msgid "error - could not read png image %s" msgstr "" "⚠️ 錯誤 ⚠️\n" "無法讀取 PNG 影像「%s」" -#: ../src/iop/lut3d.c:568 +#: ../src/iop/lut3d.c:586 msgid "error - allocating buffer for png LUT" msgstr "" "⚠️ 錯誤 ⚠️\n" "分配 PNG LUT 緩衝區時出錯" -#: ../src/iop/lut3d.c:743 +#: ../src/iop/lut3d.c:761 #, c-format msgid "error - invalid cube file: %s" msgstr "" "⚠️ 錯誤 ⚠️\n" "無效的 cube 檔案「%s」" -#: ../src/iop/lut3d.c:757 -msgid "DOMAIN MIN <> 0.0 is not supported" -msgstr "最小值必須為 0" - -#: ../src/iop/lut3d.c:768 -msgid "DOMAIN MAX <> 1.0 is not supported" -msgstr "最大值必須為 1" +#: ../src/iop/lut3d.c:775 +msgid "DOMAIN MIN other than 0 is not supported" +msgstr "不支援 0 以外的 DOMAIN MIN" + +#: ../src/iop/lut3d.c:787 +msgid "DOMAIN MAX other than 1 is not supported" +msgstr "不支援 1 以外的 DOMAIN MAX" -#: ../src/iop/lut3d.c:777 +#: ../src/iop/lut3d.c:797 msgid "1D cube LUT is not supported" msgstr "不支援一維 LUT" -#: ../src/iop/lut3d.c:799 +#: ../src/iop/lut3d.c:819 msgid "error - allocating buffer for cube LUT" msgstr "" "⚠️ 錯誤 ⚠️\n" "分配 cube LUT「%s」緩衝區時出錯" -#: ../src/iop/lut3d.c:810 +#: ../src/iop/lut3d.c:830 msgid "error - cube LUT size is not defined" msgstr "" "⚠️ 錯誤 ⚠️\n" "未定義 LUT 尺寸" -#: ../src/iop/lut3d.c:821 +#: ../src/iop/lut3d.c:841 #, c-format msgid "error - cube LUT invalid number line %d" msgstr "" "⚠️ 錯誤 ⚠️\n" "cube LUT 第 %d 行數值無效" -#: ../src/iop/lut3d.c:837 +#: ../src/iop/lut3d.c:857 #, c-format msgid "error - cube LUT lines number %d is not correct, should be %d" msgstr "" "⚠️ 錯誤 ⚠️\n" "cube LUT 第 %d 行數值無效,應為 %d" -#: ../src/iop/lut3d.c:847 +#: ../src/iop/lut3d.c:867 #, c-format msgid "warning - cube LUT has %d values out of range [0,1]" msgstr "" "⚠️ 警告 ⚠️\n" "cube LUT 中 %d 超出數值範圍範圍 [0,1]" -#: ../src/iop/lut3d.c:872 +#: ../src/iop/lut3d.c:892 #, c-format msgid "error - invalid 3dl file: %s" msgstr "" "⚠️ 錯誤 ⚠️\n" "無效的 3DL 檔案「%s」" -#: ../src/iop/lut3d.c:893 +#: ../src/iop/lut3d.c:913 #, c-format msgid "error - the maximum shaper LUT value %d is too low" msgstr "" "⚠️ 錯誤 ⚠️\n" "LUT 最大值 %d 過低" -#: ../src/iop/lut3d.c:904 +#: ../src/iop/lut3d.c:924 msgid "error - allocating buffer for 3dl LUT" msgstr "" "⚠️ 錯誤 ⚠️\n" "分配 PNG LUT 緩衝區時出錯" -#: ../src/iop/lut3d.c:917 +#: ../src/iop/lut3d.c:937 msgid "error - 3dl LUT size is not defined" msgstr "" "⚠️ 錯誤 ⚠️\n" "未定義 LUT 尺寸" -#: ../src/iop/lut3d.c:945 +#: ../src/iop/lut3d.c:965 msgid "error - 3dl LUT lines number is not correct" msgstr "" "⚠️ 錯誤 ⚠️\n" "3dl LUT 行數不正確" -#: ../src/iop/lut3d.c:961 +#: ../src/iop/lut3d.c:981 msgid "error - the maximum LUT value does not match any valid bit depth" msgstr "" "⚠️ 錯誤 ⚠️\n" "LUT 最大值不符合任何有效的色彩深度" -#: ../src/iop/lut3d.c:1539 +#: ../src/iop/lut3d.c:1553 msgid "LUT root folder not defined" msgstr "未定義 LUT 根目錄,請至「偏好設定」〉「運算方法」中定義" -#: ../src/iop/lut3d.c:1545 +#: ../src/iop/lut3d.c:1559 msgid "select LUT file" msgstr "選擇 LUT 檔案" -#: ../src/iop/lut3d.c:1546 +#: ../src/iop/lut3d.c:1560 msgid "_select" msgstr "選擇(_S)" -#: ../src/iop/lut3d.c:1566 +#: ../src/iop/lut3d.c:1580 msgid "hald CLUT (png), 3D LUT (cube or 3dl) or gmic compressed LUT (gmz)" msgstr "hald CLUT, 3D LUT, gmic LUT" -#: ../src/iop/lut3d.c:1568 +#: ../src/iop/lut3d.c:1582 msgid "hald CLUT (png) or 3D LUT (cube or 3dl)" msgstr "hald CLUT, 3D LUT" -#: ../src/iop/lut3d.c:1592 +#: ../src/iop/lut3d.c:1606 msgid "select file outside LUT root folder is not allowed" msgstr "不能選擇 LUT 根目錄之外的檔案" -#: ../src/iop/lut3d.c:1663 +#: ../src/iop/lut3d.c:1677 msgid "" "select a png (haldclut), a cube, a 3dl or a gmz (compressed LUT) file " "CAUTION: 3D LUT folder must be set in preferences/processing before choosing " @@ -18468,7 +19066,7 @@ "僅有 gmic 壓縮 LUT(gmz)格式可以儲存完整數據在 XMP 文件裡\n" "因此,自行正確備份 3D LUT 檔案非常重要" -#: ../src/iop/lut3d.c:1667 +#: ../src/iop/lut3d.c:1681 msgid "" "select a png (haldclut), a cube or a 3dl file CAUTION: 3D LUT folder must be " "set in preferences/processing before choosing the LUT file" @@ -18481,47 +19079,47 @@ "僅有 gmic 壓縮 LUT(gmz)格式可以儲存完整數據在 XMP 文件裡\n" "因此,自行正確備份 3D LUT 檔案非常重要" -#: ../src/iop/lut3d.c:1679 +#: ../src/iop/lut3d.c:1693 msgid "" "the file path (relative to LUT folder) is saved with image along with the " "LUT data if it's a compressed LUT (gmz)" msgstr "若使用 gmic 壓縮 LUT,將 gmz 檔案路徑與影像一併儲存" -#: ../src/iop/lut3d.c:1682 +#: ../src/iop/lut3d.c:1696 msgid "" "the file path (relative to LUT folder) is saved with image (and not the LUT " "data themselves)" msgstr "僅儲存 gmz 的檔案路徑(相對於 LUT 根目錄),而非 LUT 資料本身" -#: ../src/iop/lut3d.c:1691 +#: ../src/iop/lut3d.c:1705 msgid "enter LUT name" msgstr "輸入 LUT 名稱" -#: ../src/iop/lut3d.c:1712 +#: ../src/iop/lut3d.c:1726 msgid "select the LUT" msgstr "選取 LUT" -#: ../src/iop/lut3d.c:1725 +#: ../src/iop/lut3d.c:1739 msgid "select the color space in which the LUT has to be applied" msgstr "" "選擇套用 LUT 時使用的色彩空間\n" "LUT 是在特定色彩空間中定義的,選擇對應的色彩空間才能呈現正確外觀" -#: ../src/iop/lut3d.c:1727 +#: ../src/iop/lut3d.c:1741 msgid "interpolation" msgstr "內插法" -#: ../src/iop/lut3d.c:1728 +#: ../src/iop/lut3d.c:1742 msgid "select the interpolation method" msgstr "" "選擇 LUT 使用的內插計算方法\n" "決定介於 RGB 立方體網格點間的數據如何計算,不同算法通常差異很小" -#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:62 +#: ../src/iop/mask_manager.c:46 ../src/libs/masks.c:63 msgid "mask manager" msgstr "遮罩管理器" -#: ../src/iop/monochrome.c:97 +#: ../src/iop/monochrome.c:99 msgid "quickly convert an image to black & white using a variable color filter" msgstr "" "黑白濾鏡 | monochrome\n" @@ -18530,18 +19128,18 @@ "快速將影像轉換成黑白\n" "也可以使用「色彩校正」模組中的底片模擬預設集" -#: ../src/iop/monochrome.c:127 +#: ../src/iop/monochrome.c:153 msgid "red filter" msgstr "紅色濾鏡" -#: ../src/iop/monochrome.c:546 +#: ../src/iop/monochrome.c:568 msgid "drag and scroll mouse wheel to adjust the virtual color filter" msgstr "" "拖曳移動改變濾鏡顏色,滑鼠滾輪調整濾鏡色彩範圍\n" "建議先縮小濾鏡顏色範圍,以看出不同顏色的效果\n" "找到最適合的色相之後再逐步擴大濾鏡範圍,以獲得較自然的階調" -#: ../src/iop/monochrome.c:562 +#: ../src/iop/monochrome.c:584 msgid "how much to keep highlights" msgstr "控制亮部的保留程度" @@ -18562,35 +19160,35 @@ "使用此模組從真正的負片反轉影像時建議關閉其他任何階調調整模組\n" "並強烈建議依照介面中的「上→下」「左→右」順序設定各項參數" -#: ../src/iop/negadoctor.c:469 +#: ../src/iop/negadoctor.c:483 msgid "D min" msgstr "最低濃度" -#: ../src/iop/negadoctor.c:475 ../src/iop/negadoctor.c:856 +#: ../src/iop/negadoctor.c:489 ../src/iop/negadoctor.c:875 msgid "D min red component" msgstr "最低濃度區域紅色量" #. Page FILM PROPERTIES -#: ../src/iop/negadoctor.c:832 +#: ../src/iop/negadoctor.c:851 msgid "film properties" msgstr "底片特性" #. Dmin -#: ../src/iop/negadoctor.c:836 +#: ../src/iop/negadoctor.c:855 msgctxt "section" msgid "color of the film base" msgstr "底片片基的顏色" -#: ../src/iop/negadoctor.c:842 +#: ../src/iop/negadoctor.c:861 msgid "select color of film material from a swatch" msgstr "從色樣中選擇底片片基的顏色" -#: ../src/iop/negadoctor.c:848 +#: ../src/iop/negadoctor.c:867 msgid "film material" msgstr "片基材質" -#: ../src/iop/negadoctor.c:857 ../src/iop/negadoctor.c:867 -#: ../src/iop/negadoctor.c:877 +#: ../src/iop/negadoctor.c:876 ../src/iop/negadoctor.c:886 +#: ../src/iop/negadoctor.c:896 msgid "" "adjust the color and shade of the film transparent base.\n" "this value depends on the film material, \n" @@ -18600,25 +19198,25 @@ "手動調整底片片基的顏色和濃度\n" "參數設定會和底片種類、沖洗、掃描或翻拍設定等因素相關" -#: ../src/iop/negadoctor.c:866 +#: ../src/iop/negadoctor.c:885 msgid "D min green component" msgstr "最低濃度區域綠色量" -#: ../src/iop/negadoctor.c:876 +#: ../src/iop/negadoctor.c:895 msgid "D min blue component" msgstr "最低濃度區域藍色量" #. D max and scanner bias -#: ../src/iop/negadoctor.c:884 +#: ../src/iop/negadoctor.c:903 msgctxt "section" msgid "dynamic range of the film" msgstr "底片的動態範圍" -#: ../src/iop/negadoctor.c:886 +#: ../src/iop/negadoctor.c:905 msgid "D max" msgstr "最高濃度" -#: ../src/iop/negadoctor.c:888 +#: ../src/iop/negadoctor.c:907 msgid "" "maximum density of the film, corresponding to white after inversion.\n" "this value depends on the film specifications, the developing process,\n" @@ -18629,12 +19227,12 @@ "注意勿選取到影像範圍外的部分,如片基和底片碼,以免造成誤判\n" "手動調整向左讓底片更亮,向右拖動會讓底片變暗" -#: ../src/iop/negadoctor.c:892 +#: ../src/iop/negadoctor.c:911 msgctxt "section" msgid "scanner exposure settings" msgstr "掃描機曝光設定" -#: ../src/iop/negadoctor.c:896 +#: ../src/iop/negadoctor.c:915 msgid "" "correct the exposure of the scanner, for all RGB channels,\n" "before the inversion, so blacks are neither clipped or too pale." @@ -18645,27 +19243,27 @@ "手動調整向左讓底片更亮,向右拖動會讓底片變暗" #. WB shadows -#: ../src/iop/negadoctor.c:903 +#: ../src/iop/negadoctor.c:922 msgctxt "section" msgid "shadows color cast" msgstr "陰影偏色" -#: ../src/iop/negadoctor.c:909 +#: ../src/iop/negadoctor.c:928 msgid "select color of shadows from a swatch" msgstr "從色樣中選擇陰影的顏色" -#: ../src/iop/negadoctor.c:914 +#: ../src/iop/negadoctor.c:933 msgid "pick shadows color from image" msgstr "" "從影像中選擇陰影顏色\n" "使用色彩選取工具拖曳選擇影像中的暗部中灰色區域,以下參數會自動計算完成" -#: ../src/iop/negadoctor.c:920 +#: ../src/iop/negadoctor.c:939 msgid "shadows red offset" msgstr "陰影紅色偏移" -#: ../src/iop/negadoctor.c:921 ../src/iop/negadoctor.c:928 -#: ../src/iop/negadoctor.c:935 +#: ../src/iop/negadoctor.c:940 ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:954 msgid "" "correct the color cast in shadows so blacks are\n" "truly achromatic. Setting this value before\n" @@ -18675,36 +19273,36 @@ "校正陰影中的色偏,讓黑色真正不帶任何偏色\n" "陰影偏色參數也會影響亮部的顏色,務必先設定陰影偏色然後才是亮部白平衡" -#: ../src/iop/negadoctor.c:927 +#: ../src/iop/negadoctor.c:946 msgid "shadows green offset" msgstr "陰影綠色偏移" -#: ../src/iop/negadoctor.c:934 +#: ../src/iop/negadoctor.c:953 msgid "shadows blue offset" msgstr "陰影藍色偏移" #. WB highlights -#: ../src/iop/negadoctor.c:941 +#: ../src/iop/negadoctor.c:960 msgctxt "section" msgid "highlights white balance" msgstr "亮部白平衡" -#: ../src/iop/negadoctor.c:947 +#: ../src/iop/negadoctor.c:966 msgid "select color of illuminant from a swatch" msgstr "從色樣中選擇光源的顏色" -#: ../src/iop/negadoctor.c:952 +#: ../src/iop/negadoctor.c:971 msgid "pick illuminant color from image" msgstr "" "從影像中選取光源顏色\n" "使用色彩選取工具拖曳選擇影像中的亮部中灰色區域,以下參數會自動計算完成" -#: ../src/iop/negadoctor.c:958 +#: ../src/iop/negadoctor.c:977 msgid "illuminant red gain" msgstr "光源紅光增益" -#: ../src/iop/negadoctor.c:959 ../src/iop/negadoctor.c:966 -#: ../src/iop/negadoctor.c:973 +#: ../src/iop/negadoctor.c:978 ../src/iop/negadoctor.c:985 +#: ../src/iop/negadoctor.c:992 msgid "" "correct the color of the illuminant so whites are\n" "truly achromatic. Setting this value after\n" @@ -18714,26 +19312,26 @@ "校正光源的顏色,讓白色真正不帶任何偏色\n" "陰影偏色參數也會影響亮部的顏色,務必先設定陰影偏色然後才是亮部白平衡" -#: ../src/iop/negadoctor.c:965 +#: ../src/iop/negadoctor.c:984 msgid "illuminant green gain" msgstr "光源綠光增益" -#: ../src/iop/negadoctor.c:972 +#: ../src/iop/negadoctor.c:991 msgid "illuminant blue gain" msgstr "光源藍光增益" #. Page PRINT PROPERTIES -#: ../src/iop/negadoctor.c:979 +#: ../src/iop/negadoctor.c:998 msgid "print properties" msgstr "相紙特性" #. print corrections -#: ../src/iop/negadoctor.c:982 +#: ../src/iop/negadoctor.c:1001 msgctxt "section" msgid "virtual paper properties" msgstr "模擬紙張特性" -#: ../src/iop/negadoctor.c:988 +#: ../src/iop/negadoctor.c:1007 msgid "" "correct the density of black after the inversion,\n" "to adjust the global contrast while avoiding clipping shadows." @@ -18741,7 +19339,7 @@ "修正反轉後的黑色濃度,以調整對比度同時避免裁切暗部階調\n" "使用右方色彩選取工具選擇底片曝光區域以自動計算" -#: ../src/iop/negadoctor.c:993 +#: ../src/iop/negadoctor.c:1012 msgid "" "select the grade of the virtual paper, which is actually\n" "equivalent to applying a gamma. it compensates the film D max\n" @@ -18750,7 +19348,7 @@ "選擇虛擬紙張的階調,實際上是套用伽瑪指數\n" "補償底片的最高濃度並恢復對比度" -#: ../src/iop/negadoctor.c:1001 +#: ../src/iop/negadoctor.c:1020 msgid "" "gradually compress specular highlights past this value\n" "to avoid clipping while pushing the exposure for mid-tones.\n" @@ -18759,12 +19357,12 @@ "調整數值以避免提高中間調曝光時發生亮部剪裁\n" "本質上是一個高光壓縮工具,可用來模擬低對比度的霧面相紙" -#: ../src/iop/negadoctor.c:1005 +#: ../src/iop/negadoctor.c:1024 msgctxt "section" msgid "virtual print emulation" msgstr "模擬虛擬列印" -#: ../src/iop/negadoctor.c:1012 +#: ../src/iop/negadoctor.c:1031 msgid "" "correct the printing exposure after inversion to adjust\n" "the global contrast and avoid clipping highlights." @@ -18773,19 +19371,19 @@ "使用右側色彩選取工具選擇應該要是最亮的地方,以便自動設定影像白點\n" "如果前項參數都有正確設定,理應不需要調整這項設定" -#: ../src/iop/negadoctor.c:1020 +#: ../src/iop/negadoctor.c:1039 msgid "toggle on or off the color controls" msgstr "選擇底片種類,如果選擇黑白底片,則不會顯示底片片基顏色的滑桿" -#: ../src/iop/nlmeans.c:84 +#: ../src/iop/nlmeans.c:78 msgid "astrophoto denoise" msgstr "天文攝影除雜訊" -#: ../src/iop/nlmeans.c:89 +#: ../src/iop/nlmeans.c:83 msgid "denoise (non-local means)" msgstr "非局部平均除雜訊非局部平均" -#: ../src/iop/nlmeans.c:94 +#: ../src/iop/nlmeans.c:88 msgid "apply a poisson noise removal best suited for astrophotography" msgstr "" "天文攝影除雜訊 | astrophoto denoise\n" @@ -18794,35 +19392,72 @@ "以便在去除雜訊的同時保留影像中的細節結構\n" "這會耗用大量運算資源,若處理速度過慢可以先完成其他調整最後再啟用此模組" -#: ../src/iop/nlmeans.c:459 +#: ../src/iop/nlmeans.c:462 msgid "radius of the patches to match" msgstr "評估雜訊色塊的半徑" -#: ../src/iop/nlmeans.c:467 +#: ../src/iop/nlmeans.c:470 msgid "how much to smooth brightness" msgstr "降低亮度雜訊的程度" -#: ../src/iop/nlmeans.c:470 +#: ../src/iop/nlmeans.c:473 msgid "how much to smooth colors" msgstr "降低彩色雜訊的程度" #. * let's fill the encapsulating widgets #. preview mode #. color scheme -#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2419 -#: ../src/views/darkroom.c:2437 ../src/views/darkroom.c:2444 -#: ../src/views/darkroom.c:2454 ../src/views/darkroom.c:2471 +#: ../src/iop/overexposed.c:71 ../src/views/darkroom.c:2258 +#: ../src/views/darkroom.c:2276 ../src/views/darkroom.c:2283 +#: ../src/views/darkroom.c:2293 ../src/views/darkroom.c:2310 msgid "overexposed" msgstr "過曝" -#: ../src/iop/overexposed.c:130 ../src/iop/overexposed.c:360 +#: ../src/iop/overexposed.c:123 ../src/iop/overexposed.c:352 msgid "module overexposed failed in buffer allocation" msgstr "過曝模組配置緩衝區失敗" -#: ../src/iop/overexposed.c:156 ../src/iop/overexposed.c:370 +#: ../src/iop/overexposed.c:149 ../src/iop/overexposed.c:362 msgid "module overexposed failed in color conversion" msgstr "過曝模組轉換顏色失敗" +#: ../src/iop/primaries.c:74 +msgid "rgb primaries" +msgstr "RGB 原色" + +#: ../src/iop/primaries.c:79 +msgid "adjustment of the RGB color primaries for color grading" +msgstr "" +"RGB 原色 | rgb primaries\n" +"\n" +"藉由改變 RGB 色版混合方式來微調整體顏色\n" +"本質上是一個介面更容易操作的色版混合器\n" +"在不改變色偏設定時,其灰階中性軸不會被影響" + +#: ../src/iop/primaries.c:395 +msgid "shift red towards yellow or magenta" +msgstr "紅色轉向偏黃或洋紅" + +#: ../src/iop/primaries.c:396 +msgid "red primary purity" +msgstr "紅原色純度" + +#: ../src/iop/primaries.c:397 +msgid "shift green towards cyan or yellow" +msgstr "綠色轉向偏青或黃" + +#: ../src/iop/primaries.c:398 +msgid "green primary purity" +msgstr "綠原色純度" + +#: ../src/iop/primaries.c:399 +msgid "shift blue towards magenta or cyan" +msgstr "藍色轉向偏洋紅或黃" + +#: ../src/iop/primaries.c:400 +msgid "blue primary purity" +msgstr "藍原色純度" + #: ../src/iop/profile_gamma.c:96 msgid "unbreak input profile" msgstr "修復輸入描述檔" @@ -18836,45 +19471,45 @@ "只有在「輸入色彩描述檔」模組選擇了自訂的色彩空間才需要使用此模組\n" "使用 darktable 預設的相機色彩矩陣不需要此額外處理" -#: ../src/iop/profile_gamma.c:136 +#: ../src/iop/profile_gamma.c:138 msgid "16 EV dynamic range (generic)" msgstr "16 EV 動態範圍(通用)" -#: ../src/iop/profile_gamma.c:142 +#: ../src/iop/profile_gamma.c:144 msgid "14 EV dynamic range (generic)" msgstr "14 EV 動態範圍(通用)" -#: ../src/iop/profile_gamma.c:148 +#: ../src/iop/profile_gamma.c:150 msgid "12 EV dynamic range (generic)" msgstr "12 EV 動態範圍(通用)" -#: ../src/iop/profile_gamma.c:154 +#: ../src/iop/profile_gamma.c:156 msgid "10 EV dynamic range (generic)" msgstr "10 EV 動態範圍(通用)" -#: ../src/iop/profile_gamma.c:160 +#: ../src/iop/profile_gamma.c:162 msgid "08 EV dynamic range (generic)" msgstr " 8 EV 動態範圍(通用)" -#: ../src/iop/profile_gamma.c:623 +#: ../src/iop/profile_gamma.c:637 msgid "linear part" msgstr "" "暗部線性段\n" "在暗部以線性處理而不套用伽馬曲線的部分,通常介於 0.0 ~ 0.1" -#: ../src/iop/profile_gamma.c:627 +#: ../src/iop/profile_gamma.c:641 msgid "gamma exponential factor" msgstr "" "伽瑪指數\n" "補償輸入描述檔的伽瑪值,一般設定是 0.45" -#: ../src/iop/profile_gamma.c:638 +#: ../src/iop/profile_gamma.c:652 msgid "adjust to match the average luma of the subject" msgstr "" "調整中灰色的亮度以符合物體的平均亮度\n" "可手動調整或使用右側色彩選取工具從影像上拖曳選取代表中間調的區域" -#: ../src/iop/profile_gamma.c:644 +#: ../src/iop/profile_gamma.c:658 msgid "" "number of stops between middle gray and pure black\n" "this is a reading a light meter would give you on the scene" @@ -18882,7 +19517,7 @@ "純黑點至中性灰之間的曝光級數,在拍攝現場使用測光表確認數值\n" "也可手動調整或使用右側色彩選取工具從影像上拖曳選取代表純黑色的區域" -#: ../src/iop/profile_gamma.c:650 +#: ../src/iop/profile_gamma.c:664 msgid "" "number of stops between pure black and pure white\n" "this is a reading a light meter would give you on the scene" @@ -18890,36 +19525,36 @@ "純黑點至純白點之間的曝光級數,在拍攝現場使用測光表確認數值\n" "也可手動調整或使用右側色彩選取工具從影像上拖曳選取代表純白色的區域" -#: ../src/iop/profile_gamma.c:652 +#: ../src/iop/profile_gamma.c:666 msgctxt "section" msgid "optimize automatically" msgstr "自動最佳化" -#: ../src/iop/profile_gamma.c:656 +#: ../src/iop/profile_gamma.c:670 msgid "" -"enlarge or shrink the computed dynamic range\n" -"this is useful when noise perturbates the measurements" +"increase or decrease the computed dynamic range\n" +"this is useful when noise distorts the measurement" msgstr "" -"放大或縮小自動計算的動態範圍\n" +"擴大或縮減自動計算的動態範圍\n" "有助於影像雜訊干擾判讀的情況" -#: ../src/iop/profile_gamma.c:660 +#: ../src/iop/profile_gamma.c:674 msgid "make an optimization with some guessing" msgstr "" "使用右側色彩選取工具選取全畫面推測最佳數值\n" "用法類似於自動色階" -#: ../src/iop/profile_gamma.c:669 +#: ../src/iop/profile_gamma.c:683 msgid "tone mapping method" msgstr "" "選擇階調映射方式\n" "補償自訂輸入色彩描述檔的 EOTF 特性" -#: ../src/iop/rawdenoise.c:124 +#: ../src/iop/rawdenoise.c:138 msgid "raw denoise" msgstr "RAW 檔除雜訊" -#: ../src/iop/rawdenoise.c:129 +#: ../src/iop/rawdenoise.c:143 msgid "denoise the raw picture early in the pipeline" msgstr "" "RAW 檔除雜訊 | raw denoise\n" @@ -18928,7 +19563,7 @@ "控制方法和「相機特性除雜訊」的小波模式類似\n" "但沒有使用相機感光元件的特性描述資料" -#: ../src/iop/rawdenoise.c:939 +#: ../src/iop/rawdenoise.c:955 msgid "" "raw denoising\n" "only works for raw images." @@ -18938,9 +19573,9 @@ #. * let's fill the encapsulating widgets #. mode of operation -#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2369 -#: ../src/views/darkroom.c:2387 ../src/views/darkroom.c:2393 -#: ../src/views/darkroom.c:2406 +#: ../src/iop/rawoverexposed.c:69 ../src/views/darkroom.c:2208 +#: ../src/views/darkroom.c:2226 ../src/views/darkroom.c:2232 +#: ../src/views/darkroom.c:2245 msgid "raw overexposed" msgstr "RAW 檔曝光過度" @@ -18949,7 +19584,7 @@ msgid "raw black/white point" msgstr "RAW 檔黑、白點" -#: ../src/iop/rawprepare.c:156 +#: ../src/iop/rawprepare.c:172 msgid "" "sets technical specificities of the raw sensor.\n" "touch with great care!" @@ -18959,61 +19594,61 @@ "設定基於特定相機感光元件的黑白訊號位準\n" "此為感光元件的技術特性,通常不需要更改預設值" -#: ../src/iop/rawprepare.c:168 +#: ../src/iop/rawprepare.c:184 msgid "passthrough" msgstr "直通" -#: ../src/iop/rawprepare.c:655 +#: ../src/iop/rawprepare.c:663 msgid "invalid crop parameters" msgstr "裁切參數設定無效" -#: ../src/iop/rawprepare.c:656 +#: ../src/iop/rawprepare.c:664 msgid "" "please reset to defaults, update your preset or set to something correct" msgstr "點擊重設回復預設設定,更新預設集的參數或回到正確設定" -#: ../src/iop/rawprepare.c:922 +#: ../src/iop/rawprepare.c:930 msgid "black level 0" msgstr "黑色位準 0(R)" -#: ../src/iop/rawprepare.c:923 +#: ../src/iop/rawprepare.c:931 msgid "black level 1" msgstr "黑色位準 1(G)" -#: ../src/iop/rawprepare.c:924 +#: ../src/iop/rawprepare.c:932 msgid "black level 2" msgstr "黑色位準 2(G)" -#: ../src/iop/rawprepare.c:925 +#: ../src/iop/rawprepare.c:933 msgid "black level 3" msgstr "黑色位準 3(B)" -#: ../src/iop/rawprepare.c:952 +#: ../src/iop/rawprepare.c:960 msgid "raw flat field correction to compensate for lens shading" msgstr "使用 RAW 檔平場校正來補償鏡頭暗角" -#: ../src/iop/rawprepare.c:957 +#: ../src/iop/rawprepare.c:965 msgctxt "section" msgid "crop" msgstr "裁切" -#: ../src/iop/rawprepare.c:960 +#: ../src/iop/rawprepare.c:968 msgid "crop left border" msgstr "裁切左側" -#: ../src/iop/rawprepare.c:964 +#: ../src/iop/rawprepare.c:972 msgid "crop top border" msgstr "裁切上方" -#: ../src/iop/rawprepare.c:968 +#: ../src/iop/rawprepare.c:976 msgid "crop right border" msgstr "裁切右側" -#: ../src/iop/rawprepare.c:972 +#: ../src/iop/rawprepare.c:980 msgid "crop bottom border" msgstr "裁切下方" -#: ../src/iop/rawprepare.c:981 +#: ../src/iop/rawprepare.c:989 msgid "" "raw black/white point correction\n" "only works for the sensors that need it." @@ -19036,11 +19671,11 @@ "this module is deprecated. please use the tone equalizer module instead." msgstr "此模組已被汰除,建議使用「階調等化器」模組替代" -#: ../src/iop/relight.c:263 +#: ../src/iop/relight.c:259 msgid "the fill-light in EV" msgstr "補光亮度(EV)" -#: ../src/iop/relight.c:272 +#: ../src/iop/relight.c:268 msgid "" "select the center of fill-light\n" "ctrl+click to select an area" @@ -19048,16 +19683,11 @@ "選擇補光燈的中心點\n" "ctrl + 左鍵選擇區域" -#: ../src/iop/relight.c:276 +#: ../src/iop/relight.c:272 msgid "toggle tool for picking median lightness in image" msgstr "切換在影像上選擇中間亮度的工具" -#: ../src/iop/relight.c:279 ../src/libs/export.c:1131 -#: ../src/libs/metadata_view.c:147 ../src/libs/print_settings.c:2537 -msgid "width" -msgstr "寬度" - -#: ../src/iop/relight.c:280 +#: ../src/iop/relight.c:276 msgid "width of fill-light area defined in zones" msgstr "補光階調範圍" @@ -19081,29 +19711,29 @@ msgid "geometric and frequential, RGB" msgstr "幾何與頻率、RGB" -#: ../src/iop/retouch.c:1538 +#: ../src/iop/retouch.c:1689 msgid "cannot display scales when the blending mask is displayed" msgstr "顯示混合遮罩時無法顯示小波尺度" -#: ../src/iop/retouch.c:1861 ../src/iop/retouch.c:1863 -#: ../src/iop/retouch.c:1865 ../src/iop/retouch.c:1867 +#: ../src/iop/retouch.c:2045 ../src/iop/retouch.c:2047 +#: ../src/iop/retouch.c:2049 ../src/iop/retouch.c:2051 #, c-format msgid "default tool changed to %s" msgstr "預設工具變更為「%s」" -#: ../src/iop/retouch.c:1861 +#: ../src/iop/retouch.c:2045 msgid "cloning" msgstr "複製" -#: ../src/iop/retouch.c:1863 +#: ../src/iop/retouch.c:2047 msgid "healing" msgstr "修復" -#: ../src/iop/retouch.c:2226 +#: ../src/iop/retouch.c:2448 msgid "shapes:" msgstr "遮罩形狀:" -#: ../src/iop/retouch.c:2230 +#: ../src/iop/retouch.c:2454 msgid "" "to add a shape select an algorithm and a shape type and click on the image.\n" "shapes are added to the current scale" @@ -19111,77 +19741,73 @@ "選擇遮罩形狀和修飾方法,然後在影像上點擊欲修飾的地方\n" "修飾形狀遮罩會作用於目前選定的小波尺度(細節頻率)上" -#. display & suppress masks -#. copy/paste shapes -#. display final image/current scale -#. auto-levels button -#: ../src/iop/retouch.c:2233 ../src/iop/retouch.c:2334 -#: ../src/iop/retouch.c:2339 ../src/iop/retouch.c:2347 -#: ../src/iop/retouch.c:2351 ../src/iop/retouch.c:2358 -#: ../src/iop/retouch.c:2392 +#: ../src/iop/retouch.c:2458 ../src/iop/retouch.c:2591 +#: ../src/iop/retouch.c:2597 ../src/iop/retouch.c:2606 +#: ../src/iop/retouch.c:2611 ../src/iop/retouch.c:2619 +#: ../src/iop/retouch.c:2664 msgid "editing" msgstr "編輯" -#: ../src/iop/retouch.c:2233 +#: ../src/iop/retouch.c:2459 msgid "show and edit shapes on the current scale" msgstr "顯示目前小波尺度中的形狀以編輯" -#: ../src/iop/retouch.c:2234 +#: ../src/iop/retouch.c:2460 msgid "show and edit shapes in restricted mode" msgstr "在受限模式下編輯,遮罩形狀的位置和大小被保護避免變更" -#: ../src/iop/retouch.c:2257 +#: ../src/iop/retouch.c:2489 msgid "algorithms:" msgstr "修飾方法:" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2498 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2510 msgid "tools" msgstr "工具" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2278 +#: ../src/iop/retouch.c:2492 ../src/iop/retouch.c:2518 msgid "activate blur tool" msgstr "啟用模糊工具" -#: ../src/iop/retouch.c:2260 ../src/iop/retouch.c:2264 -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2272 +#: ../src/iop/retouch.c:2493 ../src/iop/retouch.c:2499 +#: ../src/iop/retouch.c:2505 ../src/iop/retouch.c:2511 msgid "change algorithm for current form" msgstr "將選擇的形狀更改為此工具" -#: ../src/iop/retouch.c:2264 ../src/iop/retouch.c:2281 +#: ../src/iop/retouch.c:2498 ../src/iop/retouch.c:2521 msgid "activate fill tool" msgstr "啟用填色工具" -#: ../src/iop/retouch.c:2268 ../src/iop/retouch.c:2284 +#: ../src/iop/retouch.c:2504 ../src/iop/retouch.c:2524 msgid "activate cloning tool" msgstr "啟用複製工具" -#: ../src/iop/retouch.c:2272 ../src/iop/retouch.c:2287 +#: ../src/iop/retouch.c:2510 ../src/iop/retouch.c:2527 msgid "activate healing tool" msgstr "啟用修復工具" #. overwrite tooltip ourself to handle shift+click -#: ../src/iop/retouch.c:2276 +#: ../src/iop/retouch.c:2516 msgid "ctrl+click to change tool for current form" msgstr "ctrl + 點擊 將選擇的形狀更改為此工具" -#: ../src/iop/retouch.c:2277 +#: ../src/iop/retouch.c:2517 msgid "shift+click to set the tool as default" msgstr "shift + 點擊 將此工具設為預設值" -#: ../src/iop/retouch.c:2296 +#: ../src/iop/retouch.c:2537 msgid "scales:" msgstr "小波尺度(頻率分離層數):" -#: ../src/iop/retouch.c:2301 +#: ../src/iop/retouch.c:2544 msgid "current:" msgstr "目前使用的小波尺度:" -#: ../src/iop/retouch.c:2306 +#: ../src/iop/retouch.c:2551 msgid "merge from:" msgstr "合併編輯效果至小波層:" -#: ../src/iop/retouch.c:2314 +#: ../src/iop/retouch.c:2562 msgid "" "top slider adjusts where the merge scales start\n" "bottom slider adjusts the number of scales\n" @@ -19210,44 +19836,44 @@ "上方的三角形控制小波層合併效果,高層數的修飾會套用至低層上\n" "選擇 0 為不合併效果,每個修飾遮罩只作用在所屬的小波尺度中" -#: ../src/iop/retouch.c:2334 +#: ../src/iop/retouch.c:2591 msgid "display masks" msgstr "顯示遮罩" -#: ../src/iop/retouch.c:2339 +#: ../src/iop/retouch.c:2597 msgid "temporarily switch off shapes" msgstr "暫時不顯示修飾效果" -#: ../src/iop/retouch.c:2347 +#: ../src/iop/retouch.c:2606 msgid "paste cut shapes to current scale" msgstr "貼上剪下的修飾遮罩到目前選取的小波尺度" -#: ../src/iop/retouch.c:2351 +#: ../src/iop/retouch.c:2611 msgid "cut shapes from current scale" msgstr "從目前小波尺度中剪下修飾遮罩" -#: ../src/iop/retouch.c:2358 +#: ../src/iop/retouch.c:2619 msgid "display wavelet scale" msgstr "切換顯示小波尺度 / 整體影像" -#: ../src/iop/retouch.c:2366 +#: ../src/iop/retouch.c:2627 msgctxt "section" msgid "preview single scale" msgstr "單一小波尺度預覽效果" -#: ../src/iop/retouch.c:2377 +#: ../src/iop/retouch.c:2641 msgid "adjust preview levels" msgstr "調整小波預覽色階" -#: ../src/iop/retouch.c:2392 ../src/iop/rgblevels.c:1051 +#: ../src/iop/retouch.c:2664 ../src/iop/rgblevels.c:1106 msgid "auto levels" msgstr "自動調整預覽效果" -#: ../src/iop/retouch.c:2400 +#: ../src/iop/retouch.c:2672 msgid "shape selected:" msgstr "目前選取的形狀遮罩:" -#: ../src/iop/retouch.c:2405 +#: ../src/iop/retouch.c:2678 msgid "" "click on a shape to select it,\n" "to unselect click on an empty space" @@ -19255,60 +19881,60 @@ "點擊形狀遮罩以選取\n" "點擊空白區域取消選取" -#: ../src/iop/retouch.c:2412 +#: ../src/iop/retouch.c:2687 msgid "erase the detail or fills with chosen color" msgstr "抹除細節或用選取的色彩來填滿" -#: ../src/iop/retouch.c:2419 +#: ../src/iop/retouch.c:2697 msgid "fill color: " msgstr "填充色彩: " -#: ../src/iop/retouch.c:2424 ../src/iop/retouch.c:2425 +#: ../src/iop/retouch.c:2702 ../src/iop/retouch.c:2703 msgid "select fill color" msgstr "選擇填充色彩" -#: ../src/iop/retouch.c:2430 +#: ../src/iop/retouch.c:2713 msgid "pick fill color from image" msgstr "從影像上選擇要填滿的色彩" -#: ../src/iop/retouch.c:2431 +#: ../src/iop/retouch.c:2714 msgid "pick fill color" msgstr "選取填滿色彩" -#: ../src/iop/retouch.c:2439 +#: ../src/iop/retouch.c:2724 msgid "adjusts color brightness to fine-tune it. works with erase as well" msgstr "調整填色的亮度,也適用於擦除模式" -#: ../src/iop/retouch.c:2445 +#: ../src/iop/retouch.c:2730 msgid "type for the blur algorithm" msgstr "選擇模糊演算法" -#: ../src/iop/retouch.c:2449 +#: ../src/iop/retouch.c:2734 msgid "radius of the selected blur type" msgstr "選取模糊的半徑尺寸" -#: ../src/iop/retouch.c:2455 +#: ../src/iop/retouch.c:2741 msgid "set the opacity on the selected shape" msgstr "調整選取形狀遮罩的不透明度" -#: ../src/iop/retouch.c:2461 +#: ../src/iop/retouch.c:2748 msgctxt "section" msgid "retouch tools" msgstr "修飾工具" #. wavelet decompose -#: ../src/iop/retouch.c:2470 +#: ../src/iop/retouch.c:2757 msgctxt "section" msgid "wavelet decompose" msgstr "小波分解(高低頻分離)" #. shapes -#: ../src/iop/retouch.c:2484 +#: ../src/iop/retouch.c:2771 msgctxt "section" msgid "shapes" msgstr "形狀" -#: ../src/iop/retouch.c:3589 ../src/iop/retouch.c:4427 +#: ../src/iop/retouch.c:3986 ../src/iop/retouch.c:4956 #, c-format msgid "max scale is %i for this image size" msgstr "這個影像尺寸的最高小波尺度為 %i" @@ -19317,7 +19943,7 @@ msgid "rgb curve" msgstr "RGB 曲線" -#: ../src/iop/rgbcurve.c:142 +#: ../src/iop/rgbcurve.c:144 msgid "alter an image’s tones using curves in RGB color space" msgstr "" "RGB 曲線 | rgb curve\n" @@ -19326,55 +19952,55 @@ "和「階調曲線」模組類似,但在 RGB 空間中執行\n" "移動曲線的兩側端點可變更黑白點,效果等同「RGB 色階」模組" -#: ../src/iop/rgbcurve.c:193 ../src/iop/tonecurve.c:548 +#: ../src/iop/rgbcurve.c:195 ../src/iop/tonecurve.c:569 msgid "gamma 1.0 (linear)" msgstr "伽瑪 1.0(線性)" -#: ../src/iop/rgbcurve.c:203 ../src/iop/tonecurve.c:558 +#: ../src/iop/rgbcurve.c:205 ../src/iop/tonecurve.c:579 msgid "contrast - med (linear)" msgstr "對比度中(線性)" -#: ../src/iop/rgbcurve.c:212 ../src/iop/tonecurve.c:567 +#: ../src/iop/rgbcurve.c:214 ../src/iop/tonecurve.c:588 msgid "contrast - high (linear)" msgstr "對比度高(線性)" -#: ../src/iop/rgbcurve.c:226 ../src/iop/tonecurve.c:579 +#: ../src/iop/rgbcurve.c:228 ../src/iop/tonecurve.c:600 msgid "contrast - med (gamma 2.2)" msgstr "對比度中(伽瑪 2.2)" -#: ../src/iop/rgbcurve.c:239 ../src/iop/tonecurve.c:590 +#: ../src/iop/rgbcurve.c:241 ../src/iop/tonecurve.c:611 msgid "contrast - high (gamma 2.2)" msgstr "對比度高(伽瑪 2.2)" -#: ../src/iop/rgbcurve.c:252 ../src/iop/tonecurve.c:603 +#: ../src/iop/rgbcurve.c:254 ../src/iop/tonecurve.c:624 msgid "gamma 2.0" msgstr "伽瑪(gamma)2.0" -#: ../src/iop/rgbcurve.c:258 ../src/iop/tonecurve.c:609 +#: ../src/iop/rgbcurve.c:260 ../src/iop/tonecurve.c:630 msgid "gamma 0.5" msgstr "伽瑪(gamma)0.5" -#: ../src/iop/rgbcurve.c:263 ../src/iop/tonecurve.c:614 +#: ../src/iop/rgbcurve.c:265 ../src/iop/tonecurve.c:635 msgid "logarithm (base 2)" msgstr "對數(底數為 2)" -#: ../src/iop/rgbcurve.c:268 ../src/iop/tonecurve.c:619 +#: ../src/iop/rgbcurve.c:270 ../src/iop/tonecurve.c:640 msgid "exponential (base 2)" msgstr "指數(底數為2)" -#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:999 +#: ../src/iop/rgbcurve.c:1352 ../src/iop/rgblevels.c:1038 msgid "choose between linked and independent channels." msgstr "選擇一併調整全部色版,或是分開調整 R、G、B 色版" -#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1003 +#: ../src/iop/rgbcurve.c:1358 ../src/iop/rgblevels.c:1043 msgid "curve nodes for r channel" msgstr "紅色色版的色階控制點" -#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1004 +#: ../src/iop/rgbcurve.c:1359 ../src/iop/rgblevels.c:1044 msgid "curve nodes for g channel" msgstr "綠色色版的色階控制點" -#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1005 +#: ../src/iop/rgbcurve.c:1360 ../src/iop/rgblevels.c:1045 msgid "curve nodes for b channel" msgstr "藍色色版的色階控制點" @@ -19382,7 +20008,7 @@ msgid "rgb levels" msgstr "RGB 色階" -#: ../src/iop/rgblevels.c:122 +#: ../src/iop/rgblevels.c:124 msgid "adjust black, white and mid-gray points in RGB color space" msgstr "" "RGB 色階 | rgb levels\n" @@ -19391,11 +20017,11 @@ "此模組類似在 Lab 空間中運算的「色階」模組\n" "但是可依 R、G、B 色版獨立調整" -#: ../src/iop/rgblevels.c:1056 +#: ../src/iop/rgblevels.c:1112 msgid "auto region" msgstr "區域自動" -#: ../src/iop/rgblevels.c:1058 +#: ../src/iop/rgblevels.c:1115 msgid "" "apply auto levels based on a region defined by the user\n" "click and drag to draw the area\n" @@ -19409,7 +20035,7 @@ msgid "rotate pixels" msgstr "旋轉像素" -#: ../src/iop/rotatepixels.c:97 ../src/iop/scalepixels.c:82 +#: ../src/iop/rotatepixels.c:99 ../src/iop/scalepixels.c:84 msgid "" "internal module to setup technical specificities of raw sensor.\n" "\n" @@ -19419,11 +20045,11 @@ "在需要時模組會自動啟用,平時永遠保持關閉\n" "不需要調整參數,模組也不具備控制選項" -#: ../src/iop/rotatepixels.c:366 +#: ../src/iop/rotatepixels.c:381 msgid "automatic pixel rotation" msgstr "自動旋轉像素" -#: ../src/iop/rotatepixels.c:367 +#: ../src/iop/rotatepixels.c:382 msgid "" "automatic pixel rotation\n" "only works for the sensors that need it." @@ -19437,11 +20063,11 @@ msgid "scale pixels" msgstr "縮放像素" -#: ../src/iop/scalepixels.c:271 +#: ../src/iop/scalepixels.c:281 msgid "automatic pixel scaling" msgstr "自動縮放像素" -#: ../src/iop/scalepixels.c:272 +#: ../src/iop/scalepixels.c:282 msgid "" "automatic pixel scaling\n" "only works for the sensors that need it." @@ -19450,11 +20076,11 @@ "某些相機的感光元件像素為長方形而非正方形\n" "此模組僅適用於這種情況的影像失真校正" -#: ../src/iop/shadhi.c:175 +#: ../src/iop/shadhi.c:120 msgid "shadows and highlights" msgstr "亮部與暗部" -#: ../src/iop/shadhi.c:195 +#: ../src/iop/shadhi.c:142 msgid "" "modify the tonal range of the shadows and highlights\n" "of an image by enhancing local contrast." @@ -19465,36 +20091,36 @@ "此模組在 Lab 空間執行模糊可能導致光暈和色相藍移\n" "建議改用「階調等化器」模組" -#: ../src/iop/shadhi.c:676 ../src/iop/splittoning.c:548 +#: ../src/iop/shadhi.c:711 ../src/iop/splittoning.c:544 msgid "compress" msgstr "壓縮" -#: ../src/iop/shadhi.c:683 +#: ../src/iop/shadhi.c:718 msgid "correct shadows" msgstr "" "修正陰影\n" "正值讓暗部變亮,負值讓暗部更暗" -#: ../src/iop/shadhi.c:684 +#: ../src/iop/shadhi.c:719 msgid "correct highlights" msgstr "" "修正亮部\n" "正值讓亮部更亮,負值讓亮部變暗" -#: ../src/iop/shadhi.c:685 +#: ../src/iop/shadhi.c:720 msgid "shift white point" msgstr "" "移動白點\n" "一般情況下此模組不會影響黑白點,但某些情況下,影像最亮點可能超出範圍\n" "使用白點調整至負值可以校正這些錯誤,讓亮部中的細節恢復" -#: ../src/iop/shadhi.c:687 +#: ../src/iop/shadhi.c:722 msgid "filter to use for softening. bilateral avoids halos" msgstr "" "柔化使用的濾鏡\n" "如果高斯模糊產生光暈,改用雙邊濾波器" -#: ../src/iop/shadhi.c:688 +#: ../src/iop/shadhi.c:723 msgid "" "compress the effect on shadows/highlights and\n" "preserve mid-tones" @@ -19503,13 +20129,13 @@ "越高的值會把效果限制到極端的亮部和暗部區域\n" "100% 時代表沒有效果,因為只作用在絕對黑色和白色上" -#: ../src/iop/shadhi.c:689 +#: ../src/iop/shadhi.c:724 msgid "adjust saturation of shadows" msgstr "" "調整暗部的飽和度\n" "預設值 100% 模擬暗部接收更多光線後,變亮同時飽和度也會提升的自然效果" -#: ../src/iop/shadhi.c:690 +#: ../src/iop/shadhi.c:725 msgid "adjust saturation of highlights" msgstr "" "調整亮部的飽和度\n" @@ -19521,7 +20147,7 @@ msgid "sharpen" msgstr "銳利化" -#: ../src/iop/sharpen.c:93 +#: ../src/iop/sharpen.c:95 msgid "sharpen the details in the image using a standard UnSharp Mask (USM)" msgstr "" "銳利化 | sharpen\n" @@ -19531,47 +20157,47 @@ "可以改用「對比度等化器」和「局部對比度」等進階的模組\n" "或是「漫射或反捲積銳化」模組以真正提高銳利度" -#: ../src/iop/sharpen.c:95 +#: ../src/iop/sharpen.c:97 msgid "linear or non-linear, Lab, display or scene-referred" msgstr "線性或非線性、Lab、場景或顯示參照" -#: ../src/iop/sharpen.c:97 +#: ../src/iop/sharpen.c:99 msgid "quasi-linear, Lab, display or scene-referred" msgstr "類線性、Lab、場景或顯示參照" #. add the preset. #. restrict to raw images -#: ../src/iop/sharpen.c:104 ../src/iop/sharpen.c:108 +#: ../src/iop/sharpen.c:106 ../src/iop/sharpen.c:110 msgid "sharpen" msgstr "銳化化" -#: ../src/iop/sharpen.c:443 +#: ../src/iop/sharpen.c:438 msgid "spatial extent of the unblurring" msgstr "" "銳利化的尺寸\n" "控制邊緣對比度提升的範圍大小,過高的值會導致難看的過度銳化" -#: ../src/iop/sharpen.c:447 +#: ../src/iop/sharpen.c:442 msgid "strength of the sharpen" msgstr "" "銳利化的強度\n" "控制邊緣對比度提升的程度,過高的值會產生光暈偽影" -#: ../src/iop/sharpen.c:451 +#: ../src/iop/sharpen.c:446 msgid "threshold to activate sharpen" msgstr "" "銳利化的門檻\n" "高於此對比度才會被視為細節邊緣,調高數值可以避免雜訊或斑點被放大" -#: ../src/iop/sigmoid.c:89 +#: ../src/iop/sigmoid.c:195 msgid "sigmoid" msgstr "S 形曲線階調映射" -#: ../src/iop/sigmoid.c:94 +#: ../src/iop/sigmoid.c:200 msgid "tone mapping|view transform|display transform" msgstr "階調映射|亮度映射|tone mapping|view transform|display transform" -#: ../src/iop/sigmoid.c:99 +#: ../src/iop/sigmoid.c:206 msgid "" "apply a view transform to make a image displayable\n" "on a screen or print. uses a robust and smooth\n" @@ -19583,19 +20209,19 @@ "將完整的場景動態範圍壓縮至螢幕或輸出範圍內\n" "映射曲線平滑且穩定,操作較「電影式階調映射」簡單" -#: ../src/iop/sigmoid.c:155 +#: ../src/iop/sigmoid.c:258 msgid "neutral gray" msgstr "中性灰" -#: ../src/iop/sigmoid.c:160 +#: ../src/iop/sigmoid.c:264 msgid "ACES 100-nit like" msgstr "模擬 ACES 亮度 100 尼特" -#: ../src/iop/sigmoid.c:165 +#: ../src/iop/sigmoid.c:270 msgid "Reinhard" msgstr "萊茵哈德" -#: ../src/iop/sigmoid.c:683 +#: ../src/iop/sigmoid.c:917 msgid "" "compression of the applied curve\n" "implicitly defines the supported input dynamic range" @@ -19603,7 +20229,7 @@ "曲線的壓縮程度\n" "也隱含控制輸入的動態範圍限制" -#: ../src/iop/sigmoid.c:686 +#: ../src/iop/sigmoid.c:920 msgid "" "shift the compression towards shadows or highlights.\n" "negative values increase contrast in shadows.\n" @@ -19615,21 +20241,61 @@ "正值強調高光的對比度\n" "數值調動偏向一端時,另一端的對比度會相對降低" -#: ../src/iop/sigmoid.c:695 +#: ../src/iop/sigmoid.c:929 msgid "" "optional correction of the hue twist introduced by\n" "the per-channel processing method." msgstr "額外校正因個別色版的色彩處理方法引起的色調偏移" -#: ../src/iop/sigmoid.c:702 +#: ../src/iop/sigmoid.c:936 ../src/iop/sigmoid.c:940 +msgid "primaries" +msgstr "原色" + +#: ../src/iop/sigmoid.c:937 +msgid "set custom primaries" +msgstr "自訂原色" + +#: ../src/iop/sigmoid.c:943 +msgid "primaries to use as the base for below adjustments" +msgstr "下方調整所依據的原色" + +#: ../src/iop/sigmoid.c:962 +msgid "attenuate the purity of the red primary" +msgstr "降低紅色原色的純度" + +#: ../src/iop/sigmoid.c:963 +msgid "rotate the red primary" +msgstr "旋轉紅原色色相" + +#: ../src/iop/sigmoid.c:964 +msgid "attenuate the purity of the green primary" +msgstr "降低綠色原色的純度" + +#: ../src/iop/sigmoid.c:965 +msgid "rotate the green primary" +msgstr "旋轉綠原色色相" + +#: ../src/iop/sigmoid.c:966 +msgid "attenuate the purity of the blue primary" +msgstr "降低藍色原色的純度" + +#: ../src/iop/sigmoid.c:967 +msgid "rotate the blue primary" +msgstr "旋轉藍原色色相" + +#: ../src/iop/sigmoid.c:974 +msgid "recover some of the original purity after the inset" +msgstr "恢復部分插入後的顏色純度" + +#: ../src/iop/sigmoid.c:978 msgid "display luminance" msgstr "螢幕亮度" -#: ../src/iop/sigmoid.c:706 +#: ../src/iop/sigmoid.c:979 msgid "set display black/white targets" msgstr "設定螢幕黑白點" -#: ../src/iop/sigmoid.c:714 +#: ../src/iop/sigmoid.c:987 msgid "" "the black luminance of the target display or print.\n" "can be used creatively for a faded look." @@ -19637,7 +20303,7 @@ "控制亮度映射後的黑點,通常不需要調整此值\n" "可將數值調高創造褪色的復古感" -#: ../src/iop/sigmoid.c:719 +#: ../src/iop/sigmoid.c:992 msgid "" "the white luminance of the target display or print.\n" "can be used creatively for a faded look or blowing out whites earlier." @@ -19649,7 +20315,7 @@ msgid "soften" msgstr "柔焦" -#: ../src/iop/soften.c:100 +#: ../src/iop/soften.c:102 msgid "create a softened image using the Orton effect" msgstr "" "柔焦 | soften\n" @@ -19657,19 +20323,19 @@ "使用 Orton 效果建立夢幻朦朧的柔和影像\n" "原理是把增加曝光的影像副本模糊化,再疊合回原始影像上" -#: ../src/iop/soften.c:371 +#: ../src/iop/soften.c:366 msgid "the size of blur" msgstr "增加曝光影像副本的模糊尺寸,尺寸越大效果越柔和" -#: ../src/iop/soften.c:375 +#: ../src/iop/soften.c:370 msgid "the saturation of blur" msgstr "增加曝光影像副本的飽和度,100% 表示不變" -#: ../src/iop/soften.c:379 +#: ../src/iop/soften.c:374 msgid "the brightness of blur" msgstr "增加曝光影像副本的亮度,數值越高物體會有發光似的效果" -#: ../src/iop/soften.c:383 +#: ../src/iop/soften.c:378 msgid "the mix of effect" msgstr "過曝副本和原始影像的混合比例,數值越高效果越強烈" @@ -19677,7 +20343,7 @@ msgid "split-toning" msgstr "色調分割" -#: ../src/iop/splittoning.c:101 +#: ../src/iop/splittoning.c:103 msgid "" "use two specific colors for shadows and highlights and\n" "create a linear toning effect between them up to a pivot." @@ -19688,49 +20354,49 @@ "並建立兩色之間線性漸層的色調效果\n" "要製作電影調色效果建議使用進階的「色彩平衡 RGB」模組" -#: ../src/iop/splittoning.c:118 +#: ../src/iop/splittoning.c:120 msgid "authentic sepia" msgstr "棕色調" -#: ../src/iop/splittoning.c:127 +#: ../src/iop/splittoning.c:129 msgid "authentic cyanotype" msgstr "氰版" -#: ../src/iop/splittoning.c:136 +#: ../src/iop/splittoning.c:138 msgid "authentic platinotype" msgstr "白金印樣" -#: ../src/iop/splittoning.c:145 +#: ../src/iop/splittoning.c:147 msgid "chocolate brown" msgstr "巧克力棕色調" -#: ../src/iop/splittoning.c:490 +#: ../src/iop/splittoning.c:486 msgid "select the saturation tone" msgstr "調整飽和度" -#: ../src/iop/splittoning.c:494 +#: ../src/iop/splittoning.c:490 msgid "select tone color" msgstr "選擇顏色" -#: ../src/iop/splittoning.c:524 +#: ../src/iop/splittoning.c:520 msgctxt "section" msgid "shadows" msgstr "暗部" -#: ../src/iop/splittoning.c:530 +#: ../src/iop/splittoning.c:526 msgctxt "section" msgid "highlights" msgstr "亮部" -#: ../src/iop/splittoning.c:539 +#: ../src/iop/splittoning.c:535 msgid "balance" msgstr "平衡" -#: ../src/iop/splittoning.c:546 +#: ../src/iop/splittoning.c:542 msgid "the balance of center of split-toning" msgstr "亮暗部色調的比例" -#: ../src/iop/splittoning.c:550 +#: ../src/iop/splittoning.c:546 msgid "" "compress the effect on highlights/shadows and\n" "preserve mid-tones" @@ -19754,15 +20420,15 @@ msgid "geometric, raw" msgstr "幾何、RAW" -#: ../src/iop/spots.c:226 +#: ../src/iop/spots.c:238 msgid "spot module is limited to 64 shapes. please add a new instance!" msgstr "「髒點去除」模組只能使用 64 個形狀,要清除更多區域請增加另一個模組實例" -#: ../src/iop/spots.c:872 +#: ../src/iop/spots.c:874 msgid "number of strokes:" msgstr "筆刷數量:" -#: ../src/iop/spots.c:876 +#: ../src/iop/spots.c:878 msgid "" "click on a shape and drag on canvas.\n" "use the mouse wheel to adjust size.\n" @@ -19772,16 +20438,16 @@ "使用滑鼠滾動調整大小\n" "點擊右鍵刪除形狀" -#: ../src/iop/spots.c:879 +#: ../src/iop/spots.c:881 msgid "show and edit shapes" msgstr "顯示和編輯形狀" -#: ../src/iop/temperature.c:204 +#: ../src/iop/temperature.c:212 msgctxt "modulename" msgid "white balance" msgstr "白平衡" -#: ../src/iop/temperature.c:211 +#: ../src/iop/temperature.c:219 msgid "scale raw RGB channels to balance white and help demosaicing" msgstr "" "白平衡 | white balance\n" @@ -19790,114 +20456,103 @@ "此模組背後以整體縮放原始 RGB 色版的方式運算\n" "「色彩校正」模組用更現代的色彩適應算法調整顏色" -#: ../src/iop/temperature.c:1149 -msgid "white balance applied twice" -msgstr "白平衡被重複套用兩次" - -#: ../src/iop/temperature.c:1150 -msgid "" -"the color calibration module is enabled,\n" -"and performing chromatic adaptation.\n" -"set the white balance here to camera reference (D65)\n" -"or disable chromatic adaptation in color calibration." -msgstr "" -"「色彩校正」模組已啟用,並執行色彩適應\n" -"白平衡應設定為相機基準白點\n" -"或在「色彩校正」中停用色彩適應" - -#: ../src/iop/temperature.c:1430 +#: ../src/iop/temperature.c:1388 #, c-format msgid "`%s' color matrix not found for image" msgstr "找不到影像「%s」的色彩矩陣" -#: ../src/iop/temperature.c:1459 +#: ../src/iop/temperature.c:1418 #, c-format msgid "failed to read camera white balance information from `%s'!" msgstr "無法從「%s」讀取相機白平衡資訊" -#: ../src/iop/temperature.c:1631 +#: ../src/iop/temperature.c:1612 msgctxt "white balance" msgid "as shot" msgstr "拍攝時的設定" #. old "spot", reason: describes exactly what'll happen -#: ../src/iop/temperature.c:1634 +#: ../src/iop/temperature.c:1615 msgctxt "white balance" msgid "from image area" msgstr "從影像範圍分析" -#: ../src/iop/temperature.c:1635 +#: ../src/iop/temperature.c:1616 msgctxt "white balance" msgid "user modified" msgstr "使用者自訂" #. old "camera neutral", reason: better matches intent -#: ../src/iop/temperature.c:1637 +#: ../src/iop/temperature.c:1618 msgctxt "white balance" msgid "camera reference" msgstr "相機基準白點" -#: ../src/iop/temperature.c:1920 ../src/iop/temperature.c:1938 +#: ../src/iop/temperature.c:1897 ../src/iop/temperature.c:1915 msgid "green channel coefficient" msgstr "綠色色版係數" -#: ../src/iop/temperature.c:1922 +#: ../src/iop/temperature.c:1899 msgid "magenta channel coefficient" msgstr "洋紅色色版係數" -#: ../src/iop/temperature.c:1924 +#: ../src/iop/temperature.c:1901 msgid "cyan channel coefficient" msgstr "青色色版係數" -#: ../src/iop/temperature.c:1926 +#: ../src/iop/temperature.c:1903 msgid "yellow channel coefficient" msgstr "黃色色版係數" -#: ../src/iop/temperature.c:1936 +#: ../src/iop/temperature.c:1913 msgid "red channel coefficient" msgstr "紅色色版係數" -#: ../src/iop/temperature.c:1940 +#: ../src/iop/temperature.c:1917 msgid "blue channel coefficient" msgstr "藍色色版係數" -#: ../src/iop/temperature.c:1942 +#: ../src/iop/temperature.c:1918 +msgid "emerald" +msgstr "祖母綠" + +#: ../src/iop/temperature.c:1919 msgid "emerald channel coefficient" msgstr "祖母綠色版係數" #. relabel to settings to remove confusion between module presets #. and white balance settings -#: ../src/iop/temperature.c:2029 ../src/iop/temperature.c:2042 -#: ../src/iop/temperature.c:2049 ../src/iop/temperature.c:2055 -#: ../src/iop/temperature.c:2074 +#: ../src/iop/temperature.c:1997 ../src/iop/temperature.c:2010 +#: ../src/iop/temperature.c:2017 ../src/iop/temperature.c:2023 +#: ../src/iop/temperature.c:2042 msgid "settings" msgstr "設定" -#: ../src/iop/temperature.c:2029 +#: ../src/iop/temperature.c:1997 msgid "as shot" msgstr "拍攝時的設定" -#: ../src/iop/temperature.c:2032 +#: ../src/iop/temperature.c:2000 msgid "set white balance to as shot" msgstr "將白平衡設為拍攝時的設定" -#: ../src/iop/temperature.c:2042 +#: ../src/iop/temperature.c:2010 msgid "from image area" msgstr "從影像區域" -#: ../src/iop/temperature.c:2049 +#: ../src/iop/temperature.c:2017 msgid "user modified" msgstr "使用者自訂" -#: ../src/iop/temperature.c:2052 +#: ../src/iop/temperature.c:2020 msgid "set white balance to user modified" msgstr "將白平衡設為使用者自訂" -#: ../src/iop/temperature.c:2055 +#: ../src/iop/temperature.c:2023 msgid "camera reference" msgstr "相機基準白點" -#: ../src/iop/temperature.c:2060 +#: ../src/iop/temperature.c:2028 msgid "" "set white balance to camera reference point\n" "in most cases it should be D65" @@ -19905,58 +20560,62 @@ "將白平衡設為相機原始基準白點\n" "絕大多數相機廠商都使用 D65 光源" -#: ../src/iop/temperature.c:2075 +#: ../src/iop/temperature.c:2043 msgid "choose white balance setting" msgstr "選擇白平衡設定方式" -#: ../src/iop/temperature.c:2080 +#: ../src/iop/temperature.c:2048 msgid "finetune" msgstr "微調" -#: ../src/iop/temperature.c:2082 +#: ../src/iop/temperature.c:2050 msgid "fine tune camera's white balance setting" msgstr "微調相機的白平衡設定" -#: ../src/iop/temperature.c:2093 +#: ../src/iop/temperature.c:2058 msgctxt "section" msgid "scene illuminant temp" msgstr "場景光源色溫" -#: ../src/iop/temperature.c:2094 +#: ../src/iop/temperature.c:2059 msgid "click to cycle color mode on sliders" msgstr "" "點擊可循環切換滑桿色彩顯示方式\n" "沒有顏色 → 光源顏色 → 效果模擬" -#: ../src/iop/temperature.c:2108 +#: ../src/iop/temperature.c:2073 msgid "color temperature (in Kelvin)" msgstr "" "以凱氏溫標(K)設定色溫\n" "數值越大影像越黃,數值越小影像越藍" -#: ../src/iop/temperature.c:2114 +#: ../src/iop/temperature.c:2079 msgid "tint" msgstr "色調" -#: ../src/iop/temperature.c:2117 +#: ../src/iop/temperature.c:2082 msgid "color tint of the image, from magenta (value < 1) to green (value > 1)" msgstr "" "調整色調偏移\n" "數值小於 1 偏向洋紅色,大於 1 偏向綠色" -#: ../src/iop/temperature.c:2123 +#: ../src/iop/temperature.c:2088 msgid "channel coefficients" msgstr "直接調整色版縮放係數" -#: ../src/iop/temperature.c:2158 +#: ../src/iop/temperature.c:2097 +msgid "various" +msgstr "多個" + +#: ../src/iop/temperature.c:2123 msgid "white balance disabled for camera" msgstr "相機白平衡已關閉" -#: ../src/iop/tonecurve.c:190 +#: ../src/iop/tonecurve.c:161 msgid "tone curve" msgstr "階調曲線" -#: ../src/iop/tonecurve.c:210 +#: ../src/iop/tonecurve.c:183 msgid "alter an image’s tones using curves" msgstr "" "階調曲線 | tone curve\n" @@ -19965,7 +20624,7 @@ "移動曲線的兩側端點可變更黑白點,用以取代「色階」模組\n" "此模組在 CIELAB 空間中運算,可分別調整 a* b* 色版" -#: ../src/iop/tonecurve.c:1125 +#: ../src/iop/tonecurve.c:1147 msgid "" "if set to auto, a and b curves have no effect and are not displayed. chroma " "values (a and b) of each pixel are then adjusted based on L curve data. auto " @@ -19993,32 +20652,32 @@ "所以座標中央永遠代表 50% 中間調以符合感知\n" "實際套用曲線運算時才會把控制點轉換至所選的色彩空間,包括 XYZ 和 RGB 空間" -#: ../src/iop/tonecurve.c:1134 +#: ../src/iop/tonecurve.c:1156 msgid "tonecurve for L channel" msgstr "L* 色版的曲線" -#: ../src/iop/tonecurve.c:1135 +#: ../src/iop/tonecurve.c:1157 msgid "tonecurve for a channel" msgstr "a* 色版的曲線" -#: ../src/iop/tonecurve.c:1136 +#: ../src/iop/tonecurve.c:1158 msgid "tonecurve for b channel" msgstr "b* 色版的曲線" -#: ../src/iop/tonecurve.c:1143 ../src/iop/watermark.c:1305 -#: ../src/libs/colorpicker.c:597 +#: ../src/iop/tonecurve.c:1165 ../src/iop/watermark.c:1353 +#: ../src/libs/colorpicker.c:675 msgid "pick color" msgstr "選取色彩" -#: ../src/iop/toneequal.c:311 +#: ../src/iop/toneequal.c:319 msgid "tone equalizer" msgstr "階調等化器" -#: ../src/iop/toneequal.c:316 +#: ../src/iop/toneequal.c:324 msgid "tone curve|tone mapping|relight|background light|shadows highlights" msgstr "色調曲線|色調映射|亮部|暗部|遮罩|masking" -#: ../src/iop/toneequal.c:323 +#: ../src/iop/toneequal.c:331 msgid "relight the scene as if the lighting was done directly on the scene" msgstr "" "階調等化器 | tone equalizer\n" @@ -20027,89 +20686,81 @@ "利用可自訂的階調遮罩分離影像的不同階調區域\n" "與「RGB 曲線」模組最大差異在於遮罩的模糊設定有助於保持局部對比" -#: ../src/iop/toneequal.c:326 +#: ../src/iop/toneequal.c:334 msgid "quasi-linear, RGB" msgstr "類線性、RGB" -#: ../src/iop/toneequal.c:327 +#: ../src/iop/toneequal.c:335 msgid "quasi-linear, RGB, scene-referred" msgstr "類線性、RGB、場景參照" -#: ../src/iop/toneequal.c:458 +#: ../src/iop/toneequal.c:489 msgid "simple tone curve" msgstr "簡易階調曲線" -#: ../src/iop/toneequal.c:472 +#: ../src/iop/toneequal.c:503 msgid "mask blending: all purposes" msgstr "通用遮罩設定" -#: ../src/iop/toneequal.c:479 +#: ../src/iop/toneequal.c:510 msgid "mask blending: people with backlight" msgstr "逆光人像遮罩" -#: ../src/iop/toneequal.c:496 +#: ../src/iop/toneequal.c:527 msgid "compress shadows/highlights (EIGF): strong" msgstr "階調壓縮:強(引導濾波器)" -#: ../src/iop/toneequal.c:501 +#: ../src/iop/toneequal.c:532 msgid "compress shadows/highlights (GF): strong" msgstr "階調壓縮:強(引導濾波器)" -#: ../src/iop/toneequal.c:510 +#: ../src/iop/toneequal.c:541 msgid "compress shadows/highlights (EIGF): medium" msgstr "階調壓縮:中(引導濾波器)" -#: ../src/iop/toneequal.c:515 +#: ../src/iop/toneequal.c:546 msgid "compress shadows/highlights (GF): medium" msgstr "階調壓縮:中(引導濾波器)" -#: ../src/iop/toneequal.c:524 +#: ../src/iop/toneequal.c:555 msgid "compress shadows/highlights (EIGF): soft" msgstr "階調壓縮:弱(引導濾波器)" -#: ../src/iop/toneequal.c:529 +#: ../src/iop/toneequal.c:560 msgid "compress shadows/highlights (GF): soft" msgstr "階調壓縮:弱(引導濾波器)" -#: ../src/iop/toneequal.c:537 +#: ../src/iop/toneequal.c:568 msgid "contrast tone curve: soft" msgstr "增加對比:弱" -#: ../src/iop/toneequal.c:542 +#: ../src/iop/toneequal.c:573 msgid "contrast tone curve: medium" msgstr "增加對比:中" -#: ../src/iop/toneequal.c:547 +#: ../src/iop/toneequal.c:578 msgid "contrast tone curve: strong" msgstr "增加對比:強" -#: ../src/iop/toneequal.c:570 +#: ../src/iop/toneequal.c:601 msgid "relight: fill-in" msgstr "重新補光" -#: ../src/iop/toneequal.c:627 -msgid "" -"tone equalizer needs to be after distortion modules in the pipeline – " -"disabled" -msgstr "" -"⚠️ 錯誤 ⚠️\n" -"「階調等化器」模組必須在變形模組之後執行,已自動停用" - -#: ../src/iop/toneequal.c:1091 +#: ../src/iop/toneequal.c:1120 msgid "tone equalizer failed to allocate memory, check your RAM settings" msgstr "" "⚠️ 錯誤 ⚠️\n" "「色調等化器」無法分配記憶體,請檢查記憶體設定" -#: ../src/iop/toneequal.c:1795 ../src/iop/toneequal.c:2180 +#: ../src/iop/toneequal.c:1825 ../src/iop/toneequal.c:2196 msgid "the interpolation is unstable, decrease the curve smoothing" msgstr "曲線內插不穩定,降低曲線平滑度設定" -#: ../src/iop/toneequal.c:1830 ../src/iop/toneequal.c:1897 +#: ../src/iop/toneequal.c:1860 ../src/iop/toneequal.c:1927 msgid "wait for the preview to finish recomputing" msgstr "等待預覽以完成重新計算" -#: ../src/iop/toneequal.c:2037 ../src/iop/toneequal.c:2587 +#: ../src/iop/toneequal.c:2069 ../src/iop/toneequal.c:2628 msgid "" "scroll over image to change tone exposure\n" "shift+scroll for large steps; ctrl+scroll for small steps" @@ -20117,81 +20768,81 @@ "滑鼠位置顯示該區階調,使用滾輪直接調整階調\n" "ctrl + 滾輪微調,shift + 滾輪大幅度調整,a + 滾輪回復縮放預覽比例" -#: ../src/iop/toneequal.c:2185 +#: ../src/iop/toneequal.c:2201 msgid "some parameters are out-of-bounds" msgstr "部分參數設定超出範圍" -#: ../src/iop/toneequal.c:2524 +#: ../src/iop/toneequal.c:2518 #, c-format msgid "%+.1f EV" msgstr "%+.1f EV" -#: ../src/iop/toneequal.c:3236 +#: ../src/iop/toneequal.c:3283 #, c-format msgid "[%s over image] change tone exposure" msgstr "%s 在影像上調整階調" -#: ../src/iop/toneequal.c:3239 +#: ../src/iop/toneequal.c:3286 #, c-format msgid "[%s over image] change tone exposure in large steps" msgstr "[影像 %s] 大幅度調整階調" -#: ../src/iop/toneequal.c:3242 +#: ../src/iop/toneequal.c:3289 #, c-format msgid "[%s over image] change tone exposure in small steps" msgstr "[影像 %s] 小幅微調階調" #. Simple view -#: ../src/iop/toneequal.c:3323 ../src/iop/toneequal.c:3352 -#: ../src/iop/toneequal.c:3353 ../src/iop/toneequal.c:3354 -#: ../src/iop/toneequal.c:3355 ../src/iop/toneequal.c:3356 -#: ../src/iop/toneequal.c:3357 ../src/iop/toneequal.c:3358 -#: ../src/iop/toneequal.c:3359 ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3376 ../src/iop/toneequal.c:3405 +#: ../src/iop/toneequal.c:3406 ../src/iop/toneequal.c:3407 +#: ../src/iop/toneequal.c:3408 ../src/iop/toneequal.c:3409 +#: ../src/iop/toneequal.c:3410 ../src/iop/toneequal.c:3411 +#: ../src/iop/toneequal.c:3412 ../src/iop/toneequal.c:3413 msgid "simple" msgstr "簡易" -#: ../src/iop/toneequal.c:3352 +#: ../src/iop/toneequal.c:3405 msgid "-8 EV" msgstr "-8 EV" -#: ../src/iop/toneequal.c:3353 +#: ../src/iop/toneequal.c:3406 msgid "-7 EV" msgstr "-7 EV" -#: ../src/iop/toneequal.c:3354 +#: ../src/iop/toneequal.c:3407 msgid "-6 EV" msgstr "-6 EV" -#: ../src/iop/toneequal.c:3355 +#: ../src/iop/toneequal.c:3408 msgid "-5 EV" msgstr "-5 EV" -#: ../src/iop/toneequal.c:3356 +#: ../src/iop/toneequal.c:3409 msgid "-4 EV" msgstr "-4 EV" -#: ../src/iop/toneequal.c:3357 +#: ../src/iop/toneequal.c:3410 msgid "-3 EV" msgstr "-3 EV" -#: ../src/iop/toneequal.c:3358 +#: ../src/iop/toneequal.c:3411 msgid "-2 EV" msgstr "-2 EV" -#: ../src/iop/toneequal.c:3359 +#: ../src/iop/toneequal.c:3412 msgid "-1 EV" msgstr "-1 EV" -#: ../src/iop/toneequal.c:3360 +#: ../src/iop/toneequal.c:3413 msgid "+0 EV" msgstr "+0 EV" #. Advanced view -#: ../src/iop/toneequal.c:3364 +#: ../src/iop/toneequal.c:3417 msgid "advanced" msgstr "進階" -#: ../src/iop/toneequal.c:3391 +#: ../src/iop/toneequal.c:3444 msgid "double-click to reset the curve" msgstr "" "進階功能控制和簡易模式相同,但以真實的控制曲線顯示\n" @@ -20203,11 +20854,11 @@ "\n" "雙擊可重設曲線" -#: ../src/iop/toneequal.c:3395 +#: ../src/iop/toneequal.c:3448 msgid "curve smoothing" msgstr "曲線平滑化" -#: ../src/iop/toneequal.c:3398 +#: ../src/iop/toneequal.c:3451 msgid "" "positive values will produce more progressive tone transitions\n" "but the curve might become oscillatory in some settings.\n" @@ -20219,11 +20870,11 @@ "降低數值讓曲線更平順,但可能影響局部對比度" #. Masking options -#: ../src/iop/toneequal.c:3408 +#: ../src/iop/toneequal.c:3461 msgid "masking" msgstr "階調遮罩" -#: ../src/iop/toneequal.c:3413 +#: ../src/iop/toneequal.c:3466 msgid "" "preview the mask and chose the estimator that gives you the\n" "higher contrast between areas to dodge and areas to burn" @@ -20231,15 +20882,15 @@ "製作階調遮罩時估計像素 RGB 值亮度的方法\n" "可開啟下方「顯示階調遮罩」選擇需要調整階調的區域分離度較好的方法" -#: ../src/iop/toneequal.c:3416 +#: ../src/iop/toneequal.c:3469 msgid "details" msgstr "細節" -#: ../src/iop/toneequal.c:3417 +#: ../src/iop/toneequal.c:3470 msgid "preserve details" msgstr "保留細節" -#: ../src/iop/toneequal.c:3420 +#: ../src/iop/toneequal.c:3473 msgid "" "'no' affects global and local contrast (safe if you only add contrast)\n" "'guided filter' only affects global contrast and tries to preserve local " @@ -20273,7 +20924,7 @@ "將無關曝光的導引濾波器和不模糊遮罩的結果平均\n" "可以快速降低階調遮罩的模糊程度" -#: ../src/iop/toneequal.c:3433 +#: ../src/iop/toneequal.c:3486 msgid "" "number of passes of guided filter to apply\n" "helps diffusing the edges of the filter at the expense of speed" @@ -20283,7 +20934,7 @@ "調高至 2 會把階調遮罩作為中間遮罩,在其上再計算一次生成要使用的遮罩\n" "越高的參數運算越多次,會將模糊範圍向外擴散,執行速度也會顯著降低" -#: ../src/iop/toneequal.c:3441 +#: ../src/iop/toneequal.c:3494 msgid "" "diameter of the blur in percent of the largest image size\n" "warning: big values of this parameter can make the darkroom\n" @@ -20294,7 +20945,7 @@ "無關曝光的導引濾波器建議參數為 1-10%\n" "傳統導引濾波器建議參數大約 1-25%" -#: ../src/iop/toneequal.c:3449 +#: ../src/iop/toneequal.c:3502 msgid "" "precision of the feathering:\n" "higher values force the mask to follow edges more closely\n" @@ -20306,12 +20957,12 @@ "較高的值會強制遮罩更緊密地跟隨邊緣,過高可能會讓模糊效果不明顯\n" "較低的值可提供更平滑的漸變效果,過低會導致邊緣產生光暈" -#: ../src/iop/toneequal.c:3456 +#: ../src/iop/toneequal.c:3509 msgctxt "section" msgid "mask post-processing" msgstr "階調遮罩調整" -#: ../src/iop/toneequal.c:3467 +#: ../src/iop/toneequal.c:3520 msgid "" "mask histogram span between the first and last deciles.\n" "the central line shows the average. orange bars appear at extrema if " @@ -20322,7 +20973,7 @@ "調整以下參數讓灰色範圍居中並左右延展至接近邊界,以獲得最好的階調分區控制\n" "如果左右邊緣出現橘色,代表階調遮罩超過範圍,需要調整進一步調整" -#: ../src/iop/toneequal.c:3475 +#: ../src/iop/toneequal.c:3528 msgid "" "0 disables the quantization.\n" "higher values posterize the luminance mask to help the guiding\n" @@ -20332,7 +20983,7 @@ "0 代表沒有量化處理,較高的值能對高羽化的遮罩生成分段平滑區域\n" "在某些情況下,這可能有助於將影像分離為不同的階調區域" -#: ../src/iop/toneequal.c:3484 +#: ../src/iop/toneequal.c:3537 msgid "" "use this to slide the mask average exposure along channels\n" "for a better control of the exposure correction with the available nodes.\n" @@ -20342,7 +20993,7 @@ "原理是透過調整遮罩色版的曝光度,使中間值居中獲得更好的階調控制位置\n" "使用右側的魔術棒工具自動偵測,以此作為設定起點" -#: ../src/iop/toneequal.c:3497 +#: ../src/iop/toneequal.c:3550 msgid "" "use this to counter the averaging effect of the guided filter\n" "and dilate the mask contrast around -4EV\n" @@ -20354,7 +21005,7 @@ "原理是透過調整遮罩色版的對比度,使直方圖分布在整個範圍獲得更好的階調控制\n" "使用右側的魔術棒工具自動偵測,以此作為設定起點" -#: ../src/iop/toneequal.c:3520 ../src/iop/toneequal.c:3523 +#: ../src/iop/toneequal.c:3573 ../src/iop/toneequal.c:3576 msgid "display exposure mask" msgstr "顯示階調遮罩" @@ -20368,11 +21019,11 @@ "module instead." msgstr "此模組已被汰除,建議使用「局部對比度」或「階調等化器」模組替代" -#: ../src/iop/velvia.c:79 +#: ../src/iop/velvia.c:70 msgid "velvia" msgstr "Velvia 正片" -#: ../src/iop/velvia.c:104 +#: ../src/iop/velvia.c:97 msgid "" "resaturate giving more weight to blacks, whites and low-saturation pixels" msgstr "" @@ -20382,11 +21033,11 @@ "以富士的經典正片 Velvia 命名\n" "效果非常強烈,可能會造成難以控管的色彩變化" -#: ../src/iop/velvia.c:281 +#: ../src/iop/velvia.c:290 msgid "the strength of saturation boost" msgstr "飽和度提升的強度" -#: ../src/iop/velvia.c:284 +#: ../src/iop/velvia.c:293 msgid "how much to spare highlights and shadows" msgstr "" "減少對中間調的影響以避開膚色,降低不自然的皮膚曬傷效果\n" @@ -20398,21 +21049,17 @@ "balance rgb module instead." msgstr "此模組已被汰除,建議使用「色彩平衡 RGB」模組中的自然飽和度替代" -#: ../src/iop/vibrance.c:93 +#: ../src/iop/vibrance.c:95 msgid "" "saturate and reduce the lightness of the most saturated pixels\n" "to make the colors more vivid." msgstr "增加飽和度,同時降低高飽和度色彩的亮度,讓顏色更加生動" -#: ../src/iop/vibrance.c:217 +#: ../src/iop/vibrance.c:211 msgid "the amount of vibrance" msgstr "自然飽和度的強度" -#: ../src/iop/vignette.c:153 -msgid "vignetting" -msgstr "暗角" - -#: ../src/iop/vignette.c:158 +#: ../src/iop/vignette.c:119 msgid "simulate a lens fall-off close to edges" msgstr "" "暗角 | vignetting\n" @@ -20421,50 +21068,50 @@ "暗角範圍可以使用滑鼠在影像上視覺化地拖動修改\n" "也可以使用「曝光」模組和圓形遮罩達到類似的效果" -#: ../src/iop/vignette.c:940 +#: ../src/iop/vignette.c:1022 msgid "lomo" msgstr "lomo 玩具相機" -#: ../src/iop/vignette.c:974 +#: ../src/iop/vignette.c:1061 msgctxt "section" msgid "position / form" msgstr "位置 / 形狀" -#: ../src/iop/vignette.c:981 +#: ../src/iop/vignette.c:1069 msgid "dithering" msgstr "遞色" -#: ../src/iop/vignette.c:992 +#: ../src/iop/vignette.c:1081 msgid "the radii scale of vignette for start of fall-off" msgstr "" "亮度開始衰減前的區域大小,範圍內保持亮度不變\n" "數值是相對於影像長邊的比例" -#: ../src/iop/vignette.c:993 +#: ../src/iop/vignette.c:1083 msgid "the radii scale of vignette for end of fall-off" msgstr "" "亮度衰減的漸變區域,範圍外亮度降至下項設定\n" "數值是相對於影像長邊的比例" -#: ../src/iop/vignette.c:994 +#: ../src/iop/vignette.c:1084 msgid "strength of effect on brightness" msgstr "" "暗角效果的強度\n" "數值越低越暗,但也可以使用正值反向變亮" -#: ../src/iop/vignette.c:995 +#: ../src/iop/vignette.c:1085 msgid "strength of effect on saturation" msgstr "控制暗角區域的飽和度" -#: ../src/iop/vignette.c:996 +#: ../src/iop/vignette.c:1086 msgid "horizontal offset of center of the effect" msgstr "暗角中心點的水平位置" -#: ../src/iop/vignette.c:997 +#: ../src/iop/vignette.c:1087 msgid "vertical offset of center of the effect" msgstr "暗角中心點的垂直位置" -#: ../src/iop/vignette.c:998 +#: ../src/iop/vignette.c:1090 msgid "" "shape factor\n" "0 produces a rectangle\n" @@ -20475,40 +21122,40 @@ "數值越小越外凸,形狀趨近方形\n" "數值越大月內凹,形狀偏向十字形" -#: ../src/iop/vignette.c:1000 +#: ../src/iop/vignette.c:1094 msgid "enable to have the ratio automatically follow the image size" msgstr "自動調整暗角形狀的長寬比和影像相同" -#: ../src/iop/vignette.c:1001 +#: ../src/iop/vignette.c:1095 msgid "width-to-height ratio" msgstr "手動調整暗角形狀的寬高比例" -#: ../src/iop/vignette.c:1002 +#: ../src/iop/vignette.c:1097 msgid "add some level of random noise to prevent banding" msgstr "" "以色彩抖動方法添加隨機雜訊以降低斷階問題\n" "也可以改用「遞色」模組來處理整個影像" -#: ../src/iop/vignette.c:1009 +#: ../src/iop/vignette.c:1105 #, c-format msgid "[%s on node] change vignette/feather size" msgstr "[節點 %s] 拖動調整暗角和羽化尺寸" -#: ../src/iop/vignette.c:1011 +#: ../src/iop/vignette.c:1108 #, c-format msgid "[%s on node] change vignette/feather size keeping ratio" msgstr "[節點 %s] ctrl + 拖動調整暗角和羽化尺寸(保持比例)" -#: ../src/iop/vignette.c:1013 +#: ../src/iop/vignette.c:1111 #, c-format msgid "[%s on center] move vignette" msgstr "[中心點 %s] 移動暗角的中心位置" -#: ../src/iop/watermark.c:371 +#: ../src/iop/watermark.c:416 msgid "watermark" msgstr "浮水印" -#: ../src/iop/watermark.c:376 +#: ../src/iop/watermark.c:421 msgid "overlay an SVG watermark like a signature on the picture" msgstr "" "浮水印 | watermark\n" @@ -20517,21 +21164,21 @@ "採用 SVG 向量格式,但也可以接受 PNG 點陣圖檔\n" "SVG 可使用 darktable 的變數以顯示影像或編輯訊息" -#: ../src/iop/watermark.c:1258 +#: ../src/iop/watermark.c:1306 msgid "marker" msgstr "標記" -#: ../src/iop/watermark.c:1261 +#: ../src/iop/watermark.c:1309 #, c-format msgid "SVG watermarks in %s/watermarks or %s/watermarks" msgstr "選擇 %s\\watermarks 或 %s\\watermarks 資料夾裡的浮水印檔案" #. Simple text -#: ../src/iop/watermark.c:1271 ../src/iop/watermark.c:1272 +#: ../src/iop/watermark.c:1319 ../src/iop/watermark.c:1320 msgid "text" msgstr "文字" -#: ../src/iop/watermark.c:1273 +#: ../src/iop/watermark.c:1321 msgid "" "text string, tag:\n" "$(WATERMARK_TEXT)" @@ -20539,16 +21186,16 @@ "文字字串,在 SVG 中使用以下變數,即可由此變更編輯\n" "$(WATERMARK_TEXT)" -#: ../src/iop/watermark.c:1275 +#: ../src/iop/watermark.c:1323 msgid "content" msgstr "內容" #. Text font -#: ../src/iop/watermark.c:1280 +#: ../src/iop/watermark.c:1328 msgid "font" msgstr "字型" -#: ../src/iop/watermark.c:1285 +#: ../src/iop/watermark.c:1333 msgid "" "text font, tags:\n" "$(WATERMARK_FONT_FAMILY)\n" @@ -20560,7 +21207,7 @@ "$(WATERMARK_FONT_STYLE)\n" "$(WATERMARK_FONT_WEIGHT)" -#: ../src/iop/watermark.c:1300 +#: ../src/iop/watermark.c:1348 msgid "" "watermark color, tag:\n" "$(WATERMARK_COLOR)" @@ -20568,57 +21215,59 @@ "文字顏色,在 SVG 中使用以下變數,即可由此變更編輯\n" "$(WATERMARK_COLOR)" -#: ../src/iop/watermark.c:1302 +#: ../src/iop/watermark.c:1350 msgid "select watermark color" msgstr "選擇浮水印文字顏色" -#: ../src/iop/watermark.c:1304 +#: ../src/iop/watermark.c:1352 msgid "pick color from image" msgstr "選擇影像中的色彩" -#: ../src/iop/watermark.c:1317 +#: ../src/iop/watermark.c:1365 msgctxt "section" msgid "placement" msgstr "位置" -#: ../src/iop/watermark.c:1330 +#: ../src/iop/watermark.c:1378 msgid "" -"scaling is done relative to this object\n" -"• image: fits marker into whole image\n" -"• larger border: fits larger marker border to larger image border\n" -"• smaller border: fits larger marker border to smaller image border\n" -"• height: fits marker height to image height, e.g. suitable for texts\n" -"• advanced options: activates two additional drop-down menus" +"choose how to scale the watermark\n" +"• image: scale watermark relative to whole image\n" +"• larger border: scale larger watermark border relative to larger image " +"border\n" +"• smaller border: scale larger watermark border relative to smaller image " +"border\n" +"• height: scale watermark height to image height\n" +"• advanced options: choose watermark and image dimensions independently" msgstr "" "縮放是依以下相對尺寸決定的\n" -"● 影像:浮水印縮放至符合影像\n" -"● 長邊:浮水印的長邊縮放至影像的長邊\n" -"● 短像:浮水印的長邊縮放至影像的短邊\n" -"● 高度:浮水印的高度縮放至影像的高度\n" +"● 影像:浮水印依整個影像尺寸縮放\n" +"● 長邊:浮水印的長邊依影像的長邊縮放\n" +"● 短像:浮水印的長邊依影像的短邊縮放\n" +"● 高度:浮水印的高度依影像的高度縮放\n" "● 進階選項:啟用兩個額外的選單控制其他縮放方式" -#: ../src/iop/watermark.c:1339 -msgid "reference to which the marker should be scaled to" -msgstr "將浮水印依比例縮放至影像的哪一邊" - -#: ../src/iop/watermark.c:1343 -msgid "length of the marker which is used as scaling reference" -msgstr "將浮水印的寬或高調整至以上縮放設定" +#: ../src/iop/watermark.c:1387 +msgid "reference image dimension against which to scale the watermark" +msgstr "縮放浮水印的影像尺寸參考依據" + +#: ../src/iop/watermark.c:1391 +msgid "watermark dimension to scale" +msgstr "浮水印縮放尺寸" -#: ../src/iop/watermark.c:1347 ../src/libs/print_settings.c:2675 +#: ../src/iop/watermark.c:1395 ../src/libs/print_settings.c:2675 msgid "alignment" msgstr "對齊" #. Let's add some tooltips and hook up some signals... -#: ../src/iop/watermark.c:1368 +#: ../src/iop/watermark.c:1416 msgid "the opacity of the watermark" msgstr "浮水印的透明度" -#: ../src/iop/watermark.c:1369 +#: ../src/iop/watermark.c:1417 msgid "the scale of the watermark" msgstr "浮水印的大小" -#: ../src/iop/watermark.c:1370 +#: ../src/iop/watermark.c:1418 msgid "the rotation of the watermark" msgstr "浮水印的旋轉角度" @@ -20626,7 +21275,7 @@ msgid "zone system" msgstr "分區曝光顯影系統" -#: ../src/iop/zonesystem.c:490 +#: ../src/iop/zonesystem.c:486 msgid "" "lightness zones\n" "use mouse scrollwheel to change the number of zones\n" @@ -20668,7 +21317,7 @@ msgid "camera control" msgstr "相機控制" -#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2360 +#: ../src/libs/camera.c:421 ../src/libs/histogram.c:2679 msgid "modes" msgstr "模式" @@ -20772,37 +21421,50 @@ msgid "WB" msgstr "白平衡" -#: ../src/libs/collect.c:151 +#: ../src/libs/collect.c:164 msgid "collections" msgstr "相冊" -#: ../src/libs/collect.c:407 +#: ../src/libs/collect.c:424 msgid "search filmroll" msgstr "搜尋底片卷" -#: ../src/libs/collect.c:490 +#: ../src/libs/collect.c:507 #, c-format msgid "problem selecting new path for the filmroll in %s" msgstr "為底片卷選取的新路徑「%s」有問題" -#: ../src/libs/collect.c:553 +#: ../src/libs/collect.c:579 msgid "search filmroll..." msgstr "搜尋底片卷…" -#: ../src/libs/collect.c:557 +#: ../src/libs/collect.c:584 msgid "remove..." msgstr "從圖庫中移除這卷底片…" -#: ../src/libs/collect.c:1225 +#: ../src/libs/collect.c:1310 msgid "uncategorized" msgstr "未分類" -#: ../src/libs/collect.c:2138 +#: ../src/libs/collect.c:2172 ../src/libs/filters/rating_range.c:120 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:151 +#: ../src/libs/filters/rating_range.c:302 +msgid "rejected" +msgstr "不合格" + +#: ../src/libs/collect.c:2175 ../src/libs/filters/rating_range.c:122 +#: ../src/libs/filters/rating_range.c:146 +#: ../src/libs/filters/rating_range.c:303 +msgid "not rated" +msgstr "未評分" + +#: ../src/libs/collect.c:2359 msgid "use <, <=, >, >=, <>, =, [;] as operators" msgstr "" "從所有已匯入的圖庫選擇,右側欄位可使用 <、<=、>、>=、<>、=、; 為控制字元" -#: ../src/libs/collect.c:2142 +#: ../src/libs/collect.c:2363 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "star rating: 0-5\n" @@ -20812,7 +21474,7 @@ "星級:0 - 5\n" "不合格的影像:-1" -#: ../src/libs/collect.c:2149 +#: ../src/libs/collect.c:2371 msgid "" "use <, <=, >, >=, <>, =, [;] as operators\n" "type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)" @@ -20820,12 +21482,12 @@ "從所有已匯入的圖庫選擇,右側欄位可使用 <、<=、>、>=、<>、=、; 為控制字元\n" "以此格式輸入日期:YYYY:MM:DD hh:mm:ss.sss,年份是必填項目" -#: ../src/libs/collect.c:2156 +#: ../src/libs/collect.c:2378 #, no-c-format msgid "use `%' as wildcard and `,' to separate values" msgstr "從所有已匯入的圖庫選擇,右側欄位可使用「%」作為萬用字元,使用「,」分隔" -#: ../src/libs/collect.c:2162 +#: ../src/libs/collect.c:2385 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20838,7 +21500,7 @@ "shift + 點擊僅包含目前的位置\n" "ctrl + 點擊僅包含次層位置(使用 |% 後綴)" -#: ../src/libs/collect.c:2174 +#: ../src/libs/collect.c:2398 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20851,7 +21513,7 @@ "shift + 點擊僅包含目前的位置\n" "ctrl + 點擊僅包含次層位置(使用 |% 後綴)" -#: ../src/libs/collect.c:2186 +#: ../src/libs/collect.c:2411 #, no-c-format msgid "" "use `%' as wildcard\n" @@ -20864,111 +21526,103 @@ "shift + 點擊僅包含目前的資料夾\n" "ctrl + 點擊僅包含子資料夾(使用 |% 後綴)" -#: ../src/libs/collect.c:2197 +#: ../src/libs/collect.c:2422 #, no-c-format msgid "use `%' as wildcard" msgstr "從所有已匯入的圖庫選擇,右側欄位可使用「%」作為萬用字元" -#: ../src/libs/collect.c:2263 ../src/libs/collect.c:2277 -#: ../src/libs/collect.c:2800 +#: ../src/libs/collect.c:2488 ../src/libs/collect.c:2502 +#: ../src/libs/collect.c:3111 msgid "clear this rule" msgstr "刪除此條件" -#: ../src/libs/collect.c:2267 +#: ../src/libs/collect.c:2492 msgid "clear this rule or add new rules" msgstr "刪除或增加條件" -#: ../src/libs/collect.c:2806 +#: ../src/libs/collect.c:3117 msgid "narrow down search" msgstr "增加「並且…」條件(交集)" -#: ../src/libs/collect.c:2811 +#: ../src/libs/collect.c:3124 msgid "add more images" msgstr "增加「或是…」條件(聯集)" -#: ../src/libs/collect.c:2816 +#: ../src/libs/collect.c:3131 msgid "exclude images" msgstr "增加「不含…」條件(差集)" -#: ../src/libs/collect.c:2823 +#: ../src/libs/collect.c:3140 msgid "change to: and" msgstr "改為「並且…」條件(交集)" -#: ../src/libs/collect.c:2828 +#: ../src/libs/collect.c:3147 msgid "change to: or" msgstr "改為「或是…」條件(聯集)" -#: ../src/libs/collect.c:2833 +#: ../src/libs/collect.c:3154 msgid "change to: except" msgstr "改為「不含…」條件(差集)" #. the different categories -#: ../src/libs/collect.c:2859 ../src/libs/filtering.c:857 -#: ../src/libs/filtering.c:924 ../src/libs/filtering.c:1558 -#: ../src/libs/filtering.c:1890 +#: ../src/libs/collect.c:3184 ../src/libs/filtering.c:883 +#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1620 +#: ../src/libs/filtering.c:1964 msgid "files" msgstr "檔案" -#: ../src/libs/collect.c:2864 ../src/libs/export_metadata.c:312 -#: ../src/libs/filtering.c:862 ../src/libs/filtering.c:929 -#: ../src/libs/filtering.c:1566 ../src/libs/filtering.c:1894 -#: ../src/libs/image.c:464 ../src/libs/image.c:574 ../src/libs/image.c:582 -#: ../src/libs/metadata.c:676 ../src/libs/metadata_view.c:1226 +#: ../src/libs/collect.c:3189 ../src/libs/export_metadata.c:301 +#: ../src/libs/filtering.c:888 ../src/libs/filtering.c:955 +#: ../src/libs/filtering.c:1628 ../src/libs/filtering.c:1968 +#: ../src/libs/image.c:495 ../src/libs/image.c:633 ../src/libs/image.c:645 +#: ../src/libs/metadata.c:509 ../src/libs/metadata_view.c:1256 msgid "metadata" msgstr "詮釋資料" -#: ../src/libs/collect.c:2883 ../src/libs/filtering.c:883 -#: ../src/libs/filtering.c:950 ../src/libs/filtering.c:1892 +#: ../src/libs/collect.c:3208 ../src/libs/filtering.c:909 +#: ../src/libs/filtering.c:976 ../src/libs/filtering.c:1966 msgid "times" msgstr "時間" -#: ../src/libs/collect.c:2891 ../src/libs/filtering.c:891 -#: ../src/libs/filtering.c:958 ../src/libs/filtering.c:1590 +#: ../src/libs/collect.c:3216 ../src/libs/filtering.c:917 +#: ../src/libs/filtering.c:984 ../src/libs/filtering.c:1652 msgid "capture details" msgstr "拍攝詳細資訊" -#: ../src/libs/collect.c:2900 ../src/libs/filtering.c:900 -#: ../src/libs/filtering.c:967 ../src/libs/filtering.c:1602 -#: ../src/libs/filtering.c:1896 ../src/libs/tools/darktable.c:65 +#: ../src/libs/collect.c:3225 ../src/libs/filtering.c:926 +#: ../src/libs/filtering.c:993 ../src/libs/filtering.c:1664 +#: ../src/libs/filtering.c:1970 ../src/libs/tools/darktable.c:61 msgid "darktable" msgstr "darktable" -#: ../src/libs/collect.c:2913 +#: ../src/libs/collect.c:3240 msgid "collections settings" msgstr "相冊設定" -#: ../src/libs/collect.c:2916 ../src/libs/export_metadata.c:288 -#: ../src/libs/metadata.c:632 ../src/libs/metadata_view.c:1194 -#: ../src/libs/recentcollect.c:228 ../src/libs/tagging.c:1653 -#: ../src/libs/tagging.c:1783 ../src/libs/tagging.c:2057 -#: ../src/libs/tagging.c:3472 -msgid "save" -msgstr "儲存" - -#: ../src/libs/collect.c:2936 ../src/libs/export.c:1046 -#: ../src/libs/metadata.c:779 ../src/libs/metadata_view.c:1306 -#: ../src/libs/recentcollect.c:293 ../src/libs/tagging.c:3494 +#: ../src/libs/collect.c:3267 ../src/libs/export.c:1126 +#: ../src/libs/metadata.c:615 ../src/libs/metadata_view.c:1339 +#: ../src/libs/recentcollect.c:295 ../src/libs/tagging.c:3526 msgid "preferences..." msgstr "模組設定…" -#: ../src/libs/collect.c:3041 ../src/libs/filtering.c:1432 +#: ../src/libs/collect.c:3388 ../src/libs/filtering.c:1494 msgid "AND" msgstr "並且" -#: ../src/libs/collect.c:3046 ../src/libs/filtering.c:1437 +#: ../src/libs/collect.c:3393 ../src/libs/filtering.c:1499 msgid "OR" msgstr "或是" #. case DT_LIB_COLLECT_MODE_AND_NOT: -#: ../src/libs/collect.c:3051 ../src/libs/filtering.c:1442 +#: ../src/libs/collect.c:3398 ../src/libs/filtering.c:1504 msgid "BUT NOT" msgstr "不包括" -#: ../src/libs/collect.c:3223 ../src/libs/filtering.c:2164 +#: ../src/libs/collect.c:3588 ../src/libs/filtering.c:2238 msgid "revert to a previous set of rules" msgstr "使用過去的篩選設定" -#: ../src/libs/collect.c:3280 +#: ../src/libs/collect.c:3671 msgid "jump back to previous collection" msgstr "回到上一個相冊" @@ -20992,7 +21646,7 @@ msgid "color picker" msgstr "色彩選取工具" -#: ../src/libs/colorpicker.c:463 +#: ../src/libs/colorpicker.c:513 msgid "" "hover to highlight sample on canvas,\n" "click to lock sample,\n" @@ -21002,23 +21656,23 @@ "左鍵可鎖定色樣,不隨後續的影像編輯改變,以作為編輯前後比較使用\n" "右鍵點擊可將色樣區域載入到新的色彩選取工具中" -#: ../src/libs/colorpicker.c:561 ../src/libs/colorpicker.c:612 +#: ../src/libs/colorpicker.c:626 ../src/libs/colorpicker.c:693 msgid "click to (un)hide large color patch" msgstr "點擊顯示 / 隱藏上方大型色塊" -#: ../src/libs/colorpicker.c:575 +#: ../src/libs/colorpicker.c:649 msgid "statistic" msgstr "統計資料" -#: ../src/libs/colorpicker.c:576 +#: ../src/libs/colorpicker.c:650 msgid "select which statistic to show" msgstr "選擇要顯示的統計數值" -#: ../src/libs/colorpicker.c:585 +#: ../src/libs/colorpicker.c:660 msgid "select which color mode to use" msgstr "選擇要使用的色彩模式" -#: ../src/libs/colorpicker.c:594 +#: ../src/libs/colorpicker.c:671 msgid "" "turn on color picker\n" "ctrl+click or right-click to select an area" @@ -21027,21 +21681,21 @@ "單擊和拖曳選擇位置\n" "ctrl + 左鍵 或 右鍵 可選擇區域" -#: ../src/libs/colorpicker.c:636 +#: ../src/libs/colorpicker.c:722 msgid "add sample" msgstr "增加色樣" #. Adding the live samples section -#: ../src/libs/colorpicker.c:640 +#: ../src/libs/colorpicker.c:727 msgctxt "section" msgid "live samples" msgstr "目前色樣" -#: ../src/libs/colorpicker.c:648 +#: ../src/libs/colorpicker.c:738 msgid "display samples on image/vectorscope" msgstr "在影像和彩度圖上顯示色樣位置" -#: ../src/libs/colorpicker.c:657 +#: ../src/libs/colorpicker.c:749 msgid "restrict scope to selection" msgstr "限制直方圖和波形圖只顯示選取範圍" @@ -21053,10 +21707,6 @@ msgid "open sidecar file" msgstr "開啟附屬檔案" -#: ../src/libs/copy_history.c:149 -msgid "XMP sidecar files" -msgstr "XMP 附屬檔案" - #: ../src/libs/copy_history.c:166 #, c-format msgid "error loading file '%s'" @@ -21103,7 +21753,7 @@ msgid "choose which modules to paste to the target image(s)" msgstr "選擇要套用哪些模組" -#: ../src/libs/copy_history.c:382 ../src/libs/image.c:588 +#: ../src/libs/copy_history.c:382 ../src/libs/image.c:655 msgid "paste" msgstr "貼上" @@ -21133,7 +21783,7 @@ "刪除所有選取影像的編輯紀錄\n" "⚠️ 警告:此動作無法復原 ⚠️" -#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:847 +#: ../src/libs/copy_history.c:400 ../src/libs/styles.c:851 msgid "how to handle existing history" msgstr "" "如何處理已存在的影像編輯紀錄\n" @@ -21145,7 +21795,7 @@ "覆寫:\n" "在套用之前刪除目標影像的歷史記錄,使其在套用之後和原始複製的編輯紀錄完全相同" -#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:850 +#: ../src/libs/copy_history.c:403 ../src/libs/styles.c:854 msgid "append" msgstr "附加到現有檔案上" @@ -21168,89 +21818,96 @@ "預設情況下,darktable 在每次編輯動作時都會自動更新 XMP,無須手動儲存\n" "除非手動關閉「偏好設定」中的「資料儲存」設定,一般不建議這樣操作" -#: ../src/libs/duplicate.c:56 +#: ../src/libs/duplicate.c:60 msgid "duplicate manager" msgstr "複本管理器" -#: ../src/libs/duplicate.c:401 +#: ../src/libs/duplicate.c:407 msgid "create a 'virgin' duplicate of the image without any development" msgstr "建立一個沒有經過任何編輯的原始影像複本" -#: ../src/libs/duplicate.c:406 +#: ../src/libs/duplicate.c:412 msgid "create a duplicate of the image with same history stack" msgstr "建立一個和目前編輯完全相同的複本" -#. Export button -#: ../src/libs/export.c:153 ../src/libs/export.c:1281 +#: ../src/libs/export.c:160 msgid "export" msgstr "匯出" #: ../src/libs/export.c:306 +msgid "invalid format for export selected" +msgstr "選擇的匯出格式無效" + +#: ../src/libs/export.c:311 +msgid "invalid storage for export selected" +msgstr "選擇的匯出位置無效" + +#: ../src/libs/export.c:322 msgid "export to disk" msgstr "匯出到硬碟" -#: ../src/libs/export.c:485 +#: ../src/libs/export.c:516 #, c-format msgid "which is equal to %s × %s px" msgstr "等於 %s x %s 像素" -#: ../src/libs/export.c:520 +#: ../src/libs/export.c:555 msgctxt "unit" msgid "in" msgstr "英寸" -#: ../src/libs/export.c:1060 +#: ../src/libs/export.c:1141 msgctxt "section" msgid "storage options" msgstr "儲存選項" -#: ../src/libs/export.c:1064 +#: ../src/libs/export.c:1145 msgid "target storage" msgstr "儲存目的" -#: ../src/libs/export.c:1086 +#: ../src/libs/export.c:1171 msgctxt "section" msgid "format options" msgstr "格式選項" -#: ../src/libs/export.c:1090 +#: ../src/libs/export.c:1175 msgid "file format" msgstr "檔案格式" -#: ../src/libs/export.c:1107 +#: ../src/libs/export.c:1193 msgctxt "section" msgid "global options" msgstr "整體選項" -#: ../src/libs/export.c:1110 +#: ../src/libs/export.c:1196 msgid "set size" msgstr "設定影像尺寸" -#: ../src/libs/export.c:1111 +#: ../src/libs/export.c:1197 msgid "choose a method for setting the output size" msgstr "選擇設定匯出影像尺寸的方式" -#: ../src/libs/export.c:1114 +#: ../src/libs/export.c:1200 msgid "in pixels (for file)" msgstr "像素" -#: ../src/libs/export.c:1115 +#: ../src/libs/export.c:1201 msgid "in cm (for print)" msgstr "公分" -#: ../src/libs/export.c:1116 +#: ../src/libs/export.c:1202 msgid "in inch (for print)" msgstr "英寸" -#: ../src/libs/export.c:1117 +#: ../src/libs/export.c:1203 msgid "by scale (for file)" msgstr "比例" -#: ../src/libs/export.c:1119 +#: ../src/libs/export.c:1206 msgid "print width" msgstr "列印寬度" -#: ../src/libs/export.c:1120 ../src/libs/export.c:1132 +#: ../src/libs/export.c:1208 ../src/libs/export.c:1225 msgid "" "maximum output width limit.\n" "click middle mouse button to reset to 0." @@ -21259,11 +21916,11 @@ "0 代表原始影像尺寸\n" "按壓滑鼠中鍵以重設" -#: ../src/libs/export.c:1123 +#: ../src/libs/export.c:1212 msgid "print height" msgstr "列印高度" -#: ../src/libs/export.c:1124 ../src/libs/export.c:1136 +#: ../src/libs/export.c:1214 ../src/libs/export.c:1231 msgid "" "maximum output height limit.\n" "click middle mouse button to reset to 0." @@ -21272,19 +21929,19 @@ "0 代表原始影像尺寸\n" "按壓滑鼠中鍵以重設" -#: ../src/libs/export.c:1128 +#: ../src/libs/export.c:1220 msgid "resolution in dot per inch" msgstr "解析度(像素 / 英寸)" -#: ../src/libs/export.c:1148 +#: ../src/libs/export.c:1244 msgid "@" msgstr "@" -#: ../src/libs/export.c:1161 ../src/libs/tools/global_toolbox.c:217 +#: ../src/libs/export.c:1258 ../src/libs/tools/global_toolbox.c:217 msgid "px" msgstr "像素" -#: ../src/libs/export.c:1166 +#: ../src/libs/export.c:1266 msgid "" "it can be an integer, decimal number or simple fraction.\n" "zero or empty values are equal to 1.\n" @@ -21294,39 +21951,39 @@ "0 或留白代表使用原始影像尺寸\n" "按壓滑鼠中鍵重設為 1" -#: ../src/libs/export.c:1185 +#: ../src/libs/export.c:1292 msgid "allow upscaling" msgstr "允許放大影像" -#: ../src/libs/export.c:1191 +#: ../src/libs/export.c:1301 msgid "high quality resampling" msgstr "高品質重新採樣" -#: ../src/libs/export.c:1192 +#: ../src/libs/export.c:1302 msgid "do high quality resampling during export" msgstr "" "在匯出過程中使用高品質的像素採樣算法\n" "影像會以完整尺寸運算模組效果,僅在最後一步縮小至設定的匯出尺寸,這可以產生更" "好的品質但會較慢" -#: ../src/libs/export.c:1198 +#: ../src/libs/export.c:1310 msgid "store masks" msgstr "儲存遮罩" -#: ../src/libs/export.c:1199 +#: ../src/libs/export.c:1311 msgid "store masks as layers in exported images. only works for some formats." msgstr "將遮罩儲存為圖層,目前僅 TIFF 和 XCF 格式支援此功能" -#: ../src/libs/export.c:1210 ../src/libs/export.c:1245 +#: ../src/libs/export.c:1322 ../src/libs/export.c:1357 #: ../src/libs/print_settings.c:2777 ../src/libs/print_settings.c:2823 msgid "image settings" msgstr "遵循影像中模組的設定" -#: ../src/libs/export.c:1220 ../src/libs/print_settings.c:2811 +#: ../src/libs/export.c:1332 ../src/libs/print_settings.c:2811 msgid "output ICC profiles" msgstr "輸出色彩描述檔" -#: ../src/libs/export.c:1228 +#: ../src/libs/export.c:1340 msgid "" "• perceptual: smoothly moves out-of-gamut colors into gamut, preserving " "gradations,\n" @@ -21360,44 +22017,53 @@ "絕對色度:\n" "不進行亮度和彩度對應,只適用於印刷打樣,不適合攝影用途" -#: ../src/libs/export.c:1255 ../src/libs/print_settings.c:2833 +#: ../src/libs/export.c:1367 ../src/libs/print_settings.c:2833 msgid "style" msgstr "風格檔" -#: ../src/libs/export.c:1258 +#: ../src/libs/export.c:1370 msgid "temporary style to use while exporting" msgstr "僅在匯出時暫時套用的風格檔" -#: ../src/libs/export.c:1263 ../src/libs/print_settings.c:2876 +#: ../src/libs/export.c:1377 ../src/libs/print_settings.c:2876 msgid "" "whether the style items are appended to the history or replacing the history" msgstr "風格檔要附加編輯記錄還是替換編輯記錄" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "replace history" msgstr "替換原有的編輯記錄" -#: ../src/libs/export.c:1266 ../src/libs/print_settings.c:2878 +#: ../src/libs/export.c:1380 ../src/libs/print_settings.c:2878 msgid "append history" msgstr "新增在原有的編輯記錄之上" -#: ../src/libs/export.c:1282 +#: ../src/libs/export.c:1398 +msgctxt "actionbutton" +msgid "export" +msgstr "匯出" + +#: ../src/libs/export.c:1400 msgid "export with current settings" msgstr "使用以上的設定匯出影像" -#: ../src/libs/export_metadata.c:163 +#: ../src/libs/export_metadata.c:148 msgid "select tag" msgstr "選擇標籤" -#: ../src/libs/export_metadata.c:164 -msgid "add" -msgstr "增加" +#: ../src/libs/export_metadata.c:150 +msgid "_add" +msgstr "增加(_A)" + +#: ../src/libs/export_metadata.c:151 ../src/libs/geotagging.c:811 +msgid "_done" +msgstr "完成(_D)" -#: ../src/libs/export_metadata.c:175 +#: ../src/libs/export_metadata.c:162 msgid "list filter" msgstr "篩選標籤" -#: ../src/libs/export_metadata.c:186 +#: ../src/libs/export_metadata.c:173 msgid "" "list of available tags. click 'add' button or double-click on tag to add the " "selected one" @@ -21405,31 +22071,31 @@ "可用標籤的清單\n" "點擊「增加」按鈕或雙擊貼上所選標籤" -#: ../src/libs/export_metadata.c:287 +#: ../src/libs/export_metadata.c:274 msgid "edit metadata exportation" msgstr "編輯詮釋資料匯出設定" -#: ../src/libs/export_metadata.c:304 +#: ../src/libs/export_metadata.c:293 msgid "general settings" msgstr "一般設定" -#: ../src/libs/export_metadata.c:309 +#: ../src/libs/export_metadata.c:298 msgid "EXIF data" msgstr "EXIF 資料" -#: ../src/libs/export_metadata.c:310 +#: ../src/libs/export_metadata.c:299 msgid "export EXIF metadata" msgstr "匯出 EXIF 詮釋資料" -#: ../src/libs/export_metadata.c:313 +#: ../src/libs/export_metadata.c:302 msgid "export darktable XMP metadata (from metadata editor module)" msgstr "匯出 XMP 詮釋資料(從詮釋資料編輯模組)" -#: ../src/libs/export_metadata.c:323 +#: ../src/libs/export_metadata.c:312 msgid "only embedded" msgstr "僅已嵌入的資料" -#: ../src/libs/export_metadata.c:324 +#: ../src/libs/export_metadata.c:313 msgid "" "per default the interface sends some (limited) metadata beside the image to " "remote storage.\n" @@ -21445,57 +22111,57 @@ "若要避免這種情況並僅允許影像嵌入 XMP 詮釋資料,請選此標誌。\n" "如果遠端存儲不理解 darktable 的 XMP 詮釋資料,則可以改用計算的詮釋資料" -#: ../src/libs/export_metadata.c:330 ../src/libs/image.c:566 +#: ../src/libs/export_metadata.c:319 ../src/libs/image.c:623 msgid "geo tags" msgstr "地理標籤" -#: ../src/libs/export_metadata.c:331 +#: ../src/libs/export_metadata.c:320 msgid "export geo tags" msgstr "匯出地理標籤" -#: ../src/libs/export_metadata.c:334 +#: ../src/libs/export_metadata.c:323 msgid "export tags (to Xmp.dc.Subject)" msgstr "匯出標籤至 Xmp.dc.Subject" -#: ../src/libs/export_metadata.c:342 +#: ../src/libs/export_metadata.c:331 msgid "private tags" msgstr "私人標籤" -#: ../src/libs/export_metadata.c:343 +#: ../src/libs/export_metadata.c:332 msgid "export private tags" msgstr "匯出私人標籤" -#: ../src/libs/export_metadata.c:345 +#: ../src/libs/export_metadata.c:334 msgid "synonyms" msgstr "同義詞" -#: ../src/libs/export_metadata.c:346 +#: ../src/libs/export_metadata.c:335 msgid "export tags synonyms" msgstr "匯出標籤同義詞" -#: ../src/libs/export_metadata.c:348 +#: ../src/libs/export_metadata.c:337 msgid "omit hierarchy" msgstr "省略階層" -#: ../src/libs/export_metadata.c:349 +#: ../src/libs/export_metadata.c:338 msgid "" "only the last part of the hierarchical tags is included. can be useful if " "categories are not used" msgstr "僅匯出標籤的最後一部分,省略樹狀結構" -#: ../src/libs/export_metadata.c:352 +#: ../src/libs/export_metadata.c:341 msgid "hierarchical tags" msgstr "樹狀標籤" -#: ../src/libs/export_metadata.c:353 +#: ../src/libs/export_metadata.c:342 msgid "export hierarchical tags (to Xmp.lr.Hierarchical Subject)" msgstr "匯出樹狀標籤到 Xmp.lr.Hierarchical Subject" -#: ../src/libs/export_metadata.c:355 +#: ../src/libs/export_metadata.c:344 msgid "develop history" msgstr "編輯記錄" -#: ../src/libs/export_metadata.c:356 +#: ../src/libs/export_metadata.c:345 msgid "" "export darktable development data (recovery purpose in case of loss of " "database or XMP file)" @@ -21503,19 +22169,19 @@ "匯出全部編輯紀錄以及遮罩,儲存至 XMP 檔案中\n" "可用於之後若資料庫和附屬檔案遺失時復原原始編輯設定使用" -#: ../src/libs/export_metadata.c:363 +#: ../src/libs/export_metadata.c:352 msgid "per metadata settings" msgstr "依詮釋資料設定" -#: ../src/libs/export_metadata.c:376 +#: ../src/libs/export_metadata.c:364 msgid "redefined tag" msgstr "重新定義標籤" -#: ../src/libs/export_metadata.c:382 +#: ../src/libs/export_metadata.c:370 msgid "formula" msgstr "變更方式" -#: ../src/libs/export_metadata.c:385 +#: ../src/libs/export_metadata.c:373 msgid "" "list of calculated metadata\n" "click on '+' button to select and add new metadata\n" @@ -21539,15 +22205,15 @@ "如果欄位留空,則從匯出檔案中刪除該項元資料\n" "如果欄位為「=」,則強制匯出元資料,即便在一般設定中設定不匯出" -#: ../src/libs/export_metadata.c:442 +#: ../src/libs/export_metadata.c:430 msgid "add an output metadata tag" msgstr "增加詮釋資料標籤" -#: ../src/libs/export_metadata.c:447 +#: ../src/libs/export_metadata.c:435 msgid "delete metadata tag" msgstr "刪除詮釋資料標籤" -#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:128 +#: ../src/libs/filtering.c:58 ../src/libs/metadata_view.c:130 msgid "full path" msgstr "檔案位置" @@ -21567,61 +22233,61 @@ msgid "shuffle" msgstr "隨機" -#: ../src/libs/filtering.c:263 +#: ../src/libs/filtering.c:269 msgid "collection filters" msgstr "相冊篩選條件" -#: ../src/libs/filtering.c:296 +#: ../src/libs/filtering.c:302 msgid "initial setting" msgstr "初始設定" -#: ../src/libs/filtering.c:315 +#: ../src/libs/filtering.c:321 msgid "imported: last 24h" msgstr "匯入時間:最近 24 小時" -#: ../src/libs/filtering.c:320 +#: ../src/libs/filtering.c:326 msgid "imported: last 30 days" msgstr "匯入日期:最近 30 天" -#: ../src/libs/filtering.c:326 +#: ../src/libs/filtering.c:332 msgid "taken: last 24h" msgstr "拍攝時間:最近 24 小時" -#: ../src/libs/filtering.c:330 +#: ../src/libs/filtering.c:336 msgid "taken: last 30 days" msgstr "拍攝日期: 最近 30 天" -#: ../src/libs/filtering.c:702 +#: ../src/libs/filtering.c:728 msgid "click or click&drag to select one or multiple values" msgstr "點擊以選取單一數值,拖曳可選取數值範圍" -#: ../src/libs/filtering.c:703 +#: ../src/libs/filtering.c:729 msgid "right-click opens a menu to select the available values" msgstr "右鍵開啟可使用的數值清單" -#: ../src/libs/filtering.c:800 +#: ../src/libs/filtering.c:826 #, c-format msgid "you can't have more than %d rules" msgstr "篩選條件上限是 %d 個" -#: ../src/libs/filtering.c:922 ../src/libs/filtering.c:1556 +#: ../src/libs/filtering.c:948 ../src/libs/filtering.c:1618 msgid "rule property" msgstr "" "篩選方式\n" "點擊可變更,或使用滑鼠滾輪快速切換" -#: ../src/libs/filtering.c:987 +#: ../src/libs/filtering.c:1013 msgid "" "rule property\n" "this can't be changed as the rule is pinned to the toolbar" msgstr "不能變更已釘選至工具列的篩選條件" -#: ../src/libs/filtering.c:1035 +#: ../src/libs/filtering.c:1095 msgctxt "quickfilter" msgid "filter" msgstr "篩選" -#: ../src/libs/filtering.c:1062 +#: ../src/libs/filtering.c:1124 msgid "" "this rule is pinned to the top toolbar\n" "click to un-pin" @@ -21629,116 +22295,124 @@ "已釘選至上方工具列\n" "點擊以取消" -#: ../src/libs/filtering.c:1063 +#: ../src/libs/filtering.c:1125 msgid "you can't disable the rule as it is pinned to the toolbar" msgstr "不能停用已釘選的篩選條件" -#: ../src/libs/filtering.c:1064 +#: ../src/libs/filtering.c:1126 msgid "you can't remove the rule as it is pinned to the toolbar" msgstr "不能刪除已釘選的篩選條件" -#: ../src/libs/filtering.c:1069 +#: ../src/libs/filtering.c:1131 msgid "click to pin this rule to the top toolbar" msgstr "釘選到上方工具列" -#: ../src/libs/filtering.c:1070 +#: ../src/libs/filtering.c:1132 msgid "remove this collect rule" msgstr "刪除這個篩選條件" -#: ../src/libs/filtering.c:1072 +#: ../src/libs/filtering.c:1134 msgid "this rule is enabled" msgstr "已啟用的篩選條件" -#: ../src/libs/filtering.c:1074 +#: ../src/libs/filtering.c:1136 msgid "this rule is disabled" msgstr "已停用的篩選條件" -#: ../src/libs/filtering.c:1202 +#: ../src/libs/filtering.c:1264 msgid "or" msgstr "或是" -#: ../src/libs/filtering.c:1203 +#: ../src/libs/filtering.c:1265 msgid "and not" msgstr "排除" -#: ../src/libs/filtering.c:1205 +#: ../src/libs/filtering.c:1267 msgid "define how this rule should interact with the previous one" msgstr "定義此條件如何與上一項交互作用" -#: ../src/libs/filtering.c:1466 +#: ../src/libs/filtering.c:1528 msgid " (off)" msgstr " (關閉)" -#: ../src/libs/filtering.c:1663 +#: ../src/libs/filtering.c:1725 msgid "you can't add more rules." msgstr "篩選條件上限是 %d 個" -#. fill the popover with all pinned rules -#: ../src/libs/filtering.c:1696 +#: ../src/libs/filtering.c:1759 msgid "shown filters" msgstr "顯示篩選條件" -#: ../src/libs/filtering.c:1711 +#: ../src/libs/filtering.c:1774 msgid "new filter" msgstr "新增條件" -#: ../src/libs/filtering.c:1884 +#. the actions part of the popover +#: ../src/libs/filtering.c:1781 +msgid "actions" +msgstr "動作" + +#: ../src/libs/filtering.c:1784 +msgid "reset quickfilters" +msgstr "重設快速篩選選項" + +#: ../src/libs/filtering.c:1957 msgid "sort order" msgstr "排列順序" -#: ../src/libs/filtering.c:1886 +#: ../src/libs/filtering.c:1960 msgid "determine the sort order of shown images" msgstr "" "影像排列順序的方式\n" "點擊可變更,或使用滑鼠滾輪快速切換" -#: ../src/libs/filtering.c:1906 +#: ../src/libs/filtering.c:1980 msgid "sort direction" msgstr "排序方向" -#: ../src/libs/filtering.c:1911 +#: ../src/libs/filtering.c:1985 msgid "remove this sort order" msgstr "移除這個排序條件" -#: ../src/libs/filtering.c:1995 +#: ../src/libs/filtering.c:2069 #, c-format msgid "you can't have more than %d sort orders" msgstr "排序條件上限是 %d 個" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "DESC" msgstr "降序排列" -#: ../src/libs/filtering.c:2049 +#: ../src/libs/filtering.c:2123 msgid "ASC" msgstr "升序排列" -#: ../src/libs/filtering.c:2160 +#: ../src/libs/filtering.c:2234 msgid "new rule" msgstr "新增篩選條件" -#: ../src/libs/filtering.c:2161 +#: ../src/libs/filtering.c:2235 msgid "append new rule to collect images" msgstr "新增條件到目前的相冊上" -#: ../src/libs/filtering.c:2172 ../src/libs/tools/filter.c:116 +#: ../src/libs/filtering.c:2246 ../src/libs/tools/filter.c:116 msgid "sort by" msgstr "排列方式" -#: ../src/libs/filtering.c:2180 +#: ../src/libs/filtering.c:2254 msgid "new sort" msgstr "新增排序條件" -#: ../src/libs/filtering.c:2181 +#: ../src/libs/filtering.c:2255 msgid "append new sort to order images" msgstr "新增排序方式到目前的相冊上" -#: ../src/libs/filtering.c:2184 +#: ../src/libs/filtering.c:2258 msgid "revert to a previous set of sort orders" msgstr "使用過去的排序設定" #. we change the tooltip of the reset button here, as we are sure the header is defined now -#: ../src/libs/filtering.c:2234 +#: ../src/libs/filtering.c:2308 msgid "" "reset\n" "ctrl+click to remove pinned rules too" @@ -21775,7 +22449,7 @@ #: ../src/libs/filters/grouping.c:167 ../src/libs/filters/history.c:153 #: ../src/libs/filters/local_copy.c:142 ../src/libs/filters/module_order.c:161 #: ../src/libs/filters/rating.c:199 ../src/libs/filters/rating.c:210 -#: ../src/libs/filters/rating_range.c:325 +#: ../src/libs/filters/rating_range.c:356 msgid "rules" msgstr "規則" @@ -21789,7 +22463,7 @@ "和(∩):具有所有選定色彩標籤的影像\n" "或(∪):至少具有一個選定色彩標籤的影像" -#: ../src/libs/filters/filename.c:365 +#: ../src/libs/filters/filename.c:370 msgid "" "enter filename to search.\n" "multiple values can be separated by ','\n" @@ -21801,11 +22475,11 @@ "\n" "右鍵點擊可查看所有檔案名稱並選取" -#: ../src/libs/filters/filename.c:376 +#: ../src/libs/filters/filename.c:381 msgid "extension" msgstr "副檔名" -#: ../src/libs/filters/filename.c:377 +#: ../src/libs/filters/filename.c:382 msgid "" "enter extension to search with starting dot\n" "multiple values can be separated by ','\n" @@ -21819,7 +22493,7 @@ "\n" "右鍵點擊可查看所有檔案名稱並選取" -#: ../src/libs/filters/filename.c:405 +#: ../src/libs/filters/filename.c:410 msgid "" "click to select filename\n" "ctrl+click to select multiple values" @@ -21827,7 +22501,7 @@ "單擊選擇檔案名稱\n" "ctrl + 點擊可複選" -#: ../src/libs/filters/filename.c:432 +#: ../src/libs/filters/filename.c:437 msgid "" "click to select extension\n" "ctrl+click to select multiple values" @@ -21835,6 +22509,11 @@ "單擊選擇副檔名\n" "ctrl + 點擊可複選" +#. the button to close the popup +#: ../src/libs/filters/filename.c:457 +msgid "ok" +msgstr "確定" + #: ../src/libs/filters/grouping.c:141 ../src/libs/filters/grouping.c:169 msgid "ungrouped images" msgstr "無群組的影像" @@ -21846,8 +22525,8 @@ #. predefined selections #: ../src/libs/filters/grouping.c:169 ../src/libs/filters/history.c:38 #: ../src/libs/filters/local_copy.c:38 ../src/libs/filters/module_order.c:155 -#: ../src/libs/filters/rating_range.c:56 ../src/libs/filters/rating_range.c:72 -#: ../src/libs/filters/rating_range.c:109 ../src/libs/filters/ratio.c:68 +#: ../src/libs/filters/rating_range.c:59 ../src/libs/filters/rating_range.c:83 +#: ../src/libs/filters/rating_range.c:131 ../src/libs/filters/ratio.c:68 #: ../src/libs/filters/ratio.c:81 msgid "all images" msgstr "全部影像" @@ -21872,7 +22551,7 @@ msgid "filter by images rating" msgstr "依影像評分篩選" -#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:542 +#: ../src/libs/filters/rating.c:210 ../src/libs/image.c:596 #: ../src/libs/tools/ratings.c:56 msgid "ratings" msgstr "評分" @@ -21881,49 +22560,33 @@ msgid "unstarred only" msgstr "僅限尚未評分的影像" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:60 -#: ../src/libs/filters/rating_range.c:75 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:65 +#: ../src/libs/filters/rating_range.c:89 msgid "rejected only" msgstr "僅限不合格的影像" -#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:58 -#: ../src/libs/filters/rating_range.c:73 ../src/libs/filters/rating_range.c:138 +#: ../src/libs/filters/rating.c:212 ../src/libs/filters/rating_range.c:62 +#: ../src/libs/filters/rating_range.c:86 ../src/libs/filters/rating_range.c:158 msgid "all except rejected" msgstr "除了不合格之外的全部影像" -#: ../src/libs/filters/rating_range.c:61 ../src/libs/filters/rating_range.c:76 +#: ../src/libs/filters/rating_range.c:67 ../src/libs/filters/rating_range.c:91 msgid "not rated only" msgstr "僅限尚未評分的影像" -#: ../src/libs/filters/rating_range.c:99 ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:131 -#: ../src/libs/filters/rating_range.c:275 -msgid "rejected" -msgstr "不合格" - -#: ../src/libs/filters/rating_range.c:101 -#: ../src/libs/filters/rating_range.c:126 -#: ../src/libs/filters/rating_range.c:276 -msgid "not rated" -msgstr "未評分" - -#: ../src/libs/filters/rating_range.c:117 -msgid "only" -msgstr "僅包含" - -#: ../src/libs/filters/rating_range.c:269 +#: ../src/libs/filters/rating_range.c:296 msgid "better" msgstr "更好" -#: ../src/libs/filters/rating_range.c:270 +#: ../src/libs/filters/rating_range.c:297 msgid "worse" msgstr "更差" -#: ../src/libs/filters/rating_range.c:271 +#: ../src/libs/filters/rating_range.c:298 msgid "cap" msgstr "最大值" -#: ../src/libs/filters/rating_range.c:286 +#: ../src/libs/filters/rating_range.c:313 msgid "rating filter" msgstr "評分篩選" @@ -21959,7 +22622,7 @@ msgid "apply offset and geo-location" msgstr "套用地理位置和偏差補償" -#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1910 +#: ../src/libs/geotagging.c:369 ../src/libs/geotagging.c:1914 msgid "apply geo-location" msgstr "套用地理位置" @@ -21971,49 +22634,49 @@ "套用地理位置和偏差補償到符合的影像上\n" "連按兩次 ctrl + z 回復" -#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1911 +#: ../src/libs/geotagging.c:373 ../src/libs/geotagging.c:1915 msgid "apply geo-location to matching images" msgstr "套用地理位置在符合的影像上" -#: ../src/libs/geotagging.c:810 +#: ../src/libs/geotagging.c:809 msgid "GPX file track segments" msgstr "GPX 檔案軌跡線" -#: ../src/libs/geotagging.c:830 ../src/libs/geotagging.c:1869 +#: ../src/libs/geotagging.c:831 ../src/libs/geotagging.c:1873 msgid "start time" msgstr "開始時間" -#: ../src/libs/geotagging.c:831 +#: ../src/libs/geotagging.c:832 msgid "end time" msgstr "結束時間" -#: ../src/libs/geotagging.c:832 ../src/libs/geotagging.c:1871 +#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1875 msgid "points" msgstr "點" -#: ../src/libs/geotagging.c:833 ../src/libs/geotagging.c:1873 -#: ../src/libs/image.c:463 +#: ../src/libs/geotagging.c:834 ../src/libs/geotagging.c:1877 +#: ../src/libs/image.c:494 msgid "images" msgstr "影像" -#: ../src/libs/geotagging.c:926 +#: ../src/libs/geotagging.c:927 msgid "open GPX file" msgstr "開啟 GPX 檔案" -#: ../src/libs/geotagging.c:927 ../src/libs/tools/lighttable.c:333 -#: ../src/libs/tools/lighttable.c:402 ../src/views/darkroom.c:2232 +#: ../src/libs/geotagging.c:928 ../src/libs/tools/lighttable.c:330 +#: ../src/libs/tools/lighttable.c:399 ../src/views/darkroom.c:2091 msgid "preview" msgstr "預覽" -#: ../src/libs/geotagging.c:940 +#: ../src/libs/geotagging.c:941 msgid "GPS data exchange format" msgstr "GPS 資料交換格式" -#: ../src/libs/geotagging.c:1739 +#: ../src/libs/geotagging.c:1743 msgid "date/time" msgstr "日期與時間" -#: ../src/libs/geotagging.c:1740 +#: ../src/libs/geotagging.c:1744 msgid "" "enter the new date/time (YYYY:MM:DD hh:mm:ss[.sss])\n" "key in the new numbers or scroll over the cell" @@ -22024,40 +22687,40 @@ "例如分鐘數值達到 60,欄位將自動歸零並將小時進位\n" "如果在偏好設定中開啟「以毛秒為單位顯示時間」,則可以在此模塊中使用毫秒" -#: ../src/libs/geotagging.c:1744 +#: ../src/libs/geotagging.c:1748 msgid "original date/time" msgstr "原始日期與時間" -#: ../src/libs/geotagging.c:1748 +#: ../src/libs/geotagging.c:1752 msgid "lock date/time offset value to apply it onto another selection" msgstr "鎖定日期與時間偏差值,以將其套用在其他影像上" -#: ../src/libs/geotagging.c:1752 +#: ../src/libs/geotagging.c:1756 msgid "date/time offset" msgstr "日期與時間偏差" -#: ../src/libs/geotagging.c:1753 +#: ../src/libs/geotagging.c:1757 msgid "offset or difference ([-]dd hh:mm:ss[.sss])" msgstr "偏差或差異 ([±] 日 時:分:秒)" #. apply -#: ../src/libs/geotagging.c:1757 +#: ../src/libs/geotagging.c:1761 msgid "apply offset" msgstr "套用偏差補償" -#: ../src/libs/geotagging.c:1758 +#: ../src/libs/geotagging.c:1762 msgid "apply offset to selected images" msgstr "套用偏差補償數值到選取的影像" -#: ../src/libs/geotagging.c:1761 +#: ../src/libs/geotagging.c:1765 msgid "apply date/time" msgstr "套用日期與時間" -#: ../src/libs/geotagging.c:1762 +#: ../src/libs/geotagging.c:1766 msgid "apply the same date/time to selected images" msgstr "將相同的日期與時間套用到選取的影像" -#: ../src/libs/geotagging.c:1772 +#: ../src/libs/geotagging.c:1776 msgid "" "start typing to show a list of permitted values and select your timezone.\n" "press enter to confirm, so that the asterisk * disappears" @@ -22066,24 +22729,24 @@ "按 enter 鍵確認後星號 * 就會消失" #. gpx -#: ../src/libs/geotagging.c:1815 +#: ../src/libs/geotagging.c:1819 msgid "apply GPX track file..." msgstr "套用 GPX 軌跡檔案…" -#: ../src/libs/geotagging.c:1816 +#: ../src/libs/geotagging.c:1820 msgid "parses a GPX file and updates location of selected images" msgstr "解析 GPX 檔案並更新選取影像的位置" -#: ../src/libs/geotagging.c:1827 +#: ../src/libs/geotagging.c:1831 msgctxt "section" msgid "GPX file" msgstr "GPX 檔案" -#: ../src/libs/geotagging.c:1834 +#: ../src/libs/geotagging.c:1838 msgid "select a GPX track file..." msgstr "選擇 GPX 軌跡檔案…" -#: ../src/libs/geotagging.c:1851 +#: ../src/libs/geotagging.c:1855 msgid "" "list of track segments in the GPX file, for each segment:\n" "- the start date/time in local time (LT)\n" @@ -22098,172 +22761,178 @@ "- 符合日期、時間、時間偏差、時區的影像數量\n" "- 滑鼠經過時顯示更詳細的時間資訊" -#: ../src/libs/geotagging.c:1890 +#: ../src/libs/geotagging.c:1894 msgid "preview images" msgstr "預覽影像" -#: ../src/libs/geotagging.c:1895 +#: ../src/libs/geotagging.c:1899 msgid "show on map matching images" msgstr "在地圖上顯示符合的影像" -#: ../src/libs/geotagging.c:1898 +#: ../src/libs/geotagging.c:1902 msgid "select images" msgstr "選擇影像" -#: ../src/libs/geotagging.c:1899 +#: ../src/libs/geotagging.c:1903 msgid "select matching images" msgstr "選擇符合的影像" -#: ../src/libs/geotagging.c:1907 +#: ../src/libs/geotagging.c:1911 msgid "number of matching images versus selected images" msgstr "比較符合的影像數量與已選取的影像數量" -#: ../src/libs/histogram.c:133 +#: ../src/libs/histogram.c:110 msgid "monochromatic" msgstr "單色" -#: ../src/libs/histogram.c:134 +#: ../src/libs/histogram.c:111 msgid "analogous" msgstr "相近色" -#: ../src/libs/histogram.c:135 +#: ../src/libs/histogram.c:112 msgid "analogous complementary" msgstr "相近補色" -#: ../src/libs/histogram.c:136 +#: ../src/libs/histogram.c:113 msgid "complementary" msgstr "互補色" -#: ../src/libs/histogram.c:137 +#: ../src/libs/histogram.c:114 msgid "split complementary" msgstr "分離補色" -#: ../src/libs/histogram.c:138 +#: ../src/libs/histogram.c:115 msgid "dyad" msgstr "分離相近色" -#: ../src/libs/histogram.c:139 +#: ../src/libs/histogram.c:116 msgid "triad" msgstr "三等分" -#: ../src/libs/histogram.c:140 +#: ../src/libs/histogram.c:117 msgid "tetrad" msgstr "雙互補色" -#: ../src/libs/histogram.c:146 +#: ../src/libs/histogram.c:123 msgid "vectorscope" msgstr "彩度圖" -#: ../src/libs/histogram.c:147 +#: ../src/libs/histogram.c:124 msgid "waveform" msgstr "波形圖" -#: ../src/libs/histogram.c:148 +#: ../src/libs/histogram.c:125 msgid "RGB parade" msgstr "RGB 並列波形圖" -#: ../src/libs/histogram.c:149 ../src/libs/histogram.c:2309 +#: ../src/libs/histogram.c:126 ../src/libs/histogram.c:2622 msgid "histogram" msgstr "直方圖" -#: ../src/libs/histogram.c:243 +#: ../src/libs/histogram.c:218 msgid "scopes" msgstr "色階分布圖" -#: ../src/libs/histogram.c:1542 +#: ../src/libs/histogram.c:757 +msgid "" +"unsupported vectorscope profile selected, it will be replaced with linear " +"Rec2020" +msgstr "不支援的彩度圖描述檔,會使用線性 Rec. 2020 取代" + +#: ../src/libs/histogram.c:1715 msgid "scroll to coarse-rotate" msgstr "使用滑鼠滾輪旋轉色彩調和角度" -#: ../src/libs/histogram.c:1543 +#: ../src/libs/histogram.c:1716 msgid "ctrl+scroll to fine rotate" msgstr "ctrl + 滑鼠滾輪微調色彩調和角度" -#: ../src/libs/histogram.c:1544 +#: ../src/libs/histogram.c:1717 msgid "shift+scroll to change width" msgstr "shift + 滑鼠滾輪改變扇區寬度" -#: ../src/libs/histogram.c:1545 +#: ../src/libs/histogram.c:1718 msgid "alt+scroll to cycle" msgstr "alt + 滾輪切換色彩調和方式" -#: ../src/libs/histogram.c:1556 +#: ../src/libs/histogram.c:1732 msgid "drag to change black point" msgstr "拖曳以改變黑點" -#: ../src/libs/histogram.c:1557 ../src/libs/histogram.c:1564 +#: ../src/libs/histogram.c:1733 ../src/libs/histogram.c:1740 msgid "double-click resets" msgstr "雙擊以重設" -#: ../src/libs/histogram.c:1563 +#: ../src/libs/histogram.c:1739 msgid "drag to change exposure" msgstr "拖曳以改變曝光" -#: ../src/libs/histogram.c:1725 ../src/libs/histogram.c:1765 +#: ../src/libs/histogram.c:1923 ../src/libs/histogram.c:1965 msgid "set scale to linear" msgstr "切換為線性座標" -#: ../src/libs/histogram.c:1730 ../src/libs/histogram.c:1770 +#: ../src/libs/histogram.c:1928 ../src/libs/histogram.c:1970 msgid "set scale to logarithmic" msgstr "切換為對數座標" -#: ../src/libs/histogram.c:1746 +#: ../src/libs/histogram.c:1946 msgid "set scope to vertical" msgstr "切換為垂直座標" -#: ../src/libs/histogram.c:1751 +#: ../src/libs/histogram.c:1951 msgid "set scope to horizontal" msgstr "切換為水平座標" -#: ../src/libs/histogram.c:1780 +#: ../src/libs/histogram.c:1980 msgid "set view to AzBz" msgstr "切換為 az bz 座標" -#: ../src/libs/histogram.c:1786 +#: ../src/libs/histogram.c:1986 msgid "set view to RYB" msgstr "切換為紅黃藍顏料模型" -#: ../src/libs/histogram.c:1792 +#: ../src/libs/histogram.c:1992 msgid "set view to u*v*" msgstr "切換為 u* v* 座標" -#: ../src/libs/histogram.c:2312 ../src/libs/histogram.c:2370 +#: ../src/libs/histogram.c:2625 ../src/libs/histogram.c:2691 msgid "cycle histogram modes" msgstr "循環顯示直方圖模式" -#: ../src/libs/histogram.c:2316 ../src/libs/histogram.c:2371 +#: ../src/libs/histogram.c:2630 ../src/libs/histogram.c:2693 msgid "hide histogram" msgstr "隱藏直方圖" -#: ../src/libs/histogram.c:2372 ../src/libs/histogram.c:2401 +#: ../src/libs/histogram.c:2696 ../src/libs/histogram.c:2729 msgid "switch histogram view" msgstr "切換直方圖視圖" -#: ../src/libs/histogram.c:2379 +#: ../src/libs/histogram.c:2704 msgid "toggle blue channel" msgstr "顯示/關閉藍色色版" -#: ../src/libs/histogram.c:2381 ../src/libs/histogram.c:2389 -#: ../src/libs/histogram.c:2397 +#: ../src/libs/histogram.c:2706 ../src/libs/histogram.c:2715 +#: ../src/libs/histogram.c:2724 msgid "toggle colors" msgstr "顯示/關閉色版" -#: ../src/libs/histogram.c:2387 +#: ../src/libs/histogram.c:2713 msgid "toggle green channel" msgstr "顯示/關閉綠色色版" -#: ../src/libs/histogram.c:2395 +#: ../src/libs/histogram.c:2722 msgid "toggle red channel" msgstr "顯示/關閉紅色色版" -#: ../src/libs/histogram.c:2405 +#: ../src/libs/histogram.c:2734 msgid "cycle vectorscope types" msgstr "切換不同彩度圖座標" -#: ../src/libs/histogram.c:2413 +#: ../src/libs/histogram.c:2745 msgid "color harmonies" msgstr "色彩調和" -#: ../src/libs/histogram.c:2425 +#: ../src/libs/histogram.c:2759 msgid "cycle color harmonies" msgstr "切換色彩調和方式" @@ -22307,10 +22976,18 @@ msgid "mask mode" msgstr "遮罩模式" +#: ../src/libs/history.c:949 +msgid "blend mode" +msgstr "混合模式" + #: ../src/libs/history.c:951 msgid "blend operation" msgstr "混合操作" +#: ../src/libs/history.c:953 +msgid "blend fulcrum" +msgstr "混合中灰點" + #: ../src/libs/history.c:961 msgid "mask blur" msgstr "遮罩模糊" @@ -22354,39 +23031,39 @@ msgid "parametric input mask:" msgstr "色版輸入遮罩:" -#: ../src/libs/history.c:1323 +#: ../src/libs/history.c:1322 msgid "delete image's history?" msgstr "是否要刪除影像的編輯記錄?" -#: ../src/libs/history.c:1324 +#: ../src/libs/history.c:1323 msgid "do you really want to clear history of current image?" msgstr "是否要刪除目前影像的編輯紀錄?" -#: ../src/libs/image.c:72 -msgid "selected image[s]" -msgstr "已選取的影像" +#: ../src/libs/image.c:74 +msgid "actions on selection" +msgstr "對選取的影像執行動作" -#: ../src/libs/image.c:284 +#: ../src/libs/image.c:302 msgid "delete (trash)" msgstr "刪除(垃圾桶)" -#: ../src/libs/image.c:287 +#: ../src/libs/image.c:305 msgid "physically delete from disk (using trash if possible)" msgstr "" "從硬碟中刪除實體檔案\n" "不僅從 darktable 圖庫中刪除,同時也刪除硬碟中的 XMP 附屬檔案\n" "如果圖庫中該影像的所有複本都被刪除,則影像檔案本身也會被刪除" -#: ../src/libs/image.c:288 +#: ../src/libs/image.c:306 msgid "physically delete from disk immediately" msgstr "立即從硬碟刪除實體檔案" -#: ../src/libs/image.c:474 ../src/libs/modulegroups.c:3811 -#: ../src/libs/styles.c:876 +#: ../src/libs/image.c:506 ../src/libs/modulegroups.c:3813 +#: ../src/libs/styles.c:880 msgid "remove" msgstr "移除" -#: ../src/libs/image.c:475 +#: ../src/libs/image.c:508 msgid "remove images from the image library, without deleting" msgstr "" "從圖庫中移除影像\n" @@ -22394,176 +23071,176 @@ "但影像檔案和 XMP 附屬檔案仍存在於硬碟中\n" "之後可以重新匯入恢復所有工作" -#: ../src/libs/image.c:483 +#: ../src/libs/image.c:517 msgid "move..." msgstr "移動至…" -#: ../src/libs/image.c:484 +#: ../src/libs/image.c:519 msgid "move to other folder" msgstr "" "把影像檔案及其 XMP 附屬檔案移動到硬碟裡的另一個資料夾\n" "但如果目標資料夾中有相同名稱的檔案則不會移動" -#: ../src/libs/image.c:487 +#: ../src/libs/image.c:522 msgid "copy..." msgstr "複製到…" -#: ../src/libs/image.c:488 +#: ../src/libs/image.c:524 msgid "copy to other folder" msgstr "" "把影像檔案及其 XMP 附屬檔案複製到硬碟裡的另一個資料夾\n" "如果目標資料夾中有相同名稱的檔案時不會覆寫,而是會生成影像編輯紀錄的複本" -#: ../src/libs/image.c:491 +#: ../src/libs/image.c:528 msgid "create HDR" msgstr "建立 HDR" -#: ../src/libs/image.c:492 +#: ../src/libs/image.c:530 msgid "create a high dynamic range image from selected shots" msgstr "" "從已選擇的影像製作 HDR 高動態範圍影像,並將合成結果以 DNG 格式的新影像加到圖" "庫中" -#: ../src/libs/image.c:496 +#: ../src/libs/image.c:535 msgid "add a duplicate to the image library, including its history stack" msgstr "" "製作一份僅在 darktable 圖庫中的複本,包括影像編輯紀錄\n" "多個複本版本使用共同的實際影像檔案,但擁有自己獨立的 XMP 附屬檔案\n" "以便做同一影像、不同編輯方式的比較使用" -#: ../src/libs/image.c:502 ../src/libs/image.c:505 +#: ../src/libs/image.c:542 ../src/libs/image.c:547 msgid "rotate selected images 90 degrees CCW" msgstr "逆時針旋轉 90 度,此操作與「方向」模組連動" -#: ../src/libs/image.c:509 ../src/libs/image.c:512 +#: ../src/libs/image.c:553 ../src/libs/image.c:558 msgid "rotate selected images 90 degrees CW" msgstr "順時針旋轉 90 度,此操作與「方向」模組連動" -#: ../src/libs/image.c:514 +#: ../src/libs/image.c:561 msgid "reset rotation" msgstr "重設旋轉" -#: ../src/libs/image.c:515 +#: ../src/libs/image.c:563 msgid "reset rotation to EXIF data" msgstr "重設方向為 EXIF 中紀錄的數值,此操作與「方向」模組連動" -#: ../src/libs/image.c:518 +#: ../src/libs/image.c:566 msgid "copy locally" msgstr "本機備份" -#: ../src/libs/image.c:519 +#: ../src/libs/image.c:568 msgid "copy the image locally" msgstr "" "在本機磁碟製作一份備份,當無法連接原始外接設備時使用\n" "詳細內容請閱讀操作手冊的「local copies」章節" -#: ../src/libs/image.c:522 +#: ../src/libs/image.c:572 msgid "resync local copy" msgstr "同步備份" -#: ../src/libs/image.c:523 +#: ../src/libs/image.c:574 msgid "synchronize the image's XMP and remove the local copy" msgstr "" "同步本機備份與外接磁碟的 XMP 附屬檔案,並刪除本機備份副本\n" "若無法連接外接磁碟,則此操作不會刪除本機備份檔案" -#: ../src/libs/image.c:526 +#: ../src/libs/image.c:578 msgctxt "selected images action" msgid "group" msgstr "群組" -#: ../src/libs/image.c:527 +#: ../src/libs/image.c:580 msgid "add selected images to expanded group or create a new one" msgstr "將選擇的影像組成群組" -#: ../src/libs/image.c:531 +#: ../src/libs/image.c:584 msgid "ungroup" msgstr "解散群組" -#: ../src/libs/image.c:532 +#: ../src/libs/image.c:586 msgid "remove selected images from the group" msgstr "將選擇的影像移出群組" -#: ../src/libs/image.c:544 +#: ../src/libs/image.c:598 msgid "select ratings metadata" msgstr "選取評分的詮釋資料" -#: ../src/libs/image.c:550 +#: ../src/libs/image.c:605 msgid "colors" msgstr "色彩" -#: ../src/libs/image.c:552 +#: ../src/libs/image.c:607 msgid "select colors metadata" msgstr "選取色彩的詮釋資料" -#: ../src/libs/image.c:560 +#: ../src/libs/image.c:616 msgid "select tags metadata" msgstr "選取標籤的詮釋資料" -#: ../src/libs/image.c:568 +#: ../src/libs/image.c:625 msgid "select geo tags metadata" msgstr "選取地理標籤的詮釋資料" -#: ../src/libs/image.c:576 +#: ../src/libs/image.c:636 msgid "select darktable metadata (from metadata editor module)" msgstr "選擇 darktable 詮釋資料(來自詮釋資料編輯模組)" -#: ../src/libs/image.c:584 +#: ../src/libs/image.c:649 msgid "set the selected image as source of metadata" msgstr "從選取的影像複製詮釋資料" -#: ../src/libs/image.c:589 +#: ../src/libs/image.c:656 msgid "paste selected metadata on selected images" msgstr "將選取的詮釋資料貼到選取影像上" -#: ../src/libs/image.c:593 +#: ../src/libs/image.c:661 msgid "clear selected metadata on selected images" msgstr "刪除影像中已選取的詮釋資料" -#: ../src/libs/image.c:598 +#: ../src/libs/image.c:667 msgid "how to handle existing metadata" msgstr "如何處理現有的詮釋資料" -#: ../src/libs/image.c:601 +#: ../src/libs/image.c:670 msgid "merge" msgstr "合併" -#: ../src/libs/image.c:605 +#: ../src/libs/image.c:675 msgid "update image information to match changes to file" msgstr "" "重新讀取影像中的 EXIF 資料\n" "⚠️ 警告:這可能會覆蓋 darktable 中更改的標籤和詮釋資料 ⚠️" -#: ../src/libs/image.c:609 +#: ../src/libs/image.c:680 msgid "set selection as monochrome images and activate monochrome workflow" msgstr "把影像標記為黑白,可能情況下會啟用黑白影像工作流程的編輯模組" -#: ../src/libs/image.c:613 +#: ../src/libs/image.c:684 msgid "set selection as color images" msgstr "把影像標記為彩色,也就是刪除黑白影像的標記" -#: ../src/libs/image.c:625 +#: ../src/libs/image.c:696 msgid "duplicate virgin" msgstr "複製原圖" -#: ../src/libs/import.c:263 +#: ../src/libs/import.c:264 #, c-format msgid "device \"%s\" connected on port \"%s\"." msgstr "裝置「%s」已連接到「%s」" -#: ../src/libs/import.c:273 ../src/libs/import.c:334 ../src/libs/import.c:1692 +#: ../src/libs/import.c:274 ../src/libs/import.c:335 ../src/libs/import.c:1701 msgid "copy & import from camera" msgstr "從相機複製和匯入" -#: ../src/libs/import.c:284 ../src/libs/import.c:336 +#: ../src/libs/import.c:285 ../src/libs/import.c:337 msgid "tethered shoot" msgstr "連機拍攝" -#: ../src/libs/import.c:291 ../src/libs/import.c:337 +#: ../src/libs/import.c:292 ../src/libs/import.c:338 msgid "unmount camera" msgstr "移除相機" -#: ../src/libs/import.c:312 +#: ../src/libs/import.c:313 msgid "" "camera is locked by another application\n" "make sure it is no longer mounted\n" @@ -22573,37 +23250,37 @@ "確認相機沒有被其他程式連接\n" "或關閉占用的程式" -#: ../src/libs/import.c:315 +#: ../src/libs/import.c:316 msgid "tethering and importing is disabled for this camera" msgstr "已停止此相機的連機拍攝和匯入" -#: ../src/libs/import.c:317 ../src/libs/import.c:335 +#: ../src/libs/import.c:318 ../src/libs/import.c:336 msgid "mount camera" msgstr "連接相機" -#: ../src/libs/import.c:747 +#: ../src/libs/import.c:754 #, c-format msgid "%d image out of %d selected" msgid_plural "%d images out of %d selected" msgstr[0] "已選擇 %d 張,總共 %d 張影像" -#: ../src/libs/import.c:1039 +#: ../src/libs/import.c:1046 msgid "you can't delete the selected place" msgstr "不能刪除使用中的位置" -#: ../src/libs/import.c:1153 +#: ../src/libs/import.c:1160 msgid "choose the root of the folder tree below" msgstr "選擇要顯示在下方資料夾的位置" -#: ../src/libs/import.c:1156 +#: ../src/libs/import.c:1163 msgid "places" msgstr "快速存取位置" -#: ../src/libs/import.c:1162 +#: ../src/libs/import.c:1169 msgid "restore all default places you have removed by right-click" msgstr "點擊恢復被移除的預設位置" -#: ../src/libs/import.c:1167 +#: ../src/libs/import.c:1174 msgid "" "add a custom place\n" "\n" @@ -22612,79 +23289,105 @@ "添加自訂位置\n" "右鍵點擊可將其移除" -#: ../src/libs/import.c:1174 +#: ../src/libs/import.c:1181 msgid "you can add custom places using the plus icon" msgstr "使用加號圖示來添加自訂位置" -#: ../src/libs/import.c:1199 +#: ../src/libs/import.c:1206 msgid "select a folder to see the content" msgstr "選擇資料夾以查看內容" -#: ../src/libs/import.c:1202 +#: ../src/libs/import.c:1209 msgid "folders" msgstr "資料夾排序" -#: ../src/libs/import.c:1272 +#: ../src/libs/import.c:1279 msgid "home" msgstr "家目錄" -#: ../src/libs/import.c:1284 +#: ../src/libs/import.c:1291 msgid "pictures" msgstr "影像" -#: ../src/libs/import.c:1548 +#: ../src/libs/import.c:1557 msgid "mark already imported pictures" msgstr "已匯入的影像標示" -#: ../src/libs/import.c:1562 +#: ../src/libs/import.c:1571 msgid "modified" msgstr "修改日期" -#: ../src/libs/import.c:1567 +#: ../src/libs/import.c:1576 msgid "file 'modified date/time', may be different from 'Exif date/time'" msgstr "檔案修改日期可能與 EXIF 紀錄的日期不同" -#: ../src/libs/import.c:1579 +#: ../src/libs/import.c:1588 msgid "show/hide thumbnails" msgstr "顯示 / 隱藏縮圖" -#: ../src/libs/import.c:1649 +#: ../src/libs/import.c:1658 msgid "naming rules" msgstr "命名規則" -#: ../src/libs/import.c:1690 +#: ../src/libs/import.c:1699 msgid "add to library" msgstr "匯入影像" -#: ../src/libs/import.c:1691 +#: ../src/libs/import.c:1700 msgid "copy & import" msgstr "複製和匯入" -#: ../src/libs/import.c:1730 +#: ../src/libs/import.c:1740 msgid "select new" msgstr "選取新影像" -#: ../src/libs/import.c:1773 +#: ../src/libs/import.c:1783 msgid "please wait while prefetching the list of images from camera..." msgstr "正在從相機中讀取影像,請稍候…" -#: ../src/libs/import.c:1907 +#: ../src/libs/import.c:1922 msgid "invalid override date/time format" msgstr "無效的日期 / 時間格式" -#: ../src/libs/import.c:2022 +#: ../src/libs/import.c:1986 +msgid "import base directory" +msgstr "匯入時的基礎資料夾" + +#: ../src/libs/import.c:1987 +msgid "" +"before copying images to the darktable base directory make sure it is " +"defined as you prefer.\n" +"further information can be found in the darktable manual.\n" +"\n" +"inspect darktable preferences -> import.\n" +"check and possibly correct the 'base directory naming pattern'" +msgstr "" +"把影像複製到 darktable 基礎資料夾之前,請確認該資料夾已被定義。\n" +"更多訊息請參考 darktable 操作手冊。\n" +"\n" +"檢查「偏好設定 -> 匯入」,確認基礎資料夾命名方式" + +#: ../src/libs/import.c:1991 +msgid "_come back & check" +msgstr "回復與確認" + +#: ../src/libs/import.c:1991 +msgid "_understood & done" +msgstr "了解並關閉" + +#: ../src/libs/import.c:2057 msgid "add to library..." msgstr "匯入影像…" -#: ../src/libs/import.c:2023 +#: ../src/libs/import.c:2058 msgid "add existing images to the library" msgstr "將硬碟中現有的影像匯入" -#: ../src/libs/import.c:2029 +#: ../src/libs/import.c:2064 msgid "copy & import..." msgstr "複製並匯入…" -#: ../src/libs/import.c:2030 +#: ../src/libs/import.c:2065 msgid "" "copy and optionally rename images before adding them to the library\n" "patterns can be defined to rename the images and specify the destination " @@ -22694,15 +23397,15 @@ "可以自訂檔案命名規則,並指定要儲存的資料夾位置" #. collapsible section -#: ../src/libs/import.c:2053 +#: ../src/libs/import.c:2088 msgid "parameters" msgstr "匯入參數設定" -#: ../src/libs/ioporder.c:204 +#: ../src/libs/ioporder.c:202 msgid "v3.0 for RAW input (default)" msgstr "V3.0 適用於 RAW 檔(預設)" -#: ../src/libs/ioporder.c:210 +#: ../src/libs/ioporder.c:208 msgid "v3.0 for JPEG/non-RAW input" msgstr "V3.0 適用於 JPEG 與非 RAW 檔影像" @@ -22718,11 +23421,11 @@ msgid "nothing to save" msgstr "沒有東西可以儲存" -#: ../src/libs/lib.c:1105 +#: ../src/libs/lib.c:1106 msgid "show module" msgstr "顯示模組" -#: ../src/libs/lib.c:1430 +#: ../src/libs/lib.c:1431 msgid "utility module" msgstr "工具模組" @@ -22954,164 +23657,109 @@ msgid "map settings" msgstr "地圖設定" -#: ../src/libs/map_settings.c:107 +#: ../src/libs/map_settings.c:89 msgid "map source" msgstr "地圖來源" -#: ../src/libs/map_settings.c:112 +#: ../src/libs/map_settings.c:90 msgid "select the source of the map. some entries might not work" msgstr "選擇地圖資訊的提供者" -#: ../src/libs/masks.c:107 +#: ../src/libs/masks.c:108 msgid "feather" msgstr "羽化" -#: ../src/libs/masks.c:114 -msgid "hardness (relative)" -msgstr "硬度(相對值)" - -#: ../src/libs/masks.c:115 -msgid "hardness (absolute)" -msgstr "硬度(絕對值)" - -#: ../src/libs/masks.c:116 -msgid "opacity (relative)" -msgstr "透明度(相對值)" - -#: ../src/libs/masks.c:117 -msgid "opacity (absolute)" -msgstr "透明度(絕對值)" - -#: ../src/libs/masks.c:118 -msgid "brush size (relative)" -msgstr "筆刷尺寸(相對值)" - -#: ../src/libs/masks.c:121 -msgid "low" -msgstr "低" - -#: ../src/libs/masks.c:122 -msgid "medium" -msgstr "中" - -#: ../src/libs/masks.c:123 -msgid "high" -msgstr "高" - -#: ../src/libs/masks.c:381 +#: ../src/libs/masks.c:357 #, c-format msgid "group #%d" msgstr "群組 #%d" -#: ../src/libs/masks.c:1081 +#: ../src/libs/masks.c:1097 msgid "duplicate this shape" msgstr "複製這個遮罩" -#: ../src/libs/masks.c:1085 +#: ../src/libs/masks.c:1101 msgid "delete this shape" msgstr "刪除這個遮罩" -#: ../src/libs/masks.c:1091 +#: ../src/libs/masks.c:1107 msgid "delete group" msgstr "刪除群組遮罩" -#: ../src/libs/masks.c:1098 +#: ../src/libs/masks.c:1114 msgid "remove from group" msgstr "從群組中移除" -#: ../src/libs/masks.c:1106 +#: ../src/libs/masks.c:1122 msgid "group the forms" msgstr "把遮罩組成群組" -#: ../src/libs/masks.c:1114 +#: ../src/libs/masks.c:1130 msgid "use inverted shape" msgstr "反轉遮罩" -#: ../src/libs/masks.c:1121 +#: ../src/libs/masks.c:1134 msgid "mode: union" msgstr "模式:聯集(或是)" -#: ../src/libs/masks.c:1127 +#: ../src/libs/masks.c:1136 msgid "mode: intersection" msgstr "模式:交集(並且)" -#: ../src/libs/masks.c:1133 +#: ../src/libs/masks.c:1138 msgid "mode: difference" msgstr "模式:差集(減去)" -#: ../src/libs/masks.c:1139 +#: ../src/libs/masks.c:1140 msgid "mode: sum" msgstr "模式:疊加" -#: ../src/libs/masks.c:1145 +#: ../src/libs/masks.c:1142 msgid "mode: exclusion" msgstr "模式:互斥(兩者不含交集)" -#: ../src/libs/masks.c:1164 +#: ../src/libs/masks.c:1158 msgid "cleanup unused shapes" msgstr "清除未使用的遮罩" -#: ../src/libs/masks.c:1811 +#: ../src/libs/masks.c:1807 msgid "created shapes" msgstr "已建立的遮罩" -#: ../src/libs/masks.c:1904 ../src/libs/masks.c:1919 ../src/libs/masks.c:1939 -#: ../src/libs/masks.c:1955 +#: ../src/libs/masks.c:1900 ../src/libs/masks.c:1915 ../src/libs/masks.c:1929 +#: ../src/libs/masks.c:1933 msgid "properties" msgstr "屬性" -#: ../src/libs/masks.c:1907 +#: ../src/libs/masks.c:1903 msgid "no shapes selected" msgstr "沒有選取遮罩" -#: ../src/libs/masks.c:1940 +#: ../src/libs/masks.c:1929 msgid "pressure" msgstr "壓力" -#: ../src/libs/masks.c:1941 -msgid "" -"pen pressure control for brush masks\n" -"'off': pressure reading ignored,\n" -"'hardness'/'opacity'/'brush size': pressure reading controls specified " -"attribute,\n" -"'absolute'/'relative': pressure reading is taken directly as attribute value " -"or multiplied with pre-defined setting." -msgstr "" -"控制繪圖板的壓力在繪製筆刷遮罩時的控制方式\n" -"關閉:忽略壓力\n" -"硬度、透明度、尺寸:壓力控制對應的屬性\n" -"絕對、相對:壓力直接作為設定值或與預設值相乘" - -#: ../src/libs/masks.c:1956 +#: ../src/libs/masks.c:1933 msgid "smoothing" msgstr "平滑化" -#: ../src/libs/masks.c:1957 -msgid "" -"smoothing of brush strokes\n" -"stronger smoothing leads to fewer nodes and easier editing but with lower " -"control of accuracy." -msgstr "" -"平滑化筆刷筆觸\n" -"越平滑會產生較少的節點以方便編輯,但也會降低控制性與精準度" - -#: ../src/libs/metadata.c:64 +#: ../src/libs/metadata.c:60 msgid "metadata editor" msgstr "詮釋資料編輯器" -#: ../src/libs/metadata.c:206 ../src/libs/metadata.c:496 -msgid "<leave unchanged>" -msgstr "<保持不變>" - -#: ../src/libs/metadata.c:630 ../src/libs/metadata_view.c:1192 +#: ../src/libs/metadata.c:459 ../src/libs/metadata_view.c:1219 msgid "metadata settings" msgstr "詮釋資料設定" -#: ../src/libs/metadata.c:683 ../src/libs/metadata_view.c:1237 +#: ../src/libs/metadata.c:461 ../src/libs/metadata_view.c:1221 +msgid "_default" +msgstr "預設(_D)" + +#: ../src/libs/metadata.c:516 ../src/libs/metadata_view.c:1267 msgid "visible" msgstr "顯示" -#: ../src/libs/metadata.c:688 +#: ../src/libs/metadata.c:524 msgid "" "tick if the corresponding metadata is of interest for you\n" "it will be visible from metadata editor, collection and import module\n" @@ -23121,19 +23769,19 @@ "此設定會套用至「詮釋資料編輯器」、「相冊」、「影像匯入」模組\n" "欄位同時也會包含在匯出的檔案中" -#: ../src/libs/metadata.c:693 ../src/libs/tagging.c:1683 -#: ../src/libs/tagging.c:1827 +#: ../src/libs/metadata.c:529 ../src/libs/tagging.c:1705 +#: ../src/libs/tagging.c:1854 msgid "private" msgstr "隱私" -#: ../src/libs/metadata.c:698 +#: ../src/libs/metadata.c:534 msgid "" "tick if you want to keep this information private (not exported with images)" msgstr "" "勾選後設定為私人欄位\n" "私人欄位不會隨著影像匯出" -#: ../src/libs/metadata.c:857 +#: ../src/libs/metadata.c:691 msgid "" "metadata text\n" "ctrl+enter inserts a new line (caution, may not be compatible with standard " @@ -23146,168 +23794,180 @@ "如果 <保持不變> 所選影像具有不同的詮釋資料,右鍵點擊可以從其中選擇\n" "按 esc 鍵退出彈出視窗" -#: ../src/libs/metadata.c:902 +#: ../src/libs/metadata.c:736 msgid "write metadata for selected images" msgstr "寫入詮釋資料至選取的影像" +#: ../src/libs/metadata.c:737 +msgid "cancel" +msgstr "取消" + +#: ../src/libs/metadata.c:738 +msgid "ignore changed metadata" +msgstr "忽略已變更的詮釋資料" + #. <title>\0<description>\0<rights>\0<creator>\0<publisher> -#: ../src/libs/metadata.c:958 +#: ../src/libs/metadata.c:793 msgid "CC BY" msgstr "CC BY" -#: ../src/libs/metadata.c:959 +#: ../src/libs/metadata.c:794 msgid "Creative Commons Attribution (CC BY)" msgstr "創用CC授權條款 - 姓名標示 (CC BY)" -#: ../src/libs/metadata.c:960 +#: ../src/libs/metadata.c:795 msgid "CC BY-SA" msgstr "CC BY-SA" -#: ../src/libs/metadata.c:961 +#: ../src/libs/metadata.c:796 msgid "Creative Commons Attribution-ShareAlike (CC BY-SA)" msgstr "創用CC授權條款 - 姓名標示 - 相同方式分享(CC BY-SA)" -#: ../src/libs/metadata.c:962 +#: ../src/libs/metadata.c:797 msgid "CC BY-ND" msgstr "CC BY-ND" -#: ../src/libs/metadata.c:963 +#: ../src/libs/metadata.c:798 msgid "Creative Commons Attribution-NoDerivs (CC BY-ND)" msgstr "創用CC授權條款 - 姓名標示 - 禁止改作(CC BY-ND)" -#: ../src/libs/metadata.c:964 +#: ../src/libs/metadata.c:799 msgid "CC BY-NC" msgstr "CC BY-NC" -#: ../src/libs/metadata.c:965 +#: ../src/libs/metadata.c:800 msgid "Creative Commons Attribution-NonCommercial (CC BY-NC)" msgstr "創用CC授權條款 - 姓名標示 - 非商業性(CC BY-NC)" -#: ../src/libs/metadata.c:966 +#: ../src/libs/metadata.c:801 msgid "CC BY-NC-SA" msgstr "CC BY-NC-SA" -#: ../src/libs/metadata.c:967 +#: ../src/libs/metadata.c:802 msgid "Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA)" msgstr "創用CC授權條款 - 姓名標示 - 非商業性 - 相同方式分享(CC BY-NC-SA)" -#: ../src/libs/metadata.c:968 +#: ../src/libs/metadata.c:803 msgid "CC BY-NC-ND" msgstr "CC BY-NC-ND" -#: ../src/libs/metadata.c:969 +#: ../src/libs/metadata.c:804 msgid "Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)" msgstr "創用CC授權條款 - 姓名標示 - 非商業性 - 禁止改作(CC BY-NC-ND)" -#: ../src/libs/metadata.c:970 ../src/libs/metadata.c:971 +#: ../src/libs/metadata.c:805 ../src/libs/metadata.c:806 msgid "all rights reserved" msgstr "保留所有權利" #. internal -#: ../src/libs/metadata_view.c:123 +#: ../src/libs/metadata_view.c:125 msgid "filmroll" msgstr "底片卷" -#: ../src/libs/metadata_view.c:125 +#: ../src/libs/metadata_view.c:127 msgid "group id" msgstr "群組識別碼" -#: ../src/libs/metadata_view.c:127 +#: ../src/libs/metadata_view.c:129 msgid "version" msgstr "複本版本" -#: ../src/libs/metadata_view.c:130 +#: ../src/libs/metadata_view.c:132 msgid "import timestamp" msgstr "匯入日期" -#: ../src/libs/metadata_view.c:131 +#: ../src/libs/metadata_view.c:133 msgid "change timestamp" msgstr "編輯日期" -#: ../src/libs/metadata_view.c:132 +#: ../src/libs/metadata_view.c:134 msgid "export timestamp" msgstr "匯出日期" -#: ../src/libs/metadata_view.c:133 +#: ../src/libs/metadata_view.c:135 msgid "print timestamp" msgstr "列印日期" -#: ../src/libs/metadata_view.c:134 +#: ../src/libs/metadata_view.c:136 msgid "flags" msgstr "旗幟" -#: ../src/libs/metadata_view.c:144 +#: ../src/libs/metadata_view.c:146 +msgid "35mm equiv focal length" +msgstr "35mm 等校焦長" + +#: ../src/libs/metadata_view.c:148 msgid "focus distance" msgstr "對焦距離" -#: ../src/libs/metadata_view.c:146 +#: ../src/libs/metadata_view.c:150 msgid "datetime" msgstr "拍攝日期" -#: ../src/libs/metadata_view.c:149 +#: ../src/libs/metadata_view.c:153 msgid "export width" msgstr "匯出寬度" -#: ../src/libs/metadata_view.c:150 +#: ../src/libs/metadata_view.c:154 msgid "export height" msgstr "匯出高度" -#: ../src/libs/metadata_view.c:158 +#: ../src/libs/metadata_view.c:162 msgid "longitude" msgstr "經度" -#: ../src/libs/metadata_view.c:159 +#: ../src/libs/metadata_view.c:163 msgid "elevation" msgstr "海拔" -#: ../src/libs/metadata_view.c:163 +#: ../src/libs/metadata_view.c:167 msgid "categories" msgstr "分類" -#: ../src/libs/metadata_view.c:170 +#: ../src/libs/metadata_view.c:174 msgid "image information" msgstr "影像資訊" -#: ../src/libs/metadata_view.c:330 +#: ../src/libs/metadata_view.c:334 msgid "unused/deprecated" msgstr "未使用 / 已被汰除" -#: ../src/libs/metadata_view.c:331 +#: ../src/libs/metadata_view.c:335 msgid "LDR" msgstr "低動態範圍影像" -#: ../src/libs/metadata_view.c:334 +#: ../src/libs/metadata_view.c:338 msgid "marked for deletion" msgstr "已標記刪除" -#: ../src/libs/metadata_view.c:335 +#: ../src/libs/metadata_view.c:339 msgid "auto-applying presets applied" msgstr "已啟用自動套用的預設集" -#: ../src/libs/metadata_view.c:337 +#: ../src/libs/metadata_view.c:341 msgid "has .txt" msgstr "含有 .txt" -#: ../src/libs/metadata_view.c:338 +#: ../src/libs/metadata_view.c:342 msgid "has .wav" msgstr "含有 .wav" -#: ../src/libs/metadata_view.c:356 +#: ../src/libs/metadata_view.c:360 #, c-format msgid "image has %d star" msgid_plural "image has %d stars" msgstr[0] "影像評分為 %d 顆星" -#: ../src/libs/metadata_view.c:432 +#: ../src/libs/metadata_view.c:436 #, c-format msgid "loader: %s" msgstr "載入:「%s」" -#: ../src/libs/metadata_view.c:623 +#: ../src/libs/metadata_view.c:626 msgid "<various values>" msgstr "<多種數值>" -#: ../src/libs/metadata_view.c:636 +#: ../src/libs/metadata_view.c:639 #, c-format msgid "" "double-click to jump to film roll\n" @@ -23316,32 +23976,28 @@ "雙擊跳到底片卷\n" "「%s」" -#: ../src/libs/metadata_view.c:728 +#: ../src/libs/metadata_view.c:731 #, c-format msgid "%+.2f EV" msgstr "%+.2f EV" -#: ../src/libs/metadata_view.c:735 -#, c-format -msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" -msgstr "%.1f mm(全幅等校:%.1f mm,裁切比率:%.1f)" - -#: ../src/libs/metadata_view.c:740 +#: ../src/libs/metadata_view.c:737 ../src/libs/metadata_view.c:749 +#: ../src/libs/metadata_view.c:754 #, c-format msgid "%.1f mm" msgstr "%.1f mm" -#: ../src/libs/metadata_view.c:751 +#: ../src/libs/metadata_view.c:778 #, c-format msgid "infinity" msgstr "無限遠" -#: ../src/libs/metadata_view.c:755 +#: ../src/libs/metadata_view.c:782 #, c-format msgid "%.2f m" msgstr "%.2f 公尺" -#: ../src/libs/metadata_view.c:1232 +#: ../src/libs/metadata_view.c:1262 msgid "" "drag and drop one row at a time until you get the desired order\n" "untick to hide metadata which are not of interest for you\n" @@ -23351,7 +24007,7 @@ "取消勾選可隱藏不希望顯示的詮釋資料\n" "可將不同的設定儲存成預設集來調用" -#: ../src/libs/metadata_view.c:1388 +#: ../src/libs/metadata_view.c:1423 msgid "jump to film roll" msgstr "跳到底片卷" @@ -23376,7 +24032,7 @@ msgid "recent collections settings" msgstr "最近用過的相冊設定" -#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1769 +#: ../src/libs/modulegroups.c:42 ../src/libs/modulegroups.c:1753 msgid "workflow: scene-referred" msgstr "工作流程:場景參照" @@ -23394,174 +24050,174 @@ #. FIXME don't check here if on/off is enabled, because it depends on image (reload_defaults) #. respond later to image changed signal -#: ../src/libs/modulegroups.c:306 ../src/libs/modulegroups.c:318 -#: ../src/libs/modulegroups.c:2427 ../src/libs/modulegroups.c:2429 +#: ../src/libs/modulegroups.c:307 ../src/libs/modulegroups.c:319 +#: ../src/libs/modulegroups.c:2411 ../src/libs/modulegroups.c:2413 msgid "on-off" msgstr "開 / 關" -#: ../src/libs/modulegroups.c:498 ../src/libs/modulegroups.c:501 +#: ../src/libs/modulegroups.c:501 ../src/libs/modulegroups.c:504 msgid "" "this quick access widget is disabled as there are multiple instances of this " "module present. Please use the full module to access this widget..." msgstr "此快速存取小工具被停用,因為此模組有多個實例,請使用完整的模組…" -#: ../src/libs/modulegroups.c:591 +#: ../src/libs/modulegroups.c:594 msgid "(some features may only be available in the full module interface)" msgstr "(某些功能可能只有在完整的模組裡才能使用)" -#: ../src/libs/modulegroups.c:635 +#: ../src/libs/modulegroups.c:632 #, c-format msgid "go to the full version of the %s module" msgstr "前往「%s」模組的完整版本" -#: ../src/libs/modulegroups.c:1556 ../src/libs/modulegroups.c:1641 -#: ../src/libs/modulegroups.c:1677 ../src/libs/modulegroups.c:1727 -#: ../src/libs/modulegroups.c:1817 +#: ../src/libs/modulegroups.c:1538 ../src/libs/modulegroups.c:1624 +#: ../src/libs/modulegroups.c:1660 ../src/libs/modulegroups.c:1710 +#: ../src/libs/modulegroups.c:1801 msgctxt "modulegroup" msgid "base" msgstr "基本模組" -#: ../src/libs/modulegroups.c:1575 +#: ../src/libs/modulegroups.c:1557 msgctxt "modulegroup" msgid "tone" msgstr "階調模組" -#: ../src/libs/modulegroups.c:1584 ../src/libs/modulegroups.c:1691 -#: ../src/libs/modulegroups.c:1741 +#: ../src/libs/modulegroups.c:1566 ../src/libs/modulegroups.c:1674 +#: ../src/libs/modulegroups.c:1724 msgctxt "modulegroup" msgid "color" msgstr "色彩模組" -#: ../src/libs/modulegroups.c:1599 ../src/libs/modulegroups.c:1699 -#: ../src/libs/modulegroups.c:1746 +#: ../src/libs/modulegroups.c:1582 ../src/libs/modulegroups.c:1682 +#: ../src/libs/modulegroups.c:1730 msgctxt "modulegroup" msgid "correct" msgstr "校正模組" -#: ../src/libs/modulegroups.c:1617 ../src/libs/modulegroups.c:1711 -#: ../src/libs/modulegroups.c:1758 ../src/libs/modulegroups.c:2321 +#: ../src/libs/modulegroups.c:1600 ../src/libs/modulegroups.c:1694 +#: ../src/libs/modulegroups.c:1742 ../src/libs/modulegroups.c:2305 msgctxt "modulegroup" msgid "effect" msgstr "效果模組" -#: ../src/libs/modulegroups.c:1635 +#: ../src/libs/modulegroups.c:1618 msgid "modules: all" msgstr "模組:全部" -#: ../src/libs/modulegroups.c:1656 +#: ../src/libs/modulegroups.c:1639 msgctxt "modulegroup" msgid "grading" msgstr "調色模組" -#: ../src/libs/modulegroups.c:1664 ../src/libs/modulegroups.c:2325 +#: ../src/libs/modulegroups.c:1647 ../src/libs/modulegroups.c:2309 msgctxt "modulegroup" msgid "effects" msgstr "效果模組" -#: ../src/libs/modulegroups.c:1672 +#: ../src/libs/modulegroups.c:1655 msgid "workflow: beginner" msgstr "工作流程:初學者" -#: ../src/libs/modulegroups.c:1721 +#: ../src/libs/modulegroups.c:1704 msgid "workflow: display-referred" msgstr "工作流程:顯示參照" -#: ../src/libs/modulegroups.c:1773 +#: ../src/libs/modulegroups.c:1757 msgid "search only" msgstr "只有搜尋欄" -#: ../src/libs/modulegroups.c:1779 ../src/libs/modulegroups.c:2090 -#: ../src/libs/modulegroups.c:2599 +#: ../src/libs/modulegroups.c:1763 ../src/libs/modulegroups.c:2074 +#: ../src/libs/modulegroups.c:2583 msgctxt "modulegroup" msgid "deprecated" msgstr "已被汰除" -#: ../src/libs/modulegroups.c:1792 +#: ../src/libs/modulegroups.c:1776 msgid "previous config" msgstr "之前的設定" -#: ../src/libs/modulegroups.c:1793 +#: ../src/libs/modulegroups.c:1777 msgid "previous layout" msgstr "之前的布局" -#: ../src/libs/modulegroups.c:1797 +#: ../src/libs/modulegroups.c:1781 msgid "previous config with new layout" msgstr "套用舊設定的新布局" -#: ../src/libs/modulegroups.c:1957 ../src/libs/modulegroups.c:2472 -#: ../src/libs/modulegroups.c:2484 +#: ../src/libs/modulegroups.c:1941 ../src/libs/modulegroups.c:2456 +#: ../src/libs/modulegroups.c:2468 msgid "remove this widget" msgstr "移除這個小工具" -#: ../src/libs/modulegroups.c:2107 ../src/libs/modulegroups.c:2347 +#: ../src/libs/modulegroups.c:2091 ../src/libs/modulegroups.c:2331 msgid "remove this module" msgstr "移除這個模組" #. does it belong to recommended modules ? -#: ../src/libs/modulegroups.c:2316 +#: ../src/libs/modulegroups.c:2300 msgid "base" msgstr "基本模組" -#: ../src/libs/modulegroups.c:2319 +#: ../src/libs/modulegroups.c:2303 msgid "tone" msgstr "階調模組" -#: ../src/libs/modulegroups.c:2322 +#: ../src/libs/modulegroups.c:2306 msgid "technical" msgstr "技術性模組" -#: ../src/libs/modulegroups.c:2323 +#: ../src/libs/modulegroups.c:2307 msgid "grading" msgstr "色調模組" -#: ../src/libs/modulegroups.c:2329 ../src/libs/modulegroups.c:2337 +#: ../src/libs/modulegroups.c:2313 ../src/libs/modulegroups.c:2321 msgid "add this module" msgstr "新增這個模組" #. show the submenu with all the modules -#: ../src/libs/modulegroups.c:2359 ../src/libs/modulegroups.c:2559 +#: ../src/libs/modulegroups.c:2343 ../src/libs/modulegroups.c:2543 msgid "all available modules" msgstr "所有可用的模組" -#: ../src/libs/modulegroups.c:2367 +#: ../src/libs/modulegroups.c:2351 msgid "add module" msgstr "新增模組" -#: ../src/libs/modulegroups.c:2372 +#: ../src/libs/modulegroups.c:2356 msgid "remove module" msgstr "移除模組" -#: ../src/libs/modulegroups.c:2478 +#: ../src/libs/modulegroups.c:2462 msgid "header needed for other widgets" msgstr "其他小工具需要的標題" -#: ../src/libs/modulegroups.c:2494 ../src/libs/modulegroups.c:2501 +#: ../src/libs/modulegroups.c:2478 ../src/libs/modulegroups.c:2485 msgid "add this widget" msgstr "新增這個小工具" -#: ../src/libs/modulegroups.c:2514 +#: ../src/libs/modulegroups.c:2498 msgid "currently invisible" msgstr "目前隱藏的小工具" -#: ../src/libs/modulegroups.c:2543 +#: ../src/libs/modulegroups.c:2527 msgid "add widget" msgstr "新增小工具" -#: ../src/libs/modulegroups.c:2548 +#: ../src/libs/modulegroups.c:2532 msgid "remove widget" msgstr "移除小工具" -#: ../src/libs/modulegroups.c:2653 +#: ../src/libs/modulegroups.c:2637 msgid "show all history modules" msgstr "顯示所有使用過的模組" -#: ../src/libs/modulegroups.c:2656 ../src/libs/modulegroups.c:3834 +#: ../src/libs/modulegroups.c:2640 ../src/libs/modulegroups.c:3836 msgid "" "show modules that are present in the history stack, regardless of whether or " "not they are currently enabled" msgstr "顯示所有影像編輯紀錄中使用過的模組,不論目前是否有被啟用" -#: ../src/libs/modulegroups.c:2747 ../src/libs/modulegroups.c:2816 +#: ../src/libs/modulegroups.c:2731 ../src/libs/modulegroups.c:2823 msgid "" "the following modules are deprecated because they have internal design " "mistakes that can't be corrected and alternative modules that correct them.\n" @@ -23571,19 +24227,19 @@ "因為它們具有無法解決的內部設計錯誤,並且已被新模組取代\n" "這些模組將在下一個版本的 darktable 中被移除,不能用於編輯新的影像" -#: ../src/libs/modulegroups.c:2775 ../src/libs/modulegroups.c:2776 +#: ../src/libs/modulegroups.c:2782 ../src/libs/modulegroups.c:2783 msgid "quick access panel" msgstr "顯示快速存取面板" -#: ../src/libs/modulegroups.c:2786 +#: ../src/libs/modulegroups.c:2793 msgid "show only active modules" msgstr "只顯示使用中的模組" -#: ../src/libs/modulegroups.c:2787 +#: ../src/libs/modulegroups.c:2794 msgid "active modules" msgstr "使用中的模組" -#: ../src/libs/modulegroups.c:2792 +#: ../src/libs/modulegroups.c:2799 msgid "" "presets\n" "ctrl+click to manage" @@ -23591,143 +24247,147 @@ "預設集\n" "ctrl + 點擊以管理" -#: ../src/libs/modulegroups.c:2798 +#: ../src/libs/modulegroups.c:2805 msgid "search modules" msgstr "搜尋模組" -#: ../src/libs/modulegroups.c:2799 +#: ../src/libs/modulegroups.c:2806 msgid "search modules by name or tag" msgstr "依名稱或標籤來搜尋模組" -#: ../src/libs/modulegroups.c:2809 +#: ../src/libs/modulegroups.c:2816 msgid "clear text" msgstr "清除文字" -#: ../src/libs/modulegroups.c:3051 +#: ../src/libs/modulegroups.c:3056 msgid "basic icon" msgstr "基本圖示" -#: ../src/libs/modulegroups.c:3061 +#: ../src/libs/modulegroups.c:3066 msgid "active icon" msgstr "使用中圖示" -#: ../src/libs/modulegroups.c:3071 +#: ../src/libs/modulegroups.c:3076 msgid "color icon" msgstr "色彩圖示" -#: ../src/libs/modulegroups.c:3081 +#: ../src/libs/modulegroups.c:3086 msgid "correct icon" msgstr "校正圖示" -#: ../src/libs/modulegroups.c:3091 +#: ../src/libs/modulegroups.c:3096 msgid "effect icon" msgstr "效果圖示" -#: ../src/libs/modulegroups.c:3101 +#: ../src/libs/modulegroups.c:3106 msgid "favorites icon" msgstr "常用圖示" -#: ../src/libs/modulegroups.c:3111 +#: ../src/libs/modulegroups.c:3116 msgid "tone icon" msgstr "階調圖示" -#: ../src/libs/modulegroups.c:3121 +#: ../src/libs/modulegroups.c:3126 msgid "grading icon" msgstr "色調圖示" -#: ../src/libs/modulegroups.c:3131 +#: ../src/libs/modulegroups.c:3136 msgid "technical icon" msgstr "技術性圖示" -#: ../src/libs/modulegroups.c:3164 +#: ../src/libs/modulegroups.c:3169 msgid "quick access panel widgets" msgstr "快速存取面板小工具" -#: ../src/libs/modulegroups.c:3166 +#: ../src/libs/modulegroups.c:3171 msgid "quick access" msgstr "快速存取面板" -#: ../src/libs/modulegroups.c:3186 +#: ../src/libs/modulegroups.c:3191 msgid "add widget to the quick access panel" msgstr "新增小工具到快速存取面板" -#: ../src/libs/modulegroups.c:3218 +#: ../src/libs/modulegroups.c:3223 msgid "group icon" msgstr "群組圖示" -#: ../src/libs/modulegroups.c:3227 +#: ../src/libs/modulegroups.c:3232 msgid "group name" msgstr "群組名稱" -#: ../src/libs/modulegroups.c:3238 +#: ../src/libs/modulegroups.c:3243 msgid "remove group" msgstr "刪除群組" -#: ../src/libs/modulegroups.c:3264 +#: ../src/libs/modulegroups.c:3269 msgid "move group to the left" msgstr "向左移動群組" -#: ../src/libs/modulegroups.c:3272 +#: ../src/libs/modulegroups.c:3277 msgid "add module to the group" msgstr "新增模組至群組中" -#: ../src/libs/modulegroups.c:3283 +#: ../src/libs/modulegroups.c:3288 msgid "move group to the right" msgstr "向右移動群組" -#: ../src/libs/modulegroups.c:3463 +#: ../src/libs/modulegroups.c:3464 msgid "rename preset" msgstr "重新命名模組布局" -#: ../src/libs/modulegroups.c:3470 +#: ../src/libs/modulegroups.c:3467 +msgid "_rename" +msgstr "重新命名(_R)" + +#: ../src/libs/modulegroups.c:3473 msgid "new preset name:" msgstr "新的模組布局名稱:" -#: ../src/libs/modulegroups.c:3471 +#: ../src/libs/modulegroups.c:3474 msgid "a preset with this name already exists!" msgstr "這個模組布局名稱已被使用" -#: ../src/libs/modulegroups.c:3804 +#: ../src/libs/modulegroups.c:3806 msgid "preset: " msgstr "模組布局:" -#: ../src/libs/modulegroups.c:3811 +#: ../src/libs/modulegroups.c:3813 msgid "remove the preset" msgstr "刪除模組布局" -#: ../src/libs/modulegroups.c:3813 +#: ../src/libs/modulegroups.c:3815 msgid "duplicate the preset" msgstr "複製模組布局" -#: ../src/libs/modulegroups.c:3815 +#: ../src/libs/modulegroups.c:3817 msgid "rename the preset" msgstr "重新命名模組布局" -#: ../src/libs/modulegroups.c:3817 +#: ../src/libs/modulegroups.c:3819 msgid "create a new empty preset" msgstr "建立新的空白模組布局" -#: ../src/libs/modulegroups.c:3825 +#: ../src/libs/modulegroups.c:3827 msgid "show search line" msgstr "顯示搜尋欄位" -#: ../src/libs/modulegroups.c:3828 +#: ../src/libs/modulegroups.c:3830 msgid "show quick access panel" msgstr "顯示快速存取面板" -#: ../src/libs/modulegroups.c:3831 +#: ../src/libs/modulegroups.c:3833 msgid "show all history modules in active group" msgstr "顯示所有使用過的模組" -#: ../src/libs/modulegroups.c:3843 +#: ../src/libs/modulegroups.c:3845 msgid "auto-apply this preset" msgstr "自動套用這個預設集" -#: ../src/libs/modulegroups.c:3858 +#: ../src/libs/modulegroups.c:3860 msgid "module groups" msgstr "新增模組群組" -#: ../src/libs/modulegroups.c:3875 +#: ../src/libs/modulegroups.c:3877 msgid "" "this is a built-in read-only preset. duplicate it if you want to make changes" msgstr "這是唯讀的模組內建預設集,想進行更改請複製另存為新預設集" @@ -23736,50 +24396,50 @@ msgid "navigation" msgstr "導覽" -#: ../src/libs/navigation.c:111 ../src/libs/navigation.c:191 +#: ../src/libs/navigation.c:112 ../src/libs/navigation.c:194 msgctxt "navigationbox" msgid "fill" msgstr "填滿" -#: ../src/libs/navigation.c:114 ../src/libs/navigation.c:189 +#: ../src/libs/navigation.c:115 ../src/libs/navigation.c:192 msgid "small" msgstr "縮小顯示" -#: ../src/libs/navigation.c:151 +#: ../src/libs/navigation.c:154 msgid "" "navigation\n" "click or drag to position zoomed area in center view" msgstr "點擊或拖動放大顯示區域至中心" -#: ../src/libs/navigation.c:173 +#: ../src/libs/navigation.c:176 msgid "hide navigation thumbnail" msgstr "隱藏導覽縮圖" -#: ../src/libs/navigation.c:187 +#: ../src/libs/navigation.c:190 msgid "image zoom level" msgstr "影像縮放比例" -#: ../src/libs/navigation.c:192 +#: ../src/libs/navigation.c:195 msgid "50%" msgstr "50%" -#: ../src/libs/navigation.c:193 +#: ../src/libs/navigation.c:196 msgid "100%" msgstr "100%" -#: ../src/libs/navigation.c:194 +#: ../src/libs/navigation.c:197 msgid "200%" msgstr "200%" -#: ../src/libs/navigation.c:195 +#: ../src/libs/navigation.c:198 msgid "400%" msgstr "400%" -#: ../src/libs/navigation.c:196 +#: ../src/libs/navigation.c:199 msgid "800%" msgstr "800%" -#: ../src/libs/navigation.c:197 +#: ../src/libs/navigation.c:200 msgid "1600%" msgstr "1600%" @@ -24022,27 +24682,27 @@ msgid "print with current settings" msgstr "以目前的設定列印" -#: ../src/libs/select.c:136 +#: ../src/libs/select.c:137 msgid "select all images in current collection" msgstr "選取目前相冊中的所有影像" -#: ../src/libs/select.c:140 +#: ../src/libs/select.c:141 msgid "clear selection" msgstr "取消選取" -#: ../src/libs/select.c:144 +#: ../src/libs/select.c:145 msgid "" "select unselected images\n" "in current collection" msgstr "選取目前相冊中未選取的影像" -#: ../src/libs/select.c:148 +#: ../src/libs/select.c:149 msgid "" "select all images which are in the same\n" "film roll as the selected images" msgstr "選取和目前已選取影像在同卷底片中的所有影像" -#: ../src/libs/select.c:152 +#: ../src/libs/select.c:153 msgid "" "select untouched images in\n" "current collection" @@ -24060,29 +24720,33 @@ msgid "create" msgstr "建立" -#: ../src/libs/snapshots.c:92 +#: ../src/libs/snapshots.c:88 msgid "snapshots" msgstr "快照" -#: ../src/libs/snapshots.c:141 +#: ../src/libs/snapshots.c:137 msgctxt "snapshot sign" msgid "S" msgstr "S" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:662 +msgid "snapshots for removed image have been deleted" +msgstr "已刪除圖檔的快照已被刪除" + +#: ../src/libs/snapshots.c:703 #, c-format msgid "↗ %s '%s'" msgstr "↗ %s '%s'" -#: ../src/libs/snapshots.c:574 +#: ../src/libs/snapshots.c:703 msgid "this snapshot was taken from" msgstr "這張快照取自" -#: ../src/libs/snapshots.c:663 +#: ../src/libs/snapshots.c:742 msgid "take snapshot" msgstr "建立快照" -#: ../src/libs/snapshots.c:665 +#: ../src/libs/snapshots.c:744 msgid "" "take snapshot to compare with another image or the same image at another " "stage of development" @@ -24092,7 +24756,7 @@ "可使用滑鼠拖移改變分割線的位置,點擊分割線上的旋轉圖示切換水平或垂直分割\n" "每次點擊都會把位置逆時針旋轉 90 度,以便選擇快照要顯示在左、下、右、上方" -#: ../src/libs/snapshots.c:734 +#: ../src/libs/snapshots.c:790 msgid "toggle last snapshot" msgstr "切換到上一個快照" @@ -24107,7 +24771,11 @@ msgid_plural "do you really want to remove %d styles?" msgstr[0] "確定要刪除 %d 個風格檔?" -#: ../src/libs/styles.c:444 ../src/libs/styles.c:627 +#: ../src/libs/styles.c:441 ../src/libs/styles.c:626 +msgid "_overwrite" +msgstr "覆寫既有檔案(_O)" + +#: ../src/libs/styles.c:446 ../src/libs/styles.c:631 #, c-format msgid "" "style `%s' already exists.\n" @@ -24116,24 +24784,24 @@ "風格檔「%s」已存在\n" "是否要取代現有風格檔?\n" -#: ../src/libs/styles.c:446 ../src/libs/styles.c:629 +#: ../src/libs/styles.c:448 ../src/libs/styles.c:633 msgid "apply this option to all existing styles" msgstr "套用此選項到所有的風格檔" -#: ../src/libs/styles.c:509 +#: ../src/libs/styles.c:511 #, c-format msgid "style %s was successfully exported" msgstr "風格檔「%s」已成功匯出" -#: ../src/libs/styles.c:526 +#: ../src/libs/styles.c:528 msgid "select style" msgstr "選擇風格檔" -#: ../src/libs/styles.c:536 +#: ../src/libs/styles.c:538 msgid "darktable style files" msgstr "darktable 風格檔" -#: ../src/libs/styles.c:815 +#: ../src/libs/styles.c:819 msgid "" "available styles,\n" "double-click to apply" @@ -24141,73 +24809,73 @@ "可用的風格檔清單\n" "雙擊直接套用" -#: ../src/libs/styles.c:824 ../src/libs/styles.c:825 +#: ../src/libs/styles.c:828 ../src/libs/styles.c:829 msgid "filter style names" msgstr "搜尋風格檔" -#: ../src/libs/styles.c:837 +#: ../src/libs/styles.c:841 msgid "create duplicate" msgstr "建立複本" -#: ../src/libs/styles.c:844 +#: ../src/libs/styles.c:848 msgid "creates a duplicate of the image before applying style" msgstr "套用風格檔前先建立一個影像複本" -#: ../src/libs/styles.c:862 +#: ../src/libs/styles.c:866 msgid "create..." msgstr "建立…" -#: ../src/libs/styles.c:864 +#: ../src/libs/styles.c:868 msgid "create styles from history stack of selected images" msgstr "從選取影像的編輯紀錄建立風格檔" -#: ../src/libs/styles.c:869 ../src/libs/tagging.c:2252 +#: ../src/libs/styles.c:873 ../src/libs/tagging.c:2283 msgid "edit..." msgstr "編輯…" -#: ../src/libs/styles.c:871 +#: ../src/libs/styles.c:875 msgid "edit the selected styles in list above" msgstr "編輯選取的風格檔" -#: ../src/libs/styles.c:878 +#: ../src/libs/styles.c:882 msgid "removes the selected styles in list above" msgstr "移除選取的風格檔" -#: ../src/libs/styles.c:885 +#: ../src/libs/styles.c:889 msgid "import styles from a style files" msgstr "從檔案匯入風格檔" -#: ../src/libs/styles.c:892 +#: ../src/libs/styles.c:896 msgid "export the selected styles into a style files" msgstr "將風格檔匯出成檔案" -#: ../src/libs/styles.c:899 +#: ../src/libs/styles.c:903 msgid "apply the selected styles in list above to selected images" msgstr "將所選的風格檔套用到選取的影像中" -#: ../src/libs/tagging.c:105 +#: ../src/libs/tagging.c:109 msgid "tagging" msgstr "標籤管理" -#: ../src/libs/tagging.c:1255 +#: ../src/libs/tagging.c:1258 msgid "attach tag to all" msgstr "把標籤貼到全部影像" -#: ../src/libs/tagging.c:1263 ../src/libs/tagging.c:2225 +#: ../src/libs/tagging.c:1266 ../src/libs/tagging.c:2256 msgid "detach tag" msgstr "撕除標籤" -#: ../src/libs/tagging.c:1483 +#: ../src/libs/tagging.c:1486 msgid "delete tag?" msgstr "是否要刪除標籤?" -#: ../src/libs/tagging.c:1490 ../src/libs/tagging.c:1578 -#: ../src/libs/tagging.c:1789 ../src/libs/tagging.c:2063 +#: ../src/libs/tagging.c:1496 ../src/libs/tagging.c:1587 +#: ../src/libs/tagging.c:1814 ../src/libs/tagging.c:2093 #, c-format msgid "selected: %s" msgstr "已選取:「%s」" -#: ../src/libs/tagging.c:1497 +#: ../src/libs/tagging.c:1503 #, c-format msgid "" "do you really want to delete the tag `%s'?\n" @@ -24220,70 +24888,70 @@ "\n" "有 %d 張影像使用了此標籤" -#: ../src/libs/tagging.c:1531 +#: ../src/libs/tagging.c:1537 #, c-format msgid "tag %s removed" msgstr "標籤「%s」已刪除" -#: ../src/libs/tagging.c:1571 +#: ../src/libs/tagging.c:1577 msgid "delete node?" msgstr "是否要刪除整個結構?" -#: ../src/libs/tagging.c:1585 +#: ../src/libs/tagging.c:1594 #, c-format msgid "<u>%d</u> tag will be deleted" msgid_plural "<u>%d</u> tags will be deleted" msgstr[0] "%d 個標籤將被刪除" -#: ../src/libs/tagging.c:1590 ../src/libs/tagging.c:1801 -#: ../src/libs/tagging.c:2075 +#: ../src/libs/tagging.c:1599 ../src/libs/tagging.c:1826 +#: ../src/libs/tagging.c:2105 #, c-format msgid "<u>%d</u> image will be updated" msgid_plural "<u>%d</u> images will be updated" msgstr[0] "%d 張影像將被更新" -#: ../src/libs/tagging.c:1616 +#: ../src/libs/tagging.c:1625 #, c-format msgid "%d tags removed" msgstr "%d 個標籤已移除" -#: ../src/libs/tagging.c:1652 +#: ../src/libs/tagging.c:1668 msgid "create tag" msgstr "建立標籤" -#: ../src/libs/tagging.c:1662 ../src/libs/tagging.c:1809 +#: ../src/libs/tagging.c:1681 ../src/libs/tagging.c:1834 msgid "name: " msgstr "名稱:" -#: ../src/libs/tagging.c:1674 +#: ../src/libs/tagging.c:1696 #, c-format msgid "add to: \"%s\" " msgstr "加到:「%s」" -#: ../src/libs/tagging.c:1680 ../src/libs/tagging.c:1824 +#: ../src/libs/tagging.c:1702 ../src/libs/tagging.c:1851 msgid "category" msgstr "類別" -#: ../src/libs/tagging.c:1689 ../src/libs/tagging.c:1833 +#: ../src/libs/tagging.c:1711 ../src/libs/tagging.c:1860 msgid "synonyms: " msgstr "同義詞:" -#: ../src/libs/tagging.c:1706 ../src/libs/tagging.c:1855 -#: ../src/libs/tagging.c:2097 +#: ../src/libs/tagging.c:1728 ../src/libs/tagging.c:1882 +#: ../src/libs/tagging.c:2128 msgid "empty tag is not allowed, aborting" msgstr "不允許使用空白標籤,操作取消" -#: ../src/libs/tagging.c:1717 +#: ../src/libs/tagging.c:1739 msgid "tag name already exists. aborting." msgstr "標籤名稱已存在,操作取消" -#: ../src/libs/tagging.c:1796 ../src/libs/tagging.c:2070 +#: ../src/libs/tagging.c:1821 ../src/libs/tagging.c:2100 #, c-format msgid "<u>%d</u> tag will be updated" msgid_plural "<u>%d</u> tags will be updated" msgstr[0] "將更新 %d 個標籤" -#: ../src/libs/tagging.c:1857 +#: ../src/libs/tagging.c:1884 msgid "" "'|' character is not allowed for renaming tag.\n" "to modify the hierarchy use rename path instead. Aborting." @@ -24291,100 +24959,100 @@ "「|」字元不允許用於重命名標籤,操作取消\n" "若要修改樹狀結構,請改用「更改結構」" -#: ../src/libs/tagging.c:1896 ../src/libs/tagging.c:2004 +#: ../src/libs/tagging.c:1923 ../src/libs/tagging.c:2031 #, c-format msgid "at least one new tag name (%s) already exists, aborting" msgstr "至少有一個標籤名稱「%s」已存在,操作取消" -#: ../src/libs/tagging.c:2056 +#: ../src/libs/tagging.c:2083 msgid "change path" msgstr "變更路徑" -#: ../src/libs/tagging.c:2099 +#: ../src/libs/tagging.c:2130 msgid "'|' misplaced, empty tag is not allowed, aborting" msgstr "「|」位置錯誤,不能使用空白標籤,操作取消" -#: ../src/libs/tagging.c:2195 +#: ../src/libs/tagging.c:2226 #, c-format msgid "tag %s created" msgstr "標籤「%s」已建立" -#: ../src/libs/tagging.c:2221 +#: ../src/libs/tagging.c:2252 msgid "attach tag" msgstr "貼上標籤" -#: ../src/libs/tagging.c:2234 +#: ../src/libs/tagging.c:2265 msgid "create tag..." msgstr "建立標籤…" -#: ../src/libs/tagging.c:2240 +#: ../src/libs/tagging.c:2271 msgid "delete tag" msgstr "刪除標籤" -#: ../src/libs/tagging.c:2247 +#: ../src/libs/tagging.c:2278 msgid "delete node" msgstr "刪除結構" -#: ../src/libs/tagging.c:2260 +#: ../src/libs/tagging.c:2291 msgid "change path..." msgstr "更改結構…" -#: ../src/libs/tagging.c:2270 +#: ../src/libs/tagging.c:2301 msgid "set as a tag" msgstr "設為標籤" -#: ../src/libs/tagging.c:2281 +#: ../src/libs/tagging.c:2312 msgid "copy to entry" msgstr "複製到輸入欄位" -#: ../src/libs/tagging.c:2298 +#: ../src/libs/tagging.c:2329 msgid "go to tag collection" msgstr "含有此標籤的相冊" -#: ../src/libs/tagging.c:2304 +#: ../src/libs/tagging.c:2335 msgid "go back to work" msgstr "回到原本的相冊" -#: ../src/libs/tagging.c:2461 +#: ../src/libs/tagging.c:2492 #, c-format msgid "%s" msgstr "「%s」" -#: ../src/libs/tagging.c:2462 +#: ../src/libs/tagging.c:2493 msgid "(private)" msgstr "(私人)" -#: ../src/libs/tagging.c:2488 +#: ../src/libs/tagging.c:2519 msgid "select a keyword file" msgstr "選擇關鍵字標籤檔案" -#: ../src/libs/tagging.c:2501 +#: ../src/libs/tagging.c:2532 msgid "error importing tags" msgstr "匯入標籤時發生錯誤" -#: ../src/libs/tagging.c:2503 +#: ../src/libs/tagging.c:2534 #, c-format msgid "%zd tags imported" msgstr "已匯入 %zd 個標籤" -#: ../src/libs/tagging.c:2524 +#: ../src/libs/tagging.c:2555 msgid "select file to export to" msgstr "匯出關鍵字檔案到" -#: ../src/libs/tagging.c:2538 +#: ../src/libs/tagging.c:2569 msgid "error exporting tags" msgstr "匯出標籤時發生錯誤" -#: ../src/libs/tagging.c:2540 +#: ../src/libs/tagging.c:2571 #, c-format msgid "%zd tags exported" msgstr "已匯出 %zd 個標籤" -#: ../src/libs/tagging.c:2964 +#: ../src/libs/tagging.c:2995 msgid "drop to root" msgstr "拖放到根目錄" -#: ../src/libs/tagging.c:3100 +#: ../src/libs/tagging.c:3131 msgid "" "attached tags\n" "press Delete or double-click to detach\n" @@ -24396,47 +25064,47 @@ "點擊滑鼠右鍵查看其他動作\n" "按 tab 移至輸入欄位" -#: ../src/libs/tagging.c:3111 +#: ../src/libs/tagging.c:3142 msgid "attach" msgstr "貼上" -#: ../src/libs/tagging.c:3112 +#: ../src/libs/tagging.c:3143 msgid "attach tag to all selected images" msgstr "把標籤附加到選取的影像上" -#: ../src/libs/tagging.c:3115 +#: ../src/libs/tagging.c:3146 msgid "detach" msgstr "撕除" -#: ../src/libs/tagging.c:3116 +#: ../src/libs/tagging.c:3147 msgid "detach tag from all selected images" msgstr "從選取的影像上撕除標籤" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "toggle list with / without hierarchy" msgstr "切換是否顯示樹狀結構層次" -#: ../src/libs/tagging.c:3129 +#: ../src/libs/tagging.c:3160 msgid "hide" msgstr "隱藏" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "toggle sort by name or by count" msgstr "切換標籤排列方式依標籤名稱或數量" -#: ../src/libs/tagging.c:3131 +#: ../src/libs/tagging.c:3162 msgid "sort" msgstr "排序方式" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "toggle show or not darktable tags" msgstr "切換顯示 darktable 標籤與否" -#: ../src/libs/tagging.c:3133 +#: ../src/libs/tagging.c:3164 msgid "dttags" msgstr "darktable 標籤" -#: ../src/libs/tagging.c:3149 +#: ../src/libs/tagging.c:3180 msgid "" "enter tag name\n" "press Enter to create a new tag and attach it on selected images\n" @@ -24448,11 +25116,11 @@ "按 tab 搜尋符合的標籤\n" "按 shift + tab 選擇第一個貼上的使用者標籤" -#: ../src/libs/tagging.c:3160 ../src/libs/tagging.c:3166 +#: ../src/libs/tagging.c:3191 ../src/libs/tagging.c:3197 msgid "clear entry" msgstr "清除輸入欄位" -#: ../src/libs/tagging.c:3213 +#: ../src/libs/tagging.c:3244 msgid "" "tag dictionary,\n" "Enter or double-click to attach selected tag on selected images\n" @@ -24468,46 +25136,46 @@ "shift + tab 移至輸入欄位\n" "shift + enter 貼上標籤之外同時移至輸入欄位" -#: ../src/libs/tagging.c:3248 +#: ../src/libs/tagging.c:3279 msgid "" "create a new tag with the\n" "name you entered" msgstr "使用輸入的名稱建立新的標籤,並貼至選取的影像上" -#: ../src/libs/tagging.c:3251 +#: ../src/libs/tagging.c:3282 msgid "import tags from a Lightroom keyword file" msgstr "從 Lightroom 關鍵字檔案裡匯入標籤" -#: ../src/libs/tagging.c:3254 +#: ../src/libs/tagging.c:3285 msgid "export all tags to a Lightroom keyword file" msgstr "將所有標籤匯出到 Lightroom 關鍵字檔案" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "toggle list / tree view" msgstr "切換清單或樹狀結構顯示" -#: ../src/libs/tagging.c:3258 +#: ../src/libs/tagging.c:3289 msgid "tree" msgstr "樹狀結構" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "toggle list with / without suggestion" msgstr "切換顯示建議標籤與全部標籤" -#: ../src/libs/tagging.c:3260 +#: ../src/libs/tagging.c:3291 msgid "suggestion" msgstr "建議" -#: ../src/libs/tagging.c:3282 +#: ../src/libs/tagging.c:3313 msgid "redo last tag" msgstr "重做前一個標籤" -#: ../src/libs/tagging.c:3365 +#: ../src/libs/tagging.c:3396 msgid "" "tag shortcut is not active with tag tree view. please switch to list view" msgstr "標籤快速鍵在不能在標籤樹狀圖中使用,請切換到清單檢視" -#: ../src/libs/tagging.c:3469 +#: ../src/libs/tagging.c:3500 msgid "tagging settings" msgstr "標籤設定" @@ -24524,28 +25192,6 @@ msgid "toggle color label of selected images" msgstr "切換選取影像的色彩標籤" -#: ../src/libs/tools/darktable.c:284 -#, c-format -msgid "copyright (c) the authors 2009-%s" -msgstr "版權所有 © 作者 2009 - %s" - -#: ../src/libs/tools/darktable.c:288 -msgid "organize and develop images from digital cameras" -msgstr "整理和編輯數位相機的影像" - -#: ../src/libs/tools/darktable.c:300 -msgid "all those of you that made previous releases possible" -msgstr "所有過去版本的貢獻者" - -#: ../src/libs/tools/darktable.c:305 -msgid "and..." -msgstr "以及…" - -#: ../src/libs/tools/darktable.c:307 -msgid "translator-credits" -msgstr "" -"<a href=\"https://www.facebook.com/HSUfineprint/\">言午印藝</a> - 許剛維" - #: ../src/libs/tools/filmstrip.c:45 msgid "filmstrip" msgstr "幻燈片" @@ -24860,35 +25506,35 @@ msgid "click to enter culling layout in dynamic mode." msgstr "並排比較布局(動態數量)" -#: ../src/libs/tools/lighttable.c:368 +#: ../src/libs/tools/lighttable.c:365 msgid "toggle filemanager layout" msgstr "切換檔案管理布局" -#: ../src/libs/tools/lighttable.c:371 +#: ../src/libs/tools/lighttable.c:368 msgid "click to enter filemanager layout." msgstr "檔案管理布局" -#: ../src/libs/tools/lighttable.c:377 +#: ../src/libs/tools/lighttable.c:374 msgid "toggle zoomable lighttable layout" msgstr "切換縮放燈箱布局" -#: ../src/libs/tools/lighttable.c:380 +#: ../src/libs/tools/lighttable.c:377 msgid "click to enter zoomable lighttable layout." msgstr "縮放燈箱布局" -#: ../src/libs/tools/lighttable.c:386 +#: ../src/libs/tools/lighttable.c:383 msgid "toggle culling mode" msgstr "切換並排比較布局" -#: ../src/libs/tools/lighttable.c:394 +#: ../src/libs/tools/lighttable.c:391 msgid "toggle culling dynamic mode" msgstr "切換動態並排比較布局" -#: ../src/libs/tools/lighttable.c:441 +#: ../src/libs/tools/lighttable.c:438 msgid "toggle culling zoom mode" msgstr "切換縮放並排比較布局" -#: ../src/libs/tools/lighttable.c:443 +#: ../src/libs/tools/lighttable.c:440 msgid "exit current layout" msgstr "退出目前布局" @@ -24969,7 +25615,7 @@ msgid "Lua options" msgstr "Lua 選項" -#: ../src/views/darkroom.c:607 +#: ../src/views/darkroom.c:503 #, c-format msgid "" "darktable could not load `%s', switching to lighttable now.\n" @@ -24989,62 +25635,62 @@ "如果確認此相機檔案有支援,請考慮在 GitHub 上回報問題\n" "https://github.com/darktable-org/darktable" -#: ../src/views/darkroom.c:625 +#: ../src/views/darkroom.c:521 #, c-format msgctxt "darkroom" msgid "loading `%s' ..." msgstr "正在載入「%s」…" -#: ../src/views/darkroom.c:749 ../src/views/darkroom.c:2496 +#: ../src/views/darkroom.c:668 ../src/views/darkroom.c:2335 msgid "gamut check" msgstr "色域檢查" -#: ../src/views/darkroom.c:749 +#: ../src/views/darkroom.c:668 msgid "soft proof" msgstr "軟打樣" #. fail :( -#: ../src/views/darkroom.c:787 ../src/views/print.c:356 +#: ../src/views/darkroom.c:708 ../src/views/print.c:356 msgid "no image to open!" msgstr "沒有開啟的影像" -#: ../src/views/darkroom.c:1331 +#: ../src/views/darkroom.c:1232 msgid "no user-defined presets for favorite modules were found" msgstr "找不到給常用模組使用的使用者自訂預設集" -#: ../src/views/darkroom.c:1476 +#: ../src/views/darkroom.c:1377 msgid "no styles have been created yet" msgstr "還沒有已建立的風格檔" -#: ../src/views/darkroom.c:2331 ../src/views/darkroom.c:2332 +#: ../src/views/darkroom.c:2170 ../src/views/darkroom.c:2171 msgid "quick access to presets" msgstr "快速存取預設集" -#: ../src/views/darkroom.c:2340 +#: ../src/views/darkroom.c:2179 msgid "quick access to styles" msgstr "快速存取預設集" -#: ../src/views/darkroom.c:2342 +#: ../src/views/darkroom.c:2181 msgid "quick access for applying any of your styles" msgstr "快速存取並套用自訂風格檔" -#: ../src/views/darkroom.c:2348 +#: ../src/views/darkroom.c:2187 msgid "second window" msgstr "第二個視窗" -#: ../src/views/darkroom.c:2351 +#: ../src/views/darkroom.c:2190 msgid "display a second darkroom image window" msgstr "顯示第二個暗房影像視窗" -#: ../src/views/darkroom.c:2356 +#: ../src/views/darkroom.c:2195 msgid "color assessment" msgstr "色彩評估" -#: ../src/views/darkroom.c:2359 +#: ../src/views/darkroom.c:2198 msgid "toggle ISO 12646 color assessment conditions" msgstr "切換 ISO 12646 色彩評估模式" -#: ../src/views/darkroom.c:2372 +#: ../src/views/darkroom.c:2211 msgid "" "toggle raw over exposed indication\n" "right click for options" @@ -25052,27 +25698,27 @@ "切換 RAW 過曝提示模式\n" "右鍵點擊以查看和修改選項" -#: ../src/views/darkroom.c:2388 +#: ../src/views/darkroom.c:2227 msgid "select how to mark the clipped pixels" msgstr "選擇過曝像素的顯示方式" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with CFA color" msgstr "以感光元件濾鏡 RGB 標示" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "mark with solid color" msgstr "以純色標示" -#: ../src/views/darkroom.c:2390 +#: ../src/views/darkroom.c:2229 msgid "false color" msgstr "以相反偽色標示" -#: ../src/views/darkroom.c:2393 ../src/views/darkroom.c:2444 +#: ../src/views/darkroom.c:2232 ../src/views/darkroom.c:2283 msgid "color scheme" msgstr "顯示顏色" -#: ../src/views/darkroom.c:2394 +#: ../src/views/darkroom.c:2233 msgid "" "select the solid color to indicate over exposure.\n" "will only be used if mode = mark with solid color" @@ -25080,27 +25726,27 @@ "選取標示曝光過度的顏色\n" "僅模式選擇為「以純色標示」時才有作用" -#: ../src/views/darkroom.c:2397 +#: ../src/views/darkroom.c:2236 msgctxt "solidcolor" msgid "red" msgstr "紅" -#: ../src/views/darkroom.c:2398 +#: ../src/views/darkroom.c:2237 msgctxt "solidcolor" msgid "green" msgstr "綠" -#: ../src/views/darkroom.c:2399 +#: ../src/views/darkroom.c:2238 msgctxt "solidcolor" msgid "blue" msgstr "藍" -#: ../src/views/darkroom.c:2400 +#: ../src/views/darkroom.c:2239 msgctxt "solidcolor" msgid "black" msgstr "黑" -#: ../src/views/darkroom.c:2408 +#: ../src/views/darkroom.c:2247 msgid "" "threshold of what shall be considered overexposed\n" "1.0 - white level\n" @@ -25109,7 +25755,7 @@ "過度曝光的臨界值,定義哪些值應該被標示為過度曝光\n" "在大多數情況下,可以放心地使用預設值 1.0" -#: ../src/views/darkroom.c:2422 +#: ../src/views/darkroom.c:2261 msgid "" "toggle clipping indication\n" "right click for options" @@ -25117,11 +25763,11 @@ "切換色域及曝光警告模式\n" "右鍵點擊以查看和修改選項" -#: ../src/views/darkroom.c:2437 +#: ../src/views/darkroom.c:2276 msgid "clipping preview mode" msgstr "色域裁切預覽模式" -#: ../src/views/darkroom.c:2438 +#: ../src/views/darkroom.c:2277 msgid "" "select the metric you want to preview\n" "full gamut is the combination of all other modes" @@ -25129,39 +25775,39 @@ "選擇要突出顯示的指標\n" "全色域包含其他所有選項,提供最完整指示" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "full gamut" msgstr "全色域" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "any RGB channel" msgstr "任何 RGB 色版" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "luminance only" msgstr "僅亮度" -#: ../src/views/darkroom.c:2440 +#: ../src/views/darkroom.c:2279 msgid "saturation only" msgstr "僅飽和度" -#: ../src/views/darkroom.c:2445 +#: ../src/views/darkroom.c:2284 msgid "select colors to indicate clipping" msgstr "選擇顯示警告的色彩" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "red & blue" msgstr "紅色和藍色" -#: ../src/views/darkroom.c:2447 +#: ../src/views/darkroom.c:2286 msgid "purple & green" msgstr "紫色和綠色" -#: ../src/views/darkroom.c:2454 +#: ../src/views/darkroom.c:2293 msgid "lower threshold" msgstr "黑點下限" -#: ../src/views/darkroom.c:2455 +#: ../src/views/darkroom.c:2294 msgid "" "clipping threshold for the black point,\n" "in EV, relatively to white (0 EV).\n" @@ -25181,11 +25827,11 @@ "列印美術紙:-5.30 EV\n" "列印相紙:-8.00 EV" -#: ../src/views/darkroom.c:2471 +#: ../src/views/darkroom.c:2310 msgid "upper threshold" msgstr "數值上限" -#: ../src/views/darkroom.c:2473 +#: ../src/views/darkroom.c:2312 #, no-c-format msgid "" "clipping threshold for the white point.\n" @@ -25195,11 +25841,11 @@ "對於色域警告,代表的是像素的飽和度與色彩空間邊界的接近程度\n" "對於亮度警告,代表的是像素相對於最高亮度的比例" -#: ../src/views/darkroom.c:2485 +#: ../src/views/darkroom.c:2324 msgid "softproof" msgstr "軟打樣" -#: ../src/views/darkroom.c:2488 +#: ../src/views/darkroom.c:2327 msgid "" "toggle softproofing\n" "right click for profile options" @@ -25207,7 +25853,7 @@ "切換軟打樣模式\n" "右鍵點擊以查看和修改描述檔選項" -#: ../src/views/darkroom.c:2499 +#: ../src/views/darkroom.c:2338 msgid "" "toggle gamut checking\n" "right click for profile options" @@ -25215,46 +25861,54 @@ "切換色域檢查模式\n" "右鍵點擊以查看和修改描述檔選項" -#: ../src/views/darkroom.c:2524 ../src/views/darkroom.c:2526 -#: ../src/views/darkroom.c:2540 ../src/views/darkroom.c:2541 -#: ../src/views/darkroom.c:2542 ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2365 ../src/views/darkroom.c:2367 +#: ../src/views/darkroom.c:2381 ../src/views/darkroom.c:2382 +#: ../src/views/darkroom.c:2383 ../src/views/darkroom.c:2384 #: ../src/views/lighttable.c:1182 ../src/views/lighttable.c:1184 msgid "profiles" msgstr "ICC 描述檔" -#: ../src/views/darkroom.c:2526 ../src/views/lighttable.c:1184 +#: ../src/views/darkroom.c:2367 ../src/views/lighttable.c:1184 msgid "preview intent" msgstr "第二視窗轉換方式" -#: ../src/views/darkroom.c:2540 ../src/views/lighttable.c:1188 +#: ../src/views/darkroom.c:2381 ../src/views/lighttable.c:1188 msgid "display profile" msgstr "螢幕描述檔" -#: ../src/views/darkroom.c:2541 ../src/views/lighttable.c:1191 +#: ../src/views/darkroom.c:2382 ../src/views/lighttable.c:1191 msgid "preview display profile" msgstr "第二視窗螢幕描述檔" -#: ../src/views/darkroom.c:2543 +#: ../src/views/darkroom.c:2384 msgid "histogram profile" msgstr "直方圖描述檔" -#: ../src/views/darkroom.c:2605 ../src/views/lighttable.c:1225 +#: ../src/views/darkroom.c:2391 +msgid "second preview window ISO 12646 color assessment" +msgstr "切換第二個預覽視窗 ISO 12646 色彩評估模式" + +#: ../src/views/darkroom.c:2393 +msgid "color assessment second preview" +msgstr "第二視窗色彩評估" + +#: ../src/views/darkroom.c:2452 ../src/views/lighttable.c:1225 msgid "display ICC profiles" msgstr "螢幕色彩描述檔" -#: ../src/views/darkroom.c:2609 ../src/views/lighttable.c:1229 +#: ../src/views/darkroom.c:2456 ../src/views/lighttable.c:1229 msgid "preview display ICC profiles" msgstr "第二視窗色彩描述檔" -#: ../src/views/darkroom.c:2613 +#: ../src/views/darkroom.c:2460 msgid "softproof ICC profiles" msgstr "軟打樣色彩描述檔" -#: ../src/views/darkroom.c:2617 +#: ../src/views/darkroom.c:2464 msgid "histogram and color picker ICC profiles" msgstr "直方圖和色彩選取工具的色彩描述檔" -#: ../src/views/darkroom.c:2651 +#: ../src/views/darkroom.c:2497 msgid "" "toggle guide lines\n" "right click for guides options" @@ -25263,137 +25917,137 @@ "右鍵點擊以查看和修改參考線選項" #. Fullscreen preview key -#: ../src/views/darkroom.c:2668 +#: ../src/views/darkroom.c:2514 msgid "full preview" msgstr "全螢幕預覽" #. add an option to allow skip mouse events while other overlays are consuming mouse actions -#: ../src/views/darkroom.c:2672 +#: ../src/views/darkroom.c:2518 msgid "force pan/zoom/rotate with mouse" msgstr "強制使用滑鼠游標移動和縮放影像" #. Zoom shortcuts -#: ../src/views/darkroom.c:2684 +#: ../src/views/darkroom.c:2530 msgid "zoom close-up" msgstr "縮放至特寫" #. zoom in/out #. zoom in/out/min/max -#: ../src/views/darkroom.c:2687 ../src/views/lighttable.c:1283 +#: ../src/views/darkroom.c:2533 ../src/views/lighttable.c:1283 msgid "zoom in" msgstr "放大" -#: ../src/views/darkroom.c:2688 ../src/views/lighttable.c:1285 +#: ../src/views/darkroom.c:2534 ../src/views/lighttable.c:1285 msgid "zoom out" msgstr "縮小" #. Shortcut to skip images -#: ../src/views/darkroom.c:2691 +#: ../src/views/darkroom.c:2537 msgid "image forward" msgstr "下一張影像" -#: ../src/views/darkroom.c:2692 +#: ../src/views/darkroom.c:2538 msgid "image back" msgstr "前一張影像" #. cycle overlay colors -#: ../src/views/darkroom.c:2695 +#: ../src/views/darkroom.c:2541 msgid "cycle overlay colors" msgstr "循環疊加色彩" #. toggle visibility of drawn masks for current gui module -#: ../src/views/darkroom.c:2698 +#: ../src/views/darkroom.c:2544 msgid "show drawn masks" msgstr "顯示繪製的遮罩" #. brush size +/- -#: ../src/views/darkroom.c:2701 +#: ../src/views/darkroom.c:2547 msgid "increase brush size" msgstr "增加筆刷尺寸" -#: ../src/views/darkroom.c:2702 +#: ../src/views/darkroom.c:2548 msgid "decrease brush size" msgstr "縮小筆刷尺寸" #. brush hardness +/- -#: ../src/views/darkroom.c:2705 +#: ../src/views/darkroom.c:2551 msgid "increase brush hardness" msgstr "提高筆刷硬度" -#: ../src/views/darkroom.c:2706 +#: ../src/views/darkroom.c:2552 msgid "decrease brush hardness" msgstr "降低筆刷硬度" #. brush opacity +/- -#: ../src/views/darkroom.c:2709 +#: ../src/views/darkroom.c:2555 msgid "increase brush opacity" msgstr "提升畫刷不透明度" -#: ../src/views/darkroom.c:2710 +#: ../src/views/darkroom.c:2556 msgid "decrease brush opacity" msgstr "降低畫刷不透明度" #. undo/redo -#: ../src/views/darkroom.c:2713 ../src/views/lighttable.c:1275 +#: ../src/views/darkroom.c:2559 ../src/views/lighttable.c:1275 #: ../src/views/map.c:2115 msgid "undo" msgstr "復原" -#: ../src/views/darkroom.c:2714 ../src/views/lighttable.c:1276 +#: ../src/views/darkroom.c:2560 ../src/views/lighttable.c:1276 #: ../src/views/map.c:2116 msgid "redo" msgstr "重作" #. change the precision for adjusting sliders with keyboard shortcuts -#: ../src/views/darkroom.c:2717 +#: ../src/views/darkroom.c:2563 msgid "change keyboard shortcut slider precision" msgstr "改變鍵盤快速鍵滑桿的精準度" -#: ../src/views/darkroom.c:3989 +#: ../src/views/darkroom.c:3565 msgid "keyboard shortcut slider precision: fine" msgstr "鍵盤快速鍵滑桿的精準度:精細" -#: ../src/views/darkroom.c:3991 +#: ../src/views/darkroom.c:3567 msgid "keyboard shortcut slider precision: normal" msgstr "鍵盤快速鍵滑桿的精準度:中等" -#: ../src/views/darkroom.c:3993 +#: ../src/views/darkroom.c:3569 msgid "keyboard shortcut slider precision: coarse" msgstr "鍵盤快速鍵滑桿的精準度:粗糙" -#: ../src/views/darkroom.c:4009 +#: ../src/views/darkroom.c:3584 msgid "switch to lighttable" msgstr "切換到燈箱" -#: ../src/views/darkroom.c:4010 ../src/views/lighttable.c:882 +#: ../src/views/darkroom.c:3585 ../src/views/lighttable.c:882 msgid "zoom in the image" msgstr "放大影像" -#: ../src/views/darkroom.c:4011 +#: ../src/views/darkroom.c:3586 msgid "unbounded zoom in the image" msgstr "不限制放大比例" -#: ../src/views/darkroom.c:4012 +#: ../src/views/darkroom.c:3587 msgid "zoom to 100% 200% and back" msgstr "縮放至 100% 200% 並返回" -#: ../src/views/darkroom.c:4013 ../src/views/lighttable.c:885 +#: ../src/views/darkroom.c:3588 ../src/views/lighttable.c:885 msgid "pan a zoomed image" msgstr "平移縮放的影像" -#: ../src/views/darkroom.c:4015 ../src/views/lighttable.c:927 +#: ../src/views/darkroom.c:3590 ../src/views/lighttable.c:927 msgid "[modules] expand module without closing others" msgstr "展開模組時不收合其他模組" -#: ../src/views/darkroom.c:4016 ../src/views/lighttable.c:928 +#: ../src/views/darkroom.c:3591 ../src/views/lighttable.c:928 msgid "[modules] expand module and close others" msgstr "展開模組並收合其他模組" -#: ../src/views/darkroom.c:4018 +#: ../src/views/darkroom.c:3593 msgid "[modules] rename module" msgstr "重新命名模組" -#: ../src/views/darkroom.c:4020 +#: ../src/views/darkroom.c:3595 msgid "[modules] change module position in pipe" msgstr "改變模組的位置(運算順序)" @@ -25538,58 +26192,58 @@ msgid "print" msgstr "列印" -#: ../src/views/slideshow.c:353 +#: ../src/views/slideshow.c:355 msgid "end of images" msgstr "影像輪播結束" -#: ../src/views/slideshow.c:374 +#: ../src/views/slideshow.c:376 msgid "end of images. press any key to return to lighttable mode" msgstr "輪播結束,按任意鍵回到燈箱" -#: ../src/views/slideshow.c:504 +#: ../src/views/slideshow.c:509 msgid "waiting to start slideshow" msgstr "等待影像輪播開始" -#: ../src/views/slideshow.c:640 ../src/views/slideshow.c:661 -#: ../src/views/slideshow.c:669 +#: ../src/views/slideshow.c:678 ../src/views/slideshow.c:705 +#: ../src/views/slideshow.c:713 msgid "slideshow paused" msgstr "影像輪播暫停" -#: ../src/views/slideshow.c:648 ../src/views/slideshow.c:655 +#: ../src/views/slideshow.c:686 ../src/views/slideshow.c:696 #, c-format msgid "slideshow delay set to %d second" msgid_plural "slideshow delay set to %d seconds" msgstr[0] "影像輪播間隔時間為 %d 秒" -#: ../src/views/slideshow.c:684 +#: ../src/views/slideshow.c:728 msgid "start and stop" msgstr "開始與停止" -#: ../src/views/slideshow.c:685 +#: ../src/views/slideshow.c:730 msgid "exit slideshow" msgstr "關閉影像輪播" -#: ../src/views/slideshow.c:688 +#: ../src/views/slideshow.c:734 msgid "slow down" msgstr "減速" -#: ../src/views/slideshow.c:691 +#: ../src/views/slideshow.c:738 msgid "speed up" msgstr "加速" -#: ../src/views/slideshow.c:695 +#: ../src/views/slideshow.c:743 msgid "step forward" msgstr "下一張" -#: ../src/views/slideshow.c:696 +#: ../src/views/slideshow.c:745 msgid "step back" msgstr "前一張" -#: ../src/views/slideshow.c:702 +#: ../src/views/slideshow.c:753 msgid "go to next image" msgstr "前往下一張影像" -#: ../src/views/slideshow.c:703 +#: ../src/views/slideshow.c:755 msgid "go to previous image" msgstr "回到上一張影像" @@ -25602,51 +26256,351 @@ msgid "no camera with tethering support available for use..." msgstr "沒有支援連機拍攝的相機…" -#: ../src/views/view.c:1193 +#: ../src/views/view.c:1352 msgid "left click" msgstr "左鍵點擊" -#: ../src/views/view.c:1196 +#: ../src/views/view.c:1355 msgid "right click" msgstr "右鍵點擊" -#: ../src/views/view.c:1199 +#: ../src/views/view.c:1358 msgid "middle click" msgstr "中鍵點擊" -#: ../src/views/view.c:1205 +#: ../src/views/view.c:1364 msgid "left double-click" msgstr "左鍵雙擊" -#: ../src/views/view.c:1208 +#: ../src/views/view.c:1367 msgid "right double-click" msgstr "右鍵雙擊" -#: ../src/views/view.c:1211 +#: ../src/views/view.c:1370 msgid "drag and drop" msgstr "拖曳" -#: ../src/views/view.c:1214 +#: ../src/views/view.c:1373 msgid "left click+drag" msgstr "左鍵點擊+拖曳" -#: ../src/views/view.c:1217 +#: ../src/views/view.c:1376 msgid "right click+drag" msgstr "右鍵點擊+拖曳" -#: ../src/views/view.c:1237 +#: ../src/views/view.c:1398 msgid "darktable - accels window" msgstr "darktable 快速鍵視窗" -#: ../src/views/view.c:1285 +#: ../src/views/view.c:1447 msgid "switch to a classic window which will stay open after key release" msgstr "切換回傳統視窗,在按鍵放開後仍保持開啟" #. we add the mouse actions too -#: ../src/views/view.c:1344 +#: ../src/views/view.c:1514 msgid "mouse actions" msgstr "滑鼠動作" +#~ msgid "spot color mapping" +#~ msgstr "點測色色彩對應" + +#~ msgid "spot mode" +#~ msgstr "點測對應模式" + +#~ msgid "selected image[s]" +#~ msgstr "已選取的影像" + +#~ msgid "" +#~ "when having raw+JPEG images together in one directory it makes no sense " +#~ "to import both. with this flag one can ignore all JPEGs found." +#~ msgstr "" +#~ "忽略所有的 JPEG 檔案,不會顯示在檔案列表上\n" +#~ "因為資料夾內若同時有 RAW + JPEG 時,沒有必要兩個檔案都匯入" + +#~ msgid "save history while developing" +#~ msgstr "自動儲存編輯紀錄" + +#~ msgid "longest" +#~ msgstr "長邊" + +#~ msgid "red inset" +#~ msgstr "紅色插入擴展" + +#~ msgid "green inset" +#~ msgstr "綠色插入擴展" + +#~ msgid "blue inset" +#~ msgstr "藍色插入擴展" + +#~ msgid "b&w as grayscale" +#~ msgstr "灰階" + +#~ msgid "red primary inset" +#~ msgstr "紅色插入" + +#~ msgid "red primary rotation" +#~ msgstr "紅色相偏移" + +#~ msgid "green primary inset" +#~ msgstr "綠色插入" + +#~ msgid "green primary rotation" +#~ msgstr "綠色相偏移" + +#~ msgid "blue primary inset" +#~ msgstr "藍色插入" + +#~ msgid "blue primary rotation" +#~ msgstr "藍色相偏移" + +#~ msgid "" +#~ "tone equalizer needs to be after distortion modules in the pipeline – " +#~ "disabled" +#~ msgstr "" +#~ "⚠️ 錯誤 ⚠️\n" +#~ "「階調等化器」模組必須在變形模組之後執行,已自動停用" + +#~ msgctxt "preferences" +#~ msgid "4k" +#~ msgstr "4K" + +#~ msgid "red primary hue" +#~ msgstr "紅原色色相" + +#~ msgctxt "preferences" +#~ msgid "nothing" +#~ msgstr "不調整(預設)" + +#~ msgctxt "preferences" +#~ msgid "memory size" +#~ msgstr "記憶體容量" + +#~ msgctxt "preferences" +#~ msgid "memory transfer" +#~ msgstr "記憶體傳輸" + +#~ msgctxt "preferences" +#~ msgid "memory size and transfer" +#~ msgstr "記憶體空間和傳輸" + +#~ msgctxt "preferences" +#~ msgid "id" +#~ msgstr "識別碼" + +#~ msgctxt "preferences" +#~ msgid "folder" +#~ msgstr "資料夾" + +#~ msgid "tune OpenCL performance" +#~ msgstr "調整 OpenCL 性能" + +#~ msgid "" +#~ "allows runtime tuning of OpenCL devices:\n" +#~ " - 'memory size': uses a fixed headroom (400MB as default),\n" +#~ " - 'memory transfer': tries a faster memory access mode (pinned memory) " +#~ "used for tiling." +#~ msgstr "" +#~ "調整 OpenCL 性能\n" +#~ "\n" +#~ "不調整(預設):\n" +#~ "不改變 OpenCL 的運作方式\n" +#~ "\n" +#~ "記憶體空間:\n" +#~ "保留固定的顯示卡記憶體(預設為 400MB),剩餘記憶體用於 OpenCL 運算\n" +#~ "\n" +#~ "記憶體傳輸:\n" +#~ "運算需要的紀體超過可用空間時,使用特殊模式將影像分解為多個區塊分開處理\n" +#~ "\n" +#~ "記憶體空間和傳輸:\n" +#~ "同時使用以上兩種機制\n" +#~ "\n" +#~ "不同調整方法可能提升或降低性能,甚至耗用更多記憶體,必須自行在安裝的電腦上" +#~ "進行測試。可以透過編輯 darktablerc 文件修改預設數值和多張顯示卡的獨立設" +#~ "定,或是設定自動檢查顯示卡可用記憶體空間,更多詳細內容請閱讀操作手冊的" +#~ "「memory & performance tuning」章節。" + +#~ msgid "write sidecar file for each image" +#~ msgstr "為每張影像儲存附屬檔案" + +#~ msgid "" +#~ "if an instance of the module has focus, apply shortcut to that instance\n" +#~ "note: blending shortcuts always apply to the focused instance" +#~ msgstr "" +#~ "快速鍵套用在目前選取的模組,並忽略其他相同的模組\n" +#~ "備註: 混合快速鍵永遠作用於選取的模組" + +#~ msgid "distortion fine-tune" +#~ msgstr "變形校正微調" + +#~ msgid "vignetting fine-tune" +#~ msgstr "暗角校正微調" + +#~ msgid "TCA red fine-tune" +#~ msgstr "微調藍色橫向色像差(red TCA)" + +#~ msgid "TCA blue fine-tune" +#~ msgstr "微調藍色橫向色像差(blue TCA)" + +#~ msgid "tiff" +#~ msgstr "TIFF" + +#~ msgid "png" +#~ msgstr "PNG" + +#~ msgid "j2k" +#~ msgstr "JPEG 2000" + +#~ msgid "jpeg" +#~ msgstr "JPEG" + +#~ msgid "exr" +#~ msgstr "OpenEXR" + +#~ msgid "rgbe" +#~ msgstr "RGBE(Radiance HDR)" + +#~ msgid "pfm" +#~ msgstr "PFM" + +#~ msgid "netpnm" +#~ msgstr "netpnm" + +#~ msgid "avif" +#~ msgstr "AVIF" + +#~ msgid "heif" +#~ msgstr "HEIF" + +#~ msgid "libraw" +#~ msgstr "libraw" + +#~ msgid "webp" +#~ msgstr "WebP" + +#~ msgid "jpeg xl" +#~ msgstr "JPEG XL" + +#~ msgid "" +#~ "due to a slow GPU hardware acceleration using OpenCL has been deactivated" +#~ msgstr "" +#~ "⚠️ 注意 ⚠️\n" +#~ "由於顯示卡速度過慢, OpenCL 加速功能已停用" + +#~ msgid "" +#~ "multiple GPUs detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "⚠️ 注意 ⚠️\n" +#~ "偵測到多張顯示卡,已自動調整 OpenCL 至相應設定" + +#~ msgid "" +#~ "very fast GPU detected - OpenCL scheduling profile has been set " +#~ "accordingly" +#~ msgstr "" +#~ "⚠️ 注意 ⚠️\n" +#~ "偵測到高階的顯示卡,已自動調整 OpenCL 至相應設定" + +#~ msgid "" +#~ "darktable discovered problems with your OpenCL setup; disabling OpenCL " +#~ "for this session!" +#~ msgstr "darktable 發現 OpenCL 存在問題,正在為這個工作階段停用 OpenCL" + +#~ msgid "no-op" +#~ msgstr "無操作" + +#~ msgid "RGB colors" +#~ msgstr "RGB 彩色" + +#~ msgid "compression type" +#~ msgstr "壓縮方式" + +#~ msgid "jp2" +#~ msgstr ".jp2(JPEG 2000)" + +#~ msgid "b&w image" +#~ msgstr "黑白影像" + +#~ msgid "write RGB colors" +#~ msgstr "儲存 RGB 彩色影像" + +#~ msgid "write grayscale" +#~ msgstr "儲存成灰階影像" + +#~ msgid "" +#~ "set strength of rebuilding in regions with all photosites clipped.\n" +#~ "the mask buttons shows the effect that is added to already reconstructed " +#~ "data." +#~ msgstr "" +#~ "設定亮部裁切區域的重建強度\n" +#~ "遮罩按鈕可顯示已加到重建區域的效果" + +#~ msgid "save" +#~ msgstr "儲存" + +#~ msgid "add" +#~ msgstr "增加" + +#~ msgid "only" +#~ msgstr "僅包含" + +#~ msgid "hardness (relative)" +#~ msgstr "硬度(相對值)" + +#~ msgid "hardness (absolute)" +#~ msgstr "硬度(絕對值)" + +#~ msgid "opacity (relative)" +#~ msgstr "透明度(相對值)" + +#~ msgid "opacity (absolute)" +#~ msgstr "透明度(絕對值)" + +#~ msgid "brush size (relative)" +#~ msgstr "筆刷尺寸(相對值)" + +#~ msgid "low" +#~ msgstr "低" + +#~ msgid "medium" +#~ msgstr "中" + +#~ msgid "high" +#~ msgstr "高" + +#~ msgid "" +#~ "pen pressure control for brush masks\n" +#~ "'off': pressure reading ignored,\n" +#~ "'hardness'/'opacity'/'brush size': pressure reading controls specified " +#~ "attribute,\n" +#~ "'absolute'/'relative': pressure reading is taken directly as attribute " +#~ "value or multiplied with pre-defined setting." +#~ msgstr "" +#~ "控制繪圖板的壓力在繪製筆刷遮罩時的控制方式\n" +#~ "關閉:忽略壓力\n" +#~ "硬度、透明度、尺寸:壓力控制對應的屬性\n" +#~ "絕對、相對:壓力直接作為設定值或與預設值相乘" + +#~ msgid "" +#~ "smoothing of brush strokes\n" +#~ "stronger smoothing leads to fewer nodes and easier editing but with lower " +#~ "control of accuracy." +#~ msgstr "" +#~ "平滑化筆刷筆觸\n" +#~ "越平滑會產生較少的節點以方便編輯,但也會降低控制性與精準度" + +#~ msgid "<leave unchanged>" +#~ msgstr "<保持不變>" + +#~ msgid "reference to which the marker should be scaled to" +#~ msgstr "將浮水印依比例縮放至影像的哪一邊" + +#~ msgid "length of the marker which is used as scaling reference" +#~ msgstr "將浮水印的寬或高調整至以上縮放設定" + +#, c-format +#~ msgid "%.1f mm (%.1f mm FF equiv, crop %.1f)" +#~ msgstr "%.1f mm(全幅等校:%.1f mm,裁切比率:%.1f)" + #~ msgid "_yes, physically delete" #~ msgstr "是,刪除實體檔案" @@ -25732,9 +26686,6 @@ #~ msgid "3:2" #~ msgstr "3:2" -#~ msgid "set the custom aspect ratio" -#~ msgstr "自訂寬高比例" - #~ msgid "[dual demosaic_cl] internal problem" #~ msgstr "雙重去馬賽克內部錯誤" @@ -25748,9 +26699,6 @@ #~ "⚠️ 錯誤 ⚠️\n" #~ "「階調等化器」在輸入 / 輸出緩衝區時沒有對齊,請向開發人員回報" -#~ msgid "rgb parade" -#~ msgstr "RGB 並列波形圖" - #~ msgid "rotate 90 degrees ccw" #~ msgstr "逆時針旋轉 90 度" @@ -26215,19 +27163,9 @@ #~ "找不到檔案內嵌的鏡頭校正數據\n" #~ "並且 lensfun 資料庫沒有被編譯在 darktable 中" -#~ msgid "actual selection" -#~ msgstr "目前範圍" - #~ msgid "allow to pan & zoom while editing masks" #~ msgstr "允許在編輯遮罩時平移和縮放" -#~ msgid "recovery" -#~ msgstr "亮部修復" - -#~ msgid "" -#~ "set strength of reconstruction in regions with all photosites clipped" -#~ msgstr "設定全部亮度裁切區域的重建強度" - #~ msgctxt "preferences" #~ msgid "on startup" #~ msgstr "開啟時" @@ -26359,9 +27297,6 @@ #~ msgid "lift chroma" #~ msgstr "彩度提升" -#~ msgid "lift hue" -#~ msgstr "色相提升" - #~ msgid "power luminance" #~ msgstr "亮度乘冪" @@ -26395,9 +27330,6 @@ #~ msgid "chroma highlights" #~ msgstr "亮部彩度" -#~ msgid "chroma global" -#~ msgstr "整體彩度" - #~ msgid "chroma mid-tones" #~ msgstr "中間調彩度" diff -Nru darktable-4.4.2/src/CMakeLists.txt darktable-4.6.1/src/CMakeLists.txt --- darktable-4.4.2/src/CMakeLists.txt 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/CMakeLists.txt 2024-02-16 17:31:09.000000000 +0000 @@ -17,14 +17,15 @@ "common/cache.c" "common/calculator.c" "common/collection.c" + "common/color_harmony.c" "common/color_picker.c" "common/color_vocabulary.c" "common/colorlabels.c" "common/colorspaces.c" "common/curve_tools.c" + "common/custom_primaries.c" "common/splines.cpp" "common/curl_tools.c" - "common/cpuid.c" "common/darktable.c" "common/database.c" "common/datetime.c" @@ -104,6 +105,7 @@ "control/signal.c" "develop/develop.c" "develop/imageop.c" + "develop/borders_helper.c" "develop/imageop_math.c" "develop/imageop_gui.c" "develop/lightroom.c" @@ -139,6 +141,7 @@ "dtgtk/thumbnail_btn.c" "dtgtk/thumbtable.c" "dtgtk/togglebutton.c" + "gui/about.c" "gui/accelerators.c" "gui/gtkentry.c" "gui/guides.c" @@ -303,6 +306,7 @@ # and only variables ${CPACK_*} are correctly used. # so this needs to be saved by adding another variable with a name beginning with CPACK set(CPACK_NSIS_GPHOTO2_VERSION ${Gphoto2_VERSION_STRING} CACHE STRING "Gphoto2 version string") + set(CPACK_NSIS_GPHOTO2_PORT_VERSION ${Gphoto2_PORT_VERSION_STRING} CACHE STRING "Gphoto2 port version string") endif() endif(USE_CAMERA_SUPPORT) @@ -352,17 +356,23 @@ endif(WebP_FOUND) endif(USE_WEBP) -if (USE_AVIF) - find_package(libavif 0.8.2 CONFIG) - if (TARGET avif) - list(APPEND LIBS avif) - add_definitions(-DHAVE_LIBAVIF=1) - list(APPEND SOURCES "imageio/imageio_avif.c") - set(DT_SUPPORTED_EXTENSIONS ${DT_SUPPORTED_EXTENSIONS} avif CACHE INTERNAL "") +if(USE_AVIF) + # no version check in config mode because of major only match policy + find_package(libavif CONFIG) + if(TARGET avif) + if(libavif_VERSION VERSION_GREATER_EQUAL 0.9.3) + list(APPEND LIBS avif) + add_definitions(-DHAVE_LIBAVIF=1) + list(APPEND SOURCES "imageio/imageio_avif.c") + set(DT_SUPPORTED_EXTENSIONS ${DT_SUPPORTED_EXTENSIONS} avif CACHE INTERNAL "") + else() + set(libavif_FOUND NOTFOUND PARENT_SCOPE) endif() + endif() endif() if(USE_HEIF) + # no version check in config mode because of exact match policy find_package(libheif CONFIG) if(NOT TARGET heif) find_package(libheif 1.13.0 MODULE) @@ -373,7 +383,7 @@ add_definitions(-DHAVE_LIBHEIF=1) list(APPEND SOURCES "imageio/imageio_heif.c") set(DT_SUPPORTED_EXTENSIONS ${DT_SUPPORTED_EXTENSIONS} heif heic hif CACHE INTERNAL "") - if(NOT TARGET avif) + if(NOT libavif_FOUND) # libheif can handle avif, too set(DT_SUPPORTED_EXTENSIONS ${DT_SUPPORTED_EXTENSIONS} avif CACHE INTERNAL "") endif() @@ -430,7 +440,7 @@ list(APPEND LIBS ${Exiv2_LIBRARIES}) add_definitions(${Exiv2_DEFINITIONS}) if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND Exiv2_VERSION VERSION_LESS "0.28.0") - set(CMAKE_CXX_STANDARD 14) + add_compile_definitions(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR) endif() # Optionally enable ISOBMFF support in Exiv2 @@ -925,6 +935,7 @@ add_dependencies(lib_darktable generate_conf) add_dependencies(lib_darktable generate_version) add_dependencies(lib_darktable generate_preferences) +add_dependencies(lib_darktable generate_authors_h) if(APPLE) set_target_properties(lib_darktable PROPERTIES MACOSX_RPATH TRUE) @@ -1037,3 +1048,20 @@ add_subdirectory(external/LibRaw-cmake) target_link_libraries(lib_darktable PRIVATE libraw::libraw) endif() + +# +# generate the authors file +# +add_custom_command( + DEPENDS ${CMAKE_SOURCE_DIR}/tools/authors_h.sh ${CMAKE_SOURCE_DIR}/AUTHORS + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/tools/darktable_authors.h + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/tools/ + COMMAND bash ${CMAKE_SOURCE_DIR}/tools/authors_h.sh ${CMAKE_SOURCE_DIR}/AUTHORS ${CMAKE_CURRENT_BINARY_DIR}/tools/darktable_authors.h + COMMENT "Generating authors.h for about dialog." +) + +add_custom_target( + generate_authors_h ALL + DEPENDS ${CMAKE_SOURCE_DIR}/tools/authors_h.sh ${CMAKE_SOURCE_DIR}/AUTHORS ${CMAKE_CURRENT_BINARY_DIR}/tools/darktable_authors.h + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} +) diff -Nru darktable-4.4.2/src/bauhaus/bauhaus.c darktable-4.6.1/src/bauhaus/bauhaus.c --- darktable-4.4.2/src/bauhaus/bauhaus.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/bauhaus/bauhaus.c 2024-02-16 17:31:09.000000000 +0000 @@ -50,25 +50,38 @@ }; static const dt_action_def_t _action_def_slider, _action_def_combo, - _action_def_focus_slider, _action_def_focus_combo, _action_def_focus_button; + _action_def_focus_slider, _action_def_focus_combo, + _action_def_focus_button; // INNER_PADDING is the horizontal space between slider and quad // and vertical space between labels and slider baseline static const double INNER_PADDING = 4.0; // fwd declare -static gboolean dt_bauhaus_popup_draw(GtkWidget *widget, cairo_t *cr, gpointer user_data); -static gboolean dt_bauhaus_popup_key_press(GtkWidget *widget, GdkEventKey *event, gpointer user_data); +static void _popup_show(GtkWidget *w); +static void _popup_reject(void); +static void _popup_hide(void); +static gboolean _popup_draw(GtkWidget *widget, cairo_t *cr, gpointer user_data); +static gboolean _popup_key_press(GtkWidget *widget, GdkEventKey *event, gpointer user_data); static gboolean _widget_draw(GtkWidget *widget, cairo_t *crf); static gboolean _widget_scroll(GtkWidget *widget, GdkEventScroll *event); static gboolean _widget_key_press(GtkWidget *widget, GdkEventKey *event); -static void _get_preferred_width(GtkWidget *widget, gint *minimum_size, gint *natural_size); -static void _get_preferred_height(GtkWidget *widget, gint *minimum_height, gint *natural_height); -static void dt_bauhaus_widget_accept(dt_bauhaus_widget_t *w); -static void dt_bauhaus_widget_reject(dt_bauhaus_widget_t *w); -static void _bauhaus_combobox_set(dt_bauhaus_widget_t *w, const int pos, const gboolean mute); +static gboolean _widget_button_press(GtkWidget *widget, GdkEventButton *event); +static gboolean _widget_button_release(GtkWidget *widget, GdkEventButton *event); +static gboolean _widget_motion_notify(GtkWidget *widget, GdkEventMotion *event); +static void _widget_get_preferred_width(GtkWidget *widget, + gint *minimum_size, + gint *natural_size); +static void _widget_get_preferred_height(GtkWidget *widget, + gint *minimum_height, + gint *natural_height); +static void _combobox_set(dt_bauhaus_widget_t *w, + const int pos, + const gboolean mute); +static void _slider_set_normalized(dt_bauhaus_widget_t *w, + const float pos); -static void bauhaus_request_focus(dt_bauhaus_widget_t *w) +static void _request_focus(dt_bauhaus_widget_t *w) { if(w->module && w->module->type == DT_ACTION_TYPE_IOP_INSTANCE) dt_iop_request_focus((dt_iop_module_t *)w->module); @@ -86,32 +99,45 @@ return .0f; } -static void _combobox_next_sensitive(dt_bauhaus_widget_t *w, int delta, const gboolean mute) +static void _combobox_next_sensitive(dt_bauhaus_widget_t *w, + int delta, + guint state, + const gboolean mute) { dt_bauhaus_combobox_data_t *d = &w->data.combobox; - delta *= dt_accel_get_speed_multiplier(GTK_WIDGET(w), 0); + delta *= dt_accel_get_speed_multiplier(GTK_WIDGET(w), state); int new_pos = d->active; - int step = delta > 0 ? 1 : -1; + const int step = delta > 0 ? 1 : -1; int cur = new_pos + step; + gchar *keys = g_utf8_casefold(darktable.bauhaus->keys, darktable.bauhaus->keys_cnt); + while(delta && cur >= 0 && cur < d->entries->len) { dt_bauhaus_combobox_entry_t *entry = g_ptr_array_index(d->entries, cur); - if(entry->sensitive) + gchar *text_cmp = g_utf8_casefold(entry->label, -1); + if(entry->sensitive && strstr(text_cmp, keys)) { new_pos = cur; delta -= step; } + g_free(text_cmp); cur += step; } - _bauhaus_combobox_set(w, new_pos, mute); + g_free(keys); + _combobox_set(w, new_pos, mute); } -static dt_bauhaus_combobox_entry_t *new_combobox_entry(const char *label, dt_bauhaus_combobox_alignment_t alignment, - gboolean sensitive, void *data, void (*free_func)(void *)) +static dt_bauhaus_combobox_entry_t *_new_combobox_entry + (const char *label, + const dt_bauhaus_combobox_alignment_t alignment, + const gboolean sensitive, + void *data, + void (*free_func)(void *)) { - dt_bauhaus_combobox_entry_t *entry = (dt_bauhaus_combobox_entry_t *)calloc(1, sizeof(dt_bauhaus_combobox_entry_t)); + dt_bauhaus_combobox_entry_t *entry = + (dt_bauhaus_combobox_entry_t *)calloc(1, sizeof(dt_bauhaus_combobox_entry_t)); entry->label = g_strdup(label); entry->alignment = alignment; entry->sensitive = sensitive; @@ -120,7 +146,7 @@ return entry; } -static void free_combobox_entry(gpointer data) +static void _free_combobox_entry(gpointer data) { dt_bauhaus_combobox_entry_t *entry = (dt_bauhaus_combobox_entry_t *)data; g_free(entry->label); @@ -129,7 +155,7 @@ free(entry); } -static GdkRGBA * default_color_assign() +static GdkRGBA * _default_color_assign() { // helper to initialize a color pointer with red color as a default GdkRGBA color = {.red = 1.0f, .green = 0.0f, .blue = 0.0f, .alpha = 1.0f}; @@ -150,10 +176,20 @@ w->is_section = is_section; } -static int show_pango_text(dt_bauhaus_widget_t *w, GtkStyleContext *context, cairo_t *cr, const char *text, - float x_pos, float y_pos, float max_width, gboolean right_aligned, gboolean calc_only, - PangoEllipsizeMode ellipsize, gboolean is_markup, gboolean is_label, float *width, - float *height) +static int _show_pango_text(dt_bauhaus_widget_t *w, + GtkStyleContext *context, + cairo_t *cr, + const char *text, + float x_pos, + float y_pos, + const float max_width, + const gboolean right_aligned, + const gboolean calc_only, + PangoEllipsizeMode ellipsize, + const gboolean is_markup, + const gboolean is_label, + float *width, + float *height) { PangoLayout *layout = pango_cairo_create_layout(cr); @@ -163,6 +199,18 @@ pango_layout_set_width(layout, (int)(PANGO_SCALE * max_width + 0.5f)); } + PangoFontDescription *font_desc = 0; + gtk_style_context_get(context, + gtk_widget_get_state_flags(GTK_WIDGET(w)), "font", + &font_desc, NULL); + + pango_layout_set_font_description(layout, font_desc); + + PangoAttrList *attrlist = pango_attr_list_new(); + pango_attr_list_insert(attrlist, pango_attr_font_features_new("tnum")); + pango_layout_set_attributes(layout, attrlist); + pango_attr_list_unref(attrlist); + if(text) { if(is_markup) @@ -176,17 +224,6 @@ pango_layout_set_text(layout, NULL, 0); } - PangoFontDescription *font_desc = 0; - gtk_style_context_get(context, gtk_widget_get_state_flags(GTK_WIDGET(w)), "font", &font_desc, NULL); - - pango_layout_set_font_description(layout, font_desc); - - PangoAttrList *attrlist = pango_attr_list_new(); - PangoAttribute *attr = pango_attr_font_features_new("tnum"); - pango_attr_list_insert(attrlist, attr); - pango_layout_set_attributes(layout, attrlist); - pango_attr_list_unref(attrlist); - pango_cairo_context_set_resolution(pango_layout_get_context(layout), darktable.gui->dpi); int pango_width, pango_height; @@ -214,20 +251,24 @@ // ------------------------------- static gboolean _cursor_timeout_callback(gpointer user_data) { - if(darktable.bauhaus->cursor_blink_counter > 0) darktable.bauhaus->cursor_blink_counter--; + if(darktable.bauhaus->cursor_blink_counter > 0) + darktable.bauhaus->cursor_blink_counter--; darktable.bauhaus->cursor_visible = !darktable.bauhaus->cursor_visible; gtk_widget_queue_draw(darktable.bauhaus->popup_area); - // this can be >0 when we haven't reached the desired number or -1 when blinking forever + // this can be >0 when we haven't reached the desired number or -1 + // when blinking forever if(darktable.bauhaus->cursor_blink_counter != 0) return TRUE; - darktable.bauhaus->cursor_timeout = 0; // otherwise the cursor won't come up when starting to type + darktable.bauhaus->cursor_timeout = 0; // otherwise the cursor won't + // come up when starting to + // type return FALSE; } -static void _start_cursor(int max_blinks) +static void _start_cursor(const int max_blinks) { darktable.bauhaus->cursor_blink_counter = max_blinks; darktable.bauhaus->cursor_visible = FALSE; @@ -246,31 +287,38 @@ } // ------------------------------- - -static void dt_bauhaus_slider_set_normalized(dt_bauhaus_widget_t *w, float pos); - -static float slider_right_pos(float width, dt_bauhaus_widget_t *w) +static float _slider_right_pos(const float width, + dt_bauhaus_widget_t *w) { - // relative position (in widget) of the right bound of the slider corrected with the inner padding + // relative position (in widget) of the right bound of the slider + // corrected with the inner padding return 1.0f - _widget_get_quad_width(w) / width; } -static float slider_coordinate(const float abs_position, const float width, dt_bauhaus_widget_t *w) +static float _slider_coordinate(const float abs_position, + const float width, + dt_bauhaus_widget_t *w) { - // Translates an horizontal position relative to the slider - // in an horizontal position relative to the widget + // Translates an horizontal position relative to the slider in an + // horizontal position relative to the widget const float left_bound = 0.0f; - const float right_bound = slider_right_pos(width, w); // exclude the quad area on the right + const float right_bound = _slider_right_pos(width, w); // exclude the quad area on + // the right return (left_bound + abs_position * (right_bound - left_bound)) * width; } -static float get_slider_line_offset(float pos, float scale, float x, float y, float ht, const int width, - dt_bauhaus_widget_t *w) +static float _slider_get_line_offset(const float pos, + const float scale, + float x, + float y, + const float ht, + const int width, + dt_bauhaus_widget_t *w) { // ht is in [0,1] scale here const float l = 0.0f; - const float r = slider_right_pos(width, w); + const float r = _slider_right_pos(width, w); float offset = 0.0f; // handle linear startup and rescale y to fit the whole range again @@ -287,18 +335,26 @@ / (.5f * y * y / scale + (1.0f - y * y) * (r - l)); } // clamp to result in a [0,1] range: - if(pos + offset > 1.0f) offset = 1.0f - pos; - if(pos + offset < 0.0f) offset = -pos; + if(pos + offset > 1.0f) + offset = 1.0f - pos; + if(pos + offset < 0.0f) + offset = -pos; return offset; } // draw a loupe guideline for the quadratic zoom in in the slider interface: -static void draw_slider_line(cairo_t *cr, float pos, float off, float scale, const int width, const int height, - const int ht, dt_bauhaus_widget_t *w) +static void _slider_draw_line(cairo_t *cr, + float pos, + float off, + float scale, + const int width, + const int height, + const int ht, + dt_bauhaus_widget_t *w) { // pos is normalized position [0,1], offset is on that scale. // ht is in pixels here - const float r = slider_right_pos(width, w); + const float r = _slider_right_pos(width, w); const int steps = 64; cairo_move_to(cr, width * (pos + off) * r, ht * .7f); @@ -312,26 +368,8 @@ } // ------------------------------- -static void combobox_popup_scroll(int amt) -{ - const dt_bauhaus_combobox_data_t *d = &darktable.bauhaus->current->data.combobox; - int old_value = d->active; - - _combobox_next_sensitive(darktable.bauhaus->current, amt, d->mute_scrolling); - - gint wx = 0, wy = 0; - const int skip = darktable.bauhaus->line_height; - GdkWindow *w = gtk_widget_get_window(darktable.bauhaus->popup_window); - gdk_window_get_origin(w, &wx, &wy); - gdk_window_move(w, wx, wy - skip * (d->active - old_value)); - - // make sure highlighted entry is updated: - darktable.bauhaus->mouse_x = 0; - darktable.bauhaus->mouse_y = d->active * skip + skip / 2; - gtk_widget_queue_draw(darktable.bauhaus->popup_area); -} - -static void _slider_zoom_range(dt_bauhaus_widget_t *w, float zoom) +static void _slider_zoom_range(dt_bauhaus_widget_t *w, + const float zoom) { dt_bauhaus_slider_data_t *d = &w->data.slider; @@ -341,7 +379,9 @@ { d->min = d->soft_min; d->max = d->soft_max; - dt_bauhaus_slider_set(GTK_WIDGET(w), value); // restore value (and move min/max again if needed) + dt_bauhaus_slider_set(GTK_WIDGET(w), value); // restore value (and + // move min/max again + // if needed) return; } @@ -359,36 +399,42 @@ } gtk_widget_queue_draw(GTK_WIDGET(w)); + if(darktable.bauhaus->current == w) + gtk_widget_queue_draw(darktable.bauhaus->popup_window); } static void _slider_zoom_toast(dt_bauhaus_widget_t *w) { dt_bauhaus_slider_data_t *d = &w->data.slider; - gchar *min_text = dt_bauhaus_slider_get_text(GTK_WIDGET(w), d->factor > 0 ? d->min : d->max); - gchar *max_text = dt_bauhaus_slider_get_text(GTK_WIDGET(w), d->factor > 0 ? d->max : d->min); + gchar *min_text = dt_bauhaus_slider_get_text(GTK_WIDGET(w), + d->factor > 0 ? d->min : d->max); + gchar *max_text = dt_bauhaus_slider_get_text(GTK_WIDGET(w), + d->factor > 0 ? d->max : d->min); dt_action_widget_toast(w->module, GTK_WIDGET(w), "\n[%s , %s]", min_text, max_text); g_free(min_text); g_free(max_text); } -static gboolean dt_bauhaus_popup_scroll(GtkWidget *widget, GdkEventScroll *event, gpointer user_data) +static gboolean _popup_scroll(GtkWidget *widget, + GdkEventScroll *event, + gpointer user_data) { + dt_bauhaus_widget_t *w = darktable.bauhaus->current; int delta_y = 0; - if(dt_gui_get_scroll_unit_deltas(event, NULL, &delta_y)) + if(dt_gui_get_scroll_unit_delta(event, &delta_y)) { if(darktable.bauhaus->current->type == DT_BAUHAUS_COMBOBOX) - combobox_popup_scroll(delta_y); + _combobox_next_sensitive(w, delta_y, 0, w->data.combobox.mute_scrolling); else - { - _slider_zoom_range(darktable.bauhaus->current, delta_y); - gtk_widget_queue_draw(widget); - } + _slider_zoom_range(w, delta_y); } return TRUE; } -static gboolean dt_bauhaus_popup_motion_notify(GtkWidget *widget, GdkEventMotion *event, gpointer user_data) +static gboolean _popup_motion_notify(GtkWidget *widget, + GdkEventMotion *event, + gpointer user_data) { gtk_widget_queue_draw(darktable.bauhaus->popup_area); @@ -405,11 +451,12 @@ gdk_window_get_origin(window, &wx, &wy); const float tol = 50; - if(event->x_root > wx + allocation.width + tol || event->y_root > wy + allocation.height + tol - || event->x_root < (int)wx - tol || event->y_root < (int)wy - tol) + if(event->x_root > wx + allocation.width + tol + || event->y_root > wy + allocation.height + tol + || event->x_root < (int)wx - tol + || event->y_root < (int)wy - tol) { - dt_bauhaus_widget_reject(darktable.bauhaus->current); - dt_bauhaus_hide_popup(); + _popup_reject(); return TRUE; } @@ -419,7 +466,8 @@ if(darktable.bauhaus->keys_cnt == 0) _stop_cursor(); GdkRectangle workarea; - gdk_monitor_get_workarea(gdk_display_get_monitor_at_window(gdk_window_get_display(window), window), &workarea); + gdk_monitor_get_workarea(gdk_display_get_monitor_at_window(gdk_window_get_display(window), + window), &workarea); const gint workarea_bottom = workarea.y + workarea.height; float dy = 0; @@ -445,113 +493,127 @@ if(w->type == DT_BAUHAUS_SLIDER) { const dt_bauhaus_slider_data_t *d = &w->data.slider; - const float mouse_off - = get_slider_line_offset(d->oldpos, 5.0 * powf(10.0f, -d->digits) / (d->max - d->min) / d->factor, - ex / width, (ey - dy)/ height, ht / (float)height, allocation.width, w); + const float mouse_off = _slider_get_line_offset + (d->oldpos, 5.0 * powf(10.0f, -d->digits) / (d->max - d->min) / d->factor, + ex / width, (ey - dy)/ height, ht / (float)height, allocation.width, w); if(!darktable.bauhaus->change_active) { if((darktable.bauhaus->mouse_line_distance < 0 && mouse_off >= 0) - || (darktable.bauhaus->mouse_line_distance > 0 && mouse_off <= 0)) - darktable.bauhaus->change_active = 1; + || (darktable.bauhaus->mouse_line_distance > 0 && mouse_off <= 0) + || event->state & GDK_BUTTON1_MASK) + darktable.bauhaus->change_active = TRUE; darktable.bauhaus->mouse_line_distance = mouse_off; } if(darktable.bauhaus->change_active) - dt_bauhaus_slider_set_normalized(w, d->oldpos + mouse_off); + _slider_set_normalized(w, d->oldpos + mouse_off); + } + else if(w->type == DT_BAUHAUS_COMBOBOX) + { + dt_bauhaus_combobox_data_t *d = &w->data.combobox; + const int active = + (darktable.bauhaus->mouse_y - w->top_gap) / darktable.bauhaus->line_height; + if(active >= 0 && active < d->entries->len) + { + const dt_bauhaus_combobox_entry_t *entry = g_ptr_array_index(d->entries, active); + if(entry->sensitive && event->state & GDK_BUTTON1_MASK) + { + if(active != d->active) + _combobox_set(w, active, w->data.combobox.mute_scrolling); + } + } } return TRUE; } -static gboolean dt_bauhaus_popup_leave_notify(GtkWidget *widget, GdkEventCrossing *event, gpointer user_data) +static gboolean _popup_leave_notify(GtkWidget *widget, + GdkEventCrossing *event, + gpointer user_data) { gtk_widget_set_state_flags(widget, GTK_STATE_FLAG_NORMAL, TRUE); return TRUE; } -static gboolean dt_bauhaus_popup_button_release(GtkWidget *widget, GdkEventButton *event, gpointer user_data) +static gboolean _popup_button_release(GtkWidget *widget, + GdkEventButton *event, + gpointer user_data) { - if(darktable.bauhaus->current && (darktable.bauhaus->current->type == DT_BAUHAUS_COMBOBOX) - && (event->button == 1) && dt_gui_long_click(event->time, darktable.bauhaus->opentime) && !darktable.bauhaus->hiding) - { - gtk_widget_set_state_flags(widget, GTK_STATE_FLAG_ACTIVE, TRUE); - - // event might be in wrong system, transform ourselves: - gint wx, wy, x, y; - gdk_window_get_origin(gtk_widget_get_window(darktable.bauhaus->popup_window), &wx, &wy); + if(darktable.bauhaus->change_active) + _popup_hide(); - gdk_device_get_position( - gdk_seat_get_pointer(gdk_display_get_default_seat(gtk_widget_get_display(widget))), 0, &x, &y); - darktable.bauhaus->end_mouse_x = x - wx; - darktable.bauhaus->end_mouse_y = y - wy; - const dt_bauhaus_combobox_data_t *d = &darktable.bauhaus->current->data.combobox; - if(!d->mute_scrolling) - dt_bauhaus_widget_accept(darktable.bauhaus->current); - dt_bauhaus_hide_popup(); - } - else if(darktable.bauhaus->hiding) - { - dt_bauhaus_hide_popup(); - } return TRUE; } -static gboolean dt_bauhaus_popup_button_press(GtkWidget *widget, GdkEventButton *event, gpointer user_data) +static gboolean _popup_button_press(GtkWidget *widget, + GdkEventButton *event, + gpointer user_data) { if(event->window != gtk_widget_get_window(widget)) { - dt_bauhaus_widget_reject(darktable.bauhaus->current); - dt_bauhaus_hide_popup(); + _popup_reject(); return TRUE; } + dt_bauhaus_widget_t *w = darktable.bauhaus->current; + if(event->button == 1) { - if(darktable.bauhaus->current->type == DT_BAUHAUS_COMBOBOX + // only accept left mouse click + gtk_widget_set_state_flags(GTK_WIDGET(w), + GTK_STATE_FLAG_FOCUSED, FALSE); + + if(w->type == DT_BAUHAUS_COMBOBOX && !dt_gui_long_click(event->time, darktable.bauhaus->opentime)) { // counts as double click, reset: - dt_bauhaus_widget_reset(GTK_WIDGET(darktable.bauhaus->current)); - dt_bauhaus_widget_reject(darktable.bauhaus->current); - gtk_widget_set_state_flags(GTK_WIDGET(darktable.bauhaus->current), - GTK_STATE_FLAG_FOCUSED, FALSE); + if(!(dt_modifier_is(event->state, GDK_CONTROL_MASK) && w->field + && dt_gui_presets_autoapply_for_module((dt_iop_module_t *)w->module, + GTK_WIDGET(w)))) + dt_bauhaus_widget_reset(GTK_WIDGET(w)); } - else - { - // only accept left mouse click - const GtkBorder *padding = darktable.bauhaus->popup_padding; - darktable.bauhaus->end_mouse_x = event->x - padding->left; - darktable.bauhaus->end_mouse_y = event->y - padding->top; - dt_bauhaus_widget_accept(darktable.bauhaus->current); - gtk_widget_set_state_flags(GTK_WIDGET(darktable.bauhaus->current), - GTK_STATE_FLAG_FOCUSED, FALSE); - } - darktable.bauhaus->hiding = TRUE; - } - else if(event->button == 2 && darktable.bauhaus->current->type == DT_BAUHAUS_SLIDER) - { - _slider_zoom_range(darktable.bauhaus->current, 0); - gtk_widget_queue_draw(widget); + + darktable.bauhaus->change_active = TRUE; + event->state |= GDK_BUTTON1_MASK; + _popup_motion_notify(widget, (GdkEventMotion*)event, user_data); } + else if(event->button == 2 && w->type == DT_BAUHAUS_SLIDER) + _slider_zoom_range(w, 0); else - { - dt_bauhaus_widget_reject(darktable.bauhaus->current); - darktable.bauhaus->hiding = TRUE; - } + _popup_reject(); + return TRUE; } -static void dt_bauhaus_window_show(GtkWidget *w, gpointer user_data) +static void _window_show(GtkWidget *w, gpointer user_data) { + // make sure combo popup handles button release gtk_grab_add(GTK_WIDGET(user_data)); } -static void dt_bh_init(DtBauhausWidget *class) +static void dt_bh_init(DtBauhausWidget *w) { - // not sure if we want to use this instead of our code in *_new() - // TODO: the common code from bauhaus_widget_init() could go here. + w->field = NULL; + + w->section = NULL; + + // no quad icon and no toggle button: + w->quad_paint = 0; + w->quad_paint_data = NULL; + w->quad_toggle = 0; + w->show_quad = TRUE; + w->show_label = TRUE; + + gtk_widget_add_events(GTK_WIDGET(w), GDK_POINTER_MOTION_MASK + | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK + | GDK_FOCUS_CHANGE_MASK + | darktable.gui->scroll_mask); + + gtk_widget_set_can_focus(GTK_WIDGET(w), TRUE); + dt_gui_add_class(GTK_WIDGET(w), "dt_bauhaus"); } -static gboolean _enter_leave(GtkWidget *widget, GdkEventCrossing *event) +static gboolean _widget_enter_leave(GtkWidget *widget, GdkEventCrossing *event) { if(event->type == GDK_ENTER_NOTIFY) // gtk_widget_set_state_flags triggers resize&draw avalanche @@ -582,6 +644,7 @@ free(d->text); } g_free(w->section); + g_free(w->tooltip); G_OBJECT_CLASS(dt_bh_parent_class)->finalize(widget); } @@ -589,28 +652,30 @@ static void dt_bh_class_init(DtBauhausWidgetClass *class) { darktable.bauhaus->signals[DT_BAUHAUS_VALUE_CHANGED_SIGNAL] - = g_signal_new("value-changed", G_TYPE_FROM_CLASS(class), G_SIGNAL_RUN_LAST, 0, NULL, NULL, + = g_signal_new("value-changed", G_TYPE_FROM_CLASS(class), + G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); darktable.bauhaus->signals[DT_BAUHAUS_QUAD_PRESSED_SIGNAL] - = g_signal_new("quad-pressed", G_TYPE_FROM_CLASS(class), G_SIGNAL_RUN_LAST, 0, NULL, NULL, + = g_signal_new("quad-pressed", G_TYPE_FROM_CLASS(class), + G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(class); widget_class->draw = _widget_draw; widget_class->scroll_event = _widget_scroll; widget_class->key_press_event = _widget_key_press; - widget_class->get_preferred_width = _get_preferred_width; - widget_class->get_preferred_height = _get_preferred_height; - widget_class->enter_notify_event = _enter_leave; - widget_class->leave_notify_event = _enter_leave; + widget_class->button_press_event = _widget_button_press; + widget_class->button_release_event = _widget_button_release; + widget_class->motion_notify_event = _widget_motion_notify; + widget_class->get_preferred_width = _widget_get_preferred_width; + widget_class->get_preferred_height = _widget_get_preferred_height; + widget_class->enter_notify_event = _widget_enter_leave; + widget_class->leave_notify_event = _widget_enter_leave; G_OBJECT_CLASS(class)->finalize = _widget_finalize; } void dt_bauhaus_load_theme() { - darktable.bauhaus->line_height = 9; - darktable.bauhaus->marker_size = 0.25f; - GtkWidget *root_window = dt_ui_main_window(darktable.gui->ui); GtkStyleContext *ctx = gtk_style_context_new(); GtkWidgetPath *path = gtk_widget_path_new(); @@ -619,24 +684,43 @@ gtk_style_context_set_path(ctx, path); gtk_style_context_set_screen (ctx, gtk_widget_get_screen(root_window)); - gtk_style_context_lookup_color(ctx, "bauhaus_fg", &darktable.bauhaus->color_fg); - gtk_style_context_lookup_color(ctx, "bauhaus_fg_insensitive", &darktable.bauhaus->color_fg_insensitive); - gtk_style_context_lookup_color(ctx, "bauhaus_bg", &darktable.bauhaus->color_bg); - gtk_style_context_lookup_color(ctx, "bauhaus_border", &darktable.bauhaus->color_border); - gtk_style_context_lookup_color(ctx, "bauhaus_fill", &darktable.bauhaus->color_fill); - gtk_style_context_lookup_color(ctx, "bauhaus_indicator_border", &darktable.bauhaus->indicator_border); - - gtk_style_context_lookup_color(ctx, "graph_bg", &darktable.bauhaus->graph_bg); - gtk_style_context_lookup_color(ctx, "graph_exterior", &darktable.bauhaus->graph_exterior); - gtk_style_context_lookup_color(ctx, "graph_border", &darktable.bauhaus->graph_border); - gtk_style_context_lookup_color(ctx, "graph_grid", &darktable.bauhaus->graph_grid); - gtk_style_context_lookup_color(ctx, "graph_fg", &darktable.bauhaus->graph_fg); - gtk_style_context_lookup_color(ctx, "graph_fg_active", &darktable.bauhaus->graph_fg_active); - gtk_style_context_lookup_color(ctx, "graph_overlay", &darktable.bauhaus->graph_overlay); - gtk_style_context_lookup_color(ctx, "inset_histogram", &darktable.bauhaus->inset_histogram); - gtk_style_context_lookup_color(ctx, "graph_red", &darktable.bauhaus->graph_colors[0]); - gtk_style_context_lookup_color(ctx, "graph_green", &darktable.bauhaus->graph_colors[1]); - gtk_style_context_lookup_color(ctx, "graph_blue", &darktable.bauhaus->graph_colors[2]); + gtk_style_context_lookup_color(ctx, "bauhaus_fg", + &darktable.bauhaus->color_fg); + gtk_style_context_lookup_color(ctx, "bauhaus_fg_hover", + &darktable.bauhaus->color_fg_hover); + gtk_style_context_lookup_color(ctx, "bauhaus_fg_insensitive", + &darktable.bauhaus->color_fg_insensitive); + gtk_style_context_lookup_color(ctx, "bauhaus_bg", + &darktable.bauhaus->color_bg); + gtk_style_context_lookup_color(ctx, "bauhaus_border", + &darktable.bauhaus->color_border); + gtk_style_context_lookup_color(ctx, "bauhaus_fill", + &darktable.bauhaus->color_fill); + gtk_style_context_lookup_color(ctx, "bauhaus_indicator_border", + &darktable.bauhaus->indicator_border); + + gtk_style_context_lookup_color(ctx, "graph_bg", + &darktable.bauhaus->graph_bg); + gtk_style_context_lookup_color(ctx, "graph_exterior", + &darktable.bauhaus->graph_exterior); + gtk_style_context_lookup_color(ctx, "graph_border", + &darktable.bauhaus->graph_border); + gtk_style_context_lookup_color(ctx, "graph_grid", + &darktable.bauhaus->graph_grid); + gtk_style_context_lookup_color(ctx, "graph_fg", + &darktable.bauhaus->graph_fg); + gtk_style_context_lookup_color(ctx, "graph_fg_active", + &darktable.bauhaus->graph_fg_active); + gtk_style_context_lookup_color(ctx, "graph_overlay", + &darktable.bauhaus->graph_overlay); + gtk_style_context_lookup_color(ctx, "inset_histogram", + &darktable.bauhaus->inset_histogram); + gtk_style_context_lookup_color(ctx, "graph_red", + &darktable.bauhaus->graph_colors[0]); + gtk_style_context_lookup_color(ctx, "graph_green", + &darktable.bauhaus->graph_colors[1]); + gtk_style_context_lookup_color(ctx, "graph_blue", + &darktable.bauhaus->graph_colors[2]); gtk_style_context_lookup_color(ctx, "colorlabel_red", &darktable.bauhaus->colorlabels[DT_COLORLABELS_RED]); gtk_style_context_lookup_color(ctx, "colorlabel_yellow", @@ -683,9 +767,11 @@ darktable.bauhaus->line_height = pango_height / PANGO_SCALE; darktable.bauhaus->quad_width = darktable.bauhaus->line_height; - darktable.bauhaus->baseline_size = darktable.bauhaus->line_height / 2.5f; // absolute size in Cairo unit + // absolute size in Cairo unit: + darktable.bauhaus->baseline_size = darktable.bauhaus->line_height / 2.5f; darktable.bauhaus->border_width = 2.0f; // absolute size in Cairo unit - darktable.bauhaus->marker_size = (darktable.bauhaus->baseline_size + darktable.bauhaus->border_width) * 0.9f; + darktable.bauhaus->marker_size = + (darktable.bauhaus->baseline_size + darktable.bauhaus->border_width) * 0.9f; } void dt_bauhaus_init() @@ -721,12 +807,15 @@ // gtk_window_set_decorated(GTK_WINDOW(c->popup_window), FALSE); // for pie menu: - // gtk_window_set_position(GTK_WINDOW(c->popup_window), GTK_WIN_POS_MOUSE);// | GTK_WIN_POS_CENTER); + // gtk_window_set_position(GTK_WINDOW(c->popup_window), + // GTK_WIN_POS_MOUSE);// | GTK_WIN_POS_CENTER); // needed on macOS to avoid fullscreening the popup with newer GTK - gtk_window_set_type_hint(GTK_WINDOW(darktable.bauhaus->popup_window), GDK_WINDOW_TYPE_HINT_POPUP_MENU); + gtk_window_set_type_hint(GTK_WINDOW(darktable.bauhaus->popup_window), + GDK_WINDOW_TYPE_HINT_POPUP_MENU); - gtk_container_add(GTK_CONTAINER(darktable.bauhaus->popup_window), darktable.bauhaus->popup_area); + gtk_container_add(GTK_CONTAINER(darktable.bauhaus->popup_window), + darktable.bauhaus->popup_area); gtk_widget_set_hexpand(darktable.bauhaus->popup_area, TRUE); gtk_widget_set_vexpand(darktable.bauhaus->popup_area, TRUE); // gtk_window_set_title(GTK_WINDOW(c->popup_window), _("dtgtk control popup")); @@ -734,73 +823,42 @@ gtk_window_set_gravity(GTK_WINDOW(darktable.bauhaus->popup_window), GDK_GRAVITY_STATIC); gtk_widget_set_can_focus(darktable.bauhaus->popup_area, TRUE); - gtk_widget_add_events(darktable.bauhaus->popup_area, GDK_POINTER_MOTION_MASK - | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - | GDK_KEY_PRESS_MASK | GDK_LEAVE_NOTIFY_MASK - | darktable.gui->scroll_mask); - - GObject *window = G_OBJECT(darktable.bauhaus->popup_window), *area = G_OBJECT(darktable.bauhaus->popup_area); - g_signal_connect(window, "show", G_CALLBACK(dt_bauhaus_window_show), area); - g_signal_connect(area, "draw", G_CALLBACK(dt_bauhaus_popup_draw), NULL); - g_signal_connect(area, "motion-notify-event", G_CALLBACK(dt_bauhaus_popup_motion_notify), NULL); - g_signal_connect(area, "leave-notify-event", G_CALLBACK(dt_bauhaus_popup_leave_notify), NULL); - g_signal_connect(area, "button-press-event", G_CALLBACK(dt_bauhaus_popup_button_press), NULL); - g_signal_connect(area, "button-release-event", G_CALLBACK (dt_bauhaus_popup_button_release), NULL); - g_signal_connect(area, "key-press-event", G_CALLBACK(dt_bauhaus_popup_key_press), NULL); - g_signal_connect(area, "scroll-event", G_CALLBACK(dt_bauhaus_popup_scroll), NULL); - - dt_action_define(&darktable.control->actions_focus, NULL, N_("sliders"), NULL, &_action_def_focus_slider); - dt_action_define(&darktable.control->actions_focus, NULL, N_("dropdowns"), NULL, &_action_def_focus_combo); - dt_action_define(&darktable.control->actions_focus, NULL, N_("buttons"), NULL, &_action_def_focus_button); + gtk_widget_add_events(darktable.bauhaus->popup_area, + GDK_POINTER_MOTION_MASK + | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + | GDK_KEY_PRESS_MASK | GDK_LEAVE_NOTIFY_MASK + | darktable.gui->scroll_mask); + + GObject *window = G_OBJECT(darktable.bauhaus->popup_window); + GObject *area = G_OBJECT(darktable.bauhaus->popup_area); + + g_signal_connect(window, "event", G_CALLBACK(dt_shortcut_dispatcher), NULL); + g_signal_connect(window, "show", G_CALLBACK(_window_show), area); + g_signal_connect(area, "draw", G_CALLBACK(_popup_draw), NULL); + g_signal_connect(window, "motion-notify-event", G_CALLBACK(_popup_motion_notify), NULL); + g_signal_connect(area, "leave-notify-event", G_CALLBACK(_popup_leave_notify), NULL); + g_signal_connect(area, "button-press-event", G_CALLBACK(_popup_button_press), NULL); + g_signal_connect(area, "button-release-event", G_CALLBACK (_popup_button_release), NULL); + g_signal_connect(area, "key-press-event", G_CALLBACK(_popup_key_press), NULL); + g_signal_connect(area, "scroll-event", G_CALLBACK(_popup_scroll), NULL); + + dt_action_define(&darktable.control->actions_focus, NULL, N_("sliders"), + NULL, &_action_def_focus_slider); + dt_action_define(&darktable.control->actions_focus, NULL, N_("dropdowns"), + NULL, &_action_def_focus_combo); + dt_action_define(&darktable.control->actions_focus, NULL, N_("buttons"), + NULL, &_action_def_focus_button); } void dt_bauhaus_cleanup() { } -// fwd declare a few callbacks -static gboolean dt_bauhaus_slider_button_press(GtkWidget *widget, GdkEventButton *event, gpointer user_data); -static gboolean dt_bauhaus_slider_button_release(GtkWidget *widget, GdkEventButton *event, gpointer user_data); -static gboolean dt_bauhaus_slider_motion_notify(GtkWidget *widget, GdkEventMotion *event, gpointer user_data); - - -static gboolean dt_bauhaus_combobox_button_press(GtkWidget *widget, GdkEventButton *event, gpointer user_data); -static gboolean dt_bauhaus_combobox_motion_notify(GtkWidget *widget, GdkEventMotion *event, gpointer user_data); - -// static gboolean -// dt_bauhaus_button_release(GtkWidget *widget, GdkEventButton *event, gpointer user_data); - // end static init/cleanup // ================================================= - -// common initialization -static void _bauhaus_widget_init(dt_bauhaus_widget_t *w, dt_iop_module_t *self) -{ - w->module = DT_ACTION(self); - w->field = NULL; - - w->section = NULL; - - // no quad icon and no toggle button: - w->quad_paint = 0; - w->quad_paint_data = NULL; - w->quad_toggle = 0; - w->show_quad = TRUE; - w->show_label = TRUE; - - gtk_widget_add_events(GTK_WIDGET(w), GDK_POINTER_MOTION_MASK - | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK - | GDK_FOCUS_CHANGE_MASK - | darktable.gui->scroll_mask); - - gtk_widget_set_can_focus(GTK_WIDGET(w), TRUE); - dt_gui_add_class(GTK_WIDGET(w), "dt_bauhaus"); -} - -void dt_bauhaus_combobox_set_default(GtkWidget *widget, int def) +void dt_bauhaus_combobox_set_default(GtkWidget *widget, const int def) { dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); dt_bauhaus_combobox_data_t *d = &w->data.combobox; @@ -814,7 +872,7 @@ return d->defpos; } -void dt_bauhaus_slider_set_hard_min(GtkWidget* widget, float val) +void dt_bauhaus_slider_set_hard_min(GtkWidget* widget, const float val) { dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); dt_bauhaus_slider_data_t *d = &w->data.slider; @@ -841,7 +899,7 @@ return d->hard_min; } -void dt_bauhaus_slider_set_hard_max(GtkWidget* widget, float val) +void dt_bauhaus_slider_set_hard_max(GtkWidget* widget, const float val) { dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); dt_bauhaus_slider_data_t *d = &w->data.slider; @@ -868,7 +926,7 @@ return d->hard_max; } -void dt_bauhaus_slider_set_soft_min(GtkWidget* widget, float val) +void dt_bauhaus_slider_set_soft_min(GtkWidget* widget, const float val) { dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); dt_bauhaus_slider_data_t *d = &w->data.slider; @@ -884,7 +942,7 @@ return d->soft_min; } -void dt_bauhaus_slider_set_soft_max(GtkWidget* widget, float val) +void dt_bauhaus_slider_set_soft_max(GtkWidget* widget, const float val) { dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); dt_bauhaus_slider_data_t *d = &w->data.slider; @@ -900,14 +958,16 @@ return d->soft_max; } -void dt_bauhaus_slider_set_default(GtkWidget *widget, float def) +void dt_bauhaus_slider_set_default(GtkWidget *widget, const float def) { dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); dt_bauhaus_slider_data_t *d = &w->data.slider; d->defpos = def; } -void dt_bauhaus_slider_set_soft_range(GtkWidget *widget, float soft_min, float soft_max) +void dt_bauhaus_slider_set_soft_range(GtkWidget *widget, + const float soft_min, + const float soft_max) { dt_bauhaus_slider_set_soft_min(widget,soft_min); dt_bauhaus_slider_set_soft_max(widget,soft_max); @@ -920,7 +980,9 @@ return d->defpos; } -dt_action_t *dt_bauhaus_widget_set_label(GtkWidget *widget, const char *section, const char *label) +dt_action_t *dt_bauhaus_widget_set_label(GtkWidget *widget, + const char *section, + const char *label) { dt_action_t *ac = NULL; dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); @@ -933,14 +995,19 @@ if(!darktable.bauhaus->skip_accel || w->module->type != DT_ACTION_TYPE_IOP_INSTANCE) { ac = dt_action_define(w->module, section, label, widget, - w->type == DT_BAUHAUS_SLIDER ? &_action_def_slider : &_action_def_combo); - if(w->module->type != DT_ACTION_TYPE_IOP_INSTANCE) w->module = ac; + w->type == DT_BAUHAUS_SLIDER + ? &_action_def_slider + : &_action_def_combo); + if(w->module->type != DT_ACTION_TYPE_IOP_INSTANCE) + w->module = ac; } // if new bauhaus widget added to front of widget_list; move it to the back dt_iop_module_t *m = (dt_iop_module_t *)w->module; - if(w->module->type == DT_ACTION_TYPE_IOP_INSTANCE && - w->field && m->widget_list && ((dt_action_target_t *)m->widget_list->data)->target == (gpointer)widget) + if(w->module->type == DT_ACTION_TYPE_IOP_INSTANCE + && w->field + && m->widget_list + && ((dt_action_target_t *)m->widget_list->data)->target == (gpointer)widget) { if(!m->widget_list_bh) { @@ -973,7 +1040,16 @@ return w->label; } -void dt_bauhaus_widget_set_quad_paint(GtkWidget *widget, dt_bauhaus_quad_paint_f f, int paint_flags, void *paint_data) +void dt_bauhaus_widget_hide_label(GtkWidget *widget) +{ + dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); + w->show_label = FALSE; +} + +void dt_bauhaus_widget_set_quad_paint(GtkWidget *widget, + dt_bauhaus_quad_paint_f f, + const int paint_flags, + void *paint_data) { dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); w->quad_paint = f; @@ -981,12 +1057,37 @@ w->quad_paint_data = paint_data; } -void dt_bauhaus_widget_set_field(GtkWidget *widget, gpointer field, dt_introspection_type_t field_type) +void dt_bauhaus_widget_set_quad_tooltip(GtkWidget *widget, + const gchar *text) +{ + dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); + if(!w) return; + + g_free(w->tooltip); + w->tooltip = g_strdup(text); +} + +gchar *dt_bauhaus_widget_get_tooltip_markup(GtkWidget *widget, + dt_action_element_t element) +{ + gchar *tooltip = DT_IS_BAUHAUS_WIDGET(widget) + && element == DT_ACTION_ELEMENT_BUTTON + ? DT_BAUHAUS_WIDGET(widget)->tooltip : NULL; + if(!(tooltip)) + return gtk_widget_get_tooltip_markup(widget); + + return g_markup_escape_text(tooltip, -1); +} + +void dt_bauhaus_widget_set_field(GtkWidget *widget, + gpointer field, + const dt_introspection_type_t field_type) { dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); if(*w->label) dt_print(DT_DEBUG_ALWAYS, - "[dt_bauhaus_widget_set_field] bauhaus label '%s' set before field (needs to be after)\n", + "[dt_bauhaus_widget_set_field] bauhaus label '%s'" + " set before field (needs to be after)\n", w->label); w->field = field; w->field_type = field_type; @@ -1004,7 +1105,9 @@ gboolean is_changed = GPOINTER_TO_INT(user_data); - for(GList *c = gtk_container_get_children(GTK_CONTAINER(w)); c; c = g_list_delete_link(c, c)) + for(GList *c = gtk_container_get_children(GTK_CONTAINER(w)); + c; + c = g_list_delete_link(c, c)) { if(!is_changed && DT_IS_BAUHAUS_WIDGET(c->data) && gtk_widget_get_visible(c->data)) { @@ -1013,10 +1116,12 @@ if(b->type == DT_BAUHAUS_SLIDER) { dt_bauhaus_slider_data_t *d = &b->data.slider; - is_changed = fabsf(d->pos - d->curve((d->defpos - d->min) / (d->max - d->min), DT_BAUHAUS_SET)) > 0.001f; + is_changed = fabsf(d->pos - d->curve((d->defpos - d->min) / (d->max - d->min), + DT_BAUHAUS_SET)) > 0.001f; } else - is_changed = b->data.combobox.entries->len && b->data.combobox.active != b->data.combobox.defpos; + is_changed = b->data.combobox.entries->len + && b->data.combobox.active != b->data.combobox.defpos; } } @@ -1028,72 +1133,102 @@ dt_gui_remove_class(label, "changed"); } -void dt_bauhaus_update_module(dt_iop_module_t *self) +void dt_bauhaus_update_from_field(dt_iop_module_t *module, + GtkWidget *widget, + gpointer params, + gpointer blend_params) { - GtkWidget *n = NULL; - for(GSList *w = self->widget_list_bh; w; w = w->next) + GtkWidget *notebook = NULL; + for(GSList *w = widget ? &(GSList){} : module->widget_list_bh; w; w = w->next) { dt_action_target_t *at = w->data; - GtkWidget *widget = at->target; + if(at) widget = at->target; dt_bauhaus_widget_t *bhw = DT_BAUHAUS_WIDGET(widget); if(!bhw) continue; + gpointer field = bhw->field; + + if(params) + { + int offset = field - module->params; + if(offset >= 0 && offset < module->params_size) + field = params + offset; + else + { + offset = field - (gpointer)module->blend_params; + if(offset >= 0 && offset < sizeof(dt_develop_blend_params_t) && blend_params) + field = blend_params + offset; + } + } + switch(bhw->type) { case DT_BAUHAUS_SLIDER: switch(bhw->field_type) { case DT_INTROSPECTION_TYPE_FLOAT: - dt_bauhaus_slider_set(widget, *(float *)bhw->field); + dt_bauhaus_slider_set(widget, *(float *)field); break; case DT_INTROSPECTION_TYPE_INT: - dt_bauhaus_slider_set(widget, *(int *)bhw->field); + dt_bauhaus_slider_set(widget, *(int *)field); break; case DT_INTROSPECTION_TYPE_USHORT: - dt_bauhaus_slider_set(widget, *(unsigned short *)bhw->field); + dt_bauhaus_slider_set(widget, *(unsigned short *)field); break; default: - dt_print(DT_DEBUG_ALWAYS, "[dt_bauhaus_update_module] unsupported slider data type\n"); + dt_print(DT_DEBUG_ALWAYS, + "[dt_bauhaus_update_from_field] unsupported slider data type\n"); } break; case DT_BAUHAUS_COMBOBOX: switch(bhw->field_type) { case DT_INTROSPECTION_TYPE_ENUM: - dt_bauhaus_combobox_set_from_value(widget, *(int *)bhw->field); + dt_bauhaus_combobox_set_from_value(widget, *(int *)field); break; case DT_INTROSPECTION_TYPE_INT: - dt_bauhaus_combobox_set(widget, *(int *)bhw->field); + dt_bauhaus_combobox_set(widget, *(int *)field); break; case DT_INTROSPECTION_TYPE_UINT: - dt_bauhaus_combobox_set(widget, *(unsigned int *)bhw->field); + dt_bauhaus_combobox_set(widget, *(unsigned int *)field); break; case DT_INTROSPECTION_TYPE_BOOL: - dt_bauhaus_combobox_set(widget, *(gboolean *)bhw->field); + dt_bauhaus_combobox_set(widget, *(gboolean *)field); break; default: - dt_print(DT_DEBUG_ALWAYS, "[dt_bauhaus_update_module] unsupported combo data type\n"); + dt_print(DT_DEBUG_ALWAYS, + "[dt_bauhaus_update_from_field] unsupported combo data type\n"); } break; default: - dt_print(DT_DEBUG_ALWAYS - , "[dt_bauhaus_update_module] invalid bauhaus widget type encountered\n"); - } - - if(!n && (n = gtk_widget_get_parent(widget)) && (n = gtk_widget_get_parent(n)) && !GTK_IS_NOTEBOOK(n)) n = NULL; - } - - if(n) gtk_container_foreach(GTK_CONTAINER(n), _highlight_changed_notebook_tab, NULL); + dt_print + (DT_DEBUG_ALWAYS, + "[dt_bauhaus_update_from_field] invalid bauhaus widget type encountered\n"); + } + + // if gui->reset then notebook tab highlights were not yet changed + if(!notebook && darktable.gui->reset + && (notebook = gtk_widget_get_parent(widget)) + && (notebook = gtk_widget_get_parent(notebook)) + && !GTK_IS_NOTEBOOK(notebook)) + notebook = NULL; + } + + if(notebook) + gtk_container_foreach(GTK_CONTAINER(notebook), + _highlight_changed_notebook_tab, NULL); } // make this quad a toggle button: -void dt_bauhaus_widget_set_quad_toggle(GtkWidget *widget, int toggle) +void dt_bauhaus_widget_set_quad_toggle(GtkWidget *widget, + const int toggle) { dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); w->quad_toggle = toggle; } -void dt_bauhaus_widget_set_quad_active(GtkWidget *widget, int active) +void dt_bauhaus_widget_set_quad_active(GtkWidget *widget, + const int active) { dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); if(active) @@ -1103,7 +1238,8 @@ gtk_widget_queue_draw(GTK_WIDGET(w)); } -void dt_bauhaus_widget_set_quad_visibility(GtkWidget *widget, const gboolean visible) +void dt_bauhaus_widget_set_quad_visibility(GtkWidget *widget, + const gboolean visible) { dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); w->show_quad = visible; @@ -1139,19 +1275,22 @@ } } -static float _default_linear_curve(const float value, const dt_bauhaus_curve_t dir) +static float _default_linear_curve(const float value, + const dt_bauhaus_curve_t dir) { // regardless of dir: input <-> output return value; } -static float _reverse_linear_curve(const float value, const dt_bauhaus_curve_t dir) +static float _reverse_linear_curve(const float value, + const dt_bauhaus_curve_t dir) { // regardless of dir: input <-> output return 1.0 - value; } -static float _curve_log10(const float inval, const dt_bauhaus_curve_t dir) +static float _curve_log10(const float inval, + const dt_bauhaus_curve_t dir) { if(dir == DT_BAUHAUS_SET) return log10f(inval * 999.0f + 1.0f) / 3.0f; @@ -1164,31 +1303,52 @@ return dt_bauhaus_slider_new_with_range(self, 0.0, 1.0, 0.1, 0.5, 3); } -GtkWidget *dt_bauhaus_slider_new_with_range(dt_iop_module_t *self, float min, float max, float step, - float defval, int digits) -{ - return dt_bauhaus_slider_new_with_range_and_feedback(self, min, max, step, defval, digits, 1); -} - -GtkWidget *dt_bauhaus_slider_new_action(dt_action_t *self, float min, float max, float step, - float defval, int digits) -{ - return dt_bauhaus_slider_new_with_range((dt_iop_module_t *)self, min, max, step, defval, digits); -} - -GtkWidget *dt_bauhaus_slider_new_with_range_and_feedback(dt_iop_module_t *self, float min, float max, - float step, float defval, int digits, int feedback) +GtkWidget *dt_bauhaus_slider_new_with_range(dt_iop_module_t *self, + const float min, + const float max, + const float step, + const float defval, + const int digits) +{ + return dt_bauhaus_slider_new_with_range_and_feedback + (self, min, max, step, defval, digits, 1); +} + +GtkWidget *dt_bauhaus_slider_new_action(dt_action_t *self, + const float min, + const float max, + const float step, + const float defval, + const int digits) +{ + return dt_bauhaus_slider_new_with_range((dt_iop_module_t *)self, + min, max, step, defval, digits); +} + +GtkWidget *dt_bauhaus_slider_new_with_range_and_feedback(dt_iop_module_t *self, + const float min, + const float max, + const float step, + const float defval, + const int digits, + const int feedback) { dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(g_object_new(DT_BAUHAUS_WIDGET_TYPE, NULL)); - return dt_bauhaus_slider_from_widget(w,self, min, max, step, defval, digits, feedback); + return dt_bauhaus_slider_from_widget(w, self, min, max, step, defval, digits, feedback); } -GtkWidget *dt_bauhaus_slider_from_widget(dt_bauhaus_widget_t* w,dt_iop_module_t *self, float min, float max, - float step, float defval, int digits, int feedback) +GtkWidget *dt_bauhaus_slider_from_widget(dt_bauhaus_widget_t* w, + dt_iop_module_t *self, + const float min, + const float max, + const float step, + const float defval, + const int digits, + const int feedback) { w->type = DT_BAUHAUS_SLIDER; - _bauhaus_widget_init(w, self); + w->module = DT_ACTION(self); dt_bauhaus_slider_data_t *d = &w->data.slider; d->min = d->soft_min = d->hard_min = min; d->max = d->soft_max = d->hard_max = max; @@ -1215,17 +1375,13 @@ gtk_widget_set_name(GTK_WIDGET(w), "bauhaus-slider"); - g_signal_connect(G_OBJECT(w), "button-press-event", G_CALLBACK(dt_bauhaus_slider_button_press), NULL); - g_signal_connect(G_OBJECT(w), "button-release-event", G_CALLBACK(dt_bauhaus_slider_button_release), NULL); - g_signal_connect(G_OBJECT(w), "motion-notify-event", G_CALLBACK(dt_bauhaus_slider_motion_notify), NULL); return GTK_WIDGET(w); } GtkWidget *dt_bauhaus_combobox_new(dt_iop_module_t *self) { dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(g_object_new(DT_BAUHAUS_WIDGET_TYPE, NULL)); - dt_bauhaus_combobox_from_widget(w,self); - return GTK_WIDGET(w); + return dt_bauhaus_combobox_from_widget(w, self); } GtkWidget *dt_bauhaus_combobox_new_action(dt_action_t *self) @@ -1233,25 +1389,33 @@ return dt_bauhaus_combobox_new((dt_iop_module_t *)self); } -GtkWidget *dt_bauhaus_combobox_new_full(dt_action_t *action, const char *section, const char *label, const char *tip, - int pos, GtkCallback callback, gpointer data, const char **texts) +GtkWidget *dt_bauhaus_combobox_new_full(dt_action_t *action, + const char *section, + const char *label, + const char *tip, + const int pos, + GtkCallback callback, + gpointer data, + const char **texts) { GtkWidget *combo = dt_bauhaus_combobox_new_action(action); dt_action_t *ac = dt_bauhaus_widget_set_label(combo, section, label); dt_bauhaus_combobox_add_list(combo, ac, texts); dt_bauhaus_combobox_set(combo, pos); gtk_widget_set_tooltip_text(combo, tip ? tip : _(label)); - if(callback) g_signal_connect(G_OBJECT(combo), "value-changed", G_CALLBACK(callback), data); + if(callback) + g_signal_connect(G_OBJECT(combo), "value-changed", G_CALLBACK(callback), data); return combo; } -void dt_bauhaus_combobox_from_widget(dt_bauhaus_widget_t* w,dt_iop_module_t *self) +GtkWidget *dt_bauhaus_combobox_from_widget(dt_bauhaus_widget_t* w, + dt_iop_module_t *self) { w->type = DT_BAUHAUS_COMBOBOX; - _bauhaus_widget_init(w, self); + w->module = DT_ACTION(self); dt_bauhaus_combobox_data_t *d = &w->data.combobox; - d->entries = g_ptr_array_new_full(4, free_combobox_entry); + d->entries = g_ptr_array_new_full(4, _free_combobox_entry); d->defpos = -1; d->active = -1; d->editable = 0; @@ -1263,8 +1427,7 @@ gtk_widget_set_name(GTK_WIDGET(w), "bauhaus-combobox"); - g_signal_connect(G_OBJECT(w), "button-press-event", G_CALLBACK(dt_bauhaus_combobox_button_press), NULL); - g_signal_connect(G_OBJECT(w), "motion-notify-event", G_CALLBACK(dt_bauhaus_combobox_motion_notify), NULL); + return GTK_WIDGET(w); } static dt_bauhaus_combobox_data_t *_combobox_data(GtkWidget *widget) @@ -1278,28 +1441,35 @@ return d; } -void dt_bauhaus_combobox_add_populate_fct(GtkWidget *widget, void (*fct)(GtkWidget *w, struct dt_iop_module_t **module)) +void dt_bauhaus_combobox_add_populate_fct(GtkWidget *widget, + void (*fct)(GtkWidget *w, + struct dt_iop_module_t **module)) { dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); if(w->type == DT_BAUHAUS_COMBOBOX) w->data.combobox.populate = fct; } -void dt_bauhaus_combobox_add_list(GtkWidget *widget, dt_action_t *action, const char **texts) +void dt_bauhaus_combobox_add_list(GtkWidget *widget, + dt_action_t *action, + const char **texts) { if(action) g_hash_table_insert(darktable.bauhaus->combo_list, action, texts); int item = 0; while(texts && *texts) - dt_bauhaus_combobox_add_full(widget, Q_(*(texts++)), DT_BAUHAUS_COMBOBOX_ALIGN_RIGHT, GINT_TO_POINTER(item++), NULL, TRUE); + dt_bauhaus_combobox_add_full(widget, Q_(*(texts++)), + DT_BAUHAUS_COMBOBOX_ALIGN_RIGHT, + GINT_TO_POINTER(item++), NULL, TRUE); } -gboolean dt_bauhaus_combobox_add_introspection(GtkWidget *widget, - dt_action_t *action, - const dt_introspection_type_enum_tuple_t *list, - const int start, - const int end) +gboolean dt_bauhaus_combobox_add_introspection + (GtkWidget *widget, + dt_action_t *action, + const dt_introspection_type_enum_tuple_t *list, + const int start, + const int end) { dt_introspection_type_enum_tuple_t *item = (dt_introspection_type_enum_tuple_t *)list; @@ -1320,39 +1490,55 @@ } -void dt_bauhaus_combobox_add(GtkWidget *widget, const char *text) +void dt_bauhaus_combobox_add(GtkWidget *widget, + const char *text) { - dt_bauhaus_combobox_add_full(widget, text, DT_BAUHAUS_COMBOBOX_ALIGN_RIGHT, NULL, NULL, TRUE); + dt_bauhaus_combobox_add_full(widget, text, + DT_BAUHAUS_COMBOBOX_ALIGN_RIGHT, NULL, NULL, TRUE); } -void dt_bauhaus_combobox_add_section(GtkWidget *widget, const char *text) +void dt_bauhaus_combobox_add_section(GtkWidget *widget, + const char *text) { - dt_bauhaus_combobox_add_full(widget, text, DT_BAUHAUS_COMBOBOX_ALIGN_LEFT, GINT_TO_POINTER(-1), NULL, FALSE); + dt_bauhaus_combobox_add_full(widget, text, + DT_BAUHAUS_COMBOBOX_ALIGN_LEFT, + GINT_TO_POINTER(-1), NULL, FALSE); } -void dt_bauhaus_combobox_add_aligned(GtkWidget *widget, const char *text, dt_bauhaus_combobox_alignment_t align) +void dt_bauhaus_combobox_add_aligned(GtkWidget *widget, + const char *text, + const dt_bauhaus_combobox_alignment_t align) { dt_bauhaus_combobox_add_full(widget, text, align, NULL, NULL, TRUE); } -void dt_bauhaus_combobox_add_full(GtkWidget *widget, const char *text, dt_bauhaus_combobox_alignment_t align, - gpointer data, void (free_func)(void *data), gboolean sensitive) +void dt_bauhaus_combobox_add_full(GtkWidget *widget, + const char *text, + dt_bauhaus_combobox_alignment_t align, + gpointer data, void (free_func)(void *data), + const gboolean sensitive) { if(darktable.control->accel_initialising) return; dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); if(w->type != DT_BAUHAUS_COMBOBOX) return; dt_bauhaus_combobox_data_t *d = &w->data.combobox; - dt_bauhaus_combobox_entry_t *entry = new_combobox_entry(text, align, sensitive, data, free_func); + dt_bauhaus_combobox_entry_t *entry = _new_combobox_entry(text, align, + sensitive, data, free_func); g_ptr_array_add(d->entries, entry); - if(d->active < 0) d->active = 0; - if(d->defpos < 0 && sensitive) d->defpos = GPOINTER_TO_INT(data); + if(d->active < 0) + d->active = 0; + if(d->defpos < 0 && sensitive) + d->defpos = GPOINTER_TO_INT(data); } -gboolean dt_bauhaus_combobox_set_entry_label(GtkWidget *widget, const int pos, const gchar *label) -{ - // change the text to show for the entry - // note that this doesn't break shortcuts but their names in the shortcut panel will remain the initial one +gboolean dt_bauhaus_combobox_set_entry_label(GtkWidget *widget, + const int pos, + const gchar *label) +{ + // change the text to show for the entry note that this doesn't + // break shortcuts but their names in the shortcut panel will remain + // the initial one dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); if(w->type != DT_BAUHAUS_COMBOBOX) return FALSE; dt_bauhaus_combobox_data_t *d = &w->data.combobox; @@ -1363,7 +1549,8 @@ return TRUE; } -void dt_bauhaus_combobox_set_entries_ellipsis(GtkWidget *widget, PangoEllipsizeMode ellipis) +void dt_bauhaus_combobox_set_entries_ellipsis(GtkWidget *widget, + PangoEllipsizeMode ellipis) { dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); if(w->type != DT_BAUHAUS_COMBOBOX) return; @@ -1378,14 +1565,15 @@ return d ? d->entries_ellipsis : PANGO_ELLIPSIZE_END; } -void dt_bauhaus_combobox_set_editable(GtkWidget *widget, int editable) +void dt_bauhaus_combobox_set_editable(GtkWidget *widget, + const int editable) { dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); if(w->type != DT_BAUHAUS_COMBOBOX) return; dt_bauhaus_combobox_data_t *d = &w->data.combobox; d->editable = editable ? 1 : 0; if(d->editable && !d->text) - d->text = calloc(1, DT_BAUHAUS_COMBO_MAX_TEXT); + d->text = calloc(1, DT_BAUHAUS_MAX_TEXT); } int dt_bauhaus_combobox_get_editable(GtkWidget *widget) @@ -1395,7 +1583,9 @@ return d ? d->editable : 0; } -void dt_bauhaus_combobox_set_selected_text_align(GtkWidget *widget, const dt_bauhaus_combobox_alignment_t text_align) +void dt_bauhaus_combobox_set_selected_text_align + (GtkWidget *widget, + const dt_bauhaus_combobox_alignment_t text_align) { dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); if(w->type != DT_BAUHAUS_COMBOBOX) return; @@ -1403,33 +1593,42 @@ d->text_align = text_align; } -void dt_bauhaus_combobox_remove_at(GtkWidget *widget, int pos) +void dt_bauhaus_combobox_remove_at(GtkWidget *widget, + const int pos) { dt_bauhaus_combobox_data_t *d = _combobox_data(widget); if(!d || pos < 0 || pos >= d->entries->len) return; - // move active position up if removing anything before it - // or when removing last position that is currently active. - // this also sets active to -1 when removing the last remaining entry in a combobox. + // move active position up if removing anything before it or when + // removing last position that is currently active. this also sets + // active to -1 when removing the last remaining entry in a + // combobox. if(d->active > pos || d->active == d->entries->len-1) d->active--; g_ptr_array_remove_index(d->entries, pos); } -void dt_bauhaus_combobox_insert(GtkWidget *widget, const char *text,int pos) -{ - dt_bauhaus_combobox_insert_full(widget, text, DT_BAUHAUS_COMBOBOX_ALIGN_RIGHT, NULL, NULL, pos); +void dt_bauhaus_combobox_insert(GtkWidget *widget, + const char *text, + const int pos) +{ + dt_bauhaus_combobox_insert_full(widget, text, + DT_BAUHAUS_COMBOBOX_ALIGN_RIGHT, NULL, NULL, pos); } -void dt_bauhaus_combobox_insert_full(GtkWidget *widget, const char *text, dt_bauhaus_combobox_alignment_t align, - gpointer data, void (*free_func)(void *), int pos) +void dt_bauhaus_combobox_insert_full(GtkWidget *widget, + const char *text, + const dt_bauhaus_combobox_alignment_t align, + gpointer data, void (*free_func)(void *), + const int pos) { dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); if(w->type != DT_BAUHAUS_COMBOBOX) return; dt_bauhaus_combobox_data_t *d = &w->data.combobox; - g_ptr_array_insert(d->entries, pos, new_combobox_entry(text, align, TRUE, data, free_func)); + g_ptr_array_insert(d->entries, pos, + _new_combobox_entry(text, align, TRUE, data, free_func)); if(d->active < 0) d->active = 0; } @@ -1474,7 +1673,8 @@ g_ptr_array_set_size(d->entries, 0); } -const char *dt_bauhaus_combobox_get_entry(GtkWidget *widget, int pos) +const char *dt_bauhaus_combobox_get_entry(GtkWidget *widget, + const int pos) { const dt_bauhaus_combobox_data_t *d = _combobox_data(widget); if(!d || pos < 0 || pos >= d->entries->len) return NULL; @@ -1483,21 +1683,41 @@ return entry->label; } -void dt_bauhaus_combobox_set_text(GtkWidget *widget, const char *text) +void dt_bauhaus_combobox_set_text(GtkWidget *widget, + const char *text) { const dt_bauhaus_combobox_data_t *d = _combobox_data(widget); if(!d || !d->editable) return; - g_strlcpy(d->text, text, DT_BAUHAUS_COMBO_MAX_TEXT); + g_strlcpy(d->text, text, DT_BAUHAUS_MAX_TEXT); gtk_widget_queue_draw(GTK_WIDGET(widget)); } -static void _bauhaus_combobox_set(dt_bauhaus_widget_t *w, const int pos, const gboolean mute) +static void _combobox_set(dt_bauhaus_widget_t *w, + const int pos, + const gboolean mute) { dt_bauhaus_combobox_data_t *d = &w->data.combobox; + d->active = CLAMP(pos, -1, (int)d->entries->len - 1); gtk_widget_queue_draw(GTK_WIDGET(w)); + dt_bauhaus_t *bh = darktable.bauhaus; + if(bh->current == w) + { + bh->change_active = TRUE; + float old_mouse_y = bh->mouse_y; + bh->mouse_y = d->active * bh->line_height + w->top_gap + + fmodf(old_mouse_y - w->top_gap, bh->line_height); + + GdkWindow *win = gtk_widget_get_window(bh->popup_window); + gint wx = 0, wy = 0; + gdk_window_get_origin(win, &wx, &wy); + gdk_window_move(win, wx, wy - bh->mouse_y + old_mouse_y); + + gtk_widget_queue_draw(bh->popup_window); + } + if(!darktable.gui->reset && !mute) { if(w->field) @@ -1507,7 +1727,8 @@ case DT_INTROSPECTION_TYPE_ENUM:; if(d->active >= 0) { - const dt_bauhaus_combobox_entry_t *entry = g_ptr_array_index(d->entries, d->active); + const dt_bauhaus_combobox_entry_t *entry = + g_ptr_array_index(d->entries, d->active); int *e = w->field, preve = *e; *e = GPOINTER_TO_INT(entry->data); if(*e != preve) dt_iop_gui_changed(w->module, GTK_WIDGET(w), &preve); } @@ -1525,22 +1746,25 @@ if(*b != prevb) dt_iop_gui_changed(w->module, GTK_WIDGET(w), &prevb); break; default: - dt_print(DT_DEBUG_ALWAYS, "[_bauhaus_combobox_set] unsupported combo data type\n"); + dt_print(DT_DEBUG_ALWAYS, "[_combobox_set] unsupported combo data type\n"); } } - _highlight_changed_notebook_tab(GTK_WIDGET(w), GINT_TO_POINTER(d->active != d->defpos)); + _highlight_changed_notebook_tab(GTK_WIDGET(w), + GINT_TO_POINTER(d->active != d->defpos)); g_signal_emit_by_name(G_OBJECT(w), "value-changed"); } } -void dt_bauhaus_combobox_set(GtkWidget *widget, const int pos) +void dt_bauhaus_combobox_set(GtkWidget *widget, + const int pos) { dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); if(w->type != DT_BAUHAUS_COMBOBOX) return; - _bauhaus_combobox_set(w, pos, FALSE); + _combobox_set(w, pos, FALSE); } -gboolean dt_bauhaus_combobox_set_from_text(GtkWidget *widget, const char *text) +gboolean dt_bauhaus_combobox_set_from_text(GtkWidget *widget, + const char *text) { if(!text) return FALSE; @@ -1558,7 +1782,8 @@ return FALSE; } -int dt_bauhaus_combobox_get_from_value(GtkWidget *widget, int value) +int dt_bauhaus_combobox_get_from_value(GtkWidget *widget, + const int value) { const dt_bauhaus_combobox_data_t *d = _combobox_data(widget); @@ -1574,14 +1799,16 @@ return -1; } -gboolean dt_bauhaus_combobox_set_from_value(GtkWidget *widget, int value) +gboolean dt_bauhaus_combobox_set_from_value(GtkWidget *widget, + const int value) { const int pos = dt_bauhaus_combobox_get_from_value(widget, value); dt_bauhaus_combobox_set(widget, pos); if(pos != -1) return TRUE; - // this might be a legacy option that was hidden; try to re-add from introspection + // this might be a legacy option that was hidden; try to re-add from + // introspection dt_introspection_type_enum_tuple_t *values = g_hash_table_lookup(darktable.bauhaus->combo_introspection, dt_action_widget(widget)); if(values @@ -1601,12 +1828,15 @@ return d ? d->active : -1; } -void dt_bauhaus_combobox_entry_set_sensitive(GtkWidget *widget, int pos, gboolean sensitive) +void dt_bauhaus_combobox_entry_set_sensitive(GtkWidget *widget, + const int pos, + const gboolean sensitive) { const dt_bauhaus_combobox_data_t *d = _combobox_data(widget); if(!d || pos < 0 || pos >= d->entries->len) return; - dt_bauhaus_combobox_entry_t *entry = (dt_bauhaus_combobox_entry_t *)g_ptr_array_index(d->entries, pos); + dt_bauhaus_combobox_entry_t *entry = + (dt_bauhaus_combobox_entry_t *)g_ptr_array_index(d->entries, pos); entry->sensitive = sensitive; } @@ -1618,7 +1848,11 @@ d->grad_cnt = 0; } -void dt_bauhaus_slider_set_stop(GtkWidget *widget, float stop, float r, float g, float b) +void dt_bauhaus_slider_set_stop(GtkWidget *widget, + const float stop, + const float r, + const float g, + const float b) { dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); if(w->type != DT_BAUHAUS_SLIDER) return; @@ -1657,7 +1891,7 @@ } } -static void draw_equilateral_triangle(cairo_t *cr, float radius) +static void _draw_equilateral_triangle(cairo_t *cr, float radius) { const float sin = 0.866025404 * radius; const float cos = 0.5f * radius; @@ -1667,7 +1901,12 @@ cairo_line_to(cr, 0.0, radius); } -static void dt_bauhaus_draw_indicator(dt_bauhaus_widget_t *w, float pos, cairo_t *cr, float wd, const GdkRGBA fg_color, const GdkRGBA border_color) +static void _draw_indicator(dt_bauhaus_widget_t *w, + const float pos, + cairo_t *cr, + const float wd, + const GdkRGBA fg_color, + const GdkRGBA border_color) { // draw scale indicator (the tiny triangle) if(w->type != DT_BAUHAUS_SLIDER) return; @@ -1676,23 +1915,23 @@ const float size = darktable.bauhaus->marker_size; cairo_save(cr); - cairo_translate(cr, slider_coordinate(pos, wd, w), + cairo_translate(cr, _slider_coordinate(pos, wd, w), darktable.bauhaus->line_height + INNER_PADDING + (darktable.bauhaus->baseline_size - border_width) / 2.0f); cairo_scale(cr, 1.0f, -1.0f); cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND); // draw the outer triangle - draw_equilateral_triangle(cr, size); + _draw_equilateral_triangle(cr, size); cairo_set_line_width(cr, border_width); set_color(cr, border_color); cairo_stroke(cr); - draw_equilateral_triangle(cr, size - border_width); + _draw_equilateral_triangle(cr, size - border_width); cairo_clip(cr); // draw the inner triangle - draw_equilateral_triangle(cr, size - border_width); + _draw_equilateral_triangle(cr, size - border_width); set_color(cr, fg_color); cairo_set_line_width(cr, border_width); @@ -1706,24 +1945,29 @@ cairo_restore(cr); } -static void dt_bauhaus_draw_quad(dt_bauhaus_widget_t *w, cairo_t *cr, const int width, const int height) +static void _draw_quad(dt_bauhaus_widget_t *w, + cairo_t *cr, + const int width, + const int height) { if(!w->show_quad) return; + dt_bauhaus_t *bh = darktable.bauhaus; const gboolean sensitive = gtk_widget_is_sensitive(GTK_WIDGET(w)); if(w->quad_paint) { cairo_save(cr); - if(sensitive && (w->quad_paint_flags & CPF_ACTIVE)) - set_color(cr, darktable.bauhaus->color_fg); - else - set_color(cr, darktable.bauhaus->color_fg_insensitive); + const gboolean hovering = bh->hovered == GTK_WIDGET(w) + && darktable.control->element == DT_ACTION_ELEMENT_BUTTON; - w->quad_paint(cr, width - darktable.bauhaus->quad_width, // x - 0.0, // y - darktable.bauhaus->quad_width, // width - darktable.bauhaus->quad_width, // height + set_color(cr, sensitive && (w->quad_paint_flags & CPF_ACTIVE) + ? hovering ? bh->color_fg_hover : bh->color_fg + : hovering ? bh->color_fg : bh->color_fg_insensitive); + w->quad_paint(cr, width - bh->quad_width, // x + 0.0, // y + bh->quad_width, // width + bh->quad_width, // height w->quad_paint_flags, w->quad_paint_data); cairo_restore(cr); @@ -1732,19 +1976,16 @@ { // draw active area square: cairo_save(cr); - if(sensitive) - set_color(cr, darktable.bauhaus->color_fg); - else - set_color(cr, darktable.bauhaus->color_fg_insensitive); + set_color(cr, sensitive ? bh->color_fg : bh->color_fg_insensitive); switch(w->type) { case DT_BAUHAUS_COMBOBOX: - cairo_translate(cr, width - darktable.bauhaus->quad_width * .5f, height * .5f); - GdkRGBA *text_color = default_color_assign(); + cairo_translate(cr, width - bh->quad_width * .5f, height * .5f); + GdkRGBA *text_color = _default_color_assign(); GtkStyleContext *context = gtk_widget_get_style_context(GTK_WIDGET(w)); const GtkStateFlags state = gtk_widget_get_state_flags(GTK_WIDGET(w)); gtk_style_context_get_color(context, state, text_color); - const float r = darktable.bauhaus->quad_width * .2f; + const float r = bh->quad_width * .2f; cairo_move_to(cr, -r, -r * .5f); cairo_line_to(cr, 0, r * .5f); cairo_line_to(cr, r, -r * .5f); @@ -1756,7 +1997,7 @@ break; default: cairo_set_source_rgb(cr, 1.0, 0.0, 0.0); - cairo_rectangle(cr, width - darktable.bauhaus->quad_width, 0.0, darktable.bauhaus->quad_width, darktable.bauhaus->quad_width); + cairo_rectangle(cr, width - bh->quad_width, 0.0, bh->quad_width, bh->quad_width); cairo_fill(cr); break; } @@ -1764,7 +2005,9 @@ } } -static void dt_bauhaus_draw_baseline(dt_bauhaus_widget_t *w, cairo_t *cr, float width) +static void _draw_baseline(dt_bauhaus_widget_t *w, + cairo_t *cr, + const float width) { // draw line for orientation in slider if(w->type != DT_BAUHAUS_SLIDER) return; @@ -1791,7 +2034,10 @@ gradient = cairo_pattern_create_linear(0, 0, slider_width, htM); for(int k = 0; k < d->grad_cnt; k++) cairo_pattern_add_color_stop_rgba(gradient, (d->grad_pos[k] - offset) / zoom, - d->grad_col[k][0], d->grad_col[k][1], d->grad_col[k][2], 0.4f); + d->grad_col[k][0], + d->grad_col[k][1], + d->grad_col[k][2], + 0.4f); cairo_set_source(cr, gradient); } else @@ -1803,9 +2049,10 @@ cairo_fill(cr); // get the reference of the slider aka the position of the 0 value - const float origin = fmaxf(fminf((d->factor > 0 ? -d->min - d->offset/d->factor - : d->max + d->offset/d->factor) - / (d->max - d->min), 1.0f) * slider_width, 0.0f); + const float origin = + fmaxf(fminf((d->factor > 0 ? -d->min - d->offset/d->factor + : d->max + d->offset/d->factor) + / (d->max - d->min), 1.0f) * slider_width, 0.0f); const float position = d->pos * slider_width; const float delta = position - origin; @@ -1836,7 +2083,8 @@ if(origin < graduation_height) cairo_arc(cr, graduation_height, graduation_top, graduation_height, 0, 2 * M_PI); else if(origin > slider_width - graduation_height) - cairo_arc(cr, slider_width - graduation_height, graduation_top, graduation_height, 0, 2 * M_PI); + cairo_arc(cr, slider_width - graduation_height, + graduation_top, graduation_height, 0, 2 * M_PI); else cairo_arc(cr, origin, graduation_top, graduation_height, 0, 2 * M_PI); } @@ -1847,99 +2095,12 @@ if(d->grad_cnt > 0) cairo_pattern_destroy(gradient); } -static void dt_bauhaus_widget_reject(dt_bauhaus_widget_t *w) +static void _popup_reject(void) { - switch(w->type) - { - case DT_BAUHAUS_COMBOBOX: - break; - case DT_BAUHAUS_SLIDER: - { - dt_bauhaus_slider_data_t *d = &w->data.slider; - dt_bauhaus_slider_set_normalized(w, d->oldpos); - } - break; - default: - break; - } -} - -static void dt_bauhaus_widget_accept(dt_bauhaus_widget_t *w) -{ - GtkWidget *widget = GTK_WIDGET(w); - - GtkAllocation allocation_popup_window; - gtk_widget_get_allocation(darktable.bauhaus->popup_window, &allocation_popup_window); - const GtkBorder *padding = darktable.bauhaus->popup_padding; - - const int width = allocation_popup_window.width - padding->left - padding->right; - const int height = allocation_popup_window.height - padding->top - padding->bottom; - const int base_height = darktable.bauhaus->line_height + INNER_PADDING * 2.0f; - - switch(w->type) - { - case DT_BAUHAUS_COMBOBOX: - { - // only set to what's in the filtered list. - dt_bauhaus_combobox_data_t *d = &w->data.combobox; - const int active = darktable.bauhaus->end_mouse_y >= 0 - ? ((darktable.bauhaus->end_mouse_y - w->top_gap) / darktable.bauhaus->line_height) - : d->active; - int k = 0, i = 0, kk = 0, match = 1; - - gchar *keys = g_utf8_casefold(darktable.bauhaus->keys, -1); - for(int j = 0; j < d->entries->len; j++) - { - const dt_bauhaus_combobox_entry_t *entry = g_ptr_array_index(d->entries, j); - gchar *text_cmp = g_utf8_casefold(entry->label, -1); - if(!strncmp(text_cmp, keys, darktable.bauhaus->keys_cnt)) - { - if(active == k) - { - if(entry->sensitive) - dt_bauhaus_combobox_set(widget, i); - g_free(keys); - g_free(text_cmp); - return; - } - kk = i; // remember for down there - // editable should only snap to perfect matches, not prefixes: - if(d->editable && strcmp(entry->label, darktable.bauhaus->keys)) match = 0; - k++; - } - i++; - g_free(text_cmp); - } - // didn't find it, but had only one matching choice? - if(k == 1 && match) - dt_bauhaus_combobox_set(widget, kk); - else if(d->editable) - { - // otherwise, if combobox is editable, assume it is a custom input - memset(d->text, 0, DT_BAUHAUS_COMBO_MAX_TEXT); - g_strlcpy(d->text, darktable.bauhaus->keys, DT_BAUHAUS_COMBO_MAX_TEXT); - // select custom entry - dt_bauhaus_combobox_set(widget, -1); - } - g_free(keys); - break; - } - case DT_BAUHAUS_SLIDER: - { - if(darktable.bauhaus->end_mouse_y < darktable.bauhaus->line_height) break; - - dt_bauhaus_slider_data_t *d = &w->data.slider; - const float mouse_off - = get_slider_line_offset(d->oldpos, 5.0 * powf(10.0f, -d->digits) / (d->max - d->min) / d->factor, - darktable.bauhaus->end_mouse_x / width, darktable.bauhaus->end_mouse_y / height, - base_height / (float)height, allocation_popup_window.width, w); - dt_bauhaus_slider_set_normalized(w, d->oldpos + mouse_off); - d->oldpos = d->pos; - break; - } - default: - break; - } + dt_bauhaus_widget_t *w = darktable.bauhaus->current; + if(w->type == DT_BAUHAUS_SLIDER) + _slider_set_normalized(w, w->data.slider.oldpos); + _popup_hide(); } static gchar *_build_label(const dt_bauhaus_widget_t *w) @@ -1950,7 +2111,9 @@ return g_strdup(w->label); } -static gboolean dt_bauhaus_popup_draw(GtkWidget *widget, cairo_t *crf, gpointer user_data) +static gboolean _popup_draw(GtkWidget *widget, + cairo_t *crf, + gpointer user_data) { dt_bauhaus_widget_t *w = darktable.bauhaus->current; @@ -1965,7 +2128,9 @@ int ht = darktable.bauhaus->line_height + INNER_PADDING * 2.0f; // get area properties - cairo_surface_t *cst = dt_cairo_image_surface_create(CAIRO_FORMAT_ARGB32, allocation.width, allocation.height); + cairo_surface_t *cst = dt_cairo_image_surface_create(CAIRO_FORMAT_ARGB32, + allocation.width, + allocation.height); cairo_t *cr = cairo_create(cst); GtkStyleContext *context = gtk_widget_get_style_context(widget); @@ -1977,7 +2142,7 @@ gtk_style_context_get_color(context, GTK_STATE_FLAG_PRELIGHT, &text_color_hover); gtk_style_context_get_color(context, GTK_STATE_FLAG_INSENSITIVE, &text_color_insensitive); - GdkRGBA *fg_color = default_color_assign(); + GdkRGBA *fg_color = _default_color_assign(); GdkRGBA *bg_color; GtkStateFlags state = gtk_widget_get_state_flags(widget); @@ -1991,6 +2156,8 @@ // translate to account for the widget spacing cairo_translate(cr, padding->left, padding->top); + gboolean none_found = TRUE; + // switch on bauhaus widget type (so we only need one static window) switch(w->type) { @@ -1998,7 +2165,7 @@ { const dt_bauhaus_slider_data_t *d = &w->data.slider; - dt_bauhaus_draw_baseline(w, cr, w2); + _draw_baseline(w, cr, w2); cairo_save(cr); cairo_set_line_width(cr, 0.5); @@ -2014,7 +2181,7 @@ GdkRGBA fg_copy = *fg_color; fg_copy.alpha = scale / fabsf(off); set_color(cr, fg_copy); - draw_slider_line(cr, d->oldpos, off, scale, w2, h2, ht, w); + _slider_draw_line(cr, d->oldpos, off, scale, w2, h2, ht, w); cairo_stroke(cr); } cairo_restore(cr); @@ -2025,40 +2192,50 @@ cairo_set_line_width(cr, 2.); const float mouse_off = darktable.bauhaus->change_active - ? get_slider_line_offset(d->oldpos, scale, darktable.bauhaus->mouse_x / w2, - darktable.bauhaus->mouse_y / h2, ht / (float)h2, allocation.width, w) + ? _slider_get_line_offset(d->oldpos, scale, + darktable.bauhaus->mouse_x / w2, + darktable.bauhaus->mouse_y / h2, + ht / (float)h2, allocation.width, w) : 0.0f; - draw_slider_line(cr, d->oldpos, mouse_off, scale, w2, h2, ht, w); + _slider_draw_line(cr, d->oldpos, mouse_off, scale, w2, h2, ht, w); cairo_stroke(cr); cairo_restore(cr); // draw indicator - dt_bauhaus_draw_indicator(w, d->oldpos + mouse_off, cr, w2, *fg_color, *bg_color); + _draw_indicator(w, d->oldpos + mouse_off, cr, w2, *fg_color, *bg_color); // draw numerical value: cairo_save(cr); - char *text = dt_bauhaus_slider_get_text(GTK_WIDGET(w), dt_bauhaus_slider_get(GTK_WIDGET(w))); + char *text = dt_bauhaus_slider_get_text(GTK_WIDGET(w), + dt_bauhaus_slider_get(GTK_WIDGET(w))); set_color(cr, *fg_color); - const float value_width = show_pango_text(w, context, cr, text, w2 - _widget_get_quad_width(w), 0, 0, TRUE, - FALSE, PANGO_ELLIPSIZE_END, FALSE, FALSE, NULL, NULL); + const float value_width = _show_pango_text(w, context, cr, text, w2 - + _widget_get_quad_width(w), 0, 0, + TRUE, FALSE, + PANGO_ELLIPSIZE_END, + FALSE, FALSE, NULL, NULL); g_free(text); set_color(cr, text_color_insensitive); - char *min = dt_bauhaus_slider_get_text(GTK_WIDGET(w), d->factor > 0 ? d->min : d->max); - show_pango_text(w, context, cr, min, 0, ht + INNER_PADDING, 0, FALSE, FALSE, PANGO_ELLIPSIZE_END, FALSE, - FALSE, NULL, NULL); + char *min = dt_bauhaus_slider_get_text(GTK_WIDGET(w), + d->factor > 0 ? d->min : d->max); + _show_pango_text(w, context, cr, min, 0, ht + INNER_PADDING, 0, + FALSE, FALSE, PANGO_ELLIPSIZE_END, FALSE, FALSE, NULL, NULL); g_free(min); - char *max = dt_bauhaus_slider_get_text(GTK_WIDGET(w), d->factor > 0 ? d->max : d->min); - show_pango_text(w, context, cr, max, w2 - _widget_get_quad_width(w), ht + INNER_PADDING, 0, TRUE, FALSE, - PANGO_ELLIPSIZE_END, FALSE, FALSE, NULL, NULL); + char *max = dt_bauhaus_slider_get_text(GTK_WIDGET(w), + d->factor > 0 ? d->max : d->min); + _show_pango_text(w, context, cr, max, w2 - + _widget_get_quad_width(w), ht + INNER_PADDING, 0, + TRUE, FALSE, PANGO_ELLIPSIZE_END, FALSE, FALSE, NULL, NULL); g_free(max); - const float label_width = w2 - _widget_get_quad_width(w) - INNER_PADDING - value_width; + const float label_width = + w2 - _widget_get_quad_width(w) - INNER_PADDING - value_width; if(label_width > 0) { gchar *lb = _build_label(w); - show_pango_text(w, context, cr, lb, 0, 0, label_width, FALSE, FALSE, PANGO_ELLIPSIZE_END, FALSE, FALSE, - NULL, NULL); + _show_pango_text(w, context, cr, lb, 0, 0, label_width, + FALSE, FALSE, PANGO_ELLIPSIZE_END, FALSE, FALSE, NULL, NULL); g_free(lb); } cairo_restore(cr); @@ -2071,81 +2248,121 @@ float first_label_width = 0.0; gboolean first_label = *w->label; gboolean show_box_label = TRUE; - int k = 0, i = 0; ht = darktable.bauhaus->line_height; - const int hovered = (darktable.bauhaus->mouse_y - w->top_gap) / darktable.bauhaus->line_height; - gchar *keys = g_utf8_casefold(darktable.bauhaus->keys, -1); + const int hovered = + (darktable.bauhaus->mouse_y - w->top_gap) / darktable.bauhaus->line_height; + gchar *keys = g_utf8_casefold(darktable.bauhaus->keys, darktable.bauhaus->keys_cnt); const PangoEllipsizeMode ellipsis = d->entries_ellipsis; + darktable.bauhaus->unique_match = -1; for(int j = 0; j < d->entries->len; j++) { const dt_bauhaus_combobox_entry_t *entry = g_ptr_array_index(d->entries, j); gchar *text_cmp = g_utf8_casefold(entry->label, -1); - if(!strncmp(text_cmp, keys, darktable.bauhaus->keys_cnt)) + gchar *search_found = strstr(text_cmp, keys); + gchar *entry_found = entry->label + (search_found - text_cmp); + + gchar *label = NULL; + float max_width = w2 - _widget_get_quad_width(w); + float label_width = 0.0f; + if(!entry->sensitive) { - float max_width = w2 - _widget_get_quad_width(w); - float label_width = 0.0f; - if(!entry->sensitive) - set_color(cr, text_color_insensitive); - else if(i == hovered) + set_color(cr, text_color_insensitive); + label = g_markup_printf_escaped("<b>%s</b>", entry->label); + } + else + { + if(j == hovered) set_color(cr, text_color_hover); - else if(i == d->active) + else if(j == d->active) set_color(cr, text_color_selected); else set_color(cr, text_color); - if(entry->alignment == DT_BAUHAUS_COMBOBOX_ALIGN_LEFT) - { - gchar *esc_label = g_markup_escape_text(entry->label, -1); - gchar *label = g_strdup_printf("<b>%s</b>", esc_label); - label_width = show_pango_text(w, context, cr, label, 0, ht * k + w->top_gap, max_width, FALSE, FALSE, - ellipsis, TRUE, FALSE, NULL, NULL); - g_free(label); - g_free(esc_label); - } - else if(entry->alignment == DT_BAUHAUS_COMBOBOX_ALIGN_MIDDLE) - { - // first pass, we just get the text width - label_width = show_pango_text(w, context, cr, entry->label, 0, ht * k + w->top_gap, max_width, FALSE, - TRUE, ellipsis, TRUE, FALSE, NULL, NULL); - // second pass, we draw it in the middle - const int posx = MAX(0, (max_width - label_width) / 2); - label_width = show_pango_text(w, context, cr, entry->label, posx, ht * k + w->top_gap, max_width, FALSE, - FALSE, ellipsis, TRUE, FALSE, NULL, NULL); - } + if(!search_found) + label = g_markup_printf_escaped("<span alpha=\"50%%\">%s</span>", + entry->label); else { - if(first_label) max_width *= 0.8; // give the label at least some room - label_width - = show_pango_text(w, context, cr, entry->label, w2 - _widget_get_quad_width(w), ht * k + w->top_gap, - max_width, TRUE, FALSE, ellipsis, FALSE, FALSE, NULL, NULL); + if(!d->editable) + darktable.bauhaus->unique_match = none_found ? j : -1; + else if(!strcmp(text_cmp, keys)) + darktable.bauhaus->unique_match = j; + none_found = FALSE; + + gchar *start = g_strndup(entry->label, entry_found - entry->label); + gchar *match = g_strndup(entry_found, darktable.bauhaus->keys_cnt); + label = g_markup_printf_escaped("%s<b>%s</b>%s", + start, match, + entry_found + darktable.bauhaus->keys_cnt); + g_free(start); + g_free(match); } + } - // prefer the entry over the label wrt. ellipsization when expanded + if(entry->alignment == DT_BAUHAUS_COMBOBOX_ALIGN_LEFT) + { + label_width = _show_pango_text(w, context, cr, + label, 0, ht * j + w->top_gap, max_width, + FALSE, FALSE, ellipsis, TRUE, FALSE, NULL, NULL); + } + else if(entry->alignment == DT_BAUHAUS_COMBOBOX_ALIGN_MIDDLE) + { + // first pass, we just get the text width + label_width = _show_pango_text(w, context, cr, + label, 0, ht * j + w->top_gap, max_width, + FALSE, TRUE, ellipsis, TRUE, FALSE, NULL, NULL); + // second pass, we draw it in the middle + const int posx = MAX(0, (max_width - label_width) / 2); + label_width = _show_pango_text(w, context, cr, + label, posx, ht * j + w->top_gap, max_width, + FALSE, FALSE, ellipsis, TRUE, FALSE, NULL, NULL); + } + else + { if(first_label) - { - show_box_label = entry->alignment == DT_BAUHAUS_COMBOBOX_ALIGN_RIGHT; - first_label_width = label_width; - first_label = FALSE; - } - - k++; + max_width *= 0.8; // give the label at least some room + label_width = _show_pango_text(w, context, cr, + label, w2 - _widget_get_quad_width(w), + ht * j + w->top_gap, max_width, + TRUE, FALSE, ellipsis, TRUE, FALSE, NULL, NULL); } - i++; + g_free(label); g_free(text_cmp); + + // prefer the entry over the label wrt. ellipsization when expanded + if(first_label) + { + show_box_label = entry->alignment == DT_BAUHAUS_COMBOBOX_ALIGN_RIGHT; + first_label_width = label_width; + first_label = FALSE; + } } cairo_restore(cr); - // left aligned box label. add it to the gui after the entries so we can ellipsize it if needed + // left aligned box label. add it to the gui after the entries + // so we can ellipsize it if needed if(show_box_label) { set_color(cr, text_color); gchar *lb = _build_label(w); - show_pango_text(w, context, cr, lb, 0, w->top_gap, w2 - _widget_get_quad_width(w) - first_label_width, - FALSE, FALSE, PANGO_ELLIPSIZE_END, FALSE, TRUE, NULL, NULL); + _show_pango_text(w, context, cr, + lb, 0, w->top_gap, + w2 - _widget_get_quad_width(w) - first_label_width, + FALSE, FALSE, PANGO_ELLIPSIZE_END, FALSE, TRUE, NULL, NULL); g_free(lb); } g_free(keys); + + if(none_found && !d->editable && darktable.bauhaus->keys_cnt > 0) + { + darktable.bauhaus->keys_cnt = + g_utf8_prev_char(darktable.bauhaus->keys + darktable.bauhaus->keys_cnt) + - darktable.bauhaus->keys; + none_found = FALSE; + gtk_widget_queue_draw(widget); + } + } break; default: @@ -2157,22 +2374,24 @@ // allow stuff to be written here in the key callback. const int line_height = darktable.bauhaus->line_height; const int size = MIN(3 * line_height, .2 * h2); - if(darktable.bauhaus->keys_cnt) + if(none_found && darktable.bauhaus->keys_cnt) { cairo_save(cr); PangoLayout *layout = pango_cairo_create_layout(cr); PangoRectangle ink; - pango_cairo_context_set_resolution(pango_layout_get_context(layout), darktable.gui->dpi); + pango_cairo_context_set_resolution(pango_layout_get_context(layout), + darktable.gui->dpi); set_color(cr, text_color); // make extra large, but without dependency on popup window height // (that might differ for comboboxes for example). only fall back // to height dependency if the popup is really small. - PangoFontDescription *desc = pango_font_description_copy_static(darktable.bauhaus->pango_font_desc); + PangoFontDescription *desc = + pango_font_description_copy_static(darktable.bauhaus->pango_font_desc); pango_font_description_set_absolute_size(desc, size * PANGO_SCALE); pango_layout_set_font_description(layout, desc); - pango_layout_set_text(layout, darktable.bauhaus->keys, -1); + pango_layout_set_text(layout, darktable.bauhaus->keys, darktable.bauhaus->keys_cnt); pango_layout_get_pixel_extents(layout, &ink, NULL); cairo_move_to(cr, w2 - _widget_get_quad_width(w) - ink.width, h2 * 0.5 - size); pango_cairo_show_layout(cr, layout); @@ -2203,7 +2422,8 @@ return TRUE; } -static gboolean _widget_draw(GtkWidget *widget, cairo_t *crf) +static gboolean _widget_draw(GtkWidget *widget, + cairo_t *crf) { GtkAllocation allocation; gtk_widget_get_allocation(widget, &allocation); @@ -2213,10 +2433,11 @@ cairo_t *cr = cairo_create(cst); GtkStyleContext *context = gtk_widget_get_style_context(widget); - GdkRGBA *fg_color = default_color_assign(); + GdkRGBA *fg_color = _default_color_assign(); GdkRGBA *bg_color; - GdkRGBA *text_color = default_color_assign(); - const GtkStateFlags hovering = widget == darktable.bauhaus->hovered ? GTK_STATE_FLAG_PRELIGHT : 0; + GdkRGBA *text_color = _default_color_assign(); + const GtkStateFlags hovering = + widget == darktable.bauhaus->hovered ? GTK_STATE_FLAG_PRELIGHT : 0; const GtkStateFlags state = gtk_widget_get_state_flags(widget) | hovering; gtk_style_context_get_color(context, state, text_color); @@ -2234,13 +2455,13 @@ // draw type specific content: cairo_save(cr); cairo_set_line_width(cr, 1.0); + if(w->show_quad) _draw_quad(w, cr, w3, h3); switch(w->type) { case DT_BAUHAUS_COMBOBOX: { // draw label and quad area at right end set_color(cr, *text_color); - if(w->show_quad) dt_bauhaus_draw_quad(w, cr, w3, h3); dt_bauhaus_combobox_data_t *d = &w->data.combobox; const PangoEllipsizeMode combo_ellipsis = d->entries_ellipsis; @@ -2260,12 +2481,13 @@ float label_height = 0; // we only show the label if the text is aligned on the right if(label_text && w->show_label && d->text_align == DT_BAUHAUS_COMBOBOX_ALIGN_RIGHT) - show_pango_text(w, context, cr, label_text, 0, 0, 0, FALSE, TRUE, PANGO_ELLIPSIZE_END, FALSE, TRUE, - &label_width, &label_height); + _show_pango_text(w, context, cr, label_text, 0, 0, 0, + FALSE, TRUE, PANGO_ELLIPSIZE_END, + FALSE, TRUE, &label_width, &label_height); float combo_width = 0; float combo_height = 0; - show_pango_text(w, context, cr, text, available_width, 0, 0, TRUE, TRUE, combo_ellipsis, FALSE, FALSE, - &combo_width, &combo_height); + _show_pango_text(w, context, cr, text, available_width, 0, 0, + TRUE, TRUE, combo_ellipsis, FALSE, FALSE, &combo_width, &combo_height); // we want to center the text vertically w->top_gap = floor((h3 - fmaxf(label_height, combo_height)) / 2.0f); //check if they fit @@ -2276,40 +2498,44 @@ // they don't fit: evenly divide the available width between the two in proportion const float ratio = label_width / (label_width + combo_width); if(w->show_label) - show_pango_text(w, context, cr, label_text, 0, w->top_gap, available_width * ratio - INNER_PADDING * 2, - FALSE, FALSE, PANGO_ELLIPSIZE_END, FALSE, TRUE, NULL, NULL); - show_pango_text(w, context, cr, text, available_width, w->top_gap, available_width * (1.0f - ratio), - TRUE, FALSE, combo_ellipsis, FALSE, FALSE, NULL, NULL); + _show_pango_text(w, context, cr, + label_text, 0, + w->top_gap, available_width * ratio - INNER_PADDING * 2, + FALSE, FALSE, PANGO_ELLIPSIZE_END, FALSE, TRUE, NULL, NULL); + _show_pango_text(w, context, cr, + text, available_width, w->top_gap, + available_width * (1.0f - ratio), + TRUE, FALSE, combo_ellipsis, FALSE, FALSE, NULL, NULL); } else if(d->text_align == DT_BAUHAUS_COMBOBOX_ALIGN_MIDDLE) { const int posx = MAX(0, (available_width - combo_width) / 2); - show_pango_text(w, context, cr, text, posx, w->top_gap, available_width, FALSE, FALSE, combo_ellipsis, - FALSE, FALSE, NULL, NULL); + _show_pango_text(w, context, cr, text, posx, w->top_gap, available_width, + FALSE, FALSE, combo_ellipsis, FALSE, FALSE, NULL, NULL); } else - show_pango_text(w, context, cr, text, 0, w->top_gap, available_width, FALSE, FALSE, combo_ellipsis, - FALSE, FALSE, NULL, NULL); + _show_pango_text(w, context, cr, text, 0, w->top_gap, available_width, + FALSE, FALSE, combo_ellipsis, FALSE, FALSE, NULL, NULL); } else { if(d->text_align == DT_BAUHAUS_COMBOBOX_ALIGN_RIGHT) { if(w->show_label) - show_pango_text(w, context, cr, label_text, 0, w->top_gap, 0, FALSE, FALSE, PANGO_ELLIPSIZE_END, FALSE, - TRUE, NULL, NULL); - show_pango_text(w, context, cr, text, available_width, w->top_gap, 0, TRUE, FALSE, combo_ellipsis, FALSE, - FALSE, NULL, NULL); + _show_pango_text(w, context, cr, label_text, 0, w->top_gap, 0, + FALSE, FALSE, PANGO_ELLIPSIZE_END, FALSE, TRUE, NULL, NULL); + _show_pango_text(w, context, cr, text, available_width, w->top_gap, 0, + TRUE, FALSE, combo_ellipsis, FALSE, FALSE, NULL, NULL); } else if(d->text_align == DT_BAUHAUS_COMBOBOX_ALIGN_MIDDLE) { const int posx = MAX(0, (available_width - combo_width) / 2); - show_pango_text(w, context, cr, text, posx, w->top_gap, 0, FALSE, FALSE, combo_ellipsis, FALSE, FALSE, - NULL, NULL); + _show_pango_text(w, context, cr, text, posx, w->top_gap, 0, + FALSE, FALSE, combo_ellipsis, FALSE, FALSE, NULL, NULL); } else - show_pango_text(w, context, cr, text, 0, w->top_gap, 0, FALSE, FALSE, combo_ellipsis, FALSE, FALSE, NULL, - NULL); + _show_pango_text(w, context, cr, text, 0, w->top_gap, 0, + FALSE, FALSE, combo_ellipsis, FALSE, FALSE, NULL, NULL); } g_free(label_text); break; @@ -2317,8 +2543,7 @@ case DT_BAUHAUS_SLIDER: { // line for orientation - dt_bauhaus_draw_baseline(w, cr, w3); - if(w->show_quad) dt_bauhaus_draw_quad(w, cr, w3, h3); + _draw_baseline(w, cr, w3); float value_width = 0; if(gtk_widget_is_sensitive(widget)) @@ -2326,15 +2551,17 @@ cairo_save(cr); cairo_rectangle(cr, 0, 0, w3 - _widget_get_quad_width(w), h3 + INNER_PADDING); cairo_clip(cr); - dt_bauhaus_draw_indicator(w, w->data.slider.pos, cr, w3, *fg_color, *bg_color); + _draw_indicator(w, w->data.slider.pos, cr, w3, *fg_color, *bg_color); cairo_restore(cr); // TODO: merge that text with combo char *text = dt_bauhaus_slider_get_text(widget, dt_bauhaus_slider_get(widget)); set_color(cr, *text_color); - value_width = show_pango_text(w, context, cr, text, w3 - _widget_get_quad_width(w), 0, 0, TRUE, FALSE, - PANGO_ELLIPSIZE_END, FALSE, FALSE, NULL, NULL); + value_width = _show_pango_text(w, context, cr, + text, w3 - _widget_get_quad_width(w), 0, 0, + TRUE, FALSE, PANGO_ELLIPSIZE_END, + FALSE, FALSE, NULL, NULL); g_free(text); } // label on top of marker: @@ -2342,8 +2569,8 @@ set_color(cr, *text_color); const float label_width = w3 - _widget_get_quad_width(w) - value_width; if(label_width > 0) - show_pango_text(w, context, cr, label_text, 0, 0, label_width, FALSE, FALSE, PANGO_ELLIPSIZE_END, FALSE, - TRUE, NULL, NULL); + _show_pango_text(w, context, cr, label_text, 0, 0, label_width, + FALSE, FALSE, PANGO_ELLIPSIZE_END, FALSE, TRUE, NULL, NULL); g_free(label_text); } break; @@ -2366,7 +2593,8 @@ return TRUE; } -static gint _bauhaus_natural_width(GtkWidget *widget, gboolean popup) +static gint _natural_width(GtkWidget *widget, + const gboolean popup) { gint natural_size = 0; @@ -2374,11 +2602,13 @@ PangoLayout *layout = gtk_widget_create_pango_layout(widget, NULL); PangoFontDescription *font_desc = 0; - gtk_style_context_get(gtk_widget_get_style_context(widget), gtk_widget_get_state_flags(GTK_WIDGET(w)), "font", &font_desc, NULL); + gtk_style_context_get(gtk_widget_get_style_context(widget), + gtk_widget_get_state_flags(GTK_WIDGET(w)), + "font", &font_desc, NULL); pango_layout_set_font_description(layout, font_desc); PangoAttrList *attrlist = pango_attr_list_new(); - PangoAttribute *attr = pango_attr_font_features_new("tnum"); - pango_attr_list_insert(attrlist, attr); + pango_attr_list_insert(attrlist, pango_attr_font_features_new("tnum")); + pango_attr_list_insert(attrlist, pango_attr_weight_new(PANGO_WEIGHT_BOLD)); pango_layout_set_attributes(layout, attrlist); pango_attr_list_unref(attrlist); @@ -2395,7 +2625,9 @@ gint label_width = 0, entry_width = 0; - if(natural_size && d->text_align == DT_BAUHAUS_COMBOBOX_ALIGN_RIGHT && (popup || w->show_label)) + if(natural_size + && d->text_align == DT_BAUHAUS_COMBOBOX_ALIGN_RIGHT + && (popup || w->show_label)) label_width = natural_size + 2 * INNER_PADDING; for(int i = 0; i < d->entries->len; i++) @@ -2430,16 +2662,20 @@ return natural_size; } -static void _get_preferred_width(GtkWidget *widget, gint *minimum_width, gint *natural_width) +static void _widget_get_preferred_width(GtkWidget *widget, + gint *minimum_width, + gint *natural_width) { dt_bauhaus_widget_t *w = (dt_bauhaus_widget_t *)widget; _margins_retrieve(w); - *natural_width = _bauhaus_natural_width(widget, FALSE) + *natural_width = _natural_width(widget, FALSE) + w->margin.left + w->margin.right + w->padding.left + w->padding.right; } -static void _get_preferred_height(GtkWidget *widget, gint *minimum_height, gint *natural_height) +static void _widget_get_preferred_height(GtkWidget *widget, + gint *minimum_height, + gint *natural_height) { dt_bauhaus_widget_t *w = (dt_bauhaus_widget_t *)widget; _margins_retrieve(w); @@ -2448,39 +2684,43 @@ + darktable.bauhaus->line_height; if(w->type == DT_BAUHAUS_SLIDER) { - // the lower thing to draw is indicator. See dt_bauhaus_draw_baseline for compute details - *minimum_height += INNER_PADDING + darktable.bauhaus->baseline_size + 1.5f * darktable.bauhaus->border_width; + // the lower thing to draw is indicator. See _draw_baseline for compute details + *minimum_height += INNER_PADDING + + darktable.bauhaus->baseline_size + 1.5f * darktable.bauhaus->border_width; } *natural_height = *minimum_height; } -void dt_bauhaus_hide_popup() +static void _popup_hide() { - if(darktable.bauhaus->current) + dt_bauhaus_widget_t *bhw = darktable.bauhaus->current; + if(bhw) { + if(bhw->type == DT_BAUHAUS_COMBOBOX + && bhw->data.combobox.mute_scrolling + && darktable.bauhaus->change_active) + g_signal_emit_by_name(G_OBJECT(bhw), "value-changed"); + gtk_grab_remove(darktable.bauhaus->popup_area); gtk_widget_hide(darktable.bauhaus->popup_window); gtk_window_set_attached_to(GTK_WINDOW(darktable.bauhaus->popup_window), NULL); darktable.bauhaus->current = NULL; - // TODO: give focus to center view? do in accept() as well? } _stop_cursor(); } -void dt_bauhaus_show_popup(GtkWidget *widget) +static void _popup_show(GtkWidget *widget) { dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); - if(darktable.bauhaus->current) dt_bauhaus_hide_popup(); + if(darktable.bauhaus->current) _popup_hide(); darktable.bauhaus->current = w; darktable.bauhaus->keys_cnt = 0; - memset(darktable.bauhaus->keys, 0, sizeof(darktable.bauhaus->keys)); - darktable.bauhaus->change_active = 0; + darktable.bauhaus->change_active = FALSE; darktable.bauhaus->mouse_line_distance = 0.0f; - darktable.bauhaus->hiding = FALSE; _stop_cursor(); - bauhaus_request_focus(w); + _request_focus(w); gtk_widget_realize(darktable.bauhaus->popup_window); @@ -2492,7 +2732,9 @@ gint wox = wx, woy = wy; // we update the popup padding defined in css - if(!darktable.bauhaus->popup_padding) darktable.bauhaus->popup_padding = gtk_border_new(); + if(!darktable.bauhaus->popup_padding) + darktable.bauhaus->popup_padding = gtk_border_new(); + GtkStyleContext *context = gtk_widget_get_style_context(darktable.bauhaus->popup_area); gtk_style_context_add_class(context, "dt_bauhaus_popup"); // let's update the css class depending on the source widget type @@ -2522,15 +2764,19 @@ else { // by default, we want the popup to be exactly the size of the widget content - tmp.width = MAX(1, tmp.width - (w->margin.left + w->margin.right + w->padding.left + w->padding.right)); + tmp.width = + MAX(1, + tmp.width - (w->margin.left + w->margin.right + + w->padding.left + w->padding.right)); } - const gint natural_w = _bauhaus_natural_width(widget, TRUE); + const gint natural_w = _natural_width(widget, TRUE); if(tmp.width < natural_w) tmp.width = natural_w; gint px, py; - GdkDevice *pointer = gdk_seat_get_pointer(gdk_display_get_default_seat(gdk_display_get_default())); + GdkDevice *pointer = + gdk_seat_get_pointer(gdk_display_get_default_seat(gdk_display_get_default())); gdk_device_get_position(pointer, NULL, &px, &py); if(px < right_of_w - tmp.width || px > right_of_w) @@ -2565,8 +2811,7 @@ dt_iop_module_t *module = (dt_iop_module_t *)(w->module); const dt_bauhaus_combobox_data_t *d = &w->data.combobox; if(d->populate) d->populate(widget, &module); - // comboboxes change immediately - darktable.bauhaus->change_active = 1; + if(!d->entries->len) return; tmp.height = darktable.bauhaus->line_height * d->entries->len + w->margin.top + w->margin.bottom + w->top_gap; @@ -2588,11 +2833,14 @@ // and now we extent the popup to take account of its own padding wx -= darktable.bauhaus->popup_padding->left; wy -= darktable.bauhaus->popup_padding->top; - tmp.width += darktable.bauhaus->popup_padding->left + darktable.bauhaus->popup_padding->right; - tmp.height += darktable.bauhaus->popup_padding->top + darktable.bauhaus->popup_padding->bottom; + tmp.width += darktable.bauhaus->popup_padding->left + + darktable.bauhaus->popup_padding->right; + tmp.height += darktable.bauhaus->popup_padding->top + + darktable.bauhaus->popup_padding->bottom; GdkRectangle workarea; - gdk_monitor_get_workarea(gdk_display_get_monitor_at_point(gdk_display_get_default(), wox, woy), &workarea); + gdk_monitor_get_workarea(gdk_display_get_monitor_at_point(gdk_display_get_default(), + wox, woy), &workarea); wx = MAX(workarea.x, MIN(wx, workarea.x + workarea.width - tmp.width)); // gtk_widget_get_window will return null if not shown yet. @@ -2604,12 +2852,16 @@ gtk_window_move(GTK_WINDOW(darktable.bauhaus->popup_window), wx, wy); gtk_widget_set_size_request(darktable.bauhaus->popup_window, tmp.width, tmp.height); // gtk_window_set_keep_above isn't enough on macOS - gtk_window_set_attached_to(GTK_WINDOW(darktable.bauhaus->popup_window), GTK_WIDGET(darktable.bauhaus->current)); + gtk_window_set_attached_to(GTK_WINDOW(darktable.bauhaus->popup_window), widget); gtk_widget_show_all(darktable.bauhaus->popup_window); + gtk_window_set_modal(GTK_WINDOW(darktable.bauhaus->popup_window), TRUE); gtk_widget_grab_focus(darktable.bauhaus->popup_area); } -static void _slider_add_step(GtkWidget *widget, float delta, guint state, gboolean force) +static void _slider_add_step(GtkWidget *widget, + float delta, + const guint state, + const gboolean force) { if(delta == 0) return; @@ -2619,9 +2871,11 @@ const float value = dt_bauhaus_slider_get(widget); if(d->curve == _curve_log10) - delta = value * (powf(0.97f, - delta * dt_accel_get_speed_multiplier(widget, state)) - 1.0f); + delta = value + * (powf(0.97f, - delta * dt_accel_get_speed_multiplier(widget, state)) - 1.0f); else - delta *= dt_bauhaus_slider_get_step(widget) * dt_accel_get_speed_multiplier(widget, state); + delta *= dt_bauhaus_slider_get_step(widget) + * dt_accel_get_speed_multiplier(widget, state); const float min_visible = powf(10.0f, -d->digits) / fabsf(d->factor); if(delta && fabsf(delta) < min_visible) @@ -2629,8 +2883,10 @@ if(force || dt_modifier_is(state, GDK_SHIFT_MASK | GDK_CONTROL_MASK)) { - if(d->factor > 0 ? d->pos < 0.0001 : d->pos > 0.9999) d->min = d->min > d->soft_min ? d->max : d->soft_min; - if(d->factor < 0 ? d->pos < 0.0001 : d->pos > 0.9999) d->max = d->max < d->soft_max ? d->min : d->soft_max; + if(d->factor > 0 ? d->pos < 0.0001 : d->pos > 0.9999) + d->min = d->min > d->soft_min ? d->max : d->soft_min; + if(d->factor < 0 ? d->pos < 0.0001 : d->pos > 0.9999) + d->max = d->max < d->soft_max ? d->min : d->soft_max; dt_bauhaus_slider_set(widget, value + delta); } else if(!strcmp(d->format,"°") @@ -2641,7 +2897,8 @@ dt_bauhaus_slider_set(widget, CLAMP(value + delta, d->min, d->max)); } -static gboolean _widget_scroll(GtkWidget *widget, GdkEventScroll *event) +static gboolean _widget_scroll(GtkWidget *widget, + GdkEventScroll *event) { if(dt_gui_ignore_scroll(event)) return FALSE; @@ -2652,12 +2909,12 @@ gtk_widget_grab_focus(widget); int delta_y = 0; - if(dt_gui_get_scroll_unit_deltas(event, NULL, &delta_y)) + if(dt_gui_get_scroll_unit_delta(event, &delta_y)) { if(delta_y == 0) return TRUE; dt_bauhaus_widget_t *w = (dt_bauhaus_widget_t *)widget; - bauhaus_request_focus(w); + _request_focus(w); if(w->type == DT_BAUHAUS_SLIDER) { @@ -2671,7 +2928,7 @@ _slider_add_step(widget, - delta_y, event->state, force); } else - _combobox_next_sensitive(w, delta_y, FALSE); + _combobox_next_sensitive(w, delta_y, 0, FALSE); } return TRUE; // Ensure that scrolling the combobox cannot move side panel } @@ -2683,75 +2940,34 @@ int delta = -1; switch(event->keyval) { - case GDK_KEY_Up: - case GDK_KEY_KP_Up: case GDK_KEY_Right: case GDK_KEY_KP_Right: - delta = 1; + if(w->type == DT_BAUHAUS_COMBOBOX) delta *= -1; + case GDK_KEY_Up: + case GDK_KEY_KP_Up: + delta *= -1; case GDK_KEY_Down: case GDK_KEY_KP_Down: + if(w->type == DT_BAUHAUS_COMBOBOX) delta *= -1; case GDK_KEY_Left: case GDK_KEY_KP_Left: - bauhaus_request_focus(w); + _request_focus(w); if(w->type == DT_BAUHAUS_SLIDER) _slider_add_step(widget, delta, event->state, FALSE); else - _combobox_next_sensitive(w, -delta, FALSE); + _combobox_next_sensitive(w, delta, 0, FALSE); return TRUE; + case GDK_KEY_Return: + case GDK_KEY_KP_Enter: + _popup_show(widget); + return TRUE; default: return FALSE; } } -static gboolean dt_bauhaus_combobox_button_press(GtkWidget *widget, GdkEventButton *event, gpointer user_data) -{ - GtkAllocation allocation; - gtk_widget_get_allocation(widget, &allocation); - dt_bauhaus_widget_t *w = (dt_bauhaus_widget_t *)widget; - - if(w->type != DT_BAUHAUS_COMBOBOX) return FALSE; - bauhaus_request_focus(w); - gtk_widget_grab_focus(GTK_WIDGET(w)); - - GtkAllocation tmp; - gtk_widget_get_allocation(GTK_WIDGET(w), &tmp); - if(w->quad_paint && (event->x > allocation.width - _widget_get_quad_width(w))) - { - dt_bauhaus_widget_press_quad(widget); - return TRUE; - } - else if(event->button == 3) - { - darktable.bauhaus->mouse_x = event->x; - darktable.bauhaus->mouse_y = event->y; - dt_bauhaus_show_popup(widget); - return TRUE; - } - else if(event->button == 1) - { - // reset to default. - if(event->type == GDK_2BUTTON_PRESS) - { - // never called, as we popup the other window under your cursor before. - // (except in weird corner cases where the popup is under the -1st entry - dt_bauhaus_widget_reset(widget); - dt_bauhaus_hide_popup(); - } - else - { - // single click, show options - darktable.bauhaus->opentime = event->time; - darktable.bauhaus->mouse_x = event->x; - darktable.bauhaus->mouse_y = event->y; - dt_bauhaus_show_popup(widget); - } - return TRUE; - } - return FALSE; -} - float dt_bauhaus_slider_get(GtkWidget *widget) { // first cast to bh widget, to check that type: @@ -2772,7 +2988,8 @@ return dt_bauhaus_slider_get(widget) * d->factor + d->offset; } -char *dt_bauhaus_slider_get_text(GtkWidget *w, float val) +char *dt_bauhaus_slider_get_text(GtkWidget *w, + const float val) { const dt_bauhaus_slider_data_t *d = &DT_BAUHAUS_WIDGET(w)->data.slider; if((d->hard_max * d->factor + d->offset)*(d->hard_min * d->factor + d->offset) < 0) @@ -2781,13 +2998,16 @@ return g_strdup_printf( "%.*f%s", d->digits, val * d->factor + d->offset, d->format); } -void dt_bauhaus_slider_set(GtkWidget *widget, float pos) +void dt_bauhaus_slider_set(GtkWidget *widget, + const float pos) { if(dt_isnan(pos)) return; // this is the public interface function, translate by bounds and call set_normalized dt_bauhaus_widget_t *w = (dt_bauhaus_widget_t *)DT_BAUHAUS_WIDGET(widget); - if(w->type != DT_BAUHAUS_SLIDER) return; + if(w->type != DT_BAUHAUS_SLIDER) + return; + dt_bauhaus_slider_data_t *d = &w->data.slider; const float rpos = CLAMP(pos, d->hard_min, d->hard_max); // if this is an angle or gradient, wrap around @@ -2800,16 +3020,18 @@ d->min = (gpos == rpos) ? MIN(d->min, rpos) : d->hard_min; d->max = (gpos == rpos) ? MAX(d->max, rpos) : d->hard_max;; const float rawval = (gpos - d->min) / (d->max - d->min); - dt_bauhaus_slider_set_normalized(w, d->curve(rawval, DT_BAUHAUS_SET)); + _slider_set_normalized(w, d->curve(rawval, DT_BAUHAUS_SET)); } -void dt_bauhaus_slider_set_val(GtkWidget *widget, float val) +void dt_bauhaus_slider_set_val(GtkWidget *widget, + const float val) { const dt_bauhaus_slider_data_t *d = &DT_BAUHAUS_WIDGET(widget)->data.slider; dt_bauhaus_slider_set(widget, (val - d->offset) / d->factor); } -void dt_bauhaus_slider_set_digits(GtkWidget *widget, int val) +void dt_bauhaus_slider_set_digits(GtkWidget *widget, + const int val) { dt_bauhaus_widget_t *w = (dt_bauhaus_widget_t *)DT_BAUHAUS_WIDGET(widget); @@ -2831,7 +3053,8 @@ return d->digits; } -void dt_bauhaus_slider_set_step(GtkWidget *widget, float val) +void dt_bauhaus_slider_set_step(GtkWidget *widget, + const float val) { dt_bauhaus_widget_t *w = (dt_bauhaus_widget_t *)DT_BAUHAUS_WIDGET(widget); @@ -2878,7 +3101,8 @@ return copysignf(step, d->factor); } -void dt_bauhaus_slider_set_feedback(GtkWidget *widget, int feedback) +void dt_bauhaus_slider_set_feedback(GtkWidget *widget, + const int feedback) { dt_bauhaus_widget_t *w = (dt_bauhaus_widget_t *)DT_BAUHAUS_WIDGET(widget); @@ -2909,6 +3133,7 @@ if(w->type == DT_BAUHAUS_SLIDER) { dt_bauhaus_slider_data_t *d = &w->data.slider; + d->is_dragging = 0; d->min = d->soft_min; d->max = d->soft_max; @@ -2921,7 +3146,8 @@ return; } -void dt_bauhaus_slider_set_format(GtkWidget *widget, const char *format) +void dt_bauhaus_slider_set_format(GtkWidget *widget, + const char *format) { dt_bauhaus_widget_t *w = (dt_bauhaus_widget_t *)DT_BAUHAUS_WIDGET(widget); if(w->type != DT_BAUHAUS_SLIDER) return; @@ -2936,7 +3162,8 @@ } } -void dt_bauhaus_slider_set_factor(GtkWidget *widget, float factor) +void dt_bauhaus_slider_set_factor(GtkWidget *widget, + const float factor) { dt_bauhaus_widget_t *w = (dt_bauhaus_widget_t *)DT_BAUHAUS_WIDGET(widget); if(w->type != DT_BAUHAUS_SLIDER) return; @@ -2945,7 +3172,8 @@ if(factor < 0) d->curve = _reverse_linear_curve; } -void dt_bauhaus_slider_set_offset(GtkWidget *widget, float offset) +void dt_bauhaus_slider_set_offset(GtkWidget *widget, + const float offset) { dt_bauhaus_widget_t *w = (dt_bauhaus_widget_t *)DT_BAUHAUS_WIDGET(widget); if(w->type != DT_BAUHAUS_SLIDER) return; @@ -2953,7 +3181,9 @@ d->offset = offset; } -void dt_bauhaus_slider_set_curve(GtkWidget *widget, float (*curve)(float value, dt_bauhaus_curve_t dir)) +void dt_bauhaus_slider_set_curve(GtkWidget *widget, + float (*curve)(const float value, + const dt_bauhaus_curve_t dir)) { dt_bauhaus_widget_t *w = (dt_bauhaus_widget_t *)DT_BAUHAUS_WIDGET(widget); if(w->type != DT_BAUHAUS_SLIDER) return; @@ -2970,9 +3200,9 @@ dt_bauhaus_slider_set_curve(widget, _curve_log10); } -static gboolean _bauhaus_slider_value_change_dragging(gpointer data); +static gboolean _slider_value_change_dragging(gpointer data); -static void _bauhaus_slider_value_change(dt_bauhaus_widget_t *w) +static void _slider_value_change(dt_bauhaus_widget_t *w) { if(!GTK_IS_WIDGET(w)) return; @@ -2998,7 +3228,7 @@ break; default: dt_print(DT_DEBUG_ALWAYS, - "[_bauhaus_slider_value_change] unsupported slider data type\n"); + "[_slider_value_change] unsupported slider data type\n"); } } @@ -3007,19 +3237,19 @@ d->is_changed = 0; if(d->is_dragging) - d->timeout_handle = g_idle_add(_bauhaus_slider_value_change_dragging, w); + d->timeout_handle = g_idle_add(_slider_value_change_dragging, w); } } -static gboolean _bauhaus_slider_value_change_dragging(gpointer data) +static gboolean _slider_value_change_dragging(gpointer data) { dt_bauhaus_widget_t *w = data; w->data.slider.timeout_handle = 0; - _bauhaus_slider_value_change(w); + _slider_value_change(w); return G_SOURCE_REMOVE; } -static void dt_bauhaus_slider_set_normalized(dt_bauhaus_widget_t *w, float pos) +static void _slider_set_normalized(dt_bauhaus_widget_t *w, float pos) { dt_bauhaus_slider_data_t *d = &w->data.slider; float rpos = CLAMP(pos, 0.0f, 1.0f); @@ -3031,266 +3261,249 @@ rpos = (rpos - d->min) / (d->max - d->min); d->pos = d->curve(rpos, DT_BAUHAUS_SET); gtk_widget_queue_draw(GTK_WIDGET(w)); + if(darktable.bauhaus->current == w) + gtk_widget_queue_draw(darktable.bauhaus->popup_area); if(!darktable.gui->reset) { d->is_changed = -1; - _bauhaus_slider_value_change(w); + _slider_value_change(w); } } -static gboolean dt_bauhaus_popup_key_press(GtkWidget *widget, GdkEventKey *event, gpointer user_data) +static gboolean _popup_key_press(GtkWidget *widget, + GdkEventKey *event, + gpointer user_data) { - switch(darktable.bauhaus->current->type) + dt_bauhaus_t * bh = darktable.bauhaus; + dt_bauhaus_widget_t *w = bh->current; + gboolean is_combo = w->type == DT_BAUHAUS_COMBOBOX; + int delta = -1; + + switch(event->keyval) { - case DT_BAUHAUS_SLIDER: - { - // hack to do screenshots from popup: - // if(event->string[0] == 'p') return system("scrot"); - // else - if(darktable.bauhaus->keys_cnt + 2 < 64 - && (event->keyval == GDK_KEY_space || event->keyval == GDK_KEY_KP_Space || // SPACE - event->keyval == GDK_KEY_percent || // % - (event->string[0] >= 40 && event->string[0] <= 58) || // ()+-*/.,0-9: - event->keyval == GDK_KEY_asciicircum || event->keyval == GDK_KEY_dead_circumflex || // ^ - event->keyval == GDK_KEY_X || event->keyval == GDK_KEY_x)) // Xx + case GDK_KEY_BackSpace: + case GDK_KEY_Delete: + case GDK_KEY_KP_Delete: + if(bh->keys_cnt > 0) + bh->keys_cnt = g_utf8_prev_char(bh->keys + bh->keys_cnt) - bh->keys; + break; + case GDK_KEY_Return: + case GDK_KEY_KP_Enter: + if(bh->keys_cnt > 0 && bh->keys_cnt + 1 < DT_BAUHAUS_MAX_TEXT) { - if(event->keyval == GDK_KEY_dead_circumflex) - darktable.bauhaus->keys[darktable.bauhaus->keys_cnt++] = '^'; + bh->keys[bh->keys_cnt] = 0; + if(is_combo) + { + if(!bh->change_active) + { + dt_bauhaus_combobox_data_t *d = &w->data.combobox; + if(bh->unique_match == -1) + { + if(w->data.combobox.editable) + g_strlcpy(d->text, bh->keys, DT_BAUHAUS_MAX_TEXT); + else + break; // don't hide popup + } + _combobox_set(w, bh->unique_match, FALSE); + } + } else - darktable.bauhaus->keys[darktable.bauhaus->keys_cnt++] = event->string[0]; - gtk_widget_queue_draw(darktable.bauhaus->popup_area); - } - else if(darktable.bauhaus->keys_cnt > 0 - && (event->keyval == GDK_KEY_BackSpace || event->keyval == GDK_KEY_Delete)) - { - darktable.bauhaus->keys[--darktable.bauhaus->keys_cnt] = 0; - gtk_widget_queue_draw(darktable.bauhaus->popup_area); - } - else if(darktable.bauhaus->keys_cnt > 0 && darktable.bauhaus->keys_cnt + 1 < 64 - && (event->keyval == GDK_KEY_Return || event->keyval == GDK_KEY_KP_Enter)) - { - // accept input - darktable.bauhaus->keys[darktable.bauhaus->keys_cnt] = 0; - // unnormalized input, user was typing this: - const float old_value = dt_bauhaus_slider_get_val(GTK_WIDGET(darktable.bauhaus->current)); - const float new_value = dt_calculator_solve(old_value, darktable.bauhaus->keys); - if(dt_isfinite(new_value)) - dt_bauhaus_slider_set_val(GTK_WIDGET(darktable.bauhaus->current), new_value); - darktable.bauhaus->keys_cnt = 0; - memset(darktable.bauhaus->keys, 0, sizeof(darktable.bauhaus->keys)); - dt_bauhaus_hide_popup(); - } - else if(event->keyval == GDK_KEY_Escape) - { - // discard input and close popup - darktable.bauhaus->keys_cnt = 0; - memset(darktable.bauhaus->keys, 0, sizeof(darktable.bauhaus->keys)); - dt_bauhaus_hide_popup(); + { + // unnormalized input, user was typing this: + const float old_value = dt_bauhaus_slider_get_val(GTK_WIDGET(w)); + const float new_value = dt_calculator_solve(old_value, bh->keys); + if(dt_isfinite(new_value)) + dt_bauhaus_slider_set_val(GTK_WIDGET(w), new_value); + } } + _popup_hide(); + break; + case GDK_KEY_Escape: + _popup_reject(); + break; + case GDK_KEY_Home: + case GDK_KEY_KP_Home: + delta *= -1; + case GDK_KEY_End: + case GDK_KEY_KP_End: + delta *= 1e6; + case GDK_KEY_Right: + case GDK_KEY_KP_Right: + if(is_combo) delta *= -1; + case GDK_KEY_Up: + case GDK_KEY_KP_Up: + case GDK_KEY_Page_Up: + case GDK_KEY_KP_Page_Up: + delta *= -1; + case GDK_KEY_Down: + case GDK_KEY_KP_Down: + case GDK_KEY_Page_Down: + case GDK_KEY_KP_Page_Down: + if(is_combo) delta *= -1; + case GDK_KEY_Left: + case GDK_KEY_KP_Left: + if(is_combo) + _combobox_next_sensitive(w, delta, 0, w->data.combobox.mute_scrolling); else - return FALSE; - if(darktable.bauhaus->keys_cnt > 0) _start_cursor(-1); - return TRUE; - } - case DT_BAUHAUS_COMBOBOX: - { - if(!g_utf8_validate(event->string, -1, NULL)) return FALSE; + _slider_add_step(GTK_WIDGET(w), delta, event->state, FALSE); + break; + default: + if(!event->string || !g_utf8_validate(event->string, -1, NULL)) return FALSE; const gunichar c = g_utf8_get_char(event->string); + if(!g_unichar_isprint(c)) return FALSE; const long int char_width = g_utf8_next_char(event->string) - event->string; - // if(event->string[0] == 'p') return system("scrot"); - // else - if(darktable.bauhaus->keys_cnt + 1 + char_width < 64 && g_unichar_isprint(c)) - { - // only accept key input if still valid or editable? - g_utf8_strncpy(darktable.bauhaus->keys + darktable.bauhaus->keys_cnt, event->string, 1); - darktable.bauhaus->keys_cnt += char_width; - gtk_widget_queue_draw(darktable.bauhaus->popup_area); - } - else if(darktable.bauhaus->keys_cnt > 0 - && (event->keyval == GDK_KEY_BackSpace || event->keyval == GDK_KEY_Delete)) - { - darktable.bauhaus->keys_cnt - -= (darktable.bauhaus->keys + darktable.bauhaus->keys_cnt) - - g_utf8_prev_char(darktable.bauhaus->keys + darktable.bauhaus->keys_cnt); - darktable.bauhaus->keys[darktable.bauhaus->keys_cnt] = 0; - gtk_widget_queue_draw(darktable.bauhaus->popup_area); - } - else if(darktable.bauhaus->keys_cnt > 0 && darktable.bauhaus->keys_cnt + 1 < 64 - && (event->keyval == GDK_KEY_Return || event->keyval == GDK_KEY_KP_Enter)) - { - // accept unique matches only for editable: - if(darktable.bauhaus->current->data.combobox.editable) - darktable.bauhaus->end_mouse_y = FLT_MAX; - else - darktable.bauhaus->end_mouse_y = 0; - darktable.bauhaus->keys[darktable.bauhaus->keys_cnt] = 0; - dt_bauhaus_widget_accept(darktable.bauhaus->current); - darktable.bauhaus->keys_cnt = 0; - memset(darktable.bauhaus->keys, 0, sizeof(darktable.bauhaus->keys)); - dt_bauhaus_hide_popup(); - } - else if(event->keyval == GDK_KEY_Escape) - { - // discard input and close popup - darktable.bauhaus->keys_cnt = 0; - memset(darktable.bauhaus->keys, 0, sizeof(darktable.bauhaus->keys)); - dt_bauhaus_hide_popup(); - } - else if(event->keyval == GDK_KEY_Up) - { - combobox_popup_scroll(-1); - } - else if(event->keyval == GDK_KEY_Down) - { - combobox_popup_scroll(1); - } - else if(event->keyval == GDK_KEY_Return || event->keyval == GDK_KEY_KP_Enter) + if(bh->keys_cnt + 1 + char_width < DT_BAUHAUS_MAX_TEXT + && (is_combo || strchr("0123456789.,%%+-*Xx/:^~ ()", event->string[0]))) { - // return pressed, but didn't type anything - darktable.bauhaus->end_mouse_y = -1; // negative will use currently highlighted instead. - darktable.bauhaus->keys[darktable.bauhaus->keys_cnt] = 0; - darktable.bauhaus->keys_cnt = 0; - memset(darktable.bauhaus->keys, 0, sizeof(darktable.bauhaus->keys)); - dt_bauhaus_widget_accept(darktable.bauhaus->current); - dt_bauhaus_hide_popup(); + // only accept valid keys for slider; combo is checked in _popup_draw + strncpy(bh->keys + bh->keys_cnt, event->string, char_width); + bh->keys_cnt += char_width; + + if(!is_combo) _start_cursor(-1); } - else - return FALSE; - return TRUE; - } - default: - return FALSE; } + gtk_widget_queue_draw(bh->popup_area); + return TRUE; } -static gboolean dt_bauhaus_slider_button_press(GtkWidget *widget, GdkEventButton *event, gpointer user_data) +static gboolean _widget_button_press(GtkWidget *widget, + GdkEventButton *event) { dt_bauhaus_widget_t *w = (dt_bauhaus_widget_t *)widget; - bauhaus_request_focus(w); + _request_focus(w); gtk_widget_grab_focus(widget); GtkAllocation allocation; gtk_widget_get_allocation(widget, &allocation); - const int w3 = allocation.width - w->margin.left - w->padding.left - w->margin.right - w->padding.right; + const int w3 = allocation.width - w->margin.left - w->padding.left + - w->margin.right - w->padding.right; const double ex = event->x - w->margin.left - w->padding.left; const double ey = event->y - w->margin.top - w->padding.top; - if(event->x > allocation.width - _widget_get_quad_width(w) - w->margin.right - w->padding.right) + + if(w->quad_paint + && event->x > allocation.width - _widget_get_quad_width(w) + - w->margin.right - w->padding.right) { dt_bauhaus_widget_press_quad(widget); - return TRUE; } - else if(event->button == 3) + else if(event->button == 1 + && event->type == GDK_2BUTTON_PRESS) { - dt_bauhaus_show_popup(widget); - return TRUE; + if(!(dt_modifier_is(event->state, GDK_CONTROL_MASK) && w->field + && dt_gui_presets_autoapply_for_module((dt_iop_module_t *)w->module, widget))) + dt_bauhaus_widget_reset(widget); // reset to default. + // never called for combo, as we popup the other window under your cursor before. + // (except in weird corner cases where the popup is under the -1st entry + _popup_hide(); + } + else if(event->button == 3 || w->type == DT_BAUHAUS_COMBOBOX) + { + darktable.bauhaus->opentime = event->time; + darktable.bauhaus->mouse_x = event->x; + darktable.bauhaus->mouse_y = event->y; + _popup_show(widget); } else if(event->button == 2) { _slider_zoom_range(w, 0); // reset zoom range to soft min/max _slider_zoom_toast(w); } - else if(event->button == 1) + else { dt_bauhaus_slider_data_t *d = &w->data.slider; - // reset to default. - if(event->type == GDK_2BUTTON_PRESS) - { - d->is_dragging = 0; - dt_bauhaus_widget_reset(widget); - } - else + d->is_dragging = -1; + if(!dt_modifier_is(event->state, 0)) + darktable.bauhaus->mouse_x = ex; + else if(ey > darktable.bauhaus->line_height / 2.0f) { - d->is_dragging = -1; - if(!dt_modifier_is(event->state, 0)) - darktable.bauhaus->mouse_x = ex; - else if(ey > darktable.bauhaus->line_height / 2.0f) - { - const float r = slider_right_pos((float)w3, w); - dt_bauhaus_slider_set_normalized(w, (ex / w3) / r); + const float r = _slider_right_pos((float)w3, w); + _slider_set_normalized(w, (ex / w3) / r); - darktable.bauhaus->mouse_x = NAN; - } + darktable.bauhaus->mouse_x = NAN; } - return TRUE; + else + return FALSE; } - return FALSE; + + return TRUE; } -static gboolean dt_bauhaus_slider_button_release(GtkWidget *widget, GdkEventButton *event, gpointer user_data) +static gboolean _widget_button_release(GtkWidget *widget, + GdkEventButton *event) { dt_bauhaus_widget_t *w = (dt_bauhaus_widget_t *)widget; - dt_bauhaus_slider_data_t *d = &w->data.slider; - dt_bauhaus_widget_release_quad(widget); + + if(w->type != DT_BAUHAUS_SLIDER) return FALSE; + + dt_bauhaus_slider_data_t *d = &w->data.slider; if(event->button == 1 && d->is_dragging) { d->is_dragging = 0; if(d->timeout_handle) g_source_remove(d->timeout_handle); d->timeout_handle = 0; - dt_bauhaus_slider_set_normalized(w, d->pos); + _slider_set_normalized(w, d->pos); return TRUE; } return FALSE; } -static gboolean dt_bauhaus_slider_motion_notify(GtkWidget *widget, GdkEventMotion *event, gpointer user_data) +static gboolean _widget_motion_notify(GtkWidget *widget, + GdkEventMotion *event) { dt_bauhaus_widget_t *w = (dt_bauhaus_widget_t *)widget; dt_bauhaus_slider_data_t *d = &w->data.slider; GtkAllocation allocation; gtk_widget_get_allocation(widget, &allocation); - const int w3 = allocation.width - w->margin.left - w->padding.left - w->margin.right - w->padding.right; + const int w3 = allocation.width - w->margin.left - w->padding.left + - w->margin.right - w->padding.right; const double ex = event->x - w->margin.left - w->padding.left; - if(d->is_dragging && event->state & GDK_BUTTON1_MASK) + + if(w->type == DT_BAUHAUS_COMBOBOX) + { + darktable.control->element = + event->x <= allocation.width - _widget_get_quad_width(w) || !w->quad_paint + ? DT_ACTION_ELEMENT_SELECTION : DT_ACTION_ELEMENT_BUTTON; + } + else if(d->is_dragging && event->state & GDK_BUTTON1_MASK) { - const float r = slider_right_pos((float)w3, w); + const float r = _slider_right_pos((float)w3, w); if(dt_isnan(darktable.bauhaus->mouse_x)) { if(dt_modifier_is(event->state, 0)) - dt_bauhaus_slider_set_normalized(w, (ex / w3) / r); + _slider_set_normalized(w, (ex / w3) / r); else darktable.bauhaus->mouse_x = ex; } else { - const float scaled_step = w3 * r * dt_bauhaus_slider_get_step(widget) / (d->max - d->min); + const float scaled_step = + w3 * r * dt_bauhaus_slider_get_step(widget) / (d->max - d->min); const float steps = floorf((ex - darktable.bauhaus->mouse_x) / scaled_step); _slider_add_step(widget, copysignf(1, d->factor) * steps, event->state, FALSE); darktable.bauhaus->mouse_x += steps * scaled_step; } + darktable.control->element = DT_ACTION_ELEMENT_VALUE; } - - if(ex <= w3 - _widget_get_quad_width(w)) + else if(ex <= w3 - _widget_get_quad_width(w)) { darktable.control->element - = ex > (0.1 * (w3 - _widget_get_quad_width(w))) && ex < (0.9 * (w3 - _widget_get_quad_width(w))) - ? DT_ACTION_ELEMENT_VALUE - : DT_ACTION_ELEMENT_FORCE; + = ex > (0.1 * (w3 - _widget_get_quad_width(w))) + && ex < (0.9 * (w3 - _widget_get_quad_width(w))) + ? DT_ACTION_ELEMENT_VALUE : DT_ACTION_ELEMENT_FORCE; } else - darktable.control->element = w->quad_paint ? DT_ACTION_ELEMENT_BUTTON : DT_ACTION_ELEMENT_VALUE; - - return TRUE; -} - -static gboolean dt_bauhaus_combobox_motion_notify(GtkWidget *widget, GdkEventMotion *event, gpointer user_data) -{ - dt_bauhaus_widget_t *w = (dt_bauhaus_widget_t *)widget; - GtkAllocation allocation; - gtk_widget_get_allocation(widget, &allocation); - - darktable.control->element = event->x <= allocation.width - _widget_get_quad_width(w) || !w->quad_paint - ? DT_ACTION_ELEMENT_SELECTION - : DT_ACTION_ELEMENT_BUTTON; + darktable.control->element = + w->quad_paint ? DT_ACTION_ELEMENT_BUTTON : DT_ACTION_ELEMENT_VALUE; + gtk_widget_queue_draw(widget); return TRUE; } - void dt_bauhaus_vimkey_exec(const char *input) { dt_action_t *ac = darktable.control->actions_iops.target; @@ -3324,7 +3537,10 @@ ac = ac->next; } - if(!ac || ac->type != DT_ACTION_TYPE_WIDGET || !ac->target || !DT_IS_BAUHAUS_WIDGET(ac->target)) + if(!ac + || ac->type != DT_ACTION_TYPE_WIDGET + || !ac->target + || !DT_IS_BAUHAUS_WIDGET(ac->target)) return; float old_value = .0f, new_value = .0f; @@ -3392,10 +3608,12 @@ d->mute_scrolling = TRUE; } -static void _action_process_button(GtkWidget *widget, dt_action_effect_t effect) +static void _action_process_button(GtkWidget *widget, + const dt_action_effect_t effect) { dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget); - if(effect != (w->quad_paint_flags & CPF_ACTIVE ? DT_ACTION_EFFECT_ON : DT_ACTION_EFFECT_OFF)) + if(effect != (w->quad_paint_flags & CPF_ACTIVE + ? DT_ACTION_EFFECT_ON : DT_ACTION_EFFECT_OFF)) { dt_bauhaus_widget_press_quad(widget); dt_bauhaus_widget_release_quad(widget); @@ -3409,7 +3627,10 @@ gtk_widget_queue_draw(widget); } -static float _action_process_slider(gpointer target, dt_action_element_t element, dt_action_effect_t effect, float move_size) +static float _action_process_slider(gpointer target, + const dt_action_element_t element, + const dt_action_effect_t effect, + float move_size) { GtkWidget *widget = GTK_WIDGET(target); dt_bauhaus_widget_t *bhw = DT_BAUHAUS_WIDGET(widget); @@ -3424,23 +3645,26 @@ switch(effect) { case DT_ACTION_EFFECT_POPUP: - dt_bauhaus_show_popup(widget); + _popup_show(widget); break; case DT_ACTION_EFFECT_DOWN: move_size *= -1; case DT_ACTION_EFFECT_UP: ++d->is_dragging; - _slider_add_step(widget, move_size, GDK_MODIFIER_MASK, element == DT_ACTION_ELEMENT_FORCE); + _slider_add_step(widget, move_size, + GDK_MODIFIER_MASK, element == DT_ACTION_ELEMENT_FORCE); --d->is_dragging; break; case DT_ACTION_EFFECT_RESET: dt_bauhaus_widget_reset(widget); break; case DT_ACTION_EFFECT_TOP: - dt_bauhaus_slider_set(widget, element == DT_ACTION_ELEMENT_FORCE ? d->hard_max: d->max); + dt_bauhaus_slider_set(widget, + element == DT_ACTION_ELEMENT_FORCE ? d->hard_max: d->max); break; case DT_ACTION_EFFECT_BOTTOM: - dt_bauhaus_slider_set(widget, element == DT_ACTION_ELEMENT_FORCE ? d->hard_min: d->min); + dt_bauhaus_slider_set(widget, + element == DT_ACTION_ELEMENT_FORCE ? d->hard_min: d->min); break; case DT_ACTION_EFFECT_SET: dt_bauhaus_slider_set(widget, move_size); @@ -3465,7 +3689,7 @@ switch(effect) { case DT_ACTION_EFFECT_POPUP: - dt_bauhaus_show_popup(widget); + _popup_show(widget); break; case DT_ACTION_EFFECT_RESET: move_size = 0; @@ -3509,25 +3733,27 @@ return fabsf(dt_bauhaus_slider_get(widget) - d->defpos) > 1e-5; return d->pos + - ( d->min == -d->max ? DT_VALUE_PATTERN_PLUS_MINUS : - ( d->min == 0 && (d->max == 1 || d->max == 100) ? DT_VALUE_PATTERN_PERCENTAGE : 0 )); + ( d->min == -d->max ? DT_VALUE_PATTERN_PLUS_MINUS : + ( d->min == 0 && (d->max == 1 || d->max == 100) ? DT_VALUE_PATTERN_PERCENTAGE : 0 )); } -gboolean combobox_idle_value_changed(gpointer widget) +static gboolean _combobox_idle_value_changed(gpointer widget) { dt_bauhaus_widget_t *w = (dt_bauhaus_widget_t *)widget; - _bauhaus_combobox_set(w, w->data.combobox.active, FALSE); + _combobox_set(w, w->data.combobox.active, FALSE); while(g_idle_remove_by_data(widget)); return G_SOURCE_REMOVE; } -static float _action_process_combo(gpointer target, dt_action_element_t element, dt_action_effect_t effect, float move_size) +static float _action_process_combo(gpointer target, + const dt_action_element_t element, + const dt_action_effect_t effect, + float move_size) { GtkWidget *widget = GTK_WIDGET(target); dt_bauhaus_widget_t *w = (dt_bauhaus_widget_t *)widget; - int value = dt_bauhaus_combobox_get(widget); if(DT_PERFORM_ACTION(move_size)) { @@ -3539,7 +3765,7 @@ else switch(effect) { case DT_ACTION_EFFECT_POPUP: - dt_bauhaus_show_popup(widget); + _popup_show(widget); break; case DT_ACTION_EFFECT_LAST: move_size *= - 1; // reversed in effect_previous @@ -3549,18 +3775,19 @@ move_size *= - 1; case DT_ACTION_EFFECT_NEXT: ++darktable.gui->reset; - _combobox_next_sensitive(w, move_size, FALSE); + _combobox_next_sensitive(w, move_size, GDK_MODIFIER_MASK, FALSE); --darktable.gui->reset; - g_idle_add(combobox_idle_value_changed, widget); + g_idle_add(_combobox_idle_value_changed, widget); break; case DT_ACTION_EFFECT_RESET: dt_bauhaus_widget_reset(widget); break; - default: - value = effect - DT_ACTION_EFFECT_COMBO_SEPARATOR - 1; + default:; + int value = effect - DT_ACTION_EFFECT_COMBO_SEPARATOR - 1; dt_introspection_type_enum_tuple_t *values - = g_hash_table_lookup(darktable.bauhaus->combo_introspection, dt_action_widget(target)); + = g_hash_table_lookup(darktable.bauhaus->combo_introspection, + dt_action_widget(target)); if(values) value = values[value].value; @@ -3575,29 +3802,37 @@ return dt_bauhaus_widget_get_quad_active(widget); if(effect == DT_ACTION_EFFECT_RESET) - return dt_bauhaus_combobox_get_data(widget) != GINT_TO_POINTER(dt_bauhaus_combobox_get_default(widget)); + return dt_bauhaus_combobox_get_data(widget) + != GINT_TO_POINTER(dt_bauhaus_combobox_get_default(widget)); + int value = dt_bauhaus_combobox_get(widget); for(int i = value; i >= 0; i--) { dt_bauhaus_combobox_entry_t *entry = g_ptr_array_index(w->data.combobox.entries, i); if(!entry->sensitive) value--; // don't count unselectable combo items in value } - return - 1 - value + (value == effect - DT_ACTION_EFFECT_COMBO_SEPARATOR - 1 ? DT_VALUE_PATTERN_ACTIVE : 0); + return - 1 - value + + (value == effect - DT_ACTION_EFFECT_COMBO_SEPARATOR - 1 + ? DT_VALUE_PATTERN_ACTIVE : 0); } -static gboolean _find_nth_bauhaus(GtkWidget **w, int *num, dt_bauhaus_type_t type) +static gboolean _find_nth_bauhaus(GtkWidget **w, + int *num, + const dt_bauhaus_type_t type) { if(!gtk_widget_get_visible(*w)) return FALSE; if(DT_IS_BAUHAUS_WIDGET(*w)) { dt_bauhaus_widget_t *bhw = DT_BAUHAUS_WIDGET(*w); - return (bhw->type == type || (type == DT_BAUHAUS_BUTTON && bhw->quad_paint)) && !(*num)--; + return (bhw->type == type + || (type == DT_BAUHAUS_BUTTON && bhw->quad_paint)) && !(*num)--; } if(GTK_IS_NOTEBOOK(*w) || GTK_IS_STACK(*w)) { *w = GTK_IS_NOTEBOOK(*w) - ? gtk_notebook_get_nth_page(GTK_NOTEBOOK(*w), gtk_notebook_get_current_page(GTK_NOTEBOOK(*w))) + ? gtk_notebook_get_nth_page(GTK_NOTEBOOK(*w), + gtk_notebook_get_current_page(GTK_NOTEBOOK(*w))) : gtk_stack_get_visible_child(GTK_STACK(*w)); return _find_nth_bauhaus(w, num, type); } @@ -3614,27 +3849,38 @@ return *num < 0; } -static float _action_process_focus_slider(gpointer target, dt_action_element_t element, dt_action_effect_t effect, float move_size) +static float _action_process_focus_slider(gpointer target, + dt_action_element_t element, + const dt_action_effect_t effect, + const float move_size) { GtkWidget *widget = ((dt_iop_module_t *)target)->widget; if(_find_nth_bauhaus(&widget, &element, DT_BAUHAUS_SLIDER)) return _action_process_slider(widget, DT_ACTION_ELEMENT_VALUE, effect, move_size); - if(DT_PERFORM_ACTION(move_size)) dt_action_widget_toast(target, NULL, _("not that many sliders")); + if(DT_PERFORM_ACTION(move_size)) + dt_action_widget_toast(target, NULL, _("not that many sliders")); return DT_ACTION_NOT_VALID; } -static float _action_process_focus_combo(gpointer target, dt_action_element_t element, dt_action_effect_t effect, float move_size) +static float _action_process_focus_combo(gpointer target, + dt_action_element_t element, + const dt_action_effect_t effect, + const float move_size) { GtkWidget *widget = ((dt_iop_module_t *)target)->widget; if(_find_nth_bauhaus(&widget, &element, DT_BAUHAUS_COMBOBOX)) return _action_process_combo(widget, DT_ACTION_ELEMENT_SELECTION, effect, move_size); - if(DT_PERFORM_ACTION(move_size)) dt_action_widget_toast(target, NULL, _("not that many dropdowns")); + if(DT_PERFORM_ACTION(move_size)) + dt_action_widget_toast(target, NULL, _("not that many dropdowns")); return DT_ACTION_NOT_VALID; } -static float _action_process_focus_button(gpointer target, dt_action_element_t element, dt_action_effect_t effect, float move_size) +static float _action_process_focus_button(gpointer target, + dt_action_element_t element, + const dt_action_effect_t effect, + const float move_size) { GtkWidget *widget = ((dt_iop_module_t *)target)->widget; if(_find_nth_bauhaus(&widget, &element, DT_BAUHAUS_BUTTON)) @@ -3645,7 +3891,8 @@ return dt_bauhaus_widget_get_quad_active(widget); } - if(DT_PERFORM_ACTION(move_size)) dt_action_widget_toast(target, NULL, _("not that many buttons")); + if(DT_PERFORM_ACTION(move_size)) + dt_action_widget_toast(target, NULL, _("not that many buttons")); return DT_ACTION_NOT_VALID; } @@ -3661,17 +3908,38 @@ { NULL } }; static const dt_shortcut_fallback_t _action_fallbacks_slider[] - = { { .element = DT_ACTION_ELEMENT_BUTTON, .button = DT_SHORTCUT_LEFT }, - { .element = DT_ACTION_ELEMENT_BUTTON, .effect = DT_ACTION_EFFECT_TOGGLE_CTRL, .button = DT_SHORTCUT_LEFT, .mods = GDK_CONTROL_MASK }, - { .element = DT_ACTION_ELEMENT_FORCE, .mods = GDK_CONTROL_MASK | GDK_SHIFT_MASK, .speed = 10.0 }, - { .element = DT_ACTION_ELEMENT_ZOOM, .effect = DT_ACTION_EFFECT_DEFAULT_MOVE, .button = DT_SHORTCUT_RIGHT, .move = DT_SHORTCUT_MOVE_VERTICAL }, + = { { .element = DT_ACTION_ELEMENT_BUTTON, + .button = DT_SHORTCUT_LEFT }, + { .element = DT_ACTION_ELEMENT_BUTTON, + .effect = DT_ACTION_EFFECT_TOGGLE_CTRL, + .button = DT_SHORTCUT_LEFT, + .mods = GDK_CONTROL_MASK }, + { .element = DT_ACTION_ELEMENT_FORCE, + .mods = GDK_CONTROL_MASK | GDK_SHIFT_MASK, + .speed = 10.0 }, + { .element = DT_ACTION_ELEMENT_ZOOM, + .effect = DT_ACTION_EFFECT_DEFAULT_MOVE, + .button = DT_SHORTCUT_RIGHT, + .move = DT_SHORTCUT_MOVE_VERTICAL }, { } }; + static const dt_shortcut_fallback_t _action_fallbacks_combo[] - = { { .element = DT_ACTION_ELEMENT_SELECTION, .effect = DT_ACTION_EFFECT_RESET, .button = DT_SHORTCUT_LEFT, .click = DT_SHORTCUT_DOUBLE }, - { .element = DT_ACTION_ELEMENT_BUTTON, .button = DT_SHORTCUT_LEFT }, - { .element = DT_ACTION_ELEMENT_BUTTON, .effect = DT_ACTION_EFFECT_TOGGLE_CTRL, .button = DT_SHORTCUT_LEFT, .mods = GDK_CONTROL_MASK }, - { .move = DT_SHORTCUT_MOVE_SCROLL, .effect = DT_ACTION_EFFECT_DEFAULT_MOVE, .speed = -1 }, - { .move = DT_SHORTCUT_MOVE_VERTICAL, .effect = DT_ACTION_EFFECT_DEFAULT_MOVE, .speed = -1 }, + = { { .element = DT_ACTION_ELEMENT_SELECTION, + .effect = DT_ACTION_EFFECT_RESET, + .button = DT_SHORTCUT_LEFT, + .click = DT_SHORTCUT_DOUBLE }, + { .element = DT_ACTION_ELEMENT_BUTTON, + .button = DT_SHORTCUT_LEFT }, + { .element = DT_ACTION_ELEMENT_BUTTON, + .effect = DT_ACTION_EFFECT_TOGGLE_CTRL, + .button = DT_SHORTCUT_LEFT, + .mods = GDK_CONTROL_MASK }, + { .move = DT_SHORTCUT_MOVE_SCROLL, + .effect = DT_ACTION_EFFECT_DEFAULT_MOVE, + .speed = -1 }, + { .move = DT_SHORTCUT_MOVE_VERTICAL, + .effect = DT_ACTION_EFFECT_DEFAULT_MOVE, + .speed = -1 }, { } }; static const dt_action_def_t _action_def_slider diff -Nru darktable-4.4.2/src/bauhaus/bauhaus.h darktable-4.6.1/src/bauhaus/bauhaus.h --- darktable-4.4.2/src/bauhaus/bauhaus.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/bauhaus/bauhaus.h 2024-02-16 17:31:09.000000000 +0000 @@ -49,7 +49,7 @@ extern GType DT_BAUHAUS_WIDGET_TYPE; #define DT_BAUHAUS_SLIDER_MAX_STOPS 20 -#define DT_BAUHAUS_COMBO_MAX_TEXT 180 +#define DT_BAUHAUS_MAX_TEXT 180 typedef enum dt_bauhaus_type_t { @@ -136,7 +136,7 @@ typedef struct dt_bauhaus_widget_t DtBauhausWidget; typedef struct dt_bauhaus_widget_class_t DtBauhausWidgetClass; -typedef void (*dt_bauhaus_quad_paint_f)(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data); +typedef DTGTKCairoPaintIconFunc dt_bauhaus_quad_paint_f; // our new widget and its private members, inheriting from drawing area: typedef struct dt_bauhaus_widget_t @@ -160,6 +160,8 @@ gboolean show_extended_label; // callback function to draw the quad icon dt_bauhaus_quad_paint_f quad_paint; + // tooltip to show when mouse is over the quad section + gchar *tooltip; // minimal modifiers for paint function. int quad_paint_flags; // data for the paint callback @@ -206,18 +208,15 @@ // time when the popup window was opened. this is sortof a hack to // detect `double clicks between windows' to reset the combobox. guint32 opentime; - // pointer position when popup window is closed - float end_mouse_x, end_mouse_y; - // used to determine whether the user crossed the line already. - int change_active; + // used to determine whether the user crossed the line or made a change already. + gboolean change_active; float mouse_line_distance; // key input buffer - char keys[64]; + char keys[DT_BAUHAUS_MAX_TEXT]; int keys_cnt; + int unique_match; // our custom signals guint signals[DT_BAUHAUS_LAST_SIGNAL]; - // flag set on button press indicating that popup should be hidden in button release handler - gboolean hiding; // initialise or connect accelerators in set_label int skip_accel; @@ -240,7 +239,7 @@ int cursor_blink_counter; // colors for sliders and comboboxes - GdkRGBA color_fg, color_fg_insensitive, color_bg, color_border, indicator_border, color_fill; + GdkRGBA color_fg, color_fg_hover, color_fg_insensitive, color_bg, color_border, indicator_border, color_fill; // colors for graphs GdkRGBA graph_bg, graph_exterior, graph_border, graph_fg, graph_grid, graph_fg_active, graph_overlay, inset_histogram; @@ -250,7 +249,6 @@ #define DT_BAUHAUS_SPACE 0 - void dt_bauhaus_init(); void dt_bauhaus_cleanup(); @@ -259,14 +257,21 @@ // set the bauhaus widget as a module section and in this case the font used will be the one // from the CSS section_label. -void dt_bauhaus_widget_set_section(GtkWidget *w, const gboolean is_section); +void dt_bauhaus_widget_set_section(GtkWidget *w, + const gboolean is_section); // common functions: // set the label text: -dt_action_t *dt_bauhaus_widget_set_label(GtkWidget *w, const char *section, const char *label); +dt_action_t *dt_bauhaus_widget_set_label(GtkWidget *w, + const char *section, + const char *label); const char* dt_bauhaus_widget_get_label(GtkWidget *w); +void dt_bauhaus_widget_hide_label(GtkWidget *w); // attach a custom painted quad to the space at the right side (overwriting the default icon if any): -void dt_bauhaus_widget_set_quad_paint(GtkWidget *w, dt_bauhaus_quad_paint_f f, int paint_flags, void *paint_data); +void dt_bauhaus_widget_set_quad_paint(GtkWidget *w, + dt_bauhaus_quad_paint_f f, + const int paint_flags, + void *paint_data); // make this quad a toggle button: void dt_bauhaus_widget_set_quad_toggle(GtkWidget *w, int toggle); // set active status for the quad toggle button: @@ -274,29 +279,55 @@ // get active status for the quad toggle button: int dt_bauhaus_widget_get_quad_active(GtkWidget *w); // set quad visibility: -void dt_bauhaus_widget_set_quad_visibility(GtkWidget *w, const gboolean visible); +void dt_bauhaus_widget_set_quad_visibility(GtkWidget *w, + const gboolean visible); +// set a tooltip for the quad button: +void dt_bauhaus_widget_set_quad_tooltip(GtkWidget *w, + const gchar *text); +// get the tooltip for widget or quad button: +gchar *dt_bauhaus_widget_get_tooltip_markup(GtkWidget *widget, + dt_action_element_t element); // set pointer to iop params field: -void dt_bauhaus_widget_set_field(GtkWidget *w, gpointer field, dt_introspection_type_t field_type); +void dt_bauhaus_widget_set_field(GtkWidget *w, + gpointer field, + dt_introspection_type_t field_type); +// update one bauhaus widget or all widgets in a module from the provided (blend)params +void dt_bauhaus_update_from_field(dt_iop_module_t *module, + GtkWidget *w, + gpointer params, + gpointer blend_params); // reset widget to default value void dt_bauhaus_widget_reset(GtkWidget *widget); -// update all bauhaus widgets in an iop module from their params fields -void dt_bauhaus_update_module(dt_iop_module_t *self); - -void dt_bauhaus_hide_popup(); -void dt_bauhaus_show_popup(GtkWidget *w); - // slider: GtkWidget *dt_bauhaus_slider_new(dt_iop_module_t *self); -GtkWidget *dt_bauhaus_slider_new_with_range(dt_iop_module_t *self, float min, float max, float step, - float defval, int digits); -GtkWidget *dt_bauhaus_slider_new_with_range_and_feedback(dt_iop_module_t *self, float min, float max, - float step, float defval, int digits, int feedback); - -GtkWidget *dt_bauhaus_slider_from_widget(struct dt_bauhaus_widget_t* widget, dt_iop_module_t *self, float min, float max, - float step, float defval, int digits, int feedback); -GtkWidget *dt_bauhaus_slider_new_action(dt_action_t *self, float min, float max, float step, - float defval, int digits); +GtkWidget *dt_bauhaus_slider_new_with_range(dt_iop_module_t *self, + float min, + float max, + float step, + float defval, + int digits); +GtkWidget *dt_bauhaus_slider_new_with_range_and_feedback(dt_iop_module_t *self, + float min, + float max, + float step, + float defval, + int digits, + int feedback); +GtkWidget *dt_bauhaus_slider_from_widget(struct dt_bauhaus_widget_t* widget, + dt_iop_module_t *self, + const float min, + const float max, + const float step, + const float defval, + const int digits, + const int feedback); +GtkWidget *dt_bauhaus_slider_new_action(dt_action_t *self, + float min, + float max, + float step, + float defval, + int digits); // outside doesn't see the real type, we cast it internally. void dt_bauhaus_slider_set(GtkWidget *w, float pos); @@ -309,11 +340,15 @@ float dt_bauhaus_slider_get_soft_min(GtkWidget* w); void dt_bauhaus_slider_set_soft_max(GtkWidget* w, float val); float dt_bauhaus_slider_get_soft_max(GtkWidget* w); -void dt_bauhaus_slider_set_soft_range(GtkWidget *widget, float soft_min, float soft_max); +void dt_bauhaus_slider_set_soft_range(GtkWidget *widget, + const float soft_min, + const float soft_max); -void dt_bauhaus_slider_set_hard_min(GtkWidget* w, float val); +void dt_bauhaus_slider_set_hard_min(GtkWidget* w, + const float val); float dt_bauhaus_slider_get_hard_min(GtkWidget* w); -void dt_bauhaus_slider_set_hard_max(GtkWidget* w, float val); +void dt_bauhaus_slider_set_hard_max(GtkWidget* w, + const float val); float dt_bauhaus_slider_get_hard_max(GtkWidget* w); void dt_bauhaus_slider_set_digits(GtkWidget *w, int val); @@ -321,25 +356,38 @@ void dt_bauhaus_slider_set_step(GtkWidget *w, float val); float dt_bauhaus_slider_get_step(GtkWidget *w); -void dt_bauhaus_slider_set_feedback(GtkWidget *w, int feedback); +void dt_bauhaus_slider_set_feedback(GtkWidget *w, + const int feedback); int dt_bauhaus_slider_get_feedback(GtkWidget *w); void dt_bauhaus_slider_set_format(GtkWidget *w, const char *format); void dt_bauhaus_slider_set_factor(GtkWidget *w, float factor); void dt_bauhaus_slider_set_offset(GtkWidget *w, float offset); -void dt_bauhaus_slider_set_stop(GtkWidget *widget, float stop, float r, float g, float b); +void dt_bauhaus_slider_set_stop(GtkWidget *widget, + float stop, + float r, + float g, + float b); void dt_bauhaus_slider_clear_stops(GtkWidget *widget); void dt_bauhaus_slider_set_default(GtkWidget *widget, float def); float dt_bauhaus_slider_get_default(GtkWidget *widget); -void dt_bauhaus_slider_set_curve(GtkWidget *widget, float (*curve)(float value, dt_bauhaus_curve_t dir)); +void dt_bauhaus_slider_set_curve(GtkWidget *widget, + float (*curve)(float value, dt_bauhaus_curve_t dir)); void dt_bauhaus_slider_set_log_curve(GtkWidget *widget); // combobox: -void dt_bauhaus_combobox_from_widget(struct dt_bauhaus_widget_t* widget,dt_iop_module_t *self); +GtkWidget *dt_bauhaus_combobox_from_widget(struct dt_bauhaus_widget_t* widget, + dt_iop_module_t *self); GtkWidget *dt_bauhaus_combobox_new(dt_iop_module_t *self); GtkWidget *dt_bauhaus_combobox_new_action(dt_action_t *self); -GtkWidget *dt_bauhaus_combobox_new_full(dt_action_t *action, const char *section, const char *label, const char *tip, - int pos, GtkCallback callback, gpointer data, const char **texts); +GtkWidget *dt_bauhaus_combobox_new_full(dt_action_t *action, + const char *section, + const char *label, + const char *tip, + int pos, + GtkCallback callback, + gpointer data, + const char **texts); #define DT_BAUHAUS_COMBOBOX_NEW_FULL(widget, action, section, label, tip, pos, callback, data, ...) \ { \ static const gchar *texts[] = { __VA_ARGS__, NULL }; \ @@ -347,41 +395,75 @@ (GtkCallback)callback, data, texts); \ } -void dt_bauhaus_combobox_add(GtkWidget *widget, const char *text); -void dt_bauhaus_combobox_add_section(GtkWidget *widget, const char *text); -void dt_bauhaus_combobox_add_aligned(GtkWidget *widget, const char *text, dt_bauhaus_combobox_alignment_t align); -void dt_bauhaus_combobox_add_full(GtkWidget *widget, const char *text, dt_bauhaus_combobox_alignment_t align, - gpointer data, void (*free_func)(void *data), gboolean sensitive); -gboolean dt_bauhaus_combobox_set_entry_label(GtkWidget *widget, const int pos, const gchar *label); +void dt_bauhaus_combobox_add(GtkWidget *widget, + const char *text); +void dt_bauhaus_combobox_add_section(GtkWidget *widget, + const char *text); +void dt_bauhaus_combobox_add_aligned(GtkWidget *widget, + const char *text, + dt_bauhaus_combobox_alignment_t align); +void dt_bauhaus_combobox_add_full(GtkWidget *widget, + const char *text, + dt_bauhaus_combobox_alignment_t align, + gpointer data, + void (*free_func)(void *data), + const gboolean sensitive); +gboolean dt_bauhaus_combobox_set_entry_label(GtkWidget *widget, + const int pos, + const gchar *label); void dt_bauhaus_combobox_set(GtkWidget *w, int pos); -gboolean dt_bauhaus_combobox_set_from_text(GtkWidget *w, const char *text); -gboolean dt_bauhaus_combobox_set_from_value(GtkWidget *w, int value); -int dt_bauhaus_combobox_get_from_value(GtkWidget *widget, int value); -void dt_bauhaus_combobox_remove_at(GtkWidget *widget, int pos); -void dt_bauhaus_combobox_insert(GtkWidget *widget, const char *text,int pos); -void dt_bauhaus_combobox_insert_full(GtkWidget *widget, const char *text, dt_bauhaus_combobox_alignment_t align, - gpointer data, void (*free_func)(void *data), int pos); +gboolean dt_bauhaus_combobox_set_from_text(GtkWidget *w, + const char *text); +gboolean dt_bauhaus_combobox_set_from_value(GtkWidget *w, + const int value); +int dt_bauhaus_combobox_get_from_value(GtkWidget *widget, + const int value); +void dt_bauhaus_combobox_remove_at(GtkWidget *widget, + const int pos); +void dt_bauhaus_combobox_insert(GtkWidget *widget, + const char *text, + const int pos); +void dt_bauhaus_combobox_insert_full(GtkWidget *widget, + const char *text, + dt_bauhaus_combobox_alignment_t align, + gpointer data, + void (*free_func)(void *data), + const int pos); int dt_bauhaus_combobox_length(GtkWidget *widget); -void dt_bauhaus_combobox_set_editable(GtkWidget *w, int editable); -void dt_bauhaus_combobox_set_selected_text_align(GtkWidget *widget, const dt_bauhaus_combobox_alignment_t text_align); +void dt_bauhaus_combobox_set_editable(GtkWidget *w, + const int editable); +void dt_bauhaus_combobox_set_selected_text_align + (GtkWidget *widget, + const dt_bauhaus_combobox_alignment_t text_align); int dt_bauhaus_combobox_get_editable(GtkWidget *w); const char *dt_bauhaus_combobox_get_text(GtkWidget *w); -void dt_bauhaus_combobox_set_text(GtkWidget *w, const char *text); +void dt_bauhaus_combobox_set_text(GtkWidget *w, + const char *text); int dt_bauhaus_combobox_get(GtkWidget *w); -const char *dt_bauhaus_combobox_get_entry(GtkWidget *w, int pos); +const char *dt_bauhaus_combobox_get_entry(GtkWidget *w, + int pos); gpointer dt_bauhaus_combobox_get_data(GtkWidget *widget); void dt_bauhaus_combobox_clear(GtkWidget *w); -void dt_bauhaus_combobox_set_default(GtkWidget *widget, int def); +void dt_bauhaus_combobox_set_default(GtkWidget *widget, + int def); int dt_bauhaus_combobox_get_default(GtkWidget *widget); -void dt_bauhaus_combobox_add_populate_fct(GtkWidget *widget, void (*fct)(GtkWidget *w, struct dt_iop_module_t **module)); -void dt_bauhaus_combobox_add_list(GtkWidget *widget, dt_action_t *action, const char **texts); -gboolean dt_bauhaus_combobox_add_introspection(GtkWidget *widget, - dt_action_t *action, - const dt_introspection_type_enum_tuple_t *list, - const int start, - const int end); -void dt_bauhaus_combobox_entry_set_sensitive(GtkWidget *widget, int pos, gboolean sensitive); -void dt_bauhaus_combobox_set_entries_ellipsis(GtkWidget *widget, PangoEllipsizeMode ellipis); +void dt_bauhaus_combobox_add_populate_fct + (GtkWidget *widget, + void (*fct)(GtkWidget *w, struct dt_iop_module_t **module)); +void dt_bauhaus_combobox_add_list(GtkWidget *widget, + dt_action_t *action, + const char **texts); +gboolean dt_bauhaus_combobox_add_introspection + (GtkWidget *widget, + dt_action_t *action, + const dt_introspection_type_enum_tuple_t *list, + const int start, + const int end); +void dt_bauhaus_combobox_entry_set_sensitive(GtkWidget *widget, + int pos, + const gboolean sensitive); +void dt_bauhaus_combobox_set_entries_ellipsis(GtkWidget *widget, + PangoEllipsizeMode ellipis); PangoEllipsizeMode dt_bauhaus_combobox_get_entries_ellipsis(GtkWidget *widget); void dt_bauhaus_combobox_mute_scrolling(GtkWidget *widget); @@ -405,4 +487,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/cli/main.c darktable-4.6.1/src/cli/main.c --- darktable-4.4.2/src/cli/main.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/cli/main.c 2024-02-16 17:31:09.000000000 +0000 @@ -35,6 +35,7 @@ #include "common/image.h" #include "common/image_cache.h" #include "common/points.h" +#include "config.h" #include "control/conf.h" #include "develop/imageop.h" #include "imageio/imageio_common.h" @@ -61,31 +62,50 @@ static void usage(const char *progname) { - fprintf(stderr, "usage: %s [<input file or dir>] [<XMP file>] <output destination> [options] [--core <darktable options>]\n", progname); - fprintf(stderr, "\n"); - fprintf(stderr, "options:\n"); - fprintf(stderr, " --width <max width> default: 0 = full resolution\n"); - fprintf(stderr, " --height <max height> default: 0 = full resolution\n"); - fprintf(stderr, " --bpp <bpp>, unsupported\n"); - fprintf(stderr, " --hq <0|1|false|true> default: true\n"); - fprintf(stderr, " --upscale <0|1|false|true>, default: false\n"); - fprintf(stderr, " --export_masks <0|1|false|true>, default: false\n"); - fprintf(stderr, " --style <style name>\n"); - fprintf(stderr, " --style-overwrite\n"); - fprintf(stderr, " --apply-custom-presets <0|1|false|true>, default: true\n"); - fprintf(stderr, " disable for multiple instances\n"); - fprintf(stderr, " --out-ext <extension>, default from output destination or '.jpg'\n"); - fprintf(stderr, " if specified, takes preference over output\n"); - fprintf(stderr, " --import <file or dir> specify input file or dir, can be used'\n"); - fprintf(stderr, " multiple times instead of input file\n"); - fprintf(stderr, " --icc-type <type> specify icc type, default to NONE\n"); - fprintf(stderr, " use --help icc-type for list of supported types\n"); - fprintf(stderr, " --icc-file <file> specify icc filename, default to NONE\n"); - fprintf(stderr, " --icc-intent <intent> specify icc intent, default to LAST\n"); - fprintf(stderr, " use --help icc-intent for list of supported intents\n"); - fprintf(stderr, " --verbose\n"); - fprintf(stderr, " --help,-h [option]\n"); - fprintf(stderr, " --version\n"); +fprintf(stderr, "darktable %s\n" + "Copyright (C) 2012-%s Johannes Hanika and other contributors.\n" + "\n" + "<https://www.darktable.org>\n" + "darktable is an open source photography workflow application and\n" + "non-destructive raw developer for photographers.\n" + "GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>\n" + "This is free software: you are free to change and redistribute it.\n" + "There is NO WARRANTY, to the extent permitted by law.\n\n" + "Usage:\n" + "\n" + " darktable-cli [IMAGE_FILE | IMAGE_FOLDER]\n" + " [XMP_FILE] DIR [OPTIONS]\n" + " [--core DARKTABLE_OPTIONS]\n" + "\n" + "Options:\n" + " --apply-custom-presets <0|1|false|true>, default: true\n" + " disable for multiple instances\n" + " --bpp <bpp>, unsupported\n" + " --export_masks <0|1|false|true>, default: false\n" + + " --height <max height> default: 0 = full resolution\n" + " --width <max width> default: 0 = full resolution\n" + + " --hq <0|1|false|true> default: true\n" + " --upscale <0|1|false|true>, default: false\n" + " --style <style name>\n" + " --style-overwrite\n" + " --out-ext <extension>, default from output destination or '.jpg'\n" + " if specified, takes preference over output\n" + " --import <file or dir> specify input file or dir, can be used'\n" + " multiple times instead of input file\n" + " --icc-type <type> specify icc type, default to NONE\n" + " use --help icc-type for list of supported types\n" + " --icc-file <file> specify icc filename, default to NONE\n" + " --icc-intent <intent> specify icc intent, default to LAST\n" + " use --help icc-intent for list of supported intents\n" + " --verbose\n" + " -h, --help [option]\n" + " -v, --version\n", + darktable_package_version, + darktable_last_commit_year); + + // FS TODO: to add instructions for DARKTABLE_OPTIONS } static void icc_types() @@ -119,6 +139,7 @@ fprintf(stderr, " HLG_REC2020\n"); fprintf(stderr, " PQ_P3\n"); fprintf(stderr, " HLG_P3\n"); + fprintf(stderr, " DISPLAY_P3\n"); } #define ICC_FROM_STR(name) if(!strcmp(option, #name)) return DT_COLORSPACE_ ## name; @@ -151,6 +172,7 @@ ICC_FROM_STR(HLG_REC2020); ICC_FROM_STR(PQ_P3); ICC_FROM_STR(HLG_P3); + ICC_FROM_STR(DISPLAY_P3); return DT_COLORSPACE_LAST; } #undef ICC_FROM_STR @@ -223,11 +245,12 @@ } exit(1); } - else if(!strcmp(arg[k], "--version")) - { - printf("this is darktable-cli %s\ncopyright (c) 2012-%s johannes hanika, tobias ellinghaus\n", - darktable_package_version, darktable_last_commit_year); - exit(0); + else if(!strcmp(arg[k], "--version") || !strcmp(arg[k], "-v")) + { + printf("darktable %s\nCopyright (C) 2012-%s Johannes Hanika and other contributors.\n\n",darktable_package_version, darktable_last_commit_year); + printf("See %s for detailed documentation.\n", PACKAGE_DOCS); + printf("See %s to report bugs.\n",PACKAGE_BUGREPORT); + exit(0); } else if(!strcmp(arg[k], "--width") && argc > k + 1) { @@ -650,6 +673,12 @@ output_ext = g_strdup("tiff"); } + if(!strcmp(output_ext, "jxl")) + { + g_free(output_ext); + output_ext = g_strdup("jpegxl"); + } + // init the export data structures dt_imageio_module_format_t *format; dt_imageio_module_storage_t *storage; @@ -775,4 +804,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/common/bilateralcl.c darktable-4.6.1/src/common/bilateralcl.c --- darktable-4.4.2/src/common/bilateralcl.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/bilateralcl.c 2024-02-16 17:31:09.000000000 +0000 @@ -156,22 +156,19 @@ cl_int dt_bilateral_splat_cl(dt_bilateral_cl_t *b, cl_mem in) { - cl_int err = -666; size_t sizes[] = { ROUNDUP(b->width, b->blocksizex), ROUNDUP(b->height, b->blocksizey), 1 }; size_t local[] = { b->blocksizex, b->blocksizey, 1 }; dt_opencl_set_kernel_args(b->devid, b->global->kernel_splat, 0, CLARG(in), CLARG(b->dev_grid), CLARG(b->width), CLARG(b->height), CLARG(b->size_x), CLARG(b->size_y), CLARG(b->size_z), CLARG(b->sigma_s), CLARG(b->sigma_r), CLLOCAL(b->blocksizex * b->blocksizey * sizeof(int)), CLLOCAL(b->blocksizex * b->blocksizey * 8 * sizeof(float))); - err = dt_opencl_enqueue_kernel_2d_with_local(b->devid, b->global->kernel_splat, sizes, local); - return err; + return dt_opencl_enqueue_kernel_2d_with_local(b->devid, b->global->kernel_splat, sizes, local); } cl_int dt_bilateral_blur_cl(dt_bilateral_cl_t *b) { - cl_int err = -666; size_t sizes[3] = { 0, 0, 1 }; - err = dt_opencl_enqueue_copy_buffer_to_buffer(b->devid, b->dev_grid, b->dev_grid_tmp, 0, 0, + cl_int err = dt_opencl_enqueue_copy_buffer_to_buffer(b->devid, b->dev_grid, b->dev_grid_tmp, 0, 0, sizeof(float) * b->size_x * b->size_y * b->size_z); if(err != CL_SUCCESS) return err; @@ -203,16 +200,13 @@ sizes[1] = ROUNDUPDHT(b->size_y, b->devid); dt_opencl_set_kernel_args(b->devid, b->global->kernel_blur_line_z, 0, CLARG(b->dev_grid_tmp), CLARG(b->dev_grid), CLARG(stride1), CLARG(stride2), CLARG(stride3), CLARG(b->size_x), CLARG(b->size_y), CLARG(b->size_z)); - err = dt_opencl_enqueue_kernel_2d(b->devid, b->global->kernel_blur_line_z, sizes); - return err; + return dt_opencl_enqueue_kernel_2d(b->devid, b->global->kernel_blur_line_z, sizes); } cl_int dt_bilateral_slice_to_output_cl(dt_bilateral_cl_t *b, cl_mem in, cl_mem out, const float detail) { - cl_int err = -666; - cl_mem tmp = NULL; - - tmp = dt_opencl_alloc_device(b->devid, b->width, b->height, sizeof(float) * 4); + cl_int err = DT_OPENCL_SYSMEM_ALLOCATION; + cl_mem tmp = dt_opencl_alloc_device(b->devid, b->width, b->height, sizeof(float) * 4); if(tmp == NULL) goto error; size_t origin[] = { 0, 0, 0 }; @@ -224,9 +218,6 @@ CLARG(in), CLARG(tmp), CLARG(out), CLARG(b->dev_grid), CLARG(b->width), CLARG(b->height), CLARG(b->size_x), CLARG(b->size_y), CLARG(b->size_z), CLARG(b->sigma_s), CLARG(b->sigma_r), CLARG(detail)); - dt_opencl_release_mem_object(tmp); - return err; - error: dt_opencl_release_mem_object(tmp); return err; @@ -234,11 +225,9 @@ cl_int dt_bilateral_slice_cl(dt_bilateral_cl_t *b, cl_mem in, cl_mem out, const float detail) { - cl_int err = -666; - err = dt_opencl_enqueue_kernel_2d_args(b->devid, b->global->kernel_slice, b->width, b->height, + return dt_opencl_enqueue_kernel_2d_args(b->devid, b->global->kernel_slice, b->width, b->height, CLARG(in), CLARG(out), CLARG(b->dev_grid), CLARG(b->width), CLARG(b->height), CLARG(b->size_x), CLARG(b->size_y), CLARG(b->size_z), CLARG(b->sigma_s), CLARG(b->sigma_r), CLARG(detail)); - return err; } void dt_bilateral_free_cl_global(dt_bilateral_cl_global_t *b) diff -Nru darktable-4.4.2/src/common/box_filters.c darktable-4.6.1/src/common/box_filters.c --- darktable-4.4.2/src/common/box_filters.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/box_filters.c 2024-02-16 17:31:09.000000000 +0000 @@ -496,8 +496,8 @@ if(N > 16) return; if(N != 9) return; // since we only use 9 channels at the moment, give the compiler a big hint - float DT_ALIGNED_ARRAY L[16] = { 0, 0, 0, 0 }; - float DT_ALIGNED_ARRAY comp[16] = { 0, 0, 0, 0 }; + float DT_ALIGNED_ARRAY L[16] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; + float DT_ALIGNED_ARRAY comp[16] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; size_t hits = 0; // add up the left half of the window for(size_t x = 0; x < MIN(radius,width) ; x++) @@ -809,7 +809,7 @@ size_t mask = 1; for(size_t r = (2*radius+1); r > 1 ; r >>= 1) mask = (mask << 1) | 1; - float DT_ALIGNED_ARRAY L[16] = { 0, 0, 0, 0 }; + float DT_ALIGNED_ARRAY L[16] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; float hits = 0; // add up the left half of the window for(size_t y = 0; y < MIN(radius, height); y++) @@ -870,9 +870,9 @@ size_t mask = 1; for(size_t r = (2*radius+1); r > 1 ; r >>= 1) mask = (mask << 1) | 1; - float DT_ALIGNED_ARRAY L[16] = { 0, 0, 0, 0 }; - float DT_ALIGNED_ARRAY comp[16] = { 0, 0, 0, 0 }; - float hits = 0; + float DT_ALIGNED_ARRAY L[16] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; + float DT_ALIGNED_ARRAY comp[16] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; + float hits = 0.0f; // add up the left half of the window for(size_t y = 0; y < MIN(radius, height); y++) { @@ -1129,7 +1129,7 @@ { if(ch == (4|BOXFILTER_KAHAN_SUM)) { - float *const restrict scratch = user_scratch ? user_scratch : dt_alloc_align_float(4*width); + float *const restrict scratch = user_scratch ? user_scratch : dt_alloc_align_float(4 * dt_round_size(width, 16)); if(scratch) { _blur_horizontal_4ch_Kahan(buf, width, radius, scratch); @@ -1141,7 +1141,7 @@ } else if(ch == (9|BOXFILTER_KAHAN_SUM)) { - float *const restrict scratch = user_scratch ? user_scratch : dt_alloc_align_float(9*width); + float *const restrict scratch = user_scratch ? user_scratch : dt_alloc_align_float(9 * dt_round_size(width, 16)); if(scratch) { _blur_horizontal_Nch_Kahan(9, buf, width, radius, scratch); diff -Nru darktable-4.4.2/src/common/bspline.h darktable-4.6.1/src/common/bspline.h --- darktable-4.4.2/src/common/bspline.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/bspline.h 2024-02-16 17:31:09.000000000 +0000 @@ -22,10 +22,10 @@ #include "common/dwt.h" #include "develop/openmp_maths.h" -// uncomment the following to use nontemporal writes in the decomposition +// Define the following as TRUE to use nontemporal writes in the decomposition // on a 32-core Threadripper, nt writes are 8% slower wiith one thread, // break even at 8 threads, and are 8% faster with 32 and 64 threads -//#define USE_NONTEMPORAL +#define USE_NONTEMPORAL FALSE // B spline filter #define BSPLINE_FSIZE 5 @@ -150,6 +150,7 @@ static inline void blur_2D_Bspline(const float *const restrict in, float *const restrict out, float *const restrict tempbuf, + const size_t padded_size, const size_t width, const size_t height, const int mult, @@ -158,13 +159,13 @@ // À-trous B-spline interpolation/blur shifted by mult #ifdef _OPENMP #pragma omp parallel for default(none) \ - dt_omp_firstprivate(in, out, tempbuf, width, height, mult, clip_negatives) \ + dt_omp_firstprivate(in, out, tempbuf, width, height, mult, clip_negatives, padded_size) \ schedule(static) #endif for(size_t row = 0; row < height; row++) { // get a thread-private one-row temporary buffer - float *const temp = tempbuf + 4 * width * dt_get_thread_num(); + float *restrict const temp = dt_get_perthread(tempbuf, padded_size); // interleave the order in which we process the rows so that we minimize cache misses const size_t i = dwt_interleave_rows(row, height, mult); // Convolve B-spline filter over columns: for each pixel in the current row, compute vertical blur @@ -181,18 +182,22 @@ #endif } } +#if USE_NONTEMPORAL dt_omploop_sfence(); // ensure that nontemporal writes complete before we attempt to read the output +#endif } - #ifdef _OPENMP #pragma omp declare simd aligned(in, HF, LF:64) aligned(tempbuf:16) #endif inline static void decompose_2D_Bspline(const float *const in, float *const HF, float *const restrict LF, - const size_t width, const size_t height, const int mult, - float *const tempbuf, size_t padded_size) + const size_t width, + const size_t height, + const int mult, + float *const tempbuf, + const size_t padded_size) { // Blur and compute the decimated wavelet at once #ifdef _OPENMP @@ -227,11 +232,11 @@ #endif } } +#if USE_NONTEMPORAL dt_omploop_sfence(); // ensure that nontemporal writes complete before we attempt to read the output +#endif } -#undef USE_NONTEMPORAL - // clang-format off // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py // vim: shiftwidth=2 expandtab tabstop=2 cindent diff -Nru darktable-4.4.2/src/common/cache.c darktable-4.6.1/src/common/cache.c --- darktable-4.4.2/src/common/cache.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/cache.c 2024-02-16 17:31:09.000000000 +0000 @@ -29,10 +29,9 @@ // this implements a concurrent LRU cache -void dt_cache_init( - dt_cache_t *cache, - size_t entry_size, - size_t cost_quota) +void dt_cache_init(dt_cache_t *cache, + const size_t entry_size, + const size_t cost_quota) { cache->cost = 0; cache->lru = 0; @@ -108,16 +107,19 @@ { gpointer orig_key, value; gboolean res; - double start = dt_get_wtime(); + double start = dt_get_debug_wtime(); dt_pthread_mutex_lock(&cache->lock); - res = g_hash_table_lookup_extended( - cache->hashtable, GINT_TO_POINTER(key), &orig_key, &value); + res = g_hash_table_lookup_extended(cache->hashtable, + GINT_TO_POINTER(key), + &orig_key, + &value); if(res) { dt_cache_entry_t *entry = (dt_cache_entry_t *)value; // lock the cache entry - const int result - = (mode == 'w') ? dt_pthread_rwlock_trywrlock(&entry->lock) : dt_pthread_rwlock_tryrdlock(&entry->lock); + const int result = (mode == 'w') + ? dt_pthread_rwlock_trywrlock(&entry->lock) + : dt_pthread_rwlock_tryrdlock(&entry->lock); if(result) { // need to give up mutex so other threads have a chance to get in between and // free the lock we're trying to acquire: @@ -128,7 +130,7 @@ cache->lru = g_list_remove_link(cache->lru, entry->link); cache->lru = g_list_concat(cache->lru, entry->link); dt_pthread_mutex_unlock(&cache->lock); - double end = dt_get_wtime(); + double end = dt_get_debug_wtime(); if(end - start > 0.1) dt_print(DT_DEBUG_ALWAYS, "try+ wait time %.06fs mode %c \n", end - start, mode); @@ -143,7 +145,7 @@ return entry; } dt_pthread_mutex_unlock(&cache->lock); - double end = dt_get_wtime(); + double end = dt_get_debug_wtime(); if(end - start > 0.1) dt_print(DT_DEBUG_ALWAYS, "try- wait time %.06fs\n", end - start); return 0; @@ -152,21 +154,29 @@ // if found, the data void* is returned. if not, it is set to be // the given *data and a new hash table entry is created, which can be // found using the given key later on. -dt_cache_entry_t *dt_cache_get_with_caller(dt_cache_t *cache, const uint32_t key, char mode, const char *file, int line) +dt_cache_entry_t *dt_cache_get_with_caller(dt_cache_t *cache, + const uint32_t key, + const char mode, + const char *file, + const int line) { gpointer orig_key, value; gboolean res; int result; - double start = dt_get_wtime(); + double start = dt_get_debug_wtime(); restart: dt_pthread_mutex_lock(&cache->lock); - res = g_hash_table_lookup_extended( - cache->hashtable, GINT_TO_POINTER(key), &orig_key, &value); + res = g_hash_table_lookup_extended(cache->hashtable, + GINT_TO_POINTER(key), + &orig_key, + &value); if(res) { // yay, found. read lock and pass on. dt_cache_entry_t *entry = (dt_cache_entry_t *)value; - if(mode == 'w') result = dt_pthread_rwlock_trywrlock_with_caller(&entry->lock, file, line); - else result = dt_pthread_rwlock_tryrdlock_with_caller(&entry->lock, file, line); + if(mode == 'w') + result = dt_pthread_rwlock_trywrlock_with_caller(&entry->lock, file, line); + else + result = dt_pthread_rwlock_tryrdlock_with_caller(&entry->lock, file, line); if(result) { // need to give up mutex so other threads have a chance to get in between and // free the lock we're trying to acquire: @@ -216,6 +226,7 @@ dt_cache_entry_t *entry = (dt_cache_entry_t *)g_slice_alloc(sizeof(dt_cache_entry_t)); int ret = dt_pthread_rwlock_init(&entry->lock, 0); if(ret) dt_print(DT_DEBUG_ALWAYS, "rwlock init: %d\n", ret); + entry->data = 0; entry->data_size = cache->entry_size; entry->cost = 1; @@ -239,8 +250,10 @@ const int write = ((mode == 'w') || cache->allocate); // write lock in case the caller requests it: - if(write) dt_pthread_rwlock_wrlock_with_caller(&entry->lock, file, line); - else dt_pthread_rwlock_rdlock_with_caller(&entry->lock, file, line); + if(write) + dt_pthread_rwlock_wrlock_with_caller(&entry->lock, file, line); + else + dt_pthread_rwlock_rdlock_with_caller(&entry->lock, file, line); cache->cost += entry->cost; @@ -248,7 +261,7 @@ cache->lru = g_list_concat(cache->lru, entry->link); dt_pthread_mutex_unlock(&cache->lock); - double end = dt_get_wtime(); + double end = dt_get_debug_wtime(); if(end - start > 0.1) dt_print(DT_DEBUG_ALWAYS, "wait time %.06fs\n", end - start); @@ -266,8 +279,10 @@ restart: dt_pthread_mutex_lock(&cache->lock); - res = g_hash_table_lookup_extended( - cache->hashtable, GINT_TO_POINTER(key), &orig_key, &value); + res = g_hash_table_lookup_extended(cache->hashtable, + GINT_TO_POINTER(key), + &orig_key, + &value); entry = (dt_cache_entry_t *)value; if(!res) { // not found in cache, not deleting. @@ -285,7 +300,8 @@ if(entry->_lock_demoting) { - // oops, we are currently demoting (rw -> r) lock to this entry in some thread. do not touch! + // oops, we are currently demoting (rw -> r) lock to this entry in + // some thread. do not touch! dt_pthread_rwlock_unlock(&entry->lock); dt_pthread_mutex_unlock(&cache->lock); g_usleep(5); @@ -316,7 +332,8 @@ return 0; } -// best-effort garbage collection. never blocks, never fails. well, sometimes it just doesn't free anything. +// best-effort garbage collection. never blocks, never fails. well, +// sometimes it just doesn't free anything. void dt_cache_gc(dt_cache_t *cache, const float fill_ratio) { GList *l = cache->lru; @@ -324,15 +341,20 @@ { dt_cache_entry_t *entry = (dt_cache_entry_t *)l->data; assert(entry->link->data == entry); - l = g_list_next(l); // we might remove this element, so walk to the next one while we still have the pointer.. - if(cache->cost < cache->cost_quota * fill_ratio) break; + l = g_list_next(l); // we might remove this element, so walk to + // the next one while we still have the + // pointer.. + if(cache->cost < cache->cost_quota * fill_ratio) + break; // if still locked by anyone else give up: - if(dt_pthread_rwlock_trywrlock(&entry->lock)) continue; + if(dt_pthread_rwlock_trywrlock(&entry->lock)) + continue; if(entry->_lock_demoting) { - // oops, we are currently demoting (rw -> r) lock to this entry in some thread. do not touch! + // oops, we are currently demoting (rw -> r) lock to this entry + // in some thread. do not touch! dt_pthread_rwlock_unlock(&entry->lock); continue; } @@ -358,7 +380,10 @@ } } -void dt_cache_release_with_caller(dt_cache_t *cache, dt_cache_entry_t *entry, const char *file, int line) +void dt_cache_release_with_caller(dt_cache_t *cache, + dt_cache_entry_t *entry, + const char *file, + const int line) { #if((__has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__)) && 1) // yes, this is *HIGHLY* unportable and is accessing implementation details. @@ -398,4 +423,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/common/cache.h darktable-4.6.1/src/common/cache.h --- darktable-4.4.2/src/common/cache.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/cache.h 2024-02-16 17:31:09.000000000 +0000 @@ -58,46 +58,63 @@ dt_cache_t; // entry size is only used if alloc callback is 0 -void dt_cache_init(dt_cache_t *cache, size_t entry_size, size_t cost_quota); +void dt_cache_init(dt_cache_t *cache, + const size_t entry_size, + const size_t cost_quota); void dt_cache_cleanup(dt_cache_t *cache); -static inline void dt_cache_set_allocate_callback(dt_cache_t *cache, dt_cache_allocate_t allocate_cb, +static inline void dt_cache_set_allocate_callback(dt_cache_t *cache, + dt_cache_allocate_t allocate_cb, void *allocate_data) { cache->allocate = allocate_cb; cache->allocate_data = allocate_data; } -static inline void dt_cache_set_cleanup_callback(dt_cache_t *cache, dt_cache_cleanup_t cleanup_cb, +static inline void dt_cache_set_cleanup_callback(dt_cache_t *cache, + dt_cache_cleanup_t cleanup_cb, void *cleanup_data) { cache->cleanup = cleanup_cb; cache->cleanup_data = cleanup_data; } -// returns a slot in the cache for this key (newly allocated if need be), locked according to mode (r, w) +// returns a slot in the cache for this key (newly allocated if need +// be), locked according to mode (r, w) #define dt_cache_get(A, B, C) dt_cache_get_with_caller(A, B, C, __FILE__, __LINE__) -dt_cache_entry_t *dt_cache_get_with_caller(dt_cache_t *cache, const uint32_t key, char mode, const char *file, int line); +dt_cache_entry_t *dt_cache_get_with_caller(dt_cache_t *cache, + const uint32_t key, + const char mode, + const char *file, + const int line); // same but returns 0 if not allocated yet (both will block and wait for entry rw locks to be released) dt_cache_entry_t *dt_cache_testget(dt_cache_t *cache, const uint32_t key, char mode); // release a lock on a cache entry. the cache knows which one you mean (r or w). #define dt_cache_release(A, B) dt_cache_release_with_caller(A, B, __FILE__, __LINE__) -void dt_cache_release_with_caller(dt_cache_t *cache, dt_cache_entry_t *entry, const char *file, int line); +void dt_cache_release_with_caller(dt_cache_t *cache, + dt_cache_entry_t *entry, + const char *file, + const int line); // 0: not contained -int32_t dt_cache_contains(dt_cache_t *cache, const uint32_t key); +int32_t dt_cache_contains(dt_cache_t *cache, + const uint32_t key); // returns 0 on success, 1 if the key was not found. -int32_t dt_cache_remove(dt_cache_t *cache, const uint32_t key); +int32_t dt_cache_remove(dt_cache_t *cache, + const uint32_t key); // removes from the tip of the lru list, until the fill ratio of the hashtable // goes below the given parameter, in terms of the user defined cost measure. // will never lock and never fail, but sometimes not free memory (in case all // is locked) -void dt_cache_gc(dt_cache_t *cache, const float fill_ratio); +void dt_cache_gc(dt_cache_t *cache, + const float fill_ratio); // iterate over all currently contained data blocks. // not thread safe! only use this for init/cleanup! // returns non zero the first time process() returns non zero. int dt_cache_for_all(dt_cache_t *cache, - int (*process)(const uint32_t key, const void *data, void *user_data), + int (*process)(const uint32_t key, + const void *data, + void *user_data), void *user_data); // clang-format off @@ -105,4 +122,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/common/calculator.c darktable-4.6.1/src/common/calculator.c --- darktable-4.4.2/src/common/calculator.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/calculator.c 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2013-2020 darktable developers. + Copyright (C) 2013-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -23,7 +23,7 @@ typedef enum token_types_t { - T_NUMBER, // everything will be treated as floats + T_NUMBER, // everything will be treated as doubles T_OPERATOR } token_types_t; @@ -44,7 +44,7 @@ typedef union token_data_t { - float number; + double number; operators_t operator; } token_data_t; @@ -57,18 +57,18 @@ typedef struct parser_state_t { char *p; - float x; + double x; token_t *token; } parser_state_t; /** the scanner **/ -static float read_number(parser_state_t *self) +static double _read_number(parser_state_t *self) { return g_ascii_strtod(self->p, &self->p); } -static token_t *get_token(parser_state_t *self) +static token_t *_get_token(parser_state_t *self) { if(!self->p) return NULL; @@ -161,7 +161,7 @@ case '.': case ',': { - token->data.number = read_number(self); + token->data.number = _read_number(self); token->type = T_NUMBER; return token; } @@ -178,23 +178,23 @@ /** the parser **/ -static float parse_expression(parser_state_t *self); -static float parse_additive_expression(parser_state_t *self); -static float parse_multiplicative_expression(parser_state_t *self); -static float parse_power_expression(parser_state_t *self); -static float parse_unary_expression(parser_state_t *self); -static float parse_primary_expression(parser_state_t *self); +static double _parse_expression(parser_state_t *self); +static double _parse_additive_expression(parser_state_t *self); +static double _parse_multiplicative_expression(parser_state_t *self); +static double _parse_power_expression(parser_state_t *self); +static double _parse_unary_expression(parser_state_t *self); +static double _parse_primary_expression(parser_state_t *self); -static float parse_expression(parser_state_t *self) +static double _parse_expression(parser_state_t *self) { - return parse_additive_expression(self); + return _parse_additive_expression(self); } -static float parse_additive_expression(parser_state_t *self) +static double _parse_additive_expression(parser_state_t *self) { if(!self->token) return NAN; - float left = parse_multiplicative_expression(self); + double left = _parse_multiplicative_expression(self); while(self->token && self->token->type == T_OPERATOR) { @@ -203,24 +203,24 @@ if(operator!= O_PLUS &&operator!= O_MINUS) return left; free(self->token); - self->token = get_token(self); + self->token = _get_token(self); - const float right = parse_multiplicative_expression(self); + const double right = _parse_multiplicative_expression(self); - if(operator== O_PLUS) + if(operator == O_PLUS) left += right; - else if(operator== O_MINUS) + else if(operator == O_MINUS) left -= right; } return left; } -static float parse_multiplicative_expression(parser_state_t *self) +static double _parse_multiplicative_expression(parser_state_t *self) { if(!self->token) return NAN; - float left = parse_power_expression(self); + double left = _parse_power_expression(self); while(self->token && self->token->type == T_OPERATOR) { @@ -231,16 +231,16 @@ return left; free(self->token); - self->token = get_token(self); + self->token = _get_token(self); - float right = parse_power_expression(self); + double right = _parse_power_expression(self); if(operator== O_MULTIPLY) left *= right; else if(operator== O_DIVISION) left /= right; else if(operator== O_MODULO) - left = fmodf(left, right); + left = fmod(left, right); else if(operator == O_RATIO) left = MAX(left,right) / MIN(left,right); } @@ -248,28 +248,28 @@ return left; } -static float parse_power_expression(parser_state_t *self) +static double _parse_power_expression(parser_state_t *self) { if(!self->token) return NAN; - float left = parse_unary_expression(self); + double left = _parse_unary_expression(self); while(self->token && self->token->type == T_OPERATOR) { if(self->token->data.operator!= O_POWER) return left; free(self->token); - self->token = get_token(self); + self->token = _get_token(self); - const float right = parse_unary_expression(self); + const double right = _parse_unary_expression(self); - left = powf(left, right); + left = pow(left, right); } return left; } -static float parse_unary_expression(parser_state_t *self) +static double _parse_unary_expression(parser_state_t *self) { if(!self->token) return NAN; @@ -278,42 +278,42 @@ if(self->token->data.operator== O_MINUS) { free(self->token); - self->token = get_token(self); + self->token = _get_token(self); - return -1.0 * parse_unary_expression(self); + return -1.0 * _parse_unary_expression(self); } if(self->token->data.operator== O_PLUS) { free(self->token); - self->token = get_token(self); + self->token = _get_token(self); - return parse_unary_expression(self); + return _parse_unary_expression(self); } } - return parse_primary_expression(self); + return _parse_primary_expression(self); } -static float parse_primary_expression(parser_state_t *self) +static double _parse_primary_expression(parser_state_t *self) { if(!self->token) return NAN; if(self->token->type == T_NUMBER) { - const float result = self->token->data.number; + const double result = self->token->data.number; free(self->token); - self->token = get_token(self); + self->token = _get_token(self); return result; } if(self->token->type == T_OPERATOR && self->token->data.operator== O_LEFTROUND) { free(self->token); - self->token = get_token(self); - const float result = parse_expression(self); + self->token = _get_token(self); + const double result = _parse_expression(self); if(!self->token || self->token->type != T_OPERATOR || self->token->data.operator!= O_RIGHTROUND) return NAN; free(self->token); - self->token = get_token(self); + self->token = _get_token(self); return result; } @@ -322,7 +322,7 @@ /** the public interface **/ -float dt_calculator_solve(const float x, const char *formula) +double dt_calculator_solve(const double x, const char *formula) { if(formula == NULL || *formula == '\0') return NAN; @@ -332,9 +332,9 @@ self->p = g_strdelimit(dotformula, ",", '.'); self->x = x; - self->token = get_token(self); + self->token = _get_token(self); - float result = .0f; + double result = 0.0; // operators_t operator = -1; if(self->token && self->token->type == T_OPERATOR) @@ -356,14 +356,14 @@ // case O_RATIO: // operator = self->token->data.operator; // free(self->token); - // self->token = get_token(self); + // self->token = _get_token(self); // break; default: break; } } - result = parse_expression(self); + result = _parse_expression(self); // switch(operator) // { diff -Nru darktable-4.4.2/src/common/calculator.h darktable-4.6.1/src/common/calculator.h --- darktable-4.4.2/src/common/calculator.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/calculator.h 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2013-2020 darktable developers. + Copyright (C) 2013-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,7 +19,7 @@ #pragma once /** solve the mathematical expression in formula, the only allowed variable is 'x' */ -float dt_calculator_solve(const float x, const char *formula); +double dt_calculator_solve(const double x, const char *formula); // clang-format off // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py diff -Nru darktable-4.4.2/src/common/camera_control.c darktable-4.6.1/src/common/camera_control.c --- darktable-4.4.2/src/common/camera_control.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/camera_control.c 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2010-2023 darktable developers. + Copyright (C) 2010-2024 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -330,7 +330,10 @@ dt_print(DT_DEBUG_CAMCTL, "[camera_control] live view failed to get preview data: %s\n", gp_result_as_string(res)); } - else + // to avoid a crash check that data is not null and data_size > + // 0. there is cases where this occurs even if the above call to + // gp_file_get_data_and_size returns GP_OK. + else if(data && data_size > 0) { // everything worked dt_imageio_jpeg_t jpg; @@ -1006,13 +1009,9 @@ g_usleep(250000); // 1/4 second dt_camctl_t *camctl = (dt_camctl_t *)darktable.camctl; - const dt_view_t *cv = (darktable.view_manager) - ? dt_view_manager_get_current_view(darktable.view_manager) - : NULL; - if(camctl) { - if((camctl->import_ui == FALSE) && (cv && (cv->view(cv) == DT_VIEW_LIGHTTABLE))) + if(camctl->import_ui == FALSE && dt_view_get_current() == DT_VIEW_LIGHTTABLE) //TODO: && import module is expanded and visible { camctl->ticker += 1; diff -Nru darktable-4.4.2/src/common/collection.c darktable-4.6.1/src/common/collection.c --- darktable-4.4.2/src/common/collection.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/collection.c 2024-02-16 17:31:09.000000000 +0000 @@ -196,26 +196,62 @@ g_free(ins_query); } -static void _dt_collection_set_selq_pre_sort(const dt_collection_t *collection, char **selq_pre) +static void _dt_collection_set_selq_pre_sort(const dt_collection_t *collection, + char **selq_pre) { const uint32_t tagid = collection->tagid; char tag[16] = { 0 }; snprintf(tag, sizeof(tag), "%u", tagid); + gboolean tag_join = FALSE; + + // select which fields are needed + gchar *fields = g_strdup("mi.id"); // we always want to load the image id + // the other needed fields are for the sorting order + if(collection->params.query_flags & COLLECTION_QUERY_USE_SORT) + { + // we always need filename and version : they are fallback orders in any cases + fields = dt_util_dstrcat(fields, ", filename, version"); + if(collection->params.sorts[DT_COLLECTION_SORT_GROUP]) + fields = dt_util_dstrcat(fields, ", group_id"); + if(collection->params.sorts[DT_COLLECTION_SORT_PATH]) + fields = dt_util_dstrcat(fields, ", film_id"); + if(collection->params.sorts[DT_COLLECTION_SORT_DATETIME]) + fields = dt_util_dstrcat(fields, ", datetime_taken"); + if(collection->params.sorts[DT_COLLECTION_SORT_IMPORT_TIMESTAMP]) + fields = dt_util_dstrcat(fields, ", import_timestamp"); + if(collection->params.sorts[DT_COLLECTION_SORT_CHANGE_TIMESTAMP]) + fields = dt_util_dstrcat(fields, ", change_timestamp"); + if(collection->params.sorts[DT_COLLECTION_SORT_EXPORT_TIMESTAMP]) + fields = dt_util_dstrcat(fields, ", export_timestamp"); + if(collection->params.sorts[DT_COLLECTION_SORT_PRINT_TIMESTAMP]) + fields = dt_util_dstrcat(fields, ", print_timestamp"); + if(collection->params.sorts[DT_COLLECTION_SORT_ASPECT_RATIO]) + fields = dt_util_dstrcat(fields, ", aspect_ratio"); + if(collection->params.sorts[DT_COLLECTION_SORT_RATING]) + fields = dt_util_dstrcat(fields, ", flags"); + if(collection->params.sorts[DT_COLLECTION_SORT_CUSTOM_ORDER]) + { + tag_join = (tagid); + fields = dt_util_dstrcat(fields, + ", %s position", + tagid ? "CASE WHEN ti.position IS NULL THEN 0 ELSE ti.position END AS" : ""); + } + } // clang-format off *selq_pre = dt_util_dstrcat (*selq_pre, - "SELECT DISTINCT mi.id FROM (SELECT" - " id, group_id, film_id, filename, datetime_taken, " - " flags, version, %s position, aspect_ratio," - " maker, model, lens, aperture, exposure, focal_length," - " iso, import_timestamp, change_timestamp," - " export_timestamp, print_timestamp" - " FROM main.images AS mi %s%s WHERE ", - tagid ? "CASE WHEN ti.position IS NULL THEN 0 ELSE ti.position END AS" : "", - tagid ? " LEFT JOIN main.tagged_images AS ti ON ti.imgid = mi.id AND ti.tagid = " : "", - tagid ? tag : ""); + "SELECT DISTINCT sel.id" + " FROM (SELECT %s" + " FROM main.images AS mi" + " %s%s" + " WHERE ", + fields, + tag_join ? " LEFT JOIN main.tagged_images AS ti" + " ON ti.imgid = mi.id AND ti.tagid = " : "", + tag_join ? tag : ""); // clang-format on + g_free(fields); } int dt_collection_update(const dt_collection_t *collection) @@ -225,29 +261,27 @@ wq = wq_no_group = sq = selq_pre = selq_post = query = query_no_group = NULL; /* build where part */ - gchar *where_ext = dt_collection_get_extended_where(collection, -1); - if(!(collection->params.query_flags & COLLECTION_QUERY_USE_ONLY_WHERE_EXT)) - { - int and_term = and_operator_initial(); - /* add default filters */ - if(collection->params.filter_flags & COLLECTION_FILTER_FILM_ID) - { - wq = g_strdup_printf("%s (film_id = %u)", and_operator(&and_term), collection->params.film_id); - } - // DON'T SELECT IMAGES MARKED TO BE DELETED. - wq = dt_util_dstrcat(wq, " %s (flags & %d) != %d", - and_operator(&and_term), DT_IMAGE_REMOVE, - DT_IMAGE_REMOVE); + int and_term = and_operator_initial(); - /* add where ext if wanted */ - if((collection->params.query_flags & COLLECTION_QUERY_USE_WHERE_EXT)) - wq = dt_util_dstrcat(wq, " %s %s", and_operator(&and_term), where_ext); + /* add default filters */ + if(collection->params.filter_flags & COLLECTION_FILTER_FILM_ID) + { + wq = g_strdup_printf("%s (film_id = %u)", + and_operator(&and_term), collection->params.film_id); } - else - wq = g_strdup(where_ext); + // DON'T SELECT IMAGES MARKED TO BE DELETED. + wq = dt_util_dstrcat(wq, " %s (flags & %d) != %d", + and_operator(&and_term), DT_IMAGE_REMOVE, + DT_IMAGE_REMOVE); - g_free(where_ext); + /* add where ext if wanted */ + if((collection->params.query_flags & COLLECTION_QUERY_USE_WHERE_EXT)) + { + gchar *where_ext = dt_collection_get_extended_where(collection, -1); + wq = dt_util_dstrcat(wq, " %s %s", and_operator(&and_term), where_ext); + g_free(where_ext); + } wq_no_group = g_strdup(wq); @@ -265,15 +299,18 @@ * representative image. * The *2+CASE statement are to break ties, so that when id < group_id, it's * weighted a little higher than when id > group_id. */ - "id IN (SELECT id FROM " - "(SELECT id, MIN(ABS(id-group_id)*2 + CASE WHEN (id-group_id) < 0 THEN 1 ELSE 0 END) " - "FROM main.images WHERE %s GROUP BY group_id)))", + "mi.id IN (SELECT id FROM " + "(SELECT id," + " MIN(ABS(id-group_id)*2 + CASE WHEN (id-group_id) < 0 THEN 1 ELSE 0 END)" + " FROM main.images AS mi WHERE %s GROUP BY group_id)))", darktable.gui->expanded_group_id, wq_no_group); // clang-format on - /* Additionally, when a group is expanded, make sure the representative image wasn't filtered out. - * This is important, because otherwise it may be impossible to collapse the group again. */ - wq = dt_util_dstrcat(wq, " OR (id = %d)", darktable.gui->expanded_group_id); + /* Additionally, when a group is expanded, make sure the + * representative image wasn't filtered out. This is important, + * because otherwise it may be impossible to collapse the group + * again. */ + wq = dt_util_dstrcat(wq, " OR (mi.id = %d)", darktable.gui->expanded_group_id); } // get all the sort items @@ -291,193 +328,56 @@ params->sorts[dt_conf_get_int("plugins/lighttable/filtering/lastsort")] = TRUE; /* build select part includes where */ - /* COLOR and PATH */ - if(collection->params.sorts[DT_COLLECTION_SORT_COLOR] - && collection->params.sorts[DT_COLLECTION_SORT_PATH] - && (collection->params.query_flags & COLLECTION_QUERY_USE_SORT)) - { - _dt_collection_set_selq_pre_sort(collection, &selq_pre); - // clang-format off - selq_post = dt_util_dstrcat - (selq_post, - ") AS mi LEFT OUTER JOIN main.color_labels AS b ON mi.id = b.imgid" - " JOIN (SELECT id AS film_rolls_id, folder" - " FROM main.film_rolls) ON film_id = film_rolls_id"); - // clang-format on - } - /* COLOR and TITLE */ - else if(collection->params.sorts[DT_COLLECTION_SORT_COLOR] - && collection->params.sorts[DT_COLLECTION_SORT_TITLE] - && (collection->params.query_flags & COLLECTION_QUERY_USE_SORT)) - { - _dt_collection_set_selq_pre_sort(collection, &selq_pre); - // clang-format off - selq_post = dt_util_dstrcat - (selq_post, - ") AS mi LEFT OUTER JOIN main.color_labels AS b ON mi.id = b.imgid" - " LEFT OUTER JOIN main.meta_data AS m ON mi.id = m.id AND m.key = %d", - DT_METADATA_XMP_DC_TITLE); - // clang-format on - } - /* COLOR and DESCRIPTION */ - else if(collection->params.sorts[DT_COLLECTION_SORT_COLOR] - && collection->params.sorts[DT_COLLECTION_SORT_DESCRIPTION] - && (collection->params.query_flags & COLLECTION_QUERY_USE_SORT)) - { - _dt_collection_set_selq_pre_sort(collection, &selq_pre); - // clang-format off - selq_post = dt_util_dstrcat - (selq_post, - ") AS mi LEFT OUTER JOIN main.color_labels AS b ON mi.id = b.imgid" - " LEFT OUTER JOIN main.meta_data AS m ON mi.id = m.id AND m.key = %d ", - DT_METADATA_XMP_DC_DESCRIPTION); - // clang-format on - } - /* PATH and TITLE */ - else if(collection->params.sorts[DT_COLLECTION_SORT_TITLE] - && collection->params.sorts[DT_COLLECTION_SORT_PATH] - && (collection->params.query_flags & COLLECTION_QUERY_USE_SORT)) - { - _dt_collection_set_selq_pre_sort(collection, &selq_pre); - // clang-format off - selq_post = dt_util_dstrcat(selq_post, ") AS mi" - " JOIN (SELECT id AS film_rolls_id, folder" - " FROM main.film_rolls) ON film_id = film_rolls_id" - " LEFT OUTER JOIN main.meta_data AS m ON mi.id = m.id AND m.key = %d", - DT_METADATA_XMP_DC_TITLE); - // clang-format on - } - /* PATH and DESCRIPTION */ - else if(collection->params.sorts[DT_COLLECTION_SORT_DESCRIPTION] - && collection->params.sorts[DT_COLLECTION_SORT_PATH] - && (collection->params.query_flags & COLLECTION_QUERY_USE_SORT)) - { - _dt_collection_set_selq_pre_sort(collection, &selq_pre); - // clang-format off - selq_post = dt_util_dstrcat - (selq_post, - ") AS mi JOIN (SELECT id AS film_rolls_id, folder" - " FROM main.film_rolls) ON film_id = film_rolls_id" - " LEFT OUTER JOIN main.meta_data AS m ON mi.id = m.id AND m.key = %d", - DT_METADATA_XMP_DC_DESCRIPTION); - // clang-format on - } - /* TITLE and DESCRIPTION */ - else if(collection->params.sorts[DT_COLLECTION_SORT_TITLE] - && collection->params.sorts[DT_COLLECTION_SORT_DESCRIPTION] - && (collection->params.query_flags & COLLECTION_QUERY_USE_SORT)) - { - _dt_collection_set_selq_pre_sort(collection, &selq_pre); - // clang-format off - selq_post = dt_util_dstrcat - (selq_post, - ") AS mi LEFT OUTER JOIN main.meta_data AS m ON mi.id = m.id AND (m.key = %d OR m.key = %d)", - DT_METADATA_XMP_DC_TITLE, DT_METADATA_XMP_DC_DESCRIPTION); - // clang-format on - } - /* only COLOR */ - else if(collection->params.sorts[DT_COLLECTION_SORT_COLOR] - && (collection->params.query_flags & COLLECTION_QUERY_USE_SORT)) - { - _dt_collection_set_selq_pre_sort(collection, &selq_pre); - // clang-format off - selq_post = dt_util_dstrcat(selq_post, ") AS mi" - " LEFT OUTER JOIN main.color_labels AS b ON mi.id = b.imgid"); - // clang-format on - } - /* only PATH */ - else if(collection->params.sorts[DT_COLLECTION_SORT_PATH] - && (collection->params.query_flags & COLLECTION_QUERY_USE_SORT)) - { - _dt_collection_set_selq_pre_sort(collection, &selq_pre); - // clang-format off - selq_post = dt_util_dstrcat - (selq_post, - ") AS mi JOIN (SELECT id AS film_rolls_id, folder" - " FROM main.film_rolls)" - " ON film_id = film_rolls_id"); - // clang-format on - } - /* only TITLE */ - else if(collection->params.sorts[DT_COLLECTION_SORT_TITLE] - && (collection->params.query_flags & COLLECTION_QUERY_USE_SORT)) - { - _dt_collection_set_selq_pre_sort(collection, &selq_pre); - // clang-format off - selq_post = dt_util_dstrcat(selq_post, ") AS mi" - " LEFT OUTER JOIN main.meta_data AS m" - " ON mi.id = m.id AND m.key = %d ", - DT_METADATA_XMP_DC_TITLE); - // clang-format on - } - /* only DESCRIPTION */ - else if(collection->params.sorts[DT_COLLECTION_SORT_DESCRIPTION] - && (collection->params.query_flags & COLLECTION_QUERY_USE_SORT)) - { - _dt_collection_set_selq_pre_sort(collection, &selq_pre); - // clang-format off - selq_post = dt_util_dstrcat - (selq_post, ") AS mi LEFT OUTER JOIN main.meta_data AS m ON mi.id = m.id AND m.key = %d ", - DT_METADATA_XMP_DC_DESCRIPTION); - // clang-format on - } - else if(collection->params.query_flags & COLLECTION_QUERY_USE_ONLY_WHERE_EXT) - { - const uint32_t tagid = collection->tagid; - char tag[16] = { 0 }; - snprintf(tag, sizeof(tag), "%u", tagid); - // clang-format off - selq_pre = dt_util_dstrcat - (selq_pre, - "SELECT DISTINCT mi.id FROM (SELECT" - " id, group_id, film_id, filename, datetime_taken, " - " flags, version, %s position, aspect_ratio," - " maker, model, lens, aperture, exposure, focal_length," - " iso, import_timestamp, change_timestamp," - " export_timestamp, print_timestamp" - " FROM main.images AS mi %s%s ) AS mi ", - tagid ? "CASE WHEN ti.position IS NULL THEN 0 ELSE ti.position END AS" : "", - tagid ? " LEFT JOIN main.tagged_images AS ti ON ti.imgid = mi.id AND ti.tagid = " : "", - tagid ? tag : ""); - // clang-format on - } - else + _dt_collection_set_selq_pre_sort(collection, &selq_pre); + selq_post = g_strdup(") AS sel"); + + if(collection->params.query_flags & COLLECTION_QUERY_USE_SORT) { - const uint32_t tagid = collection->tagid; - char tag[16] = { 0 }; - snprintf(tag, sizeof(tag), "%u", tagid); - // clang-format off - selq_pre = dt_util_dstrcat - (selq_pre, - "SELECT DISTINCT mi.id FROM (SELECT" - " id, group_id, film_id, filename, datetime_taken, " - " flags, version, %s position, aspect_ratio," - " maker, model, lens, aperture, exposure, focal_length," - " iso, import_timestamp, change_timestamp," - " export_timestamp, print_timestamp" - " FROM main.images AS mi %s%s ) AS mi WHERE ", - tagid ? "CASE WHEN ti.position IS NULL THEN 0 ELSE ti.position END AS" : "", - tagid ? " LEFT JOIN main.tagged_images AS ti ON ti.imgid = mi.id AND ti.tagid = " : "", - tagid ? tag : ""); - // clang-format on + // some sort orders require to join tables to the query + if(collection->params.sorts[DT_COLLECTION_SORT_COLOR]) + { + selq_post = dt_util_dstrcat + (selq_post, " LEFT OUTER JOIN main.color_labels AS b ON sel.id = b.imgid"); + } + if(collection->params.sorts[DT_COLLECTION_SORT_PATH]) + { + // clang-format off + selq_post = dt_util_dstrcat + (selq_post, " JOIN (SELECT id AS film_rolls_id, folder" + " FROM main.film_rolls) ON film_id = film_rolls_id"); + // clang-format on + } + if(collection->params.sorts[DT_COLLECTION_SORT_TITLE]) + { + selq_post = dt_util_dstrcat + (selq_post, + " LEFT OUTER JOIN main.meta_data AS mt ON sel.id = mt.id AND mt.key = %d", + DT_METADATA_XMP_DC_TITLE); + } + if(collection->params.sorts[DT_COLLECTION_SORT_DESCRIPTION]) + { + selq_post = dt_util_dstrcat + (selq_post, + " LEFT OUTER JOIN main.meta_data AS md ON sel.id = md.id AND md.key = %d", + DT_METADATA_XMP_DC_DESCRIPTION); + } } - /* build sort order part */ - if(!(collection->params.query_flags & COLLECTION_QUERY_USE_ONLY_WHERE_EXT) - && (collection->params.query_flags & COLLECTION_QUERY_USE_SORT)) + if(collection->params.query_flags & COLLECTION_QUERY_USE_SORT) { sq = dt_collection_get_sort_query(collection); } /* store the new query */ query - = dt_util_dstrcat(query, "%s%s%s %s%s", selq_pre, wq, selq_post ? selq_post : "", sq ? sq : "", + = dt_util_dstrcat(query, "%s%s%s %s%s", + selq_pre, wq, selq_post, sq ? sq : "", (collection->params.query_flags & COLLECTION_QUERY_USE_LIMIT) ? " " LIMIT_QUERY : ""); query_no_group - = dt_util_dstrcat(query_no_group, "%s%s%s %s%s", selq_pre, wq_no_group, - selq_post ? selq_post : "", sq ? sq : "", + = dt_util_dstrcat(query_no_group, "%s%s%s %s%s", + selq_pre, wq_no_group, selq_post, sq ? sq : "", (collection->params.query_flags & COLLECTION_QUERY_USE_LIMIT) ? " " LIMIT_QUERY : ""); result = _dt_collection_store(collection, query, query_no_group); @@ -491,10 +391,11 @@ g_free(query); g_free(query_no_group); - /* update the cached count. collection isn't a real const anyway, we are writing to it in - * _dt_collection_store, too. */ + /* update the cached count. collection isn't a real const anyway, we + * are writing to it in _dt_collection_store, too. */ ((dt_collection_t *)collection)->count = UINT32_MAX; - ((dt_collection_t *)collection)->count_no_group = _dt_collection_compute_count(collection, TRUE); + ((dt_collection_t *)collection)->count_no_group = + _dt_collection_compute_count(collection, TRUE); dt_collection_hint_message(collection); _collection_update_aspect_ratio(collection); @@ -515,7 +416,8 @@ params->film_id = dt_conf_get_int("plugins/collection/film_id"); params->filter_flags = dt_conf_get_int("plugins/collection/filter_flags"); dt_collection_update_query(collection, - DT_COLLECTION_CHANGE_NEW_QUERY, DT_COLLECTION_PROP_UNDEF, NULL); + DT_COLLECTION_CHANGE_NEW_QUERY, + DT_COLLECTION_PROP_UNDEF, NULL); } const gchar *dt_collection_get_query(const dt_collection_t *collection) @@ -538,7 +440,8 @@ return collection->params.filter_flags; } -void dt_collection_set_filter_flags(const dt_collection_t *collection, const uint32_t flags) +void dt_collection_set_filter_flags(const dt_collection_t *collection, + const uint32_t flags) { dt_collection_params_t *params = (dt_collection_params_t *)&collection->params; params->filter_flags = flags; @@ -549,13 +452,15 @@ return collection->params.query_flags; } -void dt_collection_set_query_flags(const dt_collection_t *collection, const uint32_t flags) +void dt_collection_set_query_flags(const dt_collection_t *collection, + const uint32_t flags) { dt_collection_params_t *params = (dt_collection_params_t *)&collection->params; params->query_flags = flags; } -gchar *dt_collection_get_extended_where(const dt_collection_t *collection, const int exclude) +gchar *dt_collection_get_extended_where(const dt_collection_t *collection, + const int exclude) { gchar *complete_string = NULL; @@ -566,7 +471,8 @@ snprintf(confname, sizeof(confname), "plugins/lighttable/collect/mode%1d", exclude); const int mode = dt_conf_get_int(confname); // we only want collect rules, not filtering ones - const int nb_rules = CLAMP(dt_conf_get_int("plugins/lighttable/collect/num_rules"), 1, 10); + const int nb_rules = CLAMP(dt_conf_get_int("plugins/lighttable/collect/num_rules"), + 1, 10); for(int i = 0; (i < nb_rules && collection->where_ext[i] != NULL); i++) { // exclude the one rule from extended where @@ -579,9 +485,10 @@ else { // WHERE part is composed by (COLLECT) AND (FILTERING) - // first, the COLLECT PART (never empty, use 1=1 in this case) + // first, the COLLECT PART (can be empty) complete_string = g_strdup(""); - const int nb_rules = CLAMP(dt_conf_get_int("plugins/lighttable/collect/num_rules"), 1, 10); + const int nb_rules = CLAMP(dt_conf_get_int("plugins/lighttable/collect/num_rules"), + 1, 10); gchar *rules_txt = g_strdup(""); for(int i = 0; (i < nb_rules && collection->where_ext[i] != NULL); i++) @@ -590,13 +497,13 @@ } if(g_strcmp0(rules_txt, "")) complete_string = dt_util_dstrcat(complete_string, "(%s)", rules_txt); - else - complete_string = dt_util_dstrcat(complete_string, "1=1"); + g_free(rules_txt); // and now the FILTERING part (can be empty) rules_txt = g_strdup(""); - const int nb_filters = CLAMP(dt_conf_get_int("plugins/lighttable/filtering/num_rules"), 0, 10); + const int nb_filters = CLAMP(dt_conf_get_int("plugins/lighttable/filtering/num_rules"), + 0, 10); for(int i = 0; (i < nb_filters && collection->where_ext[i + nb_rules] != NULL); i++) { @@ -604,7 +511,10 @@ } if(g_strcmp0(rules_txt, "")) - complete_string = dt_util_dstrcat(complete_string, " AND (%s)", rules_txt); + { + if(g_strcmp0(complete_string, "")) complete_string = dt_util_dstrcat(complete_string, " AND "); + complete_string = dt_util_dstrcat(complete_string, "(%s)", rules_txt); + } g_free(rules_txt); } @@ -617,7 +527,8 @@ return where_ext; } -void dt_collection_set_extended_where(const dt_collection_t *collection, gchar **extended_where) +void dt_collection_set_extended_where(const dt_collection_t *collection, + gchar **extended_where) { /* free extended where if already exists */ g_strfreev(collection->where_ext); @@ -626,13 +537,15 @@ ((dt_collection_t *)collection)->where_ext = g_strdupv(extended_where); } -void dt_collection_set_film_id(const dt_collection_t *collection, const int32_t film_id) +void dt_collection_set_film_id(const dt_collection_t *collection, + const int32_t film_id) { dt_collection_params_t *params = (dt_collection_params_t *)&collection->params; params->film_id = film_id; } -void dt_collection_set_tag_id(dt_collection_t *collection, const uint32_t tagid) +void dt_collection_set_tag_id(dt_collection_t *collection, + const uint32_t tagid) { collection->tagid = tagid; } @@ -656,7 +569,7 @@ // clang-format off gchar *query = g_strdup_printf( "SELECT id" - " FROM main.images" + " FROM main.images AS mi" " WHERE %s AND (aspect_ratio=0.0 OR aspect_ratio IS NULL)", where_ext); // clang-format on @@ -815,7 +728,7 @@ break; case DT_COLLECTION_SORT_ID: - sq = g_strdup_printf("mi.id%s", (sortorder) ? " DESC" : ""); + sq = g_strdup_printf("sel.id%s", (sortorder) ? " DESC" : ""); break; case DT_COLLECTION_SORT_COLOR: @@ -823,7 +736,7 @@ break; case DT_COLLECTION_SORT_GROUP: - sq = g_strdup_printf("group_id%s, mi.id-group_id != 0, mi.id", + sq = g_strdup_printf("group_id%s, sel.id-group_id != 0, sel.id", (sortorder) ? " DESC" : ""); break; @@ -837,11 +750,11 @@ break; case DT_COLLECTION_SORT_TITLE: - sq = g_strdup_printf("m.value%s", (sortorder) ? " DESC" : ""); + sq = g_strdup_printf("mt.value%s", (sortorder) ? " DESC" : ""); break; case DT_COLLECTION_SORT_DESCRIPTION: - sq = g_strdup_printf("m.value%s", (sortorder) ? " DESC" : ""); + sq = g_strdup_printf("md.value%s", (sortorder) ? " DESC" : ""); break; case DT_COLLECTION_SORT_ASPECT_RATIO: @@ -856,7 +769,7 @@ case DT_COLLECTION_SORT_NONE: default: /*fall through for default*/ // shouldn't happen - sq = g_strdup("mi.id"); + sq = g_strdup("sel.id"); break; } @@ -904,9 +817,10 @@ } // complete the query with fallback if needed - if(!filename) query = dt_util_dstrcat(query, ", filename%s", (first_order) ? " DESC" : ""); + if(!filename) query = dt_util_dstrcat(query, ", filename%s", + (first_order) ? " DESC" : ""); - query = dt_util_dstrcat(query, ", version%s", (first_order) ? " DESC" : ""); + query = dt_util_dstrcat(query, ", version ASC"); return query; } @@ -945,19 +859,10 @@ gchar *count_query = NULL; gchar *fq = g_strstr_len(query, strlen(query), "FROM"); - if((collection->params.query_flags & COLLECTION_QUERY_USE_ONLY_WHERE_EXT)) - { - gchar *where_ext = dt_collection_get_extended_where(collection, -1); - count_query = g_strdup_printf("SELECT COUNT(DISTINCT main.images.id)" - " FROM main.images AS mi %s", where_ext); - g_free(where_ext); - } - else - count_query = g_strdup_printf("SELECT COUNT(DISTINCT mi.id) %s", fq); + count_query = g_strdup_printf("SELECT COUNT(DISTINCT sel.id) %s", fq); DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), count_query, -1, &stmt, NULL); - if((collection->params.query_flags & COLLECTION_QUERY_USE_LIMIT) - && !(collection->params.query_flags & COLLECTION_QUERY_USE_ONLY_WHERE_EXT)) + if(collection->params.query_flags & COLLECTION_QUERY_USE_LIMIT) { DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, 0); DT_DEBUG_SQLITE3_BIND_INT(stmt, 2, -1); @@ -988,7 +893,8 @@ sqlite3_stmt *stmt = NULL; uint32_t count = 0; DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "SELECT COUNT(*) FROM main.selected_images", -1, &stmt, NULL); + "SELECT COUNT(*) FROM main.selected_images", + -1, &stmt, NULL); if(sqlite3_step(stmt) == SQLITE_ROW) count = sqlite3_column_int(stmt, 0); sqlite3_finalize(stmt); @@ -1000,7 +906,8 @@ sqlite3_stmt *stmt = NULL; uint32_t count = 0; DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "SELECT COUNT(*) FROM memory.collected_images", -1, &stmt, NULL); + "SELECT COUNT(*) FROM memory.collected_images", + -1, &stmt, NULL); if(sqlite3_step(stmt) == SQLITE_ROW) count = sqlite3_column_int(stmt, 0); sqlite3_finalize(stmt); @@ -1032,9 +939,10 @@ { if(collection->params.query_flags & COLLECTION_QUERY_USE_LIMIT) { - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "SELECT imgid FROM memory.collected_images LIMIT -1, ?1", - -1, &stmt, NULL); + DT_DEBUG_SQLITE3_PREPARE_V2 + (dt_database_get(darktable.db), + "SELECT imgid FROM memory.collected_images LIMIT -1, ?1", + -1, &stmt, NULL); DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, limit); } else @@ -1092,8 +1000,9 @@ operator can be any of "=", "<", ">", "<=", ">=" and "<>". range notation [x;y] can also be used - number and operator are returned as pointers to null terminated strings in g_mallocated - memory (to be g_free'd after use) - or NULL if no match is found. + number and operator are returned as pointers to null terminated + strings in g_mallocated memory (to be g_free'd after use) - or NULL + if no match is found. */ void dt_collection_split_operator_number(const gchar *input, char **number1, @@ -1144,7 +1053,8 @@ g_regex_unref(regex); } -static char *_dt_collection_compute_datetime(const char *operator, const char *input) +static char *_dt_collection_compute_datetime(const char *operator, + const char *input) { if(strlen(input) < 3) return NULL; @@ -1164,8 +1074,9 @@ datetime values should follow the pattern YYYY:MM:DD hh:mm:ss.sss but only year part is mandatory - datetime and operator are returned as pointers to null terminated strings in g_mallocated - memory (to be g_free'd after use) - or NULL if no match is found. + datetime and operator are returned as pointers to null terminated + strings in g_mallocated memory (to be g_free'd after use) - or NULL + if no match is found. */ void dt_collection_split_operator_datetime(const gchar *input, char **number1, @@ -1220,7 +1131,8 @@ // and we test the classic comparison operators // 2 elements : operator and date-time - regex = g_regex_new("^\\s*(=|<|>|<=|>=|<>)?\\s*(\\d{4}[:.\\d\\s]*)?\\s*%?\\s*$", 0, 0, NULL); + regex = g_regex_new("^\\s*(=|<|>|<=|>=|<>)?\\s*(\\d{4}[:.\\d\\s]*)?\\s*%?\\s*$", + 0, 0, NULL); g_regex_match_full(regex, input, -1, 0, 0, &match_info, NULL); match_count = g_match_info_get_match_count(match_info); @@ -1319,80 +1231,22 @@ g_regex_unref(regex); } -void dt_collection_get_makermodels(const gchar *filter, GList **sanitized, GList **exif) +static gchar *_add_wildcards(const gchar *text) { - sqlite3_stmt *stmt; - gchar *needle = NULL; - gboolean wildcard = FALSE; - - GHashTable *names = NULL; - if(sanitized) - names = g_hash_table_new(g_str_hash, g_str_equal); - - if(filter && filter[0] != '\0') - { - needle = g_utf8_strdown(filter, -1); - wildcard = (needle && needle[strlen(needle) - 1] == '%') ? TRUE : FALSE; - if(wildcard) - needle[strlen(needle) - 1] = '\0'; - } - - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "SELECT maker, model FROM main.images GROUP BY maker, model", - -1, &stmt, NULL); - while(sqlite3_step(stmt) == SQLITE_ROW) - { - const char *exif_maker = (char *)sqlite3_column_text(stmt, 0); - const char *exif_model = (char *)sqlite3_column_text(stmt, 1); - - gchar *makermodel = dt_collection_get_makermodel(exif_maker, exif_model); - - gchar *haystack = g_utf8_strdown(makermodel, -1); - if(!needle || (wildcard && g_strrstr(haystack, needle) != NULL) - || (!wildcard && !g_strcmp0(haystack, needle))) - { - if(exif) - { - // Append a two element list with maker and model - GList *inner_list = NULL; - inner_list = g_list_append(inner_list, g_strdup(exif_maker)); - inner_list = g_list_append(inner_list, g_strdup(exif_model)); - *exif = g_list_append(*exif, inner_list); - } - - if(sanitized) - { - gchar *key = g_strdup(makermodel); - g_hash_table_add(names, key); - } - } - g_free(haystack); - g_free(makermodel); - } - sqlite3_finalize(stmt); - g_free(needle); - - if(sanitized) - { - *sanitized = g_list_sort(g_hash_table_get_keys(names), (GCompareFunc) strcmp); - g_hash_table_destroy(names); - } -} + gchar *cam1 = NULL; + gchar *cam2 = NULL; + if(g_str_has_prefix(text, "\"")) + cam1 = g_utf8_substring(text, 1, strlen(text)); + else + cam1 = g_strdup_printf("%%%s", text); -gchar *dt_collection_get_makermodel(const char *exif_maker, const char *exif_model) -{ - char maker[64]; - char model[64]; - char alias[64]; - maker[0] = model[0] = alias[0] = '\0'; - dt_imageio_lookup_makermodel(exif_maker, exif_model, - maker, sizeof(maker), - model, sizeof(model), - alias, sizeof(alias)); + if(g_str_has_suffix(cam1, "\"")) + cam2 = g_utf8_substring(cam1, 0, strlen(cam1)-1); + else + cam2 = g_strdup_printf("%s%%", cam1); - // Create the makermodel by concatenation - gchar *makermodel = g_strdup_printf("%s %s", maker, model); - return makermodel; + g_free(cam1); + return cam2; } static gchar *get_query_string(const dt_collection_properties_t property, const gchar *text) @@ -1400,19 +1254,22 @@ char *escaped_text = sqlite3_mprintf("%q", text); const unsigned int escaped_length = strlen(escaped_text); gchar *query = NULL; + gchar **elems = NULL; switch(property) { case DT_COLLECTION_PROP_FILMROLL: // film roll if(!(*escaped_text)) // clang-format off - query = g_strdup_printf("(film_id IN (SELECT id FROM main.film_rolls WHERE folder LIKE '%s%%'))", - escaped_text); + query = g_strdup_printf + ("(film_id IN (SELECT id FROM main.film_rolls WHERE folder LIKE '%s%%'))", + escaped_text); // clang-format on else // clang-format off - query = g_strdup_printf("(film_id IN (SELECT id FROM main.film_rolls WHERE folder LIKE '%s'))", - escaped_text); + query = g_strdup_printf + ("(film_id IN (SELECT id FROM main.film_rolls WHERE folder LIKE '%s'))", + escaped_text); // clang-format on break; @@ -1423,26 +1280,30 @@ { escaped_text[escaped_length-1] = '\0'; // clang-format off - query = g_strdup_printf("(film_id IN (SELECT id FROM main.film_rolls WHERE folder LIKE '%s' OR folder LIKE '%s" - G_DIR_SEPARATOR_S "%%'))", - escaped_text, escaped_text); + query = g_strdup_printf + ("(film_id IN (SELECT id FROM main.film_rolls WHERE folder LIKE '%s' OR folder LIKE '%s" + G_DIR_SEPARATOR_S "%%'))", + escaped_text, escaped_text); // clang-format on } // replace |% at the end with /% to only show subfolders - else if((escaped_length > 1) && (strcmp(escaped_text+escaped_length-2, "|%") == 0 )) + else if((escaped_length > 1) + && (strcmp(escaped_text+escaped_length-2, "|%") == 0 )) { escaped_text[escaped_length-2] = '\0'; // clang-format off - query = g_strdup_printf("(film_id IN (SELECT id FROM main.film_rolls WHERE folder LIKE '%s" - G_DIR_SEPARATOR_S "%%'))", - escaped_text); + query = g_strdup_printf + ("(film_id IN (SELECT id FROM main.film_rolls WHERE folder LIKE '%s" + G_DIR_SEPARATOR_S "%%'))", + escaped_text); // clang-format on } else { // clang-format off - query = g_strdup_printf("(film_id IN (SELECT id FROM main.film_rolls WHERE folder LIKE '%s'))", - escaped_text); + query = g_strdup_printf + ("(film_id IN (SELECT id FROM main.film_rolls WHERE folder LIKE '%s'))", + escaped_text); // clang-format on } } @@ -1452,7 +1313,8 @@ { if(!(escaped_text && *escaped_text) || strcmp(escaped_text, "%") == 0) // clang-format off - query = g_strdup_printf("(id IN (SELECT imgid FROM main.color_labels WHERE color IS NOT NULL))"); + query = g_strdup_printf + ("(mi.id IN (SELECT imgid FROM main.color_labels WHERE color IS NOT NULL))"); // clang-format on else { @@ -1467,38 +1329,43 @@ { if(colors_set) // clang-format off - query = g_strdup_printf("(id IN (SELECT id FROM (SELECT imgid AS id, SUM(1 << color) AS mask" - " FROM main.color_labels GROUP BY imgid)" - " WHERE ((mask & %d) = %d) AND (mask & %d = 0)))", - colors_set, colors_set, colors_unset); + query = g_strdup_printf + ("(mi.id IN (SELECT id FROM (SELECT imgid AS id, SUM(1 << color) AS mask" + " FROM main.color_labels GROUP BY imgid)" + " WHERE ((mask & %d) = %d) AND (mask & %d = 0)))", + colors_set, colors_set, colors_unset); // clang-format on else if(colors_unset) // clang-format off - query = g_strdup_printf("(NOT id IN (SELECT id FROM (SELECT imgid AS id, SUM(1 << color) AS mask" - " FROM main.color_labels GROUP BY imgid)" - " WHERE ((mask & %d) <> 0)))", - colors_unset); + query = g_strdup_printf + ("(NOT mi.id IN (SELECT id" + " FROM (SELECT imgid AS id, SUM(1 << color) AS mask" + " FROM main.color_labels GROUP BY imgid)" + " WHERE ((mask & %d) <> 0)))", + colors_unset); // clang-format on } else // OR { if(!colors_unset) // clang-format off - query = g_strdup_printf("(id IN (SELECT id FROM (SELECT imgid AS id, SUM(1 << color) AS mask" - " FROM main.color_labels GROUP BY imgid)" - " WHERE ((mask & %d) <> 0)))", - colors_set); + query = g_strdup_printf + ("(mi.id IN (SELECT id FROM (SELECT imgid AS id, SUM(1 << color) AS mask" + " FROM main.color_labels GROUP BY imgid)" + " WHERE ((mask & %d) <> 0)))", + colors_set); // clang-format on else // clang-format off - query = g_strdup_printf("((id IN (SELECT id FROM (SELECT imgid AS id, SUM(1 << color) AS mask" - " FROM main.color_labels GROUP BY imgid)" - " WHERE ((mask & %d) <> 0))" - " OR id NOT IN (SELECT id FROM (SELECT imgid AS id, SUM(1 << color) AS mask" - " FROM main.color_labels GROUP BY imgid)" - " WHERE ((mask & %d) = %d))))", - colors_set, colors_unset, colors_unset); - // clang-format on + query = g_strdup_printf + ("((mi.id IN (SELECT id FROM (SELECT imgid AS id, SUM(1 << color) AS mask" + " FROM main.color_labels GROUP BY imgid)" + " WHERE ((mask & %d) <> 0))" + " OR id NOT IN (SELECT id FROM (SELECT imgid AS id, SUM(1 << color) AS mask" + " FROM main.color_labels GROUP BY imgid)" + " WHERE ((mask & %d) = %d))))", + colors_set, colors_unset, colors_unset); + // clang-format on } } else // fallback to the text version @@ -1515,7 +1382,8 @@ else if(strcmp(escaped_text, _("purple")) == 0) color = 4; // clang-format off - query = g_strdup_printf("(id IN (SELECT imgid FROM main.color_labels WHERE color=%d))", color); + query = g_strdup_printf + ("(mi.id IN (SELECT imgid FROM main.color_labels WHERE color=%d))", color); // clang-format on } } @@ -1531,15 +1399,18 @@ } else if(!g_strcmp0(escaped_text, _("auto applied")) || !g_strcmp0(escaped_text, "$AUTO_APPLIED")) { - query = g_strdup("(id IN (SELECT imgid FROM main.history_hash WHERE current_hash == auto_hash))"); + query = g_strdup("(mi.id IN (SELECT imgid" + " FROM main.history_hash" + " WHERE current_hash == auto_hash))"); } else if(!g_strcmp0(escaped_text, _("altered")) || !g_strcmp0(escaped_text, "$ALTERED")) { // clang-format off - query = g_strdup("(id IN (SELECT imgid " - "FROM main.history_hash " - "WHERE (basic_hash IS NULL OR current_hash != basic_hash) " - "AND (auto_hash IS NULL OR current_hash != auto_hash) ))"); + query = g_strdup + ("(mi.id IN (SELECT imgid " + " FROM main.history_hash " + " WHERE (basic_hash IS NULL OR current_hash != basic_hash) " + " AND (auto_hash IS NULL OR current_hash != auto_hash) ))"); // clang-format on } else // by default, we select all the images @@ -1566,18 +1437,19 @@ if(not_tagged || all_tagged) // clang-format off - query = g_strdup_printf("(id %s IN (SELECT id AS imgid FROM main.images " - "WHERE (longitude IS NOT NULL AND latitude IS NOT NULL))) ", + query = g_strdup_printf + ("(mi.id %s IN (SELECT id AS imgid FROM main.images" + " WHERE (longitude IS NOT NULL AND latitude IS NOT NULL))) ", all_tagged ? "" : "not"); // clang-format on else // clang-format off - query = g_strdup_printf("(id IN (SELECT id AS imgid FROM main.images " - "WHERE (longitude IS NOT NULL AND latitude IS NOT NULL))" - "AND id %s IN (SELECT imgid FROM main.tagged_images AS ti" - " JOIN data.tags AS t" - " ON t.id = ti.tagid" - " AND %s)) ", + query = g_strdup_printf + ("(mi.id IN (SELECT id AS imgid FROM main.images" + " WHERE (longitude IS NOT NULL AND latitude IS NOT NULL))" + " AND id %s IN (SELECT imgid FROM main.tagged_images AS ti" + " JOIN data.tags AS t ON t.id = ti.tagid" + " AND %s)) ", no_location ? "not" : "", name_clause); // clang-format on @@ -1585,11 +1457,13 @@ break; case DT_COLLECTION_PROP_LOCAL_COPY: // local copy - if(!g_strcmp0(escaped_text, _("not copied locally")) || !g_strcmp0(escaped_text, "$NO_LOCAL_COPY")) + if(!g_strcmp0(escaped_text, _("not copied locally")) + || !g_strcmp0(escaped_text, "$NO_LOCAL_COPY")) { query = g_strdup_printf("(flags & %d = 0) ", DT_IMAGE_LOCAL_COPY); } - else if(!g_strcmp0(escaped_text, _("copied locally")) || !g_strcmp0(escaped_text, "$LOCAL_COPY")) + else if(!g_strcmp0(escaped_text, _("copied locally")) + || !g_strcmp0(escaped_text, "$LOCAL_COPY")) { query = g_strdup_printf("(flags & %d) ", DT_IMAGE_LOCAL_COPY); } @@ -1607,7 +1481,8 @@ if(operator && strcmp(operator, "[]") == 0) { if(number1 && number2) - query = g_strdup_printf("((aspect_ratio >= %s) AND (aspect_ratio <= %s))", number1, number2); + query = g_strdup_printf("((aspect_ratio >= %s) AND (aspect_ratio <= %s))", + number1, number2); } else if(operator && number1) query = g_strdup_printf("(aspect_ratio %s %s)", operator, number1); @@ -1623,21 +1498,32 @@ break; case DT_COLLECTION_PROP_CAMERA: // camera - // Start query with a false statement to avoid special casing the first condition - query = g_strdup_printf("((1=0)"); - GList *lists = NULL; - dt_collection_get_makermodels(text, NULL, &lists); - for(GList *element = lists; element; element = g_list_next(element)) - { - GList *tuple = element->data; - char *clause = sqlite3_mprintf(" OR (maker = '%q' AND model = '%q')", tuple->data, tuple->next->data); - query = dt_util_dstrcat(query, "%s", clause); - sqlite3_free(clause); - g_free(tuple->data); - g_free(tuple->next->data); - g_list_free(tuple); + query = g_strdup("("); + // handle the possibility of multiple values + elems = g_strsplit(escaped_text, ",", -1); + for(int i = 0; i < g_strv_length(elems); i++) + { + // if its undefined + if(!g_strcmp0(elems[i], _("unnamed"))) + { + // clang-format off + query = dt_util_dstrcat(query, "%scamera_id IN (SELECT id" + " FROM main.cameras" + " WHERE (maker IS NULL AND model IS NULL)" + " OR (TRIM(maker)='' AND TRIM(model)=''))", + i>0?" OR ":""); + // clang-format on + } + else + { + gchar *cam = _add_wildcards(elems[i]); + query = dt_util_dstrcat(query, + "%scamera_id IN (SELECT id FROM main.cameras WHERE maker || ' ' || model LIKE '%s')", + i>0?" OR ":"", cam); + g_free(cam); + } } - g_list_free(lists); + g_strfreev(elems); query = dt_util_dstrcat(query, ")"); break; @@ -1649,8 +1535,9 @@ if(!strcmp(escaped_text, _("not tagged"))) { // clang-format off - query = g_strdup_printf("(id NOT IN (SELECT DISTINCT imgid FROM main.tagged_images " - "WHERE tagid NOT IN memory.darktable_tags))"); + query = g_strdup_printf + ("(mi.id NOT IN (SELECT DISTINCT imgid FROM main.tagged_images " + " WHERE tagid NOT IN memory.darktable_tags))"); // clang-format on } else if(is_insensitive) @@ -1661,18 +1548,21 @@ // without using a wildcard % which also would include similar named items escaped_text[escaped_length-1] = '\0'; // clang-format off - query = g_strdup_printf("(id IN (SELECT imgid FROM main.tagged_images WHERE tagid IN " - "(SELECT id FROM data.tags WHERE name LIKE '%s' OR name LIKE '%s|%%')))", - escaped_text, escaped_text); + query = g_strdup_printf + ("(mi.id IN (SELECT imgid FROM main.tagged_images" + " WHERE tagid IN (SELECT id FROM data.tags" + " WHERE name LIKE '%s' OR name LIKE '%s|%%')))", + escaped_text, escaped_text); // clang-format on } else { // default // clang-format off - query = g_strdup_printf("(id IN (SELECT imgid FROM main.tagged_images WHERE tagid IN " - "(SELECT id FROM data.tags WHERE name LIKE '%s')))", - escaped_text); + query = g_strdup_printf + ("(mi.id IN (SELECT imgid FROM main.tagged_images" + " WHERE tagid IN (SELECT id FROM data.tags WHERE name LIKE '%s')))", + escaped_text); // clang-format on } } @@ -1680,15 +1570,17 @@ { if((escaped_length > 0) && (escaped_text[escaped_length-1] == '*')) { - // shift-click adds an asterix * to include items in and under this hierarchy - // without using a wildcard % which also would include similar named items + // shift-click adds an asterix * to include items in and + // under this hierarchy without using a wildcard % which + // also would include similar named items escaped_text[escaped_length-1] = '\0'; // clang-format off - query = g_strdup_printf("(id IN (SELECT imgid FROM main.tagged_images WHERE tagid IN " - "(SELECT id FROM data.tags " - "WHERE name = '%s'" - " OR SUBSTR(name, 1, LENGTH('%s') + 1) = '%s|')))", - escaped_text, escaped_text, escaped_text); + query = g_strdup_printf + ("(mi.id IN (SELECT imgid FROM main.tagged_images" + " WHERE tagid IN (SELECT id FROM data.tags " + " WHERE name = '%s'" + " OR SUBSTR(name, 1, LENGTH('%s') + 1) = '%s|')))", + escaped_text, escaped_text, escaped_text); // clang-format on } else if((escaped_length > 0) && (escaped_text[escaped_length-1] == '%')) @@ -1696,18 +1588,22 @@ // ends with % or |% escaped_text[escaped_length-1] = '\0'; // clang-format off - query = g_strdup_printf("(id IN (SELECT imgid FROM main.tagged_images WHERE tagid IN " - "(SELECT id FROM data.tags WHERE SUBSTR(name, 1, LENGTH('%s')) = '%s')))", - escaped_text, escaped_text); + query = g_strdup_printf + ("(mi.id IN (SELECT imgid FROM main.tagged_images" + " WHERE tagid IN (SELECT id FROM data.tags" + " WHERE SUBSTR(name, 1, LENGTH('%s')) = '%s')))", + escaped_text, escaped_text); // clang-format on } else { // default // clang-format off - query = g_strdup_printf("(id IN (SELECT imgid FROM main.tagged_images WHERE tagid IN " - "(SELECT id FROM data.tags WHERE name = '%s')))", - escaped_text); + query = g_strdup_printf + ("(mi.id IN (SELECT imgid FROM main.tagged_images" + " WHERE tagid IN (SELECT id FROM data.tags" + " WHERE name = '%s')))", + escaped_text); // clang-format on } } @@ -1715,7 +1611,30 @@ break; case DT_COLLECTION_PROP_LENS: // lens - query = g_strdup_printf("(lens LIKE '%%%s%%')", escaped_text); + query = g_strdup("("); + // handle the possibility of multiple values + elems = g_strsplit(escaped_text, ",", -1); + for(int i = 0; i < g_strv_length(elems); i++) + { + if(!g_strcmp0(elems[i], _("unnamed"))) + { + query = dt_util_dstrcat + (query, + "%slens_id IN (SELECT id FROM main.lens WHERE name IS NULL OR TRIM(name)='' OR UPPER(TRIM(name))='N/A')", + i>0?" OR ":""); + } + else + { + gchar *lens = _add_wildcards(elems[i]); + query = dt_util_dstrcat(query, + "%slens_id IN (SELECT id FROM main.lens WHERE name LIKE '%s')", + i>0?" OR ":"", lens); + g_free(lens); + } + + } + g_strfreev(elems); + query = dt_util_dstrcat(query, ")"); break; case DT_COLLECTION_PROP_FOCAL_LENGTH: // focal length @@ -1726,13 +1645,17 @@ if(operator && strcmp(operator, "[]") == 0) { if(number1 && number2) - query = g_strdup_printf("((focal_length >= %s) AND (focal_length <= %s))", number1, number2); + query = g_strdup_printf + ("((focal_length >= %s) AND (focal_length <= %s))", + number1, number2); } else if(operator && number1) query = g_strdup_printf("(focal_length %s %s)", operator, number1); else if(number1) // clang-format off - query = g_strdup_printf("(CAST(focal_length AS INTEGER) = CAST(%s AS INTEGER))", number1); + query = g_strdup_printf + ("(CAST(focal_length AS INTEGER) = CAST(%s AS INTEGER))", + number1); // clang-format on else query = g_strdup_printf("(focal_length LIKE '%%%s%%')", escaped_text); @@ -1775,8 +1698,9 @@ { if(number1 && number2) // clang-format off - query = g_strdup_printf("((ROUND(aperture,1) >= %s) AND (ROUND(aperture,1) <= %s))", number1, - number2); + query = g_strdup_printf + ("((ROUND(aperture,1) >= %s) AND (ROUND(aperture,1) <= %s))", + number1, number2); // clang-format on } else if(operator && number1) @@ -1801,8 +1725,9 @@ { if(number1 && number2) // clang-format off - query = g_strdup_printf("((exposure >= %s - 1.0/100000) AND (exposure <= %s + 1.0/100000))", number1, - number2); + query = g_strdup_printf + ("((exposure >= %s - 1.0/100000) AND (exposure <= %s + 1.0/100000))", + number1, number2); // clang-format on } else if(operator && number1) @@ -1825,7 +1750,7 @@ case DT_COLLECTION_PROP_FILENAME: // filename { gchar *subquery = NULL; - gchar **elems = g_strsplit(escaped_text, "/", -1); + elems = g_strsplit(escaped_text, "/", -1); if(g_strv_length(elems) > 0) { // the main part @@ -1926,15 +1851,21 @@ if(strcmp(operator, "[]") == 0) { if(number1 && number2) - query = g_strdup_printf("((%s >= %" G_GINT64_FORMAT ") AND (%s <= %" G_GINT64_FORMAT "))", - colname, nb1, colname, nb2); + query = g_strdup_printf + ("((%s >= %" G_GINT64_FORMAT ") AND (%s <= %" G_GINT64_FORMAT "))", + colname, nb1, colname, nb2); } - else if((strcmp(operator, "=") == 0 || strcmp(operator, "") == 0) && number1 && number2) - query = g_strdup_printf("((%s >= %" G_GINT64_FORMAT ") AND (%s <= %" G_GINT64_FORMAT "))", - colname, nb1, colname, nb2); - else if(strcmp(operator, "<>") == 0 && number1 && number2) - query = g_strdup_printf("((%s < %" G_GINT64_FORMAT ") AND (%s > %" G_GINT64_FORMAT "))", - colname, nb1, colname, nb2); + else if((strcmp(operator, "=") == 0 + || strcmp(operator, "") == 0) + && number1 && number2) + query = g_strdup_printf + ("((%s >= %" G_GINT64_FORMAT ") AND (%s <= %" G_GINT64_FORMAT "))", + colname, nb1, colname, nb2); + else if(strcmp(operator, "<>") == 0 + && number1 && number2) + query = g_strdup_printf + ("((%s < %" G_GINT64_FORMAT ") AND (%s > %" G_GINT64_FORMAT "))", + colname, nb1, colname, nb2); else if(number1) query = g_strdup_printf("(%s %s %" G_GINT64_FORMAT ")", colname, operator, nb1); else @@ -1949,7 +1880,7 @@ case DT_COLLECTION_PROP_GROUPING: // grouping if(!g_strcmp0(escaped_text, "$NO_GROUP")) { - query = g_strdup("(id = group_id AND " + query = g_strdup("(mi.id = group_id AND " "NOT EXISTS(SELECT 1 AS group_count" " FROM main.images AS gc" " WHERE gc.group_id = mi.group_id AND gc.id != mi.id))"); @@ -1969,15 +1900,15 @@ } else if(!g_strcmp0(escaped_text, "$FOLLOWER")) { - query = g_strdup("(id != group_id)"); + query = g_strdup("(mi.id != group_id)"); } else if(!g_strcmp0(escaped_text, _("group leaders"))) // used in collect.c { - query = g_strdup("(id = group_id)"); + query = g_strdup("(mi.id = group_id)"); } else if(!g_strcmp0(escaped_text, _("group followers"))) // used in collect.c { - query = g_strdup("(id != group_id)"); + query = g_strdup("(mi.id != group_id)"); } else // by default, we select all the images { @@ -1988,10 +1919,10 @@ case DT_COLLECTION_PROP_MODULE: // dev module { // clang-format off - query = g_strdup_printf("(id IN (SELECT imgid AS id FROM main.history AS h " - " JOIN memory.darktable_iop_names AS m" - " ON m.operation = h.operation " - " WHERE h.enabled = 1 AND m.name LIKE '%s'))", + query = g_strdup_printf("(mi.id IN (SELECT imgid AS id FROM main.history AS h " + " JOIN memory.darktable_iop_names AS m" + " ON m.operation = h.operation " + " WHERE h.enabled = 1 AND m.name LIKE '%s'))", escaped_text); // clang-format on } @@ -2013,9 +1944,9 @@ } if(i < DT_IOP_ORDER_LAST) // clang-format off - query = g_strdup_printf("(id IN (SELECT imgid" - " FROM main.module_order" - " WHERE version = %d))", i); + query = g_strdup_printf("(mi.id IN (SELECT imgid" + " FROM main.module_order" + " WHERE version = %d))", i); // clang-format on else // clang-format off @@ -2029,13 +1960,18 @@ // clang-format off if(g_strcmp0(escaped_text, "%%") != 0) query = g_strdup_printf - ("(id IN (SELECT id FROM main.meta_data WHERE value LIKE '%s'" - " UNION SELECT imgid AS id FROM main.tagged_images AS ti, data.tags AS t" - " WHERE t.id=ti.tagid AND (t.name LIKE '%s' OR t.synonyms LIKE '%s')" - " UNION SELECT id FROM main.images" - " WHERE (filename LIKE '%s' OR maker LIKE '%s' OR model LIKE '%s')" - " UNION SELECT i.id FROM main.images AS i, main.film_rolls AS fr" - " WHERE fr.id=i.film_id AND fr.folder LIKE '%s'))", + ("(mi.id IN (SELECT id FROM main.meta_data WHERE value LIKE '%s'" + " UNION SELECT imgid AS id" + " FROM main.tagged_images AS ti, data.tags AS t" + " WHERE t.id=ti.tagid AND (t.name LIKE '%s' OR t.synonyms LIKE '%s')" + " UNION SELECT miu.id" + " FROM main.images AS miu, main.makers AS mk, main.models AS md" + " WHERE miu.maker_id = mk.id" + " AND miu.model_id = md.id" + " AND (filename LIKE '%s' OR mk.name LIKE '%s' OR md.name LIKE '%s')" + " UNION SELECT i.id" + " FROM main.images AS i, main.film_rolls AS fr" + " WHERE fr.id=i.film_id AND fr.folder LIKE '%s'))", escaped_text, escaped_text, escaped_text, escaped_text, escaped_text, escaped_text, escaped_text ); // clang-format on @@ -2062,8 +1998,9 @@ else { // non-rejected + star rating // clang-format off - query = g_strdup_printf("((flags & 8 == 0) AND (flags & 7 >= %s AND flags & 7 <= %s))", - number1, number2); + query = g_strdup_printf + ("((flags & 8 == 0) AND (flags & 7 >= %s AND flags & 7 <= %s))", + number1, number2); // clang-format on } } @@ -2073,7 +2010,8 @@ if(g_strcmp0(operator, "<=") == 0 || g_strcmp0(operator, "<") == 0) { // all below rating + rejected // clang-format off - query = g_strdup_printf("(flags & 8 == 8 OR flags & 7 %s %s)", operator, number1); + query = g_strdup_printf("(flags & 8 == 8 OR flags & 7 %s %s)", + operator, number1); // clang-format on } else if(g_strcmp0(operator, ">=") == 0 || g_strcmp0(operator, ">") == 0) @@ -2081,7 +2019,8 @@ if(atoi(number1) >= 0) { // non rejected above rating // clang-format off - query = g_strdup_printf("(flags & 8 == 0 AND flags & 7 %s %s)", operator, number1); + query = g_strdup_printf("(flags & 8 == 0 AND flags & 7 %s %s)", + operator, number1); // clang-format on } // otherwise no filter (rejected + all ratings) @@ -2094,7 +2033,8 @@ } else { // all except star rating (including rejected) - query = g_strdup_printf("(flags & 8 == 8 OR flags & 7 %s %s)", operator, number1); + query = g_strdup_printf("(flags & 8 == 8 OR flags & 7 %s %s)", + operator, number1); } } } @@ -2125,13 +2065,15 @@ dt_metadata_get_keyid_by_display_order(property - DT_COLLECTION_PROP_METADATA); if(strcmp(escaped_text, _("not defined")) != 0) // clang-format off - query = g_strdup_printf("(id IN (SELECT id FROM main.meta_data WHERE key = %d AND value " - " LIKE '%%%s%%'))", keyid, escaped_text); + query = g_strdup_printf + ("(mi.id IN (SELECT id FROM main.meta_data WHERE key = %d AND value " + " LIKE '%%%s%%'))", keyid, escaped_text); // clang-format on else // clang-format off - query = g_strdup_printf("(id NOT IN (SELECT id FROM main.meta_data WHERE key = %d))", - keyid); + query = g_strdup_printf + ("(mi.id NOT IN (SELECT id FROM main.meta_data WHERE key = %d))", + keyid); // clang-format off } } @@ -2173,7 +2115,8 @@ if(buf[0] == '$') buf++; } dt_collection_update_query(darktable.collection, - DT_COLLECTION_CHANGE_NEW_QUERY, DT_COLLECTION_PROP_UNDEF, NULL); + DT_COLLECTION_CHANGE_NEW_QUERY, + DT_COLLECTION_PROP_UNDEF, NULL); } void dt_collection_sort_serialize(char *buf, int bufsize) @@ -2199,9 +2142,11 @@ } } -int dt_collection_serialize(char *buf, int bufsize, const gboolean filtering) +int dt_collection_serialize(char *buf, int bufsize, + const gboolean filtering) { - const char *plugin_name = filtering ? "plugins/lighttable/filtering" : "plugins/lighttable/collect"; + const char *plugin_name = filtering + ? "plugins/lighttable/filtering" : "plugins/lighttable/collect"; char confname[200]; int c; snprintf(confname, sizeof(confname), "%s/num_rules", plugin_name); @@ -2248,7 +2193,8 @@ void dt_collection_deserialize(const char *buf, const gboolean filtering) { - const char *plugin_name = filtering ? "plugins/lighttable/filtering" : "plugins/lighttable/collect"; + const char *plugin_name = filtering + ? "plugins/lighttable/filtering" : "plugins/lighttable/collect"; char confname[200]; int num_rules = 0; sscanf(buf, "%d", &num_rules); @@ -2274,8 +2220,9 @@ char str[400]; for(int k = 0; k < num_rules; k++) { - const int n = (filtering) ? sscanf(buf, "%d:%d:%d:%d:%399[^$]", &mode, &item, &off, &top, str) - : sscanf(buf, "%d:%d:%399[^$]", &mode, &item, str); + const int n = (filtering) + ? sscanf(buf, "%d:%d:%d:%d:%399[^$]", &mode, &item, &off, &top, str) + : sscanf(buf, "%d:%d:%399[^$]", &mode, &item, str); if((!filtering && n == 3) || (filtering && n == 5)) { snprintf(confname, sizeof(confname), "%s/mode%1d", plugin_name, k); @@ -2313,7 +2260,49 @@ } } dt_collection_update_query(darktable.collection, - DT_COLLECTION_CHANGE_NEW_QUERY, DT_COLLECTION_PROP_UNDEF, NULL); + DT_COLLECTION_CHANGE_NEW_QUERY, + DT_COLLECTION_PROP_UNDEF, NULL); +} + +static void _get_query_part(const dt_collection_properties_t property, + const gchar *text, + const int mode, + const gboolean off, + int *nb, + char **query_part) +{ + char *conj[] = { "AND", "OR", "AND NOT" }; + if(off) + { + *query_part = g_strdup(""); + } + else if(!text || text[0] == '\0') + { + if(mode == 1) // for OR show all + { + if(*nb == 0) + *query_part = g_strdup(" 1=1"); + else + *query_part = g_strdup(" OR 1=1"); + (*nb)++; + } + else + *query_part = g_strdup(""); + } + else + { + gchar *query = get_query_string(property, text); + + if(*nb == 0 && mode == 2) + *query_part = g_strdup_printf(" 1=1 AND NOT %s", query); + else if(*nb == 0) + *query_part = g_strdup_printf(" %s", query); + else + *query_part = g_strdup_printf(" %s %s", conj[mode], query); + + g_free(query); + (*nb)++; + } } void dt_collection_update_query(const dt_collection_t *collection, @@ -2322,7 +2311,8 @@ GList *list) { int next = -1; - if(!collection->clone && query_change == DT_COLLECTION_CHANGE_NEW_QUERY && darktable.gui) + if(!collection->clone && query_change == DT_COLLECTION_CHANGE_NEW_QUERY + && darktable.gui) { // if the query has changed, we reset the expanded group darktable.gui->expanded_group_id = NO_IMGID; @@ -2369,7 +2359,8 @@ } sqlite3_finalize(stmt2); g_free(query); - // 3. if next is still unvalid, let's try to find the first untouched image BEFORE the list + // 3. if next is still unvalid, let's try to find the first + // untouched image BEFORE the list if(next < 0) { // clang-format off @@ -2401,7 +2392,6 @@ const int _n_f = dt_conf_get_int("plugins/lighttable/filtering/num_rules"); const int num_rules = CLAMP(_n_r, 1, 10); const int num_filters = MIN(_n_f, 10); - char *conj[] = { "AND", "OR", "AND NOT" }; gchar **query_parts = g_new(gchar *, num_rules + num_filters + 1); query_parts[num_rules + num_filters] = NULL; @@ -2417,33 +2407,8 @@ snprintf(confname, sizeof(confname), "plugins/lighttable/collect/mode%1d", i); const int mode = dt_conf_get_int(confname); - if(!text || text[0] == '\0') - { - if(mode == 1) // for OR show all - { - if(nb == 0) - query_parts[i] = g_strdup(" 1=1"); - else - query_parts[i] = g_strdup(" OR 1=1"); - nb++; - } - else - query_parts[i] = g_strdup(""); - } - else - { - gchar *query = get_query_string(property, text); - - if(nb == 0 && mode == 2) - query_parts[i] = g_strdup_printf(" 1=1 AND NOT %s", query); - else if(nb == 0) - query_parts[i] = g_strdup_printf(" %s", query); - else - query_parts[i] = g_strdup_printf(" %s %s", conj[mode], query); + _get_query_part(property, text, mode, FALSE, &nb, &query_parts[i]); - g_free(query); - nb++; - } g_free(text); } @@ -2460,28 +2425,8 @@ snprintf(confname, sizeof(confname), "plugins/lighttable/filtering/off%1d", i); const int off = dt_conf_get_int(confname); - if(off || !text || text[0] == '\0') - { - if(!off && mode == 1) // for OR show all - { - query_parts[i + num_rules] = g_strdup(" OR 1=1"); - nb++; - } - else - query_parts[i + num_rules] = g_strdup(""); - } - else - { - gchar *query = get_query_string(property, text); - - if(nb == 0) - query_parts[i + num_rules] = g_strdup_printf(" %s", query); - else - query_parts[i + num_rules] = g_strdup_printf(" %s %s", conj[mode], query); + _get_query_part(property, text, mode, off, &nb, &query_parts[i + num_rules]); - g_free(query); - nb++; - } g_free(text); } @@ -2512,7 +2457,8 @@ { gchar *complete_query = g_strdup_printf("DELETE FROM main.selected_images" " WHERE imgid NOT IN (%s)", cquery); - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), complete_query, -1, &stmt, NULL); + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + complete_query, -1, &stmt, NULL); DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, 0); DT_DEBUG_SQLITE3_BIND_INT(stmt, 2, -1); sqlite3_step(stmt); @@ -2532,7 +2478,8 @@ { dt_collection_memory_update(); DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, - DT_SIGNAL_COLLECTION_CHANGED, query_change, changed_property, + DT_SIGNAL_COLLECTION_CHANGED, + query_change, changed_property, list, next); } } @@ -2626,8 +2573,9 @@ return dt_collection_image_offset_with_collection(darktable.collection, imgid); } -static gboolean _property_is_collection_criterion(dt_collection_t *collection, - const enum dt_collection_properties_t prop) +static gboolean _property_is_collection_criterion + (dt_collection_t *collection, + const enum dt_collection_properties_t prop) { if(prop == DT_COLLECTION_PROP_UNDEF) return TRUE; @@ -2691,9 +2639,11 @@ collection->count_no_group = _dt_collection_compute_count(collection, TRUE); if(!collection->clone) { - if(old_count != collection->count_no_group) dt_collection_hint_message(collection); + if(old_count != collection->count_no_group) + dt_collection_hint_message(collection); dt_collection_update_query(collection, - DT_COLLECTION_CHANGE_NEW_QUERY, DT_COLLECTION_PROP_UNDEF, NULL); + DT_COLLECTION_CHANGE_NEW_QUERY, + DT_COLLECTION_PROP_UNDEF, NULL); } } @@ -2711,7 +2661,8 @@ : "SELECT position FROM main.images WHERE id = ?1"); // clang-format on - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), image_pos_query, -1, &stmt, NULL); + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + image_pos_query, -1, &stmt, NULL); DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, image_id); if(tagid) DT_DEBUG_SQLITE3_BIND_INT(stmt, 2, tagid); if(sqlite3_step(stmt) == SQLITE_ROW) @@ -2755,9 +2706,10 @@ /* move images with drag and drop * - * An int64 is used for the position index. The upper 31 bits define the initial order. - * The lower 32bit provide space to reorder images. That way only a small amount of images must be - * updated while reordering images. + * An int64 is used for the position index. The upper 31 bits define + * the initial order. The lower 32bit provide space to reorder + * images. That way only a small amount of images must be updated + * while reordering images. * * Example: (position values hex) * Initial order: @@ -2904,8 +2856,9 @@ } g_free(str); - // remove all subsequent history that have the same values - // we ensure to take care of all the items needed for both history. Display limit will be handled by each module + // remove all subsequent history that have the same values we ensure + // to take care of all the items needed for both history. Display + // limit will be handled by each module const int nbmax = MAX(dt_conf_get_int("plugins/lighttable/collect/history_max"), dt_conf_get_int("plugins/lighttable/recentcollect/max_items")); int move = 0; diff -Nru darktable-4.4.2/src/common/collection.h darktable-4.6.1/src/common/collection.h --- darktable-4.4.2/src/common/collection.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/collection.h 2024-02-16 17:31:09.000000000 +0000 @@ -30,8 +30,7 @@ COLLECTION_QUERY_SIMPLE = 0, // a query with only select and where statement COLLECTION_QUERY_USE_SORT = 1 << 0, // if query should include order by statement COLLECTION_QUERY_USE_LIMIT = 1 << 1, // if query should include "limit ?1,?2" part - COLLECTION_QUERY_USE_WHERE_EXT = 1 << 2, // if query should include extended where part - COLLECTION_QUERY_USE_ONLY_WHERE_EXT = 1 << 3 // if query should only use extended where part + COLLECTION_QUERY_USE_WHERE_EXT = 1 << 2 // if query should include extended where part } dt_collection_query_t; #define COLLECTION_QUERY_FULL (COLLECTION_QUERY_USE_SORT | COLLECTION_QUERY_USE_LIMIT) @@ -159,11 +158,6 @@ void dt_collection_free(const dt_collection_t *collection); /** fetch params for collection for storing. */ const dt_collection_params_t *dt_collection_params(const dt_collection_t *collection); -/** get the filtered map between sanitized makermodel and exif maker/model **/ -void dt_collection_get_makermodels(const gchar *filter, GList **sanitized, GList **exif); -/** get the sanitized makermodel for exif maker/model **/ -gchar *dt_collection_get_makermodel(const char *exif_maker, - const char *exif_model); /** get the generated query for collection */ const gchar *dt_collection_get_query(const dt_collection_t *collection); /** get the generated query for collection including the images hidden in groups */ diff -Nru darktable-4.4.2/src/common/color_harmony.c darktable-4.6.1/src/common/color_harmony.c --- darktable-4.4.2/src/common/color_harmony.c 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/common/color_harmony.c 2024-02-16 17:31:09.000000000 +0000 @@ -0,0 +1,117 @@ +/* + This file is part of darktable, + Copyright (C) 2023 darktable developers. + + darktable is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + darktable is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with darktable. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include "common/color_harmony.h" +#include "common/debug.h" + +void dt_color_harmony_init(dt_color_harmony_guide_t *layout) +{ + layout->type = DT_COLOR_HARMONY_NONE; + layout->rotation = 0; + layout->width = DT_COLOR_HARMONY_WIDTH_NORMAL; +} + +void dt_color_harmony_set(const dt_imgid_t imgid, + const dt_color_harmony_guide_t layout) +{ + sqlite3_stmt *stmt = NULL; + + if(layout.type == DT_COLOR_HARMONY_NONE) + { + DT_DEBUG_SQLITE3_PREPARE_V2 + (dt_database_get(darktable.db), + "DELETE FROM main.harmony_guide" + " WHERE imgid = ?1", + -1, &stmt, NULL); + } + else + { + DT_DEBUG_SQLITE3_PREPARE_V2 + (dt_database_get(darktable.db), + "INSERT OR REPLACE INTO main.harmony_guide" + " (imgid, type, rotation, width)" + " VALUES (?1, ?2, ?3, ?4)", + -1, &stmt, NULL); + + DT_DEBUG_SQLITE3_BIND_INT(stmt, 2, layout.type); + DT_DEBUG_SQLITE3_BIND_INT(stmt, 3, layout.rotation); + DT_DEBUG_SQLITE3_BIND_INT(stmt, 4, layout.width); + } + + DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, imgid); + + sqlite3_step(stmt); + sqlite3_finalize(stmt); + + // If inserted the proper link with the image table is done + // by the color_harmony_insert trigger. +} + +dt_harmony_guide_id_t dt_color_harmony_get_id(const dt_imgid_t imgid) +{ + dt_harmony_guide_id_t id = -1; + + sqlite3_stmt *stmt = NULL; + + DT_DEBUG_SQLITE3_PREPARE_V2 + (dt_database_get(darktable.db), + "SELECT imgid" + " FROM main.harmony_guide" + " WHERE imgid = ?1", + -1, &stmt, NULL); + + DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, imgid); + + if(sqlite3_step(stmt) == SQLITE_ROW) + { + id = sqlite3_column_int(stmt, 0); + } + + return id; +} + +gboolean dt_color_harmony_get(const dt_imgid_t imgid, + dt_color_harmony_guide_t *layout) +{ + sqlite3_stmt *stmt = NULL; + + DT_DEBUG_SQLITE3_PREPARE_V2 + (dt_database_get(darktable.db), + "SELECT type, rotation, width" + " FROM main.harmony_guide" + " WHERE main.harmony_guide.imgid = ?1", + -1, &stmt, NULL); + + DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, imgid); + + if(sqlite3_step(stmt) == SQLITE_ROW) + { + layout->type = sqlite3_column_int(stmt, 0); + layout->rotation = sqlite3_column_int(stmt, 1); + layout->width = sqlite3_column_int(stmt, 2); + return TRUE; + } + else + return FALSE; +} + +// clang-format off +// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py +// vim: shiftwidth=2 expandtab tabstop=2 cindent +// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; +// clang-format on diff -Nru darktable-4.4.2/src/common/color_harmony.h darktable-4.6.1/src/common/color_harmony.h --- darktable-4.4.2/src/common/color_harmony.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/common/color_harmony.h 2024-02-16 17:31:09.000000000 +0000 @@ -0,0 +1,86 @@ +/* + This file is part of darktable, + Copyright (C) 2023 darktable developers. + + darktable is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + darktable is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with darktable. If not, see <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "common/darktable.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +typedef enum _color_harmony_type_t +{ + DT_COLOR_HARMONY_NONE = 0, + DT_COLOR_HARMONY_MONOCHROMATIC, + DT_COLOR_HARMONY_ANALOGOUS, + DT_COLOR_HARMONY_ANALOGOUS_COMPLEMENTARY, + DT_COLOR_HARMONY_COMPLEMENTARY, + DT_COLOR_HARMONY_SPLIT_COMPLEMENTARY, + DT_COLOR_HARMONY_DYAD, + DT_COLOR_HARMONY_TRIAD, + DT_COLOR_HARMONY_TETRAD, + DT_COLOR_HARMONY_SQUARE, + DT_COLOR_HARMONY_N // needs to be the last one +} dt_color_harmony_type_t; + +typedef enum dt_color_harmony_width_t +{ + DT_COLOR_HARMONY_WIDTH_NORMAL = 0, + DT_COLOR_HARMONY_WIDTH_LARGE, + DT_COLOR_HARMONY_WIDTH_NARROW, + DT_COLOR_HARMONY_WIDTH_LINE, + DT_COLOR_HARMONY_WIDTH_N // needs to be the last one +} dt_color_harmony_width_t; + +typedef struct _color_harmony_t +{ + dt_color_harmony_type_t type; + int rotation; + dt_color_harmony_width_t width; +} dt_color_harmony_guide_t; + +typedef int32_t dt_harmony_guide_id_t; + +// init layout to default value +void dt_color_harmony_init(dt_color_harmony_guide_t *layout); + +// record color harmony in db for imgid +void dt_color_harmony_set(const dt_imgid_t imgid, + const dt_color_harmony_guide_t layout); + +// get harmony id for the given image, -1 if there is no harmony recorded +dt_harmony_guide_id_t dt_color_harmony_get_id(const dt_imgid_t imgid); + +// get color harmony for imgid, return FALSE if not found in db +gboolean dt_color_harmony_get(const dt_imgid_t imgid, + dt_color_harmony_guide_t *layout); + +#ifdef __cplusplus +} // extern "C" +#endif /* __cplusplus */ + +// clang-format off +// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py +// vim: shiftwidth=2 expandtab tabstop=2 cindent +// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; +// clang-format on diff -Nru darktable-4.4.2/src/common/color_picker.c darktable-4.6.1/src/common/color_picker.c --- darktable-4.4.2/src/common/color_picker.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/color_picker.c 2024-02-16 17:31:09.000000000 +0000 @@ -281,7 +281,7 @@ const dt_iop_colorspace_type_t picker_cst, const dt_iop_order_iccprofile_info_t *const profile) { - dt_times_t start_time = { 0 }, end_time = { 0 }; + dt_times_t start_time = { 0 }; dt_get_perf_times(&start_time); if(dsc->channels == 4u) @@ -301,7 +301,7 @@ // legitimately negative // FIXME: this blurs whole image even when just a bit is sampled in the // case of CPU path - blur_2D_Bspline(pixel, denoised, tempbuf, roi->width, roi->height, 1, FALSE); + blur_2D_Bspline(pixel, denoised, tempbuf, padded_size, roi->width, roi->height, 1, FALSE); dt_free_align(tempbuf); source = denoised; } @@ -362,15 +362,11 @@ else dt_unreachable_codepath(); - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_get_times(&end_time); - dt_print(DT_DEBUG_ALWAYS, - "colorpicker stats reading %u channels (filters %u) cst %d -> %d " - "size %zu denoised %d took %.3f secs (%.3f CPU)\n", - dsc->channels, dsc->filters, image_cst, picker_cst, _box_size(box), denoise, - end_time.clock - start_time.clock, end_time.user - start_time.user); - } + dt_print(DT_DEBUG_PERF, + "colorpicker stats reading %u channels (filters %u) cst %d -> %d " + "size %zu denoised %d took %.3f secs (%.3f CPU)\n", + dsc->channels, dsc->filters, image_cst, picker_cst, _box_size(box), denoise, + dt_get_lap_time(&start_time.clock), dt_get_lap_utime(&start_time.user)); } // clang-format off diff -Nru darktable-4.4.2/src/common/colorlabels.c darktable-4.6.1/src/common/colorlabels.c --- darktable-4.4.2/src/common/colorlabels.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/colorlabels.c 2024-02-16 17:31:09.000000000 +0000 @@ -289,8 +289,7 @@ dt_colorlabels_toggle_label_on_list(imgs, element ? element - 1 : 5, TRUE); // if we are in darkroom we show a message as there might be no other indication - const dt_view_t *v = dt_view_manager_get_current_view(darktable.view_manager); - if(v->view(v) == DT_VIEW_DARKROOM && g_list_is_singleton(imgs) && darktable.develop->preview_pipe) + if(dt_view_get_current() == DT_VIEW_DARKROOM && g_list_is_singleton(imgs) && darktable.develop->preview_pipe) { // we verify that the image is the active one const int id = GPOINTER_TO_INT(imgs->data); diff -Nru darktable-4.4.2/src/common/colorspaces.c darktable-4.6.1/src/common/colorspaces.c --- darktable-4.4.2/src/common/colorspaces.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/colorspaces.c 2024-02-16 17:31:09.000000000 +0000 @@ -16,10 +16,12 @@ along with darktable. If not, see <http://www.gnu.org/licenses/>. */ +#include "common/colorspaces_inline_conversions.h" #include "common/colorspaces.h" #include "common/colormatrices.c" #include "common/darktable.h" #include "common/debug.h" +#include "common/dttypes.h" #include "common/file_location.h" #include "common/math.h" #include "common/matrices.h" @@ -29,6 +31,7 @@ #include "control/control.h" #include "develop/imageop.h" +#include <lcms2.h> #include <strings.h> #ifdef USE_COLORDGTK @@ -98,13 +101,19 @@ cmsCIEXYZTRIPLE Rec709_Primaries_Prequantized; -static const dt_colorspaces_color_profile_t *_get_profile(dt_colorspaces_t *self, - dt_colorspaces_color_profile_type_t type, - const char *filename, - dt_colorspaces_profile_direction_t direction); - -static int dt_colorspaces_get_matrix_from_profile(cmsHPROFILE prof, dt_colormatrix_t matrix, float *lutr, float *lutg, - float *lutb, const int lutsize, const int input) +static const dt_colorspaces_color_profile_t *_get_profile + (dt_colorspaces_t *self, + dt_colorspaces_color_profile_type_t type, + const char *filename, + dt_colorspaces_profile_direction_t direction); + +static int dt_colorspaces_get_matrix_from_profile(cmsHPROFILE prof, + dt_colormatrix_t matrix, + float *lutr, + float *lutg, + float *lutb, + const int lutsize, + const int input) { // create an OpenCL processable matrix + tone curves from an cmsHPROFILE: // NOTE: may be invoked with matrix and LUT pointers set to null to find @@ -135,14 +144,21 @@ cmsCIEXYZ *green_color = cmsReadTag(prof, cmsSigGreenColorantTag); cmsCIEXYZ *blue_color = cmsReadTag(prof, cmsSigBlueColorantTag); - if(!red_curve || !green_curve || !blue_curve || !red_color || !green_color || !blue_color) return 2; + if(!red_curve + || !green_curve + || !blue_curve + || !red_color + || !green_color + || !blue_color) + return 2; dt_colormatrix_t matrix_tmp = { { red_color->X, green_color->X, blue_color->X }, { red_color->Y, green_color->Y, blue_color->Y }, { red_color->Z, green_color->Z, blue_color->Z } }; - // some camera ICC profiles claim to have color locations for red, green and blue base colors defined, - // but in fact these are all set to zero. we catch this case here. + // some camera ICC profiles claim to have color locations for red, + // green and blue base colors defined, but in fact these are all set + // to zero. we catch this case here. float sum = 0.0f; for(int k1 = 0; k1 < 3; k1++) for(int k2 = 0; k2 < 3; k2++) @@ -155,15 +171,18 @@ if(cmsIsToneCurveLinear(red_curve)) lutr[0] = -1.0f; else - for(int k = 0; k < lutsize; k++) lutr[k] = cmsEvalToneCurveFloat(red_curve, k / (lutsize - 1.0f)); + for(int k = 0; k < lutsize; k++) + lutr[k] = cmsEvalToneCurveFloat(red_curve, k / (lutsize - 1.0f)); if(cmsIsToneCurveLinear(green_curve)) lutg[0] = -1.0f; else - for(int k = 0; k < lutsize; k++) lutg[k] = cmsEvalToneCurveFloat(green_curve, k / (lutsize - 1.0f)); + for(int k = 0; k < lutsize; k++) + lutg[k] = cmsEvalToneCurveFloat(green_curve, k / (lutsize - 1.0f)); if(cmsIsToneCurveLinear(blue_curve)) lutb[0] = -1.0f; else - for(int k = 0; k < lutsize; k++) lutb[k] = cmsEvalToneCurveFloat(blue_curve, k / (lutsize - 1.0f)); + for(int k = 0; k < lutsize; k++) + lutb[k] = cmsEvalToneCurveFloat(blue_curve, k / (lutsize - 1.0f)); } else { @@ -190,15 +209,18 @@ if(cmsIsToneCurveLinear(red_curve)) lutr[0] = -1.0f; else - for(int k = 0; k < lutsize; k++) lutr[k] = cmsEvalToneCurveFloat(rev_red, k / (lutsize - 1.0f)); + for(int k = 0; k < lutsize; k++) + lutr[k] = cmsEvalToneCurveFloat(rev_red, k / (lutsize - 1.0f)); if(cmsIsToneCurveLinear(green_curve)) lutg[0] = -1.0f; else - for(int k = 0; k < lutsize; k++) lutg[k] = cmsEvalToneCurveFloat(rev_green, k / (lutsize - 1.0f)); + for(int k = 0; k < lutsize; k++) + lutg[k] = cmsEvalToneCurveFloat(rev_green, k / (lutsize - 1.0f)); if(cmsIsToneCurveLinear(blue_curve)) lutb[0] = -1.0f; else - for(int k = 0; k < lutsize; k++) lutb[k] = cmsEvalToneCurveFloat(rev_blue, k / (lutsize - 1.0f)); + for(int k = 0; k < lutsize; k++) + lutb[k] = cmsEvalToneCurveFloat(rev_blue, k / (lutsize - 1.0f)); } cmsFreeToneCurve(rev_red); @@ -212,14 +234,22 @@ return 0; } -int dt_colorspaces_get_matrix_from_input_profile(cmsHPROFILE prof, dt_colormatrix_t matrix, float *lutr, float *lutg, - float *lutb, const int lutsize) +int dt_colorspaces_get_matrix_from_input_profile(cmsHPROFILE prof, + dt_colormatrix_t matrix, + float *lutr, + float *lutg, + float *lutb, + const int lutsize) { return dt_colorspaces_get_matrix_from_profile(prof, matrix, lutr, lutg, lutb, lutsize, 1); } -int dt_colorspaces_get_matrix_from_output_profile(cmsHPROFILE prof, dt_colormatrix_t matrix, float *lutr, float *lutg, - float *lutb, const int lutsize) +int dt_colorspaces_get_matrix_from_output_profile(cmsHPROFILE prof, + dt_colormatrix_t matrix, + float *lutr, + float *lutg, + float *lutb, + const int lutsize) { return dt_colorspaces_get_matrix_from_profile(prof, matrix, lutr, lutg, lutb, lutsize, 0); } @@ -254,9 +284,12 @@ cmsCloseProfile(profile); } -static cmsHPROFILE _create_lcms_profile(const char *desc, const char *dmdd, - const cmsCIExyY *whitepoint, const cmsCIExyYTRIPLE *primaries, cmsToneCurve *trc, - gboolean v2) +static cmsHPROFILE _create_lcms_profile(const char *desc, + const char *dmdd, + const cmsCIExyY *whitepoint, + const cmsCIExyYTRIPLE *primaries, + cmsToneCurve *trc, + const gboolean v2) { cmsMLU *mlu1 = cmsMLUalloc(NULL, 1); cmsMLU *mlu2 = cmsMLUalloc(NULL, 1); @@ -358,13 +391,15 @@ return result; } -static cmsHPROFILE _colorspaces_create_srgb_profile(gboolean v2) +static cmsHPROFILE _colorspaces_create_srgb_profile(const gboolean v2) { - cmsFloat64Number srgb_parameters[5] = { 2.4, 1.0 / 1.055, 0.055 / 1.055, 1.0 / 12.92, 0.04045 }; + cmsFloat64Number srgb_parameters[5] = + { 2.4, 1.0 / 1.055, 0.055 / 1.055, 1.0 / 12.92, 0.04045 }; cmsToneCurve *transferFunction = cmsBuildParametricToneCurve(NULL, 4, srgb_parameters); cmsHPROFILE profile = _create_lcms_profile("sRGB", "sRGB", - &D65xyY, &sRGB_Primaries, transferFunction, v2); + &D65xyY, &sRGB_Primaries, + transferFunction, v2); cmsFreeToneCurve(transferFunction); @@ -383,13 +418,16 @@ static cmsHPROFILE dt_colorspaces_create_brg_profile() { - cmsFloat64Number srgb_parameters[5] = { 2.4, 1.0 / 1.055, 0.055 / 1.055, 1.0 / 12.92, 0.04045 }; + cmsFloat64Number srgb_parameters[5] = + { 2.4, 1.0 / 1.055, 0.055 / 1.055, 1.0 / 12.92, 0.04045 }; cmsToneCurve *transferFunction = cmsBuildParametricToneCurve(NULL, 4, srgb_parameters); - cmsCIExyYTRIPLE BRG_Primaries = { sRGB_Primaries.Blue, sRGB_Primaries.Red, sRGB_Primaries.Green }; + cmsCIExyYTRIPLE BRG_Primaries = + { sRGB_Primaries.Blue, sRGB_Primaries.Red, sRGB_Primaries.Green }; cmsHPROFILE profile = _create_lcms_profile("BRG", "BRG", - &D65xyY, &BRG_Primaries, transferFunction, TRUE); + &D65xyY, &BRG_Primaries, + transferFunction, TRUE); cmsFreeToneCurve(transferFunction); @@ -398,11 +436,13 @@ static cmsHPROFILE dt_colorspaces_create_gamma_rec709_rgb_profile(void) { - cmsFloat64Number srgb_parameters[5] = { 1/0.45, 1.0 / 1.099, 0.099 / 1.099, 1.0 / 4.5, 0.081 }; + cmsFloat64Number srgb_parameters[5] = + { 1/0.45, 1.0 / 1.099, 0.099 / 1.099, 1.0 / 4.5, 0.081 }; cmsToneCurve *transferFunction = cmsBuildParametricToneCurve(NULL, 4, srgb_parameters); cmsHPROFILE profile = _create_lcms_profile("Gamma Rec709 RGB", "Gamma Rec709 RGB", - &D65xyY, &Rec709_Primaries, transferFunction, TRUE); + &D65xyY, &Rec709_Primaries, + transferFunction, TRUE); cmsFreeToneCurve(transferFunction); @@ -416,7 +456,8 @@ cmsToneCurve *transferFunction = cmsBuildGamma(NULL, 2.19921875); cmsHPROFILE profile = _create_lcms_profile("Adobe RGB (compatible)", "Adobe RGB", - &D65xyY, &Adobe_Primaries, transferFunction, TRUE); + &D65xyY, &Adobe_Primaries, + transferFunction, TRUE); cmsFreeToneCurve(transferFunction); @@ -441,17 +482,18 @@ const float gxyz = preset->gXYZ[0] + preset->gXYZ[1] + preset->gXYZ[2]; const float bxyz = preset->bXYZ[0] + preset->bXYZ[1] + preset->bXYZ[2]; cmsCIExyY WP = { preset->white[0] / wxyz, preset->white[1] / wxyz, 1.0 }; - cmsCIExyYTRIPLE XYZPrimaries = { { preset->rXYZ[0] / rxyz, preset->rXYZ[1] / rxyz, 1.0 }, - { preset->gXYZ[0] / gxyz, preset->gXYZ[1] / gxyz, 1.0 }, - { preset->bXYZ[0] / bxyz, preset->bXYZ[1] / bxyz, 1.0 } }; + cmsCIExyYTRIPLE XYZPrimaries = + { { preset->rXYZ[0] / rxyz, preset->rXYZ[1] / rxyz, 1.0 }, + { preset->gXYZ[0] / gxyz, preset->gXYZ[1] / gxyz, 1.0 }, + { preset->bXYZ[0] / bxyz, preset->bXYZ[1] / bxyz, 1.0 } }; cmsToneCurve *Gamma[3]; - cmsHPROFILE hp; Gamma[0] = Gamma[1] = Gamma[2] = cmsBuildGamma(NULL, 1.0); - hp = cmsCreateRGBProfile(&WP, &XYZPrimaries, Gamma); + cmsHPROFILE hp = cmsCreateRGBProfile(&WP, &XYZPrimaries, Gamma); cmsFreeToneCurve(Gamma[0]); - if(hp == NULL) return NULL; + if(hp == NULL) + return NULL; char name[512]; snprintf(name, sizeof(name), "darktable alternate %s", makermodel); @@ -491,17 +533,18 @@ const float gxyz = preset->gXYZ[0] + preset->gXYZ[1] + preset->gXYZ[2]; const float bxyz = preset->bXYZ[0] + preset->bXYZ[1] + preset->bXYZ[2]; cmsCIExyY WP = { preset->white[0] / wxyz, preset->white[1] / wxyz, 1.0 }; - cmsCIExyYTRIPLE XYZPrimaries = { { preset->rXYZ[0] / rxyz, preset->rXYZ[1] / rxyz, 1.0 }, - { preset->gXYZ[0] / gxyz, preset->gXYZ[1] / gxyz, 1.0 }, - { preset->bXYZ[0] / bxyz, preset->bXYZ[1] / bxyz, 1.0 } }; + cmsCIExyYTRIPLE XYZPrimaries = + { { preset->rXYZ[0] / rxyz, preset->rXYZ[1] / rxyz, 1.0 }, + { preset->gXYZ[0] / gxyz, preset->gXYZ[1] / gxyz, 1.0 }, + { preset->bXYZ[0] / bxyz, preset->bXYZ[1] / bxyz, 1.0 } }; cmsToneCurve *Gamma[3]; - cmsHPROFILE hp; Gamma[0] = Gamma[1] = Gamma[2] = cmsBuildGamma(NULL, 1.0); - hp = cmsCreateRGBProfile(&WP, &XYZPrimaries, Gamma); + cmsHPROFILE hp = cmsCreateRGBProfile(&WP, &XYZPrimaries, Gamma); cmsFreeToneCurve(Gamma[0]); - if(hp == NULL) return NULL; + if(hp == NULL) + return NULL; char name[512]; snprintf(name, sizeof(name), "darktable vendor %s", makermodel); @@ -541,15 +584,15 @@ const float gxyz = preset->gXYZ[0] + preset->gXYZ[1] + preset->gXYZ[2]; const float bxyz = preset->bXYZ[0] + preset->bXYZ[1] + preset->bXYZ[2]; cmsCIExyY WP = { preset->white[0] / wxyz, preset->white[1] / wxyz, 1.0 }; - cmsCIExyYTRIPLE XYZPrimaries = { { preset->rXYZ[0] / rxyz, preset->rXYZ[1] / rxyz, 1.0 }, - { preset->gXYZ[0] / gxyz, preset->gXYZ[1] / gxyz, 1.0 }, - { preset->bXYZ[0] / bxyz, preset->bXYZ[1] / bxyz, 1.0 } }; + cmsCIExyYTRIPLE XYZPrimaries = + { { preset->rXYZ[0] / rxyz, preset->rXYZ[1] / rxyz, 1.0 }, + { preset->gXYZ[0] / gxyz, preset->gXYZ[1] / gxyz, 1.0 }, + { preset->bXYZ[0] / bxyz, preset->bXYZ[1] / bxyz, 1.0 } }; cmsToneCurve *Gamma[3]; - cmsHPROFILE hp; Gamma[0] = Gamma[1] = Gamma[2] = cmsBuildGamma(NULL, 1.0); - hp = cmsCreateRGBProfile(&WP, &XYZPrimaries, Gamma); + cmsHPROFILE hp = cmsCreateRGBProfile(&WP, &XYZPrimaries, Gamma); cmsFreeToneCurve(Gamma[0]); if(hp == NULL) return NULL; @@ -604,7 +647,8 @@ cmsToneCurve *transferFunction = cmsBuildGamma(NULL, 1.0); cmsHPROFILE profile = _create_lcms_profile("Linear Rec709 RGB", "Linear Rec709 RGB", - &D65xyY, &Rec709_Primaries, transferFunction, TRUE); + &D65xyY, &Rec709_Primaries, + transferFunction, TRUE); cmsFreeToneCurve(transferFunction); @@ -616,7 +660,8 @@ cmsToneCurve *transferFunction = cmsBuildGamma(NULL, 1.0); cmsHPROFILE profile = _create_lcms_profile("Linear Rec2020 RGB", "Linear Rec2020 RGB", - &D65xyY, &Rec2020_Primaries, transferFunction, TRUE); + &D65xyY, &Rec2020_Primaries, + transferFunction, TRUE); cmsFreeToneCurve(transferFunction); @@ -628,7 +673,8 @@ cmsToneCurve *transferFunction = _colorspaces_create_transfer(4096, _PQ_fct); cmsHPROFILE profile = _create_lcms_profile("PQ Rec2020 RGB", "PQ Rec2020 RGB", - &D65xyY, &Rec2020_Primaries, transferFunction, TRUE); + &D65xyY, &Rec2020_Primaries, + transferFunction, TRUE); cmsFreeToneCurve(transferFunction); @@ -640,7 +686,8 @@ cmsToneCurve *transferFunction = _colorspaces_create_transfer(4096, _HLG_fct); cmsHPROFILE profile = _create_lcms_profile("HLG Rec2020 RGB", "HLG Rec2020 RGB", - &D65xyY, &Rec2020_Primaries, transferFunction, TRUE); + &D65xyY, &Rec2020_Primaries, + transferFunction, TRUE); cmsFreeToneCurve(transferFunction); @@ -652,7 +699,8 @@ cmsToneCurve *transferFunction = _colorspaces_create_transfer(4096, _PQ_fct); cmsHPROFILE profile = _create_lcms_profile("PQ P3 RGB", "PQ P3 RGB", - &D65xyY, &P3_Primaries, transferFunction, TRUE); + &D65xyY, &P3_Primaries, + transferFunction, TRUE); cmsFreeToneCurve(transferFunction); @@ -664,7 +712,23 @@ cmsToneCurve *transferFunction = _colorspaces_create_transfer(4096, _HLG_fct); cmsHPROFILE profile = _create_lcms_profile("HLG P3 RGB", "HLG P3 RGB", - &D65xyY, &P3_Primaries, transferFunction, TRUE); + &D65xyY, &P3_Primaries, + transferFunction, TRUE); + + cmsFreeToneCurve(transferFunction); + + return profile; +} + +static cmsHPROFILE dt_colorspaces_create_display_p3_rgb_profile(void) +{ + cmsFloat64Number srgb_parameters[5] = + { 2.4, 1.0 / 1.055, 0.055 / 1.055, 1.0 / 12.92, 0.04045 }; + cmsToneCurve *transferFunction = cmsBuildParametricToneCurve(NULL, 4, srgb_parameters); + + cmsHPROFILE profile = _create_lcms_profile("Display P3 RGB", "Display P3 RGB", + &D65xyY, &P3_Primaries, + transferFunction, TRUE); cmsFreeToneCurve(transferFunction); @@ -676,7 +740,8 @@ cmsToneCurve *transferFunction = cmsBuildGamma(NULL, 1.0); cmsHPROFILE profile = _create_lcms_profile("Linear ProPhoto RGB", "Linear ProPhoto RGB", - &D50xyY, &ProPhoto_Primaries, transferFunction, TRUE); + &D50xyY, &ProPhoto_Primaries, + transferFunction, TRUE); cmsFreeToneCurve(transferFunction); @@ -688,17 +753,21 @@ cmsToneCurve *transferFunction = cmsBuildGamma(NULL, 1.0); // linear rgb with r and b swapped: - cmsCIExyYTRIPLE BGR_Primaries = { sRGB_Primaries.Blue, sRGB_Primaries.Green, sRGB_Primaries.Red }; + cmsCIExyYTRIPLE BGR_Primaries = + { sRGB_Primaries.Blue, sRGB_Primaries.Green, sRGB_Primaries.Red }; - cmsHPROFILE profile = _create_lcms_profile("Linear Infrared BGR", "darktable Linear Infrared BGR", - &D65xyY, &BGR_Primaries, transferFunction, FALSE); + cmsHPROFILE profile = _create_lcms_profile("Linear Infrared BGR", + "darktable Linear Infrared BGR", + &D65xyY, &BGR_Primaries, + transferFunction, FALSE); cmsFreeToneCurve(transferFunction); return profile; } -const dt_colorspaces_color_profile_t *dt_colorspaces_get_work_profile(const dt_imgid_t imgid) +const dt_colorspaces_color_profile_t *dt_colorspaces_get_work_profile + (const dt_imgid_t imgid) { // find the colorin module -- the pointer stays valid until darktable shuts down static const dt_iop_module_so_t *colorin = NULL; @@ -725,7 +794,11 @@ // clang-format off DT_DEBUG_SQLITE3_PREPARE_V2( dt_database_get(darktable.db), - "SELECT op_params FROM main.history WHERE imgid=?1 AND operation='colorin' ORDER BY num DESC LIMIT 1", -1, + "SELECT op_params" + " FROM main.history" + " WHERE imgid=?1 AND operation='colorin'" + " ORDER BY num" + " DESC LIMIT 1", -1, &stmt, NULL); // clang-format on DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, imgid); @@ -743,14 +816,17 @@ } // if all else fails -> fall back to linear Rec2020 RGB - if(!p) p = dt_colorspaces_get_profile(DT_COLORSPACE_LIN_REC2020, "", DT_PROFILE_DIRECTION_WORK); + if(!p) + p = dt_colorspaces_get_profile(DT_COLORSPACE_LIN_REC2020, "", + DT_PROFILE_DIRECTION_WORK); return p; } -const dt_colorspaces_color_profile_t *dt_colorspaces_get_output_profile(const dt_imgid_t imgid, - dt_colorspaces_color_profile_type_t over_type, - const char *over_filename) +const dt_colorspaces_color_profile_t *dt_colorspaces_get_output_profile + (const dt_imgid_t imgid, + dt_colorspaces_color_profile_type_t over_type, + const char *over_filename) { // find the colorout module -- the pointer stays valid until darktable shuts down static const dt_iop_module_so_t *colorout = NULL; @@ -771,9 +847,11 @@ if(over_type != DT_COLORSPACE_NONE) { - // return the profile specified in export. - // we have that in here to get rid of the if() check in all places calling this function. - p = dt_colorspaces_get_profile(over_type, over_filename, DT_PROFILE_DIRECTION_OUT | DT_PROFILE_DIRECTION_DISPLAY); + // return the profile specified in export. we have that in here + // to get rid of the if() check in all places calling this + // function. + p = dt_colorspaces_get_profile(over_type, over_filename, + DT_PROFILE_DIRECTION_OUT | DT_PROFILE_DIRECTION_DISPLAY); } else if(colorout && colorout->get_p) { @@ -783,7 +861,11 @@ // clang-format off DT_DEBUG_SQLITE3_PREPARE_V2( dt_database_get(darktable.db), - "SELECT op_params FROM main.history WHERE imgid=?1 AND operation='colorout' ORDER BY num DESC LIMIT 1", -1, + "SELECT op_params" + " FROM main.history" + " WHERE imgid=?1 AND operation='colorout'" + " ORDER BY num" + " DESC LIMIT 1", -1, &stmt, NULL); // clang-format on DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, imgid); @@ -794,8 +876,10 @@ dt_colorspaces_color_profile_type_t *type = colorout->get_p(params, "type"); char *filename = colorout->get_p(params, "filename"); - if(type && filename) p = dt_colorspaces_get_profile(*type, filename, - DT_PROFILE_DIRECTION_OUT | DT_PROFILE_DIRECTION_DISPLAY); + if(type && filename) + p = dt_colorspaces_get_profile + (*type, filename, + DT_PROFILE_DIRECTION_OUT | DT_PROFILE_DIRECTION_DISPLAY); } sqlite3_finalize(stmt); } @@ -810,9 +894,10 @@ static void dt_colorspaces_create_cmatrix(float cmatrix[4][3], float mat[3][3]) { // sRGB D65, the linear part: - static const dt_colormatrix_t rgb_to_xyz = { { 0.4124564f, 0.3575761f, 0.1804375f, 0.0f }, - { 0.2126729f, 0.7151522f, 0.0721750f, 0.0f }, - { 0.0193339f, 0.1191920f, 0.9503041f, 0.0f } }; + static const dt_colormatrix_t rgb_to_xyz = + { { 0.4124564f, 0.3575761f, 0.1804375f, 0.0f }, + { 0.2126729f, 0.7151522f, 0.0721750f, 0.0f }, + { 0.0193339f, 0.1191920f, 0.9503041f, 0.0f } }; for(int c = 0; c < 3; c++) { @@ -838,7 +923,10 @@ x[k] = mat[0][k] / norm; y[k] = mat[1][k] / norm; } - cmsCIExyYTRIPLE CameraPrimaries = { { x[0], y[0], 1.0 }, { x[1], y[1], 1.0 }, { x[2], y[2], 1.0 } }; + cmsCIExyYTRIPLE CameraPrimaries = + { { x[0], y[0], 1.0 }, + { x[1], y[1], 1.0 }, + { x[2], y[2], 1.0 } }; cmsHPROFILE profile; cmsCIExyY D65; @@ -848,7 +936,8 @@ Gamma[0] = Gamma[1] = Gamma[2] = cmsBuildGamma(NULL, 1.0); profile = cmsCreateRGBProfile(&D65, &CameraPrimaries, Gamma); cmsFreeToneCurve(Gamma[0]); - if(profile == NULL) return NULL; + if(profile == NULL) + return NULL; cmsSetProfileVersion(profile, 2.1); cmsMLU *mlu0 = cmsMLUalloc(NULL, 1); @@ -907,11 +996,15 @@ cmsSetColorSpace(rgb_profile, cmsSigRgbData); cmsSetPCS(rgb_profile, cmsSigXYZData); - // TODO: we still use prequantized primaries here, we will probably want to rework this - // part to create a profile using cmsCreateRGBProfile() as done in _create_lcms_profile(). - cmsWriteTag(rgb_profile, cmsSigRedColorantTag, (void *)&Rec709_Primaries_Prequantized.Red); - cmsWriteTag(rgb_profile, cmsSigGreenColorantTag, (void *)&Rec709_Primaries_Prequantized.Green); - cmsWriteTag(rgb_profile, cmsSigBlueColorantTag, (void *)&Rec709_Primaries_Prequantized.Blue); + // TODO: we still use prequantized primaries here, we will + // probably want to rework this part to create a profile using + // cmsCreateRGBProfile() as done in _create_lcms_profile(). + cmsWriteTag(rgb_profile, cmsSigRedColorantTag, + (void *)&Rec709_Primaries_Prequantized.Red); + cmsWriteTag(rgb_profile, cmsSigGreenColorantTag, + (void *)&Rec709_Primaries_Prequantized.Green); + cmsWriteTag(rgb_profile, cmsSigBlueColorantTag, + (void *)&Rec709_Primaries_Prequantized.Blue); cmsWriteTag(rgb_profile, cmsSigRedTRCTag, (void *)trc); cmsLinkTag(rgb_profile, cmsSigGreenTRCTag, cmsSigRedTRCTag); @@ -924,7 +1017,8 @@ return profile; } -cmsHPROFILE dt_colorspaces_get_rgb_profile_from_mem(uint8_t *data, uint32_t size) +cmsHPROFILE dt_colorspaces_get_rgb_profile_from_mem(uint8_t *data, + const uint32_t size) { cmsHPROFILE profile = _ensure_rgb_profile(cmsOpenProfileFromMem(data, size)); @@ -937,20 +1031,25 @@ cmsCloseProfile(p); } -void dt_colorspaces_get_profile_name(cmsHPROFILE p, const char *language, const char *country, char *name, - size_t len) +void dt_colorspaces_get_profile_name(cmsHPROFILE p, + const char *language, + const char *country, + char *name, + const size_t len) { - cmsUInt32Number size; gchar *buf = NULL; wchar_t *wbuf = NULL; gchar *utf8 = NULL; - size = cmsGetProfileInfoASCII(p, cmsInfoDescription, language, country, NULL, 0); - if(size == 0) goto error; + cmsUInt32Number size = + cmsGetProfileInfoASCII(p, cmsInfoDescription, language, country, NULL, 0); + if(size == 0) + goto error; buf = (char *)calloc(size + 1, sizeof(char)); size = cmsGetProfileInfoASCII(p, cmsInfoDescription, language, country, buf, size); - if(size == 0) goto error; + if(size == 0) + goto error; // most unix like systems should work with this, but at least Windows doesn't if(sizeof(wchar_t) != 4 || g_utf8_validate(buf, -1, NULL)) @@ -958,7 +1057,8 @@ else { wbuf = (wchar_t *)calloc(size + 1, sizeof(wchar_t)); - size = cmsGetProfileInfo(p, cmsInfoDescription, language, country, wbuf, sizeof(wchar_t) * size); + size = cmsGetProfileInfo(p, cmsInfoDescription, language, + country, wbuf, sizeof(wchar_t) * size); if(size == 0) goto error; utf8 = g_ucs4_to_utf8((gunichar *)wbuf, -1, NULL, NULL, NULL); if(!utf8) goto error; @@ -980,13 +1080,21 @@ g_free(utf8); } -static dt_colorspaces_color_profile_t *_create_profile(dt_colorspaces_color_profile_type_t type, - cmsHPROFILE profile, const char *name, int in_pos, - int out_pos, int display_pos, int category_pos, - int work_pos, int display2_pos) +static dt_colorspaces_color_profile_t *_create_profile + (dt_colorspaces_color_profile_type_t type, + cmsHPROFILE profile, + const char *name, + const int in_pos, + const int out_pos, + const int display_pos, + const int category_pos, + const int work_pos, + const int display2_pos) { dt_colorspaces_color_profile_t *prof; - prof = (dt_colorspaces_color_profile_t *)calloc(1, sizeof(dt_colorspaces_color_profile_t)); + prof = (dt_colorspaces_color_profile_t *) + calloc(1, sizeof(dt_colorspaces_color_profile_t)); + prof->type = type; g_strlcpy(prof->name, name, sizeof(prof->name)); prof->profile = profile; @@ -999,60 +1107,84 @@ return prof; } -// this function is basically thread safe, at least when not called on the global darktable.color_profiles +// this function is basically thread safe, at least when not called on +// the global darktable.color_profiles static void _update_display_transforms(dt_colorspaces_t *self) { if(self->transform_srgb_to_display) cmsDeleteTransform(self->transform_srgb_to_display); self->transform_srgb_to_display = NULL; - if(self->transform_adobe_rgb_to_display) cmsDeleteTransform(self->transform_adobe_rgb_to_display); + if(self->transform_adobe_rgb_to_display) + cmsDeleteTransform(self->transform_adobe_rgb_to_display); self->transform_adobe_rgb_to_display = NULL; - const dt_colorspaces_color_profile_t *display_dt_profile = _get_profile(self, self->display_type, - self->display_filename, - DT_PROFILE_DIRECTION_DISPLAY); + const dt_colorspaces_color_profile_t *display_dt_profile = + _get_profile(self, + self->display_type, + self->display_filename, + DT_PROFILE_DIRECTION_DISPLAY); if(!display_dt_profile) return; cmsHPROFILE display_profile = display_dt_profile->profile; if(!display_profile) return; - self->transform_srgb_to_display = cmsCreateTransform(_get_profile(self, DT_COLORSPACE_SRGB, "", - DT_PROFILE_DIRECTION_DISPLAY)->profile, - TYPE_RGBA_8, - display_profile, - TYPE_BGRA_8, - self->display_intent, - 0); - - self->transform_adobe_rgb_to_display = cmsCreateTransform(_get_profile(self, DT_COLORSPACE_ADOBERGB, "", - DT_PROFILE_DIRECTION_DISPLAY)->profile, - TYPE_RGBA_8, - display_profile, - TYPE_BGRA_8, - self->display_intent, - 0); + self->transform_srgb_to_display = + cmsCreateTransform(_get_profile(self, DT_COLORSPACE_SRGB, "", + DT_PROFILE_DIRECTION_DISPLAY)->profile, + TYPE_RGBA_8, + display_profile, + TYPE_BGRA_8, + self->display_intent, + 0); + + self->transform_adobe_rgb_to_display = + cmsCreateTransform(_get_profile(self, DT_COLORSPACE_ADOBERGB, "", + DT_PROFILE_DIRECTION_DISPLAY)->profile, + TYPE_RGBA_8, + display_profile, + TYPE_BGRA_8, + self->display_intent, + 0); } static void _update_display2_transforms(dt_colorspaces_t *self) { - if(self->transform_srgb_to_display2) cmsDeleteTransform(self->transform_srgb_to_display2); + if(self->transform_srgb_to_display2) + cmsDeleteTransform(self->transform_srgb_to_display2); self->transform_srgb_to_display2 = NULL; - if(self->transform_adobe_rgb_to_display2) cmsDeleteTransform(self->transform_adobe_rgb_to_display2); + if(self->transform_adobe_rgb_to_display2) + cmsDeleteTransform(self->transform_adobe_rgb_to_display2); self->transform_adobe_rgb_to_display2 = NULL; const dt_colorspaces_color_profile_t *display2_dt_profile - = _get_profile(self, self->display2_type, self->display2_filename, DT_PROFILE_DIRECTION_DISPLAY2); - if(!display2_dt_profile) return; + = _get_profile(self, + self->display2_type, + self->display2_filename, + DT_PROFILE_DIRECTION_DISPLAY2); + + if(!display2_dt_profile) + return; cmsHPROFILE display2_profile = display2_dt_profile->profile; - if(!display2_profile) return; + if(!display2_profile) + return; self->transform_srgb_to_display2 - = cmsCreateTransform(_get_profile(self, DT_COLORSPACE_SRGB, "", DT_PROFILE_DIRECTION_DISPLAY2)->profile, - TYPE_RGBA_8, display2_profile, TYPE_BGRA_8, self->display2_intent, 0); + = cmsCreateTransform(_get_profile(self, DT_COLORSPACE_SRGB, "", + DT_PROFILE_DIRECTION_DISPLAY2)->profile, + TYPE_RGBA_8, + display2_profile, + TYPE_BGRA_8, + self->display2_intent, + 0); self->transform_adobe_rgb_to_display2 - = cmsCreateTransform(_get_profile(self, DT_COLORSPACE_ADOBERGB, "", DT_PROFILE_DIRECTION_DISPLAY2)->profile, - TYPE_RGBA_8, display2_profile, TYPE_BGRA_8, self->display2_intent, 0); + = cmsCreateTransform(_get_profile(self, DT_COLORSPACE_ADOBERGB, "", + DT_PROFILE_DIRECTION_DISPLAY2)->profile, + TYPE_RGBA_8, + display2_profile, + TYPE_BGRA_8, + self->display2_intent, + 0); } // update cached transforms for color management of thumbnails @@ -1068,7 +1200,10 @@ } // make sure that darktable.color_profiles->xprofile_lock is held when calling this! -static void _update_display_profile(guchar *tmp_data, gsize size, char *name, size_t name_size) +static void _update_display_profile(guchar *tmp_data, + const gsize size, + char *name, + const size_t name_size) { g_free(darktable.color_profiles->xprofile_data); darktable.color_profiles->xprofile_data = tmp_data; @@ -1096,7 +1231,10 @@ } } -static void _update_display2_profile(guchar *tmp_data, gsize size, char *name, size_t name_size) +static void _update_display2_profile(guchar *tmp_data, + const gsize size, + char *name, + const size_t name_size) { g_free(darktable.color_profiles->xprofile_data2); darktable.color_profiles->xprofile_data2 = tmp_data; @@ -1123,7 +1261,9 @@ } } -static void cms_error_handler(cmsContext ContextID, cmsUInt32Number ErrorCode, const char *text) +static void cms_error_handler(const cmsContext ContextID, + const cmsUInt32Number ErrorCode, + const char *text) { dt_print(DT_DEBUG_ALWAYS, "[lcms2] error %d: %s\n", ErrorCode, text); } @@ -1176,12 +1316,16 @@ char *icc_content = dt_read_file(filename, &end); if(!icc_content) goto icc_loading_done; - // TODO: add support for grayscale profiles, then remove _ensure_rgb_profile() from here - cmsHPROFILE tmpprof = _ensure_rgb_profile(cmsOpenProfileFromMem(icc_content, sizeof(char) * end)); + // TODO: add support for grayscale profiles, then remove + // _ensure_rgb_profile() from here + cmsHPROFILE tmpprof = + _ensure_rgb_profile(cmsOpenProfileFromMem(icc_content, sizeof(char) * end)); if(tmpprof) { - dt_colorspaces_color_profile_t *prof = (dt_colorspaces_color_profile_t *)calloc(1, sizeof(dt_colorspaces_color_profile_t)); - dt_colorspaces_get_profile_name(tmpprof, lang, lang + 3, prof->name, sizeof(prof->name)); + dt_colorspaces_color_profile_t *prof = (dt_colorspaces_color_profile_t *) + calloc(1, sizeof(dt_colorspaces_color_profile_t)); + dt_colorspaces_get_profile_name(tmpprof, lang, lang + 3, + prof->name, sizeof(prof->name)); g_strlcpy(prof->filename, filename, sizeof(prof->filename)); prof->type = DT_COLORSPACE_FILE; @@ -1214,7 +1358,8 @@ dt_colorspaces_t *res = (dt_colorspaces_t *)calloc(1, sizeof(dt_colorspaces_t)); - _compute_prequantized_primaries(&D65xyY, &Rec709_Primaries, &Rec709_Primaries_Prequantized); + _compute_prequantized_primaries(&D65xyY, &Rec709_Primaries, + &Rec709_Primaries_Prequantized); pthread_rwlock_init(&res->xprofile_lock, NULL); @@ -1225,97 +1370,148 @@ category_pos = -1, work_pos = -1; - // init the category profile with NULL profile, the actual profile must be retrieved dynamically by the caller - res->profiles = g_list_append(res->profiles, _create_profile(DT_COLORSPACE_WORK, NULL, _("work profile"), -1, -1, - -1, ++category_pos, -1, -1)); - - res->profiles = g_list_append(res->profiles, _create_profile(DT_COLORSPACE_EXPORT, NULL, _("export profile"), -1, - -1, -1, ++category_pos, -1, -1)); - - res->profiles - = g_list_append(res->profiles, _create_profile(DT_COLORSPACE_SOFTPROOF, NULL, _("softproof profile"), -1, -1, - -1, ++category_pos, -1, -1)); - - // init the display profile with srgb so some stupid code that runs before the real profile could be fetched has something to work with - res->profiles = g_list_append( - res->profiles, _create_profile(DT_COLORSPACE_DISPLAY, dt_colorspaces_create_srgb_profile(), - _("system display profile"), -1, -1, ++display_pos, ++category_pos, -1, -1)); - res->profiles = g_list_append( - res->profiles, _create_profile(DT_COLORSPACE_DISPLAY2, dt_colorspaces_create_srgb_profile(), - _("system display profile (second window)"), -1, -1, -1, ++category_pos, -1, ++display2_pos)); + // init the category profile with NULL profile, the actual profile + // must be retrieved dynamically by the caller + res->profiles = g_list_append + (res->profiles, + _create_profile(DT_COLORSPACE_WORK, NULL, _("work profile"), -1, -1, + -1, ++category_pos, -1, -1)); + + res->profiles = g_list_append + (res->profiles, _create_profile(DT_COLORSPACE_EXPORT, NULL, + _("export profile"), -1, + -1, -1, ++category_pos, -1, -1)); + + res->profiles = g_list_append + (res->profiles, _create_profile(DT_COLORSPACE_SOFTPROOF, NULL, + _("softproof profile"), -1, -1, + -1, ++category_pos, -1, -1)); + + // init the display profile with srgb so some stupid code that runs + // before the real profile could be fetched has something to work + // with + res->profiles = g_list_append + (res->profiles, + _create_profile(DT_COLORSPACE_DISPLAY, + dt_colorspaces_create_srgb_profile(), + _("system display profile"), -1, -1, + ++display_pos, ++category_pos, -1, -1)); + res->profiles = g_list_append + (res->profiles, + _create_profile(DT_COLORSPACE_DISPLAY2, dt_colorspaces_create_srgb_profile(), + _("system display profile (second window)"), -1, -1, -1, + ++category_pos, -1, ++display2_pos)); // we want a v4 with parametric curve for input and a v2 with point trc for output // see http://ninedegreesbelow.com/photography/lcms-make-icc-profiles.html#profile-variants-and-versions // TODO: what about display? - res->profiles - = g_list_append(res->profiles, _create_profile(DT_COLORSPACE_SRGB, dt_colorspaces_create_srgb_profile_v4(), - _("sRGB"), ++in_pos, -1, -1, -1, -1, -1)); - - res->profiles - = g_list_append(res->profiles, _create_profile(DT_COLORSPACE_SRGB, dt_colorspaces_create_srgb_profile(), - _("sRGB (web-safe)"), -1, ++out_pos, ++display_pos, - ++category_pos, ++work_pos, ++display2_pos)); - - res->profiles = g_list_append(res->profiles, - _create_profile(DT_COLORSPACE_ADOBERGB, dt_colorspaces_create_adobergb_profile(), - _("Adobe RGB (compatible)"), ++in_pos, ++out_pos, ++display_pos, - ++category_pos, ++work_pos, ++display2_pos)); - - res->profiles = g_list_append( - res->profiles, _create_profile(DT_COLORSPACE_LIN_REC709, dt_colorspaces_create_linear_rec709_rgb_profile(), - _("linear Rec709 RGB"), ++in_pos, ++out_pos, ++display_pos, ++category_pos, - ++work_pos, ++display2_pos)); - - res->profiles = g_list_append(res->profiles, _create_profile(DT_COLORSPACE_REC709, dt_colorspaces_create_gamma_rec709_rgb_profile(), - _("Rec709 RGB"), ++in_pos, ++out_pos, -1, -1, - ++work_pos, -1)); - - res->profiles = g_list_append( - res->profiles, _create_profile(DT_COLORSPACE_LIN_REC2020, dt_colorspaces_create_linear_rec2020_rgb_profile(), - _("linear Rec2020 RGB"), ++in_pos, ++out_pos, ++display_pos, ++category_pos, - ++work_pos, ++display2_pos)); - - res->profiles = g_list_append( - res->profiles, _create_profile(DT_COLORSPACE_PQ_REC2020, dt_colorspaces_create_pq_rec2020_rgb_profile(), - _("PQ Rec2020 RGB"), ++in_pos, ++out_pos, ++display_pos, ++category_pos, - ++work_pos, ++display2_pos)); - - res->profiles = g_list_append( - res->profiles, _create_profile(DT_COLORSPACE_HLG_REC2020, dt_colorspaces_create_hlg_rec2020_rgb_profile(), - _("HLG Rec2020 RGB"), ++in_pos, ++out_pos, ++display_pos, ++category_pos, - ++work_pos, ++display2_pos)); - - res->profiles = g_list_append( - res->profiles, _create_profile(DT_COLORSPACE_PQ_P3, dt_colorspaces_create_pq_p3_rgb_profile(), - _("PQ P3 RGB"), ++in_pos, ++out_pos, ++display_pos, ++category_pos, - ++work_pos, ++display2_pos)); - - res->profiles = g_list_append( - res->profiles, _create_profile(DT_COLORSPACE_HLG_P3, dt_colorspaces_create_hlg_p3_rgb_profile(), - _("HLG P3 RGB"), ++in_pos, ++out_pos, ++display_pos, ++category_pos, - ++work_pos, ++display2_pos)); - - res->profiles = g_list_append( - res->profiles, _create_profile(DT_COLORSPACE_PROPHOTO_RGB, dt_colorspaces_create_linear_prophoto_rgb_profile(), - _("linear ProPhoto RGB"), ++in_pos, ++out_pos, ++display_pos, ++category_pos, - ++work_pos, ++display2_pos)); - - res->profiles = g_list_append( - res->profiles, - _create_profile(DT_COLORSPACE_XYZ, dt_colorspaces_create_xyz_profile(), _("linear XYZ"), ++in_pos, - dt_conf_get_bool("allow_lab_output") ? ++out_pos : -1, -1, -1, -1, -1)); - - res->profiles = g_list_append( - res->profiles, _create_profile(DT_COLORSPACE_LAB, dt_colorspaces_create_lab_profile(), _("Lab"), ++in_pos, - dt_conf_get_bool("allow_lab_output") ? ++out_pos : -1, -1, -1, -1, -1)); - - res->profiles = g_list_append( - res->profiles, _create_profile(DT_COLORSPACE_INFRARED, dt_colorspaces_create_linear_infrared_profile(), - _("linear infrared BGR"), ++in_pos, -1, -1, -1, -1, -1)); - - res->profiles - = g_list_append(res->profiles, _create_profile(DT_COLORSPACE_BRG, dt_colorspaces_create_brg_profile(), - _("BRG (for testing)"), ++in_pos, ++out_pos, ++display_pos, - -1, -1, ++display2_pos)); + res->profiles = g_list_append + (res->profiles, + _create_profile(DT_COLORSPACE_SRGB, dt_colorspaces_create_srgb_profile_v4(), + _("sRGB"), ++in_pos, -1, -1, -1, -1, -1)); + + res->profiles = g_list_append + (res->profiles, + _create_profile(DT_COLORSPACE_SRGB, dt_colorspaces_create_srgb_profile(), + _("sRGB (web-safe)"), -1, ++out_pos, ++display_pos, + ++category_pos, ++work_pos, ++display2_pos)); + + res->profiles = g_list_append + (res->profiles, + _create_profile(DT_COLORSPACE_ADOBERGB, dt_colorspaces_create_adobergb_profile(), + _("Adobe RGB (compatible)"), ++in_pos, ++out_pos, ++display_pos, + ++category_pos, ++work_pos, ++display2_pos)); + + res->profiles = g_list_append + (res->profiles, + _create_profile(DT_COLORSPACE_LIN_REC709, + dt_colorspaces_create_linear_rec709_rgb_profile(), + _("linear Rec709 RGB"), ++in_pos, ++out_pos, + ++display_pos, ++category_pos, + ++work_pos, ++display2_pos)); + + res->profiles = g_list_append + (res->profiles, + _create_profile(DT_COLORSPACE_REC709, dt_colorspaces_create_gamma_rec709_rgb_profile(), + _("Rec709 RGB"), ++in_pos, ++out_pos, -1, -1, + ++work_pos, -1)); + + res->profiles = g_list_append + (res->profiles, + _create_profile(DT_COLORSPACE_LIN_REC2020, + dt_colorspaces_create_linear_rec2020_rgb_profile(), + _("linear Rec2020 RGB"), ++in_pos, ++out_pos, + ++display_pos, ++category_pos, + ++work_pos, ++display2_pos)); + + res->profiles = g_list_append + (res->profiles, + _create_profile(DT_COLORSPACE_PQ_REC2020, + dt_colorspaces_create_pq_rec2020_rgb_profile(), + _("PQ Rec2020 RGB"), ++in_pos, ++out_pos, + ++display_pos, ++category_pos, + ++work_pos, ++display2_pos)); + + res->profiles = g_list_append + (res->profiles, + _create_profile(DT_COLORSPACE_HLG_REC2020, + dt_colorspaces_create_hlg_rec2020_rgb_profile(), + _("HLG Rec2020 RGB"), ++in_pos, ++out_pos, + ++display_pos, ++category_pos, + ++work_pos, ++display2_pos)); + + res->profiles = g_list_append + (res->profiles, + _create_profile(DT_COLORSPACE_PQ_P3, dt_colorspaces_create_pq_p3_rgb_profile(), + _("PQ P3 RGB"), ++in_pos, ++out_pos, ++display_pos, ++category_pos, + ++work_pos, ++display2_pos)); + + res->profiles = g_list_append + (res->profiles, + _create_profile(DT_COLORSPACE_HLG_P3, dt_colorspaces_create_hlg_p3_rgb_profile(), + _("HLG P3 RGB"), ++in_pos, ++out_pos, ++display_pos, ++category_pos, + ++work_pos, ++display2_pos)); + + res->profiles = g_list_append + (res->profiles, + _create_profile(DT_COLORSPACE_DISPLAY_P3, + dt_colorspaces_create_display_p3_rgb_profile(), + _("Display P3 RGB"), ++in_pos, ++out_pos, + ++display_pos, ++category_pos, + ++work_pos, ++display2_pos)); + + res->profiles = g_list_append + (res->profiles, + _create_profile(DT_COLORSPACE_PROPHOTO_RGB, + dt_colorspaces_create_linear_prophoto_rgb_profile(), + _("linear ProPhoto RGB"), ++in_pos, ++out_pos, + ++display_pos, ++category_pos, + ++work_pos, ++display2_pos)); + + res->profiles = g_list_append + (res->profiles, + _create_profile(DT_COLORSPACE_XYZ, + dt_colorspaces_create_xyz_profile(), _("linear XYZ"), ++in_pos, + dt_conf_get_bool("allow_lab_output") ? ++out_pos : -1, + -1, -1, -1, -1)); + + res->profiles = g_list_append + (res->profiles, + _create_profile(DT_COLORSPACE_LAB, + dt_colorspaces_create_lab_profile(), _("Lab"), ++in_pos, + dt_conf_get_bool("allow_lab_output") ? ++out_pos : -1, + -1, -1, -1, -1)); + + res->profiles = g_list_append + (res->profiles, + _create_profile(DT_COLORSPACE_INFRARED, + dt_colorspaces_create_linear_infrared_profile(), + _("linear infrared BGR"), ++in_pos, -1, -1, -1, -1, -1)); + + res->profiles = g_list_append + (res->profiles, + _create_profile(DT_COLORSPACE_BRG, dt_colorspaces_create_brg_profile(), + _("BRG (for testing)"), ++in_pos, ++out_pos, ++display_pos, + -1, -1, ++display2_pos)); // init display profile and softproof/gama checking from conf res->display_type = dt_conf_get_int("ui_last/color/display_type"); @@ -1339,25 +1535,30 @@ if((unsigned int)res->display_type >= DT_COLORSPACE_LAST || (res->display_type == DT_COLORSPACE_FILE - && (!res->display_filename[0] || !g_file_test(res->display_filename, G_FILE_TEST_IS_REGULAR)))) + && (!res->display_filename[0] + || !g_file_test(res->display_filename, G_FILE_TEST_IS_REGULAR)))) res->display_type = DT_COLORSPACE_DISPLAY; if((unsigned int)res->display2_type >= DT_COLORSPACE_LAST || (res->display2_type == DT_COLORSPACE_FILE - && (!res->display2_filename[0] || !g_file_test(res->display2_filename, G_FILE_TEST_IS_REGULAR)))) + && (!res->display2_filename[0] + || !g_file_test(res->display2_filename, G_FILE_TEST_IS_REGULAR)))) res->display2_type = DT_COLORSPACE_DISPLAY2; if((unsigned int)res->softproof_type >= DT_COLORSPACE_LAST || (res->softproof_type == DT_COLORSPACE_FILE - && (!res->softproof_filename[0] || !g_file_test(res->softproof_filename, G_FILE_TEST_IS_REGULAR)))) + && (!res->softproof_filename[0] + || !g_file_test(res->softproof_filename, G_FILE_TEST_IS_REGULAR)))) res->softproof_type = DT_COLORSPACE_SRGB; if((unsigned int)res->histogram_type >= DT_COLORSPACE_LAST || (res->histogram_type == DT_COLORSPACE_FILE - && (!res->histogram_filename[0] || !g_file_test(res->histogram_filename, G_FILE_TEST_IS_REGULAR)))) + && (!res->histogram_filename[0] + || !g_file_test(res->histogram_filename, G_FILE_TEST_IS_REGULAR)))) res->histogram_type = DT_COLORSPACE_SRGB; - // temporary list of profiles to be added, we keep this separate to be able to sort it before adding + // temporary list of profiles to be added, we keep this separate to + // be able to sort it before adding GList *temp_profiles; // read {userconfig,datadir}/color/in/*.icc, in this order. @@ -1374,17 +1575,23 @@ for(GList *iter = temp_profiles; iter; iter = g_list_next(iter)) { dt_colorspaces_color_profile_t *prof = (dt_colorspaces_color_profile_t *)iter->data; - // FIXME: do want to filter out non-RGB profiles for cases besides histogram profile? colorin is OK with RGB or XYZ, print is OK with anything which LCMS likes, otherwise things are more choosey + // FIXME: do want to filter out non-RGB profiles for cases besides + // histogram profile? colorin is OK with RGB or XYZ, print is OK + // with anything which LCMS likes, otherwise things are more + // choosey const cmsColorSpaceSignature color_space = cmsGetColorSpace(prof->profile); - // The histogram profile is used for histogram, clipping indicators and the global color picker. - // Some of these also assume a matrix profile. LUT profiles don't make much sense in these applications - // so filter out any profile that doesn't implement the relative colorimetric intent as a matrix (+ TRC). + // The histogram profile is used for histogram, clipping + // indicators and the global color picker. Some of these also + // assume a matrix profile. LUT profiles don't make much sense in + // these applications so filter out any profile that doesn't + // implement the relative colorimetric intent as a matrix (+ TRC). // For discussion, see e.g. // https://github.com/darktable-org/darktable/issues/7660#issuecomment-760143437 // For the working profile we also require a matrix profile. - const gboolean is_valid_matrix_profile - = dt_colorspaces_get_matrix_from_output_profile(prof->profile, NULL, NULL, NULL, NULL, 0) == 0 - && dt_colorspaces_get_matrix_from_input_profile(prof->profile, NULL, NULL, NULL, NULL, 0) == 0; + const gboolean is_valid_matrix_profile = dt_colorspaces_get_matrix_from_output_profile + (prof->profile, NULL, NULL, NULL, NULL, 0) == 0 + && dt_colorspaces_get_matrix_from_input_profile + (prof->profile, NULL, NULL, NULL, NULL, 0) == 0; prof->out_pos = ++out_pos; prof->display_pos = ++display_pos; prof->display2_pos = ++display2_pos; @@ -1396,8 +1603,11 @@ else { dt_print(DT_DEBUG_DEV, - "output profile `%s' color space `%c%c%c%c' not supported for work or histogram profile\n", - prof->name, (char)(color_space >> 24), (char)(color_space >> 16), (char)(color_space >> 8), + "output profile `%s' color space `%c%c%c%c'" + " not supported for work or histogram profile\n", + prof->name, (char)(color_space >> 24), + (char)(color_space >> 16), + (char)(color_space >> 8), (char)(color_space)); if(res->histogram_type == prof->type @@ -1406,9 +1616,11 @@ { // bad histogram profile selected, we must reset it to sRGB const char *name = dt_colorspaces_get_name(prof->type, prof->filename); - dt_control_log(_("profile `%s' not usable as histogram profile. it has been replaced by sRGB!"), name); + dt_control_log(_("profile `%s' not usable as histogram profile." + " it has been replaced by sRGB!"), name); dt_print(DT_DEBUG_ALWAYS, - "[colorspaces] profile `%s' not usable as histogram profile. it has been replaced by sRGB!\n", + "[colorspaces] profile `%s' not usable as histogram profile." + " it has been replaced by sRGB!\n", name); res->histogram_type = DT_COLORSPACE_SRGB; res->histogram_filename[0] = '\0'; @@ -1442,16 +1654,20 @@ dt_conf_set_int("ui_last/color/softproof_intent", self->softproof_intent); dt_conf_set_int("ui_last/color/mode", self->mode); - if(self->transform_srgb_to_display) cmsDeleteTransform(self->transform_srgb_to_display); + if(self->transform_srgb_to_display) + cmsDeleteTransform(self->transform_srgb_to_display); self->transform_srgb_to_display = NULL; - if(self->transform_adobe_rgb_to_display) cmsDeleteTransform(self->transform_adobe_rgb_to_display); + if(self->transform_adobe_rgb_to_display) + cmsDeleteTransform(self->transform_adobe_rgb_to_display); self->transform_adobe_rgb_to_display = NULL; - if(self->transform_srgb_to_display2) cmsDeleteTransform(self->transform_srgb_to_display2); + if(self->transform_srgb_to_display2) + cmsDeleteTransform(self->transform_srgb_to_display2); self->transform_srgb_to_display2 = NULL; - if(self->transform_adobe_rgb_to_display2) cmsDeleteTransform(self->transform_adobe_rgb_to_display2); + if(self->transform_adobe_rgb_to_display2) + cmsDeleteTransform(self->transform_adobe_rgb_to_display2); self->transform_adobe_rgb_to_display2 = NULL; for(GList *iter = self->profiles; iter; iter = g_list_next(iter)) @@ -1530,6 +1746,8 @@ return _("PQ P3"); case DT_COLORSPACE_HLG_P3: return _("HLG P3"); + case DT_COLORSPACE_DISPLAY_P3: + return _("Display P3"); case DT_COLORSPACE_LAST: break; } @@ -1538,7 +1756,9 @@ } #ifdef USE_COLORDGTK -static void dt_colorspaces_get_display_profile_colord_callback(GObject *source, GAsyncResult *res, gpointer user_data) +static void dt_colorspaces_get_display_profile_colord_callback(GObject *source, + GAsyncResult *res, + gpointer user_data) { const dt_colorspaces_color_profile_type_t profile_type = (dt_colorspaces_color_profile_type_t)GPOINTER_TO_INT(user_data); @@ -1559,8 +1779,9 @@ || (profile_type != DT_COLORSPACE_DISPLAY2 && g_strcmp0(filename, darktable.color_profiles->colord_profile_file))) { - /* the profile has changed (either because the user changed the colord settings or because we are on a - * different screen now) */ + /* the profile has changed (either because the user changed + * the colord settings or because we are on a different screen + * now) */ // update darktable.color_profiles->colord_profile_file if(profile_type == DT_COLORSPACE_DISPLAY2) { @@ -1578,13 +1799,15 @@ g_file_get_contents(filename, (gchar **)&tmp_data, &size, NULL); if(profile_type == DT_COLORSPACE_DISPLAY2) { - profile_changed = size > 0 && (darktable.color_profiles->xprofile_size2 != size - || memcmp(darktable.color_profiles->xprofile_data2, tmp_data, size) != 0); + profile_changed = size > 0 + && (darktable.color_profiles->xprofile_size2 != size + || memcmp(darktable.color_profiles->xprofile_data2, tmp_data, size) != 0); } else { - profile_changed = size > 0 && (darktable.color_profiles->xprofile_size != size - || memcmp(darktable.color_profiles->xprofile_data, tmp_data, size) != 0); + profile_changed = size > 0 + && (darktable.color_profiles->xprofile_size != size + || memcmp(darktable.color_profiles->xprofile_data, tmp_data, size) != 0); } if(profile_changed) { @@ -1593,7 +1816,8 @@ else _update_display_profile(tmp_data, size, NULL, 0); dt_print(DT_DEBUG_CONTROL, - "[color profile] colord gave us a new screen profile: '%s' (size: %zu)\n", filename, size); + "[color profile] colord gave us a new screen profile:" + " '%s' (size: %zu)\n", filename, size); } else { @@ -1602,12 +1826,14 @@ } } } - if(profile) g_object_unref(profile); + if(profile) + g_object_unref(profile); g_object_unref(window); pthread_rwlock_unlock(&darktable.color_profiles->xprofile_lock); - if(profile_changed) DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_CONTROL_PROFILE_CHANGED); + if(profile_changed) DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, + DT_SIGNAL_CONTROL_PROFILE_CHANGED); } #endif @@ -1632,15 +1858,17 @@ // For X display, uses the ICC profile specifications version 0.2 from // http://burtonini.com/blog/computers/xicc // Based on code from Gimp's modules/cdisplay_lcms.c -void dt_colorspaces_set_display_profile(const dt_colorspaces_color_profile_type_t profile_type) +void dt_colorspaces_set_display_profile + (const dt_colorspaces_color_profile_type_t profile_type) { if(!dt_control_running()) return; - // make sure that no one gets a broken profile - // FIXME: benchmark if the try is really needed when moving/resizing the window. Maybe we can just lock it - // and block + // make sure that no one gets a broken profile FIXME: benchmark if + // the try is really needed when moving/resizing the window. Maybe + // we can just lock it and block if(pthread_rwlock_trywrlock(&darktable.color_profiles->xprofile_lock)) - return; // we are already updating the profile. Or someone is reading right now. Too bad we can't - // distinguish that. Whatever ... + return; // we are already updating the profile. Or someone is + // reading right now. Too bad we can't distinguish + // that. Whatever ... guint8 *buffer = NULL; gint buffer_size = 0; @@ -1648,13 +1876,15 @@ #if defined GDK_WINDOWING_X11 - // we will use the xatom no matter what configured when compiled without colord + // we will use the xatom no matter what configured when compiled + // without colord gboolean use_xatom = TRUE; #if defined USE_COLORDGTK gboolean use_colord = TRUE; - const char *display_profile_source = (profile_type == DT_COLORSPACE_DISPLAY2) - ? dt_conf_get_string_const("ui_last/display2_profile_source") - : dt_conf_get_string_const("ui_last/display_profile_source"); + const char *display_profile_source = + (profile_type == DT_COLORSPACE_DISPLAY2) + ? dt_conf_get_string_const("ui_last/display2_profile_source") + : dt_conf_get_string_const("ui_last/display_profile_source"); if(display_profile_source) { if(!strcmp(display_profile_source, "xatom")) @@ -1667,8 +1897,9 @@ /* let's have a look at the xatom, just in case ... */ if(use_xatom) { - GtkWidget *widget = (profile_type == DT_COLORSPACE_DISPLAY2) ? darktable.develop->second_window.second_wnd - : dt_ui_center(darktable.gui->ui); + GtkWidget *widget = (profile_type == DT_COLORSPACE_DISPLAY2) + ? darktable.develop->second_wnd + : dt_ui_center(darktable.gui->ui); GdkWindow *window = gtk_widget_get_window(widget); GdkScreen *screen = gtk_widget_get_screen(widget); if(screen == NULL) screen = gdk_screen_get_default(); @@ -1686,7 +1917,8 @@ GdkAtom type = GDK_NONE; gint format = 0; - gdk_property_get(gdk_screen_get_root_window(screen), gdk_atom_intern(atom_name, FALSE), GDK_NONE, 0, + gdk_property_get(gdk_screen_get_root_window(screen), + gdk_atom_intern(atom_name, FALSE), GDK_NONE, 0, 64 * 1024 * 1024, FALSE, &type, &format, &buffer_size, &buffer); g_free(atom_name); } @@ -1697,25 +1929,31 @@ { CdWindow *window = cd_window_new(); GtkWidget *center_widget = (profile_type == DT_COLORSPACE_DISPLAY2) - ? darktable.develop->second_window.second_wnd + ? darktable.develop->second_wnd : dt_ui_center(darktable.gui->ui); - cd_window_get_profile(window, center_widget, NULL, dt_colorspaces_get_display_profile_colord_callback, + cd_window_get_profile(window, center_widget, NULL, + dt_colorspaces_get_display_profile_colord_callback, GINT_TO_POINTER(profile_type)); } #endif #elif defined GDK_WINDOWING_QUARTZ #if 0 - GtkWidget *widget = (profile_type == DT_COLORSPACE_DISPLAY2) ? darktable.develop->second_window.second_wnd : dt_ui_center(darktable.gui->ui); + GtkWidget *widget = (profile_type == DT_COLORSPACE_DISPLAY2) + ? darktable.develop->second_wnd + : dt_ui_center(darktable.gui->ui); GdkScreen *screen = gtk_widget_get_screen(widget); if(screen == NULL) screen = gdk_screen_get_default(); - int monitor = gdk_screen_get_monitor_at_window(screen, gtk_widget_get_window(widget)); + const int monitor = + gdk_screen_get_monitor_at_window(screen, gtk_widget_get_window(widget)); CGDirectDisplayID ids[monitor + 1]; uint32_t total_ids; CMProfileRef prof = NULL; - if(CGGetOnlineDisplayList(monitor + 1, &ids[0], &total_ids) == kCGErrorSuccess && total_ids == monitor + 1) + if(CGGetOnlineDisplayList(monitor + 1, &ids[0], &total_ids) + == kCGErrorSuccess && total_ids == monitor + 1) CMGetProfileByAVID(ids[monitor], &prof); + if(prof != NULL) { CFDataRef data; @@ -1761,14 +1999,16 @@ if(profile_type == DT_COLORSPACE_DISPLAY2) { profile_changed - = buffer_size > 0 && (darktable.color_profiles->xprofile_size2 != buffer_size - || memcmp(darktable.color_profiles->xprofile_data2, buffer, buffer_size) != 0); + = buffer_size > 0 + && (darktable.color_profiles->xprofile_size2 != buffer_size + || memcmp(darktable.color_profiles->xprofile_data2, buffer, buffer_size) != 0); } else { profile_changed - = buffer_size > 0 && (darktable.color_profiles->xprofile_size != buffer_size - || memcmp(darktable.color_profiles->xprofile_data, buffer, buffer_size) != 0); + = buffer_size > 0 + && (darktable.color_profiles->xprofile_size != buffer_size + || memcmp(darktable.color_profiles->xprofile_data, buffer, buffer_size) != 0); } if(profile_changed) { @@ -1777,7 +2017,8 @@ _update_display2_profile(buffer, buffer_size, name, sizeof(name)); else _update_display_profile(buffer, buffer_size, name, sizeof(name)); - dt_print(DT_DEBUG_CONTROL, "[color profile] we got a new screen profile `%s' from the %s (size: %d)\n", + dt_print(DT_DEBUG_CONTROL, "[color profile] we got a new screen profile `%s'" + " from the %s (size: %d)\n", *name ? name : "(unknown)", profile_source, buffer_size); } else @@ -1785,7 +2026,8 @@ g_free(buffer); } pthread_rwlock_unlock(&darktable.color_profiles->xprofile_lock); - if(profile_changed) DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_CONTROL_PROFILE_CHANGED); + if(profile_changed) DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, + DT_SIGNAL_CONTROL_PROFILE_CHANGED); g_free(profile_source); } @@ -1806,12 +2048,15 @@ for(; f >= profile; f--) { if(*f == '/' || *f == '\\') - return ++f; // path separator found - return the filename only, without the leading separator + return ++f; // path separator found - return the filename + // only, without the leading separator } - return f; // no separator found - consider profile_name to be a "base" one + return f; // no separator found - consider profile_name to + // be a "base" one } -gboolean dt_colorspaces_is_profile_equal(const char *fullname, const char *filename) +gboolean dt_colorspaces_is_profile_equal(const char *fullname, + const char *filename) { // for backward compatibility we need to also ensure that we check // for basename, indeed filename parameter may be in fact just a @@ -1821,7 +2066,9 @@ : !strcmp(_colorspaces_get_base_name(fullname), _colorspaces_get_base_name(filename)); } -dt_colorspaces_color_profile_type_t dt_colorspaces_cicp_to_type(const dt_colorspaces_cicp_t *cicp, const char *filename) +dt_colorspaces_color_profile_type_t dt_colorspaces_cicp_to_type + (const dt_colorspaces_cicp_t *cicp, + const char *filename) { switch(cicp->color_primaries) { @@ -1843,6 +2090,7 @@ switch(cicp->matrix_coefficients) { case DT_CICP_MATRIX_COEFFICIENTS_IDENTITY: /* support RGB (4:4:4 or lossless) */ + case DT_CICP_MATRIX_COEFFICIENTS_REC709: /* support incorrectly tagged files */ case DT_CICP_MATRIX_COEFFICIENTS_SYCC: case DT_CICP_MATRIX_COEFFICIENTS_REC601: /* support equivalents just in case of mistagging */ case DT_CICP_MATRIX_COEFFICIENTS_CHROMA_DERIVED_NCL: /* support incorrectly tagged files */ @@ -1965,6 +2213,9 @@ switch(cicp->matrix_coefficients) { case DT_CICP_MATRIX_COEFFICIENTS_IDENTITY: /* support RGB (4:4:4 or lossless) */ + case DT_CICP_MATRIX_COEFFICIENTS_REC709: + case DT_CICP_MATRIX_COEFFICIENTS_SYCC: + case DT_CICP_MATRIX_COEFFICIENTS_REC601: case DT_CICP_MATRIX_COEFFICIENTS_CHROMA_DERIVED_NCL: case DT_CICP_MATRIX_COEFFICIENTS_UNSPECIFIED: return DT_COLORSPACE_PQ_P3; @@ -1980,6 +2231,9 @@ switch(cicp->matrix_coefficients) { case DT_CICP_MATRIX_COEFFICIENTS_IDENTITY: /* support RGB (4:4:4 or lossless) */ + case DT_CICP_MATRIX_COEFFICIENTS_REC709: + case DT_CICP_MATRIX_COEFFICIENTS_SYCC: + case DT_CICP_MATRIX_COEFFICIENTS_REC601: case DT_CICP_MATRIX_COEFFICIENTS_CHROMA_DERIVED_NCL: case DT_CICP_MATRIX_COEFFICIENTS_UNSPECIFIED: return DT_COLORSPACE_HLG_P3; @@ -1989,6 +2243,24 @@ break; /* HLG P3 */ + /* Display P3 */ + case DT_CICP_TRANSFER_CHARACTERISTICS_SRGB: + + switch(cicp->matrix_coefficients) + { + case DT_CICP_MATRIX_COEFFICIENTS_IDENTITY: /* support RGB (4:4:4 or lossless) */ + case DT_CICP_MATRIX_COEFFICIENTS_REC709: + case DT_CICP_MATRIX_COEFFICIENTS_SYCC: + case DT_CICP_MATRIX_COEFFICIENTS_REC601: + case DT_CICP_MATRIX_COEFFICIENTS_CHROMA_DERIVED_NCL: + case DT_CICP_MATRIX_COEFFICIENTS_UNSPECIFIED: + return DT_COLORSPACE_DISPLAY_P3; + default: + break; + } + + break; /* Display P3 */ + default: break; } @@ -2025,16 +2297,20 @@ } if(filename != NULL) - dt_print(DT_DEBUG_IMAGEIO, "[colorin] unsupported CICP color profile for `%s': %d/%d/%d\n", filename, - cicp->color_primaries, cicp->transfer_characteristics, cicp->matrix_coefficients); + dt_print(DT_DEBUG_IMAGEIO, "[colorin] unsupported CICP color profile" + " for `%s': %d/%d/%d\n", filename, + cicp->color_primaries, + cicp->transfer_characteristics, + cicp->matrix_coefficients); return DT_COLORSPACE_NONE; } -static const dt_colorspaces_color_profile_t *_get_profile(dt_colorspaces_t *self, - dt_colorspaces_color_profile_type_t type, - const char *filename, - dt_colorspaces_profile_direction_t direction) +static const dt_colorspaces_color_profile_t *_get_profile + (dt_colorspaces_t *self, + const dt_colorspaces_color_profile_type_t type, + const char *filename, + const dt_colorspaces_profile_direction_t direction) { for(GList *iter = self->profiles; iter; iter = g_list_next(iter)) { @@ -2045,7 +2321,8 @@ || (direction & DT_PROFILE_DIRECTION_DISPLAY && p->display_pos > -1) || (direction & DT_PROFILE_DIRECTION_DISPLAY2 && p->display2_pos > -1)) && (p->type == type - && (type != DT_COLORSPACE_FILE || dt_colorspaces_is_profile_equal(p->filename, filename)))) + && (type != DT_COLORSPACE_FILE + || dt_colorspaces_is_profile_equal(p->filename, filename)))) { return p; } @@ -2054,15 +2331,18 @@ return NULL; } -const dt_colorspaces_color_profile_t *dt_colorspaces_get_profile(dt_colorspaces_color_profile_type_t type, - const char *filename, - dt_colorspaces_profile_direction_t direction) +const dt_colorspaces_color_profile_t *dt_colorspaces_get_profile + (const dt_colorspaces_color_profile_type_t type, + const char *filename, + const dt_colorspaces_profile_direction_t direction) { return _get_profile(darktable.color_profiles, type, filename, direction); } // Copied from dcraw's pseudoinverse() -static void dt_colorspaces_pseudoinverse(double (*in)[3], double (*out)[3], int size) +static void dt_colorspaces_pseudoinverse(double (*in)[3], + double (*out)[3], + const int size) { double work[3][6]; @@ -2127,7 +2407,8 @@ // Converted from dcraw's cam_xyz_coeff() int dt_colorspaces_conversion_matrices_rgb(const float adobe_XYZ_to_CAM[4][3], - double out_RGB_to_CAM[4][3], double out_CAM_to_RGB[3][4], + double out_RGB_to_CAM[4][3], + double out_CAM_to_RGB[3][4], const float *embedded_matrix, double mul[4]) { @@ -2206,8 +2487,12 @@ return TRUE; } -void dt_colorspaces_cygm_apply_coeffs_to_rgb(float *out, const float *in, int num, double RGB_to_CAM[4][3], - double CAM_to_RGB[3][4], dt_aligned_pixel_t coeffs) +void dt_colorspaces_cygm_apply_coeffs_to_rgb(float *out, + const float *in, + const int num, + double RGB_to_CAM[4][3], + double CAM_to_RGB[3][4], + const dt_aligned_pixel_t coeffs) { // Create the CAM to RGB with applied WB matrix double CAM_to_RGB_WB[3][4]; @@ -2238,7 +2523,9 @@ } } -void dt_colorspaces_cygm_to_rgb(float *out, int num, double CAM_to_RGB[3][4]) +void dt_colorspaces_cygm_to_rgb(float *out, + const int num, + const double CAM_to_RGB[3][4]) { #ifdef _OPENMP #pragma omp parallel for default(none) shared(out, num, CAM_to_RGB) schedule(static) @@ -2246,7 +2533,7 @@ for(int i = 0; i < num; i++) { float *in = &out[i*4]; - dt_aligned_pixel_t o = {0.0f,0.0f,0.0f}; + dt_aligned_pixel_t o = {0.0f, 0.0f, 0.0f}; for(int c = 0; c < 3; c++) for(int k = 0; k < 4; k++) o[c] += CAM_to_RGB[c][k] * in[k]; @@ -2255,7 +2542,9 @@ } } -void dt_colorspaces_rgb_to_cygm(float *out, int num, double RGB_to_CAM[4][3]) +void dt_colorspaces_rgb_to_cygm(float *out, + const int num, + const double RGB_to_CAM[4][3]) { #ifdef _OPENMP #pragma omp parallel for default(none) shared(out, num, RGB_to_CAM) schedule(static) @@ -2263,7 +2552,7 @@ for(int i = 0; i < num; i++) { float *in = &out[i*3]; - dt_aligned_pixel_t o = {0.0f,0.0f,0.0f,0.0f}; + dt_aligned_pixel_t o = {0.0f, 0.0f, 0.0f, 0.0f}; for(int c = 0; c < 4; c++) for(int k = 0; k < 3; k++) o[c] += RGB_to_CAM[c][k] * in[k]; @@ -2272,6 +2561,58 @@ } } +void cmsCIEXYZ_to_xy(const cmsCIEXYZ *const cmsXYZ, float xy[2]) +{ + dt_aligned_pixel_t XYZ = { cmsXYZ->X, cmsXYZ->Y, cmsXYZ->Z, 0.f }; + dt_aligned_pixel_t xyY; + dt_XYZ_to_xyY(XYZ, xyY); + xy[0] = xyY[0]; + xy[1] = xyY[1]; +} + +gboolean dt_colorspaces_get_primaries_and_whitepoint_from_profile(cmsHPROFILE prof, float primaries[3][2], + float whitepoint[2]) +{ + cmsCIEXYZ *red_color = cmsReadTag(prof, cmsSigRedColorantTag); + cmsCIEXYZ *green_color = cmsReadTag(prof, cmsSigGreenColorantTag); + cmsCIEXYZ *blue_color = cmsReadTag(prof, cmsSigBlueColorantTag); + cmsCIEXYZ *white_color = cmsReadTag(prof, cmsSigMediaWhitePointTag); + + if(!red_color || !green_color || !blue_color || !white_color) return FALSE; + + cmsCIEXYZ_to_xy(red_color, primaries[0]); + cmsCIEXYZ_to_xy(green_color, primaries[1]); + cmsCIEXYZ_to_xy(blue_color, primaries[2]); + cmsCIEXYZ_to_xy(white_color, whitepoint); + + return TRUE; +} + +void dt_make_transposed_matrices_from_primaries_and_whitepoint(const float primaries[3][2], + const float whitepoint[2], + dt_colormatrix_t RGB_to_XYZ_transposed) +{ + // http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html + dt_colormatrix_t primaries_matrix = { { 0.f } }; + for(size_t i = 0; i < 3; i++) + { + // N.B. compared to linked equations, our matrix is transposed + primaries_matrix[i][0] = primaries[i][0] / primaries[i][1]; + primaries_matrix[i][1] = 1.f; + primaries_matrix[i][2] = (1.f - primaries[i][0] - primaries[i][1]) / primaries[i][1]; + } + + dt_colormatrix_t primaries_inverse = { { 0.f } }; + mat3SSEinv(primaries_inverse, primaries_matrix); + dt_aligned_pixel_t scale; + const dt_aligned_pixel_t XYZ_white + = { whitepoint[0] / whitepoint[1], 1.f, (1.f - whitepoint[0] - whitepoint[1]) / whitepoint[1] }; + dt_apply_transposed_color_matrix(XYZ_white, primaries_inverse, scale); + + for(size_t i = 0; i < 3; i++) + for(size_t j = 0; j < 3; j++) RGB_to_XYZ_transposed[i][j] = scale[i] * primaries_matrix[i][j]; +} + // clang-format off // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py // vim: shiftwidth=2 expandtab tabstop=2 cindent diff -Nru darktable-4.4.2/src/common/colorspaces.h darktable-4.6.1/src/common/colorspaces.h --- darktable-4.4.2/src/common/colorspaces.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/colorspaces.h 2024-02-16 17:31:09.000000000 +0000 @@ -27,6 +27,19 @@ #define TYPE_XYZA_FLT (FLOAT_SH(1)|COLORSPACE_SH(PT_XYZ)|EXTRA_SH(1)|CHANNELS_SH(3)|BYTES_SH(4)) #endif +/** colorspace enums, must be in synch with dt_iop_colorspace_type_t + * in color_conversion.cl */ +typedef enum dt_iop_colorspace_type_t +{ + IOP_CS_NONE = -1, + IOP_CS_RAW = 0, + IOP_CS_LAB = 1, + IOP_CS_RGB = 2, + IOP_CS_LCH = 3, + IOP_CS_HSL = 4, + IOP_CS_JZCZHZ = 5, +} dt_iop_colorspace_type_t; + // max iccprofile file name length #define DT_IOP_COLOR_ICC_LEN 512 @@ -80,7 +93,8 @@ DT_COLORSPACE_HLG_REC2020 = 23, DT_COLORSPACE_PQ_P3 = 24, DT_COLORSPACE_HLG_P3 = 25, - DT_COLORSPACE_LAST = 26 + DT_COLORSPACE_DISPLAY_P3 = 26, + DT_COLORSPACE_LAST = 27 } dt_colorspaces_color_profile_type_t; typedef enum dt_colorspaces_color_mode_t @@ -214,40 +228,61 @@ cmsHPROFILE dt_colorspaces_create_alternate_profile(const char *makermodel); /** return the work profile as set in colorin */ -const dt_colorspaces_color_profile_t *dt_colorspaces_get_work_profile(const dt_imgid_t imgid); +const dt_colorspaces_color_profile_t *dt_colorspaces_get_work_profile + (const dt_imgid_t imgid); -/** return the output profile as set in colorout, taking export override into account if passed in. */ -const dt_colorspaces_color_profile_t *dt_colorspaces_get_output_profile(const dt_imgid_t imgid, - dt_colorspaces_color_profile_type_t over_type, - const char *over_filename); - -/** return an rgb lcms2 profile from data. if data points to a grayscale profile a new rgb profile is created - * that has the same TRC, black and white point and rec709 primaries. */ -cmsHPROFILE dt_colorspaces_get_rgb_profile_from_mem(uint8_t *data, uint32_t size); +/** return the output profile as set in colorout, taking export + * override into account if passed in. */ +const dt_colorspaces_color_profile_t *dt_colorspaces_get_output_profile + (const dt_imgid_t imgid, + dt_colorspaces_color_profile_type_t over_type, + const char *over_filename); + +/** return an rgb lcms2 profile from data. if data points to a + * grayscale profile a new rgb profile is created that has the same + * TRC, black and white point and rec709 primaries. */ +cmsHPROFILE dt_colorspaces_get_rgb_profile_from_mem(uint8_t *data, + const uint32_t size); /** free the resources of a profile created with the functions above. */ void dt_colorspaces_cleanup_profile(cmsHPROFILE p); /** extracts tonecurves and color matrix prof to XYZ from a given input profile, returns 0 on success (curves * and matrix are inverted for input) */ -int dt_colorspaces_get_matrix_from_input_profile(cmsHPROFILE prof, dt_colormatrix_t matrix, float *lutr, float *lutg, - float *lutb, const int lutsize); - -/** extracts tonecurves and color matrix prof to XYZ from a given output profile, returns 0 on success. */ -int dt_colorspaces_get_matrix_from_output_profile(cmsHPROFILE prof, dt_colormatrix_t matrix, float *lutr, float *lutg, - float *lutb, const int lutsize); +int dt_colorspaces_get_matrix_from_input_profile(cmsHPROFILE prof, + dt_colormatrix_t matrix, + float *lutr, + float *lutg, + float *lutb, + const int lutsize); + +/** extracts tonecurves and color matrix prof to XYZ from a given + * output profile, returns 0 on success. */ +int dt_colorspaces_get_matrix_from_output_profile(cmsHPROFILE prof, + dt_colormatrix_t matrix, + float *lutr, + float *lutg, + float *lutb, + const int lutsize); /** wrapper to get the name from a color profile. this tries to handle character encodings. */ -void dt_colorspaces_get_profile_name(cmsHPROFILE p, const char *language, const char *country, char *name, - size_t len); +void dt_colorspaces_get_profile_name(cmsHPROFILE p, + const char *language, + const char *country, + char *name, + const size_t len); /** get a nice printable name. */ -const char *dt_colorspaces_get_name(dt_colorspaces_color_profile_type_t type, const char *filename); +const char *dt_colorspaces_get_name(dt_colorspaces_color_profile_type_t type, + const char *filename); /** common functions to change between colorspaces, used in iop modules */ //void rgb2hsl(const dt_aligned_pixel_t rgb, float *h, float *s, float *l); //void hsl2rgb(dt_aligned_pixel_t rgb, float h, float s, float l); -static inline void rgb2hsl(const dt_aligned_pixel_t rgb, float *h, float *s, float *l) +static inline void rgb2hsl(const dt_aligned_pixel_t rgb, + float *h, + float *s, + float *l) { const float r = rgb[0], g = rgb[1], b = rgb[2]; const float pmax = fmaxf(r, fmax(g, b)); @@ -282,7 +317,8 @@ static inline float hue2rgb(float m1, float m2, float hue) { // compute the value for one of the RGB channels from the hue angle. - // If 1 <= angle < 3, return m2; if 4 <= angle <= 6, return m1; otherwise, linearly interpolate between m1 and m2. + // If 1 <= angle < 3, return m2; if 4 <= angle <= 6, return m1; + // otherwise, linearly interpolate between m1 and m2. if(hue < 1.0f) return (m1 + (m2 - m1) * hue); else if(hue < 3.0f) @@ -312,21 +348,26 @@ /** trigger updating the display profile from the system settings (x atom, colord, ...) */ -void dt_colorspaces_set_display_profile(const dt_colorspaces_color_profile_type_t profile_type); +void dt_colorspaces_set_display_profile + (const dt_colorspaces_color_profile_type_t profile_type); /** get the profile described by type & filename. * this doesn't support image specifics like embedded profiles or camera matrices */ const dt_colorspaces_color_profile_t * -dt_colorspaces_get_profile(dt_colorspaces_color_profile_type_t type, const char *filename, - dt_colorspaces_profile_direction_t direction); +dt_colorspaces_get_profile(dt_colorspaces_color_profile_type_t type, + const char *filename, + const dt_colorspaces_profile_direction_t direction); /** check whether filename is the same profil as fullname, this is taking into account that * fullname is always the fullpathname to the profile and filename may be a full pathname * or just a base name */ -gboolean dt_colorspaces_is_profile_equal(const char *fullname, const char *filename); +gboolean dt_colorspaces_is_profile_equal(const char *fullname, + const char *filename); /** try to infer profile type from CICP */ -dt_colorspaces_color_profile_type_t dt_colorspaces_cicp_to_type(const dt_colorspaces_cicp_t *cicp, const char *filename); +dt_colorspaces_color_profile_type_t dt_colorspaces_cicp_to_type + (const dt_colorspaces_cicp_t *cicp, + const char *filename); /** update the display transforms of srgb and adobergb to the display profile. * make sure that darktable.color_profiles->xprofile_lock is held when calling this! */ @@ -335,23 +376,46 @@ void dt_colorspaces_update_display2_transforms(); /** Calculate CAM->XYZ, XYZ->CAM matrices **/ -int dt_colorspaces_conversion_matrices_xyz(const float adobe_XYZ_to_CAM[4][3], float in_XYZ_to_CAM[9], double XYZ_to_CAM[4][3], double CAM_to_XYZ[3][4]); +int dt_colorspaces_conversion_matrices_xyz(const float adobe_XYZ_to_CAM[4][3], + float in_XYZ_to_CAM[9], + double XYZ_to_CAM[4][3], + double CAM_to_XYZ[3][4]); /** Calculate CAM->RGB, RGB->CAM matrices and default WB multipliers */ -int dt_colorspaces_conversion_matrices_rgb(const float adobe_XYZ_to_CAM[4][3], double RGB_to_CAM[4][3], double CAM_to_RGB[3][4], const float *embedded_matrix, double mul[4]); +int dt_colorspaces_conversion_matrices_rgb(const float adobe_XYZ_to_CAM[4][3], + double RGB_to_CAM[4][3], + double CAM_to_RGB[3][4], + const float *embedded_matrix, + double mul[4]); /** Applies CYGM WB coeffs to an image that's already been converted to RGB by dt_colorspaces_cygm_to_rgb */ -void dt_colorspaces_cygm_apply_coeffs_to_rgb(float *out, const float *in, int num, double RGB_to_CAM[4][3], double CAM_to_RGB[3][4], dt_aligned_pixel_t coeffs); +void dt_colorspaces_cygm_apply_coeffs_to_rgb(float *out, + const float *in, + const int num, + double RGB_to_CAM[4][3], + double CAM_to_RGB[3][4], + const dt_aligned_pixel_t coeffs); /** convert CYGM buffer to RGB */ -void dt_colorspaces_cygm_to_rgb(float *out, int num, double CAM_to_RGB[3][4]); +void dt_colorspaces_cygm_to_rgb(float *out, + const int num, + const double CAM_to_RGB[3][4]); /** convert RGB buffer to CYGM */ -void dt_colorspaces_rgb_to_cygm(float *out, int num, double RGB_to_CAM[4][3]); +void dt_colorspaces_rgb_to_cygm(float *out, + const int num, + const double RGB_to_CAM[4][3]); + +gboolean dt_colorspaces_get_primaries_and_whitepoint_from_profile(cmsHPROFILE prof, float primaries[3][2], + float whitepoint[2]); + +/** Calculate RGB <-> XYZ matrices from the given primaries and whitepoint */ +void dt_make_transposed_matrices_from_primaries_and_whitepoint(const float primaries[3][2], + const float whitepoint[2], + dt_colormatrix_t RGB_to_XYZ_transposed); // clang-format off // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/common/colorspaces_inline_conversions.h darktable-4.6.1/src/common/colorspaces_inline_conversions.h --- darktable-4.4.2/src/common/colorspaces_inline_conversions.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/colorspaces_inline_conversions.h 2024-02-16 17:31:09.000000000 +0000 @@ -1355,9 +1355,9 @@ // L_star upper limit is 2.098883786377 truncated to 32-bit float and last decimal removed. // By clipping L_star to this limit, we ensure dt_UCS_L_star_to_Y() doesn't divide by zero. -static const float DT_UCS_L_STAR_UPPER_LIMIT = 2.098883f; +static const float DT_UCS_L_STAR_UPPER_LIMIT = 2.09885f; // Y upper limit is calculated from the above L star upper limit. -static const float DT_UCS_Y_UPPER_LIMIT = 13237757000.f; +static const float DT_UCS_Y_UPPER_LIMIT = 1e8f; #ifdef _OPENMP diff -Nru darktable-4.4.2/src/common/cpuid.c darktable-4.6.1/src/common/cpuid.c --- darktable-4.4.2/src/common/cpuid.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/cpuid.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,102 +0,0 @@ -/* - This file is part of darktable, - Copyright (C) 2014-2021 darktable developers. - - darktable is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - darktable is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with darktable. If not, see <http://www.gnu.org/licenses/>. - - Original sources: - LensFun library, - original file lensfun/libs/lensfun/cpuid.cpp, licensed under LGPL-3 - Copyright (C) 2010 by Andrew Zabolotny - which was taken from RawStudio, - original file rawstudio/librawstudio/rs-utils.c, licensed under GPL-2+ - Copyright (C) 2006-2011 Anders Brander <anders@brander.dk>, - Anders Kvist <akv@lnxbx.dk> and Klaus Post <klauspost@gmail.com> - */ - -#include "config.h" -#include "cpuid.h" -#include "common/darktable.h" -#include <glib.h> - -#ifdef HAVE_CPUID_H -#include <cpuid.h> -#endif - -#if defined(HAVE___GET_CPUID) -dt_cpu_flags_t dt_detect_cpu_features() -{ - guint32 ax, bx, cx, dx; - static dt_cpu_flags_t cpuflags = 0; - static GMutex lock; - - g_mutex_lock(&lock); - if(__get_cpuid(0x00000000,&ax,&bx,&cx,&dx)) - { - /* Request for standard features */ - if(__get_cpuid(0x00000001,&ax,&bx,&cx,&dx)) - { - if(dx & 0x00800000) cpuflags |= CPU_FLAG_MMX; - if(dx & 0x02000000) cpuflags |= CPU_FLAG_SSE; - if(dx & 0x04000000) cpuflags |= CPU_FLAG_SSE2; - if(dx & 0x00008000) cpuflags |= CPU_FLAG_CMOV; - - if(cx & 0x00000001) cpuflags |= CPU_FLAG_SSE3; - if(cx & 0x00000200) cpuflags |= CPU_FLAG_SSSE3; - if(cx & 0x00040000) cpuflags |= CPU_FLAG_SSE4_1; - if(cx & 0x00080000) cpuflags |= CPU_FLAG_SSE4_2; - - if(cx & 0x08000000) cpuflags |= CPU_FLAG_AVX; - } - - /* Are there extensions? */ - if(__get_cpuid(0x80000000,&ax,&bx,&cx,&dx)) - { - /* Ask extensions */ - if(__get_cpuid(0x80000001,&ax,&bx,&cx,&dx)) - { - if(dx & 0x80000000) cpuflags |= CPU_FLAG_3DNOW; - if(dx & 0x40000000) cpuflags |= CPU_FLAG_3DNOW_EXT; - if(dx & 0x00400000) cpuflags |= CPU_FLAG_AMD_ISSE; - } - } - fprintf(stderr,"\nfound cpuid instruction, dtflags %x",cpuflags); - } - g_mutex_unlock(&lock); - return cpuflags; -} -#elif defined(__riscv) && __riscv_xlen == 64 -dt_cpu_flags_t dt_detect_cpu_features() -{ - static dt_cpu_flags_t cpuflags = 0; - return cpuflags; -} -#else -dt_cpu_flags_t dt_detect_cpu_features() -{ - static dt_cpu_flags_t cpuflags = 0; - - fprintf(stderr, "[dt_detect_cpu_features] Not implemented for this architecture.\n"); - fprintf(stderr, "[dt_detect_cpu_features] Please contribute a patch.\n"); - - return cpuflags; -} -#endif /* defined(HAVE___GET_CPUID) */ - -// clang-format off -// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py -// vim: shiftwidth=2 expandtab tabstop=2 cindent -// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; -// clang-format on - diff -Nru darktable-4.4.2/src/common/cpuid.h darktable-4.6.1/src/common/cpuid.h --- darktable-4.4.2/src/common/cpuid.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/cpuid.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ -/* - This file is part of darktable, - Copyright (C) 2014-2020 darktable developers. - - darktable is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - darktable is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with darktable. If not, see <http://www.gnu.org/licenses/>. -*/ - -#pragma once - -#include <glib.h> - -typedef enum dt_cpu_flags_t -{ - CPU_FLAG_MMX = 1 << 0, - CPU_FLAG_SSE = 1 << 1, - CPU_FLAG_CMOV = 1 << 2, - CPU_FLAG_3DNOW = 1 << 3, - CPU_FLAG_3DNOW_EXT = 1 << 4, - CPU_FLAG_AMD_ISSE = 1 << 5, - CPU_FLAG_SSE2 = 1 << 6, - CPU_FLAG_SSE3 = 1 << 7, - CPU_FLAG_SSSE3 = 1 << 8, - CPU_FLAG_SSE4_1 = 1 << 9, - CPU_FLAG_SSE4_2 = 1 << 10, - CPU_FLAG_AVX = 1 << 11 -} dt_cpu_flags_t; - -dt_cpu_flags_t dt_detect_cpu_features(); - -// clang-format off -// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py -// vim: shiftwidth=2 expandtab tabstop=2 cindent -// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; -// clang-format on - diff -Nru darktable-4.4.2/src/common/curve_tools.h darktable-4.6.1/src/common/curve_tools.h --- darktable-4.4.2/src/common/curve_tools.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/curve_tools.h 2024-02-16 17:31:09.000000000 +0000 @@ -19,6 +19,8 @@ Copyright 2004-2008 by Shawn Freeman, Udi Fuchs */ +#include <inttypes.h> + #pragma once // Curve Types @@ -55,7 +57,7 @@ typedef struct { // Type for this curve - unsigned int m_spline_type; + uint32_t m_spline_type; // Box data float m_min_x; @@ -64,7 +66,7 @@ float m_max_y; // Number of anchor points - unsigned char m_numAnchors; + uint8_t m_numAnchors; // contains a list of anchors, 2 floats per each point, x-y format // max is 20 points @@ -75,11 +77,11 @@ typedef struct { // Number of samples to use for the curve. - unsigned int m_samplingRes; - unsigned int m_outputRes; + uint32_t m_samplingRes; + uint32_t m_outputRes; // Sampling array - unsigned short int *m_Samples; // jo: changed to short int to save memory + uint16_t *m_Samples; // jo: changed to short int to save memory } CurveSample; diff -Nru darktable-4.4.2/src/common/custom_primaries.c darktable-4.6.1/src/common/custom_primaries.c --- darktable-4.4.2/src/common/custom_primaries.c 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/common/custom_primaries.c 2024-02-16 17:31:09.000000000 +0000 @@ -0,0 +1,94 @@ +/* + * This file is part of darktable, + * Copyright (C) 2023 darktable developers. + * + * darktable is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * darktable is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with darktable. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "common/custom_primaries.h" +#include <float.h> + + +static inline float _determinant(const float a, + const float b, + const float c, + const float d) +{ + return a * d - b * c; +} + +static inline float _intersect_line_segments(const float x1, + const float y1, + const float x2, + const float y2, + const float x3, + const float y3, + const float x4, + const float y4) +{ + const float denominator = _determinant(x1 - x2, x3 - x4, y1 - y2, y3 - y4); + if(denominator == 0.f) + return FLT_MAX; // lines don't intersect + + const float t = _determinant(x1 - x3, x3 - x4, y1 - y3, y3 - y4) / denominator; + if(t >= 0.f) + return t; + return FLT_MAX; // intersection is in the wrong direction +} + +static inline float _find_distance_to_edge + (const dt_iop_order_iccprofile_info_t *const profile, + const float cos_angle, + const float sin_angle) +{ + const float x1 = profile->whitepoint[0]; + const float y1 = profile->whitepoint[1]; + const float x2 = x1 + cos_angle; + const float y2 = y1 + sin_angle; + + float distance_to_edge = FLT_MAX; + for(size_t i = 0; i < 3; i++) + { + const size_t next_i = i == 2 ? 0 : i + 1; + const float x3 = profile->primaries[i][0]; + const float y3 = profile->primaries[i][1]; + const float x4 = profile->primaries[next_i][0]; + const float y4 = profile->primaries[next_i][1]; + const float distance = _intersect_line_segments(x1, y1, x2, y2, x3, y3, x4, y4); + if(distance < distance_to_edge) + distance_to_edge = distance; + } + + return distance_to_edge; +} + +void dt_rotate_and_scale_primary(const dt_iop_order_iccprofile_info_t *const profile, + const float scaling, + const float rotation, + const size_t primary_index, + float new_xy[2]) +{ + // Generate a custom set of tone mapping primaries by scaling + // and rotating the primaries of the given profile. + const float dx = profile->primaries[primary_index][0] - profile->whitepoint[0]; + const float dy = profile->primaries[primary_index][1] - profile->whitepoint[1]; + const float angle = atan2f(dy, dx) + rotation; + const float cos_angle = cosf(angle); + const float sin_angle = sinf(angle); + const float distance_to_edge = _find_distance_to_edge(profile, cos_angle, sin_angle); + const float dx_new = scaling * distance_to_edge * cos_angle; + const float dy_new = scaling * distance_to_edge * sin_angle; + new_xy[0] = dx_new + profile->whitepoint[0]; + new_xy[1] = dy_new + profile->whitepoint[1]; +} diff -Nru darktable-4.4.2/src/common/custom_primaries.h darktable-4.6.1/src/common/custom_primaries.h --- darktable-4.4.2/src/common/custom_primaries.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/common/custom_primaries.h 2024-02-16 17:31:09.000000000 +0000 @@ -0,0 +1,32 @@ +/* + * This file is part of darktable, + * Copyright (C) 2023 darktable developers. + * + * darktable is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * darktable is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with darktable. If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#include "common/iop_profile.h" +#include "dttypes.h" + +// Make a set of custom primaries starting from the primaries of the given profile. +// Rotate the chromaticity angles about the white point, +// along the profile gamut footprint boundary by the given amounts. +// Then scale them by the given amounts. +void dt_rotate_and_scale_primary(const dt_iop_order_iccprofile_info_t *const profile, + const float scaling, + const float rotation, + const size_t primary_index, + float new_xy[2]); diff -Nru darktable-4.4.2/src/common/darktable.c darktable-4.6.1/src/common/darktable.c --- darktable-4.4.2/src/common/darktable.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/darktable.c 2024-02-16 17:31:09.000000000 +0000 @@ -41,7 +41,6 @@ #endif #include "bauhaus/bauhaus.h" #include "common/action.h" -#include "common/cpuid.h" #include "common/file_location.h" #include "common/film.h" #include "common/grealpath.h" @@ -122,52 +121,177 @@ char *logfile = g_build_filename(g_get_user_cache_dir(), "darktable", "darktable-log.txt", NULL); #endif // clang-format off - printf("usage: %s [options] [IMG_1234.{RAW,..}|image_folder/]\n", argv0); - printf("\n"); - printf("options:\n"); - printf("\n"); - printf(" --cachedir <user cache directory>\n"); - printf(" --conf <key>=<value>\n"); - printf(" --configdir <user config directory>\n"); - printf(" -d {act_on,cache,camctl,camsupport,control,dev,imageio,\n"); - printf(" input,ioporder,lighttable,lua,masks,memory,nan,opencl,params,\n"); - printf(" perf,print,pwstorage,signal,sql,tiling,undo,verbose,pipe,\n"); - printf(" all,common (-d dev,imageio,masks,opencl,params,pipe)}\n"); - printf(" --d-signal <signal> \n"); - printf(" --d-signal-act <all,raise,connect,disconnect"); - // clang-format on -#ifdef DT_HAVE_SIGNAL_TRACE - printf(",print-trace"); + +// Rewriting this following GNU Standards for Command Line Interfaces and other best practices +// ref. https://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces +// ref. https://clig.dev/#introduction +// +// Trying to keep the length of the text within 80 columns +// Using 2-4 spaces for the indentation of the inline help + + printf("darktable %s\n" + "Copyright (C) 2012-%s Johannes Hanika and other contributors.\n\n" + "<https://www.darktable.org>\n" + "darktable is an open source photography workflow application and\n" + "non-destructive raw developer for photographers.\n" + "GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>\n" + "This is free software: you are free to change and redistribute it.\n" + "There is NO WARRANTY, to the extent permitted by law.\n\n", + darktable_package_version, + darktable_last_commit_year); + + printf("Usage:\n" + " darktable [OPTIONS] [IMAGE_FILE | IMAGE_FOLDER]\n" + "\n" + "Options:\n" + "\n" + "--cachedir DIR\n" + " darktable keeps a cache of image thumbnails for fast image preview\n" + " and precompiled OpenCL binaries for fast startup. By default the\n" + " cache is located in $HOME/.cache/darktable/. Multiple thumbnail\n" + " caches may exist in parallel, one for each library file.\n" + "\n" + "--conf KEY=VALUE\n" + " Temporarily overwrite individual settings on the command line with\n" + " this option - these settings will not be stored in darktablerc\n" + " on exit.\n" + "\n" + "--configdir DIR\n" + " Where darktable stores user-specific configuration.\n" + " The default location is $HOME/.config/darktable/\n" + "\n" + "--datadir DIR\n" + " Define the directory where darktable finds its runtime data.\n" + " The default location depends on your installation.\n" + " Typical locations are /opt/darktable/share/darktable/ \n" + " and /usr/share/darktable/\n" + "\n" + "--library FILE\n" + " Specifies an alternate location for darktable's image information database,\n" + " which is stored in an SQLite file by default (library.db) in the directory\n" + " specified by --configdir or $HOME/.config/darktable/. You can use this\n" + " option for experimentation without affecting your original library.db.\n" + " If the specified database file doesn't exist, darktable will create it.\n" + "\n" + " When darktable starts, it locks the library to the current user by writing\n" + " the process identifier (PID) to a lock file named FILE.lock next to the\n" + " specified library. If a lock file already exists, darktable will exit.\n" + "\n" + " :memory: -> Use this option as FILE to keep the database in system memory,\n" + " discarding changes on darktable termination.\n" + "\n" + "--localedir DIR\n" + " Define where darktable can find its language-specific text\n" + " strings. The default location depends on your installation.\n" + " Typical locations are /opt/darktable/share/locale/\n" + " and /usr/share/locale/\n" + "\n" +#ifdef USE_LUA + "--luacmd COMMAND\n" + " A string containing lua commands to execute after lua\n" + " initialization. These commands will be run after your “luarc”\n" + " file. If lua is not compiled-in, this option will be accepted\n" + " but won't do anything.\n" + "\n" +#endif + "--moduledir DIR\n" + " darktable has a modular structure and organizes its modules as\n" + " shared libraries for loading at runtime.\n" + " This option tells darktable where to look for its shared libraries.\n" + " The default location depends on your installation.\n" + " Typical locations are /opt/darktable/lib64/darktable/\n" + " and /usr/lib64/darktable/\n" + "\n" + "--noiseprofiles FILE\n" + " Provide a json file that contains camera-specific noise profiles.\n" + " The default location depends on your installation.\n" + " Typical locations are /opt/darktable/share/darktable/noiseprofile.json\n" + " and /usr/share/darktable/noiseprofile.json\n" + "\n" + "-t, --threads NUM\n" + " Limit number of openmp threads to use in openmp parallel sections\n" + "\n" + "--tmpdir DIR\n" + " Define where darktable should store its temporary files.\n" + " If this option is not supplied darktable uses the system default.\n" + "\n" + "-v, --version\n" + " Print darktable version number\n" + "\n" +#ifdef _WIN32 + "-h, --help, /?\n" +#else + "-h, --help\n" #endif - printf(">\n"); - printf(" --datadir <data directory>\n"); + " Show this help text\n" + "\n" + "Debugging:\n\n" + "--bench-module MODULE_A,MODULE_B\n" + "\n" #ifdef HAVE_OPENCL - printf(" --disable-opencl\n"); -#endif - printf(" --disable-pipecache\n"); - printf(" --dump-pfm <modulea,moduleb>\n"); - printf(" --dump-pipe <modulea,moduleb>\n"); - printf(" --bench-module <modulea,moduleb>\n"); - printf(" --library <library file>\n"); - printf(" --localedir <locale directory>\n"); -#ifdef USE_LUA - printf(" --luacmd <lua command>\n"); + "--disable-opencl\n" + " Prevent darktable from initializing the OpenCL subsystem.\n" + "\n" +#endif + "--disable-pipecache\n" + " Disable the pixelpipe cache. This option allows only\n" + " two cachelines per pipe, and should be used for debugging\n" + " purposes only.\n" + "\n" + "--dump-pfm MODULE_A,MODULE_B\n" + "\n" + "--dump-pipe MODULE_A,MODULE_B\n" + "\n" + "--dumpdir DIR\n" + "\n" + "-d SIGNAL\n" + " Enable debug output to the terminal. Valid signals are:\n\n" + " act_on, cache, camctl, camsupport, control, dev, expose,\n" + " imageio, input, ioporder, lighttable, lua, masks, memory,\n" + " nan, opencl, params, perf, pipe, print, pwstorage, signal,\n" + " sql, tiling, undo\n" + "\n" + " all -> to debug all signals\n" + " common -> to debug dev, imageio, masks, opencl, params, pipe\n" + " verbose -> when combined with debug options like '-d opencl'\n" + " provides more detailed output. To activate verbosity,\n" + " use the additional option '-d verbose'\n" + " even when using '-d all'.\n" + "\n" + " There are several subsystems of darktable and each of them can be\n" + " debugged separately. You can use this option multiple times if you\n" + " want to debug more than one subsystem.\n" + "\n" + " E.g. darktable -d opencl -d camctl -d perf\n" + "\n" + "--d-signal SIGNAL\n" + " if -d signal or -d all is specified, specify the signal to debug\n" + " using this option. Specify ALL to debug all signals or specify\n" + " signal using it's full name. Can be used multiple times.\n" + "\n" + "--d-signal-act SIGNAL_ACT\n" + "\n" + " Valid SIGNAL_ACT are:\n" + " all, raise, connect, disconnect" +#ifdef DT_HAVE_SIGNAL_TRACE + ", print-trace\n" #endif - printf(" --moduledir <module directory>\n"); - printf(" --noiseprofiles <noiseprofiles json file>\n"); - printf(" --threads <num> | -t <num> openmp threads>\n"); - printf(" --tmpdir <tmp directory>\n"); - printf(" --version\n"); - printf(" --help -h"); + "\n" + " If -d signal or -d all is specified, specify the signal action\n" + " to debug using this option.\n"); #ifdef _WIN32 - printf(", /?\n"); - printf("\n"); - printf(" note: debug log and output will be written to this file:\n"); - printf(" %s\n", logfile); + printf("\n\n"); + printf("Debug log and output will be written to this file:\n"); + printf(" %s\n", logfile); #else printf("\n"); #endif + printf("See %s for more detailed documentation.\n" + "See %s to report bugs.\n", + PACKAGE_DOCS, + PACKAGE_BUGREPORT); + #ifdef _WIN32 g_free(logfile); #endif @@ -175,6 +299,7 @@ return 1; } +// clang-format on gboolean dt_is_dev_version() { // a dev version as an odd number after the first dot @@ -309,37 +434,14 @@ static void dt_codepaths_init() { -#ifdef HAVE_BUILTIN_CPU_SUPPORTS - __builtin_cpu_init(); -#endif + // we no longer do explicit runtime selection of code paths, so initialize to "none" + // (there are still functions where the compiler creates runtime selection due to "target_clones" + // directives, but those are not affected by this code) memset(&(darktable.codepath), 0, sizeof(darktable.codepath)); - // first, enable whatever codepath this CPU supports - { -#ifdef HAVE_BUILTIN_CPU_SUPPORTS - darktable.codepath.SSE2 = (__builtin_cpu_supports("sse") - && __builtin_cpu_supports("sse2")); -#else - dt_cpu_flags_t flags = dt_detect_cpu_features(); - darktable.codepath.SSE2 = ((flags & (CPU_FLAG_SSE)) && (flags & (CPU_FLAG_SSE2))); -#endif - } - - // second, apply overrides from conf - // NOTE: all intrinsics sets can only be overridden to OFF - if(!dt_conf_get_bool("codepaths/sse2")) darktable.codepath.SSE2 = 0; - - // last: do we have any intrinsics sets enabled? - darktable.codepath._no_intrinsics = !(darktable.codepath.SSE2); - -#if defined(__SSE__) - if(darktable.codepath._no_intrinsics) - { - dt_print(DT_DEBUG_ALWAYS, - "[dt_codepaths_init] SSE2-optimized codepath is disabled or unavailable.\n"); - } -#endif + // do we have any intrinsics sets enabled? (nope) + darktable.codepath._no_intrinsics = 1; } static inline size_t _get_total_memory() @@ -435,7 +537,7 @@ snprintf(path, sizeof(path), "%s/%s", darktable.tmp_directory, pipe); if(!dt_util_test_writable_dir(path)) { - if(g_mkdir(path, 0750)) + if(g_mkdir_with_parents(path, 0750)) { dt_print(DT_DEBUG_ALWAYS, "%20s can't create directory '%s'\n", head, path); return; @@ -512,6 +614,166 @@ dt_dump_pfm_file(pipe, data, width, height, bpp, mod, "[dt_dump_pipe_pfm]", input, !input, TRUE); } +static int32_t _detect_opencl_job_run(dt_job_t *job) +{ + darktable.opencl = (dt_opencl_t *)calloc(1, sizeof(dt_opencl_t)); + dt_opencl_init(darktable.opencl, GPOINTER_TO_INT(dt_control_job_get_params(job)), TRUE); + return 0; +} + +static dt_job_t *_detect_opencl_job_create(gboolean exclude_opencl) +{ + dt_job_t *job = dt_control_job_create(&_detect_opencl_job_run, "detect opencl devices"); + if(!job) return NULL; + dt_control_job_set_params(job, GINT_TO_POINTER(exclude_opencl), NULL); + return job; +} + +static int32_t _backthumbs_job_run(dt_job_t *job) +{ + dt_update_thumbs_thread(dt_control_job_get_params(job)); + return 0; +} + +static dt_job_t *_backthumbs_job_create(void) +{ + dt_job_t *job = dt_control_job_create(&_backthumbs_job_run, "generate mipmaps"); + if(!job) return NULL; + dt_control_job_set_params(job, NULL, NULL); + return job; +} + +void dt_start_backtumbs_crawler(void) +{ + // don't write thumbs if using memory database or on a non-sufficient system + if(!darktable.backthumbs.running && darktable.backthumbs.capable) + dt_control_add_job(darktable.control, DT_JOB_QUEUE_SYSTEM_BG, + _backthumbs_job_create()); +} + +static char *_get_version_string(void) +{ +#ifdef USE_LUA + const char *lua_api_version = strcmp(LUA_API_VERSION_SUFFIX, "") ? + STR(LUA_API_VERSION_MAJOR) "." + STR(LUA_API_VERSION_MINOR) "." + STR(LUA_API_VERSION_PATCH) "-" + LUA_API_VERSION_SUFFIX : + STR(LUA_API_VERSION_MAJOR) "." + STR(LUA_API_VERSION_MINOR) "." + STR(LUA_API_VERSION_PATCH) "\n"; +#endif +char *version = g_strdup_printf("darktable %s\nCopyright (C) 2012-%s Johannes Hanika and other contributors.\n\n" + "Compile options:\n" + " Bit depth -> %zu bit\n" + "%s%s%s\n" + "See %s for detailed documentation.\n" + "See %s to report bugs.\n", + darktable_package_version, + darktable_last_commit_year, + CHAR_BIT * sizeof(void *), + +#ifdef _DEBUG + " Debug -> ENABLED\n" +#else + " Debug -> DISABLED\n" +#endif + +#if defined(__SSE2__) && defined(__SSE__) + " SSE2 optimizations -> ENABLED\n" +#else + " SSE2 optimizations -> DISABLED\n" +#endif + +#ifdef _OPENMP + " OpenMP -> ENABLED\n" +#else + " OpenMP -> DISABLED\n" +#endif + +#ifdef HAVE_OPENCL + " OpenCL -> ENABLED\n" +#else + " OpenCL -> DISABLED\n" +#endif + +#ifdef USE_LUA + " Lua -> ENABLED - API version ", lua_api_version, +#else + " Lua -> DISABLED", "\n", +#endif + +#ifdef USE_COLORDGTK + " Colord -> ENABLED\n" +#else + " Colord -> DISABLED\n" +#endif + +#ifdef HAVE_GPHOTO2 + " gPhoto2 -> ENABLED\n" +#else + " gPhoto2 -> DISABLED\n" +#endif + +#ifdef HAVE_GMIC + " GMIC -> ENABLED - Compressed LUTs are supported\n" +#else + " GMIC -> DISABLED - Compressed LUTs are NOT supported\n" +#endif + +#ifdef HAVE_GRAPHICSMAGICK + " GraphicsMagick -> ENABLED\n" +#else + " GraphicsMagick -> DISABLED\n" +#endif + +#ifdef HAVE_IMAGEMAGICK + " ImageMagick -> ENABLED\n" +#else + " ImageMagick -> DISABLED\n" +#endif + +#ifdef HAVE_LIBAVIF + " libavif -> ENABLED\n" +#else + " libavif -> DISABLED\n" +#endif + +#ifdef HAVE_LIBHEIF + " libheif -> ENABLED\n" +#else + " libheif -> DISABLED\n" +#endif + +#ifdef HAVE_LIBJXL + " libjxl -> ENABLED\n" +#else + " libjxl -> DISABLED\n" +#endif + +#ifdef HAVE_OPENJPEG + " OpenJPEG -> ENABLED\n" +#else + " OpenJPEG -> DISABLED\n" +#endif + +#ifdef HAVE_OPENEXR + " OpenEXR -> ENABLED\n" +#else + " OpenEXR -> DISABLED\n" +#endif + +#ifdef HAVE_WEBP + " WebP -> ENABLED\n", +#else + " WebP -> DISABLED\n", +#endif + + PACKAGE_DOCS, + PACKAGE_BUGREPORT); + + return version; +} int dt_init(int argc, char *argv[], const gboolean init_gui, const gboolean load_data, lua_State *L) { @@ -528,15 +790,6 @@ dt_set_signal_handlers(); - gboolean sse2_supported = FALSE; -#ifdef HAVE_BUILTIN_CPU_SUPPORTS - // NOTE: _may_i_use_cpu_feature() looks better, but only available in ICC - __builtin_cpu_init(); - sse2_supported = __builtin_cpu_supports("sse2"); -#else - sse2_supported = dt_detect_cpu_features() & CPU_FLAG_SSE2; -#endif - #ifdef M_MMAP_THRESHOLD mallopt(M_MMAP_THRESHOLD, 128 * 1024); /* use mmap() for large allocations */ #endif @@ -548,10 +801,6 @@ memset(&darktable, 0, sizeof(darktable_t)); darktable.start_wtime = start_wtime; - if(!sse2_supported) - dt_print - (DT_DEBUG_ALWAYS, - "[dt_init] SSE2 is unavailable, some functions will be noticeably slower.\n"); darktable.progname = argv[0]; @@ -614,116 +863,15 @@ { return usage(argv[0]); } - else if(!strcmp(argv[k], "--version")) - { -#ifdef USE_LUA - const char *lua_api_version = strcmp(LUA_API_VERSION_SUFFIX, "") ? - STR(LUA_API_VERSION_MAJOR) "." - STR(LUA_API_VERSION_MINOR) "." - STR(LUA_API_VERSION_PATCH) "-" - LUA_API_VERSION_SUFFIX : - STR(LUA_API_VERSION_MAJOR) "." - STR(LUA_API_VERSION_MINOR) "." - STR(LUA_API_VERSION_PATCH); -#endif - printf("this is %s\ncopyright (c) 2009-%s johannes hanika\n" PACKAGE_BUGREPORT "\n\ncompile options:\n" - " bit depth is %zu bit\n" -#ifdef _DEBUG - " debug build\n" -#else - " normal build\n" -#endif -#if defined(__SSE2__) && defined(__SSE__) - " SSE2 optimized codepath enabled\n" -#else - " SSE2 optimized codepath disabled\n" -#endif -#ifdef _OPENMP - " OpenMP support enabled\n" -#else - " OpenMP support disabled\n" -#endif - -#ifdef HAVE_OPENCL - " OpenCL support enabled\n" -#else - " OpenCL support disabled\n" -#endif + else if(!strcmp(argv[k], "--version") || !strcmp(argv[k], "-v")) + { + char *theversion = _get_version_string(); + printf("this is %s", theversion); #ifdef USE_LUA - " Lua support enabled, API version %s\n" -#else - " Lua support disabled\n" -#endif - -#ifdef USE_COLORDGTK - " Colord support enabled\n" -#else - " Colord support disabled\n" -#endif - -#ifdef HAVE_GPHOTO2 - " gPhoto2 support enabled\n" -#else - " gPhoto2 support disabled\n" -#endif - -#ifdef HAVE_GRAPHICSMAGICK - " GraphicsMagick support enabled\n" -#else - " GraphicsMagick support disabled\n" + printf("Lua support enabled\n"); #endif - -#ifdef HAVE_IMAGEMAGICK - " ImageMagick support enabled\n" -#else - " ImageMagick support disabled\n" -#endif - -#ifdef HAVE_LIBAVIF - " libavif support enabled\n" -#else - " libavif support disabled\n" -#endif - -#ifdef HAVE_LIBHEIF - " libheif support enabled\n" -#else - " libheif support disabled\n" -#endif - -#ifdef HAVE_LIBJXL - " libjxl support enabled\n" -#else - " libjxl support disabled\n" -#endif - -#ifdef HAVE_OPENJPEG - " OpenJPEG support enabled\n" -#else - " OpenJPEG support disabled\n" -#endif - -#ifdef HAVE_OPENEXR - " OpenEXR support enabled\n" -#else - " OpenEXR support disabled\n" -#endif - -#ifdef HAVE_WEBP - " WebP support enabled\n" -#else - " WebP support disabled\n" -#endif - , - darktable_package_string, - darktable_last_commit_year, - CHAR_BIT * sizeof(void *) -#if USE_LUA - , - lua_api_version -#endif - ); + g_free(theversion); return 1; } else if(!strcmp(argv[k], "--dump-pfm") && argc > k + 1) @@ -780,7 +928,13 @@ argv[k-1] = NULL; argv[k] = NULL; } - else if(!strcmp(argv[k], "--localedir") && argc > k + 1) + else if(!strcmp(argv[k], "--dumpdir") && argc > k + 1) + { + darktable.tmp_directory = g_strdup(argv[++k]); + argv[k-1] = NULL; + argv[k] = NULL; + } + else if(!strcmp(argv[k], "--localedir") && argc > k + 1) { localedir_from_command = argv[++k]; argv[k-1] = NULL; @@ -788,60 +942,39 @@ } else if(argv[k][1] == 'd' && argc > k + 1) { - if(!strcmp(argv[k + 1], "common")) - darktable.unmuted |= DT_DEBUG_COMMON; // enable common processing options - else if(!strcmp(argv[k + 1], "all")) - darktable.unmuted |= DT_DEBUG_ALL; // enable all debug information except verbose - else if(!strcmp(argv[k + 1], "cache")) - darktable.unmuted |= DT_DEBUG_CACHE; // enable debugging for lib/film/cache module - else if(!strcmp(argv[k + 1], "control")) - darktable.unmuted |= DT_DEBUG_CONTROL; // enable debugging for scheduler module - else if(!strcmp(argv[k + 1], "dev")) - darktable.unmuted |= DT_DEBUG_DEV; // develop module - else if(!strcmp(argv[k + 1], "input")) - darktable.unmuted |= DT_DEBUG_INPUT; // input devices - else if(!strcmp(argv[k + 1], "camctl")) - darktable.unmuted |= DT_DEBUG_CAMCTL; // camera control module - else if(!strcmp(argv[k + 1], "perf")) - darktable.unmuted |= DT_DEBUG_PERF; // performance measurements - else if(!strcmp(argv[k + 1], "pwstorage")) - darktable.unmuted |= DT_DEBUG_PWSTORAGE; // pwstorage module - else if(!strcmp(argv[k + 1], "opencl")) - darktable.unmuted |= DT_DEBUG_OPENCL; // gpu accel via opencl - else if(!strcmp(argv[k + 1], "sql")) - darktable.unmuted |= DT_DEBUG_SQL; // SQLite3 queries - else if(!strcmp(argv[k + 1], "memory")) - darktable.unmuted |= DT_DEBUG_MEMORY; // some stats on mem usage now and then. - else if(!strcmp(argv[k + 1], "lighttable")) - darktable.unmuted |= DT_DEBUG_LIGHTTABLE; // lighttable related stuff. - else if(!strcmp(argv[k + 1], "nan")) - darktable.unmuted |= DT_DEBUG_NAN; // check for NANs when processing the pipe. - else if(!strcmp(argv[k + 1], "masks")) - darktable.unmuted |= DT_DEBUG_MASKS; // masks related stuff. - else if(!strcmp(argv[k + 1], "lua")) - darktable.unmuted |= DT_DEBUG_LUA; // lua errors are reported on console - else if(!strcmp(argv[k + 1], "print")) - darktable.unmuted |= DT_DEBUG_PRINT; // print errors are reported on console - else if(!strcmp(argv[k + 1], "camsupport")) - darktable.unmuted |= DT_DEBUG_CAMERA_SUPPORT; // camera support warnings are reported on console - else if(!strcmp(argv[k + 1], "ioporder")) - darktable.unmuted |= DT_DEBUG_IOPORDER; // iop order information are reported on console - else if(!strcmp(argv[k + 1], "imageio")) - darktable.unmuted |= DT_DEBUG_IMAGEIO; // image importing or exporting messages on console - else if(!strcmp(argv[k + 1], "undo")) - darktable.unmuted |= DT_DEBUG_UNDO; // undo/redo - else if(!strcmp(argv[k + 1], "signal")) - darktable.unmuted |= DT_DEBUG_SIGNAL; // signal information on console - else if(!strcmp(argv[k + 1], "params")) - darktable.unmuted |= DT_DEBUG_PARAMS; // iop module params checks on console - else if(!strcmp(argv[k + 1], "act_on")) - darktable.unmuted |= DT_DEBUG_ACT_ON; - else if(!strcmp(argv[k + 1], "tiling")) - darktable.unmuted |= DT_DEBUG_TILING; - else if(!strcmp(argv[k + 1], "verbose")) - darktable.unmuted |= DT_DEBUG_VERBOSE; - else if(!strcmp(argv[k + 1], "pipe")) - darktable.unmuted |= DT_DEBUG_PIPE; + char *darg = argv[k + 1]; + dt_debug_thread_t dadd = + !strcmp(darg, "common") ? DT_DEBUG_COMMON : // enable common processing options + !strcmp(darg, "all") ? DT_DEBUG_ALL : // enable all debug information except verbose + !strcmp(darg, "cache") ? DT_DEBUG_CACHE : // enable debugging for lib/film/cache module + !strcmp(darg, "control") ? DT_DEBUG_CONTROL : // enable debugging for scheduler module + !strcmp(darg, "dev") ? DT_DEBUG_DEV : // develop module + !strcmp(darg, "input") ? DT_DEBUG_INPUT : // input devices + !strcmp(darg, "camctl") ? DT_DEBUG_CAMCTL : // camera control module + !strcmp(darg, "perf") ? DT_DEBUG_PERF : // performance measurements + !strcmp(darg, "pwstorage") ? DT_DEBUG_PWSTORAGE : // pwstorage module + !strcmp(darg, "opencl") ? DT_DEBUG_OPENCL : // gpu accel via opencl + !strcmp(darg, "sql") ? DT_DEBUG_SQL : // SQLite3 queries + !strcmp(darg, "memory") ? DT_DEBUG_MEMORY : // some stats on mem usage now and then. + !strcmp(darg, "lighttable") ? DT_DEBUG_LIGHTTABLE : // lighttable related stuff. + !strcmp(darg, "nan") ? DT_DEBUG_NAN : // check for NANs when processing the pipe. + !strcmp(darg, "masks") ? DT_DEBUG_MASKS : // masks related stuff. + !strcmp(darg, "lua") ? DT_DEBUG_LUA : // lua errors are reported on console + !strcmp(darg, "print") ? DT_DEBUG_PRINT : // print errors are reported on console + !strcmp(darg, "camsupport") ? DT_DEBUG_CAMERA_SUPPORT : // camera support warnings are reported on console + !strcmp(darg, "ioporder") ? DT_DEBUG_IOPORDER : // iop order information are reported on console + !strcmp(darg, "imageio") ? DT_DEBUG_IMAGEIO : // image importing or exporting messages on console + !strcmp(darg, "undo") ? DT_DEBUG_UNDO : // undo/redo + !strcmp(darg, "signal") ? DT_DEBUG_SIGNAL : // signal information on console + !strcmp(darg, "params") ? DT_DEBUG_PARAMS : // iop module params checks on console + !strcmp(darg, "act_on") ? DT_DEBUG_ACT_ON : + !strcmp(darg, "tiling") ? DT_DEBUG_TILING : + !strcmp(darg, "verbose") ? DT_DEBUG_VERBOSE : + !strcmp(darg, "pipe") ? DT_DEBUG_PIPE : + !strcmp(darg, "expose") ? DT_DEBUG_EXPOSE : + 0; + if(dadd) + darktable.unmuted |= dadd; else return usage(argv[0]); k++; @@ -1034,9 +1167,17 @@ } } + if(darktable.unmuted) + { + char *theversion = _get_version_string(); + dt_print_nts(DT_DEBUG_ALWAYS, "%s\n", theversion); + g_free(theversion); + } + if(darktable.dump_pfm_module || darktable.dump_pfm_pipe) { - darktable.tmp_directory = g_dir_make_tmp("darktable_XXXXXX", NULL); + if(darktable.tmp_directory == NULL) + darktable.tmp_directory = g_dir_make_tmp("darktable_XXXXXX", NULL); dt_print(DT_DEBUG_ALWAYS, "[init] darktable dump directory is '%s'\n", (darktable.tmp_directory) ? darktable.tmp_directory : "NOT AVAILABLE"); } @@ -1220,6 +1361,8 @@ return 1; } + dt_upgrade_maker_model(darktable.db); + // init darktable tags table dt_set_darktable_tags(); @@ -1243,7 +1386,7 @@ { if(dbfilename_from_command && !strcmp(dbfilename_from_command, ":memory:")) dt_gui_presets_init(); // init preset db schema. - darktable.control->running = 0; + darktable.control->running = FALSE; dt_pthread_mutex_init(&darktable.control->run_mutex, NULL); dt_pthread_mutex_init(&darktable.control->log_mutex, NULL); } @@ -1338,10 +1481,11 @@ #endif darktable.opencl = (dt_opencl_t *)calloc(1, sizeof(dt_opencl_t)); - dt_opencl_init(darktable.opencl, exclude_opencl, print_statistics); -#ifdef HAVE_OPENCL - dt_opencl_update_settings(); -#endif + if(init_gui) + dt_control_add_job(darktable.control, DT_JOB_QUEUE_SYSTEM_BG, + _detect_opencl_job_create(exclude_opencl)); + else + dt_opencl_init(darktable.opencl, exclude_opencl, print_statistics); darktable.points = (dt_points_t *)calloc(1, sizeof(dt_points_t)); dt_points_init(darktable.points, dt_get_num_threads()); @@ -1508,7 +1652,7 @@ not_again = dt_gui_show_standalone_yes_no_dialog (_("configuration information"), config_info, - _("show this information again"), _("understood")); + _("_show this information again"), _("_understood")); if(not_again || (last_configure_version == 0)) dt_conf_set_int("performance_configuration_version_completed", @@ -1516,26 +1660,45 @@ } free(config_info); - // last but not least construct the popup that asks the user about - // images whose xmp files are newer than the db entry - if(init_gui && changed_xmp_files) + darktable.backthumbs.running = FALSE; + darktable.backthumbs.capable = + dt_get_num_procs() >= 4 + && darktable.dtresources.total_memory / 1024lu / 1024lu >= 8000 + && !(dbfilename_from_command && !strcmp(dbfilename_from_command, ":memory:")); + if(init_gui) { - dt_control_crawler_show_image_list(changed_xmp_files); + dt_start_backtumbs_crawler(); + // last but not least construct the popup that asks the user about + // images whose xmp files are newer than the db entry + if(changed_xmp_files) + dt_control_crawler_show_image_list(changed_xmp_files); } +#if defined(WIN32) + dt_capabilities_add("windows"); + dt_capabilities_add("nonapple"); +#elif defined(__APPLE__) + dt_capabilities_add("apple"); +#else + dt_capabilities_add("linux"); + dt_capabilities_add("nonapple"); +#endif + + dt_print(DT_DEBUG_CONTROL, "[dt_init] startup took %f seconds\n", dt_get_wtime() - start_wtime); return 0; } + void dt_get_sysresource_level() { static int oldlevel = -999; - static int oldtunecl = -999; + static int oldtunehead = -999; dt_sys_resources_t *res = &darktable.dtresources; - const int tunecl = dt_opencl_get_tuning_mode(); + const gboolean tunehead = dt_conf_get_bool("opencl_tune_headroom"); int level = 1; const char *config = dt_conf_get_string_const("resourcelevel"); /** These levels must correspond with preferences in xml.in @@ -1556,10 +1719,10 @@ else if(!strcmp(config, "mini")) level = -2; else if(!strcmp(config, "notebook")) level = -3; } - const gboolean mod = ((level != oldlevel) || (oldtunecl != tunecl)); + const gboolean mod = ((level != oldlevel) || (oldtunehead != tunehead)); res->level = oldlevel = level; - oldtunecl = tunecl; - res->tunemode = tunecl; + oldtunehead = tunehead; + res->tunehead = tunehead; if(mod && (darktable.unmuted & (DT_DEBUG_MEMORY | DT_DEBUG_OPENCL | DT_DEBUG_DEV))) { const int oldgrp = res->group; @@ -1579,14 +1742,7 @@ dt_print(DT_DEBUG_ALWAYS, " singlebuff: %luMB\n", dt_get_singlebuffer_mem() / 1024lu / 1024lu); -#ifdef HAVE_OPENCL - dt_print(DT_DEBUG_ALWAYS, - " OpenCL tune mem: %s\n", - ((tunecl & DT_OPENCL_TUNE_MEMSIZE) && (level >= 0)) ? "WANTED" : "OFF"); - dt_print(DT_DEBUG_ALWAYS, - " OpenCL pinned: %s\n", - ((tunecl & DT_OPENCL_TUNE_PINNED) && (level >= 0)) ? "WANTED" : "OFF"); -#endif + res->group = oldgrp; } } @@ -1594,7 +1750,7 @@ void dt_cleanup() { const int init_gui = (darktable.gui != NULL); - + darktable.backthumbs.running = FALSE; // last chance to ask user for any input... const gboolean perform_maintenance = dt_database_maybe_maintenance(darktable.db); @@ -1745,39 +1901,24 @@ been started with -d verbose b) 'thread' may be identical to DT_DEBUG_ALWAYS to write output */ -void dt_print(dt_debug_thread_t thread, const char *msg, ...) +void dt_print_ext(const char *msg, ...) { - if(thread != DT_DEBUG_ALWAYS) - { - if(((darktable.unmuted & thread) & ~DT_DEBUG_VERBOSE) == 0) return; - if((thread & DT_DEBUG_VERBOSE) && !(darktable.unmuted & DT_DEBUG_VERBOSE)) return; - } - char buf[128]; char vbuf[2048]; - snprintf(buf, sizeof(buf), "%.4f", dt_get_wtime() - darktable.start_wtime); - va_list ap; va_start(ap, msg); vsnprintf(vbuf, sizeof(vbuf), msg, ap); va_end(ap); - printf("%11s %s", buf, vbuf); + printf("%11.4f %s", dt_get_wtime() - darktable.start_wtime, vbuf); fflush(stdout); } -void dt_print_nts(dt_debug_thread_t thread, const char *msg, ...) +void dt_print_nts_ext(const char *msg, ...) { - if(thread != DT_DEBUG_ALWAYS) - { - if(((darktable.unmuted & thread) & ~DT_DEBUG_VERBOSE) == 0) return; - if((thread & DT_DEBUG_VERBOSE) && !(darktable.unmuted & DT_DEBUG_VERBOSE)) return; - } - char vbuf[2048]; va_list ap; va_start(ap, msg); - vsnprintf(vbuf, sizeof(vbuf), msg, ap); + vprintf(msg, ap); va_end(ap); - printf("%s", vbuf); fflush(stdout); } @@ -1874,9 +2015,9 @@ int dt_worker_threads() { - const size_t threads = dt_get_num_threads(); - const size_t mem = _get_total_memory(); - const int wthreads = (mem >= (8lu << 20) && threads >= 4) ? 4 : MIN(2, threads); + const int threads = dt_get_num_threads(); + const int gbytes = (int)(_get_total_memory() / (1lu << 20)); + const int wthreads = (gbytes >= 8 && threads >= 4) ? 6 : 3; dt_print(DT_DEBUG_DEV, "[dt_worker_threads] using %i worker threads\n", wthreads); return wthreads; } @@ -1988,9 +2129,9 @@ g_strlcat(info, INFO_HEADER, DT_PERF_INFOSIZE); g_strlcat(info, _("some global config parameters relevant for OpenCL performance are not used any longer."), DT_PERF_INFOSIZE); g_strlcat(info, "\n", DT_PERF_INFOSIZE); - g_strlcat(info, _("instead you will find 'per device' data in 'cl_device_v4_canonical-name'. content is:"), DT_PERF_INFOSIZE); + g_strlcat(info, _("instead you will find 'per device' data in 'cldevice_v5_canonical-name'. content is:"), DT_PERF_INFOSIZE); g_strlcat(info, "\n ", DT_PERF_INFOSIZE); - g_strlcat(info, _(" 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' 'eventhandles' 'async' 'disable' 'magic'"), DT_PERF_INFOSIZE); + g_strlcat(info, _(" 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' 'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'"), DT_PERF_INFOSIZE); g_strlcat(info, "\n", DT_PERF_INFOSIZE); g_strlcat(info, _("you may tune as before except 'magic'"), DT_PERF_INFOSIZE); g_strlcat(info, "\n\n", DT_PERF_INFOSIZE); @@ -2002,14 +2143,14 @@ g_strlcat(info, "\n\n", DT_PERF_INFOSIZE); } - if(old < 14) + else if(old < 14) { g_strlcat(info, INFO_HEADER, DT_PERF_INFOSIZE); g_strlcat(info, _("OpenCL global config parameters 'per device' data has been recreated with an updated name."), DT_PERF_INFOSIZE); g_strlcat(info, "\n", DT_PERF_INFOSIZE); - g_strlcat(info, _("you will find 'per device' data in 'cl_device_v5_canonical-name'. content is:"), DT_PERF_INFOSIZE); + g_strlcat(info, _("you will find 'per device' data in 'cldevice_v5_canonical-name'. content is:"), DT_PERF_INFOSIZE); g_strlcat(info, "\n ", DT_PERF_INFOSIZE); - g_strlcat(info, _(" 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' 'eventhandles' 'async' 'disable' 'magic'"), DT_PERF_INFOSIZE); + g_strlcat(info, _(" 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' 'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'"), DT_PERF_INFOSIZE); g_strlcat(info, "\n", DT_PERF_INFOSIZE); g_strlcat(info, _("you may tune as before except 'magic'"), DT_PERF_INFOSIZE); g_strlcat(info, "\n", DT_PERF_INFOSIZE); @@ -2017,6 +2158,22 @@ g_strlcat(info, "\n\n", DT_PERF_INFOSIZE); } + else if(old < 15) + { + g_strlcat(info, INFO_HEADER, DT_PERF_INFOSIZE); + g_strlcat(info, _("OpenCL 'per device' config data have been automatically extended by 'unified-fraction'."), DT_PERF_INFOSIZE); + g_strlcat(info, "\n", DT_PERF_INFOSIZE); + g_strlcat(info, _("you will find 'per device' data in 'cldevice_v5_canonical-name'. content is:"), DT_PERF_INFOSIZE); + g_strlcat(info, "\n ", DT_PERF_INFOSIZE); + g_strlcat(info, _(" 'avoid_atomics' 'micro_nap' 'pinned_memory' 'roundupwd' 'roundupht' 'eventhandles' 'async' 'disable' 'magic' 'advantage' 'unified'"), DT_PERF_INFOSIZE); + g_strlcat(info, "\n\n", DT_PERF_INFOSIZE); + } + + else if(old < 16) + { + g_strlcat(info, INFO_HEADER, DT_PERF_INFOSIZE); + g_strlcat(info, _("OpenCL 'per device' compiler settings might have been updated.\n\n"), DT_PERF_INFOSIZE); + } #undef INFO_HEADER } diff -Nru darktable-4.4.2/src/common/darktable.h darktable-4.6.1/src/common/darktable.h --- darktable-4.4.2/src/common/darktable.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/darktable.h 2024-02-16 17:31:09.000000000 +0000 @@ -178,8 +178,8 @@ // version of current performance configuration version // if you want to run an updated version of the performance configuration later -// bump this number and make sure you have an updated logic in dt_configure_performance() -#define DT_CURRENT_PERFORMANCE_CONFIGURE_VERSION 14 +// bump this number and make sure you have an updated logic in dt_configure_runtime_performance() +#define DT_CURRENT_PERFORMANCE_CONFIGURE_VERSION 16 #define DT_PERF_INFOSIZE 4096 // every module has to define this: @@ -296,13 +296,14 @@ DT_DEBUG_TILING = 1 << 23, DT_DEBUG_VERBOSE = 1 << 24, DT_DEBUG_PIPE = 1 << 25, + DT_DEBUG_EXPOSE = 1 << 26, DT_DEBUG_ALL = 0xffffffff & ~DT_DEBUG_VERBOSE, DT_DEBUG_COMMON = DT_DEBUG_OPENCL | DT_DEBUG_DEV | DT_DEBUG_MASKS | DT_DEBUG_PARAMS | DT_DEBUG_IMAGEIO | DT_DEBUG_PIPE, + DT_DEBUG_RESTRICT = DT_DEBUG_VERBOSE | DT_DEBUG_PERF, } dt_debug_thread_t; typedef struct dt_codepath_t { - unsigned int SSE2 : 1; unsigned int _no_intrinsics : 1; } dt_codepath_t; @@ -314,9 +315,19 @@ int *refresource; // for the debug resource modes we use fixed settings int group; int level; - int tunemode; + gboolean tunehead; } dt_sys_resources_t; +typedef struct dt_backthumb_t +{ + double time; + double idle; + gboolean service; + gboolean running; + gboolean capable; + int32_t mipsize; +} dt_backthumb_t; + typedef struct darktable_t { dt_codepath_t codepath; @@ -378,6 +389,7 @@ GTimeZone *utc_tz; GDateTime *origin_gdt; struct dt_sys_resources_t dtresources; + struct dt_backthumb_t backthumbs; } darktable_t; typedef struct @@ -395,14 +407,27 @@ void dt_get_sysresource_level(); void dt_cleanup(); -void dt_print(dt_debug_thread_t thread, - const char *msg, ...) - __attribute__((format(printf, 2, 3))); + +/* + for performance reasons the debug log functions should only be called, + and their arguments evaluated, if flags in thread match what is requested. +*/ +#define dt_debug_if(thread, func, ...) \ + do{ if( ( (~DT_DEBUG_RESTRICT & (thread)) == DT_DEBUG_ALWAYS \ + || ~DT_DEBUG_RESTRICT & (thread) & darktable.unmuted ) \ + && !(DT_DEBUG_RESTRICT & (thread) & ~darktable.unmuted)) \ + func(__VA_ARGS__); } while(0) + +#define dt_print_pipe(thread, ...) dt_debug_if(thread, dt_print_pipe_ext, __VA_ARGS__) +#define dt_print(thread, ...) dt_debug_if(thread, dt_print_ext, __VA_ARGS__) +#define dt_print_nts(thread, ...) dt_debug_if(thread, dt_print_nts_ext, __VA_ARGS__) + +void dt_print_ext(const char *msg, ...) + __attribute__((format(printf, 1, 2))); /* same as above but without time stamp : nts = no time stamp */ -void dt_print_nts(dt_debug_thread_t thread, - const char *msg, ...) - __attribute__((format(printf, 2, 3))); +void dt_print_nts_ext(const char *msg, ...) + __attribute__((format(printf, 1, 2))); int dt_worker_threads(); size_t dt_get_available_mem(); @@ -549,24 +574,43 @@ return time.tv_sec - 1290608000 + (1.0 / 1000000.0) * time.tv_usec; } -static inline void dt_get_times(dt_times_t *t) +static inline double dt_get_debug_wtime(void) { - struct rusage ru; + return darktable.unmuted ? dt_get_wtime() : 0.0; +} +static inline double dt_get_lap_time(double *time) +{ + double prev = *time; + *time = dt_get_wtime(); + return *time - prev; +} + +static inline double dt_get_utime(void) +{ + struct rusage ru; getrusage(RUSAGE_SELF, &ru); + return ru.ru_utime.tv_sec + ru.ru_utime.tv_usec * (1.0 / 1000000.0); +} + +static inline double dt_get_lap_utime(double *time) +{ + double prev = *time; + *time = dt_get_utime(); + return *time - prev; +} + +static inline void dt_get_times(dt_times_t *t) +{ t->clock = dt_get_wtime(); - t->user = ru.ru_utime.tv_sec + ru.ru_utime.tv_usec * (1.0 / 1000000.0); + t->user = dt_get_utime(); } static inline void dt_get_perf_times(dt_times_t *t) { if(darktable.unmuted & DT_DEBUG_PERF) { - struct rusage ru; - - getrusage(RUSAGE_SELF, &ru); - t->clock = dt_get_wtime(); - t->user = ru.ru_utime.tv_sec + ru.ru_utime.tv_usec * (1.0 / 1000000.0); + dt_get_times(t); } } @@ -730,6 +774,9 @@ // checks internally for DT_DEBUG_MEMORY void dt_print_mem_usage(); +// try to start the backthumbs crawler +void dt_start_backtumbs_crawler(); + void dt_configure_runtime_performance(const int version, char *config_info); // helper function which loads whatever image_to_load points to: // single image files or whole directories it tells you if it was a diff -Nru darktable-4.4.2/src/common/database.c darktable-4.6.1/src/common/database.c --- darktable-4.4.2/src/common/database.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/database.c 2024-02-16 17:31:09.000000000 +0000 @@ -34,7 +34,6 @@ #endif #include "control/conf.h" #include "control/control.h" -#include "gui/legacy_presets.h" #include <gio/gio.h> #include <glib.h> @@ -49,7 +48,7 @@ // whenever _create_*_schema() gets changed you HAVE to bump this version and add an update path to // _upgrade_*_schema_step()! -#define CURRENT_DATABASE_VERSION_LIBRARY 38 +#define CURRENT_DATABASE_VERSION_LIBRARY 47 #define CURRENT_DATABASE_VERSION_DATA 10 // #define USE_NESTED_TRANSACTIONS @@ -89,7 +88,13 @@ goto end; \ } -/* migrate from the legacy db format (with the 'settings' blob) to the first version this system knows */ +int32_t dt_database_last_insert_rowid(const dt_database_t *db) +{ + return (int32_t)sqlite3_last_insert_rowid(db->handle); +} + +/* migrate from the legacy db format (with the 'settings' blob) to the + first version this system knows */ static gboolean _migrate_schema(dt_database_t *db, int version) { gboolean all_ok = TRUE; @@ -1287,7 +1292,7 @@ iop_order_list = g_list_delete_link(iop_order_list, s); } - // skip all multipe instances + // skip all multiple instances n = e; do { @@ -2166,11 +2171,459 @@ "[init] can't set multi_name_hand_edited column\n"); new_version = 38; } + else if(version == 38) + { + sqlite3_exec(db->handle, "PRAGMA foreign_keys = OFF", NULL, NULL, NULL); + sqlite3_exec(db->handle, "BEGIN TRANSACTION", NULL, NULL, NULL); + + // create new tables + TRY_EXEC("CREATE TABLE main.makers" + " (id INTEGER PRIMARY KEY AUTOINCREMENT," + " name VARCHAR)", + "[init] can't create makers table\n"); + TRY_EXEC("CREATE TABLE main.models" + " (id INTEGER PRIMARY KEY AUTOINCREMENT," + " name VARCHAR)", + "[init] can't create models table\n"); + TRY_EXEC("CREATE TABLE main.lens" + " (id INTEGER PRIMARY KEY AUTOINCREMENT," + " name VARCHAR)", + "[init] can't create lens table\n"); + TRY_EXEC("CREATE TABLE cameras" + " (id INTEGER PRIMARY KEY AUTOINCREMENT," + " name VARCHAR," + " alias VARCHAR)", + "[init] can't create cameras table\n"); + + // create new indexes + TRY_EXEC("CREATE INDEX makers_name ON makers (name)", + "[init] can't create makers_name\n"); + TRY_EXEC("CREATE INDEX model_name ON models (name)", + "[init] can't create model_name\n"); + TRY_EXEC("CREATE INDEX lens_name ON lens (name)", + "[init] can't create lens_name\n"); + TRY_EXEC("CREATE INDEX camera_name ON cameras (name)", + "[init] can't create camera_name\n"); + + // populate new tables + TRY_EXEC("INSERT INTO main.makers (name)" + " SELECT DISTINCT maker FROM main.images", + "[init] can't populate makers table\n"); + TRY_EXEC("INSERT INTO main.models (name)" + " SELECT DISTINCT model FROM main.images", + "[init] can't populate models table\n"); + TRY_EXEC("INSERT INTO main.lens (name)" + " SELECT DISTINCT lens FROM main.images", + "[init] can't populate lens table\n"); + + // add new columns for main.images + TRY_EXEC("ALTER TABLE main.images ADD COLUMN maker_id INTEGER default 0", + "[init] can't add maker_id column\n"); + TRY_EXEC("ALTER TABLE main.images ADD COLUMN model_id INTEGER default 0", + "[init] can't add model_id column\n"); + TRY_EXEC("ALTER TABLE main.images ADD COLUMN lens_id INTEGER default 0", + "[init] can't add lens_id column\n"); + TRY_EXEC("ALTER TABLE main.images ADD COLUMN camera_id INTEGER default 0", + "[init] can't add camera_id column\n"); + + // update main images columns + TRY_EXEC("UPDATE main.images" + " SET maker_id = (SELECT id FROM main.makers WHERE name = maker)", + "[init] can't populate maker_id column\n"); + TRY_EXEC("UPDATE main.images" + " SET model_id = (SELECT id FROM main.models WHERE name = model)", + "[init] can't populate model_id column\n"); + TRY_EXEC("UPDATE main.images" + " SET lens_id = (SELECT id FROM main.lens WHERE name = lens)", + "[init] can't populate lens_id column\n"); + +#if 0 + // drop old columns (only supported starting with 3.35) + TRY_EXEC("ALTER TABLE main.images DROP COLUMN maker", + "[init] can't drop maker column\n"); + TRY_EXEC("ALTER TABLE main.images DROP COLUMN model", + "[init] can't drop model column\n"); + TRY_EXEC("ALTER TABLE main.images DROP COLUMN lens", + "[init] can't drop lens column\n"); +#endif + + TRY_EXEC("CREATE TABLE images_new (id INTEGER PRIMARY KEY AUTOINCREMENT, group_id INTEGER, " + "film_id INTEGER, " + "width INTEGER, height INTEGER, filename VARCHAR, " + "maker_id INTEGER, model_id INTEGER, lens_id INTEGER, camera_id INTEGER," + "exposure REAL, aperture REAL, iso REAL, focal_length REAL, " + "focus_distance REAL, datetime_taken INTEGER, flags INTEGER, " + "output_width INTEGER, output_height INTEGER, crop REAL, " + "raw_parameters INTEGER, raw_denoise_threshold REAL, " + "raw_auto_bright_threshold REAL, raw_black INTEGER, raw_maximum INTEGER, " + "license VARCHAR, sha1sum CHAR(40), " + "orientation INTEGER, histogram BLOB, lightmap BLOB, longitude REAL, " + "latitude REAL, altitude REAL, color_matrix BLOB, colorspace INTEGER, version INTEGER, " + "max_version INTEGER, write_timestamp INTEGER, history_end INTEGER, position INTEGER, " + "aspect_ratio REAL, exposure_bias REAL, " + "import_timestamp INTEGER DEFAULT -1, change_timestamp INTEGER DEFAULT -1, " + "export_timestamp INTEGER DEFAULT -1, print_timestamp INTEGER DEFAULT -1, " + "FOREIGN KEY(maker_id) REFERENCES makers(id) ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(model_id) REFERENCES models(id) ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(lens_id) REFERENCES lens(id) ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(camera_id) REFERENCES cameras(id) ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(film_id) REFERENCES film_rolls(id) ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(group_id) REFERENCES images(id) ON DELETE RESTRICT ON UPDATE CASCADE)", + "[init] can't create new table images"); + + TRY_EXEC("INSERT INTO images_new" + " SELECT id, group_id, film_id, width, height, filename," + " maker_id, model_id, lens_id, camera_id," + " exposure, aperture, iso, focal_length," + " focus_distance, datetime_taken, flags," + " output_width, output_height, crop," + " raw_parameters, raw_denoise_threshold," + " raw_auto_bright_threshold, raw_black, raw_maximum," + " license, sha1sum," + " orientation, histogram, lightmap, longitude," + " latitude, altitude, color_matrix, colorspace, version," + " max_version, write_timestamp, history_end, position," + " aspect_ratio, exposure_bias," + " import_timestamp, change_timestamp, export_timestamp, print_timestamp" + " FROM images", + "[init] can't populate new images table\n"); + + TRY_EXEC("DROP TABLE images", + "[init] can't drop table images_old\n"); + + TRY_EXEC("ALTER TABLE images_new RENAME TO images", + "[init] can't rename images\n"); + + // recreate the indexes + TRY_EXEC("CREATE INDEX image_position_index ON images (position)", + "[init] can't add image_position_index\n"); + TRY_EXEC("CREATE INDEX images_filename_index ON images (filename, version)", + "[init] can't recreate images_filename_index\n"); + TRY_EXEC("CREATE INDEX images_film_id_index ON images (film_id, filename)", + "[init] can't recreate images_film_id_index\n"); + TRY_EXEC("CREATE INDEX images_group_id_index ON images (group_id, id)", + "[init] can't recreate images_group_id_index\n"); + TRY_EXEC("CREATE INDEX images_latlong_index ON images (latitude DESC, longitude DESC)", + "[init] can't add images_latlong_index\n"); + TRY_EXEC("CREATE INDEX images_datetime_taken ON images (datetime_taken)", + "[init] can't create images_datetime_taken\n"); + + // Some triggers to remove possible dangling refs in makers/models/lens/cameras + TRY_EXEC("CREATE TRIGGER remove_makers AFTER DELETE ON images" + " BEGIN" + " DELETE FROM makers" + " WHERE id = OLD.maker_id" + " AND NOT EXISTS (SELECT 1 FROM images WHERE maker_id = OLD.maker_id);" + " END", + "[init] can't create trigger remove_makers\n"); + + TRY_EXEC("CREATE TRIGGER remove_models AFTER DELETE ON images" + " BEGIN" + " DELETE FROM models" + " WHERE id = OLD.model_id" + " AND NOT EXISTS (SELECT 1 FROM images WHERE model_id = OLD.model_id);" + " END", + "[init] can't create trigger remove_models\n"); + + TRY_EXEC("CREATE TRIGGER remove_lens AFTER DELETE ON images" + " BEGIN" + " DELETE FROM lens" + " WHERE id = OLD.lens_id" + " AND NOT EXISTS (SELECT 1 FROM images WHERE lens_id = OLD.lens_id);" + " END", + "[init] can't create trigger remove_lens\n"); + + TRY_EXEC("CREATE TRIGGER remove_cameras AFTER DELETE ON images" + " BEGIN" + " DELETE FROM cameras" + " WHERE id = OLD.camera_id" + " AND NOT EXISTS (SELECT 1 FROM images WHERE camera_id = OLD.camera_id);" + " END", + "[init] can't create trigger remove_cameras\n"); + + // NOTE: datetime_taken is in nano-second since "0001-01-01 00:00:00" + TRY_EXEC + ("CREATE VIEW v_images AS" + " SELECT mi.id AS id, mk.name AS maker, md.name AS model, ln.name AS lens," + " cm.name AS normalized_camera, cm.alias AS camera_alias," + " exposure, aperture, iso," + " datetime(datetime_taken/1000000" + " + unixepoch('0001-01-01 00:00:00'), 'unixepoch') AS datetime," + " fr.folder AS folders, filename" + " FROM images AS mi," + " makers AS mk, models AS md, lens AS ln, cameras AS cm, film_rolls AS fr" + " WHERE mi.maker_id = mk.id" + " AND mi.model_id = md.id" + " AND mi.lens_id = ln.id" + " AND mi.camera_id = cm.id" + " AND mi.film_id = fr.id" + " ORDER BY normalized_camera, folders", + "[init] can't create view v_images\n"); + + sqlite3_exec(db->handle, "COMMIT", NULL, NULL, NULL); + sqlite3_exec(db->handle, "PRAGMA foreign_keys = ON", NULL, NULL, NULL); + + new_version = 39; + } + else if(version == 39) + { + sqlite3_exec(db->handle, "PRAGMA foreign_keys = OFF", NULL, NULL, NULL); + sqlite3_exec(db->handle, "BEGIN TRANSACTION", NULL, NULL, NULL); + + TRY_EXEC("DROP TABLE cameras", + "[init] can't drop cameras table\n"); + + TRY_EXEC("CREATE TABLE cameras" + " (id INTEGER PRIMARY KEY AUTOINCREMENT," + " maker VARCHAR, model VARCHAR," + " alias VARCHAR)", + "[init] can't create cameras table\n"); + + TRY_EXEC("CREATE UNIQUE INDEX camera_name ON cameras (maker, model, alias)", + "[init] can't create camera_name\n"); + + // NOTE: datetime_taken is in nano-second since "0001-01-01 00:00:00" + TRY_EXEC("DROP VIEW v_images", + "[init] can't drop v_images view\n"); + + TRY_EXEC + ("CREATE VIEW v_images AS" + " SELECT mi.id AS id, mk.name AS maker, md.name AS model, ln.name AS lens," + " cm.maker || ' ' || cm.model AS normalized_camera, " + " cm.alias AS camera_alias," + " exposure, aperture, iso," + " datetime(datetime_taken/1000000" + " + unixepoch('0001-01-01 00:00:00'), 'unixepoch') AS datetime," + " fr.folder AS folders, filename" + " FROM images AS mi," + " makers AS mk, models AS md, lens AS ln, cameras AS cm, film_rolls AS fr" + " WHERE mi.maker_id = mk.id" + " AND mi.model_id = md.id" + " AND mi.lens_id = ln.id" + " AND mi.camera_id = cm.id" + " AND mi.film_id = fr.id" + " ORDER BY normalized_camera, folders", + "[init] can't create view v_images\n"); + + sqlite3_exec(db->handle, "COMMIT", NULL, NULL, NULL); + sqlite3_exec(db->handle, "PRAGMA foreign_keys = ON", NULL, NULL, NULL); + + new_version = 40; + } + else if(version == 40) + { + TRY_EXEC("ALTER TABLE main.history_hash ADD COLUMN fullthumb_hash BLOB default NULL", + "[init] can't add fullthumb_hash column\n"); + new_version = 41; + } + else if(version == 41) + { + sqlite3_exec(db->handle, "PRAGMA foreign_keys = OFF", NULL, NULL, NULL); + sqlite3_exec(db->handle, "BEGIN TRANSACTION", NULL, NULL, NULL); + + TRY_EXEC("CREATE TABLE images_new (id INTEGER PRIMARY KEY AUTOINCREMENT, group_id INTEGER, " + "film_id INTEGER, " + "width INTEGER, height INTEGER, filename VARCHAR, " + "maker_id INTEGER, model_id INTEGER, lens_id INTEGER, camera_id INTEGER," + "exposure REAL, aperture REAL, iso REAL, focal_length REAL, " + "focus_distance REAL, datetime_taken INTEGER, flags INTEGER, " + "output_width INTEGER, output_height INTEGER, crop REAL, " + "raw_parameters INTEGER, raw_black INTEGER, raw_maximum INTEGER, " + "orientation INTEGER, longitude REAL, " + "latitude REAL, altitude REAL, color_matrix BLOB, colorspace INTEGER, version INTEGER, " + "max_version INTEGER, write_timestamp INTEGER, history_end INTEGER, position INTEGER, " + "aspect_ratio REAL, exposure_bias REAL, " + "import_timestamp INTEGER DEFAULT -1, change_timestamp INTEGER DEFAULT -1, " + "export_timestamp INTEGER DEFAULT -1, print_timestamp INTEGER DEFAULT -1, " + "FOREIGN KEY(maker_id) REFERENCES makers(id) ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(model_id) REFERENCES models(id) ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(lens_id) REFERENCES lens(id) ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(camera_id) REFERENCES cameras(id) ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(film_id) REFERENCES film_rolls(id) ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(group_id) REFERENCES images(id) ON DELETE RESTRICT ON UPDATE CASCADE)", + "[init] can't create new table images"); + + TRY_EXEC("INSERT INTO images_new" + " SELECT id, group_id, film_id, width, height, filename," + " maker_id, model_id, lens_id, camera_id," + " exposure, aperture, iso, focal_length," + " focus_distance, datetime_taken, flags," + " output_width, output_height, crop," + " raw_parameters, raw_black, raw_maximum," + " orientation, longitude," + " latitude, altitude, color_matrix, colorspace, version," + " max_version, write_timestamp, history_end, position," + " aspect_ratio, exposure_bias," + " import_timestamp, change_timestamp, export_timestamp, print_timestamp" + " FROM images", + "[init] can't populate new images table\n"); + + // NOTE: datetime_taken is in nano-second since "0001-01-01 00:00:00" + TRY_EXEC("DROP VIEW v_images", + "[init] can't drop v_images view\n"); + + TRY_EXEC("DROP TABLE images", + "[init] can't drop table images_old\n"); + + TRY_EXEC("ALTER TABLE images_new RENAME TO images", + "[init] can't rename images\n"); + + TRY_EXEC + ("CREATE VIEW v_images AS" + " SELECT mi.id AS id, mk.name AS maker, md.name AS model, ln.name AS lens," + " cm.maker || ' ' || cm.model AS normalized_camera, " + " cm.alias AS camera_alias," + " exposure, aperture, iso," + " datetime(datetime_taken/1000000" + " + unixepoch('0001-01-01 00:00:00'), 'unixepoch') AS datetime," + " fr.folder AS folders, filename" + " FROM images AS mi," + " makers AS mk, models AS md, lens AS ln, cameras AS cm, film_rolls AS fr" + " WHERE mi.maker_id = mk.id" + " AND mi.model_id = md.id" + " AND mi.lens_id = ln.id" + " AND mi.camera_id = cm.id" + " AND mi.film_id = fr.id" + " ORDER BY normalized_camera, folders", + "[init] can't create view v_images\n"); + + sqlite3_exec(db->handle, "COMMIT", NULL, NULL, NULL); + sqlite3_exec(db->handle, "PRAGMA foreign_keys = ON", NULL, NULL, NULL); + + new_version = 42; + } + else if(version == 42) + { + TRY_EXEC("ALTER TABLE main.history_hash ADD COLUMN fullthumb_maxmip INTEGER default 0", + "[init] can't add fullthumb_maxmip column\n"); + new_version = 43; + } + else if(version == 43) + { + // add back triggers and indices removed during last images changes. + + // recreate the indexes + TRY_EXEC("CREATE INDEX image_position_index ON images (position)", + "[init] can't add image_position_index\n"); + TRY_EXEC("CREATE INDEX images_filename_index ON images (filename, version)", + "[init] can't recreate images_filename_index\n"); + TRY_EXEC("CREATE INDEX images_film_id_index ON images (film_id, filename)", + "[init] can't recreate images_film_id_index\n"); + TRY_EXEC("CREATE INDEX images_group_id_index ON images (group_id, id)", + "[init] can't recreate images_group_id_index\n"); + TRY_EXEC("CREATE INDEX images_latlong_index ON images (latitude DESC, longitude DESC)", + "[init] can't add images_latlong_index\n"); + TRY_EXEC("CREATE INDEX images_datetime_taken ON images (datetime_taken)", + "[init] can't create images_datetime_taken\n"); + + // Some triggers to remove possible dangling refs in makers/models/lens/cameras + TRY_EXEC("CREATE TRIGGER remove_makers AFTER DELETE ON images" + " BEGIN" + " DELETE FROM makers" + " WHERE id = OLD.maker_id" + " AND NOT EXISTS (SELECT 1 FROM images WHERE maker_id = OLD.maker_id);" + " END", + "[init] can't create trigger remove_makers\n"); + + TRY_EXEC("CREATE TRIGGER remove_models AFTER DELETE ON images" + " BEGIN" + " DELETE FROM models" + " WHERE id = OLD.model_id" + " AND NOT EXISTS (SELECT 1 FROM images WHERE model_id = OLD.model_id);" + " END", + "[init] can't create trigger remove_models\n"); + + TRY_EXEC("CREATE TRIGGER remove_lens AFTER DELETE ON images" + " BEGIN" + " DELETE FROM lens" + " WHERE id = OLD.lens_id" + " AND NOT EXISTS (SELECT 1 FROM images WHERE lens_id = OLD.lens_id);" + " END", + "[init] can't create trigger remove_lens\n"); + + TRY_EXEC("CREATE TRIGGER remove_cameras AFTER DELETE ON images" + " BEGIN" + " DELETE FROM cameras" + " WHERE id = OLD.camera_id" + " AND NOT EXISTS (SELECT 1 FROM images WHERE camera_id = OLD.camera_id);" + " END", + "[init] can't create trigger remove_cameras\n"); + + new_version = 44; + } + else if(version == 44) + { + sqlite3_exec(db->handle, "PRAGMA foreign_keys = OFF", NULL, NULL, NULL); + sqlite3_exec(db->handle, "BEGIN TRANSACTION", NULL, NULL, NULL); + + // As we cannot rename a table if we have FOREIGN KEY or CASCADE + // we do a workaround by creating a tmp table and populate data twice. + + TRY_EXEC("CREATE TABLE tmp_history_hash" + " (imgid INTEGER PRIMARY KEY," + " basic_hash BLOB, auto_hash BLOB, current_hash BLOB, mipmap_hash BLOB," + " FOREIGN KEY(imgid) REFERENCES images(id) ON UPDATE CASCADE ON DELETE CASCADE)", + "[init] can't create table tmp_history_hash\n"); + + TRY_EXEC("INSERT INTO tmp_history_hash" + " SELECT imgid, basic_hash, auto_hash, current_hash, mipmap_hash" + " FROM history_hash", + "[init] can't populate table tmp_history_hash\n"); + + TRY_EXEC("DROP TABLE history_hash", + "[init] can't drop table history_hash\n"); + + TRY_EXEC("CREATE TABLE history_hash" + " (imgid INTEGER PRIMARY KEY," + " basic_hash BLOB, auto_hash BLOB, current_hash BLOB, mipmap_hash BLOB," + " FOREIGN KEY(imgid) REFERENCES images(id) ON UPDATE CASCADE ON DELETE CASCADE)", + "[init] can't create new table history_hash\n"); + + TRY_EXEC("INSERT INTO history_hash" + " SELECT imgid, basic_hash, auto_hash, current_hash, mipmap_hash" + " FROM tmp_history_hash", + "[init] can't populate table history_hash\n"); + + TRY_EXEC("DROP TABLE tmp_history_hash", + "[init] can't drop table tmp_history_hash\n"); + + TRY_EXEC("ALTER TABLE images ADD COLUMN thumb_timestamp INTEGER default -1", + "[init] can't add fullthumb_hash column\n"); + + TRY_EXEC("ALTER TABLE images ADD COLUMN thumb_maxmip INTEGER default 0", + "[init] can't add fullthumb_maxmip column\n"); + + sqlite3_exec(db->handle, "COMMIT", NULL, NULL, NULL); + sqlite3_exec(db->handle, "PRAGMA foreign_keys = ON", NULL, NULL, NULL); + + new_version = 45; + } + else if(version == 45) + { + TRY_EXEC("DROP TABLE IF EXISTS legacy_presets", + "[init] can't drop legacy_presets\n"); + + new_version = 46; + } + else if(version == 46) + { + TRY_EXEC("CREATE TABLE harmony_guide" + " (imgid INTEGER PRIMARY KEY," + " type INTEGER, rotation INTEGER, width INTEGER," + " FOREIGN KEY(imgid) REFERENCES images(id)" + " ON UPDATE CASCADE ON DELETE CASCADE)", + "[init] can't create table harmony_guide\n"); + + new_version = 47; + } else new_version = version; // should be the fallback so that calling code sees that we are in an infinite loop // write the new version to db - sqlite3_prepare_v2(db->handle, "INSERT OR REPLACE INTO main.db_info (key, value) VALUES ('version', ?1)", -1, &stmt, + sqlite3_prepare_v2(db->handle, + "INSERT OR REPLACE" + " INTO main.db_info (key, value)" + " VALUES ('version', ?1)", -1, &stmt, NULL); sqlite3_bind_int(stmt, 1, new_version); sqlite3_step(stmt); @@ -2394,7 +2847,10 @@ // write the new version to db // clang-format off¨ - sqlite3_prepare_v2(db->handle, "INSERT OR REPLACE INTO data.db_info (key, value) VALUES ('version', ?1)", -1, &stmt, + sqlite3_prepare_v2(db->handle, + "INSERT OR REPLACE" + " INTO data.db_info (key, value)" + " VALUES ('version', ?1)", -1, &stmt, NULL); // clang-format on sqlite3_bind_int(stmt, 1, new_version); @@ -2418,7 +2874,8 @@ { const int new_version = _upgrade_library_schema_step(db, version); if(new_version == version) - return FALSE; // we don't know how to upgrade this db. probably a bug in _upgrade_library_schema_step + return FALSE; // we don't know how to upgrade this db. probably + // a bug in _upgrade_library_schema_step else version = new_version; } @@ -2446,10 +2903,12 @@ sqlite3_stmt *stmt; ////////////////////////////// db_info // clang-format off - sqlite3_exec(db->handle, "CREATE TABLE main.db_info (key VARCHAR PRIMARY KEY, value VARCHAR)", NULL, - NULL, NULL); - sqlite3_prepare_v2( - db->handle, "INSERT OR REPLACE INTO main.db_info (key, value) VALUES ('version', ?1)", -1, &stmt, NULL); + sqlite3_exec + (db->handle, "CREATE TABLE main.db_info (key VARCHAR PRIMARY KEY, value VARCHAR)", + NULL, NULL, NULL); + sqlite3_prepare_v2 + (db->handle, "INSERT OR REPLACE INTO main.db_info (key, value) VALUES ('version', ?1)", + -1, &stmt, NULL); // clang-format on sqlite3_bind_int(stmt, 1, CURRENT_DATABASE_VERSION_LIBRARY); sqlite3_step(stmt); @@ -2465,34 +2924,92 @@ "folder VARCHAR(1024) NOT NULL)", NULL, NULL, NULL); sqlite3_exec(db->handle, "CREATE INDEX main.film_rolls_folder_index ON film_rolls (folder)", NULL, NULL, NULL); + ////////////////////////////// maker + sqlite3_exec(db->handle, + "CREATE TABLE main.makers" + " (id INTEGER PRIMARY KEY AUTOINCREMENT," + " name VARCHAR)", + NULL, NULL, NULL); + sqlite3_exec + (db->handle, + "CREATE INDEX makers_name ON makers (name)", + NULL, NULL, NULL); + ////////////////////////////// model + sqlite3_exec(db->handle, + "CREATE TABLE main.models" + " (id INTEGER PRIMARY KEY AUTOINCREMENT," + " name VARCHAR)", + NULL, NULL, NULL); + sqlite3_exec + (db->handle, + "CREATE INDEX models_name ON models (name)", + NULL, NULL, NULL); + ////////////////////////////// lens + sqlite3_exec(db->handle, + "CREATE TABLE main.lens" + " (id INTEGER PRIMARY KEY AUTOINCREMENT," + " name VARCHAR)", + NULL, NULL, NULL); + sqlite3_exec + (db->handle, + "CREATE INDEX lens_name ON lens (name)", + NULL, NULL, NULL); + ////////////////////////////// cameras + sqlite3_exec(db->handle, + "CREATE TABLE cameras" + " (id INTEGER PRIMARY KEY AUTOINCREMENT," + " maker VARCHAR, model VARCHAR," + " alias VARCHAR)", + NULL, NULL, NULL); + sqlite3_exec + (db->handle, + "CREATE UNIQUE INDEX cameras_name ON cameras (maker, model, alias)", + NULL, NULL, NULL); ////////////////////////////// images sqlite3_exec( db->handle, - "CREATE TABLE main.images (id INTEGER PRIMARY KEY AUTOINCREMENT, group_id INTEGER, film_id INTEGER, " - "width INTEGER, height INTEGER, filename VARCHAR, maker VARCHAR, model VARCHAR, " - "lens VARCHAR, exposure REAL, aperture REAL, iso REAL, focal_length REAL, " - "focus_distance REAL, datetime_taken INTEGER, flags INTEGER, " - "output_width INTEGER, output_height INTEGER, crop REAL, " - "raw_parameters INTEGER, raw_denoise_threshold REAL, " - "raw_auto_bright_threshold REAL, raw_black INTEGER, raw_maximum INTEGER, " - "license VARCHAR, sha1sum CHAR(40), " - "orientation INTEGER, histogram BLOB, lightmap BLOB, longitude REAL, " - "latitude REAL, altitude REAL, color_matrix BLOB, colorspace INTEGER, version INTEGER, " - "max_version INTEGER, write_timestamp INTEGER, history_end INTEGER, position INTEGER, " - "aspect_ratio REAL, exposure_bias REAL, " - "import_timestamp INTEGER DEFAULT -1, change_timestamp INTEGER DEFAULT -1, " - "export_timestamp INTEGER DEFAULT -1, print_timestamp INTEGER DEFAULT -1, " + "CREATE TABLE main.images" + " (id INTEGER PRIMARY KEY AUTOINCREMENT, group_id INTEGER, film_id INTEGER," + " width INTEGER, height INTEGER, filename VARCHAR," + " maker_id INTEGER, model_id INTEGER, lens_id INTEGER, camera_id INTEGER," + " exposure REAL, aperture REAL, iso REAL, focal_length REAL," + " focus_distance REAL, datetime_taken INTEGER, flags INTEGER," + " output_width INTEGER, output_height INTEGER, crop REAL," + " raw_parameters INTEGER, raw_black INTEGER, raw_maximum INTEGER," + " orientation INTEGER, longitude REAL," + " latitude REAL, altitude REAL, color_matrix BLOB, colorspace INTEGER," + " version INTEGER, max_version INTEGER, write_timestamp INTEGER," + " history_end INTEGER, position INTEGER, aspect_ratio REAL, exposure_bias REAL," + " import_timestamp INTEGER DEFAULT -1, change_timestamp INTEGER DEFAULT -1, " + " export_timestamp INTEGER DEFAULT -1, print_timestamp INTEGER DEFAULT -1, " + " thumb_timestamp INTEGER DEFAULT -1, thumb_maxmip INTEGER DEFAULT 0, " + "FOREIGN KEY(maker_id) REFERENCES makers(id) ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(model_id) REFERENCES models(id) ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(lens_id) REFERENCES lens(id) ON DELETE CASCADE ON UPDATE CASCADE, " + "FOREIGN KEY(camera_id) REFERENCES cameras(id) ON DELETE CASCADE ON UPDATE CASCADE, " "FOREIGN KEY(film_id) REFERENCES film_rolls(id) ON DELETE CASCADE ON UPDATE CASCADE, " "FOREIGN KEY(group_id) REFERENCES images(id) ON DELETE RESTRICT ON UPDATE CASCADE)", NULL, NULL, NULL); - sqlite3_exec(db->handle, "CREATE INDEX main.images_group_id_index ON images (group_id, id)", NULL, NULL, NULL); - sqlite3_exec(db->handle, "CREATE INDEX main.images_film_id_index ON images (film_id, filename)", NULL, NULL, NULL); - sqlite3_exec(db->handle, "CREATE INDEX main.images_filename_index ON images (filename, version)", NULL, NULL, NULL); - sqlite3_exec(db->handle, "CREATE INDEX main.image_position_index ON images (position)", NULL, NULL, NULL); - sqlite3_exec(db->handle, "CREATE INDEX main.images_datetime_taken_nc ON images (datetime_taken)", NULL, NULL, NULL); + sqlite3_exec(db->handle, + "CREATE INDEX main.images_group_id_index ON images (group_id, id)", + NULL, NULL, NULL); + sqlite3_exec(db->handle, + "CREATE INDEX main.images_film_id_index ON images (film_id, filename)", + NULL, NULL, NULL); + sqlite3_exec(db->handle, + "CREATE INDEX main.images_filename_index ON images (filename, version)", + NULL, NULL, NULL); + sqlite3_exec(db->handle, + "CREATE INDEX main.image_position_index ON images (position)", + NULL, NULL, NULL); + sqlite3_exec(db->handle, + "CREATE INDEX main.images_datetime_taken_nc ON images (datetime_taken)", + NULL, NULL, NULL); ////////////////////////////// selected_images - sqlite3_exec(db->handle, "CREATE TABLE main.selected_images (imgid INTEGER PRIMARY KEY)", NULL, NULL, NULL); + sqlite3_exec(db->handle, + "CREATE TABLE main.selected_images (imgid INTEGER PRIMARY KEY)", + NULL, NULL, NULL); ////////////////////////////// history sqlite3_exec( db->handle, @@ -2534,16 +3051,91 @@ sqlite3_exec(db->handle, "CREATE INDEX main.metadata_index_key ON meta_data (key)", NULL, NULL, NULL); sqlite3_exec(db->handle, "CREATE TABLE main.module_order (imgid INTEGER PRIMARY KEY, version INTEGER, iop_list VARCHAR)", NULL, NULL, NULL); - sqlite3_exec(db->handle, "CREATE TABLE main.history_hash (imgid INTEGER PRIMARY KEY, " - "basic_hash BLOB, auto_hash BLOB, current_hash BLOB, mipmap_hash BLOB, " - "FOREIGN KEY(imgid) REFERENCES images(id) ON UPDATE CASCADE ON DELETE CASCADE)", - NULL, NULL, NULL); + sqlite3_exec + (db->handle, "CREATE TABLE main.history_hash" + " (imgid INTEGER PRIMARY KEY," + " basic_hash BLOB, auto_hash BLOB, current_hash BLOB," + " mipmap_hash BLOB," + " FOREIGN KEY(imgid) REFERENCES images(id) ON UPDATE CASCADE ON DELETE CASCADE)", + NULL, NULL, NULL); // v34 sqlite3_exec(db->handle, "CREATE INDEX main.images_datetime_taken_nc ON images (datetime_taken COLLATE NOCASE)", NULL, NULL, NULL); sqlite3_exec(db->handle, "CREATE INDEX main.metadata_index_key ON meta_data (key)", NULL, NULL, NULL); sqlite3_exec(db->handle, "CREATE INDEX main.metadata_index_value ON meta_data (value)", NULL, NULL, NULL); + + sqlite3_exec + (db->handle, + "CREATE TABLE harmony_guide" + " (imgid INTEGER PRIMARY KEY," + " type INTEGER, rotation INTEGER, width INTEGER," + " FOREIGN KEY(imgid) REFERENCES images(id)" + " ON UPDATE CASCADE ON DELETE CASCADE)", + NULL, NULL, NULL); + + // Some triggers to remove possible dangling refs in makers/models/lens/cameras + sqlite3_exec + (db->handle, + "CREATE TRIGGER remove_makers AFTER DELETE ON images" + " BEGIN" + " DELETE FROM makers" + " WHERE id = OLD.maker_id" + " AND NOT EXISTS (SELECT 1 FROM images WHERE maker_id = OLD.maker_id);" + " END", + NULL, NULL, NULL); + + sqlite3_exec + (db->handle, + "CREATE TRIGGER remove_models AFTER DELETE ON images" + " BEGIN" + " DELETE FROM models" + " WHERE id = OLD.model_id" + " AND NOT EXISTS (SELECT 1 FROM images WHERE model_id = OLD.model_id);" + " END", + NULL, NULL, NULL); + + sqlite3_exec + (db->handle, + "CREATE TRIGGER remove_lens AFTER DELETE ON images" + " BEGIN" + " DELETE FROM lens" + " WHERE id = OLD.lens_id" + " AND NOT EXISTS (SELECT 1 FROM images WHERE lens_id = OLD.lens_id);" + " END", + NULL, NULL, NULL); + + sqlite3_exec + (db->handle, + "CREATE TRIGGER remove_cameras AFTER DELETE ON images" + " BEGIN" + " DELETE FROM cameras" + " WHERE id = OLD.camera_id" + " AND NOT EXISTS (SELECT 1 FROM images WHERE camera_id = OLD.camera_id);" + " END", + NULL, NULL, NULL); + + // Finally some views to ease walking the data + + // NOTE: datetime_taken is in nano-second since "0001-01-01 00:00:00" + sqlite3_exec + (db->handle, + "CREATE VIEW v_images AS" + " SELECT mi.id AS id, mk.name AS maker, md.name AS model, ln.name AS lens," + " cm.name AS normalized_camera, cm.alias AS camera_alias," + " exposure, aperture, iso," + " datetime(datetime_taken/1000000" + " + unixepoch('0001-01-01 00:00:00'), 'unixepoch') AS datetime," + " fr.folder AS folders, filename" + " FROM images AS mi," + " makers AS mk, models AS md, lens AS ln, cameras AS cm, film_rolls AS fr" + " WHERE mi.maker_id = mk.id" + " AND mi.model_id = md.id" + " AND mi.lens_id = ln.id" + " AND mi.camera_id = cm.id" + " AND mi.film_id = fr.id" + " ORDER BY normalized_camera, folders", + NULL, NULL, NULL); // clang-format on } @@ -2553,10 +3145,12 @@ sqlite3_stmt *stmt; // clang-format off ////////////////////////////// db_info - sqlite3_exec(db->handle, "CREATE TABLE data.db_info (key VARCHAR PRIMARY KEY, value VARCHAR)", NULL, - NULL, NULL); - sqlite3_prepare_v2( - db->handle, "INSERT OR REPLACE INTO data.db_info (key, value) VALUES ('version', ?1)", -1, &stmt, NULL); + sqlite3_exec + (db->handle, "CREATE TABLE data.db_info (key VARCHAR PRIMARY KEY, value VARCHAR)", + NULL, NULL, NULL); + sqlite3_prepare_v2 + (db->handle, "INSERT OR REPLACE INTO data.db_info (key, value) VALUES ('version', ?1)", + -1, &stmt, NULL); sqlite3_bind_int(stmt, 1, CURRENT_DATABASE_VERSION_DATA); sqlite3_step(stmt); sqlite3_finalize(stmt); @@ -2775,14 +3369,14 @@ // clang-format on gboolean delete_lockfiles = dt_gui_show_standalone_yes_no_dialog(_("error starting darktable"), - label_text, _("cancel"), _("delete database lock files")); + label_text, _("_cancel"), _("_delete database lock files")); if(delete_lockfiles) { gboolean really_delete_lockfiles = dt_gui_show_standalone_yes_no_dialog (_("are you sure?"), - _("\ndo you really want to delete the lock files?\n"), _("no"), _("yes")); + _("\ndo you really want to delete the lock files?\n"), _("_no"), _("_yes")); if(really_delete_lockfiles) { int status = 0; @@ -2800,14 +3394,14 @@ if(status==0) dt_gui_show_standalone_yes_no_dialog(_("done"), _("\nsuccessfully deleted the lock files.\nyou can now restart darktable\n"), - _("ok"), NULL); + _("_ok"), NULL); else dt_gui_show_standalone_yes_no_dialog (_("error"), g_markup_printf_escaped( _("\nat least one file could not be removed.\n" "you may try to manually delete the files <i>data.db.lock</i> and <i>library.db.lock</i>\n" "in folder <a href=\"file:///%s\">%s</a>.\n"), lck_dirname, lck_dirname), - _("ok"), NULL); + _("_ok"), NULL); } } @@ -2964,7 +3558,63 @@ return TRUE; } -void ask_for_upgrade(const gchar *dbname, const gboolean has_gui) +static gboolean _upgrade_camera_table(const dt_database_t *db) +{ + gboolean res = TRUE; + sqlite3_stmt *stmt; + sqlite3_stmt *innerstmt; + + sqlite3_prepare_v2(db->handle, + "SELECT mi.id, mk.name, md.name" + " FROM main.images AS mi, main.makers AS mk, main.models AS md" + " WHERE mi.maker_id = mk.id" + " AND mi.model_id = md.id", + -1, &stmt, NULL); + + sqlite3_prepare_v2(db->handle, + "UPDATE main.images SET camera_id = ?1 WHERE id = ?2", + -1, &innerstmt, NULL); + + while(sqlite3_step(stmt) == SQLITE_ROW) + { + const dt_imgid_t imgid = sqlite3_column_int(stmt, 0); + const char *maker = (const char *)sqlite3_column_text(stmt, 1); + const char *model = (const char *)sqlite3_column_text(stmt, 2); + + const int32_t camera_id = dt_image_get_camera_id(maker, model); + + sqlite3_bind_int(innerstmt, 1, camera_id); + sqlite3_bind_int(innerstmt, 2, imgid); + sqlite3_step(innerstmt); + sqlite3_reset(innerstmt); + sqlite3_clear_bindings(innerstmt); + } + + sqlite3_finalize(stmt); + sqlite3_finalize(innerstmt); + + return res; +} + +static void _too_new_db_version(const gchar *dbname, const gboolean has_gui) +{ + if(!has_gui) + exit(1); + + char *label_text = g_markup_printf_escaped + (_("the database schema version of\n" + "\n" + "<span style='italic'>%s</span>\n" + "\n" + "is too new for this build of darktable " + "(this means the database was created or upgraded by a newer darktable version)\n"), + dbname); + dt_gui_show_standalone_yes_no_dialog(_("darktable - too new db version"), label_text, + _("_quit darktable"), NULL); + g_free(label_text); +} + +static void _ask_for_upgrade(const gchar *dbname, const gboolean has_gui) { // if there's no gui just leave if(!has_gui) @@ -2984,7 +3634,7 @@ gboolean shall_we_update_the_db = dt_gui_show_standalone_yes_no_dialog(_("darktable - schema migration"), label_text, - _("close darktable"), _("upgrade database")); + _("_close darktable"), _("_upgrade database")); g_free(label_text); @@ -3108,11 +3758,11 @@ { dbname = dt_conf_get_string("database"); if(!dbname) - snprintf(dbfilename_library, sizeof(dbfilename_library), "%s/library.db", datadir); + snprintf(dbfilename_library, sizeof(dbfilename_library), "%s%slibrary.db", datadir, G_DIR_SEPARATOR_S); else if(!strcmp(dbname, ":memory:")) g_strlcpy(dbfilename_library, dbname, sizeof(dbfilename_library)); else if(dbname[0] != '/') - snprintf(dbfilename_library, sizeof(dbfilename_library), "%s/%s", datadir, dbname); + snprintf(dbfilename_library, sizeof(dbfilename_library), "%s%s%s", datadir, G_DIR_SEPARATOR_S, dbname); else g_strlcpy(dbfilename_library, dbname, sizeof(dbfilename_library)); } @@ -3128,7 +3778,7 @@ /* we also need a 2nd db with permanent data like presets, styles and tags */ char dbfilename_data[PATH_MAX] = { 0 }; if(load_data) - snprintf(dbfilename_data, sizeof(dbfilename_data), "%s/data.db", datadir); + snprintf(dbfilename_data, sizeof(dbfilename_data), "%s%sdata.db", datadir, G_DIR_SEPARATOR_S); else snprintf(dbfilename_data, sizeof(dbfilename_data), ":memory:"); @@ -3235,7 +3885,9 @@ else { gchar* data_status = _get_pragma_string_val(db->handle, "data.quick_check"); - rc = sqlite3_prepare_v2(db->handle, "select value from data.db_info where key = 'version'", -1, &stmt, NULL); + rc = sqlite3_prepare_v2(db->handle, + "SELECT value FROM data.db_info WHERE key = 'version'", + -1, &stmt, NULL); if(!g_strcmp0(data_status, "ok") && rc == SQLITE_OK && sqlite3_step(stmt) == SQLITE_ROW) { g_free(data_status); // status is OK and we don't need to care :) @@ -3244,7 +3896,7 @@ sqlite3_finalize(stmt); if(db_version < CURRENT_DATABASE_VERSION_DATA) { - ask_for_upgrade(dbfilename_data, has_gui); + _ask_for_upgrade(dbfilename_data, has_gui); // older: upgrade if(!_upgrade_data_schema(db, db_version)) @@ -3258,7 +3910,7 @@ goto error; } - // upgrade was successfull, time for some housekeeping + // upgrade was successful, time for some housekeeping sqlite3_exec(db->handle, "VACUUM data", NULL, NULL, NULL); sqlite3_exec(db->handle, "ANALYZE data", NULL, NULL, NULL); @@ -3266,6 +3918,7 @@ else if(db_version > CURRENT_DATABASE_VERSION_DATA) { // newer: bail out + _too_new_db_version(dbfilename_data, has_gui); dt_print(DT_DEBUG_ALWAYS, "[init] database version of `%s' is too new for this build of darktable. aborting\n", dbfilename_data); @@ -3303,12 +3956,9 @@ dialog = gtk_dialog_new_with_buttons(_("darktable - error opening database"), NULL, dflags, - _("close darktable"), - GTK_RESPONSE_CLOSE, - _("attempt restore"), - GTK_RESPONSE_ACCEPT, - _("delete database"), - GTK_RESPONSE_REJECT, + _("_close darktable"), GTK_RESPONSE_CLOSE, + _("_attempt restore"), GTK_RESPONSE_ACCEPT, + _("_delete database"), GTK_RESPONSE_REJECT, NULL); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); label_options = _("do you want to close darktable now to manually restore\n" @@ -3321,10 +3971,8 @@ dialog = gtk_dialog_new_with_buttons(_("darktable - error opening database"), NULL, dflags, - _("close darktable"), - GTK_RESPONSE_CLOSE, - _("delete database"), - GTK_RESPONSE_REJECT, + _("_close darktable"), GTK_RESPONSE_CLOSE, + _("_delete database"), GTK_RESPONSE_REJECT, NULL); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_CLOSE); label_options = _("do you want to close darktable now to manually restore\n" @@ -3419,7 +4067,9 @@ gchar* libdb_status = _get_pragma_string_val(db->handle, "main.quick_check"); // next we are looking at the library database // does the db contain the new 'db_info' table? - rc = sqlite3_prepare_v2(db->handle, "select value from main.db_info where key = 'version'", -1, &stmt, NULL); + rc = sqlite3_prepare_v2(db->handle, + "SELECT value FROM main.db_info WHERE key = 'version'", + -1, &stmt, NULL); if(!g_strcmp0(libdb_status, "ok") && rc == SQLITE_OK && sqlite3_step(stmt) == SQLITE_ROW) { g_free(libdb_status);//it's ok :) @@ -3430,7 +4080,7 @@ sqlite3_finalize(stmt); if(db_version < CURRENT_DATABASE_VERSION_LIBRARY) { - ask_for_upgrade(dbfilename_library, has_gui); + _ask_for_upgrade(dbfilename_library, has_gui); // older: upgrade if(!_upgrade_library_schema(db, db_version)) @@ -3444,13 +4094,14 @@ goto error; } - // upgrade was successfull, time for some housekeeping + // upgrade was successful, time for some housekeeping sqlite3_exec(db->handle, "VACUUM main", NULL, NULL, NULL); sqlite3_exec(db->handle, "ANALYZE main", NULL, NULL, NULL); } else if(db_version > CURRENT_DATABASE_VERSION_LIBRARY) { // newer: bail out. it's better than what we did before: delete everything + _too_new_db_version(dbfilename_library, has_gui); dt_print(DT_DEBUG_ALWAYS, "[init] database version of `%s' is too new for this build of darktable. aborting\n", dbname); @@ -3488,12 +4139,9 @@ dialog = gtk_dialog_new_with_buttons(_("darktable - error opening database"), NULL, dflags, - _("close darktable"), - GTK_RESPONSE_CLOSE, - _("attempt restore"), - GTK_RESPONSE_ACCEPT, - _("delete database"), - GTK_RESPONSE_REJECT, + _("_close darktable"), GTK_RESPONSE_CLOSE, + _("_attempt restore"), GTK_RESPONSE_ACCEPT, + _("_delete database"), GTK_RESPONSE_REJECT, NULL); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); label_options = _("do you want to close darktable now to manually restore\n" @@ -3506,10 +4154,8 @@ dialog = gtk_dialog_new_with_buttons(_("darktable - error opening database"), NULL, dflags, - _("close darktable"), - GTK_RESPONSE_CLOSE, - _("delete database"), - GTK_RESPONSE_REJECT, + _("_close darktable"), GTK_RESPONSE_CLOSE, + _("_delete database"), GTK_RESPONSE_REJECT, NULL); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_CLOSE); label_options = _("do you want to close darktable now to manually restore\n" @@ -3600,15 +4246,15 @@ { // does it contain the legacy 'settings' table? sqlite3_finalize(stmt); - rc = sqlite3_prepare_v2(db->handle, "select settings from main.settings", -1, &stmt, NULL); + rc = sqlite3_prepare_v2(db->handle, "SELECT settings FROM main.settings", -1, &stmt, NULL); if(rc == SQLITE_OK && sqlite3_step(stmt) == SQLITE_ROW) { // the old blob had the version as an int in the first place const void *set = sqlite3_column_blob(stmt, 0); const int db_version = *(int *)set; sqlite3_finalize(stmt); - if(!_migrate_schema(db, db_version)) // bring the legacy layout to the first one known to our upgrade - // path ... + if(!_migrate_schema(db, db_version)) // bring the legacy layout to the first one known + // to our upgrade path ... { // we couldn't migrate the db for some reason. bail out. dt_print(DT_DEBUG_ALWAYS, @@ -3639,11 +4285,8 @@ // create the in-memory tables _create_memory_schema(db); - // create a table legacy_presets with all the presets from pre-auto-apply-cleanup darktable. - dt_legacy_presets_create(db); - // drop table settings -- we don't want old versions of dt to drop our tables - sqlite3_exec(db->handle, "drop table main.settings", NULL, NULL, NULL); + sqlite3_exec(db->handle, "DROP TABLE main.settings", NULL, NULL, NULL); // take care of potential bad data in the db. _sanitize_db(db); @@ -3670,6 +4313,44 @@ return db; } +void dt_upgrade_maker_model(const dt_database_t *db) +{ + sqlite3_stmt *stmt; + + // check if updating the camera table is needed (done for each new darktable version) + + sqlite3_prepare_v2(db->handle, + "SELECT value" + " FROM main.db_info" + " WHERE key = 'dt_version'", + -1, &stmt, NULL); + char *dt_version = NULL; + if(sqlite3_step(stmt) == SQLITE_ROW) + { + dt_version = (char *)sqlite3_column_text(stmt, 0); + } + + if(!dt_version || strcmp(dt_version, darktable_package_version)) + { + _upgrade_camera_table(db); + + sqlite3_finalize(stmt); + + sqlite3_prepare_v2(db->handle, + "INSERT OR REPLACE" + " INTO main.db_info (key, value)" + " VALUES ('dt_version', ?1)", + -1, &stmt, NULL); + sqlite3_bind_text(stmt, 1, darktable_package_version, -1, SQLITE_TRANSIENT); + if(sqlite3_step(stmt) != SQLITE_DONE) + { + dt_print(DT_DEBUG_ALWAYS, "[init] can't insert/update new dt_version\n"); + } + } + + sqlite3_finalize(stmt); +} + void dt_database_destroy(const dt_database_t *db) { sqlite3_close(db->handle); @@ -3789,7 +4470,7 @@ if(calc_pre_size == 0) { dt_print(DT_DEBUG_SQL, - "[db maintenance] maintenance deemed unnecesary, performing only analyze.\n"); + "[db maintenance] maintenance deemed unnecessary, performing only analyze.\n"); DT_DEBUG_SQLITE3_EXEC(db->handle, "ANALYZE data", NULL, NULL, &err); ERRCHECK DT_DEBUG_SQLITE3_EXEC(db->handle, "ANALYZE main", NULL, NULL, &err); @@ -4622,19 +5303,25 @@ // if top level a simple unamed transaction is used BEGIN / COMMIT / ROLLBACK // otherwise we use a savepoint (named transaction). - if(trxid == 0 || TRUE) + if(trxid == 0) { // In theads application it may be safer to use an IMMEDIATE transaction: // "BEGIN IMMEDIATE TRANSACTION" DT_DEBUG_SQLITE3_EXEC(dt_database_get(db), "BEGIN TRANSACTION", NULL, NULL, NULL); } -#ifdef USE_NESTED_TRANSACTIONS else +#ifdef USE_NESTED_TRANSACTIONS { char SQLTRX[32] = { 0 }; g_snprintf(SQLTRX, sizeof(SQLTRX), "SAVEPOINT trx%d", trxid); DT_DEBUG_SQLITE3_EXEC(dt_database_get(db), SQLTRX, NULL, NULL, NULL); } +#else + { + dt_print(DT_DEBUG_ALWAYS, + "[dt_database_start_transaction] nested transaction detected (%d)\n", + trxid); + } #endif if(trxid > MAX_NESTED_TRANSACTIONS) @@ -4651,17 +5338,23 @@ dt_print(DT_DEBUG_ALWAYS, "[dt_database_release_transaction] COMMIT outside a transaction\n"); - if(trxid == 1 || TRUE) + if(trxid == 1) { DT_DEBUG_SQLITE3_EXEC(dt_database_get(db), "COMMIT TRANSACTION", NULL, NULL, NULL); } -#ifdef USE_NESTED_TRANSACTIONS else +#ifdef USE_NESTED_TRANSACTIONS { char SQLTRX[64] = { 0 }; g_snprintf(SQLTRX, sizeof(SQLTRX), "RELEASE SAVEPOINT trx%d", trxid - 1); DT_DEBUG_SQLITE3_EXEC(dt_database_get(db), SQLTRX, NULL, NULL, NULL); } +#else + { + dt_print(DT_DEBUG_ALWAYS, + "[dt_database_end_transaction] nested transaction detected (%d)\n", + trxid); + } #endif } @@ -4673,17 +5366,23 @@ dt_print(DT_DEBUG_ALWAYS, "[dt_database_rollback_transaction] ROLLBACK outside a transaction\n"); - if(trxid == 1 || TRUE) + if(trxid == 1) { DT_DEBUG_SQLITE3_EXEC(dt_database_get(db), "ROLLBACK TRANSACTION", NULL, NULL, NULL); } -#ifdef USE_NESTED_TRANSACTIONS else +#ifdef USE_NESTED_TRANSACTIONS { char SQLTRX[64] = { 0 }; g_snprintf(SQLTRX, sizeof(SQLTRX), "ROLLBACK TRANSACTION TO SAVEPOINT trx%d", trxid - 1); DT_DEBUG_SQLITE3_EXEC(dt_database_get(db), SQLTRX, NULL, NULL, NULL); } +#else + { + dt_print(DT_DEBUG_ALWAYS, + "[dt_database_rollback_transaction] nested transaction detected (%d)\n", + trxid); + } #endif } diff -Nru darktable-4.4.2/src/common/database.h darktable-4.6.1/src/common/database.h --- darktable-4.4.2/src/common/database.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/database.h 2024-02-16 17:31:09.000000000 +0000 @@ -19,6 +19,7 @@ #pragma once #include <glib.h> +#include <stdint.h> #ifdef __cplusplus extern "C" { @@ -27,7 +28,9 @@ struct dt_database_t; /** allocates and initializes database */ -struct dt_database_t *dt_database_init(const char *alternative, const gboolean load_data, const gboolean has_gui); +struct dt_database_t *dt_database_init(const char *alternative, + const gboolean load_data, + const gboolean has_gui); /** closes down database and frees memory */ void dt_database_destroy(const struct dt_database_t *); /** get handle */ @@ -36,7 +39,8 @@ const gchar *dt_database_get_path(const struct dt_database_t *db); /** test if database was already locked by another instance */ gboolean dt_database_get_lock_acquired(const struct dt_database_t *db); -/** show an error popup. this has to be postponed until after we tried using dbus to reach another instance */ +/** show an error popup. this has to be postponed until after we tried + * using dbus to reach another instance */ void dt_database_show_error(const struct dt_database_t *db); /** perform pre-db-close optimizations (always call when quiting darktable) */ void dt_database_optimize(const struct dt_database_t *); @@ -54,13 +58,15 @@ /** get possibly the freshest snapshot to restore */ gchar *dt_database_get_most_recent_snap(const char* db_filename); - +int32_t dt_database_last_insert_rowid(const struct dt_database_t *); // nested transactions support void dt_database_start_transaction(const struct dt_database_t *db); void dt_database_release_transaction(const struct dt_database_t *db); void dt_database_rollback_transaction(const struct dt_database_t *db); +void dt_upgrade_maker_model(const struct dt_database_t *db); + #ifdef __cplusplus } // extern "C" #endif /* __cplusplus */ @@ -70,4 +76,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/common/datetime.c darktable-4.6.1/src/common/datetime.c --- darktable-4.4.2/src/common/datetime.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/datetime.c 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2022 darktable developers. + Copyright (C) 2022-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -47,7 +47,8 @@ static char *_datetime_append_msec(char *exif, GDateTime *gdt) { - return g_strdup_printf("%s%s%03d", exif, ".", (int)(g_date_time_get_microsecond(gdt) * 0.001)); + return g_strdup_printf("%s%s%03d", exif, ".", + (int)(g_date_time_get_microsecond(gdt) * 0.001)); } static GTimeSpan _gdatetime_to_gtimespan(GDateTime *gdt) @@ -67,15 +68,17 @@ { char sdt[DT_DATETIME_LENGTH] = DT_DATETIME_ORIGIN; int len = strlen(exif); - // If TZ data is found in the datetime string we should discard it. - // We will memcpy this string for parsing and we have to know where to stop so that - // the TZ tail after shorter XMP date-time string doesn't damage our parsing buffer. - // For possible formats see https://developer.adobe.com/xmp/docs/XMPNamespaces/XMPDataTypes/#date + // If TZ data is found in the datetime string we should discard + // it. We will memcpy this string for parsing and we have to know + // where to stop so that the TZ tail after shorter XMP date-time + // string doesn't damage our parsing buffer. For possible formats + // see + // https://developer.adobe.com/xmp/docs/XMPNamespaces/XMPDataTypes/#date if(exif[len-1] == 'Z') len--; - else if(exif[len-3] == '+' || exif[len-3] == '-') + else if(len > 10 && (exif[len - 3] == '+' || exif[len - 3] == '-')) len -= 3; - else if(exif[len-6] == '+' || exif[len-6] == '-') + else if(len > 10 && (exif[len - 6] == '+' || exif[len - 6] == '-')) len -= 6; len = len > sizeof(sdt) - 1 ? sizeof(sdt) - 1 : len; memcpy(sdt, exif, len); @@ -119,8 +122,11 @@ return FALSE; } -gboolean dt_datetime_gdatetime_to_local(char *local, const size_t local_size, - GDateTime *gdt, const gboolean msec, const gboolean tz) +gboolean dt_datetime_gdatetime_to_local(char *local, + const size_t local_size, + GDateTime *gdt, + const gboolean msec, + const gboolean tz) { if(!local || !local_size || !gdt) return FALSE; local[0] = '\0'; @@ -151,8 +157,11 @@ return FALSE; } -gboolean dt_datetime_gtimespan_to_local(char *local, const size_t local_size, - const GTimeSpan gts, const gboolean msec, const gboolean tz) +gboolean dt_datetime_gtimespan_to_local(char *local, + const size_t local_size, + const GTimeSpan gts, + const gboolean msec, + const gboolean tz) { gboolean res = FALSE; if(!local || !local_size) return FALSE; @@ -166,13 +175,17 @@ return res; } -gboolean dt_datetime_img_to_local(char *local, const size_t local_size, - const dt_image_t *img, const gboolean msec) +gboolean dt_datetime_img_to_local(char *local, + const size_t local_size, + const dt_image_t *img, + const gboolean msec) { - return dt_datetime_gtimespan_to_local(local, local_size, img->exif_datetime_taken, msec, FALSE); + return dt_datetime_gtimespan_to_local(local, local_size, + img->exif_datetime_taken, msec, FALSE); } -gboolean dt_datetime_unix_to_img(dt_image_t *img, const time_t *unix) +gboolean dt_datetime_unix_to_img(dt_image_t *img, + const time_t *unix) { GDateTime *gdt = g_date_time_new_from_unix_local(*unix); if(gdt) @@ -185,7 +198,9 @@ return FALSE; } -gboolean dt_datetime_unix_to_exif(char *exif, const size_t exif_size, const time_t *unix) +gboolean dt_datetime_unix_to_exif(char *exif, + const size_t exif_size, + const time_t *unix) { GDateTime *gdt = g_date_time_new_from_unix_local(*unix); if(gdt) @@ -209,13 +224,14 @@ } } -GTimeSpan dt_datetime_now_to_gtimespan() +GTimeSpan dt_datetime_now_to_gtimespan(void) { GDateTime *gdt = g_date_time_new_now_local(); return _gdatetime_to_gtimespan(gdt); } -void dt_datetime_exif_to_img(dt_image_t *img, const char *exif) +void dt_datetime_exif_to_img(dt_image_t *img, + const char *exif) { if(!exif) return; GDateTime *gdt = dt_datetime_exif_to_gdatetime(exif, darktable.utc_tz); @@ -227,12 +243,15 @@ else img->exif_datetime_taken = 0; } -gboolean dt_datetime_img_to_exif(char *exif, const size_t exif_size, const dt_image_t *img) +gboolean dt_datetime_img_to_exif(char *exif, + const size_t exif_size, + const dt_image_t *img) { return dt_datetime_gtimespan_to_exif(exif, exif_size, img->exif_datetime_taken); } -GDateTime *dt_datetime_exif_to_gdatetime(const char *exif, const GTimeZone *tz) +GDateTime *dt_datetime_exif_to_gdatetime(const char *exif, + const GTimeZone *tz) { dt_datetime_t dt; if(dt_datetime_exif_to_numbers(&dt, exif)) @@ -253,7 +272,9 @@ return NULL; } -gboolean dt_datetime_gdatetime_to_exif(char *exif, const size_t exif_size, GDateTime *gdt) +gboolean dt_datetime_gdatetime_to_exif(char *exif, + const size_t exif_size, + GDateTime *gdt) { if(!exif || !exif_size || !gdt) return FALSE; exif[0] = '\0'; @@ -274,9 +295,11 @@ return FALSE; } -GDateTime *dt_datetime_img_to_gdatetime(const dt_image_t *img, const GTimeZone *tz) +GDateTime *dt_datetime_img_to_gdatetime(const dt_image_t *img, + const GTimeZone *tz) { - // GTimeSpan is UTC based. Therefore we have to cheat a little bit to get image datetime + // GTimeSpan is UTC based. Therefore we have to cheat a little bit + // to get image datetime if(!tz) return NULL; GDateTime *gdt = g_date_time_add(darktable.origin_gdt, img->exif_datetime_taken); if(gdt) @@ -293,7 +316,9 @@ return NULL; } -gboolean dt_datetime_entry_to_exif(char *exif, const size_t exif_size, const char *entry) +gboolean dt_datetime_entry_to_exif(char *exif, + const size_t exif_size, + const char *entry) { if(!exif || !exif_size) return FALSE; exif[0] = '\0'; @@ -320,7 +345,9 @@ return FALSE; } -gboolean dt_datetime_entry_to_exif_upper_bound(char *exif, const size_t exif_size, const char *entry) +gboolean dt_datetime_entry_to_exif_upper_bound(char *exif, + const size_t exif_size, + const char *entry) { if(!exif || !exif_size) return FALSE; exif[0] = '\0'; @@ -373,20 +400,31 @@ return FALSE; } -void dt_datetime_add_subsec_to_exif(char *exif, const size_t exif_size, const char*subsec) +void dt_datetime_add_subsec_to_exif(char *exif, + const size_t exif_size, + const char*subsec) { if(!exif || exif_size < DT_DATETIME_EXIF_LENGTH + 1) return; - g_strlcpy(&exif[DT_DATETIME_EXIF_LENGTH - 1], ".000000", exif_size - DT_DATETIME_EXIF_LENGTH + 1); - for(int i = 0; i < 6 && subsec[i] != '\0' && (DT_DATETIME_EXIF_LENGTH + i < exif_size - 1); i++) + g_strlcpy(&exif[DT_DATETIME_EXIF_LENGTH - 1], ".000000", + exif_size - DT_DATETIME_EXIF_LENGTH + 1); + for(int i = 0; + i < 6 && subsec[i] != '\0' && (DT_DATETIME_EXIF_LENGTH + i < exif_size - 1); + i++) exif[DT_DATETIME_EXIF_LENGTH + i] = subsec[i]; + exif[exif_size - 1] = '\0'; } -gboolean dt_datetime_gtimespan_to_exif(char *sdt, const size_t sdt_size, const GTimeSpan gts) +gboolean dt_datetime_gtimespan_to_exif(char *sdt, + const size_t sdt_size, + const GTimeSpan gts) { - if(!sdt || !sdt_size) return FALSE; + if(!sdt || !sdt_size) + return FALSE; + sdt[0] = '\0'; + if(!gts) return FALSE; GDateTime *gdt = g_date_time_add(darktable.origin_gdt, gts); if(gdt) @@ -411,7 +449,8 @@ return gts; } -gboolean dt_datetime_gtimespan_to_numbers(dt_datetime_t *dt, const GTimeSpan gts) +gboolean dt_datetime_gtimespan_to_numbers(dt_datetime_t *dt, + const GTimeSpan gts) { GDateTime *gdt = g_date_time_add(darktable.origin_gdt, gts); if(gdt) @@ -445,12 +484,15 @@ return 0; } -GDateTime *dt_datetime_gdatetime_add_numbers(GDateTime *dte, const dt_datetime_t numbers, const gboolean add) +GDateTime *dt_datetime_gdatetime_add_numbers(GDateTime *dte, + const dt_datetime_t numbers, + const gboolean add) { const int s = add ? 1 : -1; GDateTime *dt2 = g_date_time_add_years(dte, s * numbers.year); GDateTime *dt = g_date_time_add_months(dt2, s * numbers.month); + g_date_time_unref(dt2); dt2 = g_date_time_add_days(dt, s * numbers.day); g_date_time_unref(dt); @@ -463,7 +505,9 @@ return dt; } -GTimeSpan dt_datetime_gtimespan_add_numbers(const GTimeSpan dt, const dt_datetime_t numbers, const gboolean add) +GTimeSpan dt_datetime_gtimespan_add_numbers(const GTimeSpan dt, + const dt_datetime_t numbers, + const gboolean add) { GDateTime *dte = dt_datetime_gtimespan_to_gdatetime(dt); GDateTime *dt2 = dt_datetime_gdatetime_add_numbers(dte, numbers, add); @@ -473,7 +517,9 @@ return ret; } -gboolean dt_datetime_exif_add_numbers(const gchar *exif, const dt_datetime_t numbers, const gboolean add, +gboolean dt_datetime_exif_add_numbers(const gchar *exif, + const dt_datetime_t numbers, + const gboolean add, gchar **result) { GDateTime *dte = dt_datetime_exif_to_gdatetime(exif, darktable.utc_tz); @@ -492,4 +538,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/common/datetime.h darktable-4.6.1/src/common/datetime.h --- darktable-4.4.2/src/common/datetime.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/datetime.h 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2022 darktable developers. + Copyright (C) 2022-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -46,26 +46,39 @@ void dt_datetime_init(void); // exif datetime to numbers. Returns TRUE if OK. -gboolean dt_datetime_exif_to_numbers(dt_datetime_t *dt, const char *exif); +gboolean dt_datetime_exif_to_numbers(dt_datetime_t *dt, + const char *exif); // gtimespan to display local string. Returns TRUE if OK. -gboolean dt_datetime_gtimespan_to_local(char *local, const size_t local_size, - const GTimeSpan gts, const gboolean msec, const gboolean tz); +gboolean dt_datetime_gtimespan_to_local(char *local, + const size_t local_size, + const GTimeSpan gts, + const gboolean msec, + const gboolean tz); // gdatetime to display local string. Returns TRUE if OK. -gboolean dt_datetime_gdatetime_to_local(char *local, const size_t local_size, - GDateTime *gdt, const gboolean msec, const gboolean tz); +gboolean dt_datetime_gdatetime_to_local(char *local, + const size_t local_size, + GDateTime *gdt, + const gboolean msec, + const gboolean tz); // exif datetime to numbers without any check about validity of fields. return TRUE of OK. -gboolean dt_datetime_exif_to_numbers_raw(dt_datetime_t *dt, const char *exif); +gboolean dt_datetime_exif_to_numbers_raw(dt_datetime_t *dt, + const char *exif); // img cache datetime to display local string. Returns TRUE if OK. -gboolean dt_datetime_img_to_local(char *local, const size_t local_size, - const dt_image_t *img, const gboolean msec); +gboolean dt_datetime_img_to_local(char *local, + const size_t local_size, + const dt_image_t *img, + const gboolean msec); // unix datetime to img cache datetime -gboolean dt_datetime_unix_to_img(dt_image_t *img, const time_t *unix); +gboolean dt_datetime_unix_to_img(dt_image_t *img, + const time_t *unix); // unix datetime to exif datetime -gboolean dt_datetime_unix_to_exif(char *exif, const size_t exif_size, const time_t *unix); +gboolean dt_datetime_unix_to_exif(char *exif, + const size_t exif_size, + const time_t *unix); // now to exif void dt_datetime_now_to_exif(char *exif); @@ -73,33 +86,49 @@ GTimeSpan dt_datetime_now_to_gtimespan(void); // exif datetime to img cache datetime -void dt_datetime_exif_to_img(dt_image_t *img, const char *exif); +void dt_datetime_exif_to_img(dt_image_t *img, + const char *exif); // img cache datetime to exif datetime -gboolean dt_datetime_img_to_exif(char *exif, const size_t exif_size, const dt_image_t *img); +gboolean dt_datetime_img_to_exif(char *exif, + const size_t exif_size, + const dt_image_t *img); // exif datetime to GDateTime. Returns NULL if NOK. Should be freed by g_date_time_unref(). -GDateTime *dt_datetime_exif_to_gdatetime(const char *exif, const GTimeZone *tz); +GDateTime *dt_datetime_exif_to_gdatetime(const char *exif, + const GTimeZone *tz); // GDateTime to exif datetime. -gboolean dt_datetime_gdatetime_to_exif(char *exif, const size_t exif_size, GDateTime *gdt); +gboolean dt_datetime_gdatetime_to_exif(char *exif, + const size_t exif_size, + GDateTime *gdt); // img cache datetime to GDateTime. Returns NULL if NOK. Should be freed by g_date_time_unref(). -GDateTime *dt_datetime_img_to_gdatetime(const dt_image_t *img, const GTimeZone *tz); +GDateTime *dt_datetime_img_to_gdatetime(const dt_image_t *img, + const GTimeZone *tz); // progressive manual entry datetime to exif datetime -gboolean dt_datetime_entry_to_exif(char *exif, const size_t exif_size, const char *entry); +gboolean dt_datetime_entry_to_exif(char *exif, + const size_t exif_size, + const char *entry); // progressive manual entry datetime to exif datetime bound -gboolean dt_datetime_entry_to_exif_upper_bound(char *exif, const size_t exif_size, const char *entry); +gboolean dt_datetime_entry_to_exif_upper_bound(char *exif, + const size_t exif_size, + const char *entry); // add subsec (decimal numbers) to exif datetime -void dt_datetime_add_subsec_to_exif(char *exif, const size_t exif_size, const char*subsec); +void dt_datetime_add_subsec_to_exif(char *exif, + const size_t exif_size, + const char*subsec); // gtimespan to exif datetime -gboolean dt_datetime_gtimespan_to_exif(char *sdt, const size_t sdt_size, const GTimeSpan gts); +gboolean dt_datetime_gtimespan_to_exif(char *sdt, + const size_t sdt_size, + const GTimeSpan gts); // exif datetime to gtimespan GTimeSpan dt_datetime_exif_to_gtimespan(const char *sdt); // gtimepsan to datetime numbers -gboolean dt_datetime_gtimespan_to_numbers(dt_datetime_t *dt, const GTimeSpan gts); +gboolean dt_datetime_gtimespan_to_numbers(dt_datetime_t *dt, + const GTimeSpan gts); // datetime numbers to gtimespan GTimeSpan dt_datetime_numbers_to_gtimespan(const dt_datetime_t *dt); @@ -109,13 +138,19 @@ GDateTime *dt_datetime_gtimespan_to_gdatetime(const GTimeSpan gts); // add values (represented by dt_datetime_t) to gdatetime -GDateTime *dt_datetime_gdatetime_add_numbers(GDateTime *dte, const dt_datetime_t numbers, const gboolean add); +GDateTime *dt_datetime_gdatetime_add_numbers(GDateTime *dte, + const dt_datetime_t numbers, + const gboolean add); // add values (represented by dt_datetime_t) to unix datetime -GTimeSpan dt_datetime_gtimespan_add_numbers(const GTimeSpan dt, const dt_datetime_t numbers, const gboolean add); +GTimeSpan dt_datetime_gtimespan_add_numbers(const GTimeSpan dt, + const dt_datetime_t numbers, + const gboolean add); // add values (represented by dt_datetime_t) to exif datetime -gboolean dt_datetime_exif_add_numbers(const gchar *exif, const dt_datetime_t numbers, const gboolean add, +gboolean dt_datetime_exif_add_numbers(const gchar *exif, + const dt_datetime_t numbers, + const gboolean add, gchar **result); #ifdef __cplusplus @@ -127,4 +162,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/common/dlopencl.c darktable-4.6.1/src/common/dlopencl.c --- darktable-4.4.2/src/common/dlopencl.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/dlopencl.c 2024-02-16 17:31:09.000000000 +0000 @@ -141,8 +141,8 @@ (void (**)(void)) & ocl->symbols->dt_clCreateKernel); success = success && dt_gmodule_symbol(module, "clCreateBuffer", (void (**)(void)) & ocl->symbols->dt_clCreateBuffer); - success = success && dt_gmodule_symbol(module, "clCreateImage2D", - (void (**)(void)) & ocl->symbols->dt_clCreateImage2D); + success = success && dt_gmodule_symbol(module, "clCreateImage", + (void (**)(void)) & ocl->symbols->dt_clCreateImage); success = success && dt_gmodule_symbol(module, "clEnqueueWriteBuffer", (void (**)(void)) & ocl->symbols->dt_clEnqueueWriteBuffer); success = success && dt_gmodule_symbol(module, "clSetKernelArg", @@ -184,8 +184,6 @@ (void (**)(void)) & ocl->symbols->dt_clGetEventProfilingInfo); success = success && dt_gmodule_symbol(module, "clGetKernelInfo", (void (**)(void)) & ocl->symbols->dt_clGetKernelInfo); - success = success && dt_gmodule_symbol(module, "clEnqueueBarrier", - (void (**)(void)) & ocl->symbols->dt_clEnqueueBarrier); success = success && dt_gmodule_symbol(module, "clGetKernelWorkGroupInfo", (void (**)(void)) & ocl->symbols->dt_clGetKernelWorkGroupInfo); success = success && dt_gmodule_symbol(module, "clEnqueueReadBuffer", diff -Nru darktable-4.4.2/src/common/dlopencl.h darktable-4.6.1/src/common/dlopencl.h --- darktable-4.4.2/src/common/dlopencl.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/dlopencl.h 2024-02-16 17:31:09.000000000 +0000 @@ -49,10 +49,8 @@ cl_command_queue_properties *); typedef cl_mem (*dt_clCreateBuffer_t)(cl_context, cl_mem_flags, size_t, void *, cl_int *); typedef cl_mem (*dt_clCreateSubBuffer_t)(cl_mem, cl_mem_flags, cl_buffer_create_type, const void *, cl_int *); -typedef cl_mem (*dt_clCreateImage2D_t)(cl_context, cl_mem_flags, const cl_image_format *, size_t, size_t, - size_t, void *, cl_int *); -typedef cl_mem (*dt_clCreateImage3D_t)(cl_context, cl_mem_flags, const cl_image_format *, size_t, size_t, - size_t, size_t, size_t, void *, cl_int *); +typedef cl_mem (*dt_clCreateImage_t)(cl_context context, cl_mem_flags flags, const cl_image_format *image_format, + const cl_image_desc *image_desc, void *host_ptr, cl_int *errcode_ret); typedef cl_int (*dt_clRetainMemObject_t)(cl_mem); typedef cl_int (*dt_clReleaseMemObject_t)(cl_mem); typedef cl_int (*dt_clGetSupportedImageFormats_t)(cl_context, cl_mem_flags, cl_mem_object_type, cl_uint, @@ -138,7 +136,6 @@ const cl_event *, cl_event *); typedef cl_int (*dt_clEnqueueMarker_t)(cl_command_queue, cl_event *); typedef cl_int (*dt_clEnqueueWaitForEvents_t)(cl_command_queue, cl_uint, const cl_event *); -typedef cl_int (*dt_clEnqueueBarrier_t)(cl_command_queue); typedef struct dt_dlopencl_symbols_t { @@ -158,8 +155,7 @@ dt_clSetCommandQueueProperty_t dt_clSetCommandQueueProperty; dt_clCreateBuffer_t dt_clCreateBuffer; dt_clCreateSubBuffer_t dt_clCreateSubBuffer; - dt_clCreateImage2D_t dt_clCreateImage2D; - dt_clCreateImage3D_t dt_clCreateImage3D; + dt_clCreateImage_t dt_clCreateImage; dt_clRetainMemObject_t dt_clRetainMemObject; dt_clReleaseMemObject_t dt_clReleaseMemObject; dt_clGetSupportedImageFormats_t dt_clGetSupportedImageFormats; @@ -214,7 +210,6 @@ dt_clEnqueueNativeKernel_t dt_clEnqueueNativeKernel; dt_clEnqueueMarker_t dt_clEnqueueMarker; dt_clEnqueueWaitForEvents_t dt_clEnqueueWaitForEvents; - dt_clEnqueueBarrier_t dt_clEnqueueBarrier; } dt_dlopencl_symbols_t; diff -Nru darktable-4.4.2/src/common/dwt.c darktable-4.6.1/src/common/dwt.c --- darktable-4.4.2/src/common/dwt.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/dwt.c 2024-02-16 17:31:09.000000000 +0000 @@ -621,26 +621,19 @@ static cl_int dwt_subtract_layer_cl(cl_mem bl, cl_mem bh, dwt_params_cl_t *const p) { - cl_int err = CL_MEM_OBJECT_ALLOCATION_FAILURE; - const int devid = p->devid; const int kernel = p->global->kernel_dwt_subtract_layer; - const float lpass_mult = (1.f / 16.f); const int width = p->width; const int height = p->height; - err = dt_opencl_enqueue_kernel_2d_args(devid, kernel, p->width, p->height, + return dt_opencl_enqueue_kernel_2d_args(devid, kernel, p->width, p->height, CLARG(bl), CLARG(bh), CLARG((width)), CLARG((height)), CLARG(lpass_mult)); - - return err; } static cl_int dwt_add_layer_cl(cl_mem img, cl_mem layers, dwt_params_cl_t *const p, const int n_scale) { - cl_int err = CL_MEM_OBJECT_ALLOCATION_FAILURE; - const int devid = p->devid; const int kernel = p->global->kernel_dwt_add_img_to_layer; @@ -648,10 +641,8 @@ const int width = p->width; const int height = p->height; - err = dt_opencl_enqueue_kernel_2d_args(devid, kernel, p->width, p->height, + return dt_opencl_enqueue_kernel_2d_args(devid, kernel, p->width, p->height, CLARG(img), CLARG(layers), CLARG((width)), CLARG((height))); - - return err; } static cl_int dwt_get_image_layer_cl(cl_mem layer, dwt_params_cl_t *const p) @@ -686,25 +677,17 @@ if(p->scales <= 0) goto cleanup; + err = CL_MEM_OBJECT_ALLOCATION_FAILURE; /* image buffers */ buffer[0] = img; /* temporary storage */ buffer[1] = dt_opencl_alloc_device_buffer(devid, sizeof(float) * p->ch * p->width * p->height); - if(buffer[1] == NULL) - { - dt_print(DT_DEBUG_ALWAYS, "[dwt] not enough memory for wavelet decomposition\n"); - err = CL_MEM_OBJECT_ALLOCATION_FAILURE; - goto cleanup; - } + if(buffer[1] == NULL) goto cleanup; // buffer to reconstruct the image layers = dt_opencl_alloc_device_buffer(devid, sizeof(float) * p->ch * p->width * p->height); - if(layers == NULL) - { - dt_print(DT_DEBUG_ALWAYS, "[dwt] not enough memory for wavelet decomposition\n"); - err = CL_MEM_OBJECT_ALLOCATION_FAILURE; - goto cleanup; - } + if(layers == NULL) goto cleanup; + // init layer buffer { const int kernel = p->global->kernel_dwt_init_buffer; @@ -720,12 +703,8 @@ if(p->merge_from_scale > 0) { merged_layers = dt_opencl_alloc_device_buffer(devid, sizeof(float) * p->ch * p->width * p->height); - if(merged_layers == NULL) - { - dt_print(DT_DEBUG_ALWAYS, "[dwt] not enough memory for wavelet decomposition\n"); - err = CL_MEM_OBJECT_ALLOCATION_FAILURE; - goto cleanup; - } + if(merged_layers == NULL) goto cleanup; + // init reconstruct buffer { const int kernel = p->global->kernel_dwt_init_buffer; @@ -749,12 +728,7 @@ // when (*layer_func) uses too much memory I get a -4 error, so alloc and free for each scale // setup a temp buffer temp = dt_opencl_alloc_device_buffer(devid, sizeof(float) * p->ch * p->width * p->height); - if(temp == NULL) - { - dt_print(DT_DEBUG_ALWAYS, "[dwt] not enough memory for wavelet decomposition\n"); - err = CL_MEM_OBJECT_ALLOCATION_FAILURE; - goto cleanup; - } + if(temp == NULL) goto cleanup; // hat transform by row { @@ -783,11 +757,8 @@ if(err != CL_SUCCESS) goto cleanup; } - if(temp) - { - dt_opencl_release_mem_object(temp); - temp = NULL; - } + dt_opencl_release_mem_object(temp); + temp = NULL; err = dwt_subtract_layer_cl(buffer[lpass], buffer[hpass], p); if(err != CL_SUCCESS) goto cleanup; @@ -893,18 +864,16 @@ } cleanup: - if(layers) dt_opencl_release_mem_object(layers); - if(merged_layers) dt_opencl_release_mem_object(merged_layers); - if(temp) dt_opencl_release_mem_object(temp); - if(buffer[1]) dt_opencl_release_mem_object(buffer[1]); + dt_opencl_release_mem_object(layers); + dt_opencl_release_mem_object(merged_layers); + dt_opencl_release_mem_object(temp); + dt_opencl_release_mem_object(buffer[1]); return err; } cl_int dwt_decompose_cl(dwt_params_cl_t *p, _dwt_layer_func_cl layer_func) { - cl_int err = CL_SUCCESS; - // this is a zoom scale, not a wavelet scale if(p->preview_scale <= 0.f) p->preview_scale = 1.f; @@ -929,9 +898,7 @@ } // call the actual decompose - err = dwt_wavelet_decompose_cl(p->image, p, layer_func); - - return err; + return dwt_wavelet_decompose_cl(p->image, p, layer_func); } #endif diff -Nru darktable-4.4.2/src/common/exif.cc darktable-4.6.1/src/common/exif.cc --- darktable-4.4.2/src/common/exif.cc 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/exif.cc 2024-02-16 17:31:09.000000000 +0000 @@ -31,8 +31,6 @@ #include <unistd.h> #include <zlib.h> -#include "control/control.h" - #include <array> #include <cassert> #include <cmath> @@ -44,6 +42,8 @@ #include <exiv2/exiv2.hpp> +#include "control/control.h" + #if defined(_WIN32) && defined(EXV_UNICODE_PATH) #define WIDEN(s) pugi::as_wide(s) #else @@ -54,6 +54,7 @@ using namespace std; +#include "common/color_harmony.h" #include "common/colorlabels.h" #include "common/darktable.h" #include "common/debug.h" @@ -82,6 +83,26 @@ #define toLong toInt64 #endif +// For these models we can't calculate the correct crop factor or, for some we could, but we +// prefer to take it from here, rather than complicate the calculation code with exceptions +static const struct dt_model_cropfactor dt_cropfactors[] = { + {.model = "FinePix SL1000", // exiv2 doesn't yet read the tags we need to calculate correctly + .cropfactor = 5.6f + }, + {.model = "FinePix E550", // tags contain incorrect data, so formula gives us incorrect result + .cropfactor = 4.65f + }, + {.model = "XF10", // resolution was calculated relative to dimensions not typical of Fuji + .cropfactor = 1.5f + }, + {.model = "FinePix S1", // resolution was calculated relative to dimensions not typical of Fuji + .cropfactor = 5.6f + }, + {.model = "FinePix HS10 HS11", // calculation gives a slightly inaccurate result + .cropfactor = 5.64f + }, +}; + // persistent list of exiv2 tags. set up in dt_init() static GList *exiv2_taglist = NULL; @@ -351,6 +372,9 @@ static void read_xmp_timestamps(Exiv2::XmpData &xmpData, dt_image_t *img, const int xmp_version); +static void read_xmp_harmony_guide(Exiv2::XmpData &xmpData, + dt_image_t *img, + const int xmp_version); // this array should contain all XmpBag and XmpSeq keys used by dt const char *dt_xmp_keys[] @@ -372,8 +396,10 @@ "Xmp.darktable.history_basic_hash", "Xmp.darktable.history_auto_hash", "Xmp.darktable.history_current_hash", "Xmp.darktable.import_timestamp", "Xmp.darktable.change_timestamp", "Xmp.darktable.export_timestamp", - "Xmp.darktable.print_timestamp", "Xmp.acdsee.notes", - "Xmp.darktable.version_name", "Xmp.dc.creator", + "Xmp.darktable.print_timestamp", "Xmp.darktable.version_name", + "Xmp.darktable.harmony_guide_type", "Xmp.darktable.harmony_guide_rotation", + "Xmp.darktable.harmony_guide_width", + "Xmp.acdsee.notes", "Xmp.dc.creator", "Xmp.dc.publisher", "Xmp.dc.title", "Xmp.dc.description", "Xmp.dc.rights", "Xmp.dc.format", "Xmp.xmpMM.DerivedFrom" }; @@ -722,23 +748,19 @@ } if(FIND_IPTC_TAG("Iptc.Application2.DateCreated")) { + // exiv2 already converts IPTC date and time into ISO 8601 format GString *datetime = g_string_new(pos->toString().c_str()); - // FIXME: Workaround for exiv2 reading partial IPTC DateCreated in YYYYMMDD format - if(g_regex_match_simple("^\\d{8}$", datetime->str, - (GRegexCompileFlags)0, (GRegexMatchFlags)0)) - { - datetime = g_string_insert_c(datetime, 6, ':'); - datetime = g_string_insert_c(datetime, 4, ':'); - } - + datetime = g_string_append(datetime, "T"); if(FIND_IPTC_TAG("Iptc.Application2.TimeCreated")) { - char *time = g_strndup(pos->toString().c_str(), 8); // remove timezone at the end - datetime = g_string_append(datetime, " "); + gchar *time = g_strdup(pos->toString().c_str()); datetime = g_string_append(datetime, time); - free(time); + g_free(time); } + else + datetime = g_string_append(datetime, "00:00:00"); + dt_datetime_exif_to_img(img, datetime->str); g_string_free(datetime, TRUE); } @@ -951,6 +973,50 @@ } } + /* + * Olympus distortion correction + */ + if(Exiv2::versionNumber() >= EXIV2_MAKE_VERSION(0, 27, 4) + && _exif_read_exif_tag(exifData, &pos, "Exif.OlympusIp.0x150a")) + { + if(pos->count() == 4) + { + for(int i = 0; i < 4; i++) + { + const float kd = pos->toFloat(i); + img->exif_correction_data.olympus.dist[i] = kd; + if (kd != 0 && i < 3) + { + // Assume it's valid if any of the first three elements are nonzero. Ignore the + // fourth element since the null value for no correction is '0 0 0 1' + img->exif_correction_type = CORRECTION_TYPE_OLYMPUS; + img->exif_correction_data.olympus.has_dist = TRUE; + } + } + } + } + + /* + * Olympus CA correction + */ + if(Exiv2::versionNumber() >= EXIV2_MAKE_VERSION(0, 27, 4) + && _exif_read_exif_tag(exifData, &pos, "Exif.OlympusIp.0x150c")) + { + if(pos->count() == 6) + { + for(int i = 0; i < 6; i++) + { + const float kc = pos->toFloat(i); + img->exif_correction_data.olympus.ca[i] = kc; + if (kc != 0) + { + img->exif_correction_type = CORRECTION_TYPE_OLYMPUS; + img->exif_correction_data.olympus.has_ca = TRUE; + } + } + } + } + return img->exif_correction_type != CORRECTION_TYPE_NONE; } @@ -1153,14 +1219,97 @@ img->exif_focal_length = pos->toFloat(); } - /* Read focal length in 35mm if available and try to calculate crop factor */ + // Read focal length in 35mm if available and try to calculate crop factor. if(FIND_EXIF_TAG("Exif.Photo.FocalLengthIn35mmFilm")) { const float focal_length_35mm = pos->toFloat(); if(focal_length_35mm > 0.0f && img->exif_focal_length > 0.0f) img->exif_crop = focal_length_35mm / img->exif_focal_length; else - img->exif_crop = 1.0f; + img->exif_crop = 0.0f; + } + + // If the tag for the equivalent focal length is missing or contains zero, + // let's try to get the crop factor by calculating the diagonal of the sensor: + if(img->exif_crop == 0.0f && FIND_EXIF_TAG("Exif.Photo.FocalPlaneXResolution")) + { + float x_resolution = pos->toFloat(); + float y_resolution = 0.0f; + if(FIND_EXIF_TAG("Exif.Photo.FocalPlaneYResolution")) + y_resolution = pos->toFloat(); + guint res_unit = 1; + if(FIND_EXIF_TAG("Exif.Photo.FocalPlaneResolutionUnit")) + res_unit = pos->toLong(); + if(res_unit == 2) // inch + { + x_resolution /= 25.4f; + y_resolution /= 25.4f; + } + else + if(res_unit == 3) // centimeter + { + x_resolution /= 10.0f; + y_resolution /= 10.0f; + } + guint image_width = 0; + guint image_height = 0; + // We are entering the zoo of image dimensions metadata. + // Let's first try the Exif way of telling dimensions. + // For Canon and Sigma cameras, these are the valid raw image + // dimensions matching the the resolution tags. + // For Fujifilm cameras, this will get the pixel dimensions + // of the preview, not the sensor, because that's what the data + // in the resolution tags on most Fujifilm cameras seems to be + // calculated for. + if(FIND_EXIF_TAG("Exif.Photo.PixelXDimension")) + image_width = pos->toLong(); + if(FIND_EXIF_TAG("Exif.Photo.PixelYDimension")) + image_height = pos->toLong(); + // Then try the Adobe DNG way of telling dimensions. + // Exif.Image.ImageWidth/Length tags are also present in DNG files, + // but may contain the pixel dimensions of the preview image, which in + // this case will cause the diagonal calculation to be incorrect. + if(image_width == 0 && FIND_EXIF_TAG("Exif.SubImage1.NewSubfileType")) + { + if(pos->toLong() == 0) // Primary image + { + if(FIND_EXIF_TAG("Exif.SubImage1.ImageWidth")) + image_width = pos->toLong(); + if(FIND_EXIF_TAG("Exif.SubImage1.ImageLength")) + image_height = pos->toLong(); + } + } + // The following tags in certain formats may contain pixel dimensions of + // the preview instead of the full image, while resolution is calculated + // relative to the full image dimensions. So we check them last. + if(image_width == 0) + { + if(FIND_EXIF_TAG("Exif.Image.ImageWidth")) + image_width = pos->toLong(); + if(FIND_EXIF_TAG("Exif.Image.ImageLength")) + image_height = pos->toLong(); + } + + const float x_size_mm = (float)image_width / x_resolution; + const float y_size_mm = (float)image_height / y_resolution; + if(image_width && image_height) // We've got the data and can calculate the crop factor + { + const float sensor_diagonal = dt_fast_hypotf(x_size_mm, y_size_mm); + const float fullframe_diagonal = dt_fast_hypotf(36.0f, 24.0f); + img->exif_crop = fullframe_diagonal / sensor_diagonal; + } + else + img->exif_crop = 0.0f; // Will be shown as "no data" in the image information module + } + + // Override crop factors for models for which we can't calculate the correct value + for (size_t i = 0; i < sizeof(dt_cropfactors)/sizeof(dt_cropfactors[0]); i++) + { + if(!strcmp(img->exif_model, dt_cropfactors[i].model)) + { + img->exif_crop = dt_cropfactors[i].cropfactor; + break; + } } if(_check_usercrop(exifData, img)) @@ -1181,13 +1330,33 @@ /* * Get the focus distance in meters. */ - if(FIND_EXIF_TAG("Exif.NikonLd2.FocusDistance") - || FIND_EXIF_TAG("Exif.NikonLd3.FocusDistance") - || (Exiv2::testVersion(0, 27, 4) - && FIND_EXIF_TAG("Exif.NikonLd4.FocusDistance"))) + if(Exiv2::testVersion(0, 27, 4) && FIND_EXIF_TAG("Exif.NikonLd4.LensID") && pos->toLong() != 0) + { + // Z lens, need to specifically look for the second instance of Exif.NikonLd4.FocusDistance + // unless using Exiv2 0.28.x and later (also expanded to 2 bytes of precision since 0.28.1). +#if EXIV2_TEST_VERSION(0, 28, 0) + if(FIND_EXIF_TAG("Exif.NikonLd4.FocusDistance2")) + { + float value = pos->toFloat(); + if(Exiv2::testVersion(0, 28, 1)) value /= 256.0f; +#else + pos = exifData.end(); + for(auto it = exifData.begin(); it != exifData.end(); it++) + { + if(it->key() == "Exif.NikonLd4.FocusDistance") pos = it; + } + if(pos != exifData.end() && pos->size()) + { + float value = pos->toFloat(); +#endif + img->exif_focus_distance = 0.01f * pow(10.0f, value / 40.0f); + } + } + else if(FIND_EXIF_TAG("Exif.NikonLd2.FocusDistance") || FIND_EXIF_TAG("Exif.NikonLd3.FocusDistance") + || (Exiv2::testVersion(0, 27, 4) && FIND_EXIF_TAG("Exif.NikonLd4.FocusDistance"))) { float value = pos->toFloat(); - img->exif_focus_distance = (0.01 * pow(10, value / 40)); + img->exif_focus_distance = 0.01f * pow(10.0f, value / 40.0f); } else if(FIND_EXIF_TAG("Exif.OlympusFi.FocusDistance")) { @@ -1269,6 +1438,12 @@ { img->orientation = dt_image_orientation_to_flip_bits(pos->toLong()); } + /* for e.g. Sinar backs the raw orientation is in a different subdirectory */ + if(FIND_EXIF_TAG("Exif.Thumbnail.PhotometricInterpretation") && (32803 == pos->toLong()) + && FIND_EXIF_TAG("Exif.Thumbnail.Orientation")) + { + img->orientation = dt_image_orientation_to_flip_bits(pos->toLong()); + } /* read gps location */ if(FIND_EXIF_TAG("Exif.GPSInfo.GPSLatitude")) @@ -1392,7 +1567,7 @@ } /* Capitalize Nikon Z-mount lenses properly for UI presentation */ - if(g_str_has_prefix(img->exif_lens, "NIKKOR")) + if(g_str_has_prefix(img->exif_lens, "NIKKOR") || g_str_has_prefix(img->exif_lens, "TAMRON")) { for(size_t i = 1; i <= 5; ++i) img->exif_lens[i] = g_ascii_tolower(img->exif_lens[i]); @@ -3891,6 +4066,8 @@ read_xmp_timestamps(xmpData, img, xmp_version); + read_xmp_harmony_guide(xmpData, img, xmp_version); + sqlite3_finalize(stmt); // set or clear bit in image struct. ONLY set if the @@ -4181,6 +4358,27 @@ sqlite3_finalize(stmt); } +static void set_xmp_harmony_guide(Exiv2::XmpData &xmpData, const dt_imgid_t imgid) +{ + static const char *keys[] = + { + "Xmp.darktable.harmony_guide_type", + "Xmp.darktable.harmony_guide_rotation", + "Xmp.darktable.harmony_guide_width", + }; + static const guint n_keys = G_N_ELEMENTS(keys); + dt_remove_xmp_keys(xmpData, keys, n_keys); + + dt_color_harmony_guide_t guide; + + if(dt_color_harmony_get(imgid, &guide)) + { + xmpData["Xmp.darktable.harmony_guide_type"] = guide.type; + xmpData["Xmp.darktable.harmony_guide_rotation"] = guide.rotation; + xmpData["Xmp.darktable.harmony_guide_width"] = guide.width; + } +} + GTimeSpan _convert_unix_to_gtimespan(const time_t unix) { GDateTime *gdt = g_date_time_new_from_unix_utc(unix); @@ -4225,6 +4423,30 @@ } } +// read color harmony guides from XmpData +void read_xmp_harmony_guide(Exiv2::XmpData &xmpData, + dt_image_t *img, + const int xmp_version) +{ + Exiv2::XmpData::iterator pos; + + if((pos = xmpData.findKey(Exiv2::XmpKey("Xmp.darktable.harmony_guide_type"))) + != xmpData.end()) + { + img->color_harmony_guide.type = (dt_color_harmony_type_t)pos->toLong(); + } + if((pos = xmpData.findKey(Exiv2::XmpKey("Xmp.darktable.harmony_guide_rotation"))) + != xmpData.end()) + { + img->color_harmony_guide.rotation = (int) pos->toLong(); + } + if((pos = xmpData.findKey(Exiv2::XmpKey("Xmp.darktable.harmony_guide_width"))) + != xmpData.end()) + { + img->color_harmony_guide.width = (dt_color_harmony_width_t)pos->toLong(); + } +} + static void dt_remove_xmp_exif_geotag(Exiv2::XmpData &xmpData) { static const char *keys[] = @@ -4404,6 +4626,8 @@ // timestamps set_xmp_timestamps(xmpData, imgid); + set_xmp_harmony_guide(xmpData, imgid); + // GPS data dt_set_xmp_exif_geotag(xmpData, longitude, latitude, altitude); diff -Nru darktable-4.4.2/src/common/exif.h darktable-4.6.1/src/common/exif.h --- darktable-4.4.2/src/common/exif.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/exif.h 2024-02-16 17:31:09.000000000 +0000 @@ -53,6 +53,12 @@ DT_LS_Other = 255 } dt_dng_illuminant_t; +// stores hard-coded crop factors for models for which we can't calculate the correct value +struct dt_model_cropfactor +{ + const char *model; + float cropfactor; +}; /** set the list of available tags from Exvi2 */ void dt_exif_set_exiv2_taglist(); diff -Nru darktable-4.4.2/src/common/film.c darktable-4.6.1/src/common/film.c --- darktable-4.4.2/src/common/film.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/film.c 2024-02-16 17:31:09.000000000 +0000 @@ -81,10 +81,13 @@ DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, id); if(sqlite3_step(stmt) == SQLITE_ROW) { - dt_conf_set_string("plugins/lighttable/collect/string0", (gchar *)sqlite3_column_text(stmt, 1)); + dt_conf_set_string("plugins/lighttable/collect/string0", + (gchar *)sqlite3_column_text(stmt, 1)); } sqlite3_finalize(stmt); - dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_NEW_QUERY, DT_COLLECTION_PROP_UNDEF, NULL); + dt_collection_update_query(darktable.collection, + DT_COLLECTION_CHANGE_NEW_QUERY, + DT_COLLECTION_PROP_UNDEF, NULL); } int32_t dt_film_get_id(const char *folder) @@ -124,7 +127,9 @@ if(sqlite3_step(stmt) == SQLITE_ROW) { /* fill out the film dirname */ - g_strlcpy(film->dirname, (gchar *)sqlite3_column_text(stmt, 1), sizeof(film->dirname)); + g_strlcpy(film->dirname, + (gchar *)sqlite3_column_text(stmt, 1), + sizeof(film->dirname)); sqlite3_finalize(stmt); // clang-format off @@ -235,10 +240,11 @@ // create a new filmroll /* insert a new film roll into database */ // clang-format off - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "INSERT INTO main.film_rolls (id, access_timestamp, folder)" - " VALUES (NULL, strftime('%s', 'now'), ?1)", - -1, &stmt, NULL); + DT_DEBUG_SQLITE3_PREPARE_V2 + (dt_database_get(darktable.db), + "INSERT INTO main.film_rolls (id, access_timestamp, folder)" + " VALUES (NULL, strftime('%s', 'now'), ?1)", + -1, &stmt, NULL); // clang-format on DT_DEBUG_SQLITE3_BIND_TEXT(stmt, 1, film->dirname, -1, SQLITE_STATIC); const int rc = sqlite3_step(stmt); @@ -274,7 +280,9 @@ // clang-format on DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, film->id); if(sqlite3_step(stmt) != SQLITE_ROW) - g_strlcpy(film->dirname, (const char *)sqlite3_column_text(stmt, 0), sizeof(film->dirname)); + g_strlcpy(film->dirname, + (const char *)sqlite3_column_text(stmt, 0), + sizeof(film->dirname)); sqlite3_finalize(stmt); } #endif @@ -307,7 +315,8 @@ return 0; } - // when called without job system running the import will be done synchronously and destroy the film object + // when called without job system running the import will be done + // synchronously and destroy the film object const int filmid = film->id; /* at last put import film job on queue */ @@ -324,7 +333,8 @@ } // deselect all - DT_DEBUG_SQLITE3_EXEC(dt_database_get(darktable.db), "DELETE FROM main.selected_images", NULL, NULL, NULL); + DT_DEBUG_SQLITE3_EXEC(dt_database_get(darktable.db), + "DELETE FROM main.selected_images", NULL, NULL, NULL); // launch import job dt_control_add_job(darktable.control, DT_JOB_QUEUE_USER_BG, dt_film_import1_create(film)); @@ -340,16 +350,18 @@ GtkWidget *dialog; GtkWidget *win = dt_ui_main_window(darktable.gui->ui); - dialog = gtk_message_dialog_new(GTK_WINDOW(win), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, - GTK_BUTTONS_YES_NO, - ngettext("do you want to remove this empty directory?", - "do you want to remove these empty directories?", n_empty_dirs)); + dialog = gtk_message_dialog_new + (GTK_WINDOW(win), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, + GTK_BUTTONS_YES_NO, + ngettext("do you want to remove this empty directory?", + "do you want to remove these empty directories?", n_empty_dirs)); #ifdef GDK_WINDOWING_QUARTZ dt_osx_disallow_fullscreen(dialog); #endif gtk_window_set_title(GTK_WINDOW(dialog), - ngettext("remove empty directory?", "remove empty directories?", n_empty_dirs)); + ngettext("remove empty directory?", + "remove empty directories?", n_empty_dirs)); GtkWidget *content_area = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); @@ -400,7 +412,7 @@ gboolean raise_signal = FALSE; sqlite3_stmt *stmt; DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "SELECT id,folder" + "SELECT id, folder" " FROM main.film_rolls AS B" " WHERE (SELECT COUNT(*)" " FROM main.images AS A" @@ -421,12 +433,15 @@ if(dt_util_is_dir_empty(folder)) { - if(ask_before_rmdir) empty_dirs = g_list_prepend(empty_dirs, g_strdup(folder)); - else rmdir(folder); + if(ask_before_rmdir) + empty_dirs = g_list_prepend(empty_dirs, g_strdup(folder)); + else + rmdir(folder); } } sqlite3_finalize(stmt); - if(raise_signal) DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_FILMROLLS_REMOVED); + if(raise_signal) DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, + DT_SIGNAL_FILMROLLS_REMOVED); // dispatch asking for deletion (and subsequent deletion) to the gui thread if(empty_dirs) @@ -474,7 +489,8 @@ if(!remove_ok) { - dt_control_log(_("cannot remove film roll having local copies with non accessible originals")); + dt_control_log(_("cannot remove film roll having local copies with" + " non accessible originals")); return; } @@ -561,4 +577,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/common/focus.h darktable-4.6.1/src/common/focus.h --- darktable-4.4.2/src/common/focus.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/focus.h 2024-02-16 17:31:09.000000000 +0000 @@ -281,9 +281,8 @@ dt_dev_cleanup(&dev); } - const int32_t tb = darktable.develop->border_size; - const float prev_scale = darktable.develop->preview_downsampling; - const float scale = fminf((width - 2 * tb) / (float)wd, (height - 2 * tb) / (float)ht) * full_zoom / prev_scale; + const int32_t tb = darktable.develop->full.border_size; + const float scale = fminf((width - 2 * tb) / (float)wd, (height - 2 * tb) / (float)ht) * full_zoom; cairo_scale(cr, scale, scale); float fx = 0.0f; float fy = 0.0f; @@ -298,7 +297,7 @@ if(ht * scale <= height) fy = 0; } - cairo_translate(cr, -wd / 2.0f * prev_scale + fx / scale * darktable.gui->ppd_thb, -ht / 2.0f * prev_scale + fy / scale * darktable.gui->ppd_thb); + cairo_translate(cr, -wd / 2.0f + fx / scale * darktable.gui->ppd_thb, -ht / 2.0f + fy / scale * darktable.gui->ppd_thb); cairo_rectangle(cr, 0, 0, wd, ht); cairo_clip(cr); diff -Nru darktable-4.4.2/src/common/gaussian.c darktable-4.6.1/src/common/gaussian.c --- darktable-4.4.2/src/common/gaussian.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/gaussian.c 2024-02-16 17:31:09.000000000 +0000 @@ -676,7 +676,7 @@ dt_opencl_set_kernel_args(devid, kernel_gaussian_column, 0, CLARG(dev_temp1), CLARG(dev_temp2), CLARG(height), CLARG(width), CLARG(a0), CLARG(a1), CLARG(a2), CLARG(a3), CLARG(b1), CLARG(b2), CLARG(coefp), CLARG(coefn), CLFLARRAY(channels, Labmax), CLFLARRAY(channels, Labmin)); - + err = dt_opencl_enqueue_kernel_2d(devid, kernel_gaussian_column, sizes); if(err != CL_SUCCESS) { @@ -697,10 +697,7 @@ return err; } // finally produce output in dev_out - err = dt_opencl_enqueue_copy_buffer_to_image(devid, dev_temp1, dev_out, 0, origin, region); - if(err != CL_SUCCESS) return err; - - return CL_SUCCESS; + return dt_opencl_enqueue_copy_buffer_to_image(devid, dev_temp1, dev_out, 0, origin, region); } diff -Nru darktable-4.4.2/src/common/guided_filter.c darktable-4.6.1/src/common/guided_filter.c --- darktable-4.4.2/src/common/guided_filter.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/guided_filter.c 2024-02-16 17:31:09.000000000 +0000 @@ -55,20 +55,20 @@ } color_image; // allocate space for n-component image of size width x height -static inline color_image new_color_image(int width, int height, int ch) +static inline color_image _new_color_image(int width, int height, int ch) { return (color_image){ dt_alloc_align_float((size_t)width * height * ch), width, height, ch }; } // free space for n-component image -static inline void free_color_image(color_image *img_p) +static inline void _free_color_image(color_image *img_p) { dt_free_align(img_p->data); img_p->data = NULL; } // get a pointer to pixel number 'i' within the image -static inline float *get_color_pixel(color_image img, size_t i) +static inline float *_get_color_pixel(color_image img, size_t i) { return img.data + i * img.stride; } @@ -82,11 +82,20 @@ // 6 variance (R-R, R-G, R-B, G-G, G-B, B-B) // for computational efficiency, we'll pack them into a four-channel image and a 9-channel image // image instead of running 13 separate box filters: guide+input, R/G/B/R-R/R-G/R-B/G-G/G-B/B-B. -static void guided_filter_tiling(color_image imgg, gray_image img, gray_image img_out, tile target, const int w, - const float eps, const float guide_weight, const float min, const float max) -{ - const tile source = { max_i(target.left - 2 * w, 0), min_i(target.right + 2 * w, imgg.width), - max_i(target.lower - 2 * w, 0), min_i(target.upper + 2 * w, imgg.height) }; +// make sure the tiles are always aligned for 16 floats +static void _guided_filter_tiling(color_image imgg, + gray_image img, + gray_image img_out, + tile target, + const int w, + const float eps, + const float guide_weight, + const float min, + const float max) +{ + const int overlap = dt_round_size(3 * w, 16); + const tile source = { MAX(target.left - overlap, 0), MIN(target.right + overlap, imgg.width), + MAX(target.lower - overlap, 0), MIN(target.upper + overlap, imgg.height) }; const int width = source.right - source.left; const int height = source.upper - source.lower; size_t size = (size_t)width * (size_t)height; @@ -105,9 +114,9 @@ #define VAR_GG 6 #define VAR_BB 8 #define VAR_GB 7 - color_image mean = new_color_image(width, height, 4); - color_image variance = new_color_image(width, height, 9); - const size_t img_dimen = mean.width; + color_image mean = _new_color_image(width, height, 4); + color_image variance = _new_color_image(width, height, 9); + const size_t img_dimen = dt_round_size(mean.width, 16); size_t img_bak_sz; float *img_bak = dt_alloc_perthread_float(9*img_dimen, &img_bak_sz); #ifdef _OPENMP @@ -122,7 +131,7 @@ for(int i_imgg = source.left; i_imgg < source.right; i_imgg++) { size_t i = i_imgg - source.left; - const float *pixel_ = get_color_pixel(imgg, i_imgg + (size_t)j_imgg * imgg.width); + const float *pixel_ = _get_color_pixel(imgg, i_imgg + (size_t)j_imgg * imgg.width); dt_aligned_pixel_t pixel = { pixel_[0] * guide_weight, pixel_[1] * guide_weight, pixel_[2] * guide_weight, pixel_[3] * guide_weight }; const float input = img.data[i_imgg + (size_t)j_imgg * img.width]; @@ -160,12 +169,12 @@ #endif for(size_t i = 0; i < size; i++) { - const float *meanpx = get_color_pixel(mean, i); + const float *meanpx = _get_color_pixel(mean, i); const float inp_mean = meanpx[INP_MEAN]; const float guide_r = meanpx[GUIDE_MEAN_R]; const float guide_g = meanpx[GUIDE_MEAN_G]; const float guide_b = meanpx[GUIDE_MEAN_B]; - float *const varpx = get_color_pixel(variance, i); + float *const varpx = _get_color_pixel(variance, i); // solve linear system of equations of size 3x3 via Cramer's rule // symmetric coefficient matrix const float Sigma_0_0 = varpx[VAR_RR] - (guide_r * guide_r) + eps; @@ -203,7 +212,7 @@ a_r_ = 0.f; a_g_ = 0.f; a_b_ = 0.f; - b_ = get_color_pixel(mean, i)[INP_MEAN]; + b_ = _get_color_pixel(mean, i)[INP_MEAN]; } // now data of imgg_mean_? is no longer needed, we can safely overwrite aliasing arrays a_b.data[4*i+A_RED] = a_r_; @@ -211,7 +220,7 @@ a_b.data[4*i+A_BLUE] = a_b_; a_b.data[4*i+B] = b_; } - free_color_image(&variance); + _free_color_image(&variance); dt_box_mean(a_b.data, a_b.height, a_b.width, a_b.stride|BOXFILTER_KAHAN_SUM, w, 1); @@ -229,72 +238,27 @@ size_t k = (target.left - source.left) + (size_t)(j_imgg - source.lower) * width; for(int i_imgg = target.left; i_imgg < target.right; i_imgg++, k++, l++) { - const float *pixel = get_color_pixel(imgg, l); - const float *px_ab = get_color_pixel(a_b, k); + const float *pixel = _get_color_pixel(imgg, l); + const float *px_ab = _get_color_pixel(a_b, k); float res = guide_weight * (px_ab[A_RED] * pixel[0] + px_ab[A_GREEN] * pixel[1] + px_ab[A_BLUE] * pixel[2]); res += px_ab[B]; img_out.data[i_imgg + (size_t)j_imgg * imgg.width] = CLAMP(res, min, max); } } - free_color_image(&mean); -} - -static int compute_tile_height(const int height, const int w) -{ - int tile_h = max_i(3 * w, GF_TILE_SIZE); -#if 0 // enabling the below doesn't make any measureable speed difference, but does cause a handful of pixels - // to round off differently (as does changing GF_TILE_SIZE) - if((height % tile_h) > 0 && (height % tile_h) < GF_TILE_SIZE/3) - { - // if there's just a sliver left over for the last row of tiles, see whether slicing off a few pixels - // gives us a mostly-full tile - if(height % (tile_h - 8) >= GF_TILE_SIZE/3) - tile_h -= 8; - else if(height % (tile_h - w/4) >= GF_TILE_SIZE/3) - tile_h -= (w/4); - else if(height % (tile_h - w/2) >= GF_TILE_SIZE/3) - tile_h -= (w/2); - // try adding a few pixels - else if(height % (tile_h + 8) >= GF_TILE_SIZE/3) - tile_h += 8; - else if(height % (tile_h + 16) >= GF_TILE_SIZE/3) - tile_h += 16; - } -#endif - return tile_h; + _free_color_image(&mean); } -static int compute_tile_width(const int width, const int w) -{ - int tile_w = max_i(3 * w, GF_TILE_SIZE); -#if 0 // enabling the below doesn't make any measureable speed difference, but does cause a handful of pixels - // to round off differently (as does changing GF_TILE_SIZE) - if((width % tile_w) > 0 && (width % tile_w) < GF_TILE_SIZE/2) - { - // if there's just a sliver left over for the last column of tiles, see whether slicing off a few pixels - // gives us a mostly-full tile - if(width % (tile_w - 8) >= GF_TILE_SIZE/3) - tile_w -= 8; - else if(width % (tile_w - w/4) >= GF_TILE_SIZE/3) - tile_w -= (w/4); - else if(width % (tile_w - w/2) >= GF_TILE_SIZE/3) - tile_w -= (w/2); - // try adding a few pixels - else if(width % (tile_w + 8) >= GF_TILE_SIZE/3) - tile_w += 8; - else if(width % (tile_w + 16) >= GF_TILE_SIZE/3) - tile_w += 16; - } -#endif - return tile_w; -} - -void guided_filter(const float *const guide, const float *const in, float *const out, const int width, - const int height, const int ch, - const int w, // window size - const float sqrt_eps, // regularization parameter - const float guide_weight, // to balance the amplitudes in the guiding image and the input image - const float min, const float max) +void guided_filter(const float *const guide, + const float *const in, + float *const out, + const int width, + const int height, + const int ch, + const int w, // window size + const float sqrt_eps, // regularization parameter + const float guide_weight, // to balance the amplitudes in the guiding image and the input image + const float min, + const float max) { assert(ch >= 3); assert(w >= 1); @@ -302,16 +266,16 @@ color_image img_guide = (color_image){ (float *)guide, width, height, ch }; gray_image img_in = (gray_image){ (float *)in, width, height }; gray_image img_out = (gray_image){ out, width, height }; - const int tile_width = compute_tile_width(width,w); - const int tile_height = compute_tile_height(height,w); + const int tile_dim = MAX(dt_round_size(3 * w, 16), GF_TILE_SIZE); const float eps = sqrt_eps * sqrt_eps; // this is the regularization parameter of the original papers - for(int j = 0; j < height; j += tile_height) + for(int j = 0; j < height; j += tile_dim) { - for(int i = 0; i < width; i += tile_width) + for(int i = 0; i < width; i += tile_dim) { - tile target = { i, min_i(i + tile_width, width), j, min_i(j + tile_height, height) }; - guided_filter_tiling(img_guide, img_in, img_out, target, w, eps, guide_weight, min, max); + tile target = { i, MIN(i + tile_dim, width), + j, MIN(j + tile_dim, height) }; + _guided_filter_tiling(img_guide, img_in, img_out, target, w, eps, guide_weight, min, max); } } } @@ -325,8 +289,7 @@ g->kernel_guided_filter_split_rgb = dt_opencl_create_kernel(program, "guided_filter_split_rgb_image"); g->kernel_guided_filter_box_mean_x = dt_opencl_create_kernel(program, "guided_filter_box_mean_x"); g->kernel_guided_filter_box_mean_y = dt_opencl_create_kernel(program, "guided_filter_box_mean_y"); - g->kernel_guided_filter_guided_filter_covariances - = dt_opencl_create_kernel(program, "guided_filter_covariances"); + g->kernel_guided_filter_guided_filter_covariances = dt_opencl_create_kernel(program, "guided_filter_covariances"); g->kernel_guided_filter_guided_filter_variances = dt_opencl_create_kernel(program, "guided_filter_variances"); g->kernel_guided_filter_update_covariance = dt_opencl_create_kernel(program, "guided_filter_update_covariance"); g->kernel_guided_filter_solve = dt_opencl_create_kernel(program, "guided_filter_solve"); @@ -351,8 +314,14 @@ } -static int cl_split_rgb(const int devid, const int width, const int height, cl_mem guide, cl_mem imgg_r, - cl_mem imgg_g, cl_mem imgg_b, const float guide_weight) +static int _cl_split_rgb(const int devid, + const int width, + const int height, + cl_mem guide, + cl_mem imgg_r, + cl_mem imgg_g, + cl_mem imgg_b, + const float guide_weight) { const int kernel = darktable.opencl->guided_filter->kernel_guided_filter_split_rgb; return dt_opencl_enqueue_kernel_2d_args(devid, kernel, width, height, @@ -360,197 +329,246 @@ } -static int cl_box_mean(const int devid, const int width, const int height, const int w, cl_mem in, cl_mem out, - cl_mem temp) +static int _cl_box_mean(const int devid, + const int width, + const int height, + const int w, + cl_mem in, + cl_mem out, + cl_mem temp) { const int kernel_x = darktable.opencl->guided_filter->kernel_guided_filter_box_mean_x; - dt_opencl_set_kernel_args(devid, kernel_x, 0, CLARG(width), CLARG(height), CLARG(in), CLARG(temp), CLARG(w)); - const size_t sizes_x[] = { 1, ROUNDUPDHT(height, devid) }; - const int err = dt_opencl_enqueue_kernel_2d(devid, kernel_x, sizes_x); + const int kernel_y = darktable.opencl->guided_filter->kernel_guided_filter_box_mean_y; + + const size_t sizes_x[] = { ROUNDUPDHT(height, devid), 1, 1 }; + const size_t sizes_y[] = { ROUNDUPDWD(width, devid), 1, 1 }; + + dt_opencl_set_kernel_args(devid, kernel_x, 0, + CLARG(width), CLARG(height), + CLARG(in), CLARG(temp), CLARG(w)); + + const cl_int err = dt_opencl_enqueue_kernel_ndim_with_local(devid, kernel_x, sizes_x, NULL, 1); if(err != CL_SUCCESS) return err; - const int kernel_y = darktable.opencl->guided_filter->kernel_guided_filter_box_mean_y; - dt_opencl_set_kernel_args(devid, kernel_y, 0, CLARG(width), CLARG(height), CLARG(temp), CLARG(out), CLARG(w)); - const size_t sizes_y[] = { ROUNDUPDWD(width, devid), 1 }; - return dt_opencl_enqueue_kernel_2d(devid, kernel_y, sizes_y); + dt_opencl_set_kernel_args(devid, kernel_y, 0, + CLARG(width), CLARG(height), + CLARG(temp), CLARG(out), CLARG(w)); + return dt_opencl_enqueue_kernel_ndim_with_local(devid, kernel_y, sizes_y, NULL, 1); } -static int cl_covariances(const int devid, const int width, const int height, cl_mem guide, cl_mem in, - cl_mem cov_imgg_img_r, cl_mem cov_imgg_img_g, cl_mem cov_imgg_img_b, +static int _cl_covariances(const int devid, + const int width, + const int height, + cl_mem guide, + cl_mem in, + cl_mem cov_imgg_img_r, + cl_mem cov_imgg_img_g, + cl_mem cov_imgg_img_b, const float guide_weight) { const int kernel = darktable.opencl->guided_filter->kernel_guided_filter_guided_filter_covariances; return dt_opencl_enqueue_kernel_2d_args(devid, kernel, width, height, - CLARG(width), CLARG(height), CLARG(guide), CLARG(in), CLARG(cov_imgg_img_r), CLARG(cov_imgg_img_g), - CLARG(cov_imgg_img_b), CLARG(guide_weight)); + CLARG(width), CLARG(height), + CLARG(guide), CLARG(in), + CLARG(cov_imgg_img_r), CLARG(cov_imgg_img_g), CLARG(cov_imgg_img_b), + CLARG(guide_weight)); } -static int cl_variances(const int devid, const int width, const int height, cl_mem guide, cl_mem var_imgg_rr, - cl_mem var_imgg_rg, cl_mem var_imgg_rb, cl_mem var_imgg_gg, cl_mem var_imgg_gb, - cl_mem var_imgg_bb, const float guide_weight) +static int _cl_variances(const int devid, + const int width, + const int height, + cl_mem guide, + cl_mem var_imgg_rr, + cl_mem var_imgg_rg, + cl_mem var_imgg_rb, + cl_mem var_imgg_gg, + cl_mem var_imgg_gb, + cl_mem var_imgg_bb, + const float guide_weight) { const int kernel = darktable.opencl->guided_filter->kernel_guided_filter_guided_filter_variances; return dt_opencl_enqueue_kernel_2d_args(devid, kernel, width, height, - CLARG(width), CLARG(height), CLARG(guide), CLARG(var_imgg_rr), CLARG(var_imgg_rg), CLARG(var_imgg_rb), - CLARG(var_imgg_gg), CLARG(var_imgg_gb), CLARG(var_imgg_bb), CLARG(guide_weight)); + CLARG(width), CLARG(height), + CLARG(guide), + CLARG(var_imgg_rr), CLARG(var_imgg_rg), CLARG(var_imgg_rb), + CLARG(var_imgg_gg), CLARG(var_imgg_gb), CLARG(var_imgg_bb), + CLARG(guide_weight)); } -static int cl_update_covariance(const int devid, const int width, const int height, cl_mem in, cl_mem out, - cl_mem a, cl_mem b, float eps) +static int _cl_update_covariance(const int devid, + const int width, + const int height, + cl_mem in, + cl_mem out, + cl_mem a, + cl_mem b, + float eps) { const int kernel = darktable.opencl->guided_filter->kernel_guided_filter_update_covariance; return dt_opencl_enqueue_kernel_2d_args(devid, kernel, width, height, - CLARG(width), CLARG(height), CLARG(in), CLARG(out), CLARG(a), CLARG(b), CLARG(eps)); + CLARG(width), CLARG(height), + CLARG(in), CLARG(out), + CLARG(a), CLARG(b), + CLARG(eps)); } -static int cl_solve(const int devid, const int width, const int height, cl_mem img_mean, cl_mem imgg_mean_r, - cl_mem imgg_mean_g, cl_mem imgg_mean_b, cl_mem cov_imgg_img_r, cl_mem cov_imgg_img_g, - cl_mem cov_imgg_img_b, cl_mem var_imgg_rr, cl_mem var_imgg_rg, cl_mem var_imgg_rb, - cl_mem var_imgg_gg, cl_mem var_imgg_gb, cl_mem var_imgg_bb, cl_mem a_r, cl_mem a_g, cl_mem a_b, - cl_mem b) +static int _cl_solve(const int devid, + const int width, + const int height, + cl_mem img_mean, + cl_mem imgg_mean_r, + cl_mem imgg_mean_g, + cl_mem imgg_mean_b, + cl_mem cov_imgg_img_r, + cl_mem cov_imgg_img_g, + cl_mem cov_imgg_img_b, + cl_mem var_imgg_rr, + cl_mem var_imgg_rg, + cl_mem var_imgg_rb, + cl_mem var_imgg_gg, + cl_mem var_imgg_gb, + cl_mem var_imgg_bb, + cl_mem a_r, + cl_mem a_g, + cl_mem a_b, + cl_mem b) { const int kernel = darktable.opencl->guided_filter->kernel_guided_filter_solve; return dt_opencl_enqueue_kernel_2d_args(devid, kernel, width, height, - CLARG(width), CLARG(height), CLARG(img_mean), CLARG(imgg_mean_r), CLARG(imgg_mean_g), CLARG(imgg_mean_b), - CLARG(cov_imgg_img_r), CLARG(cov_imgg_img_g), CLARG(cov_imgg_img_b), CLARG(var_imgg_rr), CLARG(var_imgg_rg), - CLARG(var_imgg_rb), CLARG(var_imgg_gg), CLARG(var_imgg_gb), CLARG(var_imgg_bb), CLARG(a_r), CLARG(a_g), - CLARG(a_b), CLARG(b)); + CLARG(width), CLARG(height), + CLARG(img_mean), CLARG(imgg_mean_r), CLARG(imgg_mean_g), CLARG(imgg_mean_b), + CLARG(cov_imgg_img_r), CLARG(cov_imgg_img_g), CLARG(cov_imgg_img_b), + CLARG(var_imgg_rr), CLARG(var_imgg_rg), CLARG(var_imgg_rb), + CLARG(var_imgg_gg), CLARG(var_imgg_gb), + CLARG(var_imgg_bb), + CLARG(a_r), CLARG(a_g), + CLARG(a_b), CLARG(b)); } -static int cl_generate_result(const int devid, const int width, const int height, cl_mem guide, cl_mem a_r, - cl_mem a_g, cl_mem a_b, cl_mem b, cl_mem out, const float guide_weight, - const float min, const float max) +static int _cl_generate_result(const int devid, + const int width, + const int height, + cl_mem guide, + cl_mem a_r, + cl_mem a_g, + cl_mem a_b, + cl_mem b, + cl_mem out, + const float guide_weight, + const float min, + const float max) { const int kernel = darktable.opencl->guided_filter->kernel_guided_filter_generate_result; return dt_opencl_enqueue_kernel_2d_args(devid, kernel, width, height, - CLARG(width), CLARG(height), CLARG(guide), CLARG(a_r), CLARG(a_g), CLARG(a_b), CLARG(b), CLARG(out), - CLARG(guide_weight), CLARG(min), CLARG(max)); + CLARG(width), CLARG(height), + CLARG(guide), + CLARG(a_r), CLARG(a_g), CLARG(a_b), + CLARG(b), CLARG(out), + CLARG(guide_weight), CLARG(min), CLARG(max)); } -static int guided_filter_cl_impl(int devid, cl_mem guide, cl_mem in, cl_mem out, const int width, const int height, - const int ch, - const int w, // window size - const float sqrt_eps, // regularization parameter - const float guide_weight, // to balance the amplitudes in the guiding image and +static int _guided_filter_cl_impl(int devid, + cl_mem guide, + cl_mem in, + cl_mem out, + const int width, + const int height, + const int ch, + const int w, // window size + const float sqrt_eps, // regularization parameter + const float guide_weight, // to balance the amplitudes in the guiding image and // the input// image - const float min, const float max) + const float min, + const float max) { const float eps = sqrt_eps * sqrt_eps; // this is the regularization parameter of the original papers - void *temp1 = dt_opencl_alloc_device(devid, width, height, (int)sizeof(float)); - void *temp2 = dt_opencl_alloc_device(devid, width, height, (int)sizeof(float)); - void *imgg_mean_r = dt_opencl_alloc_device(devid, width, height, (int)sizeof(float)); - void *imgg_mean_g = dt_opencl_alloc_device(devid, width, height, (int)sizeof(float)); - void *imgg_mean_b = dt_opencl_alloc_device(devid, width, height, (int)sizeof(float)); - void *img_mean = dt_opencl_alloc_device(devid, width, height, (int)sizeof(float)); - void *cov_imgg_img_r = dt_opencl_alloc_device(devid, width, height, (int)sizeof(float)); - void *cov_imgg_img_g = dt_opencl_alloc_device(devid, width, height, (int)sizeof(float)); - void *cov_imgg_img_b = dt_opencl_alloc_device(devid, width, height, (int)sizeof(float)); - void *var_imgg_rr = dt_opencl_alloc_device(devid, width, height, (int)sizeof(float)); - void *var_imgg_gg = dt_opencl_alloc_device(devid, width, height, (int)sizeof(float)); - void *var_imgg_bb = dt_opencl_alloc_device(devid, width, height, (int)sizeof(float)); - void *var_imgg_rg = dt_opencl_alloc_device(devid, width, height, (int)sizeof(float)); - void *var_imgg_rb = dt_opencl_alloc_device(devid, width, height, (int)sizeof(float)); - void *var_imgg_gb = dt_opencl_alloc_device(devid, width, height, (int)sizeof(float)); - void *a_r = dt_opencl_alloc_device(devid, width, height, (int)sizeof(float)); - void *a_g = dt_opencl_alloc_device(devid, width, height, (int)sizeof(float)); - void *a_b = dt_opencl_alloc_device(devid, width, height, (int)sizeof(float)); - void *b = temp2; + cl_mem temp1 = dt_opencl_alloc_device(devid, width, height, sizeof(float)); + cl_mem temp2 = dt_opencl_alloc_device(devid, width, height, sizeof(float)); + cl_mem imgg_mean_r = dt_opencl_alloc_device(devid, width, height, sizeof(float)); + cl_mem imgg_mean_g = dt_opencl_alloc_device(devid, width, height, sizeof(float)); + cl_mem imgg_mean_b = dt_opencl_alloc_device(devid, width, height, sizeof(float)); + cl_mem img_mean = dt_opencl_alloc_device(devid, width, height, sizeof(float)); + cl_mem cov_imgg_img_r = dt_opencl_alloc_device(devid, width, height, sizeof(float)); + cl_mem cov_imgg_img_g = dt_opencl_alloc_device(devid, width, height, sizeof(float)); + cl_mem cov_imgg_img_b = dt_opencl_alloc_device(devid, width, height, sizeof(float)); + cl_mem var_imgg_rr = dt_opencl_alloc_device(devid, width, height, sizeof(float)); + cl_mem var_imgg_gg = dt_opencl_alloc_device(devid, width, height, sizeof(float)); + cl_mem var_imgg_bb = dt_opencl_alloc_device(devid, width, height, sizeof(float)); + cl_mem var_imgg_rg = dt_opencl_alloc_device(devid, width, height, sizeof(float)); + cl_mem var_imgg_rb = dt_opencl_alloc_device(devid, width, height, sizeof(float)); + cl_mem var_imgg_gb = dt_opencl_alloc_device(devid, width, height, sizeof(float)); + cl_mem a_r = dt_opencl_alloc_device(devid, width, height, sizeof(float)); + cl_mem a_g = dt_opencl_alloc_device(devid, width, height, sizeof(float)); + cl_mem a_b = dt_opencl_alloc_device(devid, width, height, sizeof(float)); + cl_mem b = dt_opencl_alloc_device(devid, width, height, sizeof(float)); - int err = CL_SUCCESS; + cl_int err = CL_MEM_OBJECT_ALLOCATION_FAILURE; if(temp1 == NULL || temp2 == NULL || // imgg_mean_r == NULL || imgg_mean_g == NULL || imgg_mean_b == NULL || img_mean == NULL || // cov_imgg_img_r == NULL || cov_imgg_img_g == NULL || cov_imgg_img_b == NULL || // var_imgg_rr == NULL || var_imgg_gg == NULL || var_imgg_bb == NULL || // var_imgg_rg == NULL || var_imgg_rb == NULL || var_imgg_gb == NULL || // - a_r == NULL || a_g == NULL || a_b == NULL) + a_r == NULL || a_g == NULL || a_b == NULL || b == NULL) { - err = CL_MEM_OBJECT_ALLOCATION_FAILURE; goto error; } - err = cl_split_rgb(devid, width, height, guide, imgg_mean_r, imgg_mean_g, imgg_mean_b, guide_weight); - if(err != CL_SUCCESS) goto error; + err = _cl_split_rgb(devid, width, height, guide, imgg_mean_r, imgg_mean_g, imgg_mean_b, guide_weight); + if(err == CL_SUCCESS) err = _cl_box_mean(devid, width, height, w, in, img_mean, temp1); + if(err == CL_SUCCESS) err = _cl_box_mean(devid, width, height, w, imgg_mean_r, imgg_mean_r, temp1); + if(err == CL_SUCCESS) err = _cl_box_mean(devid, width, height, w, imgg_mean_g, imgg_mean_g, temp1); + if(err == CL_SUCCESS) err = _cl_box_mean(devid, width, height, w, imgg_mean_b, imgg_mean_b, temp1); - err = cl_box_mean(devid, width, height, w, in, img_mean, temp1); - if(err != CL_SUCCESS) goto error; - err = cl_box_mean(devid, width, height, w, imgg_mean_r, imgg_mean_r, temp1); - if(err != CL_SUCCESS) goto error; - err = cl_box_mean(devid, width, height, w, imgg_mean_g, imgg_mean_g, temp1); - if(err != CL_SUCCESS) goto error; - err = cl_box_mean(devid, width, height, w, imgg_mean_b, imgg_mean_b, temp1); - if(err != CL_SUCCESS) goto error; - - err = cl_covariances(devid, width, height, guide, in, cov_imgg_img_r, cov_imgg_img_g, cov_imgg_img_b, + if(err == CL_SUCCESS) err = _cl_covariances(devid, width, height, guide, in, cov_imgg_img_r, cov_imgg_img_g, cov_imgg_img_b, guide_weight); - if(err != CL_SUCCESS) goto error; - - err = cl_variances(devid, width, height, guide, var_imgg_rr, var_imgg_rg, var_imgg_rb, var_imgg_gg, var_imgg_gb, + if(err == CL_SUCCESS) err = _cl_variances(devid, width, height, guide, var_imgg_rr, var_imgg_rg, var_imgg_rb, var_imgg_gg, var_imgg_gb, var_imgg_bb, guide_weight); - if(err != CL_SUCCESS) goto error; - err = cl_box_mean(devid, width, height, w, cov_imgg_img_r, temp2, temp1); - if(err != CL_SUCCESS) goto error; - err = cl_update_covariance(devid, width, height, temp2, cov_imgg_img_r, imgg_mean_r, img_mean, 0.f); - if(err != CL_SUCCESS) goto error; - err = cl_box_mean(devid, width, height, w, cov_imgg_img_g, temp2, temp1); - if(err != CL_SUCCESS) goto error; - err = cl_update_covariance(devid, width, height, temp2, cov_imgg_img_g, imgg_mean_g, img_mean, 0.f); - if(err != CL_SUCCESS) goto error; - err = cl_box_mean(devid, width, height, w, cov_imgg_img_b, temp2, temp1); - if(err != CL_SUCCESS) goto error; - err = cl_update_covariance(devid, width, height, temp2, cov_imgg_img_b, imgg_mean_b, img_mean, 0.f); - if(err != CL_SUCCESS) goto error; - err = cl_box_mean(devid, width, height, w, var_imgg_rr, temp2, temp1); - if(err != CL_SUCCESS) goto error; - err = cl_update_covariance(devid, width, height, temp2, var_imgg_rr, imgg_mean_r, imgg_mean_r, eps); - if(err != CL_SUCCESS) goto error; - err = cl_box_mean(devid, width, height, w, var_imgg_rg, temp2, temp1); - if(err != CL_SUCCESS) goto error; - err = cl_update_covariance(devid, width, height, temp2, var_imgg_rg, imgg_mean_r, imgg_mean_g, 0.f); - if(err != CL_SUCCESS) goto error; - err = cl_box_mean(devid, width, height, w, var_imgg_rb, temp2, temp1); - if(err != CL_SUCCESS) goto error; - err = cl_update_covariance(devid, width, height, temp2, var_imgg_rb, imgg_mean_r, imgg_mean_b, 0.f); - if(err != CL_SUCCESS) goto error; - err = cl_box_mean(devid, width, height, w, var_imgg_gg, temp2, temp1); - if(err != CL_SUCCESS) goto error; - err = cl_update_covariance(devid, width, height, temp2, var_imgg_gg, imgg_mean_g, imgg_mean_g, eps); - if(err != CL_SUCCESS) goto error; - err = cl_box_mean(devid, width, height, w, var_imgg_gb, temp2, temp1); - if(err != CL_SUCCESS) goto error; - err = cl_update_covariance(devid, width, height, temp2, var_imgg_gb, imgg_mean_g, imgg_mean_b, 0.f); - if(err != CL_SUCCESS) goto error; - err = cl_box_mean(devid, width, height, w, var_imgg_bb, temp2, temp1); - if(err != CL_SUCCESS) goto error; - err = cl_update_covariance(devid, width, height, temp2, var_imgg_bb, imgg_mean_b, imgg_mean_b, eps); - if(err != CL_SUCCESS) goto error; + if(err == CL_SUCCESS) err = _cl_box_mean(devid, width, height, w, cov_imgg_img_r, temp2, temp1); + if(err == CL_SUCCESS) err = _cl_update_covariance(devid, width, height, temp2, cov_imgg_img_r, imgg_mean_r, img_mean, 0.f); + + if(err == CL_SUCCESS) err = _cl_box_mean(devid, width, height, w, cov_imgg_img_g, temp2, temp1); + if(err == CL_SUCCESS) err = _cl_update_covariance(devid, width, height, temp2, cov_imgg_img_g, imgg_mean_g, img_mean, 0.f); + + if(err == CL_SUCCESS) err = _cl_box_mean(devid, width, height, w, cov_imgg_img_b, temp2, temp1); + if(err == CL_SUCCESS) err = _cl_update_covariance(devid, width, height, temp2, cov_imgg_img_b, imgg_mean_b, img_mean, 0.f); + + if(err == CL_SUCCESS) err = _cl_box_mean(devid, width, height, w, var_imgg_rr, temp2, temp1); + if(err == CL_SUCCESS) err = _cl_update_covariance(devid, width, height, temp2, var_imgg_rr, imgg_mean_r, imgg_mean_r, eps); + + if(err == CL_SUCCESS) err = _cl_box_mean(devid, width, height, w, var_imgg_rg, temp2, temp1); + if(err == CL_SUCCESS) err = _cl_update_covariance(devid, width, height, temp2, var_imgg_rg, imgg_mean_r, imgg_mean_g, 0.f); + + if(err == CL_SUCCESS) err = _cl_box_mean(devid, width, height, w, var_imgg_rb, temp2, temp1); + if(err == CL_SUCCESS) err = _cl_update_covariance(devid, width, height, temp2, var_imgg_rb, imgg_mean_r, imgg_mean_b, 0.f); + + if(err == CL_SUCCESS) err = _cl_box_mean(devid, width, height, w, var_imgg_gg, temp2, temp1); + if(err == CL_SUCCESS) err = _cl_update_covariance(devid, width, height, temp2, var_imgg_gg, imgg_mean_g, imgg_mean_g, eps); + + if(err == CL_SUCCESS) err = _cl_box_mean(devid, width, height, w, var_imgg_gb, temp2, temp1); + if(err == CL_SUCCESS) err = _cl_update_covariance(devid, width, height, temp2, var_imgg_gb, imgg_mean_g, imgg_mean_b, 0.f); + + if(err == CL_SUCCESS) err = _cl_box_mean(devid, width, height, w, var_imgg_bb, temp2, temp1); + if(err == CL_SUCCESS) err = _cl_update_covariance(devid, width, height, temp2, var_imgg_bb, imgg_mean_b, imgg_mean_b, eps); - err = cl_solve(devid, width, height, img_mean, imgg_mean_r, imgg_mean_g, imgg_mean_b, cov_imgg_img_r, + if(err == CL_SUCCESS) err = _cl_solve(devid, width, height, img_mean, imgg_mean_r, imgg_mean_g, imgg_mean_b, cov_imgg_img_r, cov_imgg_img_g, cov_imgg_img_b, var_imgg_rr, var_imgg_rg, var_imgg_rb, var_imgg_gg, var_imgg_gb, var_imgg_bb, a_r, a_g, a_b, b); - if(err != CL_SUCCESS) goto error; - err = cl_box_mean(devid, width, height, w, a_r, a_r, temp1); - if(err != CL_SUCCESS) goto error; - err = cl_box_mean(devid, width, height, w, a_g, a_g, temp1); - if(err != CL_SUCCESS) goto error; - err = cl_box_mean(devid, width, height, w, a_b, a_b, temp1); - if(err != CL_SUCCESS) goto error; - err = cl_box_mean(devid, width, height, w, b, b, temp1); - if(err != CL_SUCCESS) goto error; - - err = cl_generate_result(devid, width, height, guide, a_r, a_g, a_b, b, out, guide_weight, min, max); + if(err == CL_SUCCESS) err = _cl_box_mean(devid, width, height, w, a_r, a_r, temp1); + if(err == CL_SUCCESS) err = _cl_box_mean(devid, width, height, w, a_g, a_g, temp1); + if(err == CL_SUCCESS) err = _cl_box_mean(devid, width, height, w, a_b, a_b, temp1); + if(err == CL_SUCCESS) err = _cl_box_mean(devid, width, height, w, b, b, temp1); + if(err == CL_SUCCESS) err = _cl_generate_result(devid, width, height, guide, a_r, a_g, a_b, b, out, guide_weight, min, max); error: - if(err != CL_SUCCESS) dt_print(DT_DEBUG_OPENCL, "[guided filter] unknown error: %d\n", err); - dt_opencl_release_mem_object(a_r); dt_opencl_release_mem_object(a_g); dt_opencl_release_mem_object(a_b); @@ -569,46 +587,63 @@ dt_opencl_release_mem_object(imgg_mean_b); dt_opencl_release_mem_object(temp1); dt_opencl_release_mem_object(temp2); - + dt_opencl_release_mem_object(b); return err; } - -static void guided_filter_cl_fallback(int devid, cl_mem guide, cl_mem in, cl_mem out, const int width, - const int height, const int ch, +static int _guided_filter_cl_fallback(int devid, + cl_mem guide, + cl_mem in, + cl_mem out, + const int width, + const int height, + const int ch, const int w, // window size const float sqrt_eps, // regularization parameter const float guide_weight, // to balance the amplitudes in the guiding image // and the input// image - const float min, const float max) + const float min, + const float max) { // fall-back implementation: copy data from device memory to host memory and perform filter // by CPU until there is a proper OpenCL implementation - float *guide_host = dt_alloc_align(64, sizeof(*guide_host) * width * height * ch); - float *in_host = dt_alloc_align(64, sizeof(*in_host) * width * height); - float *out_host = dt_alloc_align(64, sizeof(*out_host) * width * height); - int err; + cl_int err = DT_OPENCL_SYSMEM_ALLOCATION; + float *guide_host = dt_alloc_align_float(width * height * ch); + float *in_host = dt_alloc_align_float(width * height); + float *out_host = dt_alloc_align_float(width * height); + + if(!guide_host || !in_host || !out_host) + goto error; + err = dt_opencl_read_host_from_device(devid, guide_host, guide, width, height, ch * sizeof(float)); if(err != CL_SUCCESS) goto error; err = dt_opencl_read_host_from_device(devid, in_host, in, width, height, sizeof(float)); if(err != CL_SUCCESS) goto error; + guided_filter(guide_host, in_host, out_host, width, height, ch, w, sqrt_eps, guide_weight, min, max); err = dt_opencl_write_host_to_device(devid, out_host, out, width, height, sizeof(float)); - if(err != CL_SUCCESS) goto error; + error: dt_free_align(guide_host); dt_free_align(in_host); dt_free_align(out_host); + return err; } -void guided_filter_cl(int devid, cl_mem guide, cl_mem in, cl_mem out, const int width, const int height, +void guided_filter_cl(int devid, + cl_mem guide, + cl_mem in, + cl_mem out, + const int width, // width & height are roi_out + const int height, const int ch, const int w, // window size const float sqrt_eps, // regularization parameter const float guide_weight, // to balance the amplitudes in the guiding image and the input // image - const float min, const float max) + const float min, + const float max) { assert(ch >= 3); assert(w >= 1); @@ -616,13 +651,18 @@ // estimate required memory for OpenCL code path with a safety factor of 1.25 const gboolean fits = dt_opencl_image_fits_device(devid, width, height, sizeof(float), 18.0f * 1.25f, 0); - int err = CL_MEM_OBJECT_ALLOCATION_FAILURE; + cl_int err = DT_OPENCL_DEFAULT_ERROR; if(fits) - err = guided_filter_cl_impl(devid, guide, in, out, width, height, ch, w, sqrt_eps, guide_weight, min, max); + { + err = _guided_filter_cl_impl(devid, guide, in, out, width, height, ch, w, sqrt_eps, guide_weight, min, max); + if(err != CL_SUCCESS) + dt_print(DT_DEBUG_OPENCL, "[guided filter] opencl error %s\n", cl_errstr(err)); + } if(err != CL_SUCCESS) { - dt_print(DT_DEBUG_OPENCL, "[guided filter] fall back to cpu implementation due to insufficient gpu memory\n"); - guided_filter_cl_fallback(devid, guide, in, out, width, height, ch, w, sqrt_eps, guide_weight, min, max); + err = _guided_filter_cl_fallback(devid, guide, in, out, width, height, ch, w, sqrt_eps, guide_weight, min, max); + if(err != CL_SUCCESS) + dt_print(DT_DEBUG_OPENCL, "[guided filter] opencl cpu fallback error %s\n", cl_errstr(err)); } } diff -Nru darktable-4.4.2/src/common/guided_filter.h darktable-4.6.1/src/common/guided_filter.h --- darktable-4.4.2/src/common/guided_filter.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/guided_filter.h 2024-02-16 17:31:09.000000000 +0000 @@ -34,7 +34,7 @@ // allocate space for 1-component image of size width x height static inline gray_image new_gray_image(int width, int height) { - return (gray_image){ dt_alloc_align(64, sizeof(float) * width * height), width, height }; + return (gray_image){ dt_alloc_align_float((size_t)width * height), width, height }; } @@ -52,20 +52,6 @@ memcpy(img2.data, img1.data, sizeof(float) * img1.width * img1.height); } - -// minimum of two integers -static inline int min_i(int a, int b) -{ - return a < b ? a : b; -} - - -// maximum of two integers -static inline int max_i(int a, int b) -{ - return a > b ? a : b; -} - void guided_filter(const float *guide, const float *in, float *out, int width, int height, int ch, int w, float sqrt_eps, float guide_weight, float min, float max); diff -Nru darktable-4.4.2/src/common/heal.c darktable-4.6.1/src/common/heal.c --- darktable-4.4.2/src/common/heal.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/heal.c 2024-02-16 17:31:09.000000000 +0000 @@ -387,7 +387,7 @@ { if(ch != 4) { - dt_print(DT_DEBUG_ALWAYS,"dt_heal: full-color image required\n"); + dt_print(DT_DEBUG_ALWAYS, "dt_heal: full-color image required\n"); return; } const size_t subwidth = 4 * ((width+1)/2); // round up to be able to handle odd widths @@ -453,7 +453,7 @@ cl_int dt_heal_cl(heal_params_cl_t *p, cl_mem dev_src, cl_mem dev_dest, const float *const mask_buffer, const int width, const int height, const int max_iter) { - cl_int err = CL_SUCCESS; + cl_int err = DT_OPENCL_SYSMEM_ALLOCATION; const int ch = 4; @@ -461,43 +461,23 @@ float *dest_buffer = NULL; src_buffer = dt_alloc_align_float((size_t)ch * width * height); - if(src_buffer == NULL) - { - dt_print(DT_DEBUG_ALWAYS, "dt_heal_cl: error allocating memory for healing\n"); - err = DT_OPENCL_SYSMEM_ALLOCATION; - goto cleanup; - } + if(src_buffer == NULL) goto cleanup; dest_buffer = dt_alloc_align_float((size_t)ch * width * height); - if(dest_buffer == NULL) - { - dt_print(DT_DEBUG_ALWAYS, "dt_heal_cl: error allocating memory for healing\n"); - err = DT_OPENCL_SYSMEM_ALLOCATION; - goto cleanup; - } + if(dest_buffer == NULL) goto cleanup; err = dt_opencl_read_buffer_from_device(p->devid, (void *)src_buffer, dev_src, 0, (size_t)width * height * ch * sizeof(float), CL_TRUE); - if(err != CL_SUCCESS) - { - goto cleanup; - } + if(err != CL_SUCCESS) goto cleanup; err = dt_opencl_read_buffer_from_device(p->devid, (void *)dest_buffer, dev_dest, 0, (size_t)width * height * ch * sizeof(float), CL_TRUE); - if(err != CL_SUCCESS) - { - goto cleanup; - } + if(err != CL_SUCCESS) goto cleanup; // I couldn't make it run fast on opencl (the reduction takes forever), so just call the cpu version dt_heal(src_buffer, dest_buffer, mask_buffer, width, height, ch, max_iter); err = dt_opencl_write_buffer_to_device(p->devid, dest_buffer, dev_dest, 0, sizeof(float) * width * height * ch, CL_TRUE); - if(err != CL_SUCCESS) - { - goto cleanup; - } cleanup: if(src_buffer) dt_free_align(src_buffer); diff -Nru darktable-4.4.2/src/common/histogram.c darktable-4.6.1/src/common/histogram.c --- darktable-4.4.2/src/common/histogram.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/histogram.c 2024-02-16 17:31:09.000000000 +0000 @@ -215,7 +215,7 @@ const gboolean compensate_middle_grey, const dt_iop_order_iccprofile_info_t *const profile_info) { - dt_times_t start_time = { 0 }, end_time = { 0 }; + dt_times_t start_time = { 0 }; dt_get_perf_times(&start_time); // all use 256 bins excepting: @@ -291,17 +291,13 @@ for_each_channel(ch,aligned(m:16)) histogram_max[ch] = m[ch]; - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_get_times(&end_time); - dt_print(DT_DEBUG_ALWAYS, - "histogram calculation %u bins %d -> %d" - " compensate %d %u channels %u pixels took %.3f secs (%.3f CPU)\n", - histogram_params->bins_count, cst, cst_to, - compensate_middle_grey && profile_info, histogram_stats->ch, - histogram_stats->pixels, - end_time.clock - start_time.clock, end_time.user - start_time.user); - } + dt_print(DT_DEBUG_PERF, + "histogram calculation %u bins %d -> %d" + " compensate %d %u channels %u pixels took %.3f secs (%.3f CPU)\n", + histogram_params->bins_count, cst, cst_to, + compensate_middle_grey && profile_info, histogram_stats->ch, + histogram_stats->pixels, + dt_get_lap_time(&start_time.clock), dt_get_lap_utime(&start_time.user)); } // clang-format off diff -Nru darktable-4.4.2/src/common/history.c darktable-4.6.1/src/common/history.c --- darktable-4.4.2/src/common/history.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/history.c 2024-02-16 17:31:09.000000000 +0000 @@ -55,7 +55,8 @@ dt_image_cache_write_release(darktable.image_cache, image, DT_IMAGE_CACHE_SAFE); } -void dt_history_delete_on_image_ext(const dt_imgid_t imgid, const gboolean undo) +void dt_history_delete_on_image_ext(const dt_imgid_t imgid, + const gboolean undo) { dt_undo_lt_history_t *hist = undo?dt_history_snapshot_item_init():NULL; @@ -111,7 +112,8 @@ _remove_preset_flag(imgid); /* if current image in develop reload history */ - if(dt_dev_is_current_image(darktable.develop, imgid)) dt_dev_reload_history_items(darktable.develop); + if(dt_dev_is_current_image(darktable.develop, imgid)) + dt_dev_reload_history_items(darktable.develop); /* make sure mipmaps are recomputed */ dt_mipmap_cache_remove(darktable.mipmap_cache, imgid); @@ -125,7 +127,8 @@ dt_image_cache_unset_change_timestamp(darktable.image_cache, imgid); // signal that the mipmap need to be updated - DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_DEVELOP_MIPMAP_UPDATED, imgid); + DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, + DT_SIGNAL_DEVELOP_MIPMAP_UPDATED, imgid); dt_unlock_image(imgid); @@ -137,8 +140,10 @@ dt_history_snapshot_undo_create(hist->imgid, &hist->after, &hist->after_history_end); dt_undo_start_group(darktable.undo, DT_UNDO_LT_HISTORY); - dt_undo_record(darktable.undo, NULL, DT_UNDO_LT_HISTORY, (dt_undo_data_t)hist, - dt_history_snapshot_undo_pop, dt_history_snapshot_undo_lt_history_data_free); + dt_undo_record(darktable.undo, NULL, DT_UNDO_LT_HISTORY, + (dt_undo_data_t)hist, + dt_history_snapshot_undo_pop, + dt_history_snapshot_undo_lt_history_data_free); dt_undo_end_group(darktable.undo); } } @@ -163,24 +168,28 @@ if(dt_exif_xmp_read(img, filename, history_only)) { - dt_image_cache_write_release(darktable.image_cache, img, - // ugly but if not history_only => called from crawler - do not write the xmp - history_only ? DT_IMAGE_CACHE_SAFE : DT_IMAGE_CACHE_RELAXED); + dt_image_cache_write_release + (darktable.image_cache, img, + // ugly but if not history_only => called from crawler - do not write the xmp + history_only ? DT_IMAGE_CACHE_SAFE : DT_IMAGE_CACHE_RELAXED); dt_unlock_image(imgid); return TRUE; } dt_history_snapshot_undo_create(hist->imgid, &hist->after, &hist->after_history_end); dt_undo_start_group(darktable.undo, DT_UNDO_LT_HISTORY); dt_undo_record(darktable.undo, NULL, DT_UNDO_LT_HISTORY, (dt_undo_data_t)hist, - dt_history_snapshot_undo_pop, dt_history_snapshot_undo_lt_history_data_free); + dt_history_snapshot_undo_pop, + dt_history_snapshot_undo_lt_history_data_free); dt_undo_end_group(darktable.undo); /* if current image in develop reload history */ - if(dt_dev_is_current_image(darktable.develop, imgid)) dt_dev_reload_history_items(darktable.develop); + if(dt_dev_is_current_image(darktable.develop, imgid)) + dt_dev_reload_history_items(darktable.develop); - dt_image_cache_write_release(darktable.image_cache, img, - // ugly but if not history_only => called from crawler - do not write the xmp - history_only ? DT_IMAGE_CACHE_SAFE : DT_IMAGE_CACHE_RELAXED); + dt_image_cache_write_release + (darktable.image_cache, img, + // ugly but if not history_only => called from crawler - do not write the xmp + history_only ? DT_IMAGE_CACHE_SAFE : DT_IMAGE_CACHE_RELAXED); dt_mipmap_cache_remove(darktable.mipmap_cache, imgid); dt_image_update_final_size(imgid); } @@ -190,14 +199,16 @@ return FALSE; } -gboolean dt_history_load_and_apply_on_list(gchar *filename, const GList *list) +gboolean dt_history_load_and_apply_on_list(gchar *filename, + const GList *list) { gboolean res = FALSE; dt_undo_start_group(darktable.undo, DT_UNDO_LT_HISTORY); for(GList *l = (GList *)list; l; l = g_list_next(l)) { const dt_imgid_t imgid = GPOINTER_TO_INT(l->data); - if(dt_history_load_and_apply(imgid, filename, 1)) res = TRUE; + if(dt_history_load_and_apply(imgid, filename, TRUE)) + res = TRUE; } dt_undo_end_group(darktable.undo); return res; @@ -221,24 +232,6 @@ return hist_mod; } -// returns the first history item with corresponding module->op -static dt_dev_history_item_t *_search_history_by_op(dt_develop_t *dev, - const dt_iop_module_t *module) -{ - dt_dev_history_item_t *hist_mod = NULL; - for(GList *history = dev->history; history; history = g_list_next(history)) - { - dt_dev_history_item_t *hist = (dt_dev_history_item_t *)(history->data); - - if(dt_iop_module_is(hist->module->so, module->op)) - { - hist_mod = hist; - break; - } - } - return hist_mod; -} - // returns the module on modules_list that is equal to module // used to check if module exists on the list static dt_iop_module_t *_search_list_iop_by_module(GList *modules_list, @@ -259,7 +252,10 @@ } // fills used with formid, if it is a group it recurs and fill all sub-forms -static void _fill_used_forms(GList *forms_list, const dt_mask_id_t formid, int *used, const int nb) +static void _fill_used_forms(GList *forms_list, + const dt_mask_id_t formid, + int *used, + const int nb) { // first, we search for the formid in used table for(int i = 0; i < nb; i++) @@ -303,7 +299,8 @@ // use multi-name for match copied instance only for hand-edited names // for the multi-priority = 0 (first instance). - g_strlcpy(modsrc_multi_name, dt_iop_get_instance_name(mod_src), sizeof(modsrc_multi_name)); + g_strlcpy(modsrc_multi_name, + dt_iop_get_instance_name(mod_src), sizeof(modsrc_multi_name)); // one-instance modules always replace the existing one if(mod_src->flags() & IOP_FLAGS_ONE_INSTANCE) @@ -312,7 +309,8 @@ if(mod_replace == NULL) { dt_print(DT_DEBUG_ALWAYS, - "[dt_history_merge_module_into_history] can't find single instance module %s\n", + "[dt_history_merge_module_into_history]" + " can't find single instance module %s\n", mod_src->op); module_added = FALSE; } @@ -322,11 +320,13 @@ && mod_replace == NULL && (!append || !mod_src->enabled)) { - // we haven't found a module to replace - // check if there's a module with the same (operation, multi_name) on dev->iop - // we do that if in overwrite mode or if the module being merged is disabled. - // In this later case we do want to disable a current instance of the same - // module & multi-priority. + dt_iop_module_t *mod_same_name = NULL; + dt_iop_module_t *mod_same_prio = NULL; + dt_iop_module_t *mod_unused = NULL; + dt_iop_module_t *mod_default = NULL; + + // we haven't found a module to replace check if there's a module + // with the same (operation, multi_name) on dev->iop for(GList *modules_dest = dev_dest->iop; modules_dest; @@ -334,37 +334,52 @@ { dt_iop_module_t *mod_dest = (dt_iop_module_t *)modules_dest->data; + // look for not yet used module if(strcmp(mod_src->op, mod_dest->op) == 0 - && strcmp(modsrc_multi_name, mod_dest->multi_name) == 0) + && _search_list_iop_by_module(modules_used, mod_dest) == NULL) { - // but only if it hasn't been used already - if(_search_list_iop_by_module(modules_used, mod_dest) == NULL) + if(strcmp(mod_src->multi_name, mod_dest->multi_name) == 0) { - // we will replace this module - modules_used = g_list_append(modules_used, mod_dest); - mod_replace = mod_dest; - break; + mod_same_name = mod_dest; + } + else if(!mod_dest->multi_name_hand_edited + && mod_src->multi_priority == mod_dest->multi_priority) + { + mod_same_prio = mod_dest; + } + else if(!mod_dest->enabled) + { + mod_unused = mod_dest; + } + else if(memcmp(mod_dest->params, + mod_dest->default_params, + mod_dest->params_size) == 0 + && memcmp(mod_dest->blend_params, + mod_dest->default_blendop_params, + sizeof(dt_develop_blend_params_t)) == 0) + { + mod_default = mod_dest; } } } - } - if(module_added && mod_replace == NULL) - { - // we haven't found a module to replace, so we will create a new instance - // but if there's an un-used instance on dev->iop we will use that. - - if(_search_history_by_op(dev_dest, mod_src) == NULL) - { - // there should be only one instance of this iop (since is un-used) - mod_replace = dt_iop_get_module_by_op_priority(dev_dest->iop, mod_src->op, -1); - if(mod_replace == NULL) - { - dt_print(DT_DEBUG_ALWAYS, - "[dt_history_merge_module_into_history] can't find base instance module %s\n", - mod_src->op); - module_added = FALSE; - } + // now select the destination module by order of preference: + // - same name + // - not enabled + // - enabled but has default params + // - same prio + dt_iop_module_t *mod_dest = + mod_same_name ? mod_same_name + : (mod_unused ? mod_unused + : (mod_default ? mod_default + : (mod_same_prio ? mod_same_prio + : NULL))); + + if(mod_dest) + { + // we will replace this module + modules_used = g_list_append(modules_used, mod_dest); + mod_replace = mod_dest; } } @@ -373,20 +388,24 @@ // if we are creating a new instance, create a new module if(mod_replace == NULL) { - dt_iop_module_t *base = dt_iop_get_module_by_op_priority(dev_dest->iop, mod_src->op, -1); - module = (dt_iop_module_t *)calloc(1, sizeof(dt_iop_module_t)); - if(dt_iop_load_module(module, base->so, dev_dest)) + dt_iop_module_t *base = + dt_iop_get_module_by_op_priority(dev_dest->iop, mod_src->op, -1); + + module = dt_dev_module_duplicate_ext(dev_dest, base, FALSE); + + if(!module) { dt_print(DT_DEBUG_ALWAYS, - "[dt_history_merge_module_into_history] can't load module %s\n", mod_src->op); + "[dt_history_merge_module_into_history]" + " can't load module %s\n", mod_src->op); module_added = FALSE; } else { - module->instance = mod_src->instance; - module->multi_priority = mod_src->multi_priority; - module->iop_order = dt_ioppr_get_iop_order(dev_dest->iop_order_list, - module->op, module->multi_priority); + dt_ioppr_resync_modules_order(dev_dest); + + // and record this module as we don't want to reuse it later + modules_used = g_list_append(modules_used, module); } } else @@ -395,8 +414,12 @@ } module->enabled = mod_src->enabled; - g_strlcpy(module->multi_name, modsrc_multi_name, sizeof(module->multi_name)); - module->multi_name_hand_edited = mod_src->multi_name_hand_edited; + + if(!module->multi_name_hand_edited) + { + g_strlcpy(module->multi_name, mod_src->multi_name, sizeof(module->multi_name)); + module->multi_name_hand_edited = mod_src->multi_name_hand_edited; + } if(auto_init) { @@ -408,18 +431,21 @@ if(module->flags() & IOP_FLAGS_SUPPORTS_BLENDING) { - memcpy(module->blend_params, mod_src->blend_params, sizeof(dt_develop_blend_params_t)); + memcpy(module->blend_params, mod_src->blend_params, + sizeof(dt_develop_blend_params_t)); module->blend_params->mask_id = mod_src->blend_params->mask_id; } } - // we have the module, we will use the source module iop_order unless there's already - // a module with that order - if(module_added) + // we have the module, we will use the source module iop_order + // unless there's already a module with that order + if(module_added && mod_replace == NULL) { dt_iop_module_t *module_duplicate = NULL; // check if there's a module with the same iop_order - for(GList *modules_dest = dev_dest->iop; modules_dest; modules_dest = g_list_next(modules_dest)) + for(GList *modules_dest = dev_dest->iop; + modules_dest; + modules_dest = g_list_next(modules_dest)) { dt_iop_module_t *mod = (dt_iop_module_t *)(modules_dest->data); @@ -437,25 +463,28 @@ // do some checking... if(mod_src->iop_order <= 0.0 || mod_src->iop_order == INT_MAX) dt_print(DT_DEBUG_ALWAYS, - "[dt_history_merge_module_into_history] invalid source module %s %s(%d)(%i)\n", - mod_src->op, mod_src->multi_name, mod_src->iop_order, mod_src->multi_priority); + "[dt_history_merge_module_into_history]" + " invalid source module %s %s(%d)(%i)\n", + mod_src->op, mod_src->multi_name, + mod_src->iop_order, mod_src->multi_priority); if(module_duplicate - && (module_duplicate->iop_order <= 0.0 || module_duplicate->iop_order == INT_MAX)) + && (module_duplicate->iop_order <= 0.0 + || module_duplicate->iop_order == INT_MAX)) dt_print(DT_DEBUG_ALWAYS, - "[dt_history_merge_module_into_history] invalid duplicate module module %s %s(%d)(%i)\n", + "[dt_history_merge_module_into_history]" + " invalid duplicate module module %s %s(%d)(%i)\n", module_duplicate->op, module_duplicate->multi_name, module_duplicate->iop_order, module_duplicate->multi_priority); if(module->iop_order <= 0.0 || module->iop_order == INT_MAX) dt_print(DT_DEBUG_ALWAYS, - "[dt_history_merge_module_into_history] invalid iop_order for module %s %s(%d)(%i)\n", - module->op, module->multi_name, module->iop_order, module->multi_priority); + "[dt_history_merge_module_into_history]" + " invalid iop_order for module %s %s(%d)(%i)\n", + module->op, module->multi_name, module->iop_order, + module->multi_priority); - // if this is a new module just add it to the list - if(mod_replace == NULL) - dev_dest->iop = g_list_insert_sorted(dev_dest->iop, module, dt_sort_iop_by_order); - else + if(mod_replace != NULL) dev_dest->iop = g_list_sort(dev_dest->iop, dt_sort_iop_by_order); } @@ -470,22 +499,27 @@ { // we will copy only used forms // record the masks used by this module - if(mod_src->flags() & IOP_FLAGS_SUPPORTS_BLENDING && mod_src->blend_params->mask_id > 0) + if(mod_src->flags() & IOP_FLAGS_SUPPORTS_BLENDING + && dt_is_valid_maskid(mod_src->blend_params->mask_id)) { nbf = g_list_length(dev_src->forms); forms_used_replace = calloc(nbf, sizeof(int)); - _fill_used_forms(dev_src->forms, mod_src->blend_params->mask_id, forms_used_replace, nbf); + _fill_used_forms(dev_src->forms, + mod_src->blend_params->mask_id, + forms_used_replace, nbf); // now copy masks for(int i = 0; i < nbf && forms_used_replace[i] > 0; i++) { - dt_masks_form_t *form = dt_masks_get_from_id_ext(dev_src->forms, forms_used_replace[i]); + dt_masks_form_t *form = + dt_masks_get_from_id_ext(dev_src->forms, forms_used_replace[i]); if(form) { // check if the form already exists in dest image // if so we'll remove it, so it is replaced - dt_masks_form_t *form_dest = dt_masks_get_from_id_ext(dev_dest->forms, forms_used_replace[i]); + dt_masks_form_t *form_dest = + dt_masks_get_from_id_ext(dev_dest->forms, forms_used_replace[i]); if(form_dest) { dev_dest->forms = g_list_remove(dev_dest->forms, form_dest); @@ -499,7 +533,8 @@ } else dt_print(DT_DEBUG_ALWAYS, - "[dt_history_merge_module_into_history] form %i not found in source image\n", + "[dt_history_merge_module_into_history]" + " form %i not found in source image\n", forms_used_replace[i]); } } @@ -510,7 +545,10 @@ else dt_dev_add_history_item_ext(dev_dest, module, FALSE, TRUE); - dt_ioppr_resync_modules_order(dev_dest); + if(mod_replace == NULL) + { + dt_ioppr_resync_modules_order(dev_dest); + } dt_dev_pop_history_items_ext(dev_dest, dev_dest->history_end); @@ -523,9 +561,10 @@ } static gboolean _history_copy_and_paste_on_image_merge(const dt_imgid_t imgid, - const dt_imgid_t dest_imgid, - GList *ops, - const gboolean copy_full) + const dt_imgid_t dest_imgid, + GList *ops, + const gboolean copy_iop_order, + const gboolean copy_full) { GList *modules_used = NULL; @@ -547,22 +586,18 @@ // This prepends the default modules and converts just in case it's an empty history dt_dev_read_history_ext(dev_dest, dest_imgid, TRUE, -1); - if(darktable.unmuted & DT_DEBUG_IOPORDER) - dt_ioppr_check_iop_order(dev_src, imgid, - "_history_copy_and_paste_on_image_merge "); - if(darktable.unmuted & DT_DEBUG_IOPORDER) - dt_ioppr_check_iop_order(dev_dest, dest_imgid, - "_history_copy_and_paste_on_image_merge "); + dt_ioppr_check_iop_order(dev_src, imgid, + "_history_copy_and_paste_on_image_merge "); + dt_ioppr_check_iop_order(dev_dest, dest_imgid, + "_history_copy_and_paste_on_image_merge "); dt_dev_pop_history_items_ext(dev_src, dev_src->history_end); dt_dev_pop_history_items_ext(dev_dest, dev_dest->history_end); - if(darktable.unmuted & DT_DEBUG_IOPORDER) - dt_ioppr_check_iop_order(dev_src, imgid, - "_history_copy_and_paste_on_image_merge 1"); - if(darktable.unmuted & DT_DEBUG_IOPORDER) - dt_ioppr_check_iop_order(dev_dest, dest_imgid, - "_history_copy_and_paste_on_image_merge 1"); + dt_ioppr_check_iop_order(dev_src, imgid, + "_history_copy_and_paste_on_image_merge 1"); + dt_ioppr_check_iop_order(dev_dest, dest_imgid, + "_history_copy_and_paste_on_image_merge 1"); GList *mod_list = NULL; GList *autoinit_list = NULL; @@ -625,7 +660,8 @@ autoinit_list = g_list_reverse(autoinit_list); // update iop-order list to have entries for the new modules - dt_ioppr_update_for_modules(dev_dest, mod_list, FALSE); + if(!copy_iop_order) + dt_ioppr_update_for_modules(dev_dest, mod_list, FALSE); GList *ai = autoinit_list; @@ -639,10 +675,10 @@ } // update iop-order list to have entries for the new modules - dt_ioppr_update_for_modules(dev_dest, mod_list, FALSE); + if(!copy_iop_order) + dt_ioppr_update_for_modules(dev_dest, mod_list, FALSE); - if(darktable.unmuted & DT_DEBUG_IOPORDER) - dt_ioppr_check_iop_order(dev_dest, dest_imgid, + dt_ioppr_check_iop_order(dev_dest, dest_imgid, "_history_copy_and_paste_on_image_merge 2"); // write history and forms to db @@ -659,9 +695,10 @@ } static gboolean _history_copy_and_paste_on_image_overwrite(const dt_imgid_t imgid, - const dt_imgid_t dest_imgid, - GList *ops, - const gboolean copy_full) + const dt_imgid_t dest_imgid, + GList *ops, + const gboolean copy_iop_order, + const gboolean copy_full) { gboolean ret_val = FALSE; sqlite3_stmt *stmt; @@ -683,7 +720,9 @@ sqlite3_finalize(stmt); DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "UPDATE main.images SET history_end = 0, aspect_ratio = 0.0 WHERE id = ?1", + "UPDATE main.images" + " SET history_end = 0, aspect_ratio = 0.0" + " WHERE id = ?1", -1, &stmt, NULL); DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, dest_imgid); sqlite3_step(stmt); @@ -780,12 +819,13 @@ // copy the module order // clang-format off - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "INSERT OR REPLACE INTO main.module_order (imgid, iop_list, version)" - " SELECT ?2, iop_list, version" - " FROM main.module_order" - " WHERE imgid = ?1", - -1, &stmt, NULL); + DT_DEBUG_SQLITE3_PREPARE_V2 + (dt_database_get(darktable.db), + "INSERT OR REPLACE INTO main.module_order (imgid, iop_list, version)" + " SELECT ?2, iop_list, version" + " FROM main.module_order" + " WHERE imgid = ?1", + -1, &stmt, NULL); // clang-format on DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, imgid); DT_DEBUG_SQLITE3_BIND_INT(stmt, 2, dest_imgid); @@ -820,7 +860,8 @@ else { // since the history and masks where deleted we can do a merge - ret_val = _history_copy_and_paste_on_image_merge(imgid, dest_imgid, ops, copy_full); + ret_val = _history_copy_and_paste_on_image_merge + (imgid, dest_imgid, ops, copy_iop_order, copy_full); } return ret_val; @@ -837,23 +878,26 @@ if(!dt_is_valid_imgid(imgid)) { - dt_control_log(_("you need to copy history from an image before you paste it onto another")); + dt_control_log(_("you need to copy history from an" + " image before you paste it onto another")); return TRUE; } dt_lock_image_pair(imgid, dest_imgid); // be sure the current history is written before pasting some other history data - const dt_view_t *cv = dt_view_manager_get_current_view(darktable.view_manager); - if(cv->view((dt_view_t *)cv) == DT_VIEW_DARKROOM) dt_dev_write_history(darktable.develop); + if(dt_view_get_current() == DT_VIEW_DARKROOM) + dt_dev_write_history(darktable.develop); dt_undo_lt_history_t *hist = dt_history_snapshot_item_init(); hist->imgid = dest_imgid; dt_history_snapshot_undo_create(hist->imgid, &hist->before, &hist->before_history_end); + GList *iop_list = NULL; + if(copy_iop_order) { - GList *iop_list = dt_ioppr_get_iop_order_list(imgid, FALSE); + iop_list = dt_ioppr_get_iop_order_list(imgid, FALSE); // but we also want to keep the multi-instance on the destination if merge is active if(merge) @@ -861,25 +905,34 @@ GList *dest_iop_list = dt_ioppr_get_iop_order_list(dest_imgid, FALSE); GList *mi_iop_list = dt_ioppr_extract_multi_instances_list(dest_iop_list); - if(mi_iop_list) dt_ioppr_merge_multi_instance_iop_order_list(iop_list, mi_iop_list); + if(mi_iop_list) + dt_ioppr_merge_multi_instance_iop_order_list(iop_list, mi_iop_list); g_list_free_full(dest_iop_list, g_free); g_list_free_full(mi_iop_list, g_free); } dt_ioppr_write_iop_order_list(iop_list, dest_imgid); - g_list_free_full(iop_list, g_free); } gboolean ret_val = FALSE; if(merge) - ret_val = _history_copy_and_paste_on_image_merge(imgid, dest_imgid, ops, copy_full); + ret_val = _history_copy_and_paste_on_image_merge + (imgid, dest_imgid, ops, copy_iop_order, copy_full); else - ret_val = _history_copy_and_paste_on_image_overwrite(imgid, dest_imgid, ops, copy_full); + ret_val = _history_copy_and_paste_on_image_overwrite + (imgid, dest_imgid, ops, copy_iop_order, copy_full); + + if(iop_list) + { + dt_ioppr_write_iop_order_list(iop_list, dest_imgid); + g_list_free_full(iop_list, g_free); + } dt_history_snapshot_undo_create(hist->imgid, &hist->after, &hist->after_history_end); dt_undo_start_group(darktable.undo, DT_UNDO_LT_HISTORY); dt_undo_record(darktable.undo, NULL, DT_UNDO_LT_HISTORY, (dt_undo_data_t)hist, - dt_history_snapshot_undo_pop, dt_history_snapshot_undo_lt_history_data_free); + dt_history_snapshot_undo_pop, + dt_history_snapshot_undo_lt_history_data_free); dt_undo_end_group(darktable.undo); /* attach changed tag reflecting actual change */ @@ -902,14 +955,16 @@ dt_mipmap_cache_remove(darktable.mipmap_cache, dest_imgid); dt_image_update_final_size(imgid); - /* update the aspect ratio. recompute only if really needed for performance reasons */ + /* update the aspect ratio. recompute only if really needed for + * performance reasons */ if(darktable.collection->params.sorts[DT_COLLECTION_SORT_ASPECT_RATIO]) dt_image_set_aspect_ratio(dest_imgid, FALSE); else dt_image_reset_aspect_ratio(dest_imgid, FALSE); // signal that the mipmap need to be updated - DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_DEVELOP_MIPMAP_UPDATED, dest_imgid); + DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, + DT_SIGNAL_DEVELOP_MIPMAP_UPDATED, dest_imgid); dt_unlock_image_pair(imgid, dest_imgid); @@ -968,7 +1023,8 @@ while(sqlite3_step(stmt) == SQLITE_ROW) { - if(strcmp((const char*)sqlite3_column_text(stmt, 1), "mask_manager") == 0) continue; + if(strcmp((const char*)sqlite3_column_text(stmt, 1), "mask_manager") == 0) + continue; dt_history_item_t *item = g_malloc(sizeof(dt_history_item_t)); const char *op = (char *)sqlite3_column_text(stmt, 1); @@ -1051,7 +1107,8 @@ end = sqlite3_column_int(stmt, 0); sqlite3_finalize(stmt); - // dt_print(DT_DEBUG_ALWAYS,"\ndt_history_end_attop for image %i: size %i, end %i",imgid,size,end); + // dt_print(DT_DEBUG_ALWAYS,"\ndt_history_end_attop" + // "for image %i: size %i, end %i",imgid,size,end); // a special case right after removing all history // It must be absolutely fresh and untouched so history_end is always on top @@ -1067,7 +1124,8 @@ /* Please note: dt_history_compress_on_image - is used in lighttable and darkroom mode - - It compresses history *exclusively* in the database and does *not* touch anything on the history stack + - It compresses history *exclusively* in the database and does + *not* touch anything on the history stack */ void dt_history_compress_on_image(const dt_imgid_t imgid) { @@ -1099,8 +1157,10 @@ dt_database_start_transaction(darktable.db); - // We must know for sure whether there is a mask manager at slot 0 in history - // because only if this is **not** true history nums and history_end must be increased + // We must know for sure whether there is a mask manager at slot 0 + // in history because only if this is **not** true history nums and + // history_end must be increased + // clang-format off DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), "SELECT COUNT(*)" @@ -1140,12 +1200,13 @@ // compress masks history // clang-format off - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "DELETE FROM main.masks_history" - " WHERE imgid = ?1 " - " AND num NOT IN (SELECT MAX(num)" - " FROM main.masks_history" - " WHERE imgid = ?1 AND num < ?2)", -1, &stmt, NULL); + DT_DEBUG_SQLITE3_PREPARE_V2 + (dt_database_get(darktable.db), + "DELETE FROM main.masks_history" + " WHERE imgid = ?1 " + " AND num NOT IN (SELECT MAX(num)" + " FROM main.masks_history" + " WHERE imgid = ?1 AND num < ?2)", -1, &stmt, NULL); // clang-format on DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, imgid); DT_DEBUG_SQLITE3_BIND_INT(stmt, 2, my_history_end); @@ -1179,7 +1240,9 @@ // update history end DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "UPDATE main.images SET history_end = history_end+1 WHERE id = ?1", -1, &stmt, NULL); + "UPDATE main.images" + " SET history_end = history_end+1" + " WHERE id = ?1", -1, &stmt, NULL); DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, imgid); sqlite3_step(stmt); sqlite3_finalize(stmt); @@ -1187,12 +1250,13 @@ // create a mask manager entry in history as first entry // clang-format off - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "INSERT INTO main.history" - " (imgid, num, operation, op_params, module, enabled," - " blendop_params, blendop_version, multi_priority, multi_name)" - " VALUES(?1, 0, ?2, NULL, 1, 0, NULL, 0, 0, '')", - -1, &stmt, NULL); + DT_DEBUG_SQLITE3_PREPARE_V2 + (dt_database_get(darktable.db), + "INSERT INTO main.history" + " (imgid, num, operation, op_params, module, enabled," + " blendop_params, blendop_version, multi_priority, multi_name)" + " VALUES(?1, 0, ?2, NULL, 1, 0, NULL, 0, 0, '')", + -1, &stmt, NULL); // clang-format on DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, imgid); DT_DEBUG_SQLITE3_BIND_TEXT(stmt, 2, op_mask_manager, -1, SQLITE_TRANSIENT); @@ -1204,14 +1268,17 @@ dt_database_release_transaction(darktable.db); - DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_DEVELOP_MIPMAP_UPDATED, imgid); + DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, + DT_SIGNAL_DEVELOP_MIPMAP_UPDATED, imgid); } /* Please note: dt_history_truncate_on_image - can be used in lighttable and darkroom mode - - It truncates history *exclusively* in the database and does *not* touch anything on the history stack + - It truncates history *exclusively* in the database and does + *not* touch anything on the history stack */ -void dt_history_truncate_on_image(const dt_imgid_t imgid, const int32_t history_end) +void dt_history_truncate_on_image(const dt_imgid_t imgid, + const int32_t history_end) { dt_lock_image(imgid); sqlite3_stmt *stmt; @@ -1265,7 +1332,8 @@ dt_database_release_transaction(darktable.db); - DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_DEVELOP_MIPMAP_UPDATED, imgid); + DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, + DT_SIGNAL_DEVELOP_MIPMAP_UPDATED, imgid); } int dt_history_compress_on_list(const GList *imgs) @@ -1318,8 +1386,12 @@ { sqlite3_stmt *stmt4; // step by step set the correct num - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "UPDATE main.history SET num = ?3 WHERE imgid = ?1 AND num = ?2", -1, &stmt4, NULL); + DT_DEBUG_SQLITE3_PREPARE_V2 + (dt_database_get(darktable.db), + "UPDATE main.history" + " SET num = ?3" + " WHERE imgid = ?1 AND num = ?2", + -1, &stmt4, NULL); DT_DEBUG_SQLITE3_BIND_INT(stmt4, 1, imgid); DT_DEBUG_SQLITE3_BIND_INT(stmt4, 2, index); DT_DEBUG_SQLITE3_BIND_INT(stmt4, 3, done); @@ -1397,7 +1469,8 @@ { const dt_dev_history_item_t *old = (dt_dev_history_item_t *)(h->data); - dt_dev_history_item_t *new = (dt_dev_history_item_t *)malloc(sizeof(dt_dev_history_item_t)); + dt_dev_history_item_t *new = + (dt_dev_history_item_t *)malloc(sizeof(dt_dev_history_item_t)); memcpy(new, old, sizeof(dt_dev_history_item_t)); @@ -1416,7 +1489,8 @@ else { // nothing else to do - dt_print(DT_DEBUG_ALWAYS, "[_duplicate_history] can't find base module for %s\n", old->op_name); + dt_print(DT_DEBUG_ALWAYS, "[_duplicate_history]" + " can't find base module for %s\n", old->op_name); } } @@ -1459,18 +1533,20 @@ } sqlite3_finalize(stmt); - // get history. the active history for an image are all the latest operations (MAX(num)) - // which are enabled. this is important here as we want the hash to represent the actual - // developement of the image. + // get history. the active history for an image are all the latest + // operations (MAX(num)) which are enabled. this is important here + // as we want the hash to represent the actual developement of the + // image. gboolean history_on = FALSE; // clang-format off - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "SELECT operation, op_params, blendop_params, enabled, MAX(num)" - " FROM main.history" - " WHERE imgid = ?1 AND num <= ?2" - " GROUP BY operation, multi_priority" - " ORDER BY num", - -1, &stmt, NULL); + DT_DEBUG_SQLITE3_PREPARE_V2 + (dt_database_get(darktable.db), + "SELECT operation, op_params, blendop_params, enabled, MAX(num)" + " FROM main.history" + " WHERE imgid = ?1 AND num <= ?2" + " GROUP BY operation, multi_priority" + " ORDER BY num", + -1, &stmt, NULL); // clang-format on DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, imgid); DT_DEBUG_SQLITE3_BIND_INT(stmt, 2, history_end); @@ -1530,7 +1606,8 @@ return hash_len; } -void dt_history_hash_write_from_history(const dt_imgid_t imgid, const dt_history_hash_t type) +void dt_history_hash_write_from_history(const dt_imgid_t imgid, + const dt_history_hash_t type) { if(!dt_is_valid_imgid(imgid)) return; @@ -1618,7 +1695,8 @@ } } -void dt_history_hash_write(const dt_imgid_t imgid, const dt_history_hash_values_t *const hash) +void dt_history_hash_write(const dt_imgid_t imgid, + const dt_history_hash_values_t *const hash) { if(hash->basic || hash->auto_apply || hash->current) { @@ -1631,9 +1709,12 @@ -1, &stmt, NULL); // clang-format on DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, imgid); - DT_DEBUG_SQLITE3_BIND_BLOB(stmt, 2, hash->basic, hash->basic_len, SQLITE_TRANSIENT); - DT_DEBUG_SQLITE3_BIND_BLOB(stmt, 3, hash->auto_apply, hash->auto_apply_len, SQLITE_TRANSIENT); - DT_DEBUG_SQLITE3_BIND_BLOB(stmt, 4, hash->current, hash->current_len, SQLITE_TRANSIENT); + DT_DEBUG_SQLITE3_BIND_BLOB(stmt, 2, hash->basic, + hash->basic_len, SQLITE_TRANSIENT); + DT_DEBUG_SQLITE3_BIND_BLOB(stmt, 3, hash->auto_apply, + hash->auto_apply_len, SQLITE_TRANSIENT); + DT_DEBUG_SQLITE3_BIND_BLOB(stmt, 4, hash->current, + hash->current_len, SQLITE_TRANSIENT); sqlite3_step(stmt); sqlite3_finalize(stmt); g_free(hash->basic); @@ -1642,7 +1723,8 @@ } } -void dt_history_hash_read(const dt_imgid_t imgid, dt_history_hash_values_t *hash) +void dt_history_hash_read(const dt_imgid_t imgid, + dt_history_hash_values_t *hash) { hash->basic = hash->auto_apply = hash->current = NULL; hash->basic_len = hash->auto_apply_len = hash->current_len = 0; @@ -1742,16 +1824,17 @@ if(!dt_is_valid_imgid(imgid)) return status; sqlite3_stmt *stmt; // clang-format off - char *query = g_strdup_printf("SELECT CASE" - " WHEN basic_hash == current_hash THEN %d" - " WHEN auto_hash == current_hash THEN %d" - " WHEN (basic_hash IS NULL OR current_hash != basic_hash) AND" - " (auto_hash IS NULL OR current_hash != auto_hash) THEN %d" - " ELSE %d END AS status" - " FROM main.history_hash" - " WHERE imgid = %d", - DT_HISTORY_HASH_BASIC, DT_HISTORY_HASH_AUTO, - DT_HISTORY_HASH_CURRENT, DT_HISTORY_HASH_BASIC, imgid); + char *query = + g_strdup_printf("SELECT CASE" + " WHEN basic_hash == current_hash THEN %d" + " WHEN auto_hash == current_hash THEN %d" + " WHEN (basic_hash IS NULL OR current_hash != basic_hash) AND" + " (auto_hash IS NULL OR current_hash != auto_hash) THEN %d" + " ELSE %d END AS status" + " FROM main.history_hash" + " WHERE imgid = %d", + DT_HISTORY_HASH_BASIC, DT_HISTORY_HASH_AUTO, + DT_HISTORY_HASH_CURRENT, DT_HISTORY_HASH_BASIC, imgid); // clang-format on DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), query, -1, &stmt, NULL); @@ -1768,8 +1851,9 @@ gboolean dt_history_copy(const dt_imgid_t imgid) { - // note that this routine does not copy anything, it just setup the copy_paste proxy - // with the needed information that will be used while pasting. + // note that this routine does not copy anything, it just setup the + // copy_paste proxy with the needed information that will be used + // while pasting. if(!dt_is_valid_imgid(imgid)) return FALSE; @@ -1783,7 +1867,8 @@ } // check if images is currently loaded in darkroom - if(dt_dev_is_current_image(darktable.develop, imgid)) dt_dev_write_history(darktable.develop); + if(dt_dev_is_current_image(darktable.develop, imgid)) + dt_dev_write_history(darktable.develop); return TRUE; } @@ -1797,7 +1882,8 @@ // run dialog, it will insert into selops the selected module - if(dt_gui_hist_dialog_new(&(darktable.view_manager->copy_paste), imgid, TRUE) == GTK_RESPONSE_CANCEL) + if(dt_gui_hist_dialog_new(&(darktable.view_manager->copy_paste), imgid, TRUE) == + GTK_RESPONSE_CANCEL) return FALSE; return TRUE; } @@ -1830,11 +1916,7 @@ // In darkroom and if there is a copy of the iop-order we need to rebuild the pipe // to take into account the possible new order of modules. - - const dt_view_t *cv = dt_view_manager_get_current_view(darktable.view_manager); - - if(cv->view(cv) == DT_VIEW_DARKROOM - && darktable.view_manager->copy_paste.copy_iop_order) + if(dt_view_get_current() == DT_VIEW_DARKROOM) { dt_dev_pixelpipe_rebuild(darktable.develop); } @@ -1859,8 +1941,9 @@ GList *l_copy = g_list_copy((GList *)list); // we launch the dialog - const int res = dt_gui_hist_dialog_new(&(darktable.view_manager->copy_paste), - darktable.view_manager->copy_paste.copied_imageid, FALSE); + const int res = dt_gui_hist_dialog_new + (&(darktable.view_manager->copy_paste), + darktable.view_manager->copy_paste.copied_imageid, FALSE); if(res != GTK_RESPONSE_OK) { @@ -1882,13 +1965,10 @@ g_list_free(l_copy); - // In darkroom and if there is a copy of the iop-order we need to rebuild the pipe - // to take into account the possible new order of modules. - - const dt_view_t *cv = dt_view_manager_get_current_view(darktable.view_manager); - - if(cv->view(cv) == DT_VIEW_DARKROOM - && darktable.view_manager->copy_paste.copy_iop_order) + // In darkroom and if there is a copy of the iop-order we need to + // rebuild the pipe to take into account the possible new order of + // modules. + if(dt_view_get_current() == DT_VIEW_DARKROOM) { dt_dev_pixelpipe_rebuild(darktable.develop); } @@ -1909,16 +1989,19 @@ dt_undo_lt_history_t *hist = dt_history_snapshot_item_init(); hist->imgid = imgid; - dt_history_snapshot_undo_create(hist->imgid, &hist->before, &hist->before_history_end); + dt_history_snapshot_undo_create(hist->imgid, + &hist->before, &hist->before_history_end); dt_history_delete_on_image_ext(imgid, FALSE); dt_history_snapshot_undo_create(hist->imgid, &hist->after, &hist->after_history_end); - dt_undo_record(darktable.undo, NULL, DT_UNDO_LT_HISTORY, (dt_undo_data_t)hist, dt_history_snapshot_undo_pop, + dt_undo_record(darktable.undo, NULL, DT_UNDO_LT_HISTORY, + (dt_undo_data_t)hist, dt_history_snapshot_undo_pop, dt_history_snapshot_undo_lt_history_data_free); - /* update the aspect ratio if the current sorting is based on aspect ratio, otherwise the aspect ratio will be - recalculated when the mimpap will be recreated */ + /* update the aspect ratio if the current sorting is based on + aspect ratio, otherwise the aspect ratio will be recalculated + when the mimpap will be recreated */ if(darktable.collection->params.sorts[DT_COLLECTION_SORT_ASPECT_RATIO]) dt_image_set_aspect_ratio(imgid, FALSE); } diff -Nru darktable-4.4.2/src/common/image.c darktable-4.6.1/src/common/image.c --- darktable-4.4.2/src/common/image.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/image.c 2024-02-16 17:31:09.000000000 +0000 @@ -175,6 +175,14 @@ return (img->flags & (DT_IMAGE_MONOCHROME | DT_IMAGE_MONOCHROME_BAYER)) ? TRUE : FALSE; } +gboolean dt_image_is_bayerRGB(const dt_image_t *img) +{ + return dt_image_is_raw(img) + && img->buf_dsc.filters != 9u + && !dt_image_is_monochrome(img) + && !(img->flags & DT_IMAGE_4BAYER); +} + static void _image_set_monochrome_flag(const dt_imgid_t imgid, const gboolean monochrome, const gboolean undo_on) @@ -362,7 +370,8 @@ // always safe to remove if we do not have .xmp // FIXME ?? we might have remaining sidecar files from a situation with enabled writing. // Do we want to test and possibly remove them? - if(dt_image_get_xmp_mode() == DT_WRITE_XMP_NEVER) return TRUE; + if(dt_image_get_xmp_mode() == DT_WRITE_XMP_NEVER) + return TRUE; // check whether the original file is accessible char pathname[PATH_MAX] = { 0 }; @@ -804,13 +813,13 @@ int ww = 0, hh = 0; if(darktable.develop - && darktable.develop->pipe - && darktable.develop->pipe->output_imgid == imgid) + && darktable.develop->full.pipe + && darktable.develop->full.pipe->output_imgid == imgid) { - dt_dev_pixelpipe_get_dimensions(darktable.develop->pipe, + dt_dev_pixelpipe_get_dimensions(darktable.develop->full.pipe, darktable.develop, - darktable.develop->pipe->iwidth, - darktable.develop->pipe->iheight, + darktable.develop->full.pipe->iwidth, + darktable.develop->full.pipe->iheight, &ww, &hh); dt_image_t *imgtmp = dt_image_cache_get(darktable.image_cache, imgid, 'w'); @@ -914,12 +923,16 @@ "UPDATE main.images" " SET history_end = (SELECT MAX(num) + 1" " FROM main.history " - " WHERE imgid = ?1) WHERE id = ?1", -1, &stmt, NULL); + " WHERE imgid = ?1)" + " WHERE id = ?1", + -1, &stmt, NULL); // clang-format on DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, imgid); sqlite3_step(stmt); sqlite3_finalize(stmt); + dt_image_cache_set_change_timestamp(darktable.image_cache, imgid); + dt_history_hash_write_from_history(imgid, DT_HISTORY_HASH_CURRENT); dt_mipmap_cache_remove(darktable.mipmap_cache, imgid); @@ -982,9 +995,8 @@ void dt_image_flip(const dt_imgid_t imgid, const int32_t cw) { // this is light table only: - const dt_view_t *cv = dt_view_manager_get_current_view(darktable.view_manager); if(darktable.develop->image_storage.id == imgid - && cv->view((dt_view_t *)cv) == DT_VIEW_DARKROOM) + && dt_view_get_current() == DT_VIEW_DARKROOM) return; dt_undo_lt_history_t *hist = dt_history_snapshot_item_init(); @@ -1145,6 +1157,39 @@ return dt_image_duplicate_with_version(imgid, -1); } +static int32_t _image_get_possible_version(const dt_imgid_t imgid, + const int32_t max_version) +{ + int32_t safe_max_version = 0; + char imgpath[PATH_MAX] = { 0 }; + char versionpath[PATH_MAX] = { 0 }; + + gboolean from_cache = FALSE; + dt_image_full_path(imgid, imgpath, sizeof(imgpath), &from_cache); + + for(int32_t version = MAX(1, max_version); version < 1000; version++) + { + g_strlcpy(versionpath, imgpath, sizeof(versionpath)); + dt_image_path_append_version_no_db(version, versionpath, sizeof(versionpath)); + const size_t len = strlen(versionpath); + g_snprintf(versionpath + len, sizeof(versionpath) - len, "%s", ".xmp"); + if(!(g_file_test(versionpath, G_FILE_TEST_EXISTS) && g_file_test(versionpath, G_FILE_TEST_IS_REGULAR))) + { + safe_max_version = version; + // fprintf(stderr, "%s\n", versionpath); + break; + } + } + if(safe_max_version == 0) + { + dt_print(DT_DEBUG_ALWAYS, "image_get_possible_version couldn't find a safe new version above %d\n", + max_version); + safe_max_version = max_version; + } + + return safe_max_version; +} + static dt_imgid_t _image_duplicate_with_version_ext(const dt_imgid_t imgid, const int32_t newversion) { @@ -1180,20 +1225,20 @@ DT_DEBUG_SQLITE3_PREPARE_V2 (dt_database_get(darktable.db), "INSERT INTO main.images" - " (id, group_id, film_id, width, height, filename, maker, model, lens, exposure," + " (id, group_id, film_id, width, height, filename," + " maker_id, model_id, camera_id, lens_id, exposure," " aperture, iso, focal_length, focus_distance, datetime_taken, flags," - " output_width, output_height, crop, raw_parameters, raw_denoise_threshold," - " raw_auto_bright_threshold, raw_black, raw_maximum," - " license, sha1sum, orientation, histogram, lightmap," - " longitude, latitude, altitude, color_matrix, colorspace, version, max_version," + " output_width, output_height, crop, raw_parameters, raw_black, raw_maximum," + " orientation, longitude, latitude, altitude, color_matrix," + " colorspace, version, max_version," " history_end, position, aspect_ratio, exposure_bias, import_timestamp)" - " SELECT NULL, group_id, film_id, width, height, filename, maker, model, lens," - " exposure, aperture, iso, focal_length, focus_distance, datetime_taken," - " flags, output_width, output_height, crop, raw_parameters," - " raw_denoise_threshold, raw_auto_bright_threshold, raw_black, raw_maximum," - " license, sha1sum, orientation, histogram, lightmap," - " longitude, latitude, altitude, color_matrix, colorspace, NULL, NULL, 0, ?1," - " aspect_ratio, exposure_bias, import_timestamp" + " SELECT NULL, group_id, film_id, width, height, filename," + " maker_id, model_id, camera_id, lens_id," + " exposure, aperture, iso, focal_length, focus_distance, datetime_taken," + " flags, output_width, output_height, crop, raw_parameters," + " raw_black, raw_maximum, orientation," + " longitude, latitude, altitude, color_matrix, colorspace, NULL, NULL, 0, ?1," + " aspect_ratio, exposure_bias, import_timestamp" " FROM main.images WHERE id = ?2", -1, &stmt, NULL); // clang-format on @@ -1312,12 +1357,24 @@ sqlite3_step(stmt); sqlite3_finalize(stmt); + int32_t safe_new_version = max_version + 1; + if(newversion == -1) + { + // we can't take for granted that we have an unused version by taking `max_version+1` as + // a) other database might also use this image file or + // b) duplicates had been removed from and later added to database. + safe_new_version = _image_get_possible_version(imgid, safe_new_version); + if(safe_new_version != max_version + 1) + dt_print(DT_DEBUG_ALWAYS, "dt_image_duplicate version forced %d -> %d\n", + max_version + 1, safe_new_version); + } + // set version of new entry and max_version of all involved // duplicates (with same film_id and filename) this needs to // happen before we do anything with the image cache, as version // isn't updated through the cache - const int32_t version = (newversion != -1) ? newversion : max_version + 1; - max_version = (newversion != -1) ? MAX(max_version, newversion) : max_version + 1; + const int32_t version = (newversion != -1) ? newversion : safe_new_version; + max_version = (newversion != -1) ? MAX(max_version, newversion) : safe_new_version; DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), "UPDATE main.images SET version=?1 WHERE id = ?2", @@ -1421,6 +1478,8 @@ // also clear all thumbnails in mipmap_cache. dt_mipmap_cache_remove(darktable.mipmap_cache, imgid); + + DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_IMAGE_REMOVED, imgid, 0); } gboolean dt_image_altered(const dt_imgid_t imgid) @@ -1613,7 +1672,7 @@ static uint32_t _image_import_internal(const int32_t film_id, const char *filename, - const gboolean override_ignore_jpegs, + const gboolean override_ignore_nonraws, const gboolean lua_locking, const gboolean raise_signals) { @@ -1633,8 +1692,15 @@ return 0; } char *ext = g_ascii_strdown(cc + 1, -1); - if(override_ignore_jpegs == FALSE && (!strcmp(ext, "jpg") || !strcmp(ext, "jpeg")) - && dt_conf_get_bool("ui_last/import_ignore_jpegs")) + // If this function is called with argument to obey "ignore non-raws" flag + // and this flag is set + // and the file has non-raw extension and is not a DNG file + // then quit without importing + if(override_ignore_nonraws == FALSE + && ext + && !dt_imageio_is_raw_by_extension(ext) + && g_ascii_strncasecmp(ext, "dng", sizeof("dng")) + && dt_conf_get_bool("ui_last/import_ignore_nonraws")) { g_free(normalized_filename); g_free(ext); @@ -1676,6 +1742,7 @@ return id; } + dt_set_backthumb_time(0.0); // also need to set the no-legacy bit, to make sure we get the right presets (new ones) uint32_t flags = dt_conf_get_int("ui_last/import_initial_rating"); flags |= DT_IMAGE_NO_LEGACY_PRESETS; @@ -1700,9 +1767,9 @@ // clang-format off DT_DEBUG_SQLITE3_PREPARE_V2 (dt_database_get(darktable.db), - "INSERT INTO main.images (id, film_id, filename, license, sha1sum, flags, version, " + "INSERT INTO main.images (id, film_id, filename, flags, version, " " max_version, history_end, position, import_timestamp)" - " SELECT NULL, ?1, ?2, '', '', ?3, 0, 0, 0," + " SELECT NULL, ?1, ?2, ?3, 0, 0, 0," " (IFNULL(MAX(position),0) & 0xFFFFFFFF00000000) + (1 << 32), ?4" " FROM images", -1, &stmt, NULL); @@ -1729,8 +1796,9 @@ *cc2 = '\0'; gchar *sql_pattern = g_strconcat(basename, ".%", NULL); dt_imgid_t group_id; - // in case we are not a jpg check if we need to change group representative - if(strcmp(ext, "jpg") != 0 && strcmp(ext, "jpeg") != 0) + // in case of a raw file - dng files are also accepted - + // we need to change group representative + if(dt_imageio_is_raw_by_extension(ext) || !strcmp(ext, "dng")) { sqlite3_stmt *stmt2; // clang-format off @@ -1746,17 +1814,17 @@ // if we have a group already if(sqlite3_step(stmt2) == SQLITE_ROW) { - int other_id = sqlite3_column_int(stmt2, 0); + dt_imgid_t other_id = sqlite3_column_int(stmt2, 0); dt_image_t *other_img = dt_image_cache_get(darktable.image_cache, other_id, 'w'); gchar *other_basename = g_strdup(other_img->filename); gchar *cc3 = other_basename + strlen(other_img->filename); for(; *cc3 != '.' && cc3 > other_basename; cc3--) ; ++cc3; - gchar *ext_lowercase = g_ascii_strdown(cc3, -1); - // if the group representative is a jpg, change group - // representative to this new imported image - if(!strcmp(ext_lowercase, "jpg") || !strcmp(ext_lowercase, "jpeg")) + gchar *other_ext = g_ascii_strdown(cc3, -1); + // if the group representative is neither a definite raw nor a dng, + // change group representative to this new imported image. + if(!(dt_imageio_is_raw_by_extension(other_ext) || !strcmp(other_ext, "dng"))) { other_img->group_id = id; dt_image_cache_write_release(darktable.image_cache, other_img, DT_IMAGE_CACHE_SAFE); @@ -1782,7 +1850,7 @@ DT_IMAGE_CACHE_RELAXED); group_id = other_id; } - g_free(ext_lowercase); + g_free(other_ext); g_free(other_basename); } else @@ -1826,7 +1894,8 @@ img->group_id = group_id; // read dttags and exif for database queries! - if(dt_exif_read(img, normalized_filename)) img->exif_inited = FALSE; + if(dt_exif_read(img, normalized_filename)) + img->exif_inited = FALSE; char dtfilename[PATH_MAX] = { 0 }; g_strlcpy(dtfilename, normalized_filename, sizeof(dtfilename)); // dt_image_path_append_version(id, dtfilename, sizeof(dtfilename)); @@ -1916,7 +1985,8 @@ // clang-format on DT_DEBUG_SQLITE3_BIND_TEXT(stmt, 1, dir, -1, SQLITE_STATIC); DT_DEBUG_SQLITE3_BIND_TEXT(stmt, 2, file, -1, SQLITE_STATIC); - if(sqlite3_step(stmt) == SQLITE_ROW) id=sqlite3_column_int(stmt, 0); + if(sqlite3_step(stmt) == SQLITE_ROW) + id=sqlite3_column_int(stmt, 0); sqlite3_finalize(stmt); g_free(dir); g_free(file); @@ -1934,25 +2004,26 @@ -1, &stmt, NULL); DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, film_id); DT_DEBUG_SQLITE3_BIND_TEXT(stmt, 2, filename, -1, SQLITE_TRANSIENT); - if(sqlite3_step(stmt) == SQLITE_ROW) id=sqlite3_column_int(stmt, 0); + if(sqlite3_step(stmt) == SQLITE_ROW) + id=sqlite3_column_int(stmt, 0); sqlite3_finalize(stmt); return id; } dt_imgid_t dt_image_import(const int32_t film_id, const char *filename, - const gboolean override_ignore_jpegs, + const gboolean override_ignore_nonraws, const gboolean raise_signals) { - return _image_import_internal(film_id, filename, override_ignore_jpegs, + return _image_import_internal(film_id, filename, override_ignore_nonraws, TRUE, raise_signals); } dt_imgid_t dt_image_import_lua(const int32_t film_id, const char *filename, - const gboolean override_ignore_jpegs) + const gboolean override_ignore_nonraws) { - return _image_import_internal(film_id, filename, override_ignore_jpegs, FALSE, TRUE); + return _image_import_internal(film_id, filename, override_ignore_nonraws, FALSE, TRUE); } void dt_image_init(dt_image_t *img) @@ -1968,6 +2039,8 @@ img->export_timestamp = 0; img->print_timestamp = 0; + dt_color_harmony_init(&img->color_harmony_guide); + img->legacy_flip.legacy = 0; img->legacy_flip.user_flip = 0; @@ -1989,7 +2062,6 @@ memset(img->camera_model, 0, sizeof(img->camera_model)); memset(img->camera_alias, 0, sizeof(img->camera_alias)); memset(img->camera_makermodel, 0, sizeof(img->camera_makermodel)); - memset(img->camera_legacy_makermodel, 0, sizeof(img->camera_legacy_makermodel)); memset(img->filename, 0, sizeof(img->filename)); g_strlcpy(img->filename, "(unknown)", sizeof(img->filename)); img->exif_crop = 1.0; @@ -2019,6 +2091,7 @@ img->usercrop[2] = img->usercrop[3] = 1; img->dng_gain_maps = NULL; img->exif_correction_type = CORRECTION_TYPE_NONE; + memset(&img->exif_correction_data, 0, sizeof(img->exif_correction_data)); img->cache_entry = 0; for(int k=0; k<4; k++) @@ -2153,7 +2226,7 @@ // would return wrong version! while(dup_list) { - const int id = GPOINTER_TO_INT(dup_list->data); + const dt_imgid_t id = GPOINTER_TO_INT(dup_list->data); dt_image_t *img = dt_image_cache_get(darktable.image_cache, id, 'w'); img->film_id = filmid; if(newname) g_strlcpy(img->filename, newname, DT_MAX_FILENAME_LEN); @@ -2324,19 +2397,19 @@ DT_DEBUG_SQLITE3_PREPARE_V2 (dt_database_get(darktable.db), "INSERT INTO main.images" - " (id, group_id, film_id, width, height, filename, maker, model, lens, exposure," + " (id, group_id, film_id, width, height, filename," + " maker_id, model_id, lens_id, exposure," " aperture, iso, focal_length, focus_distance, datetime_taken, flags," - " output_width, output_height, crop, raw_parameters, raw_denoise_threshold," - " raw_auto_bright_threshold, raw_black, raw_maximum," - " license, sha1sum, orientation, histogram, lightmap," + " output_width, output_height, crop, raw_parameters," + " raw_black, raw_maximum, orientation," " longitude, latitude, altitude, color_matrix, colorspace, version, max_version," " position, aspect_ratio, exposure_bias)" - " SELECT NULL, group_id, ?1 as film_id, width, height, ?2 as filename, maker, model, lens," + " SELECT NULL, group_id, ?1 as film_id, width, height, ?2 as filename," + " maker_id, model_id, lens_id," " exposure, aperture, iso, focal_length, focus_distance, datetime_taken," - " flags, width, height, crop, raw_parameters, raw_denoise_threshold," - " raw_auto_bright_threshold, raw_black, raw_maximum," - " license, sha1sum, orientation, histogram, lightmap," - " longitude, latitude, altitude, color_matrix, colorspace, -1, -1," + " flags, width, height, crop, raw_parameters, raw_black, raw_maximum," + " orientation, longitude, latitude, altitude," + " color_matrix, colorspace, -1, -1," " ?3, aspect_ratio, exposure_bias" " FROM main.images" " WHERE id = ?4", @@ -2707,6 +2780,14 @@ // xmp stuff // ******************************************************* +static gboolean _any_altered_data(const dt_imgid_t imgid) +{ + // either the image has been altered or some user's tag have + // been added. + return dt_image_altered(imgid) + || (dt_tag_count_attached(imgid, TRUE) > 0); +} + gboolean dt_image_write_sidecar_file(const dt_imgid_t imgid) { if(!dt_is_valid_imgid(imgid)) @@ -2735,7 +2816,7 @@ // the sidecar is written only if required if((xmp_mode == DT_WRITE_XMP_ALWAYS) - || ((xmp_mode == DT_WRITE_XMP_LAZY) && dt_image_altered(imgid))) + || ((xmp_mode == DT_WRITE_XMP_LAZY) && _any_altered_data(imgid))) { dt_image_path_append_version(imgid, filename, sizeof(filename)); g_strlcat(filename, ".xmp", sizeof(filename)); @@ -2771,9 +2852,9 @@ } } -void dt_image_synch_xmp(const int32_t selected) +void dt_image_synch_xmp(const dt_imgid_t selected) { - if(selected > 0) + if(dt_is_valid_imgid(selected)) dt_image_write_sidecar_file(selected); else { @@ -3054,6 +3135,109 @@ } } +static int32_t _image_get_set_camera_id(const char *table, + const char *name) +{ + sqlite3_stmt *stmt; + + char *query = g_strdup_printf("SELECT id" + " FROM main.%s" + " WHERE name = '%s'", + table, + name); + + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + query, -1, &stmt, NULL); + + int32_t id = -1; + + if(sqlite3_step(stmt) == SQLITE_ROW) + { + id = sqlite3_column_int(stmt, 0); + } + else + { + g_free(query); + query = g_strdup_printf("INSERT" + " INTO main.%s (name)" + " VALUES ('%s')", + table, + name); + + DT_DEBUG_SQLITE3_EXEC(dt_database_get(darktable.db), + query, NULL, NULL, NULL); + id = dt_database_last_insert_rowid(darktable.db); + } + + g_free(query); + sqlite3_finalize(stmt); + + return id; +} + +int32_t dt_image_get_camera_maker_id(const char *name) +{ + return _image_get_set_camera_id("makers", name); +} + +int32_t dt_image_get_camera_model_id(const char *name) +{ + return _image_get_set_camera_id("models", name); +} + +int32_t dt_image_get_camera_lens_id(const char *name) +{ + return _image_get_set_camera_id("lens", name); +} + +int32_t dt_image_get_camera_id(const char *maker, const char *model) +{ + sqlite3_stmt *stmt; + + char n_maker[1024] = { 0 }; + char n_model[1024] = { 0 }; + char n_alias[1024] = { 0 }; + + dt_imageio_lookup_makermodel(maker, model, + n_maker, sizeof(n_maker), + n_model, sizeof(n_model), + n_alias, sizeof(n_alias)); + + char *query = g_strdup_printf("SELECT id" + " FROM main.cameras" + " WHERE maker = '%s'" + " AND model = '%s'", + n_maker, n_model); + + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + query, -1, &stmt, NULL); + + int32_t id = -1; + + if(sqlite3_step(stmt) == SQLITE_ROW) + { + id = sqlite3_column_int(stmt, 0); + } + else + { + g_free(query); + query = g_strdup_printf("INSERT" + " INTO main.cameras (maker, model, alias)" + " VALUES ('%s', '%s', '%s')", + n_maker, n_model, + n_alias); + + DT_DEBUG_SQLITE3_EXEC(dt_database_get(darktable.db), + query, NULL, NULL, NULL); + id = dt_database_last_insert_rowid(darktable.db); + } + + g_free(query); + sqlite3_finalize(stmt); + + return id; +} + // clang-format off // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py // vim: shiftwidth=2 expandtab tabstop=2 cindent diff -Nru darktable-4.4.2/src/common/image.h darktable-4.6.1/src/common/image.h --- darktable-4.4.2/src/common/image.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/image.h 2024-02-16 17:31:09.000000000 +0000 @@ -22,6 +22,7 @@ #include "config.h" #endif +#include "common/color_harmony.h" #include "common/colorspaces.h" #include "common/dtpthread.h" #include "develop/format.h" @@ -152,7 +153,8 @@ CORRECTION_TYPE_NONE, CORRECTION_TYPE_SONY, CORRECTION_TYPE_FUJI, - CORRECTION_TYPE_DNG + CORRECTION_TYPE_DNG, + CORRECTION_TYPE_OLYMPUS } dt_image_correction_type_t; typedef union dt_image_correction_data_t @@ -175,6 +177,12 @@ gboolean has_warp; gboolean has_vignette; } dng; + struct { + gboolean has_dist; + float dist[4]; + gboolean has_ca; + float ca[6]; + } olympus; } dt_image_correction_data_t; typedef enum dt_image_loader_t @@ -207,22 +215,22 @@ } loaders_info[LOADER_COUNT] = { { N_("unknown"), '.'}, // EMPTY_FIELD - { N_("tiff"), 't'}, - { N_("png"), 'p'}, - { N_("j2k"), 'J'}, - { N_("jpeg"), 'j'}, - { N_("exr"), 'e'}, - { N_("rgbe"), 'R'}, - { N_("pfm"), 'P'}, + { N_("TIFF"), 't'}, + { N_("PNG"), 'p'}, + { N_("JPEG 2000"), 'J'}, + { N_("JPEG"), 'j'}, + { N_("EXR"), 'e'}, + { N_("RGBE"), 'R'}, + { N_("PFM"), 'P'}, { N_("GraphicsMagick"), 'g'}, - { N_("rawspeed"), 'r'}, - { N_("netpnm"), 'n'}, - { N_("avif"), 'a'}, + { N_("RawSpeed"), 'r'}, + { N_("Netpbm"), 'n'}, + { N_("AVIF"), 'a'}, { N_("ImageMagick"), 'i'}, - { N_("heif"), 'h'}, - { N_("libraw"), 'l'}, - { N_("webp"), 'w'}, - { N_("jpeg xl"), 'L'}, + { N_("HEIF"), 'h'}, + { N_("LibRaw"), 'l'}, + { N_("WebP"), 'w'}, + { N_("JPEG XL"), 'L'}, { N_("QOI"), 'q'} }; @@ -259,7 +267,6 @@ char camera_model[64]; char camera_alias[64]; char camera_makermodel[128]; - char camera_legacy_makermodel[128]; gboolean camera_missing_sample; char filename[DT_MAX_FILENAME_LEN]; @@ -297,6 +304,9 @@ /* gps coords */ dt_image_geoloc_t geoloc; + /* color harmony guide */ + dt_color_harmony_guide_t color_harmony_guide; + /* needed in exposure iop for Deflicker */ uint16_t raw_black_level; uint16_t raw_black_level_separate[4]; @@ -338,23 +348,25 @@ void dt_image_init(dt_image_t *img); /** Refresh makermodel from the raw and exif values **/ void dt_image_refresh_makermodel(dt_image_t *img); -/** returns non-zero if the image contains low-dynamic range data. */ +/** returns TRUE if the image contains low-dynamic range data. */ gboolean dt_image_is_ldr(const dt_image_t *img); -/** returns non-zero if the image contains mosaic data. */ +/** returns TRUE if the image contains mosaic data. */ gboolean dt_image_is_raw(const dt_image_t *img); -/** returns non-zero if the image contains float data. */ +/** returns TRUE if the image contains float data. */ gboolean dt_image_is_hdr(const dt_image_t *img); /** set the monochrome flags if monochrome is TRUE and clear it otherwise */ void dt_image_set_monochrome_flag(const dt_imgid_t imgid, const gboolean monochrome); -/** returns non-zero if this image was taken using a monochrome camera */ +/** returns TRUE if this image was taken using a monochrome camera */ gboolean dt_image_is_monochrome(const dt_image_t *img); -/** returns non-zero if the image supports a color correction matrix */ +/** returns TRUE is image has a raw bayer sensor with RGB data */ +gboolean dt_image_is_bayerRGB(const dt_image_t *img); +/** returns TRUE if the image supports a color correction matrix */ gboolean dt_image_is_matrix_correction_supported(const dt_image_t *img); -/** returns non-zero if the image supports the rawprepare module */ +/** returns TRUE if the image supports the rawprepare module */ gboolean dt_image_is_rawprepare_supported(const dt_image_t *img); /** returns the bitmask containing info about monochrome images */ int dt_image_monochrome_flags(const dt_image_t *img); -/** returns true if the image has been tested to be monochrome and the +/** returns TRUE if the image has been tested to be monochrome and the * image wants monochrome workflow */ gboolean dt_image_use_monochrome_workflow(const dt_image_t *img); /** returns the image filename */ @@ -403,13 +415,13 @@ /** imports a new image from raw/etc file and adds it to the data base and image cache. Use from threads other than lua.*/ dt_imgid_t dt_image_import(int32_t film_id, const char *filename, - const gboolean override_ignore_jpegs, + const gboolean override_ignore_nonraws, const gboolean raise_signals); /** imports a new image from raw/etc file and adds it to the data base * and image cache. Use from lua thread.*/ dt_imgid_t dt_image_import_lua(const int32_t film_id, const char *filename, - const gboolean override_ignore_jpegs); + const gboolean override_ignore_nonraws); /** removes the given image from the database. */ void dt_image_remove(const dt_imgid_t imgid); /** duplicates the given image in the database with the duplicate @@ -496,6 +508,32 @@ } } +/** return the raw orientation from heif transforms */ +static inline dt_image_orientation_t dt_image_transformation_to_flip_bits(const int angle, const int flip) +{ + if(angle == 1) + { + if(flip == 1) return ORIENTATION_TRANSVERSE; + if(flip == 0) return ORIENTATION_TRANSPOSE; + return ORIENTATION_ROTATE_CCW_90_DEG; + } + if(angle == 2) + { + if(flip == 1) return ORIENTATION_FLIP_VERTICALLY; + if(flip == 0) return ORIENTATION_FLIP_HORIZONTALLY; + return ORIENTATION_ROTATE_180_DEG; + } + if(angle == 3) + { + if(flip == 1) return ORIENTATION_TRANSPOSE; + if(flip == 0) return ORIENTATION_TRANSVERSE; + return ORIENTATION_ROTATE_CW_90_DEG; + } + if(flip == 1) return ORIENTATION_FLIP_HORIZONTALLY; + if(flip == 0) return ORIENTATION_FLIP_VERTICALLY; + return ORIENTATION_NONE; +} + /** physically move image with imgid and its duplicates to the film roll * given by filmid. returns -1 on error, 0 on success. */ int32_t dt_image_move(const dt_imgid_t imgid, const int32_t filmid); @@ -554,6 +592,13 @@ const gboolean logmsg); void dt_image_check_camera_missing_sample(const struct dt_image_t *img); +/** insert the new maker/model/lens if it does not exists. + returns the corresponding id for the maker/model/lens */ +int32_t dt_image_get_camera_maker_id(const char *name); +int32_t dt_image_get_camera_model_id(const char *name); +int32_t dt_image_get_camera_lens_id(const char *name); +int32_t dt_image_get_camera_id(const char *maker, const char *model); + #ifdef __cplusplus } // extern "C" #endif /* __cplusplus */ diff -Nru darktable-4.4.2/src/common/image_cache.c darktable-4.6.1/src/common/image_cache.c --- darktable-4.4.2/src/common/image_cache.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/image_cache.c 2024-02-16 17:31:09.000000000 +0000 @@ -41,15 +41,20 @@ // clang-format off DT_DEBUG_SQLITE3_PREPARE_V2( dt_database_get(darktable.db), - "SELECT id, group_id, film_id, width, height, filename, maker, model," - " lens, exposure, aperture, iso, focal_length, datetime_taken, flags," + "SELECT mi.id, group_id, film_id, width, height, filename," + " mk.name, md.name, ln.name," + " exposure, aperture, iso, focal_length, datetime_taken, flags," " crop, orientation, focus_distance, raw_parameters," " longitude, latitude, altitude, color_matrix, colorspace, version," " raw_black, raw_maximum, aspect_ratio, exposure_bias," " import_timestamp, change_timestamp, export_timestamp, print_timestamp," - " output_width, output_height" - " FROM main.images" - " WHERE id = ?1", + " output_width, output_height, cm.maker, cm.model, cm.alias" + " FROM main.images AS mi" + " LEFT JOIN main.cameras AS cm ON cm.id = mi.camera_id" + " LEFT JOIN main.makers AS mk ON mk.id = mi.maker_id" + " LEFT JOIN main.models AS md ON md.id = mi.model_id" + " LEFT JOIN main.lens AS ln ON ln.id = mi.lens_id" + " WHERE mi.id = ?1", -1, &stmt, NULL); // clang-format on DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, entry->key); @@ -126,6 +131,17 @@ img->final_width = sqlite3_column_int(stmt, 33); img->final_height = sqlite3_column_int(stmt, 34); + // normalized camera names + str = (char *)sqlite3_column_text(stmt, 35); + if(str) g_strlcpy(img->camera_maker, str, sizeof(img->camera_maker)); + char *str2 = (char *)sqlite3_column_text(stmt, 36); + if(str2) g_strlcpy(img->camera_model, str2, sizeof(img->camera_model)); + g_snprintf(img->camera_makermodel, sizeof(img->camera_makermodel), "%s %s", str, str2); + str = (char *)sqlite3_column_text(stmt, 37); + if(str) g_strlcpy(img->camera_alias, str, sizeof(img->camera_alias)); + + dt_color_harmony_get(entry->key, &img->color_harmony_guide); + // buffer size? colorspace? if(img->flags & DT_IMAGE_LDR) { @@ -167,7 +183,6 @@ img->cache_entry = entry; // init backref // could downgrade lock write->read on entry->lock if we were using // concurrencykit.. - dt_image_refresh_makermodel(img); } void dt_image_cache_deallocate(void *data, dt_cache_entry_t *entry) @@ -261,15 +276,21 @@ else img->aspect_ratio = (float )img->height / (float )img->width; } - if(!dt_is_valid_imgid(img->id)) return; + if(!dt_is_valid_imgid(img->id)) + { + dt_print(DT_DEBUG_ALWAYS, + "[image_cache_write_release] FATAL invalid image id %d\n", img->id); + return; + } sqlite3_stmt *stmt; // clang-format off DT_DEBUG_SQLITE3_PREPARE_V2 (dt_database_get(darktable.db), "UPDATE main.images" - " SET width = ?1, height = ?2, filename = ?3, maker = ?4, model = ?5," - " lens = ?6, exposure = ?7, aperture = ?8, iso = ?9, focal_length = ?10," + " SET width = ?1, height = ?2, filename = ?3," + " maker_id = ?4, model_id = ?5, lens_id = ?6, camera_id = ?35," + " exposure = ?7, aperture = ?8, iso = ?9, focal_length = ?10," " focus_distance = ?11, film_id = ?12, datetime_taken = ?13, flags = ?14," " crop = ?15, orientation = ?16, raw_parameters = ?17, group_id = ?18," " longitude = ?19, latitude = ?20, altitude = ?21, color_matrix = ?22," @@ -279,13 +300,26 @@ " print_timestamp = ?31, output_width = ?32, output_height = ?33" " WHERE id = ?34", -1, &stmt, NULL); + + const int32_t maker_id = dt_image_get_camera_maker_id(img->exif_maker); + const int32_t model_id = dt_image_get_camera_model_id(img->exif_model); + const int32_t lens_id = dt_image_get_camera_lens_id(img->exif_lens); + + // also make sure we update the camera_id and possibly the associated data + // in cameras table. + + const int32_t camera_id = dt_image_get_camera_id(img->exif_maker, img->exif_model); + + dt_color_harmony_set(img->id, img->color_harmony_guide); + // clang-format on DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, img->width); DT_DEBUG_SQLITE3_BIND_INT(stmt, 2, img->height); DT_DEBUG_SQLITE3_BIND_TEXT(stmt, 3, img->filename, -1, SQLITE_STATIC); - DT_DEBUG_SQLITE3_BIND_TEXT(stmt, 4, img->exif_maker, -1, SQLITE_STATIC); - DT_DEBUG_SQLITE3_BIND_TEXT(stmt, 5, img->exif_model, -1, SQLITE_STATIC); - DT_DEBUG_SQLITE3_BIND_TEXT(stmt, 6, img->exif_lens, -1, SQLITE_STATIC); + DT_DEBUG_SQLITE3_BIND_INT(stmt, 4, maker_id); + DT_DEBUG_SQLITE3_BIND_INT(stmt, 5, model_id); + DT_DEBUG_SQLITE3_BIND_INT(stmt, 6, lens_id); + DT_DEBUG_SQLITE3_BIND_INT(stmt, 35, camera_id); DT_DEBUG_SQLITE3_BIND_DOUBLE(stmt, 7, img->exif_exposure); DT_DEBUG_SQLITE3_BIND_DOUBLE(stmt, 8, img->exif_aperture); DT_DEBUG_SQLITE3_BIND_DOUBLE(stmt, 9, img->exif_iso); @@ -321,10 +355,14 @@ DT_DEBUG_SQLITE3_BIND_INT(stmt, 32, img->final_width); DT_DEBUG_SQLITE3_BIND_INT(stmt, 33, img->final_height); DT_DEBUG_SQLITE3_BIND_INT(stmt, 34, img->id); + const int rc = sqlite3_step(stmt); if(rc != SQLITE_DONE) dt_print(DT_DEBUG_ALWAYS, - "[image_cache_write_release] sqlite3 error %d\n", rc); + "[image_cache_write_release] sqlite3 error %d (%s) for imgid %d\n", + rc, + sqlite3_errmsg(dt_database_get(darktable.db)), + img->id); sqlite3_finalize(stmt); // TODO: make this work in relaxed mode, too. diff -Nru darktable-4.4.2/src/common/image_cache.h darktable-4.6.1/src/common/image_cache.h --- darktable-4.4.2/src/common/image_cache.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/image_cache.h 2024-02-16 17:31:09.000000000 +0000 @@ -53,29 +53,43 @@ // cachelines to free up space if necessary. // if an entry is swapped out like this in the background, this is the latest // point where sql and xmp can be synched (unsafe setting). -dt_image_t *dt_image_cache_get(dt_image_cache_t *cache, const dt_imgid_t imgid, char mode); +dt_image_t *dt_image_cache_get(dt_image_cache_t *cache, + const dt_imgid_t imgid, + const char mode); // same as read_get, but doesn't block and returns NULL if the image // is currently unavailable. -dt_image_t *dt_image_cache_testget(dt_image_cache_t *cache, const dt_imgid_t imgid, char mode); +dt_image_t *dt_image_cache_testget(dt_image_cache_t *cache, + const dt_imgid_t imgid, + const char mode); // drops the read lock on an image struct -void dt_image_cache_read_release(dt_image_cache_t *cache, const dt_image_t *img); +void dt_image_cache_read_release(dt_image_cache_t *cache, + const dt_image_t *img); // drops the write privileges on an image struct. // this triggers a write-through to sql, and if the setting // is present, also to xmp sidecar files (safe setting). -void dt_image_cache_write_release(dt_image_cache_t *cache, dt_image_t *img, dt_image_cache_write_mode_t mode); +void dt_image_cache_write_release(dt_image_cache_t *cache, + dt_image_t *img, + const dt_image_cache_write_mode_t mode); // remove the image from the cache -void dt_image_cache_remove(dt_image_cache_t *cache, const dt_imgid_t imgid); +void dt_image_cache_remove(dt_image_cache_t *cache, + const dt_imgid_t imgid); // register timestamps in cache -void dt_image_cache_set_change_timestamp(dt_image_cache_t *cache, const dt_imgid_t imgid); -void dt_image_cache_set_change_timestamp_from_image(dt_image_cache_t *cache, const dt_imgid_t imgid, const dt_imgid_t sourceid); -void dt_image_cache_unset_change_timestamp(dt_image_cache_t *cache, const dt_imgid_t imgid); -void dt_image_cache_set_export_timestamp(dt_image_cache_t *cache, const dt_imgid_t imgid); -void dt_image_cache_set_print_timestamp(dt_image_cache_t *cache, const dt_imgid_t imgid); +void dt_image_cache_set_change_timestamp(dt_image_cache_t *cache, + const dt_imgid_t imgid); +void dt_image_cache_set_change_timestamp_from_image(dt_image_cache_t *cache, + const dt_imgid_t imgid, + const dt_imgid_t sourceid); +void dt_image_cache_unset_change_timestamp(dt_image_cache_t *cache, + const dt_imgid_t imgid); +void dt_image_cache_set_export_timestamp(dt_image_cache_t *cache, + const dt_imgid_t imgid); +void dt_image_cache_set_print_timestamp(dt_image_cache_t *cache, + const dt_imgid_t imgid); #ifdef __cplusplus } // extern "C" @@ -86,4 +100,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/common/imagebuf.c darktable-4.6.1/src/common/imagebuf.c --- darktable-4.4.2/src/common/imagebuf.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/imagebuf.c 2024-02-16 17:31:09.000000000 +0000 @@ -182,58 +182,66 @@ // Copy an image buffer, specifying the regions of interest. The // output RoI may be larger than the input RoI, in which case the -// result is optionally padded with zeros. If the output RoI is +// result is padded with zeros. If the output RoI is // smaller than the input RoI, only a portion of the input buffer will // be copied. void dt_iop_copy_image_roi(float *const __restrict__ out, const float *const __restrict__ in, const size_t ch, const dt_iop_roi_t *const __restrict__ roi_in, - const dt_iop_roi_t *const __restrict__ roi_out, - const int zero_pad) + const dt_iop_roi_t *const __restrict__ roi_out) { if(roi_in->width == roi_out->width && roi_in->height == roi_out->height) { // fast path, just copy the entire contents of the buffer dt_iop_image_copy_by_size(out, in, roi_out->width, roi_out->height, ch); + return; } - else if(roi_in->width <= roi_out->width - && roi_in->height <= roi_out->height) - { - // output needs padding - dt_print(DT_DEBUG_ALWAYS,"copy_image_roi with larger output not yet implemented\n"); - //TODO - } - else if(roi_in->width >= roi_out->width - && roi_in->height >= roi_out->height) - { - const int dy = roi_out->y - roi_in->y; - const int dx = roi_out->x - roi_in->x; - const gboolean inside = (roi_in->width - dx >= roi_out->width) - && (roi_in->height - dy >= roi_out->height); - if(!inside) - dt_print(DT_DEBUG_ALWAYS,"copy_image_roi roi_in does not include roi_out area\n"); + const int dy = roi_out->y - roi_in->y; + const int dx = roi_out->x - roi_in->x; - const size_t width = sizeof(float) * roi_out->width * ch; + // we may copy data per line if data for roi_out are fully available in roi_in + if((roi_in->width - dx >= roi_out->width) + && (roi_in->height - dy >= roi_out->height)) + { + const size_t lwidth = sizeof(float) * roi_out->width * ch; #ifdef _OPENMP #pragma omp parallel for default(none) \ - dt_omp_firstprivate(ch, in, out, roi_in, roi_out, dx, dy, width) \ + dt_omp_firstprivate(ch, in, out, roi_in, roi_out, dx, dy, lwidth) \ schedule(static) #endif for(size_t row = 0; row < roi_out->height; row++) { float *o = out + (size_t)(ch * row * roi_out->width); const float *i = in + (size_t)(ch * (roi_in->width * (row + dy) + dx)); - memcpy(o, i, width); + memcpy(o, i, lwidth); } + return; } - else + + // the RoI are inconsistant so we do a copy per location and fill by zero if + // not available in RoI-in +#ifdef _OPENMP +#pragma omp parallel for default(none) \ + dt_omp_firstprivate(out, in, roi_in, roi_out, dx, dy, ch) \ + schedule(static) collapse(2) +#endif + for(int row = 0; row < roi_out->height; row++) { - // inconsistent RoIs!! - dt_print(DT_DEBUG_ALWAYS,"copy_image_roi called with inconsistent RoI!\n"); - //TODO + for(int col = 0; col < roi_out->width; col++) + { + const int irow = row + dy; + const int icol = col + dx; + const size_t ox = (size_t)ch * (row * roi_out->width + col); + const size_t ix = (size_t)ch * (irow * roi_in->width + icol); + const gboolean avail = irow >= 0 && irow < roi_in->height + && icol >= 0 && icol < roi_in->width; + + for(int c = 0; c < ch; c++) + out[ox+c] = avail ? in[ix+c] : 0.0f; + } } } diff -Nru darktable-4.4.2/src/common/imagebuf.h darktable-4.6.1/src/common/imagebuf.h --- darktable-4.4.2/src/common/imagebuf.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/imagebuf.h 2024-02-16 17:31:09.000000000 +0000 @@ -107,15 +107,14 @@ // Copy an image buffer, specifying the region of interest. The // output RoI may be larger than the input RoI, in which case the -// result is optionally padded with zeros. If the output RoI is -// smaller than the input RoI, only a portion of the input buffer will -// be copied. +// result is padded with zeros. +// If the output RoI is smaller than the input RoI, only a portion of +// the input buffer will be copied. void dt_iop_copy_image_roi(float *const __restrict__ out, const float *const __restrict__ in, const size_t ch, const dt_iop_roi_t *const __restrict__ roi_in, - const dt_iop_roi_t *const __restrict__ roi_out, - const int zero_pad); + const dt_iop_roi_t *const __restrict__ roi_out); // Copy one image buffer to another, multiplying each element by the // specified scale factor diff -Nru darktable-4.4.2/src/common/import_session.c darktable-4.6.1/src/common/import_session.c --- darktable-4.4.2/src/common/import_session.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/import_session.c 2024-02-16 17:31:09.000000000 +0000 @@ -194,10 +194,10 @@ void dt_import_session_import(struct dt_import_session_t *self) { - const int32_t id = dt_image_import(self->film->id, self->current_filename, TRUE, TRUE); - if(id) + const dt_imgid_t imgid = dt_image_import(self->film->id, self->current_filename, TRUE, TRUE); + if(dt_is_valid_imgid(imgid)) { - DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_VIEWMANAGER_THUMBTABLE_ACTIVATE, id); + DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_VIEWMANAGER_THUMBTABLE_ACTIVATE, imgid); dt_control_queue_redraw(); } } diff -Nru darktable-4.4.2/src/common/interpolation.c darktable-4.6.1/src/common/interpolation.c --- darktable-4.4.2/src/common/interpolation.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/interpolation.c 2024-02-16 17:31:09.000000000 +0000 @@ -91,10 +91,10 @@ * @param idx index to filter * @param length length of line */ -static inline ssize_t clip(ssize_t i, - const ssize_t min, - const ssize_t max, - enum border_mode mode) +static inline ssize_t _clip(ssize_t i, + const ssize_t min, + const ssize_t max, + enum border_mode mode) { switch(mode) { @@ -147,12 +147,12 @@ return i; } -static inline void prepare_tap_boundaries(int *tap_first, - int *tap_last, - const enum border_mode mode, - const int filterwidth, - const int t, - const int max) +static inline void _prepare_tap_boundaries(int *tap_first, + int *tap_last, + const enum border_mode mode, + const int filterwidth, + const int t, + const int max) { /* Check lower bound pixel index and skip as many pixels as necessary to * fall into range */ @@ -170,21 +170,6 @@ } } -/** Make sure an aligned chunk will not misalign its following chunk - * proposing an adapted length - * - * @param l Length required for current chunk - * @param align Required alignment for next chunk - * - * @return Required length for keeping alignment ok if chaining data chunks - */ -static inline size_t increase_for_alignment(const size_t l, - size_t align) -{ - align -= 1; - return (l + align) & (~align); -} - /* -------------------------------------------------------------------------- * Interpolation kernels * ------------------------------------------------------------------------*/ @@ -193,11 +178,11 @@ * Bilinear interpolation * ------------------------------------------------------------------------*/ -static float maketaps_bilinear(float *taps, - const size_t num_taps, - const float width, - const float first_tap, - const float interval) +static float _maketaps_bilinear(float *taps, + const size_t num_taps, + const float width, + const float first_tap, + const float interval) { static const dt_aligned_pixel_t bootstrap = { 0.0f, 1.0f, 2.0f, 3.0f }; dt_aligned_pixel_t iter; @@ -225,11 +210,11 @@ * Bicubic interpolation * ------------------------------------------------------------------------*/ -static float maketaps_bicubic(float *taps, - const size_t num_taps, - const float width, - const float first_tap, - const float interval) +static float _maketaps_bicubic(float *taps, + const size_t num_taps, + const float width, + const float first_tap, + const float interval) { static const dt_aligned_pixel_t bootstrap = { 0.0f, 1.0f, 2.0f, 3.0f }; static const dt_aligned_pixel_t half = { .5f, .5f, .5f, .5f }; @@ -337,11 +322,11 @@ * the range -width < t < width so we can additionally avoid the * range check. */ -static float maketaps_lanczos(float *taps, - const size_t num_taps, - const float width, - const float first_tap, - const float interval) +static float _maketaps_lanczos(float *taps, + const size_t num_taps, + const float width, + const float first_tap, + const float interval) { static const dt_aligned_pixel_t bootstrap = { 0.0f, 1.0f, 2.0f, 3.0f }; dt_aligned_pixel_t iter; @@ -424,22 +409,22 @@ {.id = DT_INTERPOLATION_BILINEAR, .name = "bilinear", .width = 1, - .maketaps = &maketaps_bilinear, + .maketaps = &_maketaps_bilinear, }, {.id = DT_INTERPOLATION_BICUBIC, .name = "bicubic", .width = 2, - .maketaps = &maketaps_bicubic, + .maketaps = &_maketaps_bicubic, }, {.id = DT_INTERPOLATION_LANCZOS2, .name = "lanczos2", .width = 2, - .maketaps = &maketaps_lanczos, + .maketaps = &_maketaps_lanczos, }, {.id = DT_INTERPOLATION_LANCZOS3, .name = "lanczos3", .width = 3, - .maketaps = &maketaps_lanczos, + .maketaps = &_maketaps_lanczos, }, }; @@ -447,10 +432,10 @@ * Kernel utility methods * ------------------------------------------------------------------------*/ -static inline float compute_upsampling_kernel(const struct dt_interpolation *itor, - float *kernel, - int *first, - float t) +static inline float _compute_upsampling_kernel(const struct dt_interpolation *itor, + float *kernel, + int *first, + float t) { // find first pixel contributing to the filter's kernel. We need // floorf() because a simple cast to int truncates toward zero, @@ -482,13 +467,13 @@ * @param first [out] index of the first sample for which the kernel is to be applied * @param outoinratio [in] "out samples" over "in samples" ratio * @param xout [in] Output coordinate */ -static inline void compute_downsampling_kernel(const struct dt_interpolation *itor, - int *taps, - int *first, - float *kernel, - float *norm, - const float outoinratio, - const int xout) +static inline void _compute_downsampling_kernel(const struct dt_interpolation *itor, + int *taps, + int *first, + float *kernel, + float *norm, + const float outoinratio, + const int xout) { // Keep this at hand const float w = (float)itor->width; @@ -534,12 +519,12 @@ { assert(itor->width < (MAX_HALF_FILTER_WIDTH + 1)); - float kernelh[MAX_KERNEL_REQ] __attribute__((aligned(SSE_ALIGNMENT))); - float kernelv[MAX_KERNEL_REQ] __attribute__((aligned(SSE_ALIGNMENT))); + float DT_ALIGNED_ARRAY kernelh[MAX_KERNEL_REQ]; + float DT_ALIGNED_ARRAY kernelv[MAX_KERNEL_REQ]; // Compute both horizontal and vertical kernels - float normh = compute_upsampling_kernel(itor, kernelh, NULL, x); - float normv = compute_upsampling_kernel(itor, kernelv, NULL, y); + float normh = _compute_upsampling_kernel(itor, kernelh, NULL, x); + float normv = _compute_upsampling_kernel(itor, kernelv, NULL, y); int ix = (int)x; int iy = (int)y; @@ -570,7 +555,7 @@ s += kernelv[i] * h; in += linestride; } - r = s / (normh * normv); + r = fmaxf(0.0f, s / (normh * normv)); } else if(ix >= 0 && iy >= 0 && ix < width && iy < height) { @@ -585,30 +570,30 @@ int xtap_first; int xtap_last; - prepare_tap_boundaries(&xtap_first, &xtap_last, + _prepare_tap_boundaries(&xtap_first, &xtap_last, bordermode, 2 * itor->width, ix, width); int ytap_first; int ytap_last; - prepare_tap_boundaries(&ytap_first, &ytap_last, + _prepare_tap_boundaries(&ytap_first, &ytap_last, bordermode, 2 * itor->width, iy, height); // Apply the kernel float s = 0.f; for(ssize_t i = ytap_first; i < ytap_last; i++) { - const ssize_t clip_y = clip(iy + i, 0, height - 1, bordermode); + const ssize_t clip_y = _clip(iy + i, 0, height - 1, bordermode); float h = 0.0f; for(ssize_t j = xtap_first; j < xtap_last; j++) { - const ssize_t clip_x = clip(ix + j, 0, width - 1, bordermode); + const ssize_t clip_x = _clip(ix + j, 0, width - 1, bordermode); const float *ipixel = in + clip_y * linestride + clip_x * samplestride; h += kernelh[j] * ipixel[0]; } s += kernelv[i] * h; } - r = s / (normh * normv); + r = fmaxf(0.0f, s / (normh * normv)); } else { @@ -622,24 +607,24 @@ * Pixel interpolation function (see usage in iop/lens.c and iop/clipping.c) * ------------------------------------------------------------------------*/ -static void dt_interpolation_compute_pixel4c_plain(const struct dt_interpolation *itor, - const float *in, - float *out, - const float x, - const float y, - const int width, - const int height, - const size_t linestride) +void dt_interpolation_compute_pixel4c(const struct dt_interpolation *itor, + const float *in, + float *out, + const float x, + const float y, + const int width, + const int height, + const int linestride) { assert(itor->width < (MAX_HALF_FILTER_WIDTH + 1)); // Quite a bit of space for kernels - float kernelh[MAX_KERNEL_REQ] __attribute__((aligned(SSE_ALIGNMENT))); - float kernelv[MAX_KERNEL_REQ] __attribute__((aligned(SSE_ALIGNMENT))); + float DT_ALIGNED_ARRAY kernelh[MAX_KERNEL_REQ]; + float DT_ALIGNED_ARRAY kernelv[MAX_KERNEL_REQ]; // Compute both horizontal and vertical kernels - float normh = compute_upsampling_kernel(itor, kernelh, NULL, x); - float normv = compute_upsampling_kernel(itor, kernelv, NULL, y); + float normh = _compute_upsampling_kernel(itor, kernelh, NULL, x); + float normv = _compute_upsampling_kernel(itor, kernelv, NULL, y); // Precompute the inverse of the filter norm for later use const float oonorm = (1.f / (normh * normv)); @@ -651,8 +636,10 @@ int ix = (int)x; int iy = (int)y; - if(ix >= (itor->width - 1) && iy >= (itor->width - 1) && ix < (width - itor->width) - && iy < (height - itor->width)) + if(ix >= (itor->width - 1) + && iy >= (itor->width - 1) + && ix < (width - itor->width) + && iy < (height - itor->width)) { // Inside image boundary case @@ -681,7 +668,7 @@ } for_each_channel(c,aligned(out)) - out[c] = oonorm * pixel[c]; + out[c] = fmaxf(0.0f, oonorm * pixel[c]); } else if(ix >= 0 && iy >= 0 && ix < width && iy < height) { @@ -696,24 +683,24 @@ int xtap_first; int xtap_last; - prepare_tap_boundaries(&xtap_first, &xtap_last, + _prepare_tap_boundaries(&xtap_first, &xtap_last, bordermode, 2 * itor->width, ix, width); int ytap_first; int ytap_last; - prepare_tap_boundaries(&ytap_first, &ytap_last, + _prepare_tap_boundaries(&ytap_first, &ytap_last, bordermode, 2 * itor->width, iy, height); // Apply the kernel dt_aligned_pixel_t pixel = { 0.0f, 0.0f, 0.0f, 0.0f }; for(ssize_t i = ytap_first; i < ytap_last; i++) { - const ssize_t clip_y = clip(iy + i, 0, height - 1, bordermode); + const ssize_t clip_y = _clip(iy + i, 0, height - 1, bordermode); dt_aligned_pixel_t h = { 0.0f, 0.0f, 0.0f, 0.0f }; const float *ipixel = in + clip_y * linestride; for(ssize_t j = xtap_first; j < xtap_last; j++) { - const ssize_t clip_x = clip(ix + j, 0, width - 1, bordermode); + const ssize_t clip_x = _clip(ix + j, 0, width - 1, bordermode); dt_aligned_pixel_t inpx; copy_pixel(inpx, ipixel + 4 * clip_x); const float kern = kernelh[j]; @@ -725,133 +712,16 @@ } for_each_channel(c,aligned(out)) - out[c] = oonorm * pixel[c]; + out[c] = fmaxf(0.0f, oonorm * pixel[c]); } else { + // data for *out has no valid *in location so just set to zero. for_each_channel(c,aligned(out)) out[c] = 0.0f; } } -#if defined(__SSE2__) -static void dt_interpolation_compute_pixel4c_sse(const struct dt_interpolation *itor, - const float *in, - float *out, - const float x, - const float y, - const int width, - const int height, - const int linestride) -{ - assert(itor->width < (MAX_HALF_FILTER_WIDTH + 1)); - - // Quite a bit of space for kernels - float kernelh[MAX_KERNEL_REQ] __attribute__((aligned(SSE_ALIGNMENT))); - float kernelv[MAX_KERNEL_REQ] __attribute__((aligned(SSE_ALIGNMENT))); - - // Compute both horizontal and vertical kernels - float normh = compute_upsampling_kernel(itor, kernelh, NULL, x); - float normv = compute_upsampling_kernel(itor, kernelv, NULL, y); - - // Precompute the inverse of the filter norm for later use - const __m128 oonorm = _mm_set_ps1(1.f / (normh * normv)); - - /* Now 2 cases, the pixel + filter width goes outside the image - * in that case we have to use index clipping to keep all reads - * in the input image (slow path) or we are sure it won't fall - * outside and can do more simple code */ - int ix = (int)x; - int iy = (int)y; - - if(ix >= (itor->width - 1) && iy >= (itor->width - 1) && ix < (width - itor->width) - && iy < (height - itor->width)) - { - // Inside image boundary case - - // Go to top left pixel - in = (float *)in + linestride * iy + ix * 4; - in = in - (itor->width - 1) * (4 + linestride); - - // Apply the kernel - __m128 pixel = _mm_setzero_ps(); - for(int i = 0; i < 2 * itor->width; i++) - { - __m128 h = _mm_setzero_ps(); - for(int j = 0; j < 2 * itor->width; j++) - { - h = h + _mm_set1_ps(kernelh[j]) * *((__m128 *)&in[j * 4]); - } - pixel = pixel + _mm_set1_ps(kernelv[i]) * h; - in += linestride; - } - - *(__m128 *)out = pixel * oonorm; - } - else if(ix >= 0 && iy >= 0 && ix < width && iy < height) - { - // At least a valid coordinate - - // Point to the upper left pixel index wise - iy -= itor->width - 1; - ix -= itor->width - 1; - - static const enum border_mode bordermode = INTERPOLATION_BORDER_MODE; - assert(bordermode != BORDER_CLAMP); // XXX in clamp mode, norms would be wrong - - int xtap_first; - int xtap_last; - prepare_tap_boundaries(&xtap_first, &xtap_last, - bordermode, 2 * itor->width, ix, width); - - int ytap_first; - int ytap_last; - prepare_tap_boundaries(&ytap_first, &ytap_last, - bordermode, 2 * itor->width, iy, height); - - // Apply the kernel - __m128 pixel = _mm_setzero_ps(); - for(ssize_t i = ytap_first; i < ytap_last; i++) - { - ssize_t clip_y = clip(iy + i, 0, height - 1, bordermode); - __m128 h = _mm_setzero_ps(); - for(ssize_t j = xtap_first; j < xtap_last; j++) - { - const ssize_t clip_x = clip(ix + j, 0, width - 1, bordermode); - const float *ipixel = in + clip_y * linestride + clip_x * 4; - h = h + _mm_set1_ps(kernelh[j]) * *((__m128 *)ipixel); - } - pixel = pixel + _mm_set1_ps(kernelv[i]) * h; - } - - *(__m128 *)out = pixel * oonorm; - } - else - { - *(__m128 *)out = _mm_set_ps1(0.0f); - } -} -#endif - -void dt_interpolation_compute_pixel4c(const struct dt_interpolation *itor, - const float *in, - float *out, - const float x, - const float y, - const int width, - const int height, - const int linestride) -{ -#if defined(__SSE2__) - if(darktable.codepath.SSE2) - return dt_interpolation_compute_pixel4c_sse(itor, in, out, x, y, - width, height, linestride); - else -#endif - return dt_interpolation_compute_pixel4c_plain(itor, in, out, x, y, - width, height, linestride); -} - /* -------------------------------------------------------------------------- * Interpolation factory * ------------------------------------------------------------------------*/ @@ -964,18 +834,18 @@ * @param pmeta [out] Array of int triplets (length, kernel, index) telling where to * start for an arbitrary * out position meta[3*out] - * @return 0 for success, !0 for failure + * @return FALSE for success, TRUE for failure */ -static int prepare_resampling_plan(const struct dt_interpolation *itor, - const int in, - const int in_x0, - const int out, - const int out_x0, - const float scale, - int **plength, - float **pkernel, - int **pindex, - int **pmeta) +static gboolean _prepare_resampling_plan(const struct dt_interpolation *itor, + const int in, + const int in_x0, + const int out, + const int out_x0, + const float scale, + int **plength, + float **pkernel, + int **pindex, + int **pmeta) { // Safe return values *plength = NULL; @@ -989,7 +859,7 @@ if(scale == 1.f) { // No resampling required - return 0; + return FALSE; } // Compute common upsampling/downsampling memory requirements @@ -1008,20 +878,16 @@ int nlengths = out; const int nindex = maxtapsapixel * out; const int nkernel = maxtapsapixel * out; - const size_t lengthreq = increase_for_alignment(nlengths * sizeof(int), SSE_ALIGNMENT); - const size_t indexreq = increase_for_alignment(nindex * sizeof(int), SSE_ALIGNMENT); - const size_t kernelreq = increase_for_alignment(nkernel * sizeof(float), SSE_ALIGNMENT); - const size_t scratchreq = maxtapsapixel * sizeof(float) + 4 * sizeof(float); + const size_t lengthreq = dt_round_size(nlengths * sizeof(int), SSE_ALIGNMENT); + const size_t indexreq = dt_round_size(nindex * sizeof(int), SSE_ALIGNMENT); + const size_t kernelreq = dt_round_size(nkernel * sizeof(float), SSE_ALIGNMENT); + const size_t scratchreq = dt_round_size(maxtapsapixel * sizeof(float) + 4 * sizeof(float), SSE_ALIGNMENT); // NB: because sse versions compute four taps a time - const size_t metareq = pmeta ? 3 * sizeof(int) * out : 0; + const size_t metareq = dt_round_size(pmeta ? 4 * sizeof(int) * out : 0, SSE_ALIGNMENT); - void *blob = NULL; const size_t totalreq = kernelreq + lengthreq + indexreq + scratchreq + metareq; - blob = dt_alloc_align(SSE_ALIGNMENT, totalreq); - if(!blob) - { - return 1; - } + void *blob = dt_alloc_align(SSE_ALIGNMENT, totalreq); + if(!blob) return TRUE; int *lengths = (int *)blob; blob = (char *)blob + lengthreq; @@ -1061,13 +927,13 @@ // Compute the filter kernel at that position int first; - (void)compute_upsampling_kernel(itor, scratchpad, &first, fx); + (void)_compute_upsampling_kernel(itor, scratchpad, &first, fx); /* Check lower and higher bound pixel index and skip as many pixels as * necessary to fall into range */ int tap_first; int tap_last; - prepare_tap_boundaries(&tap_first, &tap_last, bordermode, 2 * itor->width, first, in); + _prepare_tap_boundaries(&tap_first, &tap_last, bordermode, 2 * itor->width, first, in); // Track number of taps that will be used lengths[lidx++] = tap_last - tap_first; @@ -1088,7 +954,7 @@ for(int tap = tap_first; tap < tap_last; tap++) { kernel[kidx++] = scratchpad[tap] * norm; - index[iidx++] = clip(first++, 0, in - 1, bordermode); + index[iidx++] = _clip(first++, 0, in - 1, bordermode); } } } @@ -1110,13 +976,13 @@ // Compute downsampling kernel centered on output position int taps; int first; - compute_downsampling_kernel(itor, &taps, &first, scratchpad, NULL, scale, out_x0 + x); + _compute_downsampling_kernel(itor, &taps, &first, scratchpad, NULL, scale, out_x0 + x); /* Check lower and higher bound pixel index and skip as many pixels as * necessary to fall into range */ int tap_first; int tap_last; - prepare_tap_boundaries(&tap_first, &tap_last, bordermode, taps, first, in); + _prepare_tap_boundaries(&tap_first, &tap_last, bordermode, taps, first, in); // Track number of taps that will be used lengths[lidx++] = tap_last - tap_first; @@ -1137,7 +1003,7 @@ for(int tap = tap_first; tap < tap_last; tap++) { kernel[kidx++] = scratchpad[tap] * norm; - index[iidx++] = clip(first++, 0, in - 1, bordermode); + index[iidx++] = _clip(first++, 0, in - 1, bordermode); } } } @@ -1151,16 +1017,16 @@ *pmeta = meta; } - return 0; + return FALSE; } -static void dt_interpolation_resample_plain(const struct dt_interpolation *itor, - float *out, - const dt_iop_roi_t *const roi_out, - const int32_t out_stride, - const float *const in, - const dt_iop_roi_t *const roi_in, - const int32_t in_stride) +static void _interpolation_resample_plain(const struct dt_interpolation *itor, + float *out, + const dt_iop_roi_t *const roi_out, + const int32_t out_stride, + const float *const in, + const dt_iop_roi_t *const roi_in, + const int32_t in_stride) { int *hindex = NULL; int *hlength = NULL; @@ -1172,7 +1038,6 @@ const int32_t in_stride_floats = in_stride / sizeof(float); const int32_t out_stride_floats = out_stride / sizeof(float); - int r; dt_print_pipe(DT_DEBUG_PIPE | DT_DEBUG_VERBOSE, "resample_plain", NULL, NULL, roi_in, roi_out, "%s\n",itor->name); @@ -1205,21 +1070,15 @@ // Generic non 1:1 case... much more complicated :D // Prepare resampling plans once and for all - r = prepare_resampling_plan(itor, roi_in->width, roi_in->x, + if(_prepare_resampling_plan(itor, roi_in->width, roi_in->x, roi_out->width, roi_out->x, roi_out->scale, - &hlength, &hkernel, &hindex, NULL); - if(r) - { + &hlength, &hkernel, &hindex, NULL)) goto exit; - } - r = prepare_resampling_plan(itor, roi_in->height, roi_in->y, + if(_prepare_resampling_plan(itor, roi_in->height, roi_in->y, roi_out->height, roi_out->y, roi_out->scale, - &vlength, &vkernel, &vindex, &vmeta); - if(r) - { + &vlength, &vkernel, &vindex, &vmeta)) goto exit; - } dt_get_perf_times(&mid); @@ -1330,8 +1189,8 @@ return; } - return dt_interpolation_resample_plain(itor, out, roi_out, out_stride, in, - roi_in, in_stride); + return _interpolation_resample_plain(itor, out, roi_out, out_stride, in, + roi_in, in_stride); } /** Applies resampling (re-scaling) on a specific region-of-interest @@ -1407,7 +1266,6 @@ float *vkernel = NULL; int *vmeta = NULL; - int r; cl_int err = DT_OPENCL_DEFAULT_ERROR; cl_mem dev_hindex = NULL; @@ -1441,24 +1299,18 @@ return CL_SUCCESS; } -// Generic non 1:1 case... much more complicated :D + // Generic non 1:1 case... much more complicated :D // Prepare resampling plans once and for all - r = prepare_resampling_plan(itor, roi_in->width, roi_in->x, + if(_prepare_resampling_plan(itor, roi_in->width, roi_in->x, roi_out->width, roi_out->x, roi_out->scale, - &hlength, &hkernel, &hindex, &hmeta); - if(r) - { + &hlength, &hkernel, &hindex, &hmeta)) goto error; - } - r = prepare_resampling_plan(itor, roi_in->height, roi_in->y, + if(_prepare_resampling_plan(itor, roi_in->height, roi_in->y, roi_out->height, roi_out->y, roi_out->scale, - &vlength, &vkernel, &vindex, &vmeta); - if(r) - { + &vlength, &vkernel, &vindex, &vmeta)) goto error; - } dt_get_perf_times(&mid); @@ -1503,7 +1355,7 @@ // the vertical workgroupsize; there is no point in continuing on // the GPU - that would be way too slow; let's delegate the stuff // to the CPU then. - err = DT_OPENCL_PROCESS_CL; + err = CL_INVALID_WORK_GROUP_SIZE; goto error; } @@ -1513,6 +1365,8 @@ // store resampling plan to device memory hindex, vindex, hkernel, // vkernel: (v|h)maxtaps might be too small, so store a bit more // than needed + err = CL_MEM_OBJECT_ALLOCATION_FAILURE; + dev_hindex = dt_opencl_copy_host_to_device_constant (devid, sizeof(int) * width * (hmaxtaps + 1), hindex); if(dev_hindex == NULL) goto error; @@ -1556,23 +1410,14 @@ CLLOCAL(hmaxtaps * sizeof(int)), CLLOCAL(vblocksize * 4 * sizeof(float))); err = dt_opencl_enqueue_kernel_2d_with_local(devid, kernel, sizes, local); - if(err != CL_SUCCESS) goto error; - - dt_opencl_release_mem_object(dev_hindex); - dt_opencl_release_mem_object(dev_hlength); - dt_opencl_release_mem_object(dev_hkernel); - dt_opencl_release_mem_object(dev_hmeta); - dt_opencl_release_mem_object(dev_vindex); - dt_opencl_release_mem_object(dev_vlength); - dt_opencl_release_mem_object(dev_vkernel); - dt_opencl_release_mem_object(dev_vmeta); - dt_free_align(hlength); - dt_free_align(vlength); - - _show_2_times(&start, &mid, "resample_cl"); - return CL_SUCCESS; error: + if(err == CL_SUCCESS) + _show_2_times(&start, &mid, "resample_cl"); + else if(err != CL_INVALID_WORK_GROUP_SIZE) + dt_print_pipe(DT_DEBUG_OPENCL, "interpolation_resample_cl", NULL, NULL, roi_in, roi_out, + "Error: %s\n", cl_errstr(err)); + dt_opencl_release_mem_object(dev_hindex); dt_opencl_release_mem_object(dev_hlength); dt_opencl_release_mem_object(dev_hkernel); @@ -1583,8 +1428,6 @@ dt_opencl_release_mem_object(dev_vmeta); dt_free_align(hlength); dt_free_align(vlength); - dt_print_pipe(DT_DEBUG_OPENCL, "interpolation_resample_cl", NULL, NULL, roi_in, roi_out, - "Error: %s\n", cl_errstr(err)); return err; } @@ -1610,13 +1453,13 @@ } #endif -static void dt_interpolation_resample_1c_plain(const struct dt_interpolation *itor, - float *out, - const dt_iop_roi_t *const roi_out, - const int32_t out_stride, - const float *const in, - const dt_iop_roi_t *const roi_in, - const int32_t in_stride) +static void _interpolation_resample_1c_plain(const struct dt_interpolation *itor, + float *out, + const dt_iop_roi_t *const roi_out, + const int32_t out_stride, + const float *const in, + const dt_iop_roi_t *const roi_in, + const int32_t in_stride) { int *hindex = NULL; int *hlength = NULL; @@ -1626,8 +1469,6 @@ float *vkernel = NULL; int *vmeta = NULL; - int r; - dt_print_pipe(DT_DEBUG_PIPE | DT_DEBUG_VERBOSE, "resample_1c_plain", NULL, NULL, roi_in, roi_out, "%s\n", itor->name); dt_times_t start = { 0 }, mid = { 0 }; @@ -1657,21 +1498,15 @@ // Generic non 1:1 case... much more complicated :D // Prepare resampling plans once and for all - r = prepare_resampling_plan(itor, roi_in->width, roi_in->x, + if(_prepare_resampling_plan(itor, roi_in->width, roi_in->x, roi_out->width, roi_out->x, roi_out->scale, - &hlength, &hkernel, &hindex, NULL); - if(r) - { + &hlength, &hkernel, &hindex, NULL)) goto exit; - } - r = prepare_resampling_plan(itor, roi_in->height, roi_in->y, + if(_prepare_resampling_plan(itor, roi_in->height, roi_in->y, roi_out->height, roi_out->y, roi_out->scale, - &vlength, &vkernel, &vindex, &vmeta); - if(r) - { + &vlength, &vkernel, &vindex, &vmeta)) goto exit; - } dt_get_perf_times(&mid); @@ -1766,8 +1601,8 @@ const dt_iop_roi_t *const roi_in, const int32_t in_stride) { - return dt_interpolation_resample_1c_plain(itor, out, roi_out, out_stride, - in, roi_in, in_stride); + return _interpolation_resample_1c_plain(itor, out, roi_out, out_stride, + in, roi_in, in_stride); } /** Applies resampling (re-scaling) on a specific region-of-interest of an image. The input diff -Nru darktable-4.4.2/src/common/iop_order.c darktable-4.6.1/src/common/iop_order.c --- darktable-4.4.2/src/common/iop_order.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/iop_order.c 2024-02-16 17:31:09.000000000 +0000 @@ -116,6 +116,7 @@ { {27.5f }, "negadoctor", 0}, { {27.5f }, "blurs", 0}, { {27.5f }, "basicadj", 0}, + { {27.5f }, "primaries", 0}, { {28.0f }, "colorreconstruct", 0}, { {29.0f }, "colorchecker", 0}, { {30.0f }, "defringe", 0}, @@ -214,6 +215,7 @@ // after scanner input color // profile { {28.5f }, "blurs", 0}, // physically-accurate blurs (motion and lens) + { {28.5f }, "primaries", 0}, { {29.0f }, "nlmeans", 0}, // signal processing (denoising) // -> needs a signal as scene-referred as possible (even if it works in Lab) { {30.0f }, "colorchecker", 0}, // calibration to "neutral" exchange colour space @@ -324,6 +326,7 @@ { { 28.5f }, "censorize", 0 }, { { 28.5f }, "negadoctor", 0 }, // Cineon film encoding comes after scanner input color profile { { 28.5f }, "blurs", 0 }, // physically-accurate blurs (motion and lens) + { { 28.5f }, "primaries", 0}, { { 29.0f }, "nlmeans", 0 }, // signal processing (denoising) // -> needs a signal as scene-referred as possible (even if it works in Lab) { { 30.0f }, "colorchecker", 0 }, // calibration to "neutral" exchange colour space @@ -907,6 +910,7 @@ _insert_before(iop_order_list, "nlmeans", "negadoctor"); _insert_before(iop_order_list, "negadoctor", "channelmixerrgb"); _insert_before(iop_order_list, "negadoctor", "censorize"); + _insert_before(iop_order_list, "negadoctor", "primaries"); _insert_before(iop_order_list, "rgbcurve", "colorbalancergb"); _insert_before(iop_order_list, "ashift", "cacorrectrgb"); _insert_before(iop_order_list, "graduatednd", "crop"); @@ -2176,9 +2180,9 @@ dev->iop_order_list = g_list_insert_before(dev->iop_order_list, place, entry); } -gboolean dt_ioppr_check_iop_order(dt_develop_t *dev, - const dt_imgid_t imgid, - const char *msg) +gboolean dt_ioppr_check_iop_order_ext(dt_develop_t *dev, + const dt_imgid_t imgid, + const char *msg) { gboolean iop_order_ok = TRUE; diff -Nru darktable-4.4.2/src/common/iop_order.h darktable-4.6.1/src/common/iop_order.h --- darktable-4.4.2/src/common/iop_order.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/iop_order.h 2024-02-16 17:31:09.000000000 +0000 @@ -288,9 +288,12 @@ struct dt_iop_module_t *module_prev); // for debug only -gboolean dt_ioppr_check_iop_order(struct dt_develop_t *dev, - const dt_imgid_t imgid, - const char *msg); +#define dt_ioppr_check_iop_order(...) \ + dt_debug_if(DT_DEBUG_IOPORDER, dt_ioppr_check_iop_order_ext, __VA_ARGS__) + +gboolean dt_ioppr_check_iop_order_ext(struct dt_develop_t *dev, + const dt_imgid_t imgid, + const char *msg); void dt_ioppr_print_module_iop_order(GList *iop_list, const char *msg); void dt_ioppr_print_history_iop_order(GList *history_list, diff -Nru darktable-4.4.2/src/common/iop_profile.c darktable-4.6.1/src/common/iop_profile.c --- darktable-4.4.2/src/common/iop_profile.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/iop_profile.c 2024-02-16 17:31:09.000000000 +0000 @@ -790,6 +790,8 @@ { transpose_3xSSE(profile_info->matrix_in, profile_info->matrix_in_transposed); transpose_3xSSE(profile_info->matrix_out, profile_info->matrix_out_transposed); + dt_colorspaces_get_primaries_and_whitepoint_from_profile(rgb_profile, profile_info->primaries, + profile_info->whitepoint); } else { @@ -1238,7 +1240,7 @@ return; } - dt_times_t start_time = { 0 }, end_time = { 0 }; + dt_times_t start_time = { 0 }; dt_get_perf_times(&start_time); // matrix should never be invalid, this is only to test it against lcms2! @@ -1248,32 +1250,24 @@ _transform_matrix(self, image_in, image_out, width, height, cst_from, cst_to, converted_cst, profile_info); - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_get_times(&end_time); - dt_print(DT_DEBUG_ALWAYS, - "[dt_ioppr_transform_image_colorspace] %s-->%s took %.3f secs (%.3f CPU) [%s%s]\n", - dt_iop_colorspace_to_name(cst_from), dt_iop_colorspace_to_name(cst_to), - end_time.clock - start_time.clock, - end_time.user - start_time.user, - self->op, dt_iop_get_instance_id(self)); - } + dt_print(DT_DEBUG_PERF, + "[dt_ioppr_transform_image_colorspace] %s-->%s took %.3f secs (%.3f CPU) [%s%s]\n", + dt_iop_colorspace_to_name(cst_from), dt_iop_colorspace_to_name(cst_to), + dt_get_lap_time(&start_time.clock), + dt_get_lap_utime(&start_time.user), + self->op, dt_iop_get_instance_id(self)); } else { _transform_lcms2(self, image_in, image_out, width, height, cst_from, cst_to, converted_cst, profile_info); - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_get_times(&end_time); - dt_print(DT_DEBUG_ALWAYS, - "[dt_ioppr_transform_image_colorspace] %s-->%s took %.3f secs (%.3f lcms2) [%s%s]\n", - dt_iop_colorspace_to_name(cst_from), dt_iop_colorspace_to_name(cst_to), - end_time.clock - start_time.clock, - end_time.user - start_time.user, - self->op, dt_iop_get_instance_id(self)); - } + dt_print(DT_DEBUG_PERF, + "[dt_ioppr_transform_image_colorspace] %s-->%s took %.3f secs (%.3f lcms2) [%s%s]\n", + dt_iop_colorspace_to_name(cst_from), dt_iop_colorspace_to_name(cst_to), + dt_get_lap_time(&start_time.clock), + dt_get_lap_utime(&start_time.user), + self->op, dt_iop_get_instance_id(self)); } if(*converted_cst == cst_from) @@ -1297,6 +1291,8 @@ const dt_iop_order_iccprofile_info_t *const profile_info_to, const char *message) { + if(profile_info_from == NULL || profile_info_to == NULL) + return; if(profile_info_from->type == DT_COLORSPACE_NONE || profile_info_to->type == DT_COLORSPACE_NONE) { @@ -1310,7 +1306,7 @@ return; } - dt_times_t start_time = { 0 }, end_time = { 0 }; + dt_times_t start_time = { 0 }; dt_get_perf_times(&start_time); if(dt_is_valid_colormatrix(profile_info_from->matrix_in[0][0]) @@ -1320,30 +1316,22 @@ { _transform_matrix_rgb(image_in, image_out, width, height, profile_info_from, profile_info_to); - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_get_times(&end_time); - dt_print(DT_DEBUG_ALWAYS, - "[dt_ioppr_transform_image_colorspace_rgb] RGB-->RGB took %.3f secs (%.3f CPU) [%s]\n", - end_time.clock - start_time.clock, - end_time.user - start_time.user, - (message) ? message : ""); - } + dt_print(DT_DEBUG_PERF, + "[dt_ioppr_transform_image_colorspace_rgb] RGB-->RGB took %.3f secs (%.3f CPU) [%s]\n", + dt_get_lap_time(&start_time.clock), + dt_get_lap_utime(&start_time.user), + (message) ? message : ""); } else { _transform_lcms2_rgb(image_in, image_out, width, height, profile_info_from, profile_info_to); - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_get_times(&end_time); - dt_print(DT_DEBUG_ALWAYS, - "[dt_ioppr_transform_image_colorspace_rgb] RGB-->RGB" - " took %.3f secs (%.3f lcms2) [%s]\n", - end_time.clock - start_time.clock, - end_time.user - start_time.user, - (message) ? message : ""); - } + dt_print(DT_DEBUG_PERF, + "[dt_ioppr_transform_image_colorspace_rgb] RGB-->RGB" + " took %.3f secs (%.3f lcms2) [%s]\n", + dt_get_lap_time(&start_time.clock), + dt_get_lap_utime(&start_time.user), + (message) ? message : ""); } } @@ -1443,10 +1431,7 @@ dev_profile_lut = dt_opencl_copy_host_to_device(devid, profile_lut_cl, 256, 256 * 6, sizeof(float)); if(dev_profile_lut == NULL) - { err = CL_MEM_OBJECT_ALLOCATION_FAILURE; - goto cleanup; - } } else { @@ -1455,10 +1440,7 @@ dev_profile_lut = dt_opencl_copy_host_to_device(devid, profile_lut_cl, 1, 1 * 6, sizeof(float)); if(dev_profile_lut == NULL) - { err = CL_MEM_OBJECT_ALLOCATION_FAILURE; - goto cleanup; - } } cleanup: @@ -1526,7 +1508,7 @@ const size_t ch = 4; float *src_buffer = NULL; - int in_place = (dev_img_in == dev_img_out); + const gboolean in_place = (dev_img_in == dev_img_out); int kernel_transform = 0; cl_mem dev_tmp = NULL; @@ -1541,7 +1523,7 @@ if(dt_is_valid_colormatrix(profile_info->matrix_in[0][0]) && dt_is_valid_colormatrix(profile_info->matrix_out[0][0])) { - dt_times_t start_time = { 0 }, end_time = { 0 }; + dt_times_t start_time = { 0 }; dt_get_perf_times(&start_time); size_t origin[] = { 0, 0, 0 }; @@ -1615,16 +1597,12 @@ *converted_cst = cst_to; - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_get_times(&end_time); - dt_print(DT_DEBUG_ALWAYS, - "[dt_ioppr_transform_image_colorspace_cl] %s-->%s took %.3f secs (%.3f GPU) [%s%s]\n", - dt_iop_colorspace_to_name(cst_from), dt_iop_colorspace_to_name(cst_to), - end_time.clock - start_time.clock, - end_time.user - start_time.user, - self->op, dt_iop_get_instance_id(self)); - } + dt_print(DT_DEBUG_PERF, + "[dt_ioppr_transform_image_colorspace_cl] %s-->%s took %.3f secs (%.3f GPU) [%s%s]\n", + dt_iop_colorspace_to_name(cst_from), dt_iop_colorspace_to_name(cst_to), + dt_get_lap_time(&start_time.clock), + dt_get_lap_utime(&start_time.user), + self->op, dt_iop_get_instance_id(self)); } else { @@ -1648,8 +1626,6 @@ err = dt_opencl_write_host_to_device(devid, src_buffer, dev_img_out, width, height, ch * sizeof(float)); - if(err != CL_SUCCESS) - goto cleanup; } cleanup: @@ -1657,18 +1633,15 @@ dt_print(DT_DEBUG_OPENCL, "[dt_ioppr_transform_image_colorspace_cl] had error: %s\n", cl_errstr(err)); - if(src_buffer) - dt_free_align(src_buffer); + dt_free_align(src_buffer); if(dev_tmp && in_place) dt_opencl_release_mem_object(dev_tmp); - if(dev_profile_info) - dt_opencl_release_mem_object(dev_profile_info); - if(dev_lut) - dt_opencl_release_mem_object(dev_lut); + dt_opencl_release_mem_object(dev_profile_info); + dt_opencl_release_mem_object(dev_lut); if(lut_cl) free(lut_cl); - return (err == CL_SUCCESS) ? TRUE : FALSE; + return (err == CL_SUCCESS); } gboolean dt_ioppr_transform_image_colorspace_rgb_cl @@ -1735,7 +1708,7 @@ && dt_is_valid_colormatrix(profile_info_to->matrix_in[0][0]) && dt_is_valid_colormatrix(profile_info_to->matrix_out[0][0])) { - dt_times_t start_time = { 0 }, end_time = { 0 }; + dt_times_t start_time = { 0 }; dt_get_perf_times(&start_time); size_t origin[] = { 0, 0, 0 }; @@ -1819,15 +1792,11 @@ if(err != CL_SUCCESS) goto cleanup; - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_get_times(&end_time); - dt_print(DT_DEBUG_ALWAYS, - "image colorspace transform RGB-->RGB CL took %.3f secs (%.3f GPU) [%s]\n", - end_time.clock - start_time.clock, - end_time.user - start_time.user, - (message) ? message : ""); - } + dt_print(DT_DEBUG_PERF, + "image colorspace transform RGB-->RGB CL took %.3f secs (%.3f GPU) [%s]\n", + dt_get_lap_time(&start_time.clock), + dt_get_lap_utime(&start_time.user), + (message) ? message : ""); } else { @@ -1852,8 +1821,6 @@ err = dt_opencl_write_host_to_device(devid, src_buffer_out, dev_img_out, width, height, ch * sizeof(float)); - if(err != CL_SUCCESS) - goto cleanup; } cleanup: @@ -1861,30 +1828,20 @@ dt_print(DT_DEBUG_OPENCL, "[dt_ioppr_transform_image_colorspace_rgb_cl] had error: %s\n", cl_errstr(err)); - if(src_buffer_in) - dt_free_align(src_buffer_in); - if(src_buffer_out) - dt_free_align(src_buffer_out); - if(dev_tmp && in_place) - dt_opencl_release_mem_object(dev_tmp); - - if(dev_profile_info_from) - dt_opencl_release_mem_object(dev_profile_info_from); - if(dev_lut_from) - dt_opencl_release_mem_object(dev_lut_from); - if(lut_from_cl) - free(lut_from_cl); - - if(dev_profile_info_to) - dt_opencl_release_mem_object(dev_profile_info_to); - if(dev_lut_to) - dt_opencl_release_mem_object(dev_lut_to); - if(lut_to_cl) - free(lut_to_cl); + dt_free_align(src_buffer_in); + dt_free_align(src_buffer_out); + dt_opencl_release_mem_object(dev_profile_info_from); + dt_opencl_release_mem_object(dev_lut_from); + dt_opencl_release_mem_object(dev_profile_info_to); + dt_opencl_release_mem_object(dev_lut_to); dt_opencl_release_mem_object(matrix_cl); - return (err == CL_SUCCESS) ? TRUE : FALSE; + if(dev_tmp && in_place) dt_opencl_release_mem_object(dev_tmp); + if(lut_from_cl) free(lut_from_cl); + if(lut_to_cl) free(lut_to_cl); + + return (err == CL_SUCCESS); } #endif diff -Nru darktable-4.4.2/src/common/iop_profile.h darktable-4.6.1/src/common/iop_profile.h --- darktable-4.4.2/src/common/iop_profile.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/iop_profile.h 2024-02-16 17:31:09.000000000 +0000 @@ -22,6 +22,7 @@ #include "common/colorspaces_inline_conversions.h" #include "common/colorspaces.h" #include "common/file_location.h" +#include "common/dttypes.h" #include "develop/imageop.h" #ifdef HAVE_CONFIG_H @@ -53,6 +54,8 @@ float grey; dt_colormatrix_t matrix_in_transposed; // same as matrix_in, but stored such as to permit vectorization dt_colormatrix_t matrix_out_transposed; // same as matrix_out, but stored such as to permit vectorization + float primaries[3][2]; + float whitepoint[2]; } dt_iop_order_iccprofile_info_t; /** must be called before using profile_info, default lutsize = 0 */ diff -Nru darktable-4.4.2/src/common/locallaplaciancl.c darktable-4.6.1/src/common/locallaplaciancl.c --- darktable-4.4.2/src/common/locallaplaciancl.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/locallaplaciancl.c 2024-02-16 17:31:09.000000000 +0000 @@ -126,11 +126,9 @@ cl_mem input, // input buffer in some Labx or yuvx format cl_mem output) // output buffer with colour { - cl_int err = -666; + if(b->bwidth <= 1 || b->bheight <= 1) return DT_OPENCL_DEFAULT_ERROR; - if(b->bwidth <= 1 || b->bheight <= 1) return err; - - err = dt_opencl_enqueue_kernel_2d_args(b->devid, b->global->kernel_pad_input, b->bwidth, b->bheight, + cl_int err = dt_opencl_enqueue_kernel_2d_args(b->devid, b->global->kernel_pad_input, b->bwidth, b->bheight, CLARG(input), CLARG(b->dev_padded[0]), CLARG(b->width), CLARG(b->height), CLARG(b->max_supp), CLARG(b->bwidth), CLARG(b->bheight)); if(err != CL_SUCCESS) goto error; @@ -184,12 +182,10 @@ // read back processed L channel and copy colours: err = dt_opencl_enqueue_kernel_2d_args(b->devid, b->global->kernel_write_back, b->width, b->height, CLARG(input), CLARG(b->dev_output[0]), CLARG(output), CLARG(b->max_supp), CLARG(b->width), CLARG(b->height)); - if(err != CL_SUCCESS) goto error; - - return CL_SUCCESS; error: - dt_print(DT_DEBUG_OPENCL, "[local laplacian cl] couldn't enqueue kernel! %s\n", cl_errstr(err)); + if(err != CL_SUCCESS) + dt_print(DT_DEBUG_OPENCL, "[local laplacian cl] error %s\n", cl_errstr(err)); return err; } diff -Nru darktable-4.4.2/src/common/luminance_mask.h darktable-4.6.1/src/common/luminance_mask.h --- darktable-4.4.2/src/common/luminance_mask.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/luminance_mask.h 2024-02-16 17:31:09.000000000 +0000 @@ -268,11 +268,14 @@ __DT_CLONE_TARGETS__ -static inline void luminance_mask(const float *const restrict in, float *const restrict out, - const size_t width, const size_t height, - const dt_iop_luminance_mask_method_t method, - const float exposure_boost, - const float fulcrum, const float contrast_boost) +static inline void luminance_mask(const float *const restrict in, + float *const restrict out, + const size_t width, + const size_t height, + const dt_iop_luminance_mask_method_t method, + const float exposure_boost, + const float fulcrum, + const float contrast_boost) { const size_t num_elem = width * height * 4; switch(method) @@ -309,4 +312,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/common/math.h darktable-4.6.1/src/common/math.h --- darktable-4.4.2/src/common/math.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/math.h 2024-02-16 17:31:09.000000000 +0000 @@ -28,7 +28,7 @@ // select speed vs accuracy tradeoff // supported values for EXP_POLY_DEGREE are 4 and 5 #define EXP_POLY_DEGREE 4 -// supported vlaues for LOG_POLY_DEGREE are 5 and 6 +// supported values for LOG_POLY_DEGREE are 5 and 6 #define LOG_POLY_DEGREE 5 // work around missing standard math.h symbols @@ -63,11 +63,6 @@ // Nan-safe: NaN compares false and will result in mn #define CLAMPF(a, mn, mx) ((a) >= (mn) ? ((a) <= (mx) ? (a) : (mx)) : (mn)) -static inline float clamp_range_f(const float x, const float low, const float high) -{ - return x > high ? high : (x < low ? low : x); -} - //***************** // functions to check for non-finite values // with -ffinite-math-only, the compiler is free to elide checks based @@ -85,22 +80,22 @@ #pragma GCC optimize ("-fno-finite-math-only") #endif -static inline gboolean dt_isnan(float val) +static inline gboolean dt_isnan(const float val) { return isnan(val); } -static inline gboolean dt_isinf(float val) +static inline gboolean dt_isinf(const float val) { return isinf(val); } -static inline gboolean dt_isfinite(float val) +static inline gboolean dt_isfinite(const float val) { return isfinite(val); } -static inline gboolean dt_isnormal(float val) +static inline gboolean dt_isnormal(const float val) { return isnormal(val); } @@ -132,7 +127,7 @@ // Kahan summation algorithm #ifdef _OPENMP -#pragma omp declare simd aligned(c) +#pragma omp declare simd #endif static inline float Kahan_sum(const float m, float *const __restrict__ c, const float add) { @@ -294,6 +289,43 @@ #ifdef _OPENMP +#pragma omp declare simd aligned(p:16) +#endif +static inline float median9f(const float *p) +{ + float p1 = MIN(p[1], p[2]); + float p2 = MAX(p[1], p[2]); + float p4 = MIN(p[4], p[5]); + float p5 = MAX(p[4], p[5]); + float p7 = MIN(p[7], p[8]); + float p8 = MAX(p[7], p[8]); + float p0 = MIN(p[0], p1); + float p1a = MAX(p[0], p1); + float p3 = MIN(p[3], p4); + float p4a = MAX(p[3], p4); + float p6 = MIN(p[6], p7); + float p7a = MAX(p[6], p7); + p1 = MIN(p1a, p2); + p2 = MAX(p1a, p2); + p4 = MIN(p4a, p5); + p5 = MAX(p4a, p5); + p7 = MIN(p7a, p8); + p8 = MAX(p7a, p8); + p3 = MAX(p0,p3); + p5 = MIN(p5, p8); + p7a = MAX(p4, p7); + p4 = MIN(p4, p7); + p6 = MAX(p3, p6); + p4 = MAX(p1, p4); + p2 = MIN(p2, p5); + p4a = MIN(p4, p7a); + p4 = MIN(p4a, p2); + p2 = MAX(p4a, p2); + p4 = MAX(p6, p4); + return MIN(p2,p4); +} + +#ifdef _OPENMP #pragma omp declare simd aligned(vector:16) #endif static inline float euclidean_norm(const dt_aligned_pixel_t vector) @@ -517,7 +549,7 @@ // See http://www.devmaster.net/forums/showthread.php?p=43580 for the original static inline void dt_vector_exp2(const dt_aligned_pixel_t input, dt_aligned_pixel_t res) { - // clamp the exponent to the suported range + // clamp the exponent to the supported range static const dt_aligned_pixel_t lower_bound = { -126.99999f, -126.99999f, -126.99999f, -126.99999f }; static const dt_aligned_pixel_t upper_bound = { 129.00000f, 129.00000f, 129.00000f, 129.00000f }; static const dt_aligned_pixel_t v_half = { 0.5f, 0.5f, 0.5f, 0.5f }; diff -Nru darktable-4.4.2/src/common/metadata.c darktable-4.6.1/src/common/metadata.c --- darktable-4.4.2/src/common/metadata.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/metadata.c 2024-02-16 17:31:09.000000000 +0000 @@ -32,7 +32,7 @@ // Dependencies // Must match with dt_metadata_t in metadata.h. // Exif.cc: add the new metadata into dt_xmp_keys[] -// libs/metadata.c increment version and change legacy_param() accordingly +// libs/metadata.c increment version. // CAUTION : key, subkey (last term of key) & name must be unique static const struct @@ -475,18 +475,20 @@ if(id == -1) { // clang-format off - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "SELECT value FROM main.meta_data WHERE id IN " - "(SELECT imgid FROM main.selected_images) AND key = ?1 ORDER BY value", - -1, &stmt, NULL); + DT_DEBUG_SQLITE3_PREPARE_V2 + (dt_database_get(darktable.db), + "SELECT value FROM main.meta_data WHERE id IN " + "(SELECT imgid FROM main.selected_images) AND key = ?1 ORDER BY value", + -1, &stmt, NULL); // clang-format on DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, keyid); } else // single image under mouse cursor { - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "SELECT value FROM main.meta_data WHERE id = ?1 AND key = ?2 ORDER BY value", -1, - &stmt, NULL); + DT_DEBUG_SQLITE3_PREPARE_V2 + (dt_database_get(darktable.db), + "SELECT value FROM main.meta_data WHERE id = ?1 AND key = ?2", -1, + &stmt, NULL); DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, id); DT_DEBUG_SQLITE3_BIND_INT(stmt, 2, keyid); } diff -Nru darktable-4.4.2/src/common/mipmap_cache.c darktable-4.6.1/src/common/mipmap_cache.c --- darktable-4.4.2/src/common/mipmap_cache.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/mipmap_cache.c 2024-02-16 17:31:09.000000000 +0000 @@ -542,8 +542,13 @@ }; // Set mipf to mip2 size as at most the user will be using an 8K screen and // have a preview that's ~4x smaller - cache->max_width[DT_MIPMAP_F] = mipsizes[DT_MIPMAP_2][0]; - cache->max_height[DT_MIPMAP_F] = mipsizes[DT_MIPMAP_2][1]; + const char *preview_downsample = dt_conf_get_string_const("preview_downsampling"); + const float downsample = (!g_strcmp0(preview_downsample, "original")) ? 1.0f + : (!g_strcmp0(preview_downsample, "to 1/2")) ? 0.5f + : (!g_strcmp0(preview_downsample, "to 1/3")) ? 1/3.0f + : 0.25f; + cache->max_width[DT_MIPMAP_F] = mipsizes[DT_MIPMAP_2][0] * downsample; + cache->max_height[DT_MIPMAP_F] = mipsizes[DT_MIPMAP_2][1] * downsample; for(int k = DT_MIPMAP_F-1; k >= 0; k--) { cache->max_width[k] = mipsizes[k][0]; @@ -965,7 +970,7 @@ if(strcmp(value, "720p") == 0) return DT_MIPMAP_3; if(strcmp(value, "1080p") == 0) return DT_MIPMAP_4; if(strcmp(value, "WQXGA") == 0) return DT_MIPMAP_5; - if(strcmp(value, "4k") == 0) return DT_MIPMAP_6; + if(strcmp(value, "4K") == 0) return DT_MIPMAP_6; if(strcmp(value, "5K") == 0) return DT_MIPMAP_7; return DT_MIPMAP_NONE; } diff -Nru darktable-4.4.2/src/common/nvidia_gpus.h darktable-4.6.1/src/common/nvidia_gpus.h --- darktable-4.4.2/src/common/nvidia_gpus.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/nvidia_gpus.h 2024-02-16 17:31:09.000000000 +0000 @@ -256,11 +256,11 @@ }; #endif -int dt_nvidia_gpu_supports_sm_20(const char *model) +gboolean dt_nvidia_gpu_supports_sm_20(const char *model) { #ifdef __APPLE__ // on Mac OSX the OpenCL driver does not seem to support inline asm - even with recent NVIDIA GPUs - return 0; + return FALSE; #else int i = 0; while(nvidia_gpus[2 * i] != NULL) @@ -268,12 +268,12 @@ if(!strcasecmp(model, nvidia_gpus[2 * i])) { if(nvidia_gpus[2 * i + 1][0] >= '2') return 1; - return 0; + return FALSE; } i++; } // if we don't know the device, it's probably too new and all good. - return 1; + return TRUE; #endif } // clang-format off diff -Nru darktable-4.4.2/src/common/opencl.c darktable-4.6.1/src/common/opencl.c --- darktable-4.4.2/src/common/opencl.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/opencl.c 2024-02-16 17:31:09.000000000 +0000 @@ -51,19 +51,9 @@ static const char *_opencl_get_vendor_by_id(unsigned int id); -static float _opencl_benchmark_gpu(const int devid, - const size_t width, - const size_t height, - const int count, - const float sigma); - -static float _opencl_benchmark_cpu(const size_t width, - const size_t height, - const int count, - const float sigma); - static gboolean _opencl_load_program(const int dev, const int prog, + const char *programname, const char *filename, const char *binname, const char *cachedir, @@ -103,6 +93,8 @@ /** set opencl specific synchronization timeout */ static void dt_opencl_set_synchronization_timeout(int value); +static cl_event *_opencl_events_get_slot(const int devid, const char *tag); + const char *cl_errstr(cl_int error) { switch(error) @@ -241,7 +233,7 @@ static inline void _check_clmem_err(const int devid, const cl_int err) { if((err == CL_MEM_OBJECT_ALLOCATION_FAILURE) || (err == CL_OUT_OF_RESOURCES)) - darktable.opencl->dev[devid].runtime_error |= DT_OPENCL_TUNE_MEMSIZE; + darktable.opencl->dev[devid].clmem_error |= TRUE; } static inline gboolean _cl_running(void) @@ -330,7 +322,7 @@ gboolean dt_opencl_avoid_atomics(const int devid) { dt_opencl_t *cl = darktable.opencl; - return (!_cldev_running(devid)) ? FALSE : (cl->dev[devid].avoid_atomics ? TRUE : FALSE); + return (!_cldev_running(devid)) ? FALSE : cl->dev[devid].avoid_atomics; } int dt_opencl_micro_nap(const int devid) @@ -342,8 +334,7 @@ gboolean dt_opencl_use_pinned_memory(const int devid) { dt_opencl_t *cl = darktable.opencl; - if(!_cldev_running(devid)) return FALSE; - return (cl->dev[devid].tuneactive & DT_OPENCL_TUNE_PINNED); + return (!_cldev_running(devid)) ? FALSE : cl->dev[devid].pinned_memory; } void dt_opencl_write_device_config(const int devid) @@ -353,17 +344,18 @@ gchar key[256] = { 0 }; gchar dat[512] = { 0 }; g_snprintf(key, 254, "%s%s", DT_CLDEVICE_HEAD, cl->dev[devid].cname); - g_snprintf(dat, 510, "%i %i %i %i %i %i %i %i %f %.3f", - (cl->dev[devid].avoid_atomics) ? 1 : 0, + g_snprintf(dat, 510, "%i %i %i %i %i %i %i %i %.3f %.3f %.3f", + cl->dev[devid].avoid_atomics, cl->dev[devid].micro_nap, - cl->dev[devid].pinned_memory & (DT_OPENCL_PINNING_ON | DT_OPENCL_PINNING_DISABLED), + cl->dev[devid].pinned_memory, cl->dev[devid].clroundup_wd, cl->dev[devid].clroundup_ht, cl->dev[devid].event_handles, - (cl->dev[devid].asyncmode) ? 1 : 0, - (cl->dev[devid].disabled) ? 1 : 0, - cl->dev[devid].benchmark, - cl->dev[devid].advantage); + cl->dev[devid].asyncmode, + cl->dev[devid].disabled, + 0.0f, // dummy for now as we don't have the benching any more + cl->dev[devid].advantage, + cl->dev[devid].unified_fraction); dt_print(DT_DEBUG_OPENCL | DT_DEBUG_VERBOSE, "[dt_opencl_write_device_config] writing data '%s' for '%s'\n", dat, key); dt_conf_set_string(key, dat); @@ -372,7 +364,7 @@ // specific but also depend on the devid to support systems with two // similar cards. g_snprintf(key, 254, "%s%s_id%i", DT_CLDEVICE_HEAD, cl->dev[devid].cname, devid); - g_snprintf(dat, 510, "%i", cl->dev[devid].forced_headroom); + g_snprintf(dat, 510, "%i", cl->dev[devid].headroom); dt_print(DT_DEBUG_OPENCL | DT_DEBUG_VERBOSE, "[dt_opencl_write_device_config] writing data '%s' for '%s'\n", dat, key); dt_conf_set_string(key, dat); @@ -399,11 +391,12 @@ int event_handles; int asyncmode; int disabled; - float benchmark; + float dummy; // unused float advantage; - sscanf(dat, "%i %i %i %i %i %i %i %i %f %f", + float unified_fraction; + sscanf(dat, "%i %i %i %i %i %i %i %i %f %f %f", &avoid_atomics, µ_nap, &pinned_memory, &wd, &ht, - &event_handles, &asyncmode, &disabled, &benchmark, &advantage); + &event_handles, &asyncmode, &disabled, &dummy, &advantage, &unified_fraction); // some rudimentary safety checking if string seems to be ok safety_ok = (wd > 1) && (wd < 513) && (ht > 1) && (ht < 513); @@ -418,8 +411,8 @@ cldid->event_handles = event_handles; cldid->asyncmode = asyncmode; cldid->disabled = disabled; - cldid->benchmark = benchmark; cldid->advantage = advantage; + cldid->unified_fraction = unified_fraction; } else // if there is something wrong with the found conf key reset to defaults { @@ -428,9 +421,8 @@ } } // do some safety housekeeping - - cldid->avoid_atomics = cldid->avoid_atomics ? TRUE : FALSE; - cldid->pinned_memory &= (DT_OPENCL_PINNING_ON | DT_OPENCL_PINNING_DISABLED); + if((cldid->unified_fraction < 0.05f) || (cldid->unified_fraction > 0.5f)) + cldid->unified_fraction = 0.25f; if((cldid->micro_nap < 0) || (cldid->micro_nap > 1000000)) cldid->micro_nap = 250; if((cldid->clroundup_wd < 2) || (cldid->clroundup_wd > 512)) @@ -439,11 +431,12 @@ cldid->clroundup_ht = 16; if(cldid->event_handles < 0) cldid->event_handles = 0x40000000; - cldid->benchmark = fminf(1e6, fmaxf(0.0f, cl->dev[devid].benchmark)); cldid->use_events = cldid->event_handles ? TRUE : FALSE; cldid->asyncmode = cldid->asyncmode ? TRUE : FALSE; cldid->disabled = cldid->disabled ? TRUE : FALSE; + cldid->avoid_atomics = cldid->avoid_atomics ? TRUE : FALSE; + cldid->pinned_memory = cldid->pinned_memory ? TRUE : FALSE; cldid->advantage = fmaxf(0.0f, cldid->advantage); @@ -453,26 +446,17 @@ if(dt_conf_key_not_empty(key)) { const gchar *dat = dt_conf_get_string_const(key); - int forced_headroom; - sscanf(dat, "%i", &forced_headroom); - if(forced_headroom > 0) cldid->forced_headroom = forced_headroom; + int headroom; + sscanf(dat, "%i", &headroom); + if(headroom > 0) cldid->headroom = headroom; } else // this is used if updating to 4.0 or fresh installs; see // commenting _opencl_get_unused_device_mem() - cl->dev[devid].forced_headroom = 400; + cldid->headroom = DT_OPENCL_DEFAULT_HEADROOM; dt_opencl_write_device_config(devid); return !existing_device || !safety_ok; } -static float dt_opencl_device_perfgain(const int devid) -{ - dt_opencl_t *cl = darktable.opencl; - const float tcpu = cl->cpubenchmark; - const float tgpu = cl->dev[devid].benchmark; - if((tcpu < 1e-8) || (tgpu < 1e-8)) return 1.0f; - return (tcpu / tgpu); -} - // returns 0 if all ok or an error if we failed to init this device static gboolean _opencl_device_init(dt_opencl_t *cl, const int dev, @@ -498,8 +482,7 @@ cl->dev[dev].totallost = 0; cl->dev[dev].summary = CL_COMPLETE; cl->dev[dev].used_global_mem = 0; - cl->dev[dev].nvidia_sm_20 = 0; - cl->dev[dev].vendor = NULL; + cl->dev[dev].nvidia_sm_20 = FALSE; cl->dev[dev].fullname = NULL; cl->dev[dev].cname = NULL; cl->dev[dev].options = NULL; @@ -507,20 +490,22 @@ cl->dev[dev].peak_memory = 0; cl->dev[dev].used_available = 0; // setting sane/conservative defaults at first - cl->dev[dev].avoid_atomics = 0; + cl->dev[dev].unified_fraction = 0.25f; + cl->dev[dev].avoid_atomics = FALSE; cl->dev[dev].micro_nap = 250; - cl->dev[dev].pinned_memory = DT_OPENCL_PINNING_OFF; + cl->dev[dev].pinned_memory = FALSE; + cl->dev[dev].unified_memory = FALSE; + cl->dev[dev].pinned_error = FALSE; + cl->dev[dev].clmem_error = FALSE; cl->dev[dev].clroundup_wd = 16; cl->dev[dev].clroundup_ht = 16; - cl->dev[dev].benchmark = 0.0f; cl->dev[dev].advantage = 0.0f; cl->dev[dev].use_events = TRUE; cl->dev[dev].event_handles = 128; cl->dev[dev].asyncmode = FALSE; cl->dev[dev].disabled = FALSE; - cl->dev[dev].forced_headroom = 0; - cl->dev[dev].tuneactive = DT_OPENCL_TUNE_NOTHING; - cl->dev[dev].runtime_error = DT_OPENCL_TUNE_NOTHING; + cl->dev[dev].headroom = 0; + cl->dev[dev].tunehead = FALSE; cl_device_id devid = cl->dev[dev].devid = devices[k]; char *device_name = NULL; @@ -531,6 +516,7 @@ char *fullname = NULL; char *cname = NULL; + char *pname = NULL; char *vendor = NULL; size_t vendor_size; @@ -549,6 +535,7 @@ cl_uint vendor_id = 0; cl_bool little_endian = 0; cl_platform_id platform_id = 0; + cl_bool unified_memory = 0; char *dtcache = calloc(PATH_MAX, sizeof(char)); char *cachedir = calloc(PATH_MAX, sizeof(char)); @@ -649,7 +636,7 @@ // get the canonical fullname cname = _ascii_str_canonical(fullname, NULL , 0); - + pname = _ascii_str_canonical(platform_name, NULL , 0); // take every detected platform and device into account of checksum cl->crc = crc32(cl->crc, (const unsigned char *)platform_name, strlen(platform_name)); cl->crc = crc32(cl->crc, (const unsigned char *)device_name, strlen(device_name)); @@ -662,8 +649,8 @@ " DEVICE: %d: '%s'%s\n", k, device_name, (newdevice) ? ", NEW" : "" ); dt_print_nts(DT_DEBUG_OPENCL, - " PLATFORM NAME & VENDOR: %s, %s\n", - platform_display_name, platform_vendor); + " PLATFORM, VENDOR & ID: %s, %s, ID=%d\n", + platform_display_name, platform_vendor, vendor_id); dt_print_nts(DT_DEBUG_OPENCL, " CANONICAL NAME: %s\n", cl->dev[dev].cname); @@ -704,6 +691,11 @@ &(cl->dev[dev].max_mem_alloc), NULL); (cl->dlocl->symbols->dt_clGetDeviceInfo)(devid, CL_DEVICE_ENDIAN_LITTLE, sizeof(cl_bool), &little_endian, NULL); + // FIXME This test is deprecated for post 1.2 versions so if we do some cl version bump + // we would want to use CL_DEVICE_SVM_CAPABILITIES instead + (cl->dlocl->symbols->dt_clGetDeviceInfo)(devid, CL_DEVICE_HOST_UNIFIED_MEMORY, + sizeof(cl_bool), &unified_memory, NULL); + cl->dev[dev].unified_memory = unified_memory ? TRUE : FALSE; if(!strncasecmp(vendor, "NVIDIA", 6)) { @@ -721,10 +713,11 @@ dt_print_nts(DT_DEBUG_OPENCL, " DRIVER VERSION: %s\n", driverversion); dt_print_nts(DT_DEBUG_OPENCL, " DEVICE VERSION: %s%s\n", deviceversion, cl->dev[dev].nvidia_sm_20 ? ", SM_20 SUPPORT" : ""); - dt_print_nts(DT_DEBUG_OPENCL, " DEVICE_TYPE: %s%s%s\n", + dt_print_nts(DT_DEBUG_OPENCL, " DEVICE_TYPE: %s%s%s%s\n", ((type & CL_DEVICE_TYPE_CPU) == CL_DEVICE_TYPE_CPU) ? "CPU" : "", ((type & CL_DEVICE_TYPE_GPU) == CL_DEVICE_TYPE_GPU) ? "GPU" : "", - (type & CL_DEVICE_TYPE_ACCELERATOR) ? ", Accelerator" : "" ); + (type & CL_DEVICE_TYPE_ACCELERATOR) ? ", Accelerator" : "", + unified_memory ? ", unified mem" : ", dedicated mem" ); if(is_cpu_device && newdevice) { @@ -794,8 +787,6 @@ goto end; } - cl->dev[dev].vendor = strdup(_opencl_get_vendor_by_id(vendor_id)); - const gboolean is_blacklisted = dt_opencl_check_driver_blacklist(deviceversion); // disable device for now if this is the first time detected and blacklisted too. @@ -851,37 +842,25 @@ } dt_sys_resources_t *resrc = &darktable.dtresources; - const gboolean pinning = (cl->dev[dev].pinned_memory & DT_OPENCL_PINNING_ON) - || (resrc->tunemode & DT_OPENCL_TUNE_PINNED); - const gboolean tuning = resrc->tunemode & DT_OPENCL_TUNE_MEMSIZE; - dt_print_nts(DT_DEBUG_OPENCL, - " ASYNC PIXELPIPE: %s\n", - (cl->dev[dev].asyncmode) ? "YES" : "NO"); - dt_print_nts(DT_DEBUG_OPENCL, - " PINNED MEMORY TRANSFER: %s\n", pinning ? "WANTED" : "NO"); dt_print_nts(DT_DEBUG_OPENCL, - " MEMORY TUNING: %s\n", tuning ? "WANTED" : "NO"); + " ASYNC PIXELPIPE: %s\n", cl->dev[dev].asyncmode ? "YES" : "NO"); dt_print_nts(DT_DEBUG_OPENCL, - " FORCED HEADROOM: %i\n", cl->dev[dev].forced_headroom); + " PINNED MEMORY TRANSFER: %s\n", cl->dev[dev].pinned_memory ? "YES" : "NO"); + if(resrc->tunehead) + dt_print_nts(DT_DEBUG_OPENCL, + " USE HEADROOM: %iMb\n", cl->dev[dev].headroom); dt_print_nts(DT_DEBUG_OPENCL, - " AVOID ATOMICS: %s\n", - (cl->dev[dev].avoid_atomics) ? "YES" : "NO"); + " AVOID ATOMICS: %s\n", cl->dev[dev].avoid_atomics ? "YES" : "NO"); dt_print_nts(DT_DEBUG_OPENCL, " MICRO NAP: %i\n", cl->dev[dev].micro_nap); dt_print_nts(DT_DEBUG_OPENCL, - " ROUNDUP WIDTH: %i\n", cl->dev[dev].clroundup_wd); - dt_print_nts(DT_DEBUG_OPENCL, - " ROUNDUP HEIGHT: %i\n", cl->dev[dev].clroundup_ht); + " ROUNDUP WIDTH & HEIGHT %ix%i\n", cl->dev[dev].clroundup_wd, cl->dev[dev].clroundup_ht); dt_print_nts(DT_DEBUG_OPENCL, " CHECK EVENT HANDLES: %i\n", cl->dev[dev].event_handles); - if(cl->dev[dev].benchmark > 0.0f) - dt_print_nts(DT_DEBUG_OPENCL, - " PERFORMANCE: %.3f\n", dt_opencl_device_perfgain(dev)); dt_print_nts(DT_DEBUG_OPENCL, " TILING ADVANTAGE: %.3f\n", cl->dev[dev].advantage); dt_print_nts(DT_DEBUG_OPENCL, - " DEFAULT DEVICE: %s\n", - (type & CL_DEVICE_TYPE_DEFAULT) ? "YES" : "NO"); + " DEFAULT DEVICE: %s\n", (type & CL_DEVICE_TYPE_DEFAULT) ? "YES" : "NO"); if(cl->dev[dev].disabled) { @@ -916,7 +895,6 @@ goto end; } - double tstart, tend, tdiff; dt_loc_get_user_cache_dir(dtcache, PATH_MAX * sizeof(char)); int len = MIN(strlen(fullname),1024 * sizeof(char));; @@ -951,7 +929,7 @@ "%s" G_DIR_SEPARATOR_S "programs.conf", kerneldir); char *escapedkerneldir = NULL; -#ifndef __APPLE__ +#if !defined(__APPLE__) && !(defined(__linux__) && defined(__aarch64__)) escapedkerneldir = g_strdup_printf("\"%s\"", kerneldir); #else escapedkerneldir = dt_util_str_replace(kerneldir, " ", "\\ "); @@ -962,34 +940,30 @@ const char* compile_opt = NULL; if(dt_conf_key_exists(compile_option_name_cname) - && (dt_conf_get_int("performance_configuration_version_completed") > 12)) + && (dt_conf_get_int("performance_configuration_version_completed") > 15)) compile_opt = dt_conf_get_string_const(compile_option_name_cname); else { - switch(vendor_id) - { - case DT_OPENCL_VENDOR_AMD: - compile_opt = DT_OPENCL_DEFAULT_COMPILE_AMD; - break; - case DT_OPENCL_VENDOR_NVIDIA: - compile_opt = DT_OPENCL_DEFAULT_COMPILE_NVIDIA; - break; - case DT_OPENCL_VENDOR_INTEL: - compile_opt = DT_OPENCL_DEFAULT_COMPILE_INTEL; - break; - default: - compile_opt = DT_OPENCL_DEFAULT_COMPILE; - } + if(!strcmp("nvidiacuda", pname)) + compile_opt = DT_OPENCL_DEFAULT_COMPILE_OPTI; + else if(!strcmp("apple", pname)) + compile_opt = DT_OPENCL_DEFAULT_COMPILE_OPTI; + else if(!strcmp("amdacceleratedparallelprocessing", pname)) + compile_opt = DT_OPENCL_DEFAULT_COMPILE_OPTI; + else + compile_opt = DT_OPENCL_DEFAULT_COMPILE_DEFAULT; } + gchar *my_option = g_strdup(compile_opt); dt_conf_set_string(compile_option_name_cname, my_option); cl->dev[dev].options = g_strdup_printf("-w %s %s -D%s=1 -I%s", my_option, - (cl->dev[dev].nvidia_sm_20 ? " -DNVIDIA_SM_20=1" : ""), + cl->dev[dev].nvidia_sm_20 ? " -DNVIDIA_SM_20=1" : "", _opencl_get_vendor_by_id(vendor_id), escapedkerneldir); dt_print_nts(DT_DEBUG_OPENCL, " CL COMPILER OPTION: %s\n", my_option); + dt_print_nts(DT_DEBUG_OPENCL, " CL COMPILER COMMAND: %s\n", cl->dev[dev].options); g_free(compile_option_name_cname); g_free(my_option); @@ -1016,7 +990,7 @@ // now load all darktable cl kernels. // TODO: compile as a job? - tstart = dt_get_wtime(); + double tstart = dt_get_debug_wtime(); FILE *f = g_fopen(filename, "rb"); if(f) { @@ -1074,7 +1048,7 @@ "[dt_opencl_device_init] testing program `%s' ..\n", programname); int loaded_cached; char md5sum[33]; - if(_opencl_load_program(dev, prog, filename, binname, cachedir, + if(_opencl_load_program(dev, prog, programname, filename, binname, cachedir, md5sum, includemd5, &loaded_cached) && _opencl_build_program(dev, prog, binname, cachedir, md5sum, loaded_cached)) { @@ -1091,10 +1065,8 @@ } fclose(f); - tend = dt_get_wtime(); - tdiff = tend - tstart; dt_print_nts(DT_DEBUG_OPENCL, - " KERNEL LOADING TIME: %2.4lf sec\n", tdiff); + " KERNEL LOADING TIME: %2.4lf sec\n", dt_get_lap_time(&tstart)); } else { @@ -1114,6 +1086,7 @@ free(device_name_cleaned); free(fullname); free(cname); + free(pname); free(vendor); free(driverversion); free(deviceversion); @@ -1169,77 +1142,102 @@ char *platform_name = calloc(DT_OPENCL_CBUFFSIZE, sizeof(char)); char *platform_vendor = calloc(DT_OPENCL_CBUFFSIZE, sizeof(char)); - - cl->cpubenchmark = dt_conf_get_float("dt_cpubenchmark"); - if(cl->cpubenchmark <= 0.0f) - { - cl->cpubenchmark = _opencl_benchmark_cpu(1024, 1024, 5, 100.0f); - dt_conf_set_float("dt_cpubenchmark", cl->cpubenchmark); - } + char *platform_key = calloc(DT_OPENCL_CBUFFSIZE, sizeof(char)); if(exclude_opencl) { - dt_print_nts(DT_DEBUG_OPENCL, - "[opencl_init] opencl disabled due to explicit user request\n"); + dt_print(DT_DEBUG_OPENCL, + "[opencl_init] opencl disabled due to explicit user request\n"); goto finally; } - dt_print_nts(DT_DEBUG_OPENCL, - "[opencl_init] opencl related configuration options:\n"); - dt_print_nts(DT_DEBUG_OPENCL, - "[opencl_init] opencl: %s\n", opencl_requested ? "ON" : "OFF" ); - const char *str = dt_conf_get_string_const("opencl_scheduling_profile"); - dt_print_nts(DT_DEBUG_OPENCL, - "[opencl_init] opencl_scheduling_profile: '%s'\n", str); + if(!opencl_requested) + dt_print(DT_DEBUG_OPENCL, + "[opencl_init] opencl disabled via darktable preferences\n"); + // look for explicit definition of opencl_runtime library in preferences const char *library = dt_conf_get_string_const("opencl_library"); - dt_print_nts(DT_DEBUG_OPENCL, - "[opencl_init] opencl_library: '%s'\n", - (strlen(library) == 0) ? "default path" : library); - str = dt_conf_get_string_const("opencl_device_priority"); - dt_print_nts(DT_DEBUG_OPENCL, - "[opencl_init] opencl_device_priority: '%s'\n", str); - dt_print_nts(DT_DEBUG_OPENCL, - "[opencl_init] opencl_mandatory_timeout: %d\n", - dt_conf_get_int("opencl_mandatory_timeout")); // dynamically load opencl runtime and bind required symbols and test it cl->dlocl = dt_dlopencl_init(library); if(cl->dlocl == NULL) { - dt_print_nts(DT_DEBUG_OPENCL, - "[opencl_init] no working opencl library found." - " Continue with opencl disabled\n"); + logerror = _("no working OpenCL library found"); + dt_print(DT_DEBUG_OPENCL, + "[opencl_init] no working opencl '%s' library found." + " Continue with opencl disabled\n", + (strlen(library) == 0) ? "default path" : library); goto finally; } else { - dt_print_nts(DT_DEBUG_OPENCL, - "[opencl_init] opencl library '%s' found on your system and loaded\n", - cl->dlocl->library); + dt_print(DT_DEBUG_OPENCL, + "[opencl_init] opencl library '%s' found on your system and loaded," + " preference '%s'\n", + cl->dlocl->library, + (strlen(library) == 0) ? "default path" : library); } all_platforms = malloc(sizeof(cl_platform_id) * DT_OPENCL_MAX_PLATFORMS); all_num_devices = malloc(sizeof(cl_uint) * DT_OPENCL_MAX_PLATFORMS); + cl_uint num_platforms = 0; + logerror= _("platform detection failed. some possible causes:\n" + " - OpenCL ICD (ocl-icd) missing,\n" + " - previous OpenCL errors leading to blocked devices,\n" + " - power management problems,\n" + " - buggy drivers,\n" + " - no OpenCL driver installed."); + + cl_int err = (cl->dlocl->symbols->dt_clGetPlatformIDs)(0, NULL, &num_platforms); + if((err != CL_SUCCESS) || (num_platforms == 0)) + { + dt_print(DT_DEBUG_OPENCL, + "[opencl_init] %i platforms detected, error: %s\n", + num_platforms, cl_errstr(err)); + goto finally; + } - cl_int err = (cl->dlocl->symbols->dt_clGetPlatformIDs) + num_platforms = 0; + err = (cl->dlocl->symbols->dt_clGetPlatformIDs) (DT_OPENCL_MAX_PLATFORMS, all_platforms, &num_platforms); if(err != CL_SUCCESS) { - dt_print_nts(DT_DEBUG_OPENCL, - "[opencl_init] could not get platforms: %s\n", cl_errstr(err)); + dt_print(DT_DEBUG_OPENCL, + "[opencl_init] could not get platforms IDs: %s\n", cl_errstr(err)); goto finally; } - if(num_platforms == 0) { - logerror = "no opencl platform available"; - dt_print_nts(DT_DEBUG_OPENCL, "[opencl_init] no opencl platform available\n"); + dt_print(DT_DEBUG_OPENCL, "[opencl_init] no opencl platform available\n"); goto finally; } - dt_print_nts(DT_DEBUG_OPENCL, "[opencl_init] found %d platform%s\n", num_platforms, - num_platforms > 1 ? "s" : ""); + + logerror = NULL; + dt_print(DT_DEBUG_OPENCL, + "[opencl_init] found %d platform%s\n", + num_platforms, num_platforms > 1 ? "s" : ""); + + // safety check for platforms; we must not have several versions for the same platform + { + char *platforms = calloc(num_platforms, sizeof(char) * DT_OPENCL_CBUFFSIZE); + for(int n = 0; n < num_platforms; n++) + { + cl_platform_id platform = all_platforms[n]; + if((cl->dlocl->symbols->dt_clGetPlatformInfo) + (platform, CL_PLATFORM_NAME, DT_OPENCL_CBUFFSIZE, platforms + n * DT_OPENCL_CBUFFSIZE, NULL) != CL_SUCCESS) + break; + + for(int k = 0; k < n; k++) + { + if(!strcmp(platforms + n * DT_OPENCL_CBUFFSIZE, platforms + k * DT_OPENCL_CBUFFSIZE)) + dt_print(DT_DEBUG_OPENCL, + "[opencl_init] possibly a multiple platform problem for `%s'\n", + platforms + n * DT_OPENCL_CBUFFSIZE); + } + } + free(platforms); + } for(int n = 0; n < num_platforms; n++) { @@ -1247,23 +1245,57 @@ // get the number of GPU devices available to the platforms the // other common option is CL_DEVICE_TYPE_GPU/CPU (but the latter // doesn't work with the nvidia drivers) + + const cl_int errn = (cl->dlocl->symbols->dt_clGetPlatformInfo) + (platform, CL_PLATFORM_NAME, DT_OPENCL_CBUFFSIZE, platform_name, NULL); + const cl_int errv = (cl->dlocl->symbols->dt_clGetPlatformInfo) + (platform, CL_PLATFORM_VENDOR, DT_OPENCL_CBUFFSIZE, platform_vendor, NULL); + + gboolean valid_platform = FALSE; + if(errn == CL_SUCCESS) + { + snprintf(platform_key, DT_OPENCL_CBUFFSIZE, "%s", "clplatform_"); + const int len = MIN(strlen(platform_name), DT_OPENCL_CBUFFSIZE); + int j = strlen(platform_key); + // remove non-alphanumeric chars from platform name + for(int i = 0; i < len; i++) + if(isalnum(platform_name[i])) platform_key[j++] = tolower(platform_name[i]); + platform_key[j] = 0; + + if(dt_conf_key_exists(platform_key)) + valid_platform = dt_conf_get_bool(platform_key); + /* In some cases it is safe to assume platform aliases instead of adding + an additional conf key or falling back to clplatform_other + */ + else if((strcmp(platform_key, "clplatform_intelropenclgraphics") == 0) + || (strcmp(platform_key, "clplatform_intelropencluhdgraphics") == 0) + || (strcmp(platform_key, "clplatform_intelropenclirisgraphics") == 0) + || (strcmp(platform_key, "clplatform_intelropenclirisprographics") == 0)) + valid_platform = dt_conf_get_bool("clplatform_intelropenclhdgraphics"); + else + valid_platform = dt_conf_get_bool("clplatform_other"); + } + err = (cl->dlocl->symbols->dt_clGetDeviceIDs) (platform, CL_DEVICE_TYPE_ALL, 0, NULL, &(all_num_devices[n])); - if(err != CL_SUCCESS) + + if(err != CL_SUCCESS || !valid_platform) { - cl_int errv = (cl->dlocl->symbols->dt_clGetPlatformInfo) - (platform, CL_PLATFORM_VENDOR, DT_OPENCL_CBUFFSIZE, platform_vendor, NULL); - cl_int errn = (cl->dlocl->symbols->dt_clGetPlatformInfo) - (platform, CL_PLATFORM_NAME, DT_OPENCL_CBUFFSIZE, platform_name, NULL); - if((errn == CL_SUCCESS) && (errv == CL_SUCCESS)) - dt_print_nts(DT_DEBUG_OPENCL, - "[opencl_init] no devices found for %s (vendor) - %s (name)\n", - platform_vendor, platform_name); + if(!valid_platform) + { + dt_print(DT_DEBUG_OPENCL, + "[check platform] platform '%s' with key '%s' is NOT active\n", + platform_name, platform_key); + } + else if((errn == CL_SUCCESS) && (errv == CL_SUCCESS)) + dt_print(DT_DEBUG_OPENCL, + "[opencl_init] no devices found for %s (vendor) - %s (name)\n", + platform_vendor, platform_name); else { - dt_print_nts(DT_DEBUG_OPENCL, - "[opencl_init] no devices found for unknown platform\n"); - logerror = "no devices found for unknown platform"; + dt_print(DT_DEBUG_OPENCL, + "[opencl_init] no devices found for unknown platform\n"); + logerror = _("no devices found for unknown platform"); } all_num_devices[n] = 0; } @@ -1276,16 +1308,18 @@ if(err != CL_SUCCESS) { all_num_devices[n] = 0; - dt_print_nts(DT_DEBUG_OPENCL, - "[opencl_init] could not get profile: %s\n", cl_errstr(err)); + dt_print(DT_DEBUG_OPENCL, + "[opencl_init] could not get profile for platform '%s': %s\n", + platform_name, cl_errstr(err)); } else { if(strcmp("FULL_PROFILE", profile) != 0) { all_num_devices[n] = 0; - dt_print_nts(DT_DEBUG_OPENCL, - "[opencl_init] platform %i is not FULL_PROFILE\n", n); + dt_print(DT_DEBUG_OPENCL, + "[opencl_init] platform '%s' is not FULL_PROFILE\n", + platform_name); } } } @@ -1305,8 +1339,9 @@ free(cl->dev); cl->dev = NULL; free(devices); - dt_print_nts(DT_DEBUG_OPENCL, "[opencl_init] could not allocate memory\n"); - logerror = "memory allocation problem"; + dt_print(DT_DEBUG_OPENCL, + "[opencl_init] could not allocate memory for device resources\n"); + logerror = _("not enough memory for OpenCL devices"); goto finally; } } @@ -1325,9 +1360,9 @@ if(err != CL_SUCCESS) { num_devices -= all_num_devices[n]; - dt_print_nts(DT_DEBUG_OPENCL, - "[opencl_init] could not get devices list: %s\n", - cl_errstr(err)); + dt_print(DT_DEBUG_OPENCL, + "[opencl_init] could not get devices list: %s\n", + cl_errstr(err)); } devs += all_num_devices[n]; } @@ -1341,6 +1376,7 @@ { if(devices) free(devices); + logerror = _("no OpenCL devices found"); goto finally; } @@ -1377,22 +1413,37 @@ dt_print_nts(DT_DEBUG_OPENCL, "[opencl_init] OpenCL successfully initialized." - " Internal numbers and names of available devices:\n"); + " internal numbers and names of available devices:\n"); for(int i = 0; i < dev; i++) dt_print_nts(DT_DEBUG_OPENCL, "[opencl_init]\t\t%d\t'%s'\n", i, cl->dev[i].fullname); } else { + logerror = _("no suitable OpenCL devices found"); dt_print_nts(DT_DEBUG_OPENCL, "[opencl_init] no suitable devices found.\n"); } finally: - dt_print_nts(DT_DEBUG_OPENCL, - "[opencl_init] FINALLY: opencl is %sAVAILABLE and %sENABLED.\n", - cl->inited ? "" : "NOT ", cl->enabled ? "" : "NOT "); + dt_print(DT_DEBUG_OPENCL, + "[opencl_init] FINALLY: opencl is %sAVAILABLE and %sENABLED.\n", + cl->inited ? "" : "NOT ", cl->enabled ? "" : "NOT "); + if(cl->inited && cl->enabled) + { + // report some global settings if up & running + dt_print_nts(DT_DEBUG_OPENCL, "[opencl_init] opencl_scheduling_profile: '%s'\n", + dt_conf_get_string_const("opencl_scheduling_profile")); + dt_print_nts(DT_DEBUG_OPENCL, "[opencl_init] opencl_device_priority: '%s'\n", + dt_conf_get_string_const("opencl_device_priority")); + dt_print_nts(DT_DEBUG_OPENCL, + "[opencl_init] opencl_mandatory_timeout: %d\n", + dt_conf_get_int("opencl_mandatory_timeout")); + } if(logerror && opencl_requested) + { dt_control_log(_("OpenCL initializing problem:\n%s"), logerror); + dt_conf_set_bool("opencl", FALSE); + } if(cl->inited) { @@ -1407,16 +1458,6 @@ cl->colorspaces = dt_colorspaces_init_cl_global(); cl->guided_filter = dt_guided_filter_init_cl_global(); - // make sure all active cl devices have a benchmark result - for(int n = 0; n < cl->num_devs; n++) - { - if((cl->dev[n].benchmark <= 0.0f) && (cl->dev[n].disabled == FALSE)) - { - cl->dev[n].benchmark = _opencl_benchmark_gpu(n, 1024, 1024, 5, 100.0f); - dt_opencl_write_device_config(n); - } - } - char checksum[64]; snprintf(checksum, sizeof(checksum), "%u", cl->crc); const char *oldchecksum = dt_conf_get_string_const("opencl_checksum"); @@ -1430,70 +1471,34 @@ if(newcheck && !manually) { dt_conf_set_string("opencl_checksum", checksum); - - // get minima and maxima of performance data of all active devices - const float tcpu = cl->cpubenchmark; - float tgpumin = FLT_MAX; - float tgpumax = -FLT_MAX; - for(int n = 0; n < cl->num_devs; n++) - { - if((cl->dev[n].benchmark > 0.0f) && (cl->dev[n].disabled == FALSE)) - { - tgpumin = fminf(cl->dev[n].benchmark, tgpumin); - tgpumax = fmaxf(cl->dev[n].benchmark, tgpumax); - } - } - - if(tcpu < tgpumin / 3.0f) - { - // de-activate opencl for darktable in case the cpu is three - // times faster than the fastest GPU. FIXME the problem here - // is that the benchmark might not reflect real-world - // performance. user can always manually overrule this later. - cl->enabled = FALSE; - dt_conf_set_bool("opencl", FALSE); - dt_print_nts(DT_DEBUG_OPENCL, - "[opencl_init] due to a slow GPU the opencl flag has been" - " set to OFF.\n"); - dt_control_log(_("due to a slow GPU hardware acceleration using OpenCL" - " has been deactivated")); - } - else if((cl->num_devs >= 2) && ((tgpumax / tgpumin) < 1.1f)) - { - // set scheduling profile to "multiple GPUs" if more than one - // device has been found and they are equally fast - dt_conf_set_string("opencl_scheduling_profile", "multiple GPUs"); - dt_print_nts(DT_DEBUG_OPENCL, - "[opencl_init] set scheduling profile for multiple GPUs.\n"); - dt_control_log(_("multiple GPUs detected - OpenCL scheduling profile" - " has been set accordingly")); - } - else if((tcpu >= 2.0f * tgpumin) && (cl->num_devs == 1)) - { - // set scheduling profile to "very fast GPU" if fastest GPU is - // at least 2 times better than CPU and there is just one - // device We might want a better benchmark but even with the - // current result (underestimates real world performance) this - // is safe. - dt_conf_set_string("opencl_scheduling_profile", "very fast GPU"); - dt_print_nts(DT_DEBUG_OPENCL, - "[opencl_init] set scheduling profile for very fast GPU.\n"); - dt_control_log(_("very fast GPU detected - OpenCL scheduling profile" - " has been set accordingly")); - } - else - { - // set scheduling profile to "default" - dt_conf_set_string("opencl_scheduling_profile", "default"); - dt_print_nts(DT_DEBUG_OPENCL, - "[opencl_init] set scheduling profile to default.\n"); - dt_control_log(_("OpenCL scheduling profile set to default")); - } + // set scheduling profile to "default" + dt_conf_set_string("opencl_scheduling_profile", "default"); + dt_print(DT_DEBUG_OPENCL, + "[opencl_init] set scheduling profile to default, setup has changed.\n"); + dt_control_log(_("OpenCL scheduling profile set to default, setup has changed")); } // apply config settings for scheduling profile: sets device // priorities and pixelpipe synchronization timeout dt_opencl_scheduling_profile_t profile = dt_opencl_get_scheduling_profile(); dt_opencl_apply_scheduling_profile(profile); + + // let's keep track on unified memory devices + size_t unified_sysmem = 0; + for(int i = 0; i < cl->num_devs; i++) + { + if(cl->dev[i].unified_memory) + { + const size_t reserved = MIN(cl->dev[i].max_global_mem, + darktable.dtresources.total_memory * cl->dev[i].unified_fraction); + cl->dev[i].max_global_mem = reserved; + dt_print_nts(DT_DEBUG_OPENCL, + " UNIFIED MEM SIZE: %.0f MB reserved for '%s'\n", + (double)reserved / 1024.0 / 1024.0, + cl->dev[i].cname); + unified_sysmem = MAX(unified_sysmem, reserved); + } + } + darktable.dtresources.total_memory -= unified_sysmem; } else // initialization failed { @@ -1514,7 +1519,6 @@ free(cl->dev[i].eventlist); free(cl->dev[i].eventtags); } - free((void *)(cl->dev[i].vendor)); free((void *)(cl->dev[i].fullname)); free((void *)(cl->dev[i].cname)); free((void *)(cl->dev[i].options)); @@ -1525,6 +1529,7 @@ free(all_platforms); free(platform_name); free(platform_vendor); + free(platform_key); if(locale) { @@ -1532,7 +1537,7 @@ free(locale); } - return; + dt_opencl_update_settings(); } void dt_opencl_cleanup(dt_opencl_t *cl) @@ -1567,7 +1572,7 @@ " peak memory usage %zu bytes (%.1f MB)%s\n", cl->dev[i].fullname, i, cl->dev[i].peak_memory, (float)cl->dev[i].peak_memory/(1024*1024), - (cl->dev[i].runtime_error & DT_OPENCL_TUNE_MEMSIZE) + cl->dev[i].clmem_error ? ", clmem runtime problem" : ""); } @@ -1586,7 +1591,7 @@ (cl->dev[i].maxeventslot > 1024) ? "\n *** Warning, slots > 1024" : "", - (cl->dev[i].runtime_error & DT_OPENCL_TUNE_MEMSIZE) + cl->dev[i].clmem_error ? ", clmem runtime problem" : ""); } @@ -1606,7 +1611,6 @@ free(cl->dev[i].eventtags); } - free((void *)(cl->dev[i].vendor)); free((void *)(cl->dev[i].fullname)); free((void *)(cl->dev[i].cname)); free((void *)(cl->dev[i].options)); @@ -1644,6 +1648,9 @@ case DT_OPENCL_VENDOR_INTEL: vendor = "INTEL"; break; + case DT_OPENCL_VENDOR_APPLE: + vendor = "APPLE"; + break; default: vendor = "UNKNOWN"; } @@ -1651,167 +1658,12 @@ return vendor; } -// FIXME this benchmark simply doesn't reflect the power of a cl -// device in a meaningful way resulting in: -// - the config setting for very-fast GPU often misses a proper setting -// - at the moment we can't use a cpu vs gpu performance ratio to decide -// if tiled-gpu might be worse than untiled-cpu -static float _opencl_benchmark_gpu(const int devid, - const size_t width, - const size_t height, - const int count, - const float sigma) -{ - const int bpp = 4 * sizeof(float); - cl_int err = DT_OPENCL_DEFAULT_ERROR; - cl_mem dev_mem = NULL; - float *buf = NULL; - dt_gaussian_cl_t *g = NULL; - - const float Labmax[] = { FLT_MAX, FLT_MAX, FLT_MAX, FLT_MAX }; - const float Labmin[] = { -FLT_MAX, -FLT_MAX, -FLT_MAX, -FLT_MAX }; - - unsigned int *const tea_states = alloc_tea_states(dt_get_num_threads()); - - buf = dt_alloc_align(64, width * height * bpp); - if(buf == NULL) goto error; - -#ifdef _OPENMP -#pragma omp parallel for default(none) \ - dt_omp_firstprivate(height, tea_states, width) \ - shared(buf) -#endif - for(size_t j = 0; j < height; j++) - { - unsigned int *tea_state = get_tea_state(tea_states,dt_get_thread_num()); - tea_state[0] = j + dt_get_thread_num(); - size_t index = j * 4 * width; - for(int i = 0; i < 4 * width; i++) - { - encrypt_tea(tea_state); - buf[index + i] = 100.0f * tpdf(tea_state[0]); - } - } - - // start timer - double start = dt_get_wtime(); - - // allocate dev_mem buffer - dev_mem = dt_opencl_alloc_device_use_host_pointer(devid, width, height, - bpp, width*bpp, buf); - if(dev_mem == NULL) goto error; - - // prepare gaussian filter - g = dt_gaussian_init_cl(devid, width, height, 4, Labmax, Labmin, sigma, 0); - if(!g) goto error; - - // gaussian blur - for(int n = 0; n < count; n++) - { - err = dt_gaussian_blur_cl(g, dev_mem, dev_mem); - if(err != CL_SUCCESS) goto error; - } - - // cleanup gaussian filter - dt_gaussian_free_cl(g); - g = NULL; - - // copy dev_mem -> buf - err = dt_opencl_copy_device_to_host(devid, buf, dev_mem, width, height, bpp); - if(err != CL_SUCCESS) goto error; - - // free dev_mem - dt_opencl_release_mem_object(dev_mem); - - // end timer - double end = dt_get_wtime(); - - dt_free_align(buf); - free_tea_states(tea_states); - return (end - start); - -error: - dt_gaussian_free_cl(g); - dt_free_align(buf); - free_tea_states(tea_states); - dt_opencl_release_mem_object(dev_mem); - return FLT_MAX; -} - -static float _opencl_benchmark_cpu( - const size_t width, - const size_t height, - const int count, - const float sigma) -{ - const int bpp = 4 * sizeof(float); - float *buf = NULL; - dt_gaussian_t *g = NULL; - - const float Labmax[] = { FLT_MAX, FLT_MAX, FLT_MAX, FLT_MAX }; - const float Labmin[] = { -FLT_MAX, -FLT_MAX, -FLT_MAX, -FLT_MAX }; - - const size_t nthreads = dt_get_num_threads(); - unsigned int *const tea_states = alloc_tea_states(nthreads); - - buf = dt_alloc_align(64, width * height * bpp); - if(buf == NULL) goto error; - -#ifdef _OPENMP -#pragma omp parallel for default(none) num_threads(nthreads) \ - dt_omp_firstprivate(height, width, tea_states) \ - shared(buf) -#endif - for(size_t j = 0; j < height; j++) - { - const size_t threadnum = dt_get_thread_num(); - unsigned int *tea_state = get_tea_state(tea_states,threadnum); - tea_state[0] = j + threadnum; - size_t index = j * 4 * width; - for(int i = 0; i < 4 * width; i++) - { - encrypt_tea(tea_state); - buf[index + i] = 100.0f * tpdf(tea_state[0]); - } - } - - // start timer - double start = dt_get_wtime(); - - // prepare gaussian filter - g = dt_gaussian_init(width, height, 4, Labmax, Labmin, sigma, 0); - if(!g) goto error; - - // gaussian blur - for(int n = 0; n < count; n++) - { - dt_gaussian_blur(g, buf, buf); - } - - // cleanup gaussian filter - dt_gaussian_free(g); - g = NULL; - - // end timer - double end = dt_get_wtime(); - - dt_free_align(buf); - free_tea_states(tea_states); - return (end - start); - -error: - dt_gaussian_free(g); - dt_free_align(buf); - free_tea_states(tea_states); - return FLT_MAX; -} - gboolean dt_opencl_finish(const int devid) { dt_opencl_t *cl = darktable.opencl; if(!cl->inited || devid < 0) return FALSE; - cl_int err = (cl->dlocl->symbols->dt_clFinish)(cl->dev[devid].cmd_queue); + const cl_int err = (cl->dlocl->symbols->dt_clFinish)(cl->dev[devid].cmd_queue); // take the opportunity to release some event handles, but without printing // summary statistics @@ -1834,14 +1686,6 @@ return TRUE; } -gboolean dt_opencl_enqueue_barrier(const int devid) -{ - dt_opencl_t *cl = darktable.opencl; - if(!_cldev_running(devid)) return TRUE; - return ((cl->dlocl->symbols->dt_clEnqueueBarrier)(cl->dev[devid].cmd_queue)) - ? TRUE : FALSE; -} - static int _take_from_list(int *list, int value) { int result = -1; @@ -1862,13 +1706,12 @@ static int _device_by_cname(const char *name) { dt_opencl_t *cl = darktable.opencl; - int devs = cl->num_devs; char tmp[2048] = { 0 }; int result = -1; _ascii_str_canonical(name, tmp, sizeof(tmp)); - for(int i = 0; i < devs; i++) + for(int i = 0; i < cl->num_devs; i++) { if(!strcmp(tmp, cl->dev[i].cname)) { @@ -1951,7 +1794,7 @@ int *priority_list, int *mandatory) { - int devs = cl->num_devs; + const int devs = cl->num_devs; int count = 0; int *full = malloc(sizeof(int) * (devs + 1)); int mnd = 0; @@ -2119,7 +1962,7 @@ dt_pthread_mutex_lock(&cl->lock); - size_t prio_size = sizeof(int) * (cl->num_devs + 1); + const size_t prio_size = sizeof(int) * (cl->num_devs + 1); int *priority = (int *)malloc(prio_size); int mandatory; @@ -2168,7 +2011,7 @@ { if(!dt_pthread_mutex_BAD_trylock(&cl->dev[*prio].lock)) { - int devid = *prio; + const int devid = *prio; free(priority); return devid; } @@ -2222,7 +2065,7 @@ "[opencl_fopen_stat] could not open file `%s'!\n", filename); return NULL; } - int fd = fileno(f); + const int fd = fileno(f); if(fstat(fd, st) < 0) { dt_print(DT_DEBUG_OPENCL | DT_DEBUG_VERBOSE, @@ -2260,7 +2103,7 @@ continue; } - size_t filesize = filestat.st_size; + const size_t filesize = filestat.st_size; char *file = (char *)malloc(filesize); if(!file) @@ -2272,7 +2115,7 @@ continue; } - size_t rd = fread(file, sizeof(char), filesize, f); + const size_t rd = fread(file, sizeof(char), filesize, f); fclose(f); if(rd != filesize) @@ -2294,6 +2137,7 @@ static gboolean _opencl_load_program( const int dev, const int prog, + const char *programname, const char *filename, const char *binname, const char *cachedir, @@ -2327,7 +2171,7 @@ FILE *f = fopen_stat(filename, &filestat); if(!f) return FALSE; - size_t filesize = filestat.st_size; + const size_t filesize = filestat.st_size; char *file = (char *)malloc(filesize + 2048); size_t rd = fread(file, sizeof(char), filesize, f); fclose(f); @@ -2460,6 +2304,8 @@ "[opencl_load_program] could not load cached binary program," " trying to compile source\n"); + dt_control_log(_("building OpenCL program %s for %s"), + programname, cl->dev[dev].fullname); cl->dev[dev].program[prog] = (cl->dlocl->symbols->dt_clCreateProgramWithSource)( cl->dev[dev].context, 1, (const char **)&file, &filesize, &err); free(file); @@ -2607,35 +2453,33 @@ { if(cl->dev[dev].devid == devices[i]) { + char dup[PATH_MAX] = { 0 }; + g_strlcpy(dup, binname, sizeof(dup)); + char *bname = basename(dup); // save opencl compiled binary as md5sum-named file - char link_dest[PATH_MAX] = { 0 }; - snprintf(link_dest, sizeof(link_dest), "%s" G_DIR_SEPARATOR_S "%s", + char filename[PATH_MAX] = { 0 }; +#if defined(_WIN32) + snprintf(filename, sizeof(filename), "%s" G_DIR_SEPARATOR_S "%s.%s", + cachedir, bname, md5sum); +#else + snprintf(filename, sizeof(filename), "%s" G_DIR_SEPARATOR_S "%s", cachedir, md5sum); - FILE *f = g_fopen(link_dest, "wb"); +#endif //defined(_WIN32) + FILE *f = g_fopen(filename, "wb"); if(!f) goto ret; size_t bytes_written = fwrite(binaries[i], sizeof(char), binary_sizes[i], f); if(bytes_written != binary_sizes[i]) goto ret; fclose(f); +#if !defined(_WIN32) // create link (e.g. basic.cl.bin -> f1430102c53867c162bb60af6c163328) char cwd[PATH_MAX] = { 0 }; if(!getcwd(cwd, sizeof(cwd))) goto ret; if(chdir(cachedir) != 0) goto ret; - char dup[PATH_MAX] = { 0 }; - g_strlcpy(dup, binname, sizeof(dup)); - char *bname = basename(dup); -#if defined(_WIN32) - //CreateSymbolicLink in Windows requires admin privileges, which we don't want/need - //store has using a simple filerename - char finalfilename[PATH_MAX] = { 0 }; - snprintf(finalfilename, sizeof(finalfilename), "%s" G_DIR_SEPARATOR_S "%s.%s", - cachedir, bname, md5sum); - rename(link_dest, finalfilename); -#else if(symlink(md5sum, bname) != 0) goto ret; -#endif //!defined(_WIN32) if(chdir(cwd) != 0) goto ret; +#endif //!defined(_WIN32) } } err = CL_SUCCESS; // all writings done without an error @@ -2648,7 +2492,7 @@ free(devices); if(err != CL_SUCCESS) dt_print(DT_DEBUG_OPENCL, - "[dt_opencl_build_program] problems while writing cl files\n"); + "[dt_opencl_build_program] problems while writing OpenCL kernel files\n"); } return err != CL_SUCCESS; @@ -2657,51 +2501,56 @@ int dt_opencl_create_kernel(const int prog, const char *name) { dt_opencl_t *cl = darktable.opencl; - if(!cl->inited) return -1; - if(prog < 0 || prog >= DT_OPENCL_MAX_PROGRAMS) return -1; + + static int k = 0; + cl->name_saved[k] = name; + cl->program_saved[k] = prog; + + if(k >= DT_OPENCL_MAX_KERNELS) + { + dt_print(DT_DEBUG_OPENCL, + "[opencl_create_kernel] too many kernels! can't create kernel `%s'\n", + name); + return -1; + } + return k++; +} + + +static gboolean _check_kernel(const int dev, const int kernel) +{ + dt_opencl_t *cl = darktable.opencl; + + if(!cl->inited || dev < 0) return FALSE; + if(kernel < 0 || kernel >= DT_OPENCL_MAX_KERNELS) return FALSE; + + if(cl->dev[dev].kernel_used[kernel]) return TRUE; + + const int prog = cl->program_saved[kernel]; + if(prog < 0 || prog >= DT_OPENCL_MAX_PROGRAMS) return FALSE; dt_pthread_mutex_lock(&cl->lock); - int k = 0; - for(int dev = 0; dev < cl->num_devs; dev++) + + cl_int err; + if(!cl->dev[dev].kernel_used[kernel] + && cl->name_saved[kernel]) { - cl_int err; - for(; k < DT_OPENCL_MAX_KERNELS; k++) - if(!cl->dev[dev].kernel_used[k]) - { - cl->dev[dev].kernel_used[k] = 1; - cl->dev[dev].kernel[k] = - (cl->dlocl->symbols->dt_clCreateKernel) - (cl->dev[dev].program[prog], name, &err); - if(err != CL_SUCCESS) - { - dt_print(DT_DEBUG_OPENCL, - "[opencl_create_kernel] could not create kernel `%s'! (%s)\n", - name, cl_errstr(err)); - cl->dev[dev].kernel_used[k] = 0; - goto error; - } - else - break; - } - if(k < DT_OPENCL_MAX_KERNELS) - { - dt_print(DT_DEBUG_OPENCL | DT_DEBUG_VERBOSE, - "[opencl_create_kernel] successfully loaded kernel `%s' (%d)" - " for device %d\n", - name, k, dev); - } - else + cl->dev[dev].kernel_used[kernel] = 1; + cl->dev[dev].kernel[kernel] = + (cl->dlocl->symbols->dt_clCreateKernel) + (cl->dev[dev].program[prog], cl->name_saved[kernel], &err); + if(err != CL_SUCCESS) { dt_print(DT_DEBUG_OPENCL, - "[opencl_create_kernel] too many kernels! can't create kernel `%s'\n", - name); - goto error; + "[opencl_create_kernel] could not create kernel `%s'! (%s)\n", + cl->name_saved[kernel], cl_errstr(err)); + cl->dev[dev].kernel_used[kernel] = 0; + cl->name_saved[kernel] = NULL; // don't try again + dt_pthread_mutex_unlock(&cl->lock); + return FALSE; } } dt_pthread_mutex_unlock(&cl->lock); - return k; -error: - dt_pthread_mutex_unlock(&cl->lock); - return -1; + return TRUE; } void dt_opencl_free_kernel(const int kernel) @@ -2760,10 +2609,9 @@ const int kernel, size_t *kernelworkgroupsize) { - dt_opencl_t *cl = darktable.opencl; - if(!cl->inited || dev < 0) return -1; - if(kernel < 0 || kernel >= DT_OPENCL_MAX_KERNELS) return -1; + if(!_check_kernel(dev, kernel)) return -1; + dt_opencl_t *cl = darktable.opencl; return (cl->dlocl->symbols->dt_clGetKernelWorkGroupInfo)(cl->dev[dev].kernel[kernel], cl->dev[dev].devid, CL_KERNEL_WORK_GROUP_SIZE, @@ -2778,9 +2626,9 @@ const size_t size, const void *arg) { + if(!_check_kernel(dev, kernel)) return -1; + dt_opencl_t *cl = darktable.opencl; - if(!cl->inited || dev < 0) return -1; - if(kernel < 0 || kernel >= DT_OPENCL_MAX_KERNELS) return -1; return (cl->dlocl->symbols->dt_clSetKernelArg) (cl->dev[dev].kernel[kernel], num, size, arg); } @@ -2793,7 +2641,7 @@ static struct { const size_t marker; const size_t size; const void *ptr; } test = { CLWRAP(0, 0) }; - int err = CL_SUCCESS; + cl_int err = CL_SUCCESS; do { size_t marker = va_arg(ap, size_t); @@ -2851,7 +2699,7 @@ if(darktable.unmuted & DT_DEBUG_OPENCL) (cl->dlocl->symbols->dt_clGetKernelInfo)(cl->dev[dev].kernel[kernel], CL_KERNEL_FUNCTION_NAME, 256, buf, NULL); - cl_event *eventp = dt_opencl_events_get_slot(dev, buf); + cl_event *eventp = _opencl_events_get_slot(dev, buf); cl_int err = (cl->dlocl->symbols->dt_clEnqueueNDRangeKernel)(cl->dev[dev].cmd_queue, cl->dev[dev].kernel[kernel], dimensions, NULL, sizes, @@ -2967,7 +2815,7 @@ if(!_cldev_running(devid)) return DT_OPENCL_NODEVICE; - cl_event *eventp = dt_opencl_events_get_slot(devid, + cl_event *eventp = _opencl_events_get_slot(devid, "[Read Image (from device to host)]"); return (darktable.opencl->dlocl->symbols->dt_clEnqueueReadImage) @@ -3048,7 +2896,7 @@ if(!_cldev_running(devid)) return DT_OPENCL_NODEVICE; - cl_event *eventp = dt_opencl_events_get_slot(devid, + cl_event *eventp = _opencl_events_get_slot(devid, "[Write Image (from host to device)]"); const cl_int err = (darktable.opencl->dlocl->symbols->dt_clEnqueueWriteImage) @@ -3070,7 +2918,7 @@ if(!_cldev_running(devid)) return DT_OPENCL_NODEVICE; - cl_event *eventp = dt_opencl_events_get_slot(devid, "[Copy Image (on device)]"); + cl_event *eventp = _opencl_events_get_slot(devid, "[Copy Image (on device)]"); const cl_int err = (darktable.opencl->dlocl->symbols->dt_clEnqueueCopyImage) (darktable.opencl->dev[devid].cmd_queue, src, dst, orig_src, orig_dst, region, 0, NULL, eventp); @@ -3094,7 +2942,7 @@ if(!_cldev_running(devid)) return DT_OPENCL_NODEVICE; - cl_event *eventp = dt_opencl_events_get_slot(devid, "[Copy Image to Buffer (on device)]"); + cl_event *eventp = _opencl_events_get_slot(devid, "[Copy Image to Buffer (on device)]"); const cl_int err = (darktable.opencl->dlocl->symbols->dt_clEnqueueCopyImageToBuffer) (darktable.opencl->dev[devid].cmd_queue, src_image, dst_buffer, origin, region, offset, 0, NULL, eventp); @@ -3118,7 +2966,7 @@ if(!_cldev_running(devid)) return DT_OPENCL_NODEVICE; - cl_event *eventp = dt_opencl_events_get_slot(devid, "[Copy Buffer to Image (on device)]"); + cl_event *eventp = _opencl_events_get_slot(devid, "[Copy Buffer to Image (on device)]"); const cl_int err = (darktable.opencl->dlocl->symbols->dt_clEnqueueCopyBufferToImage) (darktable.opencl->dev[devid].cmd_queue, src_buffer, dst_image, offset, origin, region, 0, NULL, eventp); @@ -3143,7 +2991,7 @@ return DT_OPENCL_NODEVICE; cl_event *eventp = - dt_opencl_events_get_slot(devid, "[Copy Buffer to Buffer (on device)]"); + _opencl_events_get_slot(devid, "[Copy Buffer to Buffer (on device)]"); const cl_int err = (darktable.opencl->dlocl->symbols->dt_clEnqueueCopyBuffer) (darktable.opencl->dev[devid].cmd_queue, src_buffer, dst_buffer, srcoffset, @@ -3166,7 +3014,7 @@ if(!_cldev_running(devid)) return DT_OPENCL_NODEVICE; - cl_event *eventp = dt_opencl_events_get_slot + cl_event *eventp = _opencl_events_get_slot (devid, "[Read Buffer (from device to host)]"); return (darktable.opencl->dlocl->symbols->dt_clEnqueueReadBuffer) @@ -3185,7 +3033,7 @@ if(!_cldev_running(devid)) return DT_OPENCL_NODEVICE; - cl_event *eventp = dt_opencl_events_get_slot + cl_event *eventp = _opencl_events_get_slot (devid, "[Write Buffer (from host to device)]"); return (darktable.opencl->dlocl->symbols->dt_clEnqueueWriteBuffer) @@ -3220,8 +3068,7 @@ void *dt_opencl_copy_host_to_device(const int devid, void *host, - const int - width, + const int width, const int height, const int bpp) { @@ -3250,11 +3097,11 @@ else return NULL; - // TODO: if fmt = uint16_t, blow up to 4xuint16_t and copy manually! - cl_mem dev = (darktable.opencl->dlocl->symbols->dt_clCreateImage2D) - (darktable.opencl->dev[devid].context, - CL_MEM_READ_WRITE | CL_MEM_COPY_HOST_PTR, &fmt, width, height, - rowpitch, host, &err); + const cl_image_desc desc = (cl_image_desc) + {CL_MEM_OBJECT_IMAGE2D, width, height, 0, 0, rowpitch, 0, 0, 0, NULL}; + + cl_mem dev = (darktable.opencl->dlocl->symbols->dt_clCreateImage) + (darktable.opencl->dev[devid].context, CL_MEM_READ_WRITE | CL_MEM_COPY_HOST_PTR, &fmt, &desc, host, &err); if(err != CL_SUCCESS) dt_print(DT_DEBUG_OPENCL, "[opencl copy_host_to_device]" @@ -3296,7 +3143,7 @@ cl_int err = CL_SUCCESS; void *ptr; - cl_event *eventp = dt_opencl_events_get_slot(devid, "[Map Buffer]"); + cl_event *eventp = _opencl_events_get_slot(devid, "[Map Buffer]"); ptr = (darktable.opencl->dlocl->symbols->dt_clEnqueueMapBuffer) (darktable.opencl->dev[devid].cmd_queue, buffer, blocking ? CL_TRUE : CL_FALSE, @@ -3317,7 +3164,7 @@ if(!darktable.opencl->inited) return DT_OPENCL_NODEVICE; - cl_event *eventp = dt_opencl_events_get_slot(devid, "[Unmap Mem Object]"); + cl_event *eventp = _opencl_events_get_slot(devid, "[Unmap Mem Object]"); cl_int err = (darktable.opencl->dlocl->symbols->dt_clEnqueueUnmapMemObject) (darktable.opencl->dev[devid].cmd_queue, mem_object, mapped_ptr, 0, NULL, eventp); @@ -3350,15 +3197,16 @@ else return NULL; - cl_mem dev = (darktable.opencl->dlocl->symbols->dt_clCreateImage2D) - (darktable.opencl->dev[devid].context, CL_MEM_READ_WRITE, &fmt, - width, height, 0, NULL, &err); + const cl_image_desc desc = (cl_image_desc) + {CL_MEM_OBJECT_IMAGE2D, width, height, 0, 0, 0, 0, 0, 0, NULL}; + + cl_mem dev = (darktable.opencl->dlocl->symbols->dt_clCreateImage) + (darktable.opencl->dev[devid].context, CL_MEM_READ_WRITE, &fmt, &desc, NULL, &err); if(err != CL_SUCCESS) dt_print(DT_DEBUG_OPENCL, "[opencl alloc_device] could not alloc img buffer on device %d: %s\n", - devid, - cl_errstr(err)); + devid, cl_errstr(err)); _check_clmem_err(devid, err); dt_opencl_memory_statistics(devid, dev, OPENCL_MEMORY_ADD); @@ -3389,16 +3237,19 @@ else return NULL; - cl_mem dev = (darktable.opencl->dlocl->symbols->dt_clCreateImage2D) + const cl_image_desc desc = (cl_image_desc) + {CL_MEM_OBJECT_IMAGE2D, width, height, 0, 0, rowpitch, 0, 0, 0, NULL}; + + cl_mem dev = (darktable.opencl->dlocl->symbols->dt_clCreateImage) (darktable.opencl->dev[devid].context, CL_MEM_READ_WRITE | ((host == NULL) ? CL_MEM_ALLOC_HOST_PTR : CL_MEM_USE_HOST_PTR), - &fmt, width, height, - rowpitch, host, &err); + &fmt, &desc, host, &err); + if(err != CL_SUCCESS) dt_print(DT_DEBUG_OPENCL, "[opencl alloc_device_use_host_pointer]" - " could not alloc img buffer on device %d: %s\n", devid, - cl_errstr(err)); + " could not allocate cl image on device %d: %s\n", + devid, cl_errstr(err)); _check_clmem_err(devid, err); dt_opencl_memory_statistics(devid, dev, OPENCL_MEMORY_ADD); @@ -3419,9 +3270,8 @@ CL_MEM_READ_WRITE, size, NULL, &err); if(err != CL_SUCCESS) dt_print(DT_DEBUG_OPENCL, - "[opencl alloc_device_buffer] could not alloc buffer on device %d: %s\n", - devid, - cl_errstr(err)); + "[opencl alloc_device_buffer] could not allocate cl buffer on device %d: %s\n", + devid, cl_errstr(err)); _check_clmem_err(devid, err); dt_opencl_memory_statistics(devid, buf, OPENCL_MEMORY_ADD); @@ -3443,9 +3293,8 @@ flags, size, NULL, &err); if(err != CL_SUCCESS) dt_print(DT_DEBUG_OPENCL, - "[opencl alloc_device_buffer] could not alloc buffer on device %d: %d\n", - devid, - err); + "[opencl alloc_device_buffer] could not allocate cl buffer on device %d: %s\n", + devid, cl_errstr(err)); _check_clmem_err(devid, err); dt_opencl_memory_statistics(devid, buf, OPENCL_MEMORY_ADD); @@ -3453,7 +3302,7 @@ return buf; } -size_t dt_opencl_get_mem_object_size(cl_mem mem) +size_t dt_opencl_get_mem_object_size(const cl_mem mem) { size_t size; if(mem == NULL) return 0; @@ -3464,7 +3313,7 @@ return (err == CL_SUCCESS) ? size : 0; } -int dt_opencl_get_mem_context_id(cl_mem mem) +int dt_opencl_get_mem_context_id(const cl_mem mem) { cl_context context; if(mem == NULL) return -1; @@ -3483,7 +3332,7 @@ return -1; } -int dt_opencl_get_image_width(cl_mem mem) +int dt_opencl_get_image_width(const cl_mem mem) { size_t size; if(mem == NULL) return 0; @@ -3495,7 +3344,7 @@ return (err == CL_SUCCESS) ? (int)size : 0; } -int dt_opencl_get_image_height(cl_mem mem) +int dt_opencl_get_image_height(const cl_mem mem) { size_t size; if(mem == NULL) return 0; @@ -3507,7 +3356,7 @@ return (err == CL_SUCCESS) ? (int)size : 0; } -int dt_opencl_get_image_element_size(cl_mem mem) +int dt_opencl_get_image_element_size(const cl_mem mem) { size_t size; if(mem == NULL) return 0; @@ -3544,7 +3393,7 @@ } } -void dt_opencl_memory_statistics(int devid, cl_mem mem, dt_opencl_memory_t action) +void dt_opencl_memory_statistics(int devid, const cl_mem mem, const dt_opencl_memory_t action) { if(!((darktable.unmuted & DT_DEBUG_MEMORY) && (darktable.unmuted & DT_DEBUG_OPENCL))) return; @@ -3566,14 +3415,14 @@ if(darktable.unmuted & DT_DEBUG_MEMORY) dt_print(DT_DEBUG_OPENCL, - "[opencl memory] device %d: %zu bytes (%.1f MB) in use\n", + "[opencl memory] device %d: %zu bytes (%.1f MB) in use\n", devid, darktable.opencl->dev[devid].memory_in_use, (float)darktable.opencl->dev[devid].memory_in_use/(1024*1024)); } /* amount of graphics memory declared as available depends on max_global_mem and "resourcelevel". We garantee - - a headroom of 400MB in all cases not using tuned cl + - a headroom of DT_OPENCL_DEFAULT_HEADROOM MB in all cases not using tuned cl - 256MB to simulate a minimum system - 2GB to simalate a reference system @@ -3589,28 +3438,16 @@ if(!_cldev_running(devid)) return; static int oldlevel = -999; - static int oldtuned = -999; + static int oldtunehead = -999; - const dt_opencl_tunemode_t tunemode = res->tunemode; - cl->dev[devid].tuneactive = tunemode & DT_OPENCL_TUNE_MEMSIZE; + const gboolean tunehead = res->tunehead; + const int level = res->level; - const dt_opencl_pinmode_t pinmode = cl->dev[devid].pinned_memory; - const gboolean safe_clmemsize = - cl->dev[devid].max_global_mem < - (size_t) (darktable.dtresources.total_memory / 16lu / cl->num_devs); - const gboolean want_pinned = (pinmode & DT_OPENCL_PINNING_ON) - || (tunemode & DT_OPENCL_TUNE_PINNED); - - if(((pinmode & DT_OPENCL_PINNING_DISABLED) == 0) - && ((cl->dev[devid].runtime_error & DT_OPENCL_TUNE_PINNED) == 0) - && want_pinned - && safe_clmemsize) - cl->dev[devid].tuneactive |= DT_OPENCL_TUNE_PINNED; + cl->dev[devid].tunehead = tunehead; - int level = res->level; - const gboolean info = ((oldlevel != level) || (oldtuned != tunemode)); + const gboolean info = ((oldlevel != level) || (oldtunehead != tunehead)); oldlevel = level; - oldtuned = tunemode; + oldtunehead = tunehead; if(level < 0) { @@ -3619,22 +3456,22 @@ dt_print(DT_DEBUG_OPENCL | DT_DEBUG_MEMORY, "[dt_opencl_check_tuning] reference mode %i," " use %luMB (pinning=%s) on device `%s' id=%i\n", - level, cl->dev[devid].used_available / 1024lu / 1024lu, - (cl->dev[devid].tuneactive & DT_OPENCL_TUNE_PINNED) ? "ON" : "OFF", + level, + cl->dev[devid].used_available / 1024lu / 1024lu, + cl->dev[devid].pinned_memory ? "ON" : "OFF", cl->dev[devid].fullname, devid); return; } const size_t allmem = cl->dev[devid].max_global_mem; - if(cl->dev[devid].tuneactive & DT_OPENCL_TUNE_MEMSIZE) + if(cl->dev[devid].tunehead) { - const int headroom = (cl->dev[devid].forced_headroom) - ? cl->dev[devid].forced_headroom - : 400; + const int headroom = (cl->dev[devid].headroom) + ? cl->dev[devid].headroom + : DT_OPENCL_DEFAULT_HEADROOM; const int reserved_mb = - MAX(1, headroom) + ((cl->dev[devid].runtime_error & DT_OPENCL_TUNE_MEMSIZE) - ? 400 : 0); + MAX(1, headroom) + (cl->dev[devid].clmem_error ? DT_OPENCL_DEFAULT_HEADROOM : 0); const int global_mb = cl->dev[devid].max_global_mem / 1024lu / 1024lu; cl->dev[devid].used_available = (size_t) (MAX(0, global_mb - reserved_mb)) * 1024ul * 1024ul; @@ -3642,7 +3479,7 @@ else { // calculate data from fractions - const size_t disposable = allmem - 400ul * 1024ul * 1024ul; + const size_t disposable = allmem - DT_OPENCL_DEFAULT_HEADROOM * 1024ul * 1024ul; const int fraction = MIN(1024lu, MAX(0, res->fractions[res->group + 3])); cl->dev[devid].used_available = MAX(256ul * 1024ul * 1024ul, disposable / 1024ul * fraction); @@ -3650,11 +3487,12 @@ if(info) dt_print(DT_DEBUG_OPENCL | DT_DEBUG_MEMORY, - "[dt_opencl_check_tuning] use %luMB (tunemem=%s, pinning=%s) on device `%s' id=%i\n", - cl->dev[devid].used_available / 1024lu / 1024lu, - (cl->dev[devid].tuneactive & DT_OPENCL_TUNE_MEMSIZE) ? "ON" : "OFF", - (cl->dev[devid].tuneactive & DT_OPENCL_TUNE_PINNED) ? "ON" : "OFF", - cl->dev[devid].fullname, devid); + "[dt_opencl_check_tuning] use %luMB (headroom=%s, pinning=%s)" + " on device `%s' id=%i\n", + cl->dev[devid].used_available / 1024lu / 1024lu, + cl->dev[devid].tunehead ? "ON" : "OFF", + cl->dev[devid].pinned_memory ? "ON" : "OFF", + cl->dev[devid].fullname, devid); } cl_ulong dt_opencl_get_device_available(const int devid) @@ -3778,22 +3616,6 @@ return profile; } -int dt_opencl_get_tuning_mode(void) -{ - int res = DT_OPENCL_TUNE_NOTHING; - const char *pstr = dt_conf_get_string_const("opencl_tuning_mode"); - if(pstr) - { - if(!strcmp(pstr, "memory size")) - res = DT_OPENCL_TUNE_MEMSIZE; - else if(!strcmp(pstr, "memory transfer")) - res = DT_OPENCL_TUNE_PINNED; - else if(!strcmp(pstr, "memory size and transfer")) - res = DT_OPENCL_TUNE_MEMSIZE | DT_OPENCL_TUNE_PINNED; - } - return res; -} - /** set opencl specific synchronization timeout */ static void dt_opencl_set_synchronization_timeout(int value) { @@ -3834,7 +3656,7 @@ * are locked upstream */ /** get next free slot in eventlist (and manage size of eventlist) */ -cl_event *dt_opencl_events_get_slot(const int devid, const char *tag) +static cl_event *_opencl_events_get_slot(const int devid, const char *tag) { dt_opencl_t *cl = darktable.opencl; if(!cl->inited || devid < 0) return NULL; @@ -3863,7 +3685,7 @@ *eventlist = NULL; *eventtags = NULL; dt_print(DT_DEBUG_OPENCL, - "[dt_opencl_events_get_slot] NO eventlist for device %i\n", devid); + "[opencl_events_get_slot] NO eventlist for device %i\n", devid); return NULL; } *maxevents = newevents; @@ -3902,7 +3724,7 @@ if(!neweventlist || !neweventtags) { dt_print(DT_DEBUG_OPENCL, - "[dt_opencl_events_get_slot] NO new eventlist with size %i for device %i\n", + "[opencl_events_get_slot] NO new eventlist with size %i for device %i\n", newevents, devid); free(neweventlist); free(neweventtags); @@ -3970,7 +3792,7 @@ /** Wait for events in eventlist to terminate -> this is a blocking synchronization point! Does not flush eventlist. Side effect: might adjust numevents. */ -void dt_opencl_events_wait_for(const int devid) +static void _opencl_events_wait_for(const int devid) { dt_opencl_t *cl = darktable.opencl; if(!cl->inited || devid < 0) return; @@ -4008,6 +3830,100 @@ cl_errstr(err), devid); } +/** display OpenCL profiling information. If "aggregated" is TRUE, try + * to generate summarized info for each kernel */ +static void _opencl_events_profiling(const int devid, const gboolean aggregated) +{ + dt_opencl_t *cl = darktable.opencl; + if(!cl->inited || devid < 0) return; + if(!cl->dev[devid].use_events) return; + + cl_event **eventlist = &(cl->dev[devid].eventlist); + dt_opencl_eventtag_t **eventtags = &(cl->dev[devid].eventtags); + int *numevents = &(cl->dev[devid].numevents); + int *eventsconsolidated = &(cl->dev[devid].eventsconsolidated); + int *lostevents = &(cl->dev[devid].lostevents); + + if(*eventlist == NULL + || *numevents == 0 + || *eventtags == NULL + || *eventsconsolidated == 0) + return; // nothing to do + + char **tags = malloc(sizeof(char *) * (*eventsconsolidated + 1)); + float *timings = malloc(sizeof(float) * (*eventsconsolidated + 1)); + int items = 1; + tags[0] = ""; + timings[0] = 0.0f; + + // get profiling info and arrange it + for(int k = 0; k < *eventsconsolidated; k++) + { + // if aggregated is TRUE, try to sum up timings for multiple runs of each kernel + if(aggregated) + { + // linear search: this is not efficient at all but acceptable given the limited + // number of events (ca. 10 - 20) + int tagfound = -1; + for(int i = 0; i < items; i++) + { + if(!strncmp(tags[i], (*eventtags)[k].tag, DT_OPENCL_EVENTNAMELENGTH)) + { + tagfound = i; + break; + } + } + + if(tagfound >= 0) // tag was already detected before + { + // sum up timings + timings[tagfound] += (*eventtags)[k].timelapsed * 1e-9; + } + else // tag is new + { + // make new entry + items++; + tags[items - 1] = (*eventtags)[k].tag; + timings[items - 1] = (*eventtags)[k].timelapsed * 1e-9; + } + } + + else // no aggregated info wanted -> arrange event by event + { + items++; + tags[items - 1] = (*eventtags)[k].tag; + timings[items - 1] = (*eventtags)[k].timelapsed * 1e-9; + } + } + + // now display profiling info + dt_print(DT_DEBUG_OPENCL, + "[opencl_profiling] profiling device %d ('%s'):\n", + devid, cl->dev[devid].fullname); + + float total = 0.0f; + for(int i = 1; i < items; i++) + { + dt_print(DT_DEBUG_OPENCL, "[opencl_profiling] spent %7.4f seconds in %s\n", + (double)timings[i], + tags[i][0] == '\0' ? "<?>" : tags[i]); + total += timings[i]; + } + // aggregated timing info for items without tag (if any) + if(timings[0] != 0.0f) + { + dt_print(DT_DEBUG_OPENCL, "[opencl_profiling] spent %7.4f seconds (unallocated)\n", + (double)timings[0]); + total += timings[0]; + } + + dt_print(DT_DEBUG_OPENCL, + "[opencl_profiling] spent %7.4f seconds totally in" + " command queue (with %d event%s missing)\n", + (double)total, *lostevents, *lostevents == 1 ? "" : "s"); + free(timings); + free(tags); +} /** Wait for events in eventlist to terminate, check for return status and profiling info of events. If "reset" is TRUE report summary @@ -4034,7 +3950,7 @@ return CL_COMPLETE; // nothing to do, no news is good news // Wait for command queue to terminate (side effect: might adjust *numevents) - dt_opencl_events_wait_for(devid); + _opencl_events_wait_for(devid); // now check return status and profiling data of all newly terminated events for(int k = *eventsconsolidated; k < *numevents; k++) @@ -4098,7 +4014,7 @@ if(reset) { // output profiling info if wanted - if(darktable.unmuted & DT_DEBUG_PERF) dt_opencl_events_profiling(devid, 1); + if(darktable.unmuted & DT_DEBUG_PERF) _opencl_events_profiling(devid, 1); // reset eventlist structures to empty state dt_opencl_events_reset(devid); @@ -4108,103 +4024,6 @@ } -/** display OpenCL profiling information. If "aggregated" is TRUE, try - * to generate summarized info for each kernel */ -void dt_opencl_events_profiling(const int devid, const int aggregated) -{ - dt_opencl_t *cl = darktable.opencl; - if(!cl->inited || devid < 0) return; - if(!cl->dev[devid].use_events) return; - - cl_event **eventlist = &(cl->dev[devid].eventlist); - dt_opencl_eventtag_t **eventtags = &(cl->dev[devid].eventtags); - int *numevents = &(cl->dev[devid].numevents); - int *eventsconsolidated = &(cl->dev[devid].eventsconsolidated); - int *lostevents = &(cl->dev[devid].lostevents); - - if(*eventlist == NULL - || *numevents == 0 - || *eventtags == NULL - || *eventsconsolidated == 0) - return; // nothing to do - - char **tags = malloc(sizeof(char *) * (*eventsconsolidated + 1)); - float *timings = malloc(sizeof(float) * (*eventsconsolidated + 1)); - int items = 1; - tags[0] = ""; - timings[0] = 0.0f; - - // get profiling info and arrange it - for(int k = 0; k < *eventsconsolidated; k++) - { - // if aggregated is TRUE, try to sum up timings for multiple runs of each kernel - if(aggregated) - { - // linear search: this is not efficient at all but acceptable given the limited - // number of events (ca. 10 - 20) - int tagfound = -1; - for(int i = 0; i < items; i++) - { - if(!strncmp(tags[i], (*eventtags)[k].tag, DT_OPENCL_EVENTNAMELENGTH)) - { - tagfound = i; - break; - } - } - - if(tagfound >= 0) // tag was already detected before - { - // sum up timings - timings[tagfound] += (*eventtags)[k].timelapsed * 1e-9; - } - else // tag is new - { - // make new entry - items++; - tags[items - 1] = (*eventtags)[k].tag; - timings[items - 1] = (*eventtags)[k].timelapsed * 1e-9; - } - } - - else // no aggregated info wanted -> arrange event by event - { - items++; - tags[items - 1] = (*eventtags)[k].tag; - timings[items - 1] = (*eventtags)[k].timelapsed * 1e-9; - } - } - - // now display profiling info - dt_print(DT_DEBUG_OPENCL, - "[opencl_profiling] profiling device %d ('%s'):\n", - devid, cl->dev[devid].fullname); - - float total = 0.0f; - for(int i = 1; i < items; i++) - { - dt_print(DT_DEBUG_OPENCL, "[opencl_profiling] spent %7.4f seconds in %s\n", - (double)timings[i], - tags[i][0] == '\0' ? "<?>" : tags[i]); - total += timings[i]; - } - // aggregated timing info for items without tag (if any) - if(timings[0] != 0.0f) - { - dt_print(DT_DEBUG_OPENCL, "[opencl_profiling] spent %7.4f seconds (unallocated)\n", - (double)timings[0]); - total += timings[0]; - } - - dt_print(DT_DEBUG_OPENCL, - "[opencl_profiling] spent %7.4f seconds totally in" - " command queue (with %d event%s missing)\n", - (double)total, *lostevents, *lostevents == 1 ? "" : "s"); - - free(timings); - free(tags); - - return; -} static int nextpow2(const int n) { @@ -4250,7 +4069,12 @@ || workgroupsize < (size_t)(*blocksizex) * (*blocksizey) || kernelworkgroupsize < (size_t)(*blocksizex) * (*blocksizey)) { - if(*blocksizex == 1 && *blocksizey == 1) return FALSE; + if(*blocksizex == 1 && *blocksizey == 1) + { + dt_print(DT_DEBUG_OPENCL, + "[dt_opencl_local_buffer_opt] no valid resource limits for device %d\n", devid); + return FALSE; + } if(*blocksizex > *blocksizey) *blocksizex >>= 1; diff -Nru darktable-4.4.2/src/common/opencl.h darktable-4.6.1/src/common/opencl.h --- darktable-4.4.2/src/common/opencl.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/opencl.h 2024-02-16 17:31:09.000000000 +0000 @@ -31,8 +31,10 @@ #define DT_OPENCL_MAX_INCLUDES 7 #define DT_OPENCL_VENDOR_AMD 4098 #define DT_OPENCL_VENDOR_NVIDIA 4318 +#define DT_OPENCL_VENDOR_APPLE 16940800 #define DT_OPENCL_VENDOR_INTEL 0x8086u #define DT_OPENCL_CBUFFSIZE 1024 +#define DT_OPENCL_DEFAULT_HEADROOM 600 // some pseudo error codes in dt opencl usage #define DT_OPENCL_DEFAULT_ERROR -999 @@ -63,16 +65,14 @@ #define ROUNDUPDWD(a, b) dt_opencl_dev_roundup_width(a, b) #define ROUNDUPDHT(a, b) dt_opencl_dev_roundup_height(a, b) -#define DT_OPENCL_DEFAULT_COMPILE_INTEL ("") -#define DT_OPENCL_DEFAULT_COMPILE_AMD ("-cl-fast-relaxed-math") -#define DT_OPENCL_DEFAULT_COMPILE_NVIDIA ("-cl-fast-relaxed-math") -#define DT_OPENCL_DEFAULT_COMPILE ("") +#define DT_OPENCL_DEFAULT_COMPILE_DEFAULT ("") +#define DT_OPENCL_DEFAULT_COMPILE_OPTI ("-cl-fast-relaxed-math") #define DT_CLDEVICE_HEAD ("cldevice_v5_") // version for current darktable cl kernels // this is reflected in the kernel directory and allows to // enforce a new kernel compilation cycle -#define DT_OPENCL_KERNELS 1 +#define DT_OPENCL_KERNELS 3 typedef enum dt_opencl_memory_t { @@ -97,19 +97,6 @@ char tag[DT_OPENCL_EVENTNAMELENGTH]; } dt_opencl_eventtag_t; -typedef enum dt_opencl_tunemode_t -{ - DT_OPENCL_TUNE_NOTHING = 0, - DT_OPENCL_TUNE_MEMSIZE = 1, - DT_OPENCL_TUNE_PINNED = 2 -} dt_opencl_tunemode_t; - -typedef enum dt_opencl_pinmode_t -{ - DT_OPENCL_PINNING_OFF = 0, - DT_OPENCL_PINNING_ON = 1, - DT_OPENCL_PINNING_DISABLED = 2 -} dt_opencl_pinmode_t; /** * to support multi-gpu and mixed systems with cpu support, @@ -140,26 +127,21 @@ int totalsuccess; int totallost; int maxeventslot; - int nvidia_sm_20; - const char *vendor; + gboolean nvidia_sm_20; const char *fullname; const char *cname; const char *options; cl_int summary; - // the benchmark value must not be changed by the user - float benchmark; size_t memory_in_use; size_t peak_memory; size_t used_available; - // flags what tuning modes should be used - dt_opencl_tunemode_t tuneactive; - // flags detected errors - dt_opencl_tunemode_t runtime_error; + // flags if we want headroom mode + gboolean tunehead; // if set to TRUE darktable will not use OpenCL kernels which contain atomic operations (example bilateral). // pixelpipe processing will be done on CPU for the affected modules. // useful (only for very old devices) if your OpenCL implementation freezes/crashes on atomics or if // they are processed with a bad performance. - int avoid_atomics; + gboolean avoid_atomics; // pause OpenCL processing for this number of microseconds from time to time int micro_nap; @@ -169,13 +151,18 @@ // this can often be avoided by using indirect transfers via pinned memory, // other devices have more efficient direct memory transfer implementations. // We can't predict on solid grounds if a device belongs to the first or second group, - // also pinned mem transfer requires slightly more video ram plus system memory. - // this holds a bitmask defined by dt_opencl_pinmode_t - // the device specific conf key might hold - // 0 -> disabled by default; might be switched on by tune for performance - // 1 -> enabled by default - // 2 -> disabled under all circumstances. This could/should be used if we give away / ship specific keys for buggy systems - dt_opencl_pinmode_t pinned_memory; + // also pinned mem transfer requires slightly more video ram plus system memory. + // If TRUE in the device-specific conf pinned transfer is enabled + gboolean pinned_memory; + + // keep track of devices using unified memory so we can adopt runtime code + gboolean unified_memory; + // fraction of system memory allowed for a device in percent + float unified_fraction; + + // flags reporting cl runtime error conditions + gboolean pinned_error; + gboolean clmem_error; // in OpenCL processing round width/height of global work groups to a multiple of these values. // reasonable values are powers of 2. this parameter can have high impact on OpenCL performance. @@ -200,12 +187,10 @@ // also used for blacklisted drivers gboolean disabled; - // Some devices are known to be unused by other apps so there is no need to test for available memory at all. - int forced_headroom; + // Some devices are known to be unused by other apps so they can use all memory. + int headroom; - // As the benchmarks are not good enough to calculate tiled-gpu vs untiled-cpu we have a parameter exposed - // in the cldevice conf key to balance this - float advantage; + float advantage; } dt_opencl_device_t; struct dt_bilateral_cl_global_t; @@ -240,8 +225,6 @@ dt_opencl_device_t *dev; dt_dlopencl_t *dlocl; - // we want the cpu benchmark to be available - float cpubenchmark; // global kernels for blending operations. struct dt_blendop_cl_global_t *blendop; @@ -268,6 +251,10 @@ // global kernels for guided filter. struct dt_guided_filter_cl_global_t *guided_filter; + + // saved kernel info for deferred initialisation + int program_saved[DT_OPENCL_MAX_KERNELS]; + const char *name_saved[DT_OPENCL_MAX_KERNELS]; } dt_opencl_t; /** description of memory requirements of local buffer @@ -298,16 +285,13 @@ void dt_opencl_cleanup(dt_opencl_t *cl); const char *cl_errstr(cl_int error); + /** both finish functions return TRUE in case of success */ /** cleans up command queue. */ -int dt_opencl_finish(const int devid); - +gboolean dt_opencl_finish(const int devid); /** cleans up command queue if in synchron mode or while exporting, returns TRUE in case of success */ gboolean dt_opencl_finish_sync_pipe(const int devid, const int pipetype); -/** enqueues a synchronization point. */ -gboolean dt_opencl_enqueue_barrier(const int devid); - /** locks a device for your thread's exclusive use and returns it's id */ int dt_opencl_lock_device(const int pipetype); @@ -381,9 +365,6 @@ /** disable opencl */ void dt_opencl_disable(void); -/** get OpenCL tuning mode flags */ -int dt_opencl_get_tuning_mode(void); - /** runtime check for cl system running */ gboolean dt_opencl_running(void); @@ -498,23 +479,13 @@ int dt_opencl_dev_roundup_width(int size, const int devid); int dt_opencl_dev_roundup_height(int size, const int devid); -/** get next free slot in eventlist and manage size of eventlist */ -cl_event *dt_opencl_events_get_slot(const int devid, const char *tag); - /** reset eventlist to empty state */ void dt_opencl_events_reset(const int devid); -/** Wait for events in eventlist to terminate -> this is a blocking synchronization point - Does not flush eventlist */ -void dt_opencl_events_wait_for(const int devid); - /** Wait for events in eventlist to terminate, check for return status of events and report summary success info (CL_COMPLETE or last error code) */ cl_int dt_opencl_events_flush(const int devid, const gboolean reset); -/** display OpenCL profiling information. If summary is not 0, try to generate summarized info for kernels */ -void dt_opencl_events_profiling(const int devid, const int aggregated); - /** utility function to calculate optimal work group dimensions for a given kernel */ int dt_opencl_local_buffer_opt(const int devid, const int kernel, dt_opencl_local_buffer_t *factors); @@ -565,10 +536,6 @@ { return FALSE; } -static inline gboolean dt_opencl_enqueue_barrier(const int devid) -{ - return -1; -} static inline int dt_opencl_lock_device(const int dev) { return -1; @@ -613,11 +580,6 @@ static inline void dt_opencl_disable(void) { } -/** get OpenCL tuning mode flags */ -static inline int dt_opencl_get_tuning_mode(void) -{ - return 0; -} static inline gboolean dt_opencl_running(void) { return FALSE; @@ -646,23 +608,13 @@ static inline void dt_opencl_release_mem_object(void *mem) { } -static inline void *dt_opencl_events_get_slot(const int devid, const char *tag) -{ - return NULL; -} static inline void dt_opencl_events_reset(const int devid) { } -static inline void dt_opencl_events_wait_for(const int devid) -{ -} static inline int dt_opencl_events_flush(const int devid, const gboolean reset) { return 0; } -static inline void dt_opencl_events_profiling(const int devid, const int aggregated) -{ -} #ifdef __cplusplus } // extern "C" diff -Nru darktable-4.4.2/src/common/opencl_drivers_blacklist.h darktable-4.6.1/src/common/opencl_drivers_blacklist.h --- darktable-4.4.2/src/common/opencl_drivers_blacklist.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/opencl_drivers_blacklist.h 2024-02-16 17:31:09.000000000 +0000 @@ -36,6 +36,7 @@ */ #if defined _WIN32 "neo", + "d3d12", #endif NULL diff -Nru darktable-4.4.2/src/common/ratings.c darktable-4.6.1/src/common/ratings.c --- darktable-4.4.2/src/common/ratings.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/ratings.c 2024-02-16 17:31:09.000000000 +0000 @@ -257,8 +257,7 @@ dt_ratings_apply_on_list(imgs, element, TRUE); // if we are in darkroom we show a message as there might be no other indication - const dt_view_t *v = dt_view_manager_get_current_view(darktable.view_manager); - if(v->view(v) == DT_VIEW_DARKROOM && g_list_is_singleton(imgs) && darktable.develop->preview_pipe) + if(dt_view_get_current() == DT_VIEW_DARKROOM && g_list_is_singleton(imgs) && darktable.develop->preview_pipe) { // we verify that the image is the active one const int id = GPOINTER_TO_INT(imgs->data); diff -Nru darktable-4.4.2/src/common/styles.c darktable-4.6.1/src/common/styles.c --- darktable-4.4.2/src/common/styles.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/styles.c 2024-02-16 17:31:09.000000000 +0000 @@ -96,10 +96,9 @@ static void _apply_style_shortcut_callback(dt_action_t *action) { - const dt_view_t *v = dt_view_manager_get_current_view(darktable.view_manager); GList *imgs = dt_act_on_get_images(TRUE, TRUE, FALSE); - if(v->view(v) == DT_VIEW_DARKROOM) + if(dt_view_get_current() == DT_VIEW_DARKROOM) { const dt_imgid_t imgid = GPOINTER_TO_INT(imgs->data); dt_styles_apply_to_dev(action->label, imgid); @@ -147,7 +146,7 @@ DT_DEBUG_SQLITE3_PREPARE_V2( dt_database_get(darktable.db), - "SELECT rowid,operation" + "SELECT rowid, operation" " FROM data.style_items" " WHERE styleid=?1" " ORDER BY operation, multi_priority ASC", @@ -252,7 +251,8 @@ DT_DEBUG_SQLITE3_PREPARE_V2( dt_database_get(darktable.db), "INSERT INTO data.styles (name, description, id, iop_list)" - " VALUES (?1, ?2, (SELECT COALESCE(MAX(id),0)+1 FROM data.styles), ?3)", -1, &stmt, NULL); + " VALUES (?1, ?2, (SELECT COALESCE(MAX(id),0)+1 FROM data.styles), ?3)", + -1, &stmt, NULL); // clang-format on DT_DEBUG_SQLITE3_BIND_TEXT(stmt, 1, name, -1, SQLITE_STATIC); DT_DEBUG_SQLITE3_BIND_TEXT(stmt, 2, description, -1, SQLITE_STATIC); @@ -644,8 +644,7 @@ /* write current history changes so nothing gets lost, do that only in the darkroom as there is nothing to be saved when in the lighttable (and it would write over current history stack) */ - const dt_view_t *cv = dt_view_manager_get_current_view(darktable.view_manager); - if(cv->view(cv) == DT_VIEW_DARKROOM) dt_dev_write_history(darktable.develop); + if(dt_view_get_current() == DT_VIEW_DARKROOM) dt_dev_write_history(darktable.develop); const int mode = dt_conf_get_int("plugins/lighttable/style/applymode"); const gboolean is_overwrite = (mode == DT_STYLE_HISTORY_OVERWRITE); @@ -701,8 +700,8 @@ /* write current history changes so nothing gets lost, do that only in the darkroom as there is nothing to be saved when in the lighttable (and it would write over current history stack) */ - const dt_view_t *cv = dt_view_manager_get_current_view(darktable.view_manager); - if(cv->view((dt_view_t *)cv) == DT_VIEW_DARKROOM) dt_dev_write_history(darktable.develop); + if(dt_view_get_current() == DT_VIEW_DARKROOM) + dt_dev_write_history(darktable.develop); if(!styles && !list) { @@ -765,7 +764,8 @@ const gboolean append) { // get any instance of the same operation so we can copy it - dt_iop_module_t *mod_src = dt_iop_get_module_by_op_priority(dev->iop, style_item->operation, -1); + dt_iop_module_t *mod_src = + dt_iop_get_module_by_op_priority(dev->iop, style_item->operation, -1); if(mod_src) { @@ -798,13 +798,15 @@ && (style_item->blendop_version == dt_develop_blend_version()) && (style_item->blendop_params_size == sizeof(dt_develop_blend_params_t))) { - memcpy(module->blend_params, style_item->blendop_params, sizeof(dt_develop_blend_params_t)); + memcpy(module->blend_params, style_item->blendop_params, + sizeof(dt_develop_blend_params_t)); } else if(style_item->blendop_params - && dt_develop_blend_legacy_params(module, style_item->blendop_params, - style_item->blendop_version, - module->blend_params, dt_develop_blend_version(), - style_item->blendop_params_size) == 0) + && dt_develop_blend_legacy_params + (module, style_item->blendop_params, + style_item->blendop_version, + module->blend_params, dt_develop_blend_version(), + style_item->blendop_params_size) == 0) { // do nothing } @@ -821,15 +823,11 @@ || module->params_size != style_item->params_size || strcmp(style_item->operation, module->op))) { - int legacy_ret = 1; - - if(module->legacy_params) - legacy_ret = - module->legacy_params(module, style_item->params, - labs(style_item->module_version), - module->params, labs(module->version())); - else - legacy_ret = 0; + const int legacy_ret = + dt_iop_legacy_params + (module, + style_item->params, style_item->params_size, style_item->module_version, + &module->params, module->version()); if(legacy_ret == 1) { @@ -853,9 +851,10 @@ { // FIXME: not sure how to handle this here... // quick and dirty hack to handle spot removal legacy_params - /* memcpy(module->blend_params, module->blend_params, sizeof(dt_develop_blend_params_t)); - memcpy(module->blend_params, module->default_blendop_params, - sizeof(dt_develop_blend_params_t)); */ + /* memcpy(module->blend_params, module->blend_params, + sizeof(dt_develop_blend_params_t)); + memcpy(module->blend_params, module->default_blendop_params, + sizeof(dt_develop_blend_params_t)); */ } } @@ -960,13 +959,11 @@ dt_dev_read_history_ext(dev_dest, newimgid, TRUE, -1); - if(darktable.unmuted & DT_DEBUG_IOPORDER) - dt_ioppr_check_iop_order(dev_dest, newimgid, "dt_styles_apply_to_image "); + dt_ioppr_check_iop_order(dev_dest, newimgid, "dt_styles_apply_to_image "); dt_dev_pop_history_items_ext(dev_dest, dev_dest->history_end); - if(darktable.unmuted & DT_DEBUG_IOPORDER) - dt_ioppr_check_iop_order(dev_dest, newimgid, "dt_styles_apply_to_image 1"); + dt_ioppr_check_iop_order(dev_dest, newimgid, "dt_styles_apply_to_image 1"); dt_print(DT_DEBUG_IOPORDER, "[styles_apply_to_image_ext] Apply style on image `%s' id %i, history size %i", @@ -1006,7 +1003,8 @@ style_item->blendop_version = sqlite3_column_int(stmt, 6); style_item->params_size = sqlite3_column_bytes(stmt, 3); style_item->params = (void *)malloc(style_item->params_size); - memcpy(style_item->params, (void *)sqlite3_column_blob(stmt, 3), style_item->params_size); + memcpy(style_item->params, (void *)sqlite3_column_blob(stmt, 3), + style_item->params_size); style_item->blendop_params_size = sqlite3_column_bytes(stmt, 5); style_item->blendop_params = (void *)malloc(style_item->blendop_params_size); memcpy(style_item->blendop_params, (void *)sqlite3_column_blob(stmt, 5), @@ -1016,7 +1014,7 @@ si_list = g_list_prepend(si_list, style_item); } sqlite3_finalize(stmt); - si_list = g_list_reverse(si_list); // list was built in reverse order, so un-reverse it + si_list = g_list_reverse(si_list); // list was built in reverse order, so un-reverse it dt_ioppr_update_for_style_items(dev_dest, si_list, FALSE); @@ -1028,15 +1026,15 @@ g_list_free_full(si_list, dt_style_item_free); - if(darktable.unmuted & DT_DEBUG_IOPORDER) - dt_ioppr_check_iop_order(dev_dest, newimgid, "dt_styles_apply_to_image 2"); + dt_ioppr_check_iop_order(dev_dest, newimgid, "dt_styles_apply_to_image 2"); dt_undo_lt_history_t *hist = NULL; if(undo) { hist = dt_history_snapshot_item_init(); hist->imgid = newimgid; - dt_history_snapshot_undo_create(hist->imgid, &hist->before, &hist->before_history_end); + dt_history_snapshot_undo_create + (hist->imgid, &hist->before, &hist->before_history_end); } // write history and forms to db @@ -1047,7 +1045,8 @@ dt_history_snapshot_undo_create(hist->imgid, &hist->after, &hist->after_history_end); dt_undo_start_group(darktable.undo, DT_UNDO_LT_HISTORY); dt_undo_record(darktable.undo, NULL, DT_UNDO_LT_HISTORY, (dt_undo_data_t)hist, - dt_history_snapshot_undo_pop, dt_history_snapshot_undo_lt_history_data_free); + dt_history_snapshot_undo_pop, + dt_history_snapshot_undo_lt_history_data_free); dt_undo_end_group(darktable.undo); } @@ -1070,7 +1069,8 @@ if(dt_dev_is_current_image(darktable.develop, newimgid)) { dt_dev_reload_history_items(darktable.develop); - dt_dev_modulegroups_set(darktable.develop, dt_dev_modulegroups_get(darktable.develop)); + dt_dev_modulegroups_set(darktable.develop, + dt_dev_modulegroups_get(darktable.develop)); } /* update xmp file */ @@ -1087,7 +1087,8 @@ dt_image_reset_aspect_ratio(newimgid, TRUE); /* redraw center view to update visible mipmaps */ - DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_DEVELOP_MIPMAP_UPDATED, newimgid); + DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, + DT_SIGNAL_DEVELOP_MIPMAP_UPDATED, newimgid); } } @@ -1217,7 +1218,8 @@ DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, id); while(sqlite3_step(stmt) == SQLITE_ROW) { - if(strcmp((const char*)sqlite3_column_text(stmt, 3), "mask_manager") == 0) continue; + if(strcmp((const char*)sqlite3_column_text(stmt, 3), "mask_manager") == 0) + continue; // name of current item of style char iname[512] = { 0 }; @@ -1263,13 +1265,15 @@ // internal module name. if(has_multi_name && with_multi_name) - g_snprintf(iname, sizeof(iname), "%s %s", sqlite3_column_text(stmt, 3), multi_name); + g_snprintf(iname, sizeof(iname), "%s %s", + sqlite3_column_text(stmt, 3), multi_name); else g_snprintf(iname, sizeof(iname), "%s", sqlite3_column_text(stmt, 3)); } else { - const gchar *itname = dt_iop_get_localized_name((char *)sqlite3_column_text(stmt, 3)); + const gchar *itname = + dt_iop_get_localized_name((char *)sqlite3_column_text(stmt, 3)); if(has_multi_name && with_multi_name) g_snprintf(iname, sizeof(iname), "%s %s", itname, multi_name); else @@ -1280,9 +1284,9 @@ } item->name = g_strdup(iname); item->operation = g_strdup((char *)sqlite3_column_text(stmt, 3)); - item->multi_name = g_strdup((char *)sqlite3_column_text(stmt, 7)); + item->multi_name = g_strdup(multi_name); item->multi_name_hand_edited = multi_name_hand_edited; - item->iop_order = sqlite3_column_double(stmt, 8); + item->iop_order = 0; result = g_list_prepend(result, item); } sqlite3_finalize(stmt); @@ -1340,7 +1344,8 @@ static char *dt_style_encode(sqlite3_stmt *stmt, int row) { const int32_t len = sqlite3_column_bytes(stmt, row); - char *vparams = dt_exif_xmp_encode((const unsigned char *)sqlite3_column_blob(stmt, row), len, NULL); + char *vparams = dt_exif_xmp_encode + ((const unsigned char *)sqlite3_column_blob(stmt, row), len, NULL); return vparams; } @@ -1392,7 +1397,8 @@ if(writer == NULL) { dt_print(DT_DEBUG_ALWAYS, - "[dt_styles_save_to_file] Error creating the xml writer\n, path: %s", stylename); + "[dt_styles_save_to_file] Error creating the xml writer\n, path: %s", + stylename); return; } rc = xmlTextWriterStartDocument(writer, NULL, "UTF-8", NULL); @@ -1635,8 +1641,9 @@ /* decode and store blendop params */ int blendop_params_len = 0; - unsigned char *blendop_params = dt_exif_xmp_decode( - plugin->blendop_params->str, strlen(plugin->blendop_params->str), &blendop_params_len); + unsigned char *blendop_params = dt_exif_xmp_decode + (plugin->blendop_params->str, + strlen(plugin->blendop_params->str), &blendop_params_len); DT_DEBUG_SQLITE3_BIND_BLOB(stmt, 7, blendop_params, blendop_params_len, SQLITE_TRANSIENT); DT_DEBUG_SQLITE3_BIND_INT(stmt, 8, plugin->blendop_version); diff -Nru darktable-4.4.2/src/common/tags.c darktable-4.6.1/src/common/tags.c --- darktable-4.4.2/src/common/tags.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/tags.c 2024-02-16 17:31:09.000000000 +0000 @@ -36,7 +36,8 @@ GList *after; // list of tagid after } dt_undo_tags_t; -static gchar *_get_tb_removed_tag_string_values(GList *before, GList *after) +static gchar *_get_tb_removed_tag_string_values(GList *before, + GList *after) { GList *a = after; gchar *tag_list = NULL; @@ -51,7 +52,9 @@ return tag_list; } -static gchar *_get_tb_added_tag_string_values(const int img, GList *before, GList *after) +static gchar *_get_tb_added_tag_string_values(const dt_imgid_t img, + GList *before, + GList *after) { GList *b = before; gchar *tag_list = NULL; @@ -60,26 +63,32 @@ if(!g_list_find(b, a->data)) { // clang-format off - tag_list = dt_util_dstrcat(tag_list, - "(%d,%d," - " (SELECT (IFNULL(MAX(position),0) & 0xFFFFFFFF00000000) + (1 << 32)" - " FROM main.tagged_images)" - "),", - GPOINTER_TO_INT(img), - GPOINTER_TO_INT(a->data)); + tag_list = dt_util_dstrcat + (tag_list, + "(%d,%d," + " (SELECT (IFNULL(MAX(position),0) & 0xFFFFFFFF00000000) + (1 << 32)" + " FROM main.tagged_images)" + "),", + GPOINTER_TO_INT(img), + GPOINTER_TO_INT(a->data)); // clang-format on } } - if(tag_list) tag_list[strlen(tag_list) - 1] = '\0'; + if(tag_list) + tag_list[strlen(tag_list) - 1] = '\0'; return tag_list; } -static void _bulk_remove_tags(const int img, const gchar *tag_list) +static void _bulk_remove_tags(const dt_imgid_t img, + const gchar *tag_list) { if(img > 0 && tag_list) { sqlite3_stmt *stmt; - gchar *query = g_strdup_printf("DELETE FROM main.tagged_images WHERE imgid = %d AND tagid IN (%s)", img, tag_list); + gchar *query = g_strdup_printf + ("DELETE" + " FROM main.tagged_images" + " WHERE imgid = %d AND tagid IN (%s)", img, tag_list); DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), query, -1, &stmt, NULL); sqlite3_step(stmt); sqlite3_finalize(stmt); @@ -92,7 +101,9 @@ if(tag_list) { sqlite3_stmt *stmt; - gchar *query = g_strdup_printf("INSERT INTO main.tagged_images (imgid, tagid, position) VALUES %s", tag_list); + gchar *query = g_strdup_printf + ("INSERT INTO main.tagged_images (imgid, tagid, position)" + " VALUES %s", tag_list); DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), query, -1, &stmt, NULL); sqlite3_step(stmt); sqlite3_finalize(stmt); @@ -100,7 +111,9 @@ } } -static void _pop_undo_execute(const dt_imgid_t imgid, GList *before, GList *after) +static void _pop_undo_execute(const dt_imgid_t imgid, + GList *before, + GList *after) { gchar *tobe_removed_list = _get_tb_removed_tag_string_values(before, after); gchar *tobe_added_list = _get_tb_added_tag_string_values(imgid, before, after); @@ -112,7 +125,11 @@ g_free(tobe_added_list); } -static void _pop_undo(gpointer user_data, dt_undo_type_t type, dt_undo_data_t data, dt_undo_action_t action, GList **imgs) +static void _pop_undo(gpointer user_data, + dt_undo_type_t type, + dt_undo_data_t data, + dt_undo_action_t action, + GList **imgs) { if(type == DT_UNDO_TAGS) { @@ -144,14 +161,16 @@ g_list_free_full(l, _undo_tags_free); } -gboolean dt_tag_new(const char *name, guint *tagid) +gboolean dt_tag_new(const char *name, + guint *tagid) { int rt; sqlite3_stmt *stmt; if(!name || name[0] == '\0') return FALSE; // no tagid name. - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), "SELECT id FROM data.tags WHERE name = ?1", -1, &stmt, + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + "SELECT id FROM data.tags WHERE name = ?1", -1, &stmt, NULL); DT_DEBUG_SQLITE3_BIND_TEXT(stmt, 1, name, -1, SQLITE_TRANSIENT); rt = sqlite3_step(stmt); @@ -164,14 +183,16 @@ } sqlite3_finalize(stmt); - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), "INSERT INTO data.tags (id, name) VALUES (NULL, ?1)", + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + "INSERT INTO data.tags (id, name) VALUES (NULL, ?1)", -1, &stmt, NULL); DT_DEBUG_SQLITE3_BIND_TEXT(stmt, 1, name, -1, SQLITE_TRANSIENT); sqlite3_step(stmt); sqlite3_finalize(stmt); guint id = 0; - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), "SELECT id FROM data.tags WHERE name = ?1", -1, + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + "SELECT id FROM data.tags WHERE name = ?1", -1, &stmt, NULL); DT_DEBUG_SQLITE3_BIND_TEXT(stmt, 1, name, -1, SQLITE_TRANSIENT); if(sqlite3_step(stmt) == SQLITE_ROW) id = sqlite3_column_int(stmt, 0); @@ -193,21 +214,25 @@ return TRUE; } -gboolean dt_tag_new_from_gui(const char *name, guint *tagid) +gboolean dt_tag_new_from_gui(const char *name, + guint *tagid) { const gboolean ret = dt_tag_new(name, tagid); - /* if everything went fine, raise signal of tags change to refresh keywords module in GUI */ + /* if everything went fine, raise signal of tags change to refresh + * keywords module in GUI */ if(ret) DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_TAG_CHANGED); return ret; } -guint dt_tag_remove(const guint tagid, gboolean final) +guint dt_tag_remove(const guint tagid, + gboolean final) { int rv, count = -1; sqlite3_stmt *stmt; - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "SELECT COUNT(*) FROM main.tagged_images WHERE tagid=?1", -1, &stmt, NULL); + DT_DEBUG_SQLITE3_PREPARE_V2 + (dt_database_get(darktable.db), + "SELECT COUNT(*) FROM main.tagged_images WHERE tagid=?1", -1, &stmt, NULL); DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, tagid); rv = sqlite3_step(stmt); if(rv == SQLITE_ROW) count = sqlite3_column_int(stmt, 0); @@ -216,20 +241,23 @@ if(final == TRUE) { // let's actually remove the tag - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), "DELETE FROM data.tags WHERE id=?1", + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + "DELETE FROM data.tags WHERE id=?1", -1, &stmt, NULL); DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, tagid); sqlite3_step(stmt); sqlite3_finalize(stmt); - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), "DELETE FROM main.tagged_images WHERE tagid=?1", + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + "DELETE FROM main.tagged_images WHERE tagid=?1", -1, &stmt, NULL); DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, tagid); sqlite3_step(stmt); sqlite3_finalize(stmt); // remove it also form darktable tags table if it is there - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), "DELETE FROM memory.darktable_tags WHERE tagid=?1", + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + "DELETE FROM memory.darktable_tags WHERE tagid=?1", -1, &stmt, NULL); DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, tagid); sqlite3_step(stmt); @@ -296,7 +324,8 @@ int rt; char *name = NULL; sqlite3_stmt *stmt; - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), "SELECT name FROM data.tags WHERE id= ?1", -1, &stmt, + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + "SELECT name FROM data.tags WHERE id= ?1", -1, &stmt, NULL); DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, tagid); rt = sqlite3_step(stmt); @@ -313,8 +342,9 @@ if(!new_tagname || !new_tagname[0]) return; if(dt_tag_exists(new_tagname, NULL)) return; - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "UPDATE data.tags SET name = ?2 WHERE id = ?1", -1, &stmt, NULL); + DT_DEBUG_SQLITE3_PREPARE_V2 + (dt_database_get(darktable.db), + "UPDATE data.tags SET name = ?2 WHERE id = ?1", -1, &stmt, NULL); DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, tagid); DT_DEBUG_SQLITE3_BIND_TEXT(stmt, 2, new_tagname, -1, SQLITE_TRANSIENT); sqlite3_step(stmt); @@ -326,7 +356,8 @@ { int rt; sqlite3_stmt *stmt; - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), "SELECT id FROM data.tags WHERE name = ?1", -1, &stmt, + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + "SELECT id FROM data.tags WHERE name = ?1", -1, &stmt, NULL); DT_DEBUG_SQLITE3_BIND_TEXT(stmt, 1, name, -1, SQLITE_TRANSIENT); rt = sqlite3_step(stmt); @@ -343,7 +374,8 @@ return FALSE; } -static gboolean _tag_add_tags_to_list(GList **list, const GList *tags) +static gboolean _tag_add_tags_to_list(GList **list, + const GList *tags) { gboolean res = FALSE; for(const GList *t = tags; t; t = g_list_next(t)) @@ -357,7 +389,8 @@ return res; } -static gboolean _tag_remove_tags_from_list(GList **list, const GList *tags) +static gboolean _tag_remove_tags_from_list(GList **list, + const GList *tags) { const int nb_ini = g_list_length(*list); for(const GList *t = tags; t; t = g_list_next(t)) @@ -382,9 +415,13 @@ DT_TA_SET_ALL, } dt_tag_actions_t; -static GList *_tag_get_tags(const dt_imgid_t imgid, const dt_tag_type_t type); +static GList *_tag_get_tags(const dt_imgid_t imgid, + const dt_tag_type_t type); -static gboolean _tag_execute(const GList *tags, const GList *imgs, GList **undo, const gboolean undo_on, +static gboolean _tag_execute(const GList *tags, + const GList *imgs, + GList **undo, + const gboolean undo_on, const gint action) { gboolean res = FALSE; @@ -429,7 +466,9 @@ return res; } -gboolean dt_tag_attach_images(const guint tagid, const GList *img, const gboolean undo_on) +gboolean dt_tag_attach_images(const guint tagid, + const GList *img, + const gboolean undo_on) { if(!img) return FALSE; GList *undo = NULL; @@ -443,14 +482,18 @@ g_list_free(tags); if(undo_on) { - dt_undo_record(darktable.undo, NULL, DT_UNDO_TAGS, undo, _pop_undo, _tags_undo_data_free); + dt_undo_record(darktable.undo, NULL, + DT_UNDO_TAGS, undo, _pop_undo, _tags_undo_data_free); dt_undo_end_group(darktable.undo); } return res; } -gboolean dt_tag_attach(const guint tagid, const dt_imgid_t imgid, const gboolean undo_on, const gboolean group_on) +gboolean dt_tag_attach(const guint tagid, + const dt_imgid_t imgid, + const gboolean undo_on, + const gboolean group_on) { gboolean res = FALSE; if(!dt_is_valid_imgid(imgid)) @@ -469,19 +512,24 @@ return res; } -gboolean dt_tag_set_tags(const GList *tags, const GList *img, const gboolean ignore_dt_tags, - const gboolean clear_on, const gboolean undo_on) +gboolean dt_tag_set_tags(const GList *tags, + const GList *img, + const gboolean ignore_dt_tags, + const gboolean clear_on, + const gboolean undo_on) { if(img) { GList *undo = NULL; if(undo_on) dt_undo_start_group(darktable.undo, DT_UNDO_TAGS); - const gboolean res = _tag_execute(tags, img, &undo, undo_on, - clear_on ? ignore_dt_tags ? DT_TA_SET : DT_TA_SET_ALL : DT_TA_ATTACH); + const gboolean res = _tag_execute + (tags, img, &undo, undo_on, + clear_on ? ignore_dt_tags ? DT_TA_SET : DT_TA_SET_ALL : DT_TA_ATTACH); if(undo_on) { - dt_undo_record(darktable.undo, NULL, DT_UNDO_TAGS, undo, _pop_undo, _tags_undo_data_free); + dt_undo_record(darktable.undo, NULL, DT_UNDO_TAGS, undo, + _pop_undo, _tags_undo_data_free); dt_undo_end_group(darktable.undo); } return res; @@ -489,7 +537,9 @@ return FALSE; } -gboolean dt_tag_attach_string_list(const gchar *tags, const GList *img, const gboolean undo_on) +gboolean dt_tag_attach_string_list(const gchar *tags, + const GList *img, + const gboolean undo_on) { // tags may not exist yet // undo only undoes the tags attachments. it doesn't remove created tags. @@ -522,7 +572,8 @@ if(undo_on) { - dt_undo_record(darktable.undo, NULL, DT_UNDO_TAGS, undo, _pop_undo, _tags_undo_data_free); + dt_undo_record(darktable.undo, NULL, DT_UNDO_TAGS, undo, + _pop_undo, _tags_undo_data_free); dt_undo_end_group(darktable.undo); } } @@ -532,7 +583,9 @@ return res; } -gboolean dt_tag_detach_images(const guint tagid, const GList *img, const gboolean undo_on) +gboolean dt_tag_detach_images(const guint tagid, + const GList *img, + const gboolean undo_on) { if(img) { @@ -546,7 +599,8 @@ g_list_free(tags); if(undo_on) { - dt_undo_record(darktable.undo, NULL, DT_UNDO_TAGS, undo, _pop_undo, _tags_undo_data_free); + dt_undo_record(darktable.undo, NULL, DT_UNDO_TAGS, undo, + _pop_undo, _tags_undo_data_free); dt_undo_end_group(darktable.undo); } return res; @@ -554,7 +608,10 @@ return FALSE; } -gboolean dt_tag_detach(const guint tagid, const dt_imgid_t imgid, const gboolean undo_on, const gboolean group_on) +gboolean dt_tag_detach(const guint tagid, + const dt_imgid_t imgid, + const gboolean undo_on, + const gboolean group_on) { GList *imgs = NULL; if(!dt_is_valid_imgid(imgid)) @@ -568,7 +625,9 @@ return res; } -gboolean dt_tag_detach_by_string(const char *name, const dt_imgid_t imgid, const gboolean undo_on, +gboolean dt_tag_detach_by_string(const char *name, + const dt_imgid_t imgid, + const gboolean undo_on, const gboolean group_on) { if(!name || !name[0]) return FALSE; @@ -580,7 +639,8 @@ void dt_set_darktable_tags() { - DT_DEBUG_SQLITE3_EXEC(dt_database_get(darktable.db), "DELETE FROM memory.darktable_tags", NULL, NULL, NULL); + DT_DEBUG_SQLITE3_EXEC(dt_database_get(darktable.db), + "DELETE FROM memory.darktable_tags", NULL, NULL, NULL); sqlite3_stmt *stmt; // clang-format off @@ -595,7 +655,34 @@ sqlite3_finalize(stmt); } -uint32_t dt_tag_get_attached(const dt_imgid_t imgid, GList **result, const gboolean ignore_dt_tags) +uint32_t dt_tag_count_attached(const dt_imgid_t imgid, + const gboolean ignore_dt_tags) +{ + sqlite3_stmt *stmt; + + gchar *query = g_strdup_printf + ("SELECT COUNT(tagid)" + " FROM main.tagged_images" + " WHERE imgid = %d" + " %s", + imgid, + ignore_dt_tags ? " AND tagid NOT IN memory.darktable_tags" : ""); + + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), query, -1, &stmt, NULL); + g_free(query); + + int32_t count = 0; + + if(sqlite3_step(stmt) == SQLITE_ROW) + count = sqlite3_column_int(stmt, 0); + + sqlite3_finalize(stmt); + return count; +} + +uint32_t dt_tag_get_attached(const dt_imgid_t imgid, + GList **result, + const gboolean ignore_dt_tags) { sqlite3_stmt *stmt; uint32_t nb_selected = 0; @@ -614,7 +701,8 @@ " FROM (%s)", images); DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), query, -1, &stmt, NULL); - if(sqlite3_step(stmt) == SQLITE_ROW) nb_selected = sqlite3_column_int(stmt, 0); + if(sqlite3_step(stmt) == SQLITE_ROW) + nb_selected = sqlite3_column_int(stmt, 0); sqlite3_finalize(stmt); g_free(query); } @@ -622,15 +710,15 @@ if(images) { // clang-format off - gchar *query = g_strdup_printf( - "SELECT DISTINCT I.tagid, T.name, T.flags, T.synonyms," - " COUNT(DISTINCT I.imgid) AS inb" - " FROM main.tagged_images AS I" - " JOIN data.tags AS T ON T.id = I.tagid" - " WHERE I.imgid IN (%s)%s" - " GROUP BY I.tagid " - " ORDER by T.name", - images, ignore_dt_tags ? " AND T.id NOT IN memory.darktable_tags" : ""); + gchar *query = g_strdup_printf + ("SELECT DISTINCT I.tagid, T.name, T.flags, T.synonyms," + " COUNT(DISTINCT I.imgid) AS inb" + " FROM main.tagged_images AS I" + " JOIN data.tags AS T ON T.id = I.tagid" + " WHERE I.imgid IN (%s)%s" + " GROUP BY I.tagid " + " ORDER by T.name", + images, ignore_dt_tags ? " AND T.id NOT IN memory.darktable_tags" : ""); // clang-format on DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), query, -1, &stmt, NULL); g_free(images); @@ -648,9 +736,13 @@ t->synonym = g_strdup((char *)sqlite3_column_text(stmt, 3)); const uint32_t imgnb = sqlite3_column_int(stmt, 4); t->count = imgnb; - t->select = (nb_selected == 0) ? DT_TS_NO_IMAGE : - (imgnb == nb_selected) ? DT_TS_ALL_IMAGES : - (imgnb == 0) ? DT_TS_NO_IMAGE : DT_TS_SOME_IMAGES; + t->select = (nb_selected == 0) + ? DT_TS_NO_IMAGE + : (imgnb == nb_selected) + ? DT_TS_ALL_IMAGES + : (imgnb == 0) + ? DT_TS_NO_IMAGE + : DT_TS_SOME_IMAGES; *result = g_list_append(*result, t); count++; } @@ -660,26 +752,28 @@ return count; } -static uint32_t _tag_get_attached_export(const dt_imgid_t imgid, GList **result) +static uint32_t _tag_get_attached_export(const dt_imgid_t imgid, + GList **result) { if(!(dt_is_valid_imgid(imgid))) return 0; sqlite3_stmt *stmt; // clang-format off - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "SELECT DISTINCT T.id, T.name, T.flags, T.synonyms" - " FROM data.tags AS T" - // tags attached to image(s), not dt tag, ordered by name - " JOIN (SELECT DISTINCT I.tagid, T.name" - " FROM main.tagged_images AS I" - " JOIN data.tags AS T ON T.id = I.tagid" - " WHERE I.imgid = ?1 AND T.id NOT IN memory.darktable_tags" - " ORDER by T.name) AS T1" - // keep also tags in the path to be able to check category in path - " ON T.id = T1.tagid" - " OR (T.name = SUBSTR(T1.name, 1, LENGTH(T.name))" - " AND SUBSTR(T1.name, LENGTH(T.name) + 1, 1) = '|')", - -1, &stmt, NULL); + DT_DEBUG_SQLITE3_PREPARE_V2 + (dt_database_get(darktable.db), + "SELECT DISTINCT T.id, T.name, T.flags, T.synonyms" + " FROM data.tags AS T" + // tags attached to image(s), not dt tag, ordered by name + " JOIN (SELECT DISTINCT I.tagid, T.name" + " FROM main.tagged_images AS I" + " JOIN data.tags AS T ON T.id = I.tagid" + " WHERE I.imgid = ?1 AND T.id NOT IN memory.darktable_tags" + " ORDER by T.name) AS T1" + // keep also tags in the path to be able to check category in path + " ON T.id = T1.tagid" + " OR (T.name = SUBSTR(T1.name, 1, LENGTH(T.name))" + " AND SUBSTR(T1.name, LENGTH(T.name) + 1, 1) = '|')", + -1, &stmt, NULL); // clang-format on DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, imgid); // Create result @@ -752,16 +846,17 @@ return sorted_tags; } -GList *dt_tag_get_list(dt_imgid_t imgid) +GList *dt_tag_get_list(const dt_imgid_t imgid) { GList *taglist = NULL; GList *tags = NULL; gboolean omit_tag_hierarchy = dt_conf_get_bool("omit_tag_hierarchy"); - uint32_t count = dt_tag_get_attached(imgid, &taglist, TRUE); + const uint32_t count = dt_tag_get_attached(imgid, &taglist, TRUE); - if(count < 1) return NULL; + if(count < 1) + return NULL; for(; taglist; taglist = g_list_next(taglist)) { @@ -796,14 +891,15 @@ return dt_util_glist_uniq(tags); } -GList *dt_tag_get_hierarchical(dt_imgid_t imgid) +GList *dt_tag_get_hierarchical(const dt_imgid_t imgid) { GList *taglist = NULL; GList *tags = NULL; - int count = dt_tag_get_attached(imgid, &taglist, TRUE); + const uint32_t count = dt_tag_get_attached(imgid, &taglist, TRUE); - if(count < 1) return NULL; + if(count < 1) + return NULL; for(GList *tag_iter = taglist; tag_iter; tag_iter = g_list_next(tag_iter)) { @@ -817,7 +913,8 @@ return tags; } -static GList *_tag_get_tags(const dt_imgid_t imgid, const dt_tag_type_t type) +static GList *_tag_get_tags(const dt_imgid_t imgid, + const dt_tag_type_t type) { GList *tags = NULL; char *images = NULL; @@ -852,7 +949,8 @@ return tags; } -GList *dt_tag_get_tags(const dt_imgid_t imgid, const gboolean ignore_dt_tags) +GList *dt_tag_get_tags(const dt_imgid_t imgid, + const gboolean ignore_dt_tags) { return _tag_get_tags(imgid, ignore_dt_tags ? DT_TAG_TYPE_USER : DT_TAG_TYPE_ALL); } @@ -865,7 +963,8 @@ ((ta->flags) & (DT_TF_CATEGORY | DT_TF_PRIVATE))) ? 0 : -1; } -GList *dt_tag_get_list_export(dt_imgid_t imgid, int32_t flags) +GList *dt_tag_get_list_export(const dt_imgid_t imgid, + const int32_t flags) { GList *taglist = NULL; GList *tags = NULL; @@ -874,9 +973,10 @@ gboolean export_private_tags = flags & DT_META_PRIVATE_TAG; gboolean export_tag_synonyms = flags & DT_META_SYNONYMS_TAG; - uint32_t count = _tag_get_attached_export(imgid, &taglist); + const uint32_t count = _tag_get_attached_export(imgid, &taglist); - if(count < 1) return NULL; + if(count < 1) + return NULL; GList *sorted_tags = dt_sort_tag(taglist, 0); sorted_tags = g_list_reverse(sorted_tags); @@ -945,14 +1045,17 @@ return dt_util_glist_uniq(tags); } -GList *dt_tag_get_hierarchical_export(dt_imgid_t imgid, int32_t flags) +GList *dt_tag_get_hierarchical_export(const dt_imgid_t imgid, + const int32_t flags) { GList *taglist = NULL; GList *tags = NULL; - const int count = dt_tag_get_attached(imgid, &taglist, TRUE); + const uint32_t count = dt_tag_get_attached(imgid, &taglist, TRUE); + + if(count < 1) + return NULL; - if(count < 1) return NULL; const gboolean export_private_tags = flags & DT_META_PRIVATE_TAG; for(GList *tag_iter = taglist; tag_iter; tag_iter = g_list_next(tag_iter)) @@ -969,7 +1072,8 @@ return g_list_reverse(tags); // list was built in reverse order, so un-reverse it } -gboolean dt_is_tag_attached(const guint tagid, const dt_imgid_t imgid) +gboolean dt_is_tag_attached(const guint tagid, + const dt_imgid_t imgid) { sqlite3_stmt *stmt; // clang-format off @@ -1054,20 +1158,21 @@ // get attached tags with how many times they are attached in db and on selected images // clang-format off - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "INSERT INTO memory.taglist (id, count, count2)" - " SELECT S.tagid, COUNT(imgid) AS count," - " CASE WHEN count2 IS NULL THEN 0 ELSE count2 END AS count2" - " FROM main.tagged_images AS S" - " LEFT JOIN (" - " SELECT tagid, COUNT(imgid) AS count2" - " FROM main.tagged_images" - " WHERE imgid IN main.selected_images" - " GROUP BY tagid) AS at" - " ON at.tagid = S.tagid" - " WHERE S.tagid NOT IN memory.darktable_tags" - " GROUP BY S.tagid", - -1, &stmt, NULL); + DT_DEBUG_SQLITE3_PREPARE_V2 + (dt_database_get(darktable.db), + "INSERT INTO memory.taglist (id, count, count2)" + " SELECT S.tagid, COUNT(imgid) AS count," + " CASE WHEN count2 IS NULL THEN 0 ELSE count2 END AS count2" + " FROM main.tagged_images AS S" + " LEFT JOIN (" + " SELECT tagid, COUNT(imgid) AS count2" + " FROM main.tagged_images" + " WHERE imgid IN main.selected_images" + " GROUP BY tagid) AS at" + " ON at.tagid = S.tagid" + " WHERE S.tagid NOT IN memory.darktable_tags" + " GROUP BY S.tagid", + -1, &stmt, NULL); // clang-format on sqlite3_step(stmt); sqlite3_finalize(stmt); @@ -1075,56 +1180,58 @@ char *query = NULL; if(confidence != 100) // clang-format off - query = g_strdup_printf("SELECT td.name, tagid2, t21.count, t21.count2," - " td.flags, td.synonyms FROM (" - // get tags with required confidence - " SELECT DISTINCT tagid2 FROM (" - " SELECT tagid2 FROM (" - // get how many times (tag1, tag2) are attached together (c12) - " SELECT tagid1, tagid2, count(*) AS c12" - " FROM (" - " SELECT DISTINCT tagid AS tagid1, imgid FROM main.tagged_images" - " JOIN memory.taglist AS t00" - " ON t00.id = tagid1 AND t00.count2 > 0) AS t1" - " JOIN (" - " SELECT DISTINCT tagid AS tagid2, imgid FROM main.tagged_images" - " WHERE tagid NOT IN memory.darktable_tags) AS t2" - " ON t2.imgid = t1.imgid AND tagid1 != tagid2" - " GROUP BY tagid1, tagid2)" - " JOIN memory.taglist AS t01" - " ON t01.id = tagid1" - " JOIN memory.taglist AS t02" - " ON t02.id = tagid2" - // filter by confidence and reject tags attached on all selected images - " WHERE (t01.count-t01.count2) != 0" - " AND (100 * c12 / (t01.count-t01.count2) >= %u)" - " AND t02.count2 != %u) " - " UNION" - // get recent list tags - " SELECT * FROM (" - " SELECT tn.id AS tagid2 FROM data.tags AS tn" - " JOIN memory.taglist AS t02" - " ON t02.id = tn.id" - " WHERE tn.name IN (\'%s\')" - // reject tags attached on all selected images and keep the required number - " AND t02.count2 != %u LIMIT %d)) " - "LEFT JOIN memory.taglist AS t21 " - "ON t21.id = tagid2 " - "LEFT JOIN data.tags as td ON td.id = tagid2 ", - confidence, nb_selected, slist, nb_selected, nb_recent); + query = g_strdup_printf + ("SELECT td.name, tagid2, t21.count, t21.count2," + " td.flags, td.synonyms FROM (" + // get tags with required confidence + " SELECT DISTINCT tagid2 FROM (" + " SELECT tagid2 FROM (" + // get how many times (tag1, tag2) are attached together (c12) + " SELECT tagid1, tagid2, count(*) AS c12" + " FROM (" + " SELECT DISTINCT tagid AS tagid1, imgid FROM main.tagged_images" + " JOIN memory.taglist AS t00" + " ON t00.id = tagid1 AND t00.count2 > 0) AS t1" + " JOIN (" + " SELECT DISTINCT tagid AS tagid2, imgid FROM main.tagged_images" + " WHERE tagid NOT IN memory.darktable_tags) AS t2" + " ON t2.imgid = t1.imgid AND tagid1 != tagid2" + " GROUP BY tagid1, tagid2)" + " JOIN memory.taglist AS t01" + " ON t01.id = tagid1" + " JOIN memory.taglist AS t02" + " ON t02.id = tagid2" + // filter by confidence and reject tags attached on all selected images + " WHERE (t01.count-t01.count2) != 0" + " AND (100 * c12 / (t01.count-t01.count2) >= %u)" + " AND t02.count2 != %u) " + " UNION" + // get recent list tags + " SELECT * FROM (" + " SELECT tn.id AS tagid2 FROM data.tags AS tn" + " JOIN memory.taglist AS t02" + " ON t02.id = tn.id" + " WHERE tn.name IN (\'%s\')" + // reject tags attached on all selected images and keep the required number + " AND t02.count2 != %u LIMIT %d)) " + "LEFT JOIN memory.taglist AS t21 " + "ON t21.id = tagid2 " + "LEFT JOIN data.tags as td ON td.id = tagid2 ", + confidence, nb_selected, slist, nb_selected, nb_recent); // clang-format on else // clang-format off - query = g_strdup_printf("SELECT tn.name, tn.id, count, count2," - " tn.flags, tn.synonyms " - // get recent list tags - "FROM data.tags AS tn " - "JOIN memory.taglist AS t02 " - "ON t02.id = tn.id " - "WHERE tn.name IN (\'%s\')" - // reject tags attached on all selected images and keep the required number - " AND t02.count2 != %u LIMIT %d", - slist, nb_selected, nb_recent); + query = g_strdup_printf + ("SELECT tn.name, tn.id, count, count2," + " tn.flags, tn.synonyms " + // get recent list tags + "FROM data.tags AS tn " + "JOIN memory.taglist AS t02 " + "ON t02.id = tn.id " + "WHERE tn.name IN (\'%s\')" + // reject tags attached on all selected images and keep the required number + " AND t02.count2 != %u LIMIT %d", + slist, nb_selected, nb_recent); // clang-format on DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), query, -1, &stmt, NULL); @@ -1150,13 +1257,16 @@ sqlite3_finalize(stmt); - DT_DEBUG_SQLITE3_EXEC(dt_database_get(darktable.db), "DELETE FROM memory.taglist", NULL, NULL, NULL); + DT_DEBUG_SQLITE3_EXEC(dt_database_get(darktable.db), + "DELETE FROM memory.taglist", NULL, NULL, NULL); g_free(query); return count; } -void dt_tag_count_tags_images(const gchar *keyword, int *tag_count, int *img_count) +void dt_tag_count_tags_images(const gchar *keyword, + int *tag_count, + int *img_count) { sqlite3_stmt *stmt; *tag_count = 0; @@ -1201,10 +1311,13 @@ *img_count = sqlite3_column_int(stmt, 0); sqlite3_finalize(stmt); - DT_DEBUG_SQLITE3_EXEC(dt_database_get(darktable.db), "DELETE FROM memory.similar_tags", NULL, NULL, NULL); + DT_DEBUG_SQLITE3_EXEC(dt_database_get(darktable.db), + "DELETE FROM memory.similar_tags", NULL, NULL, NULL); } -void dt_tag_get_tags_images(const gchar *keyword, GList **tag_list, GList **img_list) +void dt_tag_get_tags_images(const gchar *keyword, + GList **tag_list, + GList **img_list) { sqlite3_stmt *stmt; @@ -1258,7 +1371,8 @@ } sqlite3_finalize(stmt); - DT_DEBUG_SQLITE3_EXEC(dt_database_get(darktable.db), "DELETE FROM memory.similar_tags", NULL, NULL, NULL); + DT_DEBUG_SQLITE3_EXEC(dt_database_get(darktable.db), + "DELETE FROM memory.similar_tags", NULL, NULL, NULL); } uint32_t dt_selected_images_count() @@ -1312,17 +1426,20 @@ /* Now put all the bits together */ // clang-format off - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "SELECT T.name, T.id, MT.count, CT.imgnb, T.flags, T.synonyms" - " FROM data.tags T " - " LEFT JOIN memory.taglist MT ON MT.id = T.id " - " LEFT JOIN (SELECT tagid, COUNT(DISTINCT imgid) AS imgnb" - " FROM main.tagged_images " - " WHERE imgid IN (SELECT imgid FROM main.selected_images) GROUP BY tagid) AS CT " - " ON CT.tagid = T.id" - " WHERE T.id NOT IN memory.darktable_tags " - " ORDER BY T.name ", - -1, &stmt, NULL); + DT_DEBUG_SQLITE3_PREPARE_V2 + (dt_database_get(darktable.db), + "SELECT T.name, T.id, MT.count, CT.imgnb, T.flags, T.synonyms" + " FROM data.tags T " + " LEFT JOIN memory.taglist MT ON MT.id = T.id " + " LEFT JOIN (SELECT tagid, COUNT(DISTINCT imgid) AS imgnb" + " FROM main.tagged_images " + " WHERE imgid IN (SELECT imgid" + " FROM main.selected_images)" + " GROUP BY tagid) AS CT " + " ON CT.tagid = T.id" + " WHERE T.id NOT IN memory.darktable_tags " + " ORDER BY T.name ", + -1, &stmt, NULL); // clang-format on /* ... and create the result list to send upwards */ @@ -1346,7 +1463,8 @@ } sqlite3_finalize(stmt); - DT_DEBUG_SQLITE3_EXEC(dt_database_get(darktable.db), "DELETE FROM memory.taglist", NULL, NULL, NULL); + DT_DEBUG_SQLITE3_EXEC(dt_database_get(darktable.db), + "DELETE FROM memory.taglist", NULL, NULL, NULL); return count; } @@ -1397,7 +1515,8 @@ return synonyms; } -void dt_tag_set_synonyms(gint tagid, gchar *synonyms_entry) +void dt_tag_set_synonyms(gint tagid, + gchar *synonyms_entry) { if(!synonyms_entry) return; char *synonyms = dt_cleanup_synonyms(synonyms_entry); @@ -1413,7 +1532,7 @@ g_free(synonyms); } -gint dt_tag_get_flags(gint tagid) +gint dt_tag_get_flags(const gint tagid) { sqlite3_stmt *stmt; @@ -1431,7 +1550,8 @@ return flags; } -void dt_tag_set_flags(gint tagid, gint flags) +void dt_tag_set_flags(const gint tagid, + const gint flags) { sqlite3_stmt *stmt; @@ -1444,7 +1564,8 @@ sqlite3_finalize(stmt); } -void dt_tag_add_synonym(gint tagid, gchar *synonym) +void dt_tag_add_synonym(const gint tagid, + gchar *synonym) { char *synonyms = dt_tag_get_synonyms(tagid); if(synonyms) @@ -1489,11 +1610,12 @@ /* TODO - the file format allows to specify {synonyms} that are one hierarchy level deeper than the parent. those are not - to be shown in the gui but can be searched. when the parent or a synonym is attached then ALSO the rest of the - bunch is to be added. - there is also a ~ prefix for tags that indicate that the tag order has to be kept instead of sorting them. that's - also not possible at the moment. + the file format allows to specify {synonyms} that are one hierarchy + level deeper than the parent. those are not to be shown in the gui + but can be searched. when the parent or a synonym is attached then + ALSO the rest of the bunch is to be added. there is also a ~ prefix + for tags that indicate that the tag order has to be kept instead of + sorting them. that's also not possible at the moment. */ ssize_t dt_tag_import(const char *filename) { @@ -1552,7 +1674,8 @@ if(tagid) { char *tagname = g_strdup(start); - // clear synonyms before importing the new ones => allows export, modification and back import + // clear synonyms before importing the new ones => allows + // export, modification and back import if(!previous_synonym) dt_tag_set_synonyms(tagid, ""); dt_tag_add_synonym(tagid, tagname); g_free(tagname); @@ -1587,7 +1710,8 @@ { // create a new tag count++; - tagid = 1; // if 0, dt_tag_new creates a new one even if the tag already exists + tagid = 1; // if 0, dt_tag_new creates a new one even if + // the tag already exists dt_tag_new(tag, &tagid); if(category) dt_tag_set_flags(tagid, DT_TF_CATEGORY); @@ -1610,10 +1734,12 @@ } /* - TODO: there is one corner case where i am not sure if we are doing the correct thing. some examples i found - on the internet agreed with this version, some used an alternative: - consider two tags like "foo|bar" and "foo|bar|baz". the "foo|bar" part is both a regular tag (from the 1st tag) - and also a category (from the 2nd tag). the two way to output are + TODO: there is one corner case where i am not sure if we are doing + the correct thing. some examples i found on the internet agreed with + this version, some used an alternative: consider two tags like + "foo|bar" and "foo|bar|baz". the "foo|bar" part is both a regular + tag (from the 1st tag) and also a category (from the 2nd tag). the + two way to output are [foo] bar @@ -1626,8 +1752,9 @@ [bar] baz - we are using the first (mostly because it was easier to implement ;)). if this poses problems with other programs - supporting these files then we should fix that. + we are using the first (mostly because it was easier to implement + ;)). if this poses problems with other programs supporting these + files then we should fix that. */ ssize_t dt_tag_export(const char *filename) { @@ -1650,9 +1777,14 @@ // find how many common levels are shared with the last tag int common_start; - for(common_start = 0; hierarchy && hierarchy[common_start] && tokens && tokens[common_start]; common_start++) + for(common_start = 0; + hierarchy + && hierarchy[common_start] + && tokens && tokens[common_start]; + common_start++) { - if(g_strcmp0(hierarchy[common_start], tokens[common_start])) break; + if(g_strcmp0(hierarchy[common_start], tokens[common_start])) + break; } g_strfreev(hierarchy); @@ -1701,9 +1833,13 @@ return count; } -char *dt_tag_get_subtags(const dt_imgid_t imgid, const char *category, const int level) +char *dt_tag_get_subtags(const dt_imgid_t imgid, + const char *category, + const int level) { - if(!category) return NULL; + if(!category) + return NULL; + const guint rootnb = dt_util_string_count_char(category, '|'); char *tags = NULL; sqlite3_stmt *stmt; @@ -1743,7 +1879,7 @@ return tags; } -uint32_t dt_tag_get_tag_id_by_name(const char * const name) +uint32_t dt_tag_get_tag_id_by_name(const char *const name) { if(!name) return 0; uint32_t tagid = 0; @@ -1773,4 +1909,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/common/tags.h darktable-4.6.1/src/common/tags.h --- darktable-4.4.2/src/common/tags.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/tags.h 2024-02-16 17:31:09.000000000 +0000 @@ -57,136 +57,192 @@ DT_TS_ALL_IMAGES // tag attached on all selected images } dt_tag_selection_t; -/** creates a new tag, returns tagid \param[in] name the tag name. \param[in] tagid a pointer to tagid of new - * tag, this can be NULL \return false if failed to create a tag and indicates that tagid is invalid to use. - * \note If tag already exists the existing tag id is returned. */ +/** creates a new tag, returns tagid \param[in] name the tag + * name. \param[in] tagid a pointer to tagid of new tag, this can be + * NULL \return false if failed to create a tag and indicates that + * tagid is invalid to use. \note If tag already exists the existing + * tag id is returned. */ gboolean dt_tag_new(const char *name, guint *tagid); -/** creates a new tag, returns tagid \param[in] name the tag name. \param[in] tagid a pointer to tagid of new - * tag, this can be NULL \return false if failed to create a tag and indicates that tagid is invalid to use. - * \note If tag already exists the existing tag id is returned. This function will also raise a - * DT_SIGNAL_TAG_CHANGED signal if necessary, so keywords GUI can refresh. */ +/** creates a new tag, returns tagid \param[in] name the tag + * name. \param[in] tagid a pointer to tagid of new tag, this can be + * NULL \return false if failed to create a tag and indicates that + * tagid is invalid to use. \note If tag already exists the existing + * tag id is returned. This function will also raise a + * DT_SIGNAL_TAG_CHANGED signal if necessary, so keywords GUI can + * refresh. */ gboolean dt_tag_new_from_gui(const char *name, guint *tagid); -// read/import tags from a txt file as written by Lightroom. returns the number of imported tags -// or -1 if an error occurred. +// read/import tags from a txt file as written by Lightroom. returns +// the number of imported tags or -1 if an error occurred. ssize_t dt_tag_import(const char *filename); -// export all tags to a txt file as written by Lightroom. returns the number of exported tags -// or -1 if an error occurred. +// export all tags to a txt file as written by Lightroom. returns the +// number of exported tags or -1 if an error occurred. ssize_t dt_tag_export(const char *filename); /** get the name of specified id */ gchar *dt_tag_get_name(const guint tagid); -/** removes a tag from db and from assigned images. \param final TRUE actually performs the remove \return - * the amount of images affected. */ +/** removes a tag from db and from assigned images. \param final TRUE + * actually performs the remove \return the amount of images + * affected. */ guint dt_tag_remove(const guint tagid, gboolean final); -/** removes a list of tags from db and from assigned images. \return the number of tags deleted */ +/** removes a list of tags from db and from assigned images. \return + * the number of tags deleted */ guint dt_tag_remove_list(GList *tag_list); /** set the name of specified id */ void dt_tag_rename(const guint tagid, const gchar *new_tagname); -/** checks if tag exists. \param[in] name of tag to check. \return the id of found tag or -1 i not found. */ +/** checks if tag exists. \param[in] name of tag to check. \return the + * id of found tag or -1 i not found. */ gboolean dt_tag_exists(const char *name, guint *tagid); -/** attach a tag on images list. tagid id of tag to attach. img the list of image - * id to attach tag to */ -gboolean dt_tag_attach_images(const guint tagid, const GList *img, const gboolean undo_on); +/** attach a tag on images list. tagid id of tag to attach. img the + * list of image id to attach tag to */ +gboolean dt_tag_attach_images(const guint tagid, + const GList *img, + const gboolean undo_on); /** attach a tag on images. tagid id of tag to attach. imgid the image * id to attach tag to, if < 0 images to act on are used. */ -gboolean dt_tag_attach(const guint tagid, const dt_imgid_t imgid, const gboolean undo_on, const gboolean group_on); +gboolean dt_tag_attach(const guint tagid, + const dt_imgid_t imgid, + const gboolean undo_on, + const gboolean group_on); /** check if a tag is attached to the given image */ gboolean dt_is_tag_attached(const guint tagid, const dt_imgid_t imgid); -/** attach a list of tags on selected images. \param[in] tags a list of ids of tags. \param[in] imgid the - * image id to attach tag to, if < 0 selected images are used. \note If tag not exists it's created - * if clear_on TRUE the image tags are cleared before attaching the new ones*/ -gboolean dt_tag_set_tags(const GList *tags, const GList *img, const gboolean ignore_dt_tags, - const gboolean clear_on, const gboolean undo_on); - -/** attach a list of tags on list of images. \param[in] tags a comma separated string of tags. \param[in] - * img the list of images to attach tag to. \note If tag does not exist, it's created.*/ -gboolean dt_tag_attach_string_list(const gchar *tags, const GList *img, const gboolean undo_on); - -/** detach tag from images. \param[in] tagid of tag to detach. \param[in] img the list of image id to detach - * tag from */ -gboolean dt_tag_detach_images(const guint tagid, const GList *img, const gboolean undo_on); -/** detach tag from images. \param[in] tagid of tag to detach. \param[in] imgid the image id to detach - * tag from, if < 0 images to act on are used. */ -gboolean dt_tag_detach(const guint tagid, const dt_imgid_t imgid, const gboolean undo_on, const gboolean group_on); - -/** detach tags from images that matches name, it is valid to use % to match tag */ -gboolean dt_tag_detach_by_string(const char *name, const dt_imgid_t imgid, const gboolean undo_on, +/** attach a list of tags on selected images. \param[in] tags a list + * of ids of tags. \param[in] imgid the image id to attach tag to, if + * < 0 selected images are used. \note If tag not exists it's created + * if clear_on TRUE the image tags are cleared before attaching the + * new ones*/ +gboolean dt_tag_set_tags(const GList *tags, + const GList *img, + const gboolean ignore_dt_tags, + const gboolean clear_on, + const gboolean undo_on); + +/** attach a list of tags on list of images. \param[in] tags a comma + * separated string of tags. \param[in] img the list of images to + * attach tag to. \note If tag does not exist, it's created.*/ +gboolean dt_tag_attach_string_list(const gchar *tags, + const GList *img, + const gboolean undo_on); + +/** detach tag from images. \param[in] tagid of tag to + * detach. \param[in] img the list of image id to detach tag from */ +gboolean dt_tag_detach_images(const guint tagid, + const GList *img, + const gboolean undo_on); +/** detach tag from images. \param[in] tagid of tag to + * detach. \param[in] imgid the image id to detach tag from, if < 0 + * images to act on are used. */ +gboolean dt_tag_detach(const guint tagid, + const dt_imgid_t imgid, + const gboolean undo_on, + const gboolean group_on); + +/** detach tags from images that matches name, it is valid to use % to + * match tag */ +gboolean dt_tag_detach_by_string(const char *name, + const dt_imgid_t imgid, + const gboolean undo_on, const gboolean group_on); -/** retrieves a list of tags of specified imgid \param[out] result a list of dt_tag_t, sorted by tag. */ -uint32_t dt_tag_get_attached(const dt_imgid_t imgid, GList **result, const gboolean ignore_dt_tags); +/** retrieves the count of tags of specified imgid */ +uint32_t dt_tag_count_attached(const dt_imgid_t imgid, + const gboolean ignore_dt_tags); + +/** retrieves a list of tags of specified imgid \param[out] result a + * list of dt_tag_t, sorted by tag. */ +uint32_t dt_tag_get_attached(const dt_imgid_t imgid, + GList **result, + const gboolean ignore_dt_tags); /** sort tags per name (including '|') or per count (desc) */ -GList *dt_sort_tag(GList *tags, gboolean byname); +GList *dt_sort_tag(GList *tags, const gboolean byname); -/** get a list of tags, - * the difference to dt_tag_get_attached() is that this one splits at '|' and filters out the "darktable|" - * tags. */ -GList *dt_tag_get_list(dt_imgid_t imgid); - -/** get a list of tags, - * the difference to dt_tag_get_list() is that this one checks option for exportation */ -GList *dt_tag_get_list_export(dt_imgid_t imgid, int32_t flags); - -/** get a flat list of only hierarchical tags, - * the difference to dt_tag_get_attached() is that this one filters out the "darktable|" tags. */ -GList *dt_tag_get_hierarchical(dt_imgid_t imgid); - -/** get a flat list of only hierarchical tags, - * the difference to dt_tag_get_hierarchical() is that this one checks option for exportation */ -GList *dt_tag_get_hierarchical_export(dt_imgid_t imgid, int32_t flags); +/** get a list of tags, the difference to dt_tag_get_attached() is + * that this one splits at '|' and filters out the "darktable|" + * tags. */ +GList *dt_tag_get_list(const dt_imgid_t imgid); + +/** get a list of tags, the difference to dt_tag_get_list() is that + * this one checks option for exportation */ +GList *dt_tag_get_list_export(const dt_imgid_t imgid, + const int32_t flags); + +/** get a flat list of only hierarchical tags, the difference to + * dt_tag_get_attached() is that this one filters out the + * "darktable|" tags. */ +GList *dt_tag_get_hierarchical(const dt_imgid_t imgid); + +/** get a flat list of only hierarchical tags, the difference to + * dt_tag_get_hierarchical() is that this one checks option for + * exportation */ +GList *dt_tag_get_hierarchical_export(const dt_imgid_t imgid, + const int32_t flags); /** get a flat list of tags id attached to image id*/ -GList *dt_tag_get_tags(const dt_imgid_t imgid, const gboolean ignore_dt_tags); +GList *dt_tag_get_tags(const dt_imgid_t imgid, + const gboolean ignore_dt_tags); /** get the subset of images that have a given tag attached */ GList *dt_tag_get_images(const gint tagid); -/** get the subset of images from the given list that have a given tag attached */ -GList *dt_tag_get_images_from_list(const GList *img, const gint tagid); - -/** retrieves a list of suggested tags matching keyword. \param[in] keyword the keyword to search \param[out] - * result a pointer to list populated with result. \return the count \note the limit of result is decided by - * conf value "xxx" */ +/** get the subset of images from the given list that have a given tag + * attached */ +GList *dt_tag_get_images_from_list(const GList *img, + const gint tagid); + +/** retrieves a list of suggested tags matching keyword. \param[in] + * keyword the keyword to search \param[out] result a pointer to list + * populated with result. \return the count \note the limit of result + * is decided by conf value "xxx" */ uint32_t dt_tag_get_suggestions(GList **result); -/** retrieves count of tagged images. \param[in] keyword the keyword to search \return - * the count \note the limit of result is decided by conf value "xxx" */ -void dt_tag_count_tags_images(const gchar *keyword, int *tag_count, int *img_count); - -/** retrieves list of tags and tagged images. \param[in] keyword the keyword to search. \param[out] result pointers to list - * populated with result. \note the limit of result is decided by conf value "xxx" */ -void dt_tag_get_tags_images(const gchar *keyword, GList **tag_list, GList **img_list); - -/** retrieves the list of tags matching keyword. \param[in] keyword the keyword to search \param[out] - * result a pointer to list populated with result. \return the count \note the limit of result is decided by +/** retrieves count of tagged images. \param[in] keyword the keyword + * to search \return the count \note the limit of result is decided by * conf value "xxx" */ +void dt_tag_count_tags_images(const gchar *keyword, + int *tag_count, + int *img_count); + +/** retrieves list of tags and tagged images. \param[in] keyword the + * keyword to search. \param[out] result pointers to list populated + * with result. \note the limit of result is decided by conf value + * "xxx" */ +void dt_tag_get_tags_images(const gchar *keyword, + GList **tag_list, + GList **img_list); + +/** retrieves the list of tags matching keyword. \param[in] keyword + * the keyword to search \param[out] result a pointer to list + * populated with result. \return the count \note the limit of result + * is decided by conf value "xxx" */ uint32_t dt_tag_get_with_usage(GList **result); /** retrieves synonyms of the tag */ gchar *dt_tag_get_synonyms(gint tagid); /** sets synonyms of the tag */ -void dt_tag_set_synonyms(gint tagid, gchar *synonyms); +void dt_tag_set_synonyms(const gint tagid, + gchar *synonyms); /** retrieves flags of the tag */ -gint dt_tag_get_flags(gint tagid); +gint dt_tag_get_flags(const gint tagid); /** sets flags of the tag */ -void dt_tag_set_flags(gint tagid, gint flags); +void dt_tag_set_flags(const gint tagid, + const gint flags); -/** retrieves a list of recent tags used. \param[out] result a pointer to list populated with result. \return - * the count \note the limit of result is decided by conf value "xxx" */ +/** retrieves a list of recent tags used. \param[out] result a pointer + * to list populated with result. \return the count \note the limit of + * result is decided by conf value "xxx" */ uint32_t dt_tag_get_recent_used(GList **result); /** frees the memory of a result set. */ @@ -199,10 +255,12 @@ uint32_t dt_tag_images_count(gint tagid); /** retrieves the subtags of requested level for the requested category */ -char *dt_tag_get_subtags(const dt_imgid_t imgid, const char *category, const int level); +char *dt_tag_get_subtags(const dt_imgid_t imgid, + const char *category, + const int level); /** return the tagid of that tag - follow tag sensitivity - return 0 if not found*/ -uint32_t dt_tag_get_tag_id_by_name(const char * const name); +uint32_t dt_tag_get_tag_id_by_name(const char *const name); /** init the darktable tags table */ void dt_set_darktable_tags(); diff -Nru darktable-4.4.2/src/common/undo.c darktable-4.6.1/src/common/undo.c --- darktable-4.4.2/src/common/undo.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/undo.c 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2017-2021 darktable developers. + Copyright (C) 2017-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -20,6 +20,7 @@ #include "common/collection.h" #include "common/darktable.h" #include "common/image.h" +#include "common/image_cache.h" #include "control/control.h" #include <glib.h> // for GList, gpointer, g_list_prepend #include <stdlib.h> // for NULL, malloc, free @@ -34,7 +35,11 @@ dt_undo_data_t data; double ts; gboolean is_group; - void (*undo)(gpointer user_data, dt_undo_type_t type, dt_undo_data_t data, dt_undo_action_t action, GList **imgs); + void (*undo)(gpointer user_data, + dt_undo_type_t type, + dt_undo_data_t data, + dt_undo_action_t action, + GList **imgs); void (*free_data)(gpointer data); } dt_undo_item_t; @@ -77,9 +82,16 @@ free(item); } -static void _undo_record(dt_undo_t *self, gpointer user_data, dt_undo_type_t type, dt_undo_data_t data, - gboolean is_group, - void (*undo)(gpointer user_data, dt_undo_type_t type, dt_undo_data_t item, dt_undo_action_t action, GList **imgs), +static void _undo_record(dt_undo_t *self, + gpointer user_data, + const dt_undo_type_t type, + const dt_undo_data_t data, + const gboolean is_group, + void (*undo)(gpointer user_data, + const dt_undo_type_t type, + const dt_undo_data_t item, + const dt_undo_action_t action, + GList **imgs), void (*free_data)(gpointer data)) { if(!self) return; @@ -91,8 +103,9 @@ } else { - // do not block, if an undo record is asked and there is a lock it means that this call has been done in un - // undo/redo callback. We just skip this event. + // do not block, if an undo record is asked and there is a lock it + // means that this call has been done in un undo/redo callback. We + // just skip this event. if(!self->locked) { @@ -122,7 +135,8 @@ } } -void dt_undo_start_group(dt_undo_t *self, dt_undo_type_t type) +void dt_undo_start_group(dt_undo_t *self, + const dt_undo_type_t type) { if(!self) return; @@ -151,8 +165,15 @@ } } -void dt_undo_record(dt_undo_t *self, gpointer user_data, dt_undo_type_t type, dt_undo_data_t data, - void (*undo)(gpointer user_data, dt_undo_type_t type, dt_undo_data_t item, dt_undo_action_t action, GList **imgs), +void dt_undo_record(dt_undo_t *self, + gpointer user_data, + dt_undo_type_t type, + dt_undo_data_t data, + void (*undo)(gpointer user_data, + const dt_undo_type_t type, + const dt_undo_data_t item, + const dt_undo_action_t action, + GList **imgs), void (*free_data)(gpointer data)) { _undo_record(self, user_data, type, data, FALSE, undo, free_data); @@ -163,7 +184,9 @@ return GPOINTER_TO_INT(a) - GPOINTER_TO_INT(b); } -static void _undo_do_undo_redo(dt_undo_t *self, uint32_t filter, dt_undo_action_t action) +static void _undo_do_undo_redo(dt_undo_t *self, + const uint32_t filter, + const dt_undo_action_t action) { if(!self) return; @@ -177,8 +200,12 @@ // check for first item that is matching the given pattern - dt_print(DT_DEBUG_UNDO, "[undo] action %s for %d (from length %d -> to length %d)\n", - action == DT_ACTION_UNDO?"UNDO":"DO", filter, g_list_length(*from), g_list_length(*to)); + dt_print(DT_DEBUG_UNDO, + "[undo] action %s for %d (from length %d -> to length %d)\n", + action == DT_ACTION_UNDO ? "UNDO" : "DO", + filter, + g_list_length(*from), + g_list_length(*to)); for(GList *l = *from; l; l = g_list_next(l)) { @@ -239,7 +266,9 @@ l = next; if(l) item = (dt_undo_item_t *)l->data; - } while(l && (item->type & filter) && (in_group || (fabs(item->ts - first_item_ts) < MAX_TIME_PERIOD))); + } while(l + && (item->type & filter) + && (in_group || (fabs(item->ts - first_item_ts) < MAX_TIME_PERIOD))); } break; @@ -252,27 +281,29 @@ imgs = g_list_sort(imgs, _images_list_cmp); // remove duplicates for(const GList *img = imgs; img; img = g_list_next(img)) + { + // udpate xmp is done via set_change_timestamp + dt_image_cache_set_change_timestamp(darktable.image_cache, GPOINTER_TO_INT(img->data)); while(img->next && img->data == img->next->data) imgs = g_list_delete_link(imgs, img->next); - // udpate xmp for updated images - - dt_image_synch_xmps(imgs); + } } - dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_UNDEF, imgs); + dt_collection_update_query(darktable.collection, + DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_UNDEF, imgs); } -void dt_undo_do_redo(dt_undo_t *self, uint32_t filter) +void dt_undo_do_redo(dt_undo_t *self, const uint32_t filter) { _undo_do_undo_redo(self, filter, DT_ACTION_REDO); } -void dt_undo_do_undo(dt_undo_t *self, uint32_t filter) +void dt_undo_do_undo(dt_undo_t *self, const uint32_t filter) { _undo_do_undo_redo(self, filter, DT_ACTION_UNDO); } -static void _undo_clear_list(GList **list, uint32_t filter) +static void _undo_clear_list(GList **list, const uint32_t filter) { // check for first item that is matching the given pattern @@ -306,8 +337,12 @@ UNLOCK; } -static void _undo_iterate(GList *list, uint32_t filter, gpointer user_data, - void (*apply)(gpointer user_data, dt_undo_type_t type, dt_undo_data_t item)) +static void _undo_iterate(GList *list, + const uint32_t filter, + gpointer user_data, + void (*apply)(gpointer user_data, + const dt_undo_type_t type, + const dt_undo_data_t item)) { // check for first item that is matching the given pattern for(GList *l = list; l; l = g_list_next(l)) @@ -320,8 +355,12 @@ }; } -void dt_undo_iterate_internal(dt_undo_t *self, uint32_t filter, gpointer user_data, - void (*apply)(gpointer user_data, dt_undo_type_t type, dt_undo_data_t item)) +void dt_undo_iterate_internal(dt_undo_t *self, + const uint32_t filter, + gpointer user_data, + void (*apply)(gpointer user_data, + const dt_undo_type_t type, + const dt_undo_data_t item)) { if(!self) return; @@ -330,8 +369,12 @@ } -void dt_undo_iterate(dt_undo_t *self, uint32_t filter, gpointer user_data, - void (*apply)(gpointer user_data, dt_undo_type_t type, dt_undo_data_t item)) +void dt_undo_iterate(dt_undo_t *self, + const uint32_t filter, + gpointer user_data, + void (*apply)(gpointer user_data, + const dt_undo_type_t type, + const dt_undo_data_t item)) { if(!self) return; @@ -345,4 +388,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/common/undo.h darktable-4.6.1/src/common/undo.h --- darktable-4.4.2/src/common/undo.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/undo.h 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2017-2021 darktable developers. + Copyright (C) 2017-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -68,31 +68,48 @@ void dt_undo_cleanup(dt_undo_t *self); // create a group of item to be handled together, a group -void dt_undo_start_group(dt_undo_t *self, dt_undo_type_t type); +void dt_undo_start_group(dt_undo_t *self, + const dt_undo_type_t type); void dt_undo_end_group(dt_undo_t *self); // record a change that will be insered into the undo list -void dt_undo_record(dt_undo_t *self, gpointer user_data, dt_undo_type_t type, dt_undo_data_t data, - void (*undo)(gpointer user_data, dt_undo_type_t type, dt_undo_data_t item, dt_undo_action_t action, GList **imgs), +void dt_undo_record(dt_undo_t *self, + gpointer user_data, + const dt_undo_type_t type, + const dt_undo_data_t data, + void (*undo)(gpointer user_data, + const dt_undo_type_t type, + const dt_undo_data_t item, + const dt_undo_action_t action, + GList **imgs), void (*free_data)(gpointer data)); // undo an element which correspond to filter. filter here is expected to be // a set of dt_undo_type_t. -void dt_undo_do_undo(dt_undo_t *self, uint32_t filter); +void dt_undo_do_undo(dt_undo_t *self, const uint32_t filter); // redo a previously undone action, does nothing if the redo list is empty -void dt_undo_do_redo(dt_undo_t *self, uint32_t filter); +void dt_undo_do_redo(dt_undo_t *self, const uint32_t filter); // removes all items which correspond to filter in the undo/redo lists -void dt_undo_clear(dt_undo_t *self, uint32_t filter); +void dt_undo_clear(dt_undo_t *self, const uint32_t filter); -void dt_undo_iterate_internal(dt_undo_t *self, uint32_t filter, gpointer user_data, - void (*apply)(gpointer user_data, dt_undo_type_t type, dt_undo_data_t item)); +void dt_undo_iterate_internal(dt_undo_t *self, + const uint32_t filter, + gpointer user_data, + void (*apply)(gpointer user_data, + const dt_undo_type_t type, + const dt_undo_data_t item)); + +void dt_undo_iterate(dt_undo_t *self, + const uint32_t filter, + gpointer user_data, + void (*apply)(gpointer user_data, + const dt_undo_type_t type, + const dt_undo_data_t item)); -void dt_undo_iterate(dt_undo_t *self, uint32_t filter, gpointer user_data, - void (*apply)(gpointer user_data, dt_undo_type_t type, dt_undo_data_t item)); - -// disable the next record, this is to avoid recording when reverting a value (in undo callbacks) +// disable the next record, this is to avoid recording when reverting +// a value (in undo callbacks) void dt_undo_disable_next(dt_undo_t *self); // clang-format off @@ -100,4 +117,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/common/usermanual_url.c darktable-4.6.1/src/common/usermanual_url.c --- darktable-4.4.2/src/common/usermanual_url.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/usermanual_url.c 2024-02-16 17:31:09.000000000 +0000 @@ -26,6 +26,7 @@ dt_help_url urls_db[] = { + {"document_root", "/"}, {"ratings", "lighttable/digital-asset-management/star-color/#star-ratings"}, {"layout_filemanager", "lighttable/lighttable-modes/filemanager/"}, {"layout_zoomable", "lighttable/lighttable-modes/zoomable-lighttable/"}, @@ -41,6 +42,7 @@ {"styles", "module-reference/utility-modules/lighttable/styles/#module-controls"}, {"timeline", "module-reference/utility-modules/lighttable/timeline/"}, {"metadata", "module-reference/utility-modules/shared/metadata-editor/"}, + {"metadata_preferences", "module-reference/utility-modules/shared/metadata-editor/#preferences"}, {"tagging", "module-reference/utility-modules/shared/tagging/"}, {"geotagging", "module-reference/utility-modules/shared/geotagging/"}, {"collect", "module-reference/utility-modules/shared/collections/"}, diff -Nru darktable-4.4.2/src/common/utility.c darktable-4.6.1/src/common/utility.c --- darktable-4.4.2/src/common/utility.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/utility.c 2024-02-16 17:31:09.000000000 +0000 @@ -97,6 +97,27 @@ return o; } +gchar *dt_util_float_to_str(const gchar *format, const double value) +{ +#if defined(WIN32) + _configthreadlocale(_ENABLE_PER_THREAD_LOCALE); + setlocale (LC_NUMERIC, "C"); +#else + locale_t nlocale = newlocale(LC_NUMERIC_MASK, "C", (locale_t) 0); + locale_t locale = uselocale(nlocale); +#endif + + gchar *txt = g_strdup_printf(format, value); + +#if defined(WIN32) + _configthreadlocale(_DISABLE_PER_THREAD_LOCALE); +#else + uselocale(locale); + freelocale(nlocale); +#endif + return txt; +} + gchar *dt_util_str_replace(const gchar *string, const gchar *pattern, const gchar *substitute) { const gint occurrences = dt_util_str_occurence(string, pattern); @@ -568,7 +589,9 @@ gchar **list = g_strsplit(input, ",", 0); if(list) { - if(list[2] == NULL) // format DDD,MM.mm{N|S} + if(list[1] == NULL) // Already in decimal format + res = g_ascii_strtod(list[0], NULL); + else if(list[2] == NULL) // format DDD,MM.mm{N|S} res = g_ascii_strtoll(list[0], NULL, 10) + (g_ascii_strtod(list[1], NULL) / 60.0); else if(list[3] == NULL) // format DDD,MM,SS{N|S} res = g_ascii_strtoll(list[0], NULL, 10) + (g_ascii_strtoll(list[1], NULL, 10) / 60.0) @@ -971,18 +994,26 @@ char *dt_copy_filename_extension(const char *filename1, const char *filename2) { // assume both filenames have an extension - if(!filename1 || !filename2) return NULL; - const char *dot1 = strrchr(filename1, '.'); - if(!dot1) return NULL; + if(!filename2) return NULL; const char *dot2 = strrchr(filename2, '.'); if(!dot2) return NULL; - const int name_lgth = dot1 - filename1; - const int ext_lgth = strlen(dot2); + + return dt_filename_change_extension(filename1, dot2+1); +} + +char *dt_filename_change_extension(const char *filename, const char *ext) +{ + // assume both filenames have an extension + if(!filename || !ext) return NULL; + const char *dot = strrchr(filename, '.'); + if(!dot) return NULL; + const int name_lgth = dot - filename + 1; + const int ext_lgth = strlen(ext); char *output = g_malloc(name_lgth + ext_lgth + 1); if(output) { - memcpy(output, filename1, name_lgth); - memcpy(&output[name_lgth], &filename2[strlen(filename2) - ext_lgth], ext_lgth + 1); + memcpy(output, filename, name_lgth); + memcpy(&output[name_lgth], ext, ext_lgth + 1); } return output; } diff -Nru darktable-4.4.2/src/common/utility.h darktable-4.6.1/src/common/utility.h --- darktable-4.4.2/src/common/utility.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/utility.h 2024-02-16 17:31:09.000000000 +0000 @@ -33,6 +33,8 @@ gchar *dt_util_str_replace(const gchar *string, const gchar *pattern, const gchar *substitute); /** count the number of occurrences of needle in haystack */ guint dt_util_str_occurence(const gchar *haystack, const gchar *needle); +/** format a floating point number string with dot separator locale independent */ +gchar *dt_util_float_to_str(const gchar *format, const double value); /** generate a string from the elements of the list, separated by separator. the result has to be freed. */ gchar *dt_util_glist_to_str(const gchar *separator, GList *items); /** generate a GList from the elements of a string, separated by separator. the result has to be freed. */ @@ -116,6 +118,9 @@ // set the filename2 extension to filename1 - return NULL if fails - result should be freed char *dt_copy_filename_extension(const char *filename1, const char *filename2); +// change filename to have the given extension +char *dt_filename_change_extension(const char *filename, const char *ext); + // replaces all occurences of a substring in a string gchar *dt_str_replace(const char *string, const char *search, const char *replace); diff -Nru darktable-4.4.2/src/common/variables.c darktable-4.6.1/src/common/variables.c --- darktable-4.4.2/src/common/variables.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/common/variables.c 2024-02-16 17:31:09.000000000 +0000 @@ -87,6 +87,7 @@ float exif_exposure_bias; float exif_aperture; float exif_focal_length; + float exif_crop; float exif_focus_distance; double longitude; double latitude; @@ -133,6 +134,7 @@ params->data->exif_exposure_bias = DT_EXIF_TAG_UNINITIALIZED; params->data->exif_aperture = 0.0f; params->data->exif_focal_length = 0.0f; + params->data->exif_crop = 0.0f; params->data->exif_focus_distance = 0.0f; params->data->longitude = NAN; params->data->latitude = NAN; @@ -162,6 +164,7 @@ params->data->exif_exposure_bias = img->exif_exposure_bias; params->data->exif_aperture = img->exif_aperture; params->data->exif_focal_length = img->exif_focal_length; + params->data->exif_crop = img->exif_crop; if(!dt_isnan(img->exif_focus_distance) && fpclassify(img->exif_focus_distance) != FP_ZERO) params->data->exif_focus_distance = img->exif_focus_distance; params->data->longitude = img->geoloc.longitude; @@ -403,6 +406,12 @@ || _has_prefix(variable, "EXIF_APERTURE")) result = g_strdup_printf("%.1f", params->data->exif_aperture); + else if(_has_prefix(variable, "EXIF.CROP_FACTOR")) + result = g_strdup_printf("%.1f", params->data->exif_crop); + + else if(_has_prefix(variable, "EXIF.FOCAL.LENGTH.EQUIV")) + result = g_strdup_printf("%.1f", params->data->exif_focal_length * params->data->exif_crop); + else if(_has_prefix(variable, "EXIF.FOCAL.LENGTH") || _has_prefix(variable, "EXIF_FOCAL_LENGTH")) result = g_strdup_printf("%.1f", params->data->exif_focal_length); @@ -699,7 +708,7 @@ else if(_has_prefix(variable, "OPENCL.ACTIVATED") || _has_prefix(variable, "OPENCL_ACTIVATED")) { - if(dt_opencl_is_enabled()) + if(dt_opencl_running()) result = g_strdup(_("yes")); else result = g_strdup(_("no")); diff -Nru darktable-4.4.2/src/config.cmake.h darktable-4.6.1/src/config.cmake.h --- darktable-4.4.2/src/config.cmake.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/config.cmake.h 2024-02-16 17:31:09.000000000 +0000 @@ -8,6 +8,7 @@ #define PACKAGE_NAME "@CMAKE_PROJECT_NAME@" #define PACKAGE_BUGREPORT "https://github.com/darktable-org/darktable/issues/new/choose" +#define PACKAGE_DOCS "https://www.darktable.org/resources/" // these will be defined in build/bin/version_gen.c extern const char darktable_package_version[]; @@ -88,4 +89,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/control/conf.c darktable-4.6.1/src/control/conf.c --- darktable-4.4.2/src/control/conf.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/control/conf.c 2024-02-16 17:31:09.000000000 +0000 @@ -41,7 +41,7 @@ } dt_conf_dreggn_t; /** return slot for this variable or newly allocated slot. */ -static inline char *dt_conf_get_var(const char *name) +static inline char *_conf_get_var(const char *name) { char *str; @@ -75,7 +75,7 @@ /* set the value only if it hasn't been overridden from commandline * return 1 if key/value is still the one passed on commandline. */ -static int dt_conf_set_if_not_overridden(const char *name, char *str) +static int _conf_set_if_not_overridden(const char *name, char *str) { dt_pthread_mutex_lock(&darktable.conf->mutex); @@ -94,32 +94,32 @@ void dt_conf_set_int(const char *name, int val) { char *str = g_strdup_printf("%d", val); - if(dt_conf_set_if_not_overridden(name, str)) g_free(str); + if(_conf_set_if_not_overridden(name, str)) g_free(str); } void dt_conf_set_int64(const char *name, int64_t val) { char *str = g_strdup_printf("%" PRId64, val); - if(dt_conf_set_if_not_overridden(name, str)) g_free(str); + if(_conf_set_if_not_overridden(name, str)) g_free(str); } void dt_conf_set_float(const char *name, float val) { char *str = (char *)g_malloc(G_ASCII_DTOSTR_BUF_SIZE); g_ascii_dtostr(str, G_ASCII_DTOSTR_BUF_SIZE, val); - if(dt_conf_set_if_not_overridden(name, str)) g_free(str); + if(_conf_set_if_not_overridden(name, str)) g_free(str); } void dt_conf_set_bool(const char *name, int val) { char *str = g_strdup(val ? "TRUE" : "FALSE"); - if(dt_conf_set_if_not_overridden(name, str)) g_free(str); + if(_conf_set_if_not_overridden(name, str)) g_free(str); } void dt_conf_set_string(const char *name, const char *val) { char *str = g_strdup(val); - if(dt_conf_set_if_not_overridden(name, str)) g_free(str); + if(_conf_set_if_not_overridden(name, str)) g_free(str); } void dt_conf_set_folder_from_file_chooser(const char *name, GtkFileChooser *chooser) @@ -134,7 +134,7 @@ if(pathname) { gchar *folder = g_path_get_dirname(pathname); - if(dt_conf_set_if_not_overridden(name, folder)) g_free(folder); + if(_conf_set_if_not_overridden(name, folder)) g_free(folder); g_free(pathname); } return; @@ -142,26 +142,31 @@ #endif gchar *folder = gtk_file_chooser_get_current_folder(chooser); - if(dt_conf_set_if_not_overridden(name, folder)) g_free(folder); + if(_conf_set_if_not_overridden(name, folder)) g_free(folder); } -int dt_conf_get_int_fast(const char *name) +static inline gboolean _conf_isnan(double val) { - const char *str = dt_conf_get_var(name); - float new_value = dt_calculator_solve(1, str); - if(dt_isnan(new_value)) + return val != val; +} + +static int _conf_get_int_fast(const char *name) +{ + const char *str = _conf_get_var(name); + double new_value = dt_calculator_solve(1, str); + if(_conf_isnan(new_value)) { //we've got garbage, check default const char *def_val = dt_confgen_get(name, DT_DEFAULT); if(def_val) { new_value = dt_calculator_solve(1, def_val); - if(dt_isnan(new_value)) + if(_conf_isnan(new_value)) new_value = 0.0; else { char *fix_badval = g_strdup(def_val); - if(dt_conf_set_if_not_overridden(name, fix_badval)) + if(_conf_set_if_not_overridden(name, fix_badval)) g_free(fix_badval); } } @@ -183,28 +188,28 @@ { const int min = dt_confgen_get_int(name, DT_MIN); const int max = dt_confgen_get_int(name, DT_MAX); - const int val = dt_conf_get_int_fast(name); + const int val = _conf_get_int_fast(name); const int ret = CLAMP(val, min, max); return ret; } -int64_t dt_conf_get_int64_fast(const char *name) +static int64_t _conf_get_int64_fast(const char *name) { - const char *str = dt_conf_get_var(name); - float new_value = dt_calculator_solve(1, str); - if(dt_isnan(new_value)) + const char *str = _conf_get_var(name); + double new_value = dt_calculator_solve(1, str); + if(_conf_isnan(new_value)) { //we've got garbage, check default const char *def_val = dt_confgen_get(name, DT_DEFAULT); if(def_val) { new_value = dt_calculator_solve(1, def_val); - if(dt_isnan(new_value)) + if(_conf_isnan(new_value)) new_value = 0.0; else { char *fix_badval = g_strdup(def_val); - if(dt_conf_set_if_not_overridden(name, fix_badval)) + if(_conf_set_if_not_overridden(name, fix_badval)) g_free(fix_badval); } } @@ -226,28 +231,28 @@ { const int64_t min = dt_confgen_get_int64(name, DT_MIN); const int64_t max = dt_confgen_get_int64(name, DT_MAX); - const int64_t val = dt_conf_get_int64_fast(name); + const int64_t val = _conf_get_int64_fast(name); const int64_t ret = CLAMP(val, min, max); return ret; } -float dt_conf_get_float_fast(const char *name) +float _conf_get_float_fast(const char *name) { - const char *str = dt_conf_get_var(name); - float new_value = dt_calculator_solve(1, str); - if(dt_isnan(new_value)) + const char *str = _conf_get_var(name); + double new_value = dt_calculator_solve(1, str); + if(_conf_isnan(new_value)) { //we've got garbage, check default const char *def_val = dt_confgen_get(name, DT_DEFAULT); if(def_val) { new_value = dt_calculator_solve(1, def_val); - if(dt_isnan(new_value)) + if(_conf_isnan(new_value)) new_value = 0.0; else { char *fix_badval = g_strdup(def_val); - if(dt_conf_set_if_not_overridden(name, fix_badval)) + if(_conf_set_if_not_overridden(name, fix_badval)) g_free(fix_badval); } } @@ -256,14 +261,14 @@ new_value = 0.0; } } - return new_value; + return (float)new_value; } float dt_conf_get_float(const char *name) { const float min = dt_confgen_get_float(name, DT_MIN); const float max = dt_confgen_get_float(name, DT_MAX); - const float val = dt_conf_get_float_fast(name); + const float val = _conf_get_float_fast(name); const float ret = CLAMP(val, min, max); return ret; } @@ -272,7 +277,7 @@ { const int cmin = dt_confgen_get_int(name, DT_MIN); const int cmax = dt_confgen_get_int(name, DT_MAX); - const int val = dt_conf_get_int_fast(name); + const int val = _conf_get_int_fast(name); const int ret = CLAMPS(val, MAX(min, cmin), MIN(max, cmax)); dt_conf_set_int(name, ret); return ret; @@ -282,7 +287,7 @@ { const int64_t cmin = dt_confgen_get_int64(name, DT_MIN); const int64_t cmax = dt_confgen_get_int64(name, DT_MAX); - const int64_t val = dt_conf_get_int64_fast(name); + const int64_t val = _conf_get_int64_fast(name); const int64_t ret = CLAMPS(val, MAX(min, cmin), MIN(max, cmax)); dt_conf_set_int64(name, ret); return ret; @@ -292,7 +297,7 @@ { const float cmin = dt_confgen_get_float(name, DT_MIN); const float cmax = dt_confgen_get_float(name, DT_MAX); - const float val = dt_conf_get_float_fast(name); + const float val = _conf_get_float_fast(name); const float ret = CLAMPS(val, MAX(min, cmin), MIN(max, cmax)); dt_conf_set_float(name, ret); return ret; @@ -300,20 +305,41 @@ int dt_conf_get_bool(const char *name) { - const char *str = dt_conf_get_var(name); - const int val = (str[0] == 'T') || (str[0] == 't'); + const char *str = _conf_get_var(name); + const int val = (str[0] != 'F') && (str[0] != 'f') && (str[0] != '0') && (str[0] != '\0'); return val; } +void dt_conf_set_path(const char *name, const char *val) +{ + dt_conf_set_string(name, val); +} + +gchar *dt_conf_get_path(const char *name) +{ + const char *path = _conf_get_var(name); + const dt_confgen_value_t *item = g_hash_table_lookup(darktable.conf->x_confgen, name); + + if(path[0] + && item + && item->type == DT_PATH + && !g_file_test(path, G_FILE_TEST_IS_DIR | G_FILE_TEST_IS_SYMLINK)) + { + path = dt_confgen_get(name, DT_DEFAULT); + dt_conf_set_path(name, path); + } + return g_strdup(path); +} + gchar *dt_conf_get_string(const char *name) { - const char *str = dt_conf_get_var(name); + const char *str = _conf_get_var(name); return g_strdup(str); } const char *dt_conf_get_string_const(const char *name) { - return dt_conf_get_var(name); + return _conf_get_var(name); } gboolean dt_conf_key_not_empty(const char *name) @@ -337,7 +363,7 @@ gboolean dt_conf_is_equal(const char *name, const char *value) { - const char *str = dt_conf_get_var(name); + const char *str = _conf_get_var(name); return g_strcmp0(str, value) == 0; } @@ -356,34 +382,34 @@ { case DT_INT: { - float v = dt_calculator_solve(1, value); + double v = dt_calculator_solve(1, value); const int min = item->min ? (int)dt_calculator_solve(1, item->min) : INT_MIN; const int max = item->max ? (int)dt_calculator_solve(1, item->max) : INT_MAX; // if garbage, use default - const int val = dt_isnan(v) ? dt_confgen_get_int(name, DT_DEFAULT) : (int)v; + const int val = _conf_isnan(v) ? dt_confgen_get_int(name, DT_DEFAULT) : (int)v; result = g_strdup_printf("%d", CLAMP(val, min, max)); } break; case DT_INT64: { - float v = dt_calculator_solve(1, value); + double v = dt_calculator_solve(1, value); const int64_t min = item->min ? (int64_t)dt_calculator_solve(1, item->min) : INT64_MIN; const int64_t max = item->max ? (int64_t)dt_calculator_solve(1, item->max) : INT64_MAX; // if garbage, use default - const int64_t val = dt_isnan(v) ? dt_confgen_get_int64(name, DT_DEFAULT) : (int64_t)v; + const int64_t val = _conf_isnan(v) ? dt_confgen_get_int64(name, DT_DEFAULT) : (int64_t)v; result = g_strdup_printf("%"PRId64, CLAMP(val, min, max)); } break; case DT_FLOAT: { - float v = dt_calculator_solve(1, value); + double v = dt_calculator_solve(1, value); const float min = item->min ? (float)dt_calculator_solve(1, item->min) : -FLT_MAX; const float max = item->max ? (float)dt_calculator_solve(1, item->max) : FLT_MAX; // if garbage, use default - const float val = dt_isnan(v) ? dt_confgen_get_float(name, DT_DEFAULT) : v; + const float val = _conf_isnan(v) ? (float)dt_confgen_get_float(name, DT_DEFAULT) : (float)v; result = g_strdup_printf("%f", CLAMP(val, min, max)); } break; @@ -419,7 +445,8 @@ } gchar *dt_conf_read_values(const char *filename, - gchar* (*callback)(const gchar *key, const gchar *value)) + gchar* (*callback)(const gchar *key, + const gchar *value)) { #define LINE_SIZE 1023 @@ -439,7 +466,7 @@ const char* ret = fgets(line, LINE_SIZE, f); if(ret != NULL) { - g_strchomp(line); + line[strcspn(line, "\r\n")] = 0; char *c = line; char *end = line + strlen(line); // check for '=' which is separator between the conf name and value @@ -484,7 +511,7 @@ return NULL; } -gchar *_conf_insert_value(const gchar *key, const gchar *value) +static gchar *_conf_insert_value(const gchar *key, const gchar *value) { g_hash_table_insert(darktable.conf->table, g_strdup(key), g_strdup(value)); return NULL; @@ -516,10 +543,10 @@ } /** check if key exists, return 1 if lookup succeeded, 0 if failed..*/ -int dt_conf_key_exists(const char *key) +gboolean dt_conf_key_exists(const char *key) { dt_pthread_mutex_lock(&darktable.conf->mutex); - const int res = (g_hash_table_lookup(darktable.conf->table, key) != NULL) + const gboolean res = (g_hash_table_lookup(darktable.conf->table, key) != NULL) || (g_hash_table_lookup(darktable.conf->override_entries, key) != NULL); dt_pthread_mutex_unlock(&darktable.conf->mutex); return (res || dt_confgen_value_exists(key, DT_DEFAULT)); @@ -573,7 +600,7 @@ return DT_STRING; } -gboolean dt_confgen_value_exists(const char *name, dt_confgen_value_kind_t kind) +gboolean dt_confgen_value_exists(const char *name, const dt_confgen_value_kind_t kind) { const dt_confgen_value_t *item = g_hash_table_lookup(darktable.conf->x_confgen, name); if(item == NULL) @@ -593,7 +620,7 @@ return FALSE; } -const char *dt_confgen_get(const char *name, dt_confgen_value_kind_t kind) +const char *dt_confgen_get(const char *name, const dt_confgen_value_kind_t kind) { const dt_confgen_value_t *item = g_hash_table_lookup(darktable.conf->x_confgen, name); @@ -660,18 +687,18 @@ const char *str = dt_confgen_get(name, kind); //if str is NULL or empty, dt_calculator_solve will return NAN - const float value = dt_calculator_solve(1, str); + const double value = dt_calculator_solve(1, str); switch(kind) { case DT_MIN: - return dt_isnan(value) ? INT_MIN : (value > 0 ? value + 0.5f : value - 0.5f); + return _conf_isnan(value) ? INT_MIN : (value > 0 ? value + 0.5f : value - 0.5f); break; case DT_MAX: - return dt_isnan(value) ? INT_MAX : (value > 0 ? value + 0.5f : value - 0.5f); + return _conf_isnan(value) ? INT_MAX : (value > 0 ? value + 0.5f : value - 0.5f); break; default: - return dt_isnan(value) ? 0.0f : (value > 0 ? value + 0.5f : value - 0.5f); + return _conf_isnan(value) ? 0.0f : (value > 0 ? value + 0.5f : value - 0.5f); break; } return (int)value; @@ -698,18 +725,18 @@ const char *str = dt_confgen_get(name, kind); //if str is NULL or empty, dt_calculator_solve will return NAN - const float value = dt_calculator_solve(1, str); + const double value = dt_calculator_solve(1, str); switch(kind) { case DT_MIN: - return dt_isnan(value) ? INT64_MIN : (value > 0 ? value + 0.5f : value - 0.5f); + return _conf_isnan(value) ? INT64_MIN : (value > 0 ? value + 0.5f : value - 0.5f); break; case DT_MAX: - return dt_isnan(value) ? INT64_MAX : (value > 0 ? value + 0.5f : value - 0.5f); + return _conf_isnan(value) ? INT64_MAX : (value > 0 ? value + 0.5f : value - 0.5f); break; default: - return dt_isnan(value) ? 0.0f : (value > 0 ? value + 0.5f : value - 0.5f); + return _conf_isnan(value) ? 0.0f : (value > 0 ? value + 0.5f : value - 0.5f); break; } return (int64_t)value; @@ -743,21 +770,21 @@ const char *str = dt_confgen_get(name, kind); //if str is NULL or empty, dt_calculator_solve will return NAN - const float value = dt_calculator_solve(1, str); + const double value = dt_calculator_solve(1, str); switch(kind) { case DT_MIN: // to anyone askig FLT_MIN is superclose to 0, not furthest value from 0 possible in float - return dt_isnan(value) ? -FLT_MAX : value; + return _conf_isnan(value) ? -FLT_MAX : (float)value; break; case DT_MAX: - return dt_isnan(value) ? FLT_MAX : value; + return _conf_isnan(value) ? FLT_MAX : (float)value; break; default: break; } - return dt_isnan(value) ? 0.0f : value; + return _conf_isnan(value) ? 0.0f : (float)value; } gboolean dt_conf_is_default(const char *name) @@ -785,7 +812,7 @@ default: { const char *def_val = dt_confgen_get(name, DT_DEFAULT); - const char *cur_val = dt_conf_get_var(name); + const char *cur_val = _conf_get_var(name); return g_strcmp0(def_val, cur_val) == 0; break; } @@ -819,7 +846,7 @@ return normalized_path; } -static void dt_conf_print(const gchar *key, const gchar *val, FILE *f) +static void _conf_print(const gchar *key, const gchar *val, FILE *f) { fprintf(f, "%s=%s\n", key, val); } @@ -836,7 +863,7 @@ { const gchar *key = (const gchar *)iter->data; const gchar *val = (const gchar *)g_hash_table_lookup(cf->table, key); - dt_conf_print(key, val, f); + _conf_print(key, val, f); } g_list_free(sorted); diff -Nru darktable-4.4.2/src/control/conf.h darktable-4.6.1/src/control/conf.h --- darktable-4.4.2/src/control/conf.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/control/conf.h 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2010-2021 darktable developers. + Copyright (C) 2010-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -82,12 +82,10 @@ void dt_conf_set_float(const char *name, float val); void dt_conf_set_bool(const char *name, int val); void dt_conf_set_string(const char *name, const char *val); +void dt_conf_set_path(const char *name, const char *val); void dt_conf_set_folder_from_file_chooser(const char *name, GtkFileChooser *chooser); -int dt_conf_get_int_fast(const char *name); int dt_conf_get_int(const char *name); -int64_t dt_conf_get_int64_fast(const char *name); int64_t dt_conf_get_int64(const char *name); -float dt_conf_get_float_fast(const char *name); float dt_conf_get_float(const char *name); int dt_conf_get_and_sanitize_int(const char *name, int min, int max); int64_t dt_conf_get_and_sanitize_int64(const char *name, int64_t min, int64_t max); @@ -100,12 +98,13 @@ // get a freshly-allocated duplicate of the configuration string; safe // to use even if calling dt_conf_set_string gchar *dt_conf_get_string(const char *name); +gchar *dt_conf_get_path(const char *name); gboolean dt_conf_get_folder_to_file_chooser(const char *name, GtkFileChooser *chooser); gboolean dt_conf_is_equal(const char *name, const char *value); void dt_conf_init(dt_conf_t *cf, const char *filename, GSList *override_entries); void dt_conf_cleanup(dt_conf_t *cf); void dt_conf_save(dt_conf_t *cf); -int dt_conf_key_exists(const char *key); +gboolean dt_conf_key_exists(const char *key); gboolean dt_conf_key_not_empty(const char *key); GSList *dt_conf_all_string_entries(const char *dir); void dt_conf_string_entry_free(gpointer data); @@ -133,7 +132,7 @@ gboolean dt_conf_is_default(const char *name); gchar* dt_conf_expand_default_dir(const char *dir); -/** read filename and call callback() for every key/valye pair. if callback() returns non +/** read filename and call callback() for every key/value pair. if callback() returns non NULL, the value is returned by dt_conf_read_values. This may be used to look for a a specific value in filename */ gchar *dt_conf_read_values(const char *filename, diff -Nru darktable-4.4.2/src/control/control.c darktable-4.6.1/src/control/control.c --- darktable-4.4.2/src/control/control.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/control/control.c 2024-02-16 17:31:09.000000000 +0000 @@ -43,7 +43,10 @@ #include <string.h> #include <strings.h> -static float _action_process_accels_show(gpointer target, dt_action_element_t element, dt_action_effect_t effect, float move_size) +static float _action_process_accels_show(const gpointer target, + const dt_action_element_t element, + const dt_action_effect_t effect, + const float move_size) { if(DT_PERFORM_ACTION(move_size)) { @@ -71,7 +74,10 @@ GdkModifierType dt_modifier_shortcuts; -static float _action_process_modifiers(gpointer target, dt_action_element_t element, dt_action_effect_t effect, float move_size) +static float _action_process_modifiers(const gpointer target, + const dt_action_element_t element, + const dt_action_effect_t effect, + const float move_size) { GdkModifierType mask = 1; if(element) mask <<= element + 1; // ctrl = 4, alt = 8 @@ -199,10 +205,13 @@ dt_action_define_fallback(DT_ACTION_TYPE_LIB, &dt_action_def_lib); dt_action_define_fallback(DT_ACTION_TYPE_VALUE_FALLBACK, &dt_action_def_value); - dt_action_t *ac = dt_action_define(&s->actions_global, NULL, N_("show accels window"), NULL, &dt_action_def_accels_show); + dt_action_t *ac = dt_action_define(&s->actions_global, NULL, + N_("show accels window"), NULL, + &dt_action_def_accels_show); dt_shortcut_register(ac, 0, DT_ACTION_EFFECT_HOLD, GDK_KEY_h, 0); - s->actions_modifiers = dt_action_define(&s->actions_global, NULL, N_("modifiers"), NULL, &dt_action_def_modifiers); + s->actions_modifiers = dt_action_define(&s->actions_global, NULL, + N_("modifiers"), NULL, &dt_action_def_modifiers); memset(s->vimkey, 0, sizeof(s->vimkey)); s->vimkey_cnt = 0; @@ -235,10 +244,6 @@ s->button_down = 0; s->button_down_which = 0; s->mouse_over_id = NO_IMGID; - s->dev_closeup = 0; - s->dev_zoom_x = 0; - s->dev_zoom_y = 0; - s->dev_zoom = DT_ZOOM_FIT; s->lock_cursor_shape = FALSE; } @@ -263,12 +268,12 @@ } } -int dt_control_running() +gboolean dt_control_running() { // FIXME: when shutdown, run_mutex is not inited anymore! dt_control_t *s = darktable.control; dt_pthread_mutex_lock(&s->run_mutex); - int running = s->running; + const gboolean running = s->running; dt_pthread_mutex_unlock(&s->run_mutex); return running; } @@ -279,7 +284,7 @@ // thread safe quit, 1st pass: dt_pthread_mutex_lock(&darktable.control->cond_mutex); dt_pthread_mutex_lock(&darktable.control->run_mutex); - darktable.control->running = 0; + darktable.control->running = FALSE; dt_pthread_mutex_unlock(&darktable.control->run_mutex); dt_pthread_mutex_unlock(&darktable.control->cond_mutex); @@ -290,7 +295,7 @@ { dt_pthread_mutex_lock(&s->cond_mutex); dt_pthread_mutex_lock(&s->run_mutex); - s->running = 0; + s->running = FALSE; dt_pthread_mutex_unlock(&s->run_mutex); dt_pthread_mutex_unlock(&s->cond_mutex); pthread_cond_broadcast(&s->cond); @@ -335,14 +340,16 @@ // gui functions: // ================================================================================ -gboolean dt_control_configure(GtkWidget *da, GdkEventConfigure *event, gpointer user_data) +gboolean dt_control_configure(GtkWidget *da, + GdkEventConfigure *event, + gpointer user_data) { // re-configure all components: dt_view_manager_configure(darktable.view_manager, event->width, event->height); return TRUE; } -static GdkRGBA lookup_color(GtkStyleContext *context, const char *name) +static GdkRGBA _lookup_color(GtkStyleContext *context, const char *name) { GdkRGBA color, fallback = {1.0, 0.0, 0.0, 1.0}; if(!gtk_style_context_lookup_color (context, name, &color)) @@ -354,7 +361,8 @@ { PangoRectangle ink; PangoLayout *layout; - PangoFontDescription *desc = pango_font_description_copy_static(darktable.bauhaus->pango_font_desc); + PangoFontDescription *desc = + pango_font_description_copy_static(darktable.bauhaus->pango_font_desc); const float fontsize = DT_PIXEL_APPLY_DPI(14); pango_font_description_set_absolute_size(desc, fontsize * PANGO_SCALE); pango_font_description_set_weight(desc, PANGO_WEIGHT_BOLD); @@ -367,7 +375,9 @@ pango_layout_set_text(layout, "...", -1); pango_layout_get_pixel_extents(layout, &ink, NULL); } - const float xc = width / 2.0, yc = height * 0.85 - DT_PIXEL_APPLY_DPI(30), wd = ink.width * .5f; + const double xc = width / 2.0; + const double yc = height * 0.85 - DT_PIXEL_APPLY_DPI(30); + const double wd = ink.width * .5; cairo_move_to(cr, xc - wd, yc + 1. / 3. * fontsize - fontsize); pango_cairo_layout_path(cr, layout); cairo_set_line_width(cr, 2.0); @@ -394,7 +404,8 @@ cairo_surface_t *cst = dt_cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height); cairo_t *cr = cairo_create(cst); - // TODO: control_expose: only redraw the part not overlapped by temporary control panel show! + // TODO: control_expose: only redraw the part not overlapped by + // temporary control panel show! // darktable.control->width = width; darktable.control->height = height; @@ -402,7 +413,7 @@ GtkStyleContext *context = gtk_widget_get_style_context(widget); // look up some colors once - GdkRGBA bg_color = lookup_color(context, "bg_color"); + const GdkRGBA bg_color = _lookup_color(context, "bg_color"); gdk_cairo_set_source_rgba(cr, &bg_color); cairo_save(cr); @@ -432,7 +443,9 @@ return NULL; } -gboolean dt_control_draw_endmarker(GtkWidget *widget, cairo_t *crf, gpointer user_data) +gboolean dt_control_draw_endmarker(GtkWidget *widget, + cairo_t *crf, + gpointer user_data) { GtkAllocation allocation; gtk_widget_get_allocation(widget, &allocation); @@ -458,12 +471,18 @@ dt_view_manager_mouse_enter(darktable.view_manager); } -void dt_control_mouse_moved(double x, double y, double pressure, int which) +void dt_control_mouse_moved(double x, + double y, + double pressure, + int which) { dt_view_manager_mouse_moved(darktable.view_manager, x, y, pressure, which); } -void dt_control_button_released(double x, double y, int which, uint32_t state) +void dt_control_button_released(double x, + double y, + int which, + uint32_t state) { darktable.control->button_down = 0; darktable.control->button_down_which = 0; @@ -478,6 +497,7 @@ darktable.gui->center_tooltip = 0; GtkWidget *widget = dt_ui_center(darktable.gui->ui); gtk_widget_set_tooltip_text(widget, ""); + gtk_widget_grab_focus(widget); } static gboolean _dt_ctl_switch_mode_to(gpointer user_data) @@ -502,7 +522,8 @@ if(current_view && !g_ascii_strcasecmp(mode, current_view->module_name)) { // if we are not in lighttable, we switch back to that view - if(g_ascii_strcasecmp(current_view->module_name, "lighttable")) dt_ctl_switch_mode_to("lighttable"); + if(g_ascii_strcasecmp(current_view->module_name, "lighttable")) + dt_ctl_switch_mode_to("lighttable"); return; } @@ -511,14 +532,17 @@ void dt_ctl_switch_mode_to_by_view(const dt_view_t *view) { - if(view == dt_view_manager_get_current_view(darktable.view_manager)) return; + if(view == dt_view_manager_get_current_view(darktable.view_manager)) + return; g_main_context_invoke(NULL, _dt_ctl_switch_mode_to_by_view, (gpointer)view); } void dt_ctl_switch_mode() { const dt_view_t *view = dt_view_manager_get_current_view(darktable.view_manager); - const char *mode = (view && !strcmp(view->module_name, "lighttable")) ? "darkroom" : "lighttable"; + const char *mode = (view && !strcmp(view->module_name, "lighttable")) + ? "darkroom" + : "lighttable"; dt_ctl_switch_mode_to(mode); } @@ -544,23 +568,28 @@ return FALSE; } -void dt_control_button_pressed(double x, double y, double pressure, int which, int type, uint32_t state) +void dt_control_button_pressed(double x, + double y, + double pressure, + int which, + int type, + uint32_t state) { darktable.control->button_down = 1; darktable.control->button_down_which = which; darktable.control->button_type = type; darktable.control->button_x = x; darktable.control->button_y = y; - // adding pressure to this data structure is not needed right now. should the need ever arise: here is the - // place to do it :) - //const float wd = darktable.control->width; - const float ht = darktable.control->height; + // adding pressure to this data structure is not needed right + // now. should the need ever arise: here is the place to do it :) + // const float wd = darktable.control->width; + const double ht = darktable.control->height; // ack log message: dt_pthread_mutex_lock(&darktable.control->log_mutex); - const float /*xc = wd/4.0-20,*/ yc = ht * 0.85 + 10; + const double /*xc = wd/4.0-20,*/ yc = ht * 0.85 + 10.0; if(darktable.control->log_ack != darktable.control->log_pos) - if(which == 1 /*&& x > xc - 10 && x < xc + 10*/ && y > yc - 10 && y < yc + 10) + if(which == 1 /*&& x > xc - 10 && x < xc + 10*/ && y > yc - 10.0 && y < yc + 10.0) { if(darktable.control->log_message_timeout_id) { @@ -576,7 +605,7 @@ // ack toast message: dt_pthread_mutex_lock(&darktable.control->toast_mutex); if(darktable.control->toast_ack != darktable.control->toast_pos) - if(which == 1 /*&& x > xc - 10 && x < xc + 10*/ && y > yc - 10 && y < yc + 10) + if(which == 1 /*&& x > xc - 10 && x < xc + 10*/ && y > yc - 10.0 && y < yc + 10.0) { if(darktable.control->toast_message_timeout_id) { @@ -589,7 +618,8 @@ } dt_pthread_mutex_unlock(&darktable.control->toast_mutex); - if(!dt_view_manager_button_pressed(darktable.view_manager, x, y, pressure, which, type, state)) + if(!dt_view_manager_button_pressed(darktable.view_manager, x, y, + pressure, which, type, state)) if(type == GDK_2BUTTON_PRESS && which == 1) dt_ctl_switch_mode(); } @@ -607,7 +637,8 @@ va_start(ap, msg); char *escaped_msg = g_markup_vprintf_escaped(msg, ap); const int msglen = strlen(escaped_msg); - g_strlcpy(darktable.control->log_message[darktable.control->log_pos], escaped_msg, DT_CTL_LOG_MSG_SIZE); + g_strlcpy(darktable.control->log_message[darktable.control->log_pos], + escaped_msg, DT_CTL_LOG_MSG_SIZE); g_free(escaped_msg); va_end(ap); if(darktable.control->log_message_timeout_id) @@ -629,15 +660,18 @@ // if we don't want markup, we escape <>&... so they are not interpreted later if(markup) - vsnprintf(darktable.control->toast_message[darktable.control->toast_pos], DT_CTL_TOAST_MSG_SIZE, msg, ap); + vsnprintf(darktable.control->toast_message[darktable.control->toast_pos], + DT_CTL_TOAST_MSG_SIZE, msg, ap); else { char *escaped_msg = g_markup_vprintf_escaped(msg, ap); - g_strlcpy(darktable.control->toast_message[darktable.control->toast_pos], escaped_msg, DT_CTL_TOAST_MSG_SIZE); + g_strlcpy(darktable.control->toast_message[darktable.control->toast_pos], + escaped_msg, DT_CTL_TOAST_MSG_SIZE); g_free(escaped_msg); } - if(darktable.control->toast_message_timeout_id) g_source_remove(darktable.control->toast_message_timeout_id); + if(darktable.control->toast_message_timeout_id) + g_source_remove(darktable.control->toast_message_timeout_id); darktable.control->toast_ack = darktable.control->toast_pos; darktable.control->toast_pos = (darktable.control->toast_pos + 1) % DT_CTL_TOAST_SIZE; darktable.control->toast_message_timeout_id @@ -732,7 +766,7 @@ { gtk_widget_queue_draw((GtkWidget*)widget); g_object_unref(widget); - return FALSE; + return 0; } void dt_control_queue_redraw_widget(GtkWidget *widget) @@ -841,7 +875,8 @@ // the paths themselves are owned by bauhaus, // no free required. darktable.control->vimkey[darktable.control->vimkey_cnt] = 0; - g_strlcat(darktable.control->vimkey, (char *)autocomplete->data, sizeof(darktable.control->vimkey)); + g_strlcat(darktable.control->vimkey, (char *)autocomplete->data, + sizeof(darktable.control->vimkey)); autocomplete = g_list_remove(autocomplete, autocomplete->data); } dt_control_log("%s", darktable.control->vimkey); @@ -880,23 +915,24 @@ void dt_control_hinter_message(const struct dt_control_t *s, const char *message) { - if(s->proxy.hinter.module) return s->proxy.hinter.set_message(s->proxy.hinter.module, message); + if(s->proxy.hinter.module) + return s->proxy.hinter.set_message(s->proxy.hinter.module, message); } dt_imgid_t dt_control_get_mouse_over_id() { dt_pthread_mutex_lock(&(darktable.control->global_mutex)); - const int32_t result = darktable.control->mouse_over_id; + const dt_imgid_t result = darktable.control->mouse_over_id; dt_pthread_mutex_unlock(&(darktable.control->global_mutex)); return result; } -void dt_control_set_mouse_over_id(dt_imgid_t value) +void dt_control_set_mouse_over_id(const dt_imgid_t imgid) { dt_pthread_mutex_lock(&(darktable.control->global_mutex)); - if(darktable.control->mouse_over_id != value) + if(darktable.control->mouse_over_id != imgid) { - darktable.control->mouse_over_id = value; + darktable.control->mouse_over_id = imgid; dt_pthread_mutex_unlock(&(darktable.control->global_mutex)); DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_MOUSE_OVER_IMAGE_CHANGE); } @@ -904,77 +940,6 @@ dt_pthread_mutex_unlock(&(darktable.control->global_mutex)); } -float dt_control_get_dev_zoom_x() -{ - dt_pthread_mutex_lock(&(darktable.control->global_mutex)); - const float result = darktable.control->dev_zoom_x; - dt_pthread_mutex_unlock(&(darktable.control->global_mutex)); - return result; -} -void dt_control_set_dev_zoom_x(float value) -{ - dt_pthread_mutex_lock(&(darktable.control->global_mutex)); - darktable.control->dev_zoom_x = value; - dt_pthread_mutex_unlock(&(darktable.control->global_mutex)); -} - -float dt_control_get_dev_zoom_y() -{ - dt_pthread_mutex_lock(&(darktable.control->global_mutex)); - const float result = darktable.control->dev_zoom_y; - dt_pthread_mutex_unlock(&(darktable.control->global_mutex)); - return result; -} -void dt_control_set_dev_zoom_y(float value) -{ - dt_pthread_mutex_lock(&(darktable.control->global_mutex)); - darktable.control->dev_zoom_y = value; - dt_pthread_mutex_unlock(&(darktable.control->global_mutex)); -} - -float dt_control_get_dev_zoom_scale() -{ - dt_pthread_mutex_lock(&(darktable.control->global_mutex)); - const float result = darktable.control->dev_zoom_scale; - dt_pthread_mutex_unlock(&(darktable.control->global_mutex)); - return result; -} -void dt_control_set_dev_zoom_scale(float value) -{ - dt_pthread_mutex_lock(&(darktable.control->global_mutex)); - darktable.control->dev_zoom_scale = value; - dt_pthread_mutex_unlock(&(darktable.control->global_mutex)); -} - -int dt_control_get_dev_closeup() -{ - dt_pthread_mutex_lock(&(darktable.control->global_mutex)); - const int result = darktable.control->dev_closeup; - dt_pthread_mutex_unlock(&(darktable.control->global_mutex)); - return result; -} -void dt_control_set_dev_closeup(int value) -{ - dt_pthread_mutex_lock(&(darktable.control->global_mutex)); - darktable.control->dev_closeup = value; - dt_pthread_mutex_unlock(&(darktable.control->global_mutex)); -} - -dt_dev_zoom_t dt_control_get_dev_zoom() -{ - dt_pthread_mutex_lock(&(darktable.control->global_mutex)); - const dt_dev_zoom_t result = darktable.control->dev_zoom; - dt_pthread_mutex_unlock(&(darktable.control->global_mutex)); - return result; -} -void dt_control_set_dev_zoom(dt_dev_zoom_t value) -{ - dt_pthread_mutex_lock(&(darktable.control->global_mutex)); - darktable.control->dev_zoom = value; - dt_pthread_mutex_unlock(&(darktable.control->global_mutex)); -} - - // clang-format off // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py // vim: shiftwidth=2 expandtab tabstop=2 cindent diff -Nru darktable-4.4.2/src/control/control.h darktable-4.6.1/src/control/control.h --- darktable-4.4.2/src/control/control.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/control/control.h 2024-02-16 17:31:09.000000000 +0000 @@ -30,6 +30,7 @@ #endif #include "control/jobs.h" +#include "control/crawler.h" #include "control/progress.h" #include "libs/lib.h" #include <gtk/gtk.h> @@ -158,12 +159,6 @@ dt_imgid_t mouse_over_id; gboolean lock_cursor_shape; - // TODO: move these to some darkroom struct - // synchronized navigation - float dev_zoom_x, dev_zoom_y, dev_zoom_scale; - dt_dev_zoom_t dev_zoom; - int dev_closeup; - // message log int log_pos, log_ack; char log_message[DT_CTL_LOG_SIZE][DT_CTL_LOG_MSG_SIZE]; @@ -183,7 +178,7 @@ double last_expose_time; // job management - int32_t running; + gboolean running; gboolean export_scheduled; dt_pthread_mutex_t queue_mutex, cond_mutex, run_mutex; pthread_cond_t cond; @@ -250,27 +245,12 @@ void dt_control_quit(); /** get threadsafe running state. */ -int dt_control_running(); +gboolean dt_control_running(); // thread-safe interface between core and gui. // is the locking really needed? dt_imgid_t dt_control_get_mouse_over_id(); -void dt_control_set_mouse_over_id(dt_imgid_t value); - -float dt_control_get_dev_zoom_x(); -void dt_control_set_dev_zoom_x(float value); - -float dt_control_get_dev_zoom_y(); -void dt_control_set_dev_zoom_y(float value); - -float dt_control_get_dev_zoom_scale(); -void dt_control_set_dev_zoom_scale(float value); - -int dt_control_get_dev_closeup(); -void dt_control_set_dev_closeup(int value); - -dt_dev_zoom_t dt_control_get_dev_zoom(); -void dt_control_set_dev_zoom(dt_dev_zoom_t value); +void dt_control_set_mouse_over_id(const dt_imgid_t value); #ifdef __cplusplus } // extern "C" diff -Nru darktable-4.4.2/src/control/crawler.c darktable-4.6.1/src/control/crawler.c --- darktable-4.4.2/src/control/crawler.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/control/crawler.c 2024-02-16 17:31:09.000000000 +0000 @@ -52,7 +52,7 @@ typedef struct dt_control_crawler_result_t { - int id; + dt_imgid_t id; time_t timestamp_xmp; time_t timestamp_db; char *image_path, *xmp_path; @@ -127,8 +127,8 @@ while(sqlite3_step(stmt) == SQLITE_ROW) { - const int id = sqlite3_column_int(stmt, 0); - const time_t timestamp = sqlite3_column_int(stmt, 1); + const dt_imgid_t id = sqlite3_column_int(stmt, 0); + const time_t timestamp = sqlite3_column_int64(stmt, 1); const int version = sqlite3_column_int(stmt, 2); const gchar *image_path = (char *)sqlite3_column_text(stmt, 3); int flags = sqlite3_column_int(stmt, 4); @@ -355,7 +355,7 @@ " SET write_timestamp = ?2" " WHERE id = ?1", -1, &stmt, NULL); DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, id); - DT_DEBUG_SQLITE3_BIND_INT(stmt, 2, timestamp); + DT_DEBUG_SQLITE3_BIND_INT64(stmt, 2, timestamp); sqlite3_step(stmt); sqlite3_finalize(stmt); } @@ -387,14 +387,7 @@ gchar *pattern, gchar *filepath) { - gchar *message = pattern; - gboolean to_free = FALSE; - - if(filepath) - { - message = g_strdup_printf(pattern, filepath); - to_free = TRUE; - } + gchar *message = g_markup_printf_escaped(pattern, filepath ? filepath : ""); // add a new line in the log TreeView GtkTreeIter iter_log; @@ -404,7 +397,7 @@ 0, message, -1); - if(to_free) g_free(message); + g_free(message); } @@ -834,7 +827,7 @@ gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW(gui->log), -1, _("synchronization log"), renderer_text, - "text", 0, NULL); + "markup", 0, NULL); GtkListStore *store_log = gtk_list_store_new (1, G_TYPE_STRING); GtkTreeModel *model_log = GTK_TREE_MODEL(store_log); @@ -847,6 +840,188 @@ G_CALLBACK(dt_control_crawler_response_callback), gui); } +/* backthumb crawler */ + +/* + we use these checks while + a) creating mipmaps and + b) checking the database + to make sure + a) resources are made available again as soon as possible and + b) we can quit darktable almost immediately if application quits +*/ +static inline gboolean _lighttable_silent(void) +{ + return dt_view_get_current() == DT_VIEW_LIGHTTABLE + && dt_get_wtime() > darktable.backthumbs.time; +} + +static inline gboolean _still_thumbing(void) +{ + return darktable.backthumbs.running + && _lighttable_silent() + && darktable.backthumbs.mipsize != DT_MIPMAP_NONE; +} + +static void _update_img_thumbs(const dt_imgid_t imgid, + const dt_mipmap_size_t max_mip, + const int64_t stamp) +{ + for(dt_mipmap_size_t k = max_mip; + k >= DT_MIPMAP_1 && _still_thumbing(); + k--) + { + dt_mipmap_buffer_t buf; + dt_mipmap_cache_get(darktable.mipmap_cache, &buf, imgid, k, DT_MIPMAP_BLOCKING, 'r'); + dt_mipmap_cache_release(darktable.mipmap_cache, &buf); + } + if(!_still_thumbing()) + return; + + // we have written all thumbs now so it's safe to write timestamp and mipsize + sqlite3_stmt *stmt; + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + "UPDATE main.images" + " SET thumb_maxmip = ?2, thumb_timestamp = ?3" + " WHERE id = ?1", + -1, &stmt, NULL); + DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, imgid); + DT_DEBUG_SQLITE3_BIND_INT(stmt, 2, max_mip); + DT_DEBUG_SQLITE3_BIND_INT64(stmt, 3, stamp); + sqlite3_step(stmt); + sqlite3_finalize(stmt); + + dt_mimap_cache_evict(darktable.mipmap_cache, imgid); + + // we have this in darktable-generate-cache but is it really good/necessary? + // dt_history_hash_set_mipmap(imgid); +} + +static int _update_all_thumbs(const dt_mipmap_size_t max_mip) +{ + int missed = 0; + int updated = 0; + sqlite3_stmt *stmt; + + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + "SELECT id, import_timestamp, change_timestamp" + " FROM main.images" + " WHERE thumb_timestamp < import_timestamp" + " OR thumb_timestamp < change_timestamp" + " OR thumb_maxmip < ?1", + -1, &stmt, NULL); + DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, max_mip); + while(sqlite3_step(stmt) == SQLITE_ROW && _still_thumbing()) + { + const dt_imgid_t imgid = sqlite3_column_int(stmt, 0); + const int64_t stamp = MAX(sqlite3_column_int64(stmt, 1), sqlite3_column_int64(stmt, 2)); + + char path[PATH_MAX] = { 0 }; + gboolean from_cache = FALSE; + dt_image_full_path(imgid, path, sizeof(path), &from_cache); + const gboolean available = dt_util_test_image_file(path); + + if(available) + { + _update_img_thumbs(imgid, max_mip, stamp); + updated++; + } + else + { + missed++; + dt_print(DT_DEBUG_CACHE, "[thumb crawler] '%s' id=%d NOT available\n", path, imgid); + } + } + sqlite3_finalize(stmt); + + dt_print(DT_DEBUG_CACHE, + "[thumb crawler] max_mip=%d, %d thumbs updated, %d not found, %s.\n", + max_mip, updated, missed, + _still_thumbing() ? "all done" : "interrupted by user activity"); + + return updated; +} + +static void _reinitialize_thumbs_database(void) +{ + dt_conf_set_bool("backthumbs_initialize", FALSE); + + dt_print(DT_DEBUG_CACHE, "[thumb crawler] initialize database\n"); + + sqlite3_stmt *stmt; + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + "UPDATE main.images" + " SET thumb_maxmip = 0, thumb_timestamp = -1", + -1, &stmt, NULL); + sqlite3_step(stmt); + sqlite3_finalize(stmt); + darktable.backthumbs.service = FALSE; +} + +/* public */ +void dt_set_backthumb_time(const double next) +{ + dt_backthumb_t *bt = &darktable.backthumbs; + if(next > 0.5) + bt->time = dt_get_wtime() + next; + else + bt->time = fmax(bt->time, dt_get_wtime() + bt->idle); +} + +void dt_update_thumbs_thread(void *p) +{ + dt_pthread_setname("thumbs_update"); + dt_print(DT_DEBUG_CACHE, "[thumb crawler] started\n"); + dt_backthumb_t *bt = &darktable.backthumbs; + + bt->idle = (double)dt_conf_get_float("backthumbs_inactivity"); + const gboolean dwriting = dt_conf_get_bool("cache_disk_backend"); + const char *mipsize = dt_conf_get_string_const("backthumbs_mipsize"); + bt->mipsize = dt_mipmap_cache_get_min_mip_from_pref(mipsize); + bt->service = FALSE; + if(!dwriting || bt->mipsize == DT_MIPMAP_NONE) + { + bt->running = FALSE; + dt_print(DT_DEBUG_CACHE, "[thumb crawler] closing due to preferences setting\n"); + return; + } + bt->running = TRUE; + + dt_set_backthumb_time(5.0); + int updated = 0; + + // return if any thumbcache dir is not writable + for(dt_mipmap_size_t k = DT_MIPMAP_1; k <= DT_MIPMAP_7; k++) + { + char dirname[PATH_MAX] = { 0 }; + snprintf(dirname, sizeof(dirname), "%s.d/%d", darktable.mipmap_cache->cachedir, k); + if(g_mkdir_with_parents(dirname, 0750)) + { + dt_print(DT_DEBUG_CACHE, "[thumb crawler] can't create mipmap dir '%s'\n", dirname); + return; + } + } + + while(bt->running) + { + for(int i = 0; i < 12 && bt->running && !bt->service; i++) + g_usleep(250000); + + if(!bt->running) + break; + + if(bt->service) + _reinitialize_thumbs_database(); + + if(_lighttable_silent() && bt->mipsize != DT_MIPMAP_NONE) + updated += _update_all_thumbs(bt->mipsize); + + if(bt->mipsize == DT_MIPMAP_NONE) + bt->running = FALSE; + } + dt_print(DT_DEBUG_CACHE, "[thumb crawler] closing, %d mipmaps updated\n", updated); +} + // clang-format off // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py // vim: shiftwidth=2 expandtab tabstop=2 cindent diff -Nru darktable-4.4.2/src/control/crawler.h darktable-4.6.1/src/control/crawler.h --- darktable-4.4.2/src/control/crawler.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/control/crawler.h 2024-02-16 17:31:09.000000000 +0000 @@ -36,6 +36,9 @@ // show a popup with the images, let the user decide what to do and free the list afterwards void dt_control_crawler_show_image_list(GList *images); +// background thread updating all thumbnails is there is no user activity while being in lightroom +void dt_update_thumbs_thread(void *ptr); +void dt_set_backthumb_time(const double offset); // clang-format off // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py // vim: shiftwidth=2 expandtab tabstop=2 cindent diff -Nru darktable-4.4.2/src/control/jobs/camera_jobs.c darktable-4.6.1/src/control/jobs/camera_jobs.c --- darktable-4.4.2/src/control/jobs/camera_jobs.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/control/jobs/camera_jobs.c 2024-02-16 17:31:09.000000000 +0000 @@ -221,12 +221,16 @@ } /** Listener interface for import job */ -void _camera_import_image_downloaded(const dt_camera_t *camera, const char *in_path, - const char *in_filename, const char *filename, void *data) +void _camera_import_image_downloaded(const dt_camera_t *camera, + const char *in_path, + const char *in_filename, + const char *filename, + void *data) { // Import downloaded image to import filmroll dt_camera_import_t *t = (dt_camera_import_t *)data; - const dt_imgid_t imgid = dt_image_import(dt_import_session_film_id(t->shared.session), filename, FALSE, TRUE); + const dt_imgid_t imgid = + dt_image_import(dt_import_session_film_id(t->shared.session), filename, FALSE, TRUE); const time_t timestamp = (!in_path || !in_filename) ? 0 : dt_camctl_get_image_file_timestamp(darktable.camctl, in_path, in_filename); @@ -242,7 +246,8 @@ dt_control_queue_redraw_center(); gchar *basename = g_path_get_basename(filename); const int num_images = g_list_length(t->images); - dt_control_log(ngettext("%d/%d imported to %s", "%d/%d imported to %s", t->import_count + 1), + dt_control_log(ngettext("%d/%d imported to %s", "%d/%d imported to %s", + t->import_count + 1), t->import_count + 1, num_images, basename); g_free(basename); @@ -252,7 +257,8 @@ if((imgid & 3) == 3) { - dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_UNDEF, NULL); + dt_collection_update_query(darktable.collection, + DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_UNDEF, NULL); } if(t->import_count + 1 == num_images) @@ -267,8 +273,10 @@ t->import_count++; } -static const char *_camera_request_image_filename(const dt_camera_t *camera, const char *filename, - const dt_image_basic_exif_t *basic_exif, void *data) +static const char *_camera_request_image_filename(const dt_camera_t *camera, + const char *filename, + const dt_image_basic_exif_t *basic_exif, + void *data) { const gchar *file; struct dt_camera_shared_t *shared; @@ -299,14 +307,15 @@ if(!dt_import_session_ready(params->shared.session)) { - dt_control_log("Failed to import images from camera."); + dt_control_log(_("failed to import images from camera.")); return 1; } guint total = g_list_length(params->images); char message[512] = { 0 }; snprintf(message, sizeof(message), - ngettext("importing %d image from camera", "importing %d images from camera", total), total); + ngettext("importing %d image from camera", + "importing %d images from camera", total), total); dt_control_job_set_progress_message(job, message); // Switch to new filmroll diff -Nru darktable-4.4.2/src/control/jobs/control_jobs.c darktable-4.6.1/src/control/jobs/control_jobs.c --- darktable-4.4.2/src/control/jobs/control_jobs.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/control/jobs/control_jobs.c 2024-02-16 17:31:09.000000000 +0000 @@ -1439,14 +1439,6 @@ // update the message. initialize_store() might have changed the number of images dt_control_job_set_progress_message(job, message); - // remove 'changed' tag from image - if(dt_tag_detach(tagid, imgid, FALSE, FALSE)) tag_change = TRUE; - // make sure the 'exported' tag is set on the image - if(dt_tag_attach(etagid, imgid, FALSE, FALSE)) tag_change = TRUE; - - /* register export timestamp in cache */ - dt_image_cache_set_export_timestamp(darktable.image_cache, imgid); - // check if image still exists: const dt_image_t *image = dt_image_cache_get(darktable.image_cache, (int32_t)imgid, 'r'); if(image) @@ -1468,6 +1460,17 @@ settings->export_masks, settings->icc_type, settings->icc_filename, settings->icc_intent, &metadata) != 0) dt_control_job_cancel(job); + else + { + // remove 'changed' tag from image + if(dt_tag_detach(tagid, imgid, FALSE, FALSE)) tag_change = TRUE; + + // make sure the 'exported' tag is set on the image + if(dt_tag_attach(etagid, imgid, FALSE, FALSE)) tag_change = TRUE; + + /* register export timestamp in cache */ + dt_image_cache_set_export_timestamp(darktable.image_cache, imgid); + } } } @@ -2238,7 +2241,8 @@ static int32_t _control_import_job_run(dt_job_t *job) { - dt_control_image_enumerator_t *params = (dt_control_image_enumerator_t *)dt_control_job_get_params(job); + dt_control_image_enumerator_t *params = + (dt_control_image_enumerator_t *)dt_control_job_get_params(job); dt_control_import_t *data = params->data; uint32_t cntr = 0; char message[512] = { 0 }; @@ -2253,7 +2257,8 @@ GList *t = params->index; const guint total = g_list_length(t); - snprintf(message, sizeof(message), ngettext("importing %d image", "importing %d images", total), total); + snprintf(message, sizeof(message), ngettext("importing %d image", + "importing %d images", total), total); dt_control_job_set_progress_message(job, message); GList *imgs = NULL; @@ -2269,13 +2274,27 @@ { if(data->session) { - filmid = _control_import_image_copy((char *)img->data, &prev_filename, &prev_output, data->session, &imgs); + filmid = _control_import_image_copy((char *)img->data, + &prev_filename, &prev_output, + data->session, &imgs); if(filmid != -1 && first_filmid == -1) { + dt_collection_properties_t property = + dt_conf_get_int("plugins/lighttable/collect/item0"); + + if(property != DT_COLLECTION_PROP_FOLDERS + && property != DT_COLLECTION_PROP_FILMROLL) + { + // the current collection is not based on filmrolls or folders + // fallback to DT_COLLECTION_PROP_FILMROLL. Otherwise we keep + // the current property of the collection. + property = DT_COLLECTION_PROP_FILMROLL; + } + first_filmid = filmid; const char *output_path = dt_import_session_path(data->session, FALSE); dt_conf_set_int("plugins/lighttable/collect/num_rules", 1); - dt_conf_set_int("plugins/lighttable/collect/item0", 0); + dt_conf_set_int("plugins/lighttable/collect/item0", property); dt_conf_set_string("plugins/lighttable/collect/string0", output_path); _collection_update(&last_coll_update, &update_interval); } @@ -2289,11 +2308,15 @@ if(currtime - last_prog_update > PROGRESS_UPDATE_INTERVAL) { last_prog_update = currtime; - snprintf(message, sizeof(message), ngettext("importing %d/%d image", "importing %d/%d images", cntr), cntr, total); + snprintf(message, sizeof(message), + ngettext("importing %d/%d image", + "importing %d/%d images", cntr), cntr, total); dt_control_job_set_progress_message(job, message); dt_control_job_set_progress(job, fraction); g_usleep(100); } + if(dt_control_job_get_state(job) == DT_JOB_STATE_CANCELLED) + break; } g_free(prev_output); @@ -2344,7 +2367,7 @@ dt_control_job_dispose(job); return NULL; } - dt_control_job_add_progress(job, _("import"), FALSE); + dt_control_job_add_progress(job, _("import"), TRUE); dt_control_job_set_params(job, params, _control_import_job_cleanup); params->index = g_list_sort(imgs, (GCompareFunc)_sort_filename); diff -Nru darktable-4.4.2/src/control/jobs/develop_jobs.c darktable-4.6.1/src/control/jobs/develop_jobs.c --- darktable-4.4.2/src/control/jobs/develop_jobs.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/control/jobs/develop_jobs.c 2024-02-16 17:31:09.000000000 +0000 @@ -22,14 +22,24 @@ static int32_t dt_dev_process_preview_job_run(dt_job_t *job) { dt_develop_t *dev = dt_control_job_get_params(job); - dt_dev_process_preview_job(dev); + dt_dev_process_image_job(dev, NULL, dev->preview_pipe, + DT_SIGNAL_DEVELOP_PREVIEW_PIPE_FINISHED); return 0; } static int32_t dt_dev_process_preview2_job_run(dt_job_t *job) { dt_develop_t *dev = dt_control_job_get_params(job); - dt_dev_process_preview2_job(dev); + dt_dev_process_image_job(dev, &dev->preview2, dev->preview2.pipe, + DT_SIGNAL_DEVELOP_PREVIEW2_PIPE_FINISHED); + return 0; +} + +static int32_t dt_dev_process_image_job_run(dt_job_t *job) +{ + dt_develop_t *dev = dt_control_job_get_params(job); + dt_dev_process_image_job(dev, &dev->full, dev->full.pipe, + DT_SIGNAL_DEVELOP_UI_PIPE_FINISHED); return 0; } @@ -43,19 +53,12 @@ dt_job_t *dt_dev_process_preview2_job_create(dt_develop_t *dev) { - dt_job_t *job = dt_control_job_create(&dt_dev_process_preview2_job_run, "develop process preview"); + dt_job_t *job = dt_control_job_create(&dt_dev_process_preview2_job_run, "develop process preview 2"); if(!job) return NULL; dt_control_job_set_params(job, dev, NULL); return job; } -static int32_t dt_dev_process_image_job_run(dt_job_t *job) -{ - dt_develop_t *dev = dt_control_job_get_params(job); - dt_dev_process_image_job(dev); - return 0; -} - dt_job_t *dt_dev_process_image_job_create(dt_develop_t *dev) { dt_job_t *job = dt_control_job_create(&dt_dev_process_image_job_run, "develop process image"); diff -Nru darktable-4.4.2/src/control/jobs.c darktable-4.6.1/src/control/jobs.c --- darktable-4.4.2/src/control/jobs.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/control/jobs.c 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2009-2020 darktable developers. + Copyright (C) 2009-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -60,17 +60,23 @@ processing. NOTE: maybe allow to pass a comparator for params. */ -static inline int dt_control_job_equal(_dt_job_t *j1, _dt_job_t *j2) +static inline gboolean _control_job_equal(_dt_job_t *j1, _dt_job_t *j2) { - if(!j1 || !j2) return 0; - if(j1->params_size != 0 && j1->params_size == j2->params_size) - return (j1->execute == j2->execute && j1->state_changed_cb == j2->state_changed_cb - && j1->queue == j2->queue && (memcmp(j1->params, j2->params, j1->params_size) == 0)); - return (j1->execute == j2->execute && j1->state_changed_cb == j2->state_changed_cb && j1->queue == j2->queue + if(!j1 || !j2) return FALSE; + if(j1->params_size != 0 + && j1->params_size == j2->params_size) + return (j1->execute == j2->execute + && j1->state_changed_cb == j2->state_changed_cb + && j1->queue == j2->queue + && (memcmp(j1->params, j2->params, j1->params_size) == 0)); + return (j1->execute == j2->execute + && j1->state_changed_cb == j2->state_changed_cb + && j1->queue == j2->queue && (g_strcmp0(j1->description, j2->description) == 0)); } -static void dt_control_job_set_state(_dt_job_t *job, dt_job_state_t state) +static void _control_job_set_state(_dt_job_t *job, + dt_job_state_t state) { if(!job) return; dt_pthread_mutex_lock(&job->state_mutex); @@ -96,16 +102,20 @@ void dt_control_job_set_params(_dt_job_t *job, void *params, dt_job_destroy_callback callback) { - if(!job || dt_control_job_get_state(job) != DT_JOB_STATE_INITIALIZED) return; + if(!job || dt_control_job_get_state(job) != DT_JOB_STATE_INITIALIZED) + return; job->params = params; job->params_size = 0; job->params_destroy = callback; } -void dt_control_job_set_params_with_size(dt_job_t *job, void *params, size_t params_size, - dt_job_destroy_callback callback) +void dt_control_job_set_params_with_size(dt_job_t *job, + void *params, + size_t params_size, + dt_job_destroy_callback callback) { - if(!job || dt_control_job_get_state(job) != DT_JOB_STATE_INITIALIZED) return; + if(!job || dt_control_job_get_state(job) != DT_JOB_STATE_INITIALIZED) + return; job->params = params; job->params_size = params_size; job->params_destroy = callback; @@ -117,7 +127,8 @@ return job->params; } -dt_job_t *dt_control_job_create(dt_job_execute_callback execute, const char *msg, ...) +dt_job_t *dt_control_job_create(dt_job_execute_callback execute, + const char *msg, ...) { _dt_job_t *job = (_dt_job_t *)calloc(1, sizeof(_dt_job_t)); if(!job) return NULL; @@ -138,10 +149,12 @@ void dt_control_job_dispose(_dt_job_t *job) { if(!job) return; - if(job->progress) dt_control_progress_destroy(darktable.control, job->progress); + if(job->progress) + dt_control_progress_destroy(darktable.control, job->progress); job->progress = NULL; - dt_control_job_set_state(job, DT_JOB_STATE_DISPOSED); - if(job->params_destroy) job->params_destroy(job->params); + _control_job_set_state(job, DT_JOB_STATE_DISPOSED); + if(job->params_destroy) + job->params_destroy(job->params); dt_pthread_mutex_destroy(&job->state_mutex); dt_pthread_mutex_destroy(&job->wait_mutex); free(job); @@ -164,7 +177,7 @@ void dt_control_job_cancel(_dt_job_t *job) { - dt_control_job_set_state(job, DT_JOB_STATE_CANCELLED); + _control_job_set_state(job, DT_JOB_STATE_CANCELLED); } void dt_control_job_wait(_dt_job_t *job) @@ -186,9 +199,10 @@ } } -static int32_t dt_control_run_job_res(dt_control_t *control, int32_t res) +static gboolean _control_run_job_res(dt_control_t *control, int32_t res) { - if(((unsigned int)res) >= DT_CTL_WORKER_RESERVED) return -1; + if(((unsigned int)res) >= DT_CTL_WORKER_RESERVED) + return TRUE; _dt_job_t *job = NULL; dt_pthread_mutex_lock(&control->res_mutex); @@ -199,7 +213,7 @@ } control->new_res[res] = 0; dt_pthread_mutex_unlock(&control->res_mutex); - if(!job) return -1; + if(!job) return TRUE; /* change state to running */ dt_pthread_mutex_lock(&job->wait_mutex); @@ -209,22 +223,22 @@ dt_control_job_print(job); dt_print(DT_DEBUG_CONTROL, "\n"); - dt_control_job_set_state(job, DT_JOB_STATE_RUNNING); + _control_job_set_state(job, DT_JOB_STATE_RUNNING); /* execute job */ job->result = job->execute(job); - dt_control_job_set_state(job, DT_JOB_STATE_FINISHED); + _control_job_set_state(job, DT_JOB_STATE_FINISHED); dt_print(DT_DEBUG_CONTROL, "[run_job-] %02d %f ", res, dt_get_wtime()); dt_control_job_print(job); dt_print(DT_DEBUG_CONTROL, "\n"); } dt_pthread_mutex_unlock(&job->wait_mutex); dt_control_job_dispose(job); - return 0; + return FALSE; } -static _dt_job_t *dt_control_schedule_job(dt_control_t *control) +static _dt_job_t *_control_schedule_job(dt_control_t *control) { /* * job scheduling works like this: @@ -287,36 +301,36 @@ return job; } -static void dt_control_job_execute(_dt_job_t *job) +static void _control_job_execute(_dt_job_t *job) { dt_print(DT_DEBUG_CONTROL, "[run_job+] %02d %f ", DT_CTL_WORKER_RESERVED + dt_control_get_threadid(), dt_get_wtime()); dt_control_job_print(job); - dt_print(DT_DEBUG_CONTROL, "\n"); + dt_print_nts(DT_DEBUG_CONTROL, "\n"); - dt_control_job_set_state(job, DT_JOB_STATE_RUNNING); + _control_job_set_state(job, DT_JOB_STATE_RUNNING); /* execute job */ job->result = job->execute(job); - dt_control_job_set_state(job, DT_JOB_STATE_FINISHED); + _control_job_set_state(job, DT_JOB_STATE_FINISHED); dt_print(DT_DEBUG_CONTROL, "[run_job-] %02d %f ", DT_CTL_WORKER_RESERVED + dt_control_get_threadid(), dt_get_wtime()); dt_control_job_print(job); - dt_print(DT_DEBUG_CONTROL, "\n"); + dt_print_nts(DT_DEBUG_CONTROL, "\n"); } -static int32_t dt_control_run_job(dt_control_t *control) +static gboolean _control_run_job(dt_control_t *control) { - _dt_job_t *job = dt_control_schedule_job(control); + _dt_job_t *job = _control_schedule_job(control); - if(!job) return -1; + if(!job) return TRUE; /* change state to running */ dt_pthread_mutex_lock(&job->wait_mutex); if(dt_control_job_get_state(job) == DT_JOB_STATE_QUEUED) - dt_control_job_execute(job); + _control_job_execute(job); dt_pthread_mutex_unlock(&job->wait_mutex); @@ -329,15 +343,17 @@ // and free it dt_control_job_dispose(job); - return 0; + return FALSE; } -int32_t dt_control_add_job_res(dt_control_t *control, _dt_job_t *job, int32_t res) +gboolean dt_control_add_job_res(dt_control_t *control, + _dt_job_t *job, + int32_t res) { if(((unsigned int)res) >= DT_CTL_WORKER_RESERVED || !job) { dt_control_job_dispose(job); - return 1; + return TRUE; } // TODO: pthread cancel and restart in tough cases? @@ -346,15 +362,15 @@ // if there is a job in the queue we have to discard that first if(control->job_res[res]) { - dt_control_job_set_state(control->job_res[res], DT_JOB_STATE_DISCARDED); + _control_job_set_state(control->job_res[res], DT_JOB_STATE_DISCARDED); dt_control_job_dispose(control->job_res[res]); } dt_print(DT_DEBUG_CONTROL, "[add_job_res] %d | ", res); dt_control_job_print(job); - dt_print(DT_DEBUG_CONTROL, "\n"); + dt_print_nts(DT_DEBUG_CONTROL, "\n"); - dt_control_job_set_state(job, DT_JOB_STATE_QUEUED); + _control_job_set_state(job, DT_JOB_STATE_QUEUED); control->job_res[res] = job; control->new_res[res] = 1; @@ -364,26 +380,28 @@ pthread_cond_broadcast(&control->cond); dt_pthread_mutex_unlock(&control->cond_mutex); - return 0; + return FALSE; } -int dt_control_add_job(dt_control_t *control, dt_job_queue_t queue_id, _dt_job_t *job) +gboolean dt_control_add_job(dt_control_t *control, + dt_job_queue_t queue_id, + _dt_job_t *job) { if(((unsigned int)queue_id) >= DT_JOB_QUEUE_MAX || !job) { dt_control_job_dispose(job); - return 1; + return TRUE; } if(!control->running) { // whatever we are adding here won't be scheduled as the system isn't running. execute it synchronous instead. dt_pthread_mutex_lock(&job->wait_mutex); // is that even needed? - dt_control_job_execute(job); + _control_job_execute(job); dt_pthread_mutex_unlock(&job->wait_mutex); dt_control_job_dispose(job); - return 0; + return FALSE; } job->queue = queue_id; @@ -397,7 +415,7 @@ dt_print(DT_DEBUG_CONTROL, "[add_job] %zu | ", length); dt_control_job_print(job); - dt_print(DT_DEBUG_CONTROL, "\n"); + dt_print_nts(DT_DEBUG_CONTROL, "\n"); if(queue_id == DT_JOB_QUEUE_SYSTEM_FG) { @@ -408,15 +426,15 @@ for(int k = 0; k < control->num_threads; k++) { _dt_job_t *other_job = (_dt_job_t *)control->job[k]; - if(dt_control_job_equal(job, other_job)) + if(_control_job_equal(job, other_job)) { dt_print(DT_DEBUG_CONTROL, "[add_job] found job already in scheduled: "); dt_control_job_print(other_job); - dt_print(DT_DEBUG_CONTROL, "\n"); + dt_print_nts(DT_DEBUG_CONTROL, "\n"); dt_pthread_mutex_unlock(&control->queue_mutex); - dt_control_job_set_state(job, DT_JOB_STATE_DISCARDED); + _control_job_set_state(job, DT_JOB_STATE_DISCARDED); dt_control_job_dispose(job); return 0; // there can't be any further copy @@ -427,11 +445,11 @@ for(GList *iter = *queue; iter; iter = g_list_next(iter)) { _dt_job_t *other_job = (_dt_job_t *)iter->data; - if(dt_control_job_equal(job, other_job)) + if(_control_job_equal(job, other_job)) { dt_print(DT_DEBUG_CONTROL, "[add_job] found job already in queue: "); dt_control_job_print(other_job); - dt_print(DT_DEBUG_CONTROL, "\n"); + dt_print_nts(DT_DEBUG_CONTROL, "\n"); *queue = g_list_delete_link(*queue, iter); length--; @@ -451,7 +469,7 @@ if(length > DT_CONTROL_MAX_JOBS) { GList *last = g_list_last(*queue); - dt_control_job_set_state((_dt_job_t *)last->data, DT_JOB_STATE_DISCARDED); + _control_job_set_state((_dt_job_t *)last->data, DT_JOB_STATE_DISCARDED); dt_control_job_dispose((_dt_job_t *)last->data); *queue = g_list_delete_link(*queue, last); length--; @@ -471,7 +489,7 @@ *queue = g_list_append(*queue, job); control->queue_length[queue_id]++; } - dt_control_job_set_state(job, DT_JOB_STATE_QUEUED); + _control_job_set_state(job, DT_JOB_STATE_QUEUED); dt_pthread_mutex_unlock(&control->queue_mutex); // notify workers @@ -480,10 +498,10 @@ dt_pthread_mutex_unlock(&control->cond_mutex); // dispose of dropped job, if any - dt_control_job_set_state(job_for_disposal, DT_JOB_STATE_DISCARDED); + _control_job_set_state(job_for_disposal, DT_JOB_STATE_DISCARDED); dt_control_job_dispose(job_for_disposal); - return 0; + return FALSE; } static __thread int threadid = -1; @@ -494,13 +512,13 @@ return darktable.control->num_threads; } -static int32_t dt_control_get_threadid_res() +static inline int32_t _control_get_threadid_res() { if(threadid > -1) return threadid; return DT_CTL_WORKER_RESERVED; } -static void *dt_control_work_res(void *ptr) +static void *_control_work_res(void *ptr) { #ifdef _OPENMP // need to do this in every thread omp_set_num_threads(dt_get_num_threads()); @@ -512,11 +530,11 @@ snprintf(name, sizeof(name), "worker res %d", threadid); dt_pthread_setname(name); free(params); - int32_t threadid_res = dt_control_get_threadid_res(); + int32_t threadid_res = _control_get_threadid_res(); while(dt_control_running()) { // dt_print(DT_DEBUG_CONTROL, "[control_work] %d\n", threadid_res); - if(dt_control_run_job_res(s, threadid_res) < 0) + if(_control_run_job_res(s, threadid_res)) { // wait for a new job. int old; @@ -531,7 +549,7 @@ return NULL; } -static void *dt_control_worker_kicker(void *ptr) +static void *_control_worker_kicker(void *ptr) { dt_control_t *control = (dt_control_t *)ptr; dt_pthread_setname("kicker"); @@ -545,7 +563,7 @@ return NULL; } -static void *dt_control_work(void *ptr) +static void *_control_work(void *ptr) { #ifdef _OPENMP // need to do this in every thread omp_set_num_threads(dt_get_num_threads()); @@ -561,7 +579,7 @@ while(dt_control_running()) { // dt_print(DT_DEBUG_CONTROL, "[control_work] %d\n", threadid); - if(dt_control_run_job(control) < 0) + if(_control_run_job(control)) { // wait for a new job. dt_pthread_mutex_lock(&control->cond_mutex); @@ -609,7 +627,7 @@ control->thread = (pthread_t *)calloc(control->num_threads, sizeof(pthread_t)); control->job = (dt_job_t **)calloc(control->num_threads, sizeof(dt_job_t *)); dt_pthread_mutex_lock(&control->run_mutex); - control->running = 1; + control->running = TRUE; dt_pthread_mutex_unlock(&control->run_mutex); for(int k = 0; k < control->num_threads; k++) { @@ -617,11 +635,11 @@ = (worker_thread_parameters_t *)calloc(1, sizeof(worker_thread_parameters_t)); params->self = control; params->threadid = k; - dt_pthread_create(&control->thread[k], dt_control_work, params); + dt_pthread_create(&control->thread[k], _control_work, params); } /* create queue kicker thread */ - dt_pthread_create(&control->kick_on_workers_thread, dt_control_worker_kicker, control); + dt_pthread_create(&control->kick_on_workers_thread, _control_worker_kicker, control); for(int k = 0; k < DT_CTL_WORKER_RESERVED; k++) { @@ -631,7 +649,7 @@ = (worker_thread_parameters_t *)calloc(1, sizeof(worker_thread_parameters_t)); params->self = control; params->threadid = k; - dt_pthread_create(&control->thread_res[k], dt_control_work_res, params); + dt_pthread_create(&control->thread_res[k], _control_work_res, params); } /* create thread taking care of connecting gphoto2 devices */ #ifdef HAVE_GPHOTO2 diff -Nru darktable-4.4.2/src/control/jobs.h darktable-4.6.1/src/control/jobs.h --- darktable-4.4.2/src/control/jobs.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/control/jobs.h 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2009-2020 darktable developers. + Copyright (C) 2009-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -85,8 +85,8 @@ void dt_control_jobs_init(struct dt_control_t *control); void dt_control_jobs_cleanup(struct dt_control_t *control); -int dt_control_add_job(struct dt_control_t *control, dt_job_queue_t queue_id, dt_job_t *job); -int32_t dt_control_add_job_res(struct dt_control_t *s, dt_job_t *job, int32_t res); +gboolean dt_control_add_job(struct dt_control_t *control, dt_job_queue_t queue_id, dt_job_t *job); +gboolean dt_control_add_job_res(struct dt_control_t *s, dt_job_t *job, int32_t res); int32_t dt_control_get_threadid(); diff -Nru darktable-4.4.2/src/control/settings.h darktable-4.6.1/src/control/settings.h --- darktable-4.4.2/src/control/settings.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/control/settings.h 2024-02-16 17:31:09.000000000 +0000 @@ -29,7 +29,12 @@ DT_ZOOM_FIT = 0, DT_ZOOM_FILL = 1, DT_ZOOM_1 = 2, - DT_ZOOM_FREE = 3 + DT_ZOOM_FREE = 3, + DT_ZOOM_POSITION = 4, + DT_ZOOM_MOVE = 5, + DT_ZOOM_SCROLL = 6, + DT_ZOOM_FULL_PREVIEW = 7, + DT_ZOOM_RESTORE = 8, } dt_dev_zoom_t; typedef char dt_dev_operation_t[20]; diff -Nru darktable-4.4.2/src/control/signal.c darktable-4.6.1/src/control/signal.c --- darktable-4.4.2/src/control/signal.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/control/signal.c 2024-02-16 17:31:09.000000000 +0000 @@ -161,6 +161,11 @@ FALSE }, // DT_SIGNAL_DEVELOP_MODULE_MOVED { "dt-develop-image-changed", NULL, NULL, G_TYPE_NONE, g_cclosure_marshal_VOID__VOID, 0, NULL, NULL, FALSE }, // DT_SIGNAL_DEVELOP_IMAGE_CHANGE + { "dt-develop-distort", NULL, NULL, G_TYPE_NONE, g_cclosure_marshal_VOID__VOID, 0, NULL, NULL, + FALSE }, // DT_SIGNAL_DEVELOP_DISTORT + + { "dt-image-removed", NULL, NULL, G_TYPE_NONE, g_cclosure_marshal_VOID__UINT, 1, uint_arg, NULL, + FALSE }, // DT_SIGNAL_IMAGE_REMOVED { "dt-control-profile-changed", NULL, NULL, G_TYPE_NONE, g_cclosure_marshal_VOID__VOID, 0, NULL, NULL, FALSE }, // DT_SIGNAL_CONTROL_PROFILE_CHANGED { "dt-control-profile-user-changed", NULL, NULL, G_TYPE_NONE, g_cclosure_marshal_VOID__UINT, 1, uint_arg, NULL, diff -Nru darktable-4.4.2/src/control/signal.h darktable-4.6.1/src/control/signal.h --- darktable-4.4.2/src/control/signal.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/control/signal.h 2024-02-16 17:31:09.000000000 +0000 @@ -191,6 +191,14 @@ /** \brief This signal is raised when image is changed in darkroom */ DT_SIGNAL_DEVELOP_IMAGE_CHANGED, + /** \brief This signal is raised when a distort module is used/changed + no param, no returned value + */ + DT_SIGNAL_DEVELOP_DISTORT, + + /** \brief This signal is raised when image is removed from database */ + DT_SIGNAL_IMAGE_REMOVED, + /** \brief This signal is raised when the screen profile has changed no param, no returned value */ diff -Nru darktable-4.4.2/src/develop/blend.c darktable-4.6.1/src/develop/blend.c --- darktable-4.4.2/src/develop/blend.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/blend.c 2024-02-16 17:31:09.000000000 +0000 @@ -53,7 +53,8 @@ 0.0f, 0.0f, 0.0f, // detail mask threshold - { 0, 0, 0 }, + 1, // feather_version + { 0, 0 }, { 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, @@ -276,29 +277,21 @@ float *warp_mask = NULL; dt_dev_pixelpipe_t *p = piece->pipe; - if(p->details.data == NULL) + if(p->scharr.data == NULL) { dt_print_pipe(DT_DEBUG_PIPE, "refine_detail_mask on CPU", piece->pipe, self, roi_in, roi_out, "no mask data available\n"); return; } - const int iwidth = p->details.roi.width; - const int iheight = p->details.roi.height; - const int owidth = roi_out->width; - const int oheight = roi_out->height; + dt_print_pipe(DT_DEBUG_PIPE, "refine_detail_mask on CPU", piece->pipe, self, roi_in, roi_out, "\n"); - const size_t bufsize = (size_t)MAX(iwidth * iheight, owidth * oheight); - - lum = dt_alloc_align_float(bufsize); + lum = dt_masks_calc_detail_mask(piece, threshold, detail); if(!lum) goto error; - if(dt_masks_calc_detail_mask(&p->details, lum, threshold, detail)) - goto error; - // here we have the slightly blurred full detail mask available warp_mask = dt_dev_distort_detail_mask(p, lum, self); dt_free_align(lum); @@ -306,7 +299,7 @@ if(warp_mask == NULL) goto error; - const size_t msize = (size_t)owidth * oheight; + const size_t msize = (size_t)roi_out->width * roi_out->height; #ifdef _OPENMP #pragma omp parallel for simd default(none) \ dt_omp_firstprivate(mask, warp_mask, msize) \ @@ -335,24 +328,27 @@ fabsf(params->contrast) >= 0.01f || fabsf(params->brightness) >= 0.01f; const gboolean mask_feather_before = - params->feathering_guide == DEVELOP_MASK_GUIDE_IN_BEFORE_BLUR + params->feathering_guide == DEVELOP_MASK_GUIDE_IN_BEFORE_BLUR || params->feathering_guide == DEVELOP_MASK_GUIDE_OUT_BEFORE_BLUR; + const gboolean mask_feather_out = - params->feathering_guide == DEVELOP_MASK_GUIDE_OUT_BEFORE_BLUR + params->feathering_guide == DEVELOP_MASK_GUIDE_OUT_BEFORE_BLUR || params->feathering_guide == DEVELOP_MASK_GUIDE_OUT_AFTER_BLUR; - const float opacity = fminf(fmaxf(params->opacity / 100.0f, 0.0f), 1.0f); + + const float opacity = CLIP(params->opacity / 100.0f); memset(operations, 0, sizeof(_develop_mask_post_processing) * 3); size_t index = 0; if(mask_feather) { - if(mask_blur && mask_feather_before) + if(mask_feather_before) { operations[index++] = mask_feather_out ? DEVELOP_MASK_POST_FEATHER_OUT : DEVELOP_MASK_POST_FEATHER_IN; - operations[index++] = DEVELOP_MASK_POST_BLUR; + if(mask_blur) + operations[index++] = DEVELOP_MASK_POST_BLUR; } else { @@ -376,6 +372,33 @@ return index; } +static inline int _get_required_w(const float radius, const float scale) +{ + return MAX(1, (int)(2.0f * radius * scale + 0.5f)); +} + +/* Reminder: stability of the feathering guide filter depends on input data range + and signal but also on the chose weight and eps. +*/ + +static float _get_guide_weight(struct dt_dev_pixelpipe_iop_t *piece) +{ + const uint32_t fmode = piece->module->blend_params->feather_version; + const dt_iop_colorspace_type_t cst = dt_develop_blend_colorspace(piece, IOP_CS_NONE); + if(cst == IOP_CS_RGB) + return (fmode == 0) ? 100.0f : 10.0f; + else + return 1.0f; +} + +static float _get_feathering_eps(struct dt_dev_pixelpipe_iop_t *piece) +{ + const uint32_t fmode = piece->module->blend_params->feather_version; + const dt_iop_colorspace_type_t cst = dt_develop_blend_colorspace(piece, IOP_CS_NONE); + + return (cst == IOP_CS_RGB && fmode) ? 0.5f : 1.0f; +} + static void _develop_blend_process_feather(const float *const guide, float *const mask, const size_t width, @@ -383,11 +406,10 @@ const int ch, const float guide_weight, const float feathering_radius, - const float scale) + const float scale, + const float sqrt_eps) { - const float sqrt_eps = 1.f; - const int w = MAX(1, (int)(2 * feathering_radius * scale + 0.5f)); - + const int w = _get_required_w(feathering_radius, scale); float *const restrict mask_bak = dt_alloc_align_float(width * height); if(mask_bak) @@ -431,11 +453,22 @@ x = (x + brightness) / (1.f + brightness); x = fmaxf(x, -1.f); } - mask[k] = clamp_range_f( - ((x * e / (1.f + (e - 1.f) * fabsf(x))) / 2.f + 0.5f) * opacity, 0.f, 1.f); + mask[k] = CLIP(((x * e / (1.f + (e - 1.f) * fabsf(x))) / 2.f + 0.5f) * opacity); } } +static const char *_develop_blend_colorspace_to_str(const dt_develop_blend_colorspace_t type) +{ + switch(type) + { + case DEVELOP_BLEND_CS_NONE: return "BLEND_CS_NONE"; + case DEVELOP_BLEND_CS_RAW: return "BLEND_CS_RAW"; + case DEVELOP_BLEND_CS_LAB: return "BLEND_CS_LAB"; + case DEVELOP_BLEND_CS_RGB_DISPLAY: return "BLEND_CS_RGB_DISPLAY"; + case DEVELOP_BLEND_CS_RGB_SCENE: return "BLEND_CS_RGB_SCENE"; + default: return "invalid BLEND_CS"; + } +} void dt_develop_blend_process(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, @@ -486,12 +519,19 @@ return; } + const gboolean valid_request = + self->dev->gui_attached + && (self == self->dev->gui_module) + && (piece->pipe == self->dev->full.pipe); + // does user want us to display a specific channel? const dt_dev_pixelpipe_display_mask_t request_mask_display = - (self->dev->gui_attached - && (self == self->dev->gui_module) - && (piece->pipe == self->dev->pipe) - && (mask_mode & DEVELOP_MASK_MASK_CONDITIONAL)) + valid_request && (mask_mode & DEVELOP_MASK_MASK_CONDITIONAL) + ? self->request_mask_display + : DT_DEV_PIXELPIPE_DISPLAY_NONE; + + const dt_dev_pixelpipe_display_mask_t request_raster_display = + valid_request && (mask_mode & DEVELOP_MASK_RASTER) ? self->request_mask_display : DT_DEV_PIXELPIPE_DISPLAY_NONE; @@ -501,10 +541,8 @@ // check if mask should be suppressed temporarily (i.e. just set to global opacity value) const gboolean suppress_mask = self->suppress_mask - && self->dev->gui_attached - && (self == self->dev->gui_module) - && (piece->pipe == self->dev->pipe) - && (mask_mode & DEVELOP_MASK_MASK_CONDITIONAL); + && valid_request + && (mask_mode & ~DEVELOP_MASK_ENABLED); // obtaining the list of mask operations to perform _develop_mask_post_processing post_operations[3]; @@ -580,21 +618,17 @@ else { const gboolean inverted = (d->mask_combine & DEVELOP_COMBINE_MASKS_POS); - dt_print_pipe(DT_DEBUG_PIPE, - "blend with form on CPU", - piece->pipe, self, roi_in, roi_out, "%s %s\n", - dt_iop_colorspace_to_name(cst), - inverted ? "inverted" : ""); - // we blend with a drawn and/or parametric mask + gboolean form_ok = FALSE; // get the drawn mask if there is one dt_masks_form_t *form = dt_masks_get_from_id_ext(piece->pipe->forms, d->mask_id); + // we blend with a drawn and/or parametric mask if(form && (!(self->flags() & IOP_FLAGS_NO_MASKS)) && (d->mask_mode & DEVELOP_MASK_MASK)) { - dt_masks_group_render_roi(self, piece, form, roi_out, mask); + form_ok = dt_masks_group_render_roi(self, piece, form, roi_out, mask); if(inverted) { @@ -616,6 +650,16 @@ const float fill = (d->mask_combine & DEVELOP_COMBINE_INCL) ? 0.0f : 1.0f; dt_iop_image_fill(mask, fill, owidth, oheight, 1); //mask[k] = fill; } + + dt_print_pipe(DT_DEBUG_PIPE, + "blend with form on CPU", + piece->pipe, self, roi_in, roi_out, "%s, %s%s%s%s\n", + dt_iop_colorspace_to_name(cst), + _develop_blend_colorspace_to_str(blend_csp), + inverted ? ", inverted" : "", + rois_equal ? "" : ", roi differ", + form && form_ok ? ", form available and rendered" : ", no form"); + _refine_with_detail_mask(self, piece, mask, roi_in, roi_out, d->details); // get parametric mask (if any) and apply global opacity @@ -646,39 +690,42 @@ break; } + const float guide_weight = _get_guide_weight(piece); + const float sqrt_eps = _get_feathering_eps(piece); // post processing the mask for(size_t index = 0; index < post_operations_size; ++index) { _develop_mask_post_processing operation = post_operations[index]; if(operation == DEVELOP_MASK_POST_FEATHER_IN) { - const float guide_weight = cst == IOP_CS_RGB ? 100.0f : 1.0f; if(rois_equal) _develop_blend_process_feather((float *restrict)ivoid, mask, owidth, oheight, ch, guide_weight, d->feathering_radius, - roi_out->scale / piece->iscale); + roi_out->scale / piece->iscale, + sqrt_eps); else { float *const restrict guide = dt_alloc_align_float(obuffsize * ch); if(guide) { - dt_iop_copy_image_roi(guide, (float *restrict)ivoid, ch, roi_in, roi_out, 0); + dt_iop_copy_image_roi(guide, (float *restrict)ivoid, ch, roi_in, roi_out); _develop_blend_process_feather(guide, mask, owidth, oheight, ch, guide_weight, d->feathering_radius, - roi_out->scale / piece->iscale); + roi_out->scale / piece->iscale, + sqrt_eps); dt_free_align(guide); } } } else if(operation == DEVELOP_MASK_POST_FEATHER_OUT) { - const float guide_weight = cst == IOP_CS_RGB ? 100.0f : 1.0f; _develop_blend_process_feather((const float *const restrict)ovoid, mask, owidth, oheight, ch, guide_weight, d->feathering_radius, - roi_out->scale / piece->iscale); + roi_out->scale / piece->iscale, + sqrt_eps); } else if(operation == DEVELOP_MASK_POST_BLUR) { @@ -735,13 +782,18 @@ { piece->pipe->mask_display = request_mask_display; } + else if(request_raster_display + & (DT_DEV_PIXELPIPE_DISPLAY_MASK | DT_DEV_PIXELPIPE_DISPLAY_CHANNEL)) + { + piece->pipe->mask_display = request_raster_display; + } // check if we should store the mask for export or use in subsequent modules // TODO: should we skip raster masks? if(piece->pipe->store_all_raster_masks || dt_iop_is_raster_mask_used(self, BLEND_RASTER_ID)) { const gboolean new = g_hash_table_replace(piece->raster_masks, GINT_TO_POINTER(BLEND_RASTER_ID), _mask); - dt_dev_pixelpipe_cache_invalidate_later(piece->pipe, self); + dt_dev_pixelpipe_cache_invalidate_later(piece->pipe, self->iop_order); dt_print_pipe(DT_DEBUG_PIPE, "write raster mask on CPU", piece->pipe, self, roi_in, roi_out, "%s at %p\n", new ? "new" : "replaced", @@ -773,36 +825,30 @@ cl_mem tmp = NULL; cl_mem blur = NULL; cl_mem out = NULL; - cl_int err = DT_OPENCL_DEFAULT_ERROR; + cl_int err = CL_MEM_OBJECT_ALLOCATION_FAILURE; dt_dev_pixelpipe_t *p = piece->pipe; - if(p->details.data == NULL) + if(p->scharr.data == NULL) { dt_print_pipe(DT_DEBUG_PIPE | DT_DEBUG_OPENCL, "refine_detail_mask on GPU", piece->pipe, self, roi_in, roi_out, "no detail data available\n"); return; } - const int iwidth = p->details.roi.width; - const int iheight = p->details.roi.height; - dt_print_pipe(DT_DEBUG_PIPE | DT_DEBUG_OPENCL, + const int iwidth = p->scharr.roi.width; + const int iheight = p->scharr.roi.height; + + dt_print_pipe(DT_DEBUG_PIPE, "refine_detail_mask on GPU", - piece->pipe, self, roi_in, roi_out, "\n"); + piece->pipe, self, roi_in, roi_out, "scharr %ix%i\n", iwidth, iheight); lum = dt_alloc_align_float((size_t)iwidth * iheight); - tmp = dt_opencl_alloc_device(devid, iwidth, iheight, sizeof(float)); out = dt_opencl_alloc_device_buffer(devid, sizeof(float) * iwidth * iheight); blur = dt_opencl_alloc_device_buffer(devid, sizeof(float) * iwidth * iheight); - if((lum == NULL) || (tmp == NULL) || (out == NULL) || (blur == NULL)) + if((lum == NULL) || (out == NULL) || (blur == NULL)) goto error; - err = dt_opencl_write_host_to_device(devid, p->details.data, tmp, - iwidth, iheight, sizeof(float)); - if(err != CL_SUCCESS) goto error; - - err = dt_opencl_enqueue_kernel_2d_args - (devid, darktable.opencl->blendop->kernel_read_mask, iwidth, iheight, - CLARG(out), CLARG(tmp), CLARG(iwidth), CLARG(iheight)); + err = dt_opencl_write_buffer_to_device(devid, p->scharr.data, out, 0, sizeof(float) * iwidth * iheight, TRUE); if(err != CL_SUCCESS) goto error; err = dt_opencl_enqueue_kernel_2d_args @@ -811,7 +857,7 @@ if(err != CL_SUCCESS) goto error; float blurmat[13]; - dt_masks_blur_9x9_coeff(blurmat, 2.0f); + dt_masks_blur_coeff(blurmat, 2.0f); cl_mem dev_blurmat = dt_opencl_copy_host_to_device_constant(devid, sizeof(blurmat), blurmat); if(dev_blurmat != NULL) { @@ -821,29 +867,25 @@ dt_opencl_release_mem_object(dev_blurmat); if(err != CL_SUCCESS) goto error; - err = dt_opencl_enqueue_kernel_2d_args - (devid, darktable.opencl->blendop->kernel_write_mask, iwidth, iheight, - CLARG(out), CLARG(tmp), CLARG(iwidth), CLARG(iheight)); - if(err != CL_SUCCESS) goto error; - - err = dt_opencl_read_host_from_device(devid, lum, tmp, iwidth, iheight, sizeof(float)); + err = dt_opencl_read_buffer_from_device(devid, lum, out, 0, sizeof(float) * iwidth * iheight, TRUE); if(err != CL_SUCCESS) goto error; } else { - err = DT_OPENCL_DEFAULT_ERROR; + err = CL_MEM_OBJECT_ALLOCATION_FAILURE; goto error; } - dt_opencl_release_mem_object(tmp); dt_opencl_release_mem_object(blur); dt_opencl_release_mem_object(out); + out = NULL; + blur = NULL; // here we have the slightly blurred full detail mask available float *warp_mask = dt_dev_distort_detail_mask(p, lum, self); if(warp_mask == NULL) { - err = DT_OPENCL_DEFAULT_ERROR; + err = DT_OPENCL_PROCESS_CL; goto error; } dt_free_align(lum); @@ -902,12 +944,13 @@ const size_t ch = piece->colors; // the number of channels in the buffer const int owidth = roi_out->width; const int oheight = roi_out->height; - const size_t obuffsize = (size_t)owidth * oheight; + const size_t obuffsize = owidth * oheight; const int dy = roi_out->y - roi_in->y; const int dx = roi_out->x - roi_in->x; - const gboolean rois_equal = (roi_in->width == owidth) && (roi_in->height == oheight); + const gboolean rois_equal = (roi_in->width == owidth) + && (roi_in->height == oheight); const gboolean inside_roi = (roi_in->width - dx >= owidth) && (roi_in->height - dy >= oheight); @@ -923,26 +966,30 @@ // only non-zero if mask_display was set by an _earlier_ module const dt_dev_pixelpipe_display_mask_t mask_display = piece->pipe->mask_display; + const gboolean valid_request = + self->dev->gui_attached + && (self == self->dev->gui_module) + && (piece->pipe == self->dev->full.pipe); + // does user want us to display a specific channel? - const dt_dev_pixelpipe_display_mask_t request_mask_display - = (self->dev->gui_attached - && (self == self->dev->gui_module) - && (piece->pipe == self->dev->pipe) - && (mask_mode & DEVELOP_MASK_MASK_CONDITIONAL)) - ? self->request_mask_display - : DT_DEV_PIXELPIPE_DISPLAY_NONE; + const dt_dev_pixelpipe_display_mask_t request_mask_display = + valid_request && (mask_mode & DEVELOP_MASK_MASK_CONDITIONAL) + ? self->request_mask_display + : DT_DEV_PIXELPIPE_DISPLAY_NONE; + + const dt_dev_pixelpipe_display_mask_t request_raster_display = + valid_request && (mask_mode & DEVELOP_MASK_RASTER) + ? self->request_mask_display + : DT_DEV_PIXELPIPE_DISPLAY_NONE; // get channel max values depending on colorspace const dt_develop_blend_colorspace_t blend_csp = d->blend_cst; const dt_iop_colorspace_type_t cst = dt_develop_blend_colorspace(piece, IOP_CS_NONE); - // check if mask should be suppressed temporarily (i.e. just set to global - // opacity value) + // check if mask should be suppressed temporarily (i.e. just set to global opacity value) const gboolean suppress_mask = self->suppress_mask - && self->dev->gui_attached - && (self == self->dev->gui_module) - && (piece->pipe == self->dev->pipe) - && (mask_mode & DEVELOP_MASK_MASK_CONDITIONAL); + && valid_request + && (mask_mode & ~DEVELOP_MASK_ENABLED); // obtaining the list of mask operations to perform _develop_mask_post_processing post_operations[3]; @@ -998,7 +1045,6 @@ const int devid = piece->pipe->devid; const int offs[2] = { dx, dy }; - const size_t sizes[] = { ROUNDUPDWD(owidth, devid), ROUNDUPDHT(oheight, devid), 1 }; cl_int err = DT_OPENCL_DEFAULT_ERROR; cl_mem dev_blendif_params = NULL; @@ -1006,7 +1052,6 @@ cl_mem dev_mask_1 = NULL; cl_mem dev_mask_2 = NULL; cl_mem dev_tmp = NULL; - cl_mem dev_guide = NULL; cl_mem dev_profile_info = NULL; cl_mem dev_profile_lut = NULL; @@ -1055,10 +1100,11 @@ // blend uniformly (no drawn or parametric mask) // set dev_mask with global opacity value - dt_opencl_set_kernel_args(devid, kernel_set_mask, 0, - CLARG(dev_mask_1), CLARG(owidth), CLARG(oheight), + err = dt_opencl_enqueue_kernel_2d_args(devid, kernel_set_mask, owidth, oheight, + CLARG(dev_mask_1), + CLARG(owidth), + CLARG(oheight), CLARG(opacity)); - err = dt_opencl_enqueue_kernel_2d(devid, kernel_set_mask, sizes); if(err != CL_SUCCESS) { dt_print(DT_DEBUG_OPENCL, @@ -1122,21 +1168,16 @@ else { const gboolean inverted = (d->mask_combine & DEVELOP_COMBINE_MASKS_POS); - dt_print_pipe(DT_DEBUG_PIPE, - "blend with form CL", - piece->pipe, self, roi_in, roi_out, "%s %s\n", - dt_iop_colorspace_to_name(cst), - inverted ? "inverted" : ""); - // we blend with a drawn and/or parametric mask - + gboolean form_ok = FALSE; // get the drawn mask if there is one dt_masks_form_t *form = dt_masks_get_from_id_ext(piece->pipe->forms, d->mask_id); + // we blend with a drawn and/or parametric mask if(form && (!(self->flags() & IOP_FLAGS_NO_MASKS)) && (d->mask_mode & DEVELOP_MASK_MASK)) { - dt_masks_group_render_roi(self, piece, form, roi_out, mask); + form_ok = dt_masks_group_render_roi(self, piece, form, roi_out, mask); if(inverted) { @@ -1158,6 +1199,16 @@ const float fill = (d->mask_combine & DEVELOP_COMBINE_INCL) ? 0.0f : 1.0f; dt_iop_image_fill(mask, fill, owidth, oheight, 1); //mask[k] = fill; } + + dt_print_pipe(DT_DEBUG_PIPE, + "blend with form CL", + piece->pipe, self, roi_in, roi_out, "%s, %s%s%s%s\n", + dt_iop_colorspace_to_name(cst), + _develop_blend_colorspace_to_str(blend_csp), + inverted ? ", inverted" : "", + rois_equal ? "" : ", roi differ", + form && form_ok ? ", form available and rendered" : ", no form"); + _refine_with_detail_mask_cl(self, piece, mask, roi_in, roi_out, d->details, devid); // write mask from host to device @@ -1183,17 +1234,16 @@ const uint32_t blendif = d->blendif; const uint32_t mask_combine = d->mask_combine; - dt_opencl_set_kernel_args(devid, kernel_mask, 0, - CLARG(dev_in), CLARG(dev_out), - CLARG(dev_mask_1), CLARG(dev_mask_2), - CLARG(owidth), CLARG(oheight), - CLARG(opacity), - CLARG(blendif), - CLARG(dev_blendif_params), - CLARG(mask_mode), CLARG(mask_combine), - CLARRAY(2, offs), - CLARG(dev_profile_info), CLARG(dev_profile_lut), CLARG(use_profile)); - err = dt_opencl_enqueue_kernel_2d(devid, kernel_mask, sizes); + err = dt_opencl_enqueue_kernel_2d_args(devid, kernel_mask, owidth, oheight, + CLARG(dev_in), CLARG(dev_out), + CLARG(dev_mask_1), CLARG(dev_mask_2), + CLARG(owidth), CLARG(oheight), + CLARG(opacity), + CLARG(blendif), + CLARG(dev_blendif_params), + CLARG(mask_mode), CLARG(mask_combine), + CLARRAY(2, offs), + CLARG(dev_profile_info), CLARG(dev_profile_lut), CLARG(use_profile)); if(err != CL_SUCCESS) { dt_print(DT_DEBUG_OPENCL, @@ -1205,49 +1255,43 @@ _blend_process_cl_exchange(&dev_mask_1, &dev_mask_2); // post processing the mask (it will always be stored in dev_mask_1) - for(size_t index = 0; index < post_operations_size; ++index) + + const int featherw = _get_required_w(d->feathering_radius, roi_out->scale / piece->iscale); + const float sqrt_eps = _get_feathering_eps(piece); + const float guide_weight = _get_guide_weight(piece); + + for(int index = 0; index < (int)post_operations_size; index++) { _develop_mask_post_processing operation = post_operations[index]; if(operation == DEVELOP_MASK_POST_FEATHER_IN) { - int w = (int)(2 * d->feathering_radius * roi_out->scale / piece->iscale + 0.5f); - if(w < 1) w = 1; - - const float sqrt_eps = 1.0f; - const float guide_weight = cst == IOP_CS_RGB ? 100.0f : 1.0f; - - cl_mem guide = dev_in; if(!rois_equal) { - dev_guide = dt_opencl_alloc_device(devid, owidth, oheight, sizeof(float) * ch); + cl_mem dev_guide = dt_opencl_alloc_device(devid, owidth, oheight, sizeof(float) * ch); if(dev_guide == NULL) goto error; - guide = dev_guide; + size_t origin_1[] = { dx, dy, 0 }; - size_t origin_2[] = { 0, 0, 0 }; - err = dt_opencl_enqueue_copy_image(devid, dev_in, guide, - origin_2, origin_1, region); - if(err != CL_SUCCESS) goto error; + err = dt_opencl_enqueue_copy_image(devid, dev_in, dev_guide, origin, origin_1, region); + if(err != CL_SUCCESS) + { + dt_opencl_release_mem_object(dev_guide); + goto error; + } + guided_filter_cl(devid, dev_guide, dev_mask_1, dev_mask_2, owidth, oheight, ch, + featherw, sqrt_eps, guide_weight, 0.0f, 1.0f); + dt_opencl_release_mem_object(dev_guide); } - guided_filter_cl(devid, guide, dev_mask_1, dev_mask_2, - owidth, oheight, ch, w, sqrt_eps, guide_weight, - 0.0f, 1.0f); - if(!rois_equal) + else { - dt_opencl_release_mem_object(dev_guide); - dev_guide = NULL; + guided_filter_cl(devid, dev_in, dev_mask_1, dev_mask_2, owidth, oheight, ch, + featherw, sqrt_eps, guide_weight, 0.0f, 1.0f); } _blend_process_cl_exchange(&dev_mask_1, &dev_mask_2); } else if(operation == DEVELOP_MASK_POST_FEATHER_OUT) { - const int w = MAX(1, (int)(2 * d->feathering_radius - * roi_out->scale / piece->iscale + 0.5f)); - const float sqrt_eps = 1.0f; - const float guide_weight = cst == IOP_CS_RGB ? 100.0f : 1.0f; - - guided_filter_cl(devid, dev_out, dev_mask_1, dev_mask_2, - owidth, oheight, ch, w, sqrt_eps, guide_weight, - 0.0f, 1.0f); + guided_filter_cl(devid, dev_out, dev_mask_1, dev_mask_2, owidth, oheight, ch, + featherw, sqrt_eps, guide_weight, 0.0f, 1.0f); _blend_process_cl_exchange(&dev_mask_1, &dev_mask_2); } else if(operation == DEVELOP_MASK_POST_BLUR) @@ -1274,16 +1318,15 @@ { const float e = expf(3.f * d->contrast); const float brightness = d->brightness; - dt_opencl_set_kernel_args(devid, kernel_mask_tone_curve, 0, + + err = dt_opencl_enqueue_kernel_2d_args(devid, kernel_mask_tone_curve, owidth, oheight, CLARG(dev_mask_1), CLARG(dev_mask_2), CLARG(owidth), CLARG(oheight), CLARG(e), CLARG(brightness), CLARG(opacity)); - err = dt_opencl_enqueue_kernel_2d(devid, kernel_mask_tone_curve, sizes); if(err != CL_SUCCESS) { dt_print(DT_DEBUG_OPENCL, - "[opencl_blendop] DEVELOP_MASK_POST_TONE_CURVE: %s\n", - cl_errstr(err)); + "[opencl_blendop] DEVELOP_MASK_POST_TONE_CURVE: %s\n", cl_errstr(err)); goto error; } _blend_process_cl_exchange(&dev_mask_1, &dev_mask_2); @@ -1328,7 +1371,7 @@ goto error; } // let us display a specific channel - dt_opencl_set_kernel_args(devid, kernel_display_channel, 0, + err = dt_opencl_enqueue_kernel_2d_args(devid, kernel_display_channel, owidth, oheight, CLARG(dev_in), CLARG(dev_tmp), CLARG(dev_mask_1), CLARG(dev_out), CLARG(owidth), CLARG(oheight), CLARRAY(2, offs), CLARG(request_mask_display), @@ -1336,7 +1379,6 @@ CLARG(dev_profile_info), CLARG(dev_profile_lut), CLARG(use_profile), CLARG(dev_work_profile_info), CLARG(dev_work_profile_lut), CLARG(use_work_profile)); - err = dt_opencl_enqueue_kernel_2d(devid, kernel_display_channel, sizes); if(err != CL_SUCCESS) { dt_print(DT_DEBUG_OPENCL, @@ -1349,12 +1391,11 @@ // apply blending with per-pixel opacity value as defined in dev_mask_1 const unsigned int blend_mode = d->blend_mode; const float blend_parameter = exp2f(d->blend_parameter); - dt_opencl_set_kernel_args(devid, kernel, 0, CLARG(dev_in), - CLARG(dev_tmp), CLARG(dev_mask_1), CLARG(dev_out), + err = dt_opencl_enqueue_kernel_2d_args(devid, kernel, owidth, oheight, + CLARG(dev_in), CLARG(dev_tmp), CLARG(dev_mask_1), CLARG(dev_out), CLARG(owidth), CLARG(oheight), CLARG(blend_mode), CLARG(blend_parameter), CLARRAY(2, offs), CLARG(mask_display)); - err = dt_opencl_enqueue_kernel_2d(devid, kernel, sizes); if(err != CL_SUCCESS) { dt_print(DT_DEBUG_OPENCL, @@ -1369,6 +1410,11 @@ { piece->pipe->mask_display = request_mask_display; } + else if(request_raster_display + & (DT_DEV_PIXELPIPE_DISPLAY_MASK | DT_DEV_PIXELPIPE_DISPLAY_CHANNEL)) + { + piece->pipe->mask_display = request_raster_display; + } // check if we should store the mask for export or use in subsequent modules @@ -1388,7 +1434,7 @@ } } const gboolean new = g_hash_table_replace(piece->raster_masks, GINT_TO_POINTER(BLEND_RASTER_ID), _mask); - dt_dev_pixelpipe_cache_invalidate_later(piece->pipe, self); + dt_dev_pixelpipe_cache_invalidate_later(piece->pipe, self->iop_order); dt_print_pipe(DT_DEBUG_PIPE, "write raster mask CL", piece->pipe, self, roi_in, roi_out, "%s at %p\n", new ? "new" : "replaced", @@ -1420,7 +1466,6 @@ dt_opencl_release_mem_object(dev_mask_1); dt_opencl_release_mem_object(dev_mask_2); dt_opencl_release_mem_object(dev_tmp); - dt_opencl_release_mem_object(dev_guide); dt_ioppr_free_iccprofile_params_cl(&profile_info_cl, &profile_lut_cl, &dev_profile_info, &dev_profile_lut); dt_ioppr_free_iccprofile_params_cl(&work_profile_info_cl, &work_profile_lut_cl, @@ -1469,10 +1514,6 @@ dt_opencl_create_kernel(program_rcd, "calc_scharr_mask"); b->kernel_write_scharr_mask = dt_opencl_create_kernel(program_rcd, "write_scharr_mask"); - b->kernel_write_mask = - dt_opencl_create_kernel(program_rcd, "writeout_mask"); - b->kernel_read_mask = - dt_opencl_create_kernel(program_rcd, "readin_mask"); b->kernel_calc_blend = dt_opencl_create_kernel(program_rcd, "calc_detail_blend"); b->kernel_mask_blur = @@ -1504,8 +1545,6 @@ dt_opencl_free_kernel(b->kernel_calc_Y0_mask); dt_opencl_free_kernel(b->kernel_calc_scharr_mask); dt_opencl_free_kernel(b->kernel_write_scharr_mask); - dt_opencl_free_kernel(b->kernel_write_mask); - dt_opencl_free_kernel(b->kernel_read_mask); dt_opencl_free_kernel(b->kernel_calc_blend); dt_opencl_free_kernel(b->kernel_mask_blur); free(b); @@ -1518,15 +1557,18 @@ return DEVELOP_BLEND_VERSION; } -/** report back specific memory requirements for blend step (only - * relevant for OpenCL path) */ +/** report back specific memory requirements for blend step (only relevant for OpenCL path). + We need this to calculate maximum CL mem requirements to be sure we can process the whole + module incl blend processing on GPU as would do an early CPU fallback if requirements + are not met. +*/ void tiling_callback_blendop(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const dt_iop_roi_t *roi_in, const dt_iop_roi_t *roi_out, struct dt_develop_tiling_t *tiling) { - tiling->factor = 3.5f; // in + out + (guide, tmp) + two quarter buffers for the mask + tiling->factor = 0.0f; tiling->maxbuf = 1.0f; tiling->overhead = 0; tiling->overlap = 0; @@ -1538,8 +1580,12 @@ if(bldata) { if(bldata->details != 0.0f) - tiling->factor += 0.75f; // details mask requires 3 additional quarter buffers + tiling->factor = 0.75f; // details mask requires 3 additional quarter buffers + + if(bldata->feathering_radius > 0.1f) + tiling->factor = 3.75f; // we need all intermediate guided filter mask buffers } + tiling->factor += 3.5f; // in + out + (guide, tmp) + two quarter buffers for the mask } /** check if content of params is all zero, indicating a @@ -1611,11 +1657,11 @@ /** update blendop params from older versions */ gboolean dt_develop_blend_legacy_params(dt_iop_module_t *module, - const void *const old_params, - const int old_version, - void *new_params, - const int new_version, - const int length) + const void *const old_params, + const int old_version, + void *new_params, + const int new_version, + const int length) { // edits before version 10 default to a display referred workflow dt_develop_blend_colorspace_t cst = _blend_default_module_blend_colorspace(module, 0); @@ -1659,6 +1705,7 @@ n->blend_mode = _blend_legacy_blend_mode(o->mode); n->opacity = o->opacity; n->mask_id = o->mask_id; + n->feather_version = 0; return FALSE; } @@ -1700,6 +1747,7 @@ // 2; also switch off old "active" bit for(int i = 0; i < (4 * 8); i++) n->blendif_parameters[i] = o->blendif_parameters[i]; + n->feather_version = 0; return FALSE; } @@ -1741,6 +1789,7 @@ memcpy(n->blendif_parameters, o->blendif_parameters, sizeof(float) * 4 * DEVELOP_BLENDIF_SIZE); + n->feather_version = 0; return FALSE; } @@ -1784,6 +1833,7 @@ n->blendif = o->blendif & ~(1u << DEVELOP_BLENDIF_active); memcpy(n->blendif_parameters, o->blendif_parameters, sizeof(float) * 4 * DEVELOP_BLENDIF_SIZE); + n->feather_version = 0; return FALSE; } @@ -1835,6 +1885,7 @@ & ~(1u << DEVELOP_BLENDIF_active); memcpy(n->blendif_parameters, o->blendif_parameters, sizeof(float) * 4 * DEVELOP_BLENDIF_SIZE); + n->feather_version = 0; _fix_masks_combine(n); return FALSE; } @@ -1880,6 +1931,7 @@ n->blendif = o->blendif; memcpy(n->blendif_parameters, o->blendif_parameters, sizeof(float) * 4 * DEVELOP_BLENDIF_SIZE); + n->feather_version = 0; _fix_masks_combine(n); return FALSE; } @@ -1925,6 +1977,7 @@ n->blendif = o->blendif; memcpy(n->blendif_parameters, o->blendif_parameters, sizeof(float) * 4 * DEVELOP_BLENDIF_SIZE); + n->feather_version = 0; _fix_masks_combine(n); return FALSE; } @@ -1982,6 +2035,7 @@ n->brightness = o->brightness; memcpy(n->blendif_parameters, o->blendif_parameters, sizeof(float) * 4 * DEVELOP_BLENDIF_SIZE); + n->feather_version = 0; _fix_masks_combine(n); return FALSE; } @@ -2048,6 +2102,7 @@ n->raster_mask_instance = o->raster_mask_instance; n->raster_mask_id = o->raster_mask_source[0] ? o->raster_mask_id : INVALID_MASKID; n->raster_mask_invert = o->raster_mask_invert; + n->feather_version = 0; _fix_masks_combine(n); return FALSE; } @@ -2129,6 +2184,7 @@ n->raster_mask_instance = o->raster_mask_instance; n->raster_mask_id = o->raster_mask_source[0] ? o->raster_mask_id : INVALID_MASKID; n->raster_mask_invert = o->raster_mask_invert; + n->feather_version = 0; _fix_masks_combine(n); @@ -2144,6 +2200,7 @@ *n = *o; _fix_masks_combine(n); n->raster_mask_id = o->raster_mask_source[0] ? o->raster_mask_id : INVALID_MASKID; + n->feather_version = 0; return FALSE; } if(old_version == 12 && new_version == 13) @@ -2155,6 +2212,7 @@ *n = *o; n->raster_mask_id = o->raster_mask_source[0] ? o->raster_mask_id : INVALID_MASKID; + n->feather_version = 0; return FALSE; } return TRUE; diff -Nru darktable-4.4.2/src/develop/blend.h darktable-4.6.1/src/develop/blend.h --- darktable-4.4.2/src/develop/blend.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/blend.h 2024-02-16 17:31:09.000000000 +0000 @@ -209,8 +209,10 @@ float brightness; /** details threshold */ float details; + /** feathering parameters version */ + uint32_t feather_version; /** some reserved fields for future use */ - uint32_t reserved[3]; + uint32_t reserved[2]; /** blendif parameters */ float blendif_parameters[4 * DEVELOP_BLENDIF_SIZE]; float blendif_boost_factors[DEVELOP_BLENDIF_SIZE]; @@ -237,8 +239,6 @@ int kernel_calc_Y0_mask; int kernel_calc_scharr_mask; int kernel_write_scharr_mask; - int kernel_write_mask; - int kernel_read_mask; int kernel_calc_blend; int kernel_mask_blur; } dt_blendop_cl_global_t; @@ -334,7 +334,7 @@ int tab; int altmode[8][2]; dt_dev_pixelpipe_display_mask_t save_for_leave; - int timeout_handle; + guint timeout_handle; GtkNotebook *channel_tabs; gboolean output_channels_shown; @@ -518,7 +518,7 @@ gboolean blend_color_picker_apply(dt_iop_module_t *module, GtkWidget *picker, - dt_dev_pixelpipe_iop_t *piece); + dt_dev_pixelpipe_t *pipe); #ifdef HAVE_OPENCL /** apply blend for opencl modules*/ diff -Nru darktable-4.4.2/src/develop/blend_gui.c darktable-4.6.1/src/develop/blend_gui.c --- darktable-4.4.2/src/develop/blend_gui.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/blend_gui.c 2024-02-16 17:31:09.000000000 +0000 @@ -601,7 +601,7 @@ gtk_revealer_set_reveal_child(revealer, visible); } -static void _blendop_masks_mode_callback(const unsigned int mask_mode, +static void _blendop_masks_mode_callback(const dt_develop_mask_mode_t mask_mode, dt_iop_gui_blend_data_t *data) { data->module->blend_params->mask_mode = mask_mode; @@ -639,6 +639,8 @@ data->module->request_mask_display = DT_DEV_PIXELPIPE_DISPLAY_NONE; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->showmask), FALSE); gtk_widget_hide(GTK_WIDGET(data->showmask)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->suppress), FALSE); + gtk_widget_hide(GTK_WIDGET(data->suppress)); // disable also guided-filters on RAW based color space gtk_widget_set_sensitive(data->masks_feathering_guide_combo, FALSE); @@ -655,6 +657,7 @@ else { gtk_widget_show(GTK_WIDGET(data->showmask)); + gtk_widget_show(GTK_WIDGET(data->suppress)); } _box_set_visible(data->bottom_box, TRUE); @@ -726,13 +729,13 @@ if(_blendif_blend_parameter_enabled(data->blend_modes_csp, bp->blend_mode)) { - gtk_widget_set_sensitive(data->blend_mode_parameter_slider, TRUE); + gtk_widget_show(data->blend_mode_parameter_slider); } else { bp->blend_parameter = 0.0f; dt_bauhaus_slider_set(data->blend_mode_parameter_slider, bp->blend_parameter); - gtk_widget_set_sensitive(data->blend_mode_parameter_slider, FALSE); + gtk_widget_hide(data->blend_mode_parameter_slider); } dt_dev_add_history_item(darktable.develop, data->module, TRUE); } @@ -765,7 +768,7 @@ { dt_develop_blend_params_t *const d = data->module->blend_params; - const unsigned combine = + const uint32_t combine = GPOINTER_TO_UINT(dt_bauhaus_combobox_get_data(data->masks_combine_combo)); d->mask_combine &= ~(DEVELOP_COMBINE_INV | DEVELOP_COMBINE_INCL); d->mask_combine |= combine; @@ -1082,7 +1085,7 @@ const dt_iop_colorspace_type_t cst = _blendif_colorpicker_cst(data); const dt_iop_order_iccprofile_info_t *work_profile = (blend_csp == DEVELOP_BLEND_CS_RGB_SCENE) - ? dt_ioppr_get_pipe_current_profile_info(module, module->dev->pipe) + ? dt_ioppr_get_pipe_current_profile_info(module, module->dev->full.pipe) : dt_ioppr_get_iop_work_profile_info(module, module->dev->iop); _blendif_scale(data, cst, raw_mean, picker_mean, work_profile, in_out); @@ -1269,14 +1272,10 @@ const float old_value = bp->blendif_boost_factors[ch]; const float factor = exp2f(old_value) / exp2f(new_value); float *parameters = &(bp->blendif_parameters[4 * ch]); - if(parameters[0] > 0.0f) - parameters[0] = clamp_range_f((parameters[0] - off) * factor + off, 0.0f, 1.0f); - if(parameters[1] > 0.0f) - parameters[1] = clamp_range_f((parameters[1] - off) * factor + off, 0.0f, 1.0f); - if(parameters[2] < 1.0f) - parameters[2] = clamp_range_f((parameters[2] - off) * factor + off, 0.0f, 1.0f); - if(parameters[3] < 1.0f) - parameters[3] = clamp_range_f((parameters[3] - off) * factor + off, 0.0f, 1.0f); + if(parameters[0] > 0.0f) parameters[0] = CLIP((parameters[0] - off) * factor + off); + if(parameters[1] > 0.0f) parameters[1] = CLIP((parameters[1] - off) * factor + off); + if(parameters[2] < 1.0f) parameters[2] = CLIP((parameters[2] - off) * factor + off); + if(parameters[3] < 1.0f) parameters[3] = CLIP((parameters[3] - off) * factor + off); if(parameters[1] == 0.0f && parameters[2] == 1.0f) bp->blendif &= ~(1 << ch); bp->blendif_boost_factors[ch] = new_value; @@ -1302,6 +1301,18 @@ } } +static void _blendop_blendif_feathering_callback(GtkWidget *slider, + dt_iop_gui_blend_data_t *data) +{ + if(darktable.gui->reset || !data || !data->blendif_inited) return; + dt_develop_blend_params_t *bp = data->module->blend_params; + if(bp->feather_version == 0) + { + bp->feather_version = 1; + dt_dev_add_history_item(darktable.develop, data->module, TRUE); + } +} + static gboolean _blendop_blendif_showmask_clicked(GtkToggleButton *button, GdkEventButton *event, dt_iop_module_t *module) @@ -1370,7 +1381,7 @@ data->selected_mask_mode = button; // remove the mask indicator - add_remove_mask_indicator(module, FALSE); + dt_iop_add_remove_mask_indicator(module, FALSE); /* and finally remove hinter messages */ dt_control_hinter_message(darktable.control, ""); @@ -1381,7 +1392,7 @@ static gboolean _blendop_masks_modes_toggle(GtkToggleButton *button, dt_iop_module_t *module, - unsigned int mask_mode) + dt_develop_mask_mode_t mask_mode) { if(darktable.gui->reset) return FALSE; dt_iop_gui_blend_data_t *data = module->blend_data; @@ -1425,11 +1436,16 @@ g_list_index(data->masks_modes, (gconstpointer)DEVELOP_MASK_DISABLED))); } + // (un)set the mask indicator, but not for uniform blend - if(mask_mode == DEVELOP_MASK_ENABLED) - add_remove_mask_indicator(module, FALSE); + const gboolean supported = mask_mode & ~DEVELOP_MASK_ENABLED; + if(supported) + dt_iop_add_remove_mask_indicator(module, was_toggled); else - add_remove_mask_indicator(module, was_toggled); + dt_iop_add_remove_mask_indicator(module, FALSE); + // also hide the eye and showmask buttons for uniform blend + gtk_widget_set_visible(data->showmask, supported); + gtk_widget_set_visible(data->suppress, supported); ++darktable.gui->reset; @@ -1695,7 +1711,7 @@ gboolean blend_color_picker_apply(dt_iop_module_t *module, GtkWidget *picker, - dt_dev_pixelpipe_iop_t *piece) + dt_dev_pixelpipe_t *pipe) { dt_iop_gui_blend_data_t *data = module->blend_data; @@ -1742,7 +1758,7 @@ const dt_iop_colorspace_type_t cst = _blendif_colorpicker_cst(data); const dt_iop_order_iccprofile_info_t *work_profile = (blend_csp == DEVELOP_BLEND_CS_RGB_SCENE) - ? dt_ioppr_get_pipe_current_profile_info(piece->module, piece->pipe) + ? dt_ioppr_get_pipe_current_profile_info(module, pipe) : dt_ioppr_get_iop_work_profile_info(module, module->dev->iop); gboolean reverse_hues = FALSE; @@ -2917,7 +2933,6 @@ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(bd->raster_polarity), bp->raster_mask_invert); - _raster_combo_populate(bd->raster_combo, &module); } @@ -3058,7 +3073,7 @@ break; } - const unsigned int mode = g_list_index(bd->masks_modes, + const dt_develop_mask_mode_t mode = g_list_index(bd->masks_modes, GUINT_TO_POINTER(module->blend_params->mask_mode)); // unsets currently toggled if any, won't try to untoggle the cancel button @@ -3070,7 +3085,7 @@ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(bd->selected_mask_mode), FALSE); } - if(mode > 0) + if(mode != DEVELOP_MASK_DISABLED) { GtkToggleButton *to_be_activated = GTK_TOGGLE_BUTTON(g_list_nth_data(bd->masks_modes_toggles, mode)); @@ -3084,10 +3099,13 @@ GUINT_TO_POINTER(DEVELOP_MASK_DISABLED))); } + const gboolean valid_masking = module->blend_params->mask_mode & ~DEVELOP_MASK_ENABLED; + // (un)set the mask indicator - add_remove_mask_indicator(module, - (module->blend_params->mask_mode != DEVELOP_MASK_DISABLED) - && (module->blend_params->mask_mode != DEVELOP_MASK_ENABLED)); + dt_iop_add_remove_mask_indicator(module, valid_masking); + // also hide the eye and showmask buttons for uniform blend + gtk_widget_set_visible(bd->showmask, valid_masking); + gtk_widget_set_visible(bd->suppress, valid_masking); // initialization of blending modes if(bd->csp != bd->blend_modes_csp) @@ -3167,7 +3185,7 @@ if(!_add_blendmode_combo(bd->blend_modes_combo, blend_mode, blend_mode)) { // should never happen: unknown blend mode - dt_control_log("unknown blend mode '%d' in module '%s'", blend_mode, module->op); + dt_control_log(_("unknown blend mode '%d' in module '%s'"), blend_mode, module->op); module->blend_params->blend_mode = DEVELOP_BLEND_NORMAL2; blend_mode = DEVELOP_BLEND_NORMAL2; } @@ -3183,12 +3201,10 @@ dt_bauhaus_slider_set(bd->blend_mode_parameter_slider, module->blend_params->blend_parameter); - gtk_widget_set_sensitive + gtk_widget_set_visible (bd->blend_mode_parameter_slider, _blendif_blend_parameter_enabled(bd->blend_modes_csp, module->blend_params->blend_mode)); - gtk_widget_set_visible(bd->blend_mode_parameter_slider, - bd->blend_modes_csp == DEVELOP_BLEND_CS_RGB_SCENE); dt_bauhaus_combobox_set_from_value (bd->masks_combine_combo, @@ -3216,7 +3232,7 @@ dt_iop_gui_update_raster(module); /* now show hide controls as required */ - const unsigned int mask_mode = module->blend_params->mask_mode; + const dt_develop_mask_mode_t mask_mode = module->blend_params->mask_mode; _box_set_visible(bd->top_box, mask_mode & DEVELOP_MASK_ENABLED); @@ -3247,14 +3263,17 @@ { module->request_mask_display = DT_DEV_PIXELPIPE_DISPLAY_NONE; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(bd->showmask), FALSE); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(bd->suppress), FALSE); // (re)set the header mask indicator too if(module->mask_indicator) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(module->mask_indicator), FALSE); gtk_widget_hide(GTK_WIDGET(bd->showmask)); + gtk_widget_hide(GTK_WIDGET(bd->suppress)); } else { gtk_widget_show(GTK_WIDGET(bd->showmask)); + gtk_widget_show(GTK_WIDGET(bd->suppress)); } _box_set_visible(bd->bottom_box, TRUE); @@ -3492,12 +3511,39 @@ g_list_index(bd->masks_modes, (gconstpointer)DEVELOP_MASK_DISABLED))); + // global section holding the eye and showmask buttons + GtkWidget *gbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + gtk_box_pack_start(GTK_BOX(gbox), dt_ui_label_new(_("blend mask")), TRUE, TRUE, 0); + dt_gui_add_class(gbox, "dt_section_label"); + + bd->showmask = dt_iop_togglebutton_new(module, "blend`tools", + N_("display mask and/or color channel"), NULL, + G_CALLBACK(_blendop_blendif_showmask_clicked), + FALSE, 0, 0, dtgtk_cairo_paint_showmask, gbox); + gtk_widget_set_tooltip_text + (bd->showmask, + _("display mask and/or color channel.\n" + "ctrl+click to display mask,\n" + "shift+click to display channel.\n" + "hover over parametric mask slider to select channel for display")); + dt_gui_add_class(bd->showmask, "dt_transparent_background"); + + bd->suppress = dt_iop_togglebutton_new(module, "blend`tools", + N_("temporarily switch off blend mask"), NULL, + G_CALLBACK(_blendop_blendif_suppress_toggled), + FALSE, 0, 0, dtgtk_cairo_paint_eye_toggle, gbox); + gtk_widget_set_tooltip_text + (bd->suppress, + _("temporarily switch off blend mask.\n" + "only for module in focus")); + dt_gui_add_class(bd->suppress, "dt_transparent_background"); + GtkWidget *blend_modes_hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); bd->blend_modes_combo = dt_bauhaus_combobox_new(module); dt_action_t * ac = dt_bauhaus_widget_set_label(bd->blend_modes_combo, N_("blend"), - N_("blend mode")); + N_("mode")); dt_bauhaus_combobox_add_introspection(bd->blend_modes_combo, ac, dt_develop_blend_mode_names, -1, -1); gtk_widget_set_tooltip_text(bd->blend_modes_combo, _("choose blending mode")); @@ -3527,7 +3573,7 @@ DT_INTROSPECTION_TYPE_FLOAT); dt_bauhaus_widget_set_label(bd->blend_mode_parameter_slider, N_("blend"), - N_("blend fulcrum")); + N_("fulcrum")); dt_bauhaus_slider_set_format(bd->blend_mode_parameter_slider, _(" EV")); dt_bauhaus_slider_set_soft_range(bd->blend_mode_parameter_slider, -3.0, 3.0); gtk_widget_set_tooltip_text(bd->blend_mode_parameter_slider, @@ -3541,9 +3587,9 @@ DT_INTROSPECTION_TYPE_FLOAT); dt_bauhaus_widget_set_label(bd->opacity_slider, N_("blend"), N_("opacity")); dt_bauhaus_slider_set_format(bd->opacity_slider, "%"); - module->fusion_slider = bd->opacity_slider; gtk_widget_set_tooltip_text(bd->opacity_slider, _("set the opacity of the blending")); + module->fusion_slider = bd->opacity_slider; bd->masks_combine_combo = _combobox_new_from_list (module, @@ -3584,6 +3630,8 @@ dt_bauhaus_slider_set_format(bd->feathering_radius_slider, " px"); gtk_widget_set_tooltip_text(bd->feathering_radius_slider, _("spatial radius of feathering")); + g_signal_connect(G_OBJECT(bd->feathering_radius_slider), "value-changed", + G_CALLBACK(_blendop_blendif_feathering_callback), bd); bd->blur_radius_slider = dt_bauhaus_slider_new_with_range(module, 0.0, 100.0, 0, 0.0, 1); @@ -3594,6 +3642,8 @@ dt_bauhaus_slider_set_format(bd->blur_radius_slider, " px"); gtk_widget_set_tooltip_text(bd->blur_radius_slider, _("radius for gaussian blur of blend mask")); + g_signal_connect(G_OBJECT(bd->blur_radius_slider), "value-changed", + G_CALLBACK(_blendop_blendif_feathering_callback), bd); bd->brightness_slider = dt_bauhaus_slider_new_with_range(module, -1.0, 1.0, 0, 0.0, 2); dt_bauhaus_widget_set_field(bd->brightness_slider, @@ -3621,28 +3671,6 @@ gtk_box_pack_start(GTK_BOX(hbox), dt_ui_label_new(_("mask refinement")), TRUE, TRUE, 0); dt_gui_add_class(hbox, "dt_section_label"); - bd->showmask = dt_iop_togglebutton_new(module, "blend`tools", - N_("display mask and/or color channel"), NULL, - G_CALLBACK(_blendop_blendif_showmask_clicked), - FALSE, 0, 0, dtgtk_cairo_paint_showmask, hbox); - gtk_widget_set_tooltip_text - (bd->showmask, - _("display mask and/or color channel.\n" - "ctrl+click to display mask,\n" - "shift+click to display channel.\n" - "hover over parametric mask slider to select channel for display")); - dt_gui_add_class(bd->showmask, "dt_transparent_background"); - - bd->suppress = dt_iop_togglebutton_new(module, "blend`tools", - N_("temporarily switch off blend mask"), NULL, - G_CALLBACK(_blendop_blendif_suppress_toggled), - FALSE, 0, 0, dtgtk_cairo_paint_eye_toggle, hbox); - gtk_widget_set_tooltip_text - (bd->suppress, - _("temporarily switch off blend mask.\n" - "only for module in focus")); - dt_gui_add_class(bd->suppress, "dt_transparent_background"); - GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_box_pack_start(GTK_BOX(iopw), GTK_WIDGET(box), TRUE, TRUE, 0); @@ -3653,17 +3681,16 @@ { gtk_box_pack_start(GTK_BOX(bd->masks_modes_box), GTK_WIDGET(l->data), TRUE, TRUE, 0); } - gtk_box_pack_start(GTK_BOX(bd->masks_modes_box), - GTK_WIDGET(presets_button), FALSE, FALSE, 0); + + gtk_box_pack_start(GTK_BOX(bd->masks_modes_box), GTK_WIDGET(presets_button), FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(bd->masks_modes_box), FALSE, FALSE, 0); - dt_gui_add_help_link(GTK_WIDGET(bd->masks_modes_box), - "masks_blending"); + dt_gui_add_help_link(GTK_WIDGET(bd->masks_modes_box), "masks_blending"); gtk_widget_set_name(GTK_WIDGET(bd->masks_modes_box), "blending-tabs"); bd->top_box = GTK_BOX(gtk_box_new(GTK_ORIENTATION_VERTICAL, 0)); + gtk_box_pack_start(GTK_BOX(bd->top_box), gbox, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(bd->top_box), blend_modes_hbox, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(bd->top_box), - bd->blend_mode_parameter_slider, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(bd->top_box), bd->blend_mode_parameter_slider, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(bd->top_box), bd->opacity_slider, TRUE, TRUE, 0); _add_wrapped_box(box, bd->top_box, NULL); diff -Nru darktable-4.4.2/src/develop/borders_helper.c darktable-4.6.1/src/develop/borders_helper.c --- darktable-4.4.2/src/develop/borders_helper.c 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/develop/borders_helper.c 2024-02-16 17:31:09.000000000 +0000 @@ -0,0 +1,266 @@ +/* + This file is part of darktable, + Copyright (C) 2017-2023 darktable developers. + + darktable is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + darktable is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with darktable. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include "common/darktable.h" +#include "develop/borders_helper.h" + +// this will be called from inside an OpenMP parallel section, so no +// need to parallelize further +static inline void set_pixels(float *buf, + const dt_aligned_pixel_t color, + const int npixels) +{ + for(int i = 0; i < npixels; i++) + { + copy_pixel_nontemporal(buf + 4*i, color); + } +} + +// this will be called from inside an OpenMP parallel section, so no +// need to parallelize further +static inline void copy_pixels(float *out, + const float *const in, + const int npixels) +{ + for(int i = 0; i < npixels; i++) + { + copy_pixel_nontemporal(out + 4*i, in + 4*i); + } +} + +void dt_iop_copy_image_with_border(float *out, + const float *const in, + const dt_iop_border_positions_t *binfo) +{ + const int image_width = binfo->image_right - binfo->image_left; +#ifdef _OPENMP +#pragma omp parallel for default(none) \ + dt_omp_firstprivate(in, out, binfo, image_width) \ + schedule(static) +#endif + for(size_t row = 0; row < binfo->height; row++) + { + float *outrow = out + 4 * row * binfo->width; + if(row < binfo->border_top || row >= binfo->border_bot) + { + // top/bottom border outside the frameline: entirely the border color + set_pixels(outrow, binfo->bcolor, binfo->width); + } + else if(row < binfo->fl_top || row >= binfo->fl_bot) + { + // top/bottom frameline + set_pixels(outrow, binfo->bcolor, binfo->border_left); + set_pixels(outrow + 4*binfo->border_left, binfo->flcolor, + binfo->border_right - binfo->border_left); + set_pixels(outrow + 4*binfo->border_right, binfo->bcolor, + binfo->width - binfo->border_right); + } + else if(row < binfo->image_top || row >= binfo->image_bot) + { + // top/bottom border inside the frameline + set_pixels(outrow, binfo->bcolor, binfo->border_left); + set_pixels(outrow + 4*binfo->border_left, binfo->flcolor, + binfo->fl_left - binfo->border_left); + set_pixels(outrow + 4*binfo->fl_left, binfo->bcolor, + binfo->fl_right - binfo->fl_left); + set_pixels(outrow + 4*binfo->fl_right, binfo->flcolor, + binfo->border_right - binfo->fl_right); + set_pixels(outrow + 4*binfo->border_right, binfo->bcolor, + binfo->width - binfo->border_right); + } + else + { + // image area: set left border (w/optional frame line), copy + // image row, set right border (w/optional frame line) set outer + // border + set_pixels(outrow, binfo->bcolor, binfo->border_left); + if(binfo->image_left > binfo->border_left) + { + // we have a frameline, so set it and the inner border + set_pixels(outrow + 4*binfo->border_left, binfo->flcolor, + binfo->fl_left - binfo->border_left); + set_pixels(outrow + 4*binfo->fl_left, binfo->bcolor, + binfo->image_left - binfo->fl_left); + } + // copy image row + copy_pixels(outrow + 4*binfo->image_left, + in + 4 * (row - binfo->image_top) * binfo->stride, + image_width); + // set right border + set_pixels(outrow + 4*binfo->image_right, binfo->bcolor, + binfo->fl_right - binfo->image_right); + if(binfo->width > binfo->fl_right) + { + // we have a frameline, so set it and the outer border + set_pixels(outrow + 4*binfo->fl_right, binfo->flcolor, + binfo->border_right - binfo->fl_right); + set_pixels(outrow + 4*binfo->border_right, binfo->bcolor, + binfo->width - binfo->border_right); + } + } + } + // ensure that all streaming writes complete before we attempt to + // read from the output buffer + dt_omploop_sfence(); +} + +void dt_iop_setup_binfo(const dt_dev_pixelpipe_iop_t *piece, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out, + const float pos_v, + const float pos_h, + const float *bcolor, + const float *fcolor, + const float f_size, + const float f_offset, + dt_iop_border_positions_t *binfo) +{ + const gboolean has_left = pos_h > 0.0f; + const gboolean has_right = pos_h < 1.0f; + const gboolean has_top = pos_v > 0.0f; + const gboolean has_bottom = pos_v < 1.0f; + + const int image_width = roi_in->width; + const int image_height = roi_in->height; + + const int border_tot_width = + ceilf((piece->buf_out.width - piece->buf_in.width) * roi_in->scale); + const int border_tot_height = + ceilf((piece->buf_out.height - piece->buf_in.height) * roi_in->scale); + + binfo->border_size_t = has_top ? border_tot_height * pos_v : 0; + binfo->border_size_b = has_bottom ? border_tot_height - binfo->border_size_t : 0; + binfo->border_size_l = has_left ? border_tot_width * pos_h : 0; + binfo->border_size_r = has_right ? border_tot_width - binfo->border_size_l : 0; + + int image_right = 0; + int image_bottom = 0; + int border_in_x = 0; + int border_in_y = 0; + + if(has_right) + { + border_in_x = CLAMP(binfo->border_size_l - roi_out->x, 0, roi_out->width); + image_right = border_in_x + image_width; + } + else + { + image_right = roi_out->width; + border_in_x = CLAMP(border_tot_width - roi_out->x, 0, roi_out->width); + } + + if(has_bottom) + { + border_in_y = CLAMP(binfo->border_size_t - roi_out->y, 0, roi_out->height); + image_bottom = border_in_y + image_height; + } + else + { + image_bottom = roi_out->height; + border_in_y = CLAMP(border_tot_height - roi_out->y, 0, roi_out->height); + } + + for(int c=0; c<3; c++) + { + binfo->bcolor[c] = bcolor[c]; + binfo->flcolor[c] = fcolor[c]; + } + binfo->bcolor[3] = 1.0f; + binfo->flcolor[3] = 1.0f; + + binfo->border_top = border_in_y; + binfo->fl_top = border_in_y; + binfo->image_top = border_in_y; + binfo->border_left = border_in_x; + binfo->fl_left = border_in_x; + binfo->image_left = border_in_x; + binfo->image_right = image_right; + binfo->fl_right = roi_out->width; + binfo->border_right = roi_out->width; + binfo->width = roi_out->width; + binfo->image_bot = image_bottom; + binfo->fl_bot = roi_out->height; + binfo->border_bot = roi_out->height; + binfo->height = roi_out->height; + binfo->stride = roi_in->width; + binfo->border_in_x = border_in_x; + binfo->border_in_y = border_in_y; + + // compute frame line parameters + const int border_min_size = MIN(MIN(binfo->border_size_t, + binfo->border_size_b), + MIN(binfo->border_size_l, + binfo->border_size_r)); + binfo->frame_size = border_min_size * f_size; + + if(binfo->frame_size > 0) + { + const int image_lx = binfo->border_size_l - roi_out->x; + const int image_ty = binfo->border_size_t - roi_out->y; + const int frame_space = border_min_size - binfo->frame_size; + const int frame_offset = frame_space * f_offset; + + binfo->frame_tl_in_x = MAX(border_in_x - frame_offset, 0); + binfo->frame_tl_out_x = MAX(binfo->frame_tl_in_x - binfo->frame_size, 0); + binfo->frame_tl_in_y = MAX(border_in_y - frame_offset, 0); + binfo->frame_tl_out_y = MAX(binfo->frame_tl_in_y - binfo->frame_size, 0); + binfo->border_top = binfo->frame_tl_out_y; + binfo->fl_top = binfo->frame_tl_in_y; + binfo->border_left = CLAMP(binfo->frame_tl_out_x, 0, roi_out->width); + binfo->fl_left = CLAMP(binfo->frame_tl_in_x, 0, roi_out->width); + const int frame_in_width = + floor((piece->buf_in.width * roi_in->scale) + frame_offset * 2); + const int frame_in_height = + floor((piece->buf_in.height * roi_in->scale) + frame_offset * 2); + const int frame_out_width = frame_in_width + binfo->frame_size * 2; + const int frame_out_height = frame_in_height + binfo->frame_size * 2; + + binfo->frame_br_in_x + = CLAMP(image_lx - frame_offset + frame_in_width - 1, + 0, roi_out->width - 1); + binfo->frame_br_in_y + = CLAMP(image_ty - frame_offset + frame_in_height - 1, + 0, roi_out->height - 1); + + // ... if 100% frame_offset we ensure frame_line "stick" the out border + binfo->frame_br_out_x + = (f_offset == 1.0f + && (MIN(binfo->border_size_l, binfo->border_size_r) - border_min_size < 2)) + ? (roi_out->width) + : CLAMP(image_lx - frame_offset - binfo->frame_size + frame_out_width - 1, + 0, roi_out->width - 1); + binfo->frame_br_out_y + = (f_offset == 1.0f + && (MIN(binfo->border_size_t, binfo->border_size_b) - border_min_size < 2)) + ? (roi_out->height) + : CLAMP(image_ty - frame_offset - binfo->frame_size + frame_out_height - 1, + 0, roi_out->height - 1); + + // need end+1 for these coordinates + binfo->fl_right = binfo->frame_br_in_x; + binfo->border_right = binfo->frame_br_out_x; + binfo->fl_bot = binfo->frame_br_in_y; + binfo->border_bot = binfo->frame_br_out_y; + } +} + +// clang-format off +// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py +// vim: shiftwidth=2 expandtab tabstop=2 cindent +// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; +// clang-format on diff -Nru darktable-4.4.2/src/develop/borders_helper.h darktable-4.6.1/src/develop/borders_helper.h --- darktable-4.4.2/src/develop/borders_helper.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/develop/borders_helper.h 2024-02-16 17:31:09.000000000 +0000 @@ -0,0 +1,82 @@ +/* + This file is part of darktable, + Copyright (C) 2017-2023 darktable developers. + + darktable is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + darktable is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with darktable. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include "common/dttypes.h" +#include "develop/imageop.h" + +typedef struct dt_iop_border_positions_t +{ + dt_aligned_pixel_t bcolor; + dt_aligned_pixel_t flcolor; + int border_top; // 0..bt is rows of top border outside the frameline + int fl_top; //bt..ft is the top frameline + int image_top; //ft..it is the top border inside the frameline + int border_left; // 0..bl is columns of left border outside the frameline + int fl_left; //bl..fl is the left frameline + int image_left; //fl..il is the left border inside the frameline + int image_right; //il..ir is the actual image area + int fl_right; //ir..fr is the right border inside the frameline + int border_right; //fr..br is the right frameeline + int width; //br..width is the right border outside the frameline + int image_bot; //it..ib is the actual image area + int fl_bot; //ib..fb is the bottom border inside the frameline + int border_bot; //fb..bt is the frameline + int height; //bt..height is the bottom border outside the frameline + int stride; // width of input roi + + int border_in_x; + int border_in_y; + + int border_size_t; // border size top + int border_size_b; // bottom + int border_size_l; // left + int border_size_r; // right + + int frame_size; // size of the internal frame + + int frame_tl_in_x; // the frame start/end + int frame_tl_out_x; // in : inside pos (from image to frame) + int frame_tl_in_y; // out : outside pos (from frame to border) + int frame_tl_out_y; + + int frame_br_in_x; // the border start/end + int frame_br_out_x; + int frame_br_in_y; + int frame_br_out_y; +} dt_iop_border_positions_t; + +void dt_iop_copy_image_with_border(float *out, + const float *const in, + const dt_iop_border_positions_t *binfo); + +void dt_iop_setup_binfo(const dt_dev_pixelpipe_iop_t *piece, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out, + const float pos_v, + const float pos_h, + const float *bcolor, + const float *fcolor, + const float f_size, + const float f_offset, + dt_iop_border_positions_t *binfo); + +// clang-format off +// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py +// vim: shiftwidth=2 expandtab tabstop=2 cindent +// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; +// clang-format on diff -Nru darktable-4.4.2/src/develop/develop.c darktable-4.6.1/src/develop/develop.c --- darktable-4.4.2/src/develop/develop.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/develop.c 2024-02-16 17:31:09.000000000 +0000 @@ -49,8 +49,6 @@ #include "lua/call.h" #endif -#define DT_DEV_AVERAGE_DELAY_START 250 -#define DT_DEV_PREVIEW_AVERAGE_DELAY_START 50 #define DT_DEV_AVERAGE_DELAY_COUNT 5 void dt_dev_init(dt_develop_t *dev, @@ -60,9 +58,6 @@ dev->full_preview = FALSE; dev->gui_module = NULL; dev->timestamp = 0; - dev->average_delay = DT_DEV_AVERAGE_DELAY_START; - dev->preview_average_delay = DT_DEV_PREVIEW_AVERAGE_DELAY_START; - dev->preview2_average_delay = DT_DEV_PREVIEW_AVERAGE_DELAY_START; dev->gui_leaving = FALSE; dev->gui_synch = FALSE; dt_pthread_mutex_init(&dev->history_mutex, NULL); @@ -71,22 +66,16 @@ dev->history_postpone_invalidate = FALSE; dev->gui_attached = gui_attached; - dev->width = -1; - dev->height = -1; + dev->full.width = -1; + dev->full.height = -1; dt_image_init(&dev->image_storage); - dev->image_status = dev->preview_status = dev->preview2_status = DT_DEV_PIXELPIPE_DIRTY; dev->history_updating = dev->image_force_reload = FALSE; - dev->image_loading = dev->preview_loading = FALSE; - dev->preview2_loading = dev->preview_input_changed = dev->preview2_input_changed = FALSE; + dev->autosaving = FALSE; dev->image_invalid_cnt = 0; - dev->pipe = dev->preview_pipe = dev->preview2_pipe = NULL; - dt_pthread_mutex_init(&dev->pipe_mutex, NULL); - dt_pthread_mutex_init(&dev->preview_pipe_mutex, NULL); - dt_pthread_mutex_init(&dev->preview2_pipe_mutex, NULL); + dev->full.pipe = dev->preview_pipe = dev->preview2.pipe = NULL; dev->histogram_pre_tonecurve = NULL; dev->histogram_pre_levels = NULL; - dev->preview_downsampling = dt_dev_get_preview_downsampling(); dev->forms = NULL; dev->form_visible = NULL; dev->form_gui = NULL; @@ -94,12 +83,12 @@ if(dev->gui_attached) { - dev->pipe = (dt_dev_pixelpipe_t *)malloc(sizeof(dt_dev_pixelpipe_t)); + dev->full.pipe = (dt_dev_pixelpipe_t *)malloc(sizeof(dt_dev_pixelpipe_t)); dev->preview_pipe = (dt_dev_pixelpipe_t *)malloc(sizeof(dt_dev_pixelpipe_t)); - dev->preview2_pipe = (dt_dev_pixelpipe_t *)malloc(sizeof(dt_dev_pixelpipe_t)); - dt_dev_pixelpipe_init(dev->pipe); + dev->preview2.pipe = (dt_dev_pixelpipe_t *)malloc(sizeof(dt_dev_pixelpipe_t)); + dt_dev_pixelpipe_init(dev->full.pipe); dt_dev_pixelpipe_init_preview(dev->preview_pipe); - dt_dev_pixelpipe_init_preview2(dev->preview2_pipe); + dt_dev_pixelpipe_init_preview2(dev->preview2.pipe); dev->histogram_pre_tonecurve = (uint32_t *)calloc(4 * 256, sizeof(uint32_t)); dev->histogram_pre_levels = (uint32_t *)calloc(4 * 256, sizeof(uint32_t)); @@ -108,6 +97,14 @@ dev->histogram_pre_levels_max = -1; dev->darkroom_mouse_in_center_area = FALSE; dev->darkroom_skip_mouse_events = FALSE; + + if(darktable.gui) + { + dev->full.ppd = darktable.gui->ppd; + dev->full.dpi = darktable.gui->dpi; + dev->full.dpi_factor = darktable.gui->dpi_factor; + dev->full.widget = dt_ui_center(darktable.gui->ui); + } } dev->iop_instance = 0; @@ -120,10 +117,8 @@ dev->iop_order_list = NULL; dev->proxy.exposure.module = NULL; - dev->proxy.chroma_adaptation = NULL; - dev->proxy.wb_is_D65 = TRUE; // don't display error messages until - // we know for sure it's FALSE - dev->proxy.wb_coeffs[0] = 0.f; + + dt_dev_init_chroma(dev); dev->rawoverexposed.enabled = FALSE; dev->rawoverexposed.mode = @@ -139,37 +134,35 @@ dev->overexposed.lower = dt_conf_get_float("darkroom/ui/overexposed/lower"); dev->overexposed.upper = dt_conf_get_float("darkroom/ui/overexposed/upper"); - dev->iso_12646.enabled = FALSE; + dev->full.iso_12646 = FALSE; + dev->preview2.iso_12646 = dt_conf_get_bool("second_window/iso_12646"); - dev->second_window.zoom = DT_ZOOM_FIT; - dev->second_window.closeup = 0; - dev->second_window.zoom_x = dev->second_window.zoom_y = 0; - dev->second_window.zoom_scale = 1.0f; + dev->full.zoom = dev->preview2.zoom = DT_ZOOM_FIT; + dev->full.closeup = dev->preview2.closeup = 0; + dev->full.zoom_x = dev->full.zoom_y = dev->preview2.zoom_x = dev->preview2.zoom_y = 0.0f; + dev->full.zoom_scale = dev->preview2.zoom_scale = 1.0f; } void dt_dev_cleanup(dt_develop_t *dev) { if(!dev) return; // image_cache does not have to be unref'd, this is done outside develop module. - dt_pthread_mutex_destroy(&dev->pipe_mutex); - dt_pthread_mutex_destroy(&dev->preview_pipe_mutex); - dt_pthread_mutex_destroy(&dev->preview2_pipe_mutex); - dev->proxy.chroma_adaptation = NULL; - dev->proxy.wb_coeffs[0] = 0.f; - if(dev->pipe) + dt_dev_init_chroma(dev); + + if(dev->full.pipe) { - dt_dev_pixelpipe_cleanup(dev->pipe); - free(dev->pipe); + dt_dev_pixelpipe_cleanup(dev->full.pipe); + free(dev->full.pipe); } if(dev->preview_pipe) { dt_dev_pixelpipe_cleanup(dev->preview_pipe); free(dev->preview_pipe); } - if(dev->preview2_pipe) + if(dev->preview2.pipe) { - dt_dev_pixelpipe_cleanup(dev->preview2_pipe); - free(dev->preview2_pipe); + dt_dev_pixelpipe_cleanup(dev->preview2.pipe); + free(dev->preview2.pipe); } while(dev->history) { @@ -216,20 +209,10 @@ dt_conf_set_float("darkroom/ui/overexposed/upper", dev->overexposed.upper); } -float dt_dev_get_preview_downsampling() -{ - const char *preview_downsample = dt_conf_get_string_const("preview_downsampling"); - const float downsample = (g_strcmp0(preview_downsample, "original") == 0) ? 1.0f - : (g_strcmp0(preview_downsample, "to 1/2")==0) ? 0.5f - : (g_strcmp0(preview_downsample, "to 1/3")==0) ? 1/3.0f - : 0.25f; - return downsample; -} - void dt_dev_process_image(dt_develop_t *dev) { - if(!dev->gui_attached || dev->pipe->processing) return; - const int err + if(!dev->gui_attached || dev->full.pipe->processing) return; + const gboolean err = dt_control_add_job_res(darktable.control, dt_dev_process_image_job_create(dev), DT_CTL_WORKER_ZOOM_1); if(err) dt_print(DT_DEBUG_ALWAYS, "[dev_process_image] job queue exceeded!\n"); @@ -238,7 +221,7 @@ void dt_dev_process_preview(dt_develop_t *dev) { if(!dev->gui_attached) return; - const int err = dt_control_add_job_res(darktable.control, + const gboolean err = dt_control_add_job_res(darktable.control, dt_dev_process_preview_job_create(dev), DT_CTL_WORKER_ZOOM_FILL); if(err) dt_print(DT_DEBUG_ALWAYS, "[dev_process_preview] job queue exceeded!\n"); @@ -246,9 +229,7 @@ void dt_dev_process_preview2(dt_develop_t *dev) { - if(!dev->gui_attached) return; - if(!(dev->second_window.widget && GTK_IS_WIDGET(dev->second_window.widget))) return; - const int err = dt_control_add_job_res(darktable.control, + const gboolean err = dt_control_add_job_res(darktable.control, dt_dev_process_preview2_job_create(dev), DT_CTL_WORKER_ZOOM_2); if(err) dt_print(DT_DEBUG_ALWAYS, "[dev_process_preview2] job queue exceeded!\n"); @@ -256,303 +237,75 @@ void dt_dev_invalidate(dt_develop_t *dev) { - dev->image_status = DT_DEV_PIXELPIPE_DIRTY; + dev->full.pipe->status = DT_DEV_PIXELPIPE_DIRTY; dev->timestamp++; - if(dev->preview_pipe) dev->preview_pipe->input_timestamp = dev->timestamp; - if(dev->preview2_pipe) dev->preview2_pipe->input_timestamp = dev->timestamp; + if(dev->preview_pipe) + dev->preview_pipe->input_timestamp = dev->timestamp; + if(dev->preview2.pipe) + dev->preview2.pipe->input_timestamp = dev->timestamp; } void dt_dev_invalidate_all(dt_develop_t *dev) { - dev->image_status = dev->preview_status = dev->preview2_status = DT_DEV_PIXELPIPE_DIRTY; + if(dev->full.pipe) + dev->full.pipe->status = DT_DEV_PIXELPIPE_DIRTY; + if(dev->preview_pipe) + dev->preview_pipe->status = DT_DEV_PIXELPIPE_DIRTY; + if(dev->preview2.pipe) + dev->preview2.pipe->status = DT_DEV_PIXELPIPE_DIRTY; dev->timestamp++; } void dt_dev_invalidate_preview(dt_develop_t *dev) { - dev->preview_status = DT_DEV_PIXELPIPE_DIRTY; + dev->preview_pipe->status = DT_DEV_PIXELPIPE_DIRTY; dev->timestamp++; - if(dev->pipe) dev->pipe->input_timestamp = dev->timestamp; - if(dev->preview2_pipe) dev->preview2_pipe->input_timestamp = dev->timestamp; -} - -void dt_dev_process_preview_job(dt_develop_t *dev) -{ - if(dev->image_loading) - { - // raw is already loading, no use starting another file access, we wait. - return; - } - - dt_pthread_mutex_lock(&dev->preview_pipe_mutex); - - if(dev->gui_leaving) - { - dt_pthread_mutex_unlock(&dev->preview_pipe_mutex); - return; - } - - dt_control_log_busy_enter(); - dt_control_toast_busy_enter(); - dev->preview_pipe->input_timestamp = dev->timestamp; - dev->preview_status = DT_DEV_PIXELPIPE_RUNNING; - - // lock if there, issue a background load, if not (best-effort for mip f). - dt_mipmap_buffer_t buf; - dt_mipmap_cache_get(darktable.mipmap_cache, &buf, - dev->image_storage.id, DT_MIPMAP_F, DT_MIPMAP_BEST_EFFORT, - 'r'); - if(!buf.buf) - { - dt_control_log_busy_leave(); - dt_control_toast_busy_leave(); - dev->preview_status = DT_DEV_PIXELPIPE_DIRTY; - dt_pthread_mutex_unlock(&dev->preview_pipe_mutex); - return; // not loaded yet. load will issue a gtk redraw on - // completion, which in turn will trigger us again later. - } - // init pixel pipeline for preview. - dt_dev_pixelpipe_set_input(dev->preview_pipe, dev, - (float *)buf.buf, buf.width, buf.height, buf.iscale); - - if(dev->preview_loading) - { - dt_dev_pixelpipe_cleanup_nodes(dev->preview_pipe); - dt_dev_pixelpipe_create_nodes(dev->preview_pipe, dev); - dt_dev_pixelpipe_cache_flush(dev->preview_pipe); - dev->preview_loading = FALSE; - } - - // if raw loaded, get new mipf - if(dev->preview_input_changed) - { - dt_dev_pixelpipe_cache_flush(dev->preview_pipe); - dev->preview_input_changed = FALSE; - } - -// always process the whole downsampled mipf buffer, to allow for fast -// scrolling and mip4 write-through. -restart: - if(dev->gui_leaving) - { - dt_control_log_busy_leave(); - dt_control_toast_busy_leave(); - dev->preview_status = DT_DEV_PIXELPIPE_INVALID; - dt_pthread_mutex_unlock(&dev->preview_pipe_mutex); - dt_mipmap_cache_release(darktable.mipmap_cache, &buf); - return; - } - // adjust pipeline according to changed flag set by {add,pop}_history_item. - // this locks dev->history_mutex. - dt_times_t start; - dt_get_times(&start); - dt_dev_pixelpipe_change(dev->preview_pipe, dev); - if(dt_dev_pixelpipe_process( - dev->preview_pipe, dev, 0, 0, - dev->preview_pipe->processed_width * dev->preview_downsampling, - dev->preview_pipe->processed_height * dev->preview_downsampling, - dev->preview_downsampling)) - { - if(dev->preview_loading || dev->preview_input_changed) - { - dt_control_log_busy_leave(); - dt_control_toast_busy_leave(); - dev->preview_status = DT_DEV_PIXELPIPE_INVALID; - dt_pthread_mutex_unlock(&dev->preview_pipe_mutex); - dt_mipmap_cache_release(darktable.mipmap_cache, &buf); - return; - } - else - goto restart; - } - - dev->preview_status = DT_DEV_PIXELPIPE_VALID; - - if(!dev->history_postpone_invalidate) - dt_image_update_final_size(dev->preview_pipe->output_imgid); - - dt_show_times(&start, "[dev_process_preview] pixel pipeline processing"); - dt_dev_average_delay_update(&start, &dev->preview_average_delay); - dev->gui_previous_pipe_time = dt_get_wtime(); - - // if a widget needs to be redraw there's the DT_SIGNAL_*_PIPE_FINISHED signals - dt_control_log_busy_leave(); - dt_control_toast_busy_leave(); - dt_pthread_mutex_unlock(&dev->preview_pipe_mutex); - dt_mipmap_cache_release(darktable.mipmap_cache, &buf); - - DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_DEVELOP_PREVIEW_PIPE_FINISHED); - -#ifdef USE_LUA - dt_lua_async_call_alien(dt_lua_event_trigger_wrapper, - 0, NULL, NULL, - LUA_ASYNC_TYPENAME, "const char*", "pixelpipe-processing-complete", - LUA_ASYNC_TYPENAME, "dt_lua_image_t", GINT_TO_POINTER(dev->image_storage.id), - LUA_ASYNC_DONE); -#endif + if(dev->full.pipe) + dev->full.pipe->input_timestamp = dev->timestamp; + if(dev->preview2.pipe) + dev->preview2.pipe->input_timestamp = dev->timestamp; } -void dt_dev_process_preview2_job(dt_develop_t *dev) +void dt_dev_process_image_job(dt_develop_t *dev, + dt_dev_viewport_t *port, + dt_dev_pixelpipe_t *pipe, + dt_signal_t signal) { - if(dev->image_loading) + if(dev->full.pipe->loading && pipe != dev->full.pipe) { // raw is already loading, no use starting another file access, we wait. return; } - if(!(dev->second_window.widget && GTK_IS_WIDGET(dev->second_window.widget))) + if(port == &dev->preview2 && !(port->widget && GTK_IS_WIDGET(port->widget))) { return; } - dt_pthread_mutex_lock(&dev->preview2_pipe_mutex); + dt_pthread_mutex_lock(&pipe->mutex); if(dev->gui_leaving) { - dt_pthread_mutex_unlock(&dev->preview2_pipe_mutex); + dt_pthread_mutex_unlock(&pipe->mutex); return; } dt_control_log_busy_enter(); dt_control_toast_busy_enter(); - dev->preview2_pipe->input_timestamp = dev->timestamp; - dev->preview2_status = DT_DEV_PIXELPIPE_RUNNING; - - // lock if there, issue a background load, if not (best-effort for mip f). - dt_mipmap_buffer_t buf; - dt_mipmap_cache_get(darktable.mipmap_cache, &buf, - dev->image_storage.id, DT_MIPMAP_FULL, DT_MIPMAP_BLOCKING, 'r'); - - if(!buf.buf) - { - dt_control_log_busy_leave(); - dt_control_toast_busy_leave(); - dev->preview2_status = DT_DEV_PIXELPIPE_DIRTY; - dt_pthread_mutex_unlock(&dev->preview2_pipe_mutex); - return; // not loaded yet. load will issue a gtk redraw on - // completion, which in turn will trigger us again later. - } - // init pixel pipeline for preview2. - dt_dev_pixelpipe_set_input(dev->preview2_pipe, dev, - (float *)buf.buf, buf.width, buf.height, 1.0 /*buf.iscale*/); - - if(dev->preview2_loading) - { - dt_dev_pixelpipe_cleanup_nodes(dev->preview2_pipe); - dt_dev_pixelpipe_create_nodes(dev->preview2_pipe, dev); - dt_dev_pixelpipe_cache_flush(dev->preview2_pipe); - dev->preview2_loading = FALSE; - } - - // if raw loaded, get new mipf - if(dev->preview2_input_changed) - { - dt_dev_pixelpipe_cache_flush(dev->preview2_pipe); - dev->preview2_input_changed = 0; - } - -// always process the whole downsampled mipf buffer, to allow for fast -// scrolling and mip4 write-through. -restart: - if(dev->gui_leaving) - { - dt_control_log_busy_leave(); - dt_control_toast_busy_leave(); - dev->preview2_status = DT_DEV_PIXELPIPE_INVALID; - dt_pthread_mutex_unlock(&dev->preview2_pipe_mutex); - dt_mipmap_cache_release(darktable.mipmap_cache, &buf); - return; - } - - const dt_dev_pixelpipe_change_t pipe_changed = dev->pipe->changed; + pipe->input_timestamp = dev->timestamp; + // let gui know to draw preview instead of us, if it's there: + pipe->status = DT_DEV_PIXELPIPE_RUNNING; - // adjust pipeline according to changed flag set by {add,pop}_history_item. - // this locks dev->history_mutex. dt_times_t start; - dt_get_times(&start); - dt_dev_pixelpipe_change(dev->preview2_pipe, dev); - - const dt_dev_zoom_t zoom = dt_second_window_get_dev_zoom(dev); - const int closeup = dt_second_window_get_dev_closeup(dev); - float zoom_x = dt_second_window_get_dev_zoom_x(dev); - float zoom_y = dt_second_window_get_dev_zoom_y(dev); - // if just changed to an image with a different aspect ratio or - // altered image orientation, the prior zoom xy could now be beyond - // the image boundary - if(dev->preview2_loading || (pipe_changed != DT_DEV_PIPE_UNCHANGED)) - { - dt_second_window_check_zoom_bounds(dev, &zoom_x, &zoom_y, zoom, closeup, NULL, NULL); - dt_second_window_set_dev_zoom_x(dev, zoom_x); - dt_second_window_set_dev_zoom_y(dev, zoom_y); - } - const float scale = - dt_second_window_get_zoom_scale(dev, zoom, 1.0f, 0) * dev->second_window.ppd; - int window_width = dev->second_window.width * dev->second_window.ppd; - int window_height = dev->second_window.height * dev->second_window.ppd; - if(closeup) - { - window_width /= 1 << closeup; - window_height /= 1 << closeup; - } - - const int wd = MIN(window_width, dev->preview2_pipe->processed_width * scale); - const int ht = MIN(window_height, dev->preview2_pipe->processed_height * scale); - int x = MAX(0, scale * dev->preview2_pipe->processed_width * (.5 + zoom_x) - wd / 2); - int y = MAX(0, scale * dev->preview2_pipe->processed_height * (.5 + zoom_y) - ht / 2); - - if(dt_dev_pixelpipe_process(dev->preview2_pipe, dev, x, y, wd, ht, scale)) - { - if(dev->preview2_loading || dev->preview2_input_changed) - { - dt_control_log_busy_leave(); - dt_control_toast_busy_leave(); - dev->preview2_status = DT_DEV_PIXELPIPE_INVALID; - dt_pthread_mutex_unlock(&dev->preview2_pipe_mutex); - dt_mipmap_cache_release(darktable.mipmap_cache, &buf); - return; - } - else - goto restart; - } - - dev->preview2_pipe->backbuf_scale = scale; - dev->preview2_pipe->backbuf_zoom_x = zoom_x; - dev->preview2_pipe->backbuf_zoom_y = zoom_y; - - dev->preview2_status = DT_DEV_PIXELPIPE_VALID; - - dt_show_times(&start, "[dev_process_preview2] pixel pipeline processing"); - dt_dev_average_delay_update(&start, &dev->preview2_average_delay); - - dt_control_log_busy_leave(); - dt_control_toast_busy_leave(); - dt_pthread_mutex_unlock(&dev->preview2_pipe_mutex); - dt_mipmap_cache_release(darktable.mipmap_cache, &buf); - - DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, - DT_SIGNAL_DEVELOP_PREVIEW2_PIPE_FINISHED); -} - -void dt_dev_process_image_job(dt_develop_t *dev) -{ - dt_pthread_mutex_lock(&dev->pipe_mutex); - - if(dev->gui_leaving) - { - dt_pthread_mutex_unlock(&dev->pipe_mutex); - return; - } - - dt_control_log_busy_enter(); - dt_control_toast_busy_enter(); - // let gui know to draw preview instead of us, if it's there: - dev->image_status = DT_DEV_PIXELPIPE_RUNNING; + dt_get_perf_times(&start); dt_mipmap_buffer_t buf; - dt_times_t start; - dt_get_times(&start); - dt_mipmap_cache_get(darktable.mipmap_cache, &buf, dev->image_storage.id, DT_MIPMAP_FULL, - DT_MIPMAP_BLOCKING, 'r'); + dt_mipmap_cache_get(darktable.mipmap_cache, + &buf, dev->image_storage.id, + port ? DT_MIPMAP_FULL : DT_MIPMAP_F, + port ? DT_MIPMAP_BLOCKING : DT_MIPMAP_BEST_EFFORT, + 'r'); + dt_show_times(&start, "[dt_dev_process_image_job] loading image."); // failed to load raw? @@ -560,33 +313,51 @@ { dt_control_log_busy_leave(); dt_control_toast_busy_leave(); - dev->image_status = DT_DEV_PIXELPIPE_DIRTY; - dt_pthread_mutex_unlock(&dev->pipe_mutex); + pipe->status = DT_DEV_PIXELPIPE_DIRTY; + dt_pthread_mutex_unlock(&pipe->mutex); dev->image_invalid_cnt++; - return; + return; // not loaded yet. load will issue a gtk redraw on + // completion, which in turn will trigger us again later. } - dt_dev_pixelpipe_set_input(dev->pipe, dev, (float *)buf.buf, buf.width, buf.height, 1.0); + dt_dev_pixelpipe_set_input(pipe, dev, (float *)buf.buf, buf.width, buf.height, + port ? 1.0 : buf.iscale); - if(dev->image_loading) + if(pipe->loading) { // init pixel pipeline - dt_dev_pixelpipe_cleanup_nodes(dev->pipe); - dt_dev_pixelpipe_create_nodes(dev->pipe, dev); - if(dev->image_force_reload) dt_dev_pixelpipe_cache_flush(dev->pipe); - dev->image_force_reload = FALSE; - if(dev->gui_attached) + dt_pthread_mutex_lock(&dev->history_mutex); + dt_dev_pixelpipe_cleanup_nodes(pipe); + dt_dev_pixelpipe_create_nodes(pipe, dev); + dt_pthread_mutex_unlock(&dev->history_mutex); + if(pipe == dev->full.pipe) + { + if(dev->image_force_reload) dt_dev_pixelpipe_cache_flush(pipe); + dev->image_force_reload = FALSE; + if(dev->gui_attached) + { + // during load, a mipf update could have been issued. + dev->preview_pipe->input_changed = TRUE; + dev->preview_pipe->status = DT_DEV_PIXELPIPE_DIRTY; + dev->preview_pipe->changed |= DT_DEV_PIPE_SYNCH; + dev->preview2.pipe->input_changed = TRUE; + dev->preview2.pipe->status = DT_DEV_PIXELPIPE_DIRTY; + dev->preview2.pipe->changed |= DT_DEV_PIPE_SYNCH; + dev->gui_synch = TRUE; // notify gui thread we want to synch + // (call gui_update on the modules) + } + pipe->changed |= DT_DEV_PIPE_SYNCH; + } + else { - // during load, a mipf update could have been issued. - dev->preview_input_changed = TRUE; - dev->preview_status = DT_DEV_PIXELPIPE_DIRTY; - dev->preview2_input_changed = TRUE; - dev->preview2_status = DT_DEV_PIXELPIPE_DIRTY; - dev->gui_synch = TRUE; // notify gui thread we want to synch (call gui_update in the modules) - dev->preview_pipe->changed |= DT_DEV_PIPE_SYNCH; - dev->preview2_pipe->changed |= DT_DEV_PIPE_SYNCH; + dt_dev_pixelpipe_cache_flush(pipe); + pipe->loading = FALSE; } - dev->pipe->changed |= DT_DEV_PIPE_SYNCH; + } + if(port != &dev->full && pipe->input_changed) + { + dt_dev_pixelpipe_cache_flush(pipe); + pipe->input_changed = FALSE; } // adjust pipeline according to changed flag set by {add,pop}_history_item. @@ -596,84 +367,110 @@ dt_mipmap_cache_release(darktable.mipmap_cache, &buf); dt_control_log_busy_leave(); dt_control_toast_busy_leave(); - dev->image_status = DT_DEV_PIXELPIPE_INVALID; - dt_pthread_mutex_unlock(&dev->pipe_mutex); + pipe->status = DT_DEV_PIXELPIPE_INVALID; + dt_pthread_mutex_unlock(&pipe->mutex); return; } - dev->pipe->input_timestamp = dev->timestamp; + + if(port == &dev->full) + pipe->input_timestamp = dev->timestamp; + // dt_dev_pixelpipe_change() will clear the changed value - const dt_dev_pixelpipe_change_t pipe_changed = dev->pipe->changed; + const dt_dev_pixelpipe_change_t pipe_changed = pipe->changed; // this locks dev->history_mutex. - dt_dev_pixelpipe_change(dev->pipe, dev); - // determine scale according to new dimensions - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - float zoom_x = dt_control_get_dev_zoom_x(); - float zoom_y = dt_control_get_dev_zoom_y(); - // if just changed to an image with a different aspect ratio or - // altered image orientation, the prior zoom xy could now be beyond - // the image boundary - if(dev->image_loading || (pipe_changed != DT_DEV_PIPE_UNCHANGED)) - { - dt_dev_check_zoom_bounds(dev, &zoom_x, &zoom_y, zoom, closeup, NULL, NULL); - dt_control_set_dev_zoom_x(zoom_x); - dt_control_set_dev_zoom_y(zoom_y); - } - - const float scale = dt_dev_get_zoom_scale(dev, zoom, 1.0f, 0) * darktable.gui->ppd; - int window_width = dev->width * darktable.gui->ppd; - int window_height = dev->height * darktable.gui->ppd; - if(closeup) - { - window_width /= 1<<closeup; - window_height /= 1<<closeup; - } - const int wd = MIN(window_width, dev->pipe->processed_width * scale); - const int ht = MIN(window_height, dev->pipe->processed_height * scale); - const int x = MAX(0, scale * dev->pipe->processed_width * (.5 + zoom_x) - wd / 2); - const int y = MAX(0, scale * dev->pipe->processed_height * (.5 + zoom_y) - ht / 2); + dt_dev_pixelpipe_change(pipe, dev); + + float scale = 1.0f; + int window_width = G_MAXINT; + int window_height = G_MAXINT; + float zoom_x = 0; + float zoom_y = 0; + + if(port) + { + // if just changed to an image with a different aspect ratio or + // altered image orientation, the prior zoom xy could now be beyond + // the image boundary + if(port->pipe->loading || pipe_changed != DT_DEV_PIPE_UNCHANGED) + dt_dev_zoom_move(port, DT_ZOOM_MOVE, 0.0f, 0, 0.0f, 0.0f, TRUE); + + // determine scale according to new dimensions + dt_dev_zoom_t zoom; + int closeup; + dt_dev_get_viewport_params(port, &zoom, &closeup, &zoom_x, &zoom_y); + scale = dt_dev_get_zoom_scale(port, zoom, 1.0f, 0) * port->ppd; + window_width = port->width * port->ppd / (1<<closeup); + window_height = port->height * port->ppd / (1<<closeup); + } + // else + // { + // // FIXME full pipe may be busy, so update processed sizes here + // // make sure preview pipe is newer than full/preview2 pipes + // dev->full.pipe->processed_width = pipe->processed_width * pipe->iscale; + // dev->full.pipe->processed_height = pipe->processed_height * pipe->iscale; + // } + + const int wd = MIN(window_width, scale * pipe->processed_width); + const int ht = MIN(window_height, scale * pipe->processed_height); + const int x = port ? MAX(0, scale * pipe->processed_width * (.5 + zoom_x) - wd / 2) : 0; + const int y = port ? MAX(0, scale * pipe->processed_height * (.5 + zoom_y) - ht / 2) : 0; dt_get_times(&start); - if(dt_dev_pixelpipe_process(dev->pipe, dev, x, y, wd, ht, scale)) + if(dt_dev_pixelpipe_process(pipe, dev, x, y, wd, ht, scale)) { // interrupted because image changed? - if(dev->image_force_reload) + if(dev->image_force_reload || pipe->loading || pipe->input_changed) { dt_mipmap_cache_release(darktable.mipmap_cache, &buf); dt_control_log_busy_leave(); dt_control_toast_busy_leave(); - dev->image_status = DT_DEV_PIXELPIPE_INVALID; - dt_pthread_mutex_unlock(&dev->pipe_mutex); + pipe->status = DT_DEV_PIXELPIPE_INVALID; + dt_pthread_mutex_unlock(&pipe->mutex); return; } // or because the pipeline changed? else + { + if(port && port->widget) dt_control_queue_redraw_widget(port->widget); goto restart; + } } dt_show_times_f(&start, "[dev_process_image] pixel pipeline", "processing `%s'", dev->image_storage.filename); - dt_dev_average_delay_update(&start, &dev->average_delay); + dt_dev_average_delay_update(&start, &pipe->average_delay); // maybe we got zoomed/panned in the meantime? - if(dev->pipe->changed != DT_DEV_PIPE_UNCHANGED) goto restart; + if(port && pipe->changed != DT_DEV_PIPE_UNCHANGED) goto restart; - // cool, we got a new image! - dev->pipe->backbuf_scale = scale; - dev->pipe->backbuf_zoom_x = zoom_x; - dev->pipe->backbuf_zoom_y = zoom_y; - - dev->image_status = DT_DEV_PIXELPIPE_VALID; - dev->image_loading = FALSE; + pipe->status = DT_DEV_PIXELPIPE_VALID; + pipe->loading = FALSE; dev->image_invalid_cnt = 0; dt_mipmap_cache_release(darktable.mipmap_cache, &buf); // if a widget needs to be redraw there's the DT_SIGNAL_*_PIPE_FINISHED signals dt_control_log_busy_leave(); dt_control_toast_busy_leave(); - dt_pthread_mutex_unlock(&dev->pipe_mutex); + dt_pthread_mutex_unlock(&pipe->mutex); + + if(dev->gui_attached && !dev->gui_leaving && signal != -1) + DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, signal); + + if(port) return; + + // preview pipe only - if(dev->gui_attached && !dev->gui_leaving) - DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_DEVELOP_UI_PIPE_FINISHED); + if(!dev->history_postpone_invalidate) + dt_image_update_final_size(dev->preview_pipe->output_imgid); + + dev->gui_previous_pipe_time = dt_get_wtime(); + +#ifdef USE_LUA + dt_lua_async_call_alien(dt_lua_event_trigger_wrapper, + 0, NULL, NULL, + LUA_ASYNC_TYPENAME, "const char*", "pixelpipe-processing-complete", + LUA_ASYNC_TYPENAME, "dt_lua_image_t", GINT_TO_POINTER(dev->image_storage.id), + LUA_ASYNC_DONE); +#endif } @@ -689,12 +486,13 @@ } // load the raw and get the new image struct, blocking in gui thread -static inline void _dt_dev_load_raw(dt_develop_t *dev, const dt_imgid_t imgid) +static inline void _dt_dev_load_raw(dt_develop_t *dev, + const dt_imgid_t imgid) { // first load the raw, to make sure dt_image_t will contain all and correct data. dt_mipmap_buffer_t buf; dt_times_t start; - dt_get_times(&start); + dt_get_perf_times(&start); dt_mipmap_cache_get(darktable.mipmap_cache, &buf, imgid, DT_MIPMAP_FULL, DT_MIPMAP_BLOCKING, 'r'); dt_mipmap_cache_release(darktable.mipmap_cache, &buf); @@ -707,58 +505,72 @@ dev->requested_id = dev->image_storage.id; } -void dt_dev_reload_image(dt_develop_t *dev, const dt_imgid_t imgid) +void dt_dev_reload_image(dt_develop_t *dev, + const dt_imgid_t imgid) { _dt_dev_load_raw(dev, imgid); - dev->image_force_reload = dev->image_loading = - dev->preview_loading = dev->preview2_loading = TRUE; - - dev->pipe->changed |= DT_DEV_PIPE_SYNCH; + dev->image_force_reload = TRUE; + dev->full.pipe->loading = dev->preview_pipe->loading = dev->preview2.pipe->loading = TRUE; + dev->full.pipe->changed |= DT_DEV_PIPE_SYNCH; dt_dev_invalidate(dev); // only invalidate image, preview will follow once it's loaded. } -float dt_dev_get_zoom_scale( - dt_develop_t *dev, - dt_dev_zoom_t zoom, - const int closeup_factor, - const int preview) +float dt_dev_get_zoom_scale(dt_dev_viewport_t *port, + dt_dev_zoom_t zoom, + const int closeup_factor, + const int preview) { float zoom_scale; - const float w = preview - ? dev->preview_pipe->processed_width - : dev->pipe->processed_width; - - const float h = preview - ? dev->preview_pipe->processed_height - : dev->pipe->processed_height; - - const float ps = dev->pipe->backbuf_width - ? dev->pipe->processed_width / (float)dev->preview_pipe->processed_width - : dev->preview_pipe->iscale; + int procw, proch; + dt_dev_get_processed_size(port, &procw, &proch); + + const float w = (float)port->width / procw; + const float h = (float)port->height / proch; switch(zoom) { case DT_ZOOM_FIT: - zoom_scale = fminf(dev->width / w, dev->height / h); + zoom_scale = fminf(w, h); break; case DT_ZOOM_FILL: - zoom_scale = fmaxf(dev->width / w, dev->height / h); + zoom_scale = fmaxf(w, h); break; case DT_ZOOM_1: zoom_scale = closeup_factor; - if(preview) zoom_scale *= ps; break; default: // DT_ZOOM_FREE - zoom_scale = dt_control_get_dev_zoom_scale(); - if(preview) zoom_scale *= ps; + zoom_scale = port->zoom_scale; break; } - if(preview) zoom_scale /= dev->preview_downsampling; + + if(preview) zoom_scale *= (float)darktable.develop->full.pipe->processed_width + / darktable.develop->preview_pipe->processed_width; return zoom_scale; } +float dt_dev_get_zoom_scale_full(void) +{ + dt_dev_zoom_t zoom; + int closeup; + dt_dev_get_viewport_params(&darktable.develop->full, &zoom, &closeup, NULL, NULL); + const float zoom_scale = dt_dev_get_zoom_scale(&darktable.develop->full, zoom, 1 << closeup, 1); + + return zoom_scale; +} + +float dt_dev_get_zoomed_in(void) +{ + dt_dev_zoom_t zoom; + int closeup; + dt_dev_get_viewport_params(&darktable.develop->full, &zoom, &closeup, NULL, NULL); + const float min_scale = dt_dev_get_zoom_scale(&darktable.develop->full, DT_ZOOM_FIT, 1<<closeup, 0); + const float cur_scale = dt_dev_get_zoom_scale(&darktable.develop->full, zoom, 1<<closeup, 0); + + return cur_scale / min_scale; +} + void dt_dev_load_image_ext(dt_develop_t *dev, const dt_imgid_t imgid, const int32_t snapshot_id) @@ -767,15 +579,14 @@ _dt_dev_load_raw(dev, imgid); - if(dev->pipe) + if(dev->full.pipe) { - dev->pipe->processed_width = 0; - dev->pipe->processed_height = 0; + dev->full.pipe->processed_width = 0; + dev->full.pipe->processed_height = 0; + dev->full.pipe->loading = dev->preview_pipe->loading = dev->preview2.pipe->loading = TRUE; + dev->full.pipe->status = dev->preview_pipe->status = dev->preview2.pipe->status = DT_DEV_PIXELPIPE_DIRTY; } - dev->image_loading = dev->first_load = dev->preview_loading = - dev->preview2_loading = TRUE; - - dev->image_status = dev->preview_status = dev->preview2_status = DT_DEV_PIXELPIPE_DIRTY; + dev->first_load = TRUE; // we need a global lock as the dev->iop set must not be changed // until read history is terminated @@ -790,58 +601,46 @@ dt_unlock_image(imgid); } -void dt_dev_load_image(dt_develop_t *dev, const dt_imgid_t imgid) +void dt_dev_load_image(dt_develop_t *dev, + const dt_imgid_t imgid) { dt_dev_load_image_ext(dev, imgid, -1); } -void dt_dev_configure(dt_develop_t *dev, int wd, int ht) +void dt_dev_configure(dt_dev_viewport_t *port) { - // fixed border on every side - const int32_t tb = dev->border_size; - wd -= 2*tb; - ht -= 2*tb; - if(dev->width != wd || dev->height != ht) + int32_t tb = 0; + if(port->iso_12646) { - dev->width = wd; - dev->height = ht; - dev->preview_pipe->changed |= DT_DEV_PIPE_ZOOMED; - dev->preview2_pipe->changed |= DT_DEV_PIPE_ZOOMED; - dev->pipe->changed |= DT_DEV_PIPE_ZOOMED; - dt_dev_invalidate(dev); + // the border size is taken from conf as an absolute in cm + // and uses dpi and ppd for an absolute size + const int bsize = port->dpi * port->ppd * dt_conf_get_float("darkroom/ui/iso12464_border") / 2.54f; + // for safety, at least 2 pixels and at least 40% for content + tb = MIN(MAX(2, bsize), 0.3f * MIN(port->orig_width, port->orig_height)); } -} - -void dt_dev_second_window_configure(dt_develop_t *dev, int wd, int ht) -{ - // fixed border on every side - int32_t tb = 0; - if(dev->iso_12646.enabled) + else if(port == &darktable.develop->full) { - const int bsize = - dev->second_window.dpi * dt_conf_get_float("darkroom/ui/iso12464_border") / 2.54f; - // we want to make some some stupid settings are avoided. - tb = MIN(MAX(2, bsize), 0.3f * MIN(wd, ht)); + // Reset border size from config + tb = DT_PIXEL_APPLY_DPI(dt_conf_get_int("plugins/darkroom/ui/border_size")); } - wd -= 2*tb; - ht -= 2*tb; - - if(dev->second_window.width != wd || dev->second_window.height != ht) - { - dev->second_window.width = wd; - dev->second_window.height = ht; - dev->second_window.border_size = tb; - dev->preview2_pipe->changed |= DT_DEV_PIPE_ZOOMED; - dt_dev_invalidate(dev); - dt_dev_reprocess_center(dev); + port->border_size = tb; + // fixed border on every side + int32_t wd = port->orig_width - 2*tb; + int32_t ht = port->orig_height - 2*tb; + if(port->width != wd || port->height != ht) + { + port->width = wd; + port->height = ht; + port->pipe->changed |= DT_DEV_PIPE_ZOOMED; + dt_dev_zoom_move(port, DT_ZOOM_MOVE, 0.0f, TRUE, 0.0f, 0.0f, TRUE); } } // helper used to synch a single history item with db -int dt_dev_write_history_item(const dt_imgid_t imgid, - dt_dev_history_item_t *h, - const int32_t num) +static void _dev_write_history_item(const dt_imgid_t imgid, + dt_dev_history_item_t *h, + const int32_t num) { sqlite3_stmt *stmt; DT_DEBUG_SQLITE3_PREPARE_V2 @@ -894,18 +693,97 @@ if(form) dt_masks_write_masks_history_item(imgid, num, form); } +} - return 0; +static void _dev_auto_save(dt_develop_t *dev) +{ + // keep track of last saving time + static double last = 0.0; + + const double user_delay = (double)dt_conf_get_int("autosave_interval"); + const double now = dt_get_wtime(); + + const dt_imgid_t imgid = dev->image_storage.id; + + /* We can only autosave database & xmp while we have a valid image id + and we are not currently loading or changing it in main darkroom + */ + const gboolean saving = (user_delay >= 1.0) + && ((now - last) > user_delay) + && !dev->full.pipe->loading + && dev->requested_id == imgid + && dt_is_valid_imgid(imgid); + + if(saving) + { + // Ok, lets save status for image + dt_dev_write_history(dev); + dt_image_write_sidecar_file(imgid); + last = now; + + const double spent = dt_get_wtime() - now; + dt_print(DT_DEBUG_DEV, "autosave history took %fsec\n", spent); + + // if writing to database and the xmp took too long we disable + // autosaving mode for this session + if(spent > 0.5) + { + dev->autosaving = FALSE; + dt_control_log(_("autosaving history has been disabled" + " for this session because of a slow drive used")); + } + } } -static void _dev_add_history_item_ext( - dt_develop_t *dev, - dt_iop_module_t *module, - const gboolean enable, - const gboolean new_item, - const gboolean no_image, - const gboolean include_masks) +static void _dev_auto_module_label(dt_develop_t *dev, + dt_iop_module_t *module) +{ + // adjust the label to match presets if possible or otherwise the default + // multi_name for this module. + if(!dt_iop_is_hidden(module) + && !module->multi_name_hand_edited + && dt_conf_get_bool("darkroom/ui/auto_module_name_update")) + { + const gboolean is_default_params = + memcmp(module->params, module->default_params, module->params_size) == 0; + + char *preset_name = dt_presets_get_module_label + (module->op, + module->params, module->params_size, is_default_params, + module->blend_params, sizeof(dt_develop_blend_params_t)); + + // if we have a preset-name, use it. otherwise set the label to the multi-priority + // except for 0 where the multi-name is cleared. + if(preset_name) + snprintf(module->multi_name, + sizeof(module->multi_name), "%s", preset_name); + else if(module->multi_priority != 0) + snprintf(module->multi_name, + sizeof(module->multi_name), "%d", module->multi_priority); + else + g_strlcpy(module->multi_name, "", sizeof(module->multi_name)); + + g_free(preset_name); + + if(dev->gui_attached) + dt_iop_gui_update_header(module); + } +} + +static void _dev_add_history_item_ext(dt_develop_t *dev, + dt_iop_module_t *module, + const gboolean enable, + const gboolean new_item, + const gboolean no_image, + const gboolean include_masks, + const gboolean auto_name_module) { + // try to auto-name the module based on the presets if possible + if(auto_name_module) + { + _dev_auto_module_label(dev, module); + } + int kept_module = 0; GList *history = g_list_nth(dev->history, dev->history_end); // look for leaks on top of history in two steps @@ -1003,10 +881,10 @@ dev->history = g_list_append(dev->history, hist); if(!no_image) { - dev->pipe->changed |= DT_DEV_PIPE_SYNCH; + dev->full.pipe->changed |= DT_DEV_PIPE_SYNCH; // topology remains, as modules are fixed for now: dev->preview_pipe->changed |= DT_DEV_PIPE_SYNCH; - dev->preview2_pipe->changed |= DT_DEV_PIPE_SYNCH; + dev->preview2.pipe->changed |= DT_DEV_PIPE_SYNCH; } } else @@ -1031,13 +909,17 @@ } if(!no_image) { - dev->pipe->changed |= DT_DEV_PIPE_TOP_CHANGED; + dev->full.pipe->changed |= DT_DEV_PIPE_TOP_CHANGED; dev->preview_pipe->changed |= DT_DEV_PIPE_TOP_CHANGED; - dev->preview2_pipe->changed |= DT_DEV_PIPE_TOP_CHANGED; + dev->preview2.pipe->changed |= DT_DEV_PIPE_TOP_CHANGED; } } if((module->enabled) && (!no_image)) - module->iopcache_hint = TRUE; + dev->history_last_module = module; + + // possibly save database and sidecar file + if(dev->autosaving) + _dev_auto_save(dev); } const dt_dev_history_item_t *dt_dev_get_history_item(dt_develop_t *dev, const char *op) @@ -1055,20 +937,21 @@ return NULL; } -void dt_dev_add_history_item_ext( - dt_develop_t *dev, - dt_iop_module_t *module, - const gboolean enable, - const int no_image) +void dt_dev_add_history_item_ext(dt_develop_t *dev, + dt_iop_module_t *module, + const gboolean enable, + const int no_image) { - _dev_add_history_item_ext(dev, module, enable, FALSE, no_image, FALSE); + _dev_add_history_item_ext(dev, module, enable, FALSE, no_image, FALSE, TRUE); } static gboolean _dev_undo_start_record_target(dt_develop_t *dev, gpointer target) { const double this_time = dt_get_wtime(); - const double merge_time = dev->gui_previous_time + dt_conf_get_float("darkroom/undo/merge_same_secs"); - const double review_time = dev->gui_previous_pipe_time + dt_conf_get_float("darkroom/undo/review_secs"); + const double merge_time = + dev->gui_previous_time + dt_conf_get_float("darkroom/undo/merge_same_secs"); + const double review_time = + dev->gui_previous_pipe_time + dt_conf_get_float("darkroom/undo/review_secs"); dev->gui_previous_pipe_time = merge_time; if(target && target == dev->gui_previous_target && this_time < MIN(merge_time, review_time)) @@ -1084,37 +967,34 @@ return TRUE; } -static void _dev_add_history_item( - dt_develop_t *dev, - dt_iop_module_t *module, - const gboolean enable, - const gboolean new_item, - const gpointer target) +static void _dev_add_history_item(dt_develop_t *dev, + dt_iop_module_t *module, + const gboolean enable, + const gboolean new_item, + const gpointer target) { if(!darktable.gui || darktable.gui->reset) return; + // record current name, needed to ensure we do an undo record + // if the module name is changed. + + gchar *saved_name = g_strdup(module->multi_name); + + _dev_auto_module_label(dev, module); + + const gboolean multi_name_changed = strcmp(saved_name, module->multi_name) != 0; + const gboolean need_end_record = - _dev_undo_start_record_target(dev, target); + _dev_undo_start_record_target(dev, multi_name_changed ? NULL : target); + + g_free(saved_name); dt_pthread_mutex_lock(&dev->history_mutex); if(dev->gui_attached) { - _dev_add_history_item_ext(dev, module, enable, new_item, FALSE, FALSE); + _dev_add_history_item_ext(dev, module, enable, new_item, FALSE, FALSE, FALSE); } -#if 0 - { - // debug: - printf("remaining %d history items:\n", dev->history_end); - int i = 0; - for(GList *history = dev->history; history; history = g_list_next(history)) - { - dt_dev_history_item_t *hist = (dt_dev_history_item_t *)(history->data); - printf("%d %s\n", i, hist->module->op); - i++; - } - } -#endif /* attach changed tag reflecting actual change */ const dt_imgid_t imgid = dev->image_storage.id; @@ -1122,7 +1002,7 @@ dt_tag_new("darktable|changed", &tagid); const gboolean tag_change = dt_tag_attach(tagid, imgid, FALSE, FALSE); - /* register export timestamp in cache */ + /* register change timestamp in cache */ dt_image_cache_set_change_timestamp(darktable.image_cache, imgid); // invalidate buffers and force redraw of darkroom @@ -1138,43 +1018,40 @@ if(dev->gui_attached) { /* signal that history has changed */ - if(tag_change) DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_TAG_CHANGED); + if(tag_change) + DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_TAG_CHANGED); /* redraw */ dt_control_queue_redraw_center(); } } -void dt_dev_add_history_item( - dt_develop_t *dev, - dt_iop_module_t *module, - gboolean enable) +void dt_dev_add_history_item(dt_develop_t *dev, + dt_iop_module_t *module, + const gboolean enable) { _dev_add_history_item(dev, module, enable, FALSE, NULL); } -void dt_dev_add_history_item_target( - dt_develop_t *dev, - dt_iop_module_t *module, - const gboolean enable, - gpointer target) +void dt_dev_add_history_item_target(dt_develop_t *dev, + dt_iop_module_t *module, + const gboolean enable, + gpointer target) { _dev_add_history_item(dev, module, enable, FALSE, target); } -void dt_dev_add_new_history_item( - dt_develop_t *dev, - dt_iop_module_t *module, - const gboolean enable) +void dt_dev_add_new_history_item(dt_develop_t *dev, + dt_iop_module_t *module, + const gboolean enable) { _dev_add_history_item(dev, module, enable, TRUE, NULL); } -void dt_dev_add_masks_history_item_ext( - dt_develop_t *dev, - dt_iop_module_t *_module, - const gboolean _enable, - const gboolean no_image) +void dt_dev_add_masks_history_item_ext(dt_develop_t *dev, + dt_iop_module_t *_module, + const gboolean _enable, + const gboolean no_image) { dt_iop_module_t *module = _module; gboolean enable = _enable; @@ -1195,7 +1072,7 @@ } if(module) { - _dev_add_history_item_ext(dev, module, enable, FALSE, no_image, TRUE); + _dev_add_history_item_ext(dev, module, enable, FALSE, no_image, TRUE, TRUE); } else dt_print(DT_DEBUG_ALWAYS, @@ -1294,9 +1171,9 @@ dt_iop_gui_update_blending(module); // the pipe need to be reconstruct - dev->pipe->changed |= DT_DEV_PIPE_REMOVE; + dev->full.pipe->changed |= DT_DEV_PIPE_REMOVE; dev->preview_pipe->changed |= DT_DEV_PIPE_REMOVE; - dev->preview2_pipe->changed |= DT_DEV_PIPE_REMOVE; + dev->preview2.pipe->changed |= DT_DEV_PIPE_REMOVE; } } else if(!dt_iop_is_hidden(module) && module->expander) @@ -1318,8 +1195,7 @@ void dt_dev_pop_history_items_ext(dt_develop_t *dev, const int32_t cnt) { - if(darktable.unmuted & DT_DEBUG_IOPORDER) - dt_ioppr_check_iop_order(dev, 0, "dt_dev_pop_history_items_ext begin"); + dt_ioppr_check_iop_order(dev, 0, "dt_dev_pop_history_items_ext begin"); const int end_prev = dev->history_end; dev->history_end = cnt; @@ -1366,11 +1242,10 @@ dt_ioppr_check_duplicate_iop_order(&dev->iop, dev->history); - if(darktable.unmuted & DT_DEBUG_IOPORDER) - dt_ioppr_check_iop_order(dev, 0, "dt_dev_pop_history_items_ext end"); + dt_ioppr_check_iop_order(dev, 0, "dt_dev_pop_history_items_ext end"); // check if masks have changed - int masks_changed = 0; + gboolean masks_changed = FALSE; if(cnt < end_prev) history = g_list_nth(dev->history, cnt); else if(cnt > end_prev) @@ -1382,7 +1257,7 @@ dt_dev_history_item_t *hist = (dt_dev_history_item_t *)(history->data); if(hist->forms != NULL) - masks_changed = 1; + masks_changed = TRUE; history = g_list_next(history); } @@ -1412,7 +1287,7 @@ darktable.develop->history_updating = FALSE; // check if the order of modules has changed - int dev_iop_changed = (g_list_length(dev_iop) != g_list_length(dev->iop)); + gboolean dev_iop_changed = (g_list_length(dev_iop) != g_list_length(dev->iop)); if(!dev_iop_changed) { modules = dev->iop; @@ -1424,7 +1299,7 @@ if(module->iop_order != module_old->iop_order) { - dev_iop_changed = 1; + dev_iop_changed = TRUE; break; } @@ -1436,9 +1311,9 @@ if(!dev_iop_changed) { - dev->pipe->changed |= DT_DEV_PIPE_SYNCH; + dev->full.pipe->changed |= DT_DEV_PIPE_SYNCH; dev->preview_pipe->changed |= DT_DEV_PIPE_SYNCH; // again, fixed topology for now. - dev->preview2_pipe->changed |= DT_DEV_PIPE_SYNCH; // again, fixed topology for now. + dev->preview2.pipe->changed |= DT_DEV_PIPE_SYNCH; // again, fixed topology for now. } else { @@ -1472,7 +1347,8 @@ sqlite3_finalize(stmt); } -void dt_dev_write_history_ext(dt_develop_t *dev, const dt_imgid_t imgid) +void dt_dev_write_history_ext(dt_develop_t *dev, + const dt_imgid_t imgid) { sqlite3_stmt *stmt; dt_lock_image(imgid); @@ -1488,7 +1364,7 @@ for(int i = 0; history; i++) { dt_dev_history_item_t *hist = (dt_dev_history_item_t *)(history->data); - (void)dt_dev_write_history_item(imgid, hist, i); + _dev_write_history_item(imgid, hist, i); dt_print(DT_DEBUG_IOPORDER, "%20s, num %2i, order %2d, v(%i), multiprio %i%s\n", hist->module->op, i, hist->iop_order, hist->module->version(), hist->multi_priority, @@ -1516,7 +1392,9 @@ void dt_dev_write_history(dt_develop_t *dev) { + dt_database_start_transaction(darktable.db); dt_dev_write_history_ext(dev, dev->image_storage.id); + dt_database_release_transaction(darktable.db); } static int _dev_get_module_nb_records(void) @@ -1531,7 +1409,9 @@ return cnt; } -void _dev_insert_module(dt_develop_t *dev, dt_iop_module_t *module, const dt_imgid_t imgid) +static void _dev_insert_module(dt_develop_t *dev, + dt_iop_module_t *module, + const dt_imgid_t imgid) { sqlite3_stmt *stmt; @@ -1608,8 +1488,9 @@ && !dt_history_check_module_exists(imgid, module->op, FALSE)) { dt_print(DT_DEBUG_PARAMS, - "[_dev_auto_apply_presets] missing mandatory module %s for image id=%d `%s'\n", - module->op, imgid, dev->image_storage.filename); + "[_dev_auto_apply_presets] missing mandatory module %s" + " for image id=%d `%s'\n", + module->op, imgid, dev->image_storage.filename); // If the module is white-balance and we are dealing with a // raw file we need to add one now with the default legacy @@ -1676,8 +1557,6 @@ // supporting multiple instances (e.g. demosaic) may be added. Those // instances are properly merged in dt_dev_read_history_ext. - const char *preset_table[2] = { "data.presets", "main.legacy_presets" }; - const int legacy = (image->flags & DT_IMAGE_NO_LEGACY_PRESETS) ? 0 : 1; char query[2048]; // clang-format off @@ -1689,7 +1568,7 @@ " enabled, blendop_params, blendop_version," " ROW_NUMBER() OVER (PARTITION BY operation ORDER BY operation) - 1," " %s, multi_name_hand_edited" - " FROM %s" + " FROM data.presets" // only auto-applied presets matching the camera/lens/focal/format/exposure " WHERE ( (autoapply=1" " AND ((?2 LIKE model AND ?3 LIKE maker)" @@ -1731,7 +1610,6 @@ " THEN multi_name" " ELSE (ROW_NUMBER() OVER (PARTITION BY operation ORDER BY operation) - 1)" " END", - preset_table[legacy], is_display_referred ? "" : "basecurve"); // clang-format on @@ -1834,7 +1712,8 @@ return TRUE; } -static void _dev_add_default_modules(dt_develop_t *dev, const dt_imgid_t imgid) +static void _dev_add_default_modules(dt_develop_t *dev, + const dt_imgid_t imgid) { //start with those modules that cannot be disabled for(GList *modules = dev->iop; modules; modules = g_list_next(modules)) @@ -1864,7 +1743,8 @@ } } -static void _dev_merge_history(dt_develop_t *dev, const dt_imgid_t imgid) +static void _dev_merge_history(dt_develop_t *dev, + const dt_imgid_t imgid) { sqlite3_stmt *stmt; @@ -1968,7 +1848,8 @@ } } -void _dev_write_history(dt_develop_t *dev, const dt_imgid_t imgid) +static void _dev_write_history(dt_develop_t *dev, + const dt_imgid_t imgid) { _cleanup_history(imgid); // write history entries @@ -1976,13 +1857,13 @@ for(int i = 0; history; i++) { dt_dev_history_item_t *hist = (dt_dev_history_item_t *)(history->data); - (void)dt_dev_write_history_item(imgid, hist, i); + _dev_write_history_item(imgid, hist, i); history = g_list_next(history); } } // helper function for debug strings -char *_print_validity(gboolean state) +char *_print_validity(const gboolean state) { if(state) return "ok"; @@ -2043,7 +1924,7 @@ "[dt_dev_read_history_ext] temporary history merged with image history\n"); // first time we are loading the image, try to import lightroom .xmp if any - if(dev->image_loading && first_run) + if(dev->full.pipe && dev->full.pipe->loading && first_run) dt_lightroom_import(dev->image_storage.id, dev, TRUE); // if a snapshot move all auto-presets into the history_snapshot table @@ -2230,11 +2111,16 @@ } // Run a battery of tests - const gboolean is_valid_module_name = (strcmp(module_name, hist->module->op) == 0); - const gboolean is_valid_blendop_version = (blendop_version == dt_develop_blend_version()); - const gboolean is_valid_blendop_size = (bl_length == sizeof(dt_develop_blend_params_t)); - const gboolean is_valid_module_version = (modversion == hist->module->version()); - const gboolean is_valid_params_size = (param_length == hist->module->params_size); + const gboolean is_valid_module_name = + (strcmp(module_name, hist->module->op) == 0); + const gboolean is_valid_blendop_version = + (blendop_version == dt_develop_blend_version()); + const gboolean is_valid_blendop_size = + (bl_length == sizeof(dt_develop_blend_params_t)); + const gboolean is_valid_module_version = + (modversion == hist->module->version()); + const gboolean is_valid_params_size = + (param_length == hist->module->params_size); dt_print(DT_DEBUG_PARAMS, "[history] successfully loaded module %s from history\n" @@ -2256,15 +2142,19 @@ hist->multi_name_hand_edited = multi_name_hand_edited; g_strlcpy(hist->op_name, hist->module->op, sizeof(hist->op_name)); - g_strlcpy(hist->multi_name, multi_name, sizeof(hist->multi_name)); + if(multi_name) // multi_name can be NULL on DB + g_strlcpy(hist->multi_name, multi_name, sizeof(hist->multi_name)); hist->params = malloc(hist->module->params_size); hist->blend_params = malloc(sizeof(dt_develop_blend_params_t)); // update module iop_order only on active history entries - if(history_end_current > dev->history_end) hist->module->iop_order = hist->iop_order; + if(history_end_current > dev->history_end) + hist->module->iop_order = hist->iop_order; // Copy blending params if valid, else try to convert legacy params - if(blendop_params && is_valid_blendop_version && is_valid_blendop_size) + if(blendop_params + && is_valid_blendop_version + && is_valid_blendop_size) { memcpy(hist->blend_params, blendop_params, sizeof(dt_develop_blend_params_t)); } @@ -2293,9 +2183,10 @@ } else { - if(!hist->module->legacy_params - || hist->module->legacy_params(hist->module, module_params, labs(modversion), - hist->params, labs(hist->module->version())) == 1) + if(dt_iop_legacy_params + (hist->module, + module_params, param_length, modversion, + &hist->params, hist->module->version()) == 1) { dt_print(DT_DEBUG_ALWAYS, "[dev_read_history] module `%s' version mismatch: history" @@ -2375,17 +2266,16 @@ sqlite3_finalize(stmt); } - if(darktable.unmuted & DT_DEBUG_IOPORDER) - dt_ioppr_check_iop_order(dev, imgid, "dt_dev_read_history_no_image end"); + dt_ioppr_check_iop_order(dev, imgid, "dt_dev_read_history_no_image end"); dt_masks_read_masks_history(dev, imgid); // FIXME : this probably needs to capture dev thread lock if(dev->gui_attached && !no_image) { - dev->pipe->changed |= DT_DEV_PIPE_SYNCH; + dev->full.pipe->changed |= DT_DEV_PIPE_SYNCH; dev->preview_pipe->changed |= DT_DEV_PIPE_SYNCH; // again, fixed topology for now. - dev->preview2_pipe->changed |= DT_DEV_PIPE_SYNCH; // again, fixed topology for now. + dev->preview2.pipe->changed |= DT_DEV_PIPE_SYNCH; // again, fixed topology for now. dt_dev_invalidate_all(dev); /* signal history changed */ @@ -2418,7 +2308,9 @@ // depending on the xmp_writing mode we either us safe or relaxed const gboolean always = (dt_image_get_xmp_mode() == DT_WRITE_XMP_ALWAYS); dt_image_cache_write_release - (darktable.image_cache, image, always ? DT_IMAGE_CACHE_SAFE : DT_IMAGE_CACHE_RELAXED); + (darktable.image_cache, + image, + always ? DT_IMAGE_CACHE_SAFE : DT_IMAGE_CACHE_RELAXED); } else if(legacy_params) { @@ -2449,12 +2341,12 @@ if(darktable.gui->reset) return; if(dev && dev->gui_attached) { - dev->pipe->changed |= DT_DEV_PIPE_SYNCH; + dev->full.pipe->changed |= DT_DEV_PIPE_SYNCH; dev->preview_pipe->changed |= DT_DEV_PIPE_SYNCH; - dev->preview2_pipe->changed |= DT_DEV_PIPE_SYNCH; - dev->pipe->cache_obsolete = TRUE; + dev->preview2.pipe->changed |= DT_DEV_PIPE_SYNCH; + dev->full.pipe->cache_obsolete = TRUE; dev->preview_pipe->cache_obsolete = TRUE; - dev->preview2_pipe->cache_obsolete = TRUE; + dev->preview2.pipe->cache_obsolete = TRUE; // invalidate buffers and force redraw of darkroom dt_dev_invalidate_all(dev); @@ -2469,8 +2361,8 @@ if(darktable.gui->reset) return; if(dev && dev->gui_attached) { - dev->pipe->changed |= DT_DEV_PIPE_SYNCH; - dev->pipe->cache_obsolete = TRUE; + dev->full.pipe->changed |= DT_DEV_PIPE_SYNCH; + dev->full.pipe->cache_obsolete = TRUE; // invalidate buffers and force redraw of darkroom dt_dev_invalidate_all(dev); @@ -2482,7 +2374,8 @@ void dt_dev_reprocess_preview(dt_develop_t *dev) { - if(darktable.gui->reset || !dev || !dev->gui_attached) return; + if(darktable.gui->reset || !dev || !dev->gui_attached) + return; dev->preview_pipe->changed |= DT_DEV_PIPE_SYNCH; dev->preview_pipe->cache_obsolete = TRUE; @@ -2491,103 +2384,381 @@ dt_control_queue_redraw_center(); } -void dt_dev_check_zoom_bounds(dt_develop_t *dev, - float *zoom_x, - float *zoom_y, - const dt_dev_zoom_t zoom, - const int closeup, - float *boxww, - float *boxhh) +gboolean dt_dev_get_zoom_bounds(dt_dev_viewport_t *port, + float *zoom_x, + float *zoom_y, + float *boxw, + float *boxh) { + if(port->zoom == DT_ZOOM_FIT) + return FALSE; + int procw = 0, proch = 0; - dt_dev_get_processed_size(dev, &procw, &proch); - float boxw = 1.0f, boxh = 1.0f; // viewport in normalised space - // if(zoom == DT_ZOOM_1) - // { - // const float imgw = (closeup ? 2 : 1)*procw; - // const float imgh = (closeup ? 2 : 1)*proch; - // const float devw = MIN(imgw, dev->width); - // const float devh = MIN(imgh, dev->height); - // boxw = fminf(1.0, devw/imgw); - // boxh = fminf(1.0, devh/imgh); - // } - if(zoom == DT_ZOOM_FIT) - { - *zoom_x = *zoom_y = 0.0f; - boxw = boxh = 1.0f; - } - else - { - const float scale = dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 0); - const float imgw = procw; - const float imgh = proch; - const float devw = dev->width; - const float devh = dev->height; - boxw = devw / (imgw * scale); - boxh = devh / (imgh * scale); - } - - if(*zoom_x < boxw / 2 - .5) *zoom_x = boxw / 2 - .5; - if(*zoom_x > .5 - boxw / 2) *zoom_x = .5 - boxw / 2; - if(*zoom_y < boxh / 2 - .5) *zoom_y = boxh / 2 - .5; - if(*zoom_y > .5 - boxh / 2) *zoom_y = .5 - boxh / 2; - if(boxw > 1.0) *zoom_x = 0.0f; - if(boxh > 1.0) *zoom_y = 0.0f; + dt_dev_get_processed_size(port, &procw, &proch); + const float scale = dt_dev_get_zoom_scale(port, port->zoom, 1<<port->closeup, 0); + + dt_dev_get_viewport_params(port, NULL, NULL, zoom_x, zoom_y); + + *boxw = procw ? port->width / (procw * scale) : 1.0f; + *boxh = proch ? port->height / (proch * scale) : 1.0f; - if(boxww) *boxww = boxw; - if(boxhh) *boxhh = boxh; + return *boxw < 1.0f || *boxh < 1.0f; } -void dt_dev_get_processed_size(const dt_develop_t *dev, int *procw, int *proch) +gboolean dt_dev_get_preview_size(const dt_develop_t *dev, + float *wd, + float *ht) { - if(!dev) return; + *wd = dev->full.pipe->processed_width / dev->preview_pipe->iscale; + *ht = dev->full.pipe->processed_height / dev->preview_pipe->iscale; + return *wd >= 1.f && *ht >= 1.f; +} + +void dt_dev_get_processed_size(dt_dev_viewport_t *port, + int *procw, + int *proch) +{ + // no processed pipes, lets return 0 size + *procw = *proch = 0; + + if(!port) return; // if pipe is processed, lets return its size - if(dev->pipe && dev->pipe->processed_width) + if(port->pipe && port->pipe->processed_width) { - *procw = dev->pipe->processed_width; - *proch = dev->pipe->processed_height; + *procw = port->pipe->processed_width; + *proch = port->pipe->processed_height; return; } + dt_develop_t *dev = darktable.develop; + // fallback on preview pipe if(dev->preview_pipe && dev->preview_pipe->processed_width) { - const float scale = (dev->preview_pipe->iscale / dev->preview_downsampling); + const float scale = dev->preview_pipe->iscale; *procw = scale * dev->preview_pipe->processed_width; *proch = scale * dev->preview_pipe->processed_height; - return; } +} - // no processed pipes, lets return 0 size - *procw = *proch = 0; - return; +static float _calculate_new_scroll_zoom_tscale(const int up, + const gboolean constrained, + const float tscaleold, + const float tscalefit) +{ + enum { + SIZE_SMALL, + SIZE_MEDIUM, + SIZE_LARGE + } image_size; + + if (tscalefit <= 1.0f) + image_size = SIZE_LARGE; + else if (tscalefit <= 2.0f) + image_size = SIZE_MEDIUM; + else + image_size = SIZE_SMALL; + + // at 200% zoom level or more, we use a step of 2x, while at lower level we use 1.1x + const float step = + up + ? (tscaleold >= 2.0f ? 2.0f : 1.1f) + : (tscaleold > 2.0f ? 2.0f : 1.1f); + + // we calculate the new scale + float tscalenew = up ? tscaleold * step : tscaleold / step; + + // when zooming, secure we include 2:1, 1:1 and FIT levels anyway in the zoom stops + if ((tscalenew - tscalefit) * (tscaleold - tscalefit) < 0 && image_size != SIZE_SMALL) + tscalenew = tscalefit; + else if ((tscalenew - 1.0f) * (tscaleold - 1.0f) < 0) + tscalenew = 1.0f; + else if ((tscalenew - 2.0f) * (tscaleold - 2.0f) < 0) + tscalenew = 2.0f; + + float tscalemax, tscalemin; // the zoom soft limits + const float tscaletop = 16.0f; // the zoom hard limits + const float tscalefloor = MIN(0.5f * tscalefit, 1.0f); + + switch (image_size) // here we set the logic of zoom limits + { + case SIZE_LARGE: + tscalemax = constrained + ? (tscaleold > 2.0f + ? tscaletop + : (tscaleold > 1.0f ? 2.0f : 1.0f)) + : tscaletop; + tscalemin = constrained + ? (tscaleold < tscalefit + ? tscalefloor + : tscalefit) + : tscalefloor; + break; + case SIZE_MEDIUM: + tscalemax = constrained + ? (tscaleold > 2.0f + ? tscaletop + : 2.0f) + : tscaletop; + tscalemin = constrained + ? (tscaleold < tscalefit + ? tscalefloor + : tscalefit) + : tscalefloor; + break; + case SIZE_SMALL: + tscalemax = constrained + ? (tscaleold > 2.0f + ? tscaletop + : tscalefit) + : tscaletop; + tscalemin = tscalefloor; + break; + } + + // we enforce the zoom limits + tscalenew = up + ? MIN(tscalenew, tscalemax) + : MAX(tscalenew, tscalemin); + + return tscalenew; } -void dt_dev_get_pointer_zoom_pos(dt_develop_t *dev, +void dt_dev_zoom_move(dt_dev_viewport_t *port, + dt_dev_zoom_t zoom, + float scale, + int closeup, + float x, + float y, + gboolean constrain) +{ + dt_develop_t *dev = darktable.develop; + + dt_pthread_mutex_lock(&(darktable.control->global_mutex)); + dt_pthread_mutex_lock(&dev->history_mutex); + + float pts[2] = { port->zoom_x, port->zoom_y }; + dt_dev_distort_transform_locked(darktable.develop, port->pipe, 0.0f, DT_DEV_TRANSFORM_DIR_ALL, pts, 1); + + const float old_pts0 = pts[0]; + const float old_pts1 = pts[1]; + const float old_zoom_scale = port->zoom_scale; + const dt_dev_zoom_t old_zoom = port->zoom; + int old_closeup = port->closeup; + + int procw, proch; + dt_dev_get_processed_size(port, &procw, &proch); + + float zoom_x = pts[0] / procw - 0.5f; + float zoom_y = pts[1] / proch - 0.5f; + + float cur_scale = dt_dev_get_zoom_scale(port, port->zoom, 1<<port->closeup, 0); + + if(zoom == DT_ZOOM_POSITION) + { + zoom_x = x; + zoom_y = y; + } + else if(zoom == DT_ZOOM_MOVE) + { + zoom_x += scale * x / (procw * cur_scale); + zoom_y += scale * y / (proch * cur_scale); + if(closeup) ++old_closeup; // force refresh + } + else + { + const float ppd = port->ppd; + const gboolean low_ppd = (ppd == 1); + + if(zoom == DT_ZOOM_1 && closeup == -1) + closeup = port->zoom != DT_ZOOM_1 || port->closeup ? 0 : 1; + else if(zoom == DT_ZOOM_1 && closeup == -2) + { + // zoom to 1:1 2:1 and back + const float tscale = cur_scale * ppd; + closeup = 0; + + const float scalefit = dt_dev_get_zoom_scale(port, DT_ZOOM_FIT, 1, 0) * ppd; + + // Get config so we can check if the user want to cycle through 100%->200%->FIT or + // only switch between FIT<->100% unless ctrl key is pressed. + const gboolean cycle_zoom_200 = + dt_conf_get_bool("darkroom/mouse/middle_button_cycle_zoom_to_200_percent"); + + // We are at 200% or above. + if(tscale > 1.9999f) + { + zoom = (cycle_zoom_200 || !constrain) ? DT_ZOOM_FIT : DT_ZOOM_1; + } + else if(tscale > 0.9999f) // >= 100% + { + zoom = (cycle_zoom_200 || !constrain) ? DT_ZOOM_1 : DT_ZOOM_FIT; + closeup = (low_ppd && (cycle_zoom_200 || !constrain)) ? 1 : 0; + } + else if(((tscale > scalefit) || (tscale < scalefit)) && !cycle_zoom_200) + { + zoom = !constrain ? DT_ZOOM_1 : DT_ZOOM_FIT; + } + else + { + zoom = low_ppd ? DT_ZOOM_1 : DT_ZOOM_FREE; + if(!cycle_zoom_200) + closeup = low_ppd && !constrain ? 1 : 0; + } + + scale = low_ppd ? dt_dev_get_zoom_scale(port, zoom, 1, 0) : (1.0f / ppd); + } + else if(zoom == DT_ZOOM_SCROLL) + { + zoom = DT_ZOOM_FREE; + const float fitscale = dt_dev_get_zoom_scale(port, DT_ZOOM_FIT, 1.0, 0); + const float tscaleold = cur_scale * ppd; + const float tscale = _calculate_new_scroll_zoom_tscale (closeup, constrain, tscaleold, fitscale * ppd); + scale = tscale / ppd; + + closeup = 0; + if(tscale < 1.9999) + scale = tscale / ppd; + else + { + // pixel doubling instead of interpolation at >= 200% lodpi, >= 400% hidpi + zoom = DT_ZOOM_1; + scale = 1.0f; + if(low_ppd) closeup++; + if(tscale > 3.9999f) closeup++; + if(tscale > 7.9999f) closeup++; + if(tscale > 15.9999) closeup++; + } + + if(fabsf(scale - 1.0f) < 0.001f) zoom = DT_ZOOM_1; + if(fabsf(scale - fitscale) < 0.001f) zoom = DT_ZOOM_FIT; + } + else if(zoom == DT_ZOOM_FULL_PREVIEW) + { + dev->full_preview_last_zoom = port->zoom; + dev->full_preview_last_closeup = port->closeup; + dev->full_preview_last_zoom_x = zoom_x; + dev->full_preview_last_zoom_y = zoom_y; + zoom = DT_ZOOM_FIT; + scale = port->zoom_scale; + } + else if(zoom == DT_ZOOM_RESTORE) + { + zoom = dev->full_preview_last_zoom; + closeup = dev->full_preview_last_closeup; + zoom_x = dev->full_preview_last_zoom_x; + zoom_y = dev->full_preview_last_zoom_y; + scale = port->zoom_scale; + } + + port->closeup = closeup; + port->zoom_scale = scale; + port->zoom = zoom; + } + + if(zoom == DT_ZOOM_FIT || !procw || !proch) + zoom_x = zoom_y = 0.0f; + else + { + float new_scale = dt_dev_get_zoom_scale(port, port->zoom, 1<<port->closeup, 0); + + float boxw = port->width / (procw * new_scale); + float boxh = port->height / (proch * new_scale); + + if(x >= 0.0f && y >= 0.0f) + { + // adjust offset from center so same point under cursor + float mouse_off_x = (x - port->border_size - 0.5f * port->width) / procw; + float mouse_off_y = (y - port->border_size - 0.5f * port->height) / proch; + zoom_x += mouse_off_x / cur_scale - mouse_off_x / new_scale; + zoom_y += mouse_off_y / cur_scale - mouse_off_y / new_scale; + } + + zoom_x = boxw > 1.0f ? 0.0f : CLAMP(zoom_x, boxw / 2 - .5, .5 - boxw / 2); + zoom_y = boxh > 1.0f ? 0.0f : CLAMP(zoom_y, boxh / 2 - .5, .5 - boxh / 2); + } + + pts[0] = (zoom_x + 0.5f) * procw; + pts[1] = (zoom_y + 0.5f) * proch; + gboolean has_moved = fabsf(pts[0] - old_pts0) + fabsf(pts[1] - old_pts1) > 0.5f; + if(has_moved) + { + dt_dev_distort_backtransform_locked(dev, port->pipe, 0.0f, DT_DEV_TRANSFORM_DIR_ALL, pts, 1); + port->zoom_x = pts[0]; + port->zoom_y = pts[1]; + } + + dt_pthread_mutex_unlock(&dev->history_mutex); + dt_pthread_mutex_unlock(&(darktable.control->global_mutex)); + + if(!has_moved + && fabsf(old_zoom_scale - port->zoom_scale) < 0.01f + && old_zoom == port->zoom + && old_closeup == port->closeup) + return; + + if(port == &dev->full) + { + dt_dev_invalidate(dev); // FIXME not needed? redraw should determines if needs new calculation + dt_control_queue_redraw_center(); + dt_control_navigation_redraw(); + } + else if(port == &dev->preview2 && dev->second_wnd) + { + dev->preview2.pipe->status = DT_DEV_PIXELPIPE_DIRTY; + dt_control_queue_redraw_widget(dev->second_wnd); + } +} + +void dt_dev_get_pointer_zoom_pos(dt_dev_viewport_t *port, const float px, const float py, float *zoom_x, - float *zoom_y) + float *zoom_y, + float *zoom_scale) { dt_dev_zoom_t zoom; int closeup = 0, procw = 0, proch = 0; float zoom2_x = 0.0f, zoom2_y = 0.0f; - zoom = dt_control_get_dev_zoom(); - closeup = dt_control_get_dev_closeup(); - zoom2_x = dt_control_get_dev_zoom_x(); - zoom2_y = dt_control_get_dev_zoom_y(); - dt_dev_get_processed_size(dev, &procw, &proch); - const float scale = dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 0); + dt_dev_get_viewport_params(port, &zoom, &closeup, &zoom2_x, &zoom2_y); + dt_dev_get_processed_size(port, &procw, &proch); + const float scale = dt_dev_get_zoom_scale(port, zoom, 1<<closeup, 0); + const double tb = port->border_size; // offset from center now (current zoom_{x,y} points there) - const float mouse_off_x = px - .5 * dev->width, mouse_off_y = py - .5 * dev->height; + const float mouse_off_x = px - tb - .5 * port->width; + const float mouse_off_y = py - tb - .5 * port->height; zoom2_x += mouse_off_x / (procw * scale); zoom2_y += mouse_off_y / (proch * scale); - *zoom_x = zoom2_x; - *zoom_y = zoom2_y; + *zoom_x = zoom2_x + 0.5f; + *zoom_y = zoom2_y + 0.5f; + *zoom_scale = dt_dev_get_zoom_scale(port, zoom, 1<<closeup, 1); +} + +void dt_dev_get_viewport_params(dt_dev_viewport_t *port, + dt_dev_zoom_t *zoom, + int *closeup, + float *x, + float *y) +{ + dt_pthread_mutex_lock(&(darktable.control->global_mutex)); + + if(zoom) *zoom = port->zoom; + if(closeup) *closeup = port->closeup; + + if(x && y && port->pipe) + { + float pts[2] = { port->zoom_x, port->zoom_y }; + dt_dev_distort_transform_plus(darktable.develop, port->pipe, + 0.0f, DT_DEV_TRANSFORM_DIR_ALL, pts, 1); + *x = pts[0] / port->pipe->processed_width - 0.5f; + *y = pts[1] / port->pipe->processed_height - 0.5f; + } + dt_pthread_mutex_unlock(&(darktable.control->global_mutex)); } -gboolean dt_dev_is_current_image(dt_develop_t *dev, const dt_imgid_t imgid) +gboolean dt_dev_is_current_image(dt_develop_t *dev, + const dt_imgid_t imgid) { return (dev->image_storage.id == imgid) ? TRUE : FALSE; } @@ -2628,7 +2799,8 @@ dt_dev_add_history_item(exposure->dev, exposure, TRUE); } -void dt_dev_exposure_set_exposure(dt_develop_t *dev, const float exposure) +void dt_dev_exposure_set_exposure(dt_develop_t *dev, + const float exposure) { dt_dev_proxy_exposure_t *instance = find_last_exposure_instance(dev); @@ -2646,7 +2818,8 @@ return 0.0; } -void dt_dev_exposure_set_black(dt_develop_t *dev, const float black) +void dt_dev_exposure_set_black(dt_develop_t *dev, + const float black) { dt_dev_proxy_exposure_t *instance = find_last_exposure_instance(dev); @@ -2664,7 +2837,8 @@ return 0.0; } -void dt_dev_modulegroups_set(dt_develop_t *dev, const uint32_t group) +void dt_dev_modulegroups_set(dt_develop_t *dev, + const uint32_t group) { if(dev->proxy.modulegroups.module && dev->proxy.modulegroups.set @@ -2712,7 +2886,8 @@ dev->proxy.modulegroups.update_visibility(dev->proxy.modulegroups.module); } -gboolean dt_dev_modulegroups_is_visible(dt_develop_t *dev, gchar *module) +gboolean dt_dev_modulegroups_is_visible(dt_develop_t *dev, + gchar *module) { if(dev->proxy.modulegroups.module && dev->proxy.modulegroups.test_visible) return dev->proxy.modulegroups.test_visible(dev->proxy.modulegroups.module, module); @@ -2742,8 +2917,8 @@ } void dt_dev_masks_list_remove(dt_develop_t *dev, - dt_mask_id_t formid, - dt_mask_id_t parentid) + const dt_mask_id_t formid, + const dt_mask_id_t parentid) { if(dev->proxy.masks.module && dev->proxy.masks.list_remove) dev->proxy.masks.list_remove(dev->proxy.masks.module, formid, parentid); @@ -2756,12 +2931,8 @@ dev->proxy.masks.selection_change(dev->proxy.masks.module, module, selectid); } -void dt_dev_invalidate_from_gui(dt_develop_t *dev) -{ - dt_dev_pop_history_items(darktable.develop, darktable.develop->history_end); -} - -void dt_dev_average_delay_update(const dt_times_t *start, uint32_t *average_delay) +void dt_dev_average_delay_update(const dt_times_t *start, + uint32_t *average_delay) { dt_times_t end; dt_get_times(&end); @@ -2772,11 +2943,14 @@ /** duplicate a existent module */ -dt_iop_module_t *dt_dev_module_duplicate(dt_develop_t *dev, dt_iop_module_t *base) +dt_iop_module_t *dt_dev_module_duplicate_ext(dt_develop_t *dev, + dt_iop_module_t *base, + const gboolean reorder_iop) { // we create the new module dt_iop_module_t *module = (dt_iop_module_t *)calloc(1, sizeof(dt_iop_module_t)); - if(dt_iop_load_module(module, base->so, base->dev)) return NULL; + if(dt_iop_load_module(module, base->so, base->dev)) + return NULL; module->instance = base->instance; // we set the multi-instance priority and the iop order @@ -2829,23 +3003,28 @@ // the multi instance name g_strlcpy(module->multi_name, mname, sizeof(module->multi_name)); - module->multi_name_hand_edited = 0; + module->multi_name_hand_edited = FALSE; // we insert this module into dev->iop base->dev->iop = g_list_insert_sorted(base->dev->iop, module, dt_sort_iop_by_order); // always place the new instance after the base one - if(!dt_ioppr_move_iop_after(base->dev, module, base)) + if(reorder_iop && !dt_ioppr_move_iop_after(base->dev, module, base)) { dt_print(DT_DEBUG_ALWAYS, "[dt_dev_module_duplicate] can't move new instance after the base one\n"); - dt_control_log(_("module duplicate, can't move new instance after the base one\n")); + dt_control_log(_("duplicate module, can't move new instance after the base one\n")); } // that's all. rest of insertion is gui work ! return module; } +dt_iop_module_t *dt_dev_module_duplicate(dt_develop_t *dev, dt_iop_module_t *base) +{ + return dt_dev_module_duplicate_ext(dev, base, TRUE); +} + void dt_dev_invalidate_history_module(GList *list, dt_iop_module_t *module) { @@ -2859,7 +3038,8 @@ } } -void dt_dev_module_remove(dt_develop_t *dev, dt_iop_module_t *module) +void dt_dev_module_remove(dt_develop_t *dev, + dt_iop_module_t *module) { // if(darktable.gui->reset) return; dt_pthread_mutex_lock(&dev->history_mutex); @@ -2922,28 +3102,32 @@ return label; } -int dt_dev_distort_transform(dt_develop_t *dev, - float *points, - const size_t points_count) +gboolean dt_dev_distort_transform(dt_develop_t *dev, + float *points, + const size_t points_count) { return dt_dev_distort_transform_plus (dev, dev->preview_pipe, 0.0f, DT_DEV_TRANSFORM_DIR_ALL, points, points_count); } -int dt_dev_distort_backtransform(dt_develop_t *dev, - float *points, - const size_t points_count) + +gboolean dt_dev_distort_backtransform(dt_develop_t *dev, + float *points, + const size_t points_count) { return dt_dev_distort_backtransform_plus (dev, dev->preview_pipe, 0.0f, DT_DEV_TRANSFORM_DIR_ALL, points, points_count); } -// only call directly or indirectly from dt_dev_distort_transform_plus, so that it runs with the history locked -int dt_dev_distort_transform_locked(dt_develop_t *dev, - dt_dev_pixelpipe_t *pipe, - const double iop_order, - const int transf_direction, - float *points, - const size_t points_count) +// only call directly or indirectly from +// dt_dev_distort_transform_plus, so that it runs with the history +// locked +gboolean dt_dev_distort_transform_locked + (dt_develop_t *dev, + dt_dev_pixelpipe_t *pipe, + const double iop_order, + const dt_dev_transform_direction_t transf_direction, + float *points, + const size_t points_count) { GList *modules = pipe->iop; GList *pieces = pipe->nodes; @@ -2951,56 +3135,57 @@ { if(!pieces) { - return 0; + return FALSE; } dt_iop_module_t *module = (dt_iop_module_t *)(modules->data); dt_dev_pixelpipe_iop_t *piece = (dt_dev_pixelpipe_iop_t *)(pieces->data); if(piece->enabled + && piece->data && ((transf_direction == DT_DEV_TRANSFORM_DIR_ALL) - || (transf_direction == DT_DEV_TRANSFORM_DIR_FORW_INCL && module->iop_order >= iop_order) - || (transf_direction == DT_DEV_TRANSFORM_DIR_FORW_EXCL && module->iop_order > iop_order) - || (transf_direction == DT_DEV_TRANSFORM_DIR_BACK_INCL && module->iop_order <= iop_order) - || (transf_direction == DT_DEV_TRANSFORM_DIR_BACK_EXCL && module->iop_order < iop_order)) - && !(dev->gui_module && dev->gui_module != module - && (dev->gui_module->operation_tags_filter() & module->operation_tags()))) + || (transf_direction == DT_DEV_TRANSFORM_DIR_FORW_INCL + && module->iop_order >= iop_order) + || (transf_direction == DT_DEV_TRANSFORM_DIR_FORW_EXCL + && module->iop_order > iop_order) + || (transf_direction == DT_DEV_TRANSFORM_DIR_BACK_INCL + && module->iop_order <= iop_order) + || (transf_direction == DT_DEV_TRANSFORM_DIR_BACK_EXCL + && module->iop_order < iop_order)) + && !(dt_iop_module_is_skipped(dev, module) + && (pipe->type & DT_DEV_PIXELPIPE_BASIC))) { module->distort_transform(module, piece, points, points_count); } modules = g_list_next(modules); pieces = g_list_next(pieces); } - return 1; + return TRUE; } -int dt_dev_distort_transform_plus(dt_develop_t *dev, - dt_dev_pixelpipe_t *pipe, - const double iop_order, - const int transf_direction, - float *points, - const size_t points_count) +gboolean dt_dev_distort_transform_plus + (dt_develop_t *dev, + dt_dev_pixelpipe_t *pipe, + const double iop_order, + const dt_dev_transform_direction_t transf_direction, + float *points, + const size_t points_count) { dt_pthread_mutex_lock(&dev->history_mutex); - const int success = dt_dev_distort_transform_locked(dev,pipe,iop_order,transf_direction,points,points_count); - - if(success - && (dev->preview_downsampling != 1.0f) - && (transf_direction == DT_DEV_TRANSFORM_DIR_ALL - || transf_direction == DT_DEV_TRANSFORM_DIR_FORW_EXCL - || transf_direction == DT_DEV_TRANSFORM_DIR_FORW_INCL)) - for(size_t idx=0; idx < 2 * points_count; idx++) - points[idx] *= dev->preview_downsampling; - + dt_dev_distort_transform_locked(dev, pipe, iop_order, transf_direction, + points, points_count); dt_pthread_mutex_unlock(&dev->history_mutex); - return 1; + return TRUE; } -// only call directly or indirectly from dt_dev_distort_transform_plus, so that it runs with the history locked -int dt_dev_distort_backtransform_locked(dt_develop_t *dev, - dt_dev_pixelpipe_t *pipe, - const double iop_order, - const int transf_direction, - float *points, - const size_t points_count) +// only call directly or indirectly from +// dt_dev_distort_transform_plus, so that it runs with the history +// locked +gboolean dt_dev_distort_backtransform_locked + (dt_develop_t *dev, + dt_dev_pixelpipe_t *pipe, + const double iop_order, + const dt_dev_transform_direction_t transf_direction, + float *points, + const size_t points_count) { GList *modules = g_list_last(pipe->iop); GList *pieces = g_list_last(pipe->nodes); @@ -3008,11 +3193,12 @@ { if(!pieces) { - return 0; + return FALSE; } dt_iop_module_t *module = (dt_iop_module_t *)(modules->data); dt_dev_pixelpipe_iop_t *piece = (dt_dev_pixelpipe_iop_t *)(pieces->data); if(piece->enabled + && piece->data && ((transf_direction == DT_DEV_TRANSFORM_DIR_ALL) || (transf_direction == DT_DEV_TRANSFORM_DIR_FORW_INCL && module->iop_order >= iop_order) @@ -3022,32 +3208,27 @@ && module->iop_order <= iop_order) || (transf_direction == DT_DEV_TRANSFORM_DIR_BACK_EXCL && module->iop_order < iop_order)) - && !(dev->gui_module && dev->gui_module != module - && (dev->gui_module->operation_tags_filter() & module->operation_tags()))) + && !(dt_iop_module_is_skipped(dev, module) + && (pipe->type & DT_DEV_PIXELPIPE_BASIC))) { module->distort_backtransform(module, piece, points, points_count); } modules = g_list_previous(modules); pieces = g_list_previous(pieces); } - return 1; + return TRUE; } -int dt_dev_distort_backtransform_plus(dt_develop_t *dev, - dt_dev_pixelpipe_t *pipe, - const double iop_order, - const int transf_direction, - float *points, - const size_t points_count) +gboolean dt_dev_distort_backtransform_plus + (dt_develop_t *dev, + dt_dev_pixelpipe_t *pipe, + const double iop_order, + const dt_dev_transform_direction_t transf_direction, + float *points, + const size_t points_count) { dt_pthread_mutex_lock(&dev->history_mutex); - if((dev->preview_downsampling != 1.0f) && (transf_direction == DT_DEV_TRANSFORM_DIR_ALL - || transf_direction == DT_DEV_TRANSFORM_DIR_FORW_EXCL - || transf_direction == DT_DEV_TRANSFORM_DIR_FORW_INCL)) - for(size_t idx=0; idx < 2 * points_count; idx++) - points[idx] /= dev->preview_downsampling; - - const int success = dt_dev_distort_backtransform_locked + const gboolean success = dt_dev_distort_backtransform_locked (dev, pipe, iop_order, transf_direction, points, points_count); dt_pthread_mutex_unlock(&dev->history_mutex); @@ -3079,7 +3260,7 @@ uint64_t dt_dev_hash_plus(dt_develop_t *dev, struct dt_dev_pixelpipe_t *pipe, const double iop_order, - const int transf_direction) + const dt_dev_transform_direction_t transf_direction) { uint64_t hash = 5381; dt_pthread_mutex_lock(&dev->history_mutex); @@ -3113,12 +3294,12 @@ return hash; } -int dt_dev_wait_hash(dt_develop_t *dev, - struct dt_dev_pixelpipe_t *pipe, - const double iop_order, - const int transf_direction, - dt_pthread_mutex_t *lock, - const volatile uint64_t *const hash) +gboolean dt_dev_wait_hash(dt_develop_t *dev, + struct dt_dev_pixelpipe_t *pipe, + const double iop_order, + const dt_dev_transform_direction_t transf_direction, + dt_pthread_mutex_t *lock, + const volatile uint64_t *const hash) { const int usec = 5000; int nloop; @@ -3159,12 +3340,12 @@ return FALSE; } -int dt_dev_sync_pixelpipe_hash(dt_develop_t *dev, - struct dt_dev_pixelpipe_t *pipe, - const double iop_order, - const int transf_direction, - dt_pthread_mutex_t *lock, - const volatile uint64_t *const hash) +gboolean dt_dev_sync_pixelpipe_hash(dt_develop_t *dev, + struct dt_dev_pixelpipe_t *pipe, + const double iop_order, + const dt_dev_transform_direction_t transf_direction, + dt_pthread_mutex_t *lock, + const volatile uint64_t *const hash) { // first wait for matching hash values if(dt_dev_wait_hash(dev, pipe, iop_order, transf_direction, lock, hash)) @@ -3191,7 +3372,7 @@ uint64_t dt_dev_hash_distort_plus(dt_develop_t *dev, struct dt_dev_pixelpipe_t *pipe, const double iop_order, - const int transf_direction) + const dt_dev_transform_direction_t transf_direction) { uint64_t hash = 5381; dt_pthread_mutex_lock(&dev->history_mutex); @@ -3226,12 +3407,13 @@ return hash; } -int dt_dev_wait_hash_distort(dt_develop_t *dev, - struct dt_dev_pixelpipe_t *pipe, - const double iop_order, - const int transf_direction, - dt_pthread_mutex_t *lock, - const volatile uint64_t *const hash) +/* +gboolean dt_dev_wait_hash_distort(dt_develop_t *dev, + struct dt_dev_pixelpipe_t *pipe, + const double iop_order, + const dt_dev_transform_direction_t transf_direction, + dt_pthread_mutex_t *lock, + const volatile uint64_t *const hash) { const int usec = 5000; int nloop = 0; @@ -3272,12 +3454,13 @@ return FALSE; } -int dt_dev_sync_pixelpipe_hash_distort(dt_develop_t *dev, - struct dt_dev_pixelpipe_t *pipe, - const double iop_order, - const int transf_direction, - dt_pthread_mutex_t *lock, - const volatile uint64_t *const hash) +gboolean dt_dev_sync_pixelpipe_hash_distort + (dt_develop_t *dev, + struct dt_dev_pixelpipe_t *pipe, + const double iop_order, + const dt_dev_transform_direction_t transf_direction, + dt_pthread_mutex_t *lock, + const volatile uint64_t *const hash) { // first wait for matching hash values if(dt_dev_wait_hash_distort(dev, pipe, iop_order, transf_direction, lock, hash)) @@ -3295,7 +3478,7 @@ // no way to get pixelpipes in sync return FALSE; } - +*/ // set the module list order void dt_dev_reorder_gui_module_list(dt_develop_t *dev) { @@ -3317,214 +3500,41 @@ } } -//----------------------------------------------------------- -// second darkroom window -//----------------------------------------------------------- - -dt_dev_zoom_t dt_second_window_get_dev_zoom(dt_develop_t *dev) -{ - return dev->second_window.zoom; -} - -void dt_second_window_set_dev_zoom(dt_develop_t *dev, const dt_dev_zoom_t value) -{ - dev->second_window.zoom = value; -} - -int dt_second_window_get_dev_closeup(dt_develop_t *dev) -{ - return dev->second_window.closeup; -} - -void dt_second_window_set_dev_closeup(dt_develop_t *dev, const int value) -{ - dev->second_window.closeup = value; -} - -float dt_second_window_get_dev_zoom_x(dt_develop_t *dev) -{ - return dev->second_window.zoom_x; -} - -void dt_second_window_set_dev_zoom_x(dt_develop_t *dev, const float value) -{ - dev->second_window.zoom_x = value; -} - -float dt_second_window_get_dev_zoom_y(dt_develop_t *dev) -{ - return dev->second_window.zoom_y; -} - -void dt_second_window_set_dev_zoom_y(dt_develop_t *dev, const float value) -{ - dev->second_window.zoom_y = value; -} - -float dt_second_window_get_free_zoom_scale(dt_develop_t *dev) -{ - return dev->second_window.zoom_scale; -} - -float dt_second_window_get_zoom_scale(dt_develop_t *dev, - const dt_dev_zoom_t zoom, - const int closeup_factor, - const int preview) -{ - float zoom_scale = 0.0f; - - const float w = preview - ? dev->preview_pipe->processed_width - : dev->preview2_pipe->processed_width; - - const float h = preview - ? dev->preview_pipe->processed_height - : dev->preview2_pipe->processed_height; - - const float ps = dev->preview2_pipe->backbuf_width - ? dev->preview2_pipe->processed_width / (float)dev->preview_pipe->processed_width - : dev->preview_pipe->iscale; - - switch(zoom) - { - case DT_ZOOM_FIT: - zoom_scale = fminf(dev->second_window.width / w, dev->second_window.height / h); - break; - case DT_ZOOM_FILL: - zoom_scale = fmaxf(dev->second_window.width / w, dev->second_window.height / h); - break; - case DT_ZOOM_1: - zoom_scale = closeup_factor; - if(preview) zoom_scale *= ps; - break; - default: // DT_ZOOM_FREE - zoom_scale = dt_second_window_get_free_zoom_scale(dev); - if(preview) zoom_scale *= ps; - break; - } - if(preview) zoom_scale /= dev->preview_downsampling; - return zoom_scale; -} - -void dt_second_window_set_zoom_scale(dt_develop_t *dev, const float value) -{ - dev->second_window.zoom_scale = value; -} - -void dt_second_window_get_processed_size(const dt_develop_t *dev, int *procw, int *proch) -{ - if(!dev) return; - - // if preview2 is processed, lets return its size - if(dev->preview2_pipe && dev->preview2_pipe->processed_width) - { - *procw = dev->preview2_pipe->processed_width; - *proch = dev->preview2_pipe->processed_height; - return; - } - - // fallback on preview pipe - if(dev->preview_pipe && dev->preview_pipe->processed_width) - { - const float scale = (dev->preview_pipe->iscale / dev->preview_downsampling); - *procw = scale * dev->preview_pipe->processed_width; - *proch = scale * dev->preview_pipe->processed_height; - return; - } - - // no processed pipes, lets return 0 size - *procw = *proch = 0; - return; -} - -void dt_second_window_check_zoom_bounds(dt_develop_t *dev, - float *zoom_x, - float *zoom_y, - const dt_dev_zoom_t zoom, - const int closeup, - float *boxww, - float *boxhh) -{ - int procw = 0, proch = 0; - dt_second_window_get_processed_size(dev, &procw, &proch); - float boxw = 1.0f, boxh = 1.0f; // viewport in normalised space - // if(zoom == DT_ZOOM_1) - // { - // const float imgw = (closeup ? 2 : 1)*procw; - // const float imgh = (closeup ? 2 : 1)*proch; - // const float devw = MIN(imgw, dev->width); - // const float devh = MIN(imgh, dev->height); - // boxw = fminf(1.0, devw/imgw); - // boxh = fminf(1.0, devh/imgh); - // } - if(zoom == DT_ZOOM_FIT) - { - *zoom_x = *zoom_y = 0.0f; - boxw = boxh = 1.0f; - } - else - { - const float scale = dt_second_window_get_zoom_scale(dev, zoom, 1 << closeup, 0); - const float imgw = procw; - const float imgh = proch; - const float devw = dev->second_window.width; - const float devh = dev->second_window.height; - boxw = devw / (imgw * scale); - boxh = devh / (imgh * scale); - } - - if(*zoom_x < boxw / 2 - .5) *zoom_x = boxw / 2 - .5; - if(*zoom_x > .5 - boxw / 2) *zoom_x = .5 - boxw / 2; - if(*zoom_y < boxh / 2 - .5) *zoom_y = boxh / 2 - .5; - if(*zoom_y > .5 - boxh / 2) *zoom_y = .5 - boxh / 2; - if(boxw > 1.0) *zoom_x = 0.0f; - if(boxh > 1.0) *zoom_y = 0.0f; - - if(boxww) *boxww = boxw; - if(boxhh) *boxhh = boxh; -} - void dt_dev_undo_start_record(dt_develop_t *dev) { - const dt_view_t *cv = dt_view_manager_get_current_view(darktable.view_manager); - /* record current history state : before change (needed for undo) */ - if(dev->gui_attached && cv->view((dt_view_t *)cv) == DT_VIEW_DARKROOM) - DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_DEVELOP_HISTORY_WILL_CHANGE); + if(dev->gui_attached && dt_view_get_current() == DT_VIEW_DARKROOM) + DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, + DT_SIGNAL_DEVELOP_HISTORY_WILL_CHANGE); dev->gui_previous_target = NULL; } void dt_dev_undo_end_record(dt_develop_t *dev) { - const dt_view_t *cv = dt_view_manager_get_current_view(darktable.view_manager); - /* record current history state : after change (needed for undo) */ - if(dev->gui_attached && cv->view((dt_view_t *)cv) == DT_VIEW_DARKROOM) + if(dev->gui_attached && dt_view_get_current() == DT_VIEW_DARKROOM) DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_DEVELOP_HISTORY_CHANGE); } -void dt_dev_image_ext(const dt_imgid_t imgid, - const size_t width, - const size_t height, - const int history_end, - uint8_t **buf, - size_t *processed_width, - size_t *processed_height, - const int border_size, - const gboolean iso_12646, - const int32_t snapshot_id) +void dt_dev_image(const dt_imgid_t imgid, + const size_t width, + const size_t height, + const int history_end, + uint8_t **buf, + float *scale, + size_t *buf_width, + size_t *buf_height, + float *zoom_x, + float *zoom_y, + const int32_t snapshot_id) { dt_develop_t dev; dt_dev_init(&dev, TRUE); - dev.border_size = border_size; - dev.iso_12646.enabled = iso_12646; - - // create the full pipe - dev.gui_attached = FALSE; - dt_dev_pixelpipe_init(dev.pipe); + dt_dev_pixelpipe_t *pipe = dev.full.pipe; + pipe->type |= DT_DEV_PIXELPIPE_IMAGE; // load image and set history_end dt_dev_load_image_ext(&dev, imgid, snapshot_id); @@ -3532,43 +3542,78 @@ if(history_end != -1 && snapshot_id == -1) dt_dev_pop_history_items_ext(&dev, history_end); - // configure the actual dev width & height + dev.full = darktable.develop->full; + dev.full.pipe = pipe; - dt_dev_configure(&dev, width, height); + if(!zoom_x && !zoom_y) + { + dev.full.zoom = DT_ZOOM_FIT; + dev.full.width = width; + dev.full.height = height; + dev.full.ppd = 1.0; + dev.full.iso_12646 = FALSE; + } // process the pipe - dt_dev_process_image_job(&dev); + dt_dev_process_image_job(&dev, &dev.full, pipe, -1); - // record resulting image and dimentions + // record resulting image and dimensions const uint32_t bufsize = - sizeof(uint32_t) * dev.pipe->backbuf_width * dev.pipe->backbuf_height; + sizeof(uint32_t) * pipe->backbuf_width * pipe->backbuf_height; *buf = dt_alloc_align(64, bufsize); - memcpy(*buf, dev.pipe->backbuf, bufsize); - *processed_width = dev.pipe->backbuf_width; - *processed_height = dev.pipe->backbuf_height; + memcpy(*buf, pipe->backbuf, bufsize); - // we take the backbuf, avoid it to be released + if(buf_width) *buf_width = pipe->backbuf_width; + if(buf_height) *buf_height = pipe->backbuf_height; + if(scale) *scale = pipe->backbuf_scale; + if(zoom_x) *zoom_x = pipe->backbuf_zoom_x; + if(zoom_y) *zoom_y = pipe->backbuf_zoom_y; dt_dev_cleanup(&dev); } -void dt_dev_image(const dt_imgid_t imgid, - const size_t width, - const size_t height, - const int history_end, - uint8_t **buf, - size_t *processed_width, - size_t *processed_height) +gboolean dt_dev_equal_chroma(const float *f, const double *d) { - // create a dev + return feqf(f[0], (float)d[0], 0.00001) + && feqf(f[1], (float)d[1], 0.00001) + && feqf(f[2], (float)d[2], 0.00001); +} - dt_dev_image_ext(imgid, width, height, - history_end, - buf, processed_width, processed_height, - darktable.develop->border_size, - darktable.develop->iso_12646.enabled, -1); +gboolean dt_dev_is_D65_chroma(const dt_develop_t *dev) +{ + const dt_dev_chroma_t *chr = &dev->chroma; + const float wb_coeffs[4] = { chr->wb_coeffs[0], + chr->wb_coeffs[1], + chr->wb_coeffs[2], + chr->wb_coeffs[3] }; + return chr->late_correction + ? dt_dev_equal_chroma(wb_coeffs, chr->as_shot) + : dt_dev_equal_chroma(wb_coeffs, chr->D65coeffs); +} + +void dt_dev_reset_chroma(dt_develop_t *dev) +{ + dt_dev_chroma_t *chr = &dev->chroma; + chr->adaptation = NULL; + chr->late_correction = FALSE; + for_four_channels(c) + chr->wb_coeffs[c] = 1.0; +} + +void dt_dev_init_chroma(dt_develop_t *dev) +{ + dt_dev_chroma_t *chr = &dev->chroma; + chr->adaptation = NULL; + chr->temperature = NULL; + chr->late_correction = FALSE; + for_four_channels(c) + { + chr->wb_coeffs[c] = 1.0; + chr->D65coeffs[c] = 1.0; + chr->as_shot[c] = 1.0; + } } // clang-format off diff -Nru darktable-4.4.2/src/develop/develop.h darktable-4.6.1/src/develop/develop.h --- darktable-4.4.2/src/develop/develop.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/develop.h 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2009-2021 darktable developers. + Copyright (C) 2009-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -91,14 +91,6 @@ DT_DEV_TRANSFORM_DIR_BACK_EXCL = 4 } dt_dev_transform_direction_t; -typedef enum dt_dev_pixelpipe_status_t -{ - DT_DEV_PIXELPIPE_DIRTY = 0, // history stack changed or image new - DT_DEV_PIXELPIPE_RUNNING = 1, // pixelpipe is running - DT_DEV_PIXELPIPE_VALID = 2, // pixelpipe has finished; valid result - DT_DEV_PIXELPIPE_INVALID = 3 // pixelpipe has finished; invalid result -} dt_dev_pixelpipe_status_t; - typedef enum dt_clipping_preview_mode_t { DT_CLIPPING_PREVIEW_GAMUT = 0, @@ -117,6 +109,54 @@ } dt_dev_proxy_exposure_t; struct dt_dev_pixelpipe_t; +typedef struct dt_dev_viewport_t +{ + GtkWidget *widget; + int32_t orig_width, orig_height; + + // dimensions of window + int width, height; + int32_t border_size; + double dpi, dpi_factor, ppd; + + gboolean iso_12646; + + dt_dev_zoom_t zoom; + int closeup; + float zoom_x, zoom_y; + float zoom_scale; + + // image processing pipeline with caching + struct dt_dev_pixelpipe_t *pipe; +} dt_dev_viewport_t; + +/* keep track on what and where we do chromatic adaptation, used + a) to display warnings in GUI of modules that should probably not be doing + white balance + b) missing required white balance + c) allow late correction of as-shot or modified coeffs to D65 in color-input + but keep processing until then with more reliable (at least for highlights, + raw chromatic aberrations and more. + d) avoids keeping of fixed data in temperature gui data + e) we have 3 coefficients kept here + - the currently used wb_coeffs in temperature module + - D65coeffs and as_shot are read from exif data + f) - late_correction set by temperature if we want to process data as following + If we use the new DT_IOP_TEMP_D65_LATE mode in temperature.c and don#t have + any temp parameters changes later we can calc correction coeffs to modify + as_shot rgb data to D65 +*/ +typedef struct dt_dev_chroma_t +{ + struct dt_iop_module_t *temperature; // always available for GUI reports + struct dt_iop_module_t *adaptation; // set if one module is processing this without blending + + double wb_coeffs[4]; // data actually used by the pipe + double D65coeffs[4]; // both read from exif data or "best guess" + double as_shot[4]; + gboolean late_correction; +} dt_dev_chroma_t; + typedef struct dt_develop_t { gboolean gui_attached; // != 0 if the gui should be notified of changes in hist stack and modules should be @@ -129,25 +169,15 @@ double gui_previous_pipe_time; // time pipe finished after last widget was changed. gboolean focus_hash; // determines whether to start a new history item or to merge down. - gboolean preview_loading, preview2_loading, image_loading, history_updating, image_force_reload, first_load; - gboolean preview_input_changed, preview2_input_changed; - - dt_dev_pixelpipe_status_t image_status, preview_status, preview2_status; + gboolean history_updating, image_force_reload, first_load; + gboolean autosaving; int32_t image_invalid_cnt; uint32_t timestamp; - uint32_t average_delay; uint32_t preview_average_delay; - uint32_t preview2_average_delay; struct dt_iop_module_t *gui_module; // this module claims gui expose/event callbacks. - float preview_downsampling; // < 1.0: optionally downsample preview - - // width, height: dimensions of window - int32_t width, height; // image processing pipeline with caching - struct dt_dev_pixelpipe_t *pipe, *preview_pipe, *preview2_pipe; - dt_pthread_mutex_t pipe_mutex, preview_pipe_mutex, - preview2_pipe_mutex; // these are locked while the pipes are still in use + struct dt_dev_pixelpipe_t *preview_pipe; // image under consideration, which // is copied each time an image is changed. this means we have some information @@ -162,7 +192,10 @@ dt_pthread_mutex_t history_mutex; int32_t history_end; GList *history; + // some modules don't want to add new history items while active gboolean history_postpone_invalidate; + // avoid checking for latest added module into history via list traversal + struct dt_iop_module_t *history_last_module; // operations pipeline int32_t iop_instance; @@ -190,15 +223,12 @@ //full preview stuff gboolean full_preview; - int full_preview_last_zoom, full_preview_last_closeup; + dt_dev_zoom_t full_preview_last_zoom; + int full_preview_last_closeup; float full_preview_last_zoom_x, full_preview_last_zoom_y; struct dt_iop_module_t *full_preview_last_module; int full_preview_masks_state; - // darkroom border size - int32_t border_size; - int32_t orig_width, orig_height; - /* proxy for communication between plugins and develop/darkroom */ struct { @@ -215,7 +245,8 @@ { struct dt_lib_module_t *module; /* switch module group */ - void (*set)(struct dt_lib_module_t *self, uint32_t group); + void (*set)(struct dt_lib_module_t *self, + const uint32_t group); /* get current module group */ uint32_t (*get)(struct dt_lib_module_t *self); /* get activated module group */ @@ -225,11 +256,13 @@ const uint32_t group, struct dt_iop_module_t *module); /* switch to modulegroup */ - void (*switch_group)(struct dt_lib_module_t *self, struct dt_iop_module_t *module); + void (*switch_group)(struct dt_lib_module_t *self, + struct dt_iop_module_t *module); /* update modulegroup visibility */ void (*update_visibility)(struct dt_lib_module_t *self); /* test if module is preset in one of the current groups */ - gboolean (*test_visible)(struct dt_lib_module_t *self, gchar *module); + gboolean (*test_visible)(struct dt_lib_module_t *self, + gchar *module); /* add or remove module or widget in current quick access list */ gboolean (*basics_module_toggle)(struct dt_lib_module_t *self, GtkWidget *widget, @@ -242,31 +275,31 @@ struct dt_lib_module_t *module; /* treview list refresh */ void (*list_change)(struct dt_lib_module_t *self); - void (*list_remove)(struct dt_lib_module_t *self, dt_mask_id_t formid, dt_mask_id_t parentid); + void (*list_remove)(struct dt_lib_module_t *self, + const dt_mask_id_t formid, + const dt_mask_id_t parentid); void (*list_update)(struct dt_lib_module_t *self); /* selected forms change */ void (*selection_change)(struct dt_lib_module_t *self, struct dt_iop_module_t *module, const dt_mask_id_t selectid); } masks; + } proxy; - // what is the ID of the module currently doing pipeline chromatic - // adaptation ? this is to prevent multiple modules/instances - // from doing white balance globally. only used to display - // warnings in GUI of modules that should probably not be doing - // white balance - struct dt_iop_module_t *chroma_adaptation; - - // is the WB module using D65 illuminant and not doing full chromatic adaptation ? - gboolean wb_is_D65; - dt_aligned_pixel_t wb_coeffs; + dt_dev_chroma_t chroma; - } proxy; + // for exposing the crop + struct + { + // set by dt_dev_pixelpipe_synch() if an enabled crop module is included in history + struct dt_iop_module_t *exposer; + } cropping; // for the overexposure indicator struct { - GtkWidget *floating_window, *button; // yes, having gtk stuff in here is ugly. live with it. + GtkWidget *floating_window, *button; + // yes, having gtk stuff in here is ugly. live with it. gboolean enabled; dt_dev_overexposed_colorscheme_t colorscheme; @@ -278,7 +311,8 @@ // for the raw overexposure indicator struct { - GtkWidget *floating_window, *button; // yes, having gtk stuff in here is ugly. live with it. + GtkWidget *floating_window, *button; + // yes, having gtk stuff in here is ugly. live with it. gboolean enabled; dt_dev_rawoverexposed_mode_t mode; @@ -290,7 +324,6 @@ struct { GtkWidget *button; // yes, ugliness is the norm. what did you expect ? - gboolean enabled; } iso_12646; // the display profile related things (softproof, gamut check, profiles ...) @@ -299,26 +332,10 @@ GtkWidget *floating_window, *softproof_button, *gamut_button; } profile; - // second darkroom window related things - struct - { - GtkWidget *second_wnd; - GtkWidget *widget; - int32_t orig_width, orig_height; - int width, height; - int32_t border_size; - double dpi, dpi_factor, ppd, ppd_thb; - - GtkWidget *button; - - dt_dev_zoom_t zoom; - int closeup; - float zoom_x, zoom_y; - float zoom_scale; - - double button_x; - double button_y; - } second_window; + GtkWidget *second_wnd, *second_wnd_button; + + // several views of the same image + dt_dev_viewport_t full, preview2; int mask_form_selected_id; // select a mask inside an iop gboolean darkroom_skip_mouse_events; // skip mouse events for masks @@ -329,19 +346,24 @@ void dt_dev_cleanup(dt_develop_t *dev); float dt_dev_get_preview_downsampling(); -void dt_dev_process_image_job(dt_develop_t *dev); -void dt_dev_process_preview_job(dt_develop_t *dev); -void dt_dev_process_preview2_job(dt_develop_t *dev); +void dt_dev_process_image_job(dt_develop_t *dev, + dt_dev_viewport_t *port, + struct dt_dev_pixelpipe_t *pipe, + dt_signal_t signal); // launch jobs above void dt_dev_process_image(dt_develop_t *dev); void dt_dev_process_preview(dt_develop_t *dev); void dt_dev_process_preview2(dt_develop_t *dev); -void dt_dev_load_image(dt_develop_t *dev, const dt_imgid_t imgid); -void dt_dev_reload_image(dt_develop_t *dev, const dt_imgid_t imgid); +void dt_dev_load_image(dt_develop_t *dev, + const dt_imgid_t imgid); +void dt_dev_reload_image(dt_develop_t *dev, + const dt_imgid_t imgid); /** checks if provided imgid is the image currently in develop */ -gboolean dt_dev_is_current_image(dt_develop_t *dev, const dt_imgid_t imgid); -const dt_dev_history_item_t *dt_dev_get_history_item(dt_develop_t *dev, const char *op); +gboolean dt_dev_is_current_image(dt_develop_t *dev, + const dt_imgid_t imgid); +const dt_dev_history_item_t *dt_dev_get_history_item(dt_develop_t *dev, + const char *op); void dt_dev_add_history_item_ext(dt_develop_t *dev, struct dt_iop_module_t *module, const gboolean enable, @@ -374,7 +396,8 @@ const gboolean snapshot); void dt_dev_read_history(dt_develop_t *dev); void dt_dev_free_history_item(gpointer data); -void dt_dev_invalidate_history_module(GList *list, struct dt_iop_module_t *module); +void dt_dev_invalidate_history_module(GList *list, + struct dt_iop_module_t *module); void dt_dev_invalidate(dt_develop_t *dev); // also invalidates preview (which is unaffected by resize/zoom/pan) @@ -385,27 +408,43 @@ void dt_dev_reprocess_center(dt_develop_t *dev); void dt_dev_reprocess_preview(dt_develop_t *dev); -void dt_dev_get_processed_size(const dt_develop_t *dev, int *procw, int *proch); -void dt_dev_check_zoom_bounds(dt_develop_t *dev, - float *zoom_x, - float *zoom_y, - dt_dev_zoom_t zoom, - const int closeup, - float *boxw, - float *boxh); -float dt_dev_get_zoom_scale(dt_develop_t *dev, +gboolean dt_dev_get_preview_size(const dt_develop_t *dev, + float *wd, + float *ht); +void dt_dev_get_processed_size(dt_dev_viewport_t *port, + int *procw, + int *proch); +gboolean dt_dev_get_zoom_bounds(dt_dev_viewport_t *port, + float *zoom_x, + float *zoom_y, + float *boxww, + float *boxhh); +void dt_dev_zoom_move(dt_dev_viewport_t *port, + dt_dev_zoom_t zoom, + float scale, + int closeup, + float x, + float y, + gboolean constrain); +float dt_dev_get_zoom_scale(dt_dev_viewport_t *port, dt_dev_zoom_t zoom, const int closeup_factor, const int mode); -void dt_dev_get_pointer_zoom_pos(dt_develop_t *dev, +float dt_dev_get_zoom_scale_full(void); +float dt_dev_get_zoomed_in(void); +void dt_dev_get_pointer_zoom_pos(dt_dev_viewport_t *port, const float px, const float py, float *zoom_x, - float *zoom_y); + float *zoom_y, + float *zoom_scale); +void dt_dev_get_viewport_params(dt_dev_viewport_t *port, + dt_dev_zoom_t *zoom, + int *closeup, + float *x, + float *y); -void dt_dev_configure(dt_develop_t *dev, int wd, int ht); -void dt_dev_second_window_configure(dt_develop_t *dev, int wd, int ht); -void dt_dev_invalidate_from_gui(dt_develop_t *dev); +void dt_dev_configure(dt_dev_viewport_t *port); /* * exposure plugin hook, set the exposure and the black level @@ -416,11 +455,13 @@ /** reset exposure to defaults */ void dt_dev_exposure_reset_defaults(dt_develop_t *dev); /** set exposure */ -void dt_dev_exposure_set_exposure(dt_develop_t *dev, const float exposure); +void dt_dev_exposure_set_exposure(dt_develop_t *dev, + const float exposure); /** get exposure */ float dt_dev_exposure_get_exposure(dt_develop_t *dev); /** set exposure black level */ -void dt_dev_exposure_set_black(dt_develop_t *dev, const float black); +void dt_dev_exposure_set_black(dt_develop_t *dev, + const float black); /** get exposure black level */ float dt_dev_exposure_get_black(dt_develop_t *dev); @@ -428,7 +469,8 @@ * modulegroups plugin hooks */ /** switch to modulegroup of module */ -void dt_dev_modulegroups_switch(dt_develop_t *dev, struct dt_iop_module_t *module); +void dt_dev_modulegroups_switch(dt_develop_t *dev, + struct dt_iop_module_t *module); /** update modulegroup visibility */ void dt_dev_modulegroups_update_visibility(dt_develop_t *dev); /** set the active modulegroup */ @@ -444,7 +486,8 @@ /** reorder the module list */ void dt_dev_reorder_gui_module_list(dt_develop_t *dev); /** test if the iop is visible in current groups layout **/ -gboolean dt_dev_modulegroups_is_visible(dt_develop_t *dev, gchar *module); +gboolean dt_dev_modulegroups_is_visible(dt_develop_t *dev, + gchar *module); /** add or remove module or widget in current quick access list **/ int dt_dev_modulegroups_basics_module_toggle(dt_develop_t *dev, GtkWidget *widget, @@ -458,7 +501,9 @@ */ void dt_dev_masks_list_change(dt_develop_t *dev); void dt_dev_masks_list_update(dt_develop_t *dev); -void dt_dev_masks_list_remove(dt_develop_t *dev, dt_mask_id_t formid, dt_mask_id_t parentid); +void dt_dev_masks_list_remove(dt_develop_t *dev, + const dt_mask_id_t formid, + const dt_mask_id_t parentid); void dt_dev_masks_selection_change(dt_develop_t *dev, struct dt_iop_module_t *module, const dt_mask_id_t selectid); @@ -467,10 +512,14 @@ * multi instances */ /** duplicate a existent module */ +struct dt_iop_module_t *dt_dev_module_duplicate_ext(dt_develop_t *dev, + struct dt_iop_module_t *base, + const gboolean reorder_iop); struct dt_iop_module_t *dt_dev_module_duplicate(dt_develop_t *dev, struct dt_iop_module_t *base); /** remove an existent module */ -void dt_dev_module_remove(dt_develop_t *dev, struct dt_iop_module_t *module); +void dt_dev_module_remove(dt_develop_t *dev, + struct dt_iop_module_t *module); /** generates item multi-instance name */ gchar *dt_history_item_get_name(const struct dt_iop_module_t *module); @@ -478,43 +527,54 @@ * distort functions */ /** apply all transforms to the specified points (in preview pipe space) */ -int dt_dev_distort_transform(dt_develop_t *dev, float *points, size_t points_count); +gboolean dt_dev_distort_transform + (dt_develop_t *dev, + float *points, + const size_t points_count); /** reverse apply all transforms to the specified points (in preview pipe space) */ -int dt_dev_distort_backtransform(dt_develop_t *dev, float *points, size_t points_count); +gboolean dt_dev_distort_backtransform + (dt_develop_t *dev, + float *points, + const size_t points_count); /** same fct, but we can specify iop with priority between pmin and pmax */ -int dt_dev_distort_transform_plus(dt_develop_t *dev, - struct dt_dev_pixelpipe_t *pipe, - const double iop_order, - const int transf_direction, - float *points, - const size_t points_count); +gboolean dt_dev_distort_transform_plus + (dt_develop_t *dev, + struct dt_dev_pixelpipe_t *pipe, + const double iop_order, + const dt_dev_transform_direction_t transf_direction, + float *points, + const size_t points_count); /** same fct, but can only be called from a distort_transform function * called by dt_dev_distort_transform_plus */ -int dt_dev_distort_transform_locked(dt_develop_t *dev, - struct dt_dev_pixelpipe_t *pipe, - const double iop_order, - const int transf_direction, - float *points, - const size_t points_count); +gboolean dt_dev_distort_transform_locked + (dt_develop_t *dev, + struct dt_dev_pixelpipe_t *pipe, + const double iop_order, + const dt_dev_transform_direction_t transf_direction, + float *points, + const size_t points_count); /** same fct as dt_dev_distort_backtransform, but we can specify iop * with priority between pmin and pmax */ -int dt_dev_distort_backtransform_plus(dt_develop_t *dev, - struct dt_dev_pixelpipe_t *pipe, - const double iop_order, - const int transf_direction, - float *points, - const size_t points_count); +gboolean dt_dev_distort_backtransform_plus + (dt_develop_t *dev, + struct dt_dev_pixelpipe_t *pipe, + const double iop_order, + const dt_dev_transform_direction_t transf_direction, + float *points, + const size_t points_count); /** same fct, but can only be called from a distort_backtransform * function called by dt_dev_distort_backtransform_plus */ -int dt_dev_distort_backtransform_locked(dt_develop_t *dev, - struct dt_dev_pixelpipe_t *pipe, - const double iop_order, - const int transf_direction, - float *points, - const size_t points_count); +gboolean dt_dev_distort_backtransform_locked + (dt_develop_t *dev, + struct dt_dev_pixelpipe_t *pipe, + const double iop_order, + const dt_dev_transform_direction_t transf_direction, + float *points, + const size_t points_count); /** get the iop_pixelpipe instance corresponding to the iop in the given pipe */ -struct dt_dev_pixelpipe_iop_t *dt_dev_distort_get_iop_pipe(dt_develop_t *dev, struct dt_dev_pixelpipe_t *pipe, +struct dt_dev_pixelpipe_iop_t *dt_dev_distort_get_iop_pipe(dt_develop_t *dev, + struct dt_dev_pixelpipe_t *pipe, struct dt_iop_module_t *module); /* * hash functions @@ -522,21 +582,24 @@ /** generate hash value out of all module settings of pixelpipe */ uint64_t dt_dev_hash(dt_develop_t *dev); /** same function, but we can specify iop with priority between pmin and pmax */ -uint64_t dt_dev_hash_plus(dt_develop_t *dev, struct dt_dev_pixelpipe_t *pipe, const double iop_order, const int transf_direction); +uint64_t dt_dev_hash_plus(dt_develop_t *dev, + struct dt_dev_pixelpipe_t *pipe, + const double iop_order, + const dt_dev_transform_direction_t transf_direction); /** wait until hash value found in hash matches hash value defined by * dev/pipe/pmin/pmax with timeout */ -int dt_dev_wait_hash(dt_develop_t *dev, +gboolean dt_dev_wait_hash(dt_develop_t *dev, struct dt_dev_pixelpipe_t *pipe, const double iop_order, - const int transf_direction, + const dt_dev_transform_direction_t transf_direction, dt_pthread_mutex_t *lock, const volatile uint64_t *const hash); /** synchronize pixelpipe by means hash values by waiting with timeout * and potential reprocessing */ -int dt_dev_sync_pixelpipe_hash(dt_develop_t *dev, +gboolean dt_dev_sync_pixelpipe_hash(dt_develop_t *dev, struct dt_dev_pixelpipe_t *pipe, const double iop_order, - const int transf_direction, + const dt_dev_transform_direction_t transf_direction, dt_pthread_mutex_t *lock, const volatile uint64_t *const hash); /** generate hash value out of module settings of all distorting modules of pixelpipe */ @@ -545,48 +608,25 @@ uint64_t dt_dev_hash_distort_plus(dt_develop_t *dev, struct dt_dev_pixelpipe_t *pipe, const double iop_order, - const int transf_direction); -/** same as dt_dev_wait_hash but only for distorting modules */ -int dt_dev_wait_hash_distort(dt_develop_t *dev, - struct dt_dev_pixelpipe_t *pipe, - const double iop_order, - const int transf_direction, - dt_pthread_mutex_t *lock, - const volatile uint64_t *const hash); -/** same as dt_dev_sync_pixelpipe_hash but only for distorting modules */ -int dt_dev_sync_pixelpipe_hash_distort (dt_develop_t *dev, - struct dt_dev_pixelpipe_t *pipe, - const double iop_order, - const int transf_direction, - dt_pthread_mutex_t *lock, - const volatile uint64_t *const hash); - -/* - * second darkroom window zoom heplers + const dt_dev_transform_direction_t transf_direction); +/** same as dt_dev_wait_hash but only for distorting modules +gboolean dt_dev_wait_hash_distort + (dt_develop_t *dev, + struct dt_dev_pixelpipe_t *pipe, + const double iop_order, + const dt_dev_transform_direction_t transf_direction, + dt_pthread_mutex_t *lock, + const volatile uint64_t *const hash); +*/ +/** same as dt_dev_sync_pixelpipe_hash but only for distorting modules +gboolean dt_dev_sync_pixelpipe_hash_distort + (dt_develop_t *dev, + struct dt_dev_pixelpipe_t *pipe, + const double iop_order, + const dt_dev_transform_direction_t transf_direction, + dt_pthread_mutex_t *lock, + const volatile uint64_t *const hash); */ -dt_dev_zoom_t dt_second_window_get_dev_zoom(dt_develop_t *dev); -void dt_second_window_set_dev_zoom(dt_develop_t *dev, const dt_dev_zoom_t value); -int dt_second_window_get_dev_closeup(dt_develop_t *dev); -void dt_second_window_set_dev_closeup(dt_develop_t *dev, const int value); -float dt_second_window_get_dev_zoom_x(dt_develop_t *dev); -void dt_second_window_set_dev_zoom_x(dt_develop_t *dev, const float value); -float dt_second_window_get_dev_zoom_y(dt_develop_t *dev); -void dt_second_window_set_dev_zoom_y(dt_develop_t *dev, const float value); -float dt_second_window_get_free_zoom_scale(dt_develop_t *dev); -float dt_second_window_get_zoom_scale(dt_develop_t *dev, - const dt_dev_zoom_t zoom, - const int closeup_factor, - const int preview); -void dt_second_window_set_zoom_scale(dt_develop_t *dev, const float value); -void dt_second_window_get_processed_size(const dt_develop_t *dev, int *procw, int *proch); -void dt_second_window_check_zoom_bounds(dt_develop_t *dev, - float *zoom_x, - float *zoom_y, - const dt_dev_zoom_t zoom, - const int closeup, - float *boxww, - float *boxhh); - /* * history undo support helpers for darkroom */ @@ -599,28 +639,29 @@ * develop an image and returns the buf and processed width / height. * this is done as in the context of the darkroom, meaning that the * final processed sizes will align perfectly on the darkroom view. - * */ -void dt_dev_image( - dt_imgid_t imgid, - size_t width, - size_t height, - int history_end, - uint8_t **buf, - size_t *processed_width, - size_t *processed_height); - -void dt_dev_image_ext( - dt_imgid_t imgid, - size_t width, - size_t height, - int history_end, - uint8_t **buf, - size_t *processed_width, - size_t *processed_height, - int border_size, - gboolean iso_12646, - int32_t snapshot_id); +void dt_dev_image(const dt_imgid_t imgid, + const size_t width, + const size_t height, + const int history_end, + uint8_t **buf, + float *scale, + size_t *buf_width, + size_t *buf_height, + float *zoom_x, + float *zoom_y, + const int32_t snapshot_id); + + +gboolean dt_dev_equal_chroma(const float *f, const double *d); +gboolean dt_dev_is_D65_chroma(const dt_develop_t *dev); +void dt_dev_reset_chroma(dt_develop_t *dev); +void dt_dev_init_chroma(dt_develop_t *dev); + +static inline struct dt_iop_module_t *dt_dev_gui_module(void) +{ + return darktable.develop ? darktable.develop->gui_module : NULL; +} #ifdef __cplusplus } // extern "C" diff -Nru darktable-4.4.2/src/develop/imageop.c darktable-4.6.1/src/develop/imageop.c --- darktable-4.4.2/src/develop/imageop.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/imageop.c 2024-02-16 17:31:09.000000000 +0000 @@ -186,19 +186,19 @@ } -static int default_distort_transform(dt_iop_module_t *self, - dt_dev_pixelpipe_iop_t *piece, - float *points, - size_t points_count) -{ - return 1; -} -static int default_distort_backtransform(dt_iop_module_t *self, - dt_dev_pixelpipe_iop_t *piece, - float *points, - size_t points_count) +static gboolean default_distort_transform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *points, + size_t points_count) { - return 1; + return TRUE; +} +static gboolean default_distort_backtransform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *points, + size_t points_count) +{ + return TRUE; } static void default_process(struct dt_iop_module_t *self, @@ -333,15 +333,12 @@ #define INCLUDE_API_FROM_MODULE_LOAD "iop_load_module" #include "iop/iop_api.h" - if(!module->init) module->init = dt_iop_default_init; - if(!module->modify_roi_in) module->modify_roi_in = _iop_modify_roi_in; - if(!module->modify_roi_out) module->modify_roi_out = _iop_modify_roi_out; - - #ifdef HAVE_OPENCL - if(!module->process_tiling_cl) - module->process_tiling_cl = darktable.opencl->inited ? default_process_tiling_cl : NULL; - if(!darktable.opencl->inited) module->process_cl = NULL; - #endif // HAVE_OPENCL + if(!module->init) + module->init = dt_iop_default_init; + if(!module->modify_roi_in) + module->modify_roi_in = _iop_modify_roi_in; + if(!module->modify_roi_out) + module->modify_roi_out = _iop_modify_roi_out; module->process_plain = module->process; module->process = default_process; @@ -357,10 +354,10 @@ // set the introspection related fields in module module->have_introspection = TRUE; - if(module->get_p == default_get_p || - module->get_f == default_get_f || - module->get_introspection_linear == default_get_introspection_linear || - module->get_introspection == default_get_introspection) + if(module->get_p == default_get_p + || module->get_f == default_get_f + || module->get_introspection_linear == default_get_introspection_linear + || module->get_introspection == default_get_introspection) goto api_h_error; } else @@ -369,13 +366,14 @@ module_name); } - if(module->init_global) module->init_global(module); + if(module->init_global) + module->init_global(module); return 0; } gboolean dt_iop_load_module_by_so(dt_iop_module_t *module, - dt_iop_module_so_t *so, - dt_develop_t *dev) + dt_iop_module_so_t *so, + dt_develop_t *dev) { module->actions = DT_ACTION_TYPE_IOP_INSTANCE; module->dev = dev; @@ -411,7 +409,6 @@ g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, g_free); module->raster_mask.sink.source = NULL; module->raster_mask.sink.id = INVALID_MASKID; - module->iopcache_hint = FALSE; // only reference cached results of dlopen: module->module = so->module; @@ -667,8 +664,7 @@ static void _gui_movedown_callback(GtkButton *button, dt_iop_module_t *module) { - if(darktable.unmuted & DT_DEBUG_IOPORDER) - dt_ioppr_check_iop_order(module->dev, 0, "dt_iop_gui_movedown_callback begin"); + dt_ioppr_check_iop_order(module->dev, 0, "dt_iop_gui_movedown_callback begin"); // we need to place this module right before the previous dt_iop_module_t *prev = dt_iop_gui_get_previous_visible_module(module); @@ -691,8 +687,7 @@ dt_dev_add_history_item(prev->dev, module, TRUE); - if(darktable.unmuted & DT_DEBUG_IOPORDER) - dt_ioppr_check_iop_order(module->dev, 0, "dt_iop_gui_movedown_callback end"); + dt_ioppr_check_iop_order(module->dev, 0, "dt_iop_gui_movedown_callback end"); // rebuild the accelerators dt_iop_connect_accels_multi(module->so); @@ -704,8 +699,7 @@ static void _gui_moveup_callback(GtkButton *button, dt_iop_module_t *module) { - if(darktable.unmuted & DT_DEBUG_IOPORDER) - dt_ioppr_check_iop_order(module->dev, 0, "dt_iop_gui_moveup_callback begin"); + dt_ioppr_check_iop_order(module->dev, 0, "dt_iop_gui_moveup_callback begin"); // we need to place this module right after the next one dt_iop_module_t *next = dt_iop_gui_get_next_visible_module(module); @@ -729,8 +723,7 @@ dt_dev_add_history_item(next->dev, module, TRUE); - if(darktable.unmuted & DT_DEBUG_IOPORDER) - dt_ioppr_check_iop_order(module->dev, 0, "dt_iop_gui_moveup_callback end"); + dt_ioppr_check_iop_order(module->dev, 0, "dt_iop_gui_moveup_callback end"); // rebuild the accelerators dt_iop_connect_accels_multi(module->so); @@ -836,10 +829,11 @@ static void _gui_copy_callback(GtkButton *button, gpointer user_data) { - dt_iop_module_t *module = dt_iop_gui_duplicate(user_data, FALSE); + dt_iop_module_t *base = (dt_iop_module_t *)user_data; + dt_iop_module_t *module = dt_iop_gui_duplicate(base, FALSE); /* setup key accelerators */ - dt_iop_connect_accels_multi(((dt_iop_module_t *)user_data)->so); + dt_iop_connect_accels_multi(base->so); if(dt_conf_get_bool("darkroom/ui/rename_new_instance")) dt_iop_gui_rename_module(module); @@ -847,10 +841,11 @@ static void _gui_duplicate_callback(GtkButton *button, gpointer user_data) { - dt_iop_module_t *module = dt_iop_gui_duplicate(user_data, TRUE); + dt_iop_module_t *base = (dt_iop_module_t *)user_data; + dt_iop_module_t *module = dt_iop_gui_duplicate(base, TRUE); /* setup key accelerators */ - dt_iop_connect_accels_multi(((dt_iop_module_t *)user_data)->so); + dt_iop_connect_accels_multi(base->so); if(dt_conf_get_bool("darkroom/ui/rename_new_instance")) dt_iop_gui_rename_module(module); @@ -1082,11 +1077,18 @@ static gboolean _gui_off_button_press(GtkWidget *w, GdkEventButton *e, gpointer user_data) { dt_iop_module_t *module = (dt_iop_module_t *)user_data; + + if(module->operation_tags() & IOP_TAG_DISTORT) + { + DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_DEVELOP_DISTORT); + } + if(!darktable.gui->reset && dt_modifier_is(e->state, GDK_CONTROL_MASK)) { - dt_iop_request_focus(darktable.develop->gui_module == module ? NULL : module); + dt_iop_request_focus(dt_dev_gui_module() == module ? NULL : module); return TRUE; } + return FALSE; } @@ -1114,8 +1116,8 @@ module->enabled = FALSE; // if current module is set as the CAT instance, remove that setting - if(module->dev->proxy.chroma_adaptation == module) - module->dev->proxy.chroma_adaptation = NULL; + if(module->dev->chroma.adaptation == module) + module->dev->chroma.adaptation = NULL; dt_dev_add_history_item(module->dev, module, FALSE); @@ -1123,10 +1125,9 @@ dt_iop_gui_set_expanded(module, FALSE, FALSE); } - const gboolean raster = module->blend_params->mask_mode & DEVELOP_MASK_RASTER; // set mask indicator sensitive according to module activation and raster mask if(module->mask_indicator) - gtk_widget_set_sensitive(module->mask_indicator, !raster && module->enabled); + gtk_widget_set_sensitive(module->mask_indicator, module->enabled); } char tooltip[512]; @@ -1211,32 +1212,6 @@ gtk_label_set_text(iname, new_label); - if(dt_conf_get_bool("darkroom/ui/auto_module_name_update")) - { - // check last history item and see if we can change its label - // accordingly. this must be done for the proper module and - // corresponding multi-priority. - // note: do not update for trouble messages has this will create - // some infinite loop with lens module. - - const GList *history = g_list_last(darktable.develop->history); - - if(history && !module->has_trouble) - { - dt_dev_history_item_t *hitem = (dt_dev_history_item_t *)(history->data); - - if(hitem->module == module - && hitem->module->multi_priority == module->multi_priority) - { - const gboolean changed = g_strcmp0(hitem->multi_name, multi_name); - if(changed) - { - dt_dev_add_history_item(darktable.develop, module, FALSE); - } - } - } - } - g_free(multi_name); g_free(new_label); } @@ -1314,8 +1289,6 @@ { ++darktable.gui->reset; --darktable.bauhaus->skip_accel; - if(module->label_recompute_handle) - g_source_remove(module->label_recompute_handle); if(module->gui_init) module->gui_init(module); ++darktable.bauhaus->skip_accel; --darktable.gui->reset; @@ -1357,6 +1330,58 @@ module->histogram_stats.pixels = 0; } +int dt_iop_legacy_params(dt_iop_module_t *module, + const void *const old_params, + const int32_t old_params_size, + const int old_version, + void **new_params, + int new_version) +{ + int ret = 0; + gboolean auto_init = FALSE; + + if(module->legacy_params) + { + int cversion = old_version; + void *oparams = malloc(old_params_size); + memcpy(oparams, old_params, old_params_size); + void *params = NULL; + int version = new_version; + int32_t params_size = 0; + + while(cversion < new_version) + { + params = NULL; + ret = module->legacy_params(module, oparams, cversion, + ¶ms, ¶ms_size, &version); + + if(ret == 1) + { + free(oparams); + return ret; + } + if(ret == -1) + auto_init = TRUE; + + cversion = version; + free(oparams); + oparams = params; + } + + if(params) + { + memcpy(*new_params, params, params_size); + free(params); + } + } + else + { + ret = 1; + } + + return auto_init ? -1 : ret; +} + static void _init_presets(dt_iop_module_so_t *module_so) { if(module_so->init_presets) @@ -1461,8 +1486,8 @@ { // convert the old params to new const int legacy_ret = - module->legacy_params(module, old_params, old_params_version, - new_params, module_version); + dt_iop_legacy_params(module, old_params, old_params_size, old_params_version, + &new_params, module_version); if(legacy_ret == 1) { @@ -1472,7 +1497,7 @@ free(module); continue; } - else if (legacy_ret == -1) + else if(legacy_ret == -1) auto_init = TRUE; } else @@ -1481,8 +1506,8 @@ dt_print(DT_DEBUG_ALWAYS, "[imageop_init_presets] updating '%s' preset '%s'" " from version %d to version %d\nto:'%s'", - module_so->op, name, old_params_version, module_version, - dt_exif_xmp_encode(new_params, new_params_size, NULL)); + module_so->op, name, old_params_version, module_version, + dt_exif_xmp_encode(new_params, new_params_size, NULL)); // and write the new params back to the database sqlite3_stmt *stmt2; @@ -1753,10 +1778,6 @@ void dt_iop_cleanup_module(dt_iop_module_t *module) { - if(module->label_recompute_handle) - g_source_remove(module->label_recompute_handle); - module->label_recompute_handle = 0; - module->cleanup(module); free(module->blend_params); @@ -2009,53 +2030,19 @@ return all_ok; } -static gboolean _iop_update_label(gpointer data) -{ - dt_iop_module_t *module = (dt_iop_module_t *)data; - - const gboolean is_default_params = - memcmp(module->params, module->default_params, module->params_size) == 0; - - char *preset_name = dt_presets_get_module_label - (module->op, - module->params, module->params_size, is_default_params, - module->blend_params, sizeof(dt_develop_blend_params_t)); - - // if we have a preset-name, use it. otherwise set the label to the multi-priority - // except for 0 where the multi-name is cleared. - - if(preset_name) - snprintf(module->multi_name, sizeof(module->multi_name), "%s", preset_name); - else if(module->multi_priority != 0) - snprintf(module->multi_name, sizeof(module->multi_name), "%d", module->multi_priority); - else - g_strlcpy(module->multi_name, "", sizeof(module->multi_name)); - - g_free(preset_name); - - dt_iop_gui_update_header(module); - - module->label_recompute_handle = 0; - return G_SOURCE_REMOVE; -} - void dt_iop_commit_params(dt_iop_module_t *module, dt_iop_params_t *params, dt_develop_blend_params_t *blendop_params, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) { - const gboolean module_is_enabled = module->enabled; - const gboolean module_params_changed - = memcmp(module->params, params, module->params_size) == 0; - // 1. commit params memcpy(piece->blendop_data, blendop_params, sizeof(dt_develop_blend_params_t)); // this should be redundant! (but is not) dt_iop_module_t *inserted = dt_iop_commit_blend_params(module, blendop_params); if(inserted) - dt_dev_pixelpipe_cache_invalidate_later(pipe, inserted); + dt_dev_pixelpipe_cache_invalidate_later(pipe, inserted->iop_order); #ifdef HAVE_OPENCL // assume process_cl is ready, commit_params can overwrite this. if(module->process_cl) @@ -2071,22 +2058,6 @@ TRUE, module->so->op); module->commit_params(module, params, pipe, piece); - // adjust the label to match presets if possible or otherwise the default - // multi_name for this module. - - if(!dt_iop_is_hidden(module) - && module_is_enabled - && module_params_changed - && !module->multi_name_hand_edited - && module->instance_name - && gtk_widget_get_visible(module->instance_name) - && dt_conf_get_bool("darkroom/ui/auto_module_name_update")) - { - if(module->label_recompute_handle) - g_source_remove(module->label_recompute_handle); - module->label_recompute_handle = g_timeout_add(500, _iop_update_label, module); - } - // 2. compute the hash only if piece is enabled piece->hash = 0; @@ -2123,11 +2094,6 @@ void dt_iop_gui_cleanup_module(dt_iop_module_t *module) { - // clear possible deferred handler has the module won't be available anymore - if(module->label_recompute_handle) - g_source_remove(module->label_recompute_handle); - module->label_recompute_handle = 0; - g_slist_free_full(module->widget_list, g_free); module->widget_list = NULL; module->gui_cleanup(module); @@ -2141,7 +2107,7 @@ { if(module->gui_data) { - dt_bauhaus_update_module(module); + dt_bauhaus_update_from_field(module, NULL, NULL, NULL); if(module->params && module->gui_update) { @@ -2161,6 +2127,15 @@ dt_iop_gui_update_header(module); dt_iop_show_hide_header_buttons(module, NULL, FALSE, FALSE); dt_guides_update_module_widget(module); + + // this signal must be raised only safely when the darkroom and history + // if available. + if(!darktable.develop->history_updating + && !darktable.develop->gui_synch + && module->operation_tags() & IOP_TAG_DISTORT) + { + DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_DEVELOP_DISTORT); + } } --darktable.gui->reset; } @@ -2185,7 +2160,7 @@ // If Ctrl was not pressed, or no auto-presets were applied, reset the module parameters if(!(event && dt_modifier_is(event->state, GDK_CONTROL_MASK)) - || !dt_gui_presets_autoapply_for_module(module)) + || !dt_gui_presets_autoapply_for_module(module, NULL)) { // if a drawn mask is set, remove it from the list if(dt_is_valid_maskid(module->blend_params->mask_id)) @@ -2230,7 +2205,7 @@ dt_iop_module_t *module) { int delta_y = 0; - if(dt_gui_get_scroll_unit_deltas(event, NULL, &delta_y)) + if(dt_gui_get_scroll_unit_delta(event, &delta_y)) dt_gui_presets_apply_adjacent_preset(module, delta_y); return TRUE; @@ -2238,12 +2213,20 @@ void dt_iop_request_focus(dt_iop_module_t *module) { - dt_iop_module_t *out_focus_module = darktable.develop->gui_module; + dt_develop_t *dev = darktable.develop; + dt_iop_module_t *out_focus_module = dev->gui_module; + + // disable global color picker on any focus change request + // unless restrict histogram is active + if(!darktable.lib->proxy.colorpicker.restrict_histogram) + dt_iop_color_picker_reset(NULL, TRUE); - if(darktable.gui->reset || (out_focus_module == module)) return; + if(darktable.gui->reset + || (out_focus_module == module)) + return; - darktable.develop->gui_module = module; - darktable.develop->focus_hash = TRUE; + dev->gui_module = module; + dev->focus_hash = TRUE; /* lets lose the focus of previous focus module*/ if(out_focus_module) @@ -2256,9 +2239,6 @@ gtk_widget_set_state_flags(dt_iop_gui_get_pluginui(out_focus_module), GTK_STATE_FLAG_NORMAL, TRUE); - if(out_focus_module->operation_tags_filter()) - dt_dev_invalidate_from_gui(darktable.develop); - dt_iop_connect_accels_multi(out_focus_module->so); /* reset mask view */ @@ -2284,9 +2264,6 @@ gtk_widget_set_state_flags(dt_iop_gui_get_pluginui(module), GTK_STATE_FLAG_SELECTED, TRUE); - if(module->operation_tags_filter()) - dt_dev_invalidate_from_gui(darktable.develop); - dt_iop_connect_accels_multi(module->so); if(module->gui_focus) @@ -2297,7 +2274,7 @@ // we also add the focus css class GtkWidget *iop_w = - gtk_widget_get_parent(dt_iop_gui_get_pluginui(darktable.develop->gui_module)); + gtk_widget_get_parent(dt_iop_gui_get_pluginui(dev->gui_module)); dt_gui_add_class(iop_w, "dt_module_focus"); // update last preset name to get the update preset entry @@ -2313,6 +2290,13 @@ && darktable.view_manager->accels_window.sticky) dt_view_accels_refresh(darktable.view_manager); + const int tags_filter = (out_focus_module ? out_focus_module->operation_tags_filter() : 0) + | (module ? module->operation_tags_filter() : 0); + if(tags_filter) + { + dt_dev_pixelpipe_rebuild(dev); + } + // update guides button state dt_guides_update_button_state(); @@ -2715,10 +2699,9 @@ return res; } -void add_remove_mask_indicator(dt_iop_module_t *module, gboolean add) +void dt_iop_add_remove_mask_indicator(dt_iop_module_t *module, gboolean add) { const gboolean show = add && dt_conf_get_bool("darkroom/ui/show_mask_indicator"); - const gboolean raster = module->blend_params->mask_mode & DEVELOP_MASK_RASTER; if(module->mask_indicator) { @@ -2729,7 +2712,7 @@ dt_iop_show_hide_header_buttons(module, NULL, FALSE, FALSE); } else - gtk_widget_set_sensitive(module->mask_indicator, !raster && module->enabled); + gtk_widget_set_sensitive(module->mask_indicator, module->enabled); } else if(show) { @@ -2740,7 +2723,7 @@ g_signal_connect(G_OBJECT(module->mask_indicator), "query-tooltip", G_CALLBACK(_mask_indicator_tooltip), module); gtk_widget_set_has_tooltip(module->mask_indicator, TRUE); - gtk_widget_set_sensitive(module->mask_indicator, !raster && module->enabled); + gtk_widget_set_sensitive(module->mask_indicator, module->enabled); gtk_box_pack_end(GTK_BOX(module->header), module->mask_indicator, FALSE, FALSE, 0); // in dynamic modes, we need to put the mask indicator after the drawing area @@ -3054,11 +3037,11 @@ gboolean dt_iop_breakpoint(struct dt_develop_t *dev, struct dt_dev_pixelpipe_t *pipe) { if(pipe != dev->preview_pipe - && pipe != dev->preview2_pipe) + && pipe != dev->preview2.pipe) sched_yield(); if(pipe != dev->preview_pipe - && pipe != dev->preview2_pipe + && pipe != dev->preview2.pipe && pipe->changed == DT_DEV_PIPE_ZOOMED) return TRUE; @@ -3108,6 +3091,23 @@ return dt_iop_get_module_from_list(darktable.develop->iop, op); } +dt_iop_module_so_t *dt_iop_get_module_so(const char *op) +{ + dt_iop_module_so_t *result = NULL; + + for(GList *modules = darktable.iop; modules; modules = g_list_next(modules)) + { + dt_iop_module_so_t *mod = (dt_iop_module_so_t *)modules->data; + if(dt_iop_module_is(mod, op)) + { + result = mod; + break; + } + } + + return result; +} + int dt_iop_get_module_flags(const char *op) { GList *modules = darktable.iop; @@ -3152,7 +3152,7 @@ static void _request_module_focus_callback(dt_iop_module_t * module) { - dt_iop_request_focus(darktable.develop->gui_module == module ? NULL : module); + dt_iop_request_focus(dt_dev_gui_module() == module ? NULL : module); } static void _enable_module_callback(dt_iop_module_t *module) @@ -3392,10 +3392,12 @@ dt_iop_module_t *accel_mod = NULL; // The module to which accelerators are to be attached // if any instance has focus, use that one - if(prefer_focused && darktable.develop->gui_module - && (darktable.develop->gui_module->so == module + dt_iop_module_t *gui_module = dt_dev_gui_module(); + if(prefer_focused + && gui_module + && (gui_module->so == module || DT_ACTION(module) == &darktable.control->actions_focus)) - accel_mod = darktable.develop->gui_module; + accel_mod = gui_module; else { int best_score = -1; @@ -3530,12 +3532,9 @@ dt_develop_t *dev = module->dev; if(dev && dev->gui_attached) { - // invalidate the pixelpipe cache except for the output of the prior module - const uint64_t hash = - dt_dev_pixelpipe_cache_basichash_prior(dev->pipe->image.id, dev->pipe, module); - dt_dev_pixelpipe_cache_flush_all_but(dev->pipe, hash); + dt_dev_pixelpipe_cache_invalidate_later(dev->full.pipe, module->iop_order); //ensure that commit_params gets called to pick up any GUI changes - dev->pipe->changed |= DT_DEV_PIPE_SYNCH; + dev->full.pipe->changed |= DT_DEV_PIPE_SYNCH; dt_dev_invalidate(dev); dt_control_queue_redraw_center(); } @@ -3547,13 +3546,9 @@ dt_develop_t *dev = module->dev; if(dev && dev->gui_attached) { - // invalidate the pixelpipe cache except for the output of the prior module - const uint64_t hash = - dt_dev_pixelpipe_cache_basichash_prior(dev->pipe->image.id, - dev->preview_pipe, module); - dt_dev_pixelpipe_cache_flush_all_but(dev->preview_pipe, hash); + dt_dev_pixelpipe_cache_invalidate_later(dev->preview_pipe, module->iop_order); //ensure that commit_params gets called to pick up any GUI changes - dev->pipe->changed |= DT_DEV_PIPE_SYNCH; + dev->full.pipe->changed |= DT_DEV_PIPE_SYNCH; dt_dev_invalidate_all(dev); dt_control_queue_redraw(); } @@ -3565,13 +3560,9 @@ dt_develop_t *dev = module->dev; if(dev && dev->gui_attached) { - // invalidate the pixelpipe cache except for the output of the prior module - const uint64_t hash = - dt_dev_pixelpipe_cache_basichash_prior(dev->pipe->image.id, - dev->preview2_pipe, module); - dt_dev_pixelpipe_cache_flush_all_but(dev->preview2_pipe, hash); + dt_dev_pixelpipe_cache_invalidate_later(dev->preview2.pipe, module->iop_order); //ensure that commit_params gets called to pick up any GUI changes - dev->pipe->changed |= DT_DEV_PIPE_SYNCH; + dev->full.pipe->changed |= DT_DEV_PIPE_SYNCH; dt_dev_invalidate_all(dev); dt_control_queue_redraw(); } @@ -3641,7 +3632,7 @@ else { // copy the input buffer to the output - dt_iop_copy_image_roi(ovoid, ivoid, ch, roi_in, roi_out, TRUE); + dt_iop_copy_image_roi(ovoid, ivoid, ch, roi_in, roi_out); // and set the module's trouble message if(module) dt_iop_set_module_trouble_message @@ -3659,6 +3650,12 @@ } } +gboolean dt_iop_canvas_not_sensitive(const struct dt_develop_t *dev) +{ + return dt_iop_color_picker_is_visible(dev) + || darktable.lib->proxy.snapshots.enabled; +} + void dt_iop_gui_changed(dt_action_t *action, GtkWidget *widget, gpointer data) { if(!action || action->type != DT_ACTION_TYPE_IOP_INSTANCE) return; @@ -3671,6 +3668,14 @@ dt_dev_add_history_item_target(darktable.develop, module, TRUE, widget); } +gboolean dt_iop_module_is_skipped(const struct dt_develop_t *dev, + const struct dt_iop_module_t *module) +{ + return dev->gui_module + && dev->gui_module != module + && (dev->gui_module->operation_tags_filter() & module->operation_tags()); +} + enum { // Multi-instance @@ -3754,7 +3759,7 @@ } return element == DT_ACTION_ELEMENT_FOCUS - ? darktable.develop->gui_module == module + ? dt_dev_gui_module() == module : (element == DT_ACTION_ELEMENT_ENABLE ? module->off && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(module->off)) : (element == DT_ACTION_ELEMENT_SHOW diff -Nru darktable-4.4.2/src/develop/imageop.h darktable-4.6.1/src/develop/imageop.h --- darktable-4.4.2/src/develop/imageop.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/imageop.h 2024-02-16 17:31:09.000000000 +0000 @@ -104,7 +104,7 @@ IOP_TAG_NONE = 0, IOP_TAG_DISTORT = 1 << 0, IOP_TAG_DECORATION = 1 << 1, - IOP_TAG_CLIPPING = 1 << 2, + IOP_TAG_CROPPING = 1 << 2, // might be some other filters togglable by user? // IOP_TAG_SLOW = 1<<3, @@ -132,7 +132,8 @@ IOP_FLAGS_ALLOW_FAST_PIPE = 1 << 12, // Module can work with a fast pipe IOP_FLAGS_UNSAFE_COPY = 1 << 13, // Unsafe to copy as part of history IOP_FLAGS_GUIDES_SPECIAL_DRAW = 1 << 14, // handle the grid drawing directly - IOP_FLAGS_GUIDES_WIDGET = 1 << 15 // require the guides widget + IOP_FLAGS_GUIDES_WIDGET = 1 << 15, // require the guides widget + IOP_FLAGS_CROP_EXPOSER = 1 << 16 // offers crop exposing } dt_iop_flags_t; /** status of a module*/ @@ -162,19 +163,6 @@ DT_REQUEST_COLORPICK_MODULE = 1 // requested by module (should take precedence) } dt_dev_request_colorpick_flags_t; -/** colorspace enums, must be in synch with dt_iop_colorspace_type_t - * in color_conversion.cl */ -typedef enum dt_iop_colorspace_type_t -{ - IOP_CS_NONE = -1, - IOP_CS_RAW = 0, - IOP_CS_LAB = 1, - IOP_CS_RGB = 2, - IOP_CS_LCH = 3, - IOP_CS_HSL = 4, - IOP_CS_JZCZHZ = 5, -} dt_iop_colorspace_type_t; - /** part of the module which only contains the cached dlopen stuff. */ typedef struct dt_iop_module_so_t { @@ -314,9 +302,6 @@ GtkWidget *guides_toggle; GtkWidget *guides_combo; - /** Last user action changed any module parameter via history? */ - gboolean iopcache_hint; - /** flag in case the module has troubles (bad settings) - if TRUE, * show a warning sign next to module label */ gboolean has_trouble; @@ -329,9 +314,6 @@ gboolean multi_name_hand_edited; GtkWidget *multimenu_button; - /** delayed-event handling */ - guint label_recompute_handle; - void (*process_plain)(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const void *const i, @@ -364,6 +346,13 @@ struct dt_develop_t *dev); /** calls module->cleanup and closes the dl connection. */ void dt_iop_cleanup_module(dt_iop_module_t *module); +/** migrate legacy params */ +int dt_iop_legacy_params(dt_iop_module_t *module, + const void *const old_params, + const int32_t old_params_size, + const int old_version, + void **new_params, + int new_version); /** initialize pipe. */ void dt_iop_init_pipe(struct dt_iop_module_t *module, struct dt_dev_pixelpipe_t *pipe, @@ -460,6 +449,7 @@ /* returns the iop-module found in list with the given name */ dt_iop_module_t *dt_iop_get_module_from_list(GList *iop_list, const char *op); dt_iop_module_t *dt_iop_get_module(const char *op); +dt_iop_module_so_t *dt_iop_get_module_so(const char *op); /** returns module with op + multi_priority or NULL if not found on the list, if multi_priority == -1 do not check for it */ dt_iop_module_t *dt_iop_get_module_by_op_priority(GList *modules, @@ -518,9 +508,6 @@ /** adds keyboard accels for all modules in the pipe */ void dt_iop_connect_accels_all(); -/** get the module that accelerators are attached to for the current so */ -dt_iop_module_t *dt_iop_get_module_accel_curr(dt_iop_module_so_t *module); - /** queue a refresh of the center (FULL), preview, or second-preview * windows, rerunning the pixelpipe from */ /** the given module */ @@ -536,7 +523,7 @@ const gboolean always_hide); /** add/remove mask indicator to iop module header */ -void add_remove_mask_indicator(dt_iop_module_t *module, gboolean add); +void dt_iop_add_remove_mask_indicator(dt_iop_module_t *module, gboolean add); /** Set the trouble message for the module. If non-empty, also flag ** the module as being in trouble; if empty or NULL, clear the @@ -583,11 +570,17 @@ const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out); +// should module ignore mouse actions on gui elements, like handles or shapes? +// returns true while color picker or snapshots active; show other elements dimmed +gboolean dt_iop_canvas_not_sensitive(const struct dt_develop_t *dev); + /* bring up module rename dialog */ void dt_iop_gui_rename_module(dt_iop_module_t *module); void dt_iop_gui_changed(dt_action_t *action, GtkWidget *widget, gpointer data); +gboolean dt_iop_module_is_skipped(const struct dt_develop_t *dev, const struct dt_iop_module_t *module); + // copy the RGB channels of a pixel using nontemporal stores if // possible; includes the 'alpha' channel as well if faster due to // vectorization, but subsequent code should ignore the value of the @@ -611,7 +604,7 @@ // after writing data using copy_pixel_nontemporal, it is necessary to // ensure that the writes have completed before attempting reads from -// a different core. This function produces the required memmory +// a different core. This function produces the required memory // fence to ensure proper visibility static inline void dt_sfence() { diff -Nru darktable-4.4.2/src/develop/imageop_math.c darktable-4.6.1/src/develop/imageop_math.c --- darktable-4.4.2/src/develop/imageop_math.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/imageop_math.c 2024-02-16 17:31:09.000000000 +0000 @@ -25,8 +25,15 @@ #include "develop/imageop.h" // for dt_iop_roi_t #include "imageio/imageio_common.h" // for FILTERS_ARE_4BAYER -void dt_iop_flip_and_zoom_8(const uint8_t *in, int32_t iw, int32_t ih, uint8_t *out, int32_t ow, int32_t oh, - const dt_image_orientation_t orientation, uint32_t *width, uint32_t *height) +void dt_iop_flip_and_zoom_8(const uint8_t *in, + const int32_t iw, + const int32_t ih, + uint8_t *out, + const int32_t ow, + const int32_t oh, + const dt_image_orientation_t orientation, + uint32_t *width, + uint32_t *height) { // init strides: const uint32_t iwd = (orientation & ORIENTATION_SWAP_XY) ? ih : iw; @@ -79,7 +86,8 @@ { for(int k = 0; k < 3; k++) out2[k] = // in3[k]; - CLAMP(((int32_t)in3[bpp * half_pixel * sj + k] + (int32_t)in3[bpp * half_pixel * (si + sj) + k] + CLAMP(((int32_t)in3[bpp * half_pixel * sj + k] + + (int32_t)in3[bpp * half_pixel * (si + sj) + k] + (int32_t)in3[bpp * half_pixel * si + k] + (int32_t)in3[k]) / 4, 0, 255); @@ -90,9 +98,20 @@ } } -void dt_iop_clip_and_zoom_8(const uint8_t *i, int32_t ix, int32_t iy, int32_t iw, int32_t ih, int32_t ibw, - int32_t ibh, uint8_t *o, int32_t ox, int32_t oy, int32_t ow, int32_t oh, - int32_t obw, int32_t obh) +void dt_iop_clip_and_zoom_8(const uint8_t *i, + const int32_t ix, + const int32_t iy, + const int32_t iw, + const int32_t ih, + const int32_t ibw, + const int32_t ibh, + uint8_t *o, + const int32_t ox, + const int32_t oy, + const int32_t ow, + const int32_t oh, + const int32_t obw, + const int32_t obh) { const float scalex = iw / (float)ow; const float scaley = ih / (float)oh; @@ -131,8 +150,12 @@ // apply clip and zoom on parts of a supplied full image. // roi_in and roi_out define which part to work on. -void dt_iop_clip_and_zoom(float *out, const float *const in, const dt_iop_roi_t *const roi_out, - const dt_iop_roi_t *const roi_in, const int32_t out_stride, const int32_t in_stride) +void dt_iop_clip_and_zoom(float *out, + const float *const in, + const dt_iop_roi_t *const roi_out, + const dt_iop_roi_t *const roi_in, + const int32_t out_stride, + const int32_t in_stride) { const struct dt_interpolation *itor = dt_interpolation_new(DT_INTERPOLATION_USERPREF); dt_interpolation_resample(itor, out, roi_out, out_stride * 4 * sizeof(float), in, roi_in, @@ -141,19 +164,26 @@ // apply clip and zoom on the image region supplied in the input buffer. // roi_in and roi_out describe which part of the full image this relates to. -void dt_iop_clip_and_zoom_roi(float *out, const float *const in, const dt_iop_roi_t *const roi_out, - const dt_iop_roi_t *const roi_in, const int32_t out_stride, +void dt_iop_clip_and_zoom_roi(float *out, + const float *const in, + const dt_iop_roi_t *const roi_out, + const dt_iop_roi_t *const roi_in, + const int32_t out_stride, const int32_t in_stride) { const struct dt_interpolation *itor = dt_interpolation_new(DT_INTERPOLATION_USERPREF); - dt_interpolation_resample_roi(itor, out, roi_out, out_stride * 4 * sizeof(float), in, roi_in, + dt_interpolation_resample_roi(itor, out, roi_out, + out_stride * 4 * sizeof(float), in, roi_in, in_stride * 4 * sizeof(float)); } #ifdef HAVE_OPENCL // apply clip and zoom on parts of a supplied full image. // roi_in and roi_out define which part to work on. -int dt_iop_clip_and_zoom_cl(int devid, cl_mem dev_out, cl_mem dev_in, const dt_iop_roi_t *const roi_out, +int dt_iop_clip_and_zoom_cl(int devid, + cl_mem dev_out, + cl_mem dev_in, + const dt_iop_roi_t *const roi_out, const dt_iop_roi_t *const roi_in) { const struct dt_interpolation *itor = dt_interpolation_new(DT_INTERPOLATION_USERPREF); @@ -162,15 +192,19 @@ // apply clip and zoom on the image region supplied in the input buffer. // roi_in and roi_out describe which part of the full image this relates to. -int dt_iop_clip_and_zoom_roi_cl(int devid, cl_mem dev_out, cl_mem dev_in, const dt_iop_roi_t *const roi_out, +int dt_iop_clip_and_zoom_roi_cl(int devid, + cl_mem dev_out, + cl_mem dev_in, + const dt_iop_roi_t *const roi_out, const dt_iop_roi_t *const roi_in) { const struct dt_interpolation *itor = dt_interpolation_new(DT_INTERPOLATION_USERPREF); - cl_int err = dt_interpolation_resample_roi_cl(itor, devid, dev_out, roi_out, dev_in, roi_in); - if(err == DT_OPENCL_PROCESS_CL) + cl_int err = dt_interpolation_resample_roi_cl(itor, devid, dev_out, + roi_out, dev_in, roi_in); + if(err == CL_INVALID_WORK_GROUP_SIZE) { // We ran into a "vertical number of taps exceeds the vertical workgroupsize" problem - // Instead of redoing the whole thing later we do an internal fallback to cpu here + // Instead of redoing the whole thing later we do an internal fallback to cpu here float *in = dt_alloc_align_float((size_t)roi_in->width * roi_in->height * 4); float *out = dt_alloc_align_float((size_t)roi_out->width * roi_out->height * 4); if(out && in) @@ -179,14 +213,19 @@ (devid, in, dev_in, roi_in->width, roi_in->height, 4 * sizeof(float)); if(err == CL_SUCCESS) { - dt_iop_clip_and_zoom_roi(out, in, roi_out, roi_in, 0, 0); + dt_iop_clip_and_zoom_roi(out, in, roi_out, roi_in, roi_out->width, roi_in->width); err = dt_opencl_write_host_to_device (devid, out, dev_out, roi_out->width, roi_out->height, 4 * sizeof(float)); - if(err == CL_SUCCESS) - dt_print_pipe(DT_DEBUG_OPENCL, "clip_and_zoom_roi_cl", NULL, NULL, roi_in, roi_out, - "did fast cpu fallback\n"); } + } + if(err == CL_SUCCESS) + dt_print_pipe(DT_DEBUG_OPENCL, "clip_and_zoom_roi_cl", NULL, NULL, roi_in, roi_out, + "did fast cpu fallback\n"); + else + dt_print_pipe(DT_DEBUG_OPENCL, "clip_and_zoom_roi_cl", NULL, NULL, roi_in, roi_out, + "fast cpu fallback failing: %s\n", cl_errstr(err)); + dt_free_align(in); dt_free_align(out); } @@ -195,10 +234,13 @@ #endif -void dt_iop_clip_and_zoom_mosaic_half_size(uint16_t *const out, const uint16_t *const in, - const dt_iop_roi_t *const roi_out, - const dt_iop_roi_t *const roi_in, const int32_t out_stride, - const int32_t in_stride, const uint32_t filters) +void dt_iop_clip_and_zoom_mosaic_half_size(uint16_t *const out, + const uint16_t *const in, + const dt_iop_roi_t *const roi_out, + const dt_iop_roi_t *const roi_in, + const int32_t out_stride, + const int32_t in_stride, + const uint32_t filters) { // adjust to pixel region and don't sample more than scale/2 nbs! // pixel footprint on input buffer, radius: @@ -238,13 +280,15 @@ uint16_t *outc = out + out_stride * y; const float fy = (y + roi_out->y) * px_footprint; - const int miny = (CLAMPS((int)floorf(fy - px_footprint), 0, roi_in->height-3) & ~1u) + rggby; + const int miny = (CLAMPS((int)floorf(fy - px_footprint), + 0, roi_in->height-3) & ~1u) + rggby; const int maxy = MIN(roi_in->height-1, (int)ceilf(fy + px_footprint)); float fx = roi_out->x * px_footprint; for(int x = 0; x < roi_out->width; x++, fx += px_footprint, outc++) { - const int minx = (CLAMPS((int)floorf(fx - px_footprint), 0, roi_in->width-3) & ~1u) + rggbx; + const int minx = (CLAMPS((int)floorf(fx - px_footprint), + 0, roi_in->width-3) & ~1u) + rggbx; const int maxx = MIN(roi_in->width-1, (int)ceilf(fx + px_footprint)); const int c = FC(y, x, filters); @@ -268,9 +312,11 @@ } void dt_iop_clip_and_zoom_mosaic_half_size_f(float *const out, const float *const in, - const dt_iop_roi_t *const roi_out, - const dt_iop_roi_t *const roi_in, const int32_t out_stride, - const int32_t in_stride, const uint32_t filters) + const dt_iop_roi_t *const roi_out, + const dt_iop_roi_t *const roi_in, + const int32_t out_stride, + const int32_t in_stride, + const uint32_t filters) { // adjust to pixel region and don't sample more than scale/2 nbs! // pixel footprint on input buffer, radius: @@ -503,10 +549,13 @@ } } -void dt_iop_clip_and_zoom_mosaic_third_size_xtrans_f(float *const out, const float *const in, +void dt_iop_clip_and_zoom_mosaic_third_size_xtrans_f(float *const out, + const float *const in, const dt_iop_roi_t *const roi_out, - const dt_iop_roi_t *const roi_in, const int32_t out_stride, - const int32_t in_stride, const uint8_t (*const xtrans)[6]) + const dt_iop_roi_t *const roi_in, + const int32_t out_stride, + const int32_t in_stride, + const uint8_t (*const xtrans)[6]) { const float px_footprint = 1.f / roi_out->scale; #ifdef _OPENMP @@ -544,11 +593,13 @@ } } -void dt_iop_clip_and_zoom_demosaic_passthrough_monochrome_f(float *out, const float *const in, - const dt_iop_roi_t *const roi_out, - const dt_iop_roi_t *const roi_in, - const int32_t out_stride, - const int32_t in_stride) +void dt_iop_clip_and_zoom_demosaic_passthrough_monochrome_f + (float *out, + const float *const in, + const dt_iop_roi_t *const roi_out, + const dt_iop_roi_t *const roi_in, + const int32_t out_stride, + const int32_t in_stride) { // adjust to pixel region and don't sample more than scale/2 nbs! // pixel footprint on input buffer, radius: @@ -689,9 +740,11 @@ } void dt_iop_clip_and_zoom_demosaic_half_size_f(float *out, const float *const in, - const dt_iop_roi_t *const roi_out, - const dt_iop_roi_t *const roi_in, const int32_t out_stride, - const int32_t in_stride, const uint32_t filters) + const dt_iop_roi_t *const roi_out, + const dt_iop_roi_t *const roi_in, + const int32_t out_stride, + const int32_t in_stride, + const uint32_t filters) { // adjust to pixel region and don't sample more than scale/2 nbs! // pixel footprint on input buffer, radius: @@ -808,7 +861,8 @@ // lower right 2x2 block p[0] = in[maxi + 2 + in_stride * (maxj + 2)]; - p[1] = in[maxi + 3 + in_stride * (maxj + 2)] + in[maxi + 2 + in_stride * (maxj + 3)]; + p[1] = in[maxi + 3 + in_stride * (maxj + 2)] + + in[maxi + 2 + in_stride * (maxj + 3)]; p[2] = in[maxi + 3 + in_stride * (maxj + 3)]; for(int c = 0; c < 3; c++) col[c] += (dx * dy) * p[c]; @@ -870,7 +924,8 @@ void dt_iop_clip_and_zoom_demosaic_third_size_xtrans_f(float *out, const float *const in, const dt_iop_roi_t *const roi_out, const dt_iop_roi_t *const roi_in, - const int32_t out_stride, const int32_t in_stride, + const int32_t out_stride, + const int32_t in_stride, const uint8_t (*const xtrans)[6]) { const float px_footprint = 1.f / roi_out->scale; @@ -893,21 +948,24 @@ for(int y = 0; y < roi_out->height; y++) { float *outc = out + 4 * (out_stride * y); - const int py = CLAMPS((int)round((y + roi_out->y - 0.5f) * px_footprint), 0, roi_in->height - 3); + const int py = CLAMPS((int)round((y + roi_out->y - 0.5f) * px_footprint), + 0, roi_in->height - 3); const int ymax = MIN(roi_in->height - 3, py + 3 * samples); for(int x = 0; x < roi_out->width; x++, outc += 4) { dt_aligned_pixel_t col = { 0.0f }; int num = 0; - const int px = CLAMPS((int)round((x + roi_out->x - 0.5f) * px_footprint), 0, roi_in->width - 3); + const int px = CLAMPS((int)round((x + roi_out->x - 0.5f) * px_footprint), + 0, roi_in->width - 3); const int xmax = MIN(roi_in->width - 3, px + 3 * samples); for(int yy = py; yy <= ymax; yy += 3) for(int xx = px; xx <= xmax; xx += 3) { for(int j = 0; j < 3; ++j) for(int i = 0; i < 3; ++i) - col[FCxtrans(yy + j, xx + i, roi_in, xtrans)] += in[xx + i + in_stride * (yy + j)]; + col[FCxtrans(yy + j, xx + i, roi_in, xtrans)] + += in[xx + i + in_stride * (yy + j)]; num++; } @@ -924,4 +982,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/develop/imageop_math.h darktable-4.6.1/src/develop/imageop_math.h --- darktable-4.4.2/src/develop/imageop_math.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/imageop_math.h 2024-02-16 17:31:09.000000000 +0000 @@ -175,6 +175,22 @@ #define BLUE 2 #define ALPHA 3 +static inline float dt_iop_get_processed_maximum(dt_dev_pixelpipe_iop_t *piece) +{ + return fmaxf(1.0f, + fmaxf(piece->pipe->dsc.processed_maximum[0], + fmaxf(piece->pipe->dsc.processed_maximum[1], + piece->pipe->dsc.processed_maximum[2]))); +} + +static inline float dt_iop_get_processed_minimum(dt_dev_pixelpipe_iop_t *piece) +{ + return fmaxf(1.0f, + fminf(piece->pipe->dsc.processed_maximum[0], + fminf(piece->pipe->dsc.processed_maximum[1], + piece->pipe->dsc.processed_maximum[2]))); +} + /** Calculate the xtrans pattern color from the row and column **/ static inline int FCxtrans(const int row, const int col, const dt_iop_roi_t *const roi, const uint8_t (*const xtrans)[6]) diff -Nru darktable-4.4.2/src/develop/lightroom.c darktable-4.6.1/src/develop/lightroom.c --- darktable-4.4.2/src/develop/lightroom.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/lightroom.c 2024-02-16 17:31:09.000000000 +0000 @@ -433,6 +433,7 @@ gboolean has_rating; gdouble lat, lon; + gdouble lat_ref, lon_ref; gboolean has_gps; int color; @@ -810,12 +811,57 @@ data->has_rating = TRUE; } } + else if(!xmlStrcmp(name, (const xmlChar *)"GPSLatitudeRef")) + { + if (g_str_equal("N", (const char *)value)) + { + data->lat_ref = 1; + if(!isnan(data->lat)) + { + data->lat = (data->lat > 0) ? data->lat : -data->lat; + } + } + else + { + data->lat_ref = -1; + if(!isnan(data->lat)) + { + data->lat = (data->lat < 0) ? data->lat : -data->lat; + } + } + } + else if(!xmlStrcmp(name, (const xmlChar *)"GPSLongitudeRef")) + { + if (g_str_equal("E", (const char *)value)) + { + data->lon_ref = 1; + if(!isnan(data->lon)) + { + data->lon = (data->lon > 0) ? data->lat : -data->lon; + } + } + else + { + data->lon_ref = -1; + if(!isnan(data->lon)) + { + data->lon = (data->lon < 0) ? data->lat : -data->lon; + } + } + } else if(!xmlStrcmp(name, (const xmlChar *)"GPSLatitude")) { double latitude = dt_util_gps_string_to_number((const char *)value); if(!isnan(latitude)) { - data->lat = latitude; + if(!isnan(data->lat_ref)) + { + data->lat = ((latitude > 0) == (data->lat_ref > 0)) ? latitude : -latitude; + } + else + { + data->lat = latitude; + } data->has_gps = TRUE; } } @@ -824,7 +870,14 @@ double longitude = dt_util_gps_string_to_number((const char *)value); if(!isnan(longitude)) { - data->lon = longitude; + if(!isnan(data->lon_ref)) + { + data->lon = ((longitude > 0) == (data->lon_ref > 0)) ? longitude : -longitude; + } + else + { + data->lon = longitude; + } data->has_gps = TRUE; } } @@ -1074,6 +1127,7 @@ gboolean refresh_needed = FALSE; char imported[256] = { 0 }; int n_import = 0; // number of iop imported + gboolean is_lr = FALSE; // Get full pathname char *pathname = dt_get_lightroom_xmp(imgid); @@ -1158,6 +1212,7 @@ g_free(pathname); return FALSE; } + is_lr = TRUE; xmlFree(value); } // we could bail out here if we ONLY wanted to load a file known to be from lightroom. @@ -1193,6 +1248,8 @@ data.has_rating = FALSE; data.lat = NAN; data.lon = NAN; + data.lat_ref = NAN; + data.lon_ref = NAN; data.has_gps = FALSE; data.color = 0; data.has_colorlabel = FALSE; @@ -1254,7 +1311,7 @@ // Integrates into the history all the imported iop - if(dev != NULL && dt_image_is_raw(&dev->image_storage)) + if(dev != NULL && is_lr && dt_image_is_raw(&dev->image_storage)) { // set colorin to cmatrix which is the default from Adobe (so closer to what Lightroom does) dt_iop_colorin_params_v1_t pci = (dt_iop_colorin_params_v1_t){ "cmatrix", DT_INTENT_PERCEPTUAL }; diff -Nru darktable-4.4.2/src/develop/masks/brush.c darktable-4.6.1/src/develop/masks/brush.c --- darktable-4.4.2/src/develop/masks/brush.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/masks/brush.c 2024-02-16 17:31:09.000000000 +0000 @@ -706,8 +706,7 @@ int *payload_count, const int source) { - double start2 = 0.0; - if(darktable.unmuted & DT_DEBUG_PERF) start2 = dt_get_wtime(); + double start2 = dt_get_debug_wtime(); const float wd = pipe->iwidth; const float ht = pipe->iheight; @@ -789,12 +788,9 @@ int cw = 1; int start_stamp = 0; - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, "[masks %s] brush_points init took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] brush_points init took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); // we render all segments first upwards, then downwards for(int n = 0; n < 2 * nb; n++) @@ -1044,13 +1040,9 @@ // printf("points %d, border %d, playload %d\n", *points_count, border ? *border_count : -1, payload ? // *payload_count : -1); - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] brush_points point recurs %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] brush_points point recurs %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); // and we transform them with all distorted modules if(source && transf_direction == DT_DEV_TRANSFORM_DIR_ALL) @@ -1093,10 +1085,9 @@ goto fail; } - if(darktable.unmuted & DT_DEBUG_PERF) - dt_print(DT_DEBUG_MASKS, - "[masks %s] path_points end took %0.04f sec\n", - form->name, dt_get_wtime() - start2); + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] path_points end took %0.04f sec\n", + form->name, dt_get_lap_time(&start2)); return 1; } @@ -1106,10 +1097,9 @@ if(!border || dt_dev_distort_transform_plus(dev, pipe, iop_order, transf_direction, *border, *border_count)) { - if(darktable.unmuted & DT_DEBUG_PERF) - dt_print(DT_DEBUG_MASKS, - "[masks %s] brush_points transform took %0.04f sec\n", form->name, - dt_get_wtime() - start2); + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] brush_points transform took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); return 1; } } @@ -1497,10 +1487,14 @@ { if(type == GDK_2BUTTON_PRESS || type == GDK_3BUTTON_PRESS) return 1; if(!gui) return 0; + dt_masks_form_gui_points_t *gpt = (dt_masks_form_gui_points_t *)g_list_nth_data(gui->points, index); if(!gpt) return 0; + float wd, ht, iwidth, iheight; + dt_masks_get_image_size(&wd, &ht, &iwidth, &iheight); + const float masks_border = MIN(dt_conf_get_float(DT_MASKS_CONF(form->type, brush, border)), BORDER_MAX); @@ -1528,9 +1522,6 @@ { if(gui->creation) { - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; - if(!gui->guipoints) gui->guipoints = dt_masks_dynbuf_init(200000, "brush guipoints"); if(!gui->guipoints) @@ -1658,14 +1649,12 @@ dt_masks_point_brush_t *bzpt = (dt_masks_point_brush_t *)(malloc(sizeof(dt_masks_point_brush_t))); - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd, pzy * ht }; dt_dev_distort_backtransform(darktable.develop, pts, 1); // set coordinates - bzpt->corner[0] = pts[0] / darktable.develop->preview_pipe->iwidth; - bzpt->corner[1] = pts[1] / darktable.develop->preview_pipe->iheight; + bzpt->corner[0] = pts[0] / iwidth; + bzpt->corner[1] = pts[1] / iheight; bzpt->ctrl1[0] = bzpt->ctrl1[1] = bzpt->ctrl2[0] = bzpt->ctrl2[1] = -1.0; bzpt->state = DT_MASKS_POINT_STATE_NORMAL; @@ -1842,6 +1831,9 @@ (dt_masks_form_gui_points_t *)g_list_nth_data(gui->points, index); if(!gpt) return 0; + float wd, ht, iwidth, iheight; + dt_masks_get_image_size(&wd, &ht, &iwidth, &iheight); + const float masks_border = MIN(dt_conf_get_float(DT_MASKS_CONF(form->type, brush, border)), BORDER_MAX); @@ -1883,8 +1875,8 @@ for(int i = 0; i < gui->guipoints_count; i++) { - guipoints[i * 2] /= darktable.develop->preview_pipe->iwidth; - guipoints[i * 2 + 1] /= darktable.develop->preview_pipe->iheight; + guipoints[i * 2] /= iwidth; + guipoints[i * 2 + 1] /= iheight; } // we consolidate pen pressure readings into payload @@ -2047,12 +2039,10 @@ // we get point0 new values dt_masks_point_brush_t *point = (dt_masks_point_brush_t *)(form->points)->data; - float wd = darktable.develop->preview_pipe->backbuf_width; - float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd + gui->dx, pzy * ht + gui->dy }; dt_dev_distort_backtransform(darktable.develop, pts, 1); - float dx = pts[0] / darktable.develop->preview_pipe->iwidth - point->corner[0]; - float dy = pts[1] / darktable.develop->preview_pipe->iheight - point->corner[1]; + float dx = pts[0] / iwidth - point->corner[0]; + float dy = pts[1] / iheight - point->corner[1]; // we move all points for(GList *points = form->points; points; points = g_list_next(points)) @@ -2082,12 +2072,10 @@ gui->source_dragging = FALSE; // we change the source value - float wd = darktable.develop->preview_pipe->backbuf_width; - float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd + gui->dx, pzy * ht + gui->dy }; dt_dev_distort_backtransform(darktable.develop, pts, 1); - form->source[0] = pts[0] / darktable.develop->preview_pipe->iwidth; - form->source[1] = pts[1] / darktable.develop->preview_pipe->iheight; + form->source[0] = pts[0] / iwidth; + form->source[1] = pts[1] / iheight; dt_dev_add_masks_history_item(darktable.develop, module, TRUE); // we recreate the form points @@ -2116,12 +2104,10 @@ return 1; } gui->scrollx = gui->scrolly = 0; - float wd = darktable.develop->preview_pipe->backbuf_width; - float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd, pzy * ht }; dt_dev_distort_backtransform(darktable.develop, pts, 1); - float dx = pts[0] / darktable.develop->preview_pipe->iwidth - point->corner[0]; - float dy = pts[1] / darktable.develop->preview_pipe->iheight - point->corner[1]; + float dx = pts[0] / iwidth - point->corner[0]; + float dy = pts[1] / iheight - point->corner[1]; point->corner[0] += dx; point->corner[1] += dy; @@ -2146,20 +2132,18 @@ dt_masks_point_brush_t *point = (dt_masks_point_brush_t *)g_list_nth_data(form->points, gui->feather_dragging); gui->feather_dragging = -1; - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd, pzy * ht }; dt_dev_distort_backtransform(darktable.develop, pts, 1); float p1x, p1y, p2x, p2y; - _brush_feather_to_ctrl(point->corner[0] * darktable.develop->preview_pipe->iwidth, - point->corner[1] * darktable.develop->preview_pipe->iheight, + _brush_feather_to_ctrl(point->corner[0] * iwidth, + point->corner[1] * iheight, pts[0], pts[1], &p1x, &p1y, &p2x, &p2y, TRUE); - point->ctrl1[0] = p1x / darktable.develop->preview_pipe->iwidth; - point->ctrl1[1] = p1y / darktable.develop->preview_pipe->iheight; - point->ctrl2[0] = p2x / darktable.develop->preview_pipe->iwidth; - point->ctrl2[1] = p2y / darktable.develop->preview_pipe->iheight; + point->ctrl1[0] = p1x / iwidth; + point->ctrl1[1] = p1y / iheight; + point->ctrl2[0] = p2x / iwidth; + point->ctrl2[1] = p2y / iheight; point->state = DT_MASKS_POINT_STATE_USER; @@ -2193,28 +2177,28 @@ float pzy, const double pressure, const int which, + const float zoom_scale, dt_masks_form_t *form, const dt_mask_id_t parentid, dt_masks_form_gui_t *gui, const int index) { - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(darktable.develop, zoom, 1<<closeup, 1); const float as = dt_masks_sensitive_dist(zoom_scale); if(!gui) return 0; + dt_masks_form_gui_points_t *gpt = (dt_masks_form_gui_points_t *)g_list_nth_data(gui->points, index); if(!gpt) return 0; + float wd, ht, iwidth, iheight; + dt_masks_get_image_size(&wd, &ht, &iwidth, &iheight); + if(gui->creation) { if(gui->guipoints) { - dt_masks_dynbuf_add_2(gui->guipoints, - pzx * darktable.develop->preview_pipe->backbuf_width, - pzy * darktable.develop->preview_pipe->backbuf_height); + dt_masks_dynbuf_add_2(gui->guipoints, pzx * wd, pzy * ht); const float border = dt_masks_dynbuf_get(gui->guipoints_payload, -4); const float hardness = dt_masks_dynbuf_get(gui->guipoints_payload, -3); const float density = dt_masks_dynbuf_get(gui->guipoints_payload, -2); @@ -2227,14 +2211,12 @@ } else if(gui->point_dragging >= 0) { - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd, pzy * ht }; dt_dev_distort_backtransform(darktable.develop, pts, 1); dt_masks_point_brush_t *bzpt = (dt_masks_point_brush_t *)g_list_nth_data(form->points, gui->point_dragging); - pzx = pts[0] / darktable.develop->preview_pipe->iwidth; - pzy = pts[1] / darktable.develop->preview_pipe->iheight; + pzx = pts[0] / iwidth; + pzy = pts[1] / iheight; bzpt->ctrl1[0] += pzx - bzpt->corner[0]; bzpt->ctrl2[0] += pzx - bzpt->corner[0]; bzpt->ctrl1[1] += pzy - bzpt->corner[1]; @@ -2254,12 +2236,10 @@ const GList *pt2 = g_list_next_wraparound(pt1, form->points); dt_masks_point_brush_t *point = (dt_masks_point_brush_t *)pt1->data; dt_masks_point_brush_t *point2 = (dt_masks_point_brush_t *)pt2->data; - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd + gui->dx, pzy * ht + gui->dy }; dt_dev_distort_backtransform(darktable.develop, pts, 1); - const float dx = pts[0] / darktable.develop->preview_pipe->iwidth - point->corner[0]; - const float dy = pts[1] / darktable.develop->preview_pipe->iheight - point->corner[1]; + const float dx = pts[0] / iwidth - point->corner[0]; + const float dy = pts[1] / iheight - point->corner[1]; // we move all points point->corner[0] += dx; @@ -2287,22 +2267,20 @@ } else if(gui->feather_dragging >= 0) { - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd, pzy * ht }; dt_dev_distort_backtransform(darktable.develop, pts, 1); dt_masks_point_brush_t *point = (dt_masks_point_brush_t *)g_list_nth_data(form->points, gui->feather_dragging); float p1x, p1y, p2x, p2y; - _brush_feather_to_ctrl(point->corner[0] * darktable.develop->preview_pipe->iwidth, - point->corner[1] * darktable.develop->preview_pipe->iheight, + _brush_feather_to_ctrl(point->corner[0] * iwidth, + point->corner[1] * iheight, pts[0], pts[1], &p1x, &p1y, &p2x, &p2y, TRUE); - point->ctrl1[0] = p1x / darktable.develop->preview_pipe->iwidth; - point->ctrl1[1] = p1y / darktable.develop->preview_pipe->iheight; - point->ctrl2[0] = p2x / darktable.develop->preview_pipe->iwidth; - point->ctrl2[1] = p2y / darktable.develop->preview_pipe->iheight; + point->ctrl1[0] = p1x / iwidth; + point->ctrl1[1] = p1y / iheight; + point->ctrl2[0] = p2x / iwidth; + point->ctrl2[1] = p2y / iheight; point->state = DT_MASKS_POINT_STATE_USER; _brush_init_ctrl_points(form); @@ -2313,9 +2291,6 @@ } else if(gui->point_border_dragging >= 0) { - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; - const int k = gui->point_border_dragging; // now we want to know the position reflected on actual corner/border segment @@ -2331,11 +2306,10 @@ dt_masks_point_brush_t *point = (dt_masks_point_brush_t *)g_list_nth_data(form->points, k); - const float nx = point->corner[0] * darktable.develop->preview_pipe->iwidth; - const float ny = point->corner[1] * darktable.develop->preview_pipe->iheight; + const float nx = point->corner[0] * iwidth; + const float ny = point->corner[1] * iheight; const float nr = sqrtf((pts[0] - nx) * (pts[0] - nx) + (pts[1] - ny) * (pts[1] - ny)); - const float bdr = nr / fminf(darktable.develop->preview_pipe->iwidth, - darktable.develop->preview_pipe->iheight); + const float bdr = nr / fminf(iwidth, iheight); point->border[0] = point->border[1] = bdr; @@ -2346,8 +2320,6 @@ } else if(gui->form_dragging || gui->source_dragging) { - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd + gui->dx, pzy * ht + gui->dy }; dt_dev_distort_backtransform(darktable.develop, pts, 1); @@ -2355,8 +2327,8 @@ if(gui->form_dragging) { dt_masks_point_path_t *point = (dt_masks_point_path_t *)(form->points)->data; - const float dx = pts[0] / darktable.develop->preview_pipe->iwidth - point->corner[0]; - const float dy = pts[1] / darktable.develop->preview_pipe->iheight - point->corner[1]; + const float dx = pts[0] / iwidth - point->corner[0]; + const float dy = pts[1] / iheight - point->corner[1]; for(GList *points = form->points; points; points = g_list_next(points)) { point = (dt_masks_point_path_t *)points->data; @@ -2370,8 +2342,8 @@ } else { - form->source[0] = pts[0] / darktable.develop->preview_pipe->iwidth; - form->source[1] = pts[1] / darktable.develop->preview_pipe->iheight; + form->source[0] = pts[0] / iwidth; + form->source[1] = pts[1] / iheight; } // we recreate the form points @@ -2390,8 +2362,8 @@ // are we near a point or feather ? const guint nb = g_list_length(form->points); - pzx *= darktable.develop->preview_pipe->backbuf_width; - pzy *= darktable.develop->preview_pipe->backbuf_height; + pzx *= wd; + pzy *= ht; if((gui->group_selected == index) && gui->point_edited >= 0) { @@ -2492,10 +2464,14 @@ const int nb) { if(!gui) return; + dt_masks_form_gui_points_t *gpt = (dt_masks_form_gui_points_t *)g_list_nth_data(gui->points, index); if(!gpt) return; + float wd, ht, iwidth, iheight; + dt_masks_get_image_size(&wd, &ht, &iwidth, &iheight); + double dashed[] = { 4.0, 4.0 }; dashed[0] /= zoom_scale; dashed[1] /= zoom_scale; @@ -2504,10 +2480,7 @@ // in creation mode if(gui->creation) { - const float pr_d = darktable.develop->preview_downsampling; - const float iwd = darktable.develop->preview_pipe->iwidth; - const float iht = darktable.develop->preview_pipe->iheight; - const float min_iwd_iht = pr_d * MIN(iwd,iht); + const float min_iwd_iht = MIN(iwidth, iheight); if(gui->guipoints_count == 0) { @@ -2525,37 +2498,24 @@ const float radius1 = masks_border * masks_hardness * min_iwd_iht; const float radius2 = masks_border * min_iwd_iht; - float xpos = 0.0f, ypos = 0.0f; - if((gui->posx == -1.0f && gui->posy == -1.0f) - || gui->mouse_leaved_center) - { - xpos = (.5f + dt_control_get_dev_zoom_x()) - * darktable.develop->preview_pipe->backbuf_width; - ypos = (.5f + dt_control_get_dev_zoom_y()) - * darktable.develop->preview_pipe->backbuf_height; - } - else - { - xpos = gui->posx; - ypos = gui->posy; - } - cairo_save(cr); dt_gui_gtk_set_source_rgba(cr, DT_GUI_COLOR_BRUSH_CURSOR, opacity); cairo_set_line_width(cr, 3.0 / zoom_scale); - cairo_arc(cr, xpos, ypos, radius1, 0, 2.0 * M_PI); + cairo_arc(cr, gui->posx, gui->posy, radius1, 0, 2.0 * M_PI); cairo_fill_preserve(cr); cairo_set_source_rgba(cr, .8, .8, .8, .8); cairo_stroke(cr); cairo_set_dash(cr, dashed, len, 0); - cairo_arc(cr, xpos, ypos, radius2, 0, 2.0 * M_PI); + cairo_arc(cr, gui->posx, gui->posy, radius2, 0, 2.0 * M_PI); cairo_stroke(cr); if(form->type & DT_MASKS_CLONE) { float x = 0.0f, y = 0.0f; - dt_masks_calculate_source_pos_value(gui, DT_MASKS_BRUSH, xpos, ypos, - xpos, ypos, &x, &y, FALSE); + dt_masks_calculate_source_pos_value(gui, DT_MASKS_BRUSH, + gui->posx, gui->posy, + gui->posx, gui->posy, + &x, &y, FALSE); dt_masks_draw_clone_source_pos(cr, zoom_scale, x, y); } @@ -2997,9 +2957,8 @@ int *posy) { if(!module) return 0; - double start = 0.0; - double start2 = 0.0; - if(darktable.unmuted & DT_DEBUG_PERF) start = start2 = dt_get_wtime(); + double start = dt_get_debug_wtime(); + double start2 = start; // we get buffers for all points float *points = NULL, *border = NULL, *payload = NULL; @@ -3015,21 +2974,16 @@ return 0; } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] brush points took %0.04f sec\n", - form->name, dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] brush points took %0.04f sec\n", + form->name, dt_get_lap_time(&start2)); const guint nb_corner = g_list_length(form->points); _brush_bounding_box(points, border, nb_corner, points_count, width, height, posx, posy); - if(darktable.unmuted & DT_DEBUG_PERF) - dt_print(DT_DEBUG_MASKS, - "[masks %s] brush_fill min max took %0.04f sec\n", form->name, - dt_get_wtime() - start2); + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] brush_fill min max took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); // we allocate the buffer const size_t bufsize = (size_t)(*width) * (*height); @@ -3062,9 +3016,9 @@ dt_free_align(border); dt_free_align(payload); - if(darktable.unmuted & DT_DEBUG_PERF) - dt_print(DT_DEBUG_MASKS, "[masks %s] brush fill buffer took %0.04f sec\n", form->name, - dt_get_wtime() - start); + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] brush fill buffer took %0.04f sec\n", form->name, + dt_get_lap_time(&start)); return 1; } @@ -3128,9 +3082,8 @@ float *buffer) { if(!module) return 0; - double start = 0.0; - double start2 = 0.0; - if(darktable.unmuted & DT_DEBUG_PERF) start = start2 = dt_get_wtime(); + double start = dt_get_debug_wtime(); + double start2 = start; const int px = roi->x; const int py = roi->y; @@ -3154,13 +3107,9 @@ return 0; } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] brush points took %0.04f sec\n", - form->name, dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] brush points took %0.04f sec\n", + form->name, dt_get_lap_time(&start2)); const guint nb_corner = g_list_length(form->points); @@ -3186,13 +3135,9 @@ _brush_bounding_box_raw(points, border, nb_corner, points_count, &xmin, &xmax, &ymin, &ymax); - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] brush_fill min max took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] brush_fill min max took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); // check if the path completely lies outside of roi -> we're done/mask remains empty if(xmax < 0 || ymax < 0 || xmin >= width || ymin >= height) @@ -3229,13 +3174,12 @@ dt_free_align(border); dt_free_align(payload); - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, "[masks %s] brush set falloff took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - dt_print(DT_DEBUG_MASKS, "[masks %s] brush fill buffer took %0.04f sec\n", form->name, - dt_get_wtime() - start); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] brush set falloff took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] brush fill buffer took %0.04f sec\n", form->name, + dt_get_lap_time(&start)); return 1; } diff -Nru darktable-4.4.2/src/develop/masks/circle.c darktable-4.6.1/src/develop/masks/circle.c --- darktable-4.4.2/src/develop/masks/circle.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/masks/circle.c 2024-02-16 17:31:09.000000000 +0000 @@ -216,6 +216,9 @@ { if(!gui) return 0; + float wd, ht, iwidth, iheight; + dt_masks_get_image_size(&wd, &ht, &iwidth, &iheight); + if(!gui->creation) { dt_masks_form_gui_points_t *gpt = @@ -279,12 +282,10 @@ (dt_masks_point_circle_t *)(malloc(sizeof(dt_masks_point_circle_t))); // we change the center value - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd, pzy * ht }; dt_dev_distort_backtransform(darktable.develop, pts, 1); - circle->center[0] = pts[0] / darktable.develop->preview_pipe->iwidth; - circle->center[1] = pts[1] / darktable.develop->preview_pipe->iheight; + circle->center[0] = pts[0] / iwidth; + circle->center[1] = pts[1] / iheight; // calculate the source position if(form->type & DT_MASKS_CLONE) @@ -345,8 +346,8 @@ else gui2->form_dragging = TRUE; gui2->group_edited = gui2->group_selected = pos2; - gui2->posx = pzx * darktable.develop->preview_pipe->backbuf_width; - gui2->posy = pzy * darktable.develop->preview_pipe->backbuf_height; + gui2->posx = pzx * wd; + gui2->posy = pzy * ht; gui2->dx = 0.0; gui2->dy = 0.0; gui2->scrollx = pzx; @@ -398,6 +399,9 @@ dt_masks_form_gui_t *gui, const int index) { + float wd, ht, iwidth, iheight; + dt_masks_get_image_size(&wd, &ht, &iwidth, &iheight); + if(which == 3 && dt_is_valid_maskid(parentid) && gui->edit_mode == DT_MASKS_EDIT_FULL) @@ -439,12 +443,10 @@ gui->form_dragging = FALSE; // we change the center value - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd + gui->dx, pzy * ht + gui->dy }; dt_dev_distort_backtransform(darktable.develop, pts, 1); - circle->center[0] = pts[0] / darktable.develop->preview_pipe->iwidth; - circle->center[1] = pts[1] / darktable.develop->preview_pipe->iheight; + circle->center[0] = pts[0] / iwidth; + circle->center[1] = pts[1] / iheight; dt_dev_add_masks_history_item(darktable.develop, module, TRUE); // we recreate the form points @@ -474,14 +476,12 @@ else { // we change the center value - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd + gui->dx, pzy * ht + gui->dy }; dt_dev_distort_backtransform(darktable.develop, pts, 1); - form->source[0] = pts[0] / darktable.develop->preview_pipe->iwidth; - form->source[1] = pts[1] / darktable.develop->preview_pipe->iheight; + form->source[0] = pts[0] / iwidth; + form->source[1] = pts[1] / iheight; } dt_dev_add_masks_history_item(darktable.develop, module, TRUE); @@ -524,28 +524,30 @@ const float pzy, const double pressure, const int which, + const float zoom_scale, dt_masks_form_t *form, const dt_mask_id_t parentid, dt_masks_form_gui_t *gui, const int index) { + float wd, ht, iwidth, iheight; + dt_masks_get_image_size(&wd, &ht, &iwidth, &iheight); + if(gui->form_dragging || gui->source_dragging) { - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd + gui->dx, pzy * ht + gui->dy }; dt_dev_distort_backtransform(darktable.develop, pts, 1); if(gui->form_dragging) { dt_masks_point_circle_t *circle = (dt_masks_point_circle_t *)((form->points)->data); - circle->center[0] = pts[0] / darktable.develop->preview_pipe->iwidth; - circle->center[1] = pts[1] / darktable.develop->preview_pipe->iheight; + circle->center[0] = pts[0] / iwidth; + circle->center[1] = pts[1] / iheight; } else { - form->source[0] = pts[0] / darktable.develop->preview_pipe->iwidth; - form->source[1] = pts[1] / darktable.develop->preview_pipe->iheight; + form->source[0] = pts[0] / iwidth; + form->source[1] = pts[1] / iheight; } // we recreate the form points @@ -587,12 +589,9 @@ } else if(!gui->creation) { - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(darktable.develop, zoom, 1<<closeup, 1); const float as = dt_masks_sensitive_dist(zoom_scale); - const float x = pzx * darktable.develop->preview_pipe->backbuf_width; - const float y = pzy * darktable.develop->preview_pipe->backbuf_height; + const float x = pzx * wd; + const float y = pzy * ht; gboolean in, inb, ins; int near; float dist; @@ -734,8 +733,9 @@ { (void)radius2; // keep compiler from complaining about unused arg (void)rotation; - const float wd = dev->preview_pipe->iwidth; - const float ht = dev->preview_pipe->iheight; + + float wd, ht; + dt_masks_get_image_size(NULL, NULL, &wd, &ht); // compute the points of the target (center and circumference of circle) // we get the point in RAW image reference @@ -795,8 +795,8 @@ { (void)radius2; // keep compiler from complaining about unused arg (void)rotation; - const float wd = dev->preview_pipe->iwidth; - const float ht = dev->preview_pipe->iheight; + float wd, ht; + dt_masks_get_image_size(NULL, NULL, &wd, &ht); // compute the points we need to transform (center and circumference of circle) *points = _points_to_transform(x, y, radius, wd, ht, points_count); @@ -823,6 +823,9 @@ dt_masks_form_gui_points_t *gpt = (dt_masks_form_gui_points_t *)g_list_nth_data(gui->points, index); + float wd, ht, iwidth, iheight; + dt_masks_get_image_size(&wd, &ht, &iwidth, &iheight); + // add a preview when creating a circle // in creation mode if(gui->creation) @@ -837,20 +840,10 @@ float radius_b = dt_conf_get_float(DT_MASKS_CONF(form->type, circle, border)); radius_b += radius_a; - // we get the circle center - float pzx = gui->posx; - float pzy = gui->posy; - if((pzx == -1.f && pzy == -1.f) || gui->mouse_leaved_center) - { - const float zoom_x = dt_control_get_dev_zoom_x(); - const float zoom_y = dt_control_get_dev_zoom_y(); - pzx = (.5f + zoom_x) * darktable.develop->preview_pipe->backbuf_width; - pzy = (.5f + zoom_y) * darktable.develop->preview_pipe->backbuf_height; - } - float pts[2] = { pzx, pzy }; + float pts[2] = { gui->posx, gui->posy }; dt_dev_distort_backtransform(darktable.develop, pts, 1); - float x = pts[0] / darktable.develop->preview_pipe->iwidth; - float y = pts[1] / darktable.develop->preview_pipe->iheight; + float x = pts[0] / iwidth; + float y = pts[1] / iheight; // we get all the points, distorted if needed of the sample form float *points = NULL; @@ -881,7 +874,9 @@ x = 0.0f; y = 0.0f; dt_masks_calculate_source_pos_value(gui, DT_MASKS_CIRCLE, - pzx, pzy, pzx, pzy, &x, &y, FALSE); + gui->posx, gui->posy, + gui->posx, gui->posy, + &x, &y, FALSE); dt_masks_draw_clone_source_pos(cr, zoom_scale, x, y); } @@ -1104,19 +1099,14 @@ int *posx, int *posy) { - double start2 = 0.0; - if(darktable.unmuted & DT_DEBUG_PERF) start2 = dt_get_wtime(); + double start2 = dt_get_debug_wtime(); // we get the area if(!_circle_get_area(module, piece, form, width, height, posx, posy)) return 0; - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] circle area took %0.04f sec\n", - form->name, dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] circle area took %0.04f sec\n", + form->name, dt_get_lap_time(&start2)); // we get the circle values dt_masks_point_circle_t *const restrict circle = @@ -1149,13 +1139,9 @@ p[2*j + 1] = y; } } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] circle draw took %0.04f sec\n", form->name, dt_get_wtime() - start2); + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] circle draw took %0.04f sec\n", form->name, dt_get_lap_time(&start2)); - start2 = dt_get_wtime(); - } // we back transform all this points if(!dt_dev_distort_backtransform_plus(module->dev, piece->pipe, module->iop_order, DT_DEV_TRANSFORM_DIR_BACK_INCL, @@ -1165,13 +1151,9 @@ return 0; } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] circle transform took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] circle transform took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); // we allocate the buffer *buffer = dt_alloc_align_float((size_t)w * h); @@ -1212,10 +1194,9 @@ dt_free_align(points); - if(darktable.unmuted & DT_DEBUG_PERF) - dt_print(DT_DEBUG_MASKS, - "[masks %s] circle fill took %0.04f sec\n", - form->name, dt_get_wtime() - start2); + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] circle fill took %0.04f sec\n", + form->name, dt_get_lap_time(&start2)); return 1; } @@ -1227,11 +1208,9 @@ const dt_iop_roi_t *const roi, float *const restrict buffer) { - double start1 = 0.0; + double start1 = dt_get_debug_wtime(); double start2 = start1; - if(darktable.unmuted & DT_DEBUG_PERF) start2 = start1 = dt_get_wtime(); - // we get the circle parameters dt_masks_point_circle_t *circle = (dt_masks_point_circle_t *)((form->points)->data); const int wi = piece->pipe->iwidth, hi = piece->pipe->iheight; @@ -1259,13 +1238,9 @@ // initialize output buffer with zero memset(buffer, 0, sizeof(float) * w * h); - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] circle init took %0.04f sec\n", - form->name, dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] circle init took %0.04f sec\n", + form->name, dt_get_lap_time(&start2)); // we look at the outer circle of the shape - no effects outside of // this circle; we need many points as we do not know how the circle @@ -1320,13 +1295,9 @@ return 0; } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] circle outline took %0.04f sec\n", - form->name, dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] circle outline took %0.04f sec\n", + form->name, dt_get_lap_time(&start2)); // we get the min/max values ... float xmin = FLT_MAX, ymin = FLT_MAX, xmax = FLT_MIN, ymax = FLT_MIN; @@ -1362,13 +1333,9 @@ dt_free_align(circ); - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] circle bounding box took %0.04f sec\n", - form->name, dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] circle bounding box took %0.04f sec\n", + form->name, dt_get_lap_time(&start2)); // check if there is anything to do at all; only if width and height // of bounding box is 2 or greater the shape lies inside of roi and @@ -1398,12 +1365,8 @@ points[index * 2 + 1] = (grid * j + py) * iscale; } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] circle grid took %0.04f sec\n", form->name, dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] circle grid took %0.04f sec\n", form->name, dt_get_lap_time(&start2)); // we back transform all these points to the input image coordinates if(!dt_dev_distort_backtransform_plus(module->dev, piece->pipe, module->iop_order, @@ -1414,13 +1377,9 @@ return 0; } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] circle transform took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] circle transform took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); // we calculate the mask values at the transformed points; // for results: re-use the points array @@ -1449,13 +1408,9 @@ points[2*index] = f * f; } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] circle draw took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] circle draw took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); // we fill the pre-initialized output buffer by interpolation; // we only need to take the contents of our bounding box into account @@ -1490,15 +1445,12 @@ dt_free_align(points); - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] circle fill took %0.04f sec\n", - form->name, dt_get_wtime() - start2); - dt_print(DT_DEBUG_MASKS, - "[masks %s] circle total render took %0.04f sec\n", form->name, - dt_get_wtime() - start1); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] circle fill took %0.04f sec\n", + form->name, dt_get_lap_time(&start2)); + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] circle total render took %0.04f sec\n", form->name, + dt_get_lap_time(&start1)); return 1; } diff -Nru darktable-4.4.2/src/develop/masks/detail.c darktable-4.6.1/src/develop/masks/detail.c --- darktable-4.4.2/src/develop/masks/detail.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/masks/detail.c 2024-02-16 17:31:09.000000000 +0000 @@ -49,26 +49,28 @@ from either demosaic or from rawprepare. If such a flag has not been previously set we will force a pipeline reprocessing. - gboolean dt_dev_write_rawdetail_mask(dt_dev_pixelpipe_iop_t *piece, float *const rgb, const dt_iop_roi_t *const roi_in, const int mode, const dt_aligned_pixel_t wb); - or it's _cl equivalent write a preliminary mask holding signal-change values for every pixel. - These mask values are calculated as + gboolean dt_dev_write_scharr_mask(dt_dev_pixelpipe_iop_t *piece, + float *const rgb, + const dt_iop_roi_t *const roi_in, + const gboolean rawmode) + or it's _cl equivalent write a preliminary mask holding signal-change values + for every pixel. These mask values are calculated as a) get Y0 for every pixel b) apply a scharr operator on it - This raw detail mask (RM) is not scaled but only cropped to the roi + This scharr mask (SM) is not scaled but only cropped to the roi of the writing module (demosaic or rawprepare). The pipe gets roi copy of the writing module so we can later scale/distort the LM. - Calculating the RM is done for performance and lower mem pressure - reasons, so we don't have to pass full data to the module. Also the - RM can be used by other modules. + Calculating the SM is done for performance and lower mem pressure + reasons, so we don't have to pass full data to the module. - If a mask uses the details refinement step it takes the raw details - mask RM and calculates an intermediate mask (IM) which is still not + If a mask uses the details refinement step it takes the scharr + mask and calculates an intermediate mask (IM) which is still not scaled but has the roi of the writing module. For every pixel we calculate the IM value via a sigmoid function - with the threshold and RM as parameters. + with the threshold and scharr as parameters. At last the IM is slightly blurred to avoid hard transitions, as there still is no scaling we can use a constant sigma. As the @@ -93,7 +95,7 @@ 2. In the gui the slider is above the rest of the refinemt sliders to emphasize that blurring & feathering use the mask corrected by - detail refinemnt. + detail refinement. 3. Of course credit goes to Ingo @heckflosse from rt team for the original idea. (in the rt world this is knowb as details mask) @@ -143,52 +145,7 @@ } } -void _masks_blur_5x5_coeff(float *c, - const float sigma) -{ - float kernel[5][5]; - const float temp = -2.0f * sqrf(sigma); - const float range = sqrf(3.0f * 0.84f); - float sum = 0.0f; - for(int k = -2; k <= 2; k++) - { - for(int j = -2; j <= 2; j++) - { - if((sqrf(k) + sqrf(j)) <= range) - { - kernel[k + 2][j + 2] = expf((sqrf(k) + sqrf(j)) / temp); - sum += kernel[k + 2][j + 2]; - } - else - kernel[k + 2][j + 2] = 0.0f; - } - } - for(int i = 0; i < 5; i++) - { -#if defined(__GNUC__) - #pragma GCC ivdep -#endif - for(int j = 0; j < 5; j++) - kernel[i][j] /= sum; - } - /* c21 */ c[0] = kernel[0][1]; - /* c20 */ c[1] = kernel[0][2]; - /* c11 */ c[2] = kernel[1][1]; - /* c10 */ c[3] = kernel[1][2]; - /* c00 */ c[4] = kernel[2][2]; -} -#define FAST_BLUR_5 ( \ - blurmat[0] * ((src[i - w2 - 1] + src[i - w2 + 1]) \ - + (src[i - w1 - 2] + src[i - w1 + 2]) \ - + (src[i + w1 - 2] + src[i + w1 + 2]) \ - + (src[i + w2 - 1] + src[i + w2 + 1])) \ - + blurmat[1] * (src[i - w2] + src[i - 2] + src[i + 2] + src[i + w2]) \ - + blurmat[2] * (src[i - w1 - 1] + src[i - w1 + 1] + src[i + w1 - 1] \ - + src[i + w1 + 1]) \ - + blurmat[3] * (src[i - w1] + src[i - 1] + src[i + 1] + src[i + w1]) \ - + blurmat[4] * src[i] ) - -void dt_masks_blur_9x9_coeff(float *c, const float sigma) +void dt_masks_blur_coeff(float *c, const float sigma) { float kernel[9][9]; const float temp = -2.0f * sqrf(sigma); @@ -245,14 +202,16 @@ blurmat[1] * (src[i - w1] + src[i - 1] + src[i + 1] + src[i + w1]) + \ blurmat[0] * src[i] ) -void dt_masks_blur_9x9(float *const restrict src, - float *const restrict out, - const int width, - const int height, - const float sigma) +void dt_masks_blur(float *const restrict src, + float *const restrict out, + const int width, + const int height, + const float sigma, + const float gain, + const float clip) { float blurmat[13]; - dt_masks_blur_9x9_coeff(blurmat, sigma); + dt_masks_blur_coeff(blurmat, sigma); const size_t w1 = width; const size_t w2 = 2*width; @@ -260,7 +219,7 @@ const size_t w4 = 4*width; #ifdef _OPENMP #pragma omp parallel for simd default(none) \ - dt_omp_firstprivate(blurmat, src, out) \ + dt_omp_firstprivate(blurmat, src, out, clip, gain) \ dt_omp_sharedconst(width, height, w1, w2, w3, w4) \ schedule(simd:static) aligned(src, out : 64) #endif @@ -269,170 +228,15 @@ for(size_t col = 4; col < width - 4; col++) { const size_t i = row * width + col; - out[row * width + col] = fminf(1.0f, fmaxf(0.0f, FAST_BLUR_9)); + out[i] = fmaxf(0.0f, fminf(clip, gain * FAST_BLUR_9)); } } dt_masks_extend_border(out, width, height, 4); } -void _masks_blur_13x13_coeff(float *c, const float sigma) -{ - float kernel[13][13]; - const float temp = -2.0f * sqrf(sigma); - const float range = sqrf(3.0f * 2.0f); - float sum = 0.0f; - for(int k = -6; k <= 6; k++) - { - for(int j = -6; j <= 6; j++) - { - if((sqrf(k) + sqrf(j)) <= range) - { - kernel[k + 6][j + 6] = expf((sqrf(k) + sqrf(j)) / temp); - sum += kernel[k + 6][j + 6]; - } - else - kernel[k + 6][j + 6] = 0.0f; - } - } - for(int i = 0; i < 13; i++) - { -#if defined(__GNUC__) - #pragma GCC ivdep -#endif - for(int j = 0; j < 13; j++) - kernel[i][j] /= sum; - } - /* c60 */ c[0] = kernel[0][6]; - /* c53 */ c[1] = kernel[1][3]; - /* c52 */ c[2] = kernel[1][4]; - /* c51 */ c[3] = kernel[1][5]; - /* c50 */ c[4] = kernel[1][6]; - /* c44 */ c[5] = kernel[2][2]; - /* c42 */ c[6] = kernel[2][4]; - /* c41 */ c[7] = kernel[2][5]; - /* c40 */ c[8] = kernel[2][6]; - /* c33 */ c[9] = kernel[3][3]; - /* c32 */ c[10] = kernel[3][4]; - /* c31 */ c[11] = kernel[3][5]; - /* c30 */ c[12] = kernel[3][6]; - /* c22 */ c[13] = kernel[4][4]; - /* c21 */ c[14] = kernel[4][5]; - /* c20 */ c[15] = kernel[4][6]; - /* c11 */ c[16] = kernel[5][5]; - /* c10 */ c[17] = kernel[5][6]; - /* c00 */ c[18] = kernel[6][6]; -} - -#define FAST_BLUR_13 ( \ - blurmat[0] * (src[i - w6] + src[i - 6] + src[i + 6] + src[i + w6]) + \ - blurmat[1] * ((src[i - w5 - 3] + src[i - w5 + 3]) + (src[i - w3 - 5] + src[i - w3 + 5]) + (src[i + w3 - 5] + src[i + w3 + 5]) + (src[i + w5 - 3] + src[i + w5 + 3])) + \ - blurmat[2] * ((src[i - w5 - 2] + src[i - w5 + 2]) + (src[i - w2 - 5] + src[i - w2 + 5]) + (src[i + w2 - 5] + src[i + w2 + 5]) + (src[i + w5 - 2] + src[i + w5 + 2])) + \ - blurmat[3] * ((src[i - w5 - 1] + src[i - w5 + 1]) + (src[i - w1 - 5] + src[i - w1 + 5]) + (src[i + w1 - 5] + src[i + w1 + 5]) + (src[i + w5 - 1] + src[i + w5 + 1])) + \ - blurmat[4] * ((src[i - w5] + src[i - 5] + src[i + 5] + src[i + w5]) + ((src[i - w4 - 3] + src[i - w4 + 3]) + (src[i - w3 - 4] + src[i - w3 + 4]) + (src[i + w3 - 4] + src[i + w3 + 4]) + (src[i + w4 - 3] + src[i + w4 + 3]))) + \ - blurmat[5] * (src[i - w4 - 4] + src[i - w4 + 4] + src[i + w4 - 4] + src[i + w4 + 4]) + \ - blurmat[6] * ((src[i - w4 - 2] + src[i - w4 + 2]) + (src[i - w2 - 4] + src[i - w2 + 4]) + (src[i + w2 - 4] + src[i + w2 + 4]) + (src[i + w4 - 2] + src[i + w4 + 2])) + \ - blurmat[7] * ((src[i - w4 - 1] + src[i - w4 + 1]) + (src[i - w1 - 4] + src[i - w1 + 4]) + (src[i + w1 - 4] + src[i + w1 + 4]) + (src[i + w4 - 1] + src[i + w4 + 1])) + \ - blurmat[8] * (src[i - w4] + src[i - 4] + src[i + 4] + src[i + w4]) + \ - blurmat[9] * (src[i - w3 - 3] + src[i - w3 + 3] + src[i + w3 - 3] + src[i + w3 + 3]) + \ - blurmat[10] * ((src[i - w3 - 2] + src[i - w3 + 2]) + (src[i - w2 - 3] + src[i - w2 + 3]) + (src[i + w2 - 3] + src[i + w2 + 3]) + (src[i + w3 - 2] + src[i + w3 + 2])) + \ - blurmat[11] * ((src[i - w3 - 1] + src[i - w3 + 1]) + (src[i - w1 - 3] + src[i - w1 + 3]) + (src[i + w1 - 3] + src[i + w1 + 3]) + (src[i + w3 - 1] + src[i + w3 + 1])) + \ - blurmat[12] * (src[i - w3] + src[i - 3] + src[i + 3] + src[i + w3]) + \ - blurmat[13] * (src[i - w2 - 2] + src[i - w2 + 2] + src[i + w2 - 2] + src[i + w2 + 2]) + \ - blurmat[14] * ((src[i - w2 - 1] + src[i - w2 + 1]) + (src[i - w1 - 2] + src[i - w1 + 2]) + (src[i + w1 - 2] + src[i + w1 + 2]) + (src[i + w2 - 1] + src[i + w2 + 1])) + \ - blurmat[15] * (src[i - w2] + src[i - 2] + src[i + 2] + src[i + w2]) + \ - blurmat[16] * (src[i - w1 - 1] + src[i - w1 + 1] + src[i + w1 - 1] + src[i + w1 + 1]) + \ - blurmat[17] * (src[i - w1] + src[i - 1] + src[i + 1] + src[i + w1]) + \ - blurmat[18] * src[i] ) - -int dt_masks_blur_fast(float *const restrict src, - float *const restrict out, - const int width, - const int height, - const float sigma, - const float gain, - const float clip) -{ - float blurmat[19]; - const size_t w1 = width; - const size_t w2 = 2*width; - const size_t w3 = 3*width; - const size_t w4 = 4*width; - const size_t w5 = 5*width; - const size_t w6 = 6*width; - if(sigma <= 0.0f) - { -#ifdef _OPENMP - #pragma omp parallel for simd default(none) \ - dt_omp_firstprivate(src, out) \ - dt_omp_sharedconst(gain, width, height, clip) \ - schedule(simd:static) aligned(src, out : 64) -#endif - for(size_t i = 0; i < width * height; i++) - out[i] = fmaxf(0.0f, fminf(clip, gain * src[i])); - return 0; - } - else if(sigma <= 0.8f) - { - _masks_blur_5x5_coeff(blurmat, sigma); -#ifdef _OPENMP - #pragma omp parallel for simd default(none) \ - dt_omp_firstprivate(src, out) \ - dt_omp_sharedconst(gain, width, height, w1, w2, clip) \ - shared(blurmat) \ - schedule(simd:static) aligned(src, out : 64) -#endif - for(size_t row = 2; row < height - 2; row++) - { - for(size_t col = 2; col < width - 2; col++) - { - const size_t i = row * width + col; - out[i] = fmaxf(0.0f, fminf(clip, gain * FAST_BLUR_5)); - } - } - return 2; - } - else if(sigma <= 1.5f) - { - dt_masks_blur_9x9_coeff(blurmat, sigma); -#ifdef _OPENMP - #pragma omp parallel for simd default(none) \ - dt_omp_firstprivate(src, out) \ - dt_omp_sharedconst(gain, width, height, w1, w2, w3, w4, clip) \ - shared(blurmat) \ - schedule(simd:static) aligned(src, out : 64) - #endif - for(size_t row = 4; row < height - 4; row++) - { - for(size_t col = 4; col < width - 4; col++) - { - const size_t i = row * width + col; - out[i] = fmaxf(0.0f, fminf(clip, gain * FAST_BLUR_9)); - } - } - return 4; - } - _masks_blur_13x13_coeff(blurmat, sigma); -#ifdef _OPENMP - #pragma omp parallel for simd default(none) \ - dt_omp_firstprivate(src, out) \ - dt_omp_sharedconst(gain, width, height, w1, w2, w3, w4, w5, w6, clip) \ - shared(blurmat) \ - schedule(simd:static) aligned(src, out : 64) - #endif - for(size_t row = 6; row < height - 6; row++) - { - for(size_t col = 6; col < width - 6; col++) - { - const size_t i = row * width + col; - out[i] = fmaxf(0.0f, fminf(clip, gain * FAST_BLUR_13)); - } - } - return 6; -} - -gboolean dt_masks_calc_rawdetail_mask(dt_dev_detail_mask_t *details, - float *const restrict src, - const dt_aligned_pixel_t wb) +gboolean dt_masks_calc_scharr_mask(dt_dev_detail_mask_t *details, + float *const restrict src, + const dt_aligned_pixel_t wb) { const int width = details->roi.width; const int height = details->roi.height; @@ -482,53 +286,54 @@ return FALSE; } -static inline float _calcBlendFactor(float val, float threshold) +static inline float _calcBlendFactor(float val, float ithreshold) { // sigmoid function // result is in ]0;1] range // inflexion point is at (x, y) (threshold, 0.5) - return 1.0f / (1.0f + dt_fast_expf(16.0f - (16.0f / threshold) * val)); + return 1.0f / (1.0f + dt_fast_expf(16.0f - ithreshold * val)); } -gboolean dt_masks_calc_detail_mask(dt_dev_detail_mask_t *details, - float *const restrict out, +float *dt_masks_calc_detail_mask(struct dt_dev_pixelpipe_iop_t *piece, const float threshold, const gboolean detail) { - if((details->roi.width <= 0) - || (details->roi.height <= 0) - || !details->data - || (details->hash == 0)) - return TRUE; + dt_dev_pixelpipe_t *pipe = piece->pipe; + dt_dev_detail_mask_t *details = &pipe->scharr; + + if(!details->data) + return NULL; const size_t msize = (size_t) details->roi.width * details->roi.height; float *tmp = dt_alloc_align_float(msize); - if(!tmp) + float *mask = dt_alloc_align_float(msize); + if(!tmp || !mask) { - dt_iop_image_fill(out, 0.0f, details->roi.width, details->roi.height, 1); - return TRUE; + dt_free_align(tmp); + dt_free_align(mask); + return NULL; } + const float ithreshold = 16.0f / (fmaxf(1e-7, threshold)); float *src = details->data; #ifdef _OPENMP #pragma omp parallel for simd default(none) \ - dt_omp_firstprivate(src, tmp, msize, threshold, detail, out) \ - schedule(simd:static) aligned(src, tmp, out : 64) + dt_omp_firstprivate(src, tmp, msize, ithreshold, detail) \ + schedule(simd:static) aligned(src, tmp : 64) #endif for(size_t idx = 0; idx < msize; idx++) { - const float blend = CLIP(_calcBlendFactor(src[idx], threshold)); + const float blend = CLIP(_calcBlendFactor(src[idx], ithreshold)); tmp[idx] = detail ? blend : 1.0f - blend; } // for very small images the blurring should be slightly less to have an effect at all const float blurring = (MIN(details->roi.width, details->roi.height) < 500) ? 1.5f : 2.0f; - dt_masks_blur_9x9(tmp, out, details->roi.width, details->roi.height, blurring); + dt_masks_blur(tmp, mask, details->roi.width, details->roi.height, blurring, 1.0f, 1.0f); dt_free_align(tmp); - return FALSE; + return mask; } -#undef FAST_BLUR_5 #undef FAST_BLUR_9 -#undef FAST_BLUR_13 + // clang-format off // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py diff -Nru darktable-4.4.2/src/develop/masks/ellipse.c darktable-4.6.1/src/develop/masks/ellipse.c --- darktable-4.4.2/src/develop/masks/ellipse.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/masks/ellipse.c 2024-02-16 17:31:09.000000000 +0000 @@ -304,8 +304,8 @@ int *points_count, const dt_iop_module_t *module) { - const float wd = dev->preview_pipe->iwidth; - const float ht = dev->preview_pipe->iheight; + float wd, ht; + dt_masks_get_image_size(NULL, NULL, &wd, &ht); // compute the points of the target (center and circumference of circle) // we get the point in RAW image reference @@ -366,8 +366,8 @@ float **points, int *points_count) { - const float wd = dev->preview_pipe->iwidth; - const float ht = dev->preview_pipe->iheight; + float wd, ht; + dt_masks_get_image_size(NULL, NULL, &wd, &ht); *points = _points_to_transform(xx, yy, radius_a, radius_b, rotation, wd, ht, points_count); @@ -577,6 +577,9 @@ { if(!gui) return 0; + float wd, ht, iwidth, iheight; + dt_masks_get_image_size(&wd, &ht, &iwidth, &iheight); + if(!gui->creation) { dt_masks_form_gui_points_t *gpt = @@ -650,12 +653,10 @@ = (dt_masks_point_ellipse_t *)(malloc(sizeof(dt_masks_point_ellipse_t))); // we change the center value - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd, pzy * ht }; dt_dev_distort_backtransform(darktable.develop, pts, 1); - ellipse->center[0] = pts[0] / darktable.develop->preview_pipe->iwidth; - ellipse->center[1] = pts[1] / darktable.develop->preview_pipe->iheight; + ellipse->center[0] = pts[0] / iwidth; + ellipse->center[1] = pts[1] / iheight; if(form->type & DT_MASKS_CLONE) { @@ -719,8 +720,8 @@ else gui2->form_dragging = TRUE; gui2->group_edited = gui2->group_selected = pos2; - gui2->posx = pzx * darktable.develop->preview_pipe->backbuf_width; - gui2->posy = pzy * darktable.develop->preview_pipe->backbuf_height; + gui2->posx = pzx * wd; + gui2->posy = pzy * ht; gui2->dx = 0.0; gui2->dy = 0.0; gui2->scrollx = pzx; @@ -771,6 +772,9 @@ dt_masks_form_gui_t *gui, const int index) { + float wd, ht, iwidth, iheight; + dt_masks_get_image_size(&wd, &ht, &iwidth, &iheight); + if(which == 3 && dt_is_valid_maskid(parentid) && gui->edit_mode == DT_MASKS_EDIT_FULL) @@ -813,12 +817,10 @@ gui->form_dragging = FALSE; // we change the center value - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd + gui->dx, pzy * ht + gui->dy }; dt_dev_distort_backtransform(darktable.develop, pts, 1); - ellipse->center[0] = pts[0] / darktable.develop->preview_pipe->iwidth; - ellipse->center[1] = pts[1] / darktable.develop->preview_pipe->iheight; + ellipse->center[0] = pts[0] / iwidth; + ellipse->center[1] = pts[1] / iheight; dt_dev_add_masks_history_item(darktable.develop, module, TRUE); // we recreate the form points @@ -882,8 +884,6 @@ // we end the form rotating gui->form_rotating = FALSE; - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; const float x = pzx * wd; const float y = pzy * ht; @@ -933,6 +933,8 @@ // we end the point dragging gui->point_dragging = -1; + dt_dev_add_masks_history_item(darktable.develop, module, TRUE); + // we save the updated shape dt_masks_update_image(darktable.develop); @@ -944,6 +946,8 @@ // we end the point dragging gui->point_border_dragging = -1; + dt_dev_add_masks_history_item(darktable.develop, module, TRUE); + // we save the updated shape dt_masks_update_image(darktable.develop); @@ -963,14 +967,12 @@ else { // we change the center value - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd + gui->dx, pzy * ht + gui->dy }; dt_dev_distort_backtransform(darktable.develop, pts, 1); - form->source[0] = pts[0] / darktable.develop->preview_pipe->iwidth; - form->source[1] = pts[1] / darktable.develop->preview_pipe->iheight; + form->source[0] = pts[0] / iwidth; + form->source[1] = pts[1] / iheight; } dt_dev_add_masks_history_item(darktable.develop, module, TRUE); @@ -1003,15 +1005,17 @@ const float pzy, const double pressure, const int which, + const float zoom_scale, dt_masks_form_t *form, const dt_mask_id_t parentid, dt_masks_form_gui_t *gui, const int index) { + float wd, ht, iwidth, iheight; + dt_masks_get_image_size(&wd, &ht, &iwidth, &iheight); + if(gui->form_dragging || gui->source_dragging) { - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd + gui->dx, pzy * ht + gui->dy }; dt_dev_distort_backtransform(darktable.develop, pts, 1); @@ -1019,13 +1023,13 @@ { dt_masks_point_ellipse_t *ellipse = (dt_masks_point_ellipse_t *)((form->points)->data); - ellipse->center[0] = pts[0] / darktable.develop->preview_pipe->iwidth; - ellipse->center[1] = pts[1] / darktable.develop->preview_pipe->iheight; + ellipse->center[0] = pts[0] / iwidth; + ellipse->center[1] = pts[1] / iheight; } else { - form->source[0] = pts[0] / darktable.develop->preview_pipe->iwidth; - form->source[1] = pts[1] / darktable.develop->preview_pipe->iheight; + form->source[0] = pts[0] / iwidth; + form->source[1] = pts[1] / iheight; } // we recreate the form points @@ -1118,8 +1122,6 @@ { dt_masks_point_ellipse_t *ellipse = (dt_masks_point_ellipse_t *)((form->points)->data); - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; const float x = pzx * wd; const float y = pzy * ht; @@ -1164,13 +1166,10 @@ } else if(!gui->creation) { - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(darktable.develop, zoom, 1<<closeup, 1); // transformed to backbuf dimensions const float as = dt_masks_sensitive_dist(zoom_scale); - const float x = pzx * darktable.develop->preview_pipe->backbuf_width; - const float y = pzy * darktable.develop->preview_pipe->backbuf_height; + const float x = pzx * wd; + const float y = pzy * ht; gboolean in = FALSE, inb = FALSE, ins = FALSE; int near = 0; @@ -1254,6 +1253,9 @@ { (void)num_points; //unused arg, keep compiler from complaining + float wd, ht, iwidth, iheight; + dt_masks_get_image_size(&wd, &ht, &iwidth, &iheight); + dt_masks_form_gui_points_t *gpt = (dt_masks_form_gui_points_t *)g_list_nth_data(gui->points, index); @@ -1282,21 +1284,10 @@ const float rotation = dt_conf_get_float(DT_MASKS_CONF(form->type, ellipse, rotation)); - float pzx = gui->posx; - float pzy = gui->posy; - - if((pzx == -1.f && pzy == -1.f) || gui->mouse_leaved_center) - { - const float zoom_x = dt_control_get_dev_zoom_x(); - const float zoom_y = dt_control_get_dev_zoom_y(); - pzx = (.5f + zoom_x) * darktable.develop->preview_pipe->backbuf_width; - pzy = (.5f + zoom_y) * darktable.develop->preview_pipe->backbuf_height; - } - - float pts[2] = { pzx, pzy }; + float pts[2] = { gui->posx, gui->posy }; dt_dev_distort_backtransform(darktable.develop, pts, 1); - x = pts[0] / darktable.develop->preview_pipe->iwidth; - y = pts[1] / darktable.develop->preview_pipe->iheight; + x = pts[0] / iwidth; + y = pts[1] / iheight; float *points = NULL; int points_count = 0; @@ -1342,7 +1333,9 @@ x = 0.0f; y = 0.0f; dt_masks_calculate_source_pos_value(gui, DT_MASKS_ELLIPSE, - pzx, pzy, pzx, pzy, &x, &y, FALSE); + gui->posx, gui->posy, + gui->posx, gui->posy, + &x, &y, FALSE); dt_masks_draw_clone_source_pos(cr, zoom_scale, x, y); } @@ -1696,19 +1689,14 @@ int *posx, int *posy) { - double start2 = 0.0; - if(darktable.unmuted & DT_DEBUG_PERF) start2 = dt_get_wtime(); + double start2 = dt_get_debug_wtime(); // we get the area if(!_ellipse_get_area(module, piece, form, width, height, posx, posy)) return 0; - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] ellipse area took %0.04f sec\n", - form->name, dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] ellipse area took %0.04f sec\n", + form->name, dt_get_lap_time(&start2)); // we get the ellipse values dt_masks_point_ellipse_t *ellipse = (dt_masks_point_ellipse_t *)((form->points)->data); @@ -1726,13 +1714,9 @@ points[(i * w + j) * 2 + 1] = (i + (*posy)); } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] ellipse draw took %0.04f sec\n", - form->name, dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] ellipse draw took %0.04f sec\n", + form->name, dt_get_lap_time(&start2)); // we back transform all this points if(!dt_dev_distort_backtransform_plus(module->dev, piece->pipe, module->iop_order, @@ -1743,13 +1727,9 @@ return 0; } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] ellipse transform took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] ellipse transform took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); // we allocate the buffer *buffer = dt_alloc_align_float((size_t)w * h); @@ -1797,8 +1777,9 @@ dt_free_align(points); - if(darktable.unmuted & DT_DEBUG_PERF) - dt_print(DT_DEBUG_MASKS, "[masks %s] ellipse fill took %0.04f sec\n", form->name, dt_get_wtime() - start2); + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] ellipse fill took %0.04f sec\n", + form->name, dt_get_lap_time(&start2)); return 1; } @@ -1809,9 +1790,8 @@ const dt_iop_roi_t *roi, float *buffer) { - double start1 = 0.0; + double start1 = dt_get_debug_wtime(); double start2 = start1; - if(darktable.unmuted & DT_DEBUG_PERF) start2 = start1 = dt_get_wtime(); // we get the ellipse parameters dt_masks_point_ellipse_t *ellipse = (dt_masks_point_ellipse_t *)((form->points)->data); @@ -1847,13 +1827,9 @@ const int gw = (w + grid - 1) / grid + 1; // grid dimension of total roi const int gh = (h + grid - 1) / grid + 1; // grid dimension of total roi - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] ellipse init took %0.04f sec\n", - form->name, dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] ellipse init took %0.04f sec\n", + form->name, dt_get_lap_time(&start2)); // we look at the outer line of the shape - no effects outside of // this ellipse; we need many points as we do not know how the @@ -1884,13 +1860,9 @@ ell[2 * n + 1] = center[1] + ta * sina * cosp + tb * cosa * sinp; } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] ellipse outline took %0.04f sec\n", - form->name, dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] ellipse outline took %0.04f sec\n", + form->name, dt_get_lap_time(&start2)); // we transform the outline from input image coordinates to current position in pixelpipe if(!dt_dev_distort_transform_plus(module->dev, piece->pipe, module->iop_order, @@ -1901,13 +1873,9 @@ return 0; } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] ellipse outline transform took %0.04f sec\n", - form->name, dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] ellipse outline transform took %0.04f sec\n", + form->name, dt_get_lap_time(&start2)); // we get the min/max values ... float xmin = FLT_MAX, ymin = FLT_MAX, xmax = FLT_MIN, ymax = FLT_MIN; @@ -1943,13 +1911,9 @@ dt_free_align(ell); - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] ellipse bounding box took %0.04f sec\n", - form->name, dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] ellipse bounding box took %0.04f sec\n", + form->name, dt_get_lap_time(&start2)); // check if there is anything to do at all; only if width and height // of bounding box is 2 or greater the shape lies inside of roi and @@ -1978,13 +1942,9 @@ points[index * 2 + 1] = (grid * j + py) * iscale; } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] ellipse grid took %0.04f sec\n", - form->name, dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] ellipse grid took %0.04f sec\n", + form->name, dt_get_lap_time(&start2)); // we back transform all these points to the input image coordinates if(!dt_dev_distort_backtransform_plus(module->dev, piece->pipe, module->iop_order, @@ -1995,25 +1955,18 @@ return 0; } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] ellipse transform took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] ellipse transform took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); // we calculate the mask values at the transformed points; re-use // the points array for results; this requires out_scale==1 to // double the offsets at which they are stored _fill_mask((size_t)(bbh)*bbw, points, points, center, a, b, ta, tb, alpha, 1); - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, "[masks %s] ellipse draw took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] ellipse draw took %0.04f sec\n", form->name, + dt_get_wtime() - start2); // we fill the pre-initialized output buffer by interpolation; // we only need to take the contents of our bounding box into account @@ -2048,15 +2001,13 @@ dt_free_align(points); - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] ellipse fill took %0.04f sec\n", - form->name, dt_get_wtime() - start2); - dt_print(DT_DEBUG_MASKS, - "[masks %s] ellipse total render took %0.04f sec\n", form->name, - dt_get_wtime() - start1); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] ellipse fill took %0.04f sec\n", + form->name, dt_get_lap_time(&start2)); + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] ellipse total render took %0.04f sec\n", form->name, + dt_get_lap_time(&start1)); + return 1; } diff -Nru darktable-4.4.2/src/develop/masks/gradient.c darktable-4.6.1/src/develop/masks/gradient.c --- darktable-4.4.2/src/develop/masks/gradient.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/masks/gradient.c 2024-02-16 17:31:09.000000000 +0000 @@ -278,8 +278,10 @@ float *compression, float *curvature) { - const float pr_d = darktable.develop->preview_downsampling; - const float diff = 3.0f * zoom_scale * (pr_d / 2.0); + float wd, ht, iwidth, iheight; + dt_masks_get_image_size(&wd, &ht, &iwidth, &iheight); + + const float diff = 3.0f * zoom_scale / 2.0; float x0 = 0.0f, y0 = 0.0f; float dx = 0.0f, dy = 0.0f; @@ -309,8 +311,8 @@ // we change the offset value float pts[8] = { x0, y0, dx, dy, x0 + 10.0f, y0, x0, y0 + 10.0f }; dt_dev_distort_backtransform(darktable.develop, pts, 4); - *anchorx = pts[0] / darktable.develop->preview_pipe->iwidth; - *anchory = pts[1] / darktable.develop->preview_pipe->iheight; + *anchorx = pts[0] / iwidth; + *anchory = pts[1] / iheight; float rot = atan2f(pts[3] - pts[1], pts[2] - pts[0]); // If the transform has flipped the image about one axis, then the @@ -345,6 +347,9 @@ dt_masks_form_gui_t *gui, const int index) { + float wd, ht, iwidth, iheight; + dt_masks_get_image_size(&wd, &ht, &iwidth, &iheight); + if(which == 3 && dt_is_valid_maskid(parentid) && gui->edit_mode == DT_MASKS_EDIT_FULL) @@ -390,13 +395,11 @@ gui->form_dragging = FALSE; // we change the center value - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd + gui->dx, pzy * ht + gui->dy }; dt_dev_distort_backtransform(darktable.develop, pts, 1); - gradient->anchor[0] = pts[0] / darktable.develop->preview_pipe->iwidth; - gradient->anchor[1] = pts[1] / darktable.develop->preview_pipe->iheight; + gradient->anchor[0] = pts[0] / iwidth; + gradient->anchor[1] = pts[1] / iheight; dt_dev_add_masks_history_item(darktable.develop, module, TRUE); // we recreate the form points @@ -418,8 +421,6 @@ // we end the form rotating gui->form_rotating = FALSE; - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; const float x = pzx * wd; const float y = pzy * ht; @@ -487,18 +488,14 @@ } else if(gui->creation) { - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; - // get the rotation angle only if we are not too close from starting point - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(darktable.develop, zoom, 1 << closeup, 1); + const float zoom_scale = dt_dev_get_zoom_scale_full(); // we create the gradient dt_masks_point_gradient_t *gradient = (dt_masks_point_gradient_t *)(malloc(sizeof(dt_masks_point_gradient_t))); + // get the rotation angle only if we are not too close from starting point _gradient_init_values(zoom_scale, gui, gui->posx, gui->posy, pzx * wd, pzy * ht, &gradient->anchor[0], &gradient->anchor[1], &gradient->rotation, @@ -562,11 +559,15 @@ const float pzy, const double pressure, const int which, + const float zoom_scale, dt_masks_form_t *form, const dt_mask_id_t parentid, dt_masks_form_gui_t *gui, const int index) { + float wd, ht, iwidth, iheight; + dt_masks_get_image_size(&wd, &ht, &iwidth, &iheight); + if(gui->creation && gui->form_dragging) { dt_control_queue_redraw_center(); @@ -579,13 +580,11 @@ (dt_masks_point_gradient_t *)((form->points)->data); // we change the center value - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd + gui->dx, pzy * ht + gui->dy }; dt_dev_distort_backtransform(darktable.develop, pts, 1); - gradient->anchor[0] = pts[0] / darktable.develop->preview_pipe->iwidth; - gradient->anchor[1] = pts[1] / darktable.develop->preview_pipe->iheight; + gradient->anchor[0] = pts[0] / iwidth; + gradient->anchor[1] = pts[1] / iheight; // we recreate the form points dt_masks_gui_form_create(form, gui, index, module); @@ -597,8 +596,6 @@ dt_masks_point_gradient_t *gradient = (dt_masks_point_gradient_t *)((form->points)->data); - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; const float x = pzx * wd; const float y = pzy * ht; @@ -639,13 +636,10 @@ } else if(!gui->creation) { - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(darktable.develop, zoom, 1<<closeup, 1); const float as = dt_masks_sensitive_dist(zoom_scale); const float as2 = sqf(as); - const float x = pzx * darktable.develop->preview_pipe->backbuf_width; - const float y = pzy * darktable.develop->preview_pipe->backbuf_height; + const float x = pzx * wd; + const float y = pzy * ht; gboolean in, inb, ins; int near; float dist; @@ -723,8 +717,8 @@ *points = NULL; *points_count = 0; - const float wd = dev->preview_pipe->iwidth; - const float ht = dev->preview_pipe->iheight; + float wd, ht; + dt_masks_get_image_size(NULL, NULL, &wd, &ht); const float scale = sqrtf(wd * wd + ht * ht); const float distance = 0.1f * fminf(wd, ht); @@ -828,8 +822,8 @@ float *points1 = NULL, *points2 = NULL; int points_count1 = 0, points_count2 = 0; - const float wd = dev->preview_pipe->iwidth; - const float ht = dev->preview_pipe->iheight; + float wd, ht; + dt_masks_get_image_size(NULL, NULL, &wd, &ht); const float scale = sqrtf(wd * wd + ht * ht); const float v1 = (-(rotation - 90.0f) / 180.0f) * M_PI; @@ -926,10 +920,11 @@ if(borders && pts_line_count <= 3) return; if(!borders && pts_line_count <= 4) return; + float wd, ht, iwidth, iheight; + dt_masks_get_image_size(&wd, &ht, &iwidth, &iheight); + const float *points = (borders) ? pts_line : pts_line + 6; const int points_count = (borders) ? pts_line_count : pts_line_count - 3; - const float wd = darktable.develop->preview_pipe->iwidth; - const float ht = darktable.develop->preview_pipe->iheight; int count = 0; float x = 0.0f, y = 0.0f; @@ -945,7 +940,7 @@ x = points[count * 2]; y = points[count * 2 + 1]; - if(!_gradient_is_canonical(x, y, wd, ht)) + if(!_gradient_is_canonical(x, y, iwidth, iwidth)) { count++; continue; @@ -956,7 +951,7 @@ count++; for(; count < points_count && dt_isnormal(points[count * 2]); count++) { - if(!_gradient_is_canonical(points[count * 2], points[count * 2 + 1], wd, ht)) + if(!_gradient_is_canonical(points[count * 2], points[count * 2 + 1], iwidth, iwidth)) break; cairo_line_to(cr, points[count * 2], points[count * 2 + 1]); @@ -1014,23 +1009,8 @@ // preview gradient creation if(gui->creation) { - const float zoom_x = dt_control_get_dev_zoom_x(); - const float zoom_y = dt_control_get_dev_zoom_y(); - - float xpos = 0.0f, ypos = 0.0f; - if((gui->posx == -1.0f && gui->posy == -1.0f) || gui->mouse_leaved_center) - { - xpos = (.5f + zoom_x) * darktable.develop->preview_pipe->backbuf_width; - ypos = (.5f + zoom_y) * darktable.develop->preview_pipe->backbuf_height; - } - else - { - xpos = gui->posx; - ypos = gui->posy; - } - float xx = 0.0f, yy = 0.0f, rotation = 0.0f, compression = 0.0f, curvature = 0.0f; - _gradient_init_values(zoom_scale, gui, xpos, ypos, xpos, ypos, &xx, &yy, + _gradient_init_values(zoom_scale, gui, gui->posx, gui->posy, gui->posx, gui->posy, &xx, &yy, &rotation, &compression, &curvature); float *points = NULL; @@ -1166,18 +1146,13 @@ int *posx, int *posy) { - double start2 = 0.0; - if(darktable.unmuted & DT_DEBUG_PERF) start2 = dt_get_wtime(); + double start2 = dt_get_debug_wtime(); // we get the area if(!_gradient_get_area(module, piece, form, width, height, posx, posy)) return 0; - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] gradient area took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] gradient area took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); // we get the gradient values dt_masks_point_gradient_t *gradient = @@ -1212,13 +1187,9 @@ points[(j * gw + i) * 2 + 1] = (grid * j + py); } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] gradient draw took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] gradient draw took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); // we backtransform all these points if(!dt_dev_distort_backtransform_plus(module->dev, piece->pipe, @@ -1230,13 +1201,9 @@ return 0; } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] gradient transform took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] gradient transform took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); // we calculate the mask at grid points and recycle point buffer to store results const float wd = piece->pipe->iwidth; @@ -1353,9 +1320,9 @@ dt_free_align(points); - if(darktable.unmuted & DT_DEBUG_PERF) - dt_print(DT_DEBUG_MASKS, "[masks %s] gradient fill took %0.04f sec\n", form->name, - dt_get_wtime() - start2); + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] gradient fill took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); return 1; } @@ -1367,8 +1334,8 @@ const dt_iop_roi_t *roi, float *buffer) { - double start2 = 0.0; - if(darktable.unmuted & DT_DEBUG_PERF) start2 = dt_get_wtime(); + double start2 = dt_get_debug_wtime(); + // we get the gradient values const dt_masks_point_gradient_t *gradient = (dt_masks_point_gradient_t *)(form->points->data); @@ -1405,13 +1372,9 @@ points[index * 2 + 1] = (grid * j + py) * iscale; } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] gradient draw took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] gradient draw took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); // we backtransform all these points if(!dt_dev_distort_backtransform_plus(module->dev, piece->pipe, @@ -1423,13 +1386,9 @@ return 0; } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] gradient transform took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] gradient transform took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); // we calculate the mask at grid points and recycle point buffer to store results const float wd = piece->pipe->iwidth; @@ -1541,9 +1500,9 @@ dt_free_align(points); - if(darktable.unmuted & DT_DEBUG_PERF) - dt_print(DT_DEBUG_MASKS, "[masks %s] gradient fill took %0.04f sec\n", form->name, - dt_get_wtime() - start2); + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] gradient fill took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); return 1; } diff -Nru darktable-4.4.2/src/develop/masks/group.c darktable-4.6.1/src/develop/masks/group.c --- darktable-4.4.2/src/develop/masks/group.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/masks/group.c 2024-02-16 17:31:09.000000000 +0000 @@ -136,14 +136,12 @@ const float pzy, const double pressure, const int which, + const float zoom_scale, dt_masks_form_t *form, const int unused1, dt_masks_form_gui_t *gui, const int unused2) { - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(darktable.develop, zoom, 1<<closeup, 1); const float as = dt_masks_sensitive_dist(zoom_scale); // we first don't do anything if we are inside a scrolling session @@ -168,7 +166,7 @@ if(!sel) return 0; int rep = 0; if(sel->functions) - rep = sel->functions->mouse_moved(module, pzx, pzy, pressure, which, sel, fpt->parentid, + rep = sel->functions->mouse_moved(module, pzx, pzy, pressure, which, zoom_scale, sel, fpt->parentid, gui, gui->group_edited); if(rep) return 1; // if a point is in state editing, then we don't want that another @@ -200,8 +198,11 @@ float dist = FLT_MAX; inside = inside_border = inside_source = 0; near = -1; - const float xx = pzx * darktable.develop->preview_pipe->backbuf_width, - yy = pzy * darktable.develop->preview_pipe->backbuf_height; + + float wd, ht; + dt_masks_get_image_size(&wd, &ht, NULL, NULL); + const float xx = pzx * wd, + yy = pzy * ht; if(frm && frm->functions && frm->functions->get_distance) frm->functions->get_distance(xx, yy, as, gui, pos, g_list_length(frm->points), &inside, &inside_border, &near, &inside_source, &dist); @@ -222,7 +223,7 @@ if(sel && sel->functions) { gui->group_edited = gui->group_selected = sel_pos; - return sel->functions->mouse_moved(module, pzx, pzy, pressure, which, + return sel->functions->mouse_moved(module, pzx, pzy, pressure, which, zoom_scale, sel, sel_fpt->parentid, gui, gui->group_edited); } @@ -327,12 +328,11 @@ &w[pos], &h[pos], &px[pos], &py[pos]); if(fpt->state & DT_MASKS_STATE_INVERSE) { - const double start = dt_get_wtime(); + double start = dt_get_wtime(); _inverse_mask(module, piece, sel, &bufs[pos], &w[pos], &h[pos], &px[pos], &py[pos]); - if(darktable.unmuted & DT_DEBUG_PERF) - dt_print(DT_DEBUG_MASKS, - "[masks %s] inverse took %0.04f sec\n", - sel->name, dt_get_wtime() - start); + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] inverse took %0.04f sec\n", + sel->name, dt_get_lap_time(&start)); } op[pos] = fpt->opacity; states[pos] = fpt->state; @@ -362,7 +362,7 @@ // and we copy each buffer inside, row by row for(int i = 0; i < nb; i++) { - const double start = dt_get_wtime(); + double start = dt_get_debug_wtime(); if(states[i] & (DT_MASKS_STATE_UNION | DT_MASKS_STATE_SUM)) { for(int y = 0; y < h[i]; y++) @@ -443,10 +443,9 @@ } } - if(darktable.unmuted & DT_DEBUG_PERF) - dt_print(DT_DEBUG_MASKS, - "[masks %d] combine took %0.04f sec\n", - i, dt_get_wtime() - start); + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %d] combine took %0.04f sec\n", + i, dt_get_lap_time(&start)); } free(op); @@ -715,8 +714,8 @@ const dt_iop_roi_t *const roi, float *const restrict buffer) { - double start = dt_get_wtime(); if(!form->points) return 0; + double start = dt_get_debug_wtime(); int nb_ok = 0; const int width = roi->width; @@ -743,6 +742,18 @@ const float op = fpt->opacity; const int state = fpt->state; + if(darktable.dump_pfm_module) + { + char *filename = g_strdup_printf("mask-%d", fpt->formid); + dt_dump_pfm(filename, + bufs, + width, + height, + sizeof(float), + module->op); + g_free(filename); + } + if(ok) { // first see if we need to invert this shape @@ -786,15 +797,25 @@ } } - if(darktable.unmuted & DT_DEBUG_PERF) - dt_print(DT_DEBUG_MASKS, - "[masks %d] combine took %0.04f sec\n", - nb_ok, dt_get_wtime() - start); - start = dt_get_wtime(); + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %d] combine took %0.04f sec\n", + nb_ok, dt_get_lap_time(&start)); nb_ok++; } } + + if(darktable.dump_pfm_module) + { + char *filename = g_strdup_printf("mask-combined-%d", fpt->formid); + dt_dump_pfm(filename, + buffer, + width, + height, + sizeof(float), + module->op); + g_free(filename); + } } // and we free the intermediate buffer dt_free_align(bufs); @@ -808,15 +829,14 @@ const dt_iop_roi_t *roi, float *buffer) { - const double start = dt_get_wtime(); if(!form) return 0; + double start = dt_get_debug_wtime(); const int ok = dt_masks_get_mask_roi(module, piece, form, roi, buffer); - if(darktable.unmuted & DT_DEBUG_PERF) - dt_print(DT_DEBUG_MASKS, - "[masks] render all masks took %0.04f sec\n", - dt_get_wtime() - start); + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks] render all masks took %0.04f sec\n", + dt_get_lap_time(&start)); return ok; } diff -Nru darktable-4.4.2/src/develop/masks/masks.c darktable-4.6.1/src/develop/masks/masks.c --- darktable-4.4.2/src/develop/masks/masks.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/masks/masks.c 2024-02-16 17:31:09.000000000 +0000 @@ -180,7 +180,6 @@ memset(gui, 0, sizeof(dt_masks_form_gui_t)); gui->posx = gui->posy = -1.0f; - gui->mouse_leaved_center = TRUE; gui->posx_source = gui->posy_source = -1.0f; gui->source_pos_type = DT_MASKS_SOURCE_POS_RELATIVE_TEMP; } @@ -931,10 +930,12 @@ "SELECT imgid, formid, form, name, version, points, points_count, source, num" " FROM main.masks_history" " WHERE imgid = ?1" + " AND num < ?2" " ORDER BY num", -1, &stmt, NULL); // clang-format on DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, imgid); + DT_DEBUG_SQLITE3_BIND_INT(stmt, 2, dev->history_end); while(sqlite3_step(stmt) == SQLITE_ROW) { @@ -1073,10 +1074,18 @@ int dt_masks_events_mouse_leave(struct dt_iop_module_t *module) { - if(darktable.develop->form_gui) + dt_develop_t *dev = darktable.develop; + if(dev->form_gui) { - dt_masks_form_gui_t *gui = darktable.develop->form_gui; - gui->mouse_leaved_center = TRUE; + dt_masks_form_gui_t *gui = dev->form_gui; + float zoom_x, zoom_y; + dt_dev_get_viewport_params(&dev->full, NULL, NULL, &zoom_x, &zoom_y); + + float wd, ht; + dt_masks_get_image_size(&wd, &ht, NULL, NULL); + gui->posx = (.5f + zoom_x) * wd; + gui->posy = (.5f + zoom_y) * ht; + dt_control_hinter_message(darktable.control, ""); } return 0; @@ -1084,41 +1093,34 @@ int dt_masks_events_mouse_enter(struct dt_iop_module_t *module) { - if(darktable.develop->form_gui) - { - dt_masks_form_gui_t *gui = darktable.develop->form_gui; - gui->mouse_leaved_center = FALSE; - } return 0; } int dt_masks_events_mouse_moved(struct dt_iop_module_t *module, - const double x, - const double y, + const float pzx, + const float pzy, const double pressure, - const int which) + const int which, + const float zoom_scale) { // record mouse position even if there are no masks visible dt_masks_form_gui_t *gui = darktable.develop->form_gui; dt_masks_form_t *form = darktable.develop->form_visible; - float pzx = 0.0f, pzy = 0.0f; - dt_dev_get_pointer_zoom_pos(darktable.develop, x, y, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; if(gui) { // This assume that if this event is generated the mouse is over // the center window - gui->mouse_leaved_center = FALSE; - gui->posx = pzx * darktable.develop->preview_pipe->backbuf_width; - gui->posy = pzy * darktable.develop->preview_pipe->backbuf_height; + float wd, ht; + dt_masks_get_image_size(&wd, &ht, NULL, NULL); + gui->posx = pzx * wd; + gui->posy = pzy * ht; } int rep = 0; if(form->functions) - rep = form->functions->mouse_moved(module, pzx, pzy, pressure, which, form, 0, gui, 0); + rep = form->functions->mouse_moved(module, pzx, pzy, pressure, which, zoom_scale, form, 0, gui, 0); if(gui) _set_hinter_message(gui, form); @@ -1126,18 +1128,15 @@ } int dt_masks_events_button_released(struct dt_iop_module_t *module, - const double x, - const double y, + const float pzx, + const float pzy, const int which, - const uint32_t state) + const uint32_t state, + const float zoom_scale) { dt_develop_t *dev = darktable.develop; dt_masks_form_t *form = dev->form_visible; dt_masks_form_gui_t *gui = dev->form_gui; - float pzx = 0.0f, pzy = 0.0f; - dt_dev_get_pointer_zoom_pos(dev, x, y, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; ++darktable.gui->reset; if(dev->mask_form_selected_id) @@ -1148,7 +1147,7 @@ { const int ret = form->functions->button_released(module, pzx, pzy, which, state, form, 0, gui, 0); - form->functions->mouse_moved(module, pzx, pzy, 0, which, form, 0, gui, 0); + form->functions->mouse_moved(module, pzx, pzy, 0, which, zoom_scale, form, 0, gui, 0); return ret; } @@ -1156,8 +1155,8 @@ } int dt_masks_events_button_pressed(struct dt_iop_module_t *module, - const double x, - const double y, + const float pzx, + const float pzy, const double pressure, const int which, const int type, @@ -1165,10 +1164,6 @@ { dt_masks_form_t *form = darktable.develop->form_visible; dt_masks_form_gui_t *gui = darktable.develop->form_gui; - float pzx = 0.0f, pzy = 0.0f; - dt_dev_get_pointer_zoom_pos(darktable.develop, x, y, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; // allow to select a shape inside an iop if(gui && which == 1) @@ -1204,17 +1199,13 @@ } int dt_masks_events_mouse_scrolled(struct dt_iop_module_t *module, - const double x, - const double y, + const float pzx, + const float pzy, const gboolean up, const uint32_t state) { dt_masks_form_t *form = darktable.develop->form_visible; dt_masks_form_gui_t *gui = darktable.develop->form_gui; - float pzx = 0.0f, pzy = 0.0f; - dt_dev_get_pointer_zoom_pos(darktable.develop, x, y, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; int ret = 0; const gboolean incr = dt_mask_scroll_increases(up); @@ -1252,8 +1243,9 @@ cairo_t *cr, const int32_t width, const int32_t height, - const int32_t pointerx, - const int32_t pointery) + const float pzx, + const float pzy, + const float zoom_scale) { dt_develop_t *dev = darktable.develop; dt_masks_form_t *form = dev->form_visible; @@ -1261,26 +1253,9 @@ if(!gui) return; if(!form) return; - const float wd = dev->preview_pipe->backbuf_width; - const float ht = dev->preview_pipe->backbuf_height; - if(wd < 1.0 || ht < 1.0) return; - float pzx = 0.0f, pzy = 0.0f; - dt_dev_get_pointer_zoom_pos(dev, pointerx, pointery, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; - const float zoom_y = dt_control_get_dev_zoom_y(); - const float zoom_x = dt_control_get_dev_zoom_x(); - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 1); - cairo_save(cr); cairo_set_source_rgb(cr, .3, .3, .3); - cairo_translate(cr, width / 2.0, height / 2.0f); - cairo_scale(cr, zoom_scale, zoom_scale); - cairo_translate(cr, -.5f * wd - zoom_x * wd, -.5f * ht - zoom_y * ht); - cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND); // we update the form if needed @@ -1358,7 +1333,7 @@ void dt_masks_reset_form_gui(void) { dt_masks_change_form_gui(NULL); - const dt_iop_module_t *m = darktable.develop->gui_module; + const dt_iop_module_t *m = dt_dev_gui_module(); if(m && (m->flags() & IOP_FLAGS_SUPPORTS_BLENDING) && !(m->flags() & IOP_FLAGS_NO_MASKS) @@ -2104,9 +2079,9 @@ // dt_similarity_image_dirty(dev->image_storage.id); // invalidate buffers and force redraw of darkroom - dev->pipe->changed |= DT_DEV_PIPE_SYNCH; + dev->full.pipe->changed |= DT_DEV_PIPE_SYNCH; dev->preview_pipe->changed |= DT_DEV_PIPE_SYNCH; - dev->preview2_pipe->changed |= DT_DEV_PIPE_SYNCH; + dev->preview2.pipe->changed |= DT_DEV_PIPE_SYNCH; dt_dev_invalidate_all(dev); } @@ -2455,7 +2430,7 @@ if(selection_changed) { if(!module && darktable.develop->mask_form_selected_id == 0) - module = darktable.develop->gui_module; + module = dt_dev_gui_module(); if(module) { if(module->masks_selection_changed) @@ -2478,7 +2453,8 @@ dashed[1] /= zoom_scale; cairo_set_dash(cr, dashed, 0, 0); - cairo_set_line_width(cr, 3.0 / zoom_scale); + const double lwidth = (dt_iop_canvas_not_sensitive(darktable.develop) ? 0.5 : 1.0) / zoom_scale; + cairo_set_line_width(cr, 3.0 * lwidth); cairo_set_source_rgba(cr, .3, .3, .3, .8); cairo_move_to(cr, x + dx, y); @@ -2487,7 +2463,7 @@ cairo_line_to(cr, x, y - dy); cairo_stroke_preserve(cr); - cairo_set_line_width(cr, 1.0 / zoom_scale); + cairo_set_line_width(cr, lwidth); cairo_set_source_rgba(cr, .8, .8, .8, .8); cairo_stroke(cr); } @@ -2510,8 +2486,10 @@ // both source types record an absolute position, for the relative // type, the first time is used the position is recorded, the second // time a relative position is calculated based on that one - gui->posx_source = pzx * darktable.develop->preview_pipe->backbuf_width; - gui->posy_source = pzy * darktable.develop->preview_pipe->backbuf_height; + float wd, ht; + dt_masks_get_image_size(&wd, &ht, NULL, NULL); + gui->posx_source = pzx * wd; + gui->posy_source = pzy * ht; } // set the initial source position value for a clone mask @@ -2521,10 +2499,8 @@ const float pzx, const float pzy) { - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; - const float iwd = darktable.develop->preview_pipe->iwidth; - const float iht = darktable.develop->preview_pipe->iheight; + float wd, ht, iwidth, iheight; + dt_masks_get_image_size(&wd, &ht, &iwidth, &iheight); // if this is the first time the relative pos is used if(gui->source_pos_type == DT_MASKS_SOURCE_POS_RELATIVE_TEMP) @@ -2534,7 +2510,7 @@ { if(form->functions && form->functions->initial_source_pos) { - form->functions->initial_source_pos(iwd, iht, &gui->posx_source, &gui->posy_source); + form->functions->initial_source_pos(iwidth, iheight, &gui->posx_source, &gui->posy_source); } else dt_print(DT_DEBUG_ALWAYS, "[dt_masks_set_source_pos_initial_value]" @@ -2543,8 +2519,8 @@ float pts[2] = { pzx * wd + gui->posx_source, pzy * ht + gui->posy_source }; dt_dev_distort_backtransform(darktable.develop, pts, 1); - form->source[0] = pts[0] / iwd; - form->source[1] = pts[1] / iht; + form->source[0] = pts[0] / iwidth; + form->source[1] = pts[1] / iheight; } else { @@ -2553,8 +2529,8 @@ float pts[2] = { gui->posx_source, gui->posy_source }; dt_dev_distort_backtransform(darktable.develop, pts, 1); - form->source[0] = pts[0] / iwd; - form->source[1] = pts[1] / iht; + form->source[0] = pts[0] / iwidth; + form->source[1] = pts[1] / iheight; gui->posx_source = gui->posx_source - pzx * wd; gui->posy_source = gui->posy_source - pzy * ht; @@ -2570,8 +2546,8 @@ pzy * ht + gui->posy_source }; dt_dev_distort_backtransform(darktable.develop, pts, 1); - form->source[0] = pts[0] / iwd; - form->source[1] = pts[1] / iht; + form->source[0] = pts[0] / iwidth; + form->source[1] = pts[1] / iheight; } else if(gui->source_pos_type == DT_MASKS_SOURCE_POS_ABSOLUTE) { @@ -2579,8 +2555,8 @@ float pts_src[2] = { gui->posx_source, gui->posy_source }; dt_dev_distort_backtransform(darktable.develop, pts_src, 1); - form->source[0] = pts_src[0] / iwd; - form->source[1] = pts_src[1] / iht; + form->source[0] = pts_src[0] / iwidth; + form->source[1] = pts_src[1] / iheight; } else dt_print(DT_DEBUG_ALWAYS, "[dt_masks_set_source_pos_initial_value]" @@ -2598,10 +2574,10 @@ float *py, const int adding) { + float wd, ht, iwidth, iheight; + dt_masks_get_image_size(&wd, &ht, &iwidth, &iheight); + float x = 0.0f, y = 0.0f; - const float pr_d = darktable.develop->preview_downsampling; - const float iwd = pr_d * darktable.develop->preview_pipe->iwidth; - const float iht = pr_d * darktable.develop->preview_pipe->iheight; if(gui->source_pos_type == DT_MASKS_SOURCE_POS_RELATIVE) { @@ -2616,32 +2592,32 @@ //require passing 'form' through multiple layers...) if(form->functions && form->functions->initial_source_pos) { - form->functions->initial_source_pos(iwd, iht, &x, &y); + form->functions->initial_source_pos(iwidth, iheight, &x, &y); x += xpos; y += ypos; } #else if(mask_type & DT_MASKS_CIRCLE) { - dt_masks_functions_circle.initial_source_pos(iwd, iht, &x, &y); + dt_masks_functions_circle.initial_source_pos(iwidth, iheight, &x, &y); x += xpos; y += ypos; } else if(mask_type & DT_MASKS_ELLIPSE) { - dt_masks_functions_ellipse.initial_source_pos(iwd, iht, &x, &y); + dt_masks_functions_ellipse.initial_source_pos(iwidth, iheight, &x, &y); x += xpos; y += ypos; } else if(mask_type & DT_MASKS_PATH) { - dt_masks_functions_path.initial_source_pos(iwd, iht, &x, &y); + dt_masks_functions_path.initial_source_pos(iwidth, iheight, &x, &y); x += xpos; y += ypos; } else if(mask_type & DT_MASKS_BRUSH) { - dt_masks_functions_brush.initial_source_pos(iwd, iht, &x, &y); + dt_masks_functions_brush.initial_source_pos(iwidth, iheight, &x, &y); x += xpos; y += ypos; } @@ -2696,7 +2672,8 @@ anchor_size, anchor_size); cairo_fill_preserve(cr); - cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(selected ? 2.0 : 1.0) / zoom_scale); + const double lwidth = (dt_iop_canvas_not_sensitive(darktable.develop) ? 0.5 : 1.0) / zoom_scale; + cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(selected ? 2.0 : 1.0) * lwidth); dt_draw_set_color_overlay(cr, FALSE, 0.8); cairo_stroke(cr); } @@ -2714,7 +2691,8 @@ dt_draw_set_color_overlay(cr, TRUE, 0.8); cairo_fill_preserve(cr); - cairo_set_line_width(cr, 1.0 / zoom_scale); + const double lwidth = (dt_iop_canvas_not_sensitive(darktable.develop) ? 0.5 : 1.0) / zoom_scale; + cairo_set_line_width(cr, lwidth); dt_draw_set_color_overlay(cr, FALSE, 0.8); cairo_stroke(cr); } @@ -2727,10 +2705,9 @@ const float zoom_scale, const gboolean touch_dest) { - const float pr_d = darktable.develop->preview_downsampling; const float dx = from_x - to_x; const float dy = from_y - to_y; - const float arrow_size = DT_PIXEL_APPLY_DPI(24.0f) * pr_d; + const float arrow_size = DT_PIXEL_APPLY_DPI(24.0f); const float arrow_scale = arrow_size / sqrtf(3.f * zoom_scale); @@ -2780,18 +2757,19 @@ double dashed[] = { 0, 0 }; cairo_set_dash(cr, dashed, 0, 0); + const double lwidth = (dt_iop_canvas_not_sensitive(darktable.develop) ? 0.5 : 1.0) / zoom_scale; if((gui->group_selected == group) && (gui->form_selected || gui->form_dragging)) - cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(2.5) / zoom_scale); + cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(2.5) * lwidth); else - cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(1.5) / zoom_scale); + cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(1.5) * lwidth); dt_draw_set_color_overlay(cr, FALSE, 0.8); cairo_stroke_preserve(cr); if((gui->group_selected == group) && (gui->form_selected || gui->form_dragging)) - cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(1.0) / zoom_scale); + cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(1.0) * lwidth); else - cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(0.5) / zoom_scale); + cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(0.5) * lwidth); dt_draw_set_color_overlay(cr, TRUE, 0.8); cairo_stroke(cr); @@ -2844,17 +2822,17 @@ dt_draw_set_color_overlay(cr, FALSE, selected ? 0.8 : 0.5); cairo_set_dash(cr, dashed, border ? len : 0, 0); + const double lwidth = (dt_iop_canvas_not_sensitive(darktable.develop) ? 0.5 : 1.0) / zoom_scale; const double line_width = ((border ? size_border : (source ? size_source : size_mask)) - * (selected ? factor_selected : 1.0)) / zoom_scale; + * (selected ? factor_selected : 1.0)) * lwidth; cairo_set_line_width(cr, line_width); cairo_stroke_preserve(cr); - // second the forground draw, lighter (same size as darker if selected) - cairo_set_line_width - (cr, (line_width / (selected && !border ? 1.0 : 2.0))); + // second the foreground draw, lighter (same size as darker if selected) + cairo_set_line_width(cr, (line_width / (selected && !border ? 1.0 : 2.0))); dt_draw_set_color_overlay(cr, TRUE, selected ? 0.9 : 0.6); cairo_set_dash(cr, dashed, border ? len : 0, 4); diff -Nru darktable-4.4.2/src/develop/masks/path.c darktable-4.6.1/src/develop/masks/path.c --- darktable-4.4.2/src/develop/masks/path.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/masks/path.c 2024-02-16 17:31:09.000000000 +0000 @@ -652,9 +652,7 @@ int *border_count, const gboolean source) { - double start2 = 0.0; - - if(darktable.unmuted & DT_DEBUG_PERF) start2 = dt_get_wtime(); + double start2 = dt_get_debug_wtime(); const float wd = pipe->iwidth, ht = pipe->iheight; const guint nb = g_list_length(form->points); @@ -720,12 +718,9 @@ int cw = _path_is_clockwise(form); if(cw == 0) cw = -1; - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, "[masks %s] path_points init took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] path_points init took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); // we render all segments const GList *form_points = form->points; @@ -847,13 +842,9 @@ dt_masks_dynbuf_free(dborder); } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, "[masks %s] path_points point recurs %0.04f sec\n", - form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] path_points point recurs %0.04f sec\n", + form->name, dt_get_lap_time(&start2)); // we don't want the border to self-intersect int inter_count = 0; @@ -861,13 +852,9 @@ { inter_count = _path_find_self_intersection(intersections, nb, *border, *border_count); - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] path_points self-intersect took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] path_points self-intersect took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); } // and we transform them with all distorted modules @@ -908,9 +895,9 @@ goto fail; } - if(darktable.unmuted & DT_DEBUG_PERF) - dt_print(DT_DEBUG_MASKS, "[masks %s] path_points end took %0.04f sec\n", - form->name, dt_get_wtime() - start2); + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] path_points end took %0.04f sec\n", + form->name, dt_get_lap_time(&start2)); dt_masks_dynbuf_free(intersections); dt_free_align(border_init); @@ -923,13 +910,9 @@ || dt_dev_distort_transform_plus(dev, pipe, iop_order, transf_direction, *border, *border_count)) { - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] path_points transform took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] path_points transform took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); if(border) { @@ -965,10 +948,9 @@ } } - if(darktable.unmuted & DT_DEBUG_PERF) - dt_print(DT_DEBUG_MASKS, - "[masks %s] path_points end took %0.04f sec\n", form->name, - dt_get_wtime() - start2); + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] path_points end took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); dt_masks_dynbuf_free(intersections); dt_free_align(border_init); @@ -1312,6 +1294,9 @@ (dt_masks_form_gui_points_t *)g_list_nth_data(gui->points, index); if(!gpt) return 0; + float wd, ht, iwidth, iheight; + dt_masks_get_image_size(&wd, &ht, &iwidth, &iheight); + const float masks_border = MIN(dt_conf_get_float(DT_MASKS_CONF(form->type, path, border)), 0.5f); @@ -1442,13 +1427,11 @@ (dt_masks_point_path_t *)(malloc(sizeof(dt_masks_point_path_t))); int nb = g_list_length(form->points); // change the values - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd, pzy * ht }; dt_dev_distort_backtransform(darktable.develop, pts, 1); - bzpt->corner[0] = pts[0] / darktable.develop->preview_pipe->iwidth; - bzpt->corner[1] = pts[1] / darktable.develop->preview_pipe->iheight; + bzpt->corner[0] = pts[0] / iwidth; + bzpt->corner[1] = pts[1] / iheight; bzpt->ctrl1[0] = bzpt->ctrl1[1] = bzpt->ctrl2[0] = bzpt->ctrl2[1] = -1.0; bzpt->state = DT_MASKS_POINT_STATE_NORMAL; @@ -1459,8 +1442,8 @@ { dt_masks_point_path_t *bzpt2 = (dt_masks_point_path_t *)(malloc(sizeof(dt_masks_point_path_t))); - bzpt2->corner[0] = pts[0] / darktable.develop->preview_pipe->iwidth; - bzpt2->corner[1] = pts[1] / darktable.develop->preview_pipe->iheight; + bzpt2->corner[0] = pts[0] / iwidth; + bzpt2->corner[1] = pts[1] / iheight; bzpt2->ctrl1[0] = bzpt2->ctrl1[1] = bzpt2->ctrl2[0] = bzpt2->ctrl2[1] = -1.0; bzpt2->border[0] = bzpt2->border[1] = MAX(0.0005f, masks_border); bzpt2->state = DT_MASKS_POINT_STATE_NORMAL; @@ -1582,13 +1565,11 @@ dt_masks_point_path_t *bzpt = (dt_masks_point_path_t *)(malloc(sizeof(dt_masks_point_path_t))); // change the values - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd, pzy * ht }; dt_dev_distort_backtransform(darktable.develop, pts, 1); - bzpt->corner[0] = pts[0] / darktable.develop->preview_pipe->iwidth; - bzpt->corner[1] = pts[1] / darktable.develop->preview_pipe->iheight; + bzpt->corner[0] = pts[0] / iwidth; + bzpt->corner[1] = pts[1] / iheight; bzpt->ctrl1[0] = bzpt->ctrl1[1] = bzpt->ctrl2[0] = bzpt->ctrl2[1] = -1.0; bzpt->state = DT_MASKS_POINT_STATE_NORMAL; @@ -1753,6 +1734,10 @@ dt_masks_form_gui_points_t *gpt = (dt_masks_form_gui_points_t *)g_list_nth_data(gui->points, index); if(!gpt) return 0; + + float wd, ht, iwidth, iheight; + dt_masks_get_image_size(&wd, &ht, &iwidth, &iheight); + if(gui->form_dragging) { // we end the form dragging @@ -1760,12 +1745,10 @@ // we get point0 new values dt_masks_point_path_t *point = (dt_masks_point_path_t *)(form->points)->data; - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd + gui->dx, pzy * ht + gui->dy }; dt_dev_distort_backtransform(darktable.develop, pts, 1); - const float dx = pts[0] / darktable.develop->preview_pipe->iwidth - point->corner[0]; - const float dy = pts[1] / darktable.develop->preview_pipe->iheight - point->corner[1]; + const float dx = pts[0] / iwidth - point->corner[0]; + const float dy = pts[1] / iheight - point->corner[1]; // we move all points for(GList *points = form->points; points; points = g_list_next(points)) @@ -1795,12 +1778,10 @@ gui->source_dragging = FALSE; // we change the source value - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd + gui->dx, pzy * ht + gui->dy }; dt_dev_distort_backtransform(darktable.develop, pts, 1); - form->source[0] = pts[0] / darktable.develop->preview_pipe->iwidth; - form->source[1] = pts[1] / darktable.develop->preview_pipe->iheight; + form->source[0] = pts[0] / iwidth; + form->source[1] = pts[1] / iheight; dt_dev_add_masks_history_item(darktable.develop, module, TRUE); // we recreate the form points @@ -1830,12 +1811,10 @@ return 1; } gui->scrollx = gui->scrolly = 0; - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd, pzy * ht }; dt_dev_distort_backtransform(darktable.develop, pts, 1); - const float dx = pts[0] / darktable.develop->preview_pipe->iwidth - point->corner[0]; - const float dy = pts[1] / darktable.develop->preview_pipe->iheight - point->corner[1]; + const float dx = pts[0] / iwidth - point->corner[0]; + const float dy = pts[1] / iheight - point->corner[1]; point->corner[0] += dx; point->corner[1] += dy; @@ -1861,20 +1840,18 @@ dt_masks_point_path_t *point = (dt_masks_point_path_t *)g_list_nth_data(form->points, gui->feather_dragging); gui->feather_dragging = -1; - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; float pts[2] = { pzx * wd, pzy * ht }; dt_dev_distort_backtransform(darktable.develop, pts, 1); float p1x, p1y, p2x, p2y; - _path_feather_to_ctrl(point->corner[0] * darktable.develop->preview_pipe->iwidth, - point->corner[1] * darktable.develop->preview_pipe->iheight, + _path_feather_to_ctrl(point->corner[0] * iwidth, + point->corner[1] * iheight, pts[0], pts[1], &p1x, &p1y, &p2x, &p2y, gpt->clockwise); - point->ctrl1[0] = p1x / darktable.develop->preview_pipe->iwidth; - point->ctrl1[1] = p1y / darktable.develop->preview_pipe->iheight; - point->ctrl2[0] = p2x / darktable.develop->preview_pipe->iwidth; - point->ctrl2[1] = p2y / darktable.develop->preview_pipe->iheight; + point->ctrl1[0] = p1x / iwidth; + point->ctrl1[1] = p1y / iheight; + point->ctrl2[0] = p2x / iwidth; + point->ctrl2[1] = p2y / iheight; point->state = DT_MASKS_POINT_STATE_USER; @@ -1909,14 +1886,12 @@ float pzy, const double pressure, const int which, + const float zoom_scale, dt_masks_form_t *form, const dt_mask_id_t parentid, dt_masks_form_gui_t *gui, const int index) { - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(darktable.develop, zoom, 1<<closeup, 1); // centre view will have zoom_scale * backbuf_width pixels, we want // the handle offset to scale with DPI: const float as = dt_masks_sensitive_dist(zoom_scale); @@ -1926,8 +1901,8 @@ (dt_masks_form_gui_points_t *)g_list_nth_data(gui->points, index); if(!gpt) return 0; - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; + float wd, ht, iwidth, iheight; + dt_masks_get_image_size(&wd, &ht, &iwidth, &iheight); if(gui->point_dragging >= 0) { @@ -1951,8 +1926,8 @@ dt_dev_distort_backtransform(darktable.develop, pts, 1); dt_masks_point_path_t *bzpt = (dt_masks_point_path_t *)g_list_nth_data(form->points, gui->point_dragging); - pzx = pts[0] / darktable.develop->preview_pipe->iwidth; - pzy = pts[1] / darktable.develop->preview_pipe->iheight; + pzx = pts[0] / iwidth; + pzy = pts[1] / iheight; // if first point, adjust the source accordingly if((form->type & DT_MASKS_CLONE) @@ -1985,8 +1960,8 @@ dt_masks_point_path_t *point2 = (dt_masks_point_path_t *)pt2->data; float pts[2] = { pzx * wd + gui->dx, pzy * ht + gui->dy }; dt_dev_distort_backtransform(darktable.develop, pts, 1); - const float dx = pts[0] / darktable.develop->preview_pipe->iwidth - point->corner[0]; - const float dy = pts[1] / darktable.develop->preview_pipe->iheight - point->corner[1]; + const float dx = pts[0] / iwidth - point->corner[0]; + const float dy = pts[1] / iheight - point->corner[1]; // if first or last segment, adjust the source accordingly as the source point // is at the end of the first segment and at the start of the last one. @@ -2031,14 +2006,14 @@ = (dt_masks_point_path_t *)g_list_nth_data(form->points, gui->feather_dragging); float p1x, p1y, p2x, p2y; - _path_feather_to_ctrl(point->corner[0] * darktable.develop->preview_pipe->iwidth, - point->corner[1] * darktable.develop->preview_pipe->iheight, + _path_feather_to_ctrl(point->corner[0] * iwidth, + point->corner[1] * iheight, pts[0], pts[1], &p1x, &p1y, &p2x, &p2y, gpt->clockwise); - point->ctrl1[0] = p1x / darktable.develop->preview_pipe->iwidth; - point->ctrl1[1] = p1y / darktable.develop->preview_pipe->iheight; - point->ctrl2[0] = p2x / darktable.develop->preview_pipe->iwidth; - point->ctrl2[1] = p2y / darktable.develop->preview_pipe->iheight; + point->ctrl1[0] = p1x / iwidth; + point->ctrl1[1] = p1y / iheight; + point->ctrl2[0] = p2x / iwidth; + point->ctrl2[1] = p2y / iheight; point->state = DT_MASKS_POINT_STATE_USER; _path_init_ctrl_points(form); @@ -2062,11 +2037,11 @@ dt_masks_point_path_t *point = (dt_masks_point_path_t *)g_list_nth_data(form->points, k); - const float nx = point->corner[0] * darktable.develop->preview_pipe->iwidth; - const float ny = point->corner[1] * darktable.develop->preview_pipe->iheight; + const float nx = point->corner[0] * iwidth; + const float ny = point->corner[1] * iheight; const float nr = sqrtf((pts[0] - nx) * (pts[0] - nx) + (pts[1] - ny) * (pts[1] - ny)); - const float bdr = nr / fminf(darktable.develop->preview_pipe->iwidth, - darktable.develop->preview_pipe->iheight); + const float bdr = nr / fminf(iwidth, + iheight); point->border[0] = point->border[1] = bdr; @@ -2084,8 +2059,8 @@ if(gui->form_dragging) { dt_masks_point_path_t *point = (dt_masks_point_path_t *)(form->points)->data; - const float dx = pts[0] / darktable.develop->preview_pipe->iwidth - point->corner[0]; - const float dy = pts[1] / darktable.develop->preview_pipe->iheight - point->corner[1]; + const float dx = pts[0] / iwidth - point->corner[0]; + const float dy = pts[1] / iheight - point->corner[1]; for(GList *points = form->points; points; points = g_list_next(points)) { point = (dt_masks_point_path_t *)points->data; @@ -2099,8 +2074,8 @@ } else { - form->source[0] = pts[0] / darktable.develop->preview_pipe->iwidth; - form->source[1] = pts[1] / darktable.develop->preview_pipe->iheight; + form->source[0] = pts[0] / iwidth; + form->source[1] = pts[1] / iheight; } // we recreate the form points @@ -2187,7 +2162,7 @@ int near = 0; float dist = 0; _path_get_distance(pzx, pzy, as, gui, index, nb, &in, &inb, &near, &ins, &dist); - gui->seg_selected = near; + gui->seg_selected = dist < sqf(as) ? near : -1; // no segment selected, set form or source selection if(near < 0) @@ -2345,22 +2320,10 @@ } else { - float xpos, ypos; - if((gui->posx == -1.f && gui->posy == -1.f) || gui->mouse_leaved_center) - { - xpos = (.5f + dt_control_get_dev_zoom_x()) - * darktable.develop->preview_pipe->backbuf_width; - ypos = (.5f + dt_control_get_dev_zoom_y()) - * darktable.develop->preview_pipe->backbuf_height; - } - else - { - xpos = gui->posx; - ypos = gui->posy; - } - float x = 0.0f, y = 0.0f; - dt_masks_calculate_source_pos_value(gui, DT_MASKS_PATH, xpos, ypos, xpos, ypos, + dt_masks_calculate_source_pos_value(gui, DT_MASKS_PATH, + gui->posx, gui->posy, + gui->posx, gui->posy, &x, &y, FALSE); dt_masks_draw_clone_source_pos(cr, zoom_scale, x, y); } @@ -2592,10 +2555,8 @@ int *posy) { if(!module) return 0; - double start = 0.0; - double start2 = 0.0; - - if(darktable.unmuted & DT_DEBUG_PERF) start = dt_get_wtime(); + double start = dt_get_debug_wtime(); + double start2 = start; // we get buffers for all points float *points = NULL, *border = NULL; @@ -2610,13 +2571,10 @@ return 0; } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] path points took %0.04f sec\n", - form->name, dt_get_wtime() - start); - start = start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] path points took %0.04f sec\n", + form->name, dt_get_lap_time(&start)); + start2 = start; // now we want to find the area, so we search min/max points const guint nb_corner = g_list_length(form->points); @@ -2626,13 +2584,9 @@ const int hb = *height; const int wb = *width; - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] path_fill min max took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] path_fill min max took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); // we allocate the buffer const size_t bufsize = (size_t)(*width) * (*height); @@ -2752,13 +2706,9 @@ if(ii != i) break; } } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] path_fill draw path took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] path_fill draw path took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); #ifdef _OPENMP #pragma omp parallel for \ @@ -2776,13 +2726,9 @@ } } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] path_fill fill plain took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] path_fill fill plain took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); // now we fill the falloff int p0[2] = { 0 }, p1[2] = { 0 }; @@ -2824,18 +2770,16 @@ } } - if(darktable.unmuted & DT_DEBUG_PERF) - dt_print(DT_DEBUG_MASKS, - "[masks %s] path_fill fill falloff took %0.04f sec\n", form->name, - dt_get_wtime() - start2); + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] path_fill fill falloff took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); dt_free_align(points); dt_free_align(border); - if(darktable.unmuted & DT_DEBUG_PERF) - dt_print(DT_DEBUG_MASKS, - "[masks %s] path fill buffer took %0.04f sec\n", form->name, - dt_get_wtime() - start); + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] path fill buffer took %0.04f sec\n", form->name, + dt_get_lap_time(&start)); return 1; } @@ -3044,9 +2988,8 @@ float *buffer) { if(!module) return 0; - double start = 0.0; + double start = dt_get_debug_wtime(); double start2 = 0.0; - if(darktable.unmuted & DT_DEBUG_PERF) start = dt_get_wtime(); const int px = roi->x; const int py = roi->y; @@ -3076,13 +3019,10 @@ return 0; } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] path points took %0.04f sec\n", - form->name, dt_get_wtime() - start); - start = start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] path points took %0.04f sec\n", + form->name, dt_get_lap_time(&start)); + start2 = start; const guint nb_corner = g_list_length(form->points); @@ -3180,21 +3120,13 @@ _path_bounding_box_raw(points, border, nb_corner, points_count, border_count, &xmin, &xmax, &ymin, &ymax); - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] path_fill min max took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } - - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] path_fill clear mask took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] path_fill min max took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); + + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] path_fill clear mask took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); // deal with path if it does not lie outside of roi if(path_in_roi) @@ -3222,13 +3154,9 @@ height); path_encircles_roi = path_encircles_roi || !crop_success; - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] path_fill crop to roi took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] path_fill crop to roi took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); if(path_encircles_roi) { @@ -3283,13 +3211,9 @@ } } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] path_fill draw path took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] path_fill draw path took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); // we fill the inside plain // we don't need to deal with parts of shape outside of roi @@ -3319,13 +3243,9 @@ } } - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] path_fill fill plain took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - start2 = dt_get_wtime(); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] path_fill fill plain took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); } dt_free_align(cpoints); } @@ -3407,21 +3327,17 @@ dt_free_align(dpoints); - if(darktable.unmuted & DT_DEBUG_PERF) - { - dt_print(DT_DEBUG_MASKS, - "[masks %s] path_fill fill falloff took %0.04f sec\n", form->name, - dt_get_wtime() - start2); - } + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] path_fill fill falloff took %0.04f sec\n", form->name, + dt_get_lap_time(&start2)); } dt_free_align(points); dt_free_align(border); - if(darktable.unmuted & DT_DEBUG_PERF) - dt_print(DT_DEBUG_MASKS, - "[masks %s] path fill buffer took %0.04f sec\n", form->name, - dt_get_wtime() - start); + dt_print(DT_DEBUG_MASKS | DT_DEBUG_PERF, + "[masks %s] path fill buffer took %0.04f sec\n", form->name, + dt_get_lap_time(&start)); return 1; } diff -Nru darktable-4.4.2/src/develop/masks.h darktable-4.6.1/src/develop/masks.h --- darktable-4.4.2/src/develop/masks.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/masks.h 2024-02-16 17:31:09.000000000 +0000 @@ -267,6 +267,7 @@ float pzy, const double pressure, const int which, + const float zoom_scale, struct dt_masks_form_t *form, const dt_imgid_t parentid, struct dt_masks_form_gui_t *gui, @@ -358,7 +359,6 @@ // values for mouse positions, etc... float posx, posy, dx, dy, scrollx, scrolly, posx_source, posy_source; // TRUE if mouse has leaved the center window - gboolean mouse_leaved_center; gboolean form_selected; gboolean border_selected; gboolean source_selected; @@ -399,8 +399,8 @@ uint64_t pipe_hash; } dt_masks_form_gui_t; -/** special value to indicate an invalid or unitialized coordinate (replaces */ -/** former use of NAN and isnan() by the most negative float) **/ +/** special value to indicate an invalid or uninitialized coordinate */ +/** (replaces former use of NAN and isnan() by the most negative float) **/ #define DT_INVALID_COORDINATE (-FLT_MAX) /** the shape-specific function tables */ @@ -414,8 +414,8 @@ /** init dt_masks_form_gui_t struct with default values */ void dt_masks_init_form_gui(dt_masks_form_gui_t *gui); -/** get points in real space with respect of distortion dx and dy are used to eventually move the center of - * the circle */ +/** get points in real space with respect of distortion dx and dy are + * used to eventually move the center of the circle */ int dt_masks_get_points_border(dt_develop_t *dev, dt_masks_form_t *form, float **points, @@ -454,6 +454,7 @@ ? form->functions->get_mask(module, piece, form, buffer, width, height, posx, posy) : 0; } + static inline int dt_masks_get_mask_roi(const dt_iop_module_t *const module, const dt_dev_pixelpipe_iop_t *const piece, dt_masks_form_t *const form, @@ -523,33 +524,36 @@ void dt_masks_reset_show_masks_icons(void); int dt_masks_events_mouse_moved(struct dt_iop_module_t *module, - const double x, - const double y, + const float x, + const float y, const double pressure, - const int which); + const int which, + const float zoom_scale); int dt_masks_events_button_released(struct dt_iop_module_t *module, - const double x, - const double y, + const float x, + const float y, const int which, - const uint32_t state); + const uint32_t state, + const float zoom_scale); int dt_masks_events_button_pressed(struct dt_iop_module_t *module, - const double x, - const double y, + const float x, + const float y, const double pressure, const int which, const int type, const uint32_t state); int dt_masks_events_mouse_scrolled(struct dt_iop_module_t *module, - const double x, - const double y, + const float x, + const float y, const gboolean up, const uint32_t state); void dt_masks_events_post_expose(struct dt_iop_module_t *module, cairo_t *cr, const int32_t width, const int32_t height, - const int32_t pointerx, - const int32_t pointery); + const float pointerx, + const float pointery, + const float zoom_scale); int dt_masks_events_mouse_leave(struct dt_iop_module_t *module); int dt_masks_events_mouse_enter(struct dt_iop_module_t *module); @@ -668,30 +672,21 @@ const int width, const int height, const int border); -void dt_masks_blur_9x9_coeff(float *coeffs, const float sigma); -void dt_masks_blur_9x9(float *const src, - float *const out, - const int width, - const int height, - const float sigma); -gboolean dt_masks_calc_rawdetail_mask(dt_dev_detail_mask_t *details, - float *const src, - const dt_aligned_pixel_t wb); -gboolean dt_masks_calc_detail_mask(dt_dev_detail_mask_t *details, - float *const out, +void dt_masks_blur_coeff(float *coeffs, const float sigma); +void dt_masks_blur(float *const src, + float *const out, + const int width, + const int height, + const float sigma, + const float gain, + const float clip); +gboolean dt_masks_calc_scharr_mask(dt_dev_detail_mask_t *details, + float *const src, + const dt_aligned_pixel_t wb); +float *dt_masks_calc_detail_mask(struct dt_dev_pixelpipe_iop_t *piece, const float threshold, const gboolean detail); -/** the output data are blurred-val * gain and are clipped to be within 0 to clip - The returned int might be used to expand the border as this depends on sigma */ -int dt_masks_blur_fast(float *const src, - float *const out, - const int width, - const int height, - const float sigma, - const float gain, - const float clip); - /** return the list of possible mouse actions */ GSList *dt_masks_mouse_actions(dt_masks_form_t *form); @@ -955,6 +950,18 @@ return DT_PIXEL_APPLY_DPI(7) / zoom_scale; } +static inline void dt_masks_get_image_size(float *width, + float *height, + float *iwidth, + float *iheight) +{ + dt_dev_pixelpipe_t *preview = darktable.develop->preview_pipe; + if(width ) *width = preview->backbuf_width; + if(height ) *height = preview->backbuf_height; + if(iwidth ) *iwidth = preview->iwidth; + if(iheight) *iheight = preview->iheight; +} + #ifdef __cplusplus } // extern "C" #endif /* __cplusplus */ diff -Nru darktable-4.4.2/src/develop/noise_generator.h darktable-4.6.1/src/develop/noise_generator.h --- darktable-4.4.2/src/develop/noise_generator.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/noise_generator.h 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2020 - darktable developers. + Copyright (C) 2020-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -33,7 +33,7 @@ static inline uint32_t splitmix32(const uint64_t seed) { // fast random number generator - // reference : http://prng.di.unimi.it/splitmix64.c + // reference: http://prng.di.unimi.it/splitmix64.c uint64_t result = (seed ^ (seed >> 33)) * 0x62a9d9ed799705f5ul; result = (result ^ (result >> 28)) * 0xcb24d0a5c88c35b3ul; return (uint32_t)(result >> 32); @@ -55,7 +55,7 @@ static inline float xoshiro128plus(uint32_t state[4]) { // fast random number generator - // reference : http://prng.di.unimi.it/ + // reference: http://prng.di.unimi.it/ const unsigned int result = state[0] + state[3]; const unsigned int t = state[1] << 9; @@ -67,7 +67,8 @@ state[2] ^= t; state[3] = rol32(state[3], 11); - return (float)(result >> 8) * 0x1.0p-24f; // take the first 24 bits and put them in mantissa + // take the first 24 bits and put them in mantissa + return (float)(result >> 8) * 0x1.0p-24f; } @@ -83,12 +84,15 @@ #ifdef _OPENMP #pragma omp declare simd uniform(sigma) aligned(state:64) #endif -static inline float gaussian_noise(const float mu, const float sigma, const int flip, uint32_t state[4]) -{ - // Create gaussian noise centered in mu of standard deviation sigma - // state should be initialized with xoshiro256_init() before calling and private in thread - // flip needs to be flipped every next iteration - // reference : https://en.wikipedia.org/wiki/Box%E2%80%93Muller_transform +static inline float gaussian_noise(const float mu, + const float sigma, + const int flip, + uint32_t state[4]) +{ + // Create gaussian noise centered in mu of standard deviation sigma. + // state should be initialized with xoshiro256_init() before calling and private in thread. + // flip needs to be flipped every next iteration. + // Reference: https://en.wikipedia.org/wiki/Box%E2%80%93Muller_transform const float u1 = fmaxf(xoshiro128plus(state), FLT_MIN); const float u2 = xoshiro128plus(state); @@ -101,9 +105,12 @@ #ifdef _OPENMP #pragma omp declare simd uniform(sigma) aligned(state:64) #endif -static inline float poisson_noise(const float mu, const float sigma, const int flip, uint32_t state[4]) +static inline float poisson_noise(const float mu, + const float sigma, + const int flip, + uint32_t state[4]) { - // create poisson noise - It's just gaussian noise with Anscombe transform applied + // Create poissonian noise - it's just gaussian noise with Anscombe transform applied. const float u1 = fmaxf(xoshiro128plus(state), FLT_MIN); const float u2 = xoshiro128plus(state); const float noise = (flip) ? sqrtf(-2.0f * logf(u1)) * cosf(2.f * M_PI * u2) : @@ -117,7 +124,10 @@ #pragma omp declare simd uniform(distribution, param) aligned(state:64) #endif static inline float dt_noise_generator(const dt_noise_distribution_t distribution, - const float mu, const float param, const int flip, uint32_t state[4]) + const float mu, + const float param, + const int flip, + uint32_t state[4]) { // scalar version @@ -135,13 +145,21 @@ } } + #ifdef _OPENMP -#pragma omp declare simd uniform(sigma) aligned(state:64) aligned(mu, sigma, out:16) -#endif -static inline void uniform_noise_simd(const dt_aligned_pixel_t mu, const dt_aligned_pixel_t sigma, - uint32_t state[4], dt_aligned_pixel_t out) -{ - const dt_aligned_pixel_t noise = { xoshiro128plus(state), xoshiro128plus(state), xoshiro128plus(state) }; +#pragma omp declare simd \ + uniform(sigma) \ + aligned(state:64) \ + aligned(mu, sigma, out:16) +#endif +static inline void uniform_noise_simd(const dt_aligned_pixel_t mu, + const dt_aligned_pixel_t sigma, + uint32_t state[4], + dt_aligned_pixel_t out) +{ + const dt_aligned_pixel_t noise = { xoshiro128plus(state), + xoshiro128plus(state), + xoshiro128plus(state) }; for_each_channel(c) out[c] = mu[c] + 2.0f * (noise[c] - 0.5f) * sigma[c]; @@ -149,15 +167,21 @@ #ifdef _OPENMP -#pragma omp declare simd uniform(sigma) aligned(state:64) aligned(mu, sigma, flip, out:16) -#endif -static inline void gaussian_noise_simd(const dt_aligned_pixel_t mu, const dt_aligned_pixel_t sigma, - const int flip[4], uint32_t state[4], dt_aligned_pixel_t out) -{ - // Create gaussian noise centered in mu of standard deviation sigma - // state should be initialized with xoshiro256_init() before calling and private in thread - // flip needs to be flipped every next iteration - // reference : https://en.wikipedia.org/wiki/Box%E2%80%93Muller_transform +#pragma omp declare simd \ + uniform(sigma) \ + aligned(state:64) \ + aligned(mu, sigma, flip, out:16) +#endif +static inline void gaussian_noise_simd(const dt_aligned_pixel_t mu, + const dt_aligned_pixel_t sigma, + const int flip[4], + uint32_t state[4], + dt_aligned_pixel_t out) +{ + // Create gaussian noise centered in mu of standard deviation sigma. + // state should be initialized with xoshiro256_init() before calling and private in thread. + // flip needs to be flipped every next iteration. + // Reference: https://en.wikipedia.org/wiki/Box%E2%80%93Muller_transform dt_aligned_pixel_t u1 = { 0.f }; dt_aligned_pixel_t u2 = { 0.f }; @@ -184,12 +208,18 @@ #ifdef _OPENMP -#pragma omp declare simd uniform(sigma) aligned(state:64) aligned(mu, sigma, flip, out:16) -#endif -static inline void poisson_noise_simd(const dt_aligned_pixel_t mu, const dt_aligned_pixel_t sigma, const int flip[4], - uint32_t state[4], dt_aligned_pixel_t out) +#pragma omp declare simd \ + uniform(sigma) \ + aligned(state:64) \ + aligned(mu, sigma, flip, out:16) +#endif +static inline void poisson_noise_simd(const dt_aligned_pixel_t mu, + const dt_aligned_pixel_t sigma, + const int flip[4], + uint32_t state[4], + dt_aligned_pixel_t out) { - // create poissonian noise - It's just gaussian noise with Anscombe transform applied + // Create poissonian noise - it's just gaussian noise with Anscombe transform applied. dt_aligned_pixel_t u1 = { 0.f }; dt_aligned_pixel_t u2 = { 0.f }; @@ -208,7 +238,7 @@ sqrtf(-2.0f * logf(u1[c])) * sinf(2.f * M_PI * u2[c]); } - // now we have gaussian noise, then apply Anscombe transform to get poissonian one + // Now we have gaussian noise, then apply Anscombe transform to get poissonian one. dt_aligned_pixel_t r = { 0.f }; #pragma unroll @@ -221,11 +251,17 @@ #ifdef _OPENMP -#pragma omp declare simd uniform(distribution, param) aligned(state:64) aligned(mu, param, flip, out:16) +#pragma omp declare simd \ + uniform(distribution, param) \ + aligned(state:64) \ + aligned(mu, param, flip, out:16) #endif static inline void dt_noise_generator_simd(const dt_noise_distribution_t distribution, - const dt_aligned_pixel_t mu, const dt_aligned_pixel_t param, - const int flip[4], uint32_t state[4], dt_aligned_pixel_t out) + const dt_aligned_pixel_t mu, + const dt_aligned_pixel_t param, + const int flip[4], + uint32_t state[4], + dt_aligned_pixel_t out) { // vector version @@ -251,9 +287,9 @@ } } } + // clang-format off // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/develop/pixelpipe.h darktable-4.6.1/src/develop/pixelpipe.h --- darktable-4.4.2/src/develop/pixelpipe.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/pixelpipe.h 2024-02-16 17:31:09.000000000 +0000 @@ -37,9 +37,12 @@ DT_DEV_PIXELPIPE_PREVIEW = 1 << 2, DT_DEV_PIXELPIPE_THUMBNAIL = 1 << 3, DT_DEV_PIXELPIPE_PREVIEW2 = 1 << 4, + DT_DEV_PIXELPIPE_SCREEN = DT_DEV_PIXELPIPE_PREVIEW | DT_DEV_PIXELPIPE_FULL | DT_DEV_PIXELPIPE_PREVIEW2, DT_DEV_PIXELPIPE_ANY = DT_DEV_PIXELPIPE_EXPORT | DT_DEV_PIXELPIPE_FULL | DT_DEV_PIXELPIPE_PREVIEW | DT_DEV_PIXELPIPE_THUMBNAIL | DT_DEV_PIXELPIPE_PREVIEW2, - DT_DEV_PIXELPIPE_FAST = 1 << 8 + DT_DEV_PIXELPIPE_FAST = 1 << 8, + DT_DEV_PIXELPIPE_IMAGE = 1 << 9, // special additional flag used by dt_dev_image() + DT_DEV_PIXELPIPE_BASIC = DT_DEV_PIXELPIPE_FULL | DT_DEV_PIXELPIPE_PREVIEW } dt_dev_pixelpipe_type_t; /** when to collect histogram */ @@ -48,7 +51,7 @@ DT_REQUEST_NONE = 0, DT_REQUEST_ON = 1 << 0, DT_REQUEST_ONLY_IN_GUI = 1 << 1, - DT_REQUEST_EXPANDED = 1 << 2 // + DT_REQUEST_EXPANDED = 1 << 2 // } dt_dev_request_flags_t; typedef enum dt_dev_pixelpipe_display_mask_t diff -Nru darktable-4.4.2/src/develop/pixelpipe_cache.c darktable-4.6.1/src/develop/pixelpipe_cache.c --- darktable-4.4.2/src/develop/pixelpipe_cache.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/pixelpipe_cache.c 2024-02-16 17:31:09.000000000 +0000 @@ -23,8 +23,8 @@ #include "libs/colorpicker.h" #include <stdlib.h> -#define INVALID_CACHEHASH ULLONG_MAX -#define UNUSED_CACHEHASH 0 +#define INVALID_CACHEHASH 0 + static inline int _to_mb(size_t m) { return (int)((m + 0x80000lu) / 0x400lu / 0x400lu); @@ -41,24 +41,19 @@ cache->entries = entries; cache->allmem = cache->hits = cache->calls = cache->tests = 0; cache->memlimit = limit; - cache->data = (void **)calloc(entries, sizeof(void *)); - cache->size = (size_t *)calloc(entries, sizeof(size_t)); - cache->dsc = (dt_iop_buffer_dsc_t *)calloc(entries, sizeof(dt_iop_buffer_dsc_t)); -#ifdef _DEBUG - memset(cache->dsc, 0x2c, sizeof(dt_iop_buffer_dsc_t) * entries); -#endif - cache->basichash = (uint64_t *)calloc(entries, sizeof(uint64_t)); - cache->hash = (uint64_t *)calloc(entries, sizeof(uint64_t)); - cache->used = (int32_t *)calloc(entries, sizeof(int32_t)); - cache->ioporder = (int32_t *)calloc(entries, sizeof(int32_t)); + + const size_t csize = sizeof(void *) + sizeof(size_t) + sizeof(dt_iop_buffer_dsc_t) + 2*sizeof(int32_t) + sizeof(uint64_t); + cache->data = (void **) calloc(entries, csize); + cache->size = (size_t *)((void *)cache->data + entries * sizeof(void *)); + cache->dsc = (dt_iop_buffer_dsc_t *)((void *)cache->size + entries * sizeof(size_t)); + cache->hash = (uint64_t *)((void *)cache->dsc + entries * sizeof(dt_iop_buffer_dsc_t)); + cache->used = (int32_t *)((void *)cache->hash + entries * sizeof(uint64_t)); + cache->ioporder = (int32_t *)((void *)cache->used + entries * sizeof(int32_t)); for(int k = 0; k < entries; k++) { - cache->size[k] = 0; - cache->data[k] = NULL; - cache->basichash[k] = cache->hash[k] = UNUSED_CACHEHASH; - cache->used[k] = 1 + k; - cache->ioporder[k] = 0; + cache->hash[k] = INVALID_CACHEHASH; + cache->used[k] = 64 + k; } if(!size) return TRUE; @@ -69,10 +64,7 @@ cache->data[k] = (void *)dt_alloc_align(64, size); if(!cache->data[k]) goto alloc_memory_fail; -#ifdef _DEBUG - memset(cache->data[k], 0x5d, size); -#endif - ASAN_POISON_MEMORY_REGION(cache->data[k], cache->size[k]); + cache->allmem += size; } return TRUE; @@ -109,21 +101,9 @@ } free(cache->data); cache->data = NULL; - free(cache->dsc); - cache->dsc = NULL; - free(cache->basichash); - cache->basichash = NULL; - free(cache->hash); - cache->hash = NULL; - free(cache->used); - cache->used = NULL; - free(cache->size); - cache->size = NULL; - free(cache->ioporder); - cache->ioporder = NULL; } -uint64_t dt_dev_pixelpipe_cache_basichash( +static uint64_t _dev_pixelpipe_cache_basichash( const dt_imgid_t imgid, struct dt_dev_pixelpipe_t *pipe, const int position) @@ -139,7 +119,7 @@ not valid any more. Do we have to keep the roi of details mask? No as that is always defined by roi_in of the mask writing module (rawprepare or demosaic) - */ + */ const uint32_t hashing_pipemode[3] = {(uint32_t)imgid, (uint32_t)pipe->type, (uint32_t)pipe->want_detail_mask }; @@ -154,8 +134,12 @@ { dt_dev_pixelpipe_iop_t *piece = (dt_dev_pixelpipe_iop_t *)pieces->data; dt_develop_t *dev = piece->module->dev; - if(!(dev->gui_module && dev->gui_module != piece->module - && (dev->gui_module->operation_tags_filter() & piece->module->operation_tags()))) + + // don't take skipped modules into account + const gboolean skipped = dt_iop_module_is_skipped(dev, piece->module) + && (pipe->type & DT_DEV_PIXELPIPE_BASIC); + + if(!skipped) { hash = ((hash << 5) + hash) ^ piece->hash; if(piece->module->request_color_pick != DT_REQUEST_COLORPICK_OFF) @@ -179,69 +163,33 @@ return hash; } -uint64_t dt_dev_pixelpipe_cache_basichash_prior( +uint64_t dt_dev_pixelpipe_cache_hash( const dt_imgid_t imgid, + const dt_iop_roi_t *roi, struct dt_dev_pixelpipe_t *pipe, - const dt_iop_module_t *const module) -{ - // find the last enabled module prior to the specified one, then get its hash - GList *pieces = pipe->nodes; - GList *modules = pipe->iop; - int last = -1; - for(int k = 1; modules && pieces; k++) - { - dt_dev_pixelpipe_iop_t *piece = (dt_dev_pixelpipe_iop_t *)pieces->data; - if(module == (dt_iop_module_t *)modules->data) - break; // we've found the given module, so 'last' now contains the index of the prior active module - dt_develop_t *dev = piece->module->dev; - if(piece->enabled - && !(dev->gui_module && dev->gui_module != piece->module - && (dev->gui_module->operation_tags_filter() & piece->module->operation_tags()))) - last = k; - pieces = g_list_next(pieces); - modules = g_list_next(modules); - } - return (last >= 0) ? dt_dev_pixelpipe_cache_basichash(imgid, pipe, last) : INVALID_CACHEHASH; -} - -void dt_dev_pixelpipe_cache_fullhash( - const dt_imgid_t imgid, - const dt_iop_roi_t *roi, - struct dt_dev_pixelpipe_t *pipe, - const int position, - uint64_t *basichash, - uint64_t *fullhash) + const int position) { - uint64_t hash = *basichash = dt_dev_pixelpipe_cache_basichash(imgid, pipe, position); + uint64_t hash = _dev_pixelpipe_cache_basichash(imgid, pipe, position); // also include roi data char *str = (char *)roi; for(size_t i = 0; i < sizeof(dt_iop_roi_t); i++) hash = ((hash << 5) + hash) ^ str[i]; - str = (char *)&pipe->details.hash; + str = (char *)&pipe->scharr.hash; for(size_t i = 0; i < sizeof(uint64_t); i++) hash = ((hash << 5) + hash) ^ str[i]; - *fullhash = hash; -} -uint64_t dt_dev_pixelpipe_cache_hash( - const dt_imgid_t imgid, - const dt_iop_roi_t *roi, - dt_dev_pixelpipe_t *pipe, - const int position) -{ - uint64_t basichash, hash; - dt_dev_pixelpipe_cache_fullhash(imgid, roi, pipe, position, &basichash, &hash); return hash; } gboolean dt_dev_pixelpipe_cache_available( dt_dev_pixelpipe_t *pipe, const uint64_t hash, - const uint64_t basichash, const size_t size) { - if(pipe->mask_display || pipe->nocache) + if(pipe->mask_display + || pipe->nocache + || (hash == INVALID_CACHEHASH)) return FALSE; dt_dev_pixelpipe_cache_t *cache = &(pipe->cache); @@ -249,11 +197,7 @@ // search for hash in cache and make the sizes are identical for(int k = DT_PIPECACHE_MIN; k < cache->entries; k++) { - if((cache->size[k] == size) - && (cache->hash[k] == hash) - && (cache->basichash[k] == basichash) - && (cache->hash[k] != INVALID_CACHEHASH) - && (cache->basichash[k] != INVALID_CACHEHASH)) + if((cache->size[k] == size) && (cache->hash[k] == hash)) { cache->hits++; return TRUE; @@ -264,76 +208,60 @@ // While looking for the oldest cacheline we always ignore the first two lines as they are used // for swapping buffers while in entries==DT_PIPECACHE_MIN or masking mode -static int _get_oldest_cacheline(dt_dev_pixelpipe_cache_t *cache) +static int _get_oldest_cacheline(dt_dev_pixelpipe_cache_t *cache, + dt_dev_pixelpipe_cache_test_t mode) { // we never want the latest used cacheline! It was <= 0 and the weight has increased just now int age = 1; int id = 0; for(int k = DT_PIPECACHE_MIN; k < cache->entries; k++) { - if(cache->used[k] > age) + gboolean older = (cache->used[k] > age) && (k != cache->lastline); + if(older) { - age = cache->used[k]; - id = k; + if(mode == DT_CACHETEST_USED) older = cache->data[k] != NULL; + else if(mode == DT_CACHETEST_FREE) older = cache->data[k] == NULL; + else if(mode == DT_CACHETEST_INVALID) older = cache->hash[k] == INVALID_CACHEHASH; + if(older) + { + age = cache->used[k]; + id = k; + } } } return id; } -static int _get_oldest_used_cacheline(dt_dev_pixelpipe_cache_t *cache) +static int __get_cacheline(struct dt_dev_pixelpipe_cache_t *cache) { - int age = 1; - int id = 0; - for(int k = DT_PIPECACHE_MIN; k < cache->entries; k++) - { - if((cache->used[k] > age) && (cache->data[k] != NULL)) - { - age = cache->used[k]; - id = k; - } - } - return id; -} + int oldest = _get_oldest_cacheline(cache, DT_CACHETEST_INVALID); + if(oldest > 0) return oldest; -static int _get_oldest_free_cacheline(dt_dev_pixelpipe_cache_t *cache) -{ - // we never want the latest used cacheline! - int age = 1; - int id = 0; - for(int k = DT_PIPECACHE_MIN; k < cache->entries; k++) - { - if((cache->used[k] > age) && (cache->data[k] == NULL)) - { - age = cache->used[k]; - id = k; - } - } - return id; + oldest = _get_oldest_cacheline(cache, DT_CACHETEST_FREE); + if(oldest > 0) return oldest; + + oldest = _get_oldest_cacheline(cache, DT_CACHETEST_PLAIN); + return (oldest == 0) ? cache->calls & 1 : oldest; } static int _get_cacheline(struct dt_dev_pixelpipe_t *pipe) { dt_dev_pixelpipe_cache_t *cache = &(pipe->cache); - // Simplest case is some pipes having only two cachelines or we are in masking mode so we - // can just toggle between them. + // If pipe has only two cachelines or we are in masking or nocache mode + // we just toggle between the first two cachelines. + // These are also taken if there is no valid cacheline returned if((cache->entries == DT_PIPECACHE_MIN) || pipe->mask_display || pipe->nocache) return cache->calls & 1; - int oldest = _get_oldest_free_cacheline(cache); - if(oldest > 0) return oldest; - - oldest = _get_oldest_used_cacheline(cache); - if(oldest > 0) return oldest; - - oldest = _get_oldest_cacheline(cache); - return (oldest == 0) ? cache->calls & 1 : oldest; + cache->lastline = __get_cacheline(cache); + return cache->lastline; } // return TRUE in case of a hit static gboolean _get_by_hash( struct dt_dev_pixelpipe_t *pipe, + struct dt_iop_module_t *module, const uint64_t hash, - const uint64_t basichash, const size_t size, void **data, dt_iop_buffer_dsc_t **dsc) @@ -341,46 +269,39 @@ dt_dev_pixelpipe_cache_t *cache = &(pipe->cache); for(int k = DT_PIPECACHE_MIN; k < cache->entries; k++) { - if((cache->hash[k] == hash) - && (cache->basichash[k] == basichash) - && (cache->hash[k] != INVALID_CACHEHASH) - && (cache->basichash[k] != INVALID_CACHEHASH)) + if(cache->hash[k] == hash) { - /* We check for situation with a hash identity but buffer sizes don't match. + if(cache->size[k] != size) + { + /* We check for situation with a hash identity but buffer sizes don't match. This could happen because of "hash overlaps" or other situations where the hash - doesn't reflect the complete status. (or we have another bug in dt) - Also we don't use cached data while bypassing modules because of mask visualizing - or we have pipe->nocache set to TRUE - In these cases we don't want to simply realloc or alike as these data could possibly - still be used in the pipe. - Instead we make sure the cleanup after running the pixelpipe can free it but it - won't be taken in this pixelpipe process. - */ - if((cache->size[k] != size) || pipe->mask_display || pipe->nocache) + doesn't reflect the complete status. + Anyway this has to be accepted as a dt bug so we always report + */ + cache->hash[k] = INVALID_CACHEHASH; + dt_print_pipe(DT_DEBUG_ALWAYS, "CACHELINE_SIZE ERROR", pipe, module, NULL, NULL, "\n"); + } + else if(pipe->mask_display || pipe->nocache) { - cache->hash[k] = cache->basichash[k] = INVALID_CACHEHASH; + // this should not happen but we make sure + cache->hash[k] = INVALID_CACHEHASH; } else { // we have a proper hit *data = cache->data[k]; *dsc = &cache->dsc[k]; - ASAN_POISON_MEMORY_REGION(*data, cache->size[k]); - ASAN_UNPOISON_MEMORY_REGION(*data, size); - // in case of a hit it's always good to further keep the cacheline as important cache->used[k] = -cache->entries; return TRUE; } } } - return FALSE; } gboolean dt_dev_pixelpipe_cache_get( struct dt_dev_pixelpipe_t *pipe, - const uint64_t basichash, const uint64_t hash, const size_t size, void **data, @@ -394,13 +315,15 @@ cache->used[k]++; // age all entries // cache keeps history and we have a cache hit, so no new buffer - if(cache->entries > DT_PIPECACHE_MIN && _get_by_hash(pipe, hash, basichash, size, data, dsc)) + if(cache->entries > DT_PIPECACHE_MIN + && (hash != INVALID_CACHEHASH) + && _get_by_hash(pipe, module, hash, size, data, dsc)) { const dt_iop_buffer_dsc_t *cdsc = *dsc; dt_print_pipe(DT_DEBUG_PIPE, "cache HIT", pipe, module, NULL, NULL, - "%s, hash%22" PRIu64 "\n", - dt_iop_colorspace_to_name(cdsc->cst), hash); + "%s, hash=%" PRIx64 "\n", + dt_iop_colorspace_to_name(cdsc->cst), hash); return FALSE; } // We need a fresh buffer as there was no hit. @@ -410,14 +333,11 @@ // // Otherwise, get an old/free cacheline and allocate required size. // Check both for free and non-matching (and grow or shrink buffer). - - // Can the module having used this cacheline before might still use the data with other dsc? const int cline = _get_cacheline(pipe); - gboolean newdata = FALSE; + if(((cache->entries == DT_PIPECACHE_MIN) && (cache->size[cline] < size)) || ((cache->entries > DT_PIPECACHE_MIN) && (cache->size[cline] != size))) { - newdata = TRUE; dt_free_align(cache->data[cline]); cache->allmem -= cache->size[cline]; cache->data[cline] = (void *)dt_alloc_align(64, size); @@ -433,73 +353,51 @@ } *data = cache->data[cline]; - ASAN_UNPOISON_MEMORY_REGION(*data, size); // first, update our copy, then update the pointer to point at our copy cache->dsc[cline] = **dsc; *dsc = &cache->dsc[cline]; - const gboolean masking = pipe->mask_display != DT_DEV_PIXELPIPE_DISPLAY_NONE; - cache->basichash[cline] = masking ? UNUSED_CACHEHASH : basichash; - cache->hash[cline] = masking ? UNUSED_CACHEHASH : hash; - cache->used[cline] = !masking && important ? -cache->entries : 0; - cache->ioporder[cline] = module ? module->iop_order : 0; + const gboolean masking = pipe->mask_display != DT_DEV_PIXELPIPE_DISPLAY_NONE; + cache->hash[cline] = masking ? INVALID_CACHEHASH : hash; const dt_iop_buffer_dsc_t *cdsc = *dsc; dt_print_pipe(DT_DEBUG_PIPE | DT_DEBUG_VERBOSE, "pixelpipe_cache_get", pipe, module, NULL, NULL, - "%s %s %s line%3i at %p. hash%22" PRIu64 "\n", + "%s %sline%3i(%2i) at %p. hash=%" PRIx64 "%s\n", dt_iop_colorspace_to_name(cdsc->cst), - newdata ? "new" : " ", - important ? "important" : (masking ? "masking " : " "), - cline, cache->data[cline], cache->hash[cline], cache->basichash[cline]); + important ? "important " : "", + cline, cache->used[cline], cache->data[cline], cache->hash[cline], + masking ? ". masking." : ""); - return TRUE; -} + cache->used[cline] = !masking && important ? -cache->entries : 0; + cache->ioporder[cline] = module ? module->iop_order : 0; -/* if invalid is FALSE the buffer hash marks it as usable, otherwise the cacheline - will be usable again after the next dt_dev_pixelpipe_cache_checkmem() -*/ -static void _mark_invalid_cacheline(const dt_dev_pixelpipe_cache_t *cache, - const int k, - const gboolean invalid) -{ - cache->basichash[k] = cache->hash[k] = invalid - ? INVALID_CACHEHASH - : UNUSED_CACHEHASH; - cache->ioporder[k] = 0; + return TRUE; } -void dt_dev_pixelpipe_cache_flush(const struct dt_dev_pixelpipe_t *pipe) +static void _mark_invalid_cacheline(const dt_dev_pixelpipe_cache_t *cache, const int k) { - const dt_dev_pixelpipe_cache_t *cache = &(pipe->cache); - for(int k = DT_PIPECACHE_MIN; k < cache->entries; k++) - _mark_invalid_cacheline(cache, k, FALSE); + cache->hash[k] = INVALID_CACHEHASH; + cache->ioporder[k] = 0; } -void dt_dev_pixelpipe_cache_flush_all_but( +void dt_dev_pixelpipe_cache_invalidate_later( const struct dt_dev_pixelpipe_t *pipe, - const uint64_t basichash) + const int32_t order) { const dt_dev_pixelpipe_cache_t *cache = &(pipe->cache); + for(int k = DT_PIPECACHE_MIN; k < cache->entries; k++) { - if(cache->basichash[k] != basichash) - _mark_invalid_cacheline(cache, k, FALSE); + if((cache->ioporder[k] >= order) && (cache->hash[k] != INVALID_CACHEHASH)) + _mark_invalid_cacheline(cache, k); } } -void dt_dev_pixelpipe_cache_invalidate_later( - const struct dt_dev_pixelpipe_t *pipe, - const struct dt_iop_module_t *module) +void dt_dev_pixelpipe_cache_flush(const struct dt_dev_pixelpipe_t *pipe) { - const dt_dev_pixelpipe_cache_t *cache = &(pipe->cache); - const int32_t order = module ? module->iop_order : 0; - for(int k = DT_PIPECACHE_MIN; k < cache->entries; k++) - { - if(cache->ioporder[k] >= order) - _mark_invalid_cacheline(cache, k, TRUE); - } + dt_dev_pixelpipe_cache_invalidate_later(pipe, 0); } void dt_dev_pixelpipe_important_cacheline( @@ -512,8 +410,7 @@ { if((cache->data[k] == data) && (size == cache->size[k]) - && (cache->hash[k] != INVALID_CACHEHASH) - && (cache->hash[k] != UNUSED_CACHEHASH)) + && (cache->hash[k] != INVALID_CACHEHASH)) cache->used[k] = -cache->entries; } } @@ -524,8 +421,7 @@ const dt_dev_pixelpipe_cache_t *cache = &(pipe->cache); for(int k = DT_PIPECACHE_MIN; k < cache->entries; k++) { - if(cache->data[k] == data) - _mark_invalid_cacheline(cache, k, FALSE); + if(cache->data[k] == data) _mark_invalid_cacheline(cache, k); } } @@ -537,33 +433,19 @@ cache->allmem -= removed; cache->size[k] = 0; cache->data[k] = NULL; - _mark_invalid_cacheline(cache, k, FALSE); + _mark_invalid_cacheline(cache, k); return removed; } -static int _important_lines(const dt_dev_pixelpipe_cache_t *cache) -{ - int important = 0; - for(int k = DT_PIPECACHE_MIN; k < cache->entries; k++) - if(cache->used[k] < 0) important++; - return important; -} - -static int _used_lines(const dt_dev_pixelpipe_cache_t *cache) +static void _cline_stats(dt_dev_pixelpipe_cache_t *cache) { - int in_use = 0; + cache->lused = cache->linvalid = cache->limportant = 0; for(int k = DT_PIPECACHE_MIN; k < cache->entries; k++) - if(cache->data[k]) in_use++; - return in_use; -} - -static int _invalid_lines(const dt_dev_pixelpipe_cache_t *cache) -{ - int invalid = 0; - for(int k = DT_PIPECACHE_MIN; k < cache->entries; k++) - if(cache->data[k] && (cache->hash[k] == INVALID_CACHEHASH)) - invalid++; - return invalid; + { + if(cache->data[k] != NULL) cache->lused++; + if((cache->data[k] != NULL) && (cache->hash[k] == INVALID_CACHEHASH)) cache->linvalid++; + if(cache->used[k] < 0) cache->limportant++; + } } void dt_dev_pixelpipe_cache_checkmem(struct dt_dev_pixelpipe_t *pipe) @@ -574,52 +456,44 @@ // alternating buffers so no cleanup if(cache->entries == DT_PIPECACHE_MIN) return; + // We always free cachelines maked as not valid size_t freed = 0; - int invalid = 0; - // We should always free cachelines maked as not valid for(int k = DT_PIPECACHE_MIN; k < cache->entries; k++) { - if((cache->data[k] != NULL) && (cache->hash[k] == UNUSED_CACHEHASH)) + if((cache->hash[k] == INVALID_CACHEHASH) && cache->data) freed += _free_cacheline(cache, k); - if((cache->data[k] != NULL) && (cache->hash[k] == INVALID_CACHEHASH)) - { - freed += _free_cacheline(cache, k); - invalid++; - } } - int oldlines = 0; while(cache->memlimit && (cache->memlimit < cache->allmem)) { - const int k = _get_oldest_used_cacheline(cache); + const int k = _get_oldest_cacheline(cache, DT_CACHETEST_USED); if(k == 0) break; + freed += _free_cacheline(cache, k); - oldlines++; } + _cline_stats(cache); dt_print_pipe(DT_DEBUG_PIPE, "pixelpipe_cache_checkmem", pipe, NULL, NULL, NULL, - "%i lines (removed invalid=%i, oldlines=%i). Now important=%i, used=%i." - " Cache: freed=%iMB. Now using %iMB, limit=%iMB\n", - cache->entries, - invalid, oldlines, - _important_lines(cache), _used_lines(cache), + "%i lines (important=%i, used=%i). Freed %iMB. Using using %iMB, limit=%iMB\n", + cache->entries, cache->limportant, cache->lused, _to_mb(freed), _to_mb(cache->allmem), _to_mb(cache->memlimit)); } void dt_dev_pixelpipe_cache_report(struct dt_dev_pixelpipe_t *pipe) { dt_dev_pixelpipe_cache_t *cache = &(pipe->cache); + + _cline_stats(cache); dt_print_pipe(DT_DEBUG_PIPE, "cache report", pipe, NULL, NULL, NULL, - "%i lines (important=%i, used=%i, invalid=%i). Used %iMB, limit=%iMB. hits/run=%.2f, hits/test=%.3f\n", - cache->entries, _important_lines(cache), _used_lines(cache), _invalid_lines(cache), + "%i lines (important=%i, used=%i, invalid=%i). Using %iMB, limit=%iMB. Hits/run=%.2f. Hits/test=%.3f\n", + cache->entries, cache->limportant, cache->lused, cache->linvalid, _to_mb(cache->allmem), _to_mb(cache->memlimit), (double)(cache->hits) / fmax(1.0, pipe->runs), (double)(cache->hits) / fmax(1.0, cache->tests)); } #undef INVALID_CACHEHASH -#undef UNUSED_CACHEHASH // clang-format off // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py // vim: shiftwidth=2 expandtab tabstop=2 cindent diff -Nru darktable-4.4.2/src/develop/pixelpipe_cache.h darktable-4.6.1/src/develop/pixelpipe_cache.h --- darktable-4.4.2/src/develop/pixelpipe_cache.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/pixelpipe_cache.h 2024-02-16 17:31:09.000000000 +0000 @@ -38,53 +38,53 @@ void **data; size_t *size; struct dt_iop_buffer_dsc_t *dsc; - uint64_t *basichash; uint64_t *hash; int32_t *used; int32_t *ioporder; uint64_t calls; - // profiling: + int32_t lastline; + // profiling & stats: uint64_t tests; uint64_t hits; + uint32_t lused; + uint32_t linvalid; + uint32_t limportant; } dt_dev_pixelpipe_cache_t; +typedef enum dt_dev_pixelpipe_cache_test_t +{ + DT_CACHETEST_PLAIN = 0, + DT_CACHETEST_USED = 1, + DT_CACHETEST_FREE = 2, + DT_CACHETEST_INVALID = 3, +} dt_dev_pixelpipe_cache_test_t; + /** constructs a new cache with given cache line count (entries) and float buffer entry size in bytes. \param[out] returns 0 if fail to allocate mem cache. */ gboolean dt_dev_pixelpipe_cache_init(struct dt_dev_pixelpipe_t *pipe, const int entries, const size_t size, const size_t limit); void dt_dev_pixelpipe_cache_cleanup(struct dt_dev_pixelpipe_t *pipe); -/** creates a hopefully unique hash from the complete module stack up to the module-th. */ -uint64_t dt_dev_pixelpipe_cache_basichash(const dt_imgid_t imgid, struct dt_dev_pixelpipe_t *pipe, const int position); /** creates a hopefully unique hash from the complete module stack up to the module-th, including current viewport. */ uint64_t dt_dev_pixelpipe_cache_hash(const dt_imgid_t imgid, const struct dt_iop_roi_t *roi, struct dt_dev_pixelpipe_t *pipe, const int position); -/** return both of the above hashes */ -void dt_dev_pixelpipe_cache_fullhash(const dt_imgid_t imgid, const dt_iop_roi_t *roi, struct dt_dev_pixelpipe_t *pipe, const int position, - uint64_t *basichash, uint64_t *fullhash); -/** get the basichash for the last enabled module prior to the specified one */ -uint64_t dt_dev_pixelpipe_cache_basichash_prior(const dt_imgid_t imgid, struct dt_dev_pixelpipe_t *pipe, - const struct dt_iop_module_t *const module); /** returns a float data buffer in 'data' for the given hash from the cache, dsc is updated too. If the hash does not match any cache line, use an old buffer or allocate a fresh one. The size of the buffer in 'data' will be at least of size bytes. Returned flag is TRUE for a new buffer */ -gboolean dt_dev_pixelpipe_cache_get(struct dt_dev_pixelpipe_t *pipe, const uint64_t basichash, const uint64_t hash, +gboolean dt_dev_pixelpipe_cache_get(struct dt_dev_pixelpipe_t *pipe, const uint64_t hash, const size_t size, void **data, struct dt_iop_buffer_dsc_t **dsc, struct dt_iop_module_t *module, const gboolean important); /** test availability of a cache line without destroying another, if it is not found. */ -gboolean dt_dev_pixelpipe_cache_available(struct dt_dev_pixelpipe_t *pipe, const uint64_t hash, const uint64_t basichash, const size_t size); +gboolean dt_dev_pixelpipe_cache_available(struct dt_dev_pixelpipe_t *pipe, const uint64_t hash, const size_t size); /** invalidates all cachelines. */ void dt_dev_pixelpipe_cache_flush(const struct dt_dev_pixelpipe_t *pipe); -/** invalidates all cachelines except those containing items for the given module/parameter combination */ -void dt_dev_pixelpipe_cache_flush_all_but(const struct dt_dev_pixelpipe_t *pipe, const uint64_t basichash); - /** invalidates all cachelines for modules with at least the same iop_order */ -void dt_dev_pixelpipe_cache_invalidate_later(const struct dt_dev_pixelpipe_t *pipe, const struct dt_iop_module_t *module); +void dt_dev_pixelpipe_cache_invalidate_later(const struct dt_dev_pixelpipe_t *pipe, const int32_t order); /** makes this buffer very important after it has been pulled from the cache. */ void dt_dev_pixelpipe_important_cacheline(const struct dt_dev_pixelpipe_t *pipe, const void *data, const size_t size); diff -Nru darktable-4.4.2/src/develop/pixelpipe_hb.c darktable-4.6.1/src/develop/pixelpipe_hb.c --- darktable-4.4.2/src/develop/pixelpipe_hb.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/pixelpipe_hb.c 2024-02-16 17:31:09.000000000 +0000 @@ -43,6 +43,9 @@ #include <strings.h> #include <unistd.h> +#define DT_DEV_AVERAGE_DELAY_START 250 +#define DT_DEV_PREVIEW_AVERAGE_DELAY_START 50 + typedef enum dt_pixelpipe_flow_t { PIXELPIPE_FLOW_NONE = 0, @@ -67,68 +70,44 @@ const char *dt_dev_pixelpipe_type_to_str(const int pipe_type) { const gboolean fast = pipe_type & DT_DEV_PIXELPIPE_FAST; - const char *r = NULL; + const gboolean dev = pipe_type & DT_DEV_PIXELPIPE_IMAGE; + +#define PT_STR(name) fast ? dev ? #name "/fast/dev" \ + : #name "/fast" \ + : dev ? #name "/dev" \ + : #name switch(pipe_type & DT_DEV_PIXELPIPE_ANY) { - case DT_DEV_PIXELPIPE_PREVIEW: - if(fast) - r = "preview/fast"; - else - r = "preview"; - break; - case DT_DEV_PIXELPIPE_PREVIEW2: - if(fast) - r = "preview2/fast"; - else - r = "preview2"; - break; - case DT_DEV_PIXELPIPE_FULL: - r = "full"; - break; - case DT_DEV_PIXELPIPE_THUMBNAIL: - if(fast) - r = "thumbnail/fast"; - else - r = "thumbnail"; - break; - case DT_DEV_PIXELPIPE_EXPORT: - if(fast) - r = "export/fast"; - else - r = "export"; - break; - default: - r = "unknown"; - } - return r; -} - -void dt_print_pipe(dt_debug_thread_t thread, - const char *title, - dt_dev_pixelpipe_t *pipe, - const struct dt_iop_module_t *module, - const dt_iop_roi_t *roi_in, - const dt_iop_roi_t *roi_out, - const char *msg, ...) + case DT_DEV_PIXELPIPE_PREVIEW: return PT_STR(preview); + case DT_DEV_PIXELPIPE_PREVIEW2: return PT_STR(preview2); + case DT_DEV_PIXELPIPE_FULL: return PT_STR(full); + case DT_DEV_PIXELPIPE_THUMBNAIL: return PT_STR(thumbnail); + case DT_DEV_PIXELPIPE_EXPORT: return PT_STR(export); + default: return PT_STR(unknown); + } + +#undef PT_STR +} + +void dt_print_pipe_ext(const char *title, + const dt_dev_pixelpipe_t *pipe, + const struct dt_iop_module_t *module, + const dt_iop_roi_t *roi_in, + const dt_iop_roi_t *roi_out, + const char *msg, ...) { - if(thread != DT_DEBUG_ALWAYS) - { - if(((darktable.unmuted & thread) & ~DT_DEBUG_VERBOSE) == 0) return; - if((thread & DT_DEBUG_VERBOSE) && !(darktable.unmuted & DT_DEBUG_VERBOSE)) return; - } - - char buf[3][128]; + char vtit[128]; + char vmod[128]; char vbuf[1024] = { 0 }; char roi[128] = { 0 }; char roo[128] = { 0 }; char pname[32] = { 0 }; char masking[64] = { 0 }; - snprintf(buf[0], sizeof(buf[0]), "%.4f", dt_get_wtime() - darktable.start_wtime); - snprintf(buf[1], sizeof(buf[1]), "[%s]", title); + snprintf(vtit, sizeof(vtit), "%s", title); - snprintf(buf[2], sizeof(buf[2]), "%s%s", + snprintf(vmod, sizeof(vmod), "%s%s", module ? module->op : "", module ? dt_iop_get_instance_id(module) : ""); @@ -139,7 +118,7 @@ if(roi_out) { snprintf(roo, sizeof(roo), - " --> (%4i/%4i) %4ix%4i scale=%.4f", + " --> (%4i/%4i) %4ix%4i scale=%.4f ", roi_out->x, roi_out->y, roi_out->width, roi_out->height, roi_out->scale); } @@ -157,9 +136,8 @@ vsnprintf(vbuf, sizeof(vbuf), msg, ap); va_end(ap); - printf("%11s %-28s %-14s %-22s %s%s%s %s", - buf[0], buf[1], pname, buf[2], roi, roo, masking, vbuf); - fflush(stdout); + dt_print_ext("%-26s %-16s %-22s %s%s%s%s", + vtit, pname, vmod, roi, roo, masking, vbuf); } gboolean dt_dev_pixelpipe_init_export(dt_dev_pixelpipe_t *pipe, @@ -193,6 +171,7 @@ const gboolean res = dt_dev_pixelpipe_init_cached(pipe, sizeof(float) * 4 * width * height, 0, 0); pipe->type = DT_DEV_PIXELPIPE_THUMBNAIL; + pipe->average_delay = DT_DEV_AVERAGE_DELAY_START; return res; } @@ -201,6 +180,7 @@ const gboolean res = dt_dev_pixelpipe_init_cached(pipe, 0, darktable.pipe_cache ? 12 : DT_PIPECACHE_MIN, 0); pipe->type = DT_DEV_PIXELPIPE_PREVIEW; + pipe->average_delay = DT_DEV_PREVIEW_AVERAGE_DELAY_START; return res; } @@ -209,6 +189,7 @@ const gboolean res = dt_dev_pixelpipe_init_cached(pipe, 0, darktable.pipe_cache ? 5 : DT_PIPECACHE_MIN, 0); pipe->type = DT_DEV_PIXELPIPE_PREVIEW2; + pipe->average_delay = DT_DEV_PREVIEW_AVERAGE_DELAY_START; return res; } @@ -227,7 +208,10 @@ const size_t memlimit) { pipe->devid = -1; + pipe->loading = FALSE; + pipe->input_changed = FALSE; pipe->changed = DT_DEV_PIPE_UNCHANGED; + pipe->status = DT_DEV_PIXELPIPE_DIRTY; pipe->processed_width = pipe->backbuf_width = pipe->iwidth = pipe->final_width = 0; pipe->processed_height = pipe->backbuf_height = pipe->iheight = pipe->final_height = 0; pipe->nodes = NULL; @@ -237,13 +221,9 @@ pipe->backbuf_scale = 0.0f; pipe->backbuf_zoom_x = 0.0f; pipe->backbuf_zoom_y = 0.0f; - - pipe->output_backbuf = NULL; - pipe->output_backbuf_width = 0; - pipe->output_backbuf_height = 0; pipe->output_imgid = NO_IMGID; - memset(&pipe->details, 0, sizeof(dt_dev_detail_mask_t)); + memset(&pipe->scharr, 0, sizeof(dt_dev_detail_mask_t)); pipe->want_detail_mask = FALSE; pipe->processing = FALSE; @@ -254,6 +234,7 @@ pipe->bypass_blendif = FALSE; pipe->input_timestamp = 0; pipe->levels = IMAGEIO_RGB | IMAGEIO_INT8; + dt_pthread_mutex_init(&(pipe->mutex), NULL); dt_pthread_mutex_init(&(pipe->backbuf_mutex), NULL); dt_pthread_mutex_init(&(pipe->busy_mutex), NULL); pipe->icc_type = DT_COLORSPACE_NONE; @@ -328,14 +309,15 @@ dt_pthread_mutex_destroy(&(pipe->backbuf_mutex)); dt_pthread_mutex_destroy(&(pipe->busy_mutex)); + dt_pthread_mutex_destroy(&(pipe->mutex)); pipe->icc_type = DT_COLORSPACE_NONE; g_free(pipe->icc_filename); pipe->icc_filename = NULL; - g_free(pipe->output_backbuf); - pipe->output_backbuf = NULL; - pipe->output_backbuf_width = 0; - pipe->output_backbuf_height = 0; + if(pipe->type & DT_DEV_PIXELPIPE_SCREEN) g_free(pipe->backbuf); + pipe->backbuf = NULL; + pipe->backbuf_width = 0; + pipe->backbuf_height = 0; pipe->output_imgid = NO_IMGID; if(pipe->forms) @@ -372,7 +354,7 @@ g_list_free(pipe->nodes); pipe->nodes = NULL; - dt_dev_clear_rawdetail_mask(pipe); + dt_dev_clear_scharr_mask(pipe); // also cleanup iop here if(pipe->iop) @@ -388,13 +370,13 @@ void dt_dev_pixelpipe_rebuild(dt_develop_t *dev) { - dev->pipe->changed |= DT_DEV_PIPE_REMOVE; + dev->full.pipe->changed |= DT_DEV_PIPE_REMOVE; dev->preview_pipe->changed |= DT_DEV_PIPE_REMOVE; - dev->preview2_pipe->changed |= DT_DEV_PIPE_REMOVE; + dev->preview2.pipe->changed |= DT_DEV_PIPE_REMOVE; - dev->pipe->cache_obsolete = TRUE; + dev->full.pipe->cache_obsolete = TRUE; dev->preview_pipe->cache_obsolete = TRUE; - dev->preview2_pipe->cache_obsolete = TRUE; + dev->preview2.pipe->cache_obsolete = TRUE; // invalidate buffers and force redraw of darkroom dt_dev_invalidate_all(dev); @@ -472,6 +454,10 @@ const gboolean active = hist->enabled; piece->enabled = active; + // the last crop module in the pixelpipe might handle the exposing if enabled + if(piece->module->flags() & IOP_FLAGS_CROP_EXPOSER) + dev->cropping.exposer = active ? piece->module : NULL; + // Styles, presets or history copy&paste might set history items // not appropriate for the image. Fixing that seemed to be // almost impossible after long discussions but at least we can @@ -513,14 +499,14 @@ dt_print_pipe(DT_DEBUG_PIPE, "pixelpipe synch problem", pipe, piece->module, NULL, NULL, - "piece enabling mismatch for image %i, piece hash%22" PRIu64 ", \n", + "piece enabling mismatch for image %i, piece hash=%" PRIx64 ", \n", imgid, piece->hash); } dt_iop_commit_params(hist->module, hist->params, hist->blend_params, pipe, piece); dt_print_pipe(DT_DEBUG_PARAMS, "committed params", pipe, piece->module, NULL, NULL, - "piece hash%22" PRIu64 ", \n", piece->hash); + "piece hash=%" PRIx64 ", \n", piece->hash); if(piece->blendop_data) { @@ -536,10 +522,11 @@ void dt_dev_pixelpipe_synch_all(dt_dev_pixelpipe_t *pipe, dt_develop_t *dev) { dt_pthread_mutex_lock(&pipe->busy_mutex); + double start = dt_get_debug_wtime(); - dt_print(DT_DEBUG_PARAMS, - "[pixelpipe] [%s] synch all modules with defaults_params\n", - dt_dev_pixelpipe_type_to_str(pipe->type)); + dev->cropping.exposer = NULL; + dt_print_pipe(DT_DEBUG_PARAMS, "synch all modules with defaults", + pipe, NULL, NULL, NULL, "\n"); // call reset_params on all pieces first. This is mandatory to init // utility modules that don't have an history stack @@ -553,10 +540,10 @@ piece->module->default_blendop_params, pipe, piece); } + double defaults = dt_get_debug_wtime(); - dt_print(DT_DEBUG_PARAMS, - "[pixelpipe] [%s] synch all modules with history\n", - dt_dev_pixelpipe_type_to_str(pipe->type)); + dt_print_pipe(DT_DEBUG_PARAMS, "synch all modules with history", + pipe, NULL, NULL, NULL, "\n"); // go through all history items and adjust params GList *history = dev->history; @@ -565,6 +552,11 @@ dt_dev_pixelpipe_synch(pipe, dev, history); history = g_list_next(history); } + dt_print_pipe(DT_DEBUG_PIPE, + "dt_dev_pixelpipe_synch_all", + pipe, NULL, NULL, NULL, + "defaults %.4fs, history %.4fs\n", + defaults - start, dt_get_wtime() - defaults); dt_pthread_mutex_unlock(&pipe->busy_mutex); } @@ -575,16 +567,14 @@ if(history) { dt_dev_history_item_t *hist = (dt_dev_history_item_t *)history->data; - dt_print(DT_DEBUG_PARAMS, - "[pixelpipe] [%s] synch top history module `%s'\n", - dt_dev_pixelpipe_type_to_str(pipe->type), hist->module->op); + dt_print_pipe(DT_DEBUG_PARAMS, "synch top history module", + pipe, hist->module, NULL, NULL, "\n"); dt_dev_pixelpipe_synch(pipe, dev, history); } else { - dt_print(DT_DEBUG_PARAMS, - "[pixelpipe] [%s] synch top history module missing error\n", - dt_dev_pixelpipe_type_to_str(pipe->type)); + dt_print_pipe(DT_DEBUG_PARAMS, "synch top history module missing!", + pipe, NULL, NULL, NULL, "\n"); } dt_pthread_mutex_unlock(&pipe->busy_mutex); } @@ -593,9 +583,8 @@ { dt_pthread_mutex_lock(&dev->history_mutex); - dt_print(DT_DEBUG_PARAMS, - "[pixelpipe] [%s] pipeline state changing, flag %i\n", - dt_dev_pixelpipe_type_to_str(pipe->type), pipe->changed); + dt_print_pipe(DT_DEBUG_PARAMS, "pipeline state changing", + pipe, NULL, NULL, NULL, "flag = %d\n", pipe->changed); // case DT_DEV_PIPE_UNCHANGED: case DT_DEV_PIPE_ZOOMED: if(pipe->changed & DT_DEV_PIPE_TOP_CHANGED) { @@ -627,7 +616,7 @@ { if(!pipe->want_detail_mask) { - dt_dev_pixelpipe_cache_invalidate_later(pipe, NULL); + dt_dev_pixelpipe_cache_invalidate_later(pipe, 0); } pipe->want_detail_mask = TRUE; } @@ -798,15 +787,10 @@ && !sample->pick_output) return 1; - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; + float wd, ht; + dt_dev_get_preview_size(darktable.develop, &wd, &ht); const int width = roi->width; const int height = roi->height; - const dt_image_t image = darktable.develop->image_storage; - const int op_after_demosaic = - dt_ioppr_is_iop_before(darktable.develop->preview_pipe->iop_order_list, - module->op, "demosaic", 0); - dt_boundingbox_t fbox = { 0.0f }; // get absolute pixel coordinates in final preview image @@ -831,10 +815,6 @@ : DT_DEV_TRANSFORM_DIR_FORW_EXCL), fbox, 2); - if(op_after_demosaic || !dt_image_is_rawprepare_supported(&image)) - for(int idx = 0; idx < 4; idx++) - fbox[idx] *= darktable.develop->preview_downsampling; - fbox[0] -= roi->x; fbox[1] -= roi->y; fbox[2] -= roi->x; @@ -1156,7 +1136,7 @@ // the data buffers must always have a 64 alignment if((((uintptr_t)input) & 63) || (((uintptr_t)*output) & 63)) dt_print(DT_DEBUG_ALWAYS, - "[pixelpipe_process_on_CPU] buffer aligment problem: IN=%p OUT=%p\n", + "[pixelpipe_process CPU] buffer aligment problem: IN=%p OUT=%p\n", input, *output); // Fetch RGB working profile @@ -1223,7 +1203,7 @@ else { dt_print_pipe(DT_DEBUG_PIPE, - "pixelpipe_process_on_CPU", + "pixelpipe process CPU", piece->pipe, module, roi_in, roi_out, "%s%s%s%s\n", dt_iop_colorspace_to_name(cst_to), cst_to != cst_out ? " -> " : "", @@ -1298,7 +1278,7 @@ pipe->dsc.cst, PIXELPIPE_PICKER_OUTPUT); DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, - DT_SIGNAL_CONTROL_PICKERDATA_READY, module, piece); + DT_SIGNAL_CONTROL_PICKERDATA_READY, module, pipe); } if(dt_atomic_get_int(&pipe->shutdown)) @@ -1342,6 +1322,15 @@ } #endif +static inline gboolean _skip_piece_on_tags(const dt_dev_pixelpipe_iop_t *piece) +{ + if(!piece->enabled) + return TRUE; + + return dt_iop_module_is_skipped(piece->module->dev, piece->module) + && (piece->pipe->type & DT_DEV_PIXELPIPE_BASIC); +} + // recursive helper for process, returns TRUE in case of unfinished work or error static gboolean _dev_pixelpipe_process_rec( dt_dev_pixelpipe_t *pipe, @@ -1366,9 +1355,10 @@ dt_iop_module_t *module = NULL; dt_dev_pixelpipe_iop_t *piece = NULL; + const dt_iop_module_t *gui_module = dt_dev_gui_module(); // if a module is active, check if this module allow a fast pipe run - if(darktable.develop && dev->gui_module - && dev->gui_module->flags() & IOP_FLAGS_ALLOW_FAST_PIPE) + if(gui_module + && gui_module->flags() & IOP_FLAGS_ALLOW_FAST_PIPE) pipe->type |= DT_DEV_PIXELPIPE_FAST; else pipe->type &= ~DT_DEV_PIXELPIPE_FAST; @@ -1378,9 +1368,7 @@ module = (dt_iop_module_t *)modules->data; piece = (dt_dev_pixelpipe_iop_t *)pieces->data; // skip this module? - if(!piece->enabled - || (dev->gui_module && dev->gui_module != module - && dev->gui_module->operation_tags_filter() & module->operation_tags())) + if(_skip_piece_on_tags(piece)) return _dev_pixelpipe_process_rec(pipe, dev, output, cl_mem_output, out_format, &roi_in, g_list_previous(modules), @@ -1397,9 +1385,7 @@ if(dt_atomic_get_int(&pipe->shutdown)) return TRUE; - gboolean cache_available = FALSE; - uint64_t basichash = 0; - uint64_t hash = 0; + uint64_t hash = dt_dev_pixelpipe_cache_hash(pipe->image.id, roi_out, pipe, pos); // we do not want data from the preview pixelpipe cache // for gamma so we can compute the final scope @@ -1408,19 +1394,18 @@ && (module != NULL) && dt_iop_module_is(module->so, "gamma"); - // we also never want any cached data is in masking mode - if(!gamma_preview + // we also never want any cached data if in masking mode or nocache is active + // otherwise we check for a valid cacheline + const gboolean cache_available = + !gamma_preview && (pipe->mask_display == DT_DEV_PIXELPIPE_DISPLAY_NONE) - && !pipe->nocache) - { - dt_dev_pixelpipe_cache_fullhash(pipe->image.id, roi_out, pipe, pos, &basichash, &hash); - // dt_dev_pixelpipe_cache_available() tests for masking mode and returns FALSE in that case - cache_available = dt_dev_pixelpipe_cache_available(pipe, hash, basichash, bufsize); - } + && !pipe->nocache + && dt_dev_pixelpipe_cache_available(pipe, hash, bufsize); + if(cache_available) { - dt_dev_pixelpipe_cache_get(pipe, basichash, hash, bufsize, - output, out_format, module, FALSE); + dt_dev_pixelpipe_cache_get(pipe, hash, bufsize, + output, out_format, module, TRUE); if(dt_atomic_get_int(&pipe->shutdown)) return TRUE; @@ -1437,9 +1422,9 @@ // preview pipe: abort on all but zoom events (same buffer anyways) if(dt_iop_breakpoint(dev, pipe)) return TRUE; // if image has changed, stop now. - if(pipe == dev->pipe && dev->image_force_reload) return TRUE; - if(pipe == dev->preview_pipe && dev->preview_loading) return TRUE; - if(pipe == dev->preview2_pipe && dev->preview2_loading) return TRUE; + if(pipe == dev->full.pipe && dev->image_force_reload) return TRUE; + if(pipe == dev->preview_pipe && dev->preview_pipe->loading) return TRUE; + if(pipe == dev->preview2.pipe && dev->preview2.pipe->loading) return TRUE; if(dev->gui_leaving) return TRUE; // 3) input -> output @@ -1461,7 +1446,7 @@ dt_print_pipe(DT_DEBUG_PIPE, "pixelpipe data: full", pipe, module, &roi_in, roi_out, "\n"); } - else if(dt_dev_pixelpipe_cache_get(pipe, basichash, hash, bufsize, + else if(dt_dev_pixelpipe_cache_get(pipe, hash, bufsize, output, out_format, NULL, FALSE)) { if(roi_in.scale == 1.0f) @@ -1475,7 +1460,7 @@ const int cp_height = MIN(roi_out->height, pipe->iheight - in_y); dt_print_pipe(DT_DEBUG_PIPE, (cp_width > 0) ? "pixelpipe data: 1:1 copied" : "pixelpipe data: 1:1 none", - pipe, module, &roi_in, roi_out, "bpp=%d\n", bpp); + pipe, module, &roi_in, roi_out, "bpp=%lu\n", bpp); if(cp_width > 0) { #ifdef _OPENMP @@ -1557,7 +1542,7 @@ && (((pipe->type & DT_DEV_PIXELPIPE_PREVIEW) && dt_iop_module_is(module->so, "colorout")) || ((pipe->type & DT_DEV_PIXELPIPE_FULL) && dt_iop_module_is(module->so, "gamma"))); - dt_dev_pixelpipe_cache_get(pipe, basichash, hash, bufsize, + dt_dev_pixelpipe_cache_get(pipe, hash, bufsize, output, out_format, module, important_out); if(dt_atomic_get_int(&pipe->shutdown)) @@ -1621,11 +1606,12 @@ tiling_callback_blendop(module, piece, &roi_in, roi_out, &tiling_blendop); /* aggregate in structure tiling */ - tiling.factor = fmax(tiling.factor, tiling_blendop.factor); - tiling.factor_cl = fmax(tiling.factor_cl, tiling_blendop.factor); - tiling.maxbuf = fmax(tiling.maxbuf, tiling_blendop.maxbuf); - tiling.maxbuf_cl = fmax(tiling.maxbuf_cl, tiling_blendop.maxbuf); - tiling.overhead = fmax(tiling.overhead, tiling_blendop.overhead); + tiling.factor = MAX(tiling.factor, tiling_blendop.factor); + tiling.factor_cl = MAX(tiling.factor_cl, tiling_blendop.factor); + tiling.maxbuf = MAX(tiling.maxbuf, tiling_blendop.maxbuf); + tiling.maxbuf_cl = MAX(tiling.maxbuf_cl, tiling_blendop.maxbuf); + tiling.overhead = MAX(tiling.overhead, tiling_blendop.overhead); + tiling.overlap = MAX(tiling.overlap, tiling_blendop.overlap); } /* remark: we do not do tiling for blendop step, neither in opencl @@ -1726,7 +1712,7 @@ if(cl_mem_input == NULL) { dt_print_pipe(DT_DEBUG_OPENCL, - "pixelpipe_process_CL", pipe, module, &roi_in, roi_out, "%s\n", + "pixelpipe process CL", pipe, module, &roi_in, roi_out, "%s\n", "couldn't generate input buffer"); success_opencl = FALSE; } @@ -1739,8 +1725,8 @@ if(err != CL_SUCCESS) { dt_print_pipe(DT_DEBUG_OPENCL, - "pixelpipe_process_CL", pipe, module, &roi_in, roi_out, "%s\n", - "couldn't copy image to opencl device"); + "pixelpipe process CL", pipe, module, &roi_in, roi_out, "%s\n", + "couldn't copy image to OpenCL device"); success_opencl = FALSE; } } @@ -1760,15 +1746,12 @@ if(*cl_mem_output == NULL) { dt_print_pipe(DT_DEBUG_OPENCL, - "pixelpipe_process_CL", pipe, module, &roi_in, roi_out, "%s\n", + "pixelpipe process CL", pipe, module, &roi_in, roi_out, "%s\n", "couldn't allocate output buffer"); success_opencl = FALSE; } } - // fprintf(stderr, "[opencl_pixelpipe 2] for module `%s', have bufs %p and %p \n", module->op, - // cl_mem_input, *cl_mem_output); - // indirectly give gpu some air to breathe (and to do display related stuff) dt_iop_nap(dt_opencl_micro_nap(pipe->devid)); @@ -1834,7 +1817,7 @@ if(success_opencl) { dt_print_pipe(DT_DEBUG_PIPE, - "pixelpipe_process_CL", + "pixelpipe process CL", piece->pipe, module, &roi_in, roi_out, "%s%s%s\n", dt_iop_colorspace_to_name(cst_to), cst_to != cst_out ? " -> " : "", @@ -1857,8 +1840,8 @@ for(int i = 0; i < 100; i++) { if(success) - success = module->process_cl(module, piece, cl_mem_input, *cl_mem_output, - &roi_in, roi_out); + success = (module->process_cl(module, piece, cl_mem_input, *cl_mem_output, + &roi_in, roi_out)) >= CL_SUCCESS; } if(success) { @@ -1873,7 +1856,7 @@ } else dt_print(DT_DEBUG_ALWAYS, - "[bench module GPU] [%s] `%s' finished without sucess\n", + "[bench module GPU] [%s] `%s' finished without success\n", full ? "full" : "export", module->op); darktable.unmuted = old_muted; } @@ -1886,8 +1869,16 @@ dt_opencl_dump_pipe_pfm(module->op, pipe->devid, cl_mem_input, TRUE, dt_dev_pixelpipe_type_to_str(piece->pipe->type)); - success_opencl = module->process_cl(module, piece, cl_mem_input, *cl_mem_output, + const int err = module->process_cl(module, piece, cl_mem_input, *cl_mem_output, &roi_in, roi_out); + success_opencl = err >= CL_SUCCESS; + + if(!success_opencl) + dt_print_pipe(DT_DEBUG_OPENCL, + "Error: process_CL", piece->pipe, module, &roi_in, roi_out, + "device=%i (%s), %s\n", + pipe->devid, darktable.opencl->dev[pipe->devid].cname, cl_errstr(err)); + if(success_opencl && pfm_dump) dt_opencl_dump_pipe_pfm(module->op, pipe->devid, *cl_mem_output, FALSE, dt_dev_pixelpipe_type_to_str(piece->pipe->type)); @@ -1928,7 +1919,7 @@ PIXELPIPE_PICKER_OUTPUT); DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, - DT_SIGNAL_CONTROL_PICKERDATA_READY, module, piece); + DT_SIGNAL_CONTROL_PICKERDATA_READY, module, pipe); } if(dt_atomic_get_int(&pipe->shutdown)) @@ -1976,20 +1967,16 @@ /* image is too big for direct opencl processing -> try to * process image via tiling */ - // fprintf(stderr, "[opencl_pixelpipe 3] module '%s' tiling with process_tiling_cl\n", - // module->op); - /* we might need to copy back valid image from device to host */ if(cl_mem_input != NULL) { /* copy back to CPU buffer, then clean unneeded buffer */ - const cl_int err = dt_opencl_copy_device_to_host(pipe->devid, input, cl_mem_input, + if(dt_opencl_copy_device_to_host(pipe->devid, input, cl_mem_input, roi_in.width, roi_in.height, - in_bpp); - if(err != CL_SUCCESS) + in_bpp) != CL_SUCCESS) { dt_print_pipe(DT_DEBUG_OPENCL, - "pixelpipe_process_CL", pipe, module, &roi_in, roi_out, "%s\n", + "pixelpipe process CL", pipe, module, &roi_in, roi_out, "%s\n", "couldn't copy data back to host memory (A)"); dt_opencl_release_mem_object(cl_mem_input); pipe->opencl_error = TRUE; @@ -2034,8 +2021,16 @@ meaningful messages in case of error */ if(success_opencl) { - success_opencl = module->process_tiling_cl(module, piece, input, *output, + const int err = module->process_tiling_cl(module, piece, input, *output, &roi_in, roi_out, in_bpp); + success_opencl = err >= CL_SUCCESS; + + if(!success_opencl) + dt_print_pipe(DT_DEBUG_OPENCL, + "Error: process_tiling_CL", piece->pipe, module, &roi_in, roi_out, + "device=%i (%s), %s\n", + pipe->devid, darktable.opencl->dev[pipe->devid].cname, cl_errstr(err)); + pixelpipe_flow |= (PIXELPIPE_FLOW_PROCESSED_ON_GPU | PIXELPIPE_FLOW_PROCESSED_WITH_TILING); pixelpipe_flow &= ~(PIXELPIPE_FLOW_PROCESSED_ON_CPU); @@ -2064,7 +2059,7 @@ PIXELPIPE_PICKER_OUTPUT); DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, - DT_SIGNAL_CONTROL_PICKERDATA_READY, module, piece); + DT_SIGNAL_CONTROL_PICKERDATA_READY, module, pipe); } if(dt_atomic_get_int(&pipe->shutdown)) @@ -2118,9 +2113,6 @@ return TRUE; } - // Test code: simulate spurious failures: - // if(rand() % 20 == 0) success_opencl = FALSE; - /* finally check, if we were successful */ if(success_opencl) { @@ -2143,35 +2135,34 @@ (pipe->mask_display == DT_DEV_PIXELPIPE_DISPLAY_NONE) && ((pipe->type == DT_DEV_PIXELPIPE_FULL) // ignored in fast mode || (pipe->type == DT_DEV_PIXELPIPE_PREVIEW)) - && darktable.develop->gui_attached - && ((module == darktable.develop->gui_module) - || module->iopcache_hint + && dev->gui_attached + && ((module == dt_dev_gui_module()) + || darktable.develop->history_last_module == module || dt_iop_module_is(module->so, "colorout")); if(important_cl) { /* write back input into cache for faster re-usal (full pipe or preview) */ - if(cl_mem_input != NULL - && (pipe->type & (DT_DEV_PIXELPIPE_FULL | DT_DEV_PIXELPIPE_PREVIEW))) + if(cl_mem_input != NULL) { /* copy input to host memory, so we can find it in cache */ - const cl_int err = dt_opencl_copy_device_to_host(pipe->devid, input, - cl_mem_input, - roi_in.width, - roi_in.height, in_bpp); - if(err != CL_SUCCESS) + if(dt_opencl_copy_device_to_host(pipe->devid, input, + cl_mem_input, + roi_in.width, + roi_in.height, + in_bpp) != CL_SUCCESS) { important_cl = FALSE; dt_print_pipe(DT_DEBUG_OPENCL, - "pixelpipe_process_CL", pipe, module, &roi_in, roi_out, "%s\n", + "pixelpipe process CL", pipe, module, &roi_in, roi_out, "%s\n", "couldn't copy data back to host memory (B)"); /* late opencl error, not likely to happen here */ /* that's all we do here, we later make sure to invalidate cache line */ } else { - dt_print_pipe(DT_DEBUG_OPENCL, - "pixelpipe_process_CL", pipe, module, &roi_in, roi_out, "cl input data to host\n"); + dt_print_pipe(DT_DEBUG_PIPE, + "pixelpipe process CL", pipe, module, &roi_in, roi_out, "cl input data to host\n"); /* success: cache line is valid now, so we will not need to invalidate it later */ valid_input_on_gpu_only = FALSE; @@ -2201,11 +2192,9 @@ { /* Bad luck, opencl failed. Let's clean up and fall back to cpu module */ dt_print_pipe(DT_DEBUG_OPENCL, - "pixelpipe_process_CL", pipe, module, &roi_in, roi_out, "%s\n", + "pixelpipe process CL", pipe, module, &roi_in, roi_out, "%s\n", "couldn't run module on GPU, falling back to CPU"); - // fprintf(stderr, "[opencl_pixelpipe 4] module '%s' running on cpu\n", module->op); - /* we might need to free unused output buffer */ if(*cl_mem_output != NULL) { @@ -2219,13 +2208,12 @@ /* copy back to host memory, then clean no longer needed opencl buffer. important info: in order to make this possible, opencl modules must not spoil their input buffer, even in case of errors. */ - const cl_int err = dt_opencl_copy_device_to_host(pipe->devid, input, cl_mem_input, - roi_in.width, roi_in.height, - in_bpp); - if(err != CL_SUCCESS) + if(dt_opencl_copy_device_to_host(pipe->devid, input, cl_mem_input, + roi_in.width, roi_in.height, + in_bpp) != CL_SUCCESS) { dt_print_pipe(DT_DEBUG_OPENCL, - "pixelpipe_process_CL", pipe, module, &roi_in, roi_out, "%s\n", + "pixelpipe process CL", pipe, module, &roi_in, roi_out, "%s\n", "couldn't copy data back to host memory (C)"); dt_opencl_release_mem_object(cl_mem_input); pipe->opencl_error = TRUE; @@ -2257,14 +2245,12 @@ /* cleanup unneeded opencl buffer, and copy back to CPU buffer */ if(cl_mem_input != NULL) { - const cl_int err = dt_opencl_copy_device_to_host(pipe->devid, input, cl_mem_input, - roi_in.width, roi_in.height, - in_bpp); - - if(err != CL_SUCCESS) + if(dt_opencl_copy_device_to_host(pipe->devid, input, cl_mem_input, + roi_in.width, roi_in.height, + in_bpp) != CL_SUCCESS) { dt_print_pipe(DT_DEBUG_OPENCL, - "pixelpipe_process_CL", pipe, module, &roi_in, roi_out, "%s\n", + "pixelpipe process CL", pipe, module, &roi_in, roi_out, "%s\n", "couldn't copy data back to host memory (D)"); dt_opencl_release_mem_object(cl_mem_input); pipe->opencl_error = TRUE; @@ -2346,22 +2332,23 @@ // Possibly give the input buffer of the current module more weight // as the user is likely to change that one soon (again), so keep it in cache. // Also do this if the clbuffer has been actively written - const gboolean has_focus = (module == darktable.develop->gui_module); - if((pipe->type & (DT_DEV_PIXELPIPE_FULL | DT_DEV_PIXELPIPE_PREVIEW)) + const gboolean has_focus = module == dt_dev_gui_module(); + if((pipe->type & DT_DEV_PIXELPIPE_BASIC) && (pipe->mask_display == DT_DEV_PIXELPIPE_DISPLAY_NONE) - && (has_focus || module->iopcache_hint || important_cl)) + && (has_focus || darktable.develop->history_last_module == module || important_cl)) { dt_print_pipe(DT_DEBUG_PIPE, "importance hints", pipe, module, &roi_in, roi_out, "%s%s%s\n", - module->iopcache_hint ? "history " : "", + darktable.develop->history_last_module == module ? "input_hint " : "", has_focus ? "focus " : "", important_cl ? "cldata" : ""); dt_dev_pixelpipe_important_cacheline(pipe, input, roi_in.width * roi_in.height * in_bpp); } - module->iopcache_hint = FALSE; + if(pipe->type & DT_DEV_PIXELPIPE_FULL) + darktable.develop->history_last_module = NULL; if(module->expanded - && (pipe->type & (DT_DEV_PIXELPIPE_FULL | DT_DEV_PIXELPIPE_PREVIEW)) + && (pipe->type & DT_DEV_PIXELPIPE_BASIC) && (module->request_histogram & DT_REQUEST_EXPANDED)) { dt_print_pipe(DT_DEBUG_PIPE, "internal histogram", pipe, module, &roi_in, roi_out, "\n"); @@ -2371,10 +2358,8 @@ } // warn on NaN or infinity -#ifndef _DEBUG if((darktable.unmuted & DT_DEBUG_NAN) && !dt_iop_module_is(module->so, "gamma")) -#endif { if(dt_atomic_get_int(&pipe->shutdown)) return TRUE; @@ -2594,7 +2579,7 @@ { /* this indicates a opencl problem earlier in the pipeline */ dt_print(DT_DEBUG_OPENCL, - "[_dev_pixelpipe_process_rec_and_backcopy] [%s]" + "[pixelpipe process_rec_and_backcopy CL] [%s]" " late opencl error detected while copying back to cpu buffer: %s\n", dt_dev_pixelpipe_type_to_str(pipe->type), cl_errstr(err)); pipe->opencl_error = TRUE; @@ -2633,6 +2618,8 @@ dt_iop_roi_t roi = (dt_iop_roi_t){ x, y, width, height, scale }; pipe->final_width = width; pipe->final_height = height; + float pts[2] = { (x + 0.5f * width) / scale, (y + 0.5f * height) / scale }; + dt_dev_distort_backtransform_plus(dev, pipe, 0.0f, DT_DEV_TRANSFORM_DIR_ALL, pts, 1); // get a snapshot of mask list if(pipe->forms) g_list_free_full(pipe->forms, (void (*)(void *))dt_masks_free_form); @@ -2662,9 +2649,13 @@ dt_iop_buffer_dsc_t _out_format = { 0 }; dt_iop_buffer_dsc_t *out_format = &_out_format; - dt_print_pipe(DT_DEBUG_PIPE, - (pipe->devid >= 0) ? "pixelpipe starting CL" : "pixelpipe starting on CPU", - pipe, NULL, &roi, &roi, "\n"); +#ifdef HAVE_OPENCL + if(pipe->devid >= 0) + dt_print_pipe(DT_DEBUG_PIPE, "pixelpipe starting CL", pipe, NULL, &roi, &roi, "device=%i (%s)\n", + pipe->devid, darktable.opencl->dev[pipe->devid].cname); + else +#endif + dt_print_pipe(DT_DEBUG_PIPE, "pixelpipe starting on CPU", pipe, NULL, &roi, &roi, "\n"); // run pixelpipe recursively and get error status const gboolean err = _dev_pixelpipe_process_rec_and_backcopy(pipe, dev, &buf, @@ -2677,9 +2668,10 @@ ? (dt_opencl_events_flush(pipe->devid, TRUE) != 0) : FALSE; - // Check if we had opencl errors .... remark: opencl errors can - // come in two ways: pipe->opencl_error is TRUE (and err is TRUE) OR - // oclerr is TRUE + // Check if we had opencl errors, + // remark: opencl errors can come in two ways: + // processed pipe->opencl_error checked via 'err' + // OpenCL events so oclerr is TRUE if(oclerr || (err && pipe->opencl_error)) { @@ -2693,7 +2685,7 @@ dt_pthread_mutex_unlock(&pipe->busy_mutex); darktable.opencl->error_count++; // increase error count - if(darktable.opencl->error_count >= DT_OPENCL_MAX_ERRORS) + if(darktable.opencl->error_count == DT_OPENCL_MAX_ERRORS) { // too frequent opencl errors encountered: this is a clear sign // of a broken setup. give up on opencl during this session. @@ -2702,8 +2694,12 @@ "[opencl] frequent opencl errors encountered; disabling" " opencl for this session!\n"); dt_control_log - (_("darktable discovered problems with your OpenCL setup;" - " disabling OpenCL for this session!")); + (_("OpenCL errors encountered; disabling OpenCL for this session!" + " some possible causes:\n" + " - OpenCL out of resources due to preference settings. please try with defaults,\n" + " - buggy driver for some device. please run darktable with `-d opencl' to identify,\n" + " - some drivers don't support needed number of events,\n" + " - too small headroom settings while using 'use all device memory'.")); // also remove "opencl" from capabilities so that the preference entry is greyed out dt_capabilities_remove("opencl"); } @@ -2738,30 +2734,30 @@ // terminate dt_pthread_mutex_lock(&pipe->backbuf_mutex); pipe->backbuf_hash = dt_dev_pixelpipe_cache_hash(pipe->image.id, &roi, pipe, 0); - pipe->backbuf = buf; - pipe->backbuf_width = width; - pipe->backbuf_height = height; - if(pipe->type & (DT_DEV_PIXELPIPE_PREVIEW - | DT_DEV_PIXELPIPE_FULL - | DT_DEV_PIXELPIPE_PREVIEW2)) - { - if(pipe->output_backbuf == NULL - || pipe->output_backbuf_width != pipe->backbuf_width - || pipe->output_backbuf_height != pipe->backbuf_height) - { - g_free(pipe->output_backbuf); - pipe->output_backbuf_width = pipe->backbuf_width; - pipe->output_backbuf_height = pipe->backbuf_height; - pipe->output_backbuf = - g_malloc0(sizeof(uint8_t) * 4 * pipe->output_backbuf_width * pipe->output_backbuf_height); - } - - if(pipe->output_backbuf) - memcpy(pipe->output_backbuf, pipe->backbuf, - sizeof(uint8_t) * 4 * pipe->output_backbuf_width * pipe->output_backbuf_height); - pipe->output_imgid = pipe->image.id; + //FIXME lock/release cache line instead of copying + if(pipe->type & DT_DEV_PIXELPIPE_SCREEN) + { + if(pipe->backbuf == NULL + || pipe->backbuf_width * pipe->backbuf_height != width * height) + { + g_free(pipe->backbuf); + pipe->backbuf = g_malloc0(sizeof(uint8_t) * 4 * width * height); + } + + if(pipe->backbuf) + { + memcpy(pipe->backbuf, buf, sizeof(uint8_t) * 4 * width * height); + pipe->backbuf_scale = scale; + pipe->backbuf_zoom_x = pts[0] * pipe->iscale; + pipe->backbuf_zoom_y = pts[1] * pipe->iscale; + pipe->output_imgid = pipe->image.id; + } } + else + pipe->backbuf = buf; + pipe->backbuf_width = width; + pipe->backbuf_height = height; dt_pthread_mutex_unlock(&pipe->backbuf_mutex); dt_dev_pixelpipe_cache_report(pipe); @@ -2792,9 +2788,7 @@ piece->buf_in = roi_in; // skip this module? - if(piece->enabled - && !(dev->gui_module && dev->gui_module != module - && dev->gui_module->operation_tags_filter() & module->operation_tags())) + if(!_skip_piece_on_tags(piece)) { module->modify_roi_out(module, piece, &roi_out, &roi_in); } @@ -2902,31 +2896,27 @@ { for(GList *iter = g_list_next(source_iter); iter; iter = g_list_next(iter)) { - dt_dev_pixelpipe_iop_t *module = (dt_dev_pixelpipe_iop_t *)iter->data; + dt_dev_pixelpipe_iop_t *it_piece = (dt_dev_pixelpipe_iop_t *)iter->data; - if(module->enabled - && !(module->module->dev->gui_module - && module->module->dev->gui_module != module->module - && (module->module->dev->gui_module->operation_tags_filter() - & module->module->operation_tags()))) + if(!_skip_piece_on_tags(it_piece)) { - if(module->module->distort_mask + if(it_piece->module->distort_mask // hack against pipes not using finalscale - && !(dt_iop_module_is(module->module->so, "finalscale") - && module->processed_roi_in.width == 0 - && module->processed_roi_in.height == 0)) + && !(dt_iop_module_is(it_piece->module->so, "finalscale") + && it_piece->processed_roi_in.width == 0 + && it_piece->processed_roi_in.height == 0)) { float *transformed_mask = - dt_alloc_align_float((size_t)module->processed_roi_out.width - * module->processed_roi_out.height); + dt_alloc_align_float((size_t)it_piece->processed_roi_out.width + * it_piece->processed_roi_out.height); if(transformed_mask) { - module->module->distort_mask(module->module, - module, + it_piece->module->distort_mask(it_piece->module, + it_piece, raster_mask, transformed_mask, - &module->processed_roi_in, - &module->processed_roi_out); + &it_piece->processed_roi_in, + &it_piece->processed_roi_out); // As we might have multiple modules doing a transformation we want to // de-allocate all intermediate buffers and only leave the last one @@ -2940,29 +2930,29 @@ { dt_print_pipe(DT_DEBUG_ALWAYS, "no distort raster mask", - piece->pipe, module->module, - &module->processed_roi_in, &module->processed_roi_out, + piece->pipe, it_piece->module, + &it_piece->processed_roi_in, &it_piece->processed_roi_out, "skipped transforming mask due to lack of memory\n"); return NULL; } } - else if(!module->module->distort_mask - && (module->processed_roi_in.width != module->processed_roi_out.width - || module->processed_roi_in.height != module->processed_roi_out.height - || module->processed_roi_in.x != module->processed_roi_out.x - || module->processed_roi_in.y != module->processed_roi_out.y)) + else if(!it_piece->module->distort_mask + && (it_piece->processed_roi_in.width != it_piece->processed_roi_out.width + || it_piece->processed_roi_in.height != it_piece->processed_roi_out.height + || it_piece->processed_roi_in.x != it_piece->processed_roi_out.x + || it_piece->processed_roi_in.y != it_piece->processed_roi_out.y)) { dt_print_pipe(DT_DEBUG_ALWAYS, "distort raster mask", - piece->pipe, module->module, - &module->processed_roi_in, &module->processed_roi_out, + piece->pipe, it_piece->module, + &it_piece->processed_roi_in, &it_piece->processed_roi_out, "misses distort_mask() function\n"); return NULL; } } if(target_module - && module->module == target_module) + && it_piece->module == target_module) break; } } @@ -2978,72 +2968,82 @@ return raster_mask; } -void dt_dev_clear_rawdetail_mask(dt_dev_pixelpipe_t *pipe) +void dt_dev_clear_scharr_mask(dt_dev_pixelpipe_t *pipe) { - if(pipe->details.data) dt_free_align(pipe->details.data); - memset(&pipe->details, 0, sizeof(dt_dev_detail_mask_t)); + if(pipe->scharr.data) dt_free_align(pipe->scharr.data); + memset(&pipe->scharr, 0, sizeof(dt_dev_detail_mask_t)); } -gboolean dt_dev_write_rawdetail_mask(dt_dev_pixelpipe_iop_t *piece, +gboolean dt_dev_write_scharr_mask(dt_dev_pixelpipe_iop_t *piece, float *const rgb, const dt_iop_roi_t *const roi_in, const gboolean rawmode) { dt_dev_pixelpipe_t *p = piece->pipe; - dt_dev_clear_rawdetail_mask(p); + dt_dev_clear_scharr_mask(p); + if(piece->pipe->tiling) + goto error; const int width = roi_in->width; const int height = roi_in->height; float *mask = dt_alloc_align_float((size_t)width * height); if(!mask) goto error; - p->details.data = mask; - memcpy(&p->details.roi, roi_in, sizeof(dt_iop_roi_t)); + p->scharr.data = mask; + memcpy(&p->scharr.roi, roi_in, sizeof(dt_iop_roi_t)); const gboolean wboff = !p->dsc.temperature.enabled || !rawmode; const dt_aligned_pixel_t wb = { wboff ? 1.0f : p->dsc.temperature.coeffs[0], wboff ? 1.0f : p->dsc.temperature.coeffs[1], wboff ? 1.0f : p->dsc.temperature.coeffs[2]}; - if(dt_masks_calc_rawdetail_mask(&p->details, rgb, wb)) + if(dt_masks_calc_scharr_mask(&p->scharr, rgb, wb)) goto error; uint64_t hash = 5381; - const char *str = (const char *)&p->details.roi; + const char *str = (const char *)&p->scharr.roi; for(size_t i = 0; i < sizeof(dt_iop_roi_t); i++) hash = ((hash << 5) + hash) ^ str[i]; - p->details.hash = hash; + p->scharr.hash = hash; + + dt_print_pipe(DT_DEBUG_PIPE, "write scharr mask CPU", p, NULL, roi_in, NULL, "\n"); + if(darktable.dump_pfm_module && (piece->pipe->type & DT_DEV_PIXELPIPE_EXPORT)) + dt_dump_pfm("scharr_cpu", mask, width, height, sizeof(float), "detail"); - dt_print_pipe(DT_DEBUG_PIPE, "write detail mask on CPU", p, NULL, roi_in, NULL, "\n"); return FALSE; error: dt_print_pipe(DT_DEBUG_ALWAYS, - "write detail mask on CPU", p, NULL, roi_in, NULL, + "write scharr mask CPU", p, NULL, roi_in, NULL, "couldn't write detail mask\n"); - dt_dev_clear_rawdetail_mask(p); + dt_dev_clear_scharr_mask(p); return TRUE; } #ifdef HAVE_OPENCL -gboolean dt_dev_write_rawdetail_mask_cl(dt_dev_pixelpipe_iop_t *piece, - cl_mem in, - const dt_iop_roi_t *const roi_in, - const gboolean rawmode) +int dt_dev_write_scharr_mask_cl(dt_dev_pixelpipe_iop_t *piece, + cl_mem in, + const dt_iop_roi_t *const roi_in, + const gboolean rawmode) { dt_dev_pixelpipe_t *p = piece->pipe; - dt_dev_clear_rawdetail_mask(p); + dt_dev_clear_scharr_mask(p); + + if(piece->pipe->tiling) + return DT_OPENCL_PROCESS_CL; const int width = roi_in->width; const int height = roi_in->height; + const int devid = p->devid; + const int clwidth = ROUNDUPDWD(width, devid); + const int clheight = ROUNDUPDHT(height, devid); cl_mem out = NULL; cl_mem tmp = NULL; float *mask = NULL; - const int devid = p->devid; - cl_int err = CL_SUCCESS; + cl_int err = DT_OPENCL_SYSMEM_ALLOCATION; mask = dt_alloc_align_float((size_t)width * height); - out = dt_opencl_alloc_device(devid, width, height, sizeof(float)); + out = dt_opencl_alloc_device_buffer(devid, sizeof(float) * width * height); tmp = dt_opencl_alloc_device_buffer(devid, sizeof(float) * width * height); if((mask == NULL) || (tmp == NULL) || (out == NULL)) goto error; @@ -3055,41 +3055,43 @@ wboff ? 1.0f : p->dsc.temperature.coeffs[2]}; err = dt_opencl_enqueue_kernel_2d_args - (devid, darktable.opencl->blendop->kernel_calc_Y0_mask, width, height, + (devid, darktable.opencl->blendop->kernel_calc_Y0_mask, clwidth, clheight, CLARG(tmp), CLARG(in), CLARG(width), CLARG(height), CLARG(wb[0]), CLARG(wb[1]), CLARG(wb[2])); if(err != CL_SUCCESS) goto error; err = dt_opencl_enqueue_kernel_2d_args - (devid, darktable.opencl->blendop->kernel_write_scharr_mask, width, height, + (devid, darktable.opencl->blendop->kernel_write_scharr_mask, clwidth, clheight, CLARG(tmp), CLARG(out), CLARG(width), CLARG(height)); if(err != CL_SUCCESS) goto error; - err = dt_opencl_read_host_from_device(devid, mask, out, width, height, sizeof(float)); + err = dt_opencl_read_buffer_from_device(devid, mask, out, 0, sizeof(float) * width * height, TRUE); if(err != CL_SUCCESS) goto error; - p->details.data = mask; - memcpy(&p->details.roi, roi_in, sizeof(dt_iop_roi_t)); + p->scharr.data = mask; + memcpy(&p->scharr.roi, roi_in, sizeof(dt_iop_roi_t)); uint64_t hash = 5381; - const char *str = (const char *)&p->details.roi; + const char *str = (const char *)&p->scharr.roi; for(size_t i = 0; i < sizeof(dt_iop_roi_t); i++) hash = ((hash << 5) + hash) ^ str[i]; - p->details.hash = hash; + p->scharr.hash = hash; - dt_opencl_release_mem_object(out); - dt_opencl_release_mem_object(tmp); - dt_print_pipe(DT_DEBUG_PIPE, "write detail mask on GPU", p, NULL, roi_in, NULL, "\n"); - return FALSE; + dt_print_pipe(DT_DEBUG_PIPE, "write scharr mask CL", p, NULL, roi_in, NULL, "\n"); + if(darktable.dump_pfm_module && (piece->pipe->type & DT_DEV_PIXELPIPE_EXPORT)) + dt_dump_pfm("scharr_cl", mask, width, height, sizeof(float), "detail"); error: - dt_print_pipe(DT_DEBUG_ALWAYS, - "write detail mask on GPU", p, NULL, roi_in, NULL, - "couldn't write detail mask: %s\n", cl_errstr(err)); + if(err != CL_SUCCESS) + { + dt_print_pipe(DT_DEBUG_ALWAYS, + "write scharr mask CL", p, NULL, roi_in, NULL, + "couldn't write scharr mask: %s\n", cl_errstr(err)); + dt_dev_clear_scharr_mask(p); + } dt_opencl_release_mem_object(out); dt_opencl_release_mem_object(tmp); - dt_dev_clear_rawdetail_mask(p); - return TRUE; + return err; } #endif @@ -3124,7 +3126,7 @@ if(!valid) return NULL; dt_print_pipe(DT_DEBUG_MASKS, - "distort detail mask", pipe, target_module, &pipe->details.roi, NULL, "\n"); + "distort detail mask", pipe, target_module, &pipe->scharr.roi, NULL, "\n"); float *resmask = src; float *inmask = src; @@ -3132,43 +3134,39 @@ { for(GList *iter = source_iter; iter; iter = g_list_next(iter)) { - dt_dev_pixelpipe_iop_t *module = (dt_dev_pixelpipe_iop_t *)iter->data; - if(module->enabled - && !(module->module->dev->gui_module - && module->module->dev->gui_module != module->module - && module->module->dev->gui_module->operation_tags_filter() - & module->module->operation_tags())) + dt_dev_pixelpipe_iop_t *it_piece = (dt_dev_pixelpipe_iop_t *)iter->data; + if(!_skip_piece_on_tags(it_piece)) { // hack against pipes not using finalscale - if(module->module->distort_mask - && !(dt_iop_module_is(module->module->so, "finalscale") - && module->processed_roi_in.width == 0 - && module->processed_roi_in.height == 0)) + if(it_piece->module->distort_mask + && !(dt_iop_module_is(it_piece->module->so, "finalscale") + && it_piece->processed_roi_in.width == 0 + && it_piece->processed_roi_in.height == 0)) { - float *tmp = dt_alloc_align_float((size_t)module->processed_roi_out.width - * module->processed_roi_out.height); + float *tmp = dt_alloc_align_float((size_t)it_piece->processed_roi_out.width + * it_piece->processed_roi_out.height); dt_print_pipe(DT_DEBUG_MASKS | DT_DEBUG_VERBOSE, - "distort detail mask", pipe, module->module, &module->processed_roi_in, &module->processed_roi_out, "\n"); + "distort detail mask", pipe, it_piece->module, &it_piece->processed_roi_in, &it_piece->processed_roi_out, "\n"); - module->module->distort_mask(module->module, module, inmask, tmp, - &module->processed_roi_in, - &module->processed_roi_out); + it_piece->module->distort_mask(it_piece->module, it_piece, inmask, tmp, + &it_piece->processed_roi_in, + &it_piece->processed_roi_out); resmask = tmp; if(inmask != src) dt_free_align(inmask); inmask = tmp; } - else if(!module->module->distort_mask - && (module->processed_roi_in.width != module->processed_roi_out.width - || module->processed_roi_in.height != module->processed_roi_out.height - || module->processed_roi_in.x != module->processed_roi_out.x - || module->processed_roi_in.y != module->processed_roi_out.y)) + else if(!it_piece->module->distort_mask + && (it_piece->processed_roi_in.width != it_piece->processed_roi_out.width + || it_piece->processed_roi_in.height != it_piece->processed_roi_out.height + || it_piece->processed_roi_in.x != it_piece->processed_roi_out.x + || it_piece->processed_roi_in.y != it_piece->processed_roi_out.y)) dt_print_pipe(DT_DEBUG_ALWAYS, "distort details mask", - pipe, module->module, - &module->processed_roi_in, &module->processed_roi_out, + pipe, it_piece->module, + &it_piece->processed_roi_in, &it_piece->processed_roi_out, "misses distort_mask()\n"); - if(module->module == target_module) break; + if(it_piece->module == target_module) break; } } } diff -Nru darktable-4.4.2/src/develop/pixelpipe_hb.h darktable-4.6.1/src/develop/pixelpipe_hb.h --- darktable-4.4.2/src/develop/pixelpipe_hb.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/pixelpipe_hb.h 2024-02-16 17:31:09.000000000 +0000 @@ -82,6 +82,14 @@ DT_DEV_PIPE_ZOOMED = 1 << 3 // zoom event, preview pipe does not need changes } dt_dev_pixelpipe_change_t; +typedef enum dt_dev_pixelpipe_status_t +{ + DT_DEV_PIXELPIPE_DIRTY = 0, // history stack changed or image new + DT_DEV_PIXELPIPE_RUNNING = 1, // pixelpipe is running + DT_DEV_PIXELPIPE_VALID = 2, // pixelpipe has finished; valid result + DT_DEV_PIXELPIPE_INVALID = 3 // pixelpipe has finished; invalid result +} dt_dev_pixelpipe_status_t; + typedef struct dt_dev_detail_mask_t { dt_iop_roi_t roi; @@ -126,6 +134,10 @@ GList *nodes; // event flag dt_dev_pixelpipe_change_t changed; + // pipe status + dt_dev_pixelpipe_status_t status; + gboolean loading; + gboolean input_changed; // backbuffer (output) uint8_t *backbuf; size_t backbuf_size; @@ -133,16 +145,13 @@ float backbuf_scale; float backbuf_zoom_x, backbuf_zoom_y; uint64_t backbuf_hash; - dt_pthread_mutex_t backbuf_mutex, busy_mutex; - // output buffer (for display) - uint8_t *output_backbuf; - int output_backbuf_width, output_backbuf_height; + dt_pthread_mutex_t mutex, backbuf_mutex, busy_mutex; int final_width, final_height; // the data for the luminance mask are kept in a buffer written by demosaic or rawprepare // as we have to scale the mask later we keep size at that stage gboolean want_detail_mask; - struct dt_dev_detail_mask_t details; + struct dt_dev_detail_mask_t scharr; // avoid cached data for processed module gboolean nocache; @@ -164,6 +173,7 @@ gboolean bypass_blendif; // input data based on this timestamp: int input_timestamp; + uint32_t average_delay; dt_dev_pixelpipe_type_t type; // the final output pixel format this pixelpipe will be converted to dt_imageio_levels_t levels; @@ -289,27 +299,27 @@ const struct dt_iop_module_t *target_module, gboolean *free_mask); // some helper functions related to the details mask interface -void dt_dev_clear_rawdetail_mask(dt_dev_pixelpipe_t *pipe); +void dt_dev_clear_scharr_mask(dt_dev_pixelpipe_t *pipe); -gboolean dt_dev_write_rawdetail_mask(dt_dev_pixelpipe_iop_t *piece, - float *const rgb, - const dt_iop_roi_t *const roi_in, - const gboolean mode); +gboolean dt_dev_write_scharr_mask(dt_dev_pixelpipe_iop_t *piece, + float *const rgb, + const dt_iop_roi_t *const roi_in, + const gboolean mode); #ifdef HAVE_OPENCL -gboolean dt_dev_write_rawdetail_mask_cl(dt_dev_pixelpipe_iop_t *piece, - cl_mem in, - const dt_iop_roi_t *const roi_in, - const gboolean mode); +int dt_dev_write_scharr_mask_cl(dt_dev_pixelpipe_iop_t *piece, + cl_mem in, + const dt_iop_roi_t *const roi_in, + const gboolean mode); #endif /* specialized version of dt_print for pixelpipe debugging */ -void dt_print_pipe(dt_debug_thread_t thread, - const char *title, - dt_dev_pixelpipe_t *pipe, - const struct dt_iop_module_t *mod, - const dt_iop_roi_t *roi_in, - const dt_iop_roi_t *roi_out, - const char *msg, ...); +void dt_print_pipe_ext(const char *title, + const dt_dev_pixelpipe_t *pipe, + const struct dt_iop_module_t *mod, + const dt_iop_roi_t *roi_in, + const dt_iop_roi_t *roi_out, + const char *msg, ...) + __attribute__((format(printf, 6, 7))); // helper function writing the pipe-processed ctmask data to dest float *dt_dev_distort_detail_mask(dt_dev_pixelpipe_t *pipe, diff -Nru darktable-4.4.2/src/develop/tiling.c darktable-4.6.1/src/develop/tiling.c --- darktable-4.4.2/src/develop/tiling.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/develop/tiling.c 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2011-2022 darktable developers. + Copyright (C) 2011-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -16,7 +16,6 @@ along with darktable. If not, see <http://www.gnu.org/licenses/>. */ - #include "develop/tiling.h" #include "common/opencl.h" #include "control/control.h" @@ -87,7 +86,7 @@ return n + shift; } -/* +/* _maximum_number_tiles is the assumed maximum sane number of tiles if during tiling this number is exceeded darktable assumes that tiling is not possible and falls back to untiled processing - with all system memory limits taking full effect. @@ -817,7 +816,7 @@ return; error: - dt_control_log(_("tiling failed for module '%s'. output might be garbled."), self->op); + dt_control_log(_("tiling failed for module '%s'. the output most likely will be OK, but you might want to check."), self->op); // fall through fallback: @@ -1170,7 +1169,7 @@ return; error: - dt_control_log(_("tiling failed for module '%s'. output might be garbled."), self->op); + dt_control_log(_("tiling failed for module '%s'. the output most likely will be OK, but you might want to check."), self->op); // fall through fallback: @@ -1549,9 +1548,12 @@ /* get input and output buffers */ input = dt_opencl_alloc_device(devid, wd, ht, in_bpp); - if(input == NULL) goto error; output = dt_opencl_alloc_device(devid, wd, ht, out_bpp); - if(output == NULL) goto error; + if(output == NULL || input == NULL) + { + err = CL_MEM_OBJECT_ALLOCATION_FAILURE; + goto error; + } if(use_pinned_memory) { @@ -1587,12 +1589,10 @@ for(int k = 0; k < 4; k++) piece->pipe->dsc.processed_maximum[k] = processed_maximum_saved[k]; /* call process_cl of module */ - - if(!self->process_cl(self, piece, input, output, &iroi, &oroi)) - { - err = DT_OPENCL_PROCESS_CL; + err = self->process_cl(self, piece, input, output, &iroi, &oroi); + if(err < CL_SUCCESS) goto error; - } + /* aggregate resulting processed_maximum */ /* TODO: check if there really can be differences between tiles and take appropriate action (calculate minimum, maximum, average, ...?) */ @@ -1672,7 +1672,7 @@ dt_opencl_release_mem_object(input); dt_opencl_release_mem_object(output); piece->pipe->tiling = FALSE; - return TRUE; + return CL_SUCCESS; error: /* copy back stored processed_maximum */ @@ -1684,16 +1684,16 @@ dt_opencl_release_mem_object(input); dt_opencl_release_mem_object(output); piece->pipe->tiling = FALSE; - const gboolean pinning_error = (use_pinned_memory == FALSE) && dt_opencl_use_pinned_memory(devid); + const gboolean pinning_error = !use_pinned_memory && dt_opencl_use_pinned_memory(devid); dt_print(DT_DEBUG_TILING | DT_DEBUG_OPENCL, "[default_process_tiling_opencl_ptp] [%s] couldn't run process_cl() for " "module '%s%s' in tiling mode:%s %s\n", dt_dev_pixelpipe_type_to_str(piece->pipe->type), self->op, dt_iop_get_instance_id(self), (pinning_error) ? " pinning problem" : "", cl_errstr(err)); - if(pinning_error) darktable.opencl->dev[devid].runtime_error |= DT_OPENCL_TUNE_PINNED; - return FALSE; -} + if(pinning_error) darktable.opencl->dev[devid].pinned_error = TRUE; + return err; +} /* more elaborate tiling algorithm for roi_in != roi_out: slower than the ptp variant, more tiles and larger overlap */ @@ -2030,10 +2030,12 @@ /* get opencl input and output buffers */ input = dt_opencl_alloc_device(devid, iroi_full.width, iroi_full.height, in_bpp); - if(input == NULL) goto error; - output = dt_opencl_alloc_device(devid, oroi_full.width, oroi_full.height, out_bpp); - if(output == NULL) goto error; + if(output == NULL || input == NULL) + { + err = CL_MEM_OBJECT_ALLOCATION_FAILURE; + goto error; + } if(use_pinned_memory) { @@ -2068,11 +2070,10 @@ for(int k = 0; k < 4; k++) piece->pipe->dsc.processed_maximum[k] = processed_maximum_saved[k]; /* call process_cl of module */ - if(!self->process_cl(self, piece, input, output, &iroi_full, &oroi_full)) - { - err = DT_OPENCL_PROCESS_CL; + err = self->process_cl(self, piece, input, output, &iroi_full, &oroi_full); + if(err< CL_SUCCESS) goto error; - } + /* aggregate resulting processed_maximum */ /* TODO: check if there really can be differences between tiles and take appropriate action (calculate minimum, maximum, average, ...?) */ @@ -2135,7 +2136,7 @@ dt_opencl_release_mem_object(input); dt_opencl_release_mem_object(output); piece->pipe->tiling = FALSE; - return TRUE; + return CL_SUCCESS; error: /* copy back stored processed_maximum */ @@ -2154,10 +2155,10 @@ dt_dev_pixelpipe_type_to_str(piece->pipe->type), self->op, dt_iop_get_instance_id(self), (pinning_error) ? " pinning problem" : "", cl_errstr(err)); - if(pinning_error) darktable.opencl->dev[devid].runtime_error |= DT_OPENCL_TUNE_PINNED; - return FALSE; -} + if(pinning_error) darktable.opencl->dev[devid].pinned_error = TRUE; + return err; +} /* if a module does not implement process_tiling_cl() by itself, this function is called instead. @@ -2178,7 +2179,7 @@ const void *const ivoid, void *const ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out, const int in_bpp) { - return FALSE; + return -1; } #endif @@ -2243,4 +2244,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/dtgtk/button.c darktable-4.6.1/src/dtgtk/button.c --- darktable-4.4.2/src/dtgtk/button.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/dtgtk/button.c 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2010-2021 darktable developers. + Copyright (C) 2010-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -15,21 +15,12 @@ You should have received a copy of the GNU General Public License along with darktable. If not, see <http://www.gnu.org/licenses/>. */ + #include "button.h" #include "bauhaus/bauhaus.h" #include "gui/gtk.h" #include <string.h> -static void _button_class_init(GtkDarktableButtonClass *klass); -static void _button_init(GtkDarktableButton *button); -static gboolean _button_draw(GtkWidget *widget, cairo_t *cr); - -static void _button_class_init(GtkDarktableButtonClass *klass) -{ - GtkWidgetClass *widget_class = (GtkWidgetClass *)klass; - - widget_class->draw = _button_draw; -} static void _button_init(GtkDarktableButton *button) { @@ -88,12 +79,12 @@ cwidth -= border.left + border.right + padding.left + padding.right; cheight -= border.top + border.bottom + padding.top + padding.bottom; - /* we have to leave some breathing room to the cairo icon paint function to possibly */ - /* draw slightly outside the bounding box, for optical alignment and balancing of icons */ - /* we do this by putting a drawing area widget inside the button and using the CSS */ - /* margin property in px of the drawing area as extra room in percent (DPI safe) */ - /* we do this because Gtk+ does not support CSS size in percent */ - /* this extra margin can be also (slightly) negative */ + /* We have to leave some breathing room to the cairo icon paint function to possibly + draw slightly outside the bounding box, for alignment and balancing of icons. + We do this by putting a drawing area widget inside the button and using the CSS + margin property in px of the drawing area as extra room in percent (DPI safe). + We do this because GTK does not support CSS size in percent. + This extra margin can be also (slightly) negative. */ GtkStyleContext *ccontext = gtk_widget_get_style_context(DTGTK_BUTTON(widget)->canvas); GtkBorder cmargin; gtk_style_context_get_margin(ccontext, state, &cmargin); @@ -111,8 +102,17 @@ return FALSE; } +static void _button_class_init(GtkDarktableButtonClass *klass) +{ + GtkWidgetClass *widget_class = (GtkWidgetClass *)klass; + + widget_class->draw = _button_draw; +} + // Public functions -GtkWidget *dtgtk_button_new(DTGTKCairoPaintIconFunc paint, gint paintflags, void *paintdata) +GtkWidget *dtgtk_button_new(DTGTKCairoPaintIconFunc paint, + gint paintflags, + void *paintdata) { GtkDarktableButton *button; button = g_object_new(dtgtk_button_get_type(), NULL); @@ -132,18 +132,26 @@ if(!dtgtk_button_type) { static const GTypeInfo dtgtk_button_info = { - sizeof(GtkDarktableButtonClass), (GBaseInitFunc)NULL, (GBaseFinalizeFunc)NULL, + sizeof(GtkDarktableButtonClass), + (GBaseInitFunc)NULL, + (GBaseFinalizeFunc)NULL, (GClassInitFunc)_button_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof(GtkDarktableButton), 0, /* n_preallocs */ (GInstanceInitFunc)_button_init, }; - dtgtk_button_type = g_type_register_static(GTK_TYPE_BUTTON, "GtkDarktableButton", &dtgtk_button_info, 0); + dtgtk_button_type = g_type_register_static(GTK_TYPE_BUTTON, + "GtkDarktableButton", + &dtgtk_button_info, + 0); } return dtgtk_button_type; } -void dtgtk_button_set_paint(GtkDarktableButton *button, DTGTKCairoPaintIconFunc paint, gint paintflags, void *paintdata) +void dtgtk_button_set_paint(GtkDarktableButton *button, + DTGTKCairoPaintIconFunc paint, + gint paintflags, + void *paintdata) { g_return_if_fail(button != NULL); button->icon = paint; @@ -165,4 +173,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/dtgtk/culling.c darktable-4.6.1/src/dtgtk/culling.c --- darktable-4.4.2/src/dtgtk/culling.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/dtgtk/culling.c 2024-02-16 17:31:09.000000000 +0000 @@ -42,15 +42,6 @@ return MIN(max_in_memory_images, FULL_PREVIEW_IN_MEMORY_LIMIT); } -// specials functions for GList globals actions -static gint _list_compare_by_imgid(gconstpointer a, gconstpointer b) -{ - dt_thumbnail_t *th = (dt_thumbnail_t *)a; - const dt_imgid_t imgid = GPOINTER_TO_INT(b); - if(!dt_is_valid_imgid(th->imgid) || !dt_is_valid_imgid(imgid)) return 1; - return (th->imgid != imgid); -} - static void _list_remove_thumb(gpointer user_data) { dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; @@ -58,28 +49,6 @@ dt_thumbnail_destroy(thumb); } -static int _get_selection_count() -{ - int nb = 0; - gchar *query = g_strdup( //TODO: since this is a fixed string, do we need to copy? - "SELECT count(*)" - " FROM main.selected_images AS s, memory.collected_images as m" - " WHERE s.imgid = m.imgid"); - sqlite3_stmt *stmt; - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), query, -1, &stmt, NULL); - if(stmt != NULL) - { - if(sqlite3_step(stmt) == SQLITE_ROW) - { - nb = sqlite3_column_int(stmt, 0); - } - sqlite3_finalize(stmt); - } - g_free(query); - - return nb; -} - // get imgid from rowid static dt_imgid_t _thumb_get_imgid(int rowid) { @@ -1185,12 +1154,10 @@ ("SELECT m.imgid" " FROM memory.collected_images AS m, main.selected_images AS s" " WHERE m.imgid = s.imgid" - " AND m.rowid > (SELECT mm.rowid" - " FROM memory.collected_images AS mm" - " WHERE mm.imgid=%d)" + " AND m.rowid > %d" " ORDER BY m.rowid " " LIMIT 1", - last->imgid); + last->rowid); // clang-format on } else @@ -1199,12 +1166,10 @@ query = g_strdup_printf ("SELECT m.imgid" " FROM memory.collected_images AS m " - " WHERE m.rowid > (SELECT mm.rowid" - " FROM memory.collected_images AS mm" - " WHERE mm.imgid=%d) " + " WHERE m.rowid > %d" " ORDER BY m.rowid " " LIMIT 1", - last->imgid); + last->rowid); // clang-format on } DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), query, -1, &stmt, NULL); @@ -1226,12 +1191,10 @@ ("SELECT m.imgid" " FROM memory.collected_images AS m, main.selected_images AS s" " WHERE m.imgid = s.imgid" - " AND m.rowid < (SELECT mm.rowid" - " FROM memory.collected_images AS mm" - " WHERE mm.imgid=%d)" + " AND m.rowid < %d" " ORDER BY m.rowid DESC " " LIMIT 1", - prev->imgid); + prev->rowid); // clang-format on } else @@ -1240,12 +1203,10 @@ query = g_strdup_printf ("SELECT m.imgid" " FROM memory.collected_images AS m" - " WHERE m.rowid < (SELECT mm.rowid" - " FROM memory.collected_images AS mm" - " WHERE mm.imgid=%d) " + " WHERE m.rowid < %d" " ORDER BY m.rowid DESC " " LIMIT 1", - prev->imgid); + prev->rowid); // clang-format on } DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), query, -1, &stmt, NULL); @@ -1264,90 +1225,110 @@ gchar *query = NULL; sqlite3_stmt *stmt; + int nw = 40; + int nh = 40; + + // get width/height before the list is destroyed + if(table->list) + { + dt_thumbnail_t *th_model = (dt_thumbnail_t *)(table->list)->data; + nw = th_model->width; + nh = th_model->height; + } + + // let's create a hashtable of table->list in order to speddup search in next loop + GHashTable *htable = g_hash_table_new_full(g_int_hash, g_int_equal, NULL, _list_remove_thumb); + for(const GList *l = table->list; l; l = g_list_next(l)) + { + dt_thumbnail_t *th = (dt_thumbnail_t *)l->data; + g_hash_table_insert(htable, &th->imgid, (gpointer)th); + } + g_list_free(table->list); + table->list = NULL; + if(table->navigate_inside_selection) { + // in this mode, we have "gaps" between rowid because of unselected images + // if some case, there isn't enough select images *after* the offset + // in this case, we need to try to take some image before the offset + // the "dynamic" field "newrow" below is taking care of that + // clang-format off query = g_strdup_printf - ("SELECT m.rowid, m.imgid, b.aspect_ratio" - " FROM memory.collected_images AS m, main.selected_images AS s, images AS b" - " WHERE m.imgid = b.id AND m.imgid = s.imgid AND m.rowid >= %d" - " ORDER BY m.rowid " - " LIMIT %d", - offset, table->thumbs_count); + ("SELECT i1, i2, i3, i2, newrow" + " FROM (SELECT m.rowid AS i1, m.imgid AS i2, b.aspect_ratio AS i3," + " (CASE WHEN m.rowid >= %d" + " THEN m.rowid" + " ELSE (SELECT MAX(rowid) FROM memory.collected_images) + %d - m.rowid" + " END) AS newrow" + " FROM memory.collected_images AS m, main.selected_images AS s, images AS b" + " WHERE m.imgid = b.id AND m.imgid = s.imgid" + " ORDER BY newrow" + " LIMIT %d)" + " ORDER BY i1", + offset, offset, table->thumbs_count); // clang-format on } else { // clang-format off query = g_strdup_printf - ("SELECT m.rowid, m.imgid, b.aspect_ratio " + ("SELECT m.rowid, m.imgid, b.aspect_ratio, s.imgid" " FROM (SELECT rowid, imgid " " FROM memory.collected_images " " WHERE rowid < %d + %d " " ORDER BY rowid DESC " - " LIMIT %d) AS m, " - " images AS b " + " LIMIT %d) AS m " + " LEFT JOIN main.selected_images AS s" + " ON m.imgid=s.imgid," + " images AS b" " WHERE m.imgid = b.id " " ORDER BY m.rowid", offset, table->thumbs_count, table->thumbs_count); // clang-format on } - GList *newlist = NULL; - int pos = 0; DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), query, -1, &stmt, NULL); - while(sqlite3_step(stmt) == SQLITE_ROW - && g_list_shorter_than(newlist, table->thumbs_count+1)) + while(sqlite3_step(stmt) == SQLITE_ROW) { const int nrow = sqlite3_column_int(stmt, 0); const dt_imgid_t nid = sqlite3_column_int(stmt, 1); + const gboolean selected = (nid == sqlite3_column_int(stmt, 3)); + // first, we search if the thumb is already here - GList *tl = g_list_find_custom(table->list, - GINT_TO_POINTER(nid), - _list_compare_by_imgid); - if(tl) + dt_thumbnail_t *thumb = (dt_thumbnail_t *)g_hash_table_lookup(htable, &nid); + if(thumb) { - dt_thumbnail_t *thumb = (dt_thumbnail_t *)tl->data; + g_hash_table_steal(htable, &nid); thumb->rowid = nrow; // this may have changed thumb->display_focus = table->focus; - newlist = g_list_prepend(newlist, thumb); - // and we remove the thumb from the old list - table->list = g_list_remove(table->list, thumb); + table->list = g_list_prepend(table->list, thumb); } else { // we create a completely new thumb we set its size to the thumb // it replace in the list if any otherwise we set it to // something > 0 to trigger draw events - int nw = 40; - int nh = 40; - if(table->mode == DT_CULLING_MODE_PREVIEW) + if(table->mode == DT_CULLING_MODE_PREVIEW || + (table->mode == DT_CULLING_MODE_CULLING && table->thumbs_count == 1)) { nw = table->view_width; nh = table->view_height; } - else if(table->list) - { - dt_thumbnail_t *th_model - = (dt_thumbnail_t *)g_list_nth_data(table->list, - MIN(pos, g_list_length(table->list) - 1)); - nw = th_model->width; - nh = th_model->height; - } - else if(newlist) - { - dt_thumbnail_t *th_model = (dt_thumbnail_t *)newlist->data; - // get most recently added - nw = th_model->width; - nh = th_model->height; - } - dt_thumbnail_t *thumb; - if(table->mode == DT_CULLING_MODE_PREVIEW) - thumb = dt_thumbnail_new(nw, nh, table->zoom_ratio, nid, nrow, table->overlays, - DT_THUMBNAIL_CONTAINER_PREVIEW, table->show_tooltips); - else - thumb = dt_thumbnail_new(nw, nh, table->zoom_ratio, nid, nrow, table->overlays, - DT_THUMBNAIL_CONTAINER_CULLING, table->show_tooltips); + + const dt_thumbnail_container_t container = table->mode == DT_CULLING_MODE_PREVIEW + ? DT_THUMBNAIL_CONTAINER_PREVIEW + : DT_THUMBNAIL_CONTAINER_CULLING; + + thumb = dt_thumbnail_new(nw, + nh, + table->zoom_ratio, + nid, + nrow, + table->overlays, + container, + table->show_tooltips, + selected); thumb->display_focus = table->focus; thumb->sel_mode = DT_THUMBNAIL_SEL_MODE_DISABLED; @@ -1359,100 +1340,15 @@ if(aspect_ratio < 0.0001f) aspect_ratio = 1.0f; } thumb->aspect_ratio = aspect_ratio; - newlist = g_list_prepend(newlist, thumb); + table->list = g_list_prepend(table->list, thumb); } // if it's the offset, we record the imgid if(nrow == table->offset) table->offset_imgid = nid; - pos++; - } - newlist = g_list_reverse(newlist); // list was built in reverse order, so un-reverse it - - // in rare cases, we can have less images than wanted - // although there's images before (this shouldn't happen in preview) - if(table->navigate_inside_selection && g_list_shorter_than(newlist, table->thumbs_count) - && g_list_shorter_than(newlist, _get_selection_count())) - { - const int nb = table->thumbs_count - g_list_length(newlist); - // clang-format off - query = g_strdup_printf - ("SELECT m.rowid, m.imgid, b.aspect_ratio" - " FROM memory.collected_images AS m, main.selected_images AS s, images AS b" - " WHERE m.imgid = b.id AND m.imgid = s.imgid AND m.rowid < %d" - " ORDER BY m.rowid DESC" - " LIMIT %d", - offset, nb); - // clang-format on - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), query, -1, &stmt, NULL); - if(stmt != NULL) - { - pos = 0; - while(sqlite3_step(stmt) == SQLITE_ROW - && g_list_shorter_than(newlist, table->thumbs_count+1)) - { - const int nrow = sqlite3_column_int(stmt, 0); - const int nid = sqlite3_column_int(stmt, 1); - // first, we search if the thumb is already here - GList *tl = g_list_find_custom(table->list, - GINT_TO_POINTER(nid), _list_compare_by_imgid); - if(tl) - { - dt_thumbnail_t *thumb = (dt_thumbnail_t *)tl->data; - thumb->rowid = nrow; // this may have changed - newlist = g_list_prepend(newlist, thumb); - // and we remove the thumb from the old list - table->list = g_list_remove(table->list, thumb); - } - else - { - // we create a completely new thumb we set its size to the - // thumb it replace in the list if any otherwise we set it - // to something > 0 to trigger draw events - int nw = 40; - int nh = 40; - if(table->list) - { - dt_thumbnail_t *th_model = (dt_thumbnail_t *)(table->list)->data; - nw = th_model->width; - nh = th_model->height; - } - else if(newlist) - { - dt_thumbnail_t *th_model = (dt_thumbnail_t *)newlist->data; - nw = th_model->width; - nh = th_model->height; - } - dt_thumbnail_t *thumb; - if(table->mode == DT_CULLING_MODE_PREVIEW) - thumb = dt_thumbnail_new(nw, nh, table->zoom_ratio, nid, nrow, table->overlays, - DT_THUMBNAIL_CONTAINER_PREVIEW, table->show_tooltips); - else - thumb = dt_thumbnail_new(nw, nh, table->zoom_ratio, nid, nrow, table->overlays, - DT_THUMBNAIL_CONTAINER_CULLING, table->show_tooltips); - - thumb->display_focus = table->focus; - thumb->sel_mode = DT_THUMBNAIL_SEL_MODE_DISABLED; - float aspect_ratio = sqlite3_column_double(stmt, 2); - if(!aspect_ratio || aspect_ratio < 0.0001f) - { - aspect_ratio = dt_image_set_aspect_ratio(nid, FALSE); - // if an error occurs, let's use 1:1 value - if(aspect_ratio < 0.0001f) aspect_ratio = 1.0f; - } - thumb->aspect_ratio = aspect_ratio; - newlist = g_list_prepend(newlist, thumb); - } - // if it's the offset, we record the imgid - if(nrow == table->offset) table->offset_imgid = nid; - pos++; - } - sqlite3_finalize(stmt); - } - g_free(query); } - - // now we cleanup all remaining thumbs from old table->list and set it again - g_list_free_full(table->list, _list_remove_thumb); - table->list = newlist; + // list was built in reverse order, so un-reverse it + table->list = g_list_reverse(table->list); + // clean up all remaining thumbnails + g_hash_table_destroy(htable); // and we ensure that we have the right offset if(table->list) @@ -1466,6 +1362,8 @@ static gboolean _thumbs_compute_positions(dt_culling_t *table) { + // This code computes sizes and positions of thumbnails in culling view mode + if(!gtk_widget_get_visible(table->widget)) return FALSE; if(!table->list) return FALSE; @@ -1480,14 +1378,12 @@ return TRUE; } - int sum_w = 0, max_h = 0, max_w = 0; + // initialize horizontal and vertical spacing distance between thumbnails with lowest value possible. Will be scaled up later. + const int spacing = 1; - unsigned int total_width = 0, total_height = 0; - int distance = 1; - float avg_ratio = 0; + // reinit size and positions of each thumbnail, remember size from biggest thumbnail, calculate average thumbnail ratio + int max_thumb_height = 0; - // reinit size and positions and get max values - int count = 0; for(GList *l = table->list; l; l = g_list_next(l)) { dt_thumbnail_t *thumb = (dt_thumbnail_t *)l->data; @@ -1496,173 +1392,341 @@ thumb->height = (gint)(1 / sqrt(aspect_ratio) * 100); thumb->x = thumb->y = 0; - sum_w += thumb->width; - max_w = MAX(max_w, thumb->width); - max_h = MAX(max_h, thumb->height); - avg_ratio += thumb->width / (float)thumb->height; - count++; + max_thumb_height = MAX(max_thumb_height, thumb->height); } - avg_ratio /= count; - - int per_row, tmp_per_row, per_col, tmp_per_col; - per_row = tmp_per_row = ceil(sqrt(count)); - per_col = tmp_per_col = (count + per_row - 1) / per_row; - - float tmp_slot_ratio, slot_ratio; - tmp_slot_ratio = slot_ratio = - (table->view_width / (float)per_row) / (table->view_height / (float)per_col); - - do - { - per_row = tmp_per_row; - per_col = tmp_per_col; - slot_ratio = tmp_slot_ratio; - - if(avg_ratio > slot_ratio) - { - tmp_per_row = per_row - 1; - } - else - { - tmp_per_row = per_row + 1; - } - - if(tmp_per_row == 0) break; - - tmp_per_col = (count + tmp_per_row - 1) / tmp_per_row; - - tmp_slot_ratio = - (table->view_width / (float)tmp_per_row) / (table->view_height / (float)tmp_per_col); + // Vertical image stacking: + // Vertical stacking is only allowed if the heigth of the biggest thumbnail is more than the height + // of 2 or more thumbs combined. + // for example: we have three images and image 2 is higher than heights of image 1 and 3 combined + // [ 1 ] | 2 | | 2 | + // [ 3 ] | 2 | instead of this placement --> [ 1 ] | 2 | [ 3 ] + // | 2 | | 2 | + // in this case, images 1 and 3 would be stacked in one slot and image 2 will be placed in a new slot alone. + // if all images have similar heigths, they will not be stacked and placed in separate slots. - } while(per_row > 0 - && per_row <= count - && _absmul(tmp_slot_ratio, avg_ratio) < _absmul(slot_ratio, avg_ratio)); + // Note: Stacking only make sense for images in the same row as the portrait image. + // The algorithm does not check for this so unnecessary stacking can occur. GList *slots = NULL; + int max_slot_heigth = 0; + int avg_thumb_width = 0; - // Vertical layout + // loop through all thumbs + int thumb_counter = 0; for(GList *l = table->list; l; l = g_list_next(l)) { dt_thumbnail_t *thumb = (dt_thumbnail_t *)l->data; GList *slot_iter = slots; + + thumb_counter++; + avg_thumb_width += (thumb->width - avg_thumb_width) / (float)thumb_counter; + + // loop through newly created slots to check for available space for(; slot_iter; slot_iter = slot_iter->next) { GList *slot = (GList *)slot_iter->data; - // Calculate current total height of slot - int slot_h = distance; - for(GList *slot_cw_iter = slot; - slot_cw_iter; - slot_cw_iter = g_list_next(slot_cw_iter)) - { - dt_thumbnail_t *slot_cw = (dt_thumbnail_t *)slot_cw_iter->data; - slot_h = slot_h + slot_cw->height + distance; - } - // Add window to slot if the slot height after adding the window - // doesn't exceed max window height - if(slot_h + distance + thumb->height < max_h) + int slot_heigth = 0; + + // loop through thumbnails in slot + for(GList *slot_thumb_iter = slot; + slot_thumb_iter; + slot_thumb_iter = g_list_next(slot_thumb_iter)) + { + dt_thumbnail_t *slot_thumb = (dt_thumbnail_t *)slot_thumb_iter->data; + slot_heigth = slot_heigth + slot_thumb->height + spacing; + } + slot_heigth -= spacing; + + // Add thumbnail to slot if the slot height after adding the thumbnail + // doesn't exceed the height of the highest thumbnail + if(slot_heigth + spacing + thumb->height < max_thumb_height) { slot_iter->data = g_list_append(slot, thumb); + max_slot_heigth = + MAX(max_slot_heigth, slot_heigth + spacing + thumb->height); break; } } - // Otherwise, create a new slot with only this window - if(!slot_iter) slots = g_list_prepend(slots, g_list_prepend(NULL, thumb)); + // Otherwise, create a new slot with only this thumbnail + if(!slot_iter) + { + slots = g_list_prepend(slots, g_list_prepend(NULL, thumb)); + max_slot_heigth = MAX(max_slot_heigth, thumb->height); + } } slots = g_list_reverse(slots); // list was built in reverse order, so un-reverse it + const int number_of_slots = g_list_length(slots); + + // finished assigning thumbnails to slots + // we also know max slot height, so we can now scale all slots to this heigth + // and then calculate average slot heigth and width + int slot_counter = 0; + float avg_slot_aspect_r = 0.0f; + int total_slot_width = 0; + int avg_slot_width = 0; + + for(GList *slot_iter = slots; + slot_iter; + slot_iter = g_list_next(slot_iter)) + { + slot_counter++; + + GList *slot = (GList *)slot_iter->data; + int slot_heigth = 0; + int scaled_slot_height = 0; + int scaled_slot_width = 0; + + // calculate current slot heigth for upscaling + for(GList *slot_thumb_iter = slot; + slot_thumb_iter; + slot_thumb_iter = g_list_next(slot_thumb_iter)) + { + const dt_thumbnail_t *thumb = (dt_thumbnail_t *)slot_thumb_iter->data; + slot_heigth += thumb->height + spacing; + } + slot_heigth -= spacing; + + // apply scaling to even out heights + for(GList *slot_thumb_iter = slot; + slot_thumb_iter; + slot_thumb_iter = g_list_next(slot_thumb_iter)) + { + dt_thumbnail_t *thumb = (dt_thumbnail_t *)slot_thumb_iter->data; + float stack_heigth_factor = + (max_slot_heigth) / (float)slot_heigth; + + if(number_of_slots == 2) + { + // limit scaling factor to 20% if only two images are displayed so that slight differences are corrected + // but portrait and landscape orientation are displayed at similar sizes + stack_heigth_factor = MIN(stack_heigth_factor, 1.2); + } + else + { + // limit scaling so that width does not increase to more than twice the average thumbnail width + stack_heigth_factor = MIN(stack_heigth_factor, 2 * avg_thumb_width / (float)thumb->width); + } + thumb->height *= stack_heigth_factor; + thumb->width *= stack_heigth_factor; + + // calculate new slot height and width + scaled_slot_width = MAX(scaled_slot_width, thumb->width); + scaled_slot_height += thumb->height + spacing; + } + scaled_slot_height -= spacing; + total_slot_width += scaled_slot_width + spacing; + + // iterative formula to calculate average slot ratio and width + avg_slot_aspect_r += (scaled_slot_width/(float)scaled_slot_height - avg_slot_aspect_r) / (float)slot_counter; + avg_slot_width += (scaled_slot_width - avg_slot_width) / (float)thumb_counter; + } + total_slot_width -= spacing; + + // variables to hold vertical and horizontal width of all thumbnails after their final placement + unsigned int planned_total_width = total_slot_width; + unsigned int planned_total_height = max_thumb_height; + + const float screen_aspect_r = table->view_width / (float)table->view_height; + int row_cnt = 1; + int row_cnt_tmp = 1; + + float deviation = _absmul(planned_total_width / (float)planned_total_height, screen_aspect_r); + float deviation_tmp = deviation; + + do { + row_cnt = row_cnt_tmp; + deviation = deviation_tmp; + planned_total_width = total_slot_width / (float) row_cnt; + planned_total_height = row_cnt * max_slot_heigth; + + if(planned_total_width / (float)planned_total_height > screen_aspect_r) + row_cnt_tmp = row_cnt + 1; + else + row_cnt_tmp = row_cnt - 1; + + if(row_cnt_tmp == 0 || row_cnt_tmp > slot_counter) + break; + + const float planned_total_width_tmp = total_slot_width / (float) row_cnt_tmp; + const int planned_total_height_tmp = row_cnt_tmp * max_slot_heigth; + + deviation_tmp = _absmul(planned_total_width_tmp / (float)planned_total_height_tmp, screen_aspect_r); + + } while (deviation_tmp < deviation); + int total_height = 0; + int total_width = 0; + + // create a nested list to hold all thumbnails in their final placement in rows GList *rows = g_list_append(NULL, NULL); { - int row_y = 0, x = 0, row_h = 0; - int max_row_w = sum_w / per_col; + int row_y = 0; + int thumb_x = 0; + int row_heigth = 0; + const int row_width_limit = planned_total_width; + + // work with one slot at a time for(GList *slot_iter = slots; slot_iter; slot_iter = g_list_next(slot_iter)) { GList *slot = (GList *)slot_iter->data; - // Max width of windows in the slot - int slot_max_w = 0; - for(GList *slot_cw_iter = slot; - slot_cw_iter; - slot_cw_iter = g_list_next(slot_cw_iter)) - { - dt_thumbnail_t *cw = (dt_thumbnail_t *)slot_cw_iter->data; - slot_max_w = MAX(slot_max_w, cw->width); - } - - int y = row_y; - for(GList *slot_cw_iter = slot; - slot_cw_iter; - slot_cw_iter = g_list_next(slot_cw_iter)) - { - dt_thumbnail_t *cw = (dt_thumbnail_t *)slot_cw_iter->data; - cw->x = x + (slot_max_w - cw->width) / 2; - cw->y = y; - y += cw->height + distance; - rows->data = g_list_append(rows->data, cw); - } - - row_h = MAX(row_h, y - row_y); - total_height = MAX(total_height, y); - x += slot_max_w + distance; - total_width = MAX(total_width, x); - - if(x > max_row_w) - { - x = 0; - row_y += row_h; - row_h = 0; + // Calculate max width and total height of thumbs in the slot so that all thumbs can be centered within the slot + int slot_max_thumb_width = 0; + int slot_total_heigth = 0; + for(GList *slot_thumb_iter = slot; + slot_thumb_iter; + slot_thumb_iter = g_list_next(slot_thumb_iter)) + { + const dt_thumbnail_t *thumb = (dt_thumbnail_t *)slot_thumb_iter->data; + slot_max_thumb_width = MAX(slot_max_thumb_width, thumb->width); + slot_total_heigth = slot_total_heigth + thumb->height + spacing; + } + // don't include bottom spacing in height calculation + slot_total_heigth -= spacing; + + // if slot is about to be placed outside of allocated horizontal space, place the slot in a new row + // we allow for 20% thumbnail width tolerance to account for the influence of images with mixed aspect ratios in the math + gboolean create_new_row = FALSE; + + // if the row limit is exceeded by more than 60% of a slot place it in the next row + // unless this is the last thumbnail and squeezing it into the current row results + // in a better placement ratio than opening a new row. + if(thumb_x + 0.4 * slot_max_thumb_width > row_width_limit) + { + create_new_row = TRUE; + + if(!slot_iter->next) + { + const float ratio_same_row = _absmul( + MAX(total_width, (thumb_x + slot_max_thumb_width)) / (float)MAX(total_height, row_y + slot_total_heigth), + table->view_width / (float)table->view_height + ); + const float ratio_new_row = _absmul( + MAX(total_width, slot_max_thumb_width) / (float)(total_height + slot_total_heigth), + table->view_width / (float)table->view_height + ); + + if(ratio_new_row > ratio_same_row) + create_new_row = FALSE; + } + } + + if(create_new_row) + { + thumb_x = 0; + row_y += row_heigth; + row_heigth = 0; rows = g_list_append(rows, 0); rows = rows->next; // keep rows pointing at last element to // avoid quadratic runtime } - g_list_free(slot); + + int thumb_y = row_y; + + // loop through all images assigned to a slot and calculate their placement + // place all of them within the same row + for(GList *slot_thumb_iter = slot; + slot_thumb_iter; + slot_thumb_iter = g_list_next(slot_thumb_iter)) + { + dt_thumbnail_t *thumb = (dt_thumbnail_t *)slot_thumb_iter->data; + thumb->x = thumb_x + (slot_max_thumb_width - thumb->width) / 2; // x position should be horizontally centered within the slot + thumb->y = thumb_y; // y position starts at 0 + thumb_y += thumb->height + spacing; // and is increased by the heigth of the thumb + spacing of spacing for placing the next image of the slot + } + rows->data = g_list_append(rows->data, slot); // append slot to row + row_heigth = MAX(row_heigth, thumb_y - row_y); + total_height = MAX(total_height, thumb_y); // update total height of all thumbs combined as we fill column by column with thumbnails + thumb_x += slot_max_thumb_width + spacing; + total_width = MAX(total_width, thumb_x); // update total width of all thumbs combined as we fill column by column with thumbnails } + total_width -= spacing; g_list_free(slots); slots = NULL; } + total_height -= spacing; rows = g_list_first(rows); // rows points at the last element of the // constructed list, so move it back to // the start - total_width -= distance; - total_height -= distance; - for(const GList *iter = rows; iter; iter = g_list_next(iter)) - { - GList *row = (GList *)iter->data; - int row_w = 0, xoff; - int max_rh = 0; - - for(GList *slot_cw_iter = row; - slot_cw_iter; - slot_cw_iter = g_list_next(slot_cw_iter)) + // loop through all thumbnails to apply offsets for final positioning + // loop through rows + for(const GList *row_iter = rows; row_iter; row_iter = g_list_next(row_iter)) + { + GList *row = (GList *)row_iter->data; + int row_width = 0; + int row_heigth = 0; + int xoff = 0; + int yoff = 0; + + // loop through slots of the row + for(GList *slot_iter = row; + slot_iter; + slot_iter = g_list_next(slot_iter)) { - dt_thumbnail_t *cw = (dt_thumbnail_t *)slot_cw_iter->data; - row_w = MAX(row_w, cw->x + cw->width); - max_rh = MAX(max_rh, cw->height); - } - - xoff = (total_width - row_w) / 2; + GList *slot = (GList *)slot_iter->data; + int slot_heigth = 0; - for(GList *cw_iter = row; cw_iter; cw_iter = g_list_next(cw_iter)) + // loop through thumbs of the slot + // to calculate slot heigth and update row width and heigth + // which is used for xoffset of row and yoffset of individual thumbs + for(GList *slot_thumb_iter = slot; + slot_thumb_iter; + slot_thumb_iter = g_list_next(slot_thumb_iter)) + { + const dt_thumbnail_t *thumb = (dt_thumbnail_t *)slot_thumb_iter->data; + row_width = MAX(row_width, thumb->x + thumb->width + spacing); + slot_heigth += thumb->height + spacing; + } + slot_heigth -= spacing; + row_heigth = MAX(row_heigth, slot_heigth); + } + row_width -= spacing; + xoff = (total_width - row_width) / 2; + + // loop through all slots and thumbs again to apply offset + for(GList *slot_iter = row; + slot_iter; + slot_iter = g_list_next(slot_iter)) { - dt_thumbnail_t *cw = (dt_thumbnail_t *)cw_iter->data; - cw->x += xoff; - cw->height = max_rh; + GList *slot = (GList *)slot_iter->data; + + // calculate vertical offset + int slot_heigth = 0; + for(GList *slot_thumb_iter = slot; + slot_thumb_iter; + slot_thumb_iter = g_list_next(slot_thumb_iter)) + { + const dt_thumbnail_t *thumb = (dt_thumbnail_t *)slot_thumb_iter->data; + slot_heigth += thumb->height + spacing; + } + slot_heigth -= spacing; + yoff = (row_heigth - slot_heigth) / 2; + + // Apply vertical and horizontal offsets + for(GList *slot_thumb_iter = slot; slot_thumb_iter; slot_thumb_iter = g_list_next(slot_thumb_iter)) + { + dt_thumbnail_t *thumb = (dt_thumbnail_t *)slot_thumb_iter->data; + thumb->x += xoff; + thumb->y += yoff; + } + g_list_free(slot); } g_list_free(row); } - g_list_free(rows); - float factor = (float)(table->view_width - 1) / total_width; - if(factor * total_height > table->view_height - 1) - factor = (float)(table->view_height - 1) / total_height; + float factor = (table->view_width) / (float)total_width; + if(factor * total_height > table->view_height) + factor = (table->view_height) / (float)total_height; - const int xoff = (table->view_width - (float)total_width * factor) / 2; - const int yoff = (table->view_height - (float)total_height * factor) / 2; + const int xoff = (table->view_width - total_width * factor) / 2; + const int yoff = (table->view_height - total_height * factor) / 2; + // scale everything to match the size of your screen for(GList *l = table->list; l; l = g_list_next(l)) { dt_thumbnail_t *thumb = (dt_thumbnail_t *)l->data; @@ -1670,6 +1734,12 @@ thumb->height = thumb->height * factor; thumb->x = thumb->x * factor + xoff; thumb->y = thumb->y * factor + yoff; + + dt_print(DT_DEBUG_LIGHTTABLE, + "[culling_placement] thumb_id=%d, x=%d, y=%d, width=%d, heigth=%d" + " - table_width=%d, table_height=%d\n", + thumb->imgid, thumb->x, thumb->y, thumb->width, thumb->height, + table->view_width, table->view_height); } // we save the current first id @@ -1701,9 +1771,9 @@ void dt_culling_full_redraw(dt_culling_t *table, const gboolean force) { if(!gtk_widget_get_visible(table->widget)) return; - const double start = dt_get_wtime(); // first, we see if we need to do something if(!_compute_sizes(table, force)) return; + const double start = dt_get_debug_wtime(); // we store first image zoom and pos for new ones float old_zx = 0.0; diff -Nru darktable-4.4.2/src/dtgtk/gradientslider.c darktable-4.6.1/src/dtgtk/gradientslider.c --- darktable-4.4.2/src/dtgtk/gradientslider.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/dtgtk/gradientslider.c 2024-02-16 17:31:09.000000000 +0000 @@ -71,7 +71,7 @@ if(!DTGTK_GRADIENT_SLIDER(data)->is_dragging) DTGTK_GRADIENT_SLIDER(data)->timeout_handle = 0; else { - const int delay = CLAMP(darktable.develop->average_delay * 3 / 2, + const int delay = CLAMP(darktable.develop->full.pipe->average_delay * 3 / 2, DTGTK_GRADIENT_SLIDER_VALUE_CHANGED_DELAY_MIN, DTGTK_GRADIENT_SLIDER_VALUE_CHANGED_DELAY_MAX); DTGTK_GRADIENT_SLIDER(data)->timeout_handle = g_timeout_add(delay, _gradient_slider_postponed_value_change, data); @@ -309,7 +309,7 @@ gslider->is_changed = TRUE; gslider->is_dragging = TRUE; // timeout_handle should always be zero here, but check just in case - const int delay = CLAMP(darktable.develop->average_delay * 3 / 2, + const int delay = CLAMP(darktable.develop->full.pipe->average_delay * 3 / 2, DTGTK_GRADIENT_SLIDER_VALUE_CHANGED_DELAY_MIN, DTGTK_GRADIENT_SLIDER_VALUE_CHANGED_DELAY_MAX); if(!gslider->timeout_handle) diff -Nru darktable-4.4.2/src/dtgtk/paint.c darktable-4.6.1/src/dtgtk/paint.c --- darktable-4.4.2/src/dtgtk/paint.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/dtgtk/paint.c 2024-02-16 17:31:09.000000000 +0000 @@ -3241,6 +3241,30 @@ { PREAMBLE(1.15, 1, 0, 0) + // plus or minus + if(flags & (CPF_DIRECTION_UP | CPF_DIRECTION_DOWN)) + { + cairo_set_line_width(cr, .06); + cairo_set_line_cap(cr, CAIRO_LINE_CAP_SQUARE); + + cairo_move_to(cr, 1.1, .4); + cairo_line_to(cr, 1.3, .4); + + if(flags == CPF_DIRECTION_UP) + { + cairo_move_to(cr, 1.2, .3); + cairo_line_to(cr, 1.2, .5); + } + + cairo_save(cr); + cairo_set_source_rgb(cr, 1., 1., 1.); + cairo_set_line_width(cr, .15); + cairo_stroke_preserve(cr); + cairo_restore(cr); + + cairo_stroke(cr); + } + //keyboard outline cairo_set_line_width(cr, .05); cairo_set_line_join(cr, CAIRO_LINE_JOIN_ROUND); @@ -3251,6 +3275,14 @@ cairo_line_to(cr, .9, .73); cairo_line_to(cr, .9, .27); + if(data) + { + cairo_save(cr); + cairo_set_source_rgb(cr, 1., 1., 1.); + cairo_fill_preserve(cr); + cairo_restore(cr); + } + cairo_stroke(cr); //keyboard buttons diff -Nru darktable-4.4.2/src/dtgtk/range.c darktable-4.6.1/src/dtgtk/range.c --- darktable-4.4.2/src/dtgtk/range.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/dtgtk/range.c 2024-02-16 17:31:09.000000000 +0000 @@ -225,7 +225,7 @@ } static gboolean _default_decode_date_func(const gchar *text, double *value) { - long val = dt_datetime_exif_to_gtimespan(text); + GTimeSpan val = dt_datetime_exif_to_gtimespan(text); if(val > 0) { *value = val; @@ -784,7 +784,7 @@ } GMatchInfo *match_info; - // we capture each date componenent + // we capture each date component GRegex *regex = g_regex_new( "^\\s*(\\d{4})?(?::(\\d{2}))?(?::(\\d{2}))?(?: (\\d{2}))?(?::(\\d{2}))?(?::(\\d{2}))?\\s*$", 0, 0, NULL); g_regex_match_full(regex, text, -1, 0, 0, &match_info, NULL); @@ -1748,7 +1748,7 @@ DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_PREFERENCES_CHANGE, G_CALLBACK(_dt_pref_changed), range); gtk_widget_set_name((GtkWidget *)range, "dt-range"); - + return (GtkWidget *)range; } diff -Nru darktable-4.4.2/src/dtgtk/thumbnail.c darktable-4.6.1/src/dtgtk/thumbnail.c --- darktable-4.4.2/src/dtgtk/thumbnail.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/dtgtk/thumbnail.c 2024-02-16 17:31:09.000000000 +0000 @@ -41,7 +41,9 @@ static void _thumb_resize_overlays(dt_thumbnail_t *thumb); -static void _set_flag(GtkWidget *w, GtkStateFlags flag, gboolean activate) +static void _set_flag(GtkWidget *w, + const GtkStateFlags flag, + const gboolean activate) { if(activate) gtk_widget_set_state_flags(w, flag, FALSE); @@ -67,7 +69,9 @@ vp->sequence = 0; vp->escape_markup = TRUE; - if(thumb->info_line) g_free(thumb->info_line); + if(thumb->info_line) + g_free(thumb->info_line); + thumb->info_line = dt_variables_expand(vp, pattern, TRUE); dt_variables_params_destroy(vp); @@ -192,7 +196,7 @@ g_free(ttf); } -static void _thumb_update_rating_class(dt_thumbnail_t *thumb) +static void _thumb_update_rating_class(const dt_thumbnail_t *thumb) { if(!thumb->w_main) return; @@ -209,8 +213,10 @@ static void _image_get_infos(dt_thumbnail_t *thumb) { - if(!dt_is_valid_imgid(thumb->imgid)) return; - if(thumb->over == DT_THUMBNAIL_OVERLAYS_NONE) return; + if(!dt_is_valid_imgid(thumb->imgid)) + return; + if(thumb->over == DT_THUMBNAIL_OVERLAYS_NONE) + return; // we only get here infos that might change, others(exif, ...) are // cached on widget creation @@ -294,7 +300,9 @@ return FALSE; } -static void _thumb_set_image_size(dt_thumbnail_t *thumb, int image_w, int image_h) +static void _thumb_set_image_size(dt_thumbnail_t *thumb, + const int image_w, + const int image_h) { int imgbox_w = 0; int imgbox_h = 0; @@ -305,7 +313,8 @@ MIN(image_h, imgbox_h)); } -static void _thumb_draw_image(dt_thumbnail_t *thumb, cairo_t *cr) +static void _thumb_draw_image(dt_thumbnail_t *thumb, + cairo_t *cr) { if(!thumb->w_image) return; @@ -376,7 +385,9 @@ g_free(uext); } -static gboolean _event_cursor_draw(GtkWidget *widget, cairo_t *cr, gpointer user_data) +static gboolean _event_cursor_draw(GtkWidget *widget, + cairo_t *cr, + gpointer user_data) { if(!user_data || !widget) return TRUE; dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; @@ -415,7 +426,7 @@ // given max_width & max_height, the width and height is calculated to // fit an image in a "img to fit" mode (everything is visible) -static void _get_dimensions_for_img_to_fit(dt_thumbnail_t *thumb, +static void _get_dimensions_for_img_to_fit(const dt_thumbnail_t *thumb, const int max_width, const int max_height, float *width, @@ -511,7 +522,8 @@ *height = MIN(ih * scale_to_fit * thumb->zoom, max_height); } -static void _thumb_set_image_area(dt_thumbnail_t *thumb, const float zoom_ratio) +static void _thumb_set_image_area(dt_thumbnail_t *thumb, + const float zoom_ratio) { // let's ensure we have the right margins _thumb_retrieve_margins(thumb); @@ -590,8 +602,10 @@ cairo_t *cr, gpointer user_data) { - if(!user_data) return TRUE; + if(!user_data) + return TRUE; dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; + if(!dt_is_valid_imgid(thumb->imgid)) { dt_gui_gtk_set_source_rgb(cr, DT_GUI_COLOR_LIGHTTABLE_BG); @@ -601,16 +615,12 @@ // if we have a rgbbuf but the thumb is not anymore the darkroom main one dt_develop_t *dev = darktable.develop; - const dt_view_t *v = dt_view_manager_get_current_view(darktable.view_manager); if(thumb->img_surf_preview - && (v->view(v) != DT_VIEW_DARKROOM - || !dev->preview_pipe->output_backbuf + && (dt_view_get_current() != DT_VIEW_DARKROOM + || !dev->preview_pipe->backbuf || dev->preview_pipe->output_imgid != thumb->imgid)) { - if(thumb->img_surf && cairo_surface_get_reference_count(thumb->img_surf) > 0) - cairo_surface_destroy(thumb->img_surf); - thumb->img_surf = NULL; - thumb->img_surf_dirty = TRUE; + dt_thumbnail_surface_destroy(thumb); thumb->img_surf_preview = FALSE; } @@ -628,24 +638,22 @@ _thumb_set_image_area(thumb, IMG_TO_FIT); gtk_widget_get_size_request(thumb->w_image_box, &image_w, &image_h); - if(v->view(v) == DT_VIEW_DARKROOM + if(dt_view_get_current() == DT_VIEW_DARKROOM && dev->preview_pipe->output_imgid == thumb->imgid - && dev->preview_pipe->output_backbuf) + && dev->preview_pipe->backbuf) { // the current thumb is the one currently developed in darkroom // better use the preview buffer for surface, in order to stay in sync - if(thumb->img_surf && cairo_surface_get_reference_count(thumb->img_surf) > 0) - cairo_surface_destroy(thumb->img_surf); - thumb->img_surf = NULL; + dt_thumbnail_surface_destroy(thumb); // get new surface with preview image - const int buf_width = dev->preview_pipe->output_backbuf_width; - const int buf_height = dev->preview_pipe->output_backbuf_height; + const int buf_width = dev->preview_pipe->backbuf_width; + const int buf_height = dev->preview_pipe->backbuf_height; uint8_t *rgbbuf = g_malloc0(sizeof(unsigned char) * 4 * buf_width * buf_height); dt_pthread_mutex_t *mutex = &dev->preview_pipe->backbuf_mutex; dt_pthread_mutex_lock(mutex); - memcpy(rgbbuf, dev->preview_pipe->output_backbuf, + memcpy(rgbbuf, dev->preview_pipe->backbuf, sizeof(unsigned char) * 4 * buf_width * buf_height); dt_pthread_mutex_unlock(mutex); @@ -701,8 +709,11 @@ cairo_surface_t *img_surf = NULL; if(thumb->zoomable) { - if(thumb->zoom > 1.0f) - thumb->zoom = MIN(thumb->zoom, dt_thumbnail_get_zoom100(thumb)); + const float zoom100 = dt_thumbnail_get_zoom100(thumb); + // Any zoom100 > 1 is ensured to be correct + if(thumb->zoom > 1.0f && zoom100 > 1.0f) + thumb->zoom = MIN(thumb->zoom, zoom100); + res = dt_view_image_get_surface(thumb->imgid, image_w * thumb->zoom, image_h * thumb->zoom, @@ -745,8 +756,9 @@ // panning value need to be adjusted if the imagebox size as changed thumb->zoomx = thumb->zoomx + (nwi - ww) / 2.0; thumb->zoomy = thumb->zoomy + (nhi - hh) / 2.0; - // let's sanitize and apply panning values as we are sure the zoomed image is loaded now - // here we have to make sure to properly align according to ppd + // let's sanitize and apply panning values as we are sure the + // zoomed image is loaded now here we have to make sure to + // properly align according to ppd thumb->zoomx = CLAMP(thumb->zoomx, (nwi * darktable.gui->ppd_thb - thumb->img_width) @@ -786,7 +798,8 @@ { // we look for focus areas dt_focus_cluster_t full_res_focus[49]; - const int frows = 5, fcols = 5; + const int frows = 5; + const int fcols = 5; dt_focus_create_clusters(full_res_focus, frows, fcols, full_res_thumb, full_res_thumb_wd, full_res_thumb_ht); @@ -974,8 +987,10 @@ gpointer user_data) { dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; - if(thumb->disable_actions) return FALSE; - if(dtgtk_thumbnail_btn_is_hidden(widget)) return FALSE; + if(thumb->disable_actions) + return FALSE; + if(dtgtk_thumbnail_btn_is_hidden(widget)) + return FALSE; if(event->button == 1 && !thumb->moved) { @@ -1010,8 +1025,10 @@ gpointer user_data) { dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; - if(thumb->disable_actions) return FALSE; - if(dtgtk_thumbnail_btn_is_hidden(widget)) return FALSE; + if(thumb->disable_actions) + return FALSE; + if(dtgtk_thumbnail_btn_is_hidden(widget)) + return FALSE; if(event->button == 1 && !thumb->moved) { @@ -1057,8 +1074,10 @@ gpointer user_data) { dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; - if(thumb->disable_actions) return FALSE; - if(dtgtk_thumbnail_btn_is_hidden(widget)) return FALSE; + if(thumb->disable_actions) + return FALSE; + if(dtgtk_thumbnail_btn_is_hidden(widget)) + return FALSE; if(event->button == 1 && !thumb->moved) { @@ -1081,7 +1100,7 @@ // this is called each time the images info change static void _dt_image_info_changed_callback(gpointer instance, - gpointer imgs, + const gpointer imgs, gpointer user_data) { if(!user_data || !imgs) return; @@ -1101,7 +1120,7 @@ static void _dt_collection_changed_callback(gpointer instance, dt_collection_change_t query_change, dt_collection_properties_t changed_property, - gpointer imgs, + const gpointer imgs, const int next, gpointer user_data) { @@ -1134,29 +1153,30 @@ selected = TRUE; // if there's a change, update the thumb - if(selected != thumb->selected) - { - thumb->selected = selected; - _thumb_update_icons(thumb); - gtk_widget_queue_draw(thumb->w_main); - } + dt_thumbnail_set_selection(thumb, selected); } -static void _dt_selection_changed_callback(gpointer instance, gpointer user_data) +static void _dt_selection_changed_callback(gpointer instance, + gpointer user_data) { - if(!user_data) return; + if(!user_data) + return; dt_thumbnail_update_selection((dt_thumbnail_t *)user_data); } -static void _dt_active_images_callback(gpointer instance, gpointer user_data) +static void _dt_active_images_callback(gpointer instance, + gpointer user_data) { - if(!user_data) return; + if(!user_data) + return; dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; gboolean active = FALSE; - for(GSList *l = darktable.view_manager->active_images; l; l = g_slist_next(l)) + for(GSList *l = darktable.view_manager->active_images; + l; + l = g_slist_next(l)) { - int id = GPOINTER_TO_INT(l->data); + const int id = GPOINTER_TO_INT(l->data); if(id == thumb->imgid) { active = TRUE; @@ -1176,17 +1196,17 @@ } } -static void _dt_preview_updated_callback(gpointer instance, gpointer user_data) +static void _dt_preview_updated_callback(gpointer instance, + gpointer user_data) { if(!user_data) return; dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; if(!gtk_widget_is_visible(thumb->w_main)) return; - const dt_view_t *v = dt_view_manager_get_current_view(darktable.view_manager); - if(v->view(v) == DT_VIEW_DARKROOM + if(dt_view_get_current() == DT_VIEW_DARKROOM && (thumb->img_surf_preview || darktable.develop->preview_pipe->output_imgid == thumb->imgid) - && darktable.develop->preview_pipe->output_backbuf) + && darktable.develop->preview_pipe->backbuf) { // reset surface thumb->img_surf_dirty = TRUE; @@ -1336,7 +1356,8 @@ return TRUE; } -static void _event_image_style_updated(GtkWidget *w, dt_thumbnail_t *thumb) +static void _event_image_style_updated(GtkWidget *w, + dt_thumbnail_t *thumb) { // for some reason the style has changed. We have to recompute // margins and resize the overlays @@ -1358,7 +1379,8 @@ } } -GtkWidget *dt_thumbnail_create_widget(dt_thumbnail_t *thumb, float zoom_ratio) +GtkWidget *dt_thumbnail_create_widget(dt_thumbnail_t *thumb, + const float zoom_ratio) { // main widget (overlay) thumb->w_main = gtk_overlay_new(); @@ -1387,7 +1409,8 @@ G_CALLBACK(_dt_selection_changed_callback), thumb); DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_DEVELOP_MIPMAP_UPDATED, G_CALLBACK(_dt_mipmaps_updated_callback), thumb); - DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_DEVELOP_PREVIEW_PIPE_FINISHED, + DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, + DT_SIGNAL_DEVELOP_PREVIEW_PIPE_FINISHED, G_CALLBACK(_dt_preview_updated_callback), thumb); DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_IMAGE_INFO_CHANGED, G_CALLBACK(_dt_image_info_changed_callback), thumb); @@ -1654,7 +1677,8 @@ const int rowid, const dt_thumbnail_overlay_t over, const dt_thumbnail_container_t container, - const gboolean tooltip) + const gboolean tooltip, + const dt_thumbnail_selection_t sel) { dt_thumbnail_t *thumb = calloc(1, sizeof(dt_thumbnail_t)); thumb->width = width; @@ -1696,7 +1720,10 @@ // let's see if the images are selected or active or mouse_overed _dt_active_images_callback(NULL, thumb); - _dt_selection_changed_callback(NULL, thumb); + if (sel == DT_THUMBNAIL_SELECTION_UNKNOWN) + _dt_selection_changed_callback(NULL, thumb); + else + thumb->selected = sel; if(dt_control_get_mouse_over_id() == thumb->imgid) dt_thumbnail_set_mouseover(thumb, TRUE); @@ -1744,9 +1771,7 @@ G_CALLBACK(_dt_image_info_changed_callback), thumb); DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(_dt_collection_changed_callback), thumb); - if(thumb->img_surf && cairo_surface_get_reference_count(thumb->img_surf) > 0) - cairo_surface_destroy(thumb->img_surf); - thumb->img_surf = NULL; + dt_thumbnail_surface_destroy(thumb); if(thumb->w_main) gtk_widget_destroy(thumb->w_main); if(thumb->filename) g_free(thumb->filename); if(thumb->info_line) g_free(thumb->info_line); @@ -2013,7 +2038,8 @@ gtk_widget_get_size_request(thumb->w_main, &w, &h); // first, we verify that there's something to change - if(!force && w == width && h == height) return; + if(!force && w == width && h == height) + return; // widget resizing thumb->width = width; @@ -2140,7 +2166,8 @@ // set if the thumbnail should react (mouse_over) to drag and drop // note that it's just cosmetic as dropping occurs in thumbtable in any case -void dt_thumbnail_set_drop(dt_thumbnail_t *thumb, gboolean accept_drop) +void dt_thumbnail_set_drop(dt_thumbnail_t *thumb, + const gboolean accept_drop) { if(accept_drop) { @@ -2169,7 +2196,8 @@ gtk_widget_queue_draw(thumb->w_main); } -static void _widget_change_parent_overlay(GtkWidget *w, GtkOverlay *new_parent) +static void _widget_change_parent_overlay(GtkWidget *w, + GtkOverlay *new_parent) { g_object_ref(w); gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(w)), w); @@ -2263,17 +2291,18 @@ int w = 0; int h = 0; dt_image_get_final_size(thumb->imgid, &w, &h); - if(!thumb->img_margin) _thumb_retrieve_margins(thumb); + if(!thumb->img_margin) + _thumb_retrieve_margins(thumb); const float used_h = (float)(thumb->height - thumb->img_margin->top - thumb->img_margin->bottom); const float used_w = (float)(thumb->width - thumb->img_margin->left - thumb->img_margin->right); - thumb->zoom_100 = fmaxf((float)w / used_w, (float)h / used_h); - if(thumb->zoom_100 < 1.0f) thumb->zoom_100 = 1.0f; + + thumb->zoom_100 = MAX(1.0f, fmaxf((float)w / used_w, (float)h / used_h)); } - return thumb->zoom_100; + return MAX(1.0f, thumb->zoom_100); } float dt_thumbnail_get_zoom_ratio(dt_thumbnail_t *thumb) @@ -2329,6 +2358,27 @@ g_free(lb); } +void dt_thumbnail_surface_destroy(dt_thumbnail_t *thumb) +{ + // we need to check also the reference count to be sure the surface + // is not in an intermediate state + if(thumb->img_surf && cairo_surface_get_reference_count(thumb->img_surf) > 0) + cairo_surface_destroy(thumb->img_surf); + thumb->img_surf = NULL; + thumb->img_surf_dirty = TRUE; +} + +void dt_thumbnail_set_selection(dt_thumbnail_t *thumb, + const gboolean selected) +{ + if(thumb->selected == selected) + return; + + thumb->selected = selected; + _thumb_update_icons(thumb); + gtk_widget_queue_draw(thumb->w_main); +} + // clang-format off // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py // vim: shiftwidth=2 expandtab tabstop=2 cindent diff -Nru darktable-4.4.2/src/dtgtk/thumbnail.h darktable-4.6.1/src/dtgtk/thumbnail.h --- darktable-4.4.2/src/dtgtk/thumbnail.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/dtgtk/thumbnail.h 2024-02-16 17:31:09.000000000 +0000 @@ -62,6 +62,13 @@ DT_THUMBNAIL_SEL_MODE_MOD_ONLY // user can only change selection with mouse AND CTRL or SHIFT } dt_thumbnail_selection_mode_t; +typedef enum dt_thumbnail_selection_t +{ + DT_THUMBNAIL_SELECTION_UNSELECTED= 0, // value should stay 0 to be equivalent to FALSE + DT_THUMBNAIL_SELECTION_SELECTED= 1, // user should stay 1 to be equivalent to TRUE + DT_THUMBNAIL_SELECTION_UNKNOWN +} dt_thumbnail_selection_t; + typedef struct { dt_imgid_t imgid, rowid; @@ -125,10 +132,10 @@ dt_thumbnail_overlay_t over; // type of overlays int overlay_timeout_duration; // for hover_block overlay, we hide the it after a delay - int overlay_timeout_id; // id of the g_source timeout fct + guint overlay_timeout_id; // id of the g_source timeout fct gboolean tooltip; // should we show the tooltip ? - int expose_again_timeout_id; // source id of the expose_again timeout + guint expose_again_timeout_id; // source id of the expose_again timeout // specific for culling and preview gboolean zoomable; // can we zoom in/out the thumbnail (used for culling/preview) @@ -146,29 +153,49 @@ gboolean busy; // should we show the busy message ? } dt_thumbnail_t; -dt_thumbnail_t *dt_thumbnail_new(int width, int height, float zoom_ratio, dt_imgid_t imgid, int rowid, dt_thumbnail_overlay_t over, - dt_thumbnail_container_t container, gboolean tooltip); +dt_thumbnail_t *dt_thumbnail_new(const int width, + const int height, + const float zoom_ratio, + const dt_imgid_t imgid, + const int rowid, + const dt_thumbnail_overlay_t over, + const dt_thumbnail_container_t container, + const gboolean tooltip, + const dt_thumbnail_selection_t sel); void dt_thumbnail_destroy(dt_thumbnail_t *thumb); -GtkWidget *dt_thumbnail_create_widget(dt_thumbnail_t *thumb, float zoom_ratio); -void dt_thumbnail_resize(dt_thumbnail_t *thumb, int width, int height, gboolean force, float zoom_ratio); -void dt_thumbnail_set_group_border(dt_thumbnail_t *thumb, dt_thumbnail_border_t border); -void dt_thumbnail_set_mouseover(dt_thumbnail_t *thumb, gboolean over); +GtkWidget *dt_thumbnail_create_widget(dt_thumbnail_t *thumb, + const float zoom_ratio); +void dt_thumbnail_resize(dt_thumbnail_t *thumb, + const int width, + const int height, + const gboolean force, + const float zoom_ratio); +void dt_thumbnail_set_group_border(dt_thumbnail_t *thumb, + const dt_thumbnail_border_t border); +void dt_thumbnail_set_mouseover(dt_thumbnail_t *thumb, + const gboolean over); // set if the thumbnail should react (mouse_over) to drag and drop // note that it's just cosmetic as dropping occurs in thumbtable in any case -void dt_thumbnail_set_drop(dt_thumbnail_t *thumb, gboolean accept_drop); +void dt_thumbnail_set_drop(dt_thumbnail_t *thumb, + const gboolean accept_drop); // update the information of the image and update icons accordingly void dt_thumbnail_update_infos(dt_thumbnail_t *thumb); // check if the image is selected and set its state and background void dt_thumbnail_update_selection(dt_thumbnail_t *thumb); +// force the selected state of a thumb +void dt_thumbnail_set_selection(dt_thumbnail_t *thumb, + const gboolean selected); // force image recomputing void dt_thumbnail_image_refresh(dt_thumbnail_t *thumb); // do we need to display simple overlays or extended ? -void dt_thumbnail_set_overlay(dt_thumbnail_t *thumb, dt_thumbnail_overlay_t over, int timeout); +void dt_thumbnail_set_overlay(dt_thumbnail_t *thumb, + dt_thumbnail_overlay_t over, + const int timeout); // force reloading image infos void dt_thumbnail_reload_infos(dt_thumbnail_t *thumb); @@ -180,6 +207,8 @@ // get the zoom ratio from 0 ("image to fit") to 1 ("max zoom value") float dt_thumbnail_get_zoom_ratio(dt_thumbnail_t *thumb); +// reset the image surface +void dt_thumbnail_surface_destroy(dt_thumbnail_t *thumb); #endif // clang-format off // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py diff -Nru darktable-4.4.2/src/dtgtk/thumbtable.c darktable-4.6.1/src/dtgtk/thumbtable.c --- darktable-4.4.2/src/dtgtk/thumbtable.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/dtgtk/thumbtable.c 2024-02-16 17:31:09.000000000 +0000 @@ -37,14 +37,6 @@ #include "osx/osx.h" #endif -// specials functions for GList globals actions -static gint _list_compare_by_imgid(gconstpointer a, gconstpointer b) -{ - dt_thumbnail_t *th = (dt_thumbnail_t *)a; - const dt_imgid_t imgid = GPOINTER_TO_INT(b); - if(!dt_is_valid_imgid(th->imgid) || !dt_is_valid_imgid(imgid)) return 1; - return (th->imgid != imgid); -} static void _list_remove_thumb(gpointer user_data) { dt_thumbnail_t *thumb = (dt_thumbnail_t *)user_data; @@ -86,7 +78,8 @@ while(ts[i]) { const int s = g_ascii_strtoll(ts[i], NULL, 10); - if(table->thumb_size < s) break; + if(table->thumb_size < s) + break; i++; } g_strfreev(ts); @@ -122,61 +115,70 @@ void dt_thumbtable_set_overlays_mode(dt_thumbtable_t *table, const dt_thumbnail_overlay_t over) { - if(!table) return; + if(!table) + return; // we ensure the tooltips change in any cases gchar *txt = g_strdup_printf("plugins/lighttable/tooltips/%d/%d", table->mode, table->prefs_size); dt_conf_set_bool(txt, table->show_tooltips); g_free(txt); - for(const GList *l = table->list; l; l = g_list_next(l)) - { - dt_thumbnail_t *th = (dt_thumbnail_t *)l->data; - th->tooltip = table->show_tooltips; - dt_thumbnail_update_infos(th); - } - - if(over == table->overlays) return; - txt = g_strdup_printf("plugins/lighttable/overlays/%d/%d", - table->mode, table->prefs_size); - dt_conf_set_int(txt, over); - g_free(txt); - gchar *cl0 = _thumbs_get_overlays_class(table->overlays); - gchar *cl1 = _thumbs_get_overlays_class(over); - - dt_gui_remove_class(table->widget, cl0); - dt_gui_add_class(table->widget, cl1); - txt = g_strdup_printf("plugins/lighttable/overlays_block_timeout/%d/%d", - table->mode, table->prefs_size); int timeout = 2; - if(!dt_conf_key_exists(txt)) - timeout = dt_conf_get_int("plugins/lighttable/overlay_timeout"); - else - timeout = dt_conf_get_int(txt); - g_free(txt); + if(over != table->overlays) + { + // if the overlay change + txt = g_strdup_printf("plugins/lighttable/overlays/%d/%d", + table->mode, table->prefs_size); + dt_conf_set_int(txt, over); + g_free(txt); + gchar *cl0 = _thumbs_get_overlays_class(table->overlays); + gchar *cl1 = _thumbs_get_overlays_class(over); + + dt_gui_remove_class(table->widget, cl0); + dt_gui_add_class(table->widget, cl1); + g_free(cl0); + g_free(cl1); + + txt = g_strdup_printf("plugins/lighttable/overlays_block_timeout/%d/%d", + table->mode, table->prefs_size); + if(!dt_conf_key_exists(txt)) + timeout = dt_conf_get_int("plugins/lighttable/overlay_timeout"); + else + timeout = dt_conf_get_int(txt); + g_free(txt); + } - // we need to change the overlay content if we pass from normal to - // extended overlays this is not done on the fly with css to avoid - // computing extended msg for nothing and to reserve space if needed for(const GList *l = table->list; l; l = g_list_next(l)) { dt_thumbnail_t *th = (dt_thumbnail_t *)l->data; - dt_thumbnail_set_overlay(th, over, timeout); - // and we resize the bottom area - dt_thumbnail_resize(th, th->width, th->height, TRUE, IMG_TO_FIT); + // in any cases, we update the tooltip + th->tooltip = table->show_tooltips; + + if(over != table->overlays) + { + // we need to change the overlay content if we pass from normal to + // extended overlays this is not done on the fly with css to avoid + // computing extended msg for nothing and to reserve space if needed + dt_thumbnail_set_overlay(th, over, timeout); + // and we resize the bottom area + dt_thumbnail_resize(th, th->width, th->height, TRUE, IMG_TO_FIT); + } + else + { + dt_thumbnail_update_infos(th); + } } table->overlays = over; table->overlays_block_timeout = timeout; - g_free(cl0); - g_free(cl1); } // change the type of overlays that should be shown void dt_thumbtable_set_overlays_block_timeout(dt_thumbtable_t *table, const int timeout) { - if(!table) return; + if(!table) + return; gchar *txt = g_strdup_printf("plugins/lighttable/overlays_block_timeout/%d/%d", table->mode, table->prefs_size); dt_conf_set_int(txt, timeout); @@ -211,7 +213,8 @@ // get the thumb which is currently under mouse cursor static dt_thumbnail_t *_thumb_get_under_mouse(dt_thumbtable_t *table) { - if(!table->mouse_inside) return NULL; + if(!table->mouse_inside) + return NULL; int x = -1; int y = -1; @@ -426,14 +429,23 @@ // return their visibility state static gboolean _thumbtable_update_scrollbars(dt_thumbtable_t *table) { - if(table->mode != DT_THUMBTABLE_MODE_FILEMANAGER) return FALSE; - if(!table->scrollbars) return FALSE; + if(table->mode != DT_THUMBTABLE_MODE_FILEMANAGER) + return FALSE; + if(!table->scrollbars) + return FALSE; table->code_scrolling = TRUE; // get the total number of images const uint32_t nbid = MAX(1, dt_collection_get_collected_count()); + // so the total number of lines is : + const uint32_t nblines = ceilf(nbid / (float)table->thumbs_per_row); + + // now we have a space under last images (when the first shown line is fully shown) + const float pagesize = table->view_height / (float)table->thumb_size; + const float maxvalue = nblines + (pagesize - floorf(pagesize)); + // the number of line before float lbefore = (table->offset - 1) / table->thumbs_per_row; if((table->offset - 1) % table->thumbs_per_row) @@ -445,74 +457,131 @@ lbefore += -table->thumbs_area.y / (float)table->thumb_size; } - // the number of line after (including the current one) - int lafter = (nbid - table->offset) / table->thumbs_per_row; - if((nbid - table->offset) % table->thumbs_per_row) lafter++; - // if the scrollbar is currently visible and we want to hide it we // first ensure that with the width without the scrollbar, we won't // need a scrollbar + const int bar = gtk_widget_get_allocated_width(darktable.gui->scrollbars.vscrollbar); if(gtk_widget_get_visible(darktable.gui->scrollbars.vscrollbar) - && lbefore + lafter <= table->rows - 1) + && nblines <= table->rows - 1) { - const int nw = table->view_width + - gtk_widget_get_allocated_width(darktable.gui->scrollbars.vscrollbar); - if((lbefore + lafter) * nw / table->thumbs_per_row >= table->view_height) + const int nw = table->view_width + bar; + if(nblines * nw / table->thumbs_per_row >= table->view_height) { dt_view_set_scrollbar(darktable.view_manager->current_view, - 0, 0, 0, 0, lbefore, 0, lbefore + lafter + 1, - table->rows - 1); + 0, 0, 0, 0, lbefore, 0, maxvalue + 1, pagesize); return TRUE; } } - // in filemanager, no horizontal bar, and vertical bar reference is 1 thumb. + /* In filemanager, no horizontal bar, and vertical bar reference is 1 thumb. + We make sure to show a scrollbar - and thus keep thumbs slightly smaller - + if not showing it required to avoid an unstable state. + */ + const float thresh = (float)(table->view_width / table->thumbs_per_row) + / (float)((table->view_width - bar) / table->thumbs_per_row) - 1.0f; dt_view_set_scrollbar(darktable.view_manager->current_view, - 0, 0, 0, 0, lbefore, 0, lbefore + lafter, - table->rows - 1); + 0, 0, 0, 0, lbefore, 0, maxvalue - thresh, pagesize); table->code_scrolling = FALSE; - return (lbefore + lafter > table->rows - 1); + return (lbefore >= maxvalue); } // remove all unneeded thumbnails from the list and the widget // unneeded == completely hidden -static int _thumbs_remove_unneeded(dt_thumbtable_t *table) +static int _thumbs_remove_unneeded(dt_thumbtable_t *table, + GList **th_invalid) { + if(!th_invalid) + return 0; + int changed = 0; - GList *l = table->list; - while(l) + for(const GList *l = *th_invalid; l; l = g_list_next(l)) { dt_thumbnail_t *th = (dt_thumbnail_t *)l->data; - if(th->y + table->thumb_size <= 0 || th->y > table->view_height - || (table->mode == DT_THUMBTABLE_MODE_FILMSTRIP - && (th->x + table->thumb_size <= 0 || th->x > table->view_width))) + gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(th->w_main)), th->w_main); + dt_thumbnail_destroy(th); + changed++; + } + g_list_free(*th_invalid); + return changed; +} + +static void _thumb_move_or_create(dt_thumbtable_t *table, + GList **th_invalid, + const int imgid, + const int rowid, + const int posx, + const int posy, + const gboolean top, + const dt_thumbnail_selection_t sel) +{ + if(!th_invalid || *th_invalid==NULL) + { + // no widgets available. We need to create one + dt_thumbnail_t *thumb = dt_thumbnail_new(table->thumb_size, + table->thumb_size, + IMG_TO_FIT, + imgid, + rowid, + table->overlays, + DT_THUMBNAIL_CONTAINER_LIGHTTABLE, + table->show_tooltips, + sel); + if(table->mode == DT_THUMBTABLE_MODE_FILMSTRIP) { - table->list = g_list_remove_link(table->list, l); - gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(th->w_main)), th->w_main); - dt_thumbnail_destroy(th); - g_list_free(l); - l = table->list; - changed++; + thumb->single_click = TRUE; + thumb->sel_mode = DT_THUMBNAIL_SEL_MODE_MOD_ONLY; } + thumb->x = posx; + thumb->y = posy; + if(top) + table->list = g_list_prepend(table->list, thumb); else - { - l = g_list_next(l); - } + table->list = g_list_append(table->list, thumb); + + // we remember image margins for new thumbs (this limit flickering) + dt_thumbnail_t *first = (dt_thumbnail_t *)table->list->data; + gtk_widget_set_margin_start(thumb->w_image_box, gtk_widget_get_margin_start(first->w_image_box)); + gtk_widget_set_margin_top(thumb->w_image_box, gtk_widget_get_margin_top(first->w_image_box)); + gtk_layout_put(GTK_LAYOUT(table->widget), thumb->w_main, posx, posy); + } + else + { + // let's reuse a now unaffected widget + dt_thumbnail_t *thumb = (dt_thumbnail_t *)(*th_invalid)->data; + thumb->imgid = imgid; + thumb->rowid = rowid; + thumb->x = posx; + thumb->y = posy; + dt_thumbnail_reload_infos(thumb); + dt_thumbnail_surface_destroy(thumb); + thumb->img_surf_preview = FALSE; + gtk_layout_move(GTK_LAYOUT(table->widget), thumb->w_main, thumb->x, thumb->y); + *th_invalid = g_list_delete_link(*th_invalid, *th_invalid); + // insert the thumb at the right place in the table->list + if(top) + table->list = g_list_prepend(table->list, thumb); + else + table->list = g_list_append(table->list, thumb); + // eventually update the selected state + dt_thumbnail_set_selection(thumb, sel); } - return changed; } // load all needed thumbnails in the list and the widget // needed == that should appear in the current view (possibly not entirely) -static int _thumbs_load_needed(dt_thumbtable_t *table) +static int _thumbs_load_needed(dt_thumbtable_t *table, + GList **th_invalid, + dt_thumbnail_t *first, + dt_thumbnail_t *last) { - if(!table->list) return 0; + if(!first || !last) return 0; + sqlite3_stmt *stmt; int changed = 0; - // we remember image margins for new thumbs (this limit flickering) - dt_thumbnail_t *first = (dt_thumbnail_t *)table->list->data; - const int old_margin_start = gtk_widget_get_margin_start(first->w_image_box); - const int old_margin_top = gtk_widget_get_margin_top(first->w_image_box); + // we save here the last image value as they may change if the last image is invalid + const int last_y = last->y; + const int last_x = last->x; + const int last_rowid = last->rowid; // we load image at the beginning if(first->rowid > 1 @@ -523,14 +592,18 @@ && first->x > 0))) { int space = first->y; - if(table->mode == DT_THUMBTABLE_MODE_FILMSTRIP) space = first->x; + if(table->mode == DT_THUMBTABLE_MODE_FILMSTRIP) + space = first->x; + const int nb_to_load = space / table->thumb_size + (space % table->thumb_size != 0); // clang-format off gchar *query = g_strdup_printf( - "SELECT rowid, imgid" - " FROM memory.collected_images" - " WHERE rowid<%d" - " ORDER BY rowid DESC LIMIT %d", + "SELECT mi.rowid, mi.imgid, si.imgid" + " FROM memory.collected_images AS mi" + " LEFT JOIN main.selected_images AS si" + " ON mi.imgid = si.imgid" + " WHERE mi.rowid<%d" + " ORDER BY mi.rowid DESC LIMIT %d", first->rowid, nb_to_load * table->thumbs_per_row); // clang-format on DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), query, -1, &stmt, NULL); @@ -542,25 +615,16 @@ { if(posy < table->view_height) // we don't load invisible thumbs { - dt_thumbnail_t *thumb = dt_thumbnail_new - (table->thumb_size, - table->thumb_size, - IMG_TO_FIT, - sqlite3_column_int(stmt, 1), - sqlite3_column_int(stmt, 0), table->overlays, - DT_THUMBNAIL_CONTAINER_LIGHTTABLE, table->show_tooltips); - - if(table->mode == DT_THUMBTABLE_MODE_FILMSTRIP) - { - thumb->single_click = TRUE; - thumb->sel_mode = DT_THUMBNAIL_SEL_MODE_MOD_ONLY; - } - thumb->x = posx; - thumb->y = posy; - table->list = g_list_prepend(table->list, thumb); - gtk_widget_set_margin_start(thumb->w_image_box, old_margin_start); - gtk_widget_set_margin_top(thumb->w_image_box, old_margin_top); - gtk_layout_put(GTK_LAYOUT(table->widget), thumb->w_main, posx, posy); + const dt_imgid_t imgid = sqlite3_column_int(stmt, 1); + const int rowid = sqlite3_column_int(stmt, 0); + const gboolean selected = (imgid == sqlite3_column_int(stmt, 2)); + _thumb_move_or_create(table, + th_invalid, + imgid, + rowid, + posx, posy, + TRUE, + selected); changed++; } _pos_get_previous(table, &posx, &posy); @@ -570,54 +634,50 @@ } // we load images at the end - dt_thumbnail_t *last = (dt_thumbnail_t *)g_list_last(table->list)->data; // if there's space under the last image, we have rows to load // if the last line is not full, we have already reached the end of the collection if((table->mode == DT_THUMBTABLE_MODE_FILEMANAGER - && last->y + table->thumb_size < table->view_height - && last->x >= table->thumb_size * (table->thumbs_per_row - 1)) + && last_y + table->thumb_size < table->view_height + && last_x >= table->thumb_size * (table->thumbs_per_row - 1)) || (table->mode == DT_THUMBTABLE_MODE_FILMSTRIP - && last->x + table->thumb_size < table->view_width) + && last_x + table->thumb_size < table->view_width) || (table->mode == DT_THUMBTABLE_MODE_ZOOM - && last->y + table->thumb_size < table->view_height)) + && last_y + table->thumb_size < table->view_height)) { - int space = table->view_height - (last->y + table->thumb_size); + int space = table->view_height - (last_y + table->thumb_size); if(table->mode == DT_THUMBTABLE_MODE_FILMSTRIP) - space = table->view_width - (last->x + table->thumb_size); + space = table->view_width - (last_x + table->thumb_size); const int nb_to_load = space / table->thumb_size + (space % table->thumb_size != 0); // clang-format off gchar *query = g_strdup_printf( - "SELECT rowid, imgid" - " FROM memory.collected_images" + "SELECT mi.rowid, mi.imgid, si.imgid" + " FROM memory.collected_images AS mi" + " LEFT JOIN main.selected_images AS si" + " ON mi.imgid = si.imgid" " WHERE rowid>%d" " ORDER BY rowid LIMIT %d", - last->rowid, nb_to_load * table->thumbs_per_row); + last_rowid, nb_to_load * table->thumbs_per_row); // clang-format on DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), query, -1, &stmt, NULL); - int posx = last->x; - int posy = last->y; + int posx = last_x; + int posy = last_y; _pos_get_next(table, &posx, &posy); while(sqlite3_step(stmt) == SQLITE_ROW) { - if(posy + table->thumb_size >= 0) // we don't load invisible thumbs + if(posy + table->thumb_size > 0) // we don't load invisible thumbs { - dt_thumbnail_t *thumb = dt_thumbnail_new - (table->thumb_size, table->thumb_size, IMG_TO_FIT, sqlite3_column_int(stmt, 1), - sqlite3_column_int(stmt, 0), table->overlays, - DT_THUMBNAIL_CONTAINER_LIGHTTABLE, table->show_tooltips); - if(table->mode == DT_THUMBTABLE_MODE_FILMSTRIP) - { - thumb->single_click = TRUE; - thumb->sel_mode = DT_THUMBNAIL_SEL_MODE_MOD_ONLY; - } - thumb->x = posx; - thumb->y = posy; - table->list = g_list_append(table->list, thumb); - gtk_widget_set_margin_start(thumb->w_image_box, old_margin_start); - gtk_widget_set_margin_top(thumb->w_image_box, old_margin_top); - gtk_layout_put(GTK_LAYOUT(table->widget), thumb->w_main, posx, posy); + const dt_imgid_t imgid = sqlite3_column_int(stmt, 1); + const int rowid = sqlite3_column_int(stmt, 0); + const gboolean selected = (imgid == sqlite3_column_int(stmt, 2)); + _thumb_move_or_create(table, + th_invalid, + imgid, + rowid, + posx, posy, + FALSE, + selected); changed++; } _pos_get_next(table, &posx, &posy); @@ -636,7 +696,9 @@ const int y, const gboolean clamp) { - if(!table->list) return FALSE; + if(!table->list) + return FALSE; + int posx = x; int posy = y; if(clamp) @@ -647,62 +709,31 @@ posx = 0; // to be sure, we don't want horizontal move if(posy == 0) return FALSE; - // we stop when first rowid image is fully shown dt_thumbnail_t *first = (dt_thumbnail_t *)table->list->data; - if(first->rowid == 1 && posy > 0 && first->y >= 0) - { - // for some reasons, in filemanager, first image can not be at - // x=0 in that case, we count the number of "scroll-top" try - // and reallign after 2 try - if(first->x != 0) - { - table->realign_top_try++; - if(table->realign_top_try > 2) - { - table->realign_top_try = 0; - dt_thumbtable_full_redraw(table, TRUE); - return TRUE; - } - } - return FALSE; - } - table->realign_top_try = 0; - - dt_thumbnail_t *last = (dt_thumbnail_t *)g_list_last(table->list)->data; - if(table->thumbs_per_row == 1 && posy < 0 && g_list_is_singleton(table->list)) - { - // special case for zoom == 1 as we don't want any space under - // last image (the image would have disappear) - const uint32_t nbid = MAX(1, dt_collection_get_collected_count()); - if(nbid <= last->rowid) - return FALSE; - } - else - { - // we stop when last image is fully shown (that means empty - // space at the bottom) we just need to then ensure that the - // top row is fully shown - if(last->y + table->thumb_size < table->view_height - && posy < 0 && table->thumbs_area.y == 0) - return FALSE; - } + // clamp the movement to ensure we don't go before the first image or after last one + const int max_up = ((first->rowid-1) / table->thumbs_per_row) * table->thumb_size - table->thumbs_area.y; + posy = MIN(posy, max_up); + + // nb of line of the full collection + const uint32_t nblines = + ceilf(MAX(1, + dt_collection_get_collected_count()) / (float)table->thumbs_per_row); + // max first line on screen to ensure we don't go to far + const int max_line = nblines - table->view_height / table->thumb_size; + // limit of the movement + const int max_down = MAX(0, max_line * table->thumb_size - max_up); + posy = MAX(posy, -max_down); } else if(table->mode == DT_THUMBTABLE_MODE_FILMSTRIP) { posy = 0; // to be sure, we don't want vertical move if(posx == 0) return FALSE; - // we stop when first rowid image is fully shown - dt_thumbnail_t *first = (dt_thumbnail_t *)table->list->data; - if(first->rowid == 1 - && posx > 0 - && first->x >= (table->view_width / 2) - table->thumb_size) - return FALSE; - - // we stop when last image is fully shown (that means empty space at the bottom) - dt_thumbnail_t *last = (dt_thumbnail_t *)g_list_last(table->list)->data; - if(last->x < table->view_width / 2 && posx < 0) - return FALSE; + // we stop when first or last rowid image is fully shown + const dt_thumbnail_t *first = (dt_thumbnail_t *)table->list->data; + const dt_thumbnail_t *last = (dt_thumbnail_t *)g_list_last(table->list)->data; + const int middle = (table->view_width - table->thumb_size) / 2; + posx = CLAMP(posx, middle - last->x, middle - first->x); } else if(table->mode == DT_THUMBTABLE_MODE_ZOOM) { @@ -717,15 +748,41 @@ } } - if(posy == 0 && posx == 0) return FALSE; + if(posy == 0 && posx == 0) + return FALSE; + GList *th_invalid = NULL; // we move all current thumbs - for(const GList *l = table->list; l; l = g_list_next(l)) + dt_thumbnail_t *first = NULL; + dt_thumbnail_t *last = NULL; + GList *l = table->list; + while(l) { dt_thumbnail_t *th = (dt_thumbnail_t *)l->data; + if(!first) + first = th; + + last = th; th->y += posy; th->x += posx; - gtk_layout_move(GTK_LAYOUT(table->widget), th->w_main, th->x, th->y); + + if(th->y + table->thumb_size <= 0 || th->y > table->view_height + || (table->mode == DT_THUMBTABLE_MODE_FILMSTRIP + && (th->x + table->thumb_size <= 0 || th->x > table->view_width))) + { + th_invalid = g_list_prepend(th_invalid, th); + GList *ll = l; + l = g_list_next(l); + table->list = g_list_delete_link(table->list, ll); + + if(table->drag_thumb == th) + table->drag_thumb = NULL; + } + else + { + gtk_layout_move(GTK_LAYOUT(table->widget), th->w_main, th->x, th->y); + l = g_list_next(l); + } } // we update the thumbs_area @@ -734,10 +791,9 @@ table->thumbs_area.y += posy; // we load all needed thumbs - int changed = _thumbs_load_needed(table); - + int changed = _thumbs_load_needed(table, &th_invalid, first, last); // we remove the images not visible on screen - changed += _thumbs_remove_unneeded(table); + changed += _thumbs_remove_unneeded(table, &th_invalid); // if there has been changed, we recompute thumbs area if(changed > 0) @@ -749,7 +805,7 @@ // we need to take account of the previous area move if needed table->offset = MAX(1, - table->offset - ((posy + old_areay) / table->thumb_size) * table->thumbs_per_row); + table->offset - (ceilf((posy + old_areay) / (float)table->thumb_size) * table->thumbs_per_row)); table->offset_imgid = _thumb_get_imgid(table->offset); } else if(table->mode == DT_THUMBTABLE_MODE_FILMSTRIP) @@ -759,9 +815,9 @@ } else if(table->mode == DT_THUMBTABLE_MODE_ZOOM) { - dt_thumbnail_t *first = (dt_thumbnail_t *)table->list->data; - table->offset = first->rowid; - table->offset_imgid = first->imgid; + const dt_thumbnail_t *nfirst = (dt_thumbnail_t *)table->list->data; + table->offset = nfirst->rowid; + table->offset_imgid = nfirst->imgid; } // and we store it @@ -832,16 +888,25 @@ y - (y - anchor_y * table->thumb_size - table->thumbs_area.y) * ratio; // we move and resize each thumbs - for(const GList *l = table->list; l; l = g_list_next(l)) + dt_thumbnail_t *first = NULL; + dt_thumbnail_t *last = NULL; + GList *l = table->list; + while(l) { dt_thumbnail_t *th = (dt_thumbnail_t *)l->data; + if(!first) first = th; + last = th; // we get row/column numbers const int posx = (th->x - table->thumbs_area.x) / table->thumb_size; const int posy = (th->y - table->thumbs_area.y) / table->thumb_size; // we compute new position taking anchor image as reference th->x = anchor_posx - (anchor_x - posx) * new_size; th->y = anchor_posy - (anchor_y - posy) * new_size; + + // we move the thumbnail to its new position. + // in some case the thumbnail may be out of sight. This will be handled later. gtk_layout_move(GTK_LAYOUT(table->widget), th->w_main, th->x, th->y); + l = g_list_next(l); dt_thumbnail_resize(th, new_size, new_size, FALSE, IMG_TO_FIT); } @@ -855,19 +920,40 @@ posy = MAX(space - table->thumbs_area.y - table->thumbs_area.height, posy); int posx = MIN(table->view_width - space - table->thumbs_area.x, 0); posx = MAX(space - table->thumbs_area.x - table->thumbs_area.width, posx); - if(posx != 0 || posy != 0) _move(table, posx, posy, FALSE); + if(posx != 0 || posy != 0) + _move(table, posx, posy, FALSE); + + // now we search for thumbnails out of sight + GList *th_invalid = NULL; + l = table->list; + while(l) + { + dt_thumbnail_t *th = (dt_thumbnail_t *)l->data; + if(th->y + table->thumb_size <= 0 || th->y > table->view_height) + { + th_invalid = g_list_prepend(th_invalid, th); + GList *ll = l; + l = g_list_next(l); + table->list = g_list_delete_link(table->list, ll); + if(table->drag_thumb == th) + table->drag_thumb = NULL; + } + else + { + l = g_list_next(l); + } + } // and we load/unload thumbs if needed - int changed = _thumbs_load_needed(table); - changed += _thumbs_remove_unneeded(table); + int changed = _thumbs_load_needed(table, &th_invalid, first, last); + changed += _thumbs_remove_unneeded(table, &th_invalid); if(changed > 0) _pos_compute_area(table); // we update all the values - // chained dereference is dangerous, but there was a check above in the code - dt_thumbnail_t *first = (dt_thumbnail_t *)table->list->data; - table->offset = first->rowid; - table->offset_imgid = first->imgid; + const dt_thumbnail_t *nfirst = (dt_thumbnail_t *)table->list->data; + table->offset = nfirst->rowid; + table->offset_imgid = nfirst->imgid; dt_conf_set_int("plugins/lighttable/collect/history_pos0", table->offset); dt_conf_set_int("lighttable/zoomable/last_offset", table->offset); dt_conf_set_int("lighttable/zoomable/last_pos_x", table->thumbs_area.x); @@ -941,8 +1027,11 @@ const int oldzoom, const int newzoom) { - if(oldzoom == newzoom) return; - if(!table->list) return; + if(oldzoom == newzoom) + return; + + if(!table->list) + return; if(table->mode == DT_THUMBTABLE_MODE_FILEMANAGER) { @@ -954,6 +1043,40 @@ } } +static gboolean _event_scroll_compressed(gpointer user_data) +{ + if (!user_data) return FALSE; + dt_thumbtable_t *table = (dt_thumbtable_t *)user_data; + + if (table->scroll_value != 0) + { + float delta = table->scroll_value; + + // starting from here, all further scroll event will count for the next round + table->scroll_value = 0; + + // for filemanager and filmstrip, scrolled = move for + // filemanager we ensure to fallback to show full row (can be + // half shown if scrollbar used) + int move = table->thumb_size * delta; + // if we scroll up and the thumb is half visible, then realign first + if(delta < 0 && table->thumbs_area.y != 0) + move += table->thumb_size -table->thumbs_area.y; + + _move(table, 0, -move, TRUE); + + // ensure the hovered image is the right one + dt_thumbnail_t *th = _thumb_get_under_mouse(table); + if(th) + dt_control_set_mouse_over_id(th->imgid); + } + + // we reset the id value at the end, to ensure we don't get more + // than 1 pending scroll + table->scroll_timeout_id = 0; + return FALSE; +} + static gboolean _event_scroll(GtkWidget *widget, GdkEvent *event, gpointer user_data) @@ -964,50 +1087,44 @@ if(dt_gui_get_scroll_unit_delta(e, &delta)) { - if(table->mode == DT_THUMBTABLE_MODE_FILEMANAGER - && dt_modifier_is(e->state, GDK_CONTROL_MASK)) - { - const int old = dt_view_lighttable_get_zoom(darktable.view_manager); - int new = old; - if(delta > 0) - new = MIN(DT_LIGHTTABLE_MAX_ZOOM, new + 1); + // for zoomable, scroll = zoom + if(table->mode == DT_THUMBTABLE_MODE_ZOOM + || dt_modifier_is(e->state, GDK_CONTROL_MASK)) + { + if(table->mode == DT_THUMBTABLE_MODE_FILMSTRIP) + { + const int sx = CLAMP(table->view_width / ((table->view_width / table->thumb_size / 2 + delta) * 2 + 1), + dt_conf_get_int("min_panel_height"), + dt_conf_get_int("max_panel_height")); + dt_ui_panel_set_size(darktable.gui->ui, DT_UI_PANEL_BOTTOM, sx); + } else - new = MAX(1, new - 1); - - if(old != new) _filemanager_zoom(table, old, new); + { + const int old = dt_view_lighttable_get_zoom(darktable.view_manager); + const int new = CLAMP(old + delta, 1, DT_LIGHTTABLE_MAX_ZOOM); + dt_thumbtable_zoom_changed(table, old, new); + } } - else if(table->mode == DT_THUMBTABLE_MODE_FILEMANAGER - || table->mode == DT_THUMBTABLE_MODE_FILMSTRIP) + else if(table->mode == DT_THUMBTABLE_MODE_FILMSTRIP) { - // for filemanger and filmstrip, scrolled = move for - // filemangager we ensure to fallback to show full row (can be - // half shown if scrollbar used) - if(delta < 0 && table->mode == DT_THUMBTABLE_MODE_FILEMANAGER) - _move(table, 0, (table->thumbs_area.y == 0) - ? table->thumb_size - : -table->thumbs_area.y, TRUE); - else if(delta < 0 && table->mode == DT_THUMBTABLE_MODE_FILMSTRIP) - _move(table, table->thumb_size, 0, TRUE); - if(delta >= 0 && table->mode == DT_THUMBTABLE_MODE_FILEMANAGER) - _move(table, 0, -table->thumb_size - table->thumbs_area.y, TRUE); - else if(delta >= 0 && table->mode == DT_THUMBTABLE_MODE_FILMSTRIP) - _move(table, -table->thumb_size, 0, TRUE); + _move(table, -delta * (dt_modifier_is(e->state, GDK_SHIFT_MASK) + ? table->view_width - table->thumb_size + : table->thumb_size), 0, TRUE); // ensure the hovered image is the right one dt_thumbnail_t *th = _thumb_get_under_mouse(table); - if(th) dt_control_set_mouse_over_id(th->imgid); + if(th) + dt_control_set_mouse_over_id(th->imgid); } - else if(table->mode == DT_THUMBTABLE_MODE_ZOOM) + else if(table->mode == DT_THUMBTABLE_MODE_FILEMANAGER) { - // for zoomable, scroll = zoom - const int old = dt_view_lighttable_get_zoom(darktable.view_manager); - int new = old; - if(delta > 0) - new = MIN(DT_LIGHTTABLE_MAX_ZOOM, new + 1); - else - new = MAX(1, new - 1); - - if(old != new) _zoomable_zoom(table, old, new); + // in order to process "big" scroll in one time, we use a + // timeout to postpone a little scrolling + if(table->scroll_timeout_id == 0) + { + table->scroll_timeout_id = g_timeout_add(10, _event_scroll_compressed, table); + } + table->scroll_value += delta; } } // we stop here to avoid scrolledwindow to move @@ -1015,7 +1132,7 @@ } // display help text in the center view if there's no image to show -static int _lighttable_expose_empty(cairo_t *cr, +static void _lighttable_expose_empty(cairo_t *cr, int32_t width, int32_t height, const gboolean lighttable) @@ -1082,14 +1199,14 @@ pango_font_description_free(desc); g_object_unref(layout); - return 0; } static gboolean _event_draw(GtkWidget *widget, cairo_t *cr, gpointer user_data) { - if(!GTK_IS_CONTAINER(gtk_widget_get_parent(widget))) return TRUE; + if(!GTK_IS_CONTAINER(gtk_widget_get_parent(widget))) + return TRUE; // we render the background (can be visible if before first image / after last image) GtkStyleContext *context = gtk_widget_get_style_context(widget); @@ -1099,7 +1216,8 @@ // but we don't really want to draw something, this is just to know // when the widget is really ready dt_thumbtable_t *table = (dt_thumbtable_t *)user_data; - if(!darktable.collection || (dt_collection_get_count(darktable.collection) == 0)) + if(!darktable.collection + || (dt_collection_get_count(darktable.collection) == 0)) { GtkAllocation allocation; gtk_widget_get_allocation(table->widget, &allocation); @@ -1141,9 +1259,12 @@ GdkEventCrossing *event, gpointer user_data) { + dt_set_backthumb_time(0.0); + // we only handle the case where we enter thumbtable from an inferior (a thumbnail) // this is when the mouse enter an "empty" area of thumbtable - if(event->detail != GDK_NOTIFY_INFERIOR) return FALSE; + if(event->detail != GDK_NOTIFY_INFERIOR) + return FALSE; dt_control_set_mouse_over_id(NO_IMGID); return TRUE; @@ -1153,6 +1274,8 @@ GdkEventButton *event, gpointer user_data) { + dt_set_backthumb_time(0.0); + dt_thumbtable_t *table = (dt_thumbtable_t *)user_data; const dt_view_manager_t *vm = darktable.view_manager; dt_view_t *view = vm->current_view; @@ -1193,18 +1316,17 @@ return TRUE; } - if(table->mode != DT_THUMBTABLE_MODE_ZOOM) return FALSE; + if(table->mode != DT_THUMBTABLE_MODE_ZOOM) + return FALSE; if(event->button == 1 && event->type == GDK_BUTTON_PRESS) { table->dragging = TRUE; table->drag_dx = table->drag_dy = 0; - GList *tl = g_list_find_custom(table->list, - GINT_TO_POINTER(id), _list_compare_by_imgid); - if(tl) - table->drag_thumb = (dt_thumbnail_t *)tl->data; - else - table->drag_thumb = NULL; + table->drag_initial_imgid = id; + table->drag_thumb = _thumbtable_get_thumb(table, id); + if(table->drag_thumb) + table->drag_thumb->moved = FALSE; } return TRUE; } @@ -1213,6 +1335,8 @@ GdkEventMotion *event, gpointer user_data) { + dt_set_backthumb_time(0.0); + dt_thumbtable_t *table = (dt_thumbtable_t *)user_data; table->mouse_inside = TRUE; @@ -1224,7 +1348,7 @@ _move(table, dx, dy, TRUE); table->drag_dx += dx; table->drag_dy += dy; - if(table->drag_thumb) + if(table->drag_thumb && !table->drag_thumb->moved) { // we only considers that this is a real move if the total // distance is not too low @@ -1243,6 +1367,8 @@ GdkEventButton *event, gpointer user_data) { + dt_set_backthumb_time(0.0); + dt_thumbtable_t *table = (dt_thumbtable_t *)user_data; if(table->dragging == FALSE) @@ -1264,9 +1390,16 @@ } } - if(table->mode != DT_THUMBTABLE_MODE_ZOOM) return FALSE; + if(table->mode != DT_THUMBTABLE_MODE_ZOOM) + return FALSE; + // in some case, image_over_id can get out of sync at the end of dragging + // this happen esp. if the pointer as been out of the center area during drag + if (dt_control_get_mouse_over_id() != table->drag_initial_imgid && table->drag_thumb) + dt_control_set_mouse_over_id(table->drag_initial_imgid); table->dragging = FALSE; + table->drag_initial_imgid = NO_IMGID; + table->drag_thumb = NULL; if((abs(table->drag_dx) + abs(table->drag_dy)) <= DT_PIXEL_APPLY_DPI(8) && !dt_is_valid_imgid(dt_control_get_mouse_over_id())) @@ -1332,6 +1465,8 @@ max_level = MAX(max_level, MAX(table->pref_embedded, embeddedl)); } + sqlite3_stmt *stmt = NULL; + if(min_level < max_level) { gchar *txt = @@ -1360,7 +1495,6 @@ if(dt_gui_show_yes_no_dialog(_("cached thumbnails invalidation"), "%s", txt)) { - sqlite3_stmt *stmt = NULL; DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), "SELECT id FROM main.images", -1, &stmt, NULL); while(sqlite3_step(stmt) == SQLITE_ROW) @@ -1375,7 +1509,16 @@ } g_free(txt); } - // in any case, we update thumbtable prefs values to new ones + // in any case, we update thumbtable prefs values to new ones and update backthumbs database + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + "UPDATE main.images" + " SET thumb_maxmip = ?1" + " WHERE thumb_maxmip > ?1 ", + -1, &stmt, NULL); + DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, min_level); + sqlite3_step(stmt); + sqlite3_finalize(stmt); + table->pref_hq = hql; table->pref_embedded = embeddedl; } @@ -1383,12 +1526,19 @@ // called each time the preference change, to update specific parts static void _dt_pref_change_callback(gpointer instance, gpointer user_data) { - if(!user_data) return; + if(!user_data) + return; + dt_get_sysresource_level(); dt_opencl_update_settings(); dt_configure_ppd_dpi(darktable.gui); dt_thumbtable_t *table = (dt_thumbtable_t *)user_data; + /* let's idle the backthumb crawler now to avoid fighting + updating vs removal of thumbs + */ + dt_set_backthumb_time(1000.0); + _thumbs_ask_for_discard(table); dt_thumbtable_full_redraw(table, TRUE); @@ -1399,13 +1549,24 @@ dt_thumbnail_reload_infos(th); dt_thumbnail_resize(th, th->width, th->height, TRUE, IMG_TO_FIT); } + + const char *mipsize = dt_conf_get_string_const("backthumbs_mipsize"); + darktable.backthumbs.mipsize = dt_mipmap_cache_get_min_mip_from_pref(mipsize); + darktable.backthumbs.service = dt_conf_get_bool("backthumbs_initialize"); + if(darktable.backthumbs.mipsize != DT_MIPMAP_NONE + && !darktable.backthumbs.running) + dt_start_backtumbs_crawler(); + else + dt_set_backthumb_time(10.0); } static void _dt_profile_change_callback(gpointer instance, const int type, gpointer user_data) { - if(!user_data) return; + if(!user_data) + return; + dt_thumbtable_t *table = (dt_thumbtable_t *)user_data; for(const GList *l = table->list; l; l = g_list_next(l)) @@ -1420,7 +1581,9 @@ { // we only ensure here that the active image is the offset one // everything else (css, etc...) is handled in dt_thumbnail_t - if(!user_data) return; + if(!user_data) + return; + dt_thumbtable_t *table = (dt_thumbtable_t *)user_data; if(!darktable.view_manager->active_images) return; @@ -1431,7 +1594,9 @@ // this is called each time mouse_over id change static void _dt_mouse_over_image_callback(gpointer instance, gpointer user_data) { - if(!user_data) return; + if(!user_data) + return; + dt_thumbtable_t *table = (dt_thumbtable_t *)user_data; const dt_imgid_t imgid = dt_control_get_mouse_over_id(); @@ -1441,17 +1606,36 @@ for(const GList *l = table->list; l; l = g_list_next(l)) { dt_thumbnail_t *th = (dt_thumbnail_t *)l->data; + // during dragging, we don't change over_id thumbnail + // this avoid some "jump" visual effect during widget move + // anyway the image_over_id is restored on button_release + const gboolean drag_ko = (table->mode == DT_THUMBTABLE_MODE_ZOOM + && table->dragging + && table->drag_initial_imgid != imgid); // if needed, the change mouseover value of the thumb - if(th->mouse_over != (th->imgid == imgid)) + if(th->mouse_over != (th->imgid == imgid) && !drag_ko) dt_thumbnail_set_mouseover(th, (th->imgid == imgid)); // now the grouping stuff - if(th->imgid == imgid && th->is_grouped) + if(th->imgid == imgid && th->is_grouped && !drag_ko) groupid = th->groupid; - if(th->group_borders) + if(th->group_borders && !drag_ko) { // to be sure we don't have any borders remaining dt_thumbnail_set_group_border(th, DT_THUMBNAIL_BORDER_NONE); } + + // during dragging, we can "lost" the drag_thumb if the pointer goes out of the central view + // when the pointer is back, let's restore it + if(th->imgid == imgid + && table->mode == DT_THUMBTABLE_MODE_ZOOM + && table->dragging + && table->drag_initial_imgid == imgid + && table->drag_thumb != th) + { + table->drag_thumb = th; + table->drag_thumb->moved = + ((abs(table->drag_dx) + abs(table->drag_dy)) > DT_PIXEL_APPLY_DPI(8)); + } } // we recrawl over all image for groups borders this is somewhat @@ -1460,7 +1644,9 @@ if(dt_is_valid_imgid(groupid)) { int pos = 0; - for(const GList *l = table->list; l; l = g_list_next(l)) + const int table_len = g_list_length(table->list); + + for(GList *l = table->list; l; l = g_list_next(l)) { dt_thumbnail_t *th = (dt_thumbnail_t *)l->data; dt_thumbnail_border_t old_borders = th->group_borders; @@ -1472,8 +1658,7 @@ // left border if(pos != 0 && th->x != table->thumbs_area.x) { - dt_thumbnail_t *th1 = - (dt_thumbnail_t *)g_list_nth_data(table->list, pos - 1); + dt_thumbnail_t *th1 = (dt_thumbnail_t *)g_list_previous(l)->data; if(th1->groupid == groupid) b = FALSE; } @@ -1483,12 +1668,12 @@ } // right border b = TRUE; - if(table->mode != DT_THUMBTABLE_MODE_FILMSTRIP - && pos < g_list_length(table->list) - 1 + if(pos < table_len - 1 && (th->x + th->width * 1.5) < table->thumbs_area.width) { - dt_thumbnail_t *th1 = (dt_thumbnail_t *)g_list_nth_data(table->list, pos + 1); - if(th1->groupid == groupid) b = FALSE; + dt_thumbnail_t *th1 = (dt_thumbnail_t *)g_list_next(l)->data; + if(th1->groupid == groupid) + b = FALSE; } if(b) { @@ -1508,8 +1693,9 @@ if(pos - table->thumbs_per_row >= 0) { dt_thumbnail_t *th1 = - (dt_thumbnail_t *)g_list_nth_data(table->list, pos - table->thumbs_per_row); - if(th1->groupid == groupid) b = FALSE; + (dt_thumbnail_t *)g_list_nth_prev(l, table->thumbs_per_row)->data; + if(th1->groupid == groupid) + b = FALSE; } if(b) { @@ -1520,11 +1706,12 @@ } // bottom border b = TRUE; - if(pos + table->thumbs_per_row < g_list_length(table->list)) + if(pos + table->thumbs_per_row < table_len) { dt_thumbnail_t *th1 = - (dt_thumbnail_t *)g_list_nth_data(table->list, pos + table->thumbs_per_row); - if(th1->groupid == groupid) b = FALSE; + (dt_thumbnail_t *)g_list_nth_data(l, table->thumbs_per_row); + if(th1->groupid == groupid) + b = FALSE; } if(b) { @@ -1534,7 +1721,8 @@ dt_thumbnail_set_group_border(th, DT_THUMBNAIL_BORDER_BOTTOM); } } - if(th->group_borders != old_borders) gtk_widget_queue_draw(th->w_back); + if(th->group_borders != old_borders) + gtk_widget_queue_draw(th->w_back); pos++; } } @@ -1548,7 +1736,9 @@ const dt_imgid_t next, gpointer user_data) { - if(!user_data) return; + if(!user_data) + return; + dt_thumbtable_t *table = (dt_thumbtable_t *)user_data; dt_collection_history_save(); @@ -1659,42 +1849,44 @@ // doesn't exist in the new memory.collected_images as we still // have the "old" list of images available in table->list, let's // found the next valid image inside + GList *actual = NULL; if(nrow <= 0) { - gboolean after = FALSE; - for(const GList *l = table->list; l; l = g_list_next(l)) + // we retrive the entry with id == newid + for(GList *l = table->list; l; l = g_list_next(l)) { dt_thumbnail_t *thumb = (dt_thumbnail_t *)l->data; - if(after) + if(thumb->imgid == newid) { - nrow = _thumb_get_rowid(thumb->imgid); - if(nrow > 0) - { - newid = thumb->imgid; - break; - } + actual = l; + break; + } + } + // we search the first valid item after + for(const GList *l = g_list_next(actual); l; l = g_list_next(l)) + { + dt_thumbnail_t *thumb = (dt_thumbnail_t *)l->data; + nrow = _thumb_get_rowid(thumb->imgid); + if(nrow > 0) + { + newid = thumb->imgid; + break; } - if(thumb->imgid == newid) after = TRUE; } } // last chance if still not valid, we search the first previous valid image - if(nrow <= 0) + if(nrow <= 0 && actual) { - gboolean before = FALSE; - for(const GList *l = g_list_last(table->list); l; l = g_list_previous(l)) + // we search the first valid item before + for(const GList *l = g_list_previous(actual); l; l = g_list_previous(l)) { dt_thumbnail_t *thumb = (dt_thumbnail_t *)l->data; - if(before) + nrow = _thumb_get_rowid(thumb->imgid); + if(nrow > 0) { - nrow = _thumb_get_rowid(thumb->imgid); - if(nrow > 0) - { - newid = thumb->imgid; - break; - } + newid = thumb->imgid; + break; } - if(thumb->imgid == newid) - before = TRUE; } } @@ -1735,18 +1927,20 @@ if(dt_is_valid_imgid(old_hover) && dt_is_valid_imgid(next)) { // except for darkroom when mouse is not in filmstrip (the active image primes) - const dt_view_t *v = dt_view_manager_get_current_view(darktable.view_manager); - if(table->mouse_inside || v->view(v) != DT_VIEW_DARKROOM) + if(table->mouse_inside || dt_view_get_current() != DT_VIEW_DARKROOM) { in_list = FALSE; gboolean in_list_next = FALSE; for(const GList *l = table->list; l; l = g_list_next(l)) { dt_thumbnail_t *thumb = (dt_thumbnail_t *)l->data; - if(thumb->imgid == old_hover) in_list = TRUE; - if(thumb->imgid == next) in_list_next = TRUE; + if(thumb->imgid == old_hover) + in_list = TRUE; + if(thumb->imgid == next) + in_list_next = TRUE; } - if(!in_list && in_list_next) dt_control_set_mouse_over_id(next); + if(!in_list && in_list_next) + dt_control_set_mouse_over_id(next); } } dt_control_queue_redraw_center(); @@ -1894,8 +2088,10 @@ GdkPixbuf *scaled = gdk_pixbuf_scale_simple(source, w, h, GDK_INTERP_HYPER); gtk_drag_set_icon_pixbuf(context, scaled, 0, h); - if(source) g_object_unref(source); - if(scaled) g_object_unref(scaled); + if(source) + g_object_unref(source); + if(scaled) + g_object_unref(scaled); } dt_mipmap_cache_release(darktable.mipmap_cache, &buf); @@ -1903,7 +2099,8 @@ } // if we can reorder, let's update the thumbtable class accordingly // this will show up vertical bar for the image destination point - if(darktable.collection->params.sorts[DT_COLLECTION_SORT_CUSTOM_ORDER] && table->mode != DT_THUMBTABLE_MODE_ZOOM) + if(darktable.collection->params.sorts[DT_COLLECTION_SORT_CUSTOM_ORDER] + && table->mode != DT_THUMBTABLE_MODE_ZOOM) { // we set the class correctly dt_gui_add_class(table->widget, "dt_thumbtable_reorder"); @@ -1921,7 +2118,8 @@ { gboolean success = FALSE; - if((target_type == DND_TARGET_URI) && (selection_data != NULL) + if((target_type == DND_TARGET_URI) + && (selection_data != NULL) && (gtk_selection_data_get_length(selection_data) >= 0)) { gchar **uri_list = @@ -1943,7 +2141,8 @@ g_strfreev(uri_list); success = TRUE; } - else if((target_type == DND_TARGET_IMGID) && (selection_data != NULL) + else if((target_type == DND_TARGET_IMGID) + && (selection_data != NULL) && (gtk_selection_data_get_length(selection_data) >= 0)) { dt_thumbtable_t *table = (dt_thumbtable_t *)user_data; @@ -2082,45 +2281,27 @@ if(table->mode == DT_THUMBTABLE_MODE_FILEMANAGER) { - const int first_offset = (table->offset - 1) % table->thumbs_per_row; - int new_offset = table->offset; - const int line = floorf(y); - if(first_offset == 0) - { - // first line is full, so it's counted - new_offset = 1 + line * table->thumbs_per_row; - } - else if(line == 0) - { - new_offset = 1; - } - else - { - new_offset = first_offset + (line - 1) * table->thumbs_per_row; - } - - table->offset = new_offset; - dt_thumbtable_full_redraw(table, TRUE); + // get first visible line position + const float first_line = ((table->offset - 1) / table->thumbs_per_row)*table->thumb_size - table->thumbs_area.y; - // To enable smooth scrolling move the thumbnails - // by the floating point amount of the scrollbar - // so if the scrollbar is in 13.28 position move the thumbs by 0.28 * thumb_size - const float thumbs_area_offset_y = ((y - line) * (float)table->thumb_size); - _move(table, 0, -thumbs_area_offset_y, FALSE); + _move(table, 0, first_line - y * table->thumb_size, TRUE); } } // reload all thumbs from scratch. force define if this should occurs // in any case or just if thumbtable sizing properties have changed -void dt_thumbtable_full_redraw(dt_thumbtable_t *table, const gboolean force) +void dt_thumbtable_full_redraw(dt_thumbtable_t *table, + const gboolean force) { - if(!table) return; + if(!table) + return; + if(_compute_sizes(table, force)) { // we update the scrollbars _thumbtable_update_scrollbars(table); - const double start = dt_get_wtime(); + const double start = dt_get_debug_wtime(); table->dragging = FALSE; sqlite3_stmt *stmt; dt_print(DT_DEBUG_LIGHTTABLE, @@ -2158,14 +2339,19 @@ offset = (table->offset - 1) / table->thumbs_per_row * table->thumbs_per_row + 1; // ensure that we don't go up too far (we only want a space <thumb_size at the bottom) - if(table->offset != offset && offset > 1 && table->thumbs_per_row > 1) + if(table->offset != offset + && offset > 1 + && table->thumbs_per_row > 1) { const uint32_t nb = dt_collection_get_collected_count(); // get how many full blank line we have at the bottom - const int move - = (table->rows - 1) - ((nb - (offset - 1) + table->thumbs_per_row - 1) / table->thumbs_per_row); - if(move > 0) offset = MAX(1, offset - move * table->thumbs_per_row); + const int move = + (table->rows - 1) + - ((nb - (offset - 1) + + table->thumbs_per_row - 1) / table->thumbs_per_row); + if(move > 0) + offset = MAX(1, offset - move * table->thumbs_per_row); } table->offset = offset; } @@ -2198,14 +2384,25 @@ } } + // let's create a hashtable of table->list in order to speddup search in next loop + GHashTable *htable = g_hash_table_new_full(g_int_hash, g_int_equal, NULL, _list_remove_thumb); + for(const GList *l = table->list; l; l = g_list_next(l)) + { + dt_thumbnail_t *th = (dt_thumbnail_t *)l->data; + g_hash_table_insert(htable, &th->imgid, (gpointer)th); + } + g_list_free(table->list); + table->list = NULL; + // we add the thumbs - GList *newlist = NULL; int nbnew = 0; gchar *query = g_strdup_printf - ("SELECT rowid, imgid" - " FROM memory.collected_images" - " WHERE rowid>=%d LIMIT %d", + ("SELECT mi.rowid, mi.imgid, si.imgid" + " FROM memory.collected_images AS mi" + " LEFT JOIN main.selected_images AS si" + " ON mi.imgid = si.imgid" + " WHERE mi.rowid>=%d LIMIT %d", offset, table->rows * table->thumbs_per_row - empty_start); DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), query, -1, &stmt, NULL); @@ -2213,13 +2410,14 @@ { const int nrow = sqlite3_column_int(stmt, 0); const int nid = sqlite3_column_int(stmt, 1); + const gboolean selected = (nid == sqlite3_column_int(stmt, 2)); // first, we search if the thumb is already here - GList *tl = g_list_find_custom(table->list, - GINT_TO_POINTER(nid), _list_compare_by_imgid); - if(tl) + dt_thumbnail_t *thumb = (dt_thumbnail_t *)g_hash_table_lookup(htable, &nid); + + if(thumb) { - dt_thumbnail_t *thumb = (dt_thumbnail_t *)tl->data; + g_hash_table_steal(htable, &nid); dt_gui_remove_class(thumb->w_main, "dt_last_active"); thumb->rowid = nrow; // this may have changed // we set new position/size if needed @@ -2231,17 +2429,23 @@ } dt_thumbnail_resize(thumb, table->thumb_size, table->thumb_size, FALSE, IMG_TO_FIT); - newlist = g_list_prepend(newlist, thumb); - // and we remove the thumb from the old list - table->list = g_list_remove(table->list, thumb); + table->list = g_list_prepend(table->list, thumb); + + // if there's a change in selection, update the thumb + dt_thumbnail_set_selection(thumb, selected); } else { // we create a completely new thumb - dt_thumbnail_t *thumb - = dt_thumbnail_new(table->thumb_size, - table->thumb_size, IMG_TO_FIT, nid, nrow, table->overlays, - DT_THUMBNAIL_CONTAINER_LIGHTTABLE, table->show_tooltips); + thumb = dt_thumbnail_new(table->thumb_size, + table->thumb_size, + IMG_TO_FIT, + nid, + nrow, + table->overlays, + DT_THUMBNAIL_CONTAINER_LIGHTTABLE, + table->show_tooltips, + selected); if(table->mode == DT_THUMBTABLE_MODE_FILMSTRIP) { thumb->single_click = TRUE; @@ -2249,7 +2453,7 @@ } thumb->x = posx; thumb->y = posy; - newlist = g_list_prepend(newlist, thumb); + table->list = g_list_prepend(table->list, thumb); gtk_widget_set_margin_start(thumb->w_image_box, old_margin_start); gtk_widget_set_margin_top(thumb->w_image_box, old_margin_top); gtk_layout_put(GTK_LAYOUT(table->widget), thumb->w_main, posx, posy); @@ -2257,19 +2461,17 @@ } _pos_get_next(table, &posx, &posy); // if it's the offset, we record the imgid - if(nrow == table->offset) table->offset_imgid = nid; + if(nrow == table->offset) + table->offset_imgid = nid; } - // now we cleanup all remaining thumbs from old table->list and set it again - g_list_free_full(table->list, _list_remove_thumb); - table->list = g_list_reverse(newlist); + // clean up all remaining thumbnails + g_hash_table_destroy(htable); // list was built in reverse order, so un-reverse it + table->list = g_list_reverse(table->list); _pos_compute_area(table); - // we need to ensure there's no need to load other image on top/bottom - if(table->mode == DT_THUMBTABLE_MODE_ZOOM) nbnew += _thumbs_load_needed(table); - if(darktable.view_manager->active_images && (table->mode == DT_THUMBTABLE_MODE_ZOOM || table->mode == DT_THUMBTABLE_MODE_FILEMANAGER)) @@ -2298,23 +2500,14 @@ DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_ACTIVE_IMAGES_CHANGE); } - // if we force the redraw, we ensure selection is updated - if(force) - { - for(const GList *l = table->list; l; l = g_list_next(l)) - { - dt_thumbnail_t *th = (dt_thumbnail_t *)l->data; - dt_thumbnail_update_selection(th); - } - } - dt_print(DT_DEBUG_LIGHTTABLE, "done in %0.04f sec %d thumbs reloaded\n", dt_get_wtime() - start, nbnew); g_free(query); sqlite3_finalize(stmt); - if(darktable.unmuted & DT_DEBUG_CACHE) dt_mipmap_cache_print(darktable.mipmap_cache); + if(darktable.unmuted & DT_DEBUG_CACHE) + dt_mipmap_cache_print(darktable.mipmap_cache); } } @@ -2433,7 +2626,8 @@ return FALSE; table->offset = offset; dt_conf_set_int("plugins/lighttable/collect/history_pos0", table->offset); - if(redraw) dt_thumbtable_full_redraw(table, TRUE); + if(redraw) + dt_thumbtable_full_redraw(table, TRUE); return TRUE; } @@ -2508,7 +2702,8 @@ const dt_imgid_t sourceid = dt_act_on_get_main_image(); const dt_imgid_t newimgid = dt_image_duplicate(sourceid); - if(!dt_is_valid_imgid(newimgid)) return; + if(!dt_is_valid_imgid(newimgid)) + return; if(strcmp(action->id, "duplicate image")) dt_history_delete_on_image(newimgid); @@ -2715,7 +2910,8 @@ table->thumbs_per_row * (table->rows - 1) - 1); dt_thumbnail_t *last = (dt_thumbnail_t *)g_list_nth_data(table->list, pos); - if(first->rowid <= rowid && last->rowid >= rowid) return TRUE; + if(first->rowid <= rowid && last->rowid >= rowid) + return TRUE; return FALSE; } @@ -2755,7 +2951,9 @@ gboolean dt_thumbtable_check_imgid_visibility(dt_thumbtable_t *table, const dt_imgid_t imgid) { - if(!dt_is_valid_imgid(imgid)) return FALSE; + if(!dt_is_valid_imgid(imgid)) + return FALSE; + if(table->mode == DT_THUMBTABLE_MODE_FILEMANAGER) return _filemanager_check_rowid_visibility(table, _thumb_get_rowid(imgid)); else if(table->mode == DT_THUMBTABLE_MODE_ZOOM) @@ -2802,7 +3000,8 @@ DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), "SELECT MAX(rowid) FROM memory.collected_images", -1, &stmt, NULL); - if(sqlite3_step(stmt) == SQLITE_ROW) maxrowid = sqlite3_column_int(stmt, 0); + if(sqlite3_step(stmt) == SQLITE_ROW) + maxrowid = sqlite3_column_int(stmt, 0); sqlite3_finalize(stmt); switch(move) @@ -2825,12 +3024,14 @@ case DT_THUMBTABLE_MOVE_PAGEUP: newrowid = baserowid - table->thumbs_per_row * (table->rows - 1); while(newrowid < 1) newrowid += table->thumbs_per_row; - if(newrowid == baserowid) newrowid=1; + if(newrowid == baserowid) + newrowid = 1; break; case DT_THUMBTABLE_MOVE_PAGEDOWN: newrowid = baserowid + table->thumbs_per_row * (table->rows - 1); while(newrowid > maxrowid) newrowid -= table->thumbs_per_row; - if(newrowid == baserowid) newrowid = maxrowid; + if(newrowid == baserowid) + newrowid = maxrowid; break; // direct start/end @@ -2851,7 +3052,8 @@ dt_control_set_mouse_over_id(imgid); // ensure the image is visible by moving the view if needed - if(newrowid != -1) _filemanager_ensure_rowid_visibility(table, newrowid); + if(newrowid != -1) + _filemanager_ensure_rowid_visibility(table, newrowid); // if needed, we set the selection if(select && dt_is_valid_imgid(imgid)) @@ -2897,7 +3099,8 @@ DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), "SELECT MAX(rowid) FROM memory.collected_images", -1, &stmt, NULL); - if(sqlite3_step(stmt) == SQLITE_ROW) maxrowid = sqlite3_column_int(stmt, 0); + if(sqlite3_step(stmt) == SQLITE_ROW) + maxrowid = sqlite3_column_int(stmt, 0); sqlite3_finalize(stmt); moved = _zoomable_ensure_rowid_visibility(table, maxrowid); } @@ -2914,9 +3117,11 @@ // and we set mouseover if we can dt_thumbnail_t *thumb = _thumb_get_under_mouse(table); - if(thumb) dt_control_set_mouse_over_id(thumb->imgid); + if(thumb) + dt_control_set_mouse_over_id(thumb->imgid); // if needed, we set the selection - if(thumb && select) dt_selection_select_range(darktable.selection, thumb->imgid); + if(thumb && select) + dt_selection_select_range(darktable.selection, thumb->imgid); // and we record new positions values dt_thumbnail_t *first = (dt_thumbnail_t *)table->list->data; diff -Nru darktable-4.4.2/src/dtgtk/thumbtable.h darktable-4.6.1/src/dtgtk/thumbtable.h --- darktable-4.4.2/src/dtgtk/thumbtable.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/dtgtk/thumbtable.h 2024-02-16 17:31:09.000000000 +0000 @@ -76,13 +76,10 @@ int center_offset; // in filemanager, we can have a gap, esp. for zoom==1, we need to center everything gboolean dragging; - int last_x, last_y; // last position of cursor during move - int drag_dx, drag_dy; // distance of move of the current dragging session - dt_thumbnail_t *drag_thumb; // thumb currently dragged (under the mouse) - - // for some reasons, in filemanager, first image can not be at x=0 - // in that case, we count the number of "scroll-top" try and reallign after 2 try - int realign_top_try; + int last_x, last_y; // last position of cursor during move + int drag_dx, drag_dy; // distance of move of the current dragging session + dt_thumbnail_t *drag_thumb; // thumb currently dragged (under the mouse) + dt_imgid_t drag_initial_imgid; // image_over_id at the dragging start gboolean mouse_inside; // is the mouse pointer inside thumbtable widget ? gboolean key_inside; // is the key move pointer inside thumbtable widget ? @@ -103,6 +100,10 @@ // let's remember previous thumbnail generation settings to detect if they change int pref_embedded; int pref_hq; + + // scroll timeout values + guint scroll_timeout_id; + float scroll_value; } dt_thumbtable_t; dt_thumbtable_t *dt_thumbtable_new(); diff -Nru darktable-4.4.2/src/dtgtk/togglebutton.c darktable-4.6.1/src/dtgtk/togglebutton.c --- darktable-4.4.2/src/dtgtk/togglebutton.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/dtgtk/togglebutton.c 2024-02-16 17:31:09.000000000 +0000 @@ -58,8 +58,8 @@ flags &= ~CPF_ACTIVE; /* update focus state paint flag */ - const gboolean hasfocus = ((DTGTK_TOGGLEBUTTON(widget)->icon_data == darktable.develop->gui_module) - && darktable.develop->gui_module); + const gboolean hasfocus = ((DTGTK_TOGGLEBUTTON(widget)->icon_data == dt_dev_gui_module()) + && dt_dev_gui_module()); if(hasfocus) flags |= CPF_FOCUS; else diff -Nru darktable-4.4.2/src/external/CMakeLists.txt darktable-4.6.1/src/external/CMakeLists.txt --- darktable-4.4.2/src/external/CMakeLists.txt 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/external/CMakeLists.txt 2024-02-16 17:31:09.000000000 +0000 @@ -5,6 +5,27 @@ add_library(whereami STATIC "${CMAKE_CURRENT_SOURCE_DIR}/whereami/src/whereami.c") target_include_directories(whereami PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/whereami/src/") +set(OPENCL_PATH "${CMAKE_CURRENT_SOURCE_DIR}/OpenCL") + +if(NOT(EXISTS "${OPENCL_PATH}" AND IS_DIRECTORY "${OPENCL_PATH}" AND EXISTS "${OPENCL_PATH}/CL/opencl.h")) + message("OpenCL submodule not found. You probably want to run:\n$ git submodule init\nand then\n$ git submodule update\nOr let the OS headers to be used.") +endif() + +################################################################################ +# RawSpeed block + +string(TOUPPER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_UPPERCASE) + +set(RAWSPEED_${CMAKE_BUILD_TYPE_UPPERCASE}_BUILD 1) +if(RAWSPEED_RELWITHDEBINFO_BUILD) + set(CMAKE_BUILD_TYPE "Release") +endif() + +SET(COMPILER_SUPPORTS_DEBUG_INFO_COMPRESSION OFF) +SET(COMPILER_SUPPORTS_DEBUG_INFO_COMPRESSION_LINK OFF) +SET(COMPILER_SUPPORTS_SPLIT_DEBUG_INFO OFF) +SET(LINKER_SUPPORTS_GDB_INDEX OFF) + set(BUILD_TESTING_SAVE "${BUILD_TESTING}") set(BUILD_BENCHMARKING_SAVE "${BUILD_BENCHMARKING}") @@ -20,12 +41,6 @@ message(FATAL_ERROR "RawSpeed submodule not found. You probably want to run:\n$ git submodule init\nand then\n$ git submodule update") endif() -set(OPENCL_PATH "${CMAKE_CURRENT_SOURCE_DIR}/OpenCL") - -if(NOT(EXISTS "${OPENCL_PATH}" AND IS_DIRECTORY "${OPENCL_PATH}" AND EXISTS "${OPENCL_PATH}/CL/opencl.h")) - message("OpenCL submodule not found. You probably want to run:\n$ git submodule init\nand then\n$ git submodule update\nOr let the OS headers to be used.") -endif() - set(CMAKE_INSTALL_DATAROOTDIR_SAVE "${CMAKE_INSTALL_DATAROOTDIR}") set(CMAKE_C_FLAGS_SAVE "${CMAKE_C_FLAGS}") diff -Nru darktable-4.4.2/src/external/LibRaw/Changelog.txt darktable-4.6.1/src/external/LibRaw/Changelog.txt --- darktable-4.4.2/src/external/LibRaw/Changelog.txt 2023-01-05 06:49:26.000000000 +0000 +++ darktable-4.6.1/src/external/LibRaw/Changelog.txt 2024-01-05 09:18:28.000000000 +0000 @@ -1,3 +1,25 @@ +2023-12-19 Alex Tutubalin <lexa@lexa.ru> + + LibRaw 0.21.2-Release + + * New compile-defined limit LIBRAW_MAX_PROFILE_SIZE_MB: + limits allocation/read size for embedded color profile (default: 256Mb) + + * Embedded color profile allocation/read size: limited by input file size. + + * Multiple fixes (mostly inspired by oss-fuzz) to improve library stability and/or input checks. + + * raw-identify: use fallback if PATH_MAX not available + + * Disabled color conversion for Canon 16-bit thumbnails + + * docs/changelog: explained the case when no thumbnail is found in specific file + + * swapXX renamed to libraw_swapXX to avoid name conflict + + * better striped thumbnails handling + + 2023-01-05 Alex Tutubalin <lexa@lexa.ru> LibRaw 0.21.1-Release * fixed typo in panasonic metadata parser @@ -52,7 +74,11 @@ Notes: - Only TIFF-based and CR3 files are parsed for thumbnail list, other formats will have - thumbcount = 1 (or 0 if no thumbnail found in file). + thumbcount = 1. + + - If no thumbnails are found in file: thumbcount will be set to 1 and + thumblist[0] will be initialized with data from thumbnail fields, + so LibRaw::unpack_thumb_ex(0) will do the same as LibRaw::unpack_thumb() - Thumbnail image size may be unknown (not recorded in metadata), in this case twidth and theight are zero. Usually small(er) thumbnails will always have twidth/theight filled, while largest one may have these fields set to zero. diff -Nru darktable-4.4.2/src/external/LibRaw/doc/API-datastruct.html darktable-4.6.1/src/external/LibRaw/doc/API-datastruct.html --- darktable-4.4.2/src/external/LibRaw/doc/API-datastruct.html 2023-01-05 06:49:26.000000000 +0000 +++ darktable-4.6.1/src/external/LibRaw/doc/API-datastruct.html 2024-01-05 09:18:28.000000000 +0000 @@ -427,6 +427,12 @@ </dl> </dd> </dl> + <p> + Note: even if no thumbnails were found in TIFF/CR3 structure, the + thumbcount field will be initialized to 1 and thumblist[0] will be + initialized to thumbnail data from the thumbnail data, so + LibRaw::unpack_thumb_ex(0) will do the same as LibRaw::unpack_thumb(). + </p> <p><a name="libraw_lensinfo_t"></a></p> <h3>Structure libraw_lensinfo_t: parsed lens data</h3> <p>The following parameters are extracted from Makernotes and EXIF, to help diff -Nru darktable-4.4.2/src/external/LibRaw/libraw/libraw_const.h darktable-4.6.1/src/external/LibRaw/libraw/libraw_const.h --- darktable-4.4.2/src/external/LibRaw/libraw/libraw_const.h 2023-01-05 06:49:26.000000000 +0000 +++ darktable-4.6.1/src/external/LibRaw/libraw/libraw_const.h 2024-01-05 09:18:28.000000000 +0000 @@ -24,6 +24,10 @@ #define LIBRAW_MAX_ALLOC_MB_DEFAULT 2048L #endif +#ifndef LIBRAW_MAX_PROFILE_SIZE_MB +#define LIBRAW_MAX_PROFILE_SIZE_MB 256LL +#endif + #ifndef LIBRAW_MAX_NONDNG_RAW_FILE_SIZE #define LIBRAW_MAX_NONDNG_RAW_FILE_SIZE 2147483647ULL #endif diff -Nru darktable-4.4.2/src/external/LibRaw/libraw/libraw_version.h darktable-4.6.1/src/external/LibRaw/libraw/libraw_version.h --- darktable-4.4.2/src/external/LibRaw/libraw/libraw_version.h 2023-01-05 06:49:26.000000000 +0000 +++ darktable-4.6.1/src/external/LibRaw/libraw/libraw_version.h 2024-01-05 09:18:28.000000000 +0000 @@ -22,7 +22,7 @@ #define LIBRAW_MAJOR_VERSION 0 #define LIBRAW_MINOR_VERSION 21 -#define LIBRAW_PATCH_VERSION 1 +#define LIBRAW_PATCH_VERSION 2 #define LIBRAW_VERSION_TAIL Release #define LIBRAW_SHLIB_CURRENT 23 diff -Nru darktable-4.4.2/src/external/LibRaw/samples/raw-identify.cpp darktable-4.6.1/src/external/LibRaw/samples/raw-identify.cpp --- darktable-4.4.2/src/external/LibRaw/samples/raw-identify.cpp 2023-01-05 06:49:26.000000000 +0000 +++ darktable-4.6.1/src/external/LibRaw/samples/raw-identify.cpp 2024-01-05 09:18:28.000000000 +0000 @@ -40,7 +40,11 @@ #include <sys/mman.h> #include <sys/time.h> #ifndef MAX_PATH +#ifdef PATH_MAX #define MAX_PATH PATH_MAX +#else +#define MAX_PATH 4096 +#endif #endif #endif diff -Nru darktable-4.4.2/src/external/LibRaw/src/decoders/crx.cpp darktable-4.6.1/src/external/LibRaw/src/decoders/crx.cpp --- darktable-4.4.2/src/external/LibRaw/src/decoders/crx.cpp 2023-01-05 06:49:26.000000000 +0000 +++ darktable-4.6.1/src/external/LibRaw/src/decoders/crx.cpp 2024-01-05 09:18:28.000000000 +0000 @@ -2032,7 +2032,7 @@ // not sure about this nonsense - why is it not just avg like with 2 levels? quantVal = ((quantVal < 0) * 3 + quantVal) >> 2; if (quantVal / 6 >= 6) - *qStepTbl = q_step_tbl[quantVal % 6] * (1 << (quantVal / 6 + 26)); + *qStepTbl = q_step_tbl[quantVal % 6] << ((quantVal / 6 - 6 ) & 0x1f); else *qStepTbl = q_step_tbl[quantVal % 6] >> (6 - quantVal / 6); } @@ -2052,7 +2052,7 @@ { int32_t quantVal = (qpTable[row0Idx++] + qpTable[row1Idx++]) / 2; if (quantVal / 6 >= 6) - *qStepTbl = q_step_tbl[quantVal % 6] * (1 << (quantVal / 6 + 26)); + *qStepTbl = q_step_tbl[quantVal % 6] << ((quantVal / 6 - 6) & 0x1f); else *qStepTbl = q_step_tbl[quantVal % 6] >> (6 - quantVal / 6); } @@ -2066,7 +2066,7 @@ for (int qpRow = 0; qpRow < qpHeight; ++qpRow) for (int qpCol = 0; qpCol < qpWidth; ++qpCol, ++qStepTbl, ++qpTable) if (*qpTable / 6 >= 6) - *qStepTbl = q_step_tbl[*qpTable % 6] * (1 << (*qpTable / 6 + 26)); + *qStepTbl = q_step_tbl[*qpTable % 6] << ((*qpTable / 6 - 6) & 0x1f); else *qStepTbl = q_step_tbl[*qpTable % 6] >> (6 - *qpTable / 6); diff -Nru darktable-4.4.2/src/external/LibRaw/src/decoders/decoders_dcraw.cpp darktable-4.6.1/src/external/LibRaw/src/decoders/decoders_dcraw.cpp --- darktable-4.4.2/src/external/LibRaw/src/decoders/decoders_dcraw.cpp 2023-01-05 06:49:26.000000000 +0000 +++ darktable-4.6.1/src/external/LibRaw/src/decoders/decoders_dcraw.cpp 2024-01-05 09:18:28.000000000 +0000 @@ -577,6 +577,9 @@ i = jidx / (cr2_slice[1] * raw_height); if ((j = i >= cr2_slice[0])) i = cr2_slice[0]; + if(!cr2_slice[1+j]) + throw LIBRAW_EXCEPTION_IO_CORRUPT; + jidx -= i * (cr2_slice[1] * raw_height); row = jidx / cr2_slice[1 + j]; col = jidx % cr2_slice[1 + j] + i * cr2_slice[1]; @@ -609,10 +612,16 @@ int saved_w = width, saved_h = height; char *cp; + if(!image) + throw LIBRAW_EXCEPTION_IO_CORRUPT; + if (!ljpeg_start(&jh, 0) || jh.clrs < 4) return; jwide = (jh.wide >>= 1) * jh.clrs; + if (jwide < 32 || jwide > 65535) + throw LIBRAW_EXCEPTION_IO_CORRUPT; + if (load_flags & 256) { width = raw_width; @@ -1170,6 +1179,8 @@ } else { + if (load_flags >= 0x4000) + throw LIBRAW_EXCEPTION_IO_CORRUPT; for (row = 0; row < raw_height; row++) { checkCancel(); diff -Nru darktable-4.4.2/src/external/LibRaw/src/decoders/decoders_libraw.cpp darktable-4.6.1/src/external/LibRaw/src/decoders/decoders_libraw.cpp --- darktable-4.4.2/src/external/LibRaw/src/decoders/decoders_libraw.cpp 2023-01-05 06:49:26.000000000 +0000 +++ darktable-4.6.1/src/external/LibRaw/src/decoders/decoders_libraw.cpp 2024-01-05 09:18:28.000000000 +0000 @@ -22,6 +22,9 @@ void LibRaw::sony_arq_load_raw() { int row, col; + if (imgdata.idata.filters || imgdata.idata.colors < 3) + throw LIBRAW_EXCEPTION_IO_CORRUPT; + read_shorts(imgdata.rawdata.raw_image, imgdata.sizes.raw_width * imgdata.sizes.raw_height * 4); libraw_internal_data.internal_data.input->seek( diff -Nru darktable-4.4.2/src/external/LibRaw/src/decoders/fp_dng.cpp darktable-4.6.1/src/external/LibRaw/src/decoders/fp_dng.cpp --- darktable-4.4.2/src/external/LibRaw/src/decoders/fp_dng.cpp 2023-01-05 06:49:26.000000000 +0000 +++ darktable-4.6.1/src/external/LibRaw/src/decoders/fp_dng.cpp 2024-01-05 09:18:28.000000000 +0000 @@ -556,7 +556,7 @@ #else inline #endif -void swap24(uchar *data, int len) +void libraw_swap24(uchar *data, int len) { for (int i = 0; i < len - 2; i += 3) { @@ -572,7 +572,7 @@ #else inline #endif -void swap32(uchar *data, int len) +void libraw_swap32(uchar *data, int len) { unsigned *d = (unsigned*)data; for (int i = 0; i < len / 4; i++) @@ -646,9 +646,9 @@ if (bytesps == 2 && difford) libraw_swab(dst, fullrowbytes); else if (bytesps == 3 && (libraw_internal_data.unpacker_data.order == 0x4949)) // II-16bit - swap24(dst, fullrowbytes); + libraw_swap24(dst, fullrowbytes); if (bytesps == 4 && difford) - swap32(dst, fullrowbytes); + libraw_swap32(dst, fullrowbytes); float lmax = expandFloats( dst, diff -Nru darktable-4.4.2/src/external/LibRaw/src/decoders/load_mfbacks.cpp darktable-4.6.1/src/external/LibRaw/src/decoders/load_mfbacks.cpp --- darktable-4.4.2/src/external/LibRaw/src/decoders/load_mfbacks.cpp 2023-01-05 06:49:26.000000000 +0000 +++ darktable-4.6.1/src/external/LibRaw/src/decoders/load_mfbacks.cpp 2024-01-05 09:18:28.000000000 +0000 @@ -352,10 +352,17 @@ { /* Quadrant linearization */ ushort lc[2][2][16], ref[16]; int qr, qc; + bool baddiv = false; for (qr = 0; qr < 2; qr++) - for (qc = 0; qc < 2; qc++) - for (i = 0; i < 16; i++) - lc[qr][qc][i] = get4(); + for (qc = 0; qc < 2; qc++) + { + for (i = 0; i < 16; i++) + lc[qr][qc][i] = get4(); + if (lc[qr][qc][15] == 0) + baddiv = true; + } + if(baddiv) + continue; for (i = 0; i < 16; i++) { int v = 0; diff -Nru darktable-4.4.2/src/external/LibRaw/src/decoders/unpack_thumb.cpp darktable-4.6.1/src/external/LibRaw/src/decoders/unpack_thumb.cpp --- darktable-4.4.2/src/external/LibRaw/src/decoders/unpack_thumb.cpp 2023-01-05 06:49:26.000000000 +0000 +++ darktable-4.6.1/src/external/LibRaw/src/decoders/unpack_thumb.cpp 2024-01-05 09:18:28.000000000 +0000 @@ -266,8 +266,9 @@ tiff_ifd[pifd].strip_byte_counts_count) { // We found it, calculate final size - unsigned total_size = 0; - for (int i = 0; i < tiff_ifd[pifd].strip_byte_counts_count; i++) + INT64 total_size = 0; + for (int i = 0; i < tiff_ifd[pifd].strip_byte_counts_count + && i < tiff_ifd[pifd].strip_offsets_count; i++) total_size += tiff_ifd[pifd].strip_byte_counts[i]; if (total_size != (unsigned)t_length) // recalculate colors { @@ -284,15 +285,15 @@ char *dest = T.thumb; INT64 pos = ID.input->tell(); + INT64 remain = T.tlength; for (int i = 0; i < tiff_ifd[pifd].strip_byte_counts_count && i < tiff_ifd[pifd].strip_offsets_count; i++) { - int remain = T.tlength; int sz = tiff_ifd[pifd].strip_byte_counts[i]; - int off = tiff_ifd[pifd].strip_offsets[i]; - if (off >= 0 && off + sz <= ID.input->size() && sz <= remain) + INT64 off = tiff_ifd[pifd].strip_offsets[i]; + if (off >= 0 && off + sz <= ID.input->size() && sz > 0 && INT64(sz) <= remain) { ID.input->seek(off, SEEK_SET); ID.input->read(dest, sz, 1); @@ -332,13 +333,13 @@ int o_bps = (imgdata.rawparams.options & LIBRAW_RAWOPTIONS_USE_PPM16_THUMBS) ? 2 : 1; int o_length = T.twidth * T.theight * t_colors * o_bps; int i_length = T.twidth * T.theight * t_colors * 2; - if (!T.tlength) - T.tlength = o_length; - THUMB_SIZE_CHECKTNZ(o_length); + + THUMB_SIZE_CHECKTNZ(o_length); THUMB_SIZE_CHECKTNZ(i_length); - THUMB_SIZE_CHECKTNZ(T.tlength); ushort *t_thumb = (ushort *)calloc(i_length, 1); + if (!t_thumb) + throw LIBRAW_EXCEPTION_ALLOC; ID.input->read(t_thumb, 1, i_length); if ((libraw_internal_data.unpacker_data.order == 0x4949) == (ntohs(0x1234) == 0x1234)) @@ -350,14 +351,18 @@ { T.thumb = (char *)t_thumb; T.tformat = LIBRAW_THUMBNAIL_BITMAP16; + T.tlength = i_length; } else { T.thumb = (char *)malloc(o_length); + if (!T.thumb) + throw LIBRAW_EXCEPTION_ALLOC; for (int i = 0; i < o_length; i++) T.thumb[i] = t_thumb[i] >> 8; free(t_thumb); T.tformat = LIBRAW_THUMBNAIL_BITMAP; + T.tlength = o_length; } SET_PROC_FLAG(LIBRAW_PROGRESS_THUMB_LOAD); return 0; diff -Nru darktable-4.4.2/src/external/LibRaw/src/demosaic/xtrans_demosaic.cpp darktable-4.6.1/src/external/LibRaw/src/demosaic/xtrans_demosaic.cpp --- darktable-4.4.2/src/external/LibRaw/src/demosaic/xtrans_demosaic.cpp 2023-01-05 06:49:26.000000000 +0000 +++ darktable-4.6.1/src/external/LibRaw/src/demosaic/xtrans_demosaic.cpp 2024-01-05 09:18:28.000000000 +0000 @@ -265,6 +265,10 @@ { rix = &rgb[0][row - top][col - left]; int h = fcol(row, col + 1); + + if (h == 1) // Incorrect pattern + break; + float diff[6]; memset(diff, 0, sizeof diff); for (int i = 1, d = 0; d < 6; d++, i ^= LIBRAW_AHD_TILE ^ 1, h ^= 2) diff -Nru darktable-4.4.2/src/external/LibRaw/src/libraw_datastream.cpp darktable-4.6.1/src/external/LibRaw/src/libraw_datastream.cpp --- darktable-4.4.2/src/external/LibRaw/src/libraw_datastream.cpp 2023-01-05 06:49:26.000000000 +0000 +++ darktable-4.6.1/src/external/LibRaw/src/libraw_datastream.cpp 2024-01-05 09:18:28.000000000 +0000 @@ -460,7 +460,7 @@ if (scanf_res > 0) { int xcnt = 0; - while (streampos < streamsize) + while (streampos < streamsize-1) { streampos++; xcnt++; diff -Nru darktable-4.4.2/src/external/LibRaw/src/metadata/fuji.cpp darktable-4.6.1/src/external/LibRaw/src/metadata/fuji.cpp --- darktable-4.4.2/src/external/LibRaw/src/metadata/fuji.cpp 2023-01-05 06:49:26.000000000 +0000 +++ darktable-4.6.1/src/external/LibRaw/src/metadata/fuji.cpp 2024-01-05 09:18:28.000000000 +0000 @@ -132,7 +132,7 @@ } #define CHECKSPACE(s) \ - if (posPrivateMknBuf + (s) > PrivateMknLength) \ + if (INT64(posPrivateMknBuf) + INT64(s) > INT64(PrivateMknLength)) \ { \ free(PrivateMknBuf); \ return; \ @@ -209,7 +209,7 @@ PrivateOrder = sget2(PrivateMknBuf); unsigned s, l; s = ifd_start = sget4(PrivateMknBuf +2)+6; - CHECKSPACE(ifd_start+4); + CHECKSPACE(INT64(ifd_start)+4LL); l = ifd_len = sget4(PrivateMknBuf +ifd_start); CHECKSPACE_ABS3(ifd_start, ifd_len, 4); @@ -767,7 +767,7 @@ if (wb_section_offset) { - CHECKSPACE(wb_section_offset + 12); + CHECKSPACE(INT64(wb_section_offset) + 12LL); } if (wb_section_offset && diff -Nru darktable-4.4.2/src/external/LibRaw/src/postprocessing/postprocessing_aux.cpp darktable-4.6.1/src/external/LibRaw/src/postprocessing/postprocessing_aux.cpp --- darktable-4.4.2/src/external/LibRaw/src/postprocessing/postprocessing_aux.cpp 2023-01-05 06:49:26.000000000 +0000 +++ darktable-4.6.1/src/external/LibRaw/src/postprocessing/postprocessing_aux.cpp 2024-01-05 09:18:28.000000000 +0000 @@ -39,6 +39,7 @@ static const float noise[] = {0.8002f, 0.2735f, 0.1202f, 0.0585f, 0.0291f, 0.0152f, 0.0080f, 0.0044f}; + if (iwidth < 65 || iheight < 65) return; while (maximum << scale < 0x10000) scale++; @@ -135,6 +136,9 @@ static const float noise[] = {0.8002, 0.2735, 0.1202, 0.0585, 0.0291, 0.0152, 0.0080, 0.0044}; + if (iwidth < 65 || iheight < 65) + return; + while (maximum << scale < 0x10000) scale++; maximum <<= --scale; @@ -324,6 +328,9 @@ grow = pow(2.0, 4 - highlight); FORC(unsigned(colors)) hsat[c] = 32000 * pre_mul[c]; + FORC(unsigned(colors)) + if(hsat[c]<1) + return; for (kc = 0, c = 1; c < (unsigned)colors; c++) if (pre_mul[kc] < pre_mul[c]) kc = c; diff -Nru darktable-4.4.2/src/external/LibRaw/src/preprocessing/raw2image.cpp darktable-4.6.1/src/external/LibRaw/src/preprocessing/raw2image.cpp --- darktable-4.4.2/src/external/LibRaw/src/preprocessing/raw2image.cpp 2023-01-05 06:49:26.000000000 +0000 +++ darktable-4.6.1/src/external/LibRaw/src/preprocessing/raw2image.cpp 2024-01-05 09:18:28.000000000 +0000 @@ -43,6 +43,8 @@ // adjust for half mode! IO.shrink = + !imgdata.rawdata.color4_image && !imgdata.rawdata.color3_image && + !imgdata.rawdata.float4_image && !imgdata.rawdata.float3_image && P1.filters && (O.half_size || ((O.threshold || O.aber[0] != 1 || O.aber[2] != 1))); diff -Nru darktable-4.4.2/src/external/LibRaw/src/tables/wblists.cpp darktable-4.6.1/src/external/LibRaw/src/tables/wblists.cpp --- darktable-4.4.2/src/external/LibRaw/src/tables/wblists.cpp 2023-01-05 06:49:26.000000000 +0000 +++ darktable-4.6.1/src/external/LibRaw/src/tables/wblists.cpp 2024-01-05 09:18:28.000000000 +0000 @@ -17,15 +17,15 @@ #define _ARR_SZ(a) (sizeof(a)/sizeof(a[0])) -static const int _tagtype_dataunit_bytes [19] = { - 1, 1, 1, 2, 4, 8, 1, 1, 2, 4, 8, 4, 8, 4, 2, 8, 8, 8, 8 +static const int _tagtype_dataunit_bytes [20] = { + 1, 1, 1, 2, 4, 8, 1, 1, 2, 4, 8, 4, 8, 4, 2, 8, 8, 8, 8, 8 }; libraw_static_table_t LibRaw::tagtype_dataunit_bytes(_tagtype_dataunit_bytes, _ARR_SZ(_tagtype_dataunit_bytes)); int libraw_tagtype_dataunit_bytes(int tagtype) { - return _tagtype_dataunit_bytes[((unsigned)tagtype <= _ARR_SZ(_tagtype_dataunit_bytes)) ? tagtype : 0]; + return _tagtype_dataunit_bytes[((unsigned)tagtype < _ARR_SZ(_tagtype_dataunit_bytes)) ? tagtype : 0]; } diff -Nru darktable-4.4.2/src/external/LibRaw/src/utils/curves.cpp darktable-4.6.1/src/external/LibRaw/src/utils/curves.cpp --- darktable-4.4.2/src/external/LibRaw/src/utils/curves.cpp 2023-01-05 06:49:26.000000000 +0000 +++ darktable-4.6.1/src/external/LibRaw/src/utils/curves.cpp 2024-01-05 09:18:28.000000000 +0000 @@ -37,8 +37,11 @@ } for (i = len - 1; i > 0; i--) { - b[i] = (y[i] - y[i - 1]) / (x[i] - x[i - 1]); - d[i - 1] = x[i] - x[i - 1]; + float _div = x[i] - x[i - 1]; + if (fabs(_div) < 1.0e-15) + _div = 1; + b[i] = (y[i] - y[i - 1]) / _div; + d[i - 1] = _div; } for (i = 1; i < len - 1; i++) { diff -Nru darktable-4.4.2/src/external/LibRaw/src/utils/open.cpp darktable-4.6.1/src/external/LibRaw/src/utils/open.cpp --- darktable-4.4.2/src/external/LibRaw/src/utils/open.cpp 2023-01-05 06:49:26.000000000 +0000 +++ darktable-4.6.1/src/external/LibRaw/src/utils/open.cpp 2024-01-05 09:18:28.000000000 +0000 @@ -482,7 +482,10 @@ // Fuji layout files: either DNG or unpacked_load_raw should be used if (libraw_internal_data.internal_output_params.fuji_width || libraw_internal_data.unpacker_data.fuji_layout) { - if (!imgdata.idata.dng_version && load_raw != &LibRaw::unpacked_load_raw) + if (!imgdata.idata.dng_version && load_raw != &LibRaw::unpacked_load_raw + && load_raw != &LibRaw::unpacked_load_raw_FujiDBP + && load_raw != &LibRaw::unpacked_load_raw_fuji_f700s20 + ) return LIBRAW_FILE_UNSUPPORTED; } @@ -1200,9 +1203,15 @@ { if (C.profile) free(C.profile); - C.profile = malloc(C.profile_length); - ID.input->seek(ID.profile_offset, SEEK_SET); - ID.input->read(C.profile, C.profile_length, 1); + INT64 profile_sz = MIN(INT64(C.profile_length), ID.input->size() - ID.profile_offset); + if (profile_sz > 0LL && profile_sz < LIBRAW_MAX_PROFILE_SIZE_MB * 1024LL * 1024LL) + { + C.profile = malloc(size_t(profile_sz)); + ID.input->seek(ID.profile_offset, SEEK_SET); + ID.input->read(C.profile, size_t(profile_sz), 1); + } + else + C.profile = NULL; } SET_PROC_FLAG(LIBRAW_PROGRESS_IDENTIFY); diff -Nru darktable-4.4.2/src/external/LibRaw/src/utils/thumb_utils.cpp darktable-4.6.1/src/external/LibRaw/src/utils/thumb_utils.cpp --- darktable-4.4.2/src/external/LibRaw/src/utils/thumb_utils.cpp 2023-01-05 06:49:26.000000000 +0000 +++ darktable-4.6.1/src/external/LibRaw/src/utils/thumb_utils.cpp 2024-01-05 09:18:28.000000000 +0000 @@ -127,26 +127,36 @@ int(*t_hist)[LIBRAW_HISTOGRAM_SIZE] = (int(*)[LIBRAW_HISTOGRAM_SIZE])calloc(sizeof(*t_hist), 4); - float out[3], out_cam[3][4] = {{2.81761312f, -1.98369181f, 0.166078627f, 0}, - {-0.111855984f, 1.73688626f, -0.625030339f, 0}, - {-0.0379119813f, -0.891268849f, 1.92918086f, 0}}; - - for (img = imgdata.image[0], row = 0; row < S.height; row++) - for (col = 0; col < S.width; col++, img += 4) - { - out[0] = out[1] = out[2] = 0; - int c; - for (c = 0; c < 3; c++) + if (imgdata.idata.maker_index == LIBRAW_CAMERAMAKER_Canon) // Skip color conversion for canon PPM tiffs + { + for (img = imgdata.image[0], row = 0; row < S.height; row++) + for (col = 0; col < S.width; col++, img += 4) + for (int c = 0; c < P1.colors; c++) + t_hist[c][img[c] >> 3]++; + } + else + { + float out[3], out_cam[3][4] = {{2.81761312f, -1.98369181f, 0.166078627f, 0}, + {-0.111855984f, 1.73688626f, -0.625030339f, 0}, + {-0.0379119813f, -0.891268849f, 1.92918086f, 0}}; + + for (img = imgdata.image[0], row = 0; row < S.height; row++) + for (col = 0; col < S.width; col++, img += 4) { - out[0] += out_cam[0][c] * img[c]; - out[1] += out_cam[1][c] * img[c]; - out[2] += out_cam[2][c] * img[c]; + out[0] = out[1] = out[2] = 0; + int c; + for (c = 0; c < 3; c++) + { + out[0] += out_cam[0][c] * img[c]; + out[1] += out_cam[1][c] * img[c]; + out[2] += out_cam[2][c] * img[c]; + } + for (c = 0; c < 3; c++) + img[c] = CLIP((int)out[c]); + for (c = 0; c < P1.colors; c++) + t_hist[c][img[c] >> 3]++; } - for (c = 0; c < 3; c++) - img[c] = CLIP((int)out[c]); - for (c = 0; c < P1.colors; c++) - t_hist[c][img[c] >> 3]++; - } + } // from gamma_lut int(*save_hist)[LIBRAW_HISTOGRAM_SIZE] = diff -Nru darktable-4.4.2/src/external/OpenCL/CL/cl.h darktable-4.6.1/src/external/OpenCL/CL/cl.h --- darktable-4.4.2/src/external/OpenCL/CL/cl.h 2020-12-09 16:53:44.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/CL/cl.h 2023-04-17 08:34:39.000000000 +0000 @@ -141,6 +141,10 @@ #pragma warning( push ) #pragma warning( disable : 4201 ) /* Prevents warning about nameless struct/union in /W4 builds */ #endif +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc11-extensions" /* Prevents warning about nameless union being C11 extension*/ +#endif #if defined(_MSC_VER) && defined(__STDC__) /* Anonymous unions are not supported in /Za builds */ #else @@ -158,6 +162,9 @@ #if defined(_MSC_VER) && !defined(__STDC__) #pragma warning( pop ) #endif +#ifdef __clang__ +#pragma clang diagnostic pop +#endif #endif } cl_image_desc; @@ -942,6 +949,13 @@ /********************************************************************************************************/ +/* CL_NO_PROTOTYPES implies CL_NO_CORE_PROTOTYPES: */ +#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_CORE_PROTOTYPES) +#define CL_NO_CORE_PROTOTYPES +#endif + +#if !defined(CL_NO_CORE_PROTOTYPES) + /* Platform API */ extern CL_API_ENTRY cl_int CL_API_CALL clGetPlatformIDs(cl_uint num_entries, @@ -1311,11 +1325,11 @@ #ifdef CL_VERSION_2_2 -extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_2_2_DEPRECATED cl_int CL_API_CALL +extern CL_API_ENTRY CL_API_PREFIX__VERSION_2_2_DEPRECATED cl_int CL_API_CALL clSetProgramReleaseCallback(cl_program program, void (CL_CALLBACK * pfn_notify)(cl_program program, void * user_data), - void * user_data) CL_EXT_SUFFIX__VERSION_2_2_DEPRECATED; + void * user_data) CL_API_SUFFIX__VERSION_2_2_DEPRECATED; extern CL_API_ENTRY cl_int CL_API_CALL clSetProgramSpecializationConstant(cl_program program, @@ -1857,11 +1871,11 @@ clSetCommandQueueProperty(cl_command_queue command_queue, cl_command_queue_properties properties, cl_bool enable, - cl_command_queue_properties * old_properties) CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED; + cl_command_queue_properties * old_properties) CL_API_SUFFIX__VERSION_1_0_DEPRECATED; #endif /* CL_USE_DEPRECATED_OPENCL_1_0_APIS */ /* Deprecated OpenCL 1.1 APIs */ -extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL +extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL clCreateImage2D(cl_context context, cl_mem_flags flags, const cl_image_format * image_format, @@ -1869,9 +1883,9 @@ size_t image_height, size_t image_row_pitch, void * host_ptr, - cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; -extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL +extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL clCreateImage3D(cl_context context, cl_mem_flags flags, const cl_image_format * image_format, @@ -1881,46 +1895,48 @@ size_t image_row_pitch, size_t image_slice_pitch, void * host_ptr, - cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; -extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL +extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL clEnqueueMarker(cl_command_queue command_queue, - cl_event * event) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; + cl_event * event) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; -extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL +extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL clEnqueueWaitForEvents(cl_command_queue command_queue, cl_uint num_events, - const cl_event * event_list) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; + const cl_event * event_list) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; -extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL -clEnqueueBarrier(cl_command_queue command_queue) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; +extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL +clEnqueueBarrier(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; -extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL -clUnloadCompiler(void) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; +extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_int CL_API_CALL +clUnloadCompiler(void) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; -extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED void * CL_API_CALL -clGetExtensionFunctionAddress(const char * func_name) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; +extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED void * CL_API_CALL +clGetExtensionFunctionAddress(const char * func_name) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; /* Deprecated OpenCL 2.0 APIs */ -extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_2_DEPRECATED cl_command_queue CL_API_CALL +extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_2_DEPRECATED cl_command_queue CL_API_CALL clCreateCommandQueue(cl_context context, cl_device_id device, cl_command_queue_properties properties, - cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED; + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2_DEPRECATED; -extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_2_DEPRECATED cl_sampler CL_API_CALL +extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_2_DEPRECATED cl_sampler CL_API_CALL clCreateSampler(cl_context context, cl_bool normalized_coords, cl_addressing_mode addressing_mode, cl_filter_mode filter_mode, - cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED; + cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2_DEPRECATED; -extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_2_DEPRECATED cl_int CL_API_CALL +extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_2_DEPRECATED cl_int CL_API_CALL clEnqueueTask(cl_command_queue command_queue, cl_kernel kernel, cl_uint num_events_in_wait_list, const cl_event * event_wait_list, - cl_event * event) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED; + cl_event * event) CL_API_SUFFIX__VERSION_1_2_DEPRECATED; + +#endif /* !defined(CL_NO_CORE_PROTOTYPES) */ #ifdef __cplusplus } diff -Nru darktable-4.4.2/src/external/OpenCL/CL/cl_d3d10.h darktable-4.6.1/src/external/OpenCL/CL/cl_d3d10.h --- darktable-4.4.2/src/external/OpenCL/CL/cl_d3d10.h 2020-12-09 16:53:44.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/CL/cl_d3d10.h 2023-04-17 08:34:39.000000000 +0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. + * Copyright (c) 2008-2023 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,13 +14,18 @@ * limitations under the License. ******************************************************************************/ -#ifndef __OPENCL_CL_D3D10_H -#define __OPENCL_CL_D3D10_H +#ifndef OPENCL_CL_D3D10_H_ +#define OPENCL_CL_D3D10_H_ + +/* +** This header is generated from the Khronos OpenCL XML API Registry. +*/ #if defined(_MSC_VER) #if _MSC_VER >=1500 #pragma warning( push ) #pragma warning( disable : 4201 ) +#pragma warning( disable : 5105 ) #endif #endif #include <d3d10.h> @@ -29,100 +34,208 @@ #pragma warning( pop ) #endif #endif + #include <CL/cl.h> -#include <CL/cl_platform.h> + +/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) +#define CL_NO_EXTENSION_PROTOTYPES +#endif + +/* CL_NO_EXTENSION_PROTOTYPES implies + CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and + CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif #ifdef __cplusplus extern "C" { #endif -/****************************************************************************** - * cl_khr_d3d10_sharing */ +/*************************************************************** +* cl_khr_d3d10_sharing +***************************************************************/ #define cl_khr_d3d10_sharing 1 +#define CL_KHR_D3D10_SHARING_EXTENSION_NAME \ + "cl_khr_d3d10_sharing" -typedef cl_uint cl_d3d10_device_source_khr; -typedef cl_uint cl_d3d10_device_set_khr; - -/******************************************************************************/ +typedef cl_uint cl_d3d10_device_source_khr; +typedef cl_uint cl_d3d10_device_set_khr; -/* Error Codes */ -#define CL_INVALID_D3D10_DEVICE_KHR -1002 -#define CL_INVALID_D3D10_RESOURCE_KHR -1003 -#define CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR -1004 -#define CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR -1005 - -/* cl_d3d10_device_source_nv */ -#define CL_D3D10_DEVICE_KHR 0x4010 -#define CL_D3D10_DXGI_ADAPTER_KHR 0x4011 - -/* cl_d3d10_device_set_nv */ -#define CL_PREFERRED_DEVICES_FOR_D3D10_KHR 0x4012 -#define CL_ALL_DEVICES_FOR_D3D10_KHR 0x4013 +/* Error codes */ +#define CL_INVALID_D3D10_DEVICE_KHR -1002 +#define CL_INVALID_D3D10_RESOURCE_KHR -1003 +#define CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR -1004 +#define CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR -1005 + +/* cl_d3d10_device_source_khr */ +#define CL_D3D10_DEVICE_KHR 0x4010 +#define CL_D3D10_DXGI_ADAPTER_KHR 0x4011 + +/* cl_d3d10_device_set_khr */ +#define CL_PREFERRED_DEVICES_FOR_D3D10_KHR 0x4012 +#define CL_ALL_DEVICES_FOR_D3D10_KHR 0x4013 /* cl_context_info */ -#define CL_CONTEXT_D3D10_DEVICE_KHR 0x4014 -#define CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR 0x402C +#define CL_CONTEXT_D3D10_DEVICE_KHR 0x4014 +#define CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR 0x402C /* cl_mem_info */ -#define CL_MEM_D3D10_RESOURCE_KHR 0x4015 +#define CL_MEM_D3D10_RESOURCE_KHR 0x4015 /* cl_image_info */ -#define CL_IMAGE_D3D10_SUBRESOURCE_KHR 0x4016 +#define CL_IMAGE_D3D10_SUBRESOURCE_KHR 0x4016 /* cl_command_type */ -#define CL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHR 0x4017 -#define CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR 0x4018 +#define CL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHR 0x4017 +#define CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR 0x4018 -/******************************************************************************/ -typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromD3D10KHR_fn)( - cl_platform_id platform, +typedef cl_int (CL_API_CALL * +clGetDeviceIDsFromD3D10KHR_fn)( + cl_platform_id platform, cl_d3d10_device_source_khr d3d_device_source, - void * d3d_object, - cl_d3d10_device_set_khr d3d_device_set, - cl_uint num_entries, - cl_device_id * devices, - cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_0; - -typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10BufferKHR_fn)( - cl_context context, - cl_mem_flags flags, - ID3D10Buffer * resource, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10Texture2DKHR_fn)( - cl_context context, - cl_mem_flags flags, - ID3D10Texture2D * resource, - UINT subresource, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10Texture3DKHR_fn)( - cl_context context, - cl_mem_flags flags, - ID3D10Texture3D * resource, - UINT subresource, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; + void* d3d_object, + cl_d3d10_device_set_khr d3d_device_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_0; + +typedef cl_mem (CL_API_CALL * +clCreateFromD3D10BufferKHR_fn)( + cl_context context, + cl_mem_flags flags, + ID3D10Buffer* resource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +typedef cl_mem (CL_API_CALL * +clCreateFromD3D10Texture2DKHR_fn)( + cl_context context, + cl_mem_flags flags, + ID3D10Texture2D* resource, + UINT subresource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +typedef cl_mem (CL_API_CALL * +clCreateFromD3D10Texture3DKHR_fn)( + cl_context context, + cl_mem_flags flags, + ID3D10Texture3D* resource, + UINT subresource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireD3D10ObjectsKHR_fn)( +typedef cl_int (CL_API_CALL * +clEnqueueAcquireD3D10ObjectsKHR_fn)( cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_0; + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseD3D10ObjectsKHR_fn)( +typedef cl_int (CL_API_CALL * +clEnqueueReleaseD3D10ObjectsKHR_fn)( cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_0; + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_0; + +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetDeviceIDsFromD3D10KHR( + cl_platform_id platform, + cl_d3d10_device_source_khr d3d_device_source, + void* d3d_object, + cl_d3d10_device_set_khr d3d_device_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromD3D10BufferKHR( + cl_context context, + cl_mem_flags flags, + ID3D10Buffer* resource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromD3D10Texture2DKHR( + cl_context context, + cl_mem_flags flags, + ID3D10Texture2D* resource, + UINT subresource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromD3D10Texture3DKHR( + cl_context context, + cl_mem_flags flags, + ID3D10Texture3D* resource, + UINT subresource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueAcquireD3D10ObjectsKHR( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseD3D10ObjectsKHR( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_0; + +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_intel_sharing_format_query_d3d10 +***************************************************************/ +#define cl_intel_sharing_format_query_d3d10 1 +#define CL_INTEL_SHARING_FORMAT_QUERY_D3D10_EXTENSION_NAME \ + "cl_intel_sharing_format_query_d3d10" + +/* when cl_khr_d3d10_sharing is supported */ + +typedef cl_int (CL_API_CALL * +clGetSupportedD3D10TextureFormatsINTEL_fn)( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint num_entries, + DXGI_FORMAT* d3d10_formats, + cl_uint* num_texture_formats) ; + +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSupportedD3D10TextureFormatsINTEL( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint num_entries, + DXGI_FORMAT* d3d10_formats, + cl_uint* num_texture_formats) ; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ #ifdef __cplusplus } #endif -#endif /* __OPENCL_CL_D3D10_H */ - +#endif /* OPENCL_CL_D3D10_H_ */ diff -Nru darktable-4.4.2/src/external/OpenCL/CL/cl_d3d11.h darktable-4.6.1/src/external/OpenCL/CL/cl_d3d11.h --- darktable-4.4.2/src/external/OpenCL/CL/cl_d3d11.h 2020-12-09 16:53:44.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/CL/cl_d3d11.h 2023-04-17 08:34:39.000000000 +0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. + * Copyright (c) 2008-2023 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,13 +14,18 @@ * limitations under the License. ******************************************************************************/ -#ifndef __OPENCL_CL_D3D11_H -#define __OPENCL_CL_D3D11_H +#ifndef OPENCL_CL_D3D11_H_ +#define OPENCL_CL_D3D11_H_ + +/* +** This header is generated from the Khronos OpenCL XML API Registry. +*/ #if defined(_MSC_VER) #if _MSC_VER >=1500 #pragma warning( push ) #pragma warning( disable : 4201 ) +#pragma warning( disable : 5105 ) #endif #endif #include <d3d11.h> @@ -29,100 +34,210 @@ #pragma warning( pop ) #endif #endif + #include <CL/cl.h> -#include <CL/cl_platform.h> + +/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) +#define CL_NO_EXTENSION_PROTOTYPES +#endif + +/* CL_NO_EXTENSION_PROTOTYPES implies + CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and + CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif #ifdef __cplusplus extern "C" { #endif -/****************************************************************************** - * cl_khr_d3d11_sharing */ +/*************************************************************** +* cl_khr_d3d11_sharing +***************************************************************/ #define cl_khr_d3d11_sharing 1 +#define CL_KHR_D3D11_SHARING_EXTENSION_NAME \ + "cl_khr_d3d11_sharing" -typedef cl_uint cl_d3d11_device_source_khr; -typedef cl_uint cl_d3d11_device_set_khr; - -/******************************************************************************/ +typedef cl_uint cl_d3d11_device_source_khr; +typedef cl_uint cl_d3d11_device_set_khr; -/* Error Codes */ -#define CL_INVALID_D3D11_DEVICE_KHR -1006 -#define CL_INVALID_D3D11_RESOURCE_KHR -1007 -#define CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR -1008 -#define CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR -1009 - -/* cl_d3d11_device_source */ -#define CL_D3D11_DEVICE_KHR 0x4019 -#define CL_D3D11_DXGI_ADAPTER_KHR 0x401A - -/* cl_d3d11_device_set */ -#define CL_PREFERRED_DEVICES_FOR_D3D11_KHR 0x401B -#define CL_ALL_DEVICES_FOR_D3D11_KHR 0x401C +/* Error codes */ +#define CL_INVALID_D3D11_DEVICE_KHR -1006 +#define CL_INVALID_D3D11_RESOURCE_KHR -1007 +#define CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR -1008 +#define CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR -1009 + +/* cl_d3d11_device_source_khr */ +#define CL_D3D11_DEVICE_KHR 0x4019 +#define CL_D3D11_DXGI_ADAPTER_KHR 0x401A + +/* cl_d3d11_device_set_khr */ +#define CL_PREFERRED_DEVICES_FOR_D3D11_KHR 0x401B +#define CL_ALL_DEVICES_FOR_D3D11_KHR 0x401C /* cl_context_info */ -#define CL_CONTEXT_D3D11_DEVICE_KHR 0x401D -#define CL_CONTEXT_D3D11_PREFER_SHARED_RESOURCES_KHR 0x402D +#define CL_CONTEXT_D3D11_DEVICE_KHR 0x401D +#define CL_CONTEXT_D3D11_PREFER_SHARED_RESOURCES_KHR 0x402D /* cl_mem_info */ -#define CL_MEM_D3D11_RESOURCE_KHR 0x401E +#define CL_MEM_D3D11_RESOURCE_KHR 0x401E /* cl_image_info */ -#define CL_IMAGE_D3D11_SUBRESOURCE_KHR 0x401F +#define CL_IMAGE_D3D11_SUBRESOURCE_KHR 0x401F /* cl_command_type */ -#define CL_COMMAND_ACQUIRE_D3D11_OBJECTS_KHR 0x4020 -#define CL_COMMAND_RELEASE_D3D11_OBJECTS_KHR 0x4021 +#define CL_COMMAND_ACQUIRE_D3D11_OBJECTS_KHR 0x4020 +#define CL_COMMAND_RELEASE_D3D11_OBJECTS_KHR 0x4021 -/******************************************************************************/ -typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromD3D11KHR_fn)( - cl_platform_id platform, +typedef cl_int (CL_API_CALL * +clGetDeviceIDsFromD3D11KHR_fn)( + cl_platform_id platform, cl_d3d11_device_source_khr d3d_device_source, - void * d3d_object, - cl_d3d11_device_set_khr d3d_device_set, - cl_uint num_entries, - cl_device_id * devices, - cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_2; - -typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11BufferKHR_fn)( - cl_context context, - cl_mem_flags flags, - ID3D11Buffer * resource, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11Texture2DKHR_fn)( - cl_context context, - cl_mem_flags flags, - ID3D11Texture2D * resource, - UINT subresource, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11Texture3DKHR_fn)( - cl_context context, - cl_mem_flags flags, - ID3D11Texture3D * resource, - UINT subresource, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; + void* d3d_object, + cl_d3d11_device_set_khr d3d_device_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_mem (CL_API_CALL * +clCreateFromD3D11BufferKHR_fn)( + cl_context context, + cl_mem_flags flags, + ID3D11Buffer* resource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_mem (CL_API_CALL * +clCreateFromD3D11Texture2DKHR_fn)( + cl_context context, + cl_mem_flags flags, + ID3D11Texture2D* resource, + UINT subresource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_mem (CL_API_CALL * +clCreateFromD3D11Texture3DKHR_fn)( + cl_context context, + cl_mem_flags flags, + ID3D11Texture3D* resource, + UINT subresource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireD3D11ObjectsKHR_fn)( +typedef cl_int (CL_API_CALL * +clEnqueueAcquireD3D11ObjectsKHR_fn)( cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseD3D11ObjectsKHR_fn)( +typedef cl_int (CL_API_CALL * +clEnqueueReleaseD3D11ObjectsKHR_fn)( cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetDeviceIDsFromD3D11KHR( + cl_platform_id platform, + cl_d3d11_device_source_khr d3d_device_source, + void* d3d_object, + cl_d3d11_device_set_khr d3d_device_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromD3D11BufferKHR( + cl_context context, + cl_mem_flags flags, + ID3D11Buffer* resource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromD3D11Texture2DKHR( + cl_context context, + cl_mem_flags flags, + ID3D11Texture2D* resource, + UINT subresource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromD3D11Texture3DKHR( + cl_context context, + cl_mem_flags flags, + ID3D11Texture3D* resource, + UINT subresource, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueAcquireD3D11ObjectsKHR( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseD3D11ObjectsKHR( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_intel_sharing_format_query_d3d11 +***************************************************************/ +#define cl_intel_sharing_format_query_d3d11 1 +#define CL_INTEL_SHARING_FORMAT_QUERY_D3D11_EXTENSION_NAME \ + "cl_intel_sharing_format_query_d3d11" + +/* when cl_khr_d3d11_sharing is supported */ + +typedef cl_int (CL_API_CALL * +clGetSupportedD3D11TextureFormatsINTEL_fn)( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint plane, + cl_uint num_entries, + DXGI_FORMAT* d3d11_formats, + cl_uint* num_texture_formats) ; + +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSupportedD3D11TextureFormatsINTEL( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint plane, + cl_uint num_entries, + DXGI_FORMAT* d3d11_formats, + cl_uint* num_texture_formats) ; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ #ifdef __cplusplus } #endif -#endif /* __OPENCL_CL_D3D11_H */ - +#endif /* OPENCL_CL_D3D11_H_ */ diff -Nru darktable-4.4.2/src/external/OpenCL/CL/cl_dx9_media_sharing.h darktable-4.6.1/src/external/OpenCL/CL/cl_dx9_media_sharing.h --- darktable-4.4.2/src/external/OpenCL/CL/cl_dx9_media_sharing.h 2020-12-09 16:53:44.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/CL/cl_dx9_media_sharing.h 2023-04-17 08:34:39.000000000 +0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. + * Copyright (c) 2008-2023 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,105 +14,337 @@ * limitations under the License. ******************************************************************************/ -#ifndef __OPENCL_CL_DX9_MEDIA_SHARING_H -#define __OPENCL_CL_DX9_MEDIA_SHARING_H +#ifndef OPENCL_CL_DX9_MEDIA_SHARING_H_ +#define OPENCL_CL_DX9_MEDIA_SHARING_H_ + +/* +** This header is generated from the Khronos OpenCL XML API Registry. +*/ + +#if defined(_WIN32) +#if defined(_MSC_VER) +#if _MSC_VER >=1500 +#pragma warning( push ) +#pragma warning( disable : 4201 ) +#pragma warning( disable : 5105 ) +#endif +#endif +#include <d3d9.h> +#if defined(_MSC_VER) +#if _MSC_VER >=1500 +#pragma warning( pop ) +#endif +#endif +#endif #include <CL/cl.h> -#include <CL/cl_platform.h> + +/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) +#define CL_NO_EXTENSION_PROTOTYPES +#endif + +/* CL_NO_EXTENSION_PROTOTYPES implies + CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and + CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif #ifdef __cplusplus extern "C" { #endif -/******************************************************************************/ -/* cl_khr_dx9_media_sharing */ +/*************************************************************** +* cl_khr_dx9_media_sharing +***************************************************************/ #define cl_khr_dx9_media_sharing 1 +#define CL_KHR_DX9_MEDIA_SHARING_EXTENSION_NAME \ + "cl_khr_dx9_media_sharing" typedef cl_uint cl_dx9_media_adapter_type_khr; typedef cl_uint cl_dx9_media_adapter_set_khr; - + #if defined(_WIN32) -#include <d3d9.h> -typedef struct _cl_dx9_surface_info_khr -{ - IDirect3DSurface9 *resource; +typedef struct _cl_dx9_surface_info_khr { + IDirect3DSurface9* resource; HANDLE shared_handle; } cl_dx9_surface_info_khr; -#endif - -/******************************************************************************/ +#endif /* defined(_WIN32) */ -/* Error Codes */ -#define CL_INVALID_DX9_MEDIA_ADAPTER_KHR -1010 -#define CL_INVALID_DX9_MEDIA_SURFACE_KHR -1011 -#define CL_DX9_MEDIA_SURFACE_ALREADY_ACQUIRED_KHR -1012 -#define CL_DX9_MEDIA_SURFACE_NOT_ACQUIRED_KHR -1013 +/* Error codes */ +#define CL_INVALID_DX9_MEDIA_ADAPTER_KHR -1010 +#define CL_INVALID_DX9_MEDIA_SURFACE_KHR -1011 +#define CL_DX9_MEDIA_SURFACE_ALREADY_ACQUIRED_KHR -1012 +#define CL_DX9_MEDIA_SURFACE_NOT_ACQUIRED_KHR -1013 /* cl_media_adapter_type_khr */ -#define CL_ADAPTER_D3D9_KHR 0x2020 -#define CL_ADAPTER_D3D9EX_KHR 0x2021 -#define CL_ADAPTER_DXVA_KHR 0x2022 +#define CL_ADAPTER_D3D9_KHR 0x2020 +#define CL_ADAPTER_D3D9EX_KHR 0x2021 +#define CL_ADAPTER_DXVA_KHR 0x2022 /* cl_media_adapter_set_khr */ -#define CL_PREFERRED_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2023 -#define CL_ALL_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2024 +#define CL_PREFERRED_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2023 +#define CL_ALL_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2024 /* cl_context_info */ -#define CL_CONTEXT_ADAPTER_D3D9_KHR 0x2025 -#define CL_CONTEXT_ADAPTER_D3D9EX_KHR 0x2026 -#define CL_CONTEXT_ADAPTER_DXVA_KHR 0x2027 +#define CL_CONTEXT_ADAPTER_D3D9_KHR 0x2025 +#define CL_CONTEXT_ADAPTER_D3D9EX_KHR 0x2026 +#define CL_CONTEXT_ADAPTER_DXVA_KHR 0x2027 /* cl_mem_info */ -#define CL_MEM_DX9_MEDIA_ADAPTER_TYPE_KHR 0x2028 -#define CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR 0x2029 +#define CL_MEM_DX9_MEDIA_ADAPTER_TYPE_KHR 0x2028 +#define CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR 0x2029 /* cl_image_info */ -#define CL_IMAGE_DX9_MEDIA_PLANE_KHR 0x202A +#define CL_IMAGE_DX9_MEDIA_PLANE_KHR 0x202A /* cl_command_type */ -#define CL_COMMAND_ACQUIRE_DX9_MEDIA_SURFACES_KHR 0x202B -#define CL_COMMAND_RELEASE_DX9_MEDIA_SURFACES_KHR 0x202C +#define CL_COMMAND_ACQUIRE_DX9_MEDIA_SURFACES_KHR 0x202B +#define CL_COMMAND_RELEASE_DX9_MEDIA_SURFACES_KHR 0x202C -/******************************************************************************/ -typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromDX9MediaAdapterKHR_fn)( - cl_platform_id platform, - cl_uint num_media_adapters, - cl_dx9_media_adapter_type_khr * media_adapter_type, - void * media_adapters, - cl_dx9_media_adapter_set_khr media_adapter_set, - cl_uint num_entries, - cl_device_id * devices, - cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_2; - -typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromDX9MediaSurfaceKHR_fn)( - cl_context context, - cl_mem_flags flags, +typedef cl_int (CL_API_CALL * +clGetDeviceIDsFromDX9MediaAdapterKHR_fn)( + cl_platform_id platform, + cl_uint num_media_adapters, + cl_dx9_media_adapter_type_khr* media_adapter_type, + void* media_adapters, + cl_dx9_media_adapter_set_khr media_adapter_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_mem (CL_API_CALL * +clCreateFromDX9MediaSurfaceKHR_fn)( + cl_context context, + cl_mem_flags flags, cl_dx9_media_adapter_type_khr adapter_type, - void * surface_info, - cl_uint plane, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; - -typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireDX9MediaSurfacesKHR_fn)( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; - -typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseDX9MediaSurfacesKHR_fn)( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_2; + void* surface_info, + cl_uint plane, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clEnqueueAcquireDX9MediaSurfacesKHR_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clEnqueueReleaseDX9MediaSurfacesKHR_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetDeviceIDsFromDX9MediaAdapterKHR( + cl_platform_id platform, + cl_uint num_media_adapters, + cl_dx9_media_adapter_type_khr* media_adapter_type, + void* media_adapters, + cl_dx9_media_adapter_set_khr media_adapter_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromDX9MediaSurfaceKHR( + cl_context context, + cl_mem_flags flags, + cl_dx9_media_adapter_type_khr adapter_type, + void* surface_info, + cl_uint plane, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueAcquireDX9MediaSurfacesKHR( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseDX9MediaSurfacesKHR( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_intel_dx9_media_sharing +***************************************************************/ +#define cl_intel_dx9_media_sharing 1 +#define CL_INTEL_DX9_MEDIA_SHARING_EXTENSION_NAME \ + "cl_intel_dx9_media_sharing" + +typedef cl_uint cl_dx9_device_source_intel; +typedef cl_uint cl_dx9_device_set_intel; + +/* Error codes */ +#define CL_INVALID_DX9_DEVICE_INTEL -1010 +#define CL_INVALID_DX9_RESOURCE_INTEL -1011 +#define CL_DX9_RESOURCE_ALREADY_ACQUIRED_INTEL -1012 +#define CL_DX9_RESOURCE_NOT_ACQUIRED_INTEL -1013 + +/* cl_dx9_device_source_intel */ +#define CL_D3D9_DEVICE_INTEL 0x4022 +#define CL_D3D9EX_DEVICE_INTEL 0x4070 +#define CL_DXVA_DEVICE_INTEL 0x4071 + +/* cl_dx9_device_set_intel */ +#define CL_PREFERRED_DEVICES_FOR_DX9_INTEL 0x4024 +#define CL_ALL_DEVICES_FOR_DX9_INTEL 0x4025 + +/* cl_context_info */ +#define CL_CONTEXT_D3D9_DEVICE_INTEL 0x4026 +#define CL_CONTEXT_D3D9EX_DEVICE_INTEL 0x4072 +#define CL_CONTEXT_DXVA_DEVICE_INTEL 0x4073 + +/* cl_mem_info */ +#define CL_MEM_DX9_RESOURCE_INTEL 0x4027 +#define CL_MEM_DX9_SHARED_HANDLE_INTEL 0x4074 + +/* cl_image_info */ +#define CL_IMAGE_DX9_PLANE_INTEL 0x4075 + +/* cl_command_type */ +#define CL_COMMAND_ACQUIRE_DX9_OBJECTS_INTEL 0x402A +#define CL_COMMAND_RELEASE_DX9_OBJECTS_INTEL 0x402B + + +typedef cl_int (CL_API_CALL * +clGetDeviceIDsFromDX9INTEL_fn)( + cl_platform_id platform, + cl_dx9_device_source_intel dx9_device_source, + void* dx9_object, + cl_dx9_device_set_intel dx9_device_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; + +typedef cl_mem (CL_API_CALL * +clCreateFromDX9MediaSurfaceINTEL_fn)( + cl_context context, + cl_mem_flags flags, + IDirect3DSurface9* resource, + HANDLE sharedHandle, + UINT plane, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; + +typedef cl_int (CL_API_CALL * +clEnqueueAcquireDX9ObjectsINTEL_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_1; + +typedef cl_int (CL_API_CALL * +clEnqueueReleaseDX9ObjectsINTEL_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_1; + +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetDeviceIDsFromDX9INTEL( + cl_platform_id platform, + cl_dx9_device_source_intel dx9_device_source, + void* dx9_object, + cl_dx9_device_set_intel dx9_device_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromDX9MediaSurfaceINTEL( + cl_context context, + cl_mem_flags flags, + IDirect3DSurface9* resource, + HANDLE sharedHandle, + UINT plane, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueAcquireDX9ObjectsINTEL( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_1; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseDX9ObjectsINTEL( + cl_command_queue command_queue, + cl_uint num_objects, + cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_1; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_intel_sharing_format_query_dx9 +***************************************************************/ +#define cl_intel_sharing_format_query_dx9 1 +#define CL_INTEL_SHARING_FORMAT_QUERY_DX9_EXTENSION_NAME \ + "cl_intel_sharing_format_query_dx9" + +/* when cl_khr_dx9_media_sharing or cl_intel_dx9_media_sharing is supported */ + +typedef cl_int (CL_API_CALL * +clGetSupportedDX9MediaSurfaceFormatsINTEL_fn)( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint plane, + cl_uint num_entries, + D3DFORMAT* dx9_formats, + cl_uint* num_surface_formats) ; + +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSupportedDX9MediaSurfaceFormatsINTEL( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint plane, + cl_uint num_entries, + D3DFORMAT* dx9_formats, + cl_uint* num_surface_formats) ; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ #ifdef __cplusplus } #endif -#endif /* __OPENCL_CL_DX9_MEDIA_SHARING_H */ - +#endif /* OPENCL_CL_DX9_MEDIA_SHARING_H_ */ diff -Nru darktable-4.4.2/src/external/OpenCL/CL/cl_dx9_media_sharing_intel.h darktable-4.6.1/src/external/OpenCL/CL/cl_dx9_media_sharing_intel.h --- darktable-4.4.2/src/external/OpenCL/CL/cl_dx9_media_sharing_intel.h 2020-12-09 16:53:44.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/CL/cl_dx9_media_sharing_intel.h 2023-04-17 08:34:39.000000000 +0000 @@ -13,158 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. ******************************************************************************/ -/*****************************************************************************\ - -Copyright (c) 2013-2019 Intel Corporation All Rights Reserved. - -THESE MATERIALS ARE PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THESE -MATERIALS, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -File Name: cl_dx9_media_sharing_intel.h - -Abstract: - -Notes: - -\*****************************************************************************/ - -#ifndef __OPENCL_CL_DX9_MEDIA_SHARING_INTEL_H -#define __OPENCL_CL_DX9_MEDIA_SHARING_INTEL_H - -#include <CL/cl.h> -#include <CL/cl_platform.h> -#include <d3d9.h> -#include <dxvahd.h> -#include <wtypes.h> -#include <d3d9types.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/*************************************** -* cl_intel_dx9_media_sharing extension * -****************************************/ - -#define cl_intel_dx9_media_sharing 1 - -typedef cl_uint cl_dx9_device_source_intel; -typedef cl_uint cl_dx9_device_set_intel; - -/* error codes */ -#define CL_INVALID_DX9_DEVICE_INTEL -1010 -#define CL_INVALID_DX9_RESOURCE_INTEL -1011 -#define CL_DX9_RESOURCE_ALREADY_ACQUIRED_INTEL -1012 -#define CL_DX9_RESOURCE_NOT_ACQUIRED_INTEL -1013 - -/* cl_dx9_device_source_intel */ -#define CL_D3D9_DEVICE_INTEL 0x4022 -#define CL_D3D9EX_DEVICE_INTEL 0x4070 -#define CL_DXVA_DEVICE_INTEL 0x4071 - -/* cl_dx9_device_set_intel */ -#define CL_PREFERRED_DEVICES_FOR_DX9_INTEL 0x4024 -#define CL_ALL_DEVICES_FOR_DX9_INTEL 0x4025 - -/* cl_context_info */ -#define CL_CONTEXT_D3D9_DEVICE_INTEL 0x4026 -#define CL_CONTEXT_D3D9EX_DEVICE_INTEL 0x4072 -#define CL_CONTEXT_DXVA_DEVICE_INTEL 0x4073 - -/* cl_mem_info */ -#define CL_MEM_DX9_RESOURCE_INTEL 0x4027 -#define CL_MEM_DX9_SHARED_HANDLE_INTEL 0x4074 - -/* cl_image_info */ -#define CL_IMAGE_DX9_PLANE_INTEL 0x4075 - -/* cl_command_type */ -#define CL_COMMAND_ACQUIRE_DX9_OBJECTS_INTEL 0x402A -#define CL_COMMAND_RELEASE_DX9_OBJECTS_INTEL 0x402B -/******************************************************************************/ - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetDeviceIDsFromDX9INTEL( - cl_platform_id platform, - cl_dx9_device_source_intel dx9_device_source, - void* dx9_object, - cl_dx9_device_set_intel dx9_device_set, - cl_uint num_entries, - cl_device_id* devices, - cl_uint* num_devices) CL_EXT_SUFFIX__VERSION_1_1; - -typedef CL_API_ENTRY cl_int (CL_API_CALL* clGetDeviceIDsFromDX9INTEL_fn)( - cl_platform_id platform, - cl_dx9_device_source_intel dx9_device_source, - void* dx9_object, - cl_dx9_device_set_intel dx9_device_set, - cl_uint num_entries, - cl_device_id* devices, - cl_uint* num_devices) CL_EXT_SUFFIX__VERSION_1_1; - -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromDX9MediaSurfaceINTEL( - cl_context context, - cl_mem_flags flags, - IDirect3DSurface9* resource, - HANDLE sharedHandle, - UINT plane, - cl_int* errcode_ret) CL_EXT_SUFFIX__VERSION_1_1; - -typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromDX9MediaSurfaceINTEL_fn)( - cl_context context, - cl_mem_flags flags, - IDirect3DSurface9* resource, - HANDLE sharedHandle, - UINT plane, - cl_int* errcode_ret) CL_EXT_SUFFIX__VERSION_1_1; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueAcquireDX9ObjectsINTEL( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem* mem_objects, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_EXT_SUFFIX__VERSION_1_1; - -typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireDX9ObjectsINTEL_fn)( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem* mem_objects, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_EXT_SUFFIX__VERSION_1_1; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReleaseDX9ObjectsINTEL( - cl_command_queue command_queue, - cl_uint num_objects, - cl_mem* mem_objects, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_EXT_SUFFIX__VERSION_1_1; - -typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseDX9ObjectsINTEL_fn)( - cl_command_queue command_queue, - cl_uint num_objects, - cl_mem* mem_objects, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_EXT_SUFFIX__VERSION_1_1; - -#ifdef __cplusplus -} -#endif - -#endif /* __OPENCL_CL_DX9_MEDIA_SHARING_INTEL_H */ +#include <CL/cl_dx9_media_sharing.h> +#pragma message("The Intel DX9 media sharing extensions have been moved into cl_dx9_media_sharing.h. Please include cl_dx9_media_sharing.h directly.") diff -Nru darktable-4.4.2/src/external/OpenCL/CL/cl_egl.h darktable-4.6.1/src/external/OpenCL/CL/cl_egl.h --- darktable-4.4.2/src/external/OpenCL/CL/cl_egl.h 2020-12-09 16:53:44.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/CL/cl_egl.h 2023-04-17 08:34:39.000000000 +0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. + * Copyright (c) 2008-2023 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,107 +14,154 @@ * limitations under the License. ******************************************************************************/ -#ifndef __OPENCL_CL_EGL_H -#define __OPENCL_CL_EGL_H +#ifndef OPENCL_CL_EGL_H_ +#define OPENCL_CL_EGL_H_ + +/* +** This header is generated from the Khronos OpenCL XML API Registry. +*/ #include <CL/cl.h> +/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) +#define CL_NO_EXTENSION_PROTOTYPES +#endif + +/* CL_NO_EXTENSION_PROTOTYPES implies + CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and + CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif + #ifdef __cplusplus extern "C" { #endif +/*************************************************************** +* cl_khr_egl_image +***************************************************************/ +#define cl_khr_egl_image 1 +#define CL_KHR_EGL_IMAGE_EXTENSION_NAME \ + "cl_khr_egl_image" /* Command type for events created with clEnqueueAcquireEGLObjectsKHR */ -#define CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR 0x202F -#define CL_COMMAND_ACQUIRE_EGL_OBJECTS_KHR 0x202D -#define CL_COMMAND_RELEASE_EGL_OBJECTS_KHR 0x202E +#define CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR 0x202F +#define CL_COMMAND_ACQUIRE_EGL_OBJECTS_KHR 0x202D +#define CL_COMMAND_RELEASE_EGL_OBJECTS_KHR 0x202E /* Error type for clCreateFromEGLImageKHR */ -#define CL_INVALID_EGL_OBJECT_KHR -1093 -#define CL_EGL_RESOURCE_NOT_ACQUIRED_KHR -1092 +#define CL_INVALID_EGL_OBJECT_KHR -1093 +#define CL_EGL_RESOURCE_NOT_ACQUIRED_KHR -1092 /* CLeglImageKHR is an opaque handle to an EGLImage */ -typedef void* CLeglImageKHR; +typedef void* CLeglImageKHR; /* CLeglDisplayKHR is an opaque handle to an EGLDisplay */ -typedef void* CLeglDisplayKHR; - -/* CLeglSyncKHR is an opaque handle to an EGLSync object */ -typedef void* CLeglSyncKHR; +typedef void* CLeglDisplayKHR; /* properties passed to clCreateFromEGLImageKHR */ -typedef intptr_t cl_egl_image_properties_khr; +typedef intptr_t cl_egl_image_properties_khr; -#define cl_khr_egl_image 1 +typedef cl_mem (CL_API_CALL * +clCreateFromEGLImageKHR_fn)( + cl_context context, + CLeglDisplayKHR egldisplay, + CLeglImageKHR eglimage, + cl_mem_flags flags, + const cl_egl_image_properties_khr* properties, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromEGLImageKHR(cl_context context, - CLeglDisplayKHR egldisplay, - CLeglImageKHR eglimage, - cl_mem_flags flags, - const cl_egl_image_properties_khr * properties, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromEGLImageKHR_fn)( - cl_context context, - CLeglDisplayKHR egldisplay, - CLeglImageKHR eglimage, - cl_mem_flags flags, - const cl_egl_image_properties_khr * properties, - cl_int * errcode_ret); +typedef cl_int (CL_API_CALL * +clEnqueueAcquireEGLObjectsKHR_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_0; + +typedef cl_int (CL_API_CALL * +clEnqueueReleaseEGLObjectsKHR_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_0; + +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromEGLImageKHR( + cl_context context, + CLeglDisplayKHR egldisplay, + CLeglImageKHR eglimage, + cl_mem_flags flags, + const cl_egl_image_properties_khr* properties, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueAcquireEGLObjectsKHR(cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_0; +clEnqueueAcquireEGLObjectsKHR( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireEGLObjectsKHR_fn)( +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseEGLObjectsKHR( cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event); + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_0; + +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_khr_egl_event +***************************************************************/ +#define cl_khr_egl_event 1 +#define CL_KHR_EGL_EVENT_EXTENSION_NAME \ + "cl_khr_egl_event" +/* CLeglDisplayKHR is an opaque handle to an EGLDisplay */ +/* type CLeglDisplayKHR */ -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReleaseEGLObjectsKHR(cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_0; +/* CLeglSyncKHR is an opaque handle to an EGLSync object */ +typedef void* CLeglSyncKHR; -typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseEGLObjectsKHR_fn)( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event); +typedef cl_event (CL_API_CALL * +clCreateEventFromEGLSyncKHR_fn)( + cl_context context, + CLeglSyncKHR sync, + CLeglDisplayKHR display, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -#define cl_khr_egl_event 1 +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_event CL_API_CALL -clCreateEventFromEGLSyncKHR(cl_context context, - CLeglSyncKHR sync, - CLeglDisplayKHR display, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef CL_API_ENTRY cl_event (CL_API_CALL *clCreateEventFromEGLSyncKHR_fn)( - cl_context context, - CLeglSyncKHR sync, +clCreateEventFromEGLSyncKHR( + cl_context context, + CLeglSyncKHR sync, CLeglDisplayKHR display, - cl_int * errcode_ret); + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ #ifdef __cplusplus } #endif -#endif /* __OPENCL_CL_EGL_H */ +#endif /* OPENCL_CL_EGL_H_ */ diff -Nru darktable-4.4.2/src/external/OpenCL/CL/cl_ext.h darktable-4.6.1/src/external/OpenCL/CL/cl_ext.h --- darktable-4.4.2/src/external/OpenCL/CL/cl_ext.h 2020-12-09 16:53:44.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/CL/cl_ext.h 2023-04-17 08:34:39.000000000 +0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. + * Copyright (c) 2008-2023 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,635 +14,1373 @@ * limitations under the License. ******************************************************************************/ -/* cl_ext.h contains OpenCL extensions which don't have external */ -/* (OpenGL, D3D) dependencies. */ +#ifndef OPENCL_CL_EXT_H_ +#define OPENCL_CL_EXT_H_ -#ifndef __CL_EXT_H -#define __CL_EXT_H +/* +** This header is generated from the Khronos OpenCL XML API Registry. +*/ + +#include <CL/cl.h> + +/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) +#define CL_NO_EXTENSION_PROTOTYPES +#endif + +/* CL_NO_EXTENSION_PROTOTYPES implies + CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and + CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif #ifdef __cplusplus extern "C" { #endif -#include <CL/cl.h> +/*************************************************************** +* cl_khr_command_buffer +***************************************************************/ +#define cl_khr_command_buffer 1 +#define CL_KHR_COMMAND_BUFFER_EXTENSION_NAME \ + "cl_khr_command_buffer" + +typedef cl_bitfield cl_device_command_buffer_capabilities_khr; +typedef struct _cl_command_buffer_khr* cl_command_buffer_khr; +typedef cl_uint cl_sync_point_khr; +typedef cl_uint cl_command_buffer_info_khr; +typedef cl_uint cl_command_buffer_state_khr; +typedef cl_properties cl_command_buffer_properties_khr; +typedef cl_bitfield cl_command_buffer_flags_khr; +typedef cl_properties cl_ndrange_kernel_command_properties_khr; +typedef struct _cl_mutable_command_khr* cl_mutable_command_khr; -/* cl_khr_fp64 extension - no extension #define since it has no functions */ -/* CL_DEVICE_DOUBLE_FP_CONFIG is defined in CL.h for OpenCL >= 120 */ +/* cl_device_info */ +#define CL_DEVICE_COMMAND_BUFFER_CAPABILITIES_KHR 0x12A9 +#define CL_DEVICE_COMMAND_BUFFER_REQUIRED_QUEUE_PROPERTIES_KHR 0x12AA -#if CL_TARGET_OPENCL_VERSION <= 110 -#define CL_DEVICE_DOUBLE_FP_CONFIG 0x1032 -#endif +/* cl_device_command_buffer_capabilities_khr - bitfield */ +#define CL_COMMAND_BUFFER_CAPABILITY_KERNEL_PRINTF_KHR (1 << 0) +#define CL_COMMAND_BUFFER_CAPABILITY_DEVICE_SIDE_ENQUEUE_KHR (1 << 1) +#define CL_COMMAND_BUFFER_CAPABILITY_SIMULTANEOUS_USE_KHR (1 << 2) +#define CL_COMMAND_BUFFER_CAPABILITY_OUT_OF_ORDER_KHR (1 << 3) + +/* cl_command_buffer_properties_khr */ +#define CL_COMMAND_BUFFER_FLAGS_KHR 0x1293 + +/* cl_command_buffer_flags_khr - bitfield */ +#define CL_COMMAND_BUFFER_SIMULTANEOUS_USE_KHR (1 << 0) + +/* Error codes */ +#define CL_INVALID_COMMAND_BUFFER_KHR -1138 +#define CL_INVALID_SYNC_POINT_WAIT_LIST_KHR -1139 +#define CL_INCOMPATIBLE_COMMAND_QUEUE_KHR -1140 + +/* cl_command_buffer_info_khr */ +#define CL_COMMAND_BUFFER_QUEUES_KHR 0x1294 +#define CL_COMMAND_BUFFER_NUM_QUEUES_KHR 0x1295 +#define CL_COMMAND_BUFFER_REFERENCE_COUNT_KHR 0x1296 +#define CL_COMMAND_BUFFER_STATE_KHR 0x1297 +#define CL_COMMAND_BUFFER_PROPERTIES_ARRAY_KHR 0x1298 +#define CL_COMMAND_BUFFER_CONTEXT_KHR 0x1299 + +/* cl_command_buffer_state_khr */ +#define CL_COMMAND_BUFFER_STATE_RECORDING_KHR 0 +#define CL_COMMAND_BUFFER_STATE_EXECUTABLE_KHR 1 +#define CL_COMMAND_BUFFER_STATE_PENDING_KHR 2 +#define CL_COMMAND_BUFFER_STATE_INVALID_KHR 3 + +/* cl_command_type */ +#define CL_COMMAND_COMMAND_BUFFER_KHR 0x12A8 + + +typedef cl_command_buffer_khr (CL_API_CALL * +clCreateCommandBufferKHR_fn)( + cl_uint num_queues, + const cl_command_queue* queues, + const cl_command_buffer_properties_khr* properties, + cl_int* errcode_ret) ; + +typedef cl_int (CL_API_CALL * +clFinalizeCommandBufferKHR_fn)( + cl_command_buffer_khr command_buffer) ; + +typedef cl_int (CL_API_CALL * +clRetainCommandBufferKHR_fn)( + cl_command_buffer_khr command_buffer) ; + +typedef cl_int (CL_API_CALL * +clReleaseCommandBufferKHR_fn)( + cl_command_buffer_khr command_buffer) ; + +typedef cl_int (CL_API_CALL * +clEnqueueCommandBufferKHR_fn)( + cl_uint num_queues, + cl_command_queue* queues, + cl_command_buffer_khr command_buffer, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +typedef cl_int (CL_API_CALL * +clCommandBarrierWithWaitListKHR_fn)( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + +typedef cl_int (CL_API_CALL * +clCommandCopyBufferKHR_fn)( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + cl_mem src_buffer, + cl_mem dst_buffer, + size_t src_offset, + size_t dst_offset, + size_t size, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + +typedef cl_int (CL_API_CALL * +clCommandCopyBufferRectKHR_fn)( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + cl_mem src_buffer, + cl_mem dst_buffer, + const size_t* src_origin, + const size_t* dst_origin, + const size_t* region, + size_t src_row_pitch, + size_t src_slice_pitch, + size_t dst_row_pitch, + size_t dst_slice_pitch, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + +typedef cl_int (CL_API_CALL * +clCommandCopyBufferToImageKHR_fn)( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + cl_mem src_buffer, + cl_mem dst_image, + size_t src_offset, + const size_t* dst_origin, + const size_t* region, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + +typedef cl_int (CL_API_CALL * +clCommandCopyImageKHR_fn)( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + cl_mem src_image, + cl_mem dst_image, + const size_t* src_origin, + const size_t* dst_origin, + const size_t* region, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + +typedef cl_int (CL_API_CALL * +clCommandCopyImageToBufferKHR_fn)( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + cl_mem src_image, + cl_mem dst_buffer, + const size_t* src_origin, + const size_t* region, + size_t dst_offset, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + +typedef cl_int (CL_API_CALL * +clCommandFillBufferKHR_fn)( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + cl_mem buffer, + const void* pattern, + size_t pattern_size, + size_t offset, + size_t size, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + +typedef cl_int (CL_API_CALL * +clCommandFillImageKHR_fn)( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + cl_mem image, + const void* fill_color, + const size_t* origin, + const size_t* region, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + +typedef cl_int (CL_API_CALL * +clCommandNDRangeKernelKHR_fn)( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + const cl_ndrange_kernel_command_properties_khr* properties, + cl_kernel kernel, + cl_uint work_dim, + const size_t* global_work_offset, + const size_t* global_work_size, + const size_t* local_work_size, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + +typedef cl_int (CL_API_CALL * +clGetCommandBufferInfoKHR_fn)( + cl_command_buffer_khr command_buffer, + cl_command_buffer_info_khr param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) ; + +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_command_buffer_khr CL_API_CALL +clCreateCommandBufferKHR( + cl_uint num_queues, + const cl_command_queue* queues, + const cl_command_buffer_properties_khr* properties, + cl_int* errcode_ret) ; -/* cl_khr_fp16 extension - no extension #define since it has no functions */ -#define CL_DEVICE_HALF_FP_CONFIG 0x1033 +extern CL_API_ENTRY cl_int CL_API_CALL +clFinalizeCommandBufferKHR( + cl_command_buffer_khr command_buffer) ; -/* Memory object destruction - * - * Apple extension for use to manage externally allocated buffers used with cl_mem objects with CL_MEM_USE_HOST_PTR - * - * Registers a user callback function that will be called when the memory object is deleted and its resources - * freed. Each call to clSetMemObjectCallbackFn registers the specified user callback function on a callback - * stack associated with memobj. The registered user callback functions are called in the reverse order in - * which they were registered. The user callback functions are called and then the memory object is deleted - * and its resources freed. This provides a mechanism for the application (and libraries) using memobj to be - * notified when the memory referenced by host_ptr, specified when the memory object is created and used as - * the storage bits for the memory object, can be reused or freed. - * - * The application may not call CL api's with the cl_mem object passed to the pfn_notify. - * - * Please check for the "cl_APPLE_SetMemObjectDestructor" extension using clGetDeviceInfo(CL_DEVICE_EXTENSIONS) - * before using. - */ +extern CL_API_ENTRY cl_int CL_API_CALL +clRetainCommandBufferKHR( + cl_command_buffer_khr command_buffer) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clReleaseCommandBufferKHR( + cl_command_buffer_khr command_buffer) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueCommandBufferKHR( + cl_uint num_queues, + cl_command_queue* queues, + cl_command_buffer_khr command_buffer, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clCommandBarrierWithWaitListKHR( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clCommandCopyBufferKHR( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + cl_mem src_buffer, + cl_mem dst_buffer, + size_t src_offset, + size_t dst_offset, + size_t size, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clCommandCopyBufferRectKHR( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + cl_mem src_buffer, + cl_mem dst_buffer, + const size_t* src_origin, + const size_t* dst_origin, + const size_t* region, + size_t src_row_pitch, + size_t src_slice_pitch, + size_t dst_row_pitch, + size_t dst_slice_pitch, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clCommandCopyBufferToImageKHR( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + cl_mem src_buffer, + cl_mem dst_image, + size_t src_offset, + const size_t* dst_origin, + const size_t* region, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clCommandCopyImageKHR( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + cl_mem src_image, + cl_mem dst_image, + const size_t* src_origin, + const size_t* dst_origin, + const size_t* region, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clCommandCopyImageToBufferKHR( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + cl_mem src_image, + cl_mem dst_buffer, + const size_t* src_origin, + const size_t* region, + size_t dst_offset, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clCommandFillBufferKHR( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + cl_mem buffer, + const void* pattern, + size_t pattern_size, + size_t offset, + size_t size, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clCommandFillImageKHR( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + cl_mem image, + const void* fill_color, + const size_t* origin, + const size_t* region, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clCommandNDRangeKernelKHR( + cl_command_buffer_khr command_buffer, + cl_command_queue command_queue, + const cl_ndrange_kernel_command_properties_khr* properties, + cl_kernel kernel, + cl_uint work_dim, + const size_t* global_work_offset, + const size_t* global_work_size, + const size_t* local_work_size, + cl_uint num_sync_points_in_wait_list, + const cl_sync_point_khr* sync_point_wait_list, + cl_sync_point_khr* sync_point, + cl_mutable_command_khr* mutable_handle) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetCommandBufferInfoKHR( + cl_command_buffer_khr command_buffer, + cl_command_buffer_info_khr param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) ; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_khr_command_buffer_multi_device +***************************************************************/ +#define cl_khr_command_buffer_multi_device 1 +#define CL_KHR_COMMAND_BUFFER_MULTI_DEVICE_EXTENSION_NAME \ + "cl_khr_command_buffer_multi_device" + +typedef cl_bitfield cl_platform_command_buffer_capabilities_khr; + +/* cl_platform_info */ +#define CL_PLATFORM_COMMAND_BUFFER_CAPABILITIES_KHR 0x0908 + +/* cl_platform_command_buffer_capabilities_khr - bitfield */ +#define CL_COMMAND_BUFFER_PLATFORM_UNIVERSAL_SYNC_KHR (1 << 0) +#define CL_COMMAND_BUFFER_PLATFORM_REMAP_QUEUES_KHR (1 << 1) +#define CL_COMMAND_BUFFER_PLATFORM_AUTOMATIC_REMAP_KHR (1 << 2) + +/* cl_device_info */ +#define CL_DEVICE_COMMAND_BUFFER_NUM_SYNC_DEVICES_KHR 0x12AB +#define CL_DEVICE_COMMAND_BUFFER_SYNC_DEVICES_KHR 0x12AC + +/* cl_device_command_buffer_capabilities_khr - bitfield */ +#define CL_COMMAND_BUFFER_CAPABILITY_MULTIPLE_QUEUE_KHR (1 << 4) + +/* cl_command_buffer_flags_khr - bitfield */ +#define CL_COMMAND_BUFFER_DEVICE_SIDE_SYNC_KHR (1 << 2) + + +typedef cl_command_buffer_khr (CL_API_CALL * +clRemapCommandBufferKHR_fn)( + cl_command_buffer_khr command_buffer, + cl_bool automatic, + cl_uint num_queues, + const cl_command_queue* queues, + cl_uint num_handles, + const cl_mutable_command_khr* handles, + cl_mutable_command_khr* handles_ret, + cl_int* errcode_ret) ; + +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_command_buffer_khr CL_API_CALL +clRemapCommandBufferKHR( + cl_command_buffer_khr command_buffer, + cl_bool automatic, + cl_uint num_queues, + const cl_command_queue* queues, + cl_uint num_handles, + const cl_mutable_command_khr* handles, + cl_mutable_command_khr* handles_ret, + cl_int* errcode_ret) ; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_khr_command_buffer_mutable_dispatch +***************************************************************/ +#define cl_khr_command_buffer_mutable_dispatch 1 +#define CL_KHR_COMMAND_BUFFER_MUTABLE_DISPATCH_EXTENSION_NAME \ + "cl_khr_command_buffer_mutable_dispatch" + +typedef cl_uint cl_command_buffer_structure_type_khr; +typedef cl_bitfield cl_mutable_dispatch_fields_khr; +typedef cl_uint cl_mutable_command_info_khr; +typedef struct _cl_mutable_dispatch_arg_khr { + cl_uint arg_index; + size_t arg_size; + const void* arg_value; +} cl_mutable_dispatch_arg_khr; +typedef struct _cl_mutable_dispatch_exec_info_khr { + cl_uint param_name; + size_t param_value_size; + const void* param_value; +} cl_mutable_dispatch_exec_info_khr; +typedef struct _cl_mutable_dispatch_config_khr { + cl_command_buffer_structure_type_khr type; + const void* next; + cl_mutable_command_khr command; + cl_uint num_args; + cl_uint num_svm_args; + cl_uint num_exec_infos; + cl_uint work_dim; + const cl_mutable_dispatch_arg_khr* arg_list; + const cl_mutable_dispatch_arg_khr* arg_svm_list; + const cl_mutable_dispatch_exec_info_khr* exec_info_list; + const size_t* global_work_offset; + const size_t* global_work_size; + const size_t* local_work_size; +} cl_mutable_dispatch_config_khr; +typedef struct _cl_mutable_base_config_khr { + cl_command_buffer_structure_type_khr type; + const void* next; + cl_uint num_mutable_dispatch; + const cl_mutable_dispatch_config_khr* mutable_dispatch_list; +} cl_mutable_base_config_khr; + +/* cl_command_buffer_flags_khr - bitfield */ +#define CL_COMMAND_BUFFER_MUTABLE_KHR (1 << 1) + +/* Error codes */ +#define CL_INVALID_MUTABLE_COMMAND_KHR -1141 + +/* cl_device_info */ +#define CL_DEVICE_MUTABLE_DISPATCH_CAPABILITIES_KHR 0x12B0 + +/* cl_ndrange_kernel_command_properties_khr */ +#define CL_MUTABLE_DISPATCH_UPDATABLE_FIELDS_KHR 0x12B1 + +/* cl_mutable_dispatch_fields_khr - bitfield */ +#define CL_MUTABLE_DISPATCH_GLOBAL_OFFSET_KHR (1 << 0) +#define CL_MUTABLE_DISPATCH_GLOBAL_SIZE_KHR (1 << 1) +#define CL_MUTABLE_DISPATCH_LOCAL_SIZE_KHR (1 << 2) +#define CL_MUTABLE_DISPATCH_ARGUMENTS_KHR (1 << 3) +#define CL_MUTABLE_DISPATCH_EXEC_INFO_KHR (1 << 4) + +/* cl_mutable_command_info_khr */ +#define CL_MUTABLE_COMMAND_COMMAND_QUEUE_KHR 0x12A0 +#define CL_MUTABLE_COMMAND_COMMAND_BUFFER_KHR 0x12A1 +#define CL_MUTABLE_COMMAND_COMMAND_TYPE_KHR 0x12AD +#define CL_MUTABLE_DISPATCH_PROPERTIES_ARRAY_KHR 0x12A2 +#define CL_MUTABLE_DISPATCH_KERNEL_KHR 0x12A3 +#define CL_MUTABLE_DISPATCH_DIMENSIONS_KHR 0x12A4 +#define CL_MUTABLE_DISPATCH_GLOBAL_WORK_OFFSET_KHR 0x12A5 +#define CL_MUTABLE_DISPATCH_GLOBAL_WORK_SIZE_KHR 0x12A6 +#define CL_MUTABLE_DISPATCH_LOCAL_WORK_SIZE_KHR 0x12A7 + +/* cl_command_buffer_structure_type_khr */ +#define CL_STRUCTURE_TYPE_MUTABLE_BASE_CONFIG_KHR 0 +#define CL_STRUCTURE_TYPE_MUTABLE_DISPATCH_CONFIG_KHR 1 + + +typedef cl_int (CL_API_CALL * +clUpdateMutableCommandsKHR_fn)( + cl_command_buffer_khr command_buffer, + const cl_mutable_base_config_khr* mutable_config) ; + +typedef cl_int (CL_API_CALL * +clGetMutableCommandInfoKHR_fn)( + cl_mutable_command_khr command, + cl_mutable_command_info_khr param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) ; + +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_int CL_API_CALL +clUpdateMutableCommandsKHR( + cl_command_buffer_khr command_buffer, + const cl_mutable_base_config_khr* mutable_config) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetMutableCommandInfoKHR( + cl_mutable_command_khr command, + cl_mutable_command_info_khr param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) ; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_khr_fp64 +***************************************************************/ +#define cl_khr_fp64 1 +#define CL_KHR_FP64_EXTENSION_NAME \ + "cl_khr_fp64" + +#if !defined(CL_VERSION_1_2) +/* cl_device_info - defined in CL.h for OpenCL 1.2 and newer */ +#define CL_DEVICE_DOUBLE_FP_CONFIG 0x1032 + +#endif /* !defined(CL_VERSION_1_2) */ + +/*************************************************************** +* cl_khr_fp16 +***************************************************************/ +#define cl_khr_fp16 1 +#define CL_KHR_FP16_EXTENSION_NAME \ + "cl_khr_fp16" + +/* cl_device_info */ +#define CL_DEVICE_HALF_FP_CONFIG 0x1033 + +/*************************************************************** +* cl_APPLE_SetMemObjectDestructor +***************************************************************/ #define cl_APPLE_SetMemObjectDestructor 1 -cl_int CL_API_ENTRY clSetMemObjectDestructorAPPLE( cl_mem memobj, - void (* pfn_notify)(cl_mem memobj, void * user_data), - void * user_data) CL_EXT_SUFFIX__VERSION_1_0; +#define CL_APPLE_SETMEMOBJECTDESTRUCTOR_EXTENSION_NAME \ + "cl_APPLE_SetMemObjectDestructor" -/* Context Logging Functions - * - * The next three convenience functions are intended to be used as the pfn_notify parameter to clCreateContext(). - * Please check for the "cl_APPLE_ContextLoggingFunctions" extension using clGetDeviceInfo(CL_DEVICE_EXTENSIONS) - * before using. - * - * clLogMessagesToSystemLog forwards on all log messages to the Apple System Logger - */ +typedef cl_int (CL_API_CALL * +clSetMemObjectDestructorAPPLE_fn)( + cl_mem memobj, + void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data), + void* user_data) CL_API_SUFFIX__VERSION_1_0; + +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_int CL_API_CALL +clSetMemObjectDestructorAPPLE( + cl_mem memobj, + void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data), + void* user_data) CL_API_SUFFIX__VERSION_1_0; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_APPLE_ContextLoggingFunctions +***************************************************************/ #define cl_APPLE_ContextLoggingFunctions 1 -extern void CL_API_ENTRY clLogMessagesToSystemLogAPPLE( const char * errstr, - const void * private_info, - size_t cb, - void * user_data) CL_EXT_SUFFIX__VERSION_1_0; - -/* clLogMessagesToStdout sends all log messages to the file descriptor stdout */ -extern void CL_API_ENTRY clLogMessagesToStdoutAPPLE( const char * errstr, - const void * private_info, - size_t cb, - void * user_data) CL_EXT_SUFFIX__VERSION_1_0; - -/* clLogMessagesToStderr sends all log messages to the file descriptor stderr */ -extern void CL_API_ENTRY clLogMessagesToStderrAPPLE( const char * errstr, - const void * private_info, - size_t cb, - void * user_data) CL_EXT_SUFFIX__VERSION_1_0; - - -/************************ -* cl_khr_icd extension * -************************/ +#define CL_APPLE_CONTEXTLOGGINGFUNCTIONS_EXTENSION_NAME \ + "cl_APPLE_ContextLoggingFunctions" + + +typedef void (CL_API_CALL * +clLogMessagesToSystemLogAPPLE_fn)( + const char* errstr, + const void* private_info, + size_t cb, + void* user_data) CL_API_SUFFIX__VERSION_1_0; + +typedef void (CL_API_CALL * +clLogMessagesToStdoutAPPLE_fn)( + const char* errstr, + const void* private_info, + size_t cb, + void* user_data) CL_API_SUFFIX__VERSION_1_0; + +typedef void (CL_API_CALL * +clLogMessagesToStderrAPPLE_fn)( + const char* errstr, + const void* private_info, + size_t cb, + void* user_data) CL_API_SUFFIX__VERSION_1_0; + +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY void CL_API_CALL +clLogMessagesToSystemLogAPPLE( + const char* errstr, + const void* private_info, + size_t cb, + void* user_data) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY void CL_API_CALL +clLogMessagesToStdoutAPPLE( + const char* errstr, + const void* private_info, + size_t cb, + void* user_data) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY void CL_API_CALL +clLogMessagesToStderrAPPLE( + const char* errstr, + const void* private_info, + size_t cb, + void* user_data) CL_API_SUFFIX__VERSION_1_0; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_khr_icd +***************************************************************/ #define cl_khr_icd 1 +#define CL_KHR_ICD_EXTENSION_NAME \ + "cl_khr_icd" -/* cl_platform_info */ -#define CL_PLATFORM_ICD_SUFFIX_KHR 0x0920 +/* cl_platform_info */ +#define CL_PLATFORM_ICD_SUFFIX_KHR 0x0920 -/* Additional Error Codes */ -#define CL_PLATFORM_NOT_FOUND_KHR -1001 +/* Error codes */ +#define CL_PLATFORM_NOT_FOUND_KHR -1001 -extern CL_API_ENTRY cl_int CL_API_CALL -clIcdGetPlatformIDsKHR(cl_uint num_entries, - cl_platform_id * platforms, - cl_uint * num_platforms); -typedef CL_API_ENTRY cl_int -(CL_API_CALL *clIcdGetPlatformIDsKHR_fn)(cl_uint num_entries, - cl_platform_id * platforms, - cl_uint * num_platforms); +typedef cl_int (CL_API_CALL * +clIcdGetPlatformIDsKHR_fn)( + cl_uint num_entries, + cl_platform_id* platforms, + cl_uint* num_platforms) ; +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) -/******************************* - * cl_khr_il_program extension * - *******************************/ +extern CL_API_ENTRY cl_int CL_API_CALL +clIcdGetPlatformIDsKHR( + cl_uint num_entries, + cl_platform_id* platforms, + cl_uint* num_platforms) ; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_khr_il_program +***************************************************************/ #define cl_khr_il_program 1 +#define CL_KHR_IL_PROGRAM_EXTENSION_NAME \ + "cl_khr_il_program" -/* New property to clGetDeviceInfo for retrieving supported intermediate - * languages - */ -#define CL_DEVICE_IL_VERSION_KHR 0x105B - -/* New property to clGetProgramInfo for retrieving for retrieving the IL of a - * program - */ -#define CL_PROGRAM_IL_KHR 0x1169 +/* cl_device_info */ +#define CL_DEVICE_IL_VERSION_KHR 0x105B -extern CL_API_ENTRY cl_program CL_API_CALL -clCreateProgramWithILKHR(cl_context context, - const void * il, - size_t length, - cl_int * errcode_ret); - -typedef CL_API_ENTRY cl_program -(CL_API_CALL *clCreateProgramWithILKHR_fn)(cl_context context, - const void * il, - size_t length, - cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_2; +/* cl_program_info */ +#define CL_PROGRAM_IL_KHR 0x1169 -/* Extension: cl_khr_image2d_from_buffer - * - * This extension allows a 2D image to be created from a cl_mem buffer without - * a copy. The type associated with a 2D image created from a buffer in an - * OpenCL program is image2d_t. Both the sampler and sampler-less read_image - * built-in functions are supported for 2D images and 2D images created from - * a buffer. Similarly, the write_image built-ins are also supported for 2D - * images created from a buffer. - * - * When the 2D image from buffer is created, the client must specify the - * width, height, image format (i.e. channel order and channel data type) - * and optionally the row pitch. - * - * The pitch specified must be a multiple of - * CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR pixels. - * The base address of the buffer must be aligned to - * CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT_KHR pixels. - */ -#define CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR 0x104A -#define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT_KHR 0x104B +typedef cl_program (CL_API_CALL * +clCreateProgramWithILKHR_fn)( + cl_context context, + const void* il, + size_t length, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) -/************************************** - * cl_khr_initialize_memory extension * - **************************************/ +extern CL_API_ENTRY cl_program CL_API_CALL +clCreateProgramWithILKHR( + cl_context context, + const void* il, + size_t length, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_khr_image2d_from_buffer +***************************************************************/ +#define cl_khr_image2d_from_buffer 1 +#define CL_KHR_IMAGE2D_FROM_BUFFER_EXTENSION_NAME \ + "cl_khr_image2d_from_buffer" -#define CL_CONTEXT_MEMORY_INITIALIZE_KHR 0x2030 +/* cl_device_info */ +#define CL_DEVICE_IMAGE_PITCH_ALIGNMENT_KHR 0x104A +#define CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT_KHR 0x104B +/*************************************************************** +* cl_khr_initialize_memory +***************************************************************/ +#define cl_khr_initialize_memory 1 +#define CL_KHR_INITIALIZE_MEMORY_EXTENSION_NAME \ + "cl_khr_initialize_memory" + +/* Interop tokens */ +#define CL_CONTEXT_MEMORY_INITIALIZE_KHR 0x2030 + +/*************************************************************** +* cl_khr_terminate_context +***************************************************************/ +#define cl_khr_terminate_context 1 +#define CL_KHR_TERMINATE_CONTEXT_EXTENSION_NAME \ + "cl_khr_terminate_context" -/************************************** - * cl_khr_terminate_context extension * - **************************************/ +typedef cl_bitfield cl_device_terminate_capability_khr; -#define CL_CONTEXT_TERMINATED_KHR -1121 +/* cl_device_info */ +#define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x2031 -#define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x2031 -#define CL_CONTEXT_TERMINATE_KHR 0x2032 +/* cl_context_properties */ +#define CL_CONTEXT_TERMINATE_KHR 0x2032 -#define cl_khr_terminate_context 1 -extern CL_API_ENTRY cl_int CL_API_CALL -clTerminateContextKHR(cl_context context) CL_EXT_SUFFIX__VERSION_1_2; +/* cl_device_terminate_capability_khr */ +#define CL_DEVICE_TERMINATE_CAPABILITY_CONTEXT_KHR (1 << 0) -typedef CL_API_ENTRY cl_int -(CL_API_CALL *clTerminateContextKHR_fn)(cl_context context) CL_EXT_SUFFIX__VERSION_1_2; +/* Error codes */ +#define CL_CONTEXT_TERMINATED_KHR -1121 -/* - * Extension: cl_khr_spir - * - * This extension adds support to create an OpenCL program object from a - * Standard Portable Intermediate Representation (SPIR) instance - */ +typedef cl_int (CL_API_CALL * +clTerminateContextKHR_fn)( + cl_context context) CL_API_SUFFIX__VERSION_1_2; -#define CL_DEVICE_SPIR_VERSIONS 0x40E0 -#define CL_PROGRAM_BINARY_TYPE_INTERMEDIATE 0x40E1 +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) +extern CL_API_ENTRY cl_int CL_API_CALL +clTerminateContextKHR( + cl_context context) CL_API_SUFFIX__VERSION_1_2; -/***************************************** - * cl_khr_create_command_queue extension * - *****************************************/ -#define cl_khr_create_command_queue 1 +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ -typedef cl_properties cl_queue_properties_khr; +/*************************************************************** +* cl_khr_spir +***************************************************************/ +#define cl_khr_spir 1 +#define CL_KHR_SPIR_EXTENSION_NAME \ + "cl_khr_spir" -extern CL_API_ENTRY cl_command_queue CL_API_CALL -clCreateCommandQueueWithPropertiesKHR(cl_context context, - cl_device_id device, - const cl_queue_properties_khr* properties, - cl_int* errcode_ret) CL_EXT_SUFFIX__VERSION_1_2; - -typedef CL_API_ENTRY cl_command_queue -(CL_API_CALL *clCreateCommandQueueWithPropertiesKHR_fn)(cl_context context, - cl_device_id device, - const cl_queue_properties_khr* properties, - cl_int* errcode_ret) CL_EXT_SUFFIX__VERSION_1_2; - - -/****************************************** -* cl_nv_device_attribute_query extension * -******************************************/ - -/* cl_nv_device_attribute_query extension - no extension #define since it has no functions */ -#define CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV 0x4000 -#define CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV 0x4001 -#define CL_DEVICE_REGISTERS_PER_BLOCK_NV 0x4002 -#define CL_DEVICE_WARP_SIZE_NV 0x4003 -#define CL_DEVICE_GPU_OVERLAP_NV 0x4004 -#define CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV 0x4005 -#define CL_DEVICE_INTEGRATED_MEMORY_NV 0x4006 - - -/********************************* -* cl_amd_device_attribute_query * -*********************************/ - -#define CL_DEVICE_PROFILING_TIMER_OFFSET_AMD 0x4036 -#define CL_DEVICE_TOPOLOGY_AMD 0x4037 -#define CL_DEVICE_BOARD_NAME_AMD 0x4038 -#define CL_DEVICE_GLOBAL_FREE_MEMORY_AMD 0x4039 -#define CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD 0x4040 -#define CL_DEVICE_SIMD_WIDTH_AMD 0x4041 -#define CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD 0x4042 -#define CL_DEVICE_WAVEFRONT_WIDTH_AMD 0x4043 -#define CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD 0x4044 -#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD 0x4045 -#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD 0x4046 -#define CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD 0x4047 -#define CL_DEVICE_LOCAL_MEM_BANKS_AMD 0x4048 -#define CL_DEVICE_THREAD_TRACE_SUPPORTED_AMD 0x4049 -#define CL_DEVICE_GFXIP_MAJOR_AMD 0x404A -#define CL_DEVICE_GFXIP_MINOR_AMD 0x404B -#define CL_DEVICE_AVAILABLE_ASYNC_QUEUES_AMD 0x404C -#define CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_AMD 0x4030 -#define CL_DEVICE_MAX_WORK_GROUP_SIZE_AMD 0x4031 -#define CL_DEVICE_PREFERRED_CONSTANT_BUFFER_SIZE_AMD 0x4033 -#define CL_DEVICE_PCIE_ID_AMD 0x4034 - - -/********************************* -* cl_arm_printf extension -*********************************/ - -#define CL_PRINTF_CALLBACK_ARM 0x40B0 -#define CL_PRINTF_BUFFERSIZE_ARM 0x40B1 - - -/*********************************** -* cl_ext_device_fission extension -***********************************/ -#define cl_ext_device_fission 1 - -extern CL_API_ENTRY cl_int CL_API_CALL -clReleaseDeviceEXT(cl_device_id device) CL_EXT_SUFFIX__VERSION_1_1; - -typedef CL_API_ENTRY cl_int -(CL_API_CALL *clReleaseDeviceEXT_fn)(cl_device_id device) CL_EXT_SUFFIX__VERSION_1_1; - -extern CL_API_ENTRY cl_int CL_API_CALL -clRetainDeviceEXT(cl_device_id device) CL_EXT_SUFFIX__VERSION_1_1; - -typedef CL_API_ENTRY cl_int -(CL_API_CALL *clRetainDeviceEXT_fn)(cl_device_id device) CL_EXT_SUFFIX__VERSION_1_1; - -typedef cl_ulong cl_device_partition_property_ext; -extern CL_API_ENTRY cl_int CL_API_CALL -clCreateSubDevicesEXT(cl_device_id in_device, - const cl_device_partition_property_ext * properties, - cl_uint num_entries, - cl_device_id * out_devices, - cl_uint * num_devices) CL_EXT_SUFFIX__VERSION_1_1; - -typedef CL_API_ENTRY cl_int -(CL_API_CALL * clCreateSubDevicesEXT_fn)(cl_device_id in_device, - const cl_device_partition_property_ext * properties, - cl_uint num_entries, - cl_device_id * out_devices, - cl_uint * num_devices) CL_EXT_SUFFIX__VERSION_1_1; +/* cl_device_info */ +#define CL_DEVICE_SPIR_VERSIONS 0x40E0 -/* cl_device_partition_property_ext */ -#define CL_DEVICE_PARTITION_EQUALLY_EXT 0x4050 -#define CL_DEVICE_PARTITION_BY_COUNTS_EXT 0x4051 -#define CL_DEVICE_PARTITION_BY_NAMES_EXT 0x4052 -#define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT 0x4053 - -/* clDeviceGetInfo selectors */ -#define CL_DEVICE_PARENT_DEVICE_EXT 0x4054 -#define CL_DEVICE_PARTITION_TYPES_EXT 0x4055 -#define CL_DEVICE_AFFINITY_DOMAINS_EXT 0x4056 -#define CL_DEVICE_REFERENCE_COUNT_EXT 0x4057 -#define CL_DEVICE_PARTITION_STYLE_EXT 0x4058 - -/* error codes */ -#define CL_DEVICE_PARTITION_FAILED_EXT -1057 -#define CL_INVALID_PARTITION_COUNT_EXT -1058 -#define CL_INVALID_PARTITION_NAME_EXT -1059 - -/* CL_AFFINITY_DOMAINs */ -#define CL_AFFINITY_DOMAIN_L1_CACHE_EXT 0x1 -#define CL_AFFINITY_DOMAIN_L2_CACHE_EXT 0x2 -#define CL_AFFINITY_DOMAIN_L3_CACHE_EXT 0x3 -#define CL_AFFINITY_DOMAIN_L4_CACHE_EXT 0x4 -#define CL_AFFINITY_DOMAIN_NUMA_EXT 0x10 -#define CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT 0x100 - -/* cl_device_partition_property_ext list terminators */ -#define CL_PROPERTIES_LIST_END_EXT ((cl_device_partition_property_ext) 0) -#define CL_PARTITION_BY_COUNTS_LIST_END_EXT ((cl_device_partition_property_ext) 0) -#define CL_PARTITION_BY_NAMES_LIST_END_EXT ((cl_device_partition_property_ext) 0 - 1) - - -/*********************************** - * cl_ext_migrate_memobject extension definitions - ***********************************/ -#define cl_ext_migrate_memobject 1 +/* cl_program_binary_type */ +#define CL_PROGRAM_BINARY_TYPE_INTERMEDIATE 0x40E1 -typedef cl_bitfield cl_mem_migration_flags_ext; +/*************************************************************** +* cl_khr_create_command_queue +***************************************************************/ +#define cl_khr_create_command_queue 1 +#define CL_KHR_CREATE_COMMAND_QUEUE_EXTENSION_NAME \ + "cl_khr_create_command_queue" -#define CL_MIGRATE_MEM_OBJECT_HOST_EXT 0x1 +typedef cl_properties cl_queue_properties_khr; -#define CL_COMMAND_MIGRATE_MEM_OBJECT_EXT 0x4040 -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueMigrateMemObjectEXT(cl_command_queue command_queue, - cl_uint num_mem_objects, - const cl_mem * mem_objects, - cl_mem_migration_flags_ext flags, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event); - -typedef CL_API_ENTRY cl_int -(CL_API_CALL *clEnqueueMigrateMemObjectEXT_fn)(cl_command_queue command_queue, - cl_uint num_mem_objects, - const cl_mem * mem_objects, - cl_mem_migration_flags_ext flags, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event); - - -/********************************* -* cl_ext_cxx_for_opencl extension -*********************************/ -#define cl_ext_cxx_for_opencl 1 +typedef cl_command_queue (CL_API_CALL * +clCreateCommandQueueWithPropertiesKHR_fn)( + cl_context context, + cl_device_id device, + const cl_queue_properties_khr* properties, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -#define CL_DEVICE_CXX_FOR_OPENCL_NUMERIC_VERSION_EXT 0x4230 +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) -/********************************* -* cl_qcom_ext_host_ptr extension -*********************************/ -#define cl_qcom_ext_host_ptr 1 +extern CL_API_ENTRY cl_command_queue CL_API_CALL +clCreateCommandQueueWithPropertiesKHR( + cl_context context, + cl_device_id device, + const cl_queue_properties_khr* properties, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_nv_device_attribute_query +***************************************************************/ +#define cl_nv_device_attribute_query 1 +#define CL_NV_DEVICE_ATTRIBUTE_QUERY_EXTENSION_NAME \ + "cl_nv_device_attribute_query" -#define CL_MEM_EXT_HOST_PTR_QCOM (1 << 29) +/* cl_device_info */ +#define CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV 0x4000 +#define CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV 0x4001 +#define CL_DEVICE_REGISTERS_PER_BLOCK_NV 0x4002 +#define CL_DEVICE_WARP_SIZE_NV 0x4003 +#define CL_DEVICE_GPU_OVERLAP_NV 0x4004 +#define CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV 0x4005 +#define CL_DEVICE_INTEGRATED_MEMORY_NV 0x4006 + +/*************************************************************** +* cl_amd_device_attribute_query +***************************************************************/ +#define cl_amd_device_attribute_query 1 +#define CL_AMD_DEVICE_ATTRIBUTE_QUERY_EXTENSION_NAME \ + "cl_amd_device_attribute_query" -#define CL_DEVICE_EXT_MEM_PADDING_IN_BYTES_QCOM 0x40A0 -#define CL_DEVICE_PAGE_SIZE_QCOM 0x40A1 -#define CL_IMAGE_ROW_ALIGNMENT_QCOM 0x40A2 -#define CL_IMAGE_SLICE_ALIGNMENT_QCOM 0x40A3 -#define CL_MEM_HOST_UNCACHED_QCOM 0x40A4 -#define CL_MEM_HOST_WRITEBACK_QCOM 0x40A5 -#define CL_MEM_HOST_WRITETHROUGH_QCOM 0x40A6 -#define CL_MEM_HOST_WRITE_COMBINING_QCOM 0x40A7 - -typedef cl_uint cl_image_pitch_info_qcom; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetDeviceImageInfoQCOM(cl_device_id device, - size_t image_width, - size_t image_height, - const cl_image_format *image_format, - cl_image_pitch_info_qcom param_name, - size_t param_value_size, - void *param_value, - size_t *param_value_size_ret); - -typedef struct _cl_mem_ext_host_ptr -{ - /* Type of external memory allocation. */ - /* Legal values will be defined in layered extensions. */ - cl_uint allocation_type; +/* cl_device_info */ +#define CL_DEVICE_PROFILING_TIMER_OFFSET_AMD 0x4036 +#define CL_DEVICE_TOPOLOGY_AMD 0x4037 +#define CL_DEVICE_BOARD_NAME_AMD 0x4038 +#define CL_DEVICE_GLOBAL_FREE_MEMORY_AMD 0x4039 +#define CL_DEVICE_SIMD_PER_COMPUTE_UNIT_AMD 0x4040 +#define CL_DEVICE_SIMD_WIDTH_AMD 0x4041 +#define CL_DEVICE_SIMD_INSTRUCTION_WIDTH_AMD 0x4042 +#define CL_DEVICE_WAVEFRONT_WIDTH_AMD 0x4043 +#define CL_DEVICE_GLOBAL_MEM_CHANNELS_AMD 0x4044 +#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANKS_AMD 0x4045 +#define CL_DEVICE_GLOBAL_MEM_CHANNEL_BANK_WIDTH_AMD 0x4046 +#define CL_DEVICE_LOCAL_MEM_SIZE_PER_COMPUTE_UNIT_AMD 0x4047 +#define CL_DEVICE_LOCAL_MEM_BANKS_AMD 0x4048 +#define CL_DEVICE_THREAD_TRACE_SUPPORTED_AMD 0x4049 +#define CL_DEVICE_GFXIP_MAJOR_AMD 0x404A +#define CL_DEVICE_GFXIP_MINOR_AMD 0x404B +#define CL_DEVICE_AVAILABLE_ASYNC_QUEUES_AMD 0x404C +#define CL_DEVICE_PREFERRED_WORK_GROUP_SIZE_AMD 0x4030 +#define CL_DEVICE_MAX_WORK_GROUP_SIZE_AMD 0x4031 +#define CL_DEVICE_PREFERRED_CONSTANT_BUFFER_SIZE_AMD 0x4033 +#define CL_DEVICE_PCIE_ID_AMD 0x4034 + +/*************************************************************** +* cl_arm_printf +***************************************************************/ +#define cl_arm_printf 1 +#define CL_ARM_PRINTF_EXTENSION_NAME \ + "cl_arm_printf" + +/* cl_context_properties */ +#define CL_PRINTF_CALLBACK_ARM 0x40B0 +#define CL_PRINTF_BUFFERSIZE_ARM 0x40B1 + +/*************************************************************** +* cl_ext_device_fission +***************************************************************/ +#define cl_ext_device_fission 1 +#define CL_EXT_DEVICE_FISSION_EXTENSION_NAME \ + "cl_ext_device_fission" + +typedef cl_ulong cl_device_partition_property_ext; + +/* Error codes */ +#define CL_DEVICE_PARTITION_FAILED_EXT -1057 +#define CL_INVALID_PARTITION_COUNT_EXT -1058 +#define CL_INVALID_PARTITION_NAME_EXT -1059 - /* Host cache policy for this external memory allocation. */ - cl_uint host_cache_policy; +/* cl_device_info */ +#define CL_DEVICE_PARENT_DEVICE_EXT 0x4054 +#define CL_DEVICE_PARTITION_TYPES_EXT 0x4055 +#define CL_DEVICE_AFFINITY_DOMAINS_EXT 0x4056 +#define CL_DEVICE_REFERENCE_COUNT_EXT 0x4057 +#define CL_DEVICE_PARTITION_STYLE_EXT 0x4058 -} cl_mem_ext_host_ptr; +/* cl_device_partition_property_ext */ +#define CL_DEVICE_PARTITION_EQUALLY_EXT 0x4050 +#define CL_DEVICE_PARTITION_BY_COUNTS_EXT 0x4051 +#define CL_DEVICE_PARTITION_BY_NAMES_EXT 0x4052 +#define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT 0x4053 + +/* cl_device_partition_property_ext - affinity domains */ +#define CL_AFFINITY_DOMAIN_L1_CACHE_EXT 0x1 +#define CL_AFFINITY_DOMAIN_L2_CACHE_EXT 0x2 +#define CL_AFFINITY_DOMAIN_L3_CACHE_EXT 0x3 +#define CL_AFFINITY_DOMAIN_L4_CACHE_EXT 0x4 +#define CL_AFFINITY_DOMAIN_NUMA_EXT 0x10 +#define CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT 0x100 + +/* cl_device_partition_property_ext - list terminators */ +#define CL_PROPERTIES_LIST_END_EXT ((cl_device_partition_property_ext)0) +#define CL_PARTITION_BY_COUNTS_LIST_END_EXT ((cl_device_partition_property_ext)0) +#define CL_PARTITION_BY_NAMES_LIST_END_EXT ((cl_device_partition_property_ext)0 - 1) + + +typedef cl_int (CL_API_CALL * +clReleaseDeviceEXT_fn)( + cl_device_id device) CL_API_SUFFIX__VERSION_1_1; + +typedef cl_int (CL_API_CALL * +clRetainDeviceEXT_fn)( + cl_device_id device) CL_API_SUFFIX__VERSION_1_1; + +typedef cl_int (CL_API_CALL * +clCreateSubDevicesEXT_fn)( + cl_device_id in_device, + const cl_device_partition_property_ext* properties, + cl_uint num_entries, + cl_device_id* out_devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) -/******************************************* -* cl_qcom_ext_host_ptr_iocoherent extension -********************************************/ +extern CL_API_ENTRY cl_int CL_API_CALL +clReleaseDeviceEXT( + cl_device_id device) CL_API_SUFFIX__VERSION_1_1; -/* Cache policy specifying io-coherence */ -#define CL_MEM_HOST_IOCOHERENT_QCOM 0x40A9 +extern CL_API_ENTRY cl_int CL_API_CALL +clRetainDeviceEXT( + cl_device_id device) CL_API_SUFFIX__VERSION_1_1; +extern CL_API_ENTRY cl_int CL_API_CALL +clCreateSubDevicesEXT( + cl_device_id in_device, + const cl_device_partition_property_ext* properties, + cl_uint num_entries, + cl_device_id* out_devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1; + +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_ext_migrate_memobject +***************************************************************/ +#define cl_ext_migrate_memobject 1 +#define CL_EXT_MIGRATE_MEMOBJECT_EXTENSION_NAME \ + "cl_ext_migrate_memobject" -/********************************* -* cl_qcom_ion_host_ptr extension -*********************************/ +typedef cl_bitfield cl_mem_migration_flags_ext; -#define CL_MEM_ION_HOST_PTR_QCOM 0x40A8 +/* cl_mem_migration_flags_ext */ +#define CL_MIGRATE_MEM_OBJECT_HOST_EXT (1 << 0) -typedef struct _cl_mem_ion_host_ptr -{ - /* Type of external memory allocation. */ - /* Must be CL_MEM_ION_HOST_PTR_QCOM for ION allocations. */ - cl_mem_ext_host_ptr ext_host_ptr; +/* cl_command_type */ +#define CL_COMMAND_MIGRATE_MEM_OBJECT_EXT 0x4040 - /* ION file descriptor */ - int ion_filedesc; - /* Host pointer to the ION allocated memory */ - void* ion_hostptr; +typedef cl_int (CL_API_CALL * +clEnqueueMigrateMemObjectEXT_fn)( + cl_command_queue command_queue, + cl_uint num_mem_objects, + const cl_mem* mem_objects, + cl_mem_migration_flags_ext flags, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; -} cl_mem_ion_host_ptr; +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueMigrateMemObjectEXT( + cl_command_queue command_queue, + cl_uint num_mem_objects, + const cl_mem* mem_objects, + cl_mem_migration_flags_ext flags, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_ext_cxx_for_opencl +***************************************************************/ +#define cl_ext_cxx_for_opencl 1 +#define CL_EXT_CXX_FOR_OPENCL_EXTENSION_NAME \ + "cl_ext_cxx_for_opencl" -/********************************* -* cl_qcom_android_native_buffer_host_ptr extension -*********************************/ - -#define CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM 0x40C6 - -typedef struct _cl_mem_android_native_buffer_host_ptr -{ - /* Type of external memory allocation. */ - /* Must be CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM for Android native buffers. */ - cl_mem_ext_host_ptr ext_host_ptr; +/* cl_device_info */ +#define CL_DEVICE_CXX_FOR_OPENCL_NUMERIC_VERSION_EXT 0x4230 - /* Virtual pointer to the android native buffer */ - void* anb_ptr; +/*************************************************************** +* cl_qcom_ext_host_ptr +***************************************************************/ +#define cl_qcom_ext_host_ptr 1 +#define CL_QCOM_EXT_HOST_PTR_EXTENSION_NAME \ + "cl_qcom_ext_host_ptr" -} cl_mem_android_native_buffer_host_ptr; +typedef cl_uint cl_image_pitch_info_qcom; +typedef struct _cl_mem_ext_host_ptr { + cl_uint allocation_type; + cl_uint host_cache_policy; +} cl_mem_ext_host_ptr; +/* cl_mem_flags */ +#define CL_MEM_EXT_HOST_PTR_QCOM (1 << 29) -/****************************************** - * cl_img_yuv_image extension * - ******************************************/ +/* cl_device_info */ +#define CL_DEVICE_EXT_MEM_PADDING_IN_BYTES_QCOM 0x40A0 +#define CL_DEVICE_PAGE_SIZE_QCOM 0x40A1 -/* Image formats used in clCreateImage */ -#define CL_NV21_IMG 0x40D0 -#define CL_YV12_IMG 0x40D1 +/* cl_image_pitch_info_qcom */ +#define CL_IMAGE_ROW_ALIGNMENT_QCOM 0x40A2 +#define CL_IMAGE_SLICE_ALIGNMENT_QCOM 0x40A3 + +/* cl_uint host_cache_policy */ +#define CL_MEM_HOST_UNCACHED_QCOM 0x40A4 +#define CL_MEM_HOST_WRITEBACK_QCOM 0x40A5 +#define CL_MEM_HOST_WRITETHROUGH_QCOM 0x40A6 +#define CL_MEM_HOST_WRITE_COMBINING_QCOM 0x40A7 + + +typedef cl_int (CL_API_CALL * +clGetDeviceImageInfoQCOM_fn)( + cl_device_id device, + size_t image_width, + size_t image_height, + const cl_image_format* image_format, + cl_image_pitch_info_qcom param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) ; +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) -/****************************************** - * cl_img_cached_allocations extension * - ******************************************/ +extern CL_API_ENTRY cl_int CL_API_CALL +clGetDeviceImageInfoQCOM( + cl_device_id device, + size_t image_width, + size_t image_height, + const cl_image_format* image_format, + cl_image_pitch_info_qcom param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) ; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_qcom_ext_host_ptr_iocoherent +***************************************************************/ +#define cl_qcom_ext_host_ptr_iocoherent 1 +#define CL_QCOM_EXT_HOST_PTR_IOCOHERENT_EXTENSION_NAME \ + "cl_qcom_ext_host_ptr_iocoherent" + +/* cl_uint host_cache_policy */ +#define CL_MEM_HOST_IOCOHERENT_QCOM 0x40A9 + +/*************************************************************** +* cl_qcom_ion_host_ptr +***************************************************************/ +#define cl_qcom_ion_host_ptr 1 +#define CL_QCOM_ION_HOST_PTR_EXTENSION_NAME \ + "cl_qcom_ion_host_ptr" + +/* type cl_mem_ext_host_ptr */ +typedef struct _cl_mem_ion_host_ptr { + cl_mem_ext_host_ptr ext_host_ptr; + int ion_filedesc; + void* ion_hostptr; +} cl_mem_ion_host_ptr; + +/* cl_uint allocation_type */ +#define CL_MEM_ION_HOST_PTR_QCOM 0x40A8 -/* Flag values used by clCreateBuffer */ -#define CL_MEM_USE_UNCACHED_CPU_MEMORY_IMG (1 << 26) -#define CL_MEM_USE_CACHED_CPU_MEMORY_IMG (1 << 27) +/*************************************************************** +* cl_qcom_android_native_buffer_host_ptr +***************************************************************/ +#define cl_qcom_android_native_buffer_host_ptr 1 +#define CL_QCOM_ANDROID_NATIVE_BUFFER_HOST_PTR_EXTENSION_NAME \ + "cl_qcom_android_native_buffer_host_ptr" + +/* type cl_mem_ext_host_ptr */ +typedef struct _cl_mem_android_native_buffer_host_ptr { + cl_mem_ext_host_ptr ext_host_ptr; + void* anb_ptr; +} cl_mem_android_native_buffer_host_ptr; +/* cl_uint allocation_type */ +#define CL_MEM_ANDROID_NATIVE_BUFFER_HOST_PTR_QCOM 0x40C6 -/****************************************** - * cl_img_use_gralloc_ptr extension * - ******************************************/ +/*************************************************************** +* cl_img_yuv_image +***************************************************************/ +#define cl_img_yuv_image 1 +#define CL_IMG_YUV_IMAGE_EXTENSION_NAME \ + "cl_img_yuv_image" + +/* cl_channel_order */ +#define CL_NV21_IMG 0x40D0 +#define CL_YV12_IMG 0x40D1 + +/*************************************************************** +* cl_img_cached_allocations +***************************************************************/ +#define cl_img_cached_allocations 1 +#define CL_IMG_CACHED_ALLOCATIONS_EXTENSION_NAME \ + "cl_img_cached_allocations" + +/* cl_mem_flags */ +#define CL_MEM_USE_UNCACHED_CPU_MEMORY_IMG (1 << 26) +#define CL_MEM_USE_CACHED_CPU_MEMORY_IMG (1 << 27) + +/*************************************************************** +* cl_img_use_gralloc_ptr +***************************************************************/ #define cl_img_use_gralloc_ptr 1 +#define CL_IMG_USE_GRALLOC_PTR_EXTENSION_NAME \ + "cl_img_use_gralloc_ptr" -/* Flag values used by clCreateBuffer */ -#define CL_MEM_USE_GRALLOC_PTR_IMG (1 << 28) +/* Error codes */ +#define CL_GRALLOC_RESOURCE_NOT_ACQUIRED_IMG 0x40D4 +#define CL_INVALID_GRALLOC_OBJECT_IMG 0x40D5 + +/* cl_mem_flags */ +#define CL_MEM_USE_GRALLOC_PTR_IMG (1 << 28) + +/* cl_command_type */ +#define CL_COMMAND_ACQUIRE_GRALLOC_OBJECTS_IMG 0x40D2 +#define CL_COMMAND_RELEASE_GRALLOC_OBJECTS_IMG 0x40D3 + + +typedef cl_int (CL_API_CALL * +clEnqueueAcquireGrallocObjectsIMG_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clEnqueueReleaseGrallocObjectsIMG_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; -/* To be used by clGetEventInfo: */ -#define CL_COMMAND_ACQUIRE_GRALLOC_OBJECTS_IMG 0x40D2 -#define CL_COMMAND_RELEASE_GRALLOC_OBJECTS_IMG 0x40D3 - -/* Error codes from clEnqueueAcquireGrallocObjectsIMG and clEnqueueReleaseGrallocObjectsIMG */ -#define CL_GRALLOC_RESOURCE_NOT_ACQUIRED_IMG 0x40D4 -#define CL_INVALID_GRALLOC_OBJECT_IMG 0x40D5 - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueAcquireGrallocObjectsIMG(cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_EXT_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReleaseGrallocObjectsIMG(cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_EXT_SUFFIX__VERSION_1_2; - -/****************************************** - * cl_img_generate_mipmap extension * - ******************************************/ +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueAcquireGrallocObjectsIMG( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseGrallocObjectsIMG( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_img_generate_mipmap +***************************************************************/ #define cl_img_generate_mipmap 1 +#define CL_IMG_GENERATE_MIPMAP_EXTENSION_NAME \ + "cl_img_generate_mipmap" -typedef cl_uint cl_mipmap_filter_mode_img; +typedef cl_uint cl_mipmap_filter_mode_img; -/* To be used by clEnqueueGenerateMipmapIMG */ -#define CL_MIPMAP_FILTER_ANY_IMG 0x0 -#define CL_MIPMAP_FILTER_BOX_IMG 0x1 +/* cl_mipmap_filter_mode_img */ +#define CL_MIPMAP_FILTER_ANY_IMG 0x0 +#define CL_MIPMAP_FILTER_BOX_IMG 0x1 + +/* cl_command_type */ +#define CL_COMMAND_GENERATE_MIPMAP_IMG 0x40D6 + + +typedef cl_int (CL_API_CALL * +clEnqueueGenerateMipmapIMG_fn)( + cl_command_queue command_queue, + cl_mem src_image, + cl_mem dst_image, + cl_mipmap_filter_mode_img mipmap_filter_mode, + const size_t* array_region, + const size_t* mip_region, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; -/* To be used by clGetEventInfo */ -#define CL_COMMAND_GENERATE_MIPMAP_IMG 0x40D6 +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueGenerateMipmapIMG(cl_command_queue command_queue, - cl_mem src_image, - cl_mem dst_image, - cl_mipmap_filter_mode_img mipmap_filter_mode, - const size_t *array_region, - const size_t *mip_region, - cl_uint num_events_in_wait_list, - const cl_event *event_wait_list, - cl_event *event) CL_EXT_SUFFIX__VERSION_1_2; - -/****************************************** - * cl_img_mem_properties extension * - ******************************************/ +clEnqueueGenerateMipmapIMG( + cl_command_queue command_queue, + cl_mem src_image, + cl_mem dst_image, + cl_mipmap_filter_mode_img mipmap_filter_mode, + const size_t* array_region, + const size_t* mip_region, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_img_mem_properties +***************************************************************/ #define cl_img_mem_properties 1 +#define CL_IMG_MEM_PROPERTIES_EXTENSION_NAME \ + "cl_img_mem_properties" -/* To be used by clCreateBufferWithProperties */ -#define CL_MEM_ALLOC_FLAGS_IMG 0x40D7 - -/* To be used wiith the CL_MEM_ALLOC_FLAGS_IMG property */ -typedef cl_bitfield cl_mem_alloc_flags_img; +/* cl_mem_properties */ +#define CL_MEM_ALLOC_FLAGS_IMG 0x40D7 -/* To be used with cl_mem_alloc_flags_img */ -#define CL_MEM_ALLOC_RELAX_REQUIREMENTS_IMG (1 << 0) +/* cl_mem_alloc_flags_img */ +#define CL_MEM_ALLOC_RELAX_REQUIREMENTS_IMG (1 << 0) -/********************************* -* cl_khr_subgroups extension -*********************************/ +/*************************************************************** +* cl_khr_subgroups +***************************************************************/ #define cl_khr_subgroups 1 +#define CL_KHR_SUBGROUPS_EXTENSION_NAME \ + "cl_khr_subgroups" #if !defined(CL_VERSION_2_1) -/* For OpenCL 2.1 and newer, cl_kernel_sub_group_info is declared in CL.h. - In hindsight, there should have been a khr suffix on this type for - the extension, but keeping it un-suffixed to maintain backwards - compatibility. */ +/* defined in CL.h for OpenCL 2.1 and newer */ typedef cl_uint cl_kernel_sub_group_info; -#endif + +#endif /* !defined(CL_VERSION_2_1) */ /* cl_kernel_sub_group_info */ -#define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE_KHR 0x2033 -#define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR 0x2034 +#define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE_KHR 0x2033 +#define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR 0x2034 -extern CL_API_ENTRY cl_int CL_API_CALL -clGetKernelSubGroupInfoKHR(cl_kernel in_kernel, - cl_device_id in_device, - cl_kernel_sub_group_info param_name, - size_t input_value_size, - const void * input_value, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED; - -typedef CL_API_ENTRY cl_int -(CL_API_CALL * clGetKernelSubGroupInfoKHR_fn)(cl_kernel in_kernel, - cl_device_id in_device, - cl_kernel_sub_group_info param_name, - size_t input_value_size, - const void * input_value, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED; - - -/********************************* -* cl_khr_mipmap_image extension -*********************************/ -/* cl_sampler_properties */ -#define CL_SAMPLER_MIP_FILTER_MODE_KHR 0x1155 -#define CL_SAMPLER_LOD_MIN_KHR 0x1156 -#define CL_SAMPLER_LOD_MAX_KHR 0x1157 +typedef cl_int (CL_API_CALL * +clGetKernelSubGroupInfoKHR_fn)( + cl_kernel in_kernel, + cl_device_id in_device, + cl_kernel_sub_group_info param_name, + size_t input_value_size, + const void* input_value, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) -/********************************* -* cl_khr_priority_hints extension -*********************************/ -/* This extension define is for backwards compatibility. - It shouldn't be required since this extension has no new functions. */ +extern CL_API_ENTRY cl_int CL_API_CALL +clGetKernelSubGroupInfoKHR( + cl_kernel in_kernel, + cl_device_id in_device, + cl_kernel_sub_group_info param_name, + size_t input_value_size, + const void* input_value, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_0_DEPRECATED; + +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_khr_mipmap_image +***************************************************************/ +#define cl_khr_mipmap_image 1 +#define CL_KHR_MIPMAP_IMAGE_EXTENSION_NAME \ + "cl_khr_mipmap_image" + +/* cl_sampler_properties */ +#define CL_SAMPLER_MIP_FILTER_MODE_KHR 0x1155 +#define CL_SAMPLER_LOD_MIN_KHR 0x1156 +#define CL_SAMPLER_LOD_MAX_KHR 0x1157 + +/*************************************************************** +* cl_khr_priority_hints +***************************************************************/ #define cl_khr_priority_hints 1 +#define CL_KHR_PRIORITY_HINTS_EXTENSION_NAME \ + "cl_khr_priority_hints" -typedef cl_uint cl_queue_priority_khr; +/* To be used by clGetEventInfo */ +typedef cl_uint cl_queue_priority_khr; -/* cl_command_queue_properties */ -#define CL_QUEUE_PRIORITY_KHR 0x1096 +/* cl_queue_properties */ +#define CL_QUEUE_PRIORITY_KHR 0x1096 /* cl_queue_priority_khr */ -#define CL_QUEUE_PRIORITY_HIGH_KHR (1<<0) -#define CL_QUEUE_PRIORITY_MED_KHR (1<<1) -#define CL_QUEUE_PRIORITY_LOW_KHR (1<<2) - - -/********************************* -* cl_khr_throttle_hints extension -*********************************/ -/* This extension define is for backwards compatibility. - It shouldn't be required since this extension has no new functions. */ +#define CL_QUEUE_PRIORITY_HIGH_KHR (1 << 0) +#define CL_QUEUE_PRIORITY_MED_KHR (1 << 1) +#define CL_QUEUE_PRIORITY_LOW_KHR (1 << 2) + +/*************************************************************** +* cl_khr_throttle_hints +***************************************************************/ #define cl_khr_throttle_hints 1 +#define CL_KHR_THROTTLE_HINTS_EXTENSION_NAME \ + "cl_khr_throttle_hints" -typedef cl_uint cl_queue_throttle_khr; +/* To be used by clGetEventInfo */ +typedef cl_uint cl_queue_throttle_khr; -/* cl_command_queue_properties */ -#define CL_QUEUE_THROTTLE_KHR 0x1097 +/* cl_queue_properties */ +#define CL_QUEUE_THROTTLE_KHR 0x1097 /* cl_queue_throttle_khr */ -#define CL_QUEUE_THROTTLE_HIGH_KHR (1<<0) -#define CL_QUEUE_THROTTLE_MED_KHR (1<<1) -#define CL_QUEUE_THROTTLE_LOW_KHR (1<<2) - +#define CL_QUEUE_THROTTLE_HIGH_KHR (1 << 0) +#define CL_QUEUE_THROTTLE_MED_KHR (1 << 1) +#define CL_QUEUE_THROTTLE_LOW_KHR (1 << 2) -/********************************* +/*************************************************************** * cl_khr_subgroup_named_barrier -*********************************/ -/* This extension define is for backwards compatibility. - It shouldn't be required since this extension has no new functions. */ +***************************************************************/ #define cl_khr_subgroup_named_barrier 1 +#define CL_KHR_SUBGROUP_NAMED_BARRIER_EXTENSION_NAME \ + "cl_khr_subgroup_named_barrier" /* cl_device_info */ -#define CL_DEVICE_MAX_NAMED_BARRIER_COUNT_KHR 0x2035 +#define CL_DEVICE_MAX_NAMED_BARRIER_COUNT_KHR 0x2035 - -/********************************* +/*************************************************************** * cl_khr_extended_versioning -*********************************/ - +***************************************************************/ #define cl_khr_extended_versioning 1 +#define CL_KHR_EXTENDED_VERSIONING_EXTENSION_NAME \ + "cl_khr_extended_versioning" -#define CL_VERSION_MAJOR_BITS_KHR (10) -#define CL_VERSION_MINOR_BITS_KHR (10) -#define CL_VERSION_PATCH_BITS_KHR (12) +#define CL_VERSION_MAJOR_BITS_KHR 10 +#define CL_VERSION_MINOR_BITS_KHR 10 +#define CL_VERSION_PATCH_BITS_KHR 12 #define CL_VERSION_MAJOR_MASK_KHR ((1 << CL_VERSION_MAJOR_BITS_KHR) - 1) #define CL_VERSION_MINOR_MASK_KHR ((1 << CL_VERSION_MINOR_BITS_KHR) - 1) @@ -657,251 +1395,1883 @@ (((minor) & CL_VERSION_MINOR_MASK_KHR) << CL_VERSION_PATCH_BITS_KHR) | \ ((patch) & CL_VERSION_PATCH_MASK_KHR)) -typedef cl_uint cl_version_khr; +#define CL_NAME_VERSION_MAX_NAME_SIZE_KHR 64 -#define CL_NAME_VERSION_MAX_NAME_SIZE_KHR 64 - -typedef struct _cl_name_version_khr -{ +typedef cl_uint cl_version_khr; +typedef struct _cl_name_version_khr { cl_version_khr version; char name[CL_NAME_VERSION_MAX_NAME_SIZE_KHR]; } cl_name_version_khr; /* cl_platform_info */ -#define CL_PLATFORM_NUMERIC_VERSION_KHR 0x0906 -#define CL_PLATFORM_EXTENSIONS_WITH_VERSION_KHR 0x0907 +#define CL_PLATFORM_NUMERIC_VERSION_KHR 0x0906 +#define CL_PLATFORM_EXTENSIONS_WITH_VERSION_KHR 0x0907 /* cl_device_info */ -#define CL_DEVICE_NUMERIC_VERSION_KHR 0x105E -#define CL_DEVICE_OPENCL_C_NUMERIC_VERSION_KHR 0x105F -#define CL_DEVICE_EXTENSIONS_WITH_VERSION_KHR 0x1060 -#define CL_DEVICE_ILS_WITH_VERSION_KHR 0x1061 -#define CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION_KHR 0x1062 +#define CL_DEVICE_NUMERIC_VERSION_KHR 0x105E +#define CL_DEVICE_OPENCL_C_NUMERIC_VERSION_KHR 0x105F +#define CL_DEVICE_EXTENSIONS_WITH_VERSION_KHR 0x1060 +#define CL_DEVICE_ILS_WITH_VERSION_KHR 0x1061 +#define CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION_KHR 0x1062 + +/*************************************************************** +* cl_khr_device_uuid +***************************************************************/ +#define cl_khr_device_uuid 1 +#define CL_KHR_DEVICE_UUID_EXTENSION_NAME \ + "cl_khr_device_uuid" +/* Size Constants */ +#define CL_UUID_SIZE_KHR 16 +#define CL_LUID_SIZE_KHR 8 -/********************************* -* cl_khr_device_uuid extension -*********************************/ -#define cl_khr_device_uuid 1 +/* cl_device_info */ +#define CL_DEVICE_UUID_KHR 0x106A +#define CL_DRIVER_UUID_KHR 0x106B +#define CL_DEVICE_LUID_VALID_KHR 0x106C +#define CL_DEVICE_LUID_KHR 0x106D +#define CL_DEVICE_NODE_MASK_KHR 0x106E + +/*************************************************************** +* cl_khr_pci_bus_info +***************************************************************/ +#define cl_khr_pci_bus_info 1 +#define CL_KHR_PCI_BUS_INFO_EXTENSION_NAME \ + "cl_khr_pci_bus_info" + +typedef struct _cl_device_pci_bus_info_khr { + cl_uint pci_domain; + cl_uint pci_bus; + cl_uint pci_device; + cl_uint pci_function; +} cl_device_pci_bus_info_khr; -#define CL_UUID_SIZE_KHR 16 -#define CL_LUID_SIZE_KHR 8 +/* cl_device_info */ +#define CL_DEVICE_PCI_BUS_INFO_KHR 0x410F -#define CL_DEVICE_UUID_KHR 0x106A -#define CL_DRIVER_UUID_KHR 0x106B -#define CL_DEVICE_LUID_VALID_KHR 0x106C -#define CL_DEVICE_LUID_KHR 0x106D -#define CL_DEVICE_NODE_MASK_KHR 0x106E +/*************************************************************** +* cl_khr_suggested_local_work_size +***************************************************************/ +#define cl_khr_suggested_local_work_size 1 +#define CL_KHR_SUGGESTED_LOCAL_WORK_SIZE_EXTENSION_NAME \ + "cl_khr_suggested_local_work_size" + + +typedef cl_int (CL_API_CALL * +clGetKernelSuggestedLocalWorkSizeKHR_fn)( + cl_command_queue command_queue, + cl_kernel kernel, + cl_uint work_dim, + const size_t* global_work_offset, + const size_t* global_work_size, + size_t* suggested_local_work_size) CL_API_SUFFIX__VERSION_3_0; +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) -/********************************** - * cl_arm_import_memory extension * - **********************************/ -#define cl_arm_import_memory 1 +extern CL_API_ENTRY cl_int CL_API_CALL +clGetKernelSuggestedLocalWorkSizeKHR( + cl_command_queue command_queue, + cl_kernel kernel, + cl_uint work_dim, + const size_t* global_work_offset, + const size_t* global_work_size, + size_t* suggested_local_work_size) CL_API_SUFFIX__VERSION_3_0; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_khr_integer_dot_product +***************************************************************/ +#define cl_khr_integer_dot_product 1 +#define CL_KHR_INTEGER_DOT_PRODUCT_EXTENSION_NAME \ + "cl_khr_integer_dot_product" + +typedef cl_bitfield cl_device_integer_dot_product_capabilities_khr; +typedef struct _cl_device_integer_dot_product_acceleration_properties_khr { + cl_bool signed_accelerated; + cl_bool unsigned_accelerated; + cl_bool mixed_signedness_accelerated; + cl_bool accumulating_saturating_signed_accelerated; + cl_bool accumulating_saturating_unsigned_accelerated; + cl_bool accumulating_saturating_mixed_signedness_accelerated; +} cl_device_integer_dot_product_acceleration_properties_khr; + +/* cl_device_integer_dot_product_capabilities_khr */ +#define CL_DEVICE_INTEGER_DOT_PRODUCT_INPUT_4x8BIT_PACKED_KHR (1 << 0) +#define CL_DEVICE_INTEGER_DOT_PRODUCT_INPUT_4x8BIT_KHR (1 << 1) -typedef intptr_t cl_import_properties_arm; +/* cl_device_info */ +#define CL_DEVICE_INTEGER_DOT_PRODUCT_CAPABILITIES_KHR 0x1073 +#define CL_DEVICE_INTEGER_DOT_PRODUCT_ACCELERATION_PROPERTIES_8BIT_KHR 0x1074 +#define CL_DEVICE_INTEGER_DOT_PRODUCT_ACCELERATION_PROPERTIES_4x8BIT_PACKED_KHR 0x1075 + +/*************************************************************** +* cl_khr_external_memory +***************************************************************/ +#define cl_khr_external_memory 1 +#define CL_KHR_EXTERNAL_MEMORY_EXTENSION_NAME \ + "cl_khr_external_memory" -/* Default and valid proporties name for cl_arm_import_memory */ -#define CL_IMPORT_TYPE_ARM 0x40B2 +typedef cl_uint cl_external_memory_handle_type_khr; -/* Host process memory type default value for CL_IMPORT_TYPE_ARM property */ -#define CL_IMPORT_TYPE_HOST_ARM 0x40B3 +/* cl_platform_info */ +#define CL_PLATFORM_EXTERNAL_MEMORY_IMPORT_HANDLE_TYPES_KHR 0x2044 -/* DMA BUF memory type value for CL_IMPORT_TYPE_ARM property */ -#define CL_IMPORT_TYPE_DMA_BUF_ARM 0x40B4 +/* cl_device_info */ +#define CL_DEVICE_EXTERNAL_MEMORY_IMPORT_HANDLE_TYPES_KHR 0x204F -/* Protected memory property */ -#define CL_IMPORT_TYPE_PROTECTED_ARM 0x40B5 +/* cl_mem_properties */ +#define CL_DEVICE_HANDLE_LIST_KHR 0x2051 +#define CL_DEVICE_HANDLE_LIST_END_KHR 0 + +/* cl_command_type */ +#define CL_COMMAND_ACQUIRE_EXTERNAL_MEM_OBJECTS_KHR 0x2047 +#define CL_COMMAND_RELEASE_EXTERNAL_MEM_OBJECTS_KHR 0x2048 + + +typedef cl_int (CL_API_CALL * +clEnqueueAcquireExternalMemObjectsKHR_fn)( + cl_command_queue command_queue, + cl_uint num_mem_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_3_0; + +typedef cl_int (CL_API_CALL * +clEnqueueReleaseExternalMemObjectsKHR_fn)( + cl_command_queue command_queue, + cl_uint num_mem_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_3_0; -/* Android hardware buffer type value for CL_IMPORT_TYPE_ARM property */ -#define CL_IMPORT_TYPE_ANDROID_HARDWARE_BUFFER_ARM 0x41E2 +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) -/* Data consistency with host property */ -#define CL_IMPORT_DMA_BUF_DATA_CONSISTENCY_WITH_HOST_ARM 0x41E3 +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueAcquireExternalMemObjectsKHR( + cl_command_queue command_queue, + cl_uint num_mem_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_3_0; -/* Import memory size value to indicate a size for the whole buffer */ -#define CL_IMPORT_MEMORY_WHOLE_ALLOCATION_ARM SIZE_MAX +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseExternalMemObjectsKHR( + cl_command_queue command_queue, + cl_uint num_mem_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_3_0; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_khr_external_memory_dma_buf +***************************************************************/ +#define cl_khr_external_memory_dma_buf 1 +#define CL_KHR_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME \ + "cl_khr_external_memory_dma_buf" + +/* cl_external_memory_handle_type_khr */ +#define CL_EXTERNAL_MEMORY_HANDLE_DMA_BUF_KHR 0x2067 + +/*************************************************************** +* cl_khr_external_memory_dx +***************************************************************/ +#define cl_khr_external_memory_dx 1 +#define CL_KHR_EXTERNAL_MEMORY_DX_EXTENSION_NAME \ + "cl_khr_external_memory_dx" + +/* cl_external_memory_handle_type_khr */ +#define CL_EXTERNAL_MEMORY_HANDLE_D3D11_TEXTURE_KHR 0x2063 +#define CL_EXTERNAL_MEMORY_HANDLE_D3D11_TEXTURE_KMT_KHR 0x2064 +#define CL_EXTERNAL_MEMORY_HANDLE_D3D12_HEAP_KHR 0x2065 +#define CL_EXTERNAL_MEMORY_HANDLE_D3D12_RESOURCE_KHR 0x2066 + +/*************************************************************** +* cl_khr_external_memory_opaque_fd +***************************************************************/ +#define cl_khr_external_memory_opaque_fd 1 +#define CL_KHR_EXTERNAL_MEMORY_OPAQUE_FD_EXTENSION_NAME \ + "cl_khr_external_memory_opaque_fd" + +/* cl_external_memory_handle_type_khr */ +#define CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_FD_KHR 0x2060 + +/*************************************************************** +* cl_khr_external_memory_win32 +***************************************************************/ +#define cl_khr_external_memory_win32 1 +#define CL_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME \ + "cl_khr_external_memory_win32" + +/* cl_external_memory_handle_type_khr */ +#define CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_WIN32_KHR 0x2061 +#define CL_EXTERNAL_MEMORY_HANDLE_OPAQUE_WIN32_KMT_KHR 0x2062 + +/*************************************************************** +* cl_khr_external_semaphore +***************************************************************/ +#define cl_khr_external_semaphore 1 +#define CL_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME \ + "cl_khr_external_semaphore" -/* This extension adds a new function that allows for direct memory import into - * OpenCL via the clImportMemoryARM function. - * - * Memory imported through this interface will be mapped into the device's page - * tables directly, providing zero copy access. It will never fall back to copy - * operations and aliased buffers. - * - * Types of memory supported for import are specified as additional extension - * strings. - * - * This extension produces cl_mem allocations which are compatible with all other - * users of cl_mem in the standard API. - * - * This extension maps pages with the same properties as the normal buffer creation - * function clCreateBuffer. - */ -extern CL_API_ENTRY cl_mem CL_API_CALL -clImportMemoryARM( cl_context context, - cl_mem_flags flags, - const cl_import_properties_arm *properties, - void *memory, - size_t size, - cl_int *errcode_ret) CL_EXT_SUFFIX__VERSION_1_0; +typedef struct _cl_semaphore_khr * cl_semaphore_khr; +typedef cl_uint cl_external_semaphore_handle_type_khr; + +/* cl_platform_info */ +#define CL_PLATFORM_SEMAPHORE_IMPORT_HANDLE_TYPES_KHR 0x2037 +#define CL_PLATFORM_SEMAPHORE_EXPORT_HANDLE_TYPES_KHR 0x2038 + +/* cl_device_info */ +#define CL_DEVICE_SEMAPHORE_IMPORT_HANDLE_TYPES_KHR 0x204D +#define CL_DEVICE_SEMAPHORE_EXPORT_HANDLE_TYPES_KHR 0x204E + +/* cl_semaphore_properties_khr */ +#define CL_SEMAPHORE_EXPORT_HANDLE_TYPES_KHR 0x203F +#define CL_SEMAPHORE_EXPORT_HANDLE_TYPES_LIST_END_KHR 0 + + +typedef cl_int (CL_API_CALL * +clGetSemaphoreHandleForTypeKHR_fn)( + cl_semaphore_khr sema_object, + cl_device_id device, + cl_external_semaphore_handle_type_khr handle_type, + size_t handle_size, + void* handle_ptr, + size_t* handle_size_ret) CL_API_SUFFIX__VERSION_1_2; + +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSemaphoreHandleForTypeKHR( + cl_semaphore_khr sema_object, + cl_device_id device, + cl_external_semaphore_handle_type_khr handle_type, + size_t handle_size, + void* handle_ptr, + size_t* handle_size_ret) CL_API_SUFFIX__VERSION_1_2; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_khr_external_semaphore_dx_fence +***************************************************************/ +#define cl_khr_external_semaphore_dx_fence 1 +#define CL_KHR_EXTERNAL_SEMAPHORE_DX_FENCE_EXTENSION_NAME \ + "cl_khr_external_semaphore_dx_fence" + +/* cl_external_semaphore_handle_type_khr */ +#define CL_SEMAPHORE_HANDLE_D3D12_FENCE_KHR 0x2059 + +/*************************************************************** +* cl_khr_external_semaphore_opaque_fd +***************************************************************/ +#define cl_khr_external_semaphore_opaque_fd 1 +#define CL_KHR_EXTERNAL_SEMAPHORE_OPAQUE_FD_EXTENSION_NAME \ + "cl_khr_external_semaphore_opaque_fd" + +/* cl_external_semaphore_handle_type_khr */ +#define CL_SEMAPHORE_HANDLE_OPAQUE_FD_KHR 0x2055 + +/*************************************************************** +* cl_khr_external_semaphore_sync_fd +***************************************************************/ +#define cl_khr_external_semaphore_sync_fd 1 +#define CL_KHR_EXTERNAL_SEMAPHORE_SYNC_FD_EXTENSION_NAME \ + "cl_khr_external_semaphore_sync_fd" + +/* cl_external_semaphore_handle_type_khr */ +#define CL_SEMAPHORE_HANDLE_SYNC_FD_KHR 0x2058 + +/*************************************************************** +* cl_khr_external_semaphore_win32 +***************************************************************/ +#define cl_khr_external_semaphore_win32 1 +#define CL_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME \ + "cl_khr_external_semaphore_win32" + +/* cl_external_semaphore_handle_type_khr */ +#define CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_KHR 0x2056 +#define CL_SEMAPHORE_HANDLE_OPAQUE_WIN32_KMT_KHR 0x2057 + +/*************************************************************** +* cl_khr_semaphore +***************************************************************/ +#define cl_khr_semaphore 1 +#define CL_KHR_SEMAPHORE_EXTENSION_NAME \ + "cl_khr_semaphore" + +/* type cl_semaphore_khr */ +typedef cl_properties cl_semaphore_properties_khr; +typedef cl_uint cl_semaphore_info_khr; +typedef cl_uint cl_semaphore_type_khr; +typedef cl_ulong cl_semaphore_payload_khr; + +/* cl_semaphore_type */ +#define CL_SEMAPHORE_TYPE_BINARY_KHR 1 + +/* cl_platform_info */ +#define CL_PLATFORM_SEMAPHORE_TYPES_KHR 0x2036 + +/* cl_device_info */ +#define CL_DEVICE_SEMAPHORE_TYPES_KHR 0x204C + +/* cl_semaphore_info_khr */ +#define CL_SEMAPHORE_CONTEXT_KHR 0x2039 +#define CL_SEMAPHORE_REFERENCE_COUNT_KHR 0x203A +#define CL_SEMAPHORE_PROPERTIES_KHR 0x203B +#define CL_SEMAPHORE_PAYLOAD_KHR 0x203C + +/* cl_semaphore_info_khr or cl_semaphore_properties_khr */ +#define CL_SEMAPHORE_TYPE_KHR 0x203D +/* enum CL_DEVICE_HANDLE_LIST_KHR */ +/* enum CL_DEVICE_HANDLE_LIST_END_KHR */ + +/* cl_command_type */ +#define CL_COMMAND_SEMAPHORE_WAIT_KHR 0x2042 +#define CL_COMMAND_SEMAPHORE_SIGNAL_KHR 0x2043 + +/* Error codes */ +#define CL_INVALID_SEMAPHORE_KHR -1142 + + +typedef cl_semaphore_khr (CL_API_CALL * +clCreateSemaphoreWithPropertiesKHR_fn)( + cl_context context, + const cl_semaphore_properties_khr* sema_props, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clEnqueueWaitSemaphoresKHR_fn)( + cl_command_queue command_queue, + cl_uint num_sema_objects, + const cl_semaphore_khr* sema_objects, + const cl_semaphore_payload_khr* sema_payload_list, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clEnqueueSignalSemaphoresKHR_fn)( + cl_command_queue command_queue, + cl_uint num_sema_objects, + const cl_semaphore_khr* sema_objects, + const cl_semaphore_payload_khr* sema_payload_list, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clGetSemaphoreInfoKHR_fn)( + cl_semaphore_khr sema_object, + cl_semaphore_info_khr param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clReleaseSemaphoreKHR_fn)( + cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clRetainSemaphoreKHR_fn)( + cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; + +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_semaphore_khr CL_API_CALL +clCreateSemaphoreWithPropertiesKHR( + cl_context context, + const cl_semaphore_properties_khr* sema_props, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueWaitSemaphoresKHR( + cl_command_queue command_queue, + cl_uint num_sema_objects, + const cl_semaphore_khr* sema_objects, + const cl_semaphore_payload_khr* sema_payload_list, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSignalSemaphoresKHR( + cl_command_queue command_queue, + cl_uint num_sema_objects, + const cl_semaphore_khr* sema_objects, + const cl_semaphore_payload_khr* sema_payload_list, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSemaphoreInfoKHR( + cl_semaphore_khr sema_object, + cl_semaphore_info_khr param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clReleaseSemaphoreKHR( + cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clRetainSemaphoreKHR( + cl_semaphore_khr sema_object) CL_API_SUFFIX__VERSION_1_2; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_arm_import_memory +***************************************************************/ +#define cl_arm_import_memory 1 +#define CL_ARM_IMPORT_MEMORY_EXTENSION_NAME \ + "cl_arm_import_memory" + +typedef intptr_t cl_import_properties_arm; + +/* cl_import_properties_arm */ +#define CL_IMPORT_TYPE_ARM 0x40B2 +#define CL_IMPORT_TYPE_HOST_ARM 0x40B3 +#define CL_IMPORT_TYPE_DMA_BUF_ARM 0x40B4 +#define CL_IMPORT_TYPE_PROTECTED_ARM 0x40B5 +#define CL_IMPORT_TYPE_ANDROID_HARDWARE_BUFFER_ARM 0x41E2 +#define CL_IMPORT_DMA_BUF_DATA_CONSISTENCY_WITH_HOST_ARM 0x41E3 +#define CL_IMPORT_MEMORY_WHOLE_ALLOCATION_ARM SIZE_MAX +#define CL_IMPORT_ANDROID_HARDWARE_BUFFER_PLANE_INDEX_ARM 0x41EF +#define CL_IMPORT_ANDROID_HARDWARE_BUFFER_LAYER_INDEX_ARM 0x41F0 + + +typedef cl_mem (CL_API_CALL * +clImportMemoryARM_fn)( + cl_context context, + cl_mem_flags flags, + const cl_import_properties_arm* properties, + void* memory, + size_t size, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) -/****************************************** - * cl_arm_shared_virtual_memory extension * - ******************************************/ +extern CL_API_ENTRY cl_mem CL_API_CALL +clImportMemoryARM( + cl_context context, + cl_mem_flags flags, + const cl_import_properties_arm* properties, + void* memory, + size_t size, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_arm_shared_virtual_memory +***************************************************************/ #define cl_arm_shared_virtual_memory 1 +#define CL_ARM_SHARED_VIRTUAL_MEMORY_EXTENSION_NAME \ + "cl_arm_shared_virtual_memory" -/* Used by clGetDeviceInfo */ -#define CL_DEVICE_SVM_CAPABILITIES_ARM 0x40B6 +typedef cl_bitfield cl_svm_mem_flags_arm; +typedef cl_uint cl_kernel_exec_info_arm; +typedef cl_bitfield cl_device_svm_capabilities_arm; -/* Used by clGetMemObjectInfo */ -#define CL_MEM_USES_SVM_POINTER_ARM 0x40B7 +/* cl_device_info */ +#define CL_DEVICE_SVM_CAPABILITIES_ARM 0x40B6 -/* Used by clSetKernelExecInfoARM: */ -#define CL_KERNEL_EXEC_INFO_SVM_PTRS_ARM 0x40B8 -#define CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM_ARM 0x40B9 - -/* To be used by clGetEventInfo: */ -#define CL_COMMAND_SVM_FREE_ARM 0x40BA -#define CL_COMMAND_SVM_MEMCPY_ARM 0x40BB -#define CL_COMMAND_SVM_MEMFILL_ARM 0x40BC -#define CL_COMMAND_SVM_MAP_ARM 0x40BD -#define CL_COMMAND_SVM_UNMAP_ARM 0x40BE - -/* Flag values returned by clGetDeviceInfo with CL_DEVICE_SVM_CAPABILITIES_ARM as the param_name. */ -#define CL_DEVICE_SVM_COARSE_GRAIN_BUFFER_ARM (1 << 0) -#define CL_DEVICE_SVM_FINE_GRAIN_BUFFER_ARM (1 << 1) -#define CL_DEVICE_SVM_FINE_GRAIN_SYSTEM_ARM (1 << 2) -#define CL_DEVICE_SVM_ATOMICS_ARM (1 << 3) - -/* Flag values used by clSVMAllocARM: */ -#define CL_MEM_SVM_FINE_GRAIN_BUFFER_ARM (1 << 10) -#define CL_MEM_SVM_ATOMICS_ARM (1 << 11) - -typedef cl_bitfield cl_svm_mem_flags_arm; -typedef cl_uint cl_kernel_exec_info_arm; -typedef cl_bitfield cl_device_svm_capabilities_arm; - -extern CL_API_ENTRY void * CL_API_CALL -clSVMAllocARM(cl_context context, - cl_svm_mem_flags_arm flags, - size_t size, - cl_uint alignment) CL_EXT_SUFFIX__VERSION_1_2; +/* cl_mem_info */ +#define CL_MEM_USES_SVM_POINTER_ARM 0x40B7 + +/* cl_kernel_exec_info_arm */ +#define CL_KERNEL_EXEC_INFO_SVM_PTRS_ARM 0x40B8 +#define CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM_ARM 0x40B9 + +/* cl_command_type */ +#define CL_COMMAND_SVM_FREE_ARM 0x40BA +#define CL_COMMAND_SVM_MEMCPY_ARM 0x40BB +#define CL_COMMAND_SVM_MEMFILL_ARM 0x40BC +#define CL_COMMAND_SVM_MAP_ARM 0x40BD +#define CL_COMMAND_SVM_UNMAP_ARM 0x40BE + +/* cl_device_svm_capabilities_arm */ +#define CL_DEVICE_SVM_COARSE_GRAIN_BUFFER_ARM (1 << 0) +#define CL_DEVICE_SVM_FINE_GRAIN_BUFFER_ARM (1 << 1) +#define CL_DEVICE_SVM_FINE_GRAIN_SYSTEM_ARM (1 << 2) +#define CL_DEVICE_SVM_ATOMICS_ARM (1 << 3) + +/* cl_svm_mem_flags_arm */ +#define CL_MEM_SVM_FINE_GRAIN_BUFFER_ARM (1 << 10) +#define CL_MEM_SVM_ATOMICS_ARM (1 << 11) + + +typedef void* (CL_API_CALL * +clSVMAllocARM_fn)( + cl_context context, + cl_svm_mem_flags_arm flags, + size_t size, + cl_uint alignment) CL_API_SUFFIX__VERSION_1_2; + +typedef void (CL_API_CALL * +clSVMFreeARM_fn)( + cl_context context, + void* svm_pointer) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clEnqueueSVMFreeARM_fn)( + cl_command_queue command_queue, + cl_uint num_svm_pointers, + void* svm_pointers[], + void (CL_CALLBACK* pfn_free_func)(cl_command_queue queue, cl_uint num_svm_pointers, void * svm_pointers[], void *user_data), + void* user_data, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clEnqueueSVMMemcpyARM_fn)( + cl_command_queue command_queue, + cl_bool blocking_copy, + void* dst_ptr, + const void* src_ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clEnqueueSVMMemFillARM_fn)( + cl_command_queue command_queue, + void* svm_ptr, + const void* pattern, + size_t pattern_size, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clEnqueueSVMMapARM_fn)( + cl_command_queue command_queue, + cl_bool blocking_map, + cl_map_flags flags, + void* svm_ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clEnqueueSVMUnmapARM_fn)( + cl_command_queue command_queue, + void* svm_ptr, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clSetKernelArgSVMPointerARM_fn)( + cl_kernel kernel, + cl_uint arg_index, + const void* arg_value) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clSetKernelExecInfoARM_fn)( + cl_kernel kernel, + cl_kernel_exec_info_arm param_name, + size_t param_value_size, + const void* param_value) CL_API_SUFFIX__VERSION_1_2; + +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY void* CL_API_CALL +clSVMAllocARM( + cl_context context, + cl_svm_mem_flags_arm flags, + size_t size, + cl_uint alignment) CL_API_SUFFIX__VERSION_1_2; extern CL_API_ENTRY void CL_API_CALL -clSVMFreeARM(cl_context context, - void * svm_pointer) CL_EXT_SUFFIX__VERSION_1_2; +clSVMFreeARM( + cl_context context, + void* svm_pointer) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSVMFreeARM( + cl_command_queue command_queue, + cl_uint num_svm_pointers, + void* svm_pointers[], + void (CL_CALLBACK* pfn_free_func)(cl_command_queue queue, cl_uint num_svm_pointers, void * svm_pointers[], void *user_data), + void* user_data, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSVMMemcpyARM( + cl_command_queue command_queue, + cl_bool blocking_copy, + void* dst_ptr, + const void* src_ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSVMMemFillARM( + cl_command_queue command_queue, + void* svm_ptr, + const void* pattern, + size_t pattern_size, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueSVMMapARM( + cl_command_queue command_queue, + cl_bool blocking_map, + cl_map_flags flags, + void* svm_ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMFreeARM(cl_command_queue command_queue, - cl_uint num_svm_pointers, - void * svm_pointers[], - void (CL_CALLBACK * pfn_free_func)(cl_command_queue queue, - cl_uint num_svm_pointers, - void * svm_pointers[], - void * user_data), - void * user_data, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_EXT_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMMemcpyARM(cl_command_queue command_queue, - cl_bool blocking_copy, - void * dst_ptr, - const void * src_ptr, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_EXT_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMMemFillARM(cl_command_queue command_queue, - void * svm_ptr, - const void * pattern, - size_t pattern_size, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_EXT_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMMapARM(cl_command_queue command_queue, - cl_bool blocking_map, - cl_map_flags flags, - void * svm_ptr, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_EXT_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueSVMUnmapARM(cl_command_queue command_queue, - void * svm_ptr, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_EXT_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clSetKernelArgSVMPointerARM(cl_kernel kernel, - cl_uint arg_index, - const void * arg_value) CL_EXT_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clSetKernelExecInfoARM(cl_kernel kernel, - cl_kernel_exec_info_arm param_name, - size_t param_value_size, - const void * param_value) CL_EXT_SUFFIX__VERSION_1_2; - -/******************************** - * cl_arm_get_core_id extension * - ********************************/ +clEnqueueSVMUnmapARM( + cl_command_queue command_queue, + void* svm_ptr, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; -#ifdef CL_VERSION_1_2 +extern CL_API_ENTRY cl_int CL_API_CALL +clSetKernelArgSVMPointerARM( + cl_kernel kernel, + cl_uint arg_index, + const void* arg_value) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clSetKernelExecInfoARM( + cl_kernel kernel, + cl_kernel_exec_info_arm param_name, + size_t param_value_size, + const void* param_value) CL_API_SUFFIX__VERSION_1_2; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_arm_get_core_id +***************************************************************/ +#if defined(CL_VERSION_1_2) #define cl_arm_get_core_id 1 +#define CL_ARM_GET_CORE_ID_EXTENSION_NAME \ + "cl_arm_get_core_id" -/* Device info property for bitfield of cores present */ -#define CL_DEVICE_COMPUTE_UNITS_BITFIELD_ARM 0x40BF +/* cl_device_info */ +#define CL_DEVICE_COMPUTE_UNITS_BITFIELD_ARM 0x40BF -#endif /* CL_VERSION_1_2 */ +#endif /* defined(CL_VERSION_1_2) */ -/********************************* +/*************************************************************** * cl_arm_job_slot_selection -*********************************/ - +***************************************************************/ #define cl_arm_job_slot_selection 1 +#define CL_ARM_JOB_SLOT_SELECTION_EXTENSION_NAME \ + "cl_arm_job_slot_selection" /* cl_device_info */ -#define CL_DEVICE_JOB_SLOTS_ARM 0x41E0 +#define CL_DEVICE_JOB_SLOTS_ARM 0x41E0 -/* cl_command_queue_properties */ -#define CL_QUEUE_JOB_SLOT_ARM 0x41E1 +/* cl_queue_properties */ +#define CL_QUEUE_JOB_SLOT_ARM 0x41E1 -/********************************* +/*************************************************************** * cl_arm_scheduling_controls -*********************************/ - +***************************************************************/ #define cl_arm_scheduling_controls 1 +#define CL_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME \ + "cl_arm_scheduling_controls" -/* cl_device_info */ -#define CL_DEVICE_SCHEDULING_CONTROLS_CAPABILITIES_ARM 0x41E4 +/* Types */ +typedef cl_bitfield cl_device_scheduling_controls_capabilities_arm; -#define CL_DEVICE_SCHEDULING_KERNEL_BATCHING_ARM (1 << 0) -#define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_ARM (1 << 1) +/* cl_device_scheduling_controls_capabilities_arm */ +#define CL_DEVICE_SCHEDULING_KERNEL_BATCHING_ARM (1 << 0) +#define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_ARM (1 << 1) #define CL_DEVICE_SCHEDULING_WORKGROUP_BATCH_SIZE_MODIFIER_ARM (1 << 2) +#define CL_DEVICE_SCHEDULING_DEFERRED_FLUSH_ARM (1 << 3) +#define CL_DEVICE_SCHEDULING_REGISTER_ALLOCATION_ARM (1 << 4) +#define CL_DEVICE_SCHEDULING_WARP_THROTTLING_ARM (1 << 5) +#define CL_DEVICE_SCHEDULING_COMPUTE_UNIT_BATCH_QUEUE_SIZE_ARM (1 << 6) + +/* cl_device_info */ +#define CL_DEVICE_SCHEDULING_CONTROLS_CAPABILITIES_ARM 0x41E4 +#define CL_DEVICE_SUPPORTED_REGISTER_ALLOCATIONS_ARM 0x41EB +#define CL_DEVICE_MAX_WARP_COUNT_ARM 0x41EA + +/* cl_kernel_exec_info */ +#define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_ARM 0x41E5 +#define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_MODIFIER_ARM 0x41E6 +#define CL_KERNEL_EXEC_INFO_WARP_COUNT_LIMIT_ARM 0x41E8 +#define CL_KERNEL_EXEC_INFO_COMPUTE_UNIT_MAX_QUEUED_BATCHES_ARM 0x41F1 /* cl_kernel_info */ -#define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_ARM 0x41E5 -#define CL_KERNEL_EXEC_INFO_WORKGROUP_BATCH_SIZE_MODIFIER_ARM 0x41E6 +#define CL_KERNEL_MAX_WARP_COUNT_ARM 0x41E9 /* cl_queue_properties */ -#define CL_QUEUE_KERNEL_BATCHING_ARM 0x41E7 +#define CL_QUEUE_KERNEL_BATCHING_ARM 0x41E7 +#define CL_QUEUE_DEFERRED_FLUSH_ARM 0x41EC + +/*************************************************************** +* cl_arm_controlled_kernel_termination +***************************************************************/ +#define cl_arm_controlled_kernel_termination 1 +#define CL_ARM_CONTROLLED_KERNEL_TERMINATION_EXTENSION_NAME \ + "cl_arm_controlled_kernel_termination" + +/* Types */ +typedef cl_bitfield cl_device_controlled_termination_capabilities_arm; + +/* Error codes */ +#define CL_COMMAND_TERMINATED_ITSELF_WITH_FAILURE_ARM -1108 + +/* cl_device_controlled_termination_capabilities_arm */ +#define CL_DEVICE_CONTROLLED_TERMINATION_SUCCESS_ARM (1 << 0) +#define CL_DEVICE_CONTROLLED_TERMINATION_FAILURE_ARM (1 << 1) +#define CL_DEVICE_CONTROLLED_TERMINATION_QUERY_ARM (1 << 2) + +/* cl_device_info */ +#define CL_DEVICE_CONTROLLED_TERMINATION_CAPABILITIES_ARM 0x41EE + +/* cl_event_info */ +#define CL_EVENT_COMMAND_TERMINATION_REASON_ARM 0x41ED + +/* cl_command_termination_reason_arm */ +#define CL_COMMAND_TERMINATION_COMPLETION_ARM 0 +#define CL_COMMAND_TERMINATION_CONTROLLED_SUCCESS_ARM 1 +#define CL_COMMAND_TERMINATION_CONTROLLED_FAILURE_ARM 2 +#define CL_COMMAND_TERMINATION_ERROR_ARM 3 + +/*************************************************************** +* cl_arm_protected_memory_allocation +***************************************************************/ +#define cl_arm_protected_memory_allocation 1 +#define CL_ARM_PROTECTED_MEMORY_ALLOCATION_EXTENSION_NAME \ + "cl_arm_protected_memory_allocation" + +#define CL_MEM_PROTECTED_ALLOC_ARM ((cl_bitfield)1 << 36) + +/*************************************************************** +* cl_intel_exec_by_local_thread +***************************************************************/ +#define cl_intel_exec_by_local_thread 1 +#define CL_INTEL_EXEC_BY_LOCAL_THREAD_EXTENSION_NAME \ + "cl_intel_exec_by_local_thread" + +/* cl_command_queue_properties - bitfield */ +#define CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL ((cl_bitfield)1 << 31) + +/*************************************************************** +* cl_intel_device_attribute_query +***************************************************************/ +#define cl_intel_device_attribute_query 1 +#define CL_INTEL_DEVICE_ATTRIBUTE_QUERY_EXTENSION_NAME \ + "cl_intel_device_attribute_query" + +typedef cl_bitfield cl_device_feature_capabilities_intel; + +/* cl_device_feature_capabilities_intel */ +#define CL_DEVICE_FEATURE_FLAG_DP4A_INTEL (1 << 0) +#define CL_DEVICE_FEATURE_FLAG_DPAS_INTEL (1 << 1) + +/* cl_device_info */ +#define CL_DEVICE_IP_VERSION_INTEL 0x4250 +#define CL_DEVICE_ID_INTEL 0x4251 +#define CL_DEVICE_NUM_SLICES_INTEL 0x4252 +#define CL_DEVICE_NUM_SUB_SLICES_PER_SLICE_INTEL 0x4253 +#define CL_DEVICE_NUM_EUS_PER_SUB_SLICE_INTEL 0x4254 +#define CL_DEVICE_NUM_THREADS_PER_EU_INTEL 0x4255 +#define CL_DEVICE_FEATURE_CAPABILITIES_INTEL 0x4256 + +/*************************************************************** +* cl_intel_device_partition_by_names +***************************************************************/ +#define cl_intel_device_partition_by_names 1 +#define CL_INTEL_DEVICE_PARTITION_BY_NAMES_EXTENSION_NAME \ + "cl_intel_device_partition_by_names" + +#define CL_DEVICE_PARTITION_BY_NAMES_INTEL 0x4052 +#define CL_PARTITION_BY_NAMES_LIST_END_INTEL -1 + +/*************************************************************** +* cl_intel_accelerator +***************************************************************/ +#define cl_intel_accelerator 1 +#define CL_INTEL_ACCELERATOR_EXTENSION_NAME \ + "cl_intel_accelerator" + +typedef struct _cl_accelerator_intel* cl_accelerator_intel; +typedef cl_uint cl_accelerator_type_intel; +typedef cl_uint cl_accelerator_info_intel; + +/* cl_accelerator_info_intel */ +#define CL_ACCELERATOR_DESCRIPTOR_INTEL 0x4090 +#define CL_ACCELERATOR_REFERENCE_COUNT_INTEL 0x4091 +#define CL_ACCELERATOR_CONTEXT_INTEL 0x4092 +#define CL_ACCELERATOR_TYPE_INTEL 0x4093 + +/* Error codes */ +#define CL_INVALID_ACCELERATOR_INTEL -1094 +#define CL_INVALID_ACCELERATOR_TYPE_INTEL -1095 +#define CL_INVALID_ACCELERATOR_DESCRIPTOR_INTEL -1096 +#define CL_ACCELERATOR_TYPE_NOT_SUPPORTED_INTEL -1097 + + +typedef cl_accelerator_intel (CL_API_CALL * +clCreateAcceleratorINTEL_fn)( + cl_context context, + cl_accelerator_type_intel accelerator_type, + size_t descriptor_size, + const void* descriptor, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clGetAcceleratorInfoINTEL_fn)( + cl_accelerator_intel accelerator, + cl_accelerator_info_intel param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clRetainAcceleratorINTEL_fn)( + cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clReleaseAcceleratorINTEL_fn)( + cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; + +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_accelerator_intel CL_API_CALL +clCreateAcceleratorINTEL( + cl_context context, + cl_accelerator_type_intel accelerator_type, + size_t descriptor_size, + const void* descriptor, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetAcceleratorInfoINTEL( + cl_accelerator_intel accelerator, + cl_accelerator_info_intel param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clRetainAcceleratorINTEL( + cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; + +extern CL_API_ENTRY cl_int CL_API_CALL +clReleaseAcceleratorINTEL( + cl_accelerator_intel accelerator) CL_API_SUFFIX__VERSION_1_2; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_intel_motion_estimation +***************************************************************/ +#define cl_intel_motion_estimation 1 +#define CL_INTEL_MOTION_ESTIMATION_EXTENSION_NAME \ + "cl_intel_motion_estimation" + +typedef struct _cl_motion_estimation_desc_intel { + cl_uint mb_block_type; + cl_uint subpixel_mode; + cl_uint sad_adjust_mode; + cl_uint search_path_type; +} cl_motion_estimation_desc_intel; + +/* cl_accelerator_type_intel */ +#define CL_ACCELERATOR_TYPE_MOTION_ESTIMATION_INTEL 0x0 + +/* cl_uint mb_block_type */ +#define CL_ME_MB_TYPE_16x16_INTEL 0x0 +#define CL_ME_MB_TYPE_8x8_INTEL 0x1 +#define CL_ME_MB_TYPE_4x4_INTEL 0x2 + +/* cl_uint subpixel_mode */ +#define CL_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0 +#define CL_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1 +#define CL_ME_SUBPIXEL_MODE_QPEL_INTEL 0x2 + +/* cl_uint sad_adjust_mode */ +#define CL_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0 +#define CL_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x1 + +/* cl_uint search_path_type */ +#define CL_ME_SEARCH_PATH_RADIUS_2_2_INTEL 0x0 +#define CL_ME_SEARCH_PATH_RADIUS_4_4_INTEL 0x1 +#define CL_ME_SEARCH_PATH_RADIUS_16_12_INTEL 0x5 + +/*************************************************************** +* cl_intel_advanced_motion_estimation +***************************************************************/ +#define cl_intel_advanced_motion_estimation 1 +#define CL_INTEL_ADVANCED_MOTION_ESTIMATION_EXTENSION_NAME \ + "cl_intel_advanced_motion_estimation" + +/* cl_device_info */ +#define CL_DEVICE_ME_VERSION_INTEL 0x407E + +#define CL_ME_VERSION_LEGACY_INTEL 0x0 +#define CL_ME_VERSION_ADVANCED_VER_1_INTEL 0x1 +#define CL_ME_VERSION_ADVANCED_VER_2_INTEL 0x2 + +#define CL_ME_CHROMA_INTRA_PREDICT_ENABLED_INTEL 0x1 +#define CL_ME_LUMA_INTRA_PREDICT_ENABLED_INTEL 0x2 + +#define CL_ME_SKIP_BLOCK_TYPE_16x16_INTEL 0x0 +#define CL_ME_SKIP_BLOCK_TYPE_8x8_INTEL 0x1 + +#define CL_ME_COST_PENALTY_NONE_INTEL 0x0 +#define CL_ME_COST_PENALTY_LOW_INTEL 0x1 +#define CL_ME_COST_PENALTY_NORMAL_INTEL 0x2 +#define CL_ME_COST_PENALTY_HIGH_INTEL 0x3 + +#define CL_ME_COST_PRECISION_QPEL_INTEL 0x0 +#define CL_ME_COST_PRECISION_HPEL_INTEL 0x1 +#define CL_ME_COST_PRECISION_PEL_INTEL 0x2 +#define CL_ME_COST_PRECISION_DPEL_INTEL 0x3 + +#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0 +#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 +#define CL_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2 +#define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3 +#define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4 +#define CL_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4 +#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5 +#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6 +#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7 +#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8 + +#define CL_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0 +#define CL_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 +#define CL_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2 +#define CL_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3 + +#define CL_ME_FORWARD_INPUT_MODE_INTEL 0x1 +#define CL_ME_BACKWARD_INPUT_MODE_INTEL 0x2 +#define CL_ME_BIDIRECTION_INPUT_MODE_INTEL 0x3 + +#define CL_ME_BIDIR_WEIGHT_QUARTER_INTEL 16 +#define CL_ME_BIDIR_WEIGHT_THIRD_INTEL 21 +#define CL_ME_BIDIR_WEIGHT_HALF_INTEL 32 +#define CL_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 43 +#define CL_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 48 + +/*************************************************************** +* cl_intel_simultaneous_sharing +***************************************************************/ +#define cl_intel_simultaneous_sharing 1 +#define CL_INTEL_SIMULTANEOUS_SHARING_EXTENSION_NAME \ + "cl_intel_simultaneous_sharing" + +/* cl_device_info */ +#define CL_DEVICE_SIMULTANEOUS_INTEROPS_INTEL 0x4104 +#define CL_DEVICE_NUM_SIMULTANEOUS_INTEROPS_INTEL 0x4105 + +/*************************************************************** +* cl_intel_egl_image_yuv +***************************************************************/ +#define cl_intel_egl_image_yuv 1 +#define CL_INTEL_EGL_IMAGE_YUV_EXTENSION_NAME \ + "cl_intel_egl_image_yuv" + +/* cl_egl_image_properties_khr */ +#define CL_EGL_YUV_PLANE_INTEL 0x4107 + +/*************************************************************** +* cl_intel_packed_yuv +***************************************************************/ +#define cl_intel_packed_yuv 1 +#define CL_INTEL_PACKED_YUV_EXTENSION_NAME \ + "cl_intel_packed_yuv" + +/* cl_channel_order */ +#define CL_YUYV_INTEL 0x4076 +#define CL_UYVY_INTEL 0x4077 +#define CL_YVYU_INTEL 0x4078 +#define CL_VYUY_INTEL 0x4079 + +/*************************************************************** +* cl_intel_required_subgroup_size +***************************************************************/ +#define cl_intel_required_subgroup_size 1 +#define CL_INTEL_REQUIRED_SUBGROUP_SIZE_EXTENSION_NAME \ + "cl_intel_required_subgroup_size" + +/* cl_device_info */ +#define CL_DEVICE_SUB_GROUP_SIZES_INTEL 0x4108 + +/* cl_kernel_work_group_info */ +#define CL_KERNEL_SPILL_MEM_SIZE_INTEL 0x4109 + +/* cl_kernel_sub_group_info */ +#define CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL 0x410A + +/*************************************************************** +* cl_intel_driver_diagnostics +***************************************************************/ +#define cl_intel_driver_diagnostics 1 +#define CL_INTEL_DRIVER_DIAGNOSTICS_EXTENSION_NAME \ + "cl_intel_driver_diagnostics" + +typedef cl_uint cl_diagnostics_verbose_level; + +/* cl_context_properties */ +#define CL_CONTEXT_SHOW_DIAGNOSTICS_INTEL 0x4106 +#define CL_CONTEXT_DIAGNOSTICS_LEVEL_ALL_INTEL 0xff +#define CL_CONTEXT_DIAGNOSTICS_LEVEL_GOOD_INTEL (1 << 0) +#define CL_CONTEXT_DIAGNOSTICS_LEVEL_BAD_INTEL (1 << 1) +#define CL_CONTEXT_DIAGNOSTICS_LEVEL_NEUTRAL_INTEL (1 << 2) + +/*************************************************************** +* cl_intel_planar_yuv +***************************************************************/ +#define cl_intel_planar_yuv 1 +#define CL_INTEL_PLANAR_YUV_EXTENSION_NAME \ + "cl_intel_planar_yuv" + +/* cl_channel_order */ +#define CL_NV12_INTEL 0x410E + +/* cl_mem_flags */ +#define CL_MEM_NO_ACCESS_INTEL (1 << 24) +#define CL_MEM_ACCESS_FLAGS_UNRESTRICTED_INTEL (1 << 25) + +/* cl_device_info */ +#define CL_DEVICE_PLANAR_YUV_MAX_WIDTH_INTEL 0x417E +#define CL_DEVICE_PLANAR_YUV_MAX_HEIGHT_INTEL 0x417F + +/*************************************************************** +* cl_intel_device_side_avc_motion_estimation +***************************************************************/ +#define cl_intel_device_side_avc_motion_estimation 1 +#define CL_INTEL_DEVICE_SIDE_AVC_MOTION_ESTIMATION_EXTENSION_NAME \ + "cl_intel_device_side_avc_motion_estimation" + +/* cl_device_info */ +#define CL_DEVICE_AVC_ME_VERSION_INTEL 0x410B +#define CL_DEVICE_AVC_ME_SUPPORTS_TEXTURE_SAMPLER_USE_INTEL 0x410C +#define CL_DEVICE_AVC_ME_SUPPORTS_PREEMPTION_INTEL 0x410D + +/* returned by CL_DEVICE_AVC_ME_VERSION_INTEL */ +#define CL_AVC_ME_VERSION_0_INTEL 0x0 +#define CL_AVC_ME_VERSION_1_INTEL 0x1 + +/* Inter macro-block major shape values */ +#define CL_AVC_ME_MAJOR_16x16_INTEL 0x0 +#define CL_AVC_ME_MAJOR_16x8_INTEL 0x1 +#define CL_AVC_ME_MAJOR_8x16_INTEL 0x2 +#define CL_AVC_ME_MAJOR_8x8_INTEL 0x3 + +/* Inter macro-block minor shape values */ +#define CL_AVC_ME_MINOR_8x8_INTEL 0x0 +#define CL_AVC_ME_MINOR_8x4_INTEL 0x1 +#define CL_AVC_ME_MINOR_4x8_INTEL 0x2 +#define CL_AVC_ME_MINOR_4x4_INTEL 0x3 + +/* Inter macro-block major direction values */ +#define CL_AVC_ME_MAJOR_FORWARD_INTEL 0x0 +#define CL_AVC_ME_MAJOR_BACKWARD_INTEL 0x1 +#define CL_AVC_ME_MAJOR_BIDIRECTIONAL_INTEL 0x2 + +/* Inter (IME) partition mask values */ +#define CL_AVC_ME_PARTITION_MASK_ALL_INTEL 0x0 +#define CL_AVC_ME_PARTITION_MASK_16x16_INTEL 0x7E +#define CL_AVC_ME_PARTITION_MASK_16x8_INTEL 0x7D +#define CL_AVC_ME_PARTITION_MASK_8x16_INTEL 0x7B +#define CL_AVC_ME_PARTITION_MASK_8x8_INTEL 0x77 +#define CL_AVC_ME_PARTITION_MASK_8x4_INTEL 0x6F +#define CL_AVC_ME_PARTITION_MASK_4x8_INTEL 0x5F +#define CL_AVC_ME_PARTITION_MASK_4x4_INTEL 0x3F + +/* Search window configuration */ +#define CL_AVC_ME_SEARCH_WINDOW_EXHAUSTIVE_INTEL 0x0 +#define CL_AVC_ME_SEARCH_WINDOW_SMALL_INTEL 0x1 +#define CL_AVC_ME_SEARCH_WINDOW_TINY_INTEL 0x2 +#define CL_AVC_ME_SEARCH_WINDOW_EXTRA_TINY_INTEL 0x3 +#define CL_AVC_ME_SEARCH_WINDOW_DIAMOND_INTEL 0x4 +#define CL_AVC_ME_SEARCH_WINDOW_LARGE_DIAMOND_INTEL 0x5 +#define CL_AVC_ME_SEARCH_WINDOW_RESERVED0_INTEL 0x6 +#define CL_AVC_ME_SEARCH_WINDOW_RESERVED1_INTEL 0x7 +#define CL_AVC_ME_SEARCH_WINDOW_CUSTOM_INTEL 0x8 +#define CL_AVC_ME_SEARCH_WINDOW_16x12_RADIUS_INTEL 0x9 +#define CL_AVC_ME_SEARCH_WINDOW_4x4_RADIUS_INTEL 0x2 +#define CL_AVC_ME_SEARCH_WINDOW_2x2_RADIUS_INTEL 0xa + +/* SAD adjustment mode */ +#define CL_AVC_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0 +#define CL_AVC_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x2 + +/* Pixel resolution */ +#define CL_AVC_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0 +#define CL_AVC_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1 +#define CL_AVC_ME_SUBPIXEL_MODE_QPEL_INTEL 0x3 + +/* Cost precision values */ +#define CL_AVC_ME_COST_PRECISION_QPEL_INTEL 0x0 +#define CL_AVC_ME_COST_PRECISION_HPEL_INTEL 0x1 +#define CL_AVC_ME_COST_PRECISION_PEL_INTEL 0x2 +#define CL_AVC_ME_COST_PRECISION_DPEL_INTEL 0x3 + +/* Inter bidirectional weights */ +#define CL_AVC_ME_BIDIR_WEIGHT_QUARTER_INTEL 0x10 +#define CL_AVC_ME_BIDIR_WEIGHT_THIRD_INTEL 0x15 +#define CL_AVC_ME_BIDIR_WEIGHT_HALF_INTEL 0x20 +#define CL_AVC_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 0x2B +#define CL_AVC_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 0x30 + +/* Inter border reached values */ +#define CL_AVC_ME_BORDER_REACHED_LEFT_INTEL 0x0 +#define CL_AVC_ME_BORDER_REACHED_RIGHT_INTEL 0x2 +#define CL_AVC_ME_BORDER_REACHED_TOP_INTEL 0x4 +#define CL_AVC_ME_BORDER_REACHED_BOTTOM_INTEL 0x8 + +/* Inter skip block partition type */ +#define CL_AVC_ME_SKIP_BLOCK_PARTITION_16x16_INTEL 0x0 +#define CL_AVC_ME_SKIP_BLOCK_PARTITION_8x8_INTEL 0x4000 + +/* Inter skip motion vector mask */ +#define CL_AVC_ME_SKIP_BLOCK_16x16_FORWARD_ENABLE_INTEL (0x1 << 24) +#define CL_AVC_ME_SKIP_BLOCK_16x16_BACKWARD_ENABLE_INTEL (0x2 << 24) +#define CL_AVC_ME_SKIP_BLOCK_16x16_DUAL_ENABLE_INTEL (0x3 << 24) +#define CL_AVC_ME_SKIP_BLOCK_8x8_FORWARD_ENABLE_INTEL (0x55 << 24) +#define CL_AVC_ME_SKIP_BLOCK_8x8_BACKWARD_ENABLE_INTEL (0xAA << 24) +#define CL_AVC_ME_SKIP_BLOCK_8x8_DUAL_ENABLE_INTEL (0xFF << 24) +#define CL_AVC_ME_SKIP_BLOCK_8x8_0_FORWARD_ENABLE_INTEL (0x1 << 24) +#define CL_AVC_ME_SKIP_BLOCK_8x8_0_BACKWARD_ENABLE_INTEL (0x2 << 24) +#define CL_AVC_ME_SKIP_BLOCK_8x8_1_FORWARD_ENABLE_INTEL (0x1 << 26) +#define CL_AVC_ME_SKIP_BLOCK_8x8_1_BACKWARD_ENABLE_INTEL (0x2 << 26) +#define CL_AVC_ME_SKIP_BLOCK_8x8_2_FORWARD_ENABLE_INTEL (0x1 << 28) +#define CL_AVC_ME_SKIP_BLOCK_8x8_2_BACKWARD_ENABLE_INTEL (0x2 << 28) +#define CL_AVC_ME_SKIP_BLOCK_8x8_3_FORWARD_ENABLE_INTEL (0x1 << 30) +#define CL_AVC_ME_SKIP_BLOCK_8x8_3_BACKWARD_ENABLE_INTEL (0x2 << 30) + +/* Block based skip type values */ +#define CL_AVC_ME_BLOCK_BASED_SKIP_4x4_INTEL 0x00 +#define CL_AVC_ME_BLOCK_BASED_SKIP_8x8_INTEL 0x80 + +/* cl_intel_device_side_avc_motion_estimation.?? */ +#define CL_AVC_ME_INTRA_16x16_INTEL 0x0 +#define CL_AVC_ME_INTRA_8x8_INTEL 0x1 +#define CL_AVC_ME_INTRA_4x4_INTEL 0x2 + +/* Luma intra partition mask values */ +#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_16x16_INTEL 0x6 +#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_8x8_INTEL 0x5 +#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_4x4_INTEL 0x3 + +/* Intra neighbor availability mask values */ +#define CL_AVC_ME_INTRA_NEIGHBOR_LEFT_MASK_ENABLE_INTEL 0x60 +#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_MASK_ENABLE_INTEL 0x10 +#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_RIGHT_MASK_ENABLE_INTEL 0x8 +#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_LEFT_MASK_ENABLE_INTEL 0x4 + +/* Luma intra modes */ +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7 +#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8 + +/* Chroma intra modes */ +#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0 +#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 +#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2 +#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3 + +/* Reference image select values */ +#define CL_AVC_ME_FRAME_FORWARD_INTEL 0x1 +#define CL_AVC_ME_FRAME_BACKWARD_INTEL 0x2 +#define CL_AVC_ME_FRAME_DUAL_INTEL 0x3 + +/* Slice type values */ +#define CL_AVC_ME_SLICE_TYPE_PRED_INTEL 0x0 +#define CL_AVC_ME_SLICE_TYPE_BPRED_INTEL 0x1 +#define CL_AVC_ME_SLICE_TYPE_INTRA_INTEL 0x2 + +/* Interlaced image field polarity values */ +#define CL_AVC_ME_INTERLACED_SCAN_TOP_FIELD_INTEL 0x0 +#define CL_AVC_ME_INTERLACED_SCAN_BOTTOM_FIELD_INTEL 0x1 + +/*************************************************************** +* cl_intel_unified_shared_memory +***************************************************************/ +#define cl_intel_unified_shared_memory 1 +#define CL_INTEL_UNIFIED_SHARED_MEMORY_EXTENSION_NAME \ + "cl_intel_unified_shared_memory" + +typedef cl_bitfield cl_device_unified_shared_memory_capabilities_intel; +typedef cl_properties cl_mem_properties_intel; +typedef cl_bitfield cl_mem_alloc_flags_intel; +typedef cl_uint cl_mem_info_intel; +typedef cl_uint cl_unified_shared_memory_type_intel; +typedef cl_uint cl_mem_advice_intel; + +/* cl_device_info */ +#define CL_DEVICE_HOST_MEM_CAPABILITIES_INTEL 0x4190 +#define CL_DEVICE_DEVICE_MEM_CAPABILITIES_INTEL 0x4191 +#define CL_DEVICE_SINGLE_DEVICE_SHARED_MEM_CAPABILITIES_INTEL 0x4192 +#define CL_DEVICE_CROSS_DEVICE_SHARED_MEM_CAPABILITIES_INTEL 0x4193 +#define CL_DEVICE_SHARED_SYSTEM_MEM_CAPABILITIES_INTEL 0x4194 + +/* cl_unified_shared_memory_capabilities_intel - bitfield */ +#define CL_UNIFIED_SHARED_MEMORY_ACCESS_INTEL (1 << 0) +#define CL_UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS_INTEL (1 << 1) +#define CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS_INTEL (1 << 2) +#define CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS_INTEL (1 << 3) + +/* cl_mem_properties_intel */ +#define CL_MEM_ALLOC_FLAGS_INTEL 0x4195 + +/* cl_mem_alloc_flags_intel - bitfield */ +#define CL_MEM_ALLOC_WRITE_COMBINED_INTEL (1 << 0) +#define CL_MEM_ALLOC_INITIAL_PLACEMENT_DEVICE_INTEL (1 << 1) +#define CL_MEM_ALLOC_INITIAL_PLACEMENT_HOST_INTEL (1 << 2) + +/* cl_mem_alloc_info_intel */ +#define CL_MEM_ALLOC_TYPE_INTEL 0x419A +#define CL_MEM_ALLOC_BASE_PTR_INTEL 0x419B +#define CL_MEM_ALLOC_SIZE_INTEL 0x419C +#define CL_MEM_ALLOC_DEVICE_INTEL 0x419D + +/* cl_unified_shared_memory_type_intel */ +#define CL_MEM_TYPE_UNKNOWN_INTEL 0x4196 +#define CL_MEM_TYPE_HOST_INTEL 0x4197 +#define CL_MEM_TYPE_DEVICE_INTEL 0x4198 +#define CL_MEM_TYPE_SHARED_INTEL 0x4199 + +/* cl_kernel_exec_info */ +#define CL_KERNEL_EXEC_INFO_INDIRECT_HOST_ACCESS_INTEL 0x4200 +#define CL_KERNEL_EXEC_INFO_INDIRECT_DEVICE_ACCESS_INTEL 0x4201 +#define CL_KERNEL_EXEC_INFO_INDIRECT_SHARED_ACCESS_INTEL 0x4202 +#define CL_KERNEL_EXEC_INFO_USM_PTRS_INTEL 0x4203 + +/* cl_command_type */ +#define CL_COMMAND_MEMFILL_INTEL 0x4204 +#define CL_COMMAND_MEMCPY_INTEL 0x4205 +#define CL_COMMAND_MIGRATEMEM_INTEL 0x4206 +#define CL_COMMAND_MEMADVISE_INTEL 0x4207 + + +typedef void* (CL_API_CALL * +clHostMemAllocINTEL_fn)( + cl_context context, + const cl_mem_properties_intel* properties, + size_t size, + cl_uint alignment, + cl_int* errcode_ret) ; + +typedef void* (CL_API_CALL * +clDeviceMemAllocINTEL_fn)( + cl_context context, + cl_device_id device, + const cl_mem_properties_intel* properties, + size_t size, + cl_uint alignment, + cl_int* errcode_ret) ; + +typedef void* (CL_API_CALL * +clSharedMemAllocINTEL_fn)( + cl_context context, + cl_device_id device, + const cl_mem_properties_intel* properties, + size_t size, + cl_uint alignment, + cl_int* errcode_ret) ; + +typedef cl_int (CL_API_CALL * +clMemFreeINTEL_fn)( + cl_context context, + void* ptr) ; + +typedef cl_int (CL_API_CALL * +clMemBlockingFreeINTEL_fn)( + cl_context context, + void* ptr) ; + +typedef cl_int (CL_API_CALL * +clGetMemAllocInfoINTEL_fn)( + cl_context context, + const void* ptr, + cl_mem_info_intel param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) ; + +typedef cl_int (CL_API_CALL * +clSetKernelArgMemPointerINTEL_fn)( + cl_kernel kernel, + cl_uint arg_index, + const void* arg_value) ; + +typedef cl_int (CL_API_CALL * +clEnqueueMemFillINTEL_fn)( + cl_command_queue command_queue, + void* dst_ptr, + const void* pattern, + size_t pattern_size, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +typedef cl_int (CL_API_CALL * +clEnqueueMemcpyINTEL_fn)( + cl_command_queue command_queue, + cl_bool blocking, + void* dst_ptr, + const void* src_ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +typedef cl_int (CL_API_CALL * +clEnqueueMemAdviseINTEL_fn)( + cl_command_queue command_queue, + const void* ptr, + size_t size, + cl_mem_advice_intel advice, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY void* CL_API_CALL +clHostMemAllocINTEL( + cl_context context, + const cl_mem_properties_intel* properties, + size_t size, + cl_uint alignment, + cl_int* errcode_ret) ; + +extern CL_API_ENTRY void* CL_API_CALL +clDeviceMemAllocINTEL( + cl_context context, + cl_device_id device, + const cl_mem_properties_intel* properties, + size_t size, + cl_uint alignment, + cl_int* errcode_ret) ; + +extern CL_API_ENTRY void* CL_API_CALL +clSharedMemAllocINTEL( + cl_context context, + cl_device_id device, + const cl_mem_properties_intel* properties, + size_t size, + cl_uint alignment, + cl_int* errcode_ret) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clMemFreeINTEL( + cl_context context, + void* ptr) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clMemBlockingFreeINTEL( + cl_context context, + void* ptr) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetMemAllocInfoINTEL( + cl_context context, + const void* ptr, + cl_mem_info_intel param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clSetKernelArgMemPointerINTEL( + cl_kernel kernel, + cl_uint arg_index, + const void* arg_value) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueMemFillINTEL( + cl_command_queue command_queue, + void* dst_ptr, + const void* pattern, + size_t pattern_size, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueMemcpyINTEL( + cl_command_queue command_queue, + cl_bool blocking, + void* dst_ptr, + const void* src_ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueMemAdviseINTEL( + cl_command_queue command_queue, + const void* ptr, + size_t size, + cl_mem_advice_intel advice, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +#if defined(CL_VERSION_1_2) +/* Requires OpenCL 1.2 for cl_mem_migration_flags: */ + +typedef cl_int (CL_API_CALL * +clEnqueueMigrateMemINTEL_fn)( + cl_command_queue command_queue, + const void* ptr, + size_t size, + cl_mem_migration_flags flags, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueMigrateMemINTEL( + cl_command_queue command_queue, + const void* ptr, + size_t size, + cl_mem_migration_flags flags, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +#endif /* defined(CL_VERSION_1_2) */ + +/* deprecated, use clEnqueueMemFillINTEL instead */ + +typedef cl_int (CL_API_CALL * +clEnqueueMemsetINTEL_fn)( + cl_command_queue command_queue, + void* dst_ptr, + cl_int value, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueMemsetINTEL( + cl_command_queue command_queue, + void* dst_ptr, + cl_int value, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) ; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_intel_mem_alloc_buffer_location +***************************************************************/ +#define cl_intel_mem_alloc_buffer_location 1 +#define CL_INTEL_MEM_ALLOC_BUFFER_LOCATION_EXTENSION_NAME \ + "cl_intel_mem_alloc_buffer_location" + +/* cl_mem_properties_intel */ +#define CL_MEM_ALLOC_BUFFER_LOCATION_INTEL 0x419E + +/* cl_mem_alloc_info_intel */ +/* enum CL_MEM_ALLOC_BUFFER_LOCATION_INTEL */ + +/*************************************************************** +* cl_intel_create_buffer_with_properties +***************************************************************/ +#define cl_intel_create_buffer_with_properties 1 +#define CL_INTEL_CREATE_BUFFER_WITH_PROPERTIES_EXTENSION_NAME \ + "cl_intel_create_buffer_with_properties" + +/* type cl_mem_properties_intel */ + + +typedef cl_mem (CL_API_CALL * +clCreateBufferWithPropertiesINTEL_fn)( + cl_context context, + const cl_mem_properties_intel* properties, + cl_mem_flags flags, + size_t size, + void* host_ptr, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateBufferWithPropertiesINTEL( + cl_context context, + const cl_mem_properties_intel* properties, + cl_mem_flags flags, + size_t size, + void* host_ptr, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_intel_program_scope_host_pipe +***************************************************************/ +#define cl_intel_program_scope_host_pipe 1 +#define CL_INTEL_PROGRAM_SCOPE_HOST_PIPE_EXTENSION_NAME \ + "cl_intel_program_scope_host_pipe" + +/* clGetEventInfo response when param_name is CL_EVENT_COMMAND_TYPE */ +#define CL_COMMAND_READ_HOST_PIPE_INTEL 0x4214 +#define CL_COMMAND_WRITE_HOST_PIPE_INTEL 0x4215 + +/* clGetProgramInfo param_name */ +#define CL_PROGRAM_NUM_HOST_PIPES_INTEL 0x4216 +#define CL_PROGRAM_HOST_PIPE_NAMES_INTEL 0x4217 + + +typedef cl_int (CL_API_CALL * +clEnqueueReadHostPipeINTEL_fn)( + cl_command_queue command_queue, + cl_program program, + const char* pipe_symbol, + cl_bool blocking_read, + void* ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_0; + +typedef cl_int (CL_API_CALL * +clEnqueueWriteHostPipeINTEL_fn)( + cl_command_queue command_queue, + cl_program program, + const char* pipe_symbol, + cl_bool blocking_write, + const void* ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_0; + +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReadHostPipeINTEL( + cl_command_queue command_queue, + cl_program program, + const char* pipe_symbol, + cl_bool blocking_read, + void* ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueWriteHostPipeINTEL( + cl_command_queue command_queue, + cl_program program, + const char* pipe_symbol, + cl_bool blocking_write, + const void* ptr, + size_t size, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_0; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_intel_mem_channel_property +***************************************************************/ +#define cl_intel_mem_channel_property 1 +#define CL_INTEL_MEM_CHANNEL_PROPERTY_EXTENSION_NAME \ + "cl_intel_mem_channel_property" + +/* cl_mem_properties_intel */ +#define CL_MEM_CHANNEL_INTEL 0x4213 + +/*************************************************************** +* cl_intel_mem_force_host_memory +***************************************************************/ +#define cl_intel_mem_force_host_memory 1 +#define CL_INTEL_MEM_FORCE_HOST_MEMORY_EXTENSION_NAME \ + "cl_intel_mem_force_host_memory" + +/* cl_mem_flags */ +#define CL_MEM_FORCE_HOST_MEMORY_INTEL (1 << 20) + +/*************************************************************** +* cl_intel_command_queue_families +***************************************************************/ +#define cl_intel_command_queue_families 1 +#define CL_INTEL_COMMAND_QUEUE_FAMILIES_EXTENSION_NAME \ + "cl_intel_command_queue_families" + +typedef cl_bitfield cl_command_queue_capabilities_intel; + +#define CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL 64 + +typedef struct _cl_queue_family_properties_intel { + cl_command_queue_properties properties; + cl_command_queue_capabilities_intel capabilities; + cl_uint count; + char name[CL_QUEUE_FAMILY_MAX_NAME_SIZE_INTEL]; +} cl_queue_family_properties_intel; + +/* cl_device_info */ +#define CL_DEVICE_QUEUE_FAMILY_PROPERTIES_INTEL 0x418B + +/* cl_queue_properties */ +#define CL_QUEUE_FAMILY_INTEL 0x418C +#define CL_QUEUE_INDEX_INTEL 0x418D + +/* cl_command_queue_capabilities_intel */ +#define CL_QUEUE_DEFAULT_CAPABILITIES_INTEL 0 +#define CL_QUEUE_CAPABILITY_CREATE_SINGLE_QUEUE_EVENTS_INTEL (1 << 0) +#define CL_QUEUE_CAPABILITY_CREATE_CROSS_QUEUE_EVENTS_INTEL (1 << 1) +#define CL_QUEUE_CAPABILITY_SINGLE_QUEUE_EVENT_WAIT_LIST_INTEL (1 << 2) +#define CL_QUEUE_CAPABILITY_CROSS_QUEUE_EVENT_WAIT_LIST_INTEL (1 << 3) +#define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_INTEL (1 << 8) +#define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_RECT_INTEL (1 << 9) +#define CL_QUEUE_CAPABILITY_MAP_BUFFER_INTEL (1 << 10) +#define CL_QUEUE_CAPABILITY_FILL_BUFFER_INTEL (1 << 11) +#define CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_INTEL (1 << 12) +#define CL_QUEUE_CAPABILITY_MAP_IMAGE_INTEL (1 << 13) +#define CL_QUEUE_CAPABILITY_FILL_IMAGE_INTEL (1 << 14) +#define CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_IMAGE_INTEL (1 << 15) +#define CL_QUEUE_CAPABILITY_TRANSFER_IMAGE_BUFFER_INTEL (1 << 16) +#define CL_QUEUE_CAPABILITY_MARKER_INTEL (1 << 24) +#define CL_QUEUE_CAPABILITY_BARRIER_INTEL (1 << 25) +#define CL_QUEUE_CAPABILITY_KERNEL_INTEL (1 << 26) + +/*************************************************************** +* cl_intel_queue_no_sync_operations +***************************************************************/ +#define cl_intel_queue_no_sync_operations 1 +#define CL_INTEL_QUEUE_NO_SYNC_OPERATIONS_EXTENSION_NAME \ + "cl_intel_queue_no_sync_operations" + +/* cl_command_queue_properties */ +#define CL_QUEUE_NO_SYNC_OPERATIONS_INTEL (1 << 29) + +/*************************************************************** +* cl_intel_sharing_format_query +***************************************************************/ +#define cl_intel_sharing_format_query 1 +#define CL_INTEL_SHARING_FORMAT_QUERY_EXTENSION_NAME \ + "cl_intel_sharing_format_query" + +/*************************************************************** +* cl_ext_image_requirements_info +***************************************************************/ +#if defined(CL_VERSION_3_0) + +#define cl_ext_image_requirements_info 1 +#define CL_EXT_IMAGE_REQUIREMENTS_INFO_EXTENSION_NAME \ + "cl_ext_image_requirements_info" + +/* Types */ +typedef cl_uint cl_image_requirements_info_ext; + +/* cl_image_requirements_info_ext */ +#define CL_IMAGE_REQUIREMENTS_BASE_ADDRESS_ALIGNMENT_EXT 0x1292 +#define CL_IMAGE_REQUIREMENTS_ROW_PITCH_ALIGNMENT_EXT 0x1290 +#define CL_IMAGE_REQUIREMENTS_SIZE_EXT 0x12B2 +#define CL_IMAGE_REQUIREMENTS_MAX_WIDTH_EXT 0x12B3 +#define CL_IMAGE_REQUIREMENTS_MAX_HEIGHT_EXT 0x12B4 +#define CL_IMAGE_REQUIREMENTS_MAX_DEPTH_EXT 0x12B5 +#define CL_IMAGE_REQUIREMENTS_MAX_ARRAY_SIZE_EXT 0x12B6 + +/* Enqueued Commands APIs */ + +typedef cl_int (CL_API_CALL * +clGetImageRequirementsInfoEXT_fn)( + cl_context context, + const cl_mem_properties* properties, + cl_mem_flags flags, + const cl_image_format* image_format, + const cl_image_desc* image_desc, + cl_image_requirements_info_ext param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_3_0; + +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetImageRequirementsInfoEXT( + cl_context context, + const cl_mem_properties* properties, + cl_mem_flags flags, + const cl_image_format* image_format, + const cl_image_desc* image_desc, + cl_image_requirements_info_ext param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_3_0; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +#endif /* defined(CL_VERSION_3_0) */ + +/*************************************************************** +* cl_ext_image_from_buffer +***************************************************************/ +#if defined(CL_VERSION_3_0) + +#define cl_ext_image_from_buffer 1 +#define CL_EXT_IMAGE_FROM_BUFFER_EXTENSION_NAME \ + "cl_ext_image_from_buffer" + +/* cl_image_requirements_info_ext */ +#define CL_IMAGE_REQUIREMENTS_SLICE_PITCH_ALIGNMENT_EXT 0x1291 + +#endif /* defined(CL_VERSION_3_0) */ + +/*************************************************************** +* cl_loader_info +***************************************************************/ +#define cl_loader_info 1 +#define CL_LOADER_INFO_EXTENSION_NAME \ + "cl_loader_info" + +typedef cl_uint cl_icdl_info; + +/* cl_icdl_info */ +#define CL_ICDL_OCL_VERSION 1 +#define CL_ICDL_VERSION 2 +#define CL_ICDL_NAME 3 +#define CL_ICDL_VENDOR 4 + + +typedef cl_int (CL_API_CALL * +clGetICDLoaderInfoOCLICD_fn)( + cl_icdl_info param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) ; + +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetICDLoaderInfoOCLICD( + cl_icdl_info param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) ; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_khr_depth_images +***************************************************************/ +#define cl_khr_depth_images 1 +#define CL_KHR_DEPTH_IMAGES_EXTENSION_NAME \ + "cl_khr_depth_images" + +#if !defined(CL_VERSION_1_2) +/* cl_channel_order - defined in CL.h for OpenCL 1.2 (?) and newer */ +#define CL_DEPTH 0x10BD + +#endif /* !defined(CL_VERSION_1_2) */ + +/*************************************************************** +* cl_ext_float_atomics +***************************************************************/ +#define cl_ext_float_atomics 1 +#define CL_EXT_FLOAT_ATOMICS_EXTENSION_NAME \ + "cl_ext_float_atomics" + +typedef cl_bitfield cl_device_fp_atomic_capabilities_ext; + +/* cl_device_fp_atomic_capabilities_ext */ +#define CL_DEVICE_GLOBAL_FP_ATOMIC_LOAD_STORE_EXT (1 << 0) +#define CL_DEVICE_GLOBAL_FP_ATOMIC_ADD_EXT (1 << 1) +#define CL_DEVICE_GLOBAL_FP_ATOMIC_MIN_MAX_EXT (1 << 2) +#define CL_DEVICE_LOCAL_FP_ATOMIC_LOAD_STORE_EXT (1 << 16) +#define CL_DEVICE_LOCAL_FP_ATOMIC_ADD_EXT (1 << 17) +#define CL_DEVICE_LOCAL_FP_ATOMIC_MIN_MAX_EXT (1 << 18) + +/* cl_device_info */ +#define CL_DEVICE_SINGLE_FP_ATOMIC_CAPABILITIES_EXT 0x4231 +#define CL_DEVICE_DOUBLE_FP_ATOMIC_CAPABILITIES_EXT 0x4232 +#define CL_DEVICE_HALF_FP_ATOMIC_CAPABILITIES_EXT 0x4233 + +/*************************************************************** +* cl_intel_create_mem_object_properties +***************************************************************/ +#define cl_intel_create_mem_object_properties 1 +#define CL_INTEL_CREATE_MEM_OBJECT_PROPERTIES_EXTENSION_NAME \ + "cl_intel_create_mem_object_properties" + +/* cl_mem_properties */ +#define CL_MEM_LOCALLY_UNCACHED_RESOURCE_INTEL 0x4218 +#define CL_MEM_DEVICE_ID_INTEL 0x4219 + +/*************************************************************** +* cl_pocl_content_size +***************************************************************/ +#define cl_pocl_content_size 1 +#define CL_POCL_CONTENT_SIZE_EXTENSION_NAME \ + "cl_pocl_content_size" + + +typedef cl_int (CL_API_CALL * +clSetContentSizeBufferPoCL_fn)( + cl_mem buffer, + cl_mem content_size_buffer) CL_API_SUFFIX__VERSION_1_0; + +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_int CL_API_CALL +clSetContentSizeBufferPoCL( + cl_mem buffer, + cl_mem content_size_buffer) CL_API_SUFFIX__VERSION_1_0; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ #ifdef __cplusplus } #endif - -#endif /* __CL_EXT_H */ +#endif /* OPENCL_CL_EXT_H_ */ diff -Nru darktable-4.4.2/src/external/OpenCL/CL/cl_ext_intel.h darktable-4.6.1/src/external/OpenCL/CL/cl_ext_intel.h --- darktable-4.4.2/src/external/OpenCL/CL/cl_ext_intel.h 2020-12-09 16:53:44.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/CL/cl_ext_intel.h 2023-04-17 08:34:39.000000000 +0000 @@ -14,718 +14,6 @@ * limitations under the License. * ******************************************************************************/ -/*****************************************************************************\ -Copyright (c) 2013-2020 Intel Corporation All Rights Reserved. - -THESE MATERIALS ARE PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THESE -MATERIALS, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -File Name: cl_ext_intel.h - -Abstract: - -Notes: - -\*****************************************************************************/ - -#ifndef __CL_EXT_INTEL_H -#define __CL_EXT_INTEL_H - -#include <CL/cl.h> -#include <CL/cl_platform.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/*************************************** -* cl_intel_thread_local_exec extension * -****************************************/ - -#define cl_intel_thread_local_exec 1 - -#define CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL (((cl_bitfield)1) << 31) - -/*********************************************** -* cl_intel_device_partition_by_names extension * -************************************************/ - -#define cl_intel_device_partition_by_names 1 - -#define CL_DEVICE_PARTITION_BY_NAMES_INTEL 0x4052 -#define CL_PARTITION_BY_NAMES_LIST_END_INTEL -1 - -/************************************************ -* cl_intel_accelerator extension * -* cl_intel_motion_estimation extension * -* cl_intel_advanced_motion_estimation extension * -*************************************************/ - -#define cl_intel_accelerator 1 -#define cl_intel_motion_estimation 1 -#define cl_intel_advanced_motion_estimation 1 - -typedef struct _cl_accelerator_intel* cl_accelerator_intel; -typedef cl_uint cl_accelerator_type_intel; -typedef cl_uint cl_accelerator_info_intel; - -typedef struct _cl_motion_estimation_desc_intel { - cl_uint mb_block_type; - cl_uint subpixel_mode; - cl_uint sad_adjust_mode; - cl_uint search_path_type; -} cl_motion_estimation_desc_intel; - -/* error codes */ -#define CL_INVALID_ACCELERATOR_INTEL -1094 -#define CL_INVALID_ACCELERATOR_TYPE_INTEL -1095 -#define CL_INVALID_ACCELERATOR_DESCRIPTOR_INTEL -1096 -#define CL_ACCELERATOR_TYPE_NOT_SUPPORTED_INTEL -1097 - -/* cl_accelerator_type_intel */ -#define CL_ACCELERATOR_TYPE_MOTION_ESTIMATION_INTEL 0x0 - -/* cl_accelerator_info_intel */ -#define CL_ACCELERATOR_DESCRIPTOR_INTEL 0x4090 -#define CL_ACCELERATOR_REFERENCE_COUNT_INTEL 0x4091 -#define CL_ACCELERATOR_CONTEXT_INTEL 0x4092 -#define CL_ACCELERATOR_TYPE_INTEL 0x4093 - -/* cl_motion_detect_desc_intel flags */ -#define CL_ME_MB_TYPE_16x16_INTEL 0x0 -#define CL_ME_MB_TYPE_8x8_INTEL 0x1 -#define CL_ME_MB_TYPE_4x4_INTEL 0x2 - -#define CL_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0 -#define CL_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1 -#define CL_ME_SUBPIXEL_MODE_QPEL_INTEL 0x2 - -#define CL_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0 -#define CL_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x1 - -#define CL_ME_SEARCH_PATH_RADIUS_2_2_INTEL 0x0 -#define CL_ME_SEARCH_PATH_RADIUS_4_4_INTEL 0x1 -#define CL_ME_SEARCH_PATH_RADIUS_16_12_INTEL 0x5 - -#define CL_ME_SKIP_BLOCK_TYPE_16x16_INTEL 0x0 -#define CL_ME_CHROMA_INTRA_PREDICT_ENABLED_INTEL 0x1 -#define CL_ME_LUMA_INTRA_PREDICT_ENABLED_INTEL 0x2 -#define CL_ME_SKIP_BLOCK_TYPE_8x8_INTEL 0x4 - -#define CL_ME_FORWARD_INPUT_MODE_INTEL 0x1 -#define CL_ME_BACKWARD_INPUT_MODE_INTEL 0x2 -#define CL_ME_BIDIRECTION_INPUT_MODE_INTEL 0x3 - -#define CL_ME_BIDIR_WEIGHT_QUARTER_INTEL 16 -#define CL_ME_BIDIR_WEIGHT_THIRD_INTEL 21 -#define CL_ME_BIDIR_WEIGHT_HALF_INTEL 32 -#define CL_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 43 -#define CL_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 48 - -#define CL_ME_COST_PENALTY_NONE_INTEL 0x0 -#define CL_ME_COST_PENALTY_LOW_INTEL 0x1 -#define CL_ME_COST_PENALTY_NORMAL_INTEL 0x2 -#define CL_ME_COST_PENALTY_HIGH_INTEL 0x3 - -#define CL_ME_COST_PRECISION_QPEL_INTEL 0x0 -#define CL_ME_COST_PRECISION_HPEL_INTEL 0x1 -#define CL_ME_COST_PRECISION_PEL_INTEL 0x2 -#define CL_ME_COST_PRECISION_DPEL_INTEL 0x3 - -#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0 -#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 -#define CL_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2 -#define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3 - -#define CL_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4 -#define CL_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4 -#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5 -#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6 -#define CL_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7 -#define CL_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8 - -#define CL_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0 -#define CL_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 -#define CL_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2 -#define CL_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3 - -/* cl_device_info */ -#define CL_DEVICE_ME_VERSION_INTEL 0x407E - -#define CL_ME_VERSION_LEGACY_INTEL 0x0 -#define CL_ME_VERSION_ADVANCED_VER_1_INTEL 0x1 -#define CL_ME_VERSION_ADVANCED_VER_2_INTEL 0x2 - -extern CL_API_ENTRY cl_accelerator_intel CL_API_CALL -clCreateAcceleratorINTEL( - cl_context context, - cl_accelerator_type_intel accelerator_type, - size_t descriptor_size, - const void* descriptor, - cl_int* errcode_ret) CL_EXT_SUFFIX__VERSION_1_2; - -typedef CL_API_ENTRY cl_accelerator_intel (CL_API_CALL *clCreateAcceleratorINTEL_fn)( - cl_context context, - cl_accelerator_type_intel accelerator_type, - size_t descriptor_size, - const void* descriptor, - cl_int* errcode_ret) CL_EXT_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetAcceleratorInfoINTEL( - cl_accelerator_intel accelerator, - cl_accelerator_info_intel param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret) CL_EXT_SUFFIX__VERSION_1_2; - -typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetAcceleratorInfoINTEL_fn)( - cl_accelerator_intel accelerator, - cl_accelerator_info_intel param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret) CL_EXT_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clRetainAcceleratorINTEL( - cl_accelerator_intel accelerator) CL_EXT_SUFFIX__VERSION_1_2; - -typedef CL_API_ENTRY cl_int (CL_API_CALL *clRetainAcceleratorINTEL_fn)( - cl_accelerator_intel accelerator) CL_EXT_SUFFIX__VERSION_1_2; - -extern CL_API_ENTRY cl_int CL_API_CALL -clReleaseAcceleratorINTEL( - cl_accelerator_intel accelerator) CL_EXT_SUFFIX__VERSION_1_2; - -typedef CL_API_ENTRY cl_int (CL_API_CALL *clReleaseAcceleratorINTEL_fn)( - cl_accelerator_intel accelerator) CL_EXT_SUFFIX__VERSION_1_2; - -/****************************************** -* cl_intel_simultaneous_sharing extension * -*******************************************/ - -#define cl_intel_simultaneous_sharing 1 - -#define CL_DEVICE_SIMULTANEOUS_INTEROPS_INTEL 0x4104 -#define CL_DEVICE_NUM_SIMULTANEOUS_INTEROPS_INTEL 0x4105 - -/*********************************** -* cl_intel_egl_image_yuv extension * -************************************/ - -#define cl_intel_egl_image_yuv 1 - -#define CL_EGL_YUV_PLANE_INTEL 0x4107 - -/******************************** -* cl_intel_packed_yuv extension * -*********************************/ - -#define cl_intel_packed_yuv 1 - -#define CL_YUYV_INTEL 0x4076 -#define CL_UYVY_INTEL 0x4077 -#define CL_YVYU_INTEL 0x4078 -#define CL_VYUY_INTEL 0x4079 - -/******************************************** -* cl_intel_required_subgroup_size extension * -*********************************************/ - -#define cl_intel_required_subgroup_size 1 - -#define CL_DEVICE_SUB_GROUP_SIZES_INTEL 0x4108 -#define CL_KERNEL_SPILL_MEM_SIZE_INTEL 0x4109 -#define CL_KERNEL_COMPILE_SUB_GROUP_SIZE_INTEL 0x410A - -/**************************************** -* cl_intel_driver_diagnostics extension * -*****************************************/ - -#define cl_intel_driver_diagnostics 1 - -typedef cl_uint cl_diagnostics_verbose_level; - -#define CL_CONTEXT_SHOW_DIAGNOSTICS_INTEL 0x4106 - -#define CL_CONTEXT_DIAGNOSTICS_LEVEL_ALL_INTEL ( 0xff ) -#define CL_CONTEXT_DIAGNOSTICS_LEVEL_GOOD_INTEL ( 1 ) -#define CL_CONTEXT_DIAGNOSTICS_LEVEL_BAD_INTEL ( 1 << 1 ) -#define CL_CONTEXT_DIAGNOSTICS_LEVEL_NEUTRAL_INTEL ( 1 << 2 ) - -/******************************** -* cl_intel_planar_yuv extension * -*********************************/ - -#define CL_NV12_INTEL 0x410E - -#define CL_MEM_NO_ACCESS_INTEL ( 1 << 24 ) -#define CL_MEM_ACCESS_FLAGS_UNRESTRICTED_INTEL ( 1 << 25 ) - -#define CL_DEVICE_PLANAR_YUV_MAX_WIDTH_INTEL 0x417E -#define CL_DEVICE_PLANAR_YUV_MAX_HEIGHT_INTEL 0x417F - -/******************************************************* -* cl_intel_device_side_avc_motion_estimation extension * -********************************************************/ - -#define CL_DEVICE_AVC_ME_VERSION_INTEL 0x410B -#define CL_DEVICE_AVC_ME_SUPPORTS_TEXTURE_SAMPLER_USE_INTEL 0x410C -#define CL_DEVICE_AVC_ME_SUPPORTS_PREEMPTION_INTEL 0x410D - -#define CL_AVC_ME_VERSION_0_INTEL 0x0 /* No support. */ -#define CL_AVC_ME_VERSION_1_INTEL 0x1 /* First supported version. */ - -#define CL_AVC_ME_MAJOR_16x16_INTEL 0x0 -#define CL_AVC_ME_MAJOR_16x8_INTEL 0x1 -#define CL_AVC_ME_MAJOR_8x16_INTEL 0x2 -#define CL_AVC_ME_MAJOR_8x8_INTEL 0x3 - -#define CL_AVC_ME_MINOR_8x8_INTEL 0x0 -#define CL_AVC_ME_MINOR_8x4_INTEL 0x1 -#define CL_AVC_ME_MINOR_4x8_INTEL 0x2 -#define CL_AVC_ME_MINOR_4x4_INTEL 0x3 - -#define CL_AVC_ME_MAJOR_FORWARD_INTEL 0x0 -#define CL_AVC_ME_MAJOR_BACKWARD_INTEL 0x1 -#define CL_AVC_ME_MAJOR_BIDIRECTIONAL_INTEL 0x2 - -#define CL_AVC_ME_PARTITION_MASK_ALL_INTEL 0x0 -#define CL_AVC_ME_PARTITION_MASK_16x16_INTEL 0x7E -#define CL_AVC_ME_PARTITION_MASK_16x8_INTEL 0x7D -#define CL_AVC_ME_PARTITION_MASK_8x16_INTEL 0x7B -#define CL_AVC_ME_PARTITION_MASK_8x8_INTEL 0x77 -#define CL_AVC_ME_PARTITION_MASK_8x4_INTEL 0x6F -#define CL_AVC_ME_PARTITION_MASK_4x8_INTEL 0x5F -#define CL_AVC_ME_PARTITION_MASK_4x4_INTEL 0x3F - -#define CL_AVC_ME_SEARCH_WINDOW_EXHAUSTIVE_INTEL 0x0 -#define CL_AVC_ME_SEARCH_WINDOW_SMALL_INTEL 0x1 -#define CL_AVC_ME_SEARCH_WINDOW_TINY_INTEL 0x2 -#define CL_AVC_ME_SEARCH_WINDOW_EXTRA_TINY_INTEL 0x3 -#define CL_AVC_ME_SEARCH_WINDOW_DIAMOND_INTEL 0x4 -#define CL_AVC_ME_SEARCH_WINDOW_LARGE_DIAMOND_INTEL 0x5 -#define CL_AVC_ME_SEARCH_WINDOW_RESERVED0_INTEL 0x6 -#define CL_AVC_ME_SEARCH_WINDOW_RESERVED1_INTEL 0x7 -#define CL_AVC_ME_SEARCH_WINDOW_CUSTOM_INTEL 0x8 -#define CL_AVC_ME_SEARCH_WINDOW_16x12_RADIUS_INTEL 0x9 -#define CL_AVC_ME_SEARCH_WINDOW_4x4_RADIUS_INTEL 0x2 -#define CL_AVC_ME_SEARCH_WINDOW_2x2_RADIUS_INTEL 0xa - -#define CL_AVC_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0 -#define CL_AVC_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x2 - -#define CL_AVC_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0 -#define CL_AVC_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1 -#define CL_AVC_ME_SUBPIXEL_MODE_QPEL_INTEL 0x3 - -#define CL_AVC_ME_COST_PRECISION_QPEL_INTEL 0x0 -#define CL_AVC_ME_COST_PRECISION_HPEL_INTEL 0x1 -#define CL_AVC_ME_COST_PRECISION_PEL_INTEL 0x2 -#define CL_AVC_ME_COST_PRECISION_DPEL_INTEL 0x3 - -#define CL_AVC_ME_BIDIR_WEIGHT_QUARTER_INTEL 0x10 -#define CL_AVC_ME_BIDIR_WEIGHT_THIRD_INTEL 0x15 -#define CL_AVC_ME_BIDIR_WEIGHT_HALF_INTEL 0x20 -#define CL_AVC_ME_BIDIR_WEIGHT_TWO_THIRD_INTEL 0x2B -#define CL_AVC_ME_BIDIR_WEIGHT_THREE_QUARTER_INTEL 0x30 - -#define CL_AVC_ME_BORDER_REACHED_LEFT_INTEL 0x0 -#define CL_AVC_ME_BORDER_REACHED_RIGHT_INTEL 0x2 -#define CL_AVC_ME_BORDER_REACHED_TOP_INTEL 0x4 -#define CL_AVC_ME_BORDER_REACHED_BOTTOM_INTEL 0x8 - -#define CL_AVC_ME_SKIP_BLOCK_PARTITION_16x16_INTEL 0x0 -#define CL_AVC_ME_SKIP_BLOCK_PARTITION_8x8_INTEL 0x4000 - -#define CL_AVC_ME_SKIP_BLOCK_16x16_FORWARD_ENABLE_INTEL ( 0x1 << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_16x16_BACKWARD_ENABLE_INTEL ( 0x2 << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_16x16_DUAL_ENABLE_INTEL ( 0x3 << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_FORWARD_ENABLE_INTEL ( 0x55 << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_BACKWARD_ENABLE_INTEL ( 0xAA << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_DUAL_ENABLE_INTEL ( 0xFF << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_0_FORWARD_ENABLE_INTEL ( 0x1 << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_0_BACKWARD_ENABLE_INTEL ( 0x2 << 24 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_1_FORWARD_ENABLE_INTEL ( 0x1 << 26 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_1_BACKWARD_ENABLE_INTEL ( 0x2 << 26 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_2_FORWARD_ENABLE_INTEL ( 0x1 << 28 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_2_BACKWARD_ENABLE_INTEL ( 0x2 << 28 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_3_FORWARD_ENABLE_INTEL ( 0x1 << 30 ) -#define CL_AVC_ME_SKIP_BLOCK_8x8_3_BACKWARD_ENABLE_INTEL ( 0x2 << 30 ) - -#define CL_AVC_ME_BLOCK_BASED_SKIP_4x4_INTEL 0x00 -#define CL_AVC_ME_BLOCK_BASED_SKIP_8x8_INTEL 0x80 - -#define CL_AVC_ME_INTRA_16x16_INTEL 0x0 -#define CL_AVC_ME_INTRA_8x8_INTEL 0x1 -#define CL_AVC_ME_INTRA_4x4_INTEL 0x2 - -#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_16x16_INTEL 0x6 -#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_8x8_INTEL 0x5 -#define CL_AVC_ME_INTRA_LUMA_PARTITION_MASK_4x4_INTEL 0x3 - -#define CL_AVC_ME_INTRA_NEIGHBOR_LEFT_MASK_ENABLE_INTEL 0x60 -#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_MASK_ENABLE_INTEL 0x10 -#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_RIGHT_MASK_ENABLE_INTEL 0x8 -#define CL_AVC_ME_INTRA_NEIGHBOR_UPPER_LEFT_MASK_ENABLE_INTEL 0x4 - -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_INTEL 0x0 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DC_INTEL 0x2 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_LEFT_INTEL 0x3 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_DIAGONAL_DOWN_RIGHT_INTEL 0x4 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_PLANE_INTEL 0x4 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_RIGHT_INTEL 0x5 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_DOWN_INTEL 0x6 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_VERTICAL_LEFT_INTEL 0x7 -#define CL_AVC_ME_LUMA_PREDICTOR_MODE_HORIZONTAL_UP_INTEL 0x8 -#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_DC_INTEL 0x0 -#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_HORIZONTAL_INTEL 0x1 -#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_VERTICAL_INTEL 0x2 -#define CL_AVC_ME_CHROMA_PREDICTOR_MODE_PLANE_INTEL 0x3 - -#define CL_AVC_ME_FRAME_FORWARD_INTEL 0x1 -#define CL_AVC_ME_FRAME_BACKWARD_INTEL 0x2 -#define CL_AVC_ME_FRAME_DUAL_INTEL 0x3 - -#define CL_AVC_ME_SLICE_TYPE_PRED_INTEL 0x0 -#define CL_AVC_ME_SLICE_TYPE_BPRED_INTEL 0x1 -#define CL_AVC_ME_SLICE_TYPE_INTRA_INTEL 0x2 - -#define CL_AVC_ME_INTERLACED_SCAN_TOP_FIELD_INTEL 0x0 -#define CL_AVC_ME_INTERLACED_SCAN_BOTTOM_FIELD_INTEL 0x1 - -/******************************************* -* cl_intel_unified_shared_memory extension * -********************************************/ - -/* These APIs are in sync with Revision Q of the cl_intel_unified_shared_memory spec! */ - -#define cl_intel_unified_shared_memory 1 - -/* cl_device_info */ -#define CL_DEVICE_HOST_MEM_CAPABILITIES_INTEL 0x4190 -#define CL_DEVICE_DEVICE_MEM_CAPABILITIES_INTEL 0x4191 -#define CL_DEVICE_SINGLE_DEVICE_SHARED_MEM_CAPABILITIES_INTEL 0x4192 -#define CL_DEVICE_CROSS_DEVICE_SHARED_MEM_CAPABILITIES_INTEL 0x4193 -#define CL_DEVICE_SHARED_SYSTEM_MEM_CAPABILITIES_INTEL 0x4194 - -typedef cl_bitfield cl_device_unified_shared_memory_capabilities_intel; - -/* cl_device_unified_shared_memory_capabilities_intel - bitfield */ -#define CL_UNIFIED_SHARED_MEMORY_ACCESS_INTEL (1 << 0) -#define CL_UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS_INTEL (1 << 1) -#define CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS_INTEL (1 << 2) -#define CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS_INTEL (1 << 3) - -typedef cl_properties cl_mem_properties_intel; - -/* cl_mem_properties_intel */ -#define CL_MEM_ALLOC_FLAGS_INTEL 0x4195 - -typedef cl_bitfield cl_mem_alloc_flags_intel; - -/* cl_mem_alloc_flags_intel - bitfield */ -#define CL_MEM_ALLOC_WRITE_COMBINED_INTEL (1 << 0) - -typedef cl_uint cl_mem_info_intel; - -/* cl_mem_alloc_info_intel */ -#define CL_MEM_ALLOC_TYPE_INTEL 0x419A -#define CL_MEM_ALLOC_BASE_PTR_INTEL 0x419B -#define CL_MEM_ALLOC_SIZE_INTEL 0x419C -#define CL_MEM_ALLOC_DEVICE_INTEL 0x419D -/* Enum values 0x419E-0x419F are reserved for future queries. */ - -typedef cl_uint cl_unified_shared_memory_type_intel; - -/* cl_unified_shared_memory_type_intel */ -#define CL_MEM_TYPE_UNKNOWN_INTEL 0x4196 -#define CL_MEM_TYPE_HOST_INTEL 0x4197 -#define CL_MEM_TYPE_DEVICE_INTEL 0x4198 -#define CL_MEM_TYPE_SHARED_INTEL 0x4199 - -typedef cl_uint cl_mem_advice_intel; - -/* cl_mem_advice_intel */ -/* Enum values 0x4208-0x420F are reserved for future memory advices. */ - -/* cl_kernel_exec_info */ -#define CL_KERNEL_EXEC_INFO_INDIRECT_HOST_ACCESS_INTEL 0x4200 -#define CL_KERNEL_EXEC_INFO_INDIRECT_DEVICE_ACCESS_INTEL 0x4201 -#define CL_KERNEL_EXEC_INFO_INDIRECT_SHARED_ACCESS_INTEL 0x4202 -#define CL_KERNEL_EXEC_INFO_USM_PTRS_INTEL 0x4203 - -/* cl_command_type */ -#define CL_COMMAND_MEMFILL_INTEL 0x4204 -#define CL_COMMAND_MEMCPY_INTEL 0x4205 -#define CL_COMMAND_MIGRATEMEM_INTEL 0x4206 -#define CL_COMMAND_MEMADVISE_INTEL 0x4207 - -extern CL_API_ENTRY void* CL_API_CALL -clHostMemAllocINTEL( - cl_context context, - const cl_mem_properties_intel* properties, - size_t size, - cl_uint alignment, - cl_int* errcode_ret); - -typedef CL_API_ENTRY void* (CL_API_CALL * -clHostMemAllocINTEL_fn)( - cl_context context, - const cl_mem_properties_intel* properties, - size_t size, - cl_uint alignment, - cl_int* errcode_ret); - -extern CL_API_ENTRY void* CL_API_CALL -clDeviceMemAllocINTEL( - cl_context context, - cl_device_id device, - const cl_mem_properties_intel* properties, - size_t size, - cl_uint alignment, - cl_int* errcode_ret); - -typedef CL_API_ENTRY void* (CL_API_CALL * -clDeviceMemAllocINTEL_fn)( - cl_context context, - cl_device_id device, - const cl_mem_properties_intel* properties, - size_t size, - cl_uint alignment, - cl_int* errcode_ret); - -extern CL_API_ENTRY void* CL_API_CALL -clSharedMemAllocINTEL( - cl_context context, - cl_device_id device, - const cl_mem_properties_intel* properties, - size_t size, - cl_uint alignment, - cl_int* errcode_ret); - -typedef CL_API_ENTRY void* (CL_API_CALL * -clSharedMemAllocINTEL_fn)( - cl_context context, - cl_device_id device, - const cl_mem_properties_intel* properties, - size_t size, - cl_uint alignment, - cl_int* errcode_ret); - -extern CL_API_ENTRY cl_int CL_API_CALL -clMemFreeINTEL( - cl_context context, - void* ptr); - -typedef CL_API_ENTRY cl_int (CL_API_CALL * -clMemFreeINTEL_fn)( - cl_context context, - void* ptr); - -extern CL_API_ENTRY cl_int CL_API_CALL -clMemBlockingFreeINTEL( - cl_context context, - void* ptr); - -typedef CL_API_ENTRY cl_int (CL_API_CALL * -clMemBlockingFreeINTEL_fn)( - cl_context context, - void* ptr); - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetMemAllocInfoINTEL( - cl_context context, - const void* ptr, - cl_mem_info_intel param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret); - -typedef CL_API_ENTRY cl_int (CL_API_CALL * -clGetMemAllocInfoINTEL_fn)( - cl_context context, - const void* ptr, - cl_mem_info_intel param_name, - size_t param_value_size, - void* param_value, - size_t* param_value_size_ret); - -extern CL_API_ENTRY cl_int CL_API_CALL -clSetKernelArgMemPointerINTEL( - cl_kernel kernel, - cl_uint arg_index, - const void* arg_value); - -typedef CL_API_ENTRY cl_int (CL_API_CALL * -clSetKernelArgMemPointerINTEL_fn)( - cl_kernel kernel, - cl_uint arg_index, - const void* arg_value); - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueMemsetINTEL( /* Deprecated */ - cl_command_queue command_queue, - void* dst_ptr, - cl_int value, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event); - -typedef CL_API_ENTRY cl_int (CL_API_CALL * -clEnqueueMemsetINTEL_fn)( /* Deprecated */ - cl_command_queue command_queue, - void* dst_ptr, - cl_int value, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event); - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueMemFillINTEL( - cl_command_queue command_queue, - void* dst_ptr, - const void* pattern, - size_t pattern_size, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event); - -typedef CL_API_ENTRY cl_int (CL_API_CALL * -clEnqueueMemFillINTEL_fn)( - cl_command_queue command_queue, - void* dst_ptr, - const void* pattern, - size_t pattern_size, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event); - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueMemcpyINTEL( - cl_command_queue command_queue, - cl_bool blocking, - void* dst_ptr, - const void* src_ptr, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event); - -typedef CL_API_ENTRY cl_int (CL_API_CALL * -clEnqueueMemcpyINTEL_fn)( - cl_command_queue command_queue, - cl_bool blocking, - void* dst_ptr, - const void* src_ptr, - size_t size, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event); - -#ifdef CL_VERSION_1_2 - -/* Because these APIs use cl_mem_migration_flags, they require - OpenCL 1.2: */ - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueMigrateMemINTEL( - cl_command_queue command_queue, - const void* ptr, - size_t size, - cl_mem_migration_flags flags, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event); - -typedef CL_API_ENTRY cl_int (CL_API_CALL * -clEnqueueMigrateMemINTEL_fn)( - cl_command_queue command_queue, - const void* ptr, - size_t size, - cl_mem_migration_flags flags, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event); - -#endif - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueMemAdviseINTEL( - cl_command_queue command_queue, - const void* ptr, - size_t size, - cl_mem_advice_intel advice, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event); - -typedef CL_API_ENTRY cl_int (CL_API_CALL * -clEnqueueMemAdviseINTEL_fn)( - cl_command_queue command_queue, - const void* ptr, - size_t size, - cl_mem_advice_intel advice, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event); - -/*************************************************** -* cl_intel_create_buffer_with_properties extension * -****************************************************/ - -#define cl_intel_create_buffer_with_properties 1 - -extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateBufferWithPropertiesINTEL( - cl_context context, - const cl_mem_properties_intel* properties, - cl_mem_flags flags, - size_t size, - void * host_ptr, - cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_0; - -typedef CL_API_ENTRY cl_mem (CL_API_CALL * -clCreateBufferWithPropertiesINTEL_fn)( - cl_context context, - const cl_mem_properties_intel* properties, - cl_mem_flags flags, - size_t size, - void * host_ptr, - cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_0; - -/****************************************** -* cl_intel_mem_channel_property extension * -*******************************************/ - -#define CL_MEM_CHANNEL_INTEL 0x4213 - -/********************************* -* cl_intel_mem_force_host_memory * -**********************************/ - -#define cl_intel_mem_force_host_memory 1 - -/* cl_mem_flags */ -#define CL_MEM_FORCE_HOST_MEMORY_INTEL (1 << 20) - -#ifdef __cplusplus -} -#endif - -#endif /* __CL_EXT_INTEL_H */ +#include <CL/cl_ext.h> +#pragma message("The Intel extensions have been moved into cl_ext.h. Please include cl_ext.h directly.") diff -Nru darktable-4.4.2/src/external/OpenCL/CL/cl_gl.h darktable-4.6.1/src/external/OpenCL/CL/cl_gl.h --- darktable-4.4.2/src/external/OpenCL/CL/cl_gl.h 2020-12-09 16:53:44.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/CL/cl_gl.h 2023-04-17 08:34:39.000000000 +0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. + * Copyright (c) 2008-2023 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,146 +14,359 @@ * limitations under the License. ******************************************************************************/ -#ifndef __OPENCL_CL_GL_H -#define __OPENCL_CL_GL_H +#ifndef OPENCL_CL_GL_H_ +#define OPENCL_CL_GL_H_ + +/* +** This header is generated from the Khronos OpenCL XML API Registry. +*/ #include <CL/cl.h> -#ifdef __cplusplus -extern "C" { +/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) +#define CL_NO_EXTENSION_PROTOTYPES #endif -typedef cl_uint cl_gl_object_type; -typedef cl_uint cl_gl_texture_info; -typedef cl_uint cl_gl_platform_info; -typedef struct __GLsync *cl_GLsync; - -/* cl_gl_object_type = 0x2000 - 0x200F enum values are currently taken */ -#define CL_GL_OBJECT_BUFFER 0x2000 -#define CL_GL_OBJECT_TEXTURE2D 0x2001 -#define CL_GL_OBJECT_TEXTURE3D 0x2002 -#define CL_GL_OBJECT_RENDERBUFFER 0x2003 -#ifdef CL_VERSION_1_2 -#define CL_GL_OBJECT_TEXTURE2D_ARRAY 0x200E -#define CL_GL_OBJECT_TEXTURE1D 0x200F -#define CL_GL_OBJECT_TEXTURE1D_ARRAY 0x2010 -#define CL_GL_OBJECT_TEXTURE_BUFFER 0x2011 +/* CL_NO_EXTENSION_PROTOTYPES implies + CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and + CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES #endif -/* cl_gl_texture_info */ -#define CL_GL_TEXTURE_TARGET 0x2004 -#define CL_GL_MIPMAP_LEVEL 0x2005 -#ifdef CL_VERSION_1_2 -#define CL_GL_NUM_SAMPLES 0x2012 +#ifdef __cplusplus +extern "C" { #endif +/*************************************************************** +* cl_khr_gl_sharing +***************************************************************/ +#define cl_khr_gl_sharing 1 +#define CL_KHR_GL_SHARING_EXTENSION_NAME \ + "cl_khr_gl_sharing" + +typedef cl_uint cl_gl_context_info; + +/* Error codes */ +#define CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR -1000 + +/* cl_gl_context_info */ +#define CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR 0x2006 +#define CL_DEVICES_FOR_GL_CONTEXT_KHR 0x2007 + +/* Additional cl_context_properties */ +#define CL_GL_CONTEXT_KHR 0x2008 +#define CL_EGL_DISPLAY_KHR 0x2009 +#define CL_GLX_DISPLAY_KHR 0x200A +#define CL_WGL_HDC_KHR 0x200B +#define CL_CGL_SHAREGROUP_KHR 0x200C + +typedef cl_uint cl_gl_object_type; +typedef cl_uint cl_gl_texture_info; +typedef cl_uint cl_gl_platform_info; + +/* cl_gl_object_type */ +#define CL_GL_OBJECT_BUFFER 0x2000 +#define CL_GL_OBJECT_TEXTURE2D 0x2001 +#define CL_GL_OBJECT_TEXTURE3D 0x2002 +#define CL_GL_OBJECT_RENDERBUFFER 0x2003 + +#if defined(CL_VERSION_1_2) +/* cl_gl_object_type */ +#define CL_GL_OBJECT_TEXTURE2D_ARRAY 0x200E +#define CL_GL_OBJECT_TEXTURE1D 0x200F +#define CL_GL_OBJECT_TEXTURE1D_ARRAY 0x2010 +#define CL_GL_OBJECT_TEXTURE_BUFFER 0x2011 + +#endif /* defined(CL_VERSION_1_2) */ + +/* cl_gl_texture_info */ +#define CL_GL_TEXTURE_TARGET 0x2004 +#define CL_GL_MIPMAP_LEVEL 0x2005 + + +typedef cl_int (CL_API_CALL * +clGetGLContextInfoKHR_fn)( + const cl_context_properties* properties, + cl_gl_context_info param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; + +typedef cl_mem (CL_API_CALL * +clCreateFromGLBuffer_fn)( + cl_context context, + cl_mem_flags flags, + cl_GLuint bufobj, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetGLContextInfoKHR( + const cl_context_properties* properties, + cl_gl_context_info param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromGLBuffer(cl_context context, - cl_mem_flags flags, - cl_GLuint bufobj, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; +clCreateFromGLBuffer( + cl_context context, + cl_mem_flags flags, + cl_GLuint bufobj, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +#if defined(CL_VERSION_1_2) + +typedef cl_mem (CL_API_CALL * +clCreateFromGLTexture_fn)( + cl_context context, + cl_mem_flags flags, + cl_GLenum target, + cl_GLint miplevel, + cl_GLuint texture, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; -#ifdef CL_VERSION_1_2 +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromGLTexture(cl_context context, - cl_mem_flags flags, - cl_GLenum target, - cl_GLint miplevel, - cl_GLuint texture, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; +clCreateFromGLTexture( + cl_context context, + cl_mem_flags flags, + cl_GLenum target, + cl_GLint miplevel, + cl_GLuint texture, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +#endif /* defined(CL_VERSION_1_2) */ + + +typedef cl_mem (CL_API_CALL * +clCreateFromGLRenderbuffer_fn)( + cl_context context, + cl_mem_flags flags, + cl_GLuint renderbuffer, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; + +typedef cl_int (CL_API_CALL * +clGetGLObjectInfo_fn)( + cl_mem memobj, + cl_gl_object_type* gl_object_type, + cl_GLuint* gl_object_name) CL_API_SUFFIX__VERSION_1_0; + +typedef cl_int (CL_API_CALL * +clGetGLTextureInfo_fn)( + cl_mem memobj, + cl_gl_texture_info param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; + +typedef cl_int (CL_API_CALL * +clEnqueueAcquireGLObjects_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_0; + +typedef cl_int (CL_API_CALL * +clEnqueueReleaseGLObjects_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_0; -#endif +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) extern CL_API_ENTRY cl_mem CL_API_CALL -clCreateFromGLRenderbuffer(cl_context context, - cl_mem_flags flags, - cl_GLuint renderbuffer, - cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetGLObjectInfo(cl_mem memobj, - cl_gl_object_type * gl_object_type, - cl_GLuint * gl_object_name) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetGLTextureInfo(cl_mem memobj, - cl_gl_texture_info param_name, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueAcquireGLObjects(cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_0; - -extern CL_API_ENTRY cl_int CL_API_CALL -clEnqueueReleaseGLObjects(cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem * mem_objects, - cl_uint num_events_in_wait_list, - const cl_event * event_wait_list, - cl_event * event) CL_API_SUFFIX__VERSION_1_0; - - -/* Deprecated OpenCL 1.1 APIs */ -extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL -clCreateFromGLTexture2D(cl_context context, - cl_mem_flags flags, - cl_GLenum target, - cl_GLint miplevel, - cl_GLuint texture, - cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; - -extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL -clCreateFromGLTexture3D(cl_context context, - cl_mem_flags flags, - cl_GLenum target, - cl_GLint miplevel, - cl_GLuint texture, - cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; +clCreateFromGLRenderbuffer( + cl_context context, + cl_mem_flags flags, + cl_GLuint renderbuffer, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0; -/* cl_khr_gl_sharing extension */ +extern CL_API_ENTRY cl_int CL_API_CALL +clGetGLObjectInfo( + cl_mem memobj, + cl_gl_object_type* gl_object_type, + cl_GLuint* gl_object_name) CL_API_SUFFIX__VERSION_1_0; -#define cl_khr_gl_sharing 1 +extern CL_API_ENTRY cl_int CL_API_CALL +clGetGLTextureInfo( + cl_mem memobj, + cl_gl_texture_info param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueAcquireGLObjects( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_0; + +extern CL_API_ENTRY cl_int CL_API_CALL +clEnqueueReleaseGLObjects( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_0; + +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/* OpenCL 1.0 APIs that were deprecated in OpenCL 1.2 */ + +typedef cl_mem (CL_API_CALL * +clCreateFromGLTexture2D_fn)( + cl_context context, + cl_mem_flags flags, + cl_GLenum target, + cl_GLint miplevel, + cl_GLuint texture, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; + +typedef cl_mem (CL_API_CALL * +clCreateFromGLTexture3D_fn)( + cl_context context, + cl_mem_flags flags, + cl_GLenum target, + cl_GLint miplevel, + cl_GLuint texture, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; -typedef cl_uint cl_gl_context_info; +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) -/* Additional Error Codes */ -#define CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR -1000 +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromGLTexture2D( + cl_context context, + cl_mem_flags flags, + cl_GLenum target, + cl_GLint miplevel, + cl_GLuint texture, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; + +extern CL_API_ENTRY cl_mem CL_API_CALL +clCreateFromGLTexture3D( + cl_context context, + cl_mem_flags flags, + cl_GLenum target, + cl_GLint miplevel, + cl_GLuint texture, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; + +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_khr_gl_event +***************************************************************/ +#define cl_khr_gl_event 1 +#define CL_KHR_GL_EVENT_EXTENSION_NAME \ + "cl_khr_gl_event" + +typedef struct __GLsync * cl_GLsync; + +/* cl_command_type */ +#define CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR 0x200D + + +typedef cl_event (CL_API_CALL * +clCreateEventFromGLsyncKHR_fn)( + cl_context context, + cl_GLsync sync, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; + +#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_event CL_API_CALL +clCreateEventFromGLsyncKHR( + cl_context context, + cl_GLsync sync, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1; + +#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_khr_gl_depth_images +***************************************************************/ +#define cl_khr_gl_depth_images 1 +#define CL_KHR_GL_DEPTH_IMAGES_EXTENSION_NAME \ + "cl_khr_gl_depth_images" + +#if !defined(CL_VERSION_1_2) +/* cl_channel_order - defined in CL.h for OpenCL 1.2 and newer */ +#define CL_DEPTH_STENCIL 0x10BE + +#endif /* !defined(CL_VERSION_1_2) */ + +#if !defined(CL_VERSION_1_2) +/* cl_channel_type - defined in CL.h for OpenCL 1.2 and newer */ +#define CL_UNORM_INT24 0x10DF + +#endif /* !defined(CL_VERSION_1_2) */ + +/*************************************************************** +* cl_khr_gl_msaa_sharing +***************************************************************/ +#define cl_khr_gl_msaa_sharing 1 +#define CL_KHR_GL_MSAA_SHARING_EXTENSION_NAME \ + "cl_khr_gl_msaa_sharing" + +/* cl_gl_texture_info */ +#define CL_GL_NUM_SAMPLES 0x2012 + +/*************************************************************** +* cl_intel_sharing_format_query_gl +***************************************************************/ +#define cl_intel_sharing_format_query_gl 1 +#define CL_INTEL_SHARING_FORMAT_QUERY_GL_EXTENSION_NAME \ + "cl_intel_sharing_format_query_gl" + +/* when cl_khr_gl_sharing is supported */ + +typedef cl_int (CL_API_CALL * +clGetSupportedGLTextureFormatsINTEL_fn)( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint num_entries, + cl_GLenum* gl_formats, + cl_uint* num_texture_formats) ; + +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSupportedGLTextureFormatsINTEL( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint num_entries, + cl_GLenum* gl_formats, + cl_uint* num_texture_formats) ; -/* cl_gl_context_info */ -#define CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR 0x2006 -#define CL_DEVICES_FOR_GL_CONTEXT_KHR 0x2007 - -/* Additional cl_context_properties */ -#define CL_GL_CONTEXT_KHR 0x2008 -#define CL_EGL_DISPLAY_KHR 0x2009 -#define CL_GLX_DISPLAY_KHR 0x200A -#define CL_WGL_HDC_KHR 0x200B -#define CL_CGL_SHAREGROUP_KHR 0x200C - -extern CL_API_ENTRY cl_int CL_API_CALL -clGetGLContextInfoKHR(const cl_context_properties * properties, - cl_gl_context_info param_name, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; - -typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetGLContextInfoKHR_fn)( - const cl_context_properties * properties, - cl_gl_context_info param_name, - size_t param_value_size, - void * param_value, - size_t * param_value_size_ret); +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ #ifdef __cplusplus } #endif -#endif /* __OPENCL_CL_GL_H */ +#endif /* OPENCL_CL_GL_H_ */ diff -Nru darktable-4.4.2/src/external/OpenCL/CL/cl_gl_ext.h darktable-4.6.1/src/external/OpenCL/CL/cl_gl_ext.h --- darktable-4.4.2/src/external/OpenCL/CL/cl_gl_ext.h 2020-12-09 16:53:44.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/CL/cl_gl_ext.h 2023-04-17 08:34:39.000000000 +0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. + * Copyright (c) 2008-2021 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,27 +14,5 @@ * limitations under the License. ******************************************************************************/ -#ifndef __OPENCL_CL_GL_EXT_H -#define __OPENCL_CL_GL_EXT_H - -#ifdef __cplusplus -extern "C" { -#endif - #include <CL/cl_gl.h> - -/* - * cl_khr_gl_event extension - */ -#define CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR 0x200D - -extern CL_API_ENTRY cl_event CL_API_CALL -clCreateEventFromGLsyncKHR(cl_context context, - cl_GLsync sync, - cl_int * errcode_ret) CL_EXT_SUFFIX__VERSION_1_1; - -#ifdef __cplusplus -} -#endif - -#endif /* __OPENCL_CL_GL_EXT_H */ +#pragma message("The extensions in cl_gl_ext.h have been moved into cl_gl.h. Please include cl_gl.h directly.") diff -Nru darktable-4.4.2/src/external/OpenCL/CL/cl_icd.h darktable-4.6.1/src/external/OpenCL/CL/cl_icd.h --- darktable-4.4.2/src/external/OpenCL/CL/cl_icd.h 2020-12-09 16:53:44.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/CL/cl_icd.h 2023-04-17 08:34:39.000000000 +0000 @@ -41,35 +41,35 @@ /* API function pointer definitions */ // Platform APIs -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetPlatformIDs)( +typedef cl_int(CL_API_CALL *cl_api_clGetPlatformIDs)( cl_uint num_entries, cl_platform_id *platforms, cl_uint *num_platforms) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetPlatformInfo)( +typedef cl_int(CL_API_CALL *cl_api_clGetPlatformInfo)( cl_platform_id platform, cl_platform_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; // Device APIs -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetDeviceIDs)( +typedef cl_int(CL_API_CALL *cl_api_clGetDeviceIDs)( cl_platform_id platform, cl_device_type device_type, cl_uint num_entries, cl_device_id *devices, cl_uint *num_devices) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetDeviceInfo)( +typedef cl_int(CL_API_CALL *cl_api_clGetDeviceInfo)( cl_device_id device, cl_device_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_1_2 -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clCreateSubDevices)( +typedef cl_int(CL_API_CALL *cl_api_clCreateSubDevices)( cl_device_id in_device, const cl_device_partition_property *partition_properties, cl_uint num_entries, cl_device_id *out_devices, cl_uint *num_devices); -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clRetainDevice)( +typedef cl_int(CL_API_CALL *cl_api_clRetainDevice)( cl_device_id device) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clReleaseDevice)( +typedef cl_int(CL_API_CALL *cl_api_clReleaseDevice)( cl_device_id device) CL_API_SUFFIX__VERSION_1_2; #else @@ -81,36 +81,36 @@ #endif // Context APIs -typedef CL_API_ENTRY cl_context(CL_API_CALL *cl_api_clCreateContext)( +typedef cl_context(CL_API_CALL *cl_api_clCreateContext)( const cl_context_properties *properties, cl_uint num_devices, const cl_device_id *devices, void(CL_CALLBACK *pfn_notify)(const char *, const void *, size_t, void *), void *user_data, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_context(CL_API_CALL *cl_api_clCreateContextFromType)( +typedef cl_context(CL_API_CALL *cl_api_clCreateContextFromType)( const cl_context_properties *properties, cl_device_type device_type, void(CL_CALLBACK *pfn_notify)(const char *, const void *, size_t, void *), void *user_data, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clRetainContext)( +typedef cl_int(CL_API_CALL *cl_api_clRetainContext)( cl_context context) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clReleaseContext)( +typedef cl_int(CL_API_CALL *cl_api_clReleaseContext)( cl_context context) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetContextInfo)( +typedef cl_int(CL_API_CALL *cl_api_clGetContextInfo)( cl_context context, cl_context_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; // Command Queue APIs -typedef CL_API_ENTRY cl_command_queue(CL_API_CALL *cl_api_clCreateCommandQueue)( +typedef cl_command_queue(CL_API_CALL *cl_api_clCreateCommandQueue)( cl_context context, cl_device_id device, cl_command_queue_properties properties, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_2_0 -typedef CL_API_ENTRY +typedef cl_command_queue(CL_API_CALL *cl_api_clCreateCommandQueueWithProperties)( cl_context /* context */, cl_device_id /* device */, const cl_queue_properties * /* properties */, @@ -122,25 +122,25 @@ #endif -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clRetainCommandQueue)( +typedef cl_int(CL_API_CALL *cl_api_clRetainCommandQueue)( cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clReleaseCommandQueue)( +typedef cl_int(CL_API_CALL *cl_api_clReleaseCommandQueue)( cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetCommandQueueInfo)( +typedef cl_int(CL_API_CALL *cl_api_clGetCommandQueueInfo)( cl_command_queue command_queue, cl_command_queue_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; // Memory Object APIs -typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateBuffer)( +typedef cl_mem(CL_API_CALL *cl_api_clCreateBuffer)( cl_context context, cl_mem_flags flags, size_t size, void *host_ptr, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_1_2 -typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateImage)( +typedef cl_mem(CL_API_CALL *cl_api_clCreateImage)( cl_context context, cl_mem_flags flags, const cl_image_format *image_format, const cl_image_desc *image_desc, void *host_ptr, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2; @@ -153,17 +153,17 @@ #ifdef CL_VERSION_3_0 -typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateBufferWithProperties)( +typedef cl_mem(CL_API_CALL *cl_api_clCreateBufferWithProperties)( cl_context context, const cl_mem_properties *properties, cl_mem_flags flags, size_t size, void *host_ptr, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_3_0; -typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateImageWithProperties)( +typedef cl_mem(CL_API_CALL *cl_api_clCreateImageWithProperties)( cl_context context, const cl_mem_properties *properties, cl_mem_flags flags, const cl_image_format *image_format, const cl_image_desc *image_desc, void *host_ptr, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_3_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL* cl_api_clSetContextDestructorCallback)( +typedef cl_int(CL_API_CALL* cl_api_clSetContextDestructorCallback)( cl_context context, void(CL_CALLBACK* pfn_notify)(cl_context context, void* user_data), void* user_data) CL_API_SUFFIX__VERSION_3_0; @@ -176,43 +176,43 @@ #endif -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clRetainMemObject)( +typedef cl_int(CL_API_CALL *cl_api_clRetainMemObject)( cl_mem memobj) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clReleaseMemObject)( +typedef cl_int(CL_API_CALL *cl_api_clReleaseMemObject)( cl_mem memobj) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetSupportedImageFormats)( +typedef cl_int(CL_API_CALL *cl_api_clGetSupportedImageFormats)( cl_context context, cl_mem_flags flags, cl_mem_object_type image_type, cl_uint num_entries, cl_image_format *image_formats, cl_uint *num_image_formats) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetMemObjectInfo)( +typedef cl_int(CL_API_CALL *cl_api_clGetMemObjectInfo)( cl_mem memobj, cl_mem_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetImageInfo)( +typedef cl_int(CL_API_CALL *cl_api_clGetImageInfo)( cl_mem image, cl_image_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_2_0 -typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreatePipe)( +typedef cl_mem(CL_API_CALL *cl_api_clCreatePipe)( cl_context /* context */, cl_mem_flags /* flags */, cl_uint /* pipe_packet_size */, cl_uint /* pipe_max_packets */, const cl_pipe_properties * /* properties */, cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_2_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetPipeInfo)( +typedef cl_int(CL_API_CALL *cl_api_clGetPipeInfo)( cl_mem /* pipe */, cl_pipe_info /* param_name */, size_t /* param_value_size */, void * /* param_value */, size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_2_0; -typedef CL_API_ENTRY void *(CL_API_CALL *cl_api_clSVMAlloc)( +typedef void *(CL_API_CALL *cl_api_clSVMAlloc)( cl_context /* context */, cl_svm_mem_flags /* flags */, size_t /* size */, unsigned int /* alignment */)CL_API_SUFFIX__VERSION_2_0; -typedef CL_API_ENTRY void(CL_API_CALL *cl_api_clSVMFree)( +typedef void(CL_API_CALL *cl_api_clSVMFree)( cl_context /* context */, void * /* svm_pointer */) CL_API_SUFFIX__VERSION_2_0; @@ -226,24 +226,24 @@ #endif // Sampler APIs -typedef CL_API_ENTRY cl_sampler(CL_API_CALL *cl_api_clCreateSampler)( +typedef cl_sampler(CL_API_CALL *cl_api_clCreateSampler)( cl_context context, cl_bool normalized_coords, cl_addressing_mode addressing_mode, cl_filter_mode filter_mode, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clRetainSampler)( +typedef cl_int(CL_API_CALL *cl_api_clRetainSampler)( cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clReleaseSampler)( +typedef cl_int(CL_API_CALL *cl_api_clReleaseSampler)( cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetSamplerInfo)( +typedef cl_int(CL_API_CALL *cl_api_clGetSamplerInfo)( cl_sampler sampler, cl_sampler_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_2_0 -typedef CL_API_ENTRY +typedef cl_sampler(CL_API_CALL *cl_api_clCreateSamplerWithProperties)( cl_context /* context */, const cl_sampler_properties * /* sampler_properties */, @@ -256,18 +256,18 @@ #endif // Program Object APIs -typedef CL_API_ENTRY cl_program(CL_API_CALL *cl_api_clCreateProgramWithSource)( +typedef cl_program(CL_API_CALL *cl_api_clCreateProgramWithSource)( cl_context context, cl_uint count, const char **strings, const size_t *lengths, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_program(CL_API_CALL *cl_api_clCreateProgramWithBinary)( +typedef cl_program(CL_API_CALL *cl_api_clCreateProgramWithBinary)( cl_context context, cl_uint num_devices, const cl_device_id *device_list, const size_t *lengths, const unsigned char **binaries, cl_int *binary_status, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_1_2 -typedef CL_API_ENTRY +typedef cl_program(CL_API_CALL *cl_api_clCreateProgramWithBuiltInKernels)( cl_context context, cl_uint num_devices, const cl_device_id *device_list, const char *kernel_names, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2; @@ -278,13 +278,13 @@ #endif -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clRetainProgram)( +typedef cl_int(CL_API_CALL *cl_api_clRetainProgram)( cl_program program) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clReleaseProgram)( +typedef cl_int(CL_API_CALL *cl_api_clReleaseProgram)( cl_program program) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clBuildProgram)( +typedef cl_int(CL_API_CALL *cl_api_clBuildProgram)( cl_program program, cl_uint num_devices, const cl_device_id *device_list, const char *options, void(CL_CALLBACK *pfn_notify)(cl_program program, void *user_data), @@ -292,14 +292,14 @@ #ifdef CL_VERSION_1_2 -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clCompileProgram)( +typedef cl_int(CL_API_CALL *cl_api_clCompileProgram)( cl_program program, cl_uint num_devices, const cl_device_id *device_list, const char *options, cl_uint num_input_headers, const cl_program *input_headers, const char **header_include_names, void(CL_CALLBACK *pfn_notify)(cl_program program, void *user_data), void *user_data) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_program(CL_API_CALL *cl_api_clLinkProgram)( +typedef cl_program(CL_API_CALL *cl_api_clLinkProgram)( cl_context context, cl_uint num_devices, const cl_device_id *device_list, const char *options, cl_uint num_input_programs, const cl_program *input_programs, @@ -315,12 +315,12 @@ #ifdef CL_VERSION_2_2 -typedef CL_API_ENTRY +typedef cl_int(CL_API_CALL *cl_api_clSetProgramSpecializationConstant)( cl_program program, cl_uint spec_id, size_t spec_size, const void *spec_value) CL_API_SUFFIX__VERSION_2_2; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clSetProgramReleaseCallback)( +typedef cl_int(CL_API_CALL *cl_api_clSetProgramReleaseCallback)( cl_program program, void(CL_CALLBACK *pfn_notify)(cl_program program, void *user_data), void *user_data) CL_API_SUFFIX__VERSION_2_2; @@ -334,7 +334,7 @@ #ifdef CL_VERSION_1_2 -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clUnloadPlatformCompiler)( +typedef cl_int(CL_API_CALL *cl_api_clUnloadPlatformCompiler)( cl_platform_id platform) CL_API_SUFFIX__VERSION_1_2; #else @@ -343,41 +343,41 @@ #endif -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetProgramInfo)( +typedef cl_int(CL_API_CALL *cl_api_clGetProgramInfo)( cl_program program, cl_program_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetProgramBuildInfo)( +typedef cl_int(CL_API_CALL *cl_api_clGetProgramBuildInfo)( cl_program program, cl_device_id device, cl_program_build_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; // Kernel Object APIs -typedef CL_API_ENTRY cl_kernel(CL_API_CALL *cl_api_clCreateKernel)( +typedef cl_kernel(CL_API_CALL *cl_api_clCreateKernel)( cl_program program, const char *kernel_name, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clCreateKernelsInProgram)( +typedef cl_int(CL_API_CALL *cl_api_clCreateKernelsInProgram)( cl_program program, cl_uint num_kernels, cl_kernel *kernels, cl_uint *num_kernels_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clRetainKernel)( +typedef cl_int(CL_API_CALL *cl_api_clRetainKernel)( cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clReleaseKernel)( +typedef cl_int(CL_API_CALL *cl_api_clReleaseKernel)( cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clSetKernelArg)( +typedef cl_int(CL_API_CALL *cl_api_clSetKernelArg)( cl_kernel kernel, cl_uint arg_index, size_t arg_size, const void *arg_value) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetKernelInfo)( +typedef cl_int(CL_API_CALL *cl_api_clGetKernelInfo)( cl_kernel kernel, cl_kernel_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_1_2 -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetKernelArgInfo)( +typedef cl_int(CL_API_CALL *cl_api_clGetKernelArgInfo)( cl_kernel kernel, cl_uint arg_indx, cl_kernel_arg_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_2; @@ -388,28 +388,28 @@ #endif -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetKernelWorkGroupInfo)( +typedef cl_int(CL_API_CALL *cl_api_clGetKernelWorkGroupInfo)( cl_kernel kernel, cl_device_id device, cl_kernel_work_group_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_2_0 -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clSetKernelArgSVMPointer)( +typedef cl_int(CL_API_CALL *cl_api_clSetKernelArgSVMPointer)( cl_kernel /* kernel */, cl_uint /* arg_index */, const void * /* arg_value */) CL_API_SUFFIX__VERSION_2_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clSetKernelExecInfo)( +typedef cl_int(CL_API_CALL *cl_api_clSetKernelExecInfo)( cl_kernel /* kernel */, cl_kernel_exec_info /* param_name */, size_t /* param_value_size */, const void * /* param_value */) CL_API_SUFFIX__VERSION_2_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetKernelSubGroupInfoKHR)( +typedef cl_int(CL_API_CALL *cl_api_clGetKernelSubGroupInfoKHR)( cl_kernel /* in_kernel */, cl_device_id /*in_device*/, cl_kernel_sub_group_info /* param_name */, size_t /*input_value_size*/, const void * /*input_value*/, size_t /*param_value_size*/, void * /*param_value*/, - size_t * /*param_value_size_ret*/) CL_EXT_SUFFIX__VERSION_2_0; + size_t * /*param_value_size_ret*/) CL_API_SUFFIX__VERSION_2_0; #else @@ -420,33 +420,33 @@ #endif // Event Object APIs -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clWaitForEvents)( +typedef cl_int(CL_API_CALL *cl_api_clWaitForEvents)( cl_uint num_events, const cl_event *event_list) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetEventInfo)( +typedef cl_int(CL_API_CALL *cl_api_clGetEventInfo)( cl_event event, cl_event_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clRetainEvent)(cl_event event) +typedef cl_int(CL_API_CALL *cl_api_clRetainEvent)(cl_event event) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clReleaseEvent)(cl_event event) +typedef cl_int(CL_API_CALL *cl_api_clReleaseEvent)(cl_event event) CL_API_SUFFIX__VERSION_1_0; // Profiling APIs -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetEventProfilingInfo)( +typedef cl_int(CL_API_CALL *cl_api_clGetEventProfilingInfo)( cl_event event, cl_profiling_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; // Flush and Finish APIs -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clFlush)( +typedef cl_int(CL_API_CALL *cl_api_clFlush)( cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clFinish)( +typedef cl_int(CL_API_CALL *cl_api_clFinish)( cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0; // Enqueued Commands APIs -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueReadBuffer)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueReadBuffer)( cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_read, size_t offset, size_t cb, void *ptr, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, @@ -454,7 +454,7 @@ #ifdef CL_VERSION_1_1 -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueReadBufferRect)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueReadBufferRect)( cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_read, const size_t *buffer_origin, const size_t *host_origin, const size_t *region, size_t buffer_row_pitch, size_t buffer_slice_pitch, @@ -468,7 +468,7 @@ #endif -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueWriteBuffer)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueWriteBuffer)( cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_write, size_t offset, size_t cb, const void *ptr, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, @@ -476,7 +476,7 @@ #ifdef CL_VERSION_1_1 -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueWriteBufferRect)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueWriteBufferRect)( cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_read, const size_t *buffer_origin, const size_t *host_origin, const size_t *region, size_t buffer_row_pitch, size_t buffer_slice_pitch, @@ -492,7 +492,7 @@ #ifdef CL_VERSION_1_2 -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueFillBuffer)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueFillBuffer)( cl_command_queue command_queue, cl_mem buffer, const void *pattern, size_t pattern_size, size_t offset, size_t cb, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, @@ -504,7 +504,7 @@ #endif -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueCopyBuffer)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueCopyBuffer)( cl_command_queue command_queue, cl_mem src_buffer, cl_mem dst_buffer, size_t src_offset, size_t dst_offset, size_t cb, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, @@ -512,7 +512,7 @@ #ifdef CL_VERSION_1_1 -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueCopyBufferRect)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueCopyBufferRect)( cl_command_queue command_queue, cl_mem src_buffer, cl_mem dst_buffer, const size_t *src_origin, const size_t *dst_origin, const size_t *region, size_t src_row_pitch, size_t src_slice_pitch, size_t dst_row_pitch, @@ -526,14 +526,14 @@ #endif -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueReadImage)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueReadImage)( cl_command_queue command_queue, cl_mem image, cl_bool blocking_read, const size_t *origin, const size_t *region, size_t row_pitch, size_t slice_pitch, void *ptr, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueWriteImage)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueWriteImage)( cl_command_queue command_queue, cl_mem image, cl_bool blocking_write, const size_t *origin, const size_t *region, size_t input_row_pitch, size_t input_slice_pitch, const void *ptr, cl_uint num_events_in_wait_list, @@ -542,7 +542,7 @@ #ifdef CL_VERSION_1_2 -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueFillImage)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueFillImage)( cl_command_queue command_queue, cl_mem image, const void *fill_color, const size_t origin[3], const size_t region[3], cl_uint num_events_in_wait_list, const cl_event *event_wait_list, @@ -554,45 +554,45 @@ #endif -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueCopyImage)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueCopyImage)( cl_command_queue command_queue, cl_mem src_image, cl_mem dst_image, const size_t *src_origin, const size_t *dst_origin, const size_t *region, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueCopyImageToBuffer)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueCopyImageToBuffer)( cl_command_queue command_queue, cl_mem src_image, cl_mem dst_buffer, const size_t *src_origin, const size_t *region, size_t dst_offset, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueCopyBufferToImage)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueCopyBufferToImage)( cl_command_queue command_queue, cl_mem src_buffer, cl_mem dst_image, size_t src_offset, const size_t *dst_origin, const size_t *region, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY void *(CL_API_CALL *cl_api_clEnqueueMapBuffer)( +typedef void *(CL_API_CALL *cl_api_clEnqueueMapBuffer)( cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_map, cl_map_flags map_flags, size_t offset, size_t cb, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event, cl_int *errcode_ret)CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY void *(CL_API_CALL *cl_api_clEnqueueMapImage)( +typedef void *(CL_API_CALL *cl_api_clEnqueueMapImage)( cl_command_queue command_queue, cl_mem image, cl_bool blocking_map, cl_map_flags map_flags, const size_t *origin, const size_t *region, size_t *image_row_pitch, size_t *image_slice_pitch, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event, cl_int *errcode_ret)CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueUnmapMemObject)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueUnmapMemObject)( cl_command_queue command_queue, cl_mem memobj, void *mapped_ptr, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event) CL_API_SUFFIX__VERSION_1_0; #ifdef CL_VERSION_1_2 -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueMigrateMemObjects)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueMigrateMemObjects)( cl_command_queue command_queue, cl_uint num_mem_objects, const cl_mem *mem_objects, cl_mem_migration_flags flags, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, @@ -604,19 +604,19 @@ #endif -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueNDRangeKernel)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueNDRangeKernel)( cl_command_queue command_queue, cl_kernel kernel, cl_uint work_dim, const size_t *global_work_offset, const size_t *global_work_size, const size_t *local_work_size, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueTask)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueTask)( cl_command_queue command_queue, cl_kernel kernel, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueNativeKernel)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueNativeKernel)( cl_command_queue command_queue, void(CL_CALLBACK *user_func)(void *), void *args, size_t cb_args, cl_uint num_mem_objects, const cl_mem *mem_list, const void **args_mem_loc, cl_uint num_events_in_wait_list, @@ -625,17 +625,17 @@ #ifdef CL_VERSION_1_2 -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueMarkerWithWaitList)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueMarkerWithWaitList)( cl_command_queue command_queue, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueBarrierWithWaitList)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueBarrierWithWaitList)( cl_command_queue command_queue, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY void *( +typedef void *( CL_API_CALL *cl_api_clGetExtensionFunctionAddressForPlatform)( cl_platform_id platform, const char *function_name)CL_API_SUFFIX__VERSION_1_2; @@ -652,7 +652,7 @@ #ifdef CL_VERSION_2_0 -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueSVMFree)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueSVMFree)( cl_command_queue /* command_queue */, cl_uint /* num_svm_pointers */, void ** /* svm_pointers */, void(CL_CALLBACK *pfn_free_func)(cl_command_queue /* queue */, @@ -663,28 +663,28 @@ const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_2_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueSVMMemcpy)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueSVMMemcpy)( cl_command_queue /* command_queue */, cl_bool /* blocking_copy */, void * /* dst_ptr */, const void * /* src_ptr */, size_t /* size */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_2_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueSVMMemFill)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueSVMMemFill)( cl_command_queue /* command_queue */, void * /* svm_ptr */, const void * /* pattern */, size_t /* pattern_size */, size_t /* size */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_2_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueSVMMap)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueSVMMap)( cl_command_queue /* command_queue */, cl_bool /* blocking_map */, cl_map_flags /* map_flags */, void * /* svm_ptr */, size_t /* size */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, cl_event * /* event */) CL_API_SUFFIX__VERSION_2_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueSVMUnmap)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueSVMUnmap)( cl_command_queue /* command_queue */, void * /* svm_ptr */, cl_uint /* num_events_in_wait_list */, const cl_event * /* event_wait_list */, @@ -701,119 +701,119 @@ #endif // Deprecated APIs -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clSetCommandQueueProperty)( +typedef cl_int(CL_API_CALL *cl_api_clSetCommandQueueProperty)( cl_command_queue command_queue, cl_command_queue_properties properties, cl_bool enable, cl_command_queue_properties *old_properties) - CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED; + CL_API_SUFFIX__VERSION_1_0_DEPRECATED; -typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateImage2D)( +typedef cl_mem(CL_API_CALL *cl_api_clCreateImage2D)( cl_context context, cl_mem_flags flags, const cl_image_format *image_format, size_t image_width, size_t image_height, size_t image_row_pitch, - void *host_ptr, cl_int *errcode_ret) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; + void *host_ptr, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; -typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateImage3D)( +typedef cl_mem(CL_API_CALL *cl_api_clCreateImage3D)( cl_context context, cl_mem_flags flags, const cl_image_format *image_format, size_t image_width, size_t image_height, size_t image_depth, size_t image_row_pitch, size_t image_slice_pitch, void *host_ptr, - cl_int *errcode_ret) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; + cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clUnloadCompiler)(void) - CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; +typedef cl_int(CL_API_CALL *cl_api_clUnloadCompiler)(void) + CL_API_SUFFIX__VERSION_1_1_DEPRECATED; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueMarker)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueMarker)( cl_command_queue command_queue, - cl_event *event) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; + cl_event *event) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueWaitForEvents)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueWaitForEvents)( cl_command_queue command_queue, cl_uint num_events, - const cl_event *event_list) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; + const cl_event *event_list) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueBarrier)( - cl_command_queue command_queue) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; +typedef cl_int(CL_API_CALL *cl_api_clEnqueueBarrier)( + cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_1_DEPRECATED; -typedef CL_API_ENTRY void *(CL_API_CALL *cl_api_clGetExtensionFunctionAddress)( - const char *function_name)CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; +typedef void *(CL_API_CALL *cl_api_clGetExtensionFunctionAddress)( + const char *function_name)CL_API_SUFFIX__VERSION_1_1_DEPRECATED; // GL and other APIs -typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromGLBuffer)( +typedef cl_mem(CL_API_CALL *cl_api_clCreateFromGLBuffer)( cl_context context, cl_mem_flags flags, cl_GLuint bufobj, int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromGLTexture)( +typedef cl_mem(CL_API_CALL *cl_api_clCreateFromGLTexture)( cl_context context, cl_mem_flags flags, cl_GLenum target, cl_GLint miplevel, cl_GLuint texture, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromGLTexture2D)( +typedef cl_mem(CL_API_CALL *cl_api_clCreateFromGLTexture2D)( cl_context context, cl_mem_flags flags, cl_GLenum target, cl_GLint miplevel, cl_GLuint texture, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromGLTexture3D)( +typedef cl_mem(CL_API_CALL *cl_api_clCreateFromGLTexture3D)( cl_context context, cl_mem_flags flags, cl_GLenum target, cl_GLint miplevel, cl_GLuint texture, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromGLRenderbuffer)( +typedef cl_mem(CL_API_CALL *cl_api_clCreateFromGLRenderbuffer)( cl_context context, cl_mem_flags flags, cl_GLuint renderbuffer, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetGLObjectInfo)( +typedef cl_int(CL_API_CALL *cl_api_clGetGLObjectInfo)( cl_mem memobj, cl_gl_object_type *gl_object_type, cl_GLuint *gl_object_name) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetGLTextureInfo)( +typedef cl_int(CL_API_CALL *cl_api_clGetGLTextureInfo)( cl_mem memobj, cl_gl_texture_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueAcquireGLObjects)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueAcquireGLObjects)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem *mem_objects, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueReleaseGLObjects)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueReleaseGLObjects)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem *mem_objects, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event) CL_API_SUFFIX__VERSION_1_0; /* cl_khr_gl_sharing */ -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetGLContextInfoKHR)( +typedef cl_int(CL_API_CALL *cl_api_clGetGLContextInfoKHR)( const cl_context_properties *properties, cl_gl_context_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret); /* cl_khr_gl_event */ -typedef CL_API_ENTRY cl_event(CL_API_CALL *cl_api_clCreateEventFromGLsyncKHR)( +typedef cl_event(CL_API_CALL *cl_api_clCreateEventFromGLsyncKHR)( cl_context context, cl_GLsync sync, cl_int *errcode_ret); #if defined(_WIN32) /* cl_khr_d3d10_sharing */ -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetDeviceIDsFromD3D10KHR)( +typedef cl_int(CL_API_CALL *cl_api_clGetDeviceIDsFromD3D10KHR)( cl_platform_id platform, cl_d3d10_device_source_khr d3d_device_source, void *d3d_object, cl_d3d10_device_set_khr d3d_device_set, cl_uint num_entries, cl_device_id *devices, cl_uint *num_devices) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromD3D10BufferKHR)( +typedef cl_mem(CL_API_CALL *cl_api_clCreateFromD3D10BufferKHR)( cl_context context, cl_mem_flags flags, ID3D10Buffer *resource, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromD3D10Texture2DKHR)( +typedef cl_mem(CL_API_CALL *cl_api_clCreateFromD3D10Texture2DKHR)( cl_context context, cl_mem_flags flags, ID3D10Texture2D *resource, UINT subresource, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromD3D10Texture3DKHR)( +typedef cl_mem(CL_API_CALL *cl_api_clCreateFromD3D10Texture3DKHR)( cl_context context, cl_mem_flags flags, ID3D10Texture3D *resource, UINT subresource, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY +typedef cl_int(CL_API_CALL *cl_api_clEnqueueAcquireD3D10ObjectsKHR)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem *mem_objects, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY +typedef cl_int(CL_API_CALL *cl_api_clEnqueueReleaseD3D10ObjectsKHR)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem *mem_objects, cl_uint num_events_in_wait_list, @@ -848,32 +848,32 @@ const cl_event *event_wait_list, cl_event *event); /* cl_khr_d3d11_sharing */ -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetDeviceIDsFromD3D11KHR)( +typedef cl_int(CL_API_CALL *cl_api_clGetDeviceIDsFromD3D11KHR)( cl_platform_id platform, cl_d3d11_device_source_khr d3d_device_source, void *d3d_object, cl_d3d11_device_set_khr d3d_device_set, cl_uint num_entries, cl_device_id *devices, cl_uint *num_devices) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromD3D11BufferKHR)( +typedef cl_mem(CL_API_CALL *cl_api_clCreateFromD3D11BufferKHR)( cl_context context, cl_mem_flags flags, ID3D11Buffer *resource, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromD3D11Texture2DKHR)( +typedef cl_mem(CL_API_CALL *cl_api_clCreateFromD3D11Texture2DKHR)( cl_context context, cl_mem_flags flags, ID3D11Texture2D *resource, UINT subresource, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromD3D11Texture3DKHR)( +typedef cl_mem(CL_API_CALL *cl_api_clCreateFromD3D11Texture3DKHR)( cl_context context, cl_mem_flags flags, ID3D11Texture3D *resource, UINT subresource, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY +typedef cl_int(CL_API_CALL *cl_api_clEnqueueAcquireD3D11ObjectsKHR)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem *mem_objects, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY +typedef cl_int(CL_API_CALL *cl_api_clEnqueueReleaseD3D11ObjectsKHR)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem *mem_objects, cl_uint num_events_in_wait_list, @@ -881,26 +881,26 @@ cl_event *event) CL_API_SUFFIX__VERSION_1_2; /* cl_khr_dx9_media_sharing */ -typedef CL_API_ENTRY +typedef cl_int(CL_API_CALL *cl_api_clGetDeviceIDsFromDX9MediaAdapterKHR)( cl_platform_id platform, cl_uint num_media_adapters, cl_dx9_media_adapter_type_khr *media_adapters_type, void *media_adapters, cl_dx9_media_adapter_set_khr media_adapter_set, cl_uint num_entries, cl_device_id *devices, cl_uint *num_devices) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromDX9MediaSurfaceKHR)( +typedef cl_mem(CL_API_CALL *cl_api_clCreateFromDX9MediaSurfaceKHR)( cl_context context, cl_mem_flags flags, cl_dx9_media_adapter_type_khr adapter_type, void *surface_info, cl_uint plane, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY +typedef cl_int(CL_API_CALL *cl_api_clEnqueueAcquireDX9MediaSurfacesKHR)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem *mem_objects, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY +typedef cl_int(CL_API_CALL *cl_api_clEnqueueReleaseDX9MediaSurfacesKHR)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem *mem_objects, cl_uint num_events_in_wait_list, @@ -987,29 +987,29 @@ #ifdef CL_VERSION_1_1 -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clSetEventCallback)( +typedef cl_int(CL_API_CALL *cl_api_clSetEventCallback)( cl_event /* event */, cl_int /* command_exec_callback_type */, void(CL_CALLBACK * /* pfn_notify */)(cl_event, cl_int, void *), void * /* user_data */) CL_API_SUFFIX__VERSION_1_1; -typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateSubBuffer)( +typedef cl_mem(CL_API_CALL *cl_api_clCreateSubBuffer)( cl_mem /* buffer */, cl_mem_flags /* flags */, cl_buffer_create_type /* buffer_create_type */, const void * /* buffer_create_info */, cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_1; -typedef CL_API_ENTRY +typedef cl_int(CL_API_CALL *cl_api_clSetMemObjectDestructorCallback)( cl_mem /* memobj */, void(CL_CALLBACK * /*pfn_notify*/)(cl_mem /* memobj */, void * /*user_data*/), void * /*user_data */) CL_API_SUFFIX__VERSION_1_1; -typedef CL_API_ENTRY cl_event(CL_API_CALL *cl_api_clCreateUserEvent)( +typedef cl_event(CL_API_CALL *cl_api_clCreateUserEvent)( cl_context /* context */, cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_1; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clSetUserEventStatus)( +typedef cl_int(CL_API_CALL *cl_api_clSetUserEventStatus)( cl_event /* event */, cl_int /* execution_status */) CL_API_SUFFIX__VERSION_1_1; @@ -1023,68 +1023,68 @@ #endif -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clCreateSubDevicesEXT)( +typedef cl_int(CL_API_CALL *cl_api_clCreateSubDevicesEXT)( cl_device_id in_device, const cl_device_partition_property_ext *partition_properties, cl_uint num_entries, cl_device_id *out_devices, cl_uint *num_devices); -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clRetainDeviceEXT)( +typedef cl_int(CL_API_CALL *cl_api_clRetainDeviceEXT)( cl_device_id device) CL_API_SUFFIX__VERSION_1_0; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clReleaseDeviceEXT)( +typedef cl_int(CL_API_CALL *cl_api_clReleaseDeviceEXT)( cl_device_id device) CL_API_SUFFIX__VERSION_1_0; /* cl_khr_egl_image */ -typedef CL_API_ENTRY cl_mem(CL_API_CALL *cl_api_clCreateFromEGLImageKHR)( +typedef cl_mem(CL_API_CALL *cl_api_clCreateFromEGLImageKHR)( cl_context context, CLeglDisplayKHR display, CLeglImageKHR image, cl_mem_flags flags, const cl_egl_image_properties_khr *properties, cl_int *errcode_ret); -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueAcquireEGLObjectsKHR)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueAcquireEGLObjectsKHR)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem *mem_objects, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event); -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueReleaseEGLObjectsKHR)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueReleaseEGLObjectsKHR)( cl_command_queue command_queue, cl_uint num_objects, const cl_mem *mem_objects, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event); /* cl_khr_egl_event */ -typedef CL_API_ENTRY cl_event(CL_API_CALL *cl_api_clCreateEventFromEGLSyncKHR)( +typedef cl_event(CL_API_CALL *cl_api_clCreateEventFromEGLSyncKHR)( cl_context context, CLeglSyncKHR sync, CLeglDisplayKHR display, cl_int *errcode_ret); #ifdef CL_VERSION_2_1 -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clSetDefaultDeviceCommandQueue)( +typedef cl_int(CL_API_CALL *cl_api_clSetDefaultDeviceCommandQueue)( cl_context context, cl_device_id device, cl_command_queue command_queue) CL_API_SUFFIX__VERSION_2_1; -typedef CL_API_ENTRY cl_program(CL_API_CALL *cl_api_clCreateProgramWithIL)( +typedef cl_program(CL_API_CALL *cl_api_clCreateProgramWithIL)( cl_context context, const void *il, size_t length, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_2_1; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetKernelSubGroupInfo)( +typedef cl_int(CL_API_CALL *cl_api_clGetKernelSubGroupInfo)( cl_kernel kernel, cl_device_id device, cl_kernel_sub_group_info param_name, size_t input_value_size, const void *input_value, size_t param_value_size, void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_2_1; -typedef CL_API_ENTRY cl_kernel(CL_API_CALL *cl_api_clCloneKernel)( +typedef cl_kernel(CL_API_CALL *cl_api_clCloneKernel)( cl_kernel source_kernel, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_2_1; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clEnqueueSVMMigrateMem)( +typedef cl_int(CL_API_CALL *cl_api_clEnqueueSVMMigrateMem)( cl_command_queue command_queue, cl_uint num_svm_pointers, const void **svm_pointers, const size_t *sizes, cl_mem_migration_flags flags, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event) CL_API_SUFFIX__VERSION_2_1; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetDeviceAndHostTimer)( +typedef cl_int(CL_API_CALL *cl_api_clGetDeviceAndHostTimer)( cl_device_id device, cl_ulong *device_timestamp, cl_ulong *host_timestamp) CL_API_SUFFIX__VERSION_2_1; -typedef CL_API_ENTRY cl_int(CL_API_CALL *cl_api_clGetHostTimer)( +typedef cl_int(CL_API_CALL *cl_api_clGetHostTimer)( cl_device_id device, cl_ulong *host_timestamp) CL_API_SUFFIX__VERSION_2_1; #else @@ -1099,7 +1099,7 @@ #endif -/* Vendor dispatch table struture */ +/* Vendor dispatch table structure */ typedef struct _cl_icd_dispatch { /* OpenCL 1.0 */ diff -Nru darktable-4.4.2/src/external/OpenCL/CL/cl_layer.h darktable-4.6.1/src/external/OpenCL/CL/cl_layer.h --- darktable-4.4.2/src/external/OpenCL/CL/cl_layer.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/CL/cl_layer.h 2023-04-17 08:34:39.000000000 +0000 @@ -0,0 +1,124 @@ +/******************************************************************************* + * Copyright (c) 2008-2023 The Khronos Group Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ + +#ifndef OPENCL_CL_LAYER_H_ +#define OPENCL_CL_LAYER_H_ + +/* +** This header is generated from the Khronos OpenCL XML API Registry. +*/ + +#include <CL/cl_icd.h> + +#include <CL/cl.h> + +/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) +#define CL_NO_EXTENSION_PROTOTYPES +#endif + +/* CL_NO_EXTENSION_PROTOTYPES implies + CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and + CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/*************************************************************** +* cl_loader_layers +***************************************************************/ +#define cl_loader_layers 1 +#define CL_LOADER_LAYERS_EXTENSION_NAME \ + "cl_loader_layers" + +typedef cl_uint cl_layer_info; +typedef cl_uint cl_layer_api_version; + +/* cl_layer_info */ +#define CL_LAYER_API_VERSION 0x4240 +#define CL_LAYER_NAME 0x4241 + +/* Misc API enums */ +#define CL_LAYER_API_VERSION_100 100 + + +typedef cl_int (CL_API_CALL * +clGetLayerInfo_fn)( + cl_layer_info param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) ; + +typedef cl_int (CL_API_CALL * +clInitLayer_fn)( + cl_uint num_entries, + const cl_icd_dispatch* target_dispatch, + cl_uint* num_entries_ret, + const cl_icd_dispatch** layer_dispatch_ret) ; + +/* +** The function pointer typedefs prefixed with "pfn_" are provided for +** compatibility with earlier versions of the headers. New code is +** encouraged to use the function pointer typedefs that are suffixed with +** "_fn" instead, for consistency. +*/ + +typedef cl_int (CL_API_CALL * +pfn_clGetLayerInfo)( + cl_layer_info param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) ; + +typedef cl_int (CL_API_CALL * +pfn_clInitLayer)( + cl_uint num_entries, + const cl_icd_dispatch* target_dispatch, + cl_uint* num_entries_ret, + const cl_icd_dispatch** layer_dispatch_ret) ; + +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetLayerInfo( + cl_layer_info param_name, + size_t param_value_size, + void* param_value, + size_t* param_value_size_ret) ; + +extern CL_API_ENTRY cl_int CL_API_CALL +clInitLayer( + cl_uint num_entries, + const cl_icd_dispatch* target_dispatch, + cl_uint* num_entries_ret, + const cl_icd_dispatch** layer_dispatch_ret) ; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +#ifdef __cplusplus +} +#endif + +#endif /* OPENCL_CL_LAYER_H_ */ diff -Nru darktable-4.4.2/src/external/OpenCL/CL/cl_platform.h darktable-4.6.1/src/external/OpenCL/CL/cl_platform.h --- darktable-4.4.2/src/external/OpenCL/CL/cl_platform.h 2020-12-09 16:53:44.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/CL/cl_platform.h 2023-04-17 08:34:39.000000000 +0000 @@ -24,13 +24,25 @@ #endif #if defined(_WIN32) - #define CL_API_ENTRY - #define CL_API_CALL __stdcall - #define CL_CALLBACK __stdcall + #if !defined(CL_API_ENTRY) + #define CL_API_ENTRY + #endif + #if !defined(CL_API_CALL) + #define CL_API_CALL __stdcall + #endif + #if !defined(CL_CALLBACK) + #define CL_CALLBACK __stdcall + #endif #else - #define CL_API_ENTRY - #define CL_API_CALL - #define CL_CALLBACK + #if !defined(CL_API_ENTRY) + #define CL_API_ENTRY + #endif + #if !defined(CL_API_CALL) + #define CL_API_CALL + #endif + #if !defined(CL_CALLBACK) + #define CL_CALLBACK + #endif #endif /* @@ -41,86 +53,99 @@ * deprecation but is deprecated in versions later than 1.1. */ -#define CL_EXTENSION_WEAK_LINK -#define CL_API_SUFFIX__VERSION_1_0 -#define CL_EXT_SUFFIX__VERSION_1_0 -#define CL_API_SUFFIX__VERSION_1_1 -#define CL_EXT_SUFFIX__VERSION_1_1 -#define CL_API_SUFFIX__VERSION_1_2 -#define CL_EXT_SUFFIX__VERSION_1_2 -#define CL_API_SUFFIX__VERSION_2_0 -#define CL_EXT_SUFFIX__VERSION_2_0 -#define CL_API_SUFFIX__VERSION_2_1 -#define CL_EXT_SUFFIX__VERSION_2_1 -#define CL_API_SUFFIX__VERSION_2_2 -#define CL_EXT_SUFFIX__VERSION_2_2 -#define CL_API_SUFFIX__VERSION_3_0 -#define CL_EXT_SUFFIX__VERSION_3_0 -#define CL_API_SUFFIX__EXPERIMENTAL -#define CL_EXT_SUFFIX__EXPERIMENTAL +#ifndef CL_API_SUFFIX_USER +#define CL_API_SUFFIX_USER +#endif + +#ifndef CL_API_PREFIX_USER +#define CL_API_PREFIX_USER +#endif + +#define CL_API_SUFFIX_COMMON CL_API_SUFFIX_USER +#define CL_API_PREFIX_COMMON CL_API_PREFIX_USER + +#define CL_API_SUFFIX__VERSION_1_0 CL_API_SUFFIX_COMMON +#define CL_API_SUFFIX__VERSION_1_1 CL_API_SUFFIX_COMMON +#define CL_API_SUFFIX__VERSION_1_2 CL_API_SUFFIX_COMMON +#define CL_API_SUFFIX__VERSION_2_0 CL_API_SUFFIX_COMMON +#define CL_API_SUFFIX__VERSION_2_1 CL_API_SUFFIX_COMMON +#define CL_API_SUFFIX__VERSION_2_2 CL_API_SUFFIX_COMMON +#define CL_API_SUFFIX__VERSION_3_0 CL_API_SUFFIX_COMMON +#define CL_API_SUFFIX__EXPERIMENTAL CL_API_SUFFIX_COMMON #ifdef __GNUC__ - #define CL_EXT_SUFFIX_DEPRECATED __attribute__((deprecated)) - #define CL_EXT_PREFIX_DEPRECATED + #define CL_API_SUFFIX_DEPRECATED __attribute__((deprecated)) + #define CL_API_PREFIX_DEPRECATED #elif defined(_WIN32) - #define CL_EXT_SUFFIX_DEPRECATED - #define CL_EXT_PREFIX_DEPRECATED __declspec(deprecated) + #define CL_API_SUFFIX_DEPRECATED + #define CL_API_PREFIX_DEPRECATED __declspec(deprecated) #else - #define CL_EXT_SUFFIX_DEPRECATED - #define CL_EXT_PREFIX_DEPRECATED + #define CL_API_SUFFIX_DEPRECATED + #define CL_API_PREFIX_DEPRECATED #endif #ifdef CL_USE_DEPRECATED_OPENCL_1_0_APIS - #define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED - #define CL_EXT_PREFIX__VERSION_1_0_DEPRECATED + #define CL_API_SUFFIX__VERSION_1_0_DEPRECATED CL_API_SUFFIX_COMMON + #define CL_API_PREFIX__VERSION_1_0_DEPRECATED CL_API_PREFIX_COMMON #else - #define CL_EXT_SUFFIX__VERSION_1_0_DEPRECATED CL_EXT_SUFFIX_DEPRECATED - #define CL_EXT_PREFIX__VERSION_1_0_DEPRECATED CL_EXT_PREFIX_DEPRECATED + #define CL_API_SUFFIX__VERSION_1_0_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED + #define CL_API_PREFIX__VERSION_1_0_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED #endif #ifdef CL_USE_DEPRECATED_OPENCL_1_1_APIS - #define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED - #define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED + #define CL_API_SUFFIX__VERSION_1_1_DEPRECATED CL_API_SUFFIX_COMMON + #define CL_API_PREFIX__VERSION_1_1_DEPRECATED CL_API_PREFIX_COMMON #else - #define CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED CL_EXT_SUFFIX_DEPRECATED - #define CL_EXT_PREFIX__VERSION_1_1_DEPRECATED CL_EXT_PREFIX_DEPRECATED + #define CL_API_SUFFIX__VERSION_1_1_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED + #define CL_API_PREFIX__VERSION_1_1_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED #endif #ifdef CL_USE_DEPRECATED_OPENCL_1_2_APIS - #define CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED - #define CL_EXT_PREFIX__VERSION_1_2_DEPRECATED + #define CL_API_SUFFIX__VERSION_1_2_DEPRECATED CL_API_SUFFIX_COMMON + #define CL_API_PREFIX__VERSION_1_2_DEPRECATED CL_API_PREFIX_COMMON #else - #define CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED CL_EXT_SUFFIX_DEPRECATED - #define CL_EXT_PREFIX__VERSION_1_2_DEPRECATED CL_EXT_PREFIX_DEPRECATED + #define CL_API_SUFFIX__VERSION_1_2_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED + #define CL_API_PREFIX__VERSION_1_2_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED #endif #ifdef CL_USE_DEPRECATED_OPENCL_2_0_APIS - #define CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED - #define CL_EXT_PREFIX__VERSION_2_0_DEPRECATED + #define CL_API_SUFFIX__VERSION_2_0_DEPRECATED CL_API_SUFFIX_COMMON + #define CL_API_PREFIX__VERSION_2_0_DEPRECATED CL_API_PREFIX_COMMON #else - #define CL_EXT_SUFFIX__VERSION_2_0_DEPRECATED CL_EXT_SUFFIX_DEPRECATED - #define CL_EXT_PREFIX__VERSION_2_0_DEPRECATED CL_EXT_PREFIX_DEPRECATED + #define CL_API_SUFFIX__VERSION_2_0_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED + #define CL_API_PREFIX__VERSION_2_0_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED #endif #ifdef CL_USE_DEPRECATED_OPENCL_2_1_APIS - #define CL_EXT_SUFFIX__VERSION_2_1_DEPRECATED - #define CL_EXT_PREFIX__VERSION_2_1_DEPRECATED + #define CL_API_SUFFIX__VERSION_2_1_DEPRECATED CL_API_SUFFIX_COMMON + #define CL_API_PREFIX__VERSION_2_1_DEPRECATED CL_API_PREFIX_COMMON #else - #define CL_EXT_SUFFIX__VERSION_2_1_DEPRECATED CL_EXT_SUFFIX_DEPRECATED - #define CL_EXT_PREFIX__VERSION_2_1_DEPRECATED CL_EXT_PREFIX_DEPRECATED + #define CL_API_SUFFIX__VERSION_2_1_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED + #define CL_API_PREFIX__VERSION_2_1_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED #endif #ifdef CL_USE_DEPRECATED_OPENCL_2_2_APIS - #define CL_EXT_SUFFIX__VERSION_2_2_DEPRECATED - #define CL_EXT_PREFIX__VERSION_2_2_DEPRECATED + #define CL_API_SUFFIX__VERSION_2_2_DEPRECATED CL_API_SUFFIX_COMMON + #define CL_API_PREFIX__VERSION_2_2_DEPRECATED CL_API_PREFIX_COMMON #else - #define CL_EXT_SUFFIX__VERSION_2_2_DEPRECATED CL_EXT_SUFFIX_DEPRECATED - #define CL_EXT_PREFIX__VERSION_2_2_DEPRECATED CL_EXT_PREFIX_DEPRECATED + #define CL_API_SUFFIX__VERSION_2_2_DEPRECATED CL_API_SUFFIX_COMMON CL_API_SUFFIX_DEPRECATED + #define CL_API_PREFIX__VERSION_2_2_DEPRECATED CL_API_PREFIX_COMMON CL_API_PREFIX_DEPRECATED #endif #if (defined (_WIN32) && defined(_MSC_VER)) +#if defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wlanguage-extension-token" +#endif + +/* intptr_t is used in cl.h and provided by stddef.h in Visual C++, but not in clang */ +/* stdint.h was missing before Visual Studio 2010, include it for later versions and for clang */ +#if defined(__clang__) || _MSC_VER >= 1600 + #include <stdint.h> +#endif + /* scalar types */ typedef signed __int8 cl_char; typedef unsigned __int8 cl_uchar; @@ -135,6 +160,10 @@ typedef float cl_float; typedef double cl_double; +#if defined(__clang__) +#pragma clang diagnostic pop +#endif + /* Macro names and corresponding values defined by OpenCL */ #define CL_CHAR_BIT 8 #define CL_SCHAR_MAX 127 @@ -481,25 +510,26 @@ #if !defined(__cplusplus) && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L #define __CL_HAS_ANON_STRUCT__ 1 #define __CL_ANON_STRUCT__ -#elif defined( __GNUC__) && ! defined( __STRICT_ANSI__ ) +#elif defined(_WIN32) && defined(_MSC_VER) && !defined(__STDC__) +#define __CL_HAS_ANON_STRUCT__ 1 +#define __CL_ANON_STRUCT__ +#elif defined(__GNUC__) && ! defined(__STRICT_ANSI__) +#define __CL_HAS_ANON_STRUCT__ 1 +#define __CL_ANON_STRUCT__ __extension__ +#elif defined(__clang__) #define __CL_HAS_ANON_STRUCT__ 1 #define __CL_ANON_STRUCT__ __extension__ -#elif defined( _WIN32) && defined(_MSC_VER) && ! defined(__STDC__) - #if _MSC_VER >= 1500 - /* Microsoft Developer Studio 2008 supports anonymous structs, but - * complains by default. */ - #define __CL_HAS_ANON_STRUCT__ 1 - #define __CL_ANON_STRUCT__ - /* Disable warning C4201: nonstandard extension used : nameless - * struct/union */ - #pragma warning( push ) - #pragma warning( disable : 4201 ) - #endif #else #define __CL_HAS_ANON_STRUCT__ 0 #define __CL_ANON_STRUCT__ #endif +#if defined(_WIN32) && defined(_MSC_VER) && __CL_HAS_ANON_STRUCT__ + /* Disable warning C4201: nonstandard extension used : nameless struct/union */ + #pragma warning( push ) + #pragma warning( disable : 4201 ) +#endif + /* Define alignment keys */ #if defined( __GNUC__ ) || defined(__INTEGRITY) #define CL_ALIGNED(_x) __attribute__ ((aligned(_x))) @@ -1375,10 +1405,8 @@ } #endif -#if defined( _WIN32) && defined(_MSC_VER) && ! defined(__STDC__) - #if _MSC_VER >=1500 +#if defined(_WIN32) && defined(_MSC_VER) && __CL_HAS_ANON_STRUCT__ #pragma warning( pop ) - #endif #endif #endif /* __CL_PLATFORM_H */ diff -Nru darktable-4.4.2/src/external/OpenCL/CL/cl_va_api_media_sharing_intel.h darktable-4.6.1/src/external/OpenCL/CL/cl_va_api_media_sharing_intel.h --- darktable-4.4.2/src/external/OpenCL/CL/cl_va_api_media_sharing_intel.h 2020-12-09 16:53:44.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/CL/cl_va_api_media_sharing_intel.h 2023-04-17 08:34:39.000000000 +0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. + * Copyright (c) 2008-2023 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,49 +13,83 @@ * See the License for the specific language governing permissions and * limitations under the License. ******************************************************************************/ -/*****************************************************************************\ -Copyright (c) 2013-2019 Intel Corporation All Rights Reserved. +#ifndef OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H_ +#define OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H_ -THESE MATERIALS ARE PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THESE -MATERIALS, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +/* +** This header is generated from the Khronos OpenCL XML API Registry. +*/ -File Name: cl_va_api_media_sharing_intel.h - -Abstract: - -Notes: - -\*****************************************************************************/ +#include <va/va.h> +#include <CL/cl.h> -#ifndef __OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H -#define __OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H +/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) +#define CL_NO_EXTENSION_PROTOTYPES +#endif -#include <CL/cl.h> -#include <CL/cl_platform.h> -#include <va/va.h> +/* CL_NO_EXTENSION_PROTOTYPES implies + CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and + CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif +#if defined(CL_NO_EXTENSION_PROTOTYPES) && \ + !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif #ifdef __cplusplus extern "C" { #endif -/****************************************** -* cl_intel_va_api_media_sharing extension * -*******************************************/ +/*************************************************************** +* cl_intel_sharing_format_query_va_api +***************************************************************/ +#define cl_intel_sharing_format_query_va_api 1 +#define CL_INTEL_SHARING_FORMAT_QUERY_VA_API_EXTENSION_NAME \ + "cl_intel_sharing_format_query_va_api" + +/* when cl_intel_va_api_media_sharing is supported */ + +typedef cl_int (CL_API_CALL * +clGetSupportedVA_APIMediaSurfaceFormatsINTEL_fn)( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint plane, + cl_uint num_entries, + VAImageFormat* va_api_formats, + cl_uint* num_surface_formats) ; +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetSupportedVA_APIMediaSurfaceFormatsINTEL( + cl_context context, + cl_mem_flags flags, + cl_mem_object_type image_type, + cl_uint plane, + cl_uint num_entries, + VAImageFormat* va_api_formats, + cl_uint* num_surface_formats) ; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ + +/*************************************************************** +* cl_intel_va_api_media_sharing +***************************************************************/ #define cl_intel_va_api_media_sharing 1 +#define CL_INTEL_VA_API_MEDIA_SHARING_EXTENSION_NAME \ + "cl_intel_va_api_media_sharing" + +typedef cl_uint cl_va_api_device_source_intel; +typedef cl_uint cl_va_api_device_set_intel; -/* error codes */ +/* Error codes */ #define CL_INVALID_VA_API_MEDIA_ADAPTER_INTEL -1098 #define CL_INVALID_VA_API_MEDIA_SURFACE_INTEL -1099 #define CL_VA_API_MEDIA_SURFACE_ALREADY_ACQUIRED_INTEL -1100 @@ -81,80 +115,85 @@ #define CL_COMMAND_ACQUIRE_VA_API_MEDIA_SURFACES_INTEL 0x409A #define CL_COMMAND_RELEASE_VA_API_MEDIA_SURFACES_INTEL 0x409B -typedef cl_uint cl_va_api_device_source_intel; -typedef cl_uint cl_va_api_device_set_intel; -extern CL_API_ENTRY cl_int CL_API_CALL -clGetDeviceIDsFromVA_APIMediaAdapterINTEL( - cl_platform_id platform, +typedef cl_int (CL_API_CALL * +clGetDeviceIDsFromVA_APIMediaAdapterINTEL_fn)( + cl_platform_id platform, cl_va_api_device_source_intel media_adapter_type, - void* media_adapter, - cl_va_api_device_set_intel media_adapter_set, - cl_uint num_entries, - cl_device_id* devices, - cl_uint* num_devices) CL_EXT_SUFFIX__VERSION_1_2; + void* media_adapter, + cl_va_api_device_set_intel media_adapter_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_mem (CL_API_CALL * +clCreateFromVA_APIMediaSurfaceINTEL_fn)( + cl_context context, + cl_mem_flags flags, + VASurfaceID* surface, + cl_uint plane, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clEnqueueAcquireVA_APIMediaSurfacesINTEL_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +typedef cl_int (CL_API_CALL * +clEnqueueReleaseVA_APIMediaSurfacesINTEL_fn)( + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; -typedef CL_API_ENTRY cl_int (CL_API_CALL * clGetDeviceIDsFromVA_APIMediaAdapterINTEL_fn)( - cl_platform_id platform, +#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) + +extern CL_API_ENTRY cl_int CL_API_CALL +clGetDeviceIDsFromVA_APIMediaAdapterINTEL( + cl_platform_id platform, cl_va_api_device_source_intel media_adapter_type, - void* media_adapter, - cl_va_api_device_set_intel media_adapter_set, - cl_uint num_entries, - cl_device_id* devices, - cl_uint* num_devices) CL_EXT_SUFFIX__VERSION_1_2; + void* media_adapter, + cl_va_api_device_set_intel media_adapter_set, + cl_uint num_entries, + cl_device_id* devices, + cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2; extern CL_API_ENTRY cl_mem CL_API_CALL clCreateFromVA_APIMediaSurfaceINTEL( - cl_context context, - cl_mem_flags flags, - VASurfaceID* surface, - cl_uint plane, - cl_int* errcode_ret) CL_EXT_SUFFIX__VERSION_1_2; - -typedef CL_API_ENTRY cl_mem (CL_API_CALL * clCreateFromVA_APIMediaSurfaceINTEL_fn)( - cl_context context, - cl_mem_flags flags, - VASurfaceID* surface, - cl_uint plane, - cl_int* errcode_ret) CL_EXT_SUFFIX__VERSION_1_2; + cl_context context, + cl_mem_flags flags, + VASurfaceID* surface, + cl_uint plane, + cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2; extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueAcquireVA_APIMediaSurfacesINTEL( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem* mem_objects, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_EXT_SUFFIX__VERSION_1_2; - -typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireVA_APIMediaSurfacesINTEL_fn)( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem* mem_objects, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_EXT_SUFFIX__VERSION_1_2; + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; extern CL_API_ENTRY cl_int CL_API_CALL clEnqueueReleaseVA_APIMediaSurfacesINTEL( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem* mem_objects, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_EXT_SUFFIX__VERSION_1_2; - -typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseVA_APIMediaSurfacesINTEL_fn)( - cl_command_queue command_queue, - cl_uint num_objects, - const cl_mem* mem_objects, - cl_uint num_events_in_wait_list, - const cl_event* event_wait_list, - cl_event* event) CL_EXT_SUFFIX__VERSION_1_2; + cl_command_queue command_queue, + cl_uint num_objects, + const cl_mem* mem_objects, + cl_uint num_events_in_wait_list, + const cl_event* event_wait_list, + cl_event* event) CL_API_SUFFIX__VERSION_1_2; + +#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */ #ifdef __cplusplus } #endif -#endif /* __OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H */ - +#endif /* OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H_ */ diff -Nru darktable-4.4.2/src/external/OpenCL/CL/opencl.h darktable-4.6.1/src/external/OpenCL/CL/opencl.h --- darktable-4.4.2/src/external/OpenCL/CL/opencl.h 2020-12-09 16:53:44.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/CL/opencl.h 2023-04-17 08:34:39.000000000 +0000 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2020 The Khronos Group Inc. + * Copyright (c) 2008-2021 The Khronos Group Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,7 +23,6 @@ #include <CL/cl.h> #include <CL/cl_gl.h> -#include <CL/cl_gl_ext.h> #include <CL/cl_ext.h> #ifdef __cplusplus diff -Nru darktable-4.4.2/src/external/OpenCL/CMakeLists.txt darktable-4.6.1/src/external/OpenCL/CMakeLists.txt --- darktable-4.4.2/src/external/OpenCL/CMakeLists.txt 2020-12-09 16:53:44.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/CMakeLists.txt 2023-04-17 08:34:39.000000000 +0000 @@ -1,4 +1,10 @@ cmake_minimum_required(VERSION 3.0) +cmake_policy(VERSION 3.0...3.22) + +# Include guard for including this project multiple times +if(TARGET Headers) + return() +endif() project(OpenCLHeaders VERSION 2.2 @@ -6,26 +12,50 @@ # https://stackoverflow.com/questions/43379311/why-does-project-affect-cmakes-opinion-on-cmake-sizeof-void-p ) +option(OPENCL_HEADERS_BUILD_TESTING "Enable support for OpenCL C headers testing." OFF) +option(OPENCL_HEADERS_BUILD_CXX_TESTS "Enable support for OpenCL C headers testing in C++ mode." ON) + +set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake") +include(JoinPaths) + +include(GNUInstallDirs) + add_library(Headers INTERFACE) -target_include_directories(Headers - SYSTEM - BEFORE - INTERFACE - $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> - $<INSTALL_INTERFACE:include> -) +add_library(OpenCL::Headers ALIAS Headers) + +if(CMAKE_SYSTEM_NAME MATCHES Darwin) + execute_process( + COMMAND ln -snf ${CMAKE_CURRENT_SOURCE_DIR}/CL ${CMAKE_CURRENT_BINARY_DIR}/CL + COMMAND ln -snf ${CMAKE_CURRENT_SOURCE_DIR}/CL ${CMAKE_CURRENT_BINARY_DIR}/OpenCL + ) + target_include_directories(Headers + INTERFACE + $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> + ) + install(CODE " + file(MAKE_DIRECTORY ${CMAKE_INSTALL_FULL_INCLUDEDIR}/CL) + execute_process( + COMMAND ln -snf CL ${CMAKE_INSTALL_FULL_INCLUDEDIR}/OpenCL + )" + ) +else() + target_include_directories(Headers + INTERFACE + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> + ) +endif() install( TARGETS Headers EXPORT OpenCLHeadersTargets ) - -include(GNUInstallDirs) - install( DIRECTORY CL DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) + export( EXPORT OpenCLHeadersTargets FILE ${PROJECT_BINARY_DIR}/OpenCLHeaders/OpenCLHeadersTargets.cmake @@ -60,7 +90,58 @@ DESTINATION ${config_package_location} ) -if(BUILD_TESTING) +if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME OR OPENCL_HEADERS_BUILD_TESTING) include(CTest) +endif() +if((CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME OR OPENCL_HEADERS_BUILD_TESTING) AND BUILD_TESTING) add_subdirectory(tests) endif() + +if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) + find_package(Python3 COMPONENTS Interpreter) + set(OPENCL_HEADERS_XML_PATH CACHE FILEPATH "Path to cl.xml for OpenCL Header genereration") + set(OPENCL_HEADERS_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/generated) + add_custom_target(headers_generate + COMMAND ${CMAKE_COMMAND} -E make_directory ${OPENCL_HEADERS_OUTPUT_DIRECTORY} + COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_CURRENT_SOURCE_DIR}/scripts + ${Python3_EXECUTABLE} gen_headers.py + -registry ${OPENCL_HEADERS_XML_PATH} + -o ${OPENCL_HEADERS_OUTPUT_DIRECTORY} + ) + add_custom_target(headers_copy + COMMAND ${CMAKE_COMMAND} -E copy + ${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_d3d10.h + ${CMAKE_CURRENT_SOURCE_DIR}/CL + COMMAND ${CMAKE_COMMAND} -E copy + ${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_d3d11.h + ${CMAKE_CURRENT_SOURCE_DIR}/CL + COMMAND ${CMAKE_COMMAND} -E copy + ${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_dx9_media_sharing.h + ${CMAKE_CURRENT_SOURCE_DIR}/CL + COMMAND ${CMAKE_COMMAND} -E copy + ${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_egl.h + ${CMAKE_CURRENT_SOURCE_DIR}/CL + COMMAND ${CMAKE_COMMAND} -E copy + ${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_ext.h + ${CMAKE_CURRENT_SOURCE_DIR}/CL + COMMAND ${CMAKE_COMMAND} -E copy + ${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_gl.h + ${CMAKE_CURRENT_SOURCE_DIR}/CL + COMMAND ${CMAKE_COMMAND} -E copy + ${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_layer.h + ${CMAKE_CURRENT_SOURCE_DIR}/CL + COMMAND ${CMAKE_COMMAND} -E copy + ${OPENCL_HEADERS_OUTPUT_DIRECTORY}/cl_va_api_media_sharing_intel.h + ${CMAKE_CURRENT_SOURCE_DIR}/CL + ) + set_target_properties(headers_generate PROPERTIES FOLDER "Generation") + set_target_properties(headers_copy PROPERTIES FOLDER "Generation") +endif() + +join_paths(OPENCL_INCLUDEDIR_PC "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}") + +configure_file(OpenCL-Headers.pc.in OpenCL-Headers.pc @ONLY) +set(pkg_config_location ${CMAKE_INSTALL_DATADIR}/pkgconfig) +install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/OpenCL-Headers.pc + DESTINATION ${pkg_config_location}) diff -Nru darktable-4.4.2/src/external/OpenCL/OpenCL-Headers.pc.in darktable-4.6.1/src/external/OpenCL/OpenCL-Headers.pc.in --- darktable-4.4.2/src/external/OpenCL/OpenCL-Headers.pc.in 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/OpenCL-Headers.pc.in 2023-04-17 08:34:39.000000000 +0000 @@ -0,0 +1,7 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +includedir=@OPENCL_INCLUDEDIR_PC@ + +Name: OpenCL-Headers +Description: Khronos OpenCL Headers +Version: 3.0 +Cflags: -I${includedir} diff -Nru darktable-4.4.2/src/external/OpenCL/README.md darktable-4.6.1/src/external/OpenCL/README.md --- darktable-4.4.2/src/external/OpenCL/README.md 2020-12-09 16:53:44.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/README.md 2023-04-17 08:34:39.000000000 +0000 @@ -9,7 +9,16 @@ Issues, proposed fixes for issues, and other suggested changes should be created using Github. -## CMake Package +## Build instructions + +> While the OpenCL Headers can be built and installed in isolation, it is part of the [OpenCL SDK](https://github.com/KhronosGroup/OpenCL-SDK). If looking for streamlined build experience and a complete development package, refer to the SDK build instructions instead of the following guide. + +### Dependencies + +- The OpenCL Headers CMake package support uses CMake for its build system. +If CMake is not provided by your build system or OS package manager, please consult the [CMake website](https://cmake.org). + +### Example Build While the headers may just be copied as-is, this repository also contains a CMake script with an install rule to allow for packaging the headers. @@ -18,12 +27,16 @@ cmake --build build --target install ``` -To consume the package: +### Example Use + +Example CMake invocation ```bash -cmake path/to/opencl/app -DOpenCLHeaders_ROOT=/chosen/install/prefix +cmake -D CMAKE_PREFIX_PATH=/chosen/install/prefix /path/to/opencl/app ``` +and sample `CMakeLists.txt` + ```cmake cmake_minimum_required(VERSION 3.0) cmake_policy(VERSION 3.0...3.18.4) @@ -36,14 +49,14 @@ ## Branch Structure The OpenCL API headers in this repository are Unified headers and are designed -to work with all released OpenCL versions. This differs from previous OpenCL +to work with all released OpenCL versions. This differs from previous OpenCL API headers, where version-specific API headers either existed in separate branches, or in separate folders in a branch. ## Compiling for a Specific OpenCL Version By default, the OpenCL API headers in this repository are for the latest -OpenCL version (currently OpenCL 2.2). To use these API headers to target +OpenCL version (currently OpenCL 3.0). To use these API headers to target a different OpenCL version, an application may `#define` the preprocessor value `CL_TARGET_OPENCL_VERSION` before including the OpenCL API headers. The `CL_TARGET_OPENCL_VERSION` is a three digit decimal value representing @@ -57,6 +70,34 @@ #include <CL/opencl.h> ``` +## Controlling Function Prototypes + +By default, the OpenCL API headers in this repository declare function +prototypes for every known core OpenCL API and OpenCL extension API. If this is +not desired, the declared function prototypes can be controlled by the following +preprocessor defines: + +* `CL_NO_PROTOTYPES`: No function prototypes will be declared. This control + applies to core OpenCL APIs and OpenCL extension APIs. +* `CL_NO_CORE_PROTOTYPES`: No function prototypes will be declared for core + OpenCL APIs. +* `CL_NO_EXTENSION_PROTOTYPES`: No function prototypes will be declared for + OpenCL extension APIs. This control applies to all OpenCL extension APIs. +* `CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES`: No function prototypes will be + declared for OpenCL extension APIs that are in the ICD dispatch table for + historical reasons. +* `CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES`: No function prototypes will be + declared for OpenCL extension APIs that are not in the ICD dispatch table. + +For example, to declare function prototypes for core OpenCL 3.0 APIs only, you +may include the OpenCL API headers as follows: + +```c +#define CL_TARGET_OPENCL_VERSION 300 +#define CL_NO_EXTENSION_PROTOTYPES +#include <CL/opencl.h> +``` + ## Directory Structure ``` diff -Nru darktable-4.4.2/src/external/OpenCL/cmake/JoinPaths.cmake darktable-4.6.1/src/external/OpenCL/cmake/JoinPaths.cmake --- darktable-4.4.2/src/external/OpenCL/cmake/JoinPaths.cmake 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/cmake/JoinPaths.cmake 2023-04-17 08:34:39.000000000 +0000 @@ -0,0 +1,26 @@ +# This module provides function for joining paths +# known from from most languages +# +# Original license: +# SPDX-License-Identifier: (MIT OR CC0-1.0) +# Explicit permission given to distribute this module under +# the terms of the project as described in /LICENSE.rst. +# Copyright 2020 Jan Tojnar +# https://github.com/jtojnar/cmake-snips +# +# Modelled after Python’s os.path.join +# https://docs.python.org/3.7/library/os.path.html#os.path.join +# Windows not supported +function(join_paths joined_path first_path_segment) + set(temp_path "${first_path_segment}") + foreach(current_segment IN LISTS ARGN) + if(NOT ("${current_segment}" STREQUAL "")) + if(IS_ABSOLUTE "${current_segment}") + set(temp_path "${current_segment}") + else() + set(temp_path "${temp_path}/${current_segment}") + endif() + endif() + endforeach() + set(${joined_path} "${temp_path}" PARENT_SCOPE) +endfunction() diff -Nru darktable-4.4.2/src/external/OpenCL/scripts/README.md darktable-4.6.1/src/external/OpenCL/scripts/README.md --- darktable-4.4.2/src/external/OpenCL/scripts/README.md 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/scripts/README.md 2023-04-17 08:34:39.000000000 +0000 @@ -0,0 +1,38 @@ +# OpenCL Header Code Generation + +## Introduction + +In order to ease maintenance and enable faster development in the OpenCL headers, the OpenCL headers for extensions are generated from the OpenCL XML machine readable grammar. +Currently, header generation is only enabled for the OpenCL headers for extensions, and the OpenCL headers for core APIs are still authored manually. + +## Dependencies + +The OpenCL headers are generated using Python [Mako Templates](https://www.makotemplates.org/). + +In most cases, after installing Python for your platform, Mako may be installed using: + +```sh +$ pip install Mako +``` + +## Making Changes + +Most changes only require modifications to the Mako templates. +Small changes modifying syntax or layout are simple and straightforward. +Occasionally, more complicated changes will be required, say when a new API is added that is unlike any previous API or when a new extension header file is needed, but this should be rare. + +The Python script should only need to be modified if additional information needs to be propagated from the XML file into the Mako template itself. + +## Generating Headers + +The script to generate headers requires the `cl.xml` machine readable grammar. +The latest version of `cl.xml` may be found in the Khronos OpenCL-Docs repo [here](https://github.com/KhronosGroup/OpenCL-Docs/blob/main/xml/cl.xml). + +The easiest way to generate new headers is by using the `headers_generate` target. +For example, from a directory used to build the headers, simply execute: + +```sh +$ cmake --build . --target headers_generate +``` + +The `cl.xml` file used to generate headers with the header generation target may be provided by setting the CMake variable `OPENCL_HEADERS_XML_PATH` to the full path to `cl.xml`. diff -Nru darktable-4.4.2/src/external/OpenCL/scripts/cl_ext.h.mako darktable-4.6.1/src/external/OpenCL/scripts/cl_ext.h.mako --- darktable-4.4.2/src/external/OpenCL/scripts/cl_ext.h.mako 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/scripts/cl_ext.h.mako 2023-04-17 08:34:39.000000000 +0000 @@ -0,0 +1,425 @@ +<% +# Extensions to skip by default because they are in dedicated headers: +skipExtensions = { + 'cl_khr_d3d10_sharing', + 'cl_khr_d3d11_sharing', + 'cl_khr_dx9_media_sharing', + 'cl_khr_egl_event', + 'cl_khr_egl_image', + 'cl_khr_gl_depth_images', + 'cl_khr_gl_event', + 'cl_khr_gl_msaa_sharing', + 'cl_khr_gl_sharing', + 'cl_loader_layers', + 'cl_intel_dx9_media_sharing', + 'cl_intel_va_api_media_sharing', + 'cl_intel_sharing_format_query_d3d10', + 'cl_intel_sharing_format_query_d3d11', + 'cl_intel_sharing_format_query_dx9', + 'cl_intel_sharing_format_query_gl', + 'cl_intel_sharing_format_query_va_api', + } + +# Extensions to include in this header: +def shouldGenerate(extension): + if extension in genExtensions: + return True + elif not genExtensions and not extension in skipExtensions: + return True + return False + +# XML blocks to include in the headers: +def shouldEmit(block): + for type in block.findall('type'): + if type.get('name') in typedefs: + return True + elif type.get('name') in macros: + return True + elif type.get('name') in structs: + return True + for enum in block.findall('enum'): + #if enum.get('name') in enums: + return True + for func in block.findall('command'): + return True + return False + +# Initially, keep the same extension order as the original headers: +orderedExtensions = [ + # cl_ext.h: + 'cl_khr_command_buffer', + 'cl_khr_command_buffer_multi_device', + 'cl_khr_command_buffer_mutable_dispatch', + 'cl_khr_fp64', + 'cl_khr_fp16', + 'cl_APPLE_SetMemObjectDestructor', + 'cl_APPLE_ContextLoggingFunctions', + 'cl_khr_icd', + 'cl_khr_il_program', + 'cl_khr_image2D_from_buffer', # incorrect name + 'cl_khr_image2d_from_buffer', + 'cl_khr_initialize_memory', + 'cl_khr_terminate_context', + 'cl_khr_spir', + 'cl_khr_create_command_queue', + 'cl_nv_device_attribute_query', + 'cl_amd_device_attribute_query', + 'cl_arm_printf', + 'cl_ext_device_fission', + 'cl_ext_migrate_memobject', + 'cl_ext_cxx_for_opencl', + 'cl_qcom_ext_host_ptr', + 'cl_qcom_ext_host_ptr_iocoherent', + 'cl_qcom_ion_host_ptr', + 'cl_qcom_android_native_buffer_host_ptr', + 'cl_img_yuv_image', + 'cl_img_cached_allocations', + 'cl_img_use_gralloc_ptr', + 'cl_img_generate_mipmap', + 'cl_img_mem_properties', + 'cl_khr_subgroups', + 'cl_khr_mipmap_image', + 'cl_khr_priority_hints', + 'cl_khr_throttle_hints', + 'cl_khr_subgroup_named_barrier', + 'cl_khr_extended_versioning', + 'cl_khr_device_uuid', + 'cl_khr_pci_bus_info', + 'cl_khr_suggested_local_work_size', + 'cl_khr_integer_dot_product', + 'cl_khr_external_memory', + 'cl_khr_external_memory_dma_buf', + 'cl_khr_external_memory_dx', + 'cl_khr_external_memory_opaque_fd', + 'cl_khr_external_memory_win32', + 'cl_khr_external_semaphore', + 'cl_khr_external_semaphore_dx_fence', + 'cl_khr_external_semaphore_opaque_fd', + 'cl_khr_external_semaphore_sync_fd', + 'cl_khr_external_semaphore_win32', + 'cl_khr_semaphore', + 'cl_arm_import_memory', + 'cl_arm_shared_virtual_memory', + 'cl_arm_get_core_id', + 'cl_arm_job_slot_selection', + 'cl_arm_scheduling_controls', + 'cl_arm_controlled_kernel_termination', + 'cl_arm_protected_memory_allocation', + 'cl_intel_exec_by_local_thread', + 'cl_intel_device_attribute_query', + 'cl_intel_device_partition_by_names', + 'cl_intel_accelerator', + 'cl_intel_motion_estimation', + 'cl_intel_advanced_motion_estimation', + 'cl_intel_simultaneous_sharing', + 'cl_intel_egl_image_yuv', + 'cl_intel_packed_yuv', + 'cl_intel_required_subgroup_size', + 'cl_intel_driver_diagnostics', + 'cl_intel_planar_yuv', + 'cl_intel_device_side_avc_motion_estimation', + 'cl_intel_unified_shared_memory', + 'cl_intel_mem_alloc_buffer_location', + 'cl_intel_create_buffer_with_properties', + 'cl_intel_program_scope_host_pipe', + 'cl_intel_mem_channel_property', + 'cl_intel_mem_force_host_memory', + 'cl_intel_command_queue_families', + 'cl_intel_queue_no_sync_operations', + 'cl_intel_sharing_format_query', + 'cl_ext_image_requirements_info', + 'cl_ext_image_from_buffer', + 'cl_loader_info', + 'cl_khr_depth_images', + 'cl_ext_float_atomics', + 'cl_intel_create_mem_object_properties', + 'cl_pocl_content_size', + # cl_d3d10.h + 'cl_khr_d3d10_sharing', + 'cl_intel_sharing_format_query_d3d10', + # cl_d3d11.h + 'cl_khr_d3d11_sharing', + 'cl_intel_sharing_format_query_d3d11', + # cl_dx9_media_sharing.h + 'cl_khr_dx9_media_sharing', + 'cl_intel_dx9_media_sharing', + 'cl_intel_sharing_format_query_dx9', + # cl_egl.h + 'cl_khr_egl_image', + 'cl_khr_egl_event', + # cl_gl.h + 'cl_khr_gl_sharing', + 'cl_khr_gl_event', + 'cl_khr_gl_depth_images', + 'cl_khr_gl_msaa_sharing', + 'cl_intel_sharing_format_query_gl', + # cl_layer.h + 'cl_loader_layers', + # cl_va_api_media_sharing_intel.h + 'cl_intel_sharing_format_query_va_api', + 'cl_intel_va_api_media_sharing', + ] + +def getExtensionSortKey(item): + name = item.get('name') + return orderedExtensions.index(name) + +# Order the extensions should be emitted in the headers. +# KHR -> EXT -> Vendor Extensions +def getExtensionSortKey_ideal(item): + name = item.get('name') + if name.startswith('cl_khr'): + return 0, name + if name.startswith('cl_ext'): + return 1, name + return 99, name + +# Order enums should be emitted in the headers. +# Enums Without Bits -> Ordered Bit Enums +def getEnumSortKey(item): + name = item.get('name') + if name in enums: + if enums[name].Value: + return -1 + if enums[name].Bitpos: + return int(enums[name].Bitpos) + return 99 + +# Gets C function parameter strings for the specified API params: +def getCParameterStrings(params): + strings = [] + if len(params) == 0: + strings.append("void") + else: + for param in params: + paramstr = param.Type + ' ' + param.Name + param.TypeEnd + strings.append(paramstr) + return strings + +# Gets a bit string for the specified bit position: +def getBitPosString(bitpos): + ret = '(' + ret += '(cl_bitfield)' if int(bitpos) >= 31 else '' + ret += '1 << ' + ret += bitpos + ret += ')' + return ret + +# Extensions that are included in the ICD dispatch table for historical reasons. +# This should not be required for new extensions! +loaderExtensions = { + 'cl_ext_device_fission', + 'cl_khr_d3d10_sharing', + 'cl_khr_d3d11_sharing', + 'cl_khr_dx9_media_sharing', + 'cl_khr_egl_event', + 'cl_khr_egl_image', + 'cl_khr_gl_event', + 'cl_khr_gl_sharing', + 'cl_khr_subgroups' + } + +# Gets the preprocessor guard for the given extension: +def getPrototypeIfGuard(name): + if name in loaderExtensions: + guard = '!defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)' + else: + guard = '!defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)' + return guard + +# Names that have been generated already, since some may be shared by multiple +# extensions: +generatedNames = set() + +def isDuplicateName(name): + if name in generatedNames: + return True + generatedNames.add(name) + return False + +%>/******************************************************************************* + * Copyright (c) 2008-2023 The Khronos Group Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************/ + +#ifndef ${guard} +#define ${guard} + +/* +** This header is generated from the Khronos OpenCL XML API Registry. +*/ + +%if includes: +${includes} + +%endif +#include <CL/cl.h> + +/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES) +#define CL_NO_EXTENSION_PROTOTYPES +#endif + +/* CL_NO_EXTENSION_PROTOTYPES implies + CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and + CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */ +#if defined(CL_NO_EXTENSION_PROTOTYPES) && ${"\\"} + !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif +#if defined(CL_NO_EXTENSION_PROTOTYPES) && ${"\\"} + !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) +#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +%for extension in sorted(spec.findall('extensions/extension'), key=getExtensionSortKey): +% if shouldGenerate(extension.get('name')): +<% + name = extension.get('name') +%>/*************************************************************** +* ${name} +***************************************************************/ +%if extension.get('condition'): +#if ${extension.get('condition')} + +%endif +#define ${name} 1 +#define ${name.upper()}_EXTENSION_NAME ${"\\"} + "${name}" + +%for block in extension.findall('require'): +% if shouldEmit(block): +% if block.get('condition'): +#if ${block.get('condition')} +% endif +% if block.get('comment'): +/* ${block.get('comment')} */ +% endif +% for type in block.findall('type'): +% if isDuplicateName(type.get('name')): +/* type ${type.get('name')} */ +% else: +% if type.get('name') in typedefs: +${typedefs[type.get('name')].Typedef.ljust(27)} ${type.get('name')}; +% elif type.get('name') in macros: +#define ${type.get('name')}${macros[type.get('name')].Macro} +% elif type.get('name') in structs: +<% + struct = structs[type.get('name')] +%>typedef struct _${struct.Name} { +% for i, member in enumerate(struct.Members): + ${member.Type} ${member.Name}${member.TypeEnd}; +% endfor +} ${struct.Name}; +% else: +// type ${type.get('name')} not found! +% endif +% endif +% endfor +% for enum in sorted(block.findall('enum'), key=getEnumSortKey): +% if isDuplicateName(enum.get('name')): +/* enum ${enum.get('name')} */ +% else: +% if enum.get('name') in enums: +% if enums[enum.get('name')].Value: +#define ${enum.get('name').ljust(51)} ${enums[enum.get('name')].Value} +% elif enums[enum.get('name')].Bitpos: +#define ${enum.get('name').ljust(51)} ${getBitPosString(enums[enum.get('name')].Bitpos)} +% else: +// enum ${enum.get('name')} is unassigned! +% endif +% else: +// enum ${enum.get('name')} not found! +% endif +% endif +% endfor +% if block.findall('command'): +% for func in block.findall('command'): +<% + api = apisigs[func.get('name')] +%> +typedef ${api.RetType} (CL_API_CALL * +${api.Name}_fn)( +% for i, paramStr in enumerate(getCParameterStrings(api.Params)): +% if i < len(api.Params)-1: + ${paramStr}, +% else: + ${paramStr}) ${api.Suffix}; +% endif +% endfor +% endfor +% if generate_pfn_typedefs: + +/* +** The function pointer typedefs prefixed with "pfn_" are provided for +** compatibility with earlier versions of the headers. New code is +** encouraged to use the function pointer typedefs that are suffixed with +** "_fn" instead, for consistency. +*/ +% for func in block.findall('command'): +<% + api = apisigs[func.get('name')] +%> +typedef ${api.RetType} (CL_API_CALL * +pfn_${api.Name})( +% for i, paramStr in enumerate(getCParameterStrings(api.Params)): +% if i < len(api.Params)-1: + ${paramStr}, +% else: + ${paramStr}) ${api.Suffix}; +% endif +% endfor +% endfor +% endif + +#if ${getPrototypeIfGuard(name)} +% for func in block.findall('command'): +<% + api = apisigs[func.get('name')] +%> +extern CL_API_ENTRY ${api.RetType} CL_API_CALL +${api.Name}( +% for i, paramStr in enumerate(getCParameterStrings(api.Params)): +% if i < len(api.Params)-1: + ${paramStr}, +% else: + ${paramStr}) ${api.Suffix}; +% endif +% endfor +% endfor + +#endif /* ${getPrototypeIfGuard(name)} */ +% endif +% if block.get('condition'): + +#endif /* ${block.get('condition')} */ +% endif + +% endif +%endfor +%if extension.get('condition'): +#endif /* ${extension.get('condition')} */ + +%endif +% endif +%endfor +#ifdef __cplusplus +} +#endif + +#endif /* ${guard} */ diff -Nru darktable-4.4.2/src/external/OpenCL/scripts/gen/__init__.py darktable-4.6.1/src/external/OpenCL/scripts/gen/__init__.py --- darktable-4.4.2/src/external/OpenCL/scripts/gen/__init__.py 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/scripts/gen/__init__.py 2023-04-17 08:34:39.000000000 +0000 @@ -0,0 +1,210 @@ +# Copyright (c) 2021 The Khronos Group Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from collections import OrderedDict +from collections import namedtuple + +import argparse +import sys +import urllib +import xml.etree.ElementTree as etree +import urllib.request + +# parse_xml - Helper function to parse the XML file from a URL or local file. +def parse_xml(path): + file = urllib.request.urlopen(path) if path.startswith("http") else open(path, 'r') + with file: + tree = etree.parse(file) + return tree + +# noneStr - returns string argument, or "" if argument is None. +def noneStr(s): + if s: + return s + return "" + +def parse_args(): + parser = argparse.ArgumentParser() + + # To pull the latest registry file from GitHub, pass: + # -registry "https://raw.githubusercontent.com/KhronosGroup/OpenCL-Registry/master/xml/cl.xml" + + parser.add_argument('-registry', action='store', + default='cl.xml', + help='Use specified registry file instead of cl.xml') + parser.add_argument('-o', action='store', dest='directory', + default='.', + help='Create target and related files in specified directory') + + args = parser.parse_args() + return args + +def load_spec(args): + specpath = args.registry + + print('Parsing XML file from: ' + specpath) + spec = parse_xml(specpath) + return spec + +def get_apitypedefs(spec): + typedefs = OrderedDict() + Typedef = namedtuple('Typedef', 'Typedef Name') + print('Generating API typedef dictionary...') + for type in spec.findall('types/type'): + if type.get('category') == 'define': + if noneStr(type.text).startswith("typedef"): + typedef = noneStr(type.text) + name = "" + for elem in type: + if elem.tag == 'name': + name = noneStr(elem.text) + else: + typedef = typedef + noneStr(elem.text) + noneStr(elem.tail) + typedef = typedef.strip() + name = name.strip() + typedefs[name] = Typedef(typedef, name) + return typedefs + +def get_apimacros(spec): + macros = OrderedDict() + Macro = namedtuple('Macro', 'Define Name Macro') + print('Generating API macro dictionary...') + for type in spec.findall('types/type'): + if type.get('category') == 'define': + if noneStr(type.text).startswith("#define"): + define = noneStr(type.text) + name = "" + macro = "" + for elem in type: + if elem.tag == 'name': + name = noneStr(elem.text) + macro = macro + noneStr(elem.tail) + define = define.strip() + name = name.strip() + macro = macro.rstrip() # keep spaces on the left! + macros[name] = Macro(define, name, macro) + return macros + +def get_apistructs(spec): + structs = OrderedDict() + Struct = namedtuple('Struct', 'Name Members') + StructMember = namedtuple('StructMember', 'Type TypeEnd Name') + print('Generating API struct dictionary...') + for type in spec.findall('types/type'): + if type.get('category') == 'struct': + name = type.get('name') + mlist = [] + for member in type.findall('member'): + mtype = noneStr(member.text) + mtypeend = "" + mname = "" + for elem in member: + if elem.tag == 'name': + mname = noneStr(elem.text) + mtypeend = noneStr(elem.tail) + elif elem.tag == 'enum': + # Assumes any additional enums are for array limits, e.g.: + # <member><type>char</type><name>name</name>[<enum>CL_NAME_VERSION_MAX_NAME_SIZE</enum>]</member> + mtypeend = mtypeend + noneStr(elem.text) + noneStr(elem.tail) + else: + mtype = mtype + noneStr(elem.text) + noneStr(elem.tail) + mtype = mtype.strip() + mtypeend = mtypeend.strip() + mname = mname.strip() + mlist.append(StructMember(mtype, mtypeend, mname)) + structs[name] = Struct(name, mlist) + return structs + +def get_apienums(spec): + enums = OrderedDict() + Enum = namedtuple('Enum', 'Value Bitpos Name') + print('Generating API enum dictionary...') + for enum in spec.findall('enums/enum'): + value = enum.get('value') + bitpos = enum.get('bitpos') + name = enum.get('name') + enums[name] = Enum(value, bitpos, name) + return enums + +def get_apisigs(spec): + apisigs = OrderedDict() + ApiSignature = namedtuple('ApiSignature', 'Name RetType Params Suffix') + ApiParam = namedtuple('ApiParam', 'Type TypeEnd Name') + print('Generating API signatures dictionary...') + for command in spec.findall('commands/command'): + suffix = noneStr(command.get('suffix')) + proto = command.find('proto') + ret = noneStr(proto.text) + name = "" + params = "" + for elem in proto: + if elem.tag == 'name': + name = noneStr(elem.text) + noneStr(elem.tail) + else: + ret = ret + noneStr(elem.text) + noneStr(elem.tail) + ret = ret.strip() + name = name.strip() + + plist = [] + for param in command.findall('param'): + ptype = noneStr(param.text) + ptypeend = "" + pname = "" + for elem in param: + if elem.tag == 'name': + pname = noneStr(elem.text) + ptypeend = noneStr(elem.tail) + else: + ptype = ptype + noneStr(elem.text) + noneStr(elem.tail) + ptype = ptype.strip() + ptypeend = ptypeend.strip() + pname = pname.strip() + plist.append(ApiParam(ptype, ptypeend, pname)) + + # For an empty parameter list (for e.g. clUnloadCompiler), add a single + # unnamed void parameter to make generation easier. + if len(plist) == 0: + plist.append(ApiParam("void", "", "")) + + apisigs[name] = ApiSignature(name, ret, plist, suffix) + return apisigs + +def get_coreapis(spec, apisigs): + coreapis = OrderedDict() + print('Generating core API dictionary...') + for feature in spec.findall('feature'): + version = noneStr(feature.get('name')) + + alist = [] + for function in feature.findall('require/command'): + name = function.get('name') + alist.append(apisigs[name]) + coreapis[version] = alist + return coreapis + +def get_extapis(spec, apisigs): + extapis = OrderedDict() + print('Generating API extensions dictionary...') + for feature in spec.findall('extensions/extension'): + extension = noneStr(feature.get('name')) + + alist = [] + for function in feature.findall('require/command'): + name = function.get('name') + alist.append(apisigs[name]) + extapis[extension] = alist + return extapis + +def get_apis(spec, apisigs): + return (get_coreapis(spec, apisigs), get_extapis(spec, apisigs)) diff -Nru darktable-4.4.2/src/external/OpenCL/scripts/gen_headers.py darktable-4.6.1/src/external/OpenCL/scripts/gen_headers.py --- darktable-4.4.2/src/external/OpenCL/scripts/gen_headers.py 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/scripts/gen_headers.py 2023-04-17 08:34:39.000000000 +0000 @@ -0,0 +1,228 @@ +#!/usr/bin/python3 + +# Copyright (c) 2021 The Khronos Group Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import gen +import re + +from mako.template import Template +from mako.exceptions import RichTraceback + +from collections import OrderedDict +from collections import namedtuple + +def getDisableWarningIncludeString(include): + warningPush = """#if defined(_MSC_VER) +#if _MSC_VER >=1500 +#pragma warning( push ) +#pragma warning( disable : 4201 ) +#pragma warning( disable : 5105 ) +#endif +#endif +""" + warningPop = """ +#if defined(_MSC_VER) +#if _MSC_VER >=1500 +#pragma warning( pop ) +#endif +#endif""" + return warningPush + include + warningPop + +def getWin32OnlyIncludeString(include): + return """#if defined(_WIN32) +""" + include + """ +#endif""" + +if __name__ == "__main__": + args = gen.parse_args() + spec = gen.load_spec(args) + + typedefs = gen.get_apitypedefs(spec) + macros = gen.get_apimacros(spec) + structs = gen.get_apistructs(spec) + enums = gen.get_apienums(spec) + apisigs = gen.get_apisigs(spec) + + coreapis = gen.get_coreapis(spec, apisigs) + extapis = gen.get_extapis(spec, apisigs) + + try: + cl_ext_h_template = Template(filename='cl_ext.h.mako', input_encoding='utf-8') + + print('Generating cl_dx9_media_sharing.h...') + text = cl_ext_h_template.render( + genExtensions={ + 'cl_khr_dx9_media_sharing', + 'cl_intel_dx9_media_sharing', + 'cl_intel_sharing_format_query_dx9', + }, + guard="OPENCL_CL_DX9_MEDIA_SHARING_H_", + includes=getWin32OnlyIncludeString(getDisableWarningIncludeString("#include <d3d9.h>")), + generate_pfn_typedefs=False, + spec=spec, + typedefs=typedefs, + macros=macros, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis) + text = re.sub(r'\r\n', r'\n', text) + with open(args.directory + '/cl_dx9_media_sharing.h', 'w') as gen: + gen.write(text) + + print('Generating cl_d3d10.h...') + text = cl_ext_h_template.render( + genExtensions={ + 'cl_khr_d3d10_sharing', + 'cl_intel_sharing_format_query_d3d10', + }, + guard="OPENCL_CL_D3D10_H_", + includes=getDisableWarningIncludeString("#include <d3d10.h>"), + generate_pfn_typedefs=False, + spec=spec, + typedefs=typedefs, + macros=macros, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis) + text = re.sub(r'\r\n', r'\n', text) + with open(args.directory + '/cl_d3d10.h', 'w') as gen: + gen.write(text) + + print('Generating cl_d3d11.h...') + text = cl_ext_h_template.render( + genExtensions={ + 'cl_khr_d3d11_sharing', + 'cl_intel_sharing_format_query_d3d11' + }, + guard="OPENCL_CL_D3D11_H_", + includes=getDisableWarningIncludeString("#include <d3d11.h>"), + generate_pfn_typedefs=False, + spec=spec, + typedefs=typedefs, + macros=macros, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis) + text = re.sub(r'\r\n', r'\n', text) + with open(args.directory + '/cl_d3d11.h', 'w') as gen: + gen.write(text) + + print('Generating cl_egl.h...') + text = cl_ext_h_template.render( + genExtensions={'cl_khr_egl_event', 'cl_khr_egl_image'}, + guard="OPENCL_CL_EGL_H_", + generate_pfn_typedefs=False, + spec=spec, + typedefs=typedefs, + macros=macros, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis) + text = re.sub(r'\r\n', r'\n', text) + with open(args.directory + '/cl_egl.h', 'w') as gen: + gen.write(text) + + print('Generating cl_gl.h...') + text = cl_ext_h_template.render( + genExtensions={ + 'cl_khr_gl_depth_images', + 'cl_khr_gl_event', + 'cl_khr_gl_msaa_sharing', + 'cl_khr_gl_sharing', + 'cl_intel_sharing_format_query_gl', + }, + guard="OPENCL_CL_GL_H_", + generate_pfn_typedefs=False, + spec=spec, + typedefs=typedefs, + macros=macros, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis) + text = re.sub(r'\r\n', r'\n', text) + with open(args.directory + '/cl_gl.h', 'w') as gen: + gen.write(text) + + print('Generating cl_layer.h...') + text = cl_ext_h_template.render( + genExtensions={'cl_loader_layers'}, + guard="OPENCL_CL_LAYER_H_", + includes='#include <CL/cl_icd.h>', + generate_pfn_typedefs=True, + spec=spec, + typedefs=typedefs, + macros=macros, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis) + text = re.sub(r'\r\n', r'\n', text) + with open(args.directory + '/cl_layer.h', 'w') as gen: + gen.write(text) + + print('Generating cl_va_api_media_sharing_intel.h...') + text = cl_ext_h_template.render( + genExtensions={ + 'cl_intel_va_api_media_sharing', + 'cl_intel_sharing_format_query_va_api', + }, + guard="OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H_", + includes='#include <va/va.h>', + generate_pfn_typedefs=False, + spec=spec, + typedefs=typedefs, + macros=macros, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis) + text = re.sub(r'\r\n', r'\n', text) + with open(args.directory + '/cl_va_api_media_sharing_intel.h', 'w') as gen: + gen.write(text) + + print('Generating cl_ext.h...') + text = cl_ext_h_template.render( + genExtensions={}, + guard="OPENCL_CL_EXT_H_", + generate_pfn_typedefs=False, + spec=spec, + typedefs=typedefs, + macros=macros, + structs=structs, + enums=enums, + apisigs=apisigs, + coreapis=coreapis, + extapis=extapis) + text = re.sub(r'\r\n', r'\n', text) + with open(args.directory + '/cl_ext.h', 'w') as gen: + gen.write(text) + except: + traceback = RichTraceback() + for (filename, lineno, function, line) in traceback.traceback: + print('%s(%s) : error in %s' % (filename, lineno, function)) + print(' ', line) + print('%s: %s' % (str(traceback.error.__class__.__name__), traceback.error)) diff -Nru darktable-4.4.2/src/external/OpenCL/scripts/requirements.txt darktable-4.6.1/src/external/OpenCL/scripts/requirements.txt --- darktable-4.4.2/src/external/OpenCL/scripts/requirements.txt 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/scripts/requirements.txt 2023-04-17 08:34:39.000000000 +0000 @@ -0,0 +1 @@ +Mako>=1.2.2 diff -Nru darktable-4.4.2/src/external/OpenCL/tests/CMakeLists.txt darktable-4.6.1/src/external/OpenCL/tests/CMakeLists.txt --- darktable-4.4.2/src/external/OpenCL/tests/CMakeLists.txt 2020-12-09 16:53:44.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/tests/CMakeLists.txt 2023-04-17 08:34:39.000000000 +0000 @@ -1,11 +1,29 @@ # Add a test for a given source file for each version of OpenCL function(add_header_test NAME SOURCE) + # Some headers include system files which require anonymous structs + # so we cannot test them with /Za: + set(TEST_SKIP_ANSI_TESTING + cl_d3d10_h cl_d3d11_h cl_dx9_media_sharing_h cl_dx9_media_sharing_intel_h cl_icd_h cl_layer_h) + get_filename_component(LANG_DIR "${CMAKE_CURRENT_SOURCE_DIR}" NAME) + if(LANG_DIR MATCHES cpp) + set(CPP_SOURCE_PATH "${CMAKE_CURRENT_BINARY_DIR}/${SOURCE}pp") + file(RELATIVE_PATH REL_SOURCE_PATH "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/../${SOURCE}") + file(TO_NATIVE_PATH "${REL_SOURCE_PATH}" NATIVE_SOURCE_PATH) + file(WRITE + "${CPP_SOURCE_PATH}" + "#include \"${NATIVE_SOURCE_PATH}\"\n" + ) + set(SOURCE_PATH "${CPP_SOURCE_PATH}") + set(LANG cpp) + else() + set(SOURCE_PATH "../${SOURCE}") + set(LANG c) + endif() foreach(VERSION 100 110 120 200 210 220 300) - set(TEST_EXE ${NAME}_${VERSION}) - # ICD on Windows uses system headers, which aren't strictly ANSI conformant - # and trigger warnings - if(NOT (NAME STREQUAL cl_icd_h AND MSVC AND CMAKE_C_FLAGS MATCHES "/Za")) - add_executable(${TEST_EXE} ${SOURCE}) + set(TEST_EXE ${NAME}_${LANG}_${VERSION}) + list(FIND TEST_SKIP_ANSI_TESTING ${NAME} TEST_SKIP_INDEX) + if(NOT (${TEST_SKIP_INDEX} GREATER -1 AND MSVC AND CMAKE_C_FLAGS MATCHES "/Za")) + add_executable(${TEST_EXE} "${SOURCE_PATH}") target_compile_definitions(${TEST_EXE} PUBLIC -DCL_TARGET_OPENCL_VERSION=${VERSION} ) @@ -17,16 +35,8 @@ endforeach(VERSION) endfunction(add_header_test) -# Tests -add_header_test(cl_h test_cl.h.c) -add_header_test(cl_egl_h test_cl_egl.h.c) -add_header_test(cl_ext_h test_cl_ext.h.c) -add_header_test(cl_ext_intel_h test_cl_ext_intel.h.c) -add_header_test(cl_gl_h test_cl_gl.h.c) -add_header_test(cl_gl_ext_h test_cl_gl_ext.h.c) -add_header_test(cl_half_h test_cl_half.h.c) -add_header_test(cl_icd_h test_cl_icd.h.c) -add_header_test(cl_platform_h test_cl_platform.h.c) -add_header_test(cl_opencl_h test_opencl.h.c) -add_header_test(cl_version_h test_cl_version.h.c) -add_header_test(headers test_headers.c) +add_subdirectory(lang_c) +if(OPENCL_HEADERS_BUILD_CXX_TESTS) + enable_language(CXX) + add_subdirectory(lang_cpp) +endif() diff -Nru darktable-4.4.2/src/external/OpenCL/tests/lang_c/CMakeLists.txt darktable-4.6.1/src/external/OpenCL/tests/lang_c/CMakeLists.txt --- darktable-4.4.2/src/external/OpenCL/tests/lang_c/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/tests/lang_c/CMakeLists.txt 2023-04-17 08:34:39.000000000 +0000 @@ -0,0 +1,18 @@ +# Tests +add_header_test(cl_h test_cl.h.c) +add_header_test(cl_d3d10_h test_cl_d3d10.h.c) +add_header_test(cl_d3d11_h test_cl_d3d11.h.c) +add_header_test(cl_dx9_media_sharing_h test_cl_dx9_media_sharing.h.c) +add_header_test(cl_dx9_media_sharing_intel_h test_cl_dx9_media_sharing.h.c) +add_header_test(cl_egl_h test_cl_egl.h.c) +add_header_test(cl_ext_h test_cl_ext.h.c) +add_header_test(cl_ext_intel_h test_cl_ext_intel.h.c) +add_header_test(cl_gl_h test_cl_gl.h.c) +add_header_test(cl_gl_ext_h test_cl_gl_ext.h.c) +add_header_test(cl_half_h test_cl_half.h.c) +add_header_test(cl_icd_h test_cl_icd.h.c) +add_header_test(cl_layer_h test_cl_layer.h.c) +add_header_test(cl_platform_h test_cl_platform.h.c) +add_header_test(cl_opencl_h test_opencl.h.c) +add_header_test(cl_version_h test_cl_version.h.c) +add_header_test(headers test_headers.c) diff -Nru darktable-4.4.2/src/external/OpenCL/tests/lang_cpp/CMakeLists.txt darktable-4.6.1/src/external/OpenCL/tests/lang_cpp/CMakeLists.txt --- darktable-4.4.2/src/external/OpenCL/tests/lang_cpp/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/tests/lang_cpp/CMakeLists.txt 2023-04-17 08:34:39.000000000 +0000 @@ -0,0 +1,18 @@ +# Tests +add_header_test(cl_h test_cl.h.c) +add_header_test(cl_d3d10_h test_cl_d3d10.h.c) +add_header_test(cl_d3d11_h test_cl_d3d11.h.c) +add_header_test(cl_dx9_media_sharing_h test_cl_dx9_media_sharing.h.c) +add_header_test(cl_dx9_media_sharing_intel_h test_cl_dx9_media_sharing.h.c) +add_header_test(cl_egl_h test_cl_egl.h.c) +add_header_test(cl_ext_h test_cl_ext.h.c) +add_header_test(cl_ext_intel_h test_cl_ext_intel.h.c) +add_header_test(cl_gl_h test_cl_gl.h.c) +add_header_test(cl_gl_ext_h test_cl_gl_ext.h.c) +add_header_test(cl_half_h test_cl_half.h.c) +add_header_test(cl_icd_h test_cl_icd.h.c) +add_header_test(cl_layer_h test_cl_layer.h.c) +add_header_test(cl_platform_h test_cl_platform.h.c) +add_header_test(cl_opencl_h test_opencl.h.c) +add_header_test(cl_version_h test_cl_version.h.c) +add_header_test(headers test_headers.c) diff -Nru darktable-4.4.2/src/external/OpenCL/tests/test_cl_d3d10.h.c darktable-4.6.1/src/external/OpenCL/tests/test_cl_d3d10.h.c --- darktable-4.4.2/src/external/OpenCL/tests/test_cl_d3d10.h.c 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/tests/test_cl_d3d10.h.c 2023-04-17 08:34:39.000000000 +0000 @@ -0,0 +1,27 @@ +// +// Copyright (c) 2020 The Khronos Group Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#include <stdio.h> + +#if defined(_WIN32) +#include "CL/cl_d3d10.h" +#endif + +int main( void ) +{ + printf("cl_d3d10.h standalone test PASSED.\n"); + return 0; +} diff -Nru darktable-4.4.2/src/external/OpenCL/tests/test_cl_d3d11.h.c darktable-4.6.1/src/external/OpenCL/tests/test_cl_d3d11.h.c --- darktable-4.4.2/src/external/OpenCL/tests/test_cl_d3d11.h.c 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/tests/test_cl_d3d11.h.c 2023-04-17 08:34:39.000000000 +0000 @@ -0,0 +1,27 @@ +// +// Copyright (c) 2020 The Khronos Group Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#include <stdio.h> + +#if defined(_WIN32) +#include "CL/cl_d3d11.h" +#endif + +int main( void ) +{ + printf("cl_d3d11.h standalone test PASSED.\n"); + return 0; +} diff -Nru darktable-4.4.2/src/external/OpenCL/tests/test_cl_dx9_media_sharing.h.c darktable-4.6.1/src/external/OpenCL/tests/test_cl_dx9_media_sharing.h.c --- darktable-4.4.2/src/external/OpenCL/tests/test_cl_dx9_media_sharing.h.c 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/tests/test_cl_dx9_media_sharing.h.c 2023-04-17 08:34:39.000000000 +0000 @@ -0,0 +1,27 @@ +// +// Copyright (c) 2020 The Khronos Group Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#include <stdio.h> + +#if defined(_WIN32) +#include "CL/cl_dx9_media_sharing.h" +#endif + +int main( void ) +{ + printf("cl_dx9_media_sharing.h standalone test PASSED.\n"); + return 0; +} diff -Nru darktable-4.4.2/src/external/OpenCL/tests/test_cl_dx9_media_sharing_intel.h.c darktable-4.6.1/src/external/OpenCL/tests/test_cl_dx9_media_sharing_intel.h.c --- darktable-4.4.2/src/external/OpenCL/tests/test_cl_dx9_media_sharing_intel.h.c 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/tests/test_cl_dx9_media_sharing_intel.h.c 2023-04-17 08:34:39.000000000 +0000 @@ -0,0 +1,27 @@ +// +// Copyright (c) 2020 The Khronos Group Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#include <stdio.h> + +#if defined(_WIN32) +#include "CL/cl_dx9_media_sharing_intel.h" +#endif + +int main( void ) +{ + printf("cl_dx9_media_sharing_intel.h standalone test PASSED.\n"); + return 0; +} diff -Nru darktable-4.4.2/src/external/OpenCL/tests/test_cl_half.h.c darktable-4.6.1/src/external/OpenCL/tests/test_cl_half.h.c --- darktable-4.4.2/src/external/OpenCL/tests/test_cl_half.h.c 2020-12-09 16:53:44.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/tests/test_cl_half.h.c 2023-04-17 08:34:39.000000000 +0000 @@ -95,7 +95,7 @@ CHECK_FROM_FLOAT(-(CL_HALF_MAX + 1000.f), 0xfbff, RTP); CHECK_FROM_FLOAT(-(CL_HALF_MAX + 1000.f), 0xfc00, RTN); CHECK_FROM_FLOAT(-(CL_HALF_MAX + 1000.f), 0xfbff, RTZ); -#ifndef _MSC_VER +#if 0 // Hexadecimal float constant is C++17 // Check tiny positive values round properly CHECK_FROM_FLOAT(0x1.000000p-25, 0x0000, RTE); CHECK_FROM_FLOAT(0x1.000000p-25, 0x0001, RTP); @@ -108,7 +108,7 @@ CHECK_FROM_FLOAT(-0x1.000000p-25, 0x8001, RTN); CHECK_FROM_FLOAT(-0x1.000000p-25, 0x8000, RTZ); #else -// Check tiny positive values round properly + // Check tiny positive values round properly CHECK_FROM_FLOAT(2.98023223876953125e-08, 0x0000, RTE); CHECK_FROM_FLOAT(2.98023223876953125e-08, 0x0001, RTP); CHECK_FROM_FLOAT(2.98023223876953125e-08, 0x0000, RTN); diff -Nru darktable-4.4.2/src/external/OpenCL/tests/test_cl_layer.h.c darktable-4.6.1/src/external/OpenCL/tests/test_cl_layer.h.c --- darktable-4.4.2/src/external/OpenCL/tests/test_cl_layer.h.c 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/tests/test_cl_layer.h.c 2023-04-17 08:34:39.000000000 +0000 @@ -0,0 +1,31 @@ +// +// Copyright (c) 2020 The Khronos Group Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#include <stdio.h> + +#define CL_USE_DEPRECATED_OPENCL_1_0_APIS +#define CL_USE_DEPRECATED_OPENCL_1_1_APIS +#define CL_USE_DEPRECATED_OPENCL_1_2_APIS +#define CL_USE_DEPRECATED_OPENCL_2_0_APIS +#define CL_USE_DEPRECATED_OPENCL_2_1_APIS +#define CL_USE_DEPRECATED_OPENCL_2_2_APIS +#include "CL/cl_layer.h" + +int main( void ) +{ + printf("cl_icd_layer.h standalone test PASSED.\n"); + return 0; +} diff -Nru darktable-4.4.2/src/external/OpenCL/tests/test_headers.c darktable-4.6.1/src/external/OpenCL/tests/test_headers.c --- darktable-4.4.2/src/external/OpenCL/tests/test_headers.c 2020-12-09 16:53:44.000000000 +0000 +++ darktable-4.6.1/src/external/OpenCL/tests/test_headers.c 2023-04-17 08:34:39.000000000 +0000 @@ -1,5 +1,5 @@ // -// Copyright (c) 2020 The Khronos Group Inc. +// Copyright (c) 2020-2022 The Khronos Group Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,7 +14,17 @@ // limitations under the License. // +/* +Some versions of inttypes.h required defining the macro __STDC_FORMAT_MACROS to +use the format macros for C++ compiles, but not all. To improve robustness we +will use inttypes.h for C compiles and cinttypes for C++ compiles. +*/ +#if defined(__cplusplus) +#include <cinttypes> +#else #include <inttypes.h> +#endif + #include <stdio.h> #include "CL/cl.h" diff -Nru darktable-4.4.2/src/external/rawspeed/.ci/Dockerfile darktable-4.6.1/src/external/rawspeed/.ci/Dockerfile --- darktable-4.4.2/src/external/rawspeed/.ci/Dockerfile 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/.ci/Dockerfile 1970-01-01 00:00:00.000000000 +0000 @@ -1,54 +0,0 @@ -# docker build -t darktable/rawspeed . - -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -# !!! hub.docker.com will not auto-rebuild the image !!! -# !!! after making changes here, or if you just want to manually refresh !!! -# !!! the image, you need to go to: !!! -# https://hub.docker.com/r/darktable/rawspeed/~/settings/automated-builds/ !!! -# !!! and press the "Trigger" button. !!! -# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -FROM debian:testing -MAINTAINER Roman Lebedev <lebedev.ri@gmail.com> - -# needed at least for python-based jsonschema :( -# see https://github.com/Julian/jsonschema/issues/299 -# and https://github.com/docker-library/python/issues/13 -ENV LANG C.UTF-8 -ENV LC_ALL C.UTF-8 -ENV LC_MESSAGES C.UTF-8 -ENV LANGUAGE C.UTF-8 - -ENV DEBIAN_FRONTEND noninteractive - -# Paper over occasional network flakiness of some mirrors. -RUN echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80retry - -# Do not install recommended packages -RUN echo 'APT::Install-Recommends "false";' > /etc/apt/apt.conf.d/80recommends - -# Do not install suggested packages -RUN echo 'APT::Install-Suggests "false";' > /etc/apt/apt.conf.d/80suggests - -# Assume yes -RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/80forceyes - -# Fix broken packages -RUN echo 'APT::Get::Fix-Missing "true";' > /etc/apt/apt.conf.d/80fixmissin - -ENV GCC_VER=10 -ENV LLVM_VER=10 - -# pls keep sorted :) -RUN rm -rf /var/lib/apt/lists/* && apt-get update && \ - apt-get install clang++-$LLVM_VER clang-tidy-$LLVM_VER \ - clang-tools-$LLVM_VER cmake doxygen g++-$GCC_VER git googletest graphviz \ - libc++-$LLVM_VER-dev libjpeg-dev libomp-$LLVM_VER-dev libpugixml-dev \ - libxml2-utils make ninja-build python3-sphinx python3-sphinx-rtd-theme \ - unzip zlib1g-dev && apt-get clean && rm -rf /var/lib/apt/lists/* - -# i'd like to explicitly use ld.gold -# while it may be just immeasurably faster, it is known to cause more issues -# than traditional ld.bfd; plus, at this time, ld.gold seems like the future. -RUN dpkg-divert --add --rename --divert /usr/bin/ld.original /usr/bin/ld && \ - ln -s /usr/bin/ld.gold /usr/bin/ld diff -Nru darktable-4.4.2/src/external/rawspeed/.ci/ci-script.sh darktable-4.6.1/src/external/rawspeed/.ci/ci-script.sh --- darktable-4.4.2/src/external/rawspeed/.ci/ci-script.sh 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/.ci/ci-script.sh 2024-02-14 22:08:05.000000000 +0000 @@ -1,6 +1,6 @@ #!/bin/sh -# it is supposed to be run by travis-ci +# it is supposed to be run by ci # expects a few env variables to be set: # BUILD_DIR - the working directory, where to build # INSTALL_DIR - the installation prefix. @@ -11,16 +11,23 @@ set -ex -CMAKE_BUILD_TYPE="RelWithDebInfo" +CMAKE_BUILD_TYPE="ReleaseWithAsserts" GENERATOR="Ninja" VERBOSE="-v" KEEPGOING="-k0" case "$FLAVOR" in + "Release") + CMAKE_BUILD_TYPE="Release" + ;; + "ReleaseWithAsserts" | "ClangTidy" | "ClangStaticAnalysis" | "ClangCTUStaticAnalysis" | "CodeQLAnalysis" | "SonarCloudStaticAnalysis") + CMAKE_BUILD_TYPE="ReleaseWithAsserts" + ;; "Coverage") CMAKE_BUILD_TYPE="Coverage" ;; *) + exit 1 ;; esac @@ -59,7 +66,7 @@ # but also don't really want to complicate this script, # so just consume the error if the target is not there. cmake --build "$BUILD_DIR" --target gcov-clean || true - ctest --label-exclude benchmark --output-on-failure || ctest --label-exclude benchmark --rerun-failed -V -VV + ctest --label-exclude benchmark --output-on-failure || ctest --label-exclude benchmark --output-on-failure --rerun-failed -V -VV } target_test_benchmarks() @@ -73,7 +80,9 @@ target_test_integration() { - cmake --build "$BUILD_DIR" --target gcov-clean + if [ "$FLAVOR" = "Coverage" ]; then + cmake --build "$BUILD_DIR" --target gcov-clean + fi cmake --build "$BUILD_DIR" --target rstest-check } diff -Nru darktable-4.4.2/src/external/rawspeed/.ci/obs-workflows.yml darktable-4.6.1/src/external/rawspeed/.ci/obs-workflows.yml --- darktable-4.4.2/src/external/rawspeed/.ci/obs-workflows.yml 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/.ci/obs-workflows.yml 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,18 @@ +develop: + steps: + - trigger_services: + project: graphics:darktable:master + package: rawspeed + filters: + event: push + branches: + only: + - develop +pr: + steps: + - branch_package: + source_project: graphics:darktable:master + source_package: rawspeed + target_project: graphics:darktable:github + filters: + event: pull_request diff -Nru darktable-4.4.2/src/external/rawspeed/.ci/oss-fuzz.sh darktable-4.6.1/src/external/rawspeed/.ci/oss-fuzz.sh --- darktable-4.4.2/src/external/rawspeed/.ci/oss-fuzz.sh 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/.ci/oss-fuzz.sh 2024-02-14 22:08:05.000000000 +0000 @@ -22,6 +22,11 @@ CXXFLAGS="$CXXFLAGS -fsanitize=unsigned-integer-overflow -fno-sanitize-recover=unsigned-integer-overflow" fi +WITH_OPENMP=ON +if [[ $SANITIZER = *memory* ]]; then + WITH_OPENMP=OFF +fi + cd "$WORK" mkdir build cd build @@ -30,7 +35,8 @@ # https://github.com/google/oss-fuzz/pull/2781). ln -f -s /usr/bin/gold /usr/bin/ld cmake \ - -G"Unix Makefiles" -DBINARY_PACKAGE_BUILD=ON -DWITH_OPENMP=OFF \ + -G"Unix Makefiles" -DBINARY_PACKAGE_BUILD=ON -DWITH_OPENMP=$WITH_OPENMP \ + -DUSE_BUNDLED_LLVMOPENMP=ON -DALLOW_DOWNLOADING_LLVMOPENMP=ON \ -DWITH_PUGIXML=OFF -DUSE_XMLLINT=OFF -DWITH_JPEG=OFF -DWITH_ZLIB=OFF \ -DBUILD_TESTING=OFF -DBUILD_TOOLS=OFF -DBUILD_BENCHMARKING=OFF \ -DCMAKE_BUILD_TYPE=FUZZ -DBUILD_FUZZERS=ON \ @@ -39,6 +45,3 @@ "$SRC/librawspeed/" make -j$(nproc) all && make -j$(nproc) install - -cd "$SRC" -rm -rf "$WORK/build" Binary files /tmp/tmp0dv588vt/nssyAZunBe/darktable-4.4.2/src/external/rawspeed/.ci/wro_deploy.enc and /tmp/tmp0dv588vt/gCR2CHHixY/darktable-4.6.1/src/external/rawspeed/.ci/wro_deploy.enc differ diff -Nru darktable-4.4.2/src/external/rawspeed/.ci/www-finish.sh darktable-4.6.1/src/external/rawspeed/.ci/www-finish.sh --- darktable-4.4.2/src/external/rawspeed/.ci/www-finish.sh 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/.ci/www-finish.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ -#!/bin/bash - -set -e # Exit with nonzero exit code if anything fails - -SOURCE_BRANCH="develop" -TARGET_BRANCH="gh-pages" - -# Pull requests and commits to other branches shouldn't try to deploy -if [ "$TRAVIS_PULL_REQUEST" != "false" -o "$TRAVIS_BRANCH" != "$SOURCE_BRANCH" ]; then - exit 1 -fi - -# Save some useful information -REPO="https://github.com/LebedevRI/www.rawspeed.org.git" -SSH_REPO="git@github.com:LebedevRI/www.rawspeed.org.git" - -# Now let's go have some fun with the cloned repo -cd "$TRAVIS_BUILD_DIR/build/docs/html" -git config user.name "Travis CI" -git config user.email "travis@travis-ci.org" - -date > .timestamp -echo "rawspeed.org" > CNAME - -# # If there are no changes (e.g. this is a README update) then just bail. -# if [[ -z `git diff --exit-code` ]]; then -# echo "No changes to the spec on this push; exiting." -# exit 0 -# fi - -# Commit the "changes", i.e. the new version. -# The delta will show diffs between new and old versions. -git add . -git commit --quiet -m "Deploy to GitHub Pages: ${TRAVIS_COMMIT}" - -ENCRYPTION_LABEL="459909475b8a" - -# Get the deploy key by using Travis's stored variables to decrypt wro_deploy.enc -ENCRYPTED_KEY_VAR="encrypted_${ENCRYPTION_LABEL}_key" -ENCRYPTED_IV_VAR="encrypted_${ENCRYPTION_LABEL}_iv" -ENCRYPTED_KEY=${!ENCRYPTED_KEY_VAR} -ENCRYPTED_IV=${!ENCRYPTED_IV_VAR} -openssl aes-256-cbc -K $ENCRYPTED_KEY -iv $ENCRYPTED_IV -in "$TRAVIS_BUILD_DIR/.ci/wro_deploy.enc" -out "$TRAVIS_BUILD_DIR/.ci/wro_deploy" -d -chmod 600 "$TRAVIS_BUILD_DIR/.ci/wro_deploy" -eval `ssh-agent -s` -ssh-add "$TRAVIS_BUILD_DIR/.ci/wro_deploy" - -# Now that we're all set up, we can push. -git push -f $SSH_REPO $TARGET_BRANCH diff -Nru darktable-4.4.2/src/external/rawspeed/.ci/www-prepare.sh darktable-4.6.1/src/external/rawspeed/.ci/www-prepare.sh --- darktable-4.4.2/src/external/rawspeed/.ci/www-prepare.sh 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/.ci/www-prepare.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -#!/bin/bash - -set -e # Exit with nonzero exit code if anything fails - -SOURCE_BRANCH="develop" -TARGET_BRANCH="gh-pages" - -# Pull requests and commits to other branches shouldn't try to deploy -if [ "$TRAVIS_PULL_REQUEST" != "false" -o "$TRAVIS_BRANCH" != "$SOURCE_BRANCH" ]; then - exit 1 -fi - -# Save some useful information -REPO="https://github.com/LebedevRI/www.rawspeed.org.git" - -mkdir -p "$TRAVIS_BUILD_DIR/build/docs/" -cd "$TRAVIS_BUILD_DIR/build/docs/" - -# Clone the existing gh-pages for this repo into out/ -# Create a new empty branch if gh-pages doesn't exist yet (should only happen on first deply) -git clone --depth 1 $REPO html -cd html -git checkout $TARGET_BRANCH || git checkout --orphan $TARGET_BRANCH -cd .. - -# Clean out existing contents -rm -rf html/**/* || exit 0 diff -Nru darktable-4.4.2/src/external/rawspeed/.clang-format darktable-4.6.1/src/external/rawspeed/.clang-format --- darktable-4.4.2/src/external/rawspeed/.clang-format 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/.clang-format 2024-02-14 22:08:05.000000000 +0000 @@ -1,7 +1,7 @@ --- Language: Cpp BasedOnStyle: LLVM -Standard: c++17 +Standard: c++20 # Force pointers to the type for C++. DerivePointerAlignment: false PointerAlignment: Left diff -Nru darktable-4.4.2/src/external/rawspeed/.clang-format-ignore darktable-4.6.1/src/external/rawspeed/.clang-format-ignore --- darktable-4.4.2/src/external/rawspeed/.clang-format-ignore 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/.clang-format-ignore 2024-02-14 22:08:05.000000000 +0000 @@ -3,16 +3,17 @@ **/*.md **/*.py **/*.rst +**/.clang-tidy **/CMakeLists.txt .ci/**/* .clang-format +.clang-tidy .gitattributes .github/**/* .gitignore .mailmap CMakeLists.txt LICENSE -cmake/iwyu.imp docs/Doxyfile.in fuzz/all-fuzzers.txt fuzz/common.dict diff -Nru darktable-4.4.2/src/external/rawspeed/.clang-tidy darktable-4.6.1/src/external/rawspeed/.clang-tidy --- darktable-4.4.2/src/external/rawspeed/.clang-tidy 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/.clang-tidy 2024-02-14 22:08:05.000000000 +0000 @@ -1,11 +1,97 @@ --- Checks: > *, + -clang-analyzer-*, -clang-diagnostic-*, + -android-*, + -fuchsia-*, + -llvmlibc-*, + + -bugprone-narrowing-conversions, + -cert-con36-c, + -cert-con54-cpp, + -cert-dcl03-c, + -cert-dcl16-c, + -cert-dcl37-c, + -cert-dcl51-cpp, + -cert-dcl54-cpp, + -cert-dcl59-cpp, + -cert-err09-cpp, + -cert-err61-cpp, + -cert-exp42-c, + -cert-fio38-c, + -cert-flp37-c, + -cert-msc24-c, + -cert-msc30-c, + -cert-msc32-c, + -cert-msc33-c, + -cert-msc54-cpp, + -cert-oop11-cpp, + -cert-oop54-cpp, + -cert-pos44-c, + -cert-pos47-c, + -cert-sig30-c, + -cert-str34-c, + -cppcoreguidelines-avoid-c-arrays, + -cppcoreguidelines-avoid-magic-numbers, + -cppcoreguidelines-c-copy-assignment-signature, + -cppcoreguidelines-explicit-virtual-functions, + -cppcoreguidelines-noexcept-destructor, + -cppcoreguidelines-noexcept-move-operations, + -cppcoreguidelines-noexcept-swap, + -cppcoreguidelines-non-private-member-variables-in-classes, + -cppcoreguidelines-use-default-member-init, + -google-readability-braces-around-statements, + -google-readability-function-size, + -google-readability-namespace-comments, + -hicpp-avoid-c-arrays, + -hicpp-avoid-goto, + -hicpp-braces-around-statements, + -hicpp-deprecated-headers, + -hicpp-explicit-conversions, + -hicpp-function-size, + -hicpp-invalid-access-moved, + -hicpp-member-init, + -hicpp-move-const-arg, + -hicpp-named-parameter, + -hicpp-new-delete-operators, + -hicpp-no-array-decay, + -hicpp-no-malloc, + -hicpp-noexcept-move, + -hicpp-special-member-functions, + -hicpp-static-assert, + -hicpp-undelegated-constructor, + -hicpp-uppercase-literal-suffix, + -hicpp-use-auto, + -hicpp-use-emplace, + -hicpp-use-equals-default, + -hicpp-use-equals-delete, + -hicpp-use-noexcept, + -hicpp-use-nullptr, + -hicpp-use-override, + -hicpp-vararg, + -llvm-else-after-return, + -llvm-qualified-auto, + + -abseil-string-find-str-contains, + -altera-id-dependent-backward-branch, + -altera-struct-pack-align, + -altera-unroll-loops, + -bugprone-easily-swappable-parameters, + -bugprone-exception-escape, + -bugprone-implicit-widening-of-multiplication-result, + -bugprone-signed-char-misuse, + -bugprone-unchecked-optional-access, -cert-dcl50-cpp, -cert-env33-c, + -cert-err33-c, -cert-err58-cpp, + -cppcoreguidelines-avoid-const-or-ref-data-members, + -cppcoreguidelines-avoid-non-const-global-variables, + -cppcoreguidelines-init-variables, + -cppcoreguidelines-narrowing-conversions, + -cppcoreguidelines-owning-memory, -cppcoreguidelines-pro-bounds-array-to-pointer-decay, -cppcoreguidelines-pro-bounds-constant-array-index, -cppcoreguidelines-pro-bounds-pointer-arithmetic, @@ -14,64 +100,30 @@ -cppcoreguidelines-pro-type-vararg, -cppcoreguidelines-special-member-functions, -google-default-arguments, + -google-readability-casting, -google-readability-todo, - -hicpp-member-init, - -hicpp-special-member-functions, + -hicpp-signed-bitwise, -llvm-header-guard, -llvm-include-order, - -misc-unused-parameters, - -readability-implicit-bool-cast, - -readability-inconsistent-declaration-parameter-name, - -android-*, - -hicpp-braces-around-statements, - -hicpp-function-size, - -google-readability-braces-around-statements, - -google-readability-function-size, - -readability-implicit-bool-conversion, - -hicpp-signed-bitwise, - -hicpp-no-array-decay, - -hicpp-vararg, - -hicpp-multiway-paths-covered, - -cppcoreguidelines-owning-memory, - -fuchsia-*, - -llvmlibc-*, - -portability-simd-intrinsics, - -bugprone-narrowing-conversions, - -cppcoreguidelines-narrowing-conversions, - -readability-magic-numbers, - -cppcoreguidelines-avoid-magic-numbers, + -misc-const-correctness, + -misc-no-recursion, -misc-non-private-member-variables-in-classes, - -cppcoreguidelines-non-private-member-variables-in-classes, + -misc-unused-parameters, + -misc-unused-using-decls, -modernize-use-trailing-return-type, - -cppcoreguidelines-init-variables, - -bugprone-signed-char-misuse, - -cert-str34-c, - -cert-dcl37-c, - -cert-dcl51-cpp, - -misc-no-recursion, - -cppcoreguidelines-avoid-non-const-global-variables, - -abseil-string-find-str-contains, - -altera-struct-pack-align, - -google-runtime-references, - -altera-unroll-loops, - -altera-id-dependent-backward-branch, - -bugprone-implicit-widening-of-multiplication-result, - -bugprone-easily-swappable-parameters, - -readability-identifier-length, - -cert-err33-c, - -google-readability-casting, - -readability-container-data-pointer, - -bugprone-exception-escape, -openmp-exception-escape, - -modernize-use-default-member-init, - -misc-unused-using-decls, - -bugprone-assignment-in-if-condition, - -bugprone-unchecked-optional-access, - -cppcoreguidelines-avoid-const-or-ref-data-members, - -misc-const-correctness + -portability-simd-intrinsics, + -readability-container-data-pointer, + -readability-identifier-length, + -readability-implicit-bool-conversion, + -readability-inconsistent-declaration-parameter-name, + -readability-magic-numbers, + + -rawspeed-std-array-no-operator-at WarningsAsErrors: '*' HeaderFilterRegex: '.*' AnalyzeTemporaryDtors: false +InheritParentConfig: false User: lebedevri CheckOptions: - key: bugprone-reserved-identifier.AllowedIdentifiers @@ -132,4 +184,7 @@ value: 1 - key: cppcoreguidelines-macro-usage.AllowedRegexp value: 'DEBUG|_GLIBCXX_SANITIZE_VECTOR|RAWSPEED_SOURCE_DIR|STR|XSTR|BSWAP16|BSWAP32|BSWAP64|ThrowExceptionHelper|ThrowIOE|ThrowRSE|ThrowCME|ThrowRDE|ThrowRPE|ThrowTPE|ThrowFIE|ThrowCPE|ThrowFPE|DECODER|fuji_quant_gradient|JPEG_MEMSRC|RLVTABLE|PRECISION_MIN|PRECISION_MAX|MARKER_BAND_END|SQR|RS_CAMERAS_XML_PATH|FULLDECODE|IMPL|IMPL0|IMPL1|PUMP|DECODE|PARSER|GEN_E|GEN_PFS|GEN_PSS|BENCHMARK_CAPTURE_NAME|RAWSPEED_UNLIKELY_FUNCTION|RAWSPEED_NOINLINE|GEN_INNER|GEN_F_BPS|GEN_F|GEN_U_BPS|GEN_U|GEN_BO|invariant' + - key: performance-unnecessary-value-param.AllowedTypes + value: '(Cropped)?Array[12]DRef' + ... diff -Nru darktable-4.4.2/src/external/rawspeed/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -91,8 +91,8 @@ set(ALLOW_DOWNLOADING_ZLIB OFF CACHE BOOL "If ZLIB src tree is not found in location specified by ZLIB_PATH, do fetch the archive from internet" FORCE) endif() option(USE_XMLLINT "Run xmllint to test if data/cameras.xml is valid" ON) -option(USE_IWYU "Run iwyu tool when compiling sources" OFF) option(USE_CLANG_TIDY "Run clang-tidy tool when compiling sources" OFF) +option(USE_RAWSPEED_CLANG_TIDY_MODULE "Run clang-tidy tool when compiling sources" ${USE_CLANG_TIDY}) option(BUILD_TESTING "Build the testing tree." ON) if(BUILD_TESTING) option(ALLOW_DOWNLOADING_GOOGLETEST "If googletest src tree is not found in location specified by GOOGLETEST_PATH, do fetch the archive from internet" OFF) @@ -170,10 +170,6 @@ include(libc++) endif() -if(USE_IWYU) - include(iwyu) -endif() - if(USE_LLVM_OPT_REPORT) include(llvm-opt-report) endif() diff -Nru darktable-4.4.2/src/external/rawspeed/README.rst darktable-4.6.1/src/external/rawspeed/README.rst --- darktable-4.4.2/src/external/rawspeed/README.rst 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/README.rst 2024-02-14 22:08:05.000000000 +0000 @@ -84,9 +84,6 @@ RawSpeed is not at the moment a separate library, so you have to include it in your project directly. -Please see <https://rawspeed.org/> for documentation. -Doxygen-generated documentation is available at <https://rawspeed.org/doxygen> - Submitting Requests and Patches -------------------------------------------------------------------------------- Please go to the `github page <rawspeed_>`_ and submit your (pull)requests and issues there. diff -Nru darktable-4.4.2/src/external/rawspeed/bench/librawspeed/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/bench/librawspeed/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/bench/librawspeed/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/bench/librawspeed/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -16,17 +16,25 @@ target_link_libraries(${BENCHNAME} PUBLIC rawspeed_bench) rawspeed_add_test(NAME ${BENCHNAME}-Dummy COMMAND ${BENCHNAME} --help) + set_tests_properties(${BENCHNAME}-Dummy PROPERTIES LABELS "benchmark;dummy") + if(WIN32) + set_tests_properties(${BENCHNAME}-Dummy PROPERTIES ENVIRONMENT_MODIFICATION "PATH=path_list_prepend:$<TARGET_FILE_DIR:rawspeed_bench>") + endif() - rawspeed_add_test(NAME ${BENCHNAME} COMMAND ${BENCHNAME} --benchmark_min_time=0) + rawspeed_add_test(NAME ${BENCHNAME} COMMAND ${BENCHNAME} --benchmark_min_time=1x) set_tests_properties(${BENCHNAME} PROPERTIES LABELS "benchmark") set_tests_properties(${BENCHNAME} PROPERTIES ENVIRONMENT "RAWSPEED_BENCHMARK_DRYRUN=1") + if(WIN32) + set_tests_properties(${BENCHNAME} PROPERTIES ENVIRONMENT_MODIFICATION "PATH=path_list_prepend:$<TARGET_FILE_DIR:rawspeed_bench>") + endif() add_dependencies(benchmarks ${BENCHNAME}) endfunction() add_subdirectory(adt) add_subdirectory(bench) +add_subdirectory(bitstreams) +add_subdirectory(common) add_subdirectory(decompressors) add_subdirectory(interpolators) -add_subdirectory(io) add_subdirectory(metadata) diff -Nru darktable-4.4.2/src/external/rawspeed/bench/librawspeed/adt/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/bench/librawspeed/adt/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/bench/librawspeed/adt/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/bench/librawspeed/adt/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -1,5 +1,6 @@ FILE(GLOB RAWSPEED_BENCHS_SOURCES "DefaultInitAllocatorAdaptorBenchmark.cpp" + "VariableLengthLoadBenchmark.cpp" ) foreach(SRC ${RAWSPEED_BENCHS_SOURCES}) diff -Nru darktable-4.4.2/src/external/rawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp darktable-4.6.1/src/external/rawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp --- darktable-4.4.2/src/external/rawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/bench/librawspeed/adt/DefaultInitAllocatorAdaptorBenchmark.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,28 +18,33 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "adt/DefaultInitAllocatorAdaptor.h" // for DefaultInitAllocatorAda... -#include "bench/Common.h" // for benchmarkDryRun -#include <cstddef> // for byte -#include <map> // for map<>::mapped_type -#include <vector> // for allocator, vector -#include <benchmark/benchmark.h> // for State, Benchmark, BENCH... +#include "adt/DefaultInitAllocatorAdaptor.h" +#include "adt/Casts.h" +#include "bench/Common.h" +#include <cstddef> +#include <memory> +#include <vector> +#include <benchmark/benchmark.h> using Type = std::byte; -template <typename Allocator> static void construct(benchmark::State& state) { - std::vector<Type, Allocator> vec(state.range(0)); +namespace { + +template <typename Allocator> void construct(benchmark::State& state) { + std::vector<Type, Allocator> vec( + rawspeed::implicit_cast<size_t>(state.range(0))); benchmark::DoNotOptimize(vec); } template <typename Allocator> -static void construct_with_zeroinit(benchmark::State& state) { - std::vector<Type, Allocator> vec(state.range(0), Type(0)); +void construct_with_zeroinit(benchmark::State& state) { + std::vector<Type, Allocator> vec( + rawspeed::implicit_cast<size_t>(state.range(0)), Type(0)); benchmark::DoNotOptimize(vec); } template <typename Worker> -void BM_std_vector(benchmark::State& state, Worker&& worker) { +void BM_std_vector(benchmark::State& state, Worker worker) { // Do it once outside of the loop to maybe offset the initial alloc time. worker(state); @@ -48,13 +53,14 @@ const auto AllocSize = sizeof(Type) * state.range(0); state.counters["Allocation,bytes"] = benchmark::Counter( - AllocSize, benchmark::Counter::kDefaults, benchmark::Counter::kIs1024); + rawspeed::implicit_cast<double>(AllocSize), benchmark::Counter::kDefaults, + benchmark::Counter::kIs1024); state.SetComplexityN(AllocSize); state.SetBytesProcessed(AllocSize * state.iterations()); state.SetItemsProcessed(state.range(0) * state.iterations()); } -static void CustomArguments(benchmark::internal::Benchmark* b) { +void CustomArguments(benchmark::internal::Benchmark* b) { if (benchmarkDryRun()) { b->Arg(512U * (1U << 10U)); // 512 KiB return; @@ -85,4 +91,6 @@ rawspeed::DefaultInitAllocatorAdaptor<Type, std::allocator<Type>>>) ->Apply(CustomArguments); +} // namespace + BENCHMARK_MAIN(); diff -Nru darktable-4.4.2/src/external/rawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp darktable-4.6.1/src/external/rawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp --- darktable-4.4.2/src/external/rawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/bench/librawspeed/adt/VariableLengthLoadBenchmark.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,168 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2024 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "adt/VariableLengthLoad.h" +#include "adt/Array1DRef.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "bench/Common.h" +#include "common/Common.h" +#include <array> +#include <cstddef> +#include <cstdint> +#include <vector> +#include <benchmark/benchmark.h> + +namespace rawspeed { + +namespace { + +[[maybe_unused]] inline void fixedLengthLoad(Array1DRef<uint8_t> out, + Array1DRef<const uint8_t> in, + int inPos) { + invariant(out.size() != 0); + invariant(in.size() != 0); + invariant(out.size() <= in.size()); + invariant(inPos >= 0); + + // Here we "somehow" know that the load is always in-bounds. + invariant(inPos < in.size()); + invariant(inPos + out.size() <= in.size()); + + variableLengthLoadNaiveViaMemcpy(out, in, inPos); +} + +template <decltype(fixedLengthLoad) Callable> +[[maybe_unused]] inline void +fixedLengthLoadOr(rawspeed::Array1DRef<uint8_t> out, + rawspeed::Array1DRef<const uint8_t> in, int inPos) { + invariant(out.size() != 0); + invariant(in.size() != 0); + invariant(out.size() <= in.size()); + invariant(inPos >= 0); + + if (inPos + out.size() <= in.size()) { + fixedLengthLoad(out, in, inPos); + return; + } + + Callable(out, in, inPos); +} + +} // namespace + +} // namespace rawspeed + +namespace { + +using rawspeed::fixedLengthLoad; +using rawspeed::fixedLengthLoadOr; +using rawspeed::variableLengthLoad; +using rawspeed::variableLengthLoadNaiveViaConditionalLoad; +using rawspeed::variableLengthLoadNaiveViaMemcpy; + +template <decltype(variableLengthLoadNaiveViaMemcpy) Impl, typename T> +void BM_Impl(benchmark::State& state) { + constexpr int bytesPerItem = sizeof(T); + + int64_t numBytes = rawspeed::roundUp(state.range(0), bytesPerItem); + benchmark::DoNotOptimize(numBytes); + + const std::vector<uint8_t> inStorage( + rawspeed::implicit_cast<size_t>(numBytes)); + + const auto in = rawspeed::Array1DRef<const uint8_t>( + inStorage.data(), rawspeed::implicit_cast<int>(numBytes)); + + std::array<uint8_t, bytesPerItem> outStorage; + auto out = rawspeed::Array1DRef<uint8_t>( + outStorage.data(), rawspeed::implicit_cast<int>(bytesPerItem)); + + for (auto _ : state) { + for (int inPos = 0; inPos < numBytes; inPos += bytesPerItem) { + Impl(out, in, inPos); + benchmark::DoNotOptimize(out.begin()); + } + } + + state.SetComplexityN(numBytes); + state.counters.insert({ + {"Throughput", + benchmark::Counter(sizeof(uint8_t) * state.complexity_length_n(), + benchmark::Counter::Flags::kIsIterationInvariantRate, + benchmark::Counter::kIs1024)}, + {"Latency", + benchmark::Counter(sizeof(uint8_t) * state.complexity_length_n(), + benchmark::Counter::Flags::kIsIterationInvariantRate | + benchmark::Counter::Flags::kInvert, + benchmark::Counter::kIs1000)}, + }); +} + +void CustomArguments(benchmark::internal::Benchmark* b) { + b->Unit(benchmark::kMicrosecond); + + static constexpr int L1dByteSize = 32U * (1U << 10U); + static constexpr int L2dByteSize = 512U * (1U << 10U); + static constexpr int MaxBytesOptimal = L2dByteSize; + + if (benchmarkDryRun()) { + b->Arg(L1dByteSize); + return; + } + + b->RangeMultiplier(2); + if constexpr ((true)) + b->Arg(MaxBytesOptimal); + else + b->Range(1, 2048UL << 20)->Complexity(benchmark::oN); +} + +// NOLINTBEGIN(cppcoreguidelines-macro-usage) + +#define GEN(I, T) BENCHMARK(BM_Impl<I, T>)->Apply(CustomArguments) + +#define GEN_CALLABLE(I) \ + GEN(I, uint8_t); \ + GEN(I, uint16_t); \ + GEN(I, uint32_t); \ + GEN(I, uint64_t) + +#define GEN_TIME() \ + GEN_CALLABLE(GEN_WRAPPER(fixedLengthLoad)); \ + GEN_CALLABLE(GEN_WRAPPER(variableLengthLoad)); \ + GEN_CALLABLE(GEN_WRAPPER(variableLengthLoadNaiveViaConditionalLoad)); \ + GEN_CALLABLE(GEN_WRAPPER(variableLengthLoadNaiveViaMemcpy)) + +#undef GEN_WRAPPER +#define GEN_WRAPPER(I) I + +GEN_TIME(); + +#undef GEN_WRAPPER +#define GEN_WRAPPER(I) fixedLengthLoadOr<I> + +GEN_TIME(); + +// NOLINTEND(cppcoreguidelines-macro-usage) + +} // namespace + +BENCHMARK_MAIN(); diff -Nru darktable-4.4.2/src/external/rawspeed/bench/librawspeed/bench/Common.cpp darktable-4.6.1/src/external/rawspeed/bench/librawspeed/bench/Common.cpp --- darktable-4.4.2/src/external/rawspeed/bench/librawspeed/bench/Common.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/bench/librawspeed/bench/Common.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,12 +18,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "rawspeedconfig.h" #include "bench/Common.h" -#include "adt/Point.h" // for iPoint2D -#include "common/Common.h" // for roundUp -#include <cassert> // for assert -#include <cmath> // for ceil, sqrt -#include <cstdlib> // for getenv +#include "adt/Casts.h" +#include "adt/Point.h" +#include "common/Common.h" +#include <cassert> +#include <cmath> +#include <cstdint> +#include <cstdlib> using rawspeed::iPoint2D; using rawspeed::roundUp; @@ -36,15 +39,16 @@ } iPoint2D RAWSPEED_READNONE __attribute__((visibility("default"))) -areaToRectangle(size_t area, iPoint2D aspect) { +areaToRectangle(uint64_t area, iPoint2D aspect) { double sqSide = sqrt(area); double sqARatio = sqrt(static_cast<double>(aspect.x) / static_cast<double>(aspect.y)); - iPoint2D dim(ceil(sqSide * sqARatio), ceil(sqSide / sqARatio)); + iPoint2D dim(rawspeed::implicit_cast<int>(ceil(sqSide * sqARatio)), + rawspeed::implicit_cast<int>(ceil(sqSide / sqARatio))); - dim.x = roundUp(dim.x, aspect.x); - dim.y = roundUp(dim.y, aspect.y); + dim.x = rawspeed::implicit_cast<int>(roundUp(dim.x, aspect.x)); + dim.y = rawspeed::implicit_cast<int>(roundUp(dim.y, aspect.y)); assert(dim.area() >= area); diff -Nru darktable-4.4.2/src/external/rawspeed/bench/librawspeed/bench/Common.h darktable-4.6.1/src/external/rawspeed/bench/librawspeed/bench/Common.h --- darktable-4.4.2/src/external/rawspeed/bench/librawspeed/bench/Common.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/bench/librawspeed/bench/Common.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,11 +20,11 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_READNONE -#include "adt/Point.h" // for iPoint2D -#include <cstddef> // for size_t +#include "rawspeedconfig.h" +#include "adt/Point.h" +#include <cstdint> bool RAWSPEED_READNONE benchmarkDryRun(); rawspeed::iPoint2D RAWSPEED_READNONE -areaToRectangle(size_t area, rawspeed::iPoint2D aspect = {2, 2}); +areaToRectangle(uint64_t area, rawspeed::iPoint2D aspect = {2, 2}); diff -Nru darktable-4.4.2/src/external/rawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp darktable-4.6.1/src/external/rawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp --- darktable-4.4.2/src/external/rawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/bench/librawspeed/bitstreams/BitStreamerBenchmark.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,155 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2017 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "adt/Array1DRef.h" +#include "adt/Casts.h" +#include "bench/Common.h" +#include "bitstreams/BitStreamerJPEG.h" +#include "bitstreams/BitStreamerLSB.h" +#include "bitstreams/BitStreamerMSB.h" +#include "bitstreams/BitStreamerMSB16.h" +#include "bitstreams/BitStreamerMSB32.h" +#include <cassert> +#include <cstddef> +#include <benchmark/benchmark.h> + +#ifndef NDEBUG +#include "io/Buffer.h" +#endif + +#ifndef DEBUG +#include <cstdint> +#include <string> +#include <vector> +#endif + +#ifdef DEBUG +#include "common/Common.h" +#include <limits> +#endif + +using rawspeed::BitStreamerJPEG; +using rawspeed::BitStreamerLSB; +using rawspeed::BitStreamerMSB; +using rawspeed::BitStreamerMSB16; +using rawspeed::BitStreamerMSB32; + +namespace { + +constexpr const int STEP_MAX = 32; + +template <typename Pump> +inline void BM_BitStreamer(benchmark::State& state, int fillSize, int Step) { + assert(state.range(0) > 0); + assert(static_cast<size_t>(state.range(0)) <= + std::numeric_limits<rawspeed::Buffer::size_type>::max()); + + assert(fillSize > 0); + assert(fillSize <= STEP_MAX); + + assert(Step > 0); + assert(Step <= STEP_MAX); + + assert(Step <= fillSize); + + assert((Step == 1) || rawspeed::isAligned(Step, 2)); + assert((fillSize == 1) || rawspeed::isAligned(fillSize, 2)); + + const std::vector<uint8_t> inputStorage( + rawspeed::implicit_cast<size_t>(state.range(0))); + const rawspeed::Array1DRef<const uint8_t> input( + inputStorage.data(), rawspeed::implicit_cast<int>(state.range(0))); + + int processedBits = 0; + for (auto _ : state) { + Pump pump(input); + + for (processedBits = 0; processedBits <= 8 * input.size();) { + pump.fill(fillSize); + + // NOTE: you may want to change the callee here + for (auto i = 0; i < fillSize; i += Step) + pump.skipBitsNoFill(Step); + + processedBits += fillSize; + } + } + + assert(processedBits > fillSize); + processedBits -= fillSize; + + assert(rawspeed::roundUp(8 * input.size(), fillSize) == + rawspeed::implicit_cast<uint64_t>(processedBits)); + + state.SetComplexityN(processedBits / 8); + state.SetItemsProcessed(processedBits * state.iterations()); + state.SetBytesProcessed(state.items_processed() / 8); +} + +inline void CustomArguments(benchmark::internal::Benchmark* b) { + if (benchmarkDryRun()) { + b->Arg((512U * (1U << 10U)) / 10); + return; + } + + b->RangeMultiplier(2); + // NOLINTNEXTLINE(readability-simplify-boolean-expr) + if constexpr ((true)) { + b->Arg(256 << 20); + } else { + b->Range(1, 1024 << 20); + b->Complexity(benchmark::oN); + } + b->Unit(benchmark::kMillisecond); +} + +template <typename PUMP> void registerPump(const char* pumpName) { + for (size_t i = 1; i <= STEP_MAX; i *= 2) { + for (size_t j = 1; j <= i && j <= STEP_MAX; j *= 2) { + std::string name("BM_BitStreamer<"); + name += "Spec<"; + name += pumpName; + name += ">, Fill<"; + name += std::to_string(i); + name += ">, Step<"; + name += std::to_string(j); + name += ">>"; + + const auto Fn = BM_BitStreamer<PUMP>; + auto* b = benchmark::RegisterBenchmark(name, Fn, i, j); + b->Apply(CustomArguments); + } + } +} + +} // namespace + +#define REGISTER_PUMP(PUMP) registerPump<PUMP>(#PUMP) + +int main(int argc, char** argv) { + REGISTER_PUMP(BitStreamerLSB); + REGISTER_PUMP(BitStreamerMSB); + REGISTER_PUMP(BitStreamerMSB16); + REGISTER_PUMP(BitStreamerMSB32); + REGISTER_PUMP(BitStreamerJPEG); + + benchmark::Initialize(&argc, argv); + benchmark::RunSpecifiedBenchmarks(); +} diff -Nru darktable-4.4.2/src/external/rawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp darktable-4.6.1/src/external/rawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp --- darktable-4.4.2/src/external/rawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/bench/librawspeed/bitstreams/BitStreamerJPEGBenchmark.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,263 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2024 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "bitstreams/BitStreamerJPEG.h" +#include "adt/Array1DRef.h" +#include "adt/Casts.h" +#include "adt/DefaultInitAllocatorAdaptor.h" +#include "adt/Invariant.h" +#include "adt/Optional.h" +#include "bench/Common.h" +#include "bitstreams/BitStreamerMSB.h" +#include "common/Common.h" +#include <array> +#include <cassert> +#include <cstddef> +#include <cstdint> +#include <memory> +#include <numeric> +#include <random> +#include <vector> +#include <benchmark/benchmark.h> + +#ifndef NDEBUG +#include <limits> +#endif + +namespace rawspeed { + +namespace { + +// i'th element is the frequency with which +// the byte `i` is found in an average JPEG byte stream. +// +// NOTE: that `a[0xFF]` means you need to refer to the next table! +constexpr std::array<uint64_t, 256> ByteFrequency = { + 10493257, 10784784, 11552191, 11893555, 12613144, 13142898, 12997374, + 13899275, 12767738, 13768690, 14067759, 14319807, 14298384, 14549654, + 14787598, 16204120, 12564638, 14704327, 15132777, 14772038, 14721008, + 16318288, 16165051, 16084372, 14589355, 15975372, 15789517, 16176233, + 17103573, 16389861, 17178739, 19566197, 12966690, 14939127, 15610587, + 16752954, 17041360, 16836032, 16076146, 17059902, 14578757, 16091877, + 16727621, 18080916, 17798565, 17160354, 16884990, 18016216, 13728953, + 16699694, 17247145, 16535935, 15410093, 17790033, 17505607, 17062629, + 16204122, 18729168, 17299562, 16769498, 18232031, 18145938, 19781670, + 21534495, 11331827, 14291644, 14185576, 15783900, 14628539, 16752046, + 16118713, 18395146, 15623136, 17719214, 16530868, 17731977, 15769435, + 17046218, 16765658, 18737070, 13228107, 16456840, 16329879, 16995821, + 15738285, 18833989, 18575650, 19748780, 17437816, 19175677, 17737907, + 18686908, 17947791, 18231973, 18445785, 21014291, 13778765, 16390784, + 16945784, 18735616, 17800539, 18504439, 17162043, 18246945, 14580463, + 17138374, 17246435, 19567468, 18000143, 18165063, 17059260, 18333885, + 14699997, 18157635, 18494395, 18681789, 16039637, 18755071, 17705487, + 16502854, 16349978, 19475294, 18135626, 18404224, 19367350, 24366361, + 20257637, 22731340, 10784899, 12672656, 14185602, 15004113, 13933378, + 15252018, 15855022, 17094546, 14503399, 16136927, 16968789, 17924243, + 16261588, 17408400, 18680524, 20524483, 15332344, 17670025, 18742651, + 18371102, 15933041, 18490712, 18796265, 18818308, 15835711, 17808890, + 17416555, 18385523, 17848445, 17685419, 19183656, 21453184, 12650093, + 15036791, 15765357, 17764334, 16308312, 17422027, 16753335, 18445554, + 15113106, 17233138, 17846593, 20237681, 18808801, 19265405, 19304091, + 21445005, 16435437, 18992248, 19056275, 18871173, 16314514, 19007013, + 18667634, 18326497, 16647767, 18446563, 17500274, 17437242, 17638057, + 18434446, 24246779, 21500863, 12125753, 14904989, 14975537, 17166842, + 16018526, 18142274, 17551177, 20836099, 17376424, 19394242, 17909585, + 19873129, 17863152, 18763409, 18746276, 21901307, 14468289, 17073465, + 17390849, 18194814, 16602085, 19238700, 19504566, 21024483, 17986684, + 18759080, 17590236, 18305128, 17151973, 16704918, 17577197, 24350469, + 13246295, 15768268, 17229315, 19654834, 18978722, 19267508, 19459062, + 22426506, 16951164, 18450043, 18602860, 20972912, 18743890, 17732170, + 16789701, 23607383, 14314573, 18700611, 19757997, 23215145, 19361294, + 20804837, 18763614, 23882738, 16663983, 23464670, 22040143, 24327009, + 20768026, 21851961, 22533160, 22588801}; + +// i'th element is the frequency with which a sequence `0xFF00` consecutively +// repeated `i` times is found in an average JPEG byte stream. +constexpr std::array<uint64_t, 4> NumConsecutive0xFF00Frequency = {0, 22513031, + 75445, 325}; + +struct JPEGStuffedByteStreamGenerator final { + std::vector<uint8_t, + DefaultInitAllocatorAdaptor<uint8_t, std::allocator<uint8_t>>> + dataStorage; + int64_t numBytesGenerated; + + [[nodiscard]] Array1DRef<const uint8_t> getInput() const { + return {dataStorage.data(), implicit_cast<int>(dataStorage.size())}; + } + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpragmas" +#pragma GCC diagnostic ignored "-Wunknown-warning-option" +#pragma GCC diagnostic ignored "-Wunknown-pragmas" +#pragma GCC diagnostic ignored "-Wframe-larger-than=" +#pragma GCC diagnostic ignored "-Wstack-usage=" + __attribute__((noinline)) explicit JPEGStuffedByteStreamGenerator( + const int64_t numBytesMax) { + invariant(numBytesMax > 0); + const auto expectedOverhead = roundUpDivision(numBytesMax, 100); // <=1% + dataStorage.reserve(implicit_cast<size_t>(numBytesMax + expectedOverhead)); + + // Here we only need to differentiate between a normal byte, + // and an 0xFF00 sequence, so clump together non-0xFF frequencies. + // This makes distribution sampling -40% faster. + constexpr uint64_t TotalWeight = std::accumulate( + ByteFrequency.begin(), ByteFrequency.end(), uint64_t(0)); + constexpr uint64_t ControlSequenceStartWeight = ByteFrequency.back(); + + std::bernoulli_distribution controlSequenceStartDistribution( + implicit_cast<double>(ControlSequenceStartWeight) / + implicit_cast<double>(TotalWeight)); + std::discrete_distribution<uint8_t> numConsecutive0xFF00Distribution( + NumConsecutive0xFF00Frequency.begin(), + NumConsecutive0xFF00Frequency.end()); + + std::random_device rd; + std::mt19937_64 gen(rd()); + + for (numBytesGenerated = 0; numBytesGenerated < numBytesMax;) { + bool isNormalByte = !controlSequenceStartDistribution(gen); + if (isNormalByte) { + dataStorage.emplace_back(0x00); + ++numBytesGenerated; + } else { + const int len = numConsecutive0xFF00Distribution(gen); + invariant(len > 0); + for (int i = 0; i != len; ++i) { + dataStorage.emplace_back(0xFF); + dataStorage.emplace_back(0x00); // This is a no-op stuffing byte. + } + numBytesGenerated += len; + } + } + invariant(numBytesGenerated >= numBytesMax); + } +#pragma GCC diagnostic pop +}; + +struct JPEGUnstuffedByteStreamGenerator final { + std::vector<uint8_t, + DefaultInitAllocatorAdaptor<uint8_t, std::allocator<uint8_t>>> + dataStorage; + int64_t numBytesGenerated; + + [[nodiscard]] Array1DRef<const uint8_t> getInput() const { + return {dataStorage.data(), implicit_cast<int>(dataStorage.size())}; + } + + __attribute__((noinline)) explicit JPEGUnstuffedByteStreamGenerator( + const int64_t numBytesMax) + : numBytesGenerated(numBytesMax) { + invariant(numBytesGenerated > 0); + dataStorage.resize(implicit_cast<size_t>(numBytesGenerated), 0x00); + } +}; + +template <typename T> void BM(benchmark::State& state, bool Stuffed) { + int64_t numBytes = state.range(0); + assert(numBytes > 0); + assert(numBytes <= std::numeric_limits<int>::max()); + + Optional<JPEGStuffedByteStreamGenerator> genStuffed; + Optional<JPEGUnstuffedByteStreamGenerator> genUnstuffed; + Optional<Array1DRef<const uint8_t>> input; + if (Stuffed) { + genStuffed.emplace(numBytes); + numBytes = genStuffed->numBytesGenerated; + input = genStuffed->getInput(); + } else { + genUnstuffed.emplace(numBytes); + numBytes = genUnstuffed->numBytesGenerated; + input = genUnstuffed->getInput(); + } + benchmark::DoNotOptimize(input->begin()); + + for (auto _ : state) { + T bs(*input); + + constexpr int MaxGetBits = 32; + int processedBytes = 0; + for (processedBytes = 0; processedBytes != numBytes; + processedBytes += MaxGetBits / 8) { + uint32_t bits = bs.getBits(MaxGetBits); + benchmark::DoNotOptimize(bits); + } + invariant(numBytes == processedBytes); + } + + state.SetComplexityN(numBytes); + state.counters.insert({ + {"Throughput", + benchmark::Counter(sizeof(uint8_t) * state.complexity_length_n(), + benchmark::Counter::Flags::kIsIterationInvariantRate, + benchmark::Counter::kIs1024)}, + {"Latency", + benchmark::Counter(sizeof(uint8_t) * state.complexity_length_n(), + benchmark::Counter::Flags::kIsIterationInvariantRate | + benchmark::Counter::Flags::kInvert, + benchmark::Counter::kIs1000)}, + }); +} + +void CustomArguments(benchmark::internal::Benchmark* b) { + b->Unit(benchmark::kMicrosecond); + b->RangeMultiplier(2); + + static constexpr int L1dByteSize = 32U * (1U << 10U); + static constexpr int L2dByteSize = 512U * (1U << 10U); + static constexpr int MaxBytesOptimal = L2dByteSize * (1U << 5); + + if (benchmarkDryRun()) { + b->Arg(L1dByteSize); + return; + } + + // NOLINTNEXTLINE(readability-simplify-boolean-expr) + if constexpr ((true)) { + b->Arg(MaxBytesOptimal); + } else { + b->Range(8, MaxBytesOptimal * (1U << 2)); + b->Complexity(benchmark::oN); + } +} + +#ifndef BENCHMARK_TEMPLATE1_CAPTURE +// NOLINTNEXTLINE(cppcoreguidelines-macro-usage) +#define BENCHMARK_TEMPLATE1_CAPTURE(func, a, test_case_name, ...) \ + BENCHMARK_PRIVATE_DECLARE(func) = \ + (::benchmark::internal::RegisterBenchmarkInternal( \ + new ::benchmark::internal::FunctionBenchmark( \ + #func "<" #a ">" \ + "/" #test_case_name, \ + [](::benchmark::State& st) { func<a>(st, __VA_ARGS__); }))) +#endif // BENCHMARK_TEMPLATE1_CAPTURE + +BENCHMARK_TEMPLATE1_CAPTURE(BM, BitStreamerJPEG, Stuffed, true) + ->Apply(CustomArguments); +BENCHMARK_TEMPLATE1_CAPTURE(BM, BitStreamerJPEG, Unstuffed, false) + ->Apply(CustomArguments); +BENCHMARK_TEMPLATE1_CAPTURE(BM, BitStreamerMSB, Unstuffed, false) + ->Apply(CustomArguments); + +} // namespace + +} // namespace rawspeed + +BENCHMARK_MAIN(); diff -Nru darktable-4.4.2/src/external/rawspeed/bench/librawspeed/bitstreams/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/bench/librawspeed/bitstreams/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/bench/librawspeed/bitstreams/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/bench/librawspeed/bitstreams/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,8 @@ +FILE(GLOB RAWSPEED_BENCHS_SOURCES + "BitStreamerJPEGBenchmark.cpp" + "BitStreamerBenchmark.cpp" +) + +foreach(SRC ${RAWSPEED_BENCHS_SOURCES}) + add_rs_bench("${SRC}") +endforeach() diff -Nru darktable-4.4.2/src/external/rawspeed/bench/librawspeed/common/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/bench/librawspeed/common/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/bench/librawspeed/common/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/bench/librawspeed/common/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,7 @@ +FILE(GLOB RAWSPEED_BENCHS_SOURCES + "CommonBenchmark.cpp" +) + +foreach(SRC ${RAWSPEED_BENCHS_SOURCES}) + add_rs_bench("${SRC}") +endforeach() diff -Nru darktable-4.4.2/src/external/rawspeed/bench/librawspeed/common/CommonBenchmark.cpp darktable-4.6.1/src/external/rawspeed/bench/librawspeed/common/CommonBenchmark.cpp --- darktable-4.4.2/src/external/rawspeed/bench/librawspeed/common/CommonBenchmark.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/bench/librawspeed/common/CommonBenchmark.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,101 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2023 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "bench/Common.h" +#include "adt/Point.h" +#include "common/Common.h" +#include <cstddef> +#include <cstdint> +#include <vector> +#include <benchmark/benchmark.h> + +using rawspeed::copyPixels; +using rawspeed::iPoint2D; + +namespace { + +void BM_CopyPixels(benchmark::State& state, bool padddedRows) { + iPoint2D dims = areaToRectangle(state.range(0), {3, 2}); + + const int width = dims.x; + const int height = dims.y; + + int dstPitch = dims.x; + int srcPitch = dims.x; + + if (padddedRows) { + dstPitch *= 2; + srcPitch *= 2; + } + + std::vector<uint8_t> dst(static_cast<size_t>(dstPitch) * height, uint8_t(0)); + std::vector<uint8_t> src(static_cast<size_t>(srcPitch) * height, uint8_t(0)); + + for (auto _ : state) { + copyPixels(reinterpret_cast<std::byte*>(&(dst[0])), dstPitch, + reinterpret_cast<const std::byte*>(&(src[0])), srcPitch, width, + height); + } + + state.SetComplexityN(dims.area()); + state.counters.insert( + {{"Bytes", + benchmark::Counter(sizeof(uint8_t) * dims.area(), + benchmark::Counter::Flags::kIsIterationInvariantRate, + benchmark::Counter::kIs1024)}}); +} + +void BM_CopyPixels2DContiguous(benchmark::State& state) { + BM_CopyPixels(state, /*padddedRows=*/false); +} + +void BM_CopyPixels2DStrided(benchmark::State& state) { + BM_CopyPixels(state, /*padddedRows=*/true); +} + +inline void CustomArguments(benchmark::internal::Benchmark* b) { + b->MeasureProcessCPUTime(); + b->UseRealTime(); + b->Unit(benchmark::kMicrosecond); + + static constexpr int L2dByteSize = 512U * (1U << 10U); + static constexpr int L2dNPixels = L2dByteSize / 2; + static constexpr int MaxPixelsOptimal = (1 << 5) * L2dNPixels; + + if (benchmarkDryRun()) { + b->Arg(L2dNPixels); + return; + } + + b->RangeMultiplier(2); + // NOLINTNEXTLINE(readability-simplify-boolean-expr) + if constexpr ((false)) { + b->Arg(MaxPixelsOptimal); + } else { + b->Range(1, 2 * MaxPixelsOptimal)->Complexity(benchmark::oN); + } +} + +BENCHMARK(BM_CopyPixels2DContiguous)->Apply(CustomArguments); +BENCHMARK(BM_CopyPixels2DStrided)->Apply(CustomArguments); + +} // namespace + +BENCHMARK_MAIN(); diff -Nru darktable-4.4.2/src/external/rawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp darktable-4.6.1/src/external/rawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp --- darktable-4.4.2/src/external/rawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/bench/librawspeed/decompressors/DeflateDecompressorBenchmark.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,35 +18,38 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "decompressors/DeflateDecompressor.h" // for DeflateDecompressor -#include "adt/Point.h" // for iPoint2D -#include "bench/Common.h" // for areaToRectangle, benc... -#include "common/Common.h" // for isAligned -#include "common/RawImage.h" // for RawImage, RawImageData -#include "io/Buffer.h" // for Buffer -#include <algorithm> // for fill_n -#include <cassert> // for assert -#include <cstddef> // for size_t -#include <cstdint> // for uint8_t -#include <memory> // for unique_ptr -#include <type_traits> // for integral_constant -#include <vector> // for vector -#include <zlib.h> // for compress, compressBound -#include <benchmark/benchmark.h> // for State, Benchmark, BEN... +#include "decompressors/DeflateDecompressor.h" +#include "adt/Casts.h" +#include "adt/Point.h" +#include "bench/Common.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "io/Buffer.h" +#include <cassert> +#include <cstddef> +#include <cstdint> +#include <memory> +#include <type_traits> +#include <vector> +#include <zconf.h> +#include <zlib.h> +#include <benchmark/benchmark.h> #ifndef NDEBUG -#include <limits> // for numeric_limits +#include <limits> #endif using rawspeed::Buffer; using rawspeed::DeflateDecompressor; +namespace { + template <size_t N> using BPS = std::integral_constant<size_t, N>; template <int N> using Pf = std::integral_constant<int, N>; template <typename BPS> -static std::vector<uint8_t> compressChunk(const rawspeed::RawImage& mRaw, - uLong* bufSize) { +std::vector<uint8_t> compressChunk(const rawspeed::RawImage& mRaw, + uLong* bufSize) { static_assert(BPS::value > 0, "bad bps"); static_assert(rawspeed::isAligned(BPS::value, 8), "not byte count"); @@ -72,7 +75,7 @@ } template <typename BPS, typename Pf> -static inline void BM_DeflateDecompressor(benchmark::State& state) { +inline void BM_DeflateDecompressor(benchmark::State& state) { static_assert(BPS::value > 0, "bad bps"); static_assert(rawspeed::isAligned(BPS::value, 8), "not byte count"); @@ -83,7 +86,7 @@ const std::vector<uint8_t> cBuf = compressChunk<BPS>(mRaw, &cBufSize); assert(cBufSize > 0); - Buffer buf(cBuf.data(), cBufSize); + Buffer buf(cBuf.data(), rawspeed::implicit_cast<Buffer::size_type>(cBufSize)); assert(buf.getSize() == cBufSize); int predictor = 0; @@ -115,7 +118,7 @@ state.SetBytesProcessed(BPS::value * state.items_processed() / 8); } -static inline void CustomArgs(benchmark::internal::Benchmark* b) { +inline void CustomArgs(benchmark::internal::Benchmark* b) { if (benchmarkDryRun()) { static constexpr int L2dByteSize = 512U * (1U << 10U); b->Arg((L2dByteSize / (32 / 8)) / 4); @@ -123,12 +126,13 @@ } b->RangeMultiplier(2); -// FIXME: appears to not like 1GPix+ buffers -#if 1 - b->Arg(128 << 20); -#else - b->Range(1, 1023 << 20)->Complexity(benchmark::oN); -#endif + // FIXME: appears to not like 1GPix+ buffers + // NOLINTNEXTLINE(readability-simplify-boolean-expr) + if constexpr ((true)) { + b->Arg(128 << 20); + } else { + b->Range(1, 1023 << 20)->Complexity(benchmark::oN); + } b->Unit(benchmark::kMillisecond); } @@ -139,4 +143,6 @@ GEN_PSS() +} // namespace + BENCHMARK_MAIN(); diff -Nru darktable-4.4.2/src/external/rawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp darktable-4.6.1/src/external/rawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp --- darktable-4.4.2/src/external/rawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/bench/librawspeed/decompressors/UncompressedDecompressorBenchmark.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,43 +18,47 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "decompressors/UncompressedDecompressor.h" // for UncompressedDeco... -#include "adt/Point.h" // for iPoint2D, iRecta... -#include "bench/Common.h" // for areaToRectangle -#include "common/Common.h" // for BitOrder, BitOrd... -#include "common/RawImage.h" // for RawImageType -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endi... -#include <algorithm> // for fill_n -#include <cassert> // for assert -#include <cstddef> // for size_t -#include <cstdint> // for uint16_t, uint8_t -#include <numeric> // for lcm -#include <type_traits> // for integral_constant -#include <vector> // for vector -#include <benchmark/benchmark.h> // for State, Benchmark +#include "decompressors/UncompressedDecompressor.h" +#include "adt/Casts.h" +#include "adt/Point.h" +#include "bench/Common.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstddef> +#include <cstdint> +#include <numeric> +#include <type_traits> +#include <vector> +#include <benchmark/benchmark.h> using rawspeed::BitOrder; using rawspeed::Buffer; using rawspeed::UncompressedDecompressor; +namespace { + template <size_t N> using BPS = std::integral_constant<size_t, N>; template <typename T, BitOrder BO, typename BPS> -static inline void BM_UncompressedDecompressor(benchmark::State& state) { +inline void BM_UncompressedDecompressor(benchmark::State& state) { static_assert(BPS::value > 0, "bad bps"); auto dim = areaToRectangle(state.range(0)); int inputPitchBits = BPS::value * dim.x; - inputPitchBits = rawspeed::roundUp(inputPitchBits, std::lcm(8, BPS::value)); + inputPitchBits = rawspeed::implicit_cast<int>( + rawspeed::roundUp(inputPitchBits, std::lcm(8, BPS::value))); assert(inputPitchBits % 8 == 0); int inputPitchBytes = inputPitchBits / 8; assert(inputPitchBits % BPS::value == 0); dim.x = inputPitchBits / BPS::value; - int packedLength = rawspeed::roundUp(inputPitchBytes * dim.y, 4); + auto packedLength = rawspeed::implicit_cast<int>( + rawspeed::roundUp(inputPitchBytes * dim.y, 4)); const std::vector<uint8_t> buf(packedLength); const rawspeed::ByteStream bs(rawspeed::DataBuffer( Buffer(buf.data(), packedLength), rawspeed::Endianness::little)); @@ -77,7 +81,7 @@ state.SetBytesProcessed(BPS::value * state.items_processed() / 8); } -static inline void CustomArgs(benchmark::internal::Benchmark* b) { +inline void CustomArgs(benchmark::internal::Benchmark* b) { b->Unit(benchmark::kMicrosecond); if (benchmarkDryRun()) { @@ -128,4 +132,6 @@ GEN_U(BitOrder::MSB16) GEN_U(BitOrder::MSB32) +} // namespace + BENCHMARK_MAIN(); diff -Nru darktable-4.4.2/src/external/rawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp darktable-4.6.1/src/external/rawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp --- darktable-4.4.2/src/external/rawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/bench/librawspeed/interpolators/Cr2sRawInterpolatorBenchmark.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,17 +18,17 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "interpolators/Cr2sRawInterpolator.h" // for Cr2sRawInterpolator -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Point.h" // for iPoint2D -#include "bench/Common.h" // for areaToRectangle -#include "common/Common.h" // for roundUp -#include "common/RawImage.h" // for RawImage, RawImageData -#include <array> // for array -#include <cstdint> // for uint16_t -#include <tuple> // for array -#include <type_traits> // for integral_constant -#include <benchmark/benchmark.h> // for State, Benchmark, Cou... +#include "interpolators/Cr2sRawInterpolator.h" +#include "adt/Array2DRef.h" +#include "adt/Casts.h" +#include "adt/Point.h" +#include "bench/Common.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include <array> +#include <cstdint> +#include <type_traits> +#include <benchmark/benchmark.h> using rawspeed::Cr2sRawInterpolator; using rawspeed::iPoint2D; @@ -38,18 +38,22 @@ using std::array; using std::integral_constant; +namespace { + template <int N> using v = integral_constant<int, N>; template <const iPoint2D& subSampling, typename version> -static inline void BM_Cr2sRawInterpolator(benchmark::State& state) { +inline void BM_Cr2sRawInterpolator(benchmark::State& state) { static const array<int, 3> sraw_coeffs = {{999, 1000, 1001}}; static const int hue = 1269; iPoint2D interpolatedDims = areaToRectangle(state.range(0), {3, 2}); - interpolatedDims.x = roundUp(interpolatedDims.x, 6); - if (subSampling.y == 2) - interpolatedDims.x = roundUp(interpolatedDims.x, 4); + interpolatedDims.x = + rawspeed::implicit_cast<int>(roundUp(interpolatedDims.x, 6)); + if constexpr (subSampling.y == 2) + interpolatedDims.x = + rawspeed::implicit_cast<int>(roundUp(interpolatedDims.x, 4)); iPoint2D subsampledDim = interpolatedDims; subsampledDim.x /= subSampling.x; @@ -80,7 +84,7 @@ benchmark::Counter::kIs1024)}}); } -static inline void CustomArguments(benchmark::internal::Benchmark* b) { +inline void CustomArguments(benchmark::internal::Benchmark* b) { b->MeasureProcessCPUTime(); b->UseRealTime(); @@ -91,21 +95,24 @@ } b->RangeMultiplier(2); -#if 1 - b->Arg(2 * 3 * 2 * 1'000'000); -#else - b->Range(1, 256 << 20)->Complexity(benchmark::oN); -#endif + // NOLINTNEXTLINE(readability-simplify-boolean-expr) + if constexpr ((true)) { + b->Arg(2 * 3 * 2 * 1'000'000); + } else { + b->Range(1, 256 << 20)->Complexity(benchmark::oN); + } b->Unit(benchmark::kMillisecond); } -static constexpr const iPoint2D S422(2, 1); +constexpr const iPoint2D S422(2, 1); BENCHMARK_TEMPLATE(BM_Cr2sRawInterpolator, S422, v<0>)->Apply(CustomArguments); BENCHMARK_TEMPLATE(BM_Cr2sRawInterpolator, S422, v<1>)->Apply(CustomArguments); BENCHMARK_TEMPLATE(BM_Cr2sRawInterpolator, S422, v<2>)->Apply(CustomArguments); -static constexpr const iPoint2D S420(2, 2); +constexpr const iPoint2D S420(2, 2); BENCHMARK_TEMPLATE(BM_Cr2sRawInterpolator, S420, v<1>)->Apply(CustomArguments); BENCHMARK_TEMPLATE(BM_Cr2sRawInterpolator, S420, v<2>)->Apply(CustomArguments); +} // namespace + BENCHMARK_MAIN(); diff -Nru darktable-4.4.2/src/external/rawspeed/bench/librawspeed/io/BitStreamBenchmark.cpp darktable-4.6.1/src/external/rawspeed/bench/librawspeed/io/BitStreamBenchmark.cpp --- darktable-4.4.2/src/external/rawspeed/bench/librawspeed/io/BitStreamBenchmark.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/bench/librawspeed/io/BitStreamBenchmark.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,145 +0,0 @@ -/* - RawSpeed - RAW file decoder. - - Copyright (C) 2017 Roman Lebedev - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include "io/BitStream.h" // for BitStream -#include "bench/Common.h" // for benchmarkDryRun -#include "io/BitPumpJPEG.h" // for BitPumpJPEG, BitStream<>::fillCache -#include "io/BitPumpLSB.h" // for BitPumpLSB, BitStream<>::fillCache -#include "io/BitPumpMSB.h" // for BitPumpMSB, BitStream<>::fillCache -#include "io/BitPumpMSB16.h" // for BitPumpMSB16, BitStream<>::fillCache -#include "io/BitPumpMSB32.h" // for BitPumpMSB32, BitStream<>::fillCache -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::unknown -#include <algorithm> // for fill_n -#include <cassert> // for assert -#include <cstddef> // for size_t -#include <cstdint> // for uint8_t -#include <string> // for string, to_string, allocator -#include <vector> // for vector -#include <benchmark/benchmark.h> // for State, Benchmark, Initialize, RunSp... - -using rawspeed::BitPumpJPEG; -using rawspeed::BitPumpLSB; -using rawspeed::BitPumpMSB; -using rawspeed::BitPumpMSB16; -using rawspeed::BitPumpMSB32; -using rawspeed::Endianness; - -static constexpr const size_t STEP_MAX = 32; - -template <typename Pump> -static inline void BM_BitStream(benchmark::State& state, unsigned int fillSize, - unsigned int Step) { - assert(state.range(0) > 0); - assert((size_t)state.range(0) <= - std::numeric_limits<rawspeed::Buffer::size_type>::max()); - - assert(fillSize > 0); - assert(fillSize <= STEP_MAX); - - assert(Step > 0); - assert(Step <= STEP_MAX); - - assert(Step <= fillSize); - - assert((Step == 1) || rawspeed::isAligned(Step, 2)); - assert((fillSize == 1) || rawspeed::isAligned(fillSize, 2)); - - const std::vector<uint8_t> storage(state.range(0)); - const rawspeed::Buffer b(storage.data(), state.range(0)); - assert(b.getSize() > 0); - assert(b.getSize() == (size_t)state.range(0)); - - const rawspeed::DataBuffer db(b, Endianness::unknown); - const rawspeed::ByteStream bs(db); - - size_t processedBits = 0; - for (auto _ : state) { - Pump pump(bs); - - for (processedBits = 0; processedBits <= 8 * b.getSize();) { - pump.fill(fillSize); - - // NOTE: you may want to change the callee here - for (auto i = 0U; i < fillSize; i += Step) - pump.skipBitsNoFill(Step); - - processedBits += fillSize; - } - } - - assert(processedBits > fillSize); - processedBits -= fillSize; - - assert(rawspeed::roundUp(8 * b.getSize(), fillSize) == processedBits); - - state.SetComplexityN(processedBits / 8); - state.SetItemsProcessed(processedBits * state.iterations()); - state.SetBytesProcessed(state.items_processed() / 8); -} - -static inline void CustomArguments(benchmark::internal::Benchmark* b) { - if (benchmarkDryRun()) { - b->Arg((512U * (1U << 10U)) / 10); - return; - } - - b->RangeMultiplier(2); -#if 1 - b->Arg(256 << 20); -#else - b->Range(1, 1024 << 20); - b->Complexity(benchmark::oN); -#endif - b->Unit(benchmark::kMillisecond); -} - -template <typename PUMP> void registerPump(const char* pumpName) { - for (size_t i = 1; i <= STEP_MAX; i *= 2) { - for (size_t j = 1; j <= i && j <= STEP_MAX; j *= 2) { - std::string name("BM_BitStream<"); - name += "Spec<"; - name += pumpName; - name += ">, Fill<"; - name += std::to_string(i); - name += ">, Step<"; - name += std::to_string(j); - name += ">>"; - - const auto Fn = BM_BitStream<PUMP>; - auto* b = benchmark::RegisterBenchmark(name, Fn, i, j); - b->Apply(CustomArguments); - } - } -} - -#define REGISTER_PUMP(PUMP) registerPump<PUMP>(#PUMP) - -int main(int argc, char** argv) { - REGISTER_PUMP(BitPumpLSB); - REGISTER_PUMP(BitPumpMSB); - REGISTER_PUMP(BitPumpMSB16); - REGISTER_PUMP(BitPumpMSB32); - REGISTER_PUMP(BitPumpJPEG); - - benchmark::Initialize(&argc, argv); - benchmark::RunSpecifiedBenchmarks(); -} diff -Nru darktable-4.4.2/src/external/rawspeed/bench/librawspeed/io/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/bench/librawspeed/io/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/bench/librawspeed/io/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/bench/librawspeed/io/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -FILE(GLOB RAWSPEED_BENCHS_SOURCES - "BitStreamBenchmark.cpp" -) - -foreach(SRC ${RAWSPEED_BENCHS_SOURCES}) - add_rs_bench("${SRC}") -endforeach() diff -Nru darktable-4.4.2/src/external/rawspeed/bench/librawspeed/metadata/CameraMetaDataBenchmark.cpp darktable-4.6.1/src/external/rawspeed/bench/librawspeed/metadata/CameraMetaDataBenchmark.cpp --- darktable-4.4.2/src/external/rawspeed/bench/librawspeed/metadata/CameraMetaDataBenchmark.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/bench/librawspeed/metadata/CameraMetaDataBenchmark.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,19 +18,21 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "rawspeedconfig.h" // for HAVE_PUGIXML, RAWSPEED_SOURCE_DIR -#include "metadata/CameraMetaData.h" // for CameraMetaData -#include <pugixml.hpp> // for xml_document, xml_parse_result -#include <benchmark/benchmark.h> // for DoNotOptimize, State, State::St... +#include "rawspeedconfig.h" +#include "metadata/CameraMetaData.h" +#include <pugixml.hpp> +#include <benchmark/benchmark.h> #ifndef HAVE_PUGIXML #error This benchmark requires to be built with pugixml being present. #endif -static constexpr const char* const CAMERASXML = +namespace { + +constexpr const char* const CAMERASXML = RAWSPEED_SOURCE_DIR "/data/cameras.xml"; -static void BM_pugixml_load_cameras_xml(benchmark::State& state) { +void BM_pugixml_load_cameras_xml(benchmark::State& state) { for (auto _ : state) { pugi::xml_document doc; @@ -47,7 +49,7 @@ } BENCHMARK(BM_pugixml_load_cameras_xml)->Unit(benchmark::kMicrosecond); -static void BM_CameraMetaData(benchmark::State& state) { +void BM_CameraMetaData(benchmark::State& state) { for (auto _ : state) { rawspeed::CameraMetaData metadata(CAMERASXML); benchmark::DoNotOptimize(metadata); @@ -55,4 +57,6 @@ } BENCHMARK(BM_CameraMetaData)->Unit(benchmark::kMicrosecond); +} // namespace + BENCHMARK_MAIN(); diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/Modules/CheckJPEGSymbols.cmake darktable-4.6.1/src/external/rawspeed/cmake/Modules/CheckJPEGSymbols.cmake --- darktable-4.4.2/src/external/rawspeed/cmake/Modules/CheckJPEGSymbols.cmake 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/Modules/CheckJPEGSymbols.cmake 2024-02-14 22:08:05.000000000 +0000 @@ -6,6 +6,7 @@ # Workaround cmake-3.25 bug. set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Wno-newline-eof") +set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Wno-old-style-cast") set(CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES_SAVE};${JPEG_INCLUDE_DIRS}") set(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES_SAVE};${JPEG_LIBRARIES}") diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/Modules/CheckZLIB.cmake darktable-4.6.1/src/external/rawspeed/cmake/Modules/CheckZLIB.cmake --- darktable-4.4.2/src/external/rawspeed/cmake/Modules/CheckZLIB.cmake 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/Modules/CheckZLIB.cmake 2024-02-14 22:08:05.000000000 +0000 @@ -11,7 +11,10 @@ set(CMAKE_REQUIRED_FLAGS_SAVE "${CMAKE_REQUIRED_FLAGS}") # Workaround cmake-3.25 bug. +set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Wno-unknown-warning-option") set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Wno-newline-eof") +set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Wno-old-style-cast") +set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Wno-unsafe-buffer-usage") set(CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES_SAVE};${ZLIB_INCLUDE_DIRS}") diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/Modules/CpuMarch.cmake darktable-4.6.1/src/external/rawspeed/cmake/Modules/CpuMarch.cmake --- darktable-4.4.2/src/external/rawspeed/cmake/Modules/CpuMarch.cmake 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/Modules/CpuMarch.cmake 2024-02-14 22:08:05.000000000 +0000 @@ -1,37 +1,41 @@ include(CheckCXXCompilerFlag) -if(NOT BINARY_PACKAGE_BUILD) - message(STATUS "Checking for -march=native support") - CHECK_CXX_COMPILER_FLAG("-march=native" MARCHNATIVE) - if(MARCHNATIVE) - message(STATUS "Checking for -march=native support - works") - set(MARCH "-march=native") - else() - message(STATUS "Checking for -mtune=native support") - CHECK_CXX_COMPILER_FLAG("-mtune=native" MTUNENATIVE) - if(MTUNENATIVE) - message(STATUS "Checking for -mtune=native support - works") - set(MARCH "-mtune=native") +if(NOT DEFINED RAWSPEED_MARCH) + if(NOT BINARY_PACKAGE_BUILD) + message(STATUS "Checking for -march=native support") + CHECK_CXX_COMPILER_FLAG("-march=native" RAWSPEED_MARCHNATIVE) + if(RAWSPEED_MARCHNATIVE) + message(STATUS "Checking for -march=native support - works") + set(RAWSPEED_MARCH "-march=native") else() - message(STATUS "Checking for -mtune=generic support") - CHECK_CXX_COMPILER_FLAG("-mtune=generic" MTUNEGENERIC) - if(MTUNEGENERIC) - message(STATUS "Checking for -mtune=generic support - works") - set(MARCH "-mtune=generic") + message(STATUS "Checking for -mtune=native support") + CHECK_CXX_COMPILER_FLAG("-mtune=native" RAWSPEED_MTUNENATIVE) + if(RAWSPEED_MTUNENATIVE) + message(STATUS "Checking for -mtune=native support - works") + set(RAWSPEED_MARCH "-mtune=native") else() - message(WARNING "Do not know which -march/-mtune to pass! Resulting binaries may be broken!") + message(STATUS "Checking for -mtune=generic support") + CHECK_CXX_COMPILER_FLAG("-mtune=generic" RAWSPEED_MTUNEGENERIC) + if(RAWSPEED_MTUNEGENERIC) + message(STATUS "Checking for -mtune=generic support - works") + set(RAWSPEED_MARCH "-mtune=generic") + else() + message(WARNING "Do not know which -march/-mtune to pass! Resulting binaries may be broken!") + endif() endif() endif() - endif() -else() - message(STATUS "Checking for -mtune=generic support") - CHECK_CXX_COMPILER_FLAG("-mtune=generic" MTUNEGENERIC) - if(MTUNEGENERIC) - message(STATUS "Checking for -mtune=generic support - works") - set(MARCH "-mtune=generic") else() - message(WARNING "Do not know which -march/-mtune to pass! Resulting binaries may be broken!") + message(STATUS "Checking for -mtune=generic support") + CHECK_CXX_COMPILER_FLAG("-mtune=generic" RAWSPEED_MTUNEGENERIC) + if(RAWSPEED_MTUNEGENERIC) + message(STATUS "Checking for -mtune=generic support - works") + set(RAWSPEED_MARCH "-mtune=generic") + else() + message(WARNING "Do not know which -march/-mtune to pass! Resulting binaries may be broken!") + endif() endif() + + set(RAWSPEED_MARCH ${RAWSPEED_MARCH} CACHE INTERNAL "") endif() -ADD_DEFINITIONS(${MARCH}) +ADD_DEFINITIONS(${RAWSPEED_MARCH}) diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/Modules/FindLLVMClangTidy.cmake darktable-4.6.1/src/external/rawspeed/cmake/Modules/FindLLVMClangTidy.cmake --- darktable-4.4.2/src/external/rawspeed/cmake/Modules/FindLLVMClangTidy.cmake 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/Modules/FindLLVMClangTidy.cmake 2024-02-14 22:08:05.000000000 +0000 @@ -1,9 +1,18 @@ find_program(CLANGTIDY_PATH NAMES "$ENV{CLANG_TIDY}" clang-tidy) +if(CLANGTIDY_PATH) + execute_process(COMMAND "${CLANGTIDY_PATH}" --version OUTPUT_VARIABLE CLANG_TIDY_VERSION) + string(REGEX MATCH "(([0-9]+)\\.([0-9]+)\\.([0-9]+))" + CLANG_TIDY_VERSION ${CLANG_TIDY_VERSION}) + set(CLANG_TIDY_VERSION_MAJOR ${CMAKE_MATCH_2}) + set(CLANG_TIDY_VERSION_MINOR ${CMAKE_MATCH_3}) + set(CLANG_TIDY_VERSION_PATCH ${CMAKE_MATCH_4}) +endif() + include(FindPackageHandleStandardArgs) find_package_handle_standard_args(LLVMClangTidy - DEFAULT_MSG - CLANGTIDY_PATH) + REQUIRED_VARS CLANGTIDY_PATH CLANG_TIDY_VERSION + VERSION_VAR CLANG_TIDY_VERSION) SET_PACKAGE_PROPERTIES(LLVMClangTidy PROPERTIES URL https://clang.llvm.org/extra/clang-tidy/ diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/Modules/GoogleBenchmark.cmake darktable-4.6.1/src/external/rawspeed/cmake/Modules/GoogleBenchmark.cmake --- darktable-4.4.2/src/external/rawspeed/cmake/Modules/GoogleBenchmark.cmake 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/Modules/GoogleBenchmark.cmake 2024-02-14 22:08:05.000000000 +0000 @@ -1,25 +1,29 @@ -# Download and unpack googlebenchmark at configure time set(GOOGLEBENCHMARK_PREFIX "${RAWSPEED_BINARY_DIR}/src/external/googlebenchmark") -configure_file(${RAWSPEED_SOURCE_DIR}/cmake/Modules/GoogleBenchmark.cmake.in ${GOOGLEBENCHMARK_PREFIX}/CMakeLists.txt @ONLY) -execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" - -DALLOW_DOWNLOADING_GOOGLEBENCHMARK=${ALLOW_DOWNLOADING_GOOGLEBENCHMARK} -DGOOGLEBENCHMARK_PATH:PATH=${GOOGLEBENCHMARK_PATH} . - RESULT_VARIABLE result - WORKING_DIRECTORY ${GOOGLEBENCHMARK_PREFIX} -) +if(NOT EXISTS ${GOOGLEBENCHMARK_PREFIX}/googlebenchmark-paths.cmake OR + ${RAWSPEED_SOURCE_DIR}/cmake/Modules/GoogleBenchmark.cmake.in IS_NEWER_THAN ${GOOGLEBENCHMARK_PREFIX}/googlebenchmark-paths.cmake) + # Download and unpack googlebenchmark at configure time + configure_file(${RAWSPEED_SOURCE_DIR}/cmake/Modules/GoogleBenchmark.cmake.in ${GOOGLEBENCHMARK_PREFIX}/CMakeLists.txt @ONLY) -if(result) - message(FATAL_ERROR "CMake step for googlebenchmark failed: ${result}") -endif() + execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" + -DALLOW_DOWNLOADING_GOOGLEBENCHMARK=${ALLOW_DOWNLOADING_GOOGLEBENCHMARK} -DGOOGLEBENCHMARK_PATH:PATH=${GOOGLEBENCHMARK_PATH} . + RESULT_VARIABLE result + WORKING_DIRECTORY ${GOOGLEBENCHMARK_PREFIX} + ) + + if(result) + message(FATAL_ERROR "CMake step for googlebenchmark failed: ${result}") + endif() -execute_process( - COMMAND ${CMAKE_COMMAND} --build . - RESULT_VARIABLE result - WORKING_DIRECTORY ${GOOGLEBENCHMARK_PREFIX} -) + execute_process( + COMMAND ${CMAKE_COMMAND} --build . + RESULT_VARIABLE result + WORKING_DIRECTORY ${GOOGLEBENCHMARK_PREFIX} + ) -if(result) - message(FATAL_ERROR "Build step for googlebenchmark failed: ${result}") + if(result) + message(FATAL_ERROR "Build step for googlebenchmark failed: ${result}") + endif() endif() # shared googlebenchmark exibits various spurious failures. diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/Modules/GoogleBenchmark.cmake.in darktable-4.6.1/src/external/rawspeed/cmake/Modules/GoogleBenchmark.cmake.in --- darktable-4.4.2/src/external/rawspeed/cmake/Modules/GoogleBenchmark.cmake.in 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/Modules/GoogleBenchmark.cmake.in 2024-02-14 22:08:05.000000000 +0000 @@ -33,8 +33,8 @@ message(WARNING "Did not find GOOGLEBENCHMARK sources! Fetching from web...") ExternalProject_Add( googlebenchmark - URL https://github.com/google/benchmark/archive/v1.8.0.tar.gz - URL_HASH SHA512=ae8df163ca1319752a03497a259800dc33c71164e7def2feeadcf18d018c64eaf846ea2a562183e3d3cde0af58291de0b091ec6d9c025076f469c403b2ab0d51 + URL https://github.com/google/benchmark/archive/v1.8.2.tar.gz + URL_HASH SHA512=532f2cee66cf527ef4452a060cfdedba6417e5d8f72225d6bf50adf6422d9a769b0f54f48982b438fa9ced975ac47bcc5e62c3c23ce871b5cfdbcf9cc0d2b829 PREFIX "${CMAKE_BINARY_DIR}" STAMP_DIR "${CMAKE_BINARY_DIR}/stamp" DOWNLOAD_DIR "${CMAKE_BINARY_DIR}/download" diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/Modules/GoogleTest.cmake darktable-4.6.1/src/external/rawspeed/cmake/Modules/GoogleTest.cmake --- darktable-4.4.2/src/external/rawspeed/cmake/Modules/GoogleTest.cmake 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/Modules/GoogleTest.cmake 2024-02-14 22:08:05.000000000 +0000 @@ -1,25 +1,29 @@ -# Download and unpack googletest at configure time set(GOOGLETEST_PREFIX "${RAWSPEED_BINARY_DIR}/src/external/googletest") -configure_file(${RAWSPEED_SOURCE_DIR}/cmake/Modules/GoogleTest.cmake.in ${GOOGLETEST_PREFIX}/CMakeLists.txt @ONLY) -execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" - -DALLOW_DOWNLOADING_GOOGLETEST=${ALLOW_DOWNLOADING_GOOGLETEST} -DGOOGLETEST_PATH:PATH=${GOOGLETEST_PATH} . - RESULT_VARIABLE result - WORKING_DIRECTORY ${GOOGLETEST_PREFIX} -) - -if(result) - message(FATAL_ERROR "CMake step for googletest failed: ${result}") -endif() - -execute_process( - COMMAND ${CMAKE_COMMAND} --build . - RESULT_VARIABLE result - WORKING_DIRECTORY ${GOOGLETEST_PREFIX} -) - -if(result) - message(FATAL_ERROR "Build step for googletest failed: ${result}") +if(NOT EXISTS ${GOOGLETEST_PREFIX}/googletest-paths.cmake OR + ${RAWSPEED_SOURCE_DIR}/cmake/Modules/GoogleTest.cmake.in IS_NEWER_THAN ${GOOGLETEST_PREFIX}/googletest-paths.cmake) + # Download and unpack googletest at configure time + configure_file(${RAWSPEED_SOURCE_DIR}/cmake/Modules/GoogleTest.cmake.in ${GOOGLETEST_PREFIX}/CMakeLists.txt @ONLY) + + execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" + -DALLOW_DOWNLOADING_GOOGLETEST=${ALLOW_DOWNLOADING_GOOGLETEST} -DGOOGLETEST_PATH:PATH=${GOOGLETEST_PATH} . + RESULT_VARIABLE result + WORKING_DIRECTORY ${GOOGLETEST_PREFIX} + ) + + if(result) + message(FATAL_ERROR "CMake step for googletest failed: ${result}") + endif() + + execute_process( + COMMAND ${CMAKE_COMMAND} --build . + RESULT_VARIABLE result + WORKING_DIRECTORY ${GOOGLETEST_PREFIX} + ) + + if(result) + message(FATAL_ERROR "Build step for googletest failed: ${result}") + endif() endif() # shared googletest exibits various spurious failures. @@ -59,6 +63,10 @@ set_target_properties(gmock PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gmock,INTERFACE_INCLUDE_DIRECTORIES>) set_target_properties(gmock_main PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:gmock_main,INTERFACE_INCLUDE_DIRECTORIES>) +foreach(target gtest gtest_main gmock gmock_main) + target_compile_definitions(${target} PUBLIC -DGTEST_REMOVE_LEGACY_TEST_CASEAPI_) +endforeach() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS_SAVE}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_SAVE}") diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/Modules/GoogleTest.cmake.in darktable-4.6.1/src/external/rawspeed/cmake/Modules/GoogleTest.cmake.in --- darktable-4.4.2/src/external/rawspeed/cmake/Modules/GoogleTest.cmake.in 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/Modules/GoogleTest.cmake.in 2024-02-14 22:08:05.000000000 +0000 @@ -36,8 +36,8 @@ message(WARNING "Did not find Google Test sources! Fetching from web...") ExternalProject_Add( googletest - URL https://github.com/google/googletest/archive/release-1.8.1.tar.gz - URL_HASH SHA512=e6283c667558e1fd6e49fa96e52af0e415a3c8037afe1d28b7ff1ec4c2ef8f49beb70a9327b7fc77eb4052a58c4ccad8b5260ec90e4bceeac7a46ff59c4369d7 + URL https://github.com/google/googletest/archive/v1.13.0.tar.gz + URL_HASH SHA512=70c0cfb1b4147bdecb467ecb22ae5b5529eec0abc085763213a796b7cdbd81d1761d12b342060539b936fa54f345d33f060601544874d6213fdde79111fa813e PREFIX "${CMAKE_BINARY_DIR}" STAMP_DIR "${CMAKE_BINARY_DIR}/stamp" DOWNLOAD_DIR "${CMAKE_BINARY_DIR}/download" diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/Modules/LLVMOpenMP.cmake darktable-4.6.1/src/external/rawspeed/cmake/Modules/LLVMOpenMP.cmake --- darktable-4.4.2/src/external/rawspeed/cmake/Modules/LLVMOpenMP.cmake 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/Modules/LLVMOpenMP.cmake 2024-02-14 22:08:05.000000000 +0000 @@ -25,6 +25,9 @@ # We are building it separately from the LLVM itself. set(OPENMP_STANDALONE_BUILD ON CACHE BOOL "" FORCE) +# We never want offloading support. +set(OPENMP_ENABLE_LIBOMPTARGET OFF CACHE BOOL "" FORCE) + # let's insist on static library. set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE) set(LIBOMP_ENABLE_SHARED OFF CACHE BOOL "" FORCE) @@ -32,19 +35,14 @@ set(CMAKE_C_FLAGS_SAVE "${CMAKE_C_FLAGS}") set(CMAKE_CXX_FLAGS_SAVE "${CMAKE_CXX_FLAGS}") -set(CMAKE_C_FLAGS_SANITIZE_SAVE "${CMAKE_C_FLAGS_SANITIZE}") -set(CMAKE_CXX_FLAGS_SANITIZE_SAVE "${CMAKE_CXX_FLAGS_SANITIZE}") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w") -set(ubsan "-fsanitize-recover=undefined") -if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - set(ubsan "${ubsan} -fsanitize-recover=integer") -endif() +# libomp is UB-ridden. +set(no_sanitizers "-fno-sanitize=undefined,memory,integer") -SET(CMAKE_CXX_FLAGS_SANITIZE "${CMAKE_CXX_FLAGS_SANITIZE} ${ubsan}") -SET(CMAKE_C_FLAGS_SANITIZE "${CMAKE_C_FLAGS_SANITIZE} ${ubsan}") +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${no_sanitizers}") +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${no_sanitizers}") set(CMAKE_CXX_CLANG_TIDY_SAVE "${CMAKE_CXX_CLANG_TIDY}") set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE_SAVE "${CMAKE_CXX_INCLUDE_WHAT_YOU_USE}") @@ -62,11 +60,5 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS_SAVE}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_SAVE}") -set(CMAKE_C_FLAGS_SANITIZE "${CMAKE_C_FLAGS_SANITIZE_SAVE}" CACHE STRING "Flags used by the C++ compiler during sanitized (ASAN+UBSAN) builds." FORCE ) -set(CMAKE_CXX_FLAGS_SANITIZE "${CMAKE_CXX_FLAGS_SANITIZE_SAVE}" CACHE STRING "Flags used by the C++ compiler during sanitized (ASAN+UBSAN) builds." FORCE ) -MARK_AS_ADVANCED( - CMAKE_CXX_FLAGS_SANITIZE - CMAKE_C_FLAGS_SANITIZE ) - set(CMAKE_CXX_CLANG_TIDY "${CMAKE_CXX_CLANG_TIDY_SAVE}") set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE "${CMAKE_CXX_INCLUDE_WHAT_YOU_USE_SAVE}") diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/Modules/LLVMOpenMP.cmake.in darktable-4.6.1/src/external/rawspeed/cmake/Modules/LLVMOpenMP.cmake.in --- darktable-4.4.2/src/external/rawspeed/cmake/Modules/LLVMOpenMP.cmake.in 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/Modules/LLVMOpenMP.cmake.in 2024-02-14 22:08:05.000000000 +0000 @@ -32,14 +32,29 @@ else() message(WARNING "Did not find LLVM OpenMP runtime library sources! Fetching from web...") ExternalProject_Add( + llvm-cmake + URL https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/cmake-17.0.6.src.tar.xz + URL_HASH SHA512=b2c5e404ca36542d44e1a7f2801bbcecbcf5f1e8c63b793bb2308228483406bdfe002720aadb913c0228cd2bbe5998465eaadc4a49fad6a5eb6ff907fa5fd45a + PREFIX "${CMAKE_BINARY_DIR}/llvm-cmake" + STAMP_DIR "stamp" + DOWNLOAD_DIR "download" + SOURCE_DIR "${CMAKE_BINARY_DIR}/src/cmake" + BINARY_DIR "build" + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + TEST_COMMAND "" + ) + file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/src/openmp") + ExternalProject_Add( llvm-openmp - URL https://releases.llvm.org/7.0.0/openmp-7.0.0.src.tar.xz - URL_HASH SHA512=bda383d62c822db41504d7774974809cd2af042b03a0b4ca450cc1478c5977682f5c646734801c1b7a16233141d62359c17e87e1435c48a222e159a8763f8857 - PREFIX "${CMAKE_BINARY_DIR}" - STAMP_DIR "${CMAKE_BINARY_DIR}/stamp" - DOWNLOAD_DIR "${CMAKE_BINARY_DIR}/download" - SOURCE_DIR "${CMAKE_BINARY_DIR}/src" - BINARY_DIR "${CMAKE_BINARY_DIR}/build" + URL https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/openmp-17.0.6.src.tar.xz + URL_HASH SHA512=836c48db873e3da64835913c2c1d80efaebdfc7061f153acc7b478ea0d73b9c546a09d70dd1465e3e92684947c4a9cb197886b29cbd42418a778faa56b08cc5e + PREFIX "${CMAKE_BINARY_DIR}/llvm-openmp" + STAMP_DIR "stamp" + DOWNLOAD_DIR "download" + SOURCE_DIR "${CMAKE_BINARY_DIR}/src/openmp" + BINARY_DIR "build" CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/Modules/cpu-cache-line-size.cmake darktable-4.6.1/src/external/rawspeed/cmake/Modules/cpu-cache-line-size.cmake --- darktable-4.4.2/src/external/rawspeed/cmake/Modules/cpu-cache-line-size.cmake 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/Modules/cpu-cache-line-size.cmake 2024-02-14 22:08:05.000000000 +0000 @@ -1,6 +1,8 @@ -message(STATUS "Trying to query CPU L1d cache line size") +if(DEFINED RAWSPEED_CACHELINESIZE) + return() +endif() -unset(RAWSPEED_CACHELINESIZE) +message(STATUS "Trying to query CPU L1d cache line size") if(BINARY_PACKAGE_BUILD) message(STATUS "Performing binary package build, using hardcoded value.") @@ -28,5 +30,5 @@ set(RAWSPEED_CACHELINESIZE 64) endif() +set(RAWSPEED_CACHELINESIZE ${RAWSPEED_CACHELINESIZE} CACHE INTERNAL "") message(STATUS "Deciding that the CPU L1d cache line size is ${RAWSPEED_CACHELINESIZE} bytes") -set(RAWSPEED_CACHELINESIZE ${RAWSPEED_CACHELINESIZE} PARENT_SCOPE) diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/Modules/cpu-cache-line-size.cpp darktable-4.6.1/src/external/rawspeed/cmake/Modules/cpu-cache-line-size.cpp --- darktable-4.4.2/src/external/rawspeed/cmake/Modules/cpu-cache-line-size.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/Modules/cpu-cache-line-size.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -1,59 +1,108 @@ -#include <iostream> // for endl, basic_ostream<>::__ostream_type, cout, ost... +#include <cstdint> +#include <iostream> +#include <optional> #if defined(__unix__) -#include <unistd.h> // for _POSIX_C_VERSION, sysconf, _SC_LEVEL1_DCACHE_LINESIZE +#include <unistd.h> #endif -#if defined(_SC_LEVEL1_DCACHE_LINESIZE) - -int main() { +#if defined(_POSIX_C_SOURCE) && defined(_SC_LEVEL1_DCACHE_LINESIZE) +static std::optional<int64_t> get_cachelinesize_from_sysconf() { long val = ::sysconf(_SC_LEVEL1_DCACHE_LINESIZE); - if (val == -1) - return 1; - std::cout << val << std::endl; - return 0; + if (val == -1) // On error, -1 is returned. + return std::nullopt; + return val; } +#else +static std::optional<int64_t> get_cachelinesize_from_sysconf() { + return std::nullopt; +} +#endif -#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || \ - defined(__DragonFly__) || defined(__APPLE__) +#if defined(__GLIBC__) +#include <sys/auxv.h> +static std::optional<int64_t> get_cachelinesize_from_getauxval() { + unsigned long geometry = getauxval(AT_L1D_CACHEGEOMETRY); + if (geometry == 0 && errno == ENOENT) // On error, 0 is returned. + return std::nullopt; + geometry &= 0xFFFF; // cache line size in bytes in the bottom 16 bits. + return geometry; +} +#else +static std::optional<int64_t> get_cachelinesize_from_getauxval() { + return std::nullopt; +} +#endif -#include <stddef.h> // for size_t +#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || \ + defined(__DragonFly__) || defined(__APPLE__) +#include <cstddef> #include <sys/sysctl.h> #include <sys/types.h> -int main() { - size_t val = 0; +static std::optional<int64_t> get_cachelinesize_from_sysctlbyname() { + int64_t val = 0; size_t size = sizeof(val); if (sysctlbyname("hw.cachelinesize", &val, &size, NULL, 0) != 0) - return 1; - std::cout << val << std::endl; - return 0; + return std::nullopt; + return val; } +#else +static std::optional<int64_t> get_cachelinesize_from_sysctlbyname() { + return std::nullopt; +} +#endif -#elif defined(_WIN32) || defined(_WIN64) - +#if defined(_WIN32) || defined(_WIN64) +#include <cassert> +#include <vector> +// #include <Windows.h> -int main() { +static std::optional<int64_t> +get_cachelinesize_from_GetLogicalProcessorInformation() { DWORD buffer_size = 0; - SYSTEM_LOGICAL_PROCESSOR_INFORMATION* buffer = nullptr; - GetLogicalProcessorInformation(nullptr, &buffer_size); - buffer = (SYSTEM_LOGICAL_PROCESSOR_INFORMATION*)malloc(buffer_size); - GetLogicalProcessorInformation(&buffer[0], &buffer_size); - - for (DWORD i = 0; - i != buffer_size / sizeof(SYSTEM_LOGICAL_PROCESSOR_INFORMATION); ++i) { - if (buffer[i].Relationship == RelationCache && buffer[i].Cache.Level == 1 && - buffer[i].Cache.Type == CacheData) { - std::cout << buffer[i].Cache.LineSize << std::endl; - free(buffer); - return 0; + assert(buffer_size % sizeof(SYSTEM_LOGICAL_PROCESSOR_INFORMATION) == 0); + std::vector<SYSTEM_LOGICAL_PROCESSOR_INFORMATION> buffer( + buffer_size / sizeof(SYSTEM_LOGICAL_PROCESSOR_INFORMATION)); + GetLogicalProcessorInformation(buffer.data(), &buffer_size); + for (const auto& e : buffer) { + if (e.Relationship == RelationCache && e.Cache.Level == 1 && + e.Cache.Type == CacheData) { + return e.Cache.LineSize; } } - - free(buffer); - return 1; + return std::nullopt; } - #else -#error Do not know how to query CPU L1d cache line size for this system! +static std::optional<int64_t> +get_cachelinesize_from_GetLogicalProcessorInformation() { + return std::nullopt; +} #endif + +int main() { + std::optional<int64_t> val; + if (!val) + val = get_cachelinesize_from_sysconf(); + if (!val) + val = get_cachelinesize_from_getauxval(); + if (!val) + val = get_cachelinesize_from_sysctlbyname(); + if (!val) + val = get_cachelinesize_from_GetLogicalProcessorInformation(); +#if defined(__riscv) + if (!val) { + // On RISC-V, at least on openSUSE TW, at least as of this commit, + // there is just no way to query this information. + val = 0; // Pretend we did detect it as zero. Will use fall back value. + } +#endif + if (!val) { + std::cerr + << "Do not know how to query CPU L1d cache line size for this system!" + << std::endl; + return 1; + } + std::cout << *val << std::endl; + return 0; +} diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/Modules/cpu-large-page-size.cmake darktable-4.6.1/src/external/rawspeed/cmake/Modules/cpu-large-page-size.cmake --- darktable-4.4.2/src/external/rawspeed/cmake/Modules/cpu-large-page-size.cmake 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/Modules/cpu-large-page-size.cmake 2024-02-14 22:08:05.000000000 +0000 @@ -2,9 +2,11 @@ message(FATAL_ERROR "Should first run CPU page size detection") endif() -message(STATUS "Trying to query CPU large page size") +if(DEFINED RAWSPEED_LARGEPAGESIZE) + return() +endif() -unset(RAWSPEED_LARGEPAGESIZE) +message(STATUS "Trying to query CPU large page size") if(BINARY_PACKAGE_BUILD) message(STATUS "Performing binary package build, using hardcoded value.") @@ -26,8 +28,10 @@ endif() message(STATUS "Deciding that the CPU large page size is ${RAWSPEED_LARGEPAGESIZE} bytes") -set(RAWSPEED_LARGEPAGESIZE ${RAWSPEED_LARGEPAGESIZE} PARENT_SCOPE) if(RAWSPEED_LARGEPAGESIZE EQUAL 0) + unset(RAWSPEED_LARGEPAGESIZE) message(SEND_ERROR "Detected large page size is zero!") endif() + +set(RAWSPEED_LARGEPAGESIZE ${RAWSPEED_LARGEPAGESIZE} CACHE INTERNAL "") diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/Modules/cpu-large-page-size.cpp darktable-4.6.1/src/external/rawspeed/cmake/Modules/cpu-large-page-size.cpp --- darktable-4.4.2/src/external/rawspeed/cmake/Modules/cpu-large-page-size.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/Modules/cpu-large-page-size.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -1,8 +1,8 @@ -#include <iostream> // for endl, basic_ostream<>::__ostream_type, cout, ost... +#include <iostream> #if defined(__i386__) || defined(__x86_64__) -#include <cpuid.h> // for __get_cpuid +#include <cpuid.h> /* Features in %edx for leaf 1 */ #if !defined(bit_PSE) diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/Modules/cpu-page-size.cmake darktable-4.6.1/src/external/rawspeed/cmake/Modules/cpu-page-size.cmake --- darktable-4.4.2/src/external/rawspeed/cmake/Modules/cpu-page-size.cmake 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/Modules/cpu-page-size.cmake 2024-02-14 22:08:05.000000000 +0000 @@ -1,6 +1,8 @@ -message(STATUS "Trying to query CPU page size") +if(DEFINED RAWSPEED_PAGESIZE) + return() +endif() -unset(RAWSPEED_PAGESIZE) +message(STATUS "Trying to query CPU page size") if(BINARY_PACKAGE_BUILD) message(STATUS "Performing binary package build, using hardcoded value.") @@ -21,8 +23,10 @@ endif() message(STATUS "Deciding that the CPU page size is ${RAWSPEED_PAGESIZE} bytes") -set(RAWSPEED_PAGESIZE ${RAWSPEED_PAGESIZE} PARENT_SCOPE) if(RAWSPEED_PAGESIZE EQUAL 0) + unset(RAWSPEED_PAGESIZE) message(SEND_ERROR "Detected page size is zero!") endif() + +set(RAWSPEED_PAGESIZE ${RAWSPEED_PAGESIZE} CACHE INTERNAL "") diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/Modules/cpu-page-size.cpp darktable-4.6.1/src/external/rawspeed/cmake/Modules/cpu-page-size.cpp --- darktable-4.4.2/src/external/rawspeed/cmake/Modules/cpu-page-size.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/Modules/cpu-page-size.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -1,7 +1,7 @@ -#include <iostream> // for endl, basic_ostream<>::__ostream_type, cout, ost... +#include <iostream> #if defined(__unix__) || defined(__APPLE__) -#include <unistd.h> // for _POSIX_C_SOURCE, sysconf, _SC_PAGESIZE +#include <unistd.h> #endif #if (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 1) || defined(__APPLE__) diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/Modules/memory-align-alloc.cmake darktable-4.6.1/src/external/rawspeed/cmake/Modules/memory-align-alloc.cmake --- darktable-4.4.2/src/external/rawspeed/cmake/Modules/memory-align-alloc.cmake 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/Modules/memory-align-alloc.cmake 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -include(CheckCXXSymbolExists) - -set(CMAKE_REQUIRED_FLAGS_SAVE "${CMAKE_REQUIRED_FLAGS}") - -# Workaround cmake-3.25 bug. -set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Wno-newline-eof") - -# C++17 has std::aligned_alloc :( - -CHECK_CXX_SYMBOL_EXISTS(malloc cstdlib HAVE_MALLOC) -CHECK_CXX_SYMBOL_EXISTS(free cstdlib HAVE_FREE) -if(NOT (HAVE_MALLOC AND HAVE_FREE)) - message(SEND_ERROR "Can't even find plain malloc() / free() !") -endif() - -if(NOT APPLE OR NOT CMAKE_OSX_DEPLOYMENT_TARGET OR CMAKE_OSX_DEPLOYMENT_TARGET GREATER_EQUAL 11.3) - CHECK_CXX_SYMBOL_EXISTS(aligned_alloc cstdlib HAVE_ALIGNED_ALLOC) - if(HAVE_ALIGNED_ALLOC) - return() - endif() -endif() - -CHECK_CXX_SYMBOL_EXISTS(posix_memalign cstdlib HAVE_POSIX_MEMALIGN) -if(HAVE_POSIX_MEMALIGN) - return() -endif() - -CHECK_CXX_SYMBOL_EXISTS(_aligned_malloc malloc.h HAVE_ALIGNED_MALLOC) -CHECK_CXX_SYMBOL_EXISTS(_aligned_free malloc.h HAVE_ALIGNED_FREE) -if(HAVE_ALIGNED_MALLOC AND HAVE_ALIGNED_FREE) - return() -endif() - -message(SEND_ERROR "Can't find any aligned malloc() implementation!") - -set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS_SAVE}") diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/build-type.cmake darktable-4.6.1/src/external/rawspeed/cmake/build-type.cmake --- darktable-4.4.2/src/external/rawspeed/cmake/build-type.cmake 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/build-type.cmake 2024-02-14 22:08:05.000000000 +0000 @@ -2,22 +2,14 @@ if(NOT CMAKE_BUILD_TYPE) message(WARNING "CMAKE_BUILD_TYPE is not defined!") - set(default_build_type "RelWithDebInfo") - - if(BUILD_TESTING) - if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - set(default_build_type "Coverage") - else() - set(default_build_type "Sanitize") - endif() - endif() + set(default_build_type "ReleaseWithAsserts") message("WARNING: Defaulting to CMAKE_BUILD_TYPE=${default_build_type}. Use ccmake to set a proper value.") SET(CMAKE_BUILD_TYPE ${default_build_type} CACHE STRING "" FORCE) endif(NOT CMAKE_BUILD_TYPE) -set(RAWSPEED_STANDARD_BUILD_TYPES Debug RelWithDebInfo Release) +set(RAWSPEED_STANDARD_BUILD_TYPES Debug ReleaseWithAsserts Release) set(RAWSPEED_SPECIAL_BUILD_TYPES Coverage Sanitize TSan Fuzz) set(CMAKE_CONFIGURATION_TYPES ${RAWSPEED_STANDARD_BUILD_TYPES} ${RAWSPEED_SPECIAL_BUILD_TYPES} CACHE STRING "All the available build types" FORCE) diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/clang-tidy.cmake darktable-4.6.1/src/external/rawspeed/cmake/clang-tidy.cmake --- darktable-4.4.2/src/external/rawspeed/cmake/clang-tidy.cmake 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/clang-tidy.cmake 2024-02-14 22:08:05.000000000 +0000 @@ -1,3 +1,19 @@ find_package(LLVMClangTidy REQUIRED) -set(CMAKE_CXX_CLANG_TIDY "${CLANGTIDY_PATH}" -extra-arg=-Wno-unknown-warning-option) +set(plugin "") + +if(USE_RAWSPEED_CLANG_TIDY_MODULE) + math(EXPR CLANG_TIDY_VERSION_MAJOR_NEXT "1 + ${CLANG_TIDY_VERSION_MAJOR}") + + find_package(RawSpeedClangTidyModule ${CLANG_TIDY_VERSION_MAJOR}.0.0...<${CLANG_TIDY_VERSION_MAJOR_NEXT}.0.0 REQUIRED CONFIG) + + SET_PACKAGE_PROPERTIES(RawSpeedClangTidyModule PROPERTIES + URL https://github.com/darktable-org/rawspeed-clang-tidy-module + DESCRIPTION "custom clang-tidy module for RawSpeed library" + PURPOSE "RawSpeed-specific clang-tidy checks" + ) + + set(plugin "--load=$<TARGET_PROPERTY:RawSpeedClangTidyModule::clangTidyRawSpeedModule,LOCATION>") +endif() + +set(CMAKE_CXX_CLANG_TIDY "${CLANGTIDY_PATH}" ${plugin} -extra-arg=-Wno-unknown-warning-option -extra-arg=-Wno-unknown-pragmas) diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/compiler-flags.cmake darktable-4.6.1/src/external/rawspeed/cmake/compiler-flags.cmake --- darktable-4.4.2/src/external/rawspeed/cmake/compiler-flags.cmake 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/compiler-flags.cmake 2024-02-14 22:08:05.000000000 +0000 @@ -1,18 +1,25 @@ include(CpuMarch) -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) -#target_compile_features(rawspeed PUBLIC cxx_std_17) +# Workaround cmake-3.28 referencing (non-existant) `@foo.modmap` +# in compilation commands. +set(CMAKE_CXX_SCAN_FOR_MODULES NO) +set(CMAKE_CXX_MODULE_MAP_FORMAT "") include(debug-info) if(RAWSPEED_RELEASE_BUILD) - # want assertions in all but Release build type. + # No assertions in Release build type. add_definitions(-DNDEBUG) -elseif(NOT (RAWSPEED_RELWITHDEBINFO_BUILD OR RAWSPEED_FUZZ_BUILD)) - # if not Release/RelWithDebInfo/Fuzz build, enable extra debug mode +elseif(RAWSPEED_RELEASEWITHASSERTS_BUILD) + # Assertions in ReleaseWithAsserts build type. + add_definitions(-UNDEBUG) +elseif(NOT (RAWSPEED_FUZZ_BUILD)) + # if not Release/ReleaseWithAsserts/Fuzz build, enable extra debug mode + add_definitions(-UNDEBUG) add_definitions(-DDEBUG) # all this does not work with integer sanitizer @@ -207,8 +214,8 @@ CMAKE_SHARED_LINKER_FLAGS_TSAN CMAKE_SHARED_MODULE_FLAGS_TSAN ) -set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -O2") -set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2") +set(CMAKE_C_FLAGS_RELEASEWITHASSERTS "${CMAKE_C_FLAGS_RELEASEWITHASSERTS} -O3") +set(CMAKE_CXX_FLAGS_RELEASEWITHASSERTS "${CMAKE_CXX_FLAGS_RELEASEWITHASSERTS} -O3") set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3") diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/compiler-versions.cmake darktable-4.6.1/src/external/rawspeed/cmake/compiler-versions.cmake --- darktable-4.4.2/src/external/rawspeed/cmake/compiler-versions.cmake 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/compiler-versions.cmake 2024-02-14 22:08:05.000000000 +0000 @@ -6,6 +6,7 @@ # * oldest(*) maintained macOS release (assuming current cadence of # one major macOS release per year, and 3 (three) year shelf-life, # so last three releases are to be supported) +# * oss-fuzz -provided compiler (LLVM) version # # Compiler-wise, that means that we support three compiler families: # * GCC, with the required version being the newest one that is available @@ -15,24 +16,21 @@ # * LLVM, with the required version being the oldest one between # * the Xcode's underlying LLVM version # * and the newest one that is available in *both* the -# debian stable *and* the latest ubuntu LTS +# debian stable *and* the latest ubuntu LTS (and on oss-fuzz) # -# As of the time of writing (2023-03-14), the next (spring) darktable release -# will happen in 2023-06 ish. By that time: -# * debian 12 (Bookworm) will have been released, -# coming with gcc-12 and LLVM15 -# * Ubuntu 22.04.1 LTS (Jammy Jellyfish) will be the newest LTS, -# coming with gcc-12 and LLVM15 -# * macOS 11 (Big Sur) be the oldest supported macOS version, -# with the newest supported Xcode version being 13.2 (LLVM12-based !) +# As of the time of writing (2024-02-14), the next (summer) darktable release +# will happen in 2024-06 ish. By that time: +# * debian 12 (Bookworm) is the newest debian stable, +# coming with gcc-12 and LLVM16 +# * Ubuntu 24.04 LTS (Noble Numbat) will have been released, +# coming with gcc-14 and LLVM18 +# * macOS 13 (Ventura) be the oldest supported macOS version, +# with the newest supported Xcode version being 15.2 (LLVM16-based !) +# * (as of 2024-02-14) oss-fuzz provides LLVM15. # -# Therefore, we require GCC12, macOS 11 + Xcode 13.2, and LLVM12. -# -# The next+1 (fall) darktable release will happen 2023-12 ish, -# and by that time, macOS 11 will have EOL'd on 2023-10 ish, -# so after the spring release, macOS 12 will become required, -# and that will allow us to require Xcode 14.2 (LLVM14-based), -# and that will allow us to require LLVM14, +# Therefore, we currently require GCC12, macOS 12 + Xcode 14.2, and LLVM14. +# but should be able to require GCC12, macOS 13 + Xcode 15.2, and LLVM15, +# and, pending oss-fuzz roll-forward, LLVM16. if(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_LESS 12) message(SEND_ERROR "GNU C compiler version ${CMAKE_C_COMPILER_VERSION} is too old and is unsupported. Version 12+ is required.") @@ -41,21 +39,21 @@ message(SEND_ERROR "GNU C++ compiler version ${CMAKE_CXX_COMPILER_VERSION} is too old and is unsupported. Version 12+ is required.") endif() -if(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND CMAKE_C_COMPILER_VERSION VERSION_LESS 12) - message(SEND_ERROR "LLVM Clang C compiler version ${CMAKE_C_COMPILER_VERSION} is too old and is unsupported. Version 12+ is required.") +if(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND CMAKE_C_COMPILER_VERSION VERSION_LESS 14) + message(SEND_ERROR "LLVM Clang C compiler version ${CMAKE_C_COMPILER_VERSION} is too old and is unsupported. Version 14+ is required.") endif() -if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12) - message(SEND_ERROR "LLVM Clang C++ compiler version ${CMAKE_CXX_COMPILER_VERSION} is too old and is unsupported. Version 12+ is required.") +if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 14) + message(SEND_ERROR "LLVM Clang C++ compiler version ${CMAKE_CXX_COMPILER_VERSION} is too old and is unsupported. Version 14+ is required.") endif() -# XCode 13.2 (apple clang 1300.0.29.3) is based on LLVM12 -if(CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND CMAKE_C_COMPILER_VERSION VERSION_LESS 13.0.0.13000029) - message(SEND_ERROR "XCode (Apple clang) C compiler version ${CMAKE_C_COMPILER_VERSION} is too old and is unsupported. XCode version 13.2+ is required.") +# XCode 14.2 (apple clang 1400.0.29.202) is based on LLVM14 +if(CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND CMAKE_C_COMPILER_VERSION VERSION_LESS 14.0.0.14000029) + message(SEND_ERROR "XCode (Apple clang) C compiler version ${CMAKE_C_COMPILER_VERSION} is too old and is unsupported. XCode version 14.2+ is required.") endif() -if(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13.0.0.13000029) - message(SEND_ERROR "XCode (Apple clang) C++ compiler version ${CMAKE_CXX_COMPILER_VERSION} is too old and is unsupported. XCode version 13.2+ is required.") +if(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 14.0.0.14000029) + message(SEND_ERROR "XCode (Apple clang) C++ compiler version ${CMAKE_CXX_COMPILER_VERSION} is too old and is unsupported. XCode version 14.2+ is required.") endif() -if(CMAKE_OSX_DEPLOYMENT_TARGET AND CMAKE_OSX_DEPLOYMENT_TARGET VERSION_LESS 11.3) - message(SEND_ERROR "Targeting OSX version ${CMAKE_OSX_DEPLOYMENT_TARGET} older than 11.3 is unsupported.") +if(CMAKE_OSX_DEPLOYMENT_TARGET AND CMAKE_OSX_DEPLOYMENT_TARGET VERSION_LESS 12.5) + message(SEND_ERROR "Targeting OSX version ${CMAKE_OSX_DEPLOYMENT_TARGET} older than 12.5 is unsupported.") endif() diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/compiler-warnings-clang.cmake darktable-4.6.1/src/external/rawspeed/cmake/compiler-warnings-clang.cmake --- darktable-4.4.2/src/external/rawspeed/cmake/compiler-warnings-clang.cmake 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/compiler-warnings-clang.cmake 2024-02-14 22:08:05.000000000 +0000 @@ -13,18 +13,12 @@ set (CLANG_DISABLED_WARNING_FLAGS "c++98-compat" "c++98-compat-pedantic" - "conversion" # FIXME: really need to enable this one - "covered-switch-default" - "deprecated" - "double-promotion" - "gnu-zero-variadic-macro-arguments" - "old-style-cast" + "c++20-extensions" "padded" + "switch-default" "switch-enum" - "unused-macros" "unused-parameter" - "weak-vtables" - "unsafe-buffer-usage" # FIXME: really want this. to be reenabled. + "sign-conversion" # FIXME: should enable this. ) # Yes, these have to be *re-enabled* after CLANG_DISABLED_WARNING_FLAGS. @@ -32,44 +26,6 @@ "extra-semi" ) -set(CMAKE_REQUIRED_FLAGS_ORIG "${CMAKE_REQUIRED_FLAGS}") -set(CMAKE_REQUIRED_FLAGS "-c -Wthread-safety-analysis -Werror=thread-safety-analysis") -CHECK_CXX_SOURCE_COMPILES( -"// Enable thread safety attributes only with clang. -// The attributes can be safely erased when compiling with other compilers. -#if defined(__clang__) && (!defined(SWIG)) -#define THREAD_ANNOTATION_ATTRIBUTE__(x) __attribute__((x)) -#else -#define THREAD_ANNOTATION_ATTRIBUTE__(x) // no-op -#endif - -#define CAPABILITY(x) THREAD_ANNOTATION_ATTRIBUTE__(capability(x)) -#define REQUIRES(...) THREAD_ANNOTATION_ATTRIBUTE__(requires_capability(__VA_ARGS__)) - -class CAPABILITY(\"mutex\") Mutex { -public: - const Mutex& operator!() const { return *this; } -}; - -class ErrorLog { -public: - Mutex mutex; - - void test() REQUIRES(!mutex); -}; - -void test(ErrorLog e) { - e.test(); -} -" - CLANG_CXX_THREAD_SAFETY_ANALYSIS_NEGATIVE_CAPABILITIES_WORK -) -set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS_ORIG}") - -if(NOT CLANG_CXX_THREAD_SAFETY_ANALYSIS_NEGATIVE_CAPABILITIES_WORK) - list(APPEND CLANG_DISABLED_WARNING_FLAGS "thread-safety-analysis") -endif() - if(NOT (UNIX OR APPLE)) # bogus warnings about std functions... list(APPEND CLANG_DISABLED_WARNING_FLAGS "used-but-marked-unused") @@ -77,6 +33,12 @@ list(APPEND CLANG_DISABLED_WARNING_FLAGS "nonportable-system-include-path") endif() +if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 17) + # Clang 16 used to point at the variable declaration in the diagnostics, + # and not at the pointer arithmetic itself. + list(APPEND CLANG_DISABLED_WARNING_FLAGS "unsafe-buffer-usage") +endif() + foreach(warning ${CLANG_WARNING_FLAGS}) CHECK_CXX_COMPILER_FLAG_AND_ENABLE_IT(-W${warning}) endforeach() diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/compiler-warnings-gcc.cmake darktable-4.6.1/src/external/rawspeed/cmake/compiler-warnings-gcc.cmake --- darktable-4.4.2/src/external/rawspeed/cmake/compiler-warnings-gcc.cmake 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/compiler-warnings-gcc.cmake 2024-02-14 22:08:05.000000000 +0000 @@ -36,6 +36,9 @@ set (GCC_DISABLED_WARNING_FLAGS "unused-parameter" + "maybe-uninitialized" + "stringop-overflow" # bogus warnings at least as of GCC13 + "array-bounds" # bogus warnings at least as of GCC13 ) set (GCC_NOERROR_WARNING_FLAGS diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/debug-info.cmake darktable-4.6.1/src/external/rawspeed/cmake/debug-info.cmake --- darktable-4.4.2/src/external/rawspeed/cmake/debug-info.cmake 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/debug-info.cmake 2024-02-14 22:08:05.000000000 +0000 @@ -1,7 +1,29 @@ +include(CheckCompilerFlag) +include(CheckLinkerFlag) + if(RAWSPEED_ENABLE_DEBUG_INFO) # always debug info add_definitions(-g3) add_definitions(-ggdb3) + + check_compiler_flag(CXX -gz COMPILER_SUPPORTS_DEBUG_INFO_COMPRESSION) + check_linker_flag(CXX -gz COMPILER_SUPPORTS_DEBUG_INFO_COMPRESSION_LINK) + if(COMPILER_SUPPORTS_DEBUG_INFO_COMPRESSION AND COMPILER_SUPPORTS_DEBUG_INFO_COMPRESSION_LINK) + add_compile_options(-gz) + add_link_options(-gz) + endif() + + if(NOT (WIN32 AND CMAKE_COMPILER_IS_GNUCXX)) + check_compiler_flag(CXX -gsplit-dwarf COMPILER_SUPPORTS_SPLIT_DEBUG_INFO) + if(COMPILER_SUPPORTS_SPLIT_DEBUG_INFO) + add_compile_options(-gsplit-dwarf) + endif() + + check_linker_flag(CXX -Wl,--gdb-index LINKER_SUPPORTS_GDB_INDEX) + if(LINKER_SUPPORTS_GDB_INDEX) + add_link_options(-Wl,--gdb-index) + endif() + endif() elseif(NOT RAWSPEED_ENABLE_DEBUG_INFO) add_definitions(-g0) else() diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/iwyu.cmake darktable-4.6.1/src/external/rawspeed/cmake/iwyu.cmake --- darktable-4.4.2/src/external/rawspeed/cmake/iwyu.cmake 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/iwyu.cmake 1970-01-01 00:00:00.000000000 +0000 @@ -1,40 +0,0 @@ -set(IWYU_IMP "${CMAKE_SOURCE_DIR}/cmake/iwyu.imp") - -find_program(iwyu_path NAMES include-what-you-use iwyu) -if(NOT iwyu_path) - message(FATAL_ERROR "Could not find the program include-what-you-use.") -else(NOT iwyu_path) - set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE "${iwyu_path}" -Xiwyu --mapping_file=${IWYU_IMP} -Xiwyu --check_also=${CMAKE_SOURCE_DIR}/src/* -Xiwyu --check_also=${CMAKE_SOURCE_DIR}/src/*/* -Xiwyu --check_also=${CMAKE_SOURCE_DIR}/src/*/*/* -Xiwyu --check_also=${CMAKE_SOURCE_DIR}/src/*/*/*/*) -endif() - -find_program(iwyu_tool_path NAMES iwyu_tool iwyu_tool.py) -if(iwyu_tool_path) - add_custom_command( - OUTPUT "${CMAKE_BINARY_DIR}/iwyu.log" - COMMAND "${iwyu_tool_path}" -v -p "${CMAKE_BINARY_DIR}" - -- --mapping_file=${IWYU_IMP} --check_also=${CMAKE_SOURCE_DIR}/src/* --check_also=${CMAKE_SOURCE_DIR}/src/*/* --check_also=${CMAKE_SOURCE_DIR}/src/*/*/* --check_also=${CMAKE_SOURCE_DIR}/src/*/*/*/* 2> - "${CMAKE_BINARY_DIR}/iwyu.log" - WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" - COMMENT "Running include-what-you-use tool" - VERBATIM - ) - add_custom_target(iwyu - DEPENDS "${CMAKE_BINARY_DIR}/iwyu.log" - VERBATIM - ) -endif() - -find_program(fix_includes_path NAMES fix_include fix_includes.py) -if(fix_includes_path) - add_custom_target(iwyu_fix - COMMAND "${fix_includes_path}" --noblank_lines --comments - --safe_headers < "${CMAKE_BINARY_DIR}/iwyu.log" || true - COMMAND ${CMAKE_COMMAND} -E remove "${CMAKE_BINARY_DIR}/iwyu.log" - DEPENDS "${CMAKE_BINARY_DIR}/iwyu.log" - WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" - COMMENT "Running include-what-you-use fix_includes tool" - VERBATIM - ) -endif() - -unset(IWYU_IMP) diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/iwyu.imp darktable-4.6.1/src/external/rawspeed/cmake/iwyu.imp --- darktable-4.4.2/src/external/rawspeed/cmake/iwyu.imp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/iwyu.imp 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ -[ - # C++ alternatives to C standard headers - { include: [ "<assert.h>", public, "<cassert>", public ] }, - { include: [ "<complex.h>", public, "<ccomplex>", public ] }, - { include: [ "<ctype.h>", public, "<cctype>", public ] }, - { include: [ "<errno.h>", public, "<cerrno>", public ] }, - { include: [ "<float.h>", public, "<cfloat>", public ] }, - { include: [ "<iso646.h>", public, "<ciso646>", public ] }, - { include: [ "<limits.h>", public, "<climits>", public ] }, - { include: [ "<locale.h>", public, "<clocale>", public ] }, - { include: [ "<math.h>", public, "<cmath>", public ] }, - { include: [ "<setjmp.h>", public, "<csetjmp>", public ] }, - { include: [ "<signal.h>", public, "<csignal>", public ] }, - { include: [ "<stdarg.h>", public, "<cstdarg>", public ] }, - { include: [ "<stddef.h>", public, "<cstddef>", public ] }, - { include: [ "<stdio.h>", public, "<cstdio>", public ] }, - { include: [ "<stdlib.h>", public, "<cstdlib>", public ] }, - { include: [ "<string.h>", public, "<cstring>", public ] }, - { include: [ "<time.h>", public, "<ctime>", public ] }, - { include: [ "<wchar.h>", public, "<cwchar>", public ] }, - { include: [ "<wctype.h>", public, "<cwctype>", public ] }, - - # HACK: check whether this can be removed with next iwyu release. - { include: [ "<bits/chrono.h>", private, "<chrono>", public ] }, - { include: [ "<bits/exception.h>", private, "<exception>", public ] }, - { include: [ "<bits/std_abs.h>", private, "<cmath>", public ] }, - { include: [ "<bits/std_function.h>", private, "<functional>", public ] }, - { include: [ "<bits/stdint-intn.h>", private, "<cstdint>", public ] }, - { include: [ "<bits/stdint-uintn.h>", private, "<cstdint>", public ] }, - { include: [ "<bits/stl_set.h>", private, "<set>", public ] }, - { include: [ "<bits/types/clock_t.h>", private, "<ctime>", public ] }, - { include: [ "<bits/utility.h>", private, "<utility>", public ] }, - - # libjpeg headers - { include: [ "<jconfig.h>", private, "<jpeglib.h>", public ] }, - { include: [ "<jmorecfg.h>", private, "<jpeglib.h>", public ] }, - { include: [ "<zconf.h>", private, "<zlib.h>", public ] }, - - # Google Test headers - { include: [ "@<gmock/.*>", private, "<gmock/gmock.h>", public ] }, - { include: [ "@<gtest/.*>", private, "<gtest/gtest.h>", public ] }, - - # Our headers - { include: [ "<ThreadSafetyAnalysis.h>", private, "\"ThreadSafetyAnalysis.h\"", public ] }, -] diff -Nru darktable-4.4.2/src/external/rawspeed/cmake/src-dependencies.cmake darktable-4.6.1/src/external/rawspeed/cmake/src-dependencies.cmake --- darktable-4.4.2/src/external/rawspeed/cmake/src-dependencies.cmake 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/cmake/src-dependencies.cmake 2024-02-14 22:08:05.000000000 +0000 @@ -16,7 +16,7 @@ add_dependencies(dependencies benchmark) endif() -target_compile_features(rawspeed PUBLIC cxx_std_17) +target_compile_features(rawspeed PUBLIC cxx_std_20) unset(HAVE_OPENMP) if(WITH_OPENMP) @@ -25,44 +25,49 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") # Clang has an option to specify the OpenMP standard to use. Specify it. - set(OPENMP_VERSION_SPECIFIER "-fopenmp-version=45") - endif() - - set(CMAKE_C_FLAGS_SAVE "${CMAKE_C_FLAGS}") - set(CMAKE_CXX_FLAGS_SAVE "${CMAKE_CXX_FLAGS}") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OPENMP_VERSION_SPECIFIER}") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OPENMP_VERSION_SPECIFIER}") - - find_package(OpenMP 4.5) - - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS_SAVE}") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_SAVE}") - - if(NOT OPENMP_FOUND) - message(SEND_ERROR "Did not find OpenMP! Either make it find OpenMP, " - "or pass -DWITH_OPENMP=OFF to disable OpenMP support.") - else() - message(STATUS "Looking for OpenMP - found (system)") + set(OPENMP_VERSION_SPECIFIER "-fopenmp-version=50") endif() # The wrapper library that *actually* should be linked to. add_library(RawSpeed::OpenMP_CXX INTERFACE IMPORTED) - set_property(TARGET RawSpeed::OpenMP_CXX PROPERTY INTERFACE_COMPILE_OPTIONS $<TARGET_PROPERTY:OpenMP::OpenMP_CXX,INTERFACE_COMPILE_OPTIONS>) - set_property(TARGET RawSpeed::OpenMP_CXX APPEND PROPERTY INTERFACE_COMPILE_OPTIONS ${OPENMP_VERSION_SPECIFIER}) - set_property(TARGET RawSpeed::OpenMP_CXX PROPERTY INTERFACE_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:OpenMP::OpenMP_CXX,INTERFACE_INCLUDE_DIRECTORIES>) + if(NOT USE_BUNDLED_LLVMOPENMP) - set_property(TARGET RawSpeed::OpenMP_CXX PROPERTY INTERFACE_LINK_LIBRARIES $<TARGET_PROPERTY:OpenMP::OpenMP_CXX,INTERFACE_LINK_LIBRARIES>) + set(CMAKE_C_FLAGS_SAVE "${CMAKE_C_FLAGS}") + set(CMAKE_CXX_FLAGS_SAVE "${CMAKE_CXX_FLAGS}") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OPENMP_VERSION_SPECIFIER}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OPENMP_VERSION_SPECIFIER}") + + # NOTE: we want at least 5.0, but we don't need full implementation, + # so we neither can't really check for a version, not need to... + find_package(OpenMP) + + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS_SAVE}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_SAVE}") + + if(NOT OPENMP_FOUND) + message(SEND_ERROR "Did not find OpenMP! Either make it find OpenMP, " + "or pass -DWITH_OPENMP=OFF to disable OpenMP support.") + else() + message(STATUS "Looking for OpenMP - found (system)") + endif() + + set_property(TARGET RawSpeed::OpenMP_CXX PROPERTY INTERFACE_COMPILE_OPTIONS $<TARGET_PROPERTY:OpenMP::OpenMP_CXX,INTERFACE_COMPILE_OPTIONS>) + set_property(TARGET RawSpeed::OpenMP_CXX PROPERTY INTERFACE_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:OpenMP::OpenMP_CXX,INTERFACE_INCLUDE_DIRECTORIES>) + set_property(TARGET RawSpeed::OpenMP_CXX PROPERTY INTERFACE_LINK_LIBRARIES $<TARGET_PROPERTY:OpenMP::OpenMP_CXX,INTERFACE_LINK_LIBRARIES>) else() include(LLVMOpenMP) - message(STATUS "Looking for OpenMP - found 'in-tree' runtime library") + message(STATUS "Looking for OpenMP - found 'in-tree' runtime library, skipping compiler check") add_dependencies(RawSpeed::OpenMP_CXX omp) add_dependencies(dependencies omp) - set_property(TARGET RawSpeed::OpenMP_CXX PROPERTY INTERFACE_LINK_LIBRARIES omp) + target_compile_options(RawSpeed::OpenMP_CXX INTERFACE -fopenmp) + target_include_directories(RawSpeed::OpenMP_CXX INTERFACE $<TARGET_PROPERTY:omp,BINARY_DIR>) + target_link_libraries(RawSpeed::OpenMP_CXX INTERFACE omp) endif() + target_compile_options(RawSpeed::OpenMP_CXX INTERFACE ${OPENMP_VERSION_SPECIFIER}) target_link_libraries(rawspeed PUBLIC RawSpeed::OpenMP_CXX) set(HAVE_OPENMP 1) diff -Nru darktable-4.4.2/src/external/rawspeed/data/cameras.xml darktable-4.6.1/src/external/rawspeed/data/cameras.xml --- darktable-4.4.2/src/external/rawspeed/data/cameras.xml 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/data/cameras.xml 2024-02-14 22:08:05.000000000 +0000 @@ -103,12 +103,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="72" y="52" width="0" height="0"/> - <Sensor black="2048" white="15000"/> - <Sensor black="2047" white="12277" iso_list="100"/> - <Sensor black="2047" white="15000" iso_list="200 6400"/> - <Sensor black="2048" white="15000" iso_list="800 3200"/> - <Sensor black="2049" white="15000" iso_list="1600"/> - <Sensor black="2046" white="15000" iso_list="25600"/> <BlackAreas> <Vertical x="0" width="72"/> <Horizontal y="8" height="44"/> @@ -134,10 +128,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="266" y="42" width="-6" height="-4"/> - <Sensor black="2049" white="14338"/> - <Sensor black="511" white="11892" iso_list="100"/> - <Sensor black="511" white="14338" iso_list="200"/> - <Sensor black="2041" white="14338" iso_list="51200"/> <BlackAreas> <Vertical x="0" width="260"/> <Horizontal y="0" height="38"/> @@ -261,9 +251,6 @@ <Vertical x="0" width="72"/> <Horizontal y="2" height="8"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="50"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">6599 -537 -891</ColorMatrixRow> @@ -272,6 +259,9 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="Canon" model="Canon EOS 20Da" supported="unknown-no-samples"> + <ID make="Canon" model="EOS 20Da">Canon EOS 20Da</ID> + </Camera> <Camera make="Canon" model="Canon EOS 30D"> <ID make="Canon" model="EOS 30D">Canon EOS 30D</ID> <CFA width="2" height="2"> @@ -309,14 +299,11 @@ <Horizontal y="0" height="12"/> </BlackAreas> <Aliases> - <Alias id="Digital Rebel XT">Canon EOS DIGITAL REBEL XT</Alias> - <Alias id="Kiss Digital N">Canon EOS Kiss Digital N</Alias> + <Alias id="EOS Digital Rebel XT">Canon EOS DIGITAL REBEL XT</Alias> + <Alias id="EOS Kiss Digital N">Canon EOS Kiss Digital N</Alias> <Alias id="EOS 350D">Canon EOS 350D</Alias> <Alias id="EOS 350D">Canon EOS 350D Digital</Alias> </Aliases> - <Hints> - <Hint name="wb_offset" value="50"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">6018 -617 -965</ColorMatrixRow> @@ -350,7 +337,7 @@ <Camera make="Canon" model="Canon EOS 40D" mode="sRaw1"> <ID make="Canon" model="EOS 40D">Canon EOS 40D</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="65535"/> + <Sensor black="0" white="16383"/> <Hints> <Hint name="sraw_40d" value=""/> </Hints> @@ -365,7 +352,7 @@ <Camera make="Canon" model="Canon EOS 40D" mode="sRaw2"> <ID make="Canon" model="EOS 40D">Canon EOS 40D</ID> <Crop x="0" y="0" width="1944" height="1296"/> - <Sensor black="0" white="65535"/> + <Sensor black="0" white="16383"/> <Hints> <Hint name="sraw_40d" value=""/> </Hints> @@ -386,11 +373,10 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="22" y="18" width="4290" height="2856"/> - <Sensor black="1020" white="14500"/> <Aliases> - <Alias id="Digital Rebel XSi">Canon EOS DIGITAL REBEL XSi</Alias> - <Alias id="Kiss Digital X2">Canon EOS Kiss Digital X2</Alias> - <Alias id="Kiss X2">Canon EOS Kiss X2</Alias> + <Alias id="EOS Digital Rebel XSi">Canon EOS DIGITAL REBEL XSi</Alias> + <Alias id="EOS Kiss Digital X2">Canon EOS Kiss Digital X2</Alias> + <Alias id="EOS Kiss X2">Canon EOS Kiss X2</Alias> </Aliases> <ColorMatrices> <ColorMatrix planes="3"> @@ -409,7 +395,6 @@ <Color x="1" y="1">GREEN</Color> </CFA> <Crop x="64" y="52" width="4752" height="3158"/> - <Sensor black="1020" white="13653"/> <BlackAreas> <Vertical x="0" width="60"/> <Horizontal y="2" height="46"/> @@ -425,7 +410,6 @@ <Camera make="Canon" model="Canon EOS 50D" mode="sRaw1"> <ID make="Canon" model="EOS 50D">Canon EOS 50D</ID> <Crop x="0" y="0" width="3272" height="2178"/> - <Sensor black="0" white="53000"/> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">4920 616 -593</ColorMatrixRow> @@ -437,7 +421,6 @@ <Camera make="Canon" model="Canon EOS 50D" mode="sRaw2"> <ID make="Canon" model="EOS 50D">Canon EOS 50D</ID> <Crop x="0" y="0" width="2376" height="1584"/> - <Sensor black="0" white="53000"/> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">4920 616 -593</ColorMatrixRow> @@ -455,7 +438,6 @@ <Color x="1" y="1">GREEN</Color> </CFA> <Crop x="146" y="54" width="0" height="0"/> - <Sensor black="2026" white="14200"/> <BlackAreas> <Vertical x="0" width="140"/> <Horizontal y="4" height="46"/> @@ -471,7 +453,6 @@ <Camera make="Canon" model="Canon EOS 60D" mode="sRaw1"> <ID make="Canon" model="EOS 60D">Canon EOS 60D</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="65535"/> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">6719 -994 -925</ColorMatrixRow> @@ -483,7 +464,6 @@ <Camera make="Canon" model="Canon EOS 60D" mode="sRaw2"> <ID make="Canon" model="EOS 60D">Canon EOS 60D</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="65535"/> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">6719 -994 -925</ColorMatrixRow> @@ -492,6 +472,9 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="Canon" model="Canon EOS 60Da" supported="unknown-no-samples"> + <ID make="Canon" model="EOS 60Da">Canon EOS 60Da</ID> + </Camera> <Camera make="Canon" model="Canon EOS 70D" decoder_version="1"> <ID make="Canon" model="EOS 70D">Canon EOS 70D</ID> <CFA width="2" height="2"> @@ -501,9 +484,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="72" y="38" width="0" height="0"/> - <Sensor black="2026" white="13653" iso_min="0" iso_max="199"/> - <Sensor black="2026" white="16383" iso_min="6400" iso_max="25600"/> - <Sensor black="2026" white="15387"/> <BlackAreas> <Vertical x="0" width="72"/> <Horizontal y="0" height="38"/> @@ -519,7 +499,6 @@ <Camera make="Canon" model="Canon EOS 70D" mode="sRaw1"> <ID make="Canon" model="EOS 70D">Canon EOS 70D</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="53000"/> <Hints> <Hint name="sraw_new" value=""/> <Hint name="invert_sraw_wb" value=""/> @@ -535,7 +514,6 @@ <Camera make="Canon" model="Canon EOS 70D" mode="sRaw2"> <ID make="Canon" model="EOS 70D">Canon EOS 70D</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="53000"/> <Hints> <Hint name="sraw_new" value=""/> <Hint name="invert_sraw_wb" value=""/> @@ -557,14 +535,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="266" y="42" width="-8" height="-4"/> - <Sensor black="512" white="11892" iso_list="100 125"/> - <Sensor black="512" white="10749" iso_list="160"/> - <Sensor black="511" white="14338" iso_list="200 250"/> - <Sensor black="2048" white="10749" iso_list="320 640 1250 2500 5000"/> - <Sensor black="2048" white="14338" iso_list="400 500 800 1000 1600 2000 3200 4000 6400 16000"/> - <Sensor black="2046" white="14338" iso_list="8000 25600"/> - <Sensor black="2045" white="14338" iso_list="10000"/> - <Sensor black="2049" white="14338" iso_list="12800"/> <BlackAreas> <Vertical x="0" width="263"/> <Horizontal y="0" height="33"/> @@ -580,11 +550,6 @@ <Camera make="Canon" model="Canon EOS 80D" mode="sRaw1" decoder_version="8"> <ID make="Canon" model="EOS 80D">Canon EOS 80D</ID> <Crop x="28" y="10" width="0" height="0"/> - <Sensor black="0" white="48816" iso_list="320 640 1250 2500 5000"/> - <Sensor black="0" white="51936" iso_list="160"/> - <Sensor black="0" white="55680" iso_list="400 500 800 1000 1600 2000 3200 4000 6400 12800 16000 25600"/> - <Sensor black="0" white="55688" iso_list="8000 10000"/> - <Sensor black="0" white="58832" iso_list="100 125 200 250"/> <Hints> <Hint name="sraw_new" value=""/> <Hint name="invert_sraw_wb" value=""/> @@ -600,15 +565,6 @@ <Camera make="Canon" model="Canon EOS 80D" mode="sRaw2" decoder_version="7"> <ID make="Canon" model="EOS 80D">Canon EOS 80D</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="48468" iso_list="2500"/> - <Sensor black="0" white="48488" iso_list="1250"/> - <Sensor black="0" white="48492" iso_list="320"/> - <Sensor black="0" white="48496" iso_list="640"/> - <Sensor black="0" white="48588" iso_list="5000"/> - <Sensor black="0" white="51932" iso_list="160"/> - <Sensor black="0" white="55680" iso_list="400 500 800 1000 1600 2000 3200 4000 6400 12800 16000 25600"/> - <Sensor black="0" white="55688" iso_list="8000 10000"/> - <Sensor black="0" white="58832" iso_list="100 125 200 250"/> <Hints> <Hint name="sraw_new" value=""/> <Hint name="invert_sraw_wb" value=""/> @@ -630,9 +586,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="76" y="60" width="-6" height="-6"/> - <Sensor black="2052" white="15000"/> - <Sensor black="2048" white="12277" iso_list="100"/> - <Sensor black="2048" white="11222" iso_list="160 320 640 1250 2500 5000"/> <BlackAreas> <Vertical x="0" width="70"/> <Horizontal y="4" height="50"/> @@ -658,8 +611,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="72" y="34" width="0" height="0"/> - <Sensor black="2047" white="11765" iso_min="0" iso_max="199"/> - <Sensor black="2047" white="14580"/> <Aliases> <Alias id="EOS Rebel T6i">Canon EOS Rebel T6i</Alias> <Alias id="EOS Kiss X8i">Canon EOS Kiss X8i</Alias> @@ -681,9 +632,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="266" y="42" width="-6" height="-4"/> - <Sensor black="2049" white="14338"/> - <Sensor black="511" white="11892" iso_list="100"/> - <Sensor black="511" white="14338" iso_list="200"/> <BlackAreas> <Vertical x="0" width="260"/> <Horizontal y="2" height="36"/> @@ -710,8 +658,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="72" y="34" width="0" height="0"/> - <Sensor black="2047" white="11765" iso_min="0" iso_max="199"/> - <Sensor black="2047" white="14580"/> <Aliases> <Alias id="EOS Rebel T6s">Canon EOS Rebel T6s</Alias> <Alias id="EOS 8000D">Canon EOS 8000D</Alias> @@ -733,10 +679,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="266" y="42" width="-6" height="-4"/> - <Sensor black="2048" white="14338"/> - <Sensor black="511" white="11892" iso_list="100"/> - <Sensor black="511" white="14338" iso_list="200"/> - <Sensor black="2037" white="14338" iso_list="51200"/> <BlackAreas> <Vertical x="0" width="260"/> <Horizontal y="2" height="32"/> @@ -761,7 +703,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="62" y="30" width="4722" height="3142"/> - <Sensor black="1020" white="16000"/> <BlackAreas> <Vertical x="0" width="56"/> <Horizontal y="2" height="22"/> @@ -787,7 +728,6 @@ <Color x="0" y="1">RED</Color> </CFA> <Crop x="148" y="54" width="0" height="0"/> - <Sensor black="2048" white="15831"/> <BlackAreas> <Vertical x="0" width="140"/> <Horizontal y="4" height="44"/> @@ -813,8 +753,6 @@ <Color x="1" y="1">GREEN</Color> </CFA> <Crop x="146" y="54" width="0" height="0"/> - <Sensor black="2026" white="13584" iso_min="0" iso_max="199"/> - <Sensor black="2026" white="15304"/> <BlackAreas> <Vertical x="0" width="140"/> <Horizontal y="4" height="44"/> @@ -840,8 +778,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="76" y="56" width="0" height="0"/> - <Sensor black="2026" white="13584" iso_min="0" iso_max="199"/> - <Sensor black="2026" white="15304"/> <BlackAreas> <Vertical x="0" width="70"/> <Horizontal y="4" height="44"/> @@ -889,8 +825,6 @@ <Color x="1" y="1">GREEN</Color> </CFA> <Crop x="158" y="51" width="5634" height="3753"/> - <Sensor black="1024" white="12995" iso_list="160 320 640 1250"/> - <Sensor black="1024" white="15950"/> <BlackAreas> <Vertical x="0" width="156"/> <Horizontal y="2" height="48"/> @@ -906,8 +840,6 @@ <Camera make="Canon" model="Canon EOS 5D Mark II" mode="sRaw1"> <ID make="Canon" model="EOS 5D Mark II">Canon EOS 5D Mark II</ID> <Crop x="0" y="0" width="3872" height="2574"/> - <Sensor black="0" white="57200" iso_list="160 320 640 1250"/> - <Sensor black="0" white="64948"/> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">4716 603 -830</ColorMatrixRow> @@ -919,8 +851,6 @@ <Camera make="Canon" model="Canon EOS 5D Mark II" mode="sRaw2"> <ID make="Canon" model="EOS 5D Mark II">Canon EOS 5D Mark II</ID> <Crop x="0" y="0" width="2808" height="1872"/> - <Sensor black="0" white="57200" iso_list="160 320 640 1250"/> - <Sensor black="0" white="64948"/> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">4716 603 -830</ColorMatrixRow> @@ -938,12 +868,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="124" y="82" width="-2" height="0"/> - <Sensor black="2060" white="16383"/> - <Sensor black="2060" white="15700" iso_list="400 500 1600"/> - <Sensor black="2060" white="15200" iso_list="100 125 200 250 800 2000"/> - <Sensor black="2060" white="15100" iso_list="2500 10000"/> - <Sensor black="2060" white="13700" iso_list="160 320 1250"/> - <Sensor black="2060" white="14200" iso_list="640 5000"/> <BlackAreas> <Vertical x="0" width="120"/> <Horizontal y="2" height="78"/> @@ -959,10 +883,6 @@ <Camera make="Canon" model="Canon EOS 5D Mark III" mode="sRaw1"> <ID make="Canon" model="EOS 5D Mark III">Canon EOS 5D Mark III</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="44112" iso_list="160 320 640 1250 2500 5000 10000"/> - <Sensor black="0" white="50300" iso_list="100 20000"/> - <Sensor black="0" white="55128" iso_list="25600 51200 102400"/> - <Sensor black="0" white="53220"/> <Hints> <Hint name="sraw_new" value=""/> <Hint name="invert_sraw_wb" value=""/> @@ -978,10 +898,6 @@ <Camera make="Canon" model="Canon EOS 5D Mark III" mode="sRaw2"> <ID make="Canon" model="EOS 5D Mark III">Canon EOS 5D Mark III</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="44112" iso_list="160 320 640 1250 2500 5000 10000"/> - <Sensor black="0" white="51300" iso_list="250"/> - <Sensor black="0" white="55028" iso_list="25600 51200 102400"/> - <Sensor black="0" white="53000"/> <Hints> <Hint name="sraw_new" value=""/> <Hint name="invert_sraw_wb" value=""/> @@ -1003,12 +919,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="136" y="44" width="0" height="0"/> - <Sensor black="2049" white="14448"/> - <Sensor black="513" white="14008" iso_list="50 100 125"/> - <Sensor black="512" white="10838" iso_list="160"/> - <Sensor black="512" white="14448" iso_list="200 250"/> - <Sensor black="2048" white="10838" iso_list="320 640 1250 2500 5000 10000 20000"/> - <Sensor black="2049" white="13533" iso_list="102400"/> <BlackAreas> <Vertical x="0" width="134"/> <Horizontal y="0" height="40"/> @@ -1024,7 +934,6 @@ <Camera make="Canon" model="Canon EOS 5D Mark IV" mode="sRaw1"> <ID make="Canon" model="EOS 5D Mark IV">Canon EOS 5D Mark IV</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="56032"/> <Hints> <Hint name="sraw_new" value=""/> <Hint name="invert_sraw_wb" value=""/> @@ -1040,7 +949,6 @@ <Camera make="Canon" model="Canon EOS 5D Mark IV" mode="sRaw2"> <ID make="Canon" model="EOS 5D Mark IV">Canon EOS 5D Mark IV</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="56032"/> <Hints> <Hint name="sraw_new" value=""/> <Hint name="invert_sraw_wb" value=""/> @@ -1062,8 +970,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="164" y="72" width="-6" height="-8"/> - <Sensor black="2048" white="15181"/> - <Sensor black="2048" white="14466" iso_list="50 100"/> <BlackAreas> <Vertical x="0" width="150"/> <Horizontal y="40" height="60"/> @@ -1079,8 +985,6 @@ <Camera make="Canon" model="Canon EOS 5DS" mode="sRaw1" decoder_version="6"> <ID make="Canon" model="EOS 5DS">Canon EOS 5DS</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="52000"/> - <Sensor black="0" white="46000" iso_list="50"/> <Hints> <Hint name="sraw_new" value=""/> <Hint name="invert_sraw_wb" value=""/> @@ -1096,8 +1000,6 @@ <Camera make="Canon" model="Canon EOS 5DS" mode="sRaw2" decoder_version="6"> <ID make="Canon" model="EOS 5DS">Canon EOS 5DS</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="52000"/> - <Sensor black="0" white="46000" iso_list="50"/> <Hints> <Hint name="sraw_new" value=""/> <Hint name="invert_sraw_wb" value=""/> @@ -1119,8 +1021,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="164" y="72" width="-6" height="-8"/> - <Sensor black="2048" white="15181"/> - <Sensor black="2048" white="14466" iso_list="50 100"/> <BlackAreas> <Vertical x="0" width="150"/> <Horizontal y="40" height="60"/> @@ -1136,8 +1036,6 @@ <Camera make="Canon" model="Canon EOS 5DS R" mode="sRaw1" decoder_version="6"> <ID make="Canon" model="EOS 5DS R">Canon EOS 5DS R</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="52000"/> - <Sensor black="0" white="46000" iso_list="50"/> <Hints> <Hint name="sraw_new" value=""/> <Hint name="invert_sraw_wb" value=""/> @@ -1153,8 +1051,6 @@ <Camera make="Canon" model="Canon EOS 5DS R" mode="sRaw2" decoder_version="6"> <ID make="Canon" model="EOS 5DS R">Canon EOS 5DS R</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="52000"/> - <Sensor black="0" white="46000" iso_list="50"/> <Hints> <Hint name="sraw_new" value=""/> <Hint name="invert_sraw_wb" value=""/> @@ -1176,12 +1072,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="74" y="40" width="0" height="-2"/> - <Sensor black="2048" white="15000"/> - <Sensor black="2047" white="15000" iso_list="50 100 125 200 250 16000"/> - <Sensor black="2047" white="13100" iso_list="160"/> - <Sensor black="2047" white="13000" iso_list="320"/> - <Sensor black="2048" white="13000" iso_list="640 1250 2500 5000 10000 20000"/> - <Sensor black="2048" white="16000" iso_list="51200 102400"/> <BlackAreas> <Vertical x="0" width="68"/> <Horizontal y="2" height="36"/> @@ -1197,7 +1087,6 @@ <Camera make="Canon" model="Canon EOS 6D" mode="sRaw1" decoder_version="3"> <ID make="Canon" model="EOS 6D">Canon EOS 6D</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="48664"/> <Hints> <Hint name="sraw_new" value=""/> <Hint name="invert_sraw_wb" value=""/> @@ -1213,7 +1102,6 @@ <Camera make="Canon" model="Canon EOS 6D" mode="sRaw2"> <ID make="Canon" model="EOS 6D">Canon EOS 6D</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="48664"/> <Hints> <Hint name="sraw_new" value=""/> <Hint name="invert_sraw_wb" value=""/> @@ -1235,10 +1123,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="128" y="52" width="-4" height="-4"/> - <Sensor black="2049" white="14558"/> - <Sensor black="513" white="14558" iso_list="50 100 125 200 250"/> - <Sensor black="513" white="11301" iso_list="160"/> - <Sensor black="2049" white="11301" iso_list="320 640 1250 2500 5000 10000"/> <BlackAreas> <Vertical x="2" width="116"/> <Horizontal y="8" height="32"/> @@ -1254,7 +1138,6 @@ <Camera make="Canon" model="Canon EOS 6D Mark II" mode="sRaw1" decoder_version="9"> <ID make="Canon" model="EOS 6D Mark II">Canon EOS 6D Mark II</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="16383"/> <Hints> <Hint name="sraw_new" value=""/> <Hint name="invert_sraw_wb" value=""/> @@ -1270,7 +1153,6 @@ <Camera make="Canon" model="Canon EOS 6D Mark II" mode="sRaw2" decoder_version="9"> <ID make="Canon" model="EOS 6D Mark II">Canon EOS 6D Mark II</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="16383"/> <Hints> <Hint name="sraw_new" value=""/> <Hint name="invert_sraw_wb" value=""/> @@ -1292,9 +1174,6 @@ <Color x="1" y="1">GREEN</Color> </CFA> <Crop x="158" y="52" width="5202" height="3464"/> - <Sensor black="2049" white="15400"/> - <Sensor black="2048" white="13600" iso_list="100 125"/> - <Sensor black="2048" white="12600" iso_list="160 320 640 1250 2500"/> <BlackAreas> <Vertical x="8" width="156"/> <Horizontal y="32" height="18"/> @@ -1310,7 +1189,6 @@ <Camera make="Canon" model="Canon EOS 7D" mode="sRaw1"> <ID make="Canon" model="EOS 7D">Canon EOS 7D</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="30000"/> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">6844 -996 -856</ColorMatrixRow> @@ -1322,7 +1200,6 @@ <Camera make="Canon" model="Canon EOS 7D" mode="sRaw2"> <ID make="Canon" model="EOS 7D">Canon EOS 7D</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="30000"/> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">6844 -996 -856</ColorMatrixRow> @@ -1340,11 +1217,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="72" y="38" width="0" height="0"/> - <Sensor black="2048" white="15100"/> - <Sensor black="2047" white="13400" iso_list="100 125"/> - <Sensor black="2048" white="12400" iso_list="160 320 640 1250 2500 5000"/> - <Sensor black="2047" white="15300" iso_list="10000 12800 16000 25600"/> - <Sensor black="2040" white="16000" iso_list="51200"/> <BlackAreas> <Vertical x="4" width="64"/> <Horizontal y="24" height="8"/> @@ -1360,7 +1232,6 @@ <Camera make="Canon" model="Canon EOS 7D Mark II" mode="sRaw1"> <ID make="Canon" model="EOS 7D Mark II">Canon EOS 7D Mark II</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="30000"/> <Hints> <Hint name="sraw_new" value=""/> <Hint name="invert_sraw_wb" value=""/> @@ -1376,7 +1247,6 @@ <Camera make="Canon" model="Canon EOS 7D Mark II" mode="sRaw2"> <ID make="Canon" model="EOS 7D Mark II">Canon EOS 7D Mark II</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="30000"/> <Hints> <Hint name="sraw_new" value=""/> <Hint name="invert_sraw_wb" value=""/> @@ -1398,8 +1268,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="42" y="18" width="3906" height="2602"/> - <Sensor black="255" white="3650" iso_min="0" iso_max="199"/> - <Sensor black="255" white="4036"/> <BlackAreas> <Vertical x="0" width="41"/> <Horizontal y="2" height="14"/> @@ -1407,6 +1275,7 @@ <Aliases> <Alias id="EOS Digital Rebel XS">Canon EOS DIGITAL REBEL XS</Alias> <Alias id="EOS Kiss Digital F">Canon EOS Kiss Digital F</Alias> + <Alias id="EOS Kiss F">Canon EOS Kiss F</Alias> </Aliases> <ColorMatrices> <ColorMatrix planes="3"> @@ -1425,13 +1294,13 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="64" y="20" width="0" height="0"/> - <Sensor black="2036" white="15500"/> <BlackAreas> <Vertical x="0" width="58"/> <Horizontal y="4" height="12"/> </BlackAreas> <Aliases> <Alias id="EOS Rebel T3">Canon EOS REBEL T3</Alias> + <Alias id="EOS Kiss X50">Canon EOS Kiss X50</Alias> </Aliases> <ColorMatrices> <ColorMatrix planes="3"> @@ -1450,8 +1319,6 @@ <Color x="1" y="1">GREEN</Color> </CFA> <Crop x="146" y="54" width="0" height="0"/> - <Sensor black="2046" white="12279" iso_min="0" iso_max="199"/> - <Sensor black="2046" white="15000"/> <BlackAreas> <Vertical x="0" width="140"/> <Horizontal y="4" height="44"/> @@ -1477,10 +1344,6 @@ <Color x="1" y="1">GREEN</Color> </CFA> <Crop x="146" y="54" width="0" height="0"/> - <Sensor black="2048" white="15000"/> - <Sensor black="2046" white="12279" iso_list="100"/> - <Sensor black="2046" white="15000" iso_list="200"/> - <Sensor black="2047" white="15000" iso_list="3200"/> <BlackAreas> <Vertical x="0" width="140"/> <Horizontal y="4" height="44"/> @@ -1506,8 +1369,6 @@ <Color x="1" y="1">GREEN</Color> </CFA> <Crop x="78" y="42" width="-4" height="-6"/> - <Sensor black="2048" white="15092"/> - <Sensor black="2048" white="12277" iso_list="100"/> <BlackAreas> <Vertical x="0" width="70"/> <Horizontal y="4" height="30"/> @@ -1515,6 +1376,7 @@ <Aliases> <Alias id="EOS Rebel T7">Canon EOS Rebel T7</Alias> <Alias id="EOS 1500D">Canon EOS 1500D</Alias> + <Alias id="EOS Kiss X90">Canon EOS Kiss X90</Alias> </Aliases> <ColorMatrices> <ColorMatrix planes="3"> @@ -1533,8 +1395,6 @@ <Color x="1" y="1">GREEN</Color> </CFA> <Crop x="146" y="56" width="0" height="0"/> - <Sensor black="2051" white="15000"/> - <Sensor black="2046" white="12279" iso_list="100"/> <BlackAreas> <Vertical x="0" width="130"/> <Horizontal y="4" height="40"/> @@ -1586,8 +1446,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="76" y="56" width="0" height="0"/> - <Sensor black="2026" white="13584" iso_min="0" iso_max="199"/> - <Sensor black="2026" white="15304"/> <BlackAreas> <Vertical x="0" width="70"/> <Horizontal y="4" height="44"/> @@ -1609,8 +1467,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="72" y="52" width="0" height="0"/> - <Sensor black="2026" white="13584" iso_min="0" iso_max="199"/> - <Sensor black="2026" white="15304"/> <BlackAreas> <Vertical x="0" width="70"/> <Horizontal y="4" height="44"/> @@ -1632,14 +1488,10 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="72" y="34" width="0" height="0"/> - <Sensor black="2048" white="16000"/> <BlackAreas> <Vertical x="2" width="68"/> <Horizontal y="2" height="30"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">6362 -823 -847</ColorMatrixRow> @@ -1657,17 +1509,10 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="266" y="38" width="0" height="0"/> - <Sensor black="2048" white="16000"/> - <Sensor black="512" white="16000" iso_list="100 125 200 250"/> - <Sensor black="512" white="13200" iso_list="160"/> - <Sensor black="2048" white="13200" iso_list="320 640 1250 2500 5000"/> <BlackAreas> <Vertical x="4" width="260"/> <Horizontal y="4" height="30"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">8532 -701 -1167</ColorMatrixRow> @@ -1685,17 +1530,10 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="266" y="42" width="-6" height="-4"/> - <Sensor black="2048" white="16000"/> - <Sensor black="512" white="16000" iso_list="100 125 200 250"/> - <Sensor black="512" white="13200" iso_list="160"/> - <Sensor black="2048" white="13200" iso_list="320 640 1250 2500 5000"/> <BlackAreas> <Vertical x="4" width="260"/> <Horizontal y="4" height="30"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">8532 -701 -1167</ColorMatrixRow> @@ -1713,14 +1551,10 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="72" y="52" width="0" height="-2"/> - <Sensor black="2048" white="16000"/> <BlackAreas> <Vertical x="2" width="68"/> <Horizontal y="2" height="40"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">6400 -480 -888</ColorMatrixRow> @@ -1738,17 +1572,10 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="266" y="42" width="-6" height="-4"/> - <Sensor black="2048" white="16000"/> - <Sensor black="512" white="16000" iso_list="100 125 200 250"/> - <Sensor black="512" white="13200" iso_list="160"/> - <Sensor black="2048" white="13200" iso_list="320 640 1250 2500 5000"/> <BlackAreas> <Vertical x="4" width="260"/> <Horizontal y="4" height="30"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">8532 -701 -1167</ColorMatrixRow> @@ -1775,6 +1602,9 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="Canon" model="Canon EOS-1D C" supported="unknown-no-samples"> + <ID make="Canon" model="EOS-1D C">Canon EOS-1D C</ID> + </Camera> <Camera make="Canon" model="Canon EOS-1DS" decoder_version="8"> <ID make="Canon" model="EOS-1Ds">Canon EOS-1Ds</ID> <CFA width="2" height="2"> @@ -1833,9 +1663,6 @@ <Vertical x="0" width="72"/> <Horizontal y="2" height="8"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="68"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">6264 -582 -724</ColorMatrixRow> @@ -1891,7 +1718,7 @@ <Camera make="Canon" model="Canon EOS-1D Mark III" mode="sRaw1"> <ID make="Canon" model="EOS-1D Mark III">Canon EOS-1D Mark III</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="65535"/> + <Sensor black="0" white="16383"/> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">6291 -540 -976</ColorMatrixRow> @@ -1903,7 +1730,7 @@ <Camera make="Canon" model="Canon EOS-1D Mark III" mode="sRaw2"> <ID make="Canon" model="EOS-1D Mark III">Canon EOS-1D Mark III</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="65535"/> + <Sensor black="0" white="16383"/> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">6291 -540 -976</ColorMatrixRow> @@ -1921,7 +1748,6 @@ <Color x="1" y="1">GREEN</Color> </CFA> <Crop x="144" y="46" width="-64" height="-2"/> - <Sensor black="2000" white="13000"/> <BlackAreas> <Vertical x="0" width="140"/> <Horizontal y="26" height="16"/> @@ -1937,7 +1763,6 @@ <Camera make="Canon" model="Canon EOS-1D Mark IV" mode="sRaw1"> <ID make="Canon" model="EOS-1D Mark IV">Canon EOS-1D Mark IV</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="65535"/> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">6014 -220 -795</ColorMatrixRow> @@ -1949,7 +1774,6 @@ <Camera make="Canon" model="Canon EOS-1D Mark IV" mode="sRaw2"> <ID make="Canon" model="EOS-1D Mark IV">Canon EOS-1D Mark IV</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="65535"/> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">6014 -220 -795</ColorMatrixRow> @@ -1972,9 +1796,6 @@ <Vertical x="0" width="96"/> <Horizontal y="2" height="10"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="68"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">6517 -602 -867</ColorMatrixRow> @@ -1992,7 +1813,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="62" y="20" width="5640" height="3752"/> - <Sensor black="1021" white="15100"/> <BlackAreas> <Vertical x="0" width="60"/> <Horizontal y="4" height="14"/> @@ -2008,7 +1828,7 @@ <Camera make="Canon" model="Canon EOS-1Ds Mark III" mode="sRaw1"> <ID make="Canon" model="EOS-1Ds Mark III">Canon EOS-1Ds Mark III</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="65535"/> + <Sensor black="0" white="16383"/> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">5859 -211 -930</ColorMatrixRow> @@ -2020,7 +1840,7 @@ <Camera make="Canon" model="Canon EOS-1Ds Mark III" mode="sRaw2"> <ID make="Canon" model="EOS-1Ds Mark III">Canon EOS-1Ds Mark III</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="65535"/> + <Sensor black="0" white="16383"/> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">5859 -211 -930</ColorMatrixRow> @@ -2038,7 +1858,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="128" y="102" width="0" height="-2"/> - <Sensor black="2050" white="15100"/> <BlackAreas> <Vertical x="0" width="120"/> <Horizontal y="0" height="98"/> @@ -2054,7 +1873,6 @@ <Camera make="Canon" model="Canon EOS-1D X" mode="sRaw1"> <ID make="Canon" model="EOS-1D X">Canon EOS-1D X</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="65535"/> <Hints> <Hint name="sraw_new" value=""/> <Hint name="invert_sraw_wb" value=""/> @@ -2070,7 +1888,6 @@ <Camera make="Canon" model="Canon EOS-1D X" mode="sRaw2"> <ID make="Canon" model="EOS-1D X">Canon EOS-1D X</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="65535"/> <Hints> <Hint name="sraw_new" value=""/> <Hint name="invert_sraw_wb" value=""/> @@ -2092,13 +1909,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="74" y="40" width="-2" height="0"/> - <Sensor black="2048" white="14888"/> - <Sensor black="512" white="13898" iso_list="50 100"/> - <Sensor black="512" white="14888" iso_list="125 160 200 250"/> - <Sensor black="2049" white="14888" iso_list="1600 2500 51200"/> - <Sensor black="2050" white="13533" iso_list="102400"/> - <Sensor black="2048" white="13533" iso_list="204800"/> - <Sensor black="2049" white="13533" iso_list="409600"/> <BlackAreas> <Vertical x="0" width="68"/> <Horizontal y="0" height="36"/> @@ -2114,7 +1924,6 @@ <Camera make="Canon" model="Canon EOS-1D X Mark II" mode="sRaw1"> <ID make="Canon" model="EOS-1D X Mark II">Canon EOS-1D X Mark II</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="65535"/> <Hints> <Hint name="sraw_new" value=""/> <Hint name="invert_sraw_wb" value=""/> @@ -2130,7 +1939,6 @@ <Camera make="Canon" model="Canon EOS-1D X Mark II" mode="sRaw2"> <ID make="Canon" model="EOS-1D X Mark II">Canon EOS-1D X Mark II</ID> <Crop x="0" y="0" width="0" height="0"/> - <Sensor black="0" white="65535"/> <Hints> <Hint name="sraw_new" value=""/> <Hint name="invert_sraw_wb" value=""/> @@ -2179,6 +1987,9 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="Canon" model="Canon PowerShot Pro90 IS" supported="unknown-no-samples"> + <ID make="Canon" model="PowerShot Pro90 IS">Canon PowerShot Pro90 IS</ID> + </Camera> <Camera make="Canon" model="Canon PowerShot G1"> <ID make="Canon" model="PowerShot G1">Canon PowerShot G1</ID> <CFA width="2" height="2"> @@ -2260,14 +2071,10 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="96" y="17" width="0" height="0"/> - <Sensor black="2047" white="16000"/> <BlackAreas> <Vertical x="0" width="90"/> <Horizontal y="0" height="16"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">9701 -3857 -921</ColorMatrixRow> @@ -2307,10 +2114,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="96" y="17" width="0" height="0"/> - <Sensor black="2047" white="16000"/> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">9602 -3823 -937</ColorMatrixRow> @@ -2354,10 +2157,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="96" y="18" width="0" height="0"/> - <Sensor black="511" white="4000"/> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">9602 -3823 -937</ColorMatrixRow> @@ -2375,18 +2174,10 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="96" y="22" width="0" height="0"/> - <Sensor black="2047" white="16000"/> - <Sensor black="2046" white="16000" iso_list="1600 2000 2500"/> - <Sensor black="2048" white="16000" iso_list="3200 4000"/> - <Sensor black="2049" white="16000" iso_list="5000 6400 8000"/> - <Sensor black="2050" white="16000" iso_list="10000 12800"/> <BlackAreas> <Vertical x="0" width="76"/> <Horizontal y="0" height="14"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">9602 -3823 -937</ColorMatrixRow> @@ -2404,14 +2195,10 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="82" y="52" width="-14" height="0"/> - <Sensor black="0" white="16383"/> <BlackAreas> <Vertical x="0" width="68"/> <Horizontal y="0" height="46"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">7378 -1255 -1043</ColorMatrixRow> @@ -2429,14 +2216,10 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="82" y="52" width="-14" height="0"/> - <Sensor black="0" white="16000"/> <BlackAreas> <Vertical x="0" width="68"/> <Horizontal y="0" height="46"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">7378 -1255 -1043</ColorMatrixRow> @@ -2454,13 +2237,6 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="266" y="42" width="-6" height="-4"/> - <Sensor black="2048" white="16000"/> - <Sensor black="512" white="16000" iso_list="100 125 200 250"/> - <Sensor black="512" white="13200" iso_list="160"/> - <Sensor black="2048" white="13200" iso_list="320 640 1250 2500 5000"/> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">8532 -701 -1167</ColorMatrixRow> @@ -2478,14 +2254,10 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="54" y="14" width="-12" height="-18"/> - <Sensor black="120" white="4095"/> <BlackAreas> <Vertical x="0" width="50"/> <Horizontal y="0" height="10"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">13244 -5501 -1248</ColorMatrixRow> @@ -2503,16 +2275,12 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="10" y="18" width="-56" height="-14"/> - <Sensor black="120" white="4095"/> <BlackAreas> <Vertical x="0" width="10"/> <Vertical x="3696" width="48"/> <Horizontal y="0" height="14"/> <Horizontal y="2778" height="6"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">12177 -4817 -1069</ColorMatrixRow> @@ -2530,14 +2298,10 @@ <Color x="1" y="1">GREEN</Color> </CFA> <Crop x="12" y="13" width="4432" height="3323"/> - <Sensor black="128" white="4095"/> <BlackAreas> <Vertical x="0" width="10"/> <Horizontal y="0" height="8"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">11093 -3906 -1028</ColorMatrixRow> @@ -2577,14 +2341,10 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="96" y="18" width="0" height="0"/> - <Sensor black="2047" white="16000"/> <BlackAreas> <Vertical x="0" width="70"/> <Horizontal y="0" height="10"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">9602 -3823 -937</ColorMatrixRow> @@ -2602,14 +2362,10 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="104" y="22" width="-6" height="-6"/> - <Sensor black="2048" white="16000"/> <BlackAreas> <Vertical x="0" width="76"/> <Horizontal y="0" height="14"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">10056 -4131 -944</ColorMatrixRow> @@ -2627,15 +2383,10 @@ <Color x="1" y="1">GREEN</Color> </CFA> <Crop x="106" y="12" width="-10" height="-66"/> - <Sensor black="500" white="2800" iso_min="12800" iso_max="12800"/> - <Sensor black="128" white="4095"/> <BlackAreas> <Vertical x="0" width="100"/> <Horizontal y="3062" height="60"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">7474 -2301 -567</ColorMatrixRow> @@ -2653,14 +2404,10 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="96" y="18" width="-24" height="0"/> - <Sensor black="0" white="4095"/> <BlackAreas> <Vertical x="0" width="80"/> <Horizontal y="0" height="16"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">8020 -2687 -682</ColorMatrixRow> @@ -2678,14 +2425,10 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="192" y="12" width="3958" height="2760"/> - <Sensor black="125" white="4095"/> <BlackAreas> <Vertical x="0" width="188"/> <Horizontal y="0" height="10"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">6578 -259 -502</ColorMatrixRow> @@ -2847,14 +2590,10 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="10" y="18" width="-54" height="-10"/> - <Sensor black="125" white="4095"/> <BlackAreas> <Vertical x="0" width="6"/> <Horizontal y="0" height="14"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">12374 -5016 -1049</ColorMatrixRow> @@ -2872,16 +2611,12 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="66" y="24" width="-20" height="-24"/> - <Sensor black="125" white="4095"/> <BlackAreas> <Vertical x="0" width="50"/> <Vertical x="3738" width="6"/> <Horizontal y="0" height="10"/> <Horizontal y="2774" height="10"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">13440 -5896 -1279</ColorMatrixRow> @@ -2899,15 +2634,11 @@ <Color x="1" y="1">GREEN</Color> </CFA> <Crop x="104" y="12" width="-10" height="-66"/> - <Sensor black="125" white="4095"/> <BlackAreas> <Vertical x="0" width="100"/> <Horizontal y="0" height="10"/> <Horizontal y="3062" height="60"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">7968 -2565 -636</ColorMatrixRow> @@ -2925,15 +2656,10 @@ <Color x="1" y="1">GREEN</Color> </CFA> <Crop x="106" y="12" width="-10" height="-66"/> - <Sensor black="500" white="3072" iso_min="12800" iso_max="12800"/> - <Sensor black="128" white="4095"/> <BlackAreas> <Vertical x="0" width="100"/> <Horizontal y="3062" height="60"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">8039 -2643 -654</ColorMatrixRow> @@ -2951,14 +2677,10 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="121" y="30" width="-47" height="-14"/> - <Sensor black="0" white="4000"/> <BlackAreas> <Vertical x="0" width="74"/> <Horizontal y="0" height="12"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">6961 -1685 -695</ColorMatrixRow> @@ -2976,14 +2698,10 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="100" y="20" width="-10" height="0"/> - <Sensor black="127" white="4095"/> <BlackAreas> <Vertical x="6" width="70"/> <Horizontal y="0" height="16"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">12432 -4753 -1247</ColorMatrixRow> @@ -3001,14 +2719,10 @@ <Color x="1" y="1">BLUE</Color> </CFA> <Crop x="112" y="26" width="-24" height="-10"/> - <Sensor black="128" white="4000"/> <BlackAreas> <Vertical x="0" width="70"/> <Horizontal y="0" height="16"/> </BlackAreas> - <Hints> - <Hint name="wb_offset" value="142"/> - </Hints> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">13161 -5451 -1344</ColorMatrixRow> @@ -4388,6 +4102,24 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="NIKON CORPORATION" model="NIKON Z f" mode="14bit-compressed"> + <ID make="Nikon" model="Z f">Nikon Z f</ID> + <CFA width="2" height="2"> + <Color x="0" y="0">RED</Color> + <Color x="1" y="0">GREEN</Color> + <Color x="0" y="1">GREEN</Color> + <Color x="1" y="1">BLUE</Color> + </CFA> + <Crop x="0" y="0" width="0" height="0"/> + <Sensor black="1008" white="15892"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">11607 -4491 -977</ColorMatrixRow> + <ColorMatrixRow plane="1">-4522 12460 2304</ColorMatrixRow> + <ColorMatrixRow plane="2">-458 1519 7616</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> <Camera make="NIKON CORPORATION" model="NIKON Z 30" mode="12bit-compressed"> <ID make="Nikon" model="Z 30">Nikon Z 30</ID> <CFA width="2" height="2"> @@ -5834,6 +5566,9 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="NIKON CORPORATION" model="NIKON D810A" supported="unknown-no-samples"> + <ID make="Nikon" model="D810A">Nikon D810A</ID> + </Camera> <Camera make="NIKON CORPORATION" model="NIKON D850" mode="12bit-compressed"> <ID make="Nikon" model="D850">Nikon D850</ID> <CFA width="2" height="2"> @@ -6426,6 +6161,27 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="NIKON CORPORATION" model="COOLPIX A1000" mode="12bit-uncompressed"> + <ID make="Nikon" model="Coolpix A1000">Nikon Coolpix A1000</ID> + <CFA width="2" height="2"> + <Color x="0" y="0">RED</Color> + <Color x="1" y="0">GREEN</Color> + <Color x="0" y="1">GREEN</Color> + <Color x="1" y="1">BLUE</Color> + </CFA> + <Crop x="0" y="0" width="0" height="0"/> + <Sensor black="0" white="3890"/> + <Hints> + <Hint name="real_bpp" value="16"/> + </Hints> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">10601 -3487 -1127</ColorMatrixRow> + <ColorMatrixRow plane="1">-2931 11443 1676</ColorMatrixRow> + <ColorMatrixRow plane="2">-587 1740 5278</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> <Camera make="NIKON" model="COOLPIX B700"> <ID make="Nikon" model="COOLPIX B700">Nikon Coolpix B700</ID> <CFA width="2" height="2"> @@ -7453,6 +7209,9 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="OM Digital Solutions" model="OM-1MarkII" supported="unknown-no-samples"> + <ID make="OM System" model="OM-1 Mark II">OM Digital Solutions OM-1 Mark II</ID> + </Camera> <Camera make="OM Digital Solutions" model="OM-5"> <ID make="OM System" model="OM-5">OM Digital Solutions OM-5</ID> <Crop x="0" y="0" width="-30" height="0"/> @@ -7465,6 +7224,24 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="OM Digital Solutions" model="TG-7"> + <ID make="OM System" model="TG-7">OM Digital Solutions TG-7</ID> + <CFA width="2" height="2"> + <Color x="0" y="0">GREEN</Color> + <Color x="1" y="0">RED</Color> + <Color x="0" y="1">BLUE</Color> + <Color x="1" y="1">GREEN</Color> + </CFA> + <Crop x="0" y="0" width="-24" height="0"/> + <Sensor black="257" white="4000"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">10899 -3833 -1082</ColorMatrixRow> + <ColorMatrixRow plane="1">-2112 10736 1575</ColorMatrixRow> + <ColorMatrixRow plane="2">-267 1452 5269</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> <Camera make="Panasonic" model="DMC-CM1"> <ID make="Panasonic" model="DMC-CM1">Panasonic DMC-CM1</ID> <Crop x="0" y="0" width="0" height="0"/> @@ -7489,6 +7266,9 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="Panasonic" model="DMC-CM10" supported="unknown-no-samples"> + <ID make="Panasonic" model="DMC-CM10">Panasonic DMC-CM10</ID> + </Camera> <Camera make="Panasonic" model="DMC-FX150" supported="no-samples"> <ID make="Panasonic" model="DMC-FX150">Panasonic DMC-FX150</ID> <Crop x="0" y="0" width="4429" height="3324"/> @@ -7669,6 +7449,66 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="LEICA" model="V-LUX 4"> + <ID make="Leica" model="V-Lux 4">Leica V-LUX 4</ID> + <Crop x="0" y="0" width="-128" height="-4"/> + <Sensor black="143" white="3956"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">8112 -2563 -740</ColorMatrixRow> + <ColorMatrixRow plane="1">-3730 11784 2197</ColorMatrixRow> + <ColorMatrixRow plane="2">-941 2075 4933</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> + <Camera make="LEICA" model="V-LUX 4" mode="4:3"> + <ID make="Leica" model="V-Lux 4">Leica V-LUX 4</ID> + <Crop x="0" y="0" width="-128" height="-4"/> + <Sensor black="143" white="3956"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">8112 -2563 -740</ColorMatrixRow> + <ColorMatrixRow plane="1">-3730 11784 2197</ColorMatrixRow> + <ColorMatrixRow plane="2">-941 2075 4933</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> + <Camera make="LEICA" model="V-LUX 4" mode="3:2"> + <ID make="Leica" model="V-Lux 4">Leica V-LUX 4</ID> + <Crop x="0" y="0" width="-128" height="0"/> + <Sensor black="143" white="3956"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">8112 -2563 -740</ColorMatrixRow> + <ColorMatrixRow plane="1">-3730 11784 2197</ColorMatrixRow> + <ColorMatrixRow plane="2">-941 2075 4933</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> + <Camera make="LEICA" model="V-LUX 4" mode="1:1"> + <ID make="Leica" model="V-Lux 4">Leica V-LUX 4</ID> + <Crop x="0" y="0" width="-16" height="0"/> + <Sensor black="143" white="3956"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">8112 -2563 -740</ColorMatrixRow> + <ColorMatrixRow plane="1">-3730 11784 2197</ColorMatrixRow> + <ColorMatrixRow plane="2">-941 2075 4933</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> + <Camera make="LEICA" model="V-LUX 4" mode="16:9"> + <ID make="Leica" model="V-Lux 4">Leica V-LUX 4</ID> + <Crop x="0" y="0" width="-128" height="0"/> + <Sensor black="143" white="3956"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">8112 -2563 -740</ColorMatrixRow> + <ColorMatrixRow plane="1">-3730 11784 2197</ColorMatrixRow> + <ColorMatrixRow plane="2">-941 2075 4933</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> <Camera make="Panasonic" model="DMC-FZ2000"> <ID make="Panasonic" model="DMC-FZ2000">Panasonic DMC-FZ2000</ID> <Crop x="0" y="0" width="0" height="0"/> @@ -7879,6 +7719,42 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="Panasonic" model="DMC-G10" mode="3:2"> + <ID make="Panasonic" model="DMC-G10">Panasonic DMC-G10</ID> + <Crop x="0" y="0" width="-44" height="0"/> + <Sensor black="0" white="3900"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">10113 -3400 -1114</ColorMatrixRow> + <ColorMatrixRow plane="1">-4765 12683 2317</ColorMatrixRow> + <ColorMatrixRow plane="2">-377 1437 6710</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> + <Camera make="Panasonic" model="DMC-G10" mode="16:9"> + <ID make="Panasonic" model="DMC-G10">Panasonic DMC-G10</ID> + <Crop x="0" y="0" width="-44" height="0"/> + <Sensor black="0" white="3900"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">10113 -3400 -1114</ColorMatrixRow> + <ColorMatrixRow plane="1">-4765 12683 2317</ColorMatrixRow> + <ColorMatrixRow plane="2">-377 1437 6710</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> + <Camera make="Panasonic" model="DMC-G10" mode="1:1"> + <ID make="Panasonic" model="DMC-G10">Panasonic DMC-G10</ID> + <Crop x="0" y="0" width="-44" height="0"/> + <Sensor black="0" white="3900"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">10113 -3400 -1114</ColorMatrixRow> + <ColorMatrixRow plane="1">-4765 12683 2317</ColorMatrixRow> + <ColorMatrixRow plane="2">-377 1437 6710</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> <Camera make="Panasonic" model="DMC-GH1" mode="4:3"> <ID make="Panasonic" model="DMC-GH1">Panasonic DMC-GH1</ID> <Crop x="0" y="0" width="-44" height="0"/> @@ -8164,6 +8040,9 @@ <ID make="Panasonic" model="DMC-GM1">Panasonic DMC-GM1</ID> <Crop x="0" y="0" width="-206" height="0"/> <Sensor black="143" white="3971"/> + <Aliases> + <Alias>DMC-GM1S</Alias> + </Aliases> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">6770 -1895 -744</ColorMatrixRow> @@ -8176,6 +8055,9 @@ <ID make="Panasonic" model="DMC-GM1">Panasonic DMC-GM1</ID> <Crop x="0" y="0" width="-206" height="0"/> <Sensor black="143" white="3971"/> + <Aliases> + <Alias>DMC-GM1S</Alias> + </Aliases> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">6770 -1895 -744</ColorMatrixRow> @@ -8188,6 +8070,9 @@ <ID make="Panasonic" model="DMC-GM1">Panasonic DMC-GM1</ID> <Crop x="0" y="0" width="-206" height="0"/> <Sensor black="143" white="3971"/> + <Aliases> + <Alias>DMC-GM1S</Alias> + </Aliases> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">6770 -1895 -744</ColorMatrixRow> @@ -8200,6 +8085,9 @@ <ID make="Panasonic" model="DMC-GM1">Panasonic DMC-GM1</ID> <Crop x="0" y="0" width="0" height="0"/> <Sensor black="143" white="3971"/> + <Aliases> + <Alias>DMC-GM1S</Alias> + </Aliases> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">6770 -1895 -744</ColorMatrixRow> @@ -8212,6 +8100,9 @@ <ID make="Panasonic" model="DMC-GM1">Panasonic DMC-GM1</ID> <Crop x="0" y="0" width="-206" height="0"/> <Sensor black="143" white="3971"/> + <Aliases> + <Alias>DMC-GM1S</Alias> + </Aliases> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">6770 -1895 -744</ColorMatrixRow> @@ -9292,6 +9183,30 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="LEICA CAMERA AG" model="V-Lux 5"> + <ID make="Leica" model="V-Lux 5">Leica V-Lux 5</ID> + <Crop x="0" y="0" width="0" height="0"/> + <Sensor black="143" white="4095"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">9803 -4185 -992</ColorMatrixRow> + <ColorMatrixRow plane="1">-4066 12578 1628</ColorMatrixRow> + <ColorMatrixRow plane="2">-838 1824 5288</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> + <Camera make="LEICA CAMERA AG" model="V-Lux 5" mode="3:2"> + <ID make="Leica" model="V-Lux 5">Leica V-Lux 5</ID> + <Crop x="0" y="0" width="0" height="0"/> + <Sensor black="143" white="4095"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">9803 -4185 -992</ColorMatrixRow> + <ColorMatrixRow plane="1">-4066 12578 1628</ColorMatrixRow> + <ColorMatrixRow plane="2">-838 1824 5288</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> <Camera make="Panasonic" model="DMC-GX1"> <ID make="Panasonic" model="DMC-GX1">Panasonic DMC-GX1</ID> <Crop x="0" y="0" width="-154" height="0"/> @@ -9468,6 +9383,9 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="Panasonic" model="DMC-LC1" supported="unknown-no-samples"> + <ID make="Panasonic" model="DMC-LC1">Panasonic DMC-LC1</ID> + </Camera> <Camera make="Panasonic" model="DMC-LF1"> <ID make="Panasonic" model="DMC-LF1">Panasonic DMC-LF1</ID> <Crop x="0" y="0" width="-130" height="0"/> @@ -9764,6 +9682,9 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="LEICA" model="D-LUX2" supported="unknown-no-samples"> + <ID make="Leica" model="D-Lux 2">Leica D-Lux2</ID> + </Camera> <Camera make="LEICA" model="D-LUX 3" decoder_version="2"> <ID make="Leica" model="D-LUX 3">Leica D-LUX 3</ID> <CFA width="2" height="2"> @@ -9944,6 +9865,12 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="LEICA" model="V-LUX 2" supported="unknown-no-samples"> + <ID make="Leica" model="V-LUX 2">Leica V-LUX 2</ID> + </Camera> + <Camera make="LEICA" model="V-LUX 3" supported="unknown-no-samples"> + <ID make="Leica" model="V-LUX 3">Leica V-LUX 3</ID> + </Camera> <Camera make="Panasonic" model="DMC-L10" decoder_version="2"> <ID make="Panasonic" model="DMC-L10">Panasonic DMC-L10</ID> <Crop x="0" y="0" width="-28" height="-1"/> @@ -10408,7 +10335,6 @@ </Camera> <Camera make="Panasonic" model="DMC-LX7"> <ID make="Panasonic" model="DMC-LX7">Panasonic DMC-LX7</ID> - <Crop x="0" y="0" width="-60" height="0"/> <Sensor black="150" white="3971"/> <ColorMatrices> <ColorMatrix planes="3"> @@ -10420,7 +10346,6 @@ </Camera> <Camera make="Panasonic" model="DMC-LX7" mode="4:3"> <ID make="Panasonic" model="DMC-LX7">Panasonic DMC-LX7</ID> - <Crop x="0" y="0" width="-60" height="0"/> <Sensor black="150" white="3971"/> <ColorMatrices> <ColorMatrix planes="3"> @@ -10432,7 +10357,6 @@ </Camera> <Camera make="Panasonic" model="DMC-LX7" mode="3:2"> <ID make="Panasonic" model="DMC-LX7">Panasonic DMC-LX7</ID> - <Crop x="0" y="0" width="-128" height="0"/> <Sensor black="150" white="3971"/> <ColorMatrices> <ColorMatrix planes="3"> @@ -10444,7 +10368,6 @@ </Camera> <Camera make="Panasonic" model="DMC-LX7" mode="16:9"> <ID make="Panasonic" model="DMC-LX7">Panasonic DMC-LX7</ID> - <Crop x="0" y="0" width="-160" height="0"/> <Sensor black="150" white="3971"/> <ColorMatrices> <ColorMatrix planes="3"> @@ -10456,7 +10379,6 @@ </Camera> <Camera make="Panasonic" model="DMC-LX7" mode="1:1"> <ID make="Panasonic" model="DMC-LX7">Panasonic DMC-LX7</ID> - <Crop x="0" y="0" width="-48" height="0"/> <Sensor black="150" white="3971"/> <ColorMatrices> <ColorMatrix planes="3"> @@ -11372,7 +11294,6 @@ </Camera> <Camera make="Panasonic" model="DC-G9"> <ID make="Panasonic" model="DC-G9">Panasonic DC-G9</ID> - <Crop x="0" y="0" width="-58" height="0"/> <Sensor black="148" white="4095"/> <ColorMatrices> <ColorMatrix planes="3"> @@ -11384,7 +11305,6 @@ </Camera> <Camera make="Panasonic" model="DC-G9" mode="4:3"> <ID make="Panasonic" model="DC-G9">Panasonic DC-G9</ID> - <Crop x="0" y="0" width="-58" height="0"/> <Sensor black="148" white="4095"/> <ColorMatrices> <ColorMatrix planes="3"> @@ -11632,7 +11552,14 @@ <Sensor black="142" white="4095"/> <Aliases> <Alias>DC-TZ200</Alias> + <Alias>DC-TZ200D</Alias> + <Alias>DC-TZ202D</Alias> + <Alias>DC-TZ220</Alias> + <Alias>DC-TZ220D</Alias> <Alias>DC-ZS200</Alias> + <Alias>DC-ZS200D</Alias> + <Alias>DC-ZS220</Alias> + <Alias>DC-ZS220D</Alias> </Aliases> <ColorMatrices> <ColorMatrix planes="3"> @@ -11648,7 +11575,14 @@ <Sensor black="142" white="4095"/> <Aliases> <Alias>DC-TZ200</Alias> + <Alias>DC-TZ200D</Alias> + <Alias>DC-TZ202D</Alias> + <Alias>DC-TZ220</Alias> + <Alias>DC-TZ220D</Alias> <Alias>DC-ZS200</Alias> + <Alias>DC-ZS200D</Alias> + <Alias>DC-ZS220</Alias> + <Alias>DC-ZS220D</Alias> </Aliases> <ColorMatrices> <ColorMatrix planes="3"> @@ -11820,6 +11754,9 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="PENTAX Corporation" model="PENTAX *ist DS2" supported="unknown-no-samples"> + <ID make="Pentax" model="*ist DS2">Pentax *ist DS2</ID> + </Camera> <Camera make="PENTAX Corporation" model="PENTAX K10D"> <ID make="Pentax" model="K10D">Pentax K10D</ID> <CFA width="2" height="2"> @@ -12036,6 +11973,11 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="RICOH IMAGING COMPANY, LTD." model="PENTAX K-3 Mark III Monochrome"> + <ID make="Pentax" model="K-3 Mark III Monochrome">PENTAX K-3 Mark III Monochrome</ID> + <Crop x="26" y="34" width="-28" height="-14"/> + <Sensor black="64" white="16315"/> + </Camera> <Camera make="PENTAX" model="PENTAX K-5" decoder_version="2"> <ID make="Pentax" model="K-5">PENTAX K-5</ID> <CFA width="2" height="2"> @@ -12184,6 +12126,24 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="RICOH IMAGING COMPANY, LTD." model="PENTAX KF"> + <ID make="Pentax" model="KF">PENTAX KF</ID> + <CFA width="2" height="2"> + <Color x="0" y="0">RED</Color> + <Color x="1" y="0">GREEN</Color> + <Color x="0" y="1">GREEN</Color> + <Color x="1" y="1">BLUE</Color> + </CFA> + <Crop x="62" y="30" width="0" height="-14"/> + <Sensor black="64" white="16319"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">8113 -2078 -1275</ColorMatrixRow> + <ColorMatrixRow plane="1">-4359 12953 1514</ColorMatrixRow> + <ColorMatrixRow plane="2">-1091 1955 6044</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> <Camera make="RICOH IMAGING COMPANY, LTD." model="PENTAX KP"> <ID make="Pentax" model="KP">Pentax KP</ID> <CFA width="2" height="2"> @@ -12637,6 +12597,24 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="SAMSUNG" model="NX3300"> + <ID make="Samsung" model="NX3300">Samsung NX3300</ID> + <CFA width="2" height="2"> + <Color x="0" y="0">GREEN</Color> + <Color x="1" y="0">RED</Color> + <Color x="0" y="1">BLUE</Color> + <Color x="1" y="1">GREEN</Color> + </CFA> + <Crop x="96" y="42" width="-32" height="-24"/> + <Sensor black="0" white="4095"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">8060 -2933 -761</ColorMatrixRow> + <ColorMatrixRow plane="1">-4504 12890 1762</ColorMatrixRow> + <ColorMatrixRow plane="2">-630 1489 5227</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> <Camera make="SAMSUNG" model="NX500"> <ID make="Samsung" model="NX500">Samsung NX500</ID> <CFA width="2" height="2"> @@ -12676,12 +12654,12 @@ </ColorMatrix> </ColorMatrices> </Camera> - <Camera make="SAMSUNG" model="EK-GN120" decoder_version="3" supported="no-samples"> - <ID make="Samsung" model="EK-GN120">Samsung EK-GN120</ID> + <Camera make="SAMSUNG" model="EK-GN120" decoder_version="3"> + <ID make="Samsung" model="EK-GN120">Samsung NX U</ID> <CFA width="2" height="2"> <Color x="0" y="0">GREEN</Color> - <Color x="1" y="0">BLUE</Color> - <Color x="0" y="1">RED</Color> + <Color x="1" y="0">RED</Color> + <Color x="0" y="1">BLUE</Color> <Color x="1" y="1">GREEN</Color> </CFA> <Crop x="45" y="25" width="-11" height="-29"/> @@ -13004,6 +12982,9 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="SONY" model="DSC-V3" supported="unknown-no-samples"> + <ID make="Sony" model="DSC-V3">Sony DSC-V3</ID> + </Camera> <Camera make="SONY" model="DSLR-A100" decoder_version="1"> <ID make="Sony" model="DSLR-A100">Sony DSLR-A100</ID> <CFA width="2" height="2"> @@ -13670,6 +13651,24 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="SONY" model="ILCE-6700"> + <ID make="Sony" model="ILCE-6700">Sony ILCE-6700</ID> + <CFA width="2" height="2"> + <Color x="0" y="0">RED</Color> + <Color x="1" y="0">GREEN</Color> + <Color x="0" y="1">GREEN</Color> + <Color x="1" y="1">BLUE</Color> + </CFA> + <Crop x="0" y="0" width="-28" height="0"/> + <Sensor black="512" white="16383"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">6972 -2408 -600</ColorMatrixRow> + <ColorMatrixRow plane="1">-4330 12101 2515</ColorMatrixRow> + <ColorMatrixRow plane="2">-388 1277 5847</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> <Camera make="SONY" model="ILCE-1"> <ID make="Sony" model="ILCE-1">Sony ILCE-1</ID> <CFA width="2" height="2"> @@ -13778,6 +13777,42 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="SONY" model="ILCE-7CM2"> + <ID make="Sony" model="ILCE-7CM2">Sony ILCE-7CM2</ID> + <CFA width="2" height="2"> + <Color x="0" y="0">RED</Color> + <Color x="1" y="0">GREEN</Color> + <Color x="0" y="1">GREEN</Color> + <Color x="1" y="1">BLUE</Color> + </CFA> + <Crop x="0" y="0" width="-8" height="0"/> + <Sensor black="512" white="16383"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">7460 -2365 -588</ColorMatrixRow> + <ColorMatrixRow plane="1">-5687 13442 2474</ColorMatrixRow> + <ColorMatrixRow plane="2">-624 1156 6584</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> + <Camera make="SONY" model="ILCE-7CR"> + <ID make="Sony" model="ILCE-7CR">Sony ILCE-7CR</ID> + <CFA width="2" height="2"> + <Color x="0" y="0">RED</Color> + <Color x="1" y="0">GREEN</Color> + <Color x="0" y="1">GREEN</Color> + <Color x="1" y="1">BLUE</Color> + </CFA> + <Crop x="0" y="0" width="-32" height="0"/> + <Sensor black="512" white="16383"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">8200 -2976 -719</ColorMatrixRow> + <ColorMatrixRow plane="1">-4296 12053 2532</ColorMatrixRow> + <ColorMatrixRow plane="2">-429 1282 5774</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> <Camera make="SONY" model="ILCE-7R"> <ID make="Sony" model="ILCE-7R">Sony ILCE-7R</ID> <CFA width="2" height="2"> @@ -13964,6 +13999,9 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="SONY" model="ILCE-9M3" supported="unknown-no-samples"> + <ID make="Sony" model="ILCE-9M3">Sony ILCE-9M3</ID> + </Camera> <Camera make="SONY" model="DSC-RX1"> <ID make="Sony" model="DSC-RX1">Sony DSC-RX1</ID> <CFA width="2" height="2"> @@ -14228,6 +14266,27 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="SONY" model="ZV-1M2" supported="unknown-no-samples"> + <ID make="Sony" model="ZV-1M2">Sony ZV-1M2</ID> + </Camera> + <Camera make="SONY" model="ZV-E1"> + <ID make="Sony" model="ZV-E1">Sony ZV-E1</ID> + <CFA width="2" height="2"> + <Color x="0" y="0">RED</Color> + <Color x="1" y="0">GREEN</Color> + <Color x="0" y="1">GREEN</Color> + <Color x="1" y="1">BLUE</Color> + </CFA> + <Crop x="0" y="0" width="-24" height="0"/> + <Sensor black="512" white="16383"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">6912 -2127 -469</ColorMatrixRow> + <ColorMatrixRow plane="1">-4470 12175 2587</ColorMatrixRow> + <ColorMatrixRow plane="2">-398 1478 6492</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> <Camera make="SONY" model="ZV-E10"> <ID make="Sony" model="ZV-E10">Sony ZV-E10</ID> <CFA width="2" height="2"> @@ -14246,6 +14305,24 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="SONY" model="ILME-FX3"> + <ID make="Sony" model="ILME-FX3">Sony ILME-FX3</ID> + <CFA width="2" height="2"> + <Color x="0" y="0">RED</Color> + <Color x="1" y="0">GREEN</Color> + <Color x="0" y="1">GREEN</Color> + <Color x="1" y="1">BLUE</Color> + </CFA> + <Crop x="0" y="0" width="-24" height="0"/> + <Sensor black="512" white="16383"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">6912 -2127 -469</ColorMatrixRow> + <ColorMatrixRow plane="1">-4470 12175 2587</ColorMatrixRow> + <ColorMatrixRow plane="2">-398 1478 6492</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> <Camera make="SONY" model="ILME-FX30"> <ID make="Sony" model="ILME-FX30">Sony ILME-FX30</ID> <CFA width="2" height="2"> @@ -14264,6 +14341,24 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="Sinar AG" model="Sinarback eVolution 75, Sinar p3 / f3"> + <ID make="Sinar" model="eVolution 75">Sinar eVolution 75</ID> + <CFA width="2" height="2"> + <Color x="0" y="0">GREEN</Color> + <Color x="1" y="0">RED</Color> + <Color x="0" y="1">BLUE</Color> + <Color x="1" y="1">GREEN</Color> + </CFA> + <Crop x="0" y="0" width="0" height="0"/> + <Sensor black="0" white="16383"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">16442 -2956 -2422</ColorMatrixRow> + <ColorMatrixRow plane="1">-2877 12128 750</ColorMatrixRow> + <ColorMatrixRow plane="2">-1136 6066 4559</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> <Camera make="Sinar Photography AG" model="Sinar Hy6/ Sinarback eXact" mode="dng" supported="no-samples"> <ID make="Sinar" model="Hy6">Sinar Hy6</ID> <CFA width="2" height="2"> @@ -14415,6 +14510,9 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="FUJIFILM" model="FinePix F710" supported="unknown-no-samples"> + <ID make="Fujifilm" model="FinePix F710">Fujifilm FinePix F710</ID> + </Camera> <Camera make="FUJIFILM" model="FinePix F770EXR"> <ID make="Fujifilm" model="FinePix F770EXR">Fujifilm FinePix F770EXR</ID> <CFA width="2" height="2"> @@ -14433,6 +14531,12 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="FUJIFILM" model="FinePix F800EXR" supported="unknown-no-samples"> + <ID make="Fujifilm" model="FinePix F800EXR">Fujifilm FinePix F800EXR</ID> + </Camera> + <Camera make="FUJIFILM" model="FinePix F810" supported="unknown-no-samples"> + <ID make="Fujifilm" model="FinePix F810">Fujifilm FinePix F810</ID> + </Camera> <Camera make="FUJIFILM" model="FinePix F900EXR"> <ID make="Fujifilm" model="FinePix F900EXR">Fujifilm FinePix F900EXR</ID> <CFA width="2" height="2"> @@ -14584,6 +14688,9 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="FUJIFILM" model="FinePix S20Pro" supported="unknown-no-samples"> + <ID make="Fujifilm" model="FinePix S20Pro">Fujifilm FinePix S20Pro</ID> + </Camera> <Camera make="FUJIFILM" model="FinePix S5000"> <ID make="Fujifilm" model="FinePix S5000">Fujifilm FinePix S5000</ID> <CFA2 width="2" height="2"> @@ -14603,6 +14710,9 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="FUJIFILM" model="FinePix S5100" supported="unknown-no-samples"> + <ID make="Fujifilm" model="FinePix S5100">Fujifilm FinePix S5100</ID> + </Camera> <Camera make="FUJIFILM" model="FinePix S5200"> <ID make="Fujifilm" model="FinePix S5200">Fujifilm FinePix S5200</ID> <CFA2 width="2" height="2"> @@ -14676,6 +14786,9 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="FUJIFILM" model="FinePix S9100" supported="unknown-no-samples"> + <ID make="Fujifilm" model="FinePix S9100">Fujifilm FinePix S9100</ID> + </Camera> <Camera make="FUJIFILM" model="FinePix S9500"> <ID make="Fujifilm" model="FinePix S9500">Fujifilm FinePix S9500</ID> <CFA2 width="2" height="2"> @@ -14736,6 +14849,25 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="FUJIFILM" model="FinePix SL1000"> + <ID make="Fujifilm" model="FinePix SL1000">Fujifilm FinePix SL1000</ID> + <CFA2 width="2" height="2"> + <ColorRow y="0">RG</ColorRow> + <ColorRow y="1">GB</ColorRow> + </CFA2> + <Crop x="0" y="0" width="0" height="0"/> + <Sensor black="200" white="4095"/> + <Hints> + <Hint name="jpeg32_bitorder" value=""/> + </Hints> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">11705 -4262 -1107</ColorMatrixRow> + <ColorMatrixRow plane="1">-2282 10791 1709</ColorMatrixRow> + <ColorMatrixRow plane="2">-555 1713 4945</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> <Camera make="FUJIFILM" model="FinePix HS10 HS11"> <ID make="Fujifilm" model="FinePix HS10 HS11">Fujifilm FinePix HS10 HS11</ID> <CFA width="2" height="2"> @@ -15066,6 +15198,42 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="FUJIFILM" model="GFX100 II"> + <ID make="Fujifilm" model="GFX100 II">Fujifilm GFX 100 II</ID> + <CFA width="2" height="2"> + <Color x="0" y="0">RED</Color> + <Color x="1" y="0">GREEN</Color> + <Color x="0" y="1">GREEN</Color> + <Color x="1" y="1">BLUE</Color> + </CFA> + <Crop x="0" y="0" width="-146" height="-6"/> + <Sensor black="0" white="0"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">12806 -5779 -1110</ColorMatrixRow> + <ColorMatrixRow plane="1">-3546 11507 2318</ColorMatrixRow> + <ColorMatrixRow plane="2">-177 996 5715</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> + <Camera make="FUJIFILM" model="GFX100 II" mode="compressed"> + <ID make="Fujifilm" model="GFX100 II">Fujifilm GFX 100 II</ID> + <CFA width="2" height="2"> + <Color x="0" y="0">RED</Color> + <Color x="1" y="0">GREEN</Color> + <Color x="0" y="1">GREEN</Color> + <Color x="1" y="1">BLUE</Color> + </CFA> + <Crop x="0" y="0" width="-146" height="-6"/> + <Sensor black="0" white="0"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">12806 -5779 -1110</ColorMatrixRow> + <ColorMatrixRow plane="1">-3546 11507 2318</ColorMatrixRow> + <ColorMatrixRow plane="2">-177 996 5715</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> <Camera make="FUJIFILM" model="X-Pro1"> <ID make="Fujifilm" model="X-Pro1">Fujifilm X-Pro1</ID> <CFA2 width="6" height="6"> @@ -15644,6 +15812,9 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="FUJIFILM" model="X-A20" supported="unknown-no-samples"> + <ID make="Fujifilm" model="X-A20">Fujifilm X-A20</ID> + </Camera> <Camera make="FUJIFILM" model="XQ1"> <ID make="Fujifilm" model="XQ1">Fujifilm XQ1</ID> <CFA2 width="6" height="6"> @@ -15844,6 +16015,46 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="FUJIFILM" model="X-S20"> + <ID make="Fujifilm" model="X-S20">Fujifilm X-S20</ID> + <CFA2 width="6" height="6"> + <ColorRow y="0">GGRGGB</ColorRow> + <ColorRow y="1">GGBGGR</ColorRow> + <ColorRow y="2">BRGRBG</ColorRow> + <ColorRow y="3">GGBGGR</ColorRow> + <ColorRow y="4">GGRGGB</ColorRow> + <ColorRow y="5">RBGBRG</ColorRow> + </CFA2> + <Crop x="0" y="12" width="-90" height="-6"/> + <Sensor black="1022" white="16383"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">12836 -5909 -1032</ColorMatrixRow> + <ColorMatrixRow plane="1">-3087 11132 2236</ColorMatrixRow> + <ColorMatrixRow plane="2">-35 872 5330</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> + <Camera make="FUJIFILM" model="X-S20" mode="compressed"> + <ID make="Fujifilm" model="X-S20">Fujifilm X-S20</ID> + <CFA2 width="6" height="6"> + <ColorRow y="0">GGRGGB</ColorRow> + <ColorRow y="1">GGBGGR</ColorRow> + <ColorRow y="2">BRGRBG</ColorRow> + <ColorRow y="3">GGBGGR</ColorRow> + <ColorRow y="4">GGRGGB</ColorRow> + <ColorRow y="5">RBGBRG</ColorRow> + </CFA2> + <Crop x="0" y="12" width="-90" height="-6"/> + <Sensor black="1022" white="16383"/> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">12836 -5909 -1032</ColorMatrixRow> + <ColorMatrixRow plane="1">-3087 11132 2236</ColorMatrixRow> + <ColorMatrixRow plane="2">-35 872 5330</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> <Camera make="FUJIFILM" model="X-T1"> <ID make="Fujifilm" model="X-T1">Fujifilm X-T1</ID> <CFA2 width="6" height="6"> @@ -16206,6 +16417,26 @@ </ColorMatrix> </ColorMatrices> </Camera> + <Camera make="KYOCERA" model="CONTAX N DIGITAL" supported="unknown-no-samples"> + <ID make="Contax" model="N Digital">Contax N Digital</ID> + </Camera> + <Camera make="ImBack" model="ImB35mm" mode="chdk"> + <ID make="ImBack" model="ImB35mm">ImBack</ID> + <CFA width="2" height="2"> + <Color x="0" y="0">GREEN</Color> + <Color x="1" y="0">RED</Color> + <Color x="0" y="1">BLUE</Color> + <Color x="1" y="1">GREEN</Color> + </CFA> + <Crop x="0" y="0" width="0" height="0"/> + <Sensor black="0" white="255"/> + <Hints> + <Hint name="filesize" value="15335424"/> + <Hint name="full_width" value="4608"/> + <Hint name="full_height" value="3328"/> + <Hint name="order" value="jpeg"/> + </Hints> + </Camera> <Camera make="KONICA MINOLTA" model="DYNAX 5D"> <ID make="Minolta" model="Dynax 5D">Konica Minolta Maxxum 5D</ID> <CFA width="2" height="2"> @@ -17185,8 +17416,21 @@ <Color x="0" y="1">GREEN</Color> <Color x="1" y="1">BLUE</Color> </CFA> - <Crop x="50" y="104" width="-48" height="0"/> + <Crop x="56" y="104" width="-56" height="0"/> <Sensor black="256" white="62914"/> + <Aliases> + <Alias id="CFV-50c">Hasselblad CFV-50c</Alias> + <Alias id="CFV-50c">CFV-50c/Flash Sync</Alias> + <Alias id="CFV-50c">CFV-50c/SWC</Alias> + <Alias id="CFV-50c">CFV-50c/200</Alias> + <Alias id="CFV-50c">CFV-50c/500</Alias> + <Alias id="CFV-50c">CFV-50c/Schneider</Alias> + <Alias id="CFV-50c">CFV-50c/LensCtrl S</Alias> + <Alias id="CFV-50c">CFV-50c/Winder CW</Alias> + <Alias id="CFV-50c">CFV-50c/ELD</Alias> + <Alias id="CFV-50c">CFV-50c/ELX</Alias> + <Alias id="CFV-50c">CFV-50c/Pinhole</Alias> + </Aliases> <ColorMatrices> <ColorMatrix planes="3"> <ColorMatrixRow plane="0">4932 -835 141</ColorMatrixRow> @@ -17243,7 +17487,9 @@ <Sensor black="256" white="62914"/> <Aliases> <Alias id="X1D II 50C">Hasselblad X1D II 50C</Alias> - <Alias id="X1DM2-50c">Hasselblad X1DM2-50c</Alias> + <Alias id="X1D II 50C">Hasselblad X1DM2-50c</Alias> + <Alias id="CFV II 50C">Hasselblad CFV II 50C</Alias> + <Alias id="CFV II 50C">CFV II 50C/907X</Alias> </Aliases> <ColorMatrices> <ColorMatrix planes="3"> @@ -17265,6 +17511,8 @@ <Sensor black="4267" white="65535"/> <Aliases> <Alias id="X2D 100C">Hasselblad X2D 100C</Alias> + <Alias id="CFV 100C">Hasselblad CFV 100C</Alias> + <Alias id="CFV 100C">CFV 100C/907X</Alias> </Aliases> <ColorMatrices> <ColorMatrix planes="3"> @@ -17343,12 +17591,24 @@ <Camera make="PENTAX" model="PENTAX Q7" mode="dng"> <ID make="Pentax" model="Q7">PENTAX Q7</ID> </Camera> - <Camera make="PENTAX" model="PENTAX Q10" mode="dng" supported="no-samples"> + <Camera make="PENTAX" model="PENTAX Q10" mode="dng"> <ID make="Pentax" model="Q10">PENTAX Q10</ID> </Camera> + <Camera make="PENTAX" model="PENTAX Q-S1" mode="dng"> + <ID make="Pentax" model="Q-S1">PENTAX Q-S1</ID> + </Camera> <Camera make="PENTAX RICOH IMAGING" model="PENTAX MX-1" mode="dng"> <ID make="Pentax" model="MX-1">PENTAX MX-1</ID> </Camera> + <Camera make="Leica Camera AG" model="LEICA S (Typ 007)" mode="dng"> + <ID make="Leica" model="S (Typ 007)">LEICA S (Typ 007)</ID> + </Camera> + <Camera make="Leica Camera AG" model="S2" mode="dng"> + <ID make="Leica" model="S2">Leica S2</ID> + </Camera> + <Camera make="Leica Camera AG" model="LEICA S3" mode="dng"> + <ID make="Leica" model="S3">LEICA S3</ID> + </Camera> <Camera make="Leica Camera AG" model="M8 Digital Camera" mode="dng"> <ID make="Leica" model="M8">M8 Digital Camera</ID> </Camera> @@ -17361,27 +17621,59 @@ <Camera make="Leica Camera AG" model="LEICA M10 MONOCHROM" mode="dng"> <ID make="Leica" model="M10 Monochrom">LEICA M10 MONOCHROM</ID> </Camera> + <Camera make="Leica Camera AG" model="LEICA M10-D" mode="dng"> + <ID make="Leica" model="M10-D">LEICA M10-D</ID> + </Camera> + <Camera make="Leica Camera AG" model="LEICA M10-P" mode="dng"> + <ID make="Leica" model="M10-P">LEICA M10-P</ID> + </Camera> + <Camera make="Leica Camera AG" model="LEICA M10-R" mode="dng"> + <ID make="Leica" model="M10-R">LEICA M10-R</ID> + </Camera> <Camera make="Leica Camera AG" model="LEICA M11" mode="dng"> <ID make="Leica" model="M11">LEICA M11</ID> </Camera> <Camera make="Leica Camera AG" model="LEICA M11 Monochrom" mode="dng"> <ID make="Leica" model="M11 Monochrom">LEICA M11 Monochrom</ID> </Camera> + <Camera make="Leica Camera AG" model="LEICA M11-P" mode="dng"> + <ID make="Leica" model="M11-P">LEICA M11-P</ID> + </Camera> <Camera make="Leica Camera AG" model="LEICA M (Typ 240)" mode="dng"> <ID make="Leica" model="M (Typ 240)">LEICA M (Typ 240)</ID> </Camera> <Camera make="Leica Camera AG" model="LEICA M MONOCHROM (Typ 246)" mode="dng"> <ID make="Leica" model="M Monochrom (Typ 246)">LEICA M MONOCHROM (Typ 246)</ID> </Camera> + <Camera make="Leica Camera AG" model="LEICA M (Typ 262)" mode="dng"> + <ID make="Leica" model="M (Typ 262)">LEICA M (Typ 262)</ID> + </Camera> + <Camera make="Leica Camera AG" model="LEICA M-D (Typ 262)" mode="dng"> + <ID make="Leica" model="M-D (Typ 262)">LEICA M-D (Typ 262)</ID> + </Camera> + <Camera make="LEICA CAMERA AG" model="LEICA T (Typ 701)" mode="dng"> + <ID make="Leica" model="T (Typ 701)">LEICA T (Typ 701)</ID> + </Camera> + <Camera make="LEICA CAMERA AG" model="LEICA TL" mode="dng"> + <ID make="Leica" model="TL">LEICA TL</ID> + </Camera> + <Camera make="LEICA CAMERA AG" model="LEICA TL2" mode="dng"> + <ID make="Leica" model="TL2">LEICA TL2</ID> + </Camera> + <Camera make="LEICA CAMERA AG" model="LEICA X1" mode="dng"> + <ID make="Leica" model="X1">LEICA X1</ID> + </Camera> <Camera make="LEICA CAMERA AG" model="LEICA X2" mode="dng"> <ID make="Leica" model="X2">LEICA X2</ID> - <ColorMatrices> - <ColorMatrix planes="3"> - <ColorMatrixRow plane="0">7158 -1911 -606</ColorMatrixRow> - <ColorMatrixRow plane="1">-3603 10669 2530</ColorMatrixRow> - <ColorMatrixRow plane="2">-659 1236 5530</ColorMatrixRow> - </ColorMatrix> - </ColorMatrices> + </Camera> + <Camera make="LEICA CAMERA AG" model="LEICA X VARIO (Typ 107)" mode="dng"> + <ID make="Leica" model="X Vario (Typ 107)">LEICA X VARIO (Typ 107)</ID> + </Camera> + <Camera make="LEICA CAMERA AG" model="LEICA X (Typ 113)" mode="dng"> + <ID make="Leica" model="X (Typ 113)">LEICA X (Typ 113)</ID> + </Camera> + <Camera make="LEICA CAMERA AG" model="LEICA X-U (Typ 113)" mode="dng"> + <ID make="Leica" model="X-U (Typ 113)">LEICA X-U (Typ 113)</ID> </Camera> <Camera make="LEICA CAMERA AG" model="LEICA Q (Typ 116)" mode="dng"> <ID make="Leica" model="Q (Typ 116)">LEICA Q (Typ 116)</ID> @@ -17389,12 +17681,21 @@ <Camera make="LEICA CAMERA AG" model="LEICA Q2" mode="dng"> <ID make="Leica" model="Q2">LEICA Q2</ID> </Camera> + <Camera make="LEICA CAMERA AG" model="LEICA Q2 MONO" mode="dng"> + <ID make="Leica" model="Q2 Monochrom">LEICA Q2 MONO</ID> + </Camera> <Camera make="LEICA CAMERA AG" model="LEICA Q3" mode="dng"> <ID make="Leica" model="Q3">LEICA Q3</ID> </Camera> <Camera make="LEICA CAMERA AG" model="LEICA SL (Typ 601)" mode="dng"> <ID make="Leica" model="SL (Typ 601)">LEICA SL (Typ 601)</ID> </Camera> + <Camera make="LEICA CAMERA AG" model="LEICA SL2" mode="dng"> + <ID make="Leica" model="SL2">LEICA SL2</ID> + </Camera> + <Camera make="LEICA CAMERA AG" model="LEICA SL2-S" mode="dng"> + <ID make="Leica" model="SL2-S">LEICA SL2-S</ID> + </Camera> <Camera make="LEICA CAMERA AG" model="LEICA CL" mode="dng"> <ID make="Leica" model="CL">LEICA CL</ID> </Camera> @@ -17410,6 +17711,13 @@ <Camera make="RICOH IMAGING COMPANY, LTD." model="RICOH GR IIIx" mode="dng"> <ID make="Ricoh" model="GR IIIx">Ricoh GR IIIx</ID> </Camera> + <Camera make="Canon" model="Canon IXY 220F" mode="dng"> + <ID make="Canon" model="IXY 220F">Canon IXY 220F</ID> + <Aliases> + <Alias id="PowerShot ELPH 110 HS">Canon PowerShot ELPH 110 HS</Alias> + <Alias id="IXUS 125 HS">Canon IXUS 125 HS</Alias> + </Aliases> + </Camera> <Camera make="Canon" model="Canon PowerShot A720 IS" mode="dng"> <ID make="Canon" model="PowerShot A720 IS">Canon PowerShot A720 IS</ID> <ColorMatrices> @@ -17474,16 +17782,16 @@ <Camera make="SAMSUNG DIGITAL IMA" model="SAMSUNG GX20" mode="dng" supported="no-samples"> <ID make="Samsung" model="GX20">Samsung GX20</ID> </Camera> - <Camera make="samsung" model="SM-G920F" supported="no-samples"> + <Camera make="samsung" model="SM-G920F" mode="dng"> <ID make="Samsung" model="G920F">Samsung G920F</ID> </Camera> - <Camera make="samsung" model="SM-G935F" supported="no-samples"> + <Camera make="samsung" model="SM-G935F" mode="dng"> <ID make="Samsung" model="G935F">Samsung G935F</ID> </Camera> - <Camera make="SAMSUNG TECHWIN Co." model="SAMSUNG GX10" supported="no-samples"> + <Camera make="SAMSUNG TECHWIN Co." model="SAMSUNG GX10" mode="dng"> <ID make="Samsung" model="GX10">Samsung GX10</ID> </Camera> - <Camera make="SAMSUNG TECHWIN Co." model="SAMSUNG GX20" supported="no-samples"> + <Camera make="SAMSUNG TECHWIN Co." model="SAMSUNG GX20" mode="dng"> <ID make="Samsung" model="GX20">Samsung GX20</ID> </Camera> <Camera make="Nokia" model="Lumia 1020" mode="dng"> @@ -17518,6 +17826,18 @@ <Camera make="SIGMA" model="SIGMA DP1 Merrill" mode="dng" supported="no-samples"> <ID make="Sigma" model="DP1 Merrill">Sigma DP1 Merrill</ID> </Camera> + <Camera make="SIGMA" model="SIGMA fp" mode="dng"> + <ID make="Sigma" model="fp">SIGMA fp</ID> + </Camera> + <Camera make="SIGMA" model="SIGMA fp L" mode="dng"> + <ID make="Sigma" model="fp L">SIGMA fp L</ID> + </Camera> + <Camera make="SIGMA" model="sd Quattro" mode="dng"> + <ID make="Sigma" model="sd Quattro">sd Quattro</ID> + </Camera> + <Camera make="SIGMA" model="sd Quattro H" mode="dng"> + <ID make="Sigma" model="sd Quattro H">sd Quattro H</ID> + </Camera> <Camera make="LGE" model="Nexus 5X" mode="dng"> <ID make="LG" model="Nexus 5X">LG Nexus 5X</ID> </Camera> @@ -17679,6 +17999,26 @@ <Hint name="offset" value="1078"/> </Hints> </Camera> + <Camera make="Canon" model="IXY 220F" mode="chdk"> + <CFA2 width="2" height="2"> + <ColorRow y="0">RG</ColorRow> + <ColorRow y="1">GB</ColorRow> + </CFA2> + <Crop x="100" y="22" width="-8" height="-1"/> + <Sensor black="127" white="4095"/> + <Hints> + <Hint name="filesize" value="25230816"/> + <Hint name="full_width" value="4784"/> + <Hint name="full_height" value="3516"/> + </Hints> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">5307 -1727 -741</ColorMatrixRow> + <ColorMatrixRow plane="1">-846 4464 142</ColorMatrixRow> + <ColorMatrixRow plane="2">-22 786 1405</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> + </Camera> <Camera make="Canon" model="PowerShot SD300" mode="chdk" supported="no-samples"> <CFA2 width="2" height="2"> <ColorRow y="0">RG</ColorRow> @@ -17956,18 +18296,25 @@ <Hint name="full_height" value="3048"/> </Hints> </Camera> - <Camera make="Canon" model="PowerShot SX220 HS" supported="no" mode="chdk"> + <Camera make="Canon" model="PowerShot SX220 HS" mode="chdk"> <CFA2 width="2" height="2"> <ColorRow y="0">RG</ColorRow> <ColorRow y="1">GB</ColorRow> </CFA2> - <Crop x="92" y="16" width="-4" height="-1"/> - <Sensor black="0" white="4095"/> + <Crop x="120" y="36" width="-34" height="-20"/> + <Sensor black="127" white="4095"/> <Hints> <Hint name="filesize" value="19131120"/> <Hint name="full_width" value="4168"/> <Hint name="full_height" value="3060"/> </Hints> + <ColorMatrices> + <ColorMatrix planes="3"> + <ColorMatrixRow plane="0">4668 -1707 -223</ColorMatrixRow> + <ColorMatrixRow plane="1">-1581 5193 389</ColorMatrixRow> + <ColorMatrixRow plane="2">351 1552 3717</ColorMatrixRow> + </ColorMatrix> + </ColorMatrices> </Camera> <Camera make="Canon" model="PowerShot SX30 IS" supported="no" mode="chdk"> <CFA2 width="2" height="2"> diff -Nru darktable-4.4.2/src/external/rawspeed/data/cameras.xsd darktable-4.6.1/src/external/rawspeed/data/cameras.xsd --- darktable-4.4.2/src/external/rawspeed/data/cameras.xsd 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/data/cameras.xsd 2024-02-14 22:08:05.000000000 +0000 @@ -22,11 +22,13 @@ <xs:minLength value="2"/> <xs:maxLength value="10"/> <xs:enumeration value="Canon"/> + <xs:enumeration value="Contax"/> <xs:enumeration value="Epson"/> <xs:enumeration value="Fujifilm"/> <xs:enumeration value="GITUP"/> <xs:enumeration value="GoPro"/> <xs:enumeration value="Hasselblad"/> + <xs:enumeration value="ImBack"/> <xs:enumeration value="Kodak"/> <xs:enumeration value="LG"/> <xs:enumeration value="Leaf"/> @@ -193,10 +195,7 @@ </xs:simpleType> <xs:complexType name="CFA2Type"> <xs:sequence> - <xs:choice> - <xs:element type="ColorRowType" name="ColorRow" minOccurs="2" maxOccurs="2"/> - <xs:element type="ColorRowType" name="ColorRow" minOccurs="6" maxOccurs="6"/> - </xs:choice> + <xs:element type="ColorRowType" name="ColorRow" minOccurs="2" maxOccurs="6"/> </xs:sequence> <xs:attribute type="CFA2TypeWidthType" name="width" use="required"/> <xs:attribute type="CFA2TypeHeightType" name="height" use="required"/> @@ -286,7 +285,7 @@ </xs:complexType> <xs:simpleType name="AliasTypeType"> <xs:restriction base="xs:string"> - <xs:pattern value="[a-zA-Z0-9 \-,]{4,27}"/> + <xs:pattern value="[a-zA-Z0-9 \-,/]{4,27}"/> <xs:minLength value="4"/> <xs:maxLength value="27"/> </xs:restriction> @@ -307,7 +306,7 @@ </xs:complexType> <xs:complexType name="AliasesType"> <xs:sequence> - <xs:element type="AliasType" name="Alias" minOccurs="1" maxOccurs="5"/> + <xs:element type="AliasType" name="Alias" minOccurs="1" maxOccurs="11"/> </xs:sequence> </xs:complexType> <xs:simpleType name="HintTypeNameType"> @@ -426,10 +425,12 @@ <xs:enumeration value="Generic"/> <xs:enumeration value="GoPro"/> <xs:enumeration value="Hasselblad"/> + <xs:enumeration value="ImBack"/> <xs:enumeration value="KODAK"/> <xs:enumeration value="KONICA MINOLTA"/> <xs:enumeration value="Kodak"/> <xs:enumeration value="Konica Minolta Camera, Inc."/> + <xs:enumeration value="KYOCERA"/> <xs:enumeration value="LEICA CAMERA AG"/> <xs:enumeration value="LEICA"/> <xs:enumeration value="LG Mobile"/> @@ -471,6 +472,7 @@ <xs:enumeration value="SONY"/> <xs:enumeration value="ST Micro"/> <xs:enumeration value="Samsung"/> + <xs:enumeration value="Sinar AG"/> <xs:enumeration value="Sinar Photography AG"/> <xs:enumeration value="Sinar"/> <xs:enumeration value="Sjcam"/> @@ -514,11 +516,13 @@ </xs:simpleType> <xs:simpleType name="CameraTypeSupportedType"> <xs:restriction base="xs:string"> - <xs:pattern value="(no|no-samples)"/> + <xs:pattern value="(no|no-samples|unknown|unknown-no-samples)"/> <xs:minLength value="2"/> - <xs:maxLength value="10"/> + <xs:maxLength value="18"/> <xs:enumeration value="no"/> <xs:enumeration value="no-samples"/> + <xs:enumeration value="unknown"/> + <xs:enumeration value="unknown-no-samples"/> </xs:restriction> </xs:simpleType> <xs:complexType name="CameraType"> diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/fuzz/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/fuzz/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -29,6 +29,7 @@ set(ALL_FUZZERS "${ALL_FUZZERS}" CACHE INTERNAL "" FORCE) rawspeed_add_test(NAME fuzzers/${fuzzer} COMMAND ${fuzzer} -help=1) + set_tests_properties(fuzzers/${fuzzer} PROPERTIES LABELS "fuzz;dummy") endmacro() if(NOT (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND RAWSPEED_FUZZ_BUILD)) diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/all-fuzzers.txt darktable-4.6.1/src/external/rawspeed/fuzz/all-fuzzers.txt --- darktable-4.4.2/src/external/rawspeed/fuzz/all-fuzzers.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/all-fuzzers.txt 2024-02-14 22:08:05.000000000 +0000 @@ -1,3 +1,4 @@ +BitVacuumerRoundtripFuzzer CiffParserFuzzer-GetDecoder CiffParserFuzzer-GetDecoder-Decode Cr2DecompressorFuzzer-DummyPrefixCodeDecoder @@ -37,6 +38,7 @@ PrefixCodeDecoderFuzzer-LookupVsTree PrefixCodeDecoderFuzzer-LookupVsVector PrefixCodeDecoderFuzzer-TreeVsVector +PrefixCodeEncoderFuzzer PrefixCodeLUTWithLookupDecoderFuzzer PrefixCodeLUTWithTreeDecoderFuzzer PrefixCodeLUTWithVectorDecoderFuzzer @@ -66,6 +68,7 @@ TiffDecoderFuzzer-PefDecoder TiffDecoderFuzzer-Rw2Decoder TiffDecoderFuzzer-SrwDecoder +TiffDecoderFuzzer-StiDecoder TiffDecoderFuzzer-ThreefrDecoder TiffParserFuzzer-GetDecoder TiffParserFuzzer-GetDecoder-Decode diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/libFuzzer_dummy_main.cpp darktable-4.6.1/src/external/rawspeed/fuzz/libFuzzer_dummy_main.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/libFuzzer_dummy_main.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/libFuzzer_dummy_main.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,27 +18,30 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "rawspeedconfig.h" // for HAVE_OPENMP -#include "adt/AlignedAllocator.h" // for AlignedAllocator -#include "adt/DefaultInitAllocatorAdaptor.h" // for DefaultInitAllocatorAda... -#include "io/Buffer.h" // for Buffer -#include "io/FileIOException.h" // for FileIOException -#include "io/FileReader.h" // for FileReader -#include <cstdint> // for uint8_t -#include <cstdlib> // for EXIT_SUCCESS, size_t -#include <iostream> // for operator<<, cout, ostream -#include <memory> // for unique_ptr, allocator -#include <string> // for operator==, string -#include <tuple> // for tie, tuple -#include <vector> // for vector +#include "rawspeedconfig.h" +#include "adt/AlignedAllocator.h" +#include "adt/Array1DRef.h" +#include "adt/DefaultInitAllocatorAdaptor.h" +#include "io/Buffer.h" +#include "io/FileIOException.h" +#include "io/FileReader.h" +#include <cstdint> +#include <cstdlib> +#include <iostream> +#include <memory> +#include <string> +#include <tuple> +#include <vector> #ifdef HAVE_OPENMP -#include <omp.h> // for omp_get_num_threads +#include <omp.h> #endif extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); -static int usage() { +namespace { + +int usage() { std::cout << "This is just a placeholder.\nFor fuzzers to actually function, " "you need to build rawspeed with clang compiler, with FUZZ " "build type.\n"; @@ -46,7 +49,7 @@ return EXIT_SUCCESS; } -static void process(const char* filename) noexcept { +void process(const char* filename) noexcept { rawspeed::FileReader reader(filename); std::unique_ptr<std::vector< uint8_t, rawspeed::DefaultInitAllocatorAdaptor< @@ -62,23 +65,28 @@ return; } - LLVMFuzzerTestOneInput(buf.getData(0, buf.getSize()), buf.getSize()); + LLVMFuzzerTestOneInput(buf.begin(), buf.getSize()); } -int main(int argc, char** argv) { - if (1 == argc || (2 == argc && std::string("-help=1") == argv[1])) +} // namespace + +int main(int argc_, char** argv_) { + auto argv = rawspeed::Array1DRef(argv_, argc_); + + if (1 == argv.size() || + (2 == argv.size() && std::string("-help=1") == argv(1))) return usage(); #ifdef HAVE_OPENMP - const auto corpusCount = argc - 1; + const auto corpusCount = argv.size() - 1; auto chunkSize = (corpusCount / (10 * omp_get_num_threads())); if (chunkSize <= 1) chunkSize = 1; -#pragma omp parallel for default(none) firstprivate(argc, argv, chunkSize) \ +#pragma omp parallel for default(none) firstprivate(argv, chunkSize) \ schedule(dynamic, chunkSize) #endif - for (int i = 1; i < argc; ++i) - process(argv[i]); + for (int i = 1; i < argv.size(); ++i) + process(argv(i)); return EXIT_SUCCESS; } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -1,5 +1,6 @@ target_include_directories(rawspeed_fuzz PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") +add_subdirectory(bitstreams) add_subdirectory(codes) add_subdirectory(common) add_subdirectory(decoders) diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/bitstreams/BitVacuumerRoundtrip.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,225 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2024 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "rawspeedconfig.h" +#include "adt/Bit.h" +#include "adt/Array1DRef.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "bitstreams/BitStreamer.h" +#include "bitstreams/BitStreamerJPEG.h" +#include "bitstreams/BitStreamerLSB.h" +#include "bitstreams/BitStreamerMSB.h" +#include "bitstreams/BitStreamerMSB16.h" +#include "bitstreams/BitStreamerMSB32.h" +#include "bitstreams/BitVacuumerJPEG.h" +#include "bitstreams/BitVacuumerLSB.h" +#include "bitstreams/BitVacuumerMSB.h" +#include "bitstreams/BitVacuumerMSB16.h" +#include "bitstreams/BitVacuumerMSB32.h" +#include "common/RawspeedException.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstdint> +#include <cstdio> +#include <iterator> +#include <utility> +#include <vector> + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); + +namespace rawspeed { +namespace { + +struct BitstreamFlavorLSB; +struct BitstreamFlavorMSB; +struct BitstreamFlavorMSB16; +struct BitstreamFlavorMSB32; +struct BitstreamFlavorJPEG; + +template <typename T> struct BitStreamRoundtripTypes final {}; + +template <> struct BitStreamRoundtripTypes<BitstreamFlavorLSB> final { + using streamer = BitStreamerLSB; + + template <typename OutputIterator> + using vacuumer = BitVacuumerLSB<OutputIterator>; +}; + +template <> struct BitStreamRoundtripTypes<BitstreamFlavorMSB> final { + using streamer = BitStreamerMSB; + + template <typename OutputIterator> + using vacuumer = BitVacuumerMSB<OutputIterator>; +}; + +template <> struct BitStreamRoundtripTypes<BitstreamFlavorMSB16> final { + using streamer = BitStreamerMSB16; + + template <typename OutputIterator> + using vacuumer = BitVacuumerMSB16<OutputIterator>; +}; + +template <> struct BitStreamRoundtripTypes<BitstreamFlavorMSB32> final { + using streamer = BitStreamerMSB32; + + template <typename OutputIterator> + using vacuumer = BitVacuumerMSB32<OutputIterator>; +}; + +template <> struct BitStreamRoundtripTypes<BitstreamFlavorJPEG> final { + using streamer = BitStreamerJPEG; + + template <typename OutputIterator> + using vacuumer = BitVacuumerJPEG<OutputIterator>; +}; + +class InputWrapper final { + const ByteStream bitLengths; + const ByteStream bitVals; + +public: + InputWrapper() = delete; + + InputWrapper(const InputWrapper&) = delete; + InputWrapper(InputWrapper&&) = delete; + InputWrapper& operator=(const InputWrapper&) = delete; + InputWrapper& operator=(InputWrapper&&) = delete; + + inline InputWrapper(ByteStream bitLengths_, ByteStream bitVals_) + : bitLengths(bitLengths_), bitVals(bitVals_) { + invariant(size() >= 0); + } + + [[nodiscard]] inline int size() const RAWSPEED_READNONE { + invariant(bitVals.getSize() == 4 * bitLengths.getSize()); + return bitLengths.getSize(); + } + + [[nodiscard]] inline std::pair<uint32_t, int> + operator[](int i) const RAWSPEED_READNONE { + invariant(i >= 0); + invariant(i < size()); + + auto len = implicit_cast<int>(bitLengths.peekByte(i) % 33); // 0-32 bits + uint32_t val = extractLowBitsSafe(bitVals.peekU32(i), len); + + return {val, len}; + } +}; + +template <typename flavor> +std::vector<uint8_t> produceBitstream(const InputWrapper& w) { + std::vector<uint8_t> bitstream; + + { + auto bsInserter = std::back_inserter(bitstream); + using BitVacuumer = typename BitStreamRoundtripTypes< + flavor>::template vacuumer<decltype(bsInserter)>; + auto bv = BitVacuumer(bsInserter); + + for (int i = 0; i != w.size(); ++i) { + const auto [val, len] = w[i]; + bv.put(val, len); + } + } + + using BitStreamer = typename BitStreamRoundtripTypes<flavor>::streamer; + if (constexpr int MinSize = BitStreamerTraits<BitStreamer>::MaxProcessBytes; + bitstream.size() < MinSize) + bitstream.resize(MinSize, uint8_t(0)); + + return bitstream; +} + +template <typename flavor> +void reparseBitstream(Array1DRef<const uint8_t> input, const InputWrapper& w) { + using BitStreamer = typename BitStreamRoundtripTypes<flavor>::streamer; + auto bs = BitStreamer(input); + for (int i = 0; i != w.size(); ++i) { + const auto [expectedVal, len] = w[i]; + bs.fill(32); + const auto actualVal = len != 0 ? bs.getBitsNoFill(len) : 0; + invariant(actualVal == expectedVal); + } +} + +template <typename flavor> void checkFlavourImpl(const InputWrapper& w) { + const std::vector<uint8_t> bitstream = produceBitstream<flavor>(w); + const auto input = + Array1DRef(bitstream.data(), implicit_cast<int>(bitstream.size())); + reparseBitstream<flavor>(input, w); +} + +template <typename flavor> void checkFlavour(const InputWrapper& w) { + try { + checkFlavourImpl<flavor>(w); + } catch (const RawspeedException&) { + assert(false && "Unexpected exception in `checkFlavourImpl()`."); + } +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size) { + assert(Data); + + try { + const Buffer b(Data, implicit_cast<Buffer::size_type>(Size)); + const DataBuffer db(b, Endianness::little); + ByteStream bs(db); + + const auto flavor = bs.getByte(); + + const auto numValues = bs.getU32(); + const auto bitLengths = bs.getStream(numValues, sizeof(uint8_t)); + const auto bitVals = bs.getStream(numValues, sizeof(uint32_t)); + const InputWrapper w(bitLengths, bitVals); + + // Which flavor? + switch (flavor) { + case 0: + checkFlavour<BitstreamFlavorLSB>(w); + return 0; + case 1: + checkFlavour<BitstreamFlavorMSB>(w); + return 0; + case 2: + checkFlavour<BitstreamFlavorMSB16>(w); + return 0; + case 3: + checkFlavour<BitstreamFlavorMSB32>(w); + return 0; + case 4: + checkFlavour<BitstreamFlavorJPEG>(w); + return 0; + default: + ThrowRSE("Unknown flavor"); + } + } catch (const RawspeedException&) { + return 0; + } + + __builtin_unreachable(); +} + +} // namespace + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/bitstreams/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/bitstreams/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/bitstreams/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/bitstreams/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,16 @@ +macro(add_simple_fuzzer name) + set(TheFuzzer "${name}Fuzzer") + rawspeed_add_executable(${TheFuzzer} "${name}.cpp") + + add_fuzz_target(${TheFuzzer}) + + add_dependencies(fuzzers ${TheFuzzer}) +endmacro() + +set(NAMES + "BitVacuumerRoundtrip" +) + +foreach(name ${NAMES}) + add_simple_fuzzer(${name}) +endforeach() diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/codes/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/codes/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/codes/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/codes/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -1 +1,2 @@ add_subdirectory(PrefixCodeDecoder) +add_subdirectory(PrefixCodeEncoder) diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Common.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,11 +20,18 @@ #pragma once +#include "adt/Array1DRef.h" +#include "adt/Optional.h" +#include "codes/AbstractPrefixCode.h" #include "codes/HuffmanCode.h" +#include "codes/PrefixCode.h" #include "common/RawspeedException.h" -#include "io/ByteStream.h" // for ByteStream -#include <optional> // for optional -#include <type_traits> // for is_same +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include <cassert> +#include <cstdint> +#include <type_traits> +#include <vector> template <typename CodeTag> auto getCodeValues(rawspeed::ByteStream& bs, unsigned numEntries) { @@ -81,7 +88,8 @@ bs.getStream(count, sizeof(typename Traits::CodeValueTy)); const auto codesBuf = getCodeValues<CodeTag>(codeValuesStream, count); hc.setCodeValues(rawspeed::Array1DRef<const typename Traits::CodeValueTy>( - codesBuf.data(), codesBuf.size())); + codesBuf.data(), + rawspeed::implicit_cast<rawspeed::Buffer::size_type>(codesBuf.size()))); } return hc; @@ -106,38 +114,30 @@ return {symbols, codeValues}; } -template <typename T, typename CodeTag, - typename std::enable_if_t<std::is_constructible_v< - T, rawspeed::HuffmanCode<CodeTag>>>* /*unused*/ - = nullptr> +template <typename T, typename CodeTag> + requires std::is_constructible_v<T, rawspeed::HuffmanCode<CodeTag>> inline T createHuffmanPrefixCodeDecoderImpl(rawspeed::ByteStream& bs) { auto hc = createHuffmanCode<CodeTag>(bs); return T(std::move(hc)); } -template <typename T, typename CodeTag, - typename std::enable_if_t<!std::is_constructible_v< - T, rawspeed::HuffmanCode<CodeTag>>>* /*unused*/ - = nullptr> +template <typename T, typename CodeTag> + requires(!std::is_constructible_v<T, rawspeed::HuffmanCode<CodeTag>>) inline T createHuffmanPrefixCodeDecoderImpl(rawspeed::ByteStream& bs) { auto hc = createHuffmanCode<CodeTag>(bs); auto code = hc.operator rawspeed::PrefixCode<CodeTag>(); return T(std::move(code)); } -template <typename T, typename CodeTag, - typename std::enable_if_t<!std::is_constructible_v< - T, rawspeed::PrefixCode<CodeTag>>>* /*unused*/ - = nullptr> +template <typename T, typename CodeTag> + requires(!std::is_constructible_v<T, rawspeed::PrefixCode<CodeTag>>) inline T createSimplePrefixCodeDecoderImpl(rawspeed::ByteStream& bs) { ThrowRSE( "This Prefix code decoder implementation only support Huffman codes"); } -template <typename T, typename CodeTag, - typename std::enable_if_t<std::is_constructible_v< - T, rawspeed::PrefixCode<CodeTag>>>* /*unused*/ - = nullptr> +template <typename T, typename CodeTag> + requires std::is_constructible_v<T, rawspeed::PrefixCode<CodeTag>> inline T createSimplePrefixCodeDecoderImpl(rawspeed::ByteStream& bs) { auto pc = createPrefixCode<CodeTag>(bs); return T(std::move(pc)); @@ -147,7 +147,7 @@ static T createPrefixCodeDecoder(rawspeed::ByteStream& bs) { using CodeTag = typename T::Tag; - std::optional<T> ht; + rawspeed::Optional<T> ht; if (bool huffmanCode = bs.getByte() != 0; huffmanCode) ht = createHuffmanPrefixCodeDecoderImpl<T, CodeTag>(bs); else @@ -157,7 +157,7 @@ const bool fixDNGBug16 = bs.getByte() != 0; bool fullDecode = false; - if (T::Traits::SupportsFullDecode) + if constexpr (T::Traits::SupportsFullDecode) fullDecode = bs.getByte() != 0; ht->setup(fullDecode, fixDNGBug16); diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Dual.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,6 +18,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "adt/Array1DRef.h" +#include "adt/Casts.h" #ifndef IMPL0 #error IMPL0 must be defined to one of rawspeeds huffman table implementations #endif @@ -25,38 +27,35 @@ #error IMPL1 must be defined to one of rawspeeds huffman table implementations #endif -#include "codes/BinaryPrefixTree.h" // for BinaryPrefixTree<>::... -#include "codes/PrefixCodeDecoder.h" // IWYU pragma: keep -#include "codes/PrefixCodeDecoder/Common.h" // for createPrefixCodeDecoder -#include "codes/PrefixCodeLUTDecoder.h" // IWYU pragma: keep -#include "codes/PrefixCodeLookupDecoder.h" // IWYU pragma: keep -#include "codes/PrefixCodeTreeDecoder.h" // IWYU pragma: keep -#include "codes/PrefixCodeVectorDecoder.h" // IWYU pragma: keep -#include "io/BitPumpJPEG.h" // for BitStream<>::fillCache -#include "io/BitPumpMSB.h" // for BitStream<>::fillCache -#include "io/BitPumpMSB32.h" // for BitStream<>::fillCache -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endiannes... -#include "io/IOException.h" // for RawspeedException -#include <algorithm> // for generate_n, max -#include <cassert> // for assert -#include <cstdint> // for uint8_t -#include <cstdio> // for size_t -#include <initializer_list> // for initializer_list -#include <optional> // for optional -#include <vector> // for vector +#include "bitstreams/BitStreamerJPEG.h" +#include "bitstreams/BitStreamerMSB.h" +#include "bitstreams/BitStreamerMSB32.h" +#include "codes/PrefixCodeDecoder.h" // IWYU pragma: keep +#include "codes/PrefixCodeDecoder/Common.h" +#include "codes/PrefixCodeLUTDecoder.h" // IWYU pragma: keep +#include "codes/PrefixCodeLookupDecoder.h" // IWYU pragma: keep +#include "codes/PrefixCodeTreeDecoder.h" // IWYU pragma: keep +#include "codes/PrefixCodeVectorDecoder.h" // IWYU pragma: keep +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "io/IOException.h" +#include <cassert> +#include <cstdint> +#include <cstdio> namespace rawspeed { struct BaselineCodeTag; struct VC5CodeTag; } // namespace rawspeed +namespace { + template <typename Pump, bool IsFullDecode, typename HT0, typename HT1> -static void workloop(rawspeed::ByteStream bs0, rawspeed::ByteStream bs1, - const HT0& ht0, const HT1& ht1) { - Pump bits0(bs0); - Pump bits1(bs1); +void workloop(rawspeed::Array1DRef<const uint8_t> input, const HT0& ht0, + const HT1& ht1) { + Pump bits0(input); + Pump bits1(input); while (true) { int decoded0; @@ -99,17 +98,16 @@ } template <typename Pump, typename HT0, typename HT1> -static void checkPump(rawspeed::ByteStream bs0, rawspeed::ByteStream bs1, - const HT0& ht0, const HT1& ht1) { - assert(bs0.getPosition() == bs1.getPosition()); +void checkPump(rawspeed::Array1DRef<const uint8_t> input, const HT0& ht0, + const HT1& ht1) { assert(ht0.isFullDecode() == ht1.isFullDecode()); if (ht0.isFullDecode()) - workloop<Pump, /*IsFullDecode=*/true>(bs0, bs1, ht0, ht1); + workloop<Pump, /*IsFullDecode=*/true>(input, ht0, ht1); else - workloop<Pump, /*IsFullDecode=*/false>(bs0, bs1, ht0, ht1); + workloop<Pump, /*IsFullDecode=*/false>(input, ht0, ht1); } -template <typename CodeTag> static void checkFlavour(rawspeed::ByteStream bs) { +template <typename CodeTag> void checkFlavour(rawspeed::ByteStream bs) { rawspeed::ByteStream bs0 = bs; rawspeed::ByteStream bs1 = bs; @@ -127,34 +125,45 @@ rawspeed::IMPL1<CodeTag, rawspeed::BACKIMPL1<CodeTag>>>(bs1); #endif + // Which bit pump should we use? + const int format0 = bs0.getByte(); + const int format1 = bs1.getByte(); + // should have consumed 16 bytes for n-codes-per-length, at *least* 1 byte // as code value, and a byte per 'fixDNGBug16'/'fullDecode' booleans assert(bs0.getPosition() == bs1.getPosition()); - // Which bit pump should we use? - bs1.skipBytes(1); - switch (bs0.getByte()) { + assert(format0 == format1); + (void)format1; + + const auto input = bs0.peekRemainingBuffer().getAsArray1DRef(); + + assert(format0 == format1); + switch (format0) { case 0: - checkPump<rawspeed::BitPumpMSB>(bs0, bs1, ht0, ht1); + checkPump<rawspeed::BitStreamerMSB>(input, ht0, ht1); break; case 1: - checkPump<rawspeed::BitPumpMSB32>(bs0, bs1, ht0, ht1); + checkPump<rawspeed::BitStreamerMSB32>(input, ht0, ht1); break; case 2: - checkPump<rawspeed::BitPumpJPEG>(bs0, bs1, ht0, ht1); + checkPump<rawspeed::BitStreamerJPEG>(input, ht0, ht1); break; default: ThrowRSE("Unknown bit pump"); } } +} // namespace + extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size) { assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/codes/PrefixCodeDecoder/Solo.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,53 +18,53 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "adt/Array1DRef.h" +#include "adt/Casts.h" #ifndef IMPL #error IMPL must be defined to one of rawspeeds huffman table implementations #endif -#include "codes/BinaryPrefixTree.h" // for BinaryPrefixTree<>::... -#include "codes/PrefixCodeDecoder.h" // IWYU pragma: keep -#include "codes/PrefixCodeDecoder/Common.h" // for createPrefixCodeDecoder -#include "codes/PrefixCodeLUTDecoder.h" // IWYU pragma: keep -#include "codes/PrefixCodeLookupDecoder.h" // IWYU pragma: keep -#include "codes/PrefixCodeTreeDecoder.h" // IWYU pragma: keep -#include "codes/PrefixCodeVectorDecoder.h" // IWYU pragma: keep -#include "common/RawspeedException.h" // for ThrowException, ThrowRSE -#include "io/BitPumpJPEG.h" // for BitStream<>::fillCache -#include "io/BitPumpMSB.h" // for BitStream<>::fillCache -#include "io/BitPumpMSB32.h" // for BitStream<>::fillCache -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endiannes... -#include <algorithm> // for generate_n -#include <cassert> // for assert -#include <cstdint> // for uint8_t -#include <cstdio> // for size_t -#include <initializer_list> // for initializer_list -#include <vector> // for vector +#include "bitstreams/BitStreamerJPEG.h" +#include "bitstreams/BitStreamerMSB.h" +#include "bitstreams/BitStreamerMSB32.h" +#include "codes/PrefixCodeDecoder.h" // IWYU pragma: keep +#include "codes/PrefixCodeDecoder/Common.h" +#include "codes/PrefixCodeLUTDecoder.h" // IWYU pragma: keep +#include "codes/PrefixCodeLookupDecoder.h" // IWYU pragma: keep +#include "codes/PrefixCodeTreeDecoder.h" // IWYU pragma: keep +#include "codes/PrefixCodeVectorDecoder.h" // IWYU pragma: keep +#include "common/RawspeedException.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstdint> +#include <cstdio> namespace rawspeed { struct BaselineCodeTag; struct VC5CodeTag; } // namespace rawspeed +namespace { + template <typename Pump, bool IsFullDecode, typename HT> -static void workloop(rawspeed::ByteStream bs, const HT& ht) { - Pump bits(bs); +void workloop(rawspeed::Array1DRef<const uint8_t> input, const HT& ht) { + Pump bits(input); while (true) ht.template decode<Pump, IsFullDecode>(bits); // FIXME: do we need to escape the result to avoid dead code elimination? } template <typename Pump, typename HT> -static void checkPump(rawspeed::ByteStream bs, const HT& ht) { +void checkPump(rawspeed::Array1DRef<const uint8_t> input, const HT& ht) { if (ht.isFullDecode()) - workloop<Pump, /*IsFullDecode=*/true>(bs, ht); + workloop<Pump, /*IsFullDecode=*/true>(input, ht); else - workloop<Pump, /*IsFullDecode=*/false>(bs, ht); + workloop<Pump, /*IsFullDecode=*/false>(input, ht); } -template <typename CodeTag> static void checkFlavour(rawspeed::ByteStream bs) { +template <typename CodeTag> void checkFlavour(rawspeed::ByteStream bs) { #ifndef BACKIMPL const auto ht = createPrefixCodeDecoder<rawspeed::IMPL<CodeTag>>(bs); #else @@ -73,28 +73,33 @@ #endif // Which bit pump should we use? - switch (bs.getByte()) { + const auto format = bs.getByte(); + const auto input = bs.peekRemainingBuffer().getAsArray1DRef(); + switch (format) { case 0: - checkPump<rawspeed::BitPumpMSB>(bs, ht); + checkPump<rawspeed::BitStreamerMSB>(input, ht); break; case 1: - checkPump<rawspeed::BitPumpMSB32>(bs, ht); + checkPump<rawspeed::BitStreamerMSB32>(input, ht); break; case 2: - checkPump<rawspeed::BitPumpJPEG>(bs, ht); + checkPump<rawspeed::BitStreamerJPEG>(input, ht); break; default: ThrowRSE("Unknown bit pump"); } } +} // namespace + extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size) { assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,16 @@ +macro(add_simple_fuzzer name) + set(TheFuzzer "${name}Fuzzer") + rawspeed_add_executable(${TheFuzzer} "${name}.cpp") + + add_fuzz_target(${TheFuzzer}) + + add_dependencies(fuzzers ${TheFuzzer}) +endmacro() + +set(NAMES + "PrefixCodeEncoder" +) + +foreach(name ${NAMES}) + add_simple_fuzzer(${name}) +endforeach() diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/codes/PrefixCodeEncoder/PrefixCodeEncoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,231 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2024 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "adt/Array1DRef.h" +#include "adt/Casts.h" +#include "adt/Optional.h" +#include "bitstreams/BitStreamerJPEG.h" +#include "bitstreams/BitStreamerMSB.h" +#include "bitstreams/BitStreamerMSB32.h" +#include "bitstreams/BitVacuumerJPEG.h" +#include "bitstreams/BitVacuumerMSB.h" +#include "bitstreams/BitVacuumerMSB32.h" +#include "codes/PrefixCodeDecoder.h" +#include "codes/PrefixCodeDecoder/Common.h" +#include "codes/PrefixCodeTreeDecoder.h" +#include "codes/PrefixCodeVectorDecoder.h" +#include "codes/PrefixCodeVectorEncoder.h" +#include "common/RawspeedException.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstdint> +#include <cstdio> +#include <iterator> +#include <vector> + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); + +namespace rawspeed { + +namespace { + +struct BitstreamFlavorMSB; +struct BitstreamFlavorMSB32; +struct BitstreamFlavorJPEG; + +template <typename T> struct BitStreamRoundtripTypes final {}; + +template <> struct BitStreamRoundtripTypes<BitstreamFlavorMSB> final { + using streamer = BitStreamerMSB; + + template <typename OutputIterator> + using vacuumer = BitVacuumerMSB<OutputIterator>; +}; + +template <> struct BitStreamRoundtripTypes<BitstreamFlavorMSB32> final { + using streamer = BitStreamerMSB32; + + template <typename OutputIterator> + using vacuumer = BitVacuumerMSB32<OutputIterator>; +}; + +template <> struct BitStreamRoundtripTypes<BitstreamFlavorJPEG> final { + using streamer = BitStreamerJPEG; + + template <typename OutputIterator> + using vacuumer = BitVacuumerJPEG<OutputIterator>; +}; + +template <typename flavor, bool IsFullDecode, typename HT> +void workloop(Array1DRef<const uint8_t> inputSrc, const HT& ht) { + PrefixCodeVectorEncoder<typename HT::Tag> encoder(ht.code); + encoder.setup(IsFullDecode, ht.handleDNGBug16()); + + using BitStreamer = typename BitStreamRoundtripTypes<flavor>::streamer; + + std::vector<uint8_t> inputRec; + + int numCodesEncoded = 0; + { + auto bsSrc = BitStreamer(inputSrc); + + auto bsInserter = std::back_inserter(inputRec); + using BitVacuumer = typename BitStreamRoundtripTypes< + flavor>::template vacuumer<decltype(bsInserter)>; + auto bv = BitVacuumer(bsInserter); + + bsSrc.fill(32); + while (bsSrc.getInputPosition() <= inputSrc.size()) { + Optional<int> v; + + try { + v = ht.template decode<BitStreamer, IsFullDecode>(bsSrc); + } catch (...) { + break; + } + + try { + encoder.template encode<BitVacuumer, IsFullDecode>(bv, *v); + } catch (...) { + __builtin_unreachable(); + } + ++numCodesEncoded; + } + } + + if (constexpr int MinSize = BitStreamer::Traits::MaxProcessBytes; + inputRec.size() < MinSize) + inputRec.resize(MinSize, uint8_t(0)); + + try { + auto bsSrc = BitStreamer(inputSrc); + auto bsRec = BitStreamer( + Array1DRef(inputRec.data(), implicit_cast<int>(inputRec.size()))); + for (int i = 0; i != numCodesEncoded; ++i) { + const auto vSrc = ht.template decode<BitStreamer, IsFullDecode>(bsSrc); + const auto vRec = ht.template decode<BitStreamer, IsFullDecode>(bsRec); + assert(vSrc == vRec); + (void)vSrc; + (void)vRec; + } + } catch (...) { + __builtin_unreachable(); + } +} + +template <typename flavor, typename HT> +void checkPump(Array1DRef<const uint8_t> input, const HT& ht) { + if (ht.isFullDecode()) + workloop<flavor, /*IsFullDecode=*/true>(input, ht); + else + workloop<flavor, /*IsFullDecode=*/false>(input, ht); +} + +template <typename HT> void checkDecoder(ByteStream bs) { + const auto ht = createPrefixCodeDecoder<HT>(bs); + + // Which bit stream flavor should we use? + const auto flavor = bs.getByte(); + const auto input = bs.peekRemainingBuffer().getAsArray1DRef(); + switch (flavor) { + case 0: + checkPump<BitstreamFlavorMSB>(input, ht); + break; + case 1: + checkPump<BitstreamFlavorMSB32>(input, ht); + break; + case 2: + checkPump<BitstreamFlavorJPEG>(input, ht); + break; + default: + ThrowRSE("Unknown bit pump"); + } +} + +template <typename CodeTag> void checkFlavour(ByteStream bs) { + // Which decoder implementation should we use? + const auto decoderImpl = bs.getByte(); + switch (decoderImpl) { + case 0: + checkDecoder<PrefixCodeTreeDecoder<CodeTag>>(bs); + break; + case 1: + checkDecoder<PrefixCodeVectorDecoder<CodeTag>>(bs); + break; + case 2: + checkDecoder<PrefixCodeLookupDecoder<CodeTag>>(bs); + break; + case 3: { + // Which backing decoder implementation should we use? + const auto backingDecoderImpl = bs.getByte(); + switch (backingDecoderImpl) { + case 0: + checkDecoder< + PrefixCodeLUTDecoder<CodeTag, PrefixCodeTreeDecoder<CodeTag>>>(bs); + break; + case 1: + checkDecoder< + PrefixCodeLUTDecoder<CodeTag, PrefixCodeVectorDecoder<CodeTag>>>(bs); + break; + case 2: + checkDecoder< + PrefixCodeLUTDecoder<CodeTag, PrefixCodeLookupDecoder<CodeTag>>>(bs); + break; + default: + ThrowRSE("Unknown decoder"); + } + break; + } + default: + ThrowRSE("Unknown decoder"); + } +} + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size) { + assert(Data); + + try { + const Buffer b(Data, implicit_cast<Buffer::size_type>(Size)); + const DataBuffer db(b, Endianness::little); + ByteStream bs(db); + + // Which flavor? + switch (bs.getByte()) { + case 0: + checkFlavour<BaselineCodeTag>(bs); + break; + case 1: + checkFlavour<VC5CodeTag>(bs); + break; + default: + ThrowRSE("Unknown flavor"); + } + } catch (const RawspeedException&) { + return 0; + } + + return 0; +} + +} // namespace + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/common/DngOpcodes.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/common/DngOpcodes.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/common/DngOpcodes.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/common/DngOpcodes.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,19 +19,20 @@ */ #include "common/DngOpcodes.h" -#include "MemorySanitizer.h" // for MSan -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Point.h" // for iPoint2D, iRectangle2D -#include "common/RawImage.h" // for RawImage, RawImageData, RawIm... -#include "fuzz/Common.h" // for CreateCFA, CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include "io/IOException.h" // for ThrowException, RawspeedExcep... -#include "metadata/ColorFilterArray.h" // for ColorFilterArray -#include <cassert> // for assert -#include <cstdint> // for uint16_t, uint8_t -#include <cstdio> // for size_t +#include "MemorySanitizer.h" +#include "adt/Array2DRef.h" +#include "adt/Casts.h" +#include "adt/Point.h" +#include "common/RawImage.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "io/IOException.h" +#include "metadata/ColorFilterArray.h" +#include <cassert> +#include <cstdint> +#include <cstdio> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -39,7 +40,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -59,8 +61,8 @@ rawspeed::Array2DRef<uint16_t> img = mRaw->getU16DataAsUncroppedArray2DRef(); const uint16_t fill = bs.getU16(); - for (auto row = 0; row < img.height; ++row) { - for (auto col = 0; col < img.width; ++col) { + for (auto row = 0; row < img.height(); ++row) { + for (auto col = 0; col < img.width(); ++col) { img(row, col) = fill; } } @@ -69,8 +71,8 @@ case rawspeed::RawImageType::F32: { rawspeed::Array2DRef<float> img = mRaw->getF32DataAsUncroppedArray2DRef(); const float fill = bs.getFloat(); - for (auto row = 0; row < img.height; ++row) { - for (auto col = 0; col < img.width; ++col) { + for (auto row = 0; row < img.height(); ++row) { + for (auto col = 0; col < img.width(); ++col) { img(row, col) = fill; } } @@ -96,7 +98,7 @@ mRaw->getByteDataAsUncroppedArray2DRef()); mRaw->transferBadPixelsToMap(); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decoders/TiffDecoders/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decoders/TiffDecoders/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decoders/TiffDecoders/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decoders/TiffDecoders/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -32,6 +32,7 @@ "PefDecoder" "Rw2Decoder" "SrwDecoder" + "StiDecoder" "ThreefrDecoder" ) diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decoders/TiffDecoders/main.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decoders/TiffDecoders/main.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decoders/TiffDecoders/main.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decoders/TiffDecoders/main.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -22,32 +22,34 @@ #error DECODER must be defined #endif -#include "common/RawspeedException.h" // for RawspeedException -#include "decoders/ArwDecoder.h" // IWYU pragma: keep -#include "decoders/Cr2Decoder.h" // IWYU pragma: keep -#include "decoders/DcrDecoder.h" // IWYU pragma: keep -#include "decoders/DcsDecoder.h" // IWYU pragma: keep -#include "decoders/DngDecoder.h" // IWYU pragma: keep -#include "decoders/ErfDecoder.h" // IWYU pragma: keep -#include "decoders/IiqDecoder.h" // IWYU pragma: keep -#include "decoders/KdcDecoder.h" // IWYU pragma: keep -#include "decoders/MefDecoder.h" // IWYU pragma: keep -#include "decoders/MosDecoder.h" // IWYU pragma: keep -#include "decoders/NefDecoder.h" // IWYU pragma: keep -#include "decoders/OrfDecoder.h" // IWYU pragma: keep -#include "decoders/PefDecoder.h" // IWYU pragma: keep -#include "decoders/RafDecoder.h" // IWYU pragma: keep -#include "decoders/Rw2Decoder.h" // IWYU pragma: keep -#include "decoders/SrwDecoder.h" // IWYU pragma: keep -#include "decoders/ThreefrDecoder.h" // IWYU pragma: keep -#include "io/Buffer.h" // for Buffer -#include "metadata/CameraMetaData.h" // for CameraMetaData -#include "parsers/TiffParser.h" // for TiffParser -#include <cassert> // for assert -#include <cstdint> // for uint8_t -#include <cstdio> // for size_t -#include <memory> // for unique_ptr, make_unique -#include <utility> // for move +#include "adt/Casts.h" +#include "common/RawspeedException.h" +#include "decoders/ArwDecoder.h" // IWYU pragma: keep +#include "decoders/Cr2Decoder.h" // IWYU pragma: keep +#include "decoders/DcrDecoder.h" // IWYU pragma: keep +#include "decoders/DcsDecoder.h" // IWYU pragma: keep +#include "decoders/DngDecoder.h" // IWYU pragma: keep +#include "decoders/ErfDecoder.h" // IWYU pragma: keep +#include "decoders/IiqDecoder.h" // IWYU pragma: keep +#include "decoders/KdcDecoder.h" // IWYU pragma: keep +#include "decoders/MefDecoder.h" // IWYU pragma: keep +#include "decoders/MosDecoder.h" // IWYU pragma: keep +#include "decoders/NefDecoder.h" // IWYU pragma: keep +#include "decoders/OrfDecoder.h" // IWYU pragma: keep +#include "decoders/PefDecoder.h" // IWYU pragma: keep +#include "decoders/RafDecoder.h" // IWYU pragma: keep +#include "decoders/Rw2Decoder.h" // IWYU pragma: keep +#include "decoders/SrwDecoder.h" // IWYU pragma: keep +#include "decoders/StiDecoder.h" // IWYU pragma: keep +#include "decoders/ThreefrDecoder.h" // IWYU pragma: keep +#include "io/Buffer.h" +#include "metadata/CameraMetaData.h" +#include "parsers/TiffParser.h" +#include <cassert> +#include <cstdint> +#include <cstdio> +#include <memory> +#include <utility> static const rawspeed::CameraMetaData metadata{}; @@ -59,7 +61,8 @@ assert(Data); try { - const rawspeed::Buffer buffer(Data, Size); + const rawspeed::Buffer buffer( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); auto ifd = rawspeed::TiffParser::parse(nullptr, buffer); // ATM do not care if this is the appropriate decoder. diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/Cr2Decompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,29 +18,32 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "adt/Casts.h" +#include "adt/Point.h" +#include <cstddef> +#include <tuple> +#include <vector> #ifndef PrefixCodeDecoderImpl #error PrefixCodeDecoderImpl must be defined to one of rawspeeds huffman tables #endif +#include "MemorySanitizer.h" +#include "codes/DummyPrefixCodeDecoder.h" +#include "codes/PrefixCodeDecoder/Common.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" #include "decompressors/Cr2Decompressor.h" -#include "MemorySanitizer.h" // for MSan -#include "codes/DummyPrefixCodeDecoder.h" // for DummyPrefixCodeDecoder -#include "codes/PrefixCodeDecoder.h" // for PrefixCodeDecoder -#include "codes/PrefixCodeDecoder/Common.h" // for createPrefixCodeDecoder -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for ThrowException, Rawsp... -#include "fuzz/Common.h" // for CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endiannes... -#include <algorithm> // for generate_n, copy -#include <cassert> // for assert -#include <cstdint> // for uint16_t, uint8_t -#include <initializer_list> // for initializer_list -#include <iterator> // for back_insert_iterator +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <algorithm> +#include <cassert> +#include <cstdint> +#include <iterator> #ifdef WITH_DummyPrefixCodeDecoder -#include "decompressors/Cr2DecompressorImpl.h" // for Cr2Decompressor::Cr2D... +#include "decompressors/Cr2DecompressorImpl.h" namespace rawspeed { @@ -56,7 +59,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -110,18 +114,19 @@ [&rec, hts, initPred]() -> rawspeed::Cr2Decompressor< rawspeed::PrefixCodeDecoderImpl<>>::PerComponentRecipe { - const int i = rec.size(); + const auto i = rawspeed::implicit_cast<int>(rec.size()); return {*hts[i], initPred[i]}; }); rawspeed::Cr2Decompressor<rawspeed::PrefixCodeDecoderImpl<>> d( - mRaw, format, frame, slicing, rec, bs.getSubStream(/*offset=*/0)); + mRaw, format, frame, slicing, rec, + bs.getSubStream(/*offset=*/0).peekRemainingBuffer().getAsArray1DRef()); mRaw->createData(); - d.decompress(); + (void)d.decompress(); rawspeed::MSan::CheckMemIsInitialized( mRaw->getByteDataAsUncroppedArray2DRef()); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/Cr2LJpegDecoder.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/Cr2LJpegDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/Cr2LJpegDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/Cr2LJpegDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,16 +19,18 @@ */ #include "decompressors/Cr2LJpegDecoder.h" -#include "MemorySanitizer.h" // for MSan -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for RawspeedException -#include "fuzz/Common.h" // for CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include <cassert> // for assert -#include <cstdint> // for uint8_t, uint16_t -#include <cstdio> // for size_t +#include "MemorySanitizer.h" +#include "adt/Casts.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "decompressors/Cr2Decompressor.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstdint> +#include <cstdio> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -36,7 +38,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -56,7 +59,7 @@ rawspeed::MSan::CheckMemIsInitialized( mRaw->getByteDataAsUncroppedArray2DRef()); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/CrwDecompressor.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/CrwDecompressor.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/CrwDecompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/CrwDecompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,17 +18,20 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "decompressors/CrwDecompressor.h" // for CrwDecompressor -#include "MemorySanitizer.h" // for MSan -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for RawspeedException -#include "fuzz/Common.h" // for CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include <cassert> // for assert -#include <cstdint> // for uint32_t, uint8_t -#include <cstdio> // for size_t +#include "decompressors/CrwDecompressor.h" +#include "MemorySanitizer.h" +#include "adt/Array1DRef.h" +#include "adt/Casts.h" +#include "adt/Optional.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstdint> +#include <cstdio> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -36,7 +39,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -45,14 +49,21 @@ const uint32_t dec_table = bs.getU32(); const uint32_t lowbits = bs.getU32(); - rawspeed::CrwDecompressor c(mRaw, dec_table, lowbits, - bs.getStream(bs.getRemainSize())); + rawspeed::Optional<rawspeed::Array1DRef<const uint8_t>> lowbitInput; + if (lowbits != 0) { + lowbitInput = bs.getBuffer(lowbits); + } + + rawspeed::Array1DRef<const uint8_t> input = + bs.peekRemainingBuffer().getAsArray1DRef(); + + rawspeed::CrwDecompressor c(mRaw, dec_table, input, lowbitInput); mRaw->createData(); c.decompress(); rawspeed::MSan::CheckMemIsInitialized( mRaw->getByteDataAsUncroppedArray2DRef()); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/DummyLJpegDecoder.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/DummyLJpegDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/DummyLJpegDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/DummyLJpegDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,23 +18,27 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "common/RawImage.h" // for RawImage, RawIm... -#include "common/RawspeedException.h" // for RawspeedException -#include "decompressors/AbstractLJpegDecoder.h" // for AbstractLJpegDe... -#include "fuzz/Common.h" // for CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, End... -#include <cassert> // for assert -#include <cstdint> // for uint8_t -#include <cstdio> // for size_t +#include "adt/Casts.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/AbstractLJpegDecoder.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstdint> +#include <cstdio> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); namespace { class DummyLJpegDecoder final : public rawspeed::AbstractLJpegDecoder { - void decodeScan() override {} + [[nodiscard]] rawspeed::ByteStream::size_type decodeScan() final { + ThrowRDE("Success!"); + } public: DummyLJpegDecoder(const rawspeed::ByteStream& bs, @@ -50,7 +54,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -61,7 +66,7 @@ mRaw->createData(); // no image data was actually be decoded, so don't check for initialization - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/FujiDecompressor.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/FujiDecompressor.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/FujiDecompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/FujiDecompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,18 +18,19 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "decompressors/FujiDecompressor.h" // for FujiDecompressor -#include "MemorySanitizer.h" // for MSan -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for RawspeedException -#include "fuzz/Common.h" // for CreateCFA, CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include "metadata/ColorFilterArray.h" // for ColorFilterArray -#include <cassert> // for assert -#include <cstdint> // for uint8_t -#include <cstdio> // for size_t +#include "decompressors/FujiDecompressor.h" +#include "MemorySanitizer.h" +#include "adt/Casts.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "metadata/ColorFilterArray.h" +#include <cassert> +#include <cstdint> +#include <cstdio> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -37,7 +38,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -50,7 +52,7 @@ rawspeed::MSan::CheckMemIsInitialized( mRaw->getByteDataAsUncroppedArray2DRef()); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/HasselbladDecompressor.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/HasselbladDecompressor.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/HasselbladDecompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/HasselbladDecompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,20 +19,19 @@ */ #include "decompressors/HasselbladDecompressor.h" -#include "MemorySanitizer.h" // for MSan -#include "codes/PrefixCodeDecoder.h" // for PrefixCodeDecoder -#include "codes/PrefixCodeDecoder/Common.h" // for createPrefixCodeDecoder -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for RawspeedException -#include "fuzz/Common.h" // for CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include <algorithm> // for fill, copy, fill_n, generate_n -#include <cassert> // for assert -#include <cstddef> // for size_t -#include <cstdint> // for uint16_t, uint8_t -#include <vector> // for vector +#include "MemorySanitizer.h" +#include "adt/Casts.h" +#include "codes/PrefixCodeDecoder.h" +#include "codes/PrefixCodeDecoder/Common.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstddef> +#include <cstdint> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -40,7 +39,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -51,14 +51,15 @@ rawspeed::HasselbladDecompressor::PerComponentRecipe rec = {ht, initPred}; - rawspeed::HasselbladDecompressor d(mRaw, rec, - bs.getSubStream(/*offset=*/0)); + rawspeed::HasselbladDecompressor d( + mRaw, rec, + bs.getSubStream(/*offset=*/0).peekRemainingBuffer().getAsArray1DRef()); mRaw->createData(); (void)d.decompress(); rawspeed::MSan::CheckMemIsInitialized( mRaw->getByteDataAsUncroppedArray2DRef()); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/HasselbladLJpegDecoder.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/HasselbladLJpegDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/HasselbladLJpegDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/HasselbladLJpegDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,17 +18,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "decompressors/HasselbladLJpegDecoder.h" // for HasselbladDecompressor -#include "MemorySanitizer.h" // for MSan -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for RawspeedException -#include "fuzz/Common.h" // for CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include <cassert> // for assert -#include <cstdint> // for uint8_t -#include <cstdio> // for size_t +#include "decompressors/HasselbladLJpegDecoder.h" +#include "MemorySanitizer.h" +#include "adt/Casts.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstdint> +#include <cstdio> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -36,7 +37,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -48,7 +50,7 @@ rawspeed::MSan::CheckMemIsInitialized( mRaw->getByteDataAsUncroppedArray2DRef()); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/KodakDecompressor.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/KodakDecompressor.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/KodakDecompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/KodakDecompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,17 +18,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "decompressors/KodakDecompressor.h" // for SonyArw1Decompre... -#include "MemorySanitizer.h" // for MSan -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for RawspeedException -#include "fuzz/Common.h" // for CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include <cassert> // for assert -#include <cstdint> // for uint8_t -#include <cstdio> // for size_t +#include "decompressors/KodakDecompressor.h" +#include "MemorySanitizer.h" +#include "adt/Casts.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstdint> +#include <cstdio> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -36,7 +37,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -54,7 +56,7 @@ rawspeed::MSan::CheckMemIsInitialized( mRaw->getByteDataAsUncroppedArray2DRef()); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/LJpegDecoder.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/LJpegDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/LJpegDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/LJpegDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,16 +18,17 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "decompressors/LJpegDecoder.h" // for LJpegDecoder -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for RawspeedException -#include "fuzz/Common.h" // for CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include <cassert> // for assert -#include <cstdint> // for uint8_t -#include <cstdio> // for size_t +#include "decompressors/LJpegDecoder.h" +#include "adt/Casts.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstdint> +#include <cstdio> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -35,7 +36,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -53,7 +55,7 @@ // we can not check that all the image was initialized, because normally // LJpegDecoder decodes just some one tile/slice. - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/LJpegDecompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,19 +19,23 @@ */ #include "decompressors/LJpegDecompressor.h" -#include "MemorySanitizer.h" // for MSan -#include "codes/PrefixCodeDecoder.h" // for PrefixCodeDecoder -#include "codes/PrefixCodeDecoder/Common.h" // for createPrefixCodeDecoder -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for ThrowException, RawspeedExce... -#include "fuzz/Common.h" // for CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include <algorithm> // for generate_n, copy, fill, fill_n -#include <cassert> // for assert -#include <cstdint> // for uint16_t, uint8_t -#include <iterator> // for back_insert_iterator, back_i... +#include "MemorySanitizer.h" +#include "adt/Casts.h" +#include "adt/Point.h" +#include "codes/PrefixCodeDecoder.h" +#include "codes/PrefixCodeDecoder/Common.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <algorithm> +#include <cassert> +#include <cstddef> +#include <cstdint> +#include <iterator> +#include <vector> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -39,7 +43,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -77,19 +82,22 @@ std::generate_n(std::back_inserter(rec), num_recips, [&rec, hts, initPred]() -> rawspeed::LJpegDecompressor::PerComponentRecipe { - const int i = rec.size(); + const auto i = rawspeed::implicit_cast<int>(rec.size()); return {*hts[i], initPred[i]}; }); + const int numRowsPerRestartInterval = bs.getI32(); + rawspeed::LJpegDecompressor d( mRaw, rawspeed::iRectangle2D(mRaw->dim.x, mRaw->dim.y), frame, rec, - bs.getSubStream(/*offset=*/0)); + numRowsPerRestartInterval, + bs.getSubStream(/*offset=*/0).peekRemainingBuffer().getAsArray1DRef()); mRaw->createData(); - d.decode(); + (void)d.decode(); rawspeed::MSan::CheckMemIsInitialized( mRaw->getByteDataAsUncroppedArray2DRef()); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/NikonDecompressor.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/NikonDecompressor.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/NikonDecompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/NikonDecompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,17 +18,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "decompressors/NikonDecompressor.h" // for NikonDecompressor -#include "MemorySanitizer.h" // for MSan -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for RawspeedException -#include "fuzz/Common.h" // for CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include <cassert> // for assert -#include <cstdint> // for uint32_t, uint8_t -#include <cstdio> // for size_t +#include "decompressors/NikonDecompressor.h" +#include "MemorySanitizer.h" +#include "adt/Casts.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstdint> +#include <cstdio> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -36,7 +37,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -46,15 +48,15 @@ const auto uncorrectedRawValues = bs.get<uint32_t>(); const auto medataLength = bs.get<uint32_t>(); rawspeed::ByteStream metaData = bs.getStream(medataLength); - rawspeed::ByteStream rawData = bs.getStream(bs.getRemainSize()); + const auto input = bs.getStream(bs.getRemainSize()).getAsArray1DRef(); rawspeed::NikonDecompressor n(mRaw, metaData, bitsPS); mRaw->createData(); - n.decompress(rawData, uncorrectedRawValues); + n.decompress(input, uncorrectedRawValues); rawspeed::MSan::CheckMemIsInitialized( mRaw->getByteDataAsUncroppedArray2DRef()); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/OlympusDecompressor.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/OlympusDecompressor.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/OlympusDecompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/OlympusDecompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,17 +18,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "decompressors/OlympusDecompressor.h" // for OlympusDecompressor -#include "MemorySanitizer.h" // for MSan -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for RawspeedException -#include "fuzz/Common.h" // for CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include <cassert> // for assert -#include <cstdint> // for uint8_t -#include <cstdio> // for size_t +#include "decompressors/OlympusDecompressor.h" +#include "MemorySanitizer.h" +#include "adt/Casts.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstdint> +#include <cstdio> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -36,7 +37,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -50,7 +52,7 @@ rawspeed::MSan::CheckMemIsInitialized( mRaw->getByteDataAsUncroppedArray2DRef()); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/PanasonicV4Decompressor.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/PanasonicV4Decompressor.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/PanasonicV4Decompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/PanasonicV4Decompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,17 +18,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "decompressors/PanasonicV4Decompressor.h" // for PanasonicDecompressor -#include "MemorySanitizer.h" // for MSan -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for RawspeedException -#include "fuzz/Common.h" // for CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include <cassert> // for assert -#include <cstdint> // for uint32_t, uint8_t -#include <cstdio> // for size_t +#include "decompressors/PanasonicV4Decompressor.h" +#include "MemorySanitizer.h" +#include "adt/Casts.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstdint> +#include <cstdio> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -36,7 +37,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -53,7 +55,7 @@ rawspeed::MSan::CheckMemIsInitialized( mRaw->getByteDataAsUncroppedArray2DRef()); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/PanasonicV5Decompressor.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/PanasonicV5Decompressor.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/PanasonicV5Decompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/PanasonicV5Decompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,15 +19,17 @@ */ #include "decompressors/PanasonicV5Decompressor.h" -#include "MemorySanitizer.h" // for MSan -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for RawspeedException -#include "fuzz/Common.h" // for CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include <cassert> // for assert -#include <cstdint> // for uint32_t, uint8_t +#include "MemorySanitizer.h" +#include "adt/Casts.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstddef> +#include <cstdint> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -35,7 +37,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -50,7 +53,7 @@ rawspeed::MSan::CheckMemIsInitialized( mRaw->getByteDataAsUncroppedArray2DRef()); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/PanasonicV6Decompressor.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/PanasonicV6Decompressor.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/PanasonicV6Decompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/PanasonicV6Decompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,16 +19,17 @@ */ #include "decompressors/PanasonicV6Decompressor.h" -#include "MemorySanitizer.h" // for MSan -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for RawspeedException -#include "fuzz/Common.h" // for CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include <cassert> // for assert -#include <cstddef> // for size_t -#include <cstdint> // for uint8_t +#include "MemorySanitizer.h" +#include "adt/Casts.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstddef> +#include <cstdint> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -36,7 +37,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -51,7 +53,7 @@ rawspeed::MSan::CheckMemIsInitialized( mRaw->getByteDataAsUncroppedArray2DRef()); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/PanasonicV7Decompressor.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/PanasonicV7Decompressor.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/PanasonicV7Decompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/PanasonicV7Decompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,16 +19,17 @@ */ #include "decompressors/PanasonicV7Decompressor.h" -#include "MemorySanitizer.h" // for MSan -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for RawspeedException -#include "fuzz/Common.h" // for CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include <cassert> // for assert -#include <cstddef> // for size_t -#include <cstdint> // for uint8_t +#include "MemorySanitizer.h" +#include "adt/Casts.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstddef> +#include <cstdint> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -36,7 +37,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -50,7 +52,7 @@ rawspeed::MSan::CheckMemIsInitialized( mRaw->getByteDataAsUncroppedArray2DRef()); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/PentaxDecompressor.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/PentaxDecompressor.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/PentaxDecompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/PentaxDecompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,17 +18,19 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "decompressors/PentaxDecompressor.h" // for PentaxDecompressor -#include "MemorySanitizer.h" // for MSan -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for RawspeedException -#include "fuzz/Common.h" // for CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include <cassert> // for assert -#include <cstdint> // for uint32_t, uint8_t -#include <cstdio> // for size_t +#include "decompressors/PentaxDecompressor.h" +#include "MemorySanitizer.h" +#include "adt/Casts.h" +#include "adt/Optional.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstdint> +#include <cstdio> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -36,13 +38,14 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); rawspeed::RawImage mRaw(CreateRawImage(bs)); - std::optional<rawspeed::ByteStream> metaData; + rawspeed::Optional<rawspeed::ByteStream> metaData; const bool haveMetadata = bs.get<uint32_t>(); if (haveMetadata) { @@ -58,7 +61,7 @@ rawspeed::MSan::CheckMemIsInitialized( mRaw->getByteDataAsUncroppedArray2DRef()); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/PhaseOneDecompressor.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/PhaseOneDecompressor.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/PhaseOneDecompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/PhaseOneDecompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,20 +18,22 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "decompressors/PhaseOneDecompressor.h" // for PhaseOneDecompressor -#include "MemorySanitizer.h" // for MSan -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for RawspeedException -#include "fuzz/Common.h" // for CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include <algorithm> // for generate_n -#include <cassert> // for assert -#include <cstdint> // for uint8_t -#include <cstdio> // for size_t -#include <iterator> // for back_insert_iterator, back_ins... -#include <utility> // for move +#include "decompressors/PhaseOneDecompressor.h" +#include "MemorySanitizer.h" +#include "adt/Casts.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <algorithm> +#include <cassert> +#include <cstdint> +#include <cstdio> +#include <iterator> +#include <utility> +#include <vector> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -39,7 +41,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -61,7 +64,7 @@ rawspeed::MSan::CheckMemIsInitialized( mRaw->getByteDataAsUncroppedArray2DRef()); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/SamsungV0Decompressor.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/SamsungV0Decompressor.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/SamsungV0Decompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/SamsungV0Decompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,17 +18,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "decompressors/SamsungV0Decompressor.h" // for SamsungV0Decompressor -#include "MemorySanitizer.h" // for MSan -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for RawspeedException -#include "fuzz/Common.h" // for CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include <cassert> // for assert -#include <cstdint> // for uint32_t, uint8_t -#include <cstdio> // for size_t +#include "decompressors/SamsungV0Decompressor.h" +#include "MemorySanitizer.h" +#include "adt/Casts.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstdint> +#include <cstdio> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -36,7 +37,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -52,7 +54,7 @@ rawspeed::MSan::CheckMemIsInitialized( mRaw->getByteDataAsUncroppedArray2DRef()); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/SamsungV1Decompressor.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/SamsungV1Decompressor.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/SamsungV1Decompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/SamsungV1Decompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,17 +18,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "decompressors/SamsungV1Decompressor.h" // for SamsungV1Decompressor -#include "MemorySanitizer.h" // for MSan -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for RawspeedException -#include "fuzz/Common.h" // for CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include <cassert> // for assert -#include <cstdint> // for uint32_t, uint8_t -#include <cstdio> // for size_t +#include "decompressors/SamsungV1Decompressor.h" +#include "MemorySanitizer.h" +#include "adt/Casts.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstdint> +#include <cstdio> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -36,7 +37,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -51,7 +53,7 @@ rawspeed::MSan::CheckMemIsInitialized( mRaw->getByteDataAsUncroppedArray2DRef()); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/SamsungV2Decompressor.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/SamsungV2Decompressor.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/SamsungV2Decompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/SamsungV2Decompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,17 +18,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "decompressors/SamsungV2Decompressor.h" // for SamsungV2Decompressor -#include "MemorySanitizer.h" // for MSan -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for RawspeedException -#include "fuzz/Common.h" // for CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include <cassert> // for assert -#include <cstdint> // for uint32_t, uint8_t -#include <cstdio> // for size_t +#include "decompressors/SamsungV2Decompressor.h" +#include "MemorySanitizer.h" +#include "adt/Casts.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstdint> +#include <cstdio> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -36,7 +37,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -51,7 +53,7 @@ rawspeed::MSan::CheckMemIsInitialized( mRaw->getByteDataAsUncroppedArray2DRef()); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/SonyArw1Decompressor.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/SonyArw1Decompressor.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/SonyArw1Decompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/SonyArw1Decompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,17 +18,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "decompressors/SonyArw1Decompressor.h" // for SonyArw1Decompre... -#include "MemorySanitizer.h" // for MSan -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for RawspeedException -#include "fuzz/Common.h" // for CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include <cassert> // for assert -#include <cstdint> // for uint8_t -#include <cstdio> // for size_t +#include "decompressors/SonyArw1Decompressor.h" +#include "MemorySanitizer.h" +#include "adt/Casts.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstdint> +#include <cstdio> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -36,7 +37,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -50,7 +52,7 @@ rawspeed::MSan::CheckMemIsInitialized( mRaw->getByteDataAsUncroppedArray2DRef()); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/SonyArw2Decompressor.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/SonyArw2Decompressor.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/SonyArw2Decompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/SonyArw2Decompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,17 +18,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "decompressors/SonyArw2Decompressor.h" // for SonyArw1Decompre... -#include "MemorySanitizer.h" // for MSan -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for RawspeedException -#include "fuzz/Common.h" // for CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include <cassert> // for assert -#include <cstdint> // for uint8_t -#include <cstdio> // for size_t +#include "decompressors/SonyArw2Decompressor.h" +#include "MemorySanitizer.h" +#include "adt/Casts.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstdint> +#include <cstdio> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -36,7 +37,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -50,7 +52,7 @@ rawspeed::MSan::CheckMemIsInitialized( mRaw->getByteDataAsUncroppedArray2DRef()); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/UncompressedDecompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,16 +19,19 @@ */ #include "decompressors/UncompressedDecompressor.h" -#include "MemorySanitizer.h" // for MSan -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for ThrowException, RawspeedException -#include "fuzz/Common.h" // for CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include <cassert> // for assert -#include <cstddef> // for size_t -#include <cstdint> // for uint8_t +#include "MemorySanitizer.h" +#include "adt/Casts.h" +#include "adt/Point.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cassert> +#include <cstddef> +#include <cstdint> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -36,7 +39,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -46,10 +50,10 @@ int bitPerPixel = bs.getI32(); rawspeed::BitOrder order = [&bs]() { switch (int val = bs.getI32()) { - case (int)rawspeed::BitOrder::LSB: - case (int)rawspeed::BitOrder::MSB: - case (int)rawspeed::BitOrder::MSB16: - case (int)rawspeed::BitOrder::MSB32: + case static_cast<int>(rawspeed::BitOrder::LSB): + case static_cast<int>(rawspeed::BitOrder::MSB): + case static_cast<int>(rawspeed::BitOrder::MSB16): + case static_cast<int>(rawspeed::BitOrder::MSB32): return rawspeed::BitOrder(val); default: ThrowRSE("Unknown bit order: %u", val); @@ -66,7 +70,7 @@ rawspeed::MSan::CheckMemIsInitialized( mRaw->getByteDataAsUncroppedArray2DRef()); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/VC5Decompressor.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/VC5Decompressor.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/decompressors/VC5Decompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/decompressors/VC5Decompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,18 +18,19 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "decompressors/VC5Decompressor.h" // for VC5Decompressor -#include "MemorySanitizer.h" // for MSan -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for RawspeedException -#include "fuzz/Common.h" // for CreateCFA, CreateRawImage -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include "metadata/ColorFilterArray.h" // for ColorFilterArray -#include <cassert> // for assert -#include <cstdint> // for uint8_t -#include <cstdio> // for size_t +#include "decompressors/VC5Decompressor.h" +#include "MemorySanitizer.h" +#include "adt/Casts.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "fuzz/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "metadata/ColorFilterArray.h" +#include <cassert> +#include <cstdint> +#include <cstdio> extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size); @@ -37,7 +38,8 @@ assert(Data); try { - const rawspeed::Buffer b(Data, Size); + const rawspeed::Buffer b( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); const rawspeed::DataBuffer db(b, rawspeed::Endianness::little); rawspeed::ByteStream bs(db); @@ -58,7 +60,7 @@ // It is expected to be the only DNG tile, and to fill the entire image. rawspeed::MSan::CheckMemIsInitialized( mRaw->getByteDataAsUncroppedArray2DRef()); - } catch (const rawspeed::RawspeedException&) { + } catch (const rawspeed::RawspeedException&) { // NOLINT(bugprone-empty-catch) // Exceptions are good, crashes are bad. } diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/fuzz/Common.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/fuzz/Common.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/fuzz/Common.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/fuzz/Common.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,11 +19,14 @@ */ #include "fuzz/Common.h" -#include "adt/Point.h" // for iPoint2D, iPoint2D::value_type -#include "common/RawImage.h" // for RawImage, RawImageData, RawImageType -#include "io/ByteStream.h" // for ByteStream -#include "io/IOException.h" // for ThrowException, ThrowRSE, ThrowIOE -#include <cstdint> // for uint32_t, int32_t +#include "adt/Casts.h" +#include "adt/Point.h" +#include "common/RawImage.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/IOException.h" +#include "metadata/ColorFilterArray.h" +#include <cstdint> rawspeed::RawImage CreateRawImage(rawspeed::ByteStream& bs) { const uint32_t width = bs.getU32(); @@ -58,7 +61,8 @@ rawspeed::ColorFilterArray cfa; cfa.setSize(cfaSize); - (void)bs.check(cfaSize.area(), 4); + (void)bs.check( + rawspeed::implicit_cast<rawspeed::Buffer::size_type>(cfaSize.area()), 4); for (auto x = 0; x < cfaWidth; x++) { for (auto y = 0; y < cfaHeight; y++) { diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/fuzz/Common.h darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/fuzz/Common.h --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/fuzz/Common.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/fuzz/Common.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,8 +20,8 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "metadata/ColorFilterArray.h" // for ColorFilterArray +#include "common/RawImage.h" +#include "metadata/ColorFilterArray.h" namespace rawspeed { class ByteStream; diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/fuzz/RawSpeed.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/fuzz/RawSpeed.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/fuzz/RawSpeed.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/fuzz/RawSpeed.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,8 +18,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "rawspeedconfig.h" // for RAWSPEED_READNONE -#include "common/Common.h" // for rawspeed_get_number_of_processor_cores +#include "rawspeedconfig.h" +#include "common/Common.h" // define this function, it is only declared in rawspeed: // for fuzzing, do not want any threading. diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/parsers/main.cpp darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/parsers/main.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/librawspeed/parsers/main.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/librawspeed/parsers/main.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,6 +18,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "adt/Casts.h" #ifndef PARSER #error PARSER must be defined #endif @@ -30,24 +31,23 @@ #error DECODE must be defined as bool #endif -#include "io/Buffer.h" // for Buffer -#include "io/IOException.h" // for IOException, RawspeedExcep... -#include "parsers/CiffParser.h" // IWYU pragma: keep -#include "parsers/FiffParser.h" // IWYU pragma: keep -#include "parsers/RawParser.h" // IWYU pragma: keep -#include "parsers/RawParserException.h" // for RawParserException -#include "parsers/TiffParser.h" // for TiffParser -#include <cassert> // for assert -#include <cstdint> // for uint8_t -#include <cstdio> // for size_t +#include "io/Buffer.h" +#include "io/IOException.h" +#include "parsers/CiffParser.h" // IWYU pragma: keep +#include "parsers/FiffParser.h" // IWYU pragma: keep +#include "parsers/RawParser.h" // IWYU pragma: keep +#include "parsers/RawParserException.h" +#include "parsers/TiffParser.h" +#include <cassert> +#include <cstdint> +#include <cstdio> #if GETDECODER -#include "decoders/RawDecoder.h" // for RawDecoder -#include "decoders/RawDecoderException.h" // for RawDecoderException +#include "decoders/RawDecoderException.h" #if DECODE -#include "common/RawspeedException.h" // for RawspeedException -#include "metadata/CameraMetaData.h" // for CameraMetaData -#include <memory> // for unique_ptr +#include "common/RawspeedException.h" +#include "metadata/CameraMetaData.h" +#include <memory> #endif #endif @@ -60,7 +60,8 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size) { assert(Data); - const rawspeed::Buffer buffer(Data, Size); + const rawspeed::Buffer buffer( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); try { rawspeed::PARSER parser(buffer); diff -Nru darktable-4.4.2/src/external/rawspeed/fuzz/rawspeed/main.cpp darktable-4.6.1/src/external/rawspeed/fuzz/rawspeed/main.cpp --- darktable-4.4.2/src/external/rawspeed/fuzz/rawspeed/main.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/fuzz/rawspeed/main.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,10 +18,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "RawSpeed-API.h" // for RawDecoder, RawParser, Buffer, CameraMetaData -#include <cstddef> // for size_t -#include <cstdint> // for uint8_t -#include <memory> // for unique_ptr +#include "RawSpeed-API.h" +#include "adt/Casts.h" +#include <cstddef> +#include <cstdint> +#include <memory> static const rawspeed::CameraMetaData metadata{}; @@ -32,7 +33,8 @@ // "/data/cameras.xml"); try { - const rawspeed::Buffer buffer(Data, Size); + const rawspeed::Buffer buffer( + Data, rawspeed::implicit_cast<rawspeed::Buffer::size_type>(Size)); rawspeed::RawParser parser(buffer); auto decoder = parser.getDecoder(/*&metadata*/); diff -Nru darktable-4.4.2/src/external/rawspeed/src/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/src/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/src/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -1,4 +1,3 @@ -include(memory-align-alloc) include(thread-local) include(cpu-cache-line-size) include(cpu-page-size) diff -Nru darktable-4.4.2/src/external/rawspeed/src/config.h.in darktable-4.6.1/src/external/rawspeed/src/config.h.in --- darktable-4.4.2/src/external/rawspeed/src/config.h.in 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/config.h.in 2024-02-14 22:08:05.000000000 +0000 @@ -68,12 +68,6 @@ #cmakedefine HAVE_CXX_THREAD_LOCAL #cmakedefine HAVE_GCC_THREAD_LOCAL -// which aligned memory allocation function is available? -// only the first one found will be enabled -#cmakedefine HAVE_ALIGNED_ALLOC -#cmakedefine HAVE_POSIX_MEMALIGN -#cmakedefine HAVE_ALIGNED_MALLOC - #cmakedefine RAWSPEED_STANDALONE_BUILD #ifdef RAWSPEED_STANDALONE_BUILD #define RAWSPEED_SOURCE_DIR "@RAWSPEED_SOURCE_DIR@" diff -Nru darktable-4.4.2/src/external/rawspeed/src/external/AddressSanitizer.h darktable-4.6.1/src/external/rawspeed/src/external/AddressSanitizer.h --- darktable-4.4.2/src/external/rawspeed/src/external/AddressSanitizer.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/external/AddressSanitizer.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,7 +20,7 @@ #pragma once -#include <cstddef> // for size_t +#include <cstddef> // see http://clang.llvm.org/docs/LanguageExtensions.html #ifndef __has_feature // Optional of course. diff -Nru darktable-4.4.2/src/external/rawspeed/src/external/MemorySanitizer.h darktable-4.6.1/src/external/rawspeed/src/external/MemorySanitizer.h --- darktable-4.4.2/src/external/rawspeed/src/external/MemorySanitizer.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/external/MemorySanitizer.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,9 +20,9 @@ #pragma once -#include "adt/CroppedArray1DRef.h" // for CroppedArray1DRef -#include "adt/CroppedArray2DRef.h" // for CroppedArray2DRef -#include <cstddef> // for byte, size_t +#include "adt/CroppedArray1DRef.h" +#include "adt/CroppedArray2DRef.h" +#include <cstddef> // see http://clang.llvm.org/docs/LanguageExtensions.html #ifndef __has_feature // Optional of course. diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/AlignedAllocator.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/AlignedAllocator.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/AlignedAllocator.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/AlignedAllocator.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,63 +20,19 @@ #pragma once -#include "rawspeedconfig.h" -#include "AddressSanitizer.h" -#include "adt/Invariant.h" // for invariant +#include "adt/Invariant.h" #include "common/Common.h" #include "common/RawspeedException.h" -#include <cstddef> // for size_t -#include <cstdint> // for SIZE_MAX -#include <memory> // for allocator_traits +#include <cassert> +#include <cstddef> +#include <cstdint> +#include <cstdlib> +#include <memory> +#include <new> +#include <type_traits> namespace rawspeed { -namespace impl { - -[[nodiscard]] inline void* __attribute__((malloc, warn_unused_result, - alloc_size(1), alloc_align(2))) -alignedMalloc(size_t size, size_t alignment) { - invariant(isPowerOfTwo(alignment)); // for posix_memalign, _aligned_malloc - invariant(isAligned(alignment, sizeof(void*))); // for posix_memalign - invariant(isAligned(size, alignment)); // for aligned_alloc - - void* ptr = nullptr; - -#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION - // workaround ASAN's broken allocator_may_return_null option - // plus, avoidance of libFuzzer's rss_limit_mb option - // if trying to alloc more than 2GB, just return null. - // else it would abort() the whole program... - if (size > 2UL << 30UL) - return ptr; -#endif - -#if defined(HAVE_ALIGNED_ALLOC) - ptr = aligned_alloc(alignment, size); -#elif defined(HAVE_POSIX_MEMALIGN) - if (0 != posix_memalign(&ptr, alignment, size)) - return nullptr; -#elif defined(HAVE_ALIGNED_MALLOC) - ptr = _aligned_malloc(size, alignment); -#else -#error "No aligned malloc() implementation available!" -#endif - - invariant(isAligned(ptr, alignment)); - - return ptr; -} - -inline void alignedFree(void* ptr) { -#if defined(HAVE_ALIGNED_MALLOC) - _aligned_free(ptr); -#else - free(ptr); // NOLINT -#endif -} - -} // namespace impl - template <class T, int alignment> class AlignedAllocator { using self = AlignedAllocator<T, alignment>; using allocator_traits = std::allocator_traits<self>; @@ -84,12 +40,12 @@ public: using value_type = T; - template <class U> struct rebind { + template <class U> struct rebind final { using other = AlignedAllocator<U, alignment>; }; [[nodiscard]] T* allocate(std::size_t numElts) const { - static_assert(alignment >= alignof(T), "insufficient alignment"); + static_assert(size_t(alignment) >= alignof(T), "insufficient alignment"); invariant(numElts > 0 && "Should not be trying to allocate no elements"); assert(numElts <= allocator_traits::max_size(*this) && "Can allocate this many elements."); @@ -97,22 +53,29 @@ "Byte count calculation will not overflow"); std::size_t numBytes = sizeof(T) * numElts; - std::size_t numPaddedBytes = roundUp(numBytes, alignment); - invariant(numPaddedBytes >= numBytes && - "Alignment did not cause wraparound."); - auto* r = static_cast<T*>(impl::alignedMalloc(numPaddedBytes, alignment)); +#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + // workaround ASAN's broken allocator_may_return_null option + // plus, avoidance of libFuzzer's rss_limit_mb option + // if trying to alloc more than 2GB, just return null. + // else it would abort() the whole program... + if (numBytes > 2UL << 30UL) + ThrowRSE("FUZZ alloc bailout (%zu bytes)", numBytes); +#endif + + auto* r = static_cast<T*>(operator new( + numBytes, static_cast<std::align_val_t>(alignment))); + invariant(isAligned(r, alignment)); if (!r) - ThrowRSE("Out of memory while trying to allocate %zu bytes", - numPaddedBytes); - ASan::PoisonMemoryRegion(r + numElts, numPaddedBytes - numBytes); + ThrowRSE("Out of memory while trying to allocate %zu bytes", numBytes); return r; } void deallocate(T* p, std::size_t n) const noexcept { invariant(p); invariant(n > 0); - impl::alignedFree(p); + invariant(isAligned(p, alignment)); + operator delete(p, static_cast<std::align_val_t>(alignment)); } using propagate_on_container_copy_assignment = std::true_type; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/Array1DRef.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/Array1DRef.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/Array1DRef.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/Array1DRef.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,64 +20,69 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_READONLY -#include "adt/Invariant.h" // for invariant -#include <type_traits> // for negation, is_const, remove_const_t, is_same -#include <vector> // for vector +#include "rawspeedconfig.h" +#include "adt/Invariant.h" +#include <cstddef> +#include <type_traits> namespace rawspeed { template <class T> class CroppedArray1DRef; -template <class T> class Array1DRef { - T* data = nullptr; - int numElts = 0; +template <class T> class Array1DRef final { + T* data; + int numElts; friend Array1DRef<const T>; // We need to be able to convert to const version. + // We need to be able to convert to std::byte. + friend Array1DRef<std::byte>; + friend Array1DRef<const std::byte>; + public: + void establishClassInvariants() const noexcept; + using value_type = T; using cvless_value_type = std::remove_cv_t<value_type>; - Array1DRef() = default; + Array1DRef() = delete; Array1DRef(T* data, int numElts); // Can not cast away constness. - template < - typename T2, - std::enable_if_t<std::conjunction_v<std::is_const<T2>, - std::negation<std::is_const<T>>>, - bool> = true> + template <typename T2> + requires(std::is_const_v<T2> && !std::is_const_v<T>) Array1DRef(Array1DRef<T2> RHS) = delete; - // Can not change type. - template <typename T2, - std::enable_if_t< - std::conjunction_v< - std::negation<std::conjunction< - std::is_const<T2>, std::negation<std::is_const<T>>>>, - std::negation<std::is_same<std::remove_const_t<T>, - std::remove_const_t<T2>>>>, - bool> = true> + // Can not change type to non-byte. + template <typename T2> + requires(!(std::is_const_v<T2> && !std::is_const_v<T>) && + !std::is_same_v<std::remove_const_t<T>, std::remove_const_t<T2>> && + !std::is_same_v<std::remove_const_t<T>, std::byte>) Array1DRef(Array1DRef<T2> RHS) = delete; // Conversion from Array1DRef<T> to Array1DRef<const T>. - template < - typename T2, - std::enable_if_t< - std::conjunction_v< - std::conjunction<std::negation<std::is_const<T2>>, - std::is_const<T>>, - std::is_same<std::remove_const_t<T>, std::remove_const_t<T2>>>, - bool> = true> - Array1DRef(Array1DRef<T2> RHS) // NOLINT google-explicit-constructor - : data(RHS.data), numElts(RHS.numElts) {} + template <typename T2> + requires(!std::is_const_v<T2> && std::is_const_v<T> && + std::is_same_v<std::remove_const_t<T>, std::remove_const_t<T2>>) + inline Array1DRef(Array1DRef<T2> RHS) // NOLINT(google-explicit-constructor) + : Array1DRef(RHS.data, RHS.numElts) {} + + // Const-preserving conversion from Array1DRef<T> to Array1DRef<std::byte>. + template <typename T2> + requires( + !(std::is_const_v<T2> && !std::is_const_v<T>) && + !(std::is_same_v<std::remove_const_t<T>, std::remove_const_t<T2>>) && + std::is_same_v<std::remove_const_t<T>, std::byte>) + inline Array1DRef(Array1DRef<T2> RHS) // NOLINT(google-explicit-constructor) + : Array1DRef(reinterpret_cast<T*>(RHS.data), sizeof(T2) * RHS.numElts) {} [[nodiscard]] CroppedArray1DRef<T> getCrop(int offset, int numElts) const; + [[nodiscard]] CroppedArray1DRef<T> getBlock(int numElts, int index) const; [[nodiscard]] int RAWSPEED_READONLY size() const; + [[nodiscard]] T* addressOf(int eltIdx) const; [[nodiscard]] T& operator()(int eltIdx) const; [[nodiscard]] T* begin() const; @@ -88,35 +93,76 @@ template <typename T> Array1DRef(T* data_, int numElts_) -> Array1DRef<T>; template <class T> -Array1DRef<T>::Array1DRef(T* data_, const int numElts_) - : data(data_), numElts(numElts_) { +__attribute__((always_inline)) inline void +Array1DRef<T>::establishClassInvariants() const noexcept { invariant(data); invariant(numElts >= 0); } template <class T> -[[nodiscard]] CroppedArray1DRef<T> Array1DRef<T>::getCrop(int offset, - int size) const { +inline Array1DRef<T>::Array1DRef(T* data_, const int numElts_) + : data(data_), numElts(numElts_) { + establishClassInvariants(); +} + +template <class T> +[[nodiscard]] inline CroppedArray1DRef<T> +Array1DRef<T>::getCrop(int offset, int size) const { + establishClassInvariants(); invariant(offset >= 0); invariant(size >= 0); + invariant(offset <= numElts); + invariant(size <= numElts); invariant(offset + size <= numElts); return {*this, offset, size}; } -template <class T> inline T& Array1DRef<T>::operator()(const int eltIdx) const { - invariant(data); +template <class T> +[[nodiscard]] inline CroppedArray1DRef<T> +Array1DRef<T>::getBlock(int size, int index) const { + establishClassInvariants(); + invariant(index >= 0); + invariant(size >= 0); + invariant(index <= numElts); + invariant(size <= numElts); + return getCrop(size * index, size); +} + +template <class T> +__attribute__((always_inline)) inline T* +Array1DRef<T>::addressOf(const int eltIdx) const { + establishClassInvariants(); + invariant(eltIdx >= 0); + invariant(eltIdx <= numElts); +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpragmas" +#pragma GCC diagnostic ignored "-Wunknown-warning-option" +#pragma GCC diagnostic ignored "-Wunsafe-buffer-usage" + return data + eltIdx; +#pragma GCC diagnostic pop +} + +template <class T> +__attribute__((always_inline)) inline T& +Array1DRef<T>::operator()(const int eltIdx) const { + establishClassInvariants(); invariant(eltIdx >= 0); invariant(eltIdx < numElts); - return data[eltIdx]; + return *addressOf(eltIdx); } -template <class T> inline int Array1DRef<T>::size() const { return numElts; } +template <class T> inline int Array1DRef<T>::size() const { + establishClassInvariants(); + return numElts; +} template <class T> inline T* Array1DRef<T>::begin() const { - return &operator()(0); + establishClassInvariants(); + return addressOf(/*eltIdx=*/0); } template <class T> inline T* Array1DRef<T>::end() const { - return &operator()(size() - 1) + 1; + establishClassInvariants(); + return addressOf(/*eltIdx=*/numElts); } } // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/Array2DRef.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/Array2DRef.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/Array2DRef.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/Array2DRef.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,17 +21,23 @@ #pragma once -#include "adt/Array1DRef.h" // for Array1DRef -#include "adt/Invariant.h" // for invariant -#include <cstddef> // for byte -#include <type_traits> // for negation, is_const, remove_const_t, is_same -#include <vector> // for vector +#include "rawspeedconfig.h" +#include "adt/Array1DRef.h" +#include "adt/CroppedArray1DRef.h" // IWYU pragma: keep +#include "adt/Invariant.h" +#include "adt/Optional.h" +#include <cstddef> +#include <type_traits> +#include <vector> namespace rawspeed { -template <class T> class Array2DRef { - T* _data = nullptr; - int _pitch = 0; +template <class T> class Array2DRef final { + Array1DRef<T> data; + int _pitch; + + int _width; + int _height; friend Array2DRef<const T>; // We need to be able to convert to const version. @@ -40,67 +46,54 @@ friend Array2DRef<const std::byte>; public: + void establishClassInvariants() const noexcept; + + Array2DRef(Array1DRef<T> data, int width, int height, int pitch); + using value_type = T; using cvless_value_type = std::remove_cv_t<value_type>; - int width = 0; - int height = 0; + [[nodiscard]] int RAWSPEED_READONLY width() const; + [[nodiscard]] int RAWSPEED_READONLY height() const; - Array2DRef() = default; + Array2DRef() = delete; - Array2DRef(T* data, int width, int height, int pitch = 0); + Array2DRef(T* data, int width, int height, int pitch); + + Array2DRef(T* data, int width, int height); // Can not cast away constness. - template < - typename T2, - std::enable_if_t<std::conjunction_v<std::is_const<T2>, - std::negation<std::is_const<T>>>, - bool> = true> + template <typename T2> + requires(std::is_const_v<T2> && !std::is_const_v<T>) Array2DRef(Array2DRef<T2> RHS) = delete; // Can not change type to non-byte. - template < - typename T2, - std::enable_if_t< - std::conjunction_v< - std::negation<std::conjunction<std::is_const<T2>, - std::negation<std::is_const<T>>>>, - std::negation<std::is_same<std::remove_const_t<T>, - std::remove_const_t<T2>>>, - std::negation<std::is_same<std::remove_const_t<T>, std::byte>>>, - bool> = true> + template <typename T2> + requires(!(std::is_const_v<T2> && !std::is_const_v<T>) && + !std::is_same_v<std::remove_const_t<T>, std::remove_const_t<T2>> && + !std::is_same_v<std::remove_const_t<T>, std::byte>) Array2DRef(Array2DRef<T2> RHS) = delete; // Conversion from Array2DRef<T> to Array2DRef<const T>. - template < - typename T2, - std::enable_if_t< - std::conjunction_v< - std::conjunction<std::negation<std::is_const<T2>>, - std::is_const<T>>, - std::is_same<std::remove_const_t<T>, std::remove_const_t<T2>>>, - bool> = true> - Array2DRef(Array2DRef<T2> RHS) // NOLINT google-explicit-constructor - : _data(RHS._data), _pitch(RHS._pitch), width(RHS.width), - height(RHS.height) {} + template <typename T2> + requires(!std::is_const_v<T2> && std::is_const_v<T> && + std::is_same_v<std::remove_const_t<T>, std::remove_const_t<T2>>) + inline Array2DRef(Array2DRef<T2> RHS) // NOLINT(google-explicit-constructor) + : Array2DRef(RHS.data, RHS._width, RHS._height, RHS._pitch) {} // Const-preserving conversion from Array2DRef<T> to Array2DRef<std::byte>. - template <typename T2, - std::enable_if_t< - std::conjunction_v< - std::negation<std::conjunction< - std::is_const<T2>, std::negation<std::is_const<T>>>>, - std::negation<std::is_same<std::remove_const_t<T>, - std::remove_const_t<T2>>>, - std::is_same<std::remove_const_t<T>, std::byte>>, - bool> = true> - Array2DRef(Array2DRef<T2> RHS) // NOLINT google-explicit-constructor - : _data(reinterpret_cast<T*>(RHS._data)), _pitch(sizeof(T2) * RHS._pitch), - width(sizeof(T2) * RHS.width), height(RHS.height) {} + template <typename T2> + requires( + !(std::is_const_v<T2> && !std::is_const_v<T>) && + !(std::is_same_v<std::remove_const_t<T>, std::remove_const_t<T2>>) && + std::is_same_v<std::remove_const_t<T>, std::byte>) + inline Array2DRef(Array2DRef<T2> RHS) // NOLINT(google-explicit-constructor) + : Array2DRef(RHS.data, sizeof(T2) * RHS._width, RHS._height, + sizeof(T2) * RHS._pitch) {} template <typename AllocatorType = typename std::vector<cvless_value_type>::allocator_type> - static Array2DRef<T> + inline static Array2DRef<T> create(std::vector<cvless_value_type, AllocatorType>& storage, int width, int height) { using VectorTy = std::remove_reference_t<decltype(storage)>; @@ -108,32 +101,94 @@ return {storage.data(), width, height}; } + [[nodiscard]] Optional<Array1DRef<T>> getAsArray1DRef() const; + Array1DRef<T> operator[](int row) const; T& operator()(int row, int col) const; }; +// CTAD deduction guide +template <typename T> +explicit Array2DRef(Array1DRef<T> data, int width, int height, int pitch) + -> Array2DRef<T>; + +// CTAD deduction guide +template <typename T> +explicit Array2DRef(T* data, int width, int height, int pitch) -> Array2DRef<T>; + +// CTAD deduction guide +template <typename T> +explicit Array2DRef(T* data, int width, int height) -> Array2DRef<T>; + +template <class T> +__attribute__((always_inline)) inline void +Array2DRef<T>::establishClassInvariants() const noexcept { + data.establishClassInvariants(); + invariant(_width >= 0); + invariant(_height >= 0); + invariant(_pitch != 0); + invariant(_pitch >= 0); + invariant(_pitch >= _width); + invariant((_width == 0) == (_height == 0)); + invariant(data.size() == _pitch * _height); +} + +template <class T> +inline Array2DRef<T>::Array2DRef(Array1DRef<T> data_, const int width_, + const int height_, const int pitch_) + : data(data_), _pitch(pitch_), _width(width_), _height(height_) { + establishClassInvariants(); +} + +template <class T> +inline Array2DRef<T>::Array2DRef(T* data_, const int width_, const int height_, + const int pitch_) + : Array2DRef({data_, pitch_ * height_}, width_, height_, pitch_) { + establishClassInvariants(); +} + +template <class T> +inline Array2DRef<T>::Array2DRef(T* data_, const int width_, const int height_) + : Array2DRef(data_, width_, height_, /*pitch=*/width_) { + establishClassInvariants(); +} + +template <class T> +__attribute__((always_inline)) inline int Array2DRef<T>::width() const { + establishClassInvariants(); + return _width; +} + +template <class T> +__attribute__((always_inline)) inline int Array2DRef<T>::height() const { + establishClassInvariants(); + return _height; +} + template <class T> -Array2DRef<T>::Array2DRef(T* data, const int width_, const int height_, - const int pitch_ /* = 0 */) - : _data(data), width(width_), height(height_) { - invariant(width >= 0); - invariant(height >= 0); - _pitch = (pitch_ == 0 ? width_ : pitch_); +[[nodiscard]] inline Optional<Array1DRef<T>> +Array2DRef<T>::getAsArray1DRef() const { + establishClassInvariants(); + if (height() == 1 || _pitch == width()) + return data.getCrop(/*offset=*/0, width() * height()).getAsArray1DRef(); + return std::nullopt; } template <class T> inline Array1DRef<T> Array2DRef<T>::operator[](const int row) const { - invariant(_data); + establishClassInvariants(); invariant(row >= 0); - invariant(row < height); - return Array1DRef<T>(&_data[row * _pitch], width); + invariant(row < height()); + return data.getCrop(row * _pitch, width()).getAsArray1DRef(); } template <class T> -inline T& Array2DRef<T>::operator()(const int row, const int col) const { +__attribute__((always_inline)) inline T& +Array2DRef<T>::operator()(const int row, const int col) const { + establishClassInvariants(); invariant(col >= 0); - invariant(col < width); + invariant(col < width()); return (operator[](row))(col); } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/Bit.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/Bit.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/Bit.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/Bit.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,155 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2009-2014 Klaus Post + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "rawspeedconfig.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include <algorithm> +#include <climits> +#include <cstdint> +#include <cstring> +#include <type_traits> + +namespace rawspeed { + +template <typename T_TO, typename T_FROM> + requires(sizeof(T_TO) == sizeof(T_FROM) && + std::is_trivially_constructible_v<T_TO> && + std::is_trivially_copyable_v<T_TO> && + std::is_trivially_copyable_v<T_FROM>) +inline T_TO bit_cast(const T_FROM& from) noexcept { + T_TO to; + memcpy(&to, &from, sizeof(T_TO)); + return to; +} + +// only works for positive values and zero +template <typename T> constexpr bool RAWSPEED_READNONE isPowerOfTwo(T val) { + return (val & (~val + 1)) == val; +} + +template <class T> +constexpr unsigned RAWSPEED_READNONE bitwidth([[maybe_unused]] T unused = {}) { + return CHAR_BIT * sizeof(T); +} + +template <class T> + requires std::is_unsigned_v<T> +constexpr int countl_zero(T x) noexcept { + if (x == T(0)) + return bitwidth<T>(); + return __builtin_clz(x); +} + +template <class T> + requires std::is_unsigned_v<T> +constexpr int countl_one(T x) noexcept { + return countl_zero<T>(~x); +} + +template <class T> + requires std::unsigned_integral<T> +unsigned numSignBits(const T v) { + using SignedT = std::make_signed_t<T>; + return static_cast<SignedT>(v) < 0 ? countl_one(v) : countl_zero(v); +} + +template <class T> + requires std::unsigned_integral<T> +unsigned numActiveBits(const T v) { + return bitwidth(v) - countl_zero(v); +} + +template <class T> + requires std::unsigned_integral<T> +unsigned numSignificantBits(const T v) { + return bitwidth(v) - numSignBits(v) + 1; +} + +// Clamps the given value to the range 0 .. 2^n-1, with n <= 16 +template <typename T> + requires std::is_arithmetic_v<T> +constexpr auto RAWSPEED_READNONE clampBits(T value, unsigned int nBits) { + // We expect to produce uint16_t. + invariant(nBits <= 16); + // Check that the clamp is not a no-op. Not of uint16_t to 16 bits e.g. + // (Well, not really, if we are called from clampBits<signed>, it's ok..). + invariant(bitwidth<T>() > nBits); // If nBits >= bitwidth, then shift is UB. + const auto maxVal = implicit_cast<T>((T(1) << nBits) - T(1)); + return implicit_cast<uint16_t>(std::clamp(value, T(0), maxVal)); +} + +template <typename T> + requires std::is_arithmetic_v<T> +constexpr bool RAWSPEED_READNONE isIntN(T value, unsigned int nBits) { + invariant(nBits < bitwidth<T>() && "Check must not be tautological."); + using UnsignedT = std::make_unsigned_t<T>; + const auto highBits = static_cast<UnsignedT>(value) >> nBits; + return highBits == 0; +} + +template <class T> + requires std::unsigned_integral<T> +constexpr RAWSPEED_READNONE T extractLowBits(T value, unsigned nBits) { + // invariant(nBits >= 0); + invariant(nBits != 0); // Would result in out-of-bound shift. + invariant(nBits <= bitwidth<T>()); // No-op is fine. + unsigned numHighPaddingBits = bitwidth<T>() - nBits; + // invariant(numHighPaddingBits >= 0); + invariant(numHighPaddingBits < bitwidth<T>()); // Shift is in-bounds. + value <<= numHighPaddingBits; + value >>= numHighPaddingBits; + return value; +} + +template <class T> + requires std::unsigned_integral<T> +constexpr RAWSPEED_READNONE T extractLowBitsSafe(T value, unsigned nBits) { + // invariant(nBits >= 0); + invariant(nBits <= bitwidth<T>()); + if (nBits == 0) + return 0; + return extractLowBits(value, nBits); +} + +template <class T> + requires std::is_unsigned_v<T> +constexpr RAWSPEED_READNONE T extractHighBits( + T value, unsigned nBits, unsigned effectiveBitwidth = bitwidth<T>()) { + invariant(effectiveBitwidth <= bitwidth<T>()); + invariant(nBits <= effectiveBitwidth); + auto numLowBitsToSkip = effectiveBitwidth - nBits; + invariant(numLowBitsToSkip < bitwidth<T>()); + return value >> numLowBitsToSkip; +} + +template <typename T> + requires std::is_unsigned_v<T> +constexpr typename std::make_signed_t<T> + RAWSPEED_READNONE signExtend(T value, unsigned int nBits) { + invariant(nBits != 0 && "Only valid for non-zero bit count."); + const T SpareSignBits = bitwidth<T>() - nBits; + using SignedT = std::make_signed_t<T>; + return static_cast<SignedT>(value << SpareSignBits) >> SpareSignBits; +} + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/BitIterator.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/BitIterator.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/BitIterator.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/BitIterator.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,15 +20,17 @@ #pragma once -#include "adt/Invariant.h" // for invariant -#include "common/Common.h" // for bitwidth -#include <iterator> // for input_iterator_tag -#include <utility> // for enable_if_t, is_unsigned_v +#include "adt/Bit.h" +#include "adt/Invariant.h" +#include <cstddef> +#include <iterator> +#include <type_traits> namespace rawspeed { -template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>> -struct BitMSBIterator { +template <typename T> + requires std::is_unsigned_v<T> +struct BitMSBIterator final { T bitsPat; int bitIdx; @@ -57,9 +59,6 @@ invariant(a.bitsPat == b.bitsPat && "Comparing unrelated iterators."); return a.bitIdx == b.bitIdx; } - friend bool operator!=(const BitMSBIterator& a, const BitMSBIterator& b) { - return !(a == b); - } }; } // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -1,8 +1,13 @@ +rawspeed_add_library(rawspeed_adt OBJECT) +set_target_properties(rawspeed_adt PROPERTIES LINKER_LANGUAGE CXX) + FILE(GLOB SOURCES "AlignedAllocator.h" "Array1DRef.h" "Array2DRef.h" + "Bit.h" "BitIterator.h" + "Casts.h" "CroppedArray1DRef.h" "CroppedArray2DRef.h" "DefaultInitAllocatorAdaptor.h" @@ -12,9 +17,12 @@ "NotARational.h" "Point.h" "Range.h" + "VariableLengthLoad.h" "iterator_range.h" ) -target_sources(rawspeed PRIVATE +target_sources(rawspeed_adt PRIVATE ${SOURCES} ) + +target_link_libraries(rawspeed PRIVATE rawspeed_adt) diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/Casts.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/Casts.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/Casts.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/Casts.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,50 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2023 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "rawspeedconfig.h" +#include <type_traits> + +namespace rawspeed { + +template <typename Ttgt, typename Tsrc> + requires(((std::is_integral_v<Tsrc> || std::is_floating_point_v<Tsrc>) && + (std::is_integral_v<Ttgt> || std::is_floating_point_v<Ttgt>)) && + !std::is_same_v<Tsrc, Ttgt>) +constexpr RAWSPEED_READNONE Ttgt implicit_cast(Tsrc value) { +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#pragma GCC diagnostic ignored "-Wdouble-promotion" + return value; +#pragma GCC diagnostic pop +} + +// Sometimes through templates in some template instantiations +// the types do end up being the same. This is fine. +template <typename Ttgt, typename Tsrc> + requires(((std::is_integral_v<Tsrc> || std::is_floating_point_v<Tsrc>) && + (std::is_integral_v<Ttgt> || std::is_floating_point_v<Ttgt>)) && + std::is_same_v<Tsrc, Ttgt>) +constexpr RAWSPEED_READNONE Ttgt implicit_cast(Tsrc value) { + return value; +} + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/CroppedArray1DRef.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/CroppedArray1DRef.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/CroppedArray1DRef.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/CroppedArray1DRef.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,18 +20,17 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_READONLY -#include "adt/Array1DRef.h" // for Array1DRef -#include "adt/Invariant.h" // for invariant -#include <type_traits> // for negation, is_const, remove_const_t, is_same -#include <vector> // for vector +#include "rawspeedconfig.h" +#include "adt/Array1DRef.h" +#include "adt/Invariant.h" +#include <type_traits> namespace rawspeed { -template <class T> class CroppedArray1DRef { - const Array1DRef<T> base; - int offset = 0; - int numElts = 0; +template <class T> class CroppedArray1DRef final { + Array1DRef<T> base; + int offset; + int numElts; friend CroppedArray1DRef<const T>; // We need to be able to convert to const // version. @@ -39,50 +38,49 @@ // Only allow construction from `Array1DRef<T>::getCrop()`. friend CroppedArray1DRef<T> Array1DRef<T>::getCrop(int offset, int numElts) const; + CroppedArray1DRef(Array1DRef<T> base, int offset, int numElts); public: + void establishClassInvariants() const noexcept; + using value_type = T; using cvless_value_type = std::remove_cv_t<value_type>; - CroppedArray1DRef() = default; + CroppedArray1DRef() = delete; // Can not cast away constness. - template < - typename T2, - std::enable_if_t<std::conjunction_v<std::is_const<T2>, - std::negation<std::is_const<T>>>, - bool> = true> + template <typename T2> + requires(std::is_const_v<T2> && !std::is_const_v<T>) CroppedArray1DRef(CroppedArray1DRef<T2> RHS) = delete; // Can not change type. - template <typename T2, - std::enable_if_t< - std::conjunction_v< - std::negation<std::conjunction< - std::is_const<T2>, std::negation<std::is_const<T>>>>, - std::negation<std::is_same<std::remove_const_t<T>, - std::remove_const_t<T2>>>>, - bool> = true> + template <typename T2> + requires(!(std::is_const_v<T2> && !std::is_const_v<T>) && + !std::is_same_v<std::remove_const_t<T>, std::remove_const_t<T2>>) CroppedArray1DRef(CroppedArray1DRef<T2> RHS) = delete; // Conversion from CroppedArray1DRef<T> to CroppedArray1DRef<const T>. - template < - typename T2, - std::enable_if_t< - std::conjunction_v< - std::conjunction<std::negation<std::is_const<T2>>, - std::is_const<T>>, - std::is_same<std::remove_const_t<T>, std::remove_const_t<T2>>>, - bool> = true> - CroppedArray1DRef( // NOLINT google-explicit-constructor + template <typename T2> + requires(!std::is_const_v<T2> && std::is_const_v<T> && + std::is_same_v<std::remove_const_t<T>, std::remove_const_t<T2>>) + inline CroppedArray1DRef( // NOLINT(google-explicit-constructor) CroppedArray1DRef<T2> RHS) - : base(RHS.base), numElts(RHS.numElts) {} + : CroppedArray1DRef(RHS.base, RHS.offset, RHS.numElts) {} + + [[nodiscard]] inline Array1DRef<T> getAsArray1DRef() const { + return {begin(), size()}; + } - [[nodiscard]] const T* begin() const; + [[nodiscard]] CroppedArray1DRef<T> getCrop(int offset, int numElts) const; + [[nodiscard]] CroppedArray1DRef<T> getBlock(int size, int index) const; + + [[nodiscard]] T* begin() const; + [[nodiscard]] T* end() const; [[nodiscard]] int RAWSPEED_READONLY size() const; + [[nodiscard]] T* addressOf(int eltIdx) const; [[nodiscard]] T& operator()(int eltIdx) const; }; @@ -92,27 +90,78 @@ -> CroppedArray1DRef<T>; template <class T> -CroppedArray1DRef<T>::CroppedArray1DRef(Array1DRef<T> base_, const int offset_, - const int numElts_) - : base(base_), offset(offset_), numElts(numElts_) { +__attribute__((always_inline)) inline void +CroppedArray1DRef<T>::establishClassInvariants() const noexcept { + base.establishClassInvariants(); invariant(offset >= 0); invariant(numElts >= 0); + invariant(offset <= base.size()); + invariant(numElts <= base.size()); invariant(offset + numElts <= base.size()); } -template <class T> inline const T* CroppedArray1DRef<T>::begin() const { - return &operator()(/*eltIdx=*/0); +template <class T> +inline CroppedArray1DRef<T>::CroppedArray1DRef(Array1DRef<T> base_, + const int offset_, + const int numElts_) + : base(base_), offset(offset_), numElts(numElts_) { + establishClassInvariants(); +} + +template <class T> +[[nodiscard]] inline CroppedArray1DRef<T> +CroppedArray1DRef<T>::getCrop(int additionalOffset, int size) const { + establishClassInvariants(); + invariant(additionalOffset >= 0); + invariant(size >= 0); + invariant(additionalOffset <= numElts); + invariant(size <= numElts); + invariant(additionalOffset + size <= numElts); + return base.getCrop(offset + additionalOffset, size); +} + +template <class T> +[[nodiscard]] inline CroppedArray1DRef<T> +CroppedArray1DRef<T>::getBlock(int size, int index) const { + establishClassInvariants(); + invariant(index >= 0); + invariant(size >= 0); + invariant(index <= numElts); + invariant(size <= numElts); + const int additionalOffset = size * index; + invariant(additionalOffset <= numElts); + invariant(additionalOffset + size <= numElts); + return getCrop(additionalOffset, size); +} + +template <class T> inline T* CroppedArray1DRef<T>::begin() const { + establishClassInvariants(); + return addressOf(/*eltIdx=*/0); +} +template <class T> inline T* CroppedArray1DRef<T>::end() const { + establishClassInvariants(); + return addressOf(/*eltIdx=*/numElts); } template <class T> inline int CroppedArray1DRef<T>::size() const { + establishClassInvariants(); return numElts; } template <class T> +inline T* CroppedArray1DRef<T>::addressOf(const int eltIdx) const { + establishClassInvariants(); + invariant(eltIdx >= 0); + invariant(eltIdx <= numElts); + return base.addressOf(offset + eltIdx); +} + +template <class T> inline T& CroppedArray1DRef<T>::operator()(const int eltIdx) const { + establishClassInvariants(); invariant(eltIdx >= 0); invariant(eltIdx < numElts); - return base(offset + eltIdx); + return *addressOf(eltIdx); } } // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/CroppedArray2DRef.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/CroppedArray2DRef.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/CroppedArray2DRef.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/CroppedArray2DRef.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,45 +20,61 @@ #pragma once -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/CroppedArray1DRef.h" // for CroppedArray1DRef -#include "adt/Invariant.h" // for invariant -#include <type_traits> // for enable_if_t, remove_const_t, remove_cv_t +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/CroppedArray1DRef.h" +#include "adt/Invariant.h" +#include <type_traits> namespace rawspeed { -template <class T> class CroppedArray2DRef { +template <class T> class CroppedArray2DRef final { const Array2DRef<T> base; // We need to be able to convert to const version. friend CroppedArray2DRef<const T>; public: + void establishClassInvariants() const noexcept; + using value_type = T; using cvless_value_type = std::remove_cv_t<value_type>; - int offsetCols = 0; - int offsetRows = 0; - int croppedWidth = 0; - int croppedHeight = 0; - - CroppedArray2DRef() = default; + int offsetCols; + int offsetRows; + int croppedWidth; + int croppedHeight; + + CroppedArray2DRef() = delete; + + // Can not cast away constness. + template <typename T2> + requires(std::is_const_v<T2> && !std::is_const_v<T>) + CroppedArray2DRef(CroppedArray2DRef<T2> RHS) = delete; + + // Can not change type. + template <typename T2> + requires(!(std::is_const_v<T2> && !std::is_const_v<T>) && + !std::is_same_v<std::remove_const_t<T>, std::remove_const_t<T2>>) + CroppedArray2DRef(CroppedArray2DRef<T2> RHS) = delete; // Conversion from Array2DRef<T> to CroppedArray2DRef<T>. - CroppedArray2DRef(Array2DRef<T> RHS) // NOLINT google-explicit-constructor - : base(RHS), offsetCols(0), offsetRows(0), croppedWidth(base.width), - croppedHeight(base.height) {} + // NOLINTNEXTLINE(google-explicit-constructor) + inline CroppedArray2DRef(Array2DRef<T> RHS) + : CroppedArray2DRef(RHS, /*offsetCols=*/0, /*offsetRows=*/0, RHS.width(), + RHS.height()) {} CroppedArray2DRef(Array2DRef<T> base_, int offsetCols_, int offsetRows_, int croppedWidth_, int croppedHeight_); // Conversion from CroppedArray2DRef<T> to CroppedArray2DRef<const T>. - template <class T2, typename = std::enable_if_t< - std::is_same_v<std::remove_const_t<T>, T2>>> - CroppedArray2DRef( // NOLINT google-explicit-constructor + template <class T2> + requires(!std::is_const_v<T2> && std::is_const_v<T> && + std::is_same_v<std::remove_const_t<T>, std::remove_const_t<T2>>) + inline CroppedArray2DRef( // NOLINT(google-explicit-constructor) CroppedArray2DRef<T2> RHS) - : base(RHS.base), offsetCols(RHS.offsetCols), offsetRows(RHS.offsetRows), - croppedWidth(RHS.croppedWidth), croppedHeight(RHS.croppedHeight) {} + : CroppedArray2DRef(RHS.base, RHS.offsetCols, RHS.offsetRows, + RHS.croppedWidth, RHS.croppedHeight) {} CroppedArray1DRef<T> operator[](int row) const; @@ -73,22 +89,36 @@ -> CroppedArray2DRef<typename Array2DRef<T>::value_type>; template <class T> -CroppedArray2DRef<T>::CroppedArray2DRef(Array2DRef<T> base_, int offsetCols_, - int offsetRows_, int croppedWidth_, - int croppedHeight_) +__attribute__((always_inline)) inline void +CroppedArray2DRef<T>::establishClassInvariants() const noexcept { + base.establishClassInvariants(); + invariant(offsetCols >= 0); + invariant(offsetRows >= 0); + invariant(croppedWidth >= 0); + invariant(croppedHeight >= 0); + invariant(offsetCols <= base.width()); + invariant(offsetRows <= base.height()); + invariant(croppedWidth <= base.width()); + invariant(croppedHeight <= base.height()); + invariant(offsetCols + croppedWidth <= base.width()); + invariant(offsetRows + croppedHeight <= base.height()); + invariant((croppedWidth == 0) == (croppedHeight == 0)); +} + +template <class T> +inline CroppedArray2DRef<T>::CroppedArray2DRef(Array2DRef<T> base_, + int offsetCols_, int offsetRows_, + int croppedWidth_, + int croppedHeight_) : base(base_), offsetCols(offsetCols_), offsetRows(offsetRows_), croppedWidth(croppedWidth_), croppedHeight(croppedHeight_) { - invariant(offsetCols_ >= 0); - invariant(offsetRows_ >= 0); - invariant(croppedWidth_ >= 0); - invariant(croppedHeight_ >= 0); - invariant(offsetCols_ + croppedWidth_ <= base.width); - invariant(offsetRows_ + croppedHeight_ <= base.height); + establishClassInvariants(); } template <class T> inline CroppedArray1DRef<T> CroppedArray2DRef<T>::operator[](const int row) const { + establishClassInvariants(); invariant(row >= 0); invariant(row < croppedHeight); const Array1DRef<T> fullLine = base.operator[](offsetRows + row); @@ -97,6 +127,7 @@ template <class T> inline T& CroppedArray2DRef<T>::operator()(const int row, const int col) const { + establishClassInvariants(); invariant(col >= 0); invariant(col < croppedWidth); return (operator[](row))(col); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/DefaultInitAllocatorAdaptor.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,15 +20,13 @@ #pragma once -#include <cstddef> // for size_t -#include <memory> // for allocator, allocator_traits -#include <new> // for operator new -#include <type_traits> // for enable_if_t +#include <cstddef> +#include <memory> +#include <type_traits> namespace rawspeed { -template <typename T, typename ActualAllocator = std::allocator<T>, - typename = std::enable_if_t<std::is_pod_v<T>>> +template <typename T, typename ActualAllocator = std::allocator<T>> class DefaultInitAllocatorAdaptor { public: using allocator_traits = std::allocator_traits<ActualAllocator>; @@ -37,7 +35,7 @@ static_assert(std::is_same_v<T, value_type>); - template <class To> struct rebind { + template <class To> struct rebind final { using other = DefaultInitAllocatorAdaptor< To, typename allocator_traits::template rebind_alloc<To>>; }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/Invariant.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/Invariant.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/Invariant.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/Invariant.h 2024-02-14 22:08:05.000000000 +0000 @@ -22,7 +22,7 @@ #ifndef NDEBUG -#include <cassert> // for assert +#include <cassert> #define invariant(expr) assert(expr) diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/Mutex.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/Mutex.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/Mutex.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/Mutex.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,11 +20,11 @@ #pragma once -#include "rawspeedconfig.h" // for HAVE_OPENMP -#include "ThreadSafetyAnalysis.h" // for ACQUIRE, RELEASE, CAPABILITY, SCOP... +#include "rawspeedconfig.h" +#include "ThreadSafetyAnalysis.h" #ifdef HAVE_OPENMP -#include <omp.h> // for omp_destroy_lock, omp_init_lock +#include <omp.h> #endif namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/NORangesSet.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/NORangesSet.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/NORangesSet.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/NORangesSet.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,13 +20,12 @@ #pragma once -#include "adt/Range.h" // for operator<, RangesOverlap -#include <algorithm> // for partition_point -#include <cassert> // for assert -#include <cstddef> // for size_t -#include <iterator> // for prev -#include <set> // IWYU pragma: export -#include <utility> // for pair +#include "adt/Range.h" +#include <algorithm> +#include <cassert> +#include <cstddef> +#include <iterator> +#include <set> // IWYU pragma: export namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/NotARational.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/NotARational.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/NotARational.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/NotARational.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,11 +20,11 @@ #pragma once -#include <type_traits> // for enable_if_t +#include <type_traits> namespace rawspeed { -template <class T> struct NotARational { +template <class T> struct NotARational final { public: using value_type = T; @@ -34,8 +34,8 @@ NotARational() = default; NotARational(T num_, T den_) : num(num_), den(den_) {} - template <typename T2, - std::enable_if_t<std::is_floating_point_v<T2>, bool> = true> + template <typename T2> + requires std::is_floating_point_v<T2> explicit operator T2() const { return T2(num) / T2(den); } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/Optional.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/Optional.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/Optional.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/Optional.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,111 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2024 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "rawspeedconfig.h" +#include "adt/Invariant.h" +#include <optional> // IWYU pragma: export + +namespace rawspeed { + +template <typename T> class Optional final { + // NOLINTNEXTLINE(rawspeed-no-std-optional): we're in the wrapper. + std::optional<T> impl; + +public: + Optional() = default; + + template <typename U = T> + requires(!std::same_as<U, Optional<T>> && !std::same_as<U, Optional<T>&> && + !std::same_as<U, Optional<T> &&> && + !std::same_as<U, std::optional<T>>) + // NOLINTNEXTLINE(google-explicit-constructor) + Optional(U&& value) : impl(std::forward<U>(value)) {} + + template <typename U = T> + requires(std::same_as<U, T>) + Optional<T>& operator=(U&& value) { + impl = std::forward<U>(value); + return *this; + } + + template <typename... Args> T& emplace(Args&&... args) { + return impl.emplace(std::forward<Args>(args)...); + } + + const T* operator->() const { + invariant(has_value()); + return &impl.value(); + } + + T* operator->() { + invariant(has_value()); + return &impl.value(); + } + + const T& operator*() const& { + invariant(has_value()); + return impl.value(); + } + + T& operator*() & { + invariant(has_value()); + return impl.value(); + } + + T&& operator*() && { + invariant(has_value()); + return std::move(impl.value()); + } + + const T&& operator*() const&& { + invariant(has_value()); + return std::move(impl.value()); + } + + [[nodiscard]] bool has_value() const RAWSPEED_READNONE { + return impl.has_value(); + } + + explicit operator bool() const { return has_value(); } + + template <typename U> T value_or(U&& fallback) const& { + return impl.value_or(std::forward<U>(fallback)); + } + + void reset() { impl.reset(); } +}; + +template <typename T, typename U> +bool operator==(const Optional<T>& lhs, const U& rhs) { + return lhs && *lhs == rhs; +} + +template <typename T, typename U> +bool operator==(const Optional<T>& lhs, const Optional<U>& rhs) { + if (lhs.has_value() != rhs.has_value()) + return false; + if (!lhs.has_value()) + return true; + return *lhs == *rhs; +} + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/Point.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/Point.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/Point.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/Point.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,17 +21,18 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_READNONE -#include <algorithm> // for max, min -#include <cmath> // for abs -#include <cstdint> // for int32_t, uint64_t -#include <cstdlib> // for abs -#include <tuple> // for tie, operator==, tuple -#include <type_traits> // for make_signed_t +#include "rawspeedconfig.h" +#include "adt/Casts.h" +#include <algorithm> +#include <cmath> +#include <cstdint> +#include <cstdlib> +#include <tuple> +#include <type_traits> namespace rawspeed { -class iPoint2D { +class iPoint2D final { public: using value_type = int32_t; using area_type = uint64_t; @@ -58,9 +59,6 @@ constexpr bool operator==(const iPoint2D& rhs) const { return x == rhs.x && y == rhs.y; } - constexpr bool operator!=(const iPoint2D& rhs) const { - return !operator==(rhs); - } constexpr bool operator>(const iPoint2D& rhs) const { return x > rhs.x && y > rhs.y; @@ -76,7 +74,9 @@ return x <= rhs.x && y <= rhs.y; } - [[nodiscard]] bool hasPositiveArea() const { return operator>({0, 0}); } + [[nodiscard]] bool RAWSPEED_READONLY hasPositiveArea() const { + return *this > iPoint2D(0, 0); + } [[nodiscard]] area_type RAWSPEED_READONLY area() const { using signed_area = std::make_signed_t<area_type>; @@ -88,7 +88,7 @@ } [[nodiscard]] constexpr bool isThisInside(const iPoint2D& rhs) const { - return operator<=(rhs); + return *this <= rhs; } [[nodiscard]] constexpr iPoint2D getSmallest(const iPoint2D& rhs) const { @@ -103,7 +103,7 @@ }; /* Helper class for managing a rectangle in 2D space. */ -class iRectangle2D { +class iRectangle2D final { public: constexpr iRectangle2D() = default; constexpr iRectangle2D(const iPoint2D& pos_, const iPoint2D& dim_) @@ -146,7 +146,9 @@ getBottomRight() <= superRect.getBottomRight(); } - [[nodiscard]] unsigned int area() const { return dim.area(); } + [[nodiscard]] auto area() const { + return implicit_cast<unsigned int>(dim.area()); + } void offset(const iPoint2D& offset_) { pos += offset_; } @@ -220,8 +222,5 @@ inline bool operator==(const iRectangle2D& a, const iRectangle2D b) { return std::tie(a.pos, a.dim) == std::tie(b.pos, b.dim); } -inline bool operator!=(const iRectangle2D& a, const iRectangle2D b) { - return !(a == b); -} } // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/Range.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/Range.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/Range.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/Range.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,12 +20,12 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_READNONE -#include <algorithm> // for minmax -#include <cassert> // for assert -#include <iterator> // for begin, end -#include <type_traits> // for enable_if_t, make_unsigned_t -#include <utility> // for pair +#include "rawspeedconfig.h" +#include <algorithm> +#include <cassert> +#include <iterator> +#include <type_traits> +#include <utility> namespace rawspeed { @@ -36,7 +36,8 @@ public: constexpr Range() = default; - template <typename T2, typename = std::enable_if_t<std::is_unsigned_v<T2>>> + template <typename T2> + requires std::is_unsigned_v<T2> constexpr Range(T base_, T2 size_) : base(base_), size(size_) {} constexpr T RAWSPEED_READNONE begin() const { return base; } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/VariableLengthLoad.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/VariableLengthLoad.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/VariableLengthLoad.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/VariableLengthLoad.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,174 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2024 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "adt/Array1DRef.h" +#include "adt/Bit.h" +#include "adt/Casts.h" +#include "adt/CroppedArray1DRef.h" +#include "adt/Invariant.h" +#include "io/Endianness.h" +#include <algorithm> +#include <climits> +#include <cstdint> +#include <cstring> +#include <type_traits> + +namespace rawspeed { + +namespace impl { + +template <typename T> struct zext {}; + +template <> struct zext<uint8_t> { + using type = uint16_t; +}; +template <> struct zext<uint16_t> { + using type = uint32_t; +}; +template <> struct zext<uint32_t> { + using type = uint64_t; +}; + +template <typename T> +concept CanZExt = requires { typename zext<T>::type; }; + +template <typename T> + requires std::is_unsigned_v<T> && CanZExt<T> +inline T logicalRightShiftSafe(T val, int shAmt) { + invariant(shAmt >= 0); + shAmt = std::min(shAmt, implicit_cast<int>(bitwidth<T>())); + using WideT = typename zext<T>::type; + auto valWide = static_cast<WideT>(val); + valWide >>= shAmt; + return implicit_cast<T>(valWide); +} + +template <typename T> + requires std::is_unsigned_v<T> && (!CanZExt<T>) +inline T logicalRightShiftSafe(T val, int shAmt) { + invariant(shAmt >= 0); + if (shAmt >= implicit_cast<int>(bitwidth<T>())) + return 0; + val >>= shAmt; + return val; +} + +template <typename T> + requires std::is_unsigned_v<T> +inline void variableLengthLoad(Array1DRef<uint8_t> out, + Array1DRef<const uint8_t> in, int inPos) { + invariant(out.size() == sizeof(T)); + + int inPosFixup = 0; + if (int inPosEnd = inPos + out.size(); in.size() < inPosEnd) + inPosFixup = in.size() - inPosEnd; + invariant(inPosFixup <= 0); + + inPos += inPosFixup; + + in = in.getCrop(inPos, out.size()).getAsArray1DRef(); + invariant(in.size() == out.size()); + + auto tmp = getLE<T>(in.begin()); + + int posMismatchBits = CHAR_BIT * (-inPosFixup); + tmp = logicalRightShiftSafe(tmp, posMismatchBits); + + tmp = getLE<T>(&tmp); + memcpy(out.begin(), &tmp, sizeof(T)); +} + +} // namespace impl + +inline void variableLengthLoad(const Array1DRef<uint8_t> out, + Array1DRef<const uint8_t> in, int inPos) { + + invariant(out.size() != 0); + invariant(isPowerOfTwo(out.size())); + invariant(out.size() <= 8); + invariant(in.size() != 0); + invariant(out.size() <= in.size()); + invariant(inPos >= 0); + + switch (out.size()) { + case 1: + impl::variableLengthLoad<uint8_t>(out, in, inPos); + return; + case 2: + impl::variableLengthLoad<uint16_t>(out, in, inPos); + return; + case 4: + impl::variableLengthLoad<uint32_t>(out, in, inPos); + return; + case 8: + impl::variableLengthLoad<uint64_t>(out, in, inPos); + return; + default: + __builtin_unreachable(); + } +} + +inline void variableLengthLoadNaiveViaConditionalLoad( + Array1DRef<uint8_t> out, Array1DRef<const uint8_t> in, int inPos) { + invariant(out.size() != 0); + invariant(in.size() != 0); + invariant(out.size() <= in.size()); + invariant(inPos >= 0); + + std::fill(out.begin(), out.end(), 0); + + for (int outIndex = 0; outIndex != out.size(); ++outIndex) { + const int inIndex = inPos + outIndex; + if (inIndex >= in.size()) + return; + out(outIndex) = in(inIndex); // masked load + } +} + +inline void variableLengthLoadNaiveViaMemcpy(Array1DRef<uint8_t> out, + Array1DRef<const uint8_t> in, + int inPos) { + invariant(out.size() != 0); + invariant(in.size() != 0); + invariant(out.size() <= in.size()); + invariant(inPos >= 0); + + std::fill(out.begin(), out.end(), 0); + + inPos = std::min(inPos, in.size()); + + int inPosEnd = inPos + out.size(); + inPosEnd = std::min(inPosEnd, in.size()); + invariant(inPos <= inPosEnd); + + const int copySize = inPosEnd - inPos; + invariant(copySize >= 0); + invariant(copySize <= out.size()); + + out = out.getCrop(/*offset=*/0, copySize).getAsArray1DRef(); + in = in.getCrop(/*offset=*/inPos, copySize).getAsArray1DRef(); + invariant(in.size() == out.size()); + + memcpy(out.begin(), in.begin(), copySize); +} + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/iterator_range.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/iterator_range.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/adt/iterator_range.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/adt/iterator_range.h 2024-02-14 22:08:05.000000000 +0000 @@ -24,7 +24,7 @@ namespace rawspeed { -template <typename Iter> class iterator_range { +template <typename Iter> class iterator_range final { Iter begin_iterator; Iter end_iterator; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStream.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStream.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStream.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStream.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,139 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2009-2014 Klaus Post + Copyright (C) 2017 Axel Waggershauser + Copyright (C) 2017-2021 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "adt/Bit.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include <cstdint> + +namespace rawspeed { + +template <typename BIT_STREAM> struct BitStreamTraits; + +// simple 64-bit wide cache implementation that acts like a FiFo. +// There are two variants: +// * L->R: new bits are pushed in on the left and pulled out on the right +// * L<-R: new bits are pushed in on the right and pulled out on the left +// Each BitStream specialization uses one of the two. + +struct BitStreamCacheBase { + uint64_t cache = 0; // the actual bits stored in the cache + int fillLevel = 0; // bits left in cache + + static constexpr int Size = bitwidth<decltype(cache)>(); + + // how many bits could be requested to be filled + static constexpr int MaxGetBits = bitwidth<uint32_t>(); + + void establishClassInvariants() const noexcept; +}; + +__attribute__((always_inline)) inline void +BitStreamCacheBase::establishClassInvariants() const noexcept { + invariant(fillLevel >= 0); + invariant(fillLevel <= Size); +} + +struct BitStreamCacheLeftInRightOut final : BitStreamCacheBase { + inline void push(uint64_t bits, int count) noexcept { + establishClassInvariants(); + invariant(count >= 0); + invariant(count != 0); + invariant(count <= Size); + invariant(count + fillLevel <= Size); + cache |= bits << fillLevel; + fillLevel += count; + } + + [[nodiscard]] inline uint32_t peek(int count) const noexcept { + establishClassInvariants(); + invariant(count >= 0); + invariant(count <= MaxGetBits); + invariant(count != 0); + invariant(count <= Size); + invariant(count <= fillLevel); + return extractLowBits(static_cast<uint32_t>(cache), count); + } + + inline void skip(int count) noexcept { + establishClassInvariants(); + invariant(count >= 0); + // `count` *could* be larger than `MaxGetBits`. + invariant(count != 0); + invariant(count <= Size); + invariant(count <= fillLevel); + cache >>= count; + fillLevel -= count; + } +}; + +struct BitStreamCacheRightInLeftOut final : BitStreamCacheBase { + inline void push(uint64_t bits, int count) noexcept { + establishClassInvariants(); + invariant(count >= 0); + invariant(count != 0); + invariant(count <= Size); + invariant(count + fillLevel <= Size); + // If the maximal size of the cache is BitStreamCacheBase::Size, and we + // have fillLevel [high] bits set, how many empty [low] bits do we have? + const int vacantBits = BitStreamCacheBase::Size - fillLevel; + invariant(vacantBits >= 0); + invariant(vacantBits <= Size); + invariant(vacantBits != 0); + invariant(vacantBits >= count); + // If we just directly 'or' these low bits into the cache right now, + // how many unfilled bits of a gap will there be in the middle of a cache? + const int emptyBitsGap = vacantBits - count; + invariant(emptyBitsGap >= 0); + invariant(emptyBitsGap < Size); + // So just shift the new bits so that there is no gap in the middle. + cache |= bits << emptyBitsGap; + fillLevel += count; + } + + [[nodiscard]] inline auto peek(int count) const noexcept { + establishClassInvariants(); + invariant(count >= 0); + invariant(count <= Size); + invariant(count <= MaxGetBits); + invariant(count != 0); + invariant(count <= fillLevel); + return implicit_cast<uint32_t>( + extractHighBits(cache, count, + /*effectiveBitwidth=*/BitStreamCacheBase::Size)); + } + + inline void skip(int count) noexcept { + establishClassInvariants(); + invariant(count >= 0); + // `count` *could* be larger than `MaxGetBits`. + // `count` could be zero. + invariant(count <= Size); + invariant(count <= fillLevel); + fillLevel -= count; + cache <<= count; + } +}; + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamJPEG.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamJPEG.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamJPEG.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamJPEG.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,43 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2009-2014 Klaus Post + Copyright (C) 2017 Axel Waggershauser + Copyright (C) 2017-2021 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "bitstreams/BitStream.h" +#include "io/Endianness.h" +#include <cstdint> + +namespace rawspeed { + +class BitStreamJPEG; + +template <> struct BitStreamTraits<BitStreamJPEG> final { + using StreamFlow = BitStreamCacheRightInLeftOut; + + static constexpr bool FixedSizeChunks = false; // Stuffing byte... + + using ChunkType = uint32_t; + + static constexpr Endianness ChunkEndianness = Endianness::big; +}; + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamLSB.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamLSB.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamLSB.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamLSB.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,43 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2009-2014 Klaus Post + Copyright (C) 2017 Axel Waggershauser + Copyright (C) 2017-2021 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "bitstreams/BitStream.h" +#include "io/Endianness.h" +#include <cstdint> + +namespace rawspeed { + +class BitStreamLSB; + +template <> struct BitStreamTraits<BitStreamLSB> final { + using StreamFlow = BitStreamCacheLeftInRightOut; + + static constexpr bool FixedSizeChunks = true; + + using ChunkType = uint32_t; + + static constexpr Endianness ChunkEndianness = Endianness::little; +}; + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamMSB.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamMSB.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamMSB.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamMSB.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,43 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2009-2014 Klaus Post + Copyright (C) 2017 Axel Waggershauser + Copyright (C) 2017-2021 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "bitstreams/BitStream.h" +#include "io/Endianness.h" +#include <cstdint> + +namespace rawspeed { + +class BitStreamMSB; + +template <> struct BitStreamTraits<BitStreamMSB> final { + using StreamFlow = BitStreamCacheRightInLeftOut; + + static constexpr bool FixedSizeChunks = true; + + using ChunkType = uint32_t; + + static constexpr Endianness ChunkEndianness = Endianness::big; +}; + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamMSB16.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamMSB16.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamMSB16.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamMSB16.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,43 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2009-2014 Klaus Post + Copyright (C) 2017 Axel Waggershauser + Copyright (C) 2017-2021 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "bitstreams/BitStream.h" +#include "io/Endianness.h" +#include <cstdint> + +namespace rawspeed { + +class BitStreamMSB16; + +template <> struct BitStreamTraits<BitStreamMSB16> final { + using StreamFlow = BitStreamCacheRightInLeftOut; + + static constexpr bool FixedSizeChunks = true; + + using ChunkType = uint16_t; + + static constexpr Endianness ChunkEndianness = Endianness::little; +}; + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamMSB32.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamMSB32.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamMSB32.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamMSB32.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,43 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2009-2014 Klaus Post + Copyright (C) 2017 Axel Waggershauser + Copyright (C) 2017-2021 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "bitstreams/BitStream.h" +#include "io/Endianness.h" +#include <cstdint> + +namespace rawspeed { + +class BitStreamMSB32; + +template <> struct BitStreamTraits<BitStreamMSB32> final { + using StreamFlow = BitStreamCacheRightInLeftOut; + + static constexpr bool FixedSizeChunks = true; + + using ChunkType = uint32_t; + + static constexpr Endianness ChunkEndianness = Endianness::little; +}; + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamer.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamer.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamer.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamer.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,19 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2019 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamer.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamer.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamer.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamer.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,291 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2009-2014 Klaus Post + Copyright (C) 2017 Axel Waggershauser + Copyright (C) 2017-2021 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "rawspeedconfig.h" +#include "adt/Array1DRef.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "adt/VariableLengthLoad.h" +#include "bitstreams/BitStream.h" +#include "io/Endianness.h" +#include "io/IOException.h" +#include <array> +#include <climits> +#include <cstdint> + +namespace rawspeed { + +template <typename BIT_STREAM> struct BitStreamerTraits; + +template <typename Tag> struct BitStreamerReplenisherBase { + using size_type = int32_t; + + Array1DRef<const uint8_t> input; + int pos = 0; + + void establishClassInvariants() const noexcept; + + BitStreamerReplenisherBase() = delete; + + inline explicit BitStreamerReplenisherBase(Array1DRef<const uint8_t> input_) + : input(input_) { + if (input.size() < BitStreamerTraits<Tag>::MaxProcessBytes) + ThrowIOE("Bit stream size is smaller than MaxProcessBytes"); + } + + // A temporary intermediate buffer that may be used by fill() method either + // in debug build to enforce lack of out-of-bounds reads, or when we are + // nearing the end of the input buffer and can not just read + // BitStreamerTraits<Tag>::MaxProcessBytes from it, but have to read as much + // as we can and fill rest with zeros. + std::array<uint8_t, BitStreamerTraits<Tag>::MaxProcessBytes> tmpStorage = {}; + inline Array1DRef<uint8_t> tmp() noexcept RAWSPEED_READONLY { + return {tmpStorage.data(), implicit_cast<int>(tmpStorage.size())}; + } +}; + +template <typename Tag> +__attribute__((always_inline)) inline void +BitStreamerReplenisherBase<Tag>::establishClassInvariants() const noexcept { + input.establishClassInvariants(); + invariant(input.size() >= BitStreamerTraits<Tag>::MaxProcessBytes); + invariant(pos >= 0); + // `pos` *could* be out-of-bounds of `input`. +} + +template <typename Tag> +struct BitStreamerForwardSequentialReplenisher final + : public BitStreamerReplenisherBase<Tag> { + using Base = BitStreamerReplenisherBase<Tag>; + + using Base::BitStreamerReplenisherBase; + + BitStreamerForwardSequentialReplenisher() = delete; + + [[nodiscard]] inline typename Base::size_type getPos() const { + Base::establishClassInvariants(); + return Base::pos; + } + [[nodiscard]] inline typename Base::size_type getRemainingSize() const { + Base::establishClassInvariants(); + return Base::input.size() - getPos(); + } + inline void markNumBytesAsConsumed(typename Base::size_type numBytes) { + Base::establishClassInvariants(); + invariant(numBytes >= 0); + invariant(numBytes != 0); + Base::pos += numBytes; + } + + inline Array1DRef<const uint8_t> getInput() { + Base::establishClassInvariants(); + +#if !defined(DEBUG) + // Do we have BitStreamerTraits<Tag>::MaxProcessBytes or more bytes left in + // the input buffer? If so, then we can just read from said buffer. + if (getPos() + BitStreamerTraits<Tag>::MaxProcessBytes <= + Base::input.size()) { + return Base::input + .getCrop(getPos(), BitStreamerTraits<Tag>::MaxProcessBytes) + .getAsArray1DRef(); + } +#endif + + // We have to use intermediate buffer, either because the input is running + // out of bytes, or because we want to enforce bounds checking. + + // Note that in order to keep all fill-level invariants we must allow to + // over-read past-the-end a bit. + if (getPos() > + Base::input.size() + 2 * BitStreamerTraits<Tag>::MaxProcessBytes) + ThrowIOE("Buffer overflow read in BitStreamer"); + + variableLengthLoadNaiveViaMemcpy(Base::tmp(), Base::input, getPos()); + + return Base::tmp(); + } +}; + +template <typename Derived, + typename Replenisher = + BitStreamerForwardSequentialReplenisher<Derived>> +class BitStreamer { +public: + using size_type = int32_t; + using Traits = BitStreamerTraits<Derived>; + using StreamTraits = BitStreamTraits<typename Traits::Stream>; + + using Cache = typename StreamTraits::StreamFlow; + +protected: + Cache cache; + +private: + Replenisher replenisher; + + // this method can be re-implemented in the concrete BitStreamer template + // specializations. It will return the number of bytes processed. It needs + // to process up to BitStreamerTraits<Tag>::MaxProcessBytes bytes of input. + size_type fillCache(Array1DRef<const uint8_t> input) { + static_assert(BitStreamCacheBase::MaxGetBits >= 32, "check implementation"); + establishClassInvariants(); + invariant(input.size() == Traits::MaxProcessBytes); + + constexpr int StreamChunkBitwidth = + bitwidth<typename StreamTraits::ChunkType>(); + static_assert(CHAR_BIT * Traits::MaxProcessBytes >= StreamChunkBitwidth); + static_assert(CHAR_BIT * Traits::MaxProcessBytes % StreamChunkBitwidth == + 0); + constexpr int NumChunksNeeded = + (CHAR_BIT * Traits::MaxProcessBytes) / StreamChunkBitwidth; + static_assert(NumChunksNeeded >= 1); + + for (int i = 0; i != NumChunksNeeded; ++i) { + auto chunkInput = + input.getBlock(sizeof(typename StreamTraits::ChunkType), i); + auto chunk = getByteSwapped<typename StreamTraits::ChunkType>( + chunkInput.begin(), + StreamTraits::ChunkEndianness != getHostEndianness()); + cache.push(chunk, StreamChunkBitwidth); + } + return Traits::MaxProcessBytes; + } + +public: + void establishClassInvariants() const noexcept { + cache.establishClassInvariants(); + replenisher.establishClassInvariants(); + } + + BitStreamer() = delete; + + inline explicit BitStreamer(Array1DRef<const uint8_t> input) + : replenisher(input) { + establishClassInvariants(); + } + + inline void fill(int nbits = Cache::MaxGetBits) { + establishClassInvariants(); + invariant(nbits >= 0); + invariant(nbits != 0); + invariant(nbits <= Cache::MaxGetBits); + + if (cache.fillLevel >= nbits) + return; + + const auto input = replenisher.getInput(); + const auto numBytes = static_cast<Derived*>(this)->fillCache(input); + replenisher.markNumBytesAsConsumed(numBytes); + } + + // these methods might be specialized by implementations that support it + [[nodiscard]] inline size_type RAWSPEED_READONLY getInputPosition() const { + establishClassInvariants(); + return replenisher.getPos(); + } + + // these methods might be specialized by implementations that support it + [[nodiscard]] inline size_type getStreamPosition() const { + establishClassInvariants(); + return getInputPosition() - (cache.fillLevel >> 3); + } + + [[nodiscard]] inline size_type getRemainingSize() const { + establishClassInvariants(); + return replenisher.getRemainingSize(); + } + + [[nodiscard]] inline size_type RAWSPEED_READONLY getFillLevel() const { + establishClassInvariants(); + return cache.fillLevel; + } + + inline uint32_t RAWSPEED_READONLY peekBitsNoFill(int nbits) { + establishClassInvariants(); + invariant(nbits >= 0); + invariant(nbits != 0); + invariant(nbits <= Cache::MaxGetBits); + return cache.peek(nbits); + } + + inline void skipBitsNoFill(int nbits) { + establishClassInvariants(); + invariant(nbits >= 0); + // `nbits` could be zero. + invariant(nbits <= Cache::MaxGetBits); + cache.skip(nbits); + } + + inline uint32_t getBitsNoFill(int nbits) { + establishClassInvariants(); + invariant(nbits >= 0); + invariant(nbits != 0); + invariant(nbits <= Cache::MaxGetBits); + uint32_t ret = peekBitsNoFill(nbits); + skipBitsNoFill(nbits); + return ret; + } + + inline uint32_t peekBits(int nbits) { + establishClassInvariants(); + invariant(nbits >= 0); + invariant(nbits != 0); + invariant(nbits <= Cache::MaxGetBits); + fill(nbits); + return peekBitsNoFill(nbits); + } + + inline void skipBits(int nbits) { + establishClassInvariants(); + fill(nbits); + skipBitsNoFill(nbits); + } + + inline uint32_t getBits(int nbits) { + establishClassInvariants(); + invariant(nbits >= 0); + invariant(nbits != 0); + invariant(nbits <= Cache::MaxGetBits); + fill(nbits); + return getBitsNoFill(nbits); + } + + // This may be used to skip arbitrarily large number of *bytes*, + // not limited by the fill level. + inline void skipBytes(int nbytes) { + establishClassInvariants(); + int remainingBitsToSkip = 8 * nbytes; + for (; remainingBitsToSkip >= Cache::MaxGetBits; + remainingBitsToSkip -= Cache::MaxGetBits) { + fill(Cache::MaxGetBits); + skipBitsNoFill(Cache::MaxGetBits); + } + if (remainingBitsToSkip > 0) { + fill(remainingBitsToSkip); + skipBitsNoFill(remainingBitsToSkip); + } + } +}; + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamerJPEG.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,183 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2017 Axel Waggershauser + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "rawspeedconfig.h" +#include "adt/Array1DRef.h" +#include "adt/Bit.h" +#include "adt/Invariant.h" +#include "bitstreams/BitStream.h" +#include "bitstreams/BitStreamJPEG.h" +#include "bitstreams/BitStreamer.h" +#include "io/Endianness.h" +#include <algorithm> +#include <array> +#include <cstdint> +#include <numeric> + +namespace rawspeed { + +template <typename T> + requires std::signed_integral<T> +class PosOrUnknown final { + T val = -1; // Start with unknown position. + +public: + PosOrUnknown() = default; + + [[nodiscard]] bool has_value() const RAWSPEED_READONLY { return val >= 0; } + + template <typename U> + requires std::same_as<U, T> + PosOrUnknown& operator=(U newValue) { + invariant(!has_value()); + val = newValue; + invariant(has_value()); + return *this; + } + + template <typename U> + requires std::same_as<U, T> + [[nodiscard]] T value_or(U fallback) const { + if (has_value()) + return val; + return fallback; + } +}; + +class BitStreamerJPEG; + +template <> struct BitStreamerTraits<BitStreamerJPEG> final { + using Stream = BitStreamJPEG; + + static constexpr bool canUseWithPrefixCodeDecoder = true; + + // How many bytes can we read from the input per each fillCache(), at most? + // Normally, we want to read 4 bytes, but at worst each one of those can be + // an 0xFF byte, separated by 0x00 byte, signifying that 0xFF is a data byte. + static constexpr int MaxProcessBytes = 8; + static_assert(MaxProcessBytes == sizeof(uint64_t)); +}; + +// The JPEG data is ordered in MSB bit order, +// i.e. we push into the cache from the right and read it from the left +class BitStreamerJPEG final : public BitStreamer<BitStreamerJPEG> { + using Base = BitStreamer<BitStreamerJPEG>; + + PosOrUnknown<size_type> endOfStreamPos; + + friend void Base::fill(int nbits); // Allow it to call our `fillCache()`. + + size_type fillCache(Array1DRef<const uint8_t> input); + +public: + using Base::Base; + + [[nodiscard]] inline size_type getStreamPosition() const; +}; + +// NOTE: on average, probability of encountering an `0xFF` byte +// is ~0.51% (1 in ~197), only ~2.02% (1 in ~50) of 4-byte blocks will contain +// an `0xFF` byte, and out of *those* blocks, only ~0.77% (1 in ~131) +// will contain more than one `0xFF` byte. + +inline BitStreamerJPEG::size_type +BitStreamerJPEG::fillCache(Array1DRef<const uint8_t> input) { + static_assert(BitStreamCacheBase::MaxGetBits >= 32, "check implementation"); + establishClassInvariants(); + invariant(input.size() == Traits::MaxProcessBytes); + + constexpr int StreamChunkBitwidth = + bitwidth<typename StreamTraits::ChunkType>(); + + std::array<uint8_t, Traits::MaxProcessBytes> prefetch; + std::copy_n(input.getCrop(0, sizeof(uint64_t)).begin(), prefetch.size(), + prefetch.begin()); + + auto speculativeOptimisticCache = cache; + auto speculativeOptimisticChunk = + getByteSwapped<typename StreamTraits::ChunkType>( + prefetch.data(), + StreamTraits::ChunkEndianness != getHostEndianness()); + speculativeOptimisticCache.push(speculativeOptimisticChunk, + StreamChunkBitwidth); + + // short-cut path for the most common case (no FF marker in the next 4 bytes) + // this is slightly faster than the else-case alone. + if (std::accumulate( + &prefetch[0], &prefetch[4], bool(true), + [](bool b, uint8_t byte) { return b && (byte != 0xFF); })) { + cache = speculativeOptimisticCache; + return 4; + } + + size_type p = 0; + for (size_type i = 0; i < 4; ++i) { + // Pre-execute most common case, where next byte is 'normal'/non-FF + const int c0 = prefetch[p + 0]; + cache.push(c0, 8); + if (c0 != 0xFF) { + p += 1; + continue; // Got normal byte. + } + + // Found FF -> pre-execute case of FF/00, which represents an FF data byte + const int c1 = prefetch[p + 1]; + if (c1 == 0x00) { + // Got FF/00, where 0x00 is a stuffing byte (that should be ignored), + // so 0xFF is a normal byte. All good. + p += 2; + continue; + } + + // Found FF/xx with xx != 00. This is the end of stream marker. + endOfStreamPos = getInputPosition() + p; + + // That means we shouldn't have pushed last 8 bits (0xFF, from c0). + // We need to "unpush" them, and fill the vacant cache bits with zeros. + + // First, recover the cache fill level. + cache.fillLevel -= 8; + // Now, this code is incredibly underencapsulated, and the + // implementation details are leaking into here. Thus, we know that + // all the fillLevel bits in cache are all high bits. So to "unpush" + // the last 8 bits, and fill the vacant cache bits with zeros, we only + // need to keep the high fillLevel bits. So just create a mask with only + // high fillLevel bits set, and 'and' the cache with it. + // Caution, we know fillLevel won't be 64, but it may be 0, + // so pick the mask-creation idiom accordingly. + cache.cache &= ~((~0ULL) >> cache.fillLevel); + cache.fillLevel = 64; + + // No further reading from this buffer shall happen. Do signal that by + // claiming that we have consumed all the remaining bytes of the buffer. + return getRemainingSize(); + } + return p; +} + +inline BitStreamerJPEG::size_type BitStreamerJPEG::getStreamPosition() const { + // The current number of bytes we consumed. + // When at the end of the stream pos, it points to the JPEG marker FF + return endOfStreamPos.value_or(getInputPosition()); +} + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamerLSB.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamerLSB.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamerLSB.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamerLSB.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,49 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2017 Axel Waggershauser + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "bitstreams/BitStreamLSB.h" +#include "bitstreams/BitStreamer.h" +#include <cstdint> + +namespace rawspeed { + +class BitStreamerLSB; + +template <> struct BitStreamerTraits<BitStreamerLSB> final { + using Stream = BitStreamLSB; + + // How many bytes can we read from the input per each fillCache(), at most? + static constexpr int MaxProcessBytes = 4; + static_assert(MaxProcessBytes == sizeof(uint32_t)); +}; + +// The LSBPump is ordered in LSB bit order, +// i.e. we push into the cache from the left and read it from the right + +class BitStreamerLSB final : public BitStreamer<BitStreamerLSB> { + using Base = BitStreamer<BitStreamerLSB>; + +public: + using Base::Base; +}; + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamerMSB.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamerMSB.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamerMSB.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamerMSB.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,50 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2017 Axel Waggershauser + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "bitstreams/BitStreamMSB.h" +#include "bitstreams/BitStreamer.h" +#include <cstdint> + +namespace rawspeed { + +class BitStreamerMSB; + +template <> struct BitStreamerTraits<BitStreamerMSB> final { + using Stream = BitStreamMSB; + + static constexpr bool canUseWithPrefixCodeDecoder = true; + + // How many bytes can we read from the input per each fillCache(), at most? + static constexpr int MaxProcessBytes = 4; + static_assert(MaxProcessBytes == sizeof(uint32_t)); +}; + +// The MSB data is ordered in MSB bit order, +// i.e. we push into the cache from the right and read it from the left +class BitStreamerMSB final : public BitStreamer<BitStreamerMSB> { + using Base = BitStreamer<BitStreamerMSB>; + +public: + using Base::Base; +}; + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamerMSB16.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamerMSB16.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamerMSB16.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamerMSB16.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,49 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2017 Axel Waggershauser + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "bitstreams/BitStreamMSB16.h" +#include "bitstreams/BitStreamer.h" +#include <cstdint> + +namespace rawspeed { + +class BitStreamerMSB16; + +template <> struct BitStreamerTraits<BitStreamerMSB16> final { + using Stream = BitStreamMSB16; + + // How many bytes can we read from the input per each fillCache(), at most? + static constexpr int MaxProcessBytes = 4; + static_assert(MaxProcessBytes == 2 * sizeof(uint16_t)); +}; + +// The MSB data is ordered in MSB bit order, +// i.e. we push into the cache from the right and read it from the left + +class BitStreamerMSB16 final : public BitStreamer<BitStreamerMSB16> { + using Base = BitStreamer<BitStreamerMSB16>; + +public: + using Base::Base; +}; + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamerMSB32.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamerMSB32.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamerMSB32.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitStreamerMSB32.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,51 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2017 Axel Waggershauser + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "bitstreams/BitStreamMSB32.h" +#include "bitstreams/BitStreamer.h" +#include <cstdint> + +namespace rawspeed { + +class BitStreamerMSB32; + +template <> struct BitStreamerTraits<BitStreamerMSB32> final { + using Stream = BitStreamMSB32; + + static constexpr bool canUseWithPrefixCodeDecoder = true; + + // How many bytes can we read from the input per each fillCache(), at most? + static constexpr int MaxProcessBytes = 4; + static_assert(MaxProcessBytes == sizeof(uint32_t)); +}; + +// The MSB data is ordered in MSB bit order, +// i.e. we push into the cache from the right and read it from the left + +class BitStreamerMSB32 final : public BitStreamer<BitStreamerMSB32> { + using Base = BitStreamer<BitStreamerMSB32>; + +public: + using Base::Base; +}; + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumer.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumer.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumer.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumer.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,128 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2024 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "adt/Array1DRef.h" +#include "adt/Invariant.h" +#include "bitstreams/BitStream.h" +#include "io/Endianness.h" +#include <cstddef> +#include <cstdint> + +namespace rawspeed { + +template <typename BIT_STREAM> struct BitVacuumerTraits; + +template <typename Derived_, typename OutputIterator_> + requires std::output_iterator<OutputIterator_, uint8_t> +class BitVacuumer { +public: + using Traits = BitVacuumerTraits<Derived_>; + using StreamTraits = BitStreamTraits<typename Traits::Stream>; + + using Cache = typename StreamTraits::StreamFlow; + + using Derived = Derived_; + using cache_type = Cache; + using OutputIterator = OutputIterator_; + + Cache cache; + + OutputIterator output; + + bool flushed = false; + + using chunk_type = uint32_t; + static constexpr int chunk_bitwidth = 32; + + inline void drainImpl() { + invariant(cache.fillLevel >= chunk_bitwidth); + static_assert(chunk_bitwidth == 32); + + constexpr int StreamChunkBitwidth = + bitwidth<typename StreamTraits::ChunkType>(); + static_assert(chunk_bitwidth >= StreamChunkBitwidth); + static_assert(chunk_bitwidth % StreamChunkBitwidth == 0); + constexpr int NumChunksNeeded = chunk_bitwidth / StreamChunkBitwidth; + static_assert(NumChunksNeeded >= 1); + + for (int i = 0; i != NumChunksNeeded; ++i) { + auto chunk = implicit_cast<typename StreamTraits::ChunkType>( + cache.peek(StreamChunkBitwidth)); + chunk = getByteSwapped<typename StreamTraits::ChunkType>( + &chunk, StreamTraits::ChunkEndianness != getHostEndianness()); + cache.skip(StreamChunkBitwidth); + + const auto bytes = Array1DRef<const std::byte>(Array1DRef(&chunk, 1)); + for (const auto byte : bytes) + *output = static_cast<uint8_t>(byte); + } + } + + inline void drain() { + invariant(!flushed); + + if (cache.fillLevel < chunk_bitwidth) + return; // NOTE: does not mean the cache is empty! + + static_cast<Derived*>(this)->drainImpl(); + invariant(cache.fillLevel < chunk_bitwidth); + } + + inline void flush() { + drain(); + + if (cache.fillLevel == 0) { + flushed = true; + return; + } + + // Pad with zero bits, so we can drain the partial chunk. + put(/*bits=*/0, chunk_bitwidth - cache.fillLevel); + invariant(cache.fillLevel == chunk_bitwidth); + + drain(); + + invariant(cache.fillLevel == 0); + flushed = true; + } + + BitVacuumer() = delete; + + BitVacuumer(const BitVacuumer&) = delete; + BitVacuumer(BitVacuumer&&) = delete; + BitVacuumer& operator=(const BitVacuumer&) = delete; + BitVacuumer& operator=(BitVacuumer&&) = delete; + + inline explicit BitVacuumer(OutputIterator output_) : output(output_) {} + + inline ~BitVacuumer() { flush(); } + + inline void put(uint32_t bits, int count) { + invariant(count >= 0); + if (count == 0) + return; // No-op. + drain(); + cache.push(bits, count); + } +}; + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumerJPEG.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,79 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2024 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "adt/Array1DRef.h" +#include "adt/Invariant.h" +#include "bitstreams/BitStreamJPEG.h" +#include "bitstreams/BitVacuumer.h" +#include "io/Endianness.h" +#include <cstddef> +#include <cstdint> + +namespace rawspeed { + +template <typename OutputIterator> class BitVacuumerJPEG; + +template <typename OutputIterator> +struct BitVacuumerTraits<BitVacuumerJPEG<OutputIterator>> final { + using Stream = BitStreamJPEG; + + static constexpr bool canUseWithPrefixCodeEncoder = true; +}; + +template <typename OutputIterator> +class BitVacuumerJPEG final + : public BitVacuumer<BitVacuumerJPEG<OutputIterator>, OutputIterator> { + using Base = BitVacuumer<BitVacuumerJPEG<OutputIterator>, OutputIterator>; + using StreamTraits = typename Base::StreamTraits; + + friend void Base::drain(); // Allow it to actually call `drainImpl()`. + + inline void drainImpl() { + invariant(Base::cache.fillLevel >= Base::chunk_bitwidth); + invariant(Base::chunk_bitwidth == 32); + + constexpr int StreamChunkBitwidth = + bitwidth<typename StreamTraits::ChunkType>(); + static_assert(Base::chunk_bitwidth >= StreamChunkBitwidth); + static_assert(Base::chunk_bitwidth % StreamChunkBitwidth == 0); + constexpr int NumChunksNeeded = Base::chunk_bitwidth / StreamChunkBitwidth; + static_assert(NumChunksNeeded == 1); + + auto chunk = implicit_cast<typename StreamTraits::ChunkType>( + Base::cache.peek(StreamChunkBitwidth)); + chunk = getByteSwapped<typename StreamTraits::ChunkType>( + &chunk, StreamTraits::ChunkEndianness != getHostEndianness()); + Base::cache.skip(StreamChunkBitwidth); + + const auto bytes = Array1DRef<const std::byte>(Array1DRef(&chunk, 1)); + for (const auto byte : bytes) { + *Base::output = static_cast<uint8_t>(byte); + if (static_cast<uint8_t>(byte) == 0xFF) + *Base::output = uint8_t(0x00); // Stuffing byte + } + } + +public: + using Base::Base; +}; + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumerLSB.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumerLSB.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumerLSB.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumerLSB.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,44 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2024 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "bitstreams/BitStreamLSB.h" +#include "bitstreams/BitVacuumer.h" + +namespace rawspeed { + +template <typename OutputIterator> class BitVacuumerLSB; + +template <typename OutputIterator> +struct BitVacuumerTraits<BitVacuumerLSB<OutputIterator>> final { + using Stream = BitStreamLSB; +}; + +template <typename OutputIterator> +class BitVacuumerLSB final + : public BitVacuumer<BitVacuumerLSB<OutputIterator>, OutputIterator> { + using Base = BitVacuumer<BitVacuumerLSB<OutputIterator>, OutputIterator>; + +public: + using Base::Base; +}; + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumerMSB.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumerMSB.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumerMSB.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumerMSB.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,46 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2024 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "bitstreams/BitStreamMSB.h" +#include "bitstreams/BitVacuumer.h" + +namespace rawspeed { + +template <typename OutputIterator> class BitVacuumerMSB; + +template <typename OutputIterator> +struct BitVacuumerTraits<BitVacuumerMSB<OutputIterator>> final { + using Stream = BitStreamMSB; + + static constexpr bool canUseWithPrefixCodeEncoder = true; +}; + +template <typename OutputIterator> +class BitVacuumerMSB final + : public BitVacuumer<BitVacuumerMSB<OutputIterator>, OutputIterator> { + using Base = BitVacuumer<BitVacuumerMSB<OutputIterator>, OutputIterator>; + +public: + using Base::Base; +}; + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumerMSB16.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumerMSB16.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumerMSB16.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumerMSB16.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,44 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2024 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "bitstreams/BitStreamMSB16.h" +#include "bitstreams/BitVacuumer.h" + +namespace rawspeed { + +template <typename OutputIterator> class BitVacuumerMSB16; + +template <typename OutputIterator> +struct BitVacuumerTraits<BitVacuumerMSB16<OutputIterator>> final { + using Stream = BitStreamMSB16; +}; + +template <typename OutputIterator> +class BitVacuumerMSB16 final + : public BitVacuumer<BitVacuumerMSB16<OutputIterator>, OutputIterator> { + using Base = BitVacuumer<BitVacuumerMSB16<OutputIterator>, OutputIterator>; + +public: + using Base::Base; +}; + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumerMSB32.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumerMSB32.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumerMSB32.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/BitVacuumerMSB32.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,46 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2024 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "bitstreams/BitStreamMSB32.h" +#include "bitstreams/BitVacuumer.h" + +namespace rawspeed { + +template <typename OutputIterator> class BitVacuumerMSB32; + +template <typename OutputIterator> +struct BitVacuumerTraits<BitVacuumerMSB32<OutputIterator>> final { + using Stream = BitStreamMSB32; + + static constexpr bool canUseWithPrefixCodeEncoder = true; +}; + +template <typename OutputIterator> +class BitVacuumerMSB32 final + : public BitVacuumer<BitVacuumerMSB32<OutputIterator>, OutputIterator> { + using Base = BitVacuumer<BitVacuumerMSB32<OutputIterator>, OutputIterator>; + +public: + using Base::Base; +}; + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/bitstreams/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/bitstreams/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,34 @@ +rawspeed_add_library(rawspeed_bitstreams OBJECT) +set_target_properties(rawspeed_bitstreams PROPERTIES LINKER_LANGUAGE CXX) + +FILE(GLOB SOURCES + "BitStream.h" + "BitStreamJPEG.h" + "BitStreamLSB.h" + "BitStreamMSB.h" + "BitStreamMSB16.h" + "BitStreamMSB32.h" + "BitStreamer.cpp" + "BitStreamer.h" + "BitStreamerJPEG.h" + "BitStreamerLSB.h" + "BitStreamerMSB.h" + "BitStreamerMSB16.h" + "BitStreamerMSB32.h" + "BitVacuumer.h" + "BitVacuumerJPEG.h" + "BitVacuumerLSB.h" + "BitVacuumerMSB.h" + "BitVacuumerMSB16.h" + "BitVacuumerMSB32.h" +) + +target_sources(rawspeed_bitstreams PRIVATE + ${SOURCES} +) + +target_include_directories(rawspeed_bitstreams PUBLIC "${RAWSPEED_BINARY_DIR}/src") +target_include_directories(rawspeed_bitstreams SYSTEM PUBLIC "${RAWSPEED_SOURCE_DIR}/src/external") +target_include_directories(rawspeed_bitstreams PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/..") + +target_link_libraries(rawspeed PRIVATE rawspeed_bitstreams) diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/AbstractPrefixCode.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/AbstractPrefixCode.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/AbstractPrefixCode.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/AbstractPrefixCode.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,12 +20,14 @@ #pragma once -#include "adt/BitIterator.h" // for BitMSBIterator -#include "adt/iterator_range.h" // for iterator_range -#include "common/Common.h" // for bitwidth -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include <cstdint> // for uint16_t -#include <type_traits> // for is_integral +#include "rawspeedconfig.h" +#include "adt/BitIterator.h" +#include "adt/iterator_range.h" +#include "decoders/RawDecoderException.h" +#include <cassert> +#include <cstdint> +#include <type_traits> +#include <vector> namespace rawspeed { @@ -81,10 +83,10 @@ template <typename CodeTag> struct CodeTraitsValidator final { using Traits = CodeTraits<CodeTag>; - static_assert(std::is_integral<typename Traits::CodeTy>::value); - static_assert(std::is_unsigned<typename Traits::CodeTy>::value); - static_assert(std::is_same<typename Traits::CodeTy, uint16_t>::value || - std::is_same<typename Traits::CodeTy, uint32_t>::value); + static_assert(std::is_integral_v<typename Traits::CodeTy>); + static_assert(std::is_unsigned_v<typename Traits::CodeTy>); + static_assert(std::is_same_v<typename Traits::CodeTy, uint16_t> || + std::is_same_v<typename Traits::CodeTy, uint32_t>); static_assert(Traits::MaxCodeLenghtBits > 0 && Traits::MaxCodeLenghtBits <= @@ -98,10 +100,10 @@ static_assert(Traits::MaxNumCodeValues == 162 || Traits::MaxNumCodeValues == 264); - static_assert(std::is_integral<typename Traits::CodeValueTy>::value); - static_assert(std::is_unsigned<typename Traits::CodeValueTy>::value); - static_assert(std::is_same<typename Traits::CodeValueTy, uint8_t>::value || - std::is_same<typename Traits::CodeValueTy, uint32_t>::value); + static_assert(std::is_integral_v<typename Traits::CodeValueTy>); + static_assert(std::is_unsigned_v<typename Traits::CodeValueTy>); + static_assert(std::is_same_v<typename Traits::CodeValueTy, uint8_t> || + std::is_same_v<typename Traits::CodeValueTy, uint32_t>); static_assert(Traits::MaxCodeValueLenghtBits > 0 && Traits::MaxCodeValueLenghtBits <= @@ -115,7 +117,7 @@ static_assert(Traits::MaxCodeValue == 255 || Traits::MaxCodeValue == 524287); static_assert( - std::is_same<decltype(Traits::SupportsFullDecode), const bool>::value); + std::is_same_v<decltype(Traits::SupportsFullDecode), const bool>); static_assert(!Traits::SupportsFullDecode || (Traits::MaxDiffLengthBits > 0 && diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/AbstractPrefixCodeDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,80 +21,23 @@ #pragma once -#include "adt/Invariant.h" // for invariant -#include "codes/AbstractPrefixCode.h" // for AbstractPrefixCode -#include "codes/PrefixCode.h" // for PrefixCode -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include <algorithm> // for copy, equal, fill, max -#include <cassert> // for invariant -#include <cstddef> // for size_t -#include <cstdint> // for uint8_t, uint32_t, uint16_t -#include <functional> // for less, less_equal -#include <iterator> // for back_insert_iterator, ba... -#include <numeric> // for accumulate -#include <type_traits> // for is_integral -#include <vector> // for vector, vector<>::const_... +#include "rawspeedconfig.h" +#include "adt/Invariant.h" +#include "codes/AbstractPrefixCodeTranscoder.h" namespace rawspeed { -template <typename CodeTag> class AbstractPrefixCodeDecoder { +template <typename CodeTag> +class AbstractPrefixCodeDecoder : public AbstractPrefixCodeTranscoder<CodeTag> { public: - using Tag = CodeTag; - using Parent = AbstractPrefixCode<CodeTag>; - using CodeSymbol = typename AbstractPrefixCode<CodeTag>::CodeSymbol; - using Traits = typename AbstractPrefixCode<CodeTag>::Traits; - - PrefixCode<CodeTag> code; - - explicit AbstractPrefixCodeDecoder(PrefixCode<CodeTag> code_) - : code(std::move(code_)) {} - - void verifyCodeValuesAsDiffLengths() const { - for (const auto cValue : code.Base::codeValues) { - if (cValue <= Traits::MaxDiffLength) - continue; - ThrowRDE("Corrupt Huffman code: difference length %u longer than %u", - cValue, Traits::MaxDiffLength); - } - assert(maxCodePlusDiffLength() <= 32U); - } - -protected: - bool fullDecode = true; - bool fixDNGBug16 = false; - - [[nodiscard]] inline size_t RAWSPEED_READONLY maxCodeLength() const { - return code.nCodesPerLength.size() - 1; - } - - [[nodiscard]] inline size_t RAWSPEED_READONLY __attribute__((pure)) - maxCodePlusDiffLength() const { - return maxCodeLength() + *(std::max_element(code.Base::codeValues.cbegin(), - code.Base::codeValues.cend())); - } - - void setup(bool fullDecode_, bool fixDNGBug16_) { - invariant(!fullDecode_ || Traits::SupportsFullDecode); - - this->fullDecode = fullDecode_; - this->fixDNGBug16 = fixDNGBug16_; - - if (fullDecode) { - // If we are in a full-decoding mode, we will be interpreting code values - // as bit length of the following difference, which incurs hard limit - // of 16 (since we want to need to read at most 32 bits max for a symbol - // plus difference). Though we could enforce it per-code instead? - verifyCodeValuesAsDiffLengths(); - } - } + using Base = AbstractPrefixCodeTranscoder<CodeTag>; -public: - [[nodiscard]] bool isFullDecode() const { return fullDecode; } + using Tag = typename Base::Tag; + using Parent = typename Base::Parent; + using CodeSymbol = typename Base::CodeSymbol; + using Traits = typename Base::Traits; - bool operator==(const AbstractPrefixCodeDecoder& other) const { - return code.symbols == other.code.symbols && - code.Base::codeValues == other.codeValues; - } + using Base::Base; template <typename BIT_STREAM, bool FULL_DECODE> inline int processSymbol(BIT_STREAM& bs, CodeSymbol symbol, @@ -103,7 +46,7 @@ symbol.code_len <= Traits::MaxCodeLenghtBits); // If we were only looking for symbol's code value, then just return it. - if (!FULL_DECODE) + if constexpr (!FULL_DECODE) return codeValue; // Else, treat it as the length of following difference @@ -112,7 +55,7 @@ invariant(diff_l >= 0 && diff_l <= 16); if (diff_l == 16) { - if (fixDNGBug16) + if (Base::fixDNGBug16) bs.skipBitsNoFill(16); return -32768; } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/AbstractPrefixCodeEncoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/AbstractPrefixCodeEncoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/AbstractPrefixCodeEncoder.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/AbstractPrefixCodeEncoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,59 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2024 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "rawspeedconfig.h" +#include "adt/Invariant.h" +#include "codes/AbstractPrefixCodeTranscoder.h" + +namespace rawspeed { + +template <typename CodeTag> +class AbstractPrefixCodeEncoder : public AbstractPrefixCodeTranscoder<CodeTag> { +public: + using Base = AbstractPrefixCodeTranscoder<CodeTag>; + + using Tag = typename Base::Tag; + using Parent = typename Base::Parent; + using CodeSymbol = typename Base::CodeSymbol; + using Traits = typename Base::Traits; + + using Base::Base; + + void setup(bool fullDecode_, bool fixDNGBug16_) { + Base::setup(fullDecode_, fixDNGBug16_); + } + + inline static std::pair<uint32_t, uint8_t> + RAWSPEED_READNONE reduce(int32_t extendedDiff) { + if (extendedDiff >= 0) { + auto diff = static_cast<uint32_t>(extendedDiff); + return {diff, numActiveBits(diff)}; + } + --extendedDiff; + auto diff = static_cast<uint32_t>(extendedDiff); + int len = numSignificantBits(diff) - 1; + diff = extractLowBitsSafe(diff, len); + return {diff, len}; + } +}; + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/AbstractPrefixCodeTranscoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,96 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2017 Axel Waggershauser + Copyright (C) 2017-2024 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "rawspeedconfig.h" +#include "adt/Invariant.h" +#include "codes/AbstractPrefixCode.h" +#include "codes/PrefixCode.h" +#include "decoders/RawDecoderException.h" +#include <algorithm> +#include <cassert> +#include <cstddef> + +namespace rawspeed { + +template <typename CodeTag> class AbstractPrefixCodeTranscoder { +public: + using Tag = CodeTag; + using Parent = AbstractPrefixCode<CodeTag>; + using CodeSymbol = typename AbstractPrefixCode<CodeTag>::CodeSymbol; + using Traits = typename AbstractPrefixCode<CodeTag>::Traits; + + PrefixCode<CodeTag> code; + + explicit AbstractPrefixCodeTranscoder(PrefixCode<CodeTag> code_) + : code(std::move(code_)) {} + + void verifyCodeValuesAsDiffLengths() const { + for (const auto cValue : code.Base::codeValues) { + if (cValue <= Traits::MaxDiffLength) + continue; + ThrowRDE("Corrupt Huffman code: difference length %u longer than %u", + cValue, Traits::MaxDiffLength); + } + assert(maxCodePlusDiffLength() <= 32U); + } + +protected: + bool fullDecode = true; + bool fixDNGBug16 = false; + + [[nodiscard]] inline size_t RAWSPEED_READONLY maxCodeLength() const { + return code.nCodesPerLength.size() - 1; + } + + [[nodiscard]] inline size_t RAWSPEED_READONLY __attribute__((pure)) + maxCodePlusDiffLength() const { + return maxCodeLength() + *(std::max_element(code.Base::codeValues.cbegin(), + code.Base::codeValues.cend())); + } + + void setup(bool fullDecode_, bool fixDNGBug16_) { + invariant(!fullDecode_ || Traits::SupportsFullDecode); + + this->fullDecode = fullDecode_; + this->fixDNGBug16 = fixDNGBug16_; + + if (fullDecode) { + // If we are in a full-decoding mode, we will be interpreting code values + // as bit length of the following difference, which incurs hard limit + // of 16 (since we want to need to read at most 32 bits max for a symbol + // plus difference). Though we could enforce it per-code instead? + verifyCodeValuesAsDiffLengths(); + } + } + +public: + [[nodiscard]] bool isFullDecode() const { return fullDecode; } + [[nodiscard]] bool handleDNGBug16() const { return fixDNGBug16; } + + bool operator==(const AbstractPrefixCodeTranscoder& other) const { + return code.symbols == other.code.symbols && + code.Base::codeValues == other.codeValues; + } +}; + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/BinaryPrefixTree.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/BinaryPrefixTree.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/BinaryPrefixTree.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/BinaryPrefixTree.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,12 +20,13 @@ #pragma once -#include "adt/Invariant.h" // for invariant -#include "codes/AbstractPrefixCode.h" // for AbstractPrefixCode -#include <cassert> // for assert -#include <functional> // for reference_wrapper -#include <initializer_list> // IWYU pragma: keep -#include <memory> // for unique_ptr, make_unique +#include "adt/Invariant.h" +#include "codes/AbstractPrefixCode.h" +#include <array> +#include <cassert> +#include <functional> +#include <initializer_list> // IWYU pragma: keep +#include <memory> namespace rawspeed { @@ -58,7 +59,7 @@ }; struct Branch final : public Node { - explicit operator typename Node::Type() const override { + explicit operator typename Node::Type() const final { return Node::Type::Branch; } @@ -66,7 +67,7 @@ }; struct Leaf final : public Node { - explicit operator typename Node::Type() const override { + explicit operator typename Node::Type() const final { return Node::Type::Leaf; } @@ -94,7 +95,8 @@ std::reference_wrapper<std::unique_ptr<Node>> newBud = root; for (unsigned bit : symbol.getBitsMSB()) { ++partial.code_len; - partial.code = (partial.code << 1) | bit; + partial.code = + implicit_cast<typename Traits::CodeTy>((partial.code << 1) | bit); std::unique_ptr<Node>& bud = newBud; if (!bud) bud = std::make_unique<Branch>(); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -1,6 +1,11 @@ +rawspeed_add_library(rawspeed_codes OBJECT) +set_target_properties(rawspeed_codes PROPERTIES LINKER_LANGUAGE CXX) + FILE(GLOB SOURCES "AbstractPrefixCode.h" "AbstractPrefixCodeDecoder.h" + "AbstractPrefixCodeEncoder.h" + "AbstractPrefixCodeTranscoder.h" "BinaryPrefixTree.h" "DummyPrefixCodeDecoder.h" "HuffmanCode.h" @@ -10,8 +15,11 @@ "PrefixCodeLookupDecoder.h" "PrefixCodeTreeDecoder.h" "PrefixCodeVectorDecoder.h" + "PrefixCodeVectorEncoder.h" ) -target_sources(rawspeed PRIVATE +target_sources(rawspeed_codes PRIVATE ${SOURCES} ) + +target_link_libraries(rawspeed PRIVATE rawspeed_codes) diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/DummyPrefixCodeDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,15 +20,11 @@ #pragma once -#include "codes/AbstractPrefixCode.h" // for CodeTraits -#include "codes/HuffmanCode.h" // for HuffmanCode... -#include "codes/PrefixCode.h" // for PrefixCode... -#include "io/BitStream.h" // for BitStreamTraits -#include <cassert> // for invariant -#include <cstdint> // for uint32_t -#include <tuple> // for tie -#include <utility> // for pair -#include <vector> // for vector +#include "adt/Invariant.h" +#include "bitstreams/BitStreamer.h" +#include "codes/AbstractPrefixCode.h" +#include "codes/HuffmanCode.h" +#include "codes/PrefixCode.h" namespace rawspeed { class Buffer; @@ -57,8 +53,8 @@ template <typename BIT_STREAM> inline typename Traits::CodeValueTy decodeCodeValue(BIT_STREAM& bs) const { static_assert( - BitStreamTraits<typename BIT_STREAM::tag>::canUseWithPrefixCodeDecoder, - "This BitStream specialization is not marked as usable here"); + BitStreamerTraits<BIT_STREAM>::canUseWithPrefixCodeDecoder, + "This BitStreamer specialization is not marked as usable here"); invariant(!fullDecode); return decode<BIT_STREAM, false>(bs); } @@ -66,8 +62,8 @@ template <typename BIT_STREAM> inline int decodeDifference(BIT_STREAM& bs) const { static_assert( - BitStreamTraits<typename BIT_STREAM::tag>::canUseWithPrefixCodeDecoder, - "This BitStream specialization is not marked as usable here"); + BitStreamerTraits<BIT_STREAM>::canUseWithPrefixCodeDecoder, + "This BitStreamer specialization is not marked as usable here"); invariant(fullDecode); return decode<BIT_STREAM, true>(bs); } @@ -79,8 +75,8 @@ template <typename BIT_STREAM, bool FULL_DECODE> inline int decode(BIT_STREAM& bs) const { static_assert( - BitStreamTraits<typename BIT_STREAM::tag>::canUseWithPrefixCodeDecoder, - "This BitStream specialization is not marked as usable here"); + BitStreamerTraits<BIT_STREAM>::canUseWithPrefixCodeDecoder, + "This BitStreamer specialization is not marked as usable here"); invariant(FULL_DECODE == fullDecode); (void)bs; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/HuffmanCode.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/HuffmanCode.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/HuffmanCode.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/HuffmanCode.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,21 +21,20 @@ #pragma once -#include "adt/Array1DRef.h" // for Array1DRef -#include "adt/Invariant.h" // for invariant -#include "codes/AbstractPrefixCode.h" // for AbstractPrefixCode -#include "codes/PrefixCode.h" // for PrefixCode -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/Buffer.h" // for Buffer -#include <algorithm> // for copy, equal, fill, max -#include <cassert> // for invariant -#include <cstddef> // for size_t -#include <cstdint> // for uint8_t, uint32_t, uint16_t -#include <functional> // for less, less_equal -#include <iterator> // for back_insert_iterator, ba... -#include <numeric> // for accumulate -#include <type_traits> // for is_integral -#include <vector> // for vector, vector<>::const_... +#include "rawspeedconfig.h" +#include "adt/Array1DRef.h" +#include "adt/Invariant.h" +#include "codes/AbstractPrefixCode.h" +#include "codes/PrefixCode.h" +#include "decoders/RawDecoderException.h" +#include "io/Buffer.h" +#include <algorithm> +#include <cassert> +#include <cstddef> +#include <cstdint> +#include <iterator> +#include <numeric> +#include <vector> namespace rawspeed { @@ -151,7 +150,7 @@ void setCodeValues(Array1DRef<const typename Traits::CodeValueTy> data) { invariant(data.size() <= Traits::MaxNumCodeValues); - invariant((unsigned)data.size() == maxCodesCount()); + invariant(static_cast<unsigned>(data.size()) == maxCodesCount()); this->codeValues.clear(); this->codeValues.reserve(maxCodesCount()); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/PrefixCode.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/PrefixCode.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/PrefixCode.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/PrefixCode.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,22 +20,17 @@ #pragma once -#include "codes/AbstractPrefixCode.h" // for AbstractPrefixCode -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include <algorithm> // for copy, equal, fill, max -#include <cassert> // for invariant -#include <cstddef> // for size_t -#include <cstdint> // for uint8_t, uint32_t, uint16_t -#include <functional> // for less, less_equal -#include <iterator> // for back_insert_iterator, ba... -#include <numeric> // for accumulate -#include <type_traits> // for is_integral -#include <vector> // for vector, vector<>::const_... +#include "codes/AbstractPrefixCode.h" +#include "decoders/RawDecoderException.h" +#include <algorithm> +#include <cassert> +#include <functional> +#include <vector> namespace rawspeed { template <typename CodeTag> -class PrefixCode : public AbstractPrefixCode<CodeTag> { +class PrefixCode final : public AbstractPrefixCode<CodeTag> { public: using Base = AbstractPrefixCode<CodeTag>; using Traits = typename Base::Traits; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/PrefixCodeDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/PrefixCodeDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/PrefixCodeDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/PrefixCodeDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -22,11 +22,12 @@ // IWYU pragma: begin_exports -#include "codes/PrefixCodeLUTDecoder.h" // for PrefixCodeLUTDecoder -// #include "codes/PrefixCodeLookupDecoder.h" // for -// PrefixCodeLookupDecoder #include "codes/PrefixCodeTreeDecoder.h" // -// for PrefixCodeTreeDecoder #include "codes/PrefixCodeVectorDecoder.h" -// // for PrefixCodeVectorDecoder +#include "codes/AbstractPrefixCode.h" +#include "codes/PrefixCodeLUTDecoder.h" +#include "codes/PrefixCodeLookupDecoder.h" +// #include "codes/PrefixCodeLookupDecoder.h" +// #include "codes/PrefixCodeTreeDecoder.h" +// #include "codes/PrefixCodeVectorDecoder.h" // IWYU pragma: end_exports diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/PrefixCodeLUTDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,17 +21,17 @@ #pragma once -#include "codes/PrefixCodeLookupDecoder.h" // for PrefixCodeLookupDecoder -#include "common/Common.h" // for extractHighBits -#include "decoders/RawDecoderException.h" // for ThrowException, Thro... -#include "io/BitStream.h" // for BitStreamTraits -#include <cassert> // for invariant -#include <cstddef> // for size_t -#include <cstdint> // for int32_t, uint16_t -#include <memory> // for allocator_traits<>::... -#include <tuple> // for tie -#include <vector> // for vector -// IWYU pragma: no_include <algorithm> +#include "adt/Bit.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "bitstreams/BitStreamer.h" +#include "decoders/RawDecoderException.h" +#include <cassert> +#include <cstddef> +#include <cstdint> +#include <tuple> +#include <type_traits> +#include <vector> /* * The following code is inspired by the IJG JPEG library. @@ -68,20 +68,16 @@ namespace rawspeed { template <typename CodeTag, typename BackendPrefixCodeDecoder> -class PrefixCodeLUTDecoder final : public BackendPrefixCodeDecoder { +class PrefixCodeLUTDecoder : public BackendPrefixCodeDecoder { public: using Tag = CodeTag; using Base = BackendPrefixCodeDecoder; using Traits = typename Base::Traits; + // NOLINTNEXTLINE(cppcoreguidelines-rvalue-reference-param-not-moved) using Base::Base; private: - // The code can be compiled with two different decode lookup table layouts. - // The idea is that different CPU architectures may perform better with - // one or the other, depending on the relative performance of their arithmetic - // core vs their memory access. For an Intel Core i7, the big table is better. -#if 1 // lookup table containing 3 fields: payload:16|flag:8|len:8 // The payload may be the fully decoded diff or the length of the diff. // The len field contains the number of bits, this lookup consumed. @@ -94,15 +90,6 @@ using LUTEntryTy = int32_t; using LUTUnsignedEntryTy = std::make_unsigned_t<LUTEntryTy>; std::vector<LUTEntryTy> decodeLookup; -#else - // lookup table containing 2 fields: payload:4|len:4 - // the payload is the length of the diff, len is the length of the code - static constexpr unsigned LookupDepth = 15; - static constexpr unsigned PayloadShift = 4; - static constexpr unsigned FlagMask = 0; - static constexpr unsigned LenMask = 0x0f; - std::vector<uint8_t> decodeLookup; -#endif public: void setup(bool fullDecode_, bool fixDNGBug16_) { @@ -116,8 +103,10 @@ if (code_l > static_cast<int>(LookupDepth)) break; - uint16_t ll = Base::code.symbols[i].code << (LookupDepth - code_l); - uint16_t ul = ll | ((1 << (LookupDepth - code_l)) - 1); + auto ll = implicit_cast<uint16_t>(Base::code.symbols[i].code + << (LookupDepth - code_l)); + auto ul = + implicit_cast<uint16_t>(ll | ((1 << (LookupDepth - code_l)) - 1)); static_assert(Traits::MaxCodeValueLenghtBits <= bitwidth<LUTEntryTy>() - PayloadShift); LUTUnsignedEntryTy diff_l = Base::code.codeValues[i]; @@ -162,8 +151,8 @@ inline __attribute__((always_inline)) int decodeCodeValue(BIT_STREAM& bs) const { static_assert( - BitStreamTraits<typename BIT_STREAM::tag>::canUseWithPrefixCodeDecoder, - "This BitStream specialization is not marked as usable here"); + BitStreamerTraits<BIT_STREAM>::canUseWithPrefixCodeDecoder, + "This BitStreamer specialization is not marked as usable here"); invariant(!Base::fullDecode); return decode<BIT_STREAM, false>(bs); } @@ -172,8 +161,8 @@ inline __attribute__((always_inline)) int decodeDifference(BIT_STREAM& bs) const { static_assert( - BitStreamTraits<typename BIT_STREAM::tag>::canUseWithPrefixCodeDecoder, - "This BitStream specialization is not marked as usable here"); + BitStreamerTraits<BIT_STREAM>::canUseWithPrefixCodeDecoder, + "This BitStreamer specialization is not marked as usable here"); invariant(Base::fullDecode); return decode<BIT_STREAM, true>(bs); } @@ -185,14 +174,15 @@ template <typename BIT_STREAM, bool FULL_DECODE> inline __attribute__((always_inline)) int decode(BIT_STREAM& bs) const { static_assert( - BitStreamTraits<typename BIT_STREAM::tag>::canUseWithPrefixCodeDecoder, - "This BitStream specialization is not marked as usable here"); + BitStreamerTraits<BIT_STREAM>::canUseWithPrefixCodeDecoder, + "This BitStreamer specialization is not marked as usable here"); invariant(FULL_DECODE == Base::fullDecode); bs.fill(32); typename Base::CodeSymbol partial; partial.code_len = LookupDepth; - partial.code = bs.peekBitsNoFill(partial.code_len); + partial.code = implicit_cast<typename Traits::CodeTy>( + bs.peekBitsNoFill(partial.code_len)); assert(partial.code < decodeLookup.size()); auto lutEntry = static_cast<unsigned>(decodeLookup[partial.code]); @@ -211,8 +201,8 @@ if (lutEntry) { // If the flag is not set, but the entry is not empty, // the payload is the code value for this symbol. - partial.code_len = len; - codeValue = payload; + partial.code_len = implicit_cast<uint8_t>(len); + codeValue = implicit_cast<typename Traits::CodeValueTy>(payload); invariant(!FULL_DECODE || codeValue /*aka diff_l*/ > 0); } else { // No match in the lookup table, because either the code is longer diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/PrefixCodeLookupDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,17 +21,18 @@ #pragma once -#include "codes/AbstractPrefixCodeDecoder.h" // for AbstractPrefixCod... -#include "codes/HuffmanCode.h" // for HuffmanCode... -#include "decoders/RawDecoderException.h" // for ThrowRDE -#include "io/BitStream.h" // for BitStreamTraits -#include <cassert> // for invariant -#include <cstdint> // for uint32_t, uint16_t -#include <memory> // for allocator_traits... -#include <tuple> // for tie -#include <utility> // for pair -#include <vector> // for vector -// IWYU pragma: no_include <algorithm> +#include "adt/Invariant.h" +#include "bitstreams/BitStreamer.h" +#include "codes/AbstractPrefixCodeDecoder.h" +#include "codes/HuffmanCode.h" +#include "codes/PrefixCode.h" +#include "decoders/RawDecoderException.h" +#include <cassert> +#include <cstdint> +#include <limits> +#include <tuple> +#include <utility> +#include <vector> /* * The following code is inspired by the IJG JPEG library. @@ -76,10 +77,11 @@ // We only support true Huffman codes, not generic prefix codes. explicit PrefixCodeLookupDecoder(HuffmanCode<CodeTag>&& hc) - : Base(hc.operator rawspeed::PrefixCode<CodeTag>()) {} + : Base(std::move(hc).operator rawspeed::PrefixCode<CodeTag>()) {} PrefixCodeLookupDecoder(PrefixCode<CodeTag>) = delete; PrefixCodeLookupDecoder(const PrefixCode<CodeTag>&) = delete; + // NOLINTNEXTLINE(cppcoreguidelines-rvalue-reference-param-not-moved) PrefixCodeLookupDecoder(PrefixCode<CodeTag>&&) = delete; protected: @@ -103,8 +105,8 @@ codeLen <= Base::maxCodeLength(); codeLen++) { if (!Base::code.nCodesPerLength[codeLen]) continue; - codeOffsetOL[codeLen] = - Base::code.symbols[numCodesSoFar].code - numCodesSoFar; + codeOffsetOL[codeLen] = implicit_cast<typename Traits::CodeTy>( + Base::code.symbols[numCodesSoFar].code - numCodesSoFar); assert(codeOffsetOL[codeLen] != MaxCodeValue); numCodesSoFar += Base::code.nCodesPerLength[codeLen]; maxCodeOL[codeLen] = Base::code.symbols[numCodesSoFar - 1].code; @@ -114,8 +116,8 @@ template <typename BIT_STREAM> inline typename Traits::CodeValueTy decodeCodeValue(BIT_STREAM& bs) const { static_assert( - BitStreamTraits<typename BIT_STREAM::tag>::canUseWithPrefixCodeDecoder, - "This BitStream specialization is not marked as usable here"); + BitStreamerTraits<BIT_STREAM>::canUseWithPrefixCodeDecoder, + "This BitStreamer specialization is not marked as usable here"); invariant(!Base::fullDecode); return decode<BIT_STREAM, false>(bs); } @@ -123,8 +125,8 @@ template <typename BIT_STREAM> inline int decodeDifference(BIT_STREAM& bs) const { static_assert( - BitStreamTraits<typename BIT_STREAM::tag>::canUseWithPrefixCodeDecoder, - "This BitStream specialization is not marked as usable here"); + BitStreamerTraits<BIT_STREAM>::canUseWithPrefixCodeDecoder, + "This BitStreamer specialization is not marked as usable here"); invariant(Base::fullDecode); return decode<BIT_STREAM, true>(bs); } @@ -135,13 +137,14 @@ finishReadingPartialSymbol(BIT_STREAM& bs, typename Base::CodeSymbol partial) const { static_assert( - BitStreamTraits<typename BIT_STREAM::tag>::canUseWithPrefixCodeDecoder, - "This BitStream specialization is not marked as usable here"); + BitStreamerTraits<BIT_STREAM>::canUseWithPrefixCodeDecoder, + "This BitStreamer specialization is not marked as usable here"); while (partial.code_len < Base::maxCodeLength() && (MaxCodeValue == maxCodeOL[partial.code_len] || partial.code > maxCodeOL[partial.code_len])) { uint32_t temp = bs.getBitsNoFill(1); - partial.code = (partial.code << 1) | temp; + partial.code = + implicit_cast<typename Traits::CodeTy>((partial.code << 1) | temp); partial.code_len++; } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/PrefixCodeTreeDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,19 +21,15 @@ #pragma once -#include "codes/AbstractPrefixCodeDecoder.h" // for AbstractPrefixCodeDecoder... -#include "codes/BinaryPrefixTree.h" // for BinaryPrefixTree<>:... -#include "decoders/RawDecoderException.h" // for ThrowException, Thro... -#include "io/BitStream.h" // for BitStreamTraits -#include <algorithm> // for max, for_each, copy -#include <cassert> // for invariant -#include <initializer_list> // for initializer_list -#include <iterator> // for advance, next -#include <memory> // for unique_ptr, make_unique -#include <optional> // for optional -#include <tuple> // for tie -#include <utility> // for pair -#include <vector> // for vector, vector<>::co... +#include "adt/Invariant.h" +#include "adt/Optional.h" +#include "bitstreams/BitStreamer.h" +#include "codes/AbstractPrefixCodeDecoder.h" +#include "codes/BinaryPrefixTree.h" +#include "decoders/RawDecoderException.h" +#include <cassert> +#include <tuple> +#include <utility> namespace rawspeed { @@ -61,8 +57,7 @@ const auto* top = &(tree.root->getAsBranch()); auto walkBinaryTree = [&partial, &top](bool bit) - -> std::optional< - std::pair<typename Base::CodeSymbol, int /*codeValue*/>> { + -> Optional<std::pair<typename Base::CodeSymbol, int /*codeValue*/>> { partial.code <<= 1; partial.code |= bit; partial.code_len++; @@ -112,8 +107,8 @@ inline std::pair<typename Base::CodeSymbol, int /*codeValue*/> readSymbol(BIT_STREAM& bs) const { static_assert( - BitStreamTraits<typename BIT_STREAM::tag>::canUseWithPrefixCodeDecoder, - "This BitStream specialization is not marked as usable here"); + BitStreamerTraits<BIT_STREAM>::canUseWithPrefixCodeDecoder, + "This BitStreamer specialization is not marked as usable here"); // Start from completely unknown symbol. typename Base::CodeSymbol partial; @@ -136,8 +131,8 @@ template <typename BIT_STREAM> inline typename Traits::CodeValueTy decodeCodeValue(BIT_STREAM& bs) const { static_assert( - BitStreamTraits<typename BIT_STREAM::tag>::canUseWithPrefixCodeDecoder, - "This BitStream specialization is not marked as usable here"); + BitStreamerTraits<BIT_STREAM>::canUseWithPrefixCodeDecoder, + "This BitStreamer specialization is not marked as usable here"); invariant(!Base::fullDecode); return decode<BIT_STREAM, false>(bs); } @@ -145,8 +140,8 @@ template <typename BIT_STREAM> inline int decodeDifference(BIT_STREAM& bs) const { static_assert( - BitStreamTraits<typename BIT_STREAM::tag>::canUseWithPrefixCodeDecoder, - "This BitStream specialization is not marked as usable here"); + BitStreamerTraits<BIT_STREAM>::canUseWithPrefixCodeDecoder, + "This BitStreamer specialization is not marked as usable here"); invariant(Base::fullDecode); return decode<BIT_STREAM, true>(bs); } @@ -158,8 +153,8 @@ template <typename BIT_STREAM, bool FULL_DECODE> inline int decode(BIT_STREAM& bs) const { static_assert( - BitStreamTraits<typename BIT_STREAM::tag>::canUseWithPrefixCodeDecoder, - "This BitStream specialization is not marked as usable here"); + BitStreamerTraits<BIT_STREAM>::canUseWithPrefixCodeDecoder, + "This BitStreamer specialization is not marked as usable here"); invariant(FULL_DECODE == Base::fullDecode); bs.fill(32); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/PrefixCodeVectorDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,15 +21,15 @@ #pragma once -#include "codes/AbstractPrefixCodeDecoder.h" // for AbstractPrefixCodeDecoder... -#include "decoders/RawDecoderException.h" // for ThrowRDE -#include "io/BitStream.h" // for BitStreamTraits -#include <algorithm> // for max, fill_n -#include <cassert> // for invariant -#include <cstdint> // for uint64_t -#include <tuple> // for tie -#include <utility> // for pair -#include <vector> // for vector +#include "adt/Invariant.h" +#include "bitstreams/BitStreamer.h" +#include "codes/AbstractPrefixCodeDecoder.h" +#include "decoders/RawDecoderException.h" +#include <cassert> +#include <cstdint> +#include <tuple> +#include <utility> +#include <vector> namespace rawspeed { @@ -44,7 +44,7 @@ private: // Given this code len, which code id is the minimal? - std::vector<unsigned int> extrCodeIdForLen; // index is length of code + std::vector<uint32_t> extrCodeIdForLen; // index is length of code protected: template <typename BIT_STREAM> @@ -52,8 +52,8 @@ finishReadingPartialSymbol(BIT_STREAM& bs, typename Base::CodeSymbol partial) const { static_assert( - BitStreamTraits<typename BIT_STREAM::tag>::canUseWithPrefixCodeDecoder, - "This BitStream specialization is not marked as usable here"); + BitStreamerTraits<BIT_STREAM>::canUseWithPrefixCodeDecoder, + "This BitStreamer specialization is not marked as usable here"); // Read bits until either find the code or detect the incorrect code while (partial.code_len < Base::maxCodeLength()) { @@ -65,7 +65,7 @@ partial.code_len++; // Given global ordering and the code length, we know the code id range. - for (uint64_t codeId = extrCodeIdForLen[partial.code_len]; + for (auto codeId = extrCodeIdForLen[partial.code_len]; codeId < extrCodeIdForLen[1U + partial.code_len]; codeId++) { const typename Base::CodeSymbol& symbol = Base::code.symbols[codeId]; invariant(partial.code_len == symbol.code_len); @@ -106,8 +106,8 @@ template <typename BIT_STREAM> inline typename Traits::CodeValueTy decodeCodeValue(BIT_STREAM& bs) const { static_assert( - BitStreamTraits<typename BIT_STREAM::tag>::canUseWithPrefixCodeDecoder, - "This BitStream specialization is not marked as usable here"); + BitStreamerTraits<BIT_STREAM>::canUseWithPrefixCodeDecoder, + "This BitStreamer specialization is not marked as usable here"); invariant(!Base::fullDecode); return decode<BIT_STREAM, false>(bs); } @@ -115,8 +115,8 @@ template <typename BIT_STREAM> inline int decodeDifference(BIT_STREAM& bs) const { static_assert( - BitStreamTraits<typename BIT_STREAM::tag>::canUseWithPrefixCodeDecoder, - "This BitStream specialization is not marked as usable here"); + BitStreamerTraits<BIT_STREAM>::canUseWithPrefixCodeDecoder, + "This BitStreamer specialization is not marked as usable here"); invariant(Base::fullDecode); return decode<BIT_STREAM, true>(bs); } @@ -128,8 +128,8 @@ template <typename BIT_STREAM, bool FULL_DECODE> inline int decode(BIT_STREAM& bs) const { static_assert( - BitStreamTraits<typename BIT_STREAM::tag>::canUseWithPrefixCodeDecoder, - "This BitStream specialization is not marked as usable here"); + BitStreamerTraits<BIT_STREAM>::canUseWithPrefixCodeDecoder, + "This BitStreamer specialization is not marked as usable here"); invariant(FULL_DECODE == Base::fullDecode); bs.fill(32); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/codes/PrefixCodeVectorEncoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,106 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2024 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "adt/Invariant.h" +#include "bitstreams/BitVacuumer.h" +#include "codes/AbstractPrefixCodeEncoder.h" + +namespace rawspeed { + +template <typename CodeTag> +class PrefixCodeVectorEncoder : public AbstractPrefixCodeEncoder<CodeTag> { +public: + using Tag = CodeTag; + using Base = AbstractPrefixCodeEncoder<CodeTag>; + using Traits = typename Base::Traits; + + using Base::Base; + +private: + template <typename BIT_VACUUMER> + inline void encodeCodeValueImpl(BIT_VACUUMER& bv, int codeIndex) const { + static_assert( + BitVacuumerTraits<BIT_VACUUMER>::canUseWithPrefixCodeEncoder, + "This BitVacuumer specialization is not marked as usable here"); + invariant(codeIndex >= 0); + const auto numCodeSymbols = implicit_cast<int>(Base::code.symbols.size()); + invariant(codeIndex < numCodeSymbols); + const typename Base::CodeSymbol& symbol = Base::code.symbols[codeIndex]; + bv.put(symbol.code, symbol.code_len); + } + + [[nodiscard]] int + getCodeIndexOfCodeValue(const typename Traits::CodeValueTy value) const { + for (int codeIndex = 0; + codeIndex != implicit_cast<int>(Base::code.codeValues.size()); + ++codeIndex) { + const auto& codeValue = Base::code.codeValues[codeIndex]; + if (codeValue == value) + return codeIndex; + } + __builtin_unreachable(); + } + +public: + void setup(bool fullDecode_, bool fixDNGBug16_) { + AbstractPrefixCodeEncoder<CodeTag>::setup(fullDecode_, fixDNGBug16_); + } + + template <typename BIT_VACUUMER> + inline void encodeCodeValue(BIT_VACUUMER& bv, + typename Traits::CodeValueTy codeValue) const { + static_assert( + BitVacuumerTraits<BIT_VACUUMER>::canUseWithPrefixCodeEncoder, + "This BitVacuumer specialization is not marked as usable here"); + invariant(!Base::fullDecode); + int codeIndex = getCodeIndexOfCodeValue(codeValue); + encodeCodeValueImpl(bv, codeIndex); + } + + template <typename BIT_VACUUMER> + inline void encodeDifference(BIT_VACUUMER& bv, int value) const { + static_assert( + BitVacuumerTraits<BIT_VACUUMER>::canUseWithPrefixCodeEncoder, + "This BitVacuumer specialization is not marked as usable here"); + invariant(Base::fullDecode); + auto [diff, diffLen] = Base::reduce(value); + int codeIndex = getCodeIndexOfCodeValue(diffLen); + encodeCodeValueImpl(bv, codeIndex); + if (diffLen != 16 || Base::handleDNGBug16()) + bv.put(diff, diffLen); + } + + template <typename BIT_VACUUMER, bool FULL_DECODE> + inline void encode(BIT_VACUUMER& bv, int value) const { + static_assert( + BitVacuumerTraits<BIT_VACUUMER>::canUseWithPrefixCodeEncoder, + "This BitVacuumer specialization is not marked as usable here"); + invariant(FULL_DECODE == Base::fullDecode); + + if constexpr (!FULL_DECODE) + encodeCodeValue(bv, implicit_cast<typename Traits::CodeValueTy>(value)); + else + encodeDifference(bv, value); + } +}; + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/BayerPhase.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/BayerPhase.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/BayerPhase.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/BayerPhase.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,17 +20,17 @@ #pragma once -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Point.h" // for iPoint2D -#include "metadata/ColorFilterArray.h" // for CFAColor, CFAColor::GREEN -#include <algorithm> // for find_if, equal -#include <array> // for array, operator== -#include <cassert> // for assert -#include <cmath> // for abs -#include <cstdlib> // for abs -#include <iterator> // for distance -#include <optional> // for optional -#include <utility> // for swap +#include "adt/Array2DRef.h" +#include "adt/Optional.h" +#include "adt/Point.h" +#include "metadata/ColorFilterArray.h" +#include <algorithm> +#include <array> +#include <cassert> +#include <cmath> +#include <cstdlib> +#include <iterator> +#include <utility> namespace rawspeed { @@ -84,8 +84,8 @@ std::array<T, 4> tgtData; const Array2DRef<T> tgt(tgtData.data(), 2, 2); - for (int row = 0; row < tgt.height; ++row) { - for (int col = 0; col < tgt.width; ++col) { + for (int row = 0; row < tgt.height(); ++row) { + for (int col = 0; col < tgt.width(); ++col) { tgt(row, col) = src((coordOffset.y + row) % 2, (coordOffset.x + col) % 2); } } @@ -95,8 +95,8 @@ inline std::array<CFAColor, 4> getAsCFAColors(BayerPhase p) { const BayerPhase basePhase = BayerPhase::RGGB; - const std::array<CFAColor, 4> basePat = {CFAColor::RED, CFAColor::GREEN, - CFAColor::GREEN, CFAColor::BLUE}; + using enum CFAColor; + const std::array<CFAColor, 4> basePat = {RED, GREEN, GREEN, BLUE}; return applyPhaseShift(basePat, basePhase, /*tgtPhase=*/p); } @@ -114,32 +114,33 @@ auto is_green = [](const CFAColor& c) { return c == CFAColor::GREEN; }; const std::array<CFAColor, 4> tgtColors = getAsCFAColors(tgtPhase); - int green0Idx = + auto green0Idx = std::distance(tgtColors.begin(), std::find_if(tgtColors.begin(), tgtColors.end(), is_green)); - int green1Idx = std::distance(std::find_if(tgtColors.rbegin(), - tgtColors.rend(), is_green), - tgtColors.rend()) - - 1; + auto green1Idx = std::distance(std::find_if(tgtColors.rbegin(), + tgtColors.rend(), is_green), + tgtColors.rend()) - + 1; std::swap(tgtData[green0Idx], tgtData[green1Idx]); return tgtData; } -inline std::optional<BayerPhase> getAsBayerPhase(const ColorFilterArray& CFA) { +inline Optional<BayerPhase> getAsBayerPhase(const ColorFilterArray& CFA) { if (CFA.getSize() != iPoint2D(2, 2)) return {}; std::array<CFAColor, 4> patData; const Array2DRef<CFAColor> pat(patData.data(), 2, 2); - for (int row = 0; row < pat.height; ++row) { - for (int col = 0; col < pat.width; ++col) { + for (int row = 0; row < pat.height(); ++row) { + for (int col = 0; col < pat.width(); ++col) { pat(row, col) = CFA.getColorAt(col, row); } } - for (auto i = (int)BayerPhase::RGGB; i <= (int)BayerPhase::BGGR; ++i) { + for (auto i = static_cast<int>(BayerPhase::RGGB); + i <= static_cast<int>(BayerPhase::BGGR); ++i) { if (auto p = static_cast<BayerPhase>(i); getAsCFAColors(p) == patData) return p; } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -1,11 +1,14 @@ +rawspeed_add_library(rawspeed_common OBJECT) +set_target_properties(rawspeed_common PROPERTIES LINKER_LANGUAGE CXX) + FILE(GLOB SOURCES "BayerPhase.h" "ChecksumFile.cpp" "ChecksumFile.h" "Common.cpp" "Common.h" - "Cpuid.cpp" - "Cpuid.h" + "CpuFeatures.cpp" + "CpuFeatures.h" "DngOpcodes.cpp" "DngOpcodes.h" "ErrorLog.cpp" @@ -16,17 +19,29 @@ "RawImage.h" "RawImageDataFloat.cpp" "RawImageDataU16.cpp" + "RawspeedException.cpp" "RawspeedException.h" "SimpleLUT.h" "Spline.h" "TableLookUp.cpp" "TableLookUp.h" + "XTransPhase.h" ) -target_sources(rawspeed PRIVATE +target_sources(rawspeed_common PRIVATE ${SOURCES} ) +target_include_directories(rawspeed_common PUBLIC "${RAWSPEED_BINARY_DIR}/src") +target_include_directories(rawspeed_common SYSTEM PUBLIC "${RAWSPEED_SOURCE_DIR}/src/external") +target_include_directories(rawspeed_common PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/..") + +if(TARGET RawSpeed::OpenMP_CXX) + target_link_libraries(rawspeed_common PUBLIC RawSpeed::OpenMP_CXX) +endif() + +target_link_libraries(rawspeed PRIVATE rawspeed_common) + # Provide naive implementation of rawspeed_get_number_of_processor_cores(). if(RAWSPEED_COVERAGE_BUILD) diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/ChecksumFile.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/ChecksumFile.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/ChecksumFile.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/ChecksumFile.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,13 +19,12 @@ */ #include "common/ChecksumFile.h" -#include "common/Common.h" // for splitString -#include "common/RawspeedException.h" // for ThrowException, ThrowRSE -#include "io/FileReader.h" // for FileReader -#include <cassert> // for assert -#include <string> // for string, allocator, operator+ -#include <type_traits> // for add_const<>::type -#include <vector> // for vector +#include "common/Common.h" +#include "common/RawspeedException.h" +#include "io/FileReader.h" +#include <cassert> +#include <string> +#include <vector> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/ChecksumFile.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/ChecksumFile.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/ChecksumFile.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/ChecksumFile.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,12 +20,12 @@ #pragma once -#include <string> // for string, allocator -#include <vector> // for vector +#include <string> +#include <vector> namespace rawspeed { -struct ChecksumFileEntry { +struct ChecksumFileEntry final { std::string FullFileName; std::string RelFileName; }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/Common.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/Common.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/Common.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/Common.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,8 +19,8 @@ */ #include "common/Common.h" -#include <cstdarg> // for va_end, va_list, va_start -#include <cstdio> // for fprintf, stdout, vfprintf +#include <cstdarg> +#include <cstdio> // #define _DEBUG diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/Common.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/Common.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/Common.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/Common.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,19 +20,23 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_READNONE -#include "adt/Invariant.h" // for invariant -#include <algorithm> // for max, clamp -#include <array> // for array -#include <cassert> // for invariant -#include <climits> // for CHAR_BIT -#include <cstdint> // for uintptr_t, uint8_t, uint16_t -#include <cstring> // for size_t, memcpy -#include <initializer_list> // for initializer_list -#include <string> // for string, basic_string, allocator -#include <string_view> // for string_view -#include <type_traits> // for enable_if_t, enable_if, make_signed_t -#include <vector> // for vector +#include "rawspeedconfig.h" +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Bit.h" +#include "adt/Invariant.h" +#include <algorithm> +#include <array> +#include <cassert> +#include <cstddef> +#include <cstdint> +#include <cstring> +#include <initializer_list> +#include <string> +#include <string_view> +#include <tuple> +#include <type_traits> +#include <vector> extern "C" int rawspeed_get_number_of_processor_cores(); @@ -48,44 +52,50 @@ void writeLog(DEBUG_PRIO priority, const char* format, ...) __attribute__((format(printf, 2, 3))); -inline void copyPixels(uint8_t* dest, int dstPitch, const uint8_t* src, - int srcPitch, int rowSize, int height) { - if (height == 1 || (dstPitch == srcPitch && srcPitch == rowSize)) - memcpy(dest, src, static_cast<size_t>(rowSize) * height); - else { - for (int y = height; y > 0; --y) { - memcpy(dest, src, rowSize); - dest += dstPitch; - src += srcPitch; - } +inline void copyPixelsImpl(Array1DRef<std::byte> dest, + Array1DRef<const std::byte> src) { + invariant(src.size() == dest.size()); + std::copy(src.begin(), src.end(), dest.begin()); +} + +inline void copyPixelsImpl(Array2DRef<std::byte> dest, + Array2DRef<const std::byte> src) { + invariant(src.width() > 0); + invariant(src.height() > 0); + invariant(dest.width() > 0); + invariant(dest.height() > 0); + invariant(src.height() == dest.height()); + invariant(src.width() == dest.width()); + if (auto [destAsStrip, srcAsStrip] = + std::make_tuple(dest.getAsArray1DRef(), src.getAsArray1DRef()); + destAsStrip && srcAsStrip) { + copyPixelsImpl(*destAsStrip, *srcAsStrip); + return; } + for (int row = 0; row != src.height(); ++row) + copyPixelsImpl(dest[row], src[row]); } -template <typename T_TO, typename T_FROM, - typename = std::enable_if_t<sizeof(T_TO) == sizeof(T_FROM)>, - typename = std::enable_if_t<std::is_trivially_constructible_v<T_TO>>, - typename = std::enable_if_t<std::is_trivially_copyable_v<T_TO>>, - typename = std::enable_if_t<std::is_trivially_copyable_v<T_FROM>>> -inline T_TO bit_cast(const T_FROM& from) noexcept { - T_TO to; - memcpy(&to, &from, sizeof(T_TO)); - return to; -} - -// only works for positive values and zero -template <typename T> constexpr bool RAWSPEED_READNONE isPowerOfTwo(T val) { - return (val & (~val + 1)) == val; -} - -template <class T> -constexpr unsigned RAWSPEED_READNONE bitwidth([[maybe_unused]] T unused = {}) { - return CHAR_BIT * sizeof(T); +inline void copyPixels(std::byte* destPtr, int dstPitch, + const std::byte* srcPtr, int srcPitch, int rowSize, + int height) { + invariant(destPtr); + invariant(dstPitch > 0); + invariant(srcPtr); + invariant(srcPitch > 0); + invariant(rowSize > 0); + invariant(height > 0); + invariant(rowSize <= srcPitch); + invariant(rowSize <= dstPitch); + auto dest = Array2DRef(destPtr, rowSize, height, dstPitch); + auto src = Array2DRef(srcPtr, rowSize, height, srcPitch); + copyPixelsImpl(dest, src); } template <typename T> -constexpr size_t RAWSPEED_READNONE getMisalignmentOffset( - T value, size_t multiple, - typename std::enable_if<std::is_pointer_v<T>>::type* /*unused*/ = nullptr) { + requires std::is_pointer_v<T> +constexpr uint64_t RAWSPEED_READNONE getMisalignmentOffset(T value, + uint64_t multiple) { if (multiple == 0) return 0; static_assert(bitwidth<uintptr_t>() >= bitwidth<T>(), @@ -94,19 +104,18 @@ } template <typename T> -constexpr size_t RAWSPEED_READNONE getMisalignmentOffset( - T value, size_t multiple, - typename std::enable_if<std::is_integral_v<T>>::type* /*unused*/ = - nullptr) { + requires std::is_integral_v<T> +constexpr uint64_t RAWSPEED_READNONE getMisalignmentOffset(T value, + uint64_t multiple) { if (multiple == 0) return 0; return value % multiple; } template <typename T> -constexpr T RAWSPEED_READNONE roundToMultiple(T value, size_t multiple, +constexpr T RAWSPEED_READNONE roundToMultiple(T value, uint64_t multiple, bool roundDown) { - size_t offset = getMisalignmentOffset(value, multiple); + uint64_t offset = getMisalignmentOffset(value, multiple); if (offset == 0) return value; // Drop remainder. @@ -117,15 +126,18 @@ return roundedDown + multiple; } -constexpr size_t RAWSPEED_READNONE roundDown(size_t value, size_t multiple) { +constexpr uint64_t RAWSPEED_READNONE roundDown(uint64_t value, + uint64_t multiple) { return roundToMultiple(value, multiple, /*roundDown=*/true); } -constexpr size_t RAWSPEED_READNONE roundUp(size_t value, size_t multiple) { +constexpr uint64_t RAWSPEED_READNONE roundUp(uint64_t value, + uint64_t multiple) { return roundToMultiple(value, multiple, /*roundDown=*/false); } -constexpr size_t RAWSPEED_READNONE roundUpDivision(size_t value, size_t div) { +constexpr uint64_t RAWSPEED_READNONE roundUpDivision(uint64_t value, + uint64_t div) { return (value != 0) ? (1 + ((value - 1) / div)) : 0; } @@ -141,58 +153,6 @@ [value](const T2& t) { return t == value; }); } -// Clamps the given value to the range 0 .. 2^n-1, with n <= 16 -template <typename T> -constexpr uint16_t RAWSPEED_READNONE clampBits( - T value, unsigned int nBits, - typename std::enable_if_t<std::is_arithmetic_v<T>>* /*unused*/ = nullptr) { - // We expect to produce uint16_t. - invariant(nBits <= 16); - // Check that the clamp is not a no-op. Not of uint16_t to 16 bits e.g. - // (Well, not really, if we are called from clampBits<signed>, it's ok..). - invariant(bitwidth<T>() > nBits); // If nBits >= bitwidth, then shift is UB. - const T maxVal = (T(1) << nBits) - T(1); - return std::clamp(value, T(0), maxVal); -} - -template <typename T> -constexpr bool RAWSPEED_READNONE isIntN( - T value, unsigned int nBits, - typename std::enable_if_t<std::is_arithmetic_v<T>>* /*unused*/ = nullptr) { - invariant(nBits < bitwidth<T>() && "Check must not be tautological."); - using UnsignedT = std::make_unsigned_t<T>; - const auto highBits = static_cast<UnsignedT>(value) >> nBits; - return highBits == 0; -} - -template <class T, typename std::enable_if_t<std::is_unsigned_v<T>>* = nullptr> -constexpr int countl_zero(T x) noexcept { - if (x == T(0)) - return bitwidth<T>(); - return __builtin_clz(x); -} - -template <class T> -constexpr RAWSPEED_READNONE T extractHighBits( - T value, unsigned nBits, unsigned effectiveBitwidth = bitwidth<T>(), - typename std::enable_if_t<std::is_unsigned_v<T>>* /*unused*/ = nullptr) { - invariant(effectiveBitwidth <= bitwidth<T>()); - invariant(nBits <= effectiveBitwidth); - auto numLowBitsToSkip = effectiveBitwidth - nBits; - invariant(numLowBitsToSkip < bitwidth<T>()); - return value >> numLowBitsToSkip; -} - -template <typename T> -constexpr typename std::make_signed_t<T> RAWSPEED_READNONE signExtend( - T value, unsigned int nBits, - typename std::enable_if_t<std::is_unsigned_v<T>>* /*unused*/ = nullptr) { - invariant(nBits != 0 && "Only valid for non-zero bit count."); - const T SpareSignBits = bitwidth<T>() - nBits; - using SignedT = std::make_signed_t<T>; - return static_cast<SignedT>(value << SpareSignBits) >> SpareSignBits; -} - // Trim both leading and trailing spaces from the string inline std::string trimSpaces(std::string_view str) { // Find the first character position after excluding leading blank spaces @@ -212,22 +172,20 @@ inline std::vector<std::string> splitString(const std::string& input, char c = ' ') { std::vector<std::string> result; - const char* str = input.c_str(); - while (true) { - const char* begin = str; + std::string_view str = input; + while (!str.empty()) { + std::string_view::size_type pos = str.find_first_of(c); - while (*str != c && *str != '\0') - str++; + if (pos == std::string_view::npos) + pos = str.size(); - if (begin != str) - result.emplace_back(begin, str); + auto substr = str.substr(/*pos=*/0, /*n=*/pos); - const bool isNullTerminator = (*str == '\0'); - str++; + if (!substr.empty()) + result.emplace_back(substr); - if (isNullTerminator) - break; + str.remove_prefix(std::min(str.size(), 1 + substr.size())); } return result; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/CpuFeatures.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/CpuFeatures.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/CpuFeatures.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/CpuFeatures.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,49 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2017 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "common/CpuFeatures.h" + +#if defined(__i386__) || defined(__x86_64__) +#include <cpuid.h> +#endif + +namespace rawspeed { + +#if defined(__i386__) || defined(__x86_64__) + +bool Cpuid::SSE2() { + unsigned int eax; + unsigned int ebx; + unsigned int ecx; + unsigned int edx; + + if (!__get_cpuid(1, &eax, &ebx, &ecx, &edx)) + return false; + + return edx & bit_SSE2; +} + +#else + +bool Cpuid::SSE2() { return false; } + +#endif + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/CpuFeatures.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/CpuFeatures.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/CpuFeatures.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/CpuFeatures.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,32 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2017 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "rawspeedconfig.h" + +namespace rawspeed { + +class Cpuid final { +public: + static bool RAWSPEED_READNONE SSE2(); +}; + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/Cpuid.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/Cpuid.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/Cpuid.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/Cpuid.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ -/* - RawSpeed - RAW file decoder. - - Copyright (C) 2017 Roman Lebedev - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include "common/Cpuid.h" - -#if defined(__i386__) || defined(__x86_64__) -#include <cpuid.h> // for __get_cpuid, bit_SSE2 -#endif - -namespace rawspeed { - -#if defined(__i386__) || defined(__x86_64__) - -bool Cpuid::SSE2() { - unsigned int eax; - unsigned int ebx; - unsigned int ecx; - unsigned int edx; - - if (!__get_cpuid(1, &eax, &ebx, &ecx, &edx)) - return false; - - return edx & bit_SSE2; -} - -#else - -bool Cpuid::SSE2() { return false; } - -#endif - -} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/Cpuid.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/Cpuid.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/Cpuid.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/Cpuid.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ -/* - RawSpeed - RAW file decoder. - - Copyright (C) 2017 Roman Lebedev - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#pragma once - -#include "rawspeedconfig.h" // for RAWSPEED_READNONE - -namespace rawspeed { - -class Cpuid final { -public: - static bool RAWSPEED_READNONE SSE2(); -}; - -} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/DngOpcodes.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/DngOpcodes.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/DngOpcodes.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/DngOpcodes.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,28 +20,32 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "rawspeedconfig.h" // for RAWSPEED_READONLY +#include "rawspeedconfig.h" #include "common/DngOpcodes.h" -#include "adt/CroppedArray1DRef.h" // for CroppedArray1DRef -#include "adt/CroppedArray2DRef.h" // for CroppedArray2DRef -#include "adt/Mutex.h" // for MutexLocker -#include "adt/Point.h" // for iRectangle2D, iPoint2D -#include "common/Common.h" // for roundUpDivision, clampBits -#include "common/RawImage.h" // for RawImage, RawImageData -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::big -#include <algorithm> // for generate_n, clamp, fill_n -#include <cassert> // for assert -#include <cmath> // for isfinite, pow -#include <cstdlib> // for abs -#include <initializer_list> // for initializer_list -#include <iterator> // for back_insert_iterator, back... -#include <limits> // for numeric_limits -#include <optional> // for optional, nullopt -#include <tuple> // for tie, tuple -// IWYU pragma: no_include <ext/alloc_traits.h> -// IWYU pragma: no_include <type_traits> +#include "adt/Casts.h" +#include "adt/CroppedArray2DRef.h" +#include "adt/Mutex.h" +#include "adt/Optional.h" +#include "adt/Point.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <algorithm> +#include <cassert> +#include <cinttypes> +#include <cmath> +#include <cstdint> +#include <cstdlib> +#include <iterator> +#include <limits> +#include <memory> +#include <tuple> +#include <type_traits> +#include <utility> +#include <vector> #ifndef NDEBUG #include <exception> @@ -96,6 +100,8 @@ bool setup_was_called = false; #endif + virtual void anchor() const; + public: explicit DngOpcode(const iRectangle2D& integrated_subimg_) #ifndef NDEBUG @@ -126,18 +132,25 @@ assert(integrated_subimg == getImageCropAsRectangle(ri) && "Current image sub-crop does not match the expected one!"); - // NOP by default. child class shall override this if needed. + // NOP by default. child class shall final this if needed. } // Will be called for actual processing. virtual void apply(const RawImage& ri) = 0; }; +void DngOpcodes::DngOpcode::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + // **************************************************************************** class DngOpcodes::FixBadPixelsConstant final : public DngOpcodes::DngOpcode { uint32_t value; + void anchor() const override; + public: explicit FixBadPixelsConstant(const RawImage& ri, ByteStream& bs, const iRectangle2D& integrated_subimg_) @@ -170,16 +183,23 @@ } }; +void DngOpcodes::FixBadPixelsConstant::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + // **************************************************************************** class DngOpcodes::ROIOpcode : public DngOpcodes::DngOpcode { iRectangle2D roi; + void anchor() const override; + protected: explicit ROIOpcode(const RawImage& ri, ByteStream& bs, const iRectangle2D& integrated_subimg_) : DngOpcodes::DngOpcode(integrated_subimg_) { - const iRectangle2D subImage = iRectangle2D({0, 0}, integrated_subimg_.dim); + const iRectangle2D subImage = {{0, 0}, integrated_subimg_.dim}; uint32_t top = bs.getU32(); uint32_t left = bs.getU32(); @@ -208,9 +228,16 @@ } }; +void DngOpcodes::ROIOpcode::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + // **************************************************************************** class DngOpcodes::DummyROIOpcode final : public ROIOpcode { + void anchor() const override; + public: explicit DummyROIOpcode(const RawImage& ri, ByteStream& bs, const iRectangle2D& integrated_subimg_) @@ -226,11 +253,18 @@ } }; +void DngOpcodes::DummyROIOpcode::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + // **************************************************************************** class DngOpcodes::FixBadPixelsList final : public DngOpcodes::DngOpcode { std::vector<uint32_t> badPixels; + void anchor() const override; + public: explicit FixBadPixelsList(const RawImage& ri, ByteStream& bs, const iRectangle2D& integrated_subimg_) @@ -288,9 +322,16 @@ } }; +void DngOpcodes::FixBadPixelsList::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + // **************************************************************************** class DngOpcodes::TrimBounds final : public ROIOpcode { + void anchor() const override; + public: explicit TrimBounds(const RawImage& ri, ByteStream& bs, iRectangle2D& integrated_subimg_) @@ -302,6 +343,11 @@ void apply(const RawImage& ri) override { ri->subFrame(getRoi()); } }; +void DngOpcodes::TrimBounds::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + // **************************************************************************** class DngOpcodes::PixelOpcode : public ROIOpcode { @@ -310,6 +356,8 @@ uint32_t rowPitch; uint32_t colPitch; + void anchor() const override; + protected: explicit PixelOpcode(const RawImage& ri, ByteStream& bs, const iRectangle2D& integrated_subimg_) @@ -339,12 +387,14 @@ // traverses the current ROI and applies the operation OP to each pixel, // i.e. each pixel value v is replaced by op(x, y, v), where x/y are the // coordinates of the pixel value v. - template <typename T, typename OP> void applyOP(const RawImage& ri, OP op) { + template <typename T, typename OP> + void applyOP(const RawImage& ri, OP op) const { const CroppedArray2DRef<T> img = getDataAsCroppedArray2DRef<T>(ri); int cpp = ri->getCpp(); const iRectangle2D& ROI = getRoi(); - const iPoint2D numAffected(roundUpDivision(getRoi().dim.x, colPitch), - roundUpDivision(getRoi().dim.y, rowPitch)); + const iPoint2D numAffected( + implicit_cast<int>(roundUpDivision(getRoi().dim.x, colPitch)), + implicit_cast<int>(roundUpDivision(getRoi().dim.y, rowPitch))); for (int y = 0; y < numAffected.y; ++y) { for (int x = 0; x < numAffected.x; ++x) { for (auto p = 0U; p < planes; ++p) { @@ -357,33 +407,45 @@ } }; +void DngOpcodes::PixelOpcode::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + // **************************************************************************** class DngOpcodes::LookupOpcode : public PixelOpcode { + void anchor() const override; + protected: - vector<uint16_t> lookup; + vector<uint16_t> lookup = vector<uint16_t>(65536); - explicit LookupOpcode(const RawImage& ri, ByteStream& bs, - const iRectangle2D& integrated_subimg_) - : PixelOpcode(ri, bs, integrated_subimg_), lookup(65536) {} + using PixelOpcode::PixelOpcode; - void setup(const RawImage& ri) override { + void setup(const RawImage& ri) final { PixelOpcode::setup(ri); if (ri->getDataType() != RawImageType::UINT16) ThrowRDE("Only 16 bit images supported"); } - void apply(const RawImage& ri) override { + void apply(const RawImage& ri) final { applyOP<uint16_t>(ri, [this]([[maybe_unused]] uint32_t x, [[maybe_unused]] uint32_t y, uint16_t v) { return lookup[v]; }); } }; +void DngOpcodes::LookupOpcode::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + // **************************************************************************** class DngOpcodes::TableMap final : public LookupOpcode { + void anchor() const override; + public: explicit TableMap(const RawImage& ri, ByteStream& bs, const iRectangle2D& integrated_subimg_) @@ -401,9 +463,16 @@ } }; +void DngOpcodes::TableMap::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + // **************************************************************************** class DngOpcodes::PolynomialMap final : public LookupOpcode { + void anchor() const override; + public: explicit PolynomialMap(const RawImage& ri, ByteStream& bs, const iRectangle2D& integrated_subimg_) @@ -411,7 +480,7 @@ vector<double> polynomial; const auto polynomial_size = bs.getU32() + 1UL; - (void)bs.check(8UL * polynomial_size); + (void)bs.check(implicit_cast<Buffer::size_type>(8UL * polynomial_size)); if (polynomial_size > 9) ThrowRDE("A polynomial with more than 8 degrees not allowed"); @@ -424,23 +493,31 @@ for (auto i = 0UL; i < lookup.size(); ++i) { double val = polynomial[0]; for (auto j = 1UL; j < polynomial.size(); ++j) - val += polynomial[j] * pow(i / 65536.0, j); - lookup[i] = std::clamp<double>(val * 65535.5, - std::numeric_limits<uint16_t>::min(), - std::numeric_limits<uint16_t>::max()); + val += polynomial[j] * pow(implicit_cast<double>(i) / 65536.0, + implicit_cast<double>(j)); + lookup[i] = implicit_cast<uint16_t>(std::clamp<double>( + val * 65535.5, std::numeric_limits<uint16_t>::min(), + std::numeric_limits<uint16_t>::max())); } } }; +void DngOpcodes::PolynomialMap::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + // **************************************************************************** class DngOpcodes::DeltaRowOrColBase : public PixelOpcode { + void anchor() const final; + public: - struct SelectX { + struct SelectX final { static inline uint32_t select(uint32_t x, uint32_t /*y*/) { return x; } }; - struct SelectY { + struct SelectY final { static inline uint32_t select(uint32_t /*x*/, uint32_t y) { return y; } }; @@ -450,10 +527,15 @@ : PixelOpcode(ri, bs, integrated_subimg_) {} }; +void DngOpcodes::DeltaRowOrColBase::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + template <typename S> class DngOpcodes::DeltaRowOrCol : public DeltaRowOrColBase { public: - void setup(const RawImage& ri) override { + void setup(const RawImage& ri) final { PixelOpcode::setup(ri); // If we are working on a float image, no need to convert to int @@ -463,7 +545,8 @@ deltaI.reserve(deltaF.size()); for (const auto f : deltaF) { if (!valueIsOk(f)) - ThrowRDE("Got float %f which is unacceptable.", f); + ThrowRDE("Got float %f which is unacceptable.", + implicit_cast<double>(f)); deltaI.emplace_back(static_cast<int>(f2iScale * f)); } } @@ -489,7 +572,7 @@ S::select(getRoi().getWidth(), getRoi().getHeight()), S::select(getPitch().x, getPitch().y)); expectedSize != deltaF_count) { - ThrowRDE("Got unexpected number of elements (%lu), expected %u.", + ThrowRDE("Got unexpected number of elements (%" PRIu64 "), expected %u.", expectedSize, deltaF_count); } @@ -497,7 +580,7 @@ std::generate_n(std::back_inserter(deltaF), deltaF_count, [&bs]() { const auto F = bs.get<float>(); if (!std::isfinite(F)) - ThrowRDE("Got bad float %f.", F); + ThrowRDE("Got bad float %f.", implicit_cast<double>(F)); return F; }); } @@ -513,14 +596,16 @@ // by f2iScale before applying, we need to divide by f2iScale here. const double absLimit; - bool valueIsOk(float value) override { return std::abs(value) <= absLimit; } + bool valueIsOk(float value) override { + return implicit_cast<double>(std::abs(value)) <= absLimit; + } public: explicit OffsetPerRowOrCol(const RawImage& ri, ByteStream& bs, const iRectangle2D& integrated_subimg_) : DeltaRowOrCol<S>(ri, bs, integrated_subimg_, 65535.0F), absLimit(double(std::numeric_limits<uint16_t>::max()) / - this->f2iScale) {} + implicit_cast<double>(this->f2iScale)) {} void apply(const RawImage& ri) override { if (ri->getDataType() == RawImageType::UINT16) { @@ -545,12 +630,12 @@ // signed integer space, so the new value can not be larger than 2^31, // else we'd have signed integer overflow. Since the offset is multiplied // by f2iScale before applying, we need to divide by f2iScale here. - static constexpr const double minLimit = 0.0; + static constexpr const float minLimit = 0.0; static constexpr int rounding = 512; const double maxLimit; bool valueIsOk(float value) override { - return value >= minLimit && value <= maxLimit; + return value >= minLimit && implicit_cast<double>(value) <= maxLimit; } public: @@ -559,7 +644,7 @@ : DeltaRowOrCol<S>(ri, bs, integrated_subimg_, 1024.0F), maxLimit((double(std::numeric_limits<int>::max() - rounding) / double(std::numeric_limits<uint16_t>::max())) / - this->f2iScale) {} + implicit_cast<double>(this->f2iScale)) {} void apply(const RawImage& ri) override { if (ri->getDataType() == RawImageType::UINT16) { @@ -658,7 +743,7 @@ // ALL opcodes specified in DNG Specification MUST be listed here. // however, some of them might not be implemented. -std::optional<std::pair<const char*, DngOpcodes::constructor_t>> +Optional<std::pair<const char*, DngOpcodes::constructor_t>> DngOpcodes::Map(uint32_t code) { switch (code) { case 1U: diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/DngOpcodes.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/DngOpcodes.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/DngOpcodes.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/DngOpcodes.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,12 +21,11 @@ #pragma once -#include <cstdint> // for uint32_t -#include <map> // for map -#include <memory> // for unique_ptr -#include <optional> // for optional -#include <utility> // for pair -#include <vector> // for vector +#include "adt/Optional.h" +#include <cstdint> +#include <memory> +#include <utility> +#include <vector> namespace rawspeed { @@ -34,7 +33,7 @@ class RawImage; class iRectangle2D; -class DngOpcodes { +class DngOpcodes final { public: DngOpcodes(const RawImage& ri, ByteStream bs); ~DngOpcodes(); @@ -45,7 +44,6 @@ std::vector<std::unique_ptr<DngOpcode>> opcodes; -protected: class DeltaRowOrColBase; class DummyROIOpcode; class FixBadPixelsConstant; @@ -67,7 +65,7 @@ using constructor_t = std::unique_ptr<DngOpcode> (*)( const RawImage& ri, ByteStream& bs, iRectangle2D& integrated_subimg); - static std::optional<std::pair<const char*, DngOpcodes::constructor_t>> + static Optional<std::pair<const char*, DngOpcodes::constructor_t>> Map(uint32_t code); }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/ErrorLog.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/ErrorLog.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/ErrorLog.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/ErrorLog.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,8 +19,10 @@ */ #include "ErrorLog.h" -#include "adt/Mutex.h" // for MutexLocker -#include <utility> // for move +#include "adt/Mutex.h" +#include <string> +#include <utility> +#include <vector> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/ErrorLog.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/ErrorLog.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/ErrorLog.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/ErrorLog.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,10 +20,10 @@ #pragma once -#include "ThreadSafetyAnalysis.h" // for REQUIRES, GUARDED_BY -#include "adt/Mutex.h" // for Mutex -#include <string> // for string, basic_string -#include <vector> // for vector +#include "ThreadSafetyAnalysis.h" +#include "adt/Mutex.h" +#include <string> +#include <vector> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/FloatingPoint.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/FloatingPoint.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/FloatingPoint.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/FloatingPoint.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,7 +21,7 @@ #pragma once -#include <cstdint> // for uint32_t, int32_t, uint16_t +#include <cstdint> namespace rawspeed { @@ -59,8 +59,9 @@ // bits 9-0 - fraction (10 bit) // bits 14-10 - exponent (5 bit) // bit 15 - sign -struct Binary16 : public BinaryN</*StorageWidth=*/16, /*FractionWidth=*/10, - /*ExponentWidth=*/5> { +struct Binary16 final + : public BinaryN</*StorageWidth=*/16, /*FractionWidth=*/10, + /*ExponentWidth=*/5> { static_assert(Precision == 11); static_assert(ExponentMax == 15); static_assert(ExponentPos == 10); @@ -71,8 +72,9 @@ // bits 15-0 - fraction (16 bit) // bits 22-16 - exponent (7 bit) // bit 23 - sign -struct Binary24 : public BinaryN</*StorageWidth=*/24, /*FractionWidth=*/16, - /*ExponentWidth=*/7> { +struct Binary24 final + : public BinaryN</*StorageWidth=*/24, /*FractionWidth=*/16, + /*ExponentWidth=*/7> { static_assert(Precision == 17); static_assert(ExponentMax == 63); static_assert(ExponentPos == 16); @@ -83,8 +85,9 @@ // bits 22-0 - fraction (23 bit) // bits 30-23 - exponent (8 bit) // bit 31 - sign -struct Binary32 : public BinaryN</*StorageWidth=*/32, /*FractionWidth=*/23, - /*ExponentWidth=*/8> { +struct Binary32 final + : public BinaryN</*StorageWidth=*/32, /*FractionWidth=*/23, + /*ExponentWidth=*/8> { static_assert(Precision == 24); static_assert(ExponentMax == 127); static_assert(ExponentPos == 23); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/GetNumberOfProcessorCores.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/GetNumberOfProcessorCores.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/GetNumberOfProcessorCores.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/GetNumberOfProcessorCores.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,11 +18,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "rawspeedconfig.h" // for HAVE_OPENMP -#include "common/Common.h" // for rawspeed_get_number_of_processor_cores +#include "rawspeedconfig.h" +#include "common/Common.h" #ifdef HAVE_OPENMP -#include <omp.h> // for omp_get_max_threads +#include <omp.h> #endif // define this function, it is only declared in rawspeed: diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/RawImage.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/RawImage.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/RawImage.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/RawImage.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,44 +18,53 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "rawspeedconfig.h" // for RAWSPEED_READONLY, HAVE_OP... +#include "rawspeedconfig.h" #include "common/RawImage.h" -#include "adt/CroppedArray1DRef.h" // for CroppedArray1DRef -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/IOException.h" // for IOException -#include "parsers/TiffParserException.h" // for TiffParserException -#include <algorithm> // for min, fill, max, fill_n -#include <cassert> // for assert -#include <limits> // for numeric_limits -#include <memory> // for allocator, unique_ptr, mak... -#include <utility> // for move, swap +#include "adt/Casts.h" +#include "adt/CroppedArray2DRef.h" +#include "adt/Mutex.h" +#include "adt/Point.h" +#include "common/Common.h" +#include "common/TableLookUp.h" +#include "decoders/RawDecoderException.h" +#include "io/IOException.h" +#include "parsers/TiffParserException.h" +#include <algorithm> +#include <cassert> +#include <cstddef> +#include <cstdint> +#include <limits> +#include <memory> +#include <utility> +#include <vector> + +#ifdef DEBUG +#include "adt/Array2DRef.h" +#endif #if __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__) -#include "AddressSanitizer.h" // for ASan::... +#include "AddressSanitizer.h" #endif namespace rawspeed { -RawImageData::RawImageData() : cfa(iPoint2D(0, 0)) { - blackLevelSeparate.fill(-1); +void RawImageData::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. } RawImageData::RawImageData(RawImageType type, const iPoint2D& _dim, int _bpc, int _cpp) - : dim(_dim), isCFA(_cpp == 1), cfa(iPoint2D(0, 0)), dataType(type), - cpp(_cpp) { + : dim(_dim), isCFA(_cpp == 1), dataType(type), cpp(_cpp) { assert(_bpc > 0); if (cpp > std::numeric_limits<decltype(cpp)>::max() / _bpc) ThrowRDE("Components-per-pixel is too large."); bpp = _bpc * _cpp; - blackLevelSeparate.fill(-1); createData(); } -RawImageData::~RawImageData() { assert(dataRefCount == 0); } - void RawImageData::createData() { static constexpr const auto alignment = 16; @@ -69,7 +78,8 @@ ThrowRDE("Duplicate data allocation in createData."); // want each line to start at 16-byte aligned address - pitch = roundUp(static_cast<size_t>(dim.x) * bpp, alignment); + pitch = + implicit_cast<int>(roundUp(static_cast<size_t>(dim.x) * bpp, alignment)); assert(isAligned(pitch, alignment)); #if defined(DEBUG) || __has_feature(address_sanitizer) || \ @@ -93,12 +103,6 @@ #ifndef NDEBUG const Array2DRef<std::byte> img = getByteDataAsUncroppedArray2DRef(); - if (dim.y > 1) { - // padding is the size of the area after last pixel of line n - // and before the first pixel of line n+1 - assert(&img(0, img.width - 1) + 1 + padding == &img(1, 0)); - } - for (int j = 0; j < dim.y; j++) { // each line is indeed 16-byte aligned assert(isAligned(&img(j, 0), alignment)); @@ -116,7 +120,7 @@ const Array2DRef<std::byte> img = getByteDataAsUncroppedArray2DRef(); for (int j = 0; j < uncropped_dim.y; j++) { // and now poison the padding. - ASan::PoisonMemoryRegion(&img(j, img.width - 1) + 1, padding); + ASan::PoisonMemoryRegion(img[j].end(), padding); } } #else @@ -135,7 +139,7 @@ const Array2DRef<std::byte> img = getByteDataAsUncroppedArray2DRef(); for (int j = 0; j < uncropped_dim.y; j++) { // and now unpoison the padding. - ASan::UnPoisonMemoryRegion(&img(j, img.width - 1) + 1, padding); + ASan::UnPoisonMemoryRegion(img[j].end(), padding); } } #else @@ -169,6 +173,9 @@ } void RawImageData::subFrame(iRectangle2D crop) { + if (!crop.hasPositiveArea()) + ThrowRDE("No positive crop area"); + if (!crop.dim.isThisInside(dim - crop.pos)) { writeLog(DEBUG_PRIO::WARNING, "WARNING: RawImageData::subFrame - Attempted " "to create new subframe larger than original " @@ -194,36 +201,13 @@ void RawImageData::createBadPixelMap() { if (!isAllocated()) ThrowRDE("(internal) Bad pixel map cannot be allocated before image."); - mBadPixelMapPitch = roundUp(roundUpDivision(uncropped_dim.x, 8), 16); + mBadPixelMapPitch = + implicit_cast<uint32_t>(roundUp(roundUpDivision(uncropped_dim.x, 8), 16)); assert(mBadPixelMap.empty()); mBadPixelMap.resize(static_cast<size_t>(mBadPixelMapPitch) * uncropped_dim.y, uint8_t(0)); } -RawImage::RawImage(RawImageData* p) : p_(p) { - MutexLocker guard(&p_->mymutex); - ++p_->dataRefCount; -} - -RawImage::RawImage(const RawImage& p) : p_(p.p_) { - MutexLocker guard(&p_->mymutex); - ++p_->dataRefCount; -} - -RawImage::~RawImage() { - p_->mymutex.Lock(); - - --p_->dataRefCount; - - if (p_->dataRefCount == 0) { - p_->mymutex.Unlock(); - delete p_; - return; - } - - p_->mymutex.Unlock(); -} - void RawImageData::transferBadPixelsToMap() { MutexLocker guard(&mBadPixelMutex); if (mBadPixelPositions.empty()) @@ -250,16 +234,6 @@ /* Transfer if not already done */ transferBadPixelsToMap(); -#if 0 // For testing purposes - if (!mBadPixelMap) - createBadPixelMap(); - for (int y = 400; y < 700; y++){ - for (int x = 1200; x < 1700; x++) { - mBadPixelMap[mBadPixelMapPitch * y + (x >> 3)] |= 1 << (x&7); - } - } -#endif - /* Process bad pixels, if any */ if (!mBadPixelMap.empty()) startWorker(RawImageWorker::RawImageWorkerTask::FIX_BAD_PIXELS, false); @@ -310,7 +284,7 @@ #ifdef HAVE_OPENMP #pragma omp parallel for default(none) \ firstprivate(threads, y_per_thread, height, task) num_threads(threads) \ - schedule(static) + schedule(static) #endif for (int i = 0; i < threads; i++) { int y_offset = std::min(i * y_per_thread, height); @@ -323,18 +297,22 @@ void RawImageData::fixBadPixelsThread(int start_y, int end_y) { int gw = (uncropped_dim.x + 15) / 32; + const auto bad = + Array2DRef(mBadPixelMap.data(), mBadPixelMapPitch, uncropped_dim.y); + for (int y = start_y; y < end_y; y++) { - const auto* bad_map = - reinterpret_cast<const uint32_t*>(&mBadPixelMap[y * mBadPixelMapPitch]); for (int x = 0; x < gw; x++) { + const auto block = bad[y].getBlock(32 / 8, x); + // Test if there is a bad pixel within these 32 pixels - if (bad_map[x] == 0) + if (std::all_of(block.begin(), block.end(), + [](const auto& val) { return val == 0; })) continue; - const auto* bad = reinterpret_cast<const uint8_t*>(&bad_map[x]); + // Go through each pixel for (int i = 0; i < 4; i++) { for (int j = 0; j < 8; j++) { - if (1 != ((bad[i] >> j) & 1)) + if (1 != ((block(i) >> j) & 1)) continue; fixBadPixel(x * 32 + i * 8 + j, y, 0); @@ -358,25 +336,6 @@ } } -RawImage& RawImage::operator=(RawImage&& rhs) noexcept { - if (this == &rhs) - return *this; - - std::swap(p_, rhs.p_); - - return *this; -} - -RawImage& RawImage::operator=(const RawImage& rhs) noexcept { - if (this == &rhs) - return *this; - - RawImage tmp(rhs); - *this = std::move(tmp); - - return *this; -} - RawImageWorker::RawImageWorker(RawImageData* _img, RawImageWorkerTask _task, int _start_y, int _end_y) noexcept : data(_img), task(_task), start_y(_start_y), end_y(_end_y) { @@ -386,13 +345,14 @@ void RawImageWorker::performTask() noexcept { try { switch (task) { - case RawImageWorkerTask::SCALE_VALUES: + using enum RawImageWorkerTask; + case SCALE_VALUES: data->scaleValues(start_y, end_y); break; - case RawImageWorkerTask::FIX_BAD_PIXELS: + case FIX_BAD_PIXELS: data->fixBadPixelsThread(start_y, end_y); break; - case RawImageWorkerTask::APPLY_LOOKUP: + case APPLY_LOOKUP: data->doLookup(start_y, end_y); break; default: @@ -404,6 +364,9 @@ data->setError(e.what()); } catch (const IOException& e) { data->setError(e.what()); + } catch (...) { + // We should not get any other exception type here. + __builtin_unreachable(); } } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/RawImage.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/RawImage.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/RawImage.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/RawImage.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,28 +20,31 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_READONLY, WITH... -#include "ThreadSafetyAnalysis.h" // for GUARDED_BY, REQUIRES -#include "adt/AlignedAllocator.h" // for AlignedAllocator -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/CroppedArray2DRef.h" // for CroppedArray2DRef -#include "adt/DefaultInitAllocatorAdaptor.h" // for DefaultInitAllocatorAda... -#include "adt/Mutex.h" // for Mutex -#include "adt/NotARational.h" // for NotARational -#include "adt/Point.h" // for iPoint2D, iRectangle2D ... -#include "common/Common.h" // for writeLog, DEBUG_PRIO -#include "common/ErrorLog.h" // for ErrorLog -#include "common/TableLookUp.h" // for TableLookUp -#include "metadata/BlackArea.h" // for BlackArea -#include "metadata/ColorFilterArray.h" // for ColorFilterArray -#include <array> // for array -#include <cassert> // for assert -#include <cmath> // for NAN -#include <cstddef> // for byte -#include <cstdint> // for uint32_t, uint16_t, uin... -#include <memory> // for unique_ptr, operator== -#include <string> // for string -#include <vector> // for vector +#include "rawspeedconfig.h" +#include "ThreadSafetyAnalysis.h" +#include "adt/AlignedAllocator.h" +#include "adt/Array2DRef.h" +#include "adt/Casts.h" +#include "adt/CroppedArray2DRef.h" +#include "adt/DefaultInitAllocatorAdaptor.h" +#include "adt/Mutex.h" +#include "adt/NotARational.h" +#include "adt/Optional.h" +#include "adt/Point.h" +#include "common/Common.h" +#include "common/ErrorLog.h" +#include "common/TableLookUp.h" +#include "metadata/BlackArea.h" +#include "metadata/ColorFilterArray.h" +#include <array> +#include <cassert> +#include <cmath> +#include <cstddef> +#include <cstdint> +#include <memory> +#include <string> +#include <utility> +#include <vector> namespace rawspeed { @@ -50,7 +53,7 @@ enum class RawImageType { UINT16, F32 }; -class RawImageWorker { +class RawImageWorker final { public: enum class RawImageWorkerTask { SCALE_VALUES = 1, @@ -72,7 +75,7 @@ int end_y) noexcept; }; -class ImageMetaData { +class ImageMetaData final { public: // Aspect ratio of the pixels, usually 1 but some cameras need scaling // <1 means the image needs to be stretched vertically, (0.5 means 2x) @@ -106,10 +109,12 @@ }; class RawImageData : public ErrorLog { + virtual void anchor() const; + friend class RawImageWorker; public: - virtual ~RawImageData(); + virtual ~RawImageData() = default; [[nodiscard]] uint32_t RAWSPEED_READONLY getCpp() const { return cpp; } [[nodiscard]] uint32_t RAWSPEED_READONLY getBpp() const { return bpp; } void setCpp(uint32_t val); @@ -136,7 +141,7 @@ [[nodiscard]] iPoint2D RAWSPEED_READONLY getCropOffset() const; virtual void scaleBlackWhite() = 0; virtual void calculateBlackAreas() = 0; - virtual void setWithLookUp(uint16_t value, uint8_t* dst, + virtual void setWithLookUp(uint16_t value, std::byte* dst, uint32_t* random) = 0; void sixteenBitLookup(); void transferBadPixelsToMap() REQUIRES(!mBadPixelMutex); @@ -156,8 +161,16 @@ bool isCFA{true}; ColorFilterArray cfa; int blackLevel = -1; - std::array<int, 4> blackLevelSeparate; - int whitePoint = 65536; + std::array<int, 4> blackLevelSeparateStorage; + Optional<Array2DRef<int>> blackLevelSeparate; + + // A white level of the image, if known. + // NOTE: it is always correct to divide the pixel by `float(whiteLevel)`, + // to normalize the image. + // NOTE: for floating-point images, the white level is never non-integral, + // and thus >= 1.0f + Optional<int> whitePoint; + std::vector<BlackArea> blackAreas; /* Vector containing the positions of bad pixels */ @@ -173,12 +186,9 @@ Mutex mBadPixelMutex; // Mutex for 'mBadPixelPositions, must be used if more // than 1 thread is accessing vector -private: - uint32_t dataRefCount GUARDED_BY(mymutex) = 0; - protected: RawImageType dataType; - RawImageData(); + RawImageData() = default; RawImageData(RawImageType type, const iPoint2D& dim, int bpp, int cpp = 1); virtual void scaleValues(int start_y, int end_y) = 0; virtual void doLookup(int start_y, int end_y) = 0; @@ -194,14 +204,16 @@ iPoint2D mOffset; iPoint2D uncropped_dim; std::unique_ptr<TableLookUp> table; - Mutex mymutex; }; class RawImageDataU16 final : public RawImageData { public: + RawImageDataU16(); + explicit RawImageDataU16(const iPoint2D& dim_, uint32_t cpp_ = 1); + void scaleBlackWhite() override; void calculateBlackAreas() override; - void setWithLookUp(uint16_t value, uint8_t* dst, uint32_t* random) override; + void setWithLookUp(uint16_t value, std::byte* dst, uint32_t* random) override; private: void scaleValues_plain(int start_y, int end_y); @@ -212,69 +224,66 @@ void fixBadPixel(uint32_t x, uint32_t y, int component = 0) override; void doLookup(int start_y, int end_y) override; - RawImageDataU16(); - explicit RawImageDataU16(const iPoint2D& dim_, uint32_t cpp_ = 1); friend class RawImage; }; class RawImageDataFloat final : public RawImageData { public: + RawImageDataFloat(); + explicit RawImageDataFloat(const iPoint2D& dim_, uint32_t cpp_ = 1); + void scaleBlackWhite() override; void calculateBlackAreas() override; - void setWithLookUp(uint16_t value, uint8_t* dst, uint32_t* random) override; + void setWithLookUp(uint16_t value, std::byte* dst, uint32_t* random) override; private: void scaleValues(int start_y, int end_y) override; void fixBadPixel(uint32_t x, uint32_t y, int component = 0) override; [[noreturn]] void doLookup(int start_y, int end_y) override; - RawImageDataFloat(); - explicit RawImageDataFloat(const iPoint2D& dim_, uint32_t cpp_ = 1); + friend class RawImage; }; -class RawImage { +class RawImage final { public: static RawImage create(RawImageType type = RawImageType::UINT16); static RawImage create(const iPoint2D& dim, RawImageType type = RawImageType::UINT16, uint32_t componentsPerPixel = 1); - RawImageData* RAWSPEED_READONLY operator->() const { return p_; } + RawImageData* RAWSPEED_READONLY operator->() const { return &*p_; } RawImageData& RAWSPEED_READONLY operator*() const { return *p_; } - explicit RawImage(RawImageData* p); // p must not be NULL - ~RawImage(); - RawImage(const RawImage& p); - RawImage& operator=(const RawImage& p) noexcept; - RawImage& operator=(RawImage&& p) noexcept; - RawImageData* get() { return p_; } + explicit RawImage(RawImageData* p) = delete; + explicit RawImage(std::shared_ptr<RawImageData> p) : p_(std::move(p)) {} + + RawImageData* get() { return &*p_; } private: - RawImageData* p_; // p_ is never NULL + std::shared_ptr<RawImageData> p_; // p_ is never NULL }; inline RawImage RawImage::create(RawImageType type) { switch (type) { case RawImageType::UINT16: - return RawImage(new RawImageDataU16()); + return RawImage(std::make_shared<RawImageDataU16>()); case RawImageType::F32: - return RawImage(new RawImageDataFloat()); - default: - writeLog(DEBUG_PRIO::ERROR, "RawImage::create: Unknown Image type!"); - __builtin_unreachable(); + return RawImage(std::make_shared<RawImageDataFloat>()); } + writeLog(DEBUG_PRIO::ERROR, "RawImage::create: Unknown Image type!"); + __builtin_unreachable(); } inline RawImage RawImage::create(const iPoint2D& dim, RawImageType type, uint32_t componentsPerPixel) { switch (type) { case RawImageType::UINT16: - return RawImage(new RawImageDataU16(dim, componentsPerPixel)); + return RawImage(std::make_shared<RawImageDataU16>(dim, componentsPerPixel)); case RawImageType::F32: - return RawImage(new RawImageDataFloat(dim, componentsPerPixel)); - default: - writeLog(DEBUG_PRIO::ERROR, "RawImage::create: Unknown Image type!"); - __builtin_unreachable(); + return RawImage( + std::make_shared<RawImageDataFloat>(dim, componentsPerPixel)); } + writeLog(DEBUG_PRIO::ERROR, "RawImage::create: Unknown Image type!"); + __builtin_unreachable(); } inline Array2DRef<uint16_t> @@ -314,9 +323,8 @@ return getU16DataAsUncroppedArray2DRef(); case RawImageType::F32: return getF32DataAsUncroppedArray2DRef(); - default: - __builtin_unreachable(); } + __builtin_unreachable(); } // setWithLookUp will set a single pixel by using the lookup table if supplied, @@ -324,7 +332,7 @@ // pointer to a value that will be used to store a random counter that can be // reused between calls. this needs to be inline to speed up tight decompressor // loops -inline void RawImageDataU16::setWithLookUp(uint16_t value, uint8_t* dst, +inline void RawImageDataU16::setWithLookUp(uint16_t value, std::byte* dst, uint32_t* random) { auto* dest = reinterpret_cast<uint16_t*>(dst); if (table == nullptr) { @@ -332,15 +340,13 @@ return; } if (table->dither) { - const auto* t = reinterpret_cast<const uint32_t*>(table->tables.data()); - uint32_t lookup = t[value]; - uint32_t base = lookup & 0xffff; - uint32_t delta = lookup >> 16; + uint32_t base = table->tables[2 * value + 0]; + uint32_t delta = table->tables[2 * value + 1]; uint32_t r = *random; uint32_t pix = base + ((delta * (r & 2047) + 1024) >> 12); *random = 15700 * (r & 65535) + (r >> 16); - *dest = pix; + *dest = implicit_cast<uint16_t>(pix); return; } *dest = table->tables[value]; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/RawImageDataFloat.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/RawImageDataFloat.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/RawImageDataFloat.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/RawImageDataFloat.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,19 +18,22 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "common/RawImage.h" // for RawImageDataFloat, RawImag... -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/CroppedArray1DRef.h" // for CroppedArray1DRef -#include "adt/CroppedArray2DRef.h" // for CroppedArray2DRef -#include "adt/Point.h" // for iPoint2D -#include "common/Common.h" // for writeLog, DEBUG_PRIO, DEBU... -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "metadata/BlackArea.h" // for BlackArea -#include <algorithm> // for fill_n, max, min -#include <array> // for array -#include <cstdint> // for uint32_t, uint8_t, uint16_t -#include <memory> // for operator==, default_delete -#include <vector> // for vector +#include "common/RawImage.h" +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Casts.h" +#include "adt/CroppedArray2DRef.h" +#include "adt/Point.h" +#include "common/Common.h" +#include "decoders/RawDecoderException.h" +#include "metadata/BlackArea.h" +#include <algorithm> +#include <array> +#include <cassert> +#include <cstddef> +#include <cstdint> +#include <cstdlib> +#include <vector> using std::max; using std::min; @@ -84,8 +87,11 @@ } } + blackLevelSeparate = Array2DRef(blackLevelSeparateStorage.data(), 2, 2); + auto blackLevelSeparate1D = *blackLevelSeparate->getAsArray1DRef(); + if (!totalpixels) { - for (int& i : blackLevelSeparate) + for (int& i : blackLevelSeparate1D) i = blackLevel; return; } @@ -96,17 +102,17 @@ totalpixels /= 4; for (int i = 0; i < 4; i++) { - blackLevelSeparate[i] = - static_cast<int>(65535.0F * accPixels[i] / totalpixels); + blackLevelSeparate1D(i) = static_cast<int>( + 65535.0F * accPixels[i] / implicit_cast<float>(totalpixels)); } /* If this is not a CFA image, we do not use separate blacklevels, use average */ if (!isCFA) { int total = 0; - for (int i : blackLevelSeparate) + for (int i : blackLevelSeparate1D) total += i; - for (int& i : blackLevelSeparate) + for (int& i : blackLevelSeparate1D) i = (total + 2) >> 2; } } @@ -116,8 +122,8 @@ const int skipBorder = 150; int gw = (dim.x - skipBorder) * cpp; - if ((blackAreas.empty() && blackLevelSeparate[0] < 0 && blackLevel < 0) || - whitePoint == 65536) { // Estimate + // NOTE: lack of whitePoint means that it is pre-normalized. + if (blackAreas.empty() && !blackLevelSeparate && blackLevel < 0) { // Estimate float b = 100000000; float m = -10000000; for (int row = skipBorder * cpp; row < (dim.y - skipBorder); row++) { @@ -129,14 +135,11 @@ } if (blackLevel < 0) blackLevel = static_cast<int>(b); - if (whitePoint == 65536) - whitePoint = static_cast<int>(m); - writeLog(DEBUG_PRIO::INFO, "Estimated black:%d, Estimated white: %d", - blackLevel, whitePoint); + writeLog(DEBUG_PRIO::INFO, "Estimated black:%d", blackLevel); } /* If filter has not set separate blacklevel, compute or fetch it */ - if (blackLevelSeparate[0] < 0) + if (!blackLevelSeparate) calculateBlackAreas(); startWorker(RawImageWorker::RawImageWorkerTask::SCALE_VALUES, true); @@ -147,20 +150,22 @@ int gw = dim.x * cpp; std::array<float, 4> mul; std::array<float, 4> sub; + assert(blackLevelSeparate->width() == 2 && blackLevelSeparate->height() == 2); + auto blackLevelSeparate1D = *blackLevelSeparate->getAsArray1DRef(); for (int i = 0; i < 4; i++) { int v = i; if ((mOffset.x & 1) != 0) v ^= 1; if ((mOffset.y & 1) != 0) v ^= 2; - mul[i] = 65535.0F / static_cast<float>(whitePoint - blackLevelSeparate[v]); - sub[i] = static_cast<float>(blackLevelSeparate[v]); + mul[i] = + 65535.0F / static_cast<float>(*whitePoint - blackLevelSeparate1D(v)); + sub[i] = static_cast<float>(blackLevelSeparate1D(v)); } for (int y = start_y; y < end_y; y++) { - const float* mul_local = &mul[2 * (y & 1)]; - const float* sub_local = &sub[2 * (y & 1)]; for (int x = 0; x < gw; x++) - img(y, x) = (img(y, x) - sub_local[x & 1]) * mul_local[x & 1]; + img(y, x) = (img(y, x) - sub[(2 * (y & 1)) + (x & 1)]) * + mul[(2 * (y & 1)) + (x & 1)]; } } @@ -177,7 +182,8 @@ std::array<float, 4> dist = {{}}; std::array<float, 4> weight; - const uint8_t* bad_line = &mBadPixelMap[y * mBadPixelMapPitch]; + const auto bad = + Array2DRef(mBadPixelMap.data(), mBadPixelMapPitch, uncropped_dim.y); // We can have cfa or no-cfa for RawImageDataFloat int step = isCFA ? 2 : 1; @@ -185,7 +191,7 @@ int x_find = static_cast<int>(x) - step; int curr = 0; while (x_find >= 0 && values[curr] < 0) { - if (0 == ((bad_line[x_find >> 3] >> (x_find & 7)) & 1)) { + if (0 == ((bad(y, x_find >> 3) >> (x_find & 7)) & 1)) { values[curr] = img(y, x_find + component); dist[curr] = static_cast<float>(static_cast<int>(x) - x_find); } @@ -195,19 +201,18 @@ x_find = static_cast<int>(x) + step; curr = 1; while (x_find < uncropped_dim.x && values[curr] < 0) { - if (0 == ((bad_line[x_find >> 3] >> (x_find & 7)) & 1)) { + if (0 == ((bad(y, x_find >> 3) >> (x_find & 7)) & 1)) { values[curr] = img(y, x_find + component); dist[curr] = static_cast<float>(x_find - static_cast<int>(x)); } x_find += step; } - bad_line = &mBadPixelMap[x >> 3]; // Find pixel upwards int y_find = static_cast<int>(y) - step; curr = 2; while (y_find >= 0 && values[curr] < 0) { - if (0 == ((bad_line[y_find * mBadPixelMapPitch] >> (x & 7)) & 1)) { + if (0 == ((bad(y_find, x >> 3) >> (x & 7)) & 1)) { values[curr] = img(y_find, x + component); dist[curr] = static_cast<float>(static_cast<int>(y) - y_find); } @@ -217,24 +222,24 @@ y_find = static_cast<int>(y) + step; curr = 3; while (y_find < uncropped_dim.y && values[curr] < 0) { - if (0 == ((bad_line[y_find * mBadPixelMapPitch] >> (x & 7)) & 1)) { + if (0 == ((bad(y_find, x >> 3) >> (x & 7)) & 1)) { values[curr] = img(y_find, x + component); dist[curr] = static_cast<float>(y_find - static_cast<int>(y)); } y_find += step; } - // Find x weights - float total_dist_x = dist[0] + dist[1]; float total_div = 0.000001F; - if (total_dist_x) { + + // Find x weights + if (float total_dist_x = dist[0] + dist[1]; std::abs(total_dist_x) > 0) { weight[0] = dist[0] > 0.0F ? (total_dist_x - dist[0]) / total_dist_x : 0; weight[1] = 1.0F - weight[0]; total_div += 1; } // Find y weights - if (float total_dist_y = dist[2] + dist[3]; total_dist_y) { + if (float total_dist_y = dist[2] + dist[3]; std::abs(total_dist_y) > 0) { weight[2] = dist[2] > 0.0F ? (total_dist_y - dist[2]) / total_dist_y : 0; weight[3] = 1.0F - weight[2]; total_div += 1; @@ -258,7 +263,7 @@ ThrowRDE("Float point lookup tables not implemented"); } -void RawImageDataFloat::setWithLookUp(uint16_t value, uint8_t* dst, +void RawImageDataFloat::setWithLookUp(uint16_t value, std::byte* dst, uint32_t* random) { auto* dest = reinterpret_cast<float*>(dst); if (table == nullptr) { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/RawImageDataU16.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/RawImageDataU16.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/RawImageDataU16.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/RawImageDataU16.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,26 +18,28 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "rawspeedconfig.h" // for WITH_SSE2 -#include "common/RawImage.h" // for RawImageDataU16, RawImageType -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/CroppedArray1DRef.h" // for CroppedArray1DRef -#include "adt/CroppedArray2DRef.h" // for CroppedArray2DRef -#include "adt/Point.h" // for iPoint2D -#include "common/Common.h" // for clampBits, roundDown, writ... -#include "common/TableLookUp.h" // for TableLookUp -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "metadata/BlackArea.h" // for BlackArea -#include <algorithm> // for fill_n, fill, max, min -#include <array> // for array -#include <cstdint> // for uint16_t, uint32_t, uint8_t -#include <memory> // for unique_ptr -#include <tuple> // for array -#include <vector> // for vector +#include "rawspeedconfig.h" +#include "common/RawImage.h" +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Bit.h" +#include "adt/Casts.h" +#include "adt/CroppedArray2DRef.h" +#include "adt/Point.h" +#include "common/Common.h" +#include "common/TableLookUp.h" +#include "decoders/RawDecoderException.h" +#include "metadata/BlackArea.h" +#include <algorithm> +#include <array> +#include <cassert> +#include <cstdint> +#include <memory> +#include <vector> #ifdef WITH_SSE2 -#include "common/Cpuid.h" // for Cpuid -#include <emmintrin.h> // for __m128i, _mm_set1_epi32 +#include "common/CpuFeatures.h" +#include <emmintrin.h> #endif using std::array; @@ -58,8 +60,14 @@ void RawImageDataU16::calculateBlackAreas() { const Array2DRef<uint16_t> img = getU16DataAsUncroppedArray2DRef(); - vector<unsigned int> histogram(4 * 65536); - fill(histogram.begin(), histogram.end(), 0); + std::vector<uint16_t> histogramStorage; + auto histogram = Array2DRef<uint16_t>::create(histogramStorage, 65536, 4); + + for (int row = 0; row != histogram.height(); ++row) { + for (int col = 0; col != histogram.width(); ++col) { + histogram(row, col) = 0; + } + } int totalpixels = 0; @@ -74,11 +82,11 @@ uncropped_dim.y) ThrowRDE("Offset + size is larger than height of image"); for (uint32_t y = area.offset; y < area.offset + area.size; y++) { - auto* localhist = &histogram[(y & 1) * (65536UL * 2UL)]; for (int x = mOffset.x; x < dim.x + mOffset.x; x++) { // FIXME: this only samples a single row, not an area. - const auto hBin = ((x & 1) << 16) + img(y, mOffset.x); - localhist[hBin]++; + const auto localhist = histogram[(2 * (y & 1)) + (x & 1)]; + const auto hBin = img(y, mOffset.x); + localhist(hBin)++; } } totalpixels += area.size * dim.x; @@ -90,19 +98,22 @@ uncropped_dim.x) ThrowRDE("Offset + size is larger than width of image"); for (int y = mOffset.y; y < dim.y + mOffset.y; y++) { - auto* localhist = &histogram[(y & 1) * (65536UL * 2UL)]; for (uint32_t x = area.offset; x < area.size + area.offset; x++) { // FIXME: this only samples a single row, not an area. - const auto hBin = ((x & 1) << 16) + img(y, area.offset); - localhist[hBin]++; + const auto localhist = histogram[(2 * (y & 1)) + (x & 1)]; + const auto hBin = img(y, area.offset); + localhist(hBin)++; } } totalpixels += area.size * dim.y; } } + blackLevelSeparate = Array2DRef(blackLevelSeparateStorage.data(), 2, 2); + auto blackLevelSeparate1D = *blackLevelSeparate->getAsArray1DRef(); + if (!totalpixels) { - for (int& i : blackLevelSeparate) + for (int& i : blackLevelSeparate1D) i = blackLevel; return; } @@ -113,23 +124,23 @@ totalpixels /= 4 * 2; for (int i = 0; i < 4; i++) { - const auto* localhist = &histogram[i * 65536UL]; - int acc_pixels = localhist[0]; + const auto localhist = histogram[i]; + int acc_pixels = localhist(0); int pixel_value = 0; while (acc_pixels <= totalpixels && pixel_value < 65535) { pixel_value++; - acc_pixels += localhist[pixel_value]; + acc_pixels += localhist(pixel_value); } - blackLevelSeparate[i] = pixel_value; + blackLevelSeparate1D(i) = pixel_value; } /* If this is not a CFA image, we do not use separate blacklevels, use average */ if (!isCFA) { int total = 0; - for (int i : blackLevelSeparate) + for (int i : blackLevelSeparate1D) total += i; - for (int& i : blackLevelSeparate) + for (int& i : blackLevelSeparate1D) i = (total + 2) >> 2; } } @@ -137,8 +148,8 @@ void RawImageDataU16::scaleBlackWhite() { const int skipBorder = 250; int gw = (dim.x - skipBorder) * cpp; - if ((blackAreas.empty() && blackLevelSeparate[0] < 0 && blackLevel < 0) || - whitePoint >= 65536) { // Estimate + if ((blackAreas.empty() && !blackLevelSeparate && blackLevel < 0) || + !whitePoint) { // Estimate int b = 65536; int m = 0; auto img = getU16DataAsCroppedArray2DRef(); @@ -151,21 +162,21 @@ } if (blackLevel < 0) blackLevel = b; - if (whitePoint >= 65536) + if (!whitePoint) whitePoint = m; writeLog(DEBUG_PRIO::INFO, "ISO:%d, Estimated black:%d, Estimated white: %d", - metadata.isoSpeed, blackLevel, whitePoint); + metadata.isoSpeed, blackLevel, *whitePoint); } /* Skip, if not needed */ if ((blackAreas.empty() && blackLevel == 0 && whitePoint == 65535 && - blackLevelSeparate[0] < 0) || + !blackLevelSeparate) || dim.area() <= 0) return; /* If filter has not set separate blacklevel, compute or fetch it */ - if (blackLevelSeparate[0] < 0) + if (!blackLevelSeparate) calculateBlackAreas(); startWorker(RawImageWorker::RawImageWorkerTask::SCALE_VALUES, true); @@ -178,8 +189,8 @@ #else - int depth_values = whitePoint - blackLevelSeparate[0]; - float app_scale = 65535.0F / depth_values; + int depth_values = *whitePoint - (*blackLevelSeparate)(0, 0); + float app_scale = 65535.0F / implicit_cast<float>(depth_values); // Check SSE2 if (Cpuid::SSE2() && app_scale < 63) { @@ -193,8 +204,11 @@ #ifdef WITH_SSE2 void RawImageDataU16::scaleValues_SSE2(int start_y, int end_y) { - int depth_values = whitePoint - blackLevelSeparate[0]; - float app_scale = 65535.0F / depth_values; + assert(blackLevelSeparate->width() == 2 && blackLevelSeparate->height() == 2); + auto blackLevelSeparate1D = *blackLevelSeparate->getAsArray1DRef(); + + int depth_values = *whitePoint - blackLevelSeparate1D(0); + float app_scale = 65535.0F / implicit_cast<float>(depth_values); // Scale in 30.2 fp auto full_scale_fp = static_cast<int>(app_scale * 4.0F); @@ -214,14 +228,14 @@ // 10 bit fraction uint32_t mul = static_cast<int>( 1024.0F * 65535.0F / - static_cast<float>(whitePoint - blackLevelSeparate[mOffset.x & 1])); + static_cast<float>(*whitePoint - blackLevelSeparate1D(mOffset.x & 1))); mul |= (static_cast<int>( 1024.0F * 65535.0F / - static_cast<float>(whitePoint - - blackLevelSeparate[(mOffset.x + 1) & 1]))) + static_cast<float>(*whitePoint - + blackLevelSeparate1D((mOffset.x + 1) & 1)))) << 16; - uint32_t b = blackLevelSeparate[mOffset.x & 1] | - (blackLevelSeparate[(mOffset.x + 1) & 1] << 16); + uint32_t b = blackLevelSeparate1D(mOffset.x & 1) | + (blackLevelSeparate1D((mOffset.x + 1) & 1) << 16); for (int i = 0; i < 4; i++) { sub_mul[i] = b; // Subtract even lines @@ -230,14 +244,15 @@ mul = static_cast<int>( 1024.0F * 65535.0F / - static_cast<float>(whitePoint - blackLevelSeparate[2 + (mOffset.x & 1)])); + static_cast<float>(*whitePoint - + blackLevelSeparate1D(2 + (mOffset.x & 1)))); mul |= (static_cast<int>( 1024.0F * 65535.0F / - static_cast<float>(whitePoint - - blackLevelSeparate[2 + ((mOffset.x + 1) & 1)]))) + static_cast<float>(*whitePoint - blackLevelSeparate1D( + 2 + ((mOffset.x + 1) & 1))))) << 16; - b = blackLevelSeparate[2 + (mOffset.x & 1)] | - (blackLevelSeparate[2 + ((mOffset.x + 1) & 1)] << 16); + b = blackLevelSeparate1D(2 + (mOffset.x & 1)) | + (blackLevelSeparate1D(2 + ((mOffset.x + 1) & 1)) << 16); for (int i = 0; i < 4; i++) { sub_mul[8 + i] = b; // Subtract odd lines @@ -330,8 +345,11 @@ void RawImageDataU16::scaleValues_plain(int start_y, int end_y) { const CroppedArray2DRef<uint16_t> img(getU16DataAsCroppedArray2DRef()); - int depth_values = whitePoint - blackLevelSeparate[0]; - float app_scale = 65535.0F / depth_values; + assert(blackLevelSeparate->width() == 2 && blackLevelSeparate->height() == 2); + auto blackLevelSeparate1D = *blackLevelSeparate->getAsArray1DRef(); + + int depth_values = *whitePoint - blackLevelSeparate1D(0); + float app_scale = 65535.0F / implicit_cast<float>(depth_values); // Scale in 30.2 fp auto full_scale_fp = static_cast<int>(app_scale * 4.0F); @@ -350,13 +368,11 @@ v ^= 2; mul[i] = static_cast<int>( 16384.0F * 65535.0F / - static_cast<float>(whitePoint - blackLevelSeparate[v])); - sub[i] = blackLevelSeparate[v]; + static_cast<float>(*whitePoint - blackLevelSeparate1D(v))); + sub[i] = blackLevelSeparate1D(v); } for (int y = start_y; y < end_y; y++) { int v = dim.x + y * 36969; - const int* mul_local = &mul[2 * (y & 1)]; - const int* sub_local = &sub[2 * (y & 1)]; for (int x = 0; x < gw; x++) { int rand; if (mDitherScale) { @@ -366,9 +382,11 @@ rand = 0; } uint16_t& pixel = img(y, x); - pixel = clampBits( - ((pixel - sub_local[x & 1]) * mul_local[x & 1] + 8192 + rand) >> 14, - 16); + pixel = clampBits(((pixel - sub[(2 * (y & 1)) + (x & 1)]) * + mul[(2 * (y & 1)) + (x & 1)] + + 8192 + rand) >> + 14, + 16); } } } @@ -389,14 +407,15 @@ dist.fill(0); weight.fill(0); - const uint8_t* bad_line = &mBadPixelMap[y * mBadPixelMapPitch]; + const auto bad = + Array2DRef(mBadPixelMap.data(), mBadPixelMapPitch, uncropped_dim.y); int step = isCFA ? 2 : 1; // Find pixel to the left int x_find = static_cast<int>(x) - step; int curr = 0; while (x_find >= 0 && values[curr] < 0) { - if (0 == ((bad_line[x_find >> 3] >> (x_find & 7)) & 1)) { + if (0 == ((bad(y, x_find >> 3) >> (x_find & 7)) & 1)) { values[curr] = img(y, x_find + component); dist[curr] = static_cast<int>(x) - x_find; } @@ -406,19 +425,18 @@ x_find = static_cast<int>(x) + step; curr = 1; while (x_find < uncropped_dim.x && values[curr] < 0) { - if (0 == ((bad_line[x_find >> 3] >> (x_find & 7)) & 1)) { + if (0 == ((bad(y, x_find >> 3) >> (x_find & 7)) & 1)) { values[curr] = img(y, x_find + component); dist[curr] = x_find - static_cast<int>(x); } x_find += step; } - bad_line = &mBadPixelMap[x >> 3]; // Find pixel upwards int y_find = static_cast<int>(y) - step; curr = 2; while (y_find >= 0 && values[curr] < 0) { - if (0 == ((bad_line[y_find * mBadPixelMapPitch] >> (x & 7)) & 1)) { + if (0 == ((bad(y_find, x >> 3) >> (x & 7)) & 1)) { values[curr] = img(y_find, x + component); dist[curr] = static_cast<int>(y) - y_find; } @@ -428,7 +446,7 @@ y_find = static_cast<int>(y) + step; curr = 3; while (y_find < uncropped_dim.y && values[curr] < 0) { - if (0 == ((bad_line[y_find * mBadPixelMapPitch] >> (x & 7)) & 1)) { + if (0 == ((bad(y_find, x >> 3) >> (x & 7)) & 1)) { values[curr] = img(y_find, x + component); dist[curr] = y_find - static_cast<int>(y); } @@ -473,14 +491,13 @@ if (table->ntables == 1) { if (table->dither) { int gw = uncropped_dim.x * cpp; - const auto* t = reinterpret_cast<uint32_t*>(table->getTable(0)); + const auto t = table->getTable(0); for (int y = start_y; y < end_y; y++) { uint32_t v = (uncropped_dim.x + y * 13) ^ 0x45694584; for (int x = 0; x < gw; x++) { uint16_t p = img(y, x); - uint32_t lookup = t[p]; - uint32_t base = lookup & 0xffff; - uint32_t delta = lookup >> 16; + uint32_t base = t(2 * p + 0); + uint32_t delta = t(2 * p + 1); v = 15700 * (v & 65535) + (v >> 16); uint32_t pix = base + ((delta * (v & 2047) + 1024) >> 12); img(y, x) = clampBits(pix, 16); @@ -490,10 +507,10 @@ } int gw = uncropped_dim.x * cpp; - const uint16_t* t = table->getTable(0); + const auto t = table->getTable(0); for (int y = start_y; y < end_y; y++) { for (int x = 0; x < gw; x++) { - img(y, x) = t[img(y, x)]; + img(y, x) = t(img(y, x)); } } return; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/RawspeedException.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/RawspeedException.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/RawspeedException.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/RawspeedException.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,30 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2023 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "common/RawspeedException.h" + +namespace rawspeed { + +void RawspeedException::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/RawspeedException.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/RawspeedException.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/RawspeedException.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/RawspeedException.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,12 +21,12 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_NOINLINE, RAWSPEED_UNLIKELY_FUN... -#include "common/Common.h" // for writeLog, DEBUG_PRIO, DEBUG_PRIO::EXTRA -#include <array> // for array -#include <cstdarg> // for va_end, va_list, va_start -#include <cstdio> // for vsnprintf, size_t -#include <stdexcept> // for runtime_error +#include "rawspeedconfig.h" +#include "common/Common.h" +#include <array> +#include <cstdarg> +#include <cstdio> +#include <stdexcept> namespace rawspeed { @@ -54,12 +54,13 @@ } class RawspeedException : public std::runtime_error { -private: static void RAWSPEED_UNLIKELY_FUNCTION RAWSPEED_NOINLINE log(const char* msg) { writeLog(DEBUG_PRIO::EXTRA, "EXCEPTION: %s", msg); } + virtual void anchor() const; + public: explicit RAWSPEED_UNLIKELY_FUNCTION RAWSPEED_NOINLINE RawspeedException(const char* msg) @@ -81,11 +82,13 @@ #ifndef DEBUG #define ThrowExceptionHelper(CLASS, fmt, ...) \ rawspeed::ThrowException<CLASS>("%s, line " STR(__LINE__) ": " fmt, \ - __PRETTY_FUNCTION__, ##__VA_ARGS__) + __PRETTY_FUNCTION__ __VA_OPT__(, ) \ + __VA_ARGS__) #else #define ThrowExceptionHelper(CLASS, fmt, ...) \ rawspeed::ThrowException<CLASS>(__FILE__ ":" STR(__LINE__) ": %s: " fmt, \ - __PRETTY_FUNCTION__, ##__VA_ARGS__) + __PRETTY_FUNCTION__ __VA_OPT__(, ) \ + __VA_ARGS__) #endif #define ThrowRSE(...) \ diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/SimpleLUT.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/SimpleLUT.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/SimpleLUT.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/SimpleLUT.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,13 +21,13 @@ #pragma once -#include "common/Common.h" // for clampBits -#include <algorithm> // for generate_n, max -#include <cassert> // for assert -#include <functional> // for function -#include <iterator> // for back_inserter -#include <type_traits> // for enable_if -#include <vector> // for vector +#include "adt/Bit.h" +#include <algorithm> +#include <cassert> +#include <functional> +#include <iterator> +#include <type_traits> +#include <vector> namespace rawspeed { @@ -41,15 +41,14 @@ std::vector<value_type> table; public: - template < - typename F, - typename = std::enable_if_t<!std::is_same_v< - SimpleLUT, - typename std::remove_cv_t<typename std::remove_reference_t<F>>>>, - typename = std::enable_if<std::is_convertible_v< - F, std::function<value_type(typename decltype(table)::size_type, - typename decltype(table)::size_type)>>>> - explicit SimpleLUT(F&& f) { + template <typename F> + requires( + !std::is_same_v<SimpleLUT, typename std::remove_cv_t< + typename std::remove_reference_t<F>>> && + std::is_convertible_v< + F, std::function<value_type(typename decltype(table)::size_type, + typename decltype(table)::size_type)>>) + explicit SimpleLUT(F f) { const auto fullTableSize = 1U << TableBitWidth; table.reserve(fullTableSize); std::generate_n(std::back_inserter(table), fullTableSize, diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/Spline.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/Spline.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/Spline.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/Spline.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,15 +21,18 @@ #pragma once -#include "adt/Point.h" // for iPoint2D -#include <algorithm> // for fill_n, max, copy, min -#include <cassert> // for assert -#include <cstdint> // for uint16_t -#include <functional> // for greater_equal -#include <limits> // for numeric_limits -#include <memory> // for allocator_traits<>::value_type -#include <type_traits> // for enable_if_t, is_floating_point -#include <vector> // for vector +#include "adt/Casts.h" +#include "adt/Point.h" +#include <algorithm> +#include <cassert> +#include <cstdint> +#include <limits> +#include <type_traits> +#include <vector> + +#ifndef NDEBUG +#include <functional> +#endif namespace rawspeed { class iPoint2D; @@ -38,8 +41,8 @@ // See https://en.wikipedia.org/wiki/Spline_(mathematics) // section "Algorithm for computing natural cubic splines" -template <typename T = uint16_t, - typename = std::enable_if_t<std::is_arithmetic_v<T>>> +template <typename T = uint16_t> + requires std::is_arithmetic_v<T> class Spline final { public: using value_type = T; @@ -47,7 +50,7 @@ // These are the constant factors for each segment of the curve. // Each segment i will have the formula: // f(x) = a[i] + b[i]*(x - x[i]) + c[i]*(x - x[i])^2 + d[i]*(x - x[i])^3 - struct Segment { + struct Segment final { double a; double b; double c; @@ -123,7 +126,7 @@ "The X coordinates must all be strictly increasing"); #ifndef NDEBUG - if (!std::is_floating_point<value_type>::value) { + if constexpr (!std::is_floating_point_v<value_type>) { // The Y coords must be limited to the range of value_type std::for_each(control_points.cbegin(), control_points.cend(), [](const iPoint2D& p) { @@ -133,7 +136,7 @@ } #endif - num_coords = control_points.size(); + num_coords = implicit_cast<int>(control_points.size()); num_segments = num_coords - 1; xCp.resize(num_coords); @@ -161,14 +164,14 @@ double interpolated = s.a + s.b * diff + s.c * diff_2 + s.d * diff_3; - if (!std::is_floating_point<value_type>::value) { + if constexpr (!std::is_floating_point_v<value_type>) { interpolated = std::max( interpolated, double(std::numeric_limits<value_type>::min())); interpolated = std::min( interpolated, double(std::numeric_limits<value_type>::max())); } - curve[x] = interpolated; + curve[x] = implicit_cast<T>(interpolated); } } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/TableLookUp.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/TableLookUp.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/TableLookUp.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/TableLookUp.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,11 +20,17 @@ */ #include "common/TableLookUp.h" -#include "common/Common.h" // for clampBits -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include <cassert> // for assert -#include <cstdint> // for uint16_t -#include <limits> // for numeric_limits +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Bit.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "decoders/RawDecoderException.h" +#include <algorithm> +#include <cassert> +#include <cstdint> +#include <limits> +#include <vector> namespace rawspeed { @@ -44,17 +50,18 @@ void TableLookUp::setTable(int ntable, const std::vector<uint16_t>& table) { assert(!table.empty()); - const int nfilled = table.size(); + const auto nfilled = implicit_cast<int>(table.size()); if (nfilled > TABLE_MAX_ELTS) ThrowRDE("Table lookup with %i entries is unsupported", nfilled); if (ntable > ntables) { ThrowRDE("Table lookup with number greater than number of tables."); } - uint16_t* t = &tables[ntable * TABLE_SIZE]; + + auto t = Array2DRef(tables.data(), TABLE_SIZE, ntables)[ntable]; if (!dither) { for (int i = 0; i < TABLE_MAX_ELTS; i++) { - t[i] = (i < nfilled) ? table[i] : table[nfilled - 1]; + t(i) = (i < nfilled) ? table[i] : table[nfilled - 1]; } return; } @@ -67,21 +74,21 @@ upper = std::max(upper, center); int delta = upper - lower; invariant(delta >= 0); - t[i * 2] = clampBits(center - ((upper - lower + 2) / 4), 16); - t[i * 2 + 1] = delta; + t(i * 2) = clampBits(center - ((upper - lower + 2) / 4), 16); + t(i * 2 + 1) = implicit_cast<uint16_t>(delta); } for (int i = nfilled; i < TABLE_MAX_ELTS; i++) { - t[i * 2] = table[nfilled - 1]; - t[i * 2 + 1] = 0; + t(i * 2) = table[nfilled - 1]; + t(i * 2 + 1) = 0; } } -uint16_t* TableLookUp::getTable(int n) { +Array1DRef<uint16_t> TableLookUp::getTable(int n) { if (n > ntables) { ThrowRDE("Table lookup with number greater than number of tables."); } - return &tables[n * TABLE_SIZE]; + return Array2DRef(tables.data(), TABLE_SIZE, ntables)[n]; } } // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/TableLookUp.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/TableLookUp.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/TableLookUp.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/TableLookUp.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,17 +21,18 @@ #pragma once -#include <cstdint> // for uint16_t -#include <vector> // for vector +#include "adt/Array1DRef.h" +#include <cstdint> +#include <vector> namespace rawspeed { -class TableLookUp { +class TableLookUp final { public: TableLookUp(int ntables, bool dither); void setTable(int ntable, const std::vector<uint16_t>& table); - uint16_t* getTable(int n); + Array1DRef<uint16_t> getTable(int n); const int ntables; std::vector<uint16_t> tables; const bool dither; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/XTransPhase.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/XTransPhase.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/common/XTransPhase.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/common/XTransPhase.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,17 +20,14 @@ #pragma once -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Point.h" // for iPoint2D -#include "metadata/ColorFilterArray.h" // for CFAColor, CFAColor::GREEN -#include <algorithm> // for find_if, equal -#include <array> // for array, operator== -#include <cassert> // for assert -#include <cmath> // for abs -#include <cstdlib> // for abs -#include <iterator> // for distance -#include <optional> // for optional -#include <utility> // for swap +#include "adt/Array2DRef.h" +#include "adt/Optional.h" +#include "adt/Point.h" +#include "metadata/ColorFilterArray.h" +#include <array> +#include <cassert> +#include <cmath> +#include <cstdlib> namespace rawspeed { @@ -52,8 +49,8 @@ std::array<T, 6 * 6> tgtData; const Array2DRef<T> tgt(tgtData.data(), 6, 6); - for (int row = 0; row < tgt.height; ++row) { - for (int col = 0; col < tgt.width; ++col) { + for (int row = 0; row < tgt.height(); ++row) { + for (int col = 0; col < tgt.width(); ++col) { tgt(row, col) = src((coordOffset.y + row) % 6, (coordOffset.x + col) % 6); } } @@ -64,35 +61,30 @@ inline std::array<CFAColor, 6 * 6> getAsCFAColors(XTransPhase p) { const XTransPhase basePhase(0, 0); // From Fujifilm X-Pro1. + using enum CFAColor; const std::array<CFAColor, 6 * 6> basePat = { - CFAColor::GREEN, CFAColor::GREEN, CFAColor::RED, CFAColor::GREEN, - CFAColor::GREEN, CFAColor::BLUE, CFAColor::GREEN, CFAColor::GREEN, - CFAColor::BLUE, CFAColor::GREEN, CFAColor::GREEN, CFAColor::RED, - CFAColor::BLUE, CFAColor::RED, CFAColor::GREEN, CFAColor::RED, - CFAColor::BLUE, CFAColor::GREEN, CFAColor::GREEN, CFAColor::GREEN, - CFAColor::BLUE, CFAColor::GREEN, CFAColor::GREEN, CFAColor::RED, - CFAColor::GREEN, CFAColor::GREEN, CFAColor::RED, CFAColor::GREEN, - CFAColor::GREEN, CFAColor::BLUE, CFAColor::RED, CFAColor::BLUE, - CFAColor::GREEN, CFAColor::BLUE, CFAColor::RED, CFAColor::GREEN}; + GREEN, GREEN, RED, GREEN, GREEN, BLUE, GREEN, GREEN, BLUE, + GREEN, GREEN, RED, BLUE, RED, GREEN, RED, BLUE, GREEN, + GREEN, GREEN, BLUE, GREEN, GREEN, RED, GREEN, GREEN, RED, + GREEN, GREEN, BLUE, RED, BLUE, GREEN, BLUE, RED, GREEN}; return applyPhaseShift(basePat, basePhase, /*tgtPhase=*/p); } -inline std::optional<XTransPhase> -getAsXTransPhase(const ColorFilterArray& CFA) { +inline Optional<XTransPhase> getAsXTransPhase(const ColorFilterArray& CFA) { if (CFA.getSize() != iPoint2D(6, 6)) return {}; std::array<CFAColor, 6 * 6> patData; const Array2DRef<CFAColor> pat(patData.data(), 6, 6); - for (int row = 0; row < pat.height; ++row) { - for (int col = 0; col < pat.width; ++col) { + for (int row = 0; row < pat.height(); ++row) { + for (int col = 0; col < pat.width(); ++col) { pat(row, col) = CFA.getColorAt(col, row); } } iPoint2D off; - for (off.y = 0; off.y < pat.height; ++off.y) { - for (off.x = 0; off.x < pat.width; ++off.x) { + for (off.y = 0; off.y < pat.height(); ++off.y) { + for (off.x = 0; off.x < pat.width(); ++off.x) { if (getAsCFAColors(off) == patData) return off; } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/AbstractTiffDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,14 +19,20 @@ */ #include "decoders/AbstractTiffDecoder.h" -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "tiff/TiffEntry.h" // for TiffEntry -#include "tiff/TiffIFD.h" // for TiffIFD, TiffRootIFD, Tiff... -#include <cstdint> // for uint32_t -#include <vector> // for vector +#include "decoders/RawDecoderException.h" +#include "tiff/TiffEntry.h" +#include "tiff/TiffIFD.h" +#include "tiff/TiffTag.h" +#include <cstdint> +#include <vector> namespace rawspeed { +void AbstractTiffDecoder::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + const TiffIFD* AbstractTiffDecoder::getIFDWithLargestImage(TiffTag filter) const { std::vector<const TiffIFD*> ifds = mRootIFD->getIFDsWithTag(filter); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/AbstractTiffDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,13 +20,13 @@ #pragma once -#include "decoders/RawDecoder.h" // for RawDecoder -#include "io/Buffer.h" // for Buffer -#include "tiff/TiffIFD.h" // for TiffID, TiffRootIFD, TiffRootIFDOwner -#include "tiff/TiffTag.h" // for TiffTag, TiffTag::IMAGEWIDTH -#include <memory> // for allocator, unique_ptr -#include <string> // for string -#include <utility> // for move +#include "decoders/RawDecoder.h" +#include "io/Buffer.h" +#include "tiff/TiffIFD.h" +#include "tiff/TiffTag.h" +#include <memory> +#include <string> +#include <utility> namespace rawspeed { @@ -34,6 +34,8 @@ class CameraMetaData; class AbstractTiffDecoder : public RawDecoder { + virtual void anchor() const; + protected: TiffRootIFDOwner mRootIFD; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/ArwDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/ArwDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/ArwDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/ArwDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,31 +20,38 @@ */ #include "decoders/ArwDecoder.h" -#include "MemorySanitizer.h" // for MSan -#include "adt/NORangesSet.h" // for NORangesSet -#include "adt/Point.h" // for iPoint2D -#include "common/Common.h" // for roundDown -#include "common/RawspeedException.h" // for RawspeedException -#include "decoders/RawDecoderException.h" // for ThrowRDE -#include "decompressors/LJpegDecoder.h" // for LJpegDecoder -#include "decompressors/SonyArw1Decompressor.h" // for SonyArw1Decompre... -#include "decompressors/SonyArw2Decompressor.h" // for SonyArw2Decompre... -#include "decompressors/UncompressedDecompressor.h" // for UncompressedDeco... -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endi... -#include "metadata/Camera.h" // for Hints -#include "metadata/ColorFilterArray.h" // for CFAColor, CFACol... -#include "tiff/TiffEntry.h" // for TiffEntry -#include "tiff/TiffIFD.h" // for TiffRootIFD, Tif... -#include "tiff/TiffTag.h" // for TiffTag, TiffTag... -#include <algorithm> // for fill_n -#include <array> // for array -#include <cassert> // for assert -#include <cstring> // for memcpy, size_t -#include <memory> // for unique_ptr, allo... -#include <string> // for operator==, string -#include <vector> // for vector +#include "MemorySanitizer.h" +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "adt/NORangesSet.h" +#include "adt/Point.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "common/RawspeedException.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/LJpegDecoder.h" +#include "decompressors/SonyArw1Decompressor.h" +#include "decompressors/SonyArw2Decompressor.h" +#include "decompressors/UncompressedDecompressor.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "io/IOException.h" +#include "metadata/Camera.h" +#include "metadata/ColorFilterArray.h" +#include "tiff/TiffEntry.h" +#include "tiff/TiffIFD.h" +#include "tiff/TiffTag.h" +#include <array> +#include <cassert> +#include <cinttypes> +#include <cstdint> +#include <cstring> +#include <memory> +#include <string> +#include <vector> using std::vector; @@ -60,8 +67,8 @@ return make == "SONY"; } -RawImage ArwDecoder::decodeSRF(const TiffIFD* raw) { - raw = mRootIFD->getIFDWithTag(TiffTag::IMAGEWIDTH); +RawImage ArwDecoder::decodeSRF() { + const TiffIFD* raw = mRootIFD->getIFDWithTag(TiffTag::IMAGEWIDTH); uint32_t width = raw->getEntry(TiffTag::IMAGEWIDTH)->getU32(); uint32_t height = raw->getEntry(TiffTag::IMAGELENGTH)->getU32(); @@ -77,23 +84,23 @@ uint32_t head_off = 164600; // Replicate the dcraw contortions to get the "decryption" key - const uint8_t* keyData = mFile.getData(key_off, 1); - uint32_t offset = (*keyData) * 4; - keyData = mFile.getData(key_off + offset, 4); - uint32_t key = getU32BE(keyData); + uint8_t offset = mFile[key_off]; + const Buffer keyData = mFile.getSubView(key_off + 4 * offset, 4); + uint32_t key = getU32BE(keyData.begin()); + static const size_t head_size = 40; - const uint8_t* head_orig = mFile.getData(head_off, head_size); + const auto head_orig = + mFile.getSubView(head_off, head_size).getAsArray1DRef(); vector<uint8_t> head(head_size); - SonyDecrypt(reinterpret_cast<const uint32_t*>(head_orig), - reinterpret_cast<uint32_t*>(&head[0]), 10, key); + SonyDecrypt(head_orig, {head.data(), head_size}, head_size / 4, key); for (int i = 26; i > 22; i--) key = key << 8 | head[i - 1]; // "Decrypt" the whole image buffer - const auto* image_data = mFile.getData(off, len); + const auto image_data = mFile.getSubView(off, len).getAsArray1DRef(); std::vector<uint8_t> image_decoded(len); - SonyDecrypt(reinterpret_cast<const uint32_t*>(image_data), - reinterpret_cast<uint32_t*>(image_decoded.data()), len / 4, key); + SonyDecrypt(image_data, {image_decoded.data(), implicit_cast<int>(len)}, + len / 4, key); Buffer di(image_decoded.data(), len); @@ -110,38 +117,58 @@ return mRaw; } -RawImage ArwDecoder::decodeRawInternal() { - const TiffIFD* raw = nullptr; - vector<const TiffIFD*> data = mRootIFD->getIFDsWithTag(TiffTag::STRIPOFFSETS); +RawImage ArwDecoder::decodeTransitionalArw() { + if (const TiffEntry* model = mRootIFD->getEntryRecursive(TiffTag::MODEL); + model && model->getString() == "DSLR-A100") { + // We've caught the elusive A100 in the wild, a transitional format + // between the simple sanity of the MRW custom format and the wordly + // wonderfullness of the Tiff-based ARW format, let's shoot from the hip + const TiffIFD* raw = mRootIFD->getIFDWithTag(TiffTag::SUBIFDS); + uint32_t off = raw->getEntry(TiffTag::SUBIFDS)->getU32(); + uint32_t width = 3881; + uint32_t height = 2608; - if (data.empty()) { - if (const TiffEntry* model = mRootIFD->getEntryRecursive(TiffTag::MODEL); - model && model->getString() == "DSLR-A100") { - // We've caught the elusive A100 in the wild, a transitional format - // between the simple sanity of the MRW custom format and the wordly - // wonderfullness of the Tiff-based ARW format, let's shoot from the hip - raw = mRootIFD->getIFDWithTag(TiffTag::SUBIFDS); - uint32_t off = raw->getEntry(TiffTag::SUBIFDS)->getU32(); - uint32_t width = 3881; - uint32_t height = 2608; - - mRaw->dim = iPoint2D(width, height); - - ByteStream input(DataBuffer(mFile.getSubView(off), Endianness::little)); - SonyArw1Decompressor a(mRaw); - mRaw->createData(); - a.decompress(input); + mRaw->dim = iPoint2D(width, height); - return mRaw; - } - - if (hints.has("srf_format")) - return decodeSRF(raw); + ByteStream input(DataBuffer(mFile.getSubView(off), Endianness::little)); + SonyArw1Decompressor a(mRaw); + mRaw->createData(); + a.decompress(input); - ThrowRDE("No image data found"); + return mRaw; } - raw = data[0]; + if (hints.contains("srf_format")) + return decodeSRF(); + + ThrowRDE("No image data found"); +} + +std::vector<uint16_t> ArwDecoder::decodeCurve(const TiffIFD* raw) { + std::vector<uint16_t> curve(0x4001); + const TiffEntry* c = raw->getEntry(TiffTag::SONYCURVE); + std::array<uint32_t, 6> sony_curve = {{0, 0, 0, 0, 0, 4095}}; + + for (uint32_t i = 0; i < 4; i++) + sony_curve[i + 1] = (c->getU16(i) >> 2) & 0xfff; + + for (uint32_t i = 0; i < 0x4001; i++) + curve[i] = implicit_cast<uint16_t>(i); + + for (uint32_t i = 0; i < 5; i++) + for (uint32_t j = sony_curve[i] + 1; j <= sony_curve[i + 1]; j++) + curve[j] = implicit_cast<uint16_t>(curve[j - 1] + (1 << i)); + + return curve; +} + +RawImage ArwDecoder::decodeRawInternal() { + vector<const TiffIFD*> data = mRootIFD->getIFDsWithTag(TiffTag::STRIPOFFSETS); + + if (data.empty()) + return decodeTransitionalArw(); + + const TiffIFD* raw = data[0]; int compression = raw->getEntry(TiffTag::COMPRESSION)->getU32(); if (1 == compression) { DecodeUncompressed(raw); @@ -206,19 +233,7 @@ mRaw->dim = iPoint2D(width, height); - std::vector<uint16_t> curve(0x4001); - const TiffEntry* c = raw->getEntry(TiffTag::SONYCURVE); - std::array<uint32_t, 6> sony_curve = {{0, 0, 0, 0, 0, 4095}}; - - for (uint32_t i = 0; i < 4; i++) - sony_curve[i + 1] = (c->getU16(i) >> 2) & 0xfff; - - for (uint32_t i = 0; i < 0x4001; i++) - curve[i] = i; - - for (uint32_t i = 0; i < 5; i++) - for (uint32_t j = sony_curve[i] + 1; j <= sony_curve[i + 1]; j++) - curve[j] = curve[j - 1] + (1 << i); + std::vector<uint16_t> curve = decodeCurve(raw); RawImageCurveGuard curveHandler(&mRaw, curve, uncorrectedRawValues); @@ -263,7 +278,7 @@ const Buffer buf(mFile.getSubView(off, c2)); - if (hints.has("sr2_format")) { + if (hints.contains("sr2_format")) { UncompressedDecompressor u(ByteStream(DataBuffer(buf, Endianness::little)), mRaw, iRectangle2D({0, 0}, iPoint2D(width, height)), @@ -305,25 +320,33 @@ mRaw->dim = iPoint2D(2 * width, height / 2); - uint32_t tilew = raw->getEntry(TiffTag::TILEWIDTH)->getU32(); + auto tilew = uint64_t(raw->getEntry(TiffTag::TILEWIDTH)->getU32()); uint32_t tileh = raw->getEntry(TiffTag::TILELENGTH)->getU32(); if (tilew <= 0 || tileh <= 0 || tileh % 2 != 0) - ThrowRDE("Invalid tile size: (%u, %u)", tilew, tileh); + ThrowRDE("Invalid tile size: (%" PRIu64 ", %u)", tilew, tileh); tileh /= 2; tilew *= 2; assert(tilew > 0); - const uint32_t tilesX = roundUpDivision(mRaw->dim.x, tilew); + const auto tilesX = + implicit_cast<uint32_t>(roundUpDivision(mRaw->dim.x, tilew)); if (!tilesX) ThrowRDE("Zero tiles horizontally"); assert(tileh > 0); - const uint32_t tilesY = roundUpDivision(mRaw->dim.y, tileh); + const auto tilesY = + implicit_cast<uint32_t>(roundUpDivision(mRaw->dim.y, tileh)); if (!tilesY) ThrowRDE("Zero tiles vertically"); + // Math thoughs: if we know that the total size is 100, while tile size is 11, + // we end up with 9 full tiles, and 1 partial tile (10 total). + // + // BUT! If we know that the total size is 100, and we have same 10 tiles, + // we'd naively guess that each tile's size is 10, and not 11... + const TiffEntry* offsets = raw->getEntry(TiffTag::TILEOFFSETS); const TiffEntry* counts = raw->getEntry(TiffTag::TILEBYTECOUNTS); if (offsets->count != counts->count) { @@ -338,21 +361,46 @@ tilesX, tilesY); } + NORangesSet<Buffer> tilesLegality; + for (int tile = 0U; tile < implicit_cast<int>(offsets->count); tile++) { + const uint32_t offset = offsets->getU32(tile); + const uint32_t length = counts->getU32(tile); + if (!tilesLegality.insert(mFile.getSubView(offset, length))) + ThrowRDE("Two tiles overlap. Raw corrupt!"); + } + mRaw->createData(); #ifdef HAVE_OPENMP #pragma omp parallel for schedule(static) default(none) \ shared(offsets, counts) firstprivate(tilesX, tilew, tileh) #endif for (int tile = 0U; tile < static_cast<int>(offsets->count); tile++) { - const uint32_t tileX = tile % tilesX; - const uint32_t tileY = tile / tilesX; - const uint32_t offset = offsets->getU32(tile); - const uint32_t length = counts->getU32(tile); + try { + const uint32_t tileX = tile % tilesX; + const uint32_t tileY = tile / tilesX; + const uint32_t offset = offsets->getU32(tile); + const uint32_t length = counts->getU32(tile); + + LJpegDecoder decoder( + ByteStream( + DataBuffer(mFile.getSubView(offset, length), Endianness::little)), + mRaw); + decoder.decode(implicit_cast<uint32_t>(tileX * tilew), tileY * tileh, + implicit_cast<uint32_t>(tilew), tileh, false); + } catch (const RawDecoderException& err) { + mRaw->setError(err.what()); + } catch (const IOException& err) { + mRaw->setError(err.what()); + } catch (...) { + // We should not get any other exception type here. + __builtin_unreachable(); + } + } - LJpegDecoder decoder(ByteStream(DataBuffer(mFile.getSubView(offset, length), - Endianness::little)), - mRaw); - decoder.decode(tileX * tilew, tileY * tileh, tilew, tileh, false); + std::string firstErr; + if (mRaw->isTooManyErrors(1, &firstErr)) { + ThrowRDE("Too many errors encountered. Giving up. First Error:\n%s", + firstErr.c_str()); } PostProcessLJpeg(); @@ -378,12 +426,12 @@ #ifdef HAVE_OPENMP #pragma omp parallel for schedule(static) default(none) firstprivate(in, out) #endif - for (int inRow = 0; inRow < in.height; ++inRow) { + for (int inRow = 0; inRow < in.height(); ++inRow) { static constexpr iPoint2D inMCUSize = {4, 1}; static constexpr iPoint2D outMCUSize = {2, 2}; - invariant(in.width % inMCUSize.x == 0); - for (int MCUIdx = 0, numMCUsPerRow = in.width / inMCUSize.x; + invariant(in.width() % inMCUSize.x == 0); + for (int MCUIdx = 0, numMCUsPerRow = in.width() / inMCUSize.x; MCUIdx < numMCUsPerRow; ++MCUIdx) { for (int outMCURow = 0; outMCURow != outMCUSize.y; ++outMCURow) { for (int outMCUСol = 0; outMCUСol != outMCUSize.x; ++outMCUСol) { @@ -490,7 +538,8 @@ auto id = mRootIFD->getID(); setMetaData(meta, id, "", iso); - mRaw->whitePoint >>= mShiftDownScale; + if (mRaw->whitePoint) + mRaw->whitePoint = *mRaw->whitePoint >> mShiftDownScale; mRaw->blackLevel >>= mShiftDownScale; // Set the whitebalance @@ -506,8 +555,12 @@ } } -void ArwDecoder::SonyDecrypt(const uint32_t* ibuf, uint32_t* obuf, uint32_t len, - uint32_t key) { +void ArwDecoder::SonyDecrypt(Array1DRef<const uint8_t> ibuf, + Array1DRef<uint8_t> obuf, int len, uint32_t key) { + invariant(ibuf.size() == obuf.size()); + invariant(ibuf.size() == 4 * len); + invariant(obuf.size() == 4 * len); + if (0 == len) return; @@ -524,21 +577,18 @@ int p = 127; // Decrypt the buffer in place using the pad - for (; len > 0; len--) { + for (int i = 0; i != len; ++i) { pad[p & 127] = pad[(p + 1) & 127] ^ pad[(p + 1 + 64) & 127]; - uint32_t pv; - memcpy(&pv, &(pad[p & 127]), sizeof(uint32_t)); + uint32_t pv = pad[p & 127]; uint32_t bv; - memcpy(&bv, ibuf, sizeof(uint32_t)); + memcpy(&bv, ibuf.getBlock(4, i).begin(), sizeof(uint32_t)); bv ^= pv; - memcpy(obuf, &bv, sizeof(uint32_t)); + memcpy(obuf.getBlock(4, i).begin(), &bv, sizeof(uint32_t)); - ibuf++; - obuf++; p++; } } @@ -567,7 +617,7 @@ assert(sony_length != nullptr); // The Decryption is done in blocks of 4 bytes. - uint32_t len = roundDown(sony_length->getU32(), 4); + auto len = implicit_cast<uint32_t>(roundDown(sony_length->getU32(), 4)); if (!len) ThrowRDE("No buffer to decrypt?"); @@ -576,14 +626,14 @@ // "Decrypt" IFD const auto& ifd_crypt = priv->getRootIfdData(); - const auto EncryptedBuffer = ifd_crypt.getSubView(off, len); + const auto EncryptedBuffer = + ifd_crypt.getSubView(off, len).getAsArray1DRef(); // We do have to prepend 'off' padding, because TIFF uses absolute offsets. - const auto DecryptedBufferSize = off + EncryptedBuffer.getSize(); + const auto DecryptedBufferSize = off + EncryptedBuffer.size(); std::vector<uint8_t> DecryptedBuffer(DecryptedBufferSize); - SonyDecrypt(reinterpret_cast<const uint32_t*>(EncryptedBuffer.begin()), - reinterpret_cast<uint32_t*>(DecryptedBuffer.data() + off), - len / 4, key); + SonyDecrypt(EncryptedBuffer, + {&DecryptedBuffer[off], implicit_cast<int>(len)}, len / 4, key); NORangesSet<Buffer> ifds_decoded; Buffer decIFD(DecryptedBuffer.data(), DecryptedBufferSize); @@ -614,8 +664,11 @@ const TiffEntry* bl = encryptedIFD.getEntry(TiffTag::SONYBLACKLEVEL); if (bl->count != 4) ThrowRDE("Black Level has %d entries instead of 4", bl->count); + mRaw->blackLevelSeparate = + Array2DRef(mRaw->blackLevelSeparateStorage.data(), 2, 2); + auto blackLevelSeparate1D = *mRaw->blackLevelSeparate->getAsArray1DRef(); for (int i = 0; i < 4; ++i) - mRaw->blackLevelSeparate[i] = bl->getU16(i) >> mShiftDownScaleForExif; + blackLevelSeparate1D(i) = bl->getU16(i) >> mShiftDownScaleForExif; } if (encryptedIFD.hasEntry(TiffTag::SONYWHITELEVEL)) { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/ArwDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/ArwDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/ArwDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/ArwDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,13 +21,15 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decoders/AbstractTiffDecoder.h" // for AbstractTiffDecoder -#include "io/Buffer.h" // for Buffer -#include "io/ByteStream.h" // for ByteStream -#include "tiff/TiffIFD.h" // for TiffIFD (ptr only), TiffRo... -#include <cstdint> // for uint32_t -#include <utility> // for move +#include "adt/Array1DRef.h" +#include "common/RawImage.h" +#include "decoders/AbstractTiffDecoder.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "tiff/TiffIFD.h" +#include <cstdint> +#include <utility> +#include <vector> namespace rawspeed { @@ -47,13 +49,15 @@ void ParseA100WB() const; [[nodiscard]] int getDecoderVersion() const override { return 1; } - RawImage decodeSRF(const TiffIFD* raw); + static std::vector<uint16_t> decodeCurve(const TiffIFD* raw); + RawImage decodeTransitionalArw(); + RawImage decodeSRF(); void DecodeARW2(ByteStream input, uint32_t w, uint32_t h, uint32_t bpp); void DecodeLJpeg(const TiffIFD* raw); void PostProcessLJpeg(); void DecodeUncompressed(const TiffIFD* raw) const; - static void SonyDecrypt(const uint32_t* ibuf, uint32_t* obuf, uint32_t len, - uint32_t key); + static void SonyDecrypt(Array1DRef<const uint8_t> ibuf, + Array1DRef<uint8_t> obuf, int len, uint32_t key); void GetWB() const; int mShiftDownScale = 0; int mShiftDownScaleForExif = 0; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -1,3 +1,6 @@ +rawspeed_add_library(rawspeed_decoders OBJECT) +set_target_properties(rawspeed_decoders PROPERTIES LINKER_LANGUAGE CXX) + FILE(GLOB SOURCES "AbstractTiffDecoder.cpp" "AbstractTiffDecoder.h" @@ -37,6 +40,7 @@ "RafDecoder.h" "RawDecoder.cpp" "RawDecoder.h" + "RawDecoderException.cpp" "RawDecoderException.h" "Rw2Decoder.cpp" "Rw2Decoder.h" @@ -44,10 +48,22 @@ "SimpleTiffDecoder.h" "SrwDecoder.cpp" "SrwDecoder.h" + "StiDecoder.cpp" + "StiDecoder.h" "ThreefrDecoder.cpp" "ThreefrDecoder.h" ) -target_sources(rawspeed PRIVATE +target_sources(rawspeed_decoders PRIVATE ${SOURCES} ) + +target_include_directories(rawspeed_decoders PUBLIC "${RAWSPEED_BINARY_DIR}/src") +target_include_directories(rawspeed_decoders SYSTEM PUBLIC "${RAWSPEED_SOURCE_DIR}/src/external") +target_include_directories(rawspeed_decoders PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/..") + +if(TARGET RawSpeed::OpenMP_CXX) + target_link_libraries(rawspeed_decoders PUBLIC RawSpeed::OpenMP_CXX) +endif() + +target_link_libraries(rawspeed PRIVATE rawspeed_decoders) diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/Cr2Decoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/Cr2Decoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/Cr2Decoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/Cr2Decoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -21,28 +21,35 @@ */ #include "decoders/Cr2Decoder.h" -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Point.h" // for iPoint2D -#include "decoders/RawDecoderException.h" // for ThrowRDE -#include "decompressors/Cr2Decompressor.h" // for Cr2SliceWidths -#include "decompressors/Cr2LJpegDecoder.h" // for Cr2LJpegDecoder -#include "interpolators/Cr2sRawInterpolator.h" // for Cr2sRawInterpolator -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endiannes... -#include "metadata/Camera.h" // for Hints -#include "metadata/ColorFilterArray.h" // for CFAColor, CFAColor::G... -#include "parsers/TiffParserException.h" // for ThrowException, Rawsp... -#include "tiff/TiffEntry.h" // for TiffEntry, TiffDataType -#include "tiff/TiffTag.h" // for TiffTag, TiffTag::CAN... -#include <array> // for array -#include <cassert> // for assert -#include <cstdint> // for uint32_t, uint16_t -#include <memory> // for unique_ptr, allocator -#include <string> // for operator==, string -#include <vector> // for vector -// IWYU pragma: no_include <ext/alloc_traits.h> -#include "MemorySanitizer.h" // for MSan +#include "MemorySanitizer.h" +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Bit.h" +#include "adt/Casts.h" +#include "adt/Optional.h" +#include "adt/Point.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/Cr2Decompressor.h" +#include "decompressors/Cr2LJpegDecoder.h" +#include "interpolators/Cr2sRawInterpolator.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "metadata/Camera.h" +#include "metadata/ColorFilterArray.h" +#include "parsers/TiffParserException.h" +#include "tiff/TiffEntry.h" +#include "tiff/TiffIFD.h" +#include "tiff/TiffTag.h" +#include <array> +#include <cassert> +#include <cstdint> +#include <memory> +#include <string> +#include <string_view> +#include <utility> +#include <vector> namespace rawspeed { class CameraMetaData; @@ -94,8 +101,9 @@ mRaw->createData(); Cr2SliceWidths slicing(/*numSlices=*/1, /*sliceWidth=don't care*/ 0, - /*lastSliceWidth=*/width); + /*lastSliceWidth=*/implicit_cast<uint16_t>(width)); l.decode(slicing); + ljpegSamplePrecision = l.getSamplePrecision(); // deal with D2000 GrayResponseCurve if (const TiffEntry* curve = @@ -190,6 +198,7 @@ Cr2LJpegDecoder d(bs, mRaw); mRaw->createData(); d.decode(slicing); + ljpegSamplePrecision = d.getSamplePrecision(); assert(getSubSampling() == mRaw->metadata.subsampling); @@ -202,7 +211,7 @@ RawImage Cr2Decoder::decodeRawInternal() { if (mRootIFD->getSubIFDs().size() < 4) return decodeOldFormat(); - else // NOLINT ok, here it make sense + else // NOLINT(readability-else-after-return): ok, here it make sense return decodeNewFormat(); } @@ -217,6 +226,247 @@ checkCameraSupported(meta, id, ""); } +namespace { + +enum class ColorDataFormat { + ColorData1, + ColorData2, + ColorData3, + ColorData4, + ColorData5, + ColorData6, + ColorData7, + ColorData8, +}; + +[[nodiscard]] Optional<std::pair<ColorDataFormat, Optional<int>>> +deduceColorDataFormat(const TiffEntry* ccd) { + // The original ColorData, detect by it's fixed size. + if (ccd->count == 582) + return {{ColorDataFormat::ColorData1, {}}}; + // Second incarnation of ColorData, still size-only detection. + if (ccd->count == 653) + return {{ColorDataFormat::ColorData2, {}}}; + // From now onwards, Canon has finally added a `version` field, use it. + switch (int colorDataVersion = static_cast<int16_t>(ccd->getU16(0)); + colorDataVersion) { + case 1: + return {{ColorDataFormat::ColorData3, colorDataVersion}}; + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 9: + return {{ColorDataFormat::ColorData4, colorDataVersion}}; + case -4: + case -3: + return {{ColorDataFormat::ColorData5, colorDataVersion}}; + case 10: { + ColorDataFormat f = [count = ccd->count]() { + switch (count) { + case 1273: + case 1275: + return ColorDataFormat::ColorData6; + default: + return ColorDataFormat::ColorData7; + } + }(); + return {{f, colorDataVersion}}; + } + case 11: + return {{ColorDataFormat::ColorData7, colorDataVersion}}; + case 12: + case 13: + case 14: + case 15: + return {{ColorDataFormat::ColorData8, colorDataVersion}}; + default: + break; + } + return std::nullopt; +} + +[[nodiscard]] int getWhiteBalanceOffsetInColorData(ColorDataFormat f) { + switch (f) { + using enum ColorDataFormat; + case ColorData1: + return 50; + case ColorData2: + return 68; + case ColorData3: + case ColorData4: + case ColorData6: + case ColorData7: + case ColorData8: + return 126; + case ColorData5: + return 142; + } + __builtin_unreachable(); +} + +[[nodiscard]] Optional<std::pair<int, int>> +getBlackAndWhiteLevelOffsetsInColorData(ColorDataFormat f, + Optional<int> colorDataVersion) { + switch (f) { + using enum ColorDataFormat; + case ColorData1: + case ColorData2: + case ColorData3: + // These seemingly did not contain `SpecularWhiteLevel` yet. + return std::nullopt; + case ColorData4: + switch (*colorDataVersion) { + case 2: + case 3: + return std::nullopt; // Still no `SpecularWhiteLevel`. + case 4: + case 5: + return {{692, 697}}; + case 6: + case 7: + return {{715, 720}}; + case 9: + return {{719, 724}}; + default: + __builtin_unreachable(); + } + case ColorData5: + switch (*colorDataVersion) { + case -4: + return {{333, 1386}}; + case -3: + return {{264, 662}}; + default: + __builtin_unreachable(); + } + case ColorData6: + // NOLINTNEXTLINE(hicpp-multiway-paths-covered) + switch (*colorDataVersion) { + case 10: + return {{479, 484}}; + default: + __builtin_unreachable(); + } + case ColorData7: + switch (*colorDataVersion) { + case 10: + return {{504, 509}}; + case 11: + return {{728, 733}}; + default: + __builtin_unreachable(); + } + case ColorData8: + switch (*colorDataVersion) { + case 12: + case 13: + case 15: + return {{778, 783}}; + case 14: + return {{556, 561}}; + default: + __builtin_unreachable(); + } + } + __builtin_unreachable(); +} + +[[nodiscard]] bool shouldRescaleBlackLevels(ColorDataFormat f, + Optional<int> colorDataVersion) { + return f != ColorDataFormat::ColorData5 || colorDataVersion != -3; +} + +} // namespace + +bool Cr2Decoder::decodeCanonColorData() const { + const TiffEntry* wb = mRootIFD->getEntryRecursive(TiffTag::CANONCOLORDATA); + if (!wb) + return false; + + auto dsc = deduceColorDataFormat(wb); + if (!dsc) + return false; + + auto [f, ver] = *dsc; + + int offset = getWhiteBalanceOffsetInColorData(f); + + offset /= 2; + mRaw->metadata.wbCoeffs[0] = static_cast<float>(wb->getU16(offset + 0)); + mRaw->metadata.wbCoeffs[1] = static_cast<float>(wb->getU16(offset + 1)); + mRaw->metadata.wbCoeffs[2] = static_cast<float>(wb->getU16(offset + 3)); + + auto levelOffsets = getBlackAndWhiteLevelOffsetsInColorData(f, ver); + if (!levelOffsets) + return false; + + mRaw->whitePoint = wb->getU16(levelOffsets->second); + + mRaw->blackLevelSeparate = + Array2DRef(mRaw->blackLevelSeparateStorage.data(), 2, 2); + auto blackLevelSeparate1D = *mRaw->blackLevelSeparate->getAsArray1DRef(); + for (int c = 0; c != 4; ++c) + blackLevelSeparate1D(c) = wb->getU16(c + levelOffsets->first); + + // In Canon MakerNotes, the levels are always unscaled, and are 14-bit, + // and so if the LJpeg precision was lower, we need to adjust. + constexpr int makernotesPrecision = 14; + if (makernotesPrecision > ljpegSamplePrecision) { + int bitDepthDiff = makernotesPrecision - ljpegSamplePrecision; + assert(bitDepthDiff >= 1 && bitDepthDiff <= 12); + if (shouldRescaleBlackLevels(f, ver)) { + for (int c = 0; c != 4; ++c) + blackLevelSeparate1D(c) >>= bitDepthDiff; + } + mRaw->whitePoint = *mRaw->whitePoint >> bitDepthDiff; + } + + return true; +} + +void Cr2Decoder::parseWhiteBalance() const { + // Default white point is LJpeg sample precision. + mRaw->whitePoint = (1U << ljpegSamplePrecision) - 1; + + if (decodeCanonColorData()) + return; + + if (mRootIFD->hasEntryRecursive(TiffTag::CANONSHOTINFO) && + mRootIFD->hasEntryRecursive(TiffTag::CANONPOWERSHOTG9WB)) { + const TiffEntry* shot_info = + mRootIFD->getEntryRecursive(TiffTag::CANONSHOTINFO); + const TiffEntry* g9_wb = + mRootIFD->getEntryRecursive(TiffTag::CANONPOWERSHOTG9WB); + + uint16_t wb_index = shot_info->getU16(7); + int wb_offset = (wb_index < 18) + ? std::string_view("012347800000005896")[wb_index] - '0' + : 0; + wb_offset = wb_offset * 8 + 2; + + mRaw->metadata.wbCoeffs[0] = + static_cast<float>(g9_wb->getU32(wb_offset + 1)); + mRaw->metadata.wbCoeffs[1] = + (static_cast<float>(g9_wb->getU32(wb_offset + 0)) + + static_cast<float>(g9_wb->getU32(wb_offset + 3))) / + 2.0F; + mRaw->metadata.wbCoeffs[2] = + static_cast<float>(g9_wb->getU32(wb_offset + 2)); + } else if (mRootIFD->hasEntryRecursive(static_cast<TiffTag>(0xa4))) { + // WB for the old 1D and 1DS + const TiffEntry* wb = + mRootIFD->getEntryRecursive(static_cast<TiffTag>(0xa4)); + if (wb->count >= 3) { + mRaw->metadata.wbCoeffs[0] = wb->getFloat(0); + mRaw->metadata.wbCoeffs[1] = wb->getFloat(1); + mRaw->metadata.wbCoeffs[2] = wb->getFloat(2); + } + } +} + void Cr2Decoder::decodeMetaDataInternal(const CameraMetaData* meta) { int iso = 0; mRaw->cfa.setCFA(iPoint2D(2, 2), CFAColor::RED, CFAColor::GREEN, @@ -242,54 +492,21 @@ // Fetch the white balance try { - if (mRootIFD->hasEntryRecursive(TiffTag::CANONCOLORDATA)) { - const TiffEntry* wb = - mRootIFD->getEntryRecursive(TiffTag::CANONCOLORDATA); - // this entry is a big table, and different cameras store used WB in - // different parts, so find the offset, default is the most common one - int offset = hints.get("wb_offset", 126); - - offset /= 2; - mRaw->metadata.wbCoeffs[0] = static_cast<float>(wb->getU16(offset + 0)); - mRaw->metadata.wbCoeffs[1] = static_cast<float>(wb->getU16(offset + 1)); - mRaw->metadata.wbCoeffs[2] = static_cast<float>(wb->getU16(offset + 3)); - } else { - if (mRootIFD->hasEntryRecursive(TiffTag::CANONSHOTINFO) && - mRootIFD->hasEntryRecursive(TiffTag::CANONPOWERSHOTG9WB)) { - const TiffEntry* shot_info = - mRootIFD->getEntryRecursive(TiffTag::CANONSHOTINFO); - const TiffEntry* g9_wb = - mRootIFD->getEntryRecursive(TiffTag::CANONPOWERSHOTG9WB); - - uint16_t wb_index = shot_info->getU16(7); - int wb_offset = - (wb_index < 18) ? "012347800000005896"[wb_index] - '0' : 0; - wb_offset = wb_offset * 8 + 2; - - mRaw->metadata.wbCoeffs[0] = - static_cast<float>(g9_wb->getU32(wb_offset + 1)); - mRaw->metadata.wbCoeffs[1] = - (static_cast<float>(g9_wb->getU32(wb_offset + 0)) + - static_cast<float>(g9_wb->getU32(wb_offset + 3))) / - 2.0F; - mRaw->metadata.wbCoeffs[2] = - static_cast<float>(g9_wb->getU32(wb_offset + 2)); - } else if (mRootIFD->hasEntryRecursive(static_cast<TiffTag>(0xa4))) { - // WB for the old 1D and 1DS - const TiffEntry* wb = - mRootIFD->getEntryRecursive(static_cast<TiffTag>(0xa4)); - if (wb->count >= 3) { - mRaw->metadata.wbCoeffs[0] = wb->getFloat(0); - mRaw->metadata.wbCoeffs[1] = wb->getFloat(1); - mRaw->metadata.wbCoeffs[2] = wb->getFloat(2); - } - } - } + parseWhiteBalance(); } catch (const RawspeedException& e) { mRaw->setError(e.what()); // We caught an exception reading WB, just ignore it } setMetaData(meta, mode, iso); + assert(mShiftUpScaleForExif == 0 || mShiftUpScaleForExif == 2); + if (mShiftUpScaleForExif) { + mRaw->blackLevel = 0; + mRaw->blackLevelSeparate = std::nullopt; + } + if (mShiftUpScaleForExif != 0 && isPowerOfTwo(1 + *mRaw->whitePoint)) + mRaw->whitePoint = ((1 + *mRaw->whitePoint) << mShiftUpScaleForExif) - 1; + else + mRaw->whitePoint = *mRaw->whitePoint << mShiftUpScaleForExif; } bool Cr2Decoder::isSubSampled() const { @@ -325,7 +542,7 @@ } int Cr2Decoder::getHue() const { - if (hints.has("old_sraw_hue")) + if (hints.contains("old_sraw_hue")) return (mRaw->metadata.subsampling.y * mRaw->metadata.subsampling.x); if (!mRootIFD->hasEntryRecursive(static_cast<TiffTag>(0x10))) { @@ -334,7 +551,7 @@ if (uint32_t model_id = mRootIFD->getEntryRecursive(static_cast<TiffTag>(0x10))->getU32(); model_id >= 0x80000281 || model_id == 0x80000218 || - (hints.has("force_new_sraw_hue"))) { + (hints.contains("force_new_sraw_hue"))) { return ((mRaw->metadata.subsampling.y * mRaw->metadata.subsampling.x) - 1) >> 1; @@ -359,7 +576,7 @@ sraw_coeffs[1] = (wb->getU16(offset + 1) + wb->getU16(offset + 2) + 1) >> 1; sraw_coeffs[2] = wb->getU16(offset + 3); - if (hints.has("invert_sraw_wb")) { + if (hints.contains("invert_sraw_wb")) { sraw_coeffs[0] = static_cast<int>( 1024.0F / (static_cast<float>(sraw_coeffs[0]) / 1024.0F)); sraw_coeffs[2] = static_cast<int>( @@ -385,8 +602,8 @@ sraw_coeffs, hue); /* Determine sRaw coefficients */ - bool isOldSraw = hints.has("sraw_40d"); - bool isNewSraw = hints.has("sraw_new"); + bool isOldSraw = hints.contains("sraw_40d"); + bool isNewSraw = hints.contains("sraw_new"); int version; if (isOldSraw) @@ -400,6 +617,8 @@ } i.interpolate(version); + + mShiftUpScaleForExif = 2; } } // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/Cr2Decoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/Cr2Decoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/Cr2Decoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/Cr2Decoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,12 +20,12 @@ #pragma once -#include "adt/Point.h" // for iPoint2D -#include "common/RawImage.h" // for RawImage -#include "decoders/AbstractTiffDecoder.h" // for AbstractTiffDecoder -#include "io/Buffer.h" // for Buffer -#include "tiff/TiffIFD.h" // for TiffRootIFD (ptr only) -#include <utility> // for move +#include "adt/Point.h" +#include "common/RawImage.h" +#include "decoders/AbstractTiffDecoder.h" +#include "io/Buffer.h" +#include "tiff/TiffIFD.h" +#include <utility> namespace rawspeed { @@ -50,6 +50,10 @@ [[nodiscard]] bool isSubSampled() const; [[nodiscard]] iPoint2D getSubSampling() const; [[nodiscard]] int getHue() const; + [[nodiscard]] bool decodeCanonColorData() const; + void parseWhiteBalance() const; + int ljpegSamplePrecision; + int mShiftUpScaleForExif = 0; }; } // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/CrwDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/CrwDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/CrwDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/CrwDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,26 +20,34 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "rawspeedconfig.h" // for RAWSPEED_READNONE +#include "rawspeedconfig.h" #include "decoders/CrwDecoder.h" -#include "adt/Point.h" // for iPoint2D -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "decompressors/CrwDecompressor.h" // for CrwDecompressor -#include "io/Buffer.h" // for Buffer -#include "metadata/Camera.h" // for Hints -#include "metadata/ColorFilterArray.h" // for CFAColor, CFAColor::GREEN -#include "tiff/CiffEntry.h" // for CiffEntry, CiffDataType -#include "tiff/CiffIFD.h" // for CiffIFD -#include "tiff/CiffTag.h" // for CiffTag, CiffTag::MAKEMODEL -#include <array> // for array -#include <cassert> // for assert -#include <cmath> // for copysignf, expf, logf -#include <cstdlib> // for abs, size_t -#include <cstring> // for memcmp -#include <memory> // for unique_ptr, allocator -#include <string> // for string -#include <utility> // for move -#include <vector> // for vector +#include "adt/Array1DRef.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "adt/Optional.h" +#include "adt/Point.h" +#include "common/RawImage.h" +#include "decoders/RawDecoder.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/CrwDecompressor.h" +#include "io/Buffer.h" +#include "metadata/Camera.h" +#include "metadata/ColorFilterArray.h" +#include "tiff/CiffEntry.h" +#include "tiff/CiffIFD.h" +#include "tiff/CiffTag.h" +#include <array> +#include <cassert> +#include <cmath> +#include <cstdint> +#include <cstdlib> +#include <cstring> +#include <memory> +#include <string> +#include <string_view> +#include <utility> +#include <vector> using std::vector; @@ -53,8 +61,8 @@ static const std::array<char, 8> magic = { {'H', 'E', 'A', 'P', 'C', 'C', 'D', 'R'}}; static const size_t magic_offset = 6; - const unsigned char* data = input.getData(magic_offset, magic.size()); - return 0 == memcmp(data, magic.data(), magic.size()); + const Buffer data = input.getSubView(magic_offset, magic.size()); + return 0 == memcmp(data.begin(), magic.data(), magic.size()); } CrwDecoder::CrwDecoder(std::unique_ptr<const CiffIFD> rootIFD, Buffer file) @@ -76,6 +84,10 @@ uint32_t height = sensorInfo->getU16(2); mRaw->dim = iPoint2D(width, height); + if (width == 0 || height == 0 || width % 4 != 0 || width > 4104 || + height > 3048 || (height * width) % 64 != 0) + ThrowRDE("Unexpected image dimensions found: (%u; %u)", width, height); + const CiffEntry* decTable = mRootIFD->getEntryRecursive(CiffTag::DECODERTABLE); if (!decTable || decTable->type != CiffDataType::LONG) @@ -84,9 +96,26 @@ assert(decTable != nullptr); uint32_t dec_table = decTable->getU32(); - bool lowbits = !hints.has("no_decompressed_lowbits"); + bool lowbits = !hints.contains("no_decompressed_lowbits"); + + ByteStream rawInput = rawData->getData(); + + Optional<Array1DRef<const uint8_t>> lowbitInput; + if (lowbits) { + // If there are low bits, the first part (size is calculable) is low bits + // Each block is 4 pairs of 2 bits, so we have 1 block per 4 pixels + const int lBlocks = 1 * height * width / 4; + invariant(lBlocks > 0); + lowbitInput = rawInput.getStream(lBlocks); + } + + // We always ignore next 514 bytes of 'padding'. No idea what is in there. + rawInput.skipBytes(514); + + Array1DRef<const uint8_t> input = + rawInput.peekRemainingBuffer().getAsArray1DRef(); - CrwDecompressor c(mRaw, dec_table, lowbits, rawData->getData()); + CrwDecompressor c(mRaw, dec_table, input, lowbitInput); mRaw->createData(); c.decompress(); @@ -116,11 +145,12 @@ val -= frac; // convert 1/3 (0x0c) and 2/3 (0x14) codes if (frac == 0x0c) { - frac = 32.0F / 3; + frac = implicit_cast<int64_t>(32.0F / 3); } else if (frac == 0x14) { - frac = 64.0F / 3; + frac = implicit_cast<int64_t>(64.0F / 3); } - return copysignf((val + frac) / 32.0F, in); + return copysignf(implicit_cast<float>(val + frac) / 32.0F, + implicit_cast<float>(in)); } void CrwDecoder::decodeMetaDataInternal(const CameraMetaData* meta) { @@ -143,8 +173,9 @@ if (shot_info->type == CiffDataType::SHORT && shot_info->count >= 2) { // os << exp(canonEv(value.toLong()) * log(2.0)) * 100.0 / 32.0; uint16_t iso_index = shot_info->getU16(2); - iso = expf(canonEv(static_cast<int64_t>(iso_index)) * logf(2.0)) * - 100.0F / 32.0F; + iso = implicit_cast<int>( + expf(canonEv(static_cast<int64_t>(iso_index)) * logf(2.0)) * 100.0F / + 32.0F); } } @@ -174,7 +205,7 @@ int offset = hints.get("wb_offset", 120); std::array<uint16_t, 2> key = {{0x410, 0x45f3}}; - if (!hints.has("wb_mangle")) + if (!hints.contains("wb_mangle")) key[0] = key[1] = 0; offset /= 2; @@ -214,7 +245,7 @@ /* CANON EOS D60, CANON EOS 10D, CANON EOS 300D */ if (wb_index > 9) ThrowRDE("Invalid white balance index"); - int wb_offset = 1 + ("0134567028"[wb_index] - '0') * 4; + int wb_offset = 1 + (std::string_view("0134567028")[wb_index] - '0') * 4; mRaw->metadata.wbCoeffs[0] = wb_data->getU16(wb_offset + 0); mRaw->metadata.wbCoeffs[1] = wb_data->getU16(wb_offset + 1); mRaw->metadata.wbCoeffs[2] = wb_data->getU16(wb_offset + 3); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/CrwDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/CrwDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/CrwDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/CrwDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,11 +21,11 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decoders/RawDecoder.h" // for RawDecoder -#include "tiff/CiffIFD.h" // for CiffIFD -#include <cstdint> // for int64_t -#include <memory> // for unique_ptr +#include "common/RawImage.h" +#include "decoders/RawDecoder.h" +#include "tiff/CiffIFD.h" +#include <cstdint> +#include <memory> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/DcrDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/DcrDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/DcrDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/DcrDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,20 +20,21 @@ */ #include "decoders/DcrDecoder.h" -#include "adt/NORangesSet.h" // for NORangesSet -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "decompressors/KodakDecompressor.h" // for KodakDecompressor -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness:... -#include "tiff/TiffEntry.h" // for TiffEntry, TiffDataType -#include "tiff/TiffIFD.h" // for TiffRootIFD, TiffID -#include "tiff/TiffTag.h" // for TiffTag, TiffTag::COMPR... -#include <array> // for array -#include <cassert> // for assert -#include <cstdint> // for uint32_t -#include <memory> // for allocator, unique_ptr -#include <string> // for operator==, string +#include "adt/NORangesSet.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decoders/SimpleTiffDecoder.h" +#include "decompressors/KodakDecompressor.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "tiff/TiffEntry.h" +#include "tiff/TiffIFD.h" +#include "tiff/TiffTag.h" +#include <array> +#include <cassert> +#include <memory> +#include <string> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/DcrDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/DcrDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/DcrDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/DcrDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,11 +21,11 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decoders/SimpleTiffDecoder.h" // for SimpleTiffDecoder -#include "io/Buffer.h" // for Buffer -#include "tiff/TiffIFD.h" // for TiffRootIFD (ptr only), Tiff... -#include <utility> // for move +#include "common/RawImage.h" +#include "decoders/SimpleTiffDecoder.h" +#include "io/Buffer.h" +#include "tiff/TiffIFD.h" +#include <utility> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/DcsDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/DcsDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/DcsDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/DcsDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,19 +20,21 @@ */ #include "decoders/DcsDecoder.h" -#include "adt/Point.h" // for iPoint2D, iRecta... -#include "common/Common.h" // for BitOrder, BitOrd... -#include "decoders/RawDecoderException.h" // for ThrowException -#include "decompressors/UncompressedDecompressor.h" // for UncompressedDeco... -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endi... -#include "tiff/TiffEntry.h" // for TiffEntry, TiffD... -#include "tiff/TiffIFD.h" // for TiffRootIFD, TiffID -#include "tiff/TiffTag.h" // for TiffTag, TiffTag... -#include <cassert> // for assert -#include <memory> // for allocator, uniqu... -#include <string> // for operator==, string +#include "adt/Point.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decoders/SimpleTiffDecoder.h" +#include "decompressors/UncompressedDecompressor.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "tiff/TiffEntry.h" +#include "tiff/TiffIFD.h" +#include "tiff/TiffTag.h" +#include <cassert> +#include <memory> +#include <string> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/DcsDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/DcsDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/DcsDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/DcsDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,12 +21,12 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_READONLY -#include "common/RawImage.h" // for RawImage -#include "decoders/SimpleTiffDecoder.h" // for SimpleTiffDecoder -#include "io/Buffer.h" // for Buffer -#include "tiff/TiffIFD.h" // for TiffRootIFD (ptr only), Tiff... -#include <utility> // for move +#include "rawspeedconfig.h" +#include "common/RawImage.h" +#include "decoders/SimpleTiffDecoder.h" +#include "io/Buffer.h" +#include "tiff/TiffIFD.h" +#include <utility> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/DngDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/DngDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/DngDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/DngDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,35 +18,40 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "rawspeedconfig.h" // for HAVE_JPEG, HAVE_ZLIB +#include "rawspeedconfig.h" #include "decoders/DngDecoder.h" -#include "adt/NORangesSet.h" // for NORangesSet -#include "adt/NotARational.h" // for NotARational -#include "adt/Point.h" // for iPoint2D, iRectan... -#include "common/Common.h" // for roundUpDivision -#include "common/DngOpcodes.h" // for DngOpcodes -#include "decoders/RawDecoderException.h" // for ThrowRDE, RawDeco... -#include "decompressors/AbstractDngDecompressor.h" // for DngSliceElement -#include "io/Buffer.h" // for Buffer, operator< -#include "io/ByteStream.h" // for ByteStream -#include "metadata/BlackArea.h" // for BlackArea -#include "metadata/Camera.h" // for Camera -#include "metadata/CameraMetaData.h" // for CameraMetaData -#include "metadata/ColorFilterArray.h" // for CFAColor, ColorFi... -#include "parsers/TiffParserException.h" // for ThrowException -#include "tiff/TiffEntry.h" // for TiffEntry, TiffDa... -#include "tiff/TiffIFD.h" // for TiffIFD, TiffRootIFD -#include "tiff/TiffTag.h" // for TiffTag, TiffTag:... -#include <algorithm> // for max, transform -#include <array> // for array, array<>::v... -#include <cassert> // for assert -#include <limits> // for numeric_limits -#include <map> // for map -#include <memory> // for unique_ptr, alloc... -#include <string> // for char_traits, string -#include <utility> // for move -#include <vector> // for vector, allocator -// IWYU pragma: no_include <ext/alloc_traits.h> +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Casts.h" +#include "adt/NORangesSet.h" +#include "adt/NotARational.h" +#include "adt/Optional.h" +#include "adt/Point.h" +#include "common/Common.h" +#include "common/DngOpcodes.h" +#include "common/RawImage.h" +#include "decoders/AbstractTiffDecoder.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/AbstractDngDecompressor.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "metadata/Camera.h" +#include "metadata/CameraMetaData.h" +#include "metadata/ColorFilterArray.h" +#include "parsers/TiffParserException.h" +#include "tiff/TiffEntry.h" +#include "tiff/TiffIFD.h" +#include "tiff/TiffTag.h" +#include <algorithm> +#include <array> +#include <cassert> +#include <cstdint> +#include <limits> +#include <map> +#include <memory> +#include <string> +#include <utility> +#include <vector> using std::map; using std::vector; @@ -63,12 +68,14 @@ if (!mRootIFD->hasEntryRecursive(TiffTag::DNGVERSION)) ThrowRDE("DNG, but version tag is missing. Will not guess."); - const uint8_t* v = - mRootIFD->getEntryRecursive(TiffTag::DNGVERSION)->getData().getData(4); + const auto v = + mRootIFD->getEntryRecursive(TiffTag::DNGVERSION)->getData().getBuffer(4); - if (v[0] != 1) - ThrowRDE("Not a supported DNG image format: v%u.%u.%u.%u", (int)v[0], - (int)v[1], (int)v[2], (int)v[3]); + if (v[0] != 1) { + ThrowRDE("Not a supported DNG image format: v%u.%u.%u.%u", + static_cast<int>(v[0]), static_cast<int>(v[1]), + static_cast<int>(v[2]), static_cast<int>(v[3])); + } // if (v[1] > 4) // ThrowRDE("Not a supported DNG image format: v%u.%u.%u.%u", (int)v[0], // (int)v[1], (int)v[2], (int)v[3]); @@ -146,8 +153,7 @@ } } -std::optional<iRectangle2D> -DngDecoder::parseACTIVEAREA(const TiffIFD* raw) const { +Optional<iRectangle2D> DngDecoder::parseACTIVEAREA(const TiffIFD* raw) const { if (!raw->hasEntry(TiffTag::ACTIVEAREA)) return {}; @@ -180,6 +186,30 @@ return crop; } +namespace { +Optional<CFAColor> getDNGCFAPatternAsCFAColor(uint32_t c) { + switch (c) { + using enum CFAColor; + case 0: + return RED; + case 1: + return GREEN; + case 2: + return BLUE; + case 3: + return CYAN; + case 4: + return MAGENTA; + case 5: + return YELLOW; + case 6: + return WHITE; + default: + return std::nullopt; + } +} +} // namespace + void DngDecoder::parseCFA(const TiffIFD* raw) const { // Check if layout is OK, if present @@ -205,32 +235,11 @@ mRaw->cfa.setSize(cfaSize); - auto getAsCFAColor = [](uint32_t c) -> std::optional<CFAColor> { - switch (c) { - case 0: - return CFAColor::RED; - case 1: - return CFAColor::GREEN; - case 2: - return CFAColor::BLUE; - case 3: - return CFAColor::CYAN; - case 4: - return CFAColor::MAGENTA; - case 5: - return CFAColor::YELLOW; - case 6: - return CFAColor::WHITE; - default: - return std::nullopt; - } - }; - for (int y = 0; y < cfaSize.y; y++) { for (int x = 0; x < cfaSize.x; x++) { uint32_t c1 = cPat->getByte(x + y * cfaSize.x); - auto c2 = getAsCFAColor(c1); + auto c2 = getDNGCFAPatternAsCFAColor(c1); if (!c2) ThrowRDE("Unsupported CFA Color: %u", c1); @@ -241,7 +250,7 @@ // the cfa is specified relative to the ActiveArea. we want it relative (0,0) // Since in handleMetadata(), in subFrame() we unconditionally shift CFA by // activearea+DefaultCropOrigin; here we need to undo the 'ACTIVEAREA' part. - const std::optional<iRectangle2D> aa = parseACTIVEAREA(raw); + const Optional<iRectangle2D> aa = parseACTIVEAREA(raw); if (!aa) return; @@ -271,6 +280,10 @@ if (!mat) return; + // Color matrix size *MUST* be a multiple of 3 (number of channels in XYZ). + if (mat->count % 3 != 0) + return; + const auto srat_vals = mat->getSRationalArray(mat->count); bool Success = true; mRaw->metadata.colorMatrix.reserve(mat->count); @@ -294,12 +307,14 @@ ThrowRDE("Invalid tile size: (%u, %u)", tilew, tileh); assert(tilew > 0); - const uint32_t tilesX = roundUpDivision(mRaw->dim.x, tilew); + const auto tilesX = + implicit_cast<uint32_t>(roundUpDivision(mRaw->dim.x, tilew)); if (!tilesX) ThrowRDE("Zero tiles horizontally"); assert(tileh > 0); - const uint32_t tilesY = roundUpDivision(mRaw->dim.y, tileh); + const auto tilesY = + implicit_cast<uint32_t>(roundUpDivision(mRaw->dim.y, tileh)); if (!tilesY) ThrowRDE("Zero tiles vertically"); @@ -357,6 +372,27 @@ if (raw->hasEntry(TiffTag::PREDICTOR)) predictor = raw->getEntry(TiffTag::PREDICTOR)->getU32(); + if (mRaw->getDataType() == RawImageType::UINT16) { + // Default white level is (2 ** BitsPerSample) - 1 + mRaw->whitePoint = implicit_cast<int>((1UL << *bps) - 1UL); + } else if (mRaw->getDataType() == RawImageType::F32) { + // 1. We divide by white level to normalize the image, + // s.t. the 1.0 becomes the white level. + // 2. In DNG spec, white level is always an integer, + // there can not be a non-integral white level. + // 3. Additionally, no white level for FP DNG's means that + // it is pre-normalized (default is 1.0). + // + // Therefore, we can surmise that: + // a) FP DNG's never have white level of <1.0 + // b) FP DNG's always have integral white level + // c) if FP DNG has a white level of `w`, it is always correct + // to divide by `float(w)` to normalize the image + // ... therefore, we can, as an optimization, + // store FP DNG white level as an integer. + mRaw->whitePoint = 1; + } + // Some decompressors (such as VC5) may depend on the white point if (raw->hasEntry(TiffTag::WHITELEVEL)) { const TiffEntry* whitelevel = raw->getEntry(TiffTag::WHITELEVEL); @@ -365,7 +401,7 @@ } AbstractDngDecompressor slices(mRaw, getTilingDescription(raw), compression, - mFixLjpeg, bps, predictor); + mFixLjpeg, *bps, predictor); slices.slices.reserve(slices.dsc.numTiles); @@ -428,8 +464,8 @@ const TiffIFD* raw = data[0]; bps = raw->getEntry(TiffTag::BITSPERSAMPLE)->getU32(); - if (bps < 1 || bps > 32) - ThrowRDE("Unsupported bit per sample count: %u.", bps); + if (*bps < 1 || *bps > 32) + ThrowRDE("Unsupported bit per sample count: %u.", *bps); uint32_t sample_format = 1; if (raw->hasEntry(TiffTag::SAMPLEFORMAT)) @@ -459,10 +495,10 @@ writeLog(DEBUG_PRIO::EXTRA, "This is NOT a CFA image"); } - if (sample_format == 1 && bps > 16) + if (sample_format == 1 && *bps > 16) ThrowRDE("Integer precision larger than 16 bits currently not supported."); - if (sample_format == 3 && bps != 16 && bps != 24 && bps != 32) + if (sample_format == 3 && *bps != 16 && *bps != 24 && *bps != 32) ThrowRDE("Floating point must be 16/24/32 bits per sample."); mRaw->dim.x = raw->getEntry(TiffTag::IMAGEWIDTH)->getU32(); @@ -499,7 +535,7 @@ void DngDecoder::handleMetadata(const TiffIFD* raw) { // Crop - if (const std::optional<iRectangle2D> aa = parseACTIVEAREA(raw)) + if (const Optional<iRectangle2D> aa = parseACTIVEAREA(raw)) mRaw->subFrame(*aa); if (raw->hasEntry(TiffTag::DEFAULTCROPORIGIN) && @@ -537,13 +573,8 @@ (size + cropped.pos).isThisInside(mRaw->dim)) cropped.dim = size; - if (!cropped.hasPositiveArea()) - ThrowRDE("No positive crop area"); - mRaw->subFrame(cropped); } - if (mRaw->dim.area() <= 0) - ThrowRDE("No image left after crop"); // Adapt DNG DefaultScale to aspect-ratio if (raw->hasEntry(TiffTag::DEFAULTSCALE)) { @@ -583,19 +614,6 @@ mRaw->sixteenBitLookup(); } - if (mRaw->getDataType() == RawImageType::UINT16) { - // Default white level is (2 ** BitsPerSample) - 1 - mRaw->whitePoint = (1UL << bps) - 1UL; - } else if (mRaw->getDataType() == RawImageType::F32) { - // Default white level is 1.0f. But we can't represent that here. - mRaw->whitePoint = 65535; - } - - if (raw->hasEntry(TiffTag::WHITELEVEL)) { - const TiffEntry* whitelevel = raw->getEntry(TiffTag::WHITELEVEL); - if (whitelevel->isInt()) - mRaw->whitePoint = whitelevel->getU32(); - } // Set black setBlack(raw); @@ -616,12 +634,57 @@ } mRaw->blackAreas.clear(); mRaw->blackLevel = 0; - mRaw->blackLevelSeparate[0] = mRaw->blackLevelSeparate[1] = - mRaw->blackLevelSeparate[2] = mRaw->blackLevelSeparate[3] = 0; + mRaw->blackLevelSeparate = + Array2DRef(mRaw->blackLevelSeparateStorage.data(), 2, 2); + auto blackLevelSeparate1D = *mRaw->blackLevelSeparate->getAsArray1DRef(); + std::fill(blackLevelSeparate1D.begin(), blackLevelSeparate1D.end(), 0); + // FIXME: why do we provide both the `blackLevel` and `blackLevelSeparate`? mRaw->whitePoint = 65535; } } +void DngDecoder::parseWhiteBalance() const { + // Fetch the white balance + if (mRootIFD->hasEntryRecursive(TiffTag::ASSHOTNEUTRAL)) { + const TiffEntry* as_shot_neutral = + mRootIFD->getEntryRecursive(TiffTag::ASSHOTNEUTRAL); + if (as_shot_neutral->count == 3) { + for (uint32_t i = 0; i < 3; i++) { + float c = as_shot_neutral->getFloat(i); + mRaw->metadata.wbCoeffs[i] = (c > 0.0F) ? (1.0F / c) : 0.0F; + } + } + return; + } + + if (!mRaw->metadata.colorMatrix.empty() && + mRootIFD->hasEntryRecursive(TiffTag::ASSHOTWHITEXY)) { + const TiffEntry* as_shot_white_xy = + mRootIFD->getEntryRecursive(TiffTag::ASSHOTWHITEXY); + assert(mRaw->metadata.colorMatrix.size() % 3 == 0); + const auto numColorPlanes = mRaw->metadata.colorMatrix.size() / 3; + if (numColorPlanes == 3 && as_shot_white_xy->count == 2) { + // See http://www.brucelindbloom.com/index.html?Eqn_xyY_to_XYZ.html + const float x = as_shot_white_xy->getFloat(0); + const float y = as_shot_white_xy->getFloat(1); + if (y > 0.0F) { + constexpr float Y = 1.0F; + const std::array<float, 3> as_shot_white = { + {x * Y / y, Y, (1 - x - y) * Y / y}}; + + // Convert from XYZ to camera reference values first + for (uint32_t i = 0; i < 3; i++) { + float c = + float(mRaw->metadata.colorMatrix[i * 3 + 0]) * as_shot_white[0] + + float(mRaw->metadata.colorMatrix[i * 3 + 1]) * as_shot_white[1] + + float(mRaw->metadata.colorMatrix[i * 3 + 2]) * as_shot_white[2]; + mRaw->metadata.wbCoeffs[i] = (c > 0.0F) ? (1.0F / c) : 0.0F; + } + } + } + } +} + void DngDecoder::decodeMetaDataInternal(const CameraMetaData* meta) { if (mRootIFD->hasEntryRecursive(TiffTag::ISOSPEEDRATINGS)) mRaw->metadata.isoSpeed = @@ -662,32 +725,9 @@ } } - // Fetch the white balance - if (mRootIFD->hasEntryRecursive(TiffTag::ASSHOTNEUTRAL)) { - const TiffEntry* as_shot_neutral = - mRootIFD->getEntryRecursive(TiffTag::ASSHOTNEUTRAL); - if (as_shot_neutral->count == 3) { - for (uint32_t i = 0; i < 3; i++) { - float c = as_shot_neutral->getFloat(i); - mRaw->metadata.wbCoeffs[i] = (c > 0.0F) ? (1.0F / c) : 0.0F; - } - } - } else if (mRootIFD->hasEntryRecursive(TiffTag::ASSHOTWHITEXY)) { - const TiffEntry* as_shot_white_xy = - mRootIFD->getEntryRecursive(TiffTag::ASSHOTWHITEXY); - if (as_shot_white_xy->count == 2) { - mRaw->metadata.wbCoeffs[0] = as_shot_white_xy->getFloat(0); - mRaw->metadata.wbCoeffs[1] = as_shot_white_xy->getFloat(1); - mRaw->metadata.wbCoeffs[2] = - 1 - mRaw->metadata.wbCoeffs[0] - mRaw->metadata.wbCoeffs[1]; - - const std::array<float, 3> d65_white = {{0.950456, 1, 1.088754}}; - for (uint32_t i = 0; i < 3; i++) - mRaw->metadata.wbCoeffs[i] /= d65_white[i]; - } - } - parseColorMatrix(); + + parseWhiteBalance(); } /* DNG Images are assumed to be decodable unless explicitly set so */ @@ -757,9 +797,16 @@ iPoint2D blackdim(1, 1); if (raw->hasEntry(TiffTag::BLACKLEVELREPEATDIM)) { const TiffEntry* bleveldim = raw->getEntry(TiffTag::BLACKLEVELREPEATDIM); - if (bleveldim->count != 2) + if (bleveldim->count == 2) + blackdim = iPoint2D(bleveldim->getU32(0), bleveldim->getU32(1)); + else if (bleveldim->count == 1) { + // Non-spec-compliant quirk. Assuming NxN repeat dimensions. + blackdim = iPoint2D(bleveldim->getU32(0), bleveldim->getU32(0)); + // Let's only allow somewhat unambiguous case of 1x1 repeat dimensions. + if (blackdim != iPoint2D(1, 1)) + return false; + } else return false; - blackdim = iPoint2D(bleveldim->getU32(0), bleveldim->getU32(1)); } if (!blackdim.hasPositiveArea()) @@ -775,30 +822,37 @@ if (black_entry->count < blackdim.area()) ThrowRDE("BLACKLEVEL entry is too small"); - using BlackType = decltype(mRaw->blackLevelSeparate)::value_type; + using BlackType = decltype(mRaw->blackLevelSeparateStorage)::value_type; if (blackdim.x < 2 || blackdim.y < 2) { // We so not have enough to fill all individually, read a single and copy it float value = black_entry->getFloat(); - if (value < std::numeric_limits<BlackType>::min() || - value > std::numeric_limits<BlackType>::max()) + if (static_cast<double>(value) < std::numeric_limits<BlackType>::min() || + static_cast<double>(value) > std::numeric_limits<BlackType>::max()) ThrowRDE("Error decoding black level"); + mRaw->blackLevelSeparate = + Array2DRef(mRaw->blackLevelSeparateStorage.data(), 2, 2); + auto blackLevelSeparate1D = *mRaw->blackLevelSeparate->getAsArray1DRef(); for (int y = 0; y < 2; y++) { for (int x = 0; x < 2; x++) - mRaw->blackLevelSeparate[y * 2 + x] = value; + blackLevelSeparate1D(y * 2 + x) = implicit_cast<int>(value); } } else { + mRaw->blackLevelSeparate = + Array2DRef(mRaw->blackLevelSeparateStorage.data(), 2, 2); + auto blackLevelSeparate1D = *mRaw->blackLevelSeparate->getAsArray1DRef(); for (int y = 0; y < 2; y++) { for (int x = 0; x < 2; x++) { float value = black_entry->getFloat(y * blackdim.x + x); - if (value < std::numeric_limits<BlackType>::min() || - value > std::numeric_limits<BlackType>::max()) + if (static_cast<double>(value) < + std::numeric_limits<BlackType>::min() || + static_cast<double>(value) > std::numeric_limits<BlackType>::max()) ThrowRDE("Error decoding black level"); - mRaw->blackLevelSeparate[y * 2 + x] = value; + blackLevelSeparate1D(y * 2 + x) = implicit_cast<int>(value); } } } @@ -813,15 +867,17 @@ for (int i = 0; i < mRaw->dim.y; i++) black_sum[i & 1] += blackleveldeltav->getFloat(i); + auto blackLevelSeparate1D = *mRaw->blackLevelSeparate->getAsArray1DRef(); for (int i = 0; i < 4; i++) { const float value = black_sum[i >> 1] / static_cast<float>(mRaw->dim.y) * 2.0F; - if (value < std::numeric_limits<BlackType>::min() || - value > std::numeric_limits<BlackType>::max()) + if (static_cast<double>(value) < std::numeric_limits<BlackType>::min() || + static_cast<double>(value) > std::numeric_limits<BlackType>::max()) ThrowRDE("Error decoding black level"); - if (__builtin_sadd_overflow(mRaw->blackLevelSeparate[i], value, - &mRaw->blackLevelSeparate[i])) + if (__builtin_sadd_overflow(blackLevelSeparate1D(i), + implicit_cast<int>(value), + &blackLevelSeparate1D(i))) ThrowRDE("Integer overflow when calculating black level"); } } @@ -835,15 +891,17 @@ for (int i = 0; i < mRaw->dim.x; i++) black_sum[i & 1] += blackleveldeltah->getFloat(i); + auto blackLevelSeparate1D = *mRaw->blackLevelSeparate->getAsArray1DRef(); for (int i = 0; i < 4; i++) { const float value = black_sum[i & 1] / static_cast<float>(mRaw->dim.x) * 2.0F; - if (value < std::numeric_limits<BlackType>::min() || - value > std::numeric_limits<BlackType>::max()) + if (static_cast<double>(value) < std::numeric_limits<BlackType>::min() || + static_cast<double>(value) > std::numeric_limits<BlackType>::max()) ThrowRDE("Error decoding black level"); - if (__builtin_sadd_overflow(mRaw->blackLevelSeparate[i], value, - &mRaw->blackLevelSeparate[i])) + if (__builtin_sadd_overflow(blackLevelSeparate1D(i), + implicit_cast<int>(value), + &blackLevelSeparate1D(i))) ThrowRDE("Integer overflow when calculating black level"); } } @@ -856,7 +914,11 @@ return; // Black defaults to 0 - mRaw->blackLevelSeparate.fill(0); + // FIXME: is this the right thing to do? + mRaw->blackLevelSeparate = + Array2DRef(mRaw->blackLevelSeparateStorage.data(), 2, 2); + auto blackLevelSeparate1D = *mRaw->blackLevelSeparate->getAsArray1DRef(); + std::fill(blackLevelSeparate1D.begin(), blackLevelSeparate1D.end(), 0); if (raw->hasEntry(TiffTag::BLACKLEVEL)) decodeBlackLevels(raw); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/DngDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/DngDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/DngDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/DngDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,12 +20,12 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decoders/AbstractTiffDecoder.h" // for AbstractTiffDecoder -#include "tiff/TiffIFD.h" // for TiffIFD (ptr only), TiffRo... -#include <cstdint> // for uint32_t -#include <optional> // for optional -#include <vector> // for vector +#include "adt/Optional.h" +#include "common/RawImage.h" +#include "decoders/AbstractTiffDecoder.h" +#include "tiff/TiffIFD.h" +#include <cstdint> +#include <vector> namespace rawspeed { @@ -47,9 +47,10 @@ [[nodiscard]] int getDecoderVersion() const override { return 0; } bool mFixLjpeg; static void dropUnsuportedChunks(std::vector<const TiffIFD*>* data); - std::optional<iRectangle2D> parseACTIVEAREA(const TiffIFD* raw) const; + Optional<iRectangle2D> parseACTIVEAREA(const TiffIFD* raw) const; void parseCFA(const TiffIFD* raw) const; void parseColorMatrix() const; + void parseWhiteBalance() const; DngTilingDescription getTilingDescription(const TiffIFD* raw) const; void decodeData(const TiffIFD* raw, uint32_t sample_format) const; void handleMetadata(const TiffIFD* raw); @@ -57,7 +58,7 @@ bool decodeBlackLevels(const TiffIFD* raw) const; void setBlack(const TiffIFD* raw) const; - int bps = -1; + Optional<int> bps; int compression = -1; }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/ErfDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/ErfDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/ErfDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/ErfDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,19 +20,21 @@ */ #include "decoders/ErfDecoder.h" -#include "adt/Point.h" // for iPoint2D, iRecta... -#include "common/Common.h" // for BitOrder, BitOrd... -#include "decoders/RawDecoderException.h" // for ThrowException -#include "decompressors/UncompressedDecompressor.h" // for UncompressedDeco... -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endi... -#include "tiff/TiffEntry.h" // for TiffEntry -#include "tiff/TiffIFD.h" // for TiffRootIFD, TiffID -#include "tiff/TiffTag.h" // for TiffTag, TiffTag... -#include <array> // for array -#include <memory> // for allocator, uniqu... -#include <string> // for operator==, string +#include "adt/Point.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decoders/SimpleTiffDecoder.h" +#include "decompressors/UncompressedDecompressor.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "tiff/TiffEntry.h" +#include "tiff/TiffIFD.h" +#include "tiff/TiffTag.h" +#include <array> +#include <memory> +#include <string> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/ErfDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/ErfDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/ErfDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/ErfDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,11 +21,11 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decoders/SimpleTiffDecoder.h" // for SimpleTiffDecoder -#include "io/Buffer.h" // for Buffer -#include "tiff/TiffIFD.h" // for TiffRootIFD (ptr only), Tiff... -#include <utility> // for move +#include "common/RawImage.h" +#include "decoders/SimpleTiffDecoder.h" +#include "io/Buffer.h" +#include "tiff/TiffIFD.h" +#include <utility> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/IiqDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/IiqDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/IiqDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/IiqDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -22,33 +22,37 @@ */ #include "decoders/IiqDecoder.h" -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Mutex.h" // for MutexLocker -#include "adt/Point.h" // for iPoint2D -#include "common/Spline.h" // for Spline, Spline<>::va... -#include "decoders/RawDecoder.h" // for RawDecoder::(anonymous) -#include "decoders/RawDecoderException.h" // for ThrowException, Thro... -#include "decompressors/PhaseOneDecompressor.h" // for PhaseOneStrip, Phase... -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianne... -#include "metadata/Camera.h" // for Camera -#include "metadata/CameraMetaData.h" // for CameraMetaData -#include "metadata/ColorFilterArray.h" // for ColorFilterArray -#include "tiff/TiffIFD.h" // for TiffID, TiffRootIFD -#include <algorithm> // for max, adjacent_find -#include <array> // for array, array<>::valu... -#include <cassert> // for assert -#include <cinttypes> // for PRIu64 -#include <cmath> // for lround -#include <cstdlib> // for abs -#include <functional> // for greater_equal -#include <iterator> // for advance, next, begin -#include <memory> // for unique_ptr -#include <optional> // for optional, nullopt -#include <string> // for operator==, string -#include <utility> // for move -#include <vector> // for vector, allocator +#include "adt/Array2DRef.h" +#include "adt/Casts.h" +#include "adt/Mutex.h" +#include "adt/Optional.h" +#include "adt/Point.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "common/Spline.h" +#include "decoders/RawDecoder.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/PhaseOneDecompressor.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "metadata/Camera.h" +#include "metadata/CameraMetaData.h" +#include "metadata/ColorFilterArray.h" +#include "tiff/TiffIFD.h" +#include <algorithm> +#include <array> +#include <cassert> +#include <cinttypes> +#include <cmath> +#include <cstdint> +#include <cstdlib> +#include <functional> +#include <iterator> +#include <memory> +#include <string> +#include <utility> +#include <vector> namespace rawspeed { @@ -123,24 +127,26 @@ }; -std::optional<IIQFormat> getAsIIQFormat(uint32_t v) { +Optional<IIQFormat> getAsIIQFormat(uint32_t v) { switch (v) { + using enum IIQFormat; case 1: - return IIQFormat::RAW_1; + return RAW_1; case 2: - return IIQFormat::RAW_2; + return RAW_2; case 3: - return IIQFormat::IIQ_L; + return IIQ_L; case 5: - return IIQFormat::IIQ_S; + return IIQ_S; case 6: - return IIQFormat::IIQ_Sv2; + return IIQ_Sv2; case 8: - return IIQFormat::IIQ_L16; + return IIQ_L16; default: return std::nullopt; } } + } // namespace enum class IiqDecoder::IiqCorr { LUMA, CHROMA }; @@ -172,8 +178,8 @@ uint32_t split_row = 0; uint32_t split_col = 0; - std::optional<IIQFormat> format; - Buffer raw_data; + Optional<IIQFormat> format; + Optional<Buffer> raw_data; ByteStream block_offsets; ByteStream wb; ByteStream correction_meta_data; @@ -234,6 +240,9 @@ if (!format) ThrowRDE("Unspecified RawFormat"); + if (!raw_data) + ThrowRDE("No raw data found"); + if (split_col > width || split_row > height) ThrowRDE("Invalid sensor quadrant split values (%u, %u)", split_row, split_col); @@ -248,10 +257,10 @@ // to simplify slice size calculation, we insert a dummy offset, // which will be used much like end() - offsets.emplace_back(height, raw_data.getSize()); + offsets.emplace_back(height, raw_data->getSize()); std::vector<PhaseOneStrip> strips( - computeSripes(raw_data, std::move(offsets), height)); + computeSripes(*raw_data, std::move(offsets), height)); mRaw->dim = iPoint2D(width, height); @@ -269,7 +278,7 @@ } void IiqDecoder::CorrectPhaseOneC(ByteStream meta_data, uint32_t split_row, - uint32_t split_col) { + uint32_t split_col) const { meta_data.skipBytes(8); const uint32_t bytes_to_entries = meta_data.getU32(); meta_data.setPosition(bytes_to_entries); @@ -371,9 +380,9 @@ const std::vector<uint16_t> curve = s.calculateCurve(); int row_start = quadRow == 0 ? 0 : split_row; - int row_end = quadRow == 0 ? split_row : img.height; + int row_end = quadRow == 0 ? split_row : img.height(); int col_start = quadCol == 0 ? 0 : split_col; - int col_end = quadCol == 0 ? split_col : img.width; + int col_end = quadCol == 0 ? split_col : img.width(); for (int row = row_start; row < row_end; row++) { for (int col = col_start; col < col_end; col++) { @@ -385,7 +394,9 @@ // appropriate amount before indexing into the curve and // then add it back so that subtracting the black level // later will work as expected - const uint16_t diff = pixel < black_level ? pixel : black_level; + const uint16_t diff = pixel < black_level + ? pixel + : implicit_cast<uint16_t>(black_level); pixel = curve[pixel - diff] + diff; } } @@ -399,17 +410,15 @@ void IiqDecoder::PhaseOneFlatField(ByteStream data, IiqCorr corr) const { const Array2DRef<uint16_t> img(mRaw->getU16DataAsUncroppedArray2DRef()); - int nc; - switch (corr) { - case IiqCorr::LUMA: - nc = 2; - break; - case IiqCorr::CHROMA: - nc = 4; - break; - default: + int nc = [corr]() { + switch (corr) { + case IiqCorr::LUMA: + return 2; + case IiqCorr::CHROMA: + return 4; + } ThrowRDE("Unsupported IIQ correction"); - } + }(); std::array<uint16_t, 8> head; for (int i = 0; i < 8; i++) @@ -418,8 +427,8 @@ if (head[2] == 0 || head[3] == 0 || head[4] == 0 || head[5] == 0) return; - int wide = roundUpDivision(head[2], head[4]); - int high = roundUpDivision(head[3], head[5]); + auto wide = implicit_cast<int>(roundUpDivision(head[2], head[4])); + auto high = implicit_cast<int>(roundUpDivision(head[3], head[5])); std::vector<float> mrow_storage; Array2DRef<float> mrow = Array2DRef<float>::create( @@ -429,7 +438,7 @@ for (int y = 0; y < high; y++) { for (int x = 0; x < wide; x++) { for (int c = 0; c < nc; c += 2) { - float num = data.getU16() / 32768.0; + float num = data.getU16() / 32768.0F; if (y == 0) mrow(x, c) = num; else @@ -455,8 +464,8 @@ nc > 2 ? static_cast<unsigned>(mRaw->cfa.getColorAt(row, col)) : 0; !(c & 1)) { - unsigned val = img(row, col) * mult[c]; - img(row, col) = std::min(val, 0xFFFFU); + auto val = implicit_cast<unsigned>(img(row, col) * mult[c]); + img(row, col) = implicit_cast<uint16_t>(std::min(val, 0xFFFFU)); } for (int c = 0; c < nc; c += 2) mult[c] += mult[c + 1]; @@ -544,7 +553,7 @@ } const int three_pixels = sum - val[max]; // This is `std::lround(three_pixels / 3.0)`, but without FP. - img(row, col) = (three_pixels + 1) / 3; + img(row, col) = implicit_cast<uint16_t>((three_pixels + 1) / 3); } else { /* * Do non-green pixels. Let's pretend we are in "R" pixel, in the middle: @@ -560,7 +569,8 @@ img(row + 2, col + 2) + img(row - 2, col + 2); uint32_t horiz = img(row, col - 2) + img(row, col + 2); // But this is not just averaging, we bias towards the horizontal pixels. - img(row, col) = std::lround(diags * 0.0732233 + horiz * 0.3535534); + img(row, col) = implicit_cast<uint16_t>( + std::lround(diags * 0.0732233 + horiz * 0.3535534)); } } } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/IiqDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/IiqDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/IiqDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/IiqDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,13 +21,13 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decoders/AbstractTiffDecoder.h" // for AbstractTiffDecoder -#include "io/Buffer.h" // for Buffer -#include "tiff/TiffIFD.h" // for TiffRootIFD (ptr only) -#include <cstdint> // for uint32_t, uint16_t -#include <utility> // for move -#include <vector> // for vector +#include "common/RawImage.h" +#include "decoders/AbstractTiffDecoder.h" +#include "io/Buffer.h" +#include "tiff/TiffIFD.h" +#include <cstdint> +#include <utility> +#include <vector> namespace rawspeed { @@ -37,7 +37,7 @@ struct PhaseOneStrip; class IiqDecoder final : public AbstractTiffDecoder { - struct IiqOffset { + struct IiqOffset final { uint32_t n; uint32_t offset; @@ -64,7 +64,7 @@ [[nodiscard]] int getDecoderVersion() const override { return 0; } uint32_t black_level = 0; void CorrectPhaseOneC(ByteStream meta_data, uint32_t split_row, - uint32_t split_col); + uint32_t split_col) const; void CorrectQuadrantMultipliersCombined(ByteStream data, uint32_t split_row, uint32_t split_col) const; enum class IiqCorr; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/KdcDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/KdcDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/KdcDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/KdcDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,25 +20,27 @@ */ #include "decoders/KdcDecoder.h" -#include "adt/NORangesSet.h" // for NORangesSet -#include "adt/Point.h" // for iPoint2D, iRecta... -#include "common/Common.h" // for BitOrder, BitOrd... -#include "decoders/RawDecoderException.h" // for ThrowRDE -#include "decompressors/UncompressedDecompressor.h" // for UncompressedDeco... -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endi... -#include "metadata/Camera.h" // for Hints -#include "parsers/TiffParserException.h" // for ThrowException -#include "tiff/TiffEntry.h" // for TiffEntry -#include "tiff/TiffIFD.h" // for TiffRootIFD, TiffID -#include "tiff/TiffTag.h" // for TiffTag, TiffTag... -#include <array> // for array -#include <cassert> // for assert -#include <cstdint> // for uint32_t, uint64_t -#include <limits> // for numeric_limits -#include <memory> // for unique_ptr, allo... -#include <string> // for operator==, string +#include "adt/Casts.h" +#include "adt/NORangesSet.h" +#include "adt/Point.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/UncompressedDecompressor.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "metadata/Camera.h" +#include "parsers/TiffParserException.h" +#include "tiff/TiffEntry.h" +#include "tiff/TiffIFD.h" +#include "tiff/TiffTag.h" +#include <array> +#include <cassert> +#include <cstdint> +#include <limits> +#include <memory> +#include <string> namespace rawspeed { @@ -64,10 +66,10 @@ ThrowRDE("Offset is too large."); // Offset hardcoding gotten from dcraw - if (hints.has("easyshare_offset_hack")) + if (hints.contains("easyshare_offset_hack")) off = off < 0x15000 ? 0x15000 : 0x17000; - return mFile.getSubView(off); + return mFile.getSubView(implicit_cast<Buffer::size_type>(off)); } RawImage KdcDecoder::decodeRawInternal() { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/KdcDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/KdcDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/KdcDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/KdcDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,11 +21,11 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decoders/AbstractTiffDecoder.h" // for AbstractTiffDecoder -#include "io/Buffer.h" // for Buffer -#include "tiff/TiffIFD.h" // for TiffRootIFD (ptr only) -#include <utility> // for move +#include "common/RawImage.h" +#include "decoders/AbstractTiffDecoder.h" +#include "io/Buffer.h" +#include "tiff/TiffIFD.h" +#include <utility> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/MefDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/MefDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/MefDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/MefDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,14 +20,17 @@ */ #include "decoders/MefDecoder.h" -#include "adt/Point.h" // for iPoint2D, iRecta... -#include "common/Common.h" // for BitOrder, BitOrd... -#include "decoders/RawDecoderException.h" // for ThrowException -#include "decompressors/UncompressedDecompressor.h" // for UncompressedDeco... -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endi... -#include <string> // for allocator, opera... +#include "adt/Point.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decoders/SimpleTiffDecoder.h" +#include "decompressors/UncompressedDecompressor.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "tiff/TiffIFD.h" +#include <string> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/MefDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/MefDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/MefDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/MefDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,11 +21,11 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decoders/SimpleTiffDecoder.h" // for SimpleTiffDecoder -#include "io/Buffer.h" // for Buffer -#include "tiff/TiffIFD.h" // for TiffRootIFD (ptr only), Tiff... -#include <utility> // for move +#include "common/RawImage.h" +#include "decoders/SimpleTiffDecoder.h" +#include "io/Buffer.h" +#include "tiff/TiffIFD.h" +#include <utility> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/MosDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/MosDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/MosDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/MosDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,27 +20,32 @@ */ #include "decoders/MosDecoder.h" -#include "adt/Point.h" // for iPoint2D -#include "common/Common.h" // for trimSpaces -#include "decoders/IiqDecoder.h" // for IiqDecoder -#include "decoders/RawDecoder.h" // for RawDecoder -#include "decoders/RawDecoderException.h" // for ThrowRDE -#include "decompressors/UncompressedDecompressor.h" // for UncompressedDeco... -#include "io/Buffer.h" // for DataBuffer, Buffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endi... -#include "parsers/TiffParserException.h" // for ThrowException -#include "tiff/TiffEntry.h" // for TiffEntry -#include "tiff/TiffIFD.h" // for TiffRootIFD, Tif... -#include "tiff/TiffTag.h" // for TiffTag, TiffTag... -#include <array> // for array -#include <cassert> // for assert -#include <cstdint> // for uint32_t -#include <cstring> // for memchr -#include <istream> // for istringstream -#include <memory> // for unique_ptr -#include <string> // for string, allocator -#include <utility> // for move +#include "adt/Casts.h" +#include "adt/Point.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/AbstractTiffDecoder.h" +#include "decoders/IiqDecoder.h" +#include "decoders/RawDecoder.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/UncompressedDecompressor.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "parsers/TiffParserException.h" +#include "tiff/TiffEntry.h" +#include "tiff/TiffIFD.h" +#include "tiff/TiffTag.h" +#include <array> +#include <cassert> +#include <cstdint> +#include <cstring> +#include <istream> +#include <memory> +#include <sstream> +#include <string> +#include <string_view> +#include <utility> namespace rawspeed { @@ -90,7 +95,7 @@ std::string::size_type end = xmp.find("</tiff:" + std::string(tag) + ">"); if (start == std::string::npos || end == std::string::npos || end <= start) ThrowRDE("Couldn't find tag '%s' in the XMP", tag.data()); - int startlen = tag.size() + 7; + auto startlen = implicit_cast<int>(tag.size() + 7); return std::string(xmp.substr(start + startlen, end - start - startlen)); } @@ -158,7 +163,7 @@ // dcraw does actual parsing, since we just want one field we bruteforce it while (bs.getRemainSize() > minSize) { - if (bs.skipPrefix("NeutObj_neutrals", 16)) { + if (bs.skipPrefix("NeutObj_neutrals")) { bs.skipBytes(28); // check for nulltermination of string inside bounds if (!memchr(bs.peekData(bs.getRemainSize()), 0, bs.getRemainSize())) @@ -169,9 +174,12 @@ iss >> tmp[0] >> tmp[1] >> tmp[2] >> tmp[3]; if (!iss.fail() && tmp[0] > 0 && tmp[1] > 0 && tmp[2] > 0 && tmp[3] > 0) { - mRaw->metadata.wbCoeffs[0] = static_cast<float>(tmp[0]) / tmp[1]; - mRaw->metadata.wbCoeffs[1] = static_cast<float>(tmp[0]) / tmp[2]; - mRaw->metadata.wbCoeffs[2] = static_cast<float>(tmp[0]) / tmp[3]; + mRaw->metadata.wbCoeffs[0] = + static_cast<float>(tmp[0]) / implicit_cast<float>(tmp[1]); + mRaw->metadata.wbCoeffs[1] = + static_cast<float>(tmp[0]) / implicit_cast<float>(tmp[2]); + mRaw->metadata.wbCoeffs[2] = + static_cast<float>(tmp[0]) / implicit_cast<float>(tmp[3]); } break; } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/MosDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/MosDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/MosDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/MosDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,11 +21,11 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decoders/AbstractTiffDecoder.h" // for AbstractTiffDecoder -#include "tiff/TiffIFD.h" // for TiffRootIFD (ptr only) -#include <string> // for string -#include <string_view> // for string_view +#include "common/RawImage.h" +#include "decoders/AbstractTiffDecoder.h" +#include "tiff/TiffIFD.h" +#include <string> +#include <string_view> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/MrwDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/MrwDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/MrwDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/MrwDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -21,19 +21,22 @@ */ #include "decoders/MrwDecoder.h" -#include "adt/Point.h" // for iPoint2D, iRecta... -#include "common/Common.h" // for BitOrder, BitOrd... -#include "decoders/RawDecoderException.h" // for ThrowException -#include "decompressors/UncompressedDecompressor.h" // for UncompressedDeco... -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endi... -#include "metadata/Camera.h" // for Hints -#include "parsers/TiffParser.h" // for TiffParser -#include "tiff/TiffIFD.h" // for TiffRootIFDOwner -#include <cassert> // for assert -#include <cstring> // for memcmp -#include <memory> // for allocator, uniqu... +#include "adt/Point.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/UncompressedDecompressor.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "metadata/Camera.h" +#include "parsers/TiffParser.h" +#include "tiff/TiffIFD.h" +#include <array> +#include <cassert> +#include <cstdint> +#include <cstring> +#include <memory> namespace rawspeed { @@ -43,8 +46,8 @@ int MrwDecoder::isMRW(Buffer input) { static const std::array<char, 4> magic = {{0x00, 'M', 'R', 'M'}}; - const unsigned char* data = input.getData(0, magic.size()); - return 0 == memcmp(data, magic.data(), magic.size()); + const Buffer data = input.getSubView(0, magic.size()); + return 0 == memcmp(data.begin(), magic.data(), magic.size()); } void MrwDecoder::parseHeader() { @@ -193,7 +196,7 @@ auto id = rootIFD->getID(); setMetaData(meta, id.make, id.model, "", iso); - if (hints.has("swapped_wb")) { + if (hints.contains("swapped_wb")) { mRaw->metadata.wbCoeffs[0] = wb_coeffs[2]; mRaw->metadata.wbCoeffs[1] = wb_coeffs[0]; mRaw->metadata.wbCoeffs[2] = wb_coeffs[1]; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/MrwDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/MrwDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/MrwDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/MrwDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,13 +21,13 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decoders/RawDecoder.h" // for RawDecoder -#include "io/Buffer.h" // for Buffer -#include "tiff/TiffIFD.h" // for TiffRootIFDOwner -#include <array> // for array -#include <cmath> // for NAN -#include <cstdint> // for uint32_t +#include "common/RawImage.h" +#include "decoders/RawDecoder.h" +#include "io/Buffer.h" +#include "tiff/TiffIFD.h" +#include <array> +#include <cmath> +#include <cstdint> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/NakedDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/NakedDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/NakedDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/NakedDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,18 +20,20 @@ */ #include "decoders/NakedDecoder.h" -#include "adt/Point.h" // for iPoint2D -#include "common/Common.h" // for BitOrder, BitOrd... -#include "decoders/RawDecoderException.h" // for ThrowException -#include "decompressors/UncompressedDecompressor.h" // for UncompressedDeco... -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endi... -#include "metadata/Camera.h" // for Camera, Hints -#include <map> // for map -#include <optional> // for optional, nullopt -#include <string> // for string, char_traits -#include <string_view> // for operator==, basi... +#include "adt/Optional.h" +#include "adt/Point.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoder.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/UncompressedDecompressor.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "metadata/Camera.h" +#include <map> +#include <string> +#include <string_view> using std::map; @@ -42,25 +44,30 @@ NakedDecoder::NakedDecoder(Buffer file, const Camera* c) : RawDecoder(file), cam(c) {} -static std::optional<BitOrder> getAsBitOrder(std::string_view s) { +namespace { + +Optional<BitOrder> getAsBitOrder(std::string_view s) { + using enum BitOrder; if (s == "plain") - return BitOrder::LSB; + return LSB; if (s == "jpeg") - return BitOrder::MSB; + return MSB; if (s == "jpeg16") - return BitOrder::MSB16; + return MSB16; if (s == "jpeg32") - return BitOrder::MSB32; + return MSB32; return std::nullopt; } +} // namespace + void NakedDecoder::parseHints() { const auto& cHints = cam->hints; const auto& make = cam->make.c_str(); const auto& model = cam->model.c_str(); auto parseHint = [&cHints, &make, &model](const std::string& name) { - if (!cHints.has(name)) + if (!cHints.contains(name)) ThrowRDE("%s %s: couldn't find %s", make, model, name.c_str()); return cHints.get(name, 0U); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/NakedDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/NakedDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/NakedDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/NakedDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,13 +21,10 @@ #pragma once -#include "common/Common.h" // for BitOrder, BitOrder::MSB16 -#include "common/RawImage.h" // for RawImage -#include "decoders/RawDecoder.h" // for RawDecoder -#include <cstdint> // for uint32_t -#include <functional> // for less -#include <map> // for map -#include <string> // for string +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoder.h" +#include <cstdint> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/NefDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/NefDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/NefDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/NefDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,31 +20,37 @@ */ #include "decoders/NefDecoder.h" -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Point.h" // for iPoint2D -#include "common/Common.h" // for clampBits, round... -#include "decoders/RawDecoderException.h" // for ThrowRDE -#include "decompressors/NikonDecompressor.h" // for NikonDecompressor -#include "decompressors/UncompressedDecompressor.h" // for UncompressedDeco... -#include "io/BitPumpMSB.h" // for BitPumpMSB -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for getU16BE, Endian... -#include "io/IOException.h" // for ThrowException -#include "metadata/Camera.h" // for Hints -#include "metadata/CameraMetaData.h" // for CameraMetaData -#include "metadata/ColorFilterArray.h" // for CFAColor, CFACol... -#include "tiff/TiffEntry.h" // for TiffEntry, TiffD... -#include "tiff/TiffIFD.h" // for TiffRootIFD, Tif... -#include "tiff/TiffTag.h" // for TiffTag, TiffTag... -#include <algorithm> // for min, max -#include <cassert> // for assert -#include <cmath> // for pow, exp, log -#include <memory> // for unique_ptr, allo... -#include <sstream> // for operator<<, basi... -#include <string> // for string, basic_st... -#include <vector> // for vector -// IWYU pragma: no_include <ext/alloc_traits.h> +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Bit.h" +#include "adt/Casts.h" +#include "adt/Point.h" +#include "bitstreams/BitStreamerMSB.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/NikonDecompressor.h" +#include "decompressors/UncompressedDecompressor.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "io/IOException.h" +#include "metadata/Camera.h" +#include "metadata/CameraMetaData.h" +#include "metadata/ColorFilterArray.h" +#include "tiff/TiffEntry.h" +#include "tiff/TiffIFD.h" +#include "tiff/TiffTag.h" +#include <algorithm> +#include <array> +#include <cassert> +#include <cmath> +#include <cstddef> +#include <cstdint> +#include <memory> +#include <sstream> +#include <string> +#include <vector> using std::vector; @@ -80,7 +86,7 @@ } } - if (compression == 1 || (hints.has("force_uncompressed")) || + if (compression == 1 || (hints.contains("force_uncompressed")) || NEFIsUncompressed(raw)) { DecodeUncompressed(); return mRaw; @@ -111,22 +117,21 @@ mRaw->dim = iPoint2D(width, height); - raw = mRootIFD->getIFDWithTag(static_cast<TiffTag>(0x8c)); - - const TiffEntry* meta; - if (raw->hasEntry(static_cast<TiffTag>(0x96))) { - meta = raw->getEntry(static_cast<TiffTag>(0x96)); - } else { - meta = raw->getEntry(static_cast<TiffTag>(0x8c)); // Fall back + const TiffEntry* meta = + mRootIFD->getEntryRecursive(static_cast<TiffTag>(0x96)); + if (!meta) { + meta = mRootIFD->getEntryRecursive(static_cast<TiffTag>(0x8c)); // Fall back + if (!meta) { + ThrowRDE("Missing linearization table."); + } } - ByteStream rawData( - DataBuffer(mFile.getSubView(offsets->getU32(), counts->getU32()), - Endianness::little)); + const auto input = + mFile.getSubView(offsets->getU32(), counts->getU32()).getAsArray1DRef(); NikonDecompressor n(mRaw, meta->getData(), bitPerPixel); mRaw->createData(); - n.decompress(rawData, uncorrectedRawValues); + n.decompress(input, uncorrectedRawValues); return mRaw; } @@ -137,7 +142,7 @@ that tags all images as "compressed". */ bool NefDecoder::D100IsCompressed(uint32_t offset) const { - const uint8_t* test = mFile.getData(offset, 256); + const auto test = mFile.getSubView(offset, 256); for (int i = 15; i < 256; i += 16) if (test[i]) return true; @@ -281,19 +286,19 @@ iPoint2D size(width, slice.h); iPoint2D pos(0, offY); - if (hints.has("coolpixmangled")) { + if (hints.contains("coolpixmangled")) { UncompressedDecompressor u(in, mRaw, iRectangle2D(pos, size), width * bitPerPixel / 8, 12, BitOrder::MSB32); u.readUncompressedRaw(); } else { - if (hints.has("coolpixsplit")) { + if (hints.contains("coolpixsplit")) { readCoolpixSplitRaw(in, size, pos, width * bitPerPixel / 8); } else { if (in.getSize() % size.y != 0) ThrowRDE("Inconsistent row size"); const auto inputPitchBytes = in.getSize() / size.y; BitOrder bo = (mRootIFD->rootBuffer.getByteOrder() == Endianness::big) ^ - hints.has("msb_override") + hints.contains("msb_override") ? BitOrder::MSB : BitOrder::LSB; UncompressedDecompressor u(in, mRaw, iRectangle2D(pos, size), @@ -318,10 +323,10 @@ if (inputPitch != ((3 * size.x) / 2)) ThrowRDE("Unexpected input pitch"); - // BitPumpMSB loads exactly 4 bytes at once, and we squeeze 12 bits each time. - // We produce 2 pixels per 3 bytes (24 bits). If we want to be smart and to - // know where the first input bit for first odd row is, the input slice width - // must be a multiple of 8 pixels. + // BitStreamerMSB loads exactly 4 bytes at once, and we squeeze 12 bits each + // time. We produce 2 pixels per 3 bytes (24 bits). If we want to be smart and + // to know where the first input bit for first odd row is, the input slice + // width must be a multiple of 8 pixels. if (offset.x > mRaw->dim.x || offset.y > mRaw->dim.y) ThrowRDE("All pixels outside of image"); @@ -330,14 +335,21 @@ // The input bytes are laid out in the memory in the following way: // First, all even (0-2-4-) rows, and then all odd (1-3-5-) rows. - BitPumpMSB even(input.getStream(size.y / 2, inputPitch)); - BitPumpMSB odd(input.getStream(size.y / 2, inputPitch)); + const auto evenLinesInput = input.getStream(size.y / 2, inputPitch) + .peekRemainingBuffer() + .getAsArray1DRef(); + const auto oddLinesInput = input.getStream(size.y / 2, inputPitch) + .peekRemainingBuffer() + .getAsArray1DRef(); + + BitStreamerMSB even(evenLinesInput); + BitStreamerMSB odd(oddLinesInput); for (int row = offset.y; row < size.y;) { for (int col = offset.x; col < size.x; ++col) - img(row, col) = even.getBits(12); + img(row, col) = implicit_cast<uint16_t>(even.getBits(12)); ++row; for (int col = offset.x; col < size.x; ++col) - img(row, col) = odd.getBits(12); + img(row, col) = implicit_cast<uint16_t>(odd.getBits(12)); ++row; } assert(even.getRemainingSize() == 0 && odd.getRemainingSize() == 0 && @@ -478,17 +490,7 @@ 0xc6, 0x67, 0x4a, 0xf5, 0xa5, 0x12, 0x65, 0x7e, 0xb0, 0xdf, 0xaf, 0x4e, 0xb3, 0x61, 0x7f, 0x2f}}; -void NefDecoder::decodeMetaDataInternal(const CameraMetaData* meta) { - int iso = 0; - mRaw->cfa.setCFA(iPoint2D(2, 2), CFAColor::RED, CFAColor::GREEN, - CFAColor::GREEN, CFAColor::BLUE); - - int white = mRaw->whitePoint; - int black = mRaw->blackLevel; - - if (mRootIFD->hasEntryRecursive(TiffTag::ISOSPEEDRATINGS)) - iso = mRootIFD->getEntryRecursive(TiffTag::ISOSPEEDRATINGS)->getU32(); - +void NefDecoder::parseWhiteBalance() const { // Read the whitebalance if (mRootIFD->hasEntryRecursive(static_cast<TiffTag>(12))) { @@ -543,7 +545,7 @@ // Get the decryption key const TiffEntry* key = mRootIFD->getEntryRecursive(static_cast<TiffTag>(0x00a7)); - const uint8_t* keydata = key->getData().getData(4); + const auto keydata = key->getData().getBuffer(4); uint32_t keyno = keydata[0] ^ keydata[1] ^ keydata[2] ^ keydata[3]; // "Decrypt" the block using the serial and key @@ -564,11 +566,11 @@ // Finally set the WB coeffs uint32_t off = (version == 0x204) ? 6 : 14; mRaw->metadata.wbCoeffs[0] = - static_cast<float>(getU16BE(buf.data() + off + 0)); + static_cast<float>(getU16BE(&buf[off + 0])); mRaw->metadata.wbCoeffs[1] = - static_cast<float>(getU16BE(buf.data() + off + 2)); + static_cast<float>(getU16BE(&buf[off + 2])); mRaw->metadata.wbCoeffs[2] = - static_cast<float>(getU16BE(buf.data() + off + 6)); + static_cast<float>(getU16BE(&buf[off + 6])); } } } else if (mRootIFD->hasEntryRecursive(static_cast<TiffTag>(0x0014))) { @@ -578,12 +580,12 @@ if (wb->count == 2560 && wb->type == TiffDataType::UNDEFINED) { bs.skipBytes(1248); bs.setByteOrder(Endianness::big); - mRaw->metadata.wbCoeffs[0] = static_cast<float>(bs.getU16()) / 256.0; + mRaw->metadata.wbCoeffs[0] = static_cast<float>(bs.getU16()) / 256.0F; mRaw->metadata.wbCoeffs[1] = 1.0F; - mRaw->metadata.wbCoeffs[2] = static_cast<float>(bs.getU16()) / 256.0; - } else if (bs.hasPatternAt("NRW ", 4, 0)) { + mRaw->metadata.wbCoeffs[2] = static_cast<float>(bs.getU16()) / 256.0F; + } else if (bs.hasPatternAt("NRW ", 0)) { uint32_t offset = 0; - if (!bs.hasPatternAt("0100", 4, 4) && wb->count > 72) + if (!bs.hasPatternAt("0100", 4) && wb->count > 72) offset = 56; else if (wb->count > 1572) offset = 1556; @@ -591,18 +593,32 @@ if (offset) { bs.skipBytes(offset); bs.setByteOrder(Endianness::little); - mRaw->metadata.wbCoeffs[0] = 4.0 * bs.getU32(); - mRaw->metadata.wbCoeffs[1] = bs.getU32(); - mRaw->metadata.wbCoeffs[1] += bs.getU32(); - mRaw->metadata.wbCoeffs[2] = 4.0 * bs.getU32(); + mRaw->metadata.wbCoeffs[0] = 4.0F * implicit_cast<float>(bs.getU32()); + mRaw->metadata.wbCoeffs[1] = implicit_cast<float>(bs.getU32()); + mRaw->metadata.wbCoeffs[1] += implicit_cast<float>(bs.getU32()); + mRaw->metadata.wbCoeffs[2] = 4.0F * implicit_cast<float>(bs.getU32()); } } } - if (hints.has("nikon_wb_adjustment")) { - mRaw->metadata.wbCoeffs[0] *= 256 / 527.0; - mRaw->metadata.wbCoeffs[2] *= 256 / 317.0; + if (hints.contains("nikon_wb_adjustment")) { + mRaw->metadata.wbCoeffs[0] *= 256.0F / 527.0F; + mRaw->metadata.wbCoeffs[2] *= 256.0F / 317.0F; } +} + +void NefDecoder::decodeMetaDataInternal(const CameraMetaData* meta) { + int iso = 0; + mRaw->cfa.setCFA(iPoint2D(2, 2), CFAColor::RED, CFAColor::GREEN, + CFAColor::GREEN, CFAColor::BLUE); + + auto makernotesWhite = mRaw->whitePoint; + int makernotesBlack = mRaw->blackLevel; + + if (mRootIFD->hasEntryRecursive(TiffTag::ISOSPEEDRATINGS)) + iso = mRootIFD->getEntryRecursive(TiffTag::ISOSPEEDRATINGS)->getU32(); + + parseWhiteBalance(); auto id = mRootIFD->getID(); std::string mode = getMode(); @@ -618,10 +634,13 @@ if (bitPerPixel != 12 && bitPerPixel != 14) ThrowRDE("Bad bit per pixel: %i", bitPerPixel); const int sh = 14 - bitPerPixel; - mRaw->blackLevelSeparate[0] = bl->getU16(0) >> sh; - mRaw->blackLevelSeparate[1] = bl->getU16(1) >> sh; - mRaw->blackLevelSeparate[2] = bl->getU16(2) >> sh; - mRaw->blackLevelSeparate[3] = bl->getU16(3) >> sh; + mRaw->blackLevelSeparate = + Array2DRef(mRaw->blackLevelSeparateStorage.data(), 2, 2); + auto blackLevelSeparate1D = *mRaw->blackLevelSeparate->getAsArray1DRef(); + blackLevelSeparate1D(0) = bl->getU16(0) >> sh; + blackLevelSeparate1D(1) = bl->getU16(1) >> sh; + blackLevelSeparate1D(2) = bl->getU16(2) >> sh; + blackLevelSeparate1D(3) = bl->getU16(3) >> sh; } if (meta->hasCamera(id.make, id.model, extended_mode)) { @@ -632,10 +651,10 @@ setMetaData(meta, id, "", iso); } - if (white != 65536) - mRaw->whitePoint = white; - if (black != -1) - mRaw->blackLevel = black; + if (makernotesWhite) + mRaw->whitePoint = *makernotesWhite; + if (makernotesBlack != -1) + mRaw->blackLevel = makernotesBlack; } // DecodeNikonYUY2 decodes 12 bit data in an YUY2-like pattern (2 Luma, 1 Chroma @@ -660,18 +679,20 @@ float wb_b = wb->getFloat(1); // ((1024/x)*((1<<16)-1)+(1<<9))<=((1<<31)-1), x>0 gives: (0.0312495) - if (const float lower_limit = 13'421'568.0 / 429'496'627.0; + if (const auto lower_limit = + implicit_cast<float>(13'421'568.0 / 429'496'627.0); wb_r < lower_limit || wb_b < lower_limit || wb_r > 10.0F || wb_b > 10.0F) - ThrowRDE("Whitebalance has bad values (%f, %f)", wb_r, wb_b); + ThrowRDE("Whitebalance has bad values (%f, %f)", + implicit_cast<double>(wb_r), implicit_cast<double>(wb_b)); mRaw->metadata.wbCoeffs[0] = wb_r; mRaw->metadata.wbCoeffs[1] = 1.0F; mRaw->metadata.wbCoeffs[2] = wb_b; - auto inv_wb_r = static_cast<int>(1024.0 / wb_r); - auto inv_wb_b = static_cast<int>(1024.0 / wb_b); + auto inv_wb_r = static_cast<int>(1024.0F / wb_r); + auto inv_wb_b = static_cast<int>(1024.0F / wb_b); - auto curve = gammaCurve(1 / 2.4, 12.92, 1, 4095); + auto curve = gammaCurve(1 / 2.4, 12.92, 4095); // Scale output values to 16 bits. for (int i = 0; i < 4096; i++) { @@ -683,22 +704,22 @@ RawImageCurveGuard curveHandler(&mRaw, curve, false); uint16_t tmp; - auto* tmpch = reinterpret_cast<uint8_t*>(&tmp); + auto* tmpch = reinterpret_cast<std::byte*>(&tmp); const Array2DRef<uint16_t> out(mRaw->getU16DataAsUncroppedArray2DRef()); - const uint8_t* in = input.peekData(out.width * out.height); + const auto in = Array2DRef(input.peekData(out.width() * out.height()), + out.width(), out.height()); - for (int row = 0; row < out.height; row++) { - uint32_t random = in[0] + (in[1] << 8) + (in[2] << 16); - for (int col = 0; col < out.width; col += 6) { - uint32_t g1 = in[0]; - uint32_t g2 = in[1]; - uint32_t g3 = in[2]; - uint32_t g4 = in[3]; - uint32_t g5 = in[4]; - uint32_t g6 = in[5]; + for (int row = 0; row < out.height(); row++) { + uint32_t random = in(row, 0) + (in(row, 1) << 8) + (in(row, 2) << 16); + for (int col = 0; col < out.width(); col += 6) { + uint32_t g1 = in(row, col + 0); + uint32_t g2 = in(row, col + 1); + uint32_t g3 = in(row, col + 2); + uint32_t g4 = in(row, col + 3); + uint32_t g5 = in(row, col + 4); + uint32_t g6 = in(row, col + 5); - in += 6; auto y1 = static_cast<float>(g1 | ((g2 & 0x0f) << 8)); auto y2 = static_cast<float>((g2 >> 4) | (g3 << 4)); auto cb = static_cast<float>(g4 | ((g5 & 0x0f) << 8)); @@ -708,10 +729,10 @@ float cr2 = cr; // Interpolate right pixel. We assume the sample is aligned with left // pixel. - if ((col + 6) < out.width) { - g4 = in[3]; - g5 = in[4]; - g6 = in[5]; + if ((col + 6) < out.width()) { + g4 = in(row, col + 6 + 3); + g5 = in(row, col + 6 + 4); + g6 = in(row, col + 6 + 5); cb2 = (static_cast<float>((g4 | ((g5 & 0x0f) << 8))) + cb) * 0.5F; cr2 = (static_cast<float>(((g5 >> 4) | (g6 << 4))) + cr) * 0.5F; } @@ -721,28 +742,46 @@ cb2 -= 2048; cr2 -= 2048; - mRaw->setWithLookUp(clampBits(static_cast<int>(y1 + 1.370705 * cr), 12), - tmpch, &random); + mRaw->setWithLookUp( + clampBits(static_cast<int>(implicit_cast<double>(y1) + + 1.370705 * implicit_cast<double>(cr)), + 12), + tmpch, &random); out(row, col) = clampBits((inv_wb_r * tmp + (1 << 9)) >> 10, 15); mRaw->setWithLookUp( - clampBits(static_cast<int>(y1 - 0.337633 * cb - 0.698001 * cr), 12), - reinterpret_cast<uint8_t*>(&out(row, col + 1)), &random); + clampBits(static_cast<int>(implicit_cast<double>(y1) - + 0.337633 * implicit_cast<double>(cb) - + 0.698001 * implicit_cast<double>(cr)), + 12), + reinterpret_cast<std::byte*>(&out(row, col + 1)), &random); - mRaw->setWithLookUp(clampBits(static_cast<int>(y1 + 1.732446 * cb), 12), - tmpch, &random); + mRaw->setWithLookUp( + clampBits(static_cast<int>(implicit_cast<double>(y1) + + 1.732446 * implicit_cast<double>(cb)), + 12), + tmpch, &random); out(row, col + 2) = clampBits((inv_wb_b * tmp + (1 << 9)) >> 10, 15); - mRaw->setWithLookUp(clampBits(static_cast<int>(y2 + 1.370705 * cr2), 12), - tmpch, &random); + mRaw->setWithLookUp( + clampBits(static_cast<int>(implicit_cast<double>(y2) + + 1.370705 * implicit_cast<double>(cr2)), + 12), + tmpch, &random); out(row, col + 3) = clampBits((inv_wb_r * tmp + (1 << 9)) >> 10, 15); mRaw->setWithLookUp( - clampBits(static_cast<int>(y2 - 0.337633 * cb2 - 0.698001 * cr2), 12), - reinterpret_cast<uint8_t*>(&out(row, col + 4)), &random); + clampBits(static_cast<int>(implicit_cast<double>(y2) - + 0.337633 * implicit_cast<double>(cb2) - + 0.698001 * implicit_cast<double>(cr2)), + 12), + reinterpret_cast<std::byte*>(&out(row, col + 4)), &random); - mRaw->setWithLookUp(clampBits(static_cast<int>(y2 + 1.732446 * cb2), 12), - tmpch, &random); + mRaw->setWithLookUp( + clampBits(static_cast<int>(implicit_cast<double>(y2) + + 1.732446 * implicit_cast<double>(cb2)), + 12), + tmpch, &random); out(row, col + 5) = clampBits((inv_wb_b * tmp + (1 << 9)) >> 10, 15); } } @@ -750,31 +789,29 @@ // From: dcraw.c -- Dave Coffin's raw photo decoder #define SQR(x) ((x) * (x)) -std::vector<uint16_t> NefDecoder::gammaCurve(double pwr, double ts, int mode, - int imax) { +std::vector<uint16_t> NefDecoder::gammaCurve(double pwr, double ts, int imax) { std::vector<uint16_t> curve(65536); int i; std::array<double, 6> g; std::array<double, 2> bnd = {{}}; - double r; g[0] = pwr; g[1] = ts; g[2] = g[3] = g[4] = 0; bnd[g[1] >= 1] = 1; - if (g[1] && (g[1] - 1) * (g[0] - 1) <= 0) { + if (std::abs(g[1]) > 0 && (g[1] - 1) * (g[0] - 1) <= 0) { for (i = 0; i < 48; i++) { g[2] = (bnd[0] + bnd[1]) / 2; - if (g[0]) + if (std::abs(g[0]) > 0) bnd[(pow(g[2] / g[1], -g[0]) - 1) / g[0] - 1 / g[2] > -1] = g[2]; else bnd[g[2] / exp(1 - 1 / g[2]) < g[1]] = g[2]; } g[3] = g[2] / g[1]; - if (g[0]) + if (std::abs(g[0]) > 0) g[4] = g[2] * (1 / g[0] - 1); } - if (g[0]) { + if (std::abs(g[0]) > 0) { g[5] = 1 / (g[1] * SQR(g[3]) / 2 - g[4] * (1 - g[3]) + (1 - pow(g[3], 1 + g[0])) * (1 + g[4]) / (1 + g[0])) - 1; @@ -784,23 +821,16 @@ 1; } - if (mode == 0) - ThrowRDE("Unimplemented mode"); - - mode--; - for (i = 0; i < 0x10000; i++) { curve[i] = 0xffff; - if ((r = static_cast<double>(i) / imax) < 1) { - curve[i] = static_cast<uint16_t>( - 0x10000 * - (mode ? (r < g[3] ? r * g[1] - : (g[0] ? pow(r, g[0]) * (1 + g[4]) - g[4] - : log(r) * g[2] + 1)) - : (r < g[2] ? r / g[1] - : (g[0] ? pow((r + g[4]) / (1 + g[4]), 1 / g[0]) - : exp((r - 1) / g[2]))))); - } + const double r = static_cast<double>(i) / imax; + if (r >= 1) + continue; + auto v = + (r < g[2] ? r / g[1] + : (std::abs(g[0]) > 0 ? pow((r + g[4]) / (1 + g[4]), 1 / g[0]) + : exp((r - 1) / g[2]))); + curve[i] = static_cast<uint16_t>(0x10000 * v); } assert(curve.size() == 65536); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/NefDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/NefDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/NefDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/NefDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,16 +20,16 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decoders/AbstractTiffDecoder.h" // for AbstractTiffDecoder -#include "decoders/RawDecoder.h" // for RawDecoder::RawSlice -#include "io/Buffer.h" // for Buffer -#include "tiff/TiffIFD.h" // for TiffIFD (ptr only), TiffRo... -#include <array> // for array -#include <cstdint> // for uint8_t, uint16_t, uint32_t -#include <string> // for string -#include <utility> // for move -#include <vector> // for vector +#include "common/RawImage.h" +#include "decoders/AbstractTiffDecoder.h" +#include "decoders/RawDecoder.h" +#include "io/Buffer.h" +#include "tiff/TiffIFD.h" +#include <array> +#include <cstdint> +#include <string> +#include <utility> +#include <vector> namespace rawspeed { @@ -61,11 +61,11 @@ void readCoolpixSplitRaw(ByteStream input, const iPoint2D& size, const iPoint2D& offset, int inputPitch) const; void DecodeNikonSNef(ByteStream input) const; + void parseWhiteBalance() const; [[nodiscard]] int getBitPerSample() const; [[nodiscard]] std::string getMode() const; [[nodiscard]] std::string getExtendedMode(const std::string& mode) const; - static std::vector<uint16_t> gammaCurve(double pwr, double ts, int mode, - int imax); + static std::vector<uint16_t> gammaCurve(double pwr, double ts, int imax); // We use this for the D50 and D2X whacky WB "encryption" static const std::array<uint8_t, 256> serialmap; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/OrfDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/OrfDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/OrfDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/OrfDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -21,25 +21,29 @@ */ #include "decoders/OrfDecoder.h" -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/NORangesSet.h" // for NORangesSet -#include "adt/Point.h" // for iPoint2D, iRecta... -#include "common/Common.h" // for BitOrder, roundUp -#include "decoders/RawDecoderException.h" // for ThrowException -#include "decompressors/OlympusDecompressor.h" // for OlympusDecompressor -#include "decompressors/UncompressedDecompressor.h" // for UncompressedDeco... -#include "io/BitPumpMSB.h" // for BitPumpMSB -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, getH... -#include "metadata/ColorFilterArray.h" // for CFAColor, ColorF... -#include "tiff/TiffEntry.h" // for TiffEntry, TiffD... -#include "tiff/TiffIFD.h" // for TiffRootIFD, Tif... -#include "tiff/TiffTag.h" // for TiffTag, TiffTag... -#include <array> // for array -#include <cassert> // for assert -#include <memory> // for unique_ptr, allo... -#include <string> // for operator==, string +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Casts.h" +#include "adt/NORangesSet.h" +#include "adt/Point.h" +#include "bitstreams/BitStreamerMSB.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/OlympusDecompressor.h" +#include "decompressors/UncompressedDecompressor.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "metadata/ColorFilterArray.h" +#include "tiff/TiffEntry.h" +#include "tiff/TiffIFD.h" +#include "tiff/TiffTag.h" +#include <array> +#include <cassert> +#include <cstdint> +#include <memory> +#include <string> namespace rawspeed { @@ -141,38 +145,42 @@ int inputPitchBytes = inputPitchBits / 8; - const int numEvenLines = roundUpDivision(h, 2); - ByteStream evenLinesInput = s.getStream(numEvenLines, inputPitchBytes); - - const uint32_t oddLinesInputBegin = - roundUp(evenLinesInput.getSize(), 1U << 11U); - assert(oddLinesInputBegin >= evenLinesInput.getSize()); - int padding = oddLinesInputBegin - evenLinesInput.getSize(); + const auto numEvenLines = implicit_cast<int>(roundUpDivision(h, 2)); + const auto evenLinesInput = s.getStream(numEvenLines, inputPitchBytes) + .peekRemainingBuffer() + .getAsArray1DRef(); + + const auto oddLinesInputBegin = + implicit_cast<int>(roundUp(evenLinesInput.size(), 1U << 11U)); + assert(oddLinesInputBegin >= evenLinesInput.size()); + int padding = oddLinesInputBegin - evenLinesInput.size(); assert(padding >= 0); s.skipBytes(padding); const int numOddLines = h - numEvenLines; - ByteStream oddLinesInput = s.getStream(numOddLines, inputPitchBytes); + const auto oddLinesInput = s.getStream(numOddLines, inputPitchBytes) + .peekRemainingBuffer() + .getAsArray1DRef(); // By now we know we have enough input to produce the image. mRaw->createData(); const Array2DRef<uint16_t> out(mRaw->getU16DataAsUncroppedArray2DRef()); { - BitPumpMSB bs(evenLinesInput); + BitStreamerMSB bs(evenLinesInput); for (int i = 0; i != numEvenLines; ++i) { for (unsigned col = 0; col != w; ++col) { int row = 2 * i; - out(row, col) = bs.getBits(12); + out(row, col) = implicit_cast<uint16_t>(bs.getBits(12)); } } } { - BitPumpMSB bs(oddLinesInput); + BitStreamerMSB bs(oddLinesInput); for (int i = 0; i != numOddLines; ++i) { for (unsigned col = 0; col != w; ++col) { int row = 1 + 2 * i; - out(row, col) = bs.getBits(12); + out(row, col) = implicit_cast<uint16_t>(bs.getBits(12)); } } } @@ -247,12 +255,13 @@ auto int2enum = [](uint8_t i) { switch (i) { + using enum CFAColor; case 0: - return CFAColor::RED; + return RED; case 1: - return CFAColor::GREEN; + return GREEN; case 2: - return CFAColor::BLUE; + return BLUE; default: ThrowRDE("Unexpected CFA color: %u", i); } @@ -268,6 +277,8 @@ } void OrfDecoder::decodeMetaDataInternal(const CameraMetaData* meta) { + mRaw->whitePoint = (1U << 12) - 1; + int iso = 0; if (mRootIFD->hasEntryRecursive(TiffTag::ISOSPEEDRATINGS)) @@ -311,28 +322,34 @@ image_processing.getEntry(static_cast<TiffTag>(0x0600)); // Order is assumed to be RGGB if (blackEntry->count == 4) { + mRaw->blackLevelSeparate = + Array2DRef(mRaw->blackLevelSeparateStorage.data(), 2, 2); + auto blackLevelSeparate1D = + *mRaw->blackLevelSeparate->getAsArray1DRef(); for (int i = 0; i < 4; i++) { auto c = mRaw->cfa.getColorAt(i & 1, i >> 1); int j; switch (c) { - case CFAColor::RED: + using enum CFAColor; + case RED: j = 0; break; - case CFAColor::GREEN: + case GREEN: j = i < 2 ? 1 : 2; break; - case CFAColor::BLUE: + case BLUE: j = 3; break; default: ThrowRDE("Unexpected CFA color: %u", static_cast<unsigned>(c)); } - mRaw->blackLevelSeparate[i] = blackEntry->getU16(j); + blackLevelSeparate1D(i) = blackEntry->getU16(j); } // Adjust whitelevel based on the read black (we assume the dynamic // range is the same) - mRaw->whitePoint -= (mRaw->blackLevel - mRaw->blackLevelSeparate[0]); + mRaw->whitePoint = + *mRaw->whitePoint - (mRaw->blackLevel - blackLevelSeparate1D(0)); } } } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/OrfDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/OrfDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/OrfDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/OrfDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,13 +21,13 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decoders/AbstractTiffDecoder.h" // for AbstractTiffDecoder -#include "io/Buffer.h" // for Buffer -#include "io/ByteStream.h" // for ByteStream -#include "tiff/TiffIFD.h" // for TiffRootIFD (ptr only) -#include <cstdint> // for uint32_t -#include <utility> // for move +#include "common/RawImage.h" +#include "decoders/AbstractTiffDecoder.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "tiff/TiffIFD.h" +#include <cstdint> +#include <utility> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/PefDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/PefDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/PefDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/PefDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,22 +20,26 @@ */ #include "decoders/PefDecoder.h" -#include "adt/Point.h" // for iPoint2D -#include "common/Common.h" // for BitOrder, BitOrder::MSB -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "decompressors/PentaxDecompressor.h" // for PentaxDecompressor -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness... -#include "metadata/ColorFilterArray.h" // for CFAColor, CFAColor::GREEN -#include "tiff/TiffEntry.h" // for TiffEntry, TiffDataType -#include "tiff/TiffIFD.h" // for TiffRootIFD, TiffIFD -#include "tiff/TiffTag.h" // for TiffTag, TiffTag::ISOS... -#include <array> // for array -#include <cstdint> // for uint32_t -#include <memory> // for unique_ptr, allocator -#include <optional> // for optional -#include <string> // for operator==, string +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Casts.h" +#include "adt/Optional.h" +#include "adt/Point.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/PentaxDecompressor.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "metadata/ColorFilterArray.h" +#include "tiff/TiffEntry.h" +#include "tiff/TiffIFD.h" +#include "tiff/TiffTag.h" +#include <array> +#include <cstdint> +#include <memory> +#include <string> namespace rawspeed { @@ -63,6 +67,17 @@ if (65535 != compression) ThrowRDE("Unsupported compression"); + if (raw->hasEntry(TiffTag::PHOTOMETRICINTERPRETATION)) { + mRaw->isCFA = + (raw->getEntry(TiffTag::PHOTOMETRICINTERPRETATION)->getU16() != 34892); + } + + if (mRaw->isCFA) + writeLog(DEBUG_PRIO::EXTRA, "This is a CFA image"); + else { + writeLog(DEBUG_PRIO::EXTRA, "This is NOT a CFA image"); + } + const TiffEntry* offsets = raw->getEntry(TiffTag::STRIPOFFSETS); const TiffEntry* counts = raw->getEntry(TiffTag::STRIPBYTECOUNTS); @@ -83,7 +98,7 @@ mRaw->dim = iPoint2D(width, height); - std::optional<ByteStream> metaData; + Optional<ByteStream> metaData; if (getRootIFD()->hasEntryRecursive(static_cast<TiffTag>(0x220))) { /* Attempt to read huffman table, if found in makernote */ const TiffEntry* t = @@ -116,8 +131,11 @@ const TiffEntry* black = mRootIFD->getEntryRecursive(static_cast<TiffTag>(0x200)); if (black->count == 4) { + mRaw->blackLevelSeparate = + Array2DRef(mRaw->blackLevelSeparateStorage.data(), 2, 2); + auto blackLevelSeparate1D = *mRaw->blackLevelSeparate->getAsArray1DRef(); for (int i = 0; i < 4; i++) - mRaw->blackLevelSeparate[i] = black->getU32(i); + blackLevelSeparate1D(i) = black->getU32(i); } } @@ -126,9 +144,9 @@ const TiffEntry* wb = mRootIFD->getEntryRecursive(static_cast<TiffTag>(0x0201)); if (wb->count == 4) { - mRaw->metadata.wbCoeffs[0] = wb->getU32(0); - mRaw->metadata.wbCoeffs[1] = wb->getU32(1); - mRaw->metadata.wbCoeffs[2] = wb->getU32(3); + mRaw->metadata.wbCoeffs[0] = implicit_cast<float>(wb->getU32(0)); + mRaw->metadata.wbCoeffs[1] = implicit_cast<float>(wb->getU32(1)); + mRaw->metadata.wbCoeffs[2] = implicit_cast<float>(wb->getU32(3)); } } } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/PefDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/PefDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/PefDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/PefDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,11 +20,11 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decoders/AbstractTiffDecoder.h" // for AbstractTiffDecoder -#include "io/Buffer.h" // for Buffer -#include "tiff/TiffIFD.h" // for TiffRootIFD (ptr only) -#include <utility> // for move +#include "common/RawImage.h" +#include "decoders/AbstractTiffDecoder.h" +#include "io/Buffer.h" +#include "tiff/TiffIFD.h" +#include <utility> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/RafDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/RafDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/RafDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/RafDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,32 +20,32 @@ */ #include "decoders/RafDecoder.h" -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/NotARational.h" // for NotARational -#include "adt/Point.h" // for iPoint2D, iRecta... -#include "common/Common.h" // for BitOrder, BitOrd... -#include "decoders/RawDecoderException.h" // for ThrowException -#include "decompressors/FujiDecompressor.h" // for FujiDecompressor -#include "decompressors/UncompressedDecompressor.h" // for UncompressedDeco... -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, getH... -#include "metadata/BlackArea.h" // for BlackArea -#include "metadata/Camera.h" // for Camera, Hints -#include "metadata/CameraMetaData.h" // for CameraMetaData -#include "metadata/CameraSensorInfo.h" // for CameraSensorInfo -#include "metadata/ColorFilterArray.h" // for ColorFilterArray -#include "tiff/TiffEntry.h" // for TiffEntry -#include "tiff/TiffIFD.h" // for TiffRootIFD, Tif... -#include "tiff/TiffTag.h" // for TiffTag, TiffTag... -#include <algorithm> // for copy -#include <array> // for array -#include <cassert> // for assert -#include <cstdint> // for uint32_t -#include <cstring> // for memcmp -#include <memory> // for unique_ptr, allo... -#include <string> // for string, operator== -#include <vector> // for vector +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Casts.h" +#include "adt/Point.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/FujiDecompressor.h" +#include "decompressors/UncompressedDecompressor.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "metadata/Camera.h" +#include "metadata/CameraMetaData.h" +#include "metadata/CameraSensorInfo.h" +#include "metadata/ColorFilterArray.h" +#include "tiff/TiffEntry.h" +#include "tiff/TiffIFD.h" +#include "tiff/TiffTag.h" +#include <array> +#include <cassert> +#include <cstdint> +#include <cstring> +#include <memory> +#include <string> +#include <vector> namespace rawspeed { @@ -53,8 +53,8 @@ static const std::array<char, 16> magic = {{'F', 'U', 'J', 'I', 'F', 'I', 'L', 'M', 'C', 'C', 'D', '-', 'R', 'A', 'W', ' '}}; - const unsigned char* data = input.getData(0, magic.size()); - return 0 == memcmp(data, magic.data(), magic.size()); + const Buffer data = input.getSubView(0, magic.size()); + return 0 == memcmp(data.begin(), magic.data(), magic.size()); } bool RafDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD, @@ -148,7 +148,7 @@ counts->getU32(), width, height); } - double_width = hints.has("double_width_unpacked"); + double_width = hints.contains("double_width_unpacked"); const uint32_t real_width = double_width ? 2U * width : width; mRaw->dim = iPoint2D(real_width, height); @@ -169,7 +169,7 @@ u.readUncompressedRaw(); } else { iPoint2D pos(0, 0); - if (hints.has("jpeg32_bitorder")) { + if (hints.contains("jpeg32_bitorder")) { UncompressedDecompressor u(input, mRaw, iRectangle2D(pos, mRaw->dim), width * bps / 8, bps, BitOrder::MSB32); mRaw->createData(); @@ -208,7 +208,7 @@ if (applyCrop) { new_size = cam->cropSize; crop_offset = cam->cropPos; - bool double_width = hints.has("double_width_unpacked"); + bool double_width = hints.contains("double_width_unpacked"); // If crop size is negative, use relative cropping if (new_size.x <= 0) { new_size.x = @@ -219,7 +219,7 @@ new_size.y = mRaw->dim.y - cam->cropPos.y + new_size.y; } - bool rotate = hints.has("fuji_rotate"); + bool rotate = hints.contains("fuji_rotate"); rotate = rotate && fujiRotate; // Rotate 45 degrees - could be multithreaded. @@ -280,7 +280,7 @@ mRootIFD->getEntryRecursive(TiffTag::FUJI_BITSPERSAMPLE)->getU32(); if (bps > 16) ThrowRDE("Unexpected bit depth: %i", bps); - mRaw->whitePoint = (1UL << bps) - 1UL; + mRaw->whitePoint = implicit_cast<int>((1UL << bps) - 1UL); } // This is where we'd normally call setMetaData but since we may still need @@ -299,25 +299,32 @@ const TiffEntry* sep_black = mRootIFD->getEntryRecursive(TiffTag::FUJI_BLACKLEVEL); if (sep_black->count == 4) { + mRaw->blackLevelSeparate = + Array2DRef(mRaw->blackLevelSeparateStorage.data(), 2, 2); + auto blackLevelSeparate1D = *mRaw->blackLevelSeparate->getAsArray1DRef(); for (int k = 0; k < 4; k++) - mRaw->blackLevelSeparate[k] = sep_black->getU32(k); + blackLevelSeparate1D(k) = sep_black->getU32(k); } else if (sep_black->count == 36) { - for (int& k : mRaw->blackLevelSeparate) + mRaw->blackLevelSeparate = + Array2DRef(mRaw->blackLevelSeparateStorage.data(), 2, 2); + auto blackLevelSeparate1D = *mRaw->blackLevelSeparate->getAsArray1DRef(); + for (int& k : blackLevelSeparate1D) k = 0; for (int y = 0; y < 6; y++) { for (int x = 0; x < 6; x++) - mRaw->blackLevelSeparate[2 * (y % 2) + (x % 2)] += + blackLevelSeparate1D(2 * (y % 2) + (x % 2)) += sep_black->getU32(6 * y + x); } - for (int& k : mRaw->blackLevelSeparate) + for (int& k : blackLevelSeparate1D) k /= 9; } // Set black level to average of EXIF data, can be overridden by XML data. int sum = 0; - for (int b : mRaw->blackLevelSeparate) + auto blackLevelSeparate1D = *mRaw->blackLevelSeparate->getAsArray1DRef(); + for (int b : blackLevelSeparate1D) sum += b; mRaw->blackLevel = (sum + 2) >> 2; } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/RafDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/RafDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/RafDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/RafDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,11 +21,11 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decoders/AbstractTiffDecoder.h" // for AbstractTiffDecoder -#include "io/Buffer.h" // for Buffer -#include "tiff/TiffIFD.h" // for TiffRootIFD (ptr only) -#include <utility> // for move +#include "common/RawImage.h" +#include "decoders/AbstractTiffDecoder.h" +#include "io/Buffer.h" +#include "tiff/TiffIFD.h" +#include <utility> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/RawDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/RawDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/RawDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/RawDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,39 +20,37 @@ */ #include "decoders/RawDecoder.h" -#include "MemorySanitizer.h" // for MSan -#include "adt/NotARational.h" // for NotARational -#include "adt/Point.h" // for iPoint2D, iRecta... -#include "common/Common.h" // for writeLog, roundU... -#include "decompressors/UncompressedDecompressor.h" // for UncompressedDeco... -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endi... -#include "io/FileIOException.h" // for ThrowException -#include "io/IOException.h" // for IOException -#include "metadata/BlackArea.h" // for BlackArea -#include "metadata/Camera.h" // for Camera, Camera::... -#include "metadata/CameraMetaData.h" // for CameraMetaData -#include "metadata/CameraSensorInfo.h" // for CameraSensorInfo -#include "metadata/ColorFilterArray.h" // for ColorFilterArray -#include "parsers/TiffParserException.h" // for TiffParserException -#include "tiff/TiffEntry.h" // for TiffEntry -#include "tiff/TiffIFD.h" // for TiffIFD -#include "tiff/TiffTag.h" // for TiffTag, TiffTag... -#include <algorithm> // for copy, max -#include <array> // for array -#include <cassert> // for assert -#include <string> // for string, allocator -#include <vector> // for vector +#include "MemorySanitizer.h" +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Casts.h" +#include "adt/Point.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decompressors/UncompressedDecompressor.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "io/FileIOException.h" +#include "io/IOException.h" +#include "metadata/Camera.h" +#include "metadata/CameraMetaData.h" +#include "metadata/CameraSensorInfo.h" +#include "metadata/ColorFilterArray.h" +#include "parsers/TiffParserException.h" +#include "tiff/TiffEntry.h" +#include "tiff/TiffIFD.h" +#include "tiff/TiffTag.h" +#include <cassert> +#include <cstdint> +#include <string> +#include <vector> using std::vector; namespace rawspeed { -RawDecoder::RawDecoder(Buffer file) - : mRaw(RawImage::create()), failOnUnknown(false), - interpolateBadPixels(true), applyStage1DngOpcodes(true), applyCrop(true), - uncorrectedRawValues(false), fujiRotate(true), mFile(file) {} +RawDecoder::RawDecoder(Buffer file) : mFile(file) {} void RawDecoder::decodeUncompressed(const TiffIFD* rawIFD, BitOrder order) const { @@ -122,13 +120,14 @@ mRaw->createData(); // Default white level is (2 ** BitsPerSample) - 1 - mRaw->whitePoint = (1UL << bitPerPixel) - 1UL; + mRaw->whitePoint = implicit_cast<int>((1UL << bitPerPixel) - 1UL); offY = 0; for (const RawSlice& slice : slices) { iPoint2D size(width, slice.h); iPoint2D pos(0, offY); - bitPerPixel = (static_cast<uint64_t>(slice.count) * 8U) / (slice.h * width); + bitPerPixel = implicit_cast<uint32_t>( + (static_cast<uint64_t>(slice.count) * 8U) / (slice.h * width)); const auto inputPitch = width * bitPerPixel / 8; if (!inputPitch) ThrowRDE("Bad input pitch. Can not decode anything."); @@ -143,47 +142,29 @@ } } -void RawDecoder::askForSamples([[maybe_unused]] const CameraMetaData* meta, - const std::string& make, - const std::string& model, - const std::string& mode) { - if ("dng" == mode) - return; - - writeLog(DEBUG_PRIO::WARNING, - "Unable to find camera in database: '%s' '%s' " - "'%s'\nPlease consider providing samples on " - "<https://raw.pixls.us/>, thanks!", - make.c_str(), model.c_str(), mode.c_str()); -} - -bool RawDecoder::checkCameraSupported(const CameraMetaData* meta, - const std::string& make, - const std::string& model, - const std::string& mode) { - mRaw->metadata.make = make; - mRaw->metadata.model = model; +bool RawDecoder::handleCameraSupport(const CameraMetaData* meta, + const std::string& make, + const std::string& model, + const std::string& mode) { + Camera::SupportStatus supportStatus = Camera::SupportStatus::UnknownCamera; const Camera* cam = meta->getCamera(make, model, mode); - if (!cam) { - askForSamples(meta, make, model, mode); + if (cam) + supportStatus = cam->supportStatus; - if (failOnUnknown) { - ThrowRDE("Camera '%s' '%s', mode '%s' not supported, and not allowed to " - "guess. Sorry.", + // Sample beggary block. + switch (supportStatus) { + using enum Camera::SupportStatus; + case UnknownCamera: + if ("dng" != mode) { + noSamples = true; + writeLog(DEBUG_PRIO::WARNING, + "Unable to find camera in database: '%s' '%s' '%s'\nPlease " + "consider providing samples on <https://raw.pixls.us/>, thanks!", make.c_str(), model.c_str(), mode.c_str()); } - - // Assume the camera can be decoded, but return false, so decoders can see - // that we are unsure. - return false; - } - - switch (cam->supportStatus) { - case Camera::SupportStatus::Supported: - break; // Yay us! - case Camera::SupportStatus::Unsupported: - ThrowRDE("Camera not supported (explicit). Sorry."); - case Camera::SupportStatus::NoSamples: + break; + case UnknownNoSamples: + case SupportedNoSamples: noSamples = true; writeLog(DEBUG_PRIO::WARNING, "Camera support status is unknown: '%s' '%s' '%s'\n" @@ -191,8 +172,47 @@ "if you wish for the support to not be discontinued, thanks!", make.c_str(), model.c_str(), mode.c_str()); break; // WYSIWYG. + case Supported: + case Unknown: + case Unsupported: + break; // All these imply existence of a sample on RPU. + } + + // Actual support handling. + switch (supportStatus) { + using enum Camera::SupportStatus; + case Supported: + case SupportedNoSamples: + return true; // Explicitly supported. + case Unsupported: + ThrowRDE("Camera not supported (explicit). Sorry."); + case UnknownCamera: + case UnknownNoSamples: + case Unknown: + if (failOnUnknown) { + ThrowRDE("Camera '%s' '%s', mode '%s' not supported, and not allowed to " + "guess. Sorry.", + make.c_str(), model.c_str(), mode.c_str()); + } + return cam; // Might be implicitly supported. } + return true; +} + +bool RawDecoder::checkCameraSupported(const CameraMetaData* meta, + const std::string& make, + const std::string& model, + const std::string& mode) { + mRaw->metadata.make = make; + mRaw->metadata.model = model; + + if (!handleCameraSupport(meta, make, model, mode)) + return false; + + const Camera* cam = meta->getCamera(make, model, mode); + assert(cam); + if (cam->decoderVersion > getDecoderVersion()) ThrowRDE( "Camera not supported in this version. Update RawSpeed for support."); @@ -205,20 +225,14 @@ const std::string& make, const std::string& model, const std::string& mode, int iso_speed) { mRaw->metadata.isoSpeed = iso_speed; - const Camera* cam = meta->getCamera(make, model, mode); - if (!cam) { - askForSamples(meta, make, model, mode); - - if (failOnUnknown) { - ThrowRDE("Camera '%s' '%s', mode '%s' not supported, and not allowed to " - "guess. Sorry.", - make.c_str(), model.c_str(), mode.c_str()); - } + if (!handleCameraSupport(meta, make, model, mode)) return; - } - // Only override CFA with the data from cameras.xml if it actually contained + const Camera* cam = meta->getCamera(make, model, mode); + assert(cam); + + // Only final CFA with the data from cameras.xml if it actually contained // the CFA. if (cam->cfa.getSize().area() > 0) mRaw->cfa = cam->cfa; @@ -235,32 +249,46 @@ mRaw->metadata.mode = mode; if (applyCrop) { - iPoint2D new_size = cam->cropSize; + if (cam->cropAvailable) { + iPoint2D new_size = cam->cropSize; - // If crop size is negative, use relative cropping - if (new_size.x <= 0) - new_size.x = mRaw->dim.x - cam->cropPos.x + new_size.x; + // If crop size is negative, use relative cropping + if (new_size.x <= 0) + new_size.x = mRaw->dim.x - cam->cropPos.x + new_size.x; - if (new_size.y <= 0) - new_size.y = mRaw->dim.y - cam->cropPos.y + new_size.y; + if (new_size.y <= 0) + new_size.y = mRaw->dim.y - cam->cropPos.y + new_size.y; - mRaw->subFrame(iRectangle2D(cam->cropPos, new_size)); + mRaw->subFrame(iRectangle2D(cam->cropPos, new_size)); + } else { + mRaw->subFrame(getDefaultCrop()); + } } - const CameraSensorInfo* sensor = cam->getSensorInfo(iso_speed); - mRaw->blackLevel = sensor->mBlackLevel; - mRaw->whitePoint = sensor->mWhiteLevel; mRaw->blackAreas = cam->blackAreas; - if (mRaw->blackAreas.empty() && !sensor->mBlackLevelSeparate.empty()) { - auto cfaArea = mRaw->cfa.getSize().area(); - if (mRaw->isCFA && cfaArea <= sensor->mBlackLevelSeparate.size()) { - for (auto i = 0UL; i < cfaArea; i++) { - mRaw->blackLevelSeparate[i] = sensor->mBlackLevelSeparate[i]; - } - } else if (!mRaw->isCFA && - mRaw->getCpp() <= sensor->mBlackLevelSeparate.size()) { - for (uint32_t i = 0; i < mRaw->getCpp(); i++) { - mRaw->blackLevelSeparate[i] = sensor->mBlackLevelSeparate[i]; + if (const CameraSensorInfo* sensor = cam->getSensorInfo(iso_speed)) { + mRaw->blackLevel = sensor->mBlackLevel; + mRaw->whitePoint = sensor->mWhiteLevel; + if (mRaw->blackAreas.empty() && !sensor->mBlackLevelSeparate.empty()) { + auto cfaArea = implicit_cast<int>(mRaw->cfa.getSize().area()); + if (mRaw->isCFA && + cfaArea <= implicit_cast<int>(sensor->mBlackLevelSeparate.size())) { + mRaw->blackLevelSeparate = + Array2DRef(mRaw->blackLevelSeparateStorage.data(), 2, 2); + auto blackLevelSeparate1D = + *mRaw->blackLevelSeparate->getAsArray1DRef(); + for (int i = 0; i < cfaArea; i++) { + blackLevelSeparate1D(i) = sensor->mBlackLevelSeparate[i]; + } + } else if (!mRaw->isCFA && + mRaw->getCpp() <= sensor->mBlackLevelSeparate.size()) { + mRaw->blackLevelSeparate = + Array2DRef(mRaw->blackLevelSeparateStorage.data(), 2, 2); + auto blackLevelSeparate1D = + *mRaw->blackLevelSeparate->getAsArray1DRef(); + for (uint32_t i = 0; i < mRaw->getCpp(); i++) { + blackLevelSeparate1D(i) = sensor->mBlackLevelSeparate[i]; + } } } } @@ -268,21 +296,26 @@ // Allow overriding individual blacklevels. Values are in CFA order // (the same order as the in the CFA tag) // A hint could be: - // <Hint name="override_cfa_black" value="10,20,30,20"/> - std::string cfa_black = hints.get("override_cfa_black", std::string()); + // <Hint name="final_cfa_black" value="10,20,30,20"/> + std::string cfa_black = hints.get("final_cfa_black", std::string()); if (!cfa_black.empty()) { vector<std::string> v = splitString(cfa_black, ','); if (v.size() != 4) { mRaw->setError("Expected 4 values '10,20,30,20' as values for " - "override_cfa_black hint."); + "final_cfa_black hint."); } else { + auto blackLevelSeparate1D = *mRaw->blackLevelSeparate->getAsArray1DRef(); for (int i = 0; i < 4; i++) { - mRaw->blackLevelSeparate[i] = stoi(v[i]); + blackLevelSeparate1D(i) = stoi(v[i]); } } } } +rawspeed::iRectangle2D RawDecoder::getDefaultCrop() { + return {mRaw->dim.x, mRaw->dim.y}; +} + rawspeed::RawImage RawDecoder::decodeRaw() { try { RawImage raw = decodeRawInternal(); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/RawDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/RawDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/RawDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/RawDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,12 +21,13 @@ #pragma once -#include "common/Common.h" // for BitOrder -#include "common/RawImage.h" // for RawImage -#include "io/Buffer.h" // for Buffer -#include "metadata/Camera.h" // for Hints -#include <cstdint> // for uint32_t -#include <string> // for string +#include "adt/Point.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "io/Buffer.h" +#include "metadata/Camera.h" +#include <cstdint> +#include <string> namespace rawspeed { @@ -70,7 +71,7 @@ /* The decoded image - undefined if image has not or could not be decoded. */ /* Remember this is automatically refcounted, so a reference is retained until * this class is destroyed */ - RawImage mRaw; + RawImage mRaw = RawImage::create(); /* You can set this if you do not want Rawspeed to attempt to decode images, */ @@ -81,27 +82,27 @@ /* support unknown cameras, you can enable this */ /* DNGs are always attempted to be decoded, so this variable has no effect on * DNGs */ - bool failOnUnknown; + bool failOnUnknown{false}; /* Set how to handle bad pixels. */ /* If you disable this parameter, no bad pixel interpolation will be done */ - bool interpolateBadPixels; + bool interpolateBadPixels{true}; /* Apply stage 1 DNG opcodes. */ /* This usually maps out bad pixels, etc */ - bool applyStage1DngOpcodes; + bool applyStage1DngOpcodes{true}; /* Apply crop - if false uncropped image is delivered */ - bool applyCrop; + bool applyCrop{true}; /* This will skip all corrections, and deliver the raw data */ /* This will skip any compression curves or other things that */ /* is needed to get the correct values */ /* Only enable if you are sure that is what you want */ - bool uncorrectedRawValues; + bool uncorrectedRawValues{false}; /* Should Fuji images be rotated? */ - bool fujiRotate; + bool fujiRotate{true}; struct { /* Should Quadrant Multipliers be applied to the IIQ raws? */ @@ -124,9 +125,8 @@ virtual void decodeMetaDataInternal(const CameraMetaData* meta) = 0; virtual void checkSupportInternal(const CameraMetaData* meta) = 0; - /* Ask for sample submission, if makes sense */ - static void askForSamples(const CameraMetaData* meta, const std::string& make, - const std::string& model, const std::string& mode); + bool handleCameraSupport(const CameraMetaData* meta, const std::string& make, + const std::string& model, const std::string& mode); /* Check the camera and mode against the camera database. */ /* A RawDecoderException will be thrown if the camera isn't supported */ @@ -142,6 +142,10 @@ const std::string& model, const std::string& mode, int iso_speed = 0); + /* Shall return a crop area if none is specified in the camera database + * entry. final this to apply camera vendor defaults (where available). */ + virtual iRectangle2D getDefaultCrop(); + /* Generic decompressor for uncompressed images */ /* order: Order of the bits - see Common.h for possibilities. */ void decodeUncompressed(const TiffIFD* rawIFD, BitOrder order) const; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/RawDecoderException.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/RawDecoderException.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/RawDecoderException.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/RawDecoderException.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,30 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2023 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "decoders/RawDecoderException.h" + +namespace rawspeed { + +void RawDecoderException::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/RawDecoderException.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/RawDecoderException.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/RawDecoderException.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/RawDecoderException.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,15 +21,15 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_NOINLINE, RAWSPEED_UN... - // IWYU pragma: begin_exports -#include "common/RawspeedException.h" // for ThrowExceptionHelper, Rawspeed... +#include "common/RawspeedException.h" // IWYU pragma: end_exports namespace rawspeed { class RawDecoderException : public RawspeedException { + void anchor() const override; + public: using RawspeedException::RawspeedException; }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/Rw2Decoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/Rw2Decoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/Rw2Decoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/Rw2Decoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,27 +20,30 @@ */ #include "decoders/Rw2Decoder.h" -#include "adt/Point.h" // for iPoint2D -#include "common/Common.h" // for writeLog, DEBUG_... -#include "decoders/RawDecoderException.h" // for ThrowException -#include "decompressors/PanasonicV4Decompressor.h" // for PanasonicV4Decom... -#include "decompressors/PanasonicV5Decompressor.h" // for PanasonicV5Decom... -#include "decompressors/PanasonicV6Decompressor.h" // for PanasonicV6Decom... -#include "decompressors/PanasonicV7Decompressor.h" // for PanasonicV7Decom... -#include "decompressors/UncompressedDecompressor.h" // for UncompressedDeco... -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endi... -#include "metadata/Camera.h" // for Hints -#include "metadata/ColorFilterArray.h" // for CFAColor, CFACol... -#include "tiff/TiffEntry.h" // for TiffEntry, TiffD... -#include "tiff/TiffIFD.h" // for TiffRootIFD, Tif... -#include "tiff/TiffTag.h" // for TiffTag, TiffTag... -#include <array> // for array -#include <cmath> // for fabs -#include <cstdint> // for uint32_t, uint16_t -#include <memory> // for unique_ptr -#include <string> // for string, operator== +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Point.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/PanasonicV4Decompressor.h" +#include "decompressors/PanasonicV5Decompressor.h" +#include "decompressors/PanasonicV6Decompressor.h" +#include "decompressors/PanasonicV7Decompressor.h" +#include "decompressors/UncompressedDecompressor.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "metadata/Camera.h" +#include "metadata/ColorFilterArray.h" +#include "tiff/TiffEntry.h" +#include "tiff/TiffIFD.h" +#include "tiff/TiffTag.h" +#include <array> +#include <cmath> +#include <cstdint> +#include <memory> +#include <string> using std::fabs; @@ -110,7 +113,7 @@ PanasonicV4Decompressor p( mRaw, ByteStream(DataBuffer(mFile.getSubView(offset), Endianness::little)), - hints.has("zero_is_not_bad"), section_split_offset); + hints.contains("zero_is_not_bad"), section_split_offset); mRaw->createData(); p.decompress(); } @@ -135,7 +138,7 @@ raw->getEntry(TiffTag::PANASONIC_RAWFORMAT)->getU16()) { case 4: { uint32_t section_split_offset = 0x1FF8; - PanasonicV4Decompressor p(mRaw, bs, hints.has("zero_is_not_bad"), + PanasonicV4Decompressor p(mRaw, bs, hints.contains("zero_is_not_bad"), section_split_offset); mRaw->createData(); p.decompress(); @@ -192,27 +195,30 @@ } switch (auto i = CFA->getU16()) { + using enum CFAColor; case 1: - mRaw->cfa.setCFA(iPoint2D(2, 2), CFAColor::RED, CFAColor::GREEN, - CFAColor::GREEN, CFAColor::BLUE); + mRaw->cfa.setCFA(iPoint2D(2, 2), RED, GREEN, GREEN, BLUE); break; case 2: - mRaw->cfa.setCFA(iPoint2D(2, 2), CFAColor::GREEN, CFAColor::RED, - CFAColor::BLUE, CFAColor::GREEN); + mRaw->cfa.setCFA(iPoint2D(2, 2), GREEN, RED, BLUE, GREEN); break; case 3: - mRaw->cfa.setCFA(iPoint2D(2, 2), CFAColor::GREEN, CFAColor::BLUE, - CFAColor::RED, CFAColor::GREEN); + mRaw->cfa.setCFA(iPoint2D(2, 2), GREEN, BLUE, RED, GREEN); break; case 4: - mRaw->cfa.setCFA(iPoint2D(2, 2), CFAColor::BLUE, CFAColor::GREEN, - CFAColor::GREEN, CFAColor::RED); + mRaw->cfa.setCFA(iPoint2D(2, 2), BLUE, GREEN, GREEN, RED); break; default: ThrowRDE("Unexpected CFA pattern: %u", i); } } +const TiffIFD* Rw2Decoder::getRaw() const { + return mRootIFD->hasEntryRecursive(TiffTag::PANASONIC_STRIPOFFSET) + ? mRootIFD->getIFDWithTag(TiffTag::PANASONIC_STRIPOFFSET) + : mRootIFD->getIFDWithTag(TiffTag::STRIPOFFSETS); +} + void Rw2Decoder::decodeMetaDataInternal(const CameraMetaData* meta) { parseCFA(); @@ -230,10 +236,7 @@ setMetaData(meta, id, "", iso); } - const TiffIFD* raw = - mRootIFD->hasEntryRecursive(TiffTag::PANASONIC_STRIPOFFSET) - ? mRootIFD->getIFDWithTag(TiffTag::PANASONIC_STRIPOFFSET) - : mRootIFD->getIFDWithTag(TiffTag::STRIPOFFSETS); + const TiffIFD* raw = getRaw(); // Read blacklevels if (raw->hasEntry(static_cast<TiffTag>(0x1c)) && @@ -264,19 +267,22 @@ const int blackGreen = getBlack(static_cast<TiffTag>(0x1d)); const int blackBlue = getBlack(static_cast<TiffTag>(0x1e)); + mRaw->blackLevelSeparate = + Array2DRef(mRaw->blackLevelSeparateStorage.data(), 2, 2); + auto blackLevelSeparate1D = *mRaw->blackLevelSeparate->getAsArray1DRef(); for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { const int k = i + 2 * j; const CFAColor c = mRaw->cfa.getColorAt(i, j); switch (c) { case CFAColor::RED: - mRaw->blackLevelSeparate[k] = blackRed; + blackLevelSeparate1D(k) = blackRed; break; case CFAColor::GREEN: - mRaw->blackLevelSeparate[k] = blackGreen; + blackLevelSeparate1D(k) = blackGreen; break; case CFAColor::BLUE: - mRaw->blackLevelSeparate[k] = blackBlue; + blackLevelSeparate1D(k) = blackBlue; break; default: ThrowRDE("Unexpected CFA color %s.", @@ -338,4 +344,30 @@ return closest_match; } +rawspeed::iRectangle2D Rw2Decoder::getDefaultCrop() { + if (const TiffIFD* raw = getRaw(); + raw->hasEntry(TiffTag::PANASONIC_SENSORLEFTBORDER) && + raw->hasEntry(TiffTag::PANASONIC_SENSORTOPBORDER) && + raw->hasEntry(TiffTag::PANASONIC_SENSORRIGHTBORDER) && + raw->hasEntry(TiffTag::PANASONIC_SENSORBOTTOMBORDER)) { + const uint16_t leftBorder = + raw->getEntry(TiffTag::PANASONIC_SENSORLEFTBORDER)->getU16(); + const uint16_t topBorder = + raw->getEntry(TiffTag::PANASONIC_SENSORTOPBORDER)->getU16(); + const uint16_t rightBorder = + raw->getEntry(TiffTag::PANASONIC_SENSORRIGHTBORDER)->getU16(); + const uint16_t bottomBorder = + raw->getEntry(TiffTag::PANASONIC_SENSORBOTTOMBORDER)->getU16(); + const uint16_t width = rightBorder - leftBorder; + const uint16_t height = bottomBorder - topBorder; + return {leftBorder, topBorder, width, height}; + } + ThrowRDE("Cannot figure out vendor crop. Required entries were not found: " + "%X, %X, %X, %X", + static_cast<unsigned int>(TiffTag::PANASONIC_SENSORLEFTBORDER), + static_cast<unsigned int>(TiffTag::PANASONIC_SENSORTOPBORDER), + static_cast<unsigned int>(TiffTag::PANASONIC_SENSORRIGHTBORDER), + static_cast<unsigned int>(TiffTag::PANASONIC_SENSORBOTTOMBORDER)); +} + } // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/Rw2Decoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/Rw2Decoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/Rw2Decoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/Rw2Decoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,12 +21,13 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decoders/AbstractTiffDecoder.h" // for AbstractTiffDecoder -#include "io/Buffer.h" // for Buffer -#include "tiff/TiffIFD.h" // for TiffRootIFD (ptr only) -#include <string> // for string -#include <utility> // for move +#include "adt/Point.h" +#include "common/RawImage.h" +#include "decoders/AbstractTiffDecoder.h" +#include "io/Buffer.h" +#include "tiff/TiffIFD.h" +#include <string> +#include <utility> namespace rawspeed { @@ -42,12 +43,14 @@ RawImage decodeRawInternal() override; void decodeMetaDataInternal(const CameraMetaData* meta) override; void checkSupportInternal(const CameraMetaData* meta) override; + iRectangle2D getDefaultCrop() override; protected: [[nodiscard]] int getDecoderVersion() const override { return 3; } private: void parseCFA() const; + [[nodiscard]] const TiffIFD* getRaw() const; [[nodiscard]] std::string guessMode() const; }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/SimpleTiffDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -21,16 +21,21 @@ */ #include "decoders/SimpleTiffDecoder.h" -#include "adt/Point.h" // for iPoint2D -#include "common/RawImage.h" // for RawImage, RawImageData -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/Buffer.h" // for Buffer -#include "tiff/TiffEntry.h" // for TiffEntry -#include "tiff/TiffIFD.h" // for TiffIFD -#include "tiff/TiffTag.h" // for TiffTag, TiffTag::IMAGELENGTH +#include "adt/Point.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "io/Buffer.h" +#include "tiff/TiffEntry.h" +#include "tiff/TiffIFD.h" +#include "tiff/TiffTag.h" namespace rawspeed { +void SimpleTiffDecoder::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + void SimpleTiffDecoder::prepareForRawDecoding() { raw = getIFDWithLargestImage(); width = raw->getEntry(TiffTag::IMAGEWIDTH)->getU32(); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/SimpleTiffDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/SimpleTiffDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/SimpleTiffDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/SimpleTiffDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -22,17 +22,19 @@ #pragma once -#include "decoders/AbstractTiffDecoder.h" // for AbstractTiffDecoder -#include "io/Buffer.h" // for Buffer -#include "tiff/TiffIFD.h" // for TiffIFD (ptr only), TiffRo... -#include <cstdint> // for uint32_t -#include <utility> // for move +#include "decoders/AbstractTiffDecoder.h" +#include "io/Buffer.h" +#include "tiff/TiffIFD.h" +#include <cstdint> +#include <utility> namespace rawspeed { class Buffer; class SimpleTiffDecoder : public AbstractTiffDecoder { + void anchor() const final; + virtual void checkImageDimensions() = 0; public: diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/SrwDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/SrwDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/SrwDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/SrwDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,26 +20,26 @@ */ #include "decoders/SrwDecoder.h" -#include "adt/Point.h" // for iPoint2D -#include "common/Common.h" // for BitOrder, BitOrder:... -#include "decoders/RawDecoderException.h" // for ThrowException, Thr... -#include "decompressors/SamsungV0Decompressor.h" // for SamsungV0Decompressor -#include "decompressors/SamsungV1Decompressor.h" // for SamsungV1Decompressor -#include "decompressors/SamsungV2Decompressor.h" // for SamsungV2Decompressor -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endiann... -#include "metadata/Camera.h" // for Hints -#include "metadata/CameraMetaData.h" // for CameraMetaData -#include "tiff/TiffEntry.h" // for TiffEntry, TiffData... -#include "tiff/TiffIFD.h" // for TiffRootIFD, TiffIFD -#include "tiff/TiffTag.h" // for TiffTag, TiffTag::S... -#include <array> // for array -#include <cstdint> // for uint32_t -#include <memory> // for unique_ptr -#include <sstream> // for operator<<, ostring... -#include <string> // for string, allocator -#include <vector> // for vector +#include "adt/Point.h" +#include "common/Common.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/SamsungV0Decompressor.h" +#include "decompressors/SamsungV1Decompressor.h" +#include "decompressors/SamsungV2Decompressor.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "metadata/Camera.h" +#include "metadata/CameraMetaData.h" +#include "tiff/TiffEntry.h" +#include "tiff/TiffIFD.h" +#include "tiff/TiffTag.h" +#include <array> +#include <cstdint> +#include <memory> +#include <sstream> +#include <string> +#include <vector> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/SrwDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/SrwDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/SrwDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/SrwDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,12 +20,12 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decoders/AbstractTiffDecoder.h" // for AbstractTiffDecoder -#include "io/Buffer.h" // for Buffer -#include "tiff/TiffIFD.h" // for TiffRootIFD (ptr only) -#include <string> // for string -#include <utility> // for move +#include "common/RawImage.h" +#include "decoders/AbstractTiffDecoder.h" +#include "io/Buffer.h" +#include "tiff/TiffIFD.h" +#include <string> +#include <utility> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/StiDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/StiDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/StiDecoder.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/StiDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,97 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2023 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "decoders/StiDecoder.h" +#include "adt/Point.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/HasselbladLJpegDecoder.h" +#include "decompressors/UncompressedDecompressor.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "tiff/TiffEntry.h" +#include "tiff/TiffIFD.h" +#include "tiff/TiffTag.h" +#include <cstdint> +#include <memory> +#include <string> + +namespace rawspeed { + +class CameraMetaData; + +bool StiDecoder::isAppropriateDecoder(const TiffRootIFD* rootIFD, + [[maybe_unused]] Buffer file) { + const auto id = rootIFD->getID(); + const std::string& make = id.make; + + // FIXME: magic + + return make == "Sinar AG"; +} + +RawImage StiDecoder::decodeRawInternal() { + const auto* raw = mRootIFD->getIFDWithTag(TiffTag::TILEOFFSETS, 0); + uint32_t width = raw->getEntry(TiffTag::IMAGEWIDTH)->getU32(); + uint32_t height = raw->getEntry(TiffTag::IMAGELENGTH)->getU32(); + uint32_t compression = raw->getEntry(TiffTag::COMPRESSION)->getU32(); + + mRaw->dim = iPoint2D(width, height); + + if (1 != compression) + ThrowRDE("Unexpected compression type."); + + DecodeUncompressed(raw); + return mRaw; +} + +void StiDecoder::DecodeUncompressed(const TiffIFD* raw) const { + if (mRaw->getDataType() != RawImageType::UINT16) + ThrowRDE("Unexpected data type"); + + if (mRaw->getCpp() != 1 || mRaw->getBpp() != sizeof(uint16_t)) + ThrowRDE("Unexpected cpp: %u", mRaw->getCpp()); + + // FIXME: could be wrong. + if (!mRaw->dim.hasPositiveArea() || mRaw->dim.x % 2 != 0 || + mRaw->dim.y % 2 != 0 || mRaw->dim.x > 4992 || mRaw->dim.y > 6668) { + ThrowRDE("Unexpected image dimensions found: (%u; %u)", mRaw->dim.x, + mRaw->dim.y); + } + + uint32_t off = raw->getEntry(TiffTag::TILEOFFSETS)->getU32(); + uint32_t count = raw->getEntry(TiffTag::TILEBYTECOUNTS)->getU32(); + + const ByteStream bs( + DataBuffer(mFile.getSubView(off, count), Endianness::little)); + + UncompressedDecompressor u(bs, mRaw, iRectangle2D({0, 0}, mRaw->dim), + 2 * mRaw->dim.x, 16, BitOrder::MSB); + mRaw->createData(); + u.readUncompressedRaw(); +} + +void StiDecoder::decodeMetaDataInternal(const CameraMetaData* meta) { + setMetaData(meta, "", 0); +} + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/StiDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/StiDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/StiDecoder.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/StiDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,48 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2023 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#pragma once + +#include "common/RawImage.h" +#include "decoders/AbstractTiffDecoder.h" +#include "io/Buffer.h" +#include "tiff/TiffIFD.h" +#include <utility> + +namespace rawspeed { + +class Buffer; +class CameraMetaData; + +class StiDecoder final : public AbstractTiffDecoder { +public: + static bool isAppropriateDecoder(const TiffRootIFD* rootIFD, Buffer file); + StiDecoder(TiffRootIFDOwner&& root, Buffer file) + : AbstractTiffDecoder(std::move(root), file) {} + + RawImage decodeRawInternal() override; + void decodeMetaDataInternal(const CameraMetaData* meta) override; + +private: + [[nodiscard]] int getDecoderVersion() const override { return 0; } + void DecodeUncompressed(const TiffIFD* raw) const; +}; + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/ThreefrDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,21 +20,24 @@ */ #include "decoders/ThreefrDecoder.h" -#include "adt/Point.h" // for iPoint2D -#include "decoders/RawDecoderException.h" // for ThrowException -#include "decompressors/HasselbladLJpegDecoder.h" // for HasselbladLJpegDec... -#include "decompressors/UncompressedDecompressor.h" // for UncompressedDeco... -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endian... -#include "metadata/ColorFilterArray.h" // for CFAColor, CFAColor... -#include "tiff/TiffEntry.h" // for TiffEntry -#include "tiff/TiffIFD.h" // for TiffRootIFD, TiffIFD -#include "tiff/TiffTag.h" // for TiffTag, TiffTag::... -#include <array> // for array -#include <cstdint> // for uint32_t -#include <memory> // for unique_ptr, allocator -#include <string> // for operator==, string +#include "adt/Casts.h" +#include "adt/Point.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/HasselbladLJpegDecoder.h" +#include "decompressors/UncompressedDecompressor.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "metadata/ColorFilterArray.h" +#include "tiff/TiffEntry.h" +#include "tiff/TiffIFD.h" +#include "tiff/TiffTag.h" +#include <array> +#include <cstdint> +#include <memory> +#include <string> namespace rawspeed { @@ -116,13 +119,13 @@ if (mRootIFD->hasEntryRecursive(TiffTag::BLACKLEVEL)) { const TiffEntry* bl = mRootIFD->getEntryRecursive(TiffTag::BLACKLEVEL); if (bl->count == 1) - mRaw->blackLevel = bl->getFloat(); + mRaw->blackLevel = implicit_cast<int>(bl->getFloat()); } if (mRootIFD->hasEntryRecursive(TiffTag::WHITELEVEL)) { const TiffEntry* wl = mRootIFD->getEntryRecursive(TiffTag::WHITELEVEL); if (wl->count == 1) - mRaw->whitePoint = wl->getFloat(); + mRaw->whitePoint = implicit_cast<int>(wl->getFloat()); } // Fetch the white balance diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/ThreefrDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/ThreefrDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decoders/ThreefrDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decoders/ThreefrDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,11 +21,11 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decoders/AbstractTiffDecoder.h" // for AbstractTiffDecoder -#include "io/Buffer.h" // for Buffer -#include "tiff/TiffIFD.h" // for TiffRootIFD (ptr only) -#include <utility> // for move +#include "common/RawImage.h" +#include "decoders/AbstractTiffDecoder.h" +#include "io/Buffer.h" +#include "tiff/TiffIFD.h" +#include <utility> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,25 +19,34 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "rawspeedconfig.h" // for HAVE_OPENMP, HAV... +#include "rawspeedconfig.h" #include "decompressors/AbstractDngDecompressor.h" -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D -#include "common/Common.h" // for rawspeed_get_num... -#include "common/RawImage.h" // for RawImageData -#include "decoders/RawDecoderException.h" // for RawDecoderException -#include "decompressors/DeflateDecompressor.h" // for DeflateDecompressor -#include "decompressors/JpegDecompressor.h" // for JpegDecompressor -#include "decompressors/LJpegDecoder.h" // for LJpegDecoder -#include "decompressors/UncompressedDecompressor.h" // for UncompressedDeco... -#include "decompressors/VC5Decompressor.h" // for VC5Decompressor -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endi... -#include "io/IOException.h" // for IOException, Thr... -#include <limits> // for numeric_limits -#include <memory> // for unique_ptr -#include <string> // for string -#include <vector> // for vector, allocator +#include "adt/Array1DRef.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "adt/Point.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/LJpegDecoder.h" +#include "decompressors/UncompressedDecompressor.h" +#include "decompressors/VC5Decompressor.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "io/IOException.h" +#include <cstdint> +#include <limits> +#include <string> +#include <vector> + +#ifdef HAVE_ZLIB +#include "decompressors/DeflateDecompressor.h" +#include <memory> +#endif + +#ifdef HAVE_JPEG +#include "decompressors/JpegDecompressor.h" +#endif namespace rawspeed { @@ -45,39 +54,39 @@ #ifdef HAVE_OPENMP #pragma omp for schedule(static) #endif - for (auto e = slices.cbegin(); e < slices.cend(); ++e) { - - iPoint2D tileSize(e->width, e->height); - iPoint2D pos(e->offX, e->offY); + for (const auto& e : + Array1DRef(slices.data(), implicit_cast<int>(slices.size()))) { + try { + iPoint2D tileSize(e.width, e.height); + iPoint2D pos(e.offX, e.offY); - bool big_endian = e->bs.getByteOrder() == Endianness::big; + bool big_endian = e.bs.getByteOrder() == Endianness::big; - // DNG spec says that if not 8/16/32 bit/sample, always use big endian. - // It's not very obvious, but that does not appear to apply to FP. - switch (mBps) { - case 8: - case 16: - case 32: - break; - default: - if (mRaw->getDataType() == RawImageType::UINT16) - big_endian = true; - break; - } + // DNG spec says that if not 8/16/32 bit/sample, always use big endian. + // It's not very obvious, but that does not appear to apply to FP. + switch (mBps) { + case 8: + case 16: + case 32: + break; + default: + if (mRaw->getDataType() == RawImageType::UINT16) + big_endian = true; + break; + } - try { const uint32_t inputPixelBits = mRaw->getCpp() * mBps; - if (e->dsc.tileW > std::numeric_limits<int>::max() / inputPixelBits) + if (e.dsc.tileW > std::numeric_limits<int>::max() / inputPixelBits) ThrowIOE("Integer overflow when calculating input pitch"); - const int inputPitchBits = inputPixelBits * e->dsc.tileW; + const int inputPitchBits = inputPixelBits * e.dsc.tileW; invariant(inputPitchBits > 0); if (inputPitchBits % 8 != 0) { ThrowRDE("Bad combination of cpp (%u), bps (%u) and width (%u), the " "pitch is %u bits, which is not a multiple of 8 (1 byte)", - mRaw->getCpp(), mBps, e->width, inputPitchBits); + mRaw->getCpp(), mBps, e.width, inputPitchBits); } const int inputPitch = inputPitchBits / 8; @@ -85,13 +94,16 @@ ThrowRDE("Data input pitch is too short. Can not decode!"); UncompressedDecompressor decompressor( - e->bs, mRaw, iRectangle2D(pos, tileSize), inputPitch, mBps, + e.bs, mRaw, iRectangle2D(pos, tileSize), inputPitch, mBps, big_endian ? BitOrder::MSB : BitOrder::LSB); decompressor.readUncompressedRaw(); } catch (const RawDecoderException& err) { mRaw->setError(err.what()); } catch (const IOException& err) { mRaw->setError(err.what()); + } catch (...) { + // We should not get any other exception type here. + __builtin_unreachable(); } } } @@ -100,14 +112,18 @@ #ifdef HAVE_OPENMP #pragma omp for schedule(static) #endif - for (auto e = slices.cbegin(); e < slices.cend(); ++e) { + for (const auto& e : + Array1DRef(slices.data(), implicit_cast<int>(slices.size()))) { try { - LJpegDecoder d(e->bs, mRaw); - d.decode(e->offX, e->offY, e->width, e->height, mFixLjpeg); + LJpegDecoder d(e.bs, mRaw); + d.decode(e.offX, e.offY, e.width, e.height, mFixLjpeg); } catch (const RawDecoderException& err) { mRaw->setError(err.what()); } catch (const IOException& err) { mRaw->setError(err.what()); + } catch (...) { + // We should not get any other exception type here. + __builtin_unreachable(); } } } @@ -119,17 +135,21 @@ #ifdef HAVE_OPENMP #pragma omp for schedule(static) #endif - for (auto e = slices.cbegin(); e < slices.cend(); ++e) { - DeflateDecompressor z(e->bs.peekBuffer(e->bs.getRemainSize()), mRaw, - mPredictor, mBps); + for (const auto& e : + Array1DRef(slices.data(), implicit_cast<int>(slices.size()))) { try { - z.decode(&uBuffer, iPoint2D(mRaw->getCpp() * e->dsc.tileW, e->dsc.tileH), - iPoint2D(mRaw->getCpp() * e->width, e->height), - iPoint2D(mRaw->getCpp() * e->offX, e->offY)); + DeflateDecompressor z(e.bs.peekBuffer(e.bs.getRemainSize()), mRaw, + mPredictor, mBps); + z.decode(&uBuffer, iPoint2D(mRaw->getCpp() * e.dsc.tileW, e.dsc.tileH), + iPoint2D(mRaw->getCpp() * e.width, e.height), + iPoint2D(mRaw->getCpp() * e.offX, e.offY)); } catch (const RawDecoderException& err) { mRaw->setError(err.what()); } catch (const IOException& err) { mRaw->setError(err.what()); + } catch (...) { + // We should not get any other exception type here. + __builtin_unreachable(); } } } @@ -139,14 +159,18 @@ #ifdef HAVE_OPENMP #pragma omp for schedule(static) #endif - for (auto e = slices.cbegin(); e < slices.cend(); ++e) { + for (const auto& e : + Array1DRef(slices.data(), implicit_cast<int>(slices.size()))) { try { - VC5Decompressor d(e->bs, mRaw); - d.decode(e->offX, e->offY, e->width, e->height); + VC5Decompressor d(e.bs, mRaw); + d.decode(e.offX, e.offY, e.width, e.height); } catch (const RawDecoderException& err) { mRaw->setError(err.what()); } catch (const IOException& err) { mRaw->setError(err.what()); + } catch (...) { + // We should not get any other exception type here. + __builtin_unreachable(); } } } @@ -157,14 +181,18 @@ #ifdef HAVE_OPENMP #pragma omp for schedule(static) #endif - for (auto e = slices.cbegin(); e < slices.cend(); ++e) { - JpegDecompressor j(e->bs.peekBuffer(e->bs.getRemainSize()), mRaw); + for (const auto& e : + Array1DRef(slices.data(), implicit_cast<int>(slices.size()))) { try { - j.decode(e->offX, e->offY); + JpegDecompressor j(e.bs.peekBuffer(e.bs.getRemainSize()), mRaw); + j.decode(e.offX, e.offY); } catch (const RawDecoderException& err) { mRaw->setError(err.what()); } catch (const IOException& err) { mRaw->setError(err.what()); + } catch (...) { + // We should not get any other exception type here. + __builtin_unreachable(); } } } @@ -209,7 +237,7 @@ void AbstractDngDecompressor::decompress() const { #ifdef HAVE_OPENMP #pragma omp parallel default(none) num_threads( \ - rawspeed_get_number_of_processor_cores()) if (slices.size() > 1) + rawspeed_get_number_of_processor_cores()) if (slices.size() > 1) #endif decompressThread(); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/AbstractDngDecompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,15 +21,16 @@ #pragma once -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D -#include "common/Common.h" // for roundUpDivision -#include "common/RawImage.h" // for RawImage -#include "decompressors/AbstractDecompressor.h" // for AbstractDecompressor -#include "io/ByteStream.h" // for ByteStream -#include <cstdint> // for uint32_t -#include <utility> // for move -#include <vector> // for vector +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "adt/Point.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decompressors/AbstractDecompressor.h" +#include "io/ByteStream.h" +#include <cstdint> +#include <utility> +#include <vector> namespace rawspeed { @@ -54,8 +55,9 @@ DngTilingDescription(const iPoint2D& dim_, uint32_t tileW_, uint32_t tileH_) : dim(dim_), tileW(tileW_), tileH(tileH_), - tilesX(roundUpDivision(dim.x, tileW)), - tilesY(roundUpDivision(dim.y, tileH)), numTiles(tilesX * tilesY) { + tilesX(implicit_cast<uint32_t>(roundUpDivision(dim.x, tileW))), + tilesY(implicit_cast<uint32_t>(roundUpDivision(dim.y, tileH))), + numTiles(tilesX * tilesY) { invariant(dim.area() > 0); invariant(tileW > 0); invariant(tileH > 0); @@ -130,11 +132,11 @@ void decompressThread() const noexcept; public: - AbstractDngDecompressor(const RawImage& img, const DngTilingDescription& dsc_, + AbstractDngDecompressor(RawImage img, const DngTilingDescription& dsc_, int compression_, bool mFixLjpeg_, uint32_t mBps_, uint32_t mPredictor_) - : mRaw(img), dsc(dsc_), compression(compression_), mFixLjpeg(mFixLjpeg_), - mBps(mBps_), mPredictor(mPredictor_) {} + : mRaw(std::move(img)), dsc(dsc_), compression(compression_), + mFixLjpeg(mFixLjpeg_), mBps(mBps_), mPredictor(mPredictor_) {} void decompress() const; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -21,26 +21,33 @@ */ #include "decompressors/AbstractLJpegDecoder.h" -#include "adt/Array1DRef.h" // for Array1DRef -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D -#include "codes/HuffmanCode.h" // for HuffmanCode -#include "codes/PrefixCodeDecoder.h" // for PrefixCodeDecoder, Huffma... -#include "common/RawspeedException.h" // for ThrowException -#include "decoders/RawDecoderException.h" // for ThrowRDE -#include "io/Buffer.h" // for Buffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianne... -#include <array> // for array -#include <memory> // for unique_ptr, make_unique -#include <optional> // for optional -#include <utility> // for move -#include <vector> // for vector +#include "adt/Invariant.h" +#include "adt/Optional.h" +#include "adt/Point.h" +#include "codes/AbstractPrefixCode.h" +#include "codes/HuffmanCode.h" +#include "codes/PrefixCodeDecoder.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/JpegMarkers.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <array> +#include <cassert> +#include <cstdint> +#include <memory> +#include <utility> +#include <vector> namespace rawspeed { -AbstractLJpegDecoder::AbstractLJpegDecoder(ByteStream bs, const RawImage& img) - : input(bs), mRaw(img) { +void AbstractLJpegDecoder::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + +AbstractLJpegDecoder::AbstractLJpegDecoder(ByteStream bs, RawImage img) + : input(bs), mRaw(std::move(img)) { input.setByteOrder(Endianness::big); if (!mRaw->dim.hasPositiveArea()) @@ -66,13 +73,7 @@ bool SOS = false; } FoundMarkers; - JpegMarker m; - do { - m = getNextMarker(true); - - if (m == JpegMarker::EOI) - break; - + for (JpegMarker m; (m = getNextMarker(true)) != JpegMarker::EOI;) { ByteStream data(input.getStream(input.peekU16())); data.skipBytes(2); // headerLength @@ -103,6 +104,8 @@ ThrowRDE("Did not find SOF marker before SOS."); parseSOS(data); FoundMarkers.SOS = true; + if (erratumImplicitEOIMarkerAfterScan()) + return; break; case JpegMarker::DQT: ThrowRDE("Not a valid RAW file."); @@ -115,7 +118,7 @@ default: // Just let it skip to next marker break; } - } while (m != JpegMarker::EOI); + } if (!FoundMarkers.SOS) ThrowRDE("Did not find SOS marker."); @@ -216,8 +219,12 @@ Pt = sos.getByte(); // Point Transform if (Pt > 15) ThrowRDE("Invalid Point transform."); + if (Pt != 0) + ThrowRDE("Point transform not supported."); - decodeScan(); + const auto scanLength = decodeScan(); + // FIXME: invariant(scanLength != 0); + input.skipBytes(scanLength); } void AbstractLJpegDecoder::parseDHT(ByteStream dht) { @@ -246,8 +253,7 @@ // copy nCodes bytes from input stream to code values table const auto codesBuf = dht.getBuffer(nCodes); - hc.setCodeValues( - Array1DRef<const uint8_t>(codesBuf.begin(), codesBuf.getSize())); + hc.setCodeValues(codesBuf.getAsArray1DRef()); // see if we already have a PrefixCodeDecoder with the same codes assert(PrefixCodeDecoderStore.size() == huffmanCodeStore.size()); @@ -270,33 +276,18 @@ void AbstractLJpegDecoder::parseDRI(ByteStream dri) { if (dri.getRemainSize() != 2) ThrowRDE("Invalid DRI header length."); - if (uint16_t Ri = dri.getU16(); Ri != 0) - ThrowRDE("Non-zero restart interval not supported."); + numMCUsPerRestartInterval = dri.getU16(); } JpegMarker AbstractLJpegDecoder::getNextMarker(bool allowskip) { - auto peekMarker = [&]() -> std::optional<JpegMarker> { - uint8_t c0 = input.peekByte(0); - uint8_t c1 = input.peekByte(1); - - if (c0 == 0xFF && c1 != 0 && c1 != 0xFF) - return static_cast<JpegMarker>(c1); - return {}; - }; - - while (input.getRemainSize() >= 2) { - if (std::optional<JpegMarker> m = peekMarker()) { - input.skipBytes(2); // Skip the bytes we've just consumed. - return *m; - } - // Marker not found. Might there be leading padding bytes? - if (!allowskip) - break; // Nope, give up. - // Advance by a single(!) byte and try again. - input.skipBytes(1); - } - - ThrowRDE("(Noskip) Expected marker not found. Probably corrupt file."); + if (Optional<ByteStream> markerPos = advanceToNextMarker(input, allowskip)) + input = *markerPos; + else + ThrowRDE("(Noskip) Expected marker not found. Probably corrupt file."); + + JpegMarker m = *peekMarker(input); + input.skipBytes(2); // Skip the bytes we've just consumed. + return m; } } // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/AbstractLJpegDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,109 +21,32 @@ #pragma once -#include "codes/HuffmanCode.h" // for HuffmanCode -#include "codes/PrefixCodeDecoder.h" // for PrefixCodeDecoder -#include "common/RawImage.h" // for RawImage -#include "common/RawspeedException.h" // for ThrowException -#include "decoders/RawDecoderException.h" // for ThrowException, Thro... -#include "decompressors/AbstractDecompressor.h" // for AbstractDecompressor -#include "io/ByteStream.h" // for ByteStream -#include <algorithm> // for fill_n, fill -#include <array> // for array -#include <cstdint> // for uint16_t, uint32_t -#include <memory> // for unique_ptr -#include <vector> // for vector +#include "adt/Casts.h" +#include "codes/AbstractPrefixCode.h" +#include "codes/HuffmanCode.h" +#include "codes/PrefixCodeDecoder.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/AbstractDecompressor.h" +#include "decompressors/JpegMarkers.h" +#include "io/ByteStream.h" +#include <algorithm> +#include <array> +#include <cstdint> +#include <memory> +#include <vector> /* - * The following enum and two structs are stolen from the IJG JPEG library + * The two following structs are stolen from the IJG JPEG library * Comments added by tm. See also Copyright in PrefixCodeDecoder.h. */ namespace rawspeed { -enum class JpegMarker { /* JPEG marker codes */ - STUFF = 0x00, - SOF0 = 0xc0, /* baseline DCT */ - SOF1 = 0xc1, /* extended sequential DCT */ - SOF2 = 0xc2, /* progressive DCT */ - SOF3 = 0xc3, /* lossless (sequential) */ - - SOF5 = 0xc5, /* differential sequential DCT - */ - SOF6 = 0xc6, /* differential progressive DCT - */ - SOF7 = 0xc7, /* differential lossless */ - - JPG = 0xc8, /* JPEG extensions */ - SOF9 = 0xc9, /* extended sequential DCT */ - SOF10 = 0xca, /* progressive DCT */ - SOF11 = 0xcb, /* lossless (sequential) */ - - SOF13 = 0xcd, /* differential sequential DCT - */ - SOF14 = 0xce, /* differential progressive DCT - */ - SOF15 = 0xcf, /* differential lossless */ - - DHT = 0xc4, /* define Huffman tables */ - - DAC = 0xcc, /* define arithmetic conditioning table - */ - - RST0 = 0xd0, /* restart */ - RST1 = 0xd1, /* restart */ - RST2 = 0xd2, /* restart */ - RST3 = 0xd3, /* restart */ - RST4 = 0xd4, /* restart */ - RST5 = 0xd5, /* restart */ - RST6 = 0xd6, /* restart */ - RST7 = 0xd7, /* restart */ - - SOI = 0xd8, /* start of image */ - EOI = 0xd9, /* end of image */ - SOS = 0xda, /* start of scan */ - DQT = - 0xdb, /* define quantization tables */ - DNL = 0xdc, /* define number of lines */ - DRI = 0xdd, /* define restart interval */ - DHP = 0xde, /* define hierarchical progression */ - EXP = - 0xdf, /* expand reference image(s) */ - - APP0 = - 0xe0, /* application marker, used for JFIF */ - APP1 = 0xe1, /* application marker */ - APP2 = 0xe2, /* application marker */ - APP3 = 0xe3, /* application marker */ - APP4 = 0xe4, /* application marker */ - APP5 = 0xe5, /* application marker */ - APP6 = 0xe6, /* application marker */ - APP7 = 0xe7, /* application marker */ - APP8 = 0xe8, /* application marker */ - APP9 = 0xe9, /* application marker */ - APP10 = 0xea, /* application marker */ - APP11 = 0xeb, /* application marker */ - APP12 = 0xec, /* application marker */ - APP13 = 0xed, /* application marker */ - APP14 = - 0xee, /* application marker, used by Adobe */ - APP15 = 0xef, /* application marker */ - - JPG0 = 0xf0, /* reserved for JPEG extensions - */ - JPG13 = 0xfd, /* reserved for JPEG extensions - */ - COM = 0xfe, /* comment */ - - TEM = 0x01, /* temporary use */ - FILL = 0xFF - -}; - /* * The following structure stores basic information about one component. */ -struct JpegComponentInfo { +struct JpegComponentInfo final { /* * These values are fixed over the whole image. * They are read from the SOF marker. @@ -139,7 +62,7 @@ uint32_t superV = ~0U; // Vertical Supersampling }; -class SOFInfo { +class SOFInfo final { public: std::array<JpegComponentInfo, 4> compInfo; uint32_t w = 0; // Width @@ -160,8 +83,11 @@ std::array<const PrefixCodeDecoder<>*, 4> huff{ {}}; // 4 pointers into the store + virtual void anchor() const; + public: - AbstractLJpegDecoder(ByteStream bs, const RawImage& img); + AbstractLJpegDecoder(ByteStream bs, RawImage img); + [[nodiscard]] int getSamplePrecision() const { return frame.prec; } virtual ~AbstractLJpegDecoder() = default; @@ -169,11 +95,18 @@ bool fixDng16Bug = false; // DNG v1.0.x compatibility bool fullDecodeHT = true; // FullDecode Huffman + // Certain non-standard-complaint LJpeg's (old Hasselblad cameras) might not + // end with an EOI marker. This erratum considers an implicit EOI marker + // to be present after the (first) full Scan. + [[nodiscard]] virtual bool erratumImplicitEOIMarkerAfterScan() const { + return false; + } + void decodeSOI(); void parseSOF(ByteStream data, SOFInfo* i); void parseSOS(ByteStream data); void parseDHT(ByteStream data); - static void parseDRI(ByteStream dri); + void parseDRI(ByteStream dri); JpegMarker getNextMarker(bool allowskip); [[nodiscard]] std::vector<const PrefixCodeDecoder<>*> @@ -181,7 +114,8 @@ std::vector<const PrefixCodeDecoder<>*> ht(N_COMP); for (int i = 0; i < N_COMP; ++i) { const unsigned dcTblNo = frame.compInfo[i].dcTblNo; - if (const unsigned dcTbls = huff.size(); dcTblNo >= dcTbls) { + if (const auto dcTbls = implicit_cast<unsigned>(huff.size()); + dcTblNo >= dcTbls) { ThrowRDE("Decoding table %u for comp %i does not exist (tables = %u)", dcTblNo, i, dcTbls); } @@ -201,12 +135,13 @@ return pred; } - virtual void decodeScan() = 0; + [[nodiscard]] virtual ByteStream::size_type decodeScan() = 0; ByteStream input; RawImage mRaw; SOFInfo frame; + uint16_t numMCUsPerRestartInterval = 0; uint32_t predictorMode = 0; }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/AbstractSamsungDecompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/AbstractSamsungDecompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/AbstractSamsungDecompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/AbstractSamsungDecompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,8 +20,9 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decompressors/AbstractDecompressor.h" // for AbstractDecompressor +#include "common/RawImage.h" +#include "decompressors/AbstractDecompressor.h" +#include <utility> namespace rawspeed { @@ -30,7 +31,7 @@ RawImage mRaw; public: - explicit AbstractSamsungDecompressor(const RawImage& raw) : mRaw(raw) {} + explicit AbstractSamsungDecompressor(RawImage raw) : mRaw(std::move(raw)) {} }; } // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -1,3 +1,6 @@ +rawspeed_add_library(rawspeed_decompressors OBJECT) +set_target_properties(rawspeed_decompressors PROPERTIES LINKER_LANGUAGE CXX) + FILE(GLOB SOURCES "AbstractDecompressor.h" "AbstractDngDecompressor.cpp" @@ -7,6 +10,7 @@ "AbstractSamsungDecompressor.h" "Cr2Decompressor.cpp" "Cr2Decompressor.h" + "Cr2DecompressorImpl.h" "Cr2LJpegDecoder.cpp" "Cr2LJpegDecoder.h" "CrwDecompressor.cpp" @@ -21,6 +25,7 @@ "HasselbladLJpegDecoder.h" "JpegDecompressor.cpp" "JpegDecompressor.h" + "JpegMarkers.h" "KodakDecompressor.cpp" "KodakDecompressor.h" "LJpegDecoder.cpp" @@ -59,6 +64,20 @@ "VC5Decompressor.h" ) -target_sources(rawspeed PRIVATE +target_sources(rawspeed_decompressors PRIVATE ${SOURCES} ) + +target_include_directories(rawspeed_decompressors PUBLIC "${RAWSPEED_BINARY_DIR}/src") +target_include_directories(rawspeed_decompressors SYSTEM PUBLIC "${RAWSPEED_SOURCE_DIR}/src/external") +target_include_directories(rawspeed_decompressors PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/..") + +if(TARGET RawSpeed::OpenMP_CXX) + target_link_libraries(rawspeed_decompressors PUBLIC RawSpeed::OpenMP_CXX) +endif() + +if(WITH_JPEG AND TARGET JPEG::JPEG) + target_link_libraries(rawspeed_decompressors PUBLIC JPEG::JPEG) +endif() + +target_link_libraries(rawspeed PRIVATE rawspeed_decompressors) diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/Cr2Decompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/Cr2Decompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/Cr2Decompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/Cr2Decompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,8 +18,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "decompressors/Cr2Decompressor.h" // for Cr2Decompressor -#include "codes/PrefixCodeDecoder.h" // for PrefixCodeDecoder +#include "decompressors/Cr2Decompressor.h" +#include "codes/PrefixCodeDecoder.h" #include "decompressors/Cr2DecompressorImpl.h" // IWYU pragma: keep namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/Cr2Decompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/Cr2Decompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/Cr2Decompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/Cr2Decompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,24 +21,22 @@ #pragma once -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D -#include "adt/iterator_range.h" // for iterator_range -#include "codes/DummyPrefixCodeDecoder.h" // for DummyPrefixCodeDecoder -#include "codes/PrefixCodeDecoder.h" // for PrefixCodeDecoder, HuffmanTa... -#include "common/RawImage.h" // for RawImage -#include "common/RawspeedException.h" // for ThrowException -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/ByteStream.h" // for ByteStream -#include <array> // for array -#include <cassert> // for invariant -#include <cstddef> // for size_t, ptrdiff_t -#include <cstdint> // for uint16_t -#include <functional> // for reference_wrapper -#include <iterator> // for input_iterator_tag -#include <tuple> // for tuple -#include <utility> // for index_sequence -#include <vector> // for vector +#include "adt/Array1DRef.h" +#include "adt/Invariant.h" +#include "adt/Point.h" +#include "adt/iterator_range.h" +#include "codes/PrefixCodeDecoder.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "io/ByteStream.h" +#include <array> +#include <cstddef> +#include <cstdint> +#include <functional> +#include <iterator> +#include <tuple> +#include <utility> +#include <vector> namespace rawspeed { @@ -49,7 +47,7 @@ struct Cr2OutputTileIterator; class Cr2VerticalOutputStripIterator; -class Cr2SliceWidths { +class Cr2SliceWidths final { int numSlices = 0; int sliceWidth = 0; int lastSliceWidth = 0; @@ -116,10 +114,6 @@ invariant(&a.slicing == &b.slicing && "Comparing unrelated iterators."); return a.sliceId == b.sliceId; } - friend bool operator!=(const Cr2SliceWidthIterator& a, - const Cr2SliceWidthIterator& b) { - return !(a == b); - } }; inline Cr2SliceWidthIterator Cr2SliceWidths::begin() const { @@ -131,7 +125,7 @@ template <typename PrefixCodeDecoder> class Cr2Decompressor final { public: - struct PerComponentRecipe { + struct PerComponentRecipe final { const PrefixCodeDecoder& ht; const uint16_t initPred; }; @@ -145,7 +139,7 @@ const std::vector<PerComponentRecipe> rec; - const ByteStream input; + const Array1DRef<const uint8_t> input; template <int N_COMP, size_t... I> [[nodiscard]] std::array<std::reference_wrapper<const PrefixCodeDecoder>, @@ -160,22 +154,23 @@ template <int N_COMP> [[nodiscard]] std::array<uint16_t, N_COMP> getInitialPreds() const; - template <int N_COMP, int X_S_F, int Y_S_F> void decompressN_X_Y(); + template <int N_COMP, int X_S_F, int Y_S_F> + [[nodiscard]] ByteStream::size_type decompressN_X_Y() const; - [[nodiscard]] iterator_range<Cr2SliceIterator> getSlices(); - [[nodiscard]] iterator_range<Cr2OutputTileIterator> getAllOutputTiles(); - [[nodiscard]] iterator_range<Cr2OutputTileIterator> getOutputTiles(); + [[nodiscard]] iterator_range<Cr2SliceIterator> getSlices() const; + [[nodiscard]] iterator_range<Cr2OutputTileIterator> getAllOutputTiles() const; + [[nodiscard]] iterator_range<Cr2OutputTileIterator> getOutputTiles() const; [[nodiscard]] iterator_range<Cr2VerticalOutputStripIterator> - getVerticalOutputStrips(); + getVerticalOutputStrips() const; public: Cr2Decompressor( - const RawImage& mRaw, + RawImage mRaw, std::tuple<int /*N_COMP*/, int /*X_S_F*/, int /*Y_S_F*/> format, iPoint2D frame, Cr2SliceWidths slicing, - std::vector<PerComponentRecipe> rec, ByteStream input); + std::vector<PerComponentRecipe> rec, Array1DRef<const uint8_t> input); - void decompress(); + [[nodiscard]] ByteStream::size_type decompress() const; }; extern template class Cr2Decompressor<PrefixCodeDecoder<>>; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/Cr2DecompressorImpl.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,33 +20,34 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Point.h" // for iPoint2D, iPoint2D::area_... -#include "adt/iterator_range.h" // for iterator_range -#include "codes/DummyPrefixCodeDecoder.h" // for DummyPrefixCodeDecoder -#include "codes/PrefixCodeLUTDecoder.h" // for PrefixCodeLUTDecoder -#include "common/RawImage.h" // for RawImage, RawImageData -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "decompressors/Cr2Decompressor.h" // for Cr2Decompressor, Cr2SliceWidths -#include "io/BitPumpJPEG.h" // for BitPumpJPEG, BitStream<>:... -#include "io/ByteStream.h" // for ByteStream -#include <algorithm> // for min, transform -#include <array> // for array -#include <cassert> // for invariant -#include <cstddef> // for size_t -#include <cstdint> // for uint16_t -#include <functional> // for cref, reference_wrapper -#include <initializer_list> // for initializer_list -#include <optional> // for optional -#include <tuple> // for make_tuple, operator==, get -#include <utility> // for move, index_sequence, mak... -#include <vector> // for vector +#include "rawspeedconfig.h" +#include "adt/Array2DRef.h" +#include "adt/Invariant.h" +#include "adt/Optional.h" +#include "adt/Point.h" +#include "adt/iterator_range.h" +#include "bitstreams/BitStreamerJPEG.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/Cr2Decompressor.h" +#include "io/ByteStream.h" +#include <algorithm> +#include <array> +#include <cassert> +#include <cstddef> +#include <cstdint> +#include <functional> +#include <iterator> +#include <tuple> +#include <utility> +#include <vector> namespace rawspeed { class ByteStream; -// NOLINTNEXTLINE: this is not really a header, inline namespace is fine. +// This is not really a header, inline namespace is fine. +// NOLINTNEXTLINE(google-build-namespaces) namespace { enum class TileSequenceStatus { ContinuesColumn, BeginsNewColumn, Invalid }; @@ -54,20 +55,21 @@ inline TileSequenceStatus evaluateConsecutiveTiles(const iRectangle2D& rect, const iRectangle2D& nextRect) { + using enum TileSequenceStatus; // Are these two are verically-adjacent rectangles of same width? if (rect.getBottomLeft() == nextRect.getTopLeft() && rect.getBottomRight() == nextRect.getTopRight()) - return TileSequenceStatus::ContinuesColumn; + return ContinuesColumn; // Otherwise, the next rectangle should be the first row of next column. if (nextRect.getTop() == 0 && nextRect.getLeft() == rect.getRight()) - return TileSequenceStatus::BeginsNewColumn; - return TileSequenceStatus::Invalid; + return BeginsNewColumn; + return Invalid; } } // namespace struct Cr2SliceIterator final { - const int frameHeight; + int frameHeight; Cr2SliceWidthIterator widthIter; @@ -77,7 +79,8 @@ using pointer = const value_type*; // Unusable, but must be here. using reference = const value_type&; // Unusable, but must be here. - Cr2SliceIterator(Cr2SliceWidthIterator sliceWidthIter_, const iPoint2D& frame) + Cr2SliceIterator(const Cr2SliceWidthIterator& sliceWidthIter_, + const iPoint2D& frame) : frameHeight(frame.y), widthIter(sliceWidthIter_) {} value_type RAWSPEED_READONLY operator*() const { @@ -91,9 +94,6 @@ invariant(a.frameHeight == b.frameHeight && "Unrelated iterators."); return a.widthIter == b.widthIter; } - friend bool operator!=(const Cr2SliceIterator& a, const Cr2SliceIterator& b) { - return !(a == b); - } }; struct Cr2OutputTileIterator final { @@ -109,7 +109,8 @@ using pointer = const value_type*; // Unusable, but must be here. using reference = const value_type&; // Unusable, but must be here. - Cr2OutputTileIterator(Cr2SliceIterator sliceIter_, const iPoint2D& imgDim_) + Cr2OutputTileIterator(const Cr2SliceIterator& sliceIter_, + const iPoint2D& imgDim_) : imgDim(imgDim_), sliceIter(sliceIter_) {} value_type operator*() const { @@ -145,10 +146,6 @@ // NOTE: outPos is correctly omitted here. return a.sliceIter == b.sliceIter && a.sliceRow == b.sliceRow; } - friend bool RAWSPEED_READONLY operator!=(const Cr2OutputTileIterator& a, - const Cr2OutputTileIterator& b) { - return !(a == b); - } }; class Cr2VerticalOutputStripIterator final { @@ -184,8 +181,8 @@ using reference = const value_type&; // Unusable, but must be here. Cr2VerticalOutputStripIterator( - Cr2OutputTileIterator&& outputTileIterator_, - Cr2OutputTileIterator&& outputTileIterator_end_) + const Cr2OutputTileIterator& outputTileIterator_, + const Cr2OutputTileIterator& outputTileIterator_end_) : outputTileIterator(outputTileIterator_), outputTileIterator_end(outputTileIterator_end_) {} @@ -200,22 +197,18 @@ "Comparing unrelated iterators."); return a.outputTileIterator == b.outputTileIterator; } - friend bool operator!=(const Cr2VerticalOutputStripIterator& a, - const Cr2VerticalOutputStripIterator& b) { - return !(a == b); - } }; template <typename PrefixCodeDecoder> iterator_range<Cr2SliceIterator> -Cr2Decompressor<PrefixCodeDecoder>::getSlices() { +Cr2Decompressor<PrefixCodeDecoder>::getSlices() const { return {Cr2SliceIterator(slicing.begin(), frame), Cr2SliceIterator(slicing.end(), frame)}; } template <typename PrefixCodeDecoder> iterator_range<Cr2OutputTileIterator> -Cr2Decompressor<PrefixCodeDecoder>::getAllOutputTiles() { +Cr2Decompressor<PrefixCodeDecoder>::getAllOutputTiles() const { auto slices = getSlices(); return {Cr2OutputTileIterator(std::begin(slices), dim), Cr2OutputTileIterator(std::end(slices), dim)}; @@ -223,7 +216,7 @@ template <typename PrefixCodeDecoder> iterator_range<Cr2OutputTileIterator> -Cr2Decompressor<PrefixCodeDecoder>::getOutputTiles() { +Cr2Decompressor<PrefixCodeDecoder>::getOutputTiles() const { auto allOutputTiles = getAllOutputTiles(); auto first = allOutputTiles.begin(); auto end = allOutputTiles.end(); @@ -237,7 +230,7 @@ template <typename PrefixCodeDecoder> [[nodiscard]] iterator_range<Cr2VerticalOutputStripIterator> -Cr2Decompressor<PrefixCodeDecoder>::getVerticalOutputStrips() { +Cr2Decompressor<PrefixCodeDecoder>::getVerticalOutputStrips() const { auto outputTiles = getOutputTiles(); return {Cr2VerticalOutputStripIterator(std::begin(outputTiles), std::end(outputTiles)), @@ -245,10 +238,11 @@ std::end(outputTiles))}; } -// NOLINTNEXTLINE: this is not really a header, inline namespace is fine. +// This is not really a header, inline namespace is fine. +// NOLINTNEXTLINE(google-build-namespaces) namespace { -struct Dsc { +struct Dsc final { const int N_COMP; const int X_S_F; const int Y_S_F; @@ -279,12 +273,12 @@ template <typename PrefixCodeDecoder> Cr2Decompressor<PrefixCodeDecoder>::Cr2Decompressor( - const RawImage& mRaw_, + RawImage mRaw_, std::tuple<int /*N_COMP*/, int /*X_S_F*/, int /*Y_S_F*/> format_, iPoint2D frame_, Cr2SliceWidths slicing_, - std::vector<PerComponentRecipe> rec_, ByteStream input_) - : mRaw(mRaw_), format(std::move(format_)), frame(frame_), slicing(slicing_), - rec(std::move(rec_)), input(input_) { + std::vector<PerComponentRecipe> rec_, Array1DRef<const uint8_t> input_) + : mRaw(std::move(mRaw_)), format(std::move(format_)), frame(frame_), + slicing(slicing_), rec(std::move(rec_)), input(input_) { if (mRaw->getDataType() != RawImageType::UINT16) ThrowRDE("Unexpected data type"); @@ -344,7 +338,7 @@ if (frame.area() < dim.area()) ThrowRDE("Frame area smaller than the image area"); - std::optional<iRectangle2D> lastTile; + Optional<iRectangle2D> lastTile; for (iRectangle2D output : getAllOutputTiles()) { if (lastTile && evaluateConsecutiveTiles(*lastTile, output) == TileSequenceStatus::Invalid) @@ -396,7 +390,8 @@ template <typename PrefixCodeDecoder> template <int N_COMP, int X_S_F, int Y_S_F> -void Cr2Decompressor<PrefixCodeDecoder>::decompressN_X_Y() { +ByteStream::size_type +Cr2Decompressor<PrefixCodeDecoder>::decompressN_X_Y() const { const Array2DRef<uint16_t> out(mRaw->getU16DataAsUncroppedArray2DRef()); // To understand the CR2 slice handling and sampling factor behavior, see @@ -412,9 +407,11 @@ auto ht = getPrefixCodeDecoders<N_COMP>(); auto pred = getInitialPreds<N_COMP>(); - const auto* predNext = &out(0, 0); + auto predNext = out[/*row=*/0] + .getCrop(/*offset=*/0, /*size=*/dsc.groupSize) + .getAsArray1DRef(); - BitPumpJPEG bs(input); + BitStreamerJPEG bs(input); int globalFrameCol = 0; int globalFrameRow = 0; @@ -438,8 +435,11 @@ // makes no sense from an image compression point of view, ask // Canon. for (int c = 0; c < N_COMP; ++c) - pred[c] = predNext[c == 0 ? c : dsc.groupSize - (N_COMP - c)]; - predNext = &out(row, dsc.groupSize * col); + pred[c] = predNext(c == 0 ? c : dsc.groupSize - (N_COMP - c)); + predNext = out[row] + .getBlock(/*size=*/dsc.groupSize, + /*index=*/col) + .getAsArray1DRef(); ++globalFrameRow; globalFrameCol = 0; invariant(globalFrameRow < frame.y && "Run out of frame"); @@ -452,31 +452,29 @@ for (int p = 0; p < dsc.groupSize; ++p) { int c = p < dsc.pixelsPerGroup ? 0 : p - dsc.pixelsPerGroup + 1; out(row, dsc.groupSize * col + p) = pred[c] += - ((const PrefixCodeDecoder&)(ht[c])).decodeDifference(bs); + (static_cast<const PrefixCodeDecoder&>(ht[c])) + .decodeDifference(bs); } } } } } + return bs.getStreamPosition(); } template <typename PrefixCodeDecoder> -void Cr2Decompressor<PrefixCodeDecoder>::decompress() { +ByteStream::size_type Cr2Decompressor<PrefixCodeDecoder>::decompress() const { if (std::make_tuple(3, 2, 2) == format) { - decompressN_X_Y<3, 2, 2>(); // Cr2 sRaw1/mRaw - return; + return decompressN_X_Y<3, 2, 2>(); // Cr2 sRaw1/mRaw } if (std::make_tuple(3, 2, 1) == format) { - decompressN_X_Y<3, 2, 1>(); // Cr2 sRaw2/sRaw - return; + return decompressN_X_Y<3, 2, 1>(); // Cr2 sRaw2/sRaw } if (std::make_tuple(2, 1, 1) == format) { - decompressN_X_Y<2, 1, 1>(); - return; + return decompressN_X_Y<2, 1, 1>(); } if (std::make_tuple(4, 1, 1) == format) { - decompressN_X_Y<4, 1, 1>(); - return; + return decompressN_X_Y<4, 1, 1>(); } __builtin_unreachable(); } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -21,19 +21,22 @@ */ #include "decompressors/Cr2LJpegDecoder.h" -#include "adt/Point.h" // for iPoint2D -#include "codes/PrefixCodeDecoder.h" // for PrefixCodeDecoder -#include "common/RawImage.h" // for RawImage, RawImageData -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/ByteStream.h" // for ByteStream -#include <algorithm> // for generate_n -#include <array> // for array -#include <cassert> // for assert -#include <cstdint> // for uint16_t, uint32_t -#include <initializer_list> // for initializer_list -#include <iterator> // for back_insert_iterator, back... -#include <tuple> // for tuple, get -#include <vector> // for vector +#include "adt/Casts.h" +#include "adt/Point.h" +#include "codes/PrefixCodeDecoder.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/AbstractLJpegDecoder.h" +#include "decompressors/Cr2Decompressor.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include <algorithm> +#include <array> +#include <cassert> +#include <cstdint> +#include <iterator> +#include <tuple> +#include <vector> namespace rawspeed { @@ -52,7 +55,10 @@ } } -void Cr2LJpegDecoder::decodeScan() { +Buffer::size_type Cr2LJpegDecoder::decodeScan() { + if (numMCUsPerRestartInterval != 0) + ThrowRDE("Non-zero restart interval not supported."); + if (predictorMode != 1) ThrowRDE("Unsupported predictor mode."); @@ -61,8 +67,9 @@ if (slicesWidth > mRaw->dim.x) ThrowRDE("Don't know slicing pattern, and failed to guess it."); - slicing = Cr2SliceWidths(/*numSlices=*/1, /*sliceWidth=don't care*/ 0, - /*lastSliceWidth=*/slicesWidth); + slicing = + Cr2SliceWidths(/*numSlices=*/1, /*sliceWidth=don't care*/ 0, + /*lastSliceWidth=*/implicit_cast<uint16_t>(slicesWidth)); } bool isSubSampled = false; @@ -136,13 +143,14 @@ [&rec, hts = getPrefixCodeDecoders(N_COMP), initPred = getInitialPredictors(N_COMP)]() -> Cr2Decompressor<PrefixCodeDecoder<>>::PerComponentRecipe { - const int i = rec.size(); + const auto i = implicit_cast<int>(rec.size()); return {*hts[i], initPred[i]}; }); Cr2Decompressor<PrefixCodeDecoder<>> d( - mRaw, format, iPoint2D(frame.w, frame.h), slicing, rec, input); - d.decompress(); + mRaw, format, iPoint2D(frame.w, frame.h), slicing, rec, + input.peekRemainingBuffer().getAsArray1DRef()); + return d.decompress(); } void Cr2LJpegDecoder::decode(const Cr2SliceWidths& slicing_) { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/Cr2LJpegDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,10 +21,8 @@ #pragma once -#include "decompressors/AbstractLJpegDecoder.h" // for AbstractLJpegDecoder -#include "decompressors/Cr2Decompressor.h" // for Cr2SliceWidths -#include <cassert> // for assert -#include <cstdint> // for uint16_t +#include "decompressors/AbstractLJpegDecoder.h" +#include "decompressors/Cr2Decompressor.h" namespace rawspeed { @@ -34,7 +32,7 @@ class Cr2LJpegDecoder final : public AbstractLJpegDecoder { Cr2SliceWidths slicing; - void decodeScan() override; + [[nodiscard]] ByteStream::size_type decodeScan() override; public: Cr2LJpegDecoder(ByteStream bs, const RawImage& img); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/CrwDecompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -21,31 +21,33 @@ */ #include "decompressors/CrwDecompressor.h" -#include "adt/Array1DRef.h" // for Array1DRef -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D -#include "codes/HuffmanCode.h" // for HuffmanCode -#include "codes/PrefixCodeDecoder.h" // for PrefixCodeDecoder, HuffmanT... -#include "common/Common.h" // for isIntN -#include "common/RawImage.h" // for RawImage, RawImageData -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/BitPumpJPEG.h" // for BitPumpJPEG, BitStrea... -#include "io/Buffer.h" // for Buffer -#include "io/ByteStream.h" // for ByteStream -#include <algorithm> // for fill, copy, fill_n, max -#include <array> // for array -#include <cstdint> // for uint8_t, uint16_t, int... -#include <tuple> // for array -#include <vector> // for vector +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Bit.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "adt/Optional.h" +#include "adt/Point.h" +#include "bitstreams/BitStreamerJPEG.h" +#include "codes/AbstractPrefixCode.h" +#include "codes/HuffmanCode.h" +#include "codes/PrefixCodeDecoder.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "io/Buffer.h" +#include <array> +#include <cstdint> +#include <utility> using std::array; namespace rawspeed { -CrwDecompressor::CrwDecompressor(const RawImage& img, uint32_t dec_table, - bool lowbits_, ByteStream rawData) - : mRaw(img), mHuff(initHuffTables(dec_table)), lowbits(lowbits_) { +CrwDecompressor::CrwDecompressor( + RawImage img, uint32_t dec_table, Array1DRef<const uint8_t> input_, + Optional<Array1DRef<const uint8_t>> lowbitInput_) + : mRaw(std::move(img)), mHuff(initHuffTables(dec_table)), input(input_), + lowbitInput(lowbitInput_) { if (mRaw->getCpp() != 1 || mRaw->getDataType() != RawImageType::UINT16 || mRaw->getBpp() != sizeof(uint16_t)) ThrowRDE("Unexpected component count / data type"); @@ -57,19 +59,16 @@ height > 3048 || (height * width) % 64 != 0) ThrowRDE("Unexpected image dimensions found: (%u; %u)", width, height); - if (lowbits) { + if (lowbitInput) { // If there are low bits, the first part (size is calculable) is low bits // Each block is 4 pairs of 2 bits, so we have 1 block per 4 pixels - const unsigned lBlocks = 1 * height * width / 4; + const int lBlocks = 1 * height * width / 4; invariant(lBlocks > 0); - lowbitInput = rawData.getStream(lBlocks); + if (lowbitInput->size() < lBlocks) + ThrowRDE("Unsufficient number of low bit blocks"); + lowbitInput = + lowbitInput->getCrop(/*offset=*/0, /*size*/ lBlocks).getAsArray1DRef(); } - - // We always ignore next 514 bytes of 'padding'. No idea what is in there. - rawData.skipBytes(514); - - // Rest is the high bits. - rawInput = rawData.getStream(rawData.getRemainSize()); } PrefixCodeDecoder<> CrwDecompressor::makeDecoder(const uint8_t* ncpl, @@ -167,14 +166,15 @@ inline void CrwDecompressor::decodeBlock(std::array<int16_t, 64>* diffBuf, const crw_hts& mHuff, - BitPumpJPEG& bs) { + BitStreamerJPEG& bs) { invariant(diffBuf); // decode the block for (int i = 0; i < 64;) { bs.fill(32); - const uint8_t codeValue = mHuff[i > 0].decodeCodeValue(bs); + const auto codeValue = + implicit_cast<uint8_t>(mHuff[i > 0].decodeCodeValue(bs)); const int len = codeValue & 0b1111; const int index = codeValue >> 4; invariant(len >= 0 && index >= 0); @@ -201,7 +201,7 @@ diff = PrefixCodeDecoder<>::extend(diff, len); - (*diffBuf)[i] = diff; + (*diffBuf)[i] = implicit_cast<int16_t>(diff); ++i; } } @@ -209,18 +209,18 @@ // FIXME: this function is horrible. void CrwDecompressor::decompress() { const Array2DRef<uint16_t> out(mRaw->getU16DataAsUncroppedArray2DRef()); - invariant(out.width > 0); - invariant(out.width % 4 == 0); - invariant(out.height > 0); + invariant(out.width() > 0); + invariant(out.width() % 4 == 0); + invariant(out.height() > 0); { // Each block encodes 64 pixels - invariant((out.height * out.width) % 64 == 0); - const unsigned hBlocks = out.height * out.width / 64; + invariant((out.height() * out.width()) % 64 == 0); + const unsigned hBlocks = out.height() * out.width() / 64; invariant(hBlocks > 0); - BitPumpJPEG bs(rawInput); + BitStreamerJPEG bs(input); int carry = 0; std::array<int, 2> base = {512, 512}; // starting predictors @@ -238,7 +238,7 @@ carry = diffBuf[0]; for (uint32_t k = 0; k < 64; ++k) { - if (col == out.width) { + if (col == out.width()) { // new line. sadly, does not always happen when k == 0. col = 0; row++; @@ -250,19 +250,22 @@ if (!isIntN(base[k & 1], 10)) ThrowRDE("Error decompressing"); - out(row, col) = base[k & 1]; + out(row, col) = implicit_cast<uint16_t>(base[k & 1]); ++col; } } - invariant(row == (out.height - 1)); - invariant(col == out.width); + invariant(row == (out.height() - 1)); + invariant(col == out.width()); } // Add the uncompressed 2 low bits to the decoded 8 high bits - if (lowbits) { - for (int row = 0; row < out.height; row++) { - for (int col = 0; col < out.width; /* NOTE: col += 4 */) { - const uint8_t c = lowbitInput.getByte(); + if (lowbitInput) { + Array2DRef lowbits(*lowbitInput, out.width() / 4, out.height(), + out.width() / 4); + for (int row = 0; row < out.height(); row++) { + for (int col = 0; col < out.width(); /* NOTE: col += 4 */) { + invariant(col % 4 == 0); + const uint8_t c = lowbits(row, col / 4); // LSB-packed: p3 << 6 | p2 << 4 | p1 << 2 | p0 << 0 // We have read 8 bits, which is 4 pairs of 2 bits. So process 4 pixels. @@ -270,9 +273,9 @@ uint16_t& pixel = out(row, col); uint16_t low = (c >> (2 * p)) & 0b11; - uint16_t val = (pixel << 2) | low; + auto val = implicit_cast<uint16_t>((pixel << 2) | low); - if (out.width == 2672 && val < 512) + if (out.width() == 2672 && val < 512) val += 2; // No idea why this is needed pixel = val; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/CrwDecompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/CrwDecompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/CrwDecompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/CrwDecompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -22,13 +22,14 @@ #pragma once -#include "codes/PrefixCodeDecoder.h" // for PrefixCodeDecoder -#include "common/RawImage.h" // for RawImage -#include "decompressors/AbstractDecompressor.h" // for AbstractDecompressor -#include "io/BitPumpJPEG.h" // for BitPumpJPEG -#include "io/ByteStream.h" // for ByteStream -#include <array> // for array -#include <cstdint> // for uint32_t, uint8_t +#include "adt/Array1DRef.h" +#include "adt/Optional.h" +#include "bitstreams/BitStreamerJPEG.h" +#include "codes/PrefixCodeDecoder.h" +#include "common/RawImage.h" +#include "decompressors/AbstractDecompressor.h" +#include <array> +#include <cstdint> namespace rawspeed { @@ -37,14 +38,14 @@ RawImage mRaw; crw_hts mHuff; - const bool lowbits; - ByteStream lowbitInput; - ByteStream rawInput; + Array1DRef<const uint8_t> input; + Optional<Array1DRef<const uint8_t>> lowbitInput; public: - CrwDecompressor(const RawImage& img, uint32_t dec_table_, bool lowbits_, - ByteStream rawData); + CrwDecompressor(RawImage img, uint32_t dec_table_, + Array1DRef<const uint8_t> input, + Optional<Array1DRef<const uint8_t>> lowbitInput); void decompress(); @@ -54,7 +55,7 @@ static crw_hts initHuffTables(uint32_t table); inline static void decodeBlock(std::array<int16_t, 64>* diffBuf, - const crw_hts& mHuff, BitPumpJPEG& bs); + const crw_hts& mHuff, BitStreamerJPEG& bs); }; } // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/DeflateDecompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,30 +18,36 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "rawspeedconfig.h" // for HAVE_ZLIB -#include "adt/CroppedArray1DRef.h" // for CroppedArray1DRef -#include "adt/CroppedArray2DRef.h" // for CroppedArray2DRef -#include "adt/Invariant.h" // for invariant -#include "common/Common.h" // for bit_cast -#include <array> // for array -#include <climits> // for CHAR_BIT +#include "rawspeedconfig.h" // IWYU pragma: keep +#include "adt/Bit.h" #ifdef HAVE_ZLIB -#include "adt/Point.h" // for iPoint2D -#include "common/FloatingPoint.h" // for Binary32, Binary16, Binary24 -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Casts.h" +#include "adt/CroppedArray1DRef.h" +#include "adt/CroppedArray2DRef.h" +#include "adt/Invariant.h" +#include "adt/Point.h" +#include "common/FloatingPoint.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" #include "decompressors/DeflateDecompressor.h" -#include "io/Endianness.h" // for getBE -#include <cstdint> // for uint32_t, uint16_t -#include <cstdio> // for size_t -#include <zlib.h> // for uncompress, zError, Z_OK +#include "io/Buffer.h" +#include "io/Endianness.h" +#include <array> +#include <climits> +#include <cstdint> +#include <utility> +#include <zconf.h> +#include <zlib.h> namespace rawspeed { -DeflateDecompressor::DeflateDecompressor(Buffer bs, const RawImage& img, - int predictor, int bps_) - : input(bs), mRaw(img), bps(bps_) { +DeflateDecompressor::DeflateDecompressor(Buffer bs, RawImage img, int predictor, + int bps_) + : input(bs), mRaw(std::move(img)), bps(bps_) { switch (predictor) { case 3: predFactor = 1; @@ -58,19 +64,23 @@ predFactor *= mRaw->getCpp(); } +namespace { + // decodeFPDeltaRow(): MIT License, copyright 2014 Javier Celaya // <jcelaya@gmail.com> -static inline void decodeDeltaBytes(unsigned char* src, size_t realTileWidth, - unsigned int bytesps, int factor) { - for (size_t col = factor; col < realTileWidth * bytesps; ++col) { +inline void decodeDeltaBytes(Array1DRef<unsigned char> src, int realTileWidth, + int bytesps, int factor) { + for (int col = factor; col < realTileWidth * bytesps; ++col) { // Yes, this is correct, and is symmetrical with EncodeDeltaBytes in // hdrmerge, and they both combined are lossless. // This is indeed working in modulo-2^n arighmetics. - src[col] = static_cast<unsigned char>(src[col] + src[col - factor]); + src(col) = static_cast<unsigned char>(src(col) + src(col - factor)); } } -template <typename T> struct StorageType {}; +} // namespace + +template <typename T> struct StorageType final {}; template <> struct StorageType<ieee_754_2008::Binary16> { using type = uint16_t; static constexpr int padding_bytes = 0; @@ -84,10 +94,11 @@ static constexpr int padding_bytes = 0; }; +namespace { + template <typename T> -static inline void decodeFPDeltaRow(const unsigned char* src, - size_t realTileWidth, - CroppedArray1DRef<float> out) { +inline void decodeFPDeltaRow(Array1DRef<const unsigned char> src, + int realTileWidth, CroppedArray1DRef<float> out) { using storage_type = typename StorageType<T>::type; constexpr unsigned storage_bytes = sizeof(storage_type); constexpr unsigned bytesps = T::StorageWidth / 8; @@ -95,7 +106,7 @@ for (int col = 0; col < out.size(); ++col) { std::array<unsigned char, storage_bytes> bytes; for (int c = 0; c != bytesps; ++c) - bytes[c] = src[col + c * realTileWidth]; + bytes[c] = src(col + c * realTileWidth); auto tmp = getBE<storage_type>(bytes.data()); tmp >>= CHAR_BIT * StorageType<T>::padding_bytes; @@ -109,24 +120,30 @@ case 4: tmp_expanded = tmp; break; + default: + __builtin_unreachable(); } out(col) = bit_cast<float>(tmp_expanded); } } +} // namespace + void DeflateDecompressor::decode( std::unique_ptr<unsigned char[]>* uBuffer, // NOLINT iPoint2D maxDim, iPoint2D dim, iPoint2D off) { int bytesps = bps / 8; invariant(bytesps >= 2 && bytesps <= 4); - uLongf dstLen = bytesps * maxDim.area(); + auto dstLen = implicit_cast<uLongf>(bytesps * maxDim.area()); if (!*uBuffer) *uBuffer = std::unique_ptr<unsigned char[]>(new unsigned char[dstLen]); // NOLINT + Array2DRef<unsigned char> tmp(uBuffer->get(), bytesps * maxDim.x, maxDim.y); + if (int err = uncompress(uBuffer->get(), &dstLen, input.begin(), input.getSize()); err != Z_OK) { @@ -138,20 +155,20 @@ /*offsetRows=*/off.y, /*croppedWidth=*/dim.x, /*croppedHeight=*/dim.y); for (int row = 0; row < out.croppedHeight; ++row) { - unsigned char* src = uBuffer->get() + row * maxDim.x * bytesps; - - decodeDeltaBytes(src, maxDim.x, bytesps, predFactor); + decodeDeltaBytes(tmp[row], maxDim.x, bytesps, predFactor); switch (bytesps) { case 2: - decodeFPDeltaRow<ieee_754_2008::Binary16>(src, maxDim.x, out[row]); + decodeFPDeltaRow<ieee_754_2008::Binary16>(tmp[row], maxDim.x, out[row]); break; case 3: - decodeFPDeltaRow<ieee_754_2008::Binary24>(src, maxDim.x, out[row]); + decodeFPDeltaRow<ieee_754_2008::Binary24>(tmp[row], maxDim.x, out[row]); break; case 4: - decodeFPDeltaRow<ieee_754_2008::Binary32>(src, maxDim.x, out[row]); + decodeFPDeltaRow<ieee_754_2008::Binary32>(tmp[row], maxDim.x, out[row]); break; + default: + __builtin_unreachable(); } } } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/DeflateDecompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/DeflateDecompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/DeflateDecompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/DeflateDecompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,15 +20,14 @@ #pragma once -#include "rawspeedconfig.h" // for HAVE_ZLIB +#include "rawspeedconfig.h" #ifdef HAVE_ZLIB -#include "common/RawImage.h" // for RawImage -#include "decompressors/AbstractDecompressor.h" // for AbstractDecompressor -#include "io/Buffer.h" // for Buffer -#include <memory> // for unique_ptr -#include <utility> // for move +#include "common/RawImage.h" +#include "decompressors/AbstractDecompressor.h" +#include "io/Buffer.h" +#include <memory> namespace rawspeed { @@ -41,7 +40,7 @@ int bps; public: - DeflateDecompressor(Buffer bs, const RawImage& img, int predictor, int bps_); + DeflateDecompressor(Buffer bs, RawImage img, int predictor, int bps_); void decode(std::unique_ptr<unsigned char[]>* uBuffer, // NOLINT iPoint2D maxDim, iPoint2D dim, iPoint2D off); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/FujiDecompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -21,33 +21,36 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "rawspeedconfig.h" // for RAWSPEED_READONLY, HAVE_OP... +#include "rawspeedconfig.h" #include "decompressors/FujiDecompressor.h" -#include "MemorySanitizer.h" // for MSan -#include "adt/Array1DRef.h" // for Array1DRef -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/CroppedArray1DRef.h" // for CroppedArray1DRef -#include "adt/CroppedArray2DRef.h" // for CroppedArray2DRef -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D -#include "common/BayerPhase.h" // for getAsCFAColors, BayerPhase -#include "common/Common.h" // for countl_zero, rawspeed_get_... -#include "common/RawImage.h" // for RawImageData, RawImage -#include "common/XTransPhase.h" // for XTransPhase, getAsCFAColors -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/BitPumpMSB.h" // for BitPumpMSB -#include "io/Endianness.h" // for Endianness, Endianness::big -#include "metadata/ColorFilterArray.h" // for CFAColor, CFAColor::BLUE -#include <algorithm> // for max, min, fill, minmax -#include <array> // for array, array<>::value_type -#include <cassert> // for assert -#include <cstdint> // for uint16_t, int8_t, uint32_t -#include <cstdlib> // for abs -#include <cstring> // for memcpy, memset -#include <initializer_list> // for initializer_list -#include <optional> // for optional, operator!= -#include <string> // for string -#include <utility> // for pair +#include "MemorySanitizer.h" +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Bit.h" +#include "adt/Casts.h" +#include "adt/CroppedArray2DRef.h" +#include "adt/Invariant.h" +#include "adt/Optional.h" +#include "adt/Point.h" +#include "bitstreams/BitStreamerMSB.h" +#include "common/BayerPhase.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "common/XTransPhase.h" +#include "decoders/RawDecoderException.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "metadata/ColorFilterArray.h" +#include <algorithm> +#include <array> +#include <cassert> +#include <cstdint> +#include <cstdlib> +#include <cstring> +#include <string> +#include <utility> +#include <vector> namespace rawspeed { @@ -62,7 +65,7 @@ template <> constexpr iPoint2D MCU<XTransTag> = {6, 6}; -struct int_pair { +struct int_pair final { int value1; int value2; }; @@ -89,7 +92,7 @@ ltotal }; -struct fuji_compressed_params { +struct fuji_compressed_params final { explicit fuji_compressed_params(const FujiDecompressor::FujiHeader& h); [[nodiscard]] int8_t qTableLookup(int cur_val) const; @@ -104,7 +107,7 @@ uint16_t line_width; }; -struct FujiStrip { +struct FujiStrip final { // part of which 'image' this block is const FujiDecompressor::FujiHeader& h; @@ -112,7 +115,7 @@ const int n; // the compressed data of this strip - const ByteStream bs; + const Array1DRef<const uint8_t> input; FujiStrip() = delete; FujiStrip(const FujiStrip&) = delete; @@ -120,8 +123,9 @@ FujiStrip& operator=(const FujiStrip&) noexcept = delete; FujiStrip& operator=(FujiStrip&&) noexcept = delete; - FujiStrip(const FujiDecompressor::FujiHeader& h_, int block, ByteStream bs_) - : h(h_), n(block), bs(bs_) { + FujiStrip(const FujiDecompressor::FujiHeader& h_, int block, + Array1DRef<const uint8_t> input_) + : h(h_), n(block), input(input_) { invariant(n >= 0 && n < h.blocks_in_row); } @@ -176,7 +180,10 @@ if (abs_cur_val >= p.q_point[3]) grad = 4; - return cur_val >= 0 ? grad : -grad; + if (cur_val < 0) + grad *= -1; + + return implicit_cast<int8_t>(grad); } fuji_compressed_params::fuji_compressed_params( @@ -233,7 +240,7 @@ return q_table[cur_val]; } -struct fuji_compressed_block { +struct fuji_compressed_block final { const Array2DRef<uint16_t> img; const FujiDecompressor::FujiHeader& header; const fuji_compressed_params& common_info; @@ -242,9 +249,9 @@ const FujiDecompressor::FujiHeader& header, const fuji_compressed_params& common_info); - void reset(const fuji_compressed_params& params); + void reset(); - BitPumpMSB pump; + Optional<BitStreamerMSB> pump; // tables of gradients std::array<std::array<int_pair, 41>, 3> grad_even; @@ -256,37 +263,35 @@ void fuji_decode_strip(const FujiStrip& strip); template <typename Tag, typename T> - void copy_line(const FujiStrip& strip, int cur_line, T&& idx) const; + void copy_line(const FujiStrip& strip, int cur_line, T idx) const; void copy_line_to_xtrans(const FujiStrip& strip, int cur_line) const; void copy_line_to_bayer(const FujiStrip& strip, int cur_line) const; - static inline int fuji_zerobits(BitPumpMSB& pump); + static int fuji_zerobits(BitStreamerMSB& pump); static int bitDiff(int value1, int value2); - [[nodiscard]] inline int fuji_decode_sample(int grad, int interp_val, - std::array<int_pair, 41>& grads); - [[nodiscard]] inline int - fuji_decode_sample_even(xt_lines c, int col, std::array<int_pair, 41>& grads); - [[nodiscard]] inline int - fuji_decode_sample_odd(xt_lines c, int col, std::array<int_pair, 41>& grads); + [[nodiscard]] int fuji_decode_sample(int grad, int interp_val, + std::array<int_pair, 41>& grads); + [[nodiscard]] int fuji_decode_sample_even(xt_lines c, int col, + std::array<int_pair, 41>& grads); + [[nodiscard]] int fuji_decode_sample_odd(xt_lines c, int col, + std::array<int_pair, 41>& grads); - [[nodiscard]] inline int fuji_quant_gradient(int v1, int v2) const; + [[nodiscard]] int fuji_quant_gradient(int v1, int v2) const; - [[nodiscard]] inline std::pair<int, int> + [[nodiscard]] std::pair<int, int> fuji_decode_interpolation_even_inner(xt_lines c, int col) const; - [[nodiscard]] inline std::pair<int, int> + [[nodiscard]] std::pair<int, int> fuji_decode_interpolation_odd_inner(xt_lines c, int col) const; - [[nodiscard]] inline int fuji_decode_interpolation_even(xt_lines c, - int col) const; + [[nodiscard]] int fuji_decode_interpolation_even(xt_lines c, int col) const; void fuji_extend_generic(int start, int end) const; void fuji_extend_red() const; void fuji_extend_green() const; void fuji_extend_blue() const; - template <typename T> - inline void fuji_decode_block(T&& func_even, int cur_line); + template <typename T> void fuji_decode_block(T func_even, int cur_line); void xtrans_decode_block(int cur_line); void fuji_bayer_decode_block(int cur_line); }; @@ -294,25 +299,22 @@ fuji_compressed_block::fuji_compressed_block( Array2DRef<uint16_t> img_, const FujiDecompressor::FujiHeader& header_, const fuji_compressed_params& common_info_) - : img(img_), header(header_), common_info(common_info_) {} - -void fuji_compressed_block::reset(const fuji_compressed_params& params) { - const unsigned line_size = sizeof(uint16_t) * (params.line_width + 2); - - linealloc.resize(ltotal * (params.line_width + 2), 0); - lines = Array2DRef<uint16_t>(&linealloc[0], params.line_width + 2, ltotal); + : img(img_), header(header_), common_info(common_info_), + linealloc(ltotal * (common_info.line_width + 2), 0), + lines(&linealloc[0], common_info.line_width + 2, ltotal) {} +void fuji_compressed_block::reset() { MSan::Allocated(CroppedArray2DRef(lines)); // Zero-initialize first two (read-only, carry-in) lines of each color, // including first and last helper columns of the second row. // This is needed for correctness. for (xt_lines color : {R0, G0, B0}) { - memset(&lines(color, 0), 0, 2 * line_size); + memset(&lines(color, 0), 0, 2 * sizeof(uint16_t) * lines.width()); // On the first row, we don't need to zero-init helper columns. MSan::Allocated(lines(color, 0)); - MSan::Allocated(lines(color, lines.width - 1)); + MSan::Allocated(lines(color, lines.width() - 1)); } // And the first (real, uninitialized) line of each color gets the content @@ -320,13 +322,13 @@ // line of that color. // Again, this is needed for correctness. for (xt_lines color : {R2, G2, B2}) - lines(color, lines.width - 1) = lines(color - 1, lines.width - 2); + lines(color, lines.width() - 1) = lines(color - 1, lines.width() - 2); for (int j = 0; j < 3; j++) { for (int i = 0; i < 41; i++) { - grad_even[j][i].value1 = params.maxDiff; + grad_even[j][i].value1 = common_info.maxDiff; grad_even[j][i].value2 = 1; - grad_odd[j][i].value1 = params.maxDiff; + grad_odd[j][i].value1 = common_info.maxDiff; grad_odd[j][i].value2 = 1; } } @@ -334,7 +336,7 @@ template <typename Tag, typename T> void fuji_compressed_block::copy_line(const FujiStrip& strip, int cur_line, - T&& idx) const { + T idx) const { std::array<CFAColor, MCU<Tag>.x * MCU<Tag>.y> CFAData; if constexpr (std::is_same_v<XTransTag, Tag>) CFAData = getAsCFAColors(XTransPhase(0, 0)); @@ -361,15 +363,16 @@ int row; switch (CFA(MCURow, MCUCol)) { - case CFAColor::RED: // red + using enum CFAColor; + case RED: // red row = R2 + (imgRow >> 1); break; - case CFAColor::GREEN: // green + case GREEN: // green row = G2 + imgRow; break; - case CFAColor::BLUE: // blue + case BLUE: // blue row = B2 + (imgRow >> 1); break; @@ -401,7 +404,7 @@ copy_line<BayerTag>(strip, cur_line, index); } -inline int fuji_compressed_block::fuji_zerobits(BitPumpMSB& pump) { +inline int fuji_compressed_block::fuji_zerobits(BitStreamerMSB& pump) { int count = 0; // Count-and-skip all the leading `0`s. @@ -430,20 +433,20 @@ invariant(value1 >= 0); invariant(value2 > 0); - int lz1 = countl_zero((unsigned)value1); - int lz2 = countl_zero((unsigned)value2); + int lz1 = countl_zero(static_cast<unsigned>(value1)); + int lz2 = countl_zero(static_cast<unsigned>(value2)); int decBits = std::max(lz2 - lz1, 0); if ((value2 << decBits) < value1) ++decBits; return std::min(decBits, 15); } -__attribute__((always_inline)) int +__attribute__((always_inline)) inline int fuji_compressed_block::fuji_decode_sample(int grad, int interp_val, std::array<int_pair, 41>& grads) { int gradient = std::abs(grad); - int sampleBits = fuji_zerobits(pump); + int sampleBits = fuji_zerobits(*pump); int codeBits; int codeDelta; @@ -456,9 +459,9 @@ } int code = 0; - pump.fill(32); + pump->fill(32); if (codeBits) - code = pump.getBitsNoFill(codeBits); + code = pump->getBitsNoFill(codeBits); code += codeDelta; if (code < 0 || code >= common_info.total_values) { @@ -498,14 +501,14 @@ return std::min(interp_val, common_info.q_point[4]); } -__attribute__((always_inline)) int +__attribute__((always_inline)) inline int fuji_compressed_block::fuji_quant_gradient(int v1, int v2) const { const auto& ci = common_info; return 9 * ci.qTableLookup(ci.q_point[4] + v1) + ci.qTableLookup(ci.q_point[4] + v2); } -__attribute__((always_inline)) std::pair<int, int> +__attribute__((always_inline)) inline std::pair<int, int> fuji_compressed_block::fuji_decode_interpolation_even_inner(xt_lines c, int col) const { int Rb = lines(c - 1, 1 + 2 * (col + 0) + 0); @@ -539,7 +542,7 @@ return {grad, interp_val}; } -__attribute__((always_inline)) std::pair<int, int> +__attribute__((always_inline)) inline std::pair<int, int> fuji_compressed_block::fuji_decode_interpolation_odd_inner(xt_lines c, int col) const { int Ra = lines(c + 0, 1 + 2 * (col + 0) + 0); @@ -559,21 +562,21 @@ return {grad, interp_val}; } -__attribute__((always_inline)) int +__attribute__((always_inline)) inline int fuji_compressed_block::fuji_decode_sample_even( xt_lines c, int col, std::array<int_pair, 41>& grads) { auto [grad, interp_val] = fuji_decode_interpolation_even_inner(c, col); return fuji_decode_sample(grad, interp_val, grads); } -__attribute__((always_inline)) int +__attribute__((always_inline)) inline int fuji_compressed_block::fuji_decode_sample_odd(xt_lines c, int col, std::array<int_pair, 41>& grads) { auto [grad, interp_val] = fuji_decode_interpolation_odd_inner(c, col); return fuji_decode_sample(grad, interp_val, grads); } -__attribute__((always_inline)) int +__attribute__((always_inline)) inline int fuji_compressed_block::fuji_decode_interpolation_even(xt_lines c, int col) const { auto [grad, interp_val] = fuji_decode_interpolation_even_inner(c, col); @@ -583,7 +586,7 @@ void fuji_compressed_block::fuji_extend_generic(int start, int end) const { for (int i = start; i <= end; i++) { lines(i, 0) = lines(i - 1, 1); - lines(i, lines.width - 1) = lines(i - 1, lines.width - 2); + lines(i, lines.width() - 1) = lines(i - 1, lines.width() - 2); } } @@ -600,8 +603,8 @@ } template <typename T> -__attribute__((always_inline)) void -fuji_compressed_block::fuji_decode_block(T&& func_even, +__attribute__((always_inline)) inline void +fuji_compressed_block::fuji_decode_block(T func_even, [[maybe_unused]] int cur_line) { invariant(common_info.line_width % 2 == 0); const int line_width = common_info.line_width / 2; @@ -610,7 +613,7 @@ int row) { int grad = row % 3; - struct ColorPos { + struct ColorPos final { int even = 0; int odd = 0; }; @@ -621,7 +624,7 @@ for (int comp = 0; comp != 2; comp++) { int& col = pos[comp].even; int sample = func_even(c[comp], col, grad_even[grad], row, i, comp); - lines(c[comp], 1 + 2 * col + 0) = sample; + lines(c[comp], 1 + 2 * col + 0) = implicit_cast<uint16_t>(sample); ++col; } } @@ -630,7 +633,7 @@ for (int comp = 0; comp != 2; comp++) { int& col = pos[comp].odd; int sample = fuji_decode_sample_odd(c[comp], col, grad_odd[grad]); - lines(c[comp], 1 + 2 * col + 1) = sample; + lines(c[comp], 1 + 2 * col + 1) = implicit_cast<uint16_t>(sample); ++col; } } @@ -646,9 +649,10 @@ std::fill(PerColorCounter.begin(), PerColorCounter.end(), 0); auto ColorCounter = [&PerColorCounter](CFAColor c) -> int& { switch (c) { - case CFAColor::RED: - case CFAColor::GREEN: - case CFAColor::BLUE: + using enum CFAColor; + case RED: + case GREEN: + case BLUE: return PerColorCounter[static_cast<uint8_t>(c)]; default: __builtin_unreachable(); @@ -658,13 +662,14 @@ auto CurLineForColor = [&ColorCounter](CFAColor c) { xt_lines res; switch (c) { - case CFAColor::RED: + using enum CFAColor; + case RED: res = R2; break; - case CFAColor::GREEN: + case GREEN: res = G2; break; - case CFAColor::BLUE: + case BLUE: res = B2; break; default: @@ -677,8 +682,8 @@ }; for (int row = 0; row != 6; ++row) { - CFAColor c0 = CFA(row % CFA.height, /*col=*/0); - CFAColor c1 = CFA(row % CFA.height, /*col=*/1); + CFAColor c0 = CFA(row % CFA.height(), /*col=*/0); + CFAColor c1 = CFA(row % CFA.height(), /*col=*/1); pass({CurLineForColor(c0), CurLineForColor(c1)}, row); for (CFAColor c : {c0, c1}) { switch (c) { @@ -729,7 +734,7 @@ void fuji_compressed_block::fuji_decode_strip(const FujiStrip& strip) { const unsigned line_size = sizeof(uint16_t) * (common_info.line_width + 2); - struct i_pair { + struct i_pair final { int a; int b; }; @@ -760,7 +765,7 @@ for (auto i : colors) { const auto out = CroppedArray2DRef( lines, /*offsetCols=*/0, /*offsetRows=*/i.a + 2, - /*croppedWidth=*/lines.width, /*croppedHeight=*/i.b - 2); + /*croppedWidth=*/lines.width(), /*croppedHeight=*/i.b - 2); // All other lines of each color become uninitialized. MSan::Allocated(out); @@ -768,14 +773,14 @@ // And the first (real, uninitialized) line of each color gets the content // of the last helper column from the last decoded sample of previous // line of that color. - lines(i.a + 2, lines.width - 1) = lines(i.a + 2 - 1, lines.width - 2); + lines(i.a + 2, lines.width() - 1) = lines(i.a + 2 - 1, lines.width() - 2); } } } -class FujiDecompressorImpl { +class FujiDecompressorImpl final { RawImage mRaw; - const Array1DRef<const ByteStream> strips; + const Array1DRef<const Array1DRef<const uint8_t>> strips; const FujiDecompressor::FujiHeader& header; @@ -784,17 +789,18 @@ void decompressThread() const noexcept; public: - FujiDecompressorImpl(const RawImage& mRaw, - Array1DRef<const ByteStream> strips, + FujiDecompressorImpl(RawImage mRaw, + Array1DRef<const Array1DRef<const uint8_t>> strips, const FujiDecompressor::FujiHeader& h); void decompress(); }; FujiDecompressorImpl::FujiDecompressorImpl( - const RawImage& mRaw_, Array1DRef<const ByteStream> strips_, + RawImage mRaw_, Array1DRef<const Array1DRef<const uint8_t>> strips_, const FujiDecompressor::FujiHeader& h_) - : mRaw(mRaw_), strips(strips_), header(h_), common_info(header) {} + : mRaw(std::move(mRaw_)), strips(strips_), header(h_), common_info(header) { +} void FujiDecompressorImpl::decompressThread() const noexcept { fuji_compressed_block block_info(mRaw->getU16DataAsUncroppedArray2DRef(), @@ -804,14 +810,17 @@ #pragma omp for schedule(static) #endif for (int block = 0; block < header.blocks_in_row; ++block) { - FujiStrip strip(header, block, strips(block)); - block_info.reset(common_info); try { - block_info.pump = BitPumpMSB(strip.bs); + FujiStrip strip(header, block, strips(block)); + block_info.reset(); + block_info.pump = BitStreamerMSB(strip.input); block_info.fuji_decode_strip(strip); } catch (const RawspeedException& err) { // Propagate the exception out of OpenMP magic. mRaw->setError(err.what()); + } catch (...) { + // We should not get any other exception type here. + __builtin_unreachable(); } } } @@ -832,8 +841,8 @@ } // namespace -FujiDecompressor::FujiDecompressor(const RawImage& img, ByteStream input_) - : mRaw(img), input(input_) { +FujiDecompressor::FujiDecompressor(RawImage img, ByteStream input_) + : mRaw(std::move(img)), input(input_) { if (mRaw->getCpp() != 1 || mRaw->getDataType() != RawImageType::UINT16 || mRaw->getBpp() != sizeof(uint16_t)) ThrowRDE("Unexpected component count / data type"); @@ -853,14 +862,14 @@ } if (mRaw->cfa.getSize() == iPoint2D(6, 6)) { - std::optional<XTransPhase> p = getAsXTransPhase(mRaw->cfa); + Optional<XTransPhase> p = getAsXTransPhase(mRaw->cfa); if (!p) ThrowRDE("Invalid X-Trans CFA"); if (p != iPoint2D(0, 0)) ThrowRDE("Unexpected X-Trans phase: {%i,%i}. Please file a bug!", p->x, p->y); } else if (mRaw->cfa.getSize() == iPoint2D(2, 2)) { - std::optional<BayerPhase> p = getAsBayerPhase(mRaw->cfa); + Optional<BayerPhase> p = getAsBayerPhase(mRaw->cfa); if (!p) ThrowRDE("Invalid Bayer CFA"); if (p != BayerPhase::RGGB) @@ -886,12 +895,15 @@ strips.reserve(header.blocks_in_row); for (const auto& block_size : block_sizes) - strips.emplace_back(input.getStream(block_size)); + strips.emplace_back(input.getStream(block_size).getAsArray1DRef()); } void FujiDecompressor::decompress() const { FujiDecompressorImpl impl( - mRaw, Array1DRef<const ByteStream>(strips.data(), strips.size()), header); + mRaw, + Array1DRef<const Array1DRef<const uint8_t>>( + strips.data(), implicit_cast<Buffer::size_type>(strips.size())), + header); impl.decompress(); } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/FujiDecompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/FujiDecompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/FujiDecompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/FujiDecompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,19 +21,14 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_READONLY -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Point.h" // for iPoint2D -#include "common/RawImage.h" // for RawImage -#include "decompressors/AbstractDecompressor.h" // for AbstractDecompressor -#include "io/BitPumpMSB.h" // for BitPumpMSB -#include "io/ByteStream.h" // for ByteStream -#include "metadata/ColorFilterArray.h" // for CFAColor -#include <array> // for array -#include <cassert> // for assert -#include <cstdint> // for uint16_t, uint8_t -#include <utility> // for pair -#include <vector> // for vector +#include "rawspeedconfig.h" +#include "adt/Array1DRef.h" +#include "adt/Point.h" +#include "common/RawImage.h" +#include "decompressors/AbstractDecompressor.h" +#include "io/ByteStream.h" +#include <cstdint> +#include <vector> namespace rawspeed { @@ -41,11 +36,11 @@ RawImage mRaw; public: - FujiDecompressor(const RawImage& img, ByteStream input); + FujiDecompressor(RawImage img, ByteStream input); void decompress() const; - struct FujiHeader { + struct FujiHeader final { FujiHeader() = default; explicit FujiHeader(ByteStream& input_); @@ -69,7 +64,7 @@ ByteStream input; - std::vector<ByteStream> strips; + std::vector<Array1DRef<const uint8_t>> strips; }; } // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/HasselbladDecompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,22 +20,25 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "decompressors/HasselbladDecompressor.h" // for HasselbladDecompressor, HasselbladSliceWidths -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D -#include "common/RawImage.h" // for RawImage, RawImageData -#include "common/RawspeedException.h" // for ThrowException -#include "decoders/RawDecoderException.h" // for ThrowRDE -#include "io/ByteStream.h" // for ByteStream -#include <cstdint> // for uint16_t +#include "decompressors/HasselbladDecompressor.h" +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Invariant.h" +#include "adt/Point.h" +#include "bitstreams/BitStreamerMSB32.h" +#include "codes/PrefixCodeDecoder.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "io/ByteStream.h" +#include <cstdint> +#include <utility> namespace rawspeed { -HasselbladDecompressor::HasselbladDecompressor(const RawImage& mRaw_, +HasselbladDecompressor::HasselbladDecompressor(RawImage mRaw_, const PerComponentRecipe& rec_, - ByteStream input_) - : mRaw(mRaw_), rec(rec_), input(input_) { + Array1DRef<const uint8_t> input_) + : mRaw(std::move(mRaw_)), rec(rec_), input(input_) { if (mRaw->getDataType() != RawImageType::UINT16) ThrowRDE("Unexpected data type"); @@ -55,7 +58,7 @@ // Returns len bits as a signed value. // Highest bit is a sign bit -inline int HasselbladDecompressor::getBits(BitPumpMSB32& bs, int len) { +inline int HasselbladDecompressor::getBits(BitStreamerMSB32& bs, int len) { if (!len) return 0; int diff = bs.getBits(len); @@ -68,32 +71,32 @@ ByteStream::size_type HasselbladDecompressor::decompress() { const Array2DRef<uint16_t> out(mRaw->getU16DataAsUncroppedArray2DRef()); - invariant(out.height > 0); - invariant(out.width > 0); - invariant(out.width % 2 == 0); + invariant(out.height() > 0); + invariant(out.width() > 0); + invariant(out.width() % 2 == 0); const auto ht = rec.ht; ht.verifyCodeValuesAsDiffLengths(); - BitPumpMSB32 bitStream(input); + BitStreamerMSB32 bitStreamer(input); // Pixels are packed two at a time, not like LJPEG: // [p1_length_as_huffman][p2_length_as_huffman][p0_diff_with_length][p1_diff_with_length]|NEXT // PIXELS - for (int row = 0; row < out.height; row++) { + for (int row = 0; row < out.height(); row++) { int p1 = rec.initPred; int p2 = rec.initPred; - for (int col = 0; col < out.width; col += 2) { - int len1 = ht.decodeCodeValue(bitStream); - int len2 = ht.decodeCodeValue(bitStream); - p1 += getBits(bitStream, len1); - p2 += getBits(bitStream, len2); + for (int col = 0; col < out.width(); col += 2) { + int len1 = ht.decodeCodeValue(bitStreamer); + int len2 = ht.decodeCodeValue(bitStreamer); + p1 += getBits(bitStreamer, len1); + p2 += getBits(bitStreamer, len2); // NOTE: this is rather unusual and weird, but appears to be correct. // clampBits(p, 16) results in completely garbled images. out(row, col) = uint16_t(p1); out(row, col + 1) = uint16_t(p2); } } - return bitStream.getStreamPosition(); + return bitStreamer.getStreamPosition(); } } // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/HasselbladDecompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/HasselbladDecompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/HasselbladDecompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/HasselbladDecompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -22,30 +22,19 @@ #pragma once -#include "adt/Point.h" // for iPoint2D -#include "adt/iterator_range.h" // for iterator_range -#include "codes/PrefixCodeDecoder.h" // for PrefixCodeDecoder -#include "common/RawImage.h" // for RawImage -#include "common/RawspeedException.h" // for ThrowException -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/BitPumpMSB32.h" // for BitPumpMSB32 -#include "io/Buffer.h" // for Buffer::size_type -#include "io/ByteStream.h" // for ByteStream -#include <array> // for array -#include <cassert> // for assert -#include <cstddef> // for size_t, ptrdiff_t -#include <cstdint> // for uint16_t -#include <functional> // for reference_wrapper -#include <iterator> // for input_iterator_tag -#include <tuple> // for tuple -#include <utility> // for index_sequence -#include <vector> // for vector +#include "adt/Array1DRef.h" +#include "bitstreams/BitStreamerMSB32.h" +#include "codes/PrefixCodeDecoder.h" +#include "common/RawImage.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include <cstdint> namespace rawspeed { class HasselbladDecompressor final { public: - struct PerComponentRecipe { + struct PerComponentRecipe final { const PrefixCodeDecoder<>& ht; const uint16_t initPred; }; @@ -55,13 +44,13 @@ const PerComponentRecipe& rec; - const ByteStream input; + const Array1DRef<const uint8_t> input; - static int getBits(BitPumpMSB32& bs, int len); + static int getBits(BitStreamerMSB32& bs, int len); public: - HasselbladDecompressor(const RawImage& mRaw, const PerComponentRecipe& rec, - ByteStream input); + HasselbladDecompressor(RawImage mRaw, const PerComponentRecipe& rec, + Array1DRef<const uint8_t> input); [[nodiscard]] ByteStream::size_type decompress(); }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,13 +20,15 @@ */ #include "decompressors/HasselbladLJpegDecoder.h" -#include "adt/Point.h" // for iPoint2D -#include "common/RawImage.h" // for RawImage, RawImage... -#include "decoders/RawDecoderException.h" // for ThrowException -#include "decompressors/HasselbladDecompressor.h" // for HasselbladDecompre... -#include "io/ByteStream.h" // for ByteStream -#include <cstdint> // for uint16_t -#include <vector> // for vector +#include "adt/Point.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/AbstractLJpegDecoder.h" +#include "decompressors/HasselbladDecompressor.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include <cstdint> +#include <vector> namespace rawspeed { @@ -45,7 +47,10 @@ } } -void HasselbladLJpegDecoder::decodeScan() { +Buffer::size_type HasselbladLJpegDecoder::decodeScan() { + if (numMCUsPerRestartInterval != 0) + ThrowRDE("Non-zero restart interval not supported."); + if (frame.w != static_cast<unsigned>(mRaw->dim.x) || frame.h != static_cast<unsigned>(mRaw->dim.y)) { ThrowRDE("LJPEG frame does not match EXIF dimensions: (%u; %u) vs (%i; %i)", @@ -55,8 +60,9 @@ const HasselbladDecompressor::PerComponentRecipe rec = { *getPrefixCodeDecoders(1)[0], getInitialPredictors(1)[0]}; - HasselbladDecompressor d(mRaw, rec, input); - input.skipBytes(d.decompress()); + HasselbladDecompressor d(mRaw, rec, + input.peekRemainingBuffer().getAsArray1DRef()); + return d.decompress(); } void HasselbladLJpegDecoder::decode() { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/HasselbladLJpegDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,8 +21,7 @@ #pragma once -#include "decompressors/AbstractLJpegDecoder.h" // for AbstractLJpegDecoder -#include "io/BitPumpMSB32.h" // for BitPumpMSB32 +#include "decompressors/AbstractLJpegDecoder.h" namespace rawspeed { @@ -30,7 +29,13 @@ class RawImage; class HasselbladLJpegDecoder final : public AbstractLJpegDecoder { - void decodeScan() override; + // Old Hasselblad cameras don't end their LJpeg stream with an EOI. + // After fully decoding (first) Scan, just stop. + [[nodiscard]] bool erratumImplicitEOIMarkerAfterScan() const final { + return true; + } + + [[nodiscard]] ByteStream::size_type decodeScan() override; public: HasselbladLJpegDecoder(ByteStream bs, const RawImage& img); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/JpegDecompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,87 +19,95 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "rawspeedconfig.h" // for HAVE_JPEG_MEM_SRC, HAVE_JPEG -#include "adt/AlignedAllocator.h" // for AlignedAllocator +#include "rawspeedconfig.h" // IWYU pragma: keep #ifdef HAVE_JPEG -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Point.h" // for iPoint2D -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE +#include "adt/AlignedAllocator.h" +#include "adt/Array2DRef.h" +#include "adt/Point.h" +#include "decoders/RawDecoderException.h" #include "decompressors/JpegDecompressor.h" -#include <algorithm> // for min, fill_n, max -#include <array> // for array -#include <jpeglib.h> // for jpeg_destroy_decompress -#include <memory> // for unique_ptr -#include <vector> // for vector - -#ifndef HAVE_JPEG_MEM_SRC -#include "io/IOException.h" // for ThrowIOE -#endif +#include "io/IOException.h" +#include <algorithm> +#include <array> +#include <cstddef> +#include <cstdint> +#include <jpeglib.h> +#include <memory> +#include <vector> using std::min; using std::unique_ptr; namespace rawspeed { -#ifdef HAVE_JPEG_MEM_SRC +namespace { -// FIXME: some libjpeg versions discard const qual for the input data pointer -// should this be a cmake check? -#define JPEG_MEMSRC(A, B, C) \ - jpeg_mem_src(A, const_cast<unsigned char*>(B), C) // NOLINT - -#else - -#define JPEG_MEMSRC(A, B, C) jpeg_mem_src_int(A, B, C) /* Read JPEG image from a memory segment */ -static void init_source(j_decompress_ptr cinfo) {} -static boolean fill_input_buffer(j_decompress_ptr cinfo) { - auto* src = (struct jpeg_source_mgr*)cinfo->src; - return (boolean) !!src->bytes_in_buffer; +void init_source(j_decompress_ptr cinfo) { + // No action needed. +} + +boolean fill_input_buffer(j_decompress_ptr cinfo) { + return cinfo->src->bytes_in_buffer != 0; } -static void skip_input_data(j_decompress_ptr cinfo, long num_bytes) { - auto* src = (struct jpeg_source_mgr*)cinfo->src; - if (num_bytes > (int)src->bytes_in_buffer) +// NOLINTNEXTLINE(google-runtime-int) +void skip_input_data(j_decompress_ptr cinfo, long num_bytes) { + auto* src = cinfo->src; + + if (num_bytes > static_cast<int>(src->bytes_in_buffer)) ThrowIOE("read out of buffer"); if (num_bytes > 0) { - src->next_input_byte += (size_t)num_bytes; - src->bytes_in_buffer -= (size_t)num_bytes; +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpragmas" +#pragma GCC diagnostic ignored "-Wunknown-warning-option" +#pragma GCC diagnostic ignored "-Wunsafe-buffer-usage" + src->next_input_byte += static_cast<size_t>(num_bytes); +#pragma GCC diagnostic pop + src->bytes_in_buffer -= static_cast<size_t>(num_bytes); } } -static void term_source(j_decompress_ptr cinfo) {} -static void jpeg_mem_src_int(j_decompress_ptr cinfo, - const unsigned char* buffer, long nbytes) { - struct jpeg_source_mgr* src; + +void term_source(j_decompress_ptr cinfo) { + // No action needed. +} + +[[maybe_unused]] void +jpeg_mem_src_int(j_decompress_ptr cinfo, const unsigned char* buffer, + long nbytes) { // NOLINT(google-runtime-int) + jpeg_source_mgr* src; if (cinfo->src == nullptr) { /* first time for this JPEG object? */ - cinfo->src = (struct jpeg_source_mgr*)(*cinfo->mem->alloc_small)( - (j_common_ptr)cinfo, JPOOL_PERMANENT, sizeof(struct jpeg_source_mgr)); + void* buf = + cinfo->mem->alloc_small(reinterpret_cast<j_common_ptr>(cinfo), + JPOOL_PERMANENT, sizeof(jpeg_source_mgr)); + cinfo->src = static_cast<jpeg_source_mgr*>(buf); } - src = (struct jpeg_source_mgr*)cinfo->src; + src = cinfo->src; src->init_source = init_source; src->fill_input_buffer = fill_input_buffer; src->skip_input_data = skip_input_data; src->resync_to_restart = jpeg_resync_to_restart; /* use default method */ src->term_source = term_source; src->bytes_in_buffer = nbytes; - src->next_input_byte = (const JOCTET*)buffer; + src->next_input_byte = buffer; } -#endif - +// NOLINTNEXTLINE(readability-static-definition-in-anonymous-namespace) [[noreturn]] METHODDEF(void) my_error_throw(j_common_ptr cinfo) { std::array<char, JMSG_LENGTH_MAX> buf; buf.fill(0); - (*cinfo->err->format_message)(cinfo, buf.data()); + cinfo->err->format_message(cinfo, buf.data()); ThrowRDE("JPEG decoder error: %s", buf.data()); } -struct JpegDecompressor::JpegDecompressStruct : jpeg_decompress_struct { +} // namespace + +struct JpegDecompressor::JpegDecompressStruct final : jpeg_decompress_struct { struct jpeg_error_mgr jerr; JpegDecompressStruct(const JpegDecompressStruct&) = delete; @@ -119,9 +127,14 @@ void JpegDecompressor::decode(uint32_t offX, uint32_t offY) { /* Each slice is a JPEG image */ - struct JpegDecompressStruct dinfo; + JpegDecompressStruct dinfo; - JPEG_MEMSRC(&dinfo, input.begin(), input.getSize()); +#ifdef HAVE_JPEG_MEM_SRC + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-const-cast): why, macOS?! + jpeg_mem_src(&dinfo, const_cast<uint8_t*>(input.begin()), input.getSize()); +#else + jpeg_mem_src_int(&dinfo, input.begin(), input.getSize()); +#endif if (JPEG_HEADER_OK != jpeg_read_header(&dinfo, static_cast<boolean>(true))) ThrowRDE("Unable to read JPEG header"); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/JpegDecompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/JpegDecompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/JpegDecompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/JpegDecompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,15 +20,15 @@ #pragma once -#include "rawspeedconfig.h" // for HAVE_JPEG +#include "rawspeedconfig.h" #ifdef HAVE_JPEG -#include "common/RawImage.h" // for RawImage -#include "decompressors/AbstractDecompressor.h" // for AbstractDecompressor -#include "io/Buffer.h" // for Buffer -#include <cstdint> // for uint32_t -#include <utility> // for move +#include "common/RawImage.h" +#include "decompressors/AbstractDecompressor.h" +#include "io/Buffer.h" +#include <cstdint> +#include <utility> namespace rawspeed { @@ -39,7 +39,7 @@ RawImage mRaw; public: - JpegDecompressor(Buffer bs, const RawImage& img) : input(bs), mRaw(img) {} + JpegDecompressor(Buffer bs, RawImage img) : input(bs), mRaw(std::move(img)) {} void decode(uint32_t offsetX, uint32_t offsetY); }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/JpegMarkers.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/JpegMarkers.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/JpegMarkers.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/JpegMarkers.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,154 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2009-2014 Klaus Post + Copyright (C) 2017 Axel Waggershauser + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "adt/Optional.h" +#include "io/ByteStream.h" +#include <cstdint> + +#pragma once + +/* + * The following enum and two structs are stolen from the IJG JPEG library + * Comments added by tm. See also Copyright in PrefixCodeDecoder.h. + */ + +namespace rawspeed { + +// JPEG marker codes +enum class JpegMarker : uint8_t { + STUFF = 0x00, + SOF0 = 0xc0, // baseline DCT + SOF1 = 0xc1, // extended sequential DCT + SOF2 = 0xc2, // progressive DCT + SOF3 = 0xc3, // lossless (sequential) + + SOF5 = 0xc5, // differential sequential DCT + + SOF6 = 0xc6, // differential progressive DCT + + SOF7 = 0xc7, // differential lossless + + JPG = 0xc8, // JPEG extensions + SOF9 = 0xc9, // extended sequential DCT + SOF10 = 0xca, // progressive DCT + SOF11 = 0xcb, // lossless (sequential) + + SOF13 = 0xcd, // differential sequential DCT + + SOF14 = 0xce, // differential progressive DCT + + SOF15 = 0xcf, // differential lossless + + DHT = 0xc4, // define Huffman tables + + DAC = 0xcc, // define arithmetic conditioning table + + RST0 = 0xd0, // restart + RST1 = 0xd1, // restart + RST2 = 0xd2, // restart + RST3 = 0xd3, // restart + RST4 = 0xd4, // restart + RST5 = 0xd5, // restart + RST6 = 0xd6, // restart + RST7 = 0xd7, // restart + + SOI = 0xd8, // start of image + EOI = 0xd9, // end of image + SOS = 0xda, // start of scan + DQT = 0xdb, // define quantization tables + DNL = 0xdc, // define number of lines + DRI = 0xdd, // define restart interval + DHP = 0xde, // define hierarchical progression + EXP = 0xdf, // expand reference image(s) + + APP0 = 0xe0, // application marker, used for JFIF + APP1 = 0xe1, // application marker + APP2 = 0xe2, // application marker + APP3 = 0xe3, // application marker + APP4 = 0xe4, // application marker + APP5 = 0xe5, // application marker + APP6 = 0xe6, // application marker + APP7 = 0xe7, // application marker + APP8 = 0xe8, // application marker + APP9 = 0xe9, // application marker + APP10 = 0xea, // application marker + APP11 = 0xeb, // application marker + APP12 = 0xec, // application marker + APP13 = 0xed, // application marker + APP14 = 0xee, // application marker, used by Adobe + APP15 = 0xef, // application marker + + JPG0 = 0xf0, // reserved for JPEG extensions + + JPG13 = 0xfd, // reserved for JPEG extensions + + COM = 0xfe, // comment + + TEM = 0x01, // temporary use + FILL = 0xFF + +}; + +inline Optional<JpegMarker> peekMarker(ByteStream input) { + uint8_t c0 = input.peekByte(0); + uint8_t c1 = input.peekByte(1); + + if (c0 == 0xFF && c1 != 0 && c1 != 0xFF) + return static_cast<JpegMarker>(c1); + return {}; +} + +inline Optional<ByteStream> advanceToNextMarker(ByteStream input, + bool skipPadding) { + while (input.getRemainSize() >= 2) { + if (Optional<JpegMarker> m = peekMarker(input)) + return input; + + // Marker not found. Might there be leading padding bytes? + if (!skipPadding) + break; // Nope, give up. + + // Advance by a single(!) byte and try again. + input.skipBytes(1); + } + + return std::nullopt; +} + +// Get the number of this restart marker (modulo 8). +inline Optional<int> getRestartMarkerNumber(JpegMarker m) { + switch (m) { + using enum JpegMarker; + case RST0: + case RST1: + case RST2: + case RST3: + case RST4: + case RST5: + case RST6: + case RST7: + return static_cast<uint8_t>(m) - static_cast<uint8_t>(RST0); + default: + return std::nullopt; // Not a restart marker. + } +} + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/KodakDecompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -21,23 +21,31 @@ */ #include "decompressors/KodakDecompressor.h" -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D -#include "codes/PrefixCodeDecoder.h" // for PrefixCodeDecoder -#include "common/Common.h" // for extractHighBits, isIntN -#include "common/RawImage.h" // for RawImage, RawImageData -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/ByteStream.h" // for ByteStream -#include <algorithm> // for min, fill_n -#include <array> // for array -#include <cstdint> // for uint32_t, uint8_t, uint16_t +#include "adt/Array2DRef.h" +#include "adt/Bit.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "adt/Point.h" +#include "codes/PrefixCodeDecoder.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include <algorithm> +#include <array> +#include <cstddef> +#include <cstdint> +#include <utility> + +#if __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__) +#include <sanitizer/asan_interface.h> +#endif namespace rawspeed { -KodakDecompressor::KodakDecompressor(const RawImage& img, ByteStream bs, - int bps_, bool uncorrectedRawValues_) - : mRaw(img), input(bs), bps(bps_), +KodakDecompressor::KodakDecompressor(RawImage img, ByteStream bs, int bps_, + bool uncorrectedRawValues_) + : mRaw(std::move(img)), input(bs), bps(bps_), uncorrectedRawValues(uncorrectedRawValues_) { if (mRaw->getCpp() != 1 || mRaw->getDataType() != RawImageType::UINT16 || mRaw->getBpp() != sizeof(uint16_t)) @@ -53,7 +61,7 @@ // Lower estimate: this decompressor requires *at least* half a byte // per output pixel - (void)input.check(mRaw->dim.area() / 2ULL); + (void)input.check(implicit_cast<Buffer::size_type>(mRaw->dim.area() / 2ULL)); } KodakDecompressor::segment @@ -68,7 +76,7 @@ #if __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__) // We are to produce only bsize pixels. __sanitizer_annotate_contiguous_container(out.begin(), out.end(), out.end(), - out.begin() + bsize); + &out[bsize]); #endif std::array<uint8_t, 2 * segment_size> blen; @@ -102,7 +110,8 @@ bitbuf >>= len; bits -= len; - out[i] = len != 0 ? PrefixCodeDecoder<>::extend(diff, len) : int(diff); + out[i] = implicit_cast<int16_t>( + len != 0 ? PrefixCodeDecoder<>::extend(diff, len) : int(diff)); } return out; @@ -112,8 +121,8 @@ const Array2DRef<uint16_t> out(mRaw->getU16DataAsUncroppedArray2DRef()); uint32_t random = 0; - for (int row = 0; row < out.height; row++) { - for (int col = 0; col < out.width;) { + for (int row = 0; row < out.height(); row++) { + for (int col = 0; col < out.width();) { const int len = std::min(segment_size, mRaw->dim.x - col); const segment buf = decodeSegment(len); @@ -129,10 +138,12 @@ ThrowRDE("Value out of bounds %d (bps = %i)", value, bps); if (uncorrectedRawValues) - out(row, col) = value; - else - mRaw->setWithLookUp(value, reinterpret_cast<uint8_t*>(&out(row, col)), + out(row, col) = implicit_cast<uint16_t>(value); + else { + mRaw->setWithLookUp(implicit_cast<uint16_t>(value), + reinterpret_cast<std::byte*>(&out(row, col)), &random); + } } } } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/KodakDecompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/KodakDecompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/KodakDecompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/KodakDecompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -22,11 +22,11 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decompressors/AbstractDecompressor.h" // for AbstractDecompressor -#include "io/ByteStream.h" // for ByteStream -#include <array> // for array -#include <cstdint> // for int16_t, uint32_t +#include "common/RawImage.h" +#include "decompressors/AbstractDecompressor.h" +#include "io/ByteStream.h" +#include <array> +#include <cstdint> namespace rawspeed { @@ -42,7 +42,7 @@ segment decodeSegment(uint32_t bsize); public: - KodakDecompressor(const RawImage& img, ByteStream bs, int bps, + KodakDecompressor(RawImage img, ByteStream bs, int bps, bool uncorrectedRawValues_); void decompress(); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/LJpegDecoder.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,17 +20,20 @@ */ #include "decompressors/LJpegDecoder.h" -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D, iRectangle2D -#include "codes/PrefixCodeDecoder.h" // for PrefixCodeDecoder -#include "common/RawImage.h" // for RawImage, RawImageData -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "decompressors/LJpegDecompressor.h" // for LJpegDecompressor::PerC... -#include "io/ByteStream.h" // for ByteStream -#include <algorithm> // for generate_n -#include <array> // for array -#include <iterator> // for back_insert_iterator -#include <vector> // for vector +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "adt/Point.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/AbstractLJpegDecoder.h" +#include "decompressors/LJpegDecompressor.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include <algorithm> +#include <array> +#include <cstdint> +#include <iterator> +#include <vector> using std::copy_n; @@ -89,7 +92,7 @@ AbstractLJpegDecoder::decodeSOI(); } -void LJpegDecoder::decodeScan() { +Buffer::size_type LJpegDecoder::decodeScan() { invariant(frame.cps > 0); if (predictorMode != 1) @@ -107,14 +110,31 @@ [&rec, hts = getPrefixCodeDecoders(N_COMP), initPred = getInitialPredictors( N_COMP)]() -> LJpegDecompressor::PerComponentRecipe { - const int i = rec.size(); + const auto i = implicit_cast<int>(rec.size()); return {*hts[i], initPred[i]}; }); - LJpegDecompressor d( - mRaw, iRectangle2D({(int)offX, (int)offY}, {(int)w, (int)h}), - LJpegDecompressor::Frame{N_COMP, iPoint2D(frame.w, frame.h)}, rec, input); - d.decode(); + const iRectangle2D imgFrame = { + {static_cast<int>(offX), static_cast<int>(offY)}, + {static_cast<int>(w), static_cast<int>(h)}}; + const LJpegDecompressor::Frame jpegFrame = {N_COMP, + iPoint2D(frame.w, frame.h)}; + + int numRowsPerRestartInterval; + if (numMCUsPerRestartInterval == 0) { + // Restart interval not enabled, so all of the rows + // are contained in the first (implicit) restart interval. + numRowsPerRestartInterval = jpegFrame.dim.y; + } else { + const int numMCUsPerRow = jpegFrame.dim.x; + if (numMCUsPerRestartInterval % numMCUsPerRow != 0) + ThrowRDE("Restart interval is not a multiple of frame row size"); + numRowsPerRestartInterval = numMCUsPerRestartInterval / numMCUsPerRow; + } + + LJpegDecompressor d(mRaw, imgFrame, jpegFrame, rec, numRowsPerRestartInterval, + input.peekRemainingBuffer().getAsArray1DRef()); + return d.decode(); } } // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/LJpegDecoder.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/LJpegDecoder.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/LJpegDecoder.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/LJpegDecoder.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,8 +20,8 @@ #pragma once -#include "decompressors/AbstractLJpegDecoder.h" // for AbstractLJpegDe... -#include <cstdint> // for uint32_t +#include "decompressors/AbstractLJpegDecoder.h" +#include <cstdint> namespace rawspeed { @@ -31,7 +31,7 @@ // Decompresses Lossless JPEGs, with 2-4 components class LJpegDecoder final : public AbstractLJpegDecoder { - void decodeScan() override; + [[nodiscard]] ByteStream::size_type decodeScan() override; uint32_t offX = 0; uint32_t offY = 0; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/LJpegDecompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,29 +20,44 @@ */ #include "decompressors/LJpegDecompressor.h" -#include "adt/CroppedArray2DRef.h" // for CroppedArray2DRef -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D, iRectangle2D -#include "common/Common.h" // for roundUpDivision -#include "common/RawImage.h" // for RawImage, RawImageData -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/BitPumpJPEG.h" // for BitPumpJPEG, BitStream<>::... -#include "io/ByteStream.h" // for ByteStream -#include <algorithm> // for transform -#include <array> // for array -#include <memory> // for allocator_traits<>::value_... -#include <utility> // for move +#include "adt/Array1DRef.h" +#include "adt/Casts.h" +#include "adt/CroppedArray2DRef.h" +#include "adt/Invariant.h" +#include "adt/Optional.h" +#include "adt/Point.h" +#include "bitstreams/BitStreamerJPEG.h" +#include "codes/PrefixCodeDecoder.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/JpegMarkers.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <algorithm> +#include <array> +#include <cinttypes> +#include <cstddef> +#include <cstdint> +#include <functional> +#include <limits> +#include <utility> +#include <vector> using std::copy_n; namespace rawspeed { -LJpegDecompressor::LJpegDecompressor(const RawImage& img, - iRectangle2D imgFrame_, Frame frame_, +LJpegDecompressor::LJpegDecompressor(RawImage img, iRectangle2D imgFrame_, + Frame frame_, std::vector<PerComponentRecipe> rec_, - ByteStream bs) - : mRaw(img), input(bs), imgFrame(imgFrame_), frame(std::move(frame_)), - rec(std::move(rec_)) { + int numRowsPerRestartInterval_, + Array1DRef<const uint8_t> input_) + : mRaw(std::move(img)), input(input_), imgFrame(imgFrame_), + frame(std::move(frame_)), rec(std::move(rec_)), + numRowsPerRestartInterval(numRowsPerRestartInterval_) { + if (mRaw->getDataType() != RawImageType::UINT16) ThrowRDE("Unexpected data type (%u)", static_cast<unsigned>(mRaw->getDataType())); @@ -55,6 +70,9 @@ if (!mRaw->dim.hasPositiveArea()) ThrowRDE("Image has zero size"); + if (!imgFrame.hasPositiveArea()) + ThrowRDE("Tile has zero size"); + #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION // Yeah, sure, here it would be just dumb to leave this for production :) if (mRaw->dim.x > 7424 || mRaw->dim.y > 5552) { @@ -81,7 +99,7 @@ if (frame.cps < 1 || frame.cps > 4) ThrowRDE("Unsupported number of components: %u", frame.cps); - if (rec.size() != (unsigned)frame.cps) + if (rec.size() != static_cast<unsigned>(frame.cps)) ThrowRDE("Must have exactly one recepie per component"); for (const auto& recip : rec) { @@ -89,29 +107,37 @@ ThrowRDE("Huffman table is not of a full decoding variety"); } - if ((unsigned)frame.cps < mRaw->getCpp()) - ThrowRDE("Unexpected number of components"); + // We assume that the tile width requires at least one frame column. + if (imgFrame.dim.x < frame.cps) + ThrowRDE("Tile width is smaller than the frame cps"); - if ((int64_t)frame.cps * frame.dim.x > std::numeric_limits<int>::max()) + if (static_cast<int64_t>(frame.cps) * frame.dim.x > + std::numeric_limits<int>::max()) ThrowRDE("LJpeg frame is too big"); invariant(mRaw->dim.x > imgFrame.pos.x); - if (((int)mRaw->getCpp() * (mRaw->dim.x - imgFrame.pos.x)) < frame.cps) + if ((static_cast<int>(mRaw->getCpp()) * (mRaw->dim.x - imgFrame.pos.x)) < + frame.cps) ThrowRDE("Got less pixels than the components per sample"); // How many output pixels are we expected to produce, as per DNG tiling? - const int tileRequiredWidth = (int)mRaw->getCpp() * imgFrame.dim.x; + const int tileRequiredWidth = + static_cast<int>(mRaw->getCpp()) * imgFrame.dim.x; // How many full pixel blocks do we need to consume for that? - if (const int blocksToConsume = roundUpDivision(tileRequiredWidth, frame.cps); + if (const auto blocksToConsume = + implicit_cast<int>(roundUpDivision(tileRequiredWidth, frame.cps)); frame.dim.x < blocksToConsume || frame.dim.y < imgFrame.dim.y || - (int64_t)frame.cps * frame.dim.x < - (int64_t)mRaw->getCpp() * imgFrame.dim.x) { - ThrowRDE("LJpeg frame (%u, %u) is smaller than expected (%u, %u)", - frame.cps * frame.dim.x, frame.dim.y, tileRequiredWidth, - imgFrame.dim.y); + static_cast<int64_t>(frame.cps) * frame.dim.x < + static_cast<int64_t>(mRaw->getCpp()) * imgFrame.dim.x) { + ThrowRDE("LJpeg frame (%" PRIu64 ", %u) is smaller than expected (%u, %u)", + static_cast<int64_t>(frame.cps) * frame.dim.x, frame.dim.y, + tileRequiredWidth, imgFrame.dim.y); } + if (numRowsPerRestartInterval < 1) + ThrowRDE("Number of rows per restart interval must be positives"); + // How many full pixel blocks will we produce? fullBlocks = tileRequiredWidth / frame.cps; // Truncating division! // Do we need to also produce part of a block? @@ -141,13 +167,61 @@ return preds; } -// N_COMP == number of components (2, 3 or 4) +template <int N_COMP, bool WeirdWidth> +void LJpegDecompressor::decodeRowN( + CroppedArray1DRef<uint16_t> outRow, std::array<uint16_t, N_COMP> pred, + std::array<std::reference_wrapper<const PrefixCodeDecoder<>>, N_COMP> ht, + BitStreamerJPEG& bs) const { + // FIXME: predictor may have value outside of the uint16_t. + // https://github.com/darktable-org/rawspeed/issues/175 + + int col = 0; + // For x, we first process all full pixel blocks within the image buffer ... + for (; col < N_COMP * fullBlocks; col += N_COMP) { + for (int i = 0; i != N_COMP; ++i) { + pred[i] = + uint16_t(pred[i] + (static_cast<const PrefixCodeDecoder<>&>(ht[i])) + .decodeDifference(bs)); + outRow(col + i) = pred[i]; + } + } + + // Sometimes we also need to consume one more block, and produce part of it. + if /*constexpr*/ (WeirdWidth) { + // FIXME: evaluate i-cache implications due to this being compile-time. + static_assert(N_COMP > 1 || !WeirdWidth, + "can't want part of 1-pixel-wide block"); + // Some rather esoteric DNG's have odd dimensions, e.g. width % 2 = 1. + // We may end up needing just part of last N_COMP pixels. + invariant(trailingPixels > 0); + invariant(trailingPixels < N_COMP); + int c = 0; + for (; c < trailingPixels; ++c) { + pred[c] = + uint16_t(pred[c] + (static_cast<const PrefixCodeDecoder<>&>(ht[c])) + .decodeDifference(bs)); + outRow(col + c) = pred[c]; + } + // Discard the rest of the block. + invariant(c < N_COMP); + for (; c < N_COMP; ++c) { + (static_cast<const PrefixCodeDecoder<>&>(ht[c])).decodeDifference(bs); + } + col += N_COMP; // We did just process one more block. + } + + // ... and discard the rest. + for (; col < N_COMP * frame.dim.x; col += N_COMP) { + for (int i = 0; i != N_COMP; ++i) + (static_cast<const PrefixCodeDecoder<>&>(ht[i])).decodeDifference(bs); + } +} -template <int N_COMP, bool WeirdWidth> void LJpegDecompressor::decodeN() { +// N_COMP == number of components (2, 3 or 4) +template <int N_COMP, bool WeirdWidth> +ByteStream::size_type LJpegDecompressor::decodeN() const { invariant(mRaw->getCpp() > 0); invariant(N_COMP > 0); - invariant(N_COMP >= mRaw->getCpp()); - invariant((N_COMP / mRaw->getCpp()) > 0); invariant(mRaw->dim.x >= N_COMP); invariant((mRaw->getCpp() * (mRaw->dim.x - imgFrame.pos.x)) >= N_COMP); @@ -157,90 +231,85 @@ mRaw->getCpp() * imgFrame.dim.x, imgFrame.dim.y); const auto ht = getPrefixCodeDecoders<N_COMP>(); - auto pred = getInitialPreds<N_COMP>(); - uint16_t* predNext = pred.data(); - - BitPumpJPEG bitStream(input); // A recoded DNG might be split up into tiles of self contained LJpeg blobs. // The tiles at the bottom and the right may extend beyond the dimension of // the raw image buffer. The excessive content has to be ignored. invariant(frame.dim.y >= imgFrame.dim.y); - invariant((int64_t)frame.cps * frame.dim.x >= - (int64_t)mRaw->getCpp() * imgFrame.dim.x); + invariant(static_cast<int64_t>(frame.cps) * frame.dim.x >= + static_cast<int64_t>(mRaw->getCpp()) * imgFrame.dim.x); invariant(imgFrame.pos.y + imgFrame.dim.y <= mRaw->dim.y); invariant(imgFrame.pos.x + imgFrame.dim.x <= mRaw->dim.x); - // For y, we can simply stop decoding when we reached the border. - for (int row = 0; row < imgFrame.dim.y; ++row) { - int col = 0; - - copy_n(predNext, N_COMP, pred.data()); - // the predictor for the next line is the start of this line - predNext = &img(row, col); - - // FIXME: predictor may have value outside of the uint16_t. - // https://github.com/darktable-org/rawspeed/issues/175 - - // For x, we first process all full pixel blocks within the image buffer ... - for (; col < N_COMP * fullBlocks; col += N_COMP) { - for (int i = 0; i != N_COMP; ++i) { - pred[i] = uint16_t( - pred[i] + - ((const PrefixCodeDecoder<>&)(ht[i])).decodeDifference(bitStream)); - img(row, col + i) = pred[i]; - } + const auto numRestartIntervals = implicit_cast<int>( + roundUpDivision(imgFrame.dim.y, numRowsPerRestartInterval)); + invariant(numRestartIntervals >= 0); + invariant(numRestartIntervals != 0); + + ByteStream inputStream(DataBuffer(input, Endianness::little)); + for (int restartIntervalIndex = 0; + restartIntervalIndex != numRestartIntervals; ++restartIntervalIndex) { + auto pred = getInitialPreds<N_COMP>(); + auto predNext = Array1DRef(pred.data(), pred.size()); + + if (restartIntervalIndex != 0) { + auto marker = peekMarker(inputStream); + if (!marker) // FIXME: can there be padding bytes before the marker? + ThrowRDE("Jpeg marker not encountered"); + Optional<int> number = getRestartMarkerNumber(*marker); + if (!number) + ThrowRDE("Not a restart marker!"); + if (*number != ((restartIntervalIndex - 1) % 8)) + ThrowRDE("Unexpected restart marker found"); + inputStream.skipBytes(2); // Good restart marker. } - // Sometimes we also need to consume one more block, and produce part of it. - if /*constexpr*/ (WeirdWidth) { - // FIXME: evaluate i-cache implications due to this being compile-time. - static_assert(N_COMP > 1 || !WeirdWidth, - "can't want part of 1-pixel-wide block"); - // Some rather esoteric DNG's have odd dimensions, e.g. width % 2 = 1. - // We may end up needing just part of last N_COMP pixels. - invariant(trailingPixels > 0); - invariant(trailingPixels < N_COMP); - int c = 0; - for (; c < trailingPixels; ++c) { - pred[c] = uint16_t( - pred[c] + - ((const PrefixCodeDecoder<>&)(ht[c])).decodeDifference(bitStream)); - img(row, col + c) = pred[c]; - } - // Discard the rest of the block. - invariant(c < N_COMP); - for (; c < N_COMP; ++c) { - ((const PrefixCodeDecoder<>&)(ht[c])).decodeDifference(bitStream); + BitStreamerJPEG bs(inputStream.peekRemainingBuffer().getAsArray1DRef()); + + for (int rowOfRestartInterval = 0; + rowOfRestartInterval != numRowsPerRestartInterval; + ++rowOfRestartInterval) { + const int row = numRowsPerRestartInterval * restartIntervalIndex + + rowOfRestartInterval; + invariant(row >= 0); + invariant(row <= imgFrame.dim.y); + + // For y, we can simply stop decoding when we reached the border. + if (row == imgFrame.dim.y) { + invariant((restartIntervalIndex + 1) == numRestartIntervals); + break; } - col += N_COMP; // We did just process one more block. - } - // ... and discard the rest. - for (; col < N_COMP * frame.dim.x; col += N_COMP) { - for (int i = 0; i != N_COMP; ++i) - ((const PrefixCodeDecoder<>&)(ht[i])).decodeDifference(bitStream); + auto outRow = img[row]; + copy_n(predNext.begin(), N_COMP, pred.data()); + // the predictor for the next line is the start of this line + predNext = outRow + .getBlock(/*size=*/N_COMP, + /*index=*/0) + .getAsArray1DRef(); + + decodeRowN<N_COMP, WeirdWidth>(outRow, pred, ht, bs); } + + inputStream.skipBytes(bs.getStreamPosition()); } + + return inputStream.getPosition(); } -void LJpegDecompressor::decode() { +ByteStream::size_type LJpegDecompressor::decode() const { if (trailingPixels == 0) { switch (frame.cps) { case 1: - decodeN<1>(); - break; + return decodeN<1>(); case 2: - decodeN<2>(); - break; + return decodeN<2>(); case 3: - decodeN<3>(); - break; + return decodeN<3>(); case 4: - decodeN<4>(); - break; + return decodeN<4>(); default: __builtin_unreachable(); } @@ -251,14 +320,11 @@ switch (frame.cps) { // Naturally can't happen for CPS=1. case 2: - decodeN<2, /*WeirdWidth=*/true>(); - break; + return decodeN<2, /*WeirdWidth=*/true>(); case 3: - decodeN<3, /*WeirdWidth=*/true>(); - break; + return decodeN<3, /*WeirdWidth=*/true>(); case 4: - decodeN<4, /*WeirdWidth=*/true>(); - break; + return decodeN<4, /*WeirdWidth=*/true>(); default: __builtin_unreachable(); } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/LJpegDecompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/LJpegDecompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/LJpegDecompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/LJpegDecompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,16 +21,18 @@ #pragma once -#include "adt/Point.h" // for iPoint2D, iRectangle2D -#include "codes/PrefixCodeDecoder.h" // for PrefixCodeDecoder -#include "common/RawImage.h" // for RawImage -#include "io/ByteStream.h" // for ByteStream -#include <array> // for array -#include <cstdint> // for uint16_t -#include <functional> // for reference_wrapper -#include <stddef.h> // for size_t -#include <tuple> // for array -#include <vector> // for vector +#include "adt/Array1DRef.h" +#include "adt/Point.h" +#include "bitstreams/BitStreamerJPEG.h" +#include "codes/PrefixCodeDecoder.h" +#include "common/RawImage.h" +#include "io/ByteStream.h" +#include <array> +#include <cstddef> +#include <cstdint> +#include <functional> +#include <utility> +#include <vector> namespace rawspeed { @@ -38,23 +40,24 @@ class LJpegDecompressor final { public: - struct Frame { + struct Frame final { const int cps; const iPoint2D dim; }; - struct PerComponentRecipe { + struct PerComponentRecipe final { const PrefixCodeDecoder<>& ht; const uint16_t initPred; }; private: RawImage mRaw; - ByteStream input; + const Array1DRef<const uint8_t> input; const iRectangle2D imgFrame; const Frame frame; const std::vector<PerComponentRecipe> rec; + const int numRowsPerRestartInterval; int fullBlocks = 0; int trailingPixels = 0; @@ -72,13 +75,22 @@ template <int N_COMP> [[nodiscard]] std::array<uint16_t, N_COMP> getInitialPreds() const; - template <int N_COMP, bool WeirdWidth = false> void decodeN(); + template <int N_COMP, bool WeirdWidth> + __attribute__((always_inline)) inline void decodeRowN( + CroppedArray1DRef<uint16_t> outRow, std::array<uint16_t, N_COMP> pred, + std::array<std::reference_wrapper<const PrefixCodeDecoder<>>, N_COMP> ht, + BitStreamerJPEG& bs) const; + + template <int N_COMP, bool WeirdWidth = false> + [[nodiscard]] ByteStream::size_type decodeN() const; public: - LJpegDecompressor(const RawImage& img, iRectangle2D imgFrame, Frame frame, - std::vector<PerComponentRecipe> rec, ByteStream bs); + LJpegDecompressor(RawImage img, iRectangle2D imgFrame, Frame frame, + std::vector<PerComponentRecipe> rec, + int numRowsPerRestartInterval_, + Array1DRef<const uint8_t> input); - void decode(); + [[nodiscard]] ByteStream::size_type decode() const; }; } // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/NikonDecompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,23 +19,28 @@ */ #include "decompressors/NikonDecompressor.h" -#include "adt/Array1DRef.h" // for Array1DRef -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Bit.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "adt/Point.h" +#include "bitstreams/BitStreamerMSB.h" +#include "codes/AbstractPrefixCode.h" #include "codes/HuffmanCode.h" -#include "codes/PrefixCodeDecoder.h" // for PrefixCodeDecoder -#include "common/Common.h" // for extractHighBits, clampBits -#include "common/RawImage.h" // for RawImage, RawImageData -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/BitPumpMSB.h" // for BitPumpMSB, BitStream<>::f... -#include "io/Buffer.h" // for Buffer -#include "io/ByteStream.h" // for ByteStream -#include <algorithm> // for fill_n, fill, max, copy -#include <cassert> // for assert -#include <cstdint> // for uint16_t, uint32_t, int16_t -#include <cstdio> // for size_t -#include <vector> // for vector +#include "codes/PrefixCodeDecoder.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include <array> +#include <cassert> +#include <cstddef> +#include <cstdint> +#include <cstdio> +#include <utility> +#include <vector> namespace rawspeed { @@ -71,11 +76,11 @@ 0x000000ff, 0x0000007f, 0x0000003f, 0x0000001f, 0x0000000f, 0x00000007, 0x00000003, 0x00000001}}; -class NikonLASDecompressor { +class NikonLASDecompressor final { bool mUseBigtable = true; bool mDNGCompatible = false; - struct PrefixCodeDecoder { + struct PrefixCodeDecoder final { /* * These two fields directly represent the contents of a JPEG DHT * marker @@ -104,7 +109,7 @@ int l; int lastp; int si; - std::array<char, 257> huffsize; + std::array<int8_t, 257> huffsize; std::array<uint16_t, 257> huffcode; uint16_t code; int size; @@ -119,7 +124,7 @@ p = 0; for (l = 1; l <= 16; l++) { for (i = 1; i <= static_cast<int>(dctbl1.bits[l]); i++) { - huffsize[p] = static_cast<char>(l); + huffsize[p] = static_cast<int8_t>(l); ++p; if (p > 256) ThrowRDE("LJpegDecoder::createPrefixCodeDecoder: Code length too " @@ -157,7 +162,7 @@ p = 0; for (l = 1; l <= 16; l++) { if (dctbl1.bits[l]) { - dctbl1.valptr[l] = p; + dctbl1.valptr[l] = implicit_cast<int16_t>(p); dctbl1.mincode[l] = huffcode[p]; p += dctbl1.bits[l]; dctbl1.maxcode[l] = huffcode[p - 1]; @@ -230,8 +235,8 @@ dctbl1.bigTable.resize(size); for (uint32_t i = 0; i < size; i++) { - uint16_t input = i << 2; // Calculate input value - int code = input >> 8; // Get 8 bits + auto input = implicit_cast<uint16_t>(i << 2); // Calculate input value + int code = input >> 8; // Get 8 bits uint32_t val = dctbl1.numbits[code]; l = val & 15; if (l) { @@ -313,11 +318,11 @@ * Next coded symbol * * Side effects: - * Bitstream is parsed. + * Bitstreamer is parsed. * *-------------------------------------------------------------- */ - int decodeDifference(BitPumpMSB& bits) { + int decodeDifference(BitStreamerMSB& bits) { int rv; int l; int temp; @@ -390,12 +395,12 @@ assert(curve.size() > 1); for (size_t i = 0; i < curve.size(); i++) - curve[i] = i; + curve[i] = implicit_cast<uint16_t>(i); uint32_t step = 0; uint32_t csize = metadata.getU16(); if (csize > 1) - step = curve.size() / (csize - 1); + step = implicit_cast<uint32_t>(curve.size() / (csize - 1)); if (v0 == 68 && (v1 == 32 || v1 == 64) && step > 0) { if ((csize - 1) * step != curve.size() - 1) @@ -406,7 +411,7 @@ for (size_t i = 0; i < curve.size() - 1; i++) { const uint32_t b_scale = i % step; - const uint32_t a_pos = i - b_scale; + const auto a_pos = implicit_cast<uint32_t>(i - b_scale); const uint32_t b_pos = a_pos + step; assert(a_pos < curve.size()); assert(b_pos > 0); @@ -414,7 +419,8 @@ assert(a_pos < b_pos); const uint32_t a_scale = step - b_scale; - curve[i] = (a_scale * curve[a_pos] + b_scale * curve[b_pos]) / step; + curve[i] = implicit_cast<uint16_t>( + (a_scale * curve[a_pos] + b_scale * curve[b_pos]) / step); } metadata.setPosition(562); @@ -464,9 +470,9 @@ return ht; } -NikonDecompressor::NikonDecompressor(const RawImage& raw, ByteStream metadata, +NikonDecompressor::NikonDecompressor(RawImage raw, ByteStream metadata, uint32_t bitsPS_) - : mRaw(raw), bitsPS(bitsPS_) { + : mRaw(std::move(raw)), bitsPS(bitsPS_) { if (mRaw->getCpp() != 1 || mRaw->getDataType() != RawImageType::UINT16 || mRaw->getBpp() != sizeof(uint16_t)) ThrowRDE("Unexpected component count / data type"); @@ -510,7 +516,8 @@ } template <typename Huffman> -void NikonDecompressor::decompress(BitPumpMSB& bits, int start_y, int end_y) { +void NikonDecompressor::decompress(BitStreamerMSB& bits, int start_y, + int end_y) { auto ht = createPrefixCodeDecoder<Huffman>(huffSelect); const Array2DRef<uint16_t> out(mRaw->getU16DataAsUncroppedArray2DRef()); @@ -518,25 +525,26 @@ // allow gcc to devirtualize the calls below auto* rawdata = reinterpret_cast<RawImageDataU16*>(mRaw.get()); - invariant(out.width % 2 == 0); - invariant(out.width >= 2); + invariant(out.width() % 2 == 0); + invariant(out.width() >= 2); for (int row = start_y; row < end_y; row++) { std::array<int, 2> pred = pUp[row & 1]; - for (int col = 0; col < out.width; col++) { + for (int col = 0; col < out.width(); col++) { pred[col & 1] += ht.decodeDifference(bits); if (col < 2) pUp[row & 1][col & 1] = pred[col & 1]; rawdata->setWithLookUp(clampBits(pred[col & 1], 15), - reinterpret_cast<uint8_t*>(&out(row, col)), + reinterpret_cast<std::byte*>(&out(row, col)), &random); } } } -void NikonDecompressor::decompress(ByteStream data, bool uncorrectedRawValues) { +void NikonDecompressor::decompress(Array1DRef<const uint8_t> input, + bool uncorrectedRawValues) { RawImageCurveGuard curveHandler(&mRaw, curve, uncorrectedRawValues); - BitPumpMSB bits(data); + BitStreamerMSB bits(input); random = bits.peekBits(24); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/NikonDecompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/NikonDecompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/NikonDecompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/NikonDecompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,13 +20,14 @@ #pragma once +#include "adt/Array1DRef.h" +#include "bitstreams/BitStreamerMSB.h" #include "codes/PrefixCodeDecoder.h" -#include "common/RawImage.h" // for RawImage -#include "decompressors/AbstractDecompressor.h" // for AbstractDecompressor -#include "io/BitPumpMSB.h" // for BitPumpMSB -#include <array> // for array -#include <cstdint> // for uint32_t, uint16_t -#include <vector> // for vector +#include "common/RawImage.h" +#include "decompressors/AbstractDecompressor.h" +#include <array> +#include <cstdint> +#include <vector> namespace rawspeed { class ByteStream; @@ -48,9 +49,9 @@ uint32_t random; public: - NikonDecompressor(const RawImage& raw, ByteStream metadata, uint32_t bitsPS); + NikonDecompressor(RawImage raw, ByteStream metadata, uint32_t bitsPS); - void decompress(ByteStream data, bool uncorrectedRawValues); + void decompress(Array1DRef<const uint8_t> input, bool uncorrectedRawValues); private: static const std::array<std::array<std::array<uint8_t, 16>, 2>, 6> nikon_tree; @@ -59,7 +60,7 @@ uint32_t v1, uint32_t* split); template <typename Huffman> - void decompress(BitPumpMSB& bits, int start_y, int end_y); + void decompress(BitStreamerMSB& bits, int start_y, int end_y); template <typename Huffman> static Huffman createPrefixCodeDecoder(uint32_t huffSelect); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/OlympusDecompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,36 +20,24 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "rawspeedconfig.h" // for RAWSPEED_READNONE #include "decompressors/OlympusDecompressor.h" -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D -#include "common/RawImage.h" // for RawImage, RawImageData -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/BitPumpMSB.h" // for BitPumpMSB -#include "io/ByteStream.h" // for ByteStream -#include <array> // for array -#include <cstdlib> // for abs -#include <type_traits> // for enable_if_t - -namespace { - -// Normally, we'd just use std::signbit(int) here. But, some (non-conforming?) -// compilers do not provide that overload, so the code simply fails to compile. -// One could cast the int to the double, but at least right now that results -// in a horrible code. So let's just provide our own signbit(). It compiles to -// the exact same code as the std::signbit(int). -template <typename T, typename = std::enable_if_t<std::is_integral_v<T>>> -constexpr RAWSPEED_READNONE bool SignBit(T x) { - return x < 0; -} - -} // namespace +#include "adt/Array2DRef.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "adt/Point.h" +#include "bitstreams/BitStreamerMSB.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "io/ByteStream.h" +#include <array> +#include <cmath> +#include <cstdint> +#include <cstdlib> +#include <utility> namespace rawspeed { -OlympusDecompressor::OlympusDecompressor(const RawImage& img) : mRaw(img) { +OlympusDecompressor::OlympusDecompressor(RawImage img) : mRaw(std::move(img)) { if (mRaw->getCpp() != 1 || mRaw->getDataType() != RawImageType::UINT16 || mRaw->getBpp() != sizeof(uint16_t)) ThrowRDE("Unexpected component count / data type"); @@ -69,7 +57,7 @@ */ inline __attribute__((always_inline)) int -OlympusDecompressor::parseCarry(BitPumpMSB& bits, +OlympusDecompressor::parseCarry(BitStreamerMSB& bits, std::array<int, 3>* carry) const { bits.fill(); int i = 2 * ((*carry)[2] < 3); @@ -120,7 +108,7 @@ int upMinusNw = up - leftUp; // Check if sign is different, and they are both not zero - if ((SignBit(leftMinusNw) ^ SignBit(upMinusNw)) && + if ((std::signbit(leftMinusNw) != std::signbit(upMinusNw)) && (leftMinusNw != 0 && upMinusNw != 0)) { if (std::abs(leftMinusNw) > 32 || std::abs(upMinusNw) > 32) pred = left + upMinusNw; @@ -133,7 +121,7 @@ return pred; } -void OlympusDecompressor::decompressRow(BitPumpMSB& bits, int row) const { +void OlympusDecompressor::decompressRow(BitStreamerMSB& bits, int row) const { invariant(mRaw->dim.y > 0); invariant(mRaw->dim.x > 0); invariant(mRaw->dim.x % 2 == 0); @@ -142,7 +130,7 @@ std::array<std::array<int, 3>, 2> acarry{{}}; - for (int col = 0; col < out.width; col++) { + for (int col = 0; col < out.width(); col++) { int c = col & 1; std::array<int, 3>& carry = acarry[c]; @@ -150,7 +138,7 @@ int diff = parseCarry(bits, &carry); int pred = getPred(out, row, col); - out(row, col) = pred + diff; + out(row, col) = implicit_cast<uint16_t>(pred + diff); } } @@ -160,7 +148,7 @@ invariant(mRaw->dim.x % 2 == 0); input.skipBytes(7); - BitPumpMSB bits(input); + BitStreamerMSB bits(input.peekRemainingBuffer().getAsArray1DRef()); for (int y = 0; y < mRaw->dim.y; y++) decompressRow(bits, y); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/OlympusDecompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/OlympusDecompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/OlympusDecompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/OlympusDecompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,14 +20,15 @@ #pragma once -#include "common/Common.h" // for extractHighBits -#include "common/RawImage.h" // for RawImage -#include "common/SimpleLUT.h" // for SimpleLUT<>::value_type -#include "decompressors/AbstractDecompressor.h" // for AbstractDecompressor -#include "io/BitPumpMSB.h" // for BitPumpMSB -#include <algorithm> // for min -#include <array> // for array -#include <cstdint> // for uint16_t +#include "adt/Bit.h" +#include "bitstreams/BitStreamerMSB.h" +#include "common/RawImage.h" +#include "common/SimpleLUT.h" +#include "decompressors/AbstractDecompressor.h" +#include <algorithm> +#include <array> +#include <cstddef> +#include <cstdint> namespace rawspeed { @@ -38,8 +39,8 @@ RawImage mRaw; // A table to quickly look up "high" value - const SimpleLUT<char, 12> bittable{ - [](unsigned i, [[maybe_unused]] unsigned tableSize) { + const SimpleLUT<int8_t, 12> bittable{ + [](size_t i, [[maybe_unused]] unsigned tableSize) { int high; for (high = 0; high < 12; high++) if (extractHighBits(i, high, /*effectiveBitwidth=*/11) & 1) @@ -48,14 +49,14 @@ }}; inline __attribute__((always_inline)) int - parseCarry(BitPumpMSB& bits, std::array<int, 3>* carry) const; + parseCarry(BitStreamerMSB& bits, std::array<int, 3>* carry) const; static inline int getPred(Array2DRef<uint16_t> out, int row, int col); - void decompressRow(BitPumpMSB& bits, int row) const; + void decompressRow(BitStreamerMSB& bits, int row) const; public: - explicit OlympusDecompressor(const RawImage& img); + explicit OlympusDecompressor(RawImage img); void decompress(ByteStream input) const; }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,32 +20,37 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "rawspeedconfig.h" // for HAVE_OPENMP +#include "rawspeedconfig.h" #include "decompressors/PanasonicV4Decompressor.h" -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Invariant.h" // for invariant -#include "adt/Mutex.h" // for MutexLocker -#include "adt/Point.h" // for iPoint2D, iPoint2D::value_... -#include "common/Common.h" // for extractHighBits, rawspeed_... -#include "common/RawImage.h" // for RawImage, RawImageData -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/Buffer.h" // for Buffer, Buffer::size_type -#include <algorithm> // for copy, max, fill_n, generate_n -#include <array> // for array -#include <cassert> // for assert -#include <cstdint> // for uint32_t, uint8_t, uint16_t -#include <iterator> // for back_insert_iterator, back... -#include <limits> // for numeric_limits -#include <memory> // for allocator_traits<>::value_... -#include <vector> // for vector, vector<>::iterator +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Bit.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "adt/Mutex.h" +#include "adt/Point.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include <algorithm> +#include <array> +#include <cassert> +#include <cstddef> +#include <cstdint> +#include <iterator> +#include <limits> +#include <utility> +#include <vector> namespace rawspeed { -PanasonicV4Decompressor::PanasonicV4Decompressor(const RawImage& img, +PanasonicV4Decompressor::PanasonicV4Decompressor(RawImage img, ByteStream input_, bool zero_is_not_bad, uint32_t section_split_offset_) - : mRaw(img), zero_is_bad(!zero_is_not_bad), + : mRaw(std::move(img)), zero_is_bad(!zero_is_not_bad), section_split_offset(section_split_offset_) { if (mRaw->getCpp() != 1 || mRaw->getDataType() != RawImageType::UINT16 || mRaw->getBpp() != sizeof(uint16_t)) @@ -75,7 +80,7 @@ if (bufSize > std::numeric_limits<ByteStream::size_type>::max()) ThrowRDE("Raw dimensions require input buffer larger than supported"); - input = input_.peekStream(bufSize); + input = input_.peekStream(implicit_cast<Buffer::size_type>(bufSize)); chopInputIntoBlocks(); } @@ -89,7 +94,9 @@ const auto blocksTotal = roundUpDivision(input.getRemainSize(), BlockSize); invariant(blocksTotal > 0); invariant(blocksTotal * PixelsPerBlock >= mRaw->dim.area()); - blocks.reserve(blocksTotal); + assert(blocksTotal <= std::numeric_limits<uint32_t>::max()); + assert(blocksTotal <= std::numeric_limits<size_t>::max()); + blocks.reserve(implicit_cast<size_t>(blocksTotal)); unsigned currPixel = 0; std::generate_n( @@ -200,7 +207,7 @@ pred[c] = nonz[c] << 4 | bits.getBits(4); } - out(row, col) = pred[c]; + out(row, col) = implicit_cast<uint16_t>(pred[c]); if (zero_is_bad && 0 == pred[c]) zero_pos->push_back((row << 16) | col); @@ -240,8 +247,15 @@ #ifdef HAVE_OPENMP #pragma omp for schedule(static) #endif - for (auto block = blocks.cbegin(); block < blocks.cend(); ++block) - processBlock(*block, &zero_pos); + for (const auto& block : + Array1DRef(blocks.data(), implicit_cast<int>(blocks.size()))) { + try { + processBlock(block, &zero_pos); + } catch (...) { + // We should not get any exceptions here. + __builtin_unreachable(); + } + } if (zero_is_bad && !zero_pos.empty()) { MutexLocker guard(&mRaw->mBadPixelMutex); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV4Decompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,13 +20,12 @@ #pragma once -#include "adt/Point.h" // for iPoint2D -#include "common/RawImage.h" // for RawImage -#include "decompressors/AbstractDecompressor.h" // for AbstractDecompressor -#include "io/ByteStream.h" // for ByteStream -#include <cstdint> // for uint32_t -#include <utility> // for move -#include <vector> // for vector +#include "adt/Point.h" +#include "common/RawImage.h" +#include "decompressors/AbstractDecompressor.h" +#include "io/ByteStream.h" +#include <cstdint> +#include <vector> namespace rawspeed { @@ -55,7 +54,7 @@ // I.e. these two parts need to be swapped around. uint32_t section_split_offset; - struct Block { + struct Block final { ByteStream bs; iPoint2D beginCoord; // The rectangle is an incorrect representation. All the rows @@ -83,8 +82,8 @@ void decompressThread() const noexcept; public: - PanasonicV4Decompressor(const RawImage& img, ByteStream input_, - bool zero_is_not_bad, uint32_t section_split_offset_); + PanasonicV4Decompressor(RawImage img, ByteStream input_, bool zero_is_not_bad, + uint32_t section_split_offset_); void decompress() const noexcept; }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,23 +20,31 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "rawspeedconfig.h" // for HAVE_OPENMP +#include "rawspeedconfig.h" #include "decompressors/PanasonicV5Decompressor.h" -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D, iPoint2D::value_... -#include "common/Common.h" // for rawspeed_get_number_of_pro... -#include "common/RawImage.h" // for RawImage, RawImageData -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/BitPumpLSB.h" // for BitPumpLSB -#include "io/Buffer.h" // for Buffer, Buffer::size_type -#include "io/Endianness.h" // for Endianness, Endianness::li... -#include <algorithm> // for copy, generate_n, max -#include <cassert> // for assert -#include <cstdint> // for uint8_t, uint16_t, uint32_t -#include <iterator> // for back_insert_iterator, back... -#include <memory> // for allocator_traits<>::value_... -#include <vector> // for vector +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "adt/Point.h" +#include "bitstreams/BitStreamerLSB.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <algorithm> +#include <cassert> +#include <cstddef> +#include <cstdint> +#include <iterator> +#include <utility> +#include <vector> + +#ifndef NDEBUG +#include <limits> +#endif namespace rawspeed { @@ -59,10 +67,10 @@ PanasonicV5Decompressor::FourteenBitPacket = PanasonicV5Decompressor::PacketDsc(/*bps=*/14); -PanasonicV5Decompressor::PanasonicV5Decompressor(const RawImage& img, +PanasonicV5Decompressor::PanasonicV5Decompressor(RawImage img, ByteStream input_, uint32_t bps_) - : mRaw(img), bps(bps_) { + : mRaw(std::move(img)), bps(bps_) { if (mRaw->getCpp() != 1 || mRaw->getDataType() != RawImageType::UINT16 || mRaw->getBpp() != sizeof(uint16_t)) ThrowRDE("Unexpected component count / data type"); @@ -100,7 +108,8 @@ ThrowRDE("Insufficient count of input blocks for a given image"); // We only want those blocks we need, no extras. - input = input_.peekStream(numBlocks, BlockSize); + input = + input_.peekStream(implicit_cast<Buffer::size_type>(numBlocks), BlockSize); chopInputIntoBlocks(*dsc); } @@ -111,7 +120,9 @@ }; invariant(numBlocks * BlockSize == input.getRemainSize()); - blocks.reserve(numBlocks); + assert(numBlocks <= std::numeric_limits<uint32_t>::max()); + assert(numBlocks <= std::numeric_limits<size_t>::max()); + blocks.reserve(implicit_cast<size_t>(numBlocks)); const auto pixelsPerBlock = dsc.pixelsPerPacket * PacketsPerBlock; invariant((numBlocks - 1U) * pixelsPerBlock < mRaw->dim.area()); @@ -161,8 +172,9 @@ invariant(block.getRemainSize() == 0); // And reset the clock. - input = ByteStream( - DataBuffer(Buffer(buf.data(), buf.size()), Endianness::little)); + input = ByteStream(DataBuffer( + Buffer(buf.data(), implicit_cast<Buffer::size_type>(buf.size())), + Endianness::little)); // input.setByteOrder(Endianness::big); // does not seem to matter?! } @@ -176,7 +188,8 @@ }; template <const PanasonicV5Decompressor::PacketDsc& dsc> -inline void PanasonicV5Decompressor::processPixelPacket(BitPumpLSB& bs, int row, +inline void PanasonicV5Decompressor::processPixelPacket(BitStreamerLSB& bs, + int row, int col) const { static_assert(dsc.pixelsPerPacket > 0, "dsc should be compile-time const"); static_assert(dsc.bps > 0 && dsc.bps <= 16); @@ -187,8 +200,8 @@ for (int p = 0; p < dsc.pixelsPerPacket;) { bs.fill(); - for (; bs.getFillLevel() >= dsc.bps; ++p, ++col) - out(row, col) = bs.getBitsNoFill(dsc.bps); + for (; bs.getFillLevel() >= implicit_cast<int>(dsc.bps); ++p, ++col) + out(row, col) = implicit_cast<uint16_t>(bs.getBitsNoFill(dsc.bps)); } bs.skipBitsNoFill(bs.getFillLevel()); // get rid of padding. } @@ -199,7 +212,7 @@ static_assert(BlockSize % bytesPerPacket == 0); ProxyStream proxy(block.bs); - BitPumpLSB bs(proxy.getStream()); + BitStreamerLSB bs(proxy.getStream().peekRemainingBuffer().getAsArray1DRef()); for (int row = block.beginCoord.y; row <= block.endCoord.y; row++) { int col = 0; @@ -226,10 +239,17 @@ #pragma omp parallel for num_threads(rawspeed_get_number_of_processor_cores()) \ schedule(static) default(none) #endif - for (auto block = blocks.cbegin(); block < blocks.cend(); - ++block) { // NOLINT(openmp-exception-escape): we have checked size - // already. - processBlock<dsc>(*block); + for (const auto& block : + Array1DRef(blocks.data(), + implicit_cast<int>( + blocks.size()))) { // NOLINT(openmp-exception-escape): we + // have checked size already. + try { + processBlock<dsc>(block); + } catch (...) { + // We should not get any exceptions here. + __builtin_unreachable(); + } } } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV5Decompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,15 +21,13 @@ #pragma once -#include "adt/Point.h" // for iPoint2D -#include "common/RawImage.h" // for RawImage -#include "decompressors/AbstractDecompressor.h" // for AbstractDecompressor -#include "io/BitPumpLSB.h" // for BitPumpLSB -#include "io/ByteStream.h" // for ByteStream -#include <cstddef> // for size_t -#include <cstdint> // for uint32_t -#include <utility> // for move -#include <vector> // for vector +#include "adt/Point.h" +#include "bitstreams/BitStreamerLSB.h" +#include "common/RawImage.h" +#include "decompressors/AbstractDecompressor.h" +#include "io/ByteStream.h" +#include <cstdint> +#include <vector> namespace rawspeed { @@ -70,9 +68,9 @@ const uint32_t bps; - size_t numBlocks; + uint64_t numBlocks; - struct Block { + struct Block final { ByteStream bs; iPoint2D beginCoord; // The rectangle is an incorrect representation. All the rows @@ -91,15 +89,14 @@ void chopInputIntoBlocks(const PacketDsc& dsc); template <const PacketDsc& dsc> - inline void processPixelPacket(BitPumpLSB& bs, int row, int col) const; + inline void processPixelPacket(BitStreamerLSB& bs, int row, int col) const; template <const PacketDsc& dsc> void processBlock(const Block& block) const; template <const PacketDsc& dsc> void decompressInternal() const noexcept; public: - PanasonicV5Decompressor(const RawImage& img, ByteStream input_, - uint32_t bps_); + PanasonicV5Decompressor(RawImage img, ByteStream input_, uint32_t bps_); void decompress() const noexcept; }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,17 +19,21 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "rawspeedconfig.h" // for HAVE_OPENMP +#include "rawspeedconfig.h" #include "decompressors/PanasonicV6Decompressor.h" -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D -#include "common/Common.h" // for rawspeed_get_number_of_pro... -#include "common/RawImage.h" // for RawImage, RawImageData -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/BitPumpLSB.h" // for BitPumpLSB -#include <array> // for array -#include <cstdint> // for uint16_t, uint32_t +#include "adt/Array2DRef.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "adt/Point.h" +#include "bitstreams/BitStreamerLSB.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include <array> +#include <cstdint> +#include <utility> namespace rawspeed { @@ -64,7 +68,7 @@ PanasonicV6Decompressor::BlockDsc(/*bps=*/14); namespace { -template <int B> struct pana_cs6_page_decoder { +template <int B> struct pana_cs6_page_decoder final { static_assert((B == 14 || B == 12), "only 12/14 bits are valid!"); static constexpr int BufferSize = B == 14 ? 14 : 18; std::array<uint16_t, BufferSize> pixelbuffer; @@ -84,56 +88,56 @@ template <> inline void __attribute__((always_inline)) pana_cs6_page_decoder<12>::fillBuffer(ByteStream bs_) noexcept { - BitPumpLSB bs(bs_); + BitStreamerLSB bs(bs_.peekRemainingBuffer().getAsArray1DRef()); bs.fill(32); - pixelbuffer[17] = bs.getBits(8); - pixelbuffer[16] = bs.getBits(8); - pixelbuffer[15] = bs.getBits(8); - pixelbuffer[14] = bs.getBits(2); - pixelbuffer[13] = bs.getBits(8); - pixelbuffer[12] = bs.getBits(8); - pixelbuffer[11] = bs.getBits(8); - pixelbuffer[10] = bs.getBits(2); - pixelbuffer[9] = bs.getBits(8); - pixelbuffer[8] = bs.getBits(8); - pixelbuffer[7] = bs.getBits(8); - pixelbuffer[6] = bs.getBits(2); - pixelbuffer[5] = bs.getBits(8); - pixelbuffer[4] = bs.getBits(8); - pixelbuffer[3] = bs.getBits(8); - pixelbuffer[2] = bs.getBits(2); - pixelbuffer[1] = bs.getBits(12); - pixelbuffer[0] = bs.getBits(12); + pixelbuffer[17] = implicit_cast<uint16_t>(bs.getBits(8)); + pixelbuffer[16] = implicit_cast<uint16_t>(bs.getBits(8)); + pixelbuffer[15] = implicit_cast<uint16_t>(bs.getBits(8)); + pixelbuffer[14] = implicit_cast<uint16_t>(bs.getBits(2)); + pixelbuffer[13] = implicit_cast<uint16_t>(bs.getBits(8)); + pixelbuffer[12] = implicit_cast<uint16_t>(bs.getBits(8)); + pixelbuffer[11] = implicit_cast<uint16_t>(bs.getBits(8)); + pixelbuffer[10] = implicit_cast<uint16_t>(bs.getBits(2)); + pixelbuffer[9] = implicit_cast<uint16_t>(bs.getBits(8)); + pixelbuffer[8] = implicit_cast<uint16_t>(bs.getBits(8)); + pixelbuffer[7] = implicit_cast<uint16_t>(bs.getBits(8)); + pixelbuffer[6] = implicit_cast<uint16_t>(bs.getBits(2)); + pixelbuffer[5] = implicit_cast<uint16_t>(bs.getBits(8)); + pixelbuffer[4] = implicit_cast<uint16_t>(bs.getBits(8)); + pixelbuffer[3] = implicit_cast<uint16_t>(bs.getBits(8)); + pixelbuffer[2] = implicit_cast<uint16_t>(bs.getBits(2)); + pixelbuffer[1] = implicit_cast<uint16_t>(bs.getBits(12)); + pixelbuffer[0] = implicit_cast<uint16_t>(bs.getBits(12)); } template <> inline void __attribute__((always_inline)) pana_cs6_page_decoder<14>::fillBuffer(ByteStream bs_) noexcept { - BitPumpLSB bs(bs_); + BitStreamerLSB bs(bs_.peekRemainingBuffer().getAsArray1DRef()); bs.fill(32); bs.skipBitsNoFill(4); - pixelbuffer[13] = bs.getBits(10); - pixelbuffer[12] = bs.getBits(10); - pixelbuffer[11] = bs.getBits(10); - pixelbuffer[10] = bs.getBits(2); - pixelbuffer[9] = bs.getBits(10); - pixelbuffer[8] = bs.getBits(10); - pixelbuffer[7] = bs.getBits(10); - pixelbuffer[6] = bs.getBits(2); - pixelbuffer[5] = bs.getBits(10); - pixelbuffer[4] = bs.getBits(10); - pixelbuffer[3] = bs.getBits(10); - pixelbuffer[2] = bs.getBits(2); - pixelbuffer[1] = bs.getBits(14); - pixelbuffer[0] = bs.getBits(14); + pixelbuffer[13] = implicit_cast<uint16_t>(bs.getBits(10)); + pixelbuffer[12] = implicit_cast<uint16_t>(bs.getBits(10)); + pixelbuffer[11] = implicit_cast<uint16_t>(bs.getBits(10)); + pixelbuffer[10] = implicit_cast<uint16_t>(bs.getBits(2)); + pixelbuffer[9] = implicit_cast<uint16_t>(bs.getBits(10)); + pixelbuffer[8] = implicit_cast<uint16_t>(bs.getBits(10)); + pixelbuffer[7] = implicit_cast<uint16_t>(bs.getBits(10)); + pixelbuffer[6] = implicit_cast<uint16_t>(bs.getBits(2)); + pixelbuffer[5] = implicit_cast<uint16_t>(bs.getBits(10)); + pixelbuffer[4] = implicit_cast<uint16_t>(bs.getBits(10)); + pixelbuffer[3] = implicit_cast<uint16_t>(bs.getBits(10)); + pixelbuffer[2] = implicit_cast<uint16_t>(bs.getBits(2)); + pixelbuffer[1] = implicit_cast<uint16_t>(bs.getBits(14)); + pixelbuffer[0] = implicit_cast<uint16_t>(bs.getBits(14)); } } // namespace -PanasonicV6Decompressor::PanasonicV6Decompressor(const RawImage& img, +PanasonicV6Decompressor::PanasonicV6Decompressor(RawImage img, ByteStream input_, uint32_t bps_) - : mRaw(img), bps(bps_) { + : mRaw(std::move(img)), bps(bps_) { if (mRaw->getCpp() != 1 || mRaw->getDataType() != RawImageType::UINT16 || mRaw->getBpp() != sizeof(uint16_t)) ThrowRDE("Unexpected component count / data type"); @@ -165,7 +169,8 @@ ThrowRDE("Insufficient count of input blocks for a given image"); // We only want those blocks we need, no extras. - input = input_.peekStream(numBlocks, dsc->BytesPerBlock); + input = input_.peekStream(implicit_cast<Buffer::size_type>(numBlocks), + dsc->BytesPerBlock); } template <const PanasonicV6Decompressor::BlockDsc& dsc> @@ -201,7 +206,7 @@ if (epixel) nonzero[pix % 2] = epixel; else - epixel = nonzero[pix % 2]; + epixel = implicit_cast<uint16_t>(nonzero[pix % 2]); } auto spix = static_cast<unsigned>(static_cast<int>(epixel) - 0xf); if (spix <= dsc.SpixCompare) @@ -237,7 +242,12 @@ for (int row = 0; row < mRaw->dim.y; ++row) { // NOLINT(openmp-exception-escape): we know no exceptions will // be thrown. - decompressRow<dsc>(row); + try { + decompressRow<dsc>(row); + } catch (...) { + // We should not get any exceptions here. + __builtin_unreachable(); + } } } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV6Decompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,10 +20,10 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decompressors/AbstractDecompressor.h" // for AbstractDecompressor -#include "io/ByteStream.h" // for ByteStream -#include <cstdint> // for uint32_t +#include "common/RawImage.h" +#include "decompressors/AbstractDecompressor.h" +#include "io/ByteStream.h" +#include <cstdint> namespace rawspeed { @@ -52,8 +52,7 @@ template <const BlockDsc& dsc> void decompressInternal() const noexcept; public: - PanasonicV6Decompressor(const RawImage& img, ByteStream input_, - uint32_t bps_); + PanasonicV6Decompressor(RawImage img, ByteStream input_, uint32_t bps_); void decompress() const noexcept; }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,24 +19,28 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "rawspeedconfig.h" // for HAVE_OPENMP +#include "rawspeedconfig.h" #include "decompressors/PanasonicV7Decompressor.h" -#include "adt/Array1DRef.h" // for Array1DRef -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/CroppedArray1DRef.h" // for CroppedArray1DRef -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D -#include "common/Common.h" // for rawspeed_get_number_of_pro... -#include "common/RawImage.h" // for RawImage, RawImageData -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/BitPumpLSB.h" // for BitPumpLSB -#include <cstdint> // for uint16_t +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Casts.h" +#include "adt/CroppedArray1DRef.h" +#include "adt/Invariant.h" +#include "adt/Point.h" +#include "bitstreams/BitStreamerLSB.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include <cstdint> +#include <utility> namespace rawspeed { -PanasonicV7Decompressor::PanasonicV7Decompressor(const RawImage& img, +PanasonicV7Decompressor::PanasonicV7Decompressor(RawImage img, ByteStream input_) - : mRaw(img) { + : mRaw(std::move(img)) { if (mRaw->getCpp() != 1 || mRaw->getDataType() != RawImageType::UINT16 || mRaw->getBpp() != sizeof(uint16_t)) ThrowRDE("Unexpected component count / data type"); @@ -56,7 +60,8 @@ ThrowRDE("Insufficient count of input blocks for a given image"); // We only want those blocks we need, no extras. - input = input_.peekStream(numBlocks, BytesPerBlock); + input = input_.peekStream(implicit_cast<Buffer::size_type>(numBlocks), + BytesPerBlock); } inline void __attribute__((always_inline)) @@ -64,9 +69,9 @@ PanasonicV7Decompressor::decompressBlock( ByteStream block, CroppedArray1DRef<uint16_t> out) noexcept { invariant(out.size() == PixelsPerBlock); - BitPumpLSB pump(block); + BitStreamerLSB pump(block.peekRemainingBuffer().getAsArray1DRef()); for (int pix = 0; pix < PixelsPerBlock; pix++) - out(pix) = pump.getBits(BitsPerSample); + out(pix) = implicit_cast<uint16_t>(pump.getBits(BitsPerSample)); } // NOLINTNEXTLINE(bugprone-exception-escape): no exceptions will be thrown. @@ -81,8 +86,7 @@ ByteStream rowInput = input.getSubStream(bytesPerRow * row, bytesPerRow); for (int rblock = 0; rblock < blocksperrow; rblock++) { ByteStream block = rowInput.getStream(BytesPerBlock); - decompressBlock(block, - outRow.getCrop(PixelsPerBlock * rblock, PixelsPerBlock)); + decompressBlock(block, outRow.getBlock(PixelsPerBlock, rblock)); } } @@ -94,7 +98,12 @@ for (int row = 0; row < mRaw->dim.y; ++row) { // NOLINT(openmp-exception-escape): we know no exceptions will // be thrown. - decompressRow(row); + try { + decompressRow(row); + } catch (...) { + // We should not get any exceptions here. + __builtin_unreachable(); + } } } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PanasonicV7Decompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,12 +20,11 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decompressors/AbstractDecompressor.h" // for AbstractDecompressor -#include "io/ByteStream.h" // for ByteStream -#include <climits> // for CHAR_BIT -#include <cstdint> // for uint16_t -#include <functional> +#include "common/RawImage.h" +#include "decompressors/AbstractDecompressor.h" +#include "io/ByteStream.h" +#include <climits> +#include <cstdint> namespace rawspeed { template <class T> class CroppedArray1DRef; @@ -48,7 +47,7 @@ void decompressRow(int row) const noexcept; public: - PanasonicV7Decompressor(const RawImage& img, ByteStream input_); + PanasonicV7Decompressor(RawImage img, ByteStream input_); void decompress() const; }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PentaxDecompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,22 +19,26 @@ */ #include "decompressors/PentaxDecompressor.h" -#include "adt/Array1DRef.h" // for Array1DRef -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Bit.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "adt/Optional.h" +#include "adt/Point.h" +#include "bitstreams/BitStreamerMSB.h" +#include "codes/AbstractPrefixCode.h" #include "codes/HuffmanCode.h" -#include "codes/PrefixCodeDecoder.h" // for PrefixCodeDecoder -#include "common/Common.h" // for extractHighBits, isIntN -#include "common/RawImage.h" // for RawImage, RawImageData -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/BitPumpMSB.h" // for BitPumpMSB, BitStream<>::f... -#include "io/Buffer.h" // for Buffer -#include "io/ByteStream.h" // for ByteStream -#include <algorithm> // for max, fill, fill_n, copy -#include <cassert> // for assert -#include <cstdint> // for uint8_t, uint32_t, uint16_t -#include <vector> // for vector +#include "codes/PrefixCodeDecoder.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include <array> +#include <cassert> +#include <cstdint> +#include <utility> +#include <vector> namespace rawspeed { @@ -46,9 +50,9 @@ {3, 4, 2, 5, 1, 6, 0, 7, 8, 9, 10, 11, 12}}}, }}; -PentaxDecompressor::PentaxDecompressor(const RawImage& img, - std::optional<ByteStream> metaData) - : mRaw(img), ht(SetupPrefixCodeDecoder(metaData)) { +PentaxDecompressor::PentaxDecompressor(RawImage img, + Optional<ByteStream> metaData) + : mRaw(std::move(img)), ht(SetupPrefixCodeDecoder(metaData)) { if (mRaw->getCpp() != 1 || mRaw->getDataType() != RawImageType::UINT16 || mRaw->getBpp() != sizeof(uint16_t)) ThrowRDE("Unexpected component count / data type"); @@ -124,7 +128,7 @@ } } invariant(sm_num < 16); - codeValues.push_back(sm_num); + codeValues.push_back(implicit_cast<uint8_t>(sm_num)); v2[sm_num] = 0xffffffff; } @@ -135,8 +139,8 @@ } PrefixCodeDecoder<> -PentaxDecompressor::SetupPrefixCodeDecoder(std::optional<ByteStream> metaData) { - std::optional<HuffmanCode<BaselineCodeTag>> hc; +PentaxDecompressor::SetupPrefixCodeDecoder(Optional<ByteStream> metaData) { + Optional<HuffmanCode<BaselineCodeTag>> hc; if (metaData) hc = SetupPrefixCodeDecoder_Modern(*metaData); @@ -152,22 +156,22 @@ void PentaxDecompressor::decompress(ByteStream data) const { const Array2DRef<uint16_t> out(mRaw->getU16DataAsUncroppedArray2DRef()); - invariant(out.height > 0); - invariant(out.width > 0); - invariant(out.width % 2 == 0); + invariant(out.height() > 0); + invariant(out.width() > 0); + invariant(out.width() % 2 == 0); - BitPumpMSB bs(data); - for (int row = 0; row < out.height; row++) { + BitStreamerMSB bs(data.peekRemainingBuffer().getAsArray1DRef()); + for (int row = 0; row < out.height(); row++) { std::array<int, 2> pred = {{}}; if (row >= 2) pred = {out(row - 2, 0), out(row - 2, 1)}; - for (int col = 0; col < out.width; col++) { + for (int col = 0; col < out.width(); col++) { pred[col & 1] += ht.decodeDifference(bs); int value = pred[col & 1]; if (!isIntN(value, 16)) ThrowRDE("decoded value out of bounds at %d:%d", col, row); - out(row, col) = value; + out(row, col) = implicit_cast<uint16_t>(value); } } } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PentaxDecompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PentaxDecompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PentaxDecompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PentaxDecompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,12 +21,14 @@ #pragma once -#include "codes/PrefixCodeDecoder.h" // for PrefixCodeDecoder -#include "common/RawImage.h" // for RawImage -#include "decompressors/AbstractDecompressor.h" // for AbstractDecompressor -#include <array> // for array -#include <cstdint> // for uint8_t -#include <optional> // for optional +#include "adt/Optional.h" +#include "codes/AbstractPrefixCode.h" +#include "codes/HuffmanCode.h" +#include "codes/PrefixCodeDecoder.h" +#include "common/RawImage.h" +#include "decompressors/AbstractDecompressor.h" +#include <array> +#include <cstdint> namespace rawspeed { @@ -37,7 +39,7 @@ const PrefixCodeDecoder<> ht; public: - PentaxDecompressor(const RawImage& img, std::optional<ByteStream> metaData); + PentaxDecompressor(RawImage img, Optional<ByteStream> metaData); void decompress(ByteStream data) const; @@ -46,7 +48,7 @@ static HuffmanCode<BaselineCodeTag> SetupPrefixCodeDecoder_Modern(ByteStream stream); static PrefixCodeDecoder<> - SetupPrefixCodeDecoder(std::optional<ByteStream> metaData); + SetupPrefixCodeDecoder(Optional<ByteStream> metaData); static const std::array<std::array<std::array<uint8_t, 16>, 2>, 1> pentax_tree; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,28 +20,29 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "rawspeedconfig.h" // for HAVE_OPENMP +#include "rawspeedconfig.h" #include "decompressors/PhaseOneDecompressor.h" -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D -#include "common/Common.h" // for rawspeed_get_number_of_pro... -#include "common/RawImage.h" // for RawImageData, RawImage -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/BitPumpMSB32.h" // for BitPumpMSB32 -#include <algorithm> // for sort, fill_n -#include <array> // for array -#include <cstdint> // for int32_t, uint16_t -#include <memory> // for allocator_traits<>::value_... -#include <string> // for string -#include <utility> // for move -#include <vector> // for vector<>::iterator, vector +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "adt/Point.h" +#include "bitstreams/BitStreamerMSB32.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include <algorithm> +#include <array> +#include <cstdint> +#include <string> +#include <utility> +#include <vector> namespace rawspeed { -PhaseOneDecompressor::PhaseOneDecompressor(const RawImage& img, +PhaseOneDecompressor::PhaseOneDecompressor(RawImage img, std::vector<PhaseOneStrip>&& strips_) - : mRaw(img), strips(std::move(strips_)) { + : mRaw(std::move(img)), strips(std::move(strips_)) { if (mRaw->getDataType() != RawImageType::UINT16) ThrowRDE("Unexpected data type"); @@ -84,22 +85,22 @@ void PhaseOneDecompressor::decompressStrip(const PhaseOneStrip& strip) const { const Array2DRef<uint16_t> out(mRaw->getU16DataAsUncroppedArray2DRef()); - invariant(out.width > 0); - invariant(out.width % 2 == 0); + invariant(out.width() > 0); + invariant(out.width() % 2 == 0); static constexpr std::array<const int, 10> length = {8, 7, 6, 9, 11, 10, 5, 12, 14, 13}; - BitPumpMSB32 pump(strip.bs); + BitStreamerMSB32 pump(strip.bs.peekRemainingBuffer().getAsArray1DRef()); std::array<int32_t, 2> pred; pred.fill(0); std::array<int, 2> len; const int row = strip.n; - for (int col = 0; col < out.width; col++) { + for (int col = 0; col < out.width(); col++) { pump.fill(32); if (static_cast<unsigned>(col) >= - (out.width & ~7U)) // last 'width % 8' pixels. + (out.width() & ~7U)) // last 'width % 8' pixels. len[0] = len[1] = 14; else if ((col & 7) == 0) { for (int& i : len) { @@ -122,9 +123,10 @@ } int i = len[col & 1]; - if (i == 14) - out(row, col) = pred[col & 1] = pump.getBitsNoFill(16); - else { + if (i == 14) { + pred[col & 1] = pump.getBitsNoFill(16); + out(row, col) = implicit_cast<uint16_t>(pred[col & 1]); + } else { pred[col & 1] += static_cast<signed>(pump.getBitsNoFill(i)) + 1 - (1 << (i - 1)); // FIXME: is the truncation the right solution here? @@ -137,12 +139,16 @@ #ifdef HAVE_OPENMP #pragma omp for schedule(static) #endif - for (auto strip = strips.cbegin(); strip < strips.cend(); ++strip) { + for (const auto& strip : + Array1DRef(strips.data(), implicit_cast<int>(strips.size()))) { try { - decompressStrip(*strip); + decompressStrip(strip); } catch (const RawspeedException& err) { // Propagate the exception out of OpenMP magic. mRaw->setError(err.what()); + } catch (...) { + // We should not get any other exception type here. + __builtin_unreachable(); } } } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/PhaseOneDecompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -22,15 +22,14 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decompressors/AbstractDecompressor.h" // for AbstractDecompressor -#include "io/ByteStream.h" // for ByteStream -#include <utility> // for move -#include <vector> // for vector +#include "common/RawImage.h" +#include "decompressors/AbstractDecompressor.h" +#include "io/ByteStream.h" +#include <vector> namespace rawspeed { -struct PhaseOneStrip { +struct PhaseOneStrip final { int n; ByteStream bs; @@ -50,8 +49,7 @@ void prepareStrips(); public: - PhaseOneDecompressor(const RawImage& img, - std::vector<PhaseOneStrip>&& strips_); + PhaseOneDecompressor(RawImage img, std::vector<PhaseOneStrip>&& strips_); void decompress() const; }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -21,21 +21,23 @@ */ #include "decompressors/SamsungV0Decompressor.h" -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D -#include "common/Common.h" // for signExtend -#include "common/RawImage.h" // for RawImage, RawImageData -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/BitPumpMSB32.h" // for BitPumpMSB32 -#include "io/ByteStream.h" // for ByteStream -#include <algorithm> // for max -#include <array> // for array -#include <cassert> // for assert -#include <cstdint> // for uint32_t, uint16_t, int32_t -#include <iterator> // for advance, begin, end, next -#include <utility> // for swap -#include <vector> // for vector +#include "adt/Array2DRef.h" +#include "adt/Bit.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "adt/Point.h" +#include "bitstreams/BitStreamerMSB32.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/AbstractSamsungDecompressor.h" +#include "io/ByteStream.h" +#include <algorithm> +#include <array> +#include <cassert> +#include <cstdint> +#include <iterator> +#include <utility> +#include <vector> namespace rawspeed { @@ -93,13 +95,13 @@ // Swap red and blue pixels to get the final CFA pattern const Array2DRef<uint16_t> out(mRaw->getU16DataAsUncroppedArray2DRef()); - for (int row = 0; row < out.height - 1; row += 2) { - for (int col = 0; col < out.width - 1; col += 2) + for (int row = 0; row < out.height() - 1; row += 2) { + for (int col = 0; col < out.width() - 1; col += 2) std::swap(out(row, col + 1), out(row + 1, col)); } } -int32_t SamsungV0Decompressor::calcAdj(BitPumpMSB32& bits, int nbits) { +int32_t SamsungV0Decompressor::calcAdj(BitStreamerMSB32& bits, int nbits) { if (!nbits) return 0; return signExtend(bits.getBits(nbits), nbits); @@ -107,16 +109,16 @@ void SamsungV0Decompressor::decompressStrip(int row, ByteStream bs) const { const Array2DRef<uint16_t> out(mRaw->getU16DataAsUncroppedArray2DRef()); - invariant(out.width > 0); + invariant(out.width() > 0); - BitPumpMSB32 bits(bs); + BitStreamerMSB32 bits(bs.peekRemainingBuffer().getAsArray1DRef()); std::array<int, 4> len; for (int& i : len) i = row < 2 ? 7 : 4; // Image is arranged in groups of 16 pixels horizontally - for (int col = 0; col < out.width; col += 16) { + for (int col = 0; col < out.width(); col += 16) { bits.fill(); bool dir = !!bits.getBitsNoFill(1); @@ -154,7 +156,7 @@ if (row < 2) ThrowRDE("Upward prediction for the first two rows. Raw corrupt"); - if (col + 16 >= out.width) + if (col + 16 >= out.width()) ThrowRDE("Upward prediction for the last block of pixels. Raw corrupt"); // First we decode even pixels @@ -162,7 +164,8 @@ int b = len[c >> 3]; int32_t adj = calcAdj(bits, b); - out(row, col + c) = adj + out(row - 1, col + c); + out(row, col + c) = + implicit_cast<uint16_t>(adj + out(row - 1, col + c)); } // Now we decode odd pixels @@ -172,7 +175,8 @@ int b = len[2 | (c >> 3)]; int32_t adj = calcAdj(bits, b); - out(row, col + c) = adj + out(row - 2, col + c); + out(row, col + c) = + implicit_cast<uint16_t>(adj + out(row - 2, col + c)); } } else { // Left to right prediction @@ -182,8 +186,8 @@ int b = len[c >> 3]; int32_t adj = calcAdj(bits, b); - if (col + c < out.width) - out(row, col + c) = adj + pred_left; + if (col + c < out.width()) + out(row, col + c) = implicit_cast<uint16_t>(adj + pred_left); } // Now we decode odd pixels @@ -192,8 +196,8 @@ int b = len[2 | (c >> 3)]; int32_t adj = calcAdj(bits, b); - if (col + c < out.width) - out(row, col + c) = adj + pred_left; + if (col + c < out.width()) + out(row, col + c) = implicit_cast<uint16_t>(adj + pred_left); } } } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/SamsungV0Decompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,11 +20,11 @@ #pragma once -#include "decompressors/AbstractSamsungDecompressor.h" // for AbstractSamsu... -#include "io/BitPumpMSB32.h" // for BitPumpMSB32 -#include "io/ByteStream.h" // for ByteStream -#include <cstdint> // for int32_t -#include <vector> // for vector +#include "bitstreams/BitStreamerMSB32.h" +#include "decompressors/AbstractSamsungDecompressor.h" +#include "io/ByteStream.h" +#include <cstdint> +#include <vector> namespace rawspeed { @@ -38,7 +38,7 @@ void decompressStrip(int row, ByteStream bs) const; - static int32_t calcAdj(BitPumpMSB32& bits, int b); + static int32_t calcAdj(BitStreamerMSB32& bits, int b); public: SamsungV0Decompressor(const RawImage& image, ByteStream bso, ByteStream bsr); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -21,18 +21,19 @@ */ #include "decompressors/SamsungV1Decompressor.h" -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D -#include "codes/PrefixCodeDecoder.h" // for PrefixCodeDecoder -#include "common/Common.h" // for isIntN -#include "common/RawImage.h" // for RawImage, RawImageData -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/BitPumpMSB.h" // for BitPumpMSB -#include <algorithm> // for fill_n -#include <array> // for array -#include <memory> // for allocator_traits<>::value_... -#include <vector> // for vector +#include "adt/Array2DRef.h" +#include "adt/Bit.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "adt/Point.h" +#include "bitstreams/BitStreamerMSB.h" +#include "codes/PrefixCodeDecoder.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/AbstractSamsungDecompressor.h" +#include <array> +#include <cstdint> +#include <vector> namespace rawspeed { @@ -60,7 +61,7 @@ } inline int32_t -SamsungV1Decompressor::samsungDiff(BitPumpMSB& pump, +SamsungV1Decompressor::samsungDiff(BitStreamerMSB& pump, const std::vector<encTableItem>& tbl) { pump.fill(23); // That is the maximal number of bits we will need here. // We read 10 bits to index into our table @@ -117,22 +118,23 @@ } const Array2DRef<uint16_t> out(mRaw->getU16DataAsUncroppedArray2DRef()); - invariant(out.width % 32 == 0 && "Should have even count of pixels per row."); - invariant(out.height % 2 == 0 && "Should have even row count."); - BitPumpMSB pump(bs); - for (int row = 0; row < out.height; row++) { + invariant(out.width() % 32 == 0 && + "Should have even count of pixels per row."); + invariant(out.height() % 2 == 0 && "Should have even row count."); + BitStreamerMSB pump(bs.peekRemainingBuffer().getAsArray1DRef()); + for (int row = 0; row < out.height(); row++) { std::array<int, 2> pred = {{}}; if (row >= 2) pred = {out(row - 2, 0), out(row - 2, 1)}; - for (int col = 0; col < out.width; col++) { + for (int col = 0; col < out.width(); col++) { int32_t diff = samsungDiff(pump, tbl); pred[col & 1] += diff; int value = pred[col & 1]; if (!isIntN(value, bits)) ThrowRDE("decoded value out of bounds"); - out(row, col) = value; + out(row, col) = implicit_cast<uint16_t>(value); } } } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/SamsungV1Decompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,11 +20,11 @@ #pragma once -#include "decompressors/AbstractSamsungDecompressor.h" // for AbstractSamsu... -#include "io/BitPumpMSB.h" // for BitPumpMSB -#include "io/ByteStream.h" // for ByteStream -#include <cstdint> // for int32_t -#include <vector> // for vector +#include "bitstreams/BitStreamerMSB.h" +#include "decompressors/AbstractSamsungDecompressor.h" +#include "io/ByteStream.h" +#include <cstdint> +#include <vector> namespace rawspeed { @@ -35,7 +35,7 @@ class SamsungV1Decompressor final : public AbstractSamsungDecompressor { struct encTableItem; - static inline int32_t samsungDiff(BitPumpMSB& pump, + static inline int32_t samsungDiff(BitStreamerMSB& pump, const std::vector<encTableItem>& tbl); ByteStream bs; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -21,18 +21,20 @@ */ #include "decompressors/SamsungV2Decompressor.h" -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D -#include "common/Common.h" // for clampBits, signExtend -#include "common/RawImage.h" // for RawImage, RawImageData -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/BitPumpMSB32.h" // for BitPumpMSB32 -#include "io/ByteStream.h" // for ByteStream -#include <algorithm> // for fill_n -#include <cassert> // for assert -#include <cstdint> // for uint16_t, uint32_t, int32_t -#include <type_traits> // for underlying_type_t +#include "adt/Array2DRef.h" +#include "adt/Bit.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "adt/Point.h" +#include "bitstreams/BitStreamerMSB32.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "decompressors/AbstractSamsungDecompressor.h" +#include "io/ByteStream.h" +#include <array> +#include <cassert> +#include <cstdint> +#include <type_traits> namespace rawspeed { @@ -73,11 +75,11 @@ } inline __attribute__((always_inline)) int16_t -SamsungV2Decompressor::getDiff(BitPumpMSB32& pump, uint32_t len) { +SamsungV2Decompressor::getDiff(BitStreamerMSB32& pump, uint32_t len) { if (len == 0) return 0; invariant(len <= 15 && "Difference occupies at most 15 bits."); - return signExtend(pump.getBits(len), len); + return implicit_cast<int16_t>(signExtend(pump.getBits(len), len)); } SamsungV2Decompressor::SamsungV2Decompressor(const RawImage& image, @@ -98,7 +100,7 @@ static constexpr const auto headerSize = 16; (void)bs.check(headerSize); - BitPumpMSB32 startpump(bs); + BitStreamerMSB32 startpump(bs.peekRemainingBuffer().getAsArray1DRef()); // Process the initial metadata bits, we only really use initVal, width and // height (the last two match the TIFF values anyway) @@ -125,7 +127,7 @@ startpump.getBits(8); // reserved startpump.getBits(8); // Inc startpump.getBits(2); // reserved - initVal = startpump.getBits(14); + initVal = implicit_cast<uint16_t>(startpump.getBits(14)); invariant(startpump.getInputPosition() == headerSize); @@ -148,7 +150,7 @@ // the actual difference bits inline __attribute__((always_inline)) std::array<uint16_t, 16> -SamsungV2Decompressor::prepareBaselineValues(BitPumpMSB32& pump, int row, +SamsungV2Decompressor::prepareBaselineValues(BitStreamerMSB32& pump, int row, int col) { const Array2DRef<uint16_t> img(mRaw->getU16DataAsUncroppedArray2DRef()); @@ -226,7 +228,7 @@ } inline __attribute__((always_inline)) std::array<uint32_t, 4> -SamsungV2Decompressor::decodeDiffLengths(BitPumpMSB32& pump, int row) { +SamsungV2Decompressor::decodeDiffLengths(BitStreamerMSB32& pump, int row) { if (!(optflags & OptFlags::SKIP) && pump.getBits(1)) return {}; @@ -273,7 +275,7 @@ } inline __attribute__((always_inline)) std::array<int, 16> -SamsungV2Decompressor::decodeDifferences(BitPumpMSB32& pump, int row) { +SamsungV2Decompressor::decodeDifferences(BitStreamerMSB32& pump, int row) { // Figure out how many difference bits we have to read for each pixel const std::array<uint32_t, 4> diffBits = decodeDiffLengths(pump, row); @@ -310,7 +312,7 @@ } inline __attribute__((always_inline)) void -SamsungV2Decompressor::processBlock(BitPumpMSB32& pump, int row, int col) { +SamsungV2Decompressor::processBlock(BitStreamerMSB32& pump, int row, int col) { const Array2DRef<uint16_t> out(mRaw->getU16DataAsUncroppedArray2DRef()); const std::array<uint16_t, 16> baseline = @@ -329,7 +331,7 @@ if (const auto line_offset = data.getPosition(); (line_offset & 0xf) != 0) data.skipBytes(16 - (line_offset & 0xf)); - BitPumpMSB32 pump(data); + BitStreamerMSB32 pump(data.peekRemainingBuffer().getAsArray1DRef()); // Initialize the motion and diff modes at the start of the line motion = 7; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/SamsungV2Decompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,11 +20,11 @@ #pragma once -#include "decompressors/AbstractSamsungDecompressor.h" // for AbstractSamsu... -#include "io/BitPumpMSB32.h" // for BitPumpMSB32 -#include "io/ByteStream.h" // for ByteStream -#include <array> // for array -#include <cstdint> // for uint32_t, uin... +#include "bitstreams/BitStreamerMSB32.h" +#include "decompressors/AbstractSamsungDecompressor.h" +#include "io/ByteStream.h" +#include <array> +#include <cstdint> namespace rawspeed { @@ -49,19 +49,19 @@ std::array<std::array<int, 2>, 3> diffBitsMode; static inline __attribute__((always_inline)) int16_t - getDiff(BitPumpMSB32& pump, uint32_t len); + getDiff(BitStreamerMSB32& pump, uint32_t len); inline __attribute__((always_inline)) std::array<uint16_t, 16> - prepareBaselineValues(BitPumpMSB32& pump, int row, int col); + prepareBaselineValues(BitStreamerMSB32& pump, int row, int col); inline __attribute__((always_inline)) std::array<uint32_t, 4> - decodeDiffLengths(BitPumpMSB32& pump, int row); + decodeDiffLengths(BitStreamerMSB32& pump, int row); inline __attribute__((always_inline)) std::array<int, 16> - decodeDifferences(BitPumpMSB32& pump, int row); + decodeDifferences(BitStreamerMSB32& pump, int row); - inline __attribute__((always_inline)) void processBlock(BitPumpMSB32& pump, - int row, int col); + inline __attribute__((always_inline)) void + processBlock(BitStreamerMSB32& pump, int row, int col); void decompressRow(int row); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -21,19 +21,23 @@ */ #include "decompressors/SonyArw1Decompressor.h" -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D -#include "codes/PrefixCodeDecoder.h" // for PrefixCodeDecoder -#include "common/Common.h" // for isIntN -#include "common/RawImage.h" // for RawImage, RawImageData -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/BitPumpMSB.h" // for BitPumpMSB -#include "io/ByteStream.h" // for ByteStream +#include "adt/Array2DRef.h" +#include "adt/Bit.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "adt/Point.h" +#include "bitstreams/BitStreamerMSB.h" +#include "codes/PrefixCodeDecoder.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "io/ByteStream.h" +#include <cstdint> +#include <utility> namespace rawspeed { -SonyArw1Decompressor::SonyArw1Decompressor(const RawImage& img) : mRaw(img) { +SonyArw1Decompressor::SonyArw1Decompressor(RawImage img) + : mRaw(std::move(img)) { if (mRaw->getCpp() != 1 || mRaw->getDataType() != RawImageType::UINT16 || mRaw->getBpp() != sizeof(uint16_t)) ThrowRDE("Unexpected component count / data type"); @@ -45,7 +49,7 @@ ThrowRDE("Unexpected image dimensions found: (%u; %u)", w, h); } -inline int SonyArw1Decompressor::getDiff(BitPumpMSB& bs, uint32_t len) { +inline int SonyArw1Decompressor::getDiff(BitStreamerMSB& bs, uint32_t len) { if (len == 0) return 0; int diff = bs.getBitsNoFill(len); @@ -54,17 +58,17 @@ void SonyArw1Decompressor::decompress(ByteStream input) const { const Array2DRef<uint16_t> out(mRaw->getU16DataAsUncroppedArray2DRef()); - invariant(out.width > 0); - invariant(out.height > 0); - invariant(out.height % 2 == 0); + invariant(out.width() > 0); + invariant(out.height() > 0); + invariant(out.height() % 2 == 0); - BitPumpMSB bits(input); + BitStreamerMSB bits(input.peekRemainingBuffer().getAsArray1DRef()); int pred = 0; - for (int col = out.width - 1; col >= 0; col--) { - for (int row = 0; row < out.height + 1; row += 2) { + for (int col = out.width() - 1; col >= 0; col--) { + for (int row = 0; row < out.height() + 1; row += 2) { bits.fill(32); - if (row == out.height) + if (row == out.height()) row = 1; uint32_t len = 4 - bits.getBitsNoFill(2); @@ -82,7 +86,7 @@ if (!isIntN(pred, 12)) ThrowRDE("Error decompressing"); - out(row, col) = pred; + out(row, col) = implicit_cast<uint16_t>(pred); } } } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/SonyArw1Decompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,10 +20,10 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decompressors/AbstractDecompressor.h" // for AbstractDecompressor -#include "io/BitPumpMSB.h" // for BitPumpMSB -#include <cstdint> // for uint32_t +#include "bitstreams/BitStreamerMSB.h" +#include "common/RawImage.h" +#include "decompressors/AbstractDecompressor.h" +#include <cstdint> namespace rawspeed { @@ -32,10 +32,10 @@ class SonyArw1Decompressor final : public AbstractDecompressor { RawImage mRaw; - inline static int getDiff(BitPumpMSB& bs, uint32_t len); + inline static int getDiff(BitStreamerMSB& bs, uint32_t len); public: - explicit SonyArw1Decompressor(const RawImage& img); + explicit SonyArw1Decompressor(RawImage img); void decompress(ByteStream input) const; }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,23 +20,26 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "rawspeedconfig.h" // for HAVE_OPENMP +#include "rawspeedconfig.h" #include "decompressors/SonyArw2Decompressor.h" -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D -#include "common/Common.h" // for rawspeed_get_number_of_pro... -#include "common/RawImage.h" // for RawImageData, RawImage -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/BitPumpLSB.h" // for BitPumpLSB -#include <cstdint> // for uint16_t, uint32_t, uint8_t -#include <string> // for allocator, string +#include "adt/Array2DRef.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "adt/Point.h" +#include "bitstreams/BitStreamerLSB.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "io/ByteStream.h" +#include <cstddef> +#include <cstdint> +#include <string> +#include <utility> namespace rawspeed { -SonyArw2Decompressor::SonyArw2Decompressor(const RawImage& img, - ByteStream input_) - : mRaw(img) { +SonyArw2Decompressor::SonyArw2Decompressor(RawImage img, ByteStream input_) + : mRaw(std::move(img)) { if (mRaw->getCpp() != 1 || mRaw->getDataType() != RawImageType::UINT16 || mRaw->getBpp() != sizeof(uint16_t)) ThrowRDE("Unexpected component count / data type"); @@ -52,22 +55,22 @@ void SonyArw2Decompressor::decompressRow(int row) const { const Array2DRef<uint16_t> out(mRaw->getU16DataAsUncroppedArray2DRef()); - invariant(out.width > 0); - invariant(out.width % 32 == 0); + invariant(out.width() > 0); + invariant(out.width() % 32 == 0); // Allow compiler to devirtualize the calls below. auto& rawdata = reinterpret_cast<RawImageDataU16&>(*mRaw); ByteStream rowBs = input; - rowBs.skipBytes(row * out.width); - rowBs = rowBs.peekStream(out.width); + rowBs.skipBytes(row * out.width()); + rowBs = rowBs.peekStream(out.width()); - BitPumpLSB bits(rowBs); + BitStreamerLSB bits(rowBs.peekRemainingBuffer().getAsArray1DRef()); uint32_t random = bits.peekBits(24); // Each loop iteration processes 16 pixels, consuming 128 bits of input. - for (int col = 0; col < out.width; col += ((col & 1) != 0) ? 31 : 1) { + for (int col = 0; col < out.width(); col += ((col & 1) != 0) ? 31 : 1) { // 30 bits. int _max = bits.getBits(11); int _min = bits.getBits(11); @@ -100,7 +103,8 @@ } } rawdata.setWithLookUp( - p << 1, reinterpret_cast<uint8_t*>(&out(row, col + i * 2)), &random); + implicit_cast<uint16_t>(p << 1), + reinterpret_cast<std::byte*>(&out(row, col + i * 2)), &random); } } } @@ -122,6 +126,9 @@ #ifdef HAVE_OPENMP #pragma omp cancel for #endif + } catch (...) { + // We should not get any other exception type here. + __builtin_unreachable(); } } } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/SonyArw2Decompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,9 +20,9 @@ #pragma once -#include "common/RawImage.h" // for RawImage -#include "decompressors/AbstractDecompressor.h" // for AbstractDecompressor -#include "io/ByteStream.h" // for ByteStream +#include "common/RawImage.h" +#include "decompressors/AbstractDecompressor.h" +#include "io/ByteStream.h" namespace rawspeed { @@ -34,7 +34,7 @@ ByteStream input; public: - SonyArw2Decompressor(const RawImage& img, ByteStream input); + SonyArw2Decompressor(RawImage img, ByteStream input); void decompress() const; }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/UncompressedDecompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -21,21 +21,28 @@ */ #include "decompressors/UncompressedDecompressor.h" -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D, iRectangle2D -#include "common/Common.h" // for BitOrder, copyPixels, BitO... -#include "common/FloatingPoint.h" // for Binary16, Binary24, Binary... -#include "decoders/RawDecoderException.h" // for ThrowRDE -#include "io/BitPumpLSB.h" // for BitPumpLSB, BitStream<>::f... -#include "io/BitPumpMSB.h" // for BitPumpMSB, BitStream<>::f... -#include "io/BitPumpMSB16.h" // for BitPumpMSB16, BitStream<>:... -#include "io/BitPumpMSB32.h" // for BitPumpMSB32, BitStream<>:... -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::li... -#include "io/IOException.h" // for ThrowException, ThrowIOE -#include <algorithm> // for min -#include <cinttypes> // for PRIu64 +#include "adt/Array2DRef.h" +#include "adt/Bit.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "adt/Point.h" +#include "bitstreams/BitStreamerLSB.h" +#include "bitstreams/BitStreamerMSB.h" +#include "bitstreams/BitStreamerMSB16.h" +#include "bitstreams/BitStreamerMSB32.h" +#include "common/Common.h" +#include "common/FloatingPoint.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "io/IOException.h" +#include <algorithm> +#include <cinttypes> +#include <cstddef> +#include <cstdint> +#include <utility> using std::min; @@ -96,11 +103,12 @@ } UncompressedDecompressor::UncompressedDecompressor( - ByteStream input_, const RawImage& img_, const iRectangle2D& crop, + ByteStream input_, RawImage img_, const iRectangle2D& crop, int inputPitchBytes_, int bitPerPixel_, BitOrder order_) - : input(input_.getStream(crop.dim.y, inputPitchBytes_)), mRaw(img_), - size(crop.dim), offset(crop.pos), inputPitchBytes(inputPitchBytes_), - bitPerPixel(bitPerPixel_), order(order_) { + : input(input_.getStream(crop.dim.y, inputPitchBytes_)), + mRaw(std::move(img_)), size(crop.dim), offset(crop.pos), + inputPitchBytes(inputPitchBytes_), bitPerPixel(bitPerPixel_), + order(order_) { if (!size.hasPositiveArea()) ThrowRDE("Empty tile."); @@ -120,7 +128,7 @@ (bitPerPixel > 16 && mRaw->getDataType() == RawImageType::UINT16)) ThrowRDE("Unsupported bit depth"); - const auto outPixelBits = (uint64_t)w * cpp * bitPerPixel; + const auto outPixelBits = static_cast<uint64_t>(w) * cpp * bitPerPixel; invariant(outPixelBits > 0); if (outPixelBits % 8 != 0) { @@ -133,14 +141,15 @@ // The input pitch might be larger than needed (i.e. have some padding), // but it can *not* be smaller than needed. - if ((unsigned)inputPitchBytes < outPixelBytes) + if (static_cast<unsigned>(inputPitchBytes) < outPixelBytes) ThrowRDE("Specified pitch is smaller than minimally-required pitch"); // Check the specified pitch, not the minimally-required pitch. sanityCheck(&h, inputPitchBytes); - invariant((unsigned)inputPitchBytes >= outPixelBytes); - skipBytes = inputPitchBytes - outPixelBytes; // Skip per line + invariant(static_cast<unsigned>(inputPitchBytes) >= outPixelBytes); + skipBytes = + implicit_cast<uint32_t>(inputPitchBytes - outPixelBytes); // Skip per line if (oy > static_cast<uint64_t>(mRaw->dim.y)) ThrowRDE("Invalid y offset"); @@ -151,7 +160,7 @@ template <typename Pump, typename NarrowFpType> void UncompressedDecompressor::decodePackedFP(int rows, int row) const { const Array2DRef<float> out(mRaw->getF32DataAsUncroppedArray2DRef()); - Pump bits(input); + Pump bits(input.peekRemainingBuffer().getAsArray1DRef()); int cols = size.x * mRaw->getCpp(); for (; row < rows; row++) { @@ -168,12 +177,12 @@ template <typename Pump> void UncompressedDecompressor::decodePackedInt(int rows, int row) const { const Array2DRef<uint16_t> out(mRaw->getU16DataAsUncroppedArray2DRef()); - Pump bits(input); + Pump bits(input.peekRemainingBuffer().getAsArray1DRef()); int cols = size.x * mRaw->getCpp(); for (; row < rows; row++) { for (int x = 0; x < cols; x++) { - out(row, x) = bits.getBits(bitPerPixel); + out(row, x) = implicit_cast<uint16_t>(bits.getBits(bitPerPixel)); } bits.skipBytes(skipBytes); } @@ -187,30 +196,38 @@ uint64_t oy = offset.y; uint64_t y = oy; - h = min(h + oy, static_cast<uint64_t>(mRaw->dim.y)); + h = implicit_cast<uint32_t>(min(h + oy, static_cast<uint64_t>(mRaw->dim.y))); if (mRaw->getDataType() == RawImageType::F32) { if (bitPerPixel == 32) { const Array2DRef<float> out(mRaw->getF32DataAsUncroppedArray2DRef()); - copyPixels(reinterpret_cast<uint8_t*>(&out(y, offset.x * cpp)), outPitch, - input.getData(inputPitchBytes * (h - y)), inputPitchBytes, - w * mRaw->getBpp(), h - y); + copyPixels( + reinterpret_cast<std::byte*>( + &out(implicit_cast<int>(y), offset.x * cpp)), + outPitch, + reinterpret_cast<const std::byte*>(input.getData( + implicit_cast<Buffer::size_type>(inputPitchBytes * (h - y)))), + inputPitchBytes, w * mRaw->getBpp(), implicit_cast<int>(h - y)); return; } if (BitOrder::MSB == order && bitPerPixel == 16) { - decodePackedFP<BitPumpMSB, ieee_754_2008::Binary16>(h, y); + decodePackedFP<BitStreamerMSB, ieee_754_2008::Binary16>( + h, implicit_cast<int>(y)); return; } if (BitOrder::LSB == order && bitPerPixel == 16) { - decodePackedFP<BitPumpLSB, ieee_754_2008::Binary16>(h, y); + decodePackedFP<BitStreamerLSB, ieee_754_2008::Binary16>( + h, implicit_cast<int>(y)); return; } if (BitOrder::MSB == order && bitPerPixel == 24) { - decodePackedFP<BitPumpMSB, ieee_754_2008::Binary24>(h, y); + decodePackedFP<BitStreamerMSB, ieee_754_2008::Binary24>( + h, implicit_cast<int>(y)); return; } if (BitOrder::LSB == order && bitPerPixel == 24) { - decodePackedFP<BitPumpLSB, ieee_754_2008::Binary24>(h, y); + decodePackedFP<BitStreamerLSB, ieee_754_2008::Binary24>( + h, implicit_cast<int>(y)); return; } ThrowRDE("Unsupported floating-point input bitwidth/bit packing: %u / %u", @@ -218,20 +235,24 @@ } if (BitOrder::MSB == order) { - decodePackedInt<BitPumpMSB>(h, y); + decodePackedInt<BitStreamerMSB>(h, implicit_cast<int>(y)); } else if (BitOrder::MSB16 == order) { - decodePackedInt<BitPumpMSB16>(h, y); + decodePackedInt<BitStreamerMSB16>(h, implicit_cast<int>(y)); } else if (BitOrder::MSB32 == order) { - decodePackedInt<BitPumpMSB32>(h, y); + decodePackedInt<BitStreamerMSB32>(h, implicit_cast<int>(y)); } else { if (bitPerPixel == 16 && getHostEndianness() == Endianness::little) { const Array2DRef<uint16_t> out(mRaw->getU16DataAsUncroppedArray2DRef()); - copyPixels(reinterpret_cast<uint8_t*>(&out(y, offset.x * cpp)), outPitch, - input.getData(inputPitchBytes * (h - y)), inputPitchBytes, - w * mRaw->getBpp(), h - y); + copyPixels( + reinterpret_cast<std::byte*>( + &out(implicit_cast<int>(y), offset.x * cpp)), + outPitch, + reinterpret_cast<const std::byte*>(input.getData( + implicit_cast<Buffer::size_type>(inputPitchBytes * (h - y)))), + inputPitchBytes, w * mRaw->getBpp(), implicit_cast<int>(h - y)); return; } - decodePackedInt<BitPumpLSB>(h, y); + decodePackedInt<BitStreamerLSB>(h, implicit_cast<int>(y)); } } @@ -243,16 +264,17 @@ const Array2DRef<uint16_t> out(mRaw->getU16DataAsUncroppedArray2DRef()); - const uint8_t* in = input.getData(w * h); + const auto in = Array2DRef(input.getData(w * h), w, h); uint32_t random = 0; for (uint32_t row = 0; row < h; row++) { for (uint32_t col = 0; col < w; col++) { - if (uncorrectedRawValues) - out(row, col) = *in; - else - mRaw->setWithLookUp(*in, reinterpret_cast<uint8_t*>(&out(row, col)), + if constexpr (uncorrectedRawValues) + out(row, col) = in(row, col); + else { + mRaw->setWithLookUp(in(row, col), + reinterpret_cast<std::byte*>(&out(row, col)), &random); - in++; + } } } } @@ -283,32 +305,33 @@ const Array2DRef<uint16_t> out(mRaw->getU16DataAsUncroppedArray2DRef()); - const uint8_t* in = input.peekData(perline * h); + const auto in = Array2DRef(input.getData(perline * h), perline, h); for (uint32_t row = 0; row < h; row++) { + uint32_t col = 0; for (uint32_t x = 0; x < w; x += 2) { - uint32_t g1 = in[0]; - uint32_t g2 = in[1]; + uint32_t g1 = in(row, col + 0); + uint32_t g2 = in(row, col + 1); auto process = [out, row](uint32_t i, bool invert, uint32_t p1, uint32_t p2) { uint16_t pix; if (!(invert ^ (e == Endianness::little))) - pix = (p1 << pack) | (p2 >> pack); + pix = implicit_cast<uint16_t>((p1 << pack) | (p2 >> pack)); else - pix = ((p2 & mask) << 8) | p1; + pix = implicit_cast<uint16_t>(((p2 & mask) << 8) | p1); out(row, i) = pix; }; process(x, false, g1, g2); - g1 = in[2]; + g1 = in(row, col + 2); process(x + 1, true, g1, g2); - in += 3; + col += 3; if ((x % 10) == 8) - in++; + col++; } } input.skipBytes(input.getRemainSize()); @@ -326,18 +349,18 @@ sanityCheck(w, &h, 2); const Array2DRef<uint16_t> out(mRaw->getU16DataAsUncroppedArray2DRef()); - const uint8_t* in = input.getData(w * h * 2); + const auto in = Array2DRef(input.getData(w * h * 2), 2 * w, h); - for (int row = 0; row < (int)h; row++) { - for (int col = 0; col < (int)w; col += 1, in += 2) { - uint32_t g1 = in[0]; - uint32_t g2 = in[1]; + for (int row = 0; row < static_cast<int>(h); row++) { + for (int col = 0; col < static_cast<int>(w); ++col) { + uint32_t g1 = in(row, 2 * col + 0); + uint32_t g2 = in(row, 2 * col + 1); uint16_t pix; - if (e == Endianness::little) - pix = (g2 << 8) | g1; + if constexpr (e == Endianness::little) + pix = implicit_cast<uint16_t>((g2 << 8) | g1); else - pix = (g1 << 8) | g2; + pix = implicit_cast<uint16_t>((g1 << 8) | g2); out(row, col) = pix >> 4; } } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/UncompressedDecompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/UncompressedDecompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/UncompressedDecompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/UncompressedDecompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -22,14 +22,13 @@ #pragma once -#include "adt/Point.h" // for iPoint2D, iRectangle... -#include "common/Common.h" // for BitOrder -#include "common/RawImage.h" // for RawImage -#include "decompressors/AbstractDecompressor.h" // for AbstractDecompressor -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness -#include <cstdint> // for uint32_t -#include <utility> // for move +#include "adt/Point.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decompressors/AbstractDecompressor.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <cstdint> namespace rawspeed { @@ -62,7 +61,7 @@ template <typename Pump> void decodePackedInt(int rows, int row) const; public: - UncompressedDecompressor(ByteStream input, const RawImage& img, + UncompressedDecompressor(ByteStream input, RawImage img, const iRectangle2D& crop, int inputPitchBytes, int bitPerPixel, BitOrder order); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/VC5Decompressor.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -27,33 +27,47 @@ implementation. */ -#include "rawspeedconfig.h" // for HAVE_OPENMP, RAWSPEED_CACH... +#include "rawspeedconfig.h" #include "decompressors/VC5Decompressor.h" -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D -#include "common/Common.h" // for roundUpDivision, rawspeed_... -#include "common/ErrorLog.h" // for ErrorLog -#include "common/SimpleLUT.h" // for SimpleLUT, SimpleLUT<>::va... -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include "io/Endianness.h" // for Endianness, Endianness::big -#include <algorithm> // for all_of, max -#include <cassert> // for assert -#include <cmath> // for pow -#include <initializer_list> // for initializer_list -#include <limits> // for numeric_limits -#include <optional> // for optional, operator== -#include <string> // for string -#include <tuple> // for tie, tuple -#include <utility> // for pair -// IWYU pragma: no_include <ext/alloc_traits.h> +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Bit.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "adt/Optional.h" +#include "adt/Point.h" +#include "bitstreams/BitStreamerMSB.h" +#include "codes/AbstractPrefixCode.h" +#include "codes/PrefixCode.h" +#include "common/BayerPhase.h" +#include "common/Common.h" +#include "common/ErrorLog.h" +#include "common/RawImage.h" +#include "common/SimpleLUT.h" +#include "decoders/RawDecoderException.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <algorithm> +#include <array> +#include <cassert> +#include <cmath> +#include <cstddef> +#include <cstdint> +#include <limits> +#include <memory> +#include <string> +#include <tuple> +#include <type_traits> +#include <utility> +#include <vector> namespace { // Definitions needed by table17.inc // Taken from // https://github.com/gopro/gpr/blob/a513701afce7b03173213a2f67dfd9dd28fa1868/source/lib/vc5_decoder/vlc.h -struct RLV { +struct RLV final { uint_fast8_t size; //!< Size of code word in bits uint32_t bits; //!< Code word bits right justified uint16_t count; //!< Run length @@ -64,9 +78,9 @@ const uint32_t length; \ const RLV entries[n]; \ } constexpr -#include "gopro/vc5/table17.inc" // for table17 +#include "gopro/vc5/table17.inc" -constexpr int16_t decompand(int16_t val) { +constexpr auto decompand(int16_t val) { double c = val; // Invert companding curve c += (c * c * c * 768) / (255. * 255. * 255.); @@ -74,7 +88,7 @@ return std::numeric_limits<int16_t>::max(); if (c < std::numeric_limits<int16_t>::min()) return std::numeric_limits<int16_t>::min(); - return c; + return rawspeed::implicit_cast<int16_t>(c); } #ifndef NDEBUG @@ -144,20 +158,20 @@ return total; } -struct ConvolutionParams { - struct First { +struct ConvolutionParams final { + struct First final { static constexpr std::array<int, 4> mul_even = {+1, +11, -4, +1}; static constexpr std::array<int, 4> mul_odd = {-1, +5, +4, -1}; static constexpr int coord_shift = 0; }; - struct Middle { + struct Middle final { static constexpr std::array<int, 4> mul_even = {+1, +1, +8, -1}; static constexpr std::array<int, 4> mul_odd = {-1, -1, +8, +1}; static constexpr int coord_shift = -1; }; - struct Last { + struct Last final { static constexpr std::array<int, 4> mul_even = {+1, -1, +4, +5}; static constexpr std::array<int, 4> mul_odd = {-1, +1, -4, +11}; static constexpr int coord_shift = -2; @@ -169,13 +183,10 @@ VC5Decompressor::BandData VC5Decompressor::Wavelet::reconstructPass( const Array2DRef<const int16_t> high, const Array2DRef<const int16_t> low) noexcept { - BandData combined; - auto& dst = combined.description; - dst = Array2DRef<int16_t>::create(combined.storage, high.width, - 2 * high.height); + BandData combined(high.width(), 2 * high.height()); + const auto& dst = combined.description; - auto process = [low, high, dst](auto segment, int row, int col) { - using SegmentTy = decltype(segment); + auto process = [low, high, dst]<typename SegmentTy>(int row, int col) { auto lowGetter = [&row, &col, low](int delta) { return low(row + SegmentTy::coord_shift + delta, col); }; @@ -192,25 +203,28 @@ #pragma GCC diagnostic push // See https://bugs.llvm.org/show_bug.cgi?id=51666 +#pragma GCC diagnostic ignored "-Wpragmas" #pragma GCC diagnostic ignored "-Wsign-compare" +#pragma GCC diagnostic ignored "-Wshorten-64-to-32" #ifdef HAVE_OPENMP -#pragma omp taskloop default(none) firstprivate(dst, process) num_tasks( \ - roundUpDivision(rawspeed_get_number_of_processor_cores(), numChannels)) +#pragma omp taskloop default(none) firstprivate(dst, process) \ + num_tasks(roundUpDivision(rawspeed_get_number_of_processor_cores(), \ + numChannels)) #endif - for (int row = 0; row < dst.height / 2; ++row) { + for (int row = 0; row < dst.height() / 2; ++row) { #pragma GCC diagnostic pop if (row == 0) { // 1st row - for (int col = 0; col < dst.width; ++col) - process(ConvolutionParams::First(), row, col); - } else if (row + 1 < dst.height / 2) { + for (int col = 0; col < dst.width(); ++col) + process.template operator()<ConvolutionParams::First>(row, col); + } else if (row + 1 < dst.height() / 2) { // middle rows - for (int col = 0; col < dst.width; ++col) - process(ConvolutionParams::Middle(), row, col); + for (int col = 0; col < dst.width(); ++col) + process.template operator()<ConvolutionParams::Middle>(row, col); } else { // last row - for (int col = 0; col < dst.width; ++col) - process(ConvolutionParams::Last(), row, col); + for (int col = 0; col < dst.width(); ++col) + process.template operator()<ConvolutionParams::Last>(row, col); } } @@ -221,14 +235,11 @@ const Array2DRef<const int16_t> low, const Array2DRef<const int16_t> high, int descaleShift, bool clampUint = false, [[maybe_unused]] bool finalWavelet = false) noexcept { - BandData combined; - auto& dst = combined.description; - dst = Array2DRef<int16_t>::create(combined.storage, 2 * high.width, - high.height); - - auto process = [low, high, descaleShift, clampUint, dst](auto segment, - int row, int col) { - using SegmentTy = decltype(segment); + BandData combined(2 * high.width(), high.height()); + const auto& dst = combined.description; + + auto process = [low, high, descaleShift, clampUint, + dst]<typename SegmentTy>(int row, int col) { auto lowGetter = [&row, &col, low](int delta) { return low(row, col + SegmentTy::coord_shift + delta); }; @@ -251,24 +262,26 @@ // Horizontal reconstruction #pragma GCC diagnostic push // See https://bugs.llvm.org/show_bug.cgi?id=51666 +#pragma GCC diagnostic ignored "-Wpragmas" #pragma GCC diagnostic ignored "-Wsign-compare" +#pragma GCC diagnostic ignored "-Wshorten-64-to-32" #ifdef HAVE_OPENMP -#pragma omp taskloop if (finalWavelet) default(none) firstprivate(dst, \ - process) \ +#pragma omp taskloop if (finalWavelet) default(none) \ + firstprivate(dst, process) \ num_tasks(roundUpDivision(rawspeed_get_number_of_processor_cores(), 2)) \ - mergeable + mergeable #endif - for (int row = 0; row < dst.height; ++row) { + for (int row = 0; row < dst.height(); ++row) { #pragma GCC diagnostic pop // First col int col = 0; - process(ConvolutionParams::First(), row, col); + process.template operator()<ConvolutionParams::First>(row, col); // middle cols - for (col = 1; col + 1 < dst.width / 2; ++col) { - process(ConvolutionParams::Middle(), row, col); + for (col = 1; col + 1 < dst.width() / 2; ++col) { + process.template operator()<ConvolutionParams::Middle>(row, col); } // last col - process(ConvolutionParams::Last(), row, col); + process.template operator()<ConvolutionParams::Last>(row, col); } return combined; @@ -276,16 +289,14 @@ void VC5Decompressor::Wavelet::ReconstructableBand:: createLowpassReconstructionTask(const bool& exceptionThrown) noexcept { - auto& highlow = wavelet.bands[2]->data; - auto& lowlow = wavelet.bands[0]->data; + const auto& highlow = wavelet.bands[2]->data; + const auto& lowlow = wavelet.bands[0]->data; auto& lowpass = intermediates.lowpass; #ifdef HAVE_OPENMP #pragma omp task default(none) \ shared(exceptionThrown, highlow, lowlow, lowpass) \ - depend(in \ - : highlow, lowlow) depend(out \ - : lowpass) + depend(in : highlow, lowlow) depend(out : lowpass) #endif { // Proceed only if decoding did not fail. @@ -302,16 +313,14 @@ void VC5Decompressor::Wavelet::ReconstructableBand:: createHighpassReconstructionTask(const bool& exceptionThrown) noexcept { - auto& highhigh = wavelet.bands[3]->data; - auto& lowhigh = wavelet.bands[1]->data; + const auto& highhigh = wavelet.bands[3]->data; + const auto& lowhigh = wavelet.bands[1]->data; auto& highpass = intermediates.highpass; #ifdef HAVE_OPENMP #pragma omp task default(none) \ shared(exceptionThrown, highhigh, lowhigh, highpass) \ - depend(in \ - : highhigh, lowhigh) depend(out \ - : highpass) + depend(in : highhigh, lowhigh) depend(out : highpass) #endif { // Proceed only if decoding did not fail. @@ -327,21 +336,24 @@ void VC5Decompressor::Wavelet::ReconstructableBand:: createLowHighPassCombiningTask(const bool& exceptionThrown) noexcept { - auto& lowpass = intermediates.lowpass; - auto& highpass = intermediates.highpass; + const auto& lowpass = intermediates.lowpass; + const auto& highpass = intermediates.highpass; auto& reconstructedLowpass = data; #ifdef HAVE_OPENMP -#pragma omp task default(none) depend(in : lowpass, highpass) +#pragma omp task default(none) shared(exceptionThrown) \ + depend(in : lowpass, highpass) #endif - wavelet.bands.clear(); + { + if (!readValue(exceptionThrown)) { + wavelet.bands.clear(); + } + } #ifdef HAVE_OPENMP #pragma omp task default(none) \ shared(exceptionThrown, lowpass, highpass, reconstructedLowpass) \ - depend(in \ - : lowpass, highpass) depend(out \ - : reconstructedLowpass) + depend(in : lowpass, highpass) depend(out : reconstructedLowpass) #endif { // Proceed only if decoding did not fail. @@ -385,7 +397,7 @@ ThrowRDE("Height %u is not a multiple of %u", mRaw->dim.y, mVC5.patternHeight); - std::optional<BayerPhase> p = getAsBayerPhase(mRaw->cfa); + Optional<BayerPhase> p = getAsBayerPhase(mRaw->cfa); if (!p) ThrowRDE("Image has invalid CFA."); phase = *p; @@ -394,12 +406,12 @@ // Initialize wavelet sizes. for (Channel& channel : channels) { - uint16_t waveletWidth = mRaw->dim.x; - uint16_t waveletHeight = mRaw->dim.y; + auto waveletWidth = implicit_cast<uint16_t>(mRaw->dim.x); + auto waveletHeight = implicit_cast<uint16_t>(mRaw->dim.y); for (Wavelet& wavelet : channel.wavelets) { // Pad dimensions as necessary and divide them by two for the next wavelet for (auto* dimension : {&waveletWidth, &waveletHeight}) - *dimension = roundUpDivision(*dimension, 2); + *dimension = implicit_cast<uint16_t>(roundUpDivision(*dimension, 2)); wavelet.width = waveletWidth; wavelet.height = waveletHeight; @@ -408,11 +420,11 @@ } } - if (img->whitePoint <= 0 || img->whitePoint > int(((1U << 16U) - 1U))) - ThrowRDE("Bad white level %i", img->whitePoint); + if (*img->whitePoint <= 0 || *img->whitePoint > int(((1U << 16U) - 1U))) + ThrowRDE("Bad white level %i", *img->whitePoint); outputBits = 0; - for (int wp = img->whitePoint; wp != 0; wp >>= 1) + for (int wp = *img->whitePoint; wp != 0; wp >>= 1) ++outputBits; invariant(outputBits <= 16); @@ -451,13 +463,15 @@ void VC5Decompressor::initVC5LogTable() { mVC5LogTable = decltype(mVC5LogTable)( - [outputBits_ = outputBits](unsigned i, unsigned tableSize) { + [outputBits_ = outputBits](size_t i, unsigned tableSize) { // The vanilla "inverse log" curve for decoding. auto normalizedCurve = [](auto normalizedI) { return (std::pow(113.0, normalizedI) - 1) / 112.0; }; - auto normalizeI = [tableSize](auto x) { return x / (tableSize - 1.0); }; + auto normalizeI = [tableSize](auto x) { + return implicit_cast<double>(x) / (tableSize - 1.0); + }; auto denormalizeY = [maxVal = std::numeric_limits<uint16_t>::max()]( auto y) { return maxVal * y; }; // Adjust for output whitelevel bitdepth. @@ -493,64 +507,65 @@ tag = -tag; switch (tag) { - case VC5Tag::ChannelCount: + using enum VC5Tag; + case ChannelCount: if (val != numChannels) ThrowRDE("Bad channel count %u, expected %u", val, numChannels); break; - case VC5Tag::ImageWidth: + case ImageWidth: if (val != mRaw->dim.x) ThrowRDE("Image width mismatch: %u vs %u", val, mRaw->dim.x); break; - case VC5Tag::ImageHeight: + case ImageHeight: if (val != mRaw->dim.y) ThrowRDE("Image height mismatch: %u vs %u", val, mRaw->dim.y); break; - case VC5Tag::LowpassPrecision: + case LowpassPrecision: if (val < PRECISION_MIN || val > PRECISION_MAX) ThrowRDE("Invalid precision %i", val); mVC5.lowpassPrecision = val; break; - case VC5Tag::ChannelNumber: + case ChannelNumber: if (val >= numChannels) ThrowRDE("Bad channel number (%u)", val); mVC5.iChannel = val; break; - case VC5Tag::ImageFormat: + case ImageFormat: if (val != mVC5.imgFormat) ThrowRDE("Image format %i is not 4(RAW)", val); break; - case VC5Tag::SubbandCount: + case SubbandCount: if (val != numSubbands) ThrowRDE("Unexpected subband count %u, expected %u", val, numSubbands); break; - case VC5Tag::MaxBitsPerComponent: + case MaxBitsPerComponent: if (val != VC5_LOG_TABLE_BITWIDTH) { ThrowRDE("Bad bits per componend %u, not %u", val, VC5_LOG_TABLE_BITWIDTH); } break; - case VC5Tag::PatternWidth: + case PatternWidth: if (val != mVC5.patternWidth) ThrowRDE("Bad pattern width %u, not %u", val, mVC5.patternWidth); break; - case VC5Tag::PatternHeight: + case PatternHeight: if (val != mVC5.patternHeight) ThrowRDE("Bad pattern height %u, not %u", val, mVC5.patternHeight); break; - case VC5Tag::SubbandNumber: + case SubbandNumber: if (val >= numSubbands) ThrowRDE("Bad subband number %u", val); mVC5.iSubband = val; break; - case VC5Tag::Quantization: + case Quantization: mVC5.quantization = static_cast<int16_t>(val); break; - case VC5Tag::ComponentsPerSample: + case ComponentsPerSample: if (val != mVC5.cps) ThrowRDE("Bad component per sample count %u, not %u", val, mVC5.cps); break; - case VC5Tag::PrescaleShift: - // FIXME: something is wrong. We get this before VC5Tag::ChannelNumber. + case PrescaleShift: + // FIXME: something is wrong. We get this before ChannelNumber. // Defaulting to 'mVC5.iChannel=0' seems to work *for existing samples*. for (int iWavelet = 0; iWavelet < numWaveletLevels; ++iWavelet) { auto& channel = channels[mVC5.iChannel]; @@ -561,15 +576,15 @@ break; default: { // A chunk. unsigned int chunkSize = 0; - if (matches(tag, VC5Tag::LARGE_CHUNK)) { + if (matches(tag, LARGE_CHUNK)) { chunkSize = static_cast<unsigned int>( ((static_cast<std::underlying_type_t<VC5Tag>>(tag) & 0xff) << 16) | (val & 0xffff)); - } else if (matches(tag, VC5Tag::SMALL_CHUNK)) { + } else if (matches(tag, SMALL_CHUNK)) { chunkSize = (val & 0xffff); } - if (is(tag, VC5Tag::LargeCodeblock)) { + if (is(tag, LargeCodeblock)) { parseLargeCodeblock(mBs.getStream(chunkSize, 4)); break; } @@ -578,7 +593,7 @@ // Magic, all the other 'large' chunks are actually optional, // and don't specify any chunk bytes-to-be-skipped. - if (matches(tag, VC5Tag::LARGE_CHUNK)) { + if (matches(tag, LARGE_CHUNK)) { optional = true; chunkSize = 0; } @@ -608,8 +623,7 @@ #ifdef HAVE_OPENMP #pragma omp task default(none) shared(decodedData, errLog, exceptionThrown) \ - depend(out \ - : decodedData) + depend(out : decodedData) #endif { // Proceed only if decoding did not fail. @@ -624,15 +638,18 @@ #pragma omp atomic write #endif exceptionThrown = true; + } catch (...) { + // We should not get any other exception type here. + __builtin_unreachable(); } } } } VC5Decompressor::Wavelet::LowPassBand::LowPassBand(Wavelet& wavelet_, - ByteStream bs_, + ByteStream bs, uint16_t lowpassPrecision_) - : AbstractDecodeableBand(wavelet_, bs_), + : AbstractDecodeableBand(wavelet_, bs.getAsArray1DRef()), lowpassPrecision(lowpassPrecision_) { // Low-pass band is a uncompressed version of the image, hugely downscaled. // It consists of width * height pixels, `lowpassPrecision` each. @@ -644,19 +661,19 @@ const auto chunksTotal = roundUpDivision(bitsTotal, bitsPerChunk); const auto bytesTotal = bytesPerChunk * chunksTotal; // And clamp the size / verify sufficient input while we are at it. - bs = bs.getStream(bytesTotal); + // NOTE: this might fail (and should throw, not assert). + input = bs.getStream(implicit_cast<Buffer::size_type>(bytesTotal)) + .getAsArray1DRef(); } VC5Decompressor::BandData VC5Decompressor::Wavelet::LowPassBand::decode() const noexcept { - BandData lowpass; - auto& band = lowpass.description; - band = Array2DRef<int16_t>::create(lowpass.storage, wavelet.width, - wavelet.height); - - BitPumpMSB bits(bs); - for (auto row = 0; row < band.height; ++row) { - for (auto col = 0; col < band.width; ++col) + BandData lowpass(wavelet.width, wavelet.height); + const auto& band = lowpass.description; + + BitStreamerMSB bits(input); + for (auto row = 0; row < band.height(); ++row) { + for (auto col = 0; col < band.width(); ++col) band(row, col) = static_cast<int16_t>(bits.getBits(lowpassPrecision)); } @@ -667,7 +684,7 @@ VC5Decompressor::Wavelet::HighPassBand::decode() const { class DeRLVer final { const PrefixCodeDecoder& decoder; - BitPumpMSB bits; + BitStreamerMSB bits; const int16_t quant; int16_t pixelValue = 0; @@ -679,8 +696,9 @@ } public: - DeRLVer(const PrefixCodeDecoder& decoder_, ByteStream bs, int16_t quant_) - : decoder(decoder_), bits(bs), quant(quant_) {} + DeRLVer(const PrefixCodeDecoder& decoder_, Array1DRef<const uint8_t> input, + int16_t quant_) + : decoder(decoder_), bits(input), quant(quant_) {} void verifyIsAtEnd() { if (numPixelsLeft != 0) @@ -713,11 +731,9 @@ }; // decode highpass band - DeRLVer d(decoder, bs, quant); - BandData highpass; - auto& band = highpass.description; - band = Array2DRef<int16_t>::create(highpass.storage, wavelet.width, - wavelet.height); + DeRLVer d(*decoder, input, quant); + BandData highpass(wavelet.width, wavelet.height); + const auto& band = highpass.description; for (int row = 0; row != wavelet.height; ++row) for (int col = 0; col != wavelet.width; ++col) band(row, col) = d.decode(); @@ -779,8 +795,8 @@ } else { if (!mVC5.quantization.has_value()) ThrowRDE("Did not see VC5Tag::Quantization yet"); - dstBand = std::make_unique<Wavelet::HighPassBand>(wavelet, bs, *codeDecoder, - *mVC5.quantization); + dstBand = std::make_unique<Wavelet::HighPassBand>( + wavelet, bs.getAsArray1DRef(), codeDecoder, *mVC5.quantization); mVC5.quantization.reset(); } wavelet.setBandValid(band); @@ -804,10 +820,13 @@ for (int waveletLevel = numWaveletLevels; waveletLevel >= 0; waveletLevel--) { const int numBandsInCurrentWavelet = waveletLevel == 0 ? 1 : Wavelet::maxBands; - for (int bandId = 0; bandId != numBandsInCurrentWavelet; ++bandId) { + for (int bandId = numBandsInCurrentWavelet - 1; bandId >= 0; --bandId) { for (const auto& channel : channels) { channel.wavelets[waveletLevel].bands[bandId]->createDecodingTasks( static_cast<ErrorLog&>(*mRaw), exceptionThrown); + if (readValue(exceptionThrown)) { + return; + } } } } @@ -857,8 +876,8 @@ void VC5Decompressor::combineFinalLowpassBandsImpl() const noexcept { const Array2DRef<uint16_t> out(mRaw->getU16DataAsUncroppedArray2DRef()); - const int width = out.width / 2; - const int height = out.height / 2; + const int width = out.width() / 2; + const int height = out.height() / 2; assert(channels[0].wavelets[0].bands[0]->data.has_value() && channels[1].wavelets[0].bands[0]->data.has_value() && @@ -901,8 +920,8 @@ patData = applyStablePhaseShift(patData, basePhase, p); const Array2DRef<const int> pat(patData.data(), 2, 2); - for (int patRow = 0; patRow < pat.height; ++patRow) { - for (int patCol = 0; patCol < pat.width; ++patCol) { + for (int patRow = 0; patRow < pat.height(); ++patRow) { + for (int patCol = 0; patCol < pat.width(); ++patCol) { out(2 * row + patRow, 2 * col + patCol) = static_cast<uint16_t>(pat(patRow, patCol)); } @@ -913,10 +932,11 @@ void VC5Decompressor::combineFinalLowpassBands() const noexcept { switch (phase) { - case BayerPhase::RGGB: + using enum BayerPhase; + case RGGB: combineFinalLowpassBandsImpl<BayerPhase::RGGB>(); return; - case BayerPhase::GBRG: + case GBRG: combineFinalLowpassBandsImpl<BayerPhase::GBRG>(); return; default: @@ -926,11 +946,12 @@ } inline std::pair<int16_t /*value*/, unsigned int /*count*/> -VC5Decompressor::getRLV(const PrefixCodeDecoder& decoder, BitPumpMSB& bits) { +VC5Decompressor::getRLV(const PrefixCodeDecoder& decoder, + BitStreamerMSB& bits) { unsigned bitfield = decoder.decodeCodeValue(bits); unsigned int count = bitfield & ((1U << RLVRunLengthBitWidth) - 1U); - int16_t value = bitfield >> RLVRunLengthBitWidth; + auto value = implicit_cast<int16_t>(bitfield >> RLVRunLengthBitWidth); if (value != 0 && bits.getBitsNoFill(1)) value = -value; @@ -938,4 +959,9 @@ return {value, count}; } +void VC5Decompressor::Wavelet::AbstractBand::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + } // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/VC5Decompressor.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/VC5Decompressor.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/decompressors/VC5Decompressor.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/decompressors/VC5Decompressor.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,23 +21,25 @@ #pragma once -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/DefaultInitAllocatorAdaptor.h" // for DefaultInitAllocator... -#include "codes/PrefixCodeLUTDecoder.h" // for PrefixCodeLUTDecoder -#include "codes/PrefixCodeVectorDecoder.h" // for PrefixCodeVectorDe... -#include "common/BayerPhase.h" // for BayerPhase -#include "common/RawImage.h" // for RawImage -#include "common/SimpleLUT.h" // for SimpleLUT, SimpleLUT... -#include "decompressors/AbstractDecompressor.h" // for AbstractDecompressor -#include "io/BitPumpMSB.h" // for BitPumpMSB -#include "io/ByteStream.h" // for ByteStream -#include <array> // for array -#include <cstdint> // for int16_t, uint16_t -#include <memory> // for unique_ptr -#include <optional> // for optional -#include <type_traits> // for underlying_type_t -#include <utility> // for move, pair -#include <vector> // for vector +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/DefaultInitAllocatorAdaptor.h" +#include "adt/Optional.h" +#include "bitstreams/BitStreamerMSB.h" +#include "codes/AbstractPrefixCode.h" +#include "codes/PrefixCodeLUTDecoder.h" +#include "codes/PrefixCodeVectorDecoder.h" +#include "common/BayerPhase.h" +#include "common/RawImage.h" +#include "common/SimpleLUT.h" +#include "decompressors/AbstractDecompressor.h" +#include "io/ByteStream.h" +#include <array> +#include <cstdint> +#include <memory> +#include <type_traits> +#include <utility> +#include <vector> namespace rawspeed { class ErrorLog; @@ -103,7 +105,7 @@ using PrefixCodeDecoder = PrefixCodeLUTDecoder<VC5CodeTag, PrefixCodeVectorDecoder<VC5CodeTag>>; - std::optional<PrefixCodeDecoder> codeDecoder; + Optional<PrefixCodeDecoder> codeDecoder; void initPrefixCodeDecoder(); @@ -117,9 +119,9 @@ struct { uint16_t iChannel = 0; // 0'th channel is the default - std::optional<uint16_t> iSubband; - std::optional<uint16_t> lowpassPrecision; - std::optional<int16_t> quantization; + Optional<uint16_t> iSubband; + Optional<uint16_t> lowpassPrecision; + Optional<int16_t> quantization; const uint16_t imgFormat = 4; const uint16_t patternWidth = 2; @@ -127,12 +129,15 @@ const uint16_t cps = 1; } mVC5; - struct BandData { + struct BandData final { std::vector<int16_t, DefaultInitAllocatorAdaptor<int16_t>> storage; Array2DRef<int16_t> description; + + BandData(int width, int height) + : description(Array2DRef<int16_t>::create(storage, width, height)) {} }; - class Wavelet { + class Wavelet final { public: int width; int height; @@ -140,7 +145,8 @@ struct AbstractBand { Wavelet& wavelet; - std::optional<BandData> data; + Optional<BandData> data; + virtual void anchor() const; explicit AbstractBand(Wavelet& wavelet_) : wavelet(wavelet_) {} virtual ~AbstractBand() = default; virtual void createDecodingTasks(ErrorLog& errLog, @@ -150,8 +156,8 @@ bool clampUint; bool finalWavelet; struct { - std::optional<BandData> lowpass; - std::optional<BandData> highpass; + Optional<BandData> lowpass; + Optional<BandData> highpass; } intermediates; explicit ReconstructableBand(Wavelet& wavelet_, bool clampUint_ = false, bool finalWavelet_ = false) @@ -166,25 +172,25 @@ bool& exceptionThrown) noexcept override; }; struct AbstractDecodeableBand : AbstractBand { - ByteStream bs; - explicit AbstractDecodeableBand(Wavelet& wavelet_, ByteStream bs_) - : AbstractBand(wavelet_), bs(bs_) {} + Array1DRef<const uint8_t> input; + explicit AbstractDecodeableBand(Wavelet& wavelet_, + Array1DRef<const uint8_t> input_) + : AbstractBand(wavelet_), input(input_) {} [[nodiscard]] virtual BandData decode() const = 0; void createDecodingTasks(ErrorLog& errLog, bool& exceptionThrown) noexcept final; }; struct LowPassBand final : AbstractDecodeableBand { uint16_t lowpassPrecision; - LowPassBand(Wavelet& wavelet_, ByteStream bs_, - uint16_t lowpassPrecision_); + LowPassBand(Wavelet& wavelet_, ByteStream bs, uint16_t lowpassPrecision_); [[nodiscard]] BandData decode() const noexcept override; }; struct HighPassBand final : AbstractDecodeableBand { - const PrefixCodeDecoder& decoder; + const Optional<PrefixCodeDecoder>& decoder; int16_t quant; - HighPassBand(Wavelet& wavelet_, ByteStream bs_, - const PrefixCodeDecoder& decoder_, int16_t quant_) - : AbstractDecodeableBand(wavelet_, bs_), decoder(decoder_), + HighPassBand(Wavelet& wavelet_, Array1DRef<const uint8_t> input_, + const Optional<PrefixCodeDecoder>& decoder_, int16_t quant_) + : AbstractDecodeableBand(wavelet_, input_), decoder(decoder_), quant(quant_) {} [[nodiscard]] BandData decode() const override; }; @@ -206,11 +212,10 @@ bool clampUint /*= false*/, bool finalWavelet /*= false*/) noexcept; - protected: uint32_t mDecodedBandMask = 0; }; - struct Channel { + struct Channel final { std::array<Wavelet, numWaveletLevels + 1> wavelets; }; @@ -220,7 +225,7 @@ std::array<Channel, numChannels> channels; static inline std::pair<int16_t /*value*/, unsigned int /*count*/> - getRLV(const PrefixCodeDecoder& decoder, BitPumpMSB& bits); + getRLV(const PrefixCodeDecoder& decoder, BitStreamerMSB& bits); void parseLargeCodeblock(ByteStream bs); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/interpolators/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/src/librawspeed/interpolators/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/interpolators/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/interpolators/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -1,8 +1,21 @@ +rawspeed_add_library(rawspeed_interpolators OBJECT) +set_target_properties(rawspeed_interpolators PROPERTIES LINKER_LANGUAGE CXX) + FILE(GLOB SOURCES "Cr2sRawInterpolator.cpp" "Cr2sRawInterpolator.h" ) -target_sources(rawspeed PRIVATE +target_sources(rawspeed_interpolators PRIVATE ${SOURCES} ) + +target_include_directories(rawspeed_interpolators PUBLIC "${RAWSPEED_BINARY_DIR}/src") +target_include_directories(rawspeed_interpolators SYSTEM PUBLIC "${RAWSPEED_SOURCE_DIR}/src/external") +target_include_directories(rawspeed_interpolators PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/..") + +if(TARGET RawSpeed::OpenMP_CXX) + target_link_libraries(rawspeed_interpolators PUBLIC RawSpeed::OpenMP_CXX) +endif() + +target_link_libraries(rawspeed PRIVATE rawspeed_interpolators) diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,17 +19,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "rawspeedconfig.h" // for HAVE_OPENMP +#include "rawspeedconfig.h" #include "interpolators/Cr2sRawInterpolator.h" -#include "adt/Array2DRef.h" // for Array2DRef -#include "adt/Invariant.h" // for invariant -#include "adt/Point.h" // for iPoint2D -#include "common/Common.h" // for clampBits, rawspeed_get_nu... -#include "common/RawImage.h" // for RawImage, RawImageData -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include <array> // for array, array<>::value_type -#include <cstddef> // for size_t -#include <cstdint> // for uint16_t +#include "adt/Array2DRef.h" +#include "adt/Bit.h" +#include "adt/CroppedArray1DRef.h" +#include "adt/Invariant.h" +#include "adt/Point.h" +#include "common/Common.h" +#include "common/RawImage.h" +#include "decoders/RawDecoderException.h" +#include <array> +#include <cstdint> namespace rawspeed { @@ -38,19 +39,21 @@ int Cb = 0; int Cr = 0; - inline static void LoadY(YCbCr* p, const uint16_t* data) { + inline static void LoadY(YCbCr* p, + const CroppedArray1DRef<const uint16_t> in) { invariant(p); - invariant(data); + invariant(in.size() == 1); - p->Y = data[0]; + p->Y = in(0); } - inline static void LoadCbCr(YCbCr* p, const uint16_t* data) { + inline static void LoadCbCr(YCbCr* p, + const CroppedArray1DRef<const uint16_t> in) { invariant(p); - invariant(data); + invariant(in.size() == 2); - p->Cb = data[0]; - p->Cr = data[1]; + p->Cb = in(0); + p->Cr = in(1); } inline static void CopyCbCr(YCbCr* p, const YCbCr& pSrc) { @@ -102,8 +105,8 @@ constexpr int ComponentsPerPixel = 3; constexpr int OutputComponentsPerMCU = ComponentsPerPixel * PixelsPerMCU; - invariant(input.width % InputComponentsPerMCU == 0); - int numMCUs = input.width / InputComponentsPerMCU; + invariant(input.width() % InputComponentsPerMCU == 0); + int numMCUs = input.width() / InputComponentsPerMCU; invariant(numMCUs > 1); using MCUTy = std::array<YCbCr, PixelsPerMCU>; @@ -111,17 +114,18 @@ auto LoadMCU = [input_ = input, row](int MCUIdx) { MCUTy MCU; for (int YIdx = 0; YIdx < PixelsPerMCU; ++YIdx) - YCbCr::LoadY(&MCU[YIdx], - &input_(row, InputComponentsPerMCU * MCUIdx + YIdx)); - YCbCr::LoadCbCr(&MCU[0], - &input_(row, InputComponentsPerMCU * MCUIdx + YsPerMCU)); + YCbCr::LoadY(&MCU[YIdx], input_[row].getCrop( + InputComponentsPerMCU * MCUIdx + YIdx, 1)); + YCbCr::LoadCbCr(&MCU[0], input_[row].getCrop( + InputComponentsPerMCU * MCUIdx + YsPerMCU, 2)); return MCU; }; auto StoreMCU = [this, out, row](const MCUTy& MCU, int MCUIdx) { for (int Pixel = 0; Pixel < PixelsPerMCU; ++Pixel) { YUV_TO_RGB<version>(MCU[Pixel], - &out(row, OutputComponentsPerMCU * MCUIdx + - ComponentsPerPixel * Pixel)); + out[row].getCrop(OutputComponentsPerMCU * MCUIdx + + ComponentsPerPixel * Pixel, + 3)); } }; @@ -145,7 +149,8 @@ // For 4:2:2, one MCU encodes 2 pixels, and odd pixels need interpolation, // so we need to load three pixels, and thus we must load 2 MCU's. std::array<MCUTy, 2> MCUs; - for (size_t SubMCUIdx = 0; SubMCUIdx < MCUs.size(); ++SubMCUIdx) + for (int SubMCUIdx = 0; static_cast<unsigned>(SubMCUIdx) < MCUs.size(); + ++SubMCUIdx) MCUs[SubMCUIdx] = LoadMCU(MCUIdx + SubMCUIdx); // Process first pixel, which is full @@ -178,12 +183,12 @@ template <int version> void Cr2sRawInterpolator::interpolate_422() { const Array2DRef<uint16_t> out(mRaw->getU16DataAsUncroppedArray2DRef()); - invariant(out.width > 0); - invariant(out.height > 0); + invariant(out.width() > 0); + invariant(out.height() > 0); // Benchmarking suggests that for real-world usage, it is not beneficial to // parallelize this, and in fact leads to worse performance. - for (int row = 0; row < out.height; row++) + for (int row = 0; row < out.height(); row++) interpolate_422_row<version>(row); } @@ -199,8 +204,8 @@ constexpr int ComponentsPerPixel = 3; constexpr int OutputComponentsPerMCU = ComponentsPerPixel * PixelsPerMCU; - invariant(input.width % InputComponentsPerMCU == 0); - int numMCUs = input.width / InputComponentsPerMCU; + invariant(input.width() % InputComponentsPerMCU == 0); + int numMCUs = input.width() / InputComponentsPerMCU; invariant(numMCUs > 1); using MCUTy = std::array<std::array<YCbCr, X_S_F>, Y_S_F>; @@ -211,27 +216,30 @@ for (int MCURow = 0; MCURow < Y_S_F; ++MCURow) { for (int MCUCol = 0; MCUCol < X_S_F; ++MCUCol) { YCbCr::LoadY(&MCU[MCURow][MCUCol], - &input_(Row, InputComponentsPerMCU * MCUIdx + - X_S_F * MCURow + MCUCol)); + input_[Row].getCrop(InputComponentsPerMCU * MCUIdx + + X_S_F * MCURow + MCUCol, + 1)); } } - YCbCr::LoadCbCr(&MCU[0][0], - &input_(Row, InputComponentsPerMCU * MCUIdx + YsPerMCU)); + YCbCr::LoadCbCr( + &MCU[0][0], + input_[Row].getCrop(InputComponentsPerMCU * MCUIdx + YsPerMCU, 2)); return MCU; }; auto StoreMCU = [ this, out ](const MCUTy& MCU, int MCUIdx, int Row) __attribute__((always_inline)) { for (int MCURow = 0; MCURow < Y_S_F; ++MCURow) { for (int MCUCol = 0; MCUCol < X_S_F; ++MCUCol) { - YUV_TO_RGB<version>( - MCU[MCURow][MCUCol], - &out(2 * Row + MCURow, ((OutputComponentsPerMCU * MCUIdx) / Y_S_F) + - ComponentsPerPixel * MCUCol)); + YUV_TO_RGB<version>(MCU[MCURow][MCUCol], + out[2 * Row + MCURow].getCrop( + ((OutputComponentsPerMCU * MCUIdx) / Y_S_F) + + ComponentsPerPixel * MCUCol, + 3)); } } }; - invariant(row + 1 <= input.height); + invariant(row + 1 <= input.height()); // The packed input format is: // p0 p1 p2 p3 p0 p0 p4 p5 p6 p7 p4 p4 @@ -351,8 +359,8 @@ constexpr int ComponentsPerPixel = 3; constexpr int OutputComponentsPerMCU = ComponentsPerPixel * PixelsPerMCU; - invariant(input.width % InputComponentsPerMCU == 0); - int numMCUs = input.width / InputComponentsPerMCU; + invariant(input.width() % InputComponentsPerMCU == 0); + int numMCUs = input.width() / InputComponentsPerMCU; invariant(numMCUs > 1); using MCUTy = std::array<std::array<YCbCr, X_S_F>, Y_S_F>; @@ -363,22 +371,25 @@ for (int MCURow = 0; MCURow < Y_S_F; ++MCURow) { for (int MCUCol = 0; MCUCol < X_S_F; ++MCUCol) { YCbCr::LoadY(&MCU[MCURow][MCUCol], - &input_(Row, InputComponentsPerMCU * MCUIdx + - X_S_F * MCURow + MCUCol)); + input_[Row].getCrop(InputComponentsPerMCU * MCUIdx + + X_S_F * MCURow + MCUCol, + 1)); } } - YCbCr::LoadCbCr(&MCU[0][0], - &input_(Row, InputComponentsPerMCU * MCUIdx + YsPerMCU)); + YCbCr::LoadCbCr( + &MCU[0][0], + input_[Row].getCrop(InputComponentsPerMCU * MCUIdx + YsPerMCU, 2)); return MCU; }; auto StoreMCU = [ this, out ](const MCUTy& MCU, int MCUIdx, int Row) __attribute__((always_inline)) { for (int MCURow = 0; MCURow < Y_S_F; ++MCURow) { for (int MCUCol = 0; MCUCol < X_S_F; ++MCUCol) { - YUV_TO_RGB<version>( - MCU[MCURow][MCUCol], - &out(2 * Row + MCURow, ((OutputComponentsPerMCU * MCUIdx) / Y_S_F) + - ComponentsPerPixel * MCUCol)); + YUV_TO_RGB<version>(MCU[MCURow][MCUCol], + out[2 * Row + MCURow].getCrop( + ((OutputComponentsPerMCU * MCUIdx) / Y_S_F) + + ComponentsPerPixel * MCUCol, + 3)); } } }; @@ -387,12 +398,12 @@ #ifdef HAVE_OPENMP #pragma omp parallel for default(none) schedule(static) \ num_threads(rawspeed_get_number_of_processor_cores()) firstprivate(out) \ - lastprivate(row) + lastprivate(row) #endif - for (row = 0; row < input.height - 1; ++row) + for (row = 0; row < input.height() - 1; ++row) interpolate_420_row<version>(row); - invariant(row + 1 == input.height); + invariant(row + 1 == input.height()); // Last two lines, the packed input format is: // p0 p1 p2 p3 p0 p0 p4 p5 p6 p7 p4 p4 @@ -457,44 +468,44 @@ StoreMCU(MCU, MCUIdx, row); } -inline void Cr2sRawInterpolator::STORE_RGB(uint16_t* X, int r, int g, int b) { - invariant(X); - - X[0] = clampBits(r >> 8, 16); - X[1] = clampBits(g >> 8, 16); - X[2] = clampBits(b >> 8, 16); +inline void Cr2sRawInterpolator::STORE_RGB(CroppedArray1DRef<uint16_t> out, + int r, int g, int b) { + invariant(out.size() == 3); + out(0) = clampBits(r >> 8, 16); + out(1) = clampBits(g >> 8, 16); + out(2) = clampBits(b >> 8, 16); } template </* int version */> /* Algorithm found in EOS 40D */ -inline void Cr2sRawInterpolator::YUV_TO_RGB<0>(const YCbCr& p, uint16_t* X) { - invariant(X); - +inline void +Cr2sRawInterpolator::YUV_TO_RGB<0>(const YCbCr& p, + CroppedArray1DRef<uint16_t> out) { int r = sraw_coeffs[0] * (p.Y + p.Cr - 512); int g = sraw_coeffs[1] * (p.Y + ((-778 * p.Cb - (p.Cr * 2048)) >> 12) - 512); int b = sraw_coeffs[2] * (p.Y + (p.Cb - 512)); - STORE_RGB(X, r, g, b); + STORE_RGB(out, r, g, b); } template </* int version */> -inline void Cr2sRawInterpolator::YUV_TO_RGB<1>(const YCbCr& p, uint16_t* X) { - invariant(X); - +inline void +Cr2sRawInterpolator::YUV_TO_RGB<1>(const YCbCr& p, + CroppedArray1DRef<uint16_t> out) { int r = sraw_coeffs[0] * (p.Y + ((50 * p.Cb + 22929 * p.Cr) >> 12)); int g = sraw_coeffs[1] * (p.Y + ((-5640 * p.Cb - 11751 * p.Cr) >> 12)); int b = sraw_coeffs[2] * (p.Y + ((29040 * p.Cb - 101 * p.Cr) >> 12)); - STORE_RGB(X, r, g, b); + STORE_RGB(out, r, g, b); } template </* int version */> /* Algorithm found in EOS 5d Mk III */ -inline void Cr2sRawInterpolator::YUV_TO_RGB<2>(const YCbCr& p, uint16_t* X) { - invariant(X); - +inline void +Cr2sRawInterpolator::YUV_TO_RGB<2>(const YCbCr& p, + CroppedArray1DRef<uint16_t> out) { int r = sraw_coeffs[0] * (p.Y + p.Cr); int g = sraw_coeffs[1] * (p.Y + ((-778 * p.Cb - (p.Cr * 2048)) >> 12)); int b = sraw_coeffs[2] * (p.Y + p.Cb); - STORE_RGB(X, r, g, b); + STORE_RGB(out, r, g, b); } // Interpolate and convert sRaw data. diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/interpolators/Cr2sRawInterpolator.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,9 +20,10 @@ #pragma once -#include "adt/Array2DRef.h" // for Array2DRef -#include <array> // for array -#include <cstdint> // for uint16_t +#include "adt/Array2DRef.h" +#include "adt/CroppedArray1DRef.h" +#include <array> +#include <cstdint> namespace rawspeed { @@ -45,9 +46,11 @@ void interpolate(int version); private: - template <int version> inline void YUV_TO_RGB(const YCbCr& p, uint16_t* X); + template <int version> + inline void YUV_TO_RGB(const YCbCr& p, CroppedArray1DRef<uint16_t> out); - static inline void STORE_RGB(uint16_t* X, int r, int g, int b); + static inline void STORE_RGB(CroppedArray1DRef<uint16_t> out, int r, int g, + int b); template <int version> void interpolate_422_row(int row); template <int version> void interpolate_422(); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/BitPumpJPEG.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/BitPumpJPEG.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/BitPumpJPEG.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/BitPumpJPEG.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,109 +0,0 @@ -/* - RawSpeed - RAW file decoder. - - Copyright (C) 2017 Axel Waggershauser - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#pragma once - -#include "common/Common.h" // for bitwidth -#include "io/BitStream.h" // for BitStreamCacheRightInLeftOut, BitStream -#include "io/Buffer.h" // for Buffer::size_type -#include "io/Endianness.h" // for getBE -#include <algorithm> // for copy_n, none_of -#include <array> // for array -#include <cstdint> // for uint8_t, uint32_t - -namespace rawspeed { - -struct JPEGBitPumpTag; - -// The JPEG data is ordered in MSB bit order, -// i.e. we push into the cache from the right and read it from the left -using BitPumpJPEG = BitStream<JPEGBitPumpTag, BitStreamCacheRightInLeftOut>; - -template <> struct BitStreamTraits<JPEGBitPumpTag> final { - static constexpr bool canUseWithPrefixCodeDecoder = true; - - // How many bytes can we read from the input per each fillCache(), at most? - // Normally, we want to read 4 bytes, but at worst each one of those can be - // an 0xFF byte, separated by 0x00 byte, signifying that 0xFF is a data byte. - static constexpr int MaxProcessBytes = 8; -}; - -template <> -inline BitPumpJPEG::size_type BitPumpJPEG::fillCache(const uint8_t* input) { - static_assert(BitStreamCacheBase::MaxGetBits >= 32, "check implementation"); - - std::array<uint8_t, BitStreamTraits<JPEGBitPumpTag>::MaxProcessBytes> - prefetch; - std::copy_n(input, prefetch.size(), prefetch.begin()); - - // short-cut path for the most common case (no FF marker in the next 4 bytes) - // this is slightly faster than the else-case alone. - if (std::none_of(&prefetch[0], &prefetch[4], - [](uint8_t byte) { return byte == 0xFF; })) { - cache.push(getBE<uint32_t>(prefetch.data()), 32); - return 4; - } - - size_type p = 0; - for (size_type i = 0; i < 4; ++i) { - // Pre-execute most common case, where next byte is 'normal'/non-FF - const int c0 = prefetch[p]; - ++p; - cache.push(c0, 8); - if (c0 == 0xFF) { - // Found FF -> pre-execute case of FF/00, which represents an FF data byte - // -> ignore the 00 - const int c1 = prefetch[p]; - ++p; - if (c1 != 0) { - // Found FF/xx with xx != 00. This is the end of stream marker. - // That means we shouldn't have pushed last 8 bits (0xFF, from c0). - // We need to "unpush" them, and fill the vacant cache bits with zeros. - - // First, recover the cache fill level. - cache.fillLevel -= 8; - // Now, this code is incredibly underencapsulated, and the - // implementation details are leaking into here. Thus, we know that - // all the fillLevel bits in cache are all high bits. So to "unpush" - // the last 8 bits, and fill the vacant cache bits with zeros, we only - // need to keep the high fillLevel bits. So just create a mask with only - // high fillLevel bits set, and 'and' the cache with it. - // Caution, we know fillLevel won't be 64, but it may be 0, - // so pick the mask-creation idiom accordingly. - cache.cache &= ~((~0ULL) >> cache.fillLevel); - cache.fillLevel = 64; - - // No further reading from this buffer shall happen. Do signal that by - // claiming that we have consumed all the remaining bytes of the buffer. - return getRemainingSize(); - } - } - } - return p; -} - -template <> -inline BitPumpJPEG::size_type BitPumpJPEG::getStreamPosition() const { - // the current number of bytes we consumed -> at the end of the stream pos, it - // points to the JPEG marker FF - return getInputPosition(); -} - -} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/BitPumpLSB.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/BitPumpLSB.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/BitPumpLSB.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/BitPumpLSB.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,50 +0,0 @@ -/* - RawSpeed - RAW file decoder. - - Copyright (C) 2017 Axel Waggershauser - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#pragma once - -#include "io/BitStream.h" // for BitStreamCacheLeftInRightOut, BitStream -#include "io/Buffer.h" // for Buffer::size_type -#include "io/Endianness.h" // for getLE -#include <cstdint> // for uint32_t, uint8_t - -namespace rawspeed { - -struct LSBBitPumpTag; - -// The LSBPump is ordered in LSB bit order, -// i.e. we push into the cache from the left and read it from the right - -using BitPumpLSB = BitStream<LSBBitPumpTag, BitStreamCacheLeftInRightOut>; - -template <> struct BitStreamTraits<LSBBitPumpTag> final { - // How many bytes can we read from the input per each fillCache(), at most? - static constexpr int MaxProcessBytes = 4; -}; - -template <> -inline BitPumpLSB::size_type BitPumpLSB::fillCache(const uint8_t* input) { - static_assert(BitStreamCacheBase::MaxGetBits >= 32, "check implementation"); - - cache.push(getLE<uint32_t>(input), 32); - return 4; -} - -} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/BitPumpMSB.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/BitPumpMSB.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/BitPumpMSB.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/BitPumpMSB.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,52 +0,0 @@ -/* - RawSpeed - RAW file decoder. - - Copyright (C) 2017 Axel Waggershauser - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#pragma once - -#include "io/BitStream.h" // for BitStreamCacheRightInLeftOut, BitStream -#include "io/Buffer.h" // for Buffer::size_type -#include "io/Endianness.h" // for getBE -#include <cstdint> // for uint32_t, uint8_t - -namespace rawspeed { - -struct MSBBitPumpTag; - -// The MSB data is ordered in MSB bit order, -// i.e. we push into the cache from the right and read it from the left - -using BitPumpMSB = BitStream<MSBBitPumpTag, BitStreamCacheRightInLeftOut>; - -template <> struct BitStreamTraits<MSBBitPumpTag> final { - static constexpr bool canUseWithPrefixCodeDecoder = true; - - // How many bytes can we read from the input per each fillCache(), at most? - static constexpr int MaxProcessBytes = 4; -}; - -template <> -inline BitPumpMSB::size_type BitPumpMSB::fillCache(const uint8_t* input) { - static_assert(BitStreamCacheBase::MaxGetBits >= 32, "check implementation"); - - cache.push(getBE<uint32_t>(input), 32); - return 4; -} - -} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/BitPumpMSB16.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/BitPumpMSB16.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/BitPumpMSB16.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/BitPumpMSB16.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,51 +0,0 @@ -/* - RawSpeed - RAW file decoder. - - Copyright (C) 2017 Axel Waggershauser - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#pragma once - -#include "io/BitStream.h" // for BitStreamCacheRightInLeftOut, BitStream -#include "io/Buffer.h" // for Buffer::size_type -#include "io/Endianness.h" // for getLE -#include <cstdint> // for uint16_t, uint8_t - -namespace rawspeed { - -struct MSB16BitPumpTag; - -// The MSB data is ordered in MSB bit order, -// i.e. we push into the cache from the right and read it from the left - -using BitPumpMSB16 = BitStream<MSB16BitPumpTag, BitStreamCacheRightInLeftOut>; - -template <> struct BitStreamTraits<MSB16BitPumpTag> final { - // How many bytes can we read from the input per each fillCache(), at most? - static constexpr int MaxProcessBytes = 4; -}; - -template <> -inline BitPumpMSB16::size_type BitPumpMSB16::fillCache(const uint8_t* input) { - static_assert(BitStreamCacheBase::MaxGetBits >= 32, "check implementation"); - - for (size_type i = 0; i < 4; i += sizeof(uint16_t)) - cache.push(getLE<uint16_t>(input + i), 16); - return 4; -} - -} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/BitPumpMSB32.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/BitPumpMSB32.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/BitPumpMSB32.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/BitPumpMSB32.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,52 +0,0 @@ -/* - RawSpeed - RAW file decoder. - - Copyright (C) 2017 Axel Waggershauser - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#pragma once - -#include "io/BitStream.h" // for BitStreamCacheRightInLeftOut, BitStream -#include "io/Buffer.h" // for Buffer::size_type -#include "io/Endianness.h" // for getLE -#include <cstdint> // for uint32_t, uint8_t - -namespace rawspeed { - -struct MSB32BitPumpTag; - -// The MSB data is ordered in MSB bit order, -// i.e. we push into the cache from the right and read it from the left - -using BitPumpMSB32 = BitStream<MSB32BitPumpTag, BitStreamCacheRightInLeftOut>; - -template <> struct BitStreamTraits<MSB32BitPumpTag> final { - static constexpr bool canUseWithPrefixCodeDecoder = true; - - // How many bytes can we read from the input per each fillCache(), at most? - static constexpr int MaxProcessBytes = 4; -}; - -template <> -inline BitPumpMSB32::size_type BitPumpMSB32::fillCache(const uint8_t* input) { - static_assert(BitStreamCacheBase::MaxGetBits >= 32, "check implementation"); - - cache.push(getLE<uint32_t>(input), 32); - return 4; -} - -} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/BitStream.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/BitStream.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/BitStream.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/BitStream.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -/* - RawSpeed - RAW file decoder. - - Copyright (C) 2019 Roman Lebedev - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include "io/BitStream.h" // for BitStreamCacheBase diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/BitStream.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/BitStream.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/BitStream.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/BitStream.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,271 +0,0 @@ -/* - RawSpeed - RAW file decoder. - - Copyright (C) 2009-2014 Klaus Post - Copyright (C) 2017 Axel Waggershauser - Copyright (C) 2017-2021 Roman Lebedev - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#pragma once - -#include "rawspeedconfig.h" // for RAWSPEED_READONLY -#include "adt/Invariant.h" // for invariant -#include "common/Common.h" // for bitwidth, extractHighBits -#include "io/Buffer.h" // for Buffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::unknown -#include "io/IOException.h" // for ThrowIOE -#include <algorithm> // for fill_n, min -#include <array> // for array -#include <cstdint> // for uint32_t, uint8_t, uint64_t -#include <cstring> // for memcpy - -namespace rawspeed { - -template <typename BIT_STREAM> struct BitStreamTraits final { - static constexpr bool canUseWithPrefixCodeDecoder = false; -}; - -// simple 64-bit wide cache implementation that acts like a FiFo. -// There are two variants: -// * L->R: new bits are pushed in on the left and pulled out on the right -// * L<-R: new bits are pushed in on the right and pulled out on the left -// Each BitStream specialization uses one of the two. - -struct BitStreamCacheBase { - uint64_t cache = 0; // the actual bits stored in the cache - unsigned int fillLevel = 0; // bits left in cache - - static constexpr unsigned Size = bitwidth<decltype(cache)>(); - - // how many bits could be requested to be filled - static constexpr unsigned MaxGetBits = bitwidth<uint32_t>(); -}; - -struct BitStreamCacheLeftInRightOut : BitStreamCacheBase { - inline void push(uint64_t bits, uint32_t count) noexcept { - invariant(count + fillLevel <= bitwidth(cache)); - cache |= bits << fillLevel; - fillLevel += count; - } - - [[nodiscard]] inline uint32_t peek(uint32_t count) const noexcept { - return cache & ((1U << count) - 1U); - } - - inline void skip(uint32_t count) noexcept { - cache >>= count; - fillLevel -= count; - } -}; - -struct BitStreamCacheRightInLeftOut : BitStreamCacheBase { - inline void push(uint64_t bits, uint32_t count) noexcept { - invariant(count + fillLevel <= Size); - invariant(count != 0); - // If the maximal size of the cache is BitStreamCacheBase::Size, and we - // have fillLevel [high] bits set, how many empty [low] bits do we have? - const uint32_t vacantBits = BitStreamCacheBase::Size - fillLevel; - // If we just directly 'or' these low bits into the cache right now, - // how many unfilled bits of a gap will there be in the middle of a cache? - const uint32_t emptyBitsGap = vacantBits - count; - // So just shift the new bits so that there is no gap in the middle. - cache |= bits << emptyBitsGap; - fillLevel += count; - } - - [[nodiscard]] inline uint32_t peek(uint32_t count) const noexcept { - return extractHighBits(cache, count, - /*effectiveBitwidth=*/BitStreamCacheBase::Size); - } - - inline void skip(uint32_t count) noexcept { - fillLevel -= count; - cache <<= count; - } -}; - -template <typename Tag> struct BitStreamReplenisherBase { - using size_type = uint32_t; - - const uint8_t* data; - size_type size; - unsigned pos = 0; - - BitStreamReplenisherBase() = default; - - explicit BitStreamReplenisherBase(Buffer input) - : data(input.getData(0, input.getSize())), size(input.getSize()) { - if (size < BitStreamTraits<Tag>::MaxProcessBytes) - ThrowIOE("Bit stream size is smaller than MaxProcessBytes"); - } - - // A temporary intermediate buffer that may be used by fill() method either - // in debug build to enforce lack of out-of-bounds reads, or when we are - // nearing the end of the input buffer and can not just read - // BitStreamTraits<Tag>::MaxProcessBytes from it, but have to read as much as - // we can and fill rest with zeros. - std::array<uint8_t, BitStreamTraits<Tag>::MaxProcessBytes> tmp = {}; -}; - -template <typename Tag> -struct BitStreamForwardSequentialReplenisher final - : public BitStreamReplenisherBase<Tag> { - using Base = BitStreamReplenisherBase<Tag>; - - BitStreamForwardSequentialReplenisher() = default; - - using Base::BitStreamReplenisherBase; - - [[nodiscard]] inline typename Base::size_type getPos() const { - return Base::pos; - } - [[nodiscard]] inline typename Base::size_type getRemainingSize() const { - return Base::size - getPos(); - } - inline void markNumBytesAsConsumed(typename Base::size_type numBytes) { - Base::pos += numBytes; - } - - inline const uint8_t* getInput() { -#if !defined(DEBUG) - // Do we have BitStreamTraits<Tag>::MaxProcessBytes or more bytes left in - // the input buffer? If so, then we can just read from said buffer. - if (Base::pos + BitStreamTraits<Tag>::MaxProcessBytes <= Base::size) - return Base::data + Base::pos; -#endif - - // We have to use intermediate buffer, either because the input is running - // out of bytes, or because we want to enforce bounds checking. - - // Note that in order to keep all fill-level invariants we must allow to - // over-read past-the-end a bit. - if (Base::pos > Base::size + 2 * BitStreamTraits<Tag>::MaxProcessBytes) - ThrowIOE("Buffer overflow read in BitStream"); - - Base::tmp.fill(0); - - // How many bytes are left in input buffer? - // Since pos can be past-the-end we need to carefully handle overflow. - typename Base::size_type bytesRemaining = - (Base::pos < Base::size) ? Base::size - Base::pos : 0; - // And if we are not at the end of the input, we may have more than we need. - bytesRemaining = std::min<typename Base::size_type>( - BitStreamTraits<Tag>::MaxProcessBytes, bytesRemaining); - - memcpy(Base::tmp.data(), Base::data + Base::pos, bytesRemaining); - return Base::tmp.data(); - } -}; - -template <typename Tag, typename Cache, - typename Replenisher = BitStreamForwardSequentialReplenisher<Tag>> -class BitStream final { - Cache cache; - - Replenisher replenisher; - - using size_type = uint32_t; - - // this method hase to be implemented in the concrete BitStream template - // specializations. It will return the number of bytes processed. It needs - // to process up to BitStreamTraits<Tag>::MaxProcessBytes bytes of input. - size_type fillCache(const uint8_t* input); - -public: - using tag = Tag; - - BitStream() = default; - - explicit BitStream(Buffer buf) : replenisher(buf) {} - - explicit BitStream(ByteStream s) - : BitStream(s.getSubView(s.getPosition(), s.getRemainSize())) {} - - inline void fill(uint32_t nbits = Cache::MaxGetBits) { - invariant(nbits <= Cache::MaxGetBits); - - if (cache.fillLevel >= nbits) - return; - - replenisher.markNumBytesAsConsumed(fillCache(replenisher.getInput())); - } - - // these methods might be specialized by implementations that support it - [[nodiscard]] inline size_type RAWSPEED_READONLY getInputPosition() const { - return replenisher.getPos(); - } - - // these methods might be specialized by implementations that support it - [[nodiscard]] inline size_type getStreamPosition() const { - return getInputPosition() - (cache.fillLevel >> 3); - } - - [[nodiscard]] inline size_type getRemainingSize() const { - return replenisher.getRemainingSize(); - } - - [[nodiscard]] inline size_type RAWSPEED_READONLY getFillLevel() const { - return cache.fillLevel; - } - - inline uint32_t RAWSPEED_READONLY peekBitsNoFill(uint32_t nbits) { - invariant(nbits != 0); - invariant(nbits <= Cache::MaxGetBits); - invariant(nbits <= cache.fillLevel); - return cache.peek(nbits); - } - - inline void skipBitsNoFill(uint32_t nbits) { - invariant(nbits <= Cache::MaxGetBits); - invariant(nbits <= cache.fillLevel); - cache.skip(nbits); - } - - inline uint32_t getBitsNoFill(uint32_t nbits) { - uint32_t ret = peekBitsNoFill(nbits); - skipBitsNoFill(nbits); - return ret; - } - - inline uint32_t peekBits(uint32_t nbits) { - fill(nbits); - return peekBitsNoFill(nbits); - } - - inline uint32_t getBits(uint32_t nbits) { - fill(nbits); - return getBitsNoFill(nbits); - } - - // This may be used to skip arbitrarily large number of *bytes*, - // not limited by the fill level. - inline void skipBytes(uint32_t nbytes) { - uint32_t remainingBitsToSkip = 8 * nbytes; - for (; remainingBitsToSkip >= Cache::MaxGetBits; - remainingBitsToSkip -= Cache::MaxGetBits) { - fill(Cache::MaxGetBits); - skipBitsNoFill(Cache::MaxGetBits); - } - if (remainingBitsToSkip > 0) { - fill(remainingBitsToSkip); - skipBitsNoFill(remainingBitsToSkip); - } - } -}; - -} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/Buffer.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/Buffer.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/Buffer.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/Buffer.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,15 +21,18 @@ #pragma once -#include "AddressSanitizer.h" // for ASan -#include "adt/Invariant.h" // for invariant -#include "common/Common.h" // for roundUp -#include "io/Endianness.h" // for Endianness, getHostEndianness, Endiannes... -#include "io/IOException.h" // for ThrowException, ThrowIOE -#include <cassert> // for invariant -#include <cstdint> // for uint8_t, uint64_t, uint32_t -#include <memory> // for unique_ptr -#include <utility> // for move, operator<, pair, swap +#include "rawspeedconfig.h" +#include "adt/Array1DRef.h" +#include "adt/Casts.h" +#include "io/Endianness.h" +#include "io/IOException.h" +#include <cassert> +#include <cstdint> +#include <utility> + +#ifndef NDEBUG +#include "AddressSanitizer.h" +#endif namespace rawspeed { @@ -54,61 +57,59 @@ public: Buffer() = default; - // Data already allocated - explicit Buffer(const uint8_t* data_, size_type size_) - : data(data_), size(size_) { + // NOLINTNEXTLINE(google-explicit-constructor) + Buffer(Array1DRef<const uint8_t> data_) + : data(data_.begin()), size(data_.size()) { + assert(data); assert(!ASan::RegionIsPoisoned(data, size)); } + explicit Buffer(const uint8_t* data_, size_type size_) + : Buffer(Array1DRef(data_, implicit_cast<int>(size_))) {} + + [[nodiscard]] Array1DRef<const uint8_t> getAsArray1DRef() const { + return {data, implicit_cast<int>(size)}; + } + + explicit operator Array1DRef<const uint8_t>() const { + return getAsArray1DRef(); + } + [[nodiscard]] Buffer getSubView(size_type offset, size_type size_) const { - if (!isValid(0, offset)) + if (!isValid(offset, size_)) ThrowIOE("Buffer overflow: image file may be truncated"); - return Buffer(getData(offset, size_), size_); + return getAsArray1DRef().getCrop(offset, size_).getAsArray1DRef(); } [[nodiscard]] Buffer getSubView(size_type offset) const { if (!isValid(0, offset)) ThrowIOE("Buffer overflow: image file may be truncated"); - size_type newSize = size - offset; + size_type newSize = getSize() - offset; return getSubView(offset, newSize); } - // get pointer to memory at 'offset', make sure at least 'count' bytes are - // accessible - [[nodiscard]] const uint8_t* getData(size_type offset, - size_type count) const { - if (!isValid(offset, count)) - ThrowIOE("Buffer overflow: image file may be truncated"); - - invariant(data); - - return data + offset; - } - // convenience getter for single bytes - uint8_t operator[](size_type offset) const { return *getData(offset, 1); } + uint8_t operator[](size_type offset) const { + return getAsArray1DRef()(offset); + } // std begin/end iterators to allow for range loop [[nodiscard]] const uint8_t* begin() const { - invariant(data); - return data; - } - [[nodiscard]] const uint8_t* end() const { - invariant(data); - return data + size; + return getAsArray1DRef().begin(); } + [[nodiscard]] const uint8_t* end() const { return getAsArray1DRef().end(); } // get memory of type T from byte offset 'offset + sizeof(T)*index' and swap // byte order if required template <typename T> [[nodiscard]] inline T get(bool inNativeByteOrder, size_type offset, size_type index = 0) const { - return getByteSwapped<T>( - getData(offset + index * static_cast<size_type>(sizeof(T)), - static_cast<size_type>(sizeof(T))), - !inNativeByteOrder); + const Buffer buf = + getSubView(offset + index * static_cast<size_type>(sizeof(T)), + static_cast<size_type>(sizeof(T))); + return getByteSwapped<T>(buf.begin(), !inNativeByteOrder); } [[nodiscard]] inline size_type RAWSPEED_READONLY getSize() const { @@ -117,7 +118,8 @@ [[nodiscard]] inline bool isValid(size_type offset, size_type count = 1) const { - return static_cast<uint64_t>(offset) + count <= static_cast<uint64_t>(size); + return static_cast<uint64_t>(offset) + count <= + static_cast<uint64_t>(getSize()); } }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/ByteStream.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/ByteStream.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/ByteStream.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/ByteStream.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,15 +21,21 @@ #pragma once -#include "AddressSanitizer.h" // for ASan -#include "adt/Invariant.h" // for invariant -#include "common/Common.h" // for roundUp -#include "io/Buffer.h" // for Buffer::size_type, DataBuffer, Buffer -#include "io/IOException.h" // for ThrowException, ThrowIOE -#include <cassert> // for invariant -#include <cstdint> // for uint8_t, uint16_t, int32_t, uint32_t -#include <cstring> // for memchr, memcmp, memcpy -#include <limits> // for numeric_limits +#include "rawspeedconfig.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "io/Buffer.h" +#include "io/IOException.h" +#include <algorithm> +#include <cassert> +#include <cstdint> +#include <iterator> +#include <limits> +#include <string_view> + +#ifndef NDEBUG +#include "AddressSanitizer.h" +#endif namespace rawspeed { @@ -54,9 +60,11 @@ } [[nodiscard]] inline size_type check(size_type bytes) const { - if (static_cast<uint64_t>(pos) + bytes > getSize()) + if (!isValid(pos, bytes)) ThrowIOE("Out of bounds access in ByteStream"); - assert(!ASan::RegionIsPoisoned(data + pos, bytes)); + [[maybe_unused]] Buffer tmp = getSubView(pos, bytes); + assert(tmp.getSize() == bytes); + assert(!ASan::RegionIsPoisoned(tmp.begin(), tmp.getSize())); return bytes; } @@ -81,10 +89,10 @@ return getSize() - pos; } [[nodiscard]] inline const uint8_t* peekData(size_type count) const { - return Buffer::getData(pos, count); + return Buffer::getSubView(pos, count).begin(); } inline const uint8_t* getData(size_type count) { - const uint8_t* ret = Buffer::getData(pos, count); + const uint8_t* ret = peekData(count); pos += count; return ret; } @@ -96,6 +104,9 @@ pos += size_; return ret; } + [[nodiscard]] inline Buffer peekRemainingBuffer() const { + return getSubView(pos, getRemainSize()); + } [[nodiscard]] inline ByteStream peekStream(size_type size_) const { return getSubStream(pos, size_); } @@ -116,54 +127,52 @@ return getStream(nmemb * size_); } - [[nodiscard]] inline uint8_t peekByte(size_type i = 0) const { - invariant(data); - (void)check(i + 1); - return data[pos + i]; - } - inline void skipBytes(size_type nbytes) { pos += check(nbytes); } inline void skipBytes(size_type nmemb, size_type size_) { pos += check(nmemb, size_); } - inline bool hasPatternAt(const char* pattern, size_type size_, - size_type relPos) const { - invariant(data); - if (!isValid(pos + relPos, size_)) + [[nodiscard]] inline bool hasPatternAt(std::string_view pattern, + size_type relPos) const { + if (!isValid(pos + relPos, implicit_cast<size_type>(pattern.size()))) return false; - return memcmp(&data[pos + relPos], pattern, size_) == 0; + auto tmp = + getSubView(pos + relPos, implicit_cast<size_type>(pattern.size())); + assert(tmp.getSize() == pattern.size()); + return std::equal(tmp.begin(), tmp.end(), pattern.begin()); } - inline bool hasPrefix(const char* prefix, size_type size_) const { - return hasPatternAt(prefix, size_, 0); + [[nodiscard]] inline bool hasPrefix(std::string_view prefix) const { + return hasPatternAt(prefix, /*relPos=*/0); } - inline bool skipPrefix(const char* prefix, size_type size_) { - bool has_prefix = hasPrefix(prefix, size_); + inline bool skipPrefix(std::string_view prefix) { + bool has_prefix = hasPrefix(prefix); if (has_prefix) - pos += size_; + pos += prefix.size(); return has_prefix; } - inline uint8_t getByte() { - invariant(data); - (void)check(1); - return data[pos++]; - } - template <typename T> [[nodiscard]] inline T peek(size_type i = 0) const { return DataBuffer::get<T>(pos, i); } - - [[nodiscard]] inline uint16_t peekU16() const { return peek<uint16_t>(); } - template <typename T> inline T get() { auto ret = peek<T>(); pos += sizeof(T); return ret; } + [[nodiscard]] inline uint8_t peekByte(size_type i = 0) const { + return peek<uint8_t>(i); + } + inline uint8_t getByte() { return get<uint8_t>(); } + + [[nodiscard]] inline uint16_t peekU16() const { return peek<uint16_t>(); } + + [[nodiscard]] inline uint32_t peekU32(size_type i = 0) const { + return peek<uint32_t>(i); + } + inline uint16_t getU16() { return get<uint16_t>(); } inline int32_t getI32() { return get<int32_t>(); } inline uint32_t getU32() { return get<uint32_t>(); } @@ -182,7 +191,7 @@ // between (not a copy). If the first byte is zero, stream is incremented one. [[nodiscard]] std::string_view getString() { std::string_view str = peekString(); - skipBytes(1 + str.size()); + skipBytes(implicit_cast<Buffer::size_type>(1 + str.size())); return str; } }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -1,23 +1,27 @@ +rawspeed_add_library(rawspeed_io OBJECT) +set_target_properties(rawspeed_io PROPERTIES LINKER_LANGUAGE CXX) + FILE(GLOB SOURCES - "BitPumpJPEG.h" - "BitPumpLSB.h" - "BitPumpMSB.h" - "BitPumpMSB16.h" - "BitPumpMSB32.h" - "BitStream.cpp" - "BitStream.h" "Buffer.h" "ByteStream.h" "Endianness.h" "FileIO.h" + "FileIOException.cpp" "FileIOException.h" "FileReader.cpp" "FileReader.h" "FileWriter.cpp" "FileWriter.h" + "IOException.cpp" "IOException.h" ) -target_sources(rawspeed PRIVATE +target_sources(rawspeed_io PRIVATE ${SOURCES} ) + +target_include_directories(rawspeed_io PUBLIC "${RAWSPEED_BINARY_DIR}/src") +target_include_directories(rawspeed_io SYSTEM PUBLIC "${RAWSPEED_SOURCE_DIR}/src/external") +target_include_directories(rawspeed_io PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/..") + +target_link_libraries(rawspeed PRIVATE rawspeed_io) diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/Endianness.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/Endianness.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/Endianness.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/Endianness.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,10 +21,10 @@ #pragma once -#include "common/Common.h" // for bit_cast -#include <cassert> // for assert -#include <cstdint> // for uint32_t, uint16_t, uint64_t, int16_t -#include <cstring> // for memcpy +#include "adt/Bit.h" +#include <cassert> +#include <cstdint> +#include <cstring> namespace rawspeed { @@ -68,6 +68,8 @@ #define BSWAP64(A) __builtin_bswap64(A) #endif +inline int8_t getByteSwapped(int8_t v) { return v; } +inline uint8_t getByteSwapped(uint8_t v) { return v; } inline int16_t getByteSwapped(int16_t v) { return static_cast<int16_t>(BSWAP16(static_cast<uint16_t>(v))); } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/FileIO.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/FileIO.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/FileIO.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/FileIO.h 2024-02-14 22:08:05.000000000 +0000 @@ -23,12 +23,12 @@ #define NOMINMAX // do not want the min()/max() macros! #endif -#include "io/FileIOException.h" // for FileIOException (ptr only), ThrowFIE +#include "io/FileIOException.h" #include <Windows.h> -#include <functional> // for bind +#include <functional> #include <io.h> #include <tchar.h> -#include <vector> // for vector +#include <vector> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/FileIOException.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/FileIOException.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/FileIOException.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/FileIOException.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,30 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2023 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "io/FileIOException.h" + +namespace rawspeed { + +void FileIOException::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/FileIOException.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/FileIOException.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/FileIOException.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/FileIOException.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,16 +21,16 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_NOINLINE, RAWSPEE... - // IWYU pragma: begin_exports -#include "common/RawspeedException.h" // for ThrowExceptionHelper -#include "decoders/RawDecoderException.h" // for RawDecoderException +#include "common/RawspeedException.h" +#include "decoders/RawDecoderException.h" // IWYU pragma: end_exports namespace rawspeed { class FileIOException final : public RawDecoderException { + void anchor() const override; + public: using RawDecoderException::RawDecoderException; }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/FileReader.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/FileReader.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/FileReader.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/FileReader.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,24 +20,24 @@ */ #include "io/FileReader.h" -#include "adt/AlignedAllocator.h" // for AlignedAllocator -#include "adt/DefaultInitAllocatorAdaptor.h" // for DefaultInitAllocatorAda... -#include "io/Buffer.h" // for Buffer, Buffer::size_type -#include "io/FileIOException.h" // for ThrowException, ThrowFIE -#include <cstdint> // for uint8_t -#include <cstdio> // for fclose, fseek, feof -#include <fcntl.h> // for SEEK_END, SEEK_SET -#include <limits> // for numeric_limits -#include <memory> // for unique_ptr, make_unique -#include <type_traits> // for remove_reference<>::type -#include <utility> // for move, pair +#include "adt/AlignedAllocator.h" +#include "adt/Casts.h" +#include "adt/DefaultInitAllocatorAdaptor.h" +#include "io/Buffer.h" +#include "io/FileIOException.h" +#include <cstdint> +#include <cstdio> +#include <limits> +#include <memory> +#include <utility> +#include <vector> #if !(defined(__unix__) || defined(__APPLE__)) #ifndef NOMINMAX #define NOMINMAX // do not want the min()/max() macros! #endif -#include "io/FileIO.h" // for widenFileName +#include "io/FileIO.h" #include <Windows.h> #include <io.h> #include <tchar.h> @@ -49,12 +49,13 @@ uint8_t, DefaultInitAllocatorAdaptor< uint8_t, AlignedAllocator<uint8_t, 16>>>>, Buffer> -FileReader::readFile() { +FileReader::readFile() const { size_t fileSize = 0; #if defined(__unix__) || defined(__APPLE__) - using file_ptr = std::unique_ptr<FILE, decltype(&fclose)>; - file_ptr file(fopen(fileName, "rb"), &fclose); + auto fclose = [](std::FILE* fp) { std::fclose(fp); }; + using file_ptr = std::unique_ptr<FILE, decltype(fclose)>; + file_ptr file(fopen(fileName, "rb"), fclose); if (file == nullptr) ThrowFIE("Could not open file \"%s\".", fileName); @@ -65,11 +66,12 @@ if (size <= 0) ThrowFIE("File is 0 bytes."); - fileSize = size; - - if (fileSize > std::numeric_limits<Buffer::size_type>::max()) + if (static_cast<int64_t>(size) > + std::numeric_limits<Buffer::size_type>::max()) ThrowFIE("File is too big (%zu bytes).", fileSize); + fileSize = size; + fseek(file.get(), 0, SEEK_SET); auto dest = std::make_unique<std::vector< @@ -128,7 +130,8 @@ #endif // __unix__ - return {std::move(dest), Buffer(dest->data(), fileSize)}; + return {std::move(dest), + Buffer(dest->data(), implicit_cast<Buffer::size_type>(fileSize))}; } } // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/FileReader.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/FileReader.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/FileReader.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/FileReader.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,29 +21,30 @@ #pragma once #include "adt/AlignedAllocator.h" -#include "adt/DefaultInitAllocatorAdaptor.h" // for DefaultInitAllocatorAda... -#include "io/Buffer.h" // for Buffer -#include <cstdint> // for uint8_t -#include <memory> // for unique_ptr -#include <utility> // for pair -#include <vector> // for vector +#include "adt/DefaultInitAllocatorAdaptor.h" +#include "io/Buffer.h" +#include <cstdint> +#include <memory> +#include <utility> +#include <vector> namespace rawspeed { class Buffer; template <class T, int alignment> class AlignedAllocator; -class FileReader { +class FileReader final { const char* fileName; public: explicit FileReader(const char* fileName_) : fileName(fileName_) {} - std::pair<std::unique_ptr<std::vector< - uint8_t, DefaultInitAllocatorAdaptor< - uint8_t, AlignedAllocator<uint8_t, 16>>>>, - Buffer> - readFile(); + [[nodiscard]] std::pair< + std::unique_ptr<std::vector< + uint8_t, + DefaultInitAllocatorAdaptor<uint8_t, AlignedAllocator<uint8_t, 16>>>>, + Buffer> + readFile() const; }; } // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/FileWriter.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/FileWriter.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/FileWriter.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/FileWriter.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,16 +19,17 @@ */ #include "io/FileWriter.h" -#include "io/Buffer.h" // for Buffer -#include "io/FileIOException.h" // for ThrowException, ThrowFIE -#include <cstdio> // for fclose, fopen, fwrite, FILE, size_t +#include "io/Buffer.h" +#include "io/FileIOException.h" +#include <cstdint> +#include <cstdio> #if !defined(__unix__) && !defined(__APPLE__) #ifndef NOMINMAX #define NOMINMAX // do not want the min()/max() macros! #endif -#include "io/FileIO.h" // for widenFileName +#include "io/FileIO.h" #include <Windows.h> #include <io.h> #include <tchar.h> @@ -49,8 +50,8 @@ if (file == nullptr) ThrowFIE("Could not open file."); - const auto* const src = filemap.getData(0, filemap.getSize()); - bytes_written = fwrite(src, 1, size != 0 ? size : filemap.getSize(), file); + bytes_written = + fwrite(filemap.begin(), 1, size != 0 ? size : filemap.getSize(), file); fclose(file); if (size != bytes_written) { ThrowFIE("Could not write file."); @@ -67,8 +68,8 @@ } DWORD bytes_written; - if (!WriteFile(file_h, filemap.getData(0, filemap.getSize()), - size ? size : filemap.getSize(), &bytes_written, nullptr)) { + if (!WriteFile(file_h, filemap.begin(), size ? size : filemap.getSize(), + &bytes_written, nullptr)) { CloseHandle(file_h); ThrowFIE("Could not read file."); } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/FileWriter.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/FileWriter.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/FileWriter.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/FileWriter.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,13 +20,13 @@ #pragma once -#include <cstdint> // for uint32_t +#include <cstdint> namespace rawspeed { class Buffer; -class FileWriter { +class FileWriter final { public: explicit FileWriter(const char* filename); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/IOException.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/IOException.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/IOException.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/IOException.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,30 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2023 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "io/IOException.h" + +namespace rawspeed { + +void IOException::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/IOException.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/IOException.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/io/IOException.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/io/IOException.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,15 +21,15 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_NOINLINE, RAWSPEED_UN... - // IWYU pragma: begin_exports -#include "common/RawspeedException.h" // for ThrowExceptionHelper, Rawspeed... +#include "common/RawspeedException.h" // IWYU pragma: end_exports namespace rawspeed { class IOException final : public RawspeedException { + void anchor() const override; + public: using RawspeedException::RawspeedException; }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/BlackArea.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/BlackArea.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/BlackArea.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/BlackArea.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,7 +20,7 @@ #pragma once -#include <cstdint> // for uint32_t +#include <cstdint> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -1,9 +1,13 @@ +rawspeed_add_library(rawspeed_metadata OBJECT) +set_target_properties(rawspeed_metadata PROPERTIES LINKER_LANGUAGE CXX) + FILE(GLOB SOURCES "BlackArea.h" "Camera.cpp" "Camera.h" "CameraMetaData.cpp" "CameraMetaData.h" + "CameraMetadataException.cpp" "CameraMetadataException.h" "CameraSensorInfo.cpp" "CameraSensorInfo.h" @@ -11,6 +15,15 @@ "ColorFilterArray.h" ) -target_sources(rawspeed PRIVATE +target_sources(rawspeed_metadata PRIVATE ${SOURCES} ) + +target_include_directories(rawspeed_metadata PUBLIC "${RAWSPEED_BINARY_DIR}/src") +target_include_directories(rawspeed_metadata PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/..") + +if(WITH_PUGIXML AND TARGET Pugixml::Pugixml) + target_link_libraries(rawspeed_metadata PUBLIC Pugixml::Pugixml) +endif() + +target_link_libraries(rawspeed PRIVATE rawspeed_metadata) diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/Camera.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/Camera.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/Camera.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/Camera.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,20 +20,25 @@ */ #include "metadata/Camera.h" -#include "adt/Point.h" // for iPoint2D -#include "common/Common.h" // for splitString -#include "metadata/CameraMetadataException.h" // for ThrowException, ThrowCME -#include <algorithm> // for max, fill, transform -#include <cctype> // for tolower -#include <cstdio> // for size_t -#include <map> // for map -#include <optional> // for optional, nullopt -#include <string> // for string, allocator, ope... -#include <string_view> // for operator==, basic_stri... -#include <vector> // for vector +#include "adt/Point.h" +#include "metadata/CameraMetadataException.h" +#include "metadata/CameraSensorInfo.h" +#include "metadata/ColorFilterArray.h" +#include <cassert> +#include <cstdint> +#include <map> +#include <string> +#include <vector> #ifdef HAVE_PUGIXML -#include <pugixml.hpp> // for xml_node, xml_attribute +#include "adt/NotARational.h" +#include "adt/Optional.h" +#include "common/Common.h" +#include <algorithm> +#include <cctype> +#include <cstdio> +#include <pugixml.hpp> +#include <string_view> using pugi::xml_node; #endif @@ -45,7 +50,7 @@ namespace rawspeed { #ifdef HAVE_PUGIXML -Camera::Camera(const pugi::xml_node& camera) : cfa(iPoint2D(0, 0)) { +Camera::Camera(const pugi::xml_node& camera) { make = canonical_make = camera.attribute("make").as_string(); if (make.empty()) ThrowCME(R"("make" attribute not found.)"); @@ -60,12 +65,17 @@ supportStatus = [&camera]() { const std::string_view v = camera.attribute("supported").as_string("yes"); + using enum Camera::SupportStatus; if (v == "yes") - return Camera::SupportStatus::Supported; + return Supported; if (v == "no") - return Camera::SupportStatus::Unsupported; + return Unsupported; if (v == "no-samples") - return Camera::SupportStatus::NoSamples; + return SupportedNoSamples; + if (v == "unknown") + return Unknown; + if (v == "unknown-no-samples") + return UnknownNoSamples; ThrowCME("Attribute 'supported' has unknown value."); }(); mode = camera.attribute("mode").as_string(""); @@ -77,7 +87,7 @@ } #endif -Camera::Camera(const Camera* camera, uint32_t alias_num) : cfa(iPoint2D(0, 0)) { +Camera::Camera(const Camera* camera, uint32_t alias_num) { if (alias_num >= camera->aliases.size()) ThrowCME("Internal error, alias number out of range specified."); @@ -90,47 +100,106 @@ #ifdef HAVE_PUGIXML -static std::string name(const xml_node& a) { return a.name(); } +namespace { -static std::optional<CFAColor> getAsCFAColor(char c) { +std::string name(const xml_node& a) { return a.name(); } + +Optional<CFAColor> getAsCFAColor(char c) { switch (c) { + using enum CFAColor; case 'g': - return CFAColor::GREEN; + return GREEN; case 'r': - return CFAColor::RED; + return RED; case 'b': - return CFAColor::BLUE; + return BLUE; case 'f': - return CFAColor::FUJI_GREEN; + return FUJI_GREEN; case 'c': - return CFAColor::CYAN; + return CYAN; case 'm': - return CFAColor::MAGENTA; + return MAGENTA; case 'y': - return CFAColor::YELLOW; + return YELLOW; default: return std::nullopt; } } -static std::optional<CFAColor> getAsCFAColor(std::string_view c) { +Optional<CFAColor> getAsCFAColor(std::string_view c) { + using enum CFAColor; if (c == "GREEN") - return CFAColor::GREEN; + return GREEN; if (c == "RED") - return CFAColor::RED; + return RED; if (c == "BLUE") - return CFAColor::BLUE; + return BLUE; if (c == "FUJI_GREEN") - return CFAColor::FUJI_GREEN; + return FUJI_GREEN; if (c == "CYAN") - return CFAColor::CYAN; + return CYAN; if (c == "MAGENTA") - return CFAColor::MAGENTA; + return MAGENTA; if (c == "YELLOW") - return CFAColor::YELLOW; + return YELLOW; return std::nullopt; } +} // namespace + +void Camera::parseColorRow(const xml_node& c) { + if (name(c) != "ColorRow") + ThrowCME("Not an ColorRow node!"); + + int y = c.attribute("y").as_int(-1); + if (y < 0 || y >= cfa.getSize().y) { + ThrowCME("Invalid y coordinate in CFA array of camera %s %s", make.c_str(), + model.c_str()); + } + std::string key = c.child_value(); + if (static_cast<int>(key.size()) != cfa.getSize().x) { + ThrowCME("Invalid number of colors in definition for row %d in " + "camera %s %s. Expected %d, found %zu.", + y, make.c_str(), model.c_str(), cfa.getSize().x, key.size()); + } + for (size_t x = 0; x < key.size(); ++x) { + auto c1 = key[x]; + + auto c2 = getAsCFAColor(static_cast<char>(tolower(c1))); + if (!c2) + ThrowCME("Invalid color in CFA array of camera %s %s: %c", make.c_str(), + model.c_str(), c1); + + cfa.setColorAt(iPoint2D(static_cast<int>(x), y), *c2); + } +} + +void Camera::parseColor(const xml_node& c) { + if (name(c) != "Color") + ThrowCME("Not an Color node!"); + + int x = c.attribute("x").as_int(-1); + if (x < 0 || x >= cfa.getSize().x) { + ThrowCME("Invalid x coordinate in CFA array of camera %s %s", make.c_str(), + model.c_str()); + } + + int y = c.attribute("y").as_int(-1); + if (y < 0 || y >= cfa.getSize().y) { + ThrowCME("Invalid y coordinate in CFA array of camera %s %s", make.c_str(), + model.c_str()); + } + + const auto* c1 = c.child_value(); + + auto c2 = getAsCFAColor(c1); + if (!c2) + ThrowCME("Invalid color in CFA array of camera %s %s: %s", make.c_str(), + model.c_str(), c1); + + cfa.setColorAt(iPoint2D(x, y), *c2); +} + void Camera::parseCFA(const xml_node& cur) { if (name(cur) != "CFA" && name(cur) != "CFA2") ThrowCME("Not an CFA/CFA2 node!"); @@ -139,48 +208,9 @@ cur.attribute("height").as_int(0))); for (xml_node c : cur.children()) { if (name(c) == "ColorRow") { - int y = c.attribute("y").as_int(-1); - if (y < 0 || y >= cfa.getSize().y) { - ThrowCME("Invalid y coordinate in CFA array of camera %s %s", - make.c_str(), model.c_str()); - } - std::string key = c.child_value(); - if (static_cast<int>(key.size()) != cfa.getSize().x) { - ThrowCME("Invalid number of colors in definition for row %d in " - "camera %s %s. Expected %d, found %zu.", - y, make.c_str(), model.c_str(), cfa.getSize().x, key.size()); - } - for (size_t x = 0; x < key.size(); ++x) { - auto c1 = key[x]; - - auto c2 = getAsCFAColor(static_cast<char>(tolower(c1))); - if (!c2) - ThrowCME("Invalid color in CFA array of camera %s %s: %c", - make.c_str(), model.c_str(), c1); - - cfa.setColorAt(iPoint2D(static_cast<int>(x), y), *c2); - } + parseColorRow(c); } else if (name(c) == "Color") { - int x = c.attribute("x").as_int(-1); - if (x < 0 || x >= cfa.getSize().x) { - ThrowCME("Invalid x coordinate in CFA array of camera %s %s", - make.c_str(), model.c_str()); - } - - int y = c.attribute("y").as_int(-1); - if (y < 0 || y >= cfa.getSize().y) { - ThrowCME("Invalid y coordinate in CFA array of camera %s %s", - make.c_str(), model.c_str()); - } - - const auto* c1 = c.child_value(); - - auto c2 = getAsCFAColor(c1); - if (!c2) - ThrowCME("Invalid color in CFA array of camera %s %s: %s", make.c_str(), - model.c_str(), c1); - - cfa.setColorAt(iPoint2D(x, y), *c2); + parseColor(c); } } } @@ -189,10 +219,18 @@ if (name(cur) != "Crop") ThrowCME("Not an Crop node!"); - cropSize.x = cur.attribute("width").as_int(0); - cropSize.y = cur.attribute("height").as_int(0); - cropPos.x = cur.attribute("x").as_int(0); - cropPos.y = cur.attribute("y").as_int(0); + const auto widthAttr = cur.attribute("width"); + const auto heightAttr = cur.attribute("height"); + const auto xAttr = cur.attribute("x"); + const auto yAttr = cur.attribute("y"); + + cropSize.x = widthAttr.as_int(0); + cropSize.y = heightAttr.as_int(0); + cropPos.x = xAttr.as_int(0); + cropPos.y = yAttr.as_int(0); + + cropAvailable = !(widthAttr.empty() && heightAttr.empty() && xAttr.empty() && + yAttr.empty()); if (cropPos.x < 0) ThrowCME("Negative X axis crop specified in camera %s %s", make.c_str(), @@ -378,10 +416,8 @@ #endif const CameraSensorInfo* Camera::getSensorInfo(int iso) const { - if (sensorInfo.empty()) { - ThrowCME("Camera '%s' '%s', mode '%s' has no <Sensor> entries.", - make.c_str(), model.c_str(), mode.c_str()); - } + if (sensorInfo.empty()) + return nullptr; // If only one, just return that if (sensorInfo.size() == 1) @@ -392,6 +428,7 @@ if (i.isIsoWithin(iso)) candidates.push_back(&i); } + assert(!candidates.empty()); if (candidates.size() == 1) return candidates.front(); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/Camera.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/Camera.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/Camera.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/Camera.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,20 +20,19 @@ #pragma once -#include "rawspeedconfig.h" // for HAVE_PUGIXML -#include "adt/NotARational.h" // for NotARational -#include "adt/Point.h" // for iPoint2D -#include "metadata/BlackArea.h" // for BlackArea -#include "metadata/CameraSensorInfo.h" // for CameraSensorInfo -#include "metadata/ColorFilterArray.h" // for CFAColor, ColorFilterArray -#include <algorithm> // for copy -#include <cstdint> // for uint32_t -#include <functional> // for less -#include <map> // for map, operator!=, _Rb_tree_con... -#include <sstream> // for basic_istream::operator>> -#include <string> // for string, basic_string, operator< -#include <utility> // for pair -#include <vector> // for vector +#include "rawspeedconfig.h" +#include "adt/NotARational.h" +#include "adt/Point.h" +#include "metadata/BlackArea.h" +#include "metadata/CameraSensorInfo.h" +#include "metadata/ColorFilterArray.h" +#include <cstdint> +#include <functional> +#include <map> +#include <sstream> +#include <string> +#include <utility> +#include <vector> #ifdef HAVE_PUGIXML @@ -45,7 +44,7 @@ namespace rawspeed { -class Hints { +class Hints final { std::map<std::string, std::string, std::less<>> data; public: @@ -53,8 +52,8 @@ data.try_emplace(key, value); } - [[nodiscard]] bool has(const std::string& key) const { - return data.find(key) != data.end(); + [[nodiscard]] bool contains(const std::string& key) const { + return data.contains(key); } template <typename T> @@ -75,12 +74,15 @@ } }; -class Camera { +class Camera final { public: enum class SupportStatus { - Unsupported, - Supported, - NoSamples, + SupportedNoSamples, // Tentatively supported, no RPU samples. + Supported, // Claimed as supported (explicitly). + Unknown, // Placeholder camera, support is unknown. + UnknownCamera, // Not found in database. + UnknownNoSamples, // Placeholder camera, no RPU samples, support is unknown. + Unsupported, // Claimed as unsupported (explicitly). }; #ifdef HAVE_PUGIXML @@ -107,9 +109,16 @@ int decoderVersion; Hints hints; std::vector<NotARational<int>> color_matrix; + /* + Signals if there's a proper crop info available in the database entry. + This flag can be used to decide whether to figure out the crop based on + the camera vendor specs. + */ + bool cropAvailable = false; -protected: #ifdef HAVE_PUGIXML + void parseColorRow(const pugi::xml_node& node); + void parseColor(const pugi::xml_node& node); void parseCFA(const pugi::xml_node& node); void parseCrop(const pugi::xml_node& node); void parseBlackAreas(const pugi::xml_node& node); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/CameraMetaData.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/CameraMetaData.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/CameraMetaData.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/CameraMetaData.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,18 +18,23 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "rawspeedconfig.h" #include "metadata/CameraMetaData.h" -#include "common/Common.h" // for trimSpaces, writeLog -#include "metadata/Camera.h" // for Camera, Camera::Suppor... -#include "metadata/CameraMetadataException.h" // for ThrowException, ThrowCME -#include <algorithm> // for find_if -#include <map> // for map, map<>::const_iter... -#include <string> // for string, operator== -#include <utility> // for pair, move -#include <vector> // for vector +#include "common/Common.h" +#include "metadata/Camera.h" +#include <algorithm> +#include <cstdint> +#include <map> +#include <memory> +#include <string> +#include <string_view> +#include <tuple> +#include <utility> #ifdef HAVE_PUGIXML -#include <pugixml.hpp> // for xml_document, xml_pars... +#include "metadata/CameraMetadataException.h" +#include <pugixml.hpp> +#include <vector> using pugi::xml_document; using pugi::xml_node; @@ -70,8 +75,10 @@ } #endif -static inline CameraId getId(const std::string& make, const std::string& model, - const std::string& mode) { +namespace { + +inline CameraId getId(const std::string& make, const std::string& model, + const std::string& mode) { CameraId id; id.make = trimSpaces(make); id.model = trimSpaces(model); @@ -80,6 +87,8 @@ return id; } +} // namespace + const Camera* CameraMetaData::getCamera(const std::string& make, const std::string& model, const std::string& mode) const { @@ -116,12 +125,12 @@ } bool RAWSPEED_READONLY CameraMetaData::hasChdkCamera(uint32_t filesize) const { - return chdkCameras.end() != chdkCameras.find(filesize); + return chdkCameras.contains(filesize); } const Camera* CameraMetaData::addCamera(std::unique_ptr<Camera> cam) { auto id = getId(cam->make, cam->model, cam->mode); - if (cameras.end() != cameras.find(id)) { + if (cameras.contains(id)) { writeLog( DEBUG_PRIO::WARNING, "CameraMetaData: Duplicate entry found for camera: %s %s, Skipping!", diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/CameraMetaData.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/CameraMetaData.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/CameraMetaData.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/CameraMetaData.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,19 +20,19 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_READONLY, HAVE_PUGIXML -#include "metadata/Camera.h" // for Camera (ptr only) -#include <cstdint> // for uint32_t -#include <map> // for map -#include <memory> // for unique_ptr -#include <string> // for operator<, string -#include <string_view> // for string_view -#include <tuple> // for tie, operator<, tuple +#include "rawspeedconfig.h" +#include "metadata/Camera.h" +#include <cstdint> +#include <map> +#include <memory> +#include <string> +#include <string_view> +#include <tuple> namespace rawspeed { class Camera; -struct CameraId { +struct CameraId final { std::string make; std::string model; std::string mode; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/CameraMetadataException.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/CameraMetadataException.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/CameraMetadataException.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/CameraMetadataException.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,30 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2023 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "metadata/CameraMetadataException.h" + +namespace rawspeed { + +void CameraMetadataException::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/CameraMetadataException.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/CameraMetadataException.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/CameraMetadataException.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/CameraMetadataException.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,15 +21,15 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_NOINLINE, RAWSPEED_UN... - // IWYU pragma: begin_exports -#include "common/RawspeedException.h" // for RawspeedException, ThrowExcept... +#include "common/RawspeedException.h" // IWYU pragma: end_exports namespace rawspeed { class CameraMetadataException final : public RawspeedException { + void anchor() const override; + public: using RawspeedException::RawspeedException; }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/CameraSensorInfo.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/CameraSensorInfo.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/CameraSensorInfo.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/CameraSensorInfo.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,9 +18,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "rawspeedconfig.h" #include "metadata/CameraSensorInfo.h" -#include <utility> // for move -#include <vector> // for vector +#include <utility> +#include <vector> using std::vector; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/CameraSensorInfo.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/CameraSensorInfo.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/CameraSensorInfo.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/CameraSensorInfo.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,9 +20,8 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_READONLY -#include <algorithm> // for copy -#include <vector> // for vector +#include "rawspeedconfig.h" +#include <vector> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/ColorFilterArray.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/ColorFilterArray.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/ColorFilterArray.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/ColorFilterArray.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,19 +19,23 @@ */ #include "metadata/ColorFilterArray.h" -#include "adt/Point.h" // for iPoint2D, iPoint2D::value_... -#include "common/Common.h" // for writeLog, DEBUG_PRIO, DEBU... -#include "decoders/RawDecoderException.h" // for ThrowException, ThrowRDE -#include <algorithm> // for copy, fill_n, fill, max -#include <cassert> // for assert -#include <cinttypes> // for PRId64 -#include <cstdarg> // for va_arg, va_end, va_list -#include <cstdlib> // for size_t, abs -#include <map> // for map -#include <optional> // for optional, nullopt -#include <stdexcept> // for out_of_range -#include <string> // for string -#include <string_view> // for string_view, basic_string_... +#include "adt/Bit.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include "adt/Optional.h" +#include "adt/Point.h" +#include "common/Common.h" +#include "decoders/RawDecoderException.h" +#include <algorithm> +#include <cassert> +#include <cinttypes> +#include <cstdarg> +#include <cstdint> +#include <cstdlib> +#include <map> +#include <stdexcept> +#include <string> +#include <string_view> using std::vector; @@ -60,7 +64,7 @@ } if (size.area() <= 0) return; - cfa.resize(size.area()); + cfa.resize(implicit_cast<size_t>(size.area())); fill(cfa.begin(), cfa.end(), CFAColor::UNKNOWN); } @@ -69,6 +73,7 @@ ThrowRDE("No CFA size set"); // calculate the positive modulo [0 .. size-1] + invariant(size.hasPositiveArea()); x = (x % size.x + size.x) % size.x; y = (y % size.y + size.y) % size.y; @@ -96,7 +101,7 @@ if (n == 0) return; - vector<CFAColor> tmp(size.area()); + vector<CFAColor> tmp(implicit_cast<size_t>(size.area())); for (int y = 0; y < size.y; ++y) { for (int x = 0; x < size.x; ++x) { tmp[x + static_cast<size_t>(y) * size.x] = getColorAt(x + n, y); @@ -114,7 +119,7 @@ if (n == 0) return; - vector<CFAColor> tmp(size.area()); + vector<CFAColor> tmp(implicit_cast<size_t>(size.area())); for (int y = 0; y < size.y; ++y) { for (int x = 0; x < size.x; ++x) { tmp[x + static_cast<size_t>(y) * size.x] = getColorAt(x, y + n); @@ -163,31 +168,36 @@ return filter; } -static std::optional<std::string_view> getColorAsString(CFAColor c) { +namespace { + +Optional<std::string_view> getColorAsString(CFAColor c) { switch (c) { - case CFAColor::RED: + using enum CFAColor; + case RED: return "RED"; - case CFAColor::GREEN: + case GREEN: return "GREEN"; - case CFAColor::BLUE: + case BLUE: return "BLUE"; - case CFAColor::CYAN: + case CYAN: return "CYAN"; - case CFAColor::MAGENTA: + case MAGENTA: return "MAGENTA"; - case CFAColor::YELLOW: + case YELLOW: return "YELLOW"; - case CFAColor::WHITE: + case WHITE: return "WHITE"; - case CFAColor::FUJI_GREEN: + case FUJI_GREEN: return "FUJIGREEN"; - case CFAColor::UNKNOWN: + case UNKNOWN: return "UNKNOWN"; default: return std::nullopt; } } +} // namespace + std::string ColorFilterArray::colorToString(CFAColor c) { auto s = getColorAsString(c); if (!s) @@ -203,27 +213,31 @@ cfa[pos.x + static_cast<size_t>(pos.y) * size.x] = c; } -static uint32_t toDcrawColor(CFAColor c) { +namespace { +uint32_t toDcrawColor(CFAColor c) { switch (c) { - case CFAColor::FUJI_GREEN: - case CFAColor::RED: + using enum CFAColor; + case FUJI_GREEN: + case RED: return 0; - case CFAColor::MAGENTA: - case CFAColor::GREEN: + case MAGENTA: + case GREEN: return 1; - case CFAColor::CYAN: - case CFAColor::BLUE: + case CYAN: + case BLUE: return 2; - case CFAColor::YELLOW: - case CFAColor::WHITE: + case YELLOW: + case WHITE: return 3; - case CFAColor::UNKNOWN: - case CFAColor::END: + case UNKNOWN: + case END: throw out_of_range(ColorFilterArray::colorToString(c)); } __builtin_unreachable(); } +} // namespace + uint32_t ColorFilterArray::getDcrawFilter() const { // dcraw magic if (size.x == 6 && size.y == 6) diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/ColorFilterArray.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/ColorFilterArray.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/metadata/ColorFilterArray.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/metadata/ColorFilterArray.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,13 +20,11 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_READNONE -#include "adt/Point.h" // for iPoint2D -#include <algorithm> // for copy -#include <cstdint> // for uint32_t, uint8_t -#include <map> // for map -#include <string> // for string -#include <vector> // for vector +#include "rawspeedconfig.h" +#include "adt/Point.h" +#include <cstdint> +#include <string> +#include <vector> namespace rawspeed { @@ -45,7 +43,7 @@ }; -class ColorFilterArray { +class ColorFilterArray final { std::vector<CFAColor> cfa; iPoint2D size; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -1,18 +1,35 @@ +rawspeed_add_library(rawspeed_parsers OBJECT) +set_target_properties(rawspeed_parsers PROPERTIES LINKER_LANGUAGE CXX) + FILE(GLOB SOURCES "CiffParser.cpp" "CiffParser.h" + "CiffParserException.cpp" "CiffParserException.h" "FiffParser.cpp" "FiffParser.h" + "FiffParserException.cpp" "FiffParserException.h" "RawParser.cpp" "RawParser.h" + "RawParserException.cpp" "RawParserException.h" "TiffParser.cpp" "TiffParser.h" + "TiffParserException.cpp" "TiffParserException.h" ) -target_sources(rawspeed PRIVATE +target_sources(rawspeed_parsers PRIVATE ${SOURCES} ) + +target_include_directories(rawspeed_parsers PUBLIC "${RAWSPEED_BINARY_DIR}/src") +target_include_directories(rawspeed_parsers SYSTEM PUBLIC "${RAWSPEED_SOURCE_DIR}/src/external") +target_include_directories(rawspeed_parsers PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/..") + +if(TARGET RawSpeed::OpenMP_CXX) + target_link_libraries(rawspeed_parsers PUBLIC RawSpeed::OpenMP_CXX) +endif() + +target_link_libraries(rawspeed PRIVATE rawspeed_parsers) diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/CiffParser.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/CiffParser.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/CiffParser.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/CiffParser.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -21,19 +21,20 @@ */ #include "parsers/CiffParser.h" -#include "common/Common.h" // for trimSpaces -#include "decoders/CrwDecoder.h" // for CrwDecoder -#include "io/Buffer.h" // for Buffer (ptr only), DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include "parsers/CiffParserException.h" // for ThrowException, ThrowCPE -#include "tiff/CiffEntry.h" // for CiffEntry -#include "tiff/CiffIFD.h" // for CiffIFD -#include "tiff/CiffTag.h" // for CiffTag, CiffTag::MAKEMODEL -#include <cstdint> // for uint16_t, uint32_t -#include <string> // for operator==, string -#include <utility> // for move -#include <vector> // for vector +#include "common/Common.h" +#include "decoders/CrwDecoder.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "parsers/CiffParserException.h" +#include "parsers/RawParser.h" +#include "tiff/CiffEntry.h" +#include "tiff/CiffIFD.h" +#include "tiff/CiffTag.h" +#include <cstdint> +#include <memory> +#include <string> +#include <utility> namespace rawspeed { @@ -62,9 +63,8 @@ if (!mRootIFD) parseData(); - const auto potentials(mRootIFD->getIFDsWithTag(CiffTag::MAKEMODEL)); - - for (const auto& potential : potentials) { + for (const auto potentials(mRootIFD->getIFDsWithTag(CiffTag::MAKEMODEL)); + const auto& potential : potentials) { const auto* const mm = potential->getEntry(CiffTag::MAKEMODEL); const std::string make = trimSpaces(mm->getString()); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/CiffParser.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/CiffParser.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/CiffParser.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/CiffParser.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,9 +21,9 @@ #pragma once -#include "parsers/RawParser.h" // for RawParser -#include "tiff/CiffIFD.h" // for CiffIFD -#include <memory> // for unique_ptr +#include "parsers/RawParser.h" +#include "tiff/CiffIFD.h" +#include <memory> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/CiffParserException.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/CiffParserException.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/CiffParserException.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/CiffParserException.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,30 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2023 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "parsers/CiffParserException.h" + +namespace rawspeed { + +void CiffParserException::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/CiffParserException.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/CiffParserException.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/CiffParserException.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/CiffParserException.h 2024-02-14 22:08:05.000000000 +0000 @@ -22,16 +22,16 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_NOINLINE, RAWSPEED_... - // IWYU pragma: begin_exports -#include "common/RawspeedException.h" // for ThrowExceptionHelper -#include "parsers/RawParserException.h" // for RawParserException +#include "common/RawspeedException.h" +#include "parsers/RawParserException.h" // IWYU pragma: end_exports namespace rawspeed { class CiffParserException final : public RawParserException { + void anchor() const override; + public: using RawParserException::RawParserException; }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/FiffParser.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/FiffParser.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/FiffParser.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/FiffParser.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -21,21 +21,21 @@ */ #include "parsers/FiffParser.h" -#include "decoders/RafDecoder.h" // for RafDecoder -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::big -#include "parsers/FiffParserException.h" // for ThrowFPE -#include "parsers/RawParser.h" // for RawParser -#include "parsers/TiffParser.h" // for TiffParser -#include "parsers/TiffParserException.h" // for ThrowException, TiffParserE... -#include "tiff/TiffEntry.h" // for TiffEntry, TiffDataType -#include "tiff/TiffIFD.h" // for TiffIFD, TiffRootIFDOwner -#include "tiff/TiffTag.h" // for TiffTag, TiffTag::FUJIOLDWB -#include <cstdint> // for uint32_t, uint16_t -#include <limits> // for numeric_limits -#include <memory> // for make_unique, unique_ptr -#include <utility> // for move +#include "decoders/RafDecoder.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "parsers/FiffParserException.h" +#include "parsers/RawParser.h" +#include "parsers/TiffParser.h" +#include "parsers/TiffParserException.h" +#include "tiff/TiffEntry.h" +#include "tiff/TiffIFD.h" +#include "tiff/TiffTag.h" +#include <cstdint> +#include <limits> +#include <memory> +#include <utility> using std::numeric_limits; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/FiffParser.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/FiffParser.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/FiffParser.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/FiffParser.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,9 +20,9 @@ #pragma once -#include "parsers/RawParser.h" // for RawParser -#include "tiff/TiffIFD.h" // for TiffRootIFDOwner -#include <memory> // for unique_ptr +#include "parsers/RawParser.h" +#include "tiff/TiffIFD.h" +#include <memory> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/FiffParserException.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/FiffParserException.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/FiffParserException.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/FiffParserException.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,30 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2023 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "parsers/FiffParserException.h" + +namespace rawspeed { + +void FiffParserException::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/FiffParserException.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/FiffParserException.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/FiffParserException.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/FiffParserException.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,16 +20,16 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_NOINLINE, RAWSPEED_... - // IWYU pragma: begin_exports -#include "common/RawspeedException.h" // for ThrowExceptionHelper -#include "parsers/RawParserException.h" // for RawParserException +#include "common/RawspeedException.h" +#include "parsers/RawParserException.h" // IWYU pragma: end_exports namespace rawspeed { class FiffParserException final : public RawParserException { + void anchor() const override; + public: using RawParserException::RawParserException; }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/RawParser.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/RawParser.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/RawParser.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/RawParser.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,19 +20,20 @@ */ #include "parsers/RawParser.h" -#include "decoders/MrwDecoder.h" // for MrwDecoder -#include "decoders/NakedDecoder.h" // for NakedDecoder -#include "decoders/RafDecoder.h" // for RafDecoder -#include "decoders/RawDecoder.h" // for RawDecoder -#include "decoders/RawDecoderException.h" // for RawDecoderException, ThrowRDE -#include "io/Buffer.h" // for Buffer -#include "metadata/CameraMetaData.h" // for CameraMetaData -#include "parsers/CiffParser.h" // for CiffParser -#include "parsers/CiffParserException.h" // for CiffParserException -#include "parsers/FiffParser.h" // for FiffParser -#include "parsers/FiffParserException.h" // for FiffParserException -#include "parsers/TiffParser.h" // for TiffParser -#include "parsers/TiffParserException.h" // for ThrowException, TiffParser... +#include "decoders/MrwDecoder.h" +#include "decoders/NakedDecoder.h" +#include "decoders/RafDecoder.h" +#include "decoders/RawDecoder.h" +#include "decoders/RawDecoderException.h" +#include "io/Buffer.h" +#include "metadata/CameraMetaData.h" +#include "parsers/CiffParser.h" +#include "parsers/CiffParserException.h" +#include "parsers/FiffParser.h" +#include "parsers/FiffParserException.h" +#include "parsers/TiffParser.h" +#include "parsers/TiffParserException.h" +#include <memory> namespace rawspeed { @@ -49,7 +50,8 @@ if (MrwDecoder::isMRW(mInput)) { try { return std::make_unique<MrwDecoder>(mInput); - } catch (const RawDecoderException&) { + } catch (const RawDecoderException&) { // NOLINT(bugprone-empty-catch) + // Yes, just ignore the exception. } } @@ -59,7 +61,8 @@ try { FiffParser p(mInput); return p.getDecoder(meta); - } catch (const FiffParserException&) { + } catch (const FiffParserException&) { // NOLINT(bugprone-empty-catch) + // Yes, just ignore the exception. } } @@ -67,14 +70,16 @@ try { TiffParser p(mInput); return p.getDecoder(meta); - } catch (const TiffParserException&) { + } catch (const TiffParserException&) { // NOLINT(bugprone-empty-catch) + // Yes, just ignore the exception. } // CIFF images try { CiffParser p(mInput); return p.getDecoder(meta); - } catch (const CiffParserException&) { + } catch (const CiffParserException&) { // NOLINT(bugprone-empty-catch) + // Yes, just ignore the exception. } // Detect camera on filesize (CHDK). @@ -83,7 +88,8 @@ try { return std::make_unique<NakedDecoder>(mInput, c); - } catch (const RawDecoderException&) { + } catch (const RawDecoderException&) { // NOLINT(bugprone-empty-catch) + // Yes, just ignore the exception. } } diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/RawParser.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/RawParser.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/RawParser.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/RawParser.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,8 +20,8 @@ #pragma once -#include "io/Buffer.h" // for Buffer -#include <memory> // for unique_ptr +#include "io/Buffer.h" +#include <memory> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/RawParserException.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/RawParserException.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/RawParserException.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/RawParserException.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,30 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2023 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "parsers/RawParserException.h" + +namespace rawspeed { + +void RawParserException::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/RawParserException.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/RawParserException.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/RawParserException.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/RawParserException.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,15 +20,15 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_NOINLINE, RAWSPEED_UN... - // IWYU pragma: begin_exports -#include "common/RawspeedException.h" // for RawspeedException, ThrowExcept... +#include "common/RawspeedException.h" // IWYU pragma: end_exports namespace rawspeed { class RawParserException : public RawspeedException { + void anchor() const override; + public: using RawspeedException::RawspeedException; }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/TiffParser.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/TiffParser.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/TiffParser.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/TiffParser.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -22,33 +22,37 @@ */ #include "parsers/TiffParser.h" -#include "adt/NORangesSet.h" // for NORangesSet -#include "decoders/ArwDecoder.h" // for ArwDecoder -#include "decoders/Cr2Decoder.h" // for Cr2Decoder -#include "decoders/DcrDecoder.h" // for DcrDecoder -#include "decoders/DcsDecoder.h" // for DcsDecoder -#include "decoders/DngDecoder.h" // for DngDecoder -#include "decoders/ErfDecoder.h" // for ErfDecoder -#include "decoders/IiqDecoder.h" // for IiqDecoder -#include "decoders/KdcDecoder.h" // for KdcDecoder -#include "decoders/MefDecoder.h" // for MefDecoder -#include "decoders/MosDecoder.h" // for MosDecoder -#include "decoders/NefDecoder.h" // for NefDecoder -#include "decoders/OrfDecoder.h" // for OrfDecoder -#include "decoders/PefDecoder.h" // for PefDecoder -#include "decoders/Rw2Decoder.h" // for Rw2Decoder -#include "decoders/SrwDecoder.h" // for SrwDecoder -#include "decoders/ThreefrDecoder.h" // for ThreefrDecoder -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::unk... -#include "parsers/TiffParserException.h" // for ThrowException, ThrowTPE -#include <cassert> // for assert -#include <cstdint> // for UINT32_MAX, uint16_t, uint32_t -#include <memory> // for make_unique, unique_ptr -#include <tuple> // for tie, tuple -#include <vector> // for vector -// IWYU pragma: no_include <ext/alloc_traits.h> +#include "adt/NORangesSet.h" +#include "decoders/ArwDecoder.h" +#include "decoders/Cr2Decoder.h" +#include "decoders/DcrDecoder.h" +#include "decoders/DcsDecoder.h" +#include "decoders/DngDecoder.h" +#include "decoders/ErfDecoder.h" +#include "decoders/IiqDecoder.h" +#include "decoders/KdcDecoder.h" +#include "decoders/MefDecoder.h" +#include "decoders/MosDecoder.h" +#include "decoders/NefDecoder.h" +#include "decoders/OrfDecoder.h" +#include "decoders/PefDecoder.h" +#include "decoders/Rw2Decoder.h" +#include "decoders/SrwDecoder.h" +#include "decoders/StiDecoder.h" +#include "decoders/ThreefrDecoder.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "parsers/RawParser.h" +#include "parsers/TiffParserException.h" +#include "tiff/TiffIFD.h" +#include <array> +#include <cassert> +#include <cstdint> +#include <memory> +#include <tuple> +#include <utility> +#include <vector> namespace rawspeed { class RawDecoder; @@ -120,7 +124,7 @@ } const std::array<std::pair<TiffParser::checker_t, TiffParser::constructor_t>, - 16> + 17> TiffParser::Map = {{ DECODER(DngDecoder), DECODER(MosDecoder), @@ -137,6 +141,7 @@ DECODER(DcsDecoder), DECODER(KdcDecoder), DECODER(ErfDecoder), + DECODER(StiDecoder), DECODER(ThreefrDecoder), }}; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/TiffParser.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/TiffParser.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/TiffParser.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/TiffParser.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,13 +20,13 @@ #pragma once -#include "decoders/RawDecoder.h" // for RawDecoder (ptr only) -#include "io/Buffer.h" // for Buffer -#include "parsers/RawParser.h" // for RawParser -#include "tiff/TiffIFD.h" // for TiffRootIFDOwner, TiffIFD (ptr only) -#include <array> // for array -#include <memory> // for unique_ptr -#include <utility> // for pair +#include "decoders/RawDecoder.h" +#include "io/Buffer.h" +#include "parsers/RawParser.h" +#include "tiff/TiffIFD.h" +#include <array> +#include <memory> +#include <utility> namespace rawspeed { @@ -55,7 +55,7 @@ using checker_t = bool (*)(const TiffRootIFD* root, Buffer data); using constructor_t = std::unique_ptr<RawDecoder> (*)(TiffRootIFDOwner&& root, Buffer data); - static const std::array<std::pair<checker_t, constructor_t>, 16> Map; + static const std::array<std::pair<checker_t, constructor_t>, 17> Map; }; } // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/TiffParserException.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/TiffParserException.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/TiffParserException.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/TiffParserException.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,30 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2023 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "parsers/TiffParserException.h" + +namespace rawspeed { + +void TiffParserException::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + +} // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/TiffParserException.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/TiffParserException.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/parsers/TiffParserException.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/parsers/TiffParserException.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,16 +21,16 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_NOINLINE, RAWSPEED_... - // IWYU pragma: begin_exports -#include "common/RawspeedException.h" // for ThrowExceptionHelper -#include "parsers/RawParserException.h" // for RawParserException +#include "common/RawspeedException.h" +#include "parsers/RawParserException.h" // IWYU pragma: end_exports namespace rawspeed { class TiffParserException final : public RawParserException { + void anchor() const override; + public: using RawParserException::RawParserException; }; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/tiff/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/src/librawspeed/tiff/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/tiff/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/tiff/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -1,3 +1,6 @@ +rawspeed_add_library(rawspeed_tiff OBJECT) +set_target_properties(rawspeed_tiff PROPERTIES LINKER_LANGUAGE CXX) + FILE(GLOB SOURCES "TiffEntry.cpp" "TiffEntry.h" @@ -11,6 +14,12 @@ "CiffTag.h" ) -target_sources(rawspeed PRIVATE +target_sources(rawspeed_tiff PRIVATE ${SOURCES} ) + +target_include_directories(rawspeed_tiff PUBLIC "${RAWSPEED_BINARY_DIR}/src") +target_include_directories(rawspeed_tiff SYSTEM PUBLIC "${RAWSPEED_SOURCE_DIR}/src/external") +target_include_directories(rawspeed_tiff PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/..") + +target_link_libraries(rawspeed PRIVATE rawspeed_tiff) diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/tiff/CiffEntry.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/tiff/CiffEntry.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/tiff/CiffEntry.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/tiff/CiffEntry.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,39 +20,48 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "rawspeedconfig.h" #include "tiff/CiffEntry.h" -#include "adt/NORangesSet.h" // for NORangesSet -#include "io/Buffer.h" // for Buffer, operator< -#include "io/ByteStream.h" // for ByteStream -#include "parsers/CiffParserException.h" // for ThrowException, ThrowCPE -#include <algorithm> // for max -#include <string> // for string, basic_string, alloc... -#include <vector> // for vector +#include "adt/Invariant.h" +#include "adt/NORangesSet.h" +#include "adt/Optional.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "parsers/CiffParserException.h" +#include "tiff/CiffTag.h" +#include <cstdint> +#include <string> +#include <string_view> +#include <vector> using std::vector; namespace rawspeed { -CiffEntry::CiffEntry(NORangesSet<Buffer>* valueDatas, ByteStream valueData, - ByteStream dirEntry) { +CiffEntry::CiffEntry(ByteStream data_, CiffTag tag_, CiffDataType type_, + uint32_t count_) + : data(data_), tag(tag_), type(type_), count(count_) {} + +CiffEntry CiffEntry::Create(NORangesSet<Buffer>* valueDatas, + ByteStream valueData, ByteStream dirEntry) { uint16_t p = dirEntry.getU16(); - // NOLINTNEXTLINE cppcoreguidelines-prefer-member-initializer - tag = static_cast<CiffTag>(p & 0x3fff); + const auto tag = static_cast<CiffTag>(p & 0x3fff); uint16_t datalocation = (p & 0xc000); - // NOLINTNEXTLINE cppcoreguidelines-prefer-member-initializer - type = static_cast<CiffDataType>(p & 0x3800); + const auto type = static_cast<CiffDataType>(p & 0x3800); uint32_t data_offset; uint32_t bytesize; + Optional<ByteStream> data; + switch (datalocation) { case 0x0000: // Data is offset in value_data bytesize = dirEntry.getU32(); data_offset = dirEntry.getU32(); data = valueData.getSubStream(data_offset, bytesize); - if (!valueDatas->insert(data)) + if (!valueDatas->insert(*data)) ThrowCPE("Two valueData's overlap. Raw corrupt!"); break; case 0x4000: @@ -65,46 +74,50 @@ default: ThrowCPE("Don't understand data location 0x%x", datalocation); } + invariant(data.has_value()); // Set the number of items using the shift - count = bytesize >> getElementShift(); + uint32_t count = bytesize >> getElementShift(type); + + return {*data, tag, type, count}; } -uint32_t RAWSPEED_READONLY CiffEntry::getElementShift() const { +uint32_t CiffEntry::getElementShift(CiffDataType type) { switch (type) { - case CiffDataType::SHORT: + using enum CiffDataType; + case SHORT: return 1; - case CiffDataType::LONG: - case CiffDataType::MIX: - case CiffDataType::SUB1: - case CiffDataType::SUB2: + case LONG: + case MIX: + case SUB1: + case SUB2: return 2; default: - // e.g. CiffDataType::BYTE or CiffDataType::ASCII + // e.g. BYTE or ASCII return 0; } } uint32_t RAWSPEED_READONLY CiffEntry::getElementSize() const { switch (type) { - case CiffDataType::BYTE: - case CiffDataType::ASCII: + using enum CiffDataType; + case BYTE: + case ASCII: return 1; - case CiffDataType::SHORT: + case SHORT: return 2; - case CiffDataType::LONG: - case CiffDataType::MIX: - case CiffDataType::SUB1: - case CiffDataType::SUB2: + case LONG: + case MIX: + case SUB1: + case SUB2: return 4; - default: - return 0; } + __builtin_unreachable(); } bool RAWSPEED_READONLY CiffEntry::isInt() const { - return (type == CiffDataType::LONG || type == CiffDataType::SHORT || - type == CiffDataType::BYTE); + using enum CiffDataType; + return (type == LONG || type == SHORT || type == BYTE); } uint32_t CiffEntry::getU32(uint32_t num) const { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/tiff/CiffEntry.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/tiff/CiffEntry.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/tiff/CiffEntry.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/tiff/CiffEntry.h 2024-02-14 22:08:05.000000000 +0000 @@ -22,14 +22,14 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_READONLY -#include "adt/NORangesSet.h" // for set -#include "io/ByteStream.h" // for ByteStream -#include "tiff/CiffTag.h" // for CiffTag -#include <cstdint> // for uint32_t, uint16_t, uint8_t -#include <string> // for string -#include <string_view> // for string_view -#include <vector> // for vector +#include "rawspeedconfig.h" +#include "adt/NORangesSet.h" +#include "io/ByteStream.h" +#include "tiff/CiffTag.h" +#include <cstdint> +#include <string> +#include <string_view> +#include <vector> namespace rawspeed { @@ -51,14 +51,16 @@ }; -class CiffEntry { +class CiffEntry final { friend class CiffIFD; ByteStream data; + CiffEntry(ByteStream data, CiffTag tag, CiffDataType type, uint32_t count); + public: - explicit CiffEntry(NORangesSet<Buffer>* valueDatas, ByteStream valueData, - ByteStream dirEntry); + static CiffEntry Create(NORangesSet<Buffer>* valueDatas, ByteStream valueData, + ByteStream dirEntry); [[nodiscard]] ByteStream getData() const { return data; } @@ -70,7 +72,9 @@ [[nodiscard]] std::vector<std::string> getStrings() const; [[nodiscard]] uint32_t RAWSPEED_READONLY getElementSize() const; - [[nodiscard]] uint32_t RAWSPEED_READONLY getElementShift() const; + + [[nodiscard]] static uint32_t + getElementShift(CiffDataType type) RAWSPEED_READONLY; // variables: CiffTag tag; diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/tiff/CiffIFD.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/tiff/CiffIFD.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/tiff/CiffIFD.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/tiff/CiffIFD.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,21 +20,23 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "rawspeedconfig.h" #include "tiff/CiffIFD.h" -#include "adt/NORangesSet.h" // for NORangesSet -#include "common/Common.h" // for isIn -#include "io/Buffer.h" // for Buffer -#include "io/ByteStream.h" // for ByteStream -#include "parsers/CiffParserException.h" // for ThrowException, ThrowCPE -#include "tiff/CiffEntry.h" // for CiffEntry, CiffDataType -#include <algorithm> // for copy, max, any_of -#include <cassert> // for assert -#include <map> // for map, operator!=, _Rb_tree_c... -#include <memory> // for unique_ptr, make_unique -#include <string> // for string, basic_string<>::__s... -#include <string_view> // for operator== -#include <utility> // for move, pair -#include <vector> // for vector, vector<>::const_ite... +#include "adt/NORangesSet.h" +#include "common/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "parsers/CiffParserException.h" +#include "tiff/CiffEntry.h" +#include "tiff/CiffTag.h" +#include <algorithm> +#include <cassert> +#include <cstdint> +#include <map> +#include <memory> +#include <string> +#include <utility> +#include <vector> using std::vector; @@ -46,20 +48,20 @@ ByteStream dirEntry = dirEntries.getStream(10); // Entry is 10 bytes. - auto t = std::make_unique<CiffEntry>(valueDatas, valueData, dirEntry); + CiffEntry t = CiffEntry::Create(valueDatas, valueData, dirEntry); - switch (t->type) { + switch (t.type) { case CiffDataType::SUB1: case CiffDataType::SUB2: { - add(std::make_unique<CiffIFD>(this, t->data)); + add(std::make_unique<CiffIFD>(this, t.data)); break; } default: // Will we ever look for this entry? - if (!isIn(t->tag, CiffTagsWeCareAbout)) + if (!isIn(t.tag, CiffTagsWeCareAbout)) return; - add(std::move(t)); + add(std::make_unique<CiffEntry>(t)); } } @@ -228,13 +230,13 @@ bool RAWSPEED_READONLY CiffIFD::hasEntry(CiffTag tag) const { assert(isIn(tag, CiffTagsWeCareAbout)); - return mEntry.count(tag) > 0; + return mEntry.contains(tag); } bool RAWSPEED_READONLY CiffIFD::hasEntryRecursive(CiffTag tag) const { assert(isIn(tag, CiffTagsWeCareAbout)); - if (mEntry.count(tag) > 0) + if (mEntry.contains(tag)) return true; return std::any_of(mSubIFD.begin(), mSubIFD.end(), diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/tiff/CiffIFD.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/tiff/CiffIFD.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/tiff/CiffIFD.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/tiff/CiffIFD.h 2024-02-14 22:08:05.000000000 +0000 @@ -22,15 +22,15 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_READONLY -#include "adt/NORangesSet.h" // for set -#include "tiff/CiffEntry.h" // for CiffEntry (ptr only) -#include "tiff/CiffTag.h" // for CiffTag -#include <cstdint> // for uint32_t -#include <map> // for map -#include <memory> // for unique_ptr -#include <string> // for string -#include <vector> // for vector +#include "rawspeedconfig.h" +#include "adt/NORangesSet.h" +#include "tiff/CiffEntry.h" +#include "tiff/CiffTag.h" +#include <cstdint> +#include <map> +#include <memory> +#include <string> +#include <vector> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/tiff/CiffTag.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/tiff/CiffTag.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/tiff/CiffTag.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/tiff/CiffTag.h 2024-02-14 22:08:05.000000000 +0000 @@ -21,7 +21,7 @@ #pragma once -#include <initializer_list> // for initializer_list +#include <initializer_list> namespace rawspeed { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/tiff/TiffEntry.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/tiff/TiffEntry.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/tiff/TiffEntry.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/tiff/TiffEntry.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -20,17 +20,22 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "rawspeedconfig.h" #include "tiff/TiffEntry.h" -#include "common/Common.h" // for isIn -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/Endianness.h" // for Endianness, Endianness::little -#include "parsers/TiffParserException.h" // for ThrowException, ThrowTPE -#include "tiff/TiffIFD.h" // for TiffIFD, TiffRootIFD -#include "tiff/TiffTag.h" // for TiffTag, TiffTag::DNGPRIVAT... -#include <cassert> // for assert -#include <cstdint> // for uint32_t, uint8_t, int32_t -#include <cstring> // for strnlen -#include <string> // for string +#include "adt/Casts.h" +#include "adt/NotARational.h" +#include "common/Common.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "parsers/TiffParserException.h" +#include "tiff/TiffIFD.h" +#include "tiff/TiffTag.h" +#include <algorithm> +#include <array> +#include <cassert> +#include <cstdint> +#include <string> namespace rawspeed { @@ -39,6 +44,16 @@ 0, 1, 2, 3, 2, 3, 2}; // 0-1-2-3-4-5-6-7-8-9-10-11-12-13 +void TiffEntry::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + +void TiffEntryWithData::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + TiffEntry::TiffEntry(TiffIFD* parent_, ByteStream& bs) : parent(parent_), tag(static_cast<TiffTag>(bs.getU16())) { const uint16_t numType = bs.getU16(); @@ -66,18 +81,20 @@ TiffTag::MAKERNOTE_ALT, TiffTag::FUJI_RAW_IFD, TiffTag::SUBIFDS, TiffTag::EXIFIFDPOINTER})) { // preserve offset for SUB_IFD/EXIF/MAKER_NOTE data -#if 0 - // limit access to range from 0 to data_offset+byte_size - data = ByteStream(bs, data_offset, byte_size, bs.getByteOrder()); -#else - // allow access to whole file, necessary if offsets inside the maker note - // point to outside data, which is forbidden due to the TIFF/DNG spec but - // may happen none the less (see e.g. "old" ORF files like EX-1, note: - // the tags outside of the maker note area are currently not used anyway) - data = bs; - data.setPosition(data_offset); - (void)data.check(byte_size); -#endif + // NOLINTNEXTLINE(readability-simplify-boolean-expr) + if constexpr ((false)) { + // limit access to range from 0 to data_offset+byte_size + data = bs.getSubStream(data_offset, byte_size); + } else { + // allow access to whole file, necessary if offsets inside the maker + // note point to outside data, which is forbidden due to the TIFF/DNG + // spec but may happen none the less (see e.g. "old" ORF files like + // EX-1, note: the tags outside of the maker note area are currently not + // used anyway) + data = bs; + data.setPosition(data_offset); + (void)data.check(byte_size); + } } else { data = bs.getSubStream(data_offset, byte_size); } @@ -104,14 +121,15 @@ Buffer mirror) : TiffEntry(parent_, tag_, type_, /*count=*/0, ByteStream()), data(mirror.begin(), mirror.end()) { - setData(ByteStream( - DataBuffer(Buffer(data.data(), data.size()), Endianness::little))); + setData(ByteStream(DataBuffer( + Buffer(data.data(), implicit_cast<Buffer::size_type>(data.size())), + Endianness::little))); count = count_; } bool RAWSPEED_READONLY TiffEntry::isInt() const { - return type == TiffDataType::LONG || type == TiffDataType::SHORT || - type == TiffDataType::BYTE; + using enum TiffDataType; + return type == LONG || type == SHORT || type == BYTE; } bool RAWSPEED_READONLY TiffEntry::isString() const { @@ -120,14 +138,15 @@ bool RAWSPEED_READONLY TiffEntry::isFloat() const { switch (type) { - case TiffDataType::FLOAT: - case TiffDataType::DOUBLE: - case TiffDataType::RATIONAL: - case TiffDataType::SRATIONAL: - case TiffDataType::LONG: - case TiffDataType::SLONG: - case TiffDataType::SHORT: - case TiffDataType::SSHORT: + using enum TiffDataType; + case FLOAT: + case DOUBLE: + case RATIONAL: + case SRATIONAL: + case LONG: + case SLONG: + case SHORT: + case SSHORT: return true; default: return false; @@ -136,9 +155,10 @@ bool RAWSPEED_READONLY TiffEntry::isRational() const { switch (type) { - case TiffDataType::SHORT: - case TiffDataType::LONG: - case TiffDataType::RATIONAL: + using enum TiffDataType; + case SHORT: + case LONG: + case RATIONAL: return true; default: return false; @@ -147,9 +167,10 @@ bool RAWSPEED_READONLY TiffEntry::isSRational() const { switch (type) { - case TiffDataType::SSHORT: - case TiffDataType::SLONG: - case TiffDataType::SRATIONAL: + using enum TiffDataType; + case SSHORT: + case SLONG: + case SRATIONAL: return true; default: return false; @@ -181,15 +202,16 @@ } uint32_t TiffEntry::getU32(uint32_t index) const { - if (type == TiffDataType::SHORT) + using enum TiffDataType; + if (type == SHORT) return getU16(index); switch (type) { - case TiffDataType::LONG: - case TiffDataType::OFFSET: - case TiffDataType::BYTE: - case TiffDataType::UNDEFINED: - case TiffDataType::RATIONAL: + case LONG: + case OFFSET: + case BYTE: + case UNDEFINED: + case RATIONAL: break; default: ThrowTPE("Wrong type %u encountered. Expected Long, Offset, Rational or " @@ -201,10 +223,10 @@ } int32_t TiffEntry::getI32(uint32_t index) const { - if (type == TiffDataType::SSHORT) + using enum TiffDataType; + if (type == SSHORT) return getI16(index); - if (type != TiffDataType::SLONG && type != TiffDataType::SRATIONAL && - type != TiffDataType::UNDEFINED) + if (type != SLONG && type != SRATIONAL && type != UNDEFINED) ThrowTPE("Wrong type %u encountered. Expected SLong or Undefined on 0x%x", static_cast<unsigned>(type), static_cast<unsigned>(tag)); @@ -247,21 +269,22 @@ } switch (type) { - case TiffDataType::DOUBLE: - return data.peek<double>(index); - case TiffDataType::FLOAT: + using enum TiffDataType; + case DOUBLE: + return implicit_cast<float>(data.peek<double>(index)); + case FLOAT: return data.peek<float>(index); - case TiffDataType::LONG: - case TiffDataType::SHORT: + case LONG: + case SHORT: return static_cast<float>(getU32(index)); - case TiffDataType::SLONG: - case TiffDataType::SSHORT: + case SLONG: + case SSHORT: return static_cast<float>(getI32(index)); - case TiffDataType::RATIONAL: { + case RATIONAL: { auto r = getRational(index); return r.den ? static_cast<float>(r) : 0.0F; } - case TiffDataType::SRATIONAL: { + case SRATIONAL: { auto r = getSRational(index); return r.den ? static_cast<float>(r) : 0.0F; } @@ -277,10 +300,10 @@ static_cast<unsigned>(type)); // *NOT* ByteStream::peekString() ! - const auto bufSize = data.getRemainSize(); - const auto* buf = data.peekData(bufSize); - const auto* s = reinterpret_cast<const char*>(buf); - return {s, strnlen(s, bufSize)}; + Buffer tmp = data.peekBuffer(data.getRemainSize()); + const auto* termIter = std::find(tmp.begin(), tmp.end(), '\0'); + return {reinterpret_cast<const char*>(tmp.begin()), + reinterpret_cast<const char*>(termIter)}; } DataBuffer TiffEntry::getRootIfdData() const { diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/tiff/TiffEntry.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/tiff/TiffEntry.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/tiff/TiffEntry.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/tiff/TiffEntry.h 2024-02-14 22:08:05.000000000 +0000 @@ -22,15 +22,14 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_READONLY -#include "adt/NotARational.h" // for NotARational -#include "io/ByteStream.h" // for ByteStream -#include "tiff/TiffTag.h" // for TiffTag -#include <algorithm> // for fill_n -#include <array> // for array -#include <cstdint> // for uint32_t, uint16_t, uint8_t, int32_t -#include <string> // for string -#include <vector> // for vector +#include "rawspeedconfig.h" +#include "adt/NotARational.h" +#include "io/ByteStream.h" +#include "tiff/TiffTag.h" +#include <array> +#include <cstdint> +#include <string> +#include <vector> namespace rawspeed { @@ -64,6 +63,8 @@ TiffIFD* parent; ByteStream data; + virtual void anchor() const; + friend class TiffIFD; template <typename T, T (TiffEntry::*getter)(uint32_t index) const> @@ -135,9 +136,11 @@ static const std::array<uint32_t, 14> datashifts; }; -class TiffEntryWithData : public TiffEntry { +class TiffEntryWithData final : public TiffEntry { const std::vector<uint8_t> data; + void anchor() const override; + public: TiffEntryWithData(TiffIFD* parent, TiffTag tag, TiffDataType type, uint32_t count, Buffer mirror); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/tiff/TiffIFD.cpp darktable-4.6.1/src/external/rawspeed/src/librawspeed/tiff/TiffIFD.cpp --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/tiff/TiffIFD.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/tiff/TiffIFD.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -21,25 +21,35 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "rawspeedconfig.h" #include "tiff/TiffIFD.h" -#include "adt/NORangesSet.h" // for NORangesSet -#include "common/Common.h" // for trimSpaces -#include "common/RawspeedException.h" // for ThrowException, RawspeedException -#include "io/IOException.h" // for IOException -#include "tiff/TiffEntry.h" // for TiffEntry -#include "tiff/TiffTag.h" // for TiffTag, TiffTag::MAKE, TiffTa... -#include <algorithm> // for copy, max -#include <cassert> // for assert -#include <map> // for map, operator!=, operator== -#include <memory> // for unique_ptr, make_unique, alloc... -#include <string> // for string, operator==, basic_string -#include <utility> // for move, pair -#include <vector> // for vector<>::iterator, vector +#include "adt/NORangesSet.h" +#include "common/Common.h" +#include "common/RawspeedException.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "io/IOException.h" +#include "parsers/TiffParserException.h" +#include "tiff/TiffEntry.h" +#include "tiff/TiffTag.h" +#include <cassert> +#include <cstdint> +#include <map> +#include <memory> +#include <string> +#include <string_view> +#include <utility> +#include <vector> using std::vector; namespace rawspeed { +void TiffIFD::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + void TiffIFD::parseIFDEntry(NORangesSet<Buffer>* ifds, ByteStream& bs) { assert(ifds); @@ -58,7 +68,8 @@ try { switch (t->tag) { - case TiffTag::DNGPRIVATEDATA: + using enum TiffTag; + case DNGPRIVATEDATA: // These are arbitrarily 'rebased', to preserve the offsets, but as it is // implemented right now, that could trigger UB (pointer arithmetics, // creating pointer to unowned memory, etc). And since this is not even @@ -68,14 +79,14 @@ add(std::move(t)); break; - case TiffTag::MAKERNOTE: - case TiffTag::MAKERNOTE_ALT: + case MAKERNOTE: + case MAKERNOTE_ALT: add(parseMakerNote(ifds, t.get())); break; - case TiffTag::FUJI_RAW_IFD: - case TiffTag::SUBIFDS: - case TiffTag::EXIFIFDPOINTER: + case FUJI_RAW_IFD: + case SUBIFDS: + case EXIFIFDPOINTER: for (uint32_t j = 0; j < t->count; j++) add(std::make_unique<TiffIFD>(this, ifds, bs, t->getU32(j))); break; @@ -136,11 +147,11 @@ // we can not go all the way to the top first because this partial tree // is not yet added to the TiffRootIFD. const TiffIFD* p = this; - const TiffEntry* makeEntry; - do { + const TiffEntry* makeEntry = nullptr; + while (p && !makeEntry) { makeEntry = p->getEntryRecursive(TiffTag::MAKE); p = p->parent; - } while (!makeEntry && p); + } std::string make = makeEntry != nullptr ? trimSpaces(makeEntry->getString()) : ""; @@ -162,28 +173,28 @@ bs.skipBytes(newPosition); }; - if (bs.hasPrefix("AOC\0", 4)) { + if (bs.hasPrefix(std::string_view("AOC\0", 4))) { setup(false, 6, 4, "Pentax makernote"); - } else if (bs.hasPrefix("PENTAX", 6)) { + } else if (bs.hasPrefix("PENTAX")) { setup(true, 10, 8, "Pentax makernote"); - } else if (bs.hasPrefix("FUJIFILM\x0c\x00\x00\x00", 12)) { + } else if (bs.hasPrefix(std::string_view("FUJIFILM\x0c\x00\x00\x00", 12))) { bs.setByteOrder(Endianness::little); setup(true, 12); - } else if (bs.hasPrefix("Nikon\x00\x02", 7)) { + } else if (bs.hasPrefix(std::string_view("Nikon\x00\x02", 7))) { // this is Nikon type 3 maker note format // TODO: implement Nikon type 1 maker note format // see http://www.ozhiker.com/electronics/pjmt/jpeg_info/nikon_mn.html bs.skipBytes(10); setup(true, 8, 0, "Nikon makernote"); - } else if (bs.hasPrefix("OLYMPUS", 7)) { // new Olympus + } else if (bs.hasPrefix("OLYMPUS")) { // new Olympus setup(true, 12); - } else if (bs.hasPrefix("OLYMP", 5)) { // old Olympus + } else if (bs.hasPrefix("OLYMP")) { // old Olympus setup(true, 8); - } else if (bs.hasPrefix("OM SYSTEM", 9)) { // ex Olympus + } else if (bs.hasPrefix("OM SYSTEM")) { // ex Olympus setup(true, 16); - } else if (bs.hasPrefix("EPSON", 5)) { + } else if (bs.hasPrefix("EPSON")) { setup(false, 8); - } else if (bs.hasPatternAt("Exif", 4, 6)) { + } else if (bs.hasPatternAt("Exif", 6)) { // TODO: for none of the rawsamples.ch files from Panasonic is this true, // instead their MakerNote start with "Panasonic" Panasonic has the word // Exif at byte 6, a complete Tiff header starts at byte 12 This TIFF is 0 @@ -199,9 +210,9 @@ // At least one MAKE has not been handled explicitly and starts its // MakerNote with an endian prefix: Kodak - if (bs.skipPrefix("II", 2)) { + if (bs.skipPrefix("II")) { bs.setByteOrder(Endianness::little); - } else if (bs.skipPrefix("MM", 2)) { + } else if (bs.skipPrefix("MM")) { bs.setByteOrder(Endianness::big); } } @@ -212,7 +223,7 @@ std::vector<const TiffIFD*> TiffIFD::getIFDsWithTag(TiffTag tag) const { vector<const TiffIFD*> matchingIFDs; - if (entries.find(tag) != entries.end()) { + if (entries.contains(tag)) { matchingIFDs.push_back(this); } for (const auto& i : subIFDs) { @@ -225,7 +236,7 @@ const TiffIFD* TiffIFD::getIFDWithTag(TiffTag tag, uint32_t index) const { auto ifds = getIFDsWithTag(tag); if (index >= ifds.size()) - ThrowTPE("failed to find %u ifs with tag 0x%04x", index + 1, + ThrowTPE("failed to find %u ifd with tag 0x%04x", index + 1, static_cast<unsigned>(tag)); return ifds[index]; } @@ -304,6 +315,11 @@ return i->second.get(); } +void TiffRootIFD::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + TiffID TiffRootIFD::getID() const { TiffID id; const auto* makeE = getEntryRecursive(TiffTag::MAKE); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/tiff/TiffIFD.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/tiff/TiffIFD.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/tiff/TiffIFD.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/tiff/TiffIFD.h 2024-02-14 22:08:05.000000000 +0000 @@ -22,20 +22,19 @@ #pragma once -#include "rawspeedconfig.h" // for RAWSPEED_READONLY -#include "adt/NORangesSet.h" // for set -#include "common/RawspeedException.h" // for ThrowException -#include "io/Buffer.h" // for Buffer (ptr only), DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::big -#include "parsers/TiffParserException.h" // for ThrowException, ThrowTPE -#include "tiff/TiffEntry.h" // for TiffEntry -#include "tiff/TiffTag.h" // for TiffTag -#include <cstdint> // for uint32_t -#include <map> // for map, operator!=, map<>::con... -#include <memory> // for unique_ptr -#include <string> // for string -#include <vector> // for vector +#include "rawspeedconfig.h" +#include "adt/NORangesSet.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include "parsers/TiffParserException.h" +#include "tiff/TiffEntry.h" +#include "tiff/TiffTag.h" +#include <cstdint> +#include <map> +#include <memory> +#include <string> +#include <vector> namespace rawspeed { @@ -59,6 +58,8 @@ std::map<TiffTag, TiffEntryOwner> entries; + virtual void anchor() const; + friend class TiffEntry; friend class FiffParser; friend class TiffParser; @@ -116,7 +117,7 @@ [[nodiscard]] TiffEntry* RAWSPEED_READONLY getEntryRecursive(TiffTag tag) const; [[nodiscard]] bool RAWSPEED_READONLY hasEntry(TiffTag tag) const { - return entries.find(tag) != entries.end(); + return entries.contains(tag); } [[nodiscard]] bool hasEntryRecursive(TiffTag tag) const { return getEntryRecursive(tag) != nullptr; @@ -129,12 +130,14 @@ // } }; -struct TiffID { +struct TiffID final { std::string make; std::string model; }; class TiffRootIFD final : public TiffIFD { + void anchor() const override; + public: const DataBuffer rootBuffer; @@ -149,9 +152,9 @@ inline Endianness getTiffByteOrder(ByteStream bs, uint32_t pos, const char* context = "") { - if (bs.hasPatternAt("II", 2, pos)) + if (bs.hasPatternAt("II", pos)) return Endianness::little; - if (bs.hasPatternAt("MM", 2, pos)) + if (bs.hasPatternAt("MM", pos)) return Endianness::big; ThrowTPE("Failed to parse TIFF endianness information in %s.", context); diff -Nru darktable-4.4.2/src/external/rawspeed/src/librawspeed/tiff/TiffTag.h darktable-4.6.1/src/external/rawspeed/src/librawspeed/tiff/TiffTag.h --- darktable-4.4.2/src/external/rawspeed/src/librawspeed/tiff/TiffTag.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/librawspeed/tiff/TiffTag.h 2024-02-14 22:08:05.000000000 +0000 @@ -363,6 +363,11 @@ KODAK_IFD2 = 0xFE00, NIKON_BLACKLEVEL = 0x003D, + + PANASONIC_SENSORTOPBORDER = 0x0004, + PANASONIC_SENSORLEFTBORDER = 0x0005, + PANASONIC_SENSORBOTTOMBORDER = 0x0006, + PANASONIC_SENSORRIGHTBORDER = 0x0007 }; } // namespace rawspeed diff -Nru darktable-4.4.2/src/external/rawspeed/src/utilities/identify/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/src/utilities/identify/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/src/utilities/identify/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/utilities/identify/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -15,6 +15,7 @@ if(BUILD_TESTING) rawspeed_add_test(NAME utilities/${rsidentify} COMMAND ${rsidentify} WORKING_DIRECTORY "$<TARGET_PROPERTY:rawspeed_get_number_of_processor_cores,BINARY_DIR>") + set_tests_properties(utilities/${rsidentify} PROPERTIES LABELS "dummy") endif() install(TARGETS ${rsidentify} DESTINATION ${CMAKE_INSTALL_BINDIR}) diff -Nru darktable-4.4.2/src/external/rawspeed/src/utilities/identify/rawspeed-identify.cpp darktable-4.6.1/src/external/rawspeed/src/utilities/identify/rawspeed-identify.cpp --- darktable-4.4.2/src/external/rawspeed/src/utilities/identify/rawspeed-identify.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/utilities/identify/rawspeed-identify.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -17,24 +17,17 @@ along with darktable. If not, see <http://www.gnu.org/licenses/>. */ -#include "RawSpeed-API.h" // for RawImage, RawImageData, iPoint2D, Cam... -#include "adt/Array2DRef.h" // for Array2DRef -#include <array> // for array -#include <cstddef> // for byte, size_t -#include <cstdint> // for uint16_t, uint32_t -#include <cstdio> // for fprintf, stdout, stderr -#include <memory> // for unique_ptr, allocator, make_unique -#include <string> // for string, operator+, basic_string -#include <sys/stat.h> // for stat -#include <vector> // for vector - -#ifdef _WIN32 -#ifndef NOMINMAX -#define NOMINMAX // do not want the min()/max() macros! -#endif - -#include <Windows.h> -#endif +#include "RawSpeed-API.h" +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include <array> +#include <cstddef> +#include <cstdint> +#include <cstdio> +#include <memory> +#include <string> +#include <sys/stat.h> +#include <vector> namespace rawspeed::identify { @@ -110,20 +103,22 @@ using rawspeed::Buffer; using rawspeed::CameraMetaData; using rawspeed::FileReader; +using rawspeed::implicit_cast; using rawspeed::iPoint2D; using rawspeed::RawImage; using rawspeed::RawParser; using rawspeed::RawspeedException; using rawspeed::identify::find_cameras_xml; -int main(int argc, char* argv[]) { // NOLINT +int main(int argc_, char* argv_[]) { // NOLINT + auto argv = rawspeed::Array1DRef(argv_, argc_); - if (argc != 2) { + if (argv.size() != 2) { fprintf(stderr, "Usage: darktable-rs-identify <file>\n"); return 0; } - const std::string camfile = find_cameras_xml(argv[0]); + const std::string camfile = find_cameras_xml(argv(0)); if (camfile.empty()) { // fprintf(stderr, "ERROR: Couldn't find cameras.xml\n"); return 2; @@ -144,27 +139,9 @@ return 2; } -#ifndef _WIN32 - char* imageFileName = argv[1]; -#else - // turn the locale ANSI encoded string into UTF-8 so that FileReader can - // turn it into UTF-16 later - int size = MultiByteToWideChar(CP_ACP, 0, argv[1], -1, nullptr, 0); - std::wstring wImageFileName; - wImageFileName.resize(size); - MultiByteToWideChar(CP_ACP, 0, argv[1], -1, &wImageFileName[0], size); - size = WideCharToMultiByte(CP_UTF8, 0, &wImageFileName[0], -1, nullptr, 0, - nullptr, nullptr); - std::string _imageFileName; - _imageFileName.resize(size); - char* imageFileName = &_imageFileName[0]; - WideCharToMultiByte(CP_UTF8, 0, &wImageFileName[0], -1, imageFileName, size, - nullptr, nullptr); -#endif + fprintf(stderr, "Loading file: \"%s\"\n", argv(1)); - fprintf(stderr, "Loading file: \"%s\"\n", imageFileName); - - FileReader f(imageFileName); + FileReader f(argv(1)); auto [storage, buf] = f.readFile(); @@ -198,20 +175,37 @@ d->decodeMetaData(meta.get()); r = d->mRaw; - const auto errors = r->getErrors(); - for (const auto& error : errors) + for (const auto errors = r->getErrors(); const auto& error : errors) fprintf(stderr, "WARNING: [rawspeed] %s\n", error.c_str()); fprintf(stdout, "blackLevel: %d\n", r->blackLevel); - fprintf(stdout, "whitePoint: %d\n", r->whitePoint); - fprintf(stdout, "blackLevelSeparate: %d %d %d %d\n", - r->blackLevelSeparate[0], r->blackLevelSeparate[1], - r->blackLevelSeparate[2], r->blackLevelSeparate[3]); - - fprintf(stdout, "wbCoeffs: %f %f %f %f\n", r->metadata.wbCoeffs[0], - r->metadata.wbCoeffs[1], r->metadata.wbCoeffs[2], - r->metadata.wbCoeffs[3]); + fprintf(stdout, "whitePoint: "); + if (!r->whitePoint) + fprintf(stdout, "unknown"); + else + fprintf(stdout, "%d", *r->whitePoint); + fprintf(stdout, "\n"); + + fprintf(stdout, "blackLevelSeparate: "); + if (!r->blackLevelSeparate) { + fprintf(stdout, "none"); + } else { + fprintf(stdout, "(%i x %i)", r->blackLevelSeparate->width(), + r->blackLevelSeparate->height()); + if (auto blackLevelSeparate1D = r->blackLevelSeparate->getAsArray1DRef(); + blackLevelSeparate1D && blackLevelSeparate1D->size() != 0) { + for (auto l : *blackLevelSeparate1D) + fprintf(stdout, " %d", l); + } + } + fprintf(stdout, "\n"); + + fprintf(stdout, "wbCoeffs: %f %f %f %f\n", + implicit_cast<double>(r->metadata.wbCoeffs[0]), + implicit_cast<double>(r->metadata.wbCoeffs[1]), + implicit_cast<double>(r->metadata.wbCoeffs[2]), + implicit_cast<double>(r->metadata.wbCoeffs[3])); fprintf(stdout, "isCFA: %d\n", r->isCFA); uint32_t filters = r->cfa.getDcrawFilter(); @@ -237,9 +231,10 @@ fprintf(stdout, "fuji_rotation_pos: %d\n", r->metadata.fujiRotationPos); fprintf(stdout, "pixel_aspect_ratio: %f\n", r->metadata.pixelAspectRatio); - double sum = 0.0F; + double sum = 0.0; #ifdef HAVE_OPENMP -#pragma omp parallel for default(none) firstprivate(dimUncropped, raw, bpp) schedule(static) reduction(+ : sum) +#pragma omp parallel for default(none) firstprivate(dimUncropped, raw, bpp) \ + schedule(static) reduction(+ : sum) #endif for (int y = 0; y < dimUncropped.y; ++y) { const rawspeed::Array2DRef<std::byte> img = @@ -252,10 +247,11 @@ sum / static_cast<double>(dimUncropped.y * dimUncropped.x * bpp)); if (r->getDataType() == rawspeed::RawImageType::F32) { - sum = 0.0F; + sum = 0.0; #ifdef HAVE_OPENMP -#pragma omp parallel for default(none) firstprivate(dimUncropped, raw, cpp) schedule(static) reduction(+ : sum) +#pragma omp parallel for default(none) firstprivate(dimUncropped, raw, cpp) \ + schedule(static) reduction(+ : sum) #endif for (int y = 0; y < dimUncropped.y; ++y) { const rawspeed::Array2DRef<float> img = @@ -268,10 +264,11 @@ fprintf(stdout, "Image float avg: %lf\n", sum / static_cast<double>(dimUncropped.y * dimUncropped.x)); } else if (r->getDataType() == rawspeed::RawImageType::UINT16) { - sum = 0.0F; + sum = 0.0; #ifdef HAVE_OPENMP -#pragma omp parallel for default(none) firstprivate(dimUncropped, raw, cpp) schedule(static) reduction(+ : sum) +#pragma omp parallel for default(none) firstprivate(dimUncropped, raw, cpp) \ + schedule(static) reduction(+ : sum) #endif for (int y = 0; y < dimUncropped.y; ++y) { const rawspeed::Array2DRef<uint16_t> img = diff -Nru darktable-4.4.2/src/external/rawspeed/src/utilities/rsbench/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/src/utilities/rsbench/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/src/utilities/rsbench/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/utilities/rsbench/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -4,5 +4,9 @@ target_link_libraries(rsbench rawspeed_bench) rawspeed_add_test(NAME utilities/rsbench COMMAND rsbench --help) +set_tests_properties(utilities/rsbench PROPERTIES LABELS "benchmark;dummy") +if(WIN32) + set_tests_properties(utilities/rsbench PROPERTIES ENVIRONMENT_MODIFICATION "PATH=path_list_prepend:$<TARGET_FILE_DIR:rawspeed_bench>") +endif() add_dependencies(benchmarks rsbench) diff -Nru darktable-4.4.2/src/external/rawspeed/src/utilities/rsbench/main.cpp darktable-4.6.1/src/external/rawspeed/src/utilities/rsbench/main.cpp --- darktable-4.4.2/src/external/rawspeed/src/utilities/rsbench/main.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/utilities/rsbench/main.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,26 +18,27 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "RawSpeed-API.h" // for Buffer, RawDecoder, Fil... -#include "adt/AlignedAllocator.h" // for AlignedAllocator -#include "adt/DefaultInitAllocatorAdaptor.h" // for DefaultInitAllocatorAda... -#include "common/ChecksumFile.h" // for ChecksumFileEntry, Read... -#include <algorithm> // for max -#include <chrono> // for duration, high_resoluti... -#include <cstdint> // for uint8_t -#include <ctime> // for clock, clock_t, CLOCKS_... -#include <memory> // for unique_ptr, allocator -#include <ratio> // for ratio -#include <string> // for string, to_string, char... -#include <string_view> // for operator!=, string_view -#include <tuple> // for tie, tuple -#include <type_traits> // for __type_identity_t -#include <utility> // for move -#include <vector> // for vector -#include <benchmark/benchmark.h> // for Counter, Counter::Flags +#include "RawSpeed-API.h" +#include "adt/AlignedAllocator.h" +#include "adt/Array1DRef.h" +#include "adt/Casts.h" +#include "adt/DefaultInitAllocatorAdaptor.h" +#include "common/ChecksumFile.h" +#include <chrono> +#include <cstdint> +#include <ctime> +#include <memory> +#include <ratio> +#include <string> +#include <string_view> +#include <tuple> +#include <type_traits> +#include <utility> +#include <vector> +#include <benchmark/benchmark.h> #ifdef HAVE_OPENMP -#include <omp.h> // for omp_get_max_threads +#include <omp.h> #endif #define HAVE_STEADY_CLOCK @@ -49,7 +50,17 @@ namespace { -struct CPUClock { +int currThreadCount; + +} // namespace + +extern "C" int RAWSPEED_READONLY rawspeed_get_number_of_processor_cores() { + return currThreadCount; +} + +namespace { + +struct CPUClock final { using rep = std::clock_t; using period = std::ratio<1, CLOCKS_PER_SEC>; using duration = std::chrono::duration<rep, period>; @@ -64,7 +75,7 @@ #if defined(HAVE_STEADY_CLOCK) template <bool HighResIsSteady = std::chrono::high_resolution_clock::is_steady> -struct ChooseSteadyClock { +struct ChooseSteadyClock final { using type = std::chrono::high_resolution_clock; }; @@ -73,7 +84,7 @@ }; #endif -struct ChooseClockType { +struct ChooseClockType final { #if defined(HAVE_STEADY_CLOCK) using type = ChooseSteadyClock<>::type; #else @@ -81,7 +92,8 @@ #endif }; -template <typename Clock, typename period = std::ratio<1, 1>> struct Timer { +template <typename Clock, typename period = std::ratio<1, 1>> +struct Timer final { using rep = double; using duration = std::chrono::duration<rep, period>; @@ -94,11 +106,9 @@ } }; -} // namespace - // Lazy cache for the referenced file's content - not actually read until // requested the first time. -struct Entry { +struct Entry final { rawspeed::ChecksumFileEntry Name; std::unique_ptr<std::vector< uint8_t, rawspeed::DefaultInitAllocatorAdaptor< @@ -116,14 +126,7 @@ } }; -static int currThreadCount; - -extern "C" int RAWSPEED_READONLY rawspeed_get_number_of_processor_cores() { - return currThreadCount; -} - -static inline void BM_RawSpeed(benchmark::State& state, Entry* entry, - int threads) { +inline void BM_RawSpeed(benchmark::State& state, Entry* entry, int threads) { currThreadCount = threads; #ifdef HAVE_PUGIXML @@ -149,7 +152,7 @@ benchmark::DoNotOptimize(raw); - pixels = raw->getUncroppedDim().area(); + pixels = rawspeed::implicit_cast<unsigned>(raw->getUncroppedDim().area()); } // These are total over all the `state.iterations()` iterations. @@ -182,7 +185,7 @@ // but i'm not sure they are interesting. } -static void addBench(Entry* entry, std::string tName, int threads) { +void addBench(Entry* entry, std::string tName, int threads) { tName += std::to_string(threads); auto* b = benchmark::RegisterBenchmark(tName, &BM_RawSpeed, entry, threads); @@ -191,16 +194,20 @@ b->MeasureProcessCPUTime(); } -int main(int argc, char** argv) { - benchmark::Initialize(&argc, argv); +} // namespace + +int main(int argc_, char** argv_) { + benchmark::Initialize(&argc_, argv_); + + auto argv = rawspeed::Array1DRef(argv_, argc_); - auto hasFlag = [argc, argv](std::string_view flag) { + auto hasFlag = [argv](std::string_view flag) { int found = 0; - for (int i = 1; i < argc; ++i) { - if (!argv[i] || argv[i] != flag) + for (int i = 1; i < argv.size(); ++i) { + if (!argv(i) || argv(i) != flag) continue; found = i; - argv[i] = nullptr; + argv(i) = nullptr; } return found; }; @@ -218,8 +225,8 @@ // Were we told to use the repo (i.e. filelist.sha1 in that directory)? int useChecksumFile = hasFlag("-r"); std::vector<Entry> Worklist; - if (useChecksumFile && useChecksumFile + 1 < argc) { - char*& checksumFileRepo = argv[useChecksumFile + 1]; + if (useChecksumFile && useChecksumFile + 1 < argv.size()) { + char*& checksumFileRepo = argv(useChecksumFile + 1); if (checksumFileRepo) { const auto readEntries = rawspeed::ReadChecksumFile(checksumFileRepo); Worklist.reserve(readEntries.size()); @@ -233,12 +240,12 @@ } // If there are normal filenames, append them. - for (int i = 1; i < argc; i++) { - if (!argv[i]) + for (int i = 1; i < argv.size(); i++) { + if (!argv(i)) continue; Entry Entry; - const char* fName = argv[i]; + const char* fName = argv(i); // These are supposed to be either absolute paths, or relative the run dir. // We don't do any beautification. Entry.Name.FullFileName = fName; diff -Nru darktable-4.4.2/src/external/rawspeed/src/utilities/rstest/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/src/utilities/rstest/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/src/utilities/rstest/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/utilities/rstest/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -23,27 +23,37 @@ CHECK_CXX_COMPILER_FLAG_AND_ENABLE_IT(-Wlarger-than=${MAX_MEANINGFUL_SIZE}) endif() - set(CMAKE_CXX_CLANG_TIDY_SAVE "${CMAKE_CXX_CLANG_TIDY}") - - unset(CMAKE_CXX_CLANG_TIDY) - CHECK_CXX_COMPILER_FLAG_AND_ENABLE_IT(-Wno-c99-extensions) CHECK_CXX_COMPILER_FLAG_AND_ENABLE_IT(-Wno-missing-variable-declarations) rawspeed_add_executable(MD5Test md5.cpp MD5Test.cpp) target_include_directories(MD5Test PRIVATE "${RAWSPEED_BINARY_DIR}/src") + target_include_directories(MD5Test PRIVATE "${RAWSPEED_SOURCE_DIR}/src/librawspeed") target_link_libraries(MD5Test gtest_main) - rawspeed_add_test(NAME utilities/rstest/md5 COMMAND MD5Test --gtest_output=xml:${UNITTEST_REPORT_PATH}) + rawspeed_add_test(NAME utilities/rstest/md5 COMMAND MD5Test) + set_tests_properties(utilities/rstest/md5 PROPERTIES LABELS "unittest") add_dependencies(tests MD5Test) rawspeed_add_test(NAME utilities/rstest COMMAND rstest WORKING_DIRECTORY "$<TARGET_PROPERTY:rawspeed_get_number_of_processor_cores,BINARY_DIR>") + set_tests_properties(utilities/rstest PROPERTIES LABELS "dummy") endif() if(BUILD_BENCHMARKING) rawspeed_add_executable(MD5Benchmark md5.cpp MD5Benchmark.cpp) - target_include_directories(MD5Benchmark PRIVATE "${RAWSPEED_BINARY_DIR}/src") - target_link_libraries(MD5Benchmark benchmark) - rawspeed_add_test(NAME benchmarks/rstest/MD5Benchmark COMMAND MD5Benchmark --help) + target_link_libraries(MD5Benchmark rawspeed_bench) + + rawspeed_add_test(NAME benchmarks/rstest/MD5Benchmark-Dummy COMMAND MD5Benchmark --help) + set_tests_properties(benchmarks/rstest/MD5Benchmark-Dummy PROPERTIES LABELS "benchmark;dummy") + if(WIN32) + set_tests_properties(benchmarks/rstest/MD5Benchmark-Dummy PROPERTIES ENVIRONMENT_MODIFICATION "PATH=path_list_prepend:$<TARGET_FILE_DIR:rawspeed_bench>") + endif() + + rawspeed_add_test(NAME benchmarks/rstest/MD5Benchmark COMMAND MD5Benchmark --benchmark_min_time=1x) + set_tests_properties(benchmarks/rstest/MD5Benchmark PROPERTIES LABELS "benchmark") + set_tests_properties(benchmarks/rstest/MD5Benchmark PROPERTIES ENVIRONMENT "RAWSPEED_BENCHMARK_DRYRUN=1") + if(WIN32) + set_tests_properties(benchmarks/rstest/MD5Benchmark PROPERTIES ENVIRONMENT_MODIFICATION "PATH=path_list_prepend:$<TARGET_FILE_DIR:rawspeed_bench>") + endif() add_dependencies(benchmarks MD5Benchmark) endif() diff -Nru darktable-4.4.2/src/external/rawspeed/src/utilities/rstest/MD5Benchmark.cpp darktable-4.6.1/src/external/rawspeed/src/utilities/rstest/MD5Benchmark.cpp --- darktable-4.4.2/src/external/rawspeed/src/utilities/rstest/MD5Benchmark.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/utilities/rstest/MD5Benchmark.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,36 +18,60 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "md5.h" // for md5_hash, md5_state -#include <cstdint> // for uint8_t -#include <cstdlib> // for free, malloc, size_t -#include <memory> // for unique_ptr -#include <benchmark/benchmark.h> // for State, Benchmark, State::StateIterator - -static inline void BM_MD5(benchmark::State& state) { - const size_t bufsize = state.range(0) * sizeof(char); - std::unique_ptr<char, decltype(&free)> buf((char*)malloc(bufsize), &free); +#include "md5.h" +#include "adt/Casts.h" +#include "bench/Common.h" +#include <cstdint> +#include <cstdlib> +#include <vector> +#include <benchmark/benchmark.h> + +namespace { + +void BM_MD5(benchmark::State& state) { + // Create a zero-initialized data. Content does not matter for our purpose. + std::vector<uint8_t> buf(rawspeed::implicit_cast<size_t>(state.range(0)), + uint8_t(0)); for (auto _ : state) { - rawspeed::md5::md5_state hash; - rawspeed::md5::md5_hash((uint8_t*)buf.get(), bufsize, &hash); + auto hash = rawspeed::md5::md5_hash(buf.data(), buf.size()); + benchmark::DoNotOptimize(hash); } - state.SetComplexityN(state.range(0)); - state.SetItemsProcessed(state.complexity_length_n() * state.iterations()); - state.SetBytesProcessed(1UL * sizeof(char) * state.items_processed()); + state.SetComplexityN(buf.size()); + state.counters.insert({ + {"Throughput", + benchmark::Counter(sizeof(uint8_t) * state.complexity_length_n(), + benchmark::Counter::Flags::kIsIterationInvariantRate, + benchmark::Counter::kIs1024)}, + {"Latency", + benchmark::Counter(sizeof(uint8_t) * state.complexity_length_n(), + benchmark::Counter::Flags::kIsIterationInvariantRate | + benchmark::Counter::Flags::kInvert, + benchmark::Counter::kIs1024)}, + }); } -static inline void CustomArguments(benchmark::internal::Benchmark* b) { - b->RangeMultiplier(2); -#if 1 - b->Arg(256 << 20); -#else - b->Range(1, 1024 << 20)->Complexity(benchmark::oN); -#endif +void CustomArguments(benchmark::internal::Benchmark* b) { b->Unit(benchmark::kMillisecond); + + static constexpr int L2dByteSize = 512U * (1U << 10U); + static constexpr int MaxBytesOptimal = 25 * 1000 * 1000 * sizeof(uint16_t); + + if (benchmarkDryRun()) { + b->Arg(L2dByteSize); + return; + } + + b->RangeMultiplier(2); + if constexpr ((true)) + b->Arg(MaxBytesOptimal); + else + b->Range(1, 2048UL << 20)->Complexity(benchmark::oN); } +} // namespace + BENCHMARK(BM_MD5)->Apply(CustomArguments); BENCHMARK_MAIN(); diff -Nru darktable-4.4.2/src/external/rawspeed/src/utilities/rstest/MD5Test.cpp darktable-4.6.1/src/external/rawspeed/src/utilities/rstest/MD5Test.cpp --- darktable-4.4.2/src/external/rawspeed/src/utilities/rstest/MD5Test.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/utilities/rstest/MD5Test.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -27,34 +27,42 @@ * Software. */ -#include "md5.h" // for md5_state, md5_hash -#include <array> // for array -#include <cstdint> // for UINT32_C, uint8_t -#include <cstring> // for strlen -#include <string> // for allocator, basic_string -#include <tuple> // for tie, tuple -#include <utility> // for pair -#include <gtest/gtest.h> // for ParamIteratorInterface, ParamGeneratorInter... +#include "md5.h" +#include "adt/Casts.h" +#include <array> +#include <cstdint> +#include <cstring> +#include <string_view> +#include <tuple> +#include <utility> +#include <gtest/gtest.h> -using MD5Testcase = std::pair<rawspeed::md5::md5_state, const uint8_t*>; +using MD5Testcase = + std::pair<rawspeed::md5::MD5Hasher::state_type, const uint8_t*>; class MD5Test : public ::testing::TestWithParam<MD5Testcase> { + virtual void anchor() const; + public: MD5Test() = default; void SetUp() final { std::tie(answer, message) = GetParam(); } - rawspeed::md5::md5_state answer; + rawspeed::md5::MD5Hasher::state_type answer; const uint8_t* message = nullptr; }; -#define TESTCASE(a, b, c, d, msg) \ - (MD5Testcase) { \ - {UINT32_C(a), UINT32_C(b), UINT32_C(c), UINT32_C(d)}, \ - (const uint8_t*)(msg) \ - } +void MD5Test::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + +constexpr auto TESTCASE = [](uint32_t a, uint32_t b, uint32_t c, uint32_t d, + const char* msg) -> MD5Testcase { + return {{a, b, c, d}, reinterpret_cast<const uint8_t*>(msg)}; +}; // Note: The MD5 standard specifies that uint32_t are serialized to/from bytes // in little endian -static const std::array<MD5Testcase, 7> testCases = { +static const std::array<MD5Testcase, 136> testCases = { TESTCASE(0xD98C1DD4, 0x04B2008F, 0x980980E9, 0x7E42F8EC, ""), TESTCASE(0xB975C10C, 0xA8B6F1C0, 0xE299C331, 0x61267769, "a"), TESTCASE(0x98500190, 0xB04FD23C, 0x7D3F96D6, 0x727FE128, "abc"), @@ -66,14 +74,348 @@ TESTCASE(0xA2F4ED57, 0x55C9E32B, 0x2EDA49AC, 0x7AB60721, "12345678901234567890123456789012345678901234567890123456789012345" "678901234567890"), + TESTCASE(0xD98C1DD4, 0x04B2008F, 0x980980E9, 0x7E42F8EC, ""), + TESTCASE(0xD4D3E1E1, 0x7E127305, 0x0C48E09E, 0xD68312AF, "R"), + TESTCASE(0xF7E9FE75, 0xFE65DE95, 0x95A48741, 0x4A595107, "bF"), + TESTCASE(0xD3B8EFDE, 0xEBD5F531, 0xC2D0C6ED, 0x09DDF0BD, "ktU"), + TESTCASE(0xDA3BF4F7, 0xEB74322C, 0x02EBAF51, 0x9B68AC18, "G4sK"), + TESTCASE(0xF220A8F7, 0x00AC8633, 0x5A90DA7F, 0x206606FF, "GzgRg"), + TESTCASE(0x7A4EF06A, 0x84C285C7, 0x43832E73, 0xA8C84581, "mKMhh6"), + TESTCASE(0xF7762493, 0x9AE6C1CE, 0x09E01F5A, 0x9CB777F7, "09hHanV"), + TESTCASE(0xE4C7E1E5, 0xEB978CBD, 0xB773F1C6, 0x3496C42E, "wdKoKG7I"), + TESTCASE(0xFB802A54, 0xCACFAAA2, 0x491FF9B7, 0xACF45BD0, "oFoWcnsWD"), + TESTCASE(0xC00BD82E, 0x984BF1D4, 0x11026E97, 0x05AC18A6, "HZ10Bk8H5K"), + TESTCASE(0xAD9EF3A6, 0x5AD42D41, 0xF3CF3CAB, 0x9047DD41, "VL3aZfIOcpk"), + TESTCASE(0xD2935D44, 0x4F433935, 0xB1ACF14E, 0x9C627042, "smPeJPYeSmha"), + TESTCASE(0xF8C1AA11, 0x46FDCE29, 0x6B80F6F7, 0x977B1692, "tv00GjvVbY2Og"), + TESTCASE(0xA9A80D87, 0x938AD6B5, 0x45796A35, 0x9F533A6E, "Q8U2K4BCnCV11a"), + TESTCASE(0xBFA8E8CF, 0x8113E1A6, 0x5FF6886A, 0xCF364304, "6aie78iUwSnk73P"), + TESTCASE(0x07A0DCC7, 0x6803F0D2, 0x6F101FCD, 0xD1AADC57, + "XuIrsMeJvzsCO7zB"), + TESTCASE(0x57E771F0, 0xCCF3BFA9, 0x348CA8DA, 0xD701ED1C, + "7i7E7MfpNBVrlSIfF"), + TESTCASE(0x8FDB84A2, 0xAE2F1808, 0x411CC797, 0x2B04779F, + "c34xKvGQIIWCZNhAj8"), + TESTCASE(0xEE3F232D, 0x22EA3BBE, 0xE106DC07, 0x47C41C8F, + "tF6FU0hqDcQ2YKyhYrG"), + TESTCASE(0x8F83091A, 0xF9E3E1E7, 0xF5190C94, 0xC1207239, + "8WeBcM6HvwNNiNuBG1pZ"), + TESTCASE(0x256C3C27, 0x8EA4A4D3, 0xC7D18A81, 0xF5DED58C, + "HgYf7DBEBefrsRcIed5hP"), + TESTCASE(0xEC405417, 0x4A3E02A1, 0x01523576, 0xFFF7BB5A, + "PDvff6QNerDHxjAn3W7I76"), + TESTCASE(0x16D58F31, 0xA56393EE, 0x14D86BD3, 0xC22EAD07, + "SGJQvtWfqPhpZQjehTHTH91"), + TESTCASE(0xEFED9C77, 0xA94F5B69, 0x391FF963, 0xD20BA203, + "H3yAcpmZrAQcbzbt6EyoI3aX"), + TESTCASE(0x221B0B77, 0xD1DD32BD, 0x2CE8C75C, 0x5AA8F276, + "OaQJ9pLKK1LR7UJlslMSpCclP"), + TESTCASE(0x69EE970C, 0xE5A3AFDE, 0xDED4AB82, 0xD37EC9F4, + "gG7Ug4ukuKUeAIrL4TXwuSLrit"), + TESTCASE(0x63EDAA8D, 0x50F9DE56, 0x40733E0E, 0x8954F890, + "k3ejOY5hbDaptsZ29HM2wNe1Ax0"), + TESTCASE(0x66ED7D7D, 0x5B05CD3F, 0x5325ECEA, 0x3D8D4A81, + "fW1Xk48tbXTelPbhfqcVhZRQ8Tyf"), + TESTCASE(0x0EB3C186, 0x7E417CF3, 0x3C169DC0, 0x0E650915, + "WmZzClNzZRfLWlEjyjJPgJ6QAMmBN"), + TESTCASE(0x32E15253, 0x915D0B52, 0x609DA449, 0xFD26B521, + "QqzlDhECVECa00qJ6cYy7ce1NARfw2"), + TESTCASE(0x4DDC9302, 0xF831D885, 0x9DC5E249, 0xF988B99B, + "y6Gfm3gpZIAvbLUbBi9Z5cBbe9NZSRI"), + TESTCASE(0xD05B2026, 0xF58667B3, 0x90986570, 0xE06A1235, + "WkIMzKROmGtzZTdAxVuKbPuEhH9H9Tr3"), + TESTCASE(0xC2D5EE46, 0xBA74921F, 0xE6807A7D, 0xE8C57F7C, + "XUmfmOc1pA0wxzdQxPZaxz1adAYcP4xVy"), + TESTCASE(0xD693E9E0, 0x3AB2CB26, 0x9C4996E0, 0x7A005297, + "bpXjD19JKq4hR7uLr5x6qtbaOdKVAV3q8S"), + TESTCASE(0x0446A62E, 0xB1FF2DF6, 0xF0C1DBC7, 0x7F6FC01B, + "EuSMQEuXbesPle6PWswanFCkeuoNEbnkgMA"), + TESTCASE(0x52324660, 0x455CF558, 0x2F321C88, 0x5B95B7BB, + "ua2h4CTDNpcEHtMKawWzQ5SmKFcYv6IHU96P"), + TESTCASE(0xBDDE2BB7, 0x6EB74CB6, 0x131FA88D, 0xEA91441A, + "bzxbD5NlFSf2204aJiy33JAeVu4zgS6ppBhoz"), + TESTCASE(0xAAB93F93, 0x9B7935C7, 0x02230743, 0x2F4ED13F, + "RCYdfuBLeEMDnpJ9NH33a1m9bglIuInD34bLUv"), + TESTCASE(0x9BC5DBF1, 0xEAFEE5D4, 0x6F226D42, 0x15266383, + "iEQiPIf5jaNiwl7bWsChqodEZXC5iCeFXHLpOZN"), + TESTCASE(0x4B9D810A, 0x4864FF96, 0x591C7E8D, 0xAB4D9D2D, + "ZLabuZwlTSmK4wtaZX4vJMQn9VynV8xAu30QWn47"), + TESTCASE(0xF9AE9573, 0x86FA0C27, 0x85F009BE, 0x50C1920C, + "NNLGzwv3EduC2e0cS8xjl4O8NlpTbSTtzzVvPqhMK"), + TESTCASE(0x219906C0, 0x4E554E85, 0x0D508CA6, 0x59BAD101, + "QXYtQ9Q8ctGkzCiVQqV6utNtu71eP9Cfj8PhbC8Qai"), + TESTCASE(0x2BD0B6DF, 0xAA767F1A, 0xB5D4F541, 0xB602D797, + "bfAFrcQqX4WXGhbig45yIJHLvXHrbTFVkVOuaDBq5q9"), + TESTCASE(0x4C12AE5A, 0xB7EB74C6, 0xED10F197, 0x7D8E427C, + "syQGG0Pp3dszmeEIP0CfLMoiVyUZ0ke0vAhVwKCHbrJH"), + TESTCASE(0x8176D8B8, 0xC8ADB5F1, 0x3B11D959, 0x4994FE13, + "SiTqcJnZFr2reFXXxuypBmXPI0CSMKLchcFkSvM166E4l"), + TESTCASE(0x1874AFE9, 0xDF6B8E6F, 0x74064507, 0x6BDB1732, + "NY8YtaQvFjsCsezTkMVZOdZP7hSk3rRNFWw29yAKSD1WWk"), + TESTCASE(0xCD4CA77F, 0xA19FA88F, 0x141AFF83, 0x4C5B2FA3, + "KxPsX271bXpbgkPh4pPIQ3VvBjwNYaTUDlameHHsjmrKIDb"), + TESTCASE(0x5D77A74C, 0x00CEC5C0, 0x51512274, 0xBC24F5A4, + "DP60v2RZUJAvlftKMC8xq9keGkJAzBJaqyLJWQObpo2QGG2J"), + TESTCASE(0x8693721C, 0x40EAE64E, 0x8F2CBE7D, 0xD8BA83E1, + "IFvjiRKQXaUaAqh5RGDtCU14hr2Lu6m2H87WhxGEqvlSFNIK0"), + TESTCASE(0xB508BBD0, 0x0513E12A, 0xA2EC7E89, 0x00F9F917, + "OOHZTgWzjsVJeqEKIfGnnaCOqgaung6seo1rdTAPm0TQ0Q2HX0"), + TESTCASE(0x8CC37C94, 0xBBC835D9, 0x78C8C055, 0x79F47254, + "zHUu6VkflLwQF1ov4cMwaDOdcsQDOiMaKfRPBqmCCMkSXuhwkQV"), + TESTCASE(0x16B7B4C0, 0xD9FC2715, 0xC25EDDF6, 0x589C8A7C, + "eagIxzzi1piiGCIt04uYaov5t1UtXMf3tvxEgrGF60h08g05S1ag"), + TESTCASE(0xDCB6C216, 0x93C3FCB9, 0xE271A2B2, 0xD36EBF69, + "UldA1RYiT2CZcxSVjFNUfbTFdi9gtdPux8QxNnzuGttz1thb9DJ4t"), + TESTCASE(0xBA8107E5, 0x2FE4503A, 0x816F0C5B, 0x9C3CD3BB, + "dyiSPmf1uKe9MvOwRfpoNKHuInBcjmYcNx9zFrqaEikQa8rXx5uY6T"), + TESTCASE(0x7E807E83, 0x55C9682C, 0xEDDDC634, 0x9E22A816, + "tM3H5bdoBxjq6bN7G1Yv8qlVCZY5gurstfjcUEu9Z6aiD3Mz7aBa9Pm"), + TESTCASE(0x64008BFF, 0x9D251584, 0x2481666B, 0xEB105BED, + "JYkP3Tng92YbCLTX8yCxKVuHqUV4IAh5jfPqKlUXLJVuc6F8FqxUH2pj"), + TESTCASE(0x8F31C9BD, 0x89285E1F, 0x0C0DC570, 0x0CFE8DB3, + "lrcQ3a7c1J8nHfirGEQaStpVAWUwSVvCJUONn7pA7mCaIkrh6qw4TQXyA"), + TESTCASE(0xAFD350A9, 0x7E2BEE06, 0x1515D360, 0xDC3D7947, + "g3CPerz1XRuyqgARRo18G5MJi6oYotzmSQJdNkixO0534pyMAMGvcbnlJw"), + TESTCASE(0xC125A2EF, 0x61BF2AF1, 0x18D5A548, 0x937D271B, + "sxXQUcEGd4Ut4NDfRwu4RTN9Ct6NDXfeNi8kHCzQrmV5Vhllbo1jjUC3KVP"), + TESTCASE(0x68714CE0, 0xD857EAE8, 0xD1C52E96, 0x6C4A9E81, + "RLD5vWm8bZZef0sD9rLshDXzjUpiylwjaKzObe2tIOLgwxcjdA348x3Lq3gB"), + TESTCASE(0x6A0077D5, 0x3A220075, 0xE3E0F501, 0x81B3A16E, + "9mnykrPN9l161zuEBk02Db4Fu008g2lmDguhsQdB7GJgV0yuszXuL8TcUdheJ"), + TESTCASE(0xA8E0D206, 0xBFAB7ECD, 0x14C07C77, 0x3BFC4091, + "EePNTxKilALgnV1jaoxbQtLTQ8yqYq4q7jLi1auDDkVIBSrtTzyYN7HJAh81sO"), + TESTCASE(0x78901555, 0x36C780E7, 0xF00FC35E, 0xCADB81BF, + "xPFRANqGeIWcKdbFk98b06W3QDEUHeFqjdFrwc6KqEfGVuEim6UIbES87Mb1Eus"), + TESTCASE( + 0x43E65A3B, 0xC69401A8, 0x15EFB9E4, 0x931E5B36, + "zUdm1DGV8cp7E1sr2HUzOFKao16iTxb3DPho8oTHBCug7QDKWN3uUlIRBDzzDRKD"), + TESTCASE( + 0x52510C2B, 0x06EA5D9F, 0xB2072F34, 0x56835D4E, + "kEUNEh88JySVSgm48ID1XnRVLu6d4K4b3fuF7NhjrsTDruFN5Zx04sOr73LHbhvLg"), + TESTCASE( + 0x21DF417E, 0x8BA5DD3F, 0x8F2DCCF6, 0x4CBB308C, + "OHjPaKHrT4Jmsmwrg5Z7fjvzcFhmXyOyIE1ELUfhXFgiznD73NZRDBC5f4cii4r0mO"), + TESTCASE( + 0xFCF7467C, 0x3AFB8C56, 0xF5638529, 0x454556EC, + "GlZvk1oCc1x5olxQcqNyMxfWuxbL7aKTCBCjtuUPSrtagKQzh7C7varmQZLKandkS6r"), + TESTCASE( + 0xEA80A772, 0x1F4AEA7B, 0x6C47F538, 0x8E96C5DA, + "4KoQZfwddrkj3LuPsOj6Nc6WsRABNZdx0kTb6uI8Ef4b3irKzA3IBRuiGSdsm3dRPj97"), + TESTCASE(0x3266F48C, 0x27A1853D, 0x85249A20, 0x0F471863, + "unPVi834yoLbowrudh0XZlOidLAP6ZXR0h5Ck3d3K8qsdubziUJo9zZLO4bykyW6T" + "BzNI"), + TESTCASE(0x2E7CBD90, 0x340E7CA4, 0x3F6750A2, 0x2EA95E67, + "aL0dcyd0I5GWHItgOihrBSBMQWwgT8KT65YqeweIUnAeRvYeGDLlsOeplAYIraEKU" + "NFm6k"), + TESTCASE(0x41DF3045, 0x6D592260, 0x91717E45, 0x1921EBAB, + "zB65YAy5ERxmYaqzm9u9mDJbrtZ9n9IVgRdZsHUT2c9hXPA6KSiOZEq527Ib3ABK7" + "ncccel"), + TESTCASE(0xFB31A55E, 0xC3A92DD7, 0x9311318C, 0x05589E7F, + "XNG1jZVVraAlyhh4IoTuOyF6fHGlYvmkLuAa9H8x7hukzYu0Oh7Jv9MiKzSlmXWHA" + "5W7Ka1G"), + TESTCASE(0xE8C4A831, 0x2CD1DD0F, 0x63C254AA, 0x699B42EA, + "dJHks7hUjWFEg8akDppoXwbhBb1JkDDP8PK75kQkq47K0mOvUCz8e0GHxWsGTSNxt" + "22CgZYOw"), + TESTCASE(0x7546B2CC, 0x824BCD81, 0x1D51665A, 0x382514FC, + "pp2Y85Fo02fgDEIjsFSbZGMnc702uCcyNxcremHaNDIgVYGYZP60E1T0DrYuMrbMM" + "9LInMnbRv"), + TESTCASE(0x553DF40F, 0x7E41B398, 0x718FE463, 0xE2D398BC, + "tuzYkOa7dz4IWFtFqQcKsNKD6oHqxdRtX6puCxR1uwcVevP6nr6l9xcXLbSPSnP00" + "ZN21Yerq1J"), + TESTCASE(0x4FF3FF92, 0x5625E15A, 0xA384D63F, 0x828C730E, + "OTbnS8fo6i4oDt7raIigeP5MBwUYDeyh2Rz9OOWkH64EXRpvwl0Z0AInubtMWnNct" + "d5zQPhEohBD"), + TESTCASE(0xF065F35D, 0x818C3616, 0x5921FD19, 0x3E663898, + "oyegc0dV1RKUU9w6PpXFnkX6J6byJSS0O0BuQ8MWdqZQ6lIcJpU7magAiE17QkvZU" + "nvJWEoY3GC5z"), + TESTCASE(0x9028DBAE, 0x9A3C763E, 0xE1B1A96D, 0xEA342827, + "M5ScDjt8Gv0F8eQvRZU8prp53CaI9aLXCT5v2Q6CSd2sMbVkfExByZDozg6BmNZKV" + "KtoqfPbdGpPu1"), + TESTCASE(0x30D8B814, 0xF12B78C4, 0x527E1015, 0x8C5F0FE5, + "u1ScuAVgLqxHyV7k2icxLgEGst0HkHa5l7PFi6OazdPn2DUMegC7mx1GUSdZ91k99" + "M29u1kLGDElT66"), + TESTCASE(0x3111C056, 0x53CBBC38, 0x1B2DD88C, 0x39CB497A, + "0DrAwYvwNTG4j5LCrtS5aPG9OIz49GGgkeb5796m2tNTyxuDQekLDIlyGCEzI4XIc" + "mtRPIXTirdIk7XJ"), + TESTCASE(0xACDCE674, 0x4C8C4C3B, 0x405E8723, 0x8B2D5B5E, + "ef9ToIGJHX556iQqXtfFELTU9Rm3TiBP3aOUhTpNUa7nqAZ8oJ95gU9NTuODDy1SK" + "4txXuIjHxprEZJEB"), + TESTCASE(0xCB6AB927, 0x436C6592, 0xE21BF191, 0xF3AA9DC5, + "Qr78u7s2TWEVK8hKbf4JxasPMbTdu19tii8hejzGw3JdpjpTVJ8OHIvKxRhEMMzL0" + "Uj9DovLCJpEujNfeV"), + TESTCASE(0x9E62FED9, 0x072D0DB4, 0xE07F5A34, 0x5F3A5924, + "cPor11tvb7JwrEJ0eQeU0UBMaWdB1LRZP80Qowq39XyoKgsMOHGfhheGnznYRDkUR" + "2HDOHFywJYrBTsn7Xb"), + TESTCASE(0x09517726, 0xCEF57592, 0xA390727F, 0xF8FA1CB1, + "olSeNrAmXDa9xsrcCmZcEaDaQ81VeJnzSiVQSpYYk7DpP1XcHJX74G9Jz7RPunxVB" + "6um5LdOnXtyIGX2Z0o2"), + TESTCASE(0xAB445B8D, 0xF0D91E4C, 0x27793E99, 0x3A304D75, + "R8IcKd8Gf4rCqOZ4LJZvl5OjO20wGX7AGMYkQNG5Rma3phEjuCujSbuOsTZDeJsmu" + "Md6WEqqDdsLbOs3ogrxM"), + TESTCASE(0x1D08C15C, 0x57ADF5E0, 0xE2520AF4, 0xF051427F, + "Dm5AKYAYLpPcN056HgldMywoSeZZp8lYQnQ6JIn5oSCZuk32TtaPZc2mWgID7k34b" + "1zKxpK42lSJk888XT7JhF"), + TESTCASE(0x6261CB3F, 0x05F6B903, 0x6E6993D4, 0x509E73EF, + "NffucZeh6W14sXDUKydGQE7z4RRxN1PY7Mid8sVTtrRjvqAr9grz3IE5zRq0OCmWn" + "19JOEWi7drQOOLJoxpGnX4"), + TESTCASE(0xCD6D68B6, 0x7E4C33CE, 0xA717F0FF, 0xAFB05E9D, + "IWQeOuaNssgljfb5DtDAxZV1jRYPVwSYZAKXMDs2jaVF9xuP8pxF5neZUJRyI3uVW" + "K8G9nWAaY64Du2K0mO2g8cO"), + TESTCASE(0xB23C49C0, 0xF98FC3C0, 0xF0748BED, 0x91D3644D, + "k1qlRHwawVcff3cgGGHu4AkWGYOkmBZxkVUZEFo8S9BJEuEonSOOTrfx34n6UCAxG" + "5cWP3njT49ba4kyjdX4FR58g"), + TESTCASE(0x9B8D8628, 0xC74A559B, 0x9F4BC0E9, 0xB96C25F2, + "dqRql8HmoAuow4hoIiOEylwc8pakMAO0pghJR2d3thpsUkO9KETwORS8KQ2SBcdi9" + "4mE6khZo30kuoiDiYcTevwU7u"), + TESTCASE(0x163AD044, 0x73030F3D, 0xE045EE23, 0xAE4491AD, + "MmE8rLdBPAYlKx4dtTddDR4Yp8OBYUQAJlfeLtqKKpTyNXY5o4TtYIyhdGMu9poXB" + "xIHaxVJ7Nxbs8LFC8qvf4O8TFx"), + TESTCASE(0x2E30E66A, 0xCF57D099, 0x9F19EBC8, 0xF2EF1999, + "RW1ggoOeADsf5kW7u9ifGyBqKYe96QTvKMgN5oehLCR57beGr9qCDwMI8LzRxtjB3" + "wcrOsrbP20lCjg97VEDbeTHyCsO"), + TESTCASE(0xDEE7C62E, 0x989ADB3E, 0x16F2624E, 0x9C9B0B68, + "8kdPTIhD0XWeafN7BuuzRK0TtooVdz3gUBTA0iGMvQq1SnookonDrzBTyXovab7QV" + "sMpV1Bx47NhxaGrgh9KwHNSAoUsG"), + TESTCASE(0xAC1A01AF, 0x122D1A1B, 0x1A4256EF, 0x3FAAA185, + "pMS3Jr4qy0fui2pcQNHmkc5bS0TmF3qqEU1pyB7opVbiByDxiHYcishM3nU1LB6Ad" + "m84epTHVDGBT2XGPQ29es7j1Rv66a"), + TESTCASE(0xC85EA519, 0x49391103, 0x5FC68CEC, 0x489C1FA6, + "d2IslAKdtlHJ6T8ba4pZ4WXvMhGEKkc3IhGobhIgnj1G6bad0cb4wdmMoVarJv3r7" + "cY2dDiUPukunV5jhr6F1AKIZKmHauQ"), + TESTCASE(0xE4345B91, 0xD94D3B24, 0xC6E6D71C, 0xB09EF1C9, + "lwzctPypbPFBsaPK5nKX8dy1OFLGgpTH75aIQtHpul9O2A7uerAWGHPi5pgwbE5up" + "OeqKkHyRpeN4bTUavZoQhsLdljGVa6N"), + TESTCASE(0x1E40EF0B, 0xBF60651E, 0x0F1DB986, 0xBCD79EF1, + "OdkVU5ZZ1xDS9zyMhFTg8CCPasc6ZE9fUNjYli11SYI0gOPwJUQA6IOuRrXfVg3ww" + "dOXpSAexfCsx54nySrdQh18voxRKdecH"), + TESTCASE(0xA6AE3EB1, 0x61DC65CA, 0x289D77E8, 0x0CC4C33D, + "TAjlabpvpCE9dBU8ixmSoQtgP5odIXEcAE8DTZ5fNTVZUOexlHh1TZy35CoTEOX9i" + "YohnfscDcoODoJta9wk6OCvoq1hbz5pGN"), + TESTCASE(0x63A86A23, 0x42B165DB, 0xB9EFCA94, 0x4973DF7F, + "HoEjAbfScO7kbjvxTHKpmmzaRvqN7ynO147VNeWqf43Bit3ZVtRoLEoBMPC13iX5J" + "P5kvvgy6KAmmkeKi4zdhMMOKjGn07sQsXP"), + TESTCASE(0xBBAA69DC, 0x02A6A3F6, 0x52787548, 0xA0291724, + "0iVg1bQQM8HqQNXGqWPF8FF04ykspd6UNUJknxCz4nIH9X7CQiXDea7FRJ0JUO5OZ" + "JKENLEL6xQ3ku5y8KBBTNIyExxRtfn3SWOU"), + TESTCASE(0xF62F853C, 0x965F99A1, 0x9D3954FA, 0x08ECF4A7, + "47zklt1T72Re9rJ1WJFDWyup6XuXwNgk5Hbq6Nh56TgTzbVErbkaMJ5ekGPwWi7rK" + "Tx2mqlzKwmYwvIyp31IBQYOLMaOQnfhiGtjH"), + TESTCASE(0xBC8A8370, 0x5FC2FC71, 0x3469DF9A, 0x7CDD5BBE, + "rp5Bu5726BIy6z0Y9E4CSyG8252bdsm8PkmRHIqI4P3IYJ3I4k0zqzGIcYsvYmjLq" + "mev5ffuqKO408iuWauZLdzPwOoLL4Ao5FPbxq"), + TESTCASE(0xD561F576, 0x22E43A21, 0x23F036A4, 0x7B056B12, + "HxslyleFqKgThXoMoV7A1z6xqNK3VhXWI8fI9ESCejTtWn85HwFQBx1zIxRwEdvjx" + "G4Nx64EWbYkTH0ltItyQnqpi5szfrHE0YEUhY7"), + TESTCASE(0x38C3848E, 0x09234B8E, 0x73446778, 0xDD335D60, + "rk4m1SfYrCcWoPSYrSnzTLuuIEmXSX0LcoSrZdoELRVffSBXAaJtUZyYYLcTiUfQP" + "4WudruaTD4Q6r5plZHdpCvJS3gwqBR8H7J7VGCm"), + TESTCASE(0xE7237E08, 0x6F4F7B17, 0xED5B17B5, 0x0C7FAEB7, + "g6AzU2WAktArsucbL6MWIU47tgsAhdxDoc3KmrscpW4byqeUYYGxXlCOvv2rEubDi" + "DFHyHmXvQBFe1822HOMg4vVf9G9LmQui4IpriTMr"), + TESTCASE(0x72961C58, 0x5C2BC42B, 0x8C65D6CE, 0xB0A0C872, + "ivskCAVSoHz5RBFWun5jmVnrwxgRuS7ZxLKnhx9qF6c9Qu7Tz4rYe5NDCj45Cyuyz" + "VJQdCccN7wJ9knVhvnITJ5N9KxbEgnB2BBsUkJOYz"), + TESTCASE(0xE769C6F1, 0x6A2A7780, 0x867C37B7, 0xB5B56634, + "00Qr84agVMTMi4G1VRtQrunuAzGqY09D30J36ANKA0bxewAEKH9jCeMzEElhvrXIC" + "dwr86fhV3UwmOnhsPvWaFzmjz9Fb5lj0tImDlFO6ly"), + TESTCASE(0x225501D1, 0x4D01487F, 0x4D4E0A9E, 0x50CC7419, + "UnGiz3mseeYogPocAXdWGHdk12xA26jhSTFu4TA6Upao1bfqGD4nz7FnH5WQnIyed" + "EHXTlDKNWirEPw1fARDhXSgQQtnD59CdDPCjUUomwel"), + TESTCASE(0xEC36A8DD, 0xFC75F8E0, 0x7B6B82D2, 0xD4D18A92, + "UKXKybnTExXhAVox22AAd03iuLepY5tLg1pBjPzmRj3SzuBjpU4l1epC2NGjHmbAP" + "HYqKNEqoFKKVmYeNRpZ7R8A3SSc1G7p9iLgiQvhexCeD"), + TESTCASE(0x9F1AD7F3, 0xC52B1DF3, 0x5CFB093B, 0x2B227175, + "HYynEAw1WruJMcHcchwe6e0iz2wdWRFKROmfnkAAfCfiN0KIEMspwrS2cPTeOJief" + "vl4aX8qDegCurOWjXoWhXRLYdp8Btnrx8M4IId7uCyewx"), + TESTCASE(0x6114646D, 0x4D838664, 0x3D080CDB, 0xC9660A9F, + "OwxG4rMTtqmA6QWwAn29V3MJqMYICqahNqkaSuyVUpMRFjjPeQ6NX9HVOS8EomWtD" + "q3DmNrVnFAdLV1eu5JLGpJP3RJxieHlQ2SauadNhKGawna"), + TESTCASE(0x5AB04CD3, 0x1C14C840, 0xC8EF162E, 0x8C23B161, + "yrN96Qxdq3pgHmnDIhWNdykCnlx1biFWaPbyNbadeS7kQN05SLwM1PhdlGHrCzfDi" + "KusCIdZaFJoo6vSHPMlUag8EOsAtGKAXySgaEIH2xgAuZ6N"), + TESTCASE(0x6A113E7E, 0x5D57B1A1, 0xAFDFF1F8, 0x78EB36E7, + "BNBn1gd9xsz8RcMeAXPstzQGcJv6DeJNYVdIXb1SyCm6i3qGeuwchr94k1KRERqIY" + "i7ZvroGylntecFjunhwAUL6lZiXPKCDAMtB9wwnwQcUeennT"), + TESTCASE(0xEBCE9D9B, 0x42725BB5, 0xB4835A6B, 0xCB358FD7, + "nqmrFzi1R1dVcVz7DiJkfwjVovDH0gmD7Eq2XDURshzw3Wdf53x7BnZAGzKmdqHUC" + "ntW5aiIUlSUkny6UamI4KY0pkx672kzzzhvpr7Ob2vDL4SriP"), + TESTCASE(0xB5015C40, 0xC65AA411, 0xAA2178E0, 0x6C056DE1, + "l2UdZG1zblzvXDRjyFuepYdHlvJC5sXAUQPuqQEKupoxRzpd3bjz2PqLw8TVlHEeS" + "j7lOQGf3nSGE1KRKJcMc0AZwsmO6a8kdKyzaXIdGjWAMwk08tG"), + TESTCASE(0x85BABA71, 0x34007647, 0x2BF1307E, 0x30796A33, + "1hJkDIRoBuk9VMsfRzDTmYBHthT88RGb9j53kQx1N4zotBbtgq3aA5zRjH5aBwNyW" + "j7hkLbINXvQ8a5A579ua6r00rgAItpClnUvBl5PWGjvEjk5fuPK"), + TESTCASE(0xA8BE39D7, 0x29E4E51E, 0x091908EA, 0xDD7DBC64, + "qnPiopeaePsrhcI2FiUuxUOlCGeHQ7NpdwTvdjDjpxAT9DgXwW7pKCS0ofuKU0utS" + "ARBLhAAt0gubjdMGf8Lb8wbByVuP4VpFYrxtPgZ0VWNLlSm8BVqe"), + TESTCASE(0xDA6A36DC, 0x8018B902, 0xCCB4ADF7, 0xA43F8ECB, + "6NidrvZxiQInN99TkKUebIx6h8vegYJ6giUNWNbuaqF89FVG7PZocLuwqHM9ReGVN" + "7nRReVSIAMcJC4oJ9BoRp9vL88MktqbTH7PEIKpww7E7FPoDgC2ms"), + TESTCASE(0x6877FA07, 0xD846FCE3, 0x83FA6ABA, 0x794DD858, + "uWNMpBRcVzJAc3FcUYaN6tvpAiKeHkvBIhVj2pIXQbutaDf22MLWzj10HUWMshpnv" + "RsyLGmCw5AAXeL9M4KIqf9W5AbWrVvVFdo7LCkIodUs3BDDImMTJ5Y"), + TESTCASE(0xD67208B4, 0xD3F23607, 0x70826F4E, 0xCB764F43, + "LMd4BAMxLfB359jiZ0U4ZTzT3HDlMGTgrO6LF7EcfARdeFPvVtb3XMmzL1DgqIzg2" + "j4jLzoaHqCB4u7TYRBiLAAeZAul7Dylr6DxvuCmcowBR0UmxVhRfJoq"), + TESTCASE(0x35DD4354, 0xADBAEFA1, 0xACCEAA4F, 0x609CB5A2, + "aXTmrkxaTvcttGu8UGpSDtZSzCwwlnDyym7bKRdUn8b4OG5Zj5hqqQ67w3UkEC7QP" + "CG1PRTGeoS2WotGgiwYyIHWIVL8B5oQQMBXcU2pESnA5tbMA9iWhPtNR"), + TESTCASE(0xA54CBAFA, 0x1B1574E6, 0x7849BBE5, 0xEDBC1098, + "SXtrNyT3xELAmZJtUx9tOM7Invu1dX6jMB5FnhYInvRh2jfB5wYcQh98SZNpFdcPB" + "L1xXh1VnvUUncJmaflPo5YiiwHAVBFPkcCuNZfHUiElAh0YPEXkJgFHlK"), + TESTCASE(0xA5DB7048, 0x26D9F12E, 0x8C3C5658, 0x18436436, + "hTRhjMgK40USYKweqxwCOQCp7Evtcg716ZdWaQ8Gcg5hnPskRl2AAUxCRG1CXEbOH" + "j6oho0KEsdpEhaAWN7Ga28Wuy2pBvyqbziZsPOFLGjXW2PcmaaerttOCXn"), + TESTCASE(0x9D4C5DD4, 0xDD04E1F3, 0x86B0AACC, 0x10F9DB23, + "teWBrKl02Tf4c4miKdHnOgqMEVjQK03ySZbUq9RYbFzql0Bp2eKXL7hlNcxuqDoyX" + "0N0GrIuhPVvZ2l1aeSJYlCGDTog7DKTjW770bUX3XWdG6asBkR1UTOt6T7z"), + TESTCASE(0x03211FDA, 0xE3CEC4C8, 0x4FCCDD95, 0xE7F9EE52, + "eaQqSibvOFff5NTaCZPG8aGSrZbJJOWgcqugpiNdZ7rXUIPZgHfhRCgRGwYmyeLjy" + "uesyPiE2f8dqEsPPLNXfcM1mtNyr7KREuJVS5xFkcDjseIcNwlFs8dlrwd9i"), + TESTCASE(0x93153A6E, 0xE863B86B, 0xA767A7EF, 0x8F91DCBE, + "2mg5WYU6vOsRRePoarODDSEBJW41CDt9cN4NHoKDBFFp5YX6yVylFmqRCVqwEwQ2p" + "HO5QlAPaguJnVJhf28RyfcJItvc6uf30zXa9q9ivkygHFRSqixcn2yiaCvqUc"), + TESTCASE(0x1C522FC8, 0x2A9FDFD1, 0x3228ACFD, 0x1B692202, + "6ZlMjcSt4yedTYAGXrtSwKfbxfcUJKErBgrgzwOZHUESfTeXmxhFwsOoeNHPABbX3" + "fVO38IXWNYmrLeJRDh7iMlHI4xxQeWeXrVWkjCy2aiFN9hLPyZRGMJ9r5upxjO"), + TESTCASE(0xC8077A52, 0x7BBFC6DD, 0xE10FD5B5, 0x5CA350C6, + "eojYUfdQ7vky8jpCUw1yBU1vHMnpZlnVpK01f1LPXVTgsBvqcNjYwdRxsBuSCnwnG" + "CvQK1EjkHE8BTL93tpPvlJ6M1q8gUBgacf2AXNiWWu5UHGpxpyo2tZUrZwAtJrL"), }; -INSTANTIATE_TEST_CASE_P(MD5Test, MD5Test, ::testing::ValuesIn(testCases)); +INSTANTIATE_TEST_SUITE_P(MD5Test, MD5Test, ::testing::ValuesIn(testCases)); + TEST_P(MD5Test, CheckTestCaseSet) { ASSERT_NO_THROW({ - rawspeed::md5::md5_state hash; - rawspeed::md5::md5_hash(message, strlen((const char*)message), &hash); + auto hash = rawspeed::md5::md5_hash( + message, strlen(reinterpret_cast<const char*>(message))); ASSERT_EQ(hash, answer); }); } + +TEST_P(MD5Test, CheckTestCaseSetInParts) { + ASSERT_NO_THROW({ + const auto len_total = rawspeed::implicit_cast<int>( + strlen(reinterpret_cast<const char*>(message))); + for (int len_0 = 0; len_0 <= len_total; ++len_0) { + for (int len_1 = 0; len_0 + len_1 <= len_total; ++len_1) { + auto str = std::string_view(reinterpret_cast<const char*>(message)); + rawspeed::md5::MD5 hasher; + const auto substr0 = str.substr(/*pos=*/0, /*n=*/len_0); + str.remove_prefix(substr0.size()); + const auto substr1 = str.substr(/*pos=*/0, /*n=*/len_1); + str.remove_prefix(substr1.size()); + const auto substr2 = str; + hasher.take(reinterpret_cast<const uint8_t*>(substr0.data()), + substr0.size()); + hasher.take(reinterpret_cast<const uint8_t*>(substr1.data()), + substr1.size()); + hasher.take(reinterpret_cast<const uint8_t*>(substr2.data()), + substr2.size()); + rawspeed::md5::MD5Hasher::state_type hash = hasher.flush(); + ASSERT_EQ(hash, answer); + } + } + }); +} diff -Nru darktable-4.4.2/src/external/rawspeed/src/utilities/rstest/md5.cpp darktable-4.6.1/src/external/rawspeed/src/utilities/rstest/md5.cpp --- darktable-4.4.2/src/external/rawspeed/src/utilities/rstest/md5.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/utilities/rstest/md5.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -27,32 +27,38 @@ * Software. */ -#include "rawspeedconfig.h" // for RAWSPEED_READNONE #include "md5.h" -#include <cstdint> // for uint32_t, uint8_t -#include <cstdio> // for size_t, snprintf -#include <cstring> // for memset, memcpy -#include <string> // for allocator, string +#include "adt/Array1DRef.h" +#include "adt/Casts.h" +#include "adt/Invariant.h" +#include <array> +#include <cstddef> +#include <cstdint> +#include <cstdio> +#include <cstring> +#include <string> namespace rawspeed::md5 { -// hashes 64 bytes at once -static void md5_compress(md5_state* state, const uint8_t* block); +__attribute__((noinline)) MD5Hasher::state_type +MD5Hasher::compress(state_type state, + Array1DRef<const uint8_t> block) noexcept { + invariant(block.size() == MD5Hasher::block_size); -static void md5_compress(md5_state* state, const uint8_t* block) { std::array<uint32_t, 16> schedule = {{}}; - auto LOADSCHEDULE = [&block, &schedule](int i) { + auto LOADSCHEDULE = [block, &schedule](int i) { for (int k = 3; k >= 0; k--) - schedule[i] |= uint32_t(block[4 * i + k]) << (8 * k); + schedule[i] |= uint32_t(block(4 * i + k)) << (8 * k); }; for (int i = 0; i < 16; i++) LOADSCHEDULE(i); // Assumes that x is uint32_t and 0 < n < 32 - auto ROTL32 = [](uint32_t x, int n) - RAWSPEED_READONLY { return (x << n) | (x >> (32 - n)); }; + auto ROTL32 = [](uint32_t x, int n) __attribute__((pure)) { + return (x << n) | (x >> (32 - n)); + }; auto ROUND_TAIL = [ROTL32, &schedule](uint32_t& a, uint32_t b, uint32_t expr, uint32_t k, uint32_t s, uint32_t t) { @@ -80,10 +86,13 @@ ROUND_TAIL(a, b, c ^ (b | ~d), k, s, t); }; - uint32_t a = (*state)[0]; - uint32_t b = (*state)[1]; - uint32_t c = (*state)[2]; - uint32_t d = (*state)[3]; + std::array<uint32_t, 4> tmp; + for (int i = 0; i != 4; ++i) + tmp[i] = state[i]; + uint32_t& a = tmp[0]; + uint32_t& b = tmp[1]; + uint32_t& c = tmp[2]; + uint32_t& d = tmp[3]; ROUND0(a, b, c, d, 0, 7, 0xD76AA478); ROUND0(d, a, b, c, 1, 12, 0xE8C7B756); @@ -150,57 +159,29 @@ ROUND3(c, d, a, b, 2, 15, 0x2AD7D2BB); ROUND3(b, c, d, a, 9, 21, 0xEB86D391); - (*state)[0] = uint32_t(0UL + (*state)[0] + a); - (*state)[1] = uint32_t(0UL + (*state)[1] + b); - (*state)[2] = uint32_t(0UL + (*state)[2] + c); - (*state)[3] = uint32_t(0UL + (*state)[3] + d); + for (int i = 0; i != 4; ++i) + state[i] = uint32_t(uint64_t(0) + state[i] + tmp[i]); + + return state; } /* Full message hasher */ +MD5Hasher::state_type md5_hash(const uint8_t* message, size_t len) noexcept { + MD5 hasher; -void md5_hash(const uint8_t* message, size_t len, md5_state* hash) { - *hash = md5_init; + hasher.take(message, len); - size_t i; - for (i = 0; len - i >= 64; i += 64) - md5_compress(hash, &message[i]); - - std::array<uint8_t, 64> block; - size_t rem = len - i; - memcpy(block.data(), &message[i], rem); - - block[rem] = 0x80; - rem++; - if (64 - rem >= 8) - memset(&block[rem], 0, 56 - rem); - else { - memset(&block[rem], 0, 64 - rem); - md5_compress(hash, block.data()); - memset(block.data(), 0, 56); - } - - block[64 - 8] = static_cast<uint8_t>((len & 0x1FU) << 3); - len >>= 5; - for (i = 1; i < 8; i++) { - block[64 - 8 + i] = static_cast<uint8_t>(len); - len >>= 8; - } - md5_compress(hash, block.data()); + return hasher.flush(); } -std::string hash_to_string(const md5_state& hash) { +std::string hash_to_string(const MD5Hasher::state_type& hash) noexcept { std::array<char, 2 * sizeof(hash) + 1> res; - const auto* h = reinterpret_cast<const uint8_t*>(&hash[0]); + const Array1DRef<const std::byte> h = + Array1DRef(hash.data(), implicit_cast<int>(hash.size())); for (int i = 0; i < static_cast<int>(sizeof(hash)); ++i) - snprintf(&res[2 * i], 3, "%02x", h[i]); + snprintf(&res[2 * i], 3, "%02x", static_cast<uint8_t>(h(i))); res[32] = 0; return res.data(); } -std::string md5_hash(const uint8_t* message, size_t len) { - md5_state hash; - md5_hash(message, len, &hash); - return hash_to_string(hash); -} - } // namespace rawspeed::md5 diff -Nru darktable-4.4.2/src/external/rawspeed/src/utilities/rstest/md5.h darktable-4.6.1/src/external/rawspeed/src/utilities/rstest/md5.h --- darktable-4.4.2/src/external/rawspeed/src/utilities/rstest/md5.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/utilities/rstest/md5.h 2024-02-14 22:08:05.000000000 +0000 @@ -29,26 +29,336 @@ #pragma once -#include <array> // for array -#include <cstdint> // for uint32_t, UINT32_C, uint8_t -#include <cstdio> // for size_t -#include <string> // for string +#include "rawspeedconfig.h" +#include "adt/Array1DRef.h" +#include "adt/Casts.h" +#include "adt/CroppedArray1DRef.h" // IWYU pragma: keep +#include "adt/Invariant.h" +#include <array> +#include <cstddef> +#include <cstdint> +#include <cstdio> +#include <cstring> +#include <stdint.h> +#include <string> +#include <type_traits> +#include <variant> namespace rawspeed::md5 { -using md5_state = std::array<uint32_t, 4>; +class MD5Hasher final { +public: + using state_type = std::array<uint32_t, 4>; -static constexpr const md5_state md5_init = { - {UINT32_C(0x67452301), UINT32_C(0xEFCDAB89), UINT32_C(0x98BADCFE), - UINT32_C(0x10325476)}}; + static constexpr int block_size = 64; + using block_type = std::array<uint8_t, block_size>; + + MD5Hasher() noexcept = delete; + ~MD5Hasher() noexcept = delete; + + MD5Hasher(const MD5Hasher&) = delete; + MD5Hasher(MD5Hasher&&) noexcept = delete; + MD5Hasher& operator=(const MD5Hasher&) = delete; + MD5Hasher& operator=(MD5Hasher&&) noexcept = delete; + + static state_type compress(state_type state, + Array1DRef<const uint8_t> block) noexcept; +}; + +template <class> inline constexpr bool always_false_v = false; + +template <int N> class BufferCoalescer final { + struct NoBuffer final { + static constexpr int block_length = 0; + }; + struct FullBufferRef final { + // NOLINTNEXTLINE(google-explicit-constructor) + FullBufferRef(Array1DRef<const uint8_t> block_) : block(block_.begin()) { + invariant(block_.size() == block_length); + } + const uint8_t* block; + static constexpr int block_length = N; + }; + struct CoalescingBuffer final { + MD5Hasher::block_type block; + int block_length = 0; + }; + + std::variant<NoBuffer, FullBufferRef, CoalescingBuffer> state = NoBuffer(); + +public: + template <typename ArgTy> + inline void take_block_impl(ArgTy& arg, + Array1DRef<const uint8_t> message) const = delete; + +private: + template <typename ArgTy> + requires std::same_as<ArgTy, NoBuffer> + inline void take_block_impl(NoBuffer& arg, + Array1DRef<const uint8_t> message) { + invariant(message.size() != 0); + + if (message.size() == N) { + state = FullBufferRef(message); + return; + } + + CoalescingBuffer buf; + take_block_impl<CoalescingBuffer>(buf, message); + state = buf; + } + + template <typename ArgTy> + requires std::same_as<ArgTy, CoalescingBuffer> + inline void take_block_impl(CoalescingBuffer& arg, + Array1DRef<const uint8_t> message) const { + invariant(message.size() != 0); + invariant(message.size() < N); + + invariant(arg.block_length + message.size() <= N); + + auto out = + Array1DRef(arg.block.data(), implicit_cast<int>(arg.block.size())) + .getCrop(/*offset=*/arg.block_length, /*size=*/message.size()); + std::copy(message.begin(), message.end(), out.begin()); + arg.block_length += message.size(); + } + + [[nodiscard]] __attribute__((always_inline)) inline int + length() const noexcept { + return std::visit([](const auto& arg) { return arg.block_length; }, state); + } + +public: + [[nodiscard]] __attribute__((always_inline)) inline int + bytesAvaliable() const noexcept { + return N - length(); + } + + [[nodiscard]] bool blockIsEmpty() const noexcept { + return bytesAvaliable() == N; + } + + [[nodiscard]] bool blockIsFull() const noexcept { + return bytesAvaliable() == 0; + } + + void reset() noexcept { state = NoBuffer(); } + + __attribute__((always_inline)) inline void + take_block(Array1DRef<const uint8_t> message) noexcept { + invariant(message.size() != 0); + invariant(message.size() <= N); + + std::visit( + [this, message]<typename T>(T& arg) { + if constexpr (std::is_same_v<T, FullBufferRef>) + __builtin_unreachable(); + else + this->take_block_impl<T>(arg, message); + }, + state); + } + + [[nodiscard]] FullBufferRef getAsFullBufferRef() const { + return std::visit( + []<typename T>(const T& arg) -> FullBufferRef { + if constexpr (std::is_same_v<T, FullBufferRef>) + return arg; + else if constexpr (std::is_same_v<T, CoalescingBuffer>) { + invariant(arg.block_length == N); + return {{arg.block.data(), arg.block_length}}; + } else if constexpr (std::is_same_v<T, NoBuffer>) + __builtin_unreachable(); + else + static_assert(always_false_v<T>, "non-exhaustive visitor!"); + }, + state); + } +}; + +class MD5 final { + BufferCoalescer<MD5Hasher::block_size> buffer; + int bytes_total; + + MD5Hasher::state_type state; + + static constexpr const MD5Hasher::state_type md5_init = { + {UINT32_C(0x67452301), UINT32_C(0xEFCDAB89), UINT32_C(0x98BADCFE), + UINT32_C(0x10325476)}}; + + void reset() noexcept { + state = md5_init; + buffer.reset(); + bytes_total = 0; + } + + [[nodiscard]] int bytesAvaliableInBlock() const noexcept RAWSPEED_READONLY { + return buffer.bytesAvaliable(); + } + + [[nodiscard]] bool blockIsEmpty() const noexcept RAWSPEED_READONLY { + return buffer.blockIsEmpty(); + } + + [[nodiscard]] bool blockIsFull() const noexcept RAWSPEED_READONLY { + return buffer.blockIsFull(); + } + + __attribute__((always_inline)) inline void compressFullBlock() noexcept; + + template <typename T> + requires std::is_same_v<T, uint8_t> + MD5& operator<<(const T& v) noexcept; + + template <typename T> + requires std::is_same_v<T, uint8_t> + MD5& take_full_block(Array1DRef<const T> message) noexcept; + + template <typename T> + requires std::is_same_v<T, uint8_t> + MD5& take_block(Array1DRef<const T> message) noexcept; + +public: + MD5() noexcept { reset(); } + ~MD5() noexcept { invariant(bytes_total == 0); } + + MD5(const MD5&) = delete; + MD5(MD5&&) noexcept = delete; + MD5& operator=(const MD5&) = delete; + MD5& operator=(MD5&&) noexcept = delete; + + template <typename T> + requires std::is_same_v<T, uint8_t> + MD5& take(const T* message, size_t len) noexcept; + + MD5Hasher::state_type flush() noexcept; +}; + +__attribute__((always_inline)) inline void MD5::compressFullBlock() noexcept { + invariant(blockIsFull() && "Bad block size."); + + const auto fullBlock = buffer.getAsFullBufferRef(); + state = MD5Hasher::compress( + state, {fullBlock.block, decltype(fullBlock)::block_length}); + buffer.reset(); +} + +template <typename T> + requires std::is_same_v<T, uint8_t> +__attribute__((always_inline)) inline MD5& +MD5::take_block(Array1DRef<const T> message) noexcept { + invariant(!blockIsFull()); + invariant(message.size() != 0); + invariant(message.size() <= MD5Hasher::block_size); + invariant(message.size() <= bytesAvaliableInBlock()); + + buffer.take_block(message); + bytes_total += message.size(); + + return *this; +} + +template <typename T> + requires std::is_same_v<T, uint8_t> +__attribute__((always_inline)) inline MD5& +MD5::take_full_block(Array1DRef<const T> message) noexcept { + invariant(blockIsEmpty()); + + invariant(message.size() == MD5Hasher::block_size); + + take_block(message); + invariant(blockIsFull()); + + return *this; +} + +template <typename T> + requires std::is_same_v<T, uint8_t> +__attribute__((always_inline)) inline MD5& MD5::take(const T* message, + size_t len) noexcept { + invariant(message != nullptr); + invariant(!blockIsFull()); + + if (len == 0) + return *this; + + auto msg = Array1DRef(message, implicit_cast<int>(len)); + + if (!blockIsEmpty()) { + auto prefix_size = implicit_cast<int>( + std::min<size_t>(msg.size(), bytesAvaliableInBlock())); + auto prefixMsg = + msg.getCrop(/*offset=*/0, /*size=*/prefix_size).getAsArray1DRef(); + msg = msg.getCrop(prefixMsg.size(), /*size=*/msg.size() - prefixMsg.size()) + .getAsArray1DRef(); + take_block(prefixMsg); + if (blockIsFull()) + compressFullBlock(); + } + + if (msg.size() == 0) + return *this; + + const auto numFullBlocks = implicit_cast<int>( + msg.size() / MD5Hasher::block_size); // Truncating division! + for (int blockIdx = 0; blockIdx != numFullBlocks; ++blockIdx) { + auto innerMsg = msg.getCrop(/*offset=*/0, /*size=*/MD5Hasher::block_size) + .getAsArray1DRef(); + msg = msg.getCrop(innerMsg.size(), /*size=*/msg.size() - innerMsg.size()) + .getAsArray1DRef(); + take_full_block(innerMsg); + compressFullBlock(); + } + + if (msg.size() > 0) { + invariant(blockIsEmpty()); + invariant(msg.size() < MD5Hasher::block_size); + take_block(msg); + invariant(!blockIsFull()); + } + + return *this; +} + +__attribute__((always_inline)) inline MD5Hasher::state_type +MD5::flush() noexcept { + invariant(!blockIsFull()); + + static constexpr std::array<uint8_t, 1> magic0 = {0x80}; + buffer.take_block({magic0.data(), magic0.size()}); + + static constexpr std::array<uint8_t, MD5Hasher::block_size> zeropadding = {}; + if (bytesAvaliableInBlock() < 8) { + if (bytesAvaliableInBlock() > 0) + buffer.take_block({zeropadding.data(), bytesAvaliableInBlock()}); + compressFullBlock(); + } + + if (bytesAvaliableInBlock() > 8) + buffer.take_block({zeropadding.data(), bytesAvaliableInBlock() - 8}); + + std::array<uint8_t, 8> magic1; + magic1[0] = static_cast<uint8_t>((bytes_total & 0x1FU) << 3); + bytes_total >>= 5; + for (size_t i = 1; i < 8; i++) { + magic1[i] = static_cast<uint8_t>(bytes_total); + bytes_total >>= 8; + } + buffer.take_block({magic1.data(), magic1.size()}); + compressFullBlock(); + + MD5Hasher::state_type tmp = state; + reset(); + return tmp; +} // computes hash of the buffer message with length len -void md5_hash(const uint8_t* message, size_t len, md5_state* hash); +[[nodiscard]] MD5Hasher::state_type md5_hash(const uint8_t* message, + size_t len) noexcept; // returns hash as string -std::string hash_to_string(const md5_state& hash); - -// computes hash of the buffer message with length len and returns it as string -std::string md5_hash(const uint8_t* message, size_t len); +[[nodiscard]] std::string +hash_to_string(const MD5Hasher::state_type& hash) noexcept; } // namespace rawspeed::md5 diff -Nru darktable-4.4.2/src/external/rawspeed/src/utilities/rstest/rstest.cpp darktable-4.6.1/src/external/rawspeed/src/utilities/rstest/rstest.cpp --- darktable-4.4.2/src/external/rawspeed/src/utilities/rstest/rstest.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/src/utilities/rstest/rstest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,38 +18,38 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "RawSpeed-API.h" // for RawImage, RawImageData -#include "adt/AlignedAllocator.h" // for AlignedAllocator -#include "adt/Array2DRef.h" // for Array2DRef, Array2DRef<... -#include "adt/DefaultInitAllocatorAdaptor.h" // for DefaultInitAllocatorAda... -#include "adt/NotARational.h" // for NotARational -#include "md5.h" // for md5_state, md5_hash -#include <algorithm> // for fill, copy, fill_n, max -#include <array> // for array -#include <cassert> // for assert -#include <chrono> // for milliseconds, steady_clock -#include <cstdarg> // for va_end, va_list, va_start -#include <cstddef> // for size_t, byte -#include <cstdint> // for uint8_t, uint16_t, uint... -#include <cstdio> // for fclose, fprintf, fopen -#include <cstdlib> // for system -#include <fstream> // for operator<<, basic_ostream -#include <functional> // for less -#include <iostream> // for cout, cerr -#include <iterator> // for istreambuf_iterator -#include <map> // for map, operator!=, _Rb_tr... -#include <memory> // for allocator, unique_ptr -#include <sstream> // for basic_ostringstream -#include <string> // for string, operator+, basi... -#include <string_view> // for operator!=, string_view -#include <tuple> // for tie, tuple -#include <type_traits> // for __type_identity_t -#include <utility> // for tuple_element<>::type -#include <vector> // for vector -// IWYU pragma: no_include <ext/alloc_traits.h> +#include "RawSpeed-API.h" +#include "adt/AlignedAllocator.h" +#include "adt/Array1DRef.h" +#include "adt/Array2DRef.h" +#include "adt/Bit.h" +#include "adt/Casts.h" +#include "adt/DefaultInitAllocatorAdaptor.h" +#include "adt/NotARational.h" +#include "md5.h" +#include <array> +#include <cassert> +#include <chrono> +#include <cstdarg> +#include <cstddef> +#include <cstdint> +#include <cstdio> +#include <cstdlib> +#include <fstream> +#include <functional> +#include <iostream> +#include <iterator> +#include <map> +#include <memory> +#include <sstream> +#include <string> +#include <string_view> +#include <tuple> +#include <type_traits> +#include <vector> #if !defined(__has_feature) || !__has_feature(thread_sanitizer) -#include <iomanip> // for operator<<, setw +#include <iomanip> #endif using std::chrono::steady_clock; @@ -65,7 +65,6 @@ using rawspeed::roundUp; using std::cerr; using std::cout; -using std::endl; using std::ifstream; using std::istreambuf_iterator; using std::map; @@ -74,9 +73,9 @@ using std::vector; #if !defined(__has_feature) || !__has_feature(thread_sanitizer) -using std::setw; -using std::left; using std::internal; +using std::left; +using std::setw; #endif namespace rawspeed::rstest { @@ -86,32 +85,39 @@ void writePPM(const rawspeed::RawImage& raw, const std::string& fn); void writePFM(const rawspeed::RawImage& raw, const std::string& fn); -md5::md5_state imgDataHash(const rawspeed::RawImage& raw); +md5::MD5Hasher::state_type imgDataHash(const rawspeed::RawImage& raw); void writeImage(const rawspeed::RawImage& raw, const std::string& fn); -struct options { +struct options final { bool create; bool force; bool dump; }; -size_t process(const std::string& filename, - const rawspeed::CameraMetaData* metadata, const options& o); +int64_t process(const std::string& filename, + const rawspeed::CameraMetaData* metadata, const options& o); class RstestHashMismatch final : public rawspeed::RawspeedException { + void anchor() const override; + public: - size_t time; + int64_t time; explicit RAWSPEED_UNLIKELY_FUNCTION RAWSPEED_NOINLINE - RstestHashMismatch(const char* msg, size_t time_) + RstestHashMismatch(const char* msg, int64_t time_) : RawspeedException(msg), time(time_) {} }; -struct Timer { +void RstestHashMismatch::anchor() const { + // Empty out-of-line definition for the purpose of anchoring + // the class's vtable to this Translational Unit. +} + +struct Timer final { mutable std::chrono::steady_clock::time_point start = std::chrono::steady_clock::now(); - size_t operator()() const { + int64_t operator()() const { auto ms = std::chrono::duration_cast<std::chrono::milliseconds>( std::chrono::steady_clock::now() - start) .count(); @@ -122,22 +128,19 @@ // yes, this is not cool. but i see no way to compute the hash of the // full image, without duplicating image, and copying excluding padding -md5::md5_state imgDataHash(const RawImage& raw) { +md5::MD5Hasher::state_type imgDataHash(const RawImage& raw) { const rawspeed::Array2DRef<std::byte> img = raw->getByteDataAsUncroppedArray2DRef(); - md5::md5_state ret = md5::md5_init; - - vector<md5::md5_state> line_hashes; - line_hashes.resize(img.height, md5::md5_init); + vector<md5::MD5Hasher::state_type> line_hashes(img.height()); - for (int j = 0; j < img.height; j++) { - md5::md5_hash(reinterpret_cast<const uint8_t*>(&img(j, 0)), img.width, - &line_hashes[j]); + for (int j = 0; j < img.height(); j++) { + line_hashes[j] = md5::md5_hash(reinterpret_cast<const uint8_t*>(&img(j, 0)), + img.width()); } - md5::md5_hash(reinterpret_cast<const uint8_t*>(&line_hashes[0]), - sizeof(line_hashes[0]) * line_hashes.size(), &ret); + auto ret = md5::md5_hash(reinterpret_cast<const uint8_t*>(&line_hashes[0]), + sizeof(line_hashes[0]) * line_hashes.size()); return ret; } @@ -149,7 +152,9 @@ #pragma GCC diagnostic ignored "-Wframe-larger-than=" #pragma GCC diagnostic ignored "-Wstack-usage=" -static void __attribute__((format(printf, 2, 3))) +namespace { + +void __attribute__((format(printf, 2, 3))) APPEND(ostringstream* oss, const char* format, ...) { std::array<char, 1024> line; @@ -161,6 +166,8 @@ *oss << line.data(); } +} // namespace + std::string img_hash(const RawImage& r, bool noSamples) { ostringstream oss; @@ -177,15 +184,33 @@ APPEND(&oss, "isoSpeed: %d\n", r->metadata.isoSpeed); APPEND(&oss, "blackLevel: %d\n", r->blackLevel); - APPEND(&oss, "whitePoint: %d\n", r->whitePoint); - APPEND(&oss, "blackLevelSeparate: %d %d %d %d\n", r->blackLevelSeparate[0], - r->blackLevelSeparate[1], r->blackLevelSeparate[2], - r->blackLevelSeparate[3]); - - APPEND(&oss, "wbCoeffs: %f %f %f %f\n", r->metadata.wbCoeffs[0], - r->metadata.wbCoeffs[1], r->metadata.wbCoeffs[2], - r->metadata.wbCoeffs[3]); + APPEND(&oss, "whitePoint: "); + if (!r->whitePoint) + APPEND(&oss, "unknown"); + else + APPEND(&oss, "%d", *r->whitePoint); + APPEND(&oss, "\n"); + + APPEND(&oss, "blackLevelSeparate: "); + if (!r->blackLevelSeparate) { + APPEND(&oss, "none"); + } else { + APPEND(&oss, "(%i x %i)", r->blackLevelSeparate->width(), + r->blackLevelSeparate->height()); + if (auto blackLevelSeparate1D = r->blackLevelSeparate->getAsArray1DRef(); + blackLevelSeparate1D && blackLevelSeparate1D->size() != 0) { + for (auto l : *blackLevelSeparate1D) + APPEND(&oss, " %d", l); + } + } + APPEND(&oss, "\n"); + + APPEND(&oss, "wbCoeffs: %f %f %f %f\n", + implicit_cast<double>(r->metadata.wbCoeffs[0]), + implicit_cast<double>(r->metadata.wbCoeffs[1]), + implicit_cast<double>(r->metadata.wbCoeffs[2]), + implicit_cast<double>(r->metadata.wbCoeffs[3])); APPEND(&oss, "colorMatrix:"); if (r->metadata.colorMatrix.empty()) @@ -232,21 +257,21 @@ APPEND(&oss, "\n"); - rawspeed::md5::md5_state hash_of_line_hashes = imgDataHash(r); + rawspeed::md5::MD5Hasher::state_type hash_of_line_hashes = imgDataHash(r); APPEND(&oss, "md5sum of per-line md5sums: %s\n", rawspeed::md5::hash_to_string(hash_of_line_hashes).c_str()); - const auto errors = r->getErrors(); - for (const std::string& e : errors) + for (const auto errors = r->getErrors(); const std::string& e : errors) APPEND(&oss, "WARNING: [rawspeed] %s\n", e.c_str()); return oss.str(); } -using file_ptr = std::unique_ptr<FILE, decltype(&fclose)>; +auto fclose = [](std::FILE* fp) { std::fclose(fp); }; +using file_ptr = std::unique_ptr<FILE, decltype(fclose)>; void writePPM(const RawImage& raw, const std::string& fn) { - file_ptr f(fopen((fn + ".ppm").c_str(), "wb"), &fclose); + file_ptr f(fopen((fn + ".ppm").c_str(), "wb"), fclose); const iPoint2D dimUncropped = raw->getUncroppedDim(); int width = dimUncropped.x; @@ -270,7 +295,7 @@ } void writePFM(const RawImage& raw, const std::string& fn) { - file_ptr f(fopen((fn + ".pfm").c_str(), "wb"), &fclose); + file_ptr f(fopen((fn + ".pfm").c_str(), "wb"), fclose); const iPoint2D dimUncropped = raw->getUncroppedDim(); int width = dimUncropped.x; @@ -286,7 +311,8 @@ // regardless of padding, we need to write \n separator const int realLen = len + 1; // the first byte after that \n will be aligned - const int paddedLen = roundUp(realLen, dataAlignment); + const auto paddedLen = + rawspeed::implicit_cast<int>(roundUp(realLen, dataAlignment)); assert(paddedLen > len); assert(rawspeed::isAligned(paddedLen, dataAlignment)); @@ -324,17 +350,16 @@ switch (raw->getDataType()) { case RawImageType::UINT16: writePPM(raw, fn); - break; + return; case RawImageType::F32: writePFM(raw, fn); - break; - default: - __builtin_unreachable(); + return; } + __builtin_unreachable(); } -size_t process(const std::string& filename, const CameraMetaData* metadata, - const options& o) { +int64_t process(const std::string& filename, const CameraMetaData* metadata, + const options& o) { const std::string hashfile(filename + ".hash"); @@ -348,7 +373,7 @@ #pragma omp critical(io) #endif cout << left << setw(55) << filename << ": hash " - << (o.create ? "exists" : "missing") << ", skipping" << endl; + << (o.create ? "exists" : "missing") << ", skipping" << '\n'; #endif return 0; } @@ -358,7 +383,7 @@ #ifdef HAVE_OPENMP #pragma omp critical(io) #endif - cout << left << setw(55) << filename << ": starting decoding ... " << endl; + cout << left << setw(55) << filename << ": starting decoding ... " << '\n'; #endif FileReader reader(filename.c_str()); @@ -392,7 +417,7 @@ #endif cout << left << setw(55) << filename << ": " << internal << setw(3) << buf.getSize() / 1000000 << " MB / " << setw(4) << time << " ms" - << endl; + << '\n'; #endif if (o.create) { @@ -426,15 +451,16 @@ #pragma GCC diagnostic pop -static int -results(const map<std::string, std::string, std::less<>>& failedTests, - const options& o) { +namespace { + +int results(const map<std::string, std::string, std::less<>>& failedTests, + const options& o) { if (failedTests.empty()) { cout << "All good, "; if (!o.create) - cout << "no tests failed!" << endl; + cout << "no tests failed!" << '\n'; else - cout << "all hashes created!" << endl; + cout << "all hashes created!" << '\n'; return 0; } @@ -472,12 +498,12 @@ return 1; } -static int usage(const char* progname) { +int usage(const char* progname) { cout << "usage: " << progname << R"( [-h] print this help [-c] for each file: decode, compute hash and store it. If hash exists, it does not recompute it, unless option -f is set! - [-f] if -c is set, then it will override the existing hashes. + [-f] if -c is set, then it will final the existing hashes. If -c is not set, and the hash does not exist, then just decode, but do not write the hash! [-d] store decoded image as PPM @@ -498,30 +524,34 @@ return 0; } +} // namespace + } // namespace rawspeed::rstest -using rawspeed::rstest::usage; using rawspeed::rstest::options; using rawspeed::rstest::process; using rawspeed::rstest::results; +using rawspeed::rstest::usage; + +int main(int argc_, char** argv_) { + auto argv = rawspeed::Array1DRef(argv_, argc_); -int main(int argc, char **argv) { - int remaining_argc = argc; + int remaining_argc = argv.size(); - auto hasFlag = [argc, &remaining_argc, argv](std::string_view flag) { + auto hasFlag = [&remaining_argc, argv](std::string_view flag) { bool found = false; - for (int i = 1; i < argc; ++i) { - if (!argv[i] || argv[i] != flag) + for (int i = 1; i < argv.size(); ++i) { + if (!argv(i) || argv(i) != flag) continue; found = true; - argv[i] = nullptr; + argv(i) = nullptr; remaining_argc--; } return found; }; - if (1 == argc || hasFlag("-h")) - return usage(argv[0]); + if (1 == argv.size() || hasFlag("-h")) + return usage(argv(0)); options o; o.create = hasFlag("-c"); @@ -534,20 +564,20 @@ const CameraMetaData metadata{}; #endif - size_t time = 0; + int64_t time = 0; map<std::string, std::string, std::less<>> failedTests; #ifdef HAVE_OPENMP -#pragma omp parallel for default(none) firstprivate(argc, argv, o) \ - shared(metadata) shared(cerr, failedTests) schedule(dynamic, 1) \ +#pragma omp parallel for default(none) firstprivate(argv, o) shared(metadata) \ + shared(cerr, failedTests) schedule(dynamic, 1) \ reduction(+ : time) if (remaining_argc > 2) #endif - for (int i = 1; i < argc; ++i) { - if (!argv[i]) + for (int i = 1; i < argv.size(); ++i) { + if (!argv(i)) continue; try { try { - time += process(argv[i], &metadata, o); + time += process(argv(i), &metadata, o); } catch (const rawspeed::rstest::RstestHashMismatch& e) { time += e.time; throw; @@ -557,16 +587,21 @@ #pragma omp critical(io) #endif { - std::string msg = std::string(argv[i]) + " failed: " + e.what(); + std::string msg = std::string(argv(i)) + " failed: " + e.what(); #if !defined(__has_feature) || !__has_feature(thread_sanitizer) - cerr << msg << endl; + cerr << msg << '\n'; #endif - failedTests.try_emplace(argv[i], msg); + failedTests.try_emplace(argv(i), msg); } + } catch (...) { + // We should not get any other exception type here. + __builtin_unreachable(); } } - cout << "Total decoding time: " << time / 1000.0 << "s" << endl << endl; + cout << "Total decoding time: " + << rawspeed::implicit_cast<double>(time) / 1000.0 << "s" << '\n' + << '\n'; return results(failedTests, o); } diff -Nru darktable-4.4.2/src/external/rawspeed/test/.clang-tidy darktable-4.6.1/src/external/rawspeed/test/.clang-tidy --- darktable-4.4.2/src/external/rawspeed/test/.clang-tidy 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/.clang-tidy 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,27 @@ +--- +Checks: > + -bugprone-macro-parentheses, + -bugprone-suspicious-memory-comparison, + -cert-msc51-cpp, + -concurrency-mt-unsafe, + -cppcoreguidelines-macro-usage, + -cppcoreguidelines-rvalue-reference-param-not-moved, + -google-global-names-in-headers, + -misc-definitions-in-headers, + -misc-use-anonymous-namespace, + -modernize-avoid-c-arrays, + -modernize-type-traits, + -modernize-use-nodiscard, + -modernize-use-override, + -performance-avoid-endl, + -performance-move-const-arg, + -performance-unnecessary-copy-initialization, + -readability-convert-member-functions-to-static, + -readability-function-cognitive-complexity, + -readability-function-size, + -readability-isolate-declaration, + -readability-make-member-function-const, + -readability-suspicious-call-argument, + -readability-uppercase-literal-suffix, +InheritParentConfig: true +... diff -Nru darktable-4.4.2/src/external/rawspeed/test/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/test/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/test/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -6,6 +6,7 @@ "used-but-marked-unused" "global-constructors" "exit-time-destructors" + "weak-vtables" ) foreach(warning ${DISABLED_WARNING_FLAGS}) @@ -23,10 +24,4 @@ CHECK_CXX_COMPILER_FLAG_AND_ENABLE_IT(-Wlarger-than=${MAX_MEANINGFUL_SIZE}) endif() -set(CMAKE_CXX_CLANG_TIDY_SAVE "${CMAKE_CXX_CLANG_TIDY}") - -unset(CMAKE_CXX_CLANG_TIDY) - add_subdirectory(librawspeed) - -set(CMAKE_CXX_CLANG_TIDY "${CMAKE_CXX_CLANG_TIDY_SAVE}") diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/test/librawspeed/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -9,23 +9,20 @@ target_link_libraries(rawspeed_test PUBLIC gtest gmock_main) target_include_directories(rawspeed_test PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") - -# FIXME: it should be PATH, but then it is escaped, and that breaks gtest -set(UNITTEST_REPORT_PATH ${CMAKE_BINARY_DIR}/unittest-reports/ CACHE STRING "" FORCE) -file(MAKE_DIRECTORY "${UNITTEST_REPORT_PATH}") - function(add_rs_test src) get_filename_component(TESTNAME ${src} NAME_WE) rawspeed_add_executable(${TESTNAME} ${src}) target_link_libraries(${TESTNAME} rawspeed) target_link_libraries(${TESTNAME} rawspeed_test) rawspeed_add_test(NAME ${TESTNAME} - COMMAND ${TESTNAME} --gtest_output=xml:${UNITTEST_REPORT_PATH} + COMMAND ${TESTNAME} WORKING_DIRECTORY "$<TARGET_PROPERTY:rawspeed_test,BINARY_DIR>") + set_tests_properties(${TESTNAME} PROPERTIES LABELS "unittest") add_dependencies(tests ${TESTNAME}) endfunction() add_subdirectory(adt) +add_subdirectory(bitstreams) add_subdirectory(codes) add_subdirectory(common) add_subdirectory(io) diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/adt/BitTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/adt/BitTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/adt/BitTest.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/adt/BitTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,125 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2017 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; withexpected even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "adt/Bit.h" +#include <algorithm> +#include <cstdint> +#include <limits> +#include <string> +#include <tuple> +#include <vector> +#include <gtest/gtest.h> + +using rawspeed::clampBits; +using rawspeed::isPowerOfTwo; +using std::make_tuple; +using std::min; +using std::numeric_limits; +using std::string; +using std::vector; + +namespace rawspeed_test { + +using powerOfTwoType = std::tuple<int, bool>; +class PowerOfTwoTest : public ::testing::TestWithParam<powerOfTwoType> { +protected: + PowerOfTwoTest() = default; + virtual void SetUp() { + in = std::get<0>(GetParam()); + expected = std::get<1>(GetParam()); + } + + int in; // input + bool expected; // expected output +}; +static const powerOfTwoType powerOfTwoValues[] = { + make_tuple(0, true), make_tuple(1, true), make_tuple(2, true), + make_tuple(3, false), make_tuple(4, true), make_tuple(5, false), + make_tuple(6, false), make_tuple(7, false), make_tuple(8, true), + make_tuple(9, false), make_tuple(10, false), make_tuple(11, false), + +}; +INSTANTIATE_TEST_SUITE_P(PowerOfTwoTest, PowerOfTwoTest, + ::testing::ValuesIn(powerOfTwoValues)); +TEST_P(PowerOfTwoTest, PowerOfTwoTest) { + ASSERT_EQ(isPowerOfTwo(in), expected); +} + +using ClampBitsType = std::tuple<int, int, uint16_t>; +class ClampBitsTest : public ::testing::TestWithParam<ClampBitsType> { +protected: + ClampBitsTest() = default; + virtual void SetUp() { + in = std::get<0>(GetParam()); + n = std::get<1>(GetParam()); + expected = std::get<2>(GetParam()); + } + + int in; // input + int n; + uint16_t expected; // expected output +}; + +#define MIN(a, b) ((a) < (b) ? (a) : (b)) +#define MAX(a, b) ((a) > (b) ? (a) : (b)) + +#define ROW(v, p, pv) make_tuple((v), (p), MIN(pv, MAX(v, 0))), + +#define ROWS(v, p, pv) ROW(-v, p, 0) ROW(v, p, pv) + +#define THREEROWS(v, p) \ + ROWS(((1 << (v)) - 1), (p), ((1 << (p)) - 1)) \ + ROWS(((1 << (v)) - 0), (p), ((1 << (p)) - 1)) \ + ROWS(((1 << (v)) + 1), (p), ((1 << (p)) - 1)) + +#define MOREROWS(v) \ + THREEROWS(v, 0) \ + THREEROWS(v, 1) \ + THREEROWS(v, 2) \ + THREEROWS(v, 4) \ + THREEROWS(v, 8) THREEROWS(v, 16) + +#define GENERATE() \ + MOREROWS(0) \ + MOREROWS(1) \ + MOREROWS(2) MOREROWS(4) MOREROWS(8) MOREROWS(16) MOREROWS(24) MOREROWS(30) + +static const ClampBitsType ClampBitsValues[] = { + make_tuple(0, 0, 0), make_tuple(0, 16, 0), + make_tuple(32, 0, 0), make_tuple(32, 16, 32), + make_tuple(32, 2, 3), make_tuple(-32, 0, 0), + make_tuple(-32, 16, 0), GENERATE()}; +INSTANTIATE_TEST_SUITE_P(ClampBitsTest, ClampBitsTest, + ::testing::ValuesIn(ClampBitsValues)); +TEST_P(ClampBitsTest, ClampBitsTest) { ASSERT_EQ(clampBits(in, n), expected); } +TEST(ClampBitsDeathTest, Only16Bit) { +#ifndef NDEBUG + ASSERT_DEATH({ ASSERT_EQ(clampBits(0, 17), 0); }, "nBits <= 16"); +#endif +} + +TEST(ClampBitsUnsignedDeathTest, NoNopClamps) { +#ifndef NDEBUG + ASSERT_DEATH({ ASSERT_EQ(clampBits<uint16_t>(0, 16), 0); }, + "bitwidth<T>\\(\\) > nBits"); +#endif +} + +} // namespace rawspeed_test diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/adt/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/test/librawspeed/adt/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/adt/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/adt/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -1,7 +1,9 @@ FILE(GLOB RAWSPEED_TEST_SOURCES + "BitTest.cpp" "NORangesSetTest.cpp" "PointTest.cpp" "RangeTest.cpp" + "VariableLengthLoadTest.cpp" ) foreach(SRC ${RAWSPEED_TEST_SOURCES}) diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/adt/NORangesSetTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/adt/NORangesSetTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/adt/NORangesSetTest.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/adt/NORangesSetTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,12 +18,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "adt/NORangesSet.h" // for NORangesSet, operator!=, set, set<>::co... -#include "adt/Range.h" // for Range, RangesOverlap -#include "adt/RangeTest.h" // for AllOverlapped, TwoRangesTest, twoRanges... -#include <string> // for string, allocator -#include <tuple> // for get, tuple -#include <gtest/gtest.h> // for ParamIteratorInterface, AssertionResult +#include "adt/NORangesSet.h" +#include "adt/Range.h" +#include "adt/RangeTest.h" +#include <tuple> +#include <gtest/gtest.h> // IWYU pragma: no_forward_declare rawspeed::Range @@ -98,7 +97,7 @@ Range<int> r1; Range<int> r2; }; -INSTANTIATE_TEST_CASE_P( +INSTANTIATE_TEST_SUITE_P( Unsigned, ThreeRangesTest, testing::Combine(testing::Range(0, 3), testing::Range(0U, 3U), testing::Range(0, 3), testing::Range(0U, 3U), diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/adt/PointTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/adt/PointTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/adt/PointTest.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/adt/PointTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,19 +18,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "adt/Point.h" // for iPoint2D, iPoint2D::area_type, iPoint2D::va... -#include <algorithm> // for find -#include <iterator> // for cend, cbegin, pair -#include <limits> // for numeric_limits -#include <ostream> // for operator<<, basic_ostream::operator<<, ostream -#include <string> // for allocator, basic_string -#include <tuple> // for make_tuple, get, tuple -#include <type_traits> // for __strip_reference_wrapper<>::__type -#include <utility> // for make_pair, pair, move -#include <variant> // for tuple -#include <gtest/gtest.h> // for Message, TestPartResult, ParamIteratorInter... - -// IWYU pragma: no_include <pstl/glue_algorithm_defs.h> +#include "adt/Point.h" +#include <algorithm> +#include <iterator> +#include <limits> +#include <ostream> +#include <string> +#include <tuple> +#include <utility> +#include <gtest/gtest.h> using rawspeed::iPoint2D; using std::make_pair; @@ -275,7 +271,7 @@ make_tuple(make_pair(5, 5), make_pair(5, 5), make_pair(10, 10)), }; -INSTANTIATE_TEST_CASE_P(SumTest, PointTest, ::testing::ValuesIn(valueSum)); +INSTANTIATE_TEST_SUITE_P(SumTest, PointTest, ::testing::ValuesIn(valueSum)); TEST_P(PointTest, InPlaceAddTest1) { ASSERT_NO_THROW({ a += b; @@ -338,9 +334,9 @@ iPoint2D p; }; -INSTANTIATE_TEST_CASE_P(HasPositiveAreaTest, HasPositiveAreaTest, - ::testing::Combine(::testing::Range(-2, 3), - ::testing::Range(-2, 3))); +INSTANTIATE_TEST_SUITE_P(HasPositiveAreaTest, HasPositiveAreaTest, + ::testing::Combine(::testing::Range(-2, 3), + ::testing::Range(-2, 3))); static const iPoint2D PositiveAreaData[] = { {1, 1}, {1, 2}, @@ -420,7 +416,7 @@ make_tuple(make_pair(maxVal, maxVal), maxAreaVal), }; -INSTANTIATE_TEST_CASE_P(AreaTest, AreaTest, ::testing::ValuesIn(valueArea)); +INSTANTIATE_TEST_SUITE_P(AreaTest, AreaTest, ::testing::ValuesIn(valueArea)); TEST_P(AreaTest, AreaTest) { ASSERT_NO_THROW({ ASSERT_EQ(p.area(), a); }); } @@ -672,8 +668,8 @@ make_tuple(make_pair(1, 1), make_pair(1, 1), true, false, false, true, true)}; -INSTANTIATE_TEST_CASE_P(OperatorsTests, OperatorsTest, - ::testing::ValuesIn(operatorsValues)); +INSTANTIATE_TEST_SUITE_P(OperatorsTests, OperatorsTest, + ::testing::ValuesIn(operatorsValues)); TEST_P(OperatorsTest, OperatorEQTest) { ASSERT_NO_THROW({ ASSERT_EQ(a == b, eq); }); @@ -809,8 +805,8 @@ class SmallestTest : public PointTest {}; -INSTANTIATE_TEST_CASE_P(GetSmallestTest, SmallestTest, - ::testing::ValuesIn(smallestValues)); +INSTANTIATE_TEST_SUITE_P(GetSmallestTest, SmallestTest, + ::testing::ValuesIn(smallestValues)); TEST_P(SmallestTest, GetSmallestTest) { ASSERT_NO_THROW({ ASSERT_EQ(a.getSmallest(b), c); diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/adt/RangeTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/adt/RangeTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/adt/RangeTest.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/adt/RangeTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,9 +18,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "adt/Range.h" // for Range -#include "adt/RangeTest.h" // for RangeDoesntContain, RangeContains -#include <set> // for allocator, operator!=, set, set<>::const_i... +#include "adt/Range.h" +#include "adt/RangeTest.h" +#include <set> +#include <gtest/gtest.h> using rawspeed::Range; diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/adt/RangeTest.h darktable-4.6.1/src/external/rawspeed/test/librawspeed/adt/RangeTest.h --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/adt/RangeTest.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/adt/RangeTest.h 2024-02-14 22:08:05.000000000 +0000 @@ -18,12 +18,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "adt/Range.h" // for Range -#include <ostream> // for basic_ostream::operator<<, operator<<, ost... -#include <set> // for allocator, set -#include <tuple> // for make_tuple, tuple, get -#include <utility> // for __tuple_element_t -#include <gtest/gtest.h> // for ParamIteratorInterface, AssertionFailure +#include "adt/Range.h" +#include <ostream> +#include <set> +#include <tuple> +#include <gtest/gtest.h> using rawspeed::Range; @@ -111,11 +110,11 @@ Range<int> r0; Range<int> r1; }; -INSTANTIATE_TEST_CASE_P(Unsigned, TwoRangesTest, - testing::Combine(testing::Range(0, 3), - testing::Range(0U, 3U), - testing::Range(0, 3), - testing::Range(0U, 3U))); +INSTANTIATE_TEST_SUITE_P(Unsigned, TwoRangesTest, + testing::Combine(testing::Range(0, 3), + testing::Range(0U, 3U), + testing::Range(0, 3), + testing::Range(0U, 3U))); static const std::set<twoRangesType> AllOverlapped{ std::make_tuple(0, 0, 0, 0), std::make_tuple(0, 0, 0, 1), diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/adt/VariableLengthLoadTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,105 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2024 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; withexpected even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "adt/VariableLengthLoad.h" +#include "adt/Array1DRef.h" +#include <algorithm> +#include <numeric> +#include <ostream> +#include <vector> +#include <gmock/gmock.h> +#include <gtest/gtest.h> + +namespace rawspeed { + +template <typename T> +bool operator==(const rawspeed::Array1DRef<T> a, + const rawspeed::Array1DRef<T> b) { + return a.size() == b.size() && std::equal(a.begin(), a.end(), b.begin()); +} + +template <typename T> +::std::ostream& operator<<(::std::ostream& os, const Array1DRef<T>& r) { + os << "{"; + for (int i = 0; i != r.size(); ++i) { + if (i != 0) + os << ", "; + os << r(i); + } + os << "}"; + return os; +} + +} // namespace rawspeed + +using rawspeed::Array1DRef; + +namespace rawpeed_test { + +TEST(VariableLengthLoadTest, Exhaustive) { + static constexpr int MaxBytes = 256; + + for (int numInputBytes = 1; numInputBytes <= MaxBytes; ++numInputBytes) { + std::vector<unsigned char> inputStorage(numInputBytes); + auto input = Array1DRef(inputStorage.data(), numInputBytes); + std::iota(input.begin(), input.end(), 0); + + for (int numOutputBytes = 1; + numOutputBytes <= numInputBytes && numOutputBytes <= 8; + numOutputBytes *= 2) { + for (int inPos = 0; inPos <= 4 * numInputBytes; ++inPos) { + std::vector<unsigned char> outputReferenceStorage(numOutputBytes); + auto outputReference = + Array1DRef(outputReferenceStorage.data(), numOutputBytes); + std::fill(outputReference.begin(), outputReference.end(), 0); + std::iota(outputReference.begin(), + outputReference.addressOf( + std::clamp(numInputBytes - inPos, 0, numOutputBytes)), + inPos); + + std::vector<unsigned char> outputImpl0Storage(numOutputBytes); + auto outputImpl0 = + Array1DRef(outputImpl0Storage.data(), numOutputBytes); + variableLengthLoadNaiveViaMemcpy( + outputImpl0, Array1DRef<const unsigned char>(input), inPos); + + EXPECT_THAT(outputImpl0, testing::ContainerEq(outputReference)); + + std::vector<unsigned char> outputImpl1Storage(numOutputBytes); + auto outputImpl1 = + Array1DRef(outputImpl1Storage.data(), numOutputBytes); + variableLengthLoadNaiveViaConditionalLoad( + outputImpl1, Array1DRef<const unsigned char>(input), inPos); + + EXPECT_THAT(outputImpl1, testing::ContainerEq(outputReference)); + + std::vector<unsigned char> outputImpl2Storage(numOutputBytes); + auto outputImpl2 = + Array1DRef(outputImpl2Storage.data(), numOutputBytes); + variableLengthLoad(outputImpl2, Array1DRef<const unsigned char>(input), + inPos); + + EXPECT_THAT(outputImpl2, testing::ContainerEq(outputReference)); + } + } + } +} + +} // namespace rawpeed_test diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/BitSteramerMSBTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/BitSteramerMSBTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/BitSteramerMSBTest.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/BitSteramerMSBTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,54 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2018 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "bitstreams/BitStreamerMSB.h" +#include "bitstreams/BitStreamerTest.h" +#include <array> +#include <cstdint> +#include <gtest/gtest.h> + +using rawspeed::BitStreamerMSB; + +namespace rawspeed_test { + +struct InvOnesTag; +struct OnesTag; + +template <> +const std::array<uint8_t, 8> Pattern<BitStreamerMSB, OnesTag>::Data = { + {/* [Byte0 Byte1 Byte2 Byte3] */ + /* Byte: [Bit0 .. Bit7] */ + 0b10100100, 0b01000010, 0b00001000, 0b00011111}}; +template <> uint32_t Pattern<BitStreamerMSB, OnesTag>::data(int index) { + const auto set = GenOnesBE(1, 0); + return set[index]; +} + +template <> +const std::array<uint8_t, 8> Pattern<BitStreamerMSB, InvOnesTag>::Data = { + {0b11010010, 0b00100001, 0b00000100, 0b00001111}}; +template <> uint32_t Pattern<BitStreamerMSB, InvOnesTag>::data(int index) { + const auto set = GenOnesBE(0, -1); + return set[index]; +} + +INSTANTIATE_TYPED_TEST_SUITE_P(MSB, BitStreamerTest, Patterns<BitStreamerMSB>); + +} // namespace rawspeed_test diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/BitStreamerJPEGTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/BitStreamerJPEGTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/BitStreamerJPEGTest.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/BitStreamerJPEGTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,103 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2018 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "bitstreams/BitStreamerJPEG.h" +#include "adt/Array1DRef.h" +#include "adt/Casts.h" +#include "bitstreams/BitStreamerTest.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <array> +#include <cstdint> +#include <gtest/gtest.h> + +using rawspeed::BitStreamerJPEG; +using rawspeed::Buffer; +using rawspeed::ByteStream; +using rawspeed::DataBuffer; +using rawspeed::Endianness; + +namespace rawspeed_test { + +struct InvOnesTag; +struct OnesTag; +struct SaturatedTag; + +template <> +const std::array<uint8_t, 8> Pattern<BitStreamerJPEG, OnesTag>::Data = { + {/* [Byte0 Byte1 Byte2 Byte3] */ + /* Byte: [Bit0 .. Bit7] */ + 0b10100100, 0b01000010, 0b00001000, 0b00011111}}; +template <> uint32_t Pattern<BitStreamerJPEG, OnesTag>::data(int index) { + const auto set = GenOnesBE(1, 0); + return set[index]; +} + +template <> +const std::array<uint8_t, 8> Pattern<BitStreamerJPEG, InvOnesTag>::Data = { + {0b11010010, 0b00100001, 0b00000100, 0b00001111}}; +template <> uint32_t Pattern<BitStreamerJPEG, InvOnesTag>::data(int index) { + const auto set = GenOnesBE(0, -1); + return set[index]; +} + +// If 0xFF0x00 byte sequence is found, it is just 0xFF, i.e. 0x00 is ignored. +// So if we want 0xFF, we need to append 0x00 byte +template <> +const std::array<uint8_t, 8> Pattern<BitStreamerJPEG, SaturatedTag>::Data{ + {uint8_t(~0U), 0, uint8_t(~0U), 0, uint8_t(~0U), 0, uint8_t(~0U), 0}}; + +INSTANTIATE_TYPED_TEST_SUITE_P(JPEG, BitStreamerTest, + Patterns<BitStreamerJPEG>); + +TEST(BitStreamerJPEGTest, 0xFF0x00Is0xFFTest) { + // If 0xFF0x00 byte sequence is found, it is just 0xFF, i.e. 0x00 is ignored. + static const std::array<uint8_t, 2 + 8> data{ + {0xFF, 0x00, 0b10100100, 0b01000010, 0b00001000, 0b00011111}}; + + const rawspeed::Array1DRef<const uint8_t> input( + data.data(), rawspeed::implicit_cast<int>(data.size())); + + BitStreamerJPEG p(input); + + ASSERT_EQ(p.getBits(8), 0xFF); + + for (int len = 1; len <= 7; len++) + ASSERT_EQ(p.getBits(len), 1) << " Where len: " << len; +} + +TEST(BitStreamerJPEGTest, 0xFF0xXXIsTheEndTest) { + // If 0xFF0xXX byte sequence is found, where XX != 0, then it is the end. + for (uint8_t end = 0x01; end < 0xFF; end++) { + static const std::array<uint8_t, 2 + 8> data{ + {0xFF, end, 0xFF, 0xFF, 0xFF, 0xFF}}; + + const rawspeed::Array1DRef<const uint8_t> input( + data.data(), rawspeed::implicit_cast<int>(data.size())); + + BitStreamerJPEG p(input); + + for (int cnt = 0; cnt <= 64 + 32 - 1; cnt++) + ASSERT_EQ(p.getBits(1), 0); + } +} + +} // namespace rawspeed_test diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/BitStreamerLSBTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/BitStreamerLSBTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/BitStreamerLSBTest.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/BitStreamerLSBTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,54 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2018 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "bitstreams/BitStreamerLSB.h" +#include "bitstreams/BitStreamerTest.h" +#include <array> +#include <cstdint> +#include <gtest/gtest.h> + +using rawspeed::BitStreamerLSB; + +namespace rawspeed_test { + +struct InvOnesTag; +struct OnesTag; + +template <> +const std::array<uint8_t, 8> Pattern<BitStreamerLSB, OnesTag>::Data = { + {/* [Byte0 Byte1 Byte2 Byte3] */ + /* Byte: [Bit7 .. Bit0] */ + 0b01001011, 0b10000100, 0b00100000, 0b11110000}}; +template <> uint32_t Pattern<BitStreamerLSB, OnesTag>::data(int index) { + const auto set = GenOnesLE(0, -1); + return set[index]; +} + +template <> +const std::array<uint8_t, 8> Pattern<BitStreamerLSB, InvOnesTag>::Data = { + {0b00100101, 0b01000010, 0b00010000, 0b11111000}}; +template <> uint32_t Pattern<BitStreamerLSB, InvOnesTag>::data(int index) { + const auto set = GenOnesLE(1, 0); + return set[index]; +} + +INSTANTIATE_TYPED_TEST_SUITE_P(LSB, BitStreamerTest, Patterns<BitStreamerLSB>); + +} // namespace rawspeed_test diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/BitStreamerMSB16Test.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/BitStreamerMSB16Test.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/BitStreamerMSB16Test.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/BitStreamerMSB16Test.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,55 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2018 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "bitstreams/BitStreamerMSB16.h" +#include "bitstreams/BitStreamerTest.h" +#include <array> +#include <cstdint> +#include <gtest/gtest.h> + +using rawspeed::BitStreamerMSB16; + +namespace rawspeed_test { + +struct InvOnesTag; +struct OnesTag; + +template <> +const std::array<uint8_t, 8> Pattern<BitStreamerMSB16, OnesTag>::Data = { + {/* [Byte1 Byte0 Byte3 Byte2] */ + /* Byte: [Bit0 .. Bit7] */ + 0b01000010, 0b10100100, 0b00011111, 0b00001000}}; +template <> uint32_t Pattern<BitStreamerMSB16, OnesTag>::data(int index) { + const auto set = GenOnesBE(1, 0); + return set[index]; +} + +template <> +const std::array<uint8_t, 8> Pattern<BitStreamerMSB16, InvOnesTag>::Data = { + {0b00100001, 0b11010010, 0b00001111, 0b00000100}}; +template <> uint32_t Pattern<BitStreamerMSB16, InvOnesTag>::data(int index) { + const auto set = GenOnesBE(0, -1); + return set[index]; +} + +INSTANTIATE_TYPED_TEST_SUITE_P(MSB16, BitStreamerTest, + Patterns<BitStreamerMSB16>); + +} // namespace rawspeed_test diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/BitStreamerMSB32Test.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/BitStreamerMSB32Test.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/BitStreamerMSB32Test.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/BitStreamerMSB32Test.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,55 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2018 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "bitstreams/BitStreamerMSB32.h" +#include "bitstreams/BitStreamerTest.h" +#include <array> +#include <cstdint> +#include <gtest/gtest.h> + +using rawspeed::BitStreamerMSB32; + +namespace rawspeed_test { + +struct InvOnesTag; +struct OnesTag; + +template <> +const std::array<uint8_t, 8> Pattern<BitStreamerMSB32, OnesTag>::Data = { + {/* [Byte3 Byte2 Byte1 Byte0] */ + /* Byte: [Bit0 .. Bit7] */ + 0b00011111, 0b00001000, 0b01000010, 0b10100100}}; +template <> uint32_t Pattern<BitStreamerMSB32, OnesTag>::data(int index) { + const auto set = GenOnesBE(1, 0); + return set[index]; +} + +template <> +const std::array<uint8_t, 8> Pattern<BitStreamerMSB32, InvOnesTag>::Data = { + {0b00001111, 0b00000100, 0b00100001, 0b11010010}}; +template <> uint32_t Pattern<BitStreamerMSB32, InvOnesTag>::data(int index) { + const auto set = GenOnesBE(0, -1); + return set[index]; +} + +INSTANTIATE_TYPED_TEST_SUITE_P(MSB32, BitStreamerTest, + Patterns<BitStreamerMSB32>); + +} // namespace rawspeed_test diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/BitStreamerTest.h darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/BitStreamerTest.h --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/BitStreamerTest.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/BitStreamerTest.h 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,257 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2018 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "adt/Array1DRef.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <array> +#include <cassert> +#include <cstdint> +#include <gtest/gtest.h> + +using rawspeed::Buffer; +using rawspeed::ByteStream; +using rawspeed::DataBuffer; +using rawspeed::Endianness; + +namespace rawspeed_test { + +template <typename T, typename Tag> struct BitStreamerPatternTest final {}; + +struct TestGetBitsTag; + +template <typename T> struct BitStreamerPatternTest<T, TestGetBitsTag> { + using PumpT = typename T::PumpT; + using PatternT = typename T::PatternT; + + template <typename L> static void Test(PumpT& pump, L gen) { + for (int len = 1; len <= 7; len++) + ASSERT_EQ(pump.getBits(len), gen(len)) << " Where len: " << len; + } +}; + +struct TestGetBitsNoFillTag; + +template <typename T> struct BitStreamerPatternTest<T, TestGetBitsNoFillTag> { + using PumpT = typename T::PumpT; + using PatternT = typename T::PatternT; + + template <typename L> static void Test(PumpT& pump, L gen) { + pump.fill(32); // Actually fills 32 bits + for (int len = 1; len <= 7; len++) + ASSERT_EQ(pump.getBitsNoFill(len), gen(len)) << " Where len: " << len; + } +}; + +struct TestPeekBitsTag; + +template <typename T> struct BitStreamerPatternTest<T, TestPeekBitsTag> { + using PumpT = typename T::PumpT; + using PatternT = typename T::PatternT; + + template <typename L> static void Test(PumpT& pump, L gen) { + for (int len = 1; len <= 7; len++) { + ASSERT_EQ(pump.peekBits(len), gen(len)) << " Where len: " << len; + pump.skipBitsNoFill(len); + } + } +}; + +struct TestPeekBitsNoFillTag; + +template <typename T> struct BitStreamerPatternTest<T, TestPeekBitsNoFillTag> { + using PumpT = typename T::PumpT; + using PatternT = typename T::PatternT; + + template <typename L> static void Test(PumpT& pump, L gen) { + pump.fill(32); // Actually fills 32 bits + for (int len = 1; len <= 7; len++) { + ASSERT_EQ(pump.peekBitsNoFill(len), gen(len)) + << " Where len: " << len; + pump.skipBitsNoFill(len); + } + } +}; + +struct TestIncreasingPeekLengthTag; + +template <typename T> +struct BitStreamerPatternTest<T, TestIncreasingPeekLengthTag> { + using PumpT = typename T::PumpT; + using PatternT = typename T::PatternT; + + template <typename L> static void Test(PumpT& pump, L data) { + static const auto MaxLen = 28; + for (int len = 1; len <= MaxLen; len++) + ASSERT_EQ(pump.peekBits(len), data(len)) << " Where len: " << len; + } +}; + +struct TestIncreasingPeekLengthNoFillTag; + +template <typename T> +struct BitStreamerPatternTest<T, TestIncreasingPeekLengthNoFillTag> { + using PumpT = typename T::PumpT; + using PatternT = typename T::PatternT; + + template <typename L> static void Test(PumpT& pump, L data) { + static const auto MaxLen = 28; + pump.fill(MaxLen); // Actually fills 32 bits + for (int len = 1; len <= MaxLen; len++) + ASSERT_EQ(pump.peekBitsNoFill(len), data(len)) + << " Where len: " << len; + } +}; + +template <typename T> class BitStreamerTest : public ::testing::Test { +public: + using PumpT = typename T::PumpT; + using PatternT = typename T::PatternT; + +protected: + template <typename Tag, typename TestDataType, typename L> + void runTest(const TestDataType& data, L gen) { + const rawspeed::Array1DRef<const uint8_t> input( + data.data(), rawspeed::implicit_cast<int>(data.size())); + + PumpT pump(input); + BitStreamerPatternTest<T, Tag>::Test(pump, gen); + } +}; + +TYPED_TEST_SUITE_P(BitStreamerTest); + +TYPED_TEST_P(BitStreamerTest, GetTest) { + this->template runTest<TestGetBitsTag>(TypeParam::PatternT::Data, + TypeParam::PatternT::element); +} +TYPED_TEST_P(BitStreamerTest, GetNoFillTest) { + this->template runTest<TestGetBitsNoFillTag>(TypeParam::PatternT::Data, + TypeParam::PatternT::element); +} +TYPED_TEST_P(BitStreamerTest, PeekTest) { + this->template runTest<TestPeekBitsTag>(TypeParam::PatternT::Data, + TypeParam::PatternT::element); +} +TYPED_TEST_P(BitStreamerTest, PeekNoFillTest) { + this->template runTest<TestPeekBitsNoFillTag>(TypeParam::PatternT::Data, + TypeParam::PatternT::element); +} +TYPED_TEST_P(BitStreamerTest, IncreasingPeekLengthTest) { + this->template runTest<TestIncreasingPeekLengthTag>( + TypeParam::PatternT::Data, TypeParam::PatternT::data); +} +TYPED_TEST_P(BitStreamerTest, IncreasingPeekLengthNoFillTest) { + this->template runTest<TestIncreasingPeekLengthNoFillTag>( + TypeParam::PatternT::Data, TypeParam::PatternT::data); +} + +REGISTER_TYPED_TEST_SUITE_P(BitStreamerTest, GetTest, GetNoFillTest, PeekTest, + PeekNoFillTest, IncreasingPeekLengthTest, + IncreasingPeekLengthNoFillTest); + +template <typename Pump, typename PatternTag> struct Pattern final {}; + +struct ZerosTag; + +template <typename Pump> struct Pattern<Pump, ZerosTag> { + static const std::array<uint8_t, 8> Data; + static uint32_t element(int index) { return 0U; } + static uint32_t data(int len) { return 0U; } +}; +template <typename Pump> +const std::array<uint8_t, 8> Pattern<Pump, ZerosTag>::Data{{/* zero-init */}}; + +struct OnesTag; + +template <typename Pump> struct Pattern<Pump, OnesTag> { + static const std::array<uint8_t, 8> Data; + static uint32_t element(int index) { return 1U; } + static uint32_t data(int len); +}; + +struct InvOnesTag; + +template <typename Pump> struct Pattern<Pump, InvOnesTag> { + static const std::array<uint8_t, 8> Data; + static uint32_t element(int index) { return 1U << (index - 1U); } + static uint32_t data(int len); +}; + +struct SaturatedTag; + +template <typename Pump> struct Pattern<Pump, SaturatedTag> { + static const std::array<uint8_t, 8> Data; + static uint32_t element(int index) { return (1U << index) - 1U; } + static uint32_t data(int len) { return (1U << len) - 1U; } +}; +template <typename Pump> +const std::array<uint8_t, 8> Pattern<Pump, SaturatedTag>::Data{ + {uint8_t(~0U), uint8_t(~0U), uint8_t(~0U), uint8_t(~0U)}}; + +auto GenOnesLE = [](int zerosToOutput, + int zerosOutputted) -> std::array<uint32_t, 29> { + std::array<uint32_t, 29> v; + uint32_t bits = 0; + int currBit = -1; + for (auto& value : v) { + if (zerosToOutput == zerosOutputted) { + assert(currBit < 32); + bits |= 0b1 << currBit; + zerosToOutput++; + zerosOutputted = 0; + } + value = bits; + zerosOutputted++; + currBit++; + } + return v; +}; +auto GenOnesBE = [](int zerosToOutput, + int zerosOutputted) -> std::array<uint32_t, 29> { + std::array<uint32_t, 29> v; + uint32_t bits = 0; + for (auto& value : v) { + if (zerosToOutput == zerosOutputted) { + bits |= 0b1; + zerosToOutput++; + zerosOutputted = 0; + } + value = bits; + zerosOutputted++; + bits <<= 1; + } + return v; +}; + +template <typename Pump, typename Pattern> struct PumpAndPattern final { + using PumpT = Pump; + using PatternT = Pattern; +}; + +template <typename Pump> +using Patterns = + ::testing::Types<PumpAndPattern<Pump, Pattern<Pump, ZerosTag>>, + PumpAndPattern<Pump, Pattern<Pump, OnesTag>>, + PumpAndPattern<Pump, Pattern<Pump, InvOnesTag>>, + PumpAndPattern<Pump, Pattern<Pump, SaturatedTag>>>; + +} // namespace rawspeed_test diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/BitVacuumerJPEGTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,213 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2024 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "bitstreams/BitVacuumerJPEG.h" +#include "adt/Array1DRef.h" +#include "adt/Casts.h" +#include "bitstreams/BitStreamerJPEG.h" +#include <cstdint> +#include <iterator> +#include <utility> +#include <vector> +#include <gmock/gmock.h> +#include <gtest/gtest.h> + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpragmas" +#pragma GCC diagnostic ignored "-Wunknown-warning-option" +#pragma GCC diagnostic ignored "-Wunknown-pragmas" +#pragma GCC diagnostic ignored "-Wframe-larger-than=" +#pragma GCC diagnostic ignored "-Wstack-usage=" + +namespace rawspeed { + +namespace { + +using RecepieEntryType = std::pair<uint32_t, uint8_t>; +using RecepieType = std::vector<RecepieEntryType>; +using ResultType = std::vector<uint8_t>; + +using valueType = std::pair<RecepieType, ResultType>; +class BitVacuumerJPEGTest : public ::testing::TestWithParam<valueType> { +protected: + BitVacuumerJPEGTest() = default; + virtual void SetUp() { + recepie = std::get<0>(GetParam()); + expectedOutput = std::get<1>(GetParam()); + } + + RecepieType recepie; + ResultType expectedOutput; +}; +const std::vector<valueType> values = {{ + // clang-format off + {RecepieType({{std::make_pair(0x00, 0)}}), ResultType()}, + {RecepieType({{std::make_pair(0x00, 1)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 2)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 3)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 4)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 5)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 6)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 7)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 9)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 10)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 11)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 12)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 13)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 14)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 15)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 16)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 17)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 18)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 19)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 20)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 21)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 22)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 23)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 24)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 25)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 26)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 27)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 28)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 29)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 30)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 31)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 32)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + + {RecepieType({{std::make_pair(0xFF, 8)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 0)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 1)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 2)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 3)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 4)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 5)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 6)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 7)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 8)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 9)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 10)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 11)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 12)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 13)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 14)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 15)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 16)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 17)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 18)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 19)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 20)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 21)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 22)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 23)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 24)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 25)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 26)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 27)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 28)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 29)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 30)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 31)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 32)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + + {RecepieType({{std::make_pair(0x00, 0), std::make_pair(0xFF, 8)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 1), std::make_pair(0xFF, 8)}}), ResultType({{0x7F, 0x80, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 2), std::make_pair(0xFF, 8)}}), ResultType({{0x3F, 0xC0, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 3), std::make_pair(0xFF, 8)}}), ResultType({{0x1F, 0xE0, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 4), std::make_pair(0xFF, 8)}}), ResultType({{0x0F, 0xF0, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 5), std::make_pair(0xFF, 8)}}), ResultType({{0x07, 0xF8, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 6), std::make_pair(0xFF, 8)}}), ResultType({{0x03, 0xFC, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 7), std::make_pair(0xFF, 8)}}), ResultType({{0x01, 0xFE, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 8), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 9), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x7F, 0x80, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 10), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x3F, 0xC0, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 11), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x1F, 0xE0, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 12), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x0F, 0xF0, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 13), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x07, 0xF8, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 14), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x03, 0xFC, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 15), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x01, 0xFE, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 16), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0xFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 17), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x7F, 0x80}})}, + {RecepieType({{std::make_pair(0x00, 18), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x3F, 0xC0}})}, + {RecepieType({{std::make_pair(0x00, 19), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x1F, 0xE0}})}, + {RecepieType({{std::make_pair(0x00, 20), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x0F, 0xF0}})}, + {RecepieType({{std::make_pair(0x00, 21), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x07, 0xF8}})}, + {RecepieType({{std::make_pair(0x00, 22), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x03, 0xFC}})}, + {RecepieType({{std::make_pair(0x00, 23), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x01, 0xFE}})}, + {RecepieType({{std::make_pair(0x00, 24), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0xFF, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 25), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 26), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 27), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 28), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 29), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 30), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 31), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 32), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00}})}, + // clang-format on +}}; + +INSTANTIATE_TEST_SUITE_P(Patterns, BitVacuumerJPEGTest, + ::testing::ValuesIn(values)); + +ResultType synthesizeBitstream(const RecepieType& recepie) { + ResultType bitstream; + + { + auto bsInserter = std::back_inserter(bitstream); + using BitVacuumer = BitVacuumerJPEG<decltype(bsInserter)>; + auto bv = BitVacuumer(bsInserter); + + for (const auto& e : recepie) + bv.put(e.first, e.second); + } + + return bitstream; +} + +TEST_P(BitVacuumerJPEGTest, Synthesis) { + const ResultType bitstream = synthesizeBitstream(recepie); + ASSERT_THAT(bitstream, testing::ContainerEq(expectedOutput)); +} + +TEST_P(BitVacuumerJPEGTest, Dissolution) { + if (expectedOutput.empty()) + return; + + if (constexpr int MinSize = + BitStreamerTraits<BitStreamerJPEG>::MaxProcessBytes; + expectedOutput.size() < MinSize) + expectedOutput.resize(MinSize, uint8_t(0)); + + auto bs = BitStreamerJPEG(Array1DRef( + expectedOutput.data(), implicit_cast<int>(expectedOutput.size()))); + for (int i = 0; i != implicit_cast<int>(recepie.size()); ++i) { + const auto [expectedVal, len] = recepie[i]; + bs.fill(32); + const auto actualVal = len != 0 ? bs.getBitsNoFill(len) : 0; + ASSERT_THAT(actualVal, expectedVal); + } +} + +} // namespace + +} // namespace rawspeed + +// NOTE: no `#pragma GCC diagnostic pop` wanted! diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/BitVacuumerLSBTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,208 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2024 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "bitstreams/BitVacuumerLSB.h" +#include "adt/Array1DRef.h" +#include "adt/Casts.h" +#include "bitstreams/BitStreamerLSB.h" +#include <cstdint> +#include <iterator> +#include <utility> +#include <vector> +#include <gmock/gmock.h> +#include <gtest/gtest.h> + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpragmas" +#pragma GCC diagnostic ignored "-Wunknown-warning-option" +#pragma GCC diagnostic ignored "-Wunknown-pragmas" +#pragma GCC diagnostic ignored "-Wframe-larger-than=" +#pragma GCC diagnostic ignored "-Wstack-usage=" + +namespace rawspeed { + +namespace { + +using RecepieEntryType = std::pair<uint32_t, uint8_t>; +using RecepieType = std::vector<RecepieEntryType>; +using ResultType = std::vector<uint8_t>; + +using valueType = std::pair<RecepieType, ResultType>; +class BitVacuumerLSBTest : public ::testing::TestWithParam<valueType> { +protected: + BitVacuumerLSBTest() = default; + virtual void SetUp() { + recepie = std::get<0>(GetParam()); + expectedOutput = std::get<1>(GetParam()); + } + + RecepieType recepie; + ResultType expectedOutput; +}; +const std::vector<valueType> values = {{ + // clang-format off + {RecepieType({{std::make_pair(0x00, 0)}}), ResultType()}, + {RecepieType({{std::make_pair(0x00, 1)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 2)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 3)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 4)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 5)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 6)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 7)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 9)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 10)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 11)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 12)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 13)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 14)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 15)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 16)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 17)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 18)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 19)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 20)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 21)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 22)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 23)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 24)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 25)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 26)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 27)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 28)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 29)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 30)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 31)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 32)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + + {RecepieType({{std::make_pair(0xFF, 8)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 0)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 1)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 2)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 3)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 4)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 5)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 6)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 7)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 8)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 9)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 10)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 11)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 12)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 13)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 14)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 15)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 16)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 17)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 18)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 19)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 20)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 21)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 22)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 23)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 24)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 25)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 26)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 27)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 28)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 29)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 30)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 31)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 32)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + + {RecepieType({{std::make_pair(0x00, 0), std::make_pair(0xFF, 8)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 1), std::make_pair(0xFF, 8)}}), ResultType({{0xFE, 0x01, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 2), std::make_pair(0xFF, 8)}}), ResultType({{0xFC, 0x03, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 3), std::make_pair(0xFF, 8)}}), ResultType({{0xF8, 0x07, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 4), std::make_pair(0xFF, 8)}}), ResultType({{0xF0, 0x0F, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 5), std::make_pair(0xFF, 8)}}), ResultType({{0xE0, 0x1F, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 6), std::make_pair(0xFF, 8)}}), ResultType({{0xC0, 0x3F, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 7), std::make_pair(0xFF, 8)}}), ResultType({{0x80, 0x7F, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 8), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0xFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 9), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0xFE, 0x01, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 10), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0xFC, 0x03, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 11), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0xF8, 0x07, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 12), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0xF0, 0x0F, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 13), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0xE0, 0x1F, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 14), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0xC0, 0x3F, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 15), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x80, 0x7F, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 16), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0xFF, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 17), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0xFE, 0x01}})}, + {RecepieType({{std::make_pair(0x00, 18), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0xFC, 0x03}})}, + {RecepieType({{std::make_pair(0x00, 19), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0xF8, 0x07}})}, + {RecepieType({{std::make_pair(0x00, 20), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0xF0, 0x0F}})}, + {RecepieType({{std::make_pair(0x00, 21), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0xE0, 0x1F}})}, + {RecepieType({{std::make_pair(0x00, 22), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0xC0, 0x3F}})}, + {RecepieType({{std::make_pair(0x00, 23), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x80, 0x7F}})}, + {RecepieType({{std::make_pair(0x00, 24), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0x00, 25), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 26), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0xFC, 0x03, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 27), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0xF8, 0x07, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 28), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 29), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0xE0, 0x1F, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 30), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 31), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x80, 0x7F, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 32), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00}})}, + // clang-format on +}}; + +INSTANTIATE_TEST_SUITE_P(Patterns, BitVacuumerLSBTest, + ::testing::ValuesIn(values)); + +ResultType synthesizeBitstream(const RecepieType& recepie) { + ResultType bitstream; + + { + auto bsInserter = std::back_inserter(bitstream); + using BitVacuumer = BitVacuumerLSB<decltype(bsInserter)>; + auto bv = BitVacuumer(bsInserter); + + for (const auto& e : recepie) + bv.put(e.first, e.second); + } + + return bitstream; +} + +TEST_P(BitVacuumerLSBTest, Synthesis) { + const ResultType bitstream = synthesizeBitstream(recepie); + ASSERT_THAT(bitstream, testing::ContainerEq(expectedOutput)); +} + +TEST_P(BitVacuumerLSBTest, Dissolution) { + if (expectedOutput.empty()) + return; + + auto bs = BitStreamerLSB(Array1DRef( + expectedOutput.data(), implicit_cast<int>(expectedOutput.size()))); + for (int i = 0; i != implicit_cast<int>(recepie.size()); ++i) { + const auto [expectedVal, len] = recepie[i]; + bs.fill(32); + const auto actualVal = len != 0 ? bs.getBitsNoFill(len) : 0; + ASSERT_THAT(actualVal, expectedVal); + } +} + +} // namespace + +} // namespace rawspeed + +// NOTE: no `#pragma GCC diagnostic pop` wanted! diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/BitVacuumerMSB16Test.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,205 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2024 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "bitstreams/BitVacuumerMSB16.h" +#include "adt/Array1DRef.h" +#include "adt/Casts.h" +#include "bitstreams/BitStreamerMSB16.h" +#include <cstdint> +#include <iterator> +#include <utility> +#include <vector> +#include <gmock/gmock.h> +#include <gtest/gtest.h> + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpragmas" +#pragma GCC diagnostic ignored "-Wunknown-warning-option" +#pragma GCC diagnostic ignored "-Wunknown-pragmas" +#pragma GCC diagnostic ignored "-Wframe-larger-than=" +#pragma GCC diagnostic ignored "-Wstack-usage=" + +namespace rawspeed { + +namespace { + +using RecepieEntryType = std::pair<uint32_t, uint8_t>; +using RecepieType = std::vector<RecepieEntryType>; +using ResultType = std::vector<uint8_t>; + +using valueType = std::pair<RecepieType, ResultType>; +class BitVacuumerMSB16Test : public ::testing::TestWithParam<valueType> { +protected: + BitVacuumerMSB16Test() = default; + virtual void SetUp() { + recepie = std::get<0>(GetParam()); + expectedOutput = std::get<1>(GetParam()); + } + + RecepieType recepie; + ResultType expectedOutput; +}; +const std::vector<valueType> values = {{ + // clang-format off + {RecepieType({{std::make_pair(0x00, 0)}}), ResultType()}, + {RecepieType({{std::make_pair(0x00, 1)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 2)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 3)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 4)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 5)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 6)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 7)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 9)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 10)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 11)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 12)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 13)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 14)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 15)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 16)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 17)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 18)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 19)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 20)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 21)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 22)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 23)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 24)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 25)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 26)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 27)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 28)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 29)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 30)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 31)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 32)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 0)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 1)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 2)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 3)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 4)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 5)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 6)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 7)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 8)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 9)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 10)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 11)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 12)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 13)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 14)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 15)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 16)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 17)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 18)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 19)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 20)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 21)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 22)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 23)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 24)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 25)}}), ResultType({{0x00, 0XFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 26)}}), ResultType({{0x00, 0XFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 27)}}), ResultType({{0x00, 0XFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 28)}}), ResultType({{0x00, 0XFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 29)}}), ResultType({{0x00, 0XFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 30)}}), ResultType({{0x00, 0XFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 31)}}), ResultType({{0x00, 0XFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0XFF, 8), std::make_pair(0x00, 32)}}), ResultType({{0x00, 0XFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 0), std::make_pair(0XFF, 8)}}), ResultType({{0x00, 0XFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 1), std::make_pair(0XFF, 8)}}), ResultType({{0X80, 0X7F, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 2), std::make_pair(0XFF, 8)}}), ResultType({{0XC0, 0X3F, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 3), std::make_pair(0XFF, 8)}}), ResultType({{0XE0, 0X1F, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 4), std::make_pair(0XFF, 8)}}), ResultType({{0XF0, 0XF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 5), std::make_pair(0XFF, 8)}}), ResultType({{0XF8, 0X7, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 6), std::make_pair(0XFF, 8)}}), ResultType({{0XFC, 0X3, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 7), std::make_pair(0XFF, 8)}}), ResultType({{0XFE, 0X1, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 8), std::make_pair(0XFF, 8)}}), ResultType({{0XFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 9), std::make_pair(0XFF, 8)}}), ResultType({{0X7F, 0x00, 0x00, 0X80}})}, + {RecepieType({{std::make_pair(0x00, 10), std::make_pair(0XFF, 8)}}), ResultType({{0X3F, 0x00, 0x00, 0XC0}})}, + {RecepieType({{std::make_pair(0x00, 11), std::make_pair(0XFF, 8)}}), ResultType({{0X1F, 0x00, 0x00, 0XE0}})}, + {RecepieType({{std::make_pair(0x00, 12), std::make_pair(0XFF, 8)}}), ResultType({{0XF, 0x00, 0x00, 0XF0}})}, + {RecepieType({{std::make_pair(0x00, 13), std::make_pair(0XFF, 8)}}), ResultType({{0X7, 0x00, 0x00, 0XF8}})}, + {RecepieType({{std::make_pair(0x00, 14), std::make_pair(0XFF, 8)}}), ResultType({{0X3, 0x00, 0x00, 0XFC}})}, + {RecepieType({{std::make_pair(0x00, 15), std::make_pair(0XFF, 8)}}), ResultType({{0X1, 0x00, 0x00, 0XFE}})}, + {RecepieType({{std::make_pair(0x00, 16), std::make_pair(0XFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0XFF}})}, + {RecepieType({{std::make_pair(0x00, 17), std::make_pair(0XFF, 8)}}), ResultType({{0x00, 0x00, 0X80, 0X7F}})}, + {RecepieType({{std::make_pair(0x00, 18), std::make_pair(0XFF, 8)}}), ResultType({{0x00, 0x00, 0XC0, 0X3F}})}, + {RecepieType({{std::make_pair(0x00, 19), std::make_pair(0XFF, 8)}}), ResultType({{0x00, 0x00, 0XE0, 0X1F}})}, + {RecepieType({{std::make_pair(0x00, 20), std::make_pair(0XFF, 8)}}), ResultType({{0x00, 0x00, 0XF0, 0XF}})}, + {RecepieType({{std::make_pair(0x00, 21), std::make_pair(0XFF, 8)}}), ResultType({{0x00, 0x00, 0XF8, 0X7}})}, + {RecepieType({{std::make_pair(0x00, 22), std::make_pair(0XFF, 8)}}), ResultType({{0x00, 0x00, 0XFC, 0X3}})}, + {RecepieType({{std::make_pair(0x00, 23), std::make_pair(0XFF, 8)}}), ResultType({{0x00, 0x00, 0XFE, 0X1}})}, + {RecepieType({{std::make_pair(0x00, 24), std::make_pair(0XFF, 8)}}), ResultType({{0x00, 0x00, 0XFF, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 25), std::make_pair(0XFF, 8)}}), ResultType({{0x00, 0x00, 0X7F, 0x00, 0x00, 0X80, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 26), std::make_pair(0XFF, 8)}}), ResultType({{0x00, 0x00, 0X3F, 0x00, 0x00, 0XC0, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 27), std::make_pair(0XFF, 8)}}), ResultType({{0x00, 0x00, 0X1F, 0x00, 0x00, 0XE0, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 28), std::make_pair(0XFF, 8)}}), ResultType({{0x00, 0x00, 0XF, 0x00, 0x00, 0XF0, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 29), std::make_pair(0XFF, 8)}}), ResultType({{0x00, 0x00, 0X7, 0x00, 0x00, 0XF8, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 30), std::make_pair(0XFF, 8)}}), ResultType({{0x00, 0x00, 0X3, 0x00, 0x00, 0XFC, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 31), std::make_pair(0XFF, 8)}}), ResultType({{0x00, 0x00, 0X1, 0x00, 0x00, 0XFE, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 32), std::make_pair(0XFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x00, 0x00, 0XFF, 0x00, 0x00}})}, + // clang-format on +}}; + +INSTANTIATE_TEST_SUITE_P(Patterns, BitVacuumerMSB16Test, + ::testing::ValuesIn(values)); + +ResultType synthesizeBitstream(const RecepieType& recepie) { + ResultType bitstream; + + { + auto bsInserter = std::back_inserter(bitstream); + using BitVacuumer = BitVacuumerMSB16<decltype(bsInserter)>; + auto bv = BitVacuumer(bsInserter); + + for (const auto& e : recepie) + bv.put(e.first, e.second); + } + + return bitstream; +} + +TEST_P(BitVacuumerMSB16Test, Synthesis) { + const ResultType bitstream = synthesizeBitstream(recepie); + ASSERT_THAT(bitstream, testing::ContainerEq(expectedOutput)); +} + +TEST_P(BitVacuumerMSB16Test, Dissolution) { + if (expectedOutput.empty()) + return; + + auto bs = BitStreamerMSB16(Array1DRef( + expectedOutput.data(), implicit_cast<int>(expectedOutput.size()))); + for (int i = 0; i != implicit_cast<int>(recepie.size()); ++i) { + const auto [expectedVal, len] = recepie[i]; + bs.fill(32); + const auto actualVal = len != 0 ? bs.getBitsNoFill(len) : 0; + ASSERT_THAT(actualVal, expectedVal); + } +} + +} // namespace + +} // namespace rawspeed + +// NOTE: no `#pragma GCC diagnostic pop` wanted! diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/BitVacuumerMSB32Test.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,208 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2024 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "bitstreams/BitVacuumerMSB32.h" +#include "adt/Array1DRef.h" +#include "adt/Casts.h" +#include "bitstreams/BitStreamerMSB32.h" +#include <cstdint> +#include <iterator> +#include <utility> +#include <vector> +#include <gmock/gmock.h> +#include <gtest/gtest.h> + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpragmas" +#pragma GCC diagnostic ignored "-Wunknown-warning-option" +#pragma GCC diagnostic ignored "-Wunknown-pragmas" +#pragma GCC diagnostic ignored "-Wframe-larger-than=" +#pragma GCC diagnostic ignored "-Wstack-usage=" + +namespace rawspeed { + +namespace { + +using RecepieEntryType = std::pair<uint32_t, uint8_t>; +using RecepieType = std::vector<RecepieEntryType>; +using ResultType = std::vector<uint8_t>; + +using valueType = std::pair<RecepieType, ResultType>; +class BitVacuumerMSB32Test : public ::testing::TestWithParam<valueType> { +protected: + BitVacuumerMSB32Test() = default; + virtual void SetUp() { + recepie = std::get<0>(GetParam()); + expectedOutput = std::get<1>(GetParam()); + } + + RecepieType recepie; + ResultType expectedOutput; +}; +const std::vector<valueType> values = {{ + // clang-format off + {RecepieType({{std::make_pair(0x00, 0)}}), ResultType()}, + {RecepieType({{std::make_pair(0x00, 1)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 2)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 3)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 4)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 5)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 6)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 7)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 9)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 10)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 11)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 12)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 13)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 14)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 15)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 16)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 17)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 18)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 19)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 20)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 21)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 22)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 23)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 24)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 25)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 26)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 27)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 28)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 29)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 30)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 31)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 32)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + + {RecepieType({{std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 0)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 1)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 2)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 3)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 4)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 5)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 6)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 7)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 8)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 9)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 10)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 11)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 12)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 13)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 14)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 15)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 16)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 17)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 18)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 19)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 20)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 21)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 22)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 23)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 24)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 25)}}), ResultType({{0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 26)}}), ResultType({{0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 27)}}), ResultType({{0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 28)}}), ResultType({{0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 29)}}), ResultType({{0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 30)}}), ResultType({{0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 31)}}), ResultType({{0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 32)}}), ResultType({{0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00}})}, + + {RecepieType({{std::make_pair(0x00, 0), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0x00, 1), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x80, 0x7F}})}, + {RecepieType({{std::make_pair(0x00, 2), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0xC0, 0x3F}})}, + {RecepieType({{std::make_pair(0x00, 3), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0xE0, 0x1F}})}, + {RecepieType({{std::make_pair(0x00, 4), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0xF0, 0x0F}})}, + {RecepieType({{std::make_pair(0x00, 5), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0xF8, 0x07}})}, + {RecepieType({{std::make_pair(0x00, 6), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0xFC, 0x03}})}, + {RecepieType({{std::make_pair(0x00, 7), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0xFE, 0x01}})}, + {RecepieType({{std::make_pair(0x00, 8), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0xFF, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 9), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x80, 0x7F, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 10), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0xC0, 0x3F, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 11), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0xE0, 0x1F, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 12), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0xF0, 0x0F, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 13), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0xF8, 0x07, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 14), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0xFC, 0x03, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 15), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0xFE, 0x01, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 16), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0xFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 17), std::make_pair(0xFF, 8)}}), ResultType({{0x80, 0x7F, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 18), std::make_pair(0xFF, 8)}}), ResultType({{0xC0, 0x3F, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 19), std::make_pair(0xFF, 8)}}), ResultType({{0xE0, 0x1F, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 20), std::make_pair(0xFF, 8)}}), ResultType({{0xF0, 0x0F, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 21), std::make_pair(0xFF, 8)}}), ResultType({{0xF8, 0x07, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 22), std::make_pair(0xFF, 8)}}), ResultType({{0xFC, 0x03, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 23), std::make_pair(0xFF, 8)}}), ResultType({{0xFE, 0x01, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 24), std::make_pair(0xFF, 8)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 25), std::make_pair(0xFF, 8)}}), ResultType({{0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80}})}, + {RecepieType({{std::make_pair(0x00, 26), std::make_pair(0xFF, 8)}}), ResultType({{0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0}})}, + {RecepieType({{std::make_pair(0x00, 27), std::make_pair(0xFF, 8)}}), ResultType({{0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0}})}, + {RecepieType({{std::make_pair(0x00, 28), std::make_pair(0xFF, 8)}}), ResultType({{0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0}})}, + {RecepieType({{std::make_pair(0x00, 29), std::make_pair(0xFF, 8)}}), ResultType({{0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8}})}, + {RecepieType({{std::make_pair(0x00, 30), std::make_pair(0xFF, 8)}}), ResultType({{0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC}})}, + {RecepieType({{std::make_pair(0x00, 31), std::make_pair(0xFF, 8)}}), ResultType({{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE}})}, + {RecepieType({{std::make_pair(0x00, 32), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF}})}, + // clang-format on +}}; + +INSTANTIATE_TEST_SUITE_P(Patterns, BitVacuumerMSB32Test, + ::testing::ValuesIn(values)); + +ResultType synthesizeBitstream(const RecepieType& recepie) { + ResultType bitstream; + + { + auto bsInserter = std::back_inserter(bitstream); + using BitVacuumer = BitVacuumerMSB32<decltype(bsInserter)>; + auto bv = BitVacuumer(bsInserter); + + for (const auto& e : recepie) + bv.put(e.first, e.second); + } + + return bitstream; +} + +TEST_P(BitVacuumerMSB32Test, Synthesis) { + const ResultType bitstream = synthesizeBitstream(recepie); + ASSERT_THAT(bitstream, testing::ContainerEq(expectedOutput)); +} + +TEST_P(BitVacuumerMSB32Test, Dissolution) { + if (expectedOutput.empty()) + return; + + auto bs = BitStreamerMSB32(Array1DRef( + expectedOutput.data(), implicit_cast<int>(expectedOutput.size()))); + for (int i = 0; i != implicit_cast<int>(recepie.size()); ++i) { + const auto [expectedVal, len] = recepie[i]; + bs.fill(32); + const auto actualVal = len != 0 ? bs.getBitsNoFill(len) : 0; + ASSERT_THAT(actualVal, expectedVal); + } +} + +} // namespace + +} // namespace rawspeed + +// NOTE: no `#pragma GCC diagnostic pop` wanted! diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/BitVacuumerMSBTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,208 @@ +/* + RawSpeed - RAW file decoder. + + Copyright (C) 2024 Roman Lebedev + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "bitstreams/BitVacuumerMSB.h" +#include "adt/Array1DRef.h" +#include "adt/Casts.h" +#include "bitstreams/BitStreamerMSB.h" +#include <cstdint> +#include <iterator> +#include <utility> +#include <vector> +#include <gmock/gmock.h> +#include <gtest/gtest.h> + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpragmas" +#pragma GCC diagnostic ignored "-Wunknown-warning-option" +#pragma GCC diagnostic ignored "-Wunknown-pragmas" +#pragma GCC diagnostic ignored "-Wframe-larger-than=" +#pragma GCC diagnostic ignored "-Wstack-usage=" + +namespace rawspeed { + +namespace { + +using RecepieEntryType = std::pair<uint32_t, uint8_t>; +using RecepieType = std::vector<RecepieEntryType>; +using ResultType = std::vector<uint8_t>; + +using valueType = std::pair<RecepieType, ResultType>; +class BitVacuumerMSBTest : public ::testing::TestWithParam<valueType> { +protected: + BitVacuumerMSBTest() = default; + virtual void SetUp() { + recepie = std::get<0>(GetParam()); + expectedOutput = std::get<1>(GetParam()); + } + + RecepieType recepie; + ResultType expectedOutput; +}; +const std::vector<valueType> values = {{ + // clang-format off + {RecepieType({{std::make_pair(0x00, 0)}}), ResultType()}, + {RecepieType({{std::make_pair(0x00, 1)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 2)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 3)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 4)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 5)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 6)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 7)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 9)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 10)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 11)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 12)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 13)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 14)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 15)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 16)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 17)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 18)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 19)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 20)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 21)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 22)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 23)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 24)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 25)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 26)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 27)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 28)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 29)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 30)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 31)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 32)}}), ResultType({{0x00, 0x00, 0x00, 0x00}})}, + + {RecepieType({{std::make_pair(0xFF, 8)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 0)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 1)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 2)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 3)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 4)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 5)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 6)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 7)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 8)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 9)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 10)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 11)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 12)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 13)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 14)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 15)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 16)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 17)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 18)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 19)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 20)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 21)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 22)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 23)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 24)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 25)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 26)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 27)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 28)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 29)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 30)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 31)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0xFF, 8), std::make_pair(0x00, 32)}}), ResultType({{0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}})}, + + {RecepieType({{std::make_pair(0x00, 0), std::make_pair(0xFF, 8)}}), ResultType({{0xFF, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 1), std::make_pair(0xFF, 8)}}), ResultType({{0x7F, 0x80, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 2), std::make_pair(0xFF, 8)}}), ResultType({{0x3F, 0xC0, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 3), std::make_pair(0xFF, 8)}}), ResultType({{0x1F, 0xE0, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 4), std::make_pair(0xFF, 8)}}), ResultType({{0x0F, 0xF0, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 5), std::make_pair(0xFF, 8)}}), ResultType({{0x07, 0xF8, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 6), std::make_pair(0xFF, 8)}}), ResultType({{0x03, 0xFC, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 7), std::make_pair(0xFF, 8)}}), ResultType({{0x01, 0xFE, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 8), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0xFF, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 9), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x7F, 0x80, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 10), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x3F, 0xC0, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 11), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x1F, 0xE0, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 12), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x0F, 0xF0, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 13), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x07, 0xF8, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 14), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x03, 0xFC, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 15), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x01, 0xFE, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 16), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0xFF, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 17), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x7F, 0x80}})}, + {RecepieType({{std::make_pair(0x00, 18), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x3F, 0xC0}})}, + {RecepieType({{std::make_pair(0x00, 19), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x1F, 0xE0}})}, + {RecepieType({{std::make_pair(0x00, 20), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x0F, 0xF0}})}, + {RecepieType({{std::make_pair(0x00, 21), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x07, 0xF8}})}, + {RecepieType({{std::make_pair(0x00, 22), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x03, 0xFC}})}, + {RecepieType({{std::make_pair(0x00, 23), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x01, 0xFE}})}, + {RecepieType({{std::make_pair(0x00, 24), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0xFF}})}, + {RecepieType({{std::make_pair(0x00, 25), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 26), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 27), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 28), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 29), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 30), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 31), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x00}})}, + {RecepieType({{std::make_pair(0x00, 32), std::make_pair(0xFF, 8)}}), ResultType({{0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00}})}, + // clang-format on +}}; + +INSTANTIATE_TEST_SUITE_P(Patterns, BitVacuumerMSBTest, + ::testing::ValuesIn(values)); + +ResultType synthesizeBitstream(const RecepieType& recepie) { + ResultType bitstream; + + { + auto bsInserter = std::back_inserter(bitstream); + using BitVacuumer = BitVacuumerMSB<decltype(bsInserter)>; + auto bv = BitVacuumer(bsInserter); + + for (const auto& e : recepie) + bv.put(e.first, e.second); + } + + return bitstream; +} + +TEST_P(BitVacuumerMSBTest, Synthesis) { + const ResultType bitstream = synthesizeBitstream(recepie); + ASSERT_THAT(bitstream, testing::ContainerEq(expectedOutput)); +} + +TEST_P(BitVacuumerMSBTest, Dissolution) { + if (expectedOutput.empty()) + return; + + auto bs = BitStreamerMSB(Array1DRef( + expectedOutput.data(), implicit_cast<int>(expectedOutput.size()))); + for (int i = 0; i != implicit_cast<int>(recepie.size()); ++i) { + const auto [expectedVal, len] = recepie[i]; + bs.fill(32); + const auto actualVal = len != 0 ? bs.getBitsNoFill(len) : 0; + ASSERT_THAT(actualVal, expectedVal); + } +} + +} // namespace + +} // namespace rawspeed + +// NOTE: no `#pragma GCC diagnostic pop` wanted! diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/bitstreams/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/bitstreams/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -0,0 +1,16 @@ +FILE(GLOB RAWSPEED_TEST_SOURCES + "BitStreamerJPEGTest.cpp" + "BitStreamerLSBTest.cpp" + "BitStreamerMSB16Test.cpp" + "BitStreamerMSB32Test.cpp" + "BitStreamerMSBTest.cpp" + "BitVacuumerJPEGTest.cpp" + "BitVacuumerLSBTest.cpp" + "BitVacuumerMSB16Test.cpp" + "BitVacuumerMSB32Test.cpp" + "BitVacuumerMSBTest.cpp" +) + +foreach(SRC ${RAWSPEED_TEST_SOURCES}) + add_rs_test("${SRC}") +endforeach() diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/codes/HuffmanCodeTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,22 +18,27 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "codes/HuffmanCode.h" // for HuffmanCode... -#include "adt/Array1DRef.h" // for Array1DRef +#include "codes/HuffmanCode.h" +#include "adt/Array1DRef.h" +#include "adt/Casts.h" +#include "codes/AbstractPrefixCode.h" #include "codes/AbstractPrefixCodeDecoder.h" -#include "io/Buffer.h" // for Buffer -#include <algorithm> // for max, min -#include <bitset> // for bitset -#include <cassert> // for assert -#include <cstdint> // for uint8_t, uint32_t -#include <initializer_list> // for initializer_list -#include <ostream> // for operator<<, ostream -#include <string> // for allocator, basic_string -#include <tuple> // for make_tuple, get, tuple -#include <type_traits> // for __decay_and_strip -#include <utility> // for move -#include <vector> // for vector -#include <gtest/gtest.h> // for ParamIteratorInterface +#include "io/Buffer.h" +#include <algorithm> +#include <bitset> +#include <cassert> +#include <cstdint> +#include <initializer_list> +#include <ostream> +#include <string> +#include <tuple> +#include <utility> +#include <vector> +#include <gtest/gtest.h> + +#ifndef NDEBUG +#include <cstdlib> +#endif namespace rawspeed { struct BaselineCodeTag; @@ -120,16 +125,25 @@ make_tuple(0b11, 2, false), // clang-format on }; -INSTANTIATE_TEST_CASE_P(CodeSymbolDeathTest, CodeSymbolDeathTest, - ::testing::ValuesIn(CodeSymbolData)); +INSTANTIATE_TEST_SUITE_P(CodeSymbolDeathTest, CodeSymbolDeathTest, + ::testing::ValuesIn(CodeSymbolData)); TEST_P(CodeSymbolDeathTest, CodeSymbolDeathTest) { if (die) { - ASSERT_DEATH({ HuffmanCode<BaselineCodeTag>::CodeSymbol(val, len); }, - "code <= \\(\\(1U << code_len\\) - 1U\\)"); + ASSERT_DEATH( + { + HuffmanCode<BaselineCodeTag>::CodeSymbol( + rawspeed::implicit_cast< + typename rawspeed::CodeTraits<BaselineCodeTag>::CodeTy>(val), + rawspeed::implicit_cast<uint8_t>(len)); + }, + "code <= \\(\\(1U << code_len\\) - 1U\\)"); } else { ASSERT_EXIT( { - HuffmanCode<BaselineCodeTag>::CodeSymbol(val, len); + HuffmanCode<BaselineCodeTag>::CodeSymbol( + rawspeed::implicit_cast< + typename rawspeed::CodeTraits<BaselineCodeTag>::CodeTy>(val), + rawspeed::implicit_cast<uint8_t>(len)); exit(0); }, ::testing::ExitedWithCode(0), ""); @@ -164,12 +178,15 @@ make_tuple(0b11, 2, "0b11"), // clang-format on }; -INSTANTIATE_TEST_CASE_P(CodeSymbolPrintTest, CodeSymbolPrintTest, - ::testing::ValuesIn(CodeSymbolPrintData)); +INSTANTIATE_TEST_SUITE_P(CodeSymbolPrintTest, CodeSymbolPrintTest, + ::testing::ValuesIn(CodeSymbolPrintData)); TEST_P(CodeSymbolPrintTest, CodeSymbolPrintTest) { - ASSERT_EQ(::testing::PrintToString( - HuffmanCode<BaselineCodeTag>::CodeSymbol(val, len)), - str); + ASSERT_EQ( + ::testing::PrintToString(HuffmanCode<BaselineCodeTag>::CodeSymbol( + rawspeed::implicit_cast< + typename rawspeed::CodeTraits<BaselineCodeTag>::CodeTy>(val), + rawspeed::implicit_cast<uint8_t>(len))), + str); } using CodeSymbolHaveCommonPrefixDataType = @@ -205,7 +222,7 @@ return allVariants; } static const auto allPossibleCodeSymbols = GenerateAllPossibleCodeSymbols(); -INSTANTIATE_TEST_CASE_P( +INSTANTIATE_TEST_SUITE_P( CodeSymbolHaveCommonPrefixTest, CodeSymbolHaveCommonPrefixTest, ::testing::Combine(::testing::ValuesIn(allPossibleCodeSymbols), ::testing::ValuesIn(allPossibleCodeSymbols))); @@ -264,7 +281,8 @@ HuffmanCode<BaselineCodeTag> hc; std::vector<uint8_t> v(nCodesPerLength.begin(), nCodesPerLength.end()); v.resize(16); - Buffer b(v.data(), v.size()); + Buffer b(v.data(), + rawspeed::implicit_cast<rawspeed::Buffer::size_type>(v.size())); hc.setNCodesPerLength(b); return hc; @@ -275,7 +293,8 @@ HuffmanCode<BaselineCodeTag> hc; std::vector<uint8_t> v(nCodesPerLength.begin(), nCodesPerLength.end()); v.resize(16); - Buffer b(v.data(), v.size()); + Buffer b(v.data(), + rawspeed::implicit_cast<rawspeed::Buffer::size_type>(v.size())); return hc.setNCodesPerLength(b); }; @@ -284,19 +303,22 @@ -> HuffmanCode<BaselineCodeTag> { auto hc = genHT(std::move(nCodesPerLength)); std::vector<uint8_t> v(codeValues.begin(), codeValues.end()); - rawspeed::Array1DRef<const uint8_t> b(v.data(), v.size()); + rawspeed::Array1DRef<const uint8_t> b( + v.data(), rawspeed::implicit_cast<rawspeed::Buffer::size_type>(v.size())); hc.setCodeValues(b); return hc; }; #ifndef NDEBUG TEST(HuffmanCodeDeathTest, setNCodesPerLengthRequires16Lengths) { - for (int i = 0; i < 32; i++) { + for (int i = 1; i < 32; i++) { std::vector<uint8_t> v(i, 1); ASSERT_EQ(v.size(), i); - Buffer b(v.data(), v.size()); - ASSERT_EQ(b.getSize(), v.size()); + Buffer b(v.data(), + rawspeed::implicit_cast<rawspeed::Buffer::size_type>(v.size())); + ASSERT_EQ(b.getSize(), + rawspeed::implicit_cast<rawspeed::Buffer::size_type>(v.size())); HuffmanCode<BaselineCodeTag> hc; @@ -354,9 +376,10 @@ for (int len = 1; len < 8; len++) { HuffmanCode<BaselineCodeTag> ht; std::vector<uint8_t> v(16, 0); - Buffer b(v.data(), v.size()); + Buffer b(v.data(), + rawspeed::implicit_cast<rawspeed::Buffer::size_type>(v.size())); for (auto i = 1U; i <= (1U << len); i++) { - v[len - 1] = i; + v[len - 1] = rawspeed::implicit_cast<uint8_t>(i); ASSERT_NO_THROW(ht.setNCodesPerLength(b);); } v[len - 1]++; @@ -390,17 +413,21 @@ for (int len = 1; len < 8; len++) { HuffmanCode<BaselineCodeTag> ht; std::vector<uint8_t> l(16, 0); - Buffer bl(l.data(), l.size()); - l[len - 1] = (1U << len) - 1U; + Buffer bl(l.data(), + rawspeed::implicit_cast<rawspeed::Buffer::size_type>(l.size())); + l[len - 1] = rawspeed::implicit_cast<uint8_t>((1U << len) - 1U); const auto count = ht.setNCodesPerLength(bl); std::vector<uint8_t> v; v.reserve(count + 1); for (auto cnt = count - 1; cnt <= count + 1; cnt++) { v.resize(cnt); - rawspeed::Array1DRef<const uint8_t> bv(v.data(), v.size()); + rawspeed::Array1DRef<const uint8_t> bv( + v.data(), + rawspeed::implicit_cast<rawspeed::Buffer::size_type>(v.size())); if (cnt != count) { ASSERT_DEATH({ ht.setCodeValues(bv); }, - "\\(unsigned\\)data.size\\(\\) == maxCodesCount\\(\\)"); + "static_cast<unsigned>\\(data.size\\(\\)" + "\\) == maxCodesCount\\(\\)"); } else { ASSERT_EXIT( { @@ -416,7 +443,8 @@ TEST(HuffmanCodeDeathTest, setCodeValuesRequiresLessThan162) { auto ht = genHT({0, 0, 0, 0, 0, 0, 0, 162}); std::vector<uint8_t> v(163, 0); - rawspeed::Array1DRef<const uint8_t> bv(v.data(), v.size()); + rawspeed::Array1DRef<const uint8_t> bv( + v.data(), rawspeed::implicit_cast<rawspeed::Buffer::size_type>(v.size())); ASSERT_DEATH({ ht.setCodeValues(bv); }, "data.size\\(\\) <= Traits::MaxNumCodeValues"); } @@ -427,8 +455,10 @@ std::vector<uint8_t> v(1); for (int i = 0; i < 256; i++) { - v[0] = i; - rawspeed::Array1DRef<const uint8_t> b(v.data(), v.size()); + v[0] = rawspeed::implicit_cast<uint8_t>(i); + rawspeed::Array1DRef<const uint8_t> b( + v.data(), + rawspeed::implicit_cast<rawspeed::Buffer::size_type>(v.size())); ASSERT_NO_THROW(ht.setCodeValues(b);); } } @@ -538,8 +568,8 @@ make_tuple(0b11, 0b11, -0b100), // clang-format on }; -INSTANTIATE_TEST_CASE_P(SignExtendTest, SignExtendTest, - ::testing::ValuesIn(signExtendData)); +INSTANTIATE_TEST_SUITE_P(SignExtendTest, SignExtendTest, + ::testing::ValuesIn(signExtendData)); TEST_P(SignExtendTest, SignExtendTest) { ASSERT_EQ( rawspeed::AbstractPrefixCodeDecoder<BaselineCodeTag>::extend(diff, len), @@ -597,14 +627,17 @@ }), }; -INSTANTIATE_TEST_CASE_P(generateCodeSymbolsTest, generateCodeSymbolsTest, - ::testing::ValuesIn(generateCodeSymbolsData)); +INSTANTIATE_TEST_SUITE_P(generateCodeSymbolsTest, generateCodeSymbolsTest, + ::testing::ValuesIn(generateCodeSymbolsData)); TEST_P(generateCodeSymbolsTest, generateCodeSymbolsTest) { HuffmanCode<BaselineCodeTag> hc; - Buffer bl(ncpl.data(), ncpl.size()); + Buffer bl(ncpl.data(), + rawspeed::implicit_cast<rawspeed::Buffer::size_type>(ncpl.size())); const auto cnt = hc.setNCodesPerLength(bl); std::vector<uint8_t> cv(cnt, 0); - rawspeed::Array1DRef<const uint8_t> bv(cv.data(), cv.size()); + rawspeed::Array1DRef<const uint8_t> bv( + cv.data(), + rawspeed::implicit_cast<rawspeed::Buffer::size_type>(cv.size())); hc.setCodeValues(bv); ASSERT_EQ(hc.generateCodeSymbols(), expectedSymbols); diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/codes/HuffmanTableTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/codes/HuffmanTableTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/codes/HuffmanTableTest.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/codes/HuffmanTableTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,27 +18,27 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "adt/Array1DRef.h" // for Array1DRef +#include "adt/Array1DRef.h" +#include "bitstreams/BitStreamer.h" +#include "bitstreams/BitStreamerMSB.h" #include "codes/HuffmanCode.h" -#include "codes/PrefixCodeDecoder.h" // for PrefixCodeLUTDecoder, PrefixCodeDecoder -#include "io/BitPumpMSB.h" // for BitStream<>::fillCache, BitP... -#include "io/BitStream.h" // for BitStream -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::little -#include <algorithm> // for copy, fill_n, max -#include <array> // for array -#include <cstdint> // for uint8_t -#include <initializer_list> // for initializer_list -#include <utility> // for move -#include <vector> // for vector, allocator -#include <gtest/gtest.h> // for Message, TestPartResult +#include "codes/PrefixCodeDecoder.h" +#include "io/Buffer.h" +#include "io/ByteStream.h" +#include "io/Endianness.h" +#include <algorithm> +#include <array> +#include <cstdint> +#include <initializer_list> +#include <utility> +#include <vector> +#include <gtest/gtest.h> namespace rawspeed { class RawDecoderException; } -using rawspeed::BitPumpMSB; +using rawspeed::BitStreamerMSB; using rawspeed::Buffer; using rawspeed::ByteStream; using rawspeed::DataBuffer; @@ -73,7 +73,7 @@ const DataBuffer db(b, Endianness::little); const ByteStream bs(db); - BitPumpMSB p(bs); + BitStreamerMSB p(bs); auto ht = genHTFull({2}, {4, 8}); ht.setup(false, false); @@ -91,7 +91,7 @@ const DataBuffer db(b, Endianness::little); const ByteStream bs(db); - BitPumpMSB p(bs); + BitStreamerMSB p(bs); auto ht = genHTFull({2}, {7, 7 + 8}); ht.setup(true, false); @@ -107,7 +107,7 @@ const DataBuffer db(b, Endianness::little); const ByteStream bs(db); - BitPumpMSB p(bs); + BitStreamerMSB p(bs); auto ht = genHTFull({1}, {4}); ht.setup(false, false); @@ -122,7 +122,7 @@ const DataBuffer db(b, Endianness::little); const ByteStream bs(db); - BitPumpMSB p(bs); + BitStreamerMSB p(bs); auto ht = genHTFull({1}, {1}); ht.setup(true, false); diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/common/BayerPhaseTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/common/BayerPhaseTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/common/BayerPhaseTest.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/common/BayerPhaseTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,16 +18,16 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "common/BayerPhase.h" // for BayerPhase, BayerPhase::BGGR -#include "metadata/ColorFilterArray.h" // for CFAColor, CFAColor::GREEN -#include <array> // for array -#include <cassert> // for assert -#include <map> // for allocator, map, operator!= -#include <optional> // for optional -#include <ostream> // for operator<<, ostream -#include <tuple> // for get, tuple, apply -#include <utility> // for forward, pair -#include <gtest/gtest.h> // for ParamIteratorInterface, Param... +#include "common/BayerPhase.h" +#include "adt/Optional.h" +#include "metadata/ColorFilterArray.h" +#include <array> +#include <cassert> +#include <map> +#include <ostream> +#include <tuple> +#include <utility> +#include <gtest/gtest.h> using rawspeed::BayerPhase; using rawspeed::CFAColor; @@ -99,11 +99,11 @@ } std::array<CFAColor, 4> in; - std::optional<BayerPhase> expected; + rawspeed::Optional<BayerPhase> expected; ColorFilterArray cfa; }; -INSTANTIATE_TEST_CASE_P(All2x2CFAs, BayerPhaseFromCFATest, AllPossible2x2CFAs); +INSTANTIATE_TEST_SUITE_P(All2x2CFAs, BayerPhaseFromCFATest, AllPossible2x2CFAs); TEST_P(BayerPhaseFromCFATest, getAsBayerPhaseTest) { EXPECT_EQ(expected, rawspeed::getAsBayerPhase(cfa)); } @@ -122,12 +122,12 @@ assert(in.has_value()); } - std::optional<BayerPhase> in; + rawspeed::Optional<BayerPhase> in; std::array<CFAColor, 4> expected; }; -INSTANTIATE_TEST_CASE_P(AllBayerPhases, BayerPhaseToCFATest, - AllKnownBayerPhases); +INSTANTIATE_TEST_SUITE_P(AllBayerPhases, BayerPhaseToCFATest, + AllKnownBayerPhases); TEST_P(BayerPhaseToCFATest, getAsCFAColorsTest) { EXPECT_EQ(expected, rawspeed::getAsCFAColors(*in)); } @@ -144,8 +144,8 @@ BayerPhase src; BayerPhase tgt; }; -INSTANTIATE_TEST_CASE_P(AllBayerPhaseShifts, BayerPhaseShifTest, - AllPossibleBayerPhaseShifts); +INSTANTIATE_TEST_SUITE_P(AllBayerPhaseShifts, BayerPhaseShifTest, + AllPossibleBayerPhaseShifts); struct AbstractElement {}; diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/common/ChecksumFileTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/common/ChecksumFileTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/common/ChecksumFileTest.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/common/ChecksumFileTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,12 +18,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "common/ChecksumFile.h" // for ParseChecksumFileContent, ChecksumF... -#include "common/RawspeedException.h" // for RawspeedException (ptr only) -#include <memory> // for allocator, allocator_traits<>::valu... -#include <string> // for operator+, string, char_traits, bas... -#include <vector> // for vector -#include <gtest/gtest.h> // for AssertionResult, Message, TestPartR... +#include "common/ChecksumFile.h" +#include "common/RawspeedException.h" +#include <string> +#include <vector> +#include <gtest/gtest.h> using rawspeed::ParseChecksumFileContent; diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/common/CommonTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/common/CommonTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/common/CommonTest.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/common/CommonTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,20 +18,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "common/Common.h" // for roundUp, clampBits, copyPixels, isAligned -#include <algorithm> // for fill, min, copy, equal, fill_n, max -#include <cassert> // for assert -#include <cstddef> // for size_t -#include <cstdint> // for uint8_t, uint16_t -#include <limits> // for numeric_limits -#include <memory> // for allocator, make_unique, unique_ptr -#include <string> // for basic_string, string, operator== -#include <tuple> // for make_tuple, get, tuple -#include <type_traits> // for __strip_reference_wrapper<>::__type -#include <vector> // for vector, vector<>::iterator, vector<>::val... -#include <gtest/gtest.h> // for ParamIteratorInterface, ParamGeneratorInt... +#include "common/Common.h" +#include <algorithm> +#include <cassert> +#include <cstddef> +#include <cstdint> +#include <limits> +#include <memory> +#include <string> +#include <tuple> +#include <vector> +#include <gtest/gtest.h> -using rawspeed::clampBits; using rawspeed::copyPixels; using rawspeed::isAligned; using rawspeed::isIn; @@ -49,32 +47,7 @@ namespace rawspeed_test { -using powerOfTwoType = std::tuple<int, bool>; -class PowerOfTwoTest : public ::testing::TestWithParam<powerOfTwoType> { -protected: - PowerOfTwoTest() = default; - virtual void SetUp() { - in = std::get<0>(GetParam()); - expected = std::get<1>(GetParam()); - } - - int in; // input - bool expected; // expected output -}; -static const powerOfTwoType powerOfTwoValues[] = { - make_tuple(0, true), make_tuple(1, true), make_tuple(2, true), - make_tuple(3, false), make_tuple(4, true), make_tuple(5, false), - make_tuple(6, false), make_tuple(7, false), make_tuple(8, true), - make_tuple(9, false), make_tuple(10, false), make_tuple(11, false), - -}; -INSTANTIATE_TEST_CASE_P(PowerOfTwoTest, PowerOfTwoTest, - ::testing::ValuesIn(powerOfTwoValues)); -TEST_P(PowerOfTwoTest, PowerOfTwoTest) { - ASSERT_EQ(isPowerOfTwo(in), expected); -} - -using RoundDownType = std::tuple<size_t, size_t, size_t>; +using RoundDownType = std::tuple<uint64_t, uint64_t, uint64_t>; class RoundDownTest : public ::testing::TestWithParam<RoundDownType> { protected: RoundDownTest() = default; @@ -84,9 +57,9 @@ expected = std::get<2>(GetParam()); } - size_t in; // input - size_t multiple; - size_t expected; // expected output + uint64_t in; // input + uint64_t multiple; + uint64_t expected; // expected output }; static const RoundDownType RoundDownValues[] = { make_tuple(0, 0, 0), make_tuple(0, 10, 0), make_tuple(10, 0, 10), @@ -96,13 +69,13 @@ make_tuple(10, 9, 9), make_tuple(10, 11, 0), make_tuple(10, 12, 0), }; -INSTANTIATE_TEST_CASE_P(RoundDownTest, RoundDownTest, - ::testing::ValuesIn(RoundDownValues)); +INSTANTIATE_TEST_SUITE_P(RoundDownTest, RoundDownTest, + ::testing::ValuesIn(RoundDownValues)); TEST_P(RoundDownTest, RoundDownTest) { ASSERT_EQ(roundDown(in, multiple), expected); } -using RoundUpType = std::tuple<size_t, size_t, size_t>; +using RoundUpType = std::tuple<uint64_t, uint64_t, uint64_t>; class RoundUpTest : public ::testing::TestWithParam<RoundUpType> { protected: RoundUpTest() = default; @@ -112,9 +85,9 @@ expected = std::get<2>(GetParam()); } - size_t in; // input - size_t multiple; - size_t expected; // expected output + uint64_t in; // input + uint64_t multiple; + uint64_t expected; // expected output }; static const RoundUpType RoundUpValues[] = { make_tuple(0, 0, 0), make_tuple(0, 10, 0), make_tuple(10, 0, 10), @@ -124,11 +97,11 @@ make_tuple(10, 9, 18), make_tuple(10, 11, 11), make_tuple(10, 12, 12), }; -INSTANTIATE_TEST_CASE_P(RoundUpTest, RoundUpTest, - ::testing::ValuesIn(RoundUpValues)); +INSTANTIATE_TEST_SUITE_P(RoundUpTest, RoundUpTest, + ::testing::ValuesIn(RoundUpValues)); TEST_P(RoundUpTest, RoundUpTest) { ASSERT_EQ(roundUp(in, multiple), expected); } -using RoundUpDivisionType = std::tuple<size_t, size_t, size_t>; +using RoundUpDivisionType = std::tuple<uint64_t, uint64_t, uint64_t>; class RoundUpDivisionTest : public ::testing::TestWithParam<RoundUpDivisionType> { protected: @@ -139,9 +112,9 @@ expected = std::get<2>(GetParam()); } - size_t in; // input - size_t divider; - size_t expected; // expected output + uint64_t in; // input + uint64_t divider; + uint64_t expected; // expected output }; static const RoundUpDivisionType RoundUpDivisionValues[] = { make_tuple(0, 10, 0), @@ -157,24 +130,26 @@ make_tuple(10, 9, 2), make_tuple(0, 1, 0), make_tuple(1, 1, 1), - make_tuple(numeric_limits<size_t>::max() - 1, 1, - numeric_limits<size_t>::max() - 1), - make_tuple(numeric_limits<size_t>::max(), 1, numeric_limits<size_t>::max()), - make_tuple(0, numeric_limits<size_t>::max() - 1, 0), - make_tuple(1, numeric_limits<size_t>::max() - 1, 1), - make_tuple(numeric_limits<size_t>::max() - 1, - numeric_limits<size_t>::max() - 1, 1), - make_tuple(numeric_limits<size_t>::max(), numeric_limits<size_t>::max() - 1, - 2), - make_tuple(0, numeric_limits<size_t>::max(), 0), - make_tuple(1, numeric_limits<size_t>::max(), 1), - make_tuple(numeric_limits<size_t>::max() - 1, numeric_limits<size_t>::max(), + make_tuple(numeric_limits<uint64_t>::max() - 1, 1, + numeric_limits<uint64_t>::max() - 1), + make_tuple(numeric_limits<uint64_t>::max(), 1, + numeric_limits<uint64_t>::max()), + make_tuple(0, numeric_limits<uint64_t>::max() - 1, 0), + make_tuple(1, numeric_limits<uint64_t>::max() - 1, 1), + make_tuple(numeric_limits<uint64_t>::max() - 1, + numeric_limits<uint64_t>::max() - 1, 1), + make_tuple(numeric_limits<uint64_t>::max(), + numeric_limits<uint64_t>::max() - 1, 2), + make_tuple(0, numeric_limits<uint64_t>::max(), 0), + make_tuple(1, numeric_limits<uint64_t>::max(), 1), + make_tuple(numeric_limits<uint64_t>::max() - 1, + numeric_limits<uint64_t>::max(), 1), + make_tuple(numeric_limits<uint64_t>::max(), numeric_limits<uint64_t>::max(), 1), - make_tuple(numeric_limits<size_t>::max(), numeric_limits<size_t>::max(), 1), }; -INSTANTIATE_TEST_CASE_P(RoundUpDivisionTest, RoundUpDivisionTest, - ::testing::ValuesIn(RoundUpDivisionValues)); +INSTANTIATE_TEST_SUITE_P(RoundUpDivisionTest, RoundUpDivisionTest, + ::testing::ValuesIn(RoundUpDivisionValues)); TEST_P(RoundUpDivisionTest, RoundUpDivisionTest) { ASSERT_EQ(roundUpDivision(in, divider), expected); } @@ -191,9 +166,9 @@ int value; int multiple; }; -INSTANTIATE_TEST_CASE_P(IsAlignedTest, IsAlignedTest, - ::testing::Combine(::testing::Range(0, 32), - ::testing::Range(0, 32))); +INSTANTIATE_TEST_SUITE_P(IsAlignedTest, IsAlignedTest, + ::testing::Combine(::testing::Range(0, 32), + ::testing::Range(0, 32))); TEST_P(IsAlignedTest, IsAlignedAfterRoundUpTest) { ASSERT_TRUE(isAligned(roundUp(value, multiple), multiple)); } @@ -218,71 +193,11 @@ make_tuple("baz-1", false), make_tuple("quz", false), }; -INSTANTIATE_TEST_CASE_P(IsInTest, IsInTest, ::testing::ValuesIn(IsInValues)); +INSTANTIATE_TEST_SUITE_P(IsInTest, IsInTest, ::testing::ValuesIn(IsInValues)); TEST_P(IsInTest, IsInTest) { ASSERT_EQ(isIn(in, {"foo", "foo2", "bar", "baz"}), expected); } -using ClampBitsType = std::tuple<int, int, uint16_t>; -class ClampBitsTest : public ::testing::TestWithParam<ClampBitsType> { -protected: - ClampBitsTest() = default; - virtual void SetUp() { - in = std::get<0>(GetParam()); - n = std::get<1>(GetParam()); - expected = std::get<2>(GetParam()); - } - - int in; // input - int n; - uint16_t expected; // expected output -}; - -#define MIN(a, b) ((a) < (b) ? (a) : (b)) -#define MAX(a, b) ((a) > (b) ? (a) : (b)) - -#define ROW(v, p, pv) make_tuple((v), (p), MIN(pv, MAX(v, 0))), - -#define ROWS(v, p, pv) ROW(-v, p, 0) ROW(v, p, pv) - -#define THREEROWS(v, p) \ - ROWS(((1 << (v)) - 1), (p), ((1 << (p)) - 1)) \ - ROWS(((1 << (v)) - 0), (p), ((1 << (p)) - 1)) \ - ROWS(((1 << (v)) + 1), (p), ((1 << (p)) - 1)) - -#define MOREROWS(v) \ - THREEROWS(v, 0) \ - THREEROWS(v, 1) \ - THREEROWS(v, 2) \ - THREEROWS(v, 4) \ - THREEROWS(v, 8) THREEROWS(v, 16) - -#define GENERATE() \ - MOREROWS(0) \ - MOREROWS(1) \ - MOREROWS(2) MOREROWS(4) MOREROWS(8) MOREROWS(16) MOREROWS(24) MOREROWS(30) - -static const ClampBitsType ClampBitsValues[] = { - make_tuple(0, 0, 0), make_tuple(0, 16, 0), - make_tuple(32, 0, 0), make_tuple(32, 16, 32), - make_tuple(32, 2, 3), make_tuple(-32, 0, 0), - make_tuple(-32, 16, 0), GENERATE()}; -INSTANTIATE_TEST_CASE_P(ClampBitsTest, ClampBitsTest, - ::testing::ValuesIn(ClampBitsValues)); -TEST_P(ClampBitsTest, ClampBitsTest) { ASSERT_EQ(clampBits(in, n), expected); } -TEST(ClampBitsDeathTest, Only16Bit) { -#ifndef NDEBUG - ASSERT_DEATH({ ASSERT_EQ(clampBits(0, 17), 0); }, "nBits <= 16"); -#endif -} - -TEST(ClampBitsUnsignedDeathTest, NoNopClamps) { -#ifndef NDEBUG - ASSERT_DEATH({ ASSERT_EQ(clampBits<uint16_t>(0, 16), 0); }, - "bitwidth<T>\\(\\) > nBits"); -#endif -} - using TrimSpacesType = std::tuple<string, string>; class TrimSpacesTest : public ::testing::TestWithParam<TrimSpacesType> { protected: @@ -315,8 +230,8 @@ make_tuple("\t ", ""), #undef STR }; -INSTANTIATE_TEST_CASE_P(TrimSpacesTest, TrimSpacesTest, - ::testing::ValuesIn(TrimSpacesValues)); +INSTANTIATE_TEST_SUITE_P(TrimSpacesTest, TrimSpacesTest, + ::testing::ValuesIn(TrimSpacesValues)); TEST_P(TrimSpacesTest, TrimSpacesTest) { ASSERT_EQ(trimSpaces(in), out); } using splitStringType = std::tuple<string, char, vector<string>>; @@ -334,14 +249,18 @@ vector<string> out; // expected output }; static const splitStringType splitStringValues[] = { + make_tuple("", ' ', vector<string>({})), + make_tuple(" ", ' ', vector<string>({})), make_tuple(" ini mi,ni moe ", ' ', vector<string>({"ini", "mi,ni", "moe"})), make_tuple(" 412, 542,732 , ", ',', vector<string>({" 412", " 542", "732 ", " "})), + make_tuple("\0 412, 542,732 , ", ',', vector<string>({})), + make_tuple(" 412, 542\0,732 , ", ',', vector<string>({" 412", " 542"})), }; -INSTANTIATE_TEST_CASE_P(SplitStringTest, SplitStringTest, - ::testing::ValuesIn(splitStringValues)); +INSTANTIATE_TEST_SUITE_P(SplitStringTest, SplitStringTest, + ::testing::ValuesIn(splitStringValues)); TEST_P(SplitStringTest, SplitStringTest) { auto split = splitString(in, sep); ASSERT_EQ(split.size(), out.size()); @@ -372,35 +291,28 @@ assert(srcPitch * height < numeric_limits<uint8_t>::max()); assert(dstPitch * height < numeric_limits<uint8_t>::max()); - src.resize((size_t)srcPitch * height); - dst.resize((size_t)dstPitch * height); - - fill(src.begin(), src.end(), 0); - fill(dst.begin(), dst.end(), static_cast<decltype(dst)::value_type>(-1)); - } - void generate() { - uint8_t v = 0; + src.resize(static_cast<size_t>(srcPitch) * height); + dst.resize(static_cast<size_t>(dstPitch) * height); - for (int y = 0; y < height; y++) { - for (int x = 0; x < rowSize; x++, v++) { - src[y * srcPitch + x] = v; - } - } + fill(src.begin(), src.end(), newVal); + fill(dst.begin(), dst.end(), origVal); } void copy() { - if (src.empty() || dst.empty()) - return; - - copyPixels(&(dst[0]), dstPitch, &(src[0]), srcPitch, rowSize, height); + copyPixels(reinterpret_cast<std::byte*>(&(dst[0])), dstPitch, + reinterpret_cast<const std::byte*>(&(src[0])), srcPitch, rowSize, + height); } void compare() { for (int y = 0; y < height; y++) { - for (int x = 0; x < rowSize; x++) { - ASSERT_EQ(dst[y * dstPitch + x], src[y * srcPitch + x]); - } + for (int x = 0; x < srcPitch; x++) + ASSERT_EQ(src[y * srcPitch + x], newVal); + for (int x = 0; x < dstPitch; x++) + ASSERT_EQ(dst[y * dstPitch + x], x < rowSize ? newVal : origVal); } } + static constexpr uint8_t newVal = 0; + static constexpr uint8_t origVal = -1; vector<uint8_t> src; vector<uint8_t> dst; int dstPitch; @@ -408,13 +320,12 @@ int rowSize; int height; }; -INSTANTIATE_TEST_CASE_P(CopyPixelsTest, CopyPixelsTest, - testing::Combine(testing::Range(0, 4, 1), - testing::Range(0, 4, 1), - testing::Range(0, 4, 1), - testing::Range(0, 4, 1))); +INSTANTIATE_TEST_SUITE_P(CopyPixelsTest, CopyPixelsTest, + testing::Combine(testing::Range(1, 4, 1), + testing::Range(1, 4, 1), + testing::Range(1, 4, 1), + testing::Range(1, 4, 1))); TEST_P(CopyPixelsTest, CopyPixelsTest) { - generate(); copy(); compare(); } diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/common/CpuidTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/common/CpuidTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/common/CpuidTest.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/common/CpuidTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,10 +19,9 @@ */ #include "rawspeedconfig.h" // IWYU pragma: keep -#include "common/Cpuid.h" // for Cpuid -#include <cstdlib> // for exit -#include <string> // for allocator, string -#include <gtest/gtest.h> // for AssertionResult, DeathTest, ExitedWithCode +#include "common/CpuFeatures.h" +#include <cstdlib> +#include <gtest/gtest.h> using rawspeed::Cpuid; diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/common/SplineTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/common/SplineTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/common/SplineTest.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/common/SplineTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,23 +18,23 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "common/Spline.h" // for Spline, Spline<>::value_type -#include "adt/Point.h" // for iPoint2D, iPoint2D::value_type -#include <algorithm> // for copy, max, generate_n, fill_n -#include <array> // for array -#include <cassert> // for assert -#include <cmath> // for lround, acos, sin -#include <cstdint> // for uint16_t -#include <cstdlib> // for exit -#include <iterator> // for begin, end, back_inserter -#include <limits> // for numeric_limits -#include <memory> // for allocator, allocator_traits<>::value_type -#include <ostream> // for operator<<, basic_ostream::operator<< -#include <string> // for string -#include <tuple> // for make_tuple, get, tuple -#include <type_traits> // for __strip_reference_wrapper<>::__type, enab... -#include <vector> // for vector -#include <gtest/gtest.h> // for ParamIteratorInterface, ParamGeneratorInt... +#include "common/Spline.h" +#include "adt/Casts.h" +#include "adt/Point.h" +#include <algorithm> +#include <array> +#include <cassert> +#include <cmath> +#include <cstdint> +#include <cstdlib> +#include <iterator> +#include <limits> +#include <ostream> +#include <string> +#include <tuple> +#include <type_traits> +#include <vector> +#include <gtest/gtest.h> using rawspeed::Spline; using std::make_tuple; @@ -219,8 +219,8 @@ std::vector<std::array<double, 4>>{{{65535.0, -1.0, 0.0, 0.0}}})}; using IntegerIdentityTest = IdentityTest<uint16_t>; -INSTANTIATE_TEST_CASE_P(IntegerIdentityTest, IntegerIdentityTest, - ::testing::ValuesIn(identityValues)); +INSTANTIATE_TEST_SUITE_P(IntegerIdentityTest, IntegerIdentityTest, + ::testing::ValuesIn(identityValues)); TEST_P(IntegerIdentityTest, ValuesAreLinearlyInterpolated) { for (auto x = edges.front().y; x < edges.back().y; ++x) ASSERT_EQ(interpolated[x], x); @@ -228,8 +228,8 @@ TEST_P(IntegerIdentityTest, SegmentCoeffients) { CheckSegments(); } using DoubleIdentityTest = IdentityTest<double>; -INSTANTIATE_TEST_CASE_P(DoubleIdentityTest, DoubleIdentityTest, - ::testing::ValuesIn(identityValues)); +INSTANTIATE_TEST_SUITE_P(DoubleIdentityTest, DoubleIdentityTest, + ::testing::ValuesIn(identityValues)); TEST_P(DoubleIdentityTest, ValuesAreLinearlyInterpolated) { for (auto x = edges.front().y; x < edges.back().y; ++x) { ASSERT_DOUBLE_EQ(interpolated[x], x); @@ -242,8 +242,8 @@ return (1.0 - t) * v0 + t * v1; } -template <typename T = int, - typename = std::enable_if_t<std::is_arithmetic<T>::value>> +template <typename T = int> + requires std::is_arithmetic_v<T> std::vector<T> calculateSteps(int numCp) { std::vector<T> steps; @@ -254,9 +254,10 @@ [ptsTotal, &steps]() -> T { const double t = double(steps.size()) / (ptsTotal - 1); const double x = lerp(0.0, 65535.0, t); - if (std::is_floating_point<T>::value) + if constexpr (std::is_floating_point<T>::value) return x; - return std::lround(x); + else + return rawspeed::implicit_cast<T>(std::lround(x)); }); assert(ptsTotal == steps.size()); @@ -280,8 +281,8 @@ int extraSteps; std::vector<int> got; }; -INSTANTIATE_TEST_CASE_P(CalculateStepsEdgesTest, CalculateStepsEdgesTest, - ::testing::Range(0, 254)); +INSTANTIATE_TEST_SUITE_P(CalculateStepsEdgesTest, CalculateStepsEdgesTest, + ::testing::Range(0, 254)); TEST_P(CalculateStepsEdgesTest, Count) { ASSERT_EQ(got.size(), 2 + extraSteps); } @@ -323,8 +324,8 @@ }; using DoubleCalculateStepsTest = CalculateStepsTest<double>; -INSTANTIATE_TEST_CASE_P(CalculateStepsTest, DoubleCalculateStepsTest, - ::testing::ValuesIn(calculateStepsValues)); +INSTANTIATE_TEST_SUITE_P(CalculateStepsTest, DoubleCalculateStepsTest, + ::testing::ValuesIn(calculateStepsValues)); TEST_P(DoubleCalculateStepsTest, Count) { ASSERT_EQ(expected.size(), got.size()); ASSERT_EQ(got.size(), 2 + extraSteps); @@ -340,8 +341,8 @@ } using IntegerCalculateStepsTest = CalculateStepsTest<int>; -INSTANTIATE_TEST_CASE_P(CalculateStepsTest, IntegerCalculateStepsTest, - ::testing::ValuesIn(calculateStepsValues)); +INSTANTIATE_TEST_SUITE_P(CalculateStepsTest, IntegerCalculateStepsTest, + ::testing::ValuesIn(calculateStepsValues)); TEST_P(IntegerCalculateStepsTest, Count) { ASSERT_EQ(expected.size(), got.size()); ASSERT_EQ(got.size(), 2 + extraSteps); @@ -408,8 +409,8 @@ ::testing::Range(0, 1 + NumExtraSteps)); using IntegerConstantTest = ConstantTest<uint16_t>; -INSTANTIATE_TEST_CASE_P(IntegerConstantTest, IntegerConstantTest, - constantValues); +INSTANTIATE_TEST_SUITE_P(IntegerConstantTest, IntegerConstantTest, + constantValues); TEST_P(IntegerConstantTest, AllValuesAreEqual) { for (const auto value : interpolated) ASSERT_EQ(value, constant); @@ -417,7 +418,8 @@ TEST_P(IntegerConstantTest, SegmentCoeffients) { CheckSegments(); } using DoubleConstantTest = ConstantTest<double>; -INSTANTIATE_TEST_CASE_P(DoubleConstantTest, DoubleConstantTest, constantValues); +INSTANTIATE_TEST_SUITE_P(DoubleConstantTest, DoubleConstantTest, + constantValues); TEST_P(DoubleConstantTest, AllValuesAreEqual) { for (const auto value : interpolated) { ASSERT_DOUBLE_EQ(value, constant); @@ -520,8 +522,8 @@ make_tuple(14, 1.0E-04), // clang-format on }; -INSTANTIATE_TEST_CASE_P(Sin2Pi, Sin2PiRefTest, - ::testing::ValuesIn(sin2PiRefValues)); +INSTANTIATE_TEST_SUITE_P(Sin2Pi, Sin2PiRefTest, + ::testing::ValuesIn(sin2PiRefValues)); TEST_P(Sin2PiRefTest, NearlyMatchesReference) { check(); } using SinPiRefTest = ReferenceTest<SinReferenceTest<1, 1>>; @@ -542,8 +544,8 @@ make_tuple(12, 1.0E-05), // clang-format on }; -INSTANTIATE_TEST_CASE_P(SinPi, SinPiRefTest, - ::testing::ValuesIn(sinPiRefValues)); +INSTANTIATE_TEST_SUITE_P(SinPi, SinPiRefTest, + ::testing::ValuesIn(sinPiRefValues)); TEST_P(SinPiRefTest, NearlyMatchesReference) { check(); } } // namespace rawspeed_test diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/io/BitPumpJPEGTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/io/BitPumpJPEGTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/io/BitPumpJPEGTest.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/io/BitPumpJPEGTest.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,111 +0,0 @@ -/* - RawSpeed - RAW file decoder. - - Copyright (C) 2018 Roman Lebedev - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include "io/BitPumpJPEG.h" // for BitPumpJPEG -#include "io/BitPumpTest.h" // for Pattern, (anonymous), GenOnesBE, Patterns -#include "io/BitStream.h" // for BitStream -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::big, Endianness:... -#include <array> // for array -#include <cstdint> // for uint8_t, uint32_t -#include <initializer_list> // for initializer_list -#include <memory> // for allocator -#include <gtest/gtest.h> // for Message, TestPartResult, INSTANTIATE_TYP... - -using rawspeed::BitPumpJPEG; -using rawspeed::Buffer; -using rawspeed::ByteStream; -using rawspeed::DataBuffer; -using rawspeed::Endianness; - -namespace rawspeed_test { - -struct InvOnesTag; -struct OnesTag; -struct SaturatedTag; - -template <> -const std::array<uint8_t, 8> Pattern<BitPumpJPEG, OnesTag>::Data = { - {/* [Byte0 Byte1 Byte2 Byte3] */ - /* Byte: [Bit0 .. Bit7] */ - 0b10100100, 0b01000010, 0b00001000, 0b00011111}}; -template <> uint32_t Pattern<BitPumpJPEG, OnesTag>::data(int index) { - const auto set = GenOnesBE(1, 0); - return set[index]; -} - -template <> -const std::array<uint8_t, 8> Pattern<BitPumpJPEG, InvOnesTag>::Data = { - {0b11010010, 0b00100001, 0b00000100, 0b00001111}}; -template <> uint32_t Pattern<BitPumpJPEG, InvOnesTag>::data(int index) { - const auto set = GenOnesBE(0, -1); - return set[index]; -} - -// If 0xFF0x00 byte sequence is found, it is just 0xFF, i.e. 0x00 is ignored. -// So if we want 0xFF, we need to append 0x00 byte -template <> -const std::array<uint8_t, 8> Pattern<BitPumpJPEG, SaturatedTag>::Data{ - {uint8_t(~0U), 0, uint8_t(~0U), 0, uint8_t(~0U), 0, uint8_t(~0U), 0}}; - -INSTANTIATE_TYPED_TEST_CASE_P(JPEG, BitPumpTest, Patterns<BitPumpJPEG>); - -TEST(BitPumpJPEGTest, 0xFF0x00Is0xFFTest) { - // If 0xFF0x00 byte sequence is found, it is just 0xFF, i.e. 0x00 is ignored. - static const std::array<uint8_t, 2 + 8> data{ - {0xFF, 0x00, 0b10100100, 0b01000010, 0b00001000, 0b00011111}}; - - const Buffer b(data.data(), data.size()); - - for (auto e : {Endianness::little, Endianness::big}) { - const DataBuffer db(b, e); - const ByteStream bs(db); - - BitPumpJPEG p(bs); - - ASSERT_EQ(p.getBits(8), 0xFF); - - for (int len = 1; len <= 7; len++) - ASSERT_EQ(p.getBits(len), 1) << " Where len: " << len; - } -} - -TEST(BitPumpJPEGTest, 0xFF0xXXIsTheEndTest) { - // If 0xFF0xXX byte sequence is found, where XX != 0, then it is the end. - for (uint8_t end = 0x01; end < 0xFF; end++) { - static const std::array<uint8_t, 2 + 8> data{ - {0xFF, end, 0xFF, 0xFF, 0xFF, 0xFF}}; - - const Buffer b(data.data(), data.size()); - - for (auto e : {Endianness::little, Endianness::big}) { - const DataBuffer db(b, e); - const ByteStream bs(db); - - BitPumpJPEG p(bs); - - for (int cnt = 0; cnt <= 64 + 32 - 1; cnt++) - ASSERT_EQ(p.getBits(1), 0); - } - } -} - -} // namespace rawspeed_test diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/io/BitPumpLSBTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/io/BitPumpLSBTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/io/BitPumpLSBTest.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/io/BitPumpLSBTest.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,55 +0,0 @@ -/* - RawSpeed - RAW file decoder. - - Copyright (C) 2018 Roman Lebedev - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include "io/BitPumpLSB.h" // for BitPumpLSB -#include "io/BitPumpTest.h" // for Pattern, (anonymous), GenOnesLE, Patterns -#include <array> // for array -#include <cstdint> // for uint32_t, uint8_t -#include <memory> // for allocator -#include <gtest/gtest.h> // for INSTANTIATE_TYPED_TEST_CASE_P - -using rawspeed::BitPumpLSB; - -namespace rawspeed_test { - -struct InvOnesTag; -struct OnesTag; - -template <> -const std::array<uint8_t, 8> Pattern<BitPumpLSB, OnesTag>::Data = { - {/* [Byte0 Byte1 Byte2 Byte3] */ - /* Byte: [Bit7 .. Bit0] */ - 0b01001011, 0b10000100, 0b00100000, 0b11110000}}; -template <> uint32_t Pattern<BitPumpLSB, OnesTag>::data(int index) { - const auto set = GenOnesLE(0, -1); - return set[index]; -} - -template <> -const std::array<uint8_t, 8> Pattern<BitPumpLSB, InvOnesTag>::Data = { - {0b00100101, 0b01000010, 0b00010000, 0b11111000}}; -template <> uint32_t Pattern<BitPumpLSB, InvOnesTag>::data(int index) { - const auto set = GenOnesLE(1, 0); - return set[index]; -} - -INSTANTIATE_TYPED_TEST_CASE_P(LSB, BitPumpTest, Patterns<BitPumpLSB>); - -} // namespace rawspeed_test diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/io/BitPumpMSB16Test.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/io/BitPumpMSB16Test.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/io/BitPumpMSB16Test.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/io/BitPumpMSB16Test.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,55 +0,0 @@ -/* - RawSpeed - RAW file decoder. - - Copyright (C) 2018 Roman Lebedev - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include "io/BitPumpMSB16.h" // for BitPumpMSB16 -#include "io/BitPumpTest.h" // for Pattern, (anonymous), GenOnesBE, Patterns -#include <array> // for array -#include <cstdint> // for uint32_t, uint8_t -#include <memory> // for allocator -#include <gtest/gtest.h> // for INSTANTIATE_TYPED_TEST_CASE_P - -using rawspeed::BitPumpMSB16; - -namespace rawspeed_test { - -struct InvOnesTag; -struct OnesTag; - -template <> -const std::array<uint8_t, 8> Pattern<BitPumpMSB16, OnesTag>::Data = { - {/* [Byte1 Byte0 Byte3 Byte2] */ - /* Byte: [Bit0 .. Bit7] */ - 0b01000010, 0b10100100, 0b00011111, 0b00001000}}; -template <> uint32_t Pattern<BitPumpMSB16, OnesTag>::data(int index) { - const auto set = GenOnesBE(1, 0); - return set[index]; -} - -template <> -const std::array<uint8_t, 8> Pattern<BitPumpMSB16, InvOnesTag>::Data = { - {0b00100001, 0b11010010, 0b00001111, 0b00000100}}; -template <> uint32_t Pattern<BitPumpMSB16, InvOnesTag>::data(int index) { - const auto set = GenOnesBE(0, -1); - return set[index]; -} - -INSTANTIATE_TYPED_TEST_CASE_P(MSB16, BitPumpTest, Patterns<BitPumpMSB16>); - -} // namespace rawspeed_test diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/io/BitPumpMSB32Test.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/io/BitPumpMSB32Test.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/io/BitPumpMSB32Test.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/io/BitPumpMSB32Test.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,55 +0,0 @@ -/* - RawSpeed - RAW file decoder. - - Copyright (C) 2018 Roman Lebedev - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include "io/BitPumpMSB32.h" // for BitPumpMSB32 -#include "io/BitPumpTest.h" // for Pattern, (anonymous), GenOnesBE, Patterns -#include <array> // for array -#include <cstdint> // for uint32_t, uint8_t -#include <memory> // for allocator -#include <gtest/gtest.h> // for INSTANTIATE_TYPED_TEST_CASE_P - -using rawspeed::BitPumpMSB32; - -namespace rawspeed_test { - -struct InvOnesTag; -struct OnesTag; - -template <> -const std::array<uint8_t, 8> Pattern<BitPumpMSB32, OnesTag>::Data = { - {/* [Byte3 Byte2 Byte1 Byte0] */ - /* Byte: [Bit0 .. Bit7] */ - 0b00011111, 0b00001000, 0b01000010, 0b10100100}}; -template <> uint32_t Pattern<BitPumpMSB32, OnesTag>::data(int index) { - const auto set = GenOnesBE(1, 0); - return set[index]; -} - -template <> -const std::array<uint8_t, 8> Pattern<BitPumpMSB32, InvOnesTag>::Data = { - {0b00001111, 0b00000100, 0b00100001, 0b11010010}}; -template <> uint32_t Pattern<BitPumpMSB32, InvOnesTag>::data(int index) { - const auto set = GenOnesBE(0, -1); - return set[index]; -} - -INSTANTIATE_TYPED_TEST_CASE_P(MSB32, BitPumpTest, Patterns<BitPumpMSB32>); - -} // namespace rawspeed_test diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/io/BitPumpMSBTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/io/BitPumpMSBTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/io/BitPumpMSBTest.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/io/BitPumpMSBTest.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,55 +0,0 @@ -/* - RawSpeed - RAW file decoder. - - Copyright (C) 2018 Roman Lebedev - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include "io/BitPumpMSB.h" // for BitPumpMSB -#include "io/BitPumpTest.h" // for Pattern, (anonymous), GenOnesBE, Patterns -#include <array> // for array -#include <cstdint> // for uint32_t, uint8_t -#include <memory> // for allocator -#include <gtest/gtest.h> // for INSTANTIATE_TYPED_TEST_CASE_P - -using rawspeed::BitPumpMSB; - -namespace rawspeed_test { - -struct InvOnesTag; -struct OnesTag; - -template <> -const std::array<uint8_t, 8> Pattern<BitPumpMSB, OnesTag>::Data = { - {/* [Byte0 Byte1 Byte2 Byte3] */ - /* Byte: [Bit0 .. Bit7] */ - 0b10100100, 0b01000010, 0b00001000, 0b00011111}}; -template <> uint32_t Pattern<BitPumpMSB, OnesTag>::data(int index) { - const auto set = GenOnesBE(1, 0); - return set[index]; -} - -template <> -const std::array<uint8_t, 8> Pattern<BitPumpMSB, InvOnesTag>::Data = { - {0b11010010, 0b00100001, 0b00000100, 0b00001111}}; -template <> uint32_t Pattern<BitPumpMSB, InvOnesTag>::data(int index) { - const auto set = GenOnesBE(0, -1); - return set[index]; -} - -INSTANTIATE_TYPED_TEST_CASE_P(MSB, BitPumpTest, Patterns<BitPumpMSB>); - -} // namespace rawspeed_test diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/io/BitPumpTest.h darktable-4.6.1/src/external/rawspeed/test/librawspeed/io/BitPumpTest.h --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/io/BitPumpTest.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/io/BitPumpTest.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,263 +0,0 @@ -/* - RawSpeed - RAW file decoder. - - Copyright (C) 2018 Roman Lebedev - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include "common/Common.h" // for uint8_t -#include "io/BitStream.h" // for BitStream -#include "io/Buffer.h" // for Buffer, DataBuffer -#include "io/ByteStream.h" // for ByteStream -#include "io/Endianness.h" // for Endianness, Endianness::big, Endianness:... -#include <array> // for array -#include <cassert> // for assert -#include <cstdint> // for uint8_t, uint32_t -#include <initializer_list> // for initializer_list -#include <gtest/gtest.h> // for ParamIteratorInterface, Message - -using rawspeed::Buffer; -using rawspeed::ByteStream; -using rawspeed::DataBuffer; -using rawspeed::Endianness; - -namespace rawspeed_test { - -template <typename T, typename Tag> struct BitPumpPatternTest {}; - -struct TestGetBitsTag; - -template <typename T> struct BitPumpPatternTest<T, TestGetBitsTag> { - using PumpT = typename T::PumpT; - using PatternT = typename T::PatternT; - - template <typename L> static void Test(PumpT& pump, L gen) { - for (int len = 1; len <= 7; len++) - ASSERT_EQ(pump.getBits(len), gen(len)) << " Where len: " << len; - } -}; - -struct TestGetBitsNoFillTag; - -template <typename T> struct BitPumpPatternTest<T, TestGetBitsNoFillTag> { - using PumpT = typename T::PumpT; - using PatternT = typename T::PatternT; - - template <typename L> static void Test(PumpT& pump, L gen) { - pump.fill(32); // Actually fills 32 bits - for (int len = 1; len <= 7; len++) - ASSERT_EQ(pump.getBitsNoFill(len), gen(len)) << " Where len: " << len; - } -}; - -struct TestPeekBitsTag; - -template <typename T> struct BitPumpPatternTest<T, TestPeekBitsTag> { - using PumpT = typename T::PumpT; - using PatternT = typename T::PatternT; - - template <typename L> static void Test(PumpT& pump, L gen) { - for (int len = 1; len <= 7; len++) { - ASSERT_EQ(pump.peekBits(len), gen(len)) << " Where len: " << len; - pump.skipBitsNoFill(len); - } - } -}; - -struct TestPeekBitsNoFillTag; - -template <typename T> struct BitPumpPatternTest<T, TestPeekBitsNoFillTag> { - using PumpT = typename T::PumpT; - using PatternT = typename T::PatternT; - - template <typename L> static void Test(PumpT& pump, L gen) { - pump.fill(32); // Actually fills 32 bits - for (int len = 1; len <= 7; len++) { - ASSERT_EQ(pump.peekBitsNoFill(len), gen(len)) - << " Where len: " << len; - pump.skipBitsNoFill(len); - } - } -}; - -struct TestIncreasingPeekLengthTag; - -template <typename T> -struct BitPumpPatternTest<T, TestIncreasingPeekLengthTag> { - using PumpT = typename T::PumpT; - using PatternT = typename T::PatternT; - - template <typename L> static void Test(PumpT& pump, L data) { - static const auto MaxLen = 28; - for (int len = 1; len <= MaxLen; len++) - ASSERT_EQ(pump.peekBits(len), data(len)) << " Where len: " << len; - } -}; - -struct TestIncreasingPeekLengthNoFillTag; - -template <typename T> -struct BitPumpPatternTest<T, TestIncreasingPeekLengthNoFillTag> { - using PumpT = typename T::PumpT; - using PatternT = typename T::PatternT; - - template <typename L> static void Test(PumpT& pump, L data) { - static const auto MaxLen = 28; - pump.fill(MaxLen); // Actually fills 32 bits - for (int len = 1; len <= MaxLen; len++) - ASSERT_EQ(pump.peekBitsNoFill(len), data(len)) - << " Where len: " << len; - } -}; - -template <typename T> class BitPumpTest : public ::testing::Test { -public: - using PumpT = typename T::PumpT; - using PatternT = typename T::PatternT; - -protected: - template <typename Tag, typename TestDataType, typename L> - void runTest(const TestDataType& data, L gen) { - const Buffer b(data.data(), data.size()); - - for (auto e : {Endianness::little, Endianness::big}) { - const DataBuffer db(b, e); - const ByteStream bs(db); - - PumpT pump(bs); - BitPumpPatternTest<T, Tag>::Test(pump, gen); - } - } -}; - -TYPED_TEST_CASE_P(BitPumpTest); - -TYPED_TEST_P(BitPumpTest, GetTest) { - this->template runTest<TestGetBitsTag>(TypeParam::PatternT::Data, - TypeParam::PatternT::element); -} -TYPED_TEST_P(BitPumpTest, GetNoFillTest) { - this->template runTest<TestGetBitsNoFillTag>(TypeParam::PatternT::Data, - TypeParam::PatternT::element); -} -TYPED_TEST_P(BitPumpTest, PeekTest) { - this->template runTest<TestPeekBitsTag>(TypeParam::PatternT::Data, - TypeParam::PatternT::element); -} -TYPED_TEST_P(BitPumpTest, PeekNoFillTest) { - this->template runTest<TestPeekBitsNoFillTag>(TypeParam::PatternT::Data, - TypeParam::PatternT::element); -} -TYPED_TEST_P(BitPumpTest, IncreasingPeekLengthTest) { - this->template runTest<TestIncreasingPeekLengthTag>( - TypeParam::PatternT::Data, TypeParam::PatternT::data); -} -TYPED_TEST_P(BitPumpTest, IncreasingPeekLengthNoFillTest) { - this->template runTest<TestIncreasingPeekLengthNoFillTag>( - TypeParam::PatternT::Data, TypeParam::PatternT::data); -} - -REGISTER_TYPED_TEST_CASE_P(BitPumpTest, GetTest, GetNoFillTest, PeekTest, - PeekNoFillTest, IncreasingPeekLengthTest, - IncreasingPeekLengthNoFillTest); - -template <typename Pump, typename PatternTag> struct Pattern {}; - -struct ZerosTag; - -template <typename Pump> struct Pattern<Pump, ZerosTag> { - static const std::array<uint8_t, 8> Data; - static uint32_t element(int index) { return 0U; } - static uint32_t data(int len) { return 0U; } -}; -template <typename Pump> -const std::array<uint8_t, 8> Pattern<Pump, ZerosTag>::Data{{/* zero-init */}}; - -struct OnesTag; - -template <typename Pump> struct Pattern<Pump, OnesTag> { - static const std::array<uint8_t, 8> Data; - static uint32_t element(int index) { return 1U; } - static uint32_t data(int len); -}; - -struct InvOnesTag; - -template <typename Pump> struct Pattern<Pump, InvOnesTag> { - static const std::array<uint8_t, 8> Data; - static uint32_t element(int index) { return 1U << (index - 1U); } - static uint32_t data(int len); -}; - -struct SaturatedTag; - -template <typename Pump> struct Pattern<Pump, SaturatedTag> { - static const std::array<uint8_t, 8> Data; - static uint32_t element(int index) { return (1U << index) - 1U; } - static uint32_t data(int len) { return (1U << len) - 1U; } -}; -template <typename Pump> -const std::array<uint8_t, 8> Pattern<Pump, SaturatedTag>::Data{ - {uint8_t(~0U), uint8_t(~0U), uint8_t(~0U), uint8_t(~0U)}}; - -auto GenOnesLE = [](int zerosToOutput, - int zerosOutputted) -> std::array<uint32_t, 29> { - std::array<uint32_t, 29> v; - uint32_t bits = 0; - int currBit = -1; - for (auto& value : v) { - if (zerosToOutput == zerosOutputted) { - assert(currBit < 32); - bits |= 0b1 << currBit; - zerosToOutput++; - zerosOutputted = 0; - } - value = bits; - zerosOutputted++; - currBit++; - } - return v; -}; -auto GenOnesBE = [](int zerosToOutput, - int zerosOutputted) -> std::array<uint32_t, 29> { - std::array<uint32_t, 29> v; - uint32_t bits = 0; - for (auto& value : v) { - if (zerosToOutput == zerosOutputted) { - bits |= 0b1; - zerosToOutput++; - zerosOutputted = 0; - } - value = bits; - zerosOutputted++; - bits <<= 1; - } - return v; -}; - -template <typename Pump, typename Pattern> struct PumpAndPattern { - using PumpT = Pump; - using PatternT = Pattern; -}; - -template <typename Pump> -using Patterns = - ::testing::Types<PumpAndPattern<Pump, Pattern<Pump, ZerosTag>>, - PumpAndPattern<Pump, Pattern<Pump, OnesTag>>, - PumpAndPattern<Pump, Pattern<Pump, InvOnesTag>>, - PumpAndPattern<Pump, Pattern<Pump, SaturatedTag>>>; - -} // namespace rawspeed_test diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/io/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/test/librawspeed/io/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/io/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/io/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -1,9 +1,4 @@ FILE(GLOB RAWSPEED_TEST_SOURCES - "BitPumpJPEGTest.cpp" - "BitPumpLSBTest.cpp" - "BitPumpMSB16Test.cpp" - "BitPumpMSB32Test.cpp" - "BitPumpMSBTest.cpp" "EndiannessTest.cpp" ) diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/io/EndiannessTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/io/EndiannessTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/io/EndiannessTest.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/io/EndiannessTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,13 +19,12 @@ */ #include "EndiannessTest.h" -#include "io/Endianness.h" // for getHostEndianness, Endianness, getByteSwa... -#include <algorithm> // for copy -#include <cstring> // for memcpy, memcmp -#include <iomanip> // for operator<<, setfill, setw, _Setw, _Setfill -#include <iostream> // for hex, endl, ostream -#include <memory> // for allocator -#include <gtest/gtest.h> // for ParamIteratorInterface, Message, TestPart... +#include "io/Endianness.h" +#include <cstdint> +#include <cstring> +#include <iomanip> +#include <iostream> +#include <gtest/gtest.h> using rawspeed::Endianness; using rawspeed::getBE; @@ -84,7 +83,7 @@ } // no polymorphic lambda till c++14 -struct HexEquals { +struct HexEquals final { template <typename T> ::testing::AssertionResult operator()(const char* darg1, const char* darg2, const T& arg1, const T& arg2) { @@ -135,9 +134,9 @@ */ class ushort16Test : public AbstractGetByteSwappedTest<ushort16TType, uint16_t> {}; -INSTANTIATE_TEST_CASE_P(ushort16Test, ushort16Test, - ::testing::Combine(::testing::ValuesIn(ushort16Values), - ::testing::Bool())); +INSTANTIATE_TEST_SUITE_P(ushort16Test, ushort16Test, + ::testing::Combine(::testing::ValuesIn(ushort16Values), + ::testing::Bool())); TEST_P(ushort16Test, swap) { ASSERT_PRED_FORMAT2(HexEquals{}, getByteSwapped(in), expected); } @@ -179,9 +178,9 @@ class short16Test : public AbstractGetByteSwappedTest<ushort16TType, int16_t> { }; -INSTANTIATE_TEST_CASE_P(short16Test, short16Test, - ::testing::Combine(::testing::ValuesIn(ushort16Values), - ::testing::Bool())); +INSTANTIATE_TEST_SUITE_P(short16Test, short16Test, + ::testing::Combine(::testing::ValuesIn(ushort16Values), + ::testing::Bool())); TEST_P(short16Test, swap) { ASSERT_PRED_FORMAT2(HexEquals{}, getByteSwapped(in), expected); } @@ -210,9 +209,9 @@ B=4 # sizeof, bytes */ class uint32Test : public AbstractGetByteSwappedTest<uint32TType, uint32_t> {}; -INSTANTIATE_TEST_CASE_P(uint32Test, uint32Test, - ::testing::Combine(::testing::ValuesIn(uint32Values), - ::testing::Bool())); +INSTANTIATE_TEST_SUITE_P(uint32Test, uint32Test, + ::testing::Combine(::testing::ValuesIn(uint32Values), + ::testing::Bool())); TEST_P(uint32Test, swap) { ASSERT_PRED_FORMAT2(HexEquals{}, getByteSwapped(in), expected); } @@ -253,9 +252,9 @@ } class int32Test : public AbstractGetByteSwappedTest<uint32TType, int32_t> {}; -INSTANTIATE_TEST_CASE_P(int32Test, int32Test, - ::testing::Combine(::testing::ValuesIn(uint32Values), - ::testing::Bool())); +INSTANTIATE_TEST_SUITE_P(int32Test, int32Test, + ::testing::Combine(::testing::ValuesIn(uint32Values), + ::testing::Bool())); TEST_P(int32Test, swap) { ASSERT_PRED_FORMAT2(HexEquals{}, getByteSwapped(in), expected); } @@ -284,9 +283,9 @@ B=8 # sizeof, bytes */ class uint64Test : public AbstractGetByteSwappedTest<uint64TType, uint64_t> {}; -INSTANTIATE_TEST_CASE_P(uint64Test, uint64Test, - ::testing::Combine(::testing::ValuesIn(uint64Values), - ::testing::Bool())); +INSTANTIATE_TEST_SUITE_P(uint64Test, uint64Test, + ::testing::Combine(::testing::ValuesIn(uint64Values), + ::testing::Bool())); TEST_P(uint64Test, swap) { ASSERT_PRED_FORMAT2(HexEquals{}, getByteSwapped(in), expected); } @@ -312,9 +311,9 @@ } class floatTest : public AbstractGetByteSwappedTest<uint32TType, float> {}; -INSTANTIATE_TEST_CASE_P(floatTest, floatTest, - ::testing::Combine(::testing::ValuesIn(uint32Values), - ::testing::Bool())); +INSTANTIATE_TEST_SUITE_P(floatTest, floatTest, + ::testing::Combine(::testing::ValuesIn(uint32Values), + ::testing::Bool())); TEST_P(floatTest, swap) { ASSERT_PRED_FORMAT2(HexEquals{}, getByteSwapped(in), expected); } @@ -340,9 +339,9 @@ } class doubleTest : public AbstractGetByteSwappedTest<uint64TType, double> {}; -INSTANTIATE_TEST_CASE_P(doubleTest, doubleTest, - ::testing::Combine(::testing::ValuesIn(uint64Values), - ::testing::Bool())); +INSTANTIATE_TEST_SUITE_P(doubleTest, doubleTest, + ::testing::Combine(::testing::ValuesIn(uint64Values), + ::testing::Bool())); TEST_P(doubleTest, swap) { ASSERT_PRED_FORMAT2(HexEquals{}, getByteSwapped(in), expected); } diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/io/EndiannessTest.h darktable-4.6.1/src/external/rawspeed/test/librawspeed/io/EndiannessTest.h --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/io/EndiannessTest.h 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/io/EndiannessTest.h 2024-02-14 22:08:05.000000000 +0000 @@ -20,12 +20,12 @@ #pragma once -#include <cstdint> // for uint16_t, uint32_t, uint64_t -#include <tuple> // for tuple +#include <cstdint> +#include <tuple> namespace rawspeed_test { -template <typename T> struct intPair { +template <typename T> struct intPair final { T first; T second; }; diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/metadata/BlackAreaTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/metadata/BlackAreaTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/metadata/BlackAreaTest.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/metadata/BlackAreaTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,11 +19,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "metadata/BlackArea.h" // for BlackArea -#include <memory> // for unique_ptr, allocator -#include <string> // for basic_string -#include <tuple> // for get, tuple -#include <gtest/gtest.h> // for ParamIteratorInterface, Message, Tes... +#include "metadata/BlackArea.h" +#include <memory> +#include <tuple> +#include <gtest/gtest.h> using rawspeed::BlackArea; using std::unique_ptr; @@ -34,7 +33,7 @@ : public ::testing::TestWithParam<std::tuple<int, int, bool>> { protected: BlackAreaTest() = default; - virtual void SetUp() override { + virtual void SetUp() final { offset = std::get<0>(GetParam()); size = std::get<1>(GetParam()); isVertical = std::get<2>(GetParam()); @@ -57,11 +56,12 @@ bool isVertical{false}; // Otherwise horizontal }; -INSTANTIATE_TEST_CASE_P(BlackAreas, BlackAreaTest, - testing::Combine(testing::Range(0, 1000, 250), // offset - testing::Range(0, 1000, 250), // size - testing::Bool() // isVertical - )); +INSTANTIATE_TEST_SUITE_P(BlackAreas, BlackAreaTest, + testing::Combine(testing::Range(0, 1000, + 250), // offset + testing::Range(0, 1000, 250), // size + testing::Bool() // isVertical + )); TEST_P(BlackAreaTest, Constructor) { ASSERT_NO_THROW({ BlackArea Area(offset, size, isVertical); }); @@ -88,7 +88,7 @@ TEST_P(BlackAreaTest, AssignmentConstructor) { ASSERT_NO_THROW({ const BlackArea AreaOrig(offset, size, isVertical); - BlackArea Area(AreaOrig); // NOLINT trying to test the copy + BlackArea Area(AreaOrig); checkHelper(AreaOrig); checkHelper(Area); }); diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/metadata/CameraMetaDataTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,12 +19,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "rawspeedconfig.h" // for HAVE_PUGIXML, RAWSPEED_SOURCE_DIR -#include "metadata/Camera.h" // for Camera -#include "metadata/CameraMetaData.h" // for CameraMetaData -#include <memory> // for allocator, unique_ptr -#include <string> // for string, basic_string -#include <gtest/gtest.h> // for Message, TestPartResult +#include "rawspeedconfig.h" +#include "metadata/Camera.h" +#include "metadata/CameraMetaData.h" +#include <memory> +#include <string> +#include <gtest/gtest.h> using rawspeed::CameraMetaData; using std::unique_ptr; @@ -36,7 +36,7 @@ static const std::string camfile(RAWSPEED_SOURCE_DIR "/data/cameras.xml"); TEST(CameraMetaDataTest, CompileTimeCanInherit) { - struct MyCameraMetaData : public CameraMetaData {}; + struct MyCameraMetaData final : public CameraMetaData {}; } TEST(CameraMetaDataTest, CamerasXml) { diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/metadata/CameraSensorInfoTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,17 +19,16 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "metadata/CameraSensorInfo.h" // for CameraSensorInfo -#include <algorithm> // for copy, generate, fill_n, max -#include <cstdlib> // for rand, srand -#include <iostream> // for operator<<, basic_ostream::op... -#include <limits> // for numeric_limits -#include <memory> // for unique_ptr, allocator -#include <string> // for basic_string, string -#include <tuple> // for get, tuple -#include <vector> // for vector -#include <gmock/gmock.h> // for testing::InitGoogleMock -#include <gtest/gtest.h> // for ParamIteratorInterface, Message +#include "metadata/CameraSensorInfo.h" +#include <algorithm> +#include <cstdlib> +#include <iostream> +#include <limits> +#include <memory> +#include <tuple> +#include <vector> +#include <gmock/gmock.h> +#include <gtest/gtest.h> using rawspeed::CameraSensorInfo; using std::unique_ptr; @@ -42,15 +41,21 @@ : public ::testing::TestWithParam<std::tuple<int, int>> { protected: CameraSensorInfoTestDumb() - : mBlackLevel(std::rand()), // NOLINT do not need crypto-level randomness - mWhiteLevel(std::rand()), // NOLINT do not need crypto-level randomness + : mBlackLevel(std::rand()), // NOLINT(cert-msc50-cpp): do not need + // crypto-level randomness + mWhiteLevel(std::rand()), // NOLINT(cert-msc50-cpp): do not need + // crypto-level randomness mBlackLevelSeparate({ - std::rand(), // NOLINT do not need crypto-level randomness - std::rand(), // NOLINT do not need crypto-level randomness - std::rand(), // NOLINT do not need crypto-level randomness - std::rand() // NOLINT do not need crypto-level randomness + std::rand(), // NOLINT(cert-msc50-cpp): do not need crypto-level + // randomness + std::rand(), // NOLINT(cert-msc50-cpp): do not need crypto-level + // randomness + std::rand(), // NOLINT(cert-msc50-cpp): do not need crypto-level + // randomness + std::rand() // NOLINT(cert-msc50-cpp): do not need crypto-level + // randomness }) {} - virtual void SetUp() override { + virtual void SetUp() final { mMinIso = std::get<0>(GetParam()); mMaxIso = std::get<1>(GetParam()); } @@ -78,10 +83,10 @@ std::vector<int> mBlackLevelSeparate; }; -INSTANTIATE_TEST_CASE_P(MinMax, CameraSensorInfoTestDumb, - testing::Combine(testing::ValuesIn(ISOList), // min iso - testing::ValuesIn(ISOList) // max iso - )); +INSTANTIATE_TEST_SUITE_P(MinMax, CameraSensorInfoTestDumb, + testing::Combine(testing::ValuesIn(ISOList), // min iso + testing::ValuesIn(ISOList) // max iso + )); TEST_P(CameraSensorInfoTestDumb, Constructor) { ASSERT_NO_THROW({ @@ -115,7 +120,7 @@ ASSERT_NO_THROW({ const CameraSensorInfo InfoOrig(mBlackLevel, mWhiteLevel, mMinIso, mMaxIso, mBlackLevelSeparate); - CameraSensorInfo Info(InfoOrig); // NOLINT trying to test the copy + CameraSensorInfo Info(InfoOrig); // NOLINT(foo): trying to test the copy }); ASSERT_NO_THROW({ @@ -224,7 +229,7 @@ // -------------------------------------------------------- -struct IsoExpectationsT { +struct IsoExpectationsT final { int mMinIso; int Iso; int mMaxIso; @@ -262,15 +267,21 @@ protected: CameraSensorInfoTest() : data(IsoExpectationsT{-1, -1, -1, false, false}), - mBlackLevel(std::rand()), // NOLINT do not need crypto-level randomness - mWhiteLevel(std::rand()), // NOLINT do not need crypto-level randomness + mBlackLevel(std::rand()), // NOLINT(cert-msc50-cpp): do not need + // crypto-level randomness + mWhiteLevel(std::rand()), // NOLINT(cert-msc50-cpp): do not need + // crypto-level randomness mBlackLevelSeparate({ - std::rand(), // NOLINT do not need crypto-level randomness - std::rand(), // NOLINT do not need crypto-level randomness - std::rand(), // NOLINT do not need crypto-level randomness - std::rand() // NOLINT do not need crypto-level randomness + std::rand(), // NOLINT(cert-msc50-cpp): do not need crypto-level + // randomness + std::rand(), // NOLINT(cert-msc50-cpp): do not need crypto-level + // randomness + std::rand(), // NOLINT(cert-msc50-cpp): do not need crypto-level + // randomness + std::rand() // NOLINT(cert-msc50-cpp): do not need crypto-level + // randomness }) {} - virtual void SetUp() override { data = GetParam(); } + virtual void SetUp() final { data = GetParam(); } IsoExpectationsT data; @@ -279,8 +290,8 @@ std::vector<int> mBlackLevelSeparate; }; -INSTANTIATE_TEST_CASE_P(Expectations, CameraSensorInfoTest, - testing::ValuesIn(CameraSensorIsoInfos)); +INSTANTIATE_TEST_SUITE_P(Expectations, CameraSensorInfoTest, + testing::ValuesIn(CameraSensorIsoInfos)); TEST_P(CameraSensorInfoTest, IsDefault) { CameraSensorInfo Info(mBlackLevel, mWhiteLevel, data.mMinIso, data.mMaxIso, diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/metadata/CameraTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/metadata/CameraTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/metadata/CameraTest.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/metadata/CameraTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,10 +18,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "metadata/Camera.h" // for Hints -#include <string> // for string, allocator, basic_string, to_string -#include <tuple> // for get, tuple -#include <gtest/gtest.h> // for AssertionResult, Message, TestPartResult +#include "metadata/Camera.h" +#include <string> +#include <tuple> +#include <gtest/gtest.h> using rawspeed::Hints; using std::string; @@ -31,7 +31,7 @@ TEST(CameraTest, HintsEmpty) { Hints hints; - ASSERT_FALSE(hints.has("something")); + ASSERT_FALSE(hints.contains("something")); } TEST(CameraTest, HintsGetDefault) { @@ -50,16 +50,16 @@ const string key("something"); Hints hints; - ASSERT_FALSE(hints.has(key)); + ASSERT_FALSE(hints.contains(key)); hints.add(key, "indeed"); - ASSERT_TRUE(hints.has(key)); + ASSERT_TRUE(hints.contains(key)); const Hints hints2(hints); - ASSERT_TRUE(hints2.has(key)); + ASSERT_TRUE(hints2.contains(key)); const Hints hints3(hints2); - ASSERT_TRUE(hints3.has(key)); + ASSERT_TRUE(hints3.contains(key)); } TEST(CameraTest, HintsAssignment) { @@ -67,23 +67,23 @@ Hints hints; - ASSERT_FALSE(hints.has(key)); + ASSERT_FALSE(hints.contains(key)); hints.add(key, "indeed"); - ASSERT_TRUE(hints.has(key)); + ASSERT_TRUE(hints.contains(key)); const Hints hints2 = hints; - ASSERT_TRUE(hints2.has(key)); + ASSERT_TRUE(hints2.contains(key)); const Hints hints3 = hints2; - ASSERT_TRUE(hints3.has(key)); + ASSERT_TRUE(hints3.contains(key)); } TEST(CameraTest, HintsAdd) { Hints hints; const string key("something"), value("whocares"); - ASSERT_FALSE(hints.has(key)); + ASSERT_FALSE(hints.contains(key)); hints.add(key, value); - ASSERT_TRUE(hints.has(key)); + ASSERT_TRUE(hints.contains(key)); ASSERT_EQ(hints.get(key, string()), value); } @@ -91,9 +91,9 @@ Hints hints; const int val = -42; const string key("thenum"), value(to_string(val)); - ASSERT_FALSE(hints.has(key)); + ASSERT_FALSE(hints.contains(key)); hints.add(key, value); - ASSERT_TRUE(hints.has(key)); + ASSERT_TRUE(hints.contains(key)); ASSERT_EQ(hints.get(key, 0), val); } @@ -101,9 +101,9 @@ Hints hints; const unsigned int val = 84; const string key("thenum"), value(to_string(val)); - ASSERT_FALSE(hints.has(key)); + ASSERT_FALSE(hints.contains(key)); hints.add(key, value); - ASSERT_TRUE(hints.has(key)); + ASSERT_TRUE(hints.contains(key)); ASSERT_EQ(hints.get(key, 0U), val); } @@ -111,9 +111,9 @@ Hints hints; const float val = 3.14f; const string key("theflt"), value(to_string(val)); - ASSERT_FALSE(hints.has(key)); + ASSERT_FALSE(hints.contains(key)); hints.add(key, value); - ASSERT_TRUE(hints.has(key)); + ASSERT_TRUE(hints.contains(key)); ASSERT_EQ(hints.get(key, 0.0F), val); } @@ -121,9 +121,9 @@ Hints hints; const double val = 2.71; const string key("thedbl"), value(to_string(val)); - ASSERT_FALSE(hints.has(key)); + ASSERT_FALSE(hints.contains(key)); hints.add(key, value); - ASSERT_TRUE(hints.has(key)); + ASSERT_TRUE(hints.contains(key)); ASSERT_EQ(hints.get(key, 0.0), val); } @@ -131,27 +131,27 @@ Hints hints; const string key("key1"); - ASSERT_FALSE(hints.has(key)); + ASSERT_FALSE(hints.contains(key)); hints.add(key, "true"); - ASSERT_TRUE(hints.has(key)); + ASSERT_TRUE(hints.contains(key)); ASSERT_TRUE(hints.get(key, false)); } class BoolHintTest : public ::testing::TestWithParam<std::tuple<string>> { protected: - virtual void SetUp() override { notTrue = std::get<0>(GetParam()); } + virtual void SetUp() final { notTrue = std::get<0>(GetParam()); } string notTrue; }; -INSTANTIATE_TEST_CASE_P(NotTrue, BoolHintTest, - ::testing::Values("True", "false", "False", "", "_")); +INSTANTIATE_TEST_SUITE_P(NotTrue, BoolHintTest, + ::testing::Values("True", "false", "False", "", "_")); TEST_P(BoolHintTest, HintsBool) { Hints hints; const string key("key"); - ASSERT_FALSE(hints.has(key)); + ASSERT_FALSE(hints.contains(key)); hints.add(key, notTrue); - ASSERT_TRUE(hints.has(key)); + ASSERT_TRUE(hints.contains(key)); ASSERT_FALSE(hints.get(key, true)); } diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/metadata/ColorFilterArrayTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -19,14 +19,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "metadata/ColorFilterArray.h" // for ColorFilterArray, CFAColor -#include "adt/Point.h" // for iPoint2D -#include <algorithm> // for copy -#include <cstdint> // for uint32_t -#include <iosfwd> // for ostream -#include <string> // for allocator, basic_string, oper... -#include <tuple> // for get, make_tuple, tuple -#include <gtest/gtest.h> // for ParamIteratorInterface, Message +#include "metadata/ColorFilterArray.h" +#include "adt/Point.h" +#include <cstdint> +#include <iosfwd> +#include <string> +#include <tuple> +#include <gtest/gtest.h> using rawspeed::CFAColor; using rawspeed::ColorFilterArray; @@ -151,13 +150,13 @@ static const auto Bayer_CYGM = ::testing::Values( CFAColor::CYAN, CFAColor::MAGENTA, CFAColor::YELLOW, CFAColor::FUJI_GREEN); -INSTANTIATE_TEST_CASE_P(RGGB, ColorFilterArrayTest, - testing::Combine(Bayer_RGB, Bayer_RGB, Bayer_RGB, - Bayer_RGB)); - -INSTANTIATE_TEST_CASE_P(CYGM, ColorFilterArrayTest, - testing::Combine(Bayer_CYGM, Bayer_CYGM, Bayer_CYGM, - Bayer_CYGM)); +INSTANTIATE_TEST_SUITE_P(RGGB, ColorFilterArrayTest, + testing::Combine(Bayer_RGB, Bayer_RGB, Bayer_RGB, + Bayer_RGB)); + +INSTANTIATE_TEST_SUITE_P(CYGM, ColorFilterArrayTest, + testing::Combine(Bayer_CYGM, Bayer_CYGM, Bayer_CYGM, + Bayer_CYGM)); static void setHelper(ColorFilterArray* cfa, Bayer2x2 param) { cfa->setCFA(square, std::get<0>(param), std::get<1>(param), @@ -248,15 +247,15 @@ int y; }; -INSTANTIATE_TEST_CASE_P(RGGB, ColorFilterArrayShiftTest, - testing::Combine(Bayer_RGB, Bayer_RGB, Bayer_RGB, - Bayer_RGB, testing::Range(-2, 2), - testing::Range(-2, 2))); - -INSTANTIATE_TEST_CASE_P(CYGM, ColorFilterArrayShiftTest, - testing::Combine(Bayer_CYGM, Bayer_CYGM, Bayer_CYGM, - Bayer_CYGM, testing::Range(-2, 2), - testing::Range(-2, 2))); +INSTANTIATE_TEST_SUITE_P(RGGB, ColorFilterArrayShiftTest, + testing::Combine(Bayer_RGB, Bayer_RGB, Bayer_RGB, + Bayer_RGB, testing::Range(-2, 2), + testing::Range(-2, 2))); + +INSTANTIATE_TEST_SUITE_P(CYGM, ColorFilterArrayShiftTest, + testing::Combine(Bayer_CYGM, Bayer_CYGM, Bayer_CYGM, + Bayer_CYGM, testing::Range(-2, 2), + testing::Range(-2, 2))); TEST(ColorFilterArrayTestBasic, shiftDcrawFilter) { uint32_t bggr = 0x16161616; diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/test/CMakeLists.txt darktable-4.6.1/src/external/rawspeed/test/librawspeed/test/CMakeLists.txt --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/test/CMakeLists.txt 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/test/CMakeLists.txt 2024-02-14 22:08:05.000000000 +0000 @@ -10,6 +10,6 @@ "ExceptionsTest.cpp" ) -foreach(SRC ${RAWSPEED_TEST_SOURCES}) +foreach(SRC ${RAWSPEED_TESTS_SOURCES}) add_rs_test("${SRC}") endforeach() diff -Nru darktable-4.4.2/src/external/rawspeed/test/librawspeed/test/ExceptionsTest.cpp darktable-4.6.1/src/external/rawspeed/test/librawspeed/test/ExceptionsTest.cpp --- darktable-4.4.2/src/external/rawspeed/test/librawspeed/test/ExceptionsTest.cpp 2023-06-12 21:39:40.000000000 +0000 +++ darktable-4.6.1/src/external/rawspeed/test/librawspeed/test/ExceptionsTest.cpp 2024-02-14 22:08:05.000000000 +0000 @@ -18,18 +18,20 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "common/RawspeedException.h" // for RawspeedException (ptr... -#include "decoders/RawDecoderException.h" // for RawDecoderException (p... -#include "io/FileIOException.h" // for FileIOException (ptr o... -#include "io/IOException.h" // for IOException (ptr only) -#include "metadata/CameraMetadataException.h" // for CameraMetadataExceptio... -#include "parsers/CiffParserException.h" // for CiffParserException (p... -#include "parsers/FiffParserException.h" // for FiffParserException (p... -#include "parsers/RawParserException.h" // for RawParserException (pt... -#include "parsers/TiffParserException.h" // for TiffParserException (p... -#include <exception> // for exception -#include <memory> // for unique_ptr -#include <stdexcept> // for runtime_error +#include "common/RawspeedException.h" +#include "decoders/RawDecoderException.h" +#include "io/FileIOException.h" +#include "io/IOException.h" +#include "metadata/CameraMetadataException.h" +#include "parsers/CiffParserException.h" +#include "parsers/FiffParserException.h" +#include "parsers/RawParserException.h" +#include "parsers/TiffParserException.h" +#include <exception> +#include <memory> +#include <stdexcept> +#include <gmock/gmock.h> +#include <gtest/gtest.h> using rawspeed::CameraMetadataException; using rawspeed::CiffParserException; @@ -97,7 +99,7 @@ RawDecoderException, TiffParserException, FiffParserException, RawParserException>; -TYPED_TEST_CASE(ExceptionsTest, Classes); +TYPED_TEST_SUITE(ExceptionsTest, Classes); TYPED_TEST(ExceptionsTest, Constructor) { ASSERT_NO_THROW({ TypeParam Exception(msg); }); @@ -107,7 +109,7 @@ TYPED_TEST(ExceptionsTest, AssignmentConstructor) { ASSERT_NO_THROW({ const TypeParam ExceptionOne(msg); - TypeParam ExceptionTwo(ExceptionOne); // NOLINT trying to test the copy + TypeParam ExceptionTwo(ExceptionOne); }); ASSERT_NO_THROW({ diff -Nru darktable-4.4.2/src/gui/about.c darktable-4.6.1/src/gui/about.c --- darktable-4.4.2/src/gui/about.c 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/gui/about.c 2024-02-16 17:31:09.000000000 +0000 @@ -0,0 +1,71 @@ +/* + This file is part of darktable, + Copyright (C) 2010-2023 darktable developers. + + darktable is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + darktable is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with darktable. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include "gui/gtk.h" +#include "about.h" +#ifdef GDK_WINDOWING_QUARTZ +#include "osx/osx.h" +#endif + +void darktable_show_about_dialog() +{ + GtkWidget *dialog = gtk_about_dialog_new(); + gtk_widget_set_name (dialog, "about-dialog"); +#ifdef GDK_WINDOWING_QUARTZ + dt_osx_disallow_fullscreen(dialog); +#endif + gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(dialog), PACKAGE_NAME); + gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dialog), darktable_package_version); + char *copyright = g_strdup_printf(_("copyright (c) the authors 2009-%s"), + darktable_last_commit_year); + gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(dialog), copyright); + g_free(copyright); + gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(dialog), + _("organize and develop images from digital cameras")); + gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(dialog), "https://www.darktable.org/"); + gtk_about_dialog_set_website_label(GTK_ABOUT_DIALOG(dialog), "website"); + const dt_logo_season_t season = dt_util_get_logo_season(); + char *icon; + if(season != DT_LOGO_SEASON_NONE) + icon = g_strdup_printf("darktable-%d", (int)season); + else + icon = g_strdup("darktable"); + gtk_about_dialog_set_logo_icon_name(GTK_ABOUT_DIALOG(dialog), icon); + g_free(icon); + + const char *str = _("all those of you that made previous releases possible"); + +#include "tools/darktable_authors.h" + + const char *final[] = { str, NULL }; + gtk_about_dialog_add_credit_section (GTK_ABOUT_DIALOG(dialog), _("and..."), final); + + gtk_about_dialog_set_translator_credits(GTK_ABOUT_DIALOG(dialog), + _("translator-credits")); + + gtk_window_set_transient_for(GTK_WINDOW(dialog), + GTK_WINDOW(dt_ui_main_window(darktable.gui->ui))); + gtk_dialog_run(GTK_DIALOG(dialog)); + gtk_widget_destroy(dialog); +} + +// clang-format off +// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py +// vim: shiftwidth=2 expandtab tabstop=2 cindent +// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; +// clang-format on diff -Nru darktable-4.4.2/src/gui/about.h darktable-4.6.1/src/gui/about.h --- darktable-4.4.2/src/gui/about.h 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/gui/about.h 2024-02-16 17:31:09.000000000 +0000 @@ -0,0 +1,19 @@ +/* + This file is part of darktable, + Copyright (C) 2010-2023 darktable developers. + + darktable is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + darktable is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with darktable. If not, see <http://www.gnu.org/licenses/>. +*/ + +void darktable_show_about_dialog(); diff -Nru darktable-4.4.2/src/gui/accelerators.c darktable-4.6.1/src/gui/accelerators.c --- darktable-4.4.2/src/gui/accelerators.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/gui/accelerators.c 2024-02-16 17:31:09.000000000 +0000 @@ -38,6 +38,7 @@ typedef struct dt_shortcut_t { dt_view_type_flags_t views; + gboolean is_default; dt_input_device_t key_device; guint key; @@ -57,12 +58,27 @@ int instance; // 0 is from prefs, >0 counting from first, <0 counting from last } dt_shortcut_t; -const gchar *shortcut_category_label[] - = { N_("active view"), - N_("other views"), - N_("fallbacks"), - N_("speed") }; -#define NUM_CATEGORIES G_N_ELEMENTS(shortcut_category_label) +typedef enum dt_shortcut_category_t +{ + DT_SHORTCUT_CATEGORY_ACTIVE, + DT_SHORTCUT_CATEGORY_OTHER, + DT_SHORTCUT_CATEGORY_FALLBACKS, + DT_SHORTCUT_CATEGORY_SPEED, + DT_SHORTCUT_CATEGORY_DISABLED, + DT_SHORTCUT_CATEGORY_LAST, +} dt_shortcut_category_t; + +const gchar *_shortcut_category_label[] + = { [DT_SHORTCUT_CATEGORY_ACTIVE ] = N_("in active view"), + [DT_SHORTCUT_CATEGORY_OTHER ] = N_("in other views"), + [DT_SHORTCUT_CATEGORY_FALLBACKS] = N_("fallbacks"), + [DT_SHORTCUT_CATEGORY_SPEED ] = N_("speed adjustments"), + [DT_SHORTCUT_CATEGORY_DISABLED ] = N_("disabled defaults") }; + +static gboolean _is_shortcut_category(GSequenceIter *shortcut_iter) +{ + return GPOINTER_TO_UINT(shortcut_iter) < DT_SHORTCUT_CATEGORY_LAST; +} typedef struct dt_device_key_t { @@ -103,7 +119,9 @@ static dt_shortcut_t _sc = { 0 }; // shortcut under construction static guint _previous_move = DT_SHORTCUT_MOVE_NONE; static dt_action_t *_selected_action = NULL; -static dt_action_t *_highlighted_action = NULL; +static dt_shortcut_t *_selected_shortcut = NULL; + +#define ELEMENT_IS(type, shortcut, elements) ((elements) && (elements)[(shortcut)->element].effects == dt_action_effect_##type) const gchar *dt_action_effect_value[] = { N_("edit"), @@ -274,32 +292,56 @@ dt_action_effect_t effect, float move_size) { + GtkTextBuffer *buffer = GTK_IS_TEXT_VIEW(target) + ? gtk_text_view_get_buffer(target) + : NULL; if(DT_PERFORM_ACTION(move_size)) { + gint start_or_end = -1; switch(effect) { case DT_ACTION_EFFECT_FOCUS: gtk_widget_grab_focus(target); break; case DT_ACTION_EFFECT_START: - gtk_widget_grab_focus(target); - gtk_editable_set_position(target, 0); - break; + start_or_end = 0; case DT_ACTION_EFFECT_END: gtk_widget_grab_focus(target); - gtk_editable_set_position(target, -1); + if(buffer) + { + GtkTextIter iter; + gtk_text_buffer_get_iter_at_offset(buffer, &iter, start_or_end); + gtk_text_buffer_place_cursor(buffer, &iter); + } + else + gtk_editable_set_position(target, start_or_end); break; case DT_ACTION_EFFECT_CLEAR: - gtk_editable_delete_text(target, 0, -1); + if(buffer) + gtk_text_buffer_set_text(buffer, "", 0); + else + gtk_editable_delete_text(target, 0, -1); break; case DT_ACTION_EFFECT_SET:; gint position = move_size; - gtk_editable_insert_text(target, _entry_set_element, -1, &position); + if(buffer) + { + GtkTextIter iter; + gtk_text_buffer_get_iter_at_offset(buffer, &iter, move_size); + gtk_text_buffer_insert(buffer, &iter, _entry_set_element, -1); + } + else + gtk_editable_insert_text(target, _entry_set_element, -1, &position); break; } } else if(effect == DT_ACTION_EFFECT_SET) - gtk_entry_set_text(target, _entry_set_element); + { + if(buffer) + gtk_text_buffer_set_text(buffer, _entry_set_element, -1); + else + gtk_entry_set_text(target, _entry_set_element); + } return DT_ACTION_NOT_VALID; } @@ -340,8 +382,7 @@ { .move = DT_SHORTCUT_MOVE_HORIZONTAL , .effect = -1, .speed = 0.1 }, { .move = DT_SHORTCUT_MOVE_VERTICAL , .effect = -1, .speed = 10. }, { .effect = DT_ACTION_EFFECT_RESET , .button = DT_SHORTCUT_LEFT, .click = DT_SHORTCUT_DOUBLE }, - { .effect = DT_ACTION_EFFECT_TOP , .button = DT_SHORTCUT_LEFT, .click = DT_SHORTCUT_DOUBLE, .move = DT_SHORTCUT_MOVE_VERTICAL, .direction = DT_SHORTCUT_UP }, - { .effect = DT_ACTION_EFFECT_BOTTOM , .button = DT_SHORTCUT_LEFT, .click = DT_SHORTCUT_DOUBLE, .move = DT_SHORTCUT_MOVE_VERTICAL, .direction = DT_SHORTCUT_DOWN }, + { .effect = DT_ACTION_EFFECT_TOP , .button = DT_SHORTCUT_LEFT, .click = DT_SHORTCUT_DOUBLE, .move = DT_SHORTCUT_MOVE_VERTICAL }, { } }; const dt_action_def_t dt_action_def_value @@ -429,6 +470,16 @@ && !s->button && !s->click && !s->mods); } +static int _shortcut_category(const dt_shortcut_t *s, + dt_view_type_flags_t view) +{ + return !s || !s->views ? DT_SHORTCUT_CATEGORY_DISABLED : + _shortcut_is_speed(s) ? DT_SHORTCUT_CATEGORY_SPEED : + s->views & DT_VIEW_FALLBACK ? DT_SHORTCUT_CATEGORY_FALLBACKS : + s->views & view ? DT_SHORTCUT_CATEGORY_ACTIVE : + DT_SHORTCUT_CATEGORY_OTHER; +} + static gint _shortcut_compare_func(gconstpointer shortcut_a, gconstpointer shortcut_b, gpointer user_data) @@ -436,40 +487,38 @@ const dt_shortcut_t *a = (const dt_shortcut_t *)shortcut_a; const dt_shortcut_t *b = (const dt_shortcut_t *)shortcut_b; - const gboolean a_is_speed = _shortcut_is_speed(a); - const gboolean b_is_speed = _shortcut_is_speed(b); - dt_view_type_flags_t active_view = GPOINTER_TO_INT(user_data); - const int a_category = a_is_speed ? -1 : a->views ? a->views & active_view : -2; // put fallbacks last - const int b_category = b_is_speed ? -1 : b->views ? b->views & active_view : -2; // put fallbacks last + const int a_category = _shortcut_category(a, active_view); + const int b_category = _shortcut_category(b, active_view); if(a_category != b_category) - // reverse order; in current view first, fallbacks and speed last return b_category - a_category; - if(a_is_speed && a->action != b->action) - //FIXME order by (full) name, but avoid slow full path generation and comparison - return GPOINTER_TO_INT(a->action) - GPOINTER_TO_INT(b->action); - if(!a->views && a->action && b->action && a->action->target != b->action->target) + + if(a_category == DT_SHORTCUT_CATEGORY_FALLBACKS + && a->action && b->action + && a->action->target != b->action->target) // order fallbacks by referred type return GPOINTER_TO_INT(a->action->target) - GPOINTER_TO_INT(b->action->target); - if(a->key_device != b->key_device) - return a->key_device - b->key_device; - if(a->key != b->key) - return a->key - b->key; - if(a->press != b->press) - return a->press - b->press; - if(a->button != b->button) - return a->button - b->button; - if(a->click != b->click) - return a->click - b->click; - if(a->move_device != b->move_device) - return a->move_device - b->move_device; - if(a->move != b->move) - return a->move - b->move; - if(a->mods != b->mods) - return a->mods - b->mods; - if((a->direction | b->direction) == (DT_SHORTCUT_UP | DT_SHORTCUT_DOWN)) + +#define RETURN_DIFFERENCE(field) if(a->field != b->field) return a->field - b->field + RETURN_DIFFERENCE(key_device); + RETURN_DIFFERENCE(key); + RETURN_DIFFERENCE(press); + RETURN_DIFFERENCE(button); + RETURN_DIFFERENCE(click); + RETURN_DIFFERENCE(move_device); + RETURN_DIFFERENCE(move); + RETURN_DIFFERENCE(mods); + + if((a->direction | b->direction) == (DT_SHORTCUT_UP | DT_SHORTCUT_DOWN) + && a->views == b->views) return a->direction - b->direction; + + if(a_category == DT_SHORTCUT_CATEGORY_DISABLED + || a_category == DT_SHORTCUT_CATEGORY_SPEED) + // Order disabled default shortcuts by action to immediately find correct one + return GPOINTER_TO_INT(a->action) - GPOINTER_TO_INT(b->action); + return 0; }; @@ -642,12 +691,18 @@ return name; } -static gboolean _shortcut_is_move(dt_shortcut_t *s) +static gboolean _shortcut_is_move(const dt_shortcut_t *s) { return (s->move_device != DT_SHORTCUT_DEVICE_KEYBOARD_MOUSE || s->move != DT_SHORTCUT_MOVE_NONE) && !s->direction; } +static dt_action_effect_t _shortcut_default_effect(const dt_shortcut_t *s) +{ + return _shortcut_is_move(s) ? DT_ACTION_EFFECT_DEFAULT_MOVE + : DT_ACTION_EFFECT_DEFAULT_KEY; +} + static gchar *_shortcut_description(dt_shortcut_t *s) { static gchar hint[1024]; @@ -714,12 +769,15 @@ if(components && (s->element || (!def->fallbacks && def->elements->name))) add_hint(", %s", _(def->elements[s->element].name)); const gchar *cef = _action_find_effect_combo(s->action, &def->elements[s->element], s->effect); - if(cef || s->effect > 0) + if(cef || s->effect > _shortcut_default_effect(s)) add_hint(", %s", Q_(cef ? cef : def->elements[s->element].effects[s->effect])); } - if(s->speed != 1.0) - add_hint("%s%s *%g", length ? ", ": "", _("speed"), s->speed); + if(def && ELEMENT_IS(value, s, def->elements) && s->effect == DT_ACTION_EFFECT_SET) + add_hint(" = %g", s->speed); + else if(s->speed != 1.0) + add_hint("%s%s *%g", !_shortcut_is_speed(s) || components == 2 ? ", " : "", + _("speed"), s->speed); #undef add_hint @@ -734,17 +792,15 @@ if(ac->owner && ac->owner->owner) _insert_shortcut_in_list(ht, shortcut, ac->owner, g_strdup_printf("%s/%s", ac->owner->label, label)); + GtkListStore *list_store = g_hash_table_lookup(ht, ac->owner); + if(!list_store) { - GtkListStore *list_store = g_hash_table_lookup(ht, ac->owner); - if(!list_store) - { - list_store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); - g_hash_table_insert(ht, ac->owner, list_store); - } - - gtk_list_store_insert_with_values(list_store, NULL, -1, 0, shortcut, 1, label, -1); + list_store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); + g_hash_table_insert(ht, ac->owner, list_store); } + gtk_list_store_insert_with_values(list_store, NULL, -1, 0, shortcut, 1, label, -1); + g_free(label); } @@ -757,7 +813,7 @@ iter = g_sequence_iter_next(iter)) { dt_shortcut_t *s = g_sequence_get(iter); - if(s && s->views & v) + if(s && s->views & v && !_shortcut_is_speed(s)) _insert_shortcut_in_list(ht, _shortcut_description(s), s->action, g_strdup_printf("%s%s", s->action->label, _action_description(s, 1))); } @@ -910,9 +966,10 @@ window), &workarea); - wx = CLAMP(wx, workarea.x, workarea.x + workarea.width - width); + const gint nx = CLAMP(wx, workarea.x, workarea.x + workarea.width - width); - gdk_window_move(window, wx, wy); + if(nx != wx) + gdk_window_move(window, nx, wy); } gboolean dt_shortcut_tooltip_callback(GtkWidget *widget, @@ -923,7 +980,8 @@ GtkWidget *vbox) { GtkWindow *top = GTK_WINDOW(gtk_widget_get_toplevel(widget)); - if(!gtk_window_is_active(top) && gtk_window_get_window_type(top) != GTK_WINDOW_POPUP) + if(!gtk_window_is_active(top) + && gtk_window_get_window_type(top) != GTK_WINDOW_POPUP) return FALSE; if(dt_key_modifier_state() & (GDK_BUTTON1_MASK|GDK_BUTTON2_MASK|GDK_BUTTON3_MASK)) @@ -936,7 +994,8 @@ int show_element = 0; dt_shortcut_t lua_shortcut = { .speed = 1.0 }; - gchar *original_markup = gtk_widget_get_tooltip_markup(widget); + gchar *original_markup = + dt_bauhaus_widget_get_tooltip_markup(widget, darktable.control->element); gchar *preset_name = g_object_get_data(G_OBJECT(widget), "dt-preset-name"); const gchar *widget_name = gtk_widget_get_name(widget); @@ -961,36 +1020,43 @@ { GSequenceIter *shortcut_iter = NULL; gtk_tree_model_get(model, &iter, 0, &shortcut_iter, -1); - markup_text = g_markup_printf_escaped("%s%s%s", - _("start typing for incremental search"), - _highlighted_action ? _("\npress Delete to delete selected shortcut") : "", - (GPOINTER_TO_UINT(shortcut_iter) < NUM_CATEGORIES) ? "" : - _("\ndouble-click to add new shortcut")); + markup_text = g_markup_printf_escaped + ("%s%s%s", + _("start typing for incremental search"), + !_selected_shortcut ? "" : + !_selected_shortcut->is_default + ? _("\npress Delete to delete selected shortcut") + : _selected_shortcut->views + ? _("\npress Delete to disable selected default shortcut") + : _("\npress Delete to restore selected default shortcut"), + _is_shortcut_category(shortcut_iter) ? "" : + _("\ndouble-click to add new shortcut")); - if(GPOINTER_TO_UINT(shortcut_iter) >= NUM_CATEGORIES) + if(!_is_shortcut_category(shortcut_iter)) lua_shortcut = *(dt_shortcut_t*)g_sequence_get(shortcut_iter); } else { gtk_tree_model_get(model, &iter, 0, &action, -1); def = _action_find_definition(action); - markup_text = g_markup_printf_escaped("%s\n%s%s%s%s%s", - _("start typing for incremental search"), - _("click to filter shortcuts list"), - _highlighted_action ? - _("\nright click to show action of selected shortcut") - : "", - def || action->type > DT_ACTION_TYPE_SECTION ? - _("\ndouble-click to define new shortcut") - : "", - def ? - "\n\nmultiple shortcuts can be defined for the same action;" - "\na different element, effect, speed or instance can be set for each in the shortcuts list." - : "", - def && def->fallbacks && action->type != DT_ACTION_TYPE_FALLBACK ? - "\n\nwith fallbacks enabled, the same shortcut can be used with additional modifiers" - "\nor mouse scroll/clicks/moves to affect a different element or change the effect or speed." - : ""); + markup_text = g_markup_printf_escaped + ("%s\n%s%s%s%s%s", + _("start typing for incremental search"), + _("click to filter shortcuts list"), + _selected_shortcut ? + _("\nright click to show action of selected shortcut") + : "", + def || action->type > DT_ACTION_TYPE_SECTION ? + _("\ndouble-click to define new shortcut") + : "", + def ? + "\n\nmultiple shortcuts can be defined for the same action;" + "\na different element, effect, speed or instance can be set for each in the shortcuts list." + : "", + def && def->fallbacks && action->type != DT_ACTION_TYPE_FALLBACK ? + "\n\nwith fallbacks enabled, the same shortcut can be used with additional modifiers" + "\nor mouse scroll/clicks/moves to affect a different element or change the effect or speed." + : ""); } } else if(preset_name) @@ -1034,8 +1100,8 @@ markup_text = g_markup_printf_escaped("%s\n%s\n%s%s\n%s", _("press keys with mouse click and scroll or move combinations to create a shortcut"), _("click to open shortcut configuration"), - add_remove_qap > 0 ? _("ctrl+click to add to quick access panel\n") : - add_remove_qap < 0 ? _("ctrl+click to remove from quick access panel\n") : "", + add_remove_qap == CPF_DIRECTION_UP ? _("ctrl+click to add to quick access panel\n") : + add_remove_qap == CPF_DIRECTION_DOWN ? _("ctrl+click to remove from quick access panel\n") : "", _("scroll to change default speed"), _("right click to exit mapping mode")); } @@ -1048,11 +1114,13 @@ if(dt_bauhaus_slider_get_soft_min(widget) != hard_min || dt_bauhaus_slider_get_soft_max(widget) != hard_max) { - original_markup = dt_util_dstrcat(original_markup, _("%sright-click to type a specific value between <b>%s</b> and <b>%s</b>" - "\nor hold ctrl+shift while dragging to ignore soft limits."), - original_markup ? "\n\n" : "", - dt_bauhaus_slider_get_text(widget, hard_min), - dt_bauhaus_slider_get_text(widget, hard_max)); + original_markup = dt_util_dstrcat + (original_markup, + _("%sright-click to type a specific value between <b>%s</b> and <b>%s</b>" + "\nor hold ctrl+shift while dragging to ignore soft limits."), + original_markup ? "\n\n" : "", + dt_bauhaus_slider_get_text(widget, hard_min), + dt_bauhaus_slider_get_text(widget, hard_max)); } } } @@ -1075,12 +1143,15 @@ description = g_markup_escape_text(_(element_name), -1); } + const dt_view_type_flags_t current_view = dt_view_get_current(); int num_shortcuts = 0; for(GSequenceIter *iter = g_sequence_get_begin_iter(darktable.control->shortcuts); !g_sequence_iter_is_end(iter); iter = g_sequence_iter_next(iter)) { dt_shortcut_t *s = g_sequence_get(iter); + if(!(s->views & current_view)) continue; + if(s->action == action && (!def || darktable.control->element == -1 || s->element == darktable.control->element || @@ -1175,17 +1246,19 @@ break; case DT_ACTION_TYPE_CATEGORY: if(owner == &darktable.control->actions_fallbacks) - vws = 0; + vws = DT_VIEW_FALLBACK; else if(owner == &darktable.control->actions_lua) vws = DT_VIEW_ALL; else if(owner == &darktable.control->actions_thumb) { vws = DT_VIEW_DARKROOM | DT_VIEW_MAP | DT_VIEW_TETHERING | DT_VIEW_PRINT; - if(!g_ascii_strcasecmp(action->id,"rating") || !g_ascii_strcasecmp(action->id,"color label")) + if(!g_ascii_strcasecmp(action->id,"rating") + || !g_ascii_strcasecmp(action->id,"color label")) vws |= DT_VIEW_LIGHTTABLE; // lighttable has copy/paste history shortcuts in separate lib } else - dt_print(DT_DEBUG_ALWAYS, "[find_views] views for category '%s' unknown\n", owner->id); + dt_print(DT_DEBUG_ALWAYS, + "[find_views] views for category '%s' unknown\n", owner->id); break; case DT_ACTION_TYPE_GLOBAL: vws = DT_VIEW_ALL; @@ -1206,7 +1279,7 @@ dt_view_type_flags_t view) { gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(_shortcuts_store), category, NULL, - _shortcut_is_speed(s) ? 3 : s && s->views ? s->views & view ? 0 : 1 : 2); + _shortcut_category(s, view)); } static gboolean _remove_shortcut_from_store(GtkTreeModel *model, @@ -1225,14 +1298,27 @@ return FALSE; } +static gboolean _insert_shortcut(dt_shortcut_t *shortcut, + const gboolean confirm, + const gboolean disable); + static void _remove_shortcut(GSequenceIter *shortcut) { + dt_shortcut_t *s = g_sequence_get(shortcut); + if(!s) return; + + gboolean disabled = s->views == DT_VIEW_NONE; + if(s->is_default) + { + _insert_shortcut(s, disabled, !disabled); + return; + } + if(_shortcuts_store) gtk_tree_model_foreach(GTK_TREE_MODEL(_shortcuts_store), _remove_shortcut_from_store, shortcut); - dt_shortcut_t *s = g_sequence_get(shortcut); - if(s && s->direction) // was this a split move? + if(s->direction) // was this a split move? { // unsplit the other half of the move s->direction = 0; @@ -1246,11 +1332,12 @@ g_sequence_remove(shortcut); } -static void _add_shortcut(dt_shortcut_t *shortcut, dt_view_type_flags_t view) +static void _add_shortcut(dt_shortcut_t *shortcut, + const dt_view_type_flags_t view) { - GSequenceIter *new_shortcut - = g_sequence_insert_sorted(darktable.control->shortcuts, shortcut, - _shortcut_compare_func, GINT_TO_POINTER(view)); + GSequenceIter *new_shortcut = + g_sequence_insert_sorted(darktable.control->shortcuts, shortcut, + _shortcut_compare_func, GINT_TO_POINTER(view)); GtkTreeModel *model = GTK_TREE_MODEL(_shortcuts_store); if(model) @@ -1276,6 +1363,23 @@ gtk_tree_store_insert_with_values(_shortcuts_store, NULL, &category, found, 0, new_shortcut, -1); } + + if(shortcut->views != DT_VIEW_NONE) + { + dt_shortcut_t find_disabled = *shortcut; + find_disabled.is_default = TRUE; + find_disabled.views = DT_VIEW_NONE; + GSequenceIter *found_disabled = + g_sequence_lookup(darktable.control->shortcuts, + &find_disabled, _shortcut_compare_func, NULL); + if(found_disabled) + { + shortcut->is_default = TRUE; + dt_shortcut_t *found_shortcut = g_sequence_get(found_disabled); + found_shortcut->is_default = FALSE; + _remove_shortcut(found_disabled); + } + } } static void _shortcut_row_inserted(GtkTreeModel *tree_model, @@ -1283,12 +1387,14 @@ GtkTreeIter *iter, gpointer view) { - // connect to original store, not filtered one, because otherwise view not sufficiently updated to expand + // connect to original store, not filtered one, because otherwise + // view not sufficiently updated to expand - GtkTreePath *filter_path - = gtk_tree_model_filter_convert_child_path_to_path(GTK_TREE_MODEL_FILTER(gtk_tree_view_get_model(view)), - path); - if(!filter_path) return; + GtkTreePath *filter_path = gtk_tree_model_filter_convert_child_path_to_path + (GTK_TREE_MODEL_FILTER(gtk_tree_view_get_model(view)), + path); + if(!filter_path) + return; gtk_tree_view_expand_to_path(view, filter_path); gtk_tree_view_scroll_to_cell(view, filter_path, NULL, TRUE, 0.5, 0); @@ -1296,32 +1402,31 @@ gtk_tree_path_free(filter_path); } -static gboolean _insert_shortcut(dt_shortcut_t *shortcut, gboolean confirm) +static gboolean _insert_shortcut(dt_shortcut_t *shortcut, + const gboolean confirm, + const gboolean disable) { if(!shortcut->speed && shortcut->effect != DT_ACTION_EFFECT_SET) return FALSE; dt_shortcut_t *s = calloc(sizeof(dt_shortcut_t), 1); *s = *shortcut; - s->views = _find_views(s->action); - dt_view_type_flags_t real_views = s->views; + const dt_view_type_flags_t real_views = s->views = _find_views(s->action); - const dt_view_t *vw = NULL; - if(darktable.view_manager) - vw = dt_view_manager_get_current_view(darktable.view_manager); + const dt_view_type_flags_t view = dt_view_get_current(); - dt_view_type_flags_t view = vw && vw->view ? vw->view(vw) : DT_VIEW_LIGHTTABLE; + guint replaced_direction = 0; // check (and remove if confirmed) clashes in current and other views gboolean remove_existing = !confirm; do { gchar *existing_labels = NULL; - int active_view = 1; do { - GSequenceIter *existing - = g_sequence_lookup(darktable.control->shortcuts, s, _shortcut_compare_func, GINT_TO_POINTER(view)); + GSequenceIter *existing = + g_sequence_lookup(darktable.control->shortcuts, s, + _shortcut_compare_func, GINT_TO_POINTER(view)); if(existing) // at least one found { // go to first one that has same shortcut @@ -1336,22 +1441,28 @@ dt_shortcut_t *e = g_sequence_get(existing); - if(e->action == s->action) + if(e->views == s->views + && _shortcut_is_move(e) + && e->effect != DT_ACTION_EFFECT_DEFAULT_MOVE + && s->direction + && !(confirm && remove_existing) + && (!confirm || + dt_gui_show_yes_no_dialog + (_("shortcut for move exists with single effect"), + _("%s\n\n(assign %s to %s)"), + _("create separate shortcuts for up and down move?"), + _action_description(e, 2), + s->direction == DT_SHORTCUT_UP ? _("down") : _("up")))) { - if(_shortcut_is_move(e) && e->effect != DT_ACTION_EFFECT_DEFAULT_MOVE) - { - if(!confirm || - dt_gui_show_yes_no_dialog(_("shortcut for move exists with single effect"), - _("create separate shortcuts for up and down move?"))) - { - e->direction = (DT_SHORTCUT_UP | DT_SHORTCUT_DOWN) ^ s->direction; - if(s->effect == DT_ACTION_EFFECT_DEFAULT_MOVE) - s->effect = DT_ACTION_EFFECT_DEFAULT_KEY; - _add_shortcut(s, view); - return TRUE; - } - } - else if(_shortcut_is_speed(e)) + e->direction = (DT_SHORTCUT_UP | DT_SHORTCUT_DOWN) ^ s->direction; + if(s->effect == DT_ACTION_EFFECT_DEFAULT_MOVE) + s->effect = DT_ACTION_EFFECT_DEFAULT_KEY; + _add_shortcut(s, view); + return TRUE; + } + else if(e->action == s->action) + { + if(_shortcut_is_speed(e)) { // adjust if ui action, overwrite on import if(confirm) @@ -1368,6 +1479,15 @@ dt_control_log(_("%s, speed reset"), _action_description(s, 2)); } } + else if(disable && e->is_default) + { + *s = *e; + e->is_default = FALSE; + _remove_shortcut(existing); + s->views = DT_VIEW_NONE; + _add_shortcut(s, view); + return TRUE; + } else if(e->element != s->element || e->effect != s->effect || e->speed != s->speed || @@ -1377,9 +1497,7 @@ dt_gui_show_yes_no_dialog(_("shortcut exists with different settings"), _("reset the settings of the shortcut?"))) { - _remove_shortcut(existing); - _add_shortcut(s, view); - return TRUE; + *e = *s; } } else @@ -1387,6 +1505,8 @@ // there should be no other clashes because same mapping already existed if(confirm && dt_gui_show_yes_no_dialog(_("shortcut already exists"), + e->is_default ? + _("disable this default shortcut?") : _("remove the shortcut?"))) { _remove_shortcut(existing); @@ -1396,10 +1516,14 @@ return FALSE; } - if(e->views & real_views) // overlap + if(e->views & real_views || real_views == DT_VIEW_NONE) // overlap { if(remove_existing) + { + replaced_direction |= e->direction; + e->direction = 0; _remove_shortcut(existing); + } else { gchar *old_labels = existing_labels; @@ -1412,11 +1536,14 @@ existing = saved_next; } while(!g_sequence_iter_is_end(existing) - && !_shortcut_compare_func(s, g_sequence_get(existing), GINT_TO_POINTER(view))); + && !_shortcut_compare_func(s, g_sequence_get(existing), + GINT_TO_POINTER(view))); } - s->views ^= view; // look in the opposite selection - } while(active_view--); + if(!real_views || real_views == view || real_views == DT_VIEW_FALLBACK) break; + s->views ^= view; // look in the opposite selection (and flip + // back on second go-around) + } while(s->views != real_views); if(existing_labels) { @@ -1438,7 +1565,16 @@ } while(remove_existing); - s->direction = shortcut->direction = 0; + if(disable) + { + g_free(s); + return FALSE; + } + + //keep direction if replacing one half of split move + if(replaced_direction != s->direction) + s->direction = shortcut->direction = 0; + _add_shortcut(s, view); return TRUE; @@ -1477,10 +1613,10 @@ PangoUnderline underline = PANGO_UNDERLINE_NONE; int weight = PANGO_WEIGHT_NORMAL; - if(GPOINTER_TO_UINT(data_ptr) < NUM_CATEGORIES) + if(_is_shortcut_category(data_ptr)) { if(field == SHORTCUT_VIEW_DESCRIPTION) - field_text = g_strdup(_(shortcut_category_label[GPOINTER_TO_INT(data_ptr)])); + field_text = g_strdup(_(_shortcut_category_label[GPOINTER_TO_INT(data_ptr)])); } else { @@ -1515,17 +1651,24 @@ elements = _action_find_elements(s->action); if(elements) { - const gchar *cef = _action_find_effect_combo(s->action, &elements[s->element], s->effect); - if(cef || s->effect > 0 || (s->effect == 0 && s->action->type != DT_ACTION_TYPE_FALLBACK)) + const gchar *cef = + _action_find_effect_combo(s->action, &elements[s->element], s->effect); + + if(cef + || s->effect > 0 + || (s->effect == 0 + && s->action->type != DT_ACTION_TYPE_FALLBACK)) field_text = g_strdup(Q_(cef ? cef : elements[s->element].effects[s->effect])); - if(s->effect == 0) weight = PANGO_WEIGHT_LIGHT; + + if(s->effect == 0) + weight = PANGO_WEIGHT_LIGHT; editable = TRUE; } break; case SHORTCUT_VIEW_SPEED: elements = _action_find_elements(s->action); if(s->speed != 1.0 - || (elements && elements[s->element].effects == dt_action_effect_value + || (ELEMENT_IS(value, s, elements) && (s->effect == DT_ACTION_EFFECT_DEFAULT_MOVE || s->effect == DT_ACTION_EFFECT_DEFAULT_KEY || s->effect == DT_ACTION_EFFECT_DEFAULT_UP @@ -1546,7 +1689,8 @@ { dt_iop_module_so_t *iop = (dt_iop_module_so_t *)owner; - if(owner != &darktable.control->actions_focus && !(iop->flags() & IOP_FLAGS_ONE_INSTANCE)) + if(owner != &darktable.control->actions_focus + && !(iop->flags() & IOP_FLAGS_ONE_INSTANCE)) { field_text = abs(s->instance) <= (NUM_INSTANCES - 1) /2 ? g_strdup(_(instance_label[abs(s->instance)*2 - (s->instance > 0)])) @@ -1561,24 +1705,29 @@ default: break; } + if(!s->views) editable = FALSE; //disabled default shortcuts } - g_object_set(cell, "text", field_text, "editable", editable, "underline", underline, "weight", weight, NULL); + g_object_set(cell, "text", field_text, "editable", + editable, "underline", underline, "weight", weight, NULL); g_free(field_text); } static void _add_prefs_column(GtkTreeView *tree, GtkCellRenderer *renderer, char *name, - int position) + const int position) { - GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes(name, renderer, NULL); + GtkTreeViewColumn *column = + gtk_tree_view_column_new_with_attributes(name, renderer, NULL); gtk_tree_view_column_set_cell_data_func(column, renderer, - _fill_shortcut_fields, GINT_TO_POINTER(position), NULL); + _fill_shortcut_fields, + GINT_TO_POINTER(position), NULL); gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_append_column(tree, column); } -static dt_shortcut_t *_find_edited_shortcut(GtkTreeModel *model, const gchar *path_string) +static dt_shortcut_t *_find_edited_shortcut(GtkTreeModel *model, + const gchar *path_string) { GtkTreePath *path = gtk_tree_path_new_from_string(path_string); GtkTreeIter iter; @@ -1607,7 +1756,9 @@ element && element->name ; element++) gtk_list_store_insert_with_values(store, NULL, -1, 0, - show_all++ ? _(element->name) : _("(unchanged)"), -1); + show_all++ + ? _(element->name) + : _("(unchanged)"), -1); gtk_combo_box_set_active(combo_box, s->element); } @@ -1628,7 +1779,7 @@ const dt_action_element_def_t *elements = _action_find_elements(s->action); if(elements[s->element].effects != elements[new_index].effects) { - s->effect = _shortcut_is_move(s) ? DT_ACTION_EFFECT_DEFAULT_MOVE : DT_ACTION_EFFECT_DEFAULT_KEY; + s->effect = _shortcut_default_effect(s); } s->element = new_index; @@ -1642,7 +1793,9 @@ DT_ACTION_EFFECT_COLUMN_WEIGHT, }; -static gboolean _effects_separator_func(GtkTreeModel *model, GtkTreeIter *iter, gpointer data) +static gboolean _effects_separator_func(GtkTreeModel *model, + GtkTreeIter *iter, + gpointer data) { gboolean is_separator; gtk_tree_model_get(model, iter, DT_ACTION_EFFECT_COLUMN_SEPARATOR, &is_separator, -1); @@ -1664,14 +1817,18 @@ int show_all = s->action->type != DT_ACTION_TYPE_FALLBACK; int bold_move = _shortcut_is_move(s) ? DT_ACTION_EFFECT_DEFAULT_KEY : DT_ACTION_EFFECT_DEFAULT_DOWN + 1; if(elements) - for(const gchar **effect = elements[s->element].effects; *effect ; effect++, bold_move++) - { - gtk_list_store_insert_with_values(store, NULL, -1, - DT_ACTION_EFFECT_COLUMN_NAME, show_all++ ? Q_(*effect) : _("(unchanged)"), - DT_ACTION_EFFECT_COLUMN_WEIGHT, bold_move > DT_ACTION_EFFECT_DEFAULT_KEY - && bold_move <= DT_ACTION_EFFECT_DEFAULT_DOWN - ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL, - -1); + for(const gchar **effect = elements[s->element].effects; + *effect; + effect++, bold_move++) + { + gtk_list_store_insert_with_values + (store, NULL, -1, + DT_ACTION_EFFECT_COLUMN_NAME, show_all++ ? Q_(*effect) : _("(unchanged)"), + DT_ACTION_EFFECT_COLUMN_WEIGHT, + bold_move > DT_ACTION_EFFECT_DEFAULT_KEY + && bold_move <= DT_ACTION_EFFECT_DEFAULT_DOWN + ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL, + -1); } GList *cell = gtk_cell_layout_get_cells(GTK_CELL_LAYOUT(combo_box)); @@ -1679,7 +1836,7 @@ "weight", DT_ACTION_EFFECT_COLUMN_WEIGHT); g_list_free(cell); - if(elements && elements[s->element].effects == dt_action_effect_selection) + if(ELEMENT_IS(selection, s, elements)) { gtk_combo_box_set_row_separator_func(combo_box, _effects_separator_func, NULL, NULL); @@ -1688,14 +1845,18 @@ if(values) { // insert empty/separator row - gtk_list_store_insert_with_values(store, NULL, -1, DT_ACTION_EFFECT_COLUMN_SEPARATOR, TRUE, -1); + gtk_list_store_insert_with_values(store, NULL, -1, + DT_ACTION_EFFECT_COLUMN_SEPARATOR, TRUE, -1); for(; values->name; values++) { - gtk_list_store_insert_with_values(store, NULL, -1, - DT_ACTION_EFFECT_COLUMN_NAME, Q_(values->description ? values->description : values->name), - DT_ACTION_EFFECT_COLUMN_WEIGHT, PANGO_WEIGHT_NORMAL, - -1); + gtk_list_store_insert_with_values + (store, NULL, -1, + DT_ACTION_EFFECT_COLUMN_NAME, + Q_(values->description ? values->description : values->name), + DT_ACTION_EFFECT_COLUMN_WEIGHT, + PANGO_WEIGHT_NORMAL, + -1); } } else @@ -1705,13 +1866,15 @@ if(strings) { // insert empty/separator row - gtk_list_store_insert_with_values(store, NULL, -1, DT_ACTION_EFFECT_COLUMN_SEPARATOR, TRUE, -1); + gtk_list_store_insert_with_values(store, NULL, -1, + DT_ACTION_EFFECT_COLUMN_SEPARATOR, TRUE, -1); while(*strings) { gtk_list_store_insert_with_values(store, NULL, -1, DT_ACTION_EFFECT_COLUMN_NAME, Q_(*(strings++)), - DT_ACTION_EFFECT_COLUMN_WEIGHT, PANGO_WEIGHT_NORMAL, + DT_ACTION_EFFECT_COLUMN_WEIGHT, + PANGO_WEIGHT_NORMAL, -1); } } @@ -1735,7 +1898,8 @@ gtk_tree_path_free(path); if(_shortcut_is_move(s) && - (new_index == DT_ACTION_EFFECT_DEFAULT_UP || new_index == DT_ACTION_EFFECT_DEFAULT_DOWN)) + (new_index == DT_ACTION_EFFECT_DEFAULT_UP + || new_index == DT_ACTION_EFFECT_DEFAULT_DOWN)) s->effect = DT_ACTION_EFFECT_DEFAULT_MOVE; else s->effect = new_index; @@ -1770,7 +1934,8 @@ static void _grab_in_tree_view(GtkTreeView *tree_view) { - g_set_weak_pointer(&_grab_widget, gtk_widget_get_parent(gtk_widget_get_parent(GTK_WIDGET(tree_view)))); // static + g_set_weak_pointer(&_grab_widget, + gtk_widget_get_parent(gtk_widget_get_parent(GTK_WIDGET(tree_view)))); // static gtk_widget_set_sensitive(_grab_widget, FALSE); gtk_widget_set_tooltip_text(_grab_widget, _("define a shortcut by pressing a key, optionally combined with modifier keys (ctrl/shift/alt)\n" @@ -1796,7 +1961,7 @@ GSequenceIter *shortcut_iter = NULL; gtk_tree_model_get(GTK_TREE_MODEL(user_data), &iter, 0, &shortcut_iter, -1); - if(GPOINTER_TO_UINT(shortcut_iter) < NUM_CATEGORIES) return; + if(_is_shortcut_category(shortcut_iter)) return; dt_shortcut_t *s = g_sequence_get(shortcut_iter); _sc.action = s->action; @@ -1806,7 +1971,9 @@ _grab_in_tree_view(tree_view); } -static gboolean _view_key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer user_data) +static gboolean _view_key_pressed(GtkWidget *widget, + GdkEventKey *event, + gpointer user_data) { GtkTreeView *view = GTK_TREE_VIEW(widget); GtkTreeSelection *selection = gtk_tree_view_get_selection(view); @@ -1831,7 +1998,7 @@ GSequenceIter *shortcut_iter = NULL; gtk_tree_model_get(model, &iter, 0, &shortcut_iter, -1); - if(GPOINTER_TO_UINT(shortcut_iter) >= NUM_CATEGORIES) + if(!_is_shortcut_category(shortcut_iter)) { dt_shortcut_t *s = g_sequence_get(shortcut_iter); @@ -1845,6 +2012,9 @@ if(event->keyval == GDK_KEY_Delete || event->keyval == GDK_KEY_KP_Delete) { if(dt_gui_show_yes_no_dialog(_("removing shortcut"), + s->is_default ? s->views ? + _("disable the selected default shortcut?") : + _("restore the selected default shortcut?") : _("remove the selected shortcut?"))) { _remove_shortcut(shortcut_iter); @@ -1863,10 +2033,9 @@ static void _add_shortcuts_to_tree() { - const dt_view_t *vw = dt_view_manager_get_current_view(darktable.view_manager); - dt_view_type_flags_t view = vw && vw->view ? vw->view(vw) : DT_VIEW_LIGHTTABLE; + const dt_view_type_flags_t view = dt_view_get_current(); - for(gint i = 0; i < NUM_CATEGORIES; i++) + for(dt_shortcut_category_t i = 0; i < DT_SHORTCUT_CATEGORY_LAST; i++) gtk_tree_store_insert_with_values(_shortcuts_store, NULL, NULL, -1, 0, GINT_TO_POINTER(i), -1); for(GSequenceIter *iter = g_sequence_get_begin_iter(darktable.control->shortcuts); @@ -1941,12 +2110,15 @@ int weight = PANGO_WEIGHT_NORMAL; - for(dt_action_t *ac = _highlighted_action; ac; ac = ac->owner) + if(_selected_shortcut) { - if(ac == action) + for(dt_action_t *ac = _selected_shortcut->action; ac; ac = ac->owner) { - weight = PANGO_WEIGHT_BOLD; - break; + if(ac == action) + { + weight = PANGO_WEIGHT_BOLD; + break; + } } } @@ -1983,7 +2155,7 @@ void *data_ptr = NULL; gtk_tree_model_get(model, &iter, 0, &data_ptr, -1); - if(GPOINTER_TO_UINT(data_ptr) < NUM_CATEGORIES) + if(_is_shortcut_category(data_ptr)) { GtkTreeView *view = gtk_tree_selection_get_tree_view(selection); if(gtk_tree_view_row_expanded(view, path)) @@ -1997,7 +2169,8 @@ return TRUE; } -static void _shortcut_selection_changed(GtkTreeSelection *selection, gpointer data) +static void _shortcut_selection_changed(GtkTreeSelection *selection, + gpointer data) { GtkTreeModel *model = NULL; GtkTreeIter iter; @@ -2006,11 +2179,10 @@ { void *data_ptr = NULL; gtk_tree_model_get(model, &iter, 0, &data_ptr, -1); - dt_shortcut_t *selected_shortcut = g_sequence_get(data_ptr); - _highlighted_action = selected_shortcut->action; + _selected_shortcut = g_sequence_get(data_ptr); } else - _highlighted_action = NULL; + _selected_shortcut = NULL; gtk_widget_queue_draw(GTK_WIDGET(data)); } @@ -2024,7 +2196,7 @@ dt_action_t *current_action = NULL; gtk_tree_model_get(model, iter, 0, ¤t_action, -1); - if(current_action == _highlighted_action) + if(_selected_shortcut && current_action == _selected_shortcut->action) { GtkTreePath *path = gtk_tree_model_get_path(model, iter); gtk_tree_view_expand_to_path(view, path); @@ -2092,7 +2264,8 @@ return TRUE; } -static gboolean _action_view_map(GtkTreeView *view, GdkEvent *event, gpointer found_iter) +static gboolean _action_view_show(GtkTreeView *view, + gpointer found_iter) { GtkTreePath *path = gtk_tree_model_get_path(gtk_tree_view_get_model(view), found_iter); gtk_tree_view_expand_to_path(view, path); @@ -2105,7 +2278,8 @@ return FALSE; } -static void _action_selection_changed(GtkTreeSelection *selection, gpointer data) +static void _action_selection_changed(GtkTreeSelection *selection, + gpointer data) { GtkTreeIter iter; GtkTreeModel *model = NULL; @@ -2123,7 +2297,8 @@ } GtkTreeView *shortcuts_view = GTK_TREE_VIEW(data); - gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(gtk_tree_view_get_model(shortcuts_view))); + gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER + (gtk_tree_view_get_model(shortcuts_view))); gtk_tree_view_expand_all(shortcuts_view); } @@ -2144,7 +2319,7 @@ { GSequenceIter *seq_iter = NULL; gtk_tree_model_get(model, iter, 0, &seq_iter, -1); - if(GPOINTER_TO_UINT(seq_iter) >= NUM_CATEGORIES) + if(!_is_shortcut_category(seq_iter)) { dt_shortcut_t *s = g_sequence_get(seq_iter); if(s->action) @@ -2180,7 +2355,8 @@ return TRUE; } -static gboolean _fallback_type_is_relevant(dt_action_t *ac, dt_action_type_t type) +static gboolean _fallback_type_is_relevant(dt_action_t *ac, + dt_action_type_t type) { if(!ac) return FALSE; @@ -2209,12 +2385,51 @@ return FALSE; } -static gboolean _visible_shortcuts(GtkTreeModel *model, GtkTreeIter *iter, gpointer data) +static gint _sort_speed_shortcuts(GtkTreeModel *model, + GtkTreeIter *a, + GtkTreeIter *b, + gpointer user_data) +{ + gpointer data_a, data_b; + + gtk_tree_model_get(model, a, 0, &data_a, -1); + gtk_tree_model_get(model, b, 0, &data_b, -1); + if(_is_shortcut_category(data_a) || _is_shortcut_category(data_b)) + return 0; + + dt_shortcut_t *shortcut_a = g_sequence_get(data_a); + dt_shortcut_t *shortcut_b = g_sequence_get(data_b); + if(!_shortcut_is_speed(shortcut_a) || !_shortcut_is_speed(shortcut_b)) + return 0; + + gchar *label_a = _action_full_label(shortcut_a->action); + gchar *label_b = _action_full_label(shortcut_b->action); + gint return_value = g_utf8_collate(label_a, label_b); + g_free(label_a); + g_free(label_b); + + return return_value; +} + +static gboolean _visible_shortcuts(GtkTreeModel *model, + GtkTreeIter *iter, + gpointer data) { void *data_ptr = NULL; gtk_tree_model_get(model, iter, 0, &data_ptr, -1); - if(GPOINTER_TO_UINT(data_ptr) < NUM_CATEGORIES) return TRUE; + if(_is_shortcut_category(data_ptr)) + { + GtkTreeIter child; + for(gboolean valid_child = gtk_tree_model_iter_children(model, &child, iter); + valid_child; + valid_child = gtk_tree_model_iter_next(model, &child)) + { + if(_visible_shortcuts(model, &child, data)) return TRUE; + } + + return FALSE; + } dt_shortcut_t *s = g_sequence_get(data_ptr); @@ -2239,7 +2454,9 @@ return FALSE; } -static void _resize_shortcuts_view(GtkWidget *view, GdkRectangle *allocation, gpointer data) +static void _resize_shortcuts_view(GtkWidget *view, + GdkRectangle *allocation, + gpointer data) { dt_conf_set_int("shortcuts/window_split", gtk_paned_get_position(GTK_PANED(data))); } @@ -2257,7 +2474,8 @@ (darktable.control->enable_fallbacks = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)))); GtkTreeView *shortcuts_view = GTK_TREE_VIEW(data); - gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(gtk_tree_view_get_model(shortcuts_view))); + gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER + (gtk_tree_view_get_model(shortcuts_view))); } static void _restore_clicked(GtkButton *button, gpointer user_data) @@ -2269,25 +2487,28 @@ _EDITS, }; - GtkWidget *dialog = gtk_dialog_new_with_buttons(_("restore shortcuts"), - GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(button))), - GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, - _("_defaults"), _DEFAULTS, - _("_startup"), _STARTUP, - _("_edits"), _EDITS, - _("_cancel"), GTK_RESPONSE_REJECT, - NULL); + GtkWidget *dialog = gtk_dialog_new_with_buttons + (_("restore shortcuts"), + GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(button))), + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + _("_defaults"), _DEFAULTS, + _("_startup"), _STARTUP, + _("_edits"), _EDITS, + _("_cancel"), GTK_RESPONSE_REJECT, + NULL); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_REJECT); - GtkContainer *content_area = GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG (dialog))); + GtkContainer *content_area = + GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG (dialog))); GtkWidget *label = gtk_label_new(_("restore shortcuts from one of these states:\n" " - default\n" " - as at startup\n" " - as when opening this dialog\n")); gtk_widget_set_halign(label, GTK_ALIGN_START); gtk_container_add(content_area, label); - GtkWidget *clear = gtk_check_button_new_with_label(_("clear all newer shortcuts\n" - "(instead of just restoring changed ones)")); + GtkWidget *clear = gtk_check_button_new_with_label + (_("clear all newer shortcuts\n" + "(instead of just restoring changed ones)")); gtk_container_add(content_area, clear); gtk_widget_show_all(GTK_WIDGET(content_area)); @@ -2313,7 +2534,8 @@ dt_shortcuts_save(NULL, FALSE); } -static void _import_export_dev_changed(GtkComboBox *widget, gpointer user_data) +static void _import_export_dev_changed(GtkComboBox *widget, + gpointer user_data) { gint dev = gtk_combo_box_get_active(GTK_COMBO_BOX(widget)); g_object_set_data(G_OBJECT(user_data), "device", GINT_TO_POINTER(dev)); @@ -2322,7 +2544,8 @@ gtk_widget_set_visible(gtk_widget_get_parent(GTK_WIDGET(user_data)), dev > 1); } -static void _export_id_changed(GtkComboBox *widget, gpointer user_data) +static void _export_id_changed(GtkComboBox *widget, + gpointer user_data) { gint dev = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "device")); gint id = dev <= 1 ? 0 : @@ -2350,14 +2573,16 @@ { GtkWindow *win = GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(button))); - GtkWidget *dialog = gtk_dialog_new_with_buttons(_("export shortcuts"), - win, GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, - _("_cancel"), GTK_RESPONSE_REJECT, - _("_ok"), GTK_RESPONSE_OK, - NULL); + GtkWidget *dialog = gtk_dialog_new_with_buttons + (_("export shortcuts"), + win, GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + _("_cancel"), GTK_RESPONSE_REJECT, + _("_ok"), GTK_RESPONSE_OK, + NULL); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_REJECT); - GtkContainer *content_area = GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG (dialog))); + GtkContainer *content_area = + GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG (dialog))); GtkWidget *label = gtk_label_new(_("export all shortcuts to a file\n" "or just for one selected device\n")); gtk_widget_set_halign(label, GTK_ALIGN_START); @@ -2430,14 +2655,16 @@ { GtkWindow *win = GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(button))); - GtkWidget *dialog = gtk_dialog_new_with_buttons(_("import shortcuts"), - win, GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, - _("_cancel"), GTK_RESPONSE_REJECT, - _("_ok"), GTK_RESPONSE_OK, - NULL); + GtkWidget *dialog = gtk_dialog_new_with_buttons + (_("import shortcuts"), + win, GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + _("_cancel"), GTK_RESPONSE_REJECT, + _("_ok"), GTK_RESPONSE_OK, + NULL); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_REJECT); - GtkContainer *content_area = GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG (dialog))); + GtkContainer *content_area = + GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG (dialog))); GtkWidget *label = gtk_label_new(_("import all shortcuts from a file\n" "or just for one selected device\n")); gtk_widget_set_halign(label, GTK_ALIGN_START); @@ -2470,7 +2697,8 @@ GtkWidget *clear = gtk_check_button_new_with_label(_("clear device first")); gtk_container_add(content_area, clear); - g_signal_connect(combo_dev, "changed", G_CALLBACK(_import_export_dev_changed), combo_from_id); + g_signal_connect(combo_dev, "changed", G_CALLBACK(_import_export_dev_changed), + combo_from_id); g_signal_connect(combo_from_id, "changed", G_CALLBACK(_import_id_changed), combo_to_id); gtk_widget_show_all(GTK_WIDGET(content_area)); @@ -2538,6 +2766,16 @@ dt_shortcuts_save(NULL, FALSE); } +static void _notice_clicked(GtkWidget *button, + gpointer user_data) +{ + static int times = 0; + if(++times < 3) return; + + gtk_widget_hide(button); + dt_conf_set_bool("accel/hide_notice", TRUE); +} + GtkWidget *dt_shortcuts_prefs(GtkWidget *widget) { // Save the shortcuts before editing @@ -2555,48 +2793,67 @@ _add_shortcuts_to_tree(); - GtkTreeModel *filtered_shortcuts = gtk_tree_model_filter_new(GTK_TREE_MODEL(_shortcuts_store), NULL); + gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(_shortcuts_store), + _sort_speed_shortcuts, NULL, NULL); + gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(_shortcuts_store), + GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, + GTK_SORT_ASCENDING); + GtkTreeModel *filtered_shortcuts = + gtk_tree_model_filter_new(GTK_TREE_MODEL(_shortcuts_store), NULL); g_object_unref(G_OBJECT(_shortcuts_store)); - gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(filtered_shortcuts), _visible_shortcuts, NULL, NULL); + gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(filtered_shortcuts), + _visible_shortcuts, NULL, NULL); - GtkTreeView *shortcuts_view = GTK_TREE_VIEW(gtk_tree_view_new_with_model(filtered_shortcuts)); + GtkTreeView *shortcuts_view = + GTK_TREE_VIEW(gtk_tree_view_new_with_model(filtered_shortcuts)); g_object_unref(G_OBJECT(filtered_shortcuts)); gtk_tree_view_set_search_column(shortcuts_view, 0); // fake column for _search_func gtk_tree_view_set_search_equal_func(shortcuts_view, _search_func, shortcuts_view, NULL); GtkWidget *search_shortcuts = gtk_search_entry_new(); - gtk_entry_set_placeholder_text(GTK_ENTRY(search_shortcuts), _("search shortcuts list")); - gtk_widget_set_tooltip_text(GTK_WIDGET(search_shortcuts), _("incrementally search the list of shortcuts\npress up or down keys to cycle through matches")); - g_signal_connect(G_OBJECT(search_shortcuts), "activate", G_CALLBACK(dt_gui_search_stop), shortcuts_view); - g_signal_connect(G_OBJECT(search_shortcuts), "stop-search", G_CALLBACK(dt_gui_search_stop), shortcuts_view); + gtk_entry_set_placeholder_text(GTK_ENTRY(search_shortcuts), + _("search shortcuts list")); + gtk_widget_set_tooltip_text(GTK_WIDGET(search_shortcuts), + _("incrementally search the list of shortcuts\npress up or down keys to cycle through matches")); + g_signal_connect(G_OBJECT(search_shortcuts), "activate", + G_CALLBACK(dt_gui_search_stop), shortcuts_view); + g_signal_connect(G_OBJECT(search_shortcuts), "stop-search", + G_CALLBACK(dt_gui_search_stop), shortcuts_view); gtk_tree_view_set_search_entry(shortcuts_view, GTK_ENTRY(search_shortcuts)); gtk_tree_selection_set_select_function(gtk_tree_view_get_selection(shortcuts_view), _shortcut_selection_function, NULL, NULL); g_object_set(shortcuts_view, "has-tooltip", TRUE, NULL); gtk_widget_set_name(GTK_WIDGET(shortcuts_view), "shortcuts_view"); - g_signal_connect(G_OBJECT(shortcuts_view), "row-activated", G_CALLBACK(_shortcut_row_activated), filtered_shortcuts); - g_signal_connect(G_OBJECT(shortcuts_view), "key-press-event", G_CALLBACK(_view_key_pressed), search_shortcuts); - g_signal_connect(G_OBJECT(_shortcuts_store), "row-inserted", G_CALLBACK(_shortcut_row_inserted), shortcuts_view); + g_signal_connect(G_OBJECT(shortcuts_view), "row-activated", + G_CALLBACK(_shortcut_row_activated), filtered_shortcuts); + g_signal_connect(G_OBJECT(shortcuts_view), "key-press-event", + G_CALLBACK(_view_key_pressed), search_shortcuts); + g_signal_connect(G_OBJECT(_shortcuts_store), "row-inserted", + G_CALLBACK(_shortcut_row_inserted), shortcuts_view); // Setting up the cell renderers - _add_prefs_column(shortcuts_view, gtk_cell_renderer_text_new(), _("shortcut"), SHORTCUT_VIEW_DESCRIPTION); + _add_prefs_column(shortcuts_view, gtk_cell_renderer_text_new(), + _("shortcut"), SHORTCUT_VIEW_DESCRIPTION); - _add_prefs_column(shortcuts_view, gtk_cell_renderer_text_new(), _("action"), SHORTCUT_VIEW_ACTION); + _add_prefs_column(shortcuts_view, gtk_cell_renderer_text_new(), + _("action"), SHORTCUT_VIEW_ACTION); GtkCellRenderer *renderer = NULL; renderer = gtk_cell_renderer_combo_new(); GtkListStore *elements = gtk_list_store_new(1, G_TYPE_STRING); g_object_set(renderer, "model", elements, "text-column", 0, "has-entry", FALSE, NULL); - g_signal_connect(renderer, "editing-started" , G_CALLBACK(_element_editing_started), filtered_shortcuts); + g_signal_connect(renderer, "editing-started" , + G_CALLBACK(_element_editing_started), filtered_shortcuts); g_signal_connect(renderer, "changed", G_CALLBACK(_element_changed), filtered_shortcuts); _add_prefs_column(shortcuts_view, renderer, _("element"), SHORTCUT_VIEW_ELEMENT); renderer = gtk_cell_renderer_combo_new(); GtkListStore *effects = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_INT); g_object_set(renderer, "model", effects, "text-column", 0, "has-entry", FALSE, NULL); - g_signal_connect(renderer, "editing-started" , G_CALLBACK(_effect_editing_started), filtered_shortcuts); + g_signal_connect(renderer, "editing-started" , + G_CALLBACK(_effect_editing_started), filtered_shortcuts); g_signal_connect(renderer, "changed", G_CALLBACK(_effect_changed), filtered_shortcuts); _add_prefs_column(shortcuts_view, renderer, _("effect"), SHORTCUT_VIEW_EFFECT); @@ -2619,7 +2876,8 @@ // Adding the shortcuts treeview to its containers GtkWidget *scroll = gtk_scrolled_window_new(NULL, NULL); gtk_widget_set_size_request(scroll, -1, 100); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), + GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add(GTK_CONTAINER(scroll), GTK_WIDGET(shortcuts_view)); gtk_paned_pack2(GTK_PANED(container), scroll, TRUE, FALSE); @@ -2650,22 +2908,30 @@ } _add_actions_to_tree(NULL, darktable.control->actions, _selected_action, &found_iter); - GtkTreeView *actions_view = GTK_TREE_VIEW(gtk_tree_view_new_with_model(GTK_TREE_MODEL(_actions_store))); + GtkTreeView *actions_view = + GTK_TREE_VIEW(gtk_tree_view_new_with_model(GTK_TREE_MODEL(_actions_store))); g_object_unref(_actions_store); gtk_tree_view_set_search_column(actions_view, 1); // fake column for _search_func gtk_tree_view_set_search_equal_func(actions_view, _search_func, actions_view, NULL); GtkWidget *search_actions = gtk_search_entry_new(); - gtk_entry_set_placeholder_text(GTK_ENTRY(search_actions), _("search actions list")); - gtk_widget_set_tooltip_text(GTK_WIDGET(search_actions), _("incrementally search the list of actions\npress up or down keys to cycle through matches")); - g_signal_connect(G_OBJECT(search_actions), "activate", G_CALLBACK(dt_gui_search_stop), actions_view); - g_signal_connect(G_OBJECT(search_actions), "stop-search", G_CALLBACK(dt_gui_search_stop), actions_view); + gtk_entry_set_placeholder_text(GTK_ENTRY(search_actions), + _("search actions list")); + gtk_widget_set_tooltip_text(GTK_WIDGET(search_actions), + _("incrementally search the list of actions\npress up or down keys to cycle through matches")); + g_signal_connect(G_OBJECT(search_actions), "activate", + G_CALLBACK(dt_gui_search_stop), actions_view); + g_signal_connect(G_OBJECT(search_actions), "stop-search", + G_CALLBACK(dt_gui_search_stop), actions_view); gtk_tree_view_set_search_entry(actions_view, GTK_ENTRY(search_actions)); g_object_set(actions_view, "has-tooltip", TRUE, NULL); gtk_widget_set_name(GTK_WIDGET(actions_view), "actions_view"); - g_signal_connect(G_OBJECT(actions_view), "row-activated", G_CALLBACK(_action_row_activated), _actions_store); - g_signal_connect(G_OBJECT(actions_view), "button-press-event", G_CALLBACK(_action_view_click), _actions_store); - g_signal_connect(G_OBJECT(actions_view), "key-press-event", G_CALLBACK(_view_key_pressed), search_actions); + g_signal_connect(G_OBJECT(actions_view), "row-activated", + G_CALLBACK(_action_row_activated), _actions_store); + g_signal_connect(G_OBJECT(actions_view), "button-press-event", + G_CALLBACK(_action_view_click), _actions_store); + g_signal_connect(G_OBJECT(actions_view), "key-press-event", + G_CALLBACK(_view_key_pressed), search_actions); g_signal_connect(G_OBJECT(gtk_tree_view_get_selection(actions_view)), "changed", G_CALLBACK(_action_selection_changed), shortcuts_view); @@ -2673,22 +2939,26 @@ G_CALLBACK(_shortcut_selection_changed), actions_view); renderer = gtk_cell_renderer_text_new(); - GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes(_("action"), renderer, NULL); + GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes(_("action"), + renderer, NULL); gtk_tree_view_column_set_expand(column, TRUE); - gtk_tree_view_column_set_cell_data_func(column, renderer, _fill_action_fields, GINT_TO_POINTER(TRUE), NULL); + gtk_tree_view_column_set_cell_data_func(column, renderer, + _fill_action_fields, GINT_TO_POINTER(TRUE), NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(actions_view), column); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes(_("type"), renderer, NULL); gtk_tree_view_column_set_alignment(column, 1.0); gtk_cell_renderer_set_alignment(renderer, 1.0, 0.0); - gtk_tree_view_column_set_cell_data_func(column, renderer, _fill_action_fields, NULL, NULL); + gtk_tree_view_column_set_cell_data_func(column, renderer, + _fill_action_fields, NULL, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(actions_view), column); // Adding the action treeview to its containers scroll = gtk_scrolled_window_new(NULL, NULL); gtk_widget_set_size_request(scroll, -1, 100); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), + GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add(GTK_CONTAINER(scroll), GTK_WIDGET(actions_view)); gtk_paned_pack1(GTK_PANED(container), scroll, TRUE, FALSE); @@ -2696,8 +2966,8 @@ { GtkTreeIter *send_iter = calloc(1, sizeof(GtkTreeIter)); *send_iter = found_iter; - gtk_widget_add_events(GTK_WIDGET(actions_view), GDK_STRUCTURE_MASK); - g_signal_connect_data(G_OBJECT(actions_view), "map-event", G_CALLBACK(_action_view_map), + g_signal_connect_data(G_OBJECT(actions_view), "show", + G_CALLBACK(_action_view_show), send_iter, (GClosureNotify)g_free, G_CONNECT_AFTER); } @@ -2707,7 +2977,8 @@ const int split_position = dt_conf_get_int("shortcuts/window_split"); if(split_position) gtk_paned_set_position(GTK_PANED(container), split_position); - g_signal_connect(G_OBJECT(shortcuts_view), "size-allocate", G_CALLBACK(_resize_shortcuts_view), container); + g_signal_connect(G_OBJECT(shortcuts_view), "size-allocate", + G_CALLBACK(_resize_shortcuts_view), container); GtkWidget *button_bar = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0), *button = NULL; gtk_widget_set_name(button_bar, "shortcut-controls"); @@ -2717,7 +2988,8 @@ button = gtk_check_button_new_with_label(_("enable fallbacks")); gtk_widget_set_tooltip_text(button, _("enables default meanings for additional buttons, modifiers or moves\n" "when used in combination with a base shortcut")); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), darktable.control->enable_fallbacks); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), + darktable.control->enable_fallbacks); g_signal_connect(button, "toggled", G_CALLBACK(_fallbacks_toggled), shortcuts_view); gtk_box_pack_start(GTK_BOX(button_bar), button, TRUE, FALSE, 0); @@ -2743,6 +3015,25 @@ gtk_box_pack_end(GTK_BOX(button_bar), button, FALSE, FALSE, 0); GtkWidget *top_level = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); + if(!dt_conf_get_bool("accel/hide_notice")) + { + button = gtk_button_new_with_label( + _("the recommended way to assign shortcuts to visual elements is the <b>visual shortcut mapping</b> mode.\n" + "this is switched on by toggling the <i>\"keyboard\"</i> button next to preferences in the top panel. " + "in this mode, clicking on a widget or area will open this dialog with the appropriate selection for advanced configuration.\n\n" + "multiple shortcuts can be assigned to the same action. " + "this is especially useful if it has multiple <i>elements</i>, like the module buttons or the colorpickers attached to sliders. " + "however, with <i>fallbacks</i> enabled one can use the same simple shortcuts and " + "change their <i>element</i> or <i>effect</i> by adding mouse clicks.\n\n" + "<i>click <b> three times </b> to dismiss this notice permanently</i>")); + gtk_widget_set_hexpand(button, TRUE); + GtkLabel *label = GTK_LABEL(gtk_bin_get_child(GTK_BIN(button))); + gtk_label_set_use_markup(label, TRUE); + gtk_label_set_line_wrap(label, TRUE); + gtk_label_set_xalign(label, 0); + g_signal_connect(button, "clicked", G_CALLBACK(_notice_clicked), NULL); + gtk_box_pack_start(GTK_BOX(top_level), button, FALSE, FALSE, 0); + } gtk_box_pack_start(GTK_BOX(top_level), container, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(top_level), button_bar, FALSE, FALSE, 0); @@ -2790,6 +3081,9 @@ fprintf(f, "="); + if(!s->views) + fprintf(f, "disabled;"); + gchar *action_label = _action_full_id(s->action); fprintf(f, "%s", action_label); g_free(action_label); @@ -2797,10 +3091,10 @@ const dt_action_element_def_t *elements = _action_find_elements(s->action); if(s->element) fprintf(f, ";%s", NQ_(elements[s->element].name)); - if(s->effect > (_shortcut_is_move(s) ? DT_ACTION_EFFECT_DEFAULT_MOVE - : DT_ACTION_EFFECT_DEFAULT_KEY)) + if(elements && s->effect > _shortcut_default_effect(s)) { - const gchar *cef = _action_find_effect_combo(s->action, &elements[s->element], s->effect); + const gchar *cef = + _action_find_effect_combo(s->action, &elements[s->element], s->effect); if(cef) fprintf(f, ";item:%s", NQ_(cef)); else @@ -2819,7 +3113,8 @@ } } -void dt_shortcuts_save(const gchar *ext, const gboolean backup) +void dt_shortcuts_save(const gchar *ext, + const gboolean backup) { char shortcuts_file[PATH_MAX] = { 0 }; dt_loc_get_user_config_dir(shortcuts_file, sizeof(shortcuts_file)); @@ -2835,7 +3130,10 @@ _shortcuts_save(shortcuts_file, DT_ALL_DEVICES); } -static gboolean _find_combo_effect(const gchar **effects, const gchar *token, dt_action_t *ac, gint *ef) +static gboolean _find_combo_effect(const gchar **effects, + const gchar *token, + dt_action_t *ac, + gint *ef) { if(effects == dt_action_effect_selection && g_strstr_len(token, 5, "item:")) { @@ -2846,7 +3144,8 @@ = g_hash_table_lookup(darktable.bauhaus->combo_introspection, ac); if(values) { - while((entry = (values[++effect].description ? values[effect].description : values[effect].name))) + while((entry = (values[++effect].description + ? values[effect].description : values[effect].name))) if(!g_ascii_strcasecmp(token + 5, NQ_(entry))) break; } else @@ -2869,7 +3168,10 @@ return FALSE; } -static void _shortcuts_load(const gchar *shortcuts_file, dt_input_device_t file_dev, const dt_input_device_t load_dev, const gboolean clear) +static void _shortcuts_load(const gchar *shortcuts_file, + dt_input_device_t file_dev, + const dt_input_device_t load_dev, + const gboolean clear) { // start with an empty shortcuts collection if(clear && darktable.control->shortcuts) @@ -3050,6 +3352,9 @@ } } + gboolean disable = !g_ascii_strcasecmp(token, "disabled"); + if(disable) token = strtok(NULL, ";"); + // find action gchar **path = g_strsplit(token, "/", 0); s.action = dt_action_locate(NULL, path, FALSE); @@ -3064,9 +3369,7 @@ const dt_action_element_def_t *elements = _action_find_elements(s.action); const gchar **effects = NULL; - const gint default_effect = s.effect = _shortcut_is_move(&s) - ? DT_ACTION_EFFECT_DEFAULT_MOVE - : DT_ACTION_EFFECT_DEFAULT_KEY; + const gint default_effect = s.effect = _shortcut_default_effect(&s); while((token = strtok(NULL, ";"))) { @@ -3074,17 +3377,21 @@ { int element = -1; while(elements[++element].name) - if(!g_ascii_strcasecmp(token, NQ_(elements[element].name))) break; + if(!g_ascii_strcasecmp(token, NQ_(elements[element].name))) + break; if(elements[element].name) { s.element = element; - s.effect = default_effect; // reset if an effect for a different element was found first + s.effect = default_effect; // reset if an effect for a + // different element was + // found first continue; } effects = elements[s.element].effects; - if(_find_combo_effect(effects, token, s.action, &s.effect)) continue; + if(_find_combo_effect(effects, token, s.action, &s.effect)) + continue; int effect = -1; while(effects[++effect]) @@ -3096,12 +3403,17 @@ } } - if(!g_ascii_strcasecmp(token, "first")) s.instance = 1; else - if(!g_ascii_strcasecmp(token, "last" )) s.instance = -1; else - if(*token == '+' || *token == '-') sscanf(token, "%d", &s.instance); else - if(*token == '*') sscanf(token, "*%g", &s.speed); else - dt_print(DT_DEBUG_ALWAYS, - "[dt_shortcuts_load] token '%s' not recognised\n", token); + if(!g_ascii_strcasecmp(token, "first")) + s.instance = 1; + else if(!g_ascii_strcasecmp(token, "last" )) + s.instance = -1; + else if(*token == '+' || *token == '-') + sscanf(token, "%d", &s.instance); + else if(*token == '*') + sscanf(token, "*%g", &s.speed); + else + dt_print(DT_DEBUG_ALWAYS, + "[dt_shortcuts_load] token '%s' not recognised\n", token); } if(file_dev == DT_ALL_DEVICES || @@ -3114,7 +3426,7 @@ if(s.move_device == file_dev) s.move_device = load_dev; } - _insert_shortcut(&s, FALSE); + _insert_shortcut(&s, FALSE, disable); } } } @@ -3122,7 +3434,8 @@ } } -void dt_shortcuts_load(const gchar *ext, const gboolean clear) +void dt_shortcuts_load(const gchar *ext, + const gboolean clear) { char shortcuts_file[PATH_MAX] = { 0 }; dt_loc_get_user_config_dir(shortcuts_file, sizeof(shortcuts_file)); @@ -3158,7 +3471,8 @@ void dt_shortcuts_select_view(dt_view_type_flags_t view) { - g_sequence_sort(darktable.control->shortcuts, _shortcut_compare_func, GINT_TO_POINTER(view)); + g_sequence_sort(darktable.control->shortcuts, + _shortcut_compare_func, GINT_TO_POINTER(view)); } static GSList *_pressed_keys = NULL, *_hold_keys = NULL; // lists of currently pressed and held keys @@ -3171,8 +3485,9 @@ static guint _focus_loss_key = 0; static guint _focus_loss_press = 0; -static dt_action_t _value_action = { .type = DT_ACTION_TYPE_FALLBACK, - .target = GINT_TO_POINTER(DT_ACTION_TYPE_VALUE_FALLBACK) }; +static dt_action_t _value_action = + { .type = DT_ACTION_TYPE_FALLBACK, + .target = GINT_TO_POINTER(DT_ACTION_TYPE_VALUE_FALLBACK) }; static void _lookup_mapping_widget() { @@ -3195,86 +3510,111 @@ GtkWidget *p = gtk_widget_get_parent(w); return (!GTK_IS_WIDGET(w) || !gtk_widget_get_visible(w) || (!gtk_widget_get_visible(p) && strcmp(gtk_widget_get_name(p), "collapsible") - && !gtk_style_context_has_class(gtk_widget_get_style_context(p), "dt_plugin_ui_main"))); + && !gtk_style_context_has_class(gtk_widget_get_style_context(p), + "dt_plugin_ui_main"))); } -gboolean _shortcut_closest_match(GSequenceIter **current, - dt_shortcut_t *s, - gboolean *fully_matched, - const dt_action_def_t *def, - char **fb_log) -{ - *current = g_sequence_iter_prev(*current); - dt_shortcut_t *c = g_sequence_get(*current); -//dt_print(DT_DEBUG_INPUT, " [_shortcut_closest_match] shortcut considered: %s\n", _shortcut_description(c)); - - gboolean applicable; - while((applicable = - (c->key_device == s->key_device && c->key == s->key && c->press >= (s->press & ~DT_SHORTCUT_LONG) && - ((!c->move_device && !c->move) || - (c->move_device == s->move_device && c->move == s->move)) && - (!s->action || s->action->type != DT_ACTION_TYPE_FALLBACK || - s->action->target == c->action->target))) && - !g_sequence_iter_is_begin(*current) && - (((c->button || c->click) && (c->button != s->button || c->click != s->click)) || - (c->mods && c->mods != s->mods ) || - (c->direction & ~s->direction ) || - (c->element && s->element ) || - (c->effect > 0 && s->effect > 0 ) || - (c->instance && s->instance ) || - (c->element && s->effect > 0 && def && - def->elements[c->element].effects != def->elements[s->element].effects ) )) +#define ADD_EXPLANATION(cause, effect, extra, ...) if(*fb_log) \ + *fb_log = dt_util_dstrcat(*fb_log, "\n%s \u2192 %s" extra, cause, effect, ##__VA_ARGS__) + +static gboolean _shortcut_closest_match(GSequenceIter **current, + dt_shortcut_t *s, + gboolean *fully_matched, + const dt_action_element_def_t **elements, + char **fb_log) +{ + dt_shortcut_t *c = NULL; + + do { *current = g_sequence_iter_prev(*current); c = g_sequence_get(*current); -//dt_print(DT_DEBUG_INPUT, " [_shortcut_closest_match] shortcut considered: %s\n", _shortcut_description(c)); + + if(c->key_device != s->key_device || + c->key != s->key || + c->press < (s->press & ~DT_SHORTCUT_LONG) || + ((c->move_device || c->move) && + (c->move_device != s->move_device || c->move != s->move)) || + (s->action && + s->action->type == DT_ACTION_TYPE_FALLBACK && + s->action->target != c->action->target)) + { + *fully_matched = FALSE; + return FALSE; + } } + while(!g_sequence_iter_is_begin(*current) && + (((c->button || c->click) && + (c->button != s->button || c->click != s->click)) || + (c->mods && c->mods != s->mods) || + (c->direction & ~s->direction ) || + (c->element && s->element ) || + (c->effect > 0 && s->effect > 0 ) || + (c->instance && s->instance ) || + (c->element && s->effect > 0 && *elements && + (*elements)[c->element].effects != (*elements)[s->element].effects))); + + s->key_device = 0; + s->key = 0; + s->mods &= ~c->mods; + s->press -= c->press; + s->button &= ~c->button; + s->click -= c->click; + s->direction &= ~c->direction; + s->move_device -= c->move_device; + s->move -= c->move; + + if(ELEMENT_IS(value, s, *elements) && s->effect == DT_ACTION_EFFECT_SET) + { + s->effect = DT_ACTION_EFFECT_DEFAULT_KEY; + s->speed = 1.0f; + } + if(!s->action || c->effect != DT_ACTION_EFFECT_DEFAULT_KEY) + s->effect = c->effect; + if(c->element) s->element = c->element; + if(c->instance) s->instance = c->instance; - if(applicable) - { - s->key_device = 0; - s->key = 0; - s->mods &= ~c->mods; - s->press -= c->press; - s->button &= ~c->button; - s->click -= c->click; - s->direction &= ~c->direction; - s->move_device -= c->move_device; - s->move -= c->move; - - if(c->element) s->element = c->element; - if(c->effect > DT_ACTION_EFFECT_DEFAULT_KEY) s->effect = c->effect; - if(c->instance) s->instance = c->instance; + s->action = c->action; + if(!*elements) *elements = _action_find_elements(s->action); + if(ELEMENT_IS(value, s, *elements) && c->effect == DT_ACTION_EFFECT_SET) + s->speed = c->speed; + else s->speed *= c->speed; - s->action = c->action; - *fully_matched = !(s->mods || s->press || s->button || s->click || s->move_device || s->move); + *fully_matched = !(s->mods || s->press || s->button || s->click || s->move_device || s->move); - if(*fb_log) - *fb_log = dt_util_dstrcat(*fb_log, "\n%s \u2192 %s", _shortcut_description(c), _action_description(c, 2)); + ADD_EXPLANATION(_shortcut_description(c), _action_description(c, 2),); - return TRUE; - } - else + if(s->direction == DT_SHORTCUT_DOWN + && (s->effect == DT_ACTION_EFFECT_LAST || s->effect == DT_ACTION_EFFECT_FIRST) + && (ELEMENT_IS(value, s, *elements) || ELEMENT_IS(selection, s, *elements))) { - *fully_matched = FALSE; - return FALSE; + s->effect = s->effect == DT_ACTION_EFFECT_LAST ? DT_ACTION_EFFECT_FIRST : DT_ACTION_EFFECT_LAST; + ADD_EXPLANATION(_("down move"), _("flip top/bottom first/last"),); } + + return TRUE; } -static gboolean _shortcut_match(dt_shortcut_t *f, gchar **fb_log) +static gboolean _shortcut_match(dt_shortcut_t *f, + gchar **fb_log) { - if(!darktable.view_manager->current_view) return FALSE; + if(!darktable.view_manager->current_view) + return FALSE; - f->views = darktable.view_manager->current_view->view(darktable.view_manager->current_view); + f->views = + darktable.view_manager->current_view->view(darktable.view_manager->current_view); gpointer v = GINT_TO_POINTER(f->views); - GSequenceIter *existing = g_sequence_search(darktable.control->shortcuts, f, _shortcut_compare_func, v); + GSequenceIter *existing = + g_sequence_search(darktable.control->shortcuts, f, _shortcut_compare_func, v); gboolean matched = FALSE; - if(!_shortcut_closest_match(&existing, f, &matched, NULL, fb_log)) + const dt_action_element_def_t *elements = NULL; + + if(!_shortcut_closest_match(&existing, f, &matched, &elements, fb_log)) { // see if there is a fallback from midi knob press to knob turn if(!f->key_device || f->move_device || f->move) @@ -3298,16 +3638,14 @@ f->key_device = 0; f->key = 0; - existing = g_sequence_search(darktable.control->shortcuts, f, _shortcut_compare_func, v); - if(!_shortcut_closest_match(&existing, f, &matched, NULL, fb_log) && !f->action) + existing = + g_sequence_search(darktable.control->shortcuts, f, _shortcut_compare_func, v); + if(!_shortcut_closest_match(&existing, f, &matched, &elements, fb_log) + && !f->action) return FALSE; else { - const dt_action_def_t *def = _action_find_definition(f->action); - - if(def && def->elements - && (def->elements[f->element].effects == dt_action_effect_value - || def->elements[f->element].effects == dt_action_effect_selection)) + if(ELEMENT_IS(value, f, elements) || ELEMENT_IS(selection, f, elements)) f->effect = DT_ACTION_EFFECT_RESET; } } @@ -3317,30 +3655,31 @@ if(!matched && f->action && darktable.control->enable_fallbacks) { // try to add fallbacks - f->views = 0; + f->views = DT_VIEW_FALLBACK; dt_action_t *matched_action = f->action; dt_action_t fallback_action = { .type = DT_ACTION_TYPE_FALLBACK, .target = GINT_TO_POINTER(matched_action->type) }; f->action = &fallback_action; - const dt_action_def_t *def = _action_find_definition(matched_action); - existing = g_sequence_search(darktable.control->shortcuts, f, _shortcut_compare_func, v); - while(_shortcut_closest_match(&existing, f, &matched, def, fb_log) && !matched) {}; + while(_shortcut_closest_match(&existing, f, &matched, &elements, fb_log) + && !matched) {}; - if(!matched && def && def->elements[f->element].effects == dt_action_effect_value) + if(!matched && ELEMENT_IS(value, f, elements)) { f->action = &_value_action; existing = g_sequence_search(darktable.control->shortcuts, f, _shortcut_compare_func, v); - while(_shortcut_closest_match(&existing, f, &matched, def, fb_log) && !matched) {}; + while(_shortcut_closest_match(&existing, f, &matched, &elements, fb_log) + && !matched) {}; } if(f->move && !f->move_device && !(f->mods || f->press || f->button || f->click)) { - if(*fb_log) - *fb_log = dt_util_dstrcat(*fb_log, "\n%s \u2192 %s", _shortcut_description(f), _("fallback to move")); + ADD_EXPLANATION(_shortcut_description(f), _("fallback to move"),); + if(ELEMENT_IS(value, f, elements) && f->effect == DT_ACTION_EFFECT_SET) + f->speed = 1.0f; f->effect = DT_ACTION_EFFECT_DEFAULT_MOVE; f->move = 0; } @@ -3362,7 +3701,8 @@ float return_value = DT_ACTION_NOT_VALID; dt_action_t *owner = action; - while(owner && owner->type >= DT_ACTION_TYPE_SECTION) owner = owner->owner; + while(owner && owner->type >= DT_ACTION_TYPE_SECTION) + owner = owner->owner; gpointer action_target = action->type == DT_ACTION_TYPE_LIB ? action : action->target; @@ -3373,7 +3713,7 @@ if(owner == &darktable.control->actions_focus) { - action_target = darktable.develop->gui_module; + action_target = dt_dev_gui_module(); if(!action_target) return return_value; } @@ -3422,7 +3762,9 @@ } } - if(action->type == DT_ACTION_TYPE_COMMAND && action->target && DT_PERFORM_ACTION(move_size)) + if(action->type == DT_ACTION_TYPE_COMMAND + && action->target + && DT_PERFORM_ACTION(move_size)) { ((dt_action_callback_t*)action->target)(action); } @@ -3452,22 +3794,21 @@ || definition->no_widget || (action_target && !dt_action_widget_invisible(action_target)))) { - if(DT_PERFORM_ACTION(move_size) && - (definition->elements[element].effects != dt_action_effect_value - || effect != DT_ACTION_EFFECT_SET)) + if(DT_PERFORM_ACTION(move_size) + && (definition->elements[element].effects != dt_action_effect_value + || effect != DT_ACTION_EFFECT_SET)) { - dt_shortcut_t s = { .action = action }; + dt_shortcut_t s = { .action = action, .views = DT_VIEW_ALL }; GSequenceIter *speed_adjustment - = g_sequence_lookup(darktable.control->shortcuts, &s, _shortcut_compare_func, NULL); + = g_sequence_lookup(darktable.control->shortcuts, &s, + _shortcut_compare_func, NULL); if(speed_adjustment) { dt_shortcut_t *f = g_sequence_get(speed_adjustment); move_size *= f->speed; - if(*fb_log) - *fb_log = dt_util_dstrcat(*fb_log, "\n%s \u2192 %s = %g", - _action_description(f, 2), _("speed"), move_size); + ADD_EXPLANATION(_action_description(f, 2), _("speed"), " = %g", move_size); } } return_value = definition->process(action_target, element, effect, move_size); @@ -3525,7 +3866,8 @@ { gtk_widget_set_sensitive(_grab_widget, TRUE); gtk_widget_set_tooltip_text(_grab_widget, NULL); - g_signal_handlers_disconnect_by_func(gtk_widget_get_toplevel(_grab_widget), G_CALLBACK(dt_shortcut_dispatcher), NULL); + g_signal_handlers_disconnect_by_func(gtk_widget_get_toplevel(_grab_widget), + G_CALLBACK(dt_shortcut_dispatcher), NULL); _grab_widget = NULL; } } @@ -3571,7 +3913,8 @@ fsc.effect = DT_ACTION_EFFECT_DEFAULT_UP; } - return_value = _process_action(fsc.action, fsc.instance, fsc.element, fsc.effect, move_size, &fb_log); + return_value = _process_action(fsc.action, fsc.instance, fsc.element, + fsc.effect, move_size, &fb_log); } else if(DT_PERFORM_ACTION(move_size) && !fsc.action) { @@ -3626,13 +3969,16 @@ const dt_action_element_def_t *elements = _action_find_elements(ac); if(elements) { - if(elements == _action_elements_entry && (_entry_set_element = element) + if(elements == _action_elements_entry + && (_entry_set_element = element) && !g_ascii_strcasecmp("set", effect)) return _process_action(ac, instance, 0, DT_ACTION_EFFECT_SET, move_size, NULL); if(element && *element) { - while(elements[el].name && g_ascii_strcasecmp(elements[el].name, element)) el++; + while(elements[el].name + && g_ascii_strcasecmp(elements[el].name, element)) + el++; if(!elements[el].name) { @@ -3644,9 +3990,13 @@ } const gchar **effects = elements[el].effects; - if(effect && *effect && !_find_combo_effect(effects, effect, ac, &ef)) - { - while(effects[ef] && g_ascii_strcasecmp(effects[ef], effect)) ef++; + if(effect + && *effect + && !_find_combo_effect(effects, effect, ac, &ef)) + { + while(effects[ef] + && g_ascii_strcasecmp(effects[ef], effect)) + ef++; if(!effects[ef]) { @@ -3746,7 +4096,8 @@ GtkWidget *mapped_widget = darktable.control->mapping_widget; dt_shortcut_t s = _sc; - if(_insert_shortcut(&s, darktable.control->confirm_mapping)) + if(!_action_find_elements(s.action)) s.effect = DT_ACTION_EFFECT_DEFAULT_KEY; + if(_insert_shortcut(&s, darktable.control->confirm_mapping, FALSE)) { dt_control_log(_("%s assigned to %s"), _shortcut_description(&s), _action_description(&s, 2)); @@ -3818,14 +4169,19 @@ gboolean break_stuck = FALSE; -void dt_shortcut_key_press(dt_input_device_t id, guint time, guint key) +void dt_shortcut_key_press(const dt_input_device_t id, + const guint time, + const guint key) { dt_device_key_t this_key = { id, key }; if(g_slist_find_custom(_pressed_keys, &this_key, _cmp_key)) { - // if key is still repeating (after return from popup menu) then restore double/triple press state - if(id == DT_SHORTCUT_DEVICE_KEYBOARD_MOUSE && key == _focus_loss_key && time < _last_time + 50) + // if key is still repeating (after return from popup menu) then + // restore double/triple press state + if(id == DT_SHORTCUT_DEVICE_KEYBOARD_MOUSE + && key == _focus_loss_key + && time < _last_time + 50) _sc.press = _focus_loss_press; _focus_loss_key = 0; } @@ -3864,8 +4220,7 @@ && !dt_action_widget(darktable.control->mapping_widget)) { const dt_action_def_t *definition = _action_find_definition(s->action); - if(definition && definition->process - && definition->elements[s->element].effects == dt_action_effect_hold) + if(definition && ELEMENT_IS(hold, s, definition->elements) && definition->process) { if(darktable.control->mapping_widget) { @@ -3963,37 +4318,43 @@ else if(break_stuck && !_sc.button) { _ungrab_grab_widget(); - dt_control_log("short key press resets stuck keys"); + dt_control_log(_("short key press resets stuck keys")); return; } else if((is_key ? _sc.press : _sc.click) & DT_SHORTCUT_TRIPLE) passed_time += delay; else if(!_sc.action) // in mapping mode always wait for double/triple { - // detect if any double or triple press shortcuts exist for this key; otherwise skip delay + // detect if any double or triple press shortcuts exist for this + // key; otherwise skip delay _sc.press += DT_SHORTCUT_DOUBLE & is_key; _sc.click += DT_SHORTCUT_DOUBLE & ~is_key; _sc.views = darktable.view_manager->current_view->view(darktable.view_manager->current_view); - GSequenceIter *multi = g_sequence_search(darktable.control->shortcuts, &_sc, _shortcut_compare_func, - GINT_TO_POINTER(_sc.views)); - - for(int checks = 2; multi; multi = --checks ? g_sequence_iter_prev(multi) : NULL) + GSequenceIter *multi = + g_sequence_search(darktable.control->shortcuts, &_sc, _shortcut_compare_func, + GINT_TO_POINTER(_sc.views)); + for(int checks = 2; checks--; multi = g_sequence_iter_prev(multi)) { + if(g_sequence_iter_is_end(multi)) continue; + dt_shortcut_t *m = g_sequence_get(multi); if(m && m->key_device == _sc.key_device && m->key == _sc.key && - (is_key ? m->press >= _sc.press : - m->press == _sc.press && m->button == _sc.button && m->click >= _sc.click)) + (is_key ? m->press >= _sc.press + : m->press == _sc.press + && m->button == _sc.button && m->click >= _sc.click)) break; - if(_sc.click && darktable.control->enable_fallbacks) + if(_sc.click + && darktable.control->enable_fallbacks) { const dt_action_def_t *def = _action_find_definition(m->action); if(def && def->fallbacks) break; } + + if(!checks) passed_time += delay; } - if(!multi) passed_time += delay; _sc.press -= DT_SHORTCUT_DOUBLE & is_key; _sc.click -= DT_SHORTCUT_DOUBLE & ~is_key; @@ -4008,7 +4369,9 @@ delay_func(GINT_TO_POINTER(passed_time > 2 * delay)); // call immediately } -void dt_shortcut_key_release(dt_input_device_t id, guint time, guint key) +void dt_shortcut_key_release(const dt_input_device_t id, + const guint time, + const guint key) { dt_device_key_t this_key = { id, key }; @@ -4045,7 +4408,8 @@ dt_shortcut_t saved_sc = _sc; _sc = (dt_shortcut_t) {.key_device = id, .key = key}; - float value = dt_shortcut_move(DT_SHORTCUT_DEVICE_KEYBOARD_MOUSE, 0, DT_SHORTCUT_MOVE_NONE, DT_READ_ACTION_ONLY); + const float value = dt_shortcut_move(DT_SHORTCUT_DEVICE_KEYBOARD_MOUSE, 0, + DT_SHORTCUT_MOVE_NONE, DT_READ_ACTION_ONLY); _sc = saved_sc; @@ -4061,16 +4425,20 @@ return keyval; } -gboolean dt_shortcut_dispatcher(GtkWidget *w, GdkEvent *event, gpointer user_data) +gboolean dt_shortcut_dispatcher(GtkWidget *w, + GdkEvent *event, + gpointer user_data) { if((event->type == GDK_BUTTON_PRESS || event->type == GDK_BUTTON_RELEASE || event->type == GDK_DOUBLE_BUTTON_PRESS || event->type == GDK_TRIPLE_BUTTON_PRESS) && event->button.button > 7) { if(event->type == GDK_BUTTON_RELEASE) - dt_shortcut_key_release(DT_SHORTCUT_DEVICE_TABLET, event->button.time, event->button.button - 7); + dt_shortcut_key_release(DT_SHORTCUT_DEVICE_TABLET, + event->button.time, event->button.button - 7); else - dt_shortcut_key_press (DT_SHORTCUT_DEVICE_TABLET, event->button.time, event->button.button - 7); + dt_shortcut_key_press (DT_SHORTCUT_DEVICE_TABLET, + event->button.time, event->button.button - 7); return TRUE; } @@ -4078,16 +4446,18 @@ if(_pressed_keys == NULL) { dt_shortcut_t s = { .action = _sc.action }; - gboolean middle_click = event->type == GDK_BUTTON_PRESS && event->button.button == GDK_BUTTON_MIDDLE; - if((middle_click || event->type == GDK_SCROLL) && - (s.action || (s.action = dt_action_widget(darktable.control->mapping_widget)))) + gboolean middle_click = event->type == GDK_BUTTON_PRESS + && event->button.button == GDK_BUTTON_MIDDLE; + + if((middle_click || event->type == GDK_SCROLL) + && (s.action || (s.action = dt_action_widget(darktable.control->mapping_widget)))) { int delta; if(middle_click || dt_gui_get_scroll_unit_delta(&event->scroll, &delta)) { s.speed = middle_click ? -1 : powf(10.0f, delta); - if(_insert_shortcut(&s, TRUE)) + if(_insert_shortcut(&s, TRUE, FALSE)) dt_control_log("%s", _action_description(&s, 2)); dt_shortcuts_save(NULL, FALSE); @@ -4206,7 +4576,8 @@ // might just be an accidental move during a key press or button click // possibly different time sources from midi or other devices - if(event->motion.time > _last_time && !dt_gui_long_click(event->motion.time, _last_time)) + if(event->motion.time > _last_time + && !dt_gui_long_click(event->motion.time, _last_time)) break; _sc.mods = _key_modifiers_clean(event->motion.state); @@ -4242,7 +4613,8 @@ } if(_previous_move == move || _previous_move == DT_SHORTCUT_MOVE_NONE) - dt_shortcut_move(DT_SHORTCUT_DEVICE_KEYBOARD_MOUSE, event->motion.time, move, size); + dt_shortcut_move(DT_SHORTCUT_DEVICE_KEYBOARD_MOUSE, + event->motion.time, move, size); else _previous_move = move; } @@ -4314,23 +4686,28 @@ *insertion_point = new_action; } -dt_action_t *dt_action_locate(dt_action_t *owner, gchar **path, gboolean create) +dt_action_t *dt_action_locate(dt_action_t *owner, + gchar **path, + gboolean create) { gchar *clean_path = NULL; dt_action_t *action = owner ? owner->target : darktable.control->actions; while(*path) { - if(owner == &darktable.control->actions_lua) create = TRUE; + if(owner == &darktable.control->actions_lua) + create = TRUE; const gboolean needs_translation = !owner || owner->type != DT_ACTION_TYPE_SECTION - || (g_ascii_strcasecmp(owner->id, "styles") && g_ascii_strcasecmp(owner->id, "preset")); + || (g_ascii_strcasecmp(owner->id, "styles") + && g_ascii_strcasecmp(owner->id, "preset")); const gchar *id_start = needs_translation ? NQ_(*path) : *path; - if(!clean_path) clean_path = path_without_symbols(id_start); + if(!clean_path) + clean_path = path_without_symbols(id_start); if(!action) { @@ -4380,7 +4757,9 @@ return owner; } -static gboolean _reset_element_on_leave(GtkWidget *widget, GdkEvent *event, gpointer user_data) +static gboolean _reset_element_on_leave(GtkWidget *widget, + GdkEvent *event, + gpointer user_data) { darktable.control->element = -1; return FALSE; @@ -4394,7 +4773,8 @@ { if(owner->type == DT_ACTION_TYPE_IOP_INSTANCE) { - return dt_action_define_iop((dt_iop_module_t *)owner, section, label, widget, action_def); + return dt_action_define_iop((dt_iop_module_t *)owner, section, + label, widget, action_def); } dt_action_t *ac = owner; @@ -4433,8 +4813,10 @@ g_hash_table_insert(darktable.control->widgets, widget, ac); gtk_widget_set_has_tooltip(widget, TRUE); - g_signal_connect(G_OBJECT(widget), "leave-notify-event", G_CALLBACK(_reset_element_on_leave), NULL); - g_signal_connect(G_OBJECT(widget), "destroy", G_CALLBACK(_remove_widget_from_hashtable), NULL); + g_signal_connect(G_OBJECT(widget), "leave-notify-event", + G_CALLBACK(_reset_element_on_leave), NULL); + g_signal_connect(G_OBJECT(widget), "destroy", + G_CALLBACK(_remove_widget_from_hashtable), NULL); } } @@ -4451,8 +4833,10 @@ dt_action_t *ac = NULL; if(section && g_str_has_prefix(section, "blend")) { - const char *subsection = section[strlen("blend")] ? section + strlen("blend") + 1 : NULL; - ac = dt_action_define(&darktable.control->actions_blend, subsection, label, widget, action_def); + const char *subsection = section[strlen("blend")] + ? section + strlen("blend") + 1 : NULL; + ac = dt_action_define(&darktable.control->actions_blend, + subsection, label, widget, action_def); } else { @@ -4471,8 +4855,8 @@ static GdkModifierType _mods_fix_primary(GdkModifierType mods) { - // FIXME move to darktable.h (?) and use there too in dt_modifier_is and dt_modifiers_include - // use global variable? + // FIXME move to darktable.h (?) and use there too in dt_modifier_is + // and dt_modifiers_include use global variable? GdkKeymap *keymap = gdk_keymap_get_for_display(gdk_display_get_default()); if(mods & GDK_CONTROL_MASK) return (mods & ~GDK_CONTROL_MASK) @@ -4487,7 +4871,8 @@ if(f) { const gchar *fallback_path[] = { action_def->name, NULL }; - dt_action_t *fb = dt_action_locate(&darktable.control->actions_fallbacks, (gchar**)fallback_path, TRUE); + dt_action_t *fb = dt_action_locate(&darktable.control->actions_fallbacks, + (gchar**)fallback_path, TRUE); fb->type = DT_ACTION_TYPE_FALLBACK; fb->target = GINT_TO_POINTER(type); @@ -4499,12 +4884,13 @@ .click = f->click, .direction = f->direction, .move = f->move, + .is_default = TRUE, .element = f->element, .effect = f->effect, .action = fb, .speed = f->speed ? f->speed : 1.0 }; - _insert_shortcut(&s, FALSE); + _insert_shortcut(&s, FALSE, FALSE); f++; } @@ -4528,12 +4914,15 @@ for(int j = 0; j < n_keys; j++) { - gdk_keymap_translate_keyboard_state(keymap, keys[j].keycode, 0, 0, &keys[j].keycode, NULL, NULL, NULL); + gdk_keymap_translate_keyboard_state(keymap, keys[j].keycode, 0, 0, + &keys[j].keycode, NULL, NULL, NULL); if(_is_kp_key(keys[j].keycode)) keys[j].group = 10; - if(keys[j].group < keys[i].group || (keys[j].group == keys[i].group && keys[j].level < keys[i].level)) + if(keys[j].group < keys[i].group + || (keys[j].group == keys[i].group + && keys[j].level < keys[i].level)) i = j; } @@ -4545,18 +4934,20 @@ dt_shortcut_t s = { .key_device = DT_SHORTCUT_DEVICE_KEYBOARD_MOUSE, .key = keys[i].keycode, .mods = mods, + .is_default = TRUE, .speed = 1.0, .action = owner, .element = element, .effect = effect }; - _insert_shortcut(&s, FALSE); + _insert_shortcut(&s, FALSE, FALSE); g_free(keys); } } -void dt_action_define_preset(dt_action_t *action, const gchar *name) +void dt_action_define_preset(dt_action_t *action, + const gchar *name) { gchar *path[3] = { "preset", (gchar *)name, NULL }; dt_action_t *const p = dt_action_locate(action, path, TRUE); @@ -4567,7 +4958,8 @@ } } -void dt_action_rename(dt_action_t *action, const gchar *new_name) +void dt_action_rename(dt_action_t *action, + const gchar *new_name) { if(!action) return; @@ -4622,7 +5014,8 @@ if(!new_name) { if(_actions_store) - gtk_tree_model_foreach(GTK_TREE_MODEL(_actions_store), _remove_shortcut_from_store, p); + gtk_tree_model_foreach(GTK_TREE_MODEL(_actions_store), + _remove_shortcut_from_store, p); } dt_action_rename(p, new_name); @@ -4686,18 +5079,23 @@ { const int slider_precision = dt_conf_get_int("accel/slider_precision"); float multiplier - = dt_conf_get_float(slider_precision == DT_IOP_PRECISION_FINE ? "darkroom/ui/scale_precise_step_multiplier" : - slider_precision == DT_IOP_PRECISION_COARSE ? "darkroom/ui/scale_rough_step_multiplier" : - "darkroom/ui/scale_step_multiplier"); + = dt_conf_get_float(slider_precision == DT_IOP_PRECISION_FINE + ? "darkroom/ui/scale_precise_step_multiplier" + : slider_precision == DT_IOP_PRECISION_COARSE + ? "darkroom/ui/scale_rough_step_multiplier" + : "darkroom/ui/scale_step_multiplier"); if(state != GDK_MODIFIER_MASK) { - dt_shortcut_t s = { .action = &_value_action, .mods = _key_modifiers_clean(state) }; + dt_shortcut_t s = { .action = &_value_action, + .mods = _key_modifiers_clean(state), + .views = DT_VIEW_FALLBACK }; + dt_action_t *wac = dt_action_widget(widget); while(s.action) { - GSequenceIter *speed_adjustment - = g_sequence_lookup(darktable.control->shortcuts, &s, _shortcut_compare_func, NULL); + GSequenceIter *speed_adjustment = + g_sequence_lookup(darktable.control->shortcuts, &s, _shortcut_compare_func, NULL); if(speed_adjustment) { const dt_shortcut_t *const f = g_sequence_get(speed_adjustment); @@ -4713,12 +5111,14 @@ return multiplier; } -// FIXME possibly just find correct widget for each shortcut execution, rather than updating for each focus change etc +// FIXME possibly just find correct widget for each shortcut +// execution, rather than updating for each focus change etc void dt_accel_connect_instance_iop(dt_iop_module_t *module) { - const gboolean focused = darktable.develop->gui_module - && darktable.develop->gui_module->so == module->so; + const dt_iop_module_t *gui_module = dt_dev_gui_module(); + const gboolean focused = gui_module && gui_module->so == module->so; const dt_action_t *const blend = &darktable.control->actions_blend; + for(GSList *w = module->widget_list; w; w = w->next) { const dt_action_target_t *const referral = w->data; @@ -4742,13 +5142,15 @@ GdkModifierType mods) { GtkWidget *button = gtk_button_new_with_label(Q_(label)); - gtk_label_set_ellipsize(GTK_LABEL(gtk_bin_get_child(GTK_BIN(button))), PANGO_ELLIPSIZE_END); + gtk_label_set_ellipsize(GTK_LABEL(gtk_bin_get_child(GTK_BIN(button))), + PANGO_ELLIPSIZE_END); if(tooltip) gtk_widget_set_tooltip_text(button, tooltip); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(callback), data); if(self) { - dt_action_t *ac = dt_action_define(DT_ACTION(self), NULL, label, button, &dt_action_def_button); + dt_action_t *ac = dt_action_define(DT_ACTION(self), NULL, label, + button, &dt_action_def_button); if(accel_key && (self->actions.type != DT_ACTION_TYPE_IOP_INSTANCE || darktable.control->accel_initialising)) dt_shortcut_register(ac, 0, 0, accel_key, mods); diff -Nru darktable-4.4.2/src/gui/color_picker_proxy.c darktable-4.6.1/src/gui/color_picker_proxy.c --- darktable-4.4.2/src/gui/color_picker_proxy.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/gui/color_picker_proxy.c 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2018-2021 darktable developers. + Copyright (C) 2018-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by @@ -75,7 +75,8 @@ static gboolean _record_point_area(dt_iop_color_picker_t *self) { - const dt_colorpicker_sample_t *const sample = darktable.lib->proxy.colorpicker.primary_sample; + const dt_colorpicker_sample_t *const sample = + darktable.lib->proxy.colorpicker.primary_sample; gboolean changed = self->changed; if(self && sample) { @@ -117,7 +118,8 @@ } } -void dt_iop_color_picker_reset(dt_iop_module_t *module, gboolean keep) +void dt_iop_color_picker_reset(dt_iop_module_t *module, + const gboolean keep) { dt_iop_color_picker_t *picker = darktable.lib->proxy.colorpicker.picker_proxy; if(picker && picker->module == module) @@ -132,13 +134,17 @@ } } -static void _init_picker(dt_iop_color_picker_t *picker, dt_iop_module_t *module, - dt_iop_color_picker_flags_t flags, GtkWidget *button) +static void _init_picker(dt_iop_color_picker_t *picker, + dt_iop_module_t *module, + const dt_iop_color_picker_flags_t flags, + GtkWidget *button) { // module is NULL if primary colorpicker picker->module = module; picker->flags = flags; - picker->picker_cst = module ? module->default_colorspace(module, NULL, NULL) : IOP_CS_NONE; + picker->picker_cst = module + ? module->default_colorspace(module, NULL, NULL) + : IOP_CS_NONE; picker->colorpick = button; picker->changed = FALSE; @@ -152,7 +158,9 @@ _color_picker_reset(picker); } -static gboolean _color_picker_callback_button_press(GtkWidget *button, GdkEventButton *e, dt_iop_color_picker_t *self) +static gboolean _color_picker_callback_button_press(GtkWidget *button, + GdkEventButton *e, + dt_iop_color_picker_t *self) { // module is NULL if primary colorpicker dt_iop_module_t *module = self->module; @@ -214,12 +222,12 @@ if(module) { - module->dev->preview_status = DT_DEV_PIXELPIPE_DIRTY; + module->dev->preview_pipe->status = DT_DEV_PIXELPIPE_DIRTY; dt_iop_request_focus(module); } else { - dt_dev_invalidate_from_gui(darktable.develop); + dt_dev_invalidate_all(darktable.develop); } // force applying the next incoming sample self->changed = TRUE; @@ -232,11 +240,12 @@ { module->request_color_pick = DT_REQUEST_COLORPICK_OFF; // will turn off live sample button - darktable.lib->proxy.colorpicker.update_panel(darktable.lib->proxy.colorpicker.module); + darktable.lib->proxy.colorpicker.update_panel + (darktable.lib->proxy.colorpicker.module); } else if(darktable.lib->proxy.colorpicker.restrict_histogram) { - dt_dev_invalidate_from_gui(darktable.develop); + dt_dev_invalidate_all(darktable.develop); } } @@ -245,15 +254,18 @@ return TRUE; } -static void _color_picker_callback(GtkWidget *button, dt_iop_color_picker_t *self) +static void _color_picker_callback(GtkWidget *button, + dt_iop_color_picker_t *self) { _color_picker_callback_button_press(button, NULL, self); } -void dt_iop_color_picker_set_cst(dt_iop_module_t *module, const dt_iop_colorspace_type_t picker_cst) +void dt_iop_color_picker_set_cst(dt_iop_module_t *module, + const dt_iop_colorspace_type_t picker_cst) { dt_iop_color_picker_t *const picker = darktable.lib->proxy.colorpicker.picker_proxy; - // this is a bit hacky, because the code was built for when a module "owned" an active pcicker + // this is a bit hacky, because the code was built for when a module + // "owned" an active pcicker if(picker && picker->module == module && picker->picker_cst != picker_cst) { picker->picker_cst = picker_cst; @@ -271,7 +283,9 @@ return IOP_CS_NONE; } -static void _iop_color_picker_pickerdata_ready_callback(gpointer instance, dt_iop_module_t *module, dt_dev_pixelpipe_iop_t *piece, +static void _iop_color_picker_pickerdata_ready_callback(gpointer instance, + dt_iop_module_t *module, + dt_dev_pixelpipe_t *pipe, gpointer user_data) { // an iop colorpicker receives new data from the pixelpipe @@ -282,19 +296,21 @@ // modules between colorin & colorout may need the work_profile // to work properly. This will force colorin to be run and it // will set the work_profile if needed. - piece->pipe->changed |= DT_DEV_PIPE_REMOVE; - piece->pipe->cache_obsolete = TRUE; + // FIXME: is this overdoing it? see #14812 + pipe->changed |= DT_DEV_PIPE_REMOVE; + pipe->cache_obsolete = TRUE; // iops only need new picker data if the pointer has moved if(_record_point_area(picker)) { - if(!module->blend_data || !blend_color_picker_apply(module, picker->colorpick, piece)) + if(!module->blend_data || !blend_color_picker_apply(module, picker->colorpick, pipe)) if(module->color_picker_apply) - module->color_picker_apply(module, picker->colorpick, piece); + module->color_picker_apply(module, picker->colorpick, pipe); } } -static void _color_picker_proxy_preview_pipe_callback(gpointer instance, gpointer user_data) +static void _color_picker_proxy_preview_pipe_callback(gpointer instance, + gpointer user_data) { dt_iop_color_picker_t *picker = darktable.lib->proxy.colorpicker.picker_proxy; if(picker) @@ -325,23 +341,35 @@ void dt_iop_color_picker_init(void) { // we have incoming iop picker data - DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_CONTROL_PICKERDATA_READY, - G_CALLBACK(_iop_color_picker_pickerdata_ready_callback), NULL); + DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, + DT_SIGNAL_CONTROL_PICKERDATA_READY, + G_CALLBACK(_iop_color_picker_pickerdata_ready_callback), + NULL); // we have new primary picker data as preview pipe has run to conclusion - DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_DEVELOP_PREVIEW_PIPE_FINISHED, - G_CALLBACK(_color_picker_proxy_preview_pipe_callback), NULL); + DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, + DT_SIGNAL_DEVELOP_PREVIEW_PIPE_FINISHED, + G_CALLBACK(_color_picker_proxy_preview_pipe_callback), + NULL); } void dt_iop_color_picker_cleanup(void) { - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(_iop_color_picker_pickerdata_ready_callback), NULL); - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(_color_picker_proxy_preview_pipe_callback), NULL); -} - -static GtkWidget *_color_picker_new(dt_iop_module_t *module, dt_iop_color_picker_flags_t flags, GtkWidget *w, - const gboolean init_cst, const dt_iop_colorspace_type_t cst) + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT + (darktable.signals, + G_CALLBACK(_iop_color_picker_pickerdata_ready_callback), NULL); + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT + (darktable.signals, + G_CALLBACK(_color_picker_proxy_preview_pipe_callback), NULL); +} + +static GtkWidget *_color_picker_new(dt_iop_module_t *module, + const dt_iop_color_picker_flags_t flags, + GtkWidget *w, + const gboolean init_cst, + const dt_iop_colorspace_type_t cst) { - dt_iop_color_picker_t *color_picker = (dt_iop_color_picker_t *)g_malloc(sizeof(dt_iop_color_picker_t)); + dt_iop_color_picker_t *color_picker = + (dt_iop_color_picker_t *)g_malloc(sizeof(dt_iop_color_picker_t)); if(w == NULL || GTK_IS_BOX(w)) { @@ -351,7 +379,8 @@ if(init_cst) color_picker->picker_cst = cst; g_signal_connect_data(G_OBJECT(button), "button-press-event", - G_CALLBACK(_color_picker_callback_button_press), color_picker, (GClosureNotify)g_free, 0); + G_CALLBACK(_color_picker_callback_button_press), + color_picker, (GClosureNotify)g_free, 0); if(w) gtk_box_pack_start(GTK_BOX(w), button, FALSE, FALSE, 0); return button; @@ -360,22 +389,28 @@ { dt_bauhaus_widget_set_quad_paint(w, dtgtk_cairo_paint_colorpicker, 0, NULL); dt_bauhaus_widget_set_quad_toggle(w, TRUE); + dt_bauhaus_widget_set_quad_tooltip(w, _("pick color from image")); _init_picker(color_picker, module, flags, w); if(init_cst) color_picker->picker_cst = cst; g_signal_connect_data(G_OBJECT(w), "quad-pressed", - G_CALLBACK(_color_picker_callback), color_picker, (GClosureNotify)g_free, 0); + G_CALLBACK(_color_picker_callback), + color_picker, (GClosureNotify)g_free, 0); return w; } } -GtkWidget *dt_color_picker_new(dt_iop_module_t *module, dt_iop_color_picker_flags_t flags, GtkWidget *w) +GtkWidget *dt_color_picker_new(dt_iop_module_t *module, + const dt_iop_color_picker_flags_t flags, + GtkWidget *w) { return _color_picker_new(module, flags, w, FALSE, IOP_CS_NONE); } -GtkWidget *dt_color_picker_new_with_cst(dt_iop_module_t *module, dt_iop_color_picker_flags_t flags, GtkWidget *w, +GtkWidget *dt_color_picker_new_with_cst(dt_iop_module_t *module, + const dt_iop_color_picker_flags_t flags, + GtkWidget *w, const dt_iop_colorspace_type_t cst) { return _color_picker_new(module, flags, w, TRUE, cst); @@ -386,4 +421,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/gui/draw.h darktable-4.6.1/src/gui/draw.h --- darktable-4.4.2/src/gui/draw.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/gui/draw.h 2024-02-16 17:31:09.000000000 +0000 @@ -491,14 +491,13 @@ return MIN(MAX(val, c->c.m_min_y), c->c.m_max_y); } -static inline int dt_draw_curve_add_point(dt_draw_curve_t *c, +static inline void dt_draw_curve_add_point(dt_draw_curve_t *c, const float x, const float y) { c->c.m_anchors[c->c.m_numAnchors].x = x; c->c.m_anchors[c->c.m_numAnchors].y = y; c->c.m_numAnchors++; - return 0; } // linear x linear y diff -Nru darktable-4.4.2/src/gui/gtk.c darktable-4.6.1/src/gui/gtk.c --- darktable-4.4.2/src/gui/gtk.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/gui/gtk.c 2024-02-16 17:31:09.000000000 +0000 @@ -15,6 +15,7 @@ You should have received a copy of the GNU General Public License along with darktable. If not, see <http://www.gnu.org/licenses/>. */ + #include "common/darktable.h" #ifdef HAVE_GPHOTO2 #include "common/camera_control.h" @@ -44,6 +45,8 @@ #include "control/signal.h" #include "gui/presets.h" #include "views/view.h" +#include "gui/about.h" +#include "gui/preferences.h" #include <gdk/gdkkeysyms.h> #ifdef GDK_WINDOWING_WAYLAND @@ -68,7 +71,6 @@ #define DT_UI_PANEL_MODULE_SPACING 0 #define DT_UI_PANEL_BOTTOM_DEFAULT_SIZE 120 -#define DT_RESIZE_HANDLE_SIZE DT_PIXEL_APPLY_DPI(5) typedef enum dt_gui_view_switch_t { @@ -152,9 +154,9 @@ static void _fullscreen_key_accel_callback(dt_action_t *action) { GtkWidget *widget = darktable.develop && - darktable.develop->second_window.second_wnd && - gtk_window_is_active(GTK_WINDOW(darktable.develop->second_window.second_wnd)) - ? darktable.develop->second_window.second_wnd + darktable.develop->second_wnd && + gtk_window_is_active(GTK_WINDOW(darktable.develop->second_wnd)) + ? darktable.develop->second_wnd : dt_ui_main_window(darktable.gui->ui); if(gdk_window_get_state(gtk_widget_get_window(widget)) & GDK_WINDOW_STATE_FULLSCREEN) @@ -234,6 +236,8 @@ { if(!darktable.view_manager) return NULL; const dt_view_t *cv = dt_view_manager_get_current_view(darktable.view_manager); + if(!cv) return NULL; + // in lighttable, we store panels states per layout char lay[32] = ""; if(g_strcmp0(cv->module_name, "lighttable") == 0) @@ -477,6 +481,7 @@ #endif handled = TRUE; } + break; default: break; } @@ -712,29 +717,19 @@ static gboolean _scrollbar_changed(GtkWidget *widget, gpointer user_data) { + if(darktable.gui->reset) return FALSE; + GtkAdjustment *adjustment_x = gtk_range_get_adjustment(GTK_RANGE(darktable.gui->scrollbars.hscrollbar)); GtkAdjustment *adjustment_y = gtk_range_get_adjustment(GTK_RANGE(darktable.gui->scrollbars.vscrollbar)); - const gdouble value_x = gtk_adjustment_get_value (adjustment_x); - const gdouble value_y = gtk_adjustment_get_value (adjustment_y); + const gdouble value_x = gtk_adjustment_get_value(adjustment_x); + const gdouble value_y = gtk_adjustment_get_value(adjustment_y); dt_view_manager_scrollbar_changed(darktable.view_manager, value_x, value_y); return TRUE; } -static gboolean _scrollbar_press_event(GtkWidget *widget, gpointer user_data) -{ - darktable.gui->scrollbars.dragging = TRUE; - return FALSE; -} - -static gboolean _scrollbar_release_event(GtkWidget *widget, gpointer user_data) -{ - darktable.gui->scrollbars.dragging = FALSE; - return FALSE; -} - int dt_gui_gtk_load_config() { dt_pthread_mutex_lock(&darktable.gui->mutex); @@ -816,15 +811,11 @@ // Write out windows dimension dt_gui_gtk_write_config(); - GtkWidget *widget; - widget = darktable.gui->widgets.left_border; - g_signal_handlers_block_by_func(widget, _draw_borders, GINT_TO_POINTER(DT_UI_BORDER_LEFT)); - widget = darktable.gui->widgets.right_border; - g_signal_handlers_block_by_func(widget, _draw_borders, GINT_TO_POINTER(DT_UI_BORDER_RIGHT)); - widget = darktable.gui->widgets.top_border; - g_signal_handlers_block_by_func(widget, _draw_borders, GINT_TO_POINTER(DT_UI_BORDER_TOP)); - widget = darktable.gui->widgets.bottom_border; - g_signal_handlers_block_by_func(widget, _draw_borders, GINT_TO_POINTER(DT_UI_BORDER_BOTTOM)); + dt_gui_widgets_t *widgets = &darktable.gui->widgets; + g_signal_handlers_block_by_func(widgets->left_border, _draw_borders, GINT_TO_POINTER(DT_UI_BORDER_LEFT)); + g_signal_handlers_block_by_func(widgets->right_border, _draw_borders, GINT_TO_POINTER(DT_UI_BORDER_RIGHT)); + g_signal_handlers_block_by_func(widgets->top_border, _draw_borders, GINT_TO_POINTER(DT_UI_BORDER_TOP)); + g_signal_handlers_block_by_func(widgets->bottom_border, _draw_borders, GINT_TO_POINTER(DT_UI_BORDER_BOTTOM)); // hide main window gtk_widget_hide(dt_ui_main_window(darktable.gui->ui)); @@ -832,7 +823,9 @@ gboolean dt_gui_quit_callback(GtkWidget *widget, GdkEvent *event, gpointer user_data) { - if(dt_view_lighttable_preview_state(darktable.view_manager)) + // if we are in lighttable preview mode, then just exit preview instead of closing dt + if(dt_view_get_current() == DT_VIEW_LIGHTTABLE + && dt_view_lighttable_preview_state(darktable.view_manager)) dt_view_lighttable_set_preview_state(darktable.view_manager, FALSE, FALSE, FALSE); else dt_control_quit(); @@ -846,10 +839,6 @@ darktable.gui->last_preset = g_strdup(name); } -static void _gui_noop_action_callback(dt_action_t *action) -{ -} - static void _gui_switch_view_key_accel_callback(dt_action_t *action) { dt_ctl_switch_mode_to(action->id); @@ -959,7 +948,7 @@ if(device && gdk_device_get_source(device) == GDK_SOURCE_PEN) { - gdk_event_get_axis ((GdkEvent *)event, GDK_AXIS_PRESSURE, &pressure); + gdk_event_get_axis((GdkEvent *)event, GDK_AXIS_PRESSURE, &pressure); } dt_control_button_pressed(event->x, event->y, pressure, event->button, event->type, event->state & 0xf); gtk_widget_grab_focus(w); @@ -981,7 +970,7 @@ if(device && gdk_device_get_source(device) == GDK_SOURCE_PEN) { - gdk_event_get_axis ((GdkEvent *)event, GDK_AXIS_PRESSURE, &pressure); + gdk_event_get_axis((GdkEvent *)event, GDK_AXIS_PRESSURE, &pressure); gui->have_pen_pressure = pressure != 1.0; } dt_control_mouse_moved(event->x, event->y, pressure, event->state & 0xf); @@ -1027,6 +1016,53 @@ return AXIS_NAMES[pos]; } +void dt_open_url(const char* url) +{ + GError *error = NULL; + GtkWidget *win = dt_ui_main_window(darktable.gui->ui); + +// TODO: call the web browser directly so that file:// style base for local installs works + const gboolean uri_success = gtk_show_uri_on_window(GTK_WINDOW(win), + url, + gtk_get_current_event_time(), + &error); + + if(uri_success) + { + dt_control_log(_("URL opened in web browser")); + } + else + { + dt_control_log(_("error while opening URL in web browser")); + if(error != NULL) // uri_success being FALSE should guarantee that + { + dt_print(DT_DEBUG_ALWAYS, "unable to read file: %s\n", error->message); + g_error_free(error); + } + } +} + +#ifdef MAC_INTEGRATION +static void _osx_ctl_switch_mode_to(GtkWidget *mi, gpointer mode) +{ + dt_ctl_switch_mode_to((const char*) mode); +} + +static void _osx_add_view_menu_item(GtkWidget* menu, const char* label, gpointer mode) +{ + GtkWidget *mi = gtk_menu_item_new_with_label(label); + gtk_menu_shell_append(GTK_MENU_SHELL (menu), mi); + gtk_widget_show(mi); + g_signal_connect(G_OBJECT(mi), "activate", + G_CALLBACK(_osx_ctl_switch_mode_to), mode); +} + +static void _open_url(GtkWidget *widget, gpointer url) +{ + dt_open_url((const char *) url); +} +#endif + int dt_gui_gtk_init(dt_gui_gtk_t *gui) { /* lets zero mem */ @@ -1063,8 +1099,73 @@ OSXApp, GTK_MENU_SHELL(gtk_menu_bar_new())); // needed for default entries to show up #else GtkosxApplication *OSXApp = g_object_new(GTKOSX_TYPE_APPLICATION, NULL); - gtkosx_application_set_menu_bar( - OSXApp, GTK_MENU_SHELL(gtk_menu_bar_new())); // needed for default entries to show up + + // View menu + GtkWidget *view_root_menu = gtk_menu_item_new_with_label(C_("menu", "Views")); + gtk_widget_show(view_root_menu); + + GtkWidget *view_menu = gtk_menu_new(); + _osx_add_view_menu_item(view_menu, C_("menu", "lighttable"), "lighttable"); + _osx_add_view_menu_item(view_menu, C_("menu", "darkroom"), "darkroom"); + + GtkWidget *sep = gtk_separator_menu_item_new(); + gtk_menu_shell_append(GTK_MENU_SHELL (view_menu), sep); + gtk_widget_show(sep); + + _osx_add_view_menu_item(view_menu, C_("menu", "slideshow"), "slideshow"); +#ifdef HAVE_MAP + _osx_add_view_menu_item(view_menu, C_("menu", "map"), "map"); +#endif + _osx_add_view_menu_item(view_menu, C_("menu", "print"), "print"); +#ifdef HAVE_GPHOTO2 + _osx_add_view_menu_item(view_menu, C_("menu", "tethering"), "tethering"); +#endif + + gtk_menu_item_set_submenu(GTK_MENU_ITEM (view_root_menu), view_menu); + + // Help menu + GtkWidget *help_root_menu = gtk_menu_item_new_with_label(C_("menu", "Help")); + gtk_widget_show(help_root_menu); + + GtkWidget *help_menu = gtk_menu_new(); + GtkWidget *help_manual = gtk_menu_item_new_with_label(C_("menu", "darktable Manual")); + gtk_menu_shell_append(GTK_MENU_SHELL (help_menu), help_manual); + gtk_widget_show(help_manual); + dt_gui_add_help_link(help_manual, "document_root"); + g_signal_connect(G_OBJECT(help_manual), "activate", + G_CALLBACK(dt_gui_show_help), help_manual); + + GtkWidget *help_home = gtk_menu_item_new_with_label(C_("menu", "darktable Homepage")); + gtk_menu_shell_append(GTK_MENU_SHELL (help_menu), help_home); + gtk_widget_show(help_home); + g_signal_connect(G_OBJECT(help_home), "activate", + G_CALLBACK(_open_url), "https://www.darktable.org"); + + gtk_menu_item_set_submenu(GTK_MENU_ITEM (help_root_menu), help_menu); + + // build the menu bar + GtkWidget *menu_bar = gtk_menu_bar_new(); + gtk_widget_show(menu_bar); + gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), view_root_menu); + gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), help_root_menu); + + gtkosx_application_set_menu_bar(OSXApp, GTK_MENU_SHELL(menu_bar)); + + // Now the application menu (first item) + // GTK automatically translates the item with index 0 so no need to localize. + // Furthermore, the application name (darktable) is automatically appended. + GtkWidget *mi_about = gtk_menu_item_new_with_label("About"); + g_signal_connect(G_OBJECT(mi_about), "activate", + G_CALLBACK(darktable_show_about_dialog), NULL); + gtkosx_application_insert_app_menu_item(OSXApp, mi_about, 0); + + GtkWidget *mi_prefs = gtk_menu_item_new_with_label(C_("menu", "Preferences")); + g_signal_connect(G_OBJECT(mi_prefs), "activate", + G_CALLBACK(dt_gui_preferences_show), NULL); + gtkosx_application_insert_app_menu_item(OSXApp, mi_prefs, 1); + + gtkosx_application_set_help_menu(OSXApp, GTK_MENU_ITEM(help_root_menu)); + #endif g_signal_connect(G_OBJECT(OSXApp), "NSApplicationBlockTermination", G_CALLBACK(_osx_quit_callback), NULL); g_signal_connect(G_OBJECT(OSXApp), "NSApplicationOpenFile", G_CALLBACK(_osx_openfile_callback), NULL); @@ -1124,42 +1225,22 @@ widget = darktable.gui->scrollbars.vscrollbar; g_signal_connect(G_OBJECT(widget), "value-changed", G_CALLBACK(_scrollbar_changed), NULL); - g_signal_connect(G_OBJECT(widget), "button-press-event", G_CALLBACK(_scrollbar_press_event), NULL); - g_signal_connect(G_OBJECT(widget), "button-release-event", G_CALLBACK(_scrollbar_release_event), NULL); widget = darktable.gui->scrollbars.hscrollbar; g_signal_connect(G_OBJECT(widget), "value-changed", G_CALLBACK(_scrollbar_changed), NULL); - g_signal_connect(G_OBJECT(widget), "button-press-event", G_CALLBACK(_scrollbar_press_event), NULL); - g_signal_connect(G_OBJECT(widget), "button-release-event", G_CALLBACK(_scrollbar_release_event), NULL); dt_action_t *pnl = dt_action_section(&darktable.control->actions_global, N_("panels")); dt_action_t *ac; - widget = darktable.gui->widgets.left_border; - g_signal_connect(G_OBJECT(widget), "draw", G_CALLBACK(_draw_borders), GINT_TO_POINTER(DT_UI_BORDER_LEFT)); - g_signal_connect(G_OBJECT(widget), "button-press-event", G_CALLBACK(_borders_button_pressed), - GINT_TO_POINTER(DT_UI_BORDER_LEFT)); - ac = dt_action_define(pnl, NULL, N_("left"), widget, NULL); + ac = dt_action_define(pnl, NULL, N_("left"), darktable.gui->widgets.left_border, NULL); dt_action_register(ac, NULL, _toggle_panel_accel_callback, GDK_KEY_L, GDK_CONTROL_MASK | GDK_SHIFT_MASK); - widget = darktable.gui->widgets.right_border; - g_signal_connect(G_OBJECT(widget), "draw", G_CALLBACK(_draw_borders), GINT_TO_POINTER(DT_UI_BORDER_RIGHT)); - g_signal_connect(G_OBJECT(widget), "button-press-event", G_CALLBACK(_borders_button_pressed), - GINT_TO_POINTER(DT_UI_BORDER_RIGHT)); - ac = dt_action_define(pnl, NULL, N_("right"), widget, NULL); + ac = dt_action_define(pnl, NULL, N_("right"), darktable.gui->widgets.right_border, NULL); dt_action_register(ac, NULL, _toggle_panel_accel_callback, GDK_KEY_R, GDK_CONTROL_MASK | GDK_SHIFT_MASK); - widget = darktable.gui->widgets.top_border; - g_signal_connect(G_OBJECT(widget), "draw", G_CALLBACK(_draw_borders), GINT_TO_POINTER(DT_UI_BORDER_TOP)); - g_signal_connect(G_OBJECT(widget), "button-press-event", G_CALLBACK(_borders_button_pressed), - GINT_TO_POINTER(DT_UI_BORDER_TOP)); - ac = dt_action_define(pnl, NULL, N_("top"), widget, NULL); + ac = dt_action_define(pnl, NULL, N_("top"), darktable.gui->widgets.top_border, NULL); dt_action_register(ac, NULL, _toggle_panel_accel_callback, GDK_KEY_T, GDK_CONTROL_MASK | GDK_SHIFT_MASK); - widget = darktable.gui->widgets.bottom_border; - g_signal_connect(G_OBJECT(widget), "draw", G_CALLBACK(_draw_borders), GINT_TO_POINTER(DT_UI_BORDER_BOTTOM)); - g_signal_connect(G_OBJECT(widget), "button-press-event", G_CALLBACK(_borders_button_pressed), - GINT_TO_POINTER(DT_UI_BORDER_BOTTOM)); - ac = dt_action_define(pnl, NULL, N_("bottom"), widget, NULL); + ac = dt_action_define(pnl, NULL, N_("bottom"), darktable.gui->widgets.bottom_border, NULL); dt_action_register(ac, NULL, _toggle_panel_accel_callback, GDK_KEY_B, GDK_CONTROL_MASK | GDK_SHIFT_MASK); dt_gui_presets_init(); @@ -1180,9 +1261,6 @@ g_signal_connect(G_OBJECT(widget), "event", G_CALLBACK(dt_shortcut_dispatcher), NULL); g_signal_override_class_handler("query-tooltip", gtk_widget_get_type(), G_CALLBACK(dt_shortcut_tooltip_callback)); - //an action that does nothing - used for overriding/removing default shortcuts - dt_action_register(&darktable.control->actions_global, N_("no-op"), _gui_noop_action_callback, 0, 0); - ac = dt_action_section(&darktable.control->actions_global, N_("switch views")); dt_action_register(ac, N_("tethering"), _gui_switch_view_key_accel_callback, GDK_KEY_t, 0); dt_action_register(ac, N_("lighttable"), _gui_switch_view_key_accel_callback, GDK_KEY_l, 0); @@ -1313,49 +1391,56 @@ return res; } -void dt_configure_ppd_dpi(dt_gui_gtk_t *gui) +double dt_get_screen_resolution(GtkWidget *widget) { - GtkWidget *widget = gui->ui->main_window; - - gui->ppd = gui->ppd_thb = dt_get_system_gui_ppd(widget); - gui->filter_image = CAIRO_FILTER_GOOD; - gui->dr_filter_image = CAIRO_FILTER_BEST; - if(dt_conf_get_bool("ui/performance")) - { - gui->ppd_thb *= DT_GUI_THUMBSIZE_REDUCE; - gui->filter_image = CAIRO_FILTER_FAST; - gui->dr_filter_image = CAIRO_FILTER_GOOD; - } // get the screen resolution - const float screen_dpi_overwrite = dt_conf_get_float("screen_dpi_overwrite"); - if(screen_dpi_overwrite > 0.0) + float screen_dpi = dt_conf_get_float("screen_dpi_overwrite"); + if(screen_dpi > 0.0) { - gui->dpi = screen_dpi_overwrite; - gdk_screen_set_resolution(gtk_widget_get_screen(widget), screen_dpi_overwrite); + gdk_screen_set_resolution(gtk_widget_get_screen(widget), screen_dpi); dt_print(DT_DEBUG_CONTROL, "[screen resolution] setting the screen resolution to %f dpi as specified in " "the configuration file\n", - screen_dpi_overwrite); + screen_dpi); } else { -#ifdef GDK_WINDOWING_QUARTZ - dt_osx_autoset_dpi(widget); -#endif - gui->dpi = gdk_screen_get_resolution(gtk_widget_get_screen(widget)); - if(gui->dpi < 0.0) + screen_dpi = gdk_screen_get_resolution(gtk_widget_get_screen(widget)); + if(screen_dpi < 0.0) { - gui->dpi = 96.0; + screen_dpi = 96.0; gdk_screen_set_resolution(gtk_widget_get_screen(widget), 96.0); dt_print(DT_DEBUG_CONTROL, "[screen resolution] setting the screen resolution to the default 96 dpi\n"); } else dt_print(DT_DEBUG_CONTROL, - "[screen resolution] setting the screen resolution to %f dpi\n", gui->dpi); + "[screen resolution] setting the screen resolution to %f dpi\n", screen_dpi); } + return screen_dpi; +} + +void dt_configure_ppd_dpi(dt_gui_gtk_t *gui) +{ + GtkWidget *widget = gui->ui->main_window; + + gui->ppd = gui->ppd_thb = dt_get_system_gui_ppd(widget); + gui->filter_image = CAIRO_FILTER_GOOD; + if(dt_conf_get_bool("ui/performance")) + { + gui->ppd_thb *= DT_GUI_THUMBSIZE_REDUCE; + gui->filter_image = CAIRO_FILTER_FAST; + } + + gui->dpi = dt_get_screen_resolution(widget); + +#ifdef GDK_WINDOWING_QUARTZ + gui->dpi_factor + = gui->dpi / 72; // macOS has a fixed DPI of 72 +#else gui->dpi_factor = gui->dpi / 96; // according to man xrandr and the docs of gdk_screen_set_resolution 96 is the default +#endif } static gboolean _focus_in_out_event(GtkWidget *widget, GdkEvent *event, gpointer user_data) @@ -1377,6 +1462,22 @@ return TRUE; } +static GtkWidget *_init_outer_border(gint width, gint height, gint which) +{ + GtkWidget *widget = gtk_drawing_area_new(); + gtk_widget_set_size_request(widget, width, height); + gtk_widget_set_app_paintable(widget, TRUE); + gtk_widget_set_events(widget, GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_STRUCTURE_MASK + | darktable.gui->scroll_mask); + g_signal_connect(widget, "draw", G_CALLBACK(_draw_borders), GINT_TO_POINTER(which)); + g_signal_connect(widget, "button-press-event", G_CALLBACK(_borders_button_pressed), GINT_TO_POINTER(which)); + gtk_widget_set_name(GTK_WIDGET(widget), "outer-border"); + gtk_widget_show(widget); + + return widget; +} + static void _init_widgets(dt_gui_gtk_t *gui) { @@ -1413,31 +1514,15 @@ container = widget; // Initializing the top border - widget = gtk_drawing_area_new(); - gui->widgets.top_border = widget; - gtk_box_pack_start(GTK_BOX(container), widget, FALSE, TRUE, 0); - gtk_widget_set_size_request(widget, -1, DT_PIXEL_APPLY_DPI(10)); - gtk_widget_set_app_paintable(widget, TRUE); - gtk_widget_set_events(widget, GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_STRUCTURE_MASK - | darktable.gui->scroll_mask); - gtk_widget_set_name(GTK_WIDGET(widget), "outer-border"); - gtk_widget_show(widget); + gui->widgets.top_border = _init_outer_border(-1, DT_PIXEL_APPLY_DPI(10), DT_UI_BORDER_TOP); + gtk_box_pack_start(GTK_BOX(container), gui->widgets.top_border, FALSE, TRUE, 0); // Initializing the main table _init_main_table(container); // Initializing the bottom border - widget = gtk_drawing_area_new(); - gui->widgets.bottom_border = widget; - gtk_box_pack_start(GTK_BOX(container), widget, FALSE, TRUE, 0); - gtk_widget_set_size_request(widget, -1, DT_PIXEL_APPLY_DPI(10)); - gtk_widget_set_app_paintable(widget, TRUE); - gtk_widget_set_events(widget, GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_STRUCTURE_MASK - | darktable.gui->scroll_mask); - gtk_widget_set_name(GTK_WIDGET(widget), "outer-border"); - gtk_widget_show(widget); + gui->widgets.bottom_border = _init_outer_border(-1, DT_PIXEL_APPLY_DPI(10), DT_UI_BORDER_BOTTOM); + gtk_box_pack_start(GTK_BOX(container), gui->widgets.bottom_border, FALSE, TRUE, 0); // Showing everything gtk_widget_show_all(dt_ui_main_window(gui->ui)); @@ -1463,28 +1548,12 @@ container = widget; // Adding the left border - widget = gtk_drawing_area_new(); - darktable.gui->widgets.left_border = widget; - gtk_widget_set_size_request(widget, DT_PIXEL_APPLY_DPI(10), -1); - gtk_widget_set_app_paintable(widget, TRUE); - gtk_widget_set_events(widget, GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_STRUCTURE_MASK - | darktable.gui->scroll_mask); - gtk_grid_attach(GTK_GRID(container), widget, 0, 0, 1, 2); - gtk_widget_set_name(GTK_WIDGET(widget), "outer-border"); - gtk_widget_show(widget); + darktable.gui->widgets.left_border = _init_outer_border(DT_PIXEL_APPLY_DPI(10), -1, DT_UI_BORDER_LEFT); + gtk_grid_attach(GTK_GRID(container), darktable.gui->widgets.left_border, 0, 0, 1, 2); // Adding the right border - widget = gtk_drawing_area_new(); - darktable.gui->widgets.right_border = widget; - gtk_widget_set_size_request(widget, DT_PIXEL_APPLY_DPI(10), -1); - gtk_widget_set_app_paintable(widget, TRUE); - gtk_widget_set_events(widget, GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_STRUCTURE_MASK - | darktable.gui->scroll_mask); - gtk_grid_attach(GTK_GRID(container), widget, 4, 0, 1, 2); - gtk_widget_set_name(GTK_WIDGET(widget), "outer-border"); - gtk_widget_show(widget); + darktable.gui->widgets.right_border = _init_outer_border(DT_PIXEL_APPLY_DPI(10), -1, DT_UI_BORDER_RIGHT);; + gtk_grid_attach(GTK_GRID(container), darktable.gui->widgets.right_border, 4, 0, 1, 2); /* initialize the top container */ _ui_init_panel_top(darktable.gui->ui, container); @@ -1742,17 +1811,21 @@ /* update scrollbars for current view */ const dt_view_t *cv = dt_view_manager_get_current_view(darktable.view_manager); - if(cv->vscroll_size > cv->vscroll_viewport_size){ + ++darktable.gui->reset; + if(cv->vscroll_size > cv->vscroll_viewport_size) + { gtk_adjustment_configure(gtk_range_get_adjustment(GTK_RANGE(darktable.gui->scrollbars.vscrollbar)), cv->vscroll_pos, cv->vscroll_lower, cv->vscroll_size, 0, cv->vscroll_viewport_size, cv->vscroll_viewport_size); } - if(cv->hscroll_size > cv->hscroll_viewport_size){ + if(cv->hscroll_size > cv->hscroll_viewport_size) + { gtk_adjustment_configure(gtk_range_get_adjustment(GTK_RANGE(darktable.gui->scrollbars.hscrollbar)), cv->hscroll_pos, cv->hscroll_lower, cv->hscroll_size, 0, cv->hscroll_viewport_size, cv->hscroll_viewport_size); } + --darktable.gui->reset; gtk_widget_set_visible(darktable.gui->scrollbars.vscrollbar, cv->vscroll_size > cv->vscroll_viewport_size); gtk_widget_set_visible(darktable.gui->scrollbars.hscrollbar, cv->hscroll_size > cv->hscroll_viewport_size); @@ -1894,7 +1967,10 @@ if(p == DT_UI_PANEL_LEFT || p == DT_UI_PANEL_RIGHT || p == DT_UI_PANEL_BOTTOM) { - gtk_widget_set_size_request(ui->panels[p], s, -1); + if(p == DT_UI_PANEL_BOTTOM) + gtk_widget_set_size_request(ui->panels[p], -1, s); + else + gtk_widget_set_size_request(ui->panels[p], s, -1); key = _panels_get_panel_path(p, "_size"); dt_conf_set_int(key, s); g_free(key); @@ -2040,30 +2116,24 @@ { gint sx = gtk_widget_get_allocated_width(widget), sy = gtk_widget_get_allocated_height(widget); - // conf entry to store the new size - gchar *key = NULL; if(strcmp(gtk_widget_get_name(w), "panel-handle-right") == 0) { sx += darktable.gui->widgets.panel_handle_x - e->x; - key = _panels_get_panel_path(DT_UI_PANEL_RIGHT, "_size"); + dt_ui_panel_set_size(darktable.gui->ui, DT_UI_PANEL_RIGHT, sx); } else if(strcmp(gtk_widget_get_name(w), "panel-handle-left") == 0) { sx -= darktable.gui->widgets.panel_handle_x - e->x; - key = _panels_get_panel_path(DT_UI_PANEL_LEFT, "_size"); + dt_ui_panel_set_size(darktable.gui->ui, DT_UI_PANEL_LEFT, sx); } else if(strcmp(gtk_widget_get_name(w), "panel-handle-bottom") == 0) { sx = CLAMP((sy + darktable.gui->widgets.panel_handle_y - e->y), dt_conf_get_int("min_panel_height"), dt_conf_get_int("max_panel_height")); - key = _panels_get_panel_path(DT_UI_PANEL_BOTTOM, "_size"); + dt_ui_panel_set_size(darktable.gui->ui, DT_UI_PANEL_BOTTOM, sx); gtk_widget_set_size_request(widget, -1, sx); } - // we store and apply the new value - dt_conf_set_int(key, sx); - g_free(key); - gtk_widget_queue_resize(widget); return TRUE; } @@ -2414,7 +2484,7 @@ if(no_text) { - button = gtk_button_new_with_label(no_text); + button = gtk_button_new_with_mnemonic(no_text); result.button_no = button; g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(_yes_no_button_handler), &result); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); @@ -2422,7 +2492,7 @@ if(yes_text) { - button = gtk_button_new_with_label(yes_text); + button = gtk_button_new_with_mnemonic(yes_text); result.button_yes = button; g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(_yes_no_button_handler), &result); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); @@ -2609,7 +2679,6 @@ gchar *help_url = dt_gui_get_help_url(widget); if(help_url && *help_url) { - GtkWidget *win = dt_ui_main_window(darktable.gui->ui); dt_print(DT_DEBUG_CONTROL, "[context help] opening `%s'\n", help_url); char *base_url = _get_base_url(); @@ -2658,12 +2727,11 @@ if(base_url) { char *lang = "en"; - GError *error = NULL; // array of languages the usermanual supports. // NULL MUST remain the last element of the array const char *supported_languages[] = - { "en", "fr", "de", "eo", "es", "gl", "it", "pl", "pt-br", "uk", NULL }; + { "en", "fr", "de", "eo", "es", "gl", "it", "nl", "pl", "pt-br", "uk", NULL }; int lang_index = 0; gboolean is_language_supported = FALSE; @@ -2708,23 +2776,10 @@ char *url = g_build_path("/", base_url, supported_languages[lang_index], help_url, NULL); - // TODO: call the web browser directly so that file:// style base for local installs works - const gboolean uri_success = gtk_show_uri_on_window(GTK_WINDOW(win), url, gtk_get_current_event_time(), &error); + dt_open_url(url); + g_free(base_url); g_free(url); - if(uri_success) - { - dt_control_log(_("help url opened in web browser")); - } - else - { - dt_control_log(_("error while opening help url in web browser")); - if(error != NULL) // uri_success being FALSE should guarantee that - { - fprintf (stderr, "unable to read file: %s\n", error->message); - g_error_free (error); - } - } } } else @@ -3160,6 +3215,11 @@ DT_ACTION_ELEMENTS_NUM(tabs), NULL, TRUE }; +static void _get_height_if_visible(GtkWidget *w, gint *height) +{ + if(gtk_widget_get_visible(w)) *height = gtk_widget_get_allocated_height(w); +} + static gint _get_container_row_heigth(GtkWidget *w) { gint height = DT_PIXEL_APPLY_DPI(10); @@ -3188,13 +3248,7 @@ g_object_unref(layout); } else - { - GtkWidget *child = dt_gui_container_first_child(GTK_CONTAINER(w)); - if(child) - { - height = gtk_widget_get_allocated_height(child); - } - } + gtk_container_foreach(GTK_CONTAINER(w), (GtkCallback)_get_height_if_visible, &height); return height; } @@ -3226,14 +3280,17 @@ height += increment - 1; height -= height % increment; - GtkBorder padding; - gtk_style_context_get_padding(gtk_widget_get_style_context(sw), - gtk_widget_get_state_flags(sw), + GtkBorder padding, margin; + gtk_style_context_get_padding(gtk_widget_get_style_context(w), + gtk_widget_get_state_flags(w), &padding); + gtk_style_context_get_margin(gtk_widget_get_style_context(sw), + gtk_widget_get_state_flags(sw), + &margin); gint old_height = 0; gtk_widget_get_size_request(sw, NULL, &old_height); - const gint new_height = height + padding.top + padding.bottom + (GTK_IS_TEXT_VIEW(w) ? 2 : 0); + const gint new_height = height + padding.top + padding.bottom + margin.top + margin.bottom; if(new_height != old_height) { gtk_widget_set_size_request(sw, -1, new_height); @@ -3256,7 +3313,7 @@ int delta_y = 0; - dt_gui_get_scroll_unit_deltas(event, NULL, &delta_y); + dt_gui_get_scroll_unit_delta(event, &delta_y); if(dt_modifier_is(event->state, GDK_SHIFT_MASK | GDK_MOD1_MASK)) { @@ -3288,7 +3345,7 @@ if(dt_modifier_is(event->state, GDK_SHIFT_MASK | GDK_MOD1_MASK)) { int delta_y; - if(dt_gui_get_scroll_unit_deltas(event, NULL, &delta_y)) + if(dt_gui_get_scroll_unit_delta(event, &delta_y)) { //adjust aspect const int aspect = dt_conf_get_int(config_str); @@ -3545,14 +3602,16 @@ dt_conf_set_bool(cs->confname, active); } -static void _collapse_expander_click(GtkWidget *widget, GdkEventButton *e, gpointer user_data) +static gboolean _collapse_expander_click(GtkWidget *widget, GdkEventButton *e, gpointer user_data) { - if(e->type == GDK_2BUTTON_PRESS || e->type == GDK_3BUTTON_PRESS) return; + if(e->button != 1) return FALSE; dt_gui_collapsible_section_t *cs = (dt_gui_collapsible_section_t *)user_data; const gboolean active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(cs->toggle)); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cs->toggle), !active); + + return TRUE; } void dt_gui_update_collapsible_section(dt_gui_collapsible_section_t *cs) @@ -3609,7 +3668,7 @@ g_signal_connect(G_OBJECT(cs->toggle), "toggled", G_CALLBACK(_collapse_button_changed), cs); - g_signal_connect(G_OBJECT(header_evb), "button-release-event", + g_signal_connect(G_OBJECT(header_evb), "button-press-event", G_CALLBACK(_collapse_expander_click), cs); } diff -Nru darktable-4.4.2/src/gui/gtk.h darktable-4.6.1/src/gui/gtk.h --- darktable-4.4.2/src/gui/gtk.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/gui/gtk.h 2024-02-16 17:31:09.000000000 +0000 @@ -36,6 +36,8 @@ * DPI */ #define DT_PIXEL_APPLY_DPI(value) ((value) * darktable.gui->dpi_factor) +#define DT_RESIZE_HANDLE_SIZE DT_PIXEL_APPLY_DPI(5) + typedef struct dt_gui_widgets_t { @@ -60,7 +62,6 @@ GtkWidget *hscrollbar; gboolean visible; - gboolean dragging; } dt_gui_scrollbars_t; typedef enum dt_gui_color_t @@ -143,8 +144,7 @@ gint scroll_mask; guint sidebar_scroll_mask; - cairo_filter_t filter_image; // filtering used for all modules expect darkroom - cairo_filter_t dr_filter_image; // filtering used in the darkroom + cairo_filter_t filter_image; // filtering used to scale images to screen dt_pthread_mutex_t mutex; } dt_gui_gtk_t; @@ -199,6 +199,7 @@ void dt_gui_add_class(GtkWidget *widget, const gchar *class_name); void dt_gui_remove_class(GtkWidget *widget, const gchar *class_name); +void dt_open_url(const char *url); int dt_gui_gtk_init(dt_gui_gtk_t *gui); void dt_gui_gtk_run(dt_gui_gtk_t *gui); void dt_gui_gtk_cleanup(dt_gui_gtk_t *gui); @@ -209,6 +210,7 @@ void dt_gui_gtk_set_source_rgb(cairo_t *cr, dt_gui_color_t); void dt_gui_gtk_set_source_rgba(cairo_t *cr, dt_gui_color_t, float opacity_coef); double dt_get_system_gui_ppd(GtkWidget *widget); +double dt_get_screen_resolution(GtkWidget *widget); /* Check sidebar_scroll_default and modifier keys to determine if scroll event * should be processed by control or by panel. If default is panel scroll but diff -Nru darktable-4.4.2/src/gui/gtkentry.c darktable-4.6.1/src/gui/gtkentry.c --- darktable-4.4.2/src/gui/gtkentry.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/gui/gtkentry.c 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2012-2022 darktable developers. + Copyright (C) 2012-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -15,6 +15,7 @@ You should have received a copy of the GNU General Public License along with darktable. If not, see <http://www.gnu.org/licenses/>. */ + #include "gtkentry.h" #include "common/darktable.h" @@ -214,7 +215,9 @@ { "EXIF.EXPOSURE", N_("$(EXIF.EXPOSURE) - EXIF exposure") }, { "EXIF.EXPOSURE.BIAS", N_("$(EXIF.EXPOSURE.BIAS) - EXIF exposure bias") }, { "EXIF.APERTURE", N_("$(EXIF.APERTURE) - EXIF aperture") }, + { "EXIF.CROP_FACTOR", N_("$(EXIF.CROP_FACTOR) - EXIF crop factor") }, { "EXIF.FOCAL.LENGTH", N_("$(EXIF.FOCAL.LENGTH) - EXIF focal length") }, + { "EXIF.FOCAL.LENGTH.EQUIV", N_("$(EXIF.FOCAL.LENGTH.EQUIV) - EXIF 35 mm equivalent focal length") }, { "EXIF.FOCUS.DISTANCE", N_("$(EXIF.FOCUS.DISTANCE) - EXIF focal distance") }, { "EXIF.MAKER", N_("$(EXIF.MAKER) - camera maker") }, { "EXIF.MODEL", N_("$(EXIF.MODEL) - camera model") }, @@ -279,4 +282,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/gui/guides.c darktable-4.6.1/src/gui/guides.c --- darktable-4.4.2/src/gui/guides.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/gui/guides.c 2024-02-16 17:31:09.000000000 +0000 @@ -772,7 +772,7 @@ { const double dashes = DT_PIXEL_APPLY_DPI(5.0) / zoom_scale; - dt_iop_module_t *module = darktable.develop->gui_module; + dt_iop_module_t *module = dt_dev_gui_module(); // first, we check if we need to show the guides or not gchar *key = _conf_get_path("global", "show", NULL); diff -Nru darktable-4.4.2/src/gui/legacy_presets.h darktable-4.6.1/src/gui/legacy_presets.h --- darktable-4.4.2/src/gui/legacy_presets.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/gui/legacy_presets.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,1135 +0,0 @@ -/* - This file is part of darktable, - Copyright (C) 2012-2020 darktable developers. - - darktable is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - darktable is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with darktable. If not, see <http://www.gnu.org/licenses/>. -*/ - -#pragma once - -#include "common/database.h" - -static const char *sql_lines[] = { - "BEGIN TRANSACTION;", - "DROP TABLE IF EXISTS main.legacy_presets" // fails first time, but doesn't hurt. - , - "CREATE TABLE main.legacy_presets (name varchar, description varchar, operation varchar, op_version integer, " - "op_params blob, enabled integer, blendop_params blob, blendop_version integer, multi_priority integer, " - "multi_name varchar, model varchar, maker varchar, lens varchar, iso_min real, iso_max real, exposure_min " - "real, exposure_max real, aperture_min real, aperture_max real, focal_length_min real, focal_length_max " - "real, writeprotect integer, autoapply integer, filter integer, def integer, format integer);", - "INSERT INTO main.legacy_presets VALUES('red " - "filter','','monochrome',2,X'000000420000804233331340A97F0000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('red black " - "white','','colorzones',1,X'" - "0200000000000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F000000000000403E0000003F5C8F023F0000703F0000803F00" - "000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F0000003F0000003F0000003F0000003F0000003F0000003F6666263F0000" - "00000000000000000000000000006666263F0000003F0000003F0000003F0000003F0000003F0000003F',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('black white and skin " - "tones','','colorzones',1,X'" - "0200000000000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3E0000803E9A99193FCDCC4C3F0000803F00" - "000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F0000003F0000003F0000003F0000003F0000003F0000003F0000003F9A99" - "993E0000000000000000000000000000003F0000003F0000003F0000003F0000003F0000003F0000003F',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('polarizing " - "filter','','colorzones',1,X'" - "0100000000000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00" - "000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F0000003F0000003F0000003F2222E23E6666A63E5555553E0000003F0000" - "003F0000083F0000183F0000283F0000383F0000003F0000003F0000003F0000003F0000003F0000003F',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('natural skin " - "tones','','colorzones',1,X'" - "0200000000000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000D313F63DF7037E3E0000003FFE803F3F0000803F00" - "000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F0000003F0000003F0000003F0000003F0000003F0000003FDB17F03ED656" - "E43EDB17F03E5AD4FF3E0000003FDB17F03E0000003F0000003F0000003F0000003F0000003F0000003F',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('black & white " - "film','','colorzones',1,X'" - "0200000000000000772B7B3EAB08FF3EEF39243F3316613F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00" - "000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F30F01C3F465BE53EB779073F473B2A3FBDFC463F30F01C3F000000000000" - "0000000000000000000000000000000000000000003F0000003F0000003F0000003F0000003F0000003F',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('fill-light 0.25EV with 4 " - "zones','','relight',1,X'0000803E0000803E00008040',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('fill-shadow -0.25EV with 4 " - "zones','','relight',1,X'000080BE0000803E00008040',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets " - "VALUES('daylight','','lowlight',1,X'" - "0000000000000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F0000803F0000803F0000803F0000803F0000803F0000803F'," - "1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('indoor " - "bright','','lowlight',1,X'" - "0000F04100000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F9A99193FCDCC4C3F3333733F48E17A3F0000803F0000803F'," - "1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('indoor " - "dim','','lowlight',1,X'" - "0000F04100000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F9A99993E0000003F3333333F9A99593FEC51783F0000803F'," - "1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('indoor " - "dark','','lowlight',1,X'" - "0000204200000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803FCDCC4C3DCDCC4C3ECDCCCC3E3333333F1F856B3F0000803F'," - "1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets " - "VALUES('twilight','','lowlight',1,X'" - "0000484200000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F295C8F3DCDCCCC3DEC51383E3333B33E0000403F0000803F'," - "1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('night street " - "lit','','lowlight',1,X'" - "0000F04100000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F000000006666E63E0000403F7B146E3FA4707D3F0000803F'," - "1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('night " - "street','','lowlight',1,X'" - "0000F04100000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F000000009A99193E3333B33ECDCC4C3FEC51783F0000803F'," - "1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('night street " - "dark','','lowlight',1,X'" - "00002042000000009A99193ECDCCCC3E9A99193FCDCC4C3F0000803F000000000AD7A33CCDCC4C3DCDCC4C3ECDCC0C3F0000803F'," - "1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets " - "VALUES('night','','lowlight',1,X'" - "0000484200000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F000000000000000000000000000000000000000000000000'," - "1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('low " - "contrast','','tonecurve',3,X'" - "00000000000000009C197D3B2600FF3B47E79C3D2DEE1F3E666B2D3E04A9943E9431463F2A1B463F0000803F0000803F0000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000AD7A33D0AD7A33D9A99993E9A99993E0000003F0000003F3333333F3333333F1F856B3F1F856B3F0000803F" - "0000803F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000000000000000000AD7A33D0AD7A33D9A99993E9A99993E0000003F0000003F3333333F3333333F1F856B3F1F856B3F000080" - "3F0000803F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000600000007000000070000000000000000000000000000000100000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets " - "VALUES('linear','','tonecurve',3,X'" - "00000000000000000AD7A33D0AD7A33DCDCCCC3ECDCCCC3E9A99193F9A99193F1F856B3F1F856B3F0000803F0000803F0000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000AD7A33D0AD7A33D9A99993E9A99993E0000003F0000003F3333333F3333333F1F856B3F1F856B3F0000803F" - "0000803F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000000000000000000AD7A33D0AD7A33D9A99993E9A99993E0000003F0000003F3333333F3333333F1F856B3F1F856B3F000080" - "3F0000803F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000600000007000000070000000000000000000000000000000100000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('med " - "contrast','','tonecurve',3,X'" - "000000000000000077177D3BF5FCB33AD067083E03D0E53D3F6BA63EA846B93E5018553F94AE643F0000803F0000803F0000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000AD7A33D0AD7A33D9A99993E9A99993E0000003F0000003F3333333F3333333F1F856B3F1F856B3F0000803F" - "0000803F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000000000000000000AD7A33D0AD7A33D9A99993E9A99993E0000003F0000003F3333333F3333333F1F856B3F1F856B3F000080" - "3F0000803F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000600000007000000070000000000000000000000000000000100000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('high " - "contrast','','tonecurve',3,X'" - "000000000000000077177D3BBCCE3F39D067083E48E0903D3F6BA63E5F9BE93E5018553FFADE743F0000803F0000803F0000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000AD7A33D0AD7A33D9A99993E9A99993E0000003F0000003F3333333F3333333F1F856B3F1F856B3F0000803F" - "0000803F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000000000000000000AD7A33D0AD7A33D9A99993E9A99993E0000003F0000003F3333333F3333333F1F856B3F1F856B3F000080" - "3F0000803F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000600000007000000070000000000000000000000000000000100000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('neutral grey ND2 " - "(soft)','','graduatednd',1,X'0000803F0000000000000000000048420000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('neutral grey ND4 " - "(soft)','','graduatednd',1,X'000000400000000000000000000048420000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('neutral grey ND8 " - "(soft)','','graduatednd',1,X'000040400000000000000000000048420000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('neutral grey ND2 " - "(hard)','','graduatednd',1,X'0000803F0000964200000000000048420000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('neutral grey ND4 " - "(hard)','','graduatednd',1,X'000000400000964200000000000048420000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('neutral grey ND8 " - "(hard)','','graduatednd',1,X'000040400000964200000000000048420000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('orange ND2 " - "(soft)','','graduatednd',1,X'0000803F0000000000000000000048428ACBD13DCDCC4C3F',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('yellow ND2 " - "(soft)','','graduatednd',1,X'0000803F0000000000000000000048426AD91A3E0000003F',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('purple ND2 " - "(soft)','','graduatednd',1,X'0000803F000000000000000000004842390B533F0000003F',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('green ND2 " - "(soft)','','graduatednd',1,X'0000803F00000000000000000000484249D99A3E0000003F',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('red ND2 " - "(soft)','','graduatednd',1,X'0000803F000000000000000000004842000000000000003F',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('blue ND2 " - "(soft)','','graduatednd',1,X'0000803F00000000000000000000484291D5293F0000003F',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('brown ND4 " - "(soft)','','graduatednd',1,X'00000040000000000000000000004842A2D5A93D0000803E',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('authentic " - "sepia','','splittoning',1,X'3FE9933D1F856B3F398EE33D1F856B3FAE47213F00000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('authentic " - "cyanotype','','splittoning',1,X'C7711C3F0AD7233FC7711C3F0AD7233F000000003D0AA740',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('authentic " - "platinotype','','splittoning',1,X'3FE9133D3D0AD73E3FE9133D3D0AD73E0000C84200000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('chocolate " - "brown','','splittoning',1,X'F5499F3D14AEC73EF5499F3D0AD7A33D9A99193F00000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('swap R and " - "B','','channelmixer',1,X'" - "00000000000000000000000000000000000000000000803F00000000000000000000000000000000000000000000803F0000000000" - "0000000000000000000000000000000000803F000000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('swap G and " - "B','','channelmixer',1,X'" - "0000000000000000000000000000803F00000000000000000000000000000000000000000000000000000000000000000000803F00" - "000000000000000000000000000000000000000000803F0000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('color contrast " - "boost','','channelmixer',1,X'" - "0000000000000000CDCC4C3F0000803F0000000000000000000000000000000000000000CDCCCC3D000000000000803F0000000000" - "0000000000000000000000CDCCCC3D00000000000000000000803F00000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('color details " - "boost','','channelmixer',1,X'" - "0000000000000000CDCCCC3D0000803F0000000000000000000000000000000000000000CDCC4C3F000000000000803F0000000000" - "0000000000000000000000CDCCCC3D00000000000000000000803F00000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('color artifacts " - "boost','','channelmixer',1,X'" - "0000000000000000CDCCCC3D0000803F0000000000000000000000000000000000000000CDCCCC3D000000000000803F0000000000" - "0000000000000000000000CDCC4C3F00000000000000000000803F00000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets " - "VALUES('b/" - "w','','channelmixer',1,X'" - "0000000000000000000000000000803F00000000000000003D0A573E000000000000000000000000000000000000803F00000000EC" - "51383F00000000000000000000000000000000000000000000803F295C8F3D',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('b/w artifacts " - "boost','','channelmixer',1,X'" - "0000000000000000000000000000803F0000000000000000CDCC8CBE000000000000000000000000000000000000803F00000000CD" - "CC8CBE00000000000000000000000000000000000000000000803F3333A33F',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('b/w smooth " - "skin','','channelmixer',1,X'" - "0000000000000000000000000000803F00000000000000000000803F00000000000000000000000000000000000000000000803F66" - "66A63E000000000000000000000000000000000000000000000000CDCCCCBE',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('b/w blue artifacts " - "reduce','','channelmixer',1,X'" - "000000000000000000000000000000000000000000000000CDCCCC3E00000000000000000000000000000000000000000000000000" - "00403F0000000000000000000000000000000000000000000000009A9919BE',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('flip " - "horizontally','','flip',1,X'01000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('flip " - "vertically','','flip',1,X'02000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('rotate by " - "-90','','flip',1,X'06000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('rotate by " - "90','','flip',1,X'05000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('rotate by " - "180','','flip',1,X'03000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('warming " - "filter','','colorcorrection',1,X'333373BF0000904033336340000000000000803F',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('cooling " - "filter','','colorcorrection',1,X'3333733F000090C0333363C0000000800000803F',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('local contrast " - "mask','','lowpass',1,X'0000000000004842000080BF00000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('dark " - "contrast','','basecurve',2,X'" - "000000000000000059A5943D0AD7233D3E08213EFF090E3EE8DEFB3EE8DEFB3E8C10423F8C10423F0000803F0000803F0000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000060000000000000000000000020000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%%','%%','%%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,2);", - "INSERT INTO main.legacy_presets VALUES('canon eos " - "like','','basecurve',2,X'" - "0000000000000000363AE73C2E1DF33C12BEF73D0BD56D3EC95AEB3E78613F3FF8DE5B3FF1BD773F0000803F0000803F0000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000060000000000000000000000020000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' " - "','%%','%Canon%','%%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,1,0,0,2);", - "INSERT INTO main.legacy_presets VALUES('canon eos like " - "alternate','','basecurve',2,X'" - "00000000000000005BB6D63C2E1DF33CC2F7DE3D0BD56D3ED89CB33E78613F3FD95A2B3FF1BD773F0000803F0000803F0000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000060000000000000000000000020000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' " - "','%DISABLED%','%Canon%','%%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,1,0,0,2);", - "INSERT INTO main.legacy_presets VALUES('nikon " - "like','','basecurve',2,X'" - "0000000000000000D3A4143D94A2153D12BEF73D14B4693EC95AEB3E427A423FF8DE5B3F8FC47B3F0000803F0000803F0000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000060000000000000000000000020000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' " - "','%%','%NIKON%','%%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,1,0,0,2);", - "INSERT INTO main.legacy_presets VALUES('nikon like " - "alternate','','basecurve',2,X'" - "00000000000000006F12833AACC52737363A673DF855993DF1BDB73E0C93253FF1BD373FBD8A743F0000803F0000803F0000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000060000000000000000000000020000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' " - "','%DISABLED%','%NIKON%','%%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,1,0,0,2);", - "INSERT INTO main.legacy_presets VALUES('sony alpha " - "like','','basecurve',2,X'" - "0000000000000000F4DC023D94A2153D35ECD73D14B4693E7077DE3E427A423FA5115B3F8FC47B3F0000803F0000803F0000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000060000000000000000000000020000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' " - "','%%','%SONY%','%%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,1,0,0,2);", - "INSERT INTO main.legacy_presets VALUES('pentax " - "like','','basecurve',2,X'" - "0000000000000000F720043D8D7DC93C12BEF73DBE692A3E9A94523EB134A83EBBD61A3FA6484A3F0000803F0000803F0000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000060000000000000000000000020000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' " - "','%%','%PENTAX%','%%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,1,0,0,2);", - "INSERT INTO main.legacy_presets VALUES('ricoh " - "like','','basecurve',2,X'" - "00000000000000000322043D8D7DC93C12BEF73DBE692A3E9A94523EB134A83EBBD61A3FA6484A3F0000803F0000803F0000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000060000000000000000000000020000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' " - "','%%','%RICOH%','%%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,1,0,0,2);", - "INSERT INTO main.legacy_presets VALUES('olympus " - "like','','basecurve',2,X'" - "00000000000000007F32463C9B1D293C9E7BEF3D8FC42B3EA3730E3F2B17363F9431663F73F4743F0000803F0000803F0000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000060000000000000000000000020000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' " - "','%%','%OLYMPUS%','%%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,1,0,0,2);", - "INSERT INTO main.legacy_presets VALUES('olympus like " - "alternate','','basecurve',2,X'" - "00000000000000007F32463C9B1D293C59A5943D8FC42B3EC2F79E3E2B17363F4529253F73F4743F0000803F0000803F0000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000060000000000000000000000020000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' " - "','%DISABLED%','%OLYMPUS%','%%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,1,0,0,2);", - "INSERT INTO main.legacy_presets VALUES('panasonic " - "like','','basecurve',2,X'" - "0000000000000000D3A4143D8D7DC93C12BEF73DBE692A3E9A94523EB134A83EBBD61A3FA6484A3F0000803F0000803F0000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000060000000000000000000000020000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' " - "','%%','%Panasonic%','%%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,1,0,0,2);", - "INSERT INTO main.legacy_presets VALUES('leica " - "like','','basecurve',2,X'" - "0000000000000000DFA5143D8D7DC93C12BEF73DBE692A3E9A94523EB134A83EBBD61A3FA6484A3F0000803F0000803F0000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000060000000000000000000000020000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%%','%Leica Camera " - "AG%','%%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,1,0,0,2);", - "INSERT INTO main.legacy_presets VALUES('kodak easyshare " - "like','','basecurve',2,X'" - "000000000000000097AD353DFCC2AB3C3142083E96061E3E91B5563E0DC1993EAB94123FDEE3403F0000803F0000803F0000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000060000000000000000000000020000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%%','%EASTMAN KODAK " - "COMPANY%','%%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,1,0,0,2);", - "INSERT INTO main.legacy_presets VALUES('konica minolta " - "like','','basecurve',2,X'" - "0000000000000000AE28A53C9B1D293CB039E73D8FC42B3E0000003F2B17363F9431663F73F4743F0000803F0000803F0000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000060000000000000000000000020000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' " - "','%%','%MINOLTA%','%%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,1,0,0,2);", - "INSERT INTO main.legacy_presets VALUES('samsung " - "like','','basecurve',2,X'" - "0000000000000000BB29253D2E1DF33C3142083E0BD56D3E5629E53E78613F3FF1BD573FF1BD773F0000803F0000803F0000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000060000000000000000000000020000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' " - "','%%','%SAMSUNG%','%%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,1,0,0,2);", - "INSERT INTO main.legacy_presets VALUES('fujifilm " - "like','','basecurve',2,X'" - "0000000000000000363AE73C2E1DF33CD4B5D63D0BD56D3E9431C63E78613F3F3E08413FF1BD773F0000803F0000803F0000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000060000000000000000000000020000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' " - "','%%','%FUJIFILM%','%%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,1,0,0,2);", - "INSERT INTO main.legacy_presets VALUES('fotogenetic (point & " - "shoot)','','basecurve',2,X'" - "0000000000000000E8F9B33D0F42003EE8F9333E3142803E8A02B53E3142003F28D71C3FE8DE3F3F0000803F1767603F0000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000060000000000000000000000020000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%%','%%','%%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,2);", - "INSERT INTO main.legacy_presets VALUES('fotogenetic " - "(EV3)','','basecurve',2,X'" - "000000000000000034BBCE3D0F42003E34BB4E3E3142803EFC1D9A3E1E6CC13E55DECE3E93C6003F0000803FDE73603F0000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000060000000000000000000000020000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%%','%%','%%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,2);", - "INSERT INTO main.legacy_presets VALUES('15:10 postcard " - "white','','borders',2,X'" - "0000803F0000803F0000803F0000C03F333A32000000000000000000000000000000000000000000CDCCCC3D0000003F312F320000" - "0000000000000000000000000000000000003F312F320000000000000000000000000000000000000000000000003F000000000000" - "000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('15:10 postcard " - "black','','borders',2,X'" - "0000000000000000000000000000C03F333A32000000000000000000000000000000000000000000CDCCCC3D0000003F312F320000" - "0000000000000000000000000000000000003F312F320000000000000000000000000000000000000000000000003F0000803F0000" - "803F0000803F',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('enhance " - "coarse','','atrous',1,X'" - "0700000000000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00" - "000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC" - "4C3ECDCCCC3E9A99193FCDCC4C3F0000803F0000403F6666263FCDCC0C3F0000003F0000003F0000003FCDCC0C3F0000003F000000" - "3F0000003F0000003F0000003FCDCC4C3E713D8A3E7B14AE3E85EBD13E8FC2F53E0000003F00000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('sharpen and denoise " - "(strong)','','atrous',1,X'" - "0700000000000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00" - "000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC" - "4C3ECDCCCC3E9A99193FCDCC4C3F0000803F0000003F5555153FABAA2A3F0000403F5655553FABAA6A3F0000003F0000003F000000" - "3F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F000000008988883D8988083ECECC4C3E" - "8988883EABAAAA3E00000000CECCCC3DCECC4C3E9A99993ECECCCC3E0100003F',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('sharpen and " - "denoise','','atrous',1,X'" - "0700000000000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00" - "000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC" - "4C3ECDCCCC3E9A99193FCDCC4C3F0000803F0000003FABAA0A3F5555153F0000203FABAA2A3F5655353F0000003F0000003F000000" - "3F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F000000008988083D8988883DCECCCC3D" - "8988083EABAA2A3E00000000CECC4C3DCECCCC3D9A99193ECECC4C3E0100803E',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('sharpen " - "(strong)','','atrous',1,X'" - "0700000000000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00" - "000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC" - "4C3ECDCCCC3E9A99193FCDCC4C3F0000803F0000003F5555153FABAA2A3F0000403F5655553FABAA6A3F0000003F0000003F000000" - "3F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F00000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets " - "VALUES('sharpen','','atrous',1,X'" - "0700000000000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00" - "000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC" - "4C3ECDCCCC3E9A99193FCDCC4C3F0000803F0000003FABAA0A3F5555153F0000203FABAA2A3F5655353F0000003F0000003F000000" - "3F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F00000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('chroma " - "denoise','','atrous',1,X'" - "0700000000000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00" - "000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC" - "4C3ECDCCCC3E9A99193FCDCC4C3F0000803F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F000000" - "3F0000003F0000003F0000003F00000000000000000000000000000000000000000000000000000000000000000000000000000000" - "000000000000000000000000CECC4C3DCECCCC3D9A99193ECECC4C3E0100803E',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('denoise " - "(subtle)','','atrous',1,X'" - "0700000000000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00" - "000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC" - "4C3ECDCCCC3E9A99193FCDCC4C3F0000803F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F000000" - "3F0000003F0000003F0000003F00000000000000000000000000000000000000000000000000000000000000000000000000000000" - "D0CC4C3DD0CCCC3D00000000CECC4C3DCECCCC3D9A99193ECECC4C3E0100803E',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets " - "VALUES('denoise','','atrous',1,X'" - "0700000000000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00" - "000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC" - "4C3ECDCCCC3E9A99193FCDCC4C3F0000803F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F000000" - "3F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F000000008988083D8988883DCECCCC3D" - "8988083EABAA2A3E00000000CECC4C3DCECCCC3D9A99193ECECC4C3E0100803E',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('denoise " - "(strong)','','atrous',1,X'" - "0700000000000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00" - "000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC" - "4C3ECDCCCC3E9A99193FCDCC4C3F0000803F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F000000" - "3F0000003F0000003F0000003F0000003F0000003F0000003F0000003F3D0AD73E00000000000000008988883D8988083ECECC4C3E" - "8988883EABAAAA3E000000008988083E8988883ECECCCC3E0000003F0000003F',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets " - "VALUES('bloom','','atrous',1,X'" - "0700000000000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00" - "000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC" - "4C3ECDCCCC3E9A99193FCDCC4C3F0000803F0000003FA470BD3EAE47E13E0000003F0000003F0000003F0000003F0000003F000000" - "3F0000003F0000003F0000003F00000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('clarity " - "(subtle)','','atrous',1,X'" - "0700000000000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00" - "000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC" - "4C3ECDCCCC3E9A99193FCDCC4C3F0000803FCDCC0C3FCDCC0C3FCDCC0C3FCDCC0C3FCDCC0C3FCDCC0C3F0000003F0000003F000000" - "3F0000003F0000003F0000003F00000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets " - "VALUES('clarity','','atrous',1,X'" - "0700000000000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00" - "000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC4C3ECDCCCC3E9A99193FCDCC4C3F0000803F00000000CDCC" - "4C3ECDCCCC3E9A99193FCDCC4C3F0000803F9A99193F9A99193F9A99193F9A99193F9A99193F9A99193FCDCC0C3FCDCC0C3FCDCC0C" - "3FCDCC0C3FCDCC0C3FCDCC0C3F00000000000000000000000000000000000000000000000000000000000000000000000000000000" - "0000000000000000000000000000000000000000000000000000000000000000',1,X'" - "000000000000C842000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000" - "803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F000080" - "3F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000" - "000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000000000" - "00803F0000803F',3,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets " - "VALUES('CC-by','','metadata',1,X'" - "0000437265617469766520436F6D6D6F6E73204174747269627574696F6E202843432D425929000000',1,NULL,0,0,' " - "','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets " - "VALUES('CC-by-sa','','metadata',1,X'" - "0000437265617469766520436F6D6D6F6E73204174747269627574696F6E2D5368617265416C696B65202843432D42592D53412900" - "0000',1,NULL,0,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets " - "VALUES('CC-by-nd','','metadata',1,X'" - "0000437265617469766520436F6D6D6F6E73204174747269627574696F6E2D4E6F446572697673202843432D42592D4E4429000000" - "',1,NULL,0,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets " - "VALUES('CC-by-nc','','metadata',1,X'" - "0000437265617469766520436F6D6D6F6E73204174747269627574696F6E2D4E6F6E436F6D6D65726369616C202843432D42592D4E" - "4329000000',1,NULL,0,0,' ','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets " - "VALUES('CC-by-nc-sa','','metadata',1,X'" - "0000437265617469766520436F6D6D6F6E73204174747269627574696F6E2D4E6F6E436F6D6D65726369616C2D5368617265416C69" - "6B65202843432D42592D4E432D534129000000',1,NULL,0,0,' " - "','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets " - "VALUES('CC-by-nc-nd','','metadata',1,X'" - "0000437265617469766520436F6D6D6F6E73204174747269627574696F6E2D4E6F6E436F6D6D65726369616C2D4E6F446572697673" - "202843432D42592D4E432D4E4429000000',1,NULL,0,0,' " - "','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets VALUES('all rights " - "reserved','','metadata',1,X'0000416C6C207269676874732072657365727665642E000000',1,NULL,0,0,' " - "','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,0,0,0,0);", - "INSERT INTO main.legacy_presets " - "VALUES('sharpen','','sharpen',1,X'000000400000003F0000003F',1,X'" - "000000000000C84200000000000000000000000000000000000000000000803F0000803F00000000000000000000803F0000803F00" - "000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F000000000000" - "00000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F0000000000000000000080" - "3F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F" - "00000000000000000000803F0000803F00000000000000000000803F0000803F00000000000000000000803F0000803F0000000000" - "0000000000803F0000803F',4,0,' " - "','%','%','%',0.0,51200.0,0.0,10000000.0,0.0,100000000.0,0.0,1000.0,1,1,0,0,2);", - "COMMIT" -}; -static const int num_sql_lines = 99; - -void dt_legacy_presets_create(const struct dt_database_t *db) -{ - // a bit stupid, deletes and re-inserts every time :( - for(int i = 0; i < num_sql_lines; i++) - sqlite3_exec(dt_database_get(db), sql_lines[i], NULL, NULL, NULL); -} - -// clang-format off -// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py -// vim: shiftwidth=2 expandtab tabstop=2 cindent -// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; -// clang-format on - diff -Nru darktable-4.4.2/src/gui/preferences.c darktable-4.6.1/src/gui/preferences.c --- darktable-4.4.2/src/gui/preferences.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/gui/preferences.c 2024-02-16 17:31:09.000000000 +0000 @@ -134,7 +134,7 @@ static void theme_callback(GtkWidget *widget, gpointer user_data) { - const int selected = gtk_combo_box_get_active(GTK_COMBO_BOX(widget)); + const int selected = dt_bauhaus_combobox_get(widget); gchar *theme = g_list_nth(darktable.themes, selected)->data; gchar *i = g_strrstr(theme, "."); if(i) *i = '\0'; @@ -230,7 +230,7 @@ static void language_callback(GtkWidget *widget, gpointer user_data) { - int selected = gtk_combo_box_get_active(GTK_COMBO_BOX(widget)); + int selected = dt_bauhaus_combobox_get(widget); dt_l10n_language_t *language = (dt_l10n_language_t *)g_list_nth_data(darktable.l10n->languages, selected); if(darktable.l10n->sys_default == selected) { @@ -249,7 +249,7 @@ { if(event->type == GDK_2BUTTON_PRESS) { - gtk_combo_box_set_active(GTK_COMBO_BOX(widget), darktable.l10n->sys_default); + dt_bauhaus_combobox_set(widget, darktable.l10n->sys_default); return TRUE; } return FALSE; @@ -276,16 +276,17 @@ GtkWidget *labelev = gtk_event_box_new(); gtk_widget_add_events(labelev, GDK_BUTTON_PRESS_MASK); gtk_container_add(GTK_CONTAINER(labelev), label); - GtkWidget *widget = gtk_combo_box_text_new(); + GtkWidget *widget = dt_bauhaus_combobox_new(NULL); + dt_bauhaus_combobox_set_selected_text_align(widget, DT_BAUHAUS_COMBOBOX_ALIGN_LEFT); for(GList *iter = darktable.l10n->languages; iter; iter = g_list_next(iter)) { const char *name = dt_l10n_get_name(iter->data); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widget), name); + dt_bauhaus_combobox_add_aligned(widget, name, DT_BAUHAUS_COMBOBOX_ALIGN_LEFT); } - gtk_combo_box_set_active(GTK_COMBO_BOX(widget), darktable.l10n->selected); - g_signal_connect(G_OBJECT(widget), "changed", G_CALLBACK(language_callback), 0); + dt_bauhaus_combobox_set(widget, darktable.l10n->selected); + g_signal_connect(G_OBJECT(widget), "value-changed", G_CALLBACK(language_callback), 0); gtk_widget_set_tooltip_text(labelev, _("double-click to reset to the system language")); gtk_event_box_set_visible_window(GTK_EVENT_BOX(labelev), FALSE); gtk_widget_set_tooltip_text(widget, _("set the language of the user interface. the system default is marked with an * (needs a restart)")); @@ -299,7 +300,9 @@ label = gtk_label_new(_("theme")); gtk_widget_set_halign(label, GTK_ALIGN_START); - widget = gtk_combo_box_text_new(); + widget = dt_bauhaus_combobox_new(NULL); + dt_bauhaus_combobox_set_selected_text_align(widget, DT_BAUHAUS_COMBOBOX_ALIGN_LEFT); + labelev = gtk_event_box_new(); gtk_widget_add_events(labelev, GDK_BUTTON_PRESS_MASK); gtk_container_add(GTK_CONTAINER(labelev), label); @@ -316,15 +319,15 @@ // remove extension gchar *i = g_strrstr(name, "."); if(i) *i = '\0'; - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widget), name); + dt_bauhaus_combobox_add_aligned(widget, name, DT_BAUHAUS_COMBOBOX_ALIGN_LEFT); if(!g_strcmp0(name, theme_name)) selected = k; k++; } g_free(theme_name); - gtk_combo_box_set_active(GTK_COMBO_BOX(widget), selected); + dt_bauhaus_combobox_set(widget, selected); - g_signal_connect(G_OBJECT(widget), "changed", G_CALLBACK(theme_callback), 0); + g_signal_connect(G_OBJECT(widget), "value-changed", G_CALLBACK(theme_callback), 0); gtk_widget_set_tooltip_text(widget, _("set the theme for the user interface")); //Font size check and spin buttons @@ -527,15 +530,14 @@ //setup tabs init_tab_general(_preferences_dialog, stack, tweak_widgets); - init_tab_import(_preferences_dialog, stack, N_("import")); - init_tab_lighttable(_preferences_dialog, stack, N_("lighttable")); - init_tab_darkroom(_preferences_dialog, stack, N_("darkroom")); - init_tab_processing(_preferences_dialog, stack, N_("processing")); - init_tab_security(_preferences_dialog, stack, N_("security")); - init_tab_storage(_preferences_dialog, stack, N_("storage")); - init_tab_misc(_preferences_dialog, stack, N_("miscellaneous")); + init_tab_generated(_preferences_dialog, stack); init_tab_accels(stack); init_tab_presets(stack); +#ifdef USE_LUA + GtkGrid* lua_grid = init_tab_lua(_preferences_dialog, stack); +#endif + + gtk_widget_show_all(_preferences_dialog); //open in the appropriate tab if currently in darkroom or lighttable view const gchar *current_view = darktable.view_manager->current_view->name(darktable.view_manager->current_view); @@ -544,10 +546,6 @@ gtk_stack_set_visible_child(GTK_STACK(stack), gtk_stack_get_child_by_name(GTK_STACK(stack), current_view)); } -#ifdef USE_LUA - GtkGrid* lua_grid = init_tab_lua(_preferences_dialog, stack); -#endif - gtk_widget_show_all(_preferences_dialog); (void)gtk_dialog_run(GTK_DIALOG(_preferences_dialog)); #ifdef USE_LUA @@ -903,7 +901,8 @@ static void init_tab_accels(GtkWidget *stack) { - gtk_stack_add_titled(GTK_STACK(stack), dt_shortcuts_prefs(NULL), _("shortcuts"), _("shortcuts")); + if(dt_conf_get_bool("accel/show_tab_in_prefs")) + gtk_stack_add_titled(GTK_STACK(stack), dt_shortcuts_prefs(NULL), _("shortcuts"), _("shortcuts")); } static void _delete_line_and_empty_parent(GtkTreeModel *model, GtkTreeIter *iter) @@ -1248,114 +1247,42 @@ static void _gui_preferences_enum_callback(GtkWidget *widget, gpointer data) { - GtkTreeIter iter; - if(gtk_combo_box_get_active_iter(GTK_COMBO_BOX(widget), &iter)) - { - gchar *s = NULL; - gtk_tree_model_get(gtk_combo_box_get_model(GTK_COMBO_BOX(widget)), &iter, 0, &s, -1); - dt_conf_set_string((char *)data, s); - g_free(s); - } + const gchar *index = dt_bauhaus_combobox_get_data(widget); + gchar *s = g_strndup(index, strchr(index, ']') - index); + dt_conf_set_string(data, s); + g_free(s); } -void _gui_preferences_enum_set(GtkWidget *widget, const char *str) -{ - GtkTreeModel *model = gtk_combo_box_get_model(GTK_COMBO_BOX(widget)); - GtkTreeIter iter; - gboolean valid = gtk_tree_model_get_iter_first(model, &iter); - gint i = 0; - gboolean found = FALSE; - while(valid) - { - char *value; - gtk_tree_model_get(model, &iter, 0, &value, -1); - if(!g_strcmp0(value, str)) - { - g_free(value); - found = TRUE; - break; - } - i++; - g_free(value); - valid = gtk_tree_model_iter_next(model, &iter); - } - if(found) - gtk_combo_box_set_active(GTK_COMBO_BOX(widget), i); -} - -void dt_gui_preferences_enum_reset(GtkWidget *widget) -{ - const char *key = gtk_widget_get_name(widget); - const char *str = dt_confgen_get(key, DT_DEFAULT); - _gui_preferences_enum_set(widget, str); -} +GtkWidget *dt_gui_preferences_enum(dt_action_t *action, const char *key) +{ + GtkWidget *w = dt_bauhaus_combobox_new_action(action); + dt_bauhaus_combobox_alignment_t align = action ? DT_BAUHAUS_COMBOBOX_ALIGN_RIGHT + : DT_BAUHAUS_COMBOBOX_ALIGN_LEFT; + dt_bauhaus_combobox_set_selected_text_align(w, align); + if(action) gtk_widget_set_tooltip_text(w, dt_confgen_get_tooltip(key)); -static gboolean -_gui_preferences_enum_reset(GtkWidget *label, GdkEventButton *event, GtkWidget *widget) -{ - if(event->type == GDK_2BUTTON_PRESS) + const char *values = dt_confgen_get(key, DT_VALUES); + const char *defstr = dt_confgen_get(key, DT_DEFAULT); + const char *str = dt_conf_get_string_const(key); + gint i = 0; + while(values && *values++ == '[' && *values) { - dt_gui_preferences_enum_reset(widget); - return TRUE; - } - return FALSE; -} + gchar *end_marker = strchr(values, ']'); + if(!end_marker) break; + char *item = g_strndup(values, end_marker - values); -void dt_gui_preferences_enum_update(GtkWidget *widget) -{ - const char *key = gtk_widget_get_name(widget); - char *str = dt_conf_get_string(key); - _gui_preferences_enum_set(widget, str); - g_free(str); -} + dt_bauhaus_combobox_add_full(w, g_dpgettext2(NULL, "preferences", item), + align, (gpointer)values, NULL, TRUE); -GtkWidget *dt_gui_preferences_enum(GtkGrid *grid, const char *key, const guint col, - const guint line) -{ - GtkWidget *w_label = dt_ui_label_new(_(dt_confgen_get_label(key))); - gtk_widget_set_tooltip_text(w_label, _(dt_confgen_get_tooltip(key))); - GtkWidget *labelev = gtk_event_box_new(); - gtk_widget_add_events(labelev, GDK_BUTTON_PRESS_MASK); - gtk_container_add(GTK_CONTAINER(labelev), w_label); + if(!g_strcmp0(defstr, item)) dt_bauhaus_combobox_set_default(w, GPOINTER_TO_INT(values)); + if(!g_strcmp0(str, item)) dt_bauhaus_combobox_set(w, i); - GtkTreeIter iter; - GtkListStore *store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); - gchar *str = dt_conf_get_string(key); - const char *values = dt_confgen_get(key, DT_VALUES); - gint i = 0; - gint pos = -1; - GList *vals = dt_util_str_to_glist("][", values); - for(GList *val = vals; val; val = g_list_next(val)) - { - char *item = (char *)val->data; - // remove remaining [ or ] - if(item[0] == '[') item++; - else if(item[strlen(item) - 1] == ']') item[strlen(item) - 1] = '\0'; - gtk_list_store_append(store, &iter); - gtk_list_store_set(store, &iter, 0, item, 1, g_dpgettext2(NULL, "preferences", item), -1); - if(pos == -1 && !g_strcmp0(str, item)) - { - pos = i; - } + g_free(item); + values = end_marker + 1; i++; } - g_list_free_full(vals, g_free); - g_free(str); - - GtkWidget *w = gtk_combo_box_new_with_model(GTK_TREE_MODEL(store)); - gtk_widget_set_name(w, key); - gtk_widget_set_hexpand(w, FALSE); - g_object_unref(store); - GtkCellRenderer *renderer = gtk_cell_renderer_text_new(); - gtk_cell_renderer_set_padding(renderer, 0, 0); - gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(w), renderer, TRUE); - gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(w), renderer, "text", 1, NULL); - gtk_combo_box_set_active(GTK_COMBO_BOX(w), pos); - gtk_grid_attach(GTK_GRID(grid), labelev, col, line, 1, 1); - gtk_grid_attach(GTK_GRID(grid), w, col + 1, line, 1, 1); - g_signal_connect(G_OBJECT(w), "changed", G_CALLBACK(_gui_preferences_enum_callback), (gpointer)key); - g_signal_connect(G_OBJECT(labelev), "button-press-event", G_CALLBACK(_gui_preferences_enum_reset), (gpointer)w); + g_signal_connect(G_OBJECT(w), "value-changed", G_CALLBACK(_gui_preferences_enum_callback), (gpointer)key); return w; } diff -Nru darktable-4.4.2/src/gui/preferences.h darktable-4.6.1/src/gui/preferences.h --- darktable-4.4.2/src/gui/preferences.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/gui/preferences.h 2024-02-16 17:31:09.000000000 +0000 @@ -26,21 +26,18 @@ const guint line, const gboolean swap); GtkWidget *dt_gui_preferences_int(GtkGrid *grid, const char *key, const guint col, const guint line); -GtkWidget *dt_gui_preferences_enum(GtkGrid *grid, const char *key, const guint col, - const guint line); +GtkWidget *dt_gui_preferences_enum(dt_action_t *action, const char *key); GtkWidget *dt_gui_preferences_string(GtkGrid *grid, const char *key, const guint col, const guint line); // update widget with current preference void dt_gui_preferences_bool_update(GtkWidget *widget); void dt_gui_preferences_int_update(GtkWidget *widget); -void dt_gui_preferences_enum_update(GtkWidget *widget); void dt_gui_preferences_string_update(GtkWidget *widget); // reset widget to default value void dt_gui_preferences_bool_reset(GtkWidget *widget); void dt_gui_preferences_int_reset(GtkWidget *widget); -void dt_gui_preferences_enum_reset(GtkWidget *widget); void dt_gui_preferences_string_reset(GtkWidget *widget); // clang-format off diff -Nru darktable-4.4.2/src/gui/presets.c darktable-4.6.1/src/gui/presets.c --- darktable-4.4.2/src/gui/presets.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/gui/presets.c 2024-02-16 17:31:09.000000000 +0000 @@ -38,21 +38,23 @@ #include <stdlib.h> -const int dt_gui_presets_exposure_value_cnt = 24; +const int dt_gui_presets_exposure_value_cnt = 22; const float dt_gui_presets_exposure_value[] - = { 0., 1. / 8000, 1. / 4000, 1. / 2000, 1. / 1000, 1. / 1000, 1. / 500, 1. / 250, - 1. / 125, 1. / 60, 1. / 30, 1. / 15, 1. / 15, 1. / 8, 1. / 4, 1. / 2, - 1, 2, 4, 8, 15, 30, 60, FLT_MAX }; + = { 0., 1./8000, 1./4000, 1./2000, 1./1000, 1./500, 1./250, + 1./125, 1./60, 1./30, 1./15, 1./8, 1./4, 1./2, + 1, 2, 4, 8, 15, 30, 60, FLT_MAX }; const char *dt_gui_presets_exposure_value_str[] - = { "0", "1/8000", "1/4000", "1/2000", "1/1000", "1/1000", "1/500", "1/250", - "1/125", "1/60", "1/30", "1/15", "1/15", "1/8", "1/4", "1/2", - "1\"", "2\"", "4\"", "8\"", "15\"", "30\"", "60\"", "+" }; + = { "0", "1/8000", "1/4000", "1/2000", "1/1000", "1/500", "1/250", + "1/125", "1/60", "1/30", "1/15", "1/8", "1/4", "1/2", + "1\"", "2\"", "4\"", "8\"", "15\"", "30\"", "60\"", "+" }; + const int dt_gui_presets_aperture_value_cnt = 19; const float dt_gui_presets_aperture_value[] - = { 0, 0.5, 0.7, 1.0, 1.4, 2.0, 2.8, 4.0, 5.6, 8.0, 11.0, 16.0, 22.0, 32.0, 45.0, 64.0, 90.0, 128.0, FLT_MAX }; + = { 0, 1.0, 1.4, 1.8, 2.0, 2.4, 2.8, 4.0, 5.6, + 8.0, 11.0, 16.0, 22.0, 32.0, 45.0, 64.0, 90.0, 128.0, FLT_MAX }; const char *dt_gui_presets_aperture_value_str[] - = { "f/0", "f/0.5", "f/0.7", "f/1.0", "f/1.4", "f/2", "f/2.8", "f/4", "f/5.6", "f/8", - "f/11", "f/16", "f/22", "f/32", "f/45", "f/64", "f/90", "f/128", "f/+" }; + = { "f/0", "f/1.0", "f/1.4", "f/1.8", "f/2", "f/2.4", "f/2.8", "f/4", "f/5.6", + "f/8", "f/11", "f/16", "f/22", "f/32", "f/45", "f/64", "f/90", "f/128", "f/+" }; // format string and corresponding flag stored into the database static const char *_gui_presets_format_value_str[5] @@ -556,14 +558,14 @@ char title[1024]; snprintf(title, sizeof(title), _("edit `%s' for module `%s'"), g->original_name, g->module_name); - GtkWidget *dialog = gtk_dialog_new_with_buttons - (title, g->parent, GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, - _("_export..."), GTK_RESPONSE_YES, - _("delete"), GTK_RESPONSE_REJECT, - _("_cancel"), GTK_RESPONSE_CANCEL, - _("_ok"), GTK_RESPONSE_OK, NULL); + GtkWidget *dialog = gtk_dialog_new_with_buttons(title, g->parent, + GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, + _("_export..."), GTK_RESPONSE_YES, + _("_delete"), GTK_RESPONSE_REJECT, + _("_cancel"), GTK_RESPONSE_CANCEL, + _("_ok"), GTK_RESPONSE_OK, NULL); dt_gui_dialog_add_help(GTK_DIALOG(dialog), "preset_dialog"); - gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); g->dialog = dialog; @@ -577,6 +579,7 @@ g->name = GTK_ENTRY(gtk_entry_new()); gtk_entry_set_text(g->name, g->original_name); + gtk_entry_set_width_chars(g->name, 10 + g_utf8_strlen(title, -1)); if(allow_name_change) gtk_entry_set_activates_default(g->name, TRUE); else @@ -613,7 +616,11 @@ _("be very careful with this option. " "this might be the last time you see your preset.")); gtk_box_pack_start(box, GTK_WIDGET(g->filter), FALSE, FALSE, 0); - if(!g->iop) + + // check if module_name is an IOP module + const dt_iop_module_so_t *module = dt_iop_get_module_so(g->module_name); + + if(!module) { // lib usually don't support auto-init / autoapply gtk_widget_set_no_show_all(GTK_WIDGET(g->autoinit), TRUE); @@ -622,6 +629,13 @@ // for libs, we don't want the filtering option as it's not implemented... gtk_widget_set_no_show_all(GTK_WIDGET(g->filter), TRUE); } + else + { + // without an IOP history we cannot support autoinit + gtk_widget_set_sensitive(GTK_WIDGET(g->autoinit), g->iop != NULL); + gtk_widget_set_sensitive(GTK_WIDGET(g->filter), TRUE); + } + g_signal_connect(G_OBJECT(g->autoapply), "toggled", G_CALLBACK(_check_buttons_activated), g); g_signal_connect(G_OBJECT(g->filter), "toggled", @@ -846,34 +860,18 @@ gtk_entry_set_text(GTK_ENTRY(g->iso_min), "0"); gtk_entry_set_placeholder_text(GTK_ENTRY(g->iso_max), _("∞")); - float val = 0; - int k = 0; - for(; k < dt_gui_presets_exposure_value_cnt - && val > dt_gui_presets_exposure_value[k]; k++) - ; - dt_bauhaus_combobox_set(g->exposure_min, k); - val = 100000000; - for(k = 0; k < dt_gui_presets_exposure_value_cnt - && val > dt_gui_presets_exposure_value[k]; k++) - ; - dt_bauhaus_combobox_set(g->exposure_max, k); - val = 0; - for(k = 0; k < dt_gui_presets_aperture_value_cnt - && val > dt_gui_presets_aperture_value[k]; k++) - ; - dt_bauhaus_combobox_set(g->aperture_min, k); - val = 100000000; - for(k = 0; k < dt_gui_presets_aperture_value_cnt - && val > dt_gui_presets_aperture_value[k]; k++) - ; - dt_bauhaus_combobox_set(g->aperture_max, k); + dt_bauhaus_combobox_set(g->exposure_min, 0); + dt_bauhaus_combobox_set(g->exposure_max, dt_gui_presets_exposure_value_cnt-1); + dt_bauhaus_combobox_set(g->aperture_min, 0); + dt_bauhaus_combobox_set(g->aperture_max, dt_gui_presets_aperture_value_cnt-1); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(g->focal_length_min), 0); gtk_spin_button_set_value(GTK_SPIN_BUTTON(g->focal_length_max), 1000); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->autoapply), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->filter), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->autoinit), FALSE); - for(k = 0; k < 5; k++) + for(int k = 0; k < 5; k++) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->format_btn[k]), TRUE); } sqlite3_finalize(stmt); @@ -921,7 +919,7 @@ g->iop = module; g->operation = g_strdup(module->op); g->op_version = module->version(); - g->module_name = g_strdup(module->name()); + g->module_name = g_strdup(module->op); g->callback = final_callback; g->data = data; g->parent = parent; @@ -1167,8 +1165,10 @@ g_free(name); } -gboolean dt_gui_presets_autoapply_for_module(dt_iop_module_t *module) +gboolean dt_gui_presets_autoapply_for_module(dt_iop_module_t *module, GtkWidget *widget) { + if(!module || module->actions != DT_ACTION_TYPE_IOP_INSTANCE) return FALSE; + dt_image_t *image = &module->dev->image_storage; const gboolean is_display_referred = dt_is_display_referred(); @@ -1178,7 +1178,7 @@ char query[2024]; // clang-format off snprintf(query, sizeof(query), - "SELECT name" + "SELECT name, op_params, blendop_params" " FROM data.presets" " WHERE operation = ?1" " AND ((autoapply=1" @@ -1233,8 +1233,20 @@ gboolean applied = FALSE; while(sqlite3_step(stmt) == SQLITE_ROW) { - const char *name = (const char *)sqlite3_column_text(stmt, 0); - dt_gui_presets_apply_preset(name, module); + if(widget) + { + dt_iop_params_t *params = (dt_iop_params_t *)sqlite3_column_blob(stmt, 1); + dt_develop_blend_params_t *blend_params = (dt_iop_params_t *)sqlite3_column_blob(stmt, 2); + if(sqlite3_column_bytes(stmt, 1) == module->params_size + && sqlite3_column_bytes(stmt, 2) == sizeof(dt_develop_blend_params_t)) + dt_bauhaus_update_from_field(module, widget, params, blend_params); + } + else + { + const char *name = (const char *)sqlite3_column_text(stmt, 0); + dt_gui_presets_apply_preset(name, module); + } + applied = TRUE; } sqlite3_finalize(stmt); diff -Nru darktable-4.4.2/src/gui/presets.h darktable-4.6.1/src/gui/presets.h --- darktable-4.4.2/src/gui/presets.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/gui/presets.h 2024-02-16 17:31:09.000000000 +0000 @@ -159,7 +159,7 @@ void dt_gui_presets_apply_adjacent_preset(dt_iop_module_t *module, const int direction); /** apply any auto presets that are appropriate for the current module **/ -gboolean dt_gui_presets_autoapply_for_module(dt_iop_module_t *module); +gboolean dt_gui_presets_autoapply_for_module(dt_iop_module_t *module, GtkWidget *widget); void dt_gui_presets_show_iop_edit_dialog(const char *name_in, dt_iop_module_t *module, diff -Nru darktable-4.4.2/src/gui/styles.h darktable-4.6.1/src/gui/styles.h --- darktable-4.4.2/src/gui/styles.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/gui/styles.h 2024-02-16 17:31:09.000000000 +0000 @@ -21,10 +21,10 @@ #include <cairo.h> /** shows a dialog for creating a new style */ -void dt_gui_styles_dialog_new(dt_imgid_t imgid); +void dt_gui_styles_dialog_new(const dt_imgid_t imgid); /** shows a dialog for editing existing style */ -void dt_gui_styles_dialog_edit(const char *name); +void dt_gui_styles_dialog_edit(const char *name, char **new_name); cairo_surface_t *dt_gui_get_style_preview(const dt_imgid_t imgid, const char *name); diff -Nru darktable-4.4.2/src/gui/styles_dialog.c darktable-4.6.1/src/gui/styles_dialog.c --- darktable-4.4.2/src/gui/styles_dialog.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/gui/styles_dialog.c 2024-02-16 17:31:09.000000000 +0000 @@ -32,13 +32,17 @@ #endif /* creates a styles dialog, if edit equals true id=styleid else id=imgid */ -static void _gui_styles_dialog_run(gboolean edit, const char *name, dt_imgid_t imgid); +static void _gui_styles_dialog_run(gboolean edit, + const char *name, + const dt_imgid_t imgid, + char **new_name); typedef struct dt_gui_styles_dialog_t { gboolean edit; dt_imgid_t imgid; gchar *nameorig; + gchar *newname; GtkWidget *name, *description, *duplicate; GtkTreeView *items; GtkTreeView *items_new; @@ -165,7 +169,8 @@ } else // item from image { - *update = g_list_append(*update, GINT_TO_POINTER(autoinit ? -update_num : update_num)); + *update = g_list_append(*update, + GINT_TO_POINTER(autoinit ? -update_num : update_num)); *enabled = g_list_append(*enabled, GINT_TO_POINTER(0)); } } @@ -183,7 +188,8 @@ { do { - gtk_list_store_set(GTK_LIST_STORE(model), &iter, DT_STYLE_ITEMS_COL_ENABLED, active, -1); + gtk_list_store_set(GTK_LIST_STORE(model), &iter, + DT_STYLE_ITEMS_COL_ENABLED, active, -1); } while(gtk_tree_model_iter_next(model, &iter)); } } @@ -209,19 +215,19 @@ _gui_styles_get_active_items(g, &result, NULL); /* create the style from imageid */ - const gchar *name = gtk_entry_get_text(GTK_ENTRY(g->name)); - if(name && *name) + g->newname = g_strdup(gtk_entry_get_text(GTK_ENTRY(g->name))); + if(g->newname && *g->newname) { /* show prompt dialog when style already exists */ - if(name && (dt_styles_exists(name)) != 0) + if(g->newname && (dt_styles_exists(g->newname)) != 0) { /* on button yes delete style name for overwriting */ if(dt_gui_show_yes_no_dialog (_("overwrite style?"), - _("style `%s' already exists.\ndo you want to overwrite?"), name)) + _("style `%s' already exists.\ndo you want to overwrite?"), g->newname)) { - dt_styles_delete_by_name(name); + dt_styles_delete_by_name(g->newname); } else { @@ -230,13 +236,13 @@ } } - if(dt_styles_create_from_image(name, + if(dt_styles_create_from_image(g->newname, gtk_entry_get_text(GTK_ENTRY(g->description)), g->imgid, result, _gui_styles_is_copy_module_order_set(g))) { - dt_control_log(_("style named '%s' successfully created"), name); + dt_control_log(_("style named '%s' successfully created"), g->newname); }; } else @@ -259,8 +265,6 @@ } } gtk_widget_destroy(GTK_WIDGET(dialog)); - g_free(g->nameorig); - g_free(g); } static void _gui_styles_edit_style_response(GtkDialog *dialog, @@ -277,20 +281,22 @@ _gui_styles_select_all_items(g, FALSE); return; } - else if(response_id == GTK_RESPONSE_ACCEPT) + + g->newname = g_strdup(gtk_entry_get_text(GTK_ENTRY(g->name))); + + if(response_id == GTK_RESPONSE_ACCEPT) { /* get the filtered list from dialog */ GList *result = NULL, *update = NULL; _gui_styles_get_active_items(g, &result, &update); - const gchar *name = gtk_entry_get_text(GTK_ENTRY(g->name)); - if(name && *name) + if(g->newname && *g->newname) { if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(g->duplicate))) { dt_styles_create_from_style(g->nameorig, - name, + g->newname, gtk_entry_get_text(GTK_ENTRY(g->description)), result, g->imgid, @@ -301,7 +307,7 @@ else { dt_styles_update(g->nameorig, - name, + g->newname, gtk_entry_get_text(GTK_ENTRY(g->description)), result, g->imgid, @@ -309,7 +315,7 @@ _gui_styles_is_copy_module_order_set(g), _gui_styles_is_update_module_order_set(g)); } - dt_control_log(_("style %s was successfully saved"), name); + dt_control_log(_("style %s was successfully saved"), g->newname); } else { @@ -331,8 +337,6 @@ } } gtk_widget_destroy(GTK_WIDGET(dialog)); - g_free(g->nameorig); - g_free(g); } static void _gui_styles_item_toggled(GtkCellRendererToggle *cell, @@ -473,14 +477,14 @@ gtk_tree_path_free(path); } -void dt_gui_styles_dialog_new(dt_imgid_t imgid) +void dt_gui_styles_dialog_new(const dt_imgid_t imgid) { - _gui_styles_dialog_run(FALSE, NULL, imgid); + _gui_styles_dialog_run(FALSE, NULL, imgid, NULL); } -void dt_gui_styles_dialog_edit(const char *name) +void dt_gui_styles_dialog_edit(const char *name, char **new_name) { - _gui_styles_dialog_run(TRUE, name, _single_selected_imgid()); + _gui_styles_dialog_run(TRUE, name, _single_selected_imgid(), new_name); } static gint _g_list_find_module_by_name(gconstpointer a, gconstpointer b) @@ -488,7 +492,17 @@ return strncmp(((dt_iop_module_t *)a)->op, b, strlen(((dt_iop_module_t *)a)->op)); } -static void _gui_styles_dialog_run(gboolean edit, const char *name, dt_imgid_t imgid) +static void _name_changed(GtkEntry *entry, + GtkDialog *dialog) +{ + const gchar *name = gtk_entry_get_text(entry); + gtk_dialog_set_response_sensitive(dialog, GTK_RESPONSE_ACCEPT, name && *name); +} + +static void _gui_styles_dialog_run(gboolean edit, + const char *name, + const dt_imgid_t imgid, + char **new_name) { char title[512]; @@ -496,9 +510,12 @@ if(name && (dt_styles_exists(name)) == 0) return; /* initialize the dialog */ - dt_gui_styles_dialog_t *sd = (dt_gui_styles_dialog_t *)g_malloc(sizeof(dt_gui_styles_dialog_t)); + dt_gui_styles_dialog_t *sd = + (dt_gui_styles_dialog_t *)g_malloc0(sizeof(dt_gui_styles_dialog_t)); + sd->nameorig = g_strdup(name); sd->imgid = imgid; + sd->newname = NULL; if(edit) { @@ -514,11 +531,12 @@ GtkWidget *window = dt_ui_main_window(darktable.gui->ui); GtkDialog *dialog = GTK_DIALOG( gtk_dialog_new_with_buttons(title, GTK_WINDOW(window), GTK_DIALOG_DESTROY_WITH_PARENT, - _("select _all"), GTK_RESPONSE_YES, + _("select _all"), GTK_RESPONSE_YES, _("select _none"), GTK_RESPONSE_NONE, _("_cancel"), GTK_RESPONSE_REJECT, - _("_save"), GTK_RESPONSE_ACCEPT, NULL)); + _("_save"), GTK_RESPONSE_ACCEPT, NULL)); dt_gui_dialog_add_help(dialog, "styles"); + gtk_dialog_set_default_response(dialog, GTK_RESPONSE_ACCEPT); #ifdef GDK_WINDOWING_QUARTZ dt_osx_disallow_fullscreen(GTK_WIDGET(dialog)); @@ -547,11 +565,15 @@ sd->name = gtk_entry_new(); gtk_entry_set_placeholder_text(GTK_ENTRY(sd->name), _("name")); gtk_widget_set_tooltip_text(sd->name, _("enter a name for the new style")); + gtk_entry_set_activates_default(GTK_ENTRY(sd->name), TRUE); + gtk_dialog_set_response_sensitive(dialog, GTK_RESPONSE_ACCEPT, FALSE); + g_signal_connect(sd->name, "changed", G_CALLBACK(_name_changed), dialog); sd->description = gtk_entry_new(); gtk_entry_set_placeholder_text(GTK_ENTRY(sd->description), _("description")); gtk_widget_set_tooltip_text(sd->description, _("enter a description for the new style, this description is searchable")); + gtk_entry_set_activates_default(GTK_ENTRY(sd->description), TRUE); /*set values*/ if(edit && name) @@ -822,11 +844,14 @@ } } - if(has_item) gtk_box_pack_start(sbox, GTK_WIDGET(sd->items), TRUE, TRUE, 0); + if(has_item) + gtk_box_pack_start(sbox, GTK_WIDGET(sd->items), TRUE, TRUE, 0); - if(has_new_item) gtk_box_pack_start(sbox, GTK_WIDGET(sd->items_new), TRUE, TRUE, 0); + if(has_new_item) + gtk_box_pack_start(sbox, GTK_WIDGET(sd->items_new), TRUE, TRUE, 0); - if(edit) gtk_box_pack_start(GTK_BOX(content_area), GTK_WIDGET(sd->duplicate), FALSE, TRUE, 0); + if(edit) + gtk_box_pack_start(GTK_BOX(content_area), GTK_WIDGET(sd->duplicate), FALSE, TRUE, 0); g_object_unref(liststore); g_object_unref(liststore_new); @@ -840,6 +865,15 @@ gtk_widget_show_all(GTK_WIDGET(dialog)); gtk_dialog_run(GTK_DIALOG(dialog)); + if(edit && new_name) + { + *new_name = g_strdup(sd->newname); + } + + g_free(sd->nameorig); + g_free(sd->newname); + g_free(sd); + g_object_unref(is_active_pb); g_object_unref(is_inactive_pb); } diff -Nru darktable-4.4.2/src/imageio/format/CMakeLists.txt darktable-4.6.1/src/imageio/format/CMakeLists.txt --- darktable-4.4.2/src/imageio/format/CMakeLists.txt 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/format/CMakeLists.txt 2024-02-16 17:31:09.000000000 +0000 @@ -38,10 +38,10 @@ add_library(j2k MODULE "j2k.c") endif(OpenJPEG_FOUND) -if (TARGET avif) - list(APPEND MODULES "avif_format") - add_library(avif_format MODULE "avif.c") - set_target_properties(avif_format PROPERTIES OUTPUT_NAME avif) +if(libavif_FOUND) + list(APPEND MODULES "avif_format") + add_library(avif_format MODULE "avif.c") + set_target_properties(avif_format PROPERTIES OUTPUT_NAME avif) endif() if(TARGET xcf) diff -Nru darktable-4.4.2/src/imageio/format/avif.c darktable-4.6.1/src/imageio/format/avif.c --- darktable-4.4.2/src/imageio/format/avif.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/format/avif.c 2024-02-16 17:31:09.000000000 +0000 @@ -107,12 +107,12 @@ switch(comp) { case AVIF_COMP_LOSSLESS: - return "lossless"; + return N_("lossless"); case AVIF_COMP_LOSSY: - return "lossy"; + return N_("lossy"); + default: + return N_("unknown"); } - - return "unknown"; } /* Lookup table for tiling choices */ @@ -156,6 +156,8 @@ dt_imageio_avif_t, bit_depth, int); + + /* color mode */ luaA_enum(darktable.lua_state.state, enum avif_color_mode_e); luaA_enum_value(darktable.lua_state.state, @@ -165,6 +167,13 @@ enum avif_color_mode_e, AVIF_COLOR_MODE_GRAYSCALE); + dt_lua_register_module_member(darktable.lua_state.state, + self, + dt_imageio_avif_t, + color_mode, + enum avif_color_mode_e); + + /* tiling */ luaA_enum(darktable.lua_state.state, enum avif_tiling_e); luaA_enum_value(darktable.lua_state.state, @@ -174,6 +183,12 @@ enum avif_tiling_e, AVIF_TILING_OFF); + dt_lua_register_module_member(darktable.lua_state.state, + self, + dt_imageio_avif_t, + tiling, + enum avif_tiling_e); + /* compression type */ luaA_enum(darktable.lua_state.state, enum avif_compression_type_e); @@ -229,9 +244,8 @@ const size_t width = d->global.width; const size_t height = d->global.height; const size_t bit_depth = d->bit_depth > 0 ? d->bit_depth : 0; - enum avif_color_mode_e color_mode = d->color_mode; - switch(color_mode) + switch(d->color_mode) { case AVIF_COLOR_MODE_RGB: switch(d->compression_type) @@ -287,13 +301,19 @@ /* * Set these in advance so any upcoming RGB -> YUV use the proper * coefficients. + * + * If possible, we want libavif to save the color encoding in its own format, + * rather than embedding the ICC profile, which is possible. + * If we are unable to find the required color encoding data we will just + * fallback to providing an ICC blob (and hope we can at least do that!). */ + gboolean have_nclx = TRUE; switch(cp->type) { case DT_COLORSPACE_SRGB: image->colorPrimaries = AVIF_COLOR_PRIMARIES_BT709; image->transferCharacteristics = AVIF_TRANSFER_CHARACTERISTICS_SRGB; - image->matrixCoefficients = AVIF_MATRIX_COEFFICIENTS_BT470BG; + image->matrixCoefficients = AVIF_MATRIX_COEFFICIENTS_BT601; break; case DT_COLORSPACE_REC709: image->colorPrimaries = AVIF_COLOR_PRIMARIES_BT709; @@ -330,26 +350,38 @@ image->transferCharacteristics = AVIF_TRANSFER_CHARACTERISTICS_HLG; image->matrixCoefficients = AVIF_MATRIX_COEFFICIENTS_CHROMA_DERIVED_NCL; break; + case DT_COLORSPACE_DISPLAY_P3: + image->colorPrimaries = AVIF_COLOR_PRIMARIES_SMPTE432; + image->transferCharacteristics = AVIF_TRANSFER_CHARACTERISTICS_SRGB; + image->matrixCoefficients = AVIF_MATRIX_COEFFICIENTS_CHROMA_DERIVED_NCL; + break; default: + have_nclx = FALSE; break; } + if(format == AVIF_PIXEL_FORMAT_YUV444 && d->compression_type == AVIF_COMP_LOSSLESS) + image->matrixCoefficients = AVIF_MATRIX_COEFFICIENTS_IDENTITY; + dt_print(DT_DEBUG_IMAGEIO, "[avif colorprofile profile: %s]\n", dt_colorspaces_get_name(cp->type, filename)); - /* Compliant AVIF readers should prefer ICC profiles, so always try to include it */ - uint32_t icc_profile_len; - cmsSaveProfileToMem(cp->profile, NULL, &icc_profile_len); - if(icc_profile_len > 0) + if(!have_nclx) { - icc_profile_data = malloc(sizeof(uint8_t) * icc_profile_len); - if(icc_profile_data == NULL) + /* If we didn't manage to write the color encoding natively we need to fallback to ICC */ + uint32_t icc_profile_len; + cmsSaveProfileToMem(cp->profile, NULL, &icc_profile_len); + if(icc_profile_len > 0) { - dt_print(DT_DEBUG_IMAGEIO, "Failed to allocate %u bytes for ICC profile\n", icc_profile_len); - rc = 1; - goto out; + icc_profile_data = malloc(sizeof(uint8_t) * icc_profile_len); + if(icc_profile_data == NULL) + { + dt_print(DT_DEBUG_IMAGEIO, "Failed to allocate %u bytes for ICC profile\n", icc_profile_len); + rc = 1; + goto out; + } + cmsSaveProfileToMem(cp->profile, icc_profile_data, &icc_profile_len); + avifImageSetProfileICC(image, icc_profile_data, icc_profile_len); } - cmsSaveProfileToMem(cp->profile, icc_profile_data, &icc_profile_len); - avifImageSetProfileICC(image, icc_profile_data, icc_profile_len); } /* @@ -468,18 +500,24 @@ /* It isn't recommend to use the extremities */ encoder->speed = AVIF_SPEED_SLOWEST + 1; +#if AVIF_VERSION >= 1000000 + encoder->quality = AVIF_QUALITY_LOSSLESS; +#else encoder->minQuantizer = AVIF_QUANTIZER_LOSSLESS; encoder->maxQuantizer = AVIF_QUANTIZER_LOSSLESS; - +#endif break; + case AVIF_COMP_LOSSY: encoder->speed = AVIF_SPEED_DEFAULT; - encoder->maxQuantizer = 100 - d->quality; - encoder->maxQuantizer = CLAMP(encoder->maxQuantizer, 0, 63); - - encoder->minQuantizer = 64 - d->quality; - encoder->minQuantizer = CLAMP(encoder->minQuantizer, 0, 63); +#if AVIF_VERSION >= 1000000 + encoder->quality = d->quality; +#else + const int quantizer = ((100 - d->quality) * AVIF_QUANTIZER_WORST_QUALITY + 50) / 100; + encoder->minQuantizer = CLAMP(quantizer - 5, AVIF_QUANTIZER_BEST_QUALITY, AVIF_QUANTIZER_WORST_QUALITY); + encoder->maxQuantizer = CLAMP(quantizer + 5, AVIF_QUANTIZER_BEST_QUALITY, AVIF_QUANTIZER_WORST_QUALITY); +#endif break; } @@ -611,7 +649,7 @@ if(d->bit_depth != 10 && d->bit_depth != 12) d->bit_depth = 8; - d->color_mode = dt_conf_get_int("plugins/imageio/format/avif/color_mode"); + d->color_mode = dt_conf_get_bool("plugins/imageio/format/avif/color_mode"); d->compression_type = dt_conf_get_int("plugins/imageio/format/avif/compression_type"); switch(d->compression_type) @@ -621,10 +659,6 @@ break; case AVIF_COMP_LOSSY: d->quality = dt_conf_get_int("plugins/imageio/format/avif/quality"); - if(d->quality > 100) - { - d->quality = 100; - } break; } @@ -717,7 +751,7 @@ { const enum avif_color_mode_e color_mode = dt_bauhaus_combobox_get(widget); - dt_conf_set_int("plugins/imageio/format/avif/color_mode", color_mode); + dt_conf_set_bool("plugins/imageio/format/avif/color_mode", color_mode); } static void tiling_changed(GtkWidget *widget, gpointer user_data) @@ -748,8 +782,8 @@ { dt_imageio_avif_gui_t *gui = (dt_imageio_avif_gui_t *)malloc(sizeof(dt_imageio_avif_gui_t)); - const uint32_t bit_depth = dt_conf_get_int("plugins/imageio/format/avif/bit_depth"); - const enum avif_color_mode_e color_mode = dt_conf_get_int("plugins/imageio/format/avif/color_mode"); + const uint32_t bit_depth = dt_conf_get_int("plugins/imageio/format/avif/bpp"); + const enum avif_color_mode_e color_mode = dt_conf_get_bool("plugins/imageio/format/avif/color_mode"); const enum avif_tiling_e tiling = !dt_conf_get_bool("plugins/imageio/format/avif/tiling"); const enum avif_compression_type_e compression_type = dt_conf_get_int("plugins/imageio/format/avif/compression_type"); const uint32_t quality = dt_conf_get_int("plugins/imageio/format/avif/quality"); @@ -783,23 +817,22 @@ /* * Color mode combo box */ - DT_BAUHAUS_COMBOBOX_NEW_FULL(gui->color_mode, self, NULL, N_("color mode"), - _("saving as grayscale will reduce the size for black & white images"), - color_mode, color_mode_changed, self, - N_("RGB colors"), N_("grayscale")); + DT_BAUHAUS_COMBOBOX_NEW_FULL(gui->color_mode, self, NULL, N_("B&W as grayscale"), + _("saving as grayscale will reduce the size for black & white images"), color_mode, + color_mode_changed, self, N_("no"), N_("yes")); + + dt_bauhaus_combobox_set_default(gui->color_mode, + dt_confgen_get_bool("plugins/imageio/format/avif/color_mode", DT_DEFAULT)); + + gtk_box_pack_start(GTK_BOX(self->widget), gui->color_mode, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(self->widget), - gui->color_mode, - TRUE, - TRUE, - 0); /* * Tiling combo box */ DT_BAUHAUS_COMBOBOX_NEW_FULL(gui->tiling, self, NULL, N_("tiling"), _("tile an image into segments.\n\n" - "makes encoding faster. the impact on quality reduction " - "is negligible, but increases the file size."), + "makes encoding faster, but increases the file size. " + "the loss of image quality is negligible."), tiling, tiling_changed, self, N_("on"), N_("off")); gtk_box_pack_start(GTK_BOX(self->widget), @@ -814,7 +847,7 @@ gui->compression_type = dt_bauhaus_combobox_new_action(DT_ACTION(self)); dt_bauhaus_widget_set_label(gui->compression_type, NULL, - N_("compression type")); + N_("compression")); dt_bauhaus_combobox_add(gui->compression_type, _(avif_get_compression_string(AVIF_COMP_LOSSLESS))); dt_bauhaus_combobox_add(gui->compression_type, @@ -824,6 +857,9 @@ gtk_widget_set_tooltip_text(gui->compression_type, _("the compression for the image")); + dt_bauhaus_combobox_set_default(gui->compression_type, + dt_confgen_get_int("plugins/imageio/format/avif/compression_type", DT_DEFAULT)); + gtk_box_pack_start(GTK_BOX(self->widget), gui->compression_type, TRUE, @@ -840,24 +876,16 @@ dt_confgen_get_int("plugins/imageio/format/avif/quality", DT_DEFAULT), /* default */ 0); /* digits */ dt_bauhaus_widget_set_label(gui->quality, NULL, N_("quality")); - dt_bauhaus_slider_set_default(gui->quality, dt_confgen_get_int("plugins/imageio/format/avif/quality", DT_DEFAULT)); - dt_bauhaus_slider_set_format(gui->quality, "%"); gtk_widget_set_tooltip_text(gui->quality, _("the quality of an image, less quality means fewer details.\n" "\n" - "the following applies only to lossy setting\n" - "\n" - "pixelformat based on quality:\n" + "pixel format is controlled by quality:\n" "\n" - " 91% - 100% -> YUV444\n" - " 81% - 90% -> YUV422\n" - " 5% - 80% -> YUV420\n")); + "5-80: YUV420, 81-90: YUV422, 91-100: YUV444")); + + dt_bauhaus_slider_set(gui->quality, quality); - if(quality > 0 && quality <= 100) - { - dt_bauhaus_slider_set(gui->quality, quality); - } gtk_box_pack_start(GTK_BOX(self->widget), gui->quality, TRUE, TRUE, 0); gtk_widget_set_visible(gui->quality, compression_type != AVIF_COMP_LOSSLESS); @@ -886,21 +914,28 @@ { dt_imageio_avif_gui_t *gui = (dt_imageio_avif_gui_t *)self->gui_data; - const enum avif_color_mode_e color_mode = dt_confgen_get_int("plugins/imageio/format/avif/color_mode", DT_DEFAULT); + const uint32_t bit_depth = dt_confgen_get_int("plugins/imageio/format/avif/bpp", DT_DEFAULT); + const enum avif_color_mode_e color_mode = dt_confgen_get_bool("plugins/imageio/format/avif/color_mode", DT_DEFAULT); const enum avif_tiling_e tiling = !dt_confgen_get_bool("plugins/imageio/format/avif/tiling", DT_DEFAULT); const enum avif_compression_type_e compression_type = dt_confgen_get_int("plugins/imageio/format/avif/compression_type", DT_DEFAULT); const uint32_t quality = dt_confgen_get_int("plugins/imageio/format/avif/quality", DT_DEFAULT); - dt_bauhaus_combobox_set(gui->bit_depth, 0); //8bpp + size_t idx = 0; + for(size_t i = 0; avif_bit_depth[i].name != NULL; ++i) + { + if(avif_bit_depth[i].bit_depth == bit_depth) + { + idx = i; + break; + } + } + dt_bauhaus_combobox_set(gui->bit_depth, idx); dt_bauhaus_combobox_set(gui->color_mode, color_mode); dt_bauhaus_combobox_set(gui->tiling, tiling); dt_bauhaus_combobox_set(gui->compression_type, compression_type); dt_bauhaus_slider_set(gui->quality, quality); - - compression_type_changed(GTK_WIDGET(gui->compression_type), self); - quality_changed(GTK_WIDGET(gui->quality), self); - bit_depth_changed(GTK_WIDGET(gui->bit_depth), self); } + // clang-format off // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py // vim: shiftwidth=2 expandtab tabstop=2 cindent diff -Nru darktable-4.4.2/src/imageio/format/exr.cc darktable-4.6.1/src/imageio/format/exr.cc --- darktable-4.4.2/src/imageio/format/exr.cc 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/format/exr.cc 2024-02-16 17:31:09.000000000 +0000 @@ -384,21 +384,31 @@ return sizeof(dt_imageio_exr_t); } -void *legacy_params(dt_imageio_module_format_t *self, const void *const old_params, - const size_t old_params_size, const int old_version, const int new_version, +void *legacy_params(dt_imageio_module_format_t *self, + const void *const old_params, + const size_t old_params_size, + const int old_version, + int *new_version, size_t *new_size) { - if(old_version == 1 && new_version == 5) + typedef struct _imageio_exr_v5_t { - struct dt_imageio_exr_v1_t + dt_imageio_module_data_t global; + dt_imageio_exr_compression_t compression; + dt_imageio_exr_pixeltype_t pixel_type; + } dt_imageio_exr_v5_t; + + if(old_version == 1) + { + typedef struct _imageio_exr_v1_t { int max_width, max_height; int width, height; char style[128]; - }; + } dt_imageio_exr_v1_t; const dt_imageio_exr_v1_t *o = (dt_imageio_exr_v1_t *)old_params; - dt_imageio_exr_t *n = (dt_imageio_exr_t *)malloc(sizeof(dt_imageio_exr_t)); + dt_imageio_exr_v5_t *n = (dt_imageio_exr_v5_t *)malloc(sizeof(dt_imageio_exr_v5_t)); n->global.max_width = o->max_width; n->global.max_height = o->max_height; @@ -408,22 +418,24 @@ n->global.style_append = FALSE; n->compression = PIZ_COMPRESSION; n->pixel_type = EXR_PT_FLOAT; - *new_size = self->params_size(self); + + *new_version = 5; + *new_size = sizeof(dt_imageio_exr_v5_t); return n; } - if(old_version == 2 && new_version == 5) + if(old_version == 2) { - struct dt_imageio_exr_v2_t + typedef struct _imageio_exr_v2_t { int max_width, max_height; int width, height; char style[128]; dt_imageio_exr_compression_t compression; dt_imageio_exr_pixeltype_t pixel_type; - }; + } dt_imageio_exr_v2_t; const dt_imageio_exr_v2_t *o = (dt_imageio_exr_v2_t *)old_params; - dt_imageio_exr_t *n = (dt_imageio_exr_t *)malloc(sizeof(dt_imageio_exr_t)); + dt_imageio_exr_v5_t *n = (dt_imageio_exr_v5_t *)malloc(sizeof(dt_imageio_exr_v5_t)); // last param was dropped (pixel type) n->global.max_width = o->max_width; @@ -434,21 +446,23 @@ n->global.style_append = FALSE; n->compression = o->compression; n->pixel_type = o->pixel_type >= EXR_PT_HALF ? o->pixel_type : EXR_PT_FLOAT; - *new_size = self->params_size(self); + + *new_version = 5; + *new_size = sizeof(dt_imageio_exr_v5_t); return n; } - if(old_version == 3 && new_version == 5) + if(old_version == 3) { - struct dt_imageio_exr_v3_t + typedef struct _imageio_exr_v3_t { int max_width, max_height; int width, height; char style[128]; dt_imageio_exr_compression_t compression; - }; + } dt_imageio_exr_v3_t; const dt_imageio_exr_v3_t *o = (dt_imageio_exr_v3_t *)old_params; - dt_imageio_exr_t *n = (dt_imageio_exr_t *)malloc(sizeof(dt_imageio_exr_t)); + dt_imageio_exr_v5_t *n = (dt_imageio_exr_v5_t *)malloc(sizeof(dt_imageio_exr_v5_t)); n->global.max_width = o->max_width; n->global.max_height = o->max_height; @@ -458,19 +472,21 @@ n->global.style_append = FALSE; n->compression = o->compression; n->pixel_type = EXR_PT_FLOAT; - *new_size = self->params_size(self); + + *new_version = 5; + *new_size = sizeof(dt_imageio_exr_v5_t); return n; } - if(old_version == 4 && new_version == 5) + if(old_version == 4) { - struct dt_imageio_exr_v4_t + typedef struct _imageio_exr_v4_t { dt_imageio_module_data_t global; dt_imageio_exr_compression_t compression; - }; + } dt_imageio_exr_v4_t; const dt_imageio_exr_v4_t *o = (dt_imageio_exr_v4_t *)old_params; - dt_imageio_exr_t *n = (dt_imageio_exr_t *)malloc(sizeof(dt_imageio_exr_t)); + dt_imageio_exr_v5_t *n = (dt_imageio_exr_v5_t *)malloc(sizeof(dt_imageio_exr_v5_t)); n->global.max_width = o->global.max_width; n->global.max_height = o->global.max_height; @@ -480,9 +496,29 @@ n->global.style_append = o->global.style_append; n->compression = o->compression; n->pixel_type = EXR_PT_FLOAT; - *new_size = self->params_size(self); + + *new_version = 5; + *new_size = sizeof(dt_imageio_exr_v5_t); + return n; + } + + // incremental update supported: + /* + typedef struct dt_imageio_exr_v6_t + { + ... + } dt_imageio_exr_v6_t; + + if(old_version == 5) + { + // let's update from 5 to 6 + + ... + *new_size = sizeof(dt_imageio_exr_v6_t); + *new_version = 6; return n; } + */ return NULL; } diff -Nru darktable-4.4.2/src/imageio/format/imageio_format_api.h darktable-4.6.1/src/imageio/format/imageio_format_api.h --- darktable-4.4.2/src/imageio/format/imageio_format_api.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/format/imageio_format_api.h 2024-02-16 17:31:09.000000000 +0000 @@ -55,9 +55,13 @@ REQUIRED(void, cleanup, struct dt_imageio_module_format_t *self); /* gets the current export parameters from gui/conf and stores in this struct for later use. */ -OPTIONAL(void *, legacy_params, struct dt_imageio_module_format_t *self, const void *const old_params, - const size_t old_params_size, const int old_version, const int new_version, - size_t *new_size); +OPTIONAL(void *, legacy_params, + struct dt_imageio_module_format_t *self, + const void *const old_params, + const size_t old_params_size, + const int old_version, + int *new_version, + size_t *new_size); REQUIRED(size_t, params_size, struct dt_imageio_module_format_t *self); REQUIRED(void *, get_params, struct dt_imageio_module_format_t *self); REQUIRED(void, free_params, struct dt_imageio_module_format_t *self, struct dt_imageio_module_data_t *data); @@ -103,4 +107,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/imageio/format/j2k.c darktable-4.6.1/src/imageio/format/j2k.c --- darktable-4.4.2/src/imageio/format/j2k.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/format/j2k.c 2024-02-16 17:31:09.000000000 +0000 @@ -69,12 +69,11 @@ } dt_imageio_j2k_format_t; // borrowed from blender -#define DOWNSAMPLE_FLOAT_TO_8BIT(_val) (_val) <= 0.0f ? 0 : ((_val) >= 1.0f ? 255 : (int)roundf(255.0f * (_val))) +// #define DOWNSAMPLE_FLOAT_TO_8BIT(_val) (_val) <= 0.0f ? 0 : ((_val) >= 1.0f ? 255 : (int)roundf(255.0f * (_val))) #define DOWNSAMPLE_FLOAT_TO_12BIT(_val) (_val) <= 0.0f ? 0 : ((_val) >= 1.0f ? 4095 : (int)roundf(4095.0f * (_val))) -#define DOWNSAMPLE_FLOAT_TO_16BIT(_val) \ - (_val) <= 0.0f ? 0 : ((_val) >= 1.0f ? 65535 : (int)roundf(65535.0f * (_val))) +// #define DOWNSAMPLE_FLOAT_TO_16BIT(_val) (_val) <= 0.0f ? 0 : ((_val) >= 1.0f ? 65535 : (int)roundf(65535.0f * (_val))) -DT_MODULE(2) +DT_MODULE(3) typedef enum { @@ -88,14 +87,12 @@ { dt_imageio_module_data_t global; int bpp; - dt_imageio_j2k_format_t format; dt_imageio_j2k_preset_t preset; int quality; } dt_imageio_j2k_t; typedef struct dt_imageio_j2k_gui_t { - GtkWidget *format; GtkWidget *preset; GtkWidget *quality; } dt_imageio_j2k_gui_t; @@ -104,11 +101,6 @@ { #ifdef USE_LUA dt_lua_register_module_member(darktable.lua_state.state, self, dt_imageio_j2k_t, bpp, int); - luaA_enum(darktable.lua_state.state, dt_imageio_j2k_format_t); - luaA_enum_value_name(darktable.lua_state.state, dt_imageio_j2k_format_t, J2K_CFMT, "j2k"); - luaA_enum_value_name(darktable.lua_state.state, dt_imageio_j2k_format_t, JP2_CFMT, "jp2"); - dt_lua_register_module_member(darktable.lua_state.state, self, dt_imageio_j2k_t, format, - dt_imageio_j2k_format_t); dt_lua_register_module_member(darktable.lua_state.state, self, dt_imageio_j2k_t, quality, int); luaA_enum(darktable.lua_state.state, dt_imageio_j2k_preset_t); luaA_enum_value_name(darktable.lua_state.state, dt_imageio_j2k_preset_t, DT_J2K_PRESET_OFF, "off"); @@ -343,7 +335,7 @@ parameters.cp_disto_alloc = 1; parameters.cp_rsiz = OPJ_STD_RSIZ; - parameters.cod_format = j2k->format; + parameters.cod_format = 1; /* JP2 container */ parameters.cp_cinema = (OPJ_CINEMA_MODE)j2k->preset; if(parameters.cp_cinema) @@ -403,9 +395,15 @@ // } // break; case 12: - for(int i = 0; i < w * h; i++) +#ifdef _OPENMP +#pragma omp parallel for simd default(none) \ + dt_omp_firstprivate(in, w, h, image, numcomps) \ + schedule(simd:static) \ + collapse(2) +#endif + for(int i = 0; i < w * h; ++i) { - for(int k = 0; k < numcomps; k++) + for(int k = 0; k < numcomps; ++k) image->comps[k].data[i] = DOWNSAMPLE_FLOAT_TO_12BIT(in[i * 4 + k]); } break; @@ -438,16 +436,10 @@ /* encode the destination image */ /* ---------------------------- */ - OPJ_CODEC_FORMAT codec; - if(parameters.cod_format == J2K_CFMT) /* J2K format output */ - codec = OPJ_CODEC_J2K; - else - codec = OPJ_CODEC_JP2; - opj_stream_t *cstream = NULL; /* get a J2K/JP2 compressor handle */ - opj_codec_t *ccodec = opj_create_compress(codec); + opj_codec_t *ccodec = opj_create_compress(OPJ_CODEC_JP2); opj_set_error_handler(ccodec, error_callback, stderr); opj_set_warning_handler(ccodec, warning_callback, stderr); @@ -506,7 +498,7 @@ opj_destroy_codec(ccodec); /* add exif data blob. seems to not work for j2k files :( */ - if(exif && j2k->format == JP2_CFMT) rc = dt_exif_write_blob(exif, exif_len, filename, 1); + if(exif) rc = dt_exif_write_blob(exif, exif_len, filename, 1); /* free image data */ opj_image_destroy(image); @@ -525,13 +517,25 @@ return sizeof(dt_imageio_j2k_t); } -void *legacy_params(dt_imageio_module_format_t *self, const void *const old_params, - const size_t old_params_size, const int old_version, const int new_version, +void *legacy_params(dt_imageio_module_format_t *self, + const void *const old_params, + const size_t old_params_size, + const int old_version, + int *new_version, size_t *new_size) { - if(old_version == 1 && new_version == 2) + typedef struct _imageio_j2k_v2_t { - typedef struct dt_imageio_j2k_v1_t + dt_imageio_module_data_t global; + int bpp; + dt_imageio_j2k_format_t format; + dt_imageio_j2k_preset_t preset; + int quality; + } dt_imageio_j2k_v2_t; + + if(old_version == 1) + { + typedef struct _imageio_j2k_v1_t { int max_width, max_height; int width, height; @@ -542,8 +546,8 @@ int quality; } dt_imageio_j2k_v1_t; - dt_imageio_j2k_v1_t *o = (dt_imageio_j2k_v1_t *)old_params; - dt_imageio_j2k_t *n = (dt_imageio_j2k_t *)malloc(sizeof(dt_imageio_j2k_t)); + const dt_imageio_j2k_v1_t *o = (dt_imageio_j2k_v1_t *)old_params; + dt_imageio_j2k_v2_t *n = (dt_imageio_j2k_v2_t *)malloc(sizeof(dt_imageio_j2k_v2_t)); n->global.max_width = o->max_width; n->global.max_height = o->max_height; @@ -555,7 +559,40 @@ n->format = o->format; n->preset = o->preset; n->quality = o->quality; - *new_size = self->params_size(self); + + *new_version = 2; + *new_size = sizeof(dt_imageio_j2k_v2_t); + return n; + } + + // incremental update supported: + + typedef struct dt_imageio_j2k_v3_t + { + dt_imageio_module_data_t global; + int bpp; + dt_imageio_j2k_preset_t preset; + int quality; + } dt_imageio_j2k_v3_t; + + if(old_version == 2) + { + // let's update from 2 to 3 + const dt_imageio_j2k_v2_t *o = (dt_imageio_j2k_v2_t *)old_params; + dt_imageio_j2k_v3_t *n = (dt_imageio_j2k_v3_t *)malloc(sizeof(dt_imageio_j2k_v3_t)); + + n->global.max_width = o->global.max_width; + n->global.max_height = o->global.max_height; + n->global.width = o->global.width; + n->global.height = o->global.height; + g_strlcpy(n->global.style, o->global.style, sizeof(o->global.style)); + n->global.style_append = o->global.style_append; + n->bpp = o->bpp; + n->preset = o->preset; + n->quality = o->quality; + + *new_size = sizeof(dt_imageio_j2k_v3_t); + *new_version = 3; return n; } return NULL; @@ -565,10 +602,8 @@ { dt_imageio_j2k_t *d = (dt_imageio_j2k_t *)calloc(1, sizeof(dt_imageio_j2k_t)); d->bpp = 12; // can be 8, 12 or 16 - d->format = dt_conf_get_int("plugins/imageio/format/j2k/format"); d->preset = dt_conf_get_int("plugins/imageio/format/j2k/preset"); d->quality = dt_conf_get_int("plugins/imageio/format/j2k/quality"); - if(d->quality <= 0 || d->quality > 100) d->quality = 100; return d; } @@ -582,7 +617,6 @@ if(size != self->params_size(self)) return 1; dt_imageio_j2k_t *d = (dt_imageio_j2k_t *)params; dt_imageio_j2k_gui_t *g = (dt_imageio_j2k_gui_t *)self->gui_data; - dt_bauhaus_combobox_set(g->format, d->format); dt_bauhaus_combobox_set(g->preset, d->preset); dt_bauhaus_slider_set(g->quality, d->quality); return 0; @@ -604,13 +638,9 @@ return "image/jp2"; } -const char *extension(dt_imageio_module_data_t *data_tmp) +const char *extension(dt_imageio_module_data_t *data) { - const dt_imageio_j2k_t *data = (dt_imageio_j2k_t *)data_tmp; - if(data->format == J2K_CFMT) - return "j2k"; - else - return "jp2"; + return "jp2"; } const char *name() @@ -624,12 +654,6 @@ dt_conf_set_int("plugins/imageio/format/j2k/preset", preset); } -static void format_changed(GtkWidget *widget, gpointer user_data) -{ - const int format = dt_bauhaus_combobox_get(widget); - dt_conf_set_int("plugins/imageio/format/j2k/format", format); -} - static void quality_changed(GtkWidget *slider, gpointer user_data) { int quality = (int)dt_bauhaus_slider_get(slider); @@ -643,15 +667,9 @@ self->gui_data = (void *)gui; self->widget = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); - const int format_last = dt_conf_get_int("plugins/imageio/format/j2k/format"); const int preset_last = dt_conf_get_int("plugins/imageio/format/j2k/preset"); const int quality_last = dt_conf_get_int("plugins/imageio/format/j2k/quality"); - DT_BAUHAUS_COMBOBOX_NEW_FULL(gui->format, self, NULL, N_("format"), NULL, - format_last, format_changed, self, - N_("j2k"), N_("jp2")); - gtk_box_pack_start(GTK_BOX(self->widget), gui->format, TRUE, TRUE, 0); - gui->quality = dt_bauhaus_slider_new_with_range((dt_iop_module_t*)self, dt_confgen_get_int("plugins/imageio/format/j2k/quality", DT_MIN), dt_confgen_get_int("plugins/imageio/format/j2k/quality", DT_MAX), @@ -659,8 +677,7 @@ dt_confgen_get_int("plugins/imageio/format/j2k/quality", DT_DEFAULT), 0); dt_bauhaus_widget_set_label(gui->quality, NULL, N_("quality")); - dt_bauhaus_slider_set_default(gui->quality, dt_confgen_get_int("plugins/imageio/format/j2k/quality", DT_DEFAULT)); - if(quality_last > 0 && quality_last <= 100) dt_bauhaus_slider_set(gui->quality, quality_last); + dt_bauhaus_slider_set(gui->quality, quality_last); gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(gui->quality), TRUE, TRUE, 0); g_signal_connect(G_OBJECT(gui->quality), "value-changed", G_CALLBACK(quality_changed), NULL); @@ -682,19 +699,16 @@ void gui_reset(dt_imageio_module_format_t *self) { - const int format_def = dt_confgen_get_int("plugins/imageio/format/j2k/format", DT_DEFAULT); const int preset_def = dt_confgen_get_int("plugins/imageio/format/j2k/preset", DT_DEFAULT); const int quality_def = dt_confgen_get_int("plugins/imageio/format/j2k/quality", DT_DEFAULT); dt_imageio_j2k_gui_t *gui = (dt_imageio_j2k_gui_t *)self->gui_data; - dt_bauhaus_combobox_set(gui->format, format_def); dt_bauhaus_combobox_set(gui->preset, preset_def); dt_bauhaus_combobox_set(gui->quality, quality_def); } int flags(dt_imageio_module_data_t *data) { - dt_imageio_j2k_t *j = (dt_imageio_j2k_t *)data; - return ((j && j->format == JP2_CFMT) ? FORMAT_FLAGS_SUPPORT_XMP : 0); + return FORMAT_FLAGS_SUPPORT_XMP; } // clang-format off diff -Nru darktable-4.4.2/src/imageio/format/jpeg.c darktable-4.6.1/src/imageio/format/jpeg.c --- darktable-4.4.2/src/imageio/format/jpeg.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/format/jpeg.c 2024-02-16 17:31:09.000000000 +0000 @@ -38,12 +38,22 @@ #undef HAVE_STDLIB_H #undef HAVE_STDDEF_H -DT_MODULE(2) +DT_MODULE(3) + +typedef enum dt_imageio_jpeg_subsample_t +{ + DT_SUBSAMPLE_AUTO, + DT_SUBSAMPLE_444, + DT_SUBSAMPLE_440, + DT_SUBSAMPLE_422, + DT_SUBSAMPLE_420 +} dt_imageio_jpeg_subsample_t; typedef struct dt_imageio_jpeg_t { dt_imageio_module_data_t global; int quality; + dt_imageio_jpeg_subsample_t subsample; struct jpeg_source_mgr src; struct jpeg_destination_mgr dest; struct jpeg_decompress_struct dinfo; @@ -54,6 +64,7 @@ typedef struct dt_imageio_jpeg_gui_data_t { GtkWidget *quality; + GtkWidget *subsample; } dt_imageio_jpeg_gui_data_t; // error functions @@ -99,13 +110,16 @@ * SOI and JFIF or Adobe markers, but before all else.) */ -static void write_icc_profile(j_compress_ptr cinfo, const JOCTET *icc_data_ptr, unsigned int icc_data_len) +static void write_icc_profile(j_compress_ptr cinfo, + const JOCTET *icc_data_ptr, + unsigned int icc_data_len) { int cur_marker = 1; /* per spec, counting starts at 1 */ /* Calculate the number of markers we'll need, rounding up of course */ unsigned int num_markers = icc_data_len / MAX_DATA_BYTES_IN_MARKER; - if(num_markers * MAX_DATA_BYTES_IN_MARKER != icc_data_len) num_markers++; + if(num_markers * MAX_DATA_BYTES_IN_MARKER != icc_data_len) + num_markers++; while(icc_data_len > 0) { @@ -157,9 +171,16 @@ #undef MAX_SEQ_NO -int write_image(dt_imageio_module_data_t *jpg_tmp, const char *filename, const void *in_tmp, - dt_colorspaces_color_profile_type_t over_type, const char *over_filename, - void *exif, int exif_len, dt_imgid_t imgid, int num, int total, struct dt_dev_pixelpipe_t *pipe, +int write_image(dt_imageio_module_data_t *jpg_tmp, + const char *filename, + const void *in_tmp, + dt_colorspaces_color_profile_type_t over_type, + const char *over_filename, + void *exif, int exif_len, + dt_imgid_t imgid, + int num, + int total, + struct dt_dev_pixelpipe_t *pipe, const gboolean export_masks) { dt_imageio_jpeg_t *jpg = (dt_imageio_jpeg_t *)jpg_tmp; @@ -184,6 +205,7 @@ jpg->cinfo.in_color_space = JCS_RGB; jpeg_set_defaults(&(jpg->cinfo)); jpeg_set_quality(&(jpg->cinfo), jpg->quality, TRUE); + if(jpg->quality > 90) jpg->cinfo.comp_info[0].v_samp_factor = 1; if(jpg->quality > 92) jpg->cinfo.comp_info[0].h_samp_factor = 1; if(jpg->quality > 95) jpg->cinfo.dct_method = JDCT_FLOAT; @@ -193,6 +215,41 @@ if(jpg->quality < 40) jpg->cinfo.smoothing_factor = 60; jpg->cinfo.optimize_coding = 1; + // Common part for all subsampling formulas: + jpg->cinfo.comp_info[1].h_samp_factor = 1; + jpg->cinfo.comp_info[1].v_samp_factor = 1; + jpg->cinfo.comp_info[2].h_samp_factor = 1; + jpg->cinfo.comp_info[2].v_samp_factor = 1; + + const int subsample = dt_conf_get_int("plugins/imageio/format/jpeg/subsample"); + switch(subsample) + { + case 1: // 1x1 1x1 1x1 (4:4:4) : No chroma subsampling + { + jpg->cinfo.comp_info[0].h_samp_factor = 1; + jpg->cinfo.comp_info[0].v_samp_factor = 1; + break; + } + case 2: // 1x2 1x1 1x1 (4:4:0) : Color sampling rate halved vertically + { + jpg->cinfo.comp_info[0].h_samp_factor = 1; + jpg->cinfo.comp_info[0].v_samp_factor = 2; + break; + } + case 3: // 2x1 1x1 1x1 (4:2:2) : Color sampling rate halved horizontally + { + jpg->cinfo.comp_info[0].h_samp_factor = 2; + jpg->cinfo.comp_info[0].v_samp_factor = 1; + break; + } + case 4: // 2x2 1x1 1x1 (4:2:0) : Color sampling rate halved horizontally and vertically + { + jpg->cinfo.comp_info[0].h_samp_factor = 2; + jpg->cinfo.comp_info[0].v_samp_factor = 2; + break; + } + } + const int resolution = dt_conf_get_int("metadata/resolution"); jpg->cinfo.density_unit = 1; jpg->cinfo.X_density = resolution; @@ -200,7 +257,8 @@ jpeg_start_compress(&(jpg->cinfo), TRUE); - cmsHPROFILE out_profile = dt_colorspaces_get_output_profile(imgid, over_type, over_filename)->profile; + cmsHPROFILE out_profile = + dt_colorspaces_get_output_profile(imgid, over_type, over_filename)->profile; uint32_t len = 0; cmsSaveProfileToMem(out_profile, NULL, &len); if(len > 0) @@ -235,7 +293,8 @@ return 0; } -static int __attribute__((__unused__)) read_header(const char *filename, dt_imageio_jpeg_t *jpg) +static int __attribute__((__unused__)) read_header(const char *filename, + dt_imageio_jpeg_t *jpg) { jpg->f = g_fopen(filename, "rb"); if(!jpg->f) return 1; @@ -258,7 +317,8 @@ return 0; } -int read_image(dt_imageio_module_data_t *jpg_tmp, uint8_t *out) +int read_image(dt_imageio_module_data_t *jpg_tmp, + uint8_t *out) { dt_imageio_jpeg_t *jpg = (dt_imageio_jpeg_t *)jpg_tmp; struct dt_imageio_jpeg_error_mgr jerr; @@ -276,10 +336,13 @@ uint8_t *tmp = out; while(jpg->dinfo.output_scanline < jpg->dinfo.image_height) { - if(jpeg_read_scanlines(&(jpg->dinfo), row_pointer, 1) != 1) return 1; + if(jpeg_read_scanlines(&(jpg->dinfo), row_pointer, 1) != 1) + return 1; + if(jpg->dinfo.num_components < 3) for(JDIMENSION i = 0; i < jpg->dinfo.image_width; i++) - for(int k = 0; k < 3; k++) tmp[4 * i + k] = row_pointer[0][jpg->dinfo.num_components * i + 0]; + for(int k = 0; k < 3; k++) + tmp[4 * i + k] = row_pointer[0][jpg->dinfo.num_components * i + 0]; else for(JDIMENSION i = 0; i < jpg->dinfo.image_width; i++) for(int k = 0; k < 3; k++) tmp[4 * i + k] = row_pointer[0][3 * i + k]; @@ -301,14 +364,30 @@ size_t params_size(dt_imageio_module_format_t *self) { - return sizeof(dt_imageio_module_data_t) + sizeof(int); + return sizeof(dt_imageio_module_data_t) + + sizeof(int) + + sizeof(dt_imageio_jpeg_subsample_t); } -void *legacy_params(dt_imageio_module_format_t *self, const void *const old_params, - const size_t old_params_size, const int old_version, const int new_version, +void *legacy_params(dt_imageio_module_format_t *self, + const void *const old_params, + const size_t old_params_size, + const int old_version, + int *new_version, size_t *new_size) { - if(old_version == 1 && new_version == 2) + typedef struct dt_imageio_jpeg_v2_t + { + dt_imageio_module_data_t global; + int quality; + struct jpeg_source_mgr src; + struct jpeg_destination_mgr dest; + struct jpeg_decompress_struct dinfo; + struct jpeg_compress_struct cinfo; + FILE *f; + } dt_imageio_jpeg_v2_t; + + if(old_version == 1) { typedef struct dt_imageio_jpeg_v1_t { @@ -324,7 +403,7 @@ } dt_imageio_jpeg_v1_t; const dt_imageio_jpeg_v1_t *o = (dt_imageio_jpeg_v1_t *)old_params; - dt_imageio_jpeg_t *n = (dt_imageio_jpeg_t *)malloc(sizeof(dt_imageio_jpeg_t)); + dt_imageio_jpeg_v2_t *n = (dt_imageio_jpeg_v2_t *)malloc(sizeof(dt_imageio_jpeg_v2_t)); n->global.max_width = o->max_width; n->global.max_height = o->max_height; @@ -338,9 +417,49 @@ n->dinfo = o->dinfo; n->cinfo = o->cinfo; n->f = o->f; - *new_size = self->params_size(self); + + *new_version = 2; + *new_size = sizeof(dt_imageio_module_data_t) + sizeof(int); return n; } + + typedef struct dt_imageio_jpeg_v3_t + { + dt_imageio_module_data_t global; + int quality; + dt_imageio_jpeg_subsample_t subsample; + struct jpeg_source_mgr src; + struct jpeg_destination_mgr dest; + struct jpeg_decompress_struct dinfo; + struct jpeg_compress_struct cinfo; + FILE *f; + } dt_imageio_jpeg_v3_t; + + if(old_version == 2) + { + const dt_imageio_jpeg_v2_t *o = (dt_imageio_jpeg_v2_t *)old_params; + dt_imageio_jpeg_v3_t *n = (dt_imageio_jpeg_v3_t *)malloc(sizeof(dt_imageio_jpeg_v3_t)); + + n->global.max_width = o->global.max_width; + n->global.max_height = o->global.max_height; + n->global.width = o->global.width; + n->global.height = o->global.height; + g_strlcpy(n->global.style, o->global.style, sizeof(o->global.style)); + n->global.style_append = o->global.style_append; + n->quality = o->quality; + n->subsample = DT_SUBSAMPLE_AUTO; + n->src = o->src; + n->dest = o->dest; + n->dinfo = o->dinfo; + n->cinfo = o->cinfo; + n->f = o->f; + + *new_version = 3; + *new_size = sizeof(dt_imageio_module_data_t) + + sizeof(int) + sizeof(dt_imageio_jpeg_subsample_t); + return n; + } + return NULL; } @@ -349,25 +468,31 @@ // adjust this if more params are stored (subsampling etc) dt_imageio_jpeg_t *d = (dt_imageio_jpeg_t *)calloc(1, sizeof(dt_imageio_jpeg_t)); d->quality = dt_conf_get_int("plugins/imageio/format/jpeg/quality"); - if(d->quality <= 0 || d->quality > 100) d->quality = 100; + d->subsample = dt_conf_get_int("plugins/imageio/format/jpeg/subsample"); return d; } -void free_params(dt_imageio_module_format_t *self, dt_imageio_module_data_t *params) +void free_params(dt_imageio_module_format_t *self, + dt_imageio_module_data_t *params) { free(params); } -int set_params(dt_imageio_module_format_t *self, const void *params, const int size) +int set_params(dt_imageio_module_format_t *self, + const void *params, + const int size) { if(size != self->params_size(self)) return 1; const dt_imageio_jpeg_t *d = (dt_imageio_jpeg_t *)params; dt_imageio_jpeg_gui_data_t *g = (dt_imageio_jpeg_gui_data_t *)self->gui_data; dt_bauhaus_slider_set(g->quality, d->quality); + dt_bauhaus_combobox_set(g->subsample, d->subsample); return 0; } -int dimension(struct dt_imageio_module_format_t *self, struct dt_imageio_module_data_t *data, uint32_t *width, +int dimension(struct dt_imageio_module_format_t *self, + struct dt_imageio_module_data_t *data, + uint32_t *width, uint32_t *height) { /* maximum dimensions supported by JPEG images */ @@ -404,7 +529,8 @@ void init(dt_imageio_module_format_t *self) { #ifdef USE_LUA - dt_lua_register_module_member(darktable.lua_state.state, self, dt_imageio_jpeg_t, quality, int); + dt_lua_register_module_member(darktable.lua_state.state, self, + dt_imageio_jpeg_t, quality, int); #endif } void cleanup(dt_imageio_module_format_t *self) @@ -420,32 +546,65 @@ return _("JPEG (8-bit)"); } -static void quality_changed(GtkWidget *slider, gpointer user_data) +static void quality_changed(GtkWidget *slider, + gpointer user_data) { const int quality = (int)dt_bauhaus_slider_get(slider); dt_conf_set_int("plugins/imageio/format/jpeg/quality", quality); } +static void subsample_combobox_changed(GtkWidget *widget, + gpointer user_data) +{ + const dt_imageio_jpeg_subsample_t subsample = dt_bauhaus_combobox_get(widget); + dt_conf_set_int("plugins/imageio/format/jpeg/subsample", subsample); +} + void gui_init(dt_imageio_module_format_t *self) { - dt_imageio_jpeg_gui_data_t *g = (dt_imageio_jpeg_gui_data_t *)malloc(sizeof(dt_imageio_jpeg_gui_data_t)); + dt_imageio_jpeg_gui_data_t *g = + (dt_imageio_jpeg_gui_data_t *)malloc(sizeof(dt_imageio_jpeg_gui_data_t)); self->gui_data = g; + + const dt_imageio_jpeg_subsample_t subsample = + dt_conf_get_int("plugins/imageio/format/jpeg/subsample"); + // construct gui with jpeg specific options: - GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); self->widget = box; // quality slider - g->quality = dt_bauhaus_slider_new_with_range((dt_iop_module_t*)self, - dt_confgen_get_int("plugins/imageio/format/jpeg/quality", DT_MIN), - dt_confgen_get_int("plugins/imageio/format/jpeg/quality", DT_MAX), - 1, - dt_confgen_get_int("plugins/imageio/format/jpeg/quality", DT_DEFAULT), - 0); + g->quality = dt_bauhaus_slider_new_with_range + ((dt_iop_module_t*)self, + dt_confgen_get_int("plugins/imageio/format/jpeg/quality", DT_MIN), + dt_confgen_get_int("plugins/imageio/format/jpeg/quality", DT_MAX), + 1, + dt_confgen_get_int("plugins/imageio/format/jpeg/quality", DT_DEFAULT), + 0); + dt_bauhaus_widget_set_label(g->quality, NULL, N_("quality")); - dt_bauhaus_slider_set_default(g->quality, dt_confgen_get_int("plugins/imageio/format/jpeg/quality", DT_DEFAULT)); dt_bauhaus_slider_set(g->quality, dt_conf_get_int("plugins/imageio/format/jpeg/quality")); gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(g->quality), TRUE, TRUE, 0); - g_signal_connect(G_OBJECT(g->quality), "value-changed", G_CALLBACK(quality_changed), NULL); - // TODO: add more options: subsample dreggn + g_signal_connect(G_OBJECT(g->quality), "value-changed", + G_CALLBACK(quality_changed), NULL); + + DT_BAUHAUS_COMBOBOX_NEW_FULL + (g->subsample, + self, + NULL, + N_("chroma subsampling"), + _("chroma subsampling setting for JPEG encoder.\n" + "auto - use subsampling determined by the quality value\n" + "4:4:4 - no chroma subsampling\n" + "4:4:0 - color sampling rate halved vertically\n" + "4:2:2 - color sampling rate halved horizontally\n" + "4:2:0 - color sampling rate halved horizontally and vertically"), + subsample, + subsample_combobox_changed, + self, + N_("auto"), N_("4:4:4"), N_("4:4:0"), N_("4:2:2"), N_("4:2:0")); + + gtk_box_pack_start(GTK_BOX(box), g->subsample, TRUE, TRUE, 0); + } void gui_cleanup(dt_imageio_module_format_t *self) @@ -456,7 +615,10 @@ void gui_reset(dt_imageio_module_format_t *self) { dt_imageio_jpeg_gui_data_t *g = (dt_imageio_jpeg_gui_data_t *)self->gui_data; - dt_bauhaus_slider_set(g->quality, dt_confgen_get_int("plugins/imageio/format/jpeg/quality", DT_DEFAULT)); + dt_bauhaus_slider_set(g->quality, + dt_confgen_get_int("plugins/imageio/format/jpeg/quality", + DT_DEFAULT)); + dt_bauhaus_combobox_set(g->subsample, DT_SUBSAMPLE_AUTO); } // clang-format off diff -Nru darktable-4.4.2/src/imageio/format/jxl.c darktable-4.6.1/src/imageio/format/jxl.c --- darktable-4.4.2/src/imageio/format/jxl.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/format/jxl.c 2024-02-16 17:31:09.000000000 +0000 @@ -26,6 +26,7 @@ #include <jxl/encode.h> #include <jxl/resizable_parallel_runner.h> +#include <jxl/version.h> /* TODO: workaround for v0.7, remove when bumping requirement */ DT_MODULE(1) @@ -168,9 +169,15 @@ else { basic_info.uses_original_profile = params->original == FALSE ? JXL_FALSE : JXL_TRUE; - const float distance = params->quality >= 30 ? 0.1f + (100 - params->quality) * 0.09f - : 6.24f + powf(2.5f, (30 - params->quality) / 5.0f) / 6.25f; - LIBJXL_ASSERT(JxlEncoderSetFrameDistance(frame_settings, MIN(distance, 25.0f))); + const float distance +#if JPEGXL_NUMERIC_VERSION < JPEGXL_COMPUTE_NUMERIC_VERSION(0, 9, 0) + = MIN(params->quality >= 30 ? 0.1f + (100 - params->quality) * 0.09f + : 6.24f + powf(2.5f, (30 - params->quality) / 5.0f) / 6.25f, + 25.0f); +#else + = JxlEncoderDistanceFromQuality(params->quality); +#endif + LIBJXL_ASSERT(JxlEncoderSetFrameDistance(frame_settings, distance)); } LIBJXL_ASSERT(JxlEncoderFrameSettingsSetOption(frame_settings, JXL_ENC_FRAME_SETTING_EFFORT, params->effort)); @@ -246,6 +253,10 @@ color_encoding.primaries = JXL_PRIMARIES_P3; color_encoding.transfer_function = JXL_TRANSFER_FUNCTION_HLG; break; + case DT_COLORSPACE_DISPLAY_P3: + color_encoding.primaries = JXL_PRIMARIES_P3; + color_encoding.transfer_function = JXL_TRANSFER_FUNCTION_SRGB; + break; default: write_color_natively = FALSE; break; diff -Nru darktable-4.4.2/src/imageio/format/png.c darktable-4.6.1/src/imageio/format/png.c --- darktable-4.4.2/src/imageio/format/png.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/format/png.c 2024-02-16 17:31:09.000000000 +0000 @@ -170,8 +170,12 @@ // metadata has to be written before the pixels - // embed icc profile - cmsHPROFILE out_profile = dt_colorspaces_get_output_profile(imgid, over_type, over_filename)->profile; + // determine the actual (export vs colorout) color profile used + const dt_colorspaces_color_profile_t *cp = dt_colorspaces_get_output_profile(imgid, over_type, over_filename); + cmsHPROFILE out_profile = cp->profile; + +#ifdef PNG_iCCP_SUPPORTED + // embed ICC profile regardless of cICP later (compliant readers shall check cICP first) uint32_t len = 0; cmsSaveProfileToMem(out_profile, NULL, &len); if(len > 0) @@ -193,6 +197,7 @@ free(buf); } } +#endif // write exif data if(exif && exif_len > 0) @@ -214,6 +219,71 @@ png_write_info(png_ptr, info_ptr); +#if(PNG_LIBPNG_VER >= 10500) + /* + * If possible, we want libpng to save the color encoding in a new + * cICP chunk as well (see https://www.w3.org/TR/png-3/#cICP-chunk). + * If we are unable to find the required color encoding data we have + * anyway provided an iCCP chunk (and hope we could at least do that!). + * + * Must come after png_write_info() for the time being. + * TODO: use known cICP chunk write support API once added to libpng + */ + png_byte data[4] = { + DT_CICP_COLOR_PRIMARIES_UNSPECIFIED, DT_CICP_TRANSFER_CHARACTERISTICS_UNSPECIFIED, + DT_CICP_MATRIX_COEFFICIENTS_IDENTITY, + 1, // full range + }; + + switch(cp->type) + { + case DT_COLORSPACE_SRGB: + data[0] = DT_CICP_COLOR_PRIMARIES_REC709; + data[1] = DT_CICP_TRANSFER_CHARACTERISTICS_SRGB; + break; + case DT_COLORSPACE_REC709: + data[0] = DT_CICP_COLOR_PRIMARIES_REC709; + data[1] = DT_CICP_TRANSFER_CHARACTERISTICS_REC709; + break; + case DT_COLORSPACE_LIN_REC709: + data[0] = DT_CICP_COLOR_PRIMARIES_REC709; + data[1] = DT_CICP_TRANSFER_CHARACTERISTICS_LINEAR; + break; + case DT_COLORSPACE_LIN_REC2020: + data[0] = DT_CICP_COLOR_PRIMARIES_REC2020; + data[1] = DT_CICP_TRANSFER_CHARACTERISTICS_LINEAR; + break; + case DT_COLORSPACE_PQ_REC2020: + data[0] = DT_CICP_COLOR_PRIMARIES_REC2020; + data[1] = DT_CICP_TRANSFER_CHARACTERISTICS_PQ; + break; + case DT_COLORSPACE_HLG_REC2020: + data[0] = DT_CICP_COLOR_PRIMARIES_REC2020; + data[1] = DT_CICP_TRANSFER_CHARACTERISTICS_HLG; + break; + case DT_COLORSPACE_PQ_P3: + data[0] = DT_CICP_COLOR_PRIMARIES_P3; + data[1] = DT_CICP_TRANSFER_CHARACTERISTICS_PQ; + break; + case DT_COLORSPACE_HLG_P3: + data[0] = DT_CICP_COLOR_PRIMARIES_P3; + data[1] = DT_CICP_TRANSFER_CHARACTERISTICS_HLG; + break; + case DT_COLORSPACE_DISPLAY_P3: + data[0] = DT_CICP_COLOR_PRIMARIES_P3; + data[1] = DT_CICP_TRANSFER_CHARACTERISTICS_SRGB; + break; + default: + break; + } + + if(data[0] != DT_CICP_COLOR_PRIMARIES_UNSPECIFIED && data[1] != DT_CICP_TRANSFER_CHARACTERISTICS_UNSPECIFIED) + { + const png_byte chunk_name[5] = "cICP"; + png_write_chunk(png_ptr, chunk_name, data, 4); + } +#endif + /* * Get rid of filler (OR ALPHA) bytes, pack XRGB/RGBX/ARGB/RGBA into * RGB (4 channels -> 3 channels). The second parameter is not used. @@ -352,10 +422,24 @@ return sizeof(dt_imageio_module_data_t) + 2 * sizeof(int); } -void *legacy_params(dt_imageio_module_format_t *self, const void *const old_params, const size_t old_params_size, - const int old_version, const int new_version, size_t *new_size) -{ - if(old_version == 1 && new_version == 3) +void *legacy_params(dt_imageio_module_format_t *self, + const void *const old_params, + const size_t old_params_size, + const int old_version, + int *new_version, + size_t *new_size) +{ + typedef struct dt_imageio_png_v3_t + { + dt_imageio_module_data_t global; + int bpp; + int compression; + FILE *f; + png_structp png_ptr; + png_infop info_ptr; + } dt_imageio_png_v3_t; + + if(old_version == 1) { typedef struct dt_imageio_png_v1_t { @@ -368,8 +452,8 @@ png_infop info_ptr; } dt_imageio_png_v1_t; - dt_imageio_png_v1_t *o = (dt_imageio_png_v1_t *)old_params; - dt_imageio_png_t *n = (dt_imageio_png_t *)malloc(sizeof(dt_imageio_png_t)); + const dt_imageio_png_v1_t *o = (dt_imageio_png_v1_t *)old_params; + dt_imageio_png_v3_t *n = (dt_imageio_png_v3_t *)malloc(sizeof(dt_imageio_png_v3_t)); n->global.max_width = o->max_width; n->global.max_height = o->max_height; @@ -382,10 +466,12 @@ n->f = o->f; n->png_ptr = o->png_ptr; n->info_ptr = o->info_ptr; - *new_size = self->params_size(self); + + *new_version = 3; + *new_size = sizeof(dt_imageio_module_data_t) + 2 * sizeof(int); return n; } - else if(old_version == 2 && new_version == 3) + else if(old_version == 2) { typedef struct dt_imageio_png_v2_t { @@ -399,8 +485,8 @@ png_infop info_ptr; } dt_imageio_png_v2_t; - dt_imageio_png_v2_t *o = (dt_imageio_png_v2_t *)old_params; - dt_imageio_png_t *n = (dt_imageio_png_t *)malloc(sizeof(dt_imageio_png_t)); + const dt_imageio_png_v2_t *o = (dt_imageio_png_v2_t *)old_params; + dt_imageio_png_v3_t *n = (dt_imageio_png_v3_t *)malloc(sizeof(dt_imageio_png_v3_t)); n->global.max_width = o->max_width; n->global.max_height = o->max_height; @@ -413,17 +499,37 @@ n->f = o->f; n->png_ptr = o->png_ptr; n->info_ptr = o->info_ptr; - *new_size = self->params_size(self); + + *new_version = 3; + *new_size = sizeof(dt_imageio_module_data_t) + 2 * sizeof(int); + return n; + } + + + // incremental update supported: + /* + typedef struct dt_imageio_png_v4_t + { + ... + } dt_imageio_png_v4_t; + + if(old_version == 3) + { + // let's update from 3 to 4 + + ... + *new_size = sizeof(dt_imageio_module_data_t) + 2 * sizeof(int); + *new_version = 4; return n; } + */ return NULL; } void *get_params(dt_imageio_module_format_t *self) { dt_imageio_png_t *d = (dt_imageio_png_t *)calloc(1, sizeof(dt_imageio_png_t)); - const char *bpp = dt_conf_get_string_const("plugins/imageio/format/png/bpp"); - d->bpp = atoi(bpp); + d->bpp = dt_conf_get_int("plugins/imageio/format/png/bpp"); if(d->bpp != 8 && d->bpp != 16) d->bpp = 8; @@ -520,8 +626,7 @@ { dt_imageio_png_gui_t *gui = (dt_imageio_png_gui_t *)malloc(sizeof(dt_imageio_png_gui_t)); self->gui_data = (void *)gui; - const char *conf_bpp = dt_conf_get_string_const("plugins/imageio/format/png/bpp"); - int bpp = atoi(conf_bpp); + const int bpp = dt_conf_get_int("plugins/imageio/format/png/bpp"); // PNG compression level might actually be zero! int compression = 5; diff -Nru darktable-4.4.2/src/imageio/format/tiff.c darktable-4.6.1/src/imageio/format/tiff.c --- darktable-4.4.2/src/imageio/format/tiff.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/format/tiff.c 2024-02-16 17:31:09.000000000 +0000 @@ -165,67 +165,85 @@ As there might be pipeline errors at the border we leave them alone. After these checks layers can be used later on. */ - uint16_t layers = 3; // default are rgb images + volatile uint16_t layers = 3; // default are rgb images - if((d->global.height > 4) && (d->global.width > 4) && d->shortfile) + if(d->shortfile && (d->global.height > 4) && (d->global.width > 4)) { layers = 1; // let's now assume a grayscale if(d->bpp == 32 || (d->bpp == 16 && d->pixelformat)) { - for(int y = 1; y < d->global.height-1; y++) +#ifdef _OPENMP +#pragma omp parallel for simd default(none) \ + dt_omp_firstprivate(in_void, d) \ + shared(layers) \ + schedule(simd:static) \ + collapse(2) +#endif + for(int y = 1; y < d->global.height - 1; ++y) { - float *in = (float *)in_void + (size_t)4 * y * d->global.width; - for(int x = 1; x < d->global.width-1; x++, in += 4) + for(int x = 1; x < d->global.width - 1; ++x) { - if((fabsf(fmaxf(in[0], 0.001f) / fmaxf(in[1], 0.001f)) > 1.01f) || - (fabsf(fmaxf(in[0], 0.001f) / fmaxf(in[2], 0.001f)) > 1.01f) || - (fabsf(fmaxf(in[1], 0.001f) / fmaxf(in[2], 0.001f)) > 1.01f)) + if(layers == 3) continue; + float *in = (float *)in_void + (size_t)(4 * (y * d->global.width + x)); + if((fabsf(fmaxf(in[0], 0.001f) / fmaxf(in[1], 0.001f)) > 1.01f) + || (fabsf(fmaxf(in[0], 0.001f) / fmaxf(in[2], 0.001f)) > 1.01f) + || (fabsf(fmaxf(in[1], 0.001f) / fmaxf(in[2], 0.001f)) > 1.01f)) { layers = 3; - goto checkdone; } } } } else if(d->bpp == 16 && !d->pixelformat) { - for(int y = 1; y < d->global.height-1; y++) +#ifdef _OPENMP +#pragma omp parallel for simd default(none) \ + dt_omp_firstprivate(in_void, d) \ + shared(layers) \ + schedule(simd:static) \ + collapse(2) +#endif + for(int y = 1; y < d->global.height - 1; ++y) { - uint16_t *in = (uint16_t *)in_void + (size_t)4 * y * d->global.width; - for(int x = 1; x < d->global.width-1; x++, in += 4) + for(int x = 1; x < d->global.width - 1; ++x) { - if((abs(in[0] - in[1]) > 100) || - (abs(in[0] - in[2]) > 100) || - (abs(in[1] - in[2]) > 100)) + if(layers == 3) continue; + uint16_t *in = (uint16_t *)in_void + (size_t)(4 * (y * d->global.width + x)); + if((abs((int)in[0] - (int)in[1]) > 165) || (abs((int)in[0] - (int)in[2]) > 165) + || (abs((int)in[1] - (int)in[2]) > 165)) { layers = 3; - goto checkdone; } } } } else // 8bpp { - for(int y = 1; y < d->global.height-1; y++) +#ifdef _OPENMP +#pragma omp parallel for simd default(none) \ + dt_omp_firstprivate(in_void, d) \ + shared(layers) \ + schedule(simd:static) \ + collapse(2) +#endif + for(int y = 1; y < d->global.height - 1; ++y) { - uint8_t *in = (uint8_t *)in_void + (size_t)4 * y * d->global.width; - for(int x = 1; x < d->global.width-1; x++, in += 4) + for(int x = 1; x < d->global.width - 1; ++x) { - if((abs(in[0] - in[1]) > 5) || - (abs(in[0] - in[2]) > 5) || - (abs(in[1] - in[2]) > 5)) + if(layers == 3) continue; + uint8_t *in = (uint8_t *)in_void + (size_t)(4 * (y * d->global.width + x)); + if((abs((int)in[0] - (int)in[1]) > 2) || (abs((int)in[0] - (int)in[2]) > 2) + || (abs((int)in[1] - (int)in[2]) > 2)) { layers = 3; - goto checkdone; } } } } } - checkdone: - if(layers == 1) - dt_control_log(_("will export as a grayscale image")); + if(d->shortfile && layers == 3) + dt_control_log(_("not a B&W image, will not export as grayscale")); TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, layers); TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, (uint16_t)d->bpp); @@ -590,10 +608,25 @@ return sizeof(dt_imageio_tiff_t) - sizeof(TIFF *); } -void *legacy_params(dt_imageio_module_format_t *self, const void *const old_params, const size_t old_params_size, - const int old_version, const int new_version, size_t *new_size) -{ - if(old_version == 1 && new_version == 4) +void *legacy_params(dt_imageio_module_format_t *self, + const void *const old_params, + const size_t old_params_size, + const int old_version, + int *new_version, + size_t *new_size) +{ + typedef struct dt_imageio_tiff_v4_t + { + dt_imageio_module_data_t global; + int bpp; + int pixelformat; + int compress; + int compresslevel; + int shortfile; + TIFF *handle; + } dt_imageio_tiff_v4_t; + + if(old_version == 1) { typedef struct dt_imageio_tiff_v1_t { @@ -606,7 +639,7 @@ } dt_imageio_tiff_v1_t; const dt_imageio_tiff_v1_t *o = (dt_imageio_tiff_v1_t *)old_params; - dt_imageio_tiff_t *n = (dt_imageio_tiff_t *)calloc(1, sizeof(dt_imageio_tiff_t)); + dt_imageio_tiff_v4_t *n = (dt_imageio_tiff_v4_t *)calloc(1, sizeof(dt_imageio_tiff_v4_t)); n->global.max_width = o->max_width; n->global.max_height = o->max_height; @@ -620,10 +653,12 @@ n->compresslevel = 6; n->shortfile = 0; n->handle = o->handle; - *new_size = self->params_size(self); + + *new_version = 4; + *new_size = sizeof(dt_imageio_tiff_v4_t) - sizeof(TIFF *); return n; } - else if(old_version == 2 && new_version == 4) + else if(old_version == 2) { typedef struct dt_imageio_tiff_v2_t { @@ -637,7 +672,7 @@ } dt_imageio_tiff_v2_t; const dt_imageio_tiff_v2_t *o = (dt_imageio_tiff_v2_t *)old_params; - dt_imageio_tiff_t *n = (dt_imageio_tiff_t *)calloc(1, sizeof(dt_imageio_tiff_t)); + dt_imageio_tiff_v4_t *n = (dt_imageio_tiff_v4_t *)calloc(1, sizeof(dt_imageio_tiff_v4_t)); n->global.max_width = o->max_width; n->global.max_height = o->max_height; @@ -651,10 +686,12 @@ n->compresslevel = 6; n->shortfile = 0; n->handle = o->handle; - *new_size = self->params_size(self); + + *new_version = 4; + *new_size = sizeof(dt_imageio_tiff_v4_t) - sizeof(TIFF *); return n; } - else if(old_version == 3 && new_version == 4) + else if(old_version == 3) { typedef struct dt_imageio_tiff_v3_t { @@ -667,7 +704,7 @@ } dt_imageio_tiff_v3_t; const dt_imageio_tiff_v3_t *o = (dt_imageio_tiff_v3_t *)old_params; - dt_imageio_tiff_t *n = (dt_imageio_tiff_t *)calloc(1, sizeof(dt_imageio_tiff_t)); + dt_imageio_tiff_v4_t *n = (dt_imageio_tiff_v4_t *)calloc(1, sizeof(dt_imageio_tiff_v4_t)); n->global.max_width = o->global.max_width; n->global.max_height = o->global.max_height; @@ -689,9 +726,29 @@ } n->shortfile = o->shortfile; n->handle = o->handle; - *new_size = self->params_size(self); + + *new_version = 4; + *new_size = sizeof(dt_imageio_tiff_v4_t) - sizeof(TIFF *); + return n; + } + + // incremental update supported: + /* + typedef struct dt_imageio_tiff_v5_t + { + ... + } dt_imageio_tiff_v5_t; + + if(old_version == 4) + { + // let's update from 4 to 5 + + ... + *new_size = sizeof(dt_imageio_tiff_v5_t) - sizeof(TIFF *); + *new_version = 5; return n; } + */ return NULL; } @@ -709,7 +766,7 @@ #endif d->compress = dt_conf_get_int("plugins/imageio/format/tiff/compress"); d->compresslevel = dt_conf_get_int("plugins/imageio/format/tiff/compresslevel"); - d->shortfile = dt_conf_get_int("plugins/imageio/format/tiff/shortfile"); + d->shortfile = dt_conf_get_bool("plugins/imageio/format/tiff/shortfile"); return d; } @@ -793,7 +850,7 @@ static void shortfile_combobox_changed(GtkWidget *widget, gpointer user_data) { const int mode = dt_bauhaus_combobox_get(widget); - dt_conf_set_int("plugins/imageio/format/tiff/shortfile", mode); + dt_conf_set_bool("plugins/imageio/format/tiff/shortfile", mode); } static void compress_combobox_changed(GtkWidget *widget, dt_imageio_tiff_gui_t *gui) @@ -835,7 +892,7 @@ #endif const int compress = dt_conf_get_int("plugins/imageio/format/tiff/compress"); const int compresslevel = dt_conf_get_int("plugins/imageio/format/tiff/compresslevel"); - const int shortmode = dt_conf_get_int("plugins/imageio/format/tiff/shortfile"); + const int shortmode = dt_conf_get_bool("plugins/imageio/format/tiff/shortfile"); self->widget = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); @@ -884,10 +941,11 @@ gtk_widget_set_no_show_all(gui->compresslevel, TRUE); // shortfile option combo box - DT_BAUHAUS_COMBOBOX_NEW_FULL(gui->shortfiles, self, NULL, N_("b&w image"), NULL, shortmode, - shortfile_combobox_changed, self, N_("write RGB colors"), N_("write grayscale")); + DT_BAUHAUS_COMBOBOX_NEW_FULL(gui->shortfiles, self, NULL, N_("B&W as grayscale"), + _("saving as grayscale will reduce the size for black & white images"), shortmode, + shortfile_combobox_changed, self, N_("no"), N_("yes")); dt_bauhaus_combobox_set_default(gui->shortfiles, - dt_confgen_get_int("plugins/imageio/format/tiff/shortfile", DT_DEFAULT)); + dt_confgen_get_bool("plugins/imageio/format/tiff/shortfile", DT_DEFAULT)); gtk_box_pack_start(GTK_BOX(self->widget), gui->shortfiles, TRUE, TRUE, 0); } @@ -911,7 +969,7 @@ dt_bauhaus_combobox_set(gui->compress, dt_confgen_get_int("plugins/imageio/format/tiff/compress", DT_DEFAULT)); dt_bauhaus_slider_set(gui->compresslevel, dt_confgen_get_int("plugins/imageio/format/tiff/compresslevel", DT_DEFAULT)); - dt_bauhaus_combobox_set(gui->shortfiles, dt_confgen_get_int("plugins/imageio/format/tiff/shortfile", DT_DEFAULT)); + dt_bauhaus_combobox_set(gui->shortfiles, dt_confgen_get_bool("plugins/imageio/format/tiff/shortfile", DT_DEFAULT)); } int flags(dt_imageio_module_data_t *data) diff -Nru darktable-4.4.2/src/imageio/format/webp.c darktable-4.6.1/src/imageio/format/webp.c --- darktable-4.4.2/src/imageio/format/webp.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/format/webp.c 2024-02-16 17:31:09.000000000 +0000 @@ -255,11 +255,22 @@ return sizeof(dt_imageio_webp_t); } -void *legacy_params(dt_imageio_module_format_t *self, const void *const old_params, - const size_t old_params_size, const int old_version, const int new_version, +void *legacy_params(dt_imageio_module_format_t *self, + const void *const old_params, + const size_t old_params_size, + const int old_version, + int *new_version, size_t *new_size) { - if(old_version == 1 && new_version == 2) + typedef struct dt_imageio_webp_v2_t + { + dt_imageio_module_data_t global; + int comp_type; + int quality; + int hint; + } dt_imageio_webp_v2_t; + + if(old_version == 1) { typedef struct dt_imageio_webp_v1_t { @@ -271,8 +282,8 @@ int hint; } dt_imageio_webp_v1_t; - dt_imageio_webp_v1_t *o = (dt_imageio_webp_v1_t *)old_params; - dt_imageio_webp_t *n = (dt_imageio_webp_t *)malloc(sizeof(dt_imageio_webp_t)); + const dt_imageio_webp_v1_t *o = (dt_imageio_webp_v1_t *)old_params; + dt_imageio_webp_v2_t *n = (dt_imageio_webp_v2_t *)malloc(sizeof(dt_imageio_webp_v2_t)); n->global.max_width = o->max_width; n->global.max_height = o->max_height; @@ -283,9 +294,29 @@ n->comp_type = o->comp_type; n->quality = o->quality; n->hint = o->hint; - *new_size = self->params_size(self); + + *new_version = 2; + *new_size = sizeof(dt_imageio_webp_v2_t); + return n; + } + + // incremental update supported: + /* + typedef struct dt_imageio_webp_v3_t + { + ... + } dt_imageio_webp_v3_t; + + if(old_version == 2) + { + // let's update from 2 to 3 + + ... + *new_size = sizeof(dt_imageio_webp_v3_t); + *new_version = 3; return n; } + */ return NULL; } @@ -380,7 +411,7 @@ self->widget = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); - DT_BAUHAUS_COMBOBOX_NEW_FULL(gui->compression, self, NULL, N_("compression type"), NULL, + DT_BAUHAUS_COMBOBOX_NEW_FULL(gui->compression, self, NULL, N_("compression"), NULL, comp_type, compression_changed, self, N_("lossy"), N_("lossless")); gtk_box_pack_start(GTK_BOX(self->widget), gui->compression, TRUE, TRUE, 0); @@ -392,12 +423,10 @@ dt_confgen_get_int("plugins/imageio/format/webp/quality", DT_DEFAULT), 0); dt_bauhaus_widget_set_label(gui->quality, NULL, N_("quality")); - dt_bauhaus_slider_set_default(gui->quality, dt_confgen_get_int("plugins/imageio/format/webp/quality", DT_DEFAULT)); - dt_bauhaus_slider_set_format(gui->quality, "%"); gtk_widget_set_tooltip_text(gui->quality, _("for lossy, 0 gives the smallest size and 100 the best quality.\n" "for lossless, 0 is the fastest but gives larger files compared\n" "to the slowest 100.")); - if(quality >= 0 && quality <= 100) dt_bauhaus_slider_set(gui->quality, quality); + dt_bauhaus_slider_set(gui->quality, quality); gtk_box_pack_start(GTK_BOX(self->widget), gui->quality, TRUE, TRUE, 0); g_signal_connect(G_OBJECT(gui->quality), "value-changed", G_CALLBACK(quality_changed), NULL); diff -Nru darktable-4.4.2/src/imageio/imageio.c darktable-4.6.1/src/imageio/imageio.c --- darktable-4.4.2/src/imageio/imageio.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/imageio.c 2024-02-16 17:31:09.000000000 +0000 @@ -99,13 +99,23 @@ "orf", "ori", "pef", "raf", "raw", "rw2", "rwl", "sr2", "srf", "srw", "sti", "x3f", NULL }; static const gchar *_supported_ldr[] - = { "bmp", "bmq", "cap", "cine", "cs1", "dcm", "gif", "gpr", "j2c", - "j2k", "jng", "jp2", "jpc", "jpeg", "jpg", - "miff", "mng", "pbm", "pfm", "pgm", "png", "pnm", "ppm", - "pxn", "qtk", "rdc", "tif", "tiff", "webp", + = { "bmp", "bmq", "cap", "cine", "cs1", "dcm", "gif", "gpr", "j2c", "j2k", + "jng", "jp2", "jpc", "jpeg", "jpg", "miff", "mng", "pbm", "pfm", "pgm", + "png", "pnm", "ppm", "pxn", "qoi", "qtk", "rdc", "tif", "tiff", "webp", NULL }; static const gchar *_supported_hdr[] - = { "avif", "exr", "hdr", "heic", "heif", "hif", "pfm", NULL }; + = { "avif", "exr", "hdr", "heic", "heif", "hif", "jxl", "pfm", NULL }; + +gboolean dt_imageio_is_raw_by_extension(const char *extension) +{ + const char *ext = g_str_has_prefix(extension, ".") ? extension + 1 : extension; + for(const char **i = _supported_raw; *i != NULL; i++) + { + if(!g_ascii_strcasecmp(ext, *i)) + return TRUE; + } + return FALSE; +} // get the type of image from its extension dt_image_flags_t dt_imageio_get_type_from_extension(const char *extension) @@ -113,21 +123,21 @@ const char *ext = g_str_has_prefix(extension, ".") ? extension + 1 : extension; for(const char **i = _supported_raw; *i != NULL; i++) { - if(!g_ascii_strncasecmp(ext, *i, strlen(*i))) + if(!g_ascii_strcasecmp(ext, *i)) { return DT_IMAGE_RAW; } } for(const char **i = _supported_hdr; *i != NULL; i++) { - if(!g_ascii_strncasecmp(ext, *i, strlen(*i))) + if(!g_ascii_strcasecmp(ext, *i)) { return DT_IMAGE_HDR; } } for(const char **i = _supported_ldr; *i != NULL; i++) { - if(!g_ascii_strncasecmp(ext, *i, strlen(*i))) + if(!g_ascii_strcasecmp(ext, *i)) { return DT_IMAGE_LDR; } @@ -769,6 +779,9 @@ const gboolean buf_is_downscaled = (thumbnail_export && dt_conf_get_bool("ui/performance")); + if(!thumbnail_export) + dt_set_backthumb_time(600.0); // make sure we don't interfere + dt_mipmap_buffer_t buf; if(buf_is_downscaled) dt_mipmap_cache_get(darktable.mipmap_cache, &buf, imgid, @@ -1147,7 +1160,7 @@ // Check if all the metadata export flags are set for AVIF/EXR/JPEG XL/XCF (opt-in) // - // TODO: this is a workround as these formats do not support fine + // TODO: this is a workaround as these formats do not support fine // grained metadata control through dt_exif_xmp_attach_export() // below due to lack of exiv2 write support // @@ -1241,6 +1254,8 @@ format_params, storage, storage_params); } + if(!thumbnail_export) + dt_set_backthumb_time(5.0); return 0; // success error: @@ -1248,6 +1263,9 @@ error_early: dt_dev_cleanup(&dev); dt_mipmap_cache_release(darktable.mipmap_cache, &buf); + + if(!thumbnail_export) + dt_set_backthumb_time(5.0); return 1; } diff -Nru darktable-4.4.2/src/imageio/imageio_avif.c darktable-4.6.1/src/imageio/imageio_avif.c --- darktable-4.4.2/src/imageio/imageio_avif.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/imageio_avif.c 2024-02-16 17:31:09.000000000 +0000 @@ -54,10 +54,8 @@ goto out; } - /* Be permissive so we can load even slightly-offspec files (libavif 0.9.1 or later) */ -#if AVIF_VERSION >= 90100 + /* Be permissive so we can load even slightly-offspec files */ decoder->strictFlags = AVIF_STRICT_DISABLED; -#endif result = avifDecoderReadFile(decoder, &avif_image, filename); if(result != AVIF_RESULT_OK) @@ -91,6 +89,18 @@ } } + /* Override any Exif orientation from AVIF irot/imir transformations */ + /* TODO: Add user crop from AVIF clap transformation */ + const int angle = avif_image.transformFlags & AVIF_TRANSFORM_IROT ? avif_image.irot.angle : 0; + const int flip = avif_image.transformFlags & AVIF_TRANSFORM_IMIR +#if AVIF_VERSION <= 110100 + ? avif_image.imir.mode +#else + ? avif_image.imir.axis +#endif + : -1; + img->orientation = dt_image_transformation_to_flip_bits(angle, flip); + /* This will set the depth from the avif */ avifRGBImageSetDefaults(&rgb, &avif_image); @@ -259,21 +269,13 @@ if(avif_image.colorPrimaries == AVIF_COLOR_PRIMARIES_BT709) { gboolean over = FALSE; - /* mistagged sRGB AVIFs exported before dt 3.8 */ - if(avif_image.transferCharacteristics == AVIF_TRANSFER_CHARACTERISTICS_SRGB - && avif_image.matrixCoefficients == AVIF_MATRIX_COEFFICIENTS_BT709) - { - /* must be code value 5 (IEC 61966-2-1 sYCC) */ - cicp->matrix_coefficients = AVIF_MATRIX_COEFFICIENTS_BT470BG; - over = TRUE; - } /* mistagged Rec. 709 AVIFs exported before dt 3.6 */ - else if(avif_image.transferCharacteristics == AVIF_TRANSFER_CHARACTERISTICS_BT470M + if(avif_image.transferCharacteristics == AVIF_TRANSFER_CHARACTERISTICS_BT470M && avif_image.matrixCoefficients == AVIF_MATRIX_COEFFICIENTS_BT709) { /* must be actual Rec. 709 instead of 2.2 gamma*/ cicp->transfer_characteristics = AVIF_TRANSFER_CHARACTERISTICS_BT709; - over = TRUE; + over = TRUE; } if(over) diff -Nru darktable-4.4.2/src/imageio/imageio_common.h darktable-4.6.1/src/imageio/imageio_common.h --- darktable-4.4.2/src/imageio/imageio_common.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/imageio_common.h 2024-02-16 17:31:09.000000000 +0000 @@ -58,6 +58,8 @@ IMAGEIO_CHANNEL_MASK = 0xFF00 } dt_imageio_levels_t; +// Check that the image is raw by file extension +gboolean dt_imageio_is_raw_by_extension(const char *extension); // Checks that the image is indeed an ldr image gboolean dt_imageio_is_ldr(const char *filename); // checks that the image has a monochrome preview attached diff -Nru darktable-4.4.2/src/imageio/imageio_dng.h darktable-4.6.1/src/imageio/imageio_dng.h --- darktable-4.4.2/src/imageio/imageio_dng.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/imageio_dng.h 2024-02-16 17:31:09.000000000 +0000 @@ -28,9 +28,6 @@ #include "common/darktable.h" #include "common/exif.h" - -#define II 1 -#define MM 2 #define BYTE 1 #define ASCII 2 #define SHORT 3 @@ -43,10 +40,10 @@ static inline void _imageio_dng_write_buf(uint8_t *buf, const uint32_t d, const int val) { if(d + 4 >= HEADBUFFSIZE) return; - buf[d + 3] = val & 0xff; - buf[d + 2] = (val >> 8) & 0xff; - buf[d + 1] = (val >> 16) & 0xff; - buf[d] = val >> 24; + buf[d] = val & 0xff; + buf[d + 1] = (val >> 8) & 0xff; + buf[d + 2] = (val >> 16) & 0xff; + buf[d + 3] = val >> 24; } static inline int _imageio_dng_make_tag( @@ -60,7 +57,7 @@ { if(b + 12 < HEADBUFFSIZE) { - _imageio_dng_write_buf(buf, b, (tag << 16) | type); + _imageio_dng_write_buf(buf, b, (type << 16) | tag); _imageio_dng_write_buf(buf, b+4, lng); _imageio_dng_write_buf(buf, b+8, fld); *cnt = *cnt + 1; @@ -91,19 +88,17 @@ int den = 1000000; memset(buf, 0, sizeof(buf)); - /* TIFF file header. */ - buf[0] = 0x4d; - buf[1] = 0x4d; - buf[3] = 42; - buf[7] = 8; - uint32_t b = 10; + /* TIFF file header, little-endian */ + buf[0] = 0x49; + buf[1] = 0x49; + buf[2] = 0x2a; + buf[4] = 8; // If you want to add other tags written to a dng file include the the ID in the enum to // keep track of written tags so we don't a) have leaks or b) overwrite anything in data section const int first_tag = __LINE__ + 3; enum write_tags { - EXIF_TAG_NEXT_IFD = 0, EXIF_TAG_SUBFILE = 254, /* New subfile type. */ EXIF_TAG_IMGWIDTH = 256, /* Image width. */ EXIF_TAG_IMGLENGTH = 257, /* Image length. */ @@ -120,46 +115,30 @@ EXIF_TAG_REPEAT_PATTERN = 33421, /* pattern repeat */ EXIF_TAG_SENS_PATTERN = 33422, /* sensor pattern */ EXIF_TAG_VERSION = 50706, /* DNG Version */ - EXIF_TAG_BACK_VERSION = 50707, /* DNG back Version */ EXIF_TAG_WHITE_LEVEL = 50717, /* White level */ - EXIF_TAG_CROP_ORIGIN = 50719, /* Crop Origin */ - EXIF_TAG_CROP_SIZE = 50720, /* Crop Size */ EXIF_TAG_COLOR_MATRIX1 = 50721, /* ColorMatrix1 (XYZ->native cam) */ EXIF_TAG_SHOT_NEUTRAL = 50728, /* AsShotNeutral for rawspeed Dngdecoder camera white balance */ EXIF_TAG_ILLUMINANT1 = 50778, /* CalibrationIlluminant1 */ - EXIF_TAG_ACTIVE_AREA = 50829, /* Active Area */ }; - uint32_t data = 10 + (__LINE__ - first_tag - 1) * 12 ; // takes care of the header an num of lines + buf[8] = (uint8_t)(__LINE__ - first_tag - 1); /* number of entries */ + + uint32_t b = 10; + uint32_t data = 10 + buf[8] * 12 + 4; // takes care of the header, entries, and termination b = _imageio_dng_make_tag(EXIF_TAG_SUBFILE, LONG, 1, 0, buf, b, &cnt); - b = _imageio_dng_make_tag(EXIF_TAG_IMGWIDTH, SHORT, 1, (xs << 16), buf, b, &cnt); - b = _imageio_dng_make_tag(EXIF_TAG_IMGLENGTH, SHORT, 1, (ys << 16), buf, b, &cnt); - b = _imageio_dng_make_tag(EXIF_TAG_BPS, SHORT, 1, 32 << 16, buf, b, &cnt); - b = _imageio_dng_make_tag(EXIF_TAG_COMPRESS, SHORT, 1, (1 << 16), buf, b, &cnt); - b = _imageio_dng_make_tag(EXIF_TAG_PHOTOMINTREP, SHORT, 1, 32803 << 16, buf, b, &cnt); - b = _imageio_dng_make_tag(EXIF_TAG_ORIENTATION, SHORT, 1, 1 << 16, buf, b, &cnt); - b = _imageio_dng_make_tag(EXIF_TAG_SAMPLES_PER_PIXEL, SHORT, 1, channels << 16, buf, b, &cnt); - b = _imageio_dng_make_tag(EXIF_TAG_ROWS_PER_STRIP, SHORT, 1, (ys << 16), buf, b, &cnt); + b = _imageio_dng_make_tag(EXIF_TAG_IMGWIDTH, LONG, 1, xs, buf, b, &cnt); + b = _imageio_dng_make_tag(EXIF_TAG_IMGLENGTH, LONG, 1, ys, buf, b, &cnt); + b = _imageio_dng_make_tag(EXIF_TAG_BPS, SHORT, 1, 32, buf, b, &cnt); + b = _imageio_dng_make_tag(EXIF_TAG_COMPRESS, SHORT, 1, 1, buf, b, &cnt); + b = _imageio_dng_make_tag(EXIF_TAG_PHOTOMINTREP, SHORT, 1, 32803, buf, b, &cnt); + b = _imageio_dng_make_tag(EXIF_TAG_STRIP_OFFSET, LONG, 1, 0, buf, b, &cnt); + uint32_t ofst = b - 4; /* remember buffer address for updating strip offset later */ + b = _imageio_dng_make_tag(EXIF_TAG_ORIENTATION, SHORT, 1, 1, buf, b, &cnt); + b = _imageio_dng_make_tag(EXIF_TAG_SAMPLES_PER_PIXEL, SHORT, 1, channels, buf, b, &cnt); + b = _imageio_dng_make_tag(EXIF_TAG_ROWS_PER_STRIP, LONG, 1, ys, buf, b, &cnt); b = _imageio_dng_make_tag(EXIF_TAG_STRIP_BCOUNT, LONG, 1, (ys * xs * channels*4), buf, b, &cnt); - b = _imageio_dng_make_tag(EXIF_TAG_PLANAR_CONFIG, SHORT, 1, (1 << 16), buf, b, &cnt); - b = _imageio_dng_make_tag(EXIF_TAG_SAMPLE_FORMAT, SHORT, 1, (3 << 16), buf, b, &cnt); - - b = _imageio_dng_make_tag(EXIF_TAG_ACTIVE_AREA, LONG, 4, data, buf, b, &cnt); - _imageio_dng_write_buf(buf, data, 0); - _imageio_dng_write_buf(buf, data+4, 0); - _imageio_dng_write_buf(buf, data+8, ys); - _imageio_dng_write_buf(buf, data+12, xs); - data += 16; - - b = _imageio_dng_make_tag(EXIF_TAG_CROP_ORIGIN, LONG, 2, data, buf, b, &cnt); - _imageio_dng_write_buf(buf, data, 0); - _imageio_dng_write_buf(buf, data+4, 0); - data += 8; - - b = _imageio_dng_make_tag(EXIF_TAG_CROP_SIZE, LONG, 2, data, buf, b, &cnt); - _imageio_dng_write_buf(buf, data, xs); - _imageio_dng_write_buf(buf, data+4, ys); - data += 8; + b = _imageio_dng_make_tag(EXIF_TAG_PLANAR_CONFIG, SHORT, 1, 1, buf, b, &cnt); + b = _imageio_dng_make_tag(EXIF_TAG_SAMPLE_FORMAT, SHORT, 1, 3, buf, b, &cnt); if(filter == 9u) // xtrans b = _imageio_dng_make_tag(EXIF_TAG_REPEAT_PATTERN, SHORT, 2, (6 << 16) | 6, buf, b, &cnt); @@ -170,16 +149,16 @@ switch(filter) { case 0x94949494: - cfapattern = (0 << 24) | (1 << 16) | (1 << 8) | 2; // rggb + cfapattern = (2 << 24) | (1 << 16) | (1 << 8) | 0; // rggb break; case 0x49494949: - cfapattern = (1 << 24) | (2 << 16) | (0 << 8) | 1; // gbrg + cfapattern = (1 << 24) | (0 << 16) | (2 << 8) | 1; // gbrg break; case 0x61616161: - cfapattern = (1 << 24) | (0 << 16) | (2 << 8) | 1; // grbg + cfapattern = (1 << 24) | (2 << 16) | (0 << 8) | 1; // grbg break; default: // case 0x16161616: - cfapattern = (2 << 24) | (1 << 16) | (1 << 8) | 0; // bggr + cfapattern = (0 << 24) | (1 << 16) | (1 << 8) | 2; // bggr break; } @@ -193,16 +172,10 @@ else // bayer b = _imageio_dng_make_tag(EXIF_TAG_SENS_PATTERN, BYTE, 4, cfapattern, buf, b, &cnt); /* bayer PATTERN */ - b = _imageio_dng_make_tag(EXIF_TAG_VERSION, BYTE, 4, (1 << 24)|(2 << 16), buf, b, &cnt); - b = _imageio_dng_make_tag(EXIF_TAG_BACK_VERSION, BYTE, 4, (1 << 24)|(1 << 16), buf, b, &cnt); + b = _imageio_dng_make_tag(EXIF_TAG_VERSION, BYTE, 4, 1 | (4 << 8), buf, b, &cnt); - union { - float f; - uint32_t u; - } white; - white.f = whitelevel; - - b = _imageio_dng_make_tag(EXIF_TAG_WHITE_LEVEL, LONG, 1, white.u, buf, b, &cnt); /* WhiteLevel in float, actually. */ + // WhiteLevel is straight integer even for float DNGs + b = _imageio_dng_make_tag(EXIF_TAG_WHITE_LEVEL, LONG, 1, (uint32_t)roundf(whitelevel), buf, b, &cnt); // ColorMatrix1 try to get camera matrix else m[k] like before if(dt_is_valid_colormatrix(adobe_XYZ_to_CAM[0][0])) @@ -230,13 +203,18 @@ } data += 3 * 8; - b = _imageio_dng_make_tag(EXIF_TAG_ILLUMINANT1, SHORT, 1, DT_LS_D65 << 16, buf, b, &cnt); + b = _imageio_dng_make_tag(EXIF_TAG_ILLUMINANT1, SHORT, 1, DT_LS_D65, buf, b, &cnt); + + // We have all tags using data now written so we can finally use strip offset + _imageio_dng_write_buf(buf, ofst, data); - // We have all tags using data now written so we can finally use strip offset - b = _imageio_dng_make_tag(EXIF_TAG_STRIP_OFFSET, LONG, 1, data, buf, b, &cnt); - b = _imageio_dng_make_tag(EXIF_TAG_NEXT_IFD, 0, 0, 0, buf, b, &cnt); + /* Termination is implicit: next IFD already 0 when buf initialized */ - buf[9] = cnt - 1; /* write number of directory entries of this ifd */ + if(buf[8] != cnt) + { + dt_print(DT_DEBUG_ALWAYS, "[dng_write_header] can't write valid header, unexpected number of entries!\n"); + return; + } if(data >= HEADBUFFSIZE) { @@ -270,8 +248,6 @@ } } -#undef II -#undef MM #undef BYTE #undef ASCII #undef SHORT diff -Nru darktable-4.4.2/src/imageio/imageio_exr.cc darktable-4.6.1/src/imageio/imageio_exr.cc --- darktable-4.4.2/src/imageio/imageio_exr.cc 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/imageio_exr.cc 2024-02-16 17:31:09.000000000 +0000 @@ -140,6 +140,46 @@ if(Imf::hasExpTime(header)) img->exif_exposure = Imf::expTime(header); if(Imf::hasAperture(header)) img->exif_aperture = Imf::aperture(header); if(Imf::hasIsoSpeed(header)) img->exif_iso = Imf::isoSpeed(header); +// the OPENEXR_VERSION_HEX macro is broken for 3.2.0 and earlier, must compute directly +#if(((OPENEXR_VERSION_MAJOR << 24) | (OPENEXR_VERSION_MINOR << 16) | (OPENEXR_VERSION_PATCH << 8)) >= 0x03020000) + if(Imf::hasCameraMake(header)) + { + g_strlcpy(img->exif_maker, Imf::cameraMake(header).c_str(), sizeof(img->exif_maker)); + } + if(Imf::hasCameraModel(header)) + { + g_strlcpy(img->exif_model, Imf::cameraModel(header).c_str(), sizeof(img->exif_model)); + } + // Make sure we copy the exif make and model to the correct place if needed + dt_image_refresh_makermodel(img); + + if(Imf::hasLensModel(header)) + { + g_strlcpy(img->exif_lens, Imf::lensModel(header).c_str(), sizeof(img->exif_lens)); + + if(Imf::hasLensMake(header) && Imf::lensMake(header) == "Canon") + { + /* Use pretty name for Canon RF & RF-S lenses (as exiftool/exiv2/lensfun) */ + if(g_str_has_prefix(img->exif_lens, "RF")) + { + std::string pretty; + if(img->exif_lens[2] == '-') + pretty = "Canon RF-S " + std::string(&img->exif_lens[4]); + else + pretty = "Canon RF " + std::string(&img->exif_lens[2]); + g_strlcpy(img->exif_lens, pretty.c_str(), sizeof(img->exif_lens)); + } + } + + /* Capitalize Nikon Z-mount lenses properly for UI presentation */ + if(g_str_has_prefix(img->exif_lens, "NIKKOR")) + { + for(size_t i = 1; i <= 5; ++i) img->exif_lens[i] = g_ascii_tolower(img->exif_lens[i]); + } + } + + if(Imf::hasNominalFocalLength(header)) img->exif_focal_length = Imf::nominalFocalLength(header); +#endif } } diff -Nru darktable-4.4.2/src/imageio/imageio_heif.c darktable-4.6.1/src/imageio/imageio_heif.c --- darktable-4.4.2/src/imageio/imageio_heif.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/imageio_heif.c 2024-02-16 17:31:09.000000000 +0000 @@ -1,23 +1,28 @@ /* - * This file is part of darktable, - * Copyright (C) 2021-2023 darktable developers. - * - * darktable is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * darktable is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with darktable. If not, see <http://www.gnu.org/licenses/>. - */ + This file is part of darktable, + Copyright (C) 2021-2023 darktable developers. + + darktable is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + darktable is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with darktable. If not, see <http://www.gnu.org/licenses/>. +*/ #include "common/image.h" + #include <libheif/heif.h> +#if LIBHEIF_HAVE_VERSION(1, 17, 0) +#include <libheif/heif_properties.h> +#endif + #ifdef HAVE_CONFIG_H #include "config.h" #endif @@ -61,8 +66,9 @@ { /* we want to feedback this to the user, so output to stderr */ dt_print(DT_DEBUG_ALWAYS, - "[imageio_heif] Unsupported codec for `%s'. Check if your libheif is built with HEVC and/or AV1 decoding support.\n", - filename); + "[imageio_heif] Unsupported codec for `%s'. " + "Check if your libheif is built with HEVC and/or AV1 decoding support.\n", + filename); } else if(err.code != heif_error_Unsupported_filetype && err.subcode != heif_suberror_No_ftyp_box) { @@ -109,19 +115,54 @@ err = heif_image_handle_get_metadata(handle, exif_id, exif_data); if(err.code == heif_error_Ok) { - const uint32_t exif_offset = exif_data[0] << 24 | exif_data[1] << 16 | exif_data[2] << 8 | exif_data[3]; + const uint32_t exif_offset = exif_data[0] << 24 + | exif_data[1] << 16 + | exif_data[2] << 8 + | exif_data[3]; if(exif_size > 4 + exif_offset) - dt_exif_read_from_blob(img, exif_data + 4 + exif_offset, exif_size - 4 - exif_offset); + dt_exif_read_from_blob(img, + exif_data + 4 + exif_offset, + exif_size - 4 - exif_offset); } g_free(exif_data); } } } +#if LIBHEIF_HAVE_VERSION(1, 16, 0) + // Override any Exif orientation from HEIF irot/imir transformations. + // TODO: Add user crop from HEIF clap transformation. + heif_item_id id; + heif_context_get_primary_image_ID(ctx, &id); + heif_property_id transforms[3]; + int num_transforms = heif_item_get_transformation_properties(ctx, id, transforms, 3); + int angle = 0; + int flip = -1; + for(int i = 0; i < num_transforms; ++i) + { + switch(heif_item_get_property_type(ctx, id, transforms[i])) + { + case heif_item_property_type_transform_rotation: + angle = heif_item_get_property_transform_rotation_ccw(ctx, id, transforms[i]) / 90; + break; + case heif_item_property_type_transform_mirror: + flip = heif_item_get_property_transform_mirror(ctx, id, transforms[i]); + break; + default: + break; + } + } + img->orientation = dt_image_transformation_to_flip_bits(angle, flip); +#endif + struct heif_decoding_options *decode_options = heif_decoding_options_alloc(); decode_options->ignore_transformations = TRUE; // Darktable only supports LITTLE_ENDIAN systems, so RRGGBB_LE should be fine - err = heif_decode_image(handle, &heif_img, heif_colorspace_RGB, heif_chroma_interleaved_RRGGBB_LE, decode_options); + err = heif_decode_image(handle, + &heif_img, + heif_colorspace_RGB, + heif_chroma_interleaved_RRGGBB_LE, + decode_options); heif_decoding_options_free(decode_options); if(err.code != heif_error_Ok) { @@ -133,11 +174,15 @@ } int rowbytes = 0; - const uint8_t* data = heif_image_get_plane_readonly(heif_img, heif_channel_interleaved, &rowbytes); - // Get the image dimensions from the 'ispe' box. This is the original image dimensions without - // any transformations applied to it. - // Note that we use these functions due to use of ignore_transformations option. If we didn't use - // ignore_transformations, we would have to use non-ispe versions of the "get dimensions" functions. + const uint8_t* data = heif_image_get_plane_readonly(heif_img, + heif_channel_interleaved, + &rowbytes); + /* + Get the image dimensions from the 'ispe' box. This is the original image dimensions + without any transformations applied to it. + Note that we use these functions due to use of ignore_transformations option. If we didn't use + ignore_transformations, we'd have to use non-ispe versions of the "get dimensions" functions. + */ const size_t width = heif_image_handle_get_ispe_width(handle); const size_t height = heif_image_handle_get_ispe_height(handle); @@ -163,9 +208,11 @@ img->flags &= ~DT_IMAGE_RAW; img->flags &= ~DT_IMAGE_S_RAW; - // Get decoded pixel values bit depth (ths is used to scale values to [0..1] range) - const int decoded_values_bit_depth = heif_image_get_bits_per_pixel_range(heif_img, heif_channel_interleaved); - // Get original pixel values bit depth by querying the luma channel depth (this may differ from decoded values bit depth) + // Get decoded pixel values bit depth (this is used to scale values to [0..1] range) + const int decoded_values_bit_depth = heif_image_get_bits_per_pixel_range(heif_img, + heif_channel_interleaved); + // Get original pixel values bit depth by querying the luma channel depth + // (this may differ from decoded values bit depth) const int original_values_bit_depth = heif_image_handle_get_luma_bits_per_pixel(handle); dt_print(DT_DEBUG_IMAGEIO, @@ -306,6 +353,27 @@ cicp->color_primaries = (uint16_t)profile_info_nclx->color_primaries; cicp->transfer_characteristics = (uint16_t)profile_info_nclx->transfer_characteristics; cicp->matrix_coefficients = (uint16_t)profile_info_nclx->matrix_coefficients; + + /* fix up mistagged legacy AVIFs */ + if(profile_info_nclx->color_primaries == heif_color_primaries_ITU_R_BT_709_5) + { + gboolean over = FALSE; + /* mistagged Rec. 709 AVIFs exported before dt 3.6 */ + if(profile_info_nclx->transfer_characteristics == heif_transfer_characteristic_ITU_R_BT_470_6_System_M + && profile_info_nclx->matrix_coefficients == heif_matrix_coefficients_ITU_R_BT_709_5) + { + /* must be actual Rec. 709 instead of 2.2 gamma*/ + cicp->transfer_characteristics = (uint16_t)heif_transfer_characteristic_ITU_R_BT_709_5; + over = TRUE; + } + + if(over) + { + dt_print(DT_DEBUG_IMAGEIO, "Overriding nclx color profile for HEIF file `%s': 1/%d/%d to 1/%d/%d\n", + filename, profile_info_nclx->transfer_characteristics, profile_info_nclx->matrix_coefficients, + cicp->transfer_characteristics, cicp->matrix_coefficients); + } + } break; /* heif_color_profile_type_nclx */ case heif_color_profile_type_rICC: diff -Nru darktable-4.4.2/src/imageio/imageio_jpegxl.c darktable-4.6.1/src/imageio/imageio_jpegxl.c --- darktable-4.4.2/src/imageio/imageio_jpegxl.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/imageio_jpegxl.c 2024-02-16 17:31:09.000000000 +0000 @@ -294,7 +294,8 @@ } // end of processing loop - if(!img->exif_inited) + // Fallback reading if the Exif box is present but exiv2 didn't do the job + if(!img->exif_inited && exif_data) { JxlDecoderReleaseBoxBuffer(decoder); // First 4 bytes of Exif blob is an offset of the actual Exif data diff -Nru darktable-4.4.2/src/imageio/imageio_libraw.c darktable-4.6.1/src/imageio/imageio_libraw.c --- darktable-4.4.2/src/imageio/imageio_libraw.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/imageio_libraw.c 2024-02-16 17:31:09.000000000 +0000 @@ -17,22 +17,23 @@ */ #ifdef HAVE_LIBRAW +#include "common/colorspaces.h" #include "common/darktable.h" -#include "common/math.h" -#include "imageio_common.h" -#include "imageio_gm.h" -#include "develop/develop.h" #include "common/exif.h" -#include "common/colorspaces.h" +#include "common/math.h" #include "control/conf.h" +#include "control/control.h" +#include "develop/develop.h" +#include "imageio_common.h" +#include "imageio_libraw.h" +#include <libraw/libraw.h> + +#include <assert.h> +#include <inttypes.h> #include <memory.h> #include <stdio.h> -#include <inttypes.h> #include <strings.h> -#include <assert.h> - -#include <libraw/libraw.h> typedef struct model_map @@ -214,7 +215,37 @@ .clean_make = "Canon", .clean_model = "PowerShot G5 X Mark II", .clean_alias = "PowerShot G5 X Mark II" - } + }, +#if LIBRAW_COMPILE_CHECK_VERSION_NOTLESS(0, 22) + { + .exif_make = "Canon", + .exif_model = "Canon EOS R6m2", + .clean_make = "Canon", + .clean_model = "EOS R6 Mark II", + .clean_alias = "EOS R6 Mark II" + }, + { + .exif_make = "Canon", + .exif_model = "Canon EOS R8", + .clean_make = "Canon", + .clean_model = "EOS R8", + .clean_alias = "EOS R8" + }, + { + .exif_make = "Canon", + .exif_model = "Canon EOS R50", + .clean_make = "Canon", + .clean_model = "EOS R50", + .clean_alias = "EOS R50" + }, + { + .exif_make = "Canon", + .exif_model = "Canon EOS R100", + .clean_make = "Canon", + .clean_model = "EOS R100", + .clean_alias = "EOS R100" + }, +#endif }; @@ -233,11 +264,13 @@ ext++; if(dt_conf_key_not_empty("libraw_extensions")) - extensions_whitelist = g_strjoin(" ", always_by_libraw, dt_conf_get_string_const("libraw_extensions"), NULL); + extensions_whitelist = g_strjoin(" ", always_by_libraw, + dt_conf_get_string_const("libraw_extensions"), NULL); else extensions_whitelist = g_strdup(always_by_libraw); - dt_print(DT_DEBUG_ALWAYS, "[libraw_open] extensions whitelist: `%s'\n", extensions_whitelist); + dt_print(DT_DEBUG_ALWAYS, + "[libraw_open] extensions whitelist: `%s'\n", extensions_whitelist); gchar *ext_lowercased = g_ascii_strdown(ext,-1); if(g_strstr_len(extensions_whitelist,-1,ext_lowercased)) @@ -251,13 +284,36 @@ return FALSE; } +void _check_libraw_missing_support(const struct dt_image_t *img) +{ + char lr_mk[64], lr_md[64], lr_al[64]; + if(!dt_libraw_lookup_makermodel(img->exif_maker, img->exif_model, + lr_mk, sizeof(lr_mk), + lr_md, sizeof(lr_md), + lr_al, sizeof(lr_al))) + { + const char *T1 = _("<span foreground='red'><b>WARNING</b></span>:" + " camera is not fully supported!"); + char *T2 = g_strdup_printf(_("colors for `%s' could be misrepresented,\n" + "and edits might not be compatible with future versions."), + img->exif_model); + + char *msg = g_strconcat("<big>", T1, "\n\n", T2, "</big>", NULL); + g_free(T2); + + dt_control_log(msg, (char *)NULL); + g_free(msg); + } +} + gboolean dt_libraw_lookup_makermodel(const char *maker, const char *model, char *mk, int mk_len, char *md, int md_len, char *al, int al_len) { for(int i = 0; i < sizeof(modelMap) / sizeof(modelMap[0]); ++i) { - if(!g_strcmp0(maker, modelMap[i].exif_make) && !g_strcmp0(model, modelMap[i].exif_model)) + if(!g_strcmp0(maker, modelMap[i].exif_make) + && !g_strcmp0(model, modelMap[i].exif_model)) { //printf("input model: %s, exif model: %s\n", model, modelMap[i].exif_model); g_strlcpy(mk, modelMap[i].clean_make, mk_len); @@ -270,7 +326,9 @@ } -dt_imageio_retval_t dt_imageio_open_libraw(dt_image_t *img, const char *filename, dt_mipmap_buffer_t *mbuf) +dt_imageio_retval_t dt_imageio_open_libraw(dt_image_t *img, + const char *filename, + dt_mipmap_buffer_t *mbuf) { int err = DT_IMAGEIO_LOAD_FAILED; int libraw_err = LIBRAW_SUCCESS; @@ -296,19 +354,34 @@ // but seems to be the best available. LibRaw crx decoder can actually // decode the raw data, but internal metadata like wb_coeffs, crops etc. // are not populated into libraw structure, or image is not of CFA type. - if(raw->rawdata.color.cam_mul[0] == 0.0f || dt_isnan(raw->rawdata.color.cam_mul[0]) || !raw->rawdata.raw_image) + if(raw->rawdata.color.cam_mul[0] == 0.0f + || dt_isnan(raw->rawdata.color.cam_mul[0]) + || !raw->rawdata.raw_image) { - dt_print(DT_DEBUG_ALWAYS, "[libraw_open] detected unsupported image `%s'\n", img->filename); + dt_print(DT_DEBUG_ALWAYS, + "[libraw_open] detected unsupported image `%s'\n", img->filename); goto error; } - // Copy white level (all linear_max[] equal single SpecularWhiteLevel for CR3, we can skip min or mean) - img->raw_white_point = raw->rawdata.color.linear_max[0] ? raw->rawdata.color.linear_max[0] :raw->rawdata.color.maximum; + // If the support detection method above failed (e.g. LibRaw matches color + // matrix on a model substring), let's also check our internal LibRaw lookup + // table for Canon CR3s only. + gchar *ext = g_strrstr(filename, "."); + if(!ext) goto error; + ext++; + if(!g_ascii_strncasecmp("cr3", ext, 3)) _check_libraw_missing_support(img); + + // Copy white level (all linear_max[] equal single + // SpecularWhiteLevel for CR3, we can skip min or mean) + img->raw_white_point = raw->rawdata.color.linear_max[0] + ? raw->rawdata.color.linear_max[0] + :raw->rawdata.color.maximum; // Copy black level img->raw_black_level = raw->rawdata.color.black; for(size_t c = 0; c < 4; ++c) - img->raw_black_level_separate[c] = raw->rawdata.color.black + raw->rawdata.color.cblack[c]; + img->raw_black_level_separate[c] = + raw->rawdata.color.black + raw->rawdata.color.cblack[c]; // AsShot WB coeffs for(size_t c = 0; c < 4; ++c) @@ -356,7 +429,9 @@ void *buf = dt_mipmap_cache_alloc(mbuf, img); if(!buf) { - dt_print(DT_DEBUG_ALWAYS, "[libraw_open] could not alloc full buffer for image `%s'\n", img->filename); + dt_print(DT_DEBUG_ALWAYS, + "[libraw_open] could not alloc full buffer for image `%s'\n", + img->filename); err = DT_IMAGEIO_CACHE_FULL; goto error; } @@ -405,7 +480,9 @@ error: if(libraw_err != LIBRAW_SUCCESS) - dt_print(DT_DEBUG_ALWAYS, "[libraw_open] `%s': %s\n", img->filename, libraw_strerror(libraw_err)); + dt_print(DT_DEBUG_ALWAYS, + "[libraw_open] `%s': %s\n", + img->filename, libraw_strerror(libraw_err)); libraw_close(raw); return err; } diff -Nru darktable-4.4.2/src/imageio/imageio_qoi.c darktable-4.6.1/src/imageio/imageio_qoi.c --- darktable-4.4.2/src/imageio/imageio_qoi.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/imageio_qoi.c 2024-02-16 17:31:09.000000000 +0000 @@ -31,7 +31,9 @@ #include "develop/imageop.h" #include "imageio/imageio_common.h" -dt_imageio_retval_t dt_imageio_open_qoi(dt_image_t *img, const char *filename, dt_mipmap_buffer_t *mbuf) +dt_imageio_retval_t dt_imageio_open_qoi(dt_image_t *img, + const char *filename, + dt_mipmap_buffer_t *mbuf) { FILE *f = g_fopen(filename, "rb"); if(!f) @@ -46,17 +48,24 @@ void *read_buffer = g_malloc(filesize); - // Let's check whether the entire content of the file should be read into the buffer. If we see that it's a - // non-QOI file, we'll save time by avoiding unnecessary reading of a potentially large file into the buffer. + // Let's check whether the entire content of the file should be read into the buffer. + // If we see that it's a non-QOI file, we'll save time by avoiding unnecessary reading + // of a potentially large file into the buffer. if(fread(read_buffer, 1, 4, f) != 4) { fclose(f); g_free(read_buffer); dt_print(DT_DEBUG_ALWAYS, "[qoi_open] failed to read from %s\n", filename); - return DT_IMAGEIO_FILE_NOT_FOUND; // if we can't read even first 4 bytes, it's more like file disappeared + // if we can't read even first 4 bytes, it's more like file disappeared + return DT_IMAGEIO_FILE_NOT_FOUND; } + if(memcmp(read_buffer, "qoif", 4) != 0) { + fclose(f); + g_free(read_buffer); + dt_print(DT_DEBUG_ALWAYS, + "[qoi_open] no proper file header in %s\n", filename); return DT_IMAGEIO_LOAD_FAILED; } @@ -64,7 +73,9 @@ { fclose(f); g_free(read_buffer); - dt_print(DT_DEBUG_ALWAYS, "[qoi_open] failed to read %zu bytes from %s\n", filesize, filename); + dt_print(DT_DEBUG_ALWAYS, + "[qoi_open] failed to read %zu bytes from %s\n", + filesize, filename); return DT_IMAGEIO_LOAD_FAILED; } fclose(f); @@ -95,21 +106,24 @@ if(!mipbuf) { g_free(read_buffer); - dt_print(DT_DEBUG_ALWAYS, "[qoi_open] could not alloc full buffer for image: %s\n", img->filename); + dt_print(DT_DEBUG_ALWAYS, + "[qoi_open] could not alloc full buffer for image: %s\n", + img->filename); return DT_IMAGEIO_CACHE_FULL; } uint8_t intval; float floatval; + const size_t npixels = (size_t)desc.width * desc.height; #ifdef _OPENMP #pragma omp parallel for private(intval, floatval) #endif - for(int i=0; i < desc.width * desc.height * 4; i++) + for(size_t index = 0; index < npixels * 4; index++) { - intval = *(int_RGBA_buf+i); + intval = *(int_RGBA_buf + index); floatval = intval / 255.f; - *(mipbuf+i) = floatval; + *(mipbuf + index) = floatval; } img->buf_dsc.cst = IOP_CS_RGB; @@ -121,6 +135,7 @@ img->loader = LOADER_QOI; QOI_FREE(int_RGBA_buf); + g_free(read_buffer); return DT_IMAGEIO_OK; } diff -Nru darktable-4.4.2/src/imageio/imageio_rawspeed.cc darktable-4.6.1/src/imageio/imageio_rawspeed.cc --- darktable-4.4.2/src/imageio/imageio_rawspeed.cc 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/imageio_rawspeed.cc 2024-02-16 17:31:09.000000000 +0000 @@ -51,7 +51,9 @@ using namespace rawspeed; -static dt_imageio_retval_t dt_imageio_open_rawspeed_sraw (dt_image_t *img, RawImage r, dt_mipmap_buffer_t *buf); +static dt_imageio_retval_t dt_imageio_open_rawspeed_sraw (dt_image_t *img, + const RawImage r, + dt_mipmap_buffer_t *buf); static CameraMetaData *meta = NULL; static void dt_rawspeed_load_meta() @@ -72,9 +74,14 @@ } } -gboolean dt_rawspeed_lookup_makermodel(const char *maker, const char *model, - char *mk, int mk_len, char *md, int md_len, - char *al, int al_len) +gboolean dt_rawspeed_lookup_makermodel(const char *maker, + const char *model, + char *mk, + const int mk_len, + char *md, + const int md_len, + char *al, + const int al_len) { gboolean got_it_done = FALSE; try { @@ -105,11 +112,14 @@ return got_it_done; } -uint32_t dt_rawspeed_crop_dcraw_filters(uint32_t filters, uint32_t crop_x, uint32_t crop_y) +uint32_t dt_rawspeed_crop_dcraw_filters(const uint32_t filters, + const uint32_t crop_x, + const uint32_t crop_y) { - if(!filters || filters == 9u) return filters; - - return ColorFilterArray::shiftDcrawFilter(filters, crop_x, crop_y); + if(!filters || filters == 9u) + return filters; + else + return ColorFilterArray::shiftDcrawFilter(filters, crop_x, crop_y); } // CR3 files are for now handled by LibRaw, we do not want RawSpeed to try to open them @@ -125,11 +135,15 @@ ext++; if(dt_conf_key_not_empty("libraw_extensions")) - extensions_whitelist = g_strjoin(" ", always_by_libraw, dt_conf_get_string_const("libraw_extensions"), (char *)NULL); + extensions_whitelist = g_strjoin(" ", always_by_libraw, + dt_conf_get_string_const("libraw_extensions"), + (char *)NULL); else extensions_whitelist = g_strdup(always_by_libraw); - dt_print(DT_DEBUG_IMAGEIO, "[rawspeed_open] extensions list to ignore: `%s'\n", extensions_whitelist); + dt_print(DT_DEBUG_IMAGEIO, + "[rawspeed_open] extensions list to ignore: `%s'\n", + extensions_whitelist); gchar *ext_lowercased = g_ascii_strdown(ext,-1); if(g_strstr_len(extensions_whitelist,-1,ext_lowercased)) @@ -143,12 +157,15 @@ return FALSE; } -dt_imageio_retval_t dt_imageio_open_rawspeed(dt_image_t *img, const char *filename, +dt_imageio_retval_t dt_imageio_open_rawspeed(dt_image_t *img, + const char *filename, dt_mipmap_buffer_t *mbuf) { - if(_ignore_image(filename)) return DT_IMAGEIO_LOAD_FAILED; + if(_ignore_image(filename)) + return DT_IMAGEIO_LOAD_FAILED; - if(!img->exif_inited) (void)dt_exif_read(img, filename); + if(!img->exif_inited) + (void)dt_exif_read(img, filename); char filen[PATH_MAX] = { 0 }; snprintf(filen, sizeof(filen), "%s", filename); @@ -177,67 +194,28 @@ for(const auto &error : errors) dt_print(DT_DEBUG_ALWAYS, "[rawspeed] (%s) %s\n", img->filename, error.c_str()); - g_strlcpy(img->camera_maker, r->metadata.canonical_make.c_str(), sizeof(img->camera_maker)); - g_strlcpy(img->camera_model, r->metadata.canonical_model.c_str(), sizeof(img->camera_model)); - g_strlcpy(img->camera_alias, r->metadata.canonical_alias.c_str(), sizeof(img->camera_alias)); + g_strlcpy(img->camera_maker, + r->metadata.canonical_make.c_str(), + sizeof(img->camera_maker)); + g_strlcpy(img->camera_model, + r->metadata.canonical_model.c_str(), + sizeof(img->camera_model)); + g_strlcpy(img->camera_alias, + r->metadata.canonical_alias.c_str(), + sizeof(img->camera_alias)); dt_image_refresh_makermodel(img); - // We used to partial match the Canon local rebrandings so lets pass on - // the value just in those cases to be able to fix old history stacks - static const struct { - const char *mungedname; - const char *origname; - } legacy_aliases[] = { - {"Canon EOS","Canon EOS REBEL SL1"}, - {"Canon EOS","Canon EOS Kiss X7"}, - {"Canon EOS","Canon EOS DIGITAL REBEL XT"}, - {"Canon EOS","Canon EOS Kiss Digital N"}, - {"Canon EOS","Canon EOS 350D"}, - {"Canon EOS","Canon EOS DIGITAL REBEL XSi"}, - {"Canon EOS","Canon EOS Kiss Digital X2"}, - {"Canon EOS","Canon EOS Kiss X2"}, - {"Canon EOS","Canon EOS REBEL T5i"}, - {"Canon EOS","Canon EOS Kiss X7i"}, - {"Canon EOS","Canon EOS Rebel T6i"}, - {"Canon EOS","Canon EOS Kiss X8i"}, - {"Canon EOS","Canon EOS Rebel T6s"}, - {"Canon EOS","Canon EOS 8000D"}, - {"Canon EOS","Canon EOS REBEL T1i"}, - {"Canon EOS","Canon EOS Kiss X3"}, - {"Canon EOS","Canon EOS REBEL T2i"}, - {"Canon EOS","Canon EOS Kiss X4"}, - {"Canon EOS REBEL T3","Canon EOS REBEL T3i"}, - {"Canon EOS","Canon EOS Kiss X5"}, - {"Canon EOS","Canon EOS REBEL T4i"}, - {"Canon EOS","Canon EOS Kiss X6i"}, - {"Canon EOS","Canon EOS DIGITAL REBEL XS"}, - {"Canon EOS","Canon EOS Kiss Digital F"}, - {"Canon EOS","Canon EOS REBEL T5"}, - {"Canon EOS","Canon EOS Kiss X70"}, - {"Canon EOS","Canon EOS DIGITAL REBEL XTi"}, - {"Canon EOS","Canon EOS Kiss Digital X"}, - }; - - for(uint32_t i = 0; i < (sizeof(legacy_aliases) / sizeof(legacy_aliases[1])); i++) - if(!strcmp(legacy_aliases[i].origname, r->metadata.model.c_str())) - { - g_strlcpy(img->camera_legacy_makermodel, legacy_aliases[i].mungedname, sizeof(img->camera_legacy_makermodel)); - break; - } - img->raw_black_level = r->blackLevel; - img->raw_white_point = r->whitePoint; + img->raw_white_point = r->whitePoint.value_or((1U << 16)-1); - if(r->blackLevelSeparate[0] == -1 - || r->blackLevelSeparate[1] == -1 - || r->blackLevelSeparate[2] == -1 - || r->blackLevelSeparate[3] == -1) + if(!r->blackAreas.empty() || !r->blackLevelSeparate) { r->calculateBlackAreas(); } + const auto bl = *(r->blackLevelSeparate->getAsArray1DRef()); for(uint8_t i = 0; i < 4; i++) - img->raw_black_level_separate[i] = r->blackLevelSeparate[i]; + img->raw_black_level_separate[i] = bl(i); if(r->blackLevel == -1) { @@ -284,12 +262,37 @@ { img->flags |= DT_IMAGE_HDR; - // we assume that image is normalized before. - // FIXME: not true for hdrmerge DNG's. - for(int k = 0; k < 4; k++) img->buf_dsc.processed_maximum[k] = 1.0f; + // We assume that float images should already be normalized. + // Also consider 1.0f in binary32 (legacy dt HDR files) as white point magic value; + // otherwise (e.g. HDRMerge files), let rawprepare normalize as usual. + if(r->whitePoint == 0x3F800000) img->raw_white_point = 1; + if(img->raw_white_point == 1) + for(int k = 0; k < 4; k++) img->buf_dsc.processed_maximum[k] = 1.0f; } img->buf_dsc.filters = 0u; + + // dimensions of uncropped image + const iPoint2D dimUncropped = r->getUncroppedDim(); + img->width = dimUncropped.x; + img->height = dimUncropped.y; + + // dimensions of cropped image + const iPoint2D dimCropped = r->dim; + + // crop - Top,Left corner + const iPoint2D cropTL = r->getCropOffset(); + img->crop_x = cropTL.x; + img->crop_y = cropTL.y; + + // crop - Bottom,Right corner + const iPoint2D cropBR = dimUncropped - dimCropped - cropTL; + img->crop_right = cropBR.x; + img->crop_bottom = cropBR.y; + + img->fuji_rotation_pos = r->metadata.fujiRotationPos; + img->pixel_aspect_ratio = (float)r->metadata.pixelAspectRatio; + if(!r->isCFA) { const dt_imageio_retval_t ret = dt_imageio_open_rawspeed_sraw(img, r, mbuf); @@ -325,32 +328,14 @@ return DT_IMAGEIO_LOAD_FAILED; } - // dimensions of uncropped image - iPoint2D dimUncropped = r->getUncroppedDim(); - img->width = dimUncropped.x; - img->height = dimUncropped.y; - - // dimensions of cropped image - iPoint2D dimCropped = r->dim; - - // crop - Top,Left corner - iPoint2D cropTL = r->getCropOffset(); - img->crop_x = cropTL.x; - img->crop_y = cropTL.y; - - // crop - Bottom,Right corner - iPoint2D cropBR = dimUncropped - dimCropped - cropTL; - img->crop_right = cropBR.x; - img->crop_bottom = cropBR.y; - - img->fuji_rotation_pos = r->metadata.fujiRotationPos; - img->pixel_aspect_ratio = (float)r->metadata.pixelAspectRatio; - // as the X-Trans filters comments later on states, these are for // cropped image, so we need to uncrop them. - img->buf_dsc.filters = dt_rawspeed_crop_dcraw_filters(r->cfa.getDcrawFilter(), cropTL.x, cropTL.y); + img->buf_dsc.filters = dt_rawspeed_crop_dcraw_filters(r->cfa.getDcrawFilter(), + cropTL.x, + cropTL.y); - if(FILTERS_ARE_4BAYER(img->buf_dsc.filters)) img->flags |= DT_IMAGE_4BAYER; + if(FILTERS_ARE_4BAYER(img->buf_dsc.filters)) + img->flags |= DT_IMAGE_4BAYER; if(img->buf_dsc.filters) { @@ -400,8 +385,12 @@ } else { - dt_imageio_flip_buffers((char *)buf, (char *)(&(r->getByteDataAsUncroppedArray2DRef()(0, 0))), r->getBpp(), - dimUncropped.x, dimUncropped.y, dimUncropped.x, dimUncropped.y, r->pitch, + dt_imageio_flip_buffers((char *)buf, + (char *)(&(r->getByteDataAsUncroppedArray2DRef()(0, 0))), + r->getBpp(), + dimUncropped.x, dimUncropped.y, + dimUncropped.x, dimUncropped.y, + r->pitch, ORIENTATION_NONE); } @@ -410,7 +399,7 @@ r->metadata.model.c_str(), r->metadata.mode.c_str()); - if(cam && cam->supportStatus == Camera::SupportStatus::NoSamples) + if(cam && cam->supportStatus == Camera::SupportStatus::SupportedNoSamples) img->camera_missing_sample = TRUE; } catch(const std::exception &exc) @@ -433,14 +422,14 @@ return DT_IMAGEIO_OK; } -dt_imageio_retval_t dt_imageio_open_rawspeed_sraw(dt_image_t *img, RawImage r, dt_mipmap_buffer_t *mbuf) +dt_imageio_retval_t dt_imageio_open_rawspeed_sraw(dt_image_t *img, + const RawImage r, + dt_mipmap_buffer_t *mbuf) { // sraw aren't real raw, but not ldr either (need white balance and stuff) img->flags &= ~DT_IMAGE_LDR; img->flags &= ~DT_IMAGE_RAW; img->flags |= DT_IMAGE_S_RAW; - img->width = r->dim.x; - img->height = r->dim.y; // actually we want to store full floats here: img->buf_dsc.channels = 4; @@ -450,7 +439,8 @@ return DT_IMAGEIO_LOAD_FAILED; const uint32_t cpp = r->getCpp(); - if(cpp != 1 && cpp != 3 && cpp != 4) return DT_IMAGEIO_LOAD_FAILED; + if(cpp != 1 && cpp != 3 && cpp != 4) + return DT_IMAGEIO_LOAD_FAILED; // if buf is NULL, we quit the fct here if(!mbuf) @@ -460,10 +450,12 @@ return DT_IMAGEIO_OK; } - if(cpp == 1) img->flags |= DT_IMAGE_MONOCHROME; + if(cpp == 1) + img->flags |= DT_IMAGE_MONOCHROME; void *buf = dt_mipmap_cache_alloc(mbuf, img); - if(!buf) return DT_IMAGEIO_CACHE_FULL; + if(!buf) + return DT_IMAGEIO_CACHE_FULL; if(cpp == 1) { @@ -527,9 +519,8 @@ for(int i = 0; i < img->width; i++, out += 4) { for(int k = 0; k < 3; k++) - { out[k] = (float)in(j, cpp * i + k) / (float)UINT16_MAX; - } + out[3] = 0.0f; } } } @@ -546,9 +537,8 @@ for(int i = 0; i < img->width; i++, out += 4) { for(int k = 0; k < 3; k++) - { out[k] = in(j, cpp * i + k); - } + out[3] = 0.0f; } } } @@ -562,7 +552,7 @@ r->metadata.model.c_str(), r->metadata.mode.c_str()); - if(cam && cam->supportStatus == Camera::SupportStatus::NoSamples) + if(cam && cam->supportStatus == Camera::SupportStatus::SupportedNoSamples) img->camera_missing_sample = TRUE; return DT_IMAGEIO_OK; diff -Nru darktable-4.4.2/src/imageio/imageio_rgbe.c darktable-4.6.1/src/imageio/imageio_rgbe.c --- darktable-4.4.2/src/imageio/imageio_rgbe.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/imageio_rgbe.c 2024-02-16 17:31:09.000000000 +0000 @@ -315,7 +315,6 @@ #undef RGBE_VALID_GAMMA #undef RGBE_VALID_EXPOSURE -#undef RGBE_RETURN_SUCCESS #undef RGBE_RETURN_FAILURE #undef RGBE_DATA_RED @@ -411,28 +410,40 @@ FILE *f = g_fopen(filename, "rb"); if(!f) return DT_IMAGEIO_LOAD_FAILED; + float *rgbe_buf = NULL; rgbe_header_info info; - if(RGBE_ReadHeader(f, &img->width, &img->height, &info)) goto error_corrupt; + if(RGBE_ReadHeader(f, &img->width, &img->height, &info) != RGBE_RETURN_SUCCESS) + goto rgbe_failed; img->buf_dsc.channels = 4; img->buf_dsc.datatype = TYPE_FLOAT; float *buf = (float *)dt_mipmap_cache_alloc(mbuf, img); if(!buf) goto error_cache_full; - if(RGBE_ReadPixels_RLE(f, buf, img->width, img->height)) goto error_corrupt; + rgbe_buf = dt_alloc_align_float((size_t) img->width * img->height * 4); + if(!rgbe_buf) goto rgbe_failed; + + if(RGBE_ReadPixels_RLE(f, rgbe_buf, img->width, img->height) != RGBE_RETURN_SUCCESS) + goto rgbe_failed; + fclose(f); // repair nan/inf etc - const size_t width = img->width; - const size_t height = img->height; + const size_t npixels = (size_t)img->width * img->height; + #ifdef _OPENMP #pragma omp parallel for default(none) \ - dt_omp_firstprivate(width, height, buf) \ - collapse(2) + dt_omp_firstprivate(npixels, buf, rgbe_buf) #endif - for(size_t i = width * height; i > 0; i--) - for(int c = 0; c < 3; c++) - buf[4 * (i - 1) + c] = fmaxf(0.0f, fminf(10000.0, buf[3 * (i - 1) + c])); + for(size_t i = 0; i < npixels; i++) + { + dt_aligned_pixel_t pix = {0.0f, 0.0f, 0.0f, 0.0f}; + for_three_channels(c) + pix[c] = fmaxf(0.0f, fminf(10000.0f, rgbe_buf[3 * i + c])); + copy_pixel_nontemporal(&buf[4*i], pix); + } + + dt_free_align(rgbe_buf); // set the color matrix float m[4][4]; @@ -457,14 +468,16 @@ img->loader = LOADER_RGBE; return DT_IMAGEIO_OK; -error_corrupt: +rgbe_failed: fclose(f); + dt_free_align(rgbe_buf); return DT_IMAGEIO_LOAD_FAILED; error_cache_full: fclose(f); return DT_IMAGEIO_CACHE_FULL; } +#undef RGBE_RETURN_SUCCESS // clang-format off // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py // vim: shiftwidth=2 expandtab tabstop=2 cindent diff -Nru darktable-4.4.2/src/imageio/qoi.h darktable-4.6.1/src/imageio/qoi.h --- darktable-4.4.2/src/imageio/qoi.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/qoi.h 2024-02-16 17:31:09.000000000 +0000 @@ -594,7 +594,7 @@ int qoi_write(const char *filename, const void *data, const qoi_desc *desc) { FILE *f = fopen(filename, "wb"); - int size; + int size, err; void *encoded; if (!f) { @@ -608,10 +608,12 @@ } fwrite(encoded, 1, size, f); + fflush(f); + err = ferror(f); fclose(f); QOI_FREE(encoded); - return size; + return err ? 0 : size; } void *qoi_read(const char *filename, qoi_desc *desc, int channels) { @@ -625,11 +627,10 @@ fseek(f, 0, SEEK_END); size = ftell(f); - if (size <= 0) { + if (size <= 0 || fseek(f, 0, SEEK_SET) != 0) { fclose(f); return NULL; } - fseek(f, 0, SEEK_SET); data = QOI_MALLOC(size); if (!data) { @@ -639,8 +640,7 @@ bytes_read = fread(data, 1, size, f); fclose(f); - - pixels = qoi_decode(data, bytes_read, desc, channels); + pixels = (bytes_read != size) ? NULL : qoi_decode(data, bytes_read, desc, channels); QOI_FREE(data); return pixels; } diff -Nru darktable-4.4.2/src/imageio/storage/disk.c darktable-4.6.1/src/imageio/storage/disk.c --- darktable-4.4.2/src/imageio/storage/disk.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/storage/disk.c 2024-02-16 17:31:09.000000000 +0000 @@ -41,13 +41,17 @@ #include <stdio.h> #include <stdlib.h> -DT_MODULE(3) +DT_MODULE(4) +extern darktable_t darktable; + +// options for conflict handling typedef enum dt_disk_onconflict_actions_t { DT_EXPORT_ONCONFLICT_UNIQUEFILENAME = 0, DT_EXPORT_ONCONFLICT_OVERWRITE = 1, - DT_EXPORT_ONCONFLICT_SKIP = 2 + DT_EXPORT_ONCONFLICT_OVERWRITE_IF_CHANGED = 2, + DT_EXPORT_ONCONFLICT_SKIP = 3 } dt_disk_onconflict_actions_t; // gui data @@ -65,17 +69,33 @@ dt_variables_params_t *vp; } dt_imageio_disk_t; - const char *name(const struct dt_imageio_module_storage_t *self) { return _("file on disk"); } -void *legacy_params(dt_imageio_module_storage_t *self, const void *const old_params, - const size_t old_params_size, const int old_version, const int new_version, +void *legacy_params(dt_imageio_module_storage_t *self, + const void *const old_params, + const size_t old_params_size, + const int old_version, + int *new_version, size_t *new_size) { - if(old_version == 1 && new_version == 3) + typedef enum dt_disk_onconflict_actions_v3_t + { + DT_EXPORT_ONCONFLICT_UNIQUEFILENAME_V3 = 0, + DT_EXPORT_ONCONFLICT_OVERWRITE_V3 = 1, + DT_EXPORT_ONCONFLICT_SKIP_V3 = 2, + } dt_disk_onconflict_actions_v3_t; + + typedef struct dt_imageio_disk_v3_t + { + char filename[DT_MAX_PATH_FOR_PARAMS]; + dt_disk_onconflict_actions_v3_t onsave_action; + dt_variables_params_t *vp; + } dt_imageio_disk_v3_t; + + if(old_version == 1) { typedef struct dt_imageio_disk_v1_t { @@ -84,16 +104,19 @@ gboolean overwrite; } dt_imageio_disk_v1_t; - dt_imageio_disk_t *n = (dt_imageio_disk_t *)malloc(sizeof(dt_imageio_disk_t)); - dt_imageio_disk_v1_t *o = (dt_imageio_disk_v1_t *)old_params; + const dt_imageio_disk_v1_t *o = (dt_imageio_disk_v1_t *)old_params; + dt_imageio_disk_v3_t *n = (dt_imageio_disk_v3_t *)malloc(sizeof(dt_imageio_disk_v3_t)); g_strlcpy(n->filename, o->filename, sizeof(n->filename)); - n->onsave_action = (o->overwrite) ? DT_EXPORT_ONCONFLICT_OVERWRITE: DT_EXPORT_ONCONFLICT_UNIQUEFILENAME; + n->onsave_action = (o->overwrite) + ? DT_EXPORT_ONCONFLICT_OVERWRITE_V3 + : DT_EXPORT_ONCONFLICT_UNIQUEFILENAME_V3; - *new_size = self->params_size(self); + *new_version = 3; + *new_size = sizeof(dt_imageio_disk_v3_t) - sizeof(void *); return n; } - if(old_version == 2 && new_version == 3) + if(old_version == 2) { typedef struct dt_imageio_disk_v2_t { @@ -102,19 +125,71 @@ dt_variables_params_t *vp; } dt_imageio_disk_v2_t; - dt_imageio_disk_t *n = (dt_imageio_disk_t *)malloc(sizeof(dt_imageio_disk_t)); - dt_imageio_disk_v2_t *o = (dt_imageio_disk_v2_t *)old_params; + const dt_imageio_disk_v2_t *o = (dt_imageio_disk_v2_t *)old_params; + dt_imageio_disk_v3_t *n = (dt_imageio_disk_v3_t *)malloc(sizeof(dt_imageio_disk_v3_t)); + + g_strlcpy(n->filename, o->filename, sizeof(n->filename)); + n->onsave_action = (o->overwrite) + ? DT_EXPORT_ONCONFLICT_OVERWRITE_V3 + : DT_EXPORT_ONCONFLICT_UNIQUEFILENAME_V3; + + *new_version = 3; + *new_size = sizeof(dt_imageio_disk_v3_t) - sizeof(void *); + return n; + } + + // incremental converts + + typedef enum dt_disk_onconflict_actions_v4_t + { + DT_EXPORT_ONCONFLICT_UNIQUEFILENAME_V4 = 0, + DT_EXPORT_ONCONFLICT_OVERWRITE_V4 = 1, + DT_EXPORT_ONCONFLICT_OVERWRITE_IF_CHANGED_V4 = 2, + DT_EXPORT_ONCONFLICT_SKIP_V4 = 3 + } dt_disk_onconflict_actions_v4_t; + + typedef struct dt_imageio_disk_v4_t + { + char filename[DT_MAX_PATH_FOR_PARAMS]; + dt_disk_onconflict_actions_v4_t onsave_action; + dt_variables_params_t *vp; + } dt_imageio_disk_v4_t; + + // from 3 to 4 only + if(old_version == 3) + { + const dt_imageio_disk_v3_t *o = (dt_imageio_disk_v3_t *)old_params; + dt_imageio_disk_v4_t *n = + (dt_imageio_disk_v4_t *)malloc(sizeof(dt_imageio_disk_v4_t)); g_strlcpy(n->filename, o->filename, sizeof(n->filename)); - n->onsave_action = (o->overwrite) ? DT_EXPORT_ONCONFLICT_OVERWRITE: DT_EXPORT_ONCONFLICT_UNIQUEFILENAME; + switch(o->onsave_action) + { + case DT_EXPORT_ONCONFLICT_UNIQUEFILENAME_V3: + n->onsave_action = DT_EXPORT_ONCONFLICT_UNIQUEFILENAME_V4; + break; + case DT_EXPORT_ONCONFLICT_OVERWRITE_V3: + n->onsave_action = DT_EXPORT_ONCONFLICT_OVERWRITE_V4; + break; + case DT_EXPORT_ONCONFLICT_SKIP_V3: + n->onsave_action = DT_EXPORT_ONCONFLICT_SKIP_V4; + break; + default: + n->onsave_action = DT_EXPORT_ONCONFLICT_UNIQUEFILENAME_V4; + } + + // size of v4 did not change + *new_size = sizeof(dt_imageio_disk_v4_t) - sizeof(void *); + *new_version = 4; - *new_size = self->params_size(self); return n; } + return NULL; } -static void button_clicked(GtkWidget *widget, dt_imageio_module_storage_t *self) +static void button_clicked(GtkWidget *widget, + dt_imageio_module_storage_t *self) { disk_t *d = (disk_t *)self->gui_data; GtkWidget *win = dt_ui_main_window(darktable.gui->ui); @@ -137,7 +212,8 @@ // This would later clash with variable substitution, so we have to escape them gchar *escaped = dt_util_str_replace(composed, "\\", "\\\\"); - gtk_entry_set_text(GTK_ENTRY(d->entry), escaped); // the signal handler will write this to conf + gtk_entry_set_text(GTK_ENTRY(d->entry), escaped); + // the signal handler will write this to conf gtk_editable_set_position(GTK_EDITABLE(d->entry), strlen(escaped)); g_free(dir); g_free(composed); @@ -146,14 +222,18 @@ g_object_unref(filechooser); } -static void entry_changed_callback(GtkEntry *entry, gpointer user_data) +static void entry_changed_callback(GtkEntry *entry, + gpointer user_data) { - dt_conf_set_string("plugins/imageio/storage/disk/file_directory", gtk_entry_get_text(entry)); + dt_conf_set_string("plugins/imageio/storage/disk/file_directory", + gtk_entry_get_text(entry)); } -static void onsave_action_toggle_callback(GtkWidget *widget, gpointer user_data) +static void onsave_action_toggle_callback(GtkWidget *widget, + gpointer user_data) { - dt_conf_set_int("plugins/imageio/storage/disk/overwrite", dt_bauhaus_combobox_get(widget)); + dt_conf_set_int("plugins/imageio/storage/disk/overwrite", + dt_bauhaus_combobox_get(widget)); } void gui_init(dt_imageio_module_storage_t *self) @@ -165,10 +245,13 @@ GtkWidget *hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(hbox), TRUE, FALSE, 0); - d->entry = GTK_ENTRY(dt_action_entry_new(DT_ACTION(self), N_("path"), G_CALLBACK(entry_changed_callback), self, - _("enter the path where to put exported images\nvariables support bash like string manipulation\n" - "type '$(' to activate the completion and see the list of variables"), - dt_conf_get_string_const("plugins/imageio/storage/disk/file_directory"))); + d->entry = + GTK_ENTRY(dt_action_entry_new + (DT_ACTION(self), N_("path"), G_CALLBACK(entry_changed_callback), self, + _("enter the path where to put exported images\nvariables support bash" + " like string manipulation\n" + "type '$(' to activate the completion and see the list of variables"), + dt_conf_get_string_const("plugins/imageio/storage/disk/file_directory"))); dt_gtkentry_setup_completion(d->entry, dt_gtkentry_get_default_path_compl_list()); gtk_editable_set_position(GTK_EDITABLE(d->entry), -1); gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(d->entry), TRUE, TRUE, 0); @@ -184,6 +267,7 @@ onsave_action_toggle_callback, self, N_("create unique filename"), N_("overwrite"), + N_("overwrite if changed"), N_("skip")); gtk_box_pack_start(GTK_BOX(self->widget), d->onsave_action, TRUE, TRUE, 0); } @@ -196,18 +280,31 @@ void gui_reset(dt_imageio_module_storage_t *self) { disk_t *d = (disk_t *)self->gui_data; - // global default can be annoying: - // gtk_entry_set_text(GTK_ENTRY(d->entry), "$(FILE_FOLDER)/darktable_exported/$(FILE_NAME)"); - gtk_entry_set_text(d->entry, dt_confgen_get("plugins/imageio/storage/disk/file_directory", DT_DEFAULT)); - dt_bauhaus_combobox_set(d->onsave_action, dt_confgen_get_int("plugins/imageio/storage/disk/overwrite", DT_DEFAULT)); - dt_conf_set_string("plugins/imageio/storage/disk/file_directory", gtk_entry_get_text(d->entry)); - dt_conf_set_int("plugins/imageio/storage/disk/overwrite", dt_bauhaus_combobox_get(d->onsave_action)); -} - -int store(dt_imageio_module_storage_t *self, dt_imageio_module_data_t *sdata, const dt_imgid_t imgid, - dt_imageio_module_format_t *format, dt_imageio_module_data_t *fdata, const int num, const int total, - const gboolean high_quality, const gboolean upscale, const gboolean export_masks, - dt_colorspaces_color_profile_type_t icc_type, const gchar *icc_filename, dt_iop_color_intent_t icc_intent, + gtk_entry_set_text(d->entry, + dt_confgen_get("plugins/imageio/storage/disk/file_directory", + DT_DEFAULT)); + dt_bauhaus_combobox_set(d->onsave_action, + dt_confgen_get_int("plugins/imageio/storage/disk/overwrite", + DT_DEFAULT)); + dt_conf_set_string("plugins/imageio/storage/disk/file_directory", + gtk_entry_get_text(d->entry)); + dt_conf_set_int("plugins/imageio/storage/disk/overwrite", + dt_bauhaus_combobox_get(d->onsave_action)); +} + +int store(dt_imageio_module_storage_t *self, + dt_imageio_module_data_t *sdata, + const dt_imgid_t imgid, + dt_imageio_module_format_t *format, + dt_imageio_module_data_t *fdata, + const int num, + const int total, + const gboolean high_quality, + const gboolean upscale, + const gboolean export_masks, + dt_colorspaces_color_profile_type_t icc_type, + const gchar *icc_filename, + dt_iop_color_intent_t icc_intent, dt_export_metadata_t *metadata) { dt_imageio_disk_t *d = (dt_imageio_disk_t *)sdata; @@ -230,7 +327,8 @@ // avoid braindead export which is bound to overwrite at random: if(total > 1 && !g_strrstr(pattern, "$")) { - snprintf(pattern + strlen(pattern), sizeof(pattern) - strlen(pattern), "_$(SEQUENCE)"); + snprintf(pattern + strlen(pattern), + sizeof(pattern) - strlen(pattern), "_$(SEQUENCE)"); } gchar *fixed_path = dt_util_fix_path(pattern); @@ -246,29 +344,41 @@ g_strlcpy(filename, result_filename, sizeof(filename)); g_free(result_filename); - // if filenamepattern is a directory just add ${FILE_NAME} as default.. - // this can happen if the filename component of the pattern is an empty variable + // if filenamepattern is a directory just add ${FILE_NAME} as + // default.. this can happen if the filename component of the + // pattern is an empty variable char last_char = *(filename + strlen(filename) - 1); if(last_char == '/' || last_char == '\\') { // add to the end of the original pattern without caring about a // potentially added "_$(SEQUENCE)" - if(snprintf(pattern, sizeof(pattern), "%s" G_DIR_SEPARATOR_S "$(FILE_NAME)", d->filename) < sizeof(pattern)) + if(snprintf(pattern, sizeof(pattern), "%s" + G_DIR_SEPARATOR_S "$(FILE_NAME)", d->filename) < sizeof(pattern)) goto try_again; } + // get the directory path of the output file char *output_dir = g_path_get_dirname(filename); + // try to create the output directory (including parent + // directories, if necessary) if(g_mkdir_with_parents(output_dir, 0755)) { - dt_print(DT_DEBUG_ALWAYS, "[imageio_storage_disk] could not create directory: `%s'!\n", output_dir); + // output directory could not be created + dt_print(DT_DEBUG_ALWAYS, + "[imageio_storage_disk] could not create directory: `%s'!\n", + output_dir); dt_control_log(_("could not create directory `%s'!"), output_dir); fail = TRUE; goto failed; } + // make sure the outpur directory is writeable if(g_access(output_dir, W_OK | X_OK) != 0) { - dt_print(DT_DEBUG_ALWAYS, "[imageio_storage_disk] could not write to directory: `%s'!\n", output_dir); + // output directory is not writeable + dt_print(DT_DEBUG_ALWAYS, + "[imageio_storage_disk] could not write to directory: `%s'!\n", + output_dir); dt_control_log(_("could not write to directory `%s'!"), output_dir); fail = TRUE; goto failed; @@ -283,9 +393,13 @@ failed: g_free(output_dir); + // conflict handling option: unique filename is generated if the + // file already exists if(!fail && d->onsave_action == DT_EXPORT_ONCONFLICT_UNIQUEFILENAME) { int seq = 1; + + // increase filename suffix until a filename is generated that is unique while(g_file_test(filename, G_FILE_TEST_EXISTS)) { snprintf(c, filename_free_space, "_%.2d.%s", seq, ext); @@ -293,10 +407,13 @@ } } + // conflict handling option: skip if(!fail && d->onsave_action == DT_EXPORT_ONCONFLICT_SKIP) { + // check if the file exists if(g_file_test(filename, G_FILE_TEST_EXISTS)) { + // file exists, skip dt_pthread_mutex_unlock(&darktable.plugin_threadsafe); dt_print(DT_DEBUG_ALWAYS, "[export_job] skipping `%s'\n", filename); dt_control_log(ngettext("%d/%d skipping `%s'", "%d/%d skipping `%s'", num), @@ -304,15 +421,42 @@ return 0; } } + + // conflict handling option: overwrite if newer + if(!fail && d->onsave_action == DT_EXPORT_ONCONFLICT_OVERWRITE_IF_CHANGED) + { + // get the image data + const dt_image_t *img = dt_image_cache_get(darktable.image_cache, imgid, 'r'); + GTimeSpan change_timestamp = img->change_timestamp; + GTimeSpan export_timestamp = img->export_timestamp; + dt_image_cache_read_release(darktable.image_cache, img); + + // check if the export timestamp in the database is more recent than the change + // date, if yes skip the image + if(export_timestamp > change_timestamp) + { + dt_pthread_mutex_unlock(&darktable.plugin_threadsafe); + dt_print(DT_DEBUG_ALWAYS, + "[export_job] skipping (not modified since export) `%s'\n", filename); + dt_control_log(ngettext("%d/%d skipping (not modified since export) `%s'", + "%d/%d skipping (not modified since export) `%s'", num), + num, total, filename); + return 0; + } + } } // end of critical block dt_pthread_mutex_unlock(&darktable.plugin_threadsafe); if(fail) return 1; /* export image to file */ - if(dt_imageio_export(imgid, filename, format, fdata, high_quality, upscale, TRUE, export_masks, icc_type, - icc_filename, icc_intent, self, sdata, num, total, metadata) != 0) + if(dt_imageio_export(imgid, filename, format, fdata, high_quality, + upscale, TRUE, export_masks, icc_type, + icc_filename, icc_intent, self, sdata, + num, total, metadata) != 0) { - dt_print(DT_DEBUG_ALWAYS, "[imageio_storage_disk] could not export to file: `%s'!\n", filename); + dt_print(DT_DEBUG_ALWAYS, + "[imageio_storage_disk] could not export to file: `%s'!\n", + filename); dt_control_log(_("could not export to file `%s'!"), filename); return 1; } @@ -331,7 +475,8 @@ void init(dt_imageio_module_storage_t *self) { #ifdef USE_LUA - dt_lua_register_module_member(darktable.lua_state.state, self, dt_imageio_disk_t, filename, + dt_lua_register_module_member(darktable.lua_state.state, self, + dt_imageio_disk_t, filename, char_path_length); #endif } @@ -340,7 +485,8 @@ { dt_imageio_disk_t *d = (dt_imageio_disk_t *)calloc(1, sizeof(dt_imageio_disk_t)); - const char *text = dt_conf_get_string_const("plugins/imageio/storage/disk/file_directory"); + const char *text = + dt_conf_get_string_const("plugins/imageio/storage/disk/file_directory"); g_strlcpy(d->filename, text, sizeof(d->filename)); d->onsave_action = dt_conf_get_int("plugins/imageio/storage/disk/overwrite"); @@ -351,7 +497,8 @@ return d; } -void free_params(dt_imageio_module_storage_t *self, dt_imageio_module_data_t *params) +void free_params(dt_imageio_module_storage_t *self, + dt_imageio_module_data_t *params) { if(!params) return; dt_imageio_disk_t *d = (dt_imageio_disk_t *)params; @@ -359,7 +506,9 @@ free(params); } -int set_params(dt_imageio_module_storage_t *self, const void *params, const int size) +int set_params(dt_imageio_module_storage_t *self, + const void *params, + const int size) { dt_imageio_disk_t *d = (dt_imageio_disk_t *)params; disk_t *g = (disk_t *)self->gui_data; @@ -375,10 +524,12 @@ char *ask_user_confirmation(dt_imageio_module_storage_t *self) { disk_t *g = (disk_t *)self->gui_data; - if(dt_bauhaus_combobox_get(g->onsave_action) == DT_EXPORT_ONCONFLICT_OVERWRITE && dt_conf_get_bool("plugins/lighttable/export/ask_before_export_overwrite")) + if(dt_bauhaus_combobox_get(g->onsave_action) == DT_EXPORT_ONCONFLICT_OVERWRITE + && dt_conf_get_bool("plugins/lighttable/export/ask_before_export_overwrite")) { - return g_strdup(_("you are going to export in overwrite mode, this will overwrite any existing images\n\n" - "do you really want to continue?")); + return g_strdup(_("you are going to export in overwrite mode," + " this will overwrite any existing images\n\n" + "do you really want to continue?")); } else { @@ -391,4 +542,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/imageio/storage/email.c darktable-4.6.1/src/imageio/storage/email.c --- darktable-4.4.2/src/imageio/storage/email.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/storage/email.c 2024-02-16 17:31:09.000000000 +0000 @@ -31,6 +31,11 @@ #include <stdio.h> #include <stdlib.h> +#ifdef _WIN32 +#include <mapi.h> +#include <stringapiset.h> // for MultiByteToWideChar +#endif + DT_MODULE(2) typedef struct _email_attachment_t @@ -52,11 +57,20 @@ return _("send as email"); } -void *legacy_params(dt_imageio_module_storage_t *self, const void *const old_params, - const size_t old_params_size, const int old_version, const int new_version, +void *legacy_params(dt_imageio_module_storage_t *self, + const void *const old_params, + const size_t old_params_size, + const int old_version, + int *new_version, size_t *new_size) { - if(old_version == 1 && new_version == 2) + typedef struct dt_imageio_email_v2_t + { + char filename[DT_MAX_PATH_FOR_PARAMS]; + GList *images; + } dt_imageio_email_v2_t; + + if(old_version == 1) { typedef struct dt_imageio_email_v1_t { @@ -64,18 +78,41 @@ GList *images; } dt_imageio_email_v1_t; - dt_imageio_email_t *n = (dt_imageio_email_t *)malloc(sizeof(dt_imageio_email_t)); - dt_imageio_email_v1_t *o = (dt_imageio_email_v1_t *)old_params; + const dt_imageio_email_v1_t *o = (dt_imageio_email_v1_t *)old_params; + dt_imageio_email_v2_t *n = + (dt_imageio_email_v2_t *)malloc(sizeof(dt_imageio_email_v2_t)); g_strlcpy(n->filename, o->filename, sizeof(n->filename)); - *new_size = self->params_size(self); + *new_version = 2; + *new_size = sizeof(dt_imageio_email_v2_t) - sizeof(GList *); + return n; + } + + // incremental update supported: + /* + typedef struct dt_imageio_email_v3_t + { + ... + } dt_imageio_email_v3_t; + + if(old_version == 2) + { + // let's update from 2 to 3 + + ... + *new_size = sizeof(dt_imageio_email_v3_t) - sizeof(GList *); + *new_version = 3; return n; } + */ return NULL; } -int recommended_dimension(struct dt_imageio_module_storage_t *self, dt_imageio_module_data_t *data, uint32_t *width, uint32_t *height) +int recommended_dimension(struct dt_imageio_module_storage_t *self, + dt_imageio_module_data_t *data, + uint32_t *width, + uint32_t *height) { *width = 1536; *height = 1536; @@ -96,15 +133,25 @@ { } -int store(dt_imageio_module_storage_t *self, dt_imageio_module_data_t *sdata, const dt_imgid_t imgid, - dt_imageio_module_format_t *format, dt_imageio_module_data_t *fdata, const int num, const int total, - const gboolean high_quality, const gboolean upscale, const gboolean export_masks, - dt_colorspaces_color_profile_type_t icc_type, const gchar *icc_filename, dt_iop_color_intent_t icc_intent, +int store(dt_imageio_module_storage_t *self, + dt_imageio_module_data_t *sdata, + const dt_imgid_t imgid, + dt_imageio_module_format_t *format, + dt_imageio_module_data_t *fdata, + const int num, + const int total, + const gboolean high_quality, + const gboolean upscale, + const gboolean export_masks, + dt_colorspaces_color_profile_type_t icc_type, + const gchar *icc_filename, + dt_iop_color_intent_t icc_intent, dt_export_metadata_t *metadata) { dt_imageio_email_t *d = (dt_imageio_email_t *)sdata; - _email_attachment_t *attachment = (_email_attachment_t *)g_malloc(sizeof(_email_attachment_t)); + _email_attachment_t *attachment = + (_email_attachment_t *)g_malloc(sizeof(_email_attachment_t)); attachment->imgid = imgid; /* construct a temporary file name */ @@ -130,10 +177,13 @@ attachment->file = g_build_filename(tmpdir, dirname, (char *)NULL); - if(dt_imageio_export(imgid, attachment->file, format, fdata, high_quality, upscale, TRUE, export_masks, icc_type, + if(dt_imageio_export(imgid, attachment->file, format, fdata, high_quality, + upscale, TRUE, export_masks, icc_type, icc_filename, icc_intent, self, sdata, num, total, metadata) != 0) { - dt_print(DT_DEBUG_ALWAYS, "[imageio_storage_email] could not export to file: `%s'!\n", attachment->file); + dt_print(DT_DEBUG_ALWAYS, + "[imageio_storage_email] could not export to file: `%s'!\n", + attachment->file); dt_control_log(_("could not export to file `%s'!"), attachment->file); g_free(attachment->file); g_free(attachment); @@ -169,19 +219,180 @@ return d; } -int set_params(dt_imageio_module_storage_t *self, const void *params, const int size) +int set_params(dt_imageio_module_storage_t *self, + const void *params, + const int size) { if(size != self->params_size(self)) return 1; return 0; } -void free_params(dt_imageio_module_storage_t *self, dt_imageio_module_data_t *params) +void free_params(dt_imageio_module_storage_t *self, + dt_imageio_module_data_t *params) { if(!params) return; - free(params); + g_free(params); +} + +#ifdef _WIN32 +static LPWSTR _convert_to_widechar(UINT codepage, LPSTR str) +{ + if (!str) return NULL; + + DWORD length = MultiByteToWideChar(codepage, 0, str, -1, NULL, 0); + LPWSTR wc_str = g_malloc(length * sizeof(WCHAR)); + MultiByteToWideChar(codepage, 0, str, -1, wc_str, length); + + return wc_str; +} + +void finalize_store(dt_imageio_module_storage_t *self, + dt_imageio_module_data_t *params) +{ + dt_imageio_email_t *d = (dt_imageio_email_t *)params; + + const gchar *imageBodyFormat = " - %s (%s)\n"; // filename, exif one-liner + const gint num_images = g_list_length(d->images); + gchar *body = NULL; + + // We need an array of MapiFileDesc structures to attach images to an email + lpMapiFileDesc m_fd = g_malloc0(sizeof(MapiFileDesc) * num_images); + + HINSTANCE hInst = LoadLibraryA("mapi32.dll"); + if(!hInst) + { + // Unlikely in normal Windows installations, but let's notify the user if it happens + dt_control_log(_("could not open mapi32.dll")); + dt_print(DT_DEBUG_ALWAYS, "[imageio_storage_email] could not open mapi32.dll"); + return; + } + + LPMAPISENDMAIL SendMail; + SendMail = (LPMAPISENDMAIL)GetProcAddress(hInst, "MAPISendMailW"); + if(!SendMail) + { + // Even more unlikely + dt_control_log(_("could not get SendMail function")); + dt_print(DT_DEBUG_ALWAYS, "[imageio_storage_email] could not get SendMail function"); + return; + } + + // Iterate through the list of exported images and create the body of the email + // from the basic information for those images + int index = 0; // index in the array of attached file + for(GList *iter = d->images; iter; iter = g_list_next(iter)) + { + gchar exif[256] = { 0 }; + _email_attachment_t *attachment = (_email_attachment_t *)iter->data; + gchar *filename = g_path_get_basename(attachment->file); + + m_fd[index].lpszPathName = (LPSTR) _convert_to_widechar(CP_ACP, attachment->file); + m_fd[index].lpszFileName = NULL; // use the same name as in lpszPathName + m_fd[index].lpFileType = NULL; + m_fd[index].nPosition = (ULONG) -1; + + const dt_image_t *img = + dt_image_cache_get(darktable.image_cache, attachment->imgid, 'r'); + dt_image_print_exif(img, exif, sizeof(exif)); + dt_image_cache_read_release(darktable.image_cache, img); + + gchar *imgbody = g_strdup_printf(imageBodyFormat, filename, exif); + if(body != NULL) + { + gchar *body_bak = body; + body = g_strconcat(body_bak, imgbody, NULL); + g_free(body_bak); + } + else + { + body = g_strdup(imgbody); + } + + g_free(imgbody); + g_free(filename); + index++; + } + + MapiMessage m_msg; + ZeroMemory(&m_msg, sizeof (m_msg)); + m_msg.lpszSubject = (LPSTR) _convert_to_widechar(CP_UTF8, + _("images exported from darktable")); + m_msg.lpszNoteText = (LPSTR) _convert_to_widechar(CP_ACP, body); + + m_msg.nFileCount = num_images; + + // Pointer to an array of MapiFileDesc structures. + // Each structure contains information about one file attachment. + m_msg.lpFiles = m_fd; + + SendMail(0L, // use implicit session + 0L, // ulUIParam; 0 is always valid + &m_msg, // the message being sent + MAPI_LOGON_UI|MAPI_DIALOG, + 0); // reserved, must be 0 + + g_free(m_msg.lpszSubject); + g_free(m_msg.lpszNoteText); + for(index = 0; index < num_images; index++) + g_free(m_fd[index].lpszPathName); + g_free(m_fd); +} + +#elif defined __APPLE__ +void finalize_store(dt_imageio_module_storage_t *self, + dt_imageio_module_data_t *params) +{ + dt_imageio_email_t *d = (dt_imageio_email_t *)params; + + const gint nb_images = g_list_length(d->images); + const gint argc = 3 + nb_images; + + char **argv = g_malloc0(sizeof(char *) * (argc + 1)); + + argv[0] = "open"; + argv[1] = "-a"; + argv[2] = "Mail"; + int n = 3; + + for(GList *iter = d->images; iter; iter = g_list_next(iter)) + { + _email_attachment_t *attachment = (_email_attachment_t *)iter->data; + + // use attachment->file directly as we need to free it, and this way it will be + // freed as part of the argument release after the spawn below. + argv[n] = attachment->file; + n += 1; + } + g_list_free_full(d->images, g_free); + d->images = NULL; + + argv[argc] = NULL; + + gchar *cmdline = g_strjoinv(" ", argv); + dt_print(DT_DEBUG_IMAGEIO, "[email] launching '%s'\n", cmdline); + g_free(cmdline); + + gint exit_status = 0; + + g_spawn_sync + (NULL, argv, NULL, + G_SPAWN_SEARCH_PATH | G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_STDERR_TO_DEV_NULL, + NULL, NULL, NULL, NULL, &exit_status, NULL); + + for(int k=3; k<argc; k++) + g_free(argv[k]); + g_free(argv); + + if(exit_status) + { + dt_control_log(_("could not launch email client!")); + } } -void finalize_store(dt_imageio_module_storage_t *self, dt_imageio_module_data_t *params) + +#else // this is for !_WIN32 and !__APPLE__ +void finalize_store(dt_imageio_module_storage_t *self, + dt_imageio_module_data_t *params) { dt_imageio_email_t *d = (dt_imageio_email_t *)params; @@ -204,12 +415,14 @@ gchar exif[256] = { 0 }; _email_attachment_t *attachment = (_email_attachment_t *)iter->data; gchar *filename = g_path_get_basename(attachment->file); - const dt_image_t *img = dt_image_cache_get(darktable.image_cache, attachment->imgid, 'r'); + const dt_image_t *img = + dt_image_cache_get(darktable.image_cache, attachment->imgid, 'r'); dt_image_print_exif(img, exif, sizeof(exif)); dt_image_cache_read_release(darktable.image_cache, img); gchar *imgbody = g_strdup_printf(imageBodyFormat, filename, exif); - if(body != NULL) { + if(body != NULL) + { gchar *body_bak = body; body = g_strconcat(body_bak, imgbody, NULL); g_free(body_bak); @@ -234,16 +447,19 @@ argv[argc] = NULL; - dt_print(DT_DEBUG_ALWAYS, "[email] launching '"); - for(int k=0; k<argc; k++) dt_print(DT_DEBUG_ALWAYS, " %s", argv[k]); - dt_print(DT_DEBUG_ALWAYS, "'\n"); + gchar *cmdline = g_strjoinv(" ", argv); + dt_print(DT_DEBUG_IMAGEIO, "[email] launching '%s'\n", cmdline); + g_free(cmdline); gint exit_status = 0; - g_spawn_sync (NULL, argv, NULL, G_SPAWN_SEARCH_PATH | G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_STDERR_TO_DEV_NULL, - NULL, NULL, NULL, NULL, &exit_status, NULL); + g_spawn_sync + (NULL, argv, NULL, + G_SPAWN_SEARCH_PATH | G_SPAWN_STDOUT_TO_DEV_NULL | G_SPAWN_STDERR_TO_DEV_NULL, + NULL, NULL, NULL, NULL, &exit_status, NULL); - for(int k=4; k<argc; k++) g_free(argv[k]); + for(int k=4; k<argc; k++) + g_free(argv[k]); g_free(argv); if(exit_status) @@ -251,6 +467,7 @@ dt_control_log(_("could not launch email client!")); } } +#endif // !_WIN32 and !__APPLE__ gboolean supported(struct dt_imageio_module_storage_t *storage, struct dt_imageio_module_format_t *format) diff -Nru darktable-4.4.2/src/imageio/storage/gallery.c darktable-4.6.1/src/imageio/storage/gallery.c --- darktable-4.4.2/src/imageio/storage/gallery.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/storage/gallery.c 2024-02-16 17:31:09.000000000 +0000 @@ -54,7 +54,10 @@ { char filename[DT_MAX_PATH_FOR_PARAMS]; char title[1024]; - char cached_dirname[DT_MAX_PATH_FOR_PARAMS]; // expanded during first img store, not stored in param struct. + char cached_dirname[DT_MAX_PATH_FOR_PARAMS]; // expanded during + // first img store, not + // stored in param + // struct. dt_variables_params_t *vp; GList *l; } dt_imageio_gallery_t; @@ -73,35 +76,72 @@ return _("website gallery"); } -void *legacy_params(dt_imageio_module_storage_t *self, const void *const old_params, - const size_t old_params_size, const int old_version, const int new_version, +void *legacy_params(dt_imageio_module_storage_t *self, + const void *const old_params, + const size_t old_params_size, + const int old_version, + int *new_version, size_t *new_size) { - if(old_version == 1 && new_version == 2) + typedef struct dt_imageio_gallery_v2_t + { + char filename[DT_MAX_PATH_FOR_PARAMS]; + char title[1024]; + char cached_dirname[DT_MAX_PATH_FOR_PARAMS]; // expanded during + // first img store, not + // stored in param struct. + dt_variables_params_t *vp; + GList *l; + } dt_imageio_gallery_v2_t; + + if(old_version == 1) { typedef struct dt_imageio_gallery_v1_t { char filename[1024]; char title[1024]; - char cached_dirname[1024]; // expanded during first img store, not stored in param struct. + char cached_dirname[1024]; // expanded during first img store, + // not stored in param struct. dt_variables_params_t *vp; GList *l; } dt_imageio_gallery_v1_t; - dt_imageio_gallery_t *n = (dt_imageio_gallery_t *)malloc(sizeof(dt_imageio_gallery_t)); - dt_imageio_gallery_v1_t *o = (dt_imageio_gallery_v1_t *)old_params; + const dt_imageio_gallery_v1_t *o = (dt_imageio_gallery_v1_t *)old_params; + dt_imageio_gallery_v2_t *n = + (dt_imageio_gallery_v2_t *)malloc(sizeof(dt_imageio_gallery_v2_t)); g_strlcpy(n->filename, o->filename, sizeof(n->filename)); g_strlcpy(n->title, o->title, sizeof(n->title)); g_strlcpy(n->cached_dirname, o->cached_dirname, sizeof(n->cached_dirname)); - *new_size = self->params_size(self); + *new_version = 2; + *new_size = sizeof(dt_imageio_gallery_v2_t) + - 2 * sizeof(void *) - DT_MAX_PATH_FOR_PARAMS; + return n; + } + + // incremental update supported: + /* + typedef struct dt_imageio_gallery_v3_t + { + ... + } dt_imageio_gallery_v3_t; + + if(old_version == 2) + { + // let's update from 2 to 3 + + ... + *new_size = sizeof(dt_imageio_gallery_v3_t) - 2 * sizeof(void *) - DT_MAX_PATH_FOR_PARAMS; + *new_version = 3; return n; } + */ return NULL; } -static void button_clicked(GtkWidget *widget, dt_imageio_module_storage_t *self) +static void button_clicked(GtkWidget *widget, + dt_imageio_module_storage_t *self) { gallery_t *d = (gallery_t *)self->gui_data; GtkWidget *win = dt_ui_main_window(darktable.gui->ui); @@ -124,7 +164,8 @@ // This would later clash with variable substitution, so we have to escape them gchar *escaped = dt_util_str_replace(composed, "\\", "\\\\"); - gtk_entry_set_text(GTK_ENTRY(d->entry), escaped); // the signal handler will write this to conf + gtk_entry_set_text(GTK_ENTRY(d->entry), escaped); + // the signal handler will write this to conf g_free(dir); g_free(composed); g_free(escaped); @@ -132,14 +173,18 @@ g_object_unref(filechooser); } -static void entry_changed_callback(GtkEntry *entry, gpointer user_data) +static void entry_changed_callback(GtkEntry *entry, + gpointer user_data) { - dt_conf_set_string("plugins/imageio/storage/gallery/file_directory", gtk_entry_get_text(entry)); + dt_conf_set_string("plugins/imageio/storage/gallery/file_directory", + gtk_entry_get_text(entry)); } -static void title_changed_callback(GtkEntry *entry, gpointer user_data) +static void title_changed_callback(GtkEntry *entry, + gpointer user_data) { - dt_conf_set_string("plugins/imageio/storage/gallery/title", gtk_entry_get_text(entry)); + dt_conf_set_string("plugins/imageio/storage/gallery/title", + gtk_entry_get_text(entry)); } void gui_init(dt_imageio_module_storage_t *self) @@ -151,10 +196,15 @@ gtk_box_pack_start(GTK_BOX(self->widget), hbox, TRUE, TRUE, 0); GtkWidget *widget; - d->entry = GTK_ENTRY(dt_action_entry_new(DT_ACTION(self), N_("path"), G_CALLBACK(entry_changed_callback), self, - _("enter the path where to put exported images\nvariables support bash like string manipulation\n" - "type '$(' to activate the completion and see the list of variables"), - dt_conf_get_string_const("plugins/imageio/storage/gallery/file_directory"))); + d->entry = + GTK_ENTRY + (dt_action_entry_new + (DT_ACTION(self), N_("path"), + G_CALLBACK(entry_changed_callback), self, + _("enter the path where to put exported images\nvariables support bash like" + " string manipulation\n" + "type '$(' to activate the completion and see the list of variables"), + dt_conf_get_string_const("plugins/imageio/storage/gallery/file_directory"))); dt_gtkentry_setup_completion(d->entry, dt_gtkentry_get_default_path_compl_list()); gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(d->entry), TRUE, TRUE, 0); @@ -167,9 +217,12 @@ hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start(GTK_BOX(self->widget), hbox, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox), dt_ui_label_new(_("title")), FALSE, FALSE, 0); - d->title_entry = GTK_ENTRY(dt_action_entry_new(DT_ACTION(self), N_("title"), G_CALLBACK(title_changed_callback), self, - _("enter the title of the website"), - dt_conf_get_string_const("plugins/imageio/storage/gallery/title"))); + d->title_entry = + GTK_ENTRY(dt_action_entry_new + (DT_ACTION(self), N_("title"), + G_CALLBACK(title_changed_callback), self, + _("enter the title of the website"), + dt_conf_get_string_const("plugins/imageio/storage/gallery/title"))); gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(d->title_entry), TRUE, TRUE, 0); } @@ -181,10 +234,18 @@ void gui_reset(dt_imageio_module_storage_t *self) { gallery_t *d = (gallery_t *)self->gui_data; - gtk_entry_set_text(d->entry, dt_confgen_get("plugins/imageio/storage/gallery/file_directory", DT_DEFAULT)); - gtk_entry_set_text(d->title_entry, dt_confgen_get("plugins/imageio/storage/gallery/title", DT_DEFAULT)); - dt_conf_set_string("plugins/imageio/storage/gallery/file_directory", gtk_entry_get_text(d->entry)); - dt_conf_set_string("plugins/imageio/storage/gallery/title", gtk_entry_get_text(d->title_entry)); + gtk_entry_set_text + (d->entry, + dt_confgen_get("plugins/imageio/storage/gallery/file_directory", + DT_DEFAULT)); + + gtk_entry_set_text(d->title_entry, + dt_confgen_get("plugins/imageio/storage/gallery/title", + DT_DEFAULT)); + dt_conf_set_string("plugins/imageio/storage/gallery/file_directory", + gtk_entry_get_text(d->entry)); + dt_conf_set_string("plugins/imageio/storage/gallery/title", + gtk_entry_get_text(d->title_entry)); } static gint sort_pos(pair_t *a, pair_t *b) @@ -192,10 +253,19 @@ return a->pos - b->pos; } -int store(dt_imageio_module_storage_t *self, dt_imageio_module_data_t *sdata, const dt_imgid_t imgid, - dt_imageio_module_format_t *format, dt_imageio_module_data_t *fdata, const int num, const int total, - const gboolean high_quality, const gboolean upscale, const gboolean export_masks, - dt_colorspaces_color_profile_type_t icc_type, const gchar *icc_filename, dt_iop_color_intent_t icc_intent, +int store(dt_imageio_module_storage_t *self, + dt_imageio_module_data_t *sdata, + const dt_imgid_t imgid, + dt_imageio_module_format_t *format, + dt_imageio_module_data_t *fdata, + const int num, + const int total, + const gboolean high_quality, + const gboolean upscale, + const gboolean export_masks, + dt_colorspaces_color_profile_type_t icc_type, + const gchar *icc_filename, + dt_iop_color_intent_t icc_intent, dt_export_metadata_t *metadata) { dt_imageio_gallery_t *d = (dt_imageio_gallery_t *)sdata; @@ -224,12 +294,14 @@ if(g_file_test(tmp_dir, G_FILE_TEST_IS_DIR) || ((d->filename + strlen(d->filename) - 1)[0] == '/' || (d->filename + strlen(d->filename) - 1)[0] == '\\')) - snprintf(d->filename + strlen(d->filename), sizeof(d->filename) - strlen(d->filename), "/$(FILE_NAME)"); + snprintf(d->filename + strlen(d->filename), + sizeof(d->filename) - strlen(d->filename), "/$(FILE_NAME)"); // avoid braindead export which is bound to overwrite at random: if(total > 1 && !g_strrstr(d->filename, "$")) { - snprintf(d->filename + strlen(d->filename), sizeof(d->filename) - strlen(d->filename), "_$(SEQUENCE)"); + snprintf(d->filename + strlen(d->filename), + sizeof(d->filename) - strlen(d->filename), "_$(SEQUENCE)"); } gchar *fixed_path = dt_util_fix_path(d->filename); @@ -249,7 +321,8 @@ if(*c == '/') *c = '\0'; if(g_mkdir_with_parents(dirname, 0755)) { - dt_print(DT_DEBUG_ALWAYS, "[imageio_storage_gallery] could not create directory: `%s'!\n", dirname); + dt_print(DT_DEBUG_ALWAYS, + "[imageio_storage_gallery] could not create directory: `%s'!\n", dirname); dt_control_log(_("could not create directory `%s'!"), dirname); return 1; } @@ -305,7 +378,8 @@ sprintf(sc, "/img_%d.html", num); snprintf(relsubfilename, sizeof(relsubfilename), "img_%d.html", num); - // escape special character and especially " which is used in <img> and below in src and msrc + // escape special character and especially " which is used in <img> + // and below in src and msrc gchar *esc_relfilename = g_strescape(relfilename, NULL); gchar *esc_relthumbfilename = g_strescape(relthumbfilename, NULL); @@ -319,15 +393,19 @@ esc_relthumbfilename, num, num-1, title ? title : " ", description ? description : " "); - if(res_title) g_list_free_full(res_title, &g_free); - if(res_desc) g_list_free_full(res_desc, &g_free); + if(res_title) + g_list_free_full(res_title, &g_free); + if(res_desc) + g_list_free_full(res_desc, &g_free); // export image to file. need this to be able to access meaningful // fdata->width and height below. - if(dt_imageio_export(imgid, filename, format, fdata, high_quality, upscale, TRUE, export_masks, icc_type, + if(dt_imageio_export(imgid, filename, format, fdata, high_quality, + upscale, TRUE, export_masks, icc_type, icc_filename, icc_intent, self, sdata, num, total, metadata) != 0) { - dt_print(DT_DEBUG_ALWAYS, "[imageio_storage_gallery] could not export to file: `%s'!\n", filename); + dt_print(DT_DEBUG_ALWAYS, + "[imageio_storage_gallery] could not export to file: `%s'!\n", filename); dt_control_log(_("could not export to file `%s'!"), filename); free(pair); g_free(esc_relfilename); @@ -363,10 +441,12 @@ if(c <= filename || *c == '/') c = filename + strlen(filename); ext = format->extension(fdata); sprintf(c, "-thumb.%s", ext); - if(dt_imageio_export(imgid, filename, format, fdata, FALSE, TRUE, FALSE, export_masks, icc_type, icc_filename, + if(dt_imageio_export(imgid, filename, format, fdata, FALSE, TRUE, FALSE, + export_masks, icc_type, icc_filename, icc_intent, self, sdata, num, total, NULL) != 0) { - dt_print(DT_DEBUG_ALWAYS, "[imageio_storage_gallery] could not export to file: `%s'!\n", filename); + dt_print(DT_DEBUG_ALWAYS, + "[imageio_storage_gallery] could not export to file: `%s'!\n", filename); dt_control_log(_("could not export to file `%s'!"), filename); return 1; } @@ -531,20 +611,24 @@ void init(dt_imageio_module_storage_t *self) { #ifdef USE_LUA - dt_lua_register_module_member(darktable.lua_state.state, self, dt_imageio_gallery_t, filename, + dt_lua_register_module_member(darktable.lua_state.state, self, + dt_imageio_gallery_t, filename, char_path_length); - dt_lua_register_module_member(darktable.lua_state.state, self, dt_imageio_gallery_t, title, char_1024); + dt_lua_register_module_member(darktable.lua_state.state, self, + dt_imageio_gallery_t, title, char_1024); #endif } void *get_params(dt_imageio_module_storage_t *self) { - dt_imageio_gallery_t *d = (dt_imageio_gallery_t *)calloc(1, sizeof(dt_imageio_gallery_t)); + dt_imageio_gallery_t *d = + (dt_imageio_gallery_t *)calloc(1, sizeof(dt_imageio_gallery_t)); d->vp = NULL; d->l = NULL; dt_variables_params_init(&d->vp); - const char *text = dt_conf_get_string_const("plugins/imageio/storage/gallery/file_directory"); + const char *text = + dt_conf_get_string_const("plugins/imageio/storage/gallery/file_directory"); g_strlcpy(d->filename, text, sizeof(d->filename)); text = dt_conf_get_string_const("plugins/imageio/storage/gallery/title"); @@ -553,7 +637,8 @@ return d; } -void free_params(dt_imageio_module_storage_t *self, dt_imageio_module_data_t *params) +void free_params(dt_imageio_module_storage_t *self, + dt_imageio_module_data_t *params) { if(!params) return; dt_imageio_gallery_t *d = (dt_imageio_gallery_t *)params; @@ -561,7 +646,9 @@ free(params); } -int set_params(dt_imageio_module_storage_t *self, const void *params, const int size) +int set_params(dt_imageio_module_storage_t *self, + const void *params, + const int size) { if(size != self->params_size(self)) return 1; dt_imageio_gallery_t *d = (dt_imageio_gallery_t *)params; @@ -573,7 +660,8 @@ return 0; } -gboolean supported(dt_imageio_module_storage_t *storage, dt_imageio_module_format_t *format) +gboolean supported(dt_imageio_module_storage_t *storage, + dt_imageio_module_format_t *format) { const char *mime = format->mime(NULL); if(strcmp(mime, "image/jpeg") == 0) return TRUE; diff -Nru darktable-4.4.2/src/imageio/storage/imageio_storage_api.h darktable-4.6.1/src/imageio/storage/imageio_storage_api.h --- darktable-4.4.2/src/imageio/storage/imageio_storage_api.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/storage/imageio_storage_api.h 2024-02-16 17:31:09.000000000 +0000 @@ -75,9 +75,13 @@ /* called once at the end (after exporting all images), if implemented. */ OPTIONAL(void, finalize_store, struct dt_imageio_module_storage_t *self, struct dt_imageio_module_data_t *data); -OPTIONAL(void *, legacy_params, struct dt_imageio_module_storage_t *self, const void *const old_params, - const size_t old_params_size, const int old_version, const int new_version, - size_t *new_size); +OPTIONAL(void *, legacy_params, + struct dt_imageio_module_storage_t *self, + const void *const old_params, + const size_t old_params_size, + const int old_version, + int *new_version, + size_t *new_size); REQUIRED(size_t, params_size, struct dt_imageio_module_storage_t *self); REQUIRED(void *, get_params, struct dt_imageio_module_storage_t *self); REQUIRED(void, free_params, struct dt_imageio_module_storage_t *self, struct dt_imageio_module_data_t *data); diff -Nru darktable-4.4.2/src/imageio/storage/latex.c darktable-4.6.1/src/imageio/storage/latex.c --- darktable-4.4.2/src/imageio/storage/latex.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/storage/latex.c 2024-02-16 17:31:09.000000000 +0000 @@ -72,31 +72,68 @@ return _("LaTeX book template"); } -void *legacy_params(dt_imageio_module_storage_t *self, const void *const old_params, - const size_t old_params_size, const int old_version, const int new_version, +void *legacy_params(dt_imageio_module_storage_t *self, + const void *const old_params, + const size_t old_params_size, + const int old_version, + int *new_version, size_t *new_size) { - if(old_version == 1 && new_version == 2) + typedef struct dt_imageio_latex_v2_t + { + char filename[DT_MAX_PATH_FOR_PARAMS]; + char title[1024]; + char cached_dirname[DT_MAX_PATH_FOR_PARAMS]; // expanded during + // first img store, + // not stored in + // param struct. + dt_variables_params_t *vp; + GList *l; + } dt_imageio_latex_v2_t; + + if(old_version == 1) { typedef struct dt_imageio_latex_v1_t { char filename[1024]; char title[1024]; - char cached_dirname[1024]; // expanded during first img store, not stored in param struct. + char cached_dirname[1024]; // expanded during first img store, + // not stored in param struct. dt_variables_params_t *vp; GList *l; } dt_imageio_latex_v1_t; - dt_imageio_latex_t *n = (dt_imageio_latex_t *)malloc(sizeof(dt_imageio_latex_t)); - dt_imageio_latex_v1_t *o = (dt_imageio_latex_v1_t *)old_params; + const dt_imageio_latex_v1_t *o = (dt_imageio_latex_v1_t *)old_params; + dt_imageio_latex_v2_t *n = + (dt_imageio_latex_v2_t *)malloc(sizeof(dt_imageio_latex_v2_t)); g_strlcpy(n->filename, o->filename, sizeof(n->filename)); g_strlcpy(n->title, o->title, sizeof(n->title)); g_strlcpy(n->cached_dirname, o->cached_dirname, sizeof(n->cached_dirname)); - *new_size = self->params_size(self); + *new_version = 2; + *new_size = sizeof(dt_imageio_latex_v2_t) + - 2 * sizeof(void *) - DT_MAX_PATH_FOR_PARAMS; + return n; + } + + // incremental update supported: + /* + typedef struct dt_imageio_latex_v3_t + { + ... + } dt_imageio_latex_v3_t; + + if(old_version == 2) + { + // let's update from 2 to 3 + + ... + *new_size = sizeof(dt_imageio_latex_v3_t) - 2 * sizeof(void *) - DT_MAX_PATH_FOR_PARAMS; + *new_version = 3; return n; } + */ return NULL; } diff -Nru darktable-4.4.2/src/imageio/storage/piwigo.c darktable-4.6.1/src/imageio/storage/piwigo.c --- darktable-4.4.2/src/imageio/storage/piwigo.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/imageio/storage/piwigo.c 2024-02-16 17:31:09.000000000 +0000 @@ -125,11 +125,18 @@ dt_storage_piwigo_conflict_actions_t conflict_action; -static char *_get_filename(dt_image_t *img) +static char *_get_filename(const dt_image_t *img, + dt_imageio_module_format_t *format, + dt_imageio_module_data_t *fdata) { char filename[PATH_MAX] = { 0 }; g_strlcpy (filename, img->filename, sizeof(filename)); + const gchar *ext = format->extension(fdata); + char *new_name = dt_filename_change_extension(filename, ext); + g_strlcpy (filename, new_name, sizeof(filename)); + g_free(new_name); + if(img->version > 0) dt_image_path_append_version_no_db(img->version, filename, sizeof(filename)); @@ -297,7 +304,9 @@ } /** Set status connection text */ -static void _piwigo_set_status(dt_storage_piwigo_gui_data_t *ui, gchar *message, gchar *color) +static void _piwigo_set_status(dt_storage_piwigo_gui_data_t *ui, + gchar *message, + gchar *color) { if(!color) color = "#ffffff"; gchar mup[512] = { 0 }; @@ -444,7 +453,8 @@ if(ctx->response && !ctx->error_occured) { - JsonObject *result = json_node_get_object(json_object_get_member(ctx->response, "result")); + JsonObject *result = + json_node_get_object(json_object_get_member(ctx->response, "result")); const gchar *pwg_token = json_object_get_string_member(result, "pwg_token"); ctx->pwg_token = g_strdup(pwg_token); } @@ -525,7 +535,8 @@ } else { - const gchar *errormessage = json_object_get_string_member(ui->api->response, "message"); + const gchar *errormessage = + json_object_get_string_member(ui->api->response, "message"); dt_print(DT_DEBUG_ALWAYS, "[imageio_storage_piwigo] could not authenticate: `%s'!\n", errormessage); @@ -540,7 +551,8 @@ } } -static void _piwigo_entry_changed(GtkEntry *entry, gpointer data) +static void _piwigo_entry_changed(GtkEntry *entry, + gpointer data) { dt_storage_piwigo_gui_data_t *ui = (dt_storage_piwigo_gui_data_t *)data; @@ -550,7 +562,8 @@ if(ui->api) _piwigo_ctx_destroy(&ui->api); } -static void _piwigo_server_entry_changed(GtkEntry *entry, gpointer data) +static void _piwigo_server_entry_changed(GtkEntry *entry, + gpointer data) { dt_storage_piwigo_gui_data_t *ui = (dt_storage_piwigo_gui_data_t *)data; @@ -562,7 +575,8 @@ } } -static void _piwigo_account_changed(GtkComboBox *cb, gpointer data) +static void _piwigo_account_changed(GtkComboBox *cb, + gpointer data) { dt_storage_piwigo_gui_data_t *ui = (dt_storage_piwigo_gui_data_t *)data; const gchar *value = dt_bauhaus_combobox_get_text(ui->account_list); @@ -576,7 +590,8 @@ } } -static void _piwigo_album_changed(GtkComboBox *cb, gpointer data) +static void _piwigo_album_changed(GtkComboBox *cb, + gpointer data) { dt_storage_piwigo_gui_data_t *ui = (dt_storage_piwigo_gui_data_t *)data; const gchar *value = dt_bauhaus_combobox_get_text(ui->album_list); @@ -611,7 +626,8 @@ } } -static void _piwigo_conflict_changed(GtkWidget *widget, gpointer data) +static void _piwigo_conflict_changed(GtkWidget *widget, + gpointer data) { dt_conf_set_int("storage/piwigo/conflict", dt_bauhaus_combobox_get(widget)); } @@ -675,11 +691,14 @@ dt_bauhaus_combobox_add(ui->album_list, _("create new album")); dt_bauhaus_combobox_add(ui->parent_album_list, _("---")); - JsonObject *result = json_node_get_object(json_object_get_member(ui->api->response, "result")); + JsonObject *result = + json_node_get_object(json_object_get_member(ui->api->response, "result")); JsonArray *albums = json_object_get_array_member(result, "categories"); - if(json_array_get_length(albums)>0 && index==0) index = 1; - if(index > json_array_get_length(albums) - 1) index = json_array_get_length(albums) - 1; + if(json_array_get_length(albums)>0 && index==0) + index = 1; + if(index > json_array_get_length(albums) - 1) + index = json_array_get_length(albums) - 1; for(int i = 0; i < json_array_get_length(albums); i++) { @@ -713,8 +732,10 @@ ui->albums = g_list_append(ui->albums, new_album); - dt_bauhaus_combobox_add_aligned(ui->album_list, data, DT_BAUHAUS_COMBOBOX_ALIGN_LEFT); - dt_bauhaus_combobox_add_aligned(ui->parent_album_list, data, DT_BAUHAUS_COMBOBOX_ALIGN_LEFT); + dt_bauhaus_combobox_add_aligned(ui->album_list, data, + DT_BAUHAUS_COMBOBOX_ALIGN_LEFT); + dt_bauhaus_combobox_add_aligned(ui->parent_album_list, data, + DT_BAUHAUS_COMBOBOX_ALIGN_LEFT); } } else @@ -753,7 +774,8 @@ } else { - JsonObject *result = json_node_get_object(json_object_get_member(p->api->response, "result")); + JsonObject *result = + json_node_get_object(json_object_get_member(p->api->response, "result")); // set new album id in parameter p->album_id = json_object_get_int_member(result, "id"); } @@ -763,6 +785,8 @@ static int _piwigo_api_get_image_id(dt_storage_piwigo_params_t *p, dt_image_t *img, + dt_imageio_module_format_t *format, + dt_imageio_module_data_t *fdata, const int page) { GList *args = NULL; @@ -780,20 +804,24 @@ g_list_free(args); - char *filename = _get_filename(img); + char *filename = _get_filename(img, format, fdata); - if(p->api->response && !p->api->error_occured && json_object_has_member(p->api->response, "result")) + if(p->api->response + && !p->api->error_occured + && json_object_has_member(p->api->response, "result")) { JsonNode *result_node = json_object_get_member(p->api->response, "result"); - if(result_node != NULL && json_node_get_node_type(result_node) == JSON_NODE_OBJECT) + if(result_node != NULL + && json_node_get_node_type(result_node) == JSON_NODE_OBJECT) { JsonObject *result = json_node_get_object(result_node); if(json_object_has_member(result, "paging")) { JsonNode *paging_node = json_object_get_member(result, "paging"); - if(paging_node != NULL && json_node_get_node_type(paging_node) == JSON_NODE_OBJECT) + if(paging_node != NULL + && json_node_get_node_type(paging_node) == JSON_NODE_OBJECT) { JsonObject *paging = json_node_get_object(paging_node); int count = json_object_get_int_member(paging, "count"); @@ -804,10 +832,12 @@ for(int i = 0; i < json_array_get_length(existing_images); i++) { - JsonObject *existing_image = json_array_get_object_element(existing_images, i); + JsonObject *existing_image = + json_array_get_object_element(existing_images, i); if(json_object_has_member(existing_image, "file")) { - if(strcmp(filename, json_object_get_string_member(existing_image, "file")) == 0) + if(strcmp(filename, + json_object_get_string_member(existing_image, "file")) == 0) { g_free(filename); return json_object_get_int_member(existing_image, "id"); @@ -815,7 +845,7 @@ } } g_free(filename); - return _piwigo_api_get_image_id(p, img, page+1); + return _piwigo_api_get_image_id(p, img, format, fdata, page+1); } } } @@ -931,7 +961,8 @@ void gui_init(dt_imageio_module_storage_t *self) { - self->gui_data = (dt_storage_piwigo_gui_data_t *)g_malloc0(sizeof(dt_storage_piwigo_gui_data_t)); + self->gui_data = + (dt_storage_piwigo_gui_data_t *)g_malloc0(sizeof(dt_storage_piwigo_gui_data_t)); dt_storage_piwigo_gui_data_t *ui = self->gui_data; ui->albums = NULL; @@ -969,9 +1000,13 @@ hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); ui->server_entry = GTK_ENTRY (dt_action_entry_new - (DT_ACTION(self), N_("server"), - G_CALLBACK(_piwigo_server_entry_changed), ui, - _("the server name\ndefault protocol is https\nspecify http:// if non secure server"), + (DT_ACTION(self), + N_("server"), + G_CALLBACK(_piwigo_server_entry_changed), + ui, + _("the server name\n" + "default protocol is https\n" + "specify insecure protocol http:// explicitly if that protocol is required"), last_account ? last_account->server : "piwigo.com")); gtk_widget_set_hexpand(GTK_WIDGET(ui->server_entry), TRUE); @@ -984,9 +1019,11 @@ hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); ui->user_entry = GTK_ENTRY (dt_action_entry_new - (DT_ACTION(self), N_("user"), - G_CALLBACK(_piwigo_entry_changed), ui, - _("the server name\ndefault protocol is https\nspecify http:// if non secure server"), + (DT_ACTION(self), + N_("user"), + G_CALLBACK(_piwigo_entry_changed), + ui, + NULL, last_account ? last_account->username : "")); gtk_widget_set_hexpand(GTK_WIDGET(ui->user_entry), TRUE); @@ -996,10 +1033,11 @@ // password hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - ui->pwd_entry = GTK_ENTRY(dt_action_entry_new(DT_ACTION(self), - N_("password"), - G_CALLBACK(_piwigo_entry_changed), ui, NULL, - last_account ? last_account->password : "")); + ui->pwd_entry = + GTK_ENTRY(dt_action_entry_new(DT_ACTION(self), + N_("password"), + G_CALLBACK(_piwigo_entry_changed), ui, NULL, + last_account ? last_account->password : "")); gtk_entry_set_visibility(GTK_ENTRY(ui->pwd_entry), FALSE); gtk_widget_set_hexpand(GTK_WIDGET(ui->pwd_entry), TRUE); gtk_box_pack_start(GTK_BOX(hbox), dt_ui_label_new(_("password")), FALSE, FALSE, 0); @@ -1009,14 +1047,16 @@ // login button button = gtk_button_new_with_label(_("login")); gtk_widget_set_tooltip_text(button, _("Piwigo login")); - g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(_piwigo_login_clicked), (gpointer)ui); + g_signal_connect(G_OBJECT(button), "clicked", + G_CALLBACK(_piwigo_login_clicked), (gpointer)ui); gtk_box_pack_start(GTK_BOX(self->widget), button, FALSE, FALSE, 0); // status area ui->status_label = GTK_LABEL(gtk_label_new(NULL)); gtk_label_set_ellipsize(ui->status_label, PANGO_ELLIPSIZE_END); gtk_widget_set_halign(GTK_WIDGET(ui->status_label), GTK_ALIGN_START); - gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(ui->status_label), FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(self->widget), + GTK_WIDGET(ui->status_label), FALSE, FALSE, 0); // select account if(account_index != -1) dt_bauhaus_combobox_set(ui->account_list, account_index); @@ -1043,7 +1083,8 @@ button = dtgtk_button_new(dtgtk_cairo_paint_refresh, CPF_NONE, NULL); gtk_widget_set_tooltip_text(button, _("refresh album list")); - g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(_piwigo_refresh_clicked), (gpointer)ui); + g_signal_connect(G_OBJECT(button), "clicked", + G_CALLBACK(_piwigo_refresh_clicked), (gpointer)ui); gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(self->widget), hbox, FALSE, FALSE, 0); @@ -1051,7 +1092,8 @@ // new album ui->create_box = GTK_BOX(gtk_box_new(GTK_ORIENTATION_VERTICAL, 0)); gtk_widget_set_no_show_all(GTK_WIDGET(ui->create_box), TRUE); - gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(ui->create_box), FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(self->widget), + GTK_WIDGET(ui->create_box), FALSE, FALSE, 0); hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); @@ -1067,7 +1109,8 @@ gtk_box_pack_start(ui->create_box, hbox, FALSE, FALSE, 0); // parent album list - ui->parent_album_list = dt_bauhaus_combobox_new_action(DT_ACTION(self)); // Available albums + ui->parent_album_list = + dt_bauhaus_combobox_new_action(DT_ACTION(self)); // Available albums dt_bauhaus_widget_set_label(ui->parent_album_list, NULL, N_("parent album")); gtk_widget_set_sensitive(ui->parent_album_list, TRUE); gtk_box_pack_start(ui->create_box, ui->parent_album_list, TRUE, TRUE, 0); @@ -1153,7 +1196,7 @@ dt_image_t *img = dt_image_cache_get(darktable.image_cache, imgid, 'r'); - char *filename = _get_filename(img); + char *filename = _get_filename(img, format, fdata); gchar *fname = g_strconcat(darktable.tmpdir, "/", filename, NULL); if((metadata->flags & DT_META_METADATA) && !(metadata->flags & DT_META_CALCULATED)) @@ -1223,11 +1266,11 @@ if(status) { - int pwg_image_id = NO_IMGID; + int pwg_image_id = -1; if(conflict_action != DT_PIWIGO_CONFLICT_NOTHING) { - pwg_image_id = _piwigo_api_get_image_id(p, img, 0); + pwg_image_id = _piwigo_api_get_image_id(p, img, format, fdata, 0); } if(pwg_image_id >= 0 && conflict_action == DT_PIWIGO_CONFLICT_METADATA) @@ -1247,7 +1290,8 @@ } else { - status = _piwigo_api_upload_photo(p, fname, author, caption, description, pwg_image_id); + status = _piwigo_api_upload_photo(p, fname, author, caption, + description, pwg_image_id); if(!status) { dt_print(DT_DEBUG_ALWAYS, @@ -1303,7 +1347,8 @@ { } -static uint64_t _piwigo_album_id(const gchar *name, GList *albums) +static uint64_t _piwigo_album_id(const gchar *name, + GList *albums) { uint64_t id = 0; @@ -1323,16 +1368,21 @@ void *get_params(dt_imageio_module_storage_t *self) { dt_storage_piwigo_gui_data_t *ui = (dt_storage_piwigo_gui_data_t *)self->gui_data; - if(!ui) return NULL; // gui not initialized, CLI mode + + if(!ui) + return NULL; // gui not initialized, CLI mode + dt_storage_piwigo_params_t *p = (dt_storage_piwigo_params_t *)g_malloc0(sizeof(dt_storage_piwigo_params_t)); - if(!p) return NULL; + if(!p) + return NULL; // fill d from controls in ui if(ui->api && ui->api->authenticated == TRUE) { - // create a new context for the import. set username/password to be able to connect. + // create a new context for the import. set username/password to + // be able to connect. p->api = _piwigo_ctx_init(); p->api->authenticated = FALSE; p->api->server = g_strdup(ui->api->server); @@ -1372,7 +1422,8 @@ { case 0: // Create album p->parent_album_id = - _piwigo_album_id(dt_bauhaus_combobox_get_text(ui->parent_album_list), ui->albums); + _piwigo_album_id(dt_bauhaus_combobox_get_text(ui->parent_album_list), + ui->albums); p->album = g_strdup(gtk_entry_get_text(ui->new_album_entry)); p->new_album = TRUE; break; @@ -1420,8 +1471,9 @@ { if(size != self->params_size(self)) return 1; - // gui stuff not updated, as sensitive user data is not stored in the preset. - // TODO: store name/hash in kwallet/etc module and get encrypted stuff from there! + // gui stuff not updated, as sensitive user data is not stored in + // the preset. TODO: store name/hash in kwallet/etc module and get + // encrypted stuff from there! return 0; } diff -Nru darktable-4.4.2/src/iop/CMakeLists.txt darktable-4.6.1/src/iop/CMakeLists.txt --- darktable-4.4.2/src/iop/CMakeLists.txt 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/CMakeLists.txt 2024-02-16 17:31:09.000000000 +0000 @@ -150,6 +150,7 @@ add_iop(diffuse "diffuse.c") add_iop(blurs "blurs.c") add_iop(sigmoid "sigmoid.c") +add_iop(primaries "primaries.c") if(Rsvg2_FOUND) add_iop(watermark "watermark.c") diff -Nru darktable-4.4.2/src/iop/ashift.c darktable-4.6.1/src/iop/ashift.c --- darktable-4.4.2/src/iop/ashift.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/ashift.c 2024-02-16 17:31:09.000000000 +0000 @@ -153,13 +153,13 @@ int operation_tags_filter() { - // switch off clipping and decoration, we want to see the full image. - return IOP_TAG_DECORATION | IOP_TAG_CLIPPING; + // switch off cropping and decoration, we want to see the full image. + return IOP_TAG_DECORATION | IOP_TAG_CROPPING; } -int default_colorspace(dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -460,43 +460,70 @@ int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, - const int new_version) -{ - if(old_version == 1 && new_version == 5) + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_ashift_params_v5_t + { + float rotation; + float lensshift_v; + float lensshift_h; + float shear; + float f_length; + float crop_factor; + float orthocorr; + float aspect; + dt_iop_ashift_mode_t mode; + dt_iop_ashift_crop_t cropmode; + float cl; + float cr; + float ct; + float cb; + float last_drawn_lines[MAX_SAVED_LINES * 4]; + int last_drawn_lines_count; + float last_quad_lines[8]; + } dt_iop_ashift_params_v5_t; + + if(old_version == 1) { - typedef struct dt_iop_ashift_params1_t + typedef struct dt_iop_ashift_params_v1_t { float rotation; float lensshift_v; float lensshift_h; int toggle; - } dt_iop_ashift_params1_t; + } dt_iop_ashift_params_v1_t; - const dt_iop_ashift_params1_t *old = old_params; - dt_iop_ashift_params_t *new = new_params; - new->rotation = old->rotation; - new->lensshift_v = old->lensshift_v; - new->lensshift_h = old->lensshift_h; - new->shear = 0.0f; - new->f_length = DEFAULT_F_LENGTH; - new->crop_factor = 1.0f; - new->orthocorr = 100.0f; - new->aspect = 1.0f; - new->mode = ASHIFT_MODE_GENERIC; - new->cropmode = ASHIFT_CROP_OFF; - new->cl = 0.0f; - new->cr = 1.0f; - new->ct = 0.0f; - new->cb = 1.0f; - for(int i = 0; i < MAX_SAVED_LINES * 4; i++) new->last_drawn_lines[i] = 0.0f; - for(int i = 0; i < 8; i++) new->last_quad_lines[i] = 0.0f; - new->last_drawn_lines_count = 0; + const dt_iop_ashift_params_v1_t *o = old_params; + dt_iop_ashift_params_v5_t *n = + (dt_iop_ashift_params_v5_t *)malloc(sizeof(dt_iop_ashift_params_v5_t)); + n->rotation = o->rotation; + n->lensshift_v = o->lensshift_v; + n->lensshift_h = o->lensshift_h; + n->shear = 0.0f; + n->f_length = DEFAULT_F_LENGTH; + n->crop_factor = 1.0f; + n->orthocorr = 100.0f; + n->aspect = 1.0f; + n->mode = ASHIFT_MODE_GENERIC; + n->cropmode = ASHIFT_CROP_OFF; + n->cl = 0.0f; + n->cr = 1.0f; + n->ct = 0.0f; + n->cb = 1.0f; + for(int i = 0; i < MAX_SAVED_LINES * 4; i++) n->last_drawn_lines[i] = 0.0f; + for(int i = 0; i < 8; i++) n->last_quad_lines[i] = 0.0f; + n->last_drawn_lines_count = 0; + + *new_params = n; + *new_params_size = sizeof(dt_iop_ashift_params_v5_t); + *new_version = 5; return 0; } - if(old_version == 2 && new_version == 5) + if(old_version == 2) { - typedef struct dt_iop_ashift_params2_t + typedef struct dt_iop_ashift_params_v2_t { float rotation; float lensshift_v; @@ -507,32 +534,37 @@ float aspect; dt_iop_ashift_mode_t mode; int toggle; - } dt_iop_ashift_params2_t; + } dt_iop_ashift_params_v2_t; - const dt_iop_ashift_params2_t *old = old_params; - dt_iop_ashift_params_t *new = new_params; - new->rotation = old->rotation; - new->lensshift_v = old->lensshift_v; - new->lensshift_h = old->lensshift_h; - new->shear = 0.0f; - new->f_length = old->f_length; - new->crop_factor = old->crop_factor; - new->orthocorr = old->orthocorr; - new->aspect = old->aspect; - new->mode = old->mode; - new->cropmode = ASHIFT_CROP_OFF; - new->cl = 0.0f; - new->cr = 1.0f; - new->ct = 0.0f; - new->cb = 1.0f; - for(int i = 0; i < MAX_SAVED_LINES * 4; i++) new->last_drawn_lines[i] = 0.0f; - for(int i = 0; i < 8; i++) new->last_quad_lines[i] = 0.0f; - new->last_drawn_lines_count = 0; + const dt_iop_ashift_params_v2_t *o = old_params; + dt_iop_ashift_params_v5_t *n = + (dt_iop_ashift_params_v5_t *)malloc(sizeof(dt_iop_ashift_params_v5_t)); + n->rotation = o->rotation; + n->lensshift_v = o->lensshift_v; + n->lensshift_h = o->lensshift_h; + n->shear = 0.0f; + n->f_length = o->f_length; + n->crop_factor = o->crop_factor; + n->orthocorr = o->orthocorr; + n->aspect = o->aspect; + n->mode = o->mode; + n->cropmode = ASHIFT_CROP_OFF; + n->cl = 0.0f; + n->cr = 1.0f; + n->ct = 0.0f; + n->cb = 1.0f; + for(int i = 0; i < MAX_SAVED_LINES * 4; i++) n->last_drawn_lines[i] = 0.0f; + for(int i = 0; i < 8; i++) n->last_quad_lines[i] = 0.0f; + n->last_drawn_lines_count = 0; + + *new_params = n; + *new_params_size = sizeof(dt_iop_ashift_params_v5_t); + *new_version = 5; return 0; } - if(old_version == 3 && new_version == 5) + if(old_version == 3) { - typedef struct dt_iop_ashift_params3_t + typedef struct dt_iop_ashift_params_v3_t { float rotation; float lensshift_v; @@ -548,32 +580,37 @@ float cr; float ct; float cb; - } dt_iop_ashift_params3_t; + } dt_iop_ashift_params_v3_t; - const dt_iop_ashift_params3_t *old = old_params; - dt_iop_ashift_params_t *new = new_params; - new->rotation = old->rotation; - new->lensshift_v = old->lensshift_v; - new->lensshift_h = old->lensshift_h; - new->shear = 0.0f; - new->f_length = old->f_length; - new->crop_factor = old->crop_factor; - new->orthocorr = old->orthocorr; - new->aspect = old->aspect; - new->mode = old->mode; - new->cropmode = old->cropmode; - new->cl = old->cl; - new->cr = old->cr; - new->ct = old->ct; - new->cb = old->cb; - for(int i = 0; i < MAX_SAVED_LINES * 4; i++) new->last_drawn_lines[i] = 0.0f; - for(int i = 0; i < 8; i++) new->last_quad_lines[i] = 0.0f; - new->last_drawn_lines_count = 0; + const dt_iop_ashift_params_v3_t *o = old_params; + dt_iop_ashift_params_v5_t *n = + (dt_iop_ashift_params_v5_t *)malloc(sizeof(dt_iop_ashift_params_v5_t)); + n->rotation = o->rotation; + n->lensshift_v = o->lensshift_v; + n->lensshift_h = o->lensshift_h; + n->shear = 0.0f; + n->f_length = o->f_length; + n->crop_factor = o->crop_factor; + n->orthocorr = o->orthocorr; + n->aspect = o->aspect; + n->mode = o->mode; + n->cropmode = o->cropmode; + n->cl = o->cl; + n->cr = o->cr; + n->ct = o->ct; + n->cb = o->cb; + for(int i = 0; i < MAX_SAVED_LINES * 4; i++) n->last_drawn_lines[i] = 0.0f; + for(int i = 0; i < 8; i++) n->last_quad_lines[i] = 0.0f; + n->last_drawn_lines_count = 0; + + *new_params = n; + *new_params_size = sizeof(dt_iop_ashift_params_v5_t); + *new_version = 5; return 0; } - if(old_version == 4 && new_version == 5) + if(old_version == 4) { - typedef struct dt_iop_ashift_params4_t + typedef struct dt_iop_ashift_params_v4_t { float rotation; float lensshift_v; @@ -590,27 +627,32 @@ float cr; float ct; float cb; - } dt_iop_ashift_params4_t; + } dt_iop_ashift_params_v4_t; - const dt_iop_ashift_params4_t *old = old_params; - dt_iop_ashift_params_t *new = new_params; - new->rotation = old->rotation; - new->lensshift_v = old->lensshift_v; - new->lensshift_h = old->lensshift_h; - new->shear = old->shear; - new->f_length = old->f_length; - new->crop_factor = old->crop_factor; - new->orthocorr = old->orthocorr; - new->aspect = old->aspect; - new->mode = old->mode; - new->cropmode = old->cropmode; - new->cl = old->cl; - new->cr = old->cr; - new->ct = old->ct; - new->cb = old->cb; - for(int i = 0; i < MAX_SAVED_LINES * 4; i++) new->last_drawn_lines[i] = 0.0f; - for(int i = 0; i < 8; i++) new->last_quad_lines[i] = 0.0f; - new->last_drawn_lines_count = 0; + const dt_iop_ashift_params_v4_t *o = old_params; + dt_iop_ashift_params_v5_t *n = + (dt_iop_ashift_params_v5_t *)malloc(sizeof(dt_iop_ashift_params_v5_t)); + n->rotation = o->rotation; + n->lensshift_v = o->lensshift_v; + n->lensshift_h = o->lensshift_h; + n->shear = o->shear; + n->f_length = o->f_length; + n->crop_factor = o->crop_factor; + n->orthocorr = o->orthocorr; + n->aspect = o->aspect; + n->mode = o->mode; + n->cropmode = o->cropmode; + n->cl = o->cl; + n->cr = o->cr; + n->ct = o->ct; + n->cb = o->cb; + for(int i = 0; i < MAX_SAVED_LINES * 4; i++) n->last_drawn_lines[i] = 0.0f; + for(int i = 0; i < 8; i++) n->last_quad_lines[i] = 0.0f; + n->last_drawn_lines_count = 0; + + *new_params = n; + *new_params_size = sizeof(dt_iop_ashift_params_v5_t); + *new_version = 5; return 0; } @@ -973,15 +1015,15 @@ } -int distort_transform(dt_iop_module_t *self, - dt_dev_pixelpipe_iop_t *piece, - float *const restrict points, - const size_t points_count) +gboolean distort_transform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *const restrict points, + const size_t points_count) { const dt_iop_ashift_data_t *const data = (dt_iop_ashift_data_t *)piece->data; // nothing to be done if parameters are set to neutral values - if(isneutral(data)) return 1; + if(isneutral(data)) return TRUE; float DT_ALIGNED_ARRAY homograph[3][3]; _homography((float *)homograph, data->rotation, data->lensshift_v, data->lensshift_h, @@ -1009,19 +1051,19 @@ points[i + 1] = po[1] / po[2] - cy; } - return 1; + return TRUE; } -int distort_backtransform(dt_iop_module_t *self, - dt_dev_pixelpipe_iop_t *piece, - float *points, - const size_t points_count) +gboolean distort_backtransform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *points, + const size_t points_count) { const dt_iop_ashift_data_t *const data = (dt_iop_ashift_data_t *)piece->data; // nothing to be done if parameters are set to neutral values - if(isneutral(data)) return 1; + if(isneutral(data)) return TRUE; float DT_ALIGNED_ARRAY ihomograph[3][3]; _homography((float *)ihomograph, data->rotation, data->lensshift_v, data->lensshift_h, @@ -1049,7 +1091,7 @@ points[i + 1] = po[1] / po[2]; } - return 1; + return TRUE; } void distort_mask(struct dt_iop_module_t *self, @@ -1367,7 +1409,7 @@ } // edge enhancement in both directions -static int edge_enhance(const double *in, +static gboolean edge_enhance(const double *in, double *out, const int width, const int height) @@ -1409,7 +1451,7 @@ // detail enhancement via bilateral grid (function arguments in and // out may represent identical buffers) -static int detail_enhance(const float *const in, +static gboolean detail_enhance(const float *const in, float *const out, const int width, const int height) @@ -1418,7 +1460,7 @@ const float sigma_s = fminf(width, height) * 0.02f; const float detail = 10.0f; const size_t npixels = (size_t)width * height; - int success = TRUE; + gboolean success = TRUE; // we need to convert from RGB to Lab first; // as colors don't matter we are safe to assume data to be sRGB @@ -1490,7 +1532,7 @@ // do actual line_detection based on LSD algorithm and return results according // to this module's conventions -static int line_detect(float *in, +static gboolean line_detect(float *in, const int width, const int height, const int x_off, @@ -1711,7 +1753,7 @@ scale = g->buf_scale; // create a temporary buffer to hold image data - buffer = malloc(sizeof(float) * 4 * (size_t)width * height); + buffer = dt_alloc_align_float((size_t)4 * width * height); if(buffer != NULL) dt_iop_image_copy_by_size(buffer, g->buf, width, height, 4); } @@ -1752,11 +1794,11 @@ g->lines_version++; g->lines = lines; - free(buffer); + dt_free_align(buffer); return TRUE; error: - free(buffer); + dt_free_align(buffer); return FALSE; } @@ -1770,7 +1812,7 @@ } // do complete permutations -static int quickperm(int *a, int *p, const int N, int *i) +static gboolean quickperm(int *a, int *p, const int N, int *i) { if(*i >= N) return FALSE; @@ -2010,7 +2052,7 @@ // try to clean up structural data by eliminating outliers and thereby increasing // the chance of a convergent fitting -static int _remove_outliers(dt_iop_module_t *module) +static gboolean _remove_outliers(dt_iop_module_t *module) { dt_iop_ashift_gui_data_t *g = (dt_iop_ashift_gui_data_t *)module->gui_data; @@ -2021,11 +2063,15 @@ const int xmax = xmin + width; const int ymax = ymin + height; + if(g->lines_count < 1) + return TRUE; // holds the index set of lines we want to work on int *lines_set = malloc(sizeof(int) * g->lines_count); // holds the result of ransac int *inout_set = malloc(sizeof(int) * g->lines_count); + if(!lines_set || !inout_set) + goto error; // some accounting variables int vnb = 0, vcount = 0; int hnb = 0, hcount = 0; @@ -3031,14 +3077,14 @@ dt_iop_ashift_params_t *p = (dt_iop_ashift_params_t *)self->params; if(!g || !p) return; - const float pr_d = self->dev->preview_downsampling; // save quad lines (we only handle the 2 vertical lines) if(g->current_structure_method == ASHIFT_METHOD_QUAD && g->lines && g->lines_count >= 4) { float pts[8] = - { g->lines[0].p1[0] / pr_d, g->lines[0].p1[1] / pr_d, g->lines[0].p2[0] / pr_d, - g->lines[0].p2[1] / pr_d, g->lines[1].p1[0] / pr_d, g->lines[1].p1[1] / pr_d, - g->lines[1].p2[0] / pr_d, g->lines[1].p2[1] / pr_d }; + { g->lines[0].p1[0], g->lines[0].p1[1], + g->lines[0].p2[0], g->lines[0].p2[1], + g->lines[1].p1[0], g->lines[1].p1[1], + g->lines[1].p2[0], g->lines[1].p2[1] }; if(dt_dev_distort_backtransform_plus(self->dev, self->dev->preview_pipe, self->iop_order, @@ -3092,8 +3138,6 @@ dt_dev_pixelpipe_iop_t *piece = dt_dev_distort_get_iop_pipe(self->dev, self->dev->preview_pipe, self); - const float pr_d = self->dev->preview_downsampling; - if(method == ASHIFT_METHOD_QUAD && p->last_quad_lines[0] > 0.0f && p->last_quad_lines[1] > 0.0f && p->last_quad_lines[2] > 0.0f && p->last_quad_lines[3] > 0.0f) @@ -3106,29 +3150,27 @@ DT_DEV_TRANSFORM_DIR_BACK_EXCL, pts, 4)) { if(g->lines) free(g->lines); - g->lines = (dt_iop_ashift_line_t *)g_malloc0(sizeof(dt_iop_ashift_line_t) * 4); + g->lines = (dt_iop_ashift_line_t *)calloc(4, sizeof(dt_iop_ashift_line_t)); // vertical lines _draw_basic_line (&g->lines[0], - pts[0] * pr_d, - pts[1] * pr_d, pts[2] * pr_d, pts[3] * pr_d, + pts[0], pts[1], pts[2], pts[3], ASHIFT_LINE_VERTICAL_SELECTED); _draw_basic_line (&g->lines[1], - pts[4] * pr_d, - pts[5] * pr_d, pts[6] * pr_d, pts[7] * pr_d, + pts[4], pts[5], pts[6], pts[7], ASHIFT_LINE_VERTICAL_SELECTED); // horizontal lines _draw_basic_line (&g->lines[2], - pts[0] * pr_d, - pts[1] * pr_d, pts[4] * pr_d, pts[5] * pr_d, + pts[0], + pts[1], pts[4], pts[5], ASHIFT_LINE_HORIZONTAL_SELECTED); _draw_basic_line (&g->lines[3], - pts[2] * pr_d, - pts[3] * pr_d, pts[6] * pr_d, pts[7] * pr_d, + pts[2], + pts[3], pts[6], pts[7], ASHIFT_LINE_HORIZONTAL_SELECTED); g->lines_count = 4; @@ -3136,8 +3178,8 @@ g->horizontal_count = 2; g->vertical_weight = 2.0; g->horizontal_weight = 2.0; - g->lines_in_width = piece->iwidth * pr_d; - g->lines_in_height = piece->iheight * pr_d; + g->lines_in_width = piece->iwidth; + g->lines_in_height = piece->iheight; g->current_structure_method = method; return TRUE; } @@ -3155,7 +3197,7 @@ p->last_drawn_lines_count * 2)) { if(g->lines) free(g->lines); - g->lines = (dt_iop_ashift_line_t *)g_malloc0(sizeof(dt_iop_ashift_line_t) * p->last_drawn_lines_count); + g->lines = (dt_iop_ashift_line_t *)calloc(p->last_drawn_lines_count, sizeof(dt_iop_ashift_line_t)); int vnb = 0; // number of vertical lines int hnb = 0; // number of horizontal lines @@ -3181,8 +3223,8 @@ g->horizontal_count = hnb; g->vertical_weight = (float)vnb; g->horizontal_weight = (float)hnb; - g->lines_in_width = piece->iwidth * pr_d; - g->lines_in_height = piece->iheight * pr_d; + g->lines_in_width = piece->iwidth; + g->lines_in_height = piece->iheight; g->current_structure_method = method; return TRUE; } @@ -3191,7 +3233,7 @@ } // helper function to clean structural data -static int _do_clean_structure(dt_iop_module_t *module, +static gboolean _do_clean_structure(dt_iop_module_t *module, dt_iop_ashift_params_t *p, const gboolean save_drawn) { @@ -3215,7 +3257,7 @@ } // helper function to start analysis for structural data and report about errors -static int _do_get_structure_auto(dt_iop_module_t *module, +static gboolean _do_get_structure_auto(dt_iop_module_t *module, dt_iop_ashift_params_t *p, const dt_iop_ashift_enhance_t enhance) { @@ -3306,9 +3348,8 @@ g->current_structure_method = ASHIFT_METHOD_LINES; - const float pr_d = self->dev->preview_downsampling; - g->lines_in_width = piece->iwidth * pr_d; - g->lines_in_height = piece->iheight * pr_d; + g->lines_in_width = piece->iwidth; + g->lines_in_height = piece->iheight; g->lines_x_off = 0; g->lines_y_off = 0; @@ -3358,9 +3399,8 @@ } else { - const float pr_d = self->dev->preview_downsampling; - const float wd = self->dev->preview_pipe->backbuf_width; - const float ht = self->dev->preview_pipe->backbuf_height; + float wd, ht; + dt_dev_get_preview_size(self->dev, &wd, &ht); float pts[8] = { wd * 0.2, ht * 0.2, wd * 0.2, ht * 0.8, wd * 0.8, ht * 0.2, wd * 0.8, ht * 0.8 }; @@ -3370,31 +3410,31 @@ DT_DEV_TRANSFORM_DIR_FORW_INCL, pts, 4)) { g->current_structure_method = ASHIFT_METHOD_QUAD; - g->lines = (dt_iop_ashift_line_t *)malloc(sizeof(dt_iop_ashift_line_t) * 4); + g->lines = (dt_iop_ashift_line_t *)calloc(4, sizeof(dt_iop_ashift_line_t)); g->lines_count = 4; _draw_basic_line(&g->lines[0], - pts[0] * pr_d, pts[1] * pr_d, - pts[2] * pr_d, pts[3] * pr_d, + pts[0], pts[1], + pts[2], pts[3], ASHIFT_LINE_VERTICAL_SELECTED); _draw_basic_line(&g->lines[1], - pts[4] * pr_d, - pts[5] * pr_d, pts[6] * pr_d, pts[7] * pr_d, + pts[4], + pts[5], pts[6], pts[7], ASHIFT_LINE_VERTICAL_SELECTED); _draw_basic_line(&g->lines[2], - pts[0] * pr_d, pts[1] * pr_d, pts[4] * pr_d, - pts[5] * pr_d, + pts[0], pts[1], pts[4], + pts[5], ASHIFT_LINE_HORIZONTAL_SELECTED); _draw_basic_line(&g->lines[3], - pts[2] * pr_d, - pts[3] * pr_d, pts[6] * pr_d, pts[7] * pr_d, + pts[2], + pts[3], pts[6], pts[7], ASHIFT_LINE_HORIZONTAL_SELECTED); // get real line type (they may be wrong due to image rotation) for(int i = 0; i < 4; i++) _draw_retrieve_line_type(&g->lines[i]); - g->lines_in_width = piece->iwidth * pr_d; - g->lines_in_height = piece->iheight * pr_d; + g->lines_in_width = piece->iwidth; + g->lines_in_height = piece->iheight; g->lines_x_off = 0; g->lines_y_off = 0; g->vertical_count = 2; @@ -3474,12 +3514,11 @@ { // we want to find out if the final output image is flipped in relation to this iop // so we can adjust the gui labels accordingly - const float pr_d = self->dev->preview_downsampling; const int width = roi_in->width; const int height = roi_in->height; const int x_off = roi_in->x; const int y_off = roi_in->y; - const float scale = roi_in->scale / pr_d; + const float scale = roi_in->scale; // origin of image and opposite corner as reference points dt_boundingbox_t points = { 0.0f, @@ -3518,10 +3557,10 @@ || (size_t)g->buf_width * g->buf_height < (size_t)width * height) { // if needed allocate buffer - free(g->buf); // a no-op if g->buf is NULL + dt_free_align(g->buf); // only get new buffer if no old buffer available or old buffer // does not fit in terms of size - g->buf = malloc(sizeof(float) * 4 * width * height); + g->buf = dt_alloc_align_float(4 * width * height); } if(g->buf /* && hash != g->buf_hash */) @@ -3628,10 +3667,9 @@ { // we want to find out if the final output image is flipped in relation to this iop // so we can adjust the gui labels accordingly - const float pr_d = self->dev->preview_downsampling; const int x_off = roi_in->x; const int y_off = roi_in->y; - const float scale = roi_in->scale / pr_d; + const float scale = roi_in->scale; // origin of image and opposite corner as reference points dt_boundingbox_t points = { 0.0f, @@ -3669,9 +3707,9 @@ if(g->buf == NULL || (size_t)g->buf_width * g->buf_height < (size_t)iwidth * iheight) { // if needed allocate buffer - free(g->buf); // a no-op if g->buf is NULL + dt_free_align(g->buf); // only get new buffer if no old buffer or old buffer does not fit in terms of size - g->buf = malloc(sizeof(float) * 4 * iwidth * iheight); + g->buf = dt_alloc_align_float(4 * iwidth * iheight); } if(g->buf /* && hash != g->buf_hash */) @@ -3698,7 +3736,7 @@ size_t region[] = { width, height, 1 }; err = dt_opencl_enqueue_copy_image(devid, dev_in, dev_out, origin, origin, region); if(err != CL_SUCCESS) goto error; - return TRUE; + return CL_SUCCESS; } float ihomograph[3][3]; @@ -3713,6 +3751,7 @@ const float cx = roi_out->scale * fullwidth * d->cl; const float cy = roi_out->scale * fullheight * d->ct; + err = CL_MEM_OBJECT_ALLOCATION_FAILURE; dev_homo = dt_opencl_copy_host_to_device_constant(devid, sizeof(float) * 9, ihomograph); if(dev_homo == NULL) goto error; @@ -3743,6 +3782,7 @@ ldkernel = gd->kernel_ashift_lanczos3; break; default: + err = DT_OPENCL_DEFAULT_ERROR; goto error; } @@ -3752,16 +3792,10 @@ CLARG(iwidth), CLARG(iheight), CLARRAY(2, iroi), CLARRAY(2, oroi), CLARG(in_scale), CLARG(out_scale), CLARRAY(2, clip), CLARG(dev_homo)); - if(err != CL_SUCCESS) goto error; - - dt_opencl_release_mem_object(dev_homo); - return TRUE; error: dt_opencl_release_mem_object(dev_homo); - dt_print(DT_DEBUG_OPENCL, "[opencl_ashift] couldn't enqueue kernel! %s\n", - cl_errstr(err)); - return FALSE; + return err; } #endif @@ -3776,10 +3810,13 @@ { const float delta2 = delta * delta; + if(lines_count < 1 || points_idx == NULL) + return; + for(int n = 0; n < lines_count; n++) - { points_idx[n].near = 0; - + for(int n = 0; n < lines_count; n++) + { // skip irrelevant lines if(points_idx[n].type == ASHIFT_LINE_IRRELEVANT) continue; @@ -3901,14 +3938,14 @@ // update color information in points_idx if lines have changed in // terms of type (but not in terms of number or position) -static int update_colors(struct dt_iop_module_t *self, +static gboolean _update_colors(struct dt_iop_module_t *self, dt_iop_ashift_points_idx_t *points_idx, const int points_lines_count) { dt_iop_ashift_gui_data_t *g = (dt_iop_ashift_gui_data_t *)self->gui_data; // is the display flipped relative to the original image? - const int isflipped = g->isflipped; + const gboolean isflipped = g->isflipped; // go through all lines for(int n = 0; n < points_lines_count; n++) @@ -3934,7 +3971,7 @@ } // get all the points to display lines in the gui -static int get_points(struct dt_iop_module_t *self, +static gboolean _get_points(struct dt_iop_module_t *self, const dt_iop_ashift_line_t *lines, const int lines_count, const int lines_version, @@ -3947,6 +3984,8 @@ dt_develop_t *dev = self->dev; dt_iop_ashift_gui_data_t *g = (dt_iop_ashift_gui_data_t *)self->gui_data; + if(lines_count < 1) + return FALSE; dt_iop_ashift_points_idx_t *my_points_idx = NULL; float *my_points = NULL; float *my_extremas = NULL; @@ -3993,7 +4032,7 @@ // now allocate new points buffer my_points = (float *)malloc(sizeof(float) * 2 * total_points); my_extremas = (float *)malloc(sizeof(float) * 2 * 2 * lines_count); - if(my_points == NULL) goto error; + if(my_points == NULL || my_extremas == NULL) goto error; // second step: generate points for each line for(int n = 0, offset = 0; n < lines_count; n++) @@ -4088,7 +4127,7 @@ } // does this gui have focus? -static int gui_has_focus(struct dt_iop_module_t *self) +static gboolean _gui_has_focus(struct dt_iop_module_t *self) { return (self->dev->gui_module == self && dt_dev_modulegroups_get_activated(darktable.develop) != DT_MODULEGROUP_BASICS); @@ -4110,8 +4149,10 @@ dt_dev_pixelpipe_iop_t *piece = dt_dev_distort_get_iop_pipe(self->dev, self->dev->preview_pipe, self); if(!piece) return ret; - if(piece->module == self && /*piece->enabled && */ //see note below - !(dev->gui_module && dev->gui_module->operation_tags_filter() & piece->module->operation_tags())) + if(piece->module == self + // && *piece->enabled see note below + && !(dt_iop_module_is_skipped(dev, piece->module) + && (pipe->type & DT_DEV_PIXELPIPE_BASIC))) { ret = piece->module->distort_transform(piece->module, piece, points, points_count); } @@ -4125,38 +4166,74 @@ // eliminates the glitch. } -void gui_post_expose(struct dt_iop_module_t *self, +static float _calculate_straightening(dt_iop_module_t *self, + float pzx, float pzy, + float bzx, float bzy, + float wd, float ht, + float zoom_scale) +{ + float dx = (pzx - bzx) * wd, dy = (pzy - bzy) * ht; + if(sqrt(dx * dx + dy * dy) * zoom_scale < DT_PIXEL_APPLY_DPI(25)) + return 0.0f; + + // adjust the line with possible current angle and flip on this module + float pts[4] = { 0, 0, dx, dy }; + dt_dev_distort_backtransform_plus(self->dev, self->dev->preview_pipe, + self->iop_order, + DT_DEV_TRANSFORM_DIR_FORW_EXCL, pts, 2); + dx = pts[0] - pts[2]; + dy = pts[1] - pts[3]; + + if(dx < 0) + { + dx = -dx; + dy = -dy; + } + + float angle = atan2f(dy, dx); + if(!(angle >= -M_PI / 2.0 && angle <= M_PI / 2.0)) + return 0.0f; + float close = angle; + if(close > M_PI / 4.0) + close = M_PI / 2.0 - close; + else if(close < -M_PI / 4.0) + close = -M_PI / 2.0 - close; + else + close = -close; + + float a = 180.0 / M_PI * close; + if(a < -180.0) a += 360.0; + if(a > 180.0) a -= 360.0; + + return a; +} + +void gui_post_expose(dt_iop_module_t *self, cairo_t *cr, - const int32_t width, - const int32_t height, - const int32_t pointerx, - const int32_t pointery) + const float wd, + const float ht, + const float pzx, + const float pzy, + const float zoom_scale) { dt_develop_t *dev = self->dev; dt_iop_ashift_gui_data_t *g = (dt_iop_ashift_gui_data_t *)self->gui_data; dt_iop_ashift_params_t *p = (dt_iop_ashift_params_t *)self->params; - // the usual rescaling stuff - const float wd = dev->preview_pipe->backbuf_width; - const float ht = dev->preview_pipe->backbuf_height; - if(wd < 1.0 || ht < 1.0) return; - const float pr_d = dev->preview_downsampling; - const float zoom_y = dt_control_get_dev_zoom_y(); - const float zoom_x = dt_control_get_dev_zoom_x(); - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 1); + const gboolean dimmed = dt_iop_canvas_not_sensitive(dev); + const double lwidth = (dimmed ? 0.5 : 1.0) / zoom_scale; + const double fillc = dimmed ? 0.9 : 0.2; // we draw the cropping area; we need x_off/y_off/width/height which is only available // after g->buf has been processed - if(g->buf && self->enabled && gui_has_focus(self)) + if(g->buf && self->enabled && _gui_has_focus(self)) { // roi data of the preview pipe input buffer - const float iwd = g->buf_width / pr_d; - const float iht = g->buf_height / pr_d; - const float ixo = g->buf_x_off / pr_d; - const float iyo = g->buf_y_off / pr_d; + const float iwd = g->buf_width; + const float iht = g->buf_height; + const float ixo = g->buf_x_off; + const float iyo = g->buf_y_off; // the four corners of the input buffer of this module float V[4][2] = { { ixo, iyo }, @@ -4196,35 +4273,11 @@ double dashes = DT_PIXEL_APPLY_DPI(5.0) / zoom_scale; cairo_set_dash(cr, &dashes, 0, 0); - float cl_x = 0.0f, cl_y = 0.0f, cl_width = 0.0f, cl_height = 0.0f; - - if(wd / (float)width > ht / (float)height) - { - // more spaces top/bottom - cl_x = self->dev->border_size; - cl_y = ((float)height - (ht * zoom_scale)) / 2.0f; - cl_width = width - 2.0f * self->dev->border_size; - cl_height = ht * zoom_scale; - } - else - { - // more spaces left/right - cl_y = self->dev->border_size; - cl_x = ((float)width - (wd * zoom_scale)) / 2.0f; - cl_height = height - (2.0f * self->dev->border_size); - cl_width = wd * zoom_scale; - } - - cairo_rectangle(cr, cl_x, cl_y, cl_width, cl_height); - cairo_clip(cr); - // mask parts of image outside of clipping area in dark grey - cairo_set_source_rgba(cr, .2, .2, .2, .8); + cairo_set_source_rgba(cr, fillc, fillc, fillc, 1.0 - fillc); cairo_set_fill_rule(cr, CAIRO_FILL_RULE_EVEN_ODD); - cairo_rectangle(cr, 0, 0, width, height); - cairo_translate(cr, width / 2.0, height / 2.0); - cairo_scale(cr, zoom_scale, zoom_scale); - cairo_translate(cr, -.5f * wd - zoom_x * wd, -.5f * ht - zoom_y * ht); + + cairo_rectangle(cr, 0, 0, wd, ht); cairo_move_to(cr, C[0][0], C[0][1]); cairo_line_to(cr, C[1][0], C[1][1]); @@ -4235,7 +4288,7 @@ // draw white outline around clipping area dt_draw_set_color_overlay(cr, TRUE, 1.0); - cairo_set_line_width(cr, 2.0 / zoom_scale); + cairo_set_line_width(cr, 2.0 *lwidth); cairo_move_to(cr, C[0][0], C[0][1]); cairo_line_to(cr, C[1][0], C[1][1]); cairo_line_to(cr, C[2][0], C[2][1]); @@ -4267,13 +4320,13 @@ const double size_line = base_size / 5.0f; const double size_arrow = base_size / 25.0f; - cairo_set_line_width(cr, 2.0 / zoom_scale); + cairo_set_line_width(cr, 2.0 * lwidth); dt_draw_set_color_overlay(cr, TRUE, 1.0); cairo_arc (cr, xpos, ypos, size_circle, 0, 2.0 * M_PI); cairo_stroke(cr); cairo_fill(cr); - cairo_set_line_width(cr, 2.0 / zoom_scale); + cairo_set_line_width(cr, 2.0 * lwidth); dt_draw_set_color_overlay(cr, TRUE, 1.0); // horizontal line @@ -4309,47 +4362,30 @@ cairo_restore(cr); } + else + dt_guides_draw(cr, 0.0f, 0.0f, wd, ht, zoom_scale); // we draw the straightening line if(g->straightening) { cairo_save(cr); - cairo_translate(cr, width / 2.0, height / 2.0); - cairo_scale(cr, zoom_scale, zoom_scale); - cairo_translate(cr, -.5f * wd - zoom_x * wd, -.5f * ht - zoom_y * ht); - cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(2.0) / zoom_scale); + cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(2.0) * lwidth); dt_draw_set_color_overlay(cr, FALSE, 1.0); - float pzx, pzy; - dt_dev_get_pointer_zoom_pos(dev, pointerx, pointery, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; - - const float bzx = g->straighten_x + .5f, bzy = g->straighten_y + .5f; + const float bzx = g->straighten_x, bzy = g->straighten_y; cairo_arc(cr, bzx * wd, bzy * ht, - DT_PIXEL_APPLY_DPI(3) * pr_d / zoom_scale, 0, 2.0 * M_PI); + DT_PIXEL_APPLY_DPI(3) / zoom_scale, 0, 2.0 * M_PI); cairo_stroke(cr); cairo_arc(cr, pzx * wd, pzy * ht, - DT_PIXEL_APPLY_DPI(3) * pr_d / zoom_scale, 0, 2.0 * M_PI); + DT_PIXEL_APPLY_DPI(3) / zoom_scale, 0, 2.0 * M_PI); cairo_stroke(cr); cairo_move_to(cr, bzx * wd, bzy * ht); cairo_line_to(cr, pzx * wd, pzy * ht); cairo_stroke(cr); - float dx = pzx * wd - bzx * wd, dy = pzy * ht - bzy * ht; - if(sqrt(dx * dx + dy * dy) * zoom_scale >= DT_PIXEL_APPLY_DPI(25)) + float angle = _calculate_straightening(self, pzx, pzy, bzx, bzy, wd, ht, zoom_scale); + if(angle != 0.0f) { - // show rotation angle - if(dx < 0) - { - dx = -dx; - dy = -dy; - } - float angle = atan2f(dy, dx); - angle = angle * 180 / M_PI; - if(angle > 45.0) angle -= 90; - if(angle < -45.0) angle += 90; - PangoRectangle ink; PangoLayout *layout; PangoFontDescription *desc = @@ -4388,7 +4424,7 @@ if(g->fitting) return; // no structural data or visibility switched off? -> stop here - if(g->lines == NULL || !gui_has_focus(self)) return; + if(g->lines == NULL || !_gui_has_focus(self)) return; // get hash value that changes if distortions from here to the end // of the pixelpipe changed @@ -4410,9 +4446,9 @@ g->draw_points = NULL; g->points_lines_count = 0; - if(!get_points(self, g->lines, g->lines_count, g->lines_version, + if(!_get_points(self, g->lines, g->lines_count, g->lines_version, &g->points, &g->draw_points, &g->points_idx, - &g->points_lines_count, pr_d)) + &g->points_lines_count, 1.0f)) return; g->points_version = g->lines_version; @@ -4426,7 +4462,7 @@ g->points_idx[n].type = g->lines[n].type; // coordinates of lines are unchanged -> we only need to update colors - if(!update_colors(self, g->points_idx, g->points_lines_count)) + if(!_update_colors(self, g->points_idx, g->points_lines_count)) return; g->points_version = g->lines_version; @@ -4436,11 +4472,6 @@ if(g->points == NULL || g->points_idx == NULL) return; cairo_save(cr); - cairo_rectangle(cr, 0, 0, width, height); - cairo_clip(cr); - cairo_translate(cr, width / 2.0, height / 2.0); - cairo_scale(cr, zoom_scale, zoom_scale); - cairo_translate(cr, -.5f * wd - zoom_x * wd, -.5f * ht - zoom_y * ht); // this must match the sequence of enum dt_iop_ashift_linecolor_t! const float line_colors[5][4] = @@ -4463,9 +4494,9 @@ continue; // is the near flag set? -> draw line a bit thicker if(g->points_idx[n].near) - cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(3.0) / zoom_scale); + cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(3.0) * lwidth); else - cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(1.5) / zoom_scale); + cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(1.5) * lwidth); // the color of this line const float *color = line_colors[g->points_idx[n].color]; @@ -4508,9 +4539,9 @@ && g->lines[i / 2].type != ASHIFT_LINE_VERTICAL_SELECTED) continue; if(g->draw_near_point == i) - cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(4.0) / zoom_scale); + cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(4.0) * lwidth); else - cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(2.0) / zoom_scale); + cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(2.0) * lwidth); cairo_arc(cr, g->draw_points[i * 2], g->draw_points[i * 2 + 1], @@ -4523,11 +4554,6 @@ // and we draw the selection box if any if(g->isbounding != ASHIFT_BOUNDING_OFF) { - float pzx = 0.0f, pzy = 0.0f; - dt_dev_get_pointer_zoom_pos(dev, pointerx, pointery, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; - double dashed[] = { 4.0, 4.0 }; dashed[0] /= zoom_scale; dashed[1] /= zoom_scale; @@ -4547,11 +4573,6 @@ // indicate which area is used for "near"-ness detection when selecting/deselecting lines if(g->near_delta > 0) { - float pzx = 0.0f, pzy = 0.0f; - dt_dev_get_pointer_zoom_pos(dev, pointerx, pointery, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; - double dashed[] = { 4.0, 4.0 }; dashed[0] /= zoom_scale; dashed[1] /= zoom_scale; @@ -4560,7 +4581,7 @@ cairo_arc(cr, pzx * wd, pzy * ht, g->near_delta, 0, 2.0 * M_PI); cairo_set_source_rgba(cr, .3, .3, .3, .8); - cairo_set_line_width(cr, 1.0 / zoom_scale); + cairo_set_line_width(cr, 1.0 * lwidth); cairo_set_dash(cr, dashed, len, 0); cairo_stroke_preserve(cr); cairo_set_source_rgba(cr, .8, .8, .8, .8); @@ -4580,7 +4601,7 @@ int vlines = 0; int hlines = 0; - for(int n = 0; n < lines_count; n++) + for(int n = 0; n < lines_count && lines; n++) { if((lines[n].type & ASHIFT_LINE_MASK) == ASHIFT_LINE_VERTICAL_SELECTED) vlines++; @@ -4595,12 +4616,10 @@ // determine if we are near a drawn line extrema static int _draw_near_point(const float x, const float y, + const float zoom_scale, const float *points, const int limit) { - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(darktable.develop, zoom, 1 << closeup, 1); const float delta = DT_PIXEL_APPLY_DPI(6) / zoom_scale; for(int i = 0; i < limit; i++) @@ -4620,11 +4639,12 @@ + (line->p2[1] - line->p1[1]) * (line->p2[1] - line->p1[1])); } -int mouse_moved(struct dt_iop_module_t *self, - double x, - double y, - double pressure, - int which) +int mouse_moved(dt_iop_module_t *self, + const float pzx, + const float pzy, + const double pressure, + const int which, + const float zoom_scale) { dt_iop_ashift_gui_data_t *g = (dt_iop_ashift_gui_data_t *)self->gui_data; @@ -4636,15 +4656,8 @@ gboolean handled = FALSE; - const float wd = self->dev->preview_pipe->backbuf_width; - const float ht = self->dev->preview_pipe->backbuf_height; - const float pr_d = self->dev->preview_downsampling; - if(wd < 1.0 || ht < 1.0) return 1; - - float pzx = 0.0f, pzy = 0.0f; - dt_dev_get_pointer_zoom_pos(self->dev, x, y, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; + float wd, ht; + dt_dev_get_preview_size(self->dev, &wd, &ht); if(g->adjust_crop) { @@ -4654,11 +4667,6 @@ dt_dev_distort_backtransform_plus(self->dev, self->dev->preview_pipe, self->iop_order, DT_DEV_TRANSFORM_DIR_FORW_INCL, pts, 2); - pts[0] *= pr_d; - pts[1] *= pr_d; - pts[2] *= pr_d; - pts[3] *= pr_d; - const float newx = g->crop_cx + (pts[0] - pts[2]) - g->lastx; const float newy = g->crop_cy + (pts[1] - pts[3]) - g->lasty; @@ -4680,8 +4688,6 @@ self->iop_order, DT_DEV_TRANSFORM_DIR_FORW_INCL, pts, 1)) { - pts[0] *= pr_d; - pts[1] *= pr_d; // first we move the point if(g->draw_near_point >= 0) { @@ -4742,8 +4748,8 @@ self->iop_order, DT_DEV_TRANSFORM_DIR_FORW_INCL, pts, 1)) { - const float dx = (pts[0] - g->draw_pointmove_x) * pr_d; - const float dy = (pts[1] - g->draw_pointmove_y) * pr_d; + const float dx = (pts[0] - g->draw_pointmove_x); + const float dy = (pts[1] - g->draw_pointmove_y); const int n = g->draw_line_move; g->draw_pointmove_x = pts[0]; g->draw_pointmove_y = pts[1]; @@ -4818,7 +4824,7 @@ ? g->lines_count * 2 : 4; - g->draw_near_point = _draw_near_point(pzx * wd, pzy * ht, g->draw_points, limit); + g->draw_near_point = _draw_near_point(pzx * wd, pzy * ht, zoom_scale, g->draw_points, limit); } // if in rectangle selecting mode adjust "near"-ness of lines according to @@ -4883,13 +4889,14 @@ return (g->isdeselecting || g->isselecting); } -int button_pressed(struct dt_iop_module_t *self, - const double x, - const double y, +int button_pressed(dt_iop_module_t *self, + const float pzx, + const float pzy, const double pressure, const int which, const int type, - const uint32_t state) + const uint32_t state, + const float zoom_scale) { dt_iop_ashift_gui_data_t *g = (dt_iop_ashift_gui_data_t *)self->gui_data; gboolean handled = FALSE; @@ -4898,24 +4905,16 @@ if(type == GDK_2BUTTON_PRESS && which == 1) return TRUE; - float pzx = 0.0f, pzy = 0.0f; - dt_dev_get_pointer_zoom_pos(self->dev, x, y, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; - - const float wd = self->dev->preview_pipe->backbuf_width; - const float ht = self->dev->preview_pipe->backbuf_height; - if(wd < 1.0 || ht < 1.0) return 1; + float wd, ht; + if(!dt_dev_get_preview_size(self->dev, &wd, &ht)) return 1; // if we start to draw a straightening line if(!g->lines && which == 3) { dt_control_change_cursor(GDK_CROSSHAIR); g->straightening = TRUE; - g->lastx = x; - g->lasty = y; - g->straighten_x = pzx - 0.5f; - g->straighten_y = pzy - 0.5f; + g->straighten_x = pzx; + g->straighten_y = pzy; return TRUE; } @@ -4925,7 +4924,6 @@ dt_iop_ashift_params_t *p = (dt_iop_ashift_params_t *)self->params; if(p->cropmode == ASHIFT_CROP_ASPECT) { - const float pr_d = self->dev->preview_downsampling; dt_control_change_cursor(GDK_HAND1); g->adjust_crop = TRUE; @@ -4933,11 +4931,6 @@ dt_dev_distort_backtransform_plus(self->dev, self->dev->preview_pipe, self->iop_order, DT_DEV_TRANSFORM_DIR_FORW_INCL, pts, 2); - pts[0] *= pr_d; - pts[1] *= pr_d; - pts[2] *= pr_d; - pts[3] *= pr_d; - g->lastx = pts[0] - pts[2]; g->lasty = pts[1] - pts[3]; g->crop_cx = 0.5f * (g->cl + g->cr); @@ -4954,8 +4947,8 @@ && g->draw_near_point >= 0) { g->draw_point_move = TRUE; - g->lastx = x; - g->lasty = y; + g->lastx = pzx; + g->lasty = pzy; return TRUE; } @@ -4976,13 +4969,8 @@ return TRUE; } - dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float min_scale = dt_dev_get_zoom_scale(self->dev, DT_ZOOM_FIT, 1<<closeup, 0); - const float cur_scale = dt_dev_get_zoom_scale(self->dev, zoom, 1<<closeup, 0); - // if we are zoomed out (no panning possible) and we have lines to display we take control - const int take_control = (cur_scale == min_scale) && (g->points_lines_count > 0); + const int take_control = (dt_dev_get_zoomed_in() == 1.0f) && (g->points_lines_count > 0); if(g->current_structure_method == ASHIFT_METHOD_QUAD || g->current_structure_method == ASHIFT_METHOD_LINES) @@ -5047,9 +5035,9 @@ const int count = g->lines_count - 1; dt_iop_ashift_line_t *lines = - (dt_iop_ashift_line_t *)malloc(sizeof(dt_iop_ashift_line_t) * count); + (dt_iop_ashift_line_t *)calloc(count, sizeof(dt_iop_ashift_line_t)); int pos = 0; - for(int i = 0; i < g->lines_count; i++) + for(int i = 0; i < count; i++) { if(i != n) { @@ -5076,18 +5064,15 @@ { // start to draw a manual line g->draw_point_move = TRUE; - g->lastx = x; - g->lasty = y; + g->lastx = pzx; + g->lasty = pzy; // we instantiate a new line with both extrema at the current position // and enable the "move point" mode with the second extrema - const float pr_d = self->dev->preview_downsampling; float pts[2] = { pzx * wd, pzy * ht }; dt_dev_distort_backtransform_plus(self->dev, self->dev->preview_pipe, self->iop_order, DT_DEV_TRANSFORM_DIR_FORW_INCL, pts, 1); - pts[0] *= pr_d; - pts[1] *= pr_d; const int count = g->lines_count + 1; // if count > MAX_SAVED_LINES we alert that the next lines won't // be saved in params but they still may be used for the current @@ -5141,15 +5126,16 @@ return (take_control || handled); } -int button_released(struct dt_iop_module_t *self, - const double x, - const double y, +int button_released(dt_iop_module_t *self, + const float pzx, + const float pzy, const int which, - const uint32_t state) + const uint32_t state, + const float zoom_scale) { dt_iop_ashift_gui_data_t *g = (dt_iop_ashift_gui_data_t *)self->gui_data; - const float wd = self->dev->preview_pipe->backbuf_width; - const float ht = self->dev->preview_pipe->backbuf_height; + float wd, ht; + dt_dev_get_preview_size(self->dev, &wd, &ht); dt_control_change_cursor(GDK_LEFT_PTR); @@ -5165,40 +5151,14 @@ if(g->straightening) { g->straightening = FALSE; - // adjust the line with possible current angle and flip on this module - float pts[4] = { x, y, g->lastx, g->lasty }; - dt_dev_distort_backtransform_plus(self->dev, self->dev->preview_pipe, - self->iop_order, - DT_DEV_TRANSFORM_DIR_FORW_EXCL, pts, 2); - - float dx = pts[0] - pts[2]; - float dy = pts[1] - pts[3]; - if(sqrt(dx * dx + dy * dy) /* zoom_scale */ < DT_PIXEL_APPLY_DPI(25)) - return TRUE; - if(dx < 0) - { - dx = -dx; - dy = -dy; - } - - float angle = atan2f(dy, dx); - if(!(angle >= -M_PI / 2.0 && angle <= M_PI / 2.0)) angle = 0.0f; - float close = angle; - if(close > M_PI / 4.0) - close = M_PI / 2.0 - close; - else if(close < -M_PI / 4.0) - close = -M_PI / 2.0 - close; - else - close = -close; - - float a = 180.0 / M_PI * close; - if(a < -180.0) a += 360.0; - if(a > 180.0) a -= 360.0; + float bzx = g->straighten_x, bzy = g->straighten_y; + float angle = _calculate_straightening(self, pzx, pzy, bzx, bzy, wd, ht, zoom_scale); + if(angle == 0.0f) return TRUE; - float n = dt_bauhaus_slider_get(g->rotation) - a; + float n = dt_bauhaus_slider_get(g->rotation) - angle; dt_bauhaus_slider_set(g->rotation, n); - dt_toast_log(_("rotation adjusted by %3.1f° to %3.1f°"), -a, n); + dt_toast_log(_("rotation adjusted by %3.2f° to %3.2f°"), - angle, n); return TRUE; } @@ -5258,12 +5218,6 @@ gboolean handled = FALSE; // we compute the rectangle selection - float pzx = 0.0f, pzy = 0.0f; - dt_dev_get_pointer_zoom_pos(self->dev, x, y, &pzx, &pzy); - - pzx += 0.5f; - pzy += 0.5f; - if(wd >= 1.0 && ht >= 1.0) { // mark lines inside the rectangle @@ -5322,8 +5276,8 @@ } int scrolled(struct dt_iop_module_t *self, - const double x, - const double y, + const float pzx, + const float pzy, const int up, const uint32_t state) { @@ -5336,13 +5290,8 @@ { gboolean handled = FALSE; - float pzx = 0.0f, pzy = 0.0f; - dt_dev_get_pointer_zoom_pos(self->dev, x, y, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; - - const float wd = self->dev->preview_pipe->backbuf_width; - const float ht = self->dev->preview_pipe->backbuf_height; + float wd, ht; + dt_dev_get_preview_size(self->dev, &wd, &ht); float near_delta = 5.0f; if(g->current_structure_method == ASHIFT_METHOD_QUAD @@ -5755,7 +5704,7 @@ d->orthocorr = (p->mode == ASHIFT_MODE_GENERIC) ? 0.0f : p->orthocorr; d->aspect = (p->mode == ASHIFT_MODE_GENERIC) ? 1.0f : p->aspect; - if(gui_has_focus(self) + if(_gui_has_focus(self) || dt_isnan(p->cl) || dt_isnan(p->cr) || dt_isnan(p->ct) @@ -5860,7 +5809,7 @@ dt_bauhaus_slider_set_default(g->crop_factor, crop_factor); dt_iop_gui_enter_critical_section(module); - free(g->buf); + dt_free_align(g->buf); g->buf = NULL; g->buf_width = 0; g->buf_height = 0; @@ -5985,6 +5934,8 @@ else { _commit_crop_box(p, g); + _gui_update_structure_states(self, NULL); + _do_clean_structure(self, p, TRUE); } } } @@ -6309,7 +6260,7 @@ dt_iop_ashift_gui_data_t *g = (dt_iop_ashift_gui_data_t *)self->gui_data; if(g->lines) free(g->lines); - if(g->buf) free(g->buf); + dt_free_align(g->buf); if(g->points) free(g->points); if(g->points_idx) free(g->points_idx); diff -Nru darktable-4.4.2/src/iop/atrous.c darktable-4.6.1/src/iop/atrous.c --- darktable-4.4.2/src/iop/atrous.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/atrous.c 2024-02-16 17:31:09.000000000 +0000 @@ -5,8 +5,7 @@ darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - + (at your option) any later version darktable is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the @@ -147,15 +146,29 @@ return IOP_FLAGS_SUPPORTS_BLENDING | IOP_FLAGS_ALLOW_TILING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, const int new_version) -{ - if(old_version == 1 && new_version == 2) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_atrous_params_v2_t + { + int32_t octaves; + float x[atrous_none][BANDS]; + float y[atrous_none][BANDS]; + float mix; + } dt_iop_atrous_params_v2_t; + + if(old_version == 1) { typedef struct dt_iop_atrous_params_v1_t { @@ -164,26 +177,32 @@ float y[atrous_none][BANDS]; // $DEFAULT: 0.5 } dt_iop_atrous_params_v1_t; - dt_iop_atrous_params_v1_t *o = (dt_iop_atrous_params_v1_t *)old_params; - dt_iop_atrous_params_t *n = (dt_iop_atrous_params_t *)new_params; - dt_iop_atrous_params_t *d = (dt_iop_atrous_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + const dt_iop_atrous_params_v1_t *o = (dt_iop_atrous_params_v1_t *)old_params; + dt_iop_atrous_params_v2_t *n = + (dt_iop_atrous_params_v2_t *)malloc(sizeof(dt_iop_atrous_params_v2_t)); memcpy(n, o, sizeof(dt_iop_atrous_params_v1_t)); n->mix = 1.0f; + + *new_params = n; + *new_params_size = sizeof(dt_iop_atrous_params_v2_t); + *new_version = 2; return 0; } return 1; } -static int get_samples(float *t, const dt_iop_atrous_data_t *const d, const dt_iop_roi_t *roi_in, +static int get_samples(float *t, + const dt_iop_atrous_data_t *const d, + const dt_iop_roi_t *roi_in, const dt_dev_pixelpipe_iop_t *const piece) { const float scale = roi_in->scale; - const float supp0 - = MIN(2 * (2 << (MAX_NUM_SCALES - 1)) + 1, MAX(piece->buf_in.height, piece->buf_in.width) * 0.2f); + const float supp0 = + MIN(2 * (2 << (MAX_NUM_SCALES - 1)) + 1, + MAX(piece->buf_in.height, + piece->buf_in.width) * 0.2f); const float i0 = dt_log2f((supp0 - 1.0f) * .5f); int i = 0; for(; i < MAX_NUM_SCALES; i++) @@ -199,8 +218,12 @@ return i; } -static int get_scales(float (*thrs)[4], float (*boost)[4], float *sharp, const dt_iop_atrous_data_t *const d, - const dt_iop_roi_t *roi_in, const dt_dev_pixelpipe_iop_t *const piece) +static int get_scales(float (*thrs)[4], + float (*boost)[4], + float *sharp, const + dt_iop_atrous_data_t *const d, + const dt_iop_roi_t *roi_in, + const dt_dev_pixelpipe_iop_t *const piece) { // we want coeffs to span max 20% of the image // finest is 5x5 filter @@ -214,9 +237,10 @@ // cut off too fine ones, if image is not detailed enough (due to roi_in->scale) const float scale = roi_in->scale / piece->iscale; // largest desired filter on input buffer (20% of input dim) - const float supp0 - = MIN(2 * (2 << (MAX_NUM_SCALES - 1)) + 1, - MAX(piece->buf_in.height * piece->iscale, piece->buf_in.width * piece->iscale) * 0.2f); + const float supp0 = + MIN(2 * (2 << (MAX_NUM_SCALES - 1)) + 1, + MAX(piece->buf_in.height * piece->iscale, + piece->buf_in.width * piece->iscale) * 0.2f); const float i0 = dt_log2f((supp0 - 1.0f) * .5f); int i = 0; for(; i < MAX_NUM_SCALES; i++) @@ -242,13 +266,18 @@ } // ensure that return value max_scale is such that // 2 * 2 *(1 << max_scale) <= min(width, height) - const int max_scale_roi = (int)floorf(dt_log2f((float)MIN(roi_in->width, roi_in->height))) - 2; + const int max_scale_roi = + (int)floorf(dt_log2f((float)MIN(roi_in->width, roi_in->height))) - 2; return MIN(max_scale_roi, i); } -/* just process the supplied image buffer, upstream default_process_tiling() does the rest */ -static void process_wavelets(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, - const void *const i, void *const o, const dt_iop_roi_t *const roi_in, +/* just process the supplied image buffer, upstream + * default_process_tiling() does the rest */ +static void process_wavelets(struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + const void *const i, + void *const o, + const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) { dt_iop_atrous_data_t *d = (dt_iop_atrous_data_t *)piece->data; @@ -269,8 +298,8 @@ // dt_control_queue_draw(GTK_WIDGET(g->area)); } - // corner case of extremely small image. this is not really likely to happen but would - // lead to out of bounds memory access + // corner case of extremely small image. this is not really likely + // to happen but would lead to out of bounds memory access if(width < 2 * max_mult || height < 2 * max_mult) { dt_iop_image_copy_by_size(o, i, width, height, 4); @@ -283,7 +312,7 @@ if(!dt_iop_alloc_image_buffers(self, roi_in, roi_out, 4, &tmp, 4, &tmp2, 0)) { - dt_iop_copy_image_roi(out, i, piece->colors, roi_in, roi_out, TRUE); + dt_iop_copy_image_roi(out, i, piece->colors, roi_in, roi_out); return; } @@ -293,13 +322,17 @@ // clear the output buffer, which will be accumulating all of the detail scales dt_iop_image_fill(out, 0.0f, width, height, 4); - // now do the wavelet decomposition, immediately synthesizing the detail scale into the final output so - // that we don't need to store it past the current scale's iteration + // now do the wavelet decomposition, immediately synthesizing the + // detail scale into the final output so that we don't need to store + // it past the current scale's iteration for(int scale = 0; scale < max_scale; scale++) { eaw_decompose_and_synthesize(buf2, buf1, out, scale, sharp[scale], thrs[scale], boost[scale], width, height); - if(scale == 0) buf1 = (float *)tmp2; // now switch to second scratch for buffer ping-pong between buf1 and buf2 + if(scale == 0) buf1 = (float *)tmp2; // now switch to second + // scratch for buffer + // ping-pong between buf1 and + // buf2 float *buf3 = buf2; buf2 = buf1; buf1 = buf3; @@ -319,8 +352,12 @@ return; } -void process(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const void *const i, - void *const o, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) +void process(struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + const void *const i, + void *const o, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) { process_wavelets(self, piece, i, o, roi_in, roi_out); } @@ -328,7 +365,8 @@ #ifdef HAVE_OPENCL #ifdef USE_NEW_CL -/* this version is adapted to the new global tiling mechanism. it no longer does tiling by itself. */ +/* this version is adapted to the new global tiling mechanism. it no + * longer does tiling by itself. */ int process_cl(struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, cl_mem dev_in, cl_mem dev_out, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) { @@ -364,15 +402,19 @@ dev_filter = dt_opencl_copy_host_to_device_constant(devid, sizeof(float) * 25, mm); if(dev_filter == NULL) goto error; - /* allocate space for two temporary buffer to participate_in in the buffer ping-pong below. We need dev_out - to accumulate the result and dev_in needs to stay unchanged for blendops */ - dev_tmp = dt_opencl_alloc_device(devid, roi_out->width, roi_out->height, sizeof(float) * 4); + /* allocate space for two temporary buffer to participate_in in the + buffer ping-pong below. We need dev_out to accumulate the result + and dev_in needs to stay unchanged for blendops */ + dev_tmp = dt_opencl_alloc_device + (devid, roi_out->width, roi_out->height, sizeof(float) * 4); if(dev_tmp == NULL) goto error; - dev_tmp2 = dt_opencl_alloc_device(devid, roi_out->width, roi_out->height, sizeof(float) * 4); + dev_tmp2 = dt_opencl_alloc_device + (devid, roi_out->width, roi_out->height, sizeof(float) * 4); if(dev_tmp2 == NULL) goto error; /* allocate a buffer for storing the detail information. */ - dev_detail = dt_opencl_alloc_device(devid, roi_out->width, roi_out->height, sizeof(float) * 4); + dev_detail = dt_opencl_alloc_device + (devid, roi_out->width, roi_out->height, sizeof(float) * 4); if(dev_detail == NULL) goto error; const int width = roi_out->width; @@ -384,19 +426,23 @@ err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_zero, sizes); if(err != CL_SUCCESS) goto error; - // the buffers for the buffer ping-pong. We start with dev_in as the input half for the first - // scale, then switch to using dev_tmp and dev_tmp2 as the two scratch buffers + // the buffers for the buffer ping-pong. We start with dev_in as + // the input half for the first scale, then switch to using dev_tmp + // and dev_tmp2 as the two scratch buffers void* dev_buf1 = &dev_in; void* dev_buf2 = &dev_tmp; - /* decompose image into detail scales and coarse (the latter is left in dev_tmp or dev_out) */ + /* decompose image into detail scales and coarse (the latter is left + * in dev_tmp or dev_out) */ for(int s = 0; s < max_scale; s++) { const int scale = s; // run the decomposition - dt_opencl_set_kernel_args(devid, gd->kernel_decompose, 0, CLARG(dev_buf2), CLARG(dev_buf1), CLARG(dev_detail), - CLARG(width), CLARG(height), CLARG(scale), CLARG(sharp[s]), CLARG(dev_filter)); + dt_opencl_set_kernel_args(devid, gd->kernel_decompose, 0, + CLARG(dev_buf2), CLARG(dev_buf1), CLARG(dev_detail), + CLARG(width), CLARG(height), + CLARG(scale), CLARG(sharp[s]), CLARG(dev_filter)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_decompose, sizes); if(err != CL_SUCCESS) goto error; @@ -405,10 +451,13 @@ dt_iop_nap(darktable.opencl->micro_nap); // now immediately run the synthesis for the current scale, accumulating the details into dev_out - dt_opencl_set_kernel_args(devid, gd->kernel_synthesize, 0, CLARG(dev_out), CLARG(dev_out), CLARG(dev_detail), - CLARG(width), CLARG(height), CLARG(thrs[scale][0]), CLARG(thrs[scale][1]), CLARG(thrs[scale][2]), - CLARG(thrs[scale][3]), CLARG(boost[scale][0]), CLARG(boost[scale][1]), CLARG(boost[scale][2]), - CLARG(boost[scale][3])); + dt_opencl_set_kernel_args(devid, gd->kernel_synthesize, 0, + CLARG(dev_out), CLARG(dev_out), CLARG(dev_detail), + CLARG(width), CLARG(height), + CLARG(thrs[scale][0]), CLARG(thrs[scale][1]), + CLARG(thrs[scale][2]), CLARG(thrs[scale][3]), + CLARG(boost[scale][0]), CLARG(boost[scale][1]), + CLARG(boost[scale][2]), CLARG(boost[scale][3])); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_synthesize, sizes); if(err != CL_SUCCESS) goto error; @@ -423,34 +472,29 @@ dev_buf1 = tmp; } - // add the residue (the coarse scale from the final decomposition) to the accumulated details - dt_opencl_set_kernel_args(devid, gd->kernel_addbuffers, 0, CLARG(dev_out), CLARG(dev_buf1)); + // add the residue (the coarse scale from the final decomposition) + // to the accumulated details + dt_opencl_set_kernel_args + (devid, gd->kernel_addbuffers, 0, CLARG(dev_out), CLARG(dev_buf1)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_addbuffers, sizes); - if(err != CL_SUCCESS) goto error; - - dt_opencl_finish_sync_pipe(devid, piece->pipe->type); - - dt_opencl_release_mem_object(dev_filter); - dt_opencl_release_mem_object(dev_tmp); - dt_opencl_release_mem_object(dev_tmp2); - dt_opencl_release_mem_object(dev_detail); - return TRUE; error: dt_opencl_release_mem_object(dev_filter); dt_opencl_release_mem_object(dev_tmp); dt_opencl_release_mem_object(dev_tmp2); dt_opencl_release_mem_object(dev_detail); - dt_print(DT_DEBUG_OPENCL, "[opencl_atrous] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #else // ======== old, memory-hungry implementation ======================================================== /* this version is adapted to the new global tiling mechanism. it no longer does tiling by itself. */ -int process_cl(struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, cl_mem dev_in, cl_mem dev_out, - const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) +int process_cl(struct dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + cl_mem dev_in, cl_mem dev_out, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) { dt_iop_atrous_data_t *d = (dt_iop_atrous_data_t *)piece->data; dt_aligned_pixel_t thrs[MAX_NUM_SCALES]; @@ -484,16 +528,19 @@ dev_filter = dt_opencl_copy_host_to_device_constant(devid, sizeof(float) * 25, mm); if(dev_filter == NULL) goto error; - /* allocate space for a temporary buffer. we don't want to use dev_in in the buffer ping-pong below, as we - need to keep it for blendops */ - dev_tmp = dt_opencl_alloc_device(devid, roi_out->width, roi_out->height, sizeof(float) * 4); + /* allocate space for a temporary buffer. we don't want to use + dev_in in the buffer ping-pong below, as we need to keep it for + blendops */ + dev_tmp = dt_opencl_alloc_device + (devid, roi_out->width, roi_out->height, sizeof(float) * 4); if(dev_tmp == NULL) goto error; - /* allocate space to store detail information. Requires a number of additional buffers, each with full image - * size */ + /* allocate space to store detail information. Requires a number of + * additional buffers, each with full image size */ for(int k = 0; k < max_scale; k++) { - dev_detail[k] = dt_opencl_alloc_device(devid, roi_out->width, roi_out->height, sizeof(float) * 4); + dev_detail[k] = dt_opencl_alloc_device + (devid, roi_out->width, roi_out->height, sizeof(float) * 4); if(dev_detail[k] == NULL) goto error; } @@ -507,21 +554,25 @@ err = dt_opencl_enqueue_copy_image(devid, dev_in, dev_out, origin, origin, region); if(err != CL_SUCCESS) goto error; - /* decompose image into detail scales and coarse (the latter is left in dev_tmp or dev_out) */ + /* decompose image into detail scales and coarse (the latter is left + * in dev_tmp or dev_out) */ for(int s = 0; s < max_scale; s++) { const int scale = s; if(s & 1) { - dt_opencl_set_kernel_args(devid, gd->kernel_decompose, 0, CLARG(dev_tmp), CLARG(dev_out)); + dt_opencl_set_kernel_args(devid, gd->kernel_decompose, 0, + CLARG(dev_tmp), CLARG(dev_out)); } else { - dt_opencl_set_kernel_args(devid, gd->kernel_decompose, 0, CLARG(dev_out), CLARG(dev_tmp)); + dt_opencl_set_kernel_args(devid, gd->kernel_decompose, 0, + CLARG(dev_out), CLARG(dev_tmp)); } - dt_opencl_set_kernel_args(devid, gd->kernel_decompose, 2, CLARG(dev_detail[s]), CLARG(width), CLARG(height), - CLARG(scale), CLARG(sharp[s]), CLARG(dev_filter)); + dt_opencl_set_kernel_args(devid, gd->kernel_decompose, 2, + CLARG(dev_detail[s]), CLARG(width), CLARG(height), + CLARG(scale), CLARG(sharp[s]), CLARG(dev_filter)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_decompose, sizes); if(err != CL_SUCCESS) goto error; @@ -535,16 +586,22 @@ { if(scale & 1) { - dt_opencl_set_kernel_args(devid, gd->kernel_synthesize, 0, CLARG(dev_tmp), CLARG(dev_out)); + dt_opencl_set_kernel_args(devid, gd->kernel_synthesize, 0, + CLARG(dev_tmp), CLARG(dev_out)); } else { - dt_opencl_set_kernel_args(devid, gd->kernel_synthesize, 0, CLARG(dev_out), CLARG(dev_tmp)); + dt_opencl_set_kernel_args(devid, gd->kernel_synthesize, 0, + CLARG(dev_out), CLARG(dev_tmp)); } - dt_opencl_set_kernel_args(devid, gd->kernel_synthesize, 2, CLARG(dev_detail[scale]), CLARG(width), - CLARG(height), CLARG(thrs[scale][0]), CLARG(thrs[scale][1]), CLARG(thrs[scale][2]), CLARG(thrs[scale][3]), - CLARG(boost[scale][0]), CLARG(boost[scale][1]), CLARG(boost[scale][2]), CLARG(boost[scale][3])); + dt_opencl_set_kernel_args(devid, gd->kernel_synthesize, 2, + CLARG(dev_detail[scale]), CLARG(width), + CLARG(height), CLARG(thrs[scale][0]), + CLARG(thrs[scale][1]), CLARG(thrs[scale][2]), + CLARG(thrs[scale][3]), CLARG(boost[scale][0]), + CLARG(boost[scale][1]), CLARG(boost[scale][2]), + CLARG(boost[scale][3])); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_synthesize, sizes); if(err != CL_SUCCESS) goto error; @@ -555,28 +612,22 @@ dt_opencl_finish_sync_pipe(devid, piece->pipe->type); - dt_opencl_release_mem_object(dev_filter); - dt_opencl_release_mem_object(dev_tmp); - for(int k = 0; k < max_scale; k++) - dt_opencl_release_mem_object(dev_detail[k]); - free(dev_detail); - return TRUE; - error: dt_opencl_release_mem_object(dev_filter); dt_opencl_release_mem_object(dev_tmp); for(int k = 0; k < max_scale; k++) dt_opencl_release_mem_object(dev_detail[k]); free(dev_detail); - dt_print(DT_DEBUG_OPENCL, "[opencl_atrous] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif // USE_NEW_CL #endif // HAVE_OPENCL -void tiling_callback(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, - const dt_iop_roi_t *roi_in, const dt_iop_roi_t *roi_out, +void tiling_callback(struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + const dt_iop_roi_t *roi_in, + const dt_iop_roi_t *roi_out, struct dt_develop_tiling_t *tiling) { dt_iop_atrous_data_t *d = (dt_iop_atrous_data_t *)piece->data; @@ -639,16 +690,22 @@ } static inline void _apply_mix(dt_iop_module_t *self, - const int ch, const int k, + const int ch + , const int k, const float mix, - const float px, const float py, float *x, float *y) + const float px, + const float py, + float *x, + float *y) { - dt_iop_atrous_params_t *dp = (dt_iop_atrous_params_t *)self->default_params; + const dt_iop_atrous_params_t *const dp = (dt_iop_atrous_params_t *)self->default_params; *x = fminf(1.0f, fmaxf(0.0f, px + (mix - 1.0f) * (px - dp->x[ch][k]))); *y = fminf(1.0f, fmaxf(0.0f, py + (mix - 1.0f) * (py - dp->y[ch][k]))); } -void commit_params(struct dt_iop_module_t *self, dt_iop_params_t *params, dt_dev_pixelpipe_t *pipe, +void commit_params(struct dt_iop_module_t *self, + dt_iop_params_t *params, + dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) { dt_iop_atrous_params_t *p = (dt_iop_atrous_params_t *)params; @@ -673,27 +730,42 @@ dt_draw_curve_set_point(d->curve[ch], k, x, y); } int l = 0; - for(int k = (int)MIN(pipe->iwidth * pipe->iscale, pipe->iheight * pipe->iscale); k; k >>= 1) l++; + for(int k = (int)MIN(pipe->iwidth * pipe->iscale, pipe->iheight * pipe->iscale); + k; + k >>= 1) + l++; + d->octaves = MIN(BANDS, l); } -void init_pipe(struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) -{ - dt_iop_atrous_data_t *d = (dt_iop_atrous_data_t *)malloc(sizeof(dt_iop_atrous_data_t)); - dt_iop_atrous_params_t *default_params = (dt_iop_atrous_params_t *)self->default_params; +void init_pipe(struct dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) +{ + dt_iop_atrous_data_t *d = + (dt_iop_atrous_data_t *)malloc(sizeof(dt_iop_atrous_data_t)); + const dt_iop_atrous_params_t *const default_params = + (dt_iop_atrous_params_t *)self->default_params; piece->data = (void *)d; for(int ch = 0; ch < atrous_none; ch++) { d->curve[ch] = dt_draw_curve_new(0.0, 1.0, CATMULL_ROM); for(int k = 0; k < BANDS; k++) - (void)dt_draw_curve_add_point(d->curve[ch], default_params->x[ch][k], default_params->y[ch][k]); + (void)dt_draw_curve_add_point(d->curve[ch], + default_params->x[ch][k], default_params->y[ch][k]); } int l = 0; - for(int k = (int)MIN(pipe->iwidth * pipe->iscale, pipe->iheight * pipe->iscale); k; k >>= 1) l++; + for(int k = (int)MIN(pipe->iwidth * pipe->iscale, pipe->iheight * pipe->iscale); + k; + k >>= 1) + l++; + d->octaves = MIN(BANDS, l); } -void cleanup_pipe(struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +void cleanup_pipe(struct dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { dt_iop_atrous_data_t *d = (dt_iop_atrous_data_t *)(piece->data); for(int ch = 0; ch < atrous_none; ch++) @@ -725,7 +797,8 @@ p.y[atrous_ct][k] = 0.0f; } dt_gui_presets_add_generic(C_("eq_preset", "coarse"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), 1, + DEVELOP_BLEND_CS_RGB_DISPLAY); for(int k = 0; k < BANDS; k++) { p.x[atrous_L][k] = k / (BANDS - 1.0); @@ -740,7 +813,8 @@ p.y[atrous_ct][k] = .3f * k / (float)BANDS; } dt_gui_presets_add_generic(_("denoise & sharpen"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), 1, + DEVELOP_BLEND_CS_RGB_DISPLAY); for(int k = 0; k < BANDS; k++) { p.x[atrous_L][k] = k / (BANDS - 1.0); @@ -755,7 +829,8 @@ p.y[atrous_ct][k] = 0.0f; } dt_gui_presets_add_generic(C_("atrous", "sharpen"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), 1, + DEVELOP_BLEND_CS_RGB_DISPLAY); for(int k = 0; k < BANDS; k++) { p.x[atrous_L][k] = k / (BANDS - 1.0); @@ -770,7 +845,8 @@ p.y[atrous_ct][k] = fmaxf(0.0f, (.60f * k / (float)BANDS) - 0.30f); } dt_gui_presets_add_generic(_("denoise chroma"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), 1, + DEVELOP_BLEND_CS_RGB_DISPLAY); for(int k = 0; k < BANDS; k++) { p.x[atrous_L][k] = k / (BANDS - 1.0); @@ -785,7 +861,8 @@ p.y[atrous_ct][k] = .3f * k / (float)BANDS; } dt_gui_presets_add_generic(_("denoise"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), 1, + DEVELOP_BLEND_CS_RGB_DISPLAY); for(int k = 0; k < BANDS; k++) { p.x[atrous_L][k] = k / (BANDS - 1.0); @@ -801,7 +878,8 @@ } p.y[atrous_L][0] = .5f; dt_gui_presets_add_generic(_("bloom"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), 1, + DEVELOP_BLEND_CS_RGB_DISPLAY); for(int k = 0; k < BANDS; k++) { p.x[atrous_L][k] = k / (BANDS - 1.0); @@ -816,7 +894,8 @@ p.y[atrous_ct][k] = 0.0f; } dt_gui_presets_add_generic(_("clarity"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), 1, + DEVELOP_BLEND_CS_RGB_DISPLAY); float sigma = 3.f / (float)(BANDS - 1); @@ -836,7 +915,8 @@ p.y[atrous_Lt][k] = p.y[atrous_ct][k] = noise; } dt_gui_presets_add_generic(_("deblur: large blur, strength 3"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), 1, + DEVELOP_BLEND_CS_RGB_DISPLAY); for(int k = 0; k < BANDS; k++) { @@ -853,7 +933,8 @@ p.y[atrous_Lt][k] = p.y[atrous_ct][k] = noise; } dt_gui_presets_add_generic(_("deblur: medium blur, strength 3"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), 1, + DEVELOP_BLEND_CS_RGB_DISPLAY); for(int k = 0; k < BANDS; k++) { @@ -869,7 +950,8 @@ p.y[atrous_Lt][k] = p.y[atrous_ct][k] = noise; } dt_gui_presets_add_generic(_("deblur: fine blur, strength 3"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), 1, + DEVELOP_BLEND_CS_RGB_DISPLAY); for(int k = 0; k < BANDS; k++) { @@ -887,7 +969,8 @@ p.y[atrous_Lt][k] = p.y[atrous_ct][k] = noise; } dt_gui_presets_add_generic(_("deblur: large blur, strength 2"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), 1, + DEVELOP_BLEND_CS_RGB_DISPLAY); for(int k = 0; k < BANDS; k++) { @@ -904,7 +987,8 @@ p.y[atrous_Lt][k] = p.y[atrous_ct][k] = noise; } dt_gui_presets_add_generic(_("deblur: medium blur, strength 2"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), 1, + DEVELOP_BLEND_CS_RGB_DISPLAY); for(int k = 0; k < BANDS; k++) { @@ -920,7 +1004,8 @@ p.y[atrous_Lt][k] = p.y[atrous_ct][k] = noise; } dt_gui_presets_add_generic(_("deblur: fine blur, strength 2"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), 1, + DEVELOP_BLEND_CS_RGB_DISPLAY); for(int k = 0; k < BANDS; k++) { @@ -938,7 +1023,8 @@ p.y[atrous_Lt][k] = p.y[atrous_ct][k] = noise; } dt_gui_presets_add_generic(_("deblur: large blur, strength 1"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), 1, + DEVELOP_BLEND_CS_RGB_DISPLAY); for(int k = 0; k < BANDS; k++) { @@ -955,7 +1041,8 @@ p.y[atrous_Lt][k] = p.y[atrous_ct][k] = noise; } dt_gui_presets_add_generic(_("deblur: medium blur, strength 1"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), 1, + DEVELOP_BLEND_CS_RGB_DISPLAY); for(int k = 0; k < BANDS; k++) { @@ -971,7 +1058,8 @@ p.y[atrous_Lt][k] = p.y[atrous_ct][k] = noise; } dt_gui_presets_add_generic(_("deblur: fine blur, strength 1"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), 1, + DEVELOP_BLEND_CS_RGB_DISPLAY); dt_database_release_transaction(darktable.db); } @@ -995,7 +1083,9 @@ // gui stuff: -static gboolean area_enter_leave_notify(GtkWidget *widget, GdkEventCrossing *event, dt_iop_module_t *self) +static gboolean area_enter_leave_notify(GtkWidget *widget, + GdkEventCrossing *event, + dt_iop_module_t *self) { dt_iop_atrous_gui_data_t *c = (dt_iop_atrous_gui_data_t *)self->gui_data; c->in_curve = event->type == GDK_ENTER_NOTIFY; @@ -1007,7 +1097,10 @@ } // fills in new parameters based on mouse position (in 0,1) -static void get_params(dt_iop_atrous_params_t *p, const int ch, const double mouse_x, const double mouse_y, +static void get_params(dt_iop_atrous_params_t *p, + const int ch, + const double mouse_x, + const double mouse_y, const float rad) { for(int k = 0; k < BANDS; k++) @@ -1017,7 +1110,9 @@ } } -static gboolean area_draw(GtkWidget *widget, cairo_t *crf, gpointer user_data) +static gboolean area_draw(GtkWidget *widget, + cairo_t *crf, + gpointer user_data) { dt_iop_module_t *self = (dt_iop_module_t *)user_data; dt_iop_atrous_gui_data_t *c = (dt_iop_atrous_gui_data_t *)self->gui_data; @@ -1036,13 +1131,15 @@ const int inset = INSET; GtkAllocation allocation; gtk_widget_get_allocation(widget, &allocation); - int width = allocation.width, height = allocation.height; + int width = allocation.width; + int height = allocation.height - DT_RESIZE_HANDLE_SIZE; cairo_surface_t *cst = dt_cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height); cairo_t *cr = cairo_create(cst); // clear bg, match color of the notebook tabs: - GdkRGBA bright_bg_color, really_dark_bg_color; + GdkRGBA bright_bg_color, graph_bg; GtkStyleContext *context = gtk_widget_get_style_context(self->expander); - gboolean color_found = gtk_style_context_lookup_color (context, "selected_bg_color", &bright_bg_color); + gboolean color_found = gtk_style_context_lookup_color + (context, "graph_overlay", &bright_bg_color); if(!color_found) { bright_bg_color.red = 1.0; @@ -1050,14 +1147,14 @@ bright_bg_color.blue = 0.0; bright_bg_color.alpha = 1.0; } - - color_found = gtk_style_context_lookup_color (context, "really_dark_bg_color", &really_dark_bg_color); + color_found = gtk_style_context_lookup_color + (context, "graph_bg", &graph_bg); if(!color_found) { - really_dark_bg_color.red = 1.0; - really_dark_bg_color.green = 0.0; - really_dark_bg_color.blue = 0.0; - really_dark_bg_color.alpha = 1.0; + graph_bg.red = 1.0; + graph_bg.green = 0.0; + graph_bg.blue = 0.0; + graph_bg.alpha = 1.0; } gdk_cairo_set_source_rgba(cr, &bright_bg_color); @@ -1068,7 +1165,7 @@ height -= 2 * inset; cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(1.0)); - gdk_cairo_set_source_rgba(cr, &really_dark_bg_color); + gdk_cairo_set_source_rgba(cr, &graph_bg); cairo_rectangle(cr, 0, 0, width, height); cairo_stroke(cr); @@ -1084,18 +1181,20 @@ get_params(&p, ch2, c->mouse_x, 1., c->mouse_radius); for(int k = 0; k < BANDS; k++) dt_draw_curve_set_point(c->minmax_curve, k, p.x[ch2][k], p.y[ch2][k]); - dt_draw_curve_calc_values(c->minmax_curve, 0.0, 1.0, RES, c->draw_min_xs, c->draw_min_ys); + dt_draw_curve_calc_values(c->minmax_curve, 0.0, 1.0, RES, + c->draw_min_xs, c->draw_min_ys); p = *(dt_iop_atrous_params_t *)self->params; get_params(&p, ch2, c->mouse_x, .0, c->mouse_radius); for(int k = 0; k < BANDS; k++) dt_draw_curve_set_point(c->minmax_curve, k, p.x[ch2][k], p.y[ch2][k]); - dt_draw_curve_calc_values(c->minmax_curve, 0.0, 1.0, RES, c->draw_max_xs, c->draw_max_ys); + dt_draw_curve_calc_values(c->minmax_curve, 0.0, 1.0, RES, + c->draw_max_xs, c->draw_max_ys); } // draw grid cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(.4)); - gdk_cairo_set_source_rgba(cr, &really_dark_bg_color); + gdk_cairo_set_source_rgba(cr, &graph_bg); dt_draw_grid(cr, 8, 0, 0, width, height); cairo_save(cr); @@ -1111,7 +1210,7 @@ cairo_save(cr); for(int k = 1; k < c->num_samples; k += 2) { - cairo_set_source_rgba(cr, really_dark_bg_color.red, really_dark_bg_color.green, really_dark_bg_color.blue, .3); + cairo_set_source_rgba(cr, graph_bg.red, graph_bg.green, graph_bg.blue, .3); cairo_move_to(cr, width * c->sample[k - 1], 0.0f); cairo_line_to(cr, width * c->sample[k - 1], -height); cairo_line_to(cr, width * c->sample[k], -height); @@ -1131,8 +1230,9 @@ if(c->band_max > 0) { cairo_save(cr); - cairo_scale(cr, width / (BANDS - 1.0), -(height - DT_PIXEL_APPLY_DPI(5)) / c->band_max); - cairo_set_source_rgba(cr, really_dark_bg_color.red, really_dark_bg_color.green, really_dark_bg_color.blue, .3); + cairo_scale(cr, width / (BANDS - 1.0), + -(height - DT_PIXEL_APPLY_DPI(5)) / c->band_max); + cairo_set_source_rgba(cr, graph_bg.red, graph_bg.green, graph_bg.blue, .3); cairo_move_to(cr, 0, 0); for(int k = 0; k < BANDS; k++) cairo_line_to(cr, k, c->band_hist[k]); cairo_line_to(cr, BANDS - 1.0, 0.); @@ -1167,7 +1267,8 @@ } p = *(dt_iop_atrous_params_t *)self->params; - // reverse order if bottom is active (to end up with correct values in minmax_curve): + // reverse order if bottom is active (to end up with correct + // values in minmax_curve): if(c->channel2 == ch2) { ch2 = ch; @@ -1278,13 +1379,13 @@ // draw labels: PangoLayout *layout; PangoRectangle ink; - PangoFontDescription *desc = pango_font_description_copy_static(darktable.bauhaus->pango_font_desc); + PangoFontDescription *desc = + pango_font_description_copy_static(darktable.bauhaus->pango_font_desc); pango_font_description_set_weight(desc, PANGO_WEIGHT_BOLD); pango_font_description_set_absolute_size(desc, (.06 * height) * PANGO_SCALE); layout = pango_cairo_create_layout(cr); pango_layout_set_font_description(layout, desc); - gdk_cairo_set_source_rgba(cr, &really_dark_bg_color); - //cairo_select_font_face(cr, "Roboto", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD); + gdk_cairo_set_source_rgba(cr, &graph_bg); cairo_set_font_size(cr, .06 * height); pango_layout_set_text(layout, _("coarse"), -1); pango_layout_get_pixel_extents(layout, &ink, NULL); @@ -1327,10 +1428,12 @@ cairo_set_source_surface(crf, cst, 0, 0); cairo_paint(crf); cairo_surface_destroy(cst); - return TRUE; + return FALSE; } -static gboolean area_motion_notify(GtkWidget *widget, GdkEventMotion *event, gpointer user_data) +static gboolean area_motion_notify(GtkWidget *widget, + GdkEventMotion *event, + gpointer user_data) { dt_iop_module_t *self = (dt_iop_module_t *)user_data; dt_iop_atrous_gui_data_t *c = (dt_iop_atrous_gui_data_t *)self->gui_data; @@ -1338,7 +1441,7 @@ const int inset = INSET; GtkAllocation allocation; gtk_widget_get_allocation(widget, &allocation); - const int height = allocation.height - 2 * inset; + const int height = allocation.height - 2 * inset - DT_RESIZE_HANDLE_SIZE; const int width = allocation.width - 2 * inset; if(!c->dragging) c->mouse_x = CLAMP(event->x - inset, 0, width) / (float)width; c->mouse_y = 1.0 - CLAMP(event->y - inset, 0, height) / (float)height; @@ -1412,14 +1515,16 @@ return TRUE; } -static gboolean area_button_press(GtkWidget *widget, GdkEventButton *event, gpointer user_data) +static gboolean area_button_press(GtkWidget *widget, + GdkEventButton *event, + gpointer user_data) { dt_iop_module_t *self = (dt_iop_module_t *)user_data; if(event->button == 1 && event->type == GDK_2BUTTON_PRESS) { // reset current curve dt_iop_atrous_params_t *p = (dt_iop_atrous_params_t *)self->params; - dt_iop_atrous_params_t *d = (dt_iop_atrous_params_t *)self->default_params; + const dt_iop_atrous_params_t *const d = (dt_iop_atrous_params_t *)self->default_params; dt_iop_atrous_gui_data_t *c = (dt_iop_atrous_gui_data_t *)self->gui_data; reset_mix(self); for(int k = 0; k < BANDS; k++) @@ -1438,10 +1543,11 @@ const int inset = INSET; GtkAllocation allocation; gtk_widget_get_allocation(widget, &allocation); - const int height = allocation.height - 2 * inset; + const int height = allocation.height - 2 * inset - DT_RESIZE_HANDLE_SIZE; const int width = allocation.width - 2 * inset; c->mouse_pick - = dt_draw_curve_calc_value(c->minmax_curve, CLAMP(event->x - inset, 0, width) / (float)width); + = dt_draw_curve_calc_value(c->minmax_curve, + CLAMP(event->x - inset, 0, width) / (float)width); c->mouse_pick -= 1.0 - CLAMP(event->y - inset, 0, height) / (float)height; c->dragging = 1; return TRUE; @@ -1449,7 +1555,9 @@ return FALSE; } -static gboolean area_button_release(GtkWidget *widget, GdkEventButton *event, gpointer user_data) +static gboolean area_button_release(GtkWidget *widget, + GdkEventButton *event, + gpointer user_data) { if(event->button == 1) { @@ -1462,7 +1570,9 @@ return FALSE; } -static gboolean area_scrolled(GtkWidget *widget, GdkEventScroll *event, gpointer user_data) +static gboolean area_scrolled(GtkWidget *widget, + GdkEventScroll *event, + gpointer user_data) { dt_iop_module_t *self = (dt_iop_module_t *)user_data; dt_iop_atrous_gui_data_t *c = (dt_iop_atrous_gui_data_t *)self->gui_data; @@ -1470,7 +1580,7 @@ if(dt_gui_ignore_scroll(event)) return FALSE; int delta_y; - if(dt_gui_get_scroll_unit_deltas(event, NULL, &delta_y)) + if(dt_gui_get_scroll_unit_delta(event, &delta_y)) { c->mouse_radius = CLAMP(c->mouse_radius * (1.0 + 0.1 * delta_y), 0.25 / BANDS, 1.0); gtk_widget_queue_draw(widget); @@ -1478,7 +1588,10 @@ return TRUE; } -static void tab_switch(GtkNotebook *notebook, GtkWidget *page, guint page_num, gpointer user_data) +static void tab_switch(GtkNotebook *notebook, + GtkWidget *page, + const guint page_num, + gpointer user_data) { dt_iop_module_t *self = (dt_iop_module_t *)user_data; dt_iop_atrous_gui_data_t *c = (dt_iop_atrous_gui_data_t *)self->gui_data; @@ -1487,7 +1600,8 @@ gtk_widget_queue_draw(self->widget); } -static void mix_callback(GtkWidget *slider, gpointer user_data) +static void mix_callback(GtkWidget *slider, + gpointer user_data) { dt_iop_module_t *self = (dt_iop_module_t *)user_data; if(darktable.gui->reset) return; @@ -1528,12 +1642,15 @@ { N_("finest" ), dt_action_effect_equalizer }, { } }; -static float _action_process_equalizer(gpointer target, dt_action_element_t element, dt_action_effect_t effect, float move_size) +static float _action_process_equalizer(gpointer target, + const dt_action_element_t element, + const dt_action_effect_t effect, + float move_size) { dt_iop_module_t *self = g_object_get_data(G_OBJECT(target), "iop-instance"); dt_iop_atrous_gui_data_t *c = (dt_iop_atrous_gui_data_t *)self->gui_data; dt_iop_atrous_params_t *p = (dt_iop_atrous_params_t *)self->params; - dt_iop_atrous_params_t *d = (dt_iop_atrous_params_t *)self->default_params; + const dt_iop_atrous_params_t *const d = (dt_iop_atrous_params_t *)self->default_params; const int node = element - 1; const int ch1 = c->channel; @@ -1553,23 +1670,30 @@ p->y[ch1][node] = d->y[ch1][node]; p->y[ch2][node] = d->y[ch2][node]; - toast = g_strdup_printf("%s, %s", _action_elements_equalizer[element].name, "reset"); + toast = g_strdup_printf("%s, %s", + _action_elements_equalizer[element].name, "reset"); break; case DT_ACTION_EFFECT_REDUCE: move_size *= -1; case DT_ACTION_EFFECT_BOOST: - get_params(p, ch1, p->x[ch1][node], p->y[ch1][node] + move_size / 100, c->mouse_radius); + get_params(p, ch1, p->x[ch1][node], + p->y[ch1][node] + move_size / 100, c->mouse_radius); - toast = g_strdup_printf("%s, %s %+.2f", _action_elements_equalizer[element].name, - ch1 == atrous_s ? _("sharpness") : _("boost"), p->y[ch1][node] * 2. - 1.); + toast = g_strdup_printf + ("%s, %s %+.2f", + _action_elements_equalizer[element].name, + ch1 == atrous_s ? _("sharpness") : _("boost"), p->y[ch1][node] * 2. - 1.); break; case DT_ACTION_EFFECT_LOWER: move_size *= -1; case DT_ACTION_EFFECT_RAISE: - get_params(p, ch2, p->x[ch2][node], p->y[ch2][node] + move_size / 100, c->mouse_radius); + get_params(p, ch2, p->x[ch2][node], + p->y[ch2][node] + move_size / 100, c->mouse_radius); - toast = g_strdup_printf("%s, %s %.2f", _action_elements_equalizer[element].name, - _("threshold"), p->y[ch2][node]); + toast = g_strdup_printf("%s, %s %.2f", + _action_elements_equalizer[element].name, + _("threshold"), + p->y[ch2][node]); break; case DT_ACTION_EFFECT_LEFT: move_size *= -1; @@ -1586,7 +1710,10 @@ _("x"), p->x[ch1][node]); break; default: - dt_print(DT_DEBUG_ALWAYS, "[_action_process_equalizer] unknown shortcut effect (%d) for contrast equalizer node\n", effect); + dt_print(DT_DEBUG_ALWAYS, + "[_action_process_equalizer] unknown shortcut effect (%d)" + " for contrast equalizer node\n", + effect); break; } @@ -1607,14 +1734,18 @@ case DT_ACTION_EFFECT_DOWN: move_size *= -1; case DT_ACTION_EFFECT_UP: - c->mouse_radius = CLAMP(c->mouse_radius * (1.0 + 0.1 * move_size), 0.25 / BANDS, 1.0); + c->mouse_radius = CLAMP(c->mouse_radius * (1.0 + 0.1 * move_size), + 0.25 / BANDS, 1.0); break; default: - dt_print(DT_DEBUG_ALWAYS, "[_action_process_equalizer] unknown shortcut effect (%d) for contrast equalizer radius\n", effect); + dt_print(DT_DEBUG_ALWAYS, + "[_action_process_equalizer] unknown shortcut effect (%d)" + " for contrast equalizer radius\n", effect); break; } - toast = g_strdup_printf("%s %+.2f", _action_elements_equalizer[element].name, c->mouse_radius); + toast = g_strdup_printf("%s %+.2f", + _action_elements_equalizer[element].name, c->mouse_radius); } dt_action_widget_toast(DT_ACTION(self), target, toast); g_free(toast); @@ -1622,11 +1753,12 @@ gtk_widget_queue_draw(self->widget); } - return element ? effect >= DT_ACTION_EFFECT_RIGHT ? p->x[ch1][node] : - effect >= DT_ACTION_EFFECT_RAISE ? p->y[ch2][node] + DT_VALUE_PATTERN_PERCENTAGE : - effect >= DT_ACTION_EFFECT_BOOST ? p->y[ch1][node] + DT_VALUE_PATTERN_PLUS_MINUS : - p->y[ch1][node] != d->y[ch1][node] || p->y[ch2][node] != d->y[ch2][node] - : c->mouse_radius + DT_VALUE_PATTERN_PERCENTAGE; + return element + ? effect >= DT_ACTION_EFFECT_RIGHT ? p->x[ch1][node] + : effect >= DT_ACTION_EFFECT_RAISE ? p->y[ch2][node] + DT_VALUE_PATTERN_PERCENTAGE + : effect >= DT_ACTION_EFFECT_BOOST ? p->y[ch1][node] + DT_VALUE_PATTERN_PLUS_MINUS + : p->y[ch1][node] != d->y[ch1][node] || p->y[ch2][node] != d->y[ch2][node] + : c->mouse_radius + DT_VALUE_PATTERN_PERCENTAGE; } static const dt_shortcut_fallback_t _action_fallbacks_equalizer[] @@ -1643,7 +1775,7 @@ void gui_init(struct dt_iop_module_t *self) { dt_iop_atrous_gui_data_t *c = IOP_GUI_ALLOC(atrous); - dt_iop_atrous_params_t *p = (dt_iop_atrous_params_t *)self->default_params; + const dt_iop_atrous_params_t *const p = (dt_iop_atrous_params_t *)self->default_params; c->num_samples = 0; c->band_max = 0; @@ -1662,28 +1794,42 @@ static struct dt_action_def_t notebook_def = { }; c->channel_tabs = dt_ui_notebook_new(¬ebook_def); - dt_action_define_iop(self, NULL, N_("channel"), GTK_WIDGET(c->channel_tabs), ¬ebook_def); - dt_ui_notebook_page(c->channel_tabs, N_("luma"), _("change lightness at each feature size")); - dt_ui_notebook_page(c->channel_tabs, N_("chroma"), _("change color saturation at each feature size")); - dt_ui_notebook_page(c->channel_tabs, N_("edges"), _("change edge halos at each feature size\nonly changes results of luma and chroma tabs")); + dt_action_define_iop(self, NULL, N_("channel"), + GTK_WIDGET(c->channel_tabs), ¬ebook_def); + dt_ui_notebook_page(c->channel_tabs, N_("luma"), + _("change lightness at each feature size")); + dt_ui_notebook_page(c->channel_tabs, N_("chroma"), + _("change color saturation at each feature size")); + dt_ui_notebook_page + (c->channel_tabs, N_("edges"), + _("change edge halos at each feature size\nonly changes results of luma" + " and chroma tabs")); gtk_widget_show(gtk_notebook_get_nth_page(c->channel_tabs, c->channel)); gtk_notebook_set_current_page(c->channel_tabs, c->channel); g_signal_connect(G_OBJECT(c->channel_tabs), "switch_page", G_CALLBACK(tab_switch), self); gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(c->channel_tabs), FALSE, FALSE, 0); // graph - c->area = GTK_DRAWING_AREA(dt_ui_resize_wrap(NULL, 0, "plugins/darkroom/atrous/aspect_percent")); + c->area = GTK_DRAWING_AREA(dt_ui_resize_wrap + (NULL, 0, "plugins/darkroom/atrous/aspect_percent")); gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(c->area), TRUE, TRUE, 0); g_object_set_data(G_OBJECT(c->area), "iop-instance", self); - dt_action_define_iop(self, NULL, N_("graph"), GTK_WIDGET(c->area), &_action_def_equalizer); + dt_action_define_iop(self, NULL, N_("graph"), + GTK_WIDGET(c->area), &_action_def_equalizer); g_signal_connect(G_OBJECT(c->area), "draw", G_CALLBACK(area_draw), self); - g_signal_connect(G_OBJECT(c->area), "button-press-event", G_CALLBACK(area_button_press), self); - g_signal_connect(G_OBJECT(c->area), "button-release-event", G_CALLBACK(area_button_release), self); - g_signal_connect(G_OBJECT(c->area), "motion-notify-event", G_CALLBACK(area_motion_notify), self); - g_signal_connect(G_OBJECT(c->area), "leave-notify-event", G_CALLBACK(area_enter_leave_notify), self); - g_signal_connect(G_OBJECT(c->area), "enter-notify-event", G_CALLBACK(area_enter_leave_notify), self); - g_signal_connect(G_OBJECT(c->area), "scroll-event", G_CALLBACK(area_scrolled), self); + g_signal_connect(G_OBJECT(c->area), "button-press-event", + G_CALLBACK(area_button_press), self); + g_signal_connect(G_OBJECT(c->area), "button-release-event", + G_CALLBACK(area_button_release), self); + g_signal_connect(G_OBJECT(c->area), "motion-notify-event", + G_CALLBACK(area_motion_notify), self); + g_signal_connect(G_OBJECT(c->area), "leave-notify-event", + G_CALLBACK(area_enter_leave_notify), self); + g_signal_connect(G_OBJECT(c->area), "enter-notify-event", + G_CALLBACK(area_enter_leave_notify), self); + g_signal_connect(G_OBJECT(c->area), "scroll-event", + G_CALLBACK(area_scrolled), self); // mix slider c->mix = dt_bauhaus_slider_from_params(self, N_("mix")); @@ -1705,4 +1851,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/basecurve.c darktable-4.6.1/src/iop/basecurve.c --- darktable-4.4.2/src/iop/basecurve.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/basecurve.c 2024-02-16 17:31:09.000000000 +0000 @@ -76,27 +76,47 @@ dt_iop_rgb_norms_t preserve_colors; /* $DEFAULT: DT_RGB_NORM_LUMINANCE $DESCRIPTION: "preserve colors" */ } dt_iop_basecurve_params_t; -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, const int new_version) -{ - if(old_version == 1 && new_version == 6) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_basecurve_params_v6_t + { + // three curves (c, ., .) with max number of nodes + // the other two are reserved, maybe we'll have cam rgb at some point. + dt_iop_basecurve_node_t basecurve[3][MAXNODES]; + int basecurve_nodes[3]; + int basecurve_type[3]; + int exposure_fusion; + float exposure_stops; + float exposure_bias; + dt_iop_rgb_norms_t preserve_colors; + } dt_iop_basecurve_params_v6_t; + + if(old_version == 1) { - typedef struct dt_iop_basecurve_params1_t + typedef struct dt_iop_basecurve_params_v1_t { float tonecurve_x[6], tonecurve_y[6]; int tonecurve_preset; - } dt_iop_basecurve_params1_t; + } dt_iop_basecurve_params_v1_t; - dt_iop_basecurve_params1_t *o = (dt_iop_basecurve_params1_t *)old_params; - dt_iop_basecurve_params_t *n = (dt_iop_basecurve_params_t *)new_params; + const dt_iop_basecurve_params_v1_t *o = (dt_iop_basecurve_params_v1_t *)old_params; + dt_iop_basecurve_params_v6_t *n = + (dt_iop_basecurve_params_v6_t *)malloc(sizeof(dt_iop_basecurve_params_v6_t)); // start with a fresh copy of default parameters // unfortunately default_params aren't inited at this stage. - *n = (dt_iop_basecurve_params_t){ { - { { 0.0, 0.0 }, { 1.0, 1.0 } }, - }, - { 2, 3, 3 }, - { MONOTONE_HERMITE, MONOTONE_HERMITE, MONOTONE_HERMITE } , 0, 1}; + *n = (dt_iop_basecurve_params_v6_t) + { { + { { 0.0, 0.0 }, { 1.0, 1.0 } }, + }, + { 2, 3, 3 }, + { MONOTONE_HERMITE, MONOTONE_HERMITE, MONOTONE_HERMITE } , 0, 1}; + for(int k = 0; k < 6; k++) n->basecurve[0][k].x = o->tonecurve_x[k]; for(int k = 0; k < 6; k++) n->basecurve[0][k].y = o->tonecurve_y[k]; n->basecurve_nodes[0] = 6; @@ -105,31 +125,41 @@ n->exposure_stops = 1; n->exposure_bias = 1.0; n->preserve_colors = DT_RGB_NORM_NONE; + + *new_params = n; + *new_params_size = sizeof(dt_iop_basecurve_params_v6_t); + *new_version = 6; return 0; } - if(old_version == 2 && new_version == 6) + if(old_version == 2) { - typedef struct dt_iop_basecurve_params2_t + typedef struct dt_iop_basecurve_params_v2_t { // three curves (c, ., .) with max number of nodes // the other two are reserved, maybe we'll have cam rgb at some point. dt_iop_basecurve_node_t basecurve[3][MAXNODES]; int basecurve_nodes[3]; int basecurve_type[3]; - } dt_iop_basecurve_params2_t; + } dt_iop_basecurve_params_v2_t; + + dt_iop_basecurve_params_v2_t *o = (dt_iop_basecurve_params_v2_t *)old_params; + dt_iop_basecurve_params_v6_t *n = + (dt_iop_basecurve_params_v6_t *)malloc(sizeof(dt_iop_basecurve_params_v6_t)); - dt_iop_basecurve_params2_t *o = (dt_iop_basecurve_params2_t *)old_params; - dt_iop_basecurve_params_t *n = (dt_iop_basecurve_params_t *)new_params; - memcpy(n, o, sizeof(dt_iop_basecurve_params2_t)); + memcpy(n, o, sizeof(dt_iop_basecurve_params_v2_t)); n->exposure_fusion = 0; n->exposure_stops = 1; n->exposure_bias = 1.0; n->preserve_colors = DT_RGB_NORM_NONE; + + *new_params = n; + *new_params_size = sizeof(dt_iop_basecurve_params_v6_t); + *new_version = 6; return 0; } - if(old_version == 3 && new_version == 6) + if(old_version == 3) { - typedef struct dt_iop_basecurve_params3_t + typedef struct dt_iop_basecurve_params_v3_t { // three curves (c, ., .) with max number of nodes // the other two are reserved, maybe we'll have cam rgb at some point. @@ -138,20 +168,26 @@ int basecurve_type[3]; int exposure_fusion; // number of exposure fusion steps float exposure_stops; // number of stops between fusion images - } dt_iop_basecurve_params3_t; + } dt_iop_basecurve_params_v3_t; - dt_iop_basecurve_params3_t *o = (dt_iop_basecurve_params3_t *)old_params; - dt_iop_basecurve_params_t *n = (dt_iop_basecurve_params_t *)new_params; - memcpy(n, o, sizeof(dt_iop_basecurve_params3_t)); - n->exposure_stops = (o->exposure_fusion == 0 && o->exposure_stops == 0) ? 1.0f : o->exposure_stops; + dt_iop_basecurve_params_v3_t *o = (dt_iop_basecurve_params_v3_t *)old_params; + dt_iop_basecurve_params_v6_t *n = + (dt_iop_basecurve_params_v6_t *)malloc(sizeof(dt_iop_basecurve_params_v6_t)); + memcpy(n, o, sizeof(dt_iop_basecurve_params_v3_t)); + n->exposure_stops = + (o->exposure_fusion == 0 && o->exposure_stops == 0) ? 1.0f : o->exposure_stops; n->exposure_bias = 1.0; n->preserve_colors = DT_RGB_NORM_NONE; + + *new_params = n; + *new_params_size = sizeof(dt_iop_basecurve_params_v6_t); + *new_version = 6; return 0; } - if(old_version == 4 && new_version == 6) + if(old_version == 4) { // same as v3 but semantics/defaults changed - typedef struct dt_iop_basecurve_params4_t + typedef struct dt_iop_basecurve_params_v4_t { // three curves (c, ., .) with max number of nodes // the other two are reserved, maybe we'll have cam rgb at some point. @@ -160,18 +196,24 @@ int basecurve_type[3]; int exposure_fusion; // number of exposure fusion steps float exposure_stops; // number of stops between fusion images - } dt_iop_basecurve_params4_t; + } dt_iop_basecurve_params_v4_t; + + dt_iop_basecurve_params_v4_t *o = (dt_iop_basecurve_params_v4_t *)old_params; + dt_iop_basecurve_params_v6_t *n = + (dt_iop_basecurve_params_v6_t *)malloc(sizeof(dt_iop_basecurve_params_v6_t)); - dt_iop_basecurve_params4_t *o = (dt_iop_basecurve_params4_t *)old_params; - dt_iop_basecurve_params_t *n = (dt_iop_basecurve_params_t *)new_params; - memcpy(n, o, sizeof(dt_iop_basecurve_params4_t)); + memcpy(n, o, sizeof(dt_iop_basecurve_params_v4_t)); n->exposure_bias = 1.0; n->preserve_colors = DT_RGB_NORM_NONE; + + *new_params = n; + *new_params_size = sizeof(dt_iop_basecurve_params_v6_t); + *new_version = 6; return 0; } - if(old_version == 5 && new_version == 6) + if(old_version == 5) { - typedef struct dt_iop_basecurve_params5_t + typedef struct dt_iop_basecurve_params_v5_t { // three curves (c, ., .) with max number of nodes // the other two are reserved, maybe we'll have cam rgb at some point. @@ -181,12 +223,17 @@ int exposure_fusion; // number of exposure fusion steps float exposure_stops; // number of stops between fusion images float exposure_bias; // whether to do exposure-fusion with over or under-exposure - } dt_iop_basecurve_params5_t; + } dt_iop_basecurve_params_v5_t; - dt_iop_basecurve_params5_t *o = (dt_iop_basecurve_params5_t *)old_params; - dt_iop_basecurve_params_t *n = (dt_iop_basecurve_params_t *)new_params; - memcpy(n, o, sizeof(dt_iop_basecurve_params5_t)); + dt_iop_basecurve_params_v5_t *o = (dt_iop_basecurve_params_v5_t *)old_params; + dt_iop_basecurve_params_v6_t *n = + (dt_iop_basecurve_params_v6_t *)malloc(sizeof(dt_iop_basecurve_params_v6_t)); + memcpy(n, o, sizeof(dt_iop_basecurve_params_v5_t)); n->preserve_colors = DT_RGB_NORM_NONE; + + *new_params = n; + *new_params_size = sizeof(dt_iop_basecurve_params_v6_t); + *new_version = 6; return 0; } return 1; @@ -365,9 +412,9 @@ return IOP_FLAGS_SUPPORTS_BLENDING | IOP_FLAGS_ALLOW_TILING; } -int default_colorspace(dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -463,7 +510,7 @@ void reload_defaults(dt_iop_module_t *module) { - dt_iop_basecurve_params_t *d = module->default_params; + dt_iop_basecurve_params_t *const d = module->default_params; if(module->multi_priority == 0) { @@ -677,6 +724,7 @@ int num_levels = num_levels_max; + err = CL_MEM_OBJECT_ALLOCATION_FAILURE; dev_tmp1 = dt_opencl_alloc_device(devid, width, height, sizeof(float) * 4); if(dev_tmp1 == NULL) goto error; @@ -860,25 +908,8 @@ } // copy output buffer - { - err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_basecurve_finalize, width, height, + err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_basecurve_finalize, width, height, CLARG(dev_in), CLARG(dev_comb[0]), CLARG(dev_out), CLARG(width), CLARG(height)); - if(err != CL_SUCCESS) goto error; - } - - for(int k = 0; k < num_levels_max; k++) - { - dt_opencl_release_mem_object(dev_col[k]); - dt_opencl_release_mem_object(dev_comb[k]); - } - dt_ioppr_free_iccprofile_params_cl(&profile_info_cl, &profile_lut_cl, &dev_profile_info, &dev_profile_lut); - dt_opencl_release_mem_object(dev_m); - dt_opencl_release_mem_object(dev_coeffs); - dt_opencl_release_mem_object(dev_tmp1); - dt_opencl_release_mem_object(dev_tmp2); - free(dev_comb); - free(dev_col); - return TRUE; error: for(int k = 0; k < num_levels_max; k++) @@ -893,8 +924,7 @@ dt_opencl_release_mem_object(dev_tmp2); free(dev_comb); free(dev_col); - dt_print(DT_DEBUG_OPENCL, "[opencl_basecurve_fusion] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } static @@ -946,7 +976,6 @@ dt_opencl_set_kernel_args(devid, gd->kernel_basecurve_legacy_lut, 0, CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(mul), CLARG(dev_m), CLARG(dev_coeffs)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_basecurve_legacy_lut, sizes); - if(err != CL_SUCCESS) goto error; } else { @@ -955,20 +984,13 @@ CLARG(height), CLARG(mul), CLARG(dev_m), CLARG(dev_coeffs), CLARG(preserve_colors), CLARG(dev_profile_info), CLARG(dev_profile_lut), CLARG(use_work_profile)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_basecurve_lut, sizes); - if(err != CL_SUCCESS) goto error; } - dt_opencl_release_mem_object(dev_m); - dt_opencl_release_mem_object(dev_coeffs); - dt_ioppr_free_iccprofile_params_cl(&profile_info_cl, &profile_lut_cl, &dev_profile_info, &dev_profile_lut); - return TRUE; - error: dt_opencl_release_mem_object(dev_m); dt_opencl_release_mem_object(dev_coeffs); dt_ioppr_free_iccprofile_params_cl(&profile_info_cl, &profile_lut_cl, &dev_profile_info, &dev_profile_lut); - dt_print(DT_DEBUG_OPENCL, "[opencl_basecurve_lut] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } int process_cl(struct dt_iop_module_t *self, @@ -1271,7 +1293,7 @@ comb[k] = dt_alloc_align_float((size_t)4 * w * h); if(!col[k] || !comb[k]) { - dt_iop_copy_image_roi(ovoid, ivoid, piece->colors, roi_in, roi_out, 0); + dt_iop_copy_image_roi(ovoid, ivoid, piece->colors, roi_in, roi_out); dt_print(DT_DEBUG_ALWAYS,"[basecurve] process_fusion out of memory, skipping\n"); goto cleanup; } @@ -1939,7 +1961,7 @@ { dt_iop_module_t *self = (dt_iop_module_t *)user_data; dt_iop_basecurve_params_t *p = (dt_iop_basecurve_params_t *)self->params; - dt_iop_basecurve_params_t *d = (dt_iop_basecurve_params_t *)self->default_params; + const dt_iop_basecurve_params_t *const d = (dt_iop_basecurve_params_t *)self->default_params; dt_iop_basecurve_gui_data_t *c = (dt_iop_basecurve_gui_data_t *)self->gui_data; int ch = 0; @@ -2167,7 +2189,7 @@ void gui_init(struct dt_iop_module_t *self) { dt_iop_basecurve_gui_data_t *c = IOP_GUI_ALLOC(basecurve); - dt_iop_basecurve_params_t *p = (dt_iop_basecurve_params_t *)self->default_params; + const dt_iop_basecurve_params_t *const p = (dt_iop_basecurve_params_t *)self->default_params; c->minmax_curve = dt_draw_curve_new(0.0, 1.0, p->basecurve_type[0]); c->minmax_curve_type = p->basecurve_type[0]; diff -Nru darktable-4.4.2/src/iop/basicadj.c darktable-4.6.1/src/iop/basicadj.c --- darktable-4.4.2/src/iop/basicadj.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/basicadj.c 2024-02-16 17:31:09.000000000 +0000 @@ -93,10 +93,31 @@ int kernel_basicadj; } dt_iop_basicadj_global_data_t; -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, void *new_params, - const int new_version) -{ - if(old_version == 1 && new_version == 2) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_basicadj_params_v2_t + { + float black_point; + + float exposure; + float hlcompr; + + float hlcomprthresh; + float contrast; + dt_iop_rgb_norms_t preserve_colors; + float middle_grey; + float brightness; + float saturation; + float vibrance; + float clip; + } dt_iop_basicadj_params_v2_t; + + if(old_version == 1) { typedef struct dt_iop_basicadj_params_v1_t { @@ -113,7 +134,8 @@ } dt_iop_basicadj_params_v1_t; const dt_iop_basicadj_params_v1_t *old = old_params; - dt_iop_basicadj_params_t *new = new_params; + dt_iop_basicadj_params_v2_t *new = + (dt_iop_basicadj_params_v2_t *)malloc(sizeof(dt_iop_basicadj_params_v2_t)); new->black_point = old->black_point; new->exposure = old->exposure; @@ -126,6 +148,10 @@ new->saturation = old->saturation; new->clip = old->clip; new->vibrance = 0; + + *new_params = new; + *new_params_size = sizeof(dt_iop_basicadj_params_v2_t); + *new_version = 2; return 0; } return 1; @@ -160,7 +186,9 @@ return IOP_FLAGS_ALLOW_TILING | IOP_FLAGS_SUPPORTS_BLENDING | IOP_FLAGS_DEPRECATED; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -311,19 +339,22 @@ } } -int mouse_moved(struct dt_iop_module_t *self, double x, double y, double pressure, int which) +int mouse_moved(dt_iop_module_t *self, + const float pzx, + const float pzy, + const double pressure, + const int which, + const float zoom_scale) { int handled = 0; dt_iop_basicadj_gui_data_t *g = (dt_iop_basicadj_gui_data_t *)self->gui_data; if(g && g->draw_selected_region && g->button_down && self->enabled) { - float pzx, pzy; - dt_dev_get_pointer_zoom_pos(darktable.develop, x, y, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; + float wd, ht; + dt_dev_get_preview_size(self->dev, &wd, &ht); - g->posx_to = pzx * darktable.develop->preview_pipe->backbuf_width; - g->posy_to = pzy * darktable.develop->preview_pipe->backbuf_height; + g->posx_to = pzx * wd; + g->posy_to = pzy * ht; dt_control_queue_redraw_center(); @@ -333,7 +364,12 @@ return handled; } -int button_released(struct dt_iop_module_t *self, double x, double y, int which, uint32_t state) +int button_released(dt_iop_module_t *self, + const float x, + const float y, + const int which, + const uint32_t state, + const float zoom_scale) { int handled = 0; dt_iop_basicadj_gui_data_t *g = (dt_iop_basicadj_gui_data_t *)self->gui_data; @@ -365,8 +401,14 @@ return handled; } -int button_pressed(struct dt_iop_module_t *self, double x, double y, double pressure, int which, int type, - uint32_t state) +int button_pressed(dt_iop_module_t *self, + const float pzx, + const float pzy, + const double pressure, + const int which, + const int type, + const uint32_t state, + const float zoom_scale) { int handled = 0; dt_iop_basicadj_gui_data_t *g = (dt_iop_basicadj_gui_data_t *)self->gui_data; @@ -380,13 +422,11 @@ } else if(which == 1) { - float pzx, pzy; - dt_dev_get_pointer_zoom_pos(darktable.develop, x, y, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; + float wd, ht; + dt_dev_get_preview_size(self->dev, &wd, &ht); - g->posx_from = g->posx_to = pzx * darktable.develop->preview_pipe->backbuf_width; - g->posy_from = g->posy_to = pzy * darktable.develop->preview_pipe->backbuf_height; + g->posx_from = g->posx_to = pzx * wd; + g->posy_from = g->posy_to = pzy * ht; g->button_down = 1; @@ -397,36 +437,27 @@ return handled; } -void gui_post_expose(struct dt_iop_module_t *self, cairo_t *cr, int32_t width, int32_t height, int32_t pointerx, - int32_t pointery) +void gui_post_expose(dt_iop_module_t *self, + cairo_t *cr, + const float width, + const float height, + const float pointerx, + const float pointery, + const float zoom_scale) { dt_iop_basicadj_gui_data_t *g = (dt_iop_basicadj_gui_data_t *)self->gui_data; if(g == NULL || !self->enabled) return; if(!g->draw_selected_region || !g->button_down) return; if(g->posx_from == g->posx_to && g->posy_from == g->posy_to) return; - dt_develop_t *dev = darktable.develop; - const float wd = dev->preview_pipe->backbuf_width; - const float ht = dev->preview_pipe->backbuf_height; - const float zoom_y = dt_control_get_dev_zoom_y(); - const float zoom_x = dt_control_get_dev_zoom_x(); - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(dev, zoom, 1 << closeup, 1); - const float posx_from = fmin(g->posx_from, g->posx_to); const float posx_to = fmax(g->posx_from, g->posx_to); const float posy_from = fmin(g->posy_from, g->posy_to); const float posy_to = fmax(g->posy_from, g->posy_to); - cairo_save(cr); cairo_set_line_width(cr, 1.0 / zoom_scale); cairo_set_source_rgb(cr, .2, .2, .2); - cairo_translate(cr, width / 2.0, height / 2.0f); - cairo_scale(cr, zoom_scale, zoom_scale); - cairo_translate(cr, -.5f * wd - zoom_x * wd, -.5f * ht - zoom_y * ht); - cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND); cairo_rectangle(cr, posx_from, posy_from, (posx_to - posx_from), (posy_to - posy_from)); @@ -436,8 +467,6 @@ cairo_rectangle(cr, posx_from + 1.0 / zoom_scale, posy_from, (posx_to - posx_from) - 3. / zoom_scale, (posy_to - posy_from) - 2. / zoom_scale); cairo_stroke(cr); - - cairo_restore(cr); } void init_global(dt_iop_module_so_t *module) @@ -458,13 +487,14 @@ module->data = NULL; } -void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece) +void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, + dt_dev_pixelpipe_t *pipe) { if(darktable.gui->reset) return; dt_iop_basicadj_params_t *p = (dt_iop_basicadj_params_t *)self->params; dt_iop_basicadj_gui_data_t *g = (dt_iop_basicadj_gui_data_t *)self->gui_data; - const dt_iop_order_iccprofile_info_t *const work_profile = dt_ioppr_get_pipe_current_profile_info(self, piece->pipe); + const dt_iop_order_iccprofile_info_t *const work_profile = dt_ioppr_get_pipe_current_profile_info(self, pipe); p->middle_grey = (work_profile) ? (dt_ioppr_get_rgb_matrix_luminance(self->picked_color, work_profile->matrix_in, work_profile->lut_in, @@ -1381,22 +1411,14 @@ CLARG(contrast), CLARG(process_saturation_vibrance), CLARG(saturation), CLARG(vibrance), CLARG(process_hlcompr), CLARG(hlcomp), CLARG(hlrange), CLARG(middle_grey), CLARG(inv_middle_grey), CLARG(dev_profile_info), CLARG(dev_profile_lut), CLARG(use_work_profile)); - if(err != CL_SUCCESS) - { - dt_print(DT_DEBUG_ALWAYS, "[basicadj process_cl] error %i enqueue kernel\n", err); - goto cleanup; - } cleanup: - if(dev_gamma) dt_opencl_release_mem_object(dev_gamma); - if(dev_contrast) dt_opencl_release_mem_object(dev_contrast); + dt_opencl_release_mem_object(dev_gamma); + dt_opencl_release_mem_object(dev_contrast); dt_ioppr_free_iccprofile_params_cl(&profile_info_cl, &profile_lut_cl, &dev_profile_info, &dev_profile_lut); - if(src_buffer) dt_free_align(src_buffer); - - if(err != CL_SUCCESS) dt_print(DT_DEBUG_OPENCL, "[opencl_basicadj] couldn't enqueue kernel! %s\n", cl_errstr(err)); - - return (err == CL_SUCCESS) ? TRUE : FALSE; + dt_free_align(src_buffer); + return err; } #endif @@ -1554,4 +1576,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/bilat.c darktable-4.6.1/src/iop/bilat.c --- darktable-4.4.2/src/iop/bilat.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/bilat.c 2024-02-16 17:31:09.000000000 +0000 @@ -56,25 +56,7 @@ float sigma_s; // $MIN: 0.0 $MAX: 100.0 $DEFAULT: 0.5 shadows 100 & spatial 1 100 50 float detail; // $MIN: -1.0 $MAX: 4.0 $DEFAULT: 0.25 float midtone; // $MIN: 0.001 $MAX: 1.0 $DEFAULT: 0.5 $DESCRIPTION: "midtone range" -} -dt_iop_bilat_params_t; - -typedef struct dt_iop_bilat_params_v2_t -{ - uint32_t mode; - float sigma_r; - float sigma_s; - float detail; -} -dt_iop_bilat_params_v2_t; - -typedef struct dt_iop_bilat_params_v1_t -{ - float sigma_r; - float sigma_s; - float detail; -} -dt_iop_bilat_params_v1_t; +} dt_iop_bilat_params_t; typedef dt_iop_bilat_params_t dt_iop_bilat_data_t; @@ -87,8 +69,7 @@ GtkWidget *range; GtkWidget *detail; GtkWidget *mode; -} -dt_iop_bilat_gui_data_t; +} dt_iop_bilat_gui_data_t; // this returns a translatable name const char *name() @@ -117,9 +98,9 @@ return IOP_GROUP_TONE | IOP_GROUP_EFFECTS; } -int default_colorspace(dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } @@ -127,29 +108,65 @@ int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, - const int new_version) + void **new_params, + int32_t *new_params_size, + int *new_version) { - if(old_version == 2 && new_version == 3) + typedef struct dt_iop_bilat_params_v3_t + { + dt_iop_bilat_mode_t mode; + float sigma_r; + float sigma_s; + float detail; + float midtone; + } dt_iop_bilat_params_v3_t; + + if(old_version == 1) { - const dt_iop_bilat_params_v2_t *p2 = old_params; - dt_iop_bilat_params_t *p = new_params; - p->detail = p2->detail; - p->sigma_r = p2->sigma_r; - p->sigma_s = p2->sigma_s; - p->midtone = 0.2f; - p->mode = p2->mode; + typedef struct dt_iop_bilat_params_v1_t + { + float sigma_r; + float sigma_s; + float detail; + } dt_iop_bilat_params_v1_t; + + const dt_iop_bilat_params_v1_t *o = old_params; + dt_iop_bilat_params_v3_t *n = + (dt_iop_bilat_params_v3_t *)malloc(sizeof(dt_iop_bilat_params_v3_t)); + n->detail = o->detail; + n->sigma_r = o->sigma_r; + n->sigma_s = o->sigma_s; + n->midtone = 0.2f; + n->mode = s_mode_bilateral; + + *new_params = n; + *new_params_size = sizeof(dt_iop_bilat_params_v3_t); + *new_version = 3; return 0; } - else if(old_version == 1 && new_version == 3) + + if(old_version == 2) { - const dt_iop_bilat_params_v1_t *p1 = old_params; - dt_iop_bilat_params_t *p = new_params; - p->detail = p1->detail; - p->sigma_r = p1->sigma_r; - p->sigma_s = p1->sigma_s; - p->midtone = 0.2f; - p->mode = s_mode_bilateral; + typedef struct dt_iop_bilat_params_v2_t + { + uint32_t mode; + float sigma_r; + float sigma_s; + float detail; + } dt_iop_bilat_params_v2_t; + + const dt_iop_bilat_params_v2_t *o = old_params; + dt_iop_bilat_params_v3_t *n = + (dt_iop_bilat_params_v3_t *)malloc(sizeof(dt_iop_bilat_params_v3_t)); + n->detail = o->detail; + n->sigma_r = o->sigma_r; + n->sigma_s = o->sigma_s; + n->midtone = 0.2f; + n->mode = o->mode; + + *new_params = n; + *new_params_size = sizeof(dt_iop_bilat_params_v3_t); + *new_version = 3; return 0; } return 1; @@ -190,6 +207,7 @@ { dt_iop_bilat_data_t *d = (dt_iop_bilat_data_t *)piece->data; + cl_int err = DT_OPENCL_PROCESS_CL; if(d->mode == s_mode_bilateral) { // the total scale is composed of scale before input to the pipeline (iscale), @@ -197,7 +215,6 @@ const float scale = fmaxf(piece->iscale / roi_in->scale, 1.f); const float sigma_r = d->sigma_r; // does not depend on scale const float sigma_s = d->sigma_s / scale; - cl_int err = -666; dt_bilateral_cl_t *b = dt_bilateral_init_cl(piece->pipe->devid, roi_in->width, roi_in->height, @@ -208,14 +225,9 @@ err = dt_bilateral_blur_cl(b); if(err != CL_SUCCESS) goto error; err = dt_bilateral_slice_cl(b, dev_in, dev_out, d->detail); - if(err != CL_SUCCESS) goto error; - dt_bilateral_free_cl(b); - return TRUE; error: dt_bilateral_free_cl(b); - dt_print(DT_DEBUG_OPENCL, - "[opencl_bilateral] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } else // mode == s_mode_local_laplacian { @@ -223,12 +235,10 @@ dt_local_laplacian_init_cl(piece->pipe->devid, roi_in->width, roi_in->height, d->midtone, d->sigma_s, d->sigma_r, d->detail); if(!b) goto error_ll; - if(dt_local_laplacian_cl(b, dev_in, dev_out) != CL_SUCCESS) goto error_ll; - dt_local_laplacian_free_cl(b); - return TRUE; + err = dt_local_laplacian_cl(b, dev_in, dev_out); error_ll: - dt_local_laplacian_free_cl(b); - return FALSE; + if(b) dt_local_laplacian_free_cl(b); + return err; } } #endif diff -Nru darktable-4.4.2/src/iop/bilateral.cc darktable-4.6.1/src/iop/bilateral.cc --- darktable-4.4.2/src/iop/bilateral.cc 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/bilateral.cc 2024-02-16 17:31:09.000000000 +0000 @@ -89,7 +89,9 @@ return IOP_FLAGS_ALLOW_TILING | IOP_FLAGS_SUPPORTS_BLENDING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } diff -Nru darktable-4.4.2/src/iop/bloom.c darktable-4.6.1/src/iop/bloom.c --- darktable-4.4.2/src/iop/bloom.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/bloom.c 2024-02-16 17:31:09.000000000 +0000 @@ -95,7 +95,9 @@ return IOP_GROUP_EFFECT | IOP_GROUP_EFFECTS; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } @@ -112,7 +114,7 @@ if(!dt_iop_alloc_image_buffers(self, roi_in, roi_out, 1, &blurlightness, 0)) { // out of memory, so just copy image through to output - dt_iop_copy_image_roi(ovoid, ivoid, piece->colors, roi_in, roi_out, TRUE); + dt_iop_copy_image_roi(ovoid, ivoid, piece->colors, roi_in, roi_out); return; } @@ -283,17 +285,11 @@ dt_opencl_set_kernel_args(devid, gd->kernel_bloom_mix, 0, CLARG(dev_in), CLARG(dev_tmp1), CLARG(dev_out), CLARG(width), CLARG(height)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_bloom_mix, sizes); - if(err != CL_SUCCESS) goto error; - - for(int i = 0; i < NUM_BUCKETS; i++) - dt_opencl_release_mem_object(dev_tmp[i]); - return TRUE; error: for(int i = 0; i < NUM_BUCKETS; i++) dt_opencl_release_mem_object(dev_tmp[i]); - dt_print(DT_DEBUG_OPENCL, "[opencl_bloom] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif diff -Nru darktable-4.4.2/src/iop/blurs.c darktable-4.6.1/src/iop/blurs.c --- darktable-4.4.2/src/iop/blurs.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/blurs.c 2024-02-16 17:31:09.000000000 +0000 @@ -106,7 +106,9 @@ } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -647,8 +649,8 @@ dt_iop_blurs_params_t *p = (dt_iop_blurs_params_t *)piece->data; dt_iop_blurs_global_data_t *const gd = (dt_iop_blurs_global_data_t *)self->global_data; - cl_int err = DT_OPENCL_DEFAULT_ERROR; - + cl_int err = DT_OPENCL_SYSMEM_ALLOCATION; + cl_mem kernel_cl = NULL; const int devid = piece->pipe->devid; const int width = roi_in->width; const int height = roi_in->height; @@ -660,25 +662,18 @@ const size_t kernel_width = 2 * radius + 1; float *const restrict kernel = dt_alloc_align_float(kernel_width * kernel_width); - build_pixel_kernel(kernel, kernel_width, kernel_width, p); - - cl_mem kernel_cl = dt_opencl_copy_host_to_device(devid, kernel, kernel_width, kernel_width, sizeof(float)); - - err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_blurs_convolve, width, height, - CLARG(dev_in), CLARG(kernel_cl), CLARG(dev_out), CLARG(roi_out->width), CLARG(roi_out->height), - CLARG(radius)); - if(err != CL_SUCCESS) goto error; - - // cleanup and exit on success + if(kernel) + { + build_pixel_kernel(kernel, kernel_width, kernel_width, p); + kernel_cl = dt_opencl_copy_host_to_device(devid, kernel, kernel_width, kernel_width, sizeof(float)); + if(kernel_cl) + err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_blurs_convolve, width, height, + CLARG(dev_in), CLARG(kernel_cl), CLARG(dev_out), CLARG(roi_out->width), CLARG(roi_out->height), + CLARG(radius)); + } dt_free_align(kernel); dt_opencl_release_mem_object(kernel_cl); - return TRUE; - -error: - if(kernel) dt_free_align(kernel); - if(kernel_cl) dt_opencl_release_mem_object(kernel_cl); - dt_print(DT_DEBUG_OPENCL, "[opencl_blurs] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } void init_global(dt_iop_module_so_t *module) diff -Nru darktable-4.4.2/src/iop/borders.c darktable-4.6.1/src/iop/borders.c --- darktable-4.4.2/src/iop/borders.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/borders.c 2024-02-16 17:31:09.000000000 +0000 @@ -26,6 +26,7 @@ #include "control/control.h" #include "develop/develop.h" #include "develop/imageop.h" +#include "develop/borders_helper.h" #include "develop/imageop_gui.h" #include "dtgtk/button.h" #include "dtgtk/resetlabel.h" @@ -44,7 +45,7 @@ #include <stdlib.h> #include <string.h> -DT_MODULE_INTROSPECTION(3, dt_iop_borders_params_t) +DT_MODULE_INTROSPECTION(4, dt_iop_borders_params_t) // Module constants #define DT_IOP_BORDERS_ASPECT_IMAGE_VALUE 0.0f @@ -56,6 +57,15 @@ DT_IOP_BORDERS_ASPECT_ORIENTATION_LANDSCAPE = 2, // $DESCRIPTION: "landscape" } dt_iop_orientation_t; +typedef enum dt_iop_basis_t +{ + DT_IOP_BORDERS_BASIS_AUTO = 0, // $DESCRIPTION: "auto" + DT_IOP_BORDERS_BASIS_WIDTH = 1, // $DESCRIPTION: "width" + DT_IOP_BORDERS_BASIS_HEIGHT = 2, // $DESCRIPTION: "height" + DT_IOP_BORDERS_BASIS_SHORTER = 3, // $DESCRIPTION: "shorter" + DT_IOP_BORDERS_BASIS_LONGER = 4, // $DESCRIPTION: "longer" +} dt_iop_basis_t; + static const float _aspect_ratios[] = { DT_IOP_BORDERS_ASPECT_IMAGE_VALUE, 3.0f, 95.0f / 33.0f, 2.39f, 2.0f, 16.0f / 9.0f, 5.0f / 3.0f, 14.0f / 8.5f, PHI, 16.0f / 10.0f, @@ -75,19 +85,19 @@ float color[3]; // border color $DEFAULT: 1.0 float aspect; /* aspect ratio of the outer frame w/h $MIN: 1.0 $MAX: 3.0 $DEFAULT: DT_IOP_BORDERS_ASPECT_CONSTANT_VALUE $DESCRIPTION: "aspect ratio" */ - char aspect_text[20]; /* aspect ratio of the outer frame w/h (user string version) + char aspect_text[20]; /* UNUSED aspect ratio of the outer frame w/h (user string version) DEFAULT: "constant border" */ dt_iop_orientation_t aspect_orient; /* aspect ratio orientation $DEFAULT: 0 $DESCRIPTION: "orientation" */ - float size; /* border width relative to overall frame width + float size; /* border width relative to the length of the chosen basis $MIN: 0.0 $MAX: 0.5 $DEFAULT: 0.1 $DESCRIPTION: "border size" */ float pos_h; /* picture horizontal position ratio into the final image $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.5 $DESCRIPTION: "horizontal offset" */ - char pos_h_text[20]; /* picture horizontal position ratio into the final image (user string version) + char pos_h_text[20]; /* UNUSED picture horizontal position ratio into the final image (user string version) DEFAULT: "1/2" */ float pos_v; /* picture vertical position ratio into the final image $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.5 $DESCRIPTION: "vertical offset"*/ - char pos_v_text[20]; /* picture vertical position ratio into the final image (user string version) + char pos_v_text[20]; /* UNUSED picture vertical position ratio into the final image (user string version) DEFAULT: "1/2" */ float frame_size; /* frame line width relative to border width $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "frame line size" */ @@ -96,10 +106,13 @@ float frame_color[3]; // frame line color $DEFAULT: 0.0 gboolean max_border_size; /* the way border size is computed $DEFAULT: TRUE */ + dt_iop_basis_t basis; /* side of the photo to use as basis for the size calculation + $DEFAULT: 0 $DESCRIPTION: "basis" */ } dt_iop_borders_params_t; typedef struct dt_iop_borders_gui_data_t { + GtkWidget *basis; GtkWidget *size; GtkWidget *aspect; GtkWidget *aspect_slider; @@ -117,10 +130,58 @@ } dt_iop_borders_gui_data_t; // ******* Check and update legacy params...(esp. ver 4) -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, const int new_version) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) { - if(old_version == 1 && new_version == 3) + typedef struct dt_iop_borders_params_v3_t + { + float color[3]; // border color $DEFAULT: 1.0 + float aspect; /* aspect ratio of the outer frame w/h + $MIN: 1.0 $MAX: 3.0 $DEFAULT: DT_IOP_BORDERS_ASPECT_CONSTANT_VALUE $DESCRIPTION: "aspect ratio" */ + char aspect_text[20]; /* UNUSED aspect ratio of the outer frame w/h (user string version) + DEFAULT: "constant border" */ + dt_iop_orientation_t aspect_orient; /* aspect ratio orientation + $DEFAULT: 0 $DESCRIPTION: "orientation" */ + float size; /* border width relative to overall frame width + $MIN: 0.0 $MAX: 0.5 $DEFAULT: 0.1 $DESCRIPTION: "border size" */ + float pos_h; /* picture horizontal position ratio into the final image + $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.5 $DESCRIPTION: "horizontal offset" */ + char pos_h_text[20]; /* UNUSED picture horizontal position ratio into the final image (user string version) + DEFAULT: "1/2" */ + float pos_v; /* picture vertical position ratio into the final image + $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.5 $DESCRIPTION: "vertical offset"*/ + char pos_v_text[20]; /* UNUSED picture vertical position ratio into the final image (user string version) + DEFAULT: "1/2" */ + float frame_size; /* frame line width relative to border width + $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "frame line size" */ + float frame_offset; /* frame offset from picture size relative to [border width - frame width] + $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.5 $DESCRIPTION: "frame line offset" */ + float frame_color[3]; // frame line color $DEFAULT: 0.0 + gboolean max_border_size; /* the way border size is computed + $DEFAULT: TRUE */ + } dt_iop_borders_params_v3_t; + + dt_iop_borders_params_v3_t default_v3 = + { { 1.0f, 1.0f, 1.0f }, + DT_IOP_BORDERS_ASPECT_CONSTANT_VALUE, + " ", + 0, + 0.1f, + 0.5f, + " ", + 0.5f, + " ", + 0.0f, + 0.5f, + { 0.0f, 0.0f, 0.0f }, + TRUE + }; + + if(old_version == 1) { typedef struct dt_iop_borders_params_v1_t { @@ -129,11 +190,11 @@ float size; // border width relative to overall frame width } dt_iop_borders_params_v1_t; - dt_iop_borders_params_v1_t *o = (dt_iop_borders_params_v1_t *)old_params; - dt_iop_borders_params_t *n = (dt_iop_borders_params_t *)new_params; - dt_iop_borders_params_t *d = (dt_iop_borders_params_t *)self->default_params; + const dt_iop_borders_params_v1_t *o = (dt_iop_borders_params_v1_t *)old_params; + dt_iop_borders_params_v3_t *n = + (dt_iop_borders_params_v3_t *)malloc(sizeof(dt_iop_borders_params_v3_t)); - *n = *d; // start with a fresh copy of default parameters + *n = default_v3; // start with a fresh copy of default parameters memcpy(n->color, o->color, sizeof(o->color)); n->aspect = (o->aspect < 1) ? 1 / o->aspect : o->aspect; // no auto orientation in legacy param due to already convert aspect ratio @@ -141,10 +202,14 @@ : DT_IOP_BORDERS_ASPECT_ORIENTATION_PORTRAIT; n->size = fabsf(o->size); // no negative size any more (was for "constant border" detect) n->max_border_size = FALSE; + + *new_params = n; + *new_params_size = sizeof(dt_iop_borders_params_v3_t); + *new_version = 3; return 0; } - if(old_version == 2 && new_version == 3) + if(old_version == 2) { typedef struct dt_iop_borders_params_v2_t { @@ -162,11 +227,71 @@ float frame_color[3]; // frame line color } dt_iop_borders_params_v2_t; - dt_iop_borders_params_v2_t *o = (dt_iop_borders_params_v2_t *)old_params; - dt_iop_borders_params_t *n = (dt_iop_borders_params_t *)new_params; + const dt_iop_borders_params_v2_t *o = (dt_iop_borders_params_v2_t *)old_params; + dt_iop_borders_params_v3_t *n = + (dt_iop_borders_params_v3_t *)malloc(sizeof(dt_iop_borders_params_v3_t)); memcpy(n, o, sizeof(struct dt_iop_borders_params_v2_t)); n->max_border_size = FALSE; + + *new_params = n; + *new_params_size = sizeof(dt_iop_borders_params_v3_t); + *new_version = 3; + return 0; + } + + if(old_version == 3) + { + typedef struct dt_iop_borders_params_v4_t + { + float color[3]; // border color $DEFAULT: 1.0 + float aspect; /* aspect ratio of the outer frame w/h + $MIN: 1.0 $MAX: 3.0 $DEFAULT: DT_IOP_BORDERS_ASPECT_CONSTANT_VALUE $DESCRIPTION: "aspect ratio" */ + char aspect_text[20]; /* UNUSED aspect ratio of the outer frame w/h (user string version) + DEFAULT: "constant border" */ + dt_iop_orientation_t aspect_orient; /* aspect ratio orientation + $DEFAULT: 0 $DESCRIPTION: "orientation" */ + float size; /* border width relative to overall frame width + $MIN: 0.0 $MAX: 0.5 $DEFAULT: 0.1 $DESCRIPTION: "border size" */ + float pos_h; /* picture horizontal position ratio into the final image + $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.5 $DESCRIPTION: "horizontal offset" */ + char pos_h_text[20]; /* UNUSED picture horizontal position ratio into the final image (user string version) + DEFAULT: "1/2" */ + float pos_v; /* picture vertical position ratio into the final image + $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.5 $DESCRIPTION: "vertical offset"*/ + char pos_v_text[20]; /* UNUSED picture vertical position ratio into the final image (user string version) + DEFAULT: "1/2" */ + float frame_size; /* frame line width relative to border width + $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "frame line size" */ + float frame_offset; /* frame offset from picture size relative to [border width - frame width] + $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.5 $DESCRIPTION: "frame line offset" */ + float frame_color[3]; // frame line color $DEFAULT: 0.0 + gboolean max_border_size; /* the way border size is computed + $DEFAULT: TRUE */ + dt_iop_basis_t basis; /* side of the photo to use as basis for the size calculation + $DEFAULT: 0 $DESCRIPTION: "basis" */ + } dt_iop_borders_params_v4_t; + + const dt_iop_borders_params_v3_t *o = (dt_iop_borders_params_v3_t *)old_params; + dt_iop_borders_params_v4_t *n = + (dt_iop_borders_params_v4_t *)malloc(sizeof(dt_iop_borders_params_v4_t)); + + memcpy(n, o, sizeof(struct dt_iop_borders_params_v3_t)); + + if (n->aspect == DT_IOP_BORDERS_ASPECT_CONSTANT_VALUE && !n->max_border_size) + { + // the legacy behaviour is, when a constant border is used and the + // max_border_size flag is set, the width is always used as basis. + n->basis = DT_IOP_BORDERS_BASIS_WIDTH; + } + else + { + n->basis = DT_IOP_BORDERS_BASIS_AUTO; + } + + *new_params = n; + *new_params_size = sizeof(dt_iop_borders_params_v4_t); + *new_version = 4; return 0; } @@ -217,12 +342,17 @@ return IOP_FLAGS_ALLOW_TILING | IOP_FLAGS_TILING_FULL_ROI | IOP_FLAGS_GUIDES_WIDGET; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } -int distort_transform(dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, float *const restrict points, size_t points_count) +gboolean distort_transform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *const restrict points, + size_t points_count) { dt_iop_borders_data_t *d = (dt_iop_borders_data_t *)piece->data; @@ -232,7 +362,7 @@ const int border_size_l = border_tot_width * d->pos_h; // nothing to be done if parameters are set to neutral values (no top/left border) - if(border_size_l == 0 && border_size_t == 0) return 1; + if(border_size_l == 0 && border_size_t == 0) return TRUE; #ifdef _OPENMP #pragma omp parallel for simd default(none) \ @@ -245,10 +375,13 @@ points[i + 1] += border_size_t; } - return 1; + return TRUE; } -int distort_backtransform(dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, float *const restrict points, - size_t points_count) + +gboolean distort_backtransform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *const restrict points, + size_t points_count) { dt_iop_borders_data_t *d = (dt_iop_borders_data_t *)piece->data; @@ -258,7 +391,7 @@ const int border_size_l = border_tot_width * d->pos_h; // nothing to be done if parameters are set to neutral values (no top/left border) - if(border_size_l == 0 && border_size_t == 0) return 1; + if(border_size_l == 0 && border_size_t == 0) return TRUE; #ifdef _OPENMP #pragma omp parallel for simd default(none) \ @@ -271,20 +404,25 @@ points[i + 1] -= border_size_t; } - return 1; + return TRUE; } -void distort_mask(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const float *const in, - float *const out, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) +void distort_mask(struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + const float *const in, + float *const out, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) { dt_iop_borders_data_t *d = (dt_iop_borders_data_t *)piece->data; - const int border_tot_width = (piece->buf_out.width - piece->buf_in.width) * roi_in->scale; - const int border_tot_height = (piece->buf_out.height - piece->buf_in.height) * roi_in->scale; - const int border_size_t = border_tot_height * d->pos_v; - const int border_size_l = border_tot_width * d->pos_h; - const int border_in_x = MAX(border_size_l - roi_out->x, 0); - const int border_in_y = MAX(border_size_t - roi_out->y, 0); + dt_iop_border_positions_t binfo; + + dt_iop_setup_binfo(piece, roi_in, roi_out, d->pos_v, d->pos_h, + d->color, d->frame_color, d->frame_size, d->frame_offset, &binfo); + + const int border_in_x = binfo.border_in_x; + const int border_in_y = binfo.border_in_y; // fill the image with 0 so that the added border isn't part of the mask dt_iop_image_fill(out, 0.0f, roi_out->width, roi_out->height, 1); @@ -305,33 +443,63 @@ // 1st pass: how large would the output be, given this input roi? // this is always called with the full buffer before processing. -void modify_roi_out(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, dt_iop_roi_t *roi_out, +void modify_roi_out(struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + dt_iop_roi_t *roi_out, const dt_iop_roi_t *roi_in) { *roi_out = *roi_in; dt_iop_borders_data_t *d = (dt_iop_borders_data_t *)piece->data; const float size = fabsf(d->size); - if(size == 0) return; - if(d->aspect == DT_IOP_BORDERS_ASPECT_CONSTANT_VALUE) + const gboolean is_constant_border = d->aspect == DT_IOP_BORDERS_ASPECT_CONSTANT_VALUE; + + dt_iop_basis_t basis = d->basis; + if (basis == DT_IOP_BORDERS_BASIS_AUTO) { + // automatic/legacy/default behaviour: // for a constant border be sure to base the computation on the - // larger border, failing that the border will have a difference + // larger border, failing that the border will have a different // size depending on the orientation. + // for all other borders use the width. + basis = is_constant_border + ? DT_IOP_BORDERS_BASIS_LONGER : DT_IOP_BORDERS_BASIS_WIDTH; + } + if(basis == DT_IOP_BORDERS_BASIS_LONGER) + { + basis = roi_in->width > roi_in->height + ? DT_IOP_BORDERS_BASIS_WIDTH : DT_IOP_BORDERS_BASIS_HEIGHT; + } + else if(basis == DT_IOP_BORDERS_BASIS_SHORTER) + { + basis = roi_in->width < roi_in->height + ? DT_IOP_BORDERS_BASIS_WIDTH : DT_IOP_BORDERS_BASIS_HEIGHT; + } - if(roi_in->width > roi_in->height || !d->max_border_size) - { - // this means: relative to width and constant for height as well: - roi_out->width = roundf((float)roi_in->width / (1.0f - size)); - roi_out->height = roi_in->height + roi_out->width - roi_in->width; - } - else - { - // this means: relative to height and constant for width as well: - roi_out->height = roundf((float)roi_in->height / (1.0f - size)); - roi_out->width = roi_in->width + roi_out->height - roi_in->height; - } + assert(basis == DT_IOP_BORDERS_BASIS_WIDTH + || basis == DT_IOP_BORDERS_BASIS_HEIGHT); + + const int *basis_in = NULL, *other_in = NULL; + int *basis_out = NULL, *other_out = NULL; + + #define DT_IOP_BORDERS_ASSIGN(b, b_uc, o) \ + basis_in = &roi_in->b, basis_out = &roi_out->b, \ + other_in = &roi_in->o, other_out = &roi_out->o, \ + basis = DT_IOP_BORDERS_BASIS_ ## b_uc + #define DT_IOP_BORDERS_ASSIGN_width DT_IOP_BORDERS_ASSIGN(width, WIDTH, height) + #define DT_IOP_BORDERS_ASSIGN_height DT_IOP_BORDERS_ASSIGN(height, HEIGHT, width) + #define DT_IOP_BORDERS_ASSIGN_BASIS(basis) DT_IOP_BORDERS_ASSIGN_ ## basis + + if(basis == DT_IOP_BORDERS_BASIS_WIDTH) + DT_IOP_BORDERS_ASSIGN_BASIS(width); + else if(basis == DT_IOP_BORDERS_BASIS_HEIGHT) + DT_IOP_BORDERS_ASSIGN_BASIS(height); + + if(is_constant_border) + { + *basis_out = roundf((float)*basis_in / (1.0f - size)); + *other_out = *other_in + *basis_out - *basis_in; } else { @@ -351,16 +519,27 @@ else if(d->aspect_orient == DT_IOP_BORDERS_ASPECT_ORIENTATION_PORTRAIT) aspect = (aspect > 1.0f) ? 1.0f / aspect : aspect; - // min width: constant ratio based on size: - roi_out->width = roundf((float)roi_in->width / (1.0f - size)); - // corresponding height: determined by aspect ratio: - roi_out->height = roundf((float)roi_out->width / aspect); - // insane settings used? - if(roi_out->height < (float)roi_in->height / (1.0f - size)) - { - roi_out->height = roundf((float)roi_in->height / (1.0f - size)); - roi_out->width = roundf((float)roi_out->height * aspect); - } + // first determine how large the border should be, + float border_width = (float)*basis_in * (1.0f / (1.0f - size) - 1.0f); + + // then make sure we add that amount to the shorter side, + if (basis == DT_IOP_BORDERS_BASIS_WIDTH && image_aspect < 1.0f) + DT_IOP_BORDERS_ASSIGN_BASIS(height); + else if (basis == DT_IOP_BORDERS_BASIS_HEIGHT && image_aspect > 1.0f) + DT_IOP_BORDERS_ASSIGN_BASIS(width); + + // but add it to the longer side instead, + // if the selected aspect ratio would cut off the image. + if (basis == DT_IOP_BORDERS_BASIS_WIDTH && image_aspect < aspect) + DT_IOP_BORDERS_ASSIGN_BASIS(height); + else if (basis == DT_IOP_BORDERS_BASIS_HEIGHT && image_aspect > aspect) + DT_IOP_BORDERS_ASSIGN_BASIS(width); + + if (basis == DT_IOP_BORDERS_BASIS_HEIGHT) + aspect = 1.0f / aspect; + + *basis_out = roundf((float)*basis_in + border_width); + *other_out = roundf((float)*basis_out / aspect); } // sanity check. @@ -370,8 +549,10 @@ } // 2nd pass: which roi would this operation need as input to fill the given output region? -void modify_roi_in(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, - const dt_iop_roi_t *roi_out, dt_iop_roi_t *roi_in) +void modify_roi_in(struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + const dt_iop_roi_t *roi_out, + dt_iop_roi_t *roi_in) { dt_iop_borders_data_t *d = (dt_iop_borders_data_t *)piece->data; *roi_in = *roi_out; @@ -404,182 +585,29 @@ // a division by zero. } -struct border_positions_t -{ - dt_aligned_pixel_t bcolor; - dt_aligned_pixel_t flcolor; - int border_top; // 0..bt is rows of top border outside the frameline - int fl_top; //bt..ft is the top frameline - int image_top; //ft..it is the top border inside the frameline - int border_left; // 0..bl is columns of left border outside the frameline - int fl_left; //bl..fl is the left frameline - int image_left; //fl..il is the left border inside the frameline - int image_right; //il..ir is the actual image area - int fl_right; //ir..fr is the right border inside the frameline - int border_right; //fr..br is the right frameeline - int width; //br..width is the right border outside the frameline - int image_bot; //it..ib is the actual image area - int fl_bot; //ib..fb is the bottom border inside the frameline - int border_bot; //fb..bt is the frameline - int height; //bt..height is the bottom border outside the frameline - int stride; // width of input roi -}; - -// this will be called from inside an OpenMP parallel section, so no need to parallelize further -static inline void set_pixels(float *buf, const dt_aligned_pixel_t color, const int npixels) -{ - for(int i = 0; i < npixels; i++) - { - copy_pixel_nontemporal(buf + 4*i, color); - } -} - -// this will be called from inside an OpenMP parallel section, so no need to parallelize further -static inline void copy_pixels(float *out, const float *const in, const int npixels) +void process(struct dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + const void *const ivoid, + void *const ovoid, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) { - for(int i = 0; i < npixels; i++) - { - copy_pixel_nontemporal(out + 4*i, in + 4*i); - } -} + const dt_iop_borders_data_t *const d = (dt_iop_borders_data_t *)piece->data; -void copy_image_with_border(float *out, const float *const in, const struct border_positions_t *binfo) -{ - const int image_width = binfo->image_right - binfo->image_left; -#ifdef _OPENMP -#pragma omp parallel for default(none) \ - dt_omp_firstprivate(in, out, binfo, image_width) \ - schedule(static) -#endif - for(size_t row = 0; row < binfo->height; row++) - { - float *outrow = out + 4 * row * binfo->width; - if(row < binfo->border_top || row >= binfo->border_bot) - { - // top/bottom border outside the frameline: entirely the border color - set_pixels(outrow, binfo->bcolor, binfo->width); - } - else if(row < binfo->fl_top || row >= binfo->fl_bot) - { - // top/bottom frameline - set_pixels(outrow, binfo->bcolor, binfo->border_left); - set_pixels(outrow + 4*binfo->border_left, binfo->flcolor, binfo->border_right - binfo->border_left); - set_pixels(outrow + 4*binfo->border_right, binfo->bcolor, binfo->width - binfo->border_right); - } - else if(row < binfo->image_top || row >= binfo->image_bot) - { - // top/bottom border inside the frameline - set_pixels(outrow, binfo->bcolor, binfo->border_left); - set_pixels(outrow + 4*binfo->border_left, binfo->flcolor, binfo->fl_left - binfo->border_left); - set_pixels(outrow + 4*binfo->fl_left, binfo->bcolor, binfo->fl_right - binfo->fl_left); - set_pixels(outrow + 4*binfo->fl_right, binfo->flcolor, binfo->border_right - binfo->fl_right); - set_pixels(outrow + 4*binfo->border_right, binfo->bcolor, binfo->width - binfo->border_right); - } - else - { - // image area: set left border (w/optional frame line), copy image row, set right border (w/optional frame line) - // set outer border - set_pixels(outrow, binfo->bcolor, binfo->border_left); - if(binfo->image_left > binfo->border_left) - { - // we have a frameline, so set it and the inner border - set_pixels(outrow + 4*binfo->border_left, binfo->flcolor, binfo->fl_left - binfo->border_left); - set_pixels(outrow + 4*binfo->fl_left, binfo->bcolor, binfo->image_left - binfo->fl_left); - } - // copy image row - copy_pixels(outrow + 4*binfo->image_left, in + 4 * (row - binfo->image_top) * binfo->stride, image_width); - // set right border - set_pixels(outrow + 4*binfo->image_right, binfo->bcolor, binfo->fl_right - binfo->image_right); - if(binfo->width > binfo->fl_right) - { - // we have a frameline, so set it and the outer border - set_pixels(outrow + 4*binfo->fl_right, binfo->flcolor, binfo->border_right - binfo->fl_right); - set_pixels(outrow + 4*binfo->border_right, binfo->bcolor, binfo->width - binfo->border_right); - } - } - } - // ensure that all streaming writes complete before we attempt to read from the output buffer - dt_omploop_sfence(); -} + dt_iop_border_positions_t binfo; -void process(struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, - void *const ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) -{ - const dt_iop_borders_data_t *const d = (dt_iop_borders_data_t *)piece->data; + dt_iop_setup_binfo(piece, roi_in, roi_out, d->pos_v, d->pos_h, + d->color, d->frame_color, d->frame_size, d->frame_offset, &binfo); - const int border_tot_width = (piece->buf_out.width - piece->buf_in.width) * roi_in->scale; - const int border_tot_height = (piece->buf_out.height - piece->buf_in.height) * roi_in->scale; - const int border_size_t = border_tot_height * d->pos_v; - const int border_size_b = border_tot_height - border_size_t; - const int border_size_l = border_tot_width * d->pos_h; - const int border_size_r = border_tot_width - border_size_l; - const int border_in_x = MAX(border_size_l - roi_out->x, 0); - const int border_in_y = MAX(border_size_t - roi_out->y, 0); - - // compute frame line parameters - const int border_min_size = MIN(MIN(border_size_t, border_size_b), MIN(border_size_l, border_size_r)); - const int frame_size = border_min_size * d->frame_size; - - const int b_in_x = CLAMP(border_in_x, 0, roi_out->width - 1); - struct border_positions_t binfo = - { .bcolor = { d->color[0], d->color[1], d->color[2], 1.0f }, - .flcolor = { d->frame_color[0], d->frame_color[1], d->frame_color[2], 1.0f }, - .border_top = border_in_y, - .fl_top = border_in_y, - .image_top = border_in_y, - .border_left = b_in_x, - .fl_left = b_in_x, - .image_left = b_in_x, - .image_right = b_in_x + roi_in->width, - .fl_right = roi_out->width, - .border_right = roi_out->width, - .width = roi_out->width, - .image_bot = border_in_y + roi_in->height, - .fl_bot = roi_out->height, - .border_bot = roi_out->height, - .height = roi_out->height, - .stride = roi_in->width - }; - if(frame_size > 0) - { - const int image_lx = border_size_l - roi_out->x; - const int image_ty = border_size_t - roi_out->y; - const int frame_space = border_min_size - frame_size; - const int frame_offset = frame_space * d->frame_offset; - const int frame_tl_in_x = MAX(border_in_x - frame_offset, 0); - const int frame_tl_out_x = MAX(frame_tl_in_x - frame_size, 0); - const int frame_tl_in_y = MAX(border_in_y - frame_offset, 0); - const int frame_tl_out_y = MAX(frame_tl_in_y - frame_size, 0); - binfo.border_top = frame_tl_out_y; - binfo.fl_top = frame_tl_in_y; - binfo.border_left = CLAMP(frame_tl_out_x, 0, roi_out->width); - binfo.fl_left = CLAMP(frame_tl_in_x, 0, roi_out->width); - const int frame_in_width = floor((piece->buf_in.width * roi_in->scale) + frame_offset * 2); - const int frame_in_height = floor((piece->buf_in.height * roi_in->scale) + frame_offset * 2); - const int frame_out_width = frame_in_width + frame_size * 2; - const int frame_out_height = frame_in_height + frame_size * 2; - const int frame_br_in_x = CLAMP(image_lx - frame_offset + frame_in_width - 1, 0, roi_out->width - 1); - const int frame_br_in_y = CLAMP(image_ty - frame_offset + frame_in_height - 1, 0, roi_out->height - 1); - // ... if 100% frame_offset we ensure frame_line "stick" the out border - const int frame_br_out_x - = (d->frame_offset == 1.0f && (border_min_size == MIN(border_size_l, border_size_r))) - ? (roi_out->width) - : CLAMP(image_lx - frame_offset - frame_size + frame_out_width - 1, 0, roi_out->width - 1); - const int frame_br_out_y - = (d->frame_offset == 1.0f && (border_min_size == MIN(border_size_t, border_size_b))) - ? (roi_out->height) - : CLAMP(image_ty - frame_offset - frame_size + frame_out_height - 1, 0, roi_out->height - 1); - binfo.fl_right = frame_br_in_x + 1; // need end+1 for these coordinates - binfo.border_right = frame_br_out_x + 1; - binfo.fl_bot = frame_br_in_y + 1; - binfo.border_bot = frame_br_out_y + 1; - } - copy_image_with_border((float*)ovoid, (const float*)ivoid, &binfo); + dt_iop_copy_image_with_border((float*)ovoid, (const float*)ivoid, &binfo); } #ifdef HAVE_OPENCL -int process_cl(struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, cl_mem dev_in, cl_mem dev_out, - const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) +int process_cl(struct dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + cl_mem dev_in, cl_mem dev_out, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) { dt_iop_borders_data_t *d = (dt_iop_borders_data_t *)piece->data; dt_iop_borders_global_data_t *gd = (dt_iop_borders_global_data_t *)self->global_data; @@ -587,86 +615,61 @@ cl_int err = DT_OPENCL_DEFAULT_ERROR; const int devid = piece->pipe->devid; + dt_iop_border_positions_t binfo; + + dt_iop_setup_binfo(piece, roi_in, roi_out, d->pos_v, d->pos_h, + d->color, d->frame_color, d->frame_size, d->frame_offset, &binfo); + const int width = roi_out->width; const int height = roi_out->height; size_t sizes[2] = { ROUNDUPDWD(width, devid), ROUNDUPDHT(height, devid) }; - const int border_tot_width = (piece->buf_out.width - piece->buf_in.width) * roi_in->scale; - const int border_tot_height = (piece->buf_out.height - piece->buf_in.height) * roi_in->scale; - const int border_size_t = border_tot_height * d->pos_v; - const int border_size_b = border_tot_height - border_size_t; - const int border_size_l = border_tot_width * d->pos_h; - const int border_size_r = border_tot_width - border_size_l; - const int border_in_x = MAX(border_size_l - roi_out->x, 0); - const int border_in_y = MAX(border_size_t - roi_out->y, 0); - // ----- Filling border const float col[4] = { d->color[0], d->color[1], d->color[2], 1.0f }; const int zero = 0; - dt_opencl_set_kernel_args(devid, gd->kernel_borders_fill, 0, CLARG(dev_out), CLARG(zero), CLARG(zero), - CLARG(width), CLARG(height), CLARG(col)); + dt_opencl_set_kernel_args(devid, gd->kernel_borders_fill, + 0, CLARG(dev_out), CLARG(zero), CLARG(zero), + CLARG(width), CLARG(height), CLARG(col)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_borders_fill, sizes); if(err != CL_SUCCESS) goto error; - // ----- Frame line - const int border_min_size = MIN(MIN(border_size_t, border_size_b), MIN(border_size_l, border_size_r)); - const int frame_size = border_min_size * d->frame_size; - if(frame_size != 0) - { - const float col_frame[4] = { d->frame_color[0], d->frame_color[1], d->frame_color[2], 1.0f }; - const int image_lx = border_size_l - roi_out->x; - const int image_ty = border_size_t - roi_out->y; - const int frame_space = border_min_size - frame_size; - const int frame_offset = frame_space * d->frame_offset; - const int frame_tl_in_x = MAX(border_in_x - frame_offset, 0); - const int frame_tl_out_x = MAX(frame_tl_in_x - frame_size, 0); - const int frame_tl_in_y = MAX(border_in_y - frame_offset, 0); - const int frame_tl_out_y = MAX(frame_tl_in_y - frame_size, 0); - const int frame_in_width = floor((piece->buf_in.width * roi_in->scale) + frame_offset * 2); - const int frame_in_height = floor((piece->buf_in.height * roi_in->scale) + frame_offset * 2); - const int frame_out_width = frame_in_width + frame_size * 2; - const int frame_out_height = frame_in_height + frame_size * 2; - const int frame_br_in_x = CLAMP(image_lx - frame_offset + frame_in_width - 1, 0, roi_out->width - 1); - const int frame_br_in_y = CLAMP(image_ty - frame_offset + frame_in_height - 1, 0, roi_out->height - 1); - // ... if 100% frame_offset we ensure frame_line "stick" the out border - const int frame_br_out_x - = (d->frame_offset == 1.0f && (border_min_size == MIN(border_size_l, border_size_r))) - ? (roi_out->width) - : CLAMP(image_lx - frame_offset - frame_size + frame_out_width - 1, 0, roi_out->width); - const int frame_br_out_y - = (d->frame_offset == 1.0f && (border_min_size == MIN(border_size_t, border_size_b))) - ? (roi_out->height) - : CLAMP(image_ty - frame_offset - frame_size + frame_out_height - 1, 0, roi_out->height); - - const int roi_frame_in_width = frame_br_in_x - frame_tl_in_x; - const int roi_frame_in_height = frame_br_in_y - frame_tl_in_y; - const int roi_frame_out_width = frame_br_out_x - frame_tl_out_x; - const int roi_frame_out_height = frame_br_out_y - frame_tl_out_y; - - dt_opencl_set_kernel_args(devid, gd->kernel_borders_fill, 0, CLARG(dev_out), CLARG(frame_tl_out_x), - CLARG(frame_tl_out_y), CLARG(roi_frame_out_width), CLARG(roi_frame_out_height), CLARG(col_frame)); + if(binfo.frame_size != 0) + { + const float col_frame[4] = { d->frame_color[0], + d->frame_color[1], + d->frame_color[2], 1.0f }; + + const int roi_frame_in_width = binfo.frame_br_in_x - binfo.frame_tl_in_x; + const int roi_frame_in_height = binfo.frame_br_in_y - binfo.frame_tl_in_y; + const int roi_frame_out_width = binfo.frame_br_out_x - binfo.frame_tl_out_x; + const int roi_frame_out_height = binfo.frame_br_out_y - binfo.frame_tl_out_y; + + dt_opencl_set_kernel_args(devid, gd->kernel_borders_fill, 0, + CLARG(dev_out), + CLARG(binfo.frame_tl_out_x), CLARG(binfo.frame_tl_out_y), + CLARG(roi_frame_out_width), CLARG(roi_frame_out_height), + CLARG(col_frame)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_borders_fill, sizes); if(err != CL_SUCCESS) goto error; - dt_opencl_set_kernel_args(devid, gd->kernel_borders_fill, 0, CLARG(dev_out), CLARG(frame_tl_in_x), - CLARG(frame_tl_in_y), CLARG(roi_frame_in_width), CLARG(roi_frame_in_height), CLARG(col)); + dt_opencl_set_kernel_args(devid, gd->kernel_borders_fill, 0, + CLARG(dev_out), + CLARG(binfo.frame_tl_in_x), CLARG(binfo.frame_tl_in_y), + CLARG(roi_frame_in_width), CLARG(roi_frame_in_height), + CLARG(col)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_borders_fill, sizes); if(err != CL_SUCCESS) goto error; } size_t iorigin[] = { 0, 0, 0 }; - size_t oorigin[] = { border_in_x, border_in_y, 0 }; - size_t region[] = { roi_in->width, roi_in->height, 1 }; + size_t oorigin[] = { binfo.border_in_x, binfo.border_in_y, 0 }; + size_t region[] = { roi_in->width, roi_in->height, 1 }; // copy original input from dev_in -> dev_out as starting point err = dt_opencl_enqueue_copy_image(devid, dev_in, dev_out, iorigin, oorigin, region); - if(err != CL_SUCCESS) goto error; - - return TRUE; error: - dt_print(DT_DEBUG_OPENCL, "[opencl_borders] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif @@ -690,7 +693,9 @@ } -void commit_params(struct dt_iop_module_t *self, dt_iop_params_t *p1, dt_dev_pixelpipe_t *pipe, +void commit_params(struct dt_iop_module_t *self, + dt_iop_params_t *p1, + dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) { dt_iop_borders_params_t *p = (dt_iop_borders_params_t *)p1; @@ -698,12 +703,16 @@ memcpy(d, p, sizeof(dt_iop_borders_params_t)); } -void init_pipe(struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +void init_pipe(struct dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { piece->data = malloc(sizeof(dt_iop_borders_data_t)); } -void cleanup_pipe(struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +void cleanup_pipe(struct dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { free(piece->data); piece->data = NULL; @@ -723,7 +732,8 @@ 0.0f, 0.5f, { 0.0f, 0.0f, 0.0f }, - TRUE }; + TRUE, + DT_IOP_BORDERS_BASIS_AUTO }; dt_gui_presets_add_generic(_("15:10 postcard white"), self->op, self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_NONE); @@ -733,7 +743,8 @@ self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_NONE); } -void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece) +void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, + dt_dev_pixelpipe_t *pipe) { dt_iop_borders_gui_data_t *g = (dt_iop_borders_gui_data_t *)self->gui_data; dt_iop_borders_params_t *p = (dt_iop_borders_params_t *)self->params; @@ -777,19 +788,14 @@ dt_dev_add_history_item(darktable.develop, self, TRUE); } -static void aspect_changed(GtkWidget *combo, dt_iop_module_t *self) +static void aspect_changed(GtkWidget *combo, + dt_iop_module_t *self) { dt_iop_borders_gui_data_t *g = (dt_iop_borders_gui_data_t *)self->gui_data; dt_iop_borders_params_t *p = (dt_iop_borders_params_t *)self->params; const int which = dt_bauhaus_combobox_get(combo); - const char *text = dt_bauhaus_combobox_get_text(combo); - if(which == dt_bauhaus_combobox_length(combo)-1) - { - g_strlcpy(p->aspect_text, text, sizeof(p->aspect_text)); - } - else if(which < DT_IOP_BORDERS_ASPECT_COUNT) + if(which < DT_IOP_BORDERS_ASPECT_COUNT) { - g_strlcpy(p->aspect_text, text, sizeof(p->aspect_text)); p->aspect = _aspect_ratios[which]; ++darktable.gui->reset; dt_bauhaus_slider_set(g->aspect_slider,p->aspect); @@ -799,19 +805,14 @@ dt_dev_add_history_item(darktable.develop, self, TRUE); } -static void position_h_changed(GtkWidget *combo, dt_iop_module_t *self) +static void position_h_changed(GtkWidget *combo, + dt_iop_module_t *self) { dt_iop_borders_gui_data_t *g = (dt_iop_borders_gui_data_t *)self->gui_data; dt_iop_borders_params_t *p = (dt_iop_borders_params_t *)self->params; const int which = dt_bauhaus_combobox_get(combo); - const char *text = dt_bauhaus_combobox_get_text(combo); - if(which == dt_bauhaus_combobox_length(combo)-1) + if(which < DT_IOP_BORDERS_POSITION_H_COUNT) { - g_strlcpy(p->aspect_text, text, sizeof(p->aspect_text)); - } - else if(which < DT_IOP_BORDERS_POSITION_H_COUNT) - { - g_strlcpy(p->pos_h_text, text, sizeof(p->pos_h_text)); p->pos_h = _pos_h_ratios[which]; ++darktable.gui->reset; dt_bauhaus_slider_set(g->pos_h_slider,p->pos_h); @@ -821,19 +822,14 @@ dt_dev_add_history_item(darktable.develop, self, TRUE); } -static void position_v_changed(GtkWidget *combo, dt_iop_module_t *self) +static void position_v_changed(GtkWidget *combo, + dt_iop_module_t *self) { dt_iop_borders_gui_data_t *g = (dt_iop_borders_gui_data_t *)self->gui_data; dt_iop_borders_params_t *p = (dt_iop_borders_params_t *)self->params; const int which = dt_bauhaus_combobox_get(combo); - const char *text = dt_bauhaus_combobox_get_text(combo); - if(which == dt_bauhaus_combobox_length(combo)-1) - { - g_strlcpy(p->aspect_text, text, sizeof(p->aspect_text)); - } - else if(which < DT_IOP_BORDERS_POSITION_V_COUNT) + if(which < DT_IOP_BORDERS_POSITION_V_COUNT) { - g_strlcpy(p->pos_v_text, text, sizeof(p->pos_v_text)); p->pos_v = _pos_v_ratios[which]; ++darktable.gui->reset; dt_bauhaus_slider_set(g->pos_v_slider,p->pos_v); @@ -843,7 +839,9 @@ dt_dev_add_history_item(darktable.develop, self, TRUE); } -void gui_changed(dt_iop_module_t *self, GtkWidget *w, void *previous) +void gui_changed(dt_iop_module_t *self, + GtkWidget *w, + void *previous) { dt_iop_borders_gui_data_t *g = (dt_iop_borders_gui_data_t *)self->gui_data; dt_iop_borders_params_t *p = (dt_iop_borders_params_t *)self->params; @@ -858,7 +856,7 @@ } dt_bauhaus_combobox_set(g->aspect, k); } - else if(!w || w == g->pos_h_slider) + if(!w || w == g->pos_h_slider) { for(k = 0; k < DT_IOP_BORDERS_POSITION_H_COUNT; k++) { @@ -867,7 +865,7 @@ } dt_bauhaus_combobox_set(g->pos_h, k); } - else if(!w || w == g->pos_v_slider) + if(!w || w == g->pos_v_slider) { for(k = 0; k < DT_IOP_BORDERS_POSITION_V_COUNT; k++) { @@ -878,7 +876,8 @@ } } -static void colorpick_color_set(GtkColorButton *widget, dt_iop_module_t *self) +static void colorpick_color_set(GtkColorButton *widget, + dt_iop_module_t *self) { if(darktable.gui->reset) return; dt_iop_borders_params_t *p = (dt_iop_borders_params_t *)self->params; @@ -896,7 +895,8 @@ } -static void frame_colorpick_color_set(GtkColorButton *widget, dt_iop_module_t *self) +static void frame_colorpick_color_set(GtkColorButton *widget, + dt_iop_module_t *self) { if(darktable.gui->reset) return; dt_iop_borders_params_t *p = (dt_iop_borders_params_t *)self->params; @@ -921,12 +921,19 @@ gui_changed(self, NULL, NULL); // ----- Border Color - GdkRGBA c = (GdkRGBA){.red = p->color[0], .green = p->color[1], .blue = p->color[2], .alpha = 1.0 }; + GdkRGBA c = (GdkRGBA){.red = p->color[0], + .green = p->color[1], + .blue = p->color[2], + .alpha = 1.0 }; + gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(g->colorpick), &c); // ----- Frame Color GdkRGBA fc = (GdkRGBA){ - .red = p->frame_color[0], .green = p->frame_color[1], .blue = p->frame_color[2], .alpha = 1.0 + .red = p->frame_color[0], + .green = p->frame_color[1], + .blue = p->frame_color[2], + .alpha = 1.0 }; gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(g->frame_colorpick), &fc); } @@ -936,13 +943,19 @@ dt_iop_borders_gui_data_t *g = IOP_GUI_ALLOC(borders); dt_iop_borders_params_t *p = (dt_iop_borders_params_t *)self->default_params; + g->basis = dt_bauhaus_combobox_from_params(self, "basis"); + gtk_widget_set_tooltip_text(g->basis, + _("which dimension to use for the size calculation")); + g->size = dt_bauhaus_slider_from_params(self, "size"); dt_bauhaus_slider_set_digits(g->size, 4); dt_bauhaus_slider_set_format(g->size, "%"); - gtk_widget_set_tooltip_text(g->size, _("size of the border in percent of the full image")); + gtk_widget_set_tooltip_text(g->size, + _("size of the border in percent of the chosen basis")); DT_BAUHAUS_COMBOBOX_NEW_FULL(g->aspect, self, NULL, N_("aspect"), - _("select the aspect ratio (right click on slider below to type your own w:h)"), + _("select the aspect ratio\n" + "(right click on slider below to type your own w:h)"), 0, aspect_changed, self, N_("image"), N_("3:1"), @@ -965,32 +978,33 @@ N_("square"), N_("constant border"), N_("custom...")); - dt_bauhaus_combobox_set_editable(g->aspect, 0); gtk_box_pack_start(GTK_BOX(self->widget), g->aspect, TRUE, TRUE, 0); g->aspect_slider = dt_bauhaus_slider_from_params(self, "aspect"); - gtk_widget_set_tooltip_text(g->aspect_slider, _("set the custom aspect ratio (right click to enter number or w:h)")); + gtk_widget_set_tooltip_text(g->aspect_slider, _("set the custom aspect ratio\n" + "(right click to enter number or w:h)")); g->aspect_orient = dt_bauhaus_combobox_from_params(self, "aspect_orient"); - gtk_widget_set_tooltip_text(g->aspect_orient, _("aspect ratio orientation of the image with border")); + gtk_widget_set_tooltip_text(g->aspect_orient, + _("aspect ratio orientation of the image with border")); DT_BAUHAUS_COMBOBOX_NEW_FULL(g->pos_h, self, NULL, N_("horizontal position"), - _("select the horizontal position ratio relative to top " - "or right click and type your own (y:h)"), + _("select the horizontal position ratio relative to top\n" + "(right click on slider below to type your own x:w)"), 0, position_h_changed, self, - N_("center"), N_("1/3"), N_("3/8"), N_("5/8"), N_("2/3"), N_("custom...")); - dt_bauhaus_combobox_set_editable(g->pos_h, 1); + N_("center"), N_("1/3"), N_("3/8"), + N_("5/8"), N_("2/3"), N_("custom...")); gtk_box_pack_start(GTK_BOX(self->widget), g->pos_h, TRUE, TRUE, 0); g->pos_h_slider = dt_bauhaus_slider_from_params(self, "pos_h"); gtk_widget_set_tooltip_text(g->pos_h_slider, _("custom horizontal position")); DT_BAUHAUS_COMBOBOX_NEW_FULL(g->pos_v, self, NULL, N_("vertical position"), - _("select the vertical position ratio relative to left " - "or right click and type your own (x:w)"), + _("select the vertical position ratio relative to left\n" + "(right click on slider below to type your own y:h)"), 0, position_v_changed, self, - N_("center"), N_("1/3"), N_("3/8"), N_("5/8"), N_("2/3"), N_("custom...")); - dt_bauhaus_combobox_set_editable(g->pos_v, 1); + N_("center"), N_("1/3"), N_("3/8"), + N_("5/8"), N_("2/3"), N_("custom...")); gtk_box_pack_start(GTK_BOX(self->widget), g->pos_v, TRUE, TRUE, 0); g->pos_v_slider = dt_bauhaus_slider_from_params(self, "pos_v"); @@ -999,14 +1013,19 @@ g->frame_size = dt_bauhaus_slider_from_params(self, "frame_size"); dt_bauhaus_slider_set_digits(g->frame_size, 4); dt_bauhaus_slider_set_format(g->frame_size, "%"); - gtk_widget_set_tooltip_text(g->frame_size, _("size of the frame line in percent of min border width")); + gtk_widget_set_tooltip_text(g->frame_size, + _("size of the frame line in percent of min border width")); g->frame_offset = dt_bauhaus_slider_from_params(self, "frame_offset"); dt_bauhaus_slider_set_digits(g->frame_offset, 4); dt_bauhaus_slider_set_format(g->frame_offset, "%"); - gtk_widget_set_tooltip_text(g->frame_offset, _("offset of the frame line beginning on picture side")); + gtk_widget_set_tooltip_text(g->frame_offset, + _("offset of the frame line beginning on picture side")); - GdkRGBA color = (GdkRGBA){.red = p->color[0], .green = p->color[1], .blue = p->color[2], .alpha = 1.0 }; + GdkRGBA color = (GdkRGBA){.red = p->color[0], + .green = p->color[1], + .blue = p->color[2], + .alpha = 1.0 }; GtkWidget *label, *box; @@ -1016,11 +1035,14 @@ g->colorpick = gtk_color_button_new_with_rgba(&color); gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(g->colorpick), FALSE); gtk_color_button_set_title(GTK_COLOR_BUTTON(g->colorpick), _("select border color")); - g_signal_connect(G_OBJECT(g->colorpick), "color-set", G_CALLBACK(colorpick_color_set), self); + g_signal_connect(G_OBJECT(g->colorpick), "color-set", + G_CALLBACK(colorpick_color_set), self); gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(g->colorpick), FALSE, TRUE, 0); g->border_picker = dt_color_picker_new(self, DT_COLOR_PICKER_POINT, box); - gtk_widget_set_tooltip_text(GTK_WIDGET(g->border_picker), _("pick border color from image")); - dt_action_define_iop(self, N_("pickers"), N_("border color"), g->border_picker, &dt_action_def_toggle); + gtk_widget_set_tooltip_text(GTK_WIDGET(g->border_picker), + _("pick border color from image")); + dt_action_define_iop(self, N_("pickers"), N_("border color"), + g->border_picker, &dt_action_def_toggle); gtk_box_pack_start(GTK_BOX(self->widget), box, TRUE, TRUE, 0); box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); @@ -1028,27 +1050,19 @@ gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 0); g->frame_colorpick = gtk_color_button_new_with_rgba(&color); gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(g->frame_colorpick), FALSE); - gtk_color_button_set_title(GTK_COLOR_BUTTON(g->frame_colorpick), _("select frame line color")); - g_signal_connect(G_OBJECT(g->frame_colorpick), "color-set", G_CALLBACK(frame_colorpick_color_set), self); + gtk_color_button_set_title(GTK_COLOR_BUTTON(g->frame_colorpick), + _("select frame line color")); + g_signal_connect(G_OBJECT(g->frame_colorpick), "color-set", + G_CALLBACK(frame_colorpick_color_set), self); gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(g->frame_colorpick), FALSE, TRUE, 0); g->frame_picker = dt_color_picker_new(self, DT_COLOR_PICKER_POINT, box); - gtk_widget_set_tooltip_text(GTK_WIDGET(g->frame_picker), _("pick frame line color from image")); - dt_action_define_iop(self, N_("pickers"), N_("frame line color"), g->frame_picker, &dt_action_def_toggle); + gtk_widget_set_tooltip_text(GTK_WIDGET(g->frame_picker), + _("pick frame line color from image")); + dt_action_define_iop(self, N_("pickers"), N_("frame line color"), + g->frame_picker, &dt_action_def_toggle); gtk_box_pack_start(GTK_BOX(self->widget), box, TRUE, TRUE, 0); } - -void init(dt_iop_module_t *self) -{ - dt_iop_default_init(self); - - dt_iop_borders_params_t *defaults = self->default_params; - - g_strlcpy(defaults->aspect_text, "constant border", sizeof(defaults->aspect_text)); - g_strlcpy(defaults->pos_h_text, "1/2", sizeof(defaults->pos_h_text)); - g_strlcpy(defaults->pos_v_text, "1/2", sizeof(defaults->pos_v_text)); -} - // clang-format off // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py // vim: shiftwidth=2 expandtab tabstop=2 cindent diff -Nru darktable-4.4.2/src/iop/cacorrect.c darktable-4.6.1/src/iop/cacorrect.c --- darktable-4.4.2/src/iop/cacorrect.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/cacorrect.c 2024-02-16 17:31:09.000000000 +0000 @@ -15,6 +15,12 @@ You should have received a copy of the GNU General Public License along with darktable. If not, see <http://www.gnu.org/licenses/>. */ + +// fast-math changes results enough to fail the integration test, and isn't even any faster... +#ifdef __GNUC__ +#pragma GCC optimize ("no-fast-math") +#endif + #ifdef HAVE_CONFIG_H #include "config.h" #endif @@ -36,7 +42,7 @@ // and includes version information about compile-time dt DT_MODULE_INTROSPECTION(2, dt_iop_cacorrect_params_t) -#pragma GCC diagnostic ignored "-Wshadow" +//#pragma GCC diagnostic ignored "-Wshadow" typedef enum dt_iop_cacorrect_multi_t { @@ -61,7 +67,7 @@ typedef struct dt_iop_cacorrect_data_t { - uint32_t avoidshift; + gboolean avoidshift; uint32_t iterations; } dt_iop_cacorrect_data_t; @@ -92,26 +98,44 @@ return IOP_FLAGS_ONE_INSTANCE; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RAW; } -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, const int new_version) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) { - if(old_version == 1 && new_version == 2) + typedef struct dt_iop_cacorrect_params_v2_t + { + gboolean avoidshift; + dt_iop_cacorrect_multi_t iterations; + } dt_iop_cacorrect_params_v2_t; + + if(old_version == 1) { - dt_iop_cacorrect_params_t *n = (dt_iop_cacorrect_params_t *)new_params; + dt_iop_cacorrect_params_v2_t *n = + (dt_iop_cacorrect_params_v2_t *)malloc(sizeof(dt_iop_cacorrect_params_v2_t)); n->avoidshift = FALSE; n->iterations = 1; + + *new_params = n; + *new_params_size = sizeof(dt_iop_cacorrect_params_v2_t); + *new_version = 2; return 0; } return 1; } /*================================================================================== - * begin raw therapee code, hg checkout of march 09, 2016 branch master. + * begin raw therapee code, hg initial checkout of march 09, 2016 branch master. + * avoid colorshift code has been added later *==================================================================================*/ //////////////////////////////////////////////////////////////// @@ -138,7 +162,7 @@ // //////////////////////////////////////////////////////////////// //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -static gboolean _LinEqSolve(int nDim, double *pfMatr, double *pfVect, double *pfSolution) +static gboolean _LinEqSolve(ssize_t nDim, double *pfMatr, double *pfVect, double *pfSolution) { //============================================================================== // return 1 if system not solving, 0 if system solved @@ -156,7 +180,7 @@ double fMaxElem; double fAcc; - int i, j, k, m; + ssize_t i, j, k, m; for(k = 0; k < (nDim - 1); k++) { // base row of matrix @@ -225,16 +249,6 @@ // end of linear equation solver //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -static inline void _pixsort(float *a, float *b) -{ - if(*a > *b) - { - float temp = *a; - *a = *b; - *b = temp; - } -} - void process( struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, @@ -252,7 +266,9 @@ dt_iop_cacorrect_data_t *d = (dt_iop_cacorrect_data_t *)piece->data; - const gboolean avoidshift = d->avoidshift; + // the colorshift avoiding requires non-downscaled data for sure so we + // don't do this for preview + const gboolean avoidshift = d->avoidshift && !(piece->pipe->type & DT_DEV_PIXELPIPE_PREVIEW); const int iterations = d->iterations; // Because we can't break parallel processing, we need a switch do handle the errors @@ -261,48 +277,52 @@ float *redfactor = NULL; float *bluefactor = NULL; float *oldraw = NULL; - char *buffer1 = NULL; + float *blockwt = NULL; float *RawDataTmp = NULL; float *Gtmp = NULL; - float *out = dt_alloc_align_float(roi_in->width * roi_in->height); + const size_t width = roi_in->width; + const size_t height = roi_in->height; + const size_t ibsize = dt_round_size(width, 16) * (height + 2); + + const size_t h_width = (width + 1) / 2; + const size_t h_height = (height + 1) / 2; + const size_t h_bsize = dt_round_size(h_width, 16) * (h_height + 2); + + float *out = dt_alloc_align_float(ibsize); if(!out) { - dt_iop_copy_image_roi(ovoid, ivoid, piece->colors, roi_in, roi_out, 0); + dt_iop_copy_image_roi(ovoid, ivoid, piece->colors, roi_in, roi_out); dt_print(DT_DEBUG_ALWAYS,"[cacorrect] out of memory, skipping\n"); return; } - dt_iop_image_copy(out, input, roi_in->width * roi_in->height); + + const float scaler = dt_iop_get_processed_maximum(piece); + dt_iop_image_scaled_copy(out, input, 1.0f / scaler, width, height, 1); if(run_fast) goto writeout; - const int width = roi_in->width; - const int height = roi_in->height; - const int h_width = (width + 1) / 2; - const int h_height = (height + 1) / 2; const float *const in = out; - const float caautostrength = 4.0f; + #define caautostrength 4.0f + #define ts 128 // multiple of 16 for aligned buffers + #define tsh (ts / 2) + #define v1 (ts) + #define v2 (2 * ts) + #define v3 (3 * ts) + #define v4 (4 * ts) + #define border 8 + #define border2 (2 * border) + #define borderh (border / 2) // multithreaded and partly vectorized by Ingo Weyrich - const int ts = 128; - const int tsh = ts / 2; - // shifts to location of vertical and diagonal neighbors - const int v1 = ts, v2 = 2 * ts, v3 = 3 * ts, v4 = 4 * ts; - - // Test for RGB cfa - for(int i = 0; i < 2; i++) - for(int j = 0; j < 2; j++) - if(FC(i, j, filters) == 3) - return; if(avoidshift) { - const size_t buffsize = (size_t)h_width * h_height; - redfactor = dt_calloc_align_float(buffsize); - bluefactor = dt_calloc_align_float(buffsize); - oldraw = dt_calloc_align_float(buffsize * 2); + redfactor = dt_calloc_align_float(h_bsize); + bluefactor = dt_calloc_align_float(h_bsize); + oldraw = dt_calloc_align_float(h_bsize * 2); if(!redfactor || !bluefactor || !oldraw) { dt_print(DT_DEBUG_ALWAYS,"[cacorrect] out of memory, skipping\n"); @@ -310,11 +330,13 @@ } // copy raw values before ca correction #ifdef _OPENMP - #pragma omp parallel for +#pragma omp parallel for default(none) \ + dt_omp_firstprivate(height, width, filters, in, oldraw, h_width) \ + schedule(static) #endif - for(int row = 0; row < height; row++) + for(size_t row = 0; row < height; row++) { - for(int col = (FC(row, 0, filters) & 1); col < width; col += 2) + for(size_t col = (FC(row, 0, filters) & 1); col < width; col += 2) { oldraw[row * h_width + col / 2] = in[row * width + col]; } @@ -324,50 +346,53 @@ double fitparams[2][2][16]; // temporary array to store simple interpolation of G - Gtmp = dt_calloc_align_float((size_t)height * width); + Gtmp = dt_calloc_align_float(ibsize); // temporary array to avoid race conflicts, only every second pixel needs to be saved here - RawDataTmp = dt_alloc_align_float(height * width / 2 + 4); + RawDataTmp = dt_alloc_align_float(ibsize / 2); if(!Gtmp || !RawDataTmp) { dt_print(DT_DEBUG_ALWAYS,"[cacorrect] out of memory, skipping\n"); goto writeout; } - const int border = 8; - const int border2 = 16; const int vz1 = (height + border2) % (ts - border2) == 0 ? 1 : 0; const int hz1 = (width + border2) % (ts - border2) == 0 ? 1 : 0; - const int vblsz = ceil((float)(height + border2) / (ts - border2) + 2 + vz1); - const int hblsz = ceil((float)(width + border2) / (ts - border2) + 2 + hz1); - - buffer1 = (char *)calloc((size_t)vblsz * hblsz * (2 * 2 + 1), sizeof(float)); + const int vert_tiles = ceilf((float)(height + border2) / (ts - border2) + 2 + vz1); + const int horiz_tiles = ceilf((float)(width + border2) / (ts - border2) + 2 + hz1); // block CA shift values and weight assigned to block - float *blockwt = (float *)buffer1; - float(*blockshifts)[2][2] = (float(*)[2][2])(buffer1 + (sizeof(float) * vblsz * hblsz)); + blockwt = dt_calloc_align_float(5 * vert_tiles * horiz_tiles); + float (*blockshifts)[2][2] = (float(*)[2][2])(blockwt + vert_tiles * horiz_tiles); float blockave[2][2] = { { 0, 0 }, { 0, 0 } }; float blocksqave[2][2] = { { 0, 0 }, { 0, 0 } }; float blockdenom[2][2] = { { 0, 0 }, { 0, 0 } }; float blockvar[2][2]; // order of 2d polynomial fit (polyord), and numpar=polyord^2 - int polyord = 4, numpar = 16; + int polyord = 4; + int numpar = 16; - const float eps = 1e-5f, eps2 = 1e-10f; // tolerance to avoid dividing by zero + const float eps = 1e-5f; + const float eps2 = 1e-10f; // tolerance to avoid dividing by zero for(size_t it = 0; it < iterations && processpasstwo; it++) { - -#ifdef _OPENMP + // A reminder, be very careful if you try to optimize the parallel processing loop + // for not breaking multipass mode and clang/gcc differences. + // See darktable file history and related problems before doing so. +#if defined(_OPENMP) #pragma omp parallel #endif { // direction of the CA shift in a tile int GRBdir[2][3]; - int shifthfloor[3], shiftvfloor[3], shifthceil[3], shiftvceil[3]; + int shifthfloor[3]; + int shiftvfloor[3]; + int shifthceil[3]; + int shiftvceil[3]; // local quadratic fit to shift data within a tile float coeff[2][3][2]; @@ -375,37 +400,39 @@ float CAshift[2][2]; // polynomial fit coefficients // residual CA shift amount within a plaquette - float shifthfrac[3], shiftvfrac[3]; + float shifthfrac[3]; + float shiftvfrac[3]; // per thread data for evaluation of block CA shift variance - float blockavethr[2][2] = { { 0, 0 }, { 0, 0 } }, blocksqavethr[2][2] = { { 0, 0 }, { 0, 0 } }, - blockdenomthr[2][2] = { { 0, 0 }, { 0, 0 } }; + float blockavethr[2][2] = { { 0, 0 }, { 0, 0 } }; + float blocksqavethr[2][2] = { { 0, 0 }, { 0, 0 } }; + float blockdenomthr[2][2] = { { 0, 0 }, { 0, 0 } }; // assign working space - const size_t buffersize = sizeof(float) * 3 * ts * ts + 6 * sizeof(float) * ts * tsh + 8 * 64 + 63; - char *buffer = (char *)malloc(buffersize); - char *data = (char *)(((uintptr_t)buffer + (uintptr_t)63) / 64 * 64); + // allocate all buffers in one bunch but make sure they are all aligned-64 by proper tilesize ts + const size_t tilebuf_size = ts * ts; + const size_t tilebuf_half_size = ts * tsh; - // shift the beginning of all arrays but the first by 64 bytes to avoid cache miss conflicts on CPUs which - // have <=4-way associative L1-Cache + const size_t buffersize = 3 * tilebuf_size + 6 * tilebuf_half_size; + float *data = dt_alloc_align_float(buffersize); // rgb data in a tile float *rgb[3]; rgb[0] = (float(*))data; - rgb[1] = (float(*))(data + 1 * sizeof(float) * ts * ts + 1 * 64); - rgb[2] = (float(*))(data + 2 * sizeof(float) * ts * ts + 2 * 64); + rgb[1] = (float(*))(data + tilebuf_size); + rgb[2] = (float(*))(data + 2 * tilebuf_size); // high pass filter for R/B in vertical direction - float *rbhpfh = (float(*))(data + 3 * sizeof(float) * ts * ts + 3 * 64); + float *rbhpfh = data + 3 * tilebuf_size; // high pass filter for R/B in horizontal direction - float *rbhpfv = (float(*))(data + 3 * sizeof(float) * ts * ts + sizeof(float) * ts * tsh + 4 * 64); + float *rbhpfv = data + 3 * tilebuf_size + 1 * tilebuf_half_size; // low pass filter for R/B in horizontal direction - float *rblpfh = (float(*))(data + 4 * sizeof(float) * ts * ts + 5 * 64); + float *rblpfh = data + 3 * tilebuf_size + 2 * tilebuf_half_size; // low pass filter for R/B in vertical direction - float *rblpfv = (float(*))(data + 4 * sizeof(float) * ts * ts + sizeof(float) * ts * tsh + 6 * 64); + float *rblpfv = data + 3 * tilebuf_size + 3 * tilebuf_half_size; // low pass filter for colour differences in horizontal direction - float *grblpfh = (float(*))(data + 5 * sizeof(float) * ts * ts + 7 * 64); + float *grblpfh = data + 3 * tilebuf_size + 4 * tilebuf_half_size; // low pass filter for colour differences in vertical direction - float *grblpfv = (float(*))(data + 5 * sizeof(float) * ts * ts + sizeof(float) * ts * tsh + 8 * 64); + float *grblpfv = data + 3 * tilebuf_size + 5 * tilebuf_half_size; // colour differences float *grbdiff = rbhpfh; // there is no overlap in buffer usage => share // green interpolated to optical sample points for R/B @@ -417,33 +444,39 @@ #pragma omp for collapse(2) schedule(static) nowait #endif for(int top = -border; top < height; top += ts - border2) + { for(int left = -border; left < width; left += ts - border2) { - memset(buffer, 0, buffersize); + memset(data, 0, buffersize * sizeof(float)); const int vblock = ((top + border) / (ts - border2)) + 1; const int hblock = ((left + border) / (ts - border2)) + 1; const int bottom = MIN(top + ts, height + border); const int right = MIN(left + ts, width + border); const int rr1 = bottom - top; const int cc1 = right - left; - const int rrmin = top < 0 ? border : 0; - const int rrmax = bottom > height ? height - top : rr1; - const int ccmin = left < 0 ? border : 0; - const int ccmax = right > width ? width - left : cc1; + const size_t rrmin = top < 0 ? border : 0; + const size_t rrmax = bottom > height ? height - top : rr1; + const size_t ccmin = left < 0 ? border : 0; + const size_t ccmax = right > width ? width - left : cc1; // rgb from input CFA data // rgb values should be floating point numbers between 0 and 1 // after white balance multipliers are applied - for(int rr = rrmin; rr < rrmax; rr++) - for(int row = rr + top, cc = ccmin; cc < ccmax; cc++) + for(size_t rr = rrmin; rr < rrmax; rr++) + { + size_t row = rr + top; + size_t c = FC(rr, ccmin, filters); + const size_t c_diff = c ^ FC(rr, ccmin+1, filters); + for(size_t cc = ccmin; cc < ccmax; cc++) { - const int col = cc + left; - const int c = FC(rr, cc, filters); - const int indx = row * width + col; - const int indx1 = rr * ts + cc; - rgb[c][indx1] = (in[indx]); + const size_t col = cc + left; + const size_t indx = row * width + col; + const size_t indx1 = rr * ts + cc; + rgb[c][indx1] = in[indx]; + c ^= c_diff; } + } // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // fill borders @@ -463,7 +496,7 @@ for(int cc = ccmin; cc < ccmax; cc++) { const int c = FC(rr, cc, filters); - rgb[c][(rrmax + rr) * ts + cc] = (in[(height - rr - 2) * width + left + cc]); + rgb[c][(rrmax + rr) * ts + cc] = in[(height - rr - 2) * width + left + cc]; } } @@ -483,7 +516,7 @@ for(int cc = 0; cc < MIN(border, cc1 - ccmax); cc++) { const int c = FC(rr, cc, filters); - rgb[c][rr * ts + ccmax + cc] = (in[(top + rr) * width + (width - cc - 2)]); + rgb[c][rr * ts + ccmax + cc] = in[(top + rr) * width + (width - cc - 2)]; } } @@ -494,7 +527,7 @@ for(int cc = 0; cc < border; cc++) { const int c = FC(rr, cc, filters); - rgb[c][(rr)*ts + cc] = (in[(border2 - rr) * width + border2 - cc]); + rgb[c][(rr)*ts + cc] = in[(border2 - rr) * width + border2 - cc]; } } @@ -504,7 +537,7 @@ for(int cc = 0; cc < MIN(border, cc1 - ccmax); cc++) { const int c = FC(rr, cc, filters); - rgb[c][(rrmax + rr) * ts + ccmax + cc] = (in[(height - rr - 2) * width + (width - cc - 2)]); + rgb[c][(rrmax + rr) * ts + ccmax + cc] = in[(height - rr - 2) * width + (width - cc - 2)]; } } @@ -514,7 +547,7 @@ for(int cc = 0; cc < MIN(border, cc1 - ccmax); cc++) { const int c = FC(rr, cc, filters); - rgb[c][(rr)*ts + ccmax + cc] = (in[(border2 - rr) * width + (width - cc - 2)]); + rgb[c][(rr)*ts + ccmax + cc] = in[(border2 - rr) * width + (width - cc - 2)]; } } @@ -524,7 +557,7 @@ for(int cc = 0; cc < border; cc++) { const int c = FC(rr, cc, filters); - rgb[c][(rrmax + rr) * ts + cc] = (in[(height - rr - 2) * width + (border2 - cc)]); + rgb[c][(rrmax + rr) * ts + cc] = in[(height - rr - 2) * width + (border2 - cc)]; } } @@ -568,12 +601,12 @@ } } - for(int rr = 4; rr < rr1 - 4; rr++) + for(int rr = borderh; rr < rr1 - borderh; rr++) { - for(int cc = 4 + (FC(rr, 2, filters) & 1), indx = rr * ts + cc, c = FC(rr, cc, filters); cc < cc1 - 4; cc += 2, indx += 2) + for(int cc = borderh + (FC(rr, 2, filters) & 1), indx = rr * ts + cc, c = FC(rr, cc, filters); cc < cc1 - borderh; cc += 2, indx += 2) { rbhpfv[indx >> 1] = fabsf( - fabsf((rgb[1][indx] - rgb[c][indx]) - (rgb[1][indx + v4] - rgb[c][indx + v4])) + fabsf((rgb[1][indx] - rgb[c][indx]) - (rgb[1][indx + v4] - rgb[c][indx + v4])) + fabsf((rgb[1][indx - v4] - rgb[c][indx - v4]) - (rgb[1][indx] - rgb[c][indx])) - fabsf((rgb[1][indx - v4] - rgb[c][indx - v4]) - (rgb[1][indx + v4] - rgb[c][indx + v4]))); rbhpfh[indx >> 1] = fabsf( @@ -604,9 +637,9 @@ // along line segments, find the point along each segment that minimizes the colour variance // averaged over the tile; evaluate for up/down and left/right away from R/B grid point - for(int rr = 8; rr < rr1 - 8; rr++) + for(int rr = border; rr < rr1 - border; rr++) { - for(int cc = 8 + (FC(rr, 2, filters) & 1), indx = rr * ts + cc, c = FC(rr, cc, filters); cc < cc1 - 8; cc += 2, indx += 2) + for(int cc = border + (FC(rr, 2, filters) & 1), indx = rr * ts + cc, c = FC(rr, cc, filters); cc < cc1 - border; cc += 2, indx += 2) { // in linear interpolation, colour differences are a quadratic function of interpolation @@ -615,15 +648,17 @@ // vertical float gdiff = 0.3125f * (rgb[1][indx + ts] - rgb[1][indx - ts]) - + 0.09375f * (rgb[1][indx + ts + 1] - rgb[1][indx - ts + 1] - + rgb[1][indx + ts - 1] - rgb[1][indx - ts - 1]); + + 0.09375f * (rgb[1][indx + ts + 1] - rgb[1][indx - ts + 1] + + rgb[1][indx + ts - 1] - rgb[1][indx - ts - 1]); float deltgrb = (rgb[c][indx] - rgb[1][indx]); - float gradwt = fabsf(0.25f * rbhpfv[indx >> 1] - + 0.125f * (rbhpfv[(indx >> 1) + 1] + rbhpfv[(indx >> 1) - 1])) + float gradwt = fabsf(0.25f * rbhpfv[indx >> 1] + + 0.125f * (rbhpfv[(indx >> 1) + 1] + + rbhpfv[(indx >> 1) - 1])) * (grblpfv[(indx >> 1) - v1] + grblpfv[(indx >> 1) + v1]) - / (eps + 0.1f * (grblpfv[(indx >> 1) - v1] + grblpfv[(indx >> 1) + v1]) - + rblpfv[(indx >> 1) - v1] + rblpfv[(indx >> 1) + v1]); + / (eps + 0.1f * (grblpfv[(indx >> 1) - v1] + + grblpfv[(indx >> 1) + v1]) + + rblpfv[(indx >> 1) - v1] + rblpfv[(indx >> 1) + v1]); coeff[0][0][c >> 1] += gradwt * deltgrb * deltgrb; coeff[0][1][c >> 1] += gradwt * gdiff * deltgrb; @@ -631,11 +666,12 @@ // horizontal gdiff = 0.3125f * (rgb[1][indx + 1] - rgb[1][indx - 1]) - + 0.09375f * (rgb[1][indx + 1 + ts] - rgb[1][indx - 1 + ts] + rgb[1][indx + 1 - ts] - - rgb[1][indx - 1 - ts]); + + 0.09375f * (rgb[1][indx + 1 + ts] - rgb[1][indx - 1 + ts] + rgb[1][indx + 1 - ts] + - rgb[1][indx - 1 - ts]); gradwt = fabsf(0.25f * rbhpfh[indx >> 1] - + 0.125f * (rbhpfh[(indx >> 1) + v1] + rbhpfh[(indx >> 1) - v1])) + + 0.125f * (rbhpfh[(indx >> 1) + v1] + + rbhpfh[(indx >> 1) - v1])) * (grblpfh[(indx >> 1) - 1] + grblpfh[(indx >> 1) + 1]) / (eps + 0.1f * (grblpfh[(indx >> 1) - 1] + grblpfh[(indx >> 1) + 1]) + rblpfh[(indx >> 1) - 1] + rblpfh[(indx >> 1) + 1]); @@ -663,12 +699,12 @@ if(coeff[dir][2][c] > eps2) { CAshift[dir][c] = coeff[dir][1][c] / coeff[dir][2][c]; - blockwt[vblock * hblsz + hblock] = coeff[dir][2][c] / (eps + coeff[dir][0][c]); + blockwt[vblock * horiz_tiles + hblock] = coeff[dir][2][c] / (eps + coeff[dir][0][c]); } else { - CAshift[dir][c] = 17.0; - blockwt[vblock * hblsz + hblock] = 0; + CAshift[dir][c] = 17.0f; + blockwt[vblock * horiz_tiles + hblock] = 0; } // data structure = CAshift[vert/hor][colour] @@ -682,13 +718,12 @@ blockdenomthr[dir][c] += 1; } // evaluate the shifts to the location that minimizes CA within the tile - blockshifts[vblock * hblsz + hblock][c][dir] = CAshift[dir][c]; // vert/hor CA shift for R/B + blockshifts[vblock * horiz_tiles + hblock][c][dir] = CAshift[dir][c]; // vert/hor CA shift for R/B } // vert/hor } // colour - } - + } // end of diagnostic pass #ifdef _OPENMP #pragma omp critical(cadetectpass2) @@ -711,12 +746,12 @@ #endif { for(int dir = 0; dir < 2; dir++) + { for(int c = 0; c < 2; c++) { if(blockdenom[dir][c]) { - blockvar[dir][c] - = blocksqave[dir][c] / blockdenom[dir][c] - sqrf(blockave[dir][c] / blockdenom[dir][c]); + blockvar[dir][c] = blocksqave[dir][c] / blockdenom[dir][c] - sqrf(blockave[dir][c] / blockdenom[dir][c]); } else { @@ -725,34 +760,32 @@ break; } } - - // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + } // now prepare for CA correction pass // first, fill border blocks of blockshift array if(processpasstwo) { - for(int vblock = 1; vblock < vblsz - 1; vblock++) + for(int vblock = 1; vblock < vert_tiles - 1; vblock++) { // left and right sides for(int c = 0; c < 2; c++) { for(int i = 0; i < 2; i++) { - blockshifts[vblock * hblsz][c][i] = blockshifts[(vblock)*hblsz + 2][c][i]; - blockshifts[vblock * hblsz + hblsz - 1][c][i] = blockshifts[(vblock)*hblsz + hblsz - 3][c][i]; + blockshifts[vblock * horiz_tiles][c][i] = blockshifts[(vblock)*horiz_tiles + 2][c][i]; + blockshifts[vblock * horiz_tiles + horiz_tiles - 1][c][i] = blockshifts[(vblock)*horiz_tiles + horiz_tiles - 3][c][i]; } } } - for(int hblock = 0; hblock < hblsz; hblock++) + for(int hblock = 0; hblock < horiz_tiles; hblock++) { // top and bottom sides for(int c = 0; c < 2; c++) { for(int i = 0; i < 2; i++) { - blockshifts[hblock][c][i] = blockshifts[2 * hblsz + hblock][c][i]; - blockshifts[(vblsz - 1) * hblsz + hblock][c][i] - = blockshifts[(vblsz - 3) * hblsz + hblock][c][i]; + blockshifts[hblock][c][i] = blockshifts[2 * horiz_tiles + hblock][c][i]; + blockshifts[(vert_tiles - 1) * horiz_tiles + hblock][c][i] = blockshifts[(vert_tiles - 3) * horiz_tiles + hblock][c][i]; } } } @@ -760,7 +793,8 @@ // end of filling border pixels of blockshift array // initialize fit arrays - double polymat[2][2][256], shiftmat[2][2][16]; + double polymat[2][2][256]; + double shiftmat[2][2][16]; for(int i = 0; i < 256; i++) { @@ -774,8 +808,9 @@ int numblox[2] = { 0, 0 }; - for(int vblock = 1; vblock < vblsz - 1; vblock++) - for(int hblock = 1; hblock < hblsz - 1; hblock++) + for(int vblock = 1; vblock < vert_tiles - 1; vblock++) + { + for(int hblock = 1; hblock < horiz_tiles - 1; hblock++) { // block 3x3 median of blockshifts for robustness for(int c = 0; c < 2; c++) @@ -783,37 +818,17 @@ float bstemp[2]; for(int dir = 0; dir < 2; dir++) { - // temporary storage for median filter - float p[9]; - p[0] = blockshifts[(vblock - 1) * hblsz + hblock - 1][c][dir]; - p[1] = blockshifts[(vblock - 1) * hblsz + hblock][c][dir]; - p[2] = blockshifts[(vblock - 1) * hblsz + hblock + 1][c][dir]; - p[3] = blockshifts[(vblock)*hblsz + hblock - 1][c][dir]; - p[4] = blockshifts[(vblock)*hblsz + hblock][c][dir]; - p[5] = blockshifts[(vblock)*hblsz + hblock + 1][c][dir]; - p[6] = blockshifts[(vblock + 1) * hblsz + hblock - 1][c][dir]; - p[7] = blockshifts[(vblock + 1) * hblsz + hblock][c][dir]; - p[8] = blockshifts[(vblock + 1) * hblsz + hblock + 1][c][dir]; - _pixsort(&p[1], &p[2]); - _pixsort(&p[4], &p[5]); - _pixsort(&p[7], &p[8]); - _pixsort(&p[0], &p[1]); - _pixsort(&p[3], &p[4]); - _pixsort(&p[6], &p[7]); - _pixsort(&p[1], &p[2]); - _pixsort(&p[4], &p[5]); - _pixsort(&p[7], &p[8]); - _pixsort(&p[0], &p[3]); - _pixsort(&p[5], &p[8]); - _pixsort(&p[4], &p[7]); - _pixsort(&p[3], &p[6]); - _pixsort(&p[1], &p[4]); - _pixsort(&p[2], &p[5]); - _pixsort(&p[4], &p[7]); - _pixsort(&p[4], &p[2]); - _pixsort(&p[6], &p[4]); - _pixsort(&p[4], &p[2]); - bstemp[dir] = p[4]; + const float p[9] __attribute__((aligned(16))) = + { blockshifts[(vblock - 1) * horiz_tiles + hblock - 1][c][dir], + blockshifts[(vblock - 1) * horiz_tiles + hblock ][c][dir], + blockshifts[(vblock - 1) * horiz_tiles + hblock + 1][c][dir], + blockshifts[(vblock) * horiz_tiles + hblock - 1][c][dir], + blockshifts[(vblock) * horiz_tiles + hblock ][c][dir], + blockshifts[(vblock) * horiz_tiles + hblock + 1][c][dir], + blockshifts[(vblock + 1) * horiz_tiles + hblock - 1][c][dir], + blockshifts[(vblock + 1) * horiz_tiles + hblock ][c][dir], + blockshifts[(vblock + 1) * horiz_tiles + hblock + 1][c][dir] }; + bstemp[dir] = median9f(p); } // now prepare coefficient matrix; use only data points within caautostrength/2 std devs of @@ -826,35 +841,36 @@ numblox[c]++; - for(int dir = 0; dir < 2; dir++) + double powVblockInit = 1.0; + for(int i = 0; i < polyord; i++) { - double powVblockInit = 1.0; - for(int i = 0; i < polyord; i++) + double powHblockInit = 1.0; + for(int j = 0; j < polyord; j++) { - double powHblockInit = 1.0; - for(int j = 0; j < polyord; j++) + double powVblock = powVblockInit; + for(int m = 0; m < polyord; m++) { - double powVblock = powVblockInit; - for(int m = 0; m < polyord; m++) + double powHblock = powHblockInit; + for(int n = 0; n < polyord; n++) { - double powHblock = powHblockInit; - for(int n = 0; n < polyord; n++) - { - polymat[c][dir][numpar * (polyord * i + j) + (polyord * m + n)] - += powVblock * powHblock * blockwt[vblock * hblsz + hblock]; - powHblock *= hblock; - } - powVblock *= vblock; + double inc = powVblock * powHblock * blockwt[vblock * horiz_tiles + hblock]; + size_t idx = numpar * (polyord * i + j) + (polyord * m + n); + polymat[c][0][idx] += inc; + polymat[c][1][idx] += inc; + powHblock *= hblock; } - shiftmat[c][dir][(polyord * i + j)] - += powVblockInit * powHblockInit * bstemp[dir] * blockwt[vblock * hblsz + hblock]; - powHblockInit *= hblock; + powVblock *= vblock; } - powVblockInit *= vblock; - } // monomials - } // dir + double blkinc = powVblockInit * powHblockInit * blockwt[vblock * horiz_tiles + hblock]; + shiftmat[c][0][(polyord * i + j)] += blkinc * bstemp[0]; + shiftmat[c][1][(polyord * i + j)] += blkinc * bstemp[1]; + powHblockInit *= hblock; + } + powVblockInit *= vblock; + } // monomials } // c } // blocks + } numblox[1] = MIN(numblox[0], numblox[1]); @@ -872,17 +888,19 @@ } if(processpasstwo) - + { // fit parameters to blockshifts for(int c = 0; c < 2; c++) for(int dir = 0; dir < 2; dir++) { if(!_LinEqSolve(numpar, polymat[c][dir], shiftmat[c][dir], fitparams[c][dir])) { - dt_print(DT_DEBUG_PIPE, "[cacorrect] can't solve linear equations for colour %d direction %d", c, dir); + dt_print(DT_DEBUG_PIPE, + "[cacorrect] can't solve linear equations for colour %d direction %d", c, dir); processpasstwo = FALSE; } } + } } // fitparams[polyord*i+j] gives the coefficients of (vblock^i hblock^j) in a polynomial fit for i,j<=4 @@ -899,9 +917,10 @@ #endif for(int top = -border; top < height; top += ts - border2) + { for(int left = -border; left < width; left += ts - border2) { - memset(buffer, 0, buffersize); + memset(data, 0, buffersize * sizeof(float)); float lblockshifts[2][2]; const int vblock = ((top + border) / (ts - border2)) + 1; const int hblock = ((left + border) / (ts - border2)) + 1; @@ -919,20 +938,25 @@ // rgb values should be floating point number between 0 and 1 // after white balance multipliers are applied - for(int rr = rrmin; rr < rrmax; rr++) - for(int row = rr + top, cc = ccmin; cc < ccmax; cc++) + for(size_t rr = rrmin; rr < rrmax; rr++) + { + size_t row = rr + top; + size_t c = FC(rr, ccmin, filters); + const size_t c_diff = c ^ FC(rr, ccmin+1, filters); + for(size_t cc = ccmin; cc < ccmax; cc++) { - const int col = cc + left; - const int c = FC(rr, cc, filters); - const int indx = row * width + col; - const int indx1 = rr * ts + cc; - rgb[c][indx1] = (in[indx]); + const size_t col = cc + left; + const size_t indx = row * width + col; + const size_t indx1 = rr * ts + cc; + rgb[c][indx1] = in[indx]; if((c & 1) == 0) { rgb[1][indx1] = Gtmp[indx]; } + c ^= c_diff; } + } // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // fill borders @@ -953,7 +977,7 @@ for(int cc = ccmin; cc < ccmax; cc++) { const int c = FC(rr, cc, filters); - rgb[c][(rrmax + rr) * ts + cc] = (in[(height - rr - 2) * width + left + cc]); + rgb[c][(rrmax + rr) * ts + cc] = in[(height - rr - 2) * width + left + cc]; rgb[1][(rrmax + rr) * ts + cc] = Gtmp[(height - rr - 2) * width + left + cc]; } } @@ -975,7 +999,7 @@ for(int cc = 0; cc < MIN(border, cc1 - ccmax); cc++) { const int c = FC(rr, cc, filters); - rgb[c][rr * ts + ccmax + cc] = (in[(top + rr) * width + (width - cc - 2)]); + rgb[c][rr * ts + ccmax + cc] = in[(top + rr) * width + (width - cc - 2)]; rgb[1][rr * ts + ccmax + cc] = Gtmp[(top + rr) * width + (width - cc - 2)]; } } @@ -987,7 +1011,7 @@ for(int cc = 0; cc < border; cc++) { const int c = FC(rr, cc, filters); - rgb[c][(rr)*ts + cc] = (in[(border2 - rr) * width + border2 - cc]); + rgb[c][(rr)*ts + cc] = in[(border2 - rr) * width + border2 - cc]; rgb[1][(rr)*ts + cc] = Gtmp[(border2 - rr) * width + border2 - cc]; } } @@ -998,7 +1022,7 @@ for(int cc = 0; cc < MIN(border, cc1 - ccmax); cc++) { const int c = FC(rr, cc, filters); - rgb[c][(rrmax + rr) * ts + ccmax + cc] = (in[(height - rr - 2) * width + (width - cc - 2)]); + rgb[c][(rrmax + rr) * ts + ccmax + cc] = in[(height - rr - 2) * width + (width - cc - 2)]; rgb[1][(rrmax + rr) * ts + ccmax + cc] = Gtmp[(height - rr - 2) * width + (width - cc - 2)]; } } @@ -1009,7 +1033,7 @@ for(int cc = 0; cc < MIN(border, cc1 - ccmax); cc++) { const int c = FC(rr, cc, filters); - rgb[c][(rr)*ts + ccmax + cc] = (in[(border2 - rr) * width + (width - cc - 2)]); + rgb[c][(rr)*ts + ccmax + cc] = in[(border2 - rr) * width + (width - cc - 2)]; rgb[1][(rr)*ts + ccmax + cc] = Gtmp[(border2 - rr) * width + (width - cc - 2)]; } } @@ -1020,7 +1044,7 @@ for(int cc = 0; cc < border; cc++) { const int c = FC(rr, cc, filters); - rgb[c][(rrmax + rr) * ts + cc] = (in[(height - rr - 2) * width + (border2 - cc)]); + rgb[c][(rrmax + rr) * ts + cc] = in[(height - rr - 2) * width + (border2 - cc)]; rgb[1][(rrmax + rr) * ts + cc] = Gtmp[(height - rr - 2) * width + (border2 - cc)]; } } @@ -1030,10 +1054,10 @@ // CA auto correction; use CA diagnostic pass to set shift parameters lblockshifts[0][0] = lblockshifts[0][1] = 0; lblockshifts[1][0] = lblockshifts[1][1] = 0; - double powVblock = 1.0; + float powVblock = 1.0f; for(int i = 0; i < polyord; i++) { - double powHblock = powVblock; + float powHblock = powVblock; for(int j = 0; j < polyord; j++) { // printf("i= %d j= %d polycoeff= %f \n",i,j,fitparams[0][0][polyord*i+j]); @@ -1045,7 +1069,7 @@ } powVblock *= vblock; } - const float bslim = 3.99; // max allowed CA shift + const float bslim = 3.99f; // max allowed CA shift lblockshifts[0][0] = CLAMPF(lblockshifts[0][0], -bslim, bslim); lblockshifts[0][1] = CLAMPF(lblockshifts[0][1], -bslim, bslim); lblockshifts[1][0] = CLAMPF(lblockshifts[1][0], -bslim, bslim); @@ -1057,49 +1081,50 @@ { // some parameters for the bilinear interpolation - shiftvfloor[c] = floor((float)lblockshifts[c >> 1][0]); - shiftvceil[c] = ceil((float)lblockshifts[c >> 1][0]); + shiftvfloor[c] = floorf(lblockshifts[c >> 1][0]); + shiftvceil[c] = ceilf(lblockshifts[c >> 1][0]); if(lblockshifts[c>>1][0] < 0.f) { - const float tmp = shiftvfloor[c]; + const int tmp = shiftvfloor[c]; shiftvfloor[c] = shiftvceil[c]; shiftvceil[c] = tmp; } shiftvfrac[c] = fabsf(lblockshifts[c>>1][0] - shiftvfloor[c]); - shifthfloor[c] = floor((float)lblockshifts[c >> 1][1]); - shifthceil[c] = ceil((float)lblockshifts[c >> 1][1]); + shifthfloor[c] = floorf(lblockshifts[c >> 1][1]); + shifthceil[c] = ceilf(lblockshifts[c >> 1][1]); if(lblockshifts[c>>1][1] < 0.f) { - const float tmp = shifthfloor[c]; + const int tmp = shifthfloor[c]; shifthfloor[c] = shifthceil[c]; shifthceil[c] = tmp; } shifthfrac[c] = fabsf(lblockshifts[c>>1][1] - shifthfloor[c]); - GRBdir[0][c] = lblockshifts[c >> 1][0] > 0 ? 2 : -2; GRBdir[1][c] = lblockshifts[c >> 1][1] > 0 ? 2 : -2; } - for(int rr = 4; rr < rr1 - 4; rr++) + for(int rr = borderh; rr < rr1 - borderh; rr++) { - for(int cc = 4 + (FC(rr, 2, filters) & 1), c = FC(rr, cc, filters); cc < cc1 - 4; cc += 2) + for(int cc = borderh + (FC(rr, 2, filters) & 1), c = FC(rr, cc, filters); cc < cc1 - borderh; cc += 2) { // perform CA correction using colour ratios or colour differences - const float Ginthfloor = interpolatef(shifthfrac[c], rgb[1][(rr + shiftvfloor[c]) * ts + cc + shifthceil[c]], - rgb[1][(rr + shiftvfloor[c]) * ts + cc + shifthfloor[c]]); - const float Ginthceil = interpolatef(shifthfrac[c], rgb[1][(rr + shiftvceil[c]) * ts + cc + shifthceil[c]], - rgb[1][(rr + shiftvceil[c]) * ts + cc + shifthfloor[c]]); + const float Ginthfloor = interpolatef(shifthfrac[c], + rgb[1][(rr + shiftvfloor[c]) * ts + cc + shifthceil[c]], + rgb[1][(rr + shiftvfloor[c]) * ts + cc + shifthfloor[c]]); + const float Ginthceil = interpolatef(shifthfrac[c], + rgb[1][(rr + shiftvceil[c]) * ts + cc + shifthceil[c]], + rgb[1][(rr + shiftvceil[c]) * ts + cc + shifthfloor[c]]); // Gint is bilinear interpolation of G at CA shift point const float Gint = interpolatef(shiftvfrac[c], Ginthceil, Ginthfloor); // determine R/B at grid points using colour differences at shift point plus interpolated G // value at grid point // but first we need to interpolate G-R/G-B to grid points... - grbdiff[((rr)*ts + cc) >> 1] = Gint - rgb[c][(rr)*ts + cc]; - gshift[((rr)*ts + cc) >> 1] = Gint; + grbdiff[(rr*ts + cc) >> 1] = Gint - rgb[c][rr*ts + cc]; + gshift[(rr*ts + cc) >> 1] = Gint; } } @@ -1110,20 +1135,21 @@ // this loop does not deserve vectorization in mainly because the most expensive part with the // divisions does not happen often (less than 1/10 in my tests) - for(int rr = 8; rr < rr1 - 8; rr++) - for(int cc = 8 + (FC(rr, 2, filters) & 1), c = FC(rr, cc, filters), indx = rr * ts + cc; - cc < cc1 - 8; cc += 2, indx += 2) + for(int rr = border; rr < rr1 - border; rr++) + { + for(int cc = border + (FC(rr, 2, filters) & 1), c = FC(rr, cc, filters), indx = rr * ts + cc; + cc < cc1 - border; cc += 2, indx += 2) { const float grbdiffold = rgb[1][indx] - rgb[c][indx]; // interpolate colour difference from optical R/B locations to grid locations const float grbdiffinthfloor = interpolatef(shifthfrac[c], - grbdiff[(indx - GRBdir[1][c]) >> 1], - grbdiff[indx >> 1]); + grbdiff[(indx - GRBdir[1][c]) >> 1], + grbdiff[indx >> 1]); const float grbdiffinthceil = interpolatef(shifthfrac[c], - grbdiff[((rr - GRBdir[0][c]) * ts + cc - GRBdir[1][c]) >> 1], - grbdiff[((rr - GRBdir[0][c]) * ts + cc) >> 1]); + grbdiff[((rr - GRBdir[0][c]) * ts + cc - GRBdir[1][c]) >> 1], + grbdiff[((rr - GRBdir[0][c]) * ts + cc) >> 1]); // grbdiffint is bilinear interpolation of G-R/G-B at grid point float grbdiffint = interpolatef(shiftvfrac[c], grbdiffinthceil, grbdiffinthfloor); @@ -1147,7 +1173,8 @@ const float p2 = 1.0f / (eps + fabsf(rgb[1][indx] - gshift[((rr - GRBdir[0][c]) * ts + cc) >> 1])); const float p3 = 1.0f / (eps + fabsf(rgb[1][indx] - gshift[((rr - GRBdir[0][c]) * ts + cc - GRBdir[1][c]) >> 1])); - grbdiffint = (p0 * grbdiff[indx >> 1] + p1 * grbdiff[(indx - GRBdir[1][c]) >> 1] + grbdiffint = ( p0 * grbdiff[indx >> 1] + + p1 * grbdiff[(indx - GRBdir[1][c]) >> 1] + p2 * grbdiff[((rr - GRBdir[0][c]) * ts + cc) >> 1] + p3 * grbdiff[((rr - GRBdir[0][c]) * ts + cc - GRBdir[1][c]) >> 1]) / (p0 + p1 + p2 + p3); @@ -1166,7 +1193,7 @@ rgb[c][indx] = rgb[1][indx] - 0.5f * (grbdiffold + grbdiffint); } } - + } // copy CA corrected results to temporary image matrix for(int rr = border; rr < rr1 - border; rr++) { @@ -1181,7 +1208,7 @@ } } } - + } #ifdef _OPENMP #pragma omp barrier #endif @@ -1189,7 +1216,6 @@ #ifdef _OPENMP #pragma omp for #endif - for(int row = 0; row < height; row++) for(int col = 0 + (FC(row, 0, filters) & 1), indx = (row * width + col) >> 1; col < width; col += 2, indx++) @@ -1197,9 +1223,7 @@ out[row * width + col] = RawDataTmp[indx]; } } - - // clean up - free(buffer); + dt_free_align(data); } } @@ -1209,17 +1233,18 @@ // of red and blue channel and apply a gaussian blur to them. // Then we apply the resulting factors per pixel on the result of raw ca correction #ifdef _OPENMP - #pragma omp parallel for +#pragma omp parallel for #endif - for(int row = 0; row < height; row++) + for(size_t row = 0; row < height; row++) { - const int firstCol = FC(row, 0, filters) & 1; + const size_t firstCol = FC(row, 0, filters) & 1; const int color = FC(row, firstCol, filters); float *nongreen = (color == 0) ? redfactor : bluefactor; - for(int col = firstCol; col < width; col += 2) + for(size_t col = firstCol; col < width; col += 2) { - nongreen[(row / 2) * h_width + col / 2] = (in[row * width + col] <= 1.0f || oldraw[row * h_width + col / 2] <= 1.0f) - ? 1.0f : CLAMPF(oldraw[row * h_width + col / 2] / in[row * width + col], 0.5f, 2.0f); + const size_t index = row * width + col; + const size_t oindex = row * h_width + col / 2; + nongreen[(row / 2) * h_width + col / 2] = CLAMPF(oldraw[oindex] / in[index], 0.5f, 2.0f); } } @@ -1257,14 +1282,16 @@ dt_gaussian_blur(blue, bluefactor, bluefactor); #ifdef _OPENMP - #pragma omp for +#pragma omp parallel for \ + dt_omp_firstprivate(out, height, width, filters, redfactor, bluefactor) \ + schedule(static) #endif - for(int row = 2; row < height - 2; row++) + for(size_t row = 2; row < height - 2; row++) { - const int firstCol = FC(row, 0, filters) & 1; + const size_t firstCol = FC(row, 0, filters) & 1; const int color = FC(row, firstCol, filters); float *nongreen = (color == 0) ? redfactor : bluefactor; - for(int col = firstCol; col < width - 2; col += 2) + for(size_t col = firstCol; col < width - 2; col += 2) { const float correction = nongreen[row / 2 * h_width + col / 2]; out[row * width + col] *= correction; @@ -1278,12 +1305,12 @@ writeout: #ifdef _OPENMP #pragma omp parallel for default(none) \ - dt_omp_firstprivate(output, out, roi_in, roi_out) \ + dt_omp_firstprivate(output, out, roi_in, roi_out, scaler) \ schedule(static) collapse(2) #endif for(size_t row = 0; row < roi_out->height; row++) { - for(size_t col = 0; col < roi_out->width; col++) + for(size_t col = 0; col < roi_out->width; col++) { const size_t ox = row * roi_out->width + col; const size_t irow = row + roi_out->y; @@ -1291,12 +1318,12 @@ const size_t ix = irow * roi_in->width + icol; if((irow < roi_in->height) && (icol < roi_in->width)) { - output[ox] = out[ix]; + output[ox] = out[ix] * scaler; } } } - if(buffer1) free(buffer1); + dt_free_align(blockwt); dt_free_align(out); dt_free_align(RawDataTmp); dt_free_align(Gtmp); @@ -1326,12 +1353,25 @@ roi_in->scale = 1.0f; } +void distort_mask( + struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + const float *const in, + float *const out, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) +{ + dt_iop_copy_image_roi(out, in, 1, roi_in, roi_out); +} + void reload_defaults(dt_iop_module_t *module) { - dt_image_t *img = &module->dev->image_storage; - // can't be switched on for non-raw or x-trans images: - const gboolean active = (dt_image_is_raw(img) && (img->buf_dsc.filters != 9u) && !(dt_image_is_monochrome(img))); - module->hide_enable_button = !active; + // can't be switched on for non bayer RGB images: + if(!dt_image_is_bayerRGB(&module->dev->image_storage)) + { + module->hide_enable_button = TRUE; + module->default_enabled = FALSE; + } } /** commit is the synch point between core and gui, so it copies params to pipe data. */ @@ -1341,10 +1381,7 @@ dt_iop_cacorrect_params_t *p = (dt_iop_cacorrect_params_t *)params; dt_iop_cacorrect_data_t *d = (dt_iop_cacorrect_data_t *) piece->data; - dt_image_t *img = &pipe->image; - const gboolean active = (dt_image_is_raw(img) && (img->buf_dsc.filters != 9u) && !(dt_image_is_monochrome(img))); - - if(!active) piece->enabled = FALSE; + if(!dt_image_is_bayerRGB(&self->dev->image_storage)) piece->enabled = FALSE; d->iterations = p->iterations; d->avoidshift = p->avoidshift; @@ -1366,33 +1403,16 @@ dt_iop_cacorrect_gui_data_t *g = (dt_iop_cacorrect_gui_data_t *)self->gui_data; dt_iop_cacorrect_params_t *p = (dt_iop_cacorrect_params_t *)self->params; - dt_image_t *img = &self->dev->image_storage; + const gboolean supported = dt_image_is_bayerRGB(&self->dev->image_storage); + self->hide_enable_button = !supported; + if(!supported) self->default_enabled = FALSE; - const gboolean active = (dt_image_is_raw(img) && (img->buf_dsc.filters != 9u) && !(dt_image_is_monochrome(img))); - self->hide_enable_button = !active; - - gtk_stack_set_visible_child_name(GTK_STACK(self->widget), active ? "raw" : "non_raw"); - - gtk_widget_set_visible(g->avoidshift, active); - gtk_widget_set_visible(g->iterations, active); - dt_bauhaus_combobox_set_from_value(g->iterations, p->iterations); + gtk_stack_set_visible_child_name(GTK_STACK(self->widget), supported ? "bayer" : "other"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->avoidshift), p->avoidshift); -} -void gui_changed(dt_iop_module_t *self, GtkWidget *w, void *previous) -{ - dt_iop_cacorrect_gui_data_t *g = (dt_iop_cacorrect_gui_data_t *)self->gui_data; - dt_iop_cacorrect_params_t *p = (dt_iop_cacorrect_params_t *)self->params; - - dt_image_t *img = &self->dev->image_storage; - - const gboolean active = (dt_image_is_raw(img) && (img->buf_dsc.filters != 9u) && !(dt_image_is_monochrome(img))); - - gtk_stack_set_visible_child_name(GTK_STACK(self->widget), active ? "raw" : "non_raw"); - - gtk_widget_set_visible(g->avoidshift, active); + gtk_widget_set_visible(g->avoidshift, supported); + gtk_widget_set_visible(g->iterations, supported); dt_bauhaus_combobox_set_from_value(g->iterations, p->iterations); - gtk_widget_set_visible(g->iterations, active); } void gui_init(dt_iop_module_t *self) @@ -1410,10 +1430,10 @@ // start building top level widget self->widget = gtk_stack_new(); gtk_stack_set_homogeneous(GTK_STACK(self->widget), FALSE); - gtk_stack_add_named(GTK_STACK(self->widget), box_raw, "raw"); + gtk_stack_add_named(GTK_STACK(self->widget), box_raw, "bayer"); - GtkWidget *label_non_raw = dt_ui_label_new(_("automatic chromatic aberration correction\nonly for Bayer raw files")); - gtk_stack_add_named(GTK_STACK(self->widget), label_non_raw, "non_raw"); + GtkWidget *label_other = dt_ui_label_new(_("automatic chromatic aberration correction\nonly for Bayer raw files with 3 color channels")); + gtk_stack_add_named(GTK_STACK(self->widget), label_other, "other"); } // clang-format off @@ -1421,4 +1441,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/cacorrectrgb.c darktable-4.6.1/src/iop/cacorrectrgb.c --- darktable-4.4.2/src/iop/cacorrectrgb.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/cacorrectrgb.c 2024-02-16 17:31:09.000000000 +0000 @@ -183,7 +183,9 @@ return IOP_GROUP_CORRECT | IOP_GROUP_TECHNICAL; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } diff -Nru darktable-4.4.2/src/iop/censorize.c darktable-4.6.1/src/iop/censorize.c --- darktable-4.4.2/src/iop/censorize.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/censorize.c 2024-02-16 17:31:09.000000000 +0000 @@ -96,7 +96,9 @@ return IOP_GROUP_EFFECT | IOP_GROUP_EFFECTS; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -143,7 +145,7 @@ 4 | DT_IMGSZ_INPUT, &temp, 0, NULL)) { - dt_iop_copy_image_roi(ovoid, ivoid, piece->colors, roi_in, roi_out, 0); + dt_iop_copy_image_roi(ovoid, ivoid, piece->colors, roi_in, roi_out); return; } dt_iop_censorize_data_t *data = (dt_iop_censorize_data_t *)piece->data; @@ -326,6 +328,7 @@ b = NULL; // make sure we don't clean it up twice } + err = CL_MEM_OBJECT_ALLOCATION_FAILURE; dev_tmp = dt_opencl_alloc_device(devid, width, height, 4 * sizeof(float)); if(dev_tmp == NULL) goto error; @@ -349,15 +352,6 @@ err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_lowpass_mix, width, height, CLARG(dev_tmp), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(saturation), CLARG(dev_cm), CLARG(dev_ccoeffs), CLARG(dev_lm), CLARG(dev_lcoeffs), CLARG(unbound)); - if(err != CL_SUCCESS) goto error; - - dt_opencl_release_mem_object(dev_tmp); - dt_opencl_release_mem_object(dev_lcoeffs); - dt_opencl_release_mem_object(dev_lm); - dt_opencl_release_mem_object(dev_ccoeffs); - dt_opencl_release_mem_object(dev_cm); - - return TRUE; error: if(g) dt_gaussian_free_cl(g); @@ -368,8 +362,7 @@ dt_opencl_release_mem_object(dev_lm); dt_opencl_release_mem_object(dev_ccoeffs); dt_opencl_release_mem_object(dev_cm); - dt_print(DT_DEBUG_OPENCL, "[opencl_lowpass] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } void tiling_callback(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, diff -Nru darktable-4.4.2/src/iop/channelmixer.c darktable-4.6.1/src/iop/channelmixer.c --- darktable-4.4.2/src/iop/channelmixer.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/channelmixer.c 2024-02-16 17:31:09.000000000 +0000 @@ -153,15 +153,33 @@ return IOP_GROUP_COLOR | IOP_GROUP_GRADING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, void *new_params, - const int new_version) -{ - if(old_version == 1 && new_version == 2) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_channelmixer_params_v2_t + { + /** amount of red to mix value */ + float red[CHANNEL_SIZE]; // $MIN: -1.0 $MAX: 1.0 + /** amount of green to mix value */ + float green[CHANNEL_SIZE]; // $MIN: -1.0 $MAX: 1.0 + /** amount of blue to mix value */ + float blue[CHANNEL_SIZE]; // $MIN: -1.0 $MAX: 1.0 + /** algorithm version */ + _channelmixer_algorithm_t algorithm_version; + } dt_iop_channelmixer_params_v2_t; + + if(old_version == 1) { typedef struct dt_iop_channelmixer_params_v1_t { @@ -170,36 +188,44 @@ float blue[7]; } dt_iop_channelmixer_params_v1_t; - const dt_iop_channelmixer_params_v1_t *old = (dt_iop_channelmixer_params_v1_t *)old_params; - dt_iop_channelmixer_params_t *new = (dt_iop_channelmixer_params_t *)new_params; - dt_iop_channelmixer_params_t *defaults = (dt_iop_channelmixer_params_t *)self->default_params; + const dt_iop_channelmixer_params_v1_t *o = + (dt_iop_channelmixer_params_v1_t *)old_params; + dt_iop_channelmixer_params_v2_t *n = + (dt_iop_channelmixer_params_v2_t *)malloc(sizeof(dt_iop_channelmixer_params_v2_t)); + + memset(n, 0, sizeof(dt_iop_channelmixer_params_v2_t)); - *new = *defaults; // start with a fresh copy of default parameters - new->algorithm_version = CHANNEL_MIXER_VERSION_1; + n->algorithm_version = CHANNEL_MIXER_VERSION_1; // copy gray mixing parameters - new->red[CHANNEL_GRAY] = old->red[6]; - new->green[CHANNEL_GRAY] = old->green[6]; - new->blue[CHANNEL_GRAY] = old->blue[6]; + n->red[CHANNEL_GRAY] = o->red[6]; + n->green[CHANNEL_GRAY] = o->green[6]; + n->blue[CHANNEL_GRAY] = o->blue[6]; // version 1 does not use RGB mixing when gray is enabled - if(new->red[CHANNEL_GRAY] == 0.0f && new->green[CHANNEL_GRAY] == 0.0f && new->blue[CHANNEL_GRAY] == 0.0f) + if(n->red[CHANNEL_GRAY] == 0.0f + && n->green[CHANNEL_GRAY] == 0.0f + && n->blue[CHANNEL_GRAY] == 0.0f) { for(int i = 0; i < 3; i++) { - new->red[CHANNEL_RED + i] = old->red[3 + i]; - new->green[CHANNEL_RED + i] = old->green[3 + i]; - new->blue[CHANNEL_RED + i] = old->blue[3 + i]; + n->red[CHANNEL_RED + i] = o->red[3 + i]; + n->green[CHANNEL_RED + i] = o->green[3 + i]; + n->blue[CHANNEL_RED + i] = o->blue[3 + i]; } } // copy HSL mixing parameters for(int i = 0; i < 3; i++) { - new->red[i] = old->red[i]; - new->green[i] = old->green[i]; - new->blue[i] = old->blue[i]; + n->red[i] = o->red[i]; + n->green[i] = o->green[i]; + n->blue[i] = o->blue[i]; } + + *new_params = n; + *new_params_size = sizeof(dt_iop_channelmixer_params_v2_t); + *new_version = 2; return 0; } return 1; @@ -406,18 +432,11 @@ err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_channelmixer, width, height, CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(operation_mode), CLARG(dev_hsl_matrix), CLARG(dev_rgb_matrix)); - if(err != CL_SUCCESS) goto error; - - dt_opencl_release_mem_object(dev_hsl_matrix); - dt_opencl_release_mem_object(dev_rgb_matrix); - - return TRUE; error: dt_opencl_release_mem_object(dev_hsl_matrix); dt_opencl_release_mem_object(dev_rgb_matrix); - dt_print(DT_DEBUG_OPENCL, "[opencl_channelmixer] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif @@ -605,7 +624,7 @@ void gui_init(struct dt_iop_module_t *self) { dt_iop_channelmixer_gui_data_t *g = IOP_GUI_ALLOC(channelmixer); - dt_iop_channelmixer_params_t *p = (dt_iop_channelmixer_params_t *)self->default_params; + const dt_iop_channelmixer_params_t *const p = (dt_iop_channelmixer_params_t *)self->default_params; self->widget = gtk_box_new(GTK_ORIENTATION_VERTICAL, DT_BAUHAUS_SPACE); @@ -772,4 +791,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/channelmixerrgb.c darktable-4.6.1/src/iop/channelmixerrgb.c --- darktable-4.4.2/src/iop/channelmixerrgb.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/channelmixerrgb.c 2024-02-16 17:31:09.000000000 +0000 @@ -166,6 +166,7 @@ gboolean run_validation; // order a profile validation at next pipeline recompute gboolean profile_ready; // notify that a profile is ready to be applied gboolean checker_ready; // notify that a checker bounding box is ready to be used + gboolean is_blending; // it this instance blending? dt_colormatrix_t mix; gboolean is_profiling_started; @@ -245,9 +246,9 @@ return IOP_GROUP_COLOR; } -int default_colorspace(dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -255,17 +256,69 @@ int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, - const int new_version) -{ - if(old_version == 1 && new_version == 3) - { + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_channelmixer_rgb_params_v3_t + { + /* params of v1 and v2 */ + float red[CHANNEL_SIZE]; + float green[CHANNEL_SIZE]; + float blue[CHANNEL_SIZE]; + float saturation[CHANNEL_SIZE]; + float lightness[CHANNEL_SIZE]; + float grey[CHANNEL_SIZE]; + gboolean normalize_R, normalize_G, normalize_B, normalize_sat, normalize_light, normalize_grey; + dt_illuminant_t illuminant; + dt_illuminant_fluo_t illum_fluo; + dt_illuminant_led_t illum_led; + dt_adaptation_t adaptation; + float x, y; + float temperature; + float gamut; + gboolean clip; + + /* params of v3 */ + dt_iop_channelmixer_rgb_version_t version; + + /* always add new params after this so we can import legacy params with memcpy on the common part of the struct */ + + } dt_iop_channelmixer_rgb_params_v3_t; + + if(old_version == 1) + { + typedef struct dt_iop_channelmixer_rgb_params_v1_t + { + float red[CHANNEL_SIZE]; + float green[CHANNEL_SIZE]; + float blue[CHANNEL_SIZE]; + float saturation[CHANNEL_SIZE]; + float lightness[CHANNEL_SIZE]; + float grey[CHANNEL_SIZE]; + gboolean normalize_R, normalize_G, normalize_B, normalize_sat, normalize_light, normalize_grey; + dt_illuminant_t illuminant; + dt_illuminant_fluo_t illum_fluo; + dt_illuminant_led_t illum_led; + dt_adaptation_t adaptation; + float x, y; + float temperature; + float gamut; + gboolean clip; + } dt_iop_channelmixer_rgb_params_v1_t; + + const dt_iop_channelmixer_rgb_params_v1_t *o = + (dt_iop_channelmixer_rgb_params_v1_t *)old_params; + dt_iop_channelmixer_rgb_params_v3_t *n = + (dt_iop_channelmixer_rgb_params_v3_t *) + malloc(sizeof(dt_iop_channelmixer_rgb_params_v3_t)); + // V1 and V2 use the same param structure but the normalize_grey // param had no effect since commit_params forced normalization no // matter what. So we re-import the params and force the param to // TRUE to keep edits. - memcpy(new_params, old_params, sizeof(dt_iop_channelmixer_rgb_params_t)); - dt_iop_channelmixer_rgb_params_t *n = (dt_iop_channelmixer_rgb_params_t *)new_params; + memcpy(n, o, sizeof(dt_iop_channelmixer_rgb_params_v1_t)); + n->normalize_grey = TRUE; // V2 and V3 use the same param structure but these : @@ -279,31 +332,39 @@ // say that these params were created with legacy code n->version = CHANNELMIXERRGB_V_1; + *new_params = n; + *new_params_size = sizeof(dt_iop_channelmixer_rgb_params_v3_t); + *new_version = 3; return 0; } - if(old_version == 2 && new_version == 3) + if(old_version == 2) { typedef struct dt_iop_channelmixer_rgb_params_v2_t { - float red[CHANNEL_SIZE]; // $MIN: -2.0 $MAX: 2.0 - float green[CHANNEL_SIZE]; // $MIN: -2.0 $MAX: 2.0 - float blue[CHANNEL_SIZE]; // $MIN: -2.0 $MAX: 2.0 - float saturation[CHANNEL_SIZE]; // $MIN: -1.0 $MAX: 1.0 - float lightness[CHANNEL_SIZE]; // $MIN: -1.0 $MAX: 1.0 - float grey[CHANNEL_SIZE]; // $MIN: 0.0 $MAX: 1.0 - gboolean normalize_R, normalize_G, normalize_B, normalize_sat, normalize_light, normalize_grey; // $DESCRIPTION: "normalize channels" - dt_illuminant_t illuminant; // $DEFAULT: DT_ILLUMINANT_D - dt_illuminant_fluo_t illum_fluo; // $DEFAULT: DT_ILLUMINANT_FLUO_F3 $DESCRIPTION: "F source" - dt_illuminant_led_t illum_led; // $DEFAULT: DT_ILLUMINANT_LED_B5 $DESCRIPTION: "LED source" - dt_adaptation_t adaptation; // $DEFAULT: DT_ADAPTATION_LINEAR_BRADFORD - float x, y; // $DEFAULT: 0.333 - float temperature; // $MIN: 1667. $MAX: 25000. $DEFAULT: 5003. - float gamut; // $MIN: 0.0 $MAX: 4.0 $DEFAULT: 1.0 $DESCRIPTION: "gamut compression" - gboolean clip; // $DEFAULT: TRUE $DESCRIPTION: "clip negative RGB from gamut" + float red[CHANNEL_SIZE]; + float green[CHANNEL_SIZE]; + float blue[CHANNEL_SIZE]; + float saturation[CHANNEL_SIZE]; + float lightness[CHANNEL_SIZE]; + float grey[CHANNEL_SIZE]; + gboolean normalize_R, normalize_G, normalize_B, normalize_sat, normalize_light, normalize_grey; + dt_illuminant_t illuminant; + dt_illuminant_fluo_t illum_fluo; + dt_illuminant_led_t illum_led; + dt_adaptation_t adaptation; + float x, y; + float temperature; + float gamut; + gboolean clip; } dt_iop_channelmixer_rgb_params_v2_t; - memcpy(new_params, old_params, sizeof(dt_iop_channelmixer_rgb_params_v2_t)); - dt_iop_channelmixer_rgb_params_t *n = (dt_iop_channelmixer_rgb_params_t *)new_params; + const dt_iop_channelmixer_rgb_params_v2_t *o = + (dt_iop_channelmixer_rgb_params_v2_t *)old_params; + dt_iop_channelmixer_rgb_params_v3_t *n = + (dt_iop_channelmixer_rgb_params_v3_t *) + malloc(sizeof(dt_iop_channelmixer_rgb_params_v3_t)); + + memcpy(n, o, sizeof(dt_iop_channelmixer_rgb_params_v2_t)); // swap the saturation parameters for R and B to put them in natural order const float R = n->saturation[0]; @@ -314,6 +375,9 @@ // say that these params were created with legacy code n->version = CHANNELMIXERRGB_V_1; + *new_params = n; + *new_params_size = sizeof(dt_iop_channelmixer_rgb_params_v3_t); + *new_version = 3; return 0; } return 1; @@ -526,11 +590,11 @@ } -static int _get_white_balance_coeff(struct dt_iop_module_t *self, +static gboolean _get_white_balance_coeff(struct dt_iop_module_t *self, dt_aligned_pixel_t custom_wb) { // Init output with a no-op - for(size_t k = 0; k < 4; k++) custom_wb[k] = 1.f; + for_four_channels(k) custom_wb[k] = 1.f; if(!dt_image_is_matrix_correction_supported(&self->dev->image_storage)) return 1; @@ -551,20 +615,18 @@ bwb[1] = 1.0; } else - { - return 1; - } + return TRUE; // Second, if the temperature module is not using these, for example // because they are wrong and user made a correct preset, find the // WB adaptation ratio - if(self->dev->proxy.wb_coeffs[0] != 0.f) + const dt_dev_chroma_t *chr = &self->dev->chroma; + if(chr->wb_coeffs[0] > 1.0 || chr->wb_coeffs[1] > 1.0 || chr->wb_coeffs[2] > 1.0) { - for(size_t k = 0; k < 4; k++) - custom_wb[k] = bwb[k] / self->dev->proxy.wb_coeffs[k]; + for_four_channels(k) + custom_wb[k] = bwb[k] / chr->wb_coeffs[k]; } - - return 0; + return FALSE; } @@ -1133,21 +1195,26 @@ static void _declare_cat_on_pipe(struct dt_iop_module_t *self, const gboolean preset) { - // Advertise to the pipeline that we are doing chromatic adaptation here + // Avertise in dev->chroma that we are doing chromatic adaptation here // preset = TRUE allows to capture the CAT a priori at init time - dt_iop_channelmixer_rgb_params_t *p = (dt_iop_channelmixer_rgb_params_t *)self->params; + const dt_iop_channelmixer_rgb_params_t *p = (dt_iop_channelmixer_rgb_params_t *)self->params; + const dt_iop_channelmixer_rgb_gui_data_t *g = (dt_iop_channelmixer_rgb_gui_data_t *)self->gui_data; + if(!g) return; + + dt_dev_chroma_t *chr = &self->dev->chroma; if((self->enabled + && !g->is_blending && !(p->adaptation == DT_ADAPTATION_RGB || p->illuminant == DT_ILLUMINANT_PIPE)) || preset) { // We do CAT here so we need to register this instance as CAT-handler. - if(self->dev->proxy.chroma_adaptation == NULL) + if(chr->adaptation == NULL) { // We are the first to try to register, let's go ! - self->dev->proxy.chroma_adaptation = self; + chr->adaptation = self; } - else if(self->dev->proxy.chroma_adaptation == self) + else if(chr->adaptation == self) { } else @@ -1155,36 +1222,26 @@ // Another instance already registered. // If we are lower in the pipe than it, register in its place. if(dt_iop_is_first_instance(self->dev->iop, self)) - self->dev->proxy.chroma_adaptation = self; + chr->adaptation = self; } } else { - if(self->dev->proxy.chroma_adaptation != NULL) + if(chr->adaptation != NULL) { // We do NOT do CAT here. // Deregister this instance as CAT-handler if it previously registered - if(self->dev->proxy.chroma_adaptation == self) - self->dev->proxy.chroma_adaptation = NULL; + if(chr->adaptation == self) + chr->adaptation = NULL; } } } -static inline gboolean _is_another_module_cat_on_pipe(struct dt_iop_module_t *self) -{ - dt_iop_channelmixer_rgb_gui_data_t *g = - (dt_iop_channelmixer_rgb_gui_data_t *)self->gui_data; - if(!g) return FALSE; - return self->dev->proxy.chroma_adaptation && self->dev->proxy.chroma_adaptation != self; -} - - static void _update_illuminants(struct dt_iop_module_t *self); static void _update_approx_cct(struct dt_iop_module_t *self); static void _update_illuminant_color(struct dt_iop_module_t *self); static void _paint_temperature_background(struct dt_iop_module_t *self); - static void _check_if_close_to_daylight(const float x, const float y, float *temperature, @@ -1955,50 +2012,109 @@ dt_free_align(patches); } -static void _check_for_wb_issue_and_set_trouble_message(struct dt_iop_module_t *self, - dt_dev_pixelpipe_iop_t *piece) +static void _set_trouble_messages(struct dt_iop_module_t *self) { - dt_iop_channelmixer_rgb_params_t *p = (dt_iop_channelmixer_rgb_params_t *)self->params; - if(self->enabled - && !(p->illuminant == DT_ILLUMINANT_PIPE || p->adaptation == DT_ADAPTATION_RGB) - && !dt_image_is_monochrome(&self->dev->image_storage)) - { - // this module instance is doing chromatic adaptation - const dt_develop_blend_params_t *d = - piece ? (const dt_develop_blend_params_t *)piece->blendop_data : NULL; - const dt_develop_mask_mode_t mask_mode = d ? d->mask_mode : DEVELOP_MASK_DISABLED; - const gboolean is_blending = (mask_mode & DEVELOP_MASK_ENABLED) - && (mask_mode >= DEVELOP_MASK_MASK); - // Don't show the trouble message if some mask blending is used, that is very likely intended. - if(_is_another_module_cat_on_pipe(self) && !is_blending) - { - // our second biggest problem : another channelmixerrgb instance is doing CAT - // earlier in the pipe and we don't use masking here. - dt_iop_set_module_trouble_message - (self, _("double CAT applied"), - _("you have 2 instances or more of color calibration,\n" - "all performing chromatic adaptation.\n" - "this can lead to inconsistencies, unless you\n" - "use them with masks or know what you are doing."), - "double CAT applied"); - return; - } - else if(!self->dev->proxy.wb_is_D65) - { - // our first and biggest problem : white balance module is being - // clever with WB coeffs - dt_iop_set_module_trouble_message - (self, _("white balance module error"), - _("the white balance module is not using the camera\n" - "reference illuminant, which will cause issues here\n" - "with chromatic adaptation. either set it to reference\n" - "or disable chromatic adaptation here."), - "white balance error"); - return; - } + const dt_iop_channelmixer_rgb_params_t *p = (dt_iop_channelmixer_rgb_params_t *)self->params; + const dt_iop_channelmixer_rgb_gui_data_t *g = (dt_iop_channelmixer_rgb_gui_data_t *)self->gui_data; + const dt_develop_t *dev = self->dev; + const dt_dev_chroma_t *chr = &dev->chroma; + + if(!chr->temperature || !g) return; + if(!chr->adaptation) + { + dt_iop_set_module_trouble_message(chr->temperature, NULL, NULL, NULL); + dt_iop_set_module_trouble_message(self, NULL, NULL, NULL); + return; } - dt_iop_set_module_trouble_message(self, NULL, NULL, NULL); + const gboolean temp_enabled = + chr->wb_coeffs[0] > 1.0 + || chr->wb_coeffs[1] > 1.0 + || chr->wb_coeffs[2] > 1.0; + + const gboolean valid = + self->enabled + && !(p->illuminant == DT_ILLUMINANT_PIPE || p->adaptation == DT_ADAPTATION_RGB) + && !dt_image_is_monochrome(&dev->image_storage); + + dt_print_pipe(DT_DEBUG_PARAMS, "chroma trouble data", + NULL, self, NULL, NULL, + "D65=%s. NOW %.3f %.3f %.3f, D65 %.3f %.3f %.3f, AS-SHOT %.3f %.3f %.3f\n", + dt_dev_is_D65_chroma(dev) ? "YES" : "NO", + chr->wb_coeffs[0], chr->wb_coeffs[1], chr->wb_coeffs[2], + chr->D65coeffs[0], chr->D65coeffs[1], chr->D65coeffs[2], + chr->as_shot[0], chr->as_shot[1], chr->as_shot[2]); + + if(valid && chr->adaptation != self && temp_enabled && !g->is_blending) + { + // our second biggest problem : another channelmixerrgb instance is doing CAT + // earlier in the pipe and we don't use masking here. + dt_iop_set_module_trouble_message + (self, + _("double CAT applied"), + _("you have 2 instances or more of color calibration,\n" + "all providing chromatic adaptation.\n" + "this can lead to inconsistencies unless you\n" + "use them with masks or know what you are doing."), + "double CAT applied"); + return; + } + + if(valid && chr->adaptation == self + && temp_enabled + && !dt_dev_is_D65_chroma(dev)) + { + // our first and biggest problem : white balance module is being + // clever with WB coeffs + dt_iop_set_module_trouble_message + (chr->temperature, + _("white balance applied twice"), + _("the color calibration module is enabled and already provides\n" + "chromatic adaptation.\n" + "set the white balance here to camera reference (D65)\n" + "or disable chromatic adaptation in color calibration."), + "double application of white balance"); + + dt_iop_set_module_trouble_message + (self, + _("white balance module error"), + _("the white balance module is not using the camera\n" + "reference illuminant, which will cause issues here\n" + "with chromatic adaptation. either set it to reference\n" + "or disable chromatic adaptation here."), + "white balance is not using reference illuminant"); + return; + } + + if(valid && chr->adaptation && !temp_enabled && chr->temperature->default_enabled) + { + // our third and minor prooblem: white balance module is not active but default_enabled + // and we do chromatic adaptation in color calibration + dt_iop_set_module_trouble_message + (chr->temperature, + _("white balance missing"), + _("this module is not providing a valid reference illuminant\n" + "causing chromatic adaptation issues in color calibration.\n" + "enable this module and either set it to reference\n" + "or disable chromatic adaptation in color calibration."), + "white balance disabled but required"); + + dt_iop_set_module_trouble_message + (self, + _("white balance missing"), + _("the white balance module is not providing a valid reference\n" + "illuminant causing issues with chromatic adaptation here.\n" + "enable white balance and either set it to reference\n" + "or disable chromatic adaptation here."), + "white balance missing for color calibration"); + return; + } + + if(chr->adaptation && chr->adaptation == self) + { + dt_iop_set_module_trouble_message(chr->temperature, NULL, NULL, NULL); + dt_iop_set_module_trouble_message(self, NULL, NULL, NULL); + } } void process(struct dt_iop_module_t *self, @@ -2022,11 +2138,8 @@ return; // image has been copied through to output and module's // trouble flag has been updated - _declare_cat_on_pipe(self, FALSE); - - // dt_iop_have_required_input_format() has reset the trouble message. - // we must set it again in case of any trouble. - _check_for_wb_issue_and_set_trouble_message(self, piece); + if(piece->pipe->type & DT_DEV_PIXELPIPE_PREVIEW) + _declare_cat_on_pipe(self, FALSE); dt_colormatrix_t RGB_to_XYZ; dt_colormatrix_t XYZ_to_RGB; @@ -2073,7 +2186,7 @@ // anyway _auto_detect_WB(in, out, data->illuminant_type, roi_in->width, roi_in->height, ch, RGB_to_XYZ, g->XYZ); - dt_dev_pixelpipe_cache_invalidate_later(piece->pipe, self); + dt_dev_pixelpipe_cache_invalidate_later(piece->pipe, self->iop_order); dt_iop_gui_leave_critical_section(self); } @@ -2197,11 +2310,8 @@ const struct dt_iop_order_iccprofile_info_t *const work_profile = dt_ioppr_get_pipe_current_profile_info(self, piece->pipe); - _declare_cat_on_pipe(self, FALSE); - - // dt_iop_have_required_input_format() has reset the trouble message. - // we must set it again in case of any trouble. - _check_for_wb_issue_and_set_trouble_message(self, piece); + if(piece->pipe->type & DT_DEV_PIXELPIPE_PREVIEW) + _declare_cat_on_pipe(self, FALSE); if(d->illuminant_type == DT_ILLUMINANT_CAMERA) { @@ -2243,16 +2353,15 @@ size_t sizes[] = { ROUNDUPDWD(width, devid), ROUNDUPDHT(height, devid), 1 }; - cl_mem input_matrix_cl = NULL; - cl_mem output_matrix_cl = NULL; - - input_matrix_cl = dt_opencl_copy_host_to_device_constant + cl_mem input_matrix_cl = dt_opencl_copy_host_to_device_constant (devid, 12 * sizeof(float), (float*)work_profile->matrix_in); - output_matrix_cl = dt_opencl_copy_host_to_device_constant + cl_mem output_matrix_cl = dt_opencl_copy_host_to_device_constant (devid, 12 * sizeof(float), (float*)work_profile->matrix_out); cl_mem MIX_cl = dt_opencl_copy_host_to_device_constant (devid, 12 * sizeof(float), d->MIX); + if(input_matrix_cl == NULL || output_matrix_cl == NULL || MIX_cl == NULL) + goto error; // select the right kernel for the current LMS space int kernel = gd->kernel_channelmixer_rgb_rgb; @@ -2294,23 +2403,15 @@ CLARG(MIX_cl), CLARG(d->illuminant), CLARG(d->saturation), CLARG(d->lightness), CLARG(d->grey), CLARG(d->p), CLARG(d->gamut), CLARG(d->clip), CLARG(d->apply_grey), - CLARG(d->version)); + CLARG(d->version)); err = dt_opencl_enqueue_kernel_2d(devid, kernel, sizes); - if(err != CL_SUCCESS) goto error; +error: dt_opencl_release_mem_object(input_matrix_cl); dt_opencl_release_mem_object(output_matrix_cl); dt_opencl_release_mem_object(MIX_cl); - return TRUE; - -error: - if(input_matrix_cl) dt_opencl_release_mem_object(input_matrix_cl); - if(output_matrix_cl) dt_opencl_release_mem_object(output_matrix_cl); - if(MIX_cl) dt_opencl_release_mem_object(MIX_cl); - dt_print(DT_DEBUG_OPENCL, - "[opencl_channelmixerrgb] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } void init_global(dt_iop_module_so_t *module) @@ -2408,11 +2509,12 @@ -int mouse_moved(struct dt_iop_module_t *self, - const double x, - const double y, +int mouse_moved(dt_iop_module_t *self, + const float pzx, + const float pzy, const double pressure, - const int which) + const int which, + const float zoom_scale) { if(!self->enabled) return 0; @@ -2421,17 +2523,8 @@ if(g == NULL || !g->is_profiling_started) return 0; if(g->box[0].x == -1.0f || g->box[1].y == -1.0f) return 0; - dt_develop_t *dev = self->dev; - const float wd = dev->preview_pipe->backbuf_width; - const float ht = dev->preview_pipe->backbuf_height; - if(wd == 0.f || ht == 0.f) return 0; - - float pzx, pzy; - dt_dev_get_pointer_zoom_pos(dev, x, y, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; - pzx *= wd; - pzy *= ht; + float wd, ht; + if(!dt_dev_get_preview_size(self->dev, &wd, &ht)) return 0; // if dragging and dropping, don't update active nodes, // just update cursor coordinates then redraw @@ -2439,14 +2532,14 @@ if(g->drag_drop) { dt_iop_gui_enter_critical_section(self); - g->click_end.x = pzx; - g->click_end.y = pzy; + g->click_end.x = pzx * wd; + g->click_end.y = pzy * ht; _update_bounding_box(g, g->click_end.x - g->click_start.x, g->click_end.y - g->click_start.y); - g->click_start.x = pzx; - g->click_start.y = pzy; + g->click_start.x = pzx * wd; + g->click_start.y = pzy * ht; dt_iop_gui_leave_critical_section(self); dt_control_queue_redraw_center(); @@ -2459,7 +2552,7 @@ for(size_t k = 0; k < 4; k++) { - if(hypotf(pzx - g->box[k].x, pzy - g->box[k].y) < 15.f) + if(hypotf(pzx * wd - g->box[k].x, pzy * ht - g->box[k].y) < 15.f) { g->active_node[k] = TRUE; g->is_cursor_close = TRUE; @@ -2490,13 +2583,14 @@ return 1; } -int button_pressed(struct dt_iop_module_t *self, - const double x, - const double y, +int button_pressed(dt_iop_module_t *self, + const float pzx, + const float pzy, const double pressure, const int which, const int type, - const uint32_t state) + const uint32_t state, + const float zoom_scale) { if(!self->enabled) return 0; @@ -2505,10 +2599,8 @@ if(g == NULL || !g->is_profiling_started) return 0; - dt_develop_t *dev = self->dev; - const float wd = dev->preview_pipe->backbuf_width; - const float ht = dev->preview_pipe->backbuf_height; - if(wd == 0.f || ht == 0.f) return 0; + float wd, ht; + if(!dt_dev_get_preview_size(self->dev, &wd, &ht)) return 0; // double click : reset the perspective correction if(type == GDK_DOUBLE_BUTTON_PRESS) @@ -2529,17 +2621,10 @@ // cursor is not on a node, abort if(!g->is_cursor_close) return 0; - float pzx, pzy; - dt_dev_get_pointer_zoom_pos(dev, x, y, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; - pzx *= wd; - pzy *= ht; - dt_iop_gui_enter_critical_section(self); g->drag_drop = TRUE; - g->click_start.x = pzx; - g->click_start.y = pzy; + g->click_start.x = pzx * wd; + g->click_start.y = pzy * ht; dt_iop_gui_leave_critical_section(self); dt_control_queue_redraw_center(); @@ -2547,11 +2632,12 @@ return 1; } -int button_released(struct dt_iop_module_t *self, - const double x, - const double y, +int button_released(dt_iop_module_t *self, + const float pzx, + const float pzy, const int which, - const uint32_t state) + const uint32_t state, + const float zoom_scale) { if(!self->enabled) return 0; @@ -2562,22 +2648,13 @@ if(g->box[0].x == -1.0f || g->box[1].y == -1.0f) return 0; if(!g->is_cursor_close || !g->drag_drop) return 0; - dt_develop_t *dev = self->dev; - const float wd = dev->preview_pipe->backbuf_width; - const float ht = dev->preview_pipe->backbuf_height; - if(wd == 0.f || ht == 0.f) return 0; - - float pzx, pzy; - dt_dev_get_pointer_zoom_pos(dev, x, y, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; - pzx *= wd; - pzy *= ht; + float wd, ht; + if(!dt_dev_get_preview_size(self->dev, &wd, &ht)) return 0; dt_iop_gui_enter_critical_section(self); g->drag_drop = FALSE; - g->click_end.x = pzx; - g->click_end.y = pzy; + g->click_end.x = pzx * wd; + g->click_end.y = pzy * ht; _update_bounding_box(g, g->click_end.x - g->click_start.x, g->click_end.y - g->click_start.y); dt_iop_gui_leave_critical_section(self); @@ -2587,37 +2664,26 @@ return 1; } -void gui_post_expose(struct dt_iop_module_t *self, +void gui_post_expose(dt_iop_module_t *self, cairo_t *cr, - const int32_t width, - const int32_t height, - const int32_t pointerx, - const int32_t pointery) + const float width, + const float height, + const float pointerx, + const float pointery, + const float zoom_scale) { const dt_iop_order_iccprofile_info_t *const work_profile = - dt_ioppr_get_pipe_output_profile_info(self->dev->pipe); + dt_ioppr_get_pipe_output_profile_info(self->dev->full.pipe); if(work_profile == NULL) return; dt_iop_channelmixer_rgb_gui_data_t *g = (dt_iop_channelmixer_rgb_gui_data_t *)self->gui_data; if(!g->is_profiling_started) return; - // Rescale and shift Cairo drawing coordinates - dt_develop_t *dev = self->dev; - const float wd = dev->preview_pipe->backbuf_width; - const float ht = dev->preview_pipe->backbuf_height; - if(wd == 0.f || ht == 0.f) return; - - const float zoom_y = dt_control_get_dev_zoom_y(); - const float zoom_x = dt_control_get_dev_zoom_x(); - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 1); - cairo_translate(cr, width / 2.0, height / 2.0); - cairo_scale(cr, zoom_scale, zoom_scale); - cairo_translate(cr, -.5f * wd - zoom_x * wd, -.5f * ht - zoom_y * ht); + const gboolean showhandle = dt_iop_canvas_not_sensitive(darktable.develop) == FALSE; + const double lwidth = (showhandle ? 1.0 : 0.5) / zoom_scale; - cairo_set_line_width(cr, 2.0 / zoom_scale); + cairo_set_line_width(cr, 2.0 * lwidth); const double origin = 9. / zoom_scale; const double destination = 18. / zoom_scale; @@ -2643,19 +2709,22 @@ cairo_stroke(cr); } - // draw outline circle - cairo_set_source_rgba(cr, 1., 1., 1., 1.); - cairo_arc(cr, g->box[k].x, g->box[k].y, 8. / zoom_scale, 0, 2. * M_PI); - cairo_stroke(cr); + if(showhandle) + { + // draw outline circle + cairo_set_source_rgba(cr, 1., 1., 1., 1.); + cairo_arc(cr, g->box[k].x, g->box[k].y, 8. / zoom_scale, 0, 2. * M_PI); + cairo_stroke(cr); - // draw black dot - cairo_set_source_rgba(cr, 0., 0., 0., 1.); - cairo_arc(cr, g->box[k].x, g->box[k].y, 1.5 / zoom_scale, 0, 2. * M_PI); - cairo_fill(cr); + // draw black dot + cairo_set_source_rgba(cr, 0., 0., 0., 1.); + cairo_arc(cr, g->box[k].x, g->box[k].y, 1.5 / zoom_scale, 0, 2. * M_PI); + cairo_fill(cr); + } } // draw symmetry axes - cairo_set_line_width(cr, 1.5 / zoom_scale); + cairo_set_line_width(cr, 1.5 * lwidth); cairo_set_source_rgba(cr, 1., 1., 1., 1.); const point_t top_ideal = { 0.5f, 1.f }; const point_t top = apply_homography(top_ideal, g->homography); @@ -2733,9 +2802,9 @@ } } - cairo_set_line_width(cr, 5.0 / zoom_scale); + cairo_set_line_width(cr, 5.0 * lwidth); cairo_stroke_preserve(cr); - cairo_set_line_width(cr, 2.0 / zoom_scale); + cairo_set_line_width(cr, 2.0 * lwidth); cairo_set_source_rgba(cr, 1., 1., 1., 1.); cairo_stroke(cr); @@ -2780,10 +2849,8 @@ dt_conf_set_int("darkroom/modules/channelmixerrgb/colorchecker", i); g->checker = dt_get_color_checker(i); - dt_develop_t *dev = self->dev; - const float wd = dev->preview_pipe->backbuf_width; - const float ht = dev->preview_pipe->backbuf_height; - if(wd == 0.f || ht == 0.f) return; + float wd, ht; + if(!dt_dev_get_preview_size(self->dev, &wd, &ht)) return; dt_iop_gui_enter_critical_section(self); g->profile_ready = FALSE; @@ -2815,10 +2882,8 @@ dt_iop_request_focus(self); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->off), TRUE); - dt_develop_t *dev = self->dev; - const float wd = dev->preview_pipe->backbuf_width; - const float ht = dev->preview_pipe->backbuf_height; - if(wd == 0.f || ht == 0.f) return; + float wd, ht; + if(!dt_dev_get_preview_size(self->dev, &wd, &ht)) return; dt_iop_channelmixer_rgb_gui_data_t *g = (dt_iop_channelmixer_rgb_gui_data_t *)self->gui_data; @@ -2984,6 +3049,7 @@ dt_iop_gui_enter_critical_section(self); gtk_label_set_markup(GTK_LABEL(g->label_delta_E), g->delta_E_label_text); dt_iop_gui_leave_critical_section(self); + if(g) _set_trouble_messages(self); } void commit_params(struct dt_iop_module_t *self, @@ -3100,8 +3166,13 @@ piece->process_cl_ready = FALSE; } } -} + // if this module has some mask applied we assume it's safe so give no warning + const dt_develop_blend_params_t *b = (const dt_develop_blend_params_t *)piece->blendop_data; + const dt_develop_mask_mode_t mask_mode = b ? b->mask_mode : DEVELOP_MASK_DISABLED; + const gboolean is_blending = (mask_mode & DEVELOP_MASK_ENABLED) && (mask_mode >= DEVELOP_MASK_MASK); + if(g) g->is_blending = is_blending; +} static void _update_illuminants(dt_iop_module_t *self) { @@ -3414,7 +3485,7 @@ // update the fill background color of x, y sliders dt_iop_channelmixer_rgb_params_t *p = (dt_iop_channelmixer_rgb_params_t *)self->params; const struct dt_iop_order_iccprofile_info_t *const work_profile = - dt_ioppr_get_pipe_current_profile_info(self, self->dev->pipe); + dt_ioppr_get_pipe_current_profile_info(self, self->dev->full.pipe); // scale params if needed dt_aligned_pixel_t RGB = { a[0], a[1], a[2] }; @@ -3704,7 +3775,7 @@ dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) { - self->dev->proxy.chroma_adaptation = NULL; + dt_dev_reset_chroma(self->dev); dt_free_align(piece->data); piece->data = NULL; } @@ -3830,8 +3901,8 @@ // check if we could register const gboolean CAT_already_applied = - (module->dev->proxy.chroma_adaptation != NULL) // CAT exists - && (module->dev->proxy.chroma_adaptation != module) // and it is not us + (module->dev->chroma.adaptation != NULL) // CAT exists + && (module->dev->chroma.adaptation != module) // and it is not us && (!dt_image_is_monochrome(img)); module->default_enabled = FALSE; @@ -3921,7 +3992,7 @@ // Re-run auto illuminant if color picker is active and mode is correct const dt_spot_mode_t mode = dt_bauhaus_combobox_get(g->spot_mode); if(mode == DT_SPOT_MODE_CORRECT) - _auto_set_illuminant(self, darktable.develop->pipe); + _auto_set_illuminant(self, darktable.develop->full.pipe); // else : just record new values and do nothing } @@ -4084,9 +4155,6 @@ _declare_cat_on_pipe(self, FALSE); - if(!self->dev->proxy.wb_is_D65 || !self->enabled) - _check_for_wb_issue_and_set_trouble_message(self, NULL); - --darktable.gui->reset; } @@ -4352,10 +4420,10 @@ void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, - dt_dev_pixelpipe_iop_t *piece) + dt_dev_pixelpipe_t *pipe) { if(darktable.gui->reset) return; - _auto_set_illuminant(self, piece->pipe); + _auto_set_illuminant(self, pipe); } @@ -4471,7 +4539,7 @@ dt_gui_new_collapsible_section (&g->csspot, "plugins/darkroom/channelmixerrgb/expand_picker_mapping", - _("spot color mapping"), + _("area color mapping"), GTK_BOX(self->widget), DT_ACTION(self)); @@ -4484,7 +4552,7 @@ " surface over your series of images.")); DT_BAUHAUS_COMBOBOX_NEW_FULL - (g->spot_mode, self, N_("mapping"), N_("spot mode"), + (g->spot_mode, self, N_("mapping"), N_("area mode"), _("\"correction\" automatically adjust the illuminant\n" "such that the input color is mapped to the target.\n" "\"measure\" simply shows how an input color is mapped by the CAT\n" diff -Nru darktable-4.4.2/src/iop/clahe.c darktable-4.6.1/src/iop/clahe.c --- darktable-4.4.2/src/iop/clahe.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/clahe.c 2024-02-16 17:31:09.000000000 +0000 @@ -79,7 +79,9 @@ return IOP_FLAGS_INCLUDE_IN_STYLES | IOP_FLAGS_DEPRECATED; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } diff -Nru darktable-4.4.2/src/iop/clipping.c darktable-4.6.1/src/iop/clipping.c --- darktable-4.4.2/src/iop/clipping.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/clipping.c 2024-02-16 17:31:09.000000000 +0000 @@ -103,14 +103,37 @@ /* calculate the aspect ratios for current image */ static void keystone_type_populate(struct dt_iop_module_t *self, gboolean with_applied, int select); -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, const int new_version) -{ - if(new_version <= old_version) return 1; - if(new_version != 5) return 1; +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_clipping_params_v5_t + { + float angle; + float cx; + float cy; + float cw; + float ch; + float k_h, k_v; + float kxa; + float kya; + float kxb; + float kyb; + float kxc; + float kyc; + float kxd; + float kyd; + int k_type, k_sym; + int k_apply; + gboolean crop_auto; + int ratio_n; + int ratio_d; + } dt_iop_clipping_params_v5_t; - dt_iop_clipping_params_t *n = (dt_iop_clipping_params_t *)new_params; - if(old_version == 2 && new_version == 5) + if(old_version == 2) { union { float f; @@ -123,6 +146,8 @@ } old_params_t; const old_params_t *o = (old_params_t *)old_params; + dt_iop_clipping_params_v5_t *n = + (dt_iop_clipping_params_v5_t *)malloc(sizeof(dt_iop_clipping_params_v5_t)); k.f = o->k_h; int is_horizontal; @@ -155,11 +180,16 @@ n->k_apply = 0; n->crop_auto = 1; - // will be computed later, -2 here is used to detect uninitialized value, -1 is already used for no - // clipping. + // will be computed later, -2 here is used to detect uninitialized + // value, -1 is already used for no clipping. n->ratio_d = n->ratio_n = -2; + + *new_params = n; + *new_params_size = sizeof(dt_iop_clipping_params_v5_t); + *new_version = 5; + return 0; } - if(old_version == 3 && new_version == 5) + if(old_version == 3) { // old structure def typedef struct old_params_t @@ -168,6 +198,8 @@ } old_params_t; const old_params_t *o = (old_params_t *)old_params; + dt_iop_clipping_params_v5_t *n = + (dt_iop_clipping_params_v5_t *)malloc(sizeof(dt_iop_clipping_params_v5_t)); n->angle = o->angle, n->cx = o->cx, n->cy = o->cy, n->cw = o->cw, n->ch = o->ch; n->k_h = o->k_h, n->k_v = o->k_v; @@ -183,11 +215,16 @@ n->k_apply = 0; n->crop_auto = 1; - // will be computed later, -2 here is used to detect uninitialized value, -1 is already used for no - // clipping. + // will be computed later, -2 here is used to detect uninitialized + // value, -1 is already used for no clipping. n->ratio_d = n->ratio_n = -2; + + *new_params = n; + *new_params_size = sizeof(dt_iop_clipping_params_v5_t); + *new_version = 5; + return 0; } - if(old_version == 4 && new_version == 5) + if(old_version == 4) { typedef struct old_params_t { @@ -198,6 +235,8 @@ } old_params_t; const old_params_t *o = (old_params_t *)old_params; + dt_iop_clipping_params_v5_t *n = + (dt_iop_clipping_params_v5_t *)malloc(sizeof(dt_iop_clipping_params_v5_t)); n->angle = o->angle, n->cx = o->cx, n->cy = o->cy, n->cw = o->cw, n->ch = o->ch; n->k_h = o->k_h, n->k_v = o->k_v; @@ -208,12 +247,17 @@ n->k_apply = o->k_apply; n->crop_auto = o->crop_auto; - // will be computed later, -2 here is used to detect uninitialized value, -1 is already used for no - // clipping. + // will be computed later, -2 here is used to detect uninitialized + // value, -1 is already used for no clipping. n->ratio_d = n->ratio_n = -2; + + *new_params = n; + *new_params_size = sizeof(dt_iop_clipping_params_v5_t); + *new_version = 5; + return 0; } - return 0; + return 1; } typedef struct dt_iop_clipping_gui_data_t @@ -230,7 +274,6 @@ GtkWidget *keystone_type; GtkWidget *crop_auto; - float button_down_x, button_down_y; float button_down_zoom_x, button_down_zoom_y, button_down_angle; // position in image where the button has been pressed. /* current clip box */ @@ -336,16 +379,18 @@ int operation_tags() { - return IOP_TAG_DISTORT | IOP_TAG_CLIPPING; + return IOP_TAG_DISTORT | IOP_TAG_CROPPING; } int operation_tags_filter() { // switch off watermark, it gets confused. - return IOP_TAG_DECORATION | IOP_TAG_CLIPPING; + return IOP_TAG_DECORATION | IOP_TAG_CROPPING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -450,7 +495,10 @@ o[0] *= (1.0f + o[1] * t_v); } -int distort_transform(dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, float *const restrict points, size_t points_count) +gboolean distort_transform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *const restrict points, + size_t points_count) { // as dt_iop_roi_t contain int values and not floats, we can have some rounding errors // as a workaround, we use a factor for preview pipes @@ -517,10 +565,12 @@ self->modify_roi_out(self, piece, &roi_out, &roi_in); } - return 1; + return TRUE; } -int distort_backtransform(dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, float *const restrict points, - size_t points_count) +gboolean distort_backtransform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *const restrict points, + size_t points_count) { // as dt_iop_roi_t contain int values and not floats, we can have some rounding errors // as a workaround, we use a factor for preview pipes @@ -587,11 +637,15 @@ self->modify_roi_out(self, piece, &roi_out, &roi_in); } - return 1; + return TRUE; } -void distort_mask(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const float *const in, - float *const out, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) +void distort_mask(struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + const float *const in, + float *const out, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) { dt_iop_clipping_data_t *d = (dt_iop_clipping_data_t *)piece->data; @@ -681,16 +735,19 @@ if(!dt_dev_distort_transform_plus(self->dev, self->dev->preview_pipe, self->iop_order, DT_DEV_TRANSFORM_DIR_FORW_EXCL, points, 4)) return 0; - g->clip_max_x = fmaxf(points[0] / self->dev->preview_pipe->backbuf_width, 0.0f); - g->clip_max_y = fmaxf(points[1] / self->dev->preview_pipe->backbuf_height, 0.0f); - g->clip_max_w = fminf((points[2] - points[0]) / self->dev->preview_pipe->backbuf_width, 1.0f); - g->clip_max_h = fminf((points[3] - points[1]) / self->dev->preview_pipe->backbuf_height, 1.0f); + float wd, ht; + dt_dev_get_preview_size(self->dev, &wd, &ht); + + g->clip_max_x = fmaxf(points[0] / wd, 0.0f); + g->clip_max_y = fmaxf(points[1] / ht, 0.0f); + g->clip_max_w = fminf((points[2] - points[0]) / wd, 1.0f); + g->clip_max_h = fminf((points[3] - points[1]) / ht, 1.0f); // if clipping values are not null, this is undistorted values... - g->clip_x = fmaxf(points[4] / self->dev->preview_pipe->backbuf_width, g->clip_max_x); - g->clip_y = fmaxf(points[5] / self->dev->preview_pipe->backbuf_height, g->clip_max_y); - g->clip_w = fminf((points[6] - points[4]) / self->dev->preview_pipe->backbuf_width, g->clip_max_w); - g->clip_h = fminf((points[7] - points[5]) / self->dev->preview_pipe->backbuf_height, g->clip_max_h); + g->clip_x = fmaxf(points[4] / wd, g->clip_max_x); + g->clip_y = fmaxf(points[5] / ht, g->clip_max_y); + g->clip_w = fminf((points[6] - points[4]) / wd, g->clip_max_w); + g->clip_h = fminf((points[7] - points[5]) / ht, g->clip_max_h); g->clip_max_pipe_hash = self->dev->preview_pipe->backbuf_hash; return 1; @@ -1083,7 +1140,7 @@ crkernel = gd->kernel_clip_rotate_lanczos3; break; default: - return FALSE; + return err; } int roi[2] = { roi_in->x, roi_in->y }; @@ -1114,14 +1171,10 @@ CLARG(roi_in->width), CLARG(roi_in->height), CLARG(roi), CLARG(roo), CLARG(roi_in->scale), CLARG(roi_out->scale), CLARG(d->flip), CLARG(t), CLARG(k), CLARG(m), CLARG(k_space), CLARG(ka), CLARG(maa), CLARG(mbb)); err = dt_opencl_enqueue_kernel_2d(devid, crkernel, sizes); - if(err != CL_SUCCESS) goto error; } - return TRUE; - error: - dt_print(DT_DEBUG_OPENCL, "[opencl_clipping] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif @@ -1394,7 +1447,7 @@ if(text && !g_strcmp0(text,_("original image"))) { int proc_iwd = 0, proc_iht = 0; - dt_dev_get_processed_size(darktable.develop, &proc_iwd, &proc_iht); + dt_dev_get_processed_size(&darktable.develop->full, &proc_iwd, &proc_iht); if(!(proc_iwd > 0 && proc_iht > 0)) return 0.0f; @@ -1522,7 +1575,7 @@ dt_iop_clipping_gui_data_t *g = (dt_iop_clipping_gui_data_t *)self->gui_data; int iwd, iht; - dt_dev_get_processed_size(darktable.develop, &iwd, &iht); + dt_dev_get_processed_size(&darktable.develop->full, &iwd, &iht); // enforce aspect ratio. float aspect = _ratio_get_aspect(self, g->aspect_presets); @@ -2324,8 +2377,13 @@ } // draw guides and handles over the image -void gui_post_expose(struct dt_iop_module_t *self, cairo_t *cr, int32_t width, int32_t height, - int32_t pointerx, int32_t pointery) +void gui_post_expose(dt_iop_module_t *self, + cairo_t *cr, + const float wd, + const float ht, + const float pzx, + const float pzy, + const float zoom_scale) { dt_develop_t *dev = self->dev; dt_iop_clipping_gui_data_t *g = (dt_iop_clipping_gui_data_t *)self->gui_data; @@ -2337,32 +2395,16 @@ // reapply box aspect to be sure that the ratio has not been modified by the keystone transform apply_box_aspect(self, GRAB_HORIZONTAL); - const float wd = dev->preview_pipe->backbuf_width; - const float ht = dev->preview_pipe->backbuf_height; - const float zoom_y = dt_control_get_dev_zoom_y(); - const float zoom_x = dt_control_get_dev_zoom_x(); - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float pr_d = dev->preview_downsampling; - const float zoom_scale = dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 1); - - cairo_translate(cr, width / 2.0, height / 2.0); - cairo_scale(cr, zoom_scale, zoom_scale); - cairo_translate(cr, -.5f * wd - zoom_x * wd, -.5f * ht - zoom_y * ht); - double dashes = DT_PIXEL_APPLY_DPI(5.0) / zoom_scale; // draw cropping window - float pzx, pzy; - dt_dev_get_pointer_zoom_pos(dev, pointerx, pointery, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; if(_iop_clipping_set_max_clip(self)) { cairo_set_source_rgba(cr, .2, .2, .2, .8); cairo_set_fill_rule(cr, CAIRO_FILL_RULE_EVEN_ODD); - cairo_rectangle(cr, g->clip_max_x * wd - pr_d, g->clip_max_y * ht - pr_d, - g->clip_max_w * wd + 2.0 * pr_d, g->clip_max_h * ht + 2.0 * pr_d); + + cairo_rectangle(cr, g->clip_max_x * wd - 1.0, g->clip_max_y * ht - 1.0, + g->clip_max_w * wd + 2.0, g->clip_max_h * ht + 2.0); cairo_rectangle(cr, g->clip_x * wd, g->clip_y * ht, g->clip_w * wd, g->clip_h * ht); cairo_fill(cr); } @@ -2388,7 +2430,7 @@ pango_layout_set_font_description(layout, desc); int procw, proch; - dt_dev_get_processed_size(dev, &procw, &proch); + dt_dev_get_processed_size(&dev->full, &procw, &proch); snprintf(dimensions, sizeof(dimensions), "%i x %i", (int)(procw * g->clip_w), (int)(proch * g->clip_h)); pango_layout_set_text(layout, dimensions, -1); @@ -2430,10 +2472,10 @@ pango_font_description_set_absolute_size(desc, DT_PIXEL_APPLY_DPI(16) * PANGO_SCALE / zoom_scale); layout = pango_cairo_create_layout(cr); pango_layout_set_font_description(layout, desc); - const float bzx = g->button_down_zoom_x + .5f, bzy = g->button_down_zoom_y + .5f; - cairo_arc(cr, bzx * wd, bzy * ht, DT_PIXEL_APPLY_DPI(3) * pr_d, 0, 2.0 * M_PI); + const float bzx = g->button_down_zoom_x, bzy = g->button_down_zoom_y; + cairo_arc(cr, bzx * wd, bzy * ht, DT_PIXEL_APPLY_DPI(3), 0, 2.0 * M_PI); cairo_stroke(cr); - cairo_arc(cr, pzx * wd, pzy * ht, DT_PIXEL_APPLY_DPI(3) * pr_d, 0, 2.0 * M_PI); + cairo_arc(cr, pzx * wd, pzy * ht, DT_PIXEL_APPLY_DPI(3), 0, 2.0 * M_PI); cairo_stroke(cr); cairo_move_to(cr, bzx * wd, bzy * ht); cairo_line_to(cr, pzx * wd, pzy * ht); @@ -2669,7 +2711,7 @@ PangoRectangle ink; PangoFontDescription *desc = pango_font_description_copy_static(darktable.bauhaus->pango_font_desc); pango_font_description_set_weight(desc, PANGO_WEIGHT_BOLD); - pango_font_description_set_absolute_size(desc, DT_PIXEL_APPLY_DPI(16) * PANGO_SCALE * pr_d); + pango_font_description_set_absolute_size(desc, DT_PIXEL_APPLY_DPI(16) * PANGO_SCALE); layout = pango_cairo_create_layout(cr); pango_layout_set_font_description(layout, desc); cairo_set_font_size(cr, DT_PIXEL_APPLY_DPI(16)); @@ -2678,10 +2720,10 @@ int c[2] = { (MIN(pts[4], pts[2]) + MAX(pts[0], pts[6])) / 2.0f, (MIN(pts[5], pts[7]) + MAX(pts[1], pts[3])) / 2.0f }; cairo_set_source_rgba(cr, .5, .5, .5, .9); - dt_gui_draw_rounded_rectangle(cr, ink.width + DT_PIXEL_APPLY_DPI(8) * pr_d, - ink.height + DT_PIXEL_APPLY_DPI(12) * pr_d, - c[0] - ink.width / 2.0f - DT_PIXEL_APPLY_DPI(4) * pr_d, - c[1] - ink.height / 2.0f - DT_PIXEL_APPLY_DPI(6) * pr_d); + dt_gui_draw_rounded_rectangle(cr, ink.width + DT_PIXEL_APPLY_DPI(8), + ink.height + DT_PIXEL_APPLY_DPI(12), + c[0] - ink.width / 2.0f - DT_PIXEL_APPLY_DPI(4), + c[1] - ink.height / 2.0f - DT_PIXEL_APPLY_DPI(6)); cairo_move_to(cr, c[0] - ink.width / 2.0, c[1] - 3.0 * ink.height / 4.0); dt_draw_set_color_overlay(cr, FALSE, 0.9); pango_cairo_show_layout(cr, layout); @@ -2693,14 +2735,14 @@ if(p->k_type == 1 || p->k_type == 3) { if(p->k_sym == 1 || p->k_sym == 3) sym = TRUE; - gui_draw_sym(cr, (pts[0] + pts[6]) / 2.0f, (pts[1] + pts[7]) / 2.0f, pr_d, sym); - gui_draw_sym(cr, (pts[2] + pts[4]) / 2.0f, (pts[3] + pts[5]) / 2.0f, pr_d, sym); + gui_draw_sym(cr, (pts[0] + pts[6]) / 2.0f, (pts[1] + pts[7]) / 2.0f, 1.0f, sym); + gui_draw_sym(cr, (pts[2] + pts[4]) / 2.0f, (pts[3] + pts[5]) / 2.0f, 1.0f, sym); } if(p->k_type == 2 || p->k_type == 3) { sym = (p->k_sym >= 2); - gui_draw_sym(cr, (pts[0] + pts[2]) / 2.0f, (pts[1] + pts[3]) / 2.0f, pr_d, sym); - gui_draw_sym(cr, (pts[6] + pts[4]) / 2.0f, (pts[7] + pts[5]) / 2.0f, pr_d, sym); + gui_draw_sym(cr, (pts[0] + pts[2]) / 2.0f, (pts[1] + pts[3]) / 2.0f, 1.0f, sym); + gui_draw_sym(cr, (pts[6] + pts[4]) / 2.0f, (pts[7] + pts[5]) / 2.0f, 1.0f, sym); } } } @@ -2728,7 +2770,12 @@ return un2 - ah2; } -int mouse_moved(struct dt_iop_module_t *self, double x, double y, double pressure, int which) +int mouse_moved(dt_iop_module_t *self, + const float pzx, + const float pzy, + const double pressure, + const int which, + const float zoom_scale) { dt_iop_clipping_gui_data_t *g = (dt_iop_clipping_gui_data_t *)self->gui_data; dt_iop_clipping_params_t *p = (dt_iop_clipping_params_t *)self->params; @@ -2736,15 +2783,8 @@ // we don't do anything if the image is not ready if(!g->preview_ready) return 0; - const float wd = self->dev->preview_pipe->backbuf_width; - const float ht = self->dev->preview_pipe->backbuf_height; - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(self->dev, zoom, 1<<closeup, 1); - float pzx, pzy; - dt_dev_get_pointer_zoom_pos(self->dev, x, y, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; + float wd, ht; + dt_dev_get_preview_size(self->dev, &wd, &ht); _iop_clipping_set_max_clip(self); _grab_region_t grab = get_grab(pzx, pzy, g, DT_PIXEL_APPLY_DPI(30.0) / zoom_scale, wd, ht); @@ -2861,7 +2901,7 @@ // draw a light gray frame, to show it's not stored yet: g->applied = 0; // first mouse button, adjust cropping frame, but what do we do? - const float bzx = g->button_down_zoom_x + .5f, bzy = g->button_down_zoom_y + .5f; + const float bzx = g->button_down_zoom_x, bzy = g->button_down_zoom_y; if(g->cropping == GRAB_CENTER && !g->straightening && g->k_show != 1) { g->cropping = grab; @@ -3030,9 +3070,7 @@ dt_control_change_cursor(GDK_FLEUR); g->straightening = g->cropping = 0; // or maybe keystone - const float pr_d = darktable.develop->preview_downsampling; - // slightly adjust the size of keystone control area depending on the downsampling - const float ext = DT_PIXEL_APPLY_DPI(0.005f + ((1.0f - pr_d) / 100.0f)) / zoom_scale; + const float ext = DT_PIXEL_APPLY_DPI(0.005f) / zoom_scale; if(g->k_show == 1 && g->k_drag == FALSE) { float pts[2] = { pzx * wd, pzy * ht }; @@ -3102,8 +3140,8 @@ p->cw = p->ch = 1.0f; } // we want value in iop space - const float wd = self->dev->preview_pipe->backbuf_width; - const float ht = self->dev->preview_pipe->backbuf_height; + float wd, ht; + dt_dev_get_preview_size(self->dev, &wd, &ht); float points[4] = { g->clip_x * wd, g->clip_y * ht, (g->clip_x + g->clip_w) * wd, (g->clip_y + g->clip_h) * ht }; if(dt_dev_distort_backtransform_plus(self->dev, self->dev->preview_pipe, self->iop_order, DT_DEV_TRANSFORM_DIR_FORW_EXCL, points, 2)) @@ -3123,7 +3161,12 @@ if(changed) dt_dev_add_history_item(darktable.develop, self, TRUE); } -int button_released(struct dt_iop_module_t *self, double x, double y, int which, uint32_t state) +int button_released(dt_iop_module_t *self, + const float pzx, + const float pzy, + const int which, + const uint32_t state, + const float zoom_scale) { dt_iop_clipping_gui_data_t *g = (dt_iop_clipping_gui_data_t *)self->gui_data; // we don't do anything if the image is not ready @@ -3132,7 +3175,7 @@ if(g->straightening) { // adjust the line with possible current angle and flip on this module - dt_boundingbox_t pts = { x, y, g->button_down_x, g->button_down_y }; + dt_boundingbox_t pts = { pzx, pzy, g->button_down_zoom_x, g->button_down_zoom_y }; dt_dev_distort_backtransform_plus(self->dev, self->dev->preview_pipe, self->iop_order, DT_DEV_TRANSFORM_DIR_FORW_INCL, pts, 2); float dx = pts[0] - pts[2]; @@ -3169,8 +3212,14 @@ return 1; } -int button_pressed(struct dt_iop_module_t *self, double x, double y, double pressure, int which, int type, - uint32_t state) +int button_pressed(dt_iop_module_t *self, + const float pzx, + const float pzy, + const double pressure, + const int which, + const int type, + const uint32_t state, + const float zoom_scale) { dt_iop_clipping_gui_data_t *g = (dt_iop_clipping_gui_data_t *)self->gui_data; @@ -3196,22 +3245,16 @@ g->k_drag = TRUE; // if a keystone point is selected then we start to drag it else // if we click to the apply button { - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(self->dev, zoom, 1<<closeup, 1); - float pzx, pzy; - dt_dev_get_pointer_zoom_pos(self->dev, x, y, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; - dt_dev_pixelpipe_iop_t *piece = dt_dev_distort_get_iop_pipe(self->dev, self->dev->preview_pipe, self); const float wp = piece->buf_out.width, hp = piece->buf_out.height; float pts[8] = { p->kxa * wp, p->kya * hp, p->kxb * wp, p->kyb * hp, p->kxc * wp, p->kyc * hp, p->kxd * wp, p->kyd * hp }; dt_dev_distort_transform_plus(self->dev, self->dev->preview_pipe, self->iop_order, DT_DEV_TRANSFORM_DIR_FORW_EXCL, pts, 4); - const float xx = pzx * self->dev->preview_pipe->backbuf_width, - yy = pzy * self->dev->preview_pipe->backbuf_height; + float wd, ht; + dt_dev_get_preview_size(self->dev, &wd, &ht); + const float xx = pzx * wd, + yy = pzy * ht; float c[2] = { (MIN(pts[4], pts[2]) + MAX(pts[0], pts[6])) / 2.0f, (MIN(pts[5], pts[7]) + MAX(pts[1], pts[3])) / 2.0f }; const float ext = DT_PIXEL_APPLY_DPI(10.0) / (zoom_scale); @@ -3297,10 +3340,8 @@ // dragging a border ? if(g->k_selected_segment >= 0) { - dt_dev_get_pointer_zoom_pos(self->dev, x, y, &g->button_down_zoom_x, - &g->button_down_zoom_y); - g->button_down_zoom_x += 0.5; - g->button_down_zoom_y += 0.5; + g->button_down_zoom_x = pzx; + g->button_down_zoom_y = pzy; g->k_drag = TRUE; } } @@ -3312,9 +3353,8 @@ } else { - g->button_down_x = x; - g->button_down_y = y; - dt_dev_get_pointer_zoom_pos(self->dev, x, y, &g->button_down_zoom_x, &g->button_down_zoom_y); + g->button_down_zoom_x = pzx; + g->button_down_zoom_y = pzy; g->button_down_angle = p->angle; /* update prev clip box with current */ @@ -3352,4 +3392,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/colisa.c darktable-4.6.1/src/iop/colisa.c --- darktable-4.4.2/src/iop/colisa.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/colisa.c 2024-02-16 17:31:09.000000000 +0000 @@ -104,7 +104,9 @@ return IOP_GROUP_BASIC | IOP_GROUP_GRADING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } @@ -146,21 +148,13 @@ CLARG(height), CLARG(saturation), CLARG(dev_cm), CLARG(dev_ccoeffs), CLARG(dev_lm), CLARG(dev_lcoeffs)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_colisa, sizes); - if(err != CL_SUCCESS) goto error; - - dt_opencl_release_mem_object(dev_lcoeffs); - dt_opencl_release_mem_object(dev_lm); - dt_opencl_release_mem_object(dev_ccoeffs); - dt_opencl_release_mem_object(dev_cm); - return TRUE; error: dt_opencl_release_mem_object(dev_lcoeffs); dt_opencl_release_mem_object(dev_lm); dt_opencl_release_mem_object(dev_ccoeffs); dt_opencl_release_mem_object(dev_cm); - dt_print(DT_DEBUG_OPENCL, "[opencl_colisa] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif diff -Nru darktable-4.4.2/src/iop/colorbalance.c darktable-4.6.1/src/iop/colorbalance.c --- darktable-4.4.2/src/iop/colorbalance.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/colorbalance.c 2024-02-16 17:31:09.000000000 +0000 @@ -40,9 +40,11 @@ #include "gui/color_picker_proxy.h" #include "iop/iop_api.h" -//#include <gtk/gtk.h> #include <stdlib.h> +// uncomment the following line to test auto-vectorized code on a system which supports SSE +//#undef __SSE2__ + // these are not in a state to be useful. but they look nice. too bad i couldn't map the enhanced mode with // negative values to the wheels :( //#define SHOW_COLOR_WHEELS @@ -174,26 +176,41 @@ return IOP_GROUP_COLOR | IOP_GROUP_GRADING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, void *new_params, - const int new_version) -{ - if(old_version == 1 && new_version == 3) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_colorbalance_params_v3_t + { + dt_iop_colorbalance_mode_t mode; + float lift[CHANNEL_SIZE], gamma[CHANNEL_SIZE], gain[CHANNEL_SIZE]; + float saturation; + float contrast; + float grey; + float saturation_out; + } dt_iop_colorbalance_params_v3_t; + + if(old_version == 1) { typedef struct dt_iop_colorbalance_params_v1_t { float lift[CHANNEL_SIZE], gamma[CHANNEL_SIZE], gain[CHANNEL_SIZE]; } dt_iop_colorbalance_params_v1_t; - dt_iop_colorbalance_params_v1_t *o = (dt_iop_colorbalance_params_v1_t *)old_params; - dt_iop_colorbalance_params_t *n = (dt_iop_colorbalance_params_t *)new_params; - dt_iop_colorbalance_params_t *d = (dt_iop_colorbalance_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + const dt_iop_colorbalance_params_v1_t *o = + (dt_iop_colorbalance_params_v1_t *)old_params; + dt_iop_colorbalance_params_v3_t *n = + (dt_iop_colorbalance_params_v3_t *)malloc(sizeof(dt_iop_colorbalance_params_v3_t)); for(int i = 0; i < CHANNEL_SIZE; i++) { @@ -202,10 +219,18 @@ n->gain[i] = o->gain[i]; } n->mode = LEGACY; + n->saturation = 1.0f; + n->contrast = 1.0f; + n->grey = 18.0f; + n->saturation_out = 1.0f; + + *new_params = n; + *new_params_size = sizeof(dt_iop_colorbalance_params_v3_t); + *new_version = 3; return 0; } - if(old_version == 2 && new_version == 3) + if(old_version == 2) { typedef struct dt_iop_colorbalance_params_v2_t { @@ -214,11 +239,10 @@ float saturation, contrast, grey; } dt_iop_colorbalance_params_v2_t; - dt_iop_colorbalance_params_v2_t *o = (dt_iop_colorbalance_params_v2_t *)old_params; - dt_iop_colorbalance_params_t *n = (dt_iop_colorbalance_params_t *)new_params; - dt_iop_colorbalance_params_t *d = (dt_iop_colorbalance_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + const dt_iop_colorbalance_params_v2_t *o = + (dt_iop_colorbalance_params_v2_t *)old_params; + dt_iop_colorbalance_params_v3_t *n = + (dt_iop_colorbalance_params_v3_t *)malloc(sizeof(dt_iop_colorbalance_params_v3_t)); for(int i = 0; i < CHANNEL_SIZE; i++) { @@ -231,6 +255,11 @@ n->saturation = o->saturation; n->contrast = o->contrast; n->grey = o->grey; + n->saturation_out = 1.0f; + + *new_params = n; + *new_params_size = sizeof(dt_iop_colorbalance_params_v3_t); + *new_version = 3; return 0; } return 1; @@ -374,6 +403,7 @@ } } +#ifndef __SSE2__ static void _apply_lgg(dt_aligned_pixel_t rgb, const dt_aligned_pixel_t lift, const dt_aligned_pixel_t gamma_inv, @@ -391,45 +421,23 @@ dt_vector_max(rgb, rgb, zero); // clip away negatives dt_vector_powf(rgb, gamma_inv, rgb); } +#endif -static void _process_lgg_curveonly(const dt_aligned_pixel_t in, - dt_aligned_pixel_t out, - const size_t npixels, - const dt_aligned_pixel_t lift, - const dt_aligned_pixel_t gamma_inv, - const dt_aligned_pixel_t gain) -{ - // fully neutral settings, only apply the curves - for(size_t k = 0; k < npixels; k++) - { - // transform the pixel to ProphotoRGB: - // Lab -> XYZ -> RGB, return Y as luma - dt_aligned_pixel_t rgb; - (void)dt_Lab_to_prophotorgb(in + 4*k, rgb); - _apply_lgg(rgb, lift, gamma_inv, gain); - // transform the result back to Lab - // ProphotoRGB -> XYZ -> Lab - dt_aligned_pixel_t res; - dt_prophotorgb_to_Lab(rgb, res); - copy_pixel_nontemporal(out + 4*k, res); - } -} - -#ifdef __SSE2__ -static void _process_lgg_sse(const dt_aligned_pixel_t in, - dt_aligned_pixel_t out, - const size_t npixels, - const dt_aligned_pixel_t lift_, - const dt_aligned_pixel_t gamma_inv_, - const dt_aligned_pixel_t gain_, - const float grey, - const float saturation, - const float saturation_out, - const dt_aligned_pixel_t contrast_power) +static void _process_lgg(const dt_aligned_pixel_t in, + dt_aligned_pixel_t out, + const size_t npixels, + const dt_aligned_pixel_t lift_, + const dt_aligned_pixel_t gamma_inv_, + const dt_aligned_pixel_t gain_, + const float grey, + const float saturation, + const float saturation_out, + const dt_aligned_pixel_t contrast_power) { const int run_saturation = fabsf(saturation - 1.0f) > 1e-6; const int run_saturation_out = fabsf(saturation_out - 1.0f) > 1e-6; const int run_contrast = fabsf(contrast_power[0] - 1.0f) > 1e-6; +#ifdef __SSE2__ const __m128 mm_zero = _mm_setzero_ps(); const __m128 mm_one = _mm_set1_ps(1.0); const __m128 gamma_inv_RGB = _mm_set1_ps(1.0f/2.2f); @@ -483,34 +491,23 @@ // XYZ -> Lab _mm_stream_ps(out + 4*k, dt_XYZ_to_Lab_sse2(XYZ)); } -} -#endif - -static void _process_lgg(const dt_aligned_pixel_t in, - dt_aligned_pixel_t out, - const size_t npixels, - const dt_aligned_pixel_t lift, - const dt_aligned_pixel_t gamma_inv, - const dt_aligned_pixel_t gain, - const float grey, - const float saturation, - const float saturation_out, - const dt_aligned_pixel_t contrast_power) -{ -#ifdef __SSE2__ - if(darktable.codepath.SSE2) - { - _process_lgg_sse(in, out, npixels, lift, gamma_inv, gain, grey, saturation, - saturation_out, contrast_power); - return; - } -#endif - const int run_saturation = fabsf(saturation - 1.0f) > 1e-6; - const int run_saturation_out = fabsf(saturation_out - 1.0f) > 1e-6; - const int run_contrast = fabsf(contrast_power[0] - 1.0f) > 1e-6; +#else if(!run_saturation && !run_saturation_out && !run_contrast) { - _process_lgg_curveonly(in, out, npixels, lift, gamma_inv, gain); + // fully neutral settings, only apply the curves + for(size_t k = 0; k < npixels; k++) + { + // transform the pixel to ProphotoRGB: + // Lab -> XYZ -> RGB, return Y as luma + dt_aligned_pixel_t rgb; + (void)dt_Lab_to_prophotorgb(in + 4*k, rgb); + _apply_lgg(rgb, lift_, gamma_inv_, gain_); + // transform the result back to Lab + // ProphotoRGB -> XYZ -> Lab + dt_aligned_pixel_t res; + dt_prophotorgb_to_Lab(rgb, res); + copy_pixel_nontemporal(out + 4*k, res); + } return; } @@ -531,7 +528,7 @@ for_each_channel(c) rgb[c] = luma + saturation4[c] * (rgb[c] - luma); } - _apply_lgg(rgb, lift, gamma_inv, gain); + _apply_lgg(rgb, lift_, gamma_inv_, gain_); // main saturation output if(run_saturation_out) { @@ -551,77 +548,9 @@ dt_prophotorgb_to_Lab(rgb, res); copy_pixel_nontemporal(out + 4*k, res); } +#endif /* __SSE2__ */ } -#ifdef __SSE2__ -static void _process_sop_sse(const dt_aligned_pixel_t in, - dt_aligned_pixel_t out, - const size_t npixels, - const dt_aligned_pixel_t lift_, - const dt_aligned_pixel_t gamma_, - const dt_aligned_pixel_t gain_, - const float grey, - const float saturation, - const float saturation_out, - const float contrast_amt, - const dt_aligned_pixel_t contrast_power) -{ - const int run_saturation = fabsf(saturation - 1.0f) > 1e-6; - const int run_saturation_out = fabsf(saturation_out - 1.0f) > 1e-6; - const int run_contrast = fabsf(contrast_amt - 1.0f) > 1e-6; - const __m128 mm_zero = _mm_setzero_ps(); - const __m128 lift = _mm_load_ps(lift_); - const __m128 gamma = _mm_load_ps(gamma_); - const __m128 gain = _mm_load_ps(gain_); - const __m128 contrast = _mm_load_ps(contrast_power); - for(size_t k = 0; k < npixels; k++) - { - // transform the pixel to sRGB: - // Lab -> XYZ - __m128 XYZ = dt_Lab_to_XYZ_sse2(_mm_load_ps(in + 4*k)); - // XYZ -> sRGB - __m128 rgb = dt_XYZ_to_prophotoRGB_sse2(XYZ); - - __m128 luma; - - // adjust main saturation - if(run_saturation) - { - luma = _mm_set1_ps(XYZ[1]); // the Y channel is the relative luminance - rgb = luma + saturation * (rgb - luma); - } - - // slope offset - rgb = rgb * gain + lift; - - //power - rgb = _mm_max_ps(rgb, mm_zero); - rgb = _mm_pow_ps(rgb, gamma); - - // adjust main saturation output - if(run_saturation_out) - { - XYZ = dt_prophotoRGB_to_XYZ_sse2(rgb); - luma = _mm_set1_ps(XYZ[1]); // the Y channel is the relative luminance - rgb = luma + saturation_out * (rgb - luma); - } - - // fulcrum contrast - if(run_contrast) - { - rgb = _mm_max_ps(rgb, mm_zero); - rgb = _mm_pow_ps(rgb / grey, contrast) * grey; - } - - // transform the result back to Lab - // sRGB -> XYZ - XYZ = dt_prophotoRGB_to_XYZ_sse2(rgb); - // XYZ -> Lab - _mm_stream_ps(out + 4*k, dt_XYZ_to_Lab_sse2(XYZ)); - } -} -#endif - static void _process_sop(const dt_aligned_pixel_t in, dt_aligned_pixel_t out, const size_t npixels, @@ -631,20 +560,64 @@ const float grey, const float saturation, const float saturation_out, - const float contrast, + const float contrast_amt, const dt_aligned_pixel_t contrast_power) { + const int run_saturation = fabsf(saturation - 1.0f) > 1e-6; + const int run_saturation_out = fabsf(saturation_out - 1.0f) > 1e-6; + const int run_contrast = fabsf(contrast_amt - 1.0f) > 1e-6; #ifdef __SSE2__ - if(darktable.codepath.SSE2) + const __m128 mm_zero = _mm_setzero_ps(); + const __m128 lift4 = _mm_load_ps(lift); + const __m128 gamma4 = _mm_load_ps(gamma); + const __m128 gain4 = _mm_load_ps(gain); + const __m128 contrast = _mm_load_ps(contrast_power); + for(size_t k = 0; k < npixels; k++) { - _process_sop_sse(in, out, npixels, lift, gamma, gain, grey, saturation, - saturation_out, contrast, contrast_power); - return; + // transform the pixel to sRGB: + // Lab -> XYZ + __m128 XYZ = dt_Lab_to_XYZ_sse2(_mm_load_ps(in + 4*k)); + // XYZ -> sRGB + __m128 rgb = dt_XYZ_to_prophotoRGB_sse2(XYZ); + + __m128 luma; + + // adjust main saturation + if(run_saturation) + { + luma = _mm_set1_ps(XYZ[1]); // the Y channel is the relative luminance + rgb = luma + saturation * (rgb - luma); + } + + // slope offset + rgb = rgb * gain4 + lift4; + + //power + rgb = _mm_max_ps(rgb, mm_zero); + rgb = _mm_pow_ps(rgb, gamma4); + + // adjust main saturation output + if(run_saturation_out) + { + XYZ = dt_prophotoRGB_to_XYZ_sse2(rgb); + luma = _mm_set1_ps(XYZ[1]); // the Y channel is the relative luminance + rgb = luma + saturation_out * (rgb - luma); + } + + // fulcrum contrast + if(run_contrast) + { + rgb = _mm_max_ps(rgb, mm_zero); + rgb = _mm_pow_ps(rgb / grey, contrast) * grey; + } + + // transform the result back to Lab + // sRGB -> XYZ + XYZ = dt_prophotoRGB_to_XYZ_sse2(rgb); + // XYZ -> Lab + _mm_stream_ps(out + 4*k, dt_XYZ_to_Lab_sse2(XYZ)); } -#endif - const int run_saturation = fabsf(saturation - 1.0f) > 1e-6; - const int run_saturation_out = fabsf(saturation_out - 1.0f) > 1e-6; - const int run_contrast = fabsf(contrast - 1.0f) > 1e-6; +#else if(!run_saturation && !run_saturation_out && !run_contrast) { // fully neutral settings, only apply the curves @@ -703,6 +676,7 @@ dt_prophotorgb_to_Lab(rgb , res); copy_pixel_nontemporal(out + 4*k, res); } +#endif /* __SSE2__ */ } // see http://www.brucelindbloom.com/Eqn_RGB_XYZ_Matrix.html for the transformation matrices @@ -780,6 +754,7 @@ for(size_t chunk = 0; chunk < nthreads; chunk++) { size_t start = chunksize * dt_get_thread_num(); + if (start >= npixels) continue; // handle case when chunksize is < 4*nthreads and last thread has no work size_t end = MIN(start + chunksize, npixels); switch(mode) { @@ -854,7 +829,7 @@ CLARG(grey)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_colorbalance, sizes); if(err != CL_SUCCESS) goto error; - return TRUE; + return CL_SUCCESS; break; } @@ -882,7 +857,7 @@ CLARG(grey), CLARG(saturation_out)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_colorbalance_lgg, sizes); if(err != CL_SUCCESS) goto error; - return TRUE; + return CL_SUCCESS; break; } @@ -910,15 +885,14 @@ CLARG(grey), CLARG(saturation_out)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_colorbalance_cdl, sizes); if(err != CL_SUCCESS) goto error; - return TRUE; + return CL_SUCCESS; break; } } error: - dt_print(DT_DEBUG_OPENCL, "[opencl_colorbalance] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif @@ -1403,7 +1377,8 @@ dt_dev_add_history_item(darktable.develop, self, TRUE); } -void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece) +void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, + dt_dev_pixelpipe_t *pipe) { dt_iop_colorbalance_gui_data_t *g = (dt_iop_colorbalance_gui_data_t *)self->gui_data; if (picker == g->hue_lift) diff -Nru darktable-4.4.2/src/iop/colorbalancergb.c darktable-4.6.1/src/iop/colorbalancergb.c --- darktable-4.4.2/src/iop/colorbalancergb.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/colorbalancergb.c 2024-02-16 17:31:09.000000000 +0000 @@ -153,7 +153,6 @@ float shadows_weight, highlights_weight, midtones_weight, mask_grey_fulcrum; float white_fulcrum, grey_fulcrum; float *gamut_LUT; - float *chroma_LUT; float max_chroma; dt_aligned_pixel_t checker_color_1, checker_color_2; dt_iop_colorbalancrgb_saturation_t saturation_formula; @@ -198,51 +197,120 @@ return IOP_GROUP_COLOR | IOP_GROUP_GRADING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, void *new_params, - const int new_version) -{ - if(old_version == 1 && new_version == 5) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_colorbalancergb_params_v5_t + { + /* params of v1 */ + float shadows_Y; + float shadows_C; + float shadows_H; + float midtones_Y; + float midtones_C; + float midtones_H; + float highlights_Y; + float highlights_C; + float highlights_H; + float global_Y; + float global_C; + float global_H; + float shadows_weight; + float white_fulcrum; + float highlights_weight; + float chroma_shadows; + float chroma_highlights; + float chroma_global; + float chroma_midtones; + float saturation_global; + float saturation_highlights; + float saturation_midtones; + float saturation_shadows; + float hue_angle; + + /* params of v2 */ + float brilliance_global; + float brilliance_highlights; + float brilliance_midtones; + float brilliance_shadows; + + /* params of v3 */ + float mask_grey_fulcrum; + + /* params of v4 */ + float vibrance; + float grey_fulcrum; + float contrast; + + /* params of v5 */ + dt_iop_colorbalancrgb_saturation_t saturation_formula; + + /* add future params after this so the legacy params import can use a blind memcpy */ + } dt_iop_colorbalancergb_params_v5_t; + + dt_iop_colorbalancergb_params_v5_t default_v5 = + { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.1845f, 0.0f, + 0.0f, 0.0f, 1 + }; + + if(old_version == 1) { typedef struct dt_iop_colorbalancergb_params_v1_t { - float shadows_Y; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "luminance" - float shadows_C; // $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "chroma" - float shadows_H; // $MIN: 0.0 $MAX: 360.0 $DEFAULT: 0.0 $DESCRIPTION: "hue" - float midtones_Y; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "luminance" - float midtones_C; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "chroma" - float midtones_H; // $MIN: 0.0 $MAX: 360.0 $DEFAULT: 0.0 $DESCRIPTION: "hue" - float highlights_Y; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "luminance" - float highlights_C; // $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "chroma" - float highlights_H; // $MIN: 0.0 $MAX: 360.0 $DEFAULT: 0.0 $DESCRIPTION: "hue" - float global_Y; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "luminance" - float global_C; // $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "chroma" - float global_H; // $MIN: 0.0 $MAX: 360.0 $DEFAULT: 0.0 $DESCRIPTION: "hue" - float shadows_weight; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "tonal weight" - float white_fulcrum; // $MIN: -6.0 $MAX: 6.0 $DEFAULT: 0.0 $DESCRIPTION: "fulcrum" - float highlights_weight; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "tonal weight" - float chroma_shadows; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "shadows" - float chroma_highlights; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "highlights" - float chroma_global; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "global" - float chroma_midtones; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "mid-tones" - float saturation_global; // $MIN: -5.0 $MAX: 5.0 $DEFAULT: 0.0 $DESCRIPTION: "saturation global" - float saturation_highlights; // $MIN: -0.2 $MAX: 0.2 $DEFAULT: 0.0 $DESCRIPTION: "highlights" - float saturation_midtones; // $MIN: -0.2 $MAX: 0.2 $DEFAULT: 0.0 $DESCRIPTION: "mid-tones" - float saturation_shadows; // $MIN: -0.2 $MAX: 0.2 $DEFAULT: 0.0 $DESCRIPTION: "shadows" - float hue_angle; // $MIN: -180. $MAX: 180. $DEFAULT: 0.0 $DESCRIPTION: "hue shift" + float shadows_Y; + float shadows_C; + float shadows_H; + float midtones_Y; + float midtones_C; + float midtones_H; + float highlights_Y; + float highlights_C; + float highlights_H; + float global_Y; + float global_C; + float global_H; + float shadows_weight; + float white_fulcrum; + float highlights_weight; + float chroma_shadows; + float chroma_highlights; + float chroma_global; + float chroma_midtones; + float saturation_global; + float saturation_highlights; + float saturation_midtones; + float saturation_shadows; + float hue_angle; } dt_iop_colorbalancergb_params_v1_t; + const dt_iop_colorbalancergb_params_v1_t *o = + (dt_iop_colorbalancergb_params_v1_t *)old_params; + dt_iop_colorbalancergb_params_v5_t *n = + (dt_iop_colorbalancergb_params_v5_t *) + malloc(sizeof(dt_iop_colorbalancergb_params_v5_t)); + // Init params with defaults - memcpy(new_params, self->default_params, sizeof(dt_iop_colorbalancergb_params_t)); + memcpy(n, &default_v5, sizeof(dt_iop_colorbalancergb_params_v5_t)); // Copy the common part of the params struct - memcpy(new_params, old_params, sizeof(dt_iop_colorbalancergb_params_v1_t)); + memcpy(n, o, sizeof(dt_iop_colorbalancergb_params_v1_t)); - dt_iop_colorbalancergb_params_t *n = (dt_iop_colorbalancergb_params_t *)new_params; n->saturation_global /= 180.f / M_PI; n->mask_grey_fulcrum = 0.1845f; n->vibrance = 0.f; @@ -250,172 +318,196 @@ n->contrast = 0.f; n->saturation_formula = DT_COLORBALANCE_SATURATION_JZAZBZ; + *new_params = n; + *new_params_size = sizeof(dt_iop_colorbalancergb_params_v5_t); + *new_version = 5; return 0; } - if(old_version == 2 && new_version == 5) + if(old_version == 2) { typedef struct dt_iop_colorbalancergb_params_v2_t { /* params of v1 */ - float shadows_Y; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "luminance" - float shadows_C; // $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "chroma" - float shadows_H; // $MIN: 0.0 $MAX: 360.0 $DEFAULT: 0.0 $DESCRIPTION: "hue" - float midtones_Y; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "luminance" - float midtones_C; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "chroma" - float midtones_H; // $MIN: 0.0 $MAX: 360.0 $DEFAULT: 0.0 $DESCRIPTION: "hue" - float highlights_Y; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "luminance" - float highlights_C; // $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "chroma" - float highlights_H; // $MIN: 0.0 $MAX: 360.0 $DEFAULT: 0.0 $DESCRIPTION: "hue" - float global_Y; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "luminance" - float global_C; // $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "chroma" - float global_H; // $MIN: 0.0 $MAX: 360.0 $DEFAULT: 0.0 $DESCRIPTION: "hue" - float shadows_weight; // $MIN: 0.0 $MAX: 3.0 $DEFAULT: 1.0 $DESCRIPTION: "shadows fall-off" - float white_fulcrum; // $MIN: -6.0 $MAX: 6.0 $DEFAULT: 0.0 $DESCRIPTION: "white pivot" - float highlights_weight; // $MIN: 0.0 $MAX: 3.0 $DEFAULT: 1.0 $DESCRIPTION: "highlights fall-off" - float chroma_shadows; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "shadows" - float chroma_highlights; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "highlights" - float chroma_global; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "global" - float chroma_midtones; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "mid-tones" - float saturation_global; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "global" - float saturation_highlights; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "highlights" - float saturation_midtones; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "mid-tones" - float saturation_shadows; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "shadows" - float hue_angle; // $MIN: -180. $MAX: 180. $DEFAULT: 0.0 $DESCRIPTION: "hue shift" + float shadows_Y; + float shadows_C; + float shadows_H; + float midtones_Y; + float midtones_C; + float midtones_H; + float highlights_Y; + float highlights_C; + float highlights_H; + float global_Y; + float global_C; + float global_H; + float shadows_weight; + float white_fulcrum; + float highlights_weight; + float chroma_shadows; + float chroma_highlights; + float chroma_global; + float chroma_midtones; + float saturation_global; + float saturation_highlights; + float saturation_midtones; + float saturation_shadows; + float hue_angle; /* params of v2 */ - float brilliance_global; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "global" - float brilliance_highlights; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "highlights" - float brilliance_midtones; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "mid-tones" - float brilliance_shadows; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "shadows" - + float brilliance_global; + float brilliance_highlights; + float brilliance_midtones; + float brilliance_shadows; } dt_iop_colorbalancergb_params_v2_t; + const dt_iop_colorbalancergb_params_v2_t *o = + (dt_iop_colorbalancergb_params_v2_t *)old_params; + dt_iop_colorbalancergb_params_v5_t *n = + (dt_iop_colorbalancergb_params_v5_t *) + malloc(sizeof(dt_iop_colorbalancergb_params_v5_t)); + // Init params with defaults - memcpy(new_params, self->default_params, sizeof(dt_iop_colorbalancergb_params_t)); + memcpy(n, &default_v5, sizeof(dt_iop_colorbalancergb_params_v5_t)); // Copy the common part of the params struct - memcpy(new_params, old_params, sizeof(dt_iop_colorbalancergb_params_v2_t)); + memcpy(n, o, sizeof(dt_iop_colorbalancergb_params_v2_t)); - dt_iop_colorbalancergb_params_t *n = (dt_iop_colorbalancergb_params_t *)new_params; n->mask_grey_fulcrum = 0.1845f; n->vibrance = 0.f; n->grey_fulcrum = 0.1845f; n->contrast = 0.f; n->saturation_formula = DT_COLORBALANCE_SATURATION_JZAZBZ; + *new_params = n; + *new_params_size = sizeof(dt_iop_colorbalancergb_params_v5_t); + *new_version = 5; return 0; } - if(old_version == 3 && new_version == 5) + if(old_version == 3) { typedef struct dt_iop_colorbalancergb_params_v3_t { /* params of v1 */ - float shadows_Y; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "luminance" - float shadows_C; // $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "chroma" - float shadows_H; // $MIN: 0.0 $MAX: 360.0 $DEFAULT: 0.0 $DESCRIPTION: "hue" - float midtones_Y; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "luminance" - float midtones_C; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "chroma" - float midtones_H; // $MIN: 0.0 $MAX: 360.0 $DEFAULT: 0.0 $DESCRIPTION: "hue" - float highlights_Y; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "luminance" - float highlights_C; // $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "chroma" - float highlights_H; // $MIN: 0.0 $MAX: 360.0 $DEFAULT: 0.0 $DESCRIPTION: "hue" - float global_Y; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "luminance" - float global_C; // $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "chroma" - float global_H; // $MIN: 0.0 $MAX: 360.0 $DEFAULT: 0.0 $DESCRIPTION: "hue" - float shadows_weight; // $MIN: 0.0 $MAX: 3.0 $DEFAULT: 1.0 $DESCRIPTION: "shadows fall-off" - float white_fulcrum; // $MIN: -16.0 $MAX: 16.0 $DEFAULT: 0.0 $DESCRIPTION: "white fulcrum" - float highlights_weight; // $MIN: 0.0 $MAX: 3.0 $DEFAULT: 1.0 $DESCRIPTION: "highlights fall-off" - float chroma_shadows; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "shadows" - float chroma_highlights; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "highlights" - float chroma_global; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "global" - float chroma_midtones; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "mid-tones" - float saturation_global; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "global" - float saturation_highlights; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "highlights" - float saturation_midtones; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "mid-tones" - float saturation_shadows; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "shadows" - float hue_angle; // $MIN: -180. $MAX: 180. $DEFAULT: 0.0 $DESCRIPTION: "hue shift" + float shadows_Y; + float shadows_C; + float shadows_H; + float midtones_Y; + float midtones_C; + float midtones_H; + float highlights_Y; + float highlights_C; + float highlights_H; + float global_Y; + float global_C; + float global_H; + float shadows_weight; + float white_fulcrum; + float highlights_weight; + float chroma_shadows; + float chroma_highlights; + float chroma_global; + float chroma_midtones; + float saturation_global; + float saturation_highlights; + float saturation_midtones; + float saturation_shadows; + float hue_angle; /* params of v2 */ - float brilliance_global; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "global" - float brilliance_highlights; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "highlights" - float brilliance_midtones; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "mid-tones" - float brilliance_shadows; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "shadows" + float brilliance_global; + float brilliance_highlights; + float brilliance_midtones; + float brilliance_shadows; /* params of v3 */ - float mask_grey_fulcrum; // $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.1845 $DESCRIPTION: "middle-gray fulcrum" - + float mask_grey_fulcrum; } dt_iop_colorbalancergb_params_v3_t; + const dt_iop_colorbalancergb_params_v3_t *o = + (dt_iop_colorbalancergb_params_v3_t *)old_params; + dt_iop_colorbalancergb_params_v5_t *n = + (dt_iop_colorbalancergb_params_v5_t *) + malloc(sizeof(dt_iop_colorbalancergb_params_v5_t)); + // Init params with defaults - memcpy(new_params, self->default_params, sizeof(dt_iop_colorbalancergb_params_t)); + memcpy(n, &default_v5, sizeof(dt_iop_colorbalancergb_params_v5_t)); // Copy the common part of the params struct - memcpy(new_params, old_params, sizeof(dt_iop_colorbalancergb_params_v3_t)); + memcpy(n, o, sizeof(dt_iop_colorbalancergb_params_v3_t)); - dt_iop_colorbalancergb_params_t *n = (dt_iop_colorbalancergb_params_t *)new_params; n->vibrance = 0.f; n->grey_fulcrum = 0.1845f; n->contrast = 0.f; n->saturation_formula = DT_COLORBALANCE_SATURATION_JZAZBZ; + *new_params = n; + *new_params_size = sizeof(dt_iop_colorbalancergb_params_v5_t); + *new_version = 5; return 0; } - if(old_version == 4 && new_version == 5) + if(old_version == 4) { typedef struct dt_iop_colorbalancergb_params_v4_t { /* params of v1 */ - float shadows_Y; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "lift luminance" - float shadows_C; // $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "lift chroma" - float shadows_H; // $MIN: 0.0 $MAX: 360.0 $DEFAULT: 0.0 $DESCRIPTION: "lift hue" - float midtones_Y; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "power luminance" - float midtones_C; // $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "power chroma" - float midtones_H; // $MIN: 0.0 $MAX: 360.0 $DEFAULT: 0.0 $DESCRIPTION: "power hue" - float highlights_Y; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "gain luminance" - float highlights_C; // $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "gain chroma" - float highlights_H; // $MIN: 0.0 $MAX: 360.0 $DEFAULT: 0.0 $DESCRIPTION: "gain hue" - float global_Y; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "offset luminance" - float global_C; // $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "offset chroma" - float global_H; // $MIN: 0.0 $MAX: 360.0 $DEFAULT: 0.0 $DESCRIPTION: "offset hue" - float shadows_weight; // $MIN: 0.0 $MAX: 3.0 $DEFAULT: 1.0 $DESCRIPTION: "shadows fall-off" - float white_fulcrum; // $MIN: -16.0 $MAX: 16.0 $DEFAULT: 0.0 $DESCRIPTION: "white fulcrum" - float highlights_weight; // $MIN: 0.0 $MAX: 3.0 $DEFAULT: 1.0 $DESCRIPTION: "highlights fall-off" - float chroma_shadows; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "chroma shadows" - float chroma_highlights; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "chroma highlights" - float chroma_global; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "chroma global" - float chroma_midtones; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "chroma mid-tones" - float saturation_global; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "saturation global" - float saturation_highlights; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "saturation highlights" - float saturation_midtones; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "saturation mid-tones" - float saturation_shadows; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "saturation shadows" - float hue_angle; // $MIN: -180. $MAX: 180. $DEFAULT: 0.0 $DESCRIPTION: "hue shift" + float shadows_Y; + float shadows_C; + float shadows_H; + float midtones_Y; + float midtones_C; + float midtones_H; + float highlights_Y; + float highlights_C; + float highlights_H; + float global_Y; + float global_C; + float global_H; + float shadows_weight; + float white_fulcrum; + float highlights_weight; + float chroma_shadows; + float chroma_highlights; + float chroma_global; + float chroma_midtones; + float saturation_global; + float saturation_highlights; + float saturation_midtones; + float saturation_shadows; + float hue_angle; /* params of v2 */ - float brilliance_global; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "brilliance global" - float brilliance_highlights; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "brilliance highlights" - float brilliance_midtones; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "brilliance mid-tones" - float brilliance_shadows; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "brilliance shadows" + float brilliance_global; + float brilliance_highlights; + float brilliance_midtones; + float brilliance_shadows; /* params of v3 */ - float mask_grey_fulcrum; // $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.1845 $DESCRIPTION: "mask middle-gray fulcrum" + float mask_grey_fulcrum; /* params of v4 */ - float vibrance; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0 $DESCRIPTION: "global vibrance" - float grey_fulcrum; // $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.1845 $DESCRIPTION: "contrast gray fulcrum" - float contrast; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0. $DESCRIPTION: "contrast" - + float vibrance; + float grey_fulcrum; + float contrast; } dt_iop_colorbalancergb_params_v4_t; + const dt_iop_colorbalancergb_params_v4_t *o = + (dt_iop_colorbalancergb_params_v4_t *)old_params; + dt_iop_colorbalancergb_params_v5_t *n = + (dt_iop_colorbalancergb_params_v5_t *) + malloc(sizeof(dt_iop_colorbalancergb_params_v5_t)); + // Init params with defaults - memcpy(new_params, self->default_params, sizeof(dt_iop_colorbalancergb_params_t)); + memcpy(n, &default_v5, sizeof(dt_iop_colorbalancergb_params_v5_t)); // Copy the common part of the params struct - memcpy(new_params, old_params, sizeof(dt_iop_colorbalancergb_params_v4_t)); + memcpy(n, o, sizeof(dt_iop_colorbalancergb_params_v4_t)); - dt_iop_colorbalancergb_params_t *n = (dt_iop_colorbalancergb_params_t *)new_params; n->saturation_formula = DT_COLORBALANCE_SATURATION_JZAZBZ; + *new_params = n; + *new_params_size = sizeof(dt_iop_colorbalancergb_params_v5_t); + *new_version = 5; return 0; } @@ -530,17 +622,9 @@ // fetch the corresponding y values const float y_prev = gamut_lut[xi]; - const float y_next = gamut_lut[xii]; - - // assume that we are exactly on an integer LUT element - float out = y_prev; - if(x_next != x_prev) - // we are between 2 LUT elements : do linear interpolation - // actually, we only add the slope term on the previous one - out += (x_test - x_prev) * (y_next - y_prev) / (x_next - x_prev); - - return out; + // return y_prev if we are on the same integer LUT element or do linear interpolation + return y_prev + ((xi != xii) ? (x_test - x_prev) * (gamut_lut[xii] - y_prev) : 0.0f); } void process(struct dt_iop_module_t *self, @@ -583,7 +667,7 @@ dt_colormatrix_mul(input_matrix, XYZ_D65_to_LMS_2006_D65, output_matrix); dt_colormatrix_t input_matrix_trans; dt_colormatrix_transpose(input_matrix_trans, input_matrix); - + // Premultiply the output matrix /* What we do here is equivalent to : @@ -826,6 +910,7 @@ else { dt_aligned_pixel_t xyY, JCH, HCB; + dt_vector_clipneg(XYZ_D65); dt_XYZ_to_xyY(XYZ_D65, xyY); xyY_to_dt_UCS_JCH(xyY, L_white, JCH); dt_UCS_JCH_to_HCB(JCH, HCB); @@ -837,8 +922,8 @@ // This would be the full matrice of direct rotation if we didn't need only its last row //const float DT_ALIGNED_PIXEL M_rot_dir[2][2] = { { cos_T, -sin_T }, { sin_T, cos_T } }; - float P = HCB[1]; - float W = sin_T * HCB[1] + cos_T * HCB[2]; + const float P = MAX(FLT_MIN, HCB[1]); // as HCB[1] is at least zero we don't fiddle with sign + const float W = sin_T * HCB[1] + cos_T * HCB[2]; float a = MAX(1.f + d->saturation_global + scalar_product(opacities, saturation), 0.f); const float b = MAX(1.f + d->brilliance_global + scalar_product(opacities, brilliance), 0.f); @@ -942,8 +1027,6 @@ const int width = roi_in->width; const int height = roi_in->height; - size_t sizes[] = { ROUNDUPDWD(width, devid), ROUNDUPDHT(height, devid), 1 }; - // Get working color profile const struct dt_iop_order_iccprofile_info_t *const work_profile = dt_ioppr_get_pipe_current_profile_info(self, piece->pipe); @@ -956,7 +1039,7 @@ cl_mem input_matrix_cl = NULL; cl_mem output_matrix_cl = NULL; - cl_mem gamut_LUT = NULL; + cl_mem gamut_LUT_cl = NULL; cl_mem hue_rotation_matrix_cl = NULL; err = dt_ioppr_build_iccprofile_params_cl(work_profile, devid, &profile_info_cl, &profile_lut_cl, @@ -1000,9 +1083,7 @@ input_matrix_cl = dt_opencl_copy_host_to_device_constant(devid, 12 * sizeof(float), input_matrix); output_matrix_cl = dt_opencl_copy_host_to_device_constant(devid, 12 * sizeof(float), output_matrix); - - // Send gamut LUT to GPU - gamut_LUT = dt_opencl_copy_host_to_device(devid, d->gamut_LUT, LUT_ELEM, 1, sizeof(float)); + gamut_LUT_cl = dt_opencl_copy_host_to_device_constant(devid, LUT_ELEM * sizeof(float), d->gamut_LUT); // Size of the checker const gint mask_display @@ -1018,9 +1099,16 @@ = { cosf(d->hue_angle), -sinf(d->hue_angle), sinf(d->hue_angle), cosf(d->hue_angle) }; hue_rotation_matrix_cl = dt_opencl_copy_host_to_device_constant(devid, 4 * sizeof(float), hue_rotation_matrix); - dt_opencl_set_kernel_args(devid, gd->kernel_colorbalance_rgb, 0, CLARG(dev_in), CLARG(dev_out), + if(input_matrix_cl == NULL || output_matrix_cl == NULL || gamut_LUT_cl == NULL || hue_rotation_matrix_cl == NULL) + { + err = CL_MEM_OBJECT_ALLOCATION_FAILURE; + goto error; + } + + err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_colorbalance_rgb, width, height, + CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(dev_profile_info), CLARG(input_matrix_cl), CLARG(output_matrix_cl), - CLARG(gamut_LUT), CLARG(d->shadows_weight), CLARG(d->highlights_weight), CLARG(d->midtones_weight), + CLARG(gamut_LUT_cl), CLARG(d->shadows_weight), CLARG(d->highlights_weight), CLARG(d->midtones_weight), CLARG(d->mask_grey_fulcrum), CLARG(d->hue_angle), CLARG(d->chroma_global), CLARG(d->chroma), CLARG(d->vibrance), CLARG(d->global), CLARG(d->shadows), CLARG(d->highlights), CLARG(d->midtones), CLARG(d->white_fulcrum), CLARG(d->midtones_Y), CLARG(d->grey_fulcrum), CLARG(d->contrast), CLARG(d->brilliance_global), @@ -1028,25 +1116,13 @@ CLARG(checker_1), CLARG(checker_2), CLARG(d->checker_color_1), CLARG(d->checker_color_2), CLARG(L_white), CLARG(d->saturation_formula), CLARG(hue_rotation_matrix_cl)); - err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_colorbalance_rgb, sizes); - if(err != CL_SUCCESS) goto error; - - // cleanup and exit on success +error: dt_ioppr_free_iccprofile_params_cl(&profile_info_cl, &profile_lut_cl, &dev_profile_info, &dev_profile_lut); dt_opencl_release_mem_object(input_matrix_cl); dt_opencl_release_mem_object(output_matrix_cl); - dt_opencl_release_mem_object(gamut_LUT); + dt_opencl_release_mem_object(gamut_LUT_cl); dt_opencl_release_mem_object(hue_rotation_matrix_cl); - return TRUE; - -error: - dt_ioppr_free_iccprofile_params_cl(&profile_info_cl, &profile_lut_cl, &dev_profile_info, &dev_profile_lut); - if(input_matrix_cl) dt_opencl_release_mem_object(input_matrix_cl); - if(output_matrix_cl) dt_opencl_release_mem_object(output_matrix_cl); - if(gamut_LUT) dt_opencl_release_mem_object(gamut_LUT); - if(hue_rotation_matrix_cl) dt_opencl_release_mem_object(hue_rotation_matrix_cl); - dt_print(DT_DEBUG_OPENCL, "[opencl_colorbalancergb] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } void init_global(dt_iop_module_so_t *module) @@ -1182,10 +1258,7 @@ // this will be used to prevent users to mess up their images by pushing chroma out of gamut if(!d->lut_inited) { - float *const restrict LUT_saturation = dt_alloc_align_float(LUT_ELEM); - - // init the LUT between -pi and pi by increments of 1° - for(size_t k = 0; k < LUT_ELEM; k++) LUT_saturation[k] = 0.f; + float *const restrict LUT_saturation = dt_calloc_align_float(LUT_ELEM); // Premultiply both matrices to go from D50 pipeline RGB to D65 XYZ in a single matrix dot product // instead of D50 pipeline to D50 XYZ (work_profile->matrix_in) and then D50 XYZ to D65 XYZ @@ -1197,7 +1270,8 @@ { #ifdef _OPENMP #pragma omp parallel for default(none) \ - dt_omp_firstprivate(input_matrix, p) schedule(static) dt_omp_sharedconst(LUT_saturation) \ + dt_omp_firstprivate(input_matrix, p) schedule(static) \ + reduction(max : LUT_saturation[:LUT_ELEM]) \ collapse(3) #endif for(size_t r = 0; r < STEPS; r++) @@ -1223,18 +1297,9 @@ hue = Jch[2]; const size_t index = roundf((LUT_ELEM - 1) * (hue + M_PI_F) / (2.f * M_PI_F)); - LUT_saturation[index] = MAX(saturation, LUT_saturation[index]); + LUT_saturation[index] = fmaxf(saturation, LUT_saturation[index]); } - // anti-aliasing on the LUT (simple 5-taps 1D box average) - for(size_t k = 2; k < LUT_ELEM - 2; k++) - d->gamut_LUT[k] = (LUT_saturation[k - 2] + LUT_saturation[k - 1] + LUT_saturation[k] + LUT_saturation[k + 1] + LUT_saturation[k + 2]) / 5.f; - - // handle bounds - d->gamut_LUT[0] = (LUT_saturation[LUT_ELEM - 2] + LUT_saturation[LUT_ELEM - 1] + LUT_saturation[0] + LUT_saturation[1] + LUT_saturation[2]) / 5.f; - d->gamut_LUT[1] = (LUT_saturation[LUT_ELEM - 1] + LUT_saturation[0] + LUT_saturation[1] + LUT_saturation[2] + LUT_saturation[3]) / 5.f; - d->gamut_LUT[LUT_ELEM - 1] = (LUT_saturation[LUT_ELEM - 3] + LUT_saturation[LUT_ELEM - 2] + LUT_saturation[LUT_ELEM - 1] + LUT_saturation[0] + LUT_saturation[1]) / 5.f; - d->gamut_LUT[LUT_ELEM - 2] = (LUT_saturation[LUT_ELEM - 4] + LUT_saturation[LUT_ELEM - 3] + LUT_saturation[LUT_ELEM - 2] + LUT_saturation[LUT_ELEM - 1] + LUT_saturation[0]) / 5.f; } else if(p->saturation_formula == DT_COLORBALANCE_SATURATION_DTUCS) { @@ -1260,14 +1325,14 @@ const float h_green = atan2f(xyY_green[1] - D65_xyY[1], xyY_green[0] - D65_xyY[0]); const float h_blue = atan2f(xyY_blue[1] - D65_xyY[1], xyY_blue[0] - D65_xyY[0]); - float *const restrict dt_UCS_LUT = d->gamut_LUT; - // March the gamut boundary in CIE xyY 1931 by angular steps of 0.02° #ifdef _OPENMP #pragma omp parallel for default(none) \ dt_omp_firstprivate(input_matrix, xyY_red, xyY_green, xyY_blue, h_red, h_green, h_blue, D65_xyY) \ - schedule(static) dt_omp_sharedconst(dt_UCS_LUT) + reduction(max : LUT_saturation[:LUT_ELEM]) \ + schedule(static) #endif + for(int i = 0; i < 50 * 360; i++) { const float angle = -M_PI_F + ((float)i) / (50.f * 360.f) * 2.f * M_PI_F; @@ -1308,19 +1373,25 @@ xyY_to_dt_UCS_UV(xyY, UV_star_prime); // Get the hue angle in darktable UCS - const float H = atan2f(UV_star_prime[1], UV_star_prime[0]) * 180.f / M_PI_F; - const float H_round = roundf(H); - if(fabsf(H - H_round) < 0.02f) - { - int index = (int)(H_round + 180); - index += (index < 0) ? 360 : 0; - index -= (index > 359) ? 360 : 0; - // Warning: we store M², the square of the colorfulness - dt_UCS_LUT[index] = UV_star_prime[0] * UV_star_prime[0] + UV_star_prime[1] * UV_star_prime[1]; - } + const float hue = atan2f(UV_star_prime[1], UV_star_prime[0]); + int index = roundf((LUT_ELEM - 1) * (hue + M_PI_F) / (2.f * M_PI_F)); + index += (index < 0) ? LUT_ELEM : 0; + index -= (index >= LUT_ELEM) ? LUT_ELEM : 0; + // Warning: we store M², the square of the colorfulness + LUT_saturation[index] = fmaxf(LUT_saturation[index], UV_star_prime[0] * UV_star_prime[0] + UV_star_prime[1] * UV_star_prime[1]); } } + // anti-aliasing on the LUT (simple 5-taps 1D box average) + for(size_t k = 2; k < LUT_ELEM - 2; k++) + d->gamut_LUT[k] = (LUT_saturation[k - 2] + LUT_saturation[k - 1] + LUT_saturation[k] + LUT_saturation[k + 1] + LUT_saturation[k + 2]) / 5.f; + + // handle bounds + d->gamut_LUT[0] = (LUT_saturation[LUT_ELEM - 2] + LUT_saturation[LUT_ELEM - 1] + LUT_saturation[0] + LUT_saturation[1] + LUT_saturation[2]) / 5.f; + d->gamut_LUT[1] = (LUT_saturation[LUT_ELEM - 1] + LUT_saturation[0] + LUT_saturation[1] + LUT_saturation[2] + LUT_saturation[3]) / 5.f; + d->gamut_LUT[LUT_ELEM - 1] = (LUT_saturation[LUT_ELEM - 3] + LUT_saturation[LUT_ELEM - 2] + LUT_saturation[LUT_ELEM - 1] + LUT_saturation[0] + LUT_saturation[1]) / 5.f; + d->gamut_LUT[LUT_ELEM - 2] = (LUT_saturation[LUT_ELEM - 4] + LUT_saturation[LUT_ELEM - 3] + LUT_saturation[LUT_ELEM - 2] + LUT_saturation[LUT_ELEM - 1] + LUT_saturation[0]) / 5.f; + dt_free_align(LUT_saturation); d->lut_inited = TRUE; } @@ -1343,10 +1414,10 @@ piece->data = NULL; } -void pipe_RGB_to_Ych(dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const dt_aligned_pixel_t RGB, +void pipe_RGB_to_Ych(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, const dt_aligned_pixel_t RGB, dt_aligned_pixel_t Ych) { - const struct dt_iop_order_iccprofile_info_t *const work_profile = dt_ioppr_get_pipe_current_profile_info(self, piece->pipe); + const struct dt_iop_order_iccprofile_info_t *const work_profile = dt_ioppr_get_pipe_current_profile_info(self, pipe); if(work_profile == NULL) return; // no point dt_aligned_pixel_t XYZ_D50 = { 0.f }; @@ -1360,15 +1431,16 @@ } -void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece) +void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, + dt_dev_pixelpipe_t *pipe) { dt_iop_colorbalancergb_gui_data_t *g = (dt_iop_colorbalancergb_gui_data_t *)self->gui_data; dt_iop_colorbalancergb_params_t *p = (dt_iop_colorbalancergb_params_t *)self->params; dt_aligned_pixel_t Ych = { 0.f }; dt_aligned_pixel_t max_Ych = { 0.f }; - pipe_RGB_to_Ych(self, piece, (const float *)self->picked_color, Ych); - pipe_RGB_to_Ych(self, piece, (const float *)self->picked_color_max, max_Ych); + pipe_RGB_to_Ych(self, pipe, (const float *)self->picked_color, Ych); + pipe_RGB_to_Ych(self, pipe, (const float *)self->picked_color_max, max_Ych); const float picked_hue = get_hue_angle_from_Ych(Ych); const float hue = RAD_TO_DEG(picked_hue) + 180.f; // take the opponent color @@ -1688,7 +1760,7 @@ cairo_surface_destroy(cst); g_object_unref(layout); pango_font_description_free(desc); - return TRUE; + return FALSE; } @@ -1737,8 +1809,8 @@ // or it is not a matrix profile, fall back to sRGB. const dt_iop_order_iccprofile_info_t *output_profile = NULL; - if(self->dev && self->dev->pipe) - output_profile = dt_ioppr_get_pipe_output_profile_info(self->dev->pipe); + if(self->dev && self->dev->full.pipe) + output_profile = dt_ioppr_get_pipe_output_profile_info(self->dev->full.pipe); if(!output_profile || !dt_is_valid_colormatrix(output_profile->matrix_out[0][0])) { diff -Nru darktable-4.4.2/src/iop/colorchecker.c darktable-4.6.1/src/iop/colorchecker.c --- darktable-4.4.2/src/iop/colorchecker.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/colorchecker.c 2024-02-16 17:31:09.000000000 +0000 @@ -143,21 +143,31 @@ return IOP_FLAGS_SUPPORTS_BLENDING | IOP_FLAGS_ALLOW_TILING; } -int default_colorspace( - dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } -int legacy_params( - dt_iop_module_t *self, - const void *const old_params, - const int old_version, - void *new_params, - const int new_version) -{ +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_colorchecker_params_v2_t + { + float source_L[MAX_PATCHES]; + float source_a[MAX_PATCHES]; + float source_b[MAX_PATCHES]; + float target_L[MAX_PATCHES]; + float target_a[MAX_PATCHES]; + float target_b[MAX_PATCHES]; + int32_t num_patches; + } dt_iop_colorchecker_params_v2_t; + static const float colorchecker_Lab_v1[] = { 39.19, 13.76, 14.29, // dark skin 65.18, 19.00, 17.32, // light skin @@ -185,30 +195,34 @@ 21.46, 0.06, -0.95, // black }; - typedef struct dt_iop_colorchecker_params_v1_t + if(old_version == 1) { - float target_L[24]; - float target_a[24]; - float target_b[24]; - } dt_iop_colorchecker_params_v1_t; + typedef struct dt_iop_colorchecker_params_v1_t + { + float target_L[24]; + float target_a[24]; + float target_b[24]; + } dt_iop_colorchecker_params_v1_t; - if(old_version == 1 && new_version == 2) - { - dt_iop_colorchecker_params_v1_t *p1 = + const dt_iop_colorchecker_params_v1_t *o = (dt_iop_colorchecker_params_v1_t *)old_params; - dt_iop_colorchecker_params_t *p2 = - (dt_iop_colorchecker_params_t *)new_params; + dt_iop_colorchecker_params_v2_t *n = + (dt_iop_colorchecker_params_v2_t *)malloc(sizeof(dt_iop_colorchecker_params_v2_t)); - p2->num_patches = 24; - for(int k=0;k<24;k++) + n->num_patches = 24; + for(int k=0; k<24; k++) { - p2->target_L[k] = p1->target_L[k]; - p2->target_a[k] = p1->target_a[k]; - p2->target_b[k] = p1->target_b[k]; - p2->source_L[k] = colorchecker_Lab_v1[3 * k + 0]; - p2->source_a[k] = colorchecker_Lab_v1[3 * k + 1]; - p2->source_b[k] = colorchecker_Lab_v1[3 * k + 2]; + n->target_L[k] = o->target_L[k]; + n->target_a[k] = o->target_a[k]; + n->target_b[k] = o->target_b[k]; + n->source_L[k] = colorchecker_Lab_v1[3 * k + 0]; + n->source_a[k] = colorchecker_Lab_v1[3 * k + 1]; + n->source_b[k] = colorchecker_Lab_v1[3 * k + 2]; } + + *new_params = n; + *new_params_size = sizeof(dt_iop_colorchecker_params_v2_t); + *new_version = 2; return 0; } return 1; @@ -548,19 +562,10 @@ CLARG(width), CLARG(height), CLARG(num_patches), CLARG(dev_params)); - if(err != CL_SUCCESS) goto error; - - dt_opencl_release_mem_object(dev_params); - free(params); - return TRUE; - error: free(params); dt_opencl_release_mem_object(dev_params); - dt_print(DT_DEBUG_OPENCL, - "[opencl_colorchecker] couldn't enqueue kernel! %s\n", - cl_errstr(err)); - return FALSE; + return err; } #endif @@ -939,7 +944,7 @@ void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, - dt_dev_pixelpipe_iop_t *piece) + dt_dev_pixelpipe_t *pipe) { dt_iop_colorchecker_gui_data_t *g = (dt_iop_colorchecker_gui_data_t *)self->gui_data; @@ -1405,7 +1410,7 @@ void gui_init(struct dt_iop_module_t *self) { dt_iop_colorchecker_gui_data_t *g = IOP_GUI_ALLOC(colorchecker); - dt_iop_colorchecker_params_t *p = + const dt_iop_colorchecker_params_t *const p = (dt_iop_colorchecker_params_t *)self->default_params; self->widget = gtk_box_new(GTK_ORIENTATION_VERTICAL, DT_BAUHAUS_SPACE); diff -Nru darktable-4.4.2/src/iop/colorcontrast.c darktable-4.6.1/src/iop/colorcontrast.c --- darktable-4.4.2/src/iop/colorcontrast.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/colorcontrast.c 2024-02-16 17:31:09.000000000 +0000 @@ -36,14 +36,6 @@ DT_MODULE_INTROSPECTION(2, dt_iop_colorcontrast_params_t) -typedef struct dt_iop_colorcontrast_params1_t -{ - float a_steepness; - float a_offset; - float b_steepness; - float b_offset; -} dt_iop_colorcontrast_params1_t; - typedef struct dt_iop_colorcontrast_params_t { float a_steepness; // $MIN: 0.0 $MAX: 5.0 $DEFAULT: 1.0 $DESCRIPTION: "green-magenta contrast" @@ -110,9 +102,9 @@ return IOP_GROUP_COLOR | IOP_GROUP_GRADING; } -int default_colorspace(dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } @@ -120,19 +112,42 @@ int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, - const int new_version) + void **new_params, + int32_t *new_params_size, + int *new_version) { - if(old_version == 1 && new_version == 2) + typedef struct dt_iop_colorcontrast_params_v2_t { - const dt_iop_colorcontrast_params1_t *old = old_params; - dt_iop_colorcontrast_params_t *new = new_params; + float a_steepness; + float a_offset; + float b_steepness; + float b_offset; + int unbound; + } dt_iop_colorcontrast_params_v2_t; - new->a_steepness = old->a_steepness; - new->a_offset = old->a_offset; - new->b_steepness = old->b_steepness; - new->b_offset = old->b_offset; - new->unbound = 0; + if(old_version == 1) + { + typedef struct dt_iop_colorcontrast_params_v1_t + { + float a_steepness; + float a_offset; + float b_steepness; + float b_offset; + } dt_iop_colorcontrast_params_v1_t; + + const dt_iop_colorcontrast_params_v1_t *o = old_params; + dt_iop_colorcontrast_params_v2_t *n = + (dt_iop_colorcontrast_params_v2_t *)malloc(sizeof(dt_iop_colorcontrast_params_v2_t)); + + n->a_steepness = o->a_steepness; + n->a_offset = o->a_offset; + n->b_steepness = o->b_steepness; + n->b_offset = o->b_offset; + n->unbound = 0; + + *new_params = n; + *new_params_size = sizeof(dt_iop_colorcontrast_params_v2_t); + *new_version = 2; return 0; } return 1; @@ -240,19 +255,10 @@ const float offset[4] = { 0.0f, data->a_offset, data->b_offset, 0.0f }; const int unbound = data->unbound; - const cl_int err = - dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_colorcontrast, width, height, + return dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_colorcontrast, width, height, CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(scale), CLARG(offset), CLARG(unbound)); - - if(err != CL_SUCCESS) goto error; - return TRUE; - -error: - dt_print(DT_DEBUG_OPENCL, - "[opencl_colorcontrast] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; } #endif diff -Nru darktable-4.4.2/src/iop/colorcorrection.c darktable-4.6.1/src/iop/colorcorrection.c --- darktable-4.4.2/src/iop/colorcorrection.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/colorcorrection.c 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2009-2021 darktable developers. + Copyright (C) 2009-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -90,7 +90,9 @@ return IOP_GROUP_COLOR | IOP_GROUP_GRADING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } @@ -162,22 +164,13 @@ dt_iop_colorcorrection_data_t *d = (dt_iop_colorcorrection_data_t *)piece->data; dt_iop_colorcorrection_global_data_t *gd = (dt_iop_colorcorrection_global_data_t *)self->global_data; - cl_int err = DT_OPENCL_DEFAULT_ERROR; const int devid = piece->pipe->devid; - const int width = roi_out->width; const int height = roi_out->height; - err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_colorcorrection, width, height, + return dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_colorcorrection, width, height, CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(d->saturation), CLARG(d->a_scale), CLARG(d->a_base), CLARG(d->b_scale), CLARG(d->b_base)); - if(err != CL_SUCCESS) goto error; - - return TRUE; - -error: - dt_print(DT_DEBUG_OPENCL, "[opencl_colorcorrection] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; } #endif @@ -430,7 +423,8 @@ break; default: // reset everything { - dt_iop_colorcorrection_params_t *d = (dt_iop_colorcorrection_params_t *)self->default_params; + const dt_iop_colorcorrection_params_t *const d = + (dt_iop_colorcorrection_params_t *)self->default_params; memcpy(p, d, sizeof(*p)); dt_dev_add_history_item(darktable.develop, self, TRUE); } @@ -457,7 +451,7 @@ if(dt_gui_ignore_scroll(event)) return FALSE; int delta_y; - if(dt_gui_get_scroll_unit_deltas(event, NULL, &delta_y)) + if(dt_gui_get_scroll_unit_delta(event, &delta_y)) { p->saturation = CLAMP(p->saturation - 0.1 * delta_y, -3.0, 3.0); dt_bauhaus_slider_set(g->slider, p->saturation); diff -Nru darktable-4.4.2/src/iop/colorin.c darktable-4.6.1/src/iop/colorin.c --- darktable-4.4.2/src/iop/colorin.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/colorin.c 2024-02-16 17:31:09.000000000 +0000 @@ -146,16 +146,16 @@ return IOP_FLAGS_ALLOW_TILING | IOP_FLAGS_ONE_INSTANCE; } -int default_colorspace(dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } -int input_colorspace(dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t input_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { if(piece) { @@ -166,9 +166,9 @@ return IOP_CS_RGB; } -int output_colorspace(dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t output_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } @@ -196,12 +196,25 @@ int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, - const int new_version) -{ + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_colorin_params_v7_t + { + dt_colorspaces_color_profile_type_t type; + char filename[DT_IOP_COLOR_ICC_LEN]; + dt_iop_color_intent_t intent; + dt_iop_color_normalize_t normalize; + gboolean blue_mapping; + // working color profile + dt_colorspaces_color_profile_type_t type_work; + char filename_work[DT_IOP_COLOR_ICC_LEN]; + } dt_iop_colorin_params_v7_t; + #define DT_IOP_COLOR_ICC_LEN_V5 100 - if(old_version == 1 && new_version == 7) + if(old_version == 1) { typedef struct dt_iop_colorin_params_v1_t { @@ -210,7 +223,8 @@ } dt_iop_colorin_params_v1_t; const dt_iop_colorin_params_v1_t *old = (dt_iop_colorin_params_v1_t *)old_params; - dt_iop_colorin_params_t *new = (dt_iop_colorin_params_t *)new_params; + dt_iop_colorin_params_v7_t *new = + (dt_iop_colorin_params_v7_t *)malloc(sizeof(dt_iop_colorin_params_v7_t)); memset(new, 0, sizeof(*new)); if(!strcmp(old->iccprofile, "eprofile")) @@ -251,9 +265,13 @@ new->blue_mapping = TRUE; new->type_work = DT_COLORSPACE_LIN_REC709; new->filename_work[0] = '\0'; + + *new_params = new; + *new_params_size = sizeof(dt_iop_colorin_params_v7_t); + *new_version = 7; return 0; } - if(old_version == 2 && new_version == 7) + if(old_version == 2) { typedef struct dt_iop_colorin_params_v2_t { @@ -263,7 +281,8 @@ } dt_iop_colorin_params_v2_t; const dt_iop_colorin_params_v2_t *old = (dt_iop_colorin_params_v2_t *)old_params; - dt_iop_colorin_params_t *new = (dt_iop_colorin_params_t *)new_params; + dt_iop_colorin_params_v7_t *new = + (dt_iop_colorin_params_v7_t *)malloc(sizeof(dt_iop_colorin_params_v7_t)); memset(new, 0, sizeof(*new)); if(!strcmp(old->iccprofile, "eprofile")) @@ -304,9 +323,13 @@ new->blue_mapping = TRUE; new->type_work = DT_COLORSPACE_LIN_REC709; new->filename_work[0] = '\0'; + + *new_params = new; + *new_params_size = sizeof(dt_iop_colorin_params_v7_t); + *new_version = 7; return 0; } - if(old_version == 3 && new_version == 7) + if(old_version == 3) { typedef struct dt_iop_colorin_params_v3_t { @@ -317,7 +340,8 @@ } dt_iop_colorin_params_v3_t; const dt_iop_colorin_params_v3_t *old = (dt_iop_colorin_params_v3_t *)old_params; - dt_iop_colorin_params_t *new = (dt_iop_colorin_params_t *)new_params; + dt_iop_colorin_params_v7_t *new = + (dt_iop_colorin_params_v7_t *)malloc(sizeof(dt_iop_colorin_params_v7_t)); memset(new, 0, sizeof(*new)); if(!strcmp(old->iccprofile, "eprofile")) @@ -359,9 +383,12 @@ new->type_work = DT_COLORSPACE_LIN_REC709; new->filename_work[0] = '\0'; + *new_params = new; + *new_params_size = sizeof(dt_iop_colorin_params_v7_t); + *new_version = 7; return 0; } - if(old_version == 4 && new_version == 7) + if(old_version == 4) { typedef struct dt_iop_colorin_params_v4_t { @@ -373,7 +400,8 @@ } dt_iop_colorin_params_v4_t; const dt_iop_colorin_params_v4_t *old = (dt_iop_colorin_params_v4_t *)old_params; - dt_iop_colorin_params_t *new = (dt_iop_colorin_params_t *)new_params; + dt_iop_colorin_params_v7_t *new = + (dt_iop_colorin_params_v7_t *)malloc(sizeof(dt_iop_colorin_params_v7_t)); memset(new, 0, sizeof(*new)); new->type = old->type; @@ -384,9 +412,13 @@ new->type_work = DT_COLORSPACE_LIN_REC709; new->filename_work[0] = '\0'; + + *new_params = new; + *new_params_size = sizeof(dt_iop_colorin_params_v7_t); + *new_version = 7; return 0; } - if(old_version == 5 && new_version == 7) + if(old_version == 5) { typedef struct dt_iop_colorin_params_v5_t { @@ -401,7 +433,8 @@ } dt_iop_colorin_params_v5_t; const dt_iop_colorin_params_v5_t *old = (dt_iop_colorin_params_v5_t *)old_params; - dt_iop_colorin_params_t *new = (dt_iop_colorin_params_t *)new_params; + dt_iop_colorin_params_v7_t *new = + (dt_iop_colorin_params_v7_t *)malloc(sizeof(dt_iop_colorin_params_v7_t)); memset(new, 0, sizeof(*new)); new->type = old->type; @@ -413,9 +446,12 @@ g_strlcpy(new->filename_work, old->filename_work, sizeof(new->filename_work)); _resolve_work_profile(&new->type_work, new->filename_work); + *new_params = new; + *new_params_size = sizeof(dt_iop_colorin_params_v7_t); + *new_version = 7; return 0; } - if(old_version == 6 && new_version == 7) + if(old_version == 6) { // The structure is equal to to v7 (current) but a new version is // introduced to convert invalid working profile choice to the @@ -433,10 +469,14 @@ } dt_iop_colorin_params_v6_t; const dt_iop_colorin_params_v6_t *old = (dt_iop_colorin_params_v6_t *)old_params; - dt_iop_colorin_params_t *new = (dt_iop_colorin_params_t *)new_params; + dt_iop_colorin_params_v7_t *new = + (dt_iop_colorin_params_v7_t *)malloc(sizeof(dt_iop_colorin_params_v7_t)); memcpy(new, old, sizeof(*new)); _resolve_work_profile(&new->type_work, new->filename_work); + *new_params = new; + *new_params_size = sizeof(dt_iop_colorin_params_v7_t); + *new_version = 7; return 0; } return 1; @@ -650,7 +690,7 @@ size_t region[] = { roi_in->width, roi_in->height, 1 }; err = dt_opencl_enqueue_copy_image(devid, dev_in, dev_out, origin, origin, region); if(err != CL_SUCCESS) goto error; - return TRUE; + return CL_SUCCESS; } dev_m = dt_opencl_copy_host_to_device_constant(devid, sizeof(float) * 9, cmat); @@ -673,16 +713,6 @@ CLARG(dev_m), CLARG(dev_l), CLARG(dev_r), CLARG(dev_g), CLARG(dev_b), CLARG(blue_mapping), CLARG(dev_coeffs)); - if(err != CL_SUCCESS) goto error; - dt_opencl_release_mem_object(dev_m); - dt_opencl_release_mem_object(dev_l); - dt_opencl_release_mem_object(dev_r); - dt_opencl_release_mem_object(dev_g); - dt_opencl_release_mem_object(dev_b); - dt_opencl_release_mem_object(dev_coeffs); - - return TRUE; - error: dt_opencl_release_mem_object(dev_m); dt_opencl_release_mem_object(dev_l); @@ -690,9 +720,7 @@ dt_opencl_release_mem_object(dev_g); dt_opencl_release_mem_object(dev_b); dt_opencl_release_mem_object(dev_coeffs); - dt_print(DT_DEBUG_OPENCL, - "[opencl_colorin] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif @@ -821,60 +849,12 @@ } } -#ifdef __SSE2__ -static inline void _cmatrix_fastpath_clipping_sse(float *const restrict out, - const float *const restrict in, - size_t npixels, - const dt_colormatrix_t nmatrix, - const dt_colormatrix_t lmatrix) -{ - // only color matrix. use our optimized fast path! - const __m128 nm0 = _mm_set_ps(0.0f, nmatrix[2][0], nmatrix[1][0], nmatrix[0][0]); - const __m128 nm1 = _mm_set_ps(0.0f, nmatrix[2][1], nmatrix[1][1], nmatrix[0][1]); - const __m128 nm2 = _mm_set_ps(0.0f, nmatrix[2][2], nmatrix[1][2], nmatrix[0][2]); - - const __m128 lm0 = _mm_set_ps(0.0f, lmatrix[2][0], lmatrix[1][0], lmatrix[0][0]); - const __m128 lm1 = _mm_set_ps(0.0f, lmatrix[2][1], lmatrix[1][1], lmatrix[0][1]); - const __m128 lm2 = _mm_set_ps(0.0f, lmatrix[2][2], lmatrix[1][2], lmatrix[0][2]); - - // this function is called from inside a parallel for loop, so no - // need for further parallelization - for(size_t k = 0; k < npixels; k++) - { - __m128 input = _mm_load_ps(in + 4*k); - // convert to gamut space - __m128 nrgb = ((nm0 * _mm_shuffle_ps(input, input, _MM_SHUFFLE(0, 0, 0, 0))) + - (nm1 * _mm_shuffle_ps(input, input, _MM_SHUFFLE(1, 1, 1, 1))) + - (nm2 * _mm_shuffle_ps(input, input, _MM_SHUFFLE(2, 2, 2, 2)))); - // clip to gamut - __m128 crgb = _mm_min_ps(_mm_max_ps(nrgb, _mm_set1_ps(0.0f)), _mm_set1_ps(1.0f)); - // convert to output space - __m128 xyz = ((lm0 * _mm_shuffle_ps(crgb, crgb, _MM_SHUFFLE(0, 0, 0, 0))) + - (lm1 * _mm_shuffle_ps(crgb, crgb, _MM_SHUFFLE(1, 1, 1, 1))) + - (lm2 * _mm_shuffle_ps(crgb, crgb, _MM_SHUFFLE(2, 2, 2, 2)))); - _mm_stream_ps(out + 4*k, dt_XYZ_to_Lab_sse2(xyz)); - } - _mm_sfence(); -} -#endif - static inline void _cmatrix_fastpath_clipping(float *const restrict out, const float *const restrict in, size_t npixels, const dt_colormatrix_t nmatrix, const dt_colormatrix_t lmatrix) { -#ifdef __SSE2__ - // we can't remove the SSE version yet, because I haven't been able to - // convince GCC10 to put the color matrix rows into registers, unlike - // with the SSE version. That makes the non-SSE version quite a bit - // slower with fewer than 32 threads. - if(darktable.codepath.SSE2) - { - _cmatrix_fastpath_clipping_sse(out, in, npixels, nmatrix, lmatrix); - return; - } -#endif const dt_aligned_pixel_t nmatrix_row0 = { nmatrix[0][0], nmatrix[1][0], nmatrix[2][0], @@ -932,13 +912,14 @@ // figure out the number of pixels each thread needs to process // round up to a multiple of 4 pixels so that each chunk starts aligned(64) const size_t nthreads = dt_get_num_threads(); - const size_t chunksize = 4 * (((npixels / nthreads) + 4) / 4); + const size_t chunksize = 4 * ((((npixels + nthreads - 1) / nthreads) + 3) / 4); #pragma omp parallel for default(none) \ dt_omp_firstprivate(in, out, npixels, chunksize, nthreads, d, clipping) \ schedule(static) for(size_t chunk = 0; chunk < nthreads; chunk++) { size_t start = chunksize * dt_get_thread_num(); + if (start >= npixels) continue; // handle case when chunksize is < 4*nthreads and last thread has no work size_t end = MIN(start + chunksize, npixels); if(clipping) _cmatrix_fastpath_clipping(out + 4*start, in + 4*start, @@ -988,43 +969,6 @@ } } -#ifdef __SSE2__ -static inline void _cmatrix_proper_clipping_sse(float *const restrict out, - const float *const restrict in, - size_t npixels, - const dt_iop_colorin_data_t *const d, - const dt_colormatrix_t nmatrix, - const dt_colormatrix_t lmatrix) -{ - const __m128 nm0 = _mm_set_ps(0.0f, d->nmatrix[2][0], d->nmatrix[1][0], d->nmatrix[0][0]); - const __m128 nm1 = _mm_set_ps(0.0f, d->nmatrix[2][1], d->nmatrix[1][1], d->nmatrix[0][1]); - const __m128 nm2 = _mm_set_ps(0.0f, d->nmatrix[2][2], d->nmatrix[1][2], d->nmatrix[0][2]); - const __m128 lm0 = _mm_set_ps(0.0f, d->lmatrix[2][0], d->lmatrix[1][0], d->lmatrix[0][0]); - const __m128 lm1 = _mm_set_ps(0.0f, d->lmatrix[2][1], d->lmatrix[1][1], d->lmatrix[0][1]); - const __m128 lm2 = _mm_set_ps(0.0f, d->lmatrix[2][2], d->lmatrix[1][2], d->lmatrix[0][2]); - - // this function is called from inside a parallel for loop, so no need for further parallelization - for(size_t k = 0; k < npixels; k++) - { - dt_aligned_pixel_t cam; - copy_pixel(cam, in + 4*k); - _apply_tone_curves(cam, d); - - // convert to clipping colorspace - __m128 nrgb = ((nm0 * _mm_set1_ps(cam[0])) - + (nm1 * _mm_set1_ps(cam[1])) - + (nm2 * _mm_set1_ps(cam[2]))); - // clip to gamut - __m128 crgb = _mm_min_ps(_mm_max_ps(nrgb, _mm_set1_ps(0.0f)), _mm_set1_ps(1.0f)); - // convert to output colorspace - __m128 xyz = ((lm0 * _mm_shuffle_ps(crgb, crgb, _MM_SHUFFLE(0, 0, 0, 0))) - + (lm1 * _mm_shuffle_ps(crgb, crgb, _MM_SHUFFLE(1, 1, 1, 1))) - + (lm2 * _mm_shuffle_ps(crgb, crgb, _MM_SHUFFLE(2, 2, 2, 2)))); - _mm_stream_ps(out + 4*k, dt_XYZ_to_Lab_sse2(xyz)); - } -} -#endif - static inline void _cmatrix_proper_clipping(float *const restrict out, const float *const restrict in, size_t npixels, @@ -1032,13 +976,6 @@ const dt_colormatrix_t nmatrix, const dt_colormatrix_t lmatrix) { -#ifdef __SSE2__ - if(darktable.codepath.SSE2) - { - _cmatrix_proper_clipping_sse(out, in, npixels, d, nmatrix, lmatrix); - return; - } -#endif const dt_aligned_pixel_t nmatrix_row0 = { nmatrix[0][0], nmatrix[1][0], nmatrix[2][0], @@ -1109,6 +1046,7 @@ for(size_t chunk = 0; chunk < nthreads; chunk++) { size_t start = chunksize * dt_get_thread_num(); + if (start >= npixels) continue; // handle case when chunksize is < 4*nthreads and last thread has no work size_t end = MIN(start + chunksize, npixels); if(clipping) _cmatrix_proper_clipping(out + 4*start, in + 4*start, diff -Nru darktable-4.4.2/src/iop/colorize.c darktable-4.6.1/src/iop/colorize.c --- darktable-4.4.2/src/iop/colorize.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/colorize.c 2024-02-16 17:31:09.000000000 +0000 @@ -42,15 +42,6 @@ DT_MODULE_INTROSPECTION(2, dt_iop_colorize_params_t) -// legacy parameters of version 1 of module -typedef struct dt_iop_colorize_params1_t -{ - float hue; - float saturation; - float source_lightness_mix; - float lightness; -} dt_iop_colorize_params1_t; - typedef struct dt_iop_colorize_params_t { float hue; // $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.0 @@ -94,7 +85,9 @@ return IOP_GROUP_EFFECT | IOP_GROUP_GRADING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } @@ -108,19 +101,45 @@ _("non-linear, Lab, display-referred")); } -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, const int new_version) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) { - if(old_version == 1 && new_version == 2) + typedef struct dt_iop_colorize_params_v2_t { - const dt_iop_colorize_params1_t *old = old_params; - dt_iop_colorize_params_t *new = new_params; + float hue; + float saturation; + float source_lightness_mix; + float lightness; + int version; + } dt_iop_colorize_params_v2_t; - new->hue = old->hue; - new->saturation = old->saturation; - new->source_lightness_mix = old->source_lightness_mix; - new->lightness = old->lightness; - new->version = 1; + if(old_version == 1) + { + typedef struct dt_iop_colorize_params_v1_t + { + float hue; + float saturation; + float source_lightness_mix; + float lightness; + } dt_iop_colorize_params_v1_t; + + const dt_iop_colorize_params_v1_t *o = old_params; + dt_iop_colorize_params_v2_t *n = + (dt_iop_colorize_params_v2_t *)malloc(sizeof(dt_iop_colorize_params_v2_t)); + + n->hue = o->hue; + n->saturation = o->saturation; + n->source_lightness_mix = o->source_lightness_mix; + n->lightness = o->lightness; + n->version = 1; + + *new_params = n; + *new_params_size = sizeof(dt_iop_colorize_params_v2_t); + *new_version = 2; return 0; } return 1; @@ -169,7 +188,6 @@ dt_iop_colorize_data_t *data = (dt_iop_colorize_data_t *)piece->data; dt_iop_colorize_global_data_t *gd = (dt_iop_colorize_global_data_t *)self->global_data; - cl_int err = DT_OPENCL_DEFAULT_ERROR; const int devid = piece->pipe->devid; const int width = roi_in->width; const int height = roi_in->height; @@ -179,14 +197,8 @@ const float b = data->b; const float mix = data->mix; - err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_colorize, width, height, + return dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_colorize, width, height, CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(mix), CLARG(L), CLARG(a), CLARG(b)); - if(err != CL_SUCCESS) goto error; - return TRUE; - -error: - dt_print(DT_DEBUG_OPENCL, "[opencl_colorize] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; } #endif @@ -226,7 +238,8 @@ } } -void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece) +void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, + dt_dev_pixelpipe_t *pipe) { dt_iop_colorize_gui_data_t *g = (dt_iop_colorize_gui_data_t *)self->gui_data; dt_iop_colorize_params_t *p = (dt_iop_colorize_params_t *)self->params; @@ -360,4 +373,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/colormapping.c darktable-4.6.1/src/iop/colormapping.c --- darktable-4.4.2/src/iop/colormapping.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/colormapping.c 2024-02-16 17:31:09.000000000 +0000 @@ -166,7 +166,9 @@ return IOP_FLAGS_ONE_INSTANCE | IOP_FLAGS_SUPPORTS_BLENDING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } @@ -649,6 +651,7 @@ = (data->target_var[i][1] > 0.0f) ? data->source_var[mapio[i]][1] / data->target_var[i][1] : 0.0f; } + err = CL_MEM_OBJECT_ALLOCATION_FAILURE; dev_tmp = dt_opencl_alloc_device(devid, width, height, sizeof(float) * 4); if(dev_tmp == NULL) goto error; @@ -702,24 +705,12 @@ err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_mapping, width, height, CLARG(dev_in), CLARG(dev_tmp), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(data->n), CLARG(dev_target_mean), CLARG(dev_source_mean), CLARG(dev_var_ratio), CLARG(dev_mapio)); - if(err != CL_SUCCESS) goto error; - - dt_opencl_release_mem_object(dev_tmp); - dt_opencl_release_mem_object(dev_target_hist); - dt_opencl_release_mem_object(dev_source_ihist); - dt_opencl_release_mem_object(dev_target_mean); - dt_opencl_release_mem_object(dev_source_mean); - dt_opencl_release_mem_object(dev_var_ratio); - dt_opencl_release_mem_object(dev_mapio); - return TRUE; } else { size_t origin[] = { 0, 0, 0 }; size_t region[] = { width, height, 1 }; err = dt_opencl_enqueue_copy_image(devid, dev_in, dev_out, origin, origin, region); - if(err != CL_SUCCESS) goto error; - return TRUE; } error: @@ -731,8 +722,7 @@ dt_opencl_release_mem_object(dev_source_mean); dt_opencl_release_mem_object(dev_var_ratio); dt_opencl_release_mem_object(dev_mapio); - dt_print(DT_DEBUG_OPENCL, "[opencl_colormapping] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif diff -Nru darktable-4.4.2/src/iop/colorout.c darktable-4.6.1/src/iop/colorout.c --- darktable-4.4.2/src/iop/colorout.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/colorout.c 2024-02-16 17:31:09.000000000 +0000 @@ -103,19 +103,23 @@ return IOP_FLAGS_ALLOW_TILING | IOP_FLAGS_ONE_INSTANCE; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } -int input_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t input_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } -int output_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t output_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { int cst = IOP_CS_RGB; if(piece) @@ -131,9 +135,20 @@ return cst; } -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, const int new_version) -{ +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_colorout_params_v5_t + { + dt_colorspaces_color_profile_type_t type; // $DEFAULT: DT_COLORSPACE_SRGB + char filename[DT_IOP_COLOR_ICC_LEN]; + dt_iop_color_intent_t intent; // $DEFAULT: DT_INTENT_PERCEPTUAL + } dt_iop_colorout_params_v5_t; + #define DT_IOP_COLOR_ICC_LEN_V4 100 /* if(old_version == 1 && new_version == 2) { @@ -143,7 +158,7 @@ n->seq = 0; return 0; }*/ - if((old_version == 2 || old_version == 3) && new_version == 5) + if(old_version == 2 || old_version == 3) { typedef struct dt_iop_colorout_params_v3_t { @@ -157,13 +172,15 @@ } dt_iop_colorout_params_v3_t; - dt_iop_colorout_params_v3_t *o = (dt_iop_colorout_params_v3_t *)old_params; - dt_iop_colorout_params_t *n = (dt_iop_colorout_params_t *)new_params; - memset(n, 0, sizeof(dt_iop_colorout_params_t)); + const dt_iop_colorout_params_v3_t *o = (dt_iop_colorout_params_v3_t *)old_params; + dt_iop_colorout_params_v5_t *n = + (dt_iop_colorout_params_v5_t *)malloc(sizeof(dt_iop_colorout_params_v5_t)); + memset(n, 0, sizeof(dt_iop_colorout_params_v5_t)); if(!strcmp(o->iccprofile, "sRGB")) n->type = DT_COLORSPACE_SRGB; - else if(!strcmp(o->iccprofile, "linear_rec709_rgb") || !strcmp(o->iccprofile, "linear_rgb")) + else if(!strcmp(o->iccprofile, "linear_rec709_rgb") + || !strcmp(o->iccprofile, "linear_rgb")) n->type = DT_COLORSPACE_LIN_REC709; else if(!strcmp(o->iccprofile, "linear_rec2020_rgb")) n->type = DT_COLORSPACE_LIN_REC2020; @@ -179,9 +196,12 @@ n->intent = o->intent; + *new_params = n; + *new_params_size = sizeof(dt_iop_colorout_params_v5_t); + *new_version = 5; return 0; } - if(old_version == 4 && new_version == 5) + if(old_version == 4) { typedef struct dt_iop_colorout_params_v4_t { @@ -191,14 +211,18 @@ } dt_iop_colorout_params_v4_t; - dt_iop_colorout_params_v4_t *o = (dt_iop_colorout_params_v4_t *)old_params; - dt_iop_colorout_params_t *n = (dt_iop_colorout_params_t *)new_params; - memset(n, 0, sizeof(dt_iop_colorout_params_t)); + const dt_iop_colorout_params_v4_t *o = (dt_iop_colorout_params_v4_t *)old_params; + dt_iop_colorout_params_v5_t *n = + (dt_iop_colorout_params_v5_t *)malloc(sizeof(dt_iop_colorout_params_v5_t)); + memset(n, 0, sizeof(dt_iop_colorout_params_v5_t)); n->type = o->type; g_strlcpy(n->filename, o->filename, sizeof(n->filename)); n->intent = o->intent; + *new_params = n; + *new_params_size = sizeof(dt_iop_colorout_params_v5_t); + *new_version = 5; return 0; } @@ -312,7 +336,7 @@ size_t region[] = { roi_in->width, roi_in->height, 1 }; err = dt_opencl_enqueue_copy_image(devid, dev_in, dev_out, origin, origin, region); if(err != CL_SUCCESS) goto error; - return TRUE; + return CL_SUCCESS; } @@ -332,14 +356,6 @@ err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_colorout, width, height, CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(dev_m), CLARG(dev_r), CLARG(dev_g), CLARG(dev_b), CLARG(dev_coeffs)); - if(err != CL_SUCCESS) goto error; - dt_opencl_release_mem_object(dev_m); - dt_opencl_release_mem_object(dev_r); - dt_opencl_release_mem_object(dev_g); - dt_opencl_release_mem_object(dev_b); - dt_opencl_release_mem_object(dev_coeffs); - - return TRUE; error: dt_opencl_release_mem_object(dev_m); @@ -347,8 +363,7 @@ dt_opencl_release_mem_object(dev_g); dt_opencl_release_mem_object(dev_b); dt_opencl_release_mem_object(dev_coeffs); - dt_print(DT_DEBUG_OPENCL, "[opencl_colorout] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif @@ -510,6 +525,7 @@ for(size_t chunk = 0; chunk < nthreads; chunk++) { size_t start = chunksize * dt_get_thread_num(); + if (start >= npixels) continue; // handle case when chunksize is < 4*nthreads and last thread has no work size_t count = MIN(start + chunksize, npixels) - start; float *const outp = out + 4 * start; diff -Nru darktable-4.4.2/src/iop/colorreconstruction.c darktable-4.6.1/src/iop/colorreconstruction.c --- darktable-4.4.2/src/iop/colorreconstruction.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/colorreconstruction.c 2024-02-16 17:31:09.000000000 +0000 @@ -54,21 +54,6 @@ COLORRECONSTRUCT_PRECEDENCE_HUE // $DESCRIPTION: "hue" use a specific hue as weighting factor } dt_iop_colorreconstruct_precedence_t; -typedef struct dt_iop_colorreconstruct_params1_t -{ - float threshold; - float spatial; - float range; -} dt_iop_colorreconstruct_params1_t; - -typedef struct dt_iop_colorreconstruct_params2_t -{ - float threshold; - float spatial; - float range; - dt_iop_colorreconstruct_precedence_t precedence; -} dt_iop_colorreconstruct_params2_t; - typedef struct dt_iop_colorreconstruct_params_t { float threshold; // $MIN: 50.0 $MAX: 150.0 $DEFAULT: 100.0 @@ -150,34 +135,74 @@ return IOP_GROUP_BASIC | IOP_GROUP_TECHNICAL; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, const int new_version) -{ - if(old_version == 1 && new_version == 3) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_colorreconstruct_params_v3_t + { + float threshold; + float spatial; + float range; + float hue; + dt_iop_colorreconstruct_precedence_t precedence; + } dt_iop_colorreconstruct_params_v3_t; + + if(old_version == 1) { - const dt_iop_colorreconstruct_params1_t *old = old_params; - dt_iop_colorreconstruct_params_t *new = new_params; + typedef struct dt_iop_colorreconstruct_params_v1_t + { + float threshold; + float spatial; + float range; + } dt_iop_colorreconstruct_params_v1_t; + + const dt_iop_colorreconstruct_params_v1_t *old = old_params; + dt_iop_colorreconstruct_params_v3_t *new = + (dt_iop_colorreconstruct_params_v3_t *)malloc(sizeof(dt_iop_colorreconstruct_params_v3_t)); new->threshold = old->threshold; new->spatial = old->spatial; new->range = old->range; new->precedence = COLORRECONSTRUCT_PRECEDENCE_NONE; new->hue = 0.66f; + + *new_params = new; + *new_params_size = sizeof(dt_iop_colorreconstruct_params_v3_t); + *new_version = 3; return 0; } - else if(old_version == 2 && new_version == 3) + else if(old_version == 2) { - const dt_iop_colorreconstruct_params2_t *old = old_params; - dt_iop_colorreconstruct_params_t *new = new_params; + typedef struct dt_iop_colorreconstruct_params_v2_t + { + float threshold; + float spatial; + float range; + dt_iop_colorreconstruct_precedence_t precedence; + } dt_iop_colorreconstruct_params_v2_t; + + const dt_iop_colorreconstruct_params_v2_t *old = old_params; + dt_iop_colorreconstruct_params_v3_t *new = + (dt_iop_colorreconstruct_params_v3_t *)malloc(sizeof(dt_iop_colorreconstruct_params_v3_t)); new->threshold = old->threshold; new->spatial = old->spatial; new->range = old->range; new->precedence = old->precedence; new->hue = 0.66f; + + *new_params = new; + *new_params_size = sizeof(dt_iop_colorreconstruct_params_v3_t); + *new_version = 3; return 0; } return 1; @@ -615,14 +640,8 @@ && g && (piece->pipe->type & DT_DEV_PIXELPIPE_FULL)) { - // check how far we are zoomed-in - dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - int closeup = dt_control_get_dev_closeup(); - const float min_scale = dt_dev_get_zoom_scale(self->dev, DT_ZOOM_FIT, 1<<closeup, 0); - const float cur_scale = dt_dev_get_zoom_scale(self->dev, zoom, 1<<closeup, 0); - // if we are zoomed in more than just a little bit, we try to use the canned grid of the preview pipeline - if(cur_scale > 1.05f * min_scale) + if(dt_dev_get_zoomed_in() > 1.05f) { if(!dt_dev_sync_pixelpipe_hash(self->dev, piece->pipe, self->iop_order, DT_DEV_TRANSFORM_DIR_BACK_INCL, &self->gui_lock, &g->hash)) dt_control_log(_("inconsistent output")); @@ -1027,14 +1046,8 @@ && g && (piece->pipe->type & DT_DEV_PIXELPIPE_FULL)) { - // check how far we are zoomed-in - dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - int closeup = dt_control_get_dev_closeup(); - const float min_scale = dt_dev_get_zoom_scale(self->dev, DT_ZOOM_FIT, 1<<closeup, 0); - const float cur_scale = dt_dev_get_zoom_scale(self->dev, zoom, 1<<closeup, 0); - // if we are zoomed in more than just a little bit, we try to use the canned grid of the preview pipeline - if(cur_scale > 1.05f * min_scale) + if(dt_dev_get_zoomed_in() > 1.05f) { if(!dt_dev_sync_pixelpipe_hash(self->dev, piece->pipe, self->iop_order, DT_DEV_TRANSFORM_DIR_BACK_INCL, &self->gui_lock, &g->hash)) dt_control_log(_("inconsistent output")); @@ -1073,13 +1086,9 @@ dt_iop_gui_leave_critical_section(self); } - dt_iop_colorreconstruct_bilateral_free_cl(b); - return TRUE; - error: dt_iop_colorreconstruct_bilateral_free_cl(b); - dt_print(DT_DEBUG_OPENCL, "[opencl_colorreconstruction] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif @@ -1280,4 +1289,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/colortransfer.c darktable-4.6.1/src/iop/colortransfer.c --- darktable-4.4.2/src/iop/colortransfer.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/colortransfer.c 2024-02-16 17:31:09.000000000 +0000 @@ -118,7 +118,9 @@ return _("this module is deprecated. better use color mapping module instead."); } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } diff -Nru darktable-4.4.2/src/iop/colorzones.c darktable-4.6.1/src/iop/colorzones.c --- darktable-4.4.2/src/iop/colorzones.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/colorzones.c 2024-02-16 17:31:09.000000000 +0000 @@ -141,11 +141,12 @@ const char **description(struct dt_iop_module_t *self) { - return dt_iop_set_description(self, _("selectively shift hues, chroma and lightness of pixels"), - _("creative"), - _("linear or non-linear, Lab, display-referred"), - _("non-linear, Lab"), - _("non-linear, Lab, display-referred")); + return dt_iop_set_description + (self, _("selectively shift hues, chroma and lightness of pixels"), + _("creative"), + _("linear or non-linear, Lab, display-referred"), + _("non-linear, Lab"), + _("non-linear, Lab, display-referred")); } int flags() @@ -158,26 +159,46 @@ return IOP_GROUP_COLOR | IOP_GROUP_GRADING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, void *new_params, - const int new_version) -{ +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_colorzones_params_v5_t + { + dt_iop_colorzones_channel_t channel; + // three curves (L, C, h) with max number of nodes + dt_iop_colorzones_node_t curve[DT_IOP_COLORZONES_MAX_CHANNELS][DT_IOP_COLORZONES_MAXNODES]; + int curve_num_nodes[DT_IOP_COLORZONES_MAX_CHANNELS]; + int curve_type[DT_IOP_COLORZONES_MAX_CHANNELS]; + float strength; + dt_iop_colorzones_modes_t mode; + int splines_version; + } dt_iop_colorzones_params_v5_t; + #define DT_IOP_COLORZONES1_BANDS 6 - if(old_version == 1 && new_version == 5) + if(old_version == 1) { - typedef struct dt_iop_colorzones_params1_t + typedef struct dt_iop_colorzones_params_v1_t { int32_t channel; - float equalizer_x[3][DT_IOP_COLORZONES1_BANDS], equalizer_y[3][DT_IOP_COLORZONES1_BANDS]; - } dt_iop_colorzones_params1_t; - - const dt_iop_colorzones_params1_t *old = old_params; - dt_iop_colorzones_params_t *new = new_params; + float equalizer_x[3][DT_IOP_COLORZONES1_BANDS]; + float equalizer_y[3][DT_IOP_COLORZONES1_BANDS]; + } dt_iop_colorzones_params_v1_t; + + const dt_iop_colorzones_params_v1_t *old = old_params; + dt_iop_colorzones_params_v5_t *new = + (dt_iop_colorzones_params_v5_t *)malloc(sizeof(dt_iop_colorzones_params_v5_t)); new->channel = old->channel; @@ -191,7 +212,8 @@ for(int i = 0; i < 3; i++) for(int k = 0; k < 6; k++) { - // first+1 and last-1 are set to just after and before the first and last point + // first+1 and last-1 are set to just after and before the + // first and last point if(k == 0) new->curve[i][k + 1].x = old->equalizer_x[i][k] + 0.001f; else if(k == 5) @@ -215,18 +237,24 @@ new->strength = 0.0f; new->mode = DT_IOP_COLORZONES_MODE_SMOOTH; new->splines_version = DT_IOP_COLORZONES_SPLINES_V1; + + *new_params = new; + *new_params_size = sizeof(dt_iop_colorzones_params_v5_t); + *new_version = 5; return 0; } - if(old_version == 2 && new_version == 5) + if(old_version == 2) { - typedef struct dt_iop_colorzones_params2_t + typedef struct dt_iop_colorzones_params_v2_t { int32_t channel; - float equalizer_x[3][DT_IOP_COLORZONES_BANDS], equalizer_y[3][DT_IOP_COLORZONES_BANDS]; - } dt_iop_colorzones_params2_t; - - const dt_iop_colorzones_params2_t *old = old_params; - dt_iop_colorzones_params_t *new = new_params; + float equalizer_x[3][DT_IOP_COLORZONES_BANDS]; + float equalizer_y[3][DT_IOP_COLORZONES_BANDS]; + } dt_iop_colorzones_params_v2_t; + + const dt_iop_colorzones_params_v2_t *old = old_params; + dt_iop_colorzones_params_v5_t *new = + (dt_iop_colorzones_params_v5_t *)malloc(sizeof(dt_iop_colorzones_params_v5_t)); new->channel = old->channel; for(int b = 0; b < DT_IOP_COLORZONES_BANDS; b++) @@ -243,19 +271,25 @@ new->strength = 0.0f; new->mode = DT_IOP_COLORZONES_MODE_SMOOTH; new->splines_version = DT_IOP_COLORZONES_SPLINES_V1; + + *new_params = new; + *new_params_size = sizeof(dt_iop_colorzones_params_v5_t); + *new_version = 5; return 0; } - if(old_version == 3 && new_version == 5) + if(old_version == 3) { - typedef struct dt_iop_colorzones_params3_t + typedef struct dt_iop_colorzones_params_v3_t { int32_t channel; - float equalizer_x[3][DT_IOP_COLORZONES_BANDS], equalizer_y[3][DT_IOP_COLORZONES_BANDS]; + float equalizer_x[3][DT_IOP_COLORZONES_BANDS]; + float equalizer_y[3][DT_IOP_COLORZONES_BANDS]; float strength; - } dt_iop_colorzones_params3_t; + } dt_iop_colorzones_params_v3_t; - const dt_iop_colorzones_params3_t *old = old_params; - dt_iop_colorzones_params_t *new = new_params; + const dt_iop_colorzones_params_v3_t *old = old_params; + dt_iop_colorzones_params_v5_t *new = + (dt_iop_colorzones_params_v5_t *)malloc(sizeof(dt_iop_colorzones_params_v5_t)); new->channel = old->channel; for(int b = 0; b < DT_IOP_COLORZONES_BANDS; b++) @@ -274,11 +308,15 @@ new->strength = old->strength; new->mode = DT_IOP_COLORZONES_MODE_SMOOTH; new->splines_version = DT_IOP_COLORZONES_SPLINES_V1; + + *new_params = new; + *new_params_size = sizeof(dt_iop_colorzones_params_v5_t); + *new_version = 5; return 0; } - if(old_version == 4 && new_version == 5) + if(old_version == 4) { - typedef struct dt_iop_colorzones_params4_t + typedef struct dt_iop_colorzones_params_v4_t { int32_t channel; dt_iop_colorzones_node_t curve[DT_IOP_COLORZONES_MAX_CHANNELS][DT_IOP_COLORZONES_MAXNODES]; @@ -286,10 +324,11 @@ int curve_type[DT_IOP_COLORZONES_MAX_CHANNELS]; float strength; int mode; - } dt_iop_colorzones_params4_t; + } dt_iop_colorzones_params_v4_t; - const dt_iop_colorzones_params4_t *old = old_params; - dt_iop_colorzones_params_t *new = new_params; + const dt_iop_colorzones_params_v4_t *old = old_params; + dt_iop_colorzones_params_v5_t *new = + (dt_iop_colorzones_params_v5_t *)malloc(sizeof(dt_iop_colorzones_params_v5_t)); new->channel = old->channel; for(int i = 0; i < DT_IOP_COLORZONES_MAXNODES; i++) @@ -308,6 +347,10 @@ new->strength = old->strength; new->mode = old->mode; new->splines_version = DT_IOP_COLORZONES_SPLINES_V1; + + *new_params = new; + *new_params_size = sizeof(dt_iop_colorzones_params_v5_t); + *new_version = 5; return 0; } #undef DT_IOP_COLORZONES1_BANDS @@ -315,19 +358,26 @@ return 1; } -static float _curve_to_mouse(const float x, const float zoom_factor, const float offset) +static float _curve_to_mouse(const float x, + const float zoom_factor, + const float offset) { return (x - offset) * zoom_factor; } -static float _mouse_to_curve(const float x, const float zoom_factor, const float offset) +static float _mouse_to_curve(const float x, + const float zoom_factor, + const float offset) { return (x / zoom_factor) + offset; } // fills in new parameters based on mouse position (in 0,1) -static void dt_iop_colorzones_get_params(dt_iop_colorzones_params_t *p, dt_iop_colorzones_gui_data_t *c, - const int ch, const double mouse_x, const double mouse_y, +static void dt_iop_colorzones_get_params(dt_iop_colorzones_params_t *p, + dt_iop_colorzones_gui_data_t *c, + const int ch, + const double mouse_x, + const double mouse_y, const float radius) { const int bands = p->curve_num_nodes[ch]; @@ -337,17 +387,21 @@ const float rad = radius / c->zoom_factor; - if(p->channel == DT_IOP_COLORZONES_h && p->splines_version == DT_IOP_COLORZONES_SPLINES_V1) + if(p->channel == DT_IOP_COLORZONES_h + && p->splines_version == DT_IOP_COLORZONES_SPLINES_V1) { // periodic boundary for(int k = 1; k < bands - 1; k++) { - const float f = expf(-(lin_mouse_x - p->curve[ch][k].x) * (lin_mouse_x - p->curve[ch][k].x) / (rad * rad)); + const float f = expf(-(lin_mouse_x - p->curve[ch][k].x) + * (lin_mouse_x - p->curve[ch][k].x) / (rad * rad)); p->curve[ch][k].y = (1.f - f) * p->curve[ch][k].y + f * lin_mouse_y; } const int m = bands - 1; - const float mind = fminf((lin_mouse_x - p->curve[ch][0].x) * (lin_mouse_x - p->curve[ch][0].x), - (lin_mouse_x - p->curve[ch][m].x) * (lin_mouse_x - p->curve[ch][m].x)); + const float mind = fminf((lin_mouse_x - p->curve[ch][0].x) + * (lin_mouse_x - p->curve[ch][0].x), + (lin_mouse_x - p->curve[ch][m].x) + * (lin_mouse_x - p->curve[ch][m].x)); const float f = expf(-mind / (rad * rad)); p->curve[ch][0].y = (1.f - f) * p->curve[ch][0].y + f * lin_mouse_y; p->curve[ch][m].y = (1.f - f) * p->curve[ch][m].y + f * lin_mouse_y; @@ -356,7 +410,8 @@ { for(int k = 0; k < bands; k++) { - const float f = expf(-(lin_mouse_x - p->curve[ch][k].x) * (lin_mouse_x - p->curve[ch][k].x) / (rad * rad)); + const float f = expf(-(lin_mouse_x - p->curve[ch][k].x) + * (lin_mouse_x - p->curve[ch][k].x) / (rad * rad)); p->curve[ch][k].y = (1.f - f) * p->curve[ch][k].y + f * lin_mouse_y; } } @@ -370,13 +425,18 @@ return lut[bin1] * f + lut[bin0] * (1.f - f); } -static inline float strength(float value, float strength) +static inline float strength(const float value, + const float strength) { return value + (value - 0.5f) * (strength / 100.0f); } -void process_display(struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, - void *const ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) +void process_display(struct dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + const void *const ivoid, + void *const ovoid, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) { dt_iop_colorzones_data_t *d = (dt_iop_colorzones_data_t *)(piece->data); dt_iop_colorzones_gui_data_t *g = (dt_iop_colorzones_gui_data_t *)self->gui_data; @@ -425,8 +485,12 @@ piece->pipe->bypass_blendif = TRUE; } -void process_v1(struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, - void *const ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) +void process_v1(struct dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + const void *const ivoid, + void *const ovoid, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) { dt_iop_colorzones_data_t *d = (dt_iop_colorzones_data_t *)(piece->data); @@ -472,8 +536,12 @@ } } -void process_v3(struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, - void *const ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) +void process_v3(struct dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + const void *const ivoid, + void *const ovoid, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) { dt_iop_colorzones_data_t *d = (dt_iop_colorzones_data_t *)(piece->data); const int ch = piece->colors; @@ -516,15 +584,21 @@ } } -void process(struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, - void *const ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) +void process(struct dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + const void *const ivoid, + void *const ovoid, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) { dt_iop_colorzones_data_t *d = (dt_iop_colorzones_data_t *)(piece->data); dt_iop_colorzones_gui_data_t *g = (dt_iop_colorzones_gui_data_t *)self->gui_data; // display selection if requested - if((piece->pipe->type & DT_DEV_PIXELPIPE_FULL) && g && g->display_mask && self->dev->gui_attached - && (self == self->dev->gui_module) && (piece->pipe == self->dev->pipe)) + if((piece->pipe->type & DT_DEV_PIXELPIPE_FULL) + && g + && g->display_mask && self->dev->gui_attached + && (self == self->dev->gui_module) && (piece->pipe == self->dev->full.pipe)) process_display(self, piece, ivoid, ovoid, roi_in, roi_out); else if(d->mode == DT_IOP_COLORZONES_MODE_SMOOTH) process_v3(self, piece, ivoid, ovoid, roi_in, roi_out); @@ -533,11 +607,15 @@ } #ifdef HAVE_OPENCL -int process_cl(struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, cl_mem dev_in, cl_mem dev_out, - const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) +int process_cl(struct dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + cl_mem dev_in, cl_mem dev_out, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) { dt_iop_colorzones_data_t *d = (dt_iop_colorzones_data_t *)piece->data; - dt_iop_colorzones_global_data_t *gd = (dt_iop_colorzones_global_data_t *)self->global_data; + dt_iop_colorzones_global_data_t *gd = + (dt_iop_colorzones_global_data_t *)self->global_data; cl_mem dev_L, dev_a, dev_b = NULL; cl_int err = DT_OPENCL_DEFAULT_ERROR; @@ -545,29 +623,28 @@ const int width = roi_in->width; const int height = roi_in->height; const int kernel_colorzones - = (d->mode == DT_IOP_COLORZONES_MODE_SMOOTH) ? gd->kernel_colorzones_v3 : gd->kernel_colorzones; + = (d->mode == DT_IOP_COLORZONES_MODE_SMOOTH) + ? gd->kernel_colorzones_v3 + : gd->kernel_colorzones; dev_L = dt_opencl_copy_host_to_device(devid, d->lut[0], 256, 256, sizeof(float)); dev_a = dt_opencl_copy_host_to_device(devid, d->lut[1], 256, 256, sizeof(float)); dev_b = dt_opencl_copy_host_to_device(devid, d->lut[2], 256, 256, sizeof(float)); - if(dev_L == NULL || dev_a == NULL || dev_b == NULL) goto error; - err = dt_opencl_enqueue_kernel_2d_args(devid, kernel_colorzones, width, height, - CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(d->channel), CLARG(dev_L), CLARG(dev_a), - CLARG(dev_b)); + if(dev_L == NULL || dev_a == NULL || dev_b == NULL) + goto error; - if(err != CL_SUCCESS) goto error; - dt_opencl_release_mem_object(dev_L); - dt_opencl_release_mem_object(dev_a); - dt_opencl_release_mem_object(dev_b); - return TRUE; + err = dt_opencl_enqueue_kernel_2d_args(devid, kernel_colorzones, width, height, + CLARG(dev_in), CLARG(dev_out), + CLARG(width), CLARG(height), + CLARG(d->channel), + CLARG(dev_L), CLARG(dev_a), CLARG(dev_b)); error: dt_opencl_release_mem_object(dev_L); dt_opencl_release_mem_object(dev_a); dt_opencl_release_mem_object(dev_b); - dt_print(DT_DEBUG_OPENCL, "[opencl_colorzones] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif @@ -593,7 +670,8 @@ p.curve[DT_IOP_COLORZONES_C][k].x = k / (DT_IOP_COLORZONES_BANDS - 1.f); p.curve[DT_IOP_COLORZONES_h][k].x = k / (DT_IOP_COLORZONES_BANDS - 1.f); } - p.curve[DT_IOP_COLORZONES_C][0].y = p.curve[DT_IOP_COLORZONES_C][DT_IOP_COLORZONES_BANDS - 1].y = 0.65f; + p.curve[DT_IOP_COLORZONES_C][0].y = + p.curve[DT_IOP_COLORZONES_C][DT_IOP_COLORZONES_BANDS - 1].y = 0.65f; p.curve[DT_IOP_COLORZONES_C][1].x = 3.f / 16.f; p.curve[DT_IOP_COLORZONES_C][3].x = 0.50f; p.curve[DT_IOP_COLORZONES_C][4].x = 0.51f; @@ -641,9 +719,11 @@ p.curve[DT_IOP_COLORZONES_h][k].x = k / (DT_IOP_COLORZONES_BANDS - 1.f); } for(int k = 3; k < DT_IOP_COLORZONES_BANDS; k++) - p.curve[DT_IOP_COLORZONES_C][k].y += (k - 2.5f) / (DT_IOP_COLORZONES_BANDS - 2.0f) * 0.25f; + p.curve[DT_IOP_COLORZONES_C][k].y += + (k - 2.5f) / (DT_IOP_COLORZONES_BANDS - 2.0f) * 0.25f; for(int k = 4; k < DT_IOP_COLORZONES_BANDS; k++) - p.curve[DT_IOP_COLORZONES_L][k].y -= (k - 3.5f) / (DT_IOP_COLORZONES_BANDS - 3.0f) * 0.35f; + p.curve[DT_IOP_COLORZONES_L][k].y -= + (k - 3.5f) / (DT_IOP_COLORZONES_BANDS - 3.0f) * 0.35f; for(int c = 0; c < 3; c++) { p.curve_num_nodes[c] = DT_IOP_COLORZONES_BANDS; @@ -746,7 +826,9 @@ } } -static void _reset_nodes(dt_iop_colorzones_params_t *p, const int ch, const _Bool touch_edges) +static void _reset_nodes(dt_iop_colorzones_params_t *p, + const int ch, + const _Bool touch_edges) { for(int k = 0; k < p->curve_num_nodes[ch]; k++) { @@ -758,7 +840,9 @@ } } -static void _reset_parameters(dt_iop_colorzones_params_t *p, const int channel, const int splines_version) +static void _reset_parameters(dt_iop_colorzones_params_t *p, + const int channel, + const int splines_version) { for(int ch = 0; ch < DT_IOP_COLORZONES_MAX_CHANNELS; ch++) { @@ -772,11 +856,14 @@ p->splines_version = splines_version; } -static int _select_base_display_color(dt_iop_module_t *self, float *picked_color, float *picker_min, +static int _select_base_display_color(dt_iop_module_t *self, + float *picked_color, + float *picker_min, float *picker_max) { const int select_by_picker = !(self->request_color_pick != DT_REQUEST_COLORPICK_MODULE - || self->picked_color_max[0] < 0.0f || self->picked_color[0] == 0.0f); + || self->picked_color_max[0] < 0.0f + || self->picked_color[0] == 0.0f); if(!select_by_picker) { dt_aligned_pixel_t rgb = { 0.0f, 0.3f, 0.7f }; @@ -802,9 +889,14 @@ return select_by_picker; } -static void _draw_color_picker(dt_iop_module_t *self, cairo_t *cr, dt_iop_colorzones_params_t *p, - dt_iop_colorzones_gui_data_t *c, const int width, const int height, - const float *const picker_color, const float *const picker_min, +static void _draw_color_picker(dt_iop_module_t *self, + cairo_t *cr, + dt_iop_colorzones_params_t *p, + dt_iop_colorzones_gui_data_t *c, + const int width, + const int height, + const float *const picker_color, + const float *const picker_min, const float *const picker_max) { if(self->request_color_pick == DT_REQUEST_COLORPICK_MODULE @@ -842,18 +934,24 @@ } pick_mean[3] = pick_min[3] = pick_max[3] = 1.f; - dt_ioppr_transform_image_colorspace_rgb(pick_mean, pick_mean, 1, 1, histogram_profile, work_profile, + dt_ioppr_transform_image_colorspace_rgb(pick_mean, pick_mean, + 1, 1, histogram_profile, work_profile, "color zones"); - dt_ioppr_transform_image_colorspace_rgb(pick_min, pick_min, 1, 1, histogram_profile, work_profile, + dt_ioppr_transform_image_colorspace_rgb(pick_min, pick_min, + 1, 1, histogram_profile, work_profile, "color zones"); - dt_ioppr_transform_image_colorspace_rgb(pick_max, pick_max, 1, 1, histogram_profile, work_profile, + dt_ioppr_transform_image_colorspace_rgb(pick_max, pick_max, + 1, 1, histogram_profile, work_profile, "color zones"); - dt_ioppr_transform_image_colorspace(self, pick_mean, pick_mean, 1, 1, IOP_CS_RGB, IOP_CS_LAB, + dt_ioppr_transform_image_colorspace(self, pick_mean, pick_mean, + 1, 1, IOP_CS_RGB, IOP_CS_LAB, &converted_cst, work_profile); - dt_ioppr_transform_image_colorspace(self, pick_min, pick_min, 1, 1, IOP_CS_RGB, IOP_CS_LAB, + dt_ioppr_transform_image_colorspace(self, pick_min, pick_min, + 1, 1, IOP_CS_RGB, IOP_CS_LAB, &converted_cst, work_profile); - dt_ioppr_transform_image_colorspace(self, pick_max, pick_max, 1, 1, IOP_CS_RGB, IOP_CS_LAB, + dt_ioppr_transform_image_colorspace(self, pick_max, pick_max, + 1, 1, IOP_CS_RGB, IOP_CS_LAB, &converted_cst, work_profile); dt_Lab_2_LCH(pick_mean, pick_mean); @@ -886,7 +984,8 @@ picked_max_i = _curve_to_mouse(picked_max_i, c->zoom_factor, c->offset_x); cairo_set_source_rgba(cr, 0.5, 0.7, 0.5, 0.15); - cairo_rectangle(cr, width * picked_min_i, 0, width * fmax(picked_max_i - picked_min_i, 0.0f), height); + cairo_rectangle(cr, width * picked_min_i, 0, + width * fmax(picked_max_i - picked_min_i, 0.0f), height); cairo_fill(cr); cairo_set_source_rgba(cr, 0.5, 0.7, 0.5, 0.5); cairo_move_to(cr, width * picked_i, 0); @@ -932,7 +1031,8 @@ cairo_save(cr); cairo_set_source_rgba(cr, 1.0, 1.0, 1.0, 0.25); - cairo_rectangle(cr, width * picked_min_i, 0, width * fmax(picked_max_i - picked_min_i, 0.0), height); + cairo_rectangle(cr, width * picked_min_i, 0, + width * fmax(picked_max_i - picked_min_i, 0.0), height); cairo_fill(cr); cairo_set_source_rgb(cr, 1.0, 1.0, 1.0); @@ -972,11 +1072,16 @@ \ cairo_set_source_rgb(cr, rgb[0], rgb[1], rgb[2]); -static void _draw_background(cairo_t *cr, dt_iop_colorzones_params_t *p, dt_iop_colorzones_gui_data_t *c, - const int select_by_picker, const int width, const int height, +static void _draw_background(cairo_t *cr, + dt_iop_colorzones_params_t *p, + dt_iop_colorzones_gui_data_t *c, + const int select_by_picker, + const int width, + const int height, const float *picked_color) { - const float bg_sat_factor = dt_conf_get_float("plugins/darkroom/colorzones/bg_sat_factor"); + const float bg_sat_factor = + dt_conf_get_float("plugins/darkroom/colorzones/bg_sat_factor"); const float normalize_C = (128.f * bg_sat_factor * sqrtf(2.f)); const int cellsi = DT_COLORZONES_CELLSI; @@ -988,11 +1093,16 @@ { dt_aligned_pixel_t LCh = { 0 }; - const float jj = _mouse_to_curve(1.0f - ((float)j - .5f) / (float)(cellsj - 1), c->zoom_factor, c->offset_y); + const float jj = _mouse_to_curve(1.0f - ((float)j - .5f) / (float)(cellsj - 1), + c->zoom_factor, c->offset_y); const float jjh - = _mouse_to_curve(1.0f - (((float)j / (float)(cellsj - 1))), c->zoom_factor, c->offset_y) + .5f; - const float ii = _mouse_to_curve(((float)i + .5f) / (float)(cellsi - 1), c->zoom_factor, c->offset_x); - const float iih = _mouse_to_curve((float)i / (float)(cellsi - 1), c->zoom_factor, c->offset_x); + = _mouse_to_curve(1.0f - (((float)j / (float)(cellsj - 1))), c->zoom_factor, + c->offset_y) + .5f; + const float ii = _mouse_to_curve(((float)i + .5f) / (float)(cellsi - 1), + c->zoom_factor, c->offset_x); + const float iih = _mouse_to_curve((float)i / (float)(cellsi - 1), + c->zoom_factor, + c->offset_x); // select by channel, abscissa: switch(p->channel) @@ -1034,14 +1144,18 @@ COLORZONES_DRAW_BACKGROUD_BOX - cairo_rectangle(cr, width * i / (float)cellsi, height * j / (float)cellsj, width / (float)cellsi, + cairo_rectangle(cr, + width * i / (float)cellsi, height * j / (float)cellsj, + width / (float)cellsi, height / (float)cellsj); cairo_fill(cr); } } } -static gboolean _area_draw_callback(GtkWidget *widget, cairo_t *crf, dt_iop_module_t *self) +static gboolean _area_draw_callback(GtkWidget *widget, + cairo_t *crf, + dt_iop_module_t *self) { dt_iop_colorzones_gui_data_t *c = (dt_iop_colorzones_gui_data_t *)self->gui_data; dt_iop_colorzones_params_t p = *(dt_iop_colorzones_params_t *)self->params; @@ -1050,7 +1164,8 @@ { for(int ch = 0; ch < DT_IOP_COLORZONES_MAX_CHANNELS; ch++) { - if(c->minmax_curve_type[ch] != p.curve_type[ch] || c->minmax_curve_nodes[ch] != p.curve_num_nodes[ch]) + if(c->minmax_curve_type[ch] != p.curve_type[ch] + || c->minmax_curve_nodes[ch] != p.curve_num_nodes[ch]) { dt_draw_curve_destroy(c->minmax_curve[ch]); c->minmax_curve[ch] = dt_draw_curve_new(0.0f, 1.0f, p.curve_type[ch]); @@ -1058,15 +1173,19 @@ c->minmax_curve_type[ch] = p.curve_type[ch]; if(p.channel == DT_IOP_COLORZONES_h) - dt_draw_curve_add_point(c->minmax_curve[ch], p.curve[ch][p.curve_num_nodes[ch] - 2].x - 1.0f, + dt_draw_curve_add_point(c->minmax_curve[ch], + p.curve[ch][p.curve_num_nodes[ch] - 2].x - 1.0f, p.curve[ch][p.curve_num_nodes[ch] - 2].y); else - dt_draw_curve_add_point(c->minmax_curve[ch], p.curve[ch][p.curve_num_nodes[ch] - 2].x - 1.0f, + dt_draw_curve_add_point(c->minmax_curve[ch], + p.curve[ch][p.curve_num_nodes[ch] - 2].x - 1.0f, p.curve[ch][0].y); for(int k = 0; k < p.curve_num_nodes[ch]; k++) - dt_draw_curve_add_point(c->minmax_curve[ch], p.curve[ch][k].x, p.curve[ch][k].y); + dt_draw_curve_add_point(c->minmax_curve[ch], + p.curve[ch][k].x, p.curve[ch][k].y); if(p.channel == DT_IOP_COLORZONES_h) - dt_draw_curve_add_point(c->minmax_curve[ch], p.curve[ch][1].x + 1.0f, p.curve[ch][1].y); + dt_draw_curve_add_point(c->minmax_curve[ch], + p.curve[ch][1].x + 1.0f, p.curve[ch][1].y); else dt_draw_curve_add_point(c->minmax_curve[ch], p.curve[ch][1].x + 1.0f, p.curve[ch][p.curve_num_nodes[ch] - 1].y); @@ -1074,28 +1193,35 @@ else { if(p.channel == DT_IOP_COLORZONES_h) - dt_draw_curve_set_point(c->minmax_curve[ch], 0, p.curve[ch][p.curve_num_nodes[ch] - 2].x - 1.0f, + dt_draw_curve_set_point(c->minmax_curve[ch], 0, + p.curve[ch][p.curve_num_nodes[ch] - 2].x - 1.0f, p.curve[ch][p.curve_num_nodes[ch] - 2].y); else - dt_draw_curve_set_point(c->minmax_curve[ch], 0, p.curve[ch][p.curve_num_nodes[ch] - 2].x - 1.0f, + dt_draw_curve_set_point(c->minmax_curve[ch], 0, + p.curve[ch][p.curve_num_nodes[ch] - 2].x - 1.0f, p.curve[ch][0].y); for(int k = 0; k < p.curve_num_nodes[ch]; k++) - dt_draw_curve_set_point(c->minmax_curve[ch], k + 1, p.curve[ch][k].x, p.curve[ch][k].y); + dt_draw_curve_set_point(c->minmax_curve[ch], k + 1, + p.curve[ch][k].x, p.curve[ch][k].y); if(p.channel == DT_IOP_COLORZONES_h) - dt_draw_curve_set_point(c->minmax_curve[ch], p.curve_num_nodes[ch] + 1, p.curve[ch][1].x + 1.0f, + dt_draw_curve_set_point(c->minmax_curve[ch], + p.curve_num_nodes[ch] + 1, p.curve[ch][1].x + 1.0f, p.curve[ch][1].y); else - dt_draw_curve_set_point(c->minmax_curve[ch], p.curve_num_nodes[ch] + 1, p.curve[ch][1].x + 1.0f, + dt_draw_curve_set_point(c->minmax_curve[ch], + p.curve_num_nodes[ch] + 1, p.curve[ch][1].x + 1.0f, p.curve[ch][p.curve_num_nodes[ch] - 1].y); } - dt_draw_curve_calc_values(c->minmax_curve[ch], 0.0f, 1.0f, DT_IOP_COLORZONES_RES, NULL, c->draw_ys[ch]); + dt_draw_curve_calc_values(c->minmax_curve[ch], 0.0f, 1.0f, + DT_IOP_COLORZONES_RES, NULL, c->draw_ys[ch]); } } else { for(int ch = 0; ch < DT_IOP_COLORZONES_MAX_CHANNELS; ch++) { - if(c->minmax_curve_type[ch] != p.curve_type[ch] || c->minmax_curve_nodes[ch] != p.curve_num_nodes[ch] + if(c->minmax_curve_type[ch] != p.curve_type[ch] + || c->minmax_curve_nodes[ch] != p.curve_num_nodes[ch] || c->minmax_curve[ch]->c.m_numAnchors != p.curve_num_nodes[ch]) { dt_draw_curve_destroy(c->minmax_curve[ch]); @@ -1109,9 +1235,11 @@ else { for(int k = 0; k < p.curve_num_nodes[ch]; k++) - dt_draw_curve_set_point(c->minmax_curve[ch], k, p.curve[ch][k].x, p.curve[ch][k].y); + dt_draw_curve_set_point(c->minmax_curve[ch], k, + p.curve[ch][k].x, p.curve[ch][k].y); } - dt_draw_curve_calc_values_V2(c->minmax_curve[ch], 0.f, 1.f, DT_IOP_COLORZONES_RES, NULL, c->draw_ys[ch], + dt_draw_curve_calc_values_V2(c->minmax_curve[ch], 0.f, 1.f, + DT_IOP_COLORZONES_RES, NULL, c->draw_ys[ch], p.channel == DT_IOP_COLORZONES_h); } } @@ -1128,7 +1256,8 @@ // clear bg, match color of the notebook tabs: GdkRGBA color; GtkStyleContext *context = gtk_widget_get_style_context(widget); - gboolean color_found = gtk_style_context_lookup_color(context, "selected_bg_color", &color); + const gboolean color_found = gtk_style_context_lookup_color + (context, "graph_overlay", &color); if(!color_found) { color.red = 1.0; @@ -1156,7 +1285,8 @@ // otherwise we use a light blue // we will work on LCh dt_aligned_pixel_t picked_color, picker_min, picker_max; - const int select_by_picker = _select_base_display_color(self, picked_color, picker_min, picker_max); + const int select_by_picker = + _select_base_display_color(self, picked_color, picker_min, picker_max); cairo_set_antialias(cr, CAIRO_ANTIALIAS_NONE); @@ -1183,14 +1313,16 @@ cairo_scale(cr, width / 255.0, -(height - DT_PIXEL_APPLY_DPI(5)) / hist_max); cairo_set_source_rgba(cr, .2, .2, .2, 0.5); - dt_draw_histogram_8_zoomed(cr, hist, 4, ch_hist, c->zoom_factor, c->offset_x * 255.f, + dt_draw_histogram_8_zoomed(cr, hist, 4, ch_hist, + c->zoom_factor, c->offset_x * 255.f, c->offset_y * hist_max, is_linear); cairo_restore(cr); } } - _draw_color_picker(self, cr, &p, c, width, height, picked_color, picker_min, picker_max); + _draw_color_picker(self, cr, &p, c, width, height, + picked_color, picker_min, picker_max); } if(c->edit_by_area) @@ -1223,7 +1355,8 @@ char text[256]; PangoLayout *layout; PangoRectangle ink; - PangoFontDescription *desc = pango_font_description_copy_static(darktable.bauhaus->pango_font_desc); + PangoFontDescription *desc = + pango_font_description_copy_static(darktable.bauhaus->pango_font_desc); pango_font_description_set_weight(desc, PANGO_WEIGHT_BOLD); pango_font_description_set_absolute_size(desc, PANGO_SCALE); layout = pango_cairo_create_layout(cr); @@ -1236,13 +1369,15 @@ pango_font_description_set_absolute_size(desc, width * 1.0 / ink.width * PANGO_SCALE); pango_layout_set_font_description(layout, desc); - snprintf(text, sizeof(text), "zoom: %i x: %i y: %i", (int)((c->zoom_factor - 1.f) * 100.f), + snprintf(text, sizeof(text), "zoom: %i x: %i y: %i", + (int)((c->zoom_factor - 1.f) * 100.f), (int)(c->offset_x * 100.f), (int)(c->offset_y * 100.f)); cairo_set_source_rgba(cr, 0.1, 0.1, 0.1, 0.5); pango_layout_set_text(layout, text, -1); pango_layout_get_pixel_extents(layout, &ink, NULL); - cairo_move_to(cr, 0.98f * width - ink.width - ink.x, -0.02 * height - ink.height - ink.y); + cairo_move_to(cr, 0.98f * width - ink.width - ink.x, + -0.02 * height - ink.height - ink.y); pango_cairo_show_layout(cr, layout); cairo_stroke(cr); pango_font_description_free(desc); @@ -1261,7 +1396,8 @@ else cairo_set_source_rgba(cr, .7, .7, .7, 0.3); - cairo_move_to(cr, 0, -height * _curve_to_mouse(c->draw_ys[ch_inv][0], c->zoom_factor, c->offset_y)); + cairo_move_to(cr, 0, -height * _curve_to_mouse(c->draw_ys[ch_inv][0], + c->zoom_factor, c->offset_y)); for(int k = 1; k < DT_IOP_COLORZONES_RES; k++) { const float xx = (float)k / (float)(DT_IOP_COLORZONES_RES - 1); @@ -1298,22 +1434,30 @@ if(p.splines_version == DT_IOP_COLORZONES_SPLINES_V1) { if(p.channel == DT_IOP_COLORZONES_h) - dt_draw_curve_set_point(c->minmax_curve[ch], 0, p.curve[ch][bands - 2].x - 1.f, p.curve[ch][bands - 2].y); + dt_draw_curve_set_point(c->minmax_curve[ch], 0, + p.curve[ch][bands - 2].x - 1.f, p.curve[ch][bands - 2].y); else - dt_draw_curve_set_point(c->minmax_curve[ch], 0, p.curve[ch][bands - 2].x - 1.f, p.curve[ch][0].y); + dt_draw_curve_set_point(c->minmax_curve[ch], 0, + p.curve[ch][bands - 2].x - 1.f, p.curve[ch][0].y); for(int k = 0; k < bands; k++) - dt_draw_curve_set_point(c->minmax_curve[ch], k + 1, p.curve[ch][k].x, p.curve[ch][k].y); + dt_draw_curve_set_point(c->minmax_curve[ch], k + 1, + p.curve[ch][k].x, p.curve[ch][k].y); if(p.channel == DT_IOP_COLORZONES_h) - dt_draw_curve_set_point(c->minmax_curve[ch], bands + 1, p.curve[ch][1].x + 1.f, p.curve[ch][1].y); + dt_draw_curve_set_point(c->minmax_curve[ch], bands + 1, + p.curve[ch][1].x + 1.f, p.curve[ch][1].y); else - dt_draw_curve_set_point(c->minmax_curve[ch], bands + 1, p.curve[ch][1].x + 1.f, p.curve[ch][bands - 1].y); - dt_draw_curve_calc_values(c->minmax_curve[ch], 0.f, 1.f, DT_IOP_COLORZONES_RES, NULL, c->draw_min_ys); + dt_draw_curve_set_point(c->minmax_curve[ch], bands + 1, + p.curve[ch][1].x + 1.f, p.curve[ch][bands - 1].y); + dt_draw_curve_calc_values(c->minmax_curve[ch], 0.f, 1.f, + DT_IOP_COLORZONES_RES, NULL, c->draw_min_ys); } else { for(int k = 0; k < bands; k++) - dt_draw_curve_set_point(c->minmax_curve[ch], k, p.curve[ch][k].x, p.curve[ch][k].y); - dt_draw_curve_calc_values_V2(c->minmax_curve[ch], 0.f, 1.f, DT_IOP_COLORZONES_RES, NULL, c->draw_min_ys, + dt_draw_curve_set_point(c->minmax_curve[ch], k, + p.curve[ch][k].x, p.curve[ch][k].y); + dt_draw_curve_calc_values_V2(c->minmax_curve[ch], 0.f, 1.f, + DT_IOP_COLORZONES_RES, NULL, c->draw_min_ys, p.channel == DT_IOP_COLORZONES_h); } @@ -1322,22 +1466,30 @@ if(p.splines_version == DT_IOP_COLORZONES_SPLINES_V1) { if(p.channel == DT_IOP_COLORZONES_h) - dt_draw_curve_set_point(c->minmax_curve[ch], 0, p.curve[ch][bands - 2].x - 1.f, p.curve[ch][bands - 2].y); + dt_draw_curve_set_point(c->minmax_curve[ch], 0, + p.curve[ch][bands - 2].x - 1.f, p.curve[ch][bands - 2].y); else - dt_draw_curve_set_point(c->minmax_curve[ch], 0, p.curve[ch][bands - 2].x - 1.f, p.curve[ch][0].y); + dt_draw_curve_set_point(c->minmax_curve[ch], 0, + p.curve[ch][bands - 2].x - 1.f, p.curve[ch][0].y); for(int k = 0; k < bands; k++) - dt_draw_curve_set_point(c->minmax_curve[ch], k + 1, p.curve[ch][k].x, p.curve[ch][k].y); + dt_draw_curve_set_point(c->minmax_curve[ch], k + 1, + p.curve[ch][k].x, p.curve[ch][k].y); if(p.channel == DT_IOP_COLORZONES_h) - dt_draw_curve_set_point(c->minmax_curve[ch], bands + 1, p.curve[ch][1].x + 1.f, p.curve[ch][1].y); + dt_draw_curve_set_point(c->minmax_curve[ch], bands + 1, + p.curve[ch][1].x + 1.f, p.curve[ch][1].y); else - dt_draw_curve_set_point(c->minmax_curve[ch], bands + 1, p.curve[ch][1].x + 1.f, p.curve[ch][bands - 1].y); - dt_draw_curve_calc_values(c->minmax_curve[ch], 0.f, 1.f, DT_IOP_COLORZONES_RES, NULL, c->draw_max_ys); + dt_draw_curve_set_point(c->minmax_curve[ch], bands + 1, + p.curve[ch][1].x + 1.f, p.curve[ch][bands - 1].y); + dt_draw_curve_calc_values(c->minmax_curve[ch], 0.f, 1.f, + DT_IOP_COLORZONES_RES, NULL, c->draw_max_ys); } else { for(int k = 0; k < bands; k++) - dt_draw_curve_set_point(c->minmax_curve[ch], k, p.curve[ch][k].x, p.curve[ch][k].y); - dt_draw_curve_calc_values_V2(c->minmax_curve[ch], 0.f, 1.f, DT_IOP_COLORZONES_RES, NULL, c->draw_max_ys, + dt_draw_curve_set_point(c->minmax_curve[ch], k, + p.curve[ch][k].x, p.curve[ch][k].y); + dt_draw_curve_calc_values_V2(c->minmax_curve[ch], 0.f, 1.f, + DT_IOP_COLORZONES_RES, NULL, c->draw_max_ys, p.channel == DT_IOP_COLORZONES_h); } @@ -1346,7 +1498,8 @@ // draw min/max curves: cairo_set_source_rgba(cr, .7, .7, .7, .6); - cairo_move_to(cr, 0, -height * _curve_to_mouse(c->draw_min_ys[0], c->zoom_factor, c->offset_y)); + cairo_move_to(cr, 0, -height * _curve_to_mouse(c->draw_min_ys[0], + c->zoom_factor, c->offset_y)); for(int k = 1; k < DT_IOP_COLORZONES_RES; k++) { @@ -1376,8 +1529,10 @@ // draw mouse focus circle cairo_set_source_rgba(cr, .9, .9, .9, .5); - const int k = DT_IOP_COLORZONES_RES * _mouse_to_curve(c->mouse_x, c->zoom_factor, c->offset_x); - const float x = c->mouse_x, y = _curve_to_mouse(c->draw_ys[ch][k], c->zoom_factor, c->offset_y); + const int k = DT_IOP_COLORZONES_RES * _mouse_to_curve(c->mouse_x, + c->zoom_factor, c->offset_x); + const float x = c->mouse_x, y = _curve_to_mouse(c->draw_ys[ch][k], + c->zoom_factor, c->offset_y); cairo_arc(cr, x * width, -height * y, c->mouse_radius * width, 0, 2. * DT_M_PI); cairo_stroke(cr); @@ -1390,8 +1545,10 @@ if(c->selected >= 0) { cairo_set_source_rgb(cr, .9, .9, .9); - const float x = _curve_to_mouse(p.curve[c->channel][c->selected].x, c->zoom_factor, c->offset_x), - y = _curve_to_mouse(p.curve[c->channel][c->selected].y, c->zoom_factor, c->offset_y); + const float x = _curve_to_mouse(p.curve[c->channel][c->selected].x, + c->zoom_factor, c->offset_x), + y = _curve_to_mouse(p.curve[c->channel][c->selected].y, + c->zoom_factor, c->offset_y); cairo_arc(cr, x * width, -y * height, DT_PIXEL_APPLY_DPI(4), 0, 2. * M_PI); cairo_stroke(cr); @@ -1404,10 +1561,12 @@ cairo_set_source_surface(crf, cst, 0, 0); cairo_paint(crf); cairo_surface_destroy(cst); - return TRUE; + return FALSE; } -static gboolean _bottom_area_draw_callback(GtkWidget *widget, cairo_t *crf, dt_iop_module_t *self) +static gboolean _bottom_area_draw_callback(GtkWidget *widget, + cairo_t *crf, + dt_iop_module_t *self) { dt_iop_colorzones_gui_data_t *c = (dt_iop_colorzones_gui_data_t *)self->gui_data; dt_iop_colorzones_params_t p = *(dt_iop_colorzones_params_t *)self->params; @@ -1421,7 +1580,8 @@ // clear bg, match color of the notebook tabs: GdkRGBA color; GtkStyleContext *context = gtk_widget_get_style_context(widget); - gboolean color_found = gtk_style_context_lookup_color(context, "selected_bg_color", &color); + const gboolean color_found = gtk_style_context_lookup_color + (context, "graph_overlay", &color); if(!color_found) { color.red = 1.0; @@ -1458,8 +1618,10 @@ for(int i = 0; i < cellsi; i++) { - const float ii = _mouse_to_curve(((float)i + .5f) / (float)(cellsi - 1), c->zoom_factor, c->offset_x); - const float iih = _mouse_to_curve((float)i / (float)(cellsi - 1), c->zoom_factor, c->offset_x); + const float ii = _mouse_to_curve(((float)i + .5f) / (float)(cellsi - 1), + c->zoom_factor, c->offset_x); + const float iih = _mouse_to_curve((float)i / (float)(cellsi - 1), + c->zoom_factor, c->offset_x); dt_aligned_pixel_t LCh; @@ -1493,7 +1655,8 @@ if(self->enabled) { - _draw_color_picker(self, cr, &p, c, width, height, picked_color, picker_min, picker_max); + _draw_color_picker(self, cr, &p, c, width, height, + picked_color, picker_min, picker_max); } cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE); @@ -1509,7 +1672,9 @@ #undef DT_COLORZONES_CELLSI #undef DT_COLORZONES_CELLSJ -static gboolean _bottom_area_button_press_callback(GtkWidget *widget, GdkEventButton *event, dt_iop_module_t *self) +static gboolean _bottom_area_button_press_callback(GtkWidget *widget, + GdkEventButton *event, + dt_iop_module_t *self) { dt_iop_colorzones_gui_data_t *c = (dt_iop_colorzones_gui_data_t *)self->gui_data; @@ -1527,7 +1692,9 @@ return FALSE; } -static gboolean _sanity_check(const float x, const int selected, const int nodes, +static gboolean _sanity_check(const float x, + const int selected, + const int nodes, const dt_iop_colorzones_node_t *curve) { gboolean point_valid = TRUE; @@ -1540,7 +1707,10 @@ // for all points, x coordinate of point must be strictly larger than // the x coordinate of the previous point - if((selected > 0 && (curve[selected - 1].x >= x)) || (selected < nodes - 1 && (curve[selected + 1].x <= x))) + if((selected > 0 + && (curve[selected - 1].x >= x)) + || (selected < nodes - 1 + && (curve[selected + 1].x <= x))) { point_valid = FALSE; } @@ -1548,7 +1718,12 @@ return point_valid; } -static gboolean _move_point_internal(dt_iop_module_t *self, GtkWidget *widget, int node, float dx, float dy, guint state) +static gboolean _move_point_internal(dt_iop_module_t *self, + GtkWidget *widget, + const int node, + float dx, + float dy, + const guint state) { dt_iop_colorzones_params_t *p = (dt_iop_colorzones_params_t *)self->params; dt_iop_colorzones_gui_data_t *c = (dt_iop_colorzones_gui_data_t *)self->gui_data; @@ -1573,7 +1748,8 @@ curve[node].x = new_x; curve[node].y = new_y; - if(p->channel == DT_IOP_COLORZONES_h && (node == 0 || node == p->curve_num_nodes[ch] - 1)) + if(p->channel == DT_IOP_COLORZONES_h + && (node == 0 || node == p->curve_num_nodes[ch] - 1)) { if(node == 0) { @@ -1589,12 +1765,15 @@ } else { - if(p->channel == DT_IOP_COLORZONES_h && (node == 0 || node == p->curve_num_nodes[ch] - 1)) + if(p->channel == DT_IOP_COLORZONES_h + && (node == 0 || node == p->curve_num_nodes[ch] - 1)) { if(node == 0) { - if(new_x + 1.f - curve[p->curve_num_nodes[ch] - 1].x < DT_IOP_COLORZONES_MIN_X_DISTANCE) - new_x = curve[p->curve_num_nodes[ch] - 1].x + DT_IOP_COLORZONES_MIN_X_DISTANCE - 1.f; + if(new_x + 1.f - curve[p->curve_num_nodes[ch] - 1].x + < DT_IOP_COLORZONES_MIN_X_DISTANCE) + new_x = curve[p->curve_num_nodes[ch] - 1].x + + DT_IOP_COLORZONES_MIN_X_DISTANCE - 1.f; } else { @@ -1614,7 +1793,11 @@ return TRUE; } -static void _delete_node(dt_iop_module_t *self, dt_iop_colorzones_node_t *curve, int *nodes, int node, gboolean zero) +static void _delete_node(dt_iop_module_t *self, + dt_iop_colorzones_node_t *curve, + int *nodes, + const int node, + const gboolean zero) { if(zero) { @@ -1645,7 +1828,10 @@ dt_dev_add_history_item(darktable.develop, self, TRUE); } -static inline int _add_node(dt_iop_colorzones_node_t *curve, int *nodes, float x, float y) +static inline int _add_node(dt_iop_colorzones_node_t *curve, + int *nodes, + const float x, + const float y) { int selected = -1; if(curve[0].x > x) @@ -1684,7 +1870,9 @@ return selected; } -static gboolean _area_scrolled_callback(GtkWidget *widget, GdkEventScroll *event, dt_iop_module_t *self) +static gboolean _area_scrolled_callback(GtkWidget *widget, + GdkEventScroll *event, + dt_iop_module_t *self) { dt_iop_colorzones_gui_data_t *c = (dt_iop_colorzones_gui_data_t *)self->gui_data; dt_iop_colorzones_params_t *p = (dt_iop_colorzones_params_t *)self->params; @@ -1695,7 +1883,7 @@ if(darktable.develop->darkroom_skip_mouse_events) { - if(dt_gui_get_scroll_unit_deltas(event, NULL, &delta_y)) + if(dt_gui_get_scroll_unit_delta(event, &delta_y)) { GtkAllocation allocation; gtk_widget_get_allocation(widget, &allocation); @@ -1742,7 +1930,9 @@ return TRUE; } -static gboolean _area_motion_notify_callback(GtkWidget *widget, GdkEventMotion *event, dt_iop_module_t *self) +static gboolean _area_motion_notify_callback(GtkWidget *widget, + GdkEventMotion *event, + dt_iop_module_t *self) { dt_iop_colorzones_gui_data_t *c = (dt_iop_colorzones_gui_data_t *)self->gui_data; dt_iop_colorzones_params_t *p = (dt_iop_colorzones_params_t *)self->params; @@ -1787,7 +1977,10 @@ c->mouse_x = CLAMP(event->x - inset, 0, width) / (float)width; c->mouse_y = 1.0 - CLAMP(event->y - inset, 0, height) / (float)height; - darktable.control->element = 7 * _mouse_to_curve(c->mouse_x, c->zoom_factor, c->offset_x) + 0.5f; + darktable.control->element = + (int)(8.0 * + _mouse_to_curve(c->mouse_x, + c->zoom_factor, c->offset_x) + 0.5f) % 8; // move a node if(event->state & GDK_BUTTON1_MASK) @@ -1804,13 +1997,21 @@ if(c->selected >= 0) { // this is used to translate mause position in zoom_factor to make this behavior unified with linear scale. - const float translate_mouse_x = old_m_x - _curve_to_mouse(curve[c->selected].x, c->zoom_factor, c->offset_x); - const float translate_mouse_y = old_m_y - _curve_to_mouse(curve[c->selected].y, c->zoom_factor, c->offset_y); + const float translate_mouse_x = old_m_x - _curve_to_mouse(curve[c->selected].x, + c->zoom_factor, + c->offset_x); + const float translate_mouse_y = old_m_y - _curve_to_mouse(curve[c->selected].y, + c->zoom_factor, + c->offset_y); // dx & dy are in linear coordinates - const float dx = _mouse_to_curve(c->mouse_x - translate_mouse_x, c->zoom_factor, c->offset_x) - - _mouse_to_curve(old_m_x - translate_mouse_x, c->zoom_factor, c->offset_x); - const float dy = _mouse_to_curve(c->mouse_y - translate_mouse_y, c->zoom_factor, c->offset_y) - - _mouse_to_curve(old_m_y - translate_mouse_y, c->zoom_factor, c->offset_y); + const float dx = _mouse_to_curve(c->mouse_x - translate_mouse_x, + c->zoom_factor, c->offset_x) + - _mouse_to_curve(old_m_x - translate_mouse_x, + c->zoom_factor, c->offset_x); + const float dy = _mouse_to_curve(c->mouse_y - translate_mouse_y, + c->zoom_factor, c->offset_y) + - _mouse_to_curve(old_m_y - translate_mouse_y, + c->zoom_factor, c->offset_y); dt_iop_color_picker_reset(self, TRUE); return _move_point_internal(self, widget, c->selected, dx, dy, event->state); @@ -1823,7 +2024,8 @@ { if(c->x_move < 0) { - dt_iop_colorzones_get_params(p, c, c->channel, c->mouse_x, c->mouse_y, c->mouse_radius); + dt_iop_colorzones_get_params(p, c, c->channel, + c->mouse_x, c->mouse_y, c->mouse_radius); dt_iop_color_picker_reset(self, TRUE); dt_dev_add_history_item_target(darktable.develop, self, TRUE, widget + ch); } @@ -1875,10 +2077,13 @@ int nearest = -1; for(int k = 0; k < nodes; k++) { - float dist = (my - _curve_to_mouse(curve[k].y, c->zoom_factor, c->offset_y)) - * (my - _curve_to_mouse(curve[k].y, c->zoom_factor, c->offset_y)) + float dist = (my - _curve_to_mouse(curve[k].y, + c->zoom_factor, c->offset_y)) + * (my - _curve_to_mouse(curve[k].y, + c->zoom_factor, c->offset_y)) + (mx - _curve_to_mouse(curve[k].x, c->zoom_factor, c->offset_x)) - * (mx - _curve_to_mouse(curve[k].x, c->zoom_factor, c->offset_x)); + * (mx - _curve_to_mouse(curve[k].x, + c->zoom_factor, c->offset_x)); if(dist < min) { min = dist; @@ -1894,11 +2099,14 @@ return TRUE; } -static gboolean _area_button_press_callback(GtkWidget *widget, GdkEventButton *event, dt_iop_module_t *self) +static gboolean _area_button_press_callback(GtkWidget *widget, + GdkEventButton *event, + dt_iop_module_t *self) { dt_iop_colorzones_gui_data_t *c = (dt_iop_colorzones_gui_data_t *)self->gui_data; dt_iop_colorzones_params_t *p = (dt_iop_colorzones_params_t *)self->params; - dt_iop_colorzones_params_t *d = (dt_iop_colorzones_params_t *)self->default_params; + const dt_iop_colorzones_params_t *const d = + (dt_iop_colorzones_params_t *)self->default_params; if(darktable.develop->darkroom_skip_mouse_events) return TRUE; @@ -1908,15 +2116,19 @@ if(event->button == 1) { - if(c->edit_by_area && event->type != GDK_2BUTTON_PRESS && !dt_modifier_is(event->state, GDK_CONTROL_MASK)) + if(c->edit_by_area && event->type != GDK_2BUTTON_PRESS + && !dt_modifier_is(event->state, GDK_CONTROL_MASK)) { c->dragging = 1; return TRUE; } - else if(event->type == GDK_BUTTON_PRESS && dt_modifier_is(event->state, GDK_CONTROL_MASK) - && nodes < DT_IOP_COLORZONES_MAXNODES && (c->selected == -1 || c->edit_by_area)) + else if(event->type == GDK_BUTTON_PRESS + && dt_modifier_is(event->state, GDK_CONTROL_MASK) + && nodes < DT_IOP_COLORZONES_MAXNODES + && (c->selected == -1 || c->edit_by_area)) { - // if we are not on a node -> add a new node at the current x of the pointer and y of the curve at that x + // if we are not on a node -> add a new node at the current x of + // the pointer and y of the curve at that x const int inset = DT_IOP_COLORZONES_INSET; GtkAllocation allocation; gtk_widget_get_allocation(widget, &allocation); @@ -1948,7 +2160,9 @@ // evaluate the curve at the current x position const float y = dt_draw_curve_calc_value(c->minmax_curve[ch], mx); - if(y >= 0.0f && y <= 1.0f) // never add something outside the viewport, you couldn't change it afterwards + if(y >= 0.0f && y <= 1.0f) // never add something outside the + // viewport, you couldn't change it + // afterwards { // create a new node selected = _add_node(curve, &p->curve_num_nodes[ch], mx, y); @@ -1976,7 +2190,8 @@ p->curve_num_nodes[ch] = d->curve_num_nodes[ch]; p->curve_type[ch] = d->curve_type[ch]; _reset_nodes(p, c->channel, - p->splines_version == DT_IOP_COLORZONES_SPLINES_V1 || p->channel != DT_IOP_COLORZONES_h); + p->splines_version == DT_IOP_COLORZONES_SPLINES_V1 + || p->channel != DT_IOP_COLORZONES_h); c->selected = -2; // avoid motion notify re-inserting immediately. dt_bauhaus_combobox_set(c->interpolator, p->curve_type[ch]); @@ -1990,7 +2205,8 @@ } else if(event->button == 3 && c->selected >= 0) { - if((c->selected == 0 || c->selected == nodes - 1) && p->splines_version == DT_IOP_COLORZONES_SPLINES_V1) + if((c->selected == 0 || c->selected == nodes - 1) + && p->splines_version == DT_IOP_COLORZONES_SPLINES_V1) { if(p->channel == DT_IOP_COLORZONES_h) { @@ -2013,7 +2229,8 @@ } // right click deletes the node, ctrl+right click reset the node to y-zero - _delete_node(self, curve, &p->curve_num_nodes[ch], c->selected, dt_modifier_is(event->state, GDK_CONTROL_MASK)); + _delete_node(self, curve, &p->curve_num_nodes[ch], + c->selected, dt_modifier_is(event->state, GDK_CONTROL_MASK)); c->selected = -2; // avoid re-insertion of that point immediately after this return TRUE; @@ -2022,7 +2239,9 @@ return FALSE; } -static gboolean _area_button_release_callback(GtkWidget *widget, GdkEventButton *event, gpointer user_data) +static gboolean _area_button_release_callback(GtkWidget *widget, + GdkEventButton *event, + gpointer user_data) { if(darktable.develop->darkroom_skip_mouse_events) return TRUE; @@ -2036,7 +2255,9 @@ return FALSE; } -static gboolean _area_leave_notify_callback(GtkWidget *widget, GdkEventCrossing *event, dt_iop_module_t *self) +static gboolean _area_leave_notify_callback(GtkWidget *widget, + GdkEventCrossing *event, + dt_iop_module_t *self) { if(darktable.develop->darkroom_skip_mouse_events) return TRUE; @@ -2049,7 +2270,9 @@ return TRUE; } -static gboolean _area_key_press_callback(GtkWidget *widget, GdkEventKey *event, dt_iop_module_t *self) +static gboolean _area_key_press_callback(GtkWidget *widget, + GdkEventKey *event, + dt_iop_module_t *self) { dt_iop_colorzones_gui_data_t *c = (dt_iop_colorzones_gui_data_t *)self->gui_data; @@ -2086,7 +2309,9 @@ return _move_point_internal(self, widget, c->selected, dx, dy, event->state); } -static void _channel_tabs_switch_callback(GtkNotebook *notebook, GtkWidget *page, guint page_num, +static void _channel_tabs_switch_callback(GtkNotebook *notebook, + GtkWidget *page, + const guint page_num, dt_iop_module_t *self) { if(darktable.gui->reset) return; @@ -2108,7 +2333,9 @@ } -void gui_changed(dt_iop_module_t *self, GtkWidget *w, void *previous) +void gui_changed(dt_iop_module_t *self, + GtkWidget *w, + void *previous) { dt_iop_colorzones_params_t *p = (dt_iop_colorzones_params_t *)self->params; dt_iop_colorzones_gui_data_t *g = (dt_iop_colorzones_gui_data_t *)self->gui_data; @@ -2122,7 +2349,8 @@ } } -static void _interpolator_callback(GtkWidget *widget, dt_iop_module_t *self) +static void _interpolator_callback(GtkWidget *widget, + dt_iop_module_t *self) { if(darktable.gui->reset) return; dt_iop_colorzones_params_t *p = (dt_iop_colorzones_params_t *)self->params; @@ -2142,7 +2370,8 @@ gtk_widget_queue_draw(GTK_WIDGET(g->area)); } -static void _edit_by_area_callback(GtkWidget *widget, dt_iop_module_t *self) +static void _edit_by_area_callback(GtkWidget *widget, + dt_iop_module_t *self) { if(darktable.gui->reset) return; dt_iop_colorzones_gui_data_t *g = (dt_iop_colorzones_gui_data_t *)self->gui_data; @@ -2152,7 +2381,8 @@ gtk_widget_queue_draw(GTK_WIDGET(g->area)); } -static void _display_mask_callback(GtkToggleButton *togglebutton, dt_iop_module_t *module) +static void _display_mask_callback(GtkToggleButton *togglebutton, + dt_iop_module_t *module) { if(darktable.gui->reset) return; @@ -2176,13 +2406,16 @@ dt_iop_refresh_center(module); } -void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece) +void color_picker_apply(dt_iop_module_t *self, + GtkWidget *picker, + dt_dev_pixelpipe_t *pipe) { dt_iop_colorzones_gui_data_t *g = (dt_iop_colorzones_gui_data_t *)self->gui_data; if(picker == g->colorpicker_set_values) { dt_iop_colorzones_params_t *p = (dt_iop_colorzones_params_t *)self->params; - dt_iop_colorzones_params_t *d = (dt_iop_colorzones_params_t *)self->default_params; + const dt_iop_colorzones_params_t *const d = + (dt_iop_colorzones_params_t *)self->default_params; const int ch_curve = g->channel; const int ch_val = p->channel; @@ -2226,7 +2459,8 @@ x = self->picked_color_min[1] / (128.f * sqrtf(2.f)); else if(ch_val == DT_IOP_COLORZONES_h) x = self->picked_color_min[2]; - if(x > 0.f && x < 1.f) _add_node(curve, &p->curve_num_nodes[ch_curve], x, .5f + increment); + if(x > 0.f && x < 1.f) _add_node(curve, &p->curve_num_nodes[ch_curve], + x, .5f + increment); if(ch_val == DT_IOP_COLORZONES_L) x = self->picked_color[0] / 100.f; @@ -2234,7 +2468,8 @@ x = self->picked_color[1] / (128.f * sqrtf(2.f)); else if(ch_val == DT_IOP_COLORZONES_h) x = self->picked_color[2]; - if(x > 0.f && x < 1.f) _add_node(curve, &p->curve_num_nodes[ch_curve], x, .5f + 2.f * increment); + if(x > 0.f && x < 1.f) _add_node(curve, &p->curve_num_nodes[ch_curve], + x, .5f + 2.f * increment); if(ch_val == DT_IOP_COLORZONES_L) x = self->picked_color_max[0] / 100.f; @@ -2242,7 +2477,8 @@ x = self->picked_color_max[1] / (128.f * sqrtf(2.f)); else if(ch_val == DT_IOP_COLORZONES_h) x = self->picked_color_max[2]; - if(x > 0.f && x < 1.f) _add_node(curve, &p->curve_num_nodes[ch_curve], x, .5f + increment); + if(x > 0.f && x < 1.f) _add_node(curve, &p->curve_num_nodes[ch_curve], + x, .5f + increment); if(ch_val == DT_IOP_COLORZONES_L) x = self->picked_color_max[0] / 100.f; @@ -2270,16 +2506,19 @@ { N_("magenta"), dt_action_effect_value }, { NULL } }; -static float _action_process_zones(gpointer target, dt_action_element_t element, dt_action_effect_t effect, float move_size) +static float _action_process_zones(gpointer target, + dt_action_element_t element, + dt_action_effect_t effect, + float move_size) { dt_iop_module_t *self = g_object_get_data(G_OBJECT(target), "iop-instance"); dt_iop_colorzones_gui_data_t *c = (dt_iop_colorzones_gui_data_t *)self->gui_data; dt_iop_colorzones_params_t *p = (dt_iop_colorzones_params_t *)self->params; - int ch = c->channel; + const int ch = c->channel; const int nodes = p->curve_num_nodes[ch]; dt_iop_colorzones_node_t *curve = p->curve[ch]; - float x = (float)element / 7.0; + const float x = (float)element / 8.0; gboolean close_enough = FALSE; int node = 0; @@ -2288,8 +2527,8 @@ node++; float return_value = close_enough - ? curve[node].y - : dt_draw_curve_calc_value(c->minmax_curve[ch], x); + ? curve[node].y + : dt_draw_curve_calc_value(c->minmax_curve[ch], x); if(DT_PERFORM_ACTION(move_size)) { @@ -2320,7 +2559,9 @@ break; } - gchar *text = g_strdup_printf("%s %+.2f", _action_elements_zones[element].name, return_value * 2. - 1.); + gchar *text = g_strdup_printf + ("%s %+.2f", + _action_elements_zones[element].name, return_value * 2. - 1.); dt_action_widget_toast(DT_ACTION(self), target, text); g_free(text); } @@ -2362,7 +2603,8 @@ void gui_init(struct dt_iop_module_t *self) { dt_iop_colorzones_gui_data_t *c = IOP_GUI_ALLOC(colorzones); - dt_iop_colorzones_params_t *p = (dt_iop_colorzones_params_t *)self->default_params; + const dt_iop_colorzones_params_t *const p = + (dt_iop_colorzones_params_t *)self->default_params; self->histogram_cst = IOP_CS_LCH; @@ -2396,7 +2638,8 @@ static dt_action_def_t notebook_def = { }; c->channel_tabs = dt_ui_notebook_new(¬ebook_def); - dt_action_define_iop(self, NULL, N_("channel"), GTK_WIDGET(c->channel_tabs), ¬ebook_def); + dt_action_define_iop(self, NULL, N_("channel"), + GTK_WIDGET(c->channel_tabs), ¬ebook_def); dt_ui_notebook_page(c->channel_tabs, N_("lightness"), NULL); dt_ui_notebook_page(c->channel_tabs, N_("chroma"), NULL); @@ -2404,28 +2647,39 @@ gtk_widget_show(gtk_notebook_get_nth_page(c->channel_tabs, c->channel)); gtk_notebook_set_current_page(c->channel_tabs, c->channel); - g_signal_connect(G_OBJECT(c->channel_tabs), "switch_page", G_CALLBACK(_channel_tabs_switch_callback), self); + g_signal_connect(G_OBJECT(c->channel_tabs), "switch_page", + G_CALLBACK(_channel_tabs_switch_callback), self); gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(c->channel_tabs), TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox), gtk_label_new(" "), FALSE, FALSE, 0); // color pickers - c->colorpicker = dt_color_picker_new_with_cst(self, DT_COLOR_PICKER_POINT_AREA, hbox, IOP_CS_LCH); - gtk_widget_set_tooltip_text(c->colorpicker, _("pick GUI color from image\nctrl+click or right-click to select an area")); + c->colorpicker = dt_color_picker_new_with_cst(self, DT_COLOR_PICKER_POINT_AREA, + hbox, IOP_CS_LCH); + gtk_widget_set_tooltip_text + (c->colorpicker, + _("pick GUI color from image\nctrl+click or right-click to select an area")); gtk_widget_set_name(c->colorpicker, "keep-active"); - dt_action_define_iop(self, N_("pickers"), N_("show color"), c->colorpicker, &dt_action_def_toggle); - c->colorpicker_set_values = dt_color_picker_new_with_cst(self, DT_COLOR_PICKER_AREA, hbox, IOP_CS_LCH); + dt_action_define_iop(self, N_("pickers"), N_("show color"), + c->colorpicker, &dt_action_def_toggle); + c->colorpicker_set_values = dt_color_picker_new_with_cst(self, + DT_COLOR_PICKER_AREA, + hbox, IOP_CS_LCH); dtgtk_togglebutton_set_paint(DTGTK_TOGGLEBUTTON(c->colorpicker_set_values), dtgtk_cairo_paint_colorpicker_set_values, 0, NULL); dt_gui_add_class(c->colorpicker_set_values, "dt_transparent_background"); - gtk_widget_set_size_request(c->colorpicker_set_values, DT_PIXEL_APPLY_DPI(14), DT_PIXEL_APPLY_DPI(14)); - gtk_widget_set_tooltip_text(c->colorpicker_set_values, _("create a curve based on an area from the image\n" - "drag to create a flat curve\n" - "ctrl+drag to create a positive curve\n" - "shift+drag to create a negative curve")); - dt_action_define_iop(self, N_("pickers"), N_("create curve"), c->colorpicker_set_values, &dt_action_def_toggle); + gtk_widget_set_size_request(c->colorpicker_set_values, + DT_PIXEL_APPLY_DPI(14), DT_PIXEL_APPLY_DPI(14)); + gtk_widget_set_tooltip_text(c->colorpicker_set_values, + _("create a curve based on an area from the image\n" + "drag to create a flat curve\n" + "ctrl+drag to create a positive curve\n" + "shift+drag to create a negative curve")); + dt_action_define_iop(self, N_("pickers"), N_("create curve"), + c->colorpicker_set_values, &dt_action_def_toggle); // the nice graph - c->area = GTK_DRAWING_AREA(dt_ui_resize_wrap(NULL, 0, "plugins/darkroom/colorzones/aspect_percent")); + c->area = GTK_DRAWING_AREA + (dt_ui_resize_wrap(NULL, 0, "plugins/darkroom/colorzones/aspect_percent")); gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(c->area), TRUE, TRUE, 0); @@ -2442,17 +2696,20 @@ gchar *label = N_("edit by area"); c->chk_edit_by_area = gtk_check_button_new_with_label(_(label)); dt_action_define_iop(self, NULL, label, c->chk_edit_by_area, &dt_action_def_toggle); - gtk_label_set_ellipsize(GTK_LABEL(gtk_bin_get_child(GTK_BIN(c->chk_edit_by_area))), PANGO_ELLIPSIZE_START); + gtk_label_set_ellipsize(GTK_LABEL(gtk_bin_get_child(GTK_BIN(c->chk_edit_by_area))), + PANGO_ELLIPSIZE_START); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(c->chk_edit_by_area), c->edit_by_area); gtk_widget_set_tooltip_text(c->chk_edit_by_area, _("edit the curve nodes by area")); gtk_box_pack_start(GTK_BOX(hbox_select_by), c->chk_edit_by_area, TRUE, TRUE, 0); - g_signal_connect(G_OBJECT(c->chk_edit_by_area), "toggled", G_CALLBACK(_edit_by_area_callback), self); + g_signal_connect(G_OBJECT(c->chk_edit_by_area), "toggled", + G_CALLBACK(_edit_by_area_callback), self); // display selection c->bt_showmask = dtgtk_togglebutton_new(dtgtk_cairo_paint_showmask, 0, NULL); dt_gui_add_class(c->bt_showmask, "dt_transparent_background"); gtk_widget_set_tooltip_text(c->bt_showmask, _("display selection")); - g_signal_connect(G_OBJECT(c->bt_showmask), "toggled", G_CALLBACK(_display_mask_callback), self); + g_signal_connect(G_OBJECT(c->bt_showmask), "toggled", + G_CALLBACK(_display_mask_callback), self); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(c->bt_showmask), FALSE); gtk_box_pack_end(GTK_BOX(hbox_select_by), c->bt_showmask, FALSE, FALSE, 0); @@ -2460,7 +2717,9 @@ // select by which dimension c->select_by = dt_bauhaus_combobox_from_params(self, "channel"); - gtk_widget_set_tooltip_text(c->select_by, _("choose selection criterion, will be the abscissa in the graph")); + gtk_widget_set_tooltip_text + (c->select_by, + _("choose selection criterion, will be the abscissa in the graph")); c->mode = dt_bauhaus_combobox_from_params(self, "mode"); gtk_widget_set_tooltip_text(c->mode, _("choose between a smoother or stronger effect")); @@ -2472,17 +2731,26 @@ g_object_set_data(G_OBJECT(c->area), "iop-instance", self); dt_action_define_iop(self, NULL, N_("graph"), GTK_WIDGET(c->area), &_action_def_zones); gtk_widget_set_can_focus(GTK_WIDGET(c->area), TRUE); - g_signal_connect(G_OBJECT(c->area), "draw", G_CALLBACK(_area_draw_callback), self); - g_signal_connect(G_OBJECT(c->area), "button-press-event", G_CALLBACK(_area_button_press_callback), self); - g_signal_connect(G_OBJECT(c->area), "button-release-event", G_CALLBACK(_area_button_release_callback), self); - g_signal_connect(G_OBJECT(c->area), "motion-notify-event", G_CALLBACK(_area_motion_notify_callback), self); - g_signal_connect(G_OBJECT(c->area), "leave-notify-event", G_CALLBACK(_area_leave_notify_callback), self); - g_signal_connect(G_OBJECT(c->area), "scroll-event", G_CALLBACK(_area_scrolled_callback), self); - g_signal_connect(G_OBJECT(c->area), "key-press-event", G_CALLBACK(_area_key_press_callback), self); + g_signal_connect(G_OBJECT(c->area), "draw", + G_CALLBACK(_area_draw_callback), self); + g_signal_connect(G_OBJECT(c->area), "button-press-event", + G_CALLBACK(_area_button_press_callback), self); + g_signal_connect(G_OBJECT(c->area), "button-release-event", + G_CALLBACK(_area_button_release_callback), self); + g_signal_connect(G_OBJECT(c->area), "motion-notify-event", + G_CALLBACK(_area_motion_notify_callback), self); + g_signal_connect(G_OBJECT(c->area), "leave-notify-event", + G_CALLBACK(_area_leave_notify_callback), self); + g_signal_connect(G_OBJECT(c->area), "scroll-event", + G_CALLBACK(_area_scrolled_callback), self); + g_signal_connect(G_OBJECT(c->area), "key-press-event", + G_CALLBACK(_area_key_press_callback), self); gtk_widget_add_events(GTK_WIDGET(c->bottom_area), GDK_BUTTON_PRESS_MASK); - g_signal_connect(G_OBJECT(c->bottom_area), "draw", G_CALLBACK(_bottom_area_draw_callback), self); - g_signal_connect(G_OBJECT(c->bottom_area), "button-press-event", G_CALLBACK(_bottom_area_button_press_callback), + g_signal_connect(G_OBJECT(c->bottom_area), "draw", + G_CALLBACK(_bottom_area_draw_callback), self); + g_signal_connect(G_OBJECT(c->bottom_area), "button-press-event", + G_CALLBACK(_bottom_area_button_press_callback), self); /* From src/common/curve_tools.h : @@ -2501,7 +2769,8 @@ "- cubic spline is better to produce smooth curves but oscillates when nodes are too close\n" "- centripetal is better to avoids cusps and oscillations with close nodes but is less smooth\n" "- monotonic is better for accuracy of pure analytical functions (log, gamma, exp)")); - g_signal_connect(G_OBJECT(c->interpolator), "value-changed", G_CALLBACK(_interpolator_callback), self); + g_signal_connect(G_OBJECT(c->interpolator), "value-changed", + G_CALLBACK(_interpolator_callback), self); } void gui_update(struct dt_iop_module_t *self) @@ -2519,7 +2788,8 @@ dt_iop_colorzones_gui_data_t *c = (dt_iop_colorzones_gui_data_t *)self->gui_data; dt_conf_set_int("plugins/darkroom/colorzones/gui_channel", c->channel); - for(int ch = 0; ch < DT_IOP_COLORZONES_MAX_CHANNELS; ch++) dt_draw_curve_destroy(c->minmax_curve[ch]); + for(int ch = 0; ch < DT_IOP_COLORZONES_MAX_CHANNELS; ch++) + dt_draw_curve_destroy(c->minmax_curve[ch]); IOP_GUI_FREE; } @@ -2544,7 +2814,9 @@ module->data = NULL; } -void commit_params(struct dt_iop_module_t *self, dt_iop_params_t *p1, dt_dev_pixelpipe_t *pipe, +void commit_params(struct dt_iop_module_t *self, + dt_iop_params_t *p1, + dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) { // pull in new params to pipe @@ -2575,8 +2847,10 @@ { for(int ch = 0; ch < DT_IOP_COLORZONES_MAX_CHANNELS; ch++) { - // take care of possible change of curve type or number of nodes (not yet implemented in UI) - if(d->curve_type[ch] != p->curve_type[ch] || d->curve_nodes[ch] != p->curve_num_nodes[ch]) + // take care of possible change of curve type or number of nodes + // (not yet implemented in UI) + if(d->curve_type[ch] != p->curve_type[ch] + || d->curve_nodes[ch] != p->curve_num_nodes[ch]) { dt_draw_curve_destroy(d->curve[ch]); d->curve[ch] = dt_draw_curve_new(0.f, 1.f, p->curve_type[ch]); @@ -2584,44 +2858,59 @@ d->curve_type[ch] = p->curve_type[ch]; if(d->channel == DT_IOP_COLORZONES_h) - dt_draw_curve_add_point(d->curve[ch], p->curve[ch][p->curve_num_nodes[ch] - 2].x - 1.f, - strength(p->curve[ch][p->curve_num_nodes[ch] - 2].y, p->strength)); + dt_draw_curve_add_point(d->curve[ch], + p->curve[ch][p->curve_num_nodes[ch] - 2].x - 1.f, + strength(p->curve[ch][p->curve_num_nodes[ch] - 2].y, + p->strength)); else - dt_draw_curve_add_point(d->curve[ch], p->curve[ch][p->curve_num_nodes[ch] - 2].x - 1.f, + dt_draw_curve_add_point(d->curve[ch], + p->curve[ch][p->curve_num_nodes[ch] - 2].x - 1.f, strength(p->curve[ch][0].y, p->strength)); for(int k = 0; k < p->curve_num_nodes[ch]; k++) - dt_draw_curve_add_point(d->curve[ch], p->curve[ch][k].x, strength(p->curve[ch][k].y, p->strength)); + dt_draw_curve_add_point(d->curve[ch], p->curve[ch][k].x, + strength(p->curve[ch][k].y, p->strength)); if(d->channel == DT_IOP_COLORZONES_h) - dt_draw_curve_add_point(d->curve[ch], p->curve[ch][1].x + 1.f, strength(p->curve[ch][1].y, p->strength)); + dt_draw_curve_add_point(d->curve[ch], p->curve[ch][1].x + 1.f, + strength(p->curve[ch][1].y, p->strength)); else dt_draw_curve_add_point(d->curve[ch], p->curve[ch][1].x + 1.f, - strength(p->curve[ch][p->curve_num_nodes[ch] - 1].y, p->strength)); + strength(p->curve[ch][p->curve_num_nodes[ch] - 1].y, + p->strength)); } else { if(d->channel == DT_IOP_COLORZONES_h) - dt_draw_curve_set_point(d->curve[ch], 0, p->curve[ch][p->curve_num_nodes[ch] - 2].x - 1.f, - strength(p->curve[ch][p->curve_num_nodes[ch] - 2].y, p->strength)); + dt_draw_curve_set_point(d->curve[ch], 0, + p->curve[ch][p->curve_num_nodes[ch] - 2].x - 1.f, + strength(p->curve[ch][p->curve_num_nodes[ch] - 2].y, + p->strength)); else - dt_draw_curve_set_point(d->curve[ch], 0, p->curve[ch][p->curve_num_nodes[ch] - 2].x - 1.f, + dt_draw_curve_set_point(d->curve[ch], 0, + p->curve[ch][p->curve_num_nodes[ch] - 2].x - 1.f, strength(p->curve[ch][0].y, p->strength)); for(int k = 0; k < p->curve_num_nodes[ch]; k++) - dt_draw_curve_set_point(d->curve[ch], k + 1, p->curve[ch][k].x, strength(p->curve[ch][k].y, p->strength)); + dt_draw_curve_set_point(d->curve[ch], k + 1, p->curve[ch][k].x, + strength(p->curve[ch][k].y, p->strength)); if(d->channel == DT_IOP_COLORZONES_h) - dt_draw_curve_set_point(d->curve[ch], p->curve_num_nodes[ch] + 1, p->curve[ch][1].x + 1.f, + dt_draw_curve_set_point(d->curve[ch], p->curve_num_nodes[ch] + 1, + p->curve[ch][1].x + 1.f, strength(p->curve[ch][1].y, p->strength)); else - dt_draw_curve_set_point(d->curve[ch], p->curve_num_nodes[ch] + 1, p->curve[ch][1].x + 1.f, - strength(p->curve[ch][p->curve_num_nodes[ch] - 1].y, p->strength)); + dt_draw_curve_set_point(d->curve[ch], p->curve_num_nodes[ch] + 1, + p->curve[ch][1].x + 1.f, + strength(p->curve[ch][p->curve_num_nodes[ch] - 1].y, + p->strength)); } - dt_draw_curve_calc_values(d->curve[ch], 0.f, 1.f, DT_IOP_COLORZONES_LUT_RES, NULL, d->lut[ch]); + dt_draw_curve_calc_values(d->curve[ch], 0.f, 1.f, + DT_IOP_COLORZONES_LUT_RES, NULL, d->lut[ch]); } } else { for(int ch = 0; ch < DT_IOP_COLORZONES_MAX_CHANNELS; ch++) { - if(d->curve_type[ch] != p->curve_type[ch] || d->curve_nodes[ch] != p->curve_num_nodes[ch] + if(d->curve_type[ch] != p->curve_type[ch] + || d->curve_nodes[ch] != p->curve_num_nodes[ch] || d->curve[ch]->c.m_numAnchors != p->curve_num_nodes[ch]) { dt_draw_curve_destroy(d->curve[ch]); @@ -2630,23 +2919,29 @@ d->curve_type[ch] = p->curve_type[ch]; for(int k = 0; k < p->curve_num_nodes[ch]; k++) - dt_draw_curve_add_point(d->curve[ch], p->curve[ch][k].x, strength(p->curve[ch][k].y, p->strength)); + dt_draw_curve_add_point(d->curve[ch], p->curve[ch][k].x, + strength(p->curve[ch][k].y, p->strength)); } else { for(int k = 0; k < p->curve_num_nodes[ch]; k++) - dt_draw_curve_set_point(d->curve[ch], k, p->curve[ch][k].x, strength(p->curve[ch][k].y, p->strength)); + dt_draw_curve_set_point(d->curve[ch], k, p->curve[ch][k].x, + strength(p->curve[ch][k].y, p->strength)); } - dt_draw_curve_calc_values_V2(d->curve[ch], 0.f, 1.f, DT_IOP_COLORZONES_LUT_RES, NULL, d->lut[ch], + dt_draw_curve_calc_values_V2(d->curve[ch], 0.f, 1.f, + DT_IOP_COLORZONES_LUT_RES, NULL, d->lut[ch], p->channel == DT_IOP_COLORZONES_h); } } } -void init_pipe(struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +void init_pipe(struct dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { dt_iop_colorzones_data_t *d = malloc(sizeof(dt_iop_colorzones_data_t)); - dt_iop_colorzones_params_t *default_params = (dt_iop_colorzones_params_t *)self->default_params; + const dt_iop_colorzones_params_t *const default_params = + (dt_iop_colorzones_params_t *)self->default_params; piece->data = d; for(int ch = 0; ch < DT_IOP_COLORZONES_MAX_CHANNELS; ch++) @@ -2655,18 +2950,23 @@ d->curve_nodes[ch] = default_params->curve_num_nodes[ch]; d->curve_type[ch] = default_params->curve_type[ch]; for(int k = 0; k < default_params->curve_num_nodes[ch]; k++) - dt_draw_curve_add_point(d->curve[ch], default_params->curve[ch][k].x, default_params->curve[ch][k].y); + dt_draw_curve_add_point(d->curve[ch], + default_params->curve[ch][k].x, + default_params->curve[ch][k].y); } d->channel = (dt_iop_colorzones_channel_t)default_params->channel; d->mode = default_params->mode; } -void cleanup_pipe(struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +void cleanup_pipe(struct dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { // clean up everything again. dt_iop_colorzones_data_t *d = (dt_iop_colorzones_data_t *)(piece->data); - for(int ch = 0; ch < DT_IOP_COLORZONES_MAX_CHANNELS; ch++) dt_draw_curve_destroy(d->curve[ch]); + for(int ch = 0; ch < DT_IOP_COLORZONES_MAX_CHANNELS; ch++) + dt_draw_curve_destroy(d->curve[ch]); free(piece->data); piece->data = NULL; @@ -2681,7 +2981,8 @@ module->gui_data = NULL; module->request_histogram |= DT_REQUEST_ON; - _reset_parameters(module->default_params, DT_IOP_COLORZONES_h, DT_IOP_COLORZONES_SPLINES_V2); + _reset_parameters(module->default_params, DT_IOP_COLORZONES_h, + DT_IOP_COLORZONES_SPLINES_V2); } #undef DT_IOP_COLORZONES_INSET diff -Nru darktable-4.4.2/src/iop/crop.c darktable-4.6.1/src/iop/crop.c --- darktable-4.4.2/src/iop/crop.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/crop.c 2024-02-16 17:31:09.000000000 +0000 @@ -93,7 +93,6 @@ GList *aspect_list; GtkWidget *aspect_presets; - float button_down_x, button_down_y; float button_down_zoom_x, button_down_zoom_y; /* current clip box */ @@ -118,15 +117,6 @@ float cx, cy, cw, ch; // crop window } dt_iop_crop_data_t; -int legacy_params(dt_iop_module_t *self, - const void *const old_params, - const int old_version, - void *new_params, - const int new_version) -{ - return 0; -} - const char *name() { return _("crop"); @@ -156,12 +146,12 @@ { return IOP_FLAGS_ALLOW_TILING | IOP_FLAGS_TILING_FULL_ROI | IOP_FLAGS_ONE_INSTANCE | IOP_FLAGS_ALLOW_FAST_PIPE - | IOP_FLAGS_GUIDES_SPECIAL_DRAW | IOP_FLAGS_GUIDES_WIDGET; + | IOP_FLAGS_GUIDES_SPECIAL_DRAW | IOP_FLAGS_GUIDES_WIDGET | IOP_FLAGS_CROP_EXPOSER; } int operation_tags() { - return IOP_TAG_DISTORT | IOP_TAG_CLIPPING; + return IOP_TAG_DISTORT | IOP_TAG_CROPPING; } int operation_tags_filter() @@ -170,9 +160,9 @@ return IOP_TAG_DECORATION; } -int default_colorspace(dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -188,7 +178,7 @@ dt_iop_crop_params_t *p) { if(darktable.gui->reset) return; - if(self->dev->preview_status != DT_DEV_PIXELPIPE_VALID) return; + if(self->dev->preview_pipe->status != DT_DEV_PIXELPIPE_VALID) return; g->cropping = 0; const dt_boundingbox_t old = { p->cx, p->cy, p->cw, p->ch }; @@ -200,8 +190,8 @@ p->cw = p->ch = 1.0f; } // we want value in iop space - const float wd = self->dev->preview_pipe->backbuf_width; - const float ht = self->dev->preview_pipe->backbuf_height; + float wd, ht; + dt_dev_get_preview_size(self->dev, &wd, &ht); dt_boundingbox_t points = { g->clip_x * wd, g->clip_y * ht, (g->clip_x + g->clip_w) * wd, @@ -243,7 +233,7 @@ dt_iop_crop_params_t *p = (dt_iop_crop_params_t *)self->params; if(g->clip_max_pipe_hash == self->dev->preview_pipe->backbuf_hash) return 1; - if(self->dev->preview_status != DT_DEV_PIXELPIPE_VALID) return 1; + if(self->dev->preview_pipe->status != DT_DEV_PIXELPIPE_VALID) return 1; // we want to know the size of the actual buffer dt_dev_pixelpipe_iop_t *piece = @@ -256,33 +246,35 @@ DT_DEV_TRANSFORM_DIR_FORW_EXCL, points, 4)) return 0; + float wd, ht; + dt_dev_get_preview_size(self->dev, &wd, &ht); g->clip_max_x = - fmaxf(points[0] / self->dev->preview_pipe->backbuf_width, 0.0f); + fmaxf(points[0] / wd, 0.0f); g->clip_max_y = - fmaxf(points[1] / self->dev->preview_pipe->backbuf_height, 0.0f); + fmaxf(points[1] / ht, 0.0f); g->clip_max_w = - fminf((points[2] - points[0]) / self->dev->preview_pipe->backbuf_width, 1.0f); + fminf((points[2] - points[0]) / wd, 1.0f); g->clip_max_h = - fminf((points[3] - points[1]) / self->dev->preview_pipe->backbuf_height, 1.0f); + fminf((points[3] - points[1]) / ht, 1.0f); // if clipping values are not null, this is undistorted values... g->clip_x = - fmaxf(points[4] / self->dev->preview_pipe->backbuf_width, g->clip_max_x); + fmaxf(points[4] / wd, g->clip_max_x); g->clip_y = - fmaxf(points[5] / self->dev->preview_pipe->backbuf_height, g->clip_max_y); + fmaxf(points[5] / ht, g->clip_max_y); g->clip_w = - fminf((points[6] - points[4]) / self->dev->preview_pipe->backbuf_width, g->clip_max_w); + fminf((points[6] - points[4]) / wd, g->clip_max_w); g->clip_h = - fminf((points[7] - points[5]) / self->dev->preview_pipe->backbuf_height, g->clip_max_h); + fminf((points[7] - points[5]) / ht, g->clip_max_h); g->clip_max_pipe_hash = self->dev->preview_pipe->backbuf_hash; return 1; } -int distort_transform(dt_iop_module_t *self, - dt_dev_pixelpipe_iop_t *piece, - float *const restrict points, - size_t points_count) +gboolean distort_transform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *const restrict points, + size_t points_count) { dt_iop_crop_data_t *d = (dt_iop_crop_data_t *)piece->data; @@ -290,7 +282,7 @@ const float crop_left = piece->buf_in.width * d->cx; // nothing to be done if parameters are set to neutral values (no top/left border) - if(crop_top == 0 && crop_left == 0) return 1; + if(crop_top == 0 && crop_left == 0) return TRUE; #ifdef _OPENMP #pragma omp parallel for simd default(none) dt_omp_firstprivate(points, points_count, crop_left, crop_top) \ @@ -302,13 +294,13 @@ points[i + 1] -= crop_top; } - return 1; + return TRUE; } -int distort_backtransform(dt_iop_module_t *self, - dt_dev_pixelpipe_iop_t *piece, - float *const restrict points, - size_t points_count) +gboolean distort_backtransform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *const restrict points, + size_t points_count) { dt_iop_crop_data_t *d = (dt_iop_crop_data_t *)piece->data; @@ -316,7 +308,7 @@ const float crop_left = piece->buf_in.width * d->cx; // nothing to be done if parameters are set to neutral values (no top/left border) - if(crop_top == 0 && crop_left == 0) return 1; + if(crop_top == 0 && crop_left == 0) return TRUE; #ifdef _OPENMP #pragma omp parallel for simd default(none) dt_omp_firstprivate(points, points_count, crop_left, crop_top) \ @@ -328,7 +320,7 @@ points[i + 1] += crop_top; } - return 1; + return TRUE; } void distort_mask(struct dt_iop_module_t *self, @@ -338,7 +330,7 @@ const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) { - dt_iop_copy_image_roi(out, in, 1, roi_in, roi_out, TRUE); + dt_iop_copy_image_roi(out, in, 1, roi_in, roi_out); } // 1st pass: how large would the output be, given this input roi? @@ -389,7 +381,7 @@ const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) { - dt_iop_copy_image_roi(ovoid, ivoid, 4, roi_in, roi_out, TRUE); + dt_iop_copy_image_roi(ovoid, ivoid, 4, roi_in, roi_out); } #ifdef HAVE_OPENCL @@ -402,15 +394,8 @@ { size_t origin[] = { 0, 0, 0 }; size_t region[] = { roi_out->width, roi_out->height, 1 }; - cl_int err = dt_opencl_enqueue_copy_image(piece->pipe->devid, dev_in, dev_out, + return dt_opencl_enqueue_copy_image(piece->pipe->devid, dev_in, dev_out, origin, origin, region); - if(err != CL_SUCCESS) goto error; - - return TRUE; - -error: - dt_print(DT_DEBUG_OPENCL, "[opencl_crop] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; } #endif @@ -422,7 +407,7 @@ dt_iop_crop_params_t *p = (dt_iop_crop_params_t *)p1; dt_iop_crop_data_t *d = (dt_iop_crop_data_t *)piece->data; - if(_gui_has_focus(self)) + if(_gui_has_focus(self) && (pipe->type & DT_DEV_PIXELPIPE_BASIC)) { d->cx = 0.0f; d->cy = 0.0f; @@ -438,7 +423,6 @@ } } - static void _event_preview_updated_callback(gpointer instance, dt_iop_module_t *self) { dt_iop_crop_gui_data_t *g = (dt_iop_crop_gui_data_t *)self->gui_data; @@ -517,7 +501,7 @@ if(text && !g_strcmp0(text, _("original image"))) { int proc_iwd = 0, proc_iht = 0; - dt_dev_get_processed_size(darktable.develop, &proc_iwd, &proc_iht); + dt_dev_get_processed_size(&darktable.develop->full, &proc_iwd, &proc_iht); if(!(proc_iwd > 0 && proc_iht > 0)) return 0.0f; @@ -647,7 +631,7 @@ dt_iop_crop_gui_data_t *g = (dt_iop_crop_gui_data_t *)self->gui_data; int iwd, iht; - dt_dev_get_processed_size(darktable.develop, &iwd, &iht); + dt_dev_get_processed_size(&darktable.develop->full, &iwd, &iht); // enforce aspect ratio. float aspect = _aspect_ratio_get(self, g->aspect_presets); @@ -1340,43 +1324,37 @@ } // draw guides and handles over the image -void gui_post_expose(struct dt_iop_module_t *self, +void gui_post_expose(dt_iop_module_t *self, cairo_t *cr, - int32_t width, - int32_t height, - int32_t pointerx, - int32_t pointery) + const float wd, + const float ht, + const float pzx, + const float pzy, + const float zoom_scale) { dt_develop_t *dev = self->dev; dt_iop_crop_gui_data_t *g = (dt_iop_crop_gui_data_t *)self->gui_data; - // we don't do anything if the image is not ready - if(!g->preview_ready) return; + // is this expose enforced by another module in focus? + const gboolean external = dev->gui_module != self; + const gboolean dimmed = dt_iop_color_picker_is_visible(dev) || external; + + // we don't do anything if the image is not ready within crop module + // and we don't have visualizing enforced by other modules + if((dev->full.pipe->changed & DT_DEV_PIPE_REMOVE + || self->dev->preview_pipe->loading) + && !external) return; _aspect_apply(self, GRAB_HORIZONTAL); - const float wd = dev->preview_pipe->backbuf_width; - const float ht = dev->preview_pipe->backbuf_height; - const float zoom_y = dt_control_get_dev_zoom_y(); - const float zoom_x = dt_control_get_dev_zoom_x(); - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(dev, zoom, 1 << closeup, 1); - - cairo_translate(cr, width / 2.0, height / 2.0); - cairo_scale(cr, zoom_scale, zoom_scale); - cairo_translate(cr, -.5f * wd - zoom_x * wd, -.5f * ht - zoom_y * ht); - - const double dashes = DT_PIXEL_APPLY_DPI(5.0) / zoom_scale; - // draw cropping window - float pzx, pzy; - dt_dev_get_pointer_zoom_pos(dev, pointerx, pointery, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; - if(_set_max_clip(self)) + const double fillc = dimmed ? 0.9 : 0.2; + const double dashes = (dimmed ? 0.3 : 0.5) * DT_PIXEL_APPLY_DPI(5.0) / zoom_scale; + const double effect = dimmed ? 0.6 : 1.0; + + if(_set_max_clip(self) && !dimmed) { - cairo_set_source_rgba(cr, .2, .2, .2, .8); + cairo_set_source_rgba(cr, fillc, fillc, fillc, 1.0 - fillc); cairo_set_fill_rule(cr, CAIRO_FILL_RULE_EVEN_ODD); cairo_rectangle(cr, g->clip_max_x * wd, g->clip_max_y * ht, g->clip_max_w * wd, g->clip_max_h * ht); @@ -1384,14 +1362,17 @@ g->clip_w * wd, g->clip_h * ht); cairo_fill(cr); } + if(g->clip_x > .0f || g->clip_y > .0f || g->clip_w < 1.0f || g->clip_h < 1.0f) { - cairo_set_line_width(cr, dashes / 2.0); + cairo_set_line_width(cr, dashes); cairo_rectangle(cr, g->clip_x * wd, g->clip_y * ht, g->clip_w * wd, g->clip_h * ht); - dt_draw_set_color_overlay(cr, TRUE, 1.0); + dt_draw_set_color_overlay(cr, TRUE, effect); cairo_stroke(cr); } + if(dimmed) return; + // draw cropping window dimensions if first mouse button is pressed if(darktable.control->button_down && darktable.control->button_down_which == 1) { @@ -1409,7 +1390,7 @@ pango_layout_set_font_description(layout, desc); int procw, proch; - dt_dev_get_processed_size(dev, &procw, &proch); + dt_dev_get_processed_size(&dev->full, &procw, &proch); snprintf(dimensions, sizeof(dimensions), "%i x %i", (int)(procw * g->clip_w), (int)(proch * g->clip_h)); @@ -1492,26 +1473,20 @@ cairo_stroke(cr); } -int mouse_moved(struct dt_iop_module_t *self, - double x, - double y, - double pressure, - int which) +int mouse_moved(dt_iop_module_t *self, + const float pzx, + const float pzy, + const double pressure, + const int which, + const float zoom_scale) { dt_iop_crop_gui_data_t *g = (dt_iop_crop_gui_data_t *)self->gui_data; // we don't do anything if the image is not ready - if(!g->preview_ready || self->dev->preview_loading) return 0; + if(!g->preview_ready || self->dev->preview_pipe->loading) return 0; - const float wd = self->dev->preview_pipe->backbuf_width; - const float ht = self->dev->preview_pipe->backbuf_height; - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(self->dev, zoom, 1 << closeup, 1); - float pzx, pzy; - dt_dev_get_pointer_zoom_pos(self->dev, x, y, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; + float wd, ht; + dt_dev_get_preview_size(self->dev, &wd, &ht); const _grab_region_t grab = _gui_get_grab(pzx, pzy, g, DT_PIXEL_APPLY_DPI(30.0) / zoom_scale, wd, ht); @@ -1522,8 +1497,8 @@ { // draw a light gray frame, to show it's not stored yet: // first mouse button, adjust cropping frame, but what do we do? - const float bzx = g->button_down_zoom_x + .5f; - const float bzy = g->button_down_zoom_y + .5f; + const float bzx = g->button_down_zoom_x; + const float bzy = g->button_down_zoom_y; if(g->cropping == GRAB_ALL) { @@ -1538,6 +1513,8 @@ = fminf(g->clip_max_h + g->clip_max_y - g->clip_h, fmaxf(g->clip_max_y, g->handle_y + pzy - bzy)); } + else if(g->cropping == GRAB_NONE) + return 0; else { /* changing the crop window */ @@ -1687,11 +1664,12 @@ return 0; } -int button_released(struct dt_iop_module_t *self, - double x, - double y, - int which, - uint32_t state) +int button_released(dt_iop_module_t *self, + const float x, + const float y, + const int which, + const uint32_t state, + const float zoom_scale) { dt_iop_crop_gui_data_t *g = (dt_iop_crop_gui_data_t *)self->gui_data; dt_iop_crop_params_t *p = (dt_iop_crop_params_t *)self->params; @@ -1710,13 +1688,14 @@ return 1; } -int button_pressed(struct dt_iop_module_t *self, - double x, - double y, - double pressure, - int which, - int type, - uint32_t state) +int button_pressed(dt_iop_module_t *self, + const float bzx, + const float bzy, + const double pressure, + const int which, + const int type, + const uint32_t state, + const float zoom_scale) { dt_iop_crop_gui_data_t *g = (dt_iop_crop_gui_data_t *)self->gui_data; // we don't do anything if the image is not ready @@ -1729,24 +1708,15 @@ if(which == 1) { - const float wd = self->dev->preview_pipe->backbuf_width; - const float ht = self->dev->preview_pipe->backbuf_height; - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(self->dev, zoom, 1 << closeup, 1); - - float pzx, pzy; - dt_dev_get_pointer_zoom_pos(self->dev, x, y, &pzx, &pzy); + float wd, ht; + dt_dev_get_preview_size(self->dev, &wd, &ht); // switch module on already, other code depends in this: if(!self->enabled) dt_dev_add_history_item(darktable.develop, self, TRUE); - g->button_down_x = x; - g->button_down_y = y; - - g->button_down_zoom_x = pzx; - g->button_down_zoom_y = pzy; + g->button_down_zoom_x = bzx; + g->button_down_zoom_y = bzy; /* update prev clip box with current */ g->prev_clip_x = g->clip_x; @@ -1760,9 +1730,6 @@ /* store grabbed area */ - const float bzx = pzx + .5f; - const float bzy = pzy + .5f; - g->cropping = _gui_get_grab(bzx, bzy, g, DT_PIXEL_APPLY_DPI(30.0) / zoom_scale, wd, ht); if(g->cropping == GRAB_CENTER) diff -Nru darktable-4.4.2/src/iop/defringe.c darktable-4.6.1/src/iop/defringe.c --- darktable-4.4.2/src/iop/defringe.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/defringe.c 2024-02-16 17:31:09.000000000 +0000 @@ -101,7 +101,9 @@ return _("this module is deprecated. please use the chromatic aberration module instead."); } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } diff -Nru darktable-4.4.2/src/iop/demosaic.c darktable-4.6.1/src/iop/demosaic.c --- darktable-4.4.2/src/iop/demosaic.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/demosaic.c 2024-02-16 17:31:09.000000000 +0000 @@ -306,63 +306,90 @@ return IOP_FLAGS_ALLOW_TILING | IOP_FLAGS_ONE_INSTANCE | IOP_FLAGS_FENCE; } -int default_colorspace(dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RAW; } -int legacy_params( - dt_iop_module_t *self, - const void *const old_params, - const int old_version, - void *new_params, - const int new_version) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) { - typedef struct dt_iop_demosaic_params_t dt_iop_demosaic_params_v4_t; - typedef struct dt_iop_demosaic_params_v3_t + typedef struct dt_iop_demosaic_params_v4_t { dt_iop_demosaic_greeneq_t green_eq; float median_thrs; - uint32_t color_smoothing; + dt_iop_demosaic_smooth_t color_smoothing; dt_iop_demosaic_method_t demosaicing_method; dt_iop_demosaic_lmmse_t lmmse_refine; - } dt_iop_demosaic_params_v3_t; + float dual_thrs; + } dt_iop_demosaic_params_v4_t; - if(old_version == 3 && new_version == 4) + if(old_version == 2) { - dt_iop_demosaic_params_v3_t *o = (dt_iop_demosaic_params_v3_t *)old_params; - dt_iop_demosaic_params_v4_t *n = (dt_iop_demosaic_params_v4_t *)new_params; - memcpy(n, o, sizeof *o); - n->dual_thrs = 0.20f; - return 0; - } - - if(old_version == 2 && new_version == 3) - { - dt_iop_demosaic_params_t *o = (dt_iop_demosaic_params_t *)old_params; - dt_iop_demosaic_params_t *n = (dt_iop_demosaic_params_t *)new_params; + typedef struct dt_iop_demosaic_params_v2_t + { + dt_iop_demosaic_greeneq_t green_eq; + float median_thrs; + } dt_iop_demosaic_params_v2_t; + + const dt_iop_demosaic_params_v2_t *o = (dt_iop_demosaic_params_v2_t *)old_params; + dt_iop_demosaic_params_v4_t *n = + (dt_iop_demosaic_params_v4_t *)malloc(sizeof(dt_iop_demosaic_params_v4_t)); n->green_eq = o->green_eq; n->median_thrs = o->median_thrs; n->color_smoothing = 0; n->demosaicing_method = DT_IOP_DEMOSAIC_PPG; n->lmmse_refine = DT_LMMSE_REFINE_1; + n->dual_thrs = 0.20f; + + *new_params = n; + *new_params_size = sizeof(dt_iop_demosaic_params_v4_t); + *new_version = 4; + return 0; + } + + if(old_version == 3) + { + typedef struct dt_iop_demosaic_params_v3_t + { + dt_iop_demosaic_greeneq_t green_eq; + float median_thrs; + uint32_t color_smoothing; + dt_iop_demosaic_method_t demosaicing_method; + dt_iop_demosaic_lmmse_t lmmse_refine; + } dt_iop_demosaic_params_v3_t; + + const dt_iop_demosaic_params_v3_t *o = (dt_iop_demosaic_params_v3_t *)old_params; + dt_iop_demosaic_params_v4_t *n = + (dt_iop_demosaic_params_v4_t *)malloc(sizeof(dt_iop_demosaic_params_v4_t)); + memcpy(n, o, sizeof *o); + n->dual_thrs = 0.20f; + + *new_params = n; + *new_params_size = sizeof(dt_iop_demosaic_params_v4_t); + *new_version = 4; return 0; } + return 1; } -int input_colorspace(dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t input_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RAW; } -int output_colorspace(dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t output_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -413,7 +440,7 @@ (method == DT_IOP_DEMOSAIC_PASSTHR_MONOX) || (method == DT_IOP_DEMOSAIC_PASSTHROUGH_COLOR) || (method == DT_IOP_DEMOSAIC_PASSTHR_COLORX); - // set position to closest sensor pattern snap + // set position to closest top/left sensor pattern snap if(!passthrough) { const int aligner = (piece->pipe->dsc.filters != 9u) ? DT_BAYER_SNAPPER : DT_XTRANS_SNAPPER; @@ -421,28 +448,25 @@ const int dy = roi_in->y % aligner; /* - // This code is correctly working on CPU, OpenCL artefacts needs a FIXME + // This implements snapping to closest position, meant for optimized xtrans position + // but with problems at extreme zoom levels const int shift_x = (dx > aligner / 2) ? aligner - dx : -dx; const int shift_y = (dy > aligner / 2) ? aligner - dy : -dy; - roi_in->x = MAX(0, roi_in->x + shift_x); - roi_in->y = MAX(0, roi_in->y + shift_y); - - // if we shift to the right/bottom we also need to expand the roi - roi_in->width += MAX(0, shift_x); - roi_in->height += MAX(0, shift_y); + roi_in->x += shift_x; + roi_in->y += shift_y; */ - roi_in->x = MAX(0, roi_in->x - dx); - roi_in->y = MAX(0, roi_in->y - dy); + // currently we always snap to left & upper + roi_in->x -= dx; + roi_in->y -= dy; } - // clamp numeric inaccuracies to full buffer, to avoid scaling/copying in pixelpipe: - if(abs(piece->pipe->image.width - roi_in->width) < MAX(ceilf(1.0f / roi_out->scale), 10)) - roi_in->width = piece->pipe->image.width; - - if(abs(piece->pipe->image.height - roi_in->height) < MAX(ceilf(1.0f / roi_out->scale), 10)) - roi_in->height = piece->pipe->image.height; + // clamp to full buffer fixing numeric inaccuracies + roi_in->x = MAX(0, roi_in->x); + roi_in->y = MAX(0, roi_in->y); + roi_in->width = MIN(roi_in->width, piece->buf_in.width); + roi_in->height = MIN(roi_in->height, piece->buf_in.height); } void tiling_callback( @@ -465,7 +489,7 @@ // check if output buffer has same dimension as input buffer (thus avoiding one // additional temporary buffer) - const int unscaled = (roi_out->width == roi_in->width && roi_out->height == roi_in->height); + const gboolean unscaled = (roi_out->width == roi_in->width && roi_out->height == roi_in->height); // define aligners tiling->xalign = is_xtrans ? DT_XTRANS_SNAPPER : DT_BAYER_SNAPPER; @@ -577,7 +601,7 @@ { const dt_image_t *img = &self->dev->image_storage; - dt_dev_clear_rawdetail_mask(piece->pipe); + dt_dev_clear_scharr_mask(piece->pipe); dt_iop_roi_t roi = *roi_in; dt_iop_roi_t roo = *roi_out; @@ -592,11 +616,18 @@ const int qual_flags = demosaic_qual_flags(piece, img, roi_out); int demosaicing_method = data->demosaicing_method; + if(roi_out->width < 16 || roi_out->height < 16) + demosaicing_method = (piece->pipe->dsc.filters == 9u) ? DT_IOP_DEMOSAIC_MARKEST3_VNG : DT_IOP_DEMOSAIC_VNG4; + gboolean showmask = FALSE; if(self->dev->gui_attached && (piece->pipe->type & DT_DEV_PIXELPIPE_FULL)) { dt_iop_demosaic_gui_data_t *g = (dt_iop_demosaic_gui_data_t *)self->gui_data; - showmask = (g->visual_mask); + if(g->visual_mask) + { + showmask = TRUE; + piece->pipe->mask_display = DT_DEV_PIXELPIPE_DISPLAY_MASK; + } // take care of passthru modes if(piece->pipe->mask_display == DT_DEV_PIXELPIPE_DISPLAY_PASSTHRU) demosaicing_method = (piece->pipe->dsc.filters != 9u) ? DT_IOP_DEMOSAIC_RCD : DT_IOP_DEMOSAIC_MARKESTEIJN; @@ -607,7 +638,7 @@ if(qual_flags & DT_DEMOSAIC_FULL_SCALE) { // Full demosaic and then scaling if needed - const int scaled = (roi_out->width != roi_in->width || roi_out->height != roi_in->height); + const gboolean scaled = (roi_out->width != roi_in->width || roi_out->height != roi_in->height); float *tmp = (float *) o; if(scaled) { @@ -697,7 +728,7 @@ } if(piece->pipe->want_detail_mask) - dt_dev_write_rawdetail_mask(piece, tmp, roi_in, TRUE); + dt_dev_write_scharr_mask(piece, tmp, roi_in, TRUE); if((demosaicing_method & DT_DEMOSAIC_DUAL) && !run_fast) { @@ -726,7 +757,7 @@ // this is used for preview pipes, currently there is now writing mask implemented // we just clear the mask data as we might have changed the preview downsampling - dt_dev_clear_rawdetail_mask(piece->pipe); + dt_dev_clear_scharr_mask(piece->pipe); } if(data->color_smoothing) color_smoothing(o, roi_out, data->color_smoothing); @@ -743,17 +774,24 @@ { const gboolean run_fast = piece->pipe->type & DT_DEV_PIXELPIPE_FAST; - dt_dev_clear_rawdetail_mask(piece->pipe); + dt_dev_clear_scharr_mask(piece->pipe); dt_iop_demosaic_data_t *data = (dt_iop_demosaic_data_t *)piece->data; int demosaicing_method = data->demosaicing_method; + if(roi_out->width < 16 || roi_out->height < 16) + demosaicing_method = (piece->pipe->dsc.filters == 9u) ? DT_IOP_DEMOSAIC_MARKEST3_VNG : DT_IOP_DEMOSAIC_VNG4; + gboolean showmask = FALSE; if(self->dev->gui_attached && (piece->pipe->type & DT_DEV_PIXELPIPE_FULL)) { dt_iop_demosaic_gui_data_t *g = (dt_iop_demosaic_gui_data_t *)self->gui_data; - showmask = (g->visual_mask); + if(g->visual_mask) + { + showmask = TRUE; + piece->pipe->mask_display = DT_DEV_PIXELPIPE_DISPLAY_MASK; + } // take care of passthru modes if(piece->pipe->mask_display == DT_DEV_PIXELPIPE_DISPLAY_PASSTHRU) demosaicing_method = (piece->pipe->dsc.filters != 9u) ? DT_IOP_DEMOSAIC_RCD : DT_IOP_DEMOSAIC_MARKESTEIJN; @@ -765,7 +803,7 @@ const gboolean dual = ((demosaicing_method & DT_DEMOSAIC_DUAL) && (qual_flags & DT_DEMOSAIC_FULL_SCALE) && !run_fast); const int devid = piece->pipe->devid; - gboolean retval = FALSE; + int err = DT_OPENCL_DEFAULT_ERROR; if(dual) high_image = dt_opencl_alloc_device(devid, roi_in->width, roi_in->height, sizeof(float) * 4); @@ -774,82 +812,76 @@ demosaicing_method == DT_IOP_DEMOSAIC_PPG || demosaicing_method == DT_IOP_DEMOSAIC_PASSTHROUGH_COLOR ) { - if(!process_default_cl(self, piece, dev_in, dev_out, roi_in, roi_out, demosaicing_method)) - return FALSE; + err = process_default_cl(self, piece, dev_in, dev_out, roi_in, roi_out, demosaicing_method); + if(err != CL_SUCCESS) return err; } else if((demosaicing_method & ~DT_DEMOSAIC_DUAL) == DT_IOP_DEMOSAIC_RCD) { if(dual) { - if(!process_rcd_cl(self, piece, dev_in, high_image, roi_in, roi_in, FALSE)) - goto finish; + err = process_rcd_cl(self, piece, dev_in, high_image, roi_in, roi_in, FALSE); + if(err != CL_SUCCESS) goto finish; } else { - if(!process_rcd_cl(self, piece, dev_in, dev_out, roi_in, roi_out, TRUE)) - return FALSE; + err = process_rcd_cl(self, piece, dev_in, dev_out, roi_in, roi_out, TRUE); + if(err != CL_SUCCESS) return err; } } else if(demosaicing_method == DT_IOP_DEMOSAIC_VNG4 || demosaicing_method == DT_IOP_DEMOSAIC_VNG) { - if(!process_vng_cl(self, piece, dev_in, dev_out, roi_in, roi_out, TRUE, FALSE)) - return FALSE; + err = process_vng_cl(self, piece, dev_in, dev_out, roi_in, roi_out, TRUE, FALSE); + if(err != CL_SUCCESS) return err; } else if((demosaicing_method == DT_IOP_DEMOSAIC_MARKESTEIJN || demosaicing_method == DT_IOP_DEMOSAIC_MARKESTEIJN_3) && !(qual_flags & DT_DEMOSAIC_FULL_SCALE)) { - if(!process_vng_cl(self, piece, dev_in, dev_out, roi_in, roi_out, TRUE, qual_flags & DT_DEMOSAIC_ONLY_VNG_LINEAR)) - return FALSE; + err = process_vng_cl(self, piece, dev_in, dev_out, roi_in, roi_out, TRUE, qual_flags & DT_DEMOSAIC_ONLY_VNG_LINEAR); + if(err != CL_SUCCESS) return err; } else if(((demosaicing_method & ~DT_DEMOSAIC_DUAL) == DT_IOP_DEMOSAIC_MARKESTEIJN ) || ((demosaicing_method & ~DT_DEMOSAIC_DUAL) == DT_IOP_DEMOSAIC_MARKESTEIJN_3)) { if(dual) { - if(!process_markesteijn_cl(self, piece, dev_in, high_image, roi_in, roi_in, FALSE)) - goto finish; + err = process_markesteijn_cl(self, piece, dev_in, high_image, roi_in, roi_in, FALSE); + if(err != CL_SUCCESS) goto finish; } else { - if(!process_markesteijn_cl(self, piece, dev_in, dev_out, roi_in, roi_out, TRUE)) - return FALSE; + err = process_markesteijn_cl(self, piece, dev_in, dev_out, roi_in, roi_out, TRUE); + if(err != CL_SUCCESS) return err; } } else { dt_print(DT_DEBUG_OPENCL, "[opencl_demosaic] demosaicing method %d not yet supported by opencl code\n", demosaicing_method); - return FALSE; + return DT_OPENCL_PROCESS_CL; } - if(!dual) - { - retval = TRUE; - goto finish; - } + if(!dual) goto finish; low_image = dt_opencl_alloc_device(devid, roi_in->width, roi_in->height, sizeof(float) * 4); if(low_image == NULL) goto finish; - if(process_vng_cl(self, piece, dev_in, low_image, roi_in, roi_in, FALSE, FALSE)) + err = process_vng_cl(self, piece, dev_in, low_image, roi_in, roi_in, FALSE, FALSE); + if(err == CL_SUCCESS) { - if(!color_smoothing_cl(self, piece, low_image, low_image, roi_in, 2)) - { - retval = FALSE; - goto finish; - } - retval = dual_demosaic_cl(self, piece, high_image, low_image, high_image, roi_in, showmask); + err = color_smoothing_cl(self, piece, low_image, low_image, roi_in, 2); + if(err != CL_SUCCESS) goto finish; + err = dual_demosaic_cl(self, piece, high_image, low_image, high_image, roi_in, showmask); } + dt_opencl_release_mem_object(low_image); low_image = NULL; - if(dt_iop_clip_and_zoom_roi_cl(devid, dev_out, high_image, roi_out, roi_in) == CL_SUCCESS) - retval = TRUE; + err = dt_iop_clip_and_zoom_roi_cl(devid, dev_out, high_image, roi_out, roi_in); finish: dt_opencl_release_mem_object(high_image); dt_opencl_release_mem_object(low_image); - return retval; + return err; } #endif @@ -998,7 +1030,7 @@ if(bayer && xmethod) use_method = DT_IOP_DEMOSAIC_RCD; if(xtrans && !xmethod) use_method = DT_IOP_DEMOSAIC_MARKESTEIJN; - // we don't have to fully check for available bayer4 modes here as process() takes care of this + // we don't have to fully check for available bayer4 modes here as process() takes care of this if(bayer4) use_method &= ~DT_DEMOSAIC_DUAL; if(use_method == DT_IOP_DEMOSAIC_PASSTHROUGH_MONOCHROME || use_method == DT_IOP_DEMOSAIC_PASSTHR_MONOX) @@ -1075,9 +1107,10 @@ // green-equilibrate over full image excludes tiling - // The details mask is written inside process, this does not allow tiling. + // The details mask calculation required for dual demosaicing does not allow tiling. if((d->green_eq == DT_IOP_GREEN_EQ_FULL || d->green_eq == DT_IOP_GREEN_EQ_BOTH) + || use_method & DT_DEMOSAIC_DUAL || piece->pipe->want_detail_mask) { piece->process_tiling_ready = FALSE; @@ -1148,7 +1181,7 @@ const gboolean bayerpassing = (use_method == DT_IOP_DEMOSAIC_PASSTHROUGH_MONOCHROME) - || (use_method == DT_IOP_DEMOSAIC_PASSTHROUGH_COLOR); + || (use_method == DT_IOP_DEMOSAIC_PASSTHROUGH_COLOR); if(bayer4 && !(bayerpassing || (use_method == DT_IOP_DEMOSAIC_VNG4))) use_method = DT_IOP_DEMOSAIC_VNG4; @@ -1156,7 +1189,7 @@ const gboolean isppg = (use_method == DT_IOP_DEMOSAIC_PPG); const gboolean isdual = (use_method & DT_DEMOSAIC_DUAL) && !bayer4; const gboolean islmmse = (use_method == DT_IOP_DEMOSAIC_LMMSE); - const gboolean passing = + const gboolean passing = bayerpassing || (use_method == DT_IOP_DEMOSAIC_PASSTHR_MONOX) || (use_method == DT_IOP_DEMOSAIC_PASSTHR_COLORX); @@ -1298,4 +1331,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/demosaicing/amaze.cc darktable-4.6.1/src/iop/demosaicing/amaze.cc --- darktable-4.4.2/src/iop/demosaicing/amaze.cc 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/demosaicing/amaze.cc 2024-02-16 17:31:09.000000000 +0000 @@ -139,8 +139,7 @@ int winh = roi_in->height; const int width = winw, height = winh; - const float clip_pt = fminf(piece->pipe->dsc.processed_maximum[0], - fminf(piece->pipe->dsc.processed_maximum[1], piece->pipe->dsc.processed_maximum[2])); + const float clip_pt = dt_iop_get_processed_minimum(piece); const float clip_pt8 = 0.8f * clip_pt; // this allows to pass AMAZETS to the code. On some machines larger AMAZETS is faster @@ -1238,7 +1237,7 @@ + (hvwt[(indx + v1) >> 1]) * Dgrb[0][(indx + v1) >> 1]) * temp, 0.0, 1.0); - + out[(row * roi_out->width + col) * 4 + 2] = _clampnan(rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[1][(indx - v1) >> 1] diff -Nru darktable-4.4.2/src/iop/demosaicing/basics.c darktable-4.6.1/src/iop/demosaicing/basics.c --- darktable-4.4.2/src/iop/demosaicing/basics.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/demosaicing/basics.c 2024-02-16 17:31:09.000000000 +0000 @@ -324,16 +324,13 @@ size_t origin[] = { 0, 0, 0 }; size_t region[] = { width, height, 1 }; err = dt_opencl_enqueue_copy_image(devid, dev_tmp, dev_out, origin, origin, region); - if(err != CL_SUCCESS) goto error; } - dt_opencl_release_mem_object(dev_tmp); - return TRUE; - error: dt_opencl_release_mem_object(dev_tmp); - dt_print(DT_DEBUG_OPENCL, "[opencl_demosaic_color_smoothing] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + if(err != CL_SUCCESS) + dt_print(DT_DEBUG_OPENCL, "[opencl_demosaic_color_smoothing] problem '%s'\n", cl_errstr(err)); + return err; } static int green_equilibration_cl( @@ -359,7 +356,7 @@ cl_mem dev_out2 = NULL; float *sumsum = NULL; - cl_int err = DT_OPENCL_DEFAULT_ERROR; + cl_int err = CL_MEM_OBJECT_ALLOCATION_FAILURE; if(data->green_eq == DT_IOP_GREEN_EQ_BOTH) { @@ -396,7 +393,10 @@ .sizex = 1 << 4, .sizey = 1 << 4 }; if(!dt_opencl_local_buffer_opt(devid, gd->kernel_green_eq_favg_reduce_first, &flocopt)) + { + err = CL_INVALID_WORK_DIMENSION; goto error; + } const size_t bwidth = ROUNDUP(width, flocopt.sizex); const size_t bheight = ROUNDUP(height, flocopt.sizey); @@ -421,12 +421,19 @@ .sizex = 1 << 16, .sizey = 1 }; if(!dt_opencl_local_buffer_opt(devid, gd->kernel_green_eq_favg_reduce_second, &slocopt)) + { + err = CL_INVALID_WORK_DIMENSION; goto error; + } const int reducesize = MIN(DT_REDUCESIZE_MIN, ROUNDUP(bufsize, slocopt.sizex) / slocopt.sizex); dev_r = dt_opencl_alloc_device_buffer(devid, sizeof(float) * 2 * reducesize); - if(dev_r == NULL) goto error; + if(dev_r == NULL) + { + err = CL_MEM_OBJECT_ALLOCATION_FAILURE; + goto error; + } size_t ssizes[3] = { (size_t)reducesize * slocopt.sizex, 1, 1 }; size_t slocal[3] = { slocopt.sizex, 1, 1 }; @@ -437,7 +444,12 @@ if(err != CL_SUCCESS) goto error; sumsum = dt_alloc_align_float((size_t)2 * reducesize); - if(sumsum == NULL) goto error; + if(sumsum == NULL) + { + err = DT_OPENCL_SYSMEM_ALLOCATION; + goto error; + } + err = dt_opencl_read_buffer_from_device(devid, (void *)sumsum, dev_r, 0, sizeof(float) * 2 * reducesize, CL_TRUE); if(err != CL_SUCCESS) goto error; @@ -468,7 +480,10 @@ .sizex = 1 << 8, .sizey = 1 << 8 }; if(!dt_opencl_local_buffer_opt(devid, gd->kernel_green_eq_lavg, &locopt)) + { + err = CL_INVALID_WORK_DIMENSION; goto error; + } size_t sizes[3] = { ROUNDUP(width, locopt.sizex), ROUNDUP(height, locopt.sizey), 1 }; size_t local[3] = { locopt.sizex, locopt.sizey, 1 }; @@ -479,19 +494,14 @@ if(err != CL_SUCCESS) goto error; } - dt_opencl_release_mem_object(dev_tmp); - dt_opencl_release_mem_object(dev_m); - dt_opencl_release_mem_object(dev_r); - dt_free_align(sumsum); - return TRUE; - error: dt_opencl_release_mem_object(dev_tmp); dt_opencl_release_mem_object(dev_m); dt_opencl_release_mem_object(dev_r); dt_free_align(sumsum); - dt_print(DT_DEBUG_OPENCL, "[opencl_demosaic_green_equilibration] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + if(err != CL_SUCCESS) + dt_print(DT_DEBUG_OPENCL, "[opencl_demosaic_green_equilibration] problem '%s'\n", cl_errstr(err)); + return err; } static int process_default_cl( @@ -514,7 +524,7 @@ cl_mem dev_tmp = NULL; cl_mem dev_med = NULL; cl_mem dev_green_eq = NULL; - cl_int err = DT_OPENCL_DEFAULT_ERROR; + cl_int err = CL_MEM_OBJECT_ALLOCATION_FAILURE; if(qual_flags & DT_DEMOSAIC_FULL_SCALE) { @@ -530,13 +540,14 @@ dev_green_eq = dt_opencl_alloc_device(devid, roi_in->width, roi_in->height, sizeof(float)); if(dev_green_eq == NULL) goto error; - if(!green_equilibration_cl(self, piece, dev_in, dev_green_eq, roi_in)) - goto error; + err = green_equilibration_cl(self, piece, dev_in, dev_green_eq, roi_in); + if(err != CL_SUCCESS) goto error; dev_in = dev_green_eq; } // need to reserve scaled auxiliary buffer or use dev_out + err = CL_MEM_OBJECT_ALLOCATION_FAILURE; if(scaled) { dev_aux = dt_opencl_alloc_device(devid, roi_in->width, roi_in->height, sizeof(float) * 4); @@ -580,7 +591,11 @@ if(data->median_thrs > 0.0f) { dev_med = dt_opencl_alloc_device(devid, roi_in->width, roi_in->height, sizeof(float) * 4); - if(dev_med == NULL) goto error; + if(dev_med == NULL) + { + err = CL_MEM_OBJECT_ALLOCATION_FAILURE; + goto error; + } dt_opencl_local_buffer_t locopt = (dt_opencl_local_buffer_t){ .xoffset = 2*2, .xfactor = 1, .yoffset = 2*2, .yfactor = 1, @@ -588,7 +603,10 @@ .sizex = 1 << 8, .sizey = 1 << 8 }; if(!dt_opencl_local_buffer_opt(devid, gd->kernel_pre_median, &locopt)) - goto error; + { + err = CL_INVALID_WORK_DIMENSION; + goto error; + } size_t sizes[3] = { ROUNDUP(width, locopt.sizex), ROUNDUP(height, locopt.sizey), 1 }; size_t local[3] = { locopt.sizex, locopt.sizey, 1 }; @@ -607,7 +625,10 @@ .sizex = 1 << 8, .sizey = 1 << 8 }; if(!dt_opencl_local_buffer_opt(devid, gd->kernel_ppg_green, &locopt)) - goto error; + { + err = CL_INVALID_WORK_DIMENSION; + goto error; + } size_t sizes[3] = { ROUNDUP(width, locopt.sizex), ROUNDUP(height, locopt.sizey), 1 }; size_t local[3] = { locopt.sizex, locopt.sizey, 1 }; @@ -625,7 +646,10 @@ .sizex = 1 << 8, .sizey = 1 << 8 }; if(!dt_opencl_local_buffer_opt(devid, gd->kernel_ppg_redblue, &locopt)) - goto error; + { + err = CL_INVALID_WORK_DIMENSION; + goto error; + } size_t sizes[3] = { ROUNDUP(width, locopt.sizex), ROUNDUP(height, locopt.sizey), 1 }; size_t local[3] = { locopt.sizex, locopt.sizey, 1 }; @@ -638,14 +662,14 @@ } if(piece->pipe->want_detail_mask) - dt_dev_write_rawdetail_mask_cl(piece, dev_aux, roi_in, TRUE); + err = dt_dev_write_scharr_mask_cl(piece, dev_aux, roi_in, TRUE); + if(err != CL_SUCCESS) goto error; if(scaled) { dt_print_pipe(DT_DEBUG_PIPE, "clip_and_zoom_roi_cl", piece->pipe, self, roi_in, roi_out, "\n"); // scale aux buffer to output buffer err = dt_iop_clip_and_zoom_roi_cl(devid, dev_out, dev_aux, roi_out, roi_in); - if(err != CL_SUCCESS) goto error; } } else @@ -654,52 +678,32 @@ { // sample image: const int zero = 0; - cl_mem dev_pix = dev_in; - const int width = roi_out->width; - const int height = roi_out->height; - - err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_zoom_passthrough_monochrome, width, height, - CLARG(dev_pix), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(zero), CLARG(zero), CLARG(roi_in->width), + err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_zoom_passthrough_monochrome, roi_out->width, roi_out->height, + CLARG(dev_in), CLARG(dev_out), CLARG(roi_out->width), CLARG(roi_out->height), CLARG(zero), CLARG(zero), CLARG(roi_in->width), CLARG(roi_in->height), CLARG(roi_out->scale), CLARG(piece->pipe->dsc.filters)); - if(err != CL_SUCCESS) goto error; } else { // sample half-size image: const int zero = 0; - cl_mem dev_pix = dev_in; - const int width = roi_out->width; - const int height = roi_out->height; - - err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_zoom_half_size, width, height, - CLARG(dev_pix), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(zero), CLARG(zero), CLARG(roi_in->width), + err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_zoom_half_size, roi_out->width, roi_out->height, + CLARG(dev_in), CLARG(dev_out), CLARG(roi_out->width), CLARG(roi_out->height), CLARG(zero), CLARG(zero), CLARG(roi_in->width), CLARG(roi_in->height), CLARG(roi_out->scale), CLARG(piece->pipe->dsc.filters)); - if(err != CL_SUCCESS) goto error; } } +error: if(dev_aux != dev_out) dt_opencl_release_mem_object(dev_aux); if(dev_med != dev_in) dt_opencl_release_mem_object(dev_med); dt_opencl_release_mem_object(dev_green_eq); dt_opencl_release_mem_object(dev_tmp); - dev_aux = dev_green_eq = dev_tmp = dev_med = NULL; - // color smoothing - if(data->color_smoothing) - { - if(!color_smoothing_cl(self, piece, dev_out, dev_out, roi_out, data->color_smoothing)) - goto error; - } + if(data->color_smoothing && err == CL_SUCCESS) + err = color_smoothing_cl(self, piece, dev_out, dev_out, roi_out, data->color_smoothing); - return TRUE; - -error: - if(dev_aux != dev_out) dt_opencl_release_mem_object(dev_aux); - if(dev_med != dev_in) dt_opencl_release_mem_object(dev_med); - dt_opencl_release_mem_object(dev_green_eq); - dt_opencl_release_mem_object(dev_tmp); - dt_print(DT_DEBUG_OPENCL, "[opencl_demosaic] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + if(err != CL_SUCCESS) + dt_print(DT_DEBUG_OPENCL, "[opencl_demosaic] basic kernel problem '%s'\n", cl_errstr(err)); + return err; } #endif diff -Nru darktable-4.4.2/src/iop/demosaicing/dual.c darktable-4.6.1/src/iop/demosaicing/dual.c --- darktable-4.4.2/src/iop/demosaicing/dual.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/demosaicing/dual.c 2024-02-16 17:31:09.000000000 +0000 @@ -30,7 +30,7 @@ } static void dual_demosaic( dt_dev_pixelpipe_iop_t *piece, - float *const restrict rgb_data, + float *const restrict high_data, const float *const restrict raw_data, dt_iop_roi_t *const roi_out, const dt_iop_roi_t *const roi_in, @@ -39,58 +39,54 @@ const gboolean dual_mask, const float dual_threshold) { - const int width = roi_in->width; - const int height = roi_in->height; - if((width < 16) || (height < 16)) return; + if((roi_in->width < 16) || (roi_in->height < 16)) return; // If the threshold is zero and we don't want to see the blend mask we don't do anything if(dual_threshold <= 0.0f) return; - float *blend = dt_alloc_align_float((size_t) width * height); - float *vng_image = dt_alloc_align_float((size_t) 4 * width * height); - if(!blend || !vng_image) - { - if(blend) dt_free_align(blend); - if(vng_image) dt_free_align(vng_image); - dt_control_log(_("[dual demosaic] can't allocate internal buffers")); - return; - } + const size_t msize = roi_in->width * roi_in->height; + float *vng_image = NULL; const float contrastf = slider2contrast(dual_threshold); - if(dt_masks_calc_detail_mask(&piece->pipe->details, blend, contrastf, TRUE)) - return; + + float *mask = dt_masks_calc_detail_mask(piece, contrastf, TRUE); + if(!mask) goto error; if(dual_mask) { - piece->pipe->mask_display = DT_DEV_PIXELPIPE_DISPLAY_PASSTHRU; #ifdef _OPENMP #pragma omp parallel for simd default(none) \ - dt_omp_firstprivate(blend, rgb_data, width, height) \ - schedule(simd:static) aligned(blend, rgb_data : 64) + dt_omp_firstprivate(mask, high_data, msize) \ + schedule(simd:static) aligned(mask, high_data : 64) #endif - for(int idx = 0; idx < width * height; idx++) - { - for(int c = 0; c < 4; c++) - rgb_data[idx * 4 + c] = blend[idx]; - } + for(int idx = 0; idx < msize; idx++) + high_data[idx * 4 + 3] = mask[idx]; } else { + vng_image = dt_alloc_align_float((size_t) 4 * msize); + if(!vng_image) goto error; + vng_interpolate(vng_image, raw_data, roi_out, roi_in, filters, xtrans, FALSE); color_smoothing(vng_image, roi_out, 2); + #ifdef _OPENMP #pragma omp parallel for simd default(none) \ - dt_omp_firstprivate(blend, rgb_data, vng_image, width, height) \ - schedule(simd:static) aligned(blend, vng_image, rgb_data : 64) + dt_omp_firstprivate(mask, high_data, vng_image, msize) \ + schedule(simd:static) aligned(mask, vng_image, high_data : 64) #endif - for(int idx = 0; idx < width * height; idx++) + for(int idx = 0; idx < msize; idx++) { const int oidx = 4 * idx; - for(int c = 0; c < 4; c++) - rgb_data[oidx + c] = interpolatef(blend[idx], rgb_data[oidx + c], vng_image[oidx + c]); + for(int c = 0; c < 3; c++) + high_data[oidx + c] = interpolatef(mask[idx], high_data[oidx + c], vng_image[oidx + c]); + high_data[oidx + 3] = 0.0f; } } - dt_free_align(blend); + + error: + + dt_free_align(mask); dt_free_align(vng_image); } @@ -102,58 +98,48 @@ cl_mem low_image, cl_mem out, const dt_iop_roi_t *const roi_in, - const int showmask) + const int dual_mask) { const int devid = piece->pipe->devid; const int width = roi_in->width; const int height = roi_in->height; + const int clwidth = ROUNDUPDWD(width, devid); + const int clheight = ROUNDUPDHT(height, devid); dt_iop_demosaic_data_t *data = (dt_iop_demosaic_data_t *)piece->data; dt_iop_demosaic_global_data_t *gd = (dt_iop_demosaic_global_data_t *)self->global_data; const float contrastf = slider2contrast(data->dual_thrs); - if(showmask) - piece->pipe->mask_display = DT_DEV_PIXELPIPE_DISPLAY_PASSTHRU; cl_int err = CL_SUCCESS; cl_mem dev_blurmat = NULL; - cl_mem mask = NULL; - cl_mem scharr = dt_opencl_alloc_device(devid, width, height, sizeof(float)); + cl_mem mask = dt_opencl_alloc_device_buffer(devid, width * height * sizeof(float)); cl_mem tmp = dt_opencl_alloc_device_buffer(devid, width * height * sizeof(float)); - err = dt_opencl_write_host_to_device(devid, piece->pipe->details.data, scharr, width, height, sizeof(float)); + err = dt_opencl_write_buffer_to_device(devid, piece->pipe->scharr.data, tmp, 0, sizeof(float) * width * height, TRUE); if(err != CL_SUCCESS) goto finish; - err = dt_opencl_enqueue_kernel_2d_args(devid, darktable.opencl->blendop->kernel_read_mask, width, height, - CLARG(tmp), CLARG(scharr), CLARG(width), CLARG(height)); - if(err != CL_SUCCESS) goto finish; - - dt_opencl_release_mem_object(scharr); - scharr = NULL; - - mask = dt_opencl_alloc_device_buffer(devid, width * height * sizeof(float)); const int flag = 1; - err = dt_opencl_enqueue_kernel_2d_args(devid, darktable.opencl->blendop->kernel_calc_blend, width, height, + err = dt_opencl_enqueue_kernel_2d_args(devid, darktable.opencl->blendop->kernel_calc_blend, clwidth, clheight, CLARG(tmp), CLARG(mask), CLARG(width), CLARG(height), CLARG(contrastf), CLARG(flag)); if(err != CL_SUCCESS) goto finish; float blurmat[13]; - dt_masks_blur_9x9_coeff(blurmat, 2.0f); + dt_masks_blur_coeff(blurmat, 2.0f); dev_blurmat = dt_opencl_copy_host_to_device_constant(devid, sizeof(blurmat), blurmat); - err = dt_opencl_enqueue_kernel_2d_args(devid, darktable.opencl->blendop->kernel_mask_blur, width, height, + err = dt_opencl_enqueue_kernel_2d_args(devid, darktable.opencl->blendop->kernel_mask_blur, clwidth, clheight, CLARG(mask), CLARG(tmp), CLARG(width), CLARG(height), CLARG(dev_blurmat)); if(err != CL_SUCCESS) goto finish; - err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_write_blended_dual, width, height, - CLARG(high_image), CLARG(low_image), CLARG(out), CLARG(width), CLARG(height), CLARG(tmp), CLARG(showmask)); + err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_write_blended_dual, clwidth, clheight, + CLARG(high_image), CLARG(low_image), CLARG(out), CLARG(width), CLARG(height), CLARG(tmp), CLARG(dual_mask)); finish: - dt_opencl_release_mem_object(scharr); dt_opencl_release_mem_object(mask); dt_opencl_release_mem_object(tmp); dt_opencl_release_mem_object(dev_blurmat); - return (err == CL_SUCCESS); + return err; } #endif @@ -162,4 +148,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/demosaicing/lmmse.c darktable-4.6.1/src/iop/demosaicing/lmmse.c --- darktable-4.4.2/src/iop/demosaicing/lmmse.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/demosaicing/lmmse.c 2024-02-16 17:31:09.000000000 +0000 @@ -104,49 +104,6 @@ return fmaxf(fminf(x0,x1), fminf(x2, fmaxf(x0,x1))); } -static inline float _median9f(float a0, float a1, float a2, float a3, float a4, float a5, float a6, float a7, float a8) -{ - float tmp; - tmp = fminf(a1, a2); - a2 = fmaxf(a1, a2); - a1 = tmp; - tmp = fminf(a4, a5); - a5 = fmaxf(a4, a5); - a4 = tmp; - tmp = fminf(a7, a8); - a8 = fmaxf(a7, a8); - a7 = tmp; - tmp = fminf(a0, a1); - a1 = fmaxf(a0, a1); - a0 = tmp; - tmp = fminf(a3, a4); - a4 = fmaxf(a3, a4); - a3 = tmp; - tmp = fminf(a6, a7); - a7 = fmaxf(a6, a7); - a6 = tmp; - tmp = fminf(a1, a2); - a2 = fmaxf(a1, a2); - a1 = tmp; - tmp = fminf(a4, a5); - a5 = fminf(a4, a5); - a4 = tmp; - tmp = fminf(a7, a8); - a8 = fmaxf(a7, a8); - a3 = fmaxf(a0, a3); - a5 = fminf(a5, a8); - a7 = fmaxf(a4, tmp); - tmp = fminf(a4, tmp); - a6 = fmaxf(a3, a6); - a4 = fmaxf(a1, tmp); - a2 = fminf(a2, a5); - a4 = fminf(a4, a7); - tmp = fminf(a4, a2); - a2 = fmaxf(a4, a2); - a4 = fmaxf(a6, tmp); - return fminf(a4, a2); -} - static inline float _calc_gamma(float val, float *table) { if(table == NULL) return val; @@ -199,10 +156,7 @@ // refinement steps const int refine = (mode > 2) ? mode - 2 : 0; - const float scaler = fmaxf(1.0f, - fmaxf(piece->pipe->dsc.processed_maximum[0], - fmaxf(piece->pipe->dsc.processed_maximum[1], - piece->pipe->dsc.processed_maximum[2]))); + const float scaler = dt_iop_get_processed_maximum(piece); const float revscaler = 1.0f / scaler; const int num_vertical = 1 + (height - 2 * LMMSE_OVERLAP -1) / LMMSE_TILEVALID; @@ -438,15 +392,17 @@ float *colc = qix[c] + rr * DT_LMMSE_TILESIZE + cc; float *col1 = qix[1] + rr * DT_LMMSE_TILESIZE + cc; // Assign 3x3 differential color values - corr[0] = _median9f(colc[-w1-1] - col1[-w1-1], - colc[-w1 ] - col1[-w1 ], - colc[-w1+1] - col1[-w1+1], - colc[ -1] - col1[ -1], - colc[ 0] - col1[ 0], - colc[ 1] - col1[ 1], - colc[ w1-1] - col1[ w1-1], - colc[ w1 ] - col1[ w1 ], - colc[ w1+1] - col1[ w1+1]); + const float p[9] __attribute__((aligned(16))) = + { colc[-w1-1] - col1[-w1-1], + colc[-w1 ] - col1[-w1 ], + colc[-w1+1] - col1[-w1+1], + colc[ -1] - col1[ -1], + colc[ 0] - col1[ 0], + colc[ 1] - col1[ 1], + colc[ w1-1] - col1[ w1-1], + colc[ w1 ] - col1[ w1 ], + colc[ w1+1] - col1[ w1+1]}; + corr[0] = median9f(p); } } } diff -Nru darktable-4.4.2/src/iop/demosaicing/rcd.c darktable-4.6.1/src/iop/demosaicing/rcd.c --- darktable-4.4.2/src/iop/demosaicing/rcd.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/demosaicing/rcd.c 2024-02-16 17:31:09.000000000 +0000 @@ -301,7 +301,7 @@ rcd_ppg_border(out, in, width, height, filters, RCD_MARGIN); - const float scaler = fmaxf(piece->pipe->dsc.processed_maximum[0], fmaxf(piece->pipe->dsc.processed_maximum[1], piece->pipe->dsc.processed_maximum[2])); + const float scaler = dt_iop_get_processed_maximum(piece); const float revscaler = 1.0f / scaler; const int num_vertical = 1 + (height - 2 * RCD_BORDER -1) / RCD_TILEVALID; @@ -420,10 +420,10 @@ const float cfai = cfa[indx]; // Cardinal gradients - const float N_Grad = eps + fabs(cfa[indx - w1] - cfa[indx + w1]) + fabs(cfai - cfa[indx - w2]) + fabs(cfa[indx - w1] - cfa[indx - w3]) + fabs(cfa[indx - w2] - cfa[indx - w4]); - const float S_Grad = eps + fabs(cfa[indx - w1] - cfa[indx + w1]) + fabs(cfai - cfa[indx + w2]) + fabs(cfa[indx + w1] - cfa[indx + w3]) + fabs(cfa[indx + w2] - cfa[indx + w4]); - const float W_Grad = eps + fabs(cfa[indx - 1] - cfa[indx + 1]) + fabs(cfai - cfa[indx - 2]) + fabs(cfa[indx - 1] - cfa[indx - 3]) + fabs(cfa[indx - 2] - cfa[indx - 4]); - const float E_Grad = eps + fabs(cfa[indx - 1] - cfa[indx + 1]) + fabs(cfai - cfa[indx + 2]) + fabs(cfa[indx + 1] - cfa[indx + 3]) + fabs(cfa[indx + 2] - cfa[indx + 4]); + const float N_Grad = eps + fabsf(cfa[indx - w1] - cfa[indx + w1]) + fabsf(cfai - cfa[indx - w2]) + fabsf(cfa[indx - w1] - cfa[indx - w3]) + fabsf(cfa[indx - w2] - cfa[indx - w4]); + const float S_Grad = eps + fabsf(cfa[indx - w1] - cfa[indx + w1]) + fabsf(cfai - cfa[indx + w2]) + fabsf(cfa[indx + w1] - cfa[indx + w3]) + fabsf(cfa[indx + w2] - cfa[indx + w4]); + const float W_Grad = eps + fabsf(cfa[indx - 1] - cfa[indx + 1]) + fabsf(cfai - cfa[indx - 2]) + fabsf(cfa[indx - 1] - cfa[indx - 3]) + fabsf(cfa[indx - 2] - cfa[indx - 4]); + const float E_Grad = eps + fabsf(cfa[indx - 1] - cfa[indx + 1]) + fabsf(cfai - cfa[indx + 2]) + fabsf(cfa[indx + 1] - cfa[indx + 3]) + fabsf(cfa[indx + 2] - cfa[indx + 4]); // Cardinal pixel estimations const float lpfi = lpf[lpindx]; @@ -440,7 +440,7 @@ // Refined vertical and horizontal local discrimination const float VH_Central_Value = VH_Dir[indx]; const float VH_Neighbourhood_Value = 0.25f * (VH_Dir[indx - w1 - 1] + VH_Dir[indx - w1 + 1] + VH_Dir[indx + w1 - 1] + VH_Dir[indx + w1 + 1]); - const float VH_Disc = (fabs(0.5f - VH_Central_Value) < fabs(0.5f - VH_Neighbourhood_Value)) ? VH_Neighbourhood_Value : VH_Central_Value; + const float VH_Disc = (fabsf(0.5f - VH_Central_Value) < fabsf(0.5f - VH_Neighbourhood_Value)) ? VH_Neighbourhood_Value : VH_Central_Value; rgb[1][indx] = interpolatef(VH_Disc, H_Est, V_Est); } @@ -477,13 +477,13 @@ const float PQ_Central_Value = PQ_Dir[pqindx]; const float PQ_Neighbourhood_Value = 0.25f * (PQ_Dir[pqindx2] + PQ_Dir[pqindx2 + 1] + PQ_Dir[pqindx3] + PQ_Dir[pqindx3 + 1]); - const float PQ_Disc = (fabs(0.5f - PQ_Central_Value) < fabs(0.5f - PQ_Neighbourhood_Value)) ? PQ_Neighbourhood_Value : PQ_Central_Value; + const float PQ_Disc = (fabsf(0.5f - PQ_Central_Value) < fabsf(0.5f - PQ_Neighbourhood_Value)) ? PQ_Neighbourhood_Value : PQ_Central_Value; // Diagonal gradients - const float NW_Grad = eps + fabs(rgb[c][indx - w1 - 1] - rgb[c][indx + w1 + 1]) + fabs(rgb[c][indx - w1 - 1] - rgb[c][indx - w3 - 3]) + fabs(rgb[1][indx] - rgb[1][indx - w2 - 2]); - const float NE_Grad = eps + fabs(rgb[c][indx - w1 + 1] - rgb[c][indx + w1 - 1]) + fabs(rgb[c][indx - w1 + 1] - rgb[c][indx - w3 + 3]) + fabs(rgb[1][indx] - rgb[1][indx - w2 + 2]); - const float SW_Grad = eps + fabs(rgb[c][indx - w1 + 1] - rgb[c][indx + w1 - 1]) + fabs(rgb[c][indx + w1 - 1] - rgb[c][indx + w3 - 3]) + fabs(rgb[1][indx] - rgb[1][indx + w2 - 2]); - const float SE_Grad = eps + fabs(rgb[c][indx - w1 - 1] - rgb[c][indx + w1 + 1]) + fabs(rgb[c][indx + w1 + 1] - rgb[c][indx + w3 + 3]) + fabs(rgb[1][indx] - rgb[1][indx + w2 + 2]); + const float NW_Grad = eps + fabsf(rgb[c][indx - w1 - 1] - rgb[c][indx + w1 + 1]) + fabsf(rgb[c][indx - w1 - 1] - rgb[c][indx - w3 - 3]) + fabsf(rgb[1][indx] - rgb[1][indx - w2 - 2]); + const float NE_Grad = eps + fabsf(rgb[c][indx - w1 + 1] - rgb[c][indx + w1 - 1]) + fabsf(rgb[c][indx - w1 + 1] - rgb[c][indx - w3 + 3]) + fabsf(rgb[1][indx] - rgb[1][indx - w2 + 2]); + const float SW_Grad = eps + fabsf(rgb[c][indx - w1 + 1] - rgb[c][indx + w1 - 1]) + fabsf(rgb[c][indx + w1 - 1] - rgb[c][indx + w3 - 3]) + fabsf(rgb[1][indx] - rgb[1][indx + w2 - 2]); + const float SE_Grad = eps + fabsf(rgb[c][indx - w1 - 1] - rgb[c][indx + w1 + 1]) + fabsf(rgb[c][indx + w1 + 1] - rgb[c][indx + w3 + 3]) + fabsf(rgb[1][indx] - rgb[1][indx + w2 + 2]); // Diagonal colour differences const float NW_Est = rgb[c][indx - w1 - 1] - rgb[1][indx - w1 - 1]; @@ -508,12 +508,12 @@ // Refined vertical and horizontal local discrimination const float VH_Central_Value = VH_Dir[indx]; const float VH_Neighbourhood_Value = 0.25f * (VH_Dir[indx - w1 - 1] + VH_Dir[indx - w1 + 1] + VH_Dir[indx + w1 - 1] + VH_Dir[indx + w1 + 1]); - const float VH_Disc = (fabs(0.5f - VH_Central_Value) < fabs(0.5f - VH_Neighbourhood_Value) ) ? VH_Neighbourhood_Value : VH_Central_Value; + const float VH_Disc = (fabsf(0.5f - VH_Central_Value) < fabsf(0.5f - VH_Neighbourhood_Value) ) ? VH_Neighbourhood_Value : VH_Central_Value; const float rgb1 = rgb[1][indx]; - const float N1 = eps + fabs(rgb1 - rgb[1][indx - w2]); - const float S1 = eps + fabs(rgb1 - rgb[1][indx + w2]); - const float W1 = eps + fabs(rgb1 - rgb[1][indx - 2]); - const float E1 = eps + fabs(rgb1 - rgb[1][indx + 2]); + const float N1 = eps + fabsf(rgb1 - rgb[1][indx - w2]); + const float S1 = eps + fabsf(rgb1 - rgb[1][indx + w2]); + const float W1 = eps + fabsf(rgb1 - rgb[1][indx - 2]); + const float E1 = eps + fabsf(rgb1 - rgb[1][indx + 2]); const float rgb1mw1 = rgb[1][indx - w1]; const float rgb1pw1 = rgb[1][indx + w1]; @@ -526,10 +526,10 @@ const float EWabs = fabs(rgb[c][indx - 1] - rgb[c][indx + 1]); // Cardinal gradients - const float N_Grad = N1 + SNabs + fabs(rgb[c][indx - w1] - rgb[c][indx - w3]); - const float S_Grad = S1 + SNabs + fabs(rgb[c][indx + w1] - rgb[c][indx + w3]); - const float W_Grad = W1 + EWabs + fabs(rgb[c][indx - 1] - rgb[c][indx - 3]); - const float E_Grad = E1 + EWabs + fabs(rgb[c][indx + 1] - rgb[c][indx + 3]); + const float N_Grad = N1 + SNabs + fabsf(rgb[c][indx - w1] - rgb[c][indx - w3]); + const float S_Grad = S1 + SNabs + fabsf(rgb[c][indx + w1] - rgb[c][indx + w3]); + const float W_Grad = W1 + EWabs + fabsf(rgb[c][indx - 1] - rgb[c][indx - 3]); + const float E_Grad = E1 + EWabs + fabsf(rgb[c][indx + 1] - rgb[c][indx + 3]); // Cardinal colour differences const float N_Est = rgb[c][indx - w1] - rgb1mw1; @@ -622,7 +622,8 @@ { dev_green_eq = dt_opencl_alloc_device(devid, roi_in->width, roi_in->height, sizeof(float)); if(dev_green_eq == NULL) goto error; - if(!green_equilibration_cl(self, piece, dev_in, dev_green_eq, roi_in)) goto error; + err = green_equilibration_cl(self, piece, dev_in, dev_green_eq, roi_in); + if(err != CL_SUCCESS) goto error; dev_in = dev_green_eq; } @@ -702,7 +703,7 @@ { // populate data - const float scaler = 1.0f / fmaxf(piece->pipe->dsc.processed_maximum[0], fmaxf(piece->pipe->dsc.processed_maximum[1], piece->pipe->dsc.processed_maximum[2])); + const float scaler = 1.0f / dt_iop_get_processed_maximum(piece); err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_rcd_populate, width, height, CLARG(dev_in), CLARG(cfa), CLARG(rgb0), CLARG(rgb1), CLARG(rgb2), CLARG(width), CLARG(height), CLARG(piece->pipe->dsc.filters), CLARG(scaler)); @@ -764,8 +765,7 @@ CLARG(VH_dir), CLARG(rgb0), CLARG(rgb1), CLARG(rgb2), CLARG(width), CLARG(height), CLARG(piece->pipe->dsc.filters)); if(err != CL_SUCCESS) goto error; } - const float scaler = fmaxf(piece->pipe->dsc.processed_maximum[0], fmaxf(piece->pipe->dsc.processed_maximum[1], piece->pipe->dsc.processed_maximum[2])); - + const float scaler = dt_iop_get_processed_maximum(piece); { // write output const int myborder = RCD_MARGIN; @@ -787,14 +787,14 @@ dev_green_eq = cfa = rgb0 = rgb1 = rgb2 = VH_dir = PQ_dir = VP_diff = HQ_diff = NULL; if(piece->pipe->want_detail_mask) - dt_dev_write_rawdetail_mask_cl(piece, dev_aux, roi_in, TRUE); + err = dt_dev_write_scharr_mask_cl(piece, dev_aux, roi_in, TRUE); + if(err != CL_SUCCESS) goto error; if(scaled) { dt_print_pipe(DT_DEBUG_PIPE, "clip_and_zoom_roi_cl", piece->pipe, self, roi_in, roi_out, "\n"); // scale aux buffer to output buffer err = dt_iop_clip_and_zoom_roi_cl(devid, dev_out, dev_aux, roi_out, roi_in); - if(err != CL_SUCCESS) goto error; } } else @@ -808,7 +808,6 @@ err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_zoom_half_size, width, height, CLARG(dev_pix), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(zero), CLARG(zero), CLARG(roi_in->width), CLARG(roi_in->height), CLARG(roi_out->scale), CLARG(piece->pipe->dsc.filters)); - if(err != CL_SUCCESS) goto error; } if(dev_aux != dev_out) dt_opencl_release_mem_object(dev_aux); @@ -816,12 +815,7 @@ // color smoothing if((data->color_smoothing) && smooth) - { - if(!color_smoothing_cl(self, piece, dev_out, dev_out, roi_out, data->color_smoothing)) - goto error; - } - - return TRUE; + err = color_smoothing_cl(self, piece, dev_out, dev_out, roi_out, data->color_smoothing); error: if(dev_aux != dev_out) dt_opencl_release_mem_object(dev_aux); @@ -835,9 +829,10 @@ dt_opencl_release_mem_object(PQ_dir); dt_opencl_release_mem_object(VP_diff); dt_opencl_release_mem_object(HQ_diff); - dev_aux = dev_green_eq = dev_tmp = cfa = rgb0 = rgb1 = rgb2 = VH_dir = PQ_dir = VP_diff = HQ_diff = NULL; - dt_print(DT_DEBUG_OPENCL, "[opencl_demosaic] rcd couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + + if(err != CL_SUCCESS) + dt_print(DT_DEBUG_OPENCL, "[opencl_demosaic] rcd problem '%s'\n", cl_errstr(err)); + return err; } #endif @@ -857,4 +852,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/demosaicing/vng.c darktable-4.6.1/src/iop/demosaicing/vng.c --- darktable-4.4.2/src/iop/demosaicing/vng.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/demosaicing/vng.c 2024-02-16 17:31:09.000000000 +0000 @@ -381,7 +381,7 @@ cl_mem dev_code = NULL; cl_mem dev_ips = NULL; cl_mem dev_green_eq = NULL; - cl_int err = DT_OPENCL_DEFAULT_ERROR; + cl_int err = CL_MEM_OBJECT_ALLOCATION_FAILURE; int32_t(*lookup)[16][32] = NULL; @@ -389,7 +389,7 @@ { dev_xtrans = dt_opencl_copy_host_to_device_constant(devid, sizeof(piece->pipe->dsc.xtrans), piece->pipe->dsc.xtrans); - if(dev_xtrans == NULL) goto error; + if(dev_xtrans == NULL) goto finish; } if(qual_flags & DT_DEMOSAIC_FULL_SCALE) @@ -514,22 +514,23 @@ dev_lookup = dt_opencl_copy_host_to_device_constant(devid, lookup_size, lookup); - if(dev_lookup == NULL) goto error; + if(dev_lookup == NULL) goto finish; dev_code = dt_opencl_copy_host_to_device_constant(devid, sizeof(code), code); - if(dev_code == NULL) goto error; + if(dev_code == NULL) goto finish; dev_ips = dt_opencl_copy_host_to_device_constant(devid, ips_size, ips); - if(dev_ips == NULL) goto error; + if(dev_ips == NULL) goto finish; // green equilibration for Bayer sensors if(piece->pipe->dsc.filters != 9u && data->green_eq != DT_IOP_GREEN_EQ_NO) { dev_green_eq = dt_opencl_alloc_device(devid, roi_in->width, roi_in->height, sizeof(float)); - if(dev_green_eq == NULL) goto error; + if(dev_green_eq == NULL) goto finish; - if(!green_equilibration_cl(self, piece, dev_in, dev_green_eq, roi_in)) - goto error; + err = green_equilibration_cl(self, piece, dev_in, dev_green_eq, roi_in); + if(err != CL_SUCCESS) + goto finish; dev_in = dev_green_eq; } @@ -538,10 +539,11 @@ int height = roi_out->height; // need to reserve scaled auxiliary buffer or use dev_out + err = CL_MEM_OBJECT_ALLOCATION_FAILURE; if(scaled) { dev_aux = dt_opencl_alloc_device(devid, roi_in->width, roi_in->height, sizeof(float) * 4); - if(dev_aux == NULL) goto error; + if(dev_aux == NULL) goto finish; width = roi_in->width; height = roi_in->height; } @@ -549,7 +551,7 @@ dev_aux = dev_out; dev_tmp = dt_opencl_alloc_device(devid, roi_in->width, roi_in->height, sizeof(float) * 4); - if(dev_tmp == NULL) goto error; + if(dev_tmp == NULL) goto finish; { // manage borders for linear interpolation part @@ -558,7 +560,7 @@ err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_vng_border_interpolate, width, height, CLARG(dev_in), CLARG(dev_tmp), CLARG(width), CLARG(height), CLARG(border), CLARG(roi_in->x), CLARG(roi_in->y), CLARG(filters4), CLARG(dev_xtrans)); - if(err != CL_SUCCESS) goto error; + if(err != CL_SUCCESS) goto finish; } { @@ -569,14 +571,17 @@ .sizex = 1 << 8, .sizey = 1 << 8 }; if(!dt_opencl_local_buffer_opt(devid, gd->kernel_vng_lin_interpolate, &locopt)) - goto error; + { + err = CL_INVALID_WORK_DIMENSION; + goto finish; + } size_t sizes[3] = { ROUNDUP(width, locopt.sizex), ROUNDUP(height, locopt.sizey), 1 }; size_t local[3] = { locopt.sizex, locopt.sizey, 1 }; dt_opencl_set_kernel_args(devid, gd->kernel_vng_lin_interpolate, 0, CLARG(dev_in), CLARG(dev_tmp), CLARG(width), CLARG(height), CLARG(filters4), CLARG(dev_lookup), CLLOCAL(sizeof(float) * (locopt.sizex + 2) * (locopt.sizey + 2))); err = dt_opencl_enqueue_kernel_2d_with_local(devid, gd->kernel_vng_lin_interpolate, sizes, local); - if(err != CL_SUCCESS) goto error; + if(err != CL_SUCCESS) goto finish; } @@ -586,7 +591,7 @@ size_t origin[] = { 0, 0, 0 }; size_t region[] = { width, height, 1 }; err = dt_opencl_enqueue_copy_image(devid, dev_tmp, dev_aux, origin, origin, region); - if(err != CL_SUCCESS) goto error; + if(err != CL_SUCCESS) goto finish; } else { @@ -597,7 +602,10 @@ .sizex = 1 << 8, .sizey = 1 << 8 }; if(!dt_opencl_local_buffer_opt(devid, gd->kernel_vng_interpolate, &locopt)) - goto error; + { + err = CL_INVALID_WORK_DIMENSION; + goto finish; + } size_t sizes[3] = { ROUNDUP(width, locopt.sizex), ROUNDUP(height, locopt.sizey), 1 }; size_t local[3] = { locopt.sizex, locopt.sizey, 1 }; @@ -605,7 +613,7 @@ CLARG(width), CLARG(height), CLARG(roi_in->x), CLARG(roi_in->y), CLARG(filters4), CLARRAY(4, processed_maximum), CLARG(dev_xtrans), CLARG(dev_ips), CLARG(dev_code), CLLOCAL(sizeof(float) * 4 * (locopt.sizex + 4) * (locopt.sizey + 4))); err = dt_opencl_enqueue_kernel_2d_with_local(devid, gd->kernel_vng_interpolate, sizes, local); - if(err != CL_SUCCESS) goto error; + if(err != CL_SUCCESS) goto finish; } { @@ -615,7 +623,7 @@ err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_vng_border_interpolate, width, height, CLARG(dev_in), CLARG(dev_aux), CLARG(width), CLARG(height), CLARG(border), CLARG(roi_in->x), CLARG(roi_in->y), CLARG(filters4), CLARG(dev_xtrans)); - if(err != CL_SUCCESS) goto error; + if(err != CL_SUCCESS) goto finish; } if(filters4 != 9) @@ -624,97 +632,59 @@ size_t origin[] = { 0, 0, 0 }; size_t region[] = { width, height, 1 }; err = dt_opencl_enqueue_copy_image(devid, dev_aux, dev_tmp, origin, origin, region); - if(err != CL_SUCCESS) goto error; + if(err != CL_SUCCESS) goto finish; err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_vng_green_equilibrate, width, height, CLARG(dev_tmp), CLARG(dev_aux), CLARG(width), CLARG(height)); - if(err != CL_SUCCESS) goto error; + if(err != CL_SUCCESS) goto finish; } if(piece->pipe->want_detail_mask && data->demosaicing_method == DT_IOP_DEMOSAIC_VNG) - dt_dev_write_rawdetail_mask_cl(piece, dev_aux, roi_in, TRUE); + err = dt_dev_write_scharr_mask_cl(piece, dev_aux, roi_in, TRUE); + if(err != CL_SUCCESS) goto finish; if(scaled) { dt_print_pipe(DT_DEBUG_PIPE, "clip_and_zoom_roi_cl", piece->pipe, self, roi_in, roi_out, "\n"); // scale temp buffer to output buffer err = dt_iop_clip_and_zoom_roi_cl(devid, dev_out, dev_aux, roi_out, roi_in); - if(err != CL_SUCCESS) goto error; + if(err != CL_SUCCESS) goto finish; } } else { + const int zero = 0; + const int width = roi_out->width; + const int height = roi_out->height; // sample half-size or third-size image if(piece->pipe->dsc.filters == 9u) - { - const int width = roi_out->width; - const int height = roi_out->height; - err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_zoom_third_size, width, height, CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(roi_in->x), CLARG(roi_in->y), CLARG(roi_in->width), CLARG(roi_in->height), CLARG(roi_out->scale), CLARG(dev_xtrans)); - if(err != CL_SUCCESS) goto error; - } else - { - const int zero = 0; - const int width = roi_out->width; - const int height = roi_out->height; - err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_zoom_half_size, width, height, CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(zero), CLARG(zero), CLARG(roi_in->width), CLARG(roi_in->height), CLARG(roi_out->scale), CLARG(piece->pipe->dsc.filters)); - if(err != CL_SUCCESS) goto error; - } + if(err != CL_SUCCESS) goto finish; } + err = CL_SUCCESS; // we got here so no error to be reported / returned +finish: if(dev_aux != dev_out) dt_opencl_release_mem_object(dev_aux); - dev_aux = NULL; - dt_opencl_release_mem_object(dev_tmp); - dev_tmp = NULL; - dt_opencl_release_mem_object(dev_xtrans); - dev_xtrans = NULL; - dt_opencl_release_mem_object(dev_lookup); - dev_lookup = NULL; - free(lookup); - dt_opencl_release_mem_object(dev_code); - dev_code = NULL; - dt_opencl_release_mem_object(dev_ips); - dev_ips = NULL; - dt_opencl_release_mem_object(dev_green_eq); - dev_green_eq = NULL; - free(ips); - ips = NULL; - - // color smoothing - if((data->color_smoothing) && smooth) - { - if(!color_smoothing_cl(self, piece, dev_out, dev_out, roi_out, data->color_smoothing)) - goto error; - } - - return TRUE; + if(data->color_smoothing && smooth) + err = color_smoothing_cl(self, piece, dev_out, dev_out, roi_out, data->color_smoothing); -error: - if(dev_aux != dev_out) dt_opencl_release_mem_object(dev_aux); - dt_opencl_release_mem_object(dev_tmp); - dt_opencl_release_mem_object(dev_xtrans); - dt_opencl_release_mem_object(dev_lookup); - free(lookup); - dt_opencl_release_mem_object(dev_code); - dt_opencl_release_mem_object(dev_ips); - dt_opencl_release_mem_object(dev_green_eq); - free(ips); - dt_print(DT_DEBUG_OPENCL, "[opencl_demosaic] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + if(err != CL_SUCCESS) + dt_print(DT_DEBUG_OPENCL, "[opencl_demosaic] vng problem '%s'\n", cl_errstr(err)); + return err; } #endif diff -Nru darktable-4.4.2/src/iop/demosaicing/xtrans.c darktable-4.6.1/src/iop/demosaicing/xtrans.c --- darktable-4.4.2/src/iop/demosaicing/xtrans.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/demosaicing/xtrans.c 2024-02-16 17:31:09.000000000 +0000 @@ -1681,7 +1681,7 @@ cl_mem dev_aux = NULL; cl_mem dev_edge_in = NULL; cl_mem dev_edge_out = NULL; - cl_int err = DT_OPENCL_DEFAULT_ERROR; + cl_int err = CL_MEM_OBJECT_ALLOCATION_FAILURE; cl_mem *dev_rgb = dev_rgbv; @@ -1791,7 +1791,10 @@ .sizex = 1 << 8, .sizey = 1 << 8 }; if(!dt_opencl_local_buffer_opt(devid, gd->kernel_markesteijn_green_minmax, &locopt_g1_g3)) + { + err = CL_INVALID_WORK_DIMENSION; goto error; + } { size_t sizes[3] = { ROUNDUP(width, locopt_g1_g3.sizex), ROUNDUP(height, locopt_g1_g3.sizey), 1 }; @@ -1811,7 +1814,10 @@ .sizex = 1 << 8, .sizey = 1 << 8 }; if(!dt_opencl_local_buffer_opt(devid, gd->kernel_markesteijn_interpolate_green, &locopt_g_interp)) + { + err = CL_INVALID_WORK_DIMENSION; goto error; + } { size_t sizes[3] = { ROUNDUP(width, locopt_g_interp.sizex), ROUNDUP(height, locopt_g_interp.sizey), 1 }; @@ -1861,7 +1867,10 @@ .sizex = 1 << 8, .sizey = 1 << 8 }; if(!dt_opencl_local_buffer_opt(devid, gd->kernel_markesteijn_solitary_green, &locopt_rb_g)) - goto error; + { + err = CL_INVALID_WORK_DIMENSION; + goto error; + } cl_mem *dev_trgb = dev_rgb; for(int d = 0, i = 1, h = 0; d < 6; d++, i ^= 1, h ^= 2) @@ -1888,7 +1897,10 @@ .sizex = 1 << 8, .sizey = 1 << 8 }; if(!dt_opencl_local_buffer_opt(devid, gd->kernel_markesteijn_red_and_blue, &locopt_rb_br)) - goto error; + { + err = CL_INVALID_WORK_DIMENSION; + goto error; + } for(int d = 0; d < 4; d++) { @@ -1909,7 +1921,10 @@ .sizex = 1 << 8, .sizey = 1 << 8 }; if(!dt_opencl_local_buffer_opt(devid, gd->kernel_markesteijn_interpolate_twoxtwo, &locopt_g22)) - goto error; + { + err = CL_INVALID_WORK_DIMENSION; + goto error; + } for(int d = 0, n = 0; d < ndir; d += 2, n++) { @@ -1946,7 +1961,10 @@ .sizex = 1 << 8, .sizey = 1 << 8 }; if(!dt_opencl_local_buffer_opt(devid, gd->kernel_markesteijn_differentiate, &locopt_diff)) - goto error; + { + err = CL_INVALID_WORK_DIMENSION; + goto error; + } for(int d = 0; d < ndir; d++) { @@ -1992,7 +2010,10 @@ .sizex = 1 << 8, .sizey = 1 << 8 }; if(!dt_opencl_local_buffer_opt(devid, gd->kernel_markesteijn_homo_set, &locopt_homo)) - goto error; + { + err = CL_INVALID_WORK_DIMENSION; + goto error; + } for(int d = 0; d < ndir; d++) { @@ -2018,7 +2039,10 @@ .sizex = 1 << 8, .sizey = 1 << 8 }; if(!dt_opencl_local_buffer_opt(devid, gd->kernel_markesteijn_homo_sum, &locopt_homo_sum)) - goto error; + { + err = CL_INVALID_WORK_DIMENSION; + goto error; + } for(int d = 0; d < ndir; d++) { @@ -2159,6 +2183,7 @@ size_t oorigin[] = { 0, 0, 0 }; size_t region[] = { edges[n][2], edges[n][3], 1 }; + err = CL_MEM_OBJECT_ALLOCATION_FAILURE; // reserve input buffer for image edge dev_edge_in = dt_opencl_alloc_device(devid, edges[n][2], edges[n][3], sizeof(float)); if(dev_edge_in == NULL) goto error; @@ -2172,8 +2197,8 @@ if(err != CL_SUCCESS) goto error; // VNG processing - if(!process_vng_cl(self, piece, dev_edge_in, dev_edge_out, &roi, &roi, smooth, qual_flags & DT_DEMOSAIC_ONLY_VNG_LINEAR)) - goto error; + err = process_vng_cl(self, piece, dev_edge_in, dev_edge_out, &roi, &roi, smooth, qual_flags & DT_DEMOSAIC_ONLY_VNG_LINEAR); + if(err != CL_SUCCESS) goto error; // adjust for "good" part, dropping linear border where possible iorigin[0] += edges[n][4]; @@ -2194,7 +2219,8 @@ } if(piece->pipe->want_detail_mask) - dt_dev_write_rawdetail_mask_cl(piece, dev_tmp, roi_in, TRUE); + err = dt_dev_write_scharr_mask_cl(piece, dev_tmp, roi_in, TRUE); + if(err != CL_SUCCESS) goto error; if(scaled) { @@ -2226,12 +2252,9 @@ // color smoothing if(data->color_smoothing) - { - if(!color_smoothing_cl(self, piece, dev_out, dev_out, roi_out, data->color_smoothing)) - goto error; - } + err = color_smoothing_cl(self, piece, dev_out, dev_out, roi_out, data->color_smoothing); - return TRUE; + return err; error: if(dev_tmp != dev_out) dt_opencl_release_mem_object(dev_tmp); @@ -2252,8 +2275,8 @@ dt_opencl_release_mem_object(dev_aux); dt_opencl_release_mem_object(dev_edge_in); dt_opencl_release_mem_object(dev_edge_out); - dt_print(DT_DEBUG_OPENCL, "[opencl_demosaic] couldn't enqueue process_markesteijn_cl kernel! %s\n", cl_errstr(err)); - return FALSE; + dt_print(DT_DEBUG_OPENCL, "[opencl_demosaic] markesteijn problem '%s'\n", cl_errstr(err)); + return err; } #endif diff -Nru darktable-4.4.2/src/iop/denoiseprofile.c darktable-4.6.1/src/iop/denoiseprofile.c --- darktable-4.4.2/src/iop/denoiseprofile.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/denoiseprofile.c 2024-02-16 17:31:09.000000000 +0000 @@ -231,11 +231,16 @@ dt_dump_pfm(name, buf, width, height, 4 * sizeof(float), "denoiseprofile"); } -int legacy_params(dt_iop_module_t *self, - const void *const old_params, - const int old_version, - void *new_params, - const int new_version) +/* old legacy_params routine used up to v11 + this is now called into the legacy_params supporting incremental + updates. It was too risky to rewrite the old legacy params support + as it is a very tricky code. +*/ +int legacy_params_to11(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void *new_params, + const int new_version) { typedef struct dt_iop_denoiseprofile_params_v1_t { @@ -424,7 +429,7 @@ if(old_version < 4) { // first update to v4 - if(legacy_params(self, old_params, old_version, &v4, 4)) + if(legacy_params_to11(self, old_params, old_version, &v4, 4)) return 1; } else @@ -456,7 +461,7 @@ if(old_version < 5) { // first update to v5 - if(legacy_params(self, old_params, old_version, &v5, 5)) return 1; + if(legacy_params_to11(self, old_params, old_version, &v5, 5)) return 1; } else memcpy(&v5, old_params, sizeof(v5)); // was v5 already @@ -488,7 +493,7 @@ if(old_version < 6) { // first update to v6 - if(legacy_params(self, old_params, old_version, &v6, 6)) return 1; + if(legacy_params_to11(self, old_params, old_version, &v6, 6)) return 1; } else memcpy(&v6, old_params, sizeof(v6)); // was v6 already @@ -525,7 +530,7 @@ if(old_version < 7) { // first update to v7 - if(legacy_params(self, old_params, old_version, &v7, 7)) return 1; + if(legacy_params_to11(self, old_params, old_version, &v7, 7)) return 1; } else memcpy(&v7, old_params, sizeof(v7)); // was v7 already @@ -563,7 +568,7 @@ if(old_version < 8) { // first update to v8 - if(legacy_params(self, old_params, old_version, &v8, 8)) return 1; + if(legacy_params_to11(self, old_params, old_version, &v8, 8)) return 1; } else memcpy(&v8, old_params, sizeof(v8)); // was v8 already @@ -609,14 +614,14 @@ if(old_version < 9) { // first update to v9 - if(legacy_params(self, old_params, old_version, &v9, 9)) return 1; + if(legacy_params_to11(self, old_params, old_version, &v9, 9)) return 1; } else memcpy(&v9, old_params, sizeof(v9)); // was v9 already dt_iop_denoiseprofile_params_t *v10 = new_params; // start with a clean default - dt_iop_denoiseprofile_params_t *d = self->default_params; + const dt_iop_denoiseprofile_params_t *const d = self->default_params; *v10 = *d; v10->radius = v9.radius; @@ -658,7 +663,7 @@ dt_iop_denoiseprofile_params_t *v11 = new_params; if(old_version < 10) { - if(legacy_params(self, old_params, old_version, v11, 10)) return 1; + if(legacy_params_to11(self, old_params, old_version, v11, 10)) return 1; } else memcpy(v11, old_params, sizeof(*v11)); // was v10 already @@ -677,6 +682,53 @@ return 1; } +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_denoiseprofile_params_v11_t + { + float radius; + float nbhood; + float strength; + float shadows; + float bias; + float scattering; + float central_pixel_weight; + float overshooting; + float a[3], b[3]; + dt_iop_denoiseprofile_mode_t mode; + float x[DT_DENOISE_PROFILE_NONE][DT_IOP_DENOISE_PROFILE_BANDS]; + float y[DT_DENOISE_PROFILE_NONE][DT_IOP_DENOISE_PROFILE_BANDS]; + gboolean wb_adaptive_anscombe; + gboolean fix_anscombe_and_nlmeans_norm; + gboolean use_new_vst; + dt_iop_denoiseprofile_wavelet_mode_t wavelet_color_mode; + } dt_iop_denoiseprofile_params_v11_t; + + if(old_version < 11) + { + *new_params = (dt_iop_denoiseprofile_params_v11_t *) + malloc(sizeof(dt_iop_denoiseprofile_params_v11_t)); + + const int ret = legacy_params_to11(self, + old_params, + old_version, + *new_params, + 11); + + *new_params_size = sizeof(dt_iop_denoiseprofile_params_v11_t); + *new_version = 11; + return ret; + } + + return 1; +} + + void init_presets(dt_iop_module_so_t *self) { dt_iop_denoiseprofile_params_t p; @@ -740,9 +792,9 @@ return IOP_FLAGS_SUPPORTS_BLENDING | IOP_FLAGS_ALLOW_TILING; } -int default_colorspace(dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -1411,7 +1463,7 @@ if(!dt_iop_alloc_image_buffers(self, roi_in, roi_out, 4, &precond, 4, &tmp, 4, &buf, 0)) { - dt_iop_copy_image_roi(out, in, piece->colors, roi_in, roi_out, TRUE); + dt_iop_copy_image_roi(out, in, piece->colors, roi_in, roi_out); return; } @@ -1458,7 +1510,7 @@ dt_colormatrix_transpose(toY0U0V0_trans,toY0U0V0); dt_colormatrix_t toRGB_trans; dt_colormatrix_transpose(toRGB_trans,toRGB); - + for_each_channel(i) wb[i] *= d->strength * compensate_strength * in_scale; @@ -1936,12 +1988,7 @@ // allocate a buffer for a preconditioned copy of the image const int devid = piece->pipe->devid; cl_mem dev_tmp = dt_opencl_alloc_device(devid, width, height, sizeof(float) * 4); - if(dev_tmp == NULL) - { - dt_print(DT_DEBUG_OPENCL, - "[opencl_denoiseprofile] couldn't allocate GPU buffer\n"); - return FALSE; - } + if(dev_tmp == NULL) return CL_MEM_OBJECT_ALLOCATION_FAILURE; const size_t sizes[] = { ROUNDUPDWD(width, devid), ROUNDUPDHT(height, devid), 1 }; const float sigma2[4] = { (bb[0] / aa[0]) * (bb[0] / aa[0]), @@ -1967,7 +2014,7 @@ // allocate a buffer to receive the denoised image cl_mem dev_U2 = dt_opencl_alloc_device_buffer(devid, sizeof(float) * 4 * width * height); - if(dev_U2 == NULL) err = DT_OPENCL_DEFAULT_ERROR; + if(dev_U2 == NULL) err = CL_MEM_OBJECT_ALLOCATION_FAILURE; if(err == CL_SUCCESS) { @@ -2015,17 +2062,13 @@ } dt_opencl_release_mem_object(dev_U2); dt_opencl_release_mem_object(dev_tmp); - if(err == CL_SUCCESS) - return TRUE; - dt_print(DT_DEBUG_OPENCL, - "[opencl_denoiseprofile] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; #else const int width = roi_in->width; const int height = roi_in->height; - cl_int err = DT_OPENCL_DEFAULT_ERROR; + cl_int err = CL_MEM_OBJECT_ALLOCATION_FAILURE; const float scale = fminf(fminf(roi_in->scale, 2.0f) / fmaxf(piece->iscale, 1.0f), 1.0f); const int P = ceilf(d->radius * scale); // pixel filter size @@ -2207,7 +2250,6 @@ CLARG(dev_out), CLARG(width), CLARG(height), CLARG(aa), CLARG(sigma2)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_denoiseprofile_finish, sizes); - if(err != CL_SUCCESS) goto error; } else { @@ -2217,27 +2259,16 @@ CLARG(dev_out), CLARG(width), CLARG(height), CLARG(aa), CLARG(p), CLARG(bb), CLARG(bias), CLARG(wb)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_denoiseprofile_finish_v2, sizes); - if(err != CL_SUCCESS) goto error; - } - - for(int k = 0; k < NUM_BUCKETS; k++) - { - dt_opencl_release_mem_object(buckets[k]); } - dt_opencl_release_mem_object(dev_U2); - dt_opencl_release_mem_object(dev_tmp); - return TRUE; -error: + error: for(int k = 0; k < NUM_BUCKETS; k++) { dt_opencl_release_mem_object(buckets[k]); } dt_opencl_release_mem_object(dev_U2); dt_opencl_release_mem_object(dev_tmp); - dt_print(DT_DEBUG_OPENCL, - "[opencl_denoiseprofile] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; #endif /* USE_NEW_IMPL_CL */ } @@ -2300,7 +2331,7 @@ err = dt_opencl_enqueue_copy_image(devid, dev_in, dev_out, origin, origin, region); if(err != CL_SUCCESS) goto error; free(dev_detail); - return TRUE; + return CL_SUCCESS; } dt_opencl_local_buffer_t flocopt @@ -2335,7 +2366,7 @@ goto error; const int reducesize = MIN(REDUCESIZE, ROUNDUP(bufsize, slocopt.sizex) / slocopt.sizex); - + err = CL_MEM_OBJECT_ALLOCATION_FAILURE; dev_m = dt_opencl_alloc_device_buffer(devid, sizeof(float) * 4 * bufsize); if(dev_m == NULL) goto error; @@ -2443,25 +2474,18 @@ } else { - cl_mem dev_Y0U0V0 = NULL; - dev_Y0U0V0 = dt_opencl_copy_host_to_device_constant(devid, sizeof(float) * 9, toY0U0V0); - if(dev_Y0U0V0 != NULL) - { - dt_opencl_set_kernel_args(devid, gd->kernel_denoiseprofile_precondition_Y0U0V0, + err = CL_MEM_OBJECT_ALLOCATION_FAILURE; + cl_mem dev_Y0U0V0 = dt_opencl_copy_host_to_device_constant(devid, sizeof(float) * 9, toY0U0V0); + if(dev_Y0U0V0 == NULL) goto error; + + dt_opencl_set_kernel_args(devid, gd->kernel_denoiseprofile_precondition_Y0U0V0, 0, CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(aa), CLARG(p), CLARG(bb), CLARG(dev_Y0U0V0)); - err = dt_opencl_enqueue_kernel_2d(devid, - gd->kernel_denoiseprofile_precondition_Y0U0V0, - sizes); - dt_opencl_release_mem_object(dev_Y0U0V0); - if(err != CL_SUCCESS) goto error; - } - else - { - dt_opencl_release_mem_object(dev_Y0U0V0); - goto error; - } + err = dt_opencl_enqueue_kernel_2d(devid, + gd->kernel_denoiseprofile_precondition_Y0U0V0, + sizes); + dt_opencl_release_mem_object(dev_Y0U0V0); } dev_buf1 = dev_out; @@ -2669,42 +2693,25 @@ } else { - cl_mem dev_RGB = NULL; - dev_RGB = dt_opencl_copy_host_to_device_constant(devid, sizeof(float) * 9, toRGB); - if(dev_RGB != NULL) - { - const float bias = d->bias - 0.5 * logf(scale); - dt_opencl_set_kernel_args(devid, - gd->kernel_denoiseprofile_backtransform_Y0U0V0, 0, - CLARG(dev_tmp), - CLARG(dev_out), CLARG(width), CLARG(height), - CLARG(aa), CLARG(p), CLARG(bb), CLARG(bias), CLARG(wb), - CLARG(dev_RGB)); - err = dt_opencl_enqueue_kernel_2d(devid, + cl_mem dev_RGB = dt_opencl_copy_host_to_device_constant(devid, sizeof(float) * 9, toRGB); + if(dev_RGB == NULL) goto error; + + const float bias = d->bias - 0.5 * logf(scale); + dt_opencl_set_kernel_args(devid, + gd->kernel_denoiseprofile_backtransform_Y0U0V0, 0, + CLARG(dev_tmp), + CLARG(dev_out), CLARG(width), CLARG(height), + CLARG(aa), CLARG(p), CLARG(bb), CLARG(bias), CLARG(wb), + CLARG(dev_RGB)); + err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_denoiseprofile_backtransform_Y0U0V0, sizes); - dt_opencl_release_mem_object(dev_RGB); - if(err != CL_SUCCESS) goto error; - } - else - { - dt_opencl_release_mem_object(dev_RGB); - goto error; - } + dt_opencl_release_mem_object(dev_RGB); + if(err != CL_SUCCESS) goto error; } dt_opencl_finish_sync_pipe(devid, piece->pipe->type); - dt_opencl_release_mem_object(dev_r); - dt_opencl_release_mem_object(dev_m); - dt_opencl_release_mem_object(dev_tmp); - dt_opencl_release_mem_object(dev_filter); - for(int k = 0; k < max_scale; k++) - dt_opencl_release_mem_object(dev_detail[k]); - free(dev_detail); - dt_free_align(sumsum); - return TRUE; - error: dt_opencl_release_mem_object(dev_r); dt_opencl_release_mem_object(dev_m); @@ -2714,10 +2721,7 @@ dt_opencl_release_mem_object(dev_detail[k]); free(dev_detail); dt_free_align(sumsum); - dt_print(DT_DEBUG_OPENCL, - "[opencl_denoiseprofile] couldn't enqueue kernel! %s, devid %d\n", - cl_errstr(err), devid); - return FALSE; + return err; } int process_cl(struct dt_iop_module_t *self, @@ -2741,7 +2745,7 @@ { dt_print(DT_DEBUG_OPENCL, "[opencl_denoiseprofile] compute variance not yet supported by opencl code\n"); - return FALSE; + return DT_OPENCL_PROCESS_CL; } } #endif // HAVE_OPENCL @@ -3540,7 +3544,7 @@ cairo_set_source_surface(crf, cst, 0, 0); cairo_paint(crf); cairo_surface_destroy(cst); - return TRUE; + return FALSE; } static gboolean denoiseprofile_motion_notify(GtkWidget *widget, @@ -3586,7 +3590,7 @@ { // reset current curve dt_iop_denoiseprofile_params_t *p = (dt_iop_denoiseprofile_params_t *)self->params; - dt_iop_denoiseprofile_params_t *d = + const dt_iop_denoiseprofile_params_t *const d = (dt_iop_denoiseprofile_params_t *)self->default_params; for(int k = 0; k < DT_IOP_DENOISE_PROFILE_BANDS; k++) @@ -3650,7 +3654,7 @@ if(dt_gui_ignore_scroll(event)) return FALSE; int delta_y; - if(dt_gui_get_scroll_unit_deltas(event, NULL, &delta_y)) + if(dt_gui_get_scroll_unit_delta(event, &delta_y)) { c->mouse_radius = CLAMP(c->mouse_radius * (1.f + 0.1f * delta_y), 0.2f / DT_IOP_DENOISE_PROFILE_BANDS, 1.f); @@ -3679,7 +3683,7 @@ void gui_init(dt_iop_module_t *self) { dt_iop_denoiseprofile_gui_data_t *g = IOP_GUI_ALLOC(denoiseprofile); - dt_iop_denoiseprofile_params_t *p = + const dt_iop_denoiseprofile_params_t *const p = (dt_iop_denoiseprofile_params_t *)self->default_params; g->profiles = NULL; diff -Nru darktable-4.4.2/src/iop/diffuse.c darktable-4.6.1/src/iop/diffuse.c --- darktable-4.4.2/src/iop/diffuse.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/diffuse.c 2024-02-16 17:31:09.000000000 +0000 @@ -158,9 +158,9 @@ return IOP_FLAGS_INCLUDE_IN_STYLES | IOP_FLAGS_SUPPORTS_BLENDING | IOP_FLAGS_ALLOW_TILING; } -int default_colorspace(dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -168,10 +168,36 @@ int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, - const int new_version) + void **new_params, + int32_t *new_params_size, + int *new_version) { - if(old_version == 1 && new_version == 2) + typedef struct dt_iop_diffuse_params_v2_t + { + // global parameters + int iterations; + float sharpness; + int radius; + float regularization; + float variance_threshold; + + float anisotropy_first; + float anisotropy_second; + float anisotropy_third; + float anisotropy_fourth; + + float threshold; + + float first; + float second; + float third; + float fourth; + + // v2 + int radius_center; + } dt_iop_diffuse_params_v2_t; + + if(old_version == 1) { typedef struct dt_iop_diffuse_params_v1_t { @@ -195,11 +221,9 @@ float fourth; } dt_iop_diffuse_params_v1_t; - dt_iop_diffuse_params_v1_t *o = (dt_iop_diffuse_params_v1_t *)old_params; - dt_iop_diffuse_params_t *n = (dt_iop_diffuse_params_t *)new_params; - dt_iop_diffuse_params_t *d = (dt_iop_diffuse_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + const dt_iop_diffuse_params_v1_t *o = (dt_iop_diffuse_params_v1_t *)old_params; + dt_iop_diffuse_params_v2_t *n = + (dt_iop_diffuse_params_v2_t *)malloc(sizeof(dt_iop_diffuse_params_v2_t)); // copy common parameters memcpy(n, o, sizeof(dt_iop_diffuse_params_v1_t)); @@ -207,6 +231,9 @@ // init only new parameters n->radius_center = 0; + *new_params = n; + *new_params_size = sizeof(dt_iop_diffuse_params_v2_t); + *new_version = 2; return 0; } return 1; @@ -1337,7 +1364,7 @@ if(fastmode) { const size_t ch = piece->colors; - dt_iop_copy_image_roi(ovoid, ivoid, ch, roi_in, roi_out, TRUE); + dt_iop_copy_image_roi(ovoid, ivoid, ch, roi_in, roi_out); return; } @@ -1362,7 +1389,7 @@ 0, NULL)) { dt_print(DT_DEBUG_ALWAYS,"[diffuse] out of memory, skipping\n"); - dt_iop_copy_image_roi(ovoid, ivoid, piece->colors, roi_in, roi_out, 0); + dt_iop_copy_image_roi(ovoid, ivoid, piece->colors, roi_in, roi_out); return; } const float scale = fmaxf(piece->iscale / roi_in->scale, 1.f); @@ -1623,7 +1650,7 @@ size_t origin[] = { 0, 0, 0 }; size_t region[] = { width, height, 1 }; err = dt_opencl_enqueue_copy_image(devid, dev_in, dev_out, origin, origin, region); - return err == CL_SUCCESS; + return err; } size_t sizes[] = { ROUNDUPDWD(width, devid), ROUNDUPDHT(height, devid), 1 }; @@ -1711,29 +1738,17 @@ err = wavelets_process_cl(devid, temp_in, temp_out, mask, sizes, width, height, data, gd, final_radius, scale, scales, has_mask, HF, LF_odd, LF_even); - if(err != CL_SUCCESS) goto error; } - // cleanup and exit on success - dt_opencl_release_mem_object(mask); +error: dt_opencl_release_mem_object(temp1); dt_opencl_release_mem_object(temp2); + dt_opencl_release_mem_object(mask); dt_opencl_release_mem_object(LF_even); dt_opencl_release_mem_object(LF_odd); - for(int s = 0; s < scales; s++) dt_opencl_release_mem_object(HF[s]); - return TRUE; - -error: - if(temp1) dt_opencl_release_mem_object(temp1); - if(temp2) dt_opencl_release_mem_object(temp2); - if(mask) dt_opencl_release_mem_object(mask); - if(LF_even) dt_opencl_release_mem_object(LF_even); - if(LF_odd) dt_opencl_release_mem_object(LF_odd); - for(int s = 0; s < scales; s++) if(HF[s]) dt_opencl_release_mem_object(HF[s]); - - dt_print(DT_DEBUG_OPENCL, - "[opencl_diffuse] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + for(int s = 0; s < scales; s++) + dt_opencl_release_mem_object(HF[s]); + return err; } void init_global(dt_iop_module_so_t *module) diff -Nru darktable-4.4.2/src/iop/dither.c darktable-4.6.1/src/iop/dither.c --- darktable-4.4.2/src/iop/dither.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/dither.c 2024-02-16 17:31:09.000000000 +0000 @@ -109,7 +109,7 @@ const char *aliases() { - return _("dithering|posterization|reduce bit-depth"); + return _("dithering|posterization|reduce bit depth"); } const char **description(struct dt_iop_module_t *self) @@ -132,7 +132,9 @@ return IOP_FLAGS_SUPPORTS_BLENDING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -806,4 +808,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/equalizer.c darktable-4.6.1/src/iop/equalizer.c --- darktable-4.4.2/src/iop/equalizer.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/equalizer.c 2024-02-16 17:31:09.000000000 +0000 @@ -100,7 +100,9 @@ return IOP_FLAGS_DEPRECATED; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } @@ -186,7 +188,7 @@ { // create part of the pixelpipe dt_iop_equalizer_data_t *d = (dt_iop_equalizer_data_t *)malloc(sizeof(dt_iop_equalizer_data_t)); - dt_iop_equalizer_params_t *default_params = (dt_iop_equalizer_params_t *)self->default_params; + const dt_iop_equalizer_params_t *const default_params = (dt_iop_equalizer_params_t *)self->default_params; piece->data = (void *)d; for(int ch = 0; ch < 3; ch++) { diff -Nru darktable-4.4.2/src/iop/exposure.c darktable-4.6.1/src/iop/exposure.c --- darktable-4.4.2/src/iop/exposure.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/exposure.c 2024-02-16 17:31:09.000000000 +0000 @@ -144,9 +144,9 @@ return IOP_FLAGS_ALLOW_TILING | IOP_FLAGS_SUPPORTS_BLENDING; } -int default_colorspace(dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -168,28 +168,44 @@ int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, - const int new_version) -{ - if(old_version == 2 && new_version == 6) + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_exposure_params_v6_t + { + dt_iop_exposure_mode_t mode; + float black; + float exposure; + float deflicker_percentile; + float deflicker_target_level; + gboolean compensate_exposure_bias; + } dt_iop_exposure_params_v6_t; + + if(old_version == 2) { typedef struct dt_iop_exposure_params_v2_t { float black, exposure, gain; } dt_iop_exposure_params_v2_t; - dt_iop_exposure_params_v2_t *o = (dt_iop_exposure_params_v2_t *)old_params; - dt_iop_exposure_params_t *n = (dt_iop_exposure_params_t *)new_params; - dt_iop_exposure_params_t *d = (dt_iop_exposure_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + const dt_iop_exposure_params_v2_t *o = (dt_iop_exposure_params_v2_t *)old_params; + dt_iop_exposure_params_v6_t *n = + (dt_iop_exposure_params_v6_t *)malloc(sizeof(dt_iop_exposure_params_v6_t)); + n->mode = EXPOSURE_MODE_MANUAL; n->black = o->black; n->exposure = o->exposure; n->compensate_exposure_bias = FALSE; + n->deflicker_percentile = 50.0f; + n->deflicker_target_level = -4.0f; + + *new_params = n; + *new_params_size = sizeof(dt_iop_exposure_params_v6_t); + *new_version = 6; return 0; } - if(old_version == 3 && new_version == 6) + if(old_version == 3) { typedef struct dt_iop_exposure_params_v3_t { @@ -198,11 +214,9 @@ float deflicker_percentile, deflicker_target_level; } dt_iop_exposure_params_v3_t; - dt_iop_exposure_params_v3_t *o = (dt_iop_exposure_params_v3_t *)old_params; - dt_iop_exposure_params_t *n = (dt_iop_exposure_params_t *)new_params; - dt_iop_exposure_params_t *d = (dt_iop_exposure_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + const dt_iop_exposure_params_v3_t *o = (dt_iop_exposure_params_v3_t *)old_params; + dt_iop_exposure_params_v6_t *n = + (dt_iop_exposure_params_v6_t *)malloc(sizeof(dt_iop_exposure_params_v6_t)); n->mode = o->deflicker ? EXPOSURE_MODE_DEFLICKER : EXPOSURE_MODE_MANUAL; n->black = o->black; @@ -210,9 +224,13 @@ n->deflicker_percentile = o->deflicker_percentile; n->deflicker_target_level = o->deflicker_target_level; n->compensate_exposure_bias = FALSE; + + *new_params = n; + *new_params_size = sizeof(dt_iop_exposure_params_v6_t); + *new_version = 6; return 0; } - if(old_version == 4 && new_version == 6) + if(old_version == 4) { typedef enum dt_iop_exposure_deflicker_histogram_source_t { DEFLICKER_HISTOGRAM_SOURCE_THUMBNAIL, @@ -228,11 +246,9 @@ dt_iop_exposure_deflicker_histogram_source_t deflicker_histogram_source; } dt_iop_exposure_params_v4_t; - dt_iop_exposure_params_v4_t *o = (dt_iop_exposure_params_v4_t *)old_params; - dt_iop_exposure_params_t *n = (dt_iop_exposure_params_t *)new_params; - dt_iop_exposure_params_t *d = (dt_iop_exposure_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + const dt_iop_exposure_params_v4_t *o = (dt_iop_exposure_params_v4_t *)old_params; + dt_iop_exposure_params_v6_t *n = + (dt_iop_exposure_params_v6_t *)malloc(sizeof(dt_iop_exposure_params_v6_t)); n->mode = o->mode; n->black = o->black; @@ -242,9 +258,13 @@ // deflicker_histogram_source is dropped. this does change output, // but deflicker still was not publicly released at that point n->compensate_exposure_bias = FALSE; + + *new_params = n; + *new_params_size = sizeof(dt_iop_exposure_params_v6_t); + *new_version = 6; return 0; } - if(old_version == 5 && new_version == 6) + if(old_version == 5) { typedef struct dt_iop_exposure_params_v5_t { @@ -254,11 +274,9 @@ float deflicker_percentile, deflicker_target_level; } dt_iop_exposure_params_v5_t; - dt_iop_exposure_params_v5_t *o = (dt_iop_exposure_params_v5_t *)old_params; - dt_iop_exposure_params_t *n = (dt_iop_exposure_params_t *)new_params; - dt_iop_exposure_params_t *d = (dt_iop_exposure_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + const dt_iop_exposure_params_v5_t *o = (dt_iop_exposure_params_v5_t *)old_params; + dt_iop_exposure_params_v6_t *n = + (dt_iop_exposure_params_v6_t *)malloc(sizeof(dt_iop_exposure_params_v6_t)); n->mode = o->mode; n->black = o->black; @@ -266,6 +284,10 @@ n->deflicker_percentile = o->deflicker_percentile; n->deflicker_target_level = o->deflicker_target_level; n->compensate_exposure_bias = FALSE; + + *new_params = n; + *new_params_size = sizeof(dt_iop_exposure_params_v6_t); + *new_version = 6; return 0; } return 1; @@ -496,12 +518,8 @@ if(err != CL_SUCCESS) goto error; for(int k = 0; k < 3; k++) piece->pipe->dsc.processed_maximum[k] *= d->scale; - return TRUE; - error: - dt_print(DT_DEBUG_OPENCL, - "[opencl_exposure] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif @@ -877,10 +895,10 @@ void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, - dt_dev_pixelpipe_iop_t *piece) + dt_dev_pixelpipe_t *pipe) { if(darktable.gui->reset) return; - _auto_set_exposure(self, piece->pipe); + _auto_set_exposure(self, pipe); } @@ -1085,7 +1103,7 @@ // Re-run auto compute if color picker active and mode is correct const dt_spot_mode_t mode = dt_bauhaus_combobox_get(g->spot_mode); if(mode == DT_SPOT_MODE_CORRECT) - _auto_set_exposure(self, darktable.develop->pipe); + _auto_set_exposure(self, darktable.develop->full.pipe); // else : just record new values and do nothing } @@ -1171,7 +1189,7 @@ dt_gui_new_collapsible_section (&g->cs, "plugins/darkroom/exposure/mapping", - _("spot exposure mapping"), + _("area exposure mapping"), GTK_BOX(self->widget), DT_ACTION(self)); @@ -1185,7 +1203,7 @@ "consistently-lit surface over your series of images.")); DT_BAUHAUS_COMBOBOX_NEW_FULL - (g->spot_mode, self, NULL, N_("spot mode"), + (g->spot_mode, self, NULL, N_("area mode"), _("\"correction\" automatically adjust exposure\n" "such that the input lightness is mapped to the target.\n" "\"measure\" simply shows how an input color is mapped by\n" @@ -1235,10 +1253,9 @@ g_signal_connect(G_OBJECT(g->target_spot), "draw", G_CALLBACK(_target_color_draw), self); gtk_box_pack_start(GTK_BOX(vvbox), g->target_spot, TRUE, TRUE, 0); - g->lightness_spot = dt_bauhaus_slider_new_with_range(self, 0., 100., 0, 0, 1); + g->lightness_spot = dt_bauhaus_slider_new_with_range(self, 0., 100., 0, 50.f, 1); dt_bauhaus_widget_set_label(g->lightness_spot, NULL, N_("lightness")); dt_bauhaus_slider_set_format(g->lightness_spot, "%"); - dt_bauhaus_slider_set_default(g->lightness_spot, 50.f); gtk_box_pack_start(GTK_BOX(vvbox), GTK_WIDGET(g->lightness_spot), TRUE, TRUE, 0); g_signal_connect(G_OBJECT(g->lightness_spot), "value-changed", G_CALLBACK(_spot_settings_changed_callback), self); diff -Nru darktable-4.4.2/src/iop/filmic.c darktable-4.6.1/src/iop/filmic.c --- darktable-4.4.2/src/iop/filmic.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/filmic.c 2024-02-16 17:31:09.000000000 +0000 @@ -177,15 +177,40 @@ return _("this module is deprecated. better use filmic rgb module instead."); } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, void *new_params, - const int new_version) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) { - if(old_version == 1 && new_version == 3) + typedef struct dt_iop_filmic_params_v3_t + { + float grey_point_source; + float black_point_source; + float white_point_source; + float security_factor; + float grey_point_target; + float black_point_target; + float white_point_target; + float output_power; + float latitude_stops; + float contrast; + float saturation; + float global_saturation; + float balance; + int interpolator; + int preserve_color; + } dt_iop_filmic_params_v3_t; + + if(old_version == 1) { typedef struct dt_iop_filmic_params_v1_t { @@ -204,11 +229,9 @@ int interpolator; } dt_iop_filmic_params_v1_t; - dt_iop_filmic_params_v1_t *o = (dt_iop_filmic_params_v1_t *)old_params; - dt_iop_filmic_params_t *n = (dt_iop_filmic_params_t *)new_params; - dt_iop_filmic_params_t *d = (dt_iop_filmic_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + const dt_iop_filmic_params_v1_t *o = (dt_iop_filmic_params_v1_t *)old_params; + dt_iop_filmic_params_v3_t *n = + (dt_iop_filmic_params_v3_t *)malloc(sizeof(dt_iop_filmic_params_v3_t)); n->grey_point_source = o->grey_point_source; n->white_point_source = o->white_point_source; @@ -225,10 +248,14 @@ n->interpolator = o->interpolator; n->preserve_color = 0; n->global_saturation = 100; + + *new_params = n; + *new_params_size = sizeof(dt_iop_filmic_params_v3_t); + *new_version = 3; return 0; } - if(old_version == 2 && new_version == 3) + if(old_version == 2) { typedef struct dt_iop_filmic_params_v2_t { @@ -248,11 +275,9 @@ int preserve_color; } dt_iop_filmic_params_v2_t; - dt_iop_filmic_params_v2_t *o = (dt_iop_filmic_params_v2_t *)old_params; - dt_iop_filmic_params_t *n = (dt_iop_filmic_params_t *)new_params; - dt_iop_filmic_params_t *d = (dt_iop_filmic_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + const dt_iop_filmic_params_v2_t *o = (dt_iop_filmic_params_v2_t *)old_params; + dt_iop_filmic_params_v3_t *n = + (dt_iop_filmic_params_v3_t *)malloc(sizeof(dt_iop_filmic_params_v3_t)); n->grey_point_source = o->grey_point_source; n->white_point_source = o->white_point_source; @@ -269,6 +294,10 @@ n->interpolator = o->interpolator; n->preserve_color = o->preserve_color; n->global_saturation = 100; + + *new_params = n; + *new_params_size = sizeof(dt_iop_filmic_params_v3_t); + *new_version = 3; return 0; } return 1; @@ -563,16 +592,11 @@ CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(dynamic_range), CLARG(shadows_range), CLARG(grey), CLARG(dev_table), CLARG(diff_table), CLARG(contrast), CLARG(power), CLARG(preserve_color), CLARG(saturation)); - if(err != CL_SUCCESS) goto error; - dt_opencl_release_mem_object(dev_table); - dt_opencl_release_mem_object(diff_table); - return TRUE; error: dt_opencl_release_mem_object(dev_table); dt_opencl_release_mem_object(diff_table); - dt_print(DT_DEBUG_OPENCL, "[opencl_filmic] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif @@ -743,7 +767,8 @@ gtk_widget_queue_draw(self->widget); } -void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece) +void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, + dt_dev_pixelpipe_t *pipe) { dt_iop_filmic_gui_data_t *g = (dt_iop_filmic_gui_data_t *)self->gui_data; if (picker == g->grey_point_source) @@ -1471,7 +1496,7 @@ void gui_init(dt_iop_module_t *self) { dt_iop_filmic_gui_data_t *g = IOP_GUI_ALLOC(filmic); - dt_iop_filmic_params_t *p = (dt_iop_filmic_params_t *)self->default_params; + const dt_iop_filmic_params_t *const p = (dt_iop_filmic_params_t *)self->default_params; self->widget = gtk_box_new(GTK_ORIENTATION_VERTICAL, DT_BAUHAUS_SPACE); @@ -1526,7 +1551,7 @@ dt_bauhaus_widget_set_label(g->security_factor, NULL, N_("safety factor")); gtk_box_pack_start(GTK_BOX(self->widget), g->security_factor, TRUE, TRUE, 0); dt_bauhaus_slider_set_format(g->security_factor, "%"); - gtk_widget_set_tooltip_text(g->security_factor, _("enlarge or shrink the computed dynamic range.\n" + gtk_widget_set_tooltip_text(g->security_factor, _("increase or decrease the computed dynamic range.\n" "useful in conjunction with \"auto tune levels\".")); g_signal_connect(G_OBJECT(g->security_factor), "value-changed", G_CALLBACK(security_threshold_callback), self); @@ -1674,4 +1699,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/filmicrgb.c darktable-4.6.1/src/iop/filmicrgb.c --- darktable-4.4.2/src/iop/filmicrgb.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/filmicrgb.c 2024-02-16 17:31:09.000000000 +0000 @@ -63,7 +63,7 @@ // the total runtime of V3, V4 and V5 by 10%) but the fast approximate // expf() differs by enough to push several integration tests above // the permissible threshold. -//#define USE_FAST_EXPF +#define USE_FAST_EXPF FALSE #define INVERSE_SQRT_3 0.5773502691896258f #define SAFETY_MARGIN 0.01f @@ -365,19 +365,22 @@ return IOP_FLAGS_INCLUDE_IN_STYLES | IOP_FLAGS_SUPPORTS_BLENDING | IOP_FLAGS_ALLOW_TILING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } -#ifdef USE_FAST_EXPF +#if USE_FAST_EXPF // replace calls to expf() with calls to dt_fast_expf() -#define expf dt_fast_expf + #define expf dt_fast_expf #endif inline static gboolean dt_iop_filmic_rgb_compute_spline(const dt_iop_filmicrgb_params_t *const p, struct dt_iop_filmic_rgb_spline_t *const spline); +// BEWARE: convert_to_spline_v3 supports up to v6 of params (see legacy_params) // convert parameters from spline v1 or v2 to spline v3 static inline void convert_to_spline_v3(dt_iop_filmicrgb_params_t* n) { @@ -442,10 +445,47 @@ n->spline_version = DT_FILMIC_SPLINE_VERSION_V3; } -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, void *new_params, - const int new_version) -{ - if(old_version == 1 && new_version == 6) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_filmicrgb_params_v6_t + { + float grey_point_source; + float black_point_source; + float white_point_source; + float reconstruct_threshold; + float reconstruct_feather; + float reconstruct_bloom_vs_details; + float reconstruct_grey_vs_color; + float reconstruct_structure_vs_texture; + float security_factor; + float grey_point_target; + float black_point_target; + float white_point_target; + float output_power; + float latitude; + float contrast; + float saturation; + float balance; + float noise_level; + dt_iop_filmicrgb_methods_type_t preserve_color; + dt_iop_filmicrgb_colorscience_type_t version; + gboolean auto_hardness; + gboolean custom_grey; + int high_quality_reconstruction; + dt_iop_filmic_noise_distribution_t noise_distribution; + dt_iop_filmicrgb_curve_type_t shadows; + dt_iop_filmicrgb_curve_type_t highlights; + gboolean compensate_icc_black; + dt_iop_filmicrgb_spline_version_type_t spline_version; + gboolean enable_highlight_reconstruction; + } dt_iop_filmicrgb_params_v6_t; + + if(old_version == 1) { typedef struct dt_iop_filmicrgb_params_v1_t { @@ -464,11 +504,9 @@ int preserve_color; } dt_iop_filmicrgb_params_v1_t; - dt_iop_filmicrgb_params_v1_t *o = (dt_iop_filmicrgb_params_v1_t *)old_params; - dt_iop_filmicrgb_params_t *n = (dt_iop_filmicrgb_params_t *)new_params; - dt_iop_filmicrgb_params_t *d = (dt_iop_filmicrgb_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + const dt_iop_filmicrgb_params_v1_t *o = (dt_iop_filmicrgb_params_v1_t *)old_params; + dt_iop_filmicrgb_params_v6_t *n = + (dt_iop_filmicrgb_params_v6_t *)malloc(sizeof(dt_iop_filmicrgb_params_v6_t)); n->grey_point_source = o->grey_point_source; n->white_point_source = o->white_point_source; @@ -485,25 +523,30 @@ n->preserve_color = o->preserve_color; n->shadows = DT_FILMIC_CURVE_POLY_4; n->highlights = DT_FILMIC_CURVE_POLY_3; - n->reconstruct_threshold - = 6.0f; // for old edits, this ensures clipping threshold >> white level, so it's a no-op - n->reconstruct_bloom_vs_details = d->reconstruct_bloom_vs_details; - n->reconstruct_grey_vs_color = d->reconstruct_grey_vs_color; - n->reconstruct_structure_vs_texture = d->reconstruct_structure_vs_texture; + n->reconstruct_threshold = 6.0f; // for old edits, this ensures + // clipping threshold >> white + // level, so it's a no-op + n->reconstruct_bloom_vs_details = 100.0f; + n->reconstruct_grey_vs_color = 100.0f; + n->reconstruct_structure_vs_texture = 0.0f; n->reconstruct_feather = 3.0f; n->version = DT_FILMIC_COLORSCIENCE_V1; n->auto_hardness = TRUE; n->custom_grey = TRUE; n->high_quality_reconstruction = 0; - n->noise_distribution = d->noise_distribution; + n->noise_distribution = DT_FILMIC_NOISE_GAUSSIAN; n->noise_level = 0.f; n->spline_version = DT_FILMIC_SPLINE_VERSION_V1; n->compensate_icc_black = FALSE; - convert_to_spline_v3(n); + convert_to_spline_v3((dt_iop_filmicrgb_params_t*)n); n->enable_highlight_reconstruction = TRUE; + + *new_params = n; + *new_params_size = sizeof(dt_iop_filmicrgb_params_v6_t); + *new_version = 6; return 0; } - if(old_version == 2 && new_version == 6) + if(old_version == 2) { typedef struct dt_iop_filmicrgb_params_v2_t { @@ -533,11 +576,9 @@ dt_iop_filmicrgb_curve_type_t highlights; } dt_iop_filmicrgb_params_v2_t; - dt_iop_filmicrgb_params_v2_t *o = (dt_iop_filmicrgb_params_v2_t *)old_params; - dt_iop_filmicrgb_params_t *n = (dt_iop_filmicrgb_params_t *)new_params; - dt_iop_filmicrgb_params_t *d = (dt_iop_filmicrgb_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + const dt_iop_filmicrgb_params_v2_t *o = (dt_iop_filmicrgb_params_v2_t *)old_params; + dt_iop_filmicrgb_params_v6_t *n = + (dt_iop_filmicrgb_params_v6_t *)malloc(sizeof(dt_iop_filmicrgb_params_v6_t)); n->grey_point_source = o->grey_point_source; n->white_point_source = o->white_point_source; @@ -563,59 +604,62 @@ n->auto_hardness = o->auto_hardness; n->custom_grey = o->custom_grey; n->high_quality_reconstruction = o->high_quality_reconstruction; - n->noise_level = d->noise_level; - n->noise_distribution = d->noise_distribution; + n->noise_level = 0.2f; + n->noise_distribution = DT_FILMIC_NOISE_GAUSSIAN; n->noise_level = 0.f; n->spline_version = DT_FILMIC_SPLINE_VERSION_V1; n->compensate_icc_black = FALSE; n->enable_highlight_reconstruction = TRUE; - convert_to_spline_v3(n); + convert_to_spline_v3((dt_iop_filmicrgb_params_t*)n); + + *new_params = n; + *new_params_size = sizeof(dt_iop_filmicrgb_params_v6_t); + *new_version = 6; return 0; } - if(old_version == 3 && new_version == 6) + + if(old_version == 3) { typedef struct dt_iop_filmicrgb_params_v3_t { - float grey_point_source; // $MIN: 0 $MAX: 100 $DEFAULT: 18.45 $DESCRIPTION: "middle gray luminance" - float black_point_source; // $MIN: -16 $MAX: -0.1 $DEFAULT: -8.0 $DESCRIPTION: "black relative exposure" - float white_point_source; // $MIN: 0 $MAX: 16 $DEFAULT: 4.0 $DESCRIPTION: "white relative exposure" - float reconstruct_threshold; // $MIN: -6.0 $MAX: 6.0 $DEFAULT: +3.0 $DESCRIPTION: "threshold" - float reconstruct_feather; // $MIN: 0.25 $MAX: 6.0 $DEFAULT: 3.0 $DESCRIPTION: "transition" - float reconstruct_bloom_vs_details; // $MIN: -100.0 $MAX: 100.0 $DEFAULT: 100.0 $DESCRIPTION: - // "bloom/reconstruct" - float reconstruct_grey_vs_color; // $MIN: -100.0 $MAX: 100.0 $DEFAULT: 100.0 $DESCRIPTION: "gray/colorful - // details" - float reconstruct_structure_vs_texture; // $MIN: -100.0 $MAX: 100.0 $DEFAULT: 0.0 $DESCRIPTION: - // "structure/texture" - float security_factor; // $MIN: -50 $MAX: 200 $DEFAULT: 0 $DESCRIPTION: "dynamic range scaling" - float grey_point_target; // $MIN: 1 $MAX: 50 $DEFAULT: 18.45 $DESCRIPTION: "target middle gray" - float black_point_target; // $MIN: 0 $MAX: 20 $DEFAULT: 0 $DESCRIPTION: "target black luminance" - float white_point_target; // $MIN: 0 $MAX: 1600 $DEFAULT: 100 $DESCRIPTION: "target white luminance" - float output_power; // $MIN: 1 $MAX: 10 $DEFAULT: 4.0 $DESCRIPTION: "hardness" - float latitude; // $MIN: 0.01 $MAX: 100 $DEFAULT: 33.0 - float contrast; // $MIN: 0 $MAX: 5 $DEFAULT: 1.50 - float saturation; // $MIN: -50 $MAX: 200 $DEFAULT: 0 $DESCRIPTION: "extreme luminance saturation" - float balance; // $MIN: -50 $MAX: 50 $DEFAULT: 0.0 $DESCRIPTION: "shadows/highlights balance" - float noise_level; // $MIN: 0.0 $MAX: 6.0 $DEFAULT: 0.1f $DESCRIPTION: "add noise in highlights" - dt_iop_filmicrgb_methods_type_t preserve_color; // $DEFAULT: DT_FILMIC_METHOD_POWER_NORM $DESCRIPTION: - // "preserve chrominance" - dt_iop_filmicrgb_colorscience_type_t version; // $DEFAULT: DT_FILMIC_COLORSCIENCE_V3 $DESCRIPTION: "color - // science" - gboolean auto_hardness; // $DEFAULT: TRUE $DESCRIPTION: "auto adjust hardness" - gboolean custom_grey; // $DEFAULT: FALSE $DESCRIPTION: "use custom middle-gray values" - int high_quality_reconstruction; // $MIN: 0 $MAX: 10 $DEFAULT: 1 $DESCRIPTION: "iterations of high-quality - // reconstruction" - int noise_distribution; // $DEFAULT: DT_NOISE_POISSONIAN $DESCRIPTION: "type of noise" - dt_iop_filmicrgb_curve_type_t shadows; // $DEFAULT: DT_FILMIC_CURVE_POLY_4 $DESCRIPTION: "contrast in shadows" - dt_iop_filmicrgb_curve_type_t highlights; // $DEFAULT: DT_FILMIC_CURVE_POLY_4 $DESCRIPTION: "contrast in - // highlights" - } dt_iop_filmicrgb_params_v3_t; + float grey_point_source; + float black_point_source; + float white_point_source; + float reconstruct_threshold; + float reconstruct_feather; + float reconstruct_bloom_vs_details; - dt_iop_filmicrgb_params_v3_t *o = (dt_iop_filmicrgb_params_v3_t *)old_params; - dt_iop_filmicrgb_params_t *n = (dt_iop_filmicrgb_params_t *)new_params; - dt_iop_filmicrgb_params_t *d = (dt_iop_filmicrgb_params_t *)self->default_params; + float reconstruct_grey_vs_color; + + float reconstruct_structure_vs_texture; + + float security_factor; + float grey_point_target; + float black_point_target; + float white_point_target; + float output_power; + float latitude; + float contrast; + float saturation; + float balance; + float noise_level; + dt_iop_filmicrgb_methods_type_t preserve_color; - *n = *d; // start with a fresh copy of default parameters + dt_iop_filmicrgb_colorscience_type_t version; + + gboolean auto_hardness; + gboolean custom_grey; + int high_quality_reconstruction; + + int noise_distribution; + dt_iop_filmicrgb_curve_type_t shadows; + dt_iop_filmicrgb_curve_type_t highlights; + + } dt_iop_filmicrgb_params_v3_t; + + const dt_iop_filmicrgb_params_v3_t *o = (dt_iop_filmicrgb_params_v3_t *)old_params; + dt_iop_filmicrgb_params_v6_t *n = + (dt_iop_filmicrgb_params_v6_t *)malloc(sizeof(dt_iop_filmicrgb_params_v6_t)); n->grey_point_source = o->grey_point_source; n->white_point_source = o->white_point_source; @@ -641,52 +685,59 @@ n->auto_hardness = o->auto_hardness; n->custom_grey = o->custom_grey; n->high_quality_reconstruction = o->high_quality_reconstruction; - n->noise_level = d->noise_level; - n->noise_distribution = d->noise_distribution; - n->noise_level = d->noise_level; + n->noise_level = 0.2f; + n->noise_distribution = DT_FILMIC_NOISE_GAUSSIAN; n->spline_version = DT_FILMIC_SPLINE_VERSION_V1; n->compensate_icc_black = FALSE; n->enable_highlight_reconstruction = TRUE; - convert_to_spline_v3(n); + convert_to_spline_v3((dt_iop_filmicrgb_params_t*)n); + + *new_params = n; + *new_params_size = sizeof(dt_iop_filmicrgb_params_v6_t); + *new_version = 6; return 0; } - if(old_version == 4 && new_version == 6) + if(old_version == 4) { typedef struct dt_iop_filmicrgb_params_v4_t { - float grey_point_source; // $MIN: 0 $MAX: 100 $DEFAULT: 18.45 $DESCRIPTION: "middle gray luminance" - float black_point_source; // $MIN: -16 $MAX: -0.1 $DEFAULT: -8.0 $DESCRIPTION: "black relative exposure" - float white_point_source; // $MIN: 0 $MAX: 16 $DEFAULT: 4.0 $DESCRIPTION: "white relative exposure" - float reconstruct_threshold; // $MIN: -6.0 $MAX: 6.0 $DEFAULT: +3.0 $DESCRIPTION: "threshold" - float reconstruct_feather; // $MIN: 0.25 $MAX: 6.0 $DEFAULT: 3.0 $DESCRIPTION: "transition" - float reconstruct_bloom_vs_details; // $MIN: -100.0 $MAX: 100.0 $DEFAULT: 100.0 $DESCRIPTION: "bloom ↔ reconstruct" - float reconstruct_grey_vs_color; // $MIN: -100.0 $MAX: 100.0 $DEFAULT: 100.0 $DESCRIPTION: "gray ↔ colorful details" - float reconstruct_structure_vs_texture; // $MIN: -100.0 $MAX: 100.0 $DEFAULT: 0.0 $DESCRIPTION: "structure ↔ texture" - float security_factor; // $MIN: -50 $MAX: 200 $DEFAULT: 0 $DESCRIPTION: "dynamic range scaling" - float grey_point_target; // $MIN: 1 $MAX: 50 $DEFAULT: 18.45 $DESCRIPTION: "target middle gray" - float black_point_target; // $MIN: 0.000 $MAX: 20.000 $DEFAULT: 0.01517634 $DESCRIPTION: "target black luminance" - float white_point_target; // $MIN: 0 $MAX: 1600 $DEFAULT: 100 $DESCRIPTION: "target white luminance" - float output_power; // $MIN: 1 $MAX: 10 $DEFAULT: 4.0 $DESCRIPTION: "hardness" - float latitude; // $MIN: 0.01 $MAX: 99 $DEFAULT: 50.0 - float contrast; // $MIN: 0 $MAX: 5 $DEFAULT: 1.1 - float saturation; // $MIN: -50 $MAX: 200 $DEFAULT: 0 $DESCRIPTION: "extreme luminance saturation" - float balance; // $MIN: -50 $MAX: 50 $DEFAULT: 0.0 $DESCRIPTION: "shadows ↔ highlights balance" - float noise_level; // $MIN: 0.0 $MAX: 6.0 $DEFAULT: 0.2f $DESCRIPTION: "add noise in highlights" - dt_iop_filmicrgb_methods_type_t preserve_color; // $DEFAULT: DT_FILMIC_METHOD_POWER_NORM $DESCRIPTION: "preserve chrominance" - dt_iop_filmicrgb_colorscience_type_t version; // $DEFAULT: DT_FILMIC_COLORSCIENCE_V3 $DESCRIPTION: "color science" - gboolean auto_hardness; // $DEFAULT: TRUE $DESCRIPTION: "auto adjust hardness" - gboolean custom_grey; // $DEFAULT: FALSE $DESCRIPTION: "use custom middle-gray values" - int high_quality_reconstruction; // $MIN: 0 $MAX: 10 $DEFAULT: 1 $DESCRIPTION: "iterations of high-quality reconstruction" - dt_iop_filmic_noise_distribution_t noise_distribution; // $DEFAULT: DT_NOISE_GAUSSIAN $DESCRIPTION: "type of noise" - dt_iop_filmicrgb_curve_type_t shadows; // $DEFAULT: DT_FILMIC_CURVE_RATIONAL $DESCRIPTION: "contrast in shadows" - dt_iop_filmicrgb_curve_type_t highlights; // $DEFAULT: DT_FILMIC_CURVE_RATIONAL $DESCRIPTION: "contrast in highlights" - gboolean compensate_icc_black; // $DEFAULT: FALSE $DESCRIPTION: "compensate output ICC profile black point" - gint internal_version; // $DEFAULT: 2020 $DESCRIPTION: "version of the spline generator" + float grey_point_source; + float black_point_source; + float white_point_source; + float reconstruct_threshold; + float reconstruct_feather; + float reconstruct_bloom_vs_details; + float reconstruct_grey_vs_color; + float reconstruct_structure_vs_texture; + float security_factor; + float grey_point_target; + float black_point_target; + float white_point_target; + float output_power; + float latitude; + float contrast; + float saturation; + float balance; + float noise_level; + dt_iop_filmicrgb_methods_type_t preserve_color; + dt_iop_filmicrgb_colorscience_type_t version; + gboolean auto_hardness; + gboolean custom_grey; + int high_quality_reconstruction; + dt_iop_filmic_noise_distribution_t noise_distribution; + dt_iop_filmicrgb_curve_type_t shadows; + dt_iop_filmicrgb_curve_type_t highlights; + gboolean compensate_icc_black; + gint internal_version; } dt_iop_filmicrgb_params_v4_t; - dt_iop_filmicrgb_params_v4_t *o = (dt_iop_filmicrgb_params_v4_t *)old_params; - dt_iop_filmicrgb_params_t *n = (dt_iop_filmicrgb_params_t *)new_params; - *n = *(dt_iop_filmicrgb_params_t*)o; // structure didn't change except the enum instead of gint for internal_version + const dt_iop_filmicrgb_params_v4_t *o = (dt_iop_filmicrgb_params_v4_t *)old_params; + dt_iop_filmicrgb_params_v6_t *n = + (dt_iop_filmicrgb_params_v6_t *)malloc(sizeof(dt_iop_filmicrgb_params_v6_t)); + + *n = *(dt_iop_filmicrgb_params_v6_t*)o; // structure didn't change + // except the enum instead of + // gint for internal_version // we still need to convert the internal_version (in year) to the enum switch(o->internal_version) { @@ -703,48 +754,50 @@ return 1; } n->enable_highlight_reconstruction = TRUE; - convert_to_spline_v3(n); + convert_to_spline_v3((dt_iop_filmicrgb_params_t*)n); + + *new_params = n; + *new_params_size = sizeof(dt_iop_filmicrgb_params_v6_t); + *new_version = 6; return 0; } - if(old_version == 5 && new_version == 6) + if(old_version == 5) { typedef struct dt_iop_filmicrgb_params_v5_t { - float grey_point_source; // $MIN: 0 $MAX: 100 $DEFAULT: 18.45 $DESCRIPTION: "middle gray luminance" - float black_point_source; // $MIN: -16 $MAX: -0.1 $DEFAULT: -8.0 $DESCRIPTION: "black relative exposure" - float white_point_source; // $MIN: 0.1 $MAX: 16 $DEFAULT: 4.0 $DESCRIPTION: "white relative exposure" - float reconstruct_threshold; // $MIN: -6.0 $MAX: 6.0 $DEFAULT: +3.0 $DESCRIPTION: "threshold" - float reconstruct_feather; // $MIN: 0.25 $MAX: 6.0 $DEFAULT: 3.0 $DESCRIPTION: "transition" - float reconstruct_bloom_vs_details; // $MIN: -100.0 $MAX: 100.0 $DEFAULT: 100.0 $DESCRIPTION: "bloom ↔ reconstruct" - float reconstruct_grey_vs_color; // $MIN: -100.0 $MAX: 100.0 $DEFAULT: 100.0 $DESCRIPTION: "gray ↔ colorful details" - float reconstruct_structure_vs_texture; // $MIN: -100.0 $MAX: 100.0 $DEFAULT: 0.0 $DESCRIPTION: "structure ↔ texture" - float security_factor; // $MIN: -50 $MAX: 200 $DEFAULT: 0 $DESCRIPTION: "dynamic range scaling" - float grey_point_target; // $MIN: 1 $MAX: 50 $DEFAULT: 18.45 $DESCRIPTION: "target middle gray" - float black_point_target; // $MIN: 0.000 $MAX: 20.000 $DEFAULT: 0.01517634 $DESCRIPTION: "target black luminance" - float white_point_target; // $MIN: 0 $MAX: 1600 $DEFAULT: 100 $DESCRIPTION: "target white luminance" - float output_power; // $MIN: 1 $MAX: 10 $DEFAULT: 4.0 $DESCRIPTION: "hardness" - float latitude; // $MIN: 0.01 $MAX: 99 $DEFAULT: 0.01 - float contrast; // $MIN: 0 $MAX: 5 $DEFAULT: 1.0 - float saturation; // $MIN: -200 $MAX: 200 $DEFAULT: 0 $DESCRIPTION: "extreme luminance saturation" - float balance; // $MIN: -50 $MAX: 50 $DEFAULT: 0.0 $DESCRIPTION: "shadows ↔ highlights balance" - float noise_level; // $MIN: 0.0 $MAX: 6.0 $DEFAULT: 0.2f $DESCRIPTION: "add noise in highlights" - dt_iop_filmicrgb_methods_type_t preserve_color; // $DEFAULT: DT_FILMIC_METHOD_POWER_NORM $DESCRIPTION: "preserve chrominance" - dt_iop_filmicrgb_colorscience_type_t version; // $DEFAULT: DT_FILMIC_COLORSCIENCE_V4 $DESCRIPTION: "color science" - gboolean auto_hardness; // $DEFAULT: TRUE $DESCRIPTION: "auto adjust hardness" - gboolean custom_grey; // $DEFAULT: FALSE $DESCRIPTION: "use custom middle-gray values" - int high_quality_reconstruction; // $MIN: 0 $MAX: 10 $DEFAULT: 1 $DESCRIPTION: "iterations of high-quality reconstruction" - dt_iop_filmic_noise_distribution_t noise_distribution; // $DEFAULT: DT_NOISE_GAUSSIAN $DESCRIPTION: "type of noise" - dt_iop_filmicrgb_curve_type_t shadows; // $DEFAULT: DT_FILMIC_CURVE_POLY_4 $DESCRIPTION: "contrast in shadows" - dt_iop_filmicrgb_curve_type_t highlights; // $DEFAULT: DT_FILMIC_CURVE_POLY_4 $DESCRIPTION: "contrast in highlights" - gboolean compensate_icc_black; // $DEFAULT: FALSE $DESCRIPTION: "compensate output ICC profile black point" - dt_iop_filmicrgb_spline_version_type_t spline_version; // $DEFAULT: DT_FILMIC_SPLINE_VERSION_V3 $DESCRIPTION: "spline handling" + float grey_point_source; + float black_point_source; + float white_point_source; + float reconstruct_threshold; + float reconstruct_feather; + float reconstruct_bloom_vs_details; + float reconstruct_grey_vs_color; + float reconstruct_structure_vs_texture; + float security_factor; + float grey_point_target; + float black_point_target; + float white_point_target; + float output_power; + float latitude; + float contrast; + float saturation; + float balance; + float noise_level; + dt_iop_filmicrgb_methods_type_t preserve_color; + dt_iop_filmicrgb_colorscience_type_t version; + gboolean auto_hardness; + gboolean custom_grey; + int high_quality_reconstruction; + dt_iop_filmic_noise_distribution_t noise_distribution; + dt_iop_filmicrgb_curve_type_t shadows; + dt_iop_filmicrgb_curve_type_t highlights; + gboolean compensate_icc_black; + dt_iop_filmicrgb_spline_version_type_t spline_version; } dt_iop_filmicrgb_params_v5_t; - dt_iop_filmicrgb_params_v5_t *o = (dt_iop_filmicrgb_params_v5_t *)old_params; - dt_iop_filmicrgb_params_t *n = (dt_iop_filmicrgb_params_t *)new_params; - - // Init params with defaults - memcpy(new_params, self->default_params, sizeof(dt_iop_filmicrgb_params_t)); + const dt_iop_filmicrgb_params_v5_t *o = (dt_iop_filmicrgb_params_v5_t *)old_params; + dt_iop_filmicrgb_params_v6_t *n = + (dt_iop_filmicrgb_params_v6_t *)malloc(sizeof(dt_iop_filmicrgb_params_v6_t)); // Copy over the old parameters n->grey_point_source = o->grey_point_source; @@ -779,6 +832,9 @@ // New parameter n->enable_highlight_reconstruction = TRUE; + *new_params = n; + *new_params_size = sizeof(dt_iop_filmicrgb_params_v6_t); + *new_version = 6; return 0; } return 1; @@ -1278,8 +1334,7 @@ return CLAMP(scales, 1, MAX_NUM_SCALES); } - -static inline gint reconstruct_highlights(const float *const restrict in, +static inline gboolean reconstruct_highlights(const float *const restrict in, const float *const restrict mask, float *const restrict reconstructed, const dt_iop_filmicrgb_reconstruction_type_t variant, @@ -1288,7 +1343,7 @@ const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) { - gint success = TRUE; + gboolean success = TRUE; // wavelets scales const int scales = get_scales(roi_in, piece); @@ -1335,52 +1390,65 @@ { const float *restrict detail; // buffer containing this scale's input float *restrict LF; // output buffer for the current scale - float *restrict HF_RGB_temp; // temp buffer for HF_RBG terms before blurring + float *restrict HF; // temp buffer for HF_RBG terms before blurring // swap buffers so we only need 2 LF buffers : the LF at scale (s-1) and the one at current scale (s) if(s == 0) { detail = in; LF = LF_odd; - HF_RGB_temp = LF_even; + HF = LF_even; } else if(s % 2 != 0) { detail = LF_odd; LF = LF_even; - HF_RGB_temp = LF_odd; + HF = LF_odd; } else { detail = LF_even; LF = LF_odd; - HF_RGB_temp = LF_even; + HF = LF_even; } const int mult = 1 << s; // fancy-pants C notation for 2^s with integer type, don't be afraid - // Compute wavelets - split data into high- and low-frequency scales - float *texture = HF_RGB_temp; - decompose_2D_Bspline(detail, HF_RGB_temp, LF, roi_out->width, roi_out->height, mult, temp, padded_size); + // Compute wavelets low-frequency scales + blur_2D_Bspline(detail, LF, temp, padded_size, roi_out->width, roi_out->height, mult, TRUE); // clip negatives + + // Compute wavelets high-frequency scales and save the minimum of texture over the RGB channels in HF + const size_t pts = roi_out->height * roi_out->width; +#ifdef _OPENMP +#pragma omp parallel for simd default(none) \ + dt_omp_firstprivate(pts, HF, LF, detail) \ + schedule(simd:static) \ + aligned(HF, LF, detail : 64) +#endif + for(size_t k = 0; k < pts; k++) + { + for_each_channel(c) + HF[4*k + c] = detail[4*k + c] - LF[4*k + c]; + } // interpolate/blur/inpaint (same thing) the RGB high-frequency to fill holes - blur_2D_Bspline(HF_RGB_temp, HF_RGB, temp, roi_out->width, roi_out->height, 1, TRUE); // clip negatives + blur_2D_Bspline(HF, HF_RGB, temp, padded_size, roi_out->width, roi_out->height, 1, TRUE); // clip negatives // FIXME: HF have legitimate negatives, so clipping them is wrong, but compatibility… // Reconstruct clipped parts if(variant == DT_FILMIC_RECONSTRUCT_RGB) - wavelets_reconstruct_RGB(HF_RGB, LF, texture, mask, reconstructed, roi_out->width, roi_out->height, + wavelets_reconstruct_RGB(HF_RGB, LF, HF, mask, reconstructed, roi_out->width, roi_out->height, gamma, gamma_comp, beta, beta_comp, delta, s, scales); else if(variant == DT_FILMIC_RECONSTRUCT_RATIOS) - wavelets_reconstruct_ratios(HF_RGB, LF, texture, mask, reconstructed, roi_out->width, roi_out->height, + wavelets_reconstruct_ratios(HF_RGB, LF, HF, mask, reconstructed, roi_out->width, roi_out->height, gamma, gamma_comp, beta, beta_comp, delta, s, scales); } error: - if(temp) dt_free_align(temp); - if(LF_even) dt_free_align(LF_even); - if(LF_odd) dt_free_align(LF_odd); - if(HF_RGB) dt_free_align(HF_RGB); + dt_free_align(temp); + dt_free_align(LF_even); + dt_free_align(LF_odd); + dt_free_align(HF_RGB); return success; } @@ -1626,7 +1694,7 @@ dt_aligned_pixel_t Ych_final, const float saturation) { - // Note : Ych is normalized trough the LMS conversion, + // Note : Ych is normalized through the LMS conversion, // meaning c is actually a saturation (saturation ~= chroma / brightness). // So copy-pasting c and h from a different Y is equivalent to // tonemapping with a norm, which is equivalent to doing exposure compensation : @@ -1651,7 +1719,7 @@ const int user_desat = (saturation < 0.f); chroma_final = (filmic_brightens && filmic_resat) - ? (chroma_original + chroma_final) / 2.f // force original lower sat if brightening + ? (chroma_original + chroma_final) / 2.f // force original lower sat if brightening : ((user_resat && filmic_desat) || user_desat) ? chroma_final + delta_chroma // allow resaturation only if filmic desaturated, allow desat anytime : chroma_final; @@ -2163,7 +2231,7 @@ const float scale = fmaxf(piece->iscale / roi_in->scale, 1.f); // build a mask of clipped pixels - const int recover_highlights = data->enable_highlight_reconstruction + const gboolean recover_highlights = data->enable_highlight_reconstruction && mask_clipped_pixels(in, mask, data->normalize, data->reconstruct_feather, roi_out->width, roi_out->height); // display mask and exit @@ -2189,8 +2257,8 @@ { // init the blown areas with noise to create particles float *const restrict inpainted = dt_alloc_align_float((size_t)roi_out->width * roi_out->height * 4); - gint success_1 = FALSE; - gint success_2 = TRUE; + gboolean success_1 = FALSE; + gboolean success_2 = TRUE; if(inpainted) { inpaint_noise(in, mask, inpainted, data->noise_level / scale, data->reconstruct_threshold, @@ -2222,14 +2290,14 @@ } } - if(norms) dt_free_align(norms); - if(ratios) dt_free_align(ratios); + dt_free_align(norms); + dt_free_align(ratios); } if(success_1 && success_2) in = reconstructed; // use reconstructed buffer as tonemapping input } - if(mask) dt_free_align(mask); + dt_free_align(mask); const float white_display = powf(data->spline.y[4], data->output_power); const float black_display = powf(data->spline.y[0], data->output_power); @@ -2269,7 +2337,7 @@ } } - if(reconstructed) dt_free_align(reconstructed); + dt_free_align(reconstructed); } #ifdef HAVE_OPENCL @@ -2466,6 +2534,8 @@ dt_colorspaces_iccprofile_info_cl_t *profile_info_cl; cl_float *profile_lut_cl = NULL; + cl_mem clipped = NULL; + err = dt_ioppr_build_iccprofile_params_cl(work_profile, devid, &profile_info_cl, &profile_lut_cl, &dev_profile_info, &dev_profile_lut); if(err != CL_SUCCESS) goto error; @@ -2481,9 +2551,10 @@ // used to adjust noise level depending on size. Don't amplify noise if magnified > 100% const float scale = MAX(piece->iscale / roi_in->scale, 1.f); - // get the number of OpenCL threads - uint16_t is_clipped = 0; - cl_mem clipped = dt_opencl_alloc_device(devid, 1, 1, sizeof(uint16_t)); + uint32_t is_clipped = 0; + clipped = dt_opencl_alloc_device_buffer(devid, sizeof(uint32_t)); + err = dt_opencl_write_buffer_to_device(devid, &is_clipped, clipped, 0, sizeof(uint16_t), CL_TRUE); + if(err != CL_SUCCESS) goto error; // build a mask of clipped pixels mask = dt_opencl_alloc_device(devid, sizes[0], sizes[1], sizeof(float)); @@ -2492,8 +2563,9 @@ err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_filmic_mask, sizes); if(err != CL_SUCCESS) goto error; - // read the number of clipped pixels - dt_opencl_copy_device_to_host(devid, &is_clipped, clipped, 1, 1, sizeof(uint16_t)); + // check for clipped pixels + err = dt_opencl_read_buffer_from_device(devid, &is_clipped, clipped, 0, sizeof(uint32_t), CL_TRUE); + if(err != CL_SUCCESS) goto error; dt_opencl_release_mem_object(clipped); clipped = NULL; @@ -2509,7 +2581,7 @@ err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_filmic_show_mask, sizes); dt_opencl_release_mem_object(mask); dt_ioppr_free_iccprofile_params_cl(&profile_info_cl, &profile_lut_cl, &dev_profile_info, &dev_profile_lut); - return TRUE; + return err; } } @@ -2588,7 +2660,6 @@ CLARG(export_output_matrix_cl)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_filmic_rgb_split, sizes); - if(err != CL_SUCCESS) goto error; } else { @@ -2602,30 +2673,21 @@ CLARG(export_output_matrix_cl), CLARG(norm_min), CLARG(norm_max)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_filmic_rgb_chroma, sizes); - if(err != CL_SUCCESS) goto error; } - dt_opencl_release_mem_object(reconstructed); - dt_ioppr_free_iccprofile_params_cl(&profile_info_cl, &profile_lut_cl, &dev_profile_info, &dev_profile_lut); - dt_opencl_release_mem_object(input_matrix_cl); - dt_opencl_release_mem_object(output_matrix_cl); - dt_opencl_release_mem_object(export_input_matrix_cl); - dt_opencl_release_mem_object(export_output_matrix_cl); - return TRUE; - error: dt_ioppr_free_iccprofile_params_cl(&profile_info_cl, &profile_lut_cl, &dev_profile_info, &dev_profile_lut); dt_opencl_release_mem_object(reconstructed); dt_opencl_release_mem_object(inpainted); dt_opencl_release_mem_object(mask); dt_opencl_release_mem_object(ratios); - dt_opencl_release_mem_object(norms); dt_opencl_release_mem_object(input_matrix_cl); dt_opencl_release_mem_object(output_matrix_cl); dt_opencl_release_mem_object(export_input_matrix_cl); dt_opencl_release_mem_object(export_output_matrix_cl); - dt_print(DT_DEBUG_OPENCL, "[opencl_filmicrgb] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + dt_opencl_release_mem_object(norms); + dt_opencl_release_mem_object(clipped); + return err; } #endif @@ -2754,7 +2816,8 @@ dt_dev_add_history_item(darktable.develop, self, TRUE); } -void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece) +void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, + dt_dev_pixelpipe_t *pipe) { dt_iop_filmicrgb_gui_data_t *g = (dt_iop_filmicrgb_gui_data_t *)self->gui_data; @@ -3383,6 +3446,7 @@ // Cache the graph objects to avoid recomputing all the view at each redraw gtk_widget_get_allocation(widget, &g->allocation); + g->allocation.height -= DT_RESIZE_HANDLE_SIZE; cairo_surface_t *cst = dt_cairo_image_surface_create(CAIRO_FORMAT_ARGB32, g->allocation.width, g->allocation.height); @@ -4220,7 +4284,7 @@ cairo_surface_destroy(cst); g_object_unref(layout); pango_font_description_free(desc); - return TRUE; + return FALSE; } static gboolean area_button_press(GtkWidget *widget, GdkEventButton *event, gpointer user_data) @@ -4458,7 +4522,7 @@ g->security_factor = dt_bauhaus_slider_from_params(self, "security_factor"); dt_bauhaus_slider_set_soft_max(g->security_factor, 50); dt_bauhaus_slider_set_format(g->security_factor, "%"); - gtk_widget_set_tooltip_text(g->security_factor, _("symmetrically enlarge or shrink the computed dynamic range.\n" + gtk_widget_set_tooltip_text(g->security_factor, _("symmetrically increase or decrease the computed dynamic range.\n" "useful to give a safety margin to extreme luminances.")); // Auto tune slider @@ -4516,7 +4580,7 @@ gtk_widget_set_tooltip_text(g->reconstruct_structure_vs_texture, /* xgettext:no-c-format */ _("decide which reconstruction strategy to favor,\n" - "between inpainting a smooth color gradient,\n" + "inpainting a smooth color gradient\n" "or trying to recover the textured details.\n" "0% is an equal mix of both.\n" "increase if at least one RGB channel is not clipped.\n" @@ -4527,7 +4591,7 @@ gtk_widget_set_tooltip_text(g->reconstruct_bloom_vs_details, /* xgettext:no-c-format */ _("decide which reconstruction strategy to favor,\n" - "between blooming highlights like film does,\n" + "blooming highlights like film does\n" "or trying to recover sharp details.\n" "0% is an equal mix of both.\n" "increase if you want more details.\n" @@ -4539,7 +4603,7 @@ gtk_widget_set_tooltip_text(g->reconstruct_grey_vs_color, /* xgettext:no-c-format */ _("decide which reconstruction strategy to favor,\n" - "between recovering monochromatic highlights,\n" + "recovering monochromatic highlights\n" "or trying to recover colorful highlights.\n" "0% is an equal mix of both.\n" "increase if you want more color.\n" diff -Nru darktable-4.4.2/src/iop/finalscale.c darktable-4.6.1/src/iop/finalscale.c --- darktable-4.4.2/src/iop/finalscale.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/finalscale.c 2024-02-16 17:31:09.000000000 +0000 @@ -50,9 +50,9 @@ return IOP_GROUP_BASIC | IOP_GROUP_TECHNICAL; } -int default_colorspace(dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -75,8 +75,12 @@ roi_in->width = (roi_out->width - .5f)/roi_out->scale; roi_in->height = (roi_out->height - .5f)/roi_out->scale; */ - roi_in->width = ceilf(roi_out->width / roi_out->scale); - roi_in->height = ceilf(roi_out->height / roi_out->scale); + + // always avoid + // - expanding roi_in dimensions to more than what is provided + // - processing micro-sizes + roi_in->width = MAX(16, MIN(ceilf(roi_out->width / roi_out->scale), piece->buf_in.width)); + roi_in->height = MAX(16, MIN(ceilf(roi_out->height / roi_out->scale), piece->buf_in.height)); roi_in->scale = 1.0f; } @@ -104,23 +108,14 @@ { dt_print(DT_DEBUG_OPENCL, "[opencl_finalscale] upscaling not yet supported by opencl code\n"); - return FALSE; + return DT_OPENCL_PROCESS_CL; } const int devid = piece->pipe->devid; dt_print_pipe(DT_DEBUG_PIPE | DT_DEBUG_IMAGEIO, "clip_and_zoom_roi CL", piece->pipe, self, roi_in, roi_out, "device=%i\n", devid); - const cl_int err = dt_iop_clip_and_zoom_roi_cl(devid, dev_out, dev_in, roi_out, roi_in); - if(err != CL_SUCCESS) - { - dt_print(DT_DEBUG_OPENCL, - "[opencl_finalscale] couldn't `dt_iop_clip_and_zoom_roi_cl`: %s\n", - cl_errstr(err)); - return FALSE; - } - - return TRUE; + return dt_iop_clip_and_zoom_roi_cl(devid, dev_out, dev_in, roi_out, roi_in); } #endif diff -Nru darktable-4.4.2/src/iop/flip.c darktable-4.6.1/src/iop/flip.c --- darktable-4.4.2/src/iop/flip.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/flip.c 2024-02-16 17:31:09.000000000 +0000 @@ -96,9 +96,9 @@ | IOP_FLAGS_ONE_INSTANCE | IOP_FLAGS_UNSAFE_COPY | IOP_FLAGS_GUIDES_WIDGET; } -int default_colorspace(dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -145,21 +145,25 @@ int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, - const int new_version) + void **new_params, + int32_t *new_params_size, + int *new_version) { - if(old_version == 1 && new_version == 2) + typedef struct dt_iop_flip_params_v2_t + { + dt_image_orientation_t orientation; + } dt_iop_flip_params_v2_t; + + if(old_version == 1) { typedef struct dt_iop_flip_params_v1_t { int32_t orientation; } dt_iop_flip_params_v1_t; - const dt_iop_flip_params_v1_t *old = (dt_iop_flip_params_v1_t *)old_params; - dt_iop_flip_params_t *n = (dt_iop_flip_params_t *)new_params; - const dt_iop_flip_params_t *d = (dt_iop_flip_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + const dt_iop_flip_params_v1_t *o = (dt_iop_flip_params_v1_t *)old_params; + dt_iop_flip_params_v2_t *n = + (dt_iop_flip_params_v2_t *)malloc(sizeof(dt_iop_flip_params_v2_t)); // we might be called from presets update infrastructure => there is no image dt_image_orientation_t image_orientation = ORIENTATION_NONE; @@ -167,9 +171,13 @@ if(self->dev) image_orientation = dt_image_orientation(&self->dev->image_storage); - n->orientation = merge_two_orientations(image_orientation, - (dt_image_orientation_t)(old->orientation)); - + n->orientation = merge_two_orientations + (image_orientation, + (dt_image_orientation_t)(o->orientation)); + + *new_params = n; + *new_params_size = sizeof(dt_iop_flip_params_v2_t); + *new_version = 2; return 0; } return 1; @@ -206,16 +214,15 @@ } } -int distort_transform(dt_iop_module_t *self, - dt_dev_pixelpipe_iop_t *piece, - float *const restrict points, - const size_t points_count) +gboolean distort_transform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *const restrict points, + const size_t points_count) { - // if(!self->enabled) return 2; const dt_iop_flip_data_t *d = (dt_iop_flip_data_t *)piece->data; // nothing to be done if parameters are set to neutral values (no flip or swap) - if(d->orientation == 0) return 1; + if(d->orientation == 0) return TRUE; #ifdef _OPENMP #pragma omp parallel for default(none) \ @@ -243,19 +250,18 @@ points[i + 1] = y; } - return 1; + return TRUE; } -int distort_backtransform(dt_iop_module_t *self, - dt_dev_pixelpipe_iop_t *piece, - float *const restrict points, - const size_t points_count) +gboolean distort_backtransform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *const restrict points, + const size_t points_count) { - // if(!self->enabled) return 2; const dt_iop_flip_data_t *d = (dt_iop_flip_data_t *)piece->data; // nothing to be done if parameters are set to neutral values (no flip or swap) - if(d->orientation == 0) return 1; + if(d->orientation == 0) return TRUE; #ifdef _OPENMP #pragma omp parallel for default(none) \ @@ -282,7 +288,7 @@ points[i + 1] = y; } - return 1; + return TRUE; } void distort_mask(struct dt_iop_module_t *self, @@ -395,22 +401,14 @@ { const dt_iop_flip_data_t *data = (dt_iop_flip_data_t *)piece->data; const dt_iop_flip_global_data_t *gd = (dt_iop_flip_global_data_t *)self->global_data; - cl_int err = DT_OPENCL_DEFAULT_ERROR; const int devid = piece->pipe->devid; const int width = roi_in->width; const int height = roi_in->height; const int orientation = data->orientation; - err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_flip, width, height, + return dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_flip, width, height, CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(orientation)); - - if(err != CL_SUCCESS) goto error; - return TRUE; - -error: - dt_print(DT_DEBUG_OPENCL, "[opencl_flip] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; } #endif diff -Nru darktable-4.4.2/src/iop/gamma.c darktable-4.6.1/src/iop/gamma.c --- darktable-4.4.2/src/iop/gamma.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/gamma.c 2024-02-16 17:31:09.000000000 +0000 @@ -54,7 +54,9 @@ return IOP_FLAGS_HIDDEN | IOP_FLAGS_ONE_INSTANCE | IOP_FLAGS_FENCE | IOP_FLAGS_UNSAFE_COPY; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -303,15 +305,15 @@ { // yellow, "unused" element aids vectorization const dt_aligned_pixel_t mask_color = { 1.0f, 1.0f, 0.0f }; - + const gboolean devel = dt_conf_get_bool("darkroom/ui/develop_mask"); #ifdef _OPENMP #pragma omp parallel for simd default(none) schedule(static) \ aligned(in, out: 64) aligned(mask_color: 16) \ - dt_omp_firstprivate(in, out, buffsize, alpha, mask_color) + dt_omp_firstprivate(in, out, buffsize, alpha, mask_color, devel) #endif for(size_t j = 0; j < buffsize; j+= 4) { - const float gray = 0.3f * in[j + 0] + 0.59f * in[j + 1] + 0.11f * in[j + 2]; + const float gray = devel ? in[j + 3] : (0.3f * in[j + 0] + 0.59f * in[j + 1] + 0.11f * in[j + 2]); const dt_aligned_pixel_t pixel = { gray, gray, gray, gray }; _write_pixel(pixel, out + j, mask_color, in[j + 3] * alpha); } diff -Nru darktable-4.4.2/src/iop/globaltonemap.c darktable-4.6.1/src/iop/globaltonemap.c --- darktable-4.4.2/src/iop/globaltonemap.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/globaltonemap.c 2024-02-16 17:31:09.000000000 +0000 @@ -115,22 +115,56 @@ return IOP_GROUP_TONE | IOP_GROUP_GRADING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, const int new_version) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) { - if(old_version < 3 && new_version == 3) + typedef struct dt_iop_global_tonemap_params_v3_t { - dt_iop_global_tonemap_params_t *o = (dt_iop_global_tonemap_params_t *)old_params; - dt_iop_global_tonemap_params_t *n = (dt_iop_global_tonemap_params_t *)new_params; + _iop_operator_t operator; // $DEFAULT: OPERATOR_DRAGO + struct + { + float bias; + float max_light; + } drago; + float detail; + } dt_iop_global_tonemap_params_v3_t; + + if(old_version < 3) + { + typedef struct dt_iop_global_tonemap_params_v1_t + { + _iop_operator_t operator; // $DEFAULT: OPERATOR_DRAGO + struct + { + float bias; + float max_light; + } drago; + } dt_iop_global_tonemap_params_v1_t; + + const dt_iop_global_tonemap_params_v1_t *o = + (dt_iop_global_tonemap_params_v1_t *)old_params; + dt_iop_global_tonemap_params_v3_t *n = + (dt_iop_global_tonemap_params_v3_t *) + malloc(sizeof(dt_iop_global_tonemap_params_v3_t)); // only appended detail, 0 is no-op - memcpy(n, o, sizeof(dt_iop_global_tonemap_params_t) - sizeof(float)); + memcpy(n, o, sizeof(dt_iop_global_tonemap_params_v1_t)); n->detail = 0.0f; + + *new_params = n; + *new_params_size = sizeof(dt_iop_global_tonemap_params_v3_t); + *new_version = 3; return 0; } return 1; @@ -374,7 +408,7 @@ .sizex = 1 << 4, .sizey = 1 << 4 }; if(!dt_opencl_local_buffer_opt(devid, gd->kernel_pixelmax_first, &flocopt)) - goto error; + goto finally; const size_t bwidth = ROUNDUP(width, flocopt.sizex); const size_t bheight = ROUNDUP(height, flocopt.sizey); @@ -387,7 +421,7 @@ .sizex = 1 << 16, .sizey = 1 }; if(!dt_opencl_local_buffer_opt(devid, gd->kernel_pixelmax_second, &slocopt)) - goto error; + goto finally; const int reducesize = MIN(REDUCESIZE, ROUNDUP(bufsize, slocopt.sizex) / slocopt.sizex); @@ -395,10 +429,10 @@ size_t local[3]; dev_m = dt_opencl_alloc_device_buffer(devid, sizeof(float) * bufsize); - if(dev_m == NULL) goto error; + if(dev_m == NULL) goto finally; dev_r = dt_opencl_alloc_device_buffer(devid, sizeof(float) * reducesize); - if(dev_r == NULL) goto error; + if(dev_r == NULL) goto finally; sizes[0] = bwidth; sizes[1] = bheight; @@ -409,7 +443,7 @@ dt_opencl_set_kernel_args(devid, gd->kernel_pixelmax_first, 0, CLARG(dev_in), CLARG(width), CLARG(height), CLARG(dev_m), CLLOCAL(sizeof(float) * flocopt.sizex * flocopt.sizey)); err = dt_opencl_enqueue_kernel_2d_with_local(devid, gd->kernel_pixelmax_first, sizes, local); - if(err != CL_SUCCESS) goto error; + if(err != CL_SUCCESS) goto finally; sizes[0] = (size_t)reducesize * slocopt.sizex; sizes[1] = 1; @@ -420,12 +454,12 @@ dt_opencl_set_kernel_args(devid, gd->kernel_pixelmax_second, 0, CLARG(dev_m), CLARG(dev_r), CLARG(bufsize), CLLOCAL(sizeof(float) * slocopt.sizex)); err = dt_opencl_enqueue_kernel_2d_with_local(devid, gd->kernel_pixelmax_second, sizes, local); - if(err != CL_SUCCESS) goto error; + if(err != CL_SUCCESS) goto finally; maximum = dt_alloc_align_float((size_t)reducesize); err = dt_opencl_read_buffer_from_device(devid, (void *)maximum, dev_r, 0, sizeof(float) * reducesize, CL_TRUE); - if(err != CL_SUCCESS) goto error; + if(err != CL_SUCCESS) goto finally; dt_opencl_release_mem_object(dev_r); dt_opencl_release_mem_object(dev_m); @@ -471,36 +505,32 @@ if(d->detail != 0.0f) { + err = DT_OPENCL_DEFAULT_ERROR; b = dt_bilateral_init_cl(devid, roi_in->width, roi_in->height, sigma_s, sigma_r); - if(!b) goto error; + if(!b) goto finally; // get detail from unchanged input buffer err = dt_bilateral_splat_cl(b, dev_in); - if(err != CL_SUCCESS) goto error; + if(err != CL_SUCCESS) goto finally; } err = dt_opencl_enqueue_kernel_2d_args(devid, gtkernel, width, height, CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(parameters)); - if(err != CL_SUCCESS) goto error; + if(err != CL_SUCCESS) goto finally; if(d->detail != 0.0f) { err = dt_bilateral_blur_cl(b); - if(err != CL_SUCCESS) goto error; + if(err != CL_SUCCESS) goto finally; // and apply it to output buffer after logscale err = dt_bilateral_slice_to_output_cl(b, dev_in, dev_out, d->detail); - if(err != CL_SUCCESS) goto error; - dt_bilateral_free_cl(b); } - return TRUE; - -error: +finally: if(b) dt_bilateral_free_cl(b); dt_opencl_release_mem_object(dev_m); dt_opencl_release_mem_object(dev_r); dt_free_align(maximum); - dt_print(DT_DEBUG_OPENCL, "[opencl_global_tonemap] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif @@ -646,4 +676,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/graduatednd.c darktable-4.6.1/src/iop/graduatednd.c --- darktable-4.4.2/src/iop/graduatednd.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/graduatednd.c 2024-02-16 17:31:09.000000000 +0000 @@ -160,7 +160,9 @@ return IOP_GROUP_EFFECT | IOP_GROUP_GRADING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -214,9 +216,11 @@ float *offset) { // we want absolute positions + float wd, ht; + dt_dev_get_preview_size(self->dev, &wd, &ht); float pts[4] - = { xa * self->dev->preview_pipe->backbuf_width, ya * self->dev->preview_pipe->backbuf_height, - xb * self->dev->preview_pipe->backbuf_width, yb * self->dev->preview_pipe->backbuf_height }; + = { xa * wd, ya * ht, + xb * wd, yb * ht }; dt_dev_distort_backtransform_plus(self->dev, self->dev->preview_pipe, self->iop_order, DT_DEV_TRANSFORM_DIR_FORW_EXCL, pts, 2); dt_dev_pixelpipe_iop_t *piece = dt_dev_distort_get_iop_pipe(self->dev, self->dev->preview_pipe, self); pts[0] /= (float)piece->buf_out.width; @@ -434,10 +438,12 @@ if(!dt_dev_distort_transform_plus(self->dev, self->dev->preview_pipe, self->iop_order, DT_DEV_TRANSFORM_DIR_FORW_EXCL, pts, 2)) return 0; - *xa = pts[0] / self->dev->preview_pipe->backbuf_width; - *ya = pts[1] / self->dev->preview_pipe->backbuf_height; - *xb = pts[2] / self->dev->preview_pipe->backbuf_width; - *yb = pts[3] / self->dev->preview_pipe->backbuf_height; + float wd, ht; + dt_dev_get_preview_size(self->dev, &wd, &ht); + *xa = pts[0] / wd; + *ya = pts[1] / ht; + *xb = pts[2] / wd; + *yb = pts[3] / ht; return 1; } @@ -448,10 +454,8 @@ dt_bauhaus_slider_set_stop(slider, 1.0, rgb[0], rgb[1], rgb[2]); } -void color_picker_apply( - dt_iop_module_t *self, - GtkWidget *picker, - dt_dev_pixelpipe_iop_t *piece) +void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, + dt_dev_pixelpipe_t *pipe) { dt_iop_graduatednd_gui_data_t *g = (dt_iop_graduatednd_gui_data_t *)self->gui_data; dt_iop_graduatednd_params_t *p = (dt_iop_graduatednd_params_t *)self->params; @@ -483,30 +487,17 @@ dt_iop_color_picker_reset(self, TRUE); } -void gui_post_expose( - struct dt_iop_module_t *self, - cairo_t *cr, - int32_t width, - int32_t height, - int32_t pointerx, - int32_t pointery) +void gui_post_expose(dt_iop_module_t *self, + cairo_t *cr, + const float wd, + const float ht, + const float pointerx, + const float pointery, + const float zoom_scale) { - dt_develop_t *dev = self->dev; dt_iop_graduatednd_gui_data_t *g = (dt_iop_graduatednd_gui_data_t *)self->gui_data; dt_iop_graduatednd_params_t *p = (dt_iop_graduatednd_params_t *)self->params; - const float wd = dev->preview_pipe->backbuf_width; - const float ht = dev->preview_pipe->backbuf_height; - const float zoom_y = dt_control_get_dev_zoom_y(); - const float zoom_x = dt_control_get_dev_zoom_x(); - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 1); - - cairo_translate(cr, width / 2.0, height / 2.0f); - cairo_scale(cr, zoom_scale, zoom_scale); - cairo_translate(cr, -.5f * wd - zoom_x * wd, -.5f * ht - zoom_y * ht); - // we get the extremities of the line if(g->define == 0) { @@ -516,11 +507,12 @@ const float xa = g->xa * wd, xb = g->xb * wd, ya = g->ya * ht, yb = g->yb * ht; // the lines + const double lwidth = (dt_iop_canvas_not_sensitive(darktable.develop) ? 0.5 : 1.0) / zoom_scale; cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND); if(g->selected == 3 || g->dragging == 3) - cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(5.0) / zoom_scale); + cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(5.0) * lwidth); else - cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(3.0) / zoom_scale); + cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(3.0) * lwidth); dt_draw_set_color_overlay(cr, FALSE, 0.8); cairo_move_to(cr, xa, ya); @@ -528,19 +520,20 @@ cairo_stroke(cr); if(g->selected == 3 || g->dragging == 3) - cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(2.0) / zoom_scale); + cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(2.0) * lwidth); else - cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(1.0) / zoom_scale); + cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(1.0) * lwidth); dt_draw_set_color_overlay(cr, TRUE, 0.8); cairo_move_to(cr, xa, ya); cairo_line_to(cr, xb, yb); cairo_stroke(cr); + if(dt_iop_canvas_not_sensitive(darktable.develop)) + return; // the extremities - const float pr_d = darktable.develop->preview_downsampling; float x1, y1, x2, y2; const float l = sqrtf((xb - xa) * (xb - xa) + (yb - ya) * (yb - ya)); - const float ext = wd * 0.01f / pr_d / zoom_scale; + const float ext = wd * 0.01f / zoom_scale; x1 = xa + (xb - xa) * ext / l; y1 = ya + (yb - ya) * ext / l; x2 = (xa + x1) / 2.0; @@ -551,7 +544,7 @@ cairo_line_to(cr, x1, y1); cairo_line_to(cr, x2, y2); cairo_close_path(cr); - cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(1.0) / zoom_scale); + cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(1.0) * lwidth); if(g->selected == 1 || g->dragging == 1) dt_draw_set_color_overlay(cr, TRUE, 1.0); else @@ -573,7 +566,7 @@ cairo_line_to(cr, x1, y1); cairo_line_to(cr, x2, y2); cairo_close_path(cr); - cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(1.0) / zoom_scale); + cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(1.0) * lwidth); if(g->selected == 2 || g->dragging == 2) dt_draw_set_color_overlay(cr, TRUE, 1.0); else @@ -586,21 +579,14 @@ cairo_stroke(cr); } -int mouse_moved( - struct dt_iop_module_t *self, - double x, - double y, - double pressure, - int which) +int mouse_moved(dt_iop_module_t *self, + const float pzx, + const float pzy, + const double pressure, + const int which, + const float zoom_scale) { dt_iop_graduatednd_gui_data_t *g = (dt_iop_graduatednd_gui_data_t *)self->gui_data; - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(self->dev, zoom, 1<<closeup, 1); - float pzx, pzy; - dt_dev_get_pointer_zoom_pos(self->dev, x, y, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; // are we dragging something ? if(g->dragging > 0) @@ -630,9 +616,8 @@ } else { - const float pr_d = darktable.develop->preview_downsampling; g->selected = 0; - const float ext = DT_PIXEL_APPLY_DPI(0.02f) / pr_d / zoom_scale; + const float ext = DT_PIXEL_APPLY_DPI(0.02f) / zoom_scale; // are we near extermity ? if(pzy > g->ya - ext && pzy < g->ya + ext && pzx > g->xa - ext && pzx < g->xa + ext) { @@ -650,20 +635,16 @@ return 1; } -int button_pressed( - struct dt_iop_module_t *self, - double x, - double y, - double pressure, - int which, - int type, - uint32_t state) +int button_pressed(dt_iop_module_t *self, + const float pzx, + const float pzy, + const double pressure, + const int which, + const int type, + const uint32_t state, + const float zoom_scale) { dt_iop_graduatednd_gui_data_t *g = (dt_iop_graduatednd_gui_data_t *)self->gui_data; - float pzx, pzy; - dt_dev_get_pointer_zoom_pos(self->dev, x, y, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; if(which == 3) { @@ -688,22 +669,17 @@ return 0; } -int button_released( - struct dt_iop_module_t *self, - double x, - double y, - int which, - uint32_t state) +int button_released(dt_iop_module_t *self, + const float pzx, + const float pzy, + const int which, + const uint32_t state, + const float zoom_scale) { dt_iop_graduatednd_gui_data_t *g = (dt_iop_graduatednd_gui_data_t *)self->gui_data; dt_iop_graduatednd_params_t *p = (dt_iop_graduatednd_params_t *)self->params; if(g->dragging > 0) { - float pzx, pzy; - dt_dev_get_pointer_zoom_pos(self->dev, x, y, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; - float r = 0.0, o = 0.0; _set_grad_from_points(self, g->xa, g->ya, g->xb, g->yb, &r, &o); @@ -733,8 +709,8 @@ int scrolled( dt_iop_module_t *self, - double x, - double y, + float x, + float y, int up, uint32_t state) { @@ -974,7 +950,6 @@ dt_iop_graduatednd_data_t *data = (dt_iop_graduatednd_data_t *)piece->data; dt_iop_graduatednd_global_data_t *gd = (dt_iop_graduatednd_global_data_t *)self->global_data; - cl_int err = DT_OPENCL_DEFAULT_ERROR; const int devid = piece->pipe->devid; const int width = roi_in->width; const int height = roi_in->height; @@ -1011,15 +986,9 @@ int kernel = density > 0 ? gd->kernel_graduatedndp : gd->kernel_graduatedndm; - err = dt_opencl_enqueue_kernel_2d_args(devid, kernel, width, height, + return dt_opencl_enqueue_kernel_2d_args(devid, kernel, width, height, CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARRAY(4, data->color), CLARG(density), CLARG(length_base), CLARG(length_inc_x), CLARG(length_inc_y)); - if(err != CL_SUCCESS) goto error; - return TRUE; - -error: - dt_print(DT_DEBUG_OPENCL, "[opencl_graduatednd] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; } #endif diff -Nru darktable-4.4.2/src/iop/grain.c darktable-4.6.1/src/iop/grain.c --- darktable-4.4.2/src/iop/grain.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/grain.c 2024-02-16 17:31:09.000000000 +0000 @@ -85,10 +85,22 @@ } dt_iop_grain_data_t; -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, void *new_params, - const int new_version) -{ - if(old_version == 1 && new_version == 2) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_grain_params_v2_t + { + _dt_iop_grain_channel_t channel; + float scale; + float strength; + float midtones_bias; + } dt_iop_grain_params_v2_t; + + if(old_version == 1) { typedef struct dt_iop_grain_params_v1_t { @@ -98,13 +110,17 @@ } dt_iop_grain_params_v1_t; const dt_iop_grain_params_v1_t *o = old_params; - dt_iop_grain_params_t *n = new_params; + dt_iop_grain_params_v2_t *n = + (dt_iop_grain_params_v2_t *)malloc(sizeof(dt_iop_grain_params_v2_t)); n->channel = o->channel; n->scale = o->scale; n->strength = o->strength; n->midtones_bias = 0.0; // it produces the same results as the old version + *new_params = n; + *new_params_size = sizeof(dt_iop_grain_params_v2_t); + *new_version = 2; return 0; } return 1; @@ -447,7 +463,9 @@ return IOP_GROUP_EFFECT | IOP_GROUP_EFFECTS; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } @@ -595,4 +613,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/hazeremoval.c darktable-4.6.1/src/iop/hazeremoval.c --- darktable-4.4.2/src/iop/hazeremoval.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/hazeremoval.c 2024-02-16 17:31:09.000000000 +0000 @@ -127,7 +127,9 @@ } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -212,20 +214,6 @@ IOP_GUI_FREE; } -#if 0 //TODO: implement after module version bump to accommodate quickselect fix -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, const int new_version) -{ - if(new_version <= old_version) return 1; - if(old_version == 1 && new_version == 2) - { - //FIXME: copy from old version and add compatibility flag - - } - return 0; -} -#endif - //---------------------------------------------------------------------- // module local functions and structures required by process function //---------------------------------------------------------------------- @@ -828,7 +816,7 @@ dt_opencl_release_mem_object(trans_map); dt_opencl_release_mem_object(trans_map_filtered); - return TRUE; + return CL_SUCCESS; } #endif @@ -837,4 +825,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/highlights.c darktable-4.6.1/src/iop/highlights.c --- darktable-4.4.2/src/iop/highlights.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/highlights.c 2024-02-16 17:31:09.000000000 +0000 @@ -192,27 +192,56 @@ return IOP_FLAGS_SUPPORTS_BLENDING | IOP_FLAGS_ALLOW_TILING | IOP_FLAGS_ONE_INSTANCE; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) -{ - return IOP_CS_RAW; +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) +{ + // This module might possible work in RAW or RGB (e.g. for TIFF files) color space + // depending on the input but will not change it. + return (piece && piece->dsc_in.cst != IOP_CS_RAW) ? IOP_CS_RGB : IOP_CS_RAW; } int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, - const int new_version) -{ - if(old_version == 1 && new_version == 4) + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_highlights_params_v4_t + { + // params of v1 + dt_iop_highlights_mode_t mode; + float blendL; + float blendC; + float strength; + // params of v2 + float clip; + // params of v3 + float noise_level; + int iterations; + dt_atrous_wavelets_scales_t scales; + float candidating; + float combine; + dt_recovery_mode_t recovery; + // params of v4 + float solid_color; + } dt_iop_highlights_params_v4_t; + + if(old_version == 1) { - /* - params of v2 : - float clip - + params of v3 - + params of v4 - */ - memcpy(new_params, old_params, sizeof(dt_iop_highlights_params_t) - 5 * sizeof(float) - 2 * sizeof(int) - sizeof(dt_atrous_wavelets_scales_t)); - dt_iop_highlights_params_t *n = (dt_iop_highlights_params_t *)new_params; + typedef struct dt_iop_highlights_params_v1_t + { + dt_iop_highlights_mode_t mode; + float blendL, blendC, blendh; + float strength; + } dt_iop_highlights_params_v1_t; + + const dt_iop_highlights_params_v1_t *o = (dt_iop_highlights_params_v1_t *)old_params; + dt_iop_highlights_params_v4_t *n = + (dt_iop_highlights_params_v4_t *)malloc(sizeof(dt_iop_highlights_params_v4_t)); + memcpy(n, o, sizeof(dt_iop_highlights_params_v1_t)); + n->clip = 1.0f; n->noise_level = 0.0f; n->candidating = 0.4f; @@ -222,22 +251,27 @@ n->scales = 5; n->solid_color = 0.f; n->strength = 0.0f; + + *new_params = n; + *new_params_size = sizeof(dt_iop_highlights_params_v4_t); + *new_version = 4; return 0; } - if(old_version == 2 && new_version == 4) + if(old_version == 2) { - /* - params of v3 : - float noise_level; - int iterations; - dt_atrous_wavelets_scales_t scales; - float candidating; - float combine; - int recovery; - + params of v4 - */ - memcpy(new_params, old_params, sizeof(dt_iop_highlights_params_t) - 4 * sizeof(float) - 2 * sizeof(int) - sizeof(dt_atrous_wavelets_scales_t)); - dt_iop_highlights_params_t *n = (dt_iop_highlights_params_t *)new_params; + typedef struct dt_iop_highlights_params_v2_t + { + dt_iop_highlights_mode_t mode; + float blendL, blendC, blendh; + float strength; + float clip; + } dt_iop_highlights_params_v2_t; + + const dt_iop_highlights_params_v2_t *o = (dt_iop_highlights_params_v2_t *)old_params; + dt_iop_highlights_params_v4_t *n = + (dt_iop_highlights_params_v4_t *)malloc(sizeof(dt_iop_highlights_params_v4_t)); + memcpy(n, o, sizeof(dt_iop_highlights_params_v2_t)); + n->noise_level = 0.0f; n->candidating = 0.4f; n->combine = 2.f; @@ -246,18 +280,38 @@ n->scales = 5; n->solid_color = 0.f; n->strength = 0.0f; + + *new_params = n; + *new_params_size = sizeof(dt_iop_highlights_params_v4_t); + *new_version = 4; return 0; } - if(old_version == 3 && new_version == 4) + if(old_version == 3) { - /* - params of v4 : - float solid_color; - */ - memcpy(new_params, old_params, sizeof(dt_iop_highlights_params_t) - sizeof(float)); - dt_iop_highlights_params_t *n = (dt_iop_highlights_params_t *)new_params; + typedef struct dt_iop_highlights_params_v3_t + { + dt_iop_highlights_mode_t mode; + float blendL, blendC, blendh; + float strength; + float noise_level; + int iterations; + dt_atrous_wavelets_scales_t scales; + float candidating; + float combine; + dt_recovery_mode_t recovery; + } dt_iop_highlights_params_v3_t; + + const dt_iop_highlights_params_v3_t *o = (dt_iop_highlights_params_v3_t *)old_params; + dt_iop_highlights_params_v4_t *n = + (dt_iop_highlights_params_v4_t *)malloc(sizeof(dt_iop_highlights_params_v4_t)); + memcpy(n, o, sizeof(dt_iop_highlights_params_v3_t)); + n->solid_color = 0.f; n->strength = 0.0f; + + *new_params = n; + *new_params_size = sizeof(dt_iop_highlights_params_v4_t); + *new_version = 4; return 0; } @@ -265,7 +319,8 @@ } static dt_aligned_pixel_t img_oppchroma; -static uint64_t img_opphash = 0; +static gboolean img_oppclipped = TRUE; +static uint64_t img_opphash = ULLONG_MAX; #include "hlreconstruct/segmentation.c" #include "hlreconstruct/segbased.c" @@ -282,7 +337,7 @@ const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) { - dt_iop_copy_image_roi(out, in, 1, roi_in, roi_out, TRUE); + dt_iop_copy_image_roi(out, in, 1, roi_in, roi_out); } /* inpaint opposed and segmentation based algorithms want the whole image for proper calculation @@ -420,8 +475,6 @@ const uint32_t filters = piece->pipe->dsc.filters; const int devid = piece->pipe->devid; - const int width = roi_in->width; - const int height = roi_in->height; const gboolean fullpipe = piece->pipe->type & DT_DEV_PIXELPIPE_FULL; @@ -444,50 +497,46 @@ mclip * (c[GREEN] <= 0.0f ? 1.0f : c[GREEN]) }; dev_clips = dt_opencl_copy_host_to_device_constant(devid, 4 * sizeof(float), clips); - if(dev_clips == NULL) goto error; + if(dev_clips == NULL) goto finish; dev_xtrans = dt_opencl_copy_host_to_device_constant(devid, sizeof(piece->pipe->dsc.xtrans), piece->pipe->dsc.xtrans); - if(dev_xtrans == NULL) goto error; + if(dev_xtrans == NULL) goto finish; - size_t sizes[] = { ROUNDUPDWD(roi_out->width, devid), ROUNDUPDHT(roi_out->height, devid), 1 }; - dt_opencl_set_kernel_args(devid, gd->kernel_highlights_false_color, 0, CLARG(dev_in), CLARG(dev_out), - CLARG(roi_out->width), CLARG(roi_out->height), CLARG(roi_in->width), CLARG(roi_in->height), - CLARG(roi_out->x), CLARG(roi_out->y), CLARG(filters), CLARG(dev_xtrans), + err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_highlights_false_color, roi_out->width, roi_out->height, + CLARG(dev_in), CLARG(dev_out), + CLARG(roi_out->width), CLARG(roi_out->height), + CLARG(roi_in->width), CLARG(roi_in->height), + CLARG(roi_out->x), CLARG(roi_out->y), + CLARG(filters), CLARG(dev_xtrans), CLARG(dev_clips)); - err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_highlights_false_color, sizes); - if(err != CL_SUCCESS) goto error; - - dt_opencl_release_mem_object(dev_clips); - dt_opencl_release_mem_object(dev_xtrans); - return TRUE; + goto finish; } } } - const float clip = d->clip - * fminf(piece->pipe->dsc.processed_maximum[0], - fminf(piece->pipe->dsc.processed_maximum[1], piece->pipe->dsc.processed_maximum[2])); + const float clip = d->clip * dt_iop_get_processed_minimum(piece); if(!filters) { // non-raw images use dedicated kernel which just clips - err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_highlights_4f_clip, width, height, - CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(d->mode), CLARG(clip)); - if(err != CL_SUCCESS) goto error; + err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_highlights_4f_clip, roi_in->width, roi_in->height, + CLARG(dev_in), CLARG(dev_out), + CLARG(roi_in->width), CLARG(roi_in->height), + CLARG(d->mode), CLARG(clip)); } else if(d->mode == DT_IOP_HIGHLIGHTS_OPPOSED) { err = process_opposed_cl(self, piece, dev_in, dev_out, roi_in, roi_out); - if(err != CL_SUCCESS) goto error; } else if(d->mode == DT_IOP_HIGHLIGHTS_LCH && filters != 9u) { // bayer sensor raws with LCH mode - err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_highlights_1f_lch_bayer, width, height, - CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(clip), CLARG(roi_out->x), CLARG(roi_out->y), + err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_highlights_1f_lch_bayer, roi_in->width, roi_in->height, + CLARG(dev_in), CLARG(dev_out), + CLARG(roi_in->width), CLARG(roi_in->height), + CLARG(clip), CLARG(roi_out->x), CLARG(roi_out->y), CLARG(filters)); - if(err != CL_SUCCESS) goto error; } else if(d->mode == DT_IOP_HIGHLIGHTS_LCH && filters == 9u) { @@ -509,52 +558,49 @@ dev_xtrans = dt_opencl_copy_host_to_device_constant(devid, sizeof(piece->pipe->dsc.xtrans), piece->pipe->dsc.xtrans); - if(dev_xtrans == NULL) goto error; + if(dev_xtrans == NULL) goto finish; - size_t sizes[] = { ROUNDUP(width, blocksizex), ROUNDUP(height, blocksizey), 1 }; + size_t sizes[] = { ROUNDUP(roi_in->width, blocksizex), ROUNDUP(roi_in->height, blocksizey), 1 }; size_t local[] = { blocksizex, blocksizey, 1 }; - dt_opencl_set_kernel_args(devid, gd->kernel_highlights_1f_lch_xtrans, 0, CLARG(dev_in), CLARG(dev_out), - CLARG(width), CLARG(height), CLARG(clip), CLARG(roi_out->x), CLARG(roi_out->y), CLARG(dev_xtrans), + dt_opencl_set_kernel_args(devid, gd->kernel_highlights_1f_lch_xtrans, 0, + CLARG(dev_in), CLARG(dev_out), + CLARG(roi_in->width), CLARG(roi_in->height), + CLARG(clip), CLARG(roi_out->x), CLARG(roi_out->y), + CLARG(dev_xtrans), CLLOCAL(sizeof(float) * (blocksizex + 4) * (blocksizey + 4))); - err = dt_opencl_enqueue_kernel_2d_with_local(devid, gd->kernel_highlights_1f_lch_xtrans, sizes, local); - if(err != CL_SUCCESS) goto error; } else if(d->mode == DT_IOP_HIGHLIGHTS_LAPLACIAN) { - const dt_aligned_pixel_t clips = { 0.995f * d->clip * piece->pipe->dsc.processed_maximum[0], - 0.995f * d->clip * piece->pipe->dsc.processed_maximum[1], - 0.995f * d->clip * piece->pipe->dsc.processed_maximum[2], clip }; + const float clipper = d->clip * highlights_clip_magics[DT_IOP_HIGHLIGHTS_LAPLACIAN]; + const dt_aligned_pixel_t clips = { clipper * piece->pipe->dsc.processed_maximum[0], + clipper * piece->pipe->dsc.processed_maximum[1], + clipper * piece->pipe->dsc.processed_maximum[2], clip }; err = process_laplacian_bayer_cl(self, piece, dev_in, dev_out, roi_in, roi_out, clips); - if(err != CL_SUCCESS) goto error; } else // (d->mode == DT_IOP_HIGHLIGHTS_CLIP) { // raw images with clip mode (both bayer and xtrans) - err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_highlights_1f_clip, width, height, - CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(clip), CLARG(roi_out->x), CLARG(roi_out->y), + err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_highlights_1f_clip, roi_in->width, roi_in->height, + CLARG(dev_in), CLARG(dev_out), + CLARG(roi_in->width), CLARG(roi_in->height), + CLARG(clip), CLARG(roi_out->x), CLARG(roi_out->y), CLARG(filters)); - if(err != CL_SUCCESS) goto error; } // update processed maximum - if((d->mode != DT_IOP_HIGHLIGHTS_LAPLACIAN) && (d->mode != DT_IOP_HIGHLIGHTS_OPPOSED)) + if((err == CL_SUCCESS) && (d->mode != DT_IOP_HIGHLIGHTS_LAPLACIAN) && (d->mode != DT_IOP_HIGHLIGHTS_OPPOSED)) { // The guided laplacian and opposed are the modes that keeps signal scene-referred and don't clip highlights to 1 // For the other modes, we need to notify the pipeline that white point has changed - const float m = fmaxf(fmaxf(piece->pipe->dsc.processed_maximum[0], piece->pipe->dsc.processed_maximum[1]), - piece->pipe->dsc.processed_maximum[2]); - for(int k = 0; k < 3; k++) piece->pipe->dsc.processed_maximum[k] = m; + const float m = dt_iop_get_processed_maximum(piece); + for_three_channels(k) piece->pipe->dsc.processed_maximum[k] = m; } - dt_opencl_release_mem_object(dev_xtrans); - return TRUE; - - error: + finish: dt_opencl_release_mem_object(dev_clips); dt_opencl_release_mem_object(dev_xtrans); - dt_print(DT_DEBUG_OPENCL, "[opencl_highlights] [%s] had error %s\n", dt_dev_pixelpipe_type_to_str(piece->pipe->type), cl_errstr(err)); - return FALSE; + return err; } #endif @@ -568,8 +614,8 @@ const float *const in = (const float *const)ivoid; float *const out = (float *const)ovoid; - const int ch = (piece->pipe->dsc.filters) ? piece->colors : 1; - const size_t msize = (size_t)roi_out->width * roi_out->height * ch; + const int ch = piece->pipe->dsc.filters ? 1 : 4; + const size_t msize = (size_t)roi_out->width * roi_out->height * ch; #ifdef _OPENMP #pragma omp parallel for SIMD() default(none) \ dt_omp_firstprivate(clip, in, out, msize) \ @@ -589,7 +635,6 @@ const uint8_t(*const xtrans)[6] = (const uint8_t(*const)[6])piece->pipe->dsc.xtrans; const uint32_t filters = piece->pipe->dsc.filters; const gboolean is_xtrans = (filters == 9u); - const gboolean is_linear = (filters == 0); const float *const in = (const float *const)ivoid; float *const out = (float *const)ovoid; @@ -600,7 +645,7 @@ mclip * (cf[BLUE] <= 0.0f ? 1.0f : cf[BLUE]), mclip * (cf[GREEN] <= 0.0f ? 1.0f : cf[GREEN]) }; - if(is_linear) + if(filters == 0) { const size_t npixels = roi_out->width * (size_t)roi_out->height; #ifdef _OPENMP @@ -627,9 +672,10 @@ for(int col = 0; col < roi_out->width; col++) { const size_t ox = (size_t)row * roi_out->width + col; - const int irow = row + roi_out->y; - const int icol = col + roi_out->x; + const int irow = row + roi_out->y - roi_in->y; + const int icol = col + roi_out->x - roi_in->x; const size_t ix = (size_t)irow * roi_in->width + icol; + if((icol >= 0) && (irow >= 0) && (irow < roi_in->height) && (icol < roi_in->width)) { const int c = is_xtrans ? FCxtrans(irow, icol, roi_in, xtrans) : FC(irow, icol, filters); @@ -678,19 +724,16 @@ high_quality = (level >= min_s); } - const float clip - = data->clip * fminf(piece->pipe->dsc.processed_maximum[0], - fminf(piece->pipe->dsc.processed_maximum[1], piece->pipe->dsc.processed_maximum[2])); + const float clip = data->clip * dt_iop_get_processed_minimum(piece); if(filters == 0) { if(data->mode == DT_IOP_HIGHLIGHTS_CLIP) { process_clip(piece, ivoid, ovoid, roi_in, roi_out, clip); - for(int k=0;k<3;k++) - piece->pipe->dsc.processed_maximum[k] - = fminf(piece->pipe->dsc.processed_maximum[0], - fminf(piece->pipe->dsc.processed_maximum[1], piece->pipe->dsc.processed_maximum[2])); + const float m = dt_iop_get_processed_minimum(piece); + for_three_channels(k) + piece->pipe->dsc.processed_maximum[k] = m; } else { @@ -703,9 +746,10 @@ { case DT_IOP_HIGHLIGHTS_INPAINT: // a1ex's (magiclantern) idea of color inpainting: { - const float clips[4] = { 0.987 * data->clip * piece->pipe->dsc.processed_maximum[0], - 0.987 * data->clip * piece->pipe->dsc.processed_maximum[1], - 0.987 * data->clip * piece->pipe->dsc.processed_maximum[2], clip }; + const float clipper = data->clip * highlights_clip_magics[DT_IOP_HIGHLIGHTS_INPAINT]; + const float clips[4] = { clipper * piece->pipe->dsc.processed_maximum[0], + clipper * piece->pipe->dsc.processed_maximum[1], + clipper * piece->pipe->dsc.processed_maximum[2], clip }; if(filters == 9u) { @@ -760,12 +804,15 @@ } break; } + case DT_IOP_HIGHLIGHTS_LCH: + { if(filters == 9u) process_lch_xtrans(self, piece, ivoid, ovoid, roi_in, roi_out, clip); else process_lch_bayer(self, piece, ivoid, ovoid, roi_in, roi_out, clip); break; + } case DT_IOP_HIGHLIGHTS_SEGMENTS: { @@ -786,18 +833,17 @@ case DT_IOP_HIGHLIGHTS_LAPLACIAN: { - const dt_aligned_pixel_t clips = { 0.995f * data->clip * piece->pipe->dsc.processed_maximum[0], - 0.995f * data->clip * piece->pipe->dsc.processed_maximum[1], - 0.995f * data->clip * piece->pipe->dsc.processed_maximum[2], clip }; + const float clipper = data->clip * highlights_clip_magics[DT_IOP_HIGHLIGHTS_LAPLACIAN]; + const dt_aligned_pixel_t clips = { clipper * piece->pipe->dsc.processed_maximum[0], + clipper * piece->pipe->dsc.processed_maximum[1], + clipper * piece->pipe->dsc.processed_maximum[2], clip }; process_laplacian_bayer(self, piece, ivoid, ovoid, roi_in, roi_out, clips); break; } default: - case DT_IOP_HIGHLIGHTS_OPPOSED: { - float *tmp = _process_opposed(self, piece, ivoid, ovoid, roi_in, roi_out, FALSE, high_quality); - dt_free_align(tmp); + _process_opposed(self, piece, ivoid, ovoid, roi_in, roi_out, FALSE, high_quality); break; } } @@ -807,9 +853,8 @@ { // The guided laplacian, inpaint opposed and segmentation modes keep signal scene-referred and don't clip highlights to 1 // For the other modes, we need to notify the pipeline that white point has changed - const float m = fmaxf(fmaxf(piece->pipe->dsc.processed_maximum[0], piece->pipe->dsc.processed_maximum[1]), - piece->pipe->dsc.processed_maximum[2]); - for(int k = 0; k < 3; k++) piece->pipe->dsc.processed_maximum[k] = m; + const float m = dt_iop_get_processed_maximum(piece); + for_three_channels(k) piece->pipe->dsc.processed_maximum[k] = m; } } @@ -823,7 +868,14 @@ memcpy(d, p, sizeof(*p)); - const gboolean linear = (piece->pipe->dsc.filters == 0); + const dt_image_t *img = &piece->pipe->image; + const uint32_t filters = img->buf_dsc.filters; + const gboolean rawprep = dt_image_is_rawprepare_supported(img); + const gboolean linear = (filters == 0); + + // for non-raws always use clip + if(!rawprep) + d->mode = DT_IOP_HIGHLIGHTS_CLIP; /* no OpenCLfor 1. DT_IOP_HIGHLIGHTS_INPAINT and DT_IOP_HIGHLIGHTS_SEGMENTS @@ -920,10 +972,22 @@ dt_iop_highlights_gui_data_t *g = (dt_iop_highlights_gui_data_t *)self->gui_data; dt_iop_highlights_params_t *p = (dt_iop_highlights_params_t *)self->params; - const uint32_t filters = self->dev->image_storage.buf_dsc.filters; + const dt_image_t *img = &self->dev->image_storage; + const uint32_t filters = img->buf_dsc.filters; const gboolean bayer = (filters != 0) && (filters != 9u); + const gboolean rawprep = dt_image_is_rawprepare_supported(img); + + /* Sanitize mode if wrongfully + - copied as part of the history of another pic or by preset / style or + - by old edits that allowed opposed for non-raws + */ + if(!rawprep) + { + p->mode = DT_IOP_HIGHLIGHTS_CLIP; + dt_bauhaus_combobox_set_from_value(g->mode, p->mode); + // not reported visually as so common and not relevant + } - // Sanitize mode if wrongfully copied as part of the history of another pic or by preset / style if((!bayer && (p->mode == DT_IOP_HIGHLIGHTS_LAPLACIAN)) || ((filters == 0) && (p->mode == DT_IOP_HIGHLIGHTS_LCH || p->mode == DT_IOP_HIGHLIGHTS_INPAINT @@ -935,7 +999,7 @@ } const gboolean use_laplacian = bayer && p->mode == DT_IOP_HIGHLIGHTS_LAPLACIAN; - const gboolean use_segmentation = (p->mode == DT_IOP_HIGHLIGHTS_SEGMENTS); + const gboolean use_segmentation = p->mode == DT_IOP_HIGHLIGHTS_SEGMENTS; const gboolean use_recovery = use_segmentation && (p->recovery != DT_RECOVERY_MODE_OFF); gtk_widget_set_visible(g->noise_level, use_laplacian || use_recovery); @@ -969,11 +1033,12 @@ void gui_update(struct dt_iop_module_t *self) { dt_iop_highlights_gui_data_t *g = (dt_iop_highlights_gui_data_t *)self->gui_data; - const gboolean monochrome = dt_image_is_monochrome(&self->dev->image_storage); + const dt_image_t *img = &self->dev->image_storage; + const gboolean monochrome = dt_image_is_monochrome(img); // enable this per default if raw or sraw if not real monochrome - self->default_enabled = dt_image_is_rawprepare_supported(&self->dev->image_storage) && !monochrome; - self->hide_enable_button = !(self->default_enabled); - gtk_stack_set_visible_child_name(GTK_STACK(self->widget), self->default_enabled ? "default" : "notapplicable"); + self->default_enabled = dt_image_is_rawprepare_supported(img) && !monochrome; + self->hide_enable_button = monochrome; + gtk_stack_set_visible_child_name(GTK_STACK(self->widget), !monochrome ? "default" : "notapplicable"); dt_bauhaus_widget_set_quad_active(g->clip, FALSE); dt_bauhaus_widget_set_quad_active(g->candidating, FALSE); dt_bauhaus_widget_set_quad_active(g->combine, FALSE); @@ -983,37 +1048,43 @@ gui_changed(self, NULL, NULL); } -void gui_reset(struct dt_iop_module_t *self) -{ - dt_iop_highlights_params_t *p = (dt_iop_highlights_params_t *)self->params; - dt_iop_highlights_params_t *d = (dt_iop_highlights_params_t *)self->default_params; - - d->mode = DT_IOP_HIGHLIGHTS_OPPOSED; - p->mode = DT_IOP_HIGHLIGHTS_OPPOSED; -} - void reload_defaults(dt_iop_module_t *self) { // we might be called from presets update infrastructure => there is no image if(!self->dev || !dt_is_valid_imgid(self->dev->image_storage.id)) return; - const gboolean monochrome = dt_image_is_monochrome(&self->dev->image_storage); - // enable this per default if raw or sraw if not true monochrome - self->default_enabled = dt_image_is_rawprepare_supported(&self->dev->image_storage) && !monochrome; - self->hide_enable_button = !(self->default_enabled); + const dt_image_t *img = &self->dev->image_storage; + const gboolean monochrome = dt_image_is_monochrome(img); + const uint32_t filters = img->buf_dsc.filters; + const gboolean rawprep = dt_image_is_rawprepare_supported(img); + const gboolean sraw = rawprep && (filters == 0); + const gboolean xtrans = rawprep && (filters == 9u); + + // enable this per default if raw or sraw if not real monochrome + self->default_enabled = rawprep && !monochrome; + self->hide_enable_button = monochrome; if(self->widget) - gtk_stack_set_visible_child_name(GTK_STACK(self->widget), self->default_enabled ? "default" : "notapplicable"); + gtk_stack_set_visible_child_name(GTK_STACK(self->widget), !monochrome ? "default" : "notapplicable"); + dt_iop_highlights_params_t *d = (dt_iop_highlights_params_t *)self->default_params; dt_iop_highlights_gui_data_t *g = (dt_iop_highlights_gui_data_t *)self->gui_data; if(g) { // rebuild the complete menu depending on sensor type and possibly active but obsolete mode - const uint32_t filters = self->dev->image_storage.buf_dsc.filters; dt_bauhaus_combobox_clear(g->mode); dt_introspection_type_enum_tuple_t *values = self->so->get_f("mode")->Enum.values; - if(filters == 0) + + if(!rawprep) + { + dt_bauhaus_combobox_add_introspection(g->mode, NULL, values, DT_IOP_HIGHLIGHTS_CLIP, + DT_IOP_HIGHLIGHTS_OPPOSED); + // As we only have clip available we remove all other options + for(int i = 0; i < 6; i++) dt_bauhaus_combobox_remove_at(g->mode, 1); + d->mode = DT_IOP_HIGHLIGHTS_CLIP; + } + else if(sraw) { dt_bauhaus_combobox_add_introspection(g->mode, NULL, values, DT_IOP_HIGHLIGHTS_OPPOSED, DT_IOP_HIGHLIGHTS_OPPOSED); @@ -1023,7 +1094,7 @@ else { dt_bauhaus_combobox_add_introspection(g->mode, NULL, values, DT_IOP_HIGHLIGHTS_OPPOSED, - filters == 9u + xtrans ? DT_IOP_HIGHLIGHTS_SEGMENTS : DT_IOP_HIGHLIGHTS_LAPLACIAN); } @@ -1109,19 +1180,24 @@ g->clip = dt_bauhaus_slider_from_params(self, "clip"); dt_bauhaus_slider_set_digits(g->clip, 3); gtk_widget_set_tooltip_text(g->clip, - _("manually adjust the clipping threshold mostly used against " - "magenta highlights\nthe mask icon shows the clipped areas.\n" + _("manually adjust the clipping threshold mostly used against magenta highlights.\n" "you might use this for tuning 'laplacian', 'inpaint opposed' or 'segmentation' modes,\n" "especially if camera white point is incorrect.")); + dt_bauhaus_widget_set_quad_tooltip(g->clip, + _("visualize clipped highlights in a false color representation.\n" + "the effective clipping level also depends on the reconstruction method.")); dt_bauhaus_widget_set_quad_paint(g->clip, dtgtk_cairo_paint_showmask, 0, NULL); dt_bauhaus_widget_set_quad_toggle(g->clip, TRUE); dt_bauhaus_widget_set_quad_active(g->clip, FALSE); + g_signal_connect(G_OBJECT(g->clip), "quad-pressed", G_CALLBACK(_visualize_callback), self); g->combine = dt_bauhaus_slider_from_params(self, "combine"); dt_bauhaus_slider_set_digits(g->combine, 0); gtk_widget_set_tooltip_text(g->combine, _("combine closely related clipped segments by morphological operations.\n" - "the mask button shows the exact positions of resulting segment borders.")); + "this often leads to improved color reconstruction for tiny segments before dark background.")); + dt_bauhaus_widget_set_quad_tooltip(g->combine, + _("visualize the combined segments in a false color representation.")); dt_bauhaus_widget_set_quad_paint(g->combine, dtgtk_cairo_paint_showmask, 0, NULL); dt_bauhaus_widget_set_quad_toggle(g->combine, TRUE); dt_bauhaus_widget_set_quad_active(g->combine, FALSE); @@ -1129,8 +1205,9 @@ g->candidating = dt_bauhaus_slider_from_params(self, "candidating"); gtk_widget_set_tooltip_text(g->candidating, _("select inpainting after segmentation analysis.\n" - "increase to favour candidates found in segmentation analysis, decrease for opposed means inpainting.\n" - "the mask button shows segments that are considered to have a good candidate.")); + "increase to favor candidates found in segmentation analysis, decrease for opposed means inpainting.")); + dt_bauhaus_widget_set_quad_tooltip(g->candidating, + _("visualize segments that are considered to have a good candidate in a false color representation.")); dt_bauhaus_slider_set_format(g->candidating, "%"); dt_bauhaus_slider_set_digits(g->candidating, 0); dt_bauhaus_widget_set_quad_paint(g->candidating, dtgtk_cairo_paint_showmask, 0, NULL); @@ -1145,8 +1222,9 @@ "the flat modes ignore narrow unclipped structures (like powerlines) to keep highlights rebuilt and avoid gradients.")); g->strength = dt_bauhaus_slider_from_params(self, "strength"); - gtk_widget_set_tooltip_text(g->strength, _("set strength of rebuilding in regions with all photosites clipped.\n" - "the mask buttons shows the effect that is added to already reconstructed data.")); + gtk_widget_set_tooltip_text(g->strength, _("set strength of rebuilding in regions with all photosites clipped.")); + dt_bauhaus_widget_set_quad_tooltip(g->strength, + _("show the effect that is added to already reconstructed data.")); dt_bauhaus_slider_set_format(g->strength, "%"); dt_bauhaus_slider_set_digits(g->strength, 0); dt_bauhaus_widget_set_quad_paint(g->strength, dtgtk_cairo_paint_showmask, 0, NULL); @@ -1172,7 +1250,7 @@ "large values bring huge performance penalties")); GtkWidget *notapplicable = dt_ui_label_new(_("not applicable")); - gtk_widget_set_tooltip_text(notapplicable, _("this module only works with non-monochrome RAW and sRAW")); + gtk_widget_set_tooltip_text(notapplicable, _("this module does not work with monochrome RAW files")); // start building top level widget self->widget = gtk_stack_new(); diff -Nru darktable-4.4.2/src/iop/highpass.c darktable-4.6.1/src/iop/highpass.c --- darktable-4.4.2/src/iop/highpass.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/highpass.c 2024-02-16 17:31:09.000000000 +0000 @@ -91,7 +91,9 @@ return IOP_GROUP_EFFECT | IOP_GROUP_EFFECTS; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } @@ -236,19 +238,12 @@ dt_opencl_set_kernel_args(devid, gd->kernel_highpass_mix, 0, CLARG(dev_in), CLARG(dev_tmp), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(contrast_scale)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_highpass_mix, sizes); - if(err != CL_SUCCESS) goto error; - - dt_opencl_release_mem_object(dev_m); - dt_opencl_release_mem_object(dev_tmp); - free(mat); - return TRUE; error: dt_opencl_release_mem_object(dev_m); dt_opencl_release_mem_object(dev_tmp); free(mat); - dt_print(DT_DEBUG_OPENCL, "[opencl_highpass] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif diff -Nru darktable-4.4.2/src/iop/hlreconstruct/laplacian.c darktable-4.6.1/src/iop/hlreconstruct/laplacian.c --- darktable-4.4.2/src/iop/hlreconstruct/laplacian.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/hlreconstruct/laplacian.c 2024-02-16 17:31:09.000000000 +0000 @@ -637,7 +637,7 @@ 4 | DT_IMGSZ_INPUT, &clipping_mask, 0, NULL)) { - dt_iop_copy_image_roi(ovoid, ivoid, piece->colors, roi_in, roi_out, 0); + dt_iop_copy_image_roi(ovoid, ivoid, piece->colors, roi_in, roi_out); return; } @@ -653,7 +653,7 @@ { dt_free_align(interpolated); dt_free_align(clipping_mask); - dt_iop_copy_image_roi(ovoid, ivoid, piece->colors, roi_in, roi_out, 0); + dt_iop_copy_image_roi(ovoid, ivoid, piece->colors, roi_in, roi_out); return; } @@ -898,30 +898,18 @@ CLARG(dev_in), CLARG(interpolated), CLARG(clipping_mask), CLARG(dev_out), CLARG(wb_cl), CLARG(filters), CLARG(width), CLARG(height)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_highlights_remosaic_and_replace, sizes); - if(err != CL_SUCCESS) goto error; - // cleanup and exit on success - if(wb_cl) dt_opencl_release_mem_object(wb_cl); - if(interpolated) dt_opencl_release_mem_object(interpolated); - if(clipping_mask) dt_opencl_release_mem_object(clipping_mask); - if(temp) dt_opencl_release_mem_object(temp); - if(LF_even) dt_opencl_release_mem_object(LF_even); - if(LF_odd) dt_opencl_release_mem_object(LF_odd); - if(HF) dt_opencl_release_mem_object(HF); +error: + dt_opencl_release_mem_object(wb_cl); + dt_opencl_release_mem_object(interpolated); dt_opencl_release_mem_object(ds_clipping_mask); dt_opencl_release_mem_object(ds_interpolated); - return err; - -error: - if(wb_cl) dt_opencl_release_mem_object(wb_cl); - if(interpolated) dt_opencl_release_mem_object(interpolated); - if(clipping_mask) dt_opencl_release_mem_object(clipping_mask); - if(temp) dt_opencl_release_mem_object(temp); - if(LF_even) dt_opencl_release_mem_object(LF_even); - if(LF_odd) dt_opencl_release_mem_object(LF_odd); - if(HF) dt_opencl_release_mem_object(HF); + dt_opencl_release_mem_object(clipping_mask); - dt_print(DT_DEBUG_OPENCL, "[opencl_highlights] couldn't enqueue kernel! %s\n", cl_errstr(err)); + dt_opencl_release_mem_object(temp); + dt_opencl_release_mem_object(LF_even); + dt_opencl_release_mem_object(LF_odd); + dt_opencl_release_mem_object(HF); return err; } diff -Nru darktable-4.4.2/src/iop/hlreconstruct/opposed.c darktable-4.6.1/src/iop/hlreconstruct/opposed.c --- darktable-4.4.2/src/iop/hlreconstruct/opposed.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/hlreconstruct/opposed.c 2024-02-16 17:31:09.000000000 +0000 @@ -32,7 +32,7 @@ Failures of the algorithm (color casts) are in most cases related to a) very large differences between optimal white balance coefficients vs what we have as D65 in the darktable pipeline b) complicated lightings so the gradients are not well related - c) a wrong whitepoint setting in the rawprepare module. + c) a wrong whitepoint setting in the rawprepare module. d) the maths might not be best Again the algorithm has been developed in collaboration by @garagecoder and @Iain from gmic team and @jenshannoschwalm from dt. @@ -118,13 +118,13 @@ const gboolean quality) { dt_iop_highlights_data_t *d = (dt_iop_highlights_data_t *)piece->data; - const float clipval = 0.987f * d->clip; + const float clipval = highlights_clip_magics[DT_IOP_HIGHLIGHTS_OPPOSED] * d->clip; const dt_iop_buffer_dsc_t *dsc = &piece->pipe->dsc; const gboolean wbon = dsc->temperature.enabled; const dt_aligned_pixel_t icoeffs = { wbon ? dsc->temperature.coeffs[0] : 1.0f, wbon ? dsc->temperature.coeffs[1] : 1.0f, wbon ? dsc->temperature.coeffs[2] : 1.0f}; - const dt_aligned_pixel_t clips = { clipval * icoeffs[0], clipval * icoeffs[1], clipval * icoeffs[2]}; + const dt_aligned_pixel_t clips = { clipval * icoeffs[0], clipval * icoeffs[1], clipval * icoeffs[2]}; const size_t mwidth = roi_in->width / 3; const size_t mheight = roi_in->height / 3; @@ -151,7 +151,7 @@ for(size_t col = 1; col < roi_in->width -1; col++) { const size_t idx = (row * roi_in->width + col) * 4; - const size_t mdx = _raw_to_cmap(mwidth, row, col); + const size_t mdx = _raw_to_cmap(mwidth, row, col); for_three_channels(c) { if((input[idx] >= clips[c]) && (mask[c*msize + mdx] == 0)) @@ -201,7 +201,7 @@ const size_t idx = (row * roi_in->width + col) * 4; for_three_channels(c) { - const float inval = input[idx+c]; + const float inval = input[idx+c]; if((inval > 0.2f * clips[c]) && (inval < clips[c]) && (mask[(c+3) * msize + _raw_to_cmap(mwidth, row, col)])) { sums[c] += inval - _calc_linear_refavg(&input[idx], c); @@ -251,7 +251,7 @@ dt_iop_highlights_data_t *d = (dt_iop_highlights_data_t *)piece->data; const uint8_t(*const xtrans)[6] = (const uint8_t(*const)[6])piece->pipe->dsc.xtrans; const uint32_t filters = piece->pipe->dsc.filters; - const float clipval = 0.987f * d->clip; + const float clipval = highlights_clip_magics[DT_IOP_HIGHLIGHTS_OPPOSED] * d->clip; const dt_iop_buffer_dsc_t *dsc = &piece->pipe->dsc; const gboolean wbon = dsc->temperature.enabled; const dt_aligned_pixel_t icoeffs = { wbon ? dsc->temperature.coeffs[0] : 1.0f, @@ -270,6 +270,11 @@ { for_three_channels(c) chrominance[c] = img_oppchroma[c]; + if(!img_oppclipped && !keep) + { + dt_iop_copy_image_roi(output, input, 1, roi_in, roi_out); + return NULL; + } } else { @@ -315,7 +320,7 @@ /* We want to use the photosites closely around clipped data to be taken into account. The mask buffers holds data for each color channel, we dilate the mask buffer slightly to get those locations. - If there are no clipped locations we keep the chrominance correction at 0 but make it valid + If there are no clipped locations we keep the chrominance correction at 0 but make it valid */ #ifdef _OPENMP #pragma omp parallel for default(none) \ @@ -334,7 +339,7 @@ } const dt_aligned_pixel_t lo_clips = { 0.2f * clips[0], 0.2f * clips[1], 0.2f * clips[2], 1.0f }; - /* After having the surrounding mask for each color channel we can calculate the chrominance corrections. */ + /* After having the surrounding mask for each color channel we can calculate the chrominance corrections. */ #ifdef _OPENMP #pragma omp parallel for default(none) \ dt_omp_firstprivate(input, roi_in, xtrans, clips, lo_clips, mask, filters, msize, mwidth) \ @@ -347,7 +352,7 @@ { const size_t idx = row * roi_in->width + col; const int color = (filters == 9u) ? FCxtrans(row, col, roi_in, xtrans) : FC(row, col, filters); - const float inval = input[idx]; + const float inval = input[idx]; /* we only use the unclipped photosites very close the true clipped data to calculate the chrominance offset */ if((inval < clips[color]) && (inval > lo_clips[color]) @@ -367,9 +372,16 @@ for_three_channels(c) img_oppchroma[c] = chrominance[c]; img_opphash = opphash; - dt_print(DT_DEBUG_PIPE, "[opposed chroma cache CPU] red: %8.6f (%.0f), green: %8.6f (%.0f), blue: %8.6f (%.0f) for hash%22" PRIu64 "\n", - chrominance[0], cnts[0], chrominance[1], cnts[1], chrominance[2], cnts[2], _opposed_parhash(piece)); + img_oppclipped = anyclipped; } + + dt_print_pipe(DT_DEBUG_PIPE, + "opposed chroma CPU", piece->pipe, self, roi_in, roi_out, + "red: %3.4f, green: %3.4f, blue: %3.4f for hash=%" PRIx64 "%s%s\n", + chrominance[0], chrominance[1], chrominance[2], + _opposed_parhash(piece), + piece->pipe->type == DT_DEV_PIXELPIPE_FULL ? ", saved to cache" : "", + img_oppclipped ? "" : ", unclipped"); } dt_free_align(mask); } @@ -407,7 +419,7 @@ #endif for(size_t row = 0; row < roi_out->height; row++) { - for(size_t col = 0; col < roi_out->width; col++) + for(size_t col = 0; col < roi_out->width; col++) { const size_t odx = row * roi_out->width + col; const size_t irow = row + roi_out->y; @@ -419,7 +431,7 @@ if(tmpout) oval = tmpout[ix]; else - { + { const int color = (filters == 9u) ? FCxtrans(irow, icol, roi_in, xtrans) : FC(irow, icol, filters); oval = MAX(0.0f, input[ix]); if(oval >= clips[color]) @@ -449,7 +461,7 @@ const int devid = piece->pipe->devid; const uint32_t filters = piece->pipe->dsc.filters; - const float clipval = 0.987f * d->clip; + const float clipval = highlights_clip_magics[DT_IOP_HIGHLIGHTS_OPPOSED] * d->clip; const dt_iop_buffer_dsc_t *dsc = &piece->pipe->dsc; const gboolean wbon = dsc->temperature.enabled; const dt_aligned_pixel_t icoeffs = { wbon ? dsc->temperature.coeffs[0] : 1.0f, @@ -458,7 +470,7 @@ dt_aligned_pixel_t clips = { clipval * icoeffs[0], clipval * icoeffs[1], clipval * icoeffs[2], 1.0f}; - cl_int err = DT_OPENCL_DEFAULT_ERROR; + cl_int err = DT_OPENCL_SYSMEM_ALLOCATION; cl_mem dev_chrominance = NULL; cl_mem dev_xtrans = NULL; cl_mem dev_clips = NULL; @@ -475,13 +487,18 @@ const int mheight = roi_in->height / 3; const int msize = dt_round_size((size_t) (mwidth+1) * (mheight+1), 16); - dev_xtrans = dt_opencl_copy_host_to_device_constant(devid, sizeof(piece->pipe->dsc.xtrans), piece->pipe->dsc.xtrans); - if(dev_xtrans == NULL) goto error; + const uint64_t opphash = _opposed_hash(piece); + const int fastcopymode = (opphash == img_opphash) && !img_oppclipped; - dev_clips = dt_opencl_copy_host_to_device_constant(devid, 4 * sizeof(float), clips); - if(dev_clips == NULL) goto error; + if(!fastcopymode) + { + dev_xtrans = dt_opencl_copy_host_to_device_constant(devid, sizeof(piece->pipe->dsc.xtrans), piece->pipe->dsc.xtrans); + if(dev_xtrans == NULL) goto error; + + dev_clips = dt_opencl_copy_host_to_device_constant(devid, 4 * sizeof(float), clips); + if(dev_clips == NULL) goto error; + } - const uint64_t opphash = _opposed_hash(piece); dt_aligned_pixel_t chrominance = {0.0f, 0.0f, 0.0f, 0.0f}; if(opphash == img_opphash) @@ -511,6 +528,7 @@ CLARG(msize), CLARG(mwidth), CLARG(mheight)); if(err != CL_SUCCESS) goto error; + err = DT_OPENCL_SYSMEM_ALLOCATION; const size_t accusize = sizeof(float) * 6 * iheight; dev_accu = dt_opencl_alloc_device_buffer(devid, accusize); if(dev_accu == NULL) goto error; @@ -527,7 +545,7 @@ CLARG(dev_in), CLARG(dev_outmask), CLARG(dev_accu), CLARG(roi_in->width), CLARG(roi_in->height), CLARG(msize), CLARG(mwidth), - CLARG(filters), CLARG(dev_xtrans), CLARG(dev_clips)); + CLARG(filters), CLARG(dev_xtrans), CLARG(dev_clips)); err = dt_opencl_enqueue_kernel_ndim_with_local(devid, gd->kernel_highlights_chroma, sizes, NULL, 1); if(err != CL_SUCCESS) goto error; @@ -554,11 +572,20 @@ for_three_channels(c) img_oppchroma[c] = chrominance[c]; img_opphash = opphash; - dt_print(DT_DEBUG_PIPE, "[opposed chroma cache GPU] red: %8.6f (%.0f), green: %8.6f (%.0f), blue: %8.6f (%.0f) for hash%22" PRIu64 "\n", - chrominance[0], cnts[0], chrominance[1], cnts[1], chrominance[2], cnts[2], _opposed_parhash(piece)); + + img_oppclipped = cnts[0] > 0.0f || cnts[1] > 0.0f || cnts[2] > 0.0f; } + + dt_print_pipe(DT_DEBUG_PIPE, + "opposed chroma CL", piece->pipe, self, roi_in, roi_out, + "red: %3.4f, green: %3.4f, blue: %3.4f for hash=%" PRIx64 "%s%s\n", + chrominance[0], chrominance[1], chrominance[2], + _opposed_parhash(piece), + piece->pipe->type == DT_DEV_PIXELPIPE_FULL ? ", saved to cache" : "", + img_oppclipped ? "" : ", unclipped"); } + err = DT_OPENCL_SYSMEM_ALLOCATION; dev_chrominance = dt_opencl_copy_host_to_device_constant(devid, 4 * sizeof(float), chrominance); if(dev_chrominance == NULL) goto error; @@ -569,22 +596,10 @@ CLARG(roi_out->x), CLARG(roi_out->y), CLARG(filters), CLARG(dev_xtrans), CLARG(dev_clips), - CLARG(dev_chrominance)); - if(err != CL_SUCCESS) goto error; - - dt_opencl_release_mem_object(dev_clips); - dt_opencl_release_mem_object(dev_xtrans); - dt_opencl_release_mem_object(dev_chrominance); - dt_opencl_release_mem_object(dev_inmask); - dt_opencl_release_mem_object(dev_outmask); - dt_opencl_release_mem_object(dev_accu); - dt_free_align(claccu); - return CL_SUCCESS; + CLARG(dev_chrominance), + CLARG(fastcopymode)); error: - // just in case the last error was generated via a copy function - if(err == CL_SUCCESS) err = DT_OPENCL_DEFAULT_ERROR; - dt_opencl_release_mem_object(dev_clips); dt_opencl_release_mem_object(dev_xtrans); dt_opencl_release_mem_object(dev_chrominance); diff -Nru darktable-4.4.2/src/iop/hlreconstruct/segbased.c darktable-4.6.1/src/iop/hlreconstruct/segbased.c --- darktable-4.4.2/src/iop/hlreconstruct/segbased.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/hlreconstruct/segbased.c 2024-02-16 17:31:09.000000000 +0000 @@ -664,7 +664,7 @@ } } dt_masks_extend_border(tmp, pwidth, pheight, segall->border); - dt_masks_blur_fast(tmp, luminance, pwidth, pheight, 1.2f, 1.0f, 20.0f); + dt_masks_blur(tmp, luminance, pwidth, pheight, 1.2f, 1.0f, 20.0f); dt_masks_extend_border(luminance, pwidth, pheight, segall->border); } @@ -686,7 +686,7 @@ _segment_gradients(distance, recout, tmp, recovery_mode, segall, id, recovery_close); } - dt_masks_blur_fast(recout, gradient, pwidth, pheight, 1.2f, 1.0f, 20.0f); + dt_masks_blur(recout, gradient, pwidth, pheight, 1.2f, 1.0f, 20.0f); // possibly add some noise const float noise_level = data->noise_level; if(noise_level > 0.0f) diff -Nru darktable-4.4.2/src/iop/hlreconstruct/segmentation.c darktable-4.6.1/src/iop/hlreconstruct/segmentation.c --- darktable-4.4.2/src/iop/hlreconstruct/segmentation.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/hlreconstruct/segmentation.c 2024-02-16 17:31:09.000000000 +0000 @@ -653,7 +653,7 @@ return TRUE; } - // allocation is fine so we now define struct data and initialize first two ununsed lines for safety + // allocation is fine so we now define struct data and initialize first two unused lines for safety seg->nr = 2; seg->border = border; seg->slots = slots; diff -Nru darktable-4.4.2/src/iop/hotpixels.c darktable-4.6.1/src/iop/hotpixels.c --- darktable-4.4.2/src/iop/hotpixels.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/hotpixels.c 2024-02-16 17:31:09.000000000 +0000 @@ -59,6 +59,8 @@ float multiplier; gboolean permissive; gboolean markfixed; + gboolean monochrome; + gboolean pure_monochrome; } dt_iop_hotpixels_data_t; @@ -87,7 +89,9 @@ return IOP_FLAGS_SUPPORTS_BLENDING | IOP_FLAGS_ONE_INSTANCE; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RAW; } @@ -160,6 +164,70 @@ return fixed; } +/* This is the monochrome sensor variant. */ +static int process_monochrome(const dt_iop_hotpixels_data_t *data, + const void *const ivoid, + void *const ovoid, + const dt_iop_roi_t *const roi_out, + const int planes) +{ + const float threshold = data->threshold; + const float multiplier = data->multiplier; + const gboolean markfixed = data->markfixed; + const int min_neighbours = data->permissive ? 3 : 4; + const int width = roi_out->width; + int fixed = 0; + +#ifdef _OPENMP +#pragma omp parallel for default(none) \ + dt_omp_firstprivate(ivoid, markfixed, min_neighbours, multiplier, ovoid, \ + roi_out, threshold, width, planes) \ + reduction(+ : fixed) \ + schedule(static) +#endif + for(int row = 1; row < roi_out->height - 1; row++) + { + const float *in = (float *)ivoid + (size_t)planes * (width * row + 1); + float *out = (float *)ovoid + (size_t)planes * (width * row + 1); + for(int col = 1; col < width - 1; col++, in += planes, out += planes) + { + float mid = *in * multiplier; + if(*in > threshold) + { + int count = 0; + float maxin = 0.0f; + float other; +#define TESTONE(OFFSET) \ + other = in[OFFSET]; \ + if(mid > other) \ + { \ + count++; \ + if(other > maxin) maxin = other; \ + } + TESTONE(-planes); + TESTONE(-planes*width); + TESTONE(planes); + TESTONE(planes*width); +#undef TESTONE + if(count >= min_neighbours) + { + for(int c=0; c < planes; c++) + out[c] = maxin; + fixed++; + if(markfixed) + { + for(int i = -1; i >= -10 && i >= -col; i -= 1) + for(int c = 0; c < planes; c++) out[4*i + c] = *in; + for(int i = 1; i <= 10 && i < width - col; i++) + for(int c = 0; c < planes; c++) out[4*i + c] = *in; + } + } + } + } + } + return fixed; +} + /* X-Trans sensor equivalent of process_bayer(). */ static int process_xtrans(const dt_iop_hotpixels_data_t *data, const void *const ivoid, void *const ovoid, @@ -281,10 +349,16 @@ const dt_iop_hotpixels_data_t *data = (dt_iop_hotpixels_data_t *)piece->data; // The processing loop should output only a few pixels, so just copy everything first - dt_iop_image_copy_by_size(ovoid, ivoid, roi_out->width, roi_out->height, 1); + const int planes = data->pure_monochrome ? 4 : 1; + dt_iop_image_copy_by_size(ovoid, ivoid, roi_out->width, roi_out->height, planes); - int fixed; - if(piece->pipe->dsc.filters == 9u) + int fixed = 0; + + if(data->monochrome || data->pure_monochrome) + { + fixed = process_monochrome(data, ivoid, ovoid, roi_out, planes); + } + else if(piece->pipe->dsc.filters == 9u) { fixed = process_xtrans(data, ivoid, ovoid, roi_out, (const uint8_t(*const)[6])piece->pipe->dsc.xtrans); } @@ -302,9 +376,11 @@ void reload_defaults(dt_iop_module_t *module) { const dt_image_t *img = &module->dev->image_storage; - const gboolean enabled = dt_image_is_raw(img) && !dt_image_is_monochrome(img); + + const gboolean monoraw = (img->flags & DT_IMAGE_S_RAW) && (img->flags & DT_IMAGE_MONOCHROME); + const gboolean supported = dt_image_is_raw(img) || monoraw; // can't be switched on for non-raw images: - module->hide_enable_button = !enabled; + module->hide_enable_button = !supported; } void commit_params(struct dt_iop_module_t *self, dt_iop_params_t *params, dt_dev_pixelpipe_t *pipe, @@ -319,9 +395,11 @@ d->markfixed = p->markfixed && (!(pipe->type & (DT_DEV_PIXELPIPE_EXPORT | DT_DEV_PIXELPIPE_THUMBNAIL))); const dt_image_t *img = &pipe->image; - const gboolean enabled = dt_image_is_raw(img) && !dt_image_is_monochrome(img); - - if(!enabled || p->strength == 0.0) piece->enabled = FALSE; + const gboolean monoraw = (img->flags & DT_IMAGE_S_RAW) && (img->flags & DT_IMAGE_MONOCHROME); + const gboolean supported = dt_image_is_raw(img) || monoraw; + d->monochrome = img->flags & DT_IMAGE_MONOCHROME_BAYER; + d->pure_monochrome = monoraw; + if(!supported || p->strength == 0.0) piece->enabled = FALSE; } void init_pipe(struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) @@ -346,9 +424,10 @@ gtk_label_set_text(g->message, ""); const dt_image_t *img = &self->dev->image_storage; - const gboolean enabled = dt_image_is_raw(img) && !dt_image_is_monochrome(img); + const gboolean monoraw = (img->flags & DT_IMAGE_S_RAW) && (img->flags & DT_IMAGE_MONOCHROME); + const gboolean supported = dt_image_is_raw(img) || monoraw; // can't be switched on for non-raw images: - self->hide_enable_button = !enabled; + self->hide_enable_button = !supported; gtk_stack_set_visible_child_name(GTK_STACK(self->widget), self->hide_enable_button ? "non_raw" : "raw"); } diff -Nru darktable-4.4.2/src/iop/invert.c darktable-4.6.1/src/iop/invert.c --- darktable-4.4.2/src/iop/invert.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/invert.c 2024-02-16 17:31:09.000000000 +0000 @@ -60,35 +60,49 @@ float color[4]; // color of film material } dt_iop_invert_data_t; -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, void *new_params, - const int new_version) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) { - if(old_version == 1 && new_version == 2) + typedef struct dt_iop_invert_params_v2_t + { + float color[4]; + } dt_iop_invert_params_v2_t; + + if(old_version == 1) { typedef struct dt_iop_invert_params_v1_t { float color[3]; // color of film material } dt_iop_invert_params_v1_t; - dt_iop_invert_params_v1_t *o = (dt_iop_invert_params_v1_t *)old_params; - dt_iop_invert_params_t *n = (dt_iop_invert_params_t *)new_params; + const dt_iop_invert_params_v1_t *o = (dt_iop_invert_params_v1_t *)old_params; + dt_iop_invert_params_v2_t *n = + (dt_iop_invert_params_v2_t *)malloc(sizeof(dt_iop_invert_params_v2_t)); n->color[0] = o->color[0]; n->color[1] = o->color[1]; n->color[2] = o->color[2]; n->color[3] = NAN; - if(self->dev && self->dev->image_storage.flags & DT_IMAGE_4BAYER) + if(self->dev + && self->dev->image_storage.flags & DT_IMAGE_4BAYER) { double RGB_to_CAM[4][3]; - // Get and store the matrix to go from camera to RGB for 4Bayer images (used for spot WB) - if(!dt_colorspaces_conversion_matrices_rgb(self->dev->image_storage.adobe_XYZ_to_CAM, - RGB_to_CAM, NULL, - self->dev->image_storage.d65_color_matrix, NULL)) + // Get and store the matrix to go from camera to RGB for 4Bayer + // images (used for spot WB) + if(!dt_colorspaces_conversion_matrices_rgb + (self->dev->image_storage.adobe_XYZ_to_CAM, + RGB_to_CAM, NULL, + self->dev->image_storage.d65_color_matrix, NULL)) { const char *camera = self->dev->image_storage.camera_makermodel; - dt_print(DT_DEBUG_ALWAYS, "[invert] `%s' color matrix not found for 4bayer image\n", camera); + dt_print(DT_DEBUG_ALWAYS, + "[invert] `%s' color matrix not found for 4bayer image\n", camera); dt_control_log(_("`%s' color matrix not found for 4bayer image"), camera); } else @@ -97,6 +111,9 @@ } } + *new_params = n; + *new_params_size = sizeof(dt_iop_invert_params_v2_t); + *new_version = 2; return 0; } return 1; @@ -133,7 +150,9 @@ return IOP_FLAGS_ONE_INSTANCE | IOP_FLAGS_DEPRECATED; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RAW; } @@ -161,7 +180,8 @@ gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(g->colorpicker), &color); } -void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece) +void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, + dt_dev_pixelpipe_t *pipe) { static dt_aligned_pixel_t old = { 0.0f, 0.0f, 0.0f, 0.0f }; @@ -378,7 +398,7 @@ } dev_color = dt_opencl_copy_host_to_device_constant(devid, sizeof(float) * 3, film_rgb_f); - if(dev_color == NULL) goto error; + if(dev_color == NULL) goto finish; const int width = roi_in->width; const int height = roi_in->height; @@ -386,16 +406,11 @@ err = dt_opencl_enqueue_kernel_2d_args(devid, kernel, width, height, CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(dev_color), CLARG(filters), CLARG(roi_out->x), CLARG(roi_out->y)); - if(err != CL_SUCCESS) goto error; +finish: dt_opencl_release_mem_object(dev_color); for(int k = 0; k < 4; k++) piece->pipe->dsc.processed_maximum[k] = 1.0f; - return TRUE; - -error: - dt_opencl_release_mem_object(dev_color); - dt_print(DT_DEBUG_OPENCL, "[opencl_invert] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif @@ -511,4 +526,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/iop_api.h darktable-4.6.1/src/iop/iop_api.h --- darktable-4.4.2/src/iop/iop_api.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/iop_api.h 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2016-2021 darktable developers. + Copyright (C) 2016-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by @@ -17,6 +17,7 @@ */ #include "common/module_api.h" +#include "common/colorspaces.h" #ifdef FULL_API_H @@ -59,7 +60,8 @@ #endif // FULL_API_H -/** this initializes static, hardcoded presets for this module and is called only once per run of dt. */ +/** this initializes static, hardcoded presets for this module and is + * called only once per run of dt. */ OPTIONAL(void, init_presets, struct dt_iop_module_so_t *self); /** called once per module, at startup. */ OPTIONAL(void, init_global, struct dt_iop_module_so_t *self); @@ -68,7 +70,8 @@ /** get name of the module, to be translated. */ REQUIRED(const char *, name, void); -/** get the alternative names or keywords of the module, to be translated. Separate variants by a pipe | */ +/** get the alternative names or keywords of the module, to be + * translated. Separate variants by a pipe | */ DEFAULT(const char *, aliases, void); /** get the default group this module belongs to. */ DEFAULT(int, default_group, void); @@ -84,29 +87,44 @@ DEFAULT(int, operation_tags_filter, void); /** what do the iop want as an input? */ -DEFAULT(void, input_format, struct dt_iop_module_t *self, struct dt_dev_pixelpipe_t *pipe, - struct dt_dev_pixelpipe_iop_t *piece, struct dt_iop_buffer_dsc_t *dsc); +DEFAULT(void, input_format, struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_t *pipe, + struct dt_dev_pixelpipe_iop_t *piece, + struct dt_iop_buffer_dsc_t *dsc); /** what will it output? */ -DEFAULT(void, output_format, struct dt_iop_module_t *self, struct dt_dev_pixelpipe_t *pipe, - struct dt_dev_pixelpipe_iop_t *piece, struct dt_iop_buffer_dsc_t *dsc); +DEFAULT(void, output_format, struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_t *pipe, + struct dt_dev_pixelpipe_iop_t *piece, + struct dt_iop_buffer_dsc_t *dsc); /** what default colorspace this iop use? */ -REQUIRED(int, default_colorspace, struct dt_iop_module_t *self, struct dt_dev_pixelpipe_t *pipe, - struct dt_dev_pixelpipe_iop_t *piece); +REQUIRED(dt_iop_colorspace_type_t, default_colorspace, + struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_t *pipe, + struct dt_dev_pixelpipe_iop_t *piece); /** what input colorspace it expects? */ -DEFAULT(int, input_colorspace, struct dt_iop_module_t *self, struct dt_dev_pixelpipe_t *pipe, - struct dt_dev_pixelpipe_iop_t *piece); +DEFAULT(dt_iop_colorspace_type_t, input_colorspace, + struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_t *pipe, + struct dt_dev_pixelpipe_iop_t *piece); /** what will it output? */ -DEFAULT(int, output_colorspace, struct dt_iop_module_t *self, struct dt_dev_pixelpipe_t *pipe, - struct dt_dev_pixelpipe_iop_t *piece); +DEFAULT(dt_iop_colorspace_type_t, output_colorspace, + struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_t *pipe, + struct dt_dev_pixelpipe_iop_t *piece); /** what colorspace the blend module operates with? */ -DEFAULT(int, blend_colorspace, struct dt_iop_module_t *self, struct dt_dev_pixelpipe_t *pipe, - struct dt_dev_pixelpipe_iop_t *piece); - -/** report back info for tiling: memory usage and overlap. Memory usage: factor * input_size + overhead */ -DEFAULT(void, tiling_callback, struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, - const struct dt_iop_roi_t *roi_in, const struct dt_iop_roi_t *roi_out, - struct dt_develop_tiling_t *tiling); +DEFAULT(dt_iop_colorspace_type_t, blend_colorspace, + struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_t *pipe, + struct dt_dev_pixelpipe_iop_t *piece); + +/** report back info for tiling: memory usage and overlap. Memory + * usage: factor * input_size + overhead */ +DEFAULT(void, tiling_callback, struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + const struct dt_iop_roi_t *roi_in, + const struct dt_iop_roi_t *roi_out, + struct dt_develop_tiling_t *tiling); /** callback methods for gui. */ /** synch gtk interface with gui params, if necessary. */ @@ -116,14 +134,23 @@ /** construct widget. */ OPTIONAL(void, gui_init, struct dt_iop_module_t *self); /** apply color picker results */ -OPTIONAL(void, color_picker_apply, struct dt_iop_module_t *self, struct _GtkWidget *picker, struct dt_dev_pixelpipe_iop_t *piece); +OPTIONAL(void, color_picker_apply, struct dt_iop_module_t *self, + struct _GtkWidget *picker, + struct dt_dev_pixelpipe_t *pipe); /** called by standard widget callbacks after value changed */ -OPTIONAL(void, gui_changed, struct dt_iop_module_t *self, GtkWidget *widget, void *previous); +OPTIONAL(void, gui_changed, struct dt_iop_module_t *self, + GtkWidget *widget, + void *previous); /** destroy widget. */ DEFAULT(void, gui_cleanup, struct dt_iop_module_t *self); /** optional method called after darkroom expose. */ -OPTIONAL(void, gui_post_expose, struct dt_iop_module_t *self, cairo_t *cr, int32_t width, int32_t height, - int32_t pointerx, int32_t pointery); +OPTIONAL(void, gui_post_expose, struct dt_iop_module_t *self, + cairo_t *cr, + float width, + float height, + float pointerx, + float pointery, + float zoom_scale); /** optional callback to be notified if the module acquires gui focus/loses it. */ OPTIONAL(void, gui_focus, struct dt_iop_module_t *self, gboolean in); @@ -132,41 +159,77 @@ /** optional event callbacks */ OPTIONAL(int, mouse_leave, struct dt_iop_module_t *self); -OPTIONAL(int, mouse_moved, struct dt_iop_module_t *self, double x, double y, double pressure, int which); -OPTIONAL(int, button_released, struct dt_iop_module_t *self, double x, double y, int which, uint32_t state); -OPTIONAL(int, button_pressed, struct dt_iop_module_t *self, double x, double y, double pressure, int which, int type, - uint32_t state); - -OPTIONAL(int, scrolled, struct dt_iop_module_t *self, double x, double y, int up, uint32_t state); -OPTIONAL(void, configure, struct dt_iop_module_t *self, int width, int height); +OPTIONAL(int, mouse_moved, struct dt_iop_module_t *self, + float x, + float y, + double pressure, + int which, + float zoom_scale); +OPTIONAL(int, button_released, struct dt_iop_module_t *self, + float x, + float y, + int which, + uint32_t state, + float zoom_scale); +OPTIONAL(int, button_pressed, struct dt_iop_module_t *self, + float x, + float y, + double pressure, + int which, + int type, + uint32_t state, + float zoom_scale); +OPTIONAL(int, scrolled, struct dt_iop_module_t *self, + float x, + float y, + int up, + uint32_t state); +OPTIONAL(void, configure, struct dt_iop_module_t *self, + int width, + int height); OPTIONAL(void, init, struct dt_iop_module_t *self); // this MUST set params_size! DEFAULT(void, cleanup, struct dt_iop_module_t *self); /** this inits the piece of the pipe, allocing piece->data as necessary. */ -DEFAULT(void, init_pipe, struct dt_iop_module_t *self, struct dt_dev_pixelpipe_t *pipe, - struct dt_dev_pixelpipe_iop_t *piece); -/** this resets the params to factory defaults. used at the beginning of each history synch. */ -/** this commits (a mutex will be locked to synch pipe/gui) the given history params to the pixelpipe piece. +DEFAULT(void, init_pipe, struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_t *pipe, + struct dt_dev_pixelpipe_iop_t *piece); +/** this resets the params to factory defaults. used at the beginning + * of each history synch. */ +/** this commits (a mutex will be locked to synch pipe/gui) the given + * history params to the pixelpipe piece. */ -DEFAULT(void, commit_params, struct dt_iop_module_t *self, dt_iop_params_t *params, struct dt_dev_pixelpipe_t *pipe, - struct dt_dev_pixelpipe_iop_t *piece); +DEFAULT(void, commit_params, struct dt_iop_module_t *self, + dt_iop_params_t *params, + struct dt_dev_pixelpipe_t *pipe, + struct dt_dev_pixelpipe_iop_t *piece); /** this is the chance to update default parameters, after the full raw is loaded. */ OPTIONAL(void, reload_defaults, struct dt_iop_module_t *self); /** called after the image has changed in darkroom */ OPTIONAL(void, change_image, struct dt_iop_module_t *self); /** this destroys all resources needed by the piece of the pixelpipe. */ -DEFAULT(void, cleanup_pipe, struct dt_iop_module_t *self, struct dt_dev_pixelpipe_t *pipe, - struct dt_dev_pixelpipe_iop_t *piece); -OPTIONAL(void, modify_roi_in, struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, - const struct dt_iop_roi_t *roi_out, struct dt_iop_roi_t *roi_in); -OPTIONAL(void, modify_roi_out, struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, - struct dt_iop_roi_t *roi_out, const struct dt_iop_roi_t *roi_in); -OPTIONAL(int, legacy_params, struct dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, const int new_version); +DEFAULT(void, cleanup_pipe, struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_t *pipe, + struct dt_dev_pixelpipe_iop_t *piece); +OPTIONAL(void, modify_roi_in, struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + const struct dt_iop_roi_t *roi_out, + struct dt_iop_roi_t *roi_in); +OPTIONAL(void, modify_roi_out, struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + struct dt_iop_roi_t *roi_out, + const struct dt_iop_roi_t *roi_in); +OPTIONAL(int, legacy_params, struct dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version); // allow to select a shape inside an iop -OPTIONAL(void, masks_selection_changed, struct dt_iop_module_t *self, const int form_selected_id); +OPTIONAL(void, masks_selection_changed, struct dt_iop_module_t *self, + const int form_selected_id); /** this is the temp homebrew callback to operations. * x,y, and scale are just given for orientation in the framebuffer. i and o are @@ -174,39 +237,65 @@ * formats may be filled by this callback, if the pipeline can handle it. */ /** the simplest variant of process(). you can only use OpenMP SIMD here, no intrinsics */ /** must be provided by each IOP. */ -REQUIRED(void, process, struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const void *const i, - void *const o, const struct dt_iop_roi_t *const roi_in, +REQUIRED(void, process, struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + const void *const i, + void *const o, + const struct dt_iop_roi_t *const roi_in, const struct dt_iop_roi_t *const roi_out); /** a tiling variant of process(). */ -DEFAULT(void, process_tiling, struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const void *const i, - void *const o, const struct dt_iop_roi_t *const roi_in, - const struct dt_iop_roi_t *const roi_out, const int bpp); +DEFAULT(void, process_tiling, struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + const void *const i, + void *const o, + const struct dt_iop_roi_t *const roi_in, + const struct dt_iop_roi_t *const roi_out, + const int bpp); #ifdef HAVE_OPENCL -/** the opencl equivalent of process(). */ -OPTIONAL(int, process_cl, struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, cl_mem dev_in, - cl_mem dev_out, const struct dt_iop_roi_t *const roi_in, +/** the opencl equivalent of process(). + * Both process_xx_cl() functions return a CL error code with CL_SUCCESS signalling ok. + * Please note: until 4.4 this int was in fact used as a gboolean + * with TRUE set if the function worked fine. +*/ +OPTIONAL(int, process_cl, struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + cl_mem dev_in, + cl_mem dev_out, + const struct dt_iop_roi_t *const roi_in, const struct dt_iop_roi_t *const roi_out); /** a tiling variant of process_cl(). */ -OPTIONAL(int, process_tiling_cl, struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const void *const i, - void *const o, const struct dt_iop_roi_t *const roi_in, - const struct dt_iop_roi_t *const roi_out, const int bpp); +DEFAULT(int, process_tiling_cl, struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + const void *const i, + void *const o, + const struct dt_iop_roi_t *const roi_in, + const struct dt_iop_roi_t *const roi_out, + const int bpp); #endif /** this functions are used for distort iop * points is an array of float {x1,y1,x2,y2,...} * size is 2*points_count */ /** points before the iop is applied => point after processed */ -DEFAULT(int, distort_transform, struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, float *points, - size_t points_count); -/** reverse points after the iop is applied => point before process */ -DEFAULT(int, distort_backtransform, struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, float *points, +DEFAULT(gboolean, distort_transform, struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + float *points, size_t points_count); +/** reverse points after the iop is applied => point before process */ +DEFAULT(gboolean, distort_backtransform, struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + float *points, + size_t points_count); +OPTIONAL(void, distort_mask, struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + const float *const in, + float *const out, + const struct dt_iop_roi_t *const roi_in, + const struct dt_iop_roi_t *const roi_out); -OPTIONAL(void, distort_mask, struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const float *const in, - float *const out, const struct dt_iop_roi_t *const roi_in, const struct dt_iop_roi_t *const roi_out); - -// introspection related callbacks, will be auto-implemented if DT_MODULE_INTROSPECTION() is used, +// introspection related callbacks, will be auto-implemented if +// DT_MODULE_INTROSPECTION() is used, OPTIONAL(int, introspection_init, struct dt_iop_module_so_t *self, int api_version); DEFAULT(dt_introspection_t *, get_introspection, void); DEFAULT(dt_introspection_field_t *, get_introspection_linear, void); @@ -231,4 +320,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/lens.cc darktable-4.6.1/src/iop/lens.cc --- darktable-4.4.2/src/iop/lens.cc 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/lens.cc 2024-02-16 17:31:09.000000000 +0000 @@ -1,4 +1,4 @@ -/* +/* This file is part of darktable, Copyright (C) 2019-2023 darktable developers. @@ -16,7 +16,7 @@ along with darktable. If not, see <http://www.gnu.org/licenses/>. */ -// LensFun can return NAN on coordinate transforms, so we need to tell the compiler +// Lensfun can return NAN on coordinate transforms, so we need to tell the compiler // that non-finite numbers are in use in this source file even if we have globally // enabled the finite-math-only optimization. Otherwise, it may optimize away // conditionals based on isnan() or isfinite(). @@ -54,6 +54,7 @@ #include <lensfun.h> #define MAXKNOTS 16 +#define VIGSPLINES 512 extern "C" { @@ -63,15 +64,16 @@ #if LF_VERSION == ((0 << 24) | (3 << 16) | (95 << 8) | 0) #define LF_0395 -#error lensfun 0.3.95 is not supported since its API is not backward compatible with lensfun stable release. +#error Lensfun 0.3.95 is not supported since its API is not backward compatible with Lensfun stable release. #endif -DT_MODULE_INTROSPECTION(9, dt_iop_lens_params_t) +DT_MODULE_INTROSPECTION(10, dt_iop_lens_params_t) typedef enum dt_iop_lens_method_t { DT_IOP_LENS_METHOD_EMBEDDED_METADATA = 0, // $DESCRIPTION: "embedded metadata" - DT_IOP_LENS_METHOD_LENSFUN = 1 // $DESCRIPTION: "Lensfun database" + DT_IOP_LENS_METHOD_LENSFUN = 1, // $DESCRIPTION: "Lensfun database" + DT_IOP_LENS_METHOD_ONLYVIGNETTE = 2 // $DESCRIPTION: "only manual vignette" } dt_iop_lens_method_t; typedef enum dt_iop_lens_modify_flag_t @@ -123,12 +125,12 @@ dt_iop_lens_method_t method; // $DEFAULT: DT_IOP_LENS_METHOD_LENSFUN $DESCRIPTION: "correction method" dt_iop_lens_modflag_t modify_flags; // $DEFAULT: DT_IOP_LENS_MODFLAG_ALL $DESCRIPTION: "corrections" - // NOTE: the options for lensfun and metadata correction methods should be + // NOTE: the options for Lensfun and metadata correction methods should be // kept separate since also if similar their value have different effects. // additionally this could permit to switch between the methods. // the unique parameter in common is modify_flags - // lensfun method parameters + // Lensfun method parameters dt_iop_lens_mode_t inverse; // $DEFAULT: DT_IOP_LENS_MODE_CORRECT $DESCRIPTION: "mode" float scale; // $MIN: 0.1 $MAX: 2.0 $DEFAULT: 1.0 float crop; @@ -143,11 +145,11 @@ float tca_b; // $MIN: 0.99 $MAX: 1.01 $DEFAULT: 1.0 $DESCRIPTION: "TCA blue" // embedded metadata method parameters - float cor_dist_ft; // $DEFAULT: 1 $MIN: 0 $MAX: 2 $DESCRIPTION: "distortion fine-tune" - float cor_vig_ft; // $DEFAULT: 1 $MIN: 0 $MAX: 2 $DESCRIPTION: "vignetting fine-tune" - float cor_ca_r_ft; // $DEFAULT: 1 $MIN: 0 $MAX: 2 $DESCRIPTION: "TCA red fine-tune" - float cor_ca_b_ft; // $DEFAULT: 1 $MIN: 0 $MAX: 2 $DESCRIPTION: "TCA blue fine-tune" - // TODO should be possible to also add tca fine tune modifications + float cor_dist_ft; // $DEFAULT: 1 $MIN: 0 $MAX: 2 $DESCRIPTION: "distortion" + float cor_vig_ft; // $DEFAULT: 1 $MIN: 0 $MAX: 2 $DESCRIPTION: "vignetting" + float cor_ca_r_ft; // $DEFAULT: 1 $MIN: 0 $MAX: 2 $DESCRIPTION: "TCA red" + float cor_ca_b_ft; // $DEFAULT: 1 $MIN: 0 $MAX: 2 $DESCRIPTION: "TCA blue" + // TODO should be possible to also add TCA fine tune modifications // scale_md_v1 is used by embedded metadata algorithm v1. Kept for backward compatibility float scale_md_v1; // $DEFAULT: 1 $MIN: 0.9 $MAX: 1.1 $DESCRIPTION: "scale fine-tune" @@ -156,6 +158,10 @@ float scale_md; // $DEFAULT: 1 $MIN: 0.1 $MAX: 2.0 $DESCRIPTION: "image scale" // whether the params have already been computed gboolean has_been_set; + float v_strength; // $DEFAULT: 0.0 $MIN: 0.0 $MAX: 1.0 $DESCRIPTION: "strength" + float v_radius; // $DEFAULT: 0.5 $MIN: 0.0 $MAX: 1.0 $DESCRIPTION: "radius" + float v_steepness; // $DEFAULT: 0.5 $MIN: 0.0 $MAX: 1.0 $DESCRIPTION: "steepness" + float reserved[2]; } dt_iop_lens_params_t; typedef struct dt_iop_lens_gui_modifier_t @@ -179,9 +185,13 @@ GtkWidget *find_camera_button; GtkWidget *cor_dist_ft, *cor_vig_ft, *cor_ca_r_ft, *cor_ca_b_ft, *scale_md; GtkWidget *use_latest_md_algo; + GtkWidget *v_strength, *v_radius, *v_steepness; + dt_gui_collapsible_section_t fine_tune, vignette; GtkLabel *message; + GtkBox *hbox1; int corrections_done; gboolean lensfun_trouble; + gboolean vig_masking; const lfCamera *camera; } dt_iop_lens_gui_data_t; @@ -193,6 +203,9 @@ int kernel_lens_distort_lanczos2; int kernel_lens_distort_lanczos3; int kernel_lens_vignette; + int kernel_lens_man_vignette; + int kernel_md_vignette; + int kernel_md_correct; lfDatabase *db; } dt_iop_lens_global_data_t; @@ -201,7 +214,7 @@ int method; int modify_flags; - /* lensfun data */ + /* Lensfun data */ lfLens *lens; int inverse; float scale; @@ -224,6 +237,12 @@ dt_iop_lens_embedded_metadata_version md_version; int nc; float knots_dist[MAXKNOTS], knots_vig[MAXKNOTS], cor_rgb[3][MAXKNOTS], vig[MAXKNOTS]; + float v_strength; + float v_radius; + float v_steepness; + float reserved[2]; + float vigspline[VIGSPLINES]; + uint64_t vighash; } dt_iop_lens_data_t; @@ -263,7 +282,9 @@ | IOP_FLAGS_UNSAFE_COPY | IOP_FLAGS_GUIDES_WIDGET; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -345,14 +366,56 @@ } } -int legacy_params( - dt_iop_module_t *self, - const void *const old_params, - const int old_version, - void *new_params, - const int new_version) -{ - if(old_version == 2 && new_version == 9) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct _iop_lens_params_v10_t + { + dt_iop_lens_method_t method; + dt_iop_lens_modflag_t modify_flags; + + // NOTE: the options for Lensfun and metadata correction methods should be + // kept separate since also if similar their value have different effects. + // additionally this could permit to switch between the methods. + // the unique parameter in common is modify_flags + + // Lensfun method parameters + dt_iop_lens_mode_t inverse; + float scale; + float crop; + float focal; + float aperture; + float distance; + dt_iop_lens_lenstype_t target_geom; + char camera[128]; + char lens[128]; + gboolean tca_override; + float tca_r; + float tca_b; + + // embedded metadata method parameters + float cor_dist_ft; + float cor_vig_ft; + float cor_ca_r_ft; + float cor_ca_b_ft; + + float scale_md_v1; + dt_iop_lens_embedded_metadata_version md_version; + + float scale_md; + + gboolean has_been_set; + float v_strength; + float v_radius; + float v_steepness; + float reserved[2]; + } dt_iop_lens_params_v10_t; + + if(old_version == 2) { // legacy params of version 2; version 1 comes from ancient times // and seems to be forgotten by now. @@ -373,10 +436,8 @@ } dt_iop_lens_params_v2_t; const dt_iop_lens_params_v2_t *o = (dt_iop_lens_params_v2_t *)old_params; - dt_iop_lens_params_t *n = (dt_iop_lens_params_t *)new_params; - dt_iop_lens_params_t *d = (dt_iop_lens_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + dt_iop_lens_params_v10_t *n = + (dt_iop_lens_params_v10_t *)malloc(sizeof(dt_iop_lens_params_v10_t)); n->modify_flags = _modflags_from_lensfun_mods(o->modify_flags); n->inverse = (dt_iop_lens_mode_t)o->inverse; @@ -412,10 +473,19 @@ // new in v9 n->has_been_set = TRUE; + // new in v10 + n->v_strength = 0.0f; + n->v_radius = 0.5f; + n->v_steepness = 0.5f; + n->reserved[0] = n->reserved[1] = 0.0f; + + *new_params = n; + *new_params_size = sizeof(dt_iop_lens_params_v10_t); + *new_version = 10; return 0; } - if(old_version == 3 && new_version == 9) + if(old_version == 3) { typedef struct { @@ -434,10 +504,8 @@ } dt_iop_lens_params_v3_t; const dt_iop_lens_params_v3_t *o = (dt_iop_lens_params_v3_t *)old_params; - dt_iop_lens_params_t *n = (dt_iop_lens_params_t *)new_params; - dt_iop_lens_params_t *d = (dt_iop_lens_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + dt_iop_lens_params_v10_t *n = + (dt_iop_lens_params_v10_t *)malloc(sizeof(dt_iop_lens_params_v10_t)); n->modify_flags = _modflags_from_lensfun_mods(o->modify_flags); n->inverse = (dt_iop_lens_mode_t)o->inverse; @@ -471,10 +539,19 @@ // new in v9 n->has_been_set = TRUE; + // new in v10 + n->v_strength = 0.0f; + n->v_radius = 0.5f; + n->v_steepness = 0.5f; + n->reserved[0] = n->reserved[1] = 0.0f; + + *new_params = n; + *new_params_size = sizeof(dt_iop_lens_params_v10_t); + *new_version = 10; return 0; } - if(old_version == 4 && new_version == 9) + if(old_version == 4) { typedef struct { @@ -494,10 +571,8 @@ } dt_iop_lens_params_v4_t; const dt_iop_lens_params_v4_t *o = (dt_iop_lens_params_v4_t *)old_params; - dt_iop_lens_params_t *n = (dt_iop_lens_params_t *)new_params; - dt_iop_lens_params_t *d = (dt_iop_lens_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + dt_iop_lens_params_v10_t *n = + (dt_iop_lens_params_v10_t *)malloc(sizeof(dt_iop_lens_params_v10_t)); n->modify_flags = _modflags_from_lensfun_mods(o->modify_flags); n->inverse = (dt_iop_lens_mode_t)o->inverse; @@ -531,10 +606,19 @@ // new in v9 n->has_been_set = o->modified; + // new in v10 + n->v_strength = 0.0f; + n->v_radius = 0.5f; + n->v_steepness = 0.5f; + n->reserved[0] = n->reserved[1] = 0.0f; + + *new_params = n; + *new_params_size = sizeof(dt_iop_lens_params_v10_t); + *new_version = 10; return o->modified == 0 ? -1 : 0; } - if(old_version == 5 && new_version == 9) + if(old_version == 5) { typedef struct { @@ -554,12 +638,10 @@ } dt_iop_lens_params_v5_t; const dt_iop_lens_params_v5_t *o = (dt_iop_lens_params_v5_t *)old_params; - dt_iop_lens_params_t *n = (dt_iop_lens_params_t *)new_params; - dt_iop_lens_params_t *d = (dt_iop_lens_params_t *)self->default_params; + dt_iop_lens_params_v10_t *n = + (dt_iop_lens_params_v10_t *)malloc(sizeof(dt_iop_lens_params_v10_t)); - *n = *d; // start with a fresh copy of default parameters - - // The unique method in previous versions was lensfun + // The unique method in previous versions was Lensfun n->modify_flags = _modflags_from_lensfun_mods(o->modify_flags); n->inverse = (dt_iop_lens_mode_t)o->inverse; n->scale = o->scale; @@ -592,10 +674,19 @@ // new in v9 n->has_been_set = o->modified; + // new in v10 + n->v_strength = 0.0f; + n->v_radius = 0.5f; + n->v_steepness = 0.5f; + n->reserved[0] = n->reserved[1] = 0.0f; + + *new_params = n; + *new_params_size = sizeof(dt_iop_lens_params_v10_t); + *new_version = 10; return o->modified == 0 ? -1 : 0; } - if(old_version == 6 && new_version == 9) + if(old_version == 6) { typedef struct { @@ -620,10 +711,8 @@ const dt_iop_lens_params_v6_t *o = (dt_iop_lens_params_v6_t *)old_params; - dt_iop_lens_params_t *n = (dt_iop_lens_params_t *)new_params; - dt_iop_lens_params_t *d = (dt_iop_lens_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + dt_iop_lens_params_v10_t *n = + (dt_iop_lens_params_v10_t *)malloc(sizeof(dt_iop_lens_params_v10_t)); n->method = o->method; n->modify_flags = (dt_iop_lens_modflag_t)o->modify_flags; @@ -659,10 +748,19 @@ // new in v9 n->has_been_set = o->modified; + // new in v10 + n->v_strength = 0.0f; + n->v_radius = 0.5f; + n->v_steepness = 0.5f; + n->reserved[0] = n->reserved[1] = 0.0f; + + *new_params = n; + *new_params_size = sizeof(dt_iop_lens_params_v10_t); + *new_version = 10; return o->modified == 0 ? -1 : 0; } - if(old_version == 7 && new_version == 9) + if(old_version == 7) { typedef struct { @@ -687,10 +785,8 @@ const dt_iop_lens_params_v7_t *o = (dt_iop_lens_params_v7_t *)old_params; - dt_iop_lens_params_t *n = (dt_iop_lens_params_t *)new_params; - dt_iop_lens_params_t *d = (dt_iop_lens_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + dt_iop_lens_params_v10_t *n = + (dt_iop_lens_params_v10_t *)malloc(sizeof(dt_iop_lens_params_v10_t)); n->method = o->method; n->modify_flags = (dt_iop_lens_modflag_t)o->modify_flags; @@ -724,9 +820,18 @@ // new in v9 n->has_been_set = FALSE; + // new in v10 + n->v_strength = 0.0f; + n->v_radius = 0.5f; + n->v_steepness = 0.5f; + n->reserved[0] = n->reserved[1] = 0.0f; + + *new_params = n; + *new_params_size = sizeof(dt_iop_lens_params_v10_t); + *new_version = 10; return 0; } - if(old_version == 8 && new_version == 9) + if(old_version == 8) { typedef struct { @@ -755,10 +860,8 @@ } dt_iop_lens_params_v8_t; const dt_iop_lens_params_v8_t *o = (dt_iop_lens_params_v8_t *)old_params; - dt_iop_lens_params_t *n = (dt_iop_lens_params_t *)new_params; - dt_iop_lens_params_t *d = (dt_iop_lens_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + dt_iop_lens_params_v10_t *n = + (dt_iop_lens_params_v10_t *)malloc(sizeof(dt_iop_lens_params_v10_t)); n->method = o->method; n->modify_flags = (dt_iop_lens_modflag_t)o->modify_flags; @@ -784,13 +887,67 @@ // new in v9 n->has_been_set = FALSE; + // new in v10 + n->v_strength = 0.0f; + n->v_radius = 0.5f; + n->v_steepness = 0.5f; + n->reserved[0] = n->reserved[1] = 0.0f; + + *new_params = n; + *new_params_size = sizeof(dt_iop_lens_params_v10_t); + *new_version = 10; return 0; } + if(old_version == 9) + { + typedef struct + { + dt_iop_lens_method_t method; + dt_iop_lens_modflag_t modify_flags; + dt_iop_lens_mode_t inverse; + float scale; + float crop; + float focal; + float aperture; + float distance; + dt_iop_lens_lenstype_t target_geom; + char camera[128]; + char lens[128]; + gboolean tca_override; + float tca_r; + float tca_b; + + float cor_dist_ft; + float cor_vig_ft; + float cor_ca_r_ft; + float cor_ca_b_ft; + float scale_md_v1; + dt_iop_lens_embedded_metadata_version md_version; + float scale_md; + gboolean has_been_set; + } dt_iop_lens_params_v9_t; + + const dt_iop_lens_params_v9_t *o = (dt_iop_lens_params_v9_t *)old_params; + dt_iop_lens_params_v10_t *n = + (dt_iop_lens_params_v10_t *)malloc(sizeof(dt_iop_lens_params_v10_t)); + + memcpy(n, o, sizeof(dt_iop_lens_params_v9_t)); + // new in v10 + n->v_strength = 0.0f; + n->v_radius = 0.5f; + n->v_steepness = 0.5f; + n->reserved[0] = n->reserved[1] = 0.0f; + + *new_params = n; + *new_params_size = sizeof(dt_iop_lens_params_v10_t); + *new_version = 10; + return 0; + } return 1; } -/* lensfun processing start */ +/* Lensfun processing start */ static lfModifier * _get_modifier(int *mods_done, const int w, const int h, @@ -1188,7 +1345,7 @@ { err = dt_opencl_enqueue_copy_image(devid, dev_in, dev_out, origin, origin, oregion); if(err != CL_SUCCESS) goto error; - return TRUE; + return CL_SUCCESS; } switch(interpolation->id) @@ -1206,7 +1363,7 @@ ldkernel = gd->kernel_lens_distort_lanczos3; break; default: - return FALSE; + return DT_OPENCL_PROCESS_CL; } tmpbuf = (float *)dt_alloc_align(64, tmpbuflen); @@ -1368,20 +1525,12 @@ } } - dt_opencl_release_mem_object(dev_tmpbuf); - dt_opencl_release_mem_object(dev_tmp); - if(tmpbuf != NULL) dt_free_align(tmpbuf); - if(modifier != NULL) delete modifier; - return TRUE; - error: dt_opencl_release_mem_object(dev_tmp); dt_opencl_release_mem_object(dev_tmpbuf); - if(tmpbuf != NULL) dt_free_align(tmpbuf); + dt_free_align(tmpbuf); if(modifier != NULL) delete modifier; - dt_print(DT_DEBUG_OPENCL, - "[opencl_lens] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif @@ -1397,17 +1546,17 @@ tiling->overlap = 4; tiling->xalign = 1; tiling->yalign = 1; - return; + dt_iop_lens_data_t *d = (dt_iop_lens_data_t *)piece->data; + if(d->v_strength != 0.0f) tiling->factor += 1.0f; } -static int _distort_transform_lf( - dt_iop_module_t *self, - dt_dev_pixelpipe_iop_t *piece, - float *const __restrict points, - size_t points_count) +static gboolean _distort_transform_lf(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *const __restrict points, + size_t points_count) { dt_iop_lens_data_t *d = (dt_iop_lens_data_t *)piece->data; - if(!d->lens || !d->lens->Maker || d->crop <= 0.0f) return 0; + if(!d->lens || !d->lens->Maker || d->crop <= 0.0f) return FALSE; const float orig_w = piece->buf_in.width; const float orig_h = piece->buf_in.height; @@ -1441,18 +1590,17 @@ } delete modifier; - return 1; + return TRUE; } -static int _distort_backtransform_lf( - dt_iop_module_t *self, - dt_dev_pixelpipe_iop_t *piece, - float *const __restrict points, - size_t points_count) +static gboolean _distort_backtransform_lf(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *const __restrict points, + size_t points_count) { dt_iop_lens_data_t *d = (dt_iop_lens_data_t *)piece->data; - if(!d->lens || !d->lens->Maker || d->crop <= 0.0f) return 0; + if(!d->lens || !d->lens->Maker || d->crop <= 0.0f) return FALSE; const int used_lf_mask = (dt_image_is_monochrome(&self->dev->image_storage)) ? LF_MODIFY_ALL & ~LF_MODIFY_TCA @@ -1485,7 +1633,7 @@ } delete modifier; - return 1; + return TRUE; } // TODO: Shall we keep LF_MODIFY_TCA in the modifiers? @@ -1665,7 +1813,7 @@ dt_free_align(buf); - // LensFun can return NAN coords, so we need to handle them carefully. + // Lensfun can return NAN coords, so we need to handle them carefully. if(!isfinite(xm) || !(0 <= xm && xm < orig_w)) xm = 0; if(!isfinite(xM) || !(1 <= xM && xM < orig_w)) xM = orig_w; if(!isfinite(ym) || !(0 <= ym && ym < orig_h)) ym = 0; @@ -1769,7 +1917,7 @@ d->tca_override = p->tca_override; /* - * there are certain situations when LensFun can return NAN coordinated. + * there are certain situations when Lensfun can return NAN coordinated. * most common case would be when the FOV is increased. */ if(d->target_geom == LF_RECTILINEAR) @@ -1781,7 +1929,7 @@ d->do_nan_checks = FALSE; } - /* calculate which corrections will be applied by lensfun */ + /* calculate which corrections will be applied by Lensfun */ if(self->dev->gui_attached && g && (piece->pipe->type & DT_DEV_PIXELPIPE_PREVIEW)) { const gboolean raw_monochrome = dt_image_is_monochrome(&self->dev->image_storage); @@ -1805,7 +1953,100 @@ dt_iop_gui_leave_critical_section(self); } } -/* lensfun processing end*/ +/* Lensfun processing end*/ + +#ifdef __GNUC__ + #pragma GCC push_options + #pragma GCC optimize ("fast-math", "fp-contract=fast", "finite-math-only", "no-math-errno") +#endif + +/* manually controlled vignette using a linear spline */ +static uint64_t _get_vignette_hash(dt_iop_lens_data_t *d) +{ + uint64_t hash = 5381; + char *pstr = (char *)(&d->v_radius); + // radius & steepness are the parameters used for the spline so represented in the cache + for(size_t ip = 0; ip < 2 * sizeof(float); ip++) + hash = ((hash << 5) + hash) ^ pstr[ip]; + + return hash; +} + +static void _init_vignette_spline(dt_iop_lens_data_t *d) +{ + uint64_t vhash = _get_vignette_hash(d); + if(d->vighash == vhash) return; + d->vighash = vhash; + + /* basic math idea from rawtherapee code */ +#ifdef _OPENMP +#pragma omp parallel for default(none) \ + dt_omp_firstprivate(d) \ + schedule(static) +#endif + for(int i = 0; i < VIGSPLINES; i++) + { + const double radius = (double)i / (double)(VIGSPLINES - 1); + const double v = d->v_steepness; + const double b = 1.0 + d->v_radius * 10.0; + const double mul = -v / tanh (b); + d->vigspline[i] = (float)(v + mul * tanh(b * (1.0 - radius))); + } +} + +static inline float _calc_vignette_spline(const float radius, const float *spline) +{ + if(radius >= 1.0f) return spline[VIGSPLINES-1]; + + const float r = radius * (float)(VIGSPLINES - 1); + const float frac = r - truncf(r); + const int i = (int)r; + + const float p0 = spline[i]; + return p0 + (spline[i+1] - p0) * frac; +} + + +static void _preprocess_vignette(struct dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + const float *const data, + float *vig, + const dt_iop_roi_t *const roi, + const gboolean mask) +{ + dt_iop_lens_data_t *d = (dt_iop_lens_data_t *)piece->data; + _init_vignette_spline(d); + + const float w2 = 0.5f * roi->scale * piece->buf_in.width; + const float h2 = 0.5f * roi->scale * piece->buf_in.height; + const float inv_maxr = 1.0f / sqrtf(w2*w2 + h2*h2); + const float strength = 2.0f * d->v_strength; + const float *spline = d->vigspline; + +#ifdef _OPENMP +#pragma omp parallel for SIMD() default(none) \ + dt_omp_firstprivate(data, vig, roi, w2, h2, mask, inv_maxr, strength, spline) \ + schedule(static) \ + collapse(2) +#endif + for(int row = 0; row < roi->height; row++) + { + for(int col = 0; col < roi->width; col++) + { + const size_t idx = 4 * (size_t)(row * roi->width + col); + const float dx = ((float)(roi->x + col) - w2); + const float dy = ((float)(roi->y + row) - h2); + const float radius = sqrtf(dx*dx + dy*dy) * inv_maxr; + const float val = strength * _calc_vignette_spline(radius, spline); + + for_three_channels(c) + vig[idx + c] = (1.0f + val) * data[idx+c]; + + vig[idx + 3] = (mask) ? val : vig[idx + 1]; + } + } +} +/* manually controlled vignette end */ /* embedded metadata processing start */ @@ -1813,11 +2054,6 @@ * <freddie@witherden.org> in pull request * https://github.com/darktable-org/darktable/pull/7092 */ -#ifdef __GNUC__ - #pragma GCC push_options - #pragma GCC optimize ("fast-math", "fp-contract=fast", "finite-math-only", "no-math-errno") -#endif - static inline float _interpolate_linear_spline(const float *xi, const float *yi, const int ni, @@ -1922,7 +2158,6 @@ return nc; } - else if(img->exif_correction_type == CORRECTION_TYPE_DNG) { const int nc = MAXKNOTS; @@ -2163,9 +2398,77 @@ } } } + else if(img->exif_correction_type == CORRECTION_TYPE_OLYMPUS) + { + // Get the coefficients for the distortion polynomial + float drs = 1, dk2 = 0, dk4 = 0, dk6 = 0; + if(cd->olympus.has_dist) + { + drs = cd->olympus.dist[3]; // Defines radius of corner of output image + dk2 = cd->olympus.dist[0]; + dk4 = cd->olympus.dist[1]; + dk6 = cd->olympus.dist[2]; + } + // Get the coefficients for the CA polynomial + float car0 = 0, car2 = 0, car4 = 0, cab0 = 0, cab2 = 0, cab4 = 0; + if (cd->olympus.has_ca) + { + car0 = cd->olympus.ca[0]; + car2 = cd->olympus.ca[1]; + car4 = cd->olympus.ca[2]; + cab0 = cd->olympus.ca[3]; + cab2 = cd->olympus.ca[4]; + cab4 = cd->olympus.ca[5]; + } + + nc = MAXKNOTS; + + for(int i = 0; i < nc; i++) + { + const float r = (float) i / (float) (nc - 1); + knots_dist[i] = knots_vig[i] = r; + + if(cor_rgb && p->modify_flags & DT_IOP_LENS_MODIFY_FLAG_DISTORTION) + { + // Convert the polynomial to a spline by evaluating it at each knot + // + // The distortion polynomial maps a radius Rout in the output + // (undistorted) image, where the corner is defined as Rout=1, to a + // radius in the input (distorted) image, where the corner is defined + // as Rin=1. + // Rin = Rout*dk0 * (1 + dk2 * (Rout*dk0)^2 + dk4 * (Rout*dk0)^4 + dk6 * (Rout*dk0)^6) + // + // r_cor is Rin / Rout. + const float rs2 = powf(r * drs, 2); + const float r_cor = drs * (1 + rs2 * (dk2 + rs2 * (dk4 + rs2 * dk6))); + + cor_rgb[0][i] = cor_rgb[1][i] = cor_rgb[2][i] = (p->cor_dist_ft * (r_cor - 1) + 1); + } + else if(cor_rgb) + cor_rgb[0][i] = cor_rgb[1][i] = cor_rgb[2][i] = 1; + + if(cor_rgb && p->modify_flags & DT_IOP_LENS_MODIFY_FLAG_TCA) + { + // Radius in the input (distorted) image of the current knot + const float rd = cor_rgb[1][i] * r; + const float rd2 = powf(rd, 2); + // CA correction is applied as: + // Rin_with_CA = Rin * ((1 + car0) + car2 * Rin^2 + car4 * Rin^4) + if(r > 0) // Avoid divide by zero + { + cor_rgb[0][i] += p->cor_ca_r_ft * rd * (car0 + rd2 * (car2 + rd2 * car4)) / r; + cor_rgb[2][i] += p->cor_ca_b_ft * rd * (cab0 + rd2 * (cab2 + rd2 * cab4)) / r; + } + } + + if(vig) + vig[i] = 1; + } + } + // calculate the optimal scaling value to show the maximum - // visibile image box after distortion correction + // visible image box after distortion correction // It does so by walking from the normalized radius [0, 1] at the shorter image // border to 1. // TODO(sgotti) Theoretically, since the distortion function should always be @@ -2309,6 +2612,22 @@ } } +static void _commit_params_vig(dt_iop_module_t *self, + dt_iop_lens_params_t *p, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) +{ + dt_iop_lens_gui_data_t *g = (dt_iop_lens_gui_data_t *)self->gui_data; + + if(self->dev->gui_attached && g + && (piece->pipe->type & DT_DEV_PIXELPIPE_PREVIEW)) + { + dt_iop_gui_enter_critical_section(self); + g->corrections_done = 0; + dt_iop_gui_leave_critical_section(self); + } +} + static void _tiling_callback_md(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const dt_iop_roi_t *roi_in, @@ -2323,15 +2642,29 @@ tiling->yalign = 1; } -static int _distort_transform_md(dt_iop_module_t *self, - dt_dev_pixelpipe_iop_t *piece, - float *points, - const size_t points_count) +static void _tiling_callback_vg(struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + const dt_iop_roi_t *roi_in, + const dt_iop_roi_t *roi_out, + struct dt_develop_tiling_t *tiling) +{ + tiling->factor = 2.0f; + tiling->maxbuf = 1.0f; + tiling->overhead = 0; + tiling->overlap = 4; + tiling->xalign = 1; + tiling->yalign = 1; +} + +static gboolean _distort_transform_md(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *points, + const size_t points_count) { dt_iop_lens_data_t *d = (dt_iop_lens_data_t *)piece->data; if(!d->nc || d->modify_flags == DT_IOP_LENS_MODFLAG_NONE) - return 0; + return FALSE; const float inv_scale_md = 1.0f / d->scale_md; const float w2 = 0.5f * piece->buf_in.width; @@ -2364,18 +2697,18 @@ points[i + 1] = p2; } - return 1; + return TRUE; } -static int _distort_backtransform_md(dt_iop_module_t *self, - dt_dev_pixelpipe_iop_t *piece, - float *points, - const size_t points_count) +static gboolean _distort_backtransform_md(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *points, + const size_t points_count) { dt_iop_lens_data_t *d = (dt_iop_lens_data_t *)piece->data; if(!d->nc || d->modify_flags == DT_IOP_LENS_MODFLAG_NONE) - return 0; + return FALSE; const float inv_scale_md = 1.0f / d->scale_md; const float w2 = 0.5f * piece->buf_in.width; @@ -2393,7 +2726,7 @@ points[i + 1] = dr*cy + h2; } - return 1; + return TRUE; } static void _distort_mask_md(struct dt_iop_module_t *self, @@ -2444,12 +2777,13 @@ const void *const ivoid, void *const ovoid, const dt_iop_roi_t *const roi_in, - const dt_iop_roi_t *const roi_out) + const dt_iop_roi_t *const roi_out, + const gboolean backbuf) { dt_iop_lens_data_t *d = (dt_iop_lens_data_t *)piece->data; if(!d->nc || d->modify_flags == DT_IOP_LENS_MODFLAG_NONE) - return dt_iop_copy_image_roi((float *)ovoid, (float *)ivoid, 4, roi_in, roi_out, TRUE); + return dt_iop_copy_image_roi((float *)ovoid, (float *)ivoid, 4, roi_in, roi_out); const float inv_scale_md = 1.0f / d->scale_md; const float w2 = 0.5f * roi_in->scale * piece->buf_in.width; @@ -2459,11 +2793,14 @@ const struct dt_interpolation *interpolation = dt_interpolation_new(DT_INTERPOLATION_USERPREF_WARP); - // Allocate temporary storage - const size_t bufsize = (size_t) roi_in->width * roi_in->height * 4; - float *buf = dt_alloc_align_float(bufsize); - dt_iop_image_copy(buf, (float*)ivoid, bufsize); - + // Allocate temporary storage if we haven't got that from manual vignette + float *buf = (float *) ivoid; + if(!backbuf) + { + const size_t bufsize = (size_t) roi_in->width * roi_in->height * 4; + buf = dt_alloc_align_float(bufsize); + dt_iop_image_copy(buf, (float*)ivoid, bufsize); + } // Correct vignetting if(d->modify_flags & DT_IOP_LENS_MODIFY_FLAG_VIGNETTING) { @@ -2484,7 +2821,7 @@ _interpolate_linear_spline(d->knots_vig, d->vig, d->nc, r*sqrtf(cx*cx + cy*cy)); for_each_channel(c) - buf[idx + c] /= (sf != 0.0f) ? sf : 1.0f; + buf[idx + c] /= fmaxf(1e-4, sf); } } } @@ -2507,32 +2844,103 @@ const float cy = (roi_out->y + y - h2) * inv_scale_md; const float radius = r*sqrtf(cx*cx + cy*cy); - for_three_channels(c) + + for_each_channel(c) { + // use green data for alpha channel + const int plane = (c == 3) ? 1 : c; const float dr = - _interpolate_linear_spline(d->knots_dist, d->cor_rgb[c], d->nc, radius); + _interpolate_linear_spline(d->knots_dist, d->cor_rgb[plane], d->nc, radius); const float xs = dr*cx + w2 - roi_in->x; const float ys = dr*cy + h2 - roi_in->y; out[odx+c] = dt_interpolation_compute_sample (interpolation, buf + c, xs, ys, roi_in->width, roi_in->height, 4, 4*roi_in->width); } - // use green data for alpha channel - { - const float dr = - _interpolate_linear_spline(d->knots_dist, d->cor_rgb[1], d->nc, radius); - const float xs = dr*cx + w2 - roi_in->x; - const float ys = dr*cy + h2 - roi_in->y; - out[odx+3] = dt_interpolation_compute_sample - (interpolation, buf + 3, xs, ys, roi_in->width, - roi_in->height, 4, 4*roi_in->width); - } } } - dt_free_align(buf); + if(!backbuf) + dt_free_align(buf); } +#ifdef HAVE_OPENCL +static int _process_cl_md(struct dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + cl_mem dev_in, + cl_mem dev_out, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) +{ + dt_iop_lens_data_t *d = (dt_iop_lens_data_t *)piece->data; + dt_iop_lens_global_data_t *gd = (dt_iop_lens_global_data_t *)self->global_data; + + const int devid = piece->pipe->devid; + + if(!d->nc || d->modify_flags == DT_IOP_LENS_MODFLAG_NONE) + { + size_t origin[] = { 0, 0, 0 }; + size_t oregion[] = { (size_t)roi_out->width, (size_t)roi_out->height, 1 }; + return dt_opencl_enqueue_copy_image(devid, dev_in, dev_out, origin, origin, oregion); + } + + const float w2 = 0.5f * roi_in->scale * piece->buf_in.width; + const float h2 = 0.5f * roi_in->scale * piece->buf_in.height; + const float r = 1.0f / sqrtf(w2*w2 + h2*h2); + const int knots = d->nc; + + const struct dt_interpolation *itor = dt_interpolation_new(DT_INTERPOLATION_USERPREF_WARP); + const int itor_width = itor->width; + + cl_mem data = dev_in; + cl_mem knots_dist = NULL; + cl_mem cor_rgb = NULL; + cl_int err = DT_OPENCL_SYSMEM_ALLOCATION; + + // Correct vignetting + if(d->modify_flags & DT_IOP_LENS_MODIFY_FLAG_VIGNETTING) + { + err = CL_MEM_OBJECT_ALLOCATION_FAILURE; + data = (cl_mem)dt_opencl_alloc_device(devid, roi_in->width, roi_in->height, 4 * sizeof(float)); + if(data == NULL) goto error; + + cl_mem knots_vig = (cl_mem)dt_opencl_copy_host_to_device_constant(devid, sizeof(d->knots_vig), &d->knots_vig); + cl_mem vig = (cl_mem)dt_opencl_copy_host_to_device_constant(devid, sizeof(d->vig), &d->vig); + + err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_md_vignette, roi_in->width, roi_in->height, + CLARG(dev_in), CLARG(data), + CLARG(knots_vig), CLARG(vig), + CLARG(roi_in->width), CLARG(roi_in->height), + CLARG(w2), CLARG(h2), CLARG(r), + CLARG(roi_in->x), CLARG(roi_in->y), + CLARG(knots)); + + dt_opencl_release_mem_object(knots_vig); + dt_opencl_release_mem_object(vig); + if(err != CL_SUCCESS) goto error; + } + + knots_dist = (cl_mem)dt_opencl_copy_host_to_device_constant(devid, sizeof(d->knots_dist), &d->knots_dist); + cor_rgb = (cl_mem)dt_opencl_copy_host_to_device_constant(devid, sizeof(d->cor_rgb), &d->cor_rgb); + + err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_md_correct, roi_out->width, roi_out->height, + CLARG(data), CLARG(dev_out), + CLARG(knots_dist), CLARG(cor_rgb), + CLARG(roi_out->width), CLARG(roi_out->height), + CLARG(roi_in->width), CLARG(roi_in->height), + CLARG(w2), CLARG(h2), CLARG(r), CLARG(d->scale_md), + CLARG(roi_in->x), CLARG(roi_in->y), + CLARG(roi_out->x), CLARG(roi_out->y), + CLARG(knots), CLARG(itor->id), CLARG(itor_width)); + +error: + if(data != dev_in) dt_opencl_release_mem_object(data); + dt_opencl_release_mem_object(knots_dist); + dt_opencl_release_mem_object(cor_rgb); + return err; +} +#endif + static void _modify_roi_in_md(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const dt_iop_roi_t *const roi_out, @@ -2614,12 +3022,20 @@ roi_in->height = (int)fminf(orig_h - roi_in->y, yM - roi_in->y + interpolation->width); } +static void _modify_roi_in_vg(struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + const dt_iop_roi_t *const roi_out, + dt_iop_roi_t *roi_in) +{ + *roi_in = *roi_out; +} + +/* embedded metadata processing end */ + #ifdef __GNUC__ #pragma GCC pop_options #endif -/* embedded metadata processing end */ - void process(dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, @@ -2628,19 +3044,73 @@ const dt_iop_roi_t *const roi_out) { dt_iop_lens_data_t *d = (dt_iop_lens_data_t *)piece->data; + dt_iop_lens_gui_data_t *g = (dt_iop_lens_gui_data_t *)self->gui_data; + const gboolean mask = g && g->vig_masking && (piece->pipe->type & DT_DEV_PIXELPIPE_FULL); + const gboolean correction = mask || (d->v_strength > 0.0f); + float *data = (float *)ivoid; + + if(mask) + piece->pipe->mask_display = DT_DEV_PIXELPIPE_DISPLAY_MASK; + + if(correction) + { + data = dt_alloc_align_float((size_t) 4 * roi_in->width * roi_in->height); + if(data) + _preprocess_vignette(self, piece, (float *)ivoid, data, roi_in, mask); + else + data = (float *)ivoid; + } if(d->method == DT_IOP_LENS_METHOD_LENSFUN) { - _process_lf(self, piece, ivoid, ovoid, roi_in, roi_out); + _process_lf(self, piece, data, ovoid, roi_in, roi_out); } - else + else if(d->method == DT_IOP_LENS_METHOD_EMBEDDED_METADATA) { - _process_md(self, piece, ivoid, ovoid, roi_in, roi_out); + _process_md(self, piece, data, ovoid, roi_in, roi_out, correction); } + else + dt_iop_copy_image_roi((float *)ovoid, data, 4, roi_in, roi_out); + + if(data != (float *)ivoid) + dt_free_align(data); } #ifdef HAVE_OPENCL +cl_int _preprocess_vignette_cl(struct dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + cl_mem dev_in, + cl_mem dev_vig, + const dt_iop_roi_t *const roi, + const gboolean mask) +{ + dt_iop_lens_data_t *d = (dt_iop_lens_data_t *)piece->data; + dt_iop_lens_global_data_t *gd = (dt_iop_lens_global_data_t *)self->global_data; + + _init_vignette_spline(d); + + cl_mem dev_spline = (cl_mem)dt_opencl_copy_host_to_device_constant(piece->pipe->devid, sizeof(d->vigspline), d->vigspline); + if(dev_spline == NULL) return CL_MEM_OBJECT_ALLOCATION_FAILURE; + + const float w2 = 0.5f * roi->scale * piece->buf_in.width; + const float h2 = 0.5f * roi->scale * piece->buf_in.height; + const float inv_maxr = 1.0f / sqrtf(w2*w2 + h2*h2); + const float strength = 2.0f * d->v_strength; + const int splinesize = VIGSPLINES; + + cl_int err = dt_opencl_enqueue_kernel_2d_args(piece->pipe->devid, gd->kernel_lens_man_vignette, roi->width, roi->height, + CLARG(dev_in), CLARG(dev_vig), CLARG(dev_spline), + CLARG(roi->width), CLARG(roi->height), + CLARG(w2), CLARG(h2), CLARG(roi->x), CLARG(roi->y), CLARG(inv_maxr), + CLARG(strength), + CLARG(splinesize), + CLARG(mask)); + + dt_opencl_release_mem_object(dev_spline); + return err; +} + int process_cl(struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, cl_mem dev_in, @@ -2648,8 +3118,47 @@ const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) { - // process_cl is called only for lensfun method - return _process_cl_lf(self, piece, dev_in, dev_out, roi_in, roi_out); + // process_cl is called only for Lensfun method + cl_mem data = dev_in; + + dt_iop_lens_data_t *d = (dt_iop_lens_data_t *)piece->data; + dt_iop_lens_gui_data_t *g = (dt_iop_lens_gui_data_t *)self->gui_data; + const gboolean mask = g && g->vig_masking && (piece->pipe->type & DT_DEV_PIXELPIPE_FULL); + const gboolean correction = mask || (d->v_strength > 0.0f); + + if(mask) + piece->pipe->mask_display = DT_DEV_PIXELPIPE_DISPLAY_MASK; + + cl_int err = CL_SUCCESS; + if(correction) + { + data = (cl_mem)dt_opencl_alloc_device(piece->pipe->devid, roi_in->width, roi_in->height, 4 * sizeof(float)); + err = _preprocess_vignette_cl(self, piece, dev_in, data, roi_in, mask); + if(err != CL_SUCCESS) + { + dt_opencl_release_mem_object(data); + data = dev_in; + } + } + + if(d->method == DT_IOP_LENS_METHOD_LENSFUN) + { + err = _process_cl_lf(self, piece, data, dev_out, roi_in, roi_out); + } + else if(d->method == DT_IOP_LENS_METHOD_EMBEDDED_METADATA) + { + err = _process_cl_md(self, piece, data, dev_out, roi_in, roi_out); + } + else + { + size_t origin[] = { 0, 0, 0 }; + size_t region[] = { (size_t)roi_in->width, (size_t)roi_in->height, 1 }; + err = dt_opencl_enqueue_copy_image(piece->pipe->devid, data, dev_out, origin, origin, region); + } + + if(data != dev_in) + dt_opencl_release_mem_object(data); + return err; } #endif @@ -2665,16 +3174,18 @@ { _tiling_callback_lf(self, piece, roi_in, roi_out, tiling); } - else + else if(d->method == DT_IOP_LENS_METHOD_EMBEDDED_METADATA) { _tiling_callback_md(self, piece, roi_in, roi_out, tiling); } + else + _tiling_callback_vg(self, piece, roi_in, roi_out, tiling); } -int distort_transform(dt_iop_module_t *self, - dt_dev_pixelpipe_iop_t *piece, - float *const __restrict points, - const size_t points_count) +gboolean distort_transform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *const __restrict points, + const size_t points_count) { dt_iop_lens_data_t *d = (dt_iop_lens_data_t *)piece->data; @@ -2682,16 +3193,17 @@ { return _distort_transform_lf(self, piece, points, points_count); } - else + else if(d->method == DT_IOP_LENS_METHOD_EMBEDDED_METADATA) { return _distort_transform_md(self, piece, points, points_count); } + return FALSE; } -int distort_backtransform(dt_iop_module_t *self, - dt_dev_pixelpipe_iop_t *piece, - float *const __restrict points, - const size_t points_count) +gboolean distort_backtransform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *const __restrict points, + const size_t points_count) { dt_iop_lens_data_t *d = (dt_iop_lens_data_t *)piece->data; @@ -2699,10 +3211,11 @@ { return _distort_backtransform_lf(self, piece, points, points_count); } - else + else if(d->method == DT_IOP_LENS_METHOD_EMBEDDED_METADATA) { return _distort_backtransform_md(self, piece, points, points_count); } + return FALSE; } void distort_mask(struct dt_iop_module_t *self, @@ -2718,10 +3231,12 @@ { _distort_mask_lf(self, piece, in, out, roi_in, roi_out); } - else + else if(d->method == DT_IOP_LENS_METHOD_EMBEDDED_METADATA) { _distort_mask_md(self, piece, in, out, roi_in, roi_out); } + else + dt_iop_copy_image_roi(out, in, 1, roi_in, roi_out); } void modify_roi_in(struct dt_iop_module_t *self, @@ -2735,10 +3250,12 @@ { _modify_roi_in_lf(self, piece, roi_out, roi_in); } - else + else if(d->method == DT_IOP_LENS_METHOD_EMBEDDED_METADATA) { _modify_roi_in_md(self, piece, roi_out, roi_in); } + else + _modify_roi_in_vg(self, piece, roi_out, roi_in); } // _get_method returns the method to use based on the provided @@ -2753,10 +3270,11 @@ if(method == DT_IOP_LENS_METHOD_EMBEDDED_METADATA && !_have_embedded_metadata(self)) { - // fallback to lensfun method + // fallback to Lensfun method method = DT_IOP_LENS_METHOD_LENSFUN; } + // FIXME: do we want to fallback to vignette only? return method; } @@ -2787,17 +3305,22 @@ if(dt_image_is_monochrome(&self->dev->image_storage)) d->modify_flags &= ~DT_IOP_LENS_MODIFY_FLAG_TCA; - // no OpenCL for LENS_METHOD_EMBEDDED_METADATA - piece->process_cl_ready = (d->method == DT_IOP_LENS_METHOD_EMBEDDED_METADATA) ? FALSE : TRUE; + d->v_strength = p->v_strength; + d->v_radius = p->v_radius; + d->v_steepness = p->v_steepness; + + piece->process_cl_ready = TRUE; if(d->method == DT_IOP_LENS_METHOD_LENSFUN) { _commit_params_lf(self, p, pipe, piece); } - else + else if(d->method == DT_IOP_LENS_METHOD_EMBEDDED_METADATA) { _commit_params_md(self, p, pipe, piece); } + else + _commit_params_vig(self, p, pipe, piece); } void init_pipe(struct dt_iop_module_t *self, @@ -2839,6 +3362,12 @@ dt_opencl_create_kernel(program, "lens_distort_lanczos3"); gd->kernel_lens_vignette = dt_opencl_create_kernel(program, "lens_vignette"); + gd->kernel_lens_man_vignette = + dt_opencl_create_kernel(program, "lens_man_vignette"); + gd->kernel_md_vignette = + dt_opencl_create_kernel(program, "md_vignette"); + gd->kernel_md_correct = + dt_opencl_create_kernel(program, "md_lens_correction"); lfDatabase *dt_iop_lensfun_db = new lfDatabase; gd->db = (lfDatabase *)dt_iop_lensfun_db; @@ -2873,7 +3402,7 @@ else dt_iop_lensfun_db->Load(dt_iop_lensfun_db->UserLocation); #else - // code for older lensfun preserved as-is + // code for older Lensfun preserved as-is #ifdef LF_MAX_DATABASE_VERSION g_free(dt_iop_lensfun_db->HomeDataDir); dt_iop_lensfun_db->HomeDataDir = g_strdup(sysdbpath); @@ -2957,7 +3486,7 @@ if(dt_image_is_monochrome(img)) d->modify_flags = DT_IOP_LENS_MODFLAG_DIST_VIGN; - // init crop from lensfun db: + // init crop from Lensfun DB: char model[100]; // truncate often complex descriptions. g_strlcpy(model, img->exif_model, sizeof(model)); for(char cnt = 0, *c = model; c < model + 100 && *c != '\0'; c++) @@ -3000,7 +3529,7 @@ int lens_i = 0; /* - * Current SVN lensfun lets you test for a fixed-lens camera by looking + * Current SVN Lensfun lets you test for a fixed-lens camera by looking * at the zeroth character in the mount's name: * If it is a lower case letter, it is a fixed-lens camera. */ @@ -3075,14 +3604,17 @@ dt_opencl_free_kernel(gd->kernel_lens_distort_lanczos2); dt_opencl_free_kernel(gd->kernel_lens_distort_lanczos3); dt_opencl_free_kernel(gd->kernel_lens_vignette); + dt_opencl_free_kernel(gd->kernel_lens_man_vignette); + dt_opencl_free_kernel(gd->kernel_md_vignette); + dt_opencl_free_kernel(gd->kernel_md_correct); free(module->data); module->data = NULL; } -/* lensfun gui start */ +/* Lensfun GUI start */ /// ############################################################ -/// gui stuff: inspired by ufraws lensfun tab: +/// GUI stuff: inspired by UFRaw's Lensfun tab: /* simple function to compute the floating-point precision which is enough for "normal use". The criteria is to have @@ -3110,7 +3642,7 @@ return 0; } -/* -- ufraw ptr array functions -- */ +/* -- UFRaw ptr array functions -- */ static int _ptr_array_insert_sorted(GPtrArray *array, const void *item, @@ -3196,7 +3728,7 @@ root[index] = item; } -/* -- end ufraw ptr array functions -- */ +/* -- end of UFRaw ptr array functions -- */ /* -- camera -- */ @@ -3730,7 +4262,7 @@ dt_bauhaus_slider_set(g->scale, scale); } -/* -- lensfun gui end -- */ +/* -- Lensfun GUI end -- */ static void _display_errors(struct dt_iop_module_t *self) { @@ -3761,9 +4293,6 @@ dt_iop_lens_params_t *p = (dt_iop_lens_params_t *)self->params; dt_iop_lens_gui_data_t *g = (dt_iop_lens_gui_data_t *)self->gui_data; - // enable methods selector combobox only if more than 1 methods are available - gtk_widget_set_sensitive(g->methods_selector, _have_embedded_metadata(self) > 0); - if(p->method == DT_IOP_LENS_METHOD_LENSFUN) { gtk_stack_set_visible_child_name(GTK_STACK(g->methods), "lensfun"); @@ -3784,7 +4313,7 @@ gtk_widget_set_visible(g->tca_b, p->tca_override && !raw_monochrome); } - else + else if(p->method == DT_IOP_LENS_METHOD_EMBEDDED_METADATA) { gtk_stack_set_visible_child_name(GTK_STACK(g->methods), "metadata"); @@ -3799,7 +4328,7 @@ ? cd->dng.has_vignette : TRUE; - // DNG cannot provide ca fine tuning since the ca correction is embedded in + // DNG cannot provide CA fine tuning since the CA correction is embedded in // the warp correction. const gboolean has_ca = img->exif_correction_type != CORRECTION_TYPE_DNG && p->md_version >= DT_IOP_LENS_EMBEDDED_METADATA_VERSION_2; @@ -3815,6 +4344,15 @@ gtk_widget_set_sensitive(GTK_WIDGET(g->modflags), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(g->message), TRUE); } + else + { + gtk_stack_set_visible_child_name(GTK_STACK(g->methods), "onlyvig"); + gtk_widget_set_sensitive(GTK_WIDGET(g->modflags), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(g->message), FALSE); + } + const gboolean onlyvig = p->method == DT_IOP_LENS_METHOD_ONLYVIGNETTE; + gtk_widget_set_visible(GTK_WIDGET(g->modflags), !onlyvig); + gtk_widget_set_visible(GTK_WIDGET(g->hbox1), !onlyvig); // set modified if user did modify something with some widget // (excluding the method selector) @@ -3852,6 +4390,15 @@ _display_errors(self); } +static void _visualize_callback(GtkWidget *quad, gpointer user_data) +{ + if(darktable.gui->reset) return; + dt_iop_module_t *self = (dt_iop_module_t *)user_data; + dt_iop_lens_gui_data_t *g = (dt_iop_lens_gui_data_t *)self->gui_data; + g->vig_masking = dt_bauhaus_widget_get_quad_active(quad); + dt_dev_reprocess_center(self->dev); +} + void gui_init(struct dt_iop_module_t *self) { dt_iop_lens_gui_data_t *g = IOP_GUI_ALLOC(lens); @@ -3865,7 +4412,7 @@ g->corrections_done = -1; dt_iop_gui_leave_critical_section(self); - /* lensfun widget */ + /* Lensfun widget */ // _from_params methods assign widgets to self->widget, so // temporarily set self->widget to our widget GtkWidget *box_lf = self->widget = @@ -3933,6 +4480,8 @@ g_signal_connect(G_OBJECT(g->scale), "quad-pressed", G_CALLBACK(_autoscale_pressed_lf), self); gtk_widget_set_tooltip_text(g->scale, _("auto scale")); + dt_bauhaus_widget_set_quad_tooltip(g->scale, + _("automatic scale to available image size due to Lensfun data")); // reverse direction g->reverse = dt_bauhaus_combobox_from_params(self, "inverse"); @@ -3949,6 +4498,10 @@ dt_bauhaus_slider_set_digits(g->tca_b, 5); gtk_widget_set_tooltip_text(g->tca_b, _("transversal chromatic aberration blue")); + /* empty correction mode widget */ + GtkWidget *only_vig = self->widget = + gtk_box_new(GTK_ORIENTATION_VERTICAL, DT_BAUHAUS_SPACE); + /* embedded metadata widgets */ GtkWidget *box_md = self->widget = gtk_box_new(GTK_ORIENTATION_VERTICAL, DT_BAUHAUS_SPACE); @@ -3961,61 +4514,118 @@ gtk_box_pack_start(GTK_BOX(box_md), g->use_latest_md_algo, TRUE, TRUE, 0); g_signal_connect(G_OBJECT(g->use_latest_md_algo), "toggled", G_CALLBACK(_use_latest_md_algo_callback), self); - g->cor_dist_ft = dt_bauhaus_slider_from_params(self, "cor_dist_ft"); + // we put fine-tuning values under an expander + dt_gui_new_collapsible_section + (&g->fine_tune, + "plugins/darkroom/lens/expand_fine_tune", + _("fine-tuning"), + GTK_BOX(self->widget), + DT_ACTION(self)); + self->widget = GTK_WIDGET(g->fine_tune.container); + // DT_IOP_SECTION_FOR_PARAMS doesn't work in C++ so create section module manually + dt_iop_module_section_t sect_mod = {DT_ACTION_TYPE_IOP_SECTION, self, (gchar *)N_("fine-tune")}; + dt_iop_module_t *sect = (dt_iop_module_t *)§_mod; + + g->cor_dist_ft = dt_bauhaus_slider_from_params(sect, "cor_dist_ft"); dt_bauhaus_slider_set_digits(g->cor_dist_ft, 3); gtk_widget_set_tooltip_text(g->cor_dist_ft, _("tune the warp and chromatic aberration correction")); - g->cor_vig_ft = dt_bauhaus_slider_from_params(self, "cor_vig_ft"); + g->cor_vig_ft = dt_bauhaus_slider_from_params(sect, "cor_vig_ft"); dt_bauhaus_slider_set_digits(g->cor_vig_ft, 3); gtk_widget_set_tooltip_text(g->cor_vig_ft, _("tune the vignette correction")); - g->cor_ca_r_ft = dt_bauhaus_slider_from_params(self, "cor_ca_r_ft"); + g->cor_ca_r_ft = dt_bauhaus_slider_from_params(sect, "cor_ca_r_ft"); dt_bauhaus_slider_set_digits(g->cor_ca_r_ft, 3); gtk_widget_set_tooltip_text(g->cor_ca_r_ft, _("tune the TCA red correction")); - g->cor_ca_b_ft = dt_bauhaus_slider_from_params(self, "cor_ca_b_ft"); + g->cor_ca_b_ft = dt_bauhaus_slider_from_params(sect, "cor_ca_b_ft"); dt_bauhaus_slider_set_digits(g->cor_ca_b_ft, 3); gtk_widget_set_tooltip_text(g->cor_ca_b_ft, _("tune the TCA blue correction")); - g->scale_md = dt_bauhaus_slider_from_params(self, "scale_md"); + g->scale_md = dt_bauhaus_slider_from_params(sect, "scale_md"); dt_bauhaus_slider_set_digits(g->scale_md, 4); dt_bauhaus_widget_set_quad_paint(g->scale_md, dtgtk_cairo_paint_refresh, 0, NULL); g_signal_connect(G_OBJECT(g->scale_md), "quad-pressed", G_CALLBACK(_autoscale_pressed_md), self); gtk_widget_set_tooltip_text(g->scale_md, _("image scaling")); + dt_bauhaus_widget_set_quad_tooltip(g->scale_md, + _("automatic scale to available image size")); // main widget - self->widget = gtk_box_new(GTK_ORIENTATION_VERTICAL, DT_BAUHAUS_SPACE); + GtkWidget *main_box = self->widget = gtk_box_new(GTK_ORIENTATION_VERTICAL, DT_BAUHAUS_SPACE); gtk_widget_set_name(self->widget, "lens-module"); // selector for correction method g->methods_selector = dt_bauhaus_combobox_from_params(self, "method"); + gtk_widget_set_tooltip_text(g->methods_selector, _("select a correction mode either based on\n" + " a) data and algorithms provided by the Lensfun project\n" + " b) embedded metadata provided by the camera or software vendor")); // selector for correction type (modflags): one or more out of // distortion, TCA, vignetting g->modflags = dt_bauhaus_combobox_from_params(self, "modify_flags"); gtk_widget_set_tooltip_text(g->modflags, _("which corrections to apply")); - g->methods = gtk_stack_new(); - gtk_stack_set_homogeneous(GTK_STACK(g->methods), FALSE); - gtk_box_pack_start(GTK_BOX(self->widget), g->methods, TRUE, TRUE, 0); - - gtk_stack_add_named(GTK_STACK(g->methods), box_lf, "lensfun"); - gtk_stack_add_named(GTK_STACK(g->methods), box_md, "metadata"); - // message box to inform user what corrections have been done. this - // is useful as depending on lensfuns profile only some of the lens + // is useful as depending on Lensfun's profile only some of the lens // flaws can be corrected - GtkBox *hbox1 = GTK_BOX(gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0)); + g->hbox1 = GTK_BOX(gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0)); GtkWidget *label = gtk_label_new(_("corrections done: ")); gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_MIDDLE); gtk_widget_set_tooltip_text(label, _("which corrections have actually been done")); - gtk_box_pack_start(GTK_BOX(hbox1), label, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(g->hbox1), label, FALSE, FALSE, 0); g->message = GTK_LABEL(gtk_label_new("")); // This gets filled in by process gtk_label_set_ellipsize(GTK_LABEL(g->message), PANGO_ELLIPSIZE_MIDDLE); - gtk_box_pack_start(GTK_BOX(hbox1), GTK_WIDGET(g->message), FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(hbox1), TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(g->hbox1), GTK_WIDGET(g->message), FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(g->hbox1), TRUE, TRUE, 0); + + g->methods = gtk_stack_new(); + gtk_stack_set_homogeneous(GTK_STACK(g->methods), FALSE); + gtk_box_pack_start(GTK_BOX(self->widget), g->methods, TRUE, TRUE, 0); + + gtk_stack_add_named(GTK_STACK(g->methods), box_lf, "lensfun"); + gtk_stack_add_named(GTK_STACK(g->methods), box_md, "metadata"); + gtk_stack_add_named(GTK_STACK(g->methods), only_vig, "onlyvig"); + + // widget for extra manual vignette correction, FIXME manual reference + dt_gui_new_collapsible_section + (&g->vignette, + "plugins/darkroom/lens/expand_vignette", + _("manual vignette correction"), + GTK_BOX(main_box), + DT_ACTION(self)); + gtk_widget_set_tooltip_text(g->vignette.expander, + _("additional manually controlled optical vignetting correction")); + + self->widget = GTK_WIDGET(g->vignette.container); + sect_mod.section = (gchar *)N_("vignette"); + + g->v_strength = dt_bauhaus_slider_from_params(sect, "v_strength"); + gtk_widget_set_tooltip_text(g->v_strength, + _("amount of the applied optical vignetting correction")); + dt_bauhaus_widget_set_quad_tooltip(g->v_strength, + _("show applied optical vignette correction mask")); + dt_bauhaus_slider_set_format(g->v_strength, "%"); + dt_bauhaus_slider_set_digits(g->v_strength, 1); + dt_bauhaus_widget_set_quad_paint(g->v_strength, dtgtk_cairo_paint_showmask, 0, NULL); + dt_bauhaus_widget_set_quad_toggle(g->v_strength, TRUE); + dt_bauhaus_widget_set_quad_active(g->v_strength, FALSE); + g_signal_connect(G_OBJECT(g->v_strength), "quad-pressed", G_CALLBACK(_visualize_callback), self); + + g->v_radius = dt_bauhaus_slider_from_params(sect, "v_radius"); + gtk_widget_set_tooltip_text(g->v_radius, + _("radius of uncorrected centre")); + dt_bauhaus_slider_set_format(g->v_radius, "%"); + dt_bauhaus_slider_set_digits(g->v_radius, 1); + + g->v_steepness = dt_bauhaus_slider_from_params(sect, "v_steepness"); + gtk_widget_set_tooltip_text(g->v_steepness, + _("steepness of the correction effect outside of radius")); + dt_bauhaus_slider_set_format(g->v_steepness, "%"); + dt_bauhaus_slider_set_digits(g->v_steepness, 1); + + self->widget = main_box; /* add signal handler for preview pipe finish to update message on corrections done */ @@ -4026,19 +4636,28 @@ void gui_focus(struct dt_iop_module_t *self, gboolean in) { + dt_iop_lens_gui_data_t *g = (dt_iop_lens_gui_data_t *)self->gui_data; + if(!in) + { + const gboolean was_visualize = g->vig_masking; + dt_bauhaus_widget_set_quad_active(g->v_strength, FALSE); + g->vig_masking = FALSE; + if(was_visualize) + dt_dev_reprocess_center(self->dev); + } _display_errors(self); } void gui_update(struct dt_iop_module_t *self) { - // let gui elements reflect params + // let GUI elements reflect params dt_iop_lens_gui_data_t *g = (dt_iop_lens_gui_data_t *)self->gui_data; dt_iop_lens_params_t *p = (dt_iop_lens_params_t *)self->params; if(p->has_been_set == FALSE) { /* - * user did not modify anything in gui after autodetection - let's + * user did not modify anything in GUI after autodetection - let's * use current default_params as params with the exception of the * method that must be kept for presets and mass-export */ @@ -4108,6 +4727,7 @@ } +#undef VIGSPLINES // clang-format off // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py // vim: shiftwidth=2 expandtab tabstop=2 cindent diff -Nru darktable-4.4.2/src/iop/levels.c darktable-4.6.1/src/iop/levels.c --- darktable-4.4.2/src/iop/levels.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/levels.c 2024-02-16 17:31:09.000000000 +0000 @@ -127,7 +127,9 @@ return IOP_FLAGS_SUPPORTS_BLENDING | IOP_FLAGS_DEPRECATED; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } @@ -141,10 +143,23 @@ _("non-linear, Lab, display-referred")); } -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, const int new_version) -{ - if(old_version == 1 && new_version == 2) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_levels_params_v2_t + { + dt_iop_levels_mode_t mode; + float black; + float gray; + float white; + float levels[3]; + } dt_iop_levels_params_v2_t; + + if(old_version == 1) { typedef struct dt_iop_levels_params_v1_t { @@ -152,15 +167,21 @@ int levels_preset; } dt_iop_levels_params_v1_t; - dt_iop_levels_params_v1_t *o = (dt_iop_levels_params_v1_t *)old_params; - dt_iop_levels_params_t *n = (dt_iop_levels_params_t *)new_params; - dt_iop_levels_params_t *d = (dt_iop_levels_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters - + const dt_iop_levels_params_v1_t *o = (dt_iop_levels_params_v1_t *)old_params; + dt_iop_levels_params_v2_t *n = + (dt_iop_levels_params_v2_t *)malloc(sizeof(dt_iop_levels_params_v2_t)); + + n->mode = LEVELS_MODE_MANUAL; + n->black = 0.0f; + n->gray = 50.0f; + n->white = 100.0f; n->levels[0] = o->levels[0]; n->levels[1] = o->levels[1]; n->levels[2] = o->levels[2]; + + *new_params = n; + *new_params_size = sizeof(dt_iop_levels_params_v2_t); + *new_version = 2; return 0; } return 1; @@ -248,7 +269,8 @@ } } -void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece) +void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, + dt_dev_pixelpipe_t *pipe) { dt_iop_levels_gui_data_t *c = (dt_iop_levels_gui_data_t *)self->gui_data; dt_iop_levels_params_t *p = (dt_iop_levels_params_t *)self->params; @@ -444,16 +466,10 @@ err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_levels, width, height, CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(dev_lut), CLARG(d->levels[0]), CLARG(d->levels[2]), CLARG(d->in_inv_gamma)); - if(err != CL_SUCCESS) goto error; - - dt_opencl_release_mem_object(dev_lut); - - return TRUE; error: dt_opencl_release_mem_object(dev_lut); - dt_print(DT_DEBUG_OPENCL, "[opencl_levels] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif @@ -712,7 +728,7 @@ const int inset = DT_GUI_CURVE_EDITOR_INSET; GtkAllocation allocation; gtk_widget_get_allocation(GTK_WIDGET(c->area), &allocation); - int width = allocation.width, height = allocation.height; + int width = allocation.width, height = allocation.height - DT_RESIZE_HANDLE_SIZE; cairo_surface_t *cst = dt_cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height); cairo_t *cr = cairo_create(cst); @@ -808,7 +824,7 @@ cairo_set_source_surface(crf, cst, 0, 0); cairo_paint(crf); cairo_surface_destroy(cst); - return TRUE; + return FALSE; } /** @@ -870,7 +886,7 @@ const int inset = DT_GUI_CURVE_EDITOR_INSET; GtkAllocation allocation; gtk_widget_get_allocation(widget, &allocation); - int height = allocation.height - 2 * inset, width = allocation.width - 2 * inset; + int height = allocation.height - 2 * inset - DT_RESIZE_HANDLE_SIZE, width = allocation.width - 2 * inset; if(!c->dragging) { c->mouse_x = CLAMP(event->x - inset, 0, width); @@ -970,7 +986,7 @@ const float interval = 0.002 * dt_accel_get_speed_multiplier(widget, event->state); // Distance moved for each scroll event int delta_y; - if(dt_gui_get_scroll_unit_deltas(event, NULL, &delta_y)) + if(dt_gui_get_scroll_unit_delta(event, &delta_y)) { float new_position = p->levels[c->handle_move] - interval * delta_y; dt_iop_levels_move_handle(self, c->handle_move, new_position, p->levels, c->drag_start_percentage); diff -Nru darktable-4.4.2/src/iop/liquify.c darktable-4.6.1/src/iop/liquify.c --- darktable-4.4.2/src/iop/liquify.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/liquify.c 2024-02-16 17:31:09.000000000 +0000 @@ -308,7 +308,7 @@ int flags() { - return IOP_FLAGS_SUPPORTS_BLENDING | IOP_FLAGS_GUIDES_WIDGET; + return IOP_FLAGS_SUPPORTS_BLENDING; } int operation_tags() @@ -316,9 +316,15 @@ return IOP_TAG_DISTORT; } -int default_colorspace(dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +int operation_tags_filter() +{ + // switch off cropping, we want to see the full image. + return IOP_TAG_DECORATION | IOP_TAG_CROPPING; +} + +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -534,12 +540,11 @@ float from_scale; float to_scale; int transf_direction; - gboolean from_distort_transform; } distort_params_t; -static void _distort_paths(const struct dt_iop_module_t *module, - const distort_params_t *params, - const dt_iop_liquify_params_t *p) +static void _distort_paths_locked(const struct dt_iop_module_t *module, + const distort_params_t *params, + const dt_iop_liquify_params_t *p) { int len = 0; @@ -597,35 +602,17 @@ break; } } - if(params->from_distort_transform) + + if(params->transf_direction == DT_DEV_TRANSFORM_DIR_ALL) { - if(params->transf_direction == DT_DEV_TRANSFORM_DIR_ALL) - { - dt_dev_distort_transform_locked(params->develop, params->pipe, module->iop_order, - DT_DEV_TRANSFORM_DIR_BACK_EXCL, buffer, len); - dt_dev_distort_transform_locked(params->develop, params->pipe, module->iop_order, - DT_DEV_TRANSFORM_DIR_FORW_EXCL, buffer, len); - } - else - dt_dev_distort_transform_locked(params->develop, params->pipe, module->iop_order, - params->transf_direction, buffer, len); + dt_dev_distort_transform_locked(params->develop, params->pipe, module->iop_order, + DT_DEV_TRANSFORM_DIR_BACK_EXCL, buffer, len); + dt_dev_distort_transform_locked(params->develop, params->pipe, module->iop_order, + DT_DEV_TRANSFORM_DIR_FORW_EXCL, buffer, len); } else - { - if(params->transf_direction == DT_DEV_TRANSFORM_DIR_ALL) - { - dt_dev_distort_transform_plus(params->develop, params->pipe, - module->iop_order, DT_DEV_TRANSFORM_DIR_BACK_EXCL, - buffer, len); - dt_dev_distort_transform_plus(params->develop, params->pipe, - module->iop_order, DT_DEV_TRANSFORM_DIR_FORW_EXCL, - buffer, len); - } - else - dt_dev_distort_transform_plus(params->develop, params->pipe, - module->iop_order, params->transf_direction, - buffer, len); - } + dt_dev_distort_transform_locked(params->develop, params->pipe, module->iop_order, + params->transf_direction, buffer, len); // record back the transformed points @@ -662,6 +649,15 @@ free(buffer); } +static void _distort_paths_plus(const struct dt_iop_module_t *module, + const distort_params_t *params, + const dt_iop_liquify_params_t *p) +{ + dt_pthread_mutex_lock(¶ms->develop->history_mutex); + _distort_paths_locked(module, params, p); + dt_pthread_mutex_unlock(¶ms->develop->history_mutex); +} + static void distort_paths_raw_to_piece(const struct dt_iop_module_t *module, dt_dev_pixelpipe_t *pipe, const float roi_in_scale, @@ -672,9 +668,11 @@ pipe, pipe->iscale, roi_in_scale, - DT_DEV_TRANSFORM_DIR_BACK_EXCL, - from_distort_transform }; - _distort_paths(module, ¶ms, p); + DT_DEV_TRANSFORM_DIR_BACK_EXCL }; + if(from_distort_transform) + _distort_paths_locked(module, ¶ms, p); + else + _distort_paths_plus(module, ¶ms, p); } // op-engine code @@ -968,8 +966,7 @@ // circle in quadrants and doing only the inside we have to calculate // hypotf only for PI / 16 = 0.196 of the stamp area. // We don't do octants to avoid false sharing of cache lines between threads. - // doesn't work for OSX see issue #7349 - #if defined(_OPENMP) && !defined(__APPLE__) + #ifdef _OPENMP #pragma omp parallel for schedule(static) default(none) \ dt_omp_firstprivate(iradius, strength, abs_strength, table_size, global_width) \ dt_omp_sharedconst(center, warp, lookup_table, LOOKUP_OVERSAMPLE, global_map_extent) @@ -1287,11 +1284,11 @@ cairo_region_destroy(roi_in_region); } -static int _distort_xtransform(dt_iop_module_t *self, - dt_dev_pixelpipe_iop_t *piece, - float *const restrict points, - const size_t points_count, - const gboolean inverted) +static gboolean _distort_xtransform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *const restrict points, + const size_t points_count, + const gboolean inverted) { const float scale = piece->iscale; @@ -1334,7 +1331,7 @@ _build_global_distortion_map(self, piece, scale, TRUE, &roi_in, &extent, inverted, &map); - if(map == NULL) return 0; + if(map == NULL) return FALSE; const int map_size = extent.width * extent.height; const int x_last = extent.x + extent.width; @@ -1371,7 +1368,7 @@ dt_free_align((void *) map); } - return 1; + return TRUE; } static void start_drag(dt_iop_liquify_gui_data_t *g, @@ -1392,18 +1389,18 @@ return g->dragging.elem != NULL; } -int distort_transform(dt_iop_module_t *self, - dt_dev_pixelpipe_iop_t *piece, - float *const restrict points, - const size_t points_count) +gboolean distort_transform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *const restrict points, + const size_t points_count) { return _distort_xtransform(self, piece, points, points_count, TRUE); } -int distort_backtransform(dt_iop_module_t *self, - dt_dev_pixelpipe_iop_t *piece, - float *const restrict points, - const size_t points_count) +gboolean distort_backtransform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *const restrict points, + const size_t points_count) { return _distort_xtransform(self, piece, points, points_count, FALSE); } @@ -1416,7 +1413,7 @@ const dt_iop_roi_t *const roi_out) { // 1. copy the whole image (we'll change only a small part of it) - dt_iop_copy_image_roi(out, in, 1, roi_in, roi_out, 1); + dt_iop_copy_image_roi(out, in, 1, roi_in, roi_out); // 2. build the distortion map cairo_rectangle_int_t map_extent; @@ -1449,7 +1446,7 @@ in, out, roi_in, roi_out)) return; // 1. copy the whole image (we'll change only a small part of it) - dt_iop_copy_image_roi(out, in, piece->colors, roi_in, roi_out, 1); + dt_iop_copy_image_roi(out, in, piece->colors, roi_in, roi_out); // 2. build the distortion map cairo_rectangle_int_t map_extent; @@ -1614,7 +1611,7 @@ size_t dest[] = { 0, 0, 0 }; size_t extent[] = { width, height, 1 }; err = dt_opencl_enqueue_copy_image(devid, dev_in, dev_out, src, dest, extent); - if(err != CL_SUCCESS) goto error; + if(err != CL_SUCCESS) return err; } // 2. build the distortion map @@ -1624,21 +1621,14 @@ roi_out, &map_extent, FALSE, &map); if(map == NULL) - return TRUE; + return CL_SUCCESS; // 3. apply the map if(map_extent.width != 0 && map_extent.height != 0) err = _apply_global_distortion_map_cl(module, piece, dev_in, dev_out, roi_in, roi_out, map, &map_extent); dt_free_align((void *) map); - if(err != CL_SUCCESS) goto error; - - return TRUE; - -error: - dt_print(DT_DEBUG_OPENCL, - "[opencl_liquify] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif @@ -1733,18 +1723,16 @@ dt_liquify_ui_width_enum_t w) { const double width = get_ui_width(scale, w); - cairo_set_line_width(cr, width); + cairo_set_line_width(cr, width * (dt_iop_canvas_not_sensitive(darktable.develop) ? 0.5 : 1.0)); } static gboolean detect_drag(const dt_iop_liquify_gui_data_t *g, const double scale, const float complex pt) { - const float pr_d = darktable.develop->preview_downsampling; - // g->last_button1_pressed_pos is valid only while BUTTON1 is down return g->last_button1_pressed_pos != -1.0 && - cabsf(pt - g->last_button1_pressed_pos) >= (GET_UI_WIDTH(MIN_DRAG) * pr_d / scale); + cabsf(pt - g->last_button1_pressed_pos) >= (GET_UI_WIDTH(MIN_DRAG) / scale); } static void update_warp_count(struct dt_iop_module_t *module) @@ -1857,6 +1845,7 @@ cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND); + const gboolean showhandle = dt_iop_canvas_not_sensitive(darktable.develop) == FALSE; // do not display any iterpolated items as slow when: // - we are dragging (pan) // - the button one is pressed @@ -2022,7 +2011,7 @@ if(data->header.type == DT_LIQUIFY_PATH_CURVE_TO_V1) { - if(layer == DT_LIQUIFY_LAYER_CTRLPOINT1_HANDLE && + if(layer == DT_LIQUIFY_LAYER_CTRLPOINT1_HANDLE && showhandle && !(prev && prev->header.node_type == DT_LIQUIFY_NODE_TYPE_AUTOSMOOTH)) { THINLINE; FG_COLOR; @@ -2030,7 +2019,7 @@ cairo_line_to(cr, crealf(data->node.ctrl1), cimagf(data->node.ctrl1)); cairo_stroke(cr); } - if(layer == DT_LIQUIFY_LAYER_CTRLPOINT2_HANDLE && + if(layer == DT_LIQUIFY_LAYER_CTRLPOINT2_HANDLE && showhandle && data->header.node_type != DT_LIQUIFY_NODE_TYPE_AUTOSMOOTH) { THINLINE; FG_COLOR; @@ -2060,7 +2049,7 @@ const dt_liquify_warp_t *warp = &data->warp; - if(layer == DT_LIQUIFY_LAYER_RADIUSPOINT_HANDLE) + if(layer == DT_LIQUIFY_LAYER_RADIUSPOINT_HANDLE && showhandle) { draw_circle(cr, point, 2.0 * cabsf(warp->radius - point)); THICKLINE; FG_COLOR; @@ -2078,7 +2067,7 @@ cairo_stroke(cr); } - if(layer == DT_LIQUIFY_LAYER_HARDNESSPOINT1_HANDLE) + if(layer == DT_LIQUIFY_LAYER_HARDNESSPOINT1_HANDLE && showhandle) { draw_circle(cr, point, 2.0 * cabsf(warp->radius - point) * warp->control1); THICKLINE; FG_COLOR; @@ -2087,7 +2076,7 @@ cairo_stroke(cr); } - if(layer == DT_LIQUIFY_LAYER_HARDNESSPOINT2_HANDLE) + if(layer == DT_LIQUIFY_LAYER_HARDNESSPOINT2_HANDLE && showhandle) { draw_circle(cr, point, 2.0 * cabsf(warp->radius - point) * warp->control2); THICKLINE; FG_COLOR; @@ -2118,7 +2107,7 @@ cairo_stroke(cr); } - if(layer == DT_LIQUIFY_LAYER_STRENGTHPOINT_HANDLE) + if(layer == DT_LIQUIFY_LAYER_STRENGTHPOINT_HANDLE && showhandle) { cairo_move_to(cr, crealf(point), cimagf(point)); if(warp->type == DT_LIQUIFY_WARP_TYPE_LINEAR) @@ -2733,19 +2722,13 @@ p->nodes[k].header.selected = 0; } -static float get_zoom_scale(dt_develop_t *develop) -{ - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - return dt_dev_get_zoom_scale(develop, zoom, 1<<closeup, 1); -} - -void gui_post_expose(struct dt_iop_module_t *module, +void gui_post_expose(dt_iop_module_t *module, cairo_t *cr, - const int32_t width, - const int32_t height, - const int32_t pointerx, - const int32_t pointery) + const float bb_width, + const float bb_height, + const float pointerx, + const float pointery, + const float zoom_scale) { dt_develop_t *develop = module->dev; dt_iop_liquify_gui_data_t *g = (dt_iop_liquify_gui_data_t *)module->gui_data; @@ -2753,11 +2736,8 @@ if(!g) return; - const float bb_width = develop->preview_pipe->backbuf_width; - const float bb_height = develop->preview_pipe->backbuf_height; const float iscale = develop->preview_pipe->iscale; - const float pr_d = develop->preview_downsampling; - const float scale = pr_d * MAX(bb_width, bb_height); + const float scale = MAX(bb_width, bb_height); if(bb_width < 1.0 || bb_height < 1.0) return; @@ -2770,23 +2750,11 @@ dt_iop_gui_leave_critical_section(module); // distort all points - dt_pthread_mutex_lock(&develop->preview_pipe_mutex); const distort_params_t d_params = { develop, develop->preview_pipe, iscale, 1.0 / scale, - DT_DEV_TRANSFORM_DIR_ALL, - FALSE }; - _distort_paths(module, &d_params, ©_params); - dt_pthread_mutex_unlock(&develop->preview_pipe_mutex); - - // You're not supposed to understand this - const float zoom_x = dt_control_get_dev_zoom_x(); - const float zoom_y = dt_control_get_dev_zoom_y(); - const float zoom_scale = get_zoom_scale(develop); - - // setup CAIRO coordinate system - cairo_translate(cr, 0.5 * width, 0.5 * height); // origin @ center of view - cairo_scale (cr, zoom_scale, zoom_scale); // the zoom - cairo_translate(cr, -bb_width * (0.5 + zoom_x), -bb_height * (0.5 + zoom_y)); + DT_DEV_TRANSFORM_DIR_ALL }; + _distort_paths_plus(module, &d_params, ©_params); + cairo_scale(cr, scale, scale); draw_paths(module, cr, 1.0 / (scale * zoom_scale), ©_params); @@ -2796,13 +2764,13 @@ GdkEventButton *event, dt_iop_module_t *module); -void gui_focus(struct dt_iop_module_t *module, +void gui_focus(struct dt_iop_module_t *self, const gboolean in) { if(!in) { dt_collection_hint_message(darktable.collection); - btn_make_radio_callback(NULL, NULL, module); + btn_make_radio_callback(NULL, NULL, self); } } @@ -2838,19 +2806,13 @@ */ static void get_point_scale(struct dt_iop_module_t *module, - const float x, - const float y, + const float pzx, + const float pzy, float complex *pt, float *scale) { - const float pr_d = darktable.develop->preview_downsampling; - - float pzx = 0.0f, pzy = 0.0f; - dt_dev_get_pointer_zoom_pos(darktable.develop, x, y, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; - const float wd = darktable.develop->preview_pipe->backbuf_width; - const float ht = darktable.develop->preview_pipe->backbuf_height; + float wd, ht; + dt_dev_get_preview_size(module->dev, &wd, &ht); float pts[2] = { pzx * wd, pzy * ht }; dt_dev_distort_backtransform_plus(darktable.develop, darktable.develop->preview_pipe, module->iop_order, @@ -2861,16 +2823,17 @@ const float nx = pts[0] / darktable.develop->preview_pipe->iwidth; const float ny = pts[1] / darktable.develop->preview_pipe->iheight; - *scale = darktable.develop->preview_pipe->iscale * (pr_d * get_zoom_scale(module->dev)); - *pt = (nx * darktable.develop->pipe->iwidth) - + (ny * darktable.develop->pipe->iheight) * I; + *scale = darktable.develop->preview_pipe->iscale * (dt_dev_get_zoom_scale_full()); + *pt = (nx * darktable.develop->full.pipe->iwidth) + + (ny * darktable.develop->full.pipe->iheight) * I; } -int mouse_moved(struct dt_iop_module_t *module, - const double x, - const double y, - const double pressure, - const int which) +int mouse_moved(dt_iop_module_t *module, + const float x, + const float y, + const double pressure, + const int which, + const float zoom_scale) { dt_iop_liquify_gui_data_t *g = (dt_iop_liquify_gui_data_t *)module->gui_data; dt_iop_liquify_params_t *pa = (dt_iop_liquify_params_t *)module->params; @@ -3084,8 +3047,7 @@ const dt_dev_pixelpipe_t *devpipe = darktable.develop->preview_pipe; const float iwd_min = MIN(devpipe->iwidth, devpipe->iheight); const float proc_wdht_min = MIN(devpipe->processed_width, devpipe->processed_height); - const float pr_d = darktable.develop->preview_downsampling; - const float scale = devpipe->iscale / (pr_d * get_zoom_scale(module->dev)); + const float scale = devpipe->iscale / dt_dev_get_zoom_scale_full(); const float im_scale = 0.09f * iwd_min * last_win_min * scale / proc_wdht_min; *radius = dt_conf_get_sanitize_float(CONF_RADIUS, 0.1f*im_scale, @@ -3098,8 +3060,8 @@ add support for changing the radius and the strength vector for the temp node */ int scrolled(struct dt_iop_module_t *module, - const double x, - const double y, + const float x, + const float y, const int up, const uint32_t state) { @@ -3154,13 +3116,14 @@ return 0; } -int button_pressed(struct dt_iop_module_t *module, - const double x, - const double y, - const double pressure, - const int which, - const int type, - const uint32_t state) +int button_pressed(dt_iop_module_t *module, + const float x, + const float y, + const double pressure, + const int which, + const int type, + const uint32_t state, + const float zoom_scale) { dt_iop_liquify_gui_data_t *g = (dt_iop_liquify_gui_data_t *)module->gui_data; dt_iop_liquify_params_t *p = (dt_iop_liquify_params_t *)module->params; @@ -3252,7 +3215,7 @@ // create initial shape at the center float complex pt = 0.0f; float scale = 1.0f; - get_point_scale(module, 0.5f * darktable.develop->width, 0.5f * darktable.develop->height, &pt, &scale); + get_point_scale(module, 0.5f * darktable.develop->full.width, 0.5f * darktable.develop->full.height, &pt, &scale); float radius = 0.0f, r = 1.0f, phi = 0.0f; get_stamp_params(module, &radius, &r, &phi); // start a new path @@ -3269,11 +3232,12 @@ g->last_hit = NOWHERE; } -int button_released(struct dt_iop_module_t *module, - const double x, - const double y, - const int which, - const uint32_t state) +int button_released(dt_iop_module_t *module, + const float x, + const float y, + const int which, + const uint32_t state, + const float zoom_scale) { dt_iop_liquify_gui_data_t *g = (dt_iop_liquify_gui_data_t *)module->gui_data; dt_iop_liquify_params_t *p = (dt_iop_liquify_params_t *)module->params; @@ -3663,9 +3627,9 @@ return TRUE; } -void gui_update(dt_iop_module_t *module) +void gui_update(dt_iop_module_t *self) { - update_warp_count(module); + update_warp_count(self); } void gui_init(dt_iop_module_t *self) diff -Nru darktable-4.4.2/src/iop/lowlight.c darktable-4.6.1/src/iop/lowlight.c --- darktable-4.4.2/src/iop/lowlight.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/lowlight.c 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2011-2021 darktable developers. + Copyright (C) 2011-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -105,7 +105,9 @@ return IOP_GROUP_EFFECT | IOP_GROUP_EFFECTS; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } @@ -209,19 +211,14 @@ dt_Lab_to_XYZ(Lab_sw, XYZ_sw); dev_m = dt_opencl_copy_host_to_device(devid, d->lut, 256, 256, sizeof(float)); - if(dev_m == NULL) goto error; + if(dev_m == NULL) goto finish; err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_lowlight, width, height, CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(XYZ_sw), CLARG(dev_m)); - if(err != CL_SUCCESS) goto error; +finish: dt_opencl_release_mem_object(dev_m); - return TRUE; - -error: - dt_opencl_release_mem_object(dev_m); - dt_print(DT_DEBUG_OPENCL, "[opencl_lowlight] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif @@ -262,7 +259,7 @@ void init_pipe(struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) { dt_iop_lowlight_data_t *d = (dt_iop_lowlight_data_t *)malloc(sizeof(dt_iop_lowlight_data_t)); - dt_iop_lowlight_params_t *default_params = (dt_iop_lowlight_params_t *)self->default_params; + const dt_iop_lowlight_params_t *const default_params = (dt_iop_lowlight_params_t *)self->default_params; piece->data = (void *)d; d->curve = dt_draw_curve_new(0.0, 1.0, CATMULL_ROM); (void)dt_draw_curve_add_point(d->curve, default_params->transition_x[DT_IOP_LOWLIGHT_BANDS - 2] - 1.0, @@ -498,7 +495,8 @@ const int inset = DT_IOP_LOWLIGHT_INSET; GtkAllocation allocation; gtk_widget_get_allocation(widget, &allocation); - int width = allocation.width, height = allocation.height; + int width = allocation.width; + int height = allocation.height - DT_RESIZE_HANDLE_SIZE; cairo_surface_t *cst = dt_cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height); cairo_t *cr = cairo_create(cst); @@ -671,7 +669,7 @@ cairo_set_source_surface(crf, cst, 0, 0); cairo_paint(crf); cairo_surface_destroy(cst); - return TRUE; + return FALSE; } static gboolean lowlight_motion_notify(GtkWidget *widget, GdkEventMotion *event, gpointer user_data) @@ -682,7 +680,7 @@ const int inset = DT_IOP_LOWLIGHT_INSET; GtkAllocation allocation; gtk_widget_get_allocation(widget, &allocation); - int height = allocation.height - 2 * inset, width = allocation.width - 2 * inset; + int height = allocation.height - 2 * inset - DT_RESIZE_HANDLE_SIZE, width = allocation.width - 2 * inset; if(!c->dragging) c->mouse_x = CLAMP(event->x - inset, 0, width) / (float)width; c->mouse_y = 1.0 - CLAMP(event->y - inset, 0, height) / (float)height; if(c->dragging) @@ -735,7 +733,7 @@ { // reset current curve dt_iop_lowlight_params_t *p = (dt_iop_lowlight_params_t *)self->params; - dt_iop_lowlight_params_t *d = (dt_iop_lowlight_params_t *)self->default_params; + const dt_iop_lowlight_params_t *const d = (dt_iop_lowlight_params_t *)self->default_params; for(int k = 0; k < DT_IOP_LOWLIGHT_BANDS; k++) { p->transition_x[k] = d->transition_x[k]; @@ -751,7 +749,7 @@ const int inset = DT_IOP_LOWLIGHT_INSET; GtkAllocation allocation; gtk_widget_get_allocation(widget, &allocation); - int height = allocation.height - 2 * inset, width = allocation.width - 2 * inset; + int height = allocation.height - 2 * inset - DT_RESIZE_HANDLE_SIZE, width = allocation.width - 2 * inset; c->mouse_pick = dt_draw_curve_calc_value(c->transition_curve, CLAMP(event->x - inset, 0, width) / (float)width); c->mouse_pick -= 1.0 - CLAMP(event->y - inset, 0, height) / (float)height; @@ -790,7 +788,7 @@ if(dt_gui_ignore_scroll(event)) return FALSE; int delta_y; - if(dt_gui_get_scroll_unit_deltas(event, NULL, &delta_y)) + if(dt_gui_get_scroll_unit_delta(event, &delta_y)) { c->mouse_radius = CLAMP(c->mouse_radius * (1.0 + 0.1 * delta_y), 0.2 / DT_IOP_LOWLIGHT_BANDS, 1.0); gtk_widget_queue_draw(widget); @@ -802,7 +800,7 @@ void gui_init(struct dt_iop_module_t *self) { dt_iop_lowlight_gui_data_t *c = IOP_GUI_ALLOC(lowlight); - dt_iop_lowlight_params_t *p = (dt_iop_lowlight_params_t *)self->default_params; + const dt_iop_lowlight_params_t *const p = (dt_iop_lowlight_params_t *)self->default_params; c->transition_curve = dt_draw_curve_new(0.0, 1.0, CATMULL_ROM); (void)dt_draw_curve_add_point(c->transition_curve, p->transition_x[DT_IOP_LOWLIGHT_BANDS - 2] - 1.0, @@ -848,4 +846,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/lowpass.c darktable-4.6.1/src/iop/lowpass.c --- darktable-4.4.2/src/iop/lowpass.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/lowpass.c 2024-02-16 17:31:09.000000000 +0000 @@ -52,34 +52,6 @@ LOWPASS_ALGO_BILATERAL // $DESCRIPTION: "bilateral filter" } dt_iop_lowpass_algo_t; -/* legacy version 1 params */ -typedef struct dt_iop_lowpass_params1_t -{ - dt_gaussian_order_t order; - float radius; - float contrast; - float saturation; -} dt_iop_lowpass_params1_t; - -typedef struct dt_iop_lowpass_params2_t -{ - dt_gaussian_order_t order; - float radius; - float contrast; - float brightness; - float saturation; -} dt_iop_lowpass_params2_t; - -typedef struct dt_iop_lowpass_params3_t -{ - dt_gaussian_order_t order; - float radius; - float contrast; - float brightness; - float saturation; - int unbound; -} dt_iop_lowpass_params3_t; - typedef struct dt_iop_lowpass_params_t { dt_gaussian_order_t order; // $DEFAULT: 0 @@ -147,9 +119,9 @@ return IOP_GROUP_EFFECT | IOP_GROUP_EFFECTS; } -int default_colorspace(dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } @@ -157,13 +129,34 @@ int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, - const int new_version) -{ - if(old_version == 1 && new_version == 4) + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_lowpass_params_v4_t + { + dt_gaussian_order_t order; + float radius; + float contrast; + float brightness; + float saturation; + dt_iop_lowpass_algo_t lowpass_algo; + int unbound; + } dt_iop_lowpass_params_v4_t; + + if(old_version == 1) { - const dt_iop_lowpass_params1_t *old = old_params; - dt_iop_lowpass_params_t *new = new_params; + typedef struct dt_iop_lowpass_params_v1_t + { + dt_gaussian_order_t order; + float radius; + float contrast; + float saturation; + } dt_iop_lowpass_params_v1_t; + + const dt_iop_lowpass_params_v1_t *old = old_params; + dt_iop_lowpass_params_v4_t *new = + (dt_iop_lowpass_params_v4_t *)malloc(sizeof(dt_iop_lowpass_params_v4_t)); new->order = old->order; new->radius = fabs(old->radius); new->contrast = old->contrast; @@ -172,12 +165,25 @@ new->lowpass_algo = old->radius < 0.0f ? LOWPASS_ALGO_BILATERAL : LOWPASS_ALGO_GAUSSIAN; new->unbound = 0; + *new_params = new; + *new_params_size = sizeof(dt_iop_lowpass_params_v4_t); + *new_version = 4; return 0; } - if(old_version == 2 && new_version == 4) + if(old_version == 2) { - const dt_iop_lowpass_params2_t *old = old_params; - dt_iop_lowpass_params_t *new = new_params; + typedef struct dt_iop_lowpass_params_v2_t + { + dt_gaussian_order_t order; + float radius; + float contrast; + float brightness; + float saturation; + } dt_iop_lowpass_params_v2_t; + + const dt_iop_lowpass_params_v2_t *old = old_params; + dt_iop_lowpass_params_v4_t *new = + (dt_iop_lowpass_params_v4_t *)malloc(sizeof(dt_iop_lowpass_params_v4_t)); new->order = old->order; new->radius = fabs(old->radius); new->contrast = old->contrast; @@ -186,12 +192,26 @@ new->lowpass_algo = old->radius < 0.0f ? LOWPASS_ALGO_BILATERAL : LOWPASS_ALGO_GAUSSIAN; new->unbound = 0; + *new_params = new; + *new_params_size = sizeof(dt_iop_lowpass_params_v4_t); + *new_version = 4; return 0; } - if(old_version == 3 && new_version == 4) + if(old_version == 3) { - const dt_iop_lowpass_params3_t *old = old_params; - dt_iop_lowpass_params_t *new = new_params; + typedef struct dt_iop_lowpass_params_v3_t + { + dt_gaussian_order_t order; + float radius; + float contrast; + float brightness; + float saturation; + int unbound; + } dt_iop_lowpass_params_v3_t; + + const dt_iop_lowpass_params_v3_t *old = old_params; + dt_iop_lowpass_params_v4_t *new = + (dt_iop_lowpass_params_v4_t *)malloc(sizeof(dt_iop_lowpass_params_v4_t)); new->order = old->order; new->radius = fabs(old->radius); new->contrast = old->contrast; @@ -200,6 +220,9 @@ new->lowpass_algo = old->radius < 0.0f ? LOWPASS_ALGO_BILATERAL : LOWPASS_ALGO_GAUSSIAN; new->unbound = old->unbound; + *new_params = new; + *new_params_size = sizeof(dt_iop_lowpass_params_v4_t); + *new_version = 4; return 0; } return 1; @@ -275,6 +298,7 @@ b = NULL; // make sure we don't clean it up twice } + err = DT_OPENCL_SYSMEM_ALLOCATION; dev_tmp = dt_opencl_alloc_device(devid, width, height, sizeof(float) * 4); if(dev_tmp == NULL) goto error; @@ -298,15 +322,6 @@ err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_lowpass_mix, width, height, CLARG(dev_tmp), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(saturation), CLARG(dev_cm), CLARG(dev_ccoeffs), CLARG(dev_lm), CLARG(dev_lcoeffs), CLARG(unbound)); - if(err != CL_SUCCESS) goto error; - - dt_opencl_release_mem_object(dev_tmp); - dt_opencl_release_mem_object(dev_lcoeffs); - dt_opencl_release_mem_object(dev_lm); - dt_opencl_release_mem_object(dev_ccoeffs); - dt_opencl_release_mem_object(dev_cm); - - return TRUE; error: if(g) dt_gaussian_free_cl(g); @@ -317,8 +332,7 @@ dt_opencl_release_mem_object(dev_lm); dt_opencl_release_mem_object(dev_ccoeffs); dt_opencl_release_mem_object(dev_cm); - dt_print(DT_DEBUG_OPENCL, "[opencl_lowpass] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif @@ -404,7 +418,7 @@ dt_gaussian_t *g = dt_gaussian_init(width, height, 4, Labmax, Labmin, sigma, order); if(!g) { - dt_iop_copy_image_roi(out, in, piece->colors, roi_in, roi_out, TRUE); + dt_iop_copy_image_roi(out, in, piece->colors, roi_in, roi_out); return; } dt_gaussian_blur_4c(g, in, out); @@ -419,7 +433,7 @@ dt_bilateral_t *b = dt_bilateral_init(width, height, sigma_s, sigma_r); if(!b) { - dt_iop_copy_image_roi(out, in, piece->colors, roi_in, roi_out, TRUE); + dt_iop_copy_image_roi(out, in, piece->colors, roi_in, roi_out); return; } dt_bilateral_splat(b, in); @@ -599,4 +613,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/lut3d.c darktable-4.6.1/src/iop/lut3d.c --- darktable-4.4.2/src/iop/lut3d.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/lut3d.c 2024-02-16 17:31:09.000000000 +0000 @@ -60,6 +60,7 @@ DT_IOP_REC709, // $DESCRIPTION: "gamma Rec709 RGB" DT_IOP_LIN_REC709, // $DESCRIPTION: "linear Rec709 RGB" DT_IOP_LIN_REC2020, // $DESCRIPTION: "linear Rec2020 RGB" + DT_IOP_LIN_PROPHOTO,// $DESCRIPTION: "linear ProPhoto RGB" } dt_iop_lut3d_colorspace_t; typedef enum dt_iop_lut3d_interpolation_t @@ -154,15 +155,31 @@ return IOP_GROUP_COLOR | IOP_GROUP_TECHNICAL; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, void *new_params, - const int new_version) -{ - if(old_version == 1 && new_version == 3) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_lut3d_params_v3_t + { + char filepath[DT_IOP_LUT3D_MAX_PATHNAME]; + dt_iop_lut3d_colorspace_t colorspace; + dt_iop_lut3d_interpolation_t interpolation; + int nb_keypoints; + char c_clut[DT_IOP_LUT3D_MAX_KEYPOINTS*2*3]; + char lutname[DT_IOP_LUT3D_MAX_LUTNAME]; + } dt_iop_lut3d_params_v3_t; + + if(old_version == 1) { typedef struct dt_iop_lut3d_params_v1_t { @@ -171,17 +188,22 @@ int interpolation; } dt_iop_lut3d_params_v1_t; - dt_iop_lut3d_params_v1_t *o = (dt_iop_lut3d_params_v1_t *)old_params; - dt_iop_lut3d_params_t *n = (dt_iop_lut3d_params_t *)new_params; + const dt_iop_lut3d_params_v1_t *o = (dt_iop_lut3d_params_v1_t *)old_params; + dt_iop_lut3d_params_v3_t *n = + (dt_iop_lut3d_params_v3_t *)malloc(sizeof(dt_iop_lut3d_params_v3_t)); g_strlcpy(n->filepath, o->filepath, sizeof(n->filepath)); n->colorspace = o->colorspace; n->interpolation = o->interpolation; n->nb_keypoints = 0; memset(&n->c_clut, 0, sizeof(n->c_clut)); memset(&n->lutname, 0, sizeof(n->lutname)); + + *new_params = n; + *new_params_size = sizeof(dt_iop_lut3d_params_v3_t); + *new_version = 3; return 0; } - if(old_version == 2 && new_version == 3) + if(old_version == 2) { typedef struct dt_iop_lut3d_params_v2_t { @@ -194,9 +216,14 @@ uint32_t gmic_version; } dt_iop_lut3d_params_v2_t; - dt_iop_lut3d_params_v2_t *o = (dt_iop_lut3d_params_v2_t *)old_params; - dt_iop_lut3d_params_t *n = (dt_iop_lut3d_params_t *)new_params; - memcpy(n, o, sizeof(dt_iop_lut3d_params_t)); + const dt_iop_lut3d_params_v2_t *o = (dt_iop_lut3d_params_v2_t *)old_params; + dt_iop_lut3d_params_v3_t *n = + (dt_iop_lut3d_params_v3_t *)malloc(sizeof(dt_iop_lut3d_params_v3_t)); + memcpy(n, o, sizeof(dt_iop_lut3d_params_v3_t)); // v3 is smaller + + *new_params = n; + *new_params_size = sizeof(dt_iop_lut3d_params_v3_t); + *new_version = 3; return 0; } @@ -214,18 +241,15 @@ #endif for(size_t k = 0; k < (size_t)(pixel_nb * 4); k+=4) { - float *const input = ((float *const)in) + k; + const float *const input = in + k; float *const output = ((float *const)out) + k; int rgbi[3], i, j; float tmp[6]; dt_aligned_pixel_t rgbd; - for(int c = 0; c < 3; ++c) input[c] = fminf(fmaxf(input[c], 0.0f), 1.0f); - - rgbd[0] = input[0] * (float)(level - 1); - rgbd[1] = input[1] * (float)(level - 1); - rgbd[2] = input[2] * (float)(level - 1); + for_each_channel(c) + rgbd[c] = CLIP(input[c]) * (float)(level - 1); rgbi[0] = CLAMP((int)rgbd[0], 0, level - 2); rgbi[1] = CLAMP((int)rgbd[1], 0, level - 2); @@ -292,16 +316,13 @@ #endif for(size_t k = 0; k < (size_t)(pixel_nb * 4); k+=4) { - float *const input = ((float *const)in) + k; + const float *const input = in + k; float *const output = ((float *const)out) + k; int rgbi[3]; dt_aligned_pixel_t rgbd; - for(int c = 0; c < 3; ++c) input[c] = fminf(fmaxf(input[c], 0.0f), 1.0f); - - rgbd[0] = input[0] * (float)(level - 1); - rgbd[1] = input[1] * (float)(level - 1); - rgbd[2] = input[2] * (float)(level - 1); + for_each_channel(c) + rgbd[c] = CLIP(input[c]) * (float)(level - 1); rgbi[0] = CLAMP((int)rgbd[0], 0, level - 2); rgbi[1] = CLAMP((int)rgbd[1], 0, level - 2); @@ -380,16 +401,13 @@ #endif for(size_t k = 0; k < (size_t)(pixel_nb * 4); k+=4) { - float *const input = ((float *const)in) + k; + const float *const input = in + k; float *const output = ((float *const)out) + k; int rgbi[3]; dt_aligned_pixel_t rgbd; - for(int c = 0; c < 3; ++c) input[c] = fminf(fmaxf(input[c], 0.0f), 1.0f); - - rgbd[0] = input[0] * (float)(level - 1); - rgbd[1] = input[1] * (float)(level - 1); - rgbd[2] = input[2] * (float)(level - 1); + for_each_channel(c) + rgbd[c] = CLIP(input[c]) * (float)(level - 1); rgbi[0] = CLAMP((int)rgbd[0], 0, level - 2); rgbi[1] = CLAMP((int)rgbd[1], 0, level - 2); @@ -498,8 +516,8 @@ png.height, png.color_type, png.bit_depth); if(png.bit_depth !=8 && png.bit_depth != 16) { - dt_print(DT_DEBUG_ALWAYS, "[lut3d] png bit-depth %d not supported\n", png.bit_depth); - dt_control_log(_("png bit-depth %d not supported"), png.bit_depth); + dt_print(DT_DEBUG_ALWAYS, "[lut3d] png bit depth %d is not supported\n", png.bit_depth); + dt_control_log(_("png bit depth %d is not supported"), png.bit_depth); fclose(png.f); png_destroy_read_struct(&png.png_ptr, &png.info_ptr, NULL); return 0; @@ -753,22 +771,24 @@ { if(strtod(token[1], NULL) != 0.0f) { - dt_print(DT_DEBUG_ALWAYS, "[lut3d] DOMAIN MIN <> 0.0 is not supported\n"); - dt_control_log(_("DOMAIN MIN <> 0.0 is not supported")); + dt_print(DT_DEBUG_ALWAYS, "[lut3d] DOMAIN MIN other than 0 is not supported\n"); + dt_control_log(_("DOMAIN MIN other than 0 is not supported")); if(lclut) dt_free_align(lclut); free(line); fclose(cube_file); + return 0; } } else if(strcmp("DOMAIN_MAX", token[0]) == 0) { if(strtod(token[1], NULL) != 1.0f) { - dt_print(DT_DEBUG_ALWAYS, "[lut3d] DOMAIN MAX <> 1.0 is not supported\n"); - dt_control_log(_("DOMAIN MAX <> 1.0 is not supported")); + dt_print(DT_DEBUG_ALWAYS, "[lut3d] DOMAIN MAX other than 1 is not supported\n"); + dt_control_log(_("DOMAIN MAX other than 1 is not supported")); if(lclut) dt_free_align(lclut); free(line); fclose(cube_file); + return 0; } } else if(strcmp("LUT_1D_SIZE", token[0]) == 0) @@ -986,6 +1006,7 @@ = (d->params.colorspace == DT_IOP_SRGB) ? DT_COLORSPACE_SRGB : (d->params.colorspace == DT_IOP_REC709) ? DT_COLORSPACE_REC709 : (d->params.colorspace == DT_IOP_ARGB) ? DT_COLORSPACE_ADOBERGB + : (d->params.colorspace == DT_IOP_LIN_PROPHOTO) ? DT_COLORSPACE_PROPHOTO_RGB : (d->params.colorspace == DT_IOP_LIN_REC709) ? DT_COLORSPACE_LIN_REC709 : DT_COLORSPACE_LIN_REC2020; const dt_iop_order_iccprofile_info_t *const lut_profile @@ -1004,7 +1025,6 @@ clut_cl = dt_opencl_copy_host_to_device_constant(devid, sizeof(float) * 3 * level * level * level, (void *)clut); if(clut_cl == NULL) { - dt_print(DT_DEBUG_ALWAYS, "[lut3d process_cl] error allocating memory\n"); err = CL_MEM_OBJECT_ALLOCATION_FAILURE; goto cleanup; } @@ -1031,17 +1051,10 @@ CLARG(height)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_lut3d_none, sizes); } - if(err != CL_SUCCESS) - { - dt_print(DT_DEBUG_ALWAYS, "[lut3d process_cl] error %i enqueue kernel\n", err); - goto cleanup; - } cleanup: - if(clut_cl) dt_opencl_release_mem_object(clut_cl); - - if(err != CL_SUCCESS) dt_print(DT_DEBUG_OPENCL, "[opencl_lut3d] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return (err == CL_SUCCESS) ? TRUE : FALSE; + dt_opencl_release_mem_object(clut_cl); + return err; } #endif @@ -1059,6 +1072,7 @@ = (d->params.colorspace == DT_IOP_SRGB) ? DT_COLORSPACE_SRGB : (d->params.colorspace == DT_IOP_REC709) ? DT_COLORSPACE_REC709 : (d->params.colorspace == DT_IOP_ARGB) ? DT_COLORSPACE_ADOBERGB + : (d->params.colorspace == DT_IOP_LIN_PROPHOTO) ? DT_COLORSPACE_PROPHOTO_RGB : (d->params.colorspace == DT_IOP_LIN_REC709) ? DT_COLORSPACE_LIN_REC709 : DT_COLORSPACE_LIN_REC2020; const dt_iop_order_iccprofile_info_t *const lut_profile diff -Nru darktable-4.4.2/src/iop/mask_manager.c darktable-4.6.1/src/iop/mask_manager.c --- darktable-4.4.2/src/iop/mask_manager.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/mask_manager.c 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2018-2020 darktable developers. + Copyright (C) 2018-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -56,20 +56,35 @@ return IOP_FLAGS_HIDDEN | IOP_FLAGS_ONE_INSTANCE | IOP_FLAGS_UNSAFE_COPY; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, const int new_version) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) { - if(old_version == 1 && new_version == 2) + typedef struct dt_iop_mask_manager_params_v2_t { - dt_iop_mask_manager_params_t *n = (dt_iop_mask_manager_params_t *)new_params; - dt_iop_mask_manager_params_t *d = (dt_iop_mask_manager_params_t *)self->default_params; + int dummy; + } dt_iop_mask_manager_params_v2_t; - *n = *d; // start with a fresh copy of default parameters + if(old_version == 1) + { + dt_iop_mask_manager_params_v2_t *n = + (dt_iop_mask_manager_params_v2_t *)malloc(sizeof(dt_iop_mask_manager_params_v2_t)); + + n->dummy = 0; + + *new_params = n; + *new_params_size = sizeof(dt_iop_mask_manager_params_v2_t); + *new_version = 2; return 0; } return 1; @@ -86,21 +101,13 @@ int process_cl(struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, cl_mem dev_in, cl_mem dev_out, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) { - cl_int err = DT_OPENCL_DEFAULT_ERROR; const int devid = piece->pipe->devid; const int width = roi_in->width; const int height = roi_in->height; size_t origin[] = { 0, 0, 0 }; size_t region[] = { width, height, 1 }; - err = dt_opencl_enqueue_copy_image(devid, dev_in, dev_out, origin, origin, region); - if(err != CL_SUCCESS) goto error; - - return TRUE; - -error: - dt_print(DT_DEBUG_OPENCL, "[opencl_mask_manage] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return dt_opencl_enqueue_copy_image(devid, dev_in, dev_out, origin, origin, region); } #endif @@ -127,4 +134,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/monochrome.c darktable-4.6.1/src/iop/monochrome.c --- darktable-4.4.2/src/iop/monochrome.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/monochrome.c 2024-02-16 17:31:09.000000000 +0000 @@ -87,7 +87,9 @@ return IOP_FLAGS_INCLUDE_IN_STYLES | IOP_FLAGS_SUPPORTS_BLENDING | IOP_FLAGS_ALLOW_TILING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } @@ -101,15 +103,39 @@ _("non-linear, Lab, display-referred")); } -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, const int new_version) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) { - if(old_version == 1 && new_version == 2) + typedef struct dt_iop_monochrome_params_v2_t { - dt_iop_monochrome_params_t *p1 = (dt_iop_monochrome_params_t *)old_params; - dt_iop_monochrome_params_t *p2 = (dt_iop_monochrome_params_t *)new_params; - memcpy(p2, p1, sizeof(dt_iop_monochrome_params_t) - sizeof(float)); - p2->highlights = 0.0f; + float a; + float b; + float size; + float highlights; + } dt_iop_monochrome_params_v2_t; + + if(old_version == 1) + { + typedef struct dt_iop_monochrome_params_v1_t + { + float a; + float b; + float size; + } dt_iop_monochrome_params_v1_t; + + const dt_iop_monochrome_params_v1_t *o = (dt_iop_monochrome_params_v1_t *)old_params; + dt_iop_monochrome_params_v2_t *n = + (dt_iop_monochrome_params_v2_t *)malloc(sizeof(dt_iop_monochrome_params_v2_t)); + memcpy(n, o, sizeof(dt_iop_monochrome_params_v1_t)); + n->highlights = 0.0f; + + *new_params = n; + *new_params_size = sizeof(dt_iop_monochrome_params_v2_t); + *new_version = 2; return 0; } return 1; @@ -255,16 +281,11 @@ err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_monochrome, width, height, CLARG(dev_in), CLARG(dev_tmp), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(d->a), CLARG(d->b), CLARG(sigma2), CLARG(d->highlights)); - if(err != CL_SUCCESS) goto error; - - dt_opencl_release_mem_object(dev_tmp); - return TRUE; error: dt_opencl_release_mem_object(dev_tmp); - dt_bilateral_free_cl(b); - dt_print(DT_DEBUG_OPENCL, "[opencl_monochrome] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + if(b) dt_bilateral_free_cl(b); + return err; } #endif @@ -409,7 +430,8 @@ return TRUE; } -void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece) +void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, + dt_dev_pixelpipe_t *pipe) { dt_iop_monochrome_params_t *p = (dt_iop_monochrome_params_t *)self->params; @@ -464,7 +486,7 @@ if(event->type == GDK_2BUTTON_PRESS) { // reset - dt_iop_monochrome_params_t *p0 = (dt_iop_monochrome_params_t *)self->default_params; + const dt_iop_monochrome_params_t *const p0 = (dt_iop_monochrome_params_t *)self->default_params; p->a = p0->a; p->b = p0->b; p->size = p0->size; @@ -522,7 +544,7 @@ dt_iop_color_picker_reset(self, TRUE); int delta_y; - if(dt_gui_get_scroll_unit_deltas(event, NULL, &delta_y)) + if(dt_gui_get_scroll_unit_delta(event, &delta_y)) { const float old_size = p->size; p->size = CLAMP(p->size + delta_y * 0.1, 0.5f, 3.0f); @@ -580,4 +602,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/negadoctor.c darktable-4.6.1/src/iop/negadoctor.c --- darktable-4.4.2/src/iop/negadoctor.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/negadoctor.c 2024-02-16 17:31:09.000000000 +0000 @@ -161,15 +161,35 @@ } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, const int new_version) -{ - if(old_version == 1 && new_version == 2) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_negadoctor_params_v2_t + { + dt_iop_negadoctor_filmstock_t film_stock; + float Dmin[4]; + float wb_high[4]; + float wb_low[4]; + float D_max; + float offset; + float black; + float gamma; + float soft_clip; + float exposure; + } dt_iop_negadoctor_params_v2_t; + + if(old_version == 1) { typedef struct dt_iop_negadoctor_params_v1_t { @@ -185,11 +205,9 @@ float exposure; // extra exposure } dt_iop_negadoctor_params_v1_t; - dt_iop_negadoctor_params_v1_t *o = (dt_iop_negadoctor_params_v1_t *)old_params; - dt_iop_negadoctor_params_t *n = (dt_iop_negadoctor_params_t *)new_params; - dt_iop_negadoctor_params_t *d = (dt_iop_negadoctor_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + const dt_iop_negadoctor_params_v1_t *o = (dt_iop_negadoctor_params_v1_t *)old_params; + dt_iop_negadoctor_params_v2_t *n = + (dt_iop_negadoctor_params_v2_t *)malloc(sizeof(dt_iop_negadoctor_params_v2_t)); // WARNING: when copying the arrays in a for loop, gcc wrongly assumed // that n and o were aligned and used AVX instructions for me, @@ -214,6 +232,9 @@ n->soft_clip = o->soft_clip; n->exposure = o->exposure; + *new_params = n; + *new_params_size = sizeof(dt_iop_negadoctor_params_v2_t); + *new_version = 2; return 0; } return 1; @@ -355,21 +376,13 @@ const dt_iop_negadoctor_data_t *const d = (dt_iop_negadoctor_data_t *)piece->data; const dt_iop_negadoctor_global_data_t *const gd = (dt_iop_negadoctor_global_data_t *)self->global_data; - cl_int err = DT_OPENCL_DEFAULT_ERROR; - const int devid = piece->pipe->devid; const int width = roi_in->width; const int height = roi_in->height; - err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_negadoctor, width, height, + return dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_negadoctor, width, height, CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(d->Dmin), CLARG(d->wb_high), CLARG(d->offset), CLARG(d->exposure), CLARG(d->black), CLARG(d->gamma), CLARG(d->soft_clip), CLARG(d->soft_clip_comp)); - if(err != CL_SUCCESS) goto error; - return TRUE; - -error: - dt_print(DT_DEBUG_OPENCL, "[opencl_negadoctor] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; } #endif @@ -383,6 +396,7 @@ d->Dmin[0] = 1.00f; d->Dmin[1] = 0.45f; d->Dmin[2] = 0.25f; + d->Dmin[3] = 1.00f; // keep parameter validation with -d common happy } void init_presets(dt_iop_module_so_t *self) @@ -564,6 +578,7 @@ float RGB_min = v_minf(RGB); for(size_t k = 0; k < 3; k++) p->wb_low[k] = RGB[k] / RGB_min; + p->wb_low[3] = 1.0f; ++darktable.gui->reset; dt_bauhaus_slider_set(g->wb_low_R, p->wb_low[0]); @@ -611,6 +626,7 @@ dt_aligned_pixel_t RGB = { 2.0f - c.red, 2.0f - c.green, 2.0f - c.blue }; float RGB_min = v_minf(RGB); for(size_t k = 0; k < 3; k++) p->wb_high[k] = RGB[k] / RGB_min; + p->wb_high[3] = 1.0f; ++darktable.gui->reset; dt_bauhaus_slider_set(g->wb_high_R, p->wb_high[0]); @@ -706,6 +722,7 @@ const float RGB_v_min = v_minf(RGB_min); // warning: can be negative for(int c = 0; c < 3; c++) p->wb_low[c] = RGB_v_min / RGB_min[c]; + p->wb_low[3] = 1.0f; ++darktable.gui->reset; dt_bauhaus_slider_set(g->wb_low_R, p->wb_low[0]); @@ -732,6 +749,7 @@ const float RGB_v_min = v_minf(RGB_min); // warning : must be positive for(int c = 0; c < 3; c++) p->wb_high[c] = RGB_min[c] / RGB_v_min; + p->wb_high[3] = 1.0f; ++darktable.gui->reset; dt_bauhaus_slider_set(g->wb_high_R, p->wb_high[0]); @@ -797,7 +815,8 @@ } -void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece) +void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, + dt_dev_pixelpipe_t *pipe) { if(darktable.gui->reset) return; dt_iop_negadoctor_gui_data_t *g = (dt_iop_negadoctor_gui_data_t *)self->gui_data; @@ -1083,4 +1102,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/nlmeans.c darktable-4.6.1/src/iop/nlmeans.c --- darktable-4.4.2/src/iop/nlmeans.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/nlmeans.c 2024-02-16 17:31:09.000000000 +0000 @@ -43,12 +43,6 @@ // and includes version information about compile-time dt DT_MODULE_INTROSPECTION(2, dt_iop_nlmeans_params_t) -typedef struct dt_iop_nlmeans_params_v1_t -{ - float luma; - float chroma; -} dt_iop_nlmeans_params_v1_t; - typedef struct dt_iop_nlmeans_params_t { // these are stored in db. @@ -98,22 +92,48 @@ _("non-linear, Lab, display-referred")); } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, const int new_version) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) { - if(old_version == 1 && new_version == 2) + typedef struct dt_iop_nlmeans_params_v2_t { - dt_iop_nlmeans_params_v1_t *o = (dt_iop_nlmeans_params_v1_t *)old_params; - dt_iop_nlmeans_params_t *n = (dt_iop_nlmeans_params_t *)new_params; + float radius; + float strength; + float luma; + float chroma; + } dt_iop_nlmeans_params_v2_t; + + if(old_version == 1) + { + typedef struct dt_iop_nlmeans_params_v1_t + { + float luma; + float chroma; + } dt_iop_nlmeans_params_v1_t; + + const dt_iop_nlmeans_params_v1_t *o = (dt_iop_nlmeans_params_v1_t *)old_params; + dt_iop_nlmeans_params_v2_t *n = + (dt_iop_nlmeans_params_v2_t *)malloc(sizeof(dt_iop_nlmeans_params_v2_t)); + n->luma = o->luma; n->chroma = o->chroma; n->strength = 100.0f; n->radius = 3; + + *new_params = n; + *new_params_size = sizeof(dt_iop_nlmeans_params_v2_t); + *new_version = 2; return 0; } return 1; @@ -163,10 +183,7 @@ const int devid = piece->pipe->devid; cl_mem dev_U2 = dt_opencl_alloc_device_buffer(devid, sizeof(float) * 4 * width * height); if(dev_U2 == NULL) - { - dt_print(DT_DEBUG_OPENCL, "[opencl_nlmeans] couldn't allocate GPU buffer\n"); - return FALSE; - } + return DT_OPENCL_SYSMEM_ALLOCATION; const dt_nlmeans_param_t params = { @@ -197,10 +214,7 @@ } // clean up and check whether all kernels ran successfully dt_opencl_release_mem_object(dev_U2); - if(err == CL_SUCCESS) - return TRUE; - dt_print(DT_DEBUG_OPENCL, "[opencl_nlmeans] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; #else // old code const int width = roi_in->width; @@ -317,24 +331,13 @@ dt_opencl_set_kernel_args(devid, gd->kernel_nlmeans_finish, 0, CLARG(dev_in), CLARG(dev_U2), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(weight)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_nlmeans_finish, sizes); - if(err != CL_SUCCESS) goto error; - - dt_opencl_release_mem_object(dev_U2); - for(int k = 0; k < NUM_BUCKETS; k++) - { - dt_opencl_release_mem_object(buckets[k]); - } - return TRUE; error: dt_opencl_release_mem_object(dev_U2); for(int k = 0; k < NUM_BUCKETS; k++) - { - dt_opencl_release_mem_object(buckets[k]); - } + dt_opencl_release_mem_object(buckets[k]); - dt_print(DT_DEBUG_OPENCL, "[opencl_nlmeans] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; #endif /* USE_NEW_IMPL_CL */ } #endif @@ -475,4 +478,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/overexposed.c darktable-4.6.1/src/iop/overexposed.c --- darktable-4.4.2/src/iop/overexposed.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/overexposed.c 2024-02-16 17:31:09.000000000 +0000 @@ -81,20 +81,13 @@ return IOP_FLAGS_ALLOW_TILING | IOP_FLAGS_HIDDEN | IOP_FLAGS_ONE_INSTANCE | IOP_FLAGS_NO_HISTORY_STACK; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } - -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, const int new_version) -{ - // we do no longer have module params in here and just ignore any legacy entries - return 0; -} - - // void init_key_accels(dt_iop_module_so_t *self) // { // dt_accel_register_slider_iop(self, FALSE, NC_("accel", "lower threshold")); @@ -126,7 +119,7 @@ float *restrict img_tmp = NULL; if(!dt_iop_alloc_image_buffers(self, roi_in, roi_out, ch, &img_tmp, 0)) { - dt_iop_copy_image_roi(ovoid, ivoid, ch, roi_in, roi_out, TRUE); + dt_iop_copy_image_roi(ovoid, ivoid, ch, roi_in, roi_out); dt_control_log(_("module overexposed failed in buffer allocation")); return; } @@ -152,7 +145,7 @@ else { dt_print(DT_DEBUG_ALWAYS, "[overexposed process] can't create transform profile\n"); - dt_iop_copy_image_roi(ovoid, ivoid, ch, roi_in, roi_out, TRUE); + dt_iop_copy_image_roi(ovoid, ivoid, ch, roi_in, roi_out); dt_control_log(_("module overexposed failed in color conversion")); goto process_finish; } @@ -356,7 +349,6 @@ if(dev_tmp == NULL) { err = CL_MEM_OBJECT_ALLOCATION_FAILURE; - dt_print(DT_DEBUG_ALWAYS, "[overexposed process_cl] error allocating memory for color transformation\n"); dt_control_log(_("module overexposed failed in buffer allocation")); goto error; } @@ -393,14 +385,10 @@ CLARG(dev_in), CLARG(dev_out), CLARG(dev_tmp), CLARG(width), CLARG(height), CLARG(lower), CLARG(upper), CLARRAY(4, lower_color), CLARRAY(4, upper_color), CLARG(dev_profile_info), CLARG(dev_profile_lut), CLARG(use_work_profile), CLARG(mode)); - if(err != CL_SUCCESS) goto error; - if(dev_tmp) dt_opencl_release_mem_object(dev_tmp); - return TRUE; error: - if(dev_tmp) dt_opencl_release_mem_object(dev_tmp); - dt_print(DT_DEBUG_OPENCL, "[opencl_overexposed] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + dt_opencl_release_mem_object(dev_tmp); + return err; } #endif @@ -468,4 +456,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/primaries.c darktable-4.6.1/src/iop/primaries.c --- darktable-4.4.2/src/iop/primaries.c 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/iop/primaries.c 2024-02-16 17:31:09.000000000 +0000 @@ -0,0 +1,457 @@ +/* + This file is part of darktable, + Copyright (C) 2023 darktable developers. + + darktable is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + darktable is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with darktable. If not, see <http://www.gnu.org/licenses/>. +*/ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "bauhaus/bauhaus.h" +#include "common/custom_primaries.h" +#include "develop/imageop.h" +#include "develop/imageop_gui.h" +#include "gui/color_picker_proxy.h" +#include "gui/gtk.h" +#include "iop/iop_api.h" + +#include <gtk/gtk.h> +#include <stdlib.h> + +// Linear (matrix) transformation of the RGB data based on user-defined +// rotations and scalings of the working space primaries. +// The process is linear (basic channel mixing) but the parametrization +// used here is potentially useful. +// +// Allows tinting of the achromatic axis as well, +// thanks to idea from Troy Sobotka at: +// https://github.com/sobotka/SB2383-Configuration-Generation + +DT_MODULE_INTROSPECTION(1, dt_iop_primaries_params_t) + +static const float RAD_TO_DEG = 180.f / DT_M_PI_F; + +typedef struct dt_iop_primaries_params_t +{ + float achromatic_tint_hue; // $MIN: -3.14 $MAX: 3.14 $DEFAULT: 0.0 $DESCRIPTION: "tint hue" + float achromatic_tint_purity; // $MIN: 0.0 $MAX: 0.99 $DEFAULT: 0.0 $DESCRIPTION: "tint purity" + float red_hue; // $MIN: -3.14 $MAX: 3.14 $DEFAULT: 0.0 $DESCRIPTION: "red hue" + float red_purity; // $MIN: 0.01 $MAX: 5.0 $DEFAULT: 1.0 $DESCRIPTION: "red purity" + float green_hue; // $MIN: -3.14 $MAX: 3.14 $DEFAULT: 0.0 $DESCRIPTION: "green hue" + float green_purity; // $MIN: 0.01 $MAX: 5.0 $DEFAULT: 1.0 $DESCRIPTION: "green purity" + float blue_hue; // $MIN: -3.14 $MAX: 3.14 $DEFAULT: 0.0 $DESCRIPTION: "blue hue" + float blue_purity; // $MIN: 0.01 $MAX: 5.0 $DEFAULT: 1.0 $DESCRIPTION: "blue purity" +} dt_iop_primaries_params_t; + +typedef struct dt_iop_primaries_gui_data_t +{ + GtkWidget *achromatic_tint_hue, *achromatic_tint_purity; + GtkWidget *red_hue, *red_purity; + GtkWidget *green_hue, *green_purity; + GtkWidget *blue_hue, *blue_purity; + const dt_iop_order_iccprofile_info_t *painted_work_profile, *painted_display_profile; +} dt_iop_primaries_gui_data_t; + +typedef struct dt_iop_primaries_global_data_t +{ + int kernel_primaries; +} dt_iop_primaries_global_data_t; + +const char *name() +{ + return _("rgb primaries"); +} + +const char **description(struct dt_iop_module_t *self) +{ + return dt_iop_set_description(self, _("adjustment of the RGB color primaries for color grading"), + _("corrective or creative"), + _("linear, RGB, scene-referred"), + _("linear, RGB"), + _("linear, RGB, scene-referred")); +} + +int flags() +{ + return IOP_FLAGS_INCLUDE_IN_STYLES | IOP_FLAGS_SUPPORTS_BLENDING; +} + +int default_group() +{ + return IOP_GROUP_COLOR | IOP_GROUP_GRADING; +} + +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) +{ + return IOP_CS_RGB; +} + +static void _calculate_adjustment_matrix + (const dt_iop_primaries_params_t *const params, + const dt_iop_order_iccprofile_info_t *const pipe_work_profile, + dt_colormatrix_t matrix) +{ + float custom_primaries[3][2]; + const float scaling[3] = { params->red_purity, + params->green_purity, + params->blue_purity }; + const float rotation[3] = { params->red_hue, params->green_hue, params->blue_hue }; + for(size_t i = 0; i < 3; i++) + dt_rotate_and_scale_primary(pipe_work_profile, + scaling[i], rotation[i], i, custom_primaries[i]); + + float whitepoint[2]; + dt_rotate_and_scale_primary(pipe_work_profile, params->achromatic_tint_purity, + params->achromatic_tint_hue, 0, + whitepoint); + + dt_colormatrix_t RGB_TO_XYZ; + dt_make_transposed_matrices_from_primaries_and_whitepoint(custom_primaries, + whitepoint, RGB_TO_XYZ); + dt_colormatrix_mul(matrix, RGB_TO_XYZ, pipe_work_profile->matrix_out_transposed); +} + +void process(struct dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + const void *const ivoid, + void *const ovoid, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) +{ + dt_iop_primaries_params_t *params = (dt_iop_primaries_params_t *)piece->data; + + if(!dt_iop_have_required_input_format(4 /*we need full-color pixels*/, self, + piece->colors, ivoid, ovoid, roi_in, + roi_out)) + return; + + const dt_iop_order_iccprofile_info_t *pipe_work_profile = + dt_ioppr_get_pipe_work_profile_info(piece->pipe); + dt_colormatrix_t matrix; + _calculate_adjustment_matrix(params, pipe_work_profile, matrix); + +#ifdef _OPENMP +#pragma omp parallel for default(none) schedule(static) shared(matrix) dt_omp_firstprivate(ivoid, ovoid, roi_out) +#endif + for(size_t k = 0; k < 4 * roi_out->width * roi_out->height; k += 4) + { + const float *const restrict in = ((const float *)ivoid) + k; + float *const restrict out = ((float *)ovoid) + k; + + dt_apply_transposed_color_matrix(in, matrix, out); + out[3] = in[3]; + } +} + +#ifdef HAVE_OPENCL +int process_cl(struct dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + cl_mem dev_in, + cl_mem dev_out, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) +{ + dt_iop_primaries_params_t *params = (dt_iop_primaries_params_t *)piece->data; + dt_iop_primaries_global_data_t *gd = (dt_iop_primaries_global_data_t *)self->global_data; + + const int devid = piece->pipe->devid; + const int width = roi_in->width; + const int height = roi_in->height; + + const dt_iop_order_iccprofile_info_t *pipe_work_profile = + dt_ioppr_get_pipe_work_profile_info(piece->pipe); + dt_colormatrix_t transposed_matrix, matrix; + _calculate_adjustment_matrix(params, pipe_work_profile, transposed_matrix); + transpose_3xSSE(transposed_matrix, matrix); + + cl_mem dev_matrix = dt_opencl_copy_host_to_device_constant(devid, sizeof(matrix), matrix); + if(dev_matrix == NULL) + { + dt_print(DT_DEBUG_OPENCL, "[opencl_primaries] couldn't allocate memory!\n"); + return DT_OPENCL_DEFAULT_ERROR; + } + + cl_int err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_primaries, + width, height, CLARG(dev_in), + CLARG(dev_out), CLARG(width), CLARG(height), + CLARG(dev_matrix)); + dt_opencl_release_mem_object(dev_matrix); + return err; +} +#endif + +static void _rotated_primary_to_display_RGB + (const dt_iop_order_iccprofile_info_t *work_profile, + const dt_iop_order_iccprofile_info_t *display_profile, + const dt_iop_order_iccprofile_info_t *sRGB_profile, + const size_t primary_index, + const float angle, + const float desaturate, + dt_aligned_pixel_t display_RGB) +{ + dt_aligned_pixel_t xyY = { 0.f }, XYZ, RGB; + dt_rotate_and_scale_primary(work_profile, 1.f, angle, primary_index, xyY); + // Luminance doesn't matter - it will change in the normalization in + // the end of the function. + xyY[2] = 1.f; + dt_xyY_to_XYZ(xyY, XYZ); + dt_apply_transposed_color_matrix(XYZ, sRGB_profile->matrix_out_transposed, RGB); + + // Bring the value to the sRGB hull and desaturate a bit. + // This is done in sRGB to avoid eyesore for those with wide-gamut displays. + const float min_value = MIN(MIN(RGB[0], RGB[1]), RGB[2]); + const float offset = -MIN(min_value, 0.f) + desaturate; + for_each_channel(c) RGB[c] += offset; + + // To display RGB. Bring to the hull and normalize to 1. + dt_apply_transposed_color_matrix(RGB, sRGB_profile->matrix_in_transposed, XYZ); + dt_apply_transposed_color_matrix(XYZ, display_profile->matrix_out_transposed, RGB); + const float display_min_value = MIN(MIN(RGB[0], RGB[1]), RGB[2]); + const float display_offset = -MIN(display_min_value, 0.f); + const float display_max_value = MAX(MAX(RGB[0], RGB[1]), RGB[2]) + display_offset; + const float scale = 1.f / display_max_value; + for_each_channel(c) display_RGB[c] = scale * (RGB[c] + display_offset); +} + +static void _apply_trc_if_nonlinear(const dt_iop_order_iccprofile_info_t *display_profile, + const dt_aligned_pixel_t linear_RGB, + dt_aligned_pixel_t RGB) +{ + // Apply tone response curve if any + if(display_profile->nonlinearlut) + dt_ioppr_apply_trc(linear_RGB, RGB, display_profile->lut_out, + display_profile->unbounded_coeffs_out, + display_profile->lutsize); + else + copy_pixel(RGB, linear_RGB); +} + +static void _paint_hue_slider(const dt_iop_order_iccprofile_info_t *work_profile, + const dt_iop_order_iccprofile_info_t *display_profile, + const dt_iop_order_iccprofile_info_t *sRGB_profile, + const size_t primary_index, + GtkWidget *slider) +{ + const float hard_min = dt_bauhaus_slider_get_hard_min(slider); + const float hard_max = dt_bauhaus_slider_get_hard_max(slider); + const float range = hard_max - hard_min; + for(int i = 0; i < DT_BAUHAUS_SLIDER_MAX_STOPS; i++) + { + const float stop = (float)i / (float)(DT_BAUHAUS_SLIDER_MAX_STOPS - 1); + const float angle = hard_min + stop * range; + dt_aligned_pixel_t linear_RGB, RGB; + _rotated_primary_to_display_RGB(work_profile, display_profile, + sRGB_profile, primary_index, angle, 0.4f, + linear_RGB); + _apply_trc_if_nonlinear(display_profile, linear_RGB, RGB); + dt_bauhaus_slider_set_stop(slider, stop, RGB[0], RGB[1], RGB[2]); + } + gtk_widget_queue_draw(GTK_WIDGET(slider)); +} + +static void _paint_purity_slider(const dt_iop_order_iccprofile_info_t *work_profile, + const dt_iop_order_iccprofile_info_t *display_profile, + const dt_iop_order_iccprofile_info_t *sRGB_profile, + const size_t primary_index, + const float saturation, + GtkWidget *hue_slider, + GtkWidget *purity_slider) +{ + const float angle = dt_bauhaus_slider_get(hue_slider); + dt_aligned_pixel_t linear_RGB, RGB; + // Map the chosen primary from the full purity to fit the display gamut. + _rotated_primary_to_display_RGB(work_profile, display_profile, sRGB_profile, + primary_index, angle, 0.0f, + linear_RGB); + const float hard_min = dt_bauhaus_slider_get_hard_min(purity_slider); + const float hard_max = dt_bauhaus_slider_get_hard_max(purity_slider); + const float range = hard_max - hard_min; + for(int i = 0; i < DT_BAUHAUS_SLIDER_MAX_STOPS; i++) + { + const float stop = (float)i / (float)(DT_BAUHAUS_SLIDER_MAX_STOPS - 1); + const float t = MIN(hard_min + stop * saturation * range, 1.f); + dt_aligned_pixel_t stop_RGB = { 0.f }; + // Interpolate between white (1, 1, 1) and the chosen + // primary. Not super accurate (since the display can't represent the Rec.2020 primaries) + // but gives an idea of the effect of the purity adjustment. + for_each_channel(c) stop_RGB[c] = 1.f - t + t * linear_RGB[c]; + _apply_trc_if_nonlinear(display_profile, stop_RGB, RGB); + dt_bauhaus_slider_set_stop(purity_slider, stop, RGB[0], RGB[1], RGB[2]); + } + gtk_widget_queue_draw(GTK_WIDGET(purity_slider)); +} + +void gui_changed(dt_iop_module_t *self, GtkWidget *w, void *previous) +{ + if(!self->dev || !self->dev->full.pipe) return; + + dt_iop_primaries_gui_data_t *g = (dt_iop_primaries_gui_data_t *)self->gui_data; + + const dt_iop_order_iccprofile_info_t *work_profile = + dt_ioppr_get_pipe_current_profile_info(self, self->dev->full.pipe); + const dt_iop_order_iccprofile_info_t *display_profile = + dt_ioppr_get_pipe_output_profile_info(self->dev->full.pipe); + if(!work_profile || !display_profile) return; // couldn't fetch + // profiles, can't + // paint the sliders + + const gboolean repaint_all_sliders = + !w + || work_profile != g->painted_work_profile + || display_profile != g->painted_display_profile; + + const dt_iop_order_iccprofile_info_t *sRGB_profile = + dt_ioppr_add_profile_info_to_list(self->dev, DT_COLORSPACE_SRGB, "", + DT_INTENT_RELATIVE_COLORIMETRIC); + + if(repaint_all_sliders) + { + _paint_hue_slider(work_profile, display_profile, sRGB_profile, 0, g->red_hue); + _paint_hue_slider(work_profile, display_profile, sRGB_profile, 1, g->green_hue); + _paint_hue_slider(work_profile, display_profile, sRGB_profile, 2, g->blue_hue); + // Achromatic tint angle is anchored at the red primary + _paint_hue_slider(work_profile, display_profile, sRGB_profile, 0, + g->achromatic_tint_hue); + + g->painted_work_profile = work_profile; + g->painted_display_profile = display_profile; + } + + if(repaint_all_sliders || w == g->red_hue) + _paint_purity_slider(work_profile, display_profile, sRGB_profile, + 0, 1.f, g->red_hue, g->red_purity); + if(repaint_all_sliders || w == g->green_hue) + _paint_purity_slider(work_profile, display_profile, sRGB_profile, + 1, 1.f, g->green_hue, g->green_purity); + if(repaint_all_sliders || w == g->blue_hue) + _paint_purity_slider(work_profile, display_profile, sRGB_profile, + 2, 1.f, g->blue_hue, g->blue_purity); + if(repaint_all_sliders || w == g->achromatic_tint_hue) + _paint_purity_slider(work_profile, display_profile, sRGB_profile, + 0, 5.f, g->achromatic_tint_hue, + g->achromatic_tint_purity); +} + +static void _signal_profile_user_changed(gpointer instance, + const uint8_t profile_type, + gpointer user_data) +{ + dt_iop_module_t *self = (dt_iop_module_t *)user_data; + gui_changed(self, NULL, NULL); +} + +static void _signal_profile_changed(gpointer instance, + gpointer user_data) +{ + dt_iop_module_t *self = (dt_iop_module_t *)user_data; + gui_changed(self, NULL, NULL); +} + +static GtkWidget *_setup_hue_slider(dt_iop_module_t *self, + const char *param_name, + const char *tooltip) +{ + GtkWidget *slider = dt_bauhaus_slider_from_params(self, param_name); + dt_bauhaus_slider_set_format(slider, "°"); + dt_bauhaus_slider_set_digits(slider, 1); + dt_bauhaus_slider_set_factor(slider, RAD_TO_DEG); + dt_bauhaus_slider_set_soft_range(slider, -20.f / RAD_TO_DEG, 20.f / RAD_TO_DEG); + gtk_widget_set_tooltip_text(slider, tooltip); + return slider; +} + +static GtkWidget *_setup_purity_slider(dt_iop_module_t *self, + const char *param_name, + const char *tooltip) +{ + GtkWidget *slider = dt_bauhaus_slider_from_params(self, param_name); + dt_bauhaus_slider_set_format(slider, "%"); + dt_bauhaus_slider_set_digits(slider, 1); + dt_bauhaus_slider_set_factor(slider, 100.f); + dt_bauhaus_slider_set_offset(slider, -100.f); + dt_bauhaus_slider_set_soft_range(slider, 0.5f, 1.5f); + gtk_widget_set_tooltip_text(slider, tooltip); + return slider; +} + +void gui_init(dt_iop_module_t *self) +{ + dt_iop_primaries_gui_data_t *g = IOP_GUI_ALLOC(primaries); + + g->red_hue = _setup_hue_slider(self, "red_hue", _("shift red towards yellow or magenta")); + g->red_purity = _setup_purity_slider(self, "red_purity", _("red primary purity")); + g->green_hue = _setup_hue_slider(self, "green_hue", _("shift green towards cyan or yellow")); + g->green_purity = _setup_purity_slider(self, "green_purity", _("green primary purity")); + g->blue_hue = _setup_hue_slider(self, "blue_hue", _("shift blue towards magenta or cyan")); + g->blue_purity = _setup_purity_slider(self, "blue_purity", _("blue primary purity")); + + g->achromatic_tint_hue = dt_bauhaus_slider_from_params(self, "achromatic_tint_hue"); + dt_bauhaus_slider_set_format(g->achromatic_tint_hue, "°"); + dt_bauhaus_slider_set_digits(g->achromatic_tint_hue, 1); + dt_bauhaus_slider_set_factor(g->achromatic_tint_hue, RAD_TO_DEG); + gtk_widget_set_tooltip_text(g->achromatic_tint_hue, _("tint hue")); + + g->achromatic_tint_purity = dt_bauhaus_slider_from_params(self, "achromatic_tint_purity"); + dt_bauhaus_slider_set_format(g->achromatic_tint_purity, "%"); + dt_bauhaus_slider_set_digits(g->achromatic_tint_purity, 1); + dt_bauhaus_slider_set_factor(g->achromatic_tint_purity, 100.f); + dt_bauhaus_slider_set_soft_range(g->achromatic_tint_purity, 0.f, 0.2f); + gtk_widget_set_tooltip_text(g->achromatic_tint_purity, _("tint purity")); + + g->painted_work_profile = NULL; + g->painted_display_profile = NULL; + + DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_CONTROL_PROFILE_USER_CHANGED, + G_CALLBACK(_signal_profile_user_changed), self); + DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_CONTROL_PROFILE_CHANGED, + G_CALLBACK(_signal_profile_changed), self); + DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_DEVELOP_UI_PIPE_FINISHED, + G_CALLBACK(_signal_profile_changed), self); +} + +void gui_cleanup(struct dt_iop_module_t *self) +{ + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, + G_CALLBACK(_signal_profile_user_changed), self); + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, + G_CALLBACK(_signal_profile_changed), self); + + IOP_GUI_FREE; +} + +void init_global(dt_iop_module_so_t *module) +{ + const int program = 8; // extended.cl, from programs.conf + dt_iop_primaries_global_data_t *gd = + (dt_iop_primaries_global_data_t *)malloc(sizeof(dt_iop_primaries_global_data_t)); + module->data = gd; + gd->kernel_primaries = dt_opencl_create_kernel(program, "primaries"); +} + +void cleanup_global(dt_iop_module_so_t *module) +{ + dt_iop_primaries_global_data_t *gd = (dt_iop_primaries_global_data_t *)module->data; + dt_opencl_free_kernel(gd->kernel_primaries); + free(module->data); + module->data = NULL; +} + +// clang-format off +// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py +// vim: shiftwidth=2 expandtab tabstop=2 cindent +// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; +// clang-format on diff -Nru darktable-4.4.2/src/iop/profile_gamma.c darktable-4.6.1/src/iop/profile_gamma.c --- darktable-4.4.2/src/iop/profile_gamma.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/profile_gamma.c 2024-02-16 17:31:09.000000000 +0000 @@ -116,7 +116,9 @@ | IOP_FLAGS_SUPPORTS_BLENDING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -162,10 +164,25 @@ } -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, void *new_params, - const int new_version) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) { - if(old_version == 1 && new_version == 2) + typedef struct dt_iop_profilegamma_params_v2_t + { + dt_iop_profilegamma_mode_t mode; + float linear; + float gamma; + float dynamic_range; + float grey_point; + float shadows_range; + float security_factor; + } dt_iop_profilegamma_params_v2_t; + + if(old_version == 1) { typedef struct dt_iop_profilegamma_params_v1_t { @@ -173,15 +190,22 @@ float gamma; } dt_iop_profilegamma_params_v1_t; - dt_iop_profilegamma_params_v1_t *o = (dt_iop_profilegamma_params_v1_t *)old_params; - dt_iop_profilegamma_params_t *n = (dt_iop_profilegamma_params_t *)new_params; - dt_iop_profilegamma_params_t *d = (dt_iop_profilegamma_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + const dt_iop_profilegamma_params_v1_t *o = + (dt_iop_profilegamma_params_v1_t *)old_params; + dt_iop_profilegamma_params_v2_t *n = + (dt_iop_profilegamma_params_v2_t *)malloc(sizeof(dt_iop_profilegamma_params_v2_t)); n->linear = o->linear; n->gamma = o->gamma; n->mode = PROFILEGAMMA_GAMMA; + n->dynamic_range = 10.0f; + n->grey_point = 18.0f; + n->shadows_range = -5.0f; + n->security_factor = 0.0f; + + *new_params = n; + *new_params_size = sizeof(dt_iop_profilegamma_params_v2_t); + *new_version = 2; return 0; } return 1; @@ -214,8 +238,6 @@ CLARG(width), CLARG(height), CLARG(dynamic_range), CLARG(shadows_range), CLARG(grey)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_profilegamma_log, sizes); - if(err != CL_SUCCESS) goto error; - return TRUE; } else if(d->mode == PROFILEGAMMA_GAMMA) { @@ -229,21 +251,12 @@ CLARG(height), CLARG(dev_table), CLARG(dev_coeffs)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_profilegamma, sizes); - if(err != CL_SUCCESS) - { - dt_opencl_release_mem_object(dev_table); - dt_opencl_release_mem_object(dev_coeffs); - goto error; - } - - dt_opencl_release_mem_object(dev_table); - dt_opencl_release_mem_object(dev_coeffs); - return TRUE; } error: - dt_print(DT_DEBUG_OPENCL, "[opencl_profilegamma] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + dt_opencl_release_mem_object(dev_table); + dt_opencl_release_mem_object(dev_coeffs); + return err; } #endif @@ -460,7 +473,8 @@ } } -void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece) +void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, + dt_dev_pixelpipe_t *pipe) { dt_iop_profilegamma_gui_data_t *g = (dt_iop_profilegamma_gui_data_t *)self->gui_data; if (picker == g->grey_point) @@ -653,7 +667,7 @@ g->security_factor = dt_bauhaus_slider_from_params(self, "security_factor"); dt_bauhaus_slider_set_format(g->security_factor, "%"); - gtk_widget_set_tooltip_text(g->security_factor, _("enlarge or shrink the computed dynamic range\nthis is useful when noise perturbates the measurements")); + gtk_widget_set_tooltip_text(g->security_factor, _("increase or decrease the computed dynamic range\nthis is useful when noise distorts the measurement")); g->auto_button = dt_color_picker_new(self, DT_COLOR_PICKER_AREA, dt_bauhaus_combobox_new(self)); dt_bauhaus_widget_set_label(g->auto_button, NULL, N_("auto tune levels")); @@ -677,4 +691,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/rawdenoise.c darktable-4.6.1/src/iop/rawdenoise.c --- darktable-4.4.2/src/iop/rawdenoise.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/rawdenoise.c 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2011-2021 darktable developers. + Copyright (C) 2011-2023 darktable developers. darktable is free software: you can redistribute it and/or modify @@ -89,21 +89,31 @@ { } dt_iop_rawdenoise_global_data_t; -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, void *new_params, - const int new_version) -{ - if(old_version == 1 && new_version == 2) - { - // Since first version, the dt_iop_params_t struct have new members - // at the end of the struct. - // Yet, the beginning of the struct is exactly the same: - // threshold is still the first member of the struct. - // This allows to define the variable o with dt_iop_rawdenoise_params_t - // as long as we don't try to access new members on o. - // In other words, o can be seen as a dt_iop_rawdenoise_params_t - // with no allocated space for the new member. - dt_iop_rawdenoise_params_t *o = (dt_iop_rawdenoise_params_t *)old_params; - dt_iop_rawdenoise_params_t *n = (dt_iop_rawdenoise_params_t *)new_params; +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_rawdenoise_params_v2_t + { + float threshold; + float x[DT_RAWDENOISE_NONE][DT_IOP_RAWDENOISE_BANDS]; + float y[DT_RAWDENOISE_NONE][DT_IOP_RAWDENOISE_BANDS]; + } dt_iop_rawdenoise_params_v2_t; + + if(old_version == 1) + { + typedef struct dt_iop_rawdenoise_params_v1_t + { + float threshold; + } dt_iop_rawdenoise_params_v1_t; + + const dt_iop_rawdenoise_params_v1_t *o = (dt_iop_rawdenoise_params_v1_t *)old_params; + dt_iop_rawdenoise_params_v2_t *n = + (dt_iop_rawdenoise_params_v2_t *)malloc(sizeof(dt_iop_rawdenoise_params_v2_t)); + n->threshold = o->threshold; for(int k = 0; k < DT_IOP_RAWDENOISE_BANDS; k++) { @@ -113,6 +123,10 @@ n->y[ch][k] = 0.5f; } } + + *new_params = n; + *new_params_size = sizeof(dt_iop_rawdenoise_params_v2_t); + *new_version = 2; return 0; } return 1; @@ -143,7 +157,9 @@ return IOP_GROUP_CORRECT | IOP_GROUP_TECHNICAL; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RAW; } @@ -547,7 +563,7 @@ void init_pipe(struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) { dt_iop_rawdenoise_data_t *d = (dt_iop_rawdenoise_data_t *)malloc(sizeof(dt_iop_rawdenoise_data_t)); - dt_iop_rawdenoise_params_t *default_params = (dt_iop_rawdenoise_params_t *)self->default_params; + const dt_iop_rawdenoise_params_t *const default_params = (dt_iop_rawdenoise_params_t *)self->default_params; piece->data = (void *)d; for(int ch = 0; ch < DT_RAWDENOISE_NONE; ch++) @@ -768,7 +784,7 @@ cairo_set_source_surface(crf, cst, 0, 0); cairo_paint(crf); cairo_surface_destroy(cst); - return TRUE; + return FALSE; } static gboolean rawdenoise_motion_notify(GtkWidget *widget, GdkEventMotion *event, gpointer user_data) @@ -809,7 +825,7 @@ { // reset current curve dt_iop_rawdenoise_params_t *p = (dt_iop_rawdenoise_params_t *)self->params; - dt_iop_rawdenoise_params_t *d = (dt_iop_rawdenoise_params_t *)self->default_params; + const dt_iop_rawdenoise_params_t *const d = (dt_iop_rawdenoise_params_t *)self->default_params; for(int k = 0; k < DT_IOP_RAWDENOISE_BANDS; k++) { p->x[ch][k] = d->x[ch][k]; @@ -863,7 +879,7 @@ if(dt_gui_ignore_scroll(event)) return FALSE; int delta_y; - if(dt_gui_get_scroll_unit_deltas(event, NULL, &delta_y)) + if(dt_gui_get_scroll_unit_delta(event, &delta_y)) { c->mouse_radius = CLAMP(c->mouse_radius * (1.0 + 0.1 * delta_y), 0.2 / DT_IOP_RAWDENOISE_BANDS, 1.0); gtk_widget_queue_draw(widget); @@ -884,7 +900,7 @@ void gui_init(dt_iop_module_t *self) { dt_iop_rawdenoise_gui_data_t *c = IOP_GUI_ALLOC(rawdenoise); - dt_iop_rawdenoise_params_t *p = (dt_iop_rawdenoise_params_t *)self->default_params; + const dt_iop_rawdenoise_params_t *const p = (dt_iop_rawdenoise_params_t *)self->default_params; c->channel = dt_conf_get_int("plugins/darkroom/rawdenoise/gui_channel"); c->channel_tabs = GTK_NOTEBOOK(gtk_notebook_new()); @@ -955,4 +971,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/rawoverexposed.c darktable-4.6.1/src/iop/rawoverexposed.c --- darktable-4.4.2/src/iop/rawoverexposed.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/rawoverexposed.c 2024-02-16 17:31:09.000000000 +0000 @@ -79,7 +79,9 @@ return IOP_FLAGS_ALLOW_TILING | IOP_FLAGS_HIDDEN | IOP_FLAGS_ONE_INSTANCE | IOP_FLAGS_NO_HISTORY_STACK; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -142,7 +144,7 @@ dt_boundingbox_t pts = {(float)(roi_out->x) / in_scale, (float)(roi_out->y) / in_scale, (float)(roi_out->x + roi_out->width) / in_scale, (float)(roi_out->y + roi_out->height) / in_scale}; printf("in %f %f %f %f\n", pts[0], pts[1], pts[2], pts[3]); - dt_dev_distort_backtransform_plus(dev, dev->pipe, 0, priority, pts, 2); + dt_dev_distort_backtransform_plus(dev, dev->full.pipe, 0, priority, pts, 2); printf("out %f %f %f %f\n\n", pts[0], pts[1], pts[2], pts[3]); #endif @@ -178,7 +180,7 @@ } // where did they come from? - dt_dev_distort_backtransform_plus(self->dev, self->dev->pipe, iop_order, DT_DEV_TRANSFORM_DIR_BACK_INCL, bufptr, roi_out->width); + dt_dev_distort_backtransform_plus(self->dev, self->dev->full.pipe, iop_order, DT_DEV_TRANSFORM_DIR_BACK_INCL, bufptr, roi_out->width); for(int i = 0; i < roi_out->width; i++) { @@ -278,6 +280,7 @@ const int raw_width = buf.width; const int raw_height = buf.height; + err = DT_OPENCL_SYSMEM_ALLOCATION; dev_raw = dt_opencl_copy_host_to_device(devid, buf.buf, raw_width, raw_height, sizeof(uint16_t)); if(dev_raw == NULL) goto error; @@ -304,7 +307,7 @@ } // where did they come from? - dt_dev_distort_backtransform_plus(self->dev, self->dev->pipe, self->iop_order, DT_DEV_TRANSFORM_DIR_BACK_INCL, bufptr, roi_out->width); + dt_dev_distort_backtransform_plus(self->dev, self->dev->full.pipe, self->iop_order, DT_DEV_TRANSFORM_DIR_BACK_INCL, bufptr, roi_out->width); } dev_coord = dt_opencl_alloc_device_buffer(devid, coordbufsize); @@ -338,6 +341,7 @@ break; } + err = DT_OPENCL_SYSMEM_ALLOCATION; if(filters == 9u) { dev_xtrans @@ -359,17 +363,6 @@ dt_opencl_set_kernel_args(devid, kernel, 11, CLARRAY(4, color)); err = dt_opencl_enqueue_kernel_2d(devid, kernel, sizes); - if(err != CL_SUCCESS) goto error; - - dt_opencl_release_mem_object(dev_xtrans); - dt_opencl_release_mem_object(dev_colors); - dt_opencl_release_mem_object(dev_thresholds); - dt_opencl_release_mem_object(dev_coord); - dt_free_align(coordbuf); - dt_opencl_release_mem_object(dev_raw); - dt_mipmap_cache_release(darktable.mipmap_cache, &buf); - - return TRUE; error: dt_opencl_release_mem_object(dev_xtrans); @@ -379,8 +372,7 @@ dt_free_align(coordbuf); dt_opencl_release_mem_object(dev_raw); dt_mipmap_cache_release(darktable.mipmap_cache, &buf); - dt_print(DT_DEBUG_OPENCL, "[opencl_rawoverexposed] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif diff -Nru darktable-4.4.2/src/iop/rawprepare.c darktable-4.6.1/src/iop/rawprepare.c --- darktable-4.4.2/src/iop/rawprepare.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/rawprepare.c 2024-02-16 17:31:09.000000000 +0000 @@ -115,9 +115,9 @@ return IOP_GROUP_BASIC | IOP_GROUP_TECHNICAL; } -int default_colorspace(dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RAW; } @@ -125,11 +125,11 @@ int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, - const int new_version) + void **new_params, + int32_t *new_params_size, + int *new_version) { - typedef struct dt_iop_rawprepare_params_t dt_iop_rawprepare_params_v2_t; - typedef struct dt_iop_rawprepare_params_v1_t + typedef struct dt_iop_rawprepare_params_v2_t { int32_t left; int32_t top; @@ -137,14 +137,30 @@ int32_t bottom; uint16_t raw_black_level_separate[4]; uint16_t raw_white_point; - } dt_iop_rawprepare_params_v1_t; + dt_iop_rawprepare_flat_field_t flat_field; + } dt_iop_rawprepare_params_v2_t; - if(old_version == 1 && new_version == 2) + if(old_version == 1) { - dt_iop_rawprepare_params_v1_t *o = (dt_iop_rawprepare_params_v1_t *)old_params; - dt_iop_rawprepare_params_v2_t *n = (dt_iop_rawprepare_params_v2_t *)new_params; + typedef struct dt_iop_rawprepare_params_v1_t + { + int32_t left; + int32_t top; + int32_t right; + int32_t bottom; + uint16_t raw_black_level_separate[4]; + uint16_t raw_white_point; + } dt_iop_rawprepare_params_v1_t; + + const dt_iop_rawprepare_params_v1_t *o = (dt_iop_rawprepare_params_v1_t *)old_params; + dt_iop_rawprepare_params_v2_t *n = + (dt_iop_rawprepare_params_v2_t *)malloc(sizeof(dt_iop_rawprepare_params_v2_t)); memcpy(n, o, sizeof *o); n->flat_field = FLAT_FIELD_OFF; + + *new_params = n; + *new_params_size = sizeof(dt_iop_rawprepare_params_v2_t); + *new_version = 2; return 0; } @@ -188,16 +204,15 @@ return (int)roundf((float)value * scale); } -int distort_transform( - dt_iop_module_t *self, - dt_dev_pixelpipe_iop_t *piece, - float *const restrict points, - size_t points_count) +gboolean distort_transform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *const restrict points, + size_t points_count) { dt_iop_rawprepare_data_t *d = (dt_iop_rawprepare_data_t *)piece->data; // nothing to be done if parameters are set to neutral values (no top/left crop) - if(d->left == 0 && d->top == 0) return 1; + if(d->left == 0 && d->top == 0) return TRUE; const float scale = piece->buf_in.scale / piece->iscale; @@ -216,19 +231,18 @@ points[i + 1] -= y; } - return 1; + return TRUE; } -int distort_backtransform( - dt_iop_module_t *self, - dt_dev_pixelpipe_iop_t *piece, - float *const restrict points, - size_t points_count) +gboolean distort_backtransform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *const restrict points, + size_t points_count) { dt_iop_rawprepare_data_t *d = (dt_iop_rawprepare_data_t *)piece->data; // nothing to be done if parameters are set to neutral values (no top/left crop) - if(d->left == 0 && d->top == 0) return 1; + if(d->left == 0 && d->top == 0) return TRUE; const float scale = piece->buf_in.scale / piece->iscale; @@ -247,7 +261,7 @@ points[i + 1] += y; } - return 1; + return TRUE; } void distort_mask( @@ -258,7 +272,7 @@ const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) { - dt_iop_copy_image_roi(out, in, 1, roi_in, roi_out, TRUE); + dt_iop_copy_image_roi(out, in, 1, roi_in, roi_out); } // we're not scaling here (bayer input), so just crop borders @@ -479,7 +493,7 @@ } if(!dt_image_is_raw(&piece->pipe->image) && piece->pipe->want_detail_mask) - dt_dev_write_rawdetail_mask(piece, (float *const)ovoid, roi_in, FALSE); + dt_dev_write_scharr_mask(piece, (float *const)ovoid, roi_in, FALSE); for(int k = 0; k < 4; k++) piece->pipe->dsc.processed_maximum[k] = 1.0f; } @@ -499,8 +513,8 @@ const int devid = piece->pipe->devid; cl_mem dev_sub = NULL; cl_mem dev_div = NULL; - cl_mem dev_gainmap[4] = {0}; - cl_int err = DT_OPENCL_DEFAULT_ERROR; + cl_mem dev_gainmap[4] = {NULL}; + cl_int err = CL_MEM_OBJECT_ALLOCATION_FAILURE; int kernel = -1; gboolean gainmap_args = FALSE; @@ -542,10 +556,10 @@ const int csy = _compute_proper_crop(piece, roi_in, d->top); dev_sub = dt_opencl_copy_host_to_device_constant(devid, sizeof(float) * 4, d->sub); - if(dev_sub == NULL) goto error; + if(dev_sub == NULL) goto finish; dev_div = dt_opencl_copy_host_to_device_constant(devid, sizeof(float) * 4, d->div); - if(dev_div == NULL) goto error; + if(dev_div == NULL) goto finish; const int width = roi_out->width; const int height = roi_out->height; @@ -560,13 +574,14 @@ const float rel_to_map[2] = { 1.0f / d->gainmaps[0]->map_spacing_h, 1.0f / d->gainmaps[0]->map_spacing_v }; const float map_origin[2] = { d->gainmaps[0]->map_origin_h, d->gainmaps[0]->map_origin_v }; - for(int i = 0; i < 4; i++) + for(int i = 0; i < 4; i++) { + err = CL_MEM_OBJECT_ALLOCATION_FAILURE; dev_gainmap[i] = dt_opencl_alloc_device(devid, map_size[0], map_size[1], sizeof(float)); - if(dev_gainmap[i] == NULL) goto error; + if(dev_gainmap[i] == NULL) goto finish; err = dt_opencl_write_host_to_device(devid, d->gainmaps[i]->map_gain, dev_gainmap[i], map_size[0], map_size[1], sizeof(float)); - if(err != CL_SUCCESS) goto error; + if(err != CL_SUCCESS) goto finish; } dt_opencl_set_kernel_args @@ -575,50 +590,38 @@ CLARG(map_size), CLARG(im_to_rel), CLARG(rel_to_map), CLARG(map_origin)); } err = dt_opencl_enqueue_kernel_2d(devid, kernel, sizes); - if(err != CL_SUCCESS) goto error; +finish: dt_opencl_release_mem_object(dev_sub); dt_opencl_release_mem_object(dev_div); - for(int i = 0; i < 4; i++) dt_opencl_release_mem_object(dev_gainmap[i]); - if(piece->pipe->dsc.filters) - { - piece->pipe->dsc.filters = - dt_rawspeed_crop_dcraw_filters(self->dev->image_storage.buf_dsc.filters, csx, csy); - _adjust_xtrans_filters(piece->pipe, csx, csy); - } - - for(int k = 0; k < 4; k++) piece->pipe->dsc.processed_maximum[k] = 1.0f; + for(int i = 0; i < 4; i++) + dt_opencl_release_mem_object(dev_gainmap[i]); - if(!dt_image_is_raw(&piece->pipe->image) && piece->pipe->want_detail_mask) + if(err == CL_SUCCESS) { - err = dt_dev_write_rawdetail_mask_cl(piece, dev_out, roi_in, FALSE); - if(err != CL_SUCCESS) goto error; + if(piece->pipe->dsc.filters) + { + piece->pipe->dsc.filters = + dt_rawspeed_crop_dcraw_filters(self->dev->image_storage.buf_dsc.filters, csx, csy); + _adjust_xtrans_filters(piece->pipe, csx, csy); + } + for(int k = 0; k < 4; k++) piece->pipe->dsc.processed_maximum[k] = 1.0f; + if(!dt_image_is_raw(&piece->pipe->image) && piece->pipe->want_detail_mask) + err = dt_dev_write_scharr_mask_cl(piece, dev_out, roi_in, FALSE); } - return TRUE; -error: - dt_opencl_release_mem_object(dev_sub); - dt_opencl_release_mem_object(dev_div); - for(int i = 0; i < 4; i++) dt_opencl_release_mem_object(dev_gainmap[i]); - dt_print(DT_DEBUG_OPENCL, "[opencl_rawprepare] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif static int _image_is_normalized(const dt_image_t *const image) { - // if raw with floating-point data, if not special magic whitelevel, then it needs normalization + // if raw with floating-point data, if not 1 or legacy magic whitelevel, then it needs normalization if((image->flags & DT_IMAGE_HDR) == DT_IMAGE_HDR) { - union { - float f; - uint32_t u; - } normalized; - normalized.f = 1.0f; - - // dng spec is just broken here. - return image->raw_white_point == normalized.u; + // dng spec is somewhat ambiguous here. + return image->raw_white_point == 1 || image->raw_white_point == 0x3F800000U; } // else, assume normalized @@ -677,7 +680,7 @@ if(g_list_length(image->dng_gain_maps) != 4) return FALSE; - // FIXME checks for witdh / height might be wrong + // FIXME checks for width / height might be wrong for(int i = 0; i < 4; i++) { // check that each GainMap applies to one filter of a Bayer image, diff -Nru darktable-4.4.2/src/iop/relight.c darktable-4.6.1/src/iop/relight.c --- darktable-4.4.2/src/iop/relight.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/relight.c 2024-02-16 17:31:09.000000000 +0000 @@ -101,7 +101,9 @@ return IOP_GROUP_TONE | IOP_GROUP_GRADING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } @@ -159,7 +161,6 @@ dt_iop_relight_data_t *data = (dt_iop_relight_data_t *)piece->data; dt_iop_relight_global_data_t *gd = (dt_iop_relight_global_data_t *)self->global_data; - cl_int err = DT_OPENCL_DEFAULT_ERROR; const int devid = piece->pipe->devid; const int width = roi_in->width; const int height = roi_in->height; @@ -168,14 +169,8 @@ const float wings = data->width; const float ev = data->ev; - err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_relight, width, height, + return dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_relight, width, height, CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(center), CLARG(wings), CLARG(ev)); - if(err != CL_SUCCESS) goto error; - return TRUE; - -error: - dt_print(DT_DEBUG_OPENCL, "[opencl_relight] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; } #endif @@ -235,7 +230,8 @@ dtgtk_gradient_slider_set_value(g->center, p->center); } -void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece) +void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, + dt_dev_pixelpipe_t *pipe) { dt_iop_relight_gui_data_t *g = (dt_iop_relight_gui_data_t *)self->gui_data; float mean, min, max; diff -Nru darktable-4.4.2/src/iop/retouch.c darktable-4.6.1/src/iop/retouch.c --- darktable-4.4.2/src/iop/retouch.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/retouch.c 2024-02-16 17:31:09.000000000 +0000 @@ -219,21 +219,51 @@ int flags() { - return IOP_FLAGS_SUPPORTS_BLENDING | IOP_FLAGS_NO_MASKS | IOP_FLAGS_GUIDES_WIDGET; + return IOP_FLAGS_SUPPORTS_BLENDING | IOP_FLAGS_NO_MASKS; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } +int operation_tags_filter() +{ + // switch off cropping and decoration, we want to see the full image. + return IOP_TAG_DECORATION | IOP_TAG_CROPPING; +} + int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, - const int new_version) + void **new_params, + int32_t *new_params_size, + int *new_version) { - if(old_version == 1 && new_version == 3) + typedef struct dt_iop_retouch_params_v3_t + { + dt_iop_retouch_form_data_t rt_forms[RETOUCH_NO_FORMS]; // array of masks index and additional data + + dt_iop_retouch_algo_type_t algorithm; // $DEFAULT: DT_IOP_RETOUCH_HEAL clone, heal, blur, fill + + int num_scales; // $DEFAULT: 0 number of wavelets scales + int curr_scale; // $DEFAULT: 0 current wavelet scale + int merge_from_scale; // $DEFAULT: 0 + + float preview_levels[3]; + + dt_iop_retouch_blur_types_t blur_type; // $DEFAULT: DT_IOP_RETOUCH_BLUR_GAUSSIAN $DESCRIPTION: "blur type" gaussian, bilateral + float blur_radius; // $MIN: 0.1 $MAX: 200.0 $DEFAULT: 10.0 $DESCRIPTION: "blur radius" radius for blur algorithm + + dt_iop_retouch_fill_modes_t fill_mode; // $DEFAULT: DT_IOP_RETOUCH_FILL_ERASE $DESCRIPTION: "fill mode" mode for fill algorithm, erase or fill with color + float fill_color[3]; // $DEFAULT: 0.0 color for fill algorithm + float fill_brightness; // $MIN: -1.0 $MAX: 1.0 $DESCRIPTION: "brightness" value to be added to the color + int max_heal_iter; // $DEFAULT: 2000 $DESCRIPTION: "max_iter" number of iterations for heal algorithm + } dt_iop_retouch_params_v3_t; + + if(old_version == 1) { typedef struct dt_iop_retouch_form_data_v1_t { @@ -271,11 +301,10 @@ float fill_brightness; // $MIN: -1.0 $MAX: 1.0 $DESCRIPTION: "brightness" value to be added to the color } dt_iop_retouch_params_v1_t; - dt_iop_retouch_params_v1_t *o = (dt_iop_retouch_params_v1_t *)old_params; - dt_iop_retouch_params_t *n = (dt_iop_retouch_params_t *)new_params; - dt_iop_retouch_params_t *d = (dt_iop_retouch_params_t *)self->default_params; + const dt_iop_retouch_params_v1_t *o = (dt_iop_retouch_params_v1_t *)old_params; + dt_iop_retouch_params_v3_t *n = + (dt_iop_retouch_params_v3_t *)malloc(sizeof(dt_iop_retouch_params_v3_t)); - *n = *d; // start with a fresh copy of default parameters for(int i = 0; i < RETOUCH_NO_FORMS; i++) { dt_iop_retouch_form_data_v1_t of = o->rt_forms[i]; @@ -308,9 +337,13 @@ n->max_heal_iter = 1000; + *new_params = n; + *new_params_size = sizeof(dt_iop_retouch_params_v3_t); + *new_version = 3; return 0; } - if(old_version == 2 && new_version == 3) + + if(old_version == 2) { typedef struct dt_iop_retouch_params_v2_t { @@ -332,16 +365,17 @@ float fill_brightness; // $MIN: -1.0 $MAX: 1.0 $DESCRIPTION: "brightness" value to be added to the color } dt_iop_retouch_params_v2_t; - dt_iop_retouch_params_v2_t *o = (dt_iop_retouch_params_v2_t *)old_params; - dt_iop_retouch_params_t *n = (dt_iop_retouch_params_t *)new_params; - dt_iop_retouch_params_t *d = (dt_iop_retouch_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + const dt_iop_retouch_params_v2_t *o = (dt_iop_retouch_params_v2_t *)old_params; + dt_iop_retouch_params_v3_t *n = + (dt_iop_retouch_params_v3_t *)malloc(sizeof(dt_iop_retouch_params_v3_t)); memcpy(n, o, sizeof(dt_iop_retouch_params_v2_t)); n->max_heal_iter = 1000; + *new_params = n; + *new_params_size = sizeof(dt_iop_retouch_params_v3_t); + *new_version = 3; return 0; } return 1; @@ -368,7 +402,8 @@ return darktable.develop->mask_form_selected_id; } -static dt_masks_point_group_t *rt_get_mask_point_group(dt_iop_module_t *self, dt_mask_id_t formid) +static dt_masks_point_group_t *rt_get_mask_point_group(dt_iop_module_t *self, + dt_mask_id_t formid) { dt_masks_point_group_t *form_point_group = NULL; @@ -392,7 +427,8 @@ return form_point_group; } -static float rt_get_shape_opacity(dt_iop_module_t *self, const dt_mask_id_t formid) +static float rt_get_shape_opacity(dt_iop_module_t *self, + const dt_mask_id_t formid) { float opacity = 0.f; @@ -402,10 +438,14 @@ return opacity; } -static void rt_display_selected_fill_color(dt_iop_retouch_gui_data_t *g, dt_iop_retouch_params_t *p) +static void rt_display_selected_fill_color(dt_iop_retouch_gui_data_t *g, + dt_iop_retouch_params_t *p) { GdkRGBA c - = (GdkRGBA){.red = p->fill_color[0], .green = p->fill_color[1], .blue = p->fill_color[2], .alpha = 1.0 }; + = (GdkRGBA){.red = p->fill_color[0], + .green = p->fill_color[1], + .blue = p->fill_color[2], + .alpha = 1.0 }; gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(g->colorpick), &c); } @@ -414,8 +454,10 @@ dt_iop_retouch_gui_data_t *g = (dt_iop_retouch_gui_data_t *)self->gui_data; dt_iop_retouch_params_t *p = (dt_iop_retouch_params_t *)self->params; - const int creation_continuous = (darktable.develop->form_gui && darktable.develop->form_gui->creation_continuous - && darktable.develop->form_gui->creation_continuous_module == self); + const int creation_continuous = + (darktable.develop->form_gui + && darktable.develop->form_gui->creation_continuous + && darktable.develop->form_gui->creation_continuous_module == self); switch(p->algorithm) { @@ -447,7 +489,8 @@ else gtk_widget_hide(GTK_WIDGET(g->vbox_preview_scale)); - const dt_masks_form_t *form = dt_masks_get_from_id(darktable.develop, rt_get_selected_shape_id()); + const dt_masks_form_t *form = + dt_masks_get_from_id(darktable.develop, rt_get_selected_shape_id()); if(form && !creation_continuous) gtk_widget_show(GTK_WIDGET(g->sl_mask_opacity)); else @@ -456,7 +499,8 @@ static void rt_display_selected_shapes_lbl(dt_iop_retouch_gui_data_t *g) { - const dt_masks_form_t *form = dt_masks_get_from_id(darktable.develop, rt_get_selected_shape_id()); + const dt_masks_form_t *form = + dt_masks_get_from_id(darktable.develop, rt_get_selected_shape_id()); if(form) gtk_label_set_text(g->label_form_selected, form->name); else @@ -513,10 +557,14 @@ { p->algorithm = p->rt_forms[index].algorithm; - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_clone), (p->algorithm == DT_IOP_RETOUCH_CLONE)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_heal), (p->algorithm == DT_IOP_RETOUCH_HEAL)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_blur), (p->algorithm == DT_IOP_RETOUCH_BLUR)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_fill), (p->algorithm == DT_IOP_RETOUCH_FILL)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_clone), + (p->algorithm == DT_IOP_RETOUCH_CLONE)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_heal), + (p->algorithm == DT_IOP_RETOUCH_HEAL)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_blur), + (p->algorithm == DT_IOP_RETOUCH_BLUR)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_fill), + (p->algorithm == DT_IOP_RETOUCH_FILL)); selection_changed = TRUE; } @@ -526,8 +574,10 @@ rt_display_selected_shapes_lbl(g); - const gboolean creation_continuous = (darktable.develop->form_gui && darktable.develop->form_gui->creation_continuous - && darktable.develop->form_gui->creation_continuous_module == self); + const gboolean creation_continuous = + (darktable.develop->form_gui + && darktable.develop->form_gui->creation_continuous + && darktable.develop->form_gui->creation_continuous_module == self); if(index >= 0 && !creation_continuous) gtk_widget_show(GTK_WIDGET(g->sl_mask_opacity)); @@ -543,7 +593,9 @@ // helpers //--------------------------------------------------------------------------------- -static gboolean rt_masks_form_change_opacity(dt_iop_module_t *self, dt_mask_id_t formid, float opacity) +static gboolean rt_masks_form_change_opacity(dt_iop_module_t *self, + const dt_mask_id_t formid, + const float opacity) { gboolean changed = FALSE; dt_masks_point_group_t *grpt = rt_get_mask_point_group(self, formid); @@ -569,7 +621,8 @@ { for(int i = 0; i < RETOUCH_NO_FORMS; i++) { - if(p->rt_forms[i].scale == source_scale) p->rt_forms[i].scale = dest_scale; + if(p->rt_forms[i].scale == source_scale) + p->rt_forms[i].scale = dest_scale; } } } @@ -586,7 +639,8 @@ return allow; } -static void rt_reset_form_creation(GtkWidget *widget, dt_iop_module_t *self) +static void rt_reset_form_creation(GtkWidget *widget, + dt_iop_module_t *self) { const dt_iop_retouch_gui_data_t *g = (dt_iop_retouch_gui_data_t *)self->gui_data; @@ -601,10 +655,14 @@ darktable.develop->form_gui->creation_continuous_module = NULL; } - if(widget != g->bt_path) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_path), FALSE); - if(widget != g->bt_circle) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_circle), FALSE); - if(widget != g->bt_ellipse) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_ellipse), FALSE); - if(widget != g->bt_brush) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_brush), FALSE); + if(widget != g->bt_path) + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_path), FALSE); + if(widget != g->bt_circle) + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_circle), FALSE); + if(widget != g->bt_ellipse) + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_ellipse), FALSE); + if(widget != g->bt_brush) + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_brush), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_edit_masks), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_showmask), FALSE); @@ -614,7 +672,9 @@ static void rt_show_forms_for_current_scale(dt_iop_module_t *self) { - if(!self->enabled || darktable.develop->gui_module != self || darktable.develop->form_gui->creation + if(!self->enabled + || darktable.develop->gui_module != self + || darktable.develop->form_gui->creation || darktable.develop->form_gui->creation_continuous) return; @@ -629,7 +689,9 @@ // check if there is a shape on this scale for(int i = 0; i < RETOUCH_NO_FORMS && count == 0; i++) { - if(dt_is_valid_maskid(p->rt_forms[i].formid) && p->rt_forms[i].scale == scale) count++; + if(dt_is_valid_maskid(p->rt_forms[i].formid) + && p->rt_forms[i].scale == scale) + count++; } // if there are shapes on this scale, make the cut shapes button sensitive @@ -641,9 +703,10 @@ dt_masks_change_form_gui(NULL); if(g) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_edit_masks), - (bd->masks_shown != DT_MASKS_EDIT_OFF) - && (darktable.develop->gui_module == self)); + gtk_toggle_button_set_active + (GTK_TOGGLE_BUTTON(g->bt_edit_masks), + (bd->masks_shown != DT_MASKS_EDIT_OFF) + && (darktable.develop->gui_module == self)); dt_control_queue_redraw_center(); return; @@ -660,7 +723,8 @@ dt_masks_form_t *form = dt_masks_get_from_id(darktable.develop, formid); if(form) { - dt_masks_point_group_t *fpt = (dt_masks_point_group_t *)malloc(sizeof(dt_masks_point_group_t)); + dt_masks_point_group_t *fpt = + (dt_masks_point_group_t *)malloc(sizeof(dt_masks_point_group_t)); fpt->formid = formid; fpt->parentid = grid; fpt->state = DT_MASKS_STATE_USE; @@ -678,7 +742,8 @@ if(g) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_edit_masks), - (bd->masks_shown != DT_MASKS_EDIT_OFF) && (darktable.develop->gui_module == self)); + (bd->masks_shown != DT_MASKS_EDIT_OFF) + && (darktable.develop->gui_module == self)); dt_control_queue_redraw_center(); } @@ -697,7 +762,9 @@ if(grp && (grp->type & DT_MASKS_GROUP)) { int new_form_index = 0; - for(GList *forms = grp->points; (new_form_index < RETOUCH_NO_FORMS) && forms; forms = g_list_next(forms)) + for(GList *forms = grp->points; + (new_form_index < RETOUCH_NO_FORMS) && forms; + forms = g_list_next(forms)) { dt_masks_point_group_t *grpt = (dt_masks_point_group_t *)forms->data; if(grpt) @@ -717,7 +784,9 @@ else { // if it does not exists add it to the new array - const dt_masks_form_t *parent_form = dt_masks_get_from_id(darktable.develop, formid); + const dt_masks_form_t *parent_form = + dt_masks_get_from_id(darktable.develop, formid); + if(parent_form) { forms_d[new_form_index].formid = formid; @@ -749,11 +818,7 @@ } } - // we reaffect params - for(int i = 0; i < RETOUCH_NO_FORMS; i++) - { - p->rt_forms[i] = forms_d[i]; - } + memcpy(p->rt_forms, forms_d, sizeof(p->rt_forms)); } static gboolean rt_masks_form_is_in_roi(dt_iop_module_t *self, @@ -769,7 +834,10 @@ // is the form outside of the roi? fw *= roi_in->scale, fh *= roi_in->scale, fl *= roi_in->scale, ft *= roi_in->scale; - if(ft >= roi_out->y + roi_out->height || ft + fh <= roi_out->y || fl >= roi_out->x + roi_out->width + + if(ft >= roi_out->y + roi_out->height + || ft + fh <= roi_out->y + || fl >= roi_out->x + roi_out->width || fl + fw <= roi_out->x) return FALSE; @@ -782,7 +850,8 @@ size_t points_count, float *new) { - const float scalex = piece->pipe->iwidth * roi->scale, scaley = piece->pipe->iheight * roi->scale; + const float scalex = piece->pipe->iwidth * roi->scale; + const float scaley = piece->pipe->iheight * roi->scale; for(size_t i = 0; i < points_count * 2; i += 2) { @@ -800,8 +869,10 @@ float *dy, const int distort_mode) { - // if distort_mode==1 we don't scale at the right place, hence false positions if there's distortion before this - // module. we keep it for backward compatibility only. all new forms have distort_mode==2 + // if distort_mode==1 we don't scale at the right place, hence false + // positions if there's distortion before this module. we keep it + // for backward compatibility only. all new forms have + // distort_mode==2 dt_boundingbox_t points; if(distort_mode == 1) { @@ -816,7 +887,10 @@ points[3] = source[1] * piece->pipe->iheight; } - const int res = dt_dev_distort_transform_plus(self->dev, piece->pipe, self->iop_order, DT_DEV_TRANSFORM_DIR_BACK_INCL, points, 2); + const int res = dt_dev_distort_transform_plus(self->dev, piece->pipe, + self->iop_order, + DT_DEV_TRANSFORM_DIR_BACK_INCL, + points, 2); if(!res) return res; if(distort_mode == 1) @@ -848,25 +922,29 @@ { const dt_masks_point_path_t *pt = (dt_masks_point_path_t *)form->points->data; - res = rt_masks_point_calc_delta(self, piece, roi, pt->corner, form->source, dx, dy, distort_mode); + res = rt_masks_point_calc_delta(self, piece, roi, pt->corner, + form->source, dx, dy, distort_mode); } else if(form->type & DT_MASKS_CIRCLE) { const dt_masks_point_circle_t *pt = (dt_masks_point_circle_t *)form->points->data; - res = rt_masks_point_calc_delta(self, piece, roi, pt->center, form->source, dx, dy, distort_mode); + res = rt_masks_point_calc_delta(self, piece, roi, pt->center, + form->source, dx, dy, distort_mode); } else if(form->type & DT_MASKS_ELLIPSE) { const dt_masks_point_ellipse_t *pt = (dt_masks_point_ellipse_t *)form->points->data; - res = rt_masks_point_calc_delta(self, piece, roi, pt->center, form->source, dx, dy, distort_mode); + res = rt_masks_point_calc_delta(self, piece, roi, pt->center, + form->source, dx, dy, distort_mode); } else if(form->type & DT_MASKS_BRUSH) { const dt_masks_point_brush_t *pt = (dt_masks_point_brush_t *)form->points->data; - res = rt_masks_point_calc_delta(self, piece, roi, pt->corner, form->source, dx, dy, distort_mode); + res = rt_masks_point_calc_delta(self, piece, roi, pt->corner, + form->source, dx, dy, distort_mode); } return res; @@ -875,7 +953,9 @@ static void rt_clamp_minmax(float levels_old[3], float levels_new[3]) { // left or right has changed - if((levels_old[0] != levels_new[0] || levels_old[2] != levels_new[2]) && levels_old[1] == levels_new[1]) + if((levels_old[0] != levels_new[0] + || levels_old[2] != levels_new[2]) + && levels_old[1] == levels_new[1]) { // if old left and right are the same just use the new values if(levels_old[2] != levels_old[0]) @@ -884,7 +964,8 @@ const float left = MAX(levels_new[0], RETOUCH_PREVIEW_LVL_MIN); const float right = MIN(levels_new[2], RETOUCH_PREVIEW_LVL_MAX); - const float percentage = (levels_old[1] - levels_old[0]) / (levels_old[2] - levels_old[0]); + const float percentage = + (levels_old[1] - levels_old[0]) / (levels_old[2] - levels_old[0]); levels_new[1] = left + (right - left) * percentage; levels_new[0] = left; levels_new[2] = right; @@ -900,29 +981,36 @@ } // check the range - if(levels_new[2] < levels_new[0] + 0.05f * 2.f) levels_new[2] = levels_new[0] + 0.05f * 2.f; - if(levels_new[1] < levels_new[0] + 0.05f) levels_new[1] = levels_new[0] + 0.05f; - if(levels_new[1] > levels_new[2] - 0.05f) levels_new[1] = levels_new[2] - 0.05f; + if(levels_new[2] < levels_new[0] + 0.05f * 2.f) + levels_new[2] = levels_new[0] + 0.05f * 2.f; + if(levels_new[1] < levels_new[0] + 0.05f) + levels_new[1] = levels_new[0] + 0.05f; + if(levels_new[1] > levels_new[2] - 0.05f) + levels_new[1] = levels_new[2] - 0.05f; { // set the new value but keep the middle proportional const float left = MAX(levels_new[0], RETOUCH_PREVIEW_LVL_MIN); const float right = MIN(levels_new[2], RETOUCH_PREVIEW_LVL_MAX); - const float percentage = (levels_new[1] - levels_new[0]) / (levels_new[2] - levels_new[0]); + const float percentage = + (levels_new[1] - levels_new[0]) / (levels_new[2] - levels_new[0]); levels_new[1] = left + (right - left) * percentage; levels_new[0] = left; levels_new[2] = right; } } -static gboolean rt_shape_is_being_added(dt_iop_module_t *self, const dt_masks_type_t shape_type) +static gboolean rt_shape_is_being_added(dt_iop_module_t *self, + const dt_masks_type_t shape_type) { gboolean being_added = FALSE; if(self->dev->form_gui && self->dev->form_visible - && ((self->dev->form_gui->creation && self->dev->form_gui->creation_module == self) - || (self->dev->form_gui->creation_continuous && self->dev->form_gui->creation_continuous_module == self))) + && ((self->dev->form_gui->creation + && self->dev->form_gui->creation_module == self) + || (self->dev->form_gui->creation_continuous + && self->dev->form_gui->creation_continuous_module == self))) { if(self->dev->form_visible->type & DT_MASKS_GROUP) { @@ -932,8 +1020,10 @@ dt_masks_point_group_t *grpt = (dt_masks_point_group_t *)forms->data; if(grpt) { - const dt_masks_form_t *form = dt_masks_get_from_id(darktable.develop, grpt->formid); - if(form) being_added = (form->type & shape_type); + const dt_masks_form_t *form = + dt_masks_get_from_id(darktable.develop, grpt->formid); + if(form) + being_added = (form->type & shape_type); } } } @@ -943,7 +1033,9 @@ return being_added; } -static gboolean rt_add_shape(GtkWidget *widget, const int creation_continuous, dt_iop_module_t *self) +static gboolean rt_add_shape(GtkWidget *widget, + const int creation_continuous, + dt_iop_module_t *self) { //turn module on (else shape creation won't work) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->off), TRUE); @@ -982,7 +1074,8 @@ // we create the new form dt_masks_form_t *spot = NULL; - if(p->algorithm == DT_IOP_RETOUCH_CLONE || p->algorithm == DT_IOP_RETOUCH_HEAL) + if(p->algorithm == DT_IOP_RETOUCH_CLONE + || p->algorithm == DT_IOP_RETOUCH_HEAL) spot = dt_masks_create(type | DT_MASKS_CLONE); else spot = dt_masks_create(type | DT_MASKS_NON_CLONE); @@ -1013,7 +1106,8 @@ // GUI callbacks //--------------------------------------------------------------------------------- -static void rt_colorpick_color_set_callback(GtkColorButton *widget, dt_iop_module_t *self) +static void rt_colorpick_color_set_callback(GtkColorButton *widget, + dt_iop_module_t *self) { if(darktable.gui->reset) return; dt_iop_retouch_params_t *p = (dt_iop_retouch_params_t *)self->params; @@ -1022,7 +1116,10 @@ dt_iop_color_picker_reset(self, TRUE); GdkRGBA c - = (GdkRGBA){.red = p->fill_color[0], .green = p->fill_color[1], .blue = p->fill_color[2], .alpha = 1.0 }; + = (GdkRGBA){.red = p->fill_color[0], + .green = p->fill_color[1], + .blue = p->fill_color[2], + .alpha = 1.0 }; gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(widget), &c); p->fill_color[0] = c.red; p->fill_color[1] = c.green; @@ -1046,7 +1143,8 @@ #define RT_WDBAR_INSET 0.2f #define lw DT_PIXEL_APPLY_DPI(1.0f) -static void rt_update_wd_bar_labels(dt_iop_retouch_params_t *p, dt_iop_retouch_gui_data_t *g) +static void rt_update_wd_bar_labels(dt_iop_retouch_params_t *p, + dt_iop_retouch_gui_data_t *g) { char text[256]; @@ -1060,19 +1158,23 @@ gtk_label_set_text(g->lbl_merge_from_scale, text); } -static void rt_num_scales_update(const int _num_scales, dt_iop_module_t *self) +static void rt_num_scales_update(const int _num_scales, + dt_iop_module_t *self) { - if(darktable.gui->reset) return; + if(darktable.gui->reset) + return; dt_iop_retouch_params_t *p = (dt_iop_retouch_params_t *)self->params; dt_iop_retouch_gui_data_t *g = (dt_iop_retouch_gui_data_t *)self->gui_data; const int num_scales = CLAMP(_num_scales, 0, RETOUCH_MAX_SCALES); - if(p->num_scales == num_scales) return; + if(p->num_scales == num_scales) + return; p->num_scales = num_scales; - if(p->num_scales < p->merge_from_scale) p->merge_from_scale = p->num_scales; + if(p->num_scales < p->merge_from_scale) + p->merge_from_scale = p->num_scales; rt_update_wd_bar_labels(p, g); @@ -1087,7 +1189,9 @@ dt_iop_retouch_gui_data_t *g = (dt_iop_retouch_gui_data_t *)self->gui_data; const int curr_scale = CLAMP(_curr_scale, 0, RETOUCH_MAX_SCALES + 1); - if(p->curr_scale == curr_scale) return; + + if(p->curr_scale == curr_scale) + return; p->curr_scale = curr_scale; @@ -1097,9 +1201,12 @@ // only if levels values are the default // and a detail scale is displayed dt_iop_gui_enter_critical_section(self); - if(g->displayed_wavelet_scale == 0 && p->preview_levels[0] == RETOUCH_PREVIEW_LVL_MIN - && p->preview_levels[1] == 0.f && p->preview_levels[2] == RETOUCH_PREVIEW_LVL_MAX - && g->preview_auto_levels == 0 && p->curr_scale > 0 && p->curr_scale <= p->num_scales) + if(g->displayed_wavelet_scale == 0 + && p->preview_levels[0] == RETOUCH_PREVIEW_LVL_MIN + && p->preview_levels[1] == 0.f + && p->preview_levels[2] == RETOUCH_PREVIEW_LVL_MAX + && g->preview_auto_levels == 0 + && p->curr_scale > 0 && p->curr_scale <= p->num_scales) { g->preview_auto_levels = 1; g->displayed_wavelet_scale = 1; @@ -1111,7 +1218,8 @@ dt_dev_add_history_item(darktable.develop, self, TRUE); } -static void rt_merge_from_scale_update(const int _merge_from_scale, dt_iop_module_t *self) +static void rt_merge_from_scale_update(const int _merge_from_scale, + dt_iop_module_t *self) { if(darktable.gui->reset) return; @@ -1128,7 +1236,9 @@ dt_dev_add_history_item(darktable.develop, self, TRUE); } -static gboolean rt_wdbar_leave_notify(GtkWidget *widget, GdkEventCrossing *event, dt_iop_module_t *self) +static gboolean rt_wdbar_leave_notify(GtkWidget *widget, + GdkEventCrossing *event, + dt_iop_module_t *self) { dt_iop_retouch_gui_data_t *g = (dt_iop_retouch_gui_data_t *)self->gui_data; @@ -1141,9 +1251,12 @@ return TRUE; } -static gboolean rt_wdbar_button_press(GtkWidget *widget, GdkEventButton *event, dt_iop_module_t *self) +static gboolean rt_wdbar_button_press(GtkWidget *widget, + GdkEventButton *event, + dt_iop_module_t *self) { - if(darktable.gui->reset) return TRUE; + if(darktable.gui->reset) + return TRUE; dt_iop_request_focus(self); @@ -1183,7 +1296,8 @@ { dt_iop_retouch_gui_data_t *g = (dt_iop_retouch_gui_data_t *)self->gui_data; - if(event->button == 1) g->is_dragging = 0; + if(event->button == 1) + g->is_dragging = 0; gtk_widget_queue_draw(g->wd_bar); return TRUE; @@ -1193,9 +1307,11 @@ GdkEventScroll *event, dt_iop_module_t *self) { - if(dt_gui_ignore_scroll(event)) return FALSE; + if(dt_gui_ignore_scroll(event)) + return FALSE; - if(darktable.gui->reset) return TRUE; + if(darktable.gui->reset) + return TRUE; dt_iop_retouch_params_t *p = (dt_iop_retouch_params_t *)self->params; dt_iop_retouch_gui_data_t *g = (dt_iop_retouch_gui_data_t *)self->gui_data; @@ -1203,7 +1319,7 @@ dt_iop_request_focus(self); int delta_y; - if(dt_gui_get_scroll_unit_deltas(event, NULL, &delta_y)) + if(dt_gui_get_scroll_unit_delta(event, &delta_y)) { if(g->lower_margin) // bottom slider rt_num_scales_update(p->num_scales - delta_y, self); @@ -1217,7 +1333,9 @@ return TRUE; } -static gboolean rt_wdbar_motion_notify(GtkWidget *widget, GdkEventMotion *event, dt_iop_module_t *self) +static gboolean rt_wdbar_motion_notify(GtkWidget *widget, + GdkEventMotion *event, + dt_iop_module_t *self) { dt_iop_retouch_gui_data_t *g = (dt_iop_retouch_gui_data_t *)self->gui_data; dt_iop_retouch_params_t *p = (dt_iop_retouch_params_t *)self->params; @@ -1236,19 +1354,24 @@ g->curr_scale = g->wdbar_mouse_x / box_w; g->lower_cursor = g->upper_cursor = FALSE; g->lower_margin = g->upper_margin = FALSE; + if(g->wdbar_mouse_y <= sh) { g->upper_margin = TRUE; - float middle = box_w * (0.5f + (float)p->merge_from_scale); - g->upper_cursor = (g->wdbar_mouse_x >= (middle - inset)) && (g->wdbar_mouse_x <= (middle + inset)); - if(!(g->is_dragging)) g->curr_scale = -1; + const float middle = box_w * (0.5f + (float)p->merge_from_scale); + g->upper_cursor = (g->wdbar_mouse_x >= (middle - inset)) + && (g->wdbar_mouse_x <= (middle + inset)); + if(!(g->is_dragging)) + g->curr_scale = -1; } else if(g->wdbar_mouse_y >= allocation.height - sh) { g->lower_margin = TRUE; - float middle = box_w * (0.5f + (float)p->num_scales); - g->lower_cursor = (g->wdbar_mouse_x >= (middle - inset)) && (g->wdbar_mouse_x <= (middle + inset)); - if(!(g->is_dragging)) g->curr_scale = -1; + const float middle = box_w * (0.5f + (float)p->num_scales); + g->lower_cursor = (g->wdbar_mouse_x >= (middle - inset)) + && (g->wdbar_mouse_x <= (middle + inset)); + if(!(g->is_dragging)) + g->curr_scale = -1; } if(g->is_dragging == DT_IOP_RETOUCH_WDBAR_DRAG_BOTTOM) @@ -1261,17 +1384,21 @@ return TRUE; } -static int rt_scale_has_shapes(dt_iop_retouch_params_t *p, const int scale) +static int rt_scale_has_shapes(dt_iop_retouch_params_t *p, + const int scale) { int has_shapes = 0; for(int i = 0; i < RETOUCH_NO_FORMS && has_shapes == 0; i++) - has_shapes = (dt_is_valid_maskid(p->rt_forms[i].formid) && p->rt_forms[i].scale == scale); + has_shapes = (dt_is_valid_maskid(p->rt_forms[i].formid) + && p->rt_forms[i].scale == scale); return has_shapes; } -static gboolean rt_wdbar_draw(GtkWidget *widget, cairo_t *crf, dt_iop_module_t *self) +static gboolean rt_wdbar_draw(GtkWidget *widget, + cairo_t *crf, + dt_iop_module_t *self) { dt_iop_retouch_gui_data_t *g = (dt_iop_retouch_gui_data_t *)self->gui_data; dt_iop_retouch_params_t *p = (dt_iop_retouch_params_t *)self->params; @@ -1287,12 +1414,15 @@ GdkRGBA color; float middle; - const int first_scale_visible = (g->first_scale_visible > 0) ? g->first_scale_visible : RETOUCH_MAX_SCALES; + const int first_scale_visible = (g->first_scale_visible > 0) + ? g->first_scale_visible + : RETOUCH_MAX_SCALES; GtkAllocation allocation; gtk_widget_get_allocation(widget, &allocation); - cairo_surface_t *cst = dt_cairo_image_surface_create(CAIRO_FORMAT_ARGB32, allocation.width, allocation.height); + cairo_surface_t *cst = + dt_cairo_image_surface_create(CAIRO_FORMAT_ARGB32, allocation.width, allocation.height); cairo_t *cr = cairo_create(cst); // clear background @@ -1340,7 +1470,8 @@ { cairo_set_line_width(cr, lw); gdk_cairo_set_source_rgba(cr, &shapes); - cairo_rectangle(cr, box_w * i + inset + lw / 2.0f, allocation.height - sh, box_w - lw, 2.0f * lw); + cairo_rectangle(cr, box_w * i + inset + lw / 2.0f, + allocation.height - sh, box_w - lw, 2.0f * lw); cairo_fill(cr); } @@ -1355,7 +1486,9 @@ cairo_restore(cr); // dot for the current scale - if(p->curr_scale >= p->merge_from_scale && p->curr_scale <= p->num_scales && p->merge_from_scale > 0) + if(p->curr_scale >= p->merge_from_scale + && p->curr_scale <= p->num_scales + && p->merge_from_scale > 0) color = active; else color = merge_from; @@ -1377,7 +1510,8 @@ if(g->curr_scale == p->num_scales + 1) color = inactive; else color = residual; gdk_cairo_set_source_rgba(cr, &color); - cairo_rectangle(cr, box_w * g->curr_scale + inset + lw, sh + lw, box_w - 2.0f * lw, box_h - 2.0f * lw); + cairo_rectangle(cr, box_w * g->curr_scale + inset + lw, + sh + lw, box_w - 2.0f * lw, box_h - 2.0f * lw); cairo_stroke(cr); } @@ -1388,12 +1522,14 @@ if(g->lower_cursor || g->is_dragging == DT_IOP_RETOUCH_WDBAR_DRAG_BOTTOM) { cairo_set_source_rgb(cr, 0.67, 0.67, 0.67); - dtgtk_cairo_paint_solid_triangle(cr, middle, box_h + 5.0f * lw, mk, mk, CPF_DIRECTION_UP, NULL); + dtgtk_cairo_paint_solid_triangle(cr, middle, box_h + 5.0f * lw, + mk, mk, CPF_DIRECTION_UP, NULL); } else { cairo_set_source_rgb(cr, 0.54, 0.54, 0.54); - dtgtk_cairo_paint_triangle(cr, middle, box_h + 5.0f * lw, mk, mk, CPF_DIRECTION_UP, NULL); + dtgtk_cairo_paint_triangle(cr, middle, box_h + 5.0f * lw, mk, mk, + CPF_DIRECTION_UP, NULL); } // draw merge scales arrow (top arrow) @@ -1401,12 +1537,14 @@ if(g->upper_cursor || g->is_dragging == DT_IOP_RETOUCH_WDBAR_DRAG_TOP) { cairo_set_source_rgb(cr, 0.67, 0.67, 0.67); - dtgtk_cairo_paint_solid_triangle(cr, middle, 3.0f * lw, mk, mk, CPF_DIRECTION_DOWN, NULL); + dtgtk_cairo_paint_solid_triangle(cr, middle, 3.0f * lw, mk, mk, + CPF_DIRECTION_DOWN, NULL); } else { cairo_set_source_rgb(cr, 0.54, 0.54, 0.54); - dtgtk_cairo_paint_triangle(cr, middle, 3.0f * lw, mk, mk, CPF_DIRECTION_DOWN, NULL); + dtgtk_cairo_paint_triangle(cr, middle, 3.0f * lw, mk, mk, + CPF_DIRECTION_DOWN, NULL); } /* push mem surface into widget */ @@ -1418,16 +1556,20 @@ return TRUE; } -static float rt_gslider_scale_callback(GtkWidget *self, float inval, int dir) +static float rt_gslider_scale_callback(GtkWidget *self, + const float inval, + const int dir) { float outval; switch(dir) { case GRADIENT_SLIDER_SET: - outval = (inval - RETOUCH_PREVIEW_LVL_MIN) / (RETOUCH_PREVIEW_LVL_MAX - RETOUCH_PREVIEW_LVL_MIN); + outval = (inval - RETOUCH_PREVIEW_LVL_MIN) + / (RETOUCH_PREVIEW_LVL_MAX - RETOUCH_PREVIEW_LVL_MIN); break; case GRADIENT_SLIDER_GET: - outval = (RETOUCH_PREVIEW_LVL_MAX - RETOUCH_PREVIEW_LVL_MIN) * inval + RETOUCH_PREVIEW_LVL_MIN; + outval = (RETOUCH_PREVIEW_LVL_MAX - RETOUCH_PREVIEW_LVL_MIN) + * inval + RETOUCH_PREVIEW_LVL_MIN; break; default: outval = inval; @@ -1436,24 +1578,29 @@ } -static void rt_gslider_changed(GtkDarktableGradientSlider *gslider, dt_iop_module_t *self) +static void rt_gslider_changed(GtkDarktableGradientSlider *gslider, + dt_iop_module_t *self) { dt_iop_retouch_params_t *p = (dt_iop_retouch_params_t *)self->params; double dlevels[3]; - if(darktable.gui->reset) return; + if(darktable.gui->reset) + return; dtgtk_gradient_slider_multivalue_get_values(gslider, dlevels); - for(int i = 0; i < 3; i++) p->preview_levels[i] = dlevels[i]; + for(int i = 0; i < 3; i++) + p->preview_levels[i] = dlevels[i]; dt_dev_add_history_item(darktable.develop, self, TRUE); } -void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece) +void color_picker_apply(dt_iop_module_t *self, + GtkWidget *picker, + dt_dev_pixelpipe_t *pipe) { dt_iop_retouch_gui_data_t *g = (dt_iop_retouch_gui_data_t *)self->gui_data; dt_iop_retouch_params_t *p = (dt_iop_retouch_params_t *)self->params; @@ -1512,9 +1659,12 @@ g->copied_scale = -1; } - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_copy_scale), g->copied_scale >= 0); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_paste_scale), g->copied_scale >= 0); - gtk_widget_set_sensitive(g->bt_paste_scale, g->copied_scale >= 0); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_copy_scale), + g->copied_scale >= 0); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_paste_scale), + g->copied_scale >= 0); + gtk_widget_set_sensitive(g->bt_paste_scale, + g->copied_scale >= 0); --darktable.gui->reset; @@ -1533,7 +1683,8 @@ dt_iop_retouch_gui_data_t *g = (dt_iop_retouch_gui_data_t *)self->gui_data; // if blend module is displaying mask do not display wavelet scales - if((self->request_mask_display != DT_DEV_PIXELPIPE_DISPLAY_NONE) && !g->mask_display) + if((self->request_mask_display != DT_DEV_PIXELPIPE_DISPLAY_NONE) + && !g->mask_display) { dt_control_log(_("cannot display scales when the blending mask is displayed")); @@ -1543,7 +1694,8 @@ return TRUE; } - if(self->off) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->off), 1); + if(self->off) + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->off), 1); dt_iop_request_focus(self); g->display_wavelet_scale = !gtk_toggle_button_get_active(togglebutton); @@ -1554,9 +1706,12 @@ // only if levels values are the default // and a detail scale is displayed dt_iop_gui_enter_critical_section(self); - if(g->displayed_wavelet_scale == 0 && p->preview_levels[0] == RETOUCH_PREVIEW_LVL_MIN - && p->preview_levels[1] == 0.f && p->preview_levels[2] == RETOUCH_PREVIEW_LVL_MAX - && g->preview_auto_levels == 0 && p->curr_scale > 0 && p->curr_scale <= p->num_scales) + if(g->displayed_wavelet_scale == 0 + && p->preview_levels[0] == RETOUCH_PREVIEW_LVL_MIN + && p->preview_levels[1] == 0.f + && p->preview_levels[2] == RETOUCH_PREVIEW_LVL_MAX + && g->preview_auto_levels == 0 + && p->curr_scale > 0 && p->curr_scale <= p->num_scales) { g->preview_auto_levels = 1; g->displayed_wavelet_scale = 1; @@ -1569,7 +1724,8 @@ return TRUE; } -static void rt_develop_ui_pipe_finished_callback(gpointer instance, gpointer user_data) +static void rt_develop_ui_pipe_finished_callback(gpointer instance, + gpointer user_data) { dt_iop_module_t *self = (dt_iop_module_t *)user_data; dt_iop_retouch_params_t *p = (dt_iop_retouch_params_t *)self->params; @@ -1584,7 +1740,8 @@ dt_iop_gui_leave_critical_section(self); - for(int i = 0; i < 3; i++) p->preview_levels[i] = g->preview_levels[i]; + for(int i = 0; i < 3; i++) + p->preview_levels[i] = g->preview_levels[i]; dt_dev_add_history_item(darktable.develop, self, TRUE); @@ -1592,7 +1749,8 @@ // update the gradient slider double dlevels[3]; - for(int i = 0; i < 3; i++) dlevels[i] = p->preview_levels[i]; + for(int i = 0; i < 3; i++) + dlevels[i] = p->preview_levels[i]; ++darktable.gui->reset; dtgtk_gradient_slider_multivalue_set_values(g->preview_levels_gslider, dlevels); @@ -1629,7 +1787,8 @@ return TRUE; } -static void rt_mask_opacity_callback(GtkWidget *slider, dt_iop_module_t *self) +static void rt_mask_opacity_callback(GtkWidget *slider, + dt_iop_module_t *self) { if(darktable.gui->reset) return; @@ -1643,12 +1802,13 @@ } } -void gui_post_expose (struct dt_iop_module_t *self, - cairo_t *cr, - int32_t width, - int32_t height, - int32_t pointerx, - int32_t pointery) +void gui_post_expose(dt_iop_module_t *self, + cairo_t *cr, + const float width, + const float height, + const float pointerx, + const float pointery, + const float zoom_scale) { dt_iop_retouch_gui_data_t *g = (dt_iop_retouch_gui_data_t *)self->gui_data; @@ -1681,7 +1841,8 @@ dt_iop_retouch_gui_data_t *g = (dt_iop_retouch_gui_data_t *)self->gui_data; //hide all shapes and free if some are in creation - if(darktable.develop->form_gui->creation && darktable.develop->form_gui->creation_module == self) + if(darktable.develop->form_gui->creation + && darktable.develop->form_gui->creation_module == self) dt_masks_change_form_gui(NULL); if(darktable.develop->form_gui->creation_continuous_module == self) @@ -1701,24 +1862,32 @@ dt_iop_color_picker_reset(self, TRUE); - dt_masks_form_t *grp = dt_masks_get_from_id(darktable.develop, self->blend_params->mask_id); + dt_masks_form_t *grp = + dt_masks_get_from_id(darktable.develop, self->blend_params->mask_id); if(grp && (grp->type & DT_MASKS_GROUP) && grp->points) { - const gboolean control_button_pressed = dt_modifier_is(event->state, GDK_CONTROL_MASK); + const gboolean control_button_pressed = + dt_modifier_is(event->state, GDK_CONTROL_MASK); switch(bd->masks_shown) { case DT_MASKS_EDIT_FULL: - bd->masks_shown = control_button_pressed ? DT_MASKS_EDIT_RESTRICTED : DT_MASKS_EDIT_OFF; + bd->masks_shown = control_button_pressed + ? DT_MASKS_EDIT_RESTRICTED + : DT_MASKS_EDIT_OFF; break; case DT_MASKS_EDIT_RESTRICTED: - bd->masks_shown = !control_button_pressed ? DT_MASKS_EDIT_FULL : DT_MASKS_EDIT_OFF; + bd->masks_shown = !control_button_pressed + ? DT_MASKS_EDIT_FULL + : DT_MASKS_EDIT_OFF; break; default: case DT_MASKS_EDIT_OFF: - bd->masks_shown = control_button_pressed ? DT_MASKS_EDIT_RESTRICTED : DT_MASKS_EDIT_FULL; + bd->masks_shown = control_button_pressed + ? DT_MASKS_EDIT_RESTRICTED + : DT_MASKS_EDIT_FULL; break; } } @@ -1728,7 +1897,8 @@ rt_show_forms_for_current_scale(self); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_edit_masks), - (bd->masks_shown != DT_MASKS_EDIT_OFF) && (darktable.develop->gui_module == self)); + (bd->masks_shown != DT_MASKS_EDIT_OFF) + && (darktable.develop->gui_module == self)); --darktable.gui->reset; @@ -1752,10 +1922,14 @@ rt_add_shape(widget, creation_continuous, self); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_circle), rt_shape_is_being_added(self, DT_MASKS_CIRCLE)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_path), rt_shape_is_being_added(self, DT_MASKS_PATH)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_ellipse), rt_shape_is_being_added(self, DT_MASKS_ELLIPSE)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_brush), rt_shape_is_being_added(self, DT_MASKS_BRUSH)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_circle), + rt_shape_is_being_added(self, DT_MASKS_CIRCLE)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_path), + rt_shape_is_being_added(self, DT_MASKS_PATH)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_ellipse), + rt_shape_is_being_added(self, DT_MASKS_ELLIPSE)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_brush), + rt_shape_is_being_added(self, DT_MASKS_BRUSH)); return TRUE; } @@ -1791,22 +1965,31 @@ if(new_algo != p->rt_forms[index].algorithm) { // we restrict changes to clone<->heal and blur<->fill - if((new_algo == DT_IOP_RETOUCH_CLONE && p->rt_forms[index].algorithm != DT_IOP_RETOUCH_HEAL) - || (new_algo == DT_IOP_RETOUCH_HEAL && p->rt_forms[index].algorithm != DT_IOP_RETOUCH_CLONE) - || (new_algo == DT_IOP_RETOUCH_BLUR && p->rt_forms[index].algorithm != DT_IOP_RETOUCH_FILL) - || (new_algo == DT_IOP_RETOUCH_FILL && p->rt_forms[index].algorithm != DT_IOP_RETOUCH_BLUR)) + if((new_algo == DT_IOP_RETOUCH_CLONE + && p->rt_forms[index].algorithm != DT_IOP_RETOUCH_HEAL) + || (new_algo == DT_IOP_RETOUCH_HEAL + && p->rt_forms[index].algorithm != DT_IOP_RETOUCH_CLONE) + || (new_algo == DT_IOP_RETOUCH_BLUR + && p->rt_forms[index].algorithm != DT_IOP_RETOUCH_FILL) + || (new_algo == DT_IOP_RETOUCH_FILL + && p->rt_forms[index].algorithm != DT_IOP_RETOUCH_BLUR)) { accept = FALSE; } } } - if(accept) p->algorithm = new_algo; + if(accept) + p->algorithm = new_algo; - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_clone), (p->algorithm == DT_IOP_RETOUCH_CLONE)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_heal), (p->algorithm == DT_IOP_RETOUCH_HEAL)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_blur), (p->algorithm == DT_IOP_RETOUCH_BLUR)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_fill), (p->algorithm == DT_IOP_RETOUCH_FILL)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_clone), + (p->algorithm == DT_IOP_RETOUCH_CLONE)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_heal), + (p->algorithm == DT_IOP_RETOUCH_HEAL)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_blur), + (p->algorithm == DT_IOP_RETOUCH_BLUR)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_fill), + (p->algorithm == DT_IOP_RETOUCH_FILL)); rt_show_hide_controls(self); @@ -1824,7 +2007,8 @@ dt_control_queue_redraw_center(); } } - else if(darktable.develop->form_gui->creation && (darktable.develop->form_gui->creation_module == self)) + else if(darktable.develop->form_gui->creation + && (darktable.develop->form_gui->creation_module == self)) { dt_iop_request_focus(self); @@ -1879,7 +2063,8 @@ dt_iop_retouch_gui_data_t *g = (dt_iop_retouch_gui_data_t *)module->gui_data; // if blend module is displaying mask do not display it here - if((module->request_mask_display != DT_DEV_PIXELPIPE_DISPLAY_NONE) && !g->mask_display) + if((module->request_mask_display != DT_DEV_PIXELPIPE_DISPLAY_NONE) + && !g->mask_display) { dt_control_log(_("cannot display masks when the blending mask is displayed")); @@ -1889,7 +2074,8 @@ g->mask_display = !gtk_toggle_button_get_active(togglebutton); - if(module->off) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(module->off), 1); + if(module->off) + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(module->off), 1); dt_iop_request_focus(module); dt_iop_refresh_center(module); @@ -1946,9 +2132,9 @@ } } -//-------------------------------------------------------------------------------------------------- +//--------------------------------------------------------------------------------------- // GUI -//-------------------------------------------------------------------------------------------------- +//--------------------------------------------------------------------------------------- void masks_selection_changed(struct dt_iop_module_t *self, const int form_selected_id) { @@ -1975,20 +2161,29 @@ void init_global(dt_iop_module_so_t *module) { const int program = 21; // retouch.cl, from programs.conf - dt_iop_retouch_global_data_t *gd = (dt_iop_retouch_global_data_t *)malloc(sizeof(dt_iop_retouch_global_data_t)); + dt_iop_retouch_global_data_t *gd = + (dt_iop_retouch_global_data_t *)malloc(sizeof(dt_iop_retouch_global_data_t)); module->data = gd; - gd->kernel_retouch_clear_alpha = dt_opencl_create_kernel(program, "retouch_clear_alpha"); - gd->kernel_retouch_copy_alpha = dt_opencl_create_kernel(program, "retouch_copy_alpha"); - gd->kernel_retouch_copy_buffer_to_buffer = dt_opencl_create_kernel(program, "retouch_copy_buffer_to_buffer"); - gd->kernel_retouch_copy_buffer_to_image = dt_opencl_create_kernel(program, "retouch_copy_buffer_to_image"); - gd->kernel_retouch_fill = dt_opencl_create_kernel(program, "retouch_fill"); - gd->kernel_retouch_copy_image_to_buffer_masked - = dt_opencl_create_kernel(program, "retouch_copy_image_to_buffer_masked"); - gd->kernel_retouch_copy_buffer_to_buffer_masked - = dt_opencl_create_kernel(program, "retouch_copy_buffer_to_buffer_masked"); - gd->kernel_retouch_image_rgb2lab = dt_opencl_create_kernel(program, "retouch_image_rgb2lab"); - gd->kernel_retouch_image_lab2rgb = dt_opencl_create_kernel(program, "retouch_image_lab2rgb"); - gd->kernel_retouch_copy_mask_to_alpha = dt_opencl_create_kernel(program, "retouch_copy_mask_to_alpha"); + gd->kernel_retouch_clear_alpha = + dt_opencl_create_kernel(program, "retouch_clear_alpha"); + gd->kernel_retouch_copy_alpha = + dt_opencl_create_kernel(program, "retouch_copy_alpha"); + gd->kernel_retouch_copy_buffer_to_buffer = + dt_opencl_create_kernel(program, "retouch_copy_buffer_to_buffer"); + gd->kernel_retouch_copy_buffer_to_image = + dt_opencl_create_kernel(program, "retouch_copy_buffer_to_image"); + gd->kernel_retouch_fill = + dt_opencl_create_kernel(program, "retouch_fill"); + gd->kernel_retouch_copy_image_to_buffer_masked = + dt_opencl_create_kernel(program, "retouch_copy_image_to_buffer_masked"); + gd->kernel_retouch_copy_buffer_to_buffer_masked = + dt_opencl_create_kernel(program, "retouch_copy_buffer_to_buffer_masked"); + gd->kernel_retouch_image_rgb2lab = + dt_opencl_create_kernel(program, "retouch_image_rgb2lab"); + gd->kernel_retouch_image_lab2rgb = + dt_opencl_create_kernel(program, "retouch_image_lab2rgb"); + gd->kernel_retouch_copy_mask_to_alpha = + dt_opencl_create_kernel(program, "retouch_copy_mask_to_alpha"); } void cleanup_global(dt_iop_module_so_t *module) @@ -2010,9 +2205,11 @@ module->data = NULL; } -void gui_focus(struct dt_iop_module_t *self, gboolean in) +void gui_focus(struct dt_iop_module_t *self, + const gboolean in) { - if(self->enabled && !darktable.develop->image_loading) + if(self->enabled + && !darktable.develop->full.pipe->loading) { dt_iop_retouch_gui_data_t *g = (dt_iop_retouch_gui_data_t *)self->gui_data; @@ -2020,7 +2217,8 @@ { dt_iop_gui_blend_data_t *bd = (dt_iop_gui_blend_data_t *)self->blend_data; //only show shapes if shapes exist - dt_masks_form_t *grp = dt_masks_get_from_id(darktable.develop, self->blend_params->mask_id); + dt_masks_form_t *grp = + dt_masks_get_from_id(darktable.develop, self->blend_params->mask_id); if(grp && (grp->type & DT_MASKS_GROUP) && grp->points) { // got focus, show all shapes @@ -2031,13 +2229,14 @@ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_edit_masks), (bd->masks_shown != DT_MASKS_EDIT_OFF) - && (darktable.develop->gui_module == self)); + && (darktable.develop->gui_module == self)); } } else { // lost focus, hide all shapes and free if some are in creation - if(darktable.develop->form_gui->creation && darktable.develop->form_gui->creation_module == self) + if(darktable.develop->form_gui->creation + && darktable.develop->form_gui->creation_module == self) dt_masks_change_form_gui(NULL); if(darktable.develop->form_gui->creation_continuous_module == self) @@ -2056,28 +2255,29 @@ } // if we are switching between display modes we have to reprocess the main image - if(g->display_wavelet_scale || g->mask_display || g->suppress_mask) + if(g->display_wavelet_scale + || g->mask_display + || g->suppress_mask) dt_iop_refresh_center(self); } } -/** commit is the synch point between core and gui, so it copies params to pipe data. */ -void commit_params(struct dt_iop_module_t *self, dt_iop_params_t *params, dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) -{ - memcpy(piece->data, params, sizeof(dt_iop_retouch_params_t)); -} - -void tiling_callback(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, - const dt_iop_roi_t *roi_in, const dt_iop_roi_t *roi_out, +void tiling_callback(struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + const dt_iop_roi_t *roi_in, + const dt_iop_roi_t *roi_out, struct dt_develop_tiling_t *tiling) { dt_iop_retouch_params_t *p = (dt_iop_retouch_params_t *)self->params; const float require = 2.0f; const float require_cl = 1.0f // in_retouch - + ((p->num_scales > 0) ? 4.0f : 2.0f); // dwt_wavelet_decompose_cl requires 4 buffers, otherwise 2.0f is enough - // FIXME the above are worst case values, we might iterate through the dt_iop_retouch_form_data_t to get - // the largest bounding box + + ((p->num_scales > 0) ? 4.0f : 2.0f); // dwt_wavelet_decompose_cl + // requires 4 buffers, + // otherwise 2.0f is + // enough + + // FIXME the above are worst case values, we might iterate through + // the dt_iop_retouch_form_data_t to get the largest bounding box tiling->factor = 2.0f + require; // input & output buffers + internal requirements tiling->factor_cl = 2.0f + require_cl; @@ -2089,12 +2289,16 @@ tiling->yalign = 1; } -void init_pipe(struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +void init_pipe(struct dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { piece->data = malloc(sizeof(dt_iop_retouch_data_t)); } -void cleanup_pipe(struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +void cleanup_pipe(struct dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { free(piece->data); piece->data = NULL; @@ -2109,7 +2313,8 @@ rt_resynch_params(self); if(darktable.develop->form_gui->creation_continuous - && darktable.develop->form_gui->creation_continuous_module == self && !rt_allow_create_form(self)) + && darktable.develop->form_gui->creation_continuous_module == self + && !rt_allow_create_form(self)) { dt_masks_change_form_gui(NULL); darktable.develop->form_gui->creation_continuous = FALSE; @@ -2117,9 +2322,11 @@ } // update clones count - const dt_masks_form_t *grp = dt_masks_get_from_id(self->dev, self->blend_params->mask_id); + const dt_masks_form_t *grp = + dt_masks_get_from_id(self->dev, self->blend_params->mask_id); guint nb = 0; - if(grp && (grp->type & DT_MASKS_GROUP)) nb = g_list_length(grp->points); + if(grp && (grp->type & DT_MASKS_GROUP)) + nb = g_list_length(grp->points); gchar *str = g_strdup_printf("%u", nb); gtk_label_set_text(g->label_form, str); g_free(str); @@ -2134,16 +2341,24 @@ rt_show_forms_for_current_scale(self); // update algorithm toolbar - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_clone), p->algorithm == DT_IOP_RETOUCH_CLONE); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_blur), p->algorithm == DT_IOP_RETOUCH_BLUR); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_heal), p->algorithm == DT_IOP_RETOUCH_HEAL); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_fill), p->algorithm == DT_IOP_RETOUCH_FILL); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_clone), + p->algorithm == DT_IOP_RETOUCH_CLONE); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_blur), + p->algorithm == DT_IOP_RETOUCH_BLUR); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_heal), + p->algorithm == DT_IOP_RETOUCH_HEAL); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_fill), + p->algorithm == DT_IOP_RETOUCH_FILL); // update shapes toolbar - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_circle), rt_shape_is_being_added(self, DT_MASKS_CIRCLE)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_path), rt_shape_is_being_added(self, DT_MASKS_PATH)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_ellipse), rt_shape_is_being_added(self, DT_MASKS_ELLIPSE)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_brush), rt_shape_is_being_added(self, DT_MASKS_BRUSH)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_circle), + rt_shape_is_being_added(self, DT_MASKS_CIRCLE)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_path), + rt_shape_is_being_added(self, DT_MASKS_PATH)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_ellipse), + rt_shape_is_being_added(self, DT_MASKS_ELLIPSE)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_brush), + rt_shape_is_being_added(self, DT_MASKS_BRUSH)); // update masks related buttons gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_showmask), g->mask_display); @@ -2159,23 +2374,29 @@ rt_display_selected_fill_color(g, p); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_display_wavelet_scale), g->display_wavelet_scale); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_copy_scale), g->copied_scale >= 0); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_paste_scale), g->copied_scale >= 0); - gtk_widget_set_sensitive(g->bt_paste_scale, g->copied_scale >= 0); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_display_wavelet_scale), + g->display_wavelet_scale); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_copy_scale), + g->copied_scale >= 0); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_paste_scale), + g->copied_scale >= 0); + gtk_widget_set_sensitive(g->bt_paste_scale, + g->copied_scale >= 0); // show/hide some fields rt_show_hide_controls(self); // update edit shapes status dt_iop_gui_blend_data_t *bd = (dt_iop_gui_blend_data_t *)self->blend_data; - if(darktable.develop->history_updating) bd->masks_shown = DT_MASKS_EDIT_OFF; + if(darktable.develop->history_updating) + bd->masks_shown = DT_MASKS_EDIT_OFF; //only toggle shape show button if shapes exist if(grp && (grp->type & DT_MASKS_GROUP) && grp->points) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_edit_masks), - (bd->masks_shown != DT_MASKS_EDIT_OFF) && (darktable.develop->gui_module == self)); + (bd->masks_shown != DT_MASKS_EDIT_OFF) + && (darktable.develop->gui_module == self)); } else { @@ -2184,7 +2405,8 @@ // update the gradient slider double dlevels[3]; - for(int i = 0; i < 3; i++) dlevels[i] = p->preview_levels[i]; + for(int i = 0; i < 3; i++) + dlevels[i] = p->preview_levels[i]; dtgtk_gradient_slider_multivalue_set_values(g->preview_levels_gslider, dlevels); } @@ -2216,7 +2438,7 @@ void gui_init(dt_iop_module_t *self) { dt_iop_retouch_gui_data_t *g = IOP_GUI_ALLOC(retouch); - dt_iop_retouch_params_t *p = (dt_iop_retouch_params_t *)self->default_params; + const dt_iop_retouch_params_t *const p = (dt_iop_retouch_params_t *)self->default_params; change_image(self); @@ -2225,52 +2447,70 @@ gtk_box_pack_start(GTK_BOX(hbox_shapes), dt_ui_label_new(_("shapes:")), FALSE, TRUE, 0); g->label_form = GTK_LABEL(gtk_label_new("-1")); - gtk_box_pack_start(GTK_BOX(hbox_shapes), GTK_WIDGET(g->label_form), FALSE, TRUE, DT_PIXEL_APPLY_DPI(5)); - gtk_widget_set_tooltip_text(hbox_shapes, - _("to add a shape select an algorithm and a shape type and click on the image.\n" - "shapes are added to the current scale")); - - g->bt_edit_masks = dt_iop_togglebutton_new(self, N_("editing"), N_("show and edit shapes on the current scale"), - N_("show and edit shapes in restricted mode"), - G_CALLBACK(rt_edit_masks_callback), TRUE, 0, 0, - dtgtk_cairo_paint_masks_eye, hbox_shapes); - - g->bt_brush = dt_iop_togglebutton_new(self, N_("shapes"), N_("add brush"), N_("add multiple brush strokes"), - G_CALLBACK(rt_add_shape_callback), TRUE, 0, 0, - dtgtk_cairo_paint_masks_brush, hbox_shapes); - - g->bt_path = dt_iop_togglebutton_new(self, N_("shapes"), N_("add path"), N_("add multiple paths"), - G_CALLBACK(rt_add_shape_callback), TRUE, 0, 0, - dtgtk_cairo_paint_masks_path, hbox_shapes); - - g->bt_ellipse = dt_iop_togglebutton_new(self, N_("shapes"), N_("add ellipse"), N_("add multiple ellipses"), - G_CALLBACK(rt_add_shape_callback), TRUE, 0, 0, - dtgtk_cairo_paint_masks_ellipse, hbox_shapes); - - g->bt_circle = dt_iop_togglebutton_new(self, N_("shapes"), N_("add circle"), N_("add multiple circles"), - G_CALLBACK(rt_add_shape_callback), TRUE, 0, 0, - dtgtk_cairo_paint_masks_circle, hbox_shapes); + gtk_box_pack_start(GTK_BOX(hbox_shapes), + GTK_WIDGET(g->label_form), FALSE, TRUE, DT_PIXEL_APPLY_DPI(5)); + gtk_widget_set_tooltip_text + (hbox_shapes, + _("to add a shape select an algorithm and a shape type and click on the image.\n" + "shapes are added to the current scale")); + + g->bt_edit_masks = dt_iop_togglebutton_new + (self, N_("editing"), + N_("show and edit shapes on the current scale"), + N_("show and edit shapes in restricted mode"), + G_CALLBACK(rt_edit_masks_callback), TRUE, 0, 0, + dtgtk_cairo_paint_masks_eye, hbox_shapes); + + g->bt_brush = dt_iop_togglebutton_new + (self, N_("shapes"), + N_("add brush"), N_("add multiple brush strokes"), + G_CALLBACK(rt_add_shape_callback), TRUE, 0, 0, + dtgtk_cairo_paint_masks_brush, hbox_shapes); + + g->bt_path = dt_iop_togglebutton_new + (self, N_("shapes"), N_("add path"), N_("add multiple paths"), + G_CALLBACK(rt_add_shape_callback), TRUE, 0, 0, + dtgtk_cairo_paint_masks_path, hbox_shapes); + + g->bt_ellipse = dt_iop_togglebutton_new + (self, N_("shapes"), N_("add ellipse"), N_("add multiple ellipses"), + G_CALLBACK(rt_add_shape_callback), TRUE, 0, 0, + dtgtk_cairo_paint_masks_ellipse, hbox_shapes); + + g->bt_circle = dt_iop_togglebutton_new + (self, N_("shapes"), N_("add circle"), N_("add multiple circles"), + G_CALLBACK(rt_add_shape_callback), TRUE, 0, 0, + dtgtk_cairo_paint_masks_circle, hbox_shapes); // algorithm toolbar GtkWidget *hbox_algo = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(hbox_algo), dt_ui_label_new(_("algorithms:")), FALSE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(hbox_algo), + dt_ui_label_new(_("algorithms:")), FALSE, TRUE, 0); g->bt_blur = dt_iop_togglebutton_new( - self, N_("tools"), N_("activate blur tool"), N_("change algorithm for current form"), - G_CALLBACK(rt_select_algorithm_callback), TRUE, 0, 0, dtgtk_cairo_paint_tool_blur, hbox_algo); + self, N_("tools"), N_("activate blur tool"), + N_("change algorithm for current form"), + G_CALLBACK(rt_select_algorithm_callback), + TRUE, 0, 0, dtgtk_cairo_paint_tool_blur, hbox_algo); g->bt_fill = dt_iop_togglebutton_new( - self, N_("tools"), N_("activate fill tool"), N_("change algorithm for current form"), - G_CALLBACK(rt_select_algorithm_callback), TRUE, 0, 0, dtgtk_cairo_paint_tool_fill, hbox_algo); + self, N_("tools"), N_("activate fill tool"), + N_("change algorithm for current form"), + G_CALLBACK(rt_select_algorithm_callback), + TRUE, 0, 0, dtgtk_cairo_paint_tool_fill, hbox_algo); g->bt_clone = dt_iop_togglebutton_new( - self, N_("tools"), N_("activate cloning tool"), N_("change algorithm for current form"), - G_CALLBACK(rt_select_algorithm_callback), TRUE, 0, 0, dtgtk_cairo_paint_tool_clone, hbox_algo); + self, N_("tools"), N_("activate cloning tool"), + N_("change algorithm for current form"), + G_CALLBACK(rt_select_algorithm_callback), + TRUE, 0, 0, dtgtk_cairo_paint_tool_clone, hbox_algo); g->bt_heal = dt_iop_togglebutton_new( - self, N_("tools"), N_("activate healing tool"), N_("change algorithm for current form"), - G_CALLBACK(rt_select_algorithm_callback), TRUE, 0, 0, dtgtk_cairo_paint_tool_heal, hbox_algo); + self, N_("tools"), N_("activate healing tool"), + N_("change algorithm for current form"), + G_CALLBACK(rt_select_algorithm_callback), + TRUE, 0, 0, dtgtk_cairo_paint_tool_heal, hbox_algo); // overwrite tooltip ourself to handle shift+click gchar *tt2 = g_strdup_printf("%s\n%s", _("ctrl+click to change tool for current form"), @@ -2293,71 +2533,92 @@ GtkWidget *grid_wd_labels = gtk_grid_new(); gtk_grid_set_column_homogeneous(GTK_GRID(grid_wd_labels), FALSE); - gtk_grid_attach(GTK_GRID(grid_wd_labels), dt_ui_label_new(_("scales:")), 0, 0, 1, 1); + gtk_grid_attach(GTK_GRID(grid_wd_labels), + dt_ui_label_new(_("scales:")), 0, 0, 1, 1); g->lbl_num_scales = GTK_LABEL(dt_ui_label_new(NULL)); gtk_label_set_width_chars(g->lbl_num_scales, 2); - gtk_grid_attach(GTK_GRID(grid_wd_labels), GTK_WIDGET(g->lbl_num_scales), 1, 0, 1, 1); + gtk_grid_attach(GTK_GRID(grid_wd_labels), + GTK_WIDGET(g->lbl_num_scales), 1, 0, 1, 1); - gtk_grid_attach(GTK_GRID(grid_wd_labels), dt_ui_label_new(_("current:")), 0, 1, 1, 1); + gtk_grid_attach(GTK_GRID(grid_wd_labels), + dt_ui_label_new(_("current:")), 0, 1, 1, 1); g->lbl_curr_scale = GTK_LABEL(dt_ui_label_new(NULL)); gtk_label_set_width_chars(g->lbl_curr_scale, 2); - gtk_grid_attach(GTK_GRID(grid_wd_labels), GTK_WIDGET(g->lbl_curr_scale), 1, 1, 1, 1); + gtk_grid_attach(GTK_GRID(grid_wd_labels), + GTK_WIDGET(g->lbl_curr_scale), 1, 1, 1, 1); - gtk_grid_attach(GTK_GRID(grid_wd_labels), dt_ui_label_new(_("merge from:")), 0, 2, 1, 1); + gtk_grid_attach(GTK_GRID(grid_wd_labels), + dt_ui_label_new(_("merge from:")), 0, 2, 1, 1); g->lbl_merge_from_scale = GTK_LABEL(dt_ui_label_new(NULL)); gtk_label_set_width_chars(g->lbl_merge_from_scale, 2); - gtk_grid_attach(GTK_GRID(grid_wd_labels), GTK_WIDGET(g->lbl_merge_from_scale), 1, 2, 1, 1); + gtk_grid_attach(GTK_GRID(grid_wd_labels), + GTK_WIDGET(g->lbl_merge_from_scale), 1, 2, 1, 1); // wavelet decompose bar g->wd_bar = gtk_drawing_area_new(); - gtk_widget_set_tooltip_text(g->wd_bar, _("top slider adjusts where the merge scales start\n" - "bottom slider adjusts the number of scales\n" - "dot indicates the current scale\n" - "top line indicates that the scale is visible at current zoom level\n" - "bottom line indicates that the scale has shapes on it")); - g_signal_connect(G_OBJECT(g->wd_bar), "draw", G_CALLBACK(rt_wdbar_draw), self); - g_signal_connect(G_OBJECT(g->wd_bar), "motion-notify-event", G_CALLBACK(rt_wdbar_motion_notify), self); - g_signal_connect(G_OBJECT(g->wd_bar), "leave-notify-event", G_CALLBACK(rt_wdbar_leave_notify), self); - g_signal_connect(G_OBJECT(g->wd_bar), "button-press-event", G_CALLBACK(rt_wdbar_button_press), self); - g_signal_connect(G_OBJECT(g->wd_bar), "button-release-event", G_CALLBACK(rt_wdbar_button_release), self); - g_signal_connect(G_OBJECT(g->wd_bar), "scroll-event", G_CALLBACK(rt_wdbar_scrolled), self); - gtk_widget_add_events(GTK_WIDGET(g->wd_bar), GDK_POINTER_MOTION_MASK - | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - | GDK_LEAVE_NOTIFY_MASK | darktable.gui->scroll_mask); + gtk_widget_set_tooltip_text + (g->wd_bar, + _("top slider adjusts where the merge scales start\n" + "bottom slider adjusts the number of scales\n" + "dot indicates the current scale\n" + "top line indicates that the scale is visible at current zoom level\n" + "bottom line indicates that the scale has shapes on it")); + + g_signal_connect(G_OBJECT(g->wd_bar), "draw", + G_CALLBACK(rt_wdbar_draw), self); + g_signal_connect(G_OBJECT(g->wd_bar), "motion-notify-event", + G_CALLBACK(rt_wdbar_motion_notify), self); + g_signal_connect(G_OBJECT(g->wd_bar), "leave-notify-event", + G_CALLBACK(rt_wdbar_leave_notify), self); + g_signal_connect(G_OBJECT(g->wd_bar), "button-press-event", + G_CALLBACK(rt_wdbar_button_press), self); + g_signal_connect(G_OBJECT(g->wd_bar), "button-release-event", + G_CALLBACK(rt_wdbar_button_release), self); + g_signal_connect(G_OBJECT(g->wd_bar), "scroll-event", + G_CALLBACK(rt_wdbar_scrolled), self); + gtk_widget_add_events(GTK_WIDGET(g->wd_bar), + GDK_POINTER_MOTION_MASK + | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + | GDK_LEAVE_NOTIFY_MASK | darktable.gui->scroll_mask); gtk_widget_set_size_request(g->wd_bar, -1, DT_PIXEL_APPLY_DPI(40)); // toolbar display current scale / cut&paste / suppress&display masks GtkWidget *hbox_scale = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5); // display & suppress masks - g->bt_showmask = dt_iop_togglebutton_new(self, N_("editing"), N_("display masks"), NULL, - G_CALLBACK(rt_showmask_callback), TRUE, 0, 0, - dtgtk_cairo_paint_showmask, hbox_scale); + g->bt_showmask = dt_iop_togglebutton_new + (self, N_("editing"), N_("display masks"), NULL, + G_CALLBACK(rt_showmask_callback), TRUE, 0, 0, + dtgtk_cairo_paint_showmask, hbox_scale); dt_gui_add_class(g->bt_showmask, "dt_transparent_background"); - g->bt_suppress = dt_iop_togglebutton_new(self, N_("editing"), N_("temporarily switch off shapes"), NULL, - G_CALLBACK(rt_suppress_callback), TRUE, 0, 0, - dtgtk_cairo_paint_eye_toggle, hbox_scale); + g->bt_suppress = dt_iop_togglebutton_new + (self, N_("editing"), N_("temporarily switch off shapes"), NULL, + G_CALLBACK(rt_suppress_callback), TRUE, 0, 0, + dtgtk_cairo_paint_eye_toggle, hbox_scale); dt_gui_add_class(g->bt_suppress, "dt_transparent_background"); gtk_box_pack_end(GTK_BOX(hbox_scale), gtk_grid_new(), TRUE, TRUE, 0); // copy/paste shapes - g->bt_paste_scale = dt_iop_togglebutton_new(self, N_("editing"), N_("paste cut shapes to current scale"), NULL, - G_CALLBACK(rt_copypaste_scale_callback), TRUE, 0, 0, - dtgtk_cairo_paint_paste_forms, hbox_scale); - - g->bt_copy_scale = dt_iop_togglebutton_new(self, N_("editing"), N_("cut shapes from current scale"), NULL, - G_CALLBACK(rt_copypaste_scale_callback), TRUE, 0, 0, - dtgtk_cairo_paint_cut_forms, hbox_scale); + g->bt_paste_scale = dt_iop_togglebutton_new + (self, N_("editing"), N_("paste cut shapes to current scale"), NULL, + G_CALLBACK(rt_copypaste_scale_callback), TRUE, 0, 0, + dtgtk_cairo_paint_paste_forms, hbox_scale); + + g->bt_copy_scale = dt_iop_togglebutton_new + (self, N_("editing"), N_("cut shapes from current scale"), NULL, + G_CALLBACK(rt_copypaste_scale_callback), TRUE, 0, 0, + dtgtk_cairo_paint_cut_forms, hbox_scale); gtk_box_pack_end(GTK_BOX(hbox_scale), gtk_grid_new(), TRUE, TRUE, 0); // display final image/current scale - g->bt_display_wavelet_scale = dt_iop_togglebutton_new(self, N_("editing"), N_("display wavelet scale"), NULL, - G_CALLBACK(rt_display_wavelet_scale_callback), TRUE, 0, 0, - dtgtk_cairo_paint_display_wavelet_scale, hbox_scale); + g->bt_display_wavelet_scale = dt_iop_togglebutton_new + (self, N_("editing"), N_("display wavelet scale"), NULL, + G_CALLBACK(rt_display_wavelet_scale_callback), TRUE, 0, 0, + dtgtk_cairo_paint_display_wavelet_scale, hbox_scale); dt_gui_add_class(g->bt_display_wavelet_scale, "dt_transparent_background"); // preview single scale @@ -2372,26 +2633,37 @@ #define NEUTRAL_GRAY 0.5 static const GdkRGBA _gradient_L[] = { { 0, 0, 0, 1.0 }, { NEUTRAL_GRAY, NEUTRAL_GRAY, NEUTRAL_GRAY, 1.0 } }; - g->preview_levels_gslider = DTGTK_GRADIENT_SLIDER_MULTIVALUE( - dtgtk_gradient_slider_multivalue_new_with_color_and_name(_gradient_L[0], _gradient_L[1], 3, "preview-levels")); - gtk_widget_set_tooltip_text(GTK_WIDGET(g->preview_levels_gslider), _("adjust preview levels")); - dtgtk_gradient_slider_multivalue_set_marker(g->preview_levels_gslider, GRADIENT_SLIDER_MARKER_LOWER_OPEN_BIG, 0); - dtgtk_gradient_slider_multivalue_set_marker(g->preview_levels_gslider, GRADIENT_SLIDER_MARKER_LOWER_FILLED_BIG, 1); - dtgtk_gradient_slider_multivalue_set_marker(g->preview_levels_gslider, GRADIENT_SLIDER_MARKER_LOWER_OPEN_BIG, 2); + g->preview_levels_gslider = + DTGTK_GRADIENT_SLIDER_MULTIVALUE + (dtgtk_gradient_slider_multivalue_new_with_color_and_name + (_gradient_L[0], _gradient_L[1], 3, "preview-levels")); + gtk_widget_set_tooltip_text(GTK_WIDGET(g->preview_levels_gslider), + _("adjust preview levels")); + dtgtk_gradient_slider_multivalue_set_marker(g->preview_levels_gslider, + GRADIENT_SLIDER_MARKER_LOWER_OPEN_BIG, 0); + dtgtk_gradient_slider_multivalue_set_marker(g->preview_levels_gslider, + GRADIENT_SLIDER_MARKER_LOWER_FILLED_BIG, 1); + dtgtk_gradient_slider_multivalue_set_marker(g->preview_levels_gslider, + GRADIENT_SLIDER_MARKER_LOWER_OPEN_BIG, 2); (g->preview_levels_gslider)->scale_callback = rt_gslider_scale_callback; - double vdefault[3] = {RETOUCH_PREVIEW_LVL_MIN, (RETOUCH_PREVIEW_LVL_MIN + RETOUCH_PREVIEW_LVL_MAX) / 2.0, RETOUCH_PREVIEW_LVL_MAX}; + double vdefault[3] = {RETOUCH_PREVIEW_LVL_MIN, + (RETOUCH_PREVIEW_LVL_MIN + RETOUCH_PREVIEW_LVL_MAX) / 2.0, + RETOUCH_PREVIEW_LVL_MAX}; dtgtk_gradient_slider_multivalue_set_values(g->preview_levels_gslider, vdefault); dtgtk_gradient_slider_multivalue_set_resetvalues(g->preview_levels_gslider, vdefault); (g->preview_levels_gslider)->markers_type = PROPORTIONAL_MARKERS; (g->preview_levels_gslider)->min_spacing = 0.05; - g_signal_connect(G_OBJECT(g->preview_levels_gslider), "value-changed", G_CALLBACK(rt_gslider_changed), self); + g_signal_connect(G_OBJECT(g->preview_levels_gslider), "value-changed", + G_CALLBACK(rt_gslider_changed), self); - gtk_box_pack_start(GTK_BOX(prev_lvl), GTK_WIDGET(g->preview_levels_gslider), TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(prev_lvl), + GTK_WIDGET(g->preview_levels_gslider), TRUE, TRUE, 0); // auto-levels button - g->bt_auto_levels = dt_iop_togglebutton_new(self, N_("editing"), N_("auto levels"), NULL, - G_CALLBACK(rt_auto_levels_callback), TRUE, 0, 0, - dtgtk_cairo_paint_auto_levels, prev_lvl); + g->bt_auto_levels = dt_iop_togglebutton_new + (self, N_("editing"), N_("auto levels"), NULL, + G_CALLBACK(rt_auto_levels_callback), TRUE, 0, 0, + dtgtk_cairo_paint_auto_levels, prev_lvl); gtk_box_pack_start(GTK_BOX(g->vbox_preview_scale), prev_lvl, TRUE, TRUE, 0); @@ -2401,19 +2673,25 @@ gtk_label_set_ellipsize(GTK_LABEL(label1), PANGO_ELLIPSIZE_START); gtk_box_pack_start(GTK_BOX(hbox_shape_sel), label1, FALSE, TRUE, 0); g->label_form_selected = GTK_LABEL(gtk_label_new("-1")); - gtk_widget_set_tooltip_text(hbox_shape_sel, - _("click on a shape to select it,\nto unselect click on an empty space")); - gtk_box_pack_start(GTK_BOX(hbox_shape_sel), GTK_WIDGET(g->label_form_selected), FALSE, TRUE, 0); + gtk_widget_set_tooltip_text + (hbox_shape_sel, + _("click on a shape to select it,\nto unselect click on an empty space")); + gtk_box_pack_start(GTK_BOX(hbox_shape_sel), + GTK_WIDGET(g->label_form_selected), FALSE, TRUE, 0); // fill properties g->vbox_fill = self->widget = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); g->cmb_fill_mode = dt_bauhaus_combobox_from_params(self, "fill_mode"); - gtk_widget_set_tooltip_text(g->cmb_fill_mode, _("erase the detail or fills with chosen color")); + gtk_widget_set_tooltip_text + (g->cmb_fill_mode, _("erase the detail or fills with chosen color")); // color for fill algorithm GdkRGBA color - = (GdkRGBA){.red = p->fill_color[0], .green = p->fill_color[1], .blue = p->fill_color[2], .alpha = 1.0 }; + = (GdkRGBA){.red = p->fill_color[0], + .green = p->fill_color[1], + .blue = p->fill_color[2], + .alpha = 1.0 }; g->hbox_color_pick = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); GtkWidget *lbl_fill_color = dt_ui_label_new(_("fill color: ")); @@ -2423,20 +2701,27 @@ gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(g->colorpick), FALSE); gtk_color_button_set_title(GTK_COLOR_BUTTON(g->colorpick), _("select fill color")); gtk_widget_set_tooltip_text(g->colorpick, _("select fill color")); - g_signal_connect(G_OBJECT(g->colorpick), "color-set", G_CALLBACK(rt_colorpick_color_set_callback), self); - gtk_box_pack_start(GTK_BOX(g->hbox_color_pick), GTK_WIDGET(g->colorpick), TRUE, TRUE, 0); - - g->colorpicker = dt_color_picker_new(self, DT_COLOR_PICKER_POINT | DT_COLOR_PICKER_IO, g->hbox_color_pick); + g_signal_connect(G_OBJECT(g->colorpick), "color-set", + G_CALLBACK(rt_colorpick_color_set_callback), self); + gtk_box_pack_start(GTK_BOX(g->hbox_color_pick), + GTK_WIDGET(g->colorpick), TRUE, TRUE, 0); + + g->colorpicker = dt_color_picker_new + (self, + DT_COLOR_PICKER_POINT | DT_COLOR_PICKER_IO, + g->hbox_color_pick); gtk_widget_set_tooltip_text(g->colorpicker, _("pick fill color from image")); - dt_action_define_iop(self, NULL, N_("pick fill color"), g->colorpicker, &dt_action_def_toggle); + dt_action_define_iop(self, NULL, N_("pick fill color"), + g->colorpicker, &dt_action_def_toggle); gtk_box_pack_start(GTK_BOX(g->vbox_fill), g->hbox_color_pick, TRUE, TRUE, 0); g->sl_fill_brightness = dt_bauhaus_slider_from_params(self, "fill_brightness"); dt_bauhaus_slider_set_digits(g->sl_fill_brightness, 4); dt_bauhaus_slider_set_format(g->sl_fill_brightness, "%"); - gtk_widget_set_tooltip_text(g->sl_fill_brightness, - _("adjusts color brightness to fine-tune it. works with erase as well")); + gtk_widget_set_tooltip_text + (g->sl_fill_brightness, + _("adjusts color brightness to fine-tune it. works with erase as well")); // blur properties g->vbox_blur = self->widget = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5); @@ -2452,8 +2737,10 @@ g->sl_mask_opacity = dt_bauhaus_slider_new_with_range(self, 0.0, 1.0, 0, 1., 3); dt_bauhaus_widget_set_label(g->sl_mask_opacity, NULL, N_("mask opacity")); dt_bauhaus_slider_set_format(g->sl_mask_opacity, "%"); - gtk_widget_set_tooltip_text(g->sl_mask_opacity, _("set the opacity on the selected shape")); - g_signal_connect(G_OBJECT(g->sl_mask_opacity), "value-changed", G_CALLBACK(rt_mask_opacity_callback), self); + gtk_widget_set_tooltip_text(g->sl_mask_opacity, + _("set the opacity on the selected shape")); + g_signal_connect(G_OBJECT(g->sl_mask_opacity), "value-changed", + G_CALLBACK(rt_mask_opacity_callback), self); // start building top level widget self->widget = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); @@ -2494,8 +2781,9 @@ gtk_box_pack_start(GTK_BOX(self->widget), g->sl_mask_opacity, TRUE, TRUE, 0); /* add signal handler for preview pipe finish to redraw the preview */ - DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_DEVELOP_UI_PIPE_FINISHED, - G_CALLBACK(rt_develop_ui_pipe_finished_callback), self); + DT_DEBUG_CONTROL_SIGNAL_CONNECT + (darktable.signals, DT_SIGNAL_DEVELOP_UI_PIPE_FINISHED, + G_CALLBACK(rt_develop_ui_pipe_finished_callback), self); } void gui_reset(struct dt_iop_module_t *self) @@ -2516,7 +2804,9 @@ void gui_cleanup(dt_iop_module_t *self) { - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(rt_develop_ui_pipe_finished_callback), self); + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT + (darktable.signals, + G_CALLBACK(rt_develop_ui_pipe_finished_callback), self); IOP_GUI_FREE; } @@ -2566,8 +2856,14 @@ } // is the form outside of the roi? - fw *= roi_in->scale, fh *= roi_in->scale, fl *= roi_in->scale, ft *= roi_in->scale; - if(ft >= roi_in->y + roi_in->height || ft + fh <= roi_in->y || fl >= roi_in->x + roi_in->width + fw *= roi_in->scale; + fh *= roi_in->scale; + fl *= roi_in->scale; + ft *= roi_in->scale; + + if(ft >= roi_in->y + roi_in->height + || ft + fh <= roi_in->y + || fl >= roi_in->x + roi_in->width || fl + fw <= roi_in->x) { continue; @@ -2587,11 +2883,16 @@ { if(index >= 0) { - const int overlap = ceilf(4 * (p->rt_forms[index].blur_radius * roi_in->scale / piece->iscale)); - if(roiy > ft) roiy = MAX(roiy - overlap, ft); - if(roix > fl) roix = MAX(roix - overlap, fl); - if(roir < fl + fw) roir = MAX(roir + overlap, fl + fw); - if(roib < ft + fh) roib = MAX(roib + overlap, ft + fh); + const int overlap = + ceilf(4 * (p->rt_forms[index].blur_radius * roi_in->scale / piece->iscale)); + if(roiy > ft) + roiy = MAX(roiy - overlap, ft); + if(roix > fl) + roix = MAX(roix - overlap, fl); + if(roir < fl + fw) + roir = MAX(roir + overlap, fl + fw); + if(roib < ft + fh) + roib = MAX(roib + overlap, ft + fh); } } // heal and clone need both source and destination areas @@ -2644,6 +2945,7 @@ // We iterate through all forms const dt_masks_form_t *grp = dt_masks_get_from_id_ext(piece->pipe->forms, bp->mask_id); + if(grp && (grp->type & DT_MASKS_GROUP)) { for(const GList *forms = grp->points; forms; forms = g_list_next(forms)) @@ -2675,7 +2977,10 @@ { continue; } - fw *= roi_in->scale, fh *= roi_in->scale, fl *= roi_in->scale, ft *= roi_in->scale; + fw *= roi_in->scale; + fh *= roi_in->scale; + fl *= roi_in->scale; + ft *= roi_in->scale; // get the destination area int fl_dest, ft_dest; @@ -2690,7 +2995,9 @@ fl_dest = fl + dx; // check if the destination of this form intersects the source of the formid_src - const int intersects = !(ft_dest + fh < ft_src || ft_src + fh_src < ft_dest || fl_dest + fw < fl_src + const int intersects = !(ft_dest + fh < ft_src + || ft_src + fh_src < ft_dest + || fl_dest + fw < fl_src || fl_src + fw_src < fl_dest); if(intersects) { @@ -2762,19 +3069,27 @@ // get the source area int fl_src, ft_src, fw_src, fh_src; - if(!dt_masks_get_source_area(self, piece, form, &fw_src, &fh_src, &fl_src, &ft_src)) + if(!dt_masks_get_source_area(self, piece, form, + &fw_src, &fh_src, &fl_src, &ft_src)) { continue; } - fw_src *= roi_in->scale, fh_src *= roi_in->scale, fl_src *= roi_in->scale, ft_src *= roi_in->scale; + fw_src *= roi_in->scale; + fh_src *= roi_in->scale; + fl_src *= roi_in->scale; + ft_src *= roi_in->scale; // we only want to process forms already in roi_in const int intersects - = !(roib < ft_src || ft_src + fh_src < roiy || roir < fl_src || fl_src + fw_src < roix); + = !(roib < ft_src + || ft_src + fh_src < roiy + || roir < fl_src + || fl_src + fw_src < roix); if(intersects) - rt_extend_roi_in_from_source_clones(self, piece, roi_in, formid, fl_src, ft_src, fw_src, fh_src, &roir, - &roib, &roix, &roiy); + rt_extend_roi_in_from_source_clones(self, piece, roi_in, + formid, fl_src, ft_src, fw_src, fh_src, + &roir, &roib, &roix, &roiy); } } } @@ -2802,7 +3117,10 @@ int roir_prev = -1, roib_prev = -1, roix_prev = -1, roiy_prev = -1; - while(roir != roir_prev || roib != roib_prev || roix != roix_prev || roiy != roiy_prev) + while(roir != roir_prev + || roib != roib_prev + || roix != roix_prev + || roiy != roiy_prev) { roir_prev = roir; roib_prev = roib; @@ -2813,7 +3131,9 @@ } // now we set the values - const float scwidth = piece->buf_in.width * roi_in->scale, scheight = piece->buf_in.height * roi_in->scale; + const float scwidth = piece->buf_in.width * roi_in->scale; + const float scheight = piece->buf_in.height * roi_in->scale; + roi_in->x = CLAMP(roix, 0, scwidth - 1); roi_in->y = CLAMP(roiy, 0, scheight - 1); roi_in->width = CLAMP(roir - roi_in->x, 1, scwidth + .5f - roi_in->x); @@ -2824,7 +3144,9 @@ // process //-------------------------------------------------------------------------------------------------- -static void image_rgb2lab(float *img_src, const int width, const int height) +static void image_rgb2lab(float *img_src, + const int width, + const int height) { const size_t npixels = (size_t)width * height; @@ -2841,7 +3163,9 @@ } } -static void image_lab2rgb(float *img_src, const int width, const int height) +static void image_lab2rgb(float *img_src, + const int width, + const int height) { const size_t npixels = (size_t)width * height; @@ -2871,7 +3195,8 @@ float l_min = FLT_MAX; float l_sum = 0.f; int count = 0; - const dt_iop_order_iccprofile_info_t *const work_profile = dt_ioppr_get_pipe_work_profile_info(piece->pipe); + const dt_iop_order_iccprofile_info_t *const work_profile = + dt_ioppr_get_pipe_work_profile_info(piece->pipe); #ifdef _OPENMP #pragma omp parallel for default(none) \ @@ -2918,13 +3243,15 @@ const float levels[3]) { const int size = width * height * ch; - const dt_iop_order_iccprofile_info_t *const work_profile = dt_ioppr_get_pipe_work_profile_info(piece->pipe); + const dt_iop_order_iccprofile_info_t *const work_profile = + dt_ioppr_get_pipe_work_profile_info(piece->pipe); const float left = levels[0]; const float middle = levels[1]; const float right = levels[2]; - if(left == RETOUCH_PREVIEW_LVL_MIN && middle == 0.f && right == RETOUCH_PREVIEW_LVL_MAX) return; + if(left == RETOUCH_PREVIEW_LVL_MIN && middle == 0.f + && right == RETOUCH_PREVIEW_LVL_MAX) return; const float delta = (right - left) / 2.0f; const float mid = left + delta; @@ -2941,9 +3268,12 @@ { if(work_profile) { - dt_ioppr_rgb_matrix_to_lab(img_src + i, img_src + i, work_profile->matrix_in_transposed, - work_profile->lut_in, work_profile->unbounded_coeffs_in, - work_profile->lutsize, work_profile->nonlinearlut); + dt_ioppr_rgb_matrix_to_lab(img_src + i, img_src + i, + work_profile->matrix_in_transposed, + work_profile->lut_in, + work_profile->unbounded_coeffs_in, + work_profile->lutsize, + work_profile->nonlinearlut); } else { @@ -2970,9 +3300,12 @@ if(work_profile) { - dt_ioppr_lab_to_rgb_matrix(img_src + i, img_src + i, work_profile->matrix_out_transposed, - work_profile->lut_out, work_profile->unbounded_coeffs_out, - work_profile->lutsize, work_profile->nonlinearlut);; + dt_ioppr_lab_to_rgb_matrix(img_src + i, img_src + i, + work_profile->matrix_out_transposed, + work_profile->lut_out, + work_profile->unbounded_coeffs_out, + work_profile->lutsize, + work_profile->nonlinearlut);; } else { @@ -3000,12 +3333,19 @@ const int padding, dt_iop_roi_t *roi_dest) { - const int x_from = MAX(MAX((roi_1->x + 1 - padding), roi_2->x), (roi_2->x + dx)); + const int x_from = MAX(MAX((roi_1->x + 1 - padding), + roi_2->x), + (roi_2->x + dx)); const int x_to - = MIN(MIN((roi_1->x + roi_1->width + 1 + padding), roi_2->x + roi_2->width), (roi_2->x + roi_2->width + dx)); - - const int y_from = MAX(MAX((roi_1->y + 1 - padding), roi_2->y), (roi_2->y + dy)); - const int y_to = MIN(MIN((roi_1->y + roi_1->height + 1 + padding), (roi_2->y + roi_2->height)), + = MIN(MIN((roi_1->x + roi_1->width + 1 + padding), + roi_2->x + roi_2->width), + (roi_2->x + roi_2->width + dx)); + + const int y_from = MAX(MAX((roi_1->y + 1 - padding), + roi_2->y), + (roi_2->y + dy)); + const int y_to = MIN(MIN((roi_1->y + roi_1->height + 1 + padding), + (roi_2->y + roi_2->height)), (roi_2->y + roi_2->height + dy)); roi_dest->x = x_from; @@ -3066,7 +3406,8 @@ roi_mask_scaled->scale = roi_in->scale; rt_intersect_2_rois(roi_mask_scaled, roi_in, dx, dy, padding, roi_mask_scaled); - if(roi_mask_scaled->width < 1 || roi_mask_scaled->height < 1) goto cleanup; + if(roi_mask_scaled->width < 1 || roi_mask_scaled->height < 1) + goto cleanup; const int x_to = roi_mask_scaled->width + roi_mask_scaled->x; const int y_to = roi_mask_scaled->height + roi_mask_scaled->y; @@ -3127,7 +3468,8 @@ const int mask_index = yy * roi_mask_scaled->width; const int src_index = 4 * mask_index; const int dest_index - = 4 * (((yy + roi_mask_scaled->y - roi_dest->y) * roi_dest->width) + (roi_mask_scaled->x - roi_dest->x)); + = 4 * (((yy + roi_mask_scaled->y - roi_dest->y) + * roi_dest->width) + (roi_mask_scaled->x - roi_dest->x)); const float *s = img_src + src_index; const float *m = mask_scaled + mask_index; @@ -3162,7 +3504,8 @@ { const int mask_index = yy * roi_mask_scaled->width; const int dest_index - = (((yy + roi_mask_scaled->y - roi_img->y) * roi_img->width) + (roi_mask_scaled->x - roi_img->x)) * ch; + = (((yy + roi_mask_scaled->y - roi_img->y) * roi_img->width) + + (roi_mask_scaled->x - roi_img->x)) * ch; float *d = img + dest_index; const float *m = mask_scaled + mask_index; @@ -3191,7 +3534,8 @@ { const int mask_index = yy * roi_mask_scaled->width; const int dest_index - = (((yy + roi_mask_scaled->y - roi_in->y) * roi_in->width) + (roi_mask_scaled->x - roi_in->x)) * 4; + = (((yy + roi_mask_scaled->y - roi_in->y) * roi_in->width) + + (roi_mask_scaled->x - roi_in->x)) * 4; float *d = in + dest_index; const float *m = mask_scaled + mask_index; @@ -3215,7 +3559,8 @@ const float opacity) { // alloc temp image to avoid issues when areas self-intersects - float *img_src = dt_alloc_align_float((size_t)4 * roi_mask_scaled->width * roi_mask_scaled->height); + float *img_src = + dt_alloc_align_float((size_t)4 * roi_mask_scaled->width * roi_mask_scaled->height); if(img_src == NULL) { dt_print(DT_DEBUG_ALWAYS, "[retouch] error allocating memory for cloning\n"); @@ -3249,14 +3594,16 @@ float *img_dest = NULL; // alloc temp image to blur - img_dest = dt_alloc_align_float((size_t)4 * roi_mask_scaled->width * roi_mask_scaled->height); + img_dest = + dt_alloc_align_float((size_t)4 * roi_mask_scaled->width * roi_mask_scaled->height); if(img_dest == NULL) { dt_print(DT_DEBUG_ALWAYS, "[retouch] error allocating memory for blurring\n"); goto cleanup; } - // copy source image so we blur just the mask area (at least the smallest rect that covers it) + // copy source image so we blur just the mask area (at least the + // smallest rect that covers it) rt_copy_in_to_out(in, roi_in, img_dest, roi_mask_scaled, 4, 0, 0); if(blur_type == DT_IOP_RETOUCH_BLUR_GAUSSIAN && fabsf(blur_radius) > 0.1f) @@ -3264,7 +3611,9 @@ static const float Labmax[] = { FLT_MAX, FLT_MAX, FLT_MAX, FLT_MAX }; static const float Labmin[] = { -FLT_MAX, -FLT_MAX, -FLT_MAX, -FLT_MAX }; - dt_gaussian_t *g = dt_gaussian_init(roi_mask_scaled->width, roi_mask_scaled->height, 4, Labmax, Labmin, sigma, + dt_gaussian_t *g = dt_gaussian_init(roi_mask_scaled->width, + roi_mask_scaled->height, + 4, Labmax, Labmin, sigma, DT_IOP_GAUSSIAN_ZERO); if(g) { @@ -3278,15 +3627,20 @@ const float sigma_s = sigma; const float detail = -1.0f; // we want the bilateral base layer - dt_bilateral_t *b = dt_bilateral_init(roi_mask_scaled->width, roi_mask_scaled->height, sigma_s, sigma_r); + dt_bilateral_t *b = dt_bilateral_init(roi_mask_scaled->width, + roi_mask_scaled->height, sigma_s, sigma_r); if(b) { int converted_cst; - const dt_iop_order_iccprofile_info_t *const work_profile = dt_ioppr_get_pipe_work_profile_info(piece->pipe); + const dt_iop_order_iccprofile_info_t *const work_profile = + dt_ioppr_get_pipe_work_profile_info(piece->pipe); if(work_profile) - dt_ioppr_transform_image_colorspace(self, img_dest, img_dest, roi_mask_scaled->width, - roi_mask_scaled->height, IOP_CS_RGB, IOP_CS_LAB, &converted_cst, + dt_ioppr_transform_image_colorspace(self, img_dest, img_dest, + roi_mask_scaled->width, + roi_mask_scaled->height, + IOP_CS_RGB, IOP_CS_LAB, + &converted_cst, work_profile); else image_rgb2lab(img_dest, roi_mask_scaled->width, roi_mask_scaled->height); @@ -3297,8 +3651,11 @@ dt_bilateral_free(b); if(work_profile) - dt_ioppr_transform_image_colorspace(self, img_dest, img_dest, roi_mask_scaled->width, - roi_mask_scaled->height, IOP_CS_LAB, IOP_CS_RGB, &converted_cst, + dt_ioppr_transform_image_colorspace(self, img_dest, img_dest, + roi_mask_scaled->width, + roi_mask_scaled->height, + IOP_CS_LAB, IOP_CS_RGB, + &converted_cst, work_profile); else image_lab2rgb(img_dest, roi_mask_scaled->width, roi_mask_scaled->height); @@ -3325,8 +3682,10 @@ float *img_dest = NULL; // alloc temp images for source and destination - img_src = dt_alloc_align_float((size_t)4 * roi_mask_scaled->width * roi_mask_scaled->height); - img_dest = dt_alloc_align_float((size_t)4 * roi_mask_scaled->width * roi_mask_scaled->height); + img_src = + dt_alloc_align_float((size_t)4 * roi_mask_scaled->width * roi_mask_scaled->height); + img_dest = + dt_alloc_align_float((size_t)4 * roi_mask_scaled->width * roi_mask_scaled->height); if((img_src == NULL) || (img_dest == NULL)) { dt_print(DT_DEBUG_ALWAYS, "[retouch] error allocating memory for healing\n"); @@ -3338,7 +3697,8 @@ rt_copy_in_to_out(in, roi_in, img_dest, roi_mask_scaled, 4, 0, 0); // heal it - dt_heal(img_src, img_dest, mask_scaled, roi_mask_scaled->width, roi_mask_scaled->height, 4, max_iter); + dt_heal(img_src, img_dest, mask_scaled, + roi_mask_scaled->width, roi_mask_scaled->height, 4, max_iter); // copy healed (temp) image to destination image rt_copy_image_masked(img_dest, in, roi_in, mask_scaled, roi_mask_scaled, opacity); @@ -3357,7 +3717,11 @@ // if preview a single scale, just process that scale and original image // unless merge is activated - if(wt_p->merge_from_scale == 0 && wt_p->return_layer > 0 && scale != wt_p->return_layer && scale != 0) return; + if(wt_p->merge_from_scale == 0 + && wt_p->return_layer > 0 + && scale != wt_p->return_layer + && scale != 0) + return; // do not process the reconstructed image if(scale > wt_p->scales + 1) return; @@ -3366,10 +3730,13 @@ dt_iop_roi_t *roi_layer = &usr_d->roi; const gboolean mask_display = usr_d->mask_display && (scale == usr_d->display_scale); - // when the requested scales is grather than max scales the residual image index will be different from the one - // defined by the user, - // so we need to adjust it here, otherwise we will be using the shapes from a scale on the residual image - if(wt_p->scales < p->num_scales && wt_p->return_layer == 0 && scale == wt_p->scales + 1) + // when the requested scales is grather than max scales the residual + // image index will be different from the one defined by the user, + // so we need to adjust it here, otherwise we will be using the + // shapes from a scale on the residual image + if(wt_p->scales < p->num_scales + && wt_p->return_layer == 0 + && scale == wt_p->scales + 1) { scale = p->num_scales + 1; } @@ -3398,8 +3765,10 @@ const int index = rt_get_index_from_formid(p, formid); if(index == -1) { - // FIXME: we get this error when user go back in history, so forms are the same but the array has changed - dt_print(DT_DEBUG_ALWAYS, "rt_process_forms: missing form=%i from array\n", formid); + // FIXME: we get this error when user go back in history, so + // forms are the same but the array has changed + dt_print(DT_DEBUG_ALWAYS, + "rt_process_forms: missing form=%i from array\n", formid); continue; } @@ -3413,7 +3782,8 @@ dt_masks_form_t *form = dt_masks_get_from_id_ext(piece->pipe->forms, formid); if(form == NULL) { - dt_print(DT_DEBUG_ALWAYS, "rt_process_forms: missing form=%i from masks\n", formid); + dt_print(DT_DEBUG_ALWAYS, + "rt_process_forms: missing form=%i from masks\n", formid); continue; } @@ -3427,7 +3797,8 @@ float *mask = NULL; dt_iop_roi_t roi_mask = { 0 }; - dt_masks_get_mask(self, piece, form, &mask, &roi_mask.width, &roi_mask.height, &roi_mask.x, &roi_mask.y); + dt_masks_get_mask(self, piece, form, &mask, + &roi_mask.width, &roi_mask.height, &roi_mask.x, &roi_mask.y); if(mask == NULL) { dt_print(DT_DEBUG_ALWAYS, "rt_process_forms: error retrieving mask\n"); @@ -3452,7 +3823,8 @@ float *mask_scaled = NULL; dt_iop_roi_t roi_mask_scaled = { 0 }; - rt_build_scaled_mask(mask, &roi_mask, &mask_scaled, &roi_mask_scaled, roi_layer, dx, dy, algo); + rt_build_scaled_mask(mask, &roi_mask, + &mask_scaled, &roi_mask_scaled, roi_layer, dx, dy, algo); // we don't need the original mask anymore if(mask) @@ -3466,21 +3838,29 @@ continue; } - if((dx != 0 || dy != 0 || algo == DT_IOP_RETOUCH_BLUR || algo == DT_IOP_RETOUCH_FILL) - && ((roi_mask_scaled.width > 2) && (roi_mask_scaled.height > 2))) + if((dx != 0 + || dy != 0 + || algo == DT_IOP_RETOUCH_BLUR + || algo == DT_IOP_RETOUCH_FILL) + && ((roi_mask_scaled.width > 2) + && (roi_mask_scaled.height > 2))) { if(algo == DT_IOP_RETOUCH_CLONE) { - _retouch_clone(layer, roi_layer, mask_scaled, &roi_mask_scaled, dx, dy, form_opacity); + _retouch_clone(layer, roi_layer, mask_scaled, + &roi_mask_scaled, dx, dy, form_opacity); } else if(algo == DT_IOP_RETOUCH_HEAL) { - _retouch_heal(layer, roi_layer, mask_scaled, &roi_mask_scaled, dx, dy, form_opacity, p->max_heal_iter); + _retouch_heal(layer, roi_layer, mask_scaled, + &roi_mask_scaled, dx, dy, form_opacity, p->max_heal_iter); } else if(algo == DT_IOP_RETOUCH_BLUR) { - _retouch_blur(self, layer, roi_layer, mask_scaled, &roi_mask_scaled, form_opacity, - p->rt_forms[index].blur_type, p->rt_forms[index].blur_radius, piece); + _retouch_blur(self, layer, roi_layer, mask_scaled, + &roi_mask_scaled, form_opacity, + p->rt_forms[index].blur_type, + p->rt_forms[index].blur_radius, piece); } else if(algo == DT_IOP_RETOUCH_FILL) { @@ -3489,23 +3869,30 @@ if(p->rt_forms[index].fill_mode == DT_IOP_RETOUCH_FILL_ERASE) { - fill_color[0] = fill_color[1] = fill_color[2] = p->rt_forms[index].fill_brightness; + fill_color[0] = fill_color[1] = fill_color[2] = + p->rt_forms[index].fill_brightness; } else { - fill_color[0] = p->rt_forms[index].fill_color[0] + p->rt_forms[index].fill_brightness; - fill_color[1] = p->rt_forms[index].fill_color[1] + p->rt_forms[index].fill_brightness; - fill_color[2] = p->rt_forms[index].fill_color[2] + p->rt_forms[index].fill_brightness; + fill_color[0] = + p->rt_forms[index].fill_color[0] + p->rt_forms[index].fill_brightness; + fill_color[1] = + p->rt_forms[index].fill_color[1] + p->rt_forms[index].fill_brightness; + fill_color[2] = + p->rt_forms[index].fill_color[2] + p->rt_forms[index].fill_brightness; } fill_color[3] = 0.0f; - _retouch_fill(layer, roi_layer, mask_scaled, &roi_mask_scaled, form_opacity, fill_color); + _retouch_fill(layer, roi_layer, mask_scaled, + &roi_mask_scaled, form_opacity, fill_color); } else - dt_print(DT_DEBUG_ALWAYS, "rt_process_forms: unknown algorithm %i\n", algo); + dt_print(DT_DEBUG_ALWAYS, + "rt_process_forms: unknown algorithm %i\n", algo); if(mask_display) - rt_copy_mask_to_alpha(layer, roi_layer, wt_p->ch, mask_scaled, &roi_mask_scaled, form_opacity); + rt_copy_mask_to_alpha(layer, roi_layer, wt_p->ch, + mask_scaled, &roi_mask_scaled, form_opacity); } if(mask) dt_free_align(mask); @@ -3522,8 +3909,9 @@ const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) { - if(!dt_iop_have_required_input_format(4 /*we need full-color pixels*/, self, piece->colors, - ivoid, ovoid, roi_in, roi_out)) + if(!dt_iop_have_required_input_format(4 /*we need full-color pixels*/, + self, piece->colors, + ivoid, ovoid, roi_in, roi_out)) return; dt_iop_retouch_params_t *p = (dt_iop_retouch_params_t *)piece->data; @@ -3538,7 +3926,8 @@ dwt_params_t *dwt_p = NULL; const int gui_active = (self->dev) ? (self == self->dev->gui_module) : 0; - const gboolean display_wavelet_scale = (g && gui_active) ? g->display_wavelet_scale : FALSE; + const gboolean display_wavelet_scale = + (g && gui_active) ? g->display_wavelet_scale : FALSE; // we will do all the clone, heal, etc on the input image, // this way the source for one algorithm can be the destination from a previous one @@ -3555,13 +3944,19 @@ usr_data.piece = piece; usr_data.roi = *roi_rt; usr_data.mask_display = FALSE; - usr_data.suppress_mask = (g && g->suppress_mask && self->dev->gui_attached && (self == self->dev->gui_module) - && (piece->pipe == self->dev->pipe)); + usr_data.suppress_mask = (g + && g->suppress_mask + && self->dev->gui_attached + && (self == self->dev->gui_module) + && (piece->pipe == self->dev->full.pipe)); usr_data.display_scale = p->curr_scale; // init the decompose routine dwt_p = dt_dwt_init(in_retouch, roi_rt->width, roi_rt->height, 4, p->num_scales, - (!display_wavelet_scale || !(piece->pipe->type & DT_DEV_PIXELPIPE_FULL)) ? 0 : p->curr_scale, + (!display_wavelet_scale + || !(piece->pipe->type & DT_DEV_PIXELPIPE_FULL)) + ? 0 + : p->curr_scale, p->merge_from_scale, &usr_data, roi_in->scale / piece->iscale); if(dwt_p == NULL) goto cleanup; @@ -3569,11 +3964,13 @@ // check if this module should expose mask. if((piece->pipe->type & DT_DEV_PIXELPIPE_FULL) && g && (g->mask_display || display_wavelet_scale) && self->dev->gui_attached - && (self == self->dev->gui_module) && (piece->pipe == self->dev->pipe)) + && (self == self->dev->gui_module) && (piece->pipe == self->dev->full.pipe)) { - for(size_t j = 0; j < (size_t)roi_rt->width * roi_rt->height * 4; j += 4) in_retouch[j + 3] = 0.f; + for(size_t j = 0; j < (size_t)roi_rt->width * roi_rt->height * 4; j += 4) + in_retouch[j + 3] = 0.f; - piece->pipe->mask_display = g->mask_display ? DT_DEV_PIXELPIPE_DISPLAY_MASK : DT_DEV_PIXELPIPE_DISPLAY_PASSTHRU; + piece->pipe->mask_display = + g->mask_display ? DT_DEV_PIXELPIPE_DISPLAY_MASK : DT_DEV_PIXELPIPE_DISPLAY_PASSTHRU; piece->pipe->bypass_blendif = TRUE; usr_data.mask_display = TRUE; } @@ -3596,7 +3993,9 @@ // decompose it dwt_decompose(dwt_p, rt_process_forms); - dt_aligned_pixel_t levels = { p->preview_levels[0], p->preview_levels[1], p->preview_levels[2] }; + dt_aligned_pixel_t levels = { p->preview_levels[0], + p->preview_levels[1], + p->preview_levels[2] }; // process auto levels if(g && (piece->pipe->type & DT_DEV_PIXELPIPE_FULL)) @@ -3609,7 +4008,8 @@ dt_iop_gui_leave_critical_section(self); levels[0] = levels[1] = levels[2] = 0; - rt_process_stats(self, piece, in_retouch, roi_rt->width, roi_rt->height, 4, levels); + rt_process_stats(self, piece, in_retouch, + roi_rt->width, roi_rt->height, 4, levels); rt_clamp_minmax(levels, levels); for(int i = 0; i < 3; i++) g->preview_levels[i] = levels[i]; @@ -3621,13 +4021,17 @@ } // if user wants to preview a detail scale adjust levels - if(dwt_p->return_layer > 0 && dwt_p->return_layer < dwt_p->scales + 1) + if(dwt_p->return_layer > 0 + && dwt_p->return_layer < dwt_p->scales + 1) { - rt_adjust_levels(self, piece, in_retouch, roi_rt->width, roi_rt->height, 4, levels); + rt_adjust_levels(self, piece, in_retouch, + roi_rt->width, roi_rt->height, 4, levels); } // copy alpha channel if needed - if((piece->pipe->mask_display & DT_DEV_PIXELPIPE_DISPLAY_MASK) && g && !g->mask_display) + if((piece->pipe->mask_display & DT_DEV_PIXELPIPE_DISPLAY_MASK) + && g + && !g->mask_display) { dt_iop_alpha_copy(ivoid, in_retouch, roi_rt->width, roi_rt->height); } @@ -3674,8 +4078,10 @@ goto cleanup; } - err = dt_opencl_read_buffer_from_device(devid, (void *)src_buffer, dev_img, 0, - (size_t)width * height * ch * sizeof(float), CL_TRUE); + err = dt_opencl_read_buffer_from_device(devid, + (void *)src_buffer, dev_img, 0, + (size_t)width * height * ch * sizeof(float), + CL_TRUE); if(err != CL_SUCCESS) { goto cleanup; @@ -3684,7 +4090,9 @@ // just call the CPU version for now rt_process_stats(self, piece, src_buffer, width, height, ch, levels); - err = dt_opencl_write_buffer_to_device(devid, src_buffer, dev_img, 0, sizeof(float) * ch * width * height, CL_TRUE); + err = dt_opencl_write_buffer_to_device(devid, src_buffer, dev_img, 0, + sizeof(float) * ch * width * height, + CL_TRUE); if(err != CL_SUCCESS) { goto cleanup; @@ -3713,13 +4121,15 @@ src_buffer = dt_alloc_align_float((size_t)ch * width * height); if(src_buffer == NULL) { - dt_print(DT_DEBUG_ALWAYS, "[retouch] error allocating memory for healing (OpenCL)\n"); + dt_print(DT_DEBUG_ALWAYS, + "[retouch] error allocating memory for healing (OpenCL)\n"); err = DT_OPENCL_SYSMEM_ALLOCATION; goto cleanup; } err = dt_opencl_read_buffer_from_device(devid, (void *)src_buffer, dev_img, 0, - (size_t)width * height * ch * sizeof(float), CL_TRUE); + (size_t)width * height * ch * sizeof(float), + CL_TRUE); if(err != CL_SUCCESS) { goto cleanup; @@ -3728,7 +4138,9 @@ // just call the CPU version for now rt_adjust_levels(self, piece, src_buffer, width, height, ch, levels); - err = dt_opencl_write_buffer_to_device(devid, src_buffer, dev_img, 0, sizeof(float) * ch * width * height, CL_TRUE); + err = dt_opencl_write_buffer_to_device(devid, src_buffer, dev_img, 0, + sizeof(float) * ch * width * height, + CL_TRUE); if(err != CL_SUCCESS) { goto cleanup; @@ -3758,8 +4170,10 @@ cl_mem dev_roi_out = NULL; - dev_roi_in = dt_opencl_copy_host_to_device_constant(devid, sizeof(dt_iop_roi_t), (void *)roi_in); - dev_roi_out = dt_opencl_copy_host_to_device_constant(devid, sizeof(dt_iop_roi_t), (void *)roi_out); + dev_roi_in = + dt_opencl_copy_host_to_device_constant(devid, sizeof(dt_iop_roi_t), (void *)roi_in); + dev_roi_out = + dt_opencl_copy_host_to_device_constant(devid, sizeof(dt_iop_roi_t), (void *)roi_out); if(dev_roi_in == NULL || dev_roi_out == NULL) { dt_print(DT_DEBUG_ALWAYS, "rt_copy_in_to_out_cl error 1\n"); @@ -3767,8 +4181,14 @@ goto cleanup; } - err = dt_opencl_enqueue_kernel_2d_args(devid, kernel, MIN(roi_out->width, roi_in->width), MIN(roi_out->height, roi_in->height), - CLARG(dev_in), CLARG(dev_roi_in), CLARG(dev_out), CLARG(dev_roi_out), CLARG(xoffs), CLARG(yoffs)); + err = dt_opencl_enqueue_kernel_2d_args + (devid, + kernel, + MIN(roi_out->width, roi_in->width), + MIN(roi_out->height, roi_in->height), + CLARG(dev_in), CLARG(dev_roi_in), + CLARG(dev_out), CLARG(dev_roi_out), + CLARG(xoffs), CLARG(yoffs)); if(err != CL_SUCCESS) { dt_print(DT_DEBUG_ALWAYS, "rt_copy_in_to_out_cl error 2\n"); @@ -3795,14 +4215,16 @@ { cl_int err = CL_SUCCESS; - rt_build_scaled_mask(mask, roi_mask, mask_scaled, roi_mask_scaled, roi_in, dx, dy, algo); + rt_build_scaled_mask(mask, roi_mask, mask_scaled, + roi_mask_scaled, roi_in, dx, dy, algo); if(*mask_scaled == NULL) { goto cleanup; } - const cl_mem dev_mask_scaled - = dt_opencl_alloc_device_buffer(devid, sizeof(float) * roi_mask_scaled->width * roi_mask_scaled->height); + const cl_mem dev_mask_scaled = dt_opencl_alloc_device_buffer + (devid, + sizeof(float) * roi_mask_scaled->width * roi_mask_scaled->height); if(dev_mask_scaled == NULL) { dt_print(DT_DEBUG_ALWAYS, "rt_build_scaled_mask_cl error 2\n"); @@ -3810,8 +4232,11 @@ goto cleanup; } - err = dt_opencl_write_buffer_to_device(devid, *mask_scaled, dev_mask_scaled, 0, - sizeof(float) * roi_mask_scaled->width * roi_mask_scaled->height, CL_TRUE); + err = dt_opencl_write_buffer_to_device + (devid, *mask_scaled, + dev_mask_scaled, 0, + sizeof(float) * roi_mask_scaled->width * roi_mask_scaled->height, + CL_TRUE); if(err != CL_SUCCESS) { dt_print(DT_DEBUG_ALWAYS, "rt_build_scaled_mask_cl error 4\n"); @@ -3841,7 +4266,8 @@ dt_opencl_copy_host_to_device_constant(devid, sizeof(dt_iop_roi_t), (void *)roi_dest); const cl_mem dev_roi_mask_scaled - = dt_opencl_copy_host_to_device_constant(devid, sizeof(dt_iop_roi_t), (void *)roi_mask_scaled); + = dt_opencl_copy_host_to_device_constant(devid, sizeof(dt_iop_roi_t), + (void *)roi_mask_scaled); if(dev_roi_dest == NULL || dev_roi_mask_scaled == NULL) { @@ -3849,8 +4275,13 @@ goto cleanup; } - err = dt_opencl_enqueue_kernel_2d_args(devid, kernel, roi_mask_scaled->width, roi_mask_scaled->height, - CLARG(dev_src), CLARG(dev_dest), CLARG(dev_roi_dest), CLARG(dev_mask_scaled), CLARG(dev_roi_mask_scaled), + err = dt_opencl_enqueue_kernel_2d_args(devid, kernel, + roi_mask_scaled->width, + roi_mask_scaled->height, + CLARG(dev_src), CLARG(dev_dest), + CLARG(dev_roi_dest), + CLARG(dev_mask_scaled), + CLARG(dev_roi_mask_scaled), CLARG(opacity)); if(err != CL_SUCCESS) goto cleanup; @@ -3874,17 +4305,25 @@ // fill it const int kernel = gd->kernel_retouch_copy_mask_to_alpha; - const cl_mem dev_roi_layer = dt_opencl_copy_host_to_device_constant(devid, sizeof(dt_iop_roi_t), (void *)roi_layer); - const cl_mem dev_roi_mask_scaled - = dt_opencl_copy_host_to_device_constant(devid, sizeof(dt_iop_roi_t), (void *)roi_mask_scaled); + const cl_mem dev_roi_layer = + dt_opencl_copy_host_to_device_constant(devid, sizeof(dt_iop_roi_t), + (void *)roi_layer); + const cl_mem dev_roi_mask_scaled = + dt_opencl_copy_host_to_device_constant(devid, sizeof(dt_iop_roi_t), + (void *)roi_mask_scaled); if(dev_roi_layer == NULL || dev_roi_mask_scaled == NULL) { err = CL_MEM_OBJECT_ALLOCATION_FAILURE; goto cleanup; } - err = dt_opencl_enqueue_kernel_2d_args(devid, kernel, roi_mask_scaled->width, roi_mask_scaled->height, - CLARG(dev_layer), CLARG(dev_roi_layer), CLARG(dev_mask_scaled), CLARG(dev_roi_mask_scaled), CLARG(opacity)); + err = dt_opencl_enqueue_kernel_2d_args(devid, kernel, + roi_mask_scaled->width, + roi_mask_scaled->height, + CLARG(dev_layer), CLARG(dev_roi_layer), + CLARG(dev_mask_scaled), + CLARG(dev_roi_mask_scaled), + CLARG(opacity)); if(err != CL_SUCCESS) goto cleanup; @@ -3910,8 +4349,9 @@ const int ch = 4; // alloc source temp image to avoid issues when areas self-intersects - const cl_mem dev_src = dt_opencl_alloc_device_buffer(devid, - sizeof(float) * ch * roi_mask_scaled->width * roi_mask_scaled->height); + const cl_mem dev_src = dt_opencl_alloc_device_buffer + (devid, + sizeof(float) * ch * roi_mask_scaled->width * roi_mask_scaled->height); if(dev_src == NULL) { dt_print(DT_DEBUG_ALWAYS, "retouch_clone_cl error 2\n"); @@ -3920,7 +4360,8 @@ } // copy source image to tmp - err = rt_copy_in_to_out_cl(devid, dev_layer, roi_layer, dev_src, roi_mask_scaled, dx, dy, + err = rt_copy_in_to_out_cl(devid, dev_layer, roi_layer, + dev_src, roi_mask_scaled, dx, dy, gd->kernel_retouch_copy_buffer_to_buffer); if(err != CL_SUCCESS) { @@ -3929,8 +4370,9 @@ } // clone it - err = rt_copy_image_masked_cl(devid, dev_src, dev_layer, roi_layer, dev_mask_scaled, roi_mask_scaled, opacity, - gd->kernel_retouch_copy_buffer_to_buffer_masked); + err = rt_copy_image_masked_cl + (devid, dev_src, dev_layer, roi_layer, dev_mask_scaled, roi_mask_scaled, opacity, + gd->kernel_retouch_copy_buffer_to_buffer_masked); if(err != CL_SUCCESS) { dt_print(DT_DEBUG_ALWAYS, "retouch_clone_cl error 5\n"); @@ -3957,18 +4399,28 @@ // fill it const int kernel = gd->kernel_retouch_fill; - const cl_mem dev_roi_layer = dt_opencl_copy_host_to_device_constant(devid, sizeof(dt_iop_roi_t), (void *)roi_layer); - const cl_mem dev_roi_mask_scaled - = dt_opencl_copy_host_to_device_constant(devid, sizeof(dt_iop_roi_t), (void *)roi_mask_scaled); + const cl_mem dev_roi_layer = + dt_opencl_copy_host_to_device_constant(devid, sizeof(dt_iop_roi_t), + (void *)roi_layer); + const cl_mem dev_roi_mask_scaled = + dt_opencl_copy_host_to_device_constant(devid, sizeof(dt_iop_roi_t), + (void *)roi_mask_scaled); if(dev_roi_layer == NULL || dev_roi_mask_scaled == NULL) { err = CL_MEM_OBJECT_ALLOCATION_FAILURE; goto cleanup; } - err = dt_opencl_enqueue_kernel_2d_args(devid, kernel, roi_mask_scaled->width, roi_mask_scaled->height, - CLARG(dev_layer), CLARG(dev_roi_layer), CLARG(dev_mask_scaled), CLARG(dev_roi_mask_scaled), CLARG(opacity), - CLARG((color[0])), CLARG((color[1])), CLARG((color[2]))); + err = dt_opencl_enqueue_kernel_2d_args(devid, kernel, + roi_mask_scaled->width, + roi_mask_scaled->height, + CLARG(dev_layer), CLARG(dev_roi_layer), + CLARG(dev_mask_scaled), + CLARG(dev_roi_mask_scaled), + CLARG(opacity), + CLARG((color[0])), + CLARG((color[1])), + CLARG((color[2]))); if(err != CL_SUCCESS) goto cleanup; @@ -3998,7 +4450,8 @@ const int ch = 4; const cl_mem dev_dest = - dt_opencl_alloc_device(devid, roi_mask_scaled->width, roi_mask_scaled->height, sizeof(float) * ch); + dt_opencl_alloc_device(devid, roi_mask_scaled->width, roi_mask_scaled->height, + sizeof(float) * ch); if(dev_dest == NULL) { dt_print(DT_DEBUG_ALWAYS, "retouch_blur_cl error 2\n"); @@ -4009,12 +4462,15 @@ if(blur_type == DT_IOP_RETOUCH_BLUR_BILATERAL) { const int kernel = gd->kernel_retouch_image_rgb2lab; - err = dt_opencl_enqueue_kernel_2d_args(devid, kernel, roi_layer->width, roi_layer->height, - CLARG(dev_layer), CLARG((roi_layer->width)), CLARG((roi_layer->height))); + err = dt_opencl_enqueue_kernel_2d_args(devid, kernel, roi_layer->width, + roi_layer->height, + CLARG(dev_layer), CLARG((roi_layer->width)), + CLARG((roi_layer->height))); if(err != CL_SUCCESS) goto cleanup; } - err = rt_copy_in_to_out_cl(devid, dev_layer, roi_layer, dev_dest, roi_mask_scaled, 0, 0, + err = rt_copy_in_to_out_cl(devid, dev_layer, roi_layer, dev_dest, + roi_mask_scaled, 0, 0, gd->kernel_retouch_copy_buffer_to_image); if(err != CL_SUCCESS) { @@ -4027,7 +4483,8 @@ static const float Labmax[] = { FLT_MAX, FLT_MAX, FLT_MAX, FLT_MAX }; static const float Labmin[] = { -FLT_MAX, -FLT_MAX, -FLT_MAX, -FLT_MAX }; - dt_gaussian_cl_t *g = dt_gaussian_init_cl(devid, roi_mask_scaled->width, roi_mask_scaled->height, ch, Labmax, + dt_gaussian_cl_t *g = dt_gaussian_init_cl(devid, roi_mask_scaled->width, + roi_mask_scaled->height, ch, Labmax, Labmin, sigma, DT_IOP_GAUSSIAN_ZERO); if(g) { @@ -4043,7 +4500,8 @@ const float detail = -1.0f; // we want the bilateral base layer dt_bilateral_cl_t *b - = dt_bilateral_init_cl(devid, roi_mask_scaled->width, roi_mask_scaled->height, sigma_s, sigma_r); + = dt_bilateral_init_cl(devid, roi_mask_scaled->width, + roi_mask_scaled->height, sigma_s, sigma_r); if(b) { err = dt_bilateral_splat_cl(b, dev_dest); @@ -4055,7 +4513,8 @@ } // copy blurred (temp) image to destination image - err = rt_copy_image_masked_cl(devid, dev_dest, dev_layer, roi_layer, dev_mask_scaled, roi_mask_scaled, opacity, + err = rt_copy_image_masked_cl(devid, dev_dest, dev_layer, roi_layer, + dev_mask_scaled, roi_mask_scaled, opacity, gd->kernel_retouch_copy_image_to_buffer_masked); if(err != CL_SUCCESS) { @@ -4066,8 +4525,11 @@ if(blur_type == DT_IOP_RETOUCH_BLUR_BILATERAL) { const int kernel = gd->kernel_retouch_image_lab2rgb; - err = dt_opencl_enqueue_kernel_2d_args(devid, kernel, roi_layer->width, roi_layer->height, - CLARG(dev_layer), CLARG((roi_layer->width)), CLARG((roi_layer->height))); + err = dt_opencl_enqueue_kernel_2d_args(devid, kernel, roi_layer->width, + roi_layer->height, + CLARG(dev_layer), + CLARG((roi_layer->width)), + CLARG((roi_layer->height))); if(err != CL_SUCCESS) goto cleanup; } @@ -4077,42 +4539,57 @@ return err; } -static cl_int _retouch_heal_cl(const int devid, cl_mem dev_layer, dt_iop_roi_t *const roi_layer, float *mask_scaled, - cl_mem dev_mask_scaled, dt_iop_roi_t *const roi_mask_scaled, const int dx, - const int dy, const float opacity, dt_iop_retouch_global_data_t *gd, const int max_iter) +static cl_int _retouch_heal_cl(const int devid, + cl_mem dev_layer, + dt_iop_roi_t *const roi_layer, + float *mask_scaled, + cl_mem dev_mask_scaled, + dt_iop_roi_t *const roi_mask_scaled, + const int dx, + const int dy, + const float opacity, + dt_iop_retouch_global_data_t *gd, + const int max_iter) { cl_int err = CL_SUCCESS; const int ch = 4; cl_mem dev_dest = NULL; - cl_mem dev_src = dt_opencl_alloc_device_buffer(devid, - sizeof(float) * ch * roi_mask_scaled->width * roi_mask_scaled->height); + cl_mem dev_src = dt_opencl_alloc_device_buffer + (devid, + sizeof(float) * ch * roi_mask_scaled->width * roi_mask_scaled->height); if(dev_src == NULL) { - dt_print(DT_DEBUG_ALWAYS, "retouch_heal_cl: error allocating memory for healing\n"); + dt_print(DT_DEBUG_ALWAYS, + "retouch_heal_cl: error allocating memory for healing\n"); err = CL_MEM_OBJECT_ALLOCATION_FAILURE; goto cleanup; } - dev_dest = dt_opencl_alloc_device_buffer(devid, - sizeof(float) * ch * roi_mask_scaled->width * roi_mask_scaled->height); + dev_dest = dt_opencl_alloc_device_buffer + (devid, + sizeof(float) * ch * roi_mask_scaled->width * roi_mask_scaled->height); if(dev_dest == NULL) { - dt_print(DT_DEBUG_ALWAYS, "retouch_heal_cl: error allocating memory for healing\n"); + dt_print(DT_DEBUG_ALWAYS, + "retouch_heal_cl: error allocating memory for healing\n"); err = CL_MEM_OBJECT_ALLOCATION_FAILURE; goto cleanup; } - err = rt_copy_in_to_out_cl(devid, dev_layer, roi_layer, dev_src, roi_mask_scaled, dx, dy, + err = rt_copy_in_to_out_cl(devid, dev_layer, roi_layer, dev_src, + roi_mask_scaled, dx, dy, gd->kernel_retouch_copy_buffer_to_buffer); if(err != CL_SUCCESS) { - dt_print(DT_DEBUG_ALWAYS, "retouch_heal_cl error 4\n"); + dt_print(DT_DEBUG_ALWAYS, + "retouch_heal_cl error 4\n"); goto cleanup; } - err = rt_copy_in_to_out_cl(devid, dev_layer, roi_layer, dev_dest, roi_mask_scaled, 0, 0, + err = rt_copy_in_to_out_cl(devid, dev_layer, roi_layer, dev_dest, + roi_mask_scaled, 0, 0, gd->kernel_retouch_copy_buffer_to_buffer); if(err != CL_SUCCESS) { @@ -4124,7 +4601,8 @@ heal_params_cl_t *hp = dt_heal_init_cl(devid); if(hp) { - err = dt_heal_cl(hp, dev_src, dev_dest, mask_scaled, roi_mask_scaled->width, roi_mask_scaled->height, max_iter); + err = dt_heal_cl(hp, dev_src, dev_dest, mask_scaled, + roi_mask_scaled->width, roi_mask_scaled->height, max_iter); dt_heal_free_cl(hp); dt_opencl_release_mem_object(dev_src); @@ -4134,7 +4612,8 @@ } // copy healed (temp) image to destination image - err = rt_copy_image_masked_cl(devid, dev_dest, dev_layer, roi_layer, dev_mask_scaled, roi_mask_scaled, opacity, + err = rt_copy_image_masked_cl(devid, dev_dest, dev_layer, roi_layer, + dev_mask_scaled, roi_mask_scaled, opacity, gd->kernel_retouch_copy_buffer_to_buffer_masked); if(err != CL_SUCCESS) { @@ -4149,7 +4628,9 @@ return err; } -static cl_int rt_process_forms_cl(cl_mem dev_layer, dwt_params_cl_t *const wt_p, const int scale1) +static cl_int rt_process_forms_cl(cl_mem dev_layer, + dwt_params_cl_t *const wt_p, + const int scale1) { cl_int err = CL_SUCCESS; @@ -4160,7 +4641,10 @@ // if preview a single scale, just process that scale and original image // unless merge is activated - if(wt_p->merge_from_scale == 0 && wt_p->return_layer > 0 && scale != wt_p->return_layer && scale != 0) + if(wt_p->merge_from_scale == 0 + && wt_p->return_layer > 0 + && scale != wt_p->return_layer + && scale != 0) return err; // do not process the reconstructed image if(scale > wt_p->scales + 1) return err; @@ -4172,10 +4656,13 @@ dt_iop_roi_t *roi_layer = &usr_d->roi; const gboolean mask_display = usr_d->mask_display && (scale == usr_d->display_scale); - // when the requested scales is grather than max scales the residual image index will be different from the one - // defined by the user, - // so we need to adjust it here, otherwise we will be using the shapes from a scale on the residual image - if(wt_p->scales < p->num_scales && wt_p->return_layer == 0 && scale == wt_p->scales + 1) + // when the requested scales is grather than max scales the residual + // image index will be different from the one defined by the user, + // so we need to adjust it here, otherwise we will be using the + // shapes from a scale on the residual image + if(wt_p->scales < p->num_scales + && wt_p->return_layer == 0 + && scale == wt_p->scales + 1) { scale = p->num_scales + 1; } @@ -4186,7 +4673,9 @@ dt_masks_form_t *grp = dt_masks_get_from_id_ext(piece->pipe->forms, bp->mask_id); if(grp && (grp->type & DT_MASKS_GROUP)) { - for(const GList *forms = grp->points; forms && err == CL_SUCCESS; forms = g_list_next(forms)) + for(const GList *forms = grp->points; + forms && err == CL_SUCCESS; + forms = g_list_next(forms)) { dt_masks_point_group_t *grpt = (dt_masks_point_group_t *)forms->data; if(grpt == NULL) @@ -4204,8 +4693,10 @@ const int index = rt_get_index_from_formid(p, formid); if(index == -1) { - // FIXME: we get this error when user go back in history, so forms are the same but the array has changed - dt_print(DT_DEBUG_ALWAYS, "rt_process_forms: missing form=%i from array\n", formid); + // FIXME: we get this error when user go back in history, so + // forms are the same but the array has changed + dt_print(DT_DEBUG_ALWAYS, + "rt_process_forms: missing form=%i from array\n", formid); continue; } @@ -4219,7 +4710,8 @@ dt_masks_form_t *form = dt_masks_get_from_id_ext(piece->pipe->forms, formid); if(form == NULL) { - dt_print(DT_DEBUG_ALWAYS, "rt_process_forms: missing form=%i from masks\n", formid); + dt_print(DT_DEBUG_ALWAYS, + "rt_process_forms: missing form=%i from masks\n", formid); continue; } @@ -4233,7 +4725,9 @@ float *mask = NULL; dt_iop_roi_t roi_mask = { 0 }; - dt_masks_get_mask(self, piece, form, &mask, &roi_mask.width, &roi_mask.height, &roi_mask.x, &roi_mask.y); + dt_masks_get_mask(self, piece, form, &mask, + &roi_mask.width, &roi_mask.height, + &roi_mask.x, &roi_mask.y); if(mask == NULL) { dt_print(DT_DEBUG_ALWAYS, "rt_process_forms: error retrieving mask\n"); @@ -4259,7 +4753,11 @@ float *mask_scaled = NULL; dt_iop_roi_t roi_mask_scaled = { 0 }; - err = rt_build_scaled_mask_cl(devid, mask, &roi_mask, &mask_scaled, &dev_mask_scaled, &roi_mask_scaled, + err = rt_build_scaled_mask_cl(devid, mask, + &roi_mask, + &mask_scaled, + &dev_mask_scaled, + &roi_mask_scaled, roi_layer, dx, dy, algo); // only heal needs mask scaled @@ -4284,23 +4782,31 @@ } if((err == CL_SUCCESS) - && (dx != 0 || dy != 0 || algo == DT_IOP_RETOUCH_BLUR || algo == DT_IOP_RETOUCH_FILL) + && (dx != 0 + || dy != 0 + || algo == DT_IOP_RETOUCH_BLUR + || algo == DT_IOP_RETOUCH_FILL) && ((roi_mask_scaled.width > 2) && (roi_mask_scaled.height > 2))) { if(algo == DT_IOP_RETOUCH_CLONE) { - err = _retouch_clone_cl(devid, dev_layer, roi_layer, dev_mask_scaled, &roi_mask_scaled, dx, dy, + err = _retouch_clone_cl(devid, dev_layer, roi_layer, + dev_mask_scaled, &roi_mask_scaled, dx, dy, form_opacity, gd); } else if(algo == DT_IOP_RETOUCH_HEAL) { - err = _retouch_heal_cl(devid, dev_layer, roi_layer, mask_scaled, dev_mask_scaled, &roi_mask_scaled, dx, + err = _retouch_heal_cl(devid, dev_layer, roi_layer, + mask_scaled, dev_mask_scaled, &roi_mask_scaled, dx, dy, form_opacity, gd, p->max_heal_iter); } else if(algo == DT_IOP_RETOUCH_BLUR) { - err = _retouch_blur_cl(devid, dev_layer, roi_layer, dev_mask_scaled, &roi_mask_scaled, form_opacity, - p->rt_forms[index].blur_type, p->rt_forms[index].blur_radius, piece, gd); + err = _retouch_blur_cl(devid, dev_layer, roi_layer, + dev_mask_scaled, &roi_mask_scaled, + form_opacity, + p->rt_forms[index].blur_type, + p->rt_forms[index].blur_radius, piece, gd); } else if(algo == DT_IOP_RETOUCH_FILL) { @@ -4309,23 +4815,31 @@ if(p->rt_forms[index].fill_mode == DT_IOP_RETOUCH_FILL_ERASE) { - fill_color[0] = fill_color[1] = fill_color[2] = p->rt_forms[index].fill_brightness; + fill_color[0] = fill_color[1] = fill_color[2] = + p->rt_forms[index].fill_brightness; } else { - fill_color[0] = p->rt_forms[index].fill_color[0] + p->rt_forms[index].fill_brightness; - fill_color[1] = p->rt_forms[index].fill_color[1] + p->rt_forms[index].fill_brightness; - fill_color[2] = p->rt_forms[index].fill_color[2] + p->rt_forms[index].fill_brightness; + fill_color[0] = + p->rt_forms[index].fill_color[0] + p->rt_forms[index].fill_brightness; + fill_color[1] = + p->rt_forms[index].fill_color[1] + p->rt_forms[index].fill_brightness; + fill_color[2] = + p->rt_forms[index].fill_color[2] + p->rt_forms[index].fill_brightness; } - err = _retouch_fill_cl(devid, dev_layer, roi_layer, dev_mask_scaled, &roi_mask_scaled, form_opacity, + err = _retouch_fill_cl(devid, dev_layer, roi_layer, + dev_mask_scaled, &roi_mask_scaled, form_opacity, fill_color, gd); } else - dt_print(DT_DEBUG_ALWAYS, "rt_process_forms: unknown algorithm %i\n", algo); + dt_print(DT_DEBUG_ALWAYS, + "rt_process_forms: unknown algorithm %i\n", algo); if(mask_display) - rt_copy_mask_to_alpha_cl(devid, dev_layer, roi_layer, dev_mask_scaled, &roi_mask_scaled, form_opacity, + rt_copy_mask_to_alpha_cl(devid, dev_layer, roi_layer, + dev_mask_scaled, &roi_mask_scaled, + form_opacity, gd); } @@ -4361,14 +4875,17 @@ dwt_params_cl_t *dwt_p = NULL; const int gui_active = (self->dev) ? (self == self->dev->gui_module) : 0; - const gboolean display_wavelet_scale = (g && gui_active) ? g->display_wavelet_scale : FALSE; + const gboolean display_wavelet_scale = + (g && gui_active) ? g->display_wavelet_scale : FALSE; - // we will do all the clone, heal, etc on the input image, - // this way the source for one algorithm can be the destination from a previous one - const cl_mem in_retouch = dt_opencl_alloc_device_buffer(devid, sizeof(float) * ch * roi_rt->width * roi_rt->height); + // we will do all the clone, heal, etc on the input image, this way + // the source for one algorithm can be the destination from a + // previous one + const cl_mem in_retouch = + dt_opencl_alloc_device_buffer(devid, + sizeof(float) * ch * roi_rt->width * roi_rt->height); if(in_retouch == NULL) { - dt_print(DT_DEBUG_OPENCL, "[retouch process_cl] error allocating memory for wavelet decompose on device %d\n", devid); err = CL_MEM_OBJECT_ALLOCATION_FAILURE; goto cleanup; } @@ -4377,7 +4894,8 @@ { size_t origin[] = { 0, 0, 0 }; size_t region[] = { roi_rt->width, roi_rt->height, 1 }; - err = dt_opencl_enqueue_copy_image_to_buffer(devid, dev_in, in_retouch, origin, region, 0); + err = dt_opencl_enqueue_copy_image_to_buffer(devid, dev_in, + in_retouch, origin, region, 0); if(err != CL_SUCCESS) goto cleanup; } @@ -4386,29 +4904,40 @@ usr_data.piece = piece; usr_data.roi = *roi_rt; usr_data.mask_display = FALSE; - usr_data.suppress_mask = (g && g->suppress_mask && self->dev->gui_attached && (self == self->dev->gui_module) - && (piece->pipe == self->dev->pipe)); + usr_data.suppress_mask = (g + && g->suppress_mask + && self->dev->gui_attached + && (self == self->dev->gui_module) + && (piece->pipe == self->dev->full.pipe)); usr_data.display_scale = p->curr_scale; // init the decompose routine dwt_p = dt_dwt_init_cl(devid, in_retouch, roi_rt->width, roi_rt->height, p->num_scales, - (!display_wavelet_scale || !(piece->pipe->type & DT_DEV_PIXELPIPE_FULL)) ? 0 : p->curr_scale, - p->merge_from_scale, &usr_data, + (!display_wavelet_scale + || !(piece->pipe->type & DT_DEV_PIXELPIPE_FULL)) + ? 0 : p->curr_scale, + p->merge_from_scale, + &usr_data, roi_in->scale / piece->iscale); if(dwt_p == NULL) { - dt_print(DT_DEBUG_OPENCL, "[retouch process_cl] error initializing wavelet decompose on device %d\n", devid); err = CL_MEM_OBJECT_ALLOCATION_FAILURE; goto cleanup; } // check if this module should expose mask. - if((piece->pipe->type & DT_DEV_PIXELPIPE_FULL) && g && g->mask_display && self->dev->gui_attached - && (self == self->dev->gui_module) && (piece->pipe == self->dev->pipe)) + if((piece->pipe->type & DT_DEV_PIXELPIPE_FULL) + && g && g->mask_display + && self->dev->gui_attached + && (self == self->dev->gui_module) + && (piece->pipe == self->dev->full.pipe)) { const int kernel = gd->kernel_retouch_clear_alpha; - err = dt_opencl_enqueue_kernel_2d_args(devid, kernel, roi_rt->width, roi_rt->height, - CLARG(in_retouch), CLARG((roi_rt->width)), CLARG((roi_rt->height))); + err = dt_opencl_enqueue_kernel_2d_args(devid, kernel, + roi_rt->width, roi_rt->height, + CLARG(in_retouch), + CLARG((roi_rt->width)), + CLARG((roi_rt->height))); if(err != CL_SUCCESS) goto cleanup; piece->pipe->mask_display = DT_DEV_PIXELPIPE_DISPLAY_MASK; @@ -4435,7 +4964,9 @@ err = dwt_decompose_cl(dwt_p, rt_process_forms_cl); if(err != CL_SUCCESS) goto cleanup; - dt_aligned_pixel_t levels = { p->preview_levels[0], p->preview_levels[1], p->preview_levels[2] }; + dt_aligned_pixel_t levels = { p->preview_levels[0], + p->preview_levels[1], + p->preview_levels[2] }; // process auto levels if(g && (piece->pipe->type & DT_DEV_PIXELPIPE_FULL)) @@ -4448,7 +4979,8 @@ dt_iop_gui_leave_critical_section(self); levels[0] = levels[1] = levels[2] = 0; - err = rt_process_stats_cl(self, piece, devid, in_retouch, roi_rt->width, roi_rt->height, levels); + err = rt_process_stats_cl(self, piece, devid, in_retouch, + roi_rt->width, roi_rt->height, levels); if(err != CL_SUCCESS) goto cleanup; rt_clamp_minmax(levels, levels); @@ -4462,18 +4994,25 @@ } // if user wants to preview a detail scale adjust levels - if(dwt_p->return_layer > 0 && dwt_p->return_layer < dwt_p->scales + 1) + if(dwt_p->return_layer > 0 + && dwt_p->return_layer < dwt_p->scales + 1) { - err = rt_adjust_levels_cl(self, piece, devid, in_retouch, roi_rt->width, roi_rt->height, levels); + err = rt_adjust_levels_cl(self, piece, devid, in_retouch, + roi_rt->width, roi_rt->height, levels); if(err != CL_SUCCESS) goto cleanup; } // copy alpha channel if needed - if((piece->pipe->mask_display & DT_DEV_PIXELPIPE_DISPLAY_MASK) && g && !g->mask_display) + if((piece->pipe->mask_display & DT_DEV_PIXELPIPE_DISPLAY_MASK) + && g + && !g->mask_display) { const int kernel = gd->kernel_retouch_copy_alpha; err = dt_opencl_enqueue_kernel_2d_args(devid, kernel, roi_rt->width, roi_rt->height, - CLARG(dev_in), CLARG(in_retouch), CLARG((roi_rt->width)), CLARG((roi_rt->height))); + CLARG(dev_in), + CLARG(in_retouch), + CLARG((roi_rt->width)), + CLARG((roi_rt->height))); if(err != CL_SUCCESS) goto cleanup; } @@ -4484,11 +5023,9 @@ cleanup: if(dwt_p) dt_dwt_free_cl(dwt_p); - if(in_retouch) dt_opencl_release_mem_object(in_retouch); + dt_opencl_release_mem_object(in_retouch); - if(err != CL_SUCCESS) dt_print(DT_DEBUG_OPENCL, "[opencl_retouch] couldn't enqueue kernel! %s\n", cl_errstr(err)); - - return (err == CL_SUCCESS) ? TRUE : FALSE; + return err; } #endif diff -Nru darktable-4.4.2/src/iop/rgbcurve.c darktable-4.6.1/src/iop/rgbcurve.c --- darktable-4.4.2/src/iop/rgbcurve.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/rgbcurve.c 2024-02-16 17:31:09.000000000 +0000 @@ -35,7 +35,7 @@ #define DT_GUI_CURVE_EDITOR_INSET DT_PIXEL_APPLY_DPI(1) #define DT_IOP_RGBCURVE_RES 256 -#define DT_IOP_RGBCURVE_MAXNODES 20 +#define DT_IOP_RGBCURVE_MAXNODES MAX_ANCHORS #define DT_IOP_RGBCURVE_MIN_X_DISTANCE 0.0025f // max iccprofile file name length // must be in synch with filename in dt_colorspaces_color_profile_t in colorspaces.h @@ -100,11 +100,11 @@ typedef struct dt_iop_rgbcurve_data_t { + float table[DT_IOP_RGBCURVE_MAX_CHANNELS][0x10000]; // precomputed look-up tables for tone curve dt_iop_rgbcurve_params_t params; dt_draw_curve_t *curve[DT_IOP_RGBCURVE_MAX_CHANNELS]; // curves for pipe piece and pixel processing - float table[DT_IOP_RGBCURVE_MAX_CHANNELS][0x10000]; // precomputed look-up tables for tone curve float unbounded_coeffs[DT_IOP_RGBCURVE_MAX_CHANNELS][3]; // approximation for extrapolation - int curve_changed[DT_IOP_RGBCURVE_MAX_CHANNELS]; // curve type or number of nodes changed? + gboolean curve_changed[DT_IOP_RGBCURVE_MAX_CHANNELS]; // curve type changed? dt_colorspaces_color_profile_type_t type_work; // working color profile char filename_work[DT_IOP_COLOR_ICC_LEN]; } dt_iop_rgbcurve_data_t; @@ -132,18 +132,21 @@ return IOP_FLAGS_SUPPORTS_BLENDING | IOP_FLAGS_ALLOW_TILING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } const char **description(struct dt_iop_module_t *self) { - return dt_iop_set_description(self, _("alter an image’s tones using curves in RGB color space"), - _("corrective and creative"), - _("linear, RGB, display-referred"), - _("non-linear, RGB"), - _("linear, RGB, display-referred")); + return dt_iop_set_description + (self, _("alter an image’s tones using curves in RGB color space"), + _("corrective and creative"), + _("linear, RGB, display-referred"), + _("non-linear, RGB"), + _("linear, RGB, display-referred")); } void init_presets(dt_iop_module_so_t *self) @@ -182,7 +185,8 @@ p.curve_nodes[DT_IOP_RGBCURVE_R][4].y = 0.773852; p.curve_nodes[DT_IOP_RGBCURVE_R][5].y = 1.000000; dt_gui_presets_add_generic(_("contrast compression"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), + 1, DEVELOP_BLEND_CS_RGB_DISPLAY); p.curve_num_nodes[DT_IOP_RGBCURVE_R] = 7; float linear_L[7] = { 0.0, 0.08, 0.17, 0.50, 0.83, 0.92, 1.0 }; @@ -191,7 +195,8 @@ for(int k = 0; k < 7; k++) p.curve_nodes[DT_IOP_RGBCURVE_R][k].x = linear_L[k]; for(int k = 0; k < 7; k++) p.curve_nodes[DT_IOP_RGBCURVE_R][k].y = linear_L[k]; dt_gui_presets_add_generic(_("gamma 1.0 (linear)"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), + 1, DEVELOP_BLEND_CS_RGB_DISPLAY); // Linear contrast for(int k = 0; k < 7; k++) p.curve_nodes[DT_IOP_RGBCURVE_R][k].x = linear_L[k]; @@ -201,7 +206,8 @@ p.curve_nodes[DT_IOP_RGBCURVE_R][4].y += 0.030; p.curve_nodes[DT_IOP_RGBCURVE_R][5].y += 0.020; dt_gui_presets_add_generic(_("contrast - med (linear)"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), + 1, DEVELOP_BLEND_CS_RGB_DISPLAY); for(int k = 0; k < 7; k++) p.curve_nodes[DT_IOP_RGBCURVE_R][k].x = linear_L[k]; for(int k = 0; k < 7; k++) p.curve_nodes[DT_IOP_RGBCURVE_R][k].y = linear_L[k]; @@ -210,7 +216,8 @@ p.curve_nodes[DT_IOP_RGBCURVE_R][4].y += 0.060; p.curve_nodes[DT_IOP_RGBCURVE_R][5].y += 0.040; dt_gui_presets_add_generic(_("contrast - high (linear)"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), + 1, DEVELOP_BLEND_CS_RGB_DISPLAY); // Gamma contrast for(int k = 0; k < 7; k++) p.curve_nodes[DT_IOP_RGBCURVE_R][k].x = linear_L[k]; @@ -220,11 +227,14 @@ p.curve_nodes[DT_IOP_RGBCURVE_R][4].y += 0.030; p.curve_nodes[DT_IOP_RGBCURVE_R][5].y += 0.020; for(int k = 1; k < 6; k++) - p.curve_nodes[DT_IOP_RGBCURVE_R][k].x = powf(p.curve_nodes[DT_IOP_RGBCURVE_R][k].x, 2.2f); + p.curve_nodes[DT_IOP_RGBCURVE_R][k].x = + powf(p.curve_nodes[DT_IOP_RGBCURVE_R][k].x, 2.2f); for(int k = 1; k < 6; k++) - p.curve_nodes[DT_IOP_RGBCURVE_R][k].y = powf(p.curve_nodes[DT_IOP_RGBCURVE_R][k].y, 2.2f); + p.curve_nodes[DT_IOP_RGBCURVE_R][k].y = + powf(p.curve_nodes[DT_IOP_RGBCURVE_R][k].y, 2.2f); dt_gui_presets_add_generic(_("contrast - med (gamma 2.2)"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), + 1, DEVELOP_BLEND_CS_RGB_DISPLAY); for(int k = 0; k < 7; k++) p.curve_nodes[DT_IOP_RGBCURVE_R][k].x = linear_L[k]; for(int k = 0; k < 7; k++) p.curve_nodes[DT_IOP_RGBCURVE_R][k].y = linear_L[k]; @@ -233,11 +243,14 @@ p.curve_nodes[DT_IOP_RGBCURVE_R][4].y += 0.060; p.curve_nodes[DT_IOP_RGBCURVE_R][5].y += 0.040; for(int k = 1; k < 6; k++) - p.curve_nodes[DT_IOP_RGBCURVE_R][k].x = powf(p.curve_nodes[DT_IOP_RGBCURVE_R][k].x, 2.2f); + p.curve_nodes[DT_IOP_RGBCURVE_R][k].x = + powf(p.curve_nodes[DT_IOP_RGBCURVE_R][k].x, 2.2f); for(int k = 1; k < 6; k++) - p.curve_nodes[DT_IOP_RGBCURVE_R][k].y = powf(p.curve_nodes[DT_IOP_RGBCURVE_R][k].y, 2.2f); + p.curve_nodes[DT_IOP_RGBCURVE_R][k].y = + powf(p.curve_nodes[DT_IOP_RGBCURVE_R][k].y, 2.2f); dt_gui_presets_add_generic(_("contrast - high (gamma 2.2)"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), + 1, DEVELOP_BLEND_CS_RGB_DISPLAY); /** for pure power-like functions, we need more nodes close to the bounds**/ @@ -250,36 +263,48 @@ for(int k = 1; k < 6; k++) p.curve_nodes[DT_IOP_RGBCURVE_R][k].y = (linear_L[k] * linear_L[k]); dt_gui_presets_add_generic(_("gamma 2.0"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), + 1, DEVELOP_BLEND_CS_RGB_DISPLAY); // Gamma 0.5 - no contrast for(int k = 1; k < 6; k++) p.curve_nodes[DT_IOP_RGBCURVE_R][k].y = sqrtf(linear_L[k]); dt_gui_presets_add_generic(_("gamma 0.5"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), + 1, DEVELOP_BLEND_CS_RGB_DISPLAY); // Log2 - no contrast - for(int k = 1; k < 6; k++) p.curve_nodes[DT_IOP_RGBCURVE_R][k].y = logf(linear_L[k] + 1.0f) / logf(2.0f); + for(int k = 1; k < 6; k++) + p.curve_nodes[DT_IOP_RGBCURVE_R][k].y = logf(linear_L[k] + 1.0f) / logf(2.0f); dt_gui_presets_add_generic(_("logarithm (base 2)"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), + 1, DEVELOP_BLEND_CS_RGB_DISPLAY); // Exp2 - no contrast - for(int k = 1; k < 6; k++) p.curve_nodes[DT_IOP_RGBCURVE_R][k].y = powf(2.0f, linear_L[k]) - 1.0f; + for(int k = 1; k < 6; k++) + p.curve_nodes[DT_IOP_RGBCURVE_R][k].y = powf(2.0f, linear_L[k]) - 1.0f; dt_gui_presets_add_generic(_("exponential (base 2)"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), + 1, DEVELOP_BLEND_CS_RGB_DISPLAY); } -static float _curve_to_mouse(const float x, const float zoom_factor, const float offset) +static float _curve_to_mouse(const float x, + const float zoom_factor, + const float offset) { return (x - offset) * zoom_factor; } -static float _mouse_to_curve(const float x, const float zoom_factor, const float offset) +static float _mouse_to_curve(const float x, + const float zoom_factor, + const float offset) { return (x / zoom_factor) + offset; } -static void picker_scale(const float *const in, float *out, dt_iop_rgbcurve_params_t *p, +static void picker_scale(const float *const in, + float *out, + dt_iop_rgbcurve_params_t *p, const dt_iop_order_iccprofile_info_t *const work_profile) { switch(p->curve_autoscale) @@ -287,23 +312,26 @@ case DT_S_SCALE_MANUAL_RGB: if(p->compensate_middle_grey && work_profile) { - for(int c = 0; c < 3; c++) out[c] = dt_ioppr_compensate_middle_grey(in[c], work_profile); + for(int c = 0; c < 3; c++) + out[c] = dt_ioppr_compensate_middle_grey(in[c], work_profile); } else { - for(int c = 0; c < 3; c++) out[c] = in[c]; + for(int c = 0; c < 3; c++) + out[c] = in[c]; } break; case DT_S_SCALE_AUTOMATIC_RGB: { const float val - = (work_profile) ? dt_ioppr_get_rgb_matrix_luminance(in, - work_profile->matrix_in, - work_profile->lut_in, - work_profile->unbounded_coeffs_in, - work_profile->lutsize, - work_profile->nonlinearlut) - : dt_camera_rgb_luminance(in); + = (work_profile) + ? dt_ioppr_get_rgb_matrix_luminance(in, + work_profile->matrix_in, + work_profile->lut_in, + work_profile->unbounded_coeffs_in, + work_profile->lutsize, + work_profile->nonlinearlut) + : dt_camera_rgb_luminance(in); if(p->compensate_middle_grey && work_profile) { out[0] = dt_ioppr_compensate_middle_grey(val, work_profile); @@ -317,17 +345,21 @@ break; } - for(int c = 0; c < 3; c++) out[c] = CLAMP(out[c], 0.0f, 1.0f); + for(int c = 0; c < 3; c++) out[c] = CLIP(out[c]); } -static void _rgbcurve_show_hide_controls(dt_iop_rgbcurve_params_t *p, dt_iop_rgbcurve_gui_data_t *g) +static void _rgbcurve_show_hide_controls(dt_iop_rgbcurve_params_t *p, + dt_iop_rgbcurve_gui_data_t *g) { - gtk_notebook_set_show_tabs(g->channel_tabs, p->curve_autoscale == DT_S_SCALE_MANUAL_RGB); + gtk_notebook_set_show_tabs(g->channel_tabs, + p->curve_autoscale == DT_S_SCALE_MANUAL_RGB); - gtk_widget_set_visible(g->cmb_preserve_colors, p->curve_autoscale == DT_S_SCALE_AUTOMATIC_RGB); + gtk_widget_set_visible(g->cmb_preserve_colors, + p->curve_autoscale == DT_S_SCALE_AUTOMATIC_RGB); } -static gboolean _is_identity(dt_iop_rgbcurve_params_t *p, rgbcurve_channel_t channel) +static gboolean _is_identity(dt_iop_rgbcurve_params_t *p, + rgbcurve_channel_t channel) { for(int k=0; k<p->curve_num_nodes[channel]; k++) if(p->curve_nodes[channel][k].x != p->curve_nodes[channel][k].y) return FALSE; @@ -335,7 +367,9 @@ return TRUE; } -void gui_changed(dt_iop_module_t *self, GtkWidget *w, void *previous) +void gui_changed(dt_iop_module_t *self, + GtkWidget *w, + void *previous) { dt_iop_rgbcurve_gui_data_t *g = (dt_iop_rgbcurve_gui_data_t *)self->gui_data; dt_iop_rgbcurve_params_t *p = (dt_iop_rgbcurve_params_t *)self->params; @@ -347,7 +381,8 @@ _rgbcurve_show_hide_controls(p, g); - // switching to manual scale, if G and B not touched yet, just make them identical to global setting (R) + // switching to manual scale, if G and B not touched yet, just + // make them identical to global setting (R) if(p->curve_autoscale == DT_S_SCALE_MANUAL_RGB && _is_identity(p, DT_IOP_RGBCURVE_G) && _is_identity(p, DT_IOP_RGBCURVE_B)) @@ -375,14 +410,18 @@ if(p->compensate_middle_grey) { // we transform the curve nodes from the image colorspace to lab - p->curve_nodes[ch][k].x = dt_ioppr_compensate_middle_grey(p->curve_nodes[ch][k].x, work_profile); - p->curve_nodes[ch][k].y = dt_ioppr_compensate_middle_grey(p->curve_nodes[ch][k].y, work_profile); + p->curve_nodes[ch][k].x = + dt_ioppr_compensate_middle_grey(p->curve_nodes[ch][k].x, work_profile); + p->curve_nodes[ch][k].y = + dt_ioppr_compensate_middle_grey(p->curve_nodes[ch][k].y, work_profile); } else { // we transform the curve nodes from lab to the image colorspace - p->curve_nodes[ch][k].x = dt_ioppr_uncompensate_middle_grey(p->curve_nodes[ch][k].x, work_profile); - p->curve_nodes[ch][k].y = dt_ioppr_uncompensate_middle_grey(p->curve_nodes[ch][k].y, work_profile); + p->curve_nodes[ch][k].x = + dt_ioppr_uncompensate_middle_grey(p->curve_nodes[ch][k].x, work_profile); + p->curve_nodes[ch][k].y = + dt_ioppr_uncompensate_middle_grey(p->curve_nodes[ch][k].y, work_profile); } } } @@ -391,7 +430,8 @@ } } -static void interpolator_callback(GtkWidget *widget, dt_iop_module_t *self) +static void interpolator_callback(GtkWidget *widget, + dt_iop_module_t *self) { if(darktable.gui->reset) return; dt_iop_rgbcurve_params_t *p = (dt_iop_rgbcurve_params_t *)self->params; @@ -400,20 +440,26 @@ const int combo = dt_bauhaus_combobox_get(widget); if(combo == 0) - p->curve_type[DT_IOP_RGBCURVE_R] = p->curve_type[DT_IOP_RGBCURVE_G] = p->curve_type[DT_IOP_RGBCURVE_B] + p->curve_type[DT_IOP_RGBCURVE_R] = + p->curve_type[DT_IOP_RGBCURVE_G] = p->curve_type[DT_IOP_RGBCURVE_B] = CUBIC_SPLINE; else if(combo == 1) - p->curve_type[DT_IOP_RGBCURVE_R] = p->curve_type[DT_IOP_RGBCURVE_G] = p->curve_type[DT_IOP_RGBCURVE_B] + p->curve_type[DT_IOP_RGBCURVE_R] = + p->curve_type[DT_IOP_RGBCURVE_G] = p->curve_type[DT_IOP_RGBCURVE_B] = CATMULL_ROM; else if(combo == 2) - p->curve_type[DT_IOP_RGBCURVE_R] = p->curve_type[DT_IOP_RGBCURVE_G] = p->curve_type[DT_IOP_RGBCURVE_B] - = MONOTONE_HERMITE; + p->curve_type[DT_IOP_RGBCURVE_R] = + p->curve_type[DT_IOP_RGBCURVE_G] = p->curve_type[DT_IOP_RGBCURVE_B] + = MONOTONE_HERMITE; dt_dev_add_history_item_target(darktable.develop, self, TRUE, widget); gtk_widget_queue_draw(GTK_WIDGET(g->area)); } -static void tab_switch_callback(GtkNotebook *notebook, GtkWidget *page, guint page_num, gpointer user_data) +static void tab_switch_callback(GtkNotebook *notebook, + GtkWidget *page, + guint page_num, + gpointer user_data) { if(darktable.gui->reset) return; dt_iop_module_t *self = (dt_iop_module_t *)user_data; @@ -424,7 +470,10 @@ gtk_widget_queue_draw(self->widget); } -static inline int _add_node(dt_iop_rgbcurve_node_t *curve_nodes, int *nodes, float x, float y) +static inline int _add_node(dt_iop_rgbcurve_node_t *curve_nodes, + int *nodes, + float x, + float y) { int selected = -1; if(curve_nodes[0].x > x) @@ -453,21 +502,26 @@ return selected; } -static inline int _add_node_from_picker(dt_iop_rgbcurve_params_t *p, const float *const in, const float increment, - const int ch, const dt_iop_order_iccprofile_info_t *const work_profile) +static inline int _add_node_from_picker + (dt_iop_rgbcurve_params_t *p, + const float *const in, + const float increment, + const int ch, + const dt_iop_order_iccprofile_info_t *const work_profile) { float x = 0.f; float y = 0.f; float val = 0.f; if(p->curve_autoscale == DT_S_SCALE_AUTOMATIC_RGB) - val = (work_profile) ? dt_ioppr_get_rgb_matrix_luminance(in, - work_profile->matrix_in, - work_profile->lut_in, - work_profile->unbounded_coeffs_in, - work_profile->lutsize, - work_profile->nonlinearlut) - : dt_camera_rgb_luminance(in); + val = (work_profile) + ? dt_ioppr_get_rgb_matrix_luminance(in, + work_profile->matrix_in, + work_profile->lut_in, + work_profile->unbounded_coeffs_in, + work_profile->lutsize, + work_profile->nonlinearlut) + : dt_camera_rgb_luminance(in); else val = in[ch]; @@ -476,25 +530,26 @@ else y = x = val; - x -= increment; - y += increment; - - CLAMP(x, 0.f, 1.f); - CLAMP(y, 0.f, 1.f); + x = CLIP(x - increment); + y = CLIP(y + increment); return _add_node(p->curve_nodes[ch], &p->curve_num_nodes[ch], x, y); } -void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece) +void color_picker_apply(dt_iop_module_t *self, + GtkWidget *picker, + dt_dev_pixelpipe_t *pipe) { dt_iop_rgbcurve_gui_data_t *g = (dt_iop_rgbcurve_gui_data_t *)self->gui_data; if(picker == g->colorpicker_set_values) { dt_iop_rgbcurve_params_t *p = (dt_iop_rgbcurve_params_t *)self->params; - dt_iop_rgbcurve_params_t *d = (dt_iop_rgbcurve_params_t *)self->default_params; + const dt_iop_rgbcurve_params_t *const d = + (dt_iop_rgbcurve_params_t *)self->default_params; const int ch = g->channel; - const dt_iop_order_iccprofile_info_t *const work_profile = dt_ioppr_get_pipe_work_profile_info(piece->pipe); + const dt_iop_order_iccprofile_info_t *const work_profile = + dt_ioppr_get_pipe_work_profile_info(pipe); // reset current curve p->curve_num_nodes[ch] = d->curve_num_nodes[ch]; @@ -523,8 +578,10 @@ if(p->curve_num_nodes[ch] == 5) _add_node(p->curve_nodes[ch], &p->curve_num_nodes[ch], - p->curve_nodes[ch][1].x - increment + (p->curve_nodes[ch][3].x - p->curve_nodes[ch][1].x) / 2.f, - p->curve_nodes[ch][1].y + increment + (p->curve_nodes[ch][3].y - p->curve_nodes[ch][1].y) / 2.f); + p->curve_nodes[ch][1].x - increment + + (p->curve_nodes[ch][3].x - p->curve_nodes[ch][1].x) / 2.f, + p->curve_nodes[ch][1].y + increment + + (p->curve_nodes[ch][3].y - p->curve_nodes[ch][1].y) / 2.f); dt_dev_add_history_item(darktable.develop, self, TRUE); } @@ -532,7 +589,9 @@ dt_control_queue_redraw_widget(self->widget); } -static gboolean _sanity_check(const float x, const int selected, const int nodes, +static gboolean _sanity_check(const float x, + const int selected, + const int nodes, const dt_iop_rgbcurve_node_t *curve) { gboolean point_valid = TRUE; @@ -545,7 +604,9 @@ // for all points, x coordinate of point must be strictly larger than // the x coordinate of the previous point - if((selected > 0 && (curve[selected - 1].x >= x)) || (selected < nodes - 1 && (curve[selected + 1].x <= x))) + if((selected > 0 && (curve[selected - 1].x >= x)) + || (selected < nodes - 1 + && (curve[selected + 1].x <= x))) { point_valid = FALSE; } @@ -553,7 +614,11 @@ return point_valid; } -static gboolean _move_point_internal(dt_iop_module_t *self, GtkWidget *widget, float dx, float dy, guint state) +static gboolean _move_point_internal(dt_iop_module_t *self, + GtkWidget *widget, + float dx, + float dy, + guint state) { dt_iop_rgbcurve_params_t *p = (dt_iop_rgbcurve_params_t *)self->params; dt_iop_rgbcurve_gui_data_t *g = (dt_iop_rgbcurve_gui_data_t *)self->gui_data; @@ -565,8 +630,8 @@ dx *= multiplier; dy *= multiplier; - const float new_x = CLAMP(curve[g->selected].x + dx, 0.0f, 1.0f); - const float new_y = CLAMP(curve[g->selected].y + dy, 0.0f, 1.0f); + const float new_x = CLIP(curve[g->selected].x + dx); + const float new_y = CLIP(curve[g->selected].y + dy); gtk_widget_queue_draw(widget); @@ -583,7 +648,9 @@ #define RGBCURVE_DEFAULT_STEP (0.001f) -static gboolean _area_scrolled_callback(GtkWidget *widget, GdkEventScroll *event, dt_iop_module_t *self) +static gboolean _area_scrolled_callback(GtkWidget *widget, + GdkEventScroll *event, + dt_iop_module_t *self) { dt_iop_rgbcurve_params_t *p = (dt_iop_rgbcurve_params_t *)self->params; dt_iop_rgbcurve_gui_data_t *g = (dt_iop_rgbcurve_gui_data_t *)self->gui_data; @@ -620,7 +687,9 @@ } // if autoscale is on: do not modify g and b curves - if((p->curve_autoscale != DT_S_SCALE_MANUAL_RGB) && g->channel != DT_IOP_RGBCURVE_R) return TRUE; + if((p->curve_autoscale != DT_S_SCALE_MANUAL_RGB) + && g->channel != DT_IOP_RGBCURVE_R) + return TRUE; if(g->selected < 0) return TRUE; @@ -635,7 +704,9 @@ return TRUE; } -static gboolean _area_key_press_callback(GtkWidget *widget, GdkEventKey *event, dt_iop_module_t *self) +static gboolean _area_key_press_callback(GtkWidget *widget, + GdkEventKey *event, + dt_iop_module_t *self) { dt_iop_rgbcurve_params_t *p = (dt_iop_rgbcurve_params_t *)self->params; dt_iop_rgbcurve_gui_data_t *g = (dt_iop_rgbcurve_gui_data_t *)self->gui_data; @@ -643,7 +714,9 @@ if(darktable.develop->darkroom_skip_mouse_events) return FALSE; // if autoscale is on: do not modify g and b curves - if((p->curve_autoscale != DT_S_SCALE_MANUAL_RGB) && g->channel != DT_IOP_RGBCURVE_R) return TRUE; + if((p->curve_autoscale != DT_S_SCALE_MANUAL_RGB) + && g->channel != DT_IOP_RGBCURVE_R) + return TRUE; if(g->selected < 0) return FALSE; @@ -678,7 +751,9 @@ #undef RGBCURVE_DEFAULT_STEP -static gboolean _area_leave_notify_callback(GtkWidget *widget, GdkEventCrossing *event, dt_iop_module_t *self) +static gboolean _area_leave_notify_callback(GtkWidget *widget, + GdkEventCrossing *event, + dt_iop_module_t *self) { dt_iop_rgbcurve_gui_data_t *g = (dt_iop_rgbcurve_gui_data_t *)self->gui_data; if(!(event->state & GDK_BUTTON1_MASK)) @@ -688,7 +763,9 @@ return FALSE; } -static gboolean _area_draw_callback(GtkWidget *widget, cairo_t *crf, dt_iop_module_t *self) +static gboolean _area_draw_callback(GtkWidget *widget, + cairo_t *crf, + dt_iop_module_t *self) { dt_iop_rgbcurve_gui_data_t *g = (dt_iop_rgbcurve_gui_data_t *)self->gui_data; dt_iop_rgbcurve_params_t *p = (dt_iop_rgbcurve_params_t *)self->params; @@ -699,19 +776,22 @@ const int autoscale = p->curve_autoscale; dt_iop_rgbcurve_node_t *curve_nodes = p->curve_nodes[ch]; - if(g->minmax_curve_type[ch] != p->curve_type[ch] || g->minmax_curve_nodes[ch] != p->curve_num_nodes[ch]) + if(g->minmax_curve_type[ch] != p->curve_type[ch] + || g->minmax_curve_nodes[ch] != p->curve_num_nodes[ch]) { dt_draw_curve_destroy(g->minmax_curve[ch]); g->minmax_curve[ch] = dt_draw_curve_new(0.0, 1.0, p->curve_type[ch]); g->minmax_curve_nodes[ch] = p->curve_num_nodes[ch]; g->minmax_curve_type[ch] = p->curve_type[ch]; for(int k = 0; k < p->curve_num_nodes[ch]; k++) - (void)dt_draw_curve_add_point(g->minmax_curve[ch], p->curve_nodes[ch][k].x, p->curve_nodes[ch][k].y); + dt_draw_curve_add_point(g->minmax_curve[ch], + p->curve_nodes[ch][k].x, p->curve_nodes[ch][k].y); } else { for(int k = 0; k < p->curve_num_nodes[ch]; k++) - dt_draw_curve_set_point(g->minmax_curve[ch], k, p->curve_nodes[ch][k].x, p->curve_nodes[ch][k].y); + dt_draw_curve_set_point(g->minmax_curve[ch], k, + p->curve_nodes[ch][k].x, p->curve_nodes[ch][k].y); } dt_draw_curve_t *minmax_curve = g->minmax_curve[ch]; dt_draw_curve_calc_values(minmax_curve, 0.0, 1.0, DT_IOP_RGBCURVE_RES, NULL, g->draw_ys); @@ -720,10 +800,12 @@ const float xm = curve_nodes[nodes - 1].x; { const float x[4] = { 0.7f * xm, 0.8f * xm, 0.9f * xm, 1.0f * xm }; - const float y[4] = { g->draw_ys[CLAMP((int)(x[0] * DT_IOP_RGBCURVE_RES), 0, DT_IOP_RGBCURVE_RES - 1)], - g->draw_ys[CLAMP((int)(x[1] * DT_IOP_RGBCURVE_RES), 0, DT_IOP_RGBCURVE_RES - 1)], - g->draw_ys[CLAMP((int)(x[2] * DT_IOP_RGBCURVE_RES), 0, DT_IOP_RGBCURVE_RES - 1)], - g->draw_ys[CLAMP((int)(x[3] * DT_IOP_RGBCURVE_RES), 0, DT_IOP_RGBCURVE_RES - 1)] }; + const float y[4] = + { g->draw_ys[CLAMP((int)(x[0] * DT_IOP_RGBCURVE_RES), 0, DT_IOP_RGBCURVE_RES - 1)], + g->draw_ys[CLAMP((int)(x[1] * DT_IOP_RGBCURVE_RES), 0, DT_IOP_RGBCURVE_RES - 1)], + g->draw_ys[CLAMP((int)(x[2] * DT_IOP_RGBCURVE_RES), 0, DT_IOP_RGBCURVE_RES - 1)], + g->draw_ys[CLAMP((int)(x[3] * DT_IOP_RGBCURVE_RES), 0, DT_IOP_RGBCURVE_RES - 1)] + }; dt_iop_estimate_exp(x, y, 4, unbounded_coeffs); } @@ -758,12 +840,14 @@ cairo_translate(cr, 0, height); - dt_draw_grid_zoomed(cr, 4, 0.f, 0.f, 1.f, 1.f, width, height, g->zoom_factor, g->offset_x, g->offset_y); + dt_draw_grid_zoomed(cr, 4, 0.f, 0.f, 1.f, 1.f, + width, height, g->zoom_factor, g->offset_x, g->offset_y); const double dashed[] = { 4.0, 4.0 }; const int len = sizeof(dashed) / sizeof(dashed[0]); cairo_set_dash(cr, dashed, len, 0); - dt_draw_grid_zoomed(cr, 8, 0.f, 0.f, 1.f, 1.f, width, height, g->zoom_factor, g->offset_x, g->offset_y); + dt_draw_grid_zoomed(cr, 8, 0.f, 0.f, 1.f, 1.f, + width, height, g->zoom_factor, g->offset_x, g->offset_y); cairo_set_dash(cr, dashed, 0, 0); // draw identity line @@ -795,8 +879,10 @@ if(g->selected >= 0) { cairo_set_source_rgb(cr, .9, .9, .9); - const float x = _curve_to_mouse(curve_nodes[g->selected].x, g->zoom_factor, g->offset_x), - y = _curve_to_mouse(curve_nodes[g->selected].y, g->zoom_factor, g->offset_y); + const float x = _curve_to_mouse(curve_nodes[g->selected].x, + g->zoom_factor, g->offset_x), + y = _curve_to_mouse(curve_nodes[g->selected].y, + g->zoom_factor, g->offset_y); cairo_arc(cr, x * width, -y * height, DT_PIXEL_APPLY_DPI(4), 0, 2. * M_PI); cairo_stroke(cr); @@ -811,7 +897,9 @@ float hist_max; if(autoscale == DT_S_SCALE_AUTOMATIC_RGB) - hist_max = fmaxf(self->histogram_max[DT_IOP_RGBCURVE_R], fmaxf(self->histogram_max[DT_IOP_RGBCURVE_G],self->histogram_max[DT_IOP_RGBCURVE_B])); + hist_max = fmaxf(self->histogram_max[DT_IOP_RGBCURVE_R], + fmaxf(self->histogram_max[DT_IOP_RGBCURVE_G], + self->histogram_max[DT_IOP_RGBCURVE_B])); else hist_max = self->histogram_max[ch]; @@ -829,14 +917,18 @@ for(int k=DT_IOP_RGBCURVE_R; k<DT_IOP_RGBCURVE_MAX_CHANNELS; k++) { set_color(cr, darktable.bauhaus->graph_colors[k]); - dt_draw_histogram_8_zoomed(cr, hist, 4, k, g->zoom_factor, g->offset_x * 255.0, g->offset_y * hist_max, + dt_draw_histogram_8_zoomed(cr, hist, 4, k, + g->zoom_factor, + g->offset_x * 255.0, g->offset_y * hist_max, is_linear); } } else if(autoscale == DT_S_SCALE_MANUAL_RGB) { set_color(cr, darktable.bauhaus->graph_colors[ch]); - dt_draw_histogram_8_zoomed(cr, hist, 4, ch, g->zoom_factor, g->offset_x * 255.0, g->offset_y * hist_max, + dt_draw_histogram_8_zoomed(cr, hist, 4, ch, + g->zoom_factor, + g->offset_x * 255.0, g->offset_y * hist_max, is_linear); } @@ -855,7 +947,8 @@ GSList *samples = darktable.lib->proxy.colorpicker.live_samples; if(samples) { - const dt_iop_order_iccprofile_info_t *const histogram_profile = dt_ioppr_get_histogram_profile_info(dev); + const dt_iop_order_iccprofile_info_t *const histogram_profile = + dt_ioppr_get_histogram_profile_info(dev); if(work_profile && histogram_profile) { for(; samples; samples = g_slist_next(samples)) @@ -871,11 +964,14 @@ } picker_mean[3] = picker_min[3] = picker_max[3] = 1.f; - dt_ioppr_transform_image_colorspace_rgb(picker_mean, picker_mean, 1, 1, histogram_profile, + dt_ioppr_transform_image_colorspace_rgb(picker_mean, picker_mean, + 1, 1, histogram_profile, work_profile, "rgb curve"); - dt_ioppr_transform_image_colorspace_rgb(picker_min, picker_min, 1, 1, histogram_profile, work_profile, + dt_ioppr_transform_image_colorspace_rgb(picker_min, picker_min, + 1, 1, histogram_profile, work_profile, "rgb curve"); - dt_ioppr_transform_image_colorspace_rgb(picker_max, picker_max, 1, 1, histogram_profile, work_profile, + dt_ioppr_transform_image_colorspace_rgb(picker_max, picker_max, + 1, 1, histogram_profile, work_profile, "rgb curve"); picker_scale(picker_mean, picker_mean, p, work_profile); @@ -888,7 +984,8 @@ picker_mean[ch] = _curve_to_mouse(picker_mean[ch], g->zoom_factor, g->offset_x); cairo_set_source_rgba(cr, 0.5, 0.7, 0.5, 0.15); - cairo_rectangle(cr, width * picker_min[ch], 0, width * fmax(picker_max[ch] - picker_min[ch], 0.0f), + cairo_rectangle(cr, width * picker_min[ch], 0, + width * fmax(picker_max[ch] - picker_min[ch], 0.0f), -height); cairo_fill(cr); cairo_set_source_rgba(cr, 0.5, 0.7, 0.5, 0.5); @@ -904,7 +1001,8 @@ { PangoLayout *layout; PangoRectangle ink; - PangoFontDescription *desc = pango_font_description_copy_static(darktable.bauhaus->pango_font_desc); + PangoFontDescription *desc = + pango_font_description_copy_static(darktable.bauhaus->pango_font_desc); pango_font_description_set_weight(desc, PANGO_WEIGHT_BOLD); pango_font_description_set_absolute_size(desc, PANGO_SCALE); layout = pango_cairo_create_layout(cr); @@ -918,7 +1016,8 @@ snprintf(text, sizeof(text), "100.00 / 100.00 ( +100.00)"); pango_layout_set_text(layout, text, -1); pango_layout_get_pixel_extents(layout, &ink, NULL); - pango_font_description_set_absolute_size(desc, width * 1.0 / ink.width * PANGO_SCALE); + pango_font_description_set_absolute_size(desc, + width * 1.0 / ink.width * PANGO_SCALE); pango_layout_set_font_description(layout, desc); picker_min[ch] = _curve_to_mouse(picker_min[ch], g->zoom_factor, g->offset_x); @@ -926,7 +1025,8 @@ picker_mean[ch] = _curve_to_mouse(picker_mean[ch], g->zoom_factor, g->offset_x); cairo_set_source_rgba(cr, 0.7, 0.5, 0.5, 0.33); - cairo_rectangle(cr, width * picker_min[ch], 0, width * fmax(picker_max[ch] - picker_min[ch], 0.0f), + cairo_rectangle(cr, width * picker_min[ch], 0, + width * fmax(picker_max[ch] - picker_min[ch], 0.0f), -height); cairo_fill(cr); cairo_set_source_rgba(cr, 0.9, 0.7, 0.7, 0.5); @@ -936,7 +1036,8 @@ picker_scale(self->picked_color, picker_mean, p, work_profile); picker_scale(self->picked_output_color, picker_min, p, work_profile); - snprintf(text, sizeof(text), "%.1f → %.1f", picker_mean[ch] * 255.f, picker_min[ch] * 255.f); + snprintf(text, sizeof(text), "%.1f → %.1f", + picker_mean[ch] * 255.f, picker_min[ch] * 255.f); cairo_set_source_rgb(cr, 0.1, 0.1, 0.1); cairo_set_font_size(cr, DT_PIXEL_APPLY_DPI(0.04) * height); @@ -956,7 +1057,8 @@ { PangoLayout *layout; PangoRectangle ink; - PangoFontDescription *desc = pango_font_description_copy_static(darktable.bauhaus->pango_font_desc); + PangoFontDescription *desc = + pango_font_description_copy_static(darktable.bauhaus->pango_font_desc); pango_font_description_set_weight(desc, PANGO_WEIGHT_BOLD); pango_font_description_set_absolute_size(desc, PANGO_SCALE); layout = pango_cairo_create_layout(cr); @@ -969,13 +1071,16 @@ pango_font_description_set_absolute_size(desc, width * 1.0 / ink.width * PANGO_SCALE); pango_layout_set_font_description(layout, desc); - snprintf(text, sizeof(text), "zoom: %i x: %i y: %i", (int)((g->zoom_factor - 1.f) * 100.f), - (int)(g->offset_x * 100.f), (int)(g->offset_y * 100.f)); + snprintf(text, sizeof(text), "zoom: %i x: %i y: %i", + (int)((g->zoom_factor - 1.f) * 100.f), + (int)(g->offset_x * 100.f), + (int)(g->offset_y * 100.f)); cairo_set_source_rgba(cr, 0.1, 0.1, 0.1, 0.5); pango_layout_set_text(layout, text, -1); pango_layout_get_pixel_extents(layout, &ink, NULL); - cairo_move_to(cr, 0.98f * width - ink.width - ink.x, -0.02 * height - ink.height - ink.y); + cairo_move_to(cr, 0.98f * width - ink.width - ink.x, + -0.02 * height - ink.height - ink.y); pango_cairo_show_layout(cr, layout); cairo_stroke(cr); pango_font_description_free(desc); @@ -986,7 +1091,8 @@ // draw information about current selected node PangoLayout *layout; PangoRectangle ink; - PangoFontDescription *desc = pango_font_description_copy_static(darktable.bauhaus->pango_font_desc); + PangoFontDescription *desc = + pango_font_description_copy_static(darktable.bauhaus->pango_font_desc); pango_font_description_set_weight(desc, PANGO_WEIGHT_BOLD); pango_font_description_set_absolute_size(desc, PANGO_SCALE); layout = pango_cairo_create_layout(cr); @@ -1002,15 +1108,19 @@ const float min_scale_value = 0.0f; const float max_scale_value = 255.0f; - const float x_node_value = curve_nodes[g->selected].x * (max_scale_value - min_scale_value) + min_scale_value; - const float y_node_value = curve_nodes[g->selected].y * (max_scale_value - min_scale_value) + min_scale_value; + const float x_node_value = + curve_nodes[g->selected].x * (max_scale_value - min_scale_value) + min_scale_value; + const float y_node_value = + curve_nodes[g->selected].y * (max_scale_value - min_scale_value) + min_scale_value; const float d_node_value = y_node_value - x_node_value; - snprintf(text, sizeof(text), "%.1f / %.1f ( %+.1f)", x_node_value, y_node_value, d_node_value); + snprintf(text, sizeof(text), "%.1f / %.1f ( %+.1f)", + x_node_value, y_node_value, d_node_value); cairo_set_source_rgb(cr, 0.1, 0.1, 0.1); pango_layout_set_text(layout, text, -1); pango_layout_get_pixel_extents(layout, &ink, NULL); - cairo_move_to(cr, 0.98f * width - ink.width - ink.x, -0.02 * height - ink.height - ink.y); + cairo_move_to(cr, 0.98f * width - ink.width - ink.x, + -0.02 * height - ink.height - ink.y); pango_cairo_show_layout(cr, layout); cairo_stroke(cr); pango_font_description_free(desc); @@ -1018,8 +1128,10 @@ // enlarge selected node cairo_set_source_rgb(cr, .9, .9, .9); - const float x = _curve_to_mouse(curve_nodes[g->selected].x, g->zoom_factor, g->offset_x), - y = _curve_to_mouse(curve_nodes[g->selected].y, g->zoom_factor, g->offset_y); + const float x = _curve_to_mouse(curve_nodes[g->selected].x, + g->zoom_factor, g->offset_x), + y = _curve_to_mouse(curve_nodes[g->selected].y, + g->zoom_factor, g->offset_y); cairo_arc(cr, x * width, -y * height, DT_PIXEL_APPLY_DPI(4), 0, 2. * M_PI); cairo_stroke(cr); @@ -1061,7 +1173,9 @@ return TRUE; } -static gboolean _area_motion_notify_callback(GtkWidget *widget, GdkEventMotion *event, dt_iop_module_t *self) +static gboolean _area_motion_notify_callback(GtkWidget *widget, + GdkEventMotion *event, + dt_iop_module_t *self) { dt_iop_rgbcurve_gui_data_t *g = (dt_iop_rgbcurve_gui_data_t *)self->gui_data; dt_iop_rgbcurve_params_t *p = (dt_iop_rgbcurve_params_t *)self->params; @@ -1073,7 +1187,8 @@ { GtkAllocation allocation; gtk_widget_get_allocation(widget, &allocation); - const int height = allocation.height - 2 * inset, width = allocation.width - 2 * inset; + const int height = allocation.height - 2 * inset; + const int width = allocation.width - 2 * inset; const float mx = g->mouse_x; const float my = g->mouse_y; @@ -1099,7 +1214,9 @@ dt_iop_rgbcurve_node_t *curve_nodes = p->curve_nodes[ch]; // if autoscale is on: do not modify g and b curves - if((p->curve_autoscale != DT_S_SCALE_MANUAL_RGB) && g->channel != DT_IOP_RGBCURVE_R) goto finally; + if((p->curve_autoscale != DT_S_SCALE_MANUAL_RGB) + && g->channel != DT_IOP_RGBCURVE_R) + goto finally; GtkAllocation allocation; gtk_widget_get_allocation(widget, &allocation); @@ -1121,16 +1238,23 @@ // got a vertex selected: if(g->selected >= 0) { - // this is used to translate mause position in loglogscale to make this behavior unified with linear scale. + // this is used to translate mause position in loglogscale to + // make this behavior unified with linear scale. const float translate_mouse_x - = old_m_x - _curve_to_mouse(curve_nodes[g->selected].x, g->zoom_factor, g->offset_x); + = old_m_x - _curve_to_mouse(curve_nodes[g->selected].x, + g->zoom_factor, g->offset_x); const float translate_mouse_y - = old_m_y - _curve_to_mouse(curve_nodes[g->selected].y, g->zoom_factor, g->offset_y); + = old_m_y - _curve_to_mouse(curve_nodes[g->selected].y, + g->zoom_factor, g->offset_y); // dx & dy are in linear coordinates - const float dx = _mouse_to_curve(g->mouse_x - translate_mouse_x, g->zoom_factor, g->offset_x) - - _mouse_to_curve(old_m_x - translate_mouse_x, g->zoom_factor, g->offset_x); - const float dy = _mouse_to_curve(g->mouse_y - translate_mouse_y, g->zoom_factor, g->offset_y) - - _mouse_to_curve(old_m_y - translate_mouse_y, g->zoom_factor, g->offset_y); + const float dx = _mouse_to_curve(g->mouse_x - translate_mouse_x, + g->zoom_factor, g->offset_x) + - _mouse_to_curve(old_m_x - translate_mouse_x, + g->zoom_factor, g->offset_x); + const float dy = _mouse_to_curve(g->mouse_y - translate_mouse_y, + g->zoom_factor, g->offset_y) + - _mouse_to_curve(old_m_y - translate_mouse_y, + g->zoom_factor, g->offset_y); dt_iop_color_picker_reset(self, TRUE); return _move_point_internal(self, widget, dx, dy, event->state); @@ -1150,10 +1274,14 @@ int nearest = -1; for(int k = 0; k < nodes; k++) { - const float dist = (my - _curve_to_mouse(curve_nodes[k].y, g->zoom_factor, g->offset_y)) - * (my - _curve_to_mouse(curve_nodes[k].y, g->zoom_factor, g->offset_y)) - + (mx - _curve_to_mouse(curve_nodes[k].x, g->zoom_factor, g->offset_x)) - * (mx - _curve_to_mouse(curve_nodes[k].x, g->zoom_factor, g->offset_x)); + const float dist = (my - _curve_to_mouse(curve_nodes[k].y, + g->zoom_factor, g->offset_y)) + * (my - _curve_to_mouse(curve_nodes[k].y, + g->zoom_factor, g->offset_y)) + + (mx - _curve_to_mouse(curve_nodes[k].x, + g->zoom_factor, g->offset_x)) + * (mx - _curve_to_mouse(curve_nodes[k].x, + g->zoom_factor, g->offset_x)); if(dist < min) { min = dist; @@ -1168,13 +1296,17 @@ return TRUE; } -static gboolean _area_button_press_callback(GtkWidget *widget, GdkEventButton *event, dt_iop_module_t *self) +static gboolean _area_button_press_callback(GtkWidget *widget, + GdkEventButton *event, + dt_iop_module_t *self) { dt_iop_rgbcurve_params_t *p = (dt_iop_rgbcurve_params_t *)self->params; - dt_iop_rgbcurve_params_t *d = (dt_iop_rgbcurve_params_t *)self->default_params; + const dt_iop_rgbcurve_params_t *const d = + (dt_iop_rgbcurve_params_t *)self->default_params; dt_iop_rgbcurve_gui_data_t *g = (dt_iop_rgbcurve_gui_data_t *)self->gui_data; - if(darktable.develop->darkroom_skip_mouse_events) return TRUE; + if(darktable.develop->darkroom_skip_mouse_events) + return TRUE; const int ch = g->channel; const int autoscale = p->curve_autoscale; @@ -1183,10 +1315,12 @@ if(event->button == 1) { - if(event->type == GDK_BUTTON_PRESS && dt_modifier_is(event->state, GDK_CONTROL_MASK) + if(event->type == GDK_BUTTON_PRESS + && dt_modifier_is(event->state, GDK_CONTROL_MASK) && nodes < DT_IOP_RGBCURVE_MAXNODES && g->selected == -1) { - // if we are not on a node -> add a new node at the current x of the pointer and y of the curve at that x + // if we are not on a node -> add a new node at the current x of + // the pointer and y of the curve at that x const int inset = DT_GUI_CURVE_EDITOR_INSET; GtkAllocation allocation; gtk_widget_get_allocation(widget, &allocation); @@ -1199,7 +1333,8 @@ const float mx = g->mouse_x; const float linx = _mouse_to_curve(mx, g->zoom_factor, g->offset_x); - // don't add a node too close to others in x direction, it can crash dt + // don't add a node too close to others in x direction, it can + // crash dt int selected = -1; if(curve_nodes[0].x > mx) selected = 0; @@ -1219,7 +1354,9 @@ // evaluate the curve at the current x position const float y = dt_draw_curve_calc_value(g->minmax_curve[ch], linx); - if(y >= 0.0f && y <= 1.0f) // never add something outside the viewport, you couldn't change it afterwards + if(y >= 0.0f && y <= 1.0f) // never add something outside the + // viewport, you couldn't change it + // afterwards { // create a new node selected = _add_node(curve_nodes, &p->curve_num_nodes[ch], linx, y); @@ -1228,7 +1365,8 @@ const float min = .04f * .04f; // comparing against square for(int k = 0; k < nodes; k++) { - const float other_y = _curve_to_mouse(curve_nodes[k].y, g->zoom_factor, g->offset_y); + const float other_y = + _curve_to_mouse(curve_nodes[k].y, g->zoom_factor, g->offset_y); const float dist = (y - other_y) * (y - other_y); if(dist < min) g->selected = selected; } @@ -1334,7 +1472,8 @@ void gui_init(struct dt_iop_module_t *self) { dt_iop_rgbcurve_gui_data_t *g = IOP_GUI_ALLOC(rgbcurve); - dt_iop_rgbcurve_params_t *p = (dt_iop_rgbcurve_params_t *)self->default_params; + const dt_iop_rgbcurve_params_t *const p = + (dt_iop_rgbcurve_params_t *)self->default_params; for(int ch = 0; ch < DT_IOP_RGBCURVE_MAX_CHANNELS; ch++) { @@ -1342,41 +1481,56 @@ g->minmax_curve_nodes[ch] = p->curve_num_nodes[ch]; g->minmax_curve_type[ch] = p->curve_type[ch]; for(int k = 0; k < p->curve_num_nodes[ch]; k++) - (void)dt_draw_curve_add_point(g->minmax_curve[ch], p->curve_nodes[ch][k].x, p->curve_nodes[ch][k].y); + dt_draw_curve_add_point(g->minmax_curve[ch], + p->curve_nodes[ch][k].x, + p->curve_nodes[ch][k].y); } g->channel = DT_IOP_RGBCURVE_R; change_image(self); g->autoscale = dt_bauhaus_combobox_from_params(self, "curve_autoscale"); - gtk_widget_set_tooltip_text(g->autoscale, _("choose between linked and independent channels.")); + gtk_widget_set_tooltip_text(g->autoscale, + _("choose between linked and independent channels.")); GtkWidget *hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); g->channel_tabs = GTK_NOTEBOOK(gtk_notebook_new()); - dt_action_define_iop(self, NULL, N_("channel"), GTK_WIDGET(g->channel_tabs), &dt_action_def_tabs_rgb); + dt_action_define_iop(self, NULL, N_("channel"), + GTK_WIDGET(g->channel_tabs), &dt_action_def_tabs_rgb); dt_ui_notebook_page(g->channel_tabs, N_("R"), _("curve nodes for r channel")); dt_ui_notebook_page(g->channel_tabs, N_("G"), _("curve nodes for g channel")); dt_ui_notebook_page(g->channel_tabs, N_("B"), _("curve nodes for b channel")); - g_signal_connect(G_OBJECT(g->channel_tabs), "switch_page", G_CALLBACK(tab_switch_callback), self); + g_signal_connect(G_OBJECT(g->channel_tabs), "switch_page", + G_CALLBACK(tab_switch_callback), self); gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(g->channel_tabs), TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox), gtk_grid_new(), TRUE, TRUE, 0); // color pickers - g->colorpicker = dt_color_picker_new(self, DT_COLOR_PICKER_POINT_AREA | DT_COLOR_PICKER_IO, hbox); - gtk_widget_set_tooltip_text(g->colorpicker, _("pick GUI color from image\nctrl+click or right-click to select an area")); + g->colorpicker = dt_color_picker_new(self, + DT_COLOR_PICKER_POINT_AREA | DT_COLOR_PICKER_IO, + hbox); + gtk_widget_set_tooltip_text(g->colorpicker, + _("pick GUI color from image\n" + "ctrl+click or right-click to select an area")); gtk_widget_set_name(g->colorpicker, "keep-active"); - dt_action_define_iop(self, N_("pickers"), N_("show color"), g->colorpicker, &dt_action_def_toggle); - g->colorpicker_set_values = dt_color_picker_new(self, DT_COLOR_PICKER_AREA | DT_COLOR_PICKER_IO, hbox); + dt_action_define_iop(self, N_("pickers"), N_("show color"), + g->colorpicker, &dt_action_def_toggle); + g->colorpicker_set_values = dt_color_picker_new(self, + DT_COLOR_PICKER_AREA | DT_COLOR_PICKER_IO, + hbox); dtgtk_togglebutton_set_paint(DTGTK_TOGGLEBUTTON(g->colorpicker_set_values), dtgtk_cairo_paint_colorpicker_set_values, 0, NULL); dt_gui_add_class(g->colorpicker_set_values, "dt_transparent_background"); - gtk_widget_set_size_request(g->colorpicker_set_values, DT_PIXEL_APPLY_DPI(14), DT_PIXEL_APPLY_DPI(14)); - gtk_widget_set_tooltip_text(g->colorpicker_set_values, _("create a curve based on an area from the image\n" - "drag to create a flat curve\n" - "ctrl+drag to create a positive curve\n" - "shift+drag to create a negative curve")); - dt_action_define_iop(self, N_("pickers"), N_("create curve"), g->colorpicker_set_values, &dt_action_def_toggle); + gtk_widget_set_size_request(g->colorpicker_set_values, DT_PIXEL_APPLY_DPI(14), + DT_PIXEL_APPLY_DPI(14)); + gtk_widget_set_tooltip_text(g->colorpicker_set_values, + _("create a curve based on an area from the image\n" + "drag to create a flat curve\n" + "ctrl+drag to create a positive curve\n" + "shift+drag to create a negative curve")); + dt_action_define_iop(self, N_("pickers"), N_("create curve"), + g->colorpicker_set_values, &dt_action_def_toggle); GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_box_pack_start(GTK_BOX(self->widget), vbox, FALSE, FALSE, 0); @@ -1387,19 +1541,28 @@ dt_action_define_iop(self, NULL, N_("curve"), GTK_WIDGET(g->area), NULL); gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(g->area), TRUE, TRUE, 0); - // FIXME: that tooltip goes in the way of the numbers when you hover a node to get a reading - // gtk_widget_set_tooltip_text(GTK_WIDGET(g->area), _("double click to reset curve")); - - gtk_widget_add_events(GTK_WIDGET(g->area), GDK_POINTER_MOTION_MASK | darktable.gui->scroll_mask - | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); + // FIXME: that tooltip goes in the way of the numbers when you hover + // a node to get a reading + // gtk_widget_set_tooltip_text(GTK_WIDGET(g->area), _("double click + // to reset curve")); + + gtk_widget_add_events(GTK_WIDGET(g->area), + GDK_POINTER_MOTION_MASK | darktable.gui->scroll_mask + | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); gtk_widget_set_can_focus(GTK_WIDGET(g->area), TRUE); - g_signal_connect(G_OBJECT(g->area), "draw", G_CALLBACK(_area_draw_callback), self); - g_signal_connect(G_OBJECT(g->area), "button-press-event", G_CALLBACK(_area_button_press_callback), self); - g_signal_connect(G_OBJECT(g->area), "motion-notify-event", G_CALLBACK(_area_motion_notify_callback), self); - g_signal_connect(G_OBJECT(g->area), "leave-notify-event", G_CALLBACK(_area_leave_notify_callback), self); - g_signal_connect(G_OBJECT(g->area), "scroll-event", G_CALLBACK(_area_scrolled_callback), self); - g_signal_connect(G_OBJECT(g->area), "key-press-event", G_CALLBACK(_area_key_press_callback), self); + g_signal_connect(G_OBJECT(g->area), "draw", + G_CALLBACK(_area_draw_callback), self); + g_signal_connect(G_OBJECT(g->area), "button-press-event", + G_CALLBACK(_area_button_press_callback), self); + g_signal_connect(G_OBJECT(g->area), "motion-notify-event", + G_CALLBACK(_area_motion_notify_callback), self); + g_signal_connect(G_OBJECT(g->area), "leave-notify-event", + G_CALLBACK(_area_leave_notify_callback), self); + g_signal_connect(G_OBJECT(g->area), "scroll-event", + G_CALLBACK(_area_scrolled_callback), self); + g_signal_connect(G_OBJECT(g->area), "key-press-event", + G_CALLBACK(_area_key_press_callback), self); /* From src/common/curve_tools.h : #define CUBIC_SPLINE 0 @@ -1417,13 +1580,17 @@ "- cubic spline is better to produce smooth curves but oscillates when nodes are too close\n" "- centripetal is better to avoids cusps and oscillations with close nodes but is less smooth\n" "- monotonic is better for accuracy of pure analytical functions (log, gamma, exp)")); - g_signal_connect(G_OBJECT(g->interpolator), "value-changed", G_CALLBACK(interpolator_callback), self); + g_signal_connect(G_OBJECT(g->interpolator), "value-changed", + G_CALLBACK(interpolator_callback), self); - g->chk_compensate_middle_grey = dt_bauhaus_toggle_from_params(self, "compensate_middle_grey"); - gtk_widget_set_tooltip_text(g->chk_compensate_middle_grey, _("compensate middle gray")); + g->chk_compensate_middle_grey = + dt_bauhaus_toggle_from_params(self, "compensate_middle_grey"); + gtk_widget_set_tooltip_text(g->chk_compensate_middle_grey, + _("compensate middle gray")); g->cmb_preserve_colors = dt_bauhaus_combobox_from_params(self, "preserve_colors"); - gtk_widget_set_tooltip_text(g->cmb_preserve_colors, _("method to preserve colors when applying contrast")); + gtk_widget_set_tooltip_text(g->cmb_preserve_colors, + _("method to preserve colors when applying contrast")); } void gui_update(struct dt_iop_module_t *self) @@ -1433,7 +1600,8 @@ dt_bauhaus_combobox_set(g->autoscale, p->curve_autoscale); dt_bauhaus_combobox_set(g->interpolator, p->curve_type[DT_IOP_RGBCURVE_R]); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->chk_compensate_middle_grey), p->compensate_middle_grey); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->chk_compensate_middle_grey), + p->compensate_middle_grey); dt_bauhaus_combobox_set(g->cmb_preserve_colors, p->preserve_colors); _rgbcurve_show_hide_controls(p, g); @@ -1446,16 +1614,21 @@ { dt_iop_rgbcurve_gui_data_t *g = (dt_iop_rgbcurve_gui_data_t *)self->gui_data; - for(int k = 0; k < DT_IOP_RGBCURVE_MAX_CHANNELS; k++) dt_draw_curve_destroy(g->minmax_curve[k]); + for(int k = 0; k < DT_IOP_RGBCURVE_MAX_CHANNELS; k++) + dt_draw_curve_destroy(g->minmax_curve[k]); IOP_GUI_FREE; } -void init_pipe(struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +void init_pipe(struct dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { // create part of the pixelpipe - dt_iop_rgbcurve_data_t *d = (dt_iop_rgbcurve_data_t *)malloc(sizeof(dt_iop_rgbcurve_data_t)); - dt_iop_rgbcurve_params_t *default_params = (dt_iop_rgbcurve_params_t *)self->default_params; + dt_iop_rgbcurve_data_t *d = + (dt_iop_rgbcurve_data_t *)dt_alloc_align(64, sizeof(dt_iop_rgbcurve_data_t)); + const dt_iop_rgbcurve_params_t *const default_params = + (dt_iop_rgbcurve_params_t *)self->default_params; piece->data = (void *)d; memcpy(&d->params, default_params, sizeof(dt_iop_rgbcurve_params_t)); @@ -1465,21 +1638,27 @@ d->params.curve_num_nodes[ch] = default_params->curve_num_nodes[ch]; d->params.curve_type[ch] = default_params->curve_type[ch]; for(int k = 0; k < default_params->curve_num_nodes[ch]; k++) - (void)dt_draw_curve_add_point(d->curve[ch], default_params->curve_nodes[ch][k].x, + dt_draw_curve_add_point(d->curve[ch], default_params->curve_nodes[ch][k].x, default_params->curve_nodes[ch][k].y); } - for(int k = 0; k < 0x10000; k++) d->table[DT_IOP_RGBCURVE_R][k] = k / 0x10000; // identity for r - for(int k = 0; k < 0x10000; k++) d->table[DT_IOP_RGBCURVE_G][k] = k / 0x10000; // identity for g - for(int k = 0; k < 0x10000; k++) d->table[DT_IOP_RGBCURVE_B][k] = k / 0x10000; // identity for b + for(int k = 0; k < 0x10000; k++) + d->table[DT_IOP_RGBCURVE_R][k] = k / 0x10000; // identity for r + for(int k = 0; k < 0x10000; k++) + d->table[DT_IOP_RGBCURVE_G][k] = k / 0x10000; // identity for g + for(int k = 0; k < 0x10000; k++) + d->table[DT_IOP_RGBCURVE_B][k] = k / 0x10000; // identity for b } -void cleanup_pipe(struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +void cleanup_pipe(struct dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { // clean up everything again. dt_iop_rgbcurve_data_t *d = (dt_iop_rgbcurve_data_t *)(piece->data); - for(int ch = 0; ch < DT_IOP_RGBCURVE_MAX_CHANNELS; ch++) dt_draw_curve_destroy(d->curve[ch]); - free(piece->data); + for(int ch = 0; ch < DT_IOP_RGBCURVE_MAX_CHANNELS; ch++) + dt_draw_curve_destroy(d->curve[ch]); + dt_free_align(piece->data); piece->data = NULL; } @@ -1501,8 +1680,8 @@ void init_global(dt_iop_module_so_t *module) { const int program = 25; // rgbcurve.cl, from programs.conf - dt_iop_rgbcurve_global_data_t *gd - = (dt_iop_rgbcurve_global_data_t *)malloc(sizeof(dt_iop_rgbcurve_global_data_t)); + dt_iop_rgbcurve_global_data_t *gd = + (dt_iop_rgbcurve_global_data_t *)dt_alloc_align(64, sizeof(dt_iop_rgbcurve_global_data_t)); module->data = gd; gd->kernel_rgbcurve = dt_opencl_create_kernel(program, "rgbcurve"); @@ -1512,21 +1691,23 @@ { dt_iop_rgbcurve_global_data_t *gd = (dt_iop_rgbcurve_global_data_t *)module->data; dt_opencl_free_kernel(gd->kernel_rgbcurve); - free(module->data); + dt_free_align(module->data); module->data = NULL; } -// this will be called from process*() -// it must be executed only if profile info has changed -static void _generate_curve_lut(dt_dev_pixelpipe_t *pipe, dt_iop_rgbcurve_data_t *d) +// called from process*(), takes care of changed curve type +static void _generate_curve_lut(dt_dev_pixelpipe_t *pipe, + dt_iop_rgbcurve_data_t *d) { - const dt_iop_order_iccprofile_info_t *const work_profile = dt_ioppr_get_pipe_work_profile_info(pipe); + const dt_iop_order_iccprofile_info_t *const work_profile = + dt_ioppr_get_pipe_work_profile_info(pipe); - dt_iop_rgbcurve_node_t curve_nodes[3][DT_IOP_RGBCURVE_MAXNODES]; + DT_ALIGNED_ARRAY dt_iop_rgbcurve_node_t curve_nodes[3][DT_IOP_RGBCURVE_MAXNODES]; if(work_profile) { - if(d->type_work == work_profile->type && strcmp(d->filename_work, work_profile->filename) == 0) return; + if(d->type_work == work_profile->type && strcmp(d->filename_work, + work_profile->filename) == 0) return; } if(work_profile && d->params.compensate_middle_grey) @@ -1538,8 +1719,10 @@ { for(int k = 0; k < d->params.curve_num_nodes[ch]; k++) { - curve_nodes[ch][k].x = dt_ioppr_uncompensate_middle_grey(d->params.curve_nodes[ch][k].x, work_profile); - curve_nodes[ch][k].y = dt_ioppr_uncompensate_middle_grey(d->params.curve_nodes[ch][k].y, work_profile); + curve_nodes[ch][k].x = + dt_ioppr_uncompensate_middle_grey(d->params.curve_nodes[ch][k].x, work_profile); + curve_nodes[ch][k].y = + dt_ioppr_uncompensate_middle_grey(d->params.curve_nodes[ch][k].y, work_profile); } } } @@ -1547,26 +1730,29 @@ { for(int ch = 0; ch < DT_IOP_RGBCURVE_MAX_CHANNELS; ch++) { - memcpy(curve_nodes[ch], d->params.curve_nodes[ch], sizeof(dt_iop_rgbcurve_node_t) * DT_IOP_RGBCURVE_MAXNODES); + memcpy(curve_nodes[ch], d->params.curve_nodes[ch], + sizeof(dt_iop_rgbcurve_node_t) * DT_IOP_RGBCURVE_MAXNODES); } } for(int ch = 0; ch < DT_IOP_RGBCURVE_MAX_CHANNELS; ch++) { - // take care of possible change of curve type or number of nodes (not yet implemented in UI) + /* take care of possible change of curve type, number of nodes is explicitly set. + We only need a new curve if it's type has changed for a different interpolation. + If we change the curve we avoid a possible race condition between pixelpipes. + */ if(d->curve_changed[ch]) { - dt_draw_curve_destroy(d->curve[ch]); + dt_draw_curve_t *oldcurve = d->curve[ch]; d->curve[ch] = dt_draw_curve_new(0.0, 1.0, d->params.curve_type[ch]); - for(int k = 0; k < d->params.curve_num_nodes[ch]; k++) - (void)dt_draw_curve_add_point(d->curve[ch], curve_nodes[ch][k].x, curve_nodes[ch][k].y); - } - else - { - for(int k = 0; k < d->params.curve_num_nodes[ch]; k++) - dt_draw_curve_set_point(d->curve[ch], k, curve_nodes[ch][k].x, curve_nodes[ch][k].y); + d->curve_changed[ch] = FALSE; + dt_draw_curve_destroy(oldcurve); } + for(int k = 0; k < d->params.curve_num_nodes[ch]; k++) + dt_draw_curve_set_point(d->curve[ch], k, curve_nodes[ch][k].x, curve_nodes[ch][k].y); + d->curve[ch]->c.m_numAnchors = d->params.curve_num_nodes[ch]; + dt_draw_curve_calc_values(d->curve[ch], 0.0f, 1.0f, 0x10000, NULL, d->table[ch]); } @@ -1583,7 +1769,9 @@ } } -void commit_params(struct dt_iop_module_t *self, dt_iop_params_t *p1, dt_dev_pixelpipe_t *pipe, +void commit_params(struct dt_iop_module_t *self, + dt_iop_params_t *p1, + dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) { dt_iop_rgbcurve_data_t *d = (dt_iop_rgbcurve_data_t *)(piece->data); @@ -1600,8 +1788,7 @@ } for(int ch = 0; ch < DT_IOP_RGBCURVE_MAX_CHANNELS; ch++) - d->curve_changed[ch] - = (d->params.curve_type[ch] != p->curve_type[ch] || d->params.curve_nodes[ch] != p->curve_nodes[ch]); + d->curve_changed[ch] = d->params.curve_type[ch] != p->curve_type[ch]; memcpy(&d->params, p, sizeof(dt_iop_rgbcurve_params_t)); @@ -1611,16 +1798,20 @@ } #ifdef HAVE_OPENCL -int process_cl(struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, cl_mem dev_in, cl_mem dev_out, - const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) +int process_cl(struct dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + cl_mem dev_in, + cl_mem dev_out, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) { - const dt_iop_order_iccprofile_info_t *const work_profile = dt_ioppr_get_pipe_work_profile_info(piece->pipe); + const dt_iop_order_iccprofile_info_t *const work_profile = + dt_ioppr_get_pipe_work_profile_info(piece->pipe); dt_iop_rgbcurve_data_t *d = (dt_iop_rgbcurve_data_t *)piece->data; dt_iop_rgbcurve_global_data_t *gd = (dt_iop_rgbcurve_global_data_t *)self->global_data; - _generate_curve_lut(piece->pipe, d); - + _generate_curve_lut(piece->pipe, d); cl_int err = CL_SUCCESS; cl_mem dev_r = NULL; @@ -1643,97 +1834,85 @@ const int autoscale = d->params.curve_autoscale; const int preserve_colors = d->params.preserve_colors; - err = dt_ioppr_build_iccprofile_params_cl(work_profile, devid, &profile_info_cl, &profile_lut_cl, + err = dt_ioppr_build_iccprofile_params_cl(work_profile, devid, + &profile_info_cl, &profile_lut_cl, &dev_profile_info, &dev_profile_lut); if(err != CL_SUCCESS) goto cleanup; - dev_r = dt_opencl_copy_host_to_device(devid, d->table[DT_IOP_RGBCURVE_R], 256, 256, sizeof(float)); - if(dev_r == NULL) - { - dt_print(DT_DEBUG_ALWAYS, "[rgbcurve process_cl] error allocating memory 1\n"); - err = CL_MEM_OBJECT_ALLOCATION_FAILURE; - goto cleanup; - } - - dev_g = dt_opencl_copy_host_to_device(devid, d->table[DT_IOP_RGBCURVE_G], 256, 256, sizeof(float)); - if(dev_g == NULL) - { - dt_print(DT_DEBUG_ALWAYS, "[rgbcurve process_cl] error allocating memory 2\n"); - err = CL_MEM_OBJECT_ALLOCATION_FAILURE; - goto cleanup; - } - - dev_b = dt_opencl_copy_host_to_device(devid, d->table[DT_IOP_RGBCURVE_B], 256, 256, sizeof(float)); - if(dev_b == NULL) - { - dt_print(DT_DEBUG_ALWAYS, "[rgbcurve process_cl] error allocating memory 3\n"); - err = CL_MEM_OBJECT_ALLOCATION_FAILURE; - goto cleanup; - } - - dev_coeffs_r = dt_opencl_copy_host_to_device_constant(devid, sizeof(float) * 3, d->unbounded_coeffs[0]); - if(dev_coeffs_r == NULL) - { - dt_print(DT_DEBUG_ALWAYS, "[rgbcurve process_cl] error allocating memory 4\n"); - err = CL_MEM_OBJECT_ALLOCATION_FAILURE; - goto cleanup; - } - - dev_coeffs_g = dt_opencl_copy_host_to_device_constant(devid, sizeof(float) * 3, d->unbounded_coeffs[1]); - if(dev_coeffs_g == NULL) - { - dt_print(DT_DEBUG_ALWAYS, "[rgbcurve process_cl] error allocating memory 5\n"); - err = CL_MEM_OBJECT_ALLOCATION_FAILURE; - goto cleanup; - } - - dev_coeffs_b = dt_opencl_copy_host_to_device_constant(devid, sizeof(float) * 12, d->unbounded_coeffs[2]); - if(dev_coeffs_b == NULL) - { - dt_print(DT_DEBUG_ALWAYS, "[rgbcurve process_cl] error allocating memory 6\n"); - err = CL_MEM_OBJECT_ALLOCATION_FAILURE; - goto cleanup; - } + err = CL_MEM_OBJECT_ALLOCATION_FAILURE; + dev_r = dt_opencl_copy_host_to_device(devid, d->table[DT_IOP_RGBCURVE_R], + 256, 256, sizeof(float)); + if(dev_r == NULL) goto cleanup; + + dev_g = dt_opencl_copy_host_to_device(devid, d->table[DT_IOP_RGBCURVE_G], + 256, 256, sizeof(float)); + if(dev_g == NULL) goto cleanup; + + dev_b = dt_opencl_copy_host_to_device(devid, d->table[DT_IOP_RGBCURVE_B], + 256, 256, sizeof(float)); + if(dev_b == NULL) goto cleanup; + + dev_coeffs_r = dt_opencl_copy_host_to_device_constant + (devid, + sizeof(float) * DT_IOP_RGBCURVE_MAX_CHANNELS, d->unbounded_coeffs[0]); + if(dev_coeffs_r == NULL) goto cleanup; + + dev_coeffs_g = dt_opencl_copy_host_to_device_constant + (devid, + sizeof(float) * DT_IOP_RGBCURVE_MAX_CHANNELS, d->unbounded_coeffs[1]); + if(dev_coeffs_g == NULL) goto cleanup; + + dev_coeffs_b = dt_opencl_copy_host_to_device_constant + (devid, + sizeof(float) * DT_IOP_RGBCURVE_MAX_CHANNELS, d->unbounded_coeffs[2]); + if(dev_coeffs_b == NULL) goto cleanup; err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_rgbcurve, width, height, - CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(dev_r), CLARG(dev_g), CLARG(dev_b), - CLARG(dev_coeffs_r), CLARG(dev_coeffs_g), CLARG(dev_coeffs_b), CLARG(autoscale), CLARG(preserve_colors), - CLARG(dev_profile_info), CLARG(dev_profile_lut), CLARG(use_work_profile)); - if(err != CL_SUCCESS) - { - dt_print(DT_DEBUG_ALWAYS, "[rgbcurve process_cl] error %i enqueue kernel\n", err); - goto cleanup; - } + CLARG(dev_in), CLARG(dev_out), + CLARG(width), CLARG(height), + CLARG(dev_r), CLARG(dev_g), CLARG(dev_b), + CLARG(dev_coeffs_r), + CLARG(dev_coeffs_g), + CLARG(dev_coeffs_b), + CLARG(autoscale), + CLARG(preserve_colors), + CLARG(dev_profile_info), + CLARG(dev_profile_lut), + CLARG(use_work_profile)); cleanup: - if(dev_r) dt_opencl_release_mem_object(dev_r); - if(dev_g) dt_opencl_release_mem_object(dev_g); - if(dev_b) dt_opencl_release_mem_object(dev_b); - if(dev_coeffs_r) dt_opencl_release_mem_object(dev_coeffs_r); - if(dev_coeffs_g) dt_opencl_release_mem_object(dev_coeffs_g); - if(dev_coeffs_b) dt_opencl_release_mem_object(dev_coeffs_b); - dt_ioppr_free_iccprofile_params_cl(&profile_info_cl, &profile_lut_cl, &dev_profile_info, &dev_profile_lut); - - if(err != CL_SUCCESS) dt_print(DT_DEBUG_OPENCL, "[opencl_rgbcurve] couldn't enqueue kernel! %s\n", cl_errstr(err)); - - return (err == CL_SUCCESS) ? TRUE : FALSE; + dt_opencl_release_mem_object(dev_r); + dt_opencl_release_mem_object(dev_g); + dt_opencl_release_mem_object(dev_b); + dt_opencl_release_mem_object(dev_coeffs_r); + dt_opencl_release_mem_object(dev_coeffs_g); + dt_opencl_release_mem_object(dev_coeffs_b); + dt_ioppr_free_iccprofile_params_cl(&profile_info_cl, &profile_lut_cl, + &dev_profile_info, &dev_profile_lut); + return err; } #endif -void process(struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, - void *const ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) +void process(struct dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + const void *const ivoid, + void *const ovoid, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) { - const dt_iop_order_iccprofile_info_t *const work_profile = dt_ioppr_get_pipe_work_profile_info(piece->pipe); + const dt_iop_order_iccprofile_info_t *const work_profile = + dt_ioppr_get_pipe_work_profile_info(piece->pipe); const float *const restrict in = (float*)ivoid; float *const restrict out = (float*)ovoid; - if(!dt_iop_have_required_input_format(4 /*we need full-color pixels*/, self, piece->colors, - in, out, roi_in, roi_out)) - return; // image has been copied through to output and module's trouble flag has been updated + if(!dt_iop_have_required_input_format(4 /*we need full-color pixels*/, + self, piece->colors, + in, out, roi_in, roi_out)) + return; // image has been copied through to output and module's + // trouble flag has been updated dt_iop_rgbcurve_data_t *const restrict d = (dt_iop_rgbcurve_data_t *)(piece->data); - - _generate_curve_lut(piece->pipe, d); + _generate_curve_lut(piece->pipe, d); const float xm_L = 1.0f / d->unbounded_coeffs[DT_IOP_RGBCURVE_R][0]; const float xm_g = 1.0f / d->unbounded_coeffs[DT_IOP_RGBCURVE_G][0]; @@ -1769,7 +1948,8 @@ { for(int c = 0; c < 3; c++) { - out[y+c] = (in[y+c] < xm_L) ? table[DT_IOP_RGBCURVE_R][CLAMP((int)(in[y+c] * 0x10000ul), 0, 0xffff)] + out[y+c] = (in[y+c] < xm_L) + ? table[DT_IOP_RGBCURVE_R][CLAMP((int)(in[y+c] * 0x10000ul), 0, 0xffff)] : dt_iop_eval_exp(unbounded_coeffs[DT_IOP_RGBCURVE_R], in[y+c]); } } @@ -1805,4 +1985,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/rgblevels.c darktable-4.6.1/src/iop/rgblevels.c --- darktable-4.4.2/src/iop/rgblevels.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/rgblevels.c 2024-02-16 17:31:09.000000000 +0000 @@ -112,7 +112,9 @@ return IOP_FLAGS_SUPPORTS_BLENDING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -233,19 +235,21 @@ gtk_widget_set_visible(g->cmb_preserve_colors, FALSE); } -int mouse_moved(struct dt_iop_module_t *self, double x, double y, double pressure, int which) +int mouse_moved(dt_iop_module_t *self, + const float pzx, + const float pzy, + const double pressure, + const int which, + const float zoom_scale) { int handled = 0; dt_iop_rgblevels_gui_data_t *g = (dt_iop_rgblevels_gui_data_t *)self->gui_data; if(g && g->draw_selected_region && g->button_down && self->enabled) { - float pzx, pzy; - dt_dev_get_pointer_zoom_pos(darktable.develop, x, y, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; - - g->posx_to = pzx * darktable.develop->preview_pipe->backbuf_width; - g->posy_to = pzy * darktable.develop->preview_pipe->backbuf_height; + float wd, ht; + dt_dev_get_preview_size(self->dev, &wd, &ht); + g->posx_to = pzx * wd; + g->posy_to = pzy * ht; dt_control_queue_redraw_center(); @@ -255,7 +259,12 @@ return handled; } -int button_released(struct dt_iop_module_t *self, double x, double y, int which, uint32_t state) +int button_released(dt_iop_module_t *self, + const float x, + const float y, + const int which, + const uint32_t state, + const float zoom_scale) { int handled = 0; dt_iop_rgblevels_gui_data_t *g = (dt_iop_rgblevels_gui_data_t *)self->gui_data; @@ -287,8 +296,14 @@ return handled; } -int button_pressed(struct dt_iop_module_t *self, double x, double y, double pressure, int which, int type, - uint32_t state) +int button_pressed(dt_iop_module_t *self, + const float pzx, + const float pzy, + const double pressure, + const int which, + const int type, + const uint32_t state, + const float zoom_scale) { int handled = 0; dt_iop_rgblevels_gui_data_t *g = (dt_iop_rgblevels_gui_data_t *)self->gui_data; @@ -302,13 +317,10 @@ } else if(which == 1) { - float pzx, pzy; - dt_dev_get_pointer_zoom_pos(darktable.develop, x, y, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; - - g->posx_from = g->posx_to = pzx * darktable.develop->preview_pipe->backbuf_width; - g->posy_from = g->posy_to = pzy * darktable.develop->preview_pipe->backbuf_height; + float wd, ht; + dt_dev_get_preview_size(self->dev, &wd, &ht); + g->posx_from = g->posx_to = pzx * wd; + g->posy_from = g->posy_to = pzy * ht; g->button_down = 1; @@ -319,36 +331,27 @@ return handled; } -void gui_post_expose(struct dt_iop_module_t *self, cairo_t *cr, int32_t width, int32_t height, int32_t pointerx, - int32_t pointery) +void gui_post_expose(dt_iop_module_t *self, + cairo_t *cr, + const float width, + const float height, + const float pointerx, + const float pointery, + const float zoom_scale) { dt_iop_rgblevels_gui_data_t *g = (dt_iop_rgblevels_gui_data_t *)self->gui_data; if(g == NULL || !self->enabled) return; if(!g->draw_selected_region || !g->button_down) return; if(g->posx_from == g->posx_to && g->posy_from == g->posy_to) return; - dt_develop_t *dev = darktable.develop; - const float wd = dev->preview_pipe->backbuf_width; - const float ht = dev->preview_pipe->backbuf_height; - const float zoom_y = dt_control_get_dev_zoom_y(); - const float zoom_x = dt_control_get_dev_zoom_x(); - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(dev, zoom, 1 << closeup, 1); - const float posx_from = fmin(g->posx_from, g->posx_to); const float posx_to = fmax(g->posx_from, g->posx_to); const float posy_from = fmin(g->posy_from, g->posy_to); const float posy_to = fmax(g->posy_from, g->posy_to); - cairo_save(cr); cairo_set_line_width(cr, 1.0 / zoom_scale); cairo_set_source_rgb(cr, .2, .2, .2); - cairo_translate(cr, width / 2.0, height / 2.0f); - cairo_scale(cr, zoom_scale, zoom_scale); - cairo_translate(cr, -.5f * wd - zoom_x * wd, -.5f * ht - zoom_y * ht); - cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND); cairo_rectangle(cr, posx_from, posy_from, (posx_to - posx_from), (posy_to - posy_from)); @@ -358,11 +361,11 @@ cairo_rectangle(cr, posx_from + 1.0 / zoom_scale, posy_from, (posx_to - posx_from) - 3. / zoom_scale, (posy_to - posy_from) - 2. / zoom_scale); cairo_stroke(cr); - - cairo_restore(cr); } -static gboolean _area_leave_notify_callback(GtkWidget *widget, GdkEventCrossing *event, dt_iop_module_t *self) +static gboolean _area_leave_notify_callback(GtkWidget *widget, + GdkEventCrossing *event, + dt_iop_module_t *self) { dt_iop_rgblevels_gui_data_t *c = (dt_iop_rgblevels_gui_data_t *)self->gui_data; c->mouse_x = c->mouse_y = -1.0; @@ -370,7 +373,9 @@ return TRUE; } -static gboolean _area_draw_callback(GtkWidget *widget, cairo_t *crf, dt_iop_module_t *self) +static gboolean _area_draw_callback(GtkWidget *widget, + cairo_t *crf, + dt_iop_module_t *self) { dt_iop_rgblevels_gui_data_t *c = (dt_iop_rgblevels_gui_data_t *)self->gui_data; dt_iop_rgblevels_params_t *p = (dt_iop_rgblevels_params_t *)self->params; @@ -378,7 +383,8 @@ const int inset = DT_GUI_CURVE_EDITOR_INSET; GtkAllocation allocation; gtk_widget_get_allocation(GTK_WIDGET(c->area), &allocation); - int width = allocation.width, height = allocation.height; + int width = allocation.width; + int height = allocation.height - DT_RESIZE_HANDLE_SIZE; cairo_surface_t *cst = dt_cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height); cairo_t *cr = cairo_create(cst); @@ -462,7 +468,8 @@ float hist_max; if(p->autoscale == DT_IOP_RGBLEVELS_LINKED_CHANNELS) - hist_max = fmaxf(self->histogram_max[DT_IOP_RGBLEVELS_R], fmaxf(self->histogram_max[DT_IOP_RGBLEVELS_G],self->histogram_max[DT_IOP_RGBLEVELS_B])); + hist_max = fmaxf(self->histogram_max[DT_IOP_RGBLEVELS_R], + fmaxf(self->histogram_max[DT_IOP_RGBLEVELS_G],self->histogram_max[DT_IOP_RGBLEVELS_B])); else hist_max = self->histogram_max[ch]; @@ -499,11 +506,14 @@ cairo_set_source_surface(crf, cst, 0, 0); cairo_paint(crf); cairo_surface_destroy(cst); - return TRUE; + return FALSE; } -static void _rgblevels_move_handle(dt_iop_module_t *self, const int handle_move, const float new_pos, float *levels, - const float drag_start_percentage) +static void _rgblevels_move_handle(dt_iop_module_t *self, + const int handle_move, + const float new_pos, + float *levels, + const float drag_start_percentage) { dt_iop_rgblevels_gui_data_t *c = (dt_iop_rgblevels_gui_data_t *)self->gui_data; float min_x = 0.f; @@ -543,14 +553,16 @@ gtk_widget_queue_draw(GTK_WIDGET(c->area)); } -static gboolean _area_motion_notify_callback(GtkWidget *widget, GdkEventMotion *event, dt_iop_module_t *self) +static gboolean _area_motion_notify_callback(GtkWidget *widget, + GdkEventMotion *event, + dt_iop_module_t *self) { dt_iop_rgblevels_gui_data_t *c = (dt_iop_rgblevels_gui_data_t *)self->gui_data; dt_iop_rgblevels_params_t *p = (dt_iop_rgblevels_params_t *)self->params; const int inset = DT_GUI_CURVE_EDITOR_INSET; GtkAllocation allocation; gtk_widget_get_allocation(widget, &allocation); - int height = allocation.height - 2 * inset, width = allocation.width - 2 * inset; + int height = allocation.height - 2 * inset - DT_RESIZE_HANDLE_SIZE, width = allocation.width - 2 * inset; if(!c->dragging) { c->mouse_x = CLAMP(event->x - inset, 0, width); @@ -590,7 +602,9 @@ return TRUE; } -static gboolean _area_button_press_callback(GtkWidget *widget, GdkEventButton *event, dt_iop_module_t *self) +static gboolean _area_button_press_callback(GtkWidget *widget, + GdkEventButton *event, + dt_iop_module_t *self) { // set active point if(event->button == 1) @@ -604,7 +618,7 @@ // Reset dt_iop_rgblevels_gui_data_t *c = (dt_iop_rgblevels_gui_data_t *)self->gui_data; dt_iop_rgblevels_params_t *p = (dt_iop_rgblevels_params_t *)self->params; - dt_iop_rgblevels_params_t *default_params = (dt_iop_rgblevels_params_t *)self->default_params; + const dt_iop_rgblevels_params_t *const default_params = (dt_iop_rgblevels_params_t *)self->default_params; for(int i = 0; i < 3; i++) p->levels[c->channel][i] = default_params->levels[c->channel][i]; @@ -627,7 +641,9 @@ return FALSE; } -static gboolean _area_button_release_callback(GtkWidget *widget, GdkEventButton *event, dt_iop_module_t *self) +static gboolean _area_button_release_callback(GtkWidget *widget, + GdkEventButton *event, + dt_iop_module_t *self) { if(event->button == 1) { @@ -638,7 +654,9 @@ return FALSE; } -static gboolean _area_scroll_callback(GtkWidget *widget, GdkEventScroll *event, dt_iop_module_t *self) +static gboolean _area_scroll_callback(GtkWidget *widget, + GdkEventScroll *event, + dt_iop_module_t *self) { dt_iop_rgblevels_gui_data_t *c = (dt_iop_rgblevels_gui_data_t *)self->gui_data; dt_iop_rgblevels_params_t *p = (dt_iop_rgblevels_params_t *)self->params; @@ -654,9 +672,10 @@ if(darktable.develop->gui_module != self) dt_iop_request_focus(self); - const float interval = 0.002 * dt_accel_get_speed_multiplier(widget, event->state); // Distance moved for each scroll event + const float interval = 0.002 * dt_accel_get_speed_multiplier(widget, event->state); + // Distance moved for each scroll event int delta_y; - if(dt_gui_get_scroll_unit_deltas(event, NULL, &delta_y)) + if(dt_gui_get_scroll_unit_delta(event, &delta_y)) { const float new_position = p->levels[c->channel][c->handle_move] - interval * delta_y; _rgblevels_move_handle(self, c->handle_move, new_position, p->levels[c->channel], c->drag_start_percentage); @@ -666,7 +685,8 @@ return TRUE; // Ensure that scrolling the widget cannot move side panel } -static void _auto_levels_callback(GtkButton *button, dt_iop_module_t *self) +static void _auto_levels_callback(GtkButton *button, + dt_iop_module_t *self) { if(darktable.gui->reset) return; @@ -692,7 +712,8 @@ dt_dev_reprocess_all(self->dev); } -static void _select_region_toggled_callback(GtkToggleButton *togglebutton, dt_iop_module_t *self) +static void _select_region_toggled_callback(GtkToggleButton *togglebutton, + dt_iop_module_t *self) { if(darktable.gui->reset) return; @@ -737,7 +758,10 @@ } } -static void _tab_switch_callback(GtkNotebook *notebook, GtkWidget *page, guint page_num, dt_iop_module_t *self) +static void _tab_switch_callback(GtkNotebook *notebook, + GtkWidget *page, + const guint page_num, + dt_iop_module_t *self) { if(darktable.gui->reset) return; dt_iop_rgblevels_gui_data_t *g = (dt_iop_rgblevels_gui_data_t *)self->gui_data; @@ -752,7 +776,9 @@ _turn_select_region_off(self); } -void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece) +void color_picker_apply(dt_iop_module_t *self, + GtkWidget *picker, + dt_dev_pixelpipe_t *pipe) { dt_iop_rgblevels_gui_data_t *c = (dt_iop_rgblevels_gui_data_t *)self->gui_data; dt_iop_rgblevels_params_t *p = (dt_iop_rgblevels_params_t *)self->params; @@ -786,7 +812,8 @@ } else if(picker == c->greypick) { - if(mean_picked_color < p->levels[channel][0] || mean_picked_color > p->levels[channel][2]) + if(mean_picked_color < p->levels[channel][0] + || mean_picked_color > p->levels[channel][2]) { p->levels[channel][1] = p->levels[channel][1]; } @@ -817,7 +844,9 @@ } -void commit_params(dt_iop_module_t *self, dt_iop_params_t *p1, dt_dev_pixelpipe_t *pipe, +void commit_params(dt_iop_module_t *self, + dt_iop_params_t *p1, + dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) { dt_iop_rgblevels_data_t *d = (dt_iop_rgblevels_data_t *)piece->data; @@ -846,12 +875,14 @@ _compute_lut(piece); } -void init_pipe(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +void init_pipe(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { piece->data = malloc(sizeof(dt_iop_rgblevels_data_t)); } -void cleanup_pipe(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +void cleanup_pipe(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { // clean up everything again. free(piece->data); @@ -865,7 +896,8 @@ dt_bauhaus_combobox_set(g->cmb_autoscale, p->autoscale); dt_bauhaus_combobox_set(g->cmb_preserve_colors, p->preserve_colors); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_select_region), g->draw_selected_region); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->bt_select_region), + g->draw_selected_region); _rgblevels_show_hide_controls(p, g); gtk_widget_queue_draw(self->widget); @@ -938,7 +970,10 @@ { N_("white"), dt_action_effect_value }, { NULL } }; -static float _action_process(gpointer target, dt_action_element_t element, dt_action_effect_t effect, float move_size) +static float _action_process(gpointer target, + const dt_action_element_t element, + const dt_action_effect_t effect, + float move_size) { dt_iop_module_t *self = g_object_get_data(G_OBJECT(target), "iop-instance"); dt_iop_rgblevels_gui_data_t *c = (dt_iop_rgblevels_gui_data_t *)self->gui_data; @@ -968,11 +1003,14 @@ const float new_position = p->levels[c->channel][element] + interval * move_size; _rgblevels_move_handle(self, element, new_position, p->levels[c->channel], c->drag_start_percentage); default: - dt_print(DT_DEBUG_ALWAYS, "[_action_process_tabs] unknown shortcut effect (%d) for levels\n", effect); + dt_print(DT_DEBUG_ALWAYS, + "[_action_process_tabs] unknown shortcut effect (%d) for levels\n", effect); break; } - gchar *text = g_strdup_printf("%s %.2f", _action_elements_levels[element].name, p->levels[c->channel][element]); + gchar *text = g_strdup_printf("%s %.2f", + _action_elements_levels[element].name, + p->levels[c->channel][element]); dt_action_widget_toast(DT_ACTION(self), target, text); g_free(text); } @@ -996,49 +1034,66 @@ c->last_picked_color = -1; c->cmb_autoscale = dt_bauhaus_combobox_from_params(self, "autoscale"); - gtk_widget_set_tooltip_text(c->cmb_autoscale, _("choose between linked and independent channels.")); + gtk_widget_set_tooltip_text(c->cmb_autoscale, + _("choose between linked and independent channels.")); c->channel_tabs = GTK_NOTEBOOK(gtk_notebook_new()); - dt_action_define_iop(self, NULL, N_("channel"), GTK_WIDGET(c->channel_tabs), &dt_action_def_tabs_rgb); + dt_action_define_iop(self, NULL, N_("channel"), + GTK_WIDGET(c->channel_tabs), &dt_action_def_tabs_rgb); dt_ui_notebook_page(c->channel_tabs, N_("R"), _("curve nodes for r channel")); dt_ui_notebook_page(c->channel_tabs, N_("G"), _("curve nodes for g channel")); dt_ui_notebook_page(c->channel_tabs, N_("B"), _("curve nodes for b channel")); - g_signal_connect(G_OBJECT(c->channel_tabs), "switch_page", G_CALLBACK(_tab_switch_callback), self); + g_signal_connect(G_OBJECT(c->channel_tabs), "switch_page", + G_CALLBACK(_tab_switch_callback), self); gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(c->channel_tabs), FALSE, FALSE, 0); - c->area = GTK_DRAWING_AREA(dt_ui_resize_wrap(NULL, 0, "plugins/darkroom/rgblevels/aspect_percent")); + c->area = GTK_DRAWING_AREA(dt_ui_resize_wrap + (NULL, 0, "plugins/darkroom/rgblevels/aspect_percent")); gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(c->area), TRUE, TRUE, 0); g_object_set_data(G_OBJECT(c->area), "iop-instance", self); dt_action_define_iop(self, NULL, N_("levels"), GTK_WIDGET(c->area), &_action_def_levels); - gtk_widget_set_tooltip_text(GTK_WIDGET(c->area),_("drag handles to set black, gray, and white points. " - "operates on L channel.")); - g_signal_connect(G_OBJECT(c->area), "draw", G_CALLBACK(_area_draw_callback), self); - g_signal_connect(G_OBJECT(c->area), "button-press-event", G_CALLBACK(_area_button_press_callback), self); - g_signal_connect(G_OBJECT(c->area), "button-release-event", G_CALLBACK(_area_button_release_callback), self); - g_signal_connect(G_OBJECT(c->area), "motion-notify-event", G_CALLBACK(_area_motion_notify_callback), self); - g_signal_connect(G_OBJECT(c->area), "leave-notify-event", G_CALLBACK(_area_leave_notify_callback), self); - g_signal_connect(G_OBJECT(c->area), "scroll-event", G_CALLBACK(_area_scroll_callback), self); + gtk_widget_set_tooltip_text(GTK_WIDGET(c->area), + _("drag handles to set black, gray, and white points. " + "operates on L channel.")); + g_signal_connect(G_OBJECT(c->area), "draw", + G_CALLBACK(_area_draw_callback), self); + g_signal_connect(G_OBJECT(c->area), "button-press-event", + G_CALLBACK(_area_button_press_callback), self); + g_signal_connect(G_OBJECT(c->area), "button-release-event", + G_CALLBACK(_area_button_release_callback), self); + g_signal_connect(G_OBJECT(c->area), "motion-notify-event", + G_CALLBACK(_area_motion_notify_callback), self); + g_signal_connect(G_OBJECT(c->area), "leave-notify-event", + G_CALLBACK(_area_leave_notify_callback), self); + g_signal_connect(G_OBJECT(c->area), "scroll-event", + G_CALLBACK(_area_scroll_callback), self); c->blackpick = dt_color_picker_new(self, DT_COLOR_PICKER_POINT, NULL); - dt_action_define_iop(self, N_("pickers"), N_("black"), c->blackpick, &dt_action_def_toggle); + dt_action_define_iop(self, N_("pickers"), N_("black"), c->blackpick, + &dt_action_def_toggle); gtk_widget_set_tooltip_text(c->blackpick, _("pick black point from image")); gtk_widget_set_name(GTK_WIDGET(c->blackpick), "picker-black"); - g_signal_connect(G_OBJECT(c->blackpick), "toggled", G_CALLBACK(_color_picker_callback), self); + g_signal_connect(G_OBJECT(c->blackpick), "toggled", + G_CALLBACK(_color_picker_callback), self); c->greypick = dt_color_picker_new(self, DT_COLOR_PICKER_POINT, NULL); - dt_action_define_iop(self, N_("pickers"), N_("gray"), c->greypick, &dt_action_def_toggle); + dt_action_define_iop(self, N_("pickers"), N_("gray"), c->greypick, + &dt_action_def_toggle); gtk_widget_set_tooltip_text(c->greypick, _("pick medium gray point from image")); gtk_widget_set_name(GTK_WIDGET(c->greypick), "picker-grey"); - g_signal_connect(G_OBJECT(c->greypick), "toggled", G_CALLBACK(_color_picker_callback), self); + g_signal_connect(G_OBJECT(c->greypick), "toggled", + G_CALLBACK(_color_picker_callback), self); c->whitepick = dt_color_picker_new(self, DT_COLOR_PICKER_POINT, NULL); - dt_action_define_iop(self, N_("pickers"), N_("white"), c->whitepick, &dt_action_def_toggle); + dt_action_define_iop(self, N_("pickers"), N_("white"), c->whitepick, + &dt_action_def_toggle); gtk_widget_set_tooltip_text(c->whitepick, _("pick white point from image")); gtk_widget_set_name(GTK_WIDGET(c->whitepick), "picker-white"); - g_signal_connect(G_OBJECT(c->whitepick), "toggled", G_CALLBACK(_color_picker_callback), self); + g_signal_connect(G_OBJECT(c->whitepick), "toggled", + G_CALLBACK(_color_picker_callback), self); GtkWidget *pick_hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start(GTK_BOX(pick_hbox), GTK_WIDGET(c->blackpick), TRUE, TRUE, 0); @@ -1048,43 +1103,54 @@ gtk_box_pack_start(GTK_BOX(self->widget), pick_hbox, TRUE, TRUE, 0); c->bt_auto_levels = gtk_button_new_with_label(_("auto")); - dt_action_define_iop(self, NULL, N_("auto levels"), c->bt_auto_levels, &dt_action_def_button); + dt_action_define_iop(self, NULL, N_("auto levels"), c->bt_auto_levels, + &dt_action_def_button); gtk_widget_set_tooltip_text(c->bt_auto_levels, _("apply auto levels")); c->bt_select_region = dtgtk_togglebutton_new(dtgtk_cairo_paint_colorpicker, 0, NULL); dt_gui_add_class(c->bt_select_region, "dt_transparent_background"); - dt_action_define_iop(self, NULL, N_("auto region"), c->bt_select_region, &dt_action_def_toggle); + dt_action_define_iop(self, NULL, N_("auto region"), c->bt_select_region, + &dt_action_def_toggle); gtk_widget_set_tooltip_text(c->bt_select_region, _("apply auto levels based on a region defined by the user\n" "click and drag to draw the area\n" "right click to cancel")); - GtkWidget *autolevels_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, DT_PIXEL_APPLY_DPI(10)); + GtkWidget *autolevels_box = + gtk_box_new(GTK_ORIENTATION_HORIZONTAL, DT_PIXEL_APPLY_DPI(10)); gtk_box_pack_start(GTK_BOX(autolevels_box), c->bt_auto_levels, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(autolevels_box), c->bt_select_region, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(self->widget), autolevels_box, TRUE, TRUE, 0); - g_signal_connect(G_OBJECT(c->bt_auto_levels), "clicked", G_CALLBACK(_auto_levels_callback), self); - g_signal_connect(G_OBJECT(c->bt_select_region), "toggled", G_CALLBACK(_select_region_toggled_callback), self); + g_signal_connect(G_OBJECT(c->bt_auto_levels), "clicked", + G_CALLBACK(_auto_levels_callback), self); + g_signal_connect(G_OBJECT(c->bt_select_region), "toggled", + G_CALLBACK(_select_region_toggled_callback), self); c->cmb_preserve_colors = dt_bauhaus_combobox_from_params(self, "preserve_colors"); - gtk_widget_set_tooltip_text(c->cmb_preserve_colors, _("method to preserve colors when applying contrast")); + gtk_widget_set_tooltip_text(c->cmb_preserve_colors, + _("method to preserve colors when applying contrast")); // add signal handler for preview pipe finish - DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_DEVELOP_PREVIEW_PIPE_FINISHED, - G_CALLBACK(_develop_ui_pipe_finished_callback), self); + DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, + DT_SIGNAL_DEVELOP_PREVIEW_PIPE_FINISHED, + G_CALLBACK(_develop_ui_pipe_finished_callback), self); } void gui_cleanup(dt_iop_module_t *self) { - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(_develop_ui_pipe_finished_callback), self); + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, + G_CALLBACK(_develop_ui_pipe_finished_callback), self); IOP_GUI_FREE; } -static void _get_selected_area(struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, - dt_iop_rgblevels_gui_data_t *g, const dt_iop_roi_t *const roi_in, int *box_out) +static void _get_selected_area(struct dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + dt_iop_rgblevels_gui_data_t *g, + const dt_iop_roi_t *const roi_in, + int *box_out) { box_out[0] = box_out[1] = box_out[2] = box_out[3] = 0; @@ -1092,14 +1158,16 @@ { const int width = roi_in->width; const int height = roi_in->height; - dt_boundingbox_t box_cood = { g->box_cood[0], g->box_cood[1], g->box_cood[2], g->box_cood[3] }; + dt_boundingbox_t box_cood = { g->box_cood[0], g->box_cood[1], + g->box_cood[2], g->box_cood[3] }; box_cood[0] *= piece->pipe->iwidth; box_cood[1] *= piece->pipe->iheight; box_cood[2] *= piece->pipe->iwidth; box_cood[3] *= piece->pipe->iheight; - dt_dev_distort_transform_plus(self->dev, piece->pipe, self->iop_order, DT_DEV_TRANSFORM_DIR_BACK_INCL, + dt_dev_distort_transform_plus(self->dev, piece->pipe, self->iop_order, + DT_DEV_TRANSFORM_DIR_BACK_INCL, box_cood, 2); box_cood[0] *= roi_in->scale; @@ -1139,12 +1207,18 @@ } } -static void _auto_levels(const float *const img, const int width, const int height, int *box_area, - dt_iop_rgblevels_params_t *p, const int _channel, const dt_iop_order_iccprofile_info_t *const work_profile) +static void _auto_levels(const float *const img, + const int width, + const int height, + int *box_area, + dt_iop_rgblevels_params_t *p, + const int _channel, + const dt_iop_order_iccprofile_info_t *const work_profile) { int y_from, y_to, x_from, x_to; const int ch = 4; - const int channel = (p->autoscale == DT_IOP_RGBLEVELS_INDEPENDENT_CHANNELS) ? _channel : 0; + const int channel = + (p->autoscale == DT_IOP_RGBLEVELS_INDEPENDENT_CHANNELS) ? _channel : 0; if(box_area[2] > box_area[0] && box_area[3] > box_area[1]) { y_from = box_area[1]; @@ -1170,7 +1244,8 @@ { const float *const pixel = in + x * ch; - if(p->autoscale == DT_IOP_RGBLEVELS_INDEPENDENT_CHANNELS || p->preserve_colors == DT_RGB_NORM_NONE) + if(p->autoscale == DT_IOP_RGBLEVELS_INDEPENDENT_CHANNELS + || p->preserve_colors == DT_RGB_NORM_NONE) { if(p->autoscale == DT_IOP_RGBLEVELS_INDEPENDENT_CHANNELS) { @@ -1216,14 +1291,17 @@ const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) { - if(!dt_iop_have_required_input_format(4 /*we need full-color pixels*/, self, piece->colors, - ivoid, ovoid, roi_in, roi_out)) - return; // image has been copied through to output and module's trouble flag has been updated + if(!dt_iop_have_required_input_format(4 /*we need full-color pixels*/, + self, piece->colors, + ivoid, ovoid, roi_in, roi_out)) + return; // image has been copied through to output and module's + // trouble flag has been updated const dt_iop_rgblevels_data_t *const d = (dt_iop_rgblevels_data_t *)piece->data; dt_iop_rgblevels_params_t *p = (dt_iop_rgblevels_params_t *)&d->params; dt_iop_rgblevels_gui_data_t *g = (dt_iop_rgblevels_gui_data_t *)self->gui_data; - const dt_iop_order_iccprofile_info_t *const work_profile = dt_ioppr_get_pipe_work_profile_info(piece->pipe); + const dt_iop_order_iccprofile_info_t *const work_profile = + dt_ioppr_get_pipe_work_profile_info(piece->pipe); // process auto levels if(g && (piece->pipe->type & DT_DEV_PIXELPIPE_PREVIEW)) @@ -1252,9 +1330,10 @@ } } - const dt_aligned_pixel_t mult = { 1.f / (d->params.levels[0][2] - d->params.levels[0][0]), - 1.f / (d->params.levels[1][2] - d->params.levels[1][0]), - 1.f / (d->params.levels[2][2] - d->params.levels[2][0]) }; + const dt_aligned_pixel_t mult = + { 1.f / (d->params.levels[0][2] - d->params.levels[0][0]), + 1.f / (d->params.levels[1][2] - d->params.levels[1][0]), + 1.f / (d->params.levels[2][2] - d->params.levels[2][0]) }; const size_t npixels = (size_t)roi_out->width * roi_out->height; const float *const restrict in = (const float*)ivoid; @@ -1347,10 +1426,15 @@ } #ifdef HAVE_OPENCL -int process_cl(dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, cl_mem dev_in, cl_mem dev_out, - const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) +int process_cl(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + cl_mem dev_in, + cl_mem dev_out, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) { - const dt_iop_order_iccprofile_info_t *const work_profile = dt_ioppr_get_pipe_work_profile_info(piece->pipe); + const dt_iop_order_iccprofile_info_t *const work_profile = + dt_ioppr_get_pipe_work_profile_info(piece->pipe); const int ch = piece->colors; dt_iop_rgblevels_data_t *d = (dt_iop_rgblevels_data_t *)piece->data; @@ -1395,15 +1479,18 @@ src_buffer = dt_alloc_align_float((size_t)ch * width * height); if(src_buffer == NULL) { - dt_print(DT_DEBUG_ALWAYS, "[rgblevels process_cl] error allocating memory for temp table 1\n"); + dt_print(DT_DEBUG_ALWAYS, + "[rgblevels process_cl] error allocating memory for temp table 1\n"); err = CL_MEM_OBJECT_ALLOCATION_FAILURE; goto cleanup; } - err = dt_opencl_copy_device_to_host(devid, src_buffer, dev_in, width, height, ch * sizeof(float)); + err = dt_opencl_copy_device_to_host(devid, src_buffer, + dev_in, width, height, ch * sizeof(float)); if(err != CL_SUCCESS) { - dt_print(DT_DEBUG_ALWAYS, "[rgblevels process_cl] error allocating memory for temp table 2\n"); + dt_print(DT_DEBUG_ALWAYS, + "[rgblevels process_cl] error allocating memory for temp table 2\n"); goto cleanup; } @@ -1411,7 +1498,8 @@ int box[4] = { 0 }; _get_selected_area(self, piece, g, roi_in, box); - _auto_levels(src_buffer, roi_in->width, roi_in->height, box, &(g->params), g->channel, work_profile); + _auto_levels(src_buffer, roi_in->width, roi_in->height, box, + &(g->params), g->channel, work_profile); dt_free_align(src_buffer); src_buffer = NULL; @@ -1432,68 +1520,62 @@ dev_lutr = dt_opencl_copy_host_to_device(devid, d->lut[0], 256, 256, sizeof(float)); if(dev_lutr == NULL) { - dt_print(DT_DEBUG_ALWAYS, "[rgblevels process_cl] error allocating memory 1\n"); err = CL_MEM_OBJECT_ALLOCATION_FAILURE; goto cleanup; } dev_lutg = dt_opencl_copy_host_to_device(devid, d->lut[1], 256, 256, sizeof(float)); if(dev_lutg == NULL) { - dt_print(DT_DEBUG_ALWAYS, "[rgblevels process_cl] error allocating memory 2\n"); err = CL_MEM_OBJECT_ALLOCATION_FAILURE; goto cleanup; } dev_lutb = dt_opencl_copy_host_to_device(devid, d->lut[2], 256, 256, sizeof(float)); if(dev_lutb == NULL) { - dt_print(DT_DEBUG_ALWAYS, "[rgblevels process_cl] error allocating memory 3\n"); err = CL_MEM_OBJECT_ALLOCATION_FAILURE; goto cleanup; } - dev_levels = dt_opencl_copy_host_to_device_constant(devid, sizeof(float) * 3 * 3, (float *)d->params.levels); + dev_levels = dt_opencl_copy_host_to_device_constant + (devid, sizeof(float) * 3 * 3, (float *)d->params.levels); if(dev_levels == NULL) { - dt_print(DT_DEBUG_ALWAYS, "[rgblevels process_cl] error allocating memory 4\n"); err = CL_MEM_OBJECT_ALLOCATION_FAILURE; goto cleanup; } - dev_inv_gamma = dt_opencl_copy_host_to_device_constant(devid, sizeof(float) * 3, (float *)d->inv_gamma); + dev_inv_gamma = dt_opencl_copy_host_to_device_constant + (devid, sizeof(float) * 3, (float *)d->inv_gamma); if(dev_inv_gamma == NULL) { - dt_print(DT_DEBUG_ALWAYS, "[rgblevels process_cl] error allocating memory 5\n"); err = CL_MEM_OBJECT_ALLOCATION_FAILURE; goto cleanup; } - err = dt_ioppr_build_iccprofile_params_cl(work_profile, devid, &profile_info_cl, &profile_lut_cl, + err = dt_ioppr_build_iccprofile_params_cl(work_profile, devid, + &profile_info_cl, &profile_lut_cl, &dev_profile_info, &dev_profile_lut); if(err != CL_SUCCESS) goto cleanup; - err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_levels, width, height, - CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(autoscale), CLARG(preserve_colors), - CLARG(dev_lutr), CLARG(dev_lutg), CLARG(dev_lutb), CLARG(dev_levels), CLARG(dev_inv_gamma), CLARG(dev_profile_info), - CLARG(dev_profile_lut), CLARG(use_work_profile)); - if(err != CL_SUCCESS) - { - dt_print(DT_DEBUG_ALWAYS, "[rgblevels process_cl] error %i enqueue kernel\n", err); - goto cleanup; - } + err = dt_opencl_enqueue_kernel_2d_args + (devid, gd->kernel_levels, width, height, + CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), + CLARG(autoscale), CLARG(preserve_colors), + CLARG(dev_lutr), CLARG(dev_lutg), CLARG(dev_lutb), + CLARG(dev_levels), CLARG(dev_inv_gamma), CLARG(dev_profile_info), + CLARG(dev_profile_lut), CLARG(use_work_profile)); cleanup: - if(dev_lutr) dt_opencl_release_mem_object(dev_lutr); - if(dev_lutg) dt_opencl_release_mem_object(dev_lutg); - if(dev_lutb) dt_opencl_release_mem_object(dev_lutb); - if(dev_levels) dt_opencl_release_mem_object(dev_levels); - if(dev_inv_gamma) dt_opencl_release_mem_object(dev_inv_gamma); - dt_ioppr_free_iccprofile_params_cl(&profile_info_cl, &profile_lut_cl, &dev_profile_info, &dev_profile_lut); + dt_opencl_release_mem_object(dev_lutr); + dt_opencl_release_mem_object(dev_lutg); + dt_opencl_release_mem_object(dev_lutb); + dt_opencl_release_mem_object(dev_levels); + dt_opencl_release_mem_object(dev_inv_gamma); + dt_ioppr_free_iccprofile_params_cl(&profile_info_cl, + &profile_lut_cl, &dev_profile_info, &dev_profile_lut); - if(src_buffer) dt_free_align(src_buffer); - - if(err != CL_SUCCESS) dt_print(DT_DEBUG_OPENCL, "[opencl_rgblevels] couldn't enqueue kernel! %s\n", cl_errstr(err)); - - return (err == CL_SUCCESS) ? TRUE : FALSE; + dt_free_align(src_buffer); + return err; } #endif @@ -1502,4 +1584,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/rotatepixels.c darktable-4.6.1/src/iop/rotatepixels.c --- darktable-4.4.2/src/iop/rotatepixels.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/rotatepixels.c 2024-02-16 17:31:09.000000000 +0000 @@ -86,7 +86,9 @@ return IOP_TAG_DISTORT; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -103,7 +105,9 @@ #ifdef _OPENMP #pragma omp declare simd #endif -static void transform(const dt_dev_pixelpipe_iop_t *const piece, const float scale, const float *const x, +static void transform(const dt_dev_pixelpipe_iop_t *const piece, + const float scale, + const float *const x, float *o) { dt_iop_rotatepixels_data_t *d = (dt_iop_rotatepixels_data_t *)piece->data; @@ -117,7 +121,9 @@ #ifdef _OPENMP #pragma omp declare simd #endif -static void backtransform(const dt_dev_pixelpipe_iop_t *const piece, const float scale, const float *const x, +static void backtransform(const dt_dev_pixelpipe_iop_t *const piece, + const float scale, + const float *const x, float *o) { dt_iop_rotatepixels_data_t *d = (dt_iop_rotatepixels_data_t *)piece->data; @@ -129,7 +135,10 @@ o[1] += d->ry * scale; } -int distort_transform(dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, float *const restrict points, size_t points_count) +gboolean distort_transform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *const restrict points, + size_t points_count) { const float scale = piece->buf_in.scale / piece->iscale; @@ -151,11 +160,13 @@ points[i + 1] = po[1]; } - return 1; + return TRUE; } -int distort_backtransform(dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, float *const restrict points, - size_t points_count) +gboolean distort_backtransform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *const restrict points, + size_t points_count) { const float scale = piece->buf_in.scale / piece->iscale; @@ -177,11 +188,15 @@ points[i + 1] = po[1]; } - return 1; + return TRUE; } -void distort_mask(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const float *const in, - float *const out, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) +void distort_mask(struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + const float *const in, + float *const out, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) { // TODO memset(out, 0, sizeof(float) * roi_out->width * roi_out->height); diff -Nru darktable-4.4.2/src/iop/scalepixels.c darktable-4.6.1/src/iop/scalepixels.c --- darktable-4.4.2/src/iop/scalepixels.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/scalepixels.c 2024-02-16 17:31:09.000000000 +0000 @@ -71,7 +71,9 @@ return IOP_TAG_DISTORT; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -109,7 +111,10 @@ self->modify_roi_in(self, piece, &roi_out, &roi_in); } -int distort_transform(dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, float *points, size_t points_count) +gboolean distort_transform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *points, + size_t points_count) { precalculate_scale(self, piece); dt_iop_scalepixels_data_t *d = piece->data; @@ -120,11 +125,13 @@ points[i+1] /= d->y_scale; } - return 1; + return TRUE; } -int distort_backtransform(dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, float *points, - size_t points_count) +gboolean distort_backtransform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *points, + size_t points_count) { precalculate_scale(self, piece); dt_iop_scalepixels_data_t *d = piece->data; @@ -135,15 +142,18 @@ points[i+1] *= d->y_scale; } - return 1; + return TRUE; } -void distort_mask(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const float *const in, - float *const out, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) +void distort_mask( + struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + const float *const in, + float *const out, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) { - // TODO - memset(out, 0, sizeof(float) * roi_out->width * roi_out->height); - dt_print(DT_DEBUG_ALWAYS, "TODO: implement %s() in %s\n", __FUNCTION__, __FILE__); + dt_iop_copy_image_roi(out, in, 1, roi_in, roi_out); } void modify_roi_out(dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, dt_iop_roi_t *roi_out, diff -Nru darktable-4.4.2/src/iop/shadhi.c darktable-4.6.1/src/iop/shadhi.c --- darktable-4.4.2/src/iop/shadhi.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/shadhi.c 2024-02-16 17:31:09.000000000 +0000 @@ -66,61 +66,6 @@ SHADHI_ALGO_BILATERAL // $DESCRIPTION: "bilateral filter" } dt_iop_shadhi_algo_t; -/* legacy version 1 params */ -typedef struct dt_iop_shadhi_params1_t -{ - dt_gaussian_order_t order; - float radius; - float shadows; - float reserved1; - float highlights; - float reserved2; - float compress; -} dt_iop_shadhi_params1_t; - -/* legacy version 2 params */ -typedef struct dt_iop_shadhi_params2_t -{ - dt_gaussian_order_t order; - float radius; - float shadows; - float reserved1; - float highlights; - float reserved2; - float compress; - float shadows_ccorrect; - float highlights_ccorrect; -} dt_iop_shadhi_params2_t; - -typedef struct dt_iop_shadhi_params3_t -{ - dt_gaussian_order_t order; - float radius; - float shadows; - float reserved1; - float highlights; - float reserved2; - float compress; - float shadows_ccorrect; - float highlights_ccorrect; - unsigned int flags; -} dt_iop_shadhi_params3_t; - -typedef struct dt_iop_shadhi_params4_t -{ - dt_gaussian_order_t order; - float radius; - float shadows; - float whitepoint; - float highlights; - float reserved2; - float compress; - float shadows_ccorrect; - float highlights_ccorrect; - unsigned int flags; - float low_approximation; -} dt_iop_shadhi_params4_t; - typedef struct dt_iop_shadhi_params_t { dt_gaussian_order_t order; // $DEFAULT: DT_IOP_GAUSSIAN_ZERO @@ -185,7 +130,9 @@ return IOP_GROUP_BASIC | IOP_GROUP_GRADING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } @@ -200,13 +147,45 @@ _("non-linear, Lab, display-referred")); } -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, const int new_version) -{ - if(old_version == 1 && new_version == 5) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_shadhi_params_v5_t + { + dt_gaussian_order_t order; + float radius; + float shadows; + float whitepoint; + float highlights; + float reserved2; + float compress; + float shadows_ccorrect; + float highlights_ccorrect; + unsigned int flags; + float low_approximation; + dt_iop_shadhi_algo_t shadhi_algo; + } dt_iop_shadhi_params_v5_t; + + if(old_version == 1) { - const dt_iop_shadhi_params1_t *old = old_params; - dt_iop_shadhi_params_t *new = new_params; + typedef struct dt_iop_shadhi_params_v1_t + { + dt_gaussian_order_t order; + float radius; + float shadows; + float reserved1; + float highlights; + float reserved2; + float compress; + } dt_iop_shadhi_params_v1_t; + + const dt_iop_shadhi_params_v1_t *old = old_params; + dt_iop_shadhi_params_v5_t *new = + (dt_iop_shadhi_params_v5_t *)malloc(sizeof(dt_iop_shadhi_params_v5_t)); new->order = old->order; new->radius = fabs(old->radius); new->shadows = 0.5f * old->shadows; @@ -219,12 +198,30 @@ new->highlights_ccorrect = 0.0f; new->low_approximation = 0.01f; new->shadhi_algo = old->radius < 0.0f ? SHADHI_ALGO_BILATERAL : SHADHI_ALGO_GAUSSIAN; + + *new_params = new; + *new_params_size = sizeof(dt_iop_shadhi_params_v5_t); + *new_version = 5; return 0; } - else if(old_version == 2 && new_version == 5) + else if(old_version == 2) { - const dt_iop_shadhi_params2_t *old = old_params; - dt_iop_shadhi_params_t *new = new_params; + typedef struct dt_iop_shadhi_params_v2_t + { + dt_gaussian_order_t order; + float radius; + float shadows; + float reserved1; + float highlights; + float reserved2; + float compress; + float shadows_ccorrect; + float highlights_ccorrect; + } dt_iop_shadhi_params_v2_t; + + const dt_iop_shadhi_params_v2_t *old = old_params; + dt_iop_shadhi_params_v5_t *new = + (dt_iop_shadhi_params_v5_t *)malloc(sizeof(dt_iop_shadhi_params_v5_t)); new->order = old->order; new->radius = fabs(old->radius); new->shadows = old->shadows; @@ -237,12 +234,31 @@ new->flags = 0; new->low_approximation = 0.01f; new->shadhi_algo = old->radius < 0.0f ? SHADHI_ALGO_BILATERAL : SHADHI_ALGO_GAUSSIAN; + + *new_params = new; + *new_params_size = sizeof(dt_iop_shadhi_params_v5_t); + *new_version = 5; return 0; } - else if(old_version == 3 && new_version == 5) + else if(old_version == 3) { - const dt_iop_shadhi_params3_t *old = old_params; - dt_iop_shadhi_params_t *new = new_params; + typedef struct dt_iop_shadhi_params_v3_t + { + dt_gaussian_order_t order; + float radius; + float shadows; + float reserved1; + float highlights; + float reserved2; + float compress; + float shadows_ccorrect; + float highlights_ccorrect; + unsigned int flags; + } dt_iop_shadhi_params_v3_t; + + const dt_iop_shadhi_params_v3_t *old = old_params; + dt_iop_shadhi_params_v5_t *new = + (dt_iop_shadhi_params_v5_t *)malloc(sizeof(dt_iop_shadhi_params_v5_t)); new->order = old->order; new->radius = fabs(old->radius); new->shadows = old->shadows; @@ -255,12 +271,32 @@ new->flags = old->flags; new->low_approximation = 0.01f; new->shadhi_algo = old->radius < 0.0f ? SHADHI_ALGO_BILATERAL : SHADHI_ALGO_GAUSSIAN; + + *new_params = new; + *new_params_size = sizeof(dt_iop_shadhi_params_v5_t); + *new_version = 5; return 0; } - else if(old_version == 4 && new_version == 5) + else if(old_version == 4) { - const dt_iop_shadhi_params4_t *old = old_params; - dt_iop_shadhi_params_t *new = new_params; + typedef struct dt_iop_shadhi_params_v4_t + { + dt_gaussian_order_t order; + float radius; + float shadows; + float whitepoint; + float highlights; + float reserved2; + float compress; + float shadows_ccorrect; + float highlights_ccorrect; + unsigned int flags; + float low_approximation; + } dt_iop_shadhi_params_v4_t; + + const dt_iop_shadhi_params_v4_t *old = old_params; + dt_iop_shadhi_params_v5_t *new = + (dt_iop_shadhi_params_v5_t *)malloc(sizeof(dt_iop_shadhi_params_v5_t)); new->order = old->order; new->radius = fabs(old->radius); new->shadows = old->shadows; @@ -273,6 +309,10 @@ new->flags = old->flags; new->low_approximation = old->low_approximation; new->shadhi_algo = old->radius < 0.0f ? SHADHI_ALGO_BILATERAL : SHADHI_ALGO_GAUSSIAN; + + *new_params = new; + *new_params_size = sizeof(dt_iop_shadhi_params_v5_t); + *new_version = 5; return 0; } return 1; @@ -540,6 +580,7 @@ b = NULL; // make sure we don't clean it up twice } + err = DT_OPENCL_SYSMEM_ALLOCATION; dev_tmp = dt_opencl_alloc_device(devid, width, height, sizeof(float) * 4); if(dev_tmp == NULL) goto error; @@ -557,17 +598,12 @@ CLARG(shadows_ccorrect), CLARG(highlights_ccorrect), CLARG(flags), CLARG(unbound_mask), CLARG(low_approximation), CLARG(whitepoint)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_shadows_highlights_mix, sizes); - if(err != CL_SUCCESS) goto error; - - dt_opencl_release_mem_object(dev_tmp); - return TRUE; error: if(g) dt_gaussian_free_cl(g); if(b) dt_bilateral_free_cl(b); dt_opencl_release_mem_object(dev_tmp); - dt_print(DT_DEBUG_OPENCL, "[opencl_shadows&highlights] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif @@ -695,4 +731,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/sharpen.c darktable-4.6.1/src/iop/sharpen.c --- darktable-4.4.2/src/iop/sharpen.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/sharpen.c 2024-02-16 17:31:09.000000000 +0000 @@ -83,7 +83,9 @@ return IOP_FLAGS_SUPPORTS_BLENDING | IOP_FLAGS_ALLOW_TILING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } @@ -146,7 +148,7 @@ size_t region[] = { width, height, 1 }; err = dt_opencl_enqueue_copy_image(devid, dev_in, dev_out, origin, origin, region); if(err != CL_SUCCESS) goto error; - return TRUE; + return CL_SUCCESS; } // special case handling: very small image with one or two dimensions below 2*rad+1 => no sharpening, @@ -157,7 +159,7 @@ size_t region[] = { width, height, 1 }; err = dt_opencl_enqueue_copy_image(devid, dev_in, dev_out, origin, origin, region); if(err != CL_SUCCESS) goto error; - return TRUE; + return CL_SUCCESS; } const float sigma2 = (1.0f / (2.5 * 2.5)) * (d->radius * roi_in->scale / piece->iscale) @@ -232,19 +234,12 @@ dt_opencl_set_kernel_args(devid, gd->kernel_sharpen_mix, 0, CLARG(dev_in), CLARG(dev_tmp), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(d->amount), CLARG(d->threshold)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_sharpen_mix, sizes); - if(err != CL_SUCCESS) goto error; - - dt_opencl_release_mem_object(dev_m); - dt_opencl_release_mem_object(dev_tmp); - dt_free_align(mat); - return TRUE; error: dt_opencl_release_mem_object(dev_m); dt_opencl_release_mem_object(dev_tmp); dt_free_align(mat); - dt_print(DT_DEBUG_OPENCL, "[opencl_sharpen] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif @@ -289,7 +284,7 @@ 1 | DT_IMGSZ_WIDTH | DT_IMGSZ_PERTHREAD, &tmp, &padded_size, 0)) { - dt_iop_copy_image_roi(ovoid, ivoid, 4, roi_in, roi_out, TRUE); + dt_iop_copy_image_roi(ovoid, ivoid, 4, roi_in, roi_out); return; } @@ -303,7 +298,7 @@ if(!mat) { dt_print(DT_DEBUG_ALWAYS,"[sharpen] out of memory\n"); - dt_iop_copy_image_roi(ovoid, ivoid, 4, roi_in, roi_out, TRUE); + dt_iop_copy_image_roi(ovoid, ivoid, 4, roi_in, roi_out); return; } const float *const restrict in = (float*)ivoid; diff -Nru darktable-4.4.2/src/iop/sigmoid.c darktable-4.6.1/src/iop/sigmoid.c --- darktable-4.4.2/src/iop/sigmoid.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/sigmoid.c 2024-02-16 17:31:09.000000000 +0000 @@ -21,7 +21,9 @@ #endif #include "bauhaus/bauhaus.h" +#include "common/custom_primaries.h" #include "common/math.h" +#include "common/matrices.h" #include "develop/imageop.h" #include "develop/imageop_gui.h" #include "develop/openmp_maths.h" @@ -32,7 +34,7 @@ #include <gtk/gtk.h> #include <stdlib.h> -DT_MODULE_INTROSPECTION(1, dt_iop_sigmoid_params_t) +DT_MODULE_INTROSPECTION(3, dt_iop_sigmoid_params_t) #define MIDDLE_GREY 0.1845f @@ -40,21 +42,124 @@ typedef enum dt_iop_sigmoid_methods_type_t { - DT_SIGMOID_METHOD_PER_CHANNEL = 0, // $DESCRIPTION: "per channel" - DT_SIGMOID_METHOD_RGB_RATIO = 1, // $DESCRIPTION: "RGB ratio" + DT_SIGMOID_METHOD_PER_CHANNEL = 0, // $DESCRIPTION: "per channel" + DT_SIGMOID_METHOD_RGB_RATIO = 1, // $DESCRIPTION: "RGB ratio" } dt_iop_sigmoid_methods_type_t; +typedef enum dt_iop_sigmoid_base_primaries_t +{ + DT_SIGMOID_WORK_PROFILE = 0, // $DESCRIPTION: "work profile" + DT_SIGMOID_REC2020 = 1, // $DESCRIPTION: "Rec2020" + DT_SIGMOID_DISPLAY_P3 = 2, // $DESCRIPTION: "Display P3" + DT_SIGMOID_ADOBE_RGB = 3, // $DESCRIPTION: "Adobe RGB (compatible)" + DT_SIGMOID_SRGB = 4, // $DESCRIPTION: "sRGB" +} dt_iop_sigmoid_base_primaries_t; + + typedef struct dt_iop_sigmoid_params_t { - float middle_grey_contrast; // $MIN: 0.1 $MAX: 10.0 $DEFAULT: 1.5 $DESCRIPTION: "contrast" - float contrast_skewness; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "skew" - float display_white_target; // $MIN: 20.0 $MAX: 1600.0 $DEFAULT: 100.0 $DESCRIPTION: "target white" - float display_black_target; // $MIN: 0.0 $MAX: 15.0 $DEFAULT: 0.0152 $DESCRIPTION: "target black" - dt_iop_sigmoid_methods_type_t color_processing; // $DEFAULT: DT_SIGMOID_METHOD_PER_CHANNEL $DESCRIPTION: "color processing" - float hue_preservation; // $MIN: 0.0 $MAX: 100.0 $DEFAULT: 100.0 $DESCRIPTION: "preserve hue" + float middle_grey_contrast; // $MIN: 0.1 $MAX: 10.0 $DEFAULT: 1.5 $DESCRIPTION: "contrast" + float contrast_skewness; // $MIN: -1.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "skew" + float display_white_target; // $MIN: 20.0 $MAX: 1600.0 $DEFAULT: 100.0 $DESCRIPTION: "target white" + float display_black_target; // $MIN: 0.0 $MAX: 15.0 $DEFAULT: 0.0152 $DESCRIPTION: "target black" + dt_iop_sigmoid_methods_type_t color_processing; // $DEFAULT: DT_SIGMOID_METHOD_PER_CHANNEL $DESCRIPTION: "color processing" + float hue_preservation; // $MIN: 0.0 $MAX: 100.0 $DEFAULT: 100.0 $DESCRIPTION: "preserve hue" + float red_inset; // $MIN: 0.0 $MAX: 0.99 $DEFAULT: 0.0 $DESCRIPTION: "red attenuation" + float red_rotation; // $MIN: -0.4 $MAX: 0.4 $DEFAULT: 0.0 $DESCRIPTION: "red rotation" + float green_inset; // $MIN: 0.0 $MAX: 0.99 $DEFAULT: 0.0 $DESCRIPTION: "green attenuation" + float green_rotation; // $MIN: -0.4 $MAX: 0.4 $DEFAULT: 0.0 $DESCRIPTION: "green rotation" + float blue_inset; // $MIN: 0.0 $MAX: 0.99 $DEFAULT: 0.0 $DESCRIPTION: "blue attenuation" + float blue_rotation; // $MIN: -0.4 $MAX: 0.4 $DEFAULT: 0.0 $DESCRIPTION: "blue rotation" + float purity; // $MIN: 0.0 $MAX: 1.0 $DEFAULT: 0.0 $DESCRIPTION: "recover purity" + dt_iop_sigmoid_base_primaries_t base_primaries; // $DEFAULT: DT_SIGMOID_WORK_PROFILE $DESCRIPTION: "base primaries" } dt_iop_sigmoid_params_t; +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_sigmoid_params_v2_t + { + float middle_grey_contrast; + float contrast_skewness; + float display_white_target; + float display_black_target; + dt_iop_sigmoid_methods_type_t color_processing; + float hue_preservation; + + /* v2 params */ + float red_inset; + float red_rotation; + float green_inset; + float green_rotation; + float blue_inset; + float blue_rotation; + float purity; + + /* v3 params */ + dt_iop_sigmoid_base_primaries_t base_primaries; + } dt_iop_sigmoid_params_v3_t; + + if(old_version == 1) + { + typedef struct dt_iop_sigmoid_params_v1_t + { + float middle_grey_contrast; + float contrast_skewness; + float display_white_target; + float display_black_target; + dt_iop_sigmoid_methods_type_t color_processing; + float hue_preservation; + } dt_iop_sigmoid_params_v1_t; + + // Copy the common part of the params struct + dt_iop_sigmoid_params_v3_t *n = (dt_iop_sigmoid_params_v3_t *)calloc(1, sizeof(dt_iop_sigmoid_params_v3_t)); + memcpy(n, old_params, sizeof(dt_iop_sigmoid_params_v1_t)); + + *new_params = n; + *new_params_size = sizeof(dt_iop_sigmoid_params_v3_t); + *new_version = 3; + + return 0; + } + else if(old_version == 2) + { + typedef struct dt_iop_sigmoid_params_v2_t + { + float middle_grey_contrast; + float contrast_skewness; + float display_white_target; + float display_black_target; + dt_iop_sigmoid_methods_type_t color_processing; + float hue_preservation; + + /* v2 params */ + float red_inset; + float red_rotation; + float green_inset; + float green_rotation; + float blue_inset; + float blue_rotation; + float purity; + } dt_iop_sigmoid_params_v2_t; + // Copy the common part of the params struct + dt_iop_sigmoid_params_v3_t *n = (dt_iop_sigmoid_params_v3_t *)calloc(1, sizeof(dt_iop_sigmoid_params_v3_t)); + memcpy(n, old_params, sizeof(dt_iop_sigmoid_params_v2_t)); + + *new_params = n; + *new_params_size = sizeof(dt_iop_sigmoid_params_v3_t); + *new_version = 3; + + return 0; + } + + return 1; +} + typedef struct dt_iop_sigmoid_data_t { float white_target; @@ -65,21 +170,22 @@ float paper_power; dt_iop_sigmoid_methods_type_t color_processing; float hue_preservation; + float inset[3]; + float rotation[3]; + float purity; + dt_iop_sigmoid_base_primaries_t base_primaries; } dt_iop_sigmoid_data_t; typedef struct dt_iop_sigmoid_gui_data_t { - GtkWidget *contrast_slider, *skewness_slider, *color_processing_list, *hue_preservation_slider, - *display_black_slider, *display_white_slider; - - dt_gui_collapsible_section_t cs; + GtkWidget *color_processing_list, *hue_preservation_slider; + dt_gui_collapsible_section_t display_luminance_section, primaries_section; } dt_iop_sigmoid_gui_data_t; typedef struct dt_iop_sigmoid_global_data_t { int kernel_sigmoid_loglogistic_per_channel; - int kernel_sigmoid_loglogistic_per_channel_interpolated; int kernel_sigmoid_loglogistic_rgb_ratio; } dt_iop_sigmoid_global_data_t; @@ -96,13 +202,12 @@ const char **description(struct dt_iop_module_t *self) { - return dt_iop_set_description(self, _("apply a view transform to make a image displayable\n" - "on a screen or print. uses a robust and smooth\n" - "tone curve with optional color preservation methods."), - _("corrective and creative"), - _("linear, RGB, scene-referred"), - _("non-linear, RGB"), - _("linear, RGB, display-referred")); + return dt_iop_set_description(self, + _("apply a view transform to make a image displayable\n" + "on a screen or print. uses a robust and smooth\n" + "tone curve with optional color preservation methods."), + _("corrective and creative"), _("linear, RGB, scene-referred"), + _("non-linear, RGB"), _("linear, RGB, display-referred")); } int flags() @@ -115,7 +220,9 @@ return IOP_GROUP_TONE | IOP_GROUP_TECHNICAL; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -130,21 +237,17 @@ if(auto_apply_sigmoid) { - dt_gui_presets_add_generic - (_("scene-referred default"), self->op, self->version(), - NULL, 0, - 1, DEVELOP_BLEND_CS_RGB_SCENE); + dt_gui_presets_add_generic(_("scene-referred default"), self->op, self->version(), NULL, 0, 1, + DEVELOP_BLEND_CS_RGB_SCENE); - dt_gui_presets_update_ldr(_("scene-referred default"), self->op, - self->version(), FOR_RAW | FOR_MATRIX); + dt_gui_presets_update_ldr(_("scene-referred default"), self->op, self->version(), FOR_RAW | FOR_MATRIX); - dt_gui_presets_update_autoapply(_("scene-referred default"), - self->op, self->version(), TRUE); + dt_gui_presets_update_autoapply(_("scene-referred default"), self->op, self->version(), TRUE); } // others - dt_iop_sigmoid_params_t p; + dt_iop_sigmoid_params_t p = { 0 }; p.display_white_target = 100.0f; p.display_black_target = 0.0152f; p.color_processing = DT_SIGMOID_METHOD_PER_CHANNEL; @@ -152,29 +255,57 @@ p.middle_grey_contrast = 1.22f; p.contrast_skewness = 0.65f; p.hue_preservation = 100.0f; - dt_gui_presets_add_generic(_("neutral gray"), self->op, self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_SCENE); + dt_gui_presets_add_generic(_("neutral gray"), self->op, self->version(), &p, sizeof(p), 1, + DEVELOP_BLEND_CS_RGB_SCENE); p.middle_grey_contrast = 1.6f; p.contrast_skewness = -0.2f; p.hue_preservation = 0.0f; - dt_gui_presets_add_generic(_("ACES 100-nit like"), self->op, self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_SCENE); + dt_gui_presets_add_generic(_("ACES 100-nit like"), self->op, self->version(), &p, sizeof(p), 1, + DEVELOP_BLEND_CS_RGB_SCENE); p.middle_grey_contrast = 1.0f; p.contrast_skewness = 0.0f; p.color_processing = DT_SIGMOID_METHOD_RGB_RATIO; - dt_gui_presets_add_generic(_("Reinhard"), self->op, self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_SCENE); + dt_gui_presets_add_generic(_("Reinhard"), self->op, self->version(), &p, sizeof(p), 1, + DEVELOP_BLEND_CS_RGB_SCENE); + + const float DEG_TO_RAD = DT_M_PI_F / 180.f; + + // smooth - a preset that utilizes the primaries feature + p.middle_grey_contrast = 1.5f; + // Allow a little bit more room for the highlights + p.contrast_skewness = -0.2f; + p.color_processing = DT_SIGMOID_METHOD_PER_CHANNEL; + // Allow shifts of the chromaticity. This will work well for sunsets etc. + p.hue_preservation = 0.0f; + p.red_inset = 0.1f; + p.green_inset = 0.1f; + p.blue_inset = 0.15f; + p.red_rotation = 2.f * DEG_TO_RAD; + p.green_rotation = -1.f * DEG_TO_RAD; + p.blue_rotation = -3.f * DEG_TO_RAD; + // Don't restore purity - try to avoid posterization. + p.purity = 0.f; + // Constant base primaries (not dependent on work profile) to maintain a consistent behavior + p.base_primaries = DT_SIGMOID_REC2020; + dt_gui_presets_add_generic(_("smooth"), self->op, self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_SCENE); } // Declared here as it is used in the commit params function #ifdef _OPENMP #pragma omp declare simd uniform(magnitude, paper_exp, film_fog, film_power, paper_power) #endif -static inline float generalized_loglogistic_sigmoid(const float value, const float magnitude, const float paper_exp, - const float film_fog, const float film_power, const float paper_power) +static inline float _generalized_loglogistic_sigmoid(const float value, + const float magnitude, + const float paper_exp, + const float film_fog, + const float film_power, + const float paper_power) { const float clamped_value = fmaxf(value, 0.0f); // The following equation can be derived as a model for film + paper but it has a pole at 0 - // magnitude * powf(1.0 + paper_exp * powf(film_fog + value, -film_power), -paper_power); + // magnitude * powf(1.0f + paper_exp * powf(film_fog + value, -film_power), -paper_power); // Rewritten on a stable around zero form: const float film_response = powf(film_fog + clamped_value, film_power); const float paper_response = magnitude * powf(film_response / (paper_exp + film_response), paper_power); @@ -183,7 +314,10 @@ return dt_isnan(paper_response) ? magnitude : paper_response; } -void commit_params(dt_iop_module_t *self, dt_iop_params_t *p1, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +void commit_params(dt_iop_module_t *self, + dt_iop_params_t *p1, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { dt_iop_sigmoid_params_t *params = (dt_iop_sigmoid_params_t *)p1; dt_iop_sigmoid_data_t *module_data = (dt_iop_sigmoid_data_t *)piece->data; @@ -191,18 +325,23 @@ * f(scene_zero) = display_black_target * f(scene_grey) = MIDDLE_GREY * f(scene_inf) = display_white_target - * Slope at scene_grey independet of skewness i.e. only changed by the contrast parameter. + * Slope at scene_grey independent of skewness i.e. only changed by the contrast parameter. */ // Calculate a reference slope for no skew and a normalized display const float ref_film_power = params->middle_grey_contrast; const float ref_paper_power = 1.0f; - const float ref_magnitude = 1.0; + const float ref_magnitude = 1.0f; const float ref_film_fog = 0.0f; - const float ref_paper_exposure = powf(ref_film_fog + MIDDLE_GREY, ref_film_power) * ((ref_magnitude / MIDDLE_GREY) - 1.0f); + const float ref_paper_exposure + = powf(ref_film_fog + MIDDLE_GREY, ref_film_power) * ((ref_magnitude / MIDDLE_GREY) - 1.0f); const float delta = 1e-6f; - const float ref_slope = (generalized_loglogistic_sigmoid(MIDDLE_GREY + delta, ref_magnitude, ref_paper_exposure, ref_film_fog, ref_film_power, ref_paper_power) - - generalized_loglogistic_sigmoid(MIDDLE_GREY - delta, ref_magnitude, ref_paper_exposure, ref_film_fog, ref_film_power, ref_paper_power)) / 2.0f / delta; + const float ref_slope + = (_generalized_loglogistic_sigmoid(MIDDLE_GREY + delta, ref_magnitude, ref_paper_exposure, ref_film_fog, + ref_film_power, ref_paper_power) + - _generalized_loglogistic_sigmoid(MIDDLE_GREY - delta, ref_magnitude, ref_paper_exposure, ref_film_fog, + ref_film_power, ref_paper_power)) + / 2.0f / delta; // Add skew module_data->paper_power = powf(5.0f, -params->contrast_skewness); @@ -210,10 +349,15 @@ // Slope at low film power const float temp_film_power = 1.0f; const float temp_white_target = 0.01f * params->display_white_target; - const float temp_white_grey_relation = powf(temp_white_target / MIDDLE_GREY, 1.0f / module_data->paper_power) - 1.0f; + const float temp_white_grey_relation + = powf(temp_white_target / MIDDLE_GREY, 1.0f / module_data->paper_power) - 1.0f; const float temp_paper_exposure = powf(MIDDLE_GREY, temp_film_power) * temp_white_grey_relation; - const float temp_slope = (generalized_loglogistic_sigmoid(MIDDLE_GREY + delta, temp_white_target, temp_paper_exposure, ref_film_fog, temp_film_power, module_data->paper_power) - - generalized_loglogistic_sigmoid(MIDDLE_GREY - delta, temp_white_target, temp_paper_exposure, ref_film_fog, temp_film_power, module_data->paper_power)) / 2.0f / delta; + const float temp_slope + = (_generalized_loglogistic_sigmoid(MIDDLE_GREY + delta, temp_white_target, temp_paper_exposure, + ref_film_fog, temp_film_power, module_data->paper_power) + - _generalized_loglogistic_sigmoid(MIDDLE_GREY - delta, temp_white_target, temp_paper_exposure, + ref_film_fog, temp_film_power, module_data->paper_power)) + / 2.0f / delta; // Figure out what film power fulfills the target slope // (linear when assuming display_black = 0.0) @@ -222,20 +366,134 @@ // Calculate the other parameters now that both film and paper power is known module_data->white_target = 0.01f * params->display_white_target; module_data->black_target = 0.01f * params->display_black_target; - const float white_grey_relation = powf(module_data->white_target / MIDDLE_GREY, 1.0f / module_data->paper_power) - 1.0f; - const float white_black_relation = powf(module_data->black_target / module_data->white_target, -1.0f / module_data->paper_power) - 1.0f; - - module_data->film_fog = MIDDLE_GREY * powf(white_grey_relation, 1.0f / module_data->film_power) / (powf(white_black_relation, 1.0f / module_data->film_power) - powf(white_grey_relation, 1.0f / module_data->film_power)); - module_data->paper_exposure = powf(module_data->film_fog + MIDDLE_GREY, module_data->film_power) * white_grey_relation; + const float white_grey_relation + = powf(module_data->white_target / MIDDLE_GREY, 1.0f / module_data->paper_power) - 1.0f; + const float white_black_relation + = powf(module_data->black_target / module_data->white_target, -1.0f / module_data->paper_power) - 1.0f; + + module_data->film_fog = MIDDLE_GREY * powf(white_grey_relation, 1.0f / module_data->film_power) + / (powf(white_black_relation, 1.0f / module_data->film_power) + - powf(white_grey_relation, 1.0f / module_data->film_power)); + module_data->paper_exposure + = powf(module_data->film_fog + MIDDLE_GREY, module_data->film_power) * white_grey_relation; module_data->color_processing = params->color_processing; module_data->hue_preservation = fminf(fmaxf(0.01f * params->hue_preservation, 0.0f), 1.0f); + + module_data->purity = params->purity; + module_data->inset[0] = params->red_inset; + module_data->inset[1] = params->green_inset; + module_data->inset[2] = params->blue_inset; + module_data->rotation[0] = params->red_rotation; + module_data->rotation[1] = params->green_rotation; + module_data->rotation[2] = params->blue_rotation; + module_data->base_primaries = params->base_primaries; +} + +static void _calculate_adjusted_primaries(const dt_iop_sigmoid_data_t *const module_data, + const dt_iop_order_iccprofile_info_t *const pipe_work_profile, + const dt_iop_order_iccprofile_info_t *const base_profile, + dt_colormatrix_t pipe_to_base, + dt_colormatrix_t base_to_rendering, + dt_colormatrix_t rendering_to_pipe) +{ + // Make adjusted primaries for generating the inset matrix + // + // References: + // AgX by Troy Sobotka - https://github.com/sobotka/AgX-S2O3 + // Related discussions on Blender Artists forums - + // https://blenderartists.org/t/feedback-development-filmic-baby-step-to-a-v2/1361663 + // + // The idea is to "inset" the work RGB data toward achromatic + // along spectral lines before per-channel curves. This makes + // handling of bright, saturated colors much better as the + // per-channel process desaturates them. + // The primaries are also rotated to compensate for Abney etc. + // and achieve a favourable shift towards yellow. + + // First, calculate matrix to get from pipe work profile to "base primaries". + dt_colormatrix_t base_to_pipe; + if(pipe_work_profile != base_profile) + { + dt_colormatrix_mul(pipe_to_base, pipe_work_profile->matrix_in_transposed, + base_profile->matrix_out_transposed); + mat3SSEinv(base_to_pipe, pipe_to_base); + } + else + { + // Special case: if pipe and base profile are the same, pipe_to_base is an identity matrix. + for(size_t i = 0; i < 4; i++) + { + for(size_t j = 0; j < 4; j++) + { + if(i == j && i < 3) + { + pipe_to_base[i][j] = 1.f; + base_to_pipe[i][j] = 1.f; + } + else + { + pipe_to_base[i][j] = 0.f; + base_to_pipe[i][j] = 0.f; + } + } + } + } + + // Rotated, scaled primaries are calculated based on the "base profile" + float custom_primaries[3][2]; + for(size_t i = 0; i < 3; i++) + dt_rotate_and_scale_primary(base_profile, 1.f - module_data->inset[i], module_data->rotation[i], i, + custom_primaries[i]); + + dt_colormatrix_t custom_to_XYZ; + dt_make_transposed_matrices_from_primaries_and_whitepoint(custom_primaries, base_profile->whitepoint, + custom_to_XYZ); + dt_colormatrix_mul(base_to_rendering, custom_to_XYZ, base_profile->matrix_out_transposed); + + for(size_t i = 0; i < 3; i++) + { + const float scaling = 1.f - module_data->purity * module_data->inset[i]; + dt_rotate_and_scale_primary(base_profile, scaling, module_data->rotation[i], i, custom_primaries[i]); + } + + dt_make_transposed_matrices_from_primaries_and_whitepoint(custom_primaries, base_profile->whitepoint, + custom_to_XYZ); + dt_colormatrix_t tmp; + dt_colormatrix_mul(tmp, custom_to_XYZ, base_profile->matrix_out_transposed); + dt_colormatrix_t rendering_to_base; + mat3SSEinv(rendering_to_base, tmp); + dt_colormatrix_mul(rendering_to_pipe, rendering_to_base, base_to_pipe); +} + +static dt_colorspaces_color_profile_type_t _get_base_profile_type(const dt_iop_sigmoid_base_primaries_t base_primaries) +{ + if(base_primaries == DT_SIGMOID_SRGB) + return DT_COLORSPACE_SRGB; + + if(base_primaries == DT_SIGMOID_DISPLAY_P3) + return DT_COLORSPACE_DISPLAY_P3; + + if(base_primaries == DT_SIGMOID_ADOBE_RGB) + return DT_COLORSPACE_ADOBERGB; + + return DT_COLORSPACE_LIN_REC2020; +} + +static const dt_iop_order_iccprofile_info_t * _get_base_profile(struct dt_develop_t *dev, + const dt_iop_order_iccprofile_info_t *pipe_work_profile, + const dt_iop_sigmoid_base_primaries_t base_primaries) +{ + if(base_primaries == DT_SIGMOID_WORK_PROFILE) + return pipe_work_profile; + + return dt_ioppr_add_profile_info_to_list(dev, _get_base_profile_type(base_primaries), "", DT_INTENT_RELATIVE_COLORIMETRIC); } #ifdef _OPENMP #pragma omp declare simd #endif -static inline void desaturate_negative_values(const dt_aligned_pixel_t pix_in, dt_aligned_pixel_t pix_out) +static inline void _desaturate_negative_values(const dt_aligned_pixel_t pix_in, dt_aligned_pixel_t pix_out) { const float pixel_average = fmaxf((pix_in[0] + pix_in[1] + pix_in[2]) / 3.0f, 0.0f); const float min_value = fminf(fminf(pix_in[0], pix_in[1]), pix_in[2]); @@ -253,30 +511,30 @@ size_t max; } dt_iop_sigmoid_value_order_t; -static void pixel_channel_order(const dt_aligned_pixel_t pix_in, dt_iop_sigmoid_value_order_t *pixel_value_order) +static void _pixel_channel_order(const dt_aligned_pixel_t pix_in, dt_iop_sigmoid_value_order_t *pixel_value_order) { - if (pix_in[0] >= pix_in[1]) + if(pix_in[0] >= pix_in[1]) { - if (pix_in[1] > pix_in[2]) - { // Case 1: r >= g > b + if(pix_in[1] > pix_in[2]) + { // Case 1: r >= g > b pixel_value_order->max = 0; pixel_value_order->mid = 1; pixel_value_order->min = 2; } - else if (pix_in[2] > pix_in[0]) - { // Case 2: b > r >= g + else if(pix_in[2] > pix_in[0]) + { // Case 2: b > r >= g pixel_value_order->max = 2; pixel_value_order->mid = 0; pixel_value_order->min = 1; } - else if (pix_in[2] > pix_in[1]) - { // Case 3: r >= b > g + else if(pix_in[2] > pix_in[1]) + { // Case 3: r >= b > g pixel_value_order->max = 0; pixel_value_order->mid = 2; pixel_value_order->min = 1; } else - { // Case 4: r == g == b + { // Case 4: r == g == b // No change of the middle value, just assign something. pixel_value_order->max = 0; pixel_value_order->mid = 1; @@ -285,20 +543,20 @@ } else { - if (pix_in[0] >= pix_in[2]) - { // Case 5: g > r >= b + if(pix_in[0] >= pix_in[2]) + { // Case 5: g > r >= b pixel_value_order->max = 1; pixel_value_order->mid = 0; pixel_value_order->min = 2; } - else if (pix_in[2] > pix_in[1]) - { // Case 6: b > g > r + else if(pix_in[2] > pix_in[1]) + { // Case 6: b > g > r pixel_value_order->max = 2; pixel_value_order->mid = 1; pixel_value_order->min = 0; } else - { // Case 7: g >= b > r + { // Case 7: g >= b > r pixel_value_order->max = 1; pixel_value_order->mid = 2; pixel_value_order->min = 0; @@ -306,49 +564,11 @@ } } - -void process_loglogistic_per_channel(dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid, - const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) -{ - const dt_iop_sigmoid_data_t *module_data = (dt_iop_sigmoid_data_t *)piece->data; - - const float *const in = (const float *)ivoid; - float *const out = (float *)ovoid; - const size_t npixels = (size_t)roi_in->width * roi_in->height; - - const float white_target = module_data->white_target; - const float paper_exp = module_data->paper_exposure; - const float film_fog = module_data->film_fog; - const float contrast_power = module_data->film_power; - const float skew_power = module_data->paper_power; - -#ifdef _OPENMP -#pragma omp parallel for default(none) \ - dt_omp_firstprivate(npixels, white_target, paper_exp, film_fog, contrast_power, skew_power) \ - dt_omp_sharedconst(in, out) \ - schedule(static) -#endif - for(size_t k = 0; k < 4 * npixels; k += 4) - { - const float *const restrict pix_in = in + k; - float *const restrict pix_out = out + k; - dt_aligned_pixel_t pix_in_strict_positive; - - // Force negative values to zero - desaturate_negative_values(pix_in, pix_in_strict_positive); - - for_each_channel(c, aligned(pix_in_strict_positive, pix_out)) - { - pix_out[c] = generalized_loglogistic_sigmoid(pix_in_strict_positive[c], white_target, paper_exp, film_fog, contrast_power, skew_power); - } - - // Copy over the alpha channel - pix_out[3] = pix_in[3]; - } -} - -void process_loglogistic_rgb_ratio(dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid, - const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) +void process_loglogistic_rgb_ratio(dt_dev_pixelpipe_iop_t *piece, + const void *const ivoid, + void *const ovoid, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) { const dt_iop_sigmoid_data_t *module_data = (dt_iop_sigmoid_data_t *)piece->data; const float *const in = (const float *)ivoid; @@ -363,10 +583,9 @@ const float skew_power = module_data->paper_power; #ifdef _OPENMP -#pragma omp parallel for default(none) \ - dt_omp_firstprivate(npixels, white_target, black_target, paper_exp, film_fog, contrast_power, skew_power) \ - dt_omp_sharedconst(in, out) \ - schedule(static) +#pragma omp parallel for default(none) \ + dt_omp_firstprivate(npixels, white_target, black_target, paper_exp, film_fog, contrast_power, skew_power) \ + dt_omp_sharedconst(in, out) schedule(static) #endif for(size_t k = 0; k < 4 * npixels; k += 4) { @@ -376,13 +595,14 @@ dt_aligned_pixel_t pix_in_strict_positive; // Force negative values to zero - desaturate_negative_values(pix_in, pix_in_strict_positive); + _desaturate_negative_values(pix_in, pix_in_strict_positive); // Preserve color ratios by applying the tone curve on a luma estimate and then scale the RGB tripplet uniformly const float luma = (pix_in_strict_positive[0] + pix_in_strict_positive[1] + pix_in_strict_positive[2]) / 3.0f; - const float mapped_luma = generalized_loglogistic_sigmoid(luma, white_target, paper_exp, film_fog, contrast_power, skew_power); + const float mapped_luma + = _generalized_loglogistic_sigmoid(luma, white_target, paper_exp, film_fog, contrast_power, skew_power); - if (luma > 1e-9) + if(luma > 1e-9) { const float scaling_factor = mapped_luma / luma; for_each_channel(c, aligned(pix_in_strict_positive, pix_out)) @@ -400,22 +620,30 @@ // RGB index order sorted by value; dt_iop_sigmoid_value_order_t pixel_value_order; - pixel_channel_order(pre_out, &pixel_value_order); + _pixel_channel_order(pre_out, &pixel_value_order); const float pixel_min = pre_out[pixel_value_order.min]; const float pixel_max = pre_out[pixel_value_order.max]; // Chroma relative display gamut and scene "mapping" gamut. const float epsilon = 1e-6; - const float display_border_vs_chroma_white = (white_target - mapped_luma) / (pixel_max - mapped_luma + epsilon); // "Distance" to max channel = white_target - const float display_border_vs_chroma_black = (black_target - mapped_luma) / (pixel_min - mapped_luma - epsilon); // "Distance" to min_channel = black_target + const float display_border_vs_chroma_white + = (white_target - mapped_luma) + / (pixel_max - mapped_luma + epsilon); // "Distance" to max channel = white_target + const float display_border_vs_chroma_black + = (black_target - mapped_luma) + / (pixel_min - mapped_luma - epsilon); // "Distance" to min_channel = black_target const float display_border_vs_chroma = fminf(display_border_vs_chroma_white, display_border_vs_chroma_black); - const float chroma_vs_mapping_border = (mapped_luma - pixel_min) / (mapped_luma + epsilon); // "Distance" to min channel = 0.0 + const float chroma_vs_mapping_border + = (mapped_luma - pixel_min) / (mapped_luma + epsilon); // "Distance" to min channel = 0.0 // Hyperbolic gamut compression - // Small chroma values, i.e., colors close to the acromatic axis are preserved while large chroma values are compressed. + // Small chroma values, i.e., colors close to the acromatic axis are preserved while large chroma values are + // compressed. const float pixel_chroma_adjustment = 1.0f / (chroma_vs_mapping_border * display_border_vs_chroma + epsilon); - const float hyperbolic_chroma = 2.0f * chroma_vs_mapping_border / (1.0f - chroma_vs_mapping_border * chroma_vs_mapping_border + epsilon) * pixel_chroma_adjustment; + const float hyperbolic_chroma = 2.0f * chroma_vs_mapping_border + / (1.0f - chroma_vs_mapping_border * chroma_vs_mapping_border + epsilon) + * pixel_chroma_adjustment; const float hyperbolic_z = sqrtf(hyperbolic_chroma * hyperbolic_chroma + 1.0f); const float chroma_factor = hyperbolic_chroma / (1.0f + hyperbolic_z) * display_border_vs_chroma; @@ -432,50 +660,56 @@ // Linear interpolation of hue that also preserve sum of channels // Assumes hue_preservation strictly in range [0, 1] -static inline void preserve_hue_and_energy(const dt_aligned_pixel_t pix_in, const dt_aligned_pixel_t per_channel, dt_aligned_pixel_t pix_out, - const dt_iop_sigmoid_value_order_t order, const float hue_preservation) +static inline void _preserve_hue_and_energy(const dt_aligned_pixel_t pix_in, + const dt_aligned_pixel_t per_channel, + dt_aligned_pixel_t pix_out, + const dt_iop_sigmoid_value_order_t order, + const float hue_preservation) { - if (per_channel[order.max] - per_channel[order.min] < 1e-9 || - per_channel[order.mid] - per_channel[order.min] < 1e-9 ) - { - pix_out[order.min] = per_channel[order.min]; - pix_out[order.mid] = per_channel[order.mid]; - pix_out[order.max] = per_channel[order.max]; - return; // Nothing to fix - } - // Naive Hue correction of the middle channel - const float full_hue_correction = per_channel[order.min] + ((per_channel[order.max] - per_channel[order.min]) * (pix_in[order.mid] - pix_in[order.min]) / (pix_in[order.max] - pix_in[order.min])); - const float naive_hue_mid = (1.0 - hue_preservation) * per_channel[order.mid] + hue_preservation * full_hue_correction; + const float chroma = pix_in[order.max] - pix_in[order.min]; + const float midscale = chroma != 0.f ? (pix_in[order.mid] - pix_in[order.min]) / chroma : 0.f; + const float full_hue_correction + = per_channel[order.min] + (per_channel[order.max] - per_channel[order.min]) * midscale; + const float naive_hue_mid + = (1.0f - hue_preservation) * per_channel[order.mid] + hue_preservation * full_hue_correction; - const float per_channel_energy = per_channel[order.min] + per_channel[order.mid] + per_channel[order.max]; + const float per_channel_energy = per_channel[0] + per_channel[1] + per_channel[2]; const float naive_hue_energy = per_channel[order.min] + naive_hue_mid + per_channel[order.max]; - const float blend_factor = 2.0 * pix_in[order.min] / (pix_in[order.min] + pix_in[order.mid]); - const float midscale = (pix_in[order.mid] - pix_in[order.min]) / (pix_in[order.max] - pix_in[order.min]); + const float pix_in_min_plus_mid = pix_in[order.min] + pix_in[order.mid]; + const float blend_factor = pix_in_min_plus_mid != 0.f ? 2.0f * pix_in[order.min] / pix_in_min_plus_mid : 0.f; + const float energy_target = blend_factor * per_channel_energy + (1.0f - blend_factor) * naive_hue_energy; // Preserve hue constrained to maintain the same energy as the per channel result - if (naive_hue_mid <= per_channel[order.mid]) + if(naive_hue_mid <= per_channel[order.mid]) { - const float energy_target = blend_factor * per_channel_energy + (1.0 - blend_factor) * naive_hue_energy; - const float corrected_mid = ((1.0 - hue_preservation) * per_channel[order.mid] + hue_preservation * (midscale * per_channel[order.max] + (1.0 - midscale) * (energy_target - per_channel[order.max]))) - / (1.0 + hue_preservation * (1.0 - midscale)); + const float corrected_mid = ((1.0f - hue_preservation) * per_channel[order.mid] + + hue_preservation + * (midscale * per_channel[order.max] + + (1.0f - midscale) * (energy_target - per_channel[order.max]))) + / (1.0f + hue_preservation * (1.0f - midscale)); pix_out[order.min] = energy_target - per_channel[order.max] - corrected_mid; pix_out[order.mid] = corrected_mid; pix_out[order.max] = per_channel[order.max]; } else { - const float energy_target = blend_factor * per_channel_energy + (1.0 - blend_factor) * naive_hue_energy; - const float corrected_mid = ((1.0 - hue_preservation) * per_channel[order.mid] + hue_preservation * (per_channel[order.min] * (1.0f - midscale) + midscale * (energy_target - per_channel[order.min]))) - / (1.0 + hue_preservation * midscale); + const float corrected_mid = ((1.0f - hue_preservation) * per_channel[order.mid] + + hue_preservation + * (per_channel[order.min] * (1.0f - midscale) + + midscale * (energy_target - per_channel[order.min]))) + / (1.0f + hue_preservation * midscale); pix_out[order.min] = per_channel[order.min]; pix_out[order.mid] = corrected_mid; pix_out[order.max] = energy_target - per_channel[order.min] - corrected_mid; } } -void process_loglogistic_per_channel_interpolated(dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid, - const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) +void process_loglogistic_per_channel(struct dt_develop_t *dev, + dt_dev_pixelpipe_iop_t *piece, + const void *const ivoid, void *const ovoid, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) { const dt_iop_sigmoid_data_t *module_data = (dt_iop_sigmoid_data_t *)piece->data; @@ -490,58 +724,67 @@ const float skew_power = module_data->paper_power; const float hue_preservation = module_data->hue_preservation; + const dt_iop_order_iccprofile_info_t *pipe_work_profile = dt_ioppr_get_pipe_work_profile_info(piece->pipe); + const dt_iop_order_iccprofile_info_t *base_profile = _get_base_profile(dev, pipe_work_profile, module_data->base_primaries); + dt_colormatrix_t pipe_to_base, base_to_rendering, rendering_to_pipe; + _calculate_adjusted_primaries(module_data, pipe_work_profile, base_profile, pipe_to_base, base_to_rendering, rendering_to_pipe); + #ifdef _OPENMP -#pragma omp parallel for default(none) \ - dt_omp_firstprivate(npixels, white_target, paper_exp, film_fog, contrast_power, skew_power, hue_preservation) \ - dt_omp_sharedconst(in, out) \ - schedule(static) +#pragma omp parallel for default(none) \ + dt_omp_firstprivate(npixels, white_target, paper_exp, film_fog, contrast_power, skew_power, hue_preservation, \ + pipe_to_base, base_to_rendering, rendering_to_pipe) dt_omp_sharedconst(in, out) schedule(static) #endif for(size_t k = 0; k < 4 * npixels; k += 4) { const float *const restrict pix_in = in + k; float *const restrict pix_out = out + k; - dt_aligned_pixel_t pix_in_strict_positive; + dt_aligned_pixel_t pix_in_base, pix_in_strict_positive; dt_aligned_pixel_t per_channel; + // Convert to "base primaries" + dt_apply_transposed_color_matrix(pix_in, pipe_to_base, pix_in_base); + // Force negative values to zero - desaturate_negative_values(pix_in, pix_in_strict_positive); + _desaturate_negative_values(pix_in_base, pix_in_strict_positive); + + dt_aligned_pixel_t rendering_RGB; + dt_apply_transposed_color_matrix(pix_in_strict_positive, base_to_rendering, rendering_RGB); - for_each_channel(c, aligned(pix_in_strict_positive, per_channel)) + for_each_channel(c, aligned(rendering_RGB, per_channel)) { - per_channel[c] = generalized_loglogistic_sigmoid(pix_in_strict_positive[c], white_target, paper_exp, film_fog, contrast_power, skew_power); + per_channel[c] = _generalized_loglogistic_sigmoid(rendering_RGB[c], white_target, paper_exp, film_fog, + contrast_power, skew_power); } // Hue correction by scaling the middle value relative to the max and min values. dt_iop_sigmoid_value_order_t pixel_value_order; - pixel_channel_order(pix_in_strict_positive, &pixel_value_order); - preserve_hue_and_energy(pix_in_strict_positive, per_channel, pix_out, pixel_value_order, hue_preservation); + dt_aligned_pixel_t per_channel_hue_corrected; + _pixel_channel_order(rendering_RGB, &pixel_value_order); + _preserve_hue_and_energy(rendering_RGB, per_channel, per_channel_hue_corrected, pixel_value_order, + hue_preservation); + dt_apply_transposed_color_matrix(per_channel_hue_corrected, rendering_to_pipe, pix_out); // Copy over the alpha channel pix_out[3] = pix_in[3]; } } - - /** process, all real work is done here. */ -void process(struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid, - const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) +void process(struct dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + const void *const ivoid, + void *const ovoid, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) { // this is called for preview and full pipe separately, each with its own pixelpipe piece. dt_iop_sigmoid_data_t *module_data = (dt_iop_sigmoid_data_t *)piece->data; - if (module_data->color_processing == DT_SIGMOID_METHOD_PER_CHANNEL) + if(module_data->color_processing == DT_SIGMOID_METHOD_PER_CHANNEL) { - if (module_data->hue_preservation >= 0.001f) - { - process_loglogistic_per_channel_interpolated(piece, ivoid, ovoid, roi_in, roi_out); - } - else - { - process_loglogistic_per_channel(piece, ivoid, ovoid, roi_in, roi_out); - } + process_loglogistic_per_channel(self->dev, piece, ivoid, ovoid, roi_in, roi_out); } - else + else // DT_SIGMOID_METHOD_RGB_RATIO { process_loglogistic_rgb_ratio(piece, ivoid, ovoid, roi_in, roi_out); } @@ -569,65 +812,59 @@ const float contrast_power = d->film_power; const float skew_power = d->paper_power; - if (d->color_processing == DT_SIGMOID_METHOD_PER_CHANNEL) + const dt_iop_order_iccprofile_info_t *pipe_work_profile = dt_ioppr_get_pipe_work_profile_info(piece->pipe); + const dt_iop_order_iccprofile_info_t *base_profile = _get_base_profile(self->dev, pipe_work_profile, d->base_primaries); + dt_colormatrix_t pipe_to_base_transposed, base_to_rendering_transposed, + rendering_to_pipe_transposed, pipe_to_base, base_to_rendering, rendering_to_pipe; + _calculate_adjusted_primaries(d, pipe_work_profile, base_profile, pipe_to_base_transposed, base_to_rendering_transposed, rendering_to_pipe_transposed); + transpose_3xSSE(pipe_to_base_transposed, pipe_to_base); + transpose_3xSSE(base_to_rendering_transposed, base_to_rendering); + transpose_3xSSE(rendering_to_pipe_transposed, rendering_to_pipe); + cl_mem dev_pipe_to_base + = dt_opencl_copy_host_to_device_constant(devid, sizeof(pipe_to_base), pipe_to_base); + cl_mem dev_base_to_rendering + = dt_opencl_copy_host_to_device_constant(devid, sizeof(base_to_rendering), base_to_rendering); + cl_mem dev_rendering_to_pipe + = dt_opencl_copy_host_to_device_constant(devid, sizeof(rendering_to_pipe), rendering_to_pipe); + if(dev_pipe_to_base == NULL || dev_base_to_rendering == NULL || dev_rendering_to_pipe == NULL) { - const float hue_preservation = d->hue_preservation; - - if (hue_preservation >= 0.001f) - { - - err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_sigmoid_loglogistic_per_channel_interpolated, - width, height, - CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), - CLARG(white_target), CLARG(paper_exp), - CLARG(film_fog), CLARG(contrast_power), - CLARG(skew_power), CLARG(hue_preservation)); - if(err != CL_SUCCESS) goto error; - return TRUE; - } - else - { - err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_sigmoid_loglogistic_per_channel, - width, height, - CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), - CLARG(white_target), CLARG(paper_exp), - CLARG(film_fog), CLARG(contrast_power), - CLARG(skew_power)); - if(err != CL_SUCCESS) goto error; - return TRUE; + dt_print(DT_DEBUG_OPENCL, "[opencl_sigmoid] couldn't allocate memory!\n"); + goto cleanup; + } - } + if(d->color_processing == DT_SIGMOID_METHOD_PER_CHANNEL) + { + const float hue_preservation = d->hue_preservation; + err = dt_opencl_enqueue_kernel_2d_args( + devid, gd->kernel_sigmoid_loglogistic_per_channel, width, height, CLARG(dev_in), CLARG(dev_out), + CLARG(width), CLARG(height), CLARG(white_target), CLARG(paper_exp), CLARG(film_fog), CLARG(contrast_power), + CLARG(skew_power), CLARG(hue_preservation), CLARG(dev_pipe_to_base), CLARG(dev_base_to_rendering), CLARG(dev_rendering_to_pipe)); } else { const float black_target = d->black_target; - err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_sigmoid_loglogistic_rgb_ratio, - width, height, + err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_sigmoid_loglogistic_rgb_ratio, width, height, CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(white_target), CLARG(black_target), CLARG(paper_exp), - CLARG(film_fog), CLARG(contrast_power), - CLARG(skew_power)); - if(err != CL_SUCCESS) goto error; - return TRUE; + CLARG(film_fog), CLARG(contrast_power), CLARG(skew_power)); } - error: - dt_print(DT_DEBUG_OPENCL, "[opencl_sigmoid] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; +cleanup: + dt_opencl_release_mem_object(dev_pipe_to_base); + dt_opencl_release_mem_object(dev_base_to_rendering); + dt_opencl_release_mem_object(dev_rendering_to_pipe); + return err; } -#endif //HAVE_OPENCL +#endif // HAVE_OPENCL void init_global(dt_iop_module_so_t *module) { const int program = 36; // sigmoid.cl, from programs.conf - dt_iop_sigmoid_global_data_t *gd = - (dt_iop_sigmoid_global_data_t *)malloc(sizeof(dt_iop_sigmoid_global_data_t)); + dt_iop_sigmoid_global_data_t *gd = (dt_iop_sigmoid_global_data_t *)malloc(sizeof(dt_iop_sigmoid_global_data_t)); module->data = gd; gd->kernel_sigmoid_loglogistic_per_channel = dt_opencl_create_kernel(program, "sigmoid_loglogistic_per_channel"); - gd->kernel_sigmoid_loglogistic_per_channel_interpolated = - dt_opencl_create_kernel(program, "sigmoid_loglogistic_per_channel_interpolated"); gd->kernel_sigmoid_loglogistic_rgb_ratio = dt_opencl_create_kernel(program, "sigmoid_loglogistic_rgb_ratio"); } @@ -635,7 +872,6 @@ { dt_iop_sigmoid_global_data_t *gd = (dt_iop_sigmoid_global_data_t *)module->data; dt_opencl_free_kernel(gd->kernel_sigmoid_loglogistic_per_channel); - dt_opencl_free_kernel(gd->kernel_sigmoid_loglogistic_per_channel_interpolated); dt_opencl_free_kernel(gd->kernel_sigmoid_loglogistic_rgb_ratio); free(module->data); module->data = NULL; @@ -651,22 +887,20 @@ dt_iop_sigmoid_gui_data_t *g = (dt_iop_sigmoid_gui_data_t *)self->gui_data; dt_iop_sigmoid_params_t *p = (dt_iop_sigmoid_params_t *)self->params; - gtk_widget_set_visible(g->hue_preservation_slider, p->color_processing == DT_SIGMOID_METHOD_PER_CHANNEL); + if(!w || w == g->color_processing_list) + { + const gboolean is_per_channel = p->color_processing == DT_SIGMOID_METHOD_PER_CHANNEL; + gtk_widget_set_visible(g->hue_preservation_slider, is_per_channel); + gtk_widget_set_visible(g->primaries_section.expander, is_per_channel); + } } void gui_update(dt_iop_module_t *self) { dt_iop_sigmoid_gui_data_t *g = (dt_iop_sigmoid_gui_data_t *)self->gui_data; - dt_iop_sigmoid_params_t *p = (dt_iop_sigmoid_params_t *)self->params; - - dt_bauhaus_slider_set(g->contrast_slider, p->middle_grey_contrast); - dt_bauhaus_slider_set(g->skewness_slider, p->contrast_skewness); - dt_bauhaus_slider_set(g->hue_preservation_slider, p->hue_preservation); - dt_bauhaus_slider_set(g->display_black_slider, p->display_black_target); - dt_bauhaus_slider_set(g->display_white_slider, p->display_white_target); - dt_bauhaus_combobox_set_from_value(g->color_processing_list, p->color_processing); - dt_gui_update_collapsible_section(&g->cs); + dt_gui_update_collapsible_section(&g->display_luminance_section); + dt_gui_update_collapsible_section(&g->primaries_section); gui_changed(self, NULL, NULL); } @@ -677,16 +911,16 @@ self->widget = gtk_box_new(GTK_ORIENTATION_VERTICAL, DT_BAUHAUS_SPACE); // Look controls - g->contrast_slider = dt_bauhaus_slider_from_params(self, "middle_grey_contrast"); - dt_bauhaus_slider_set_soft_range(g->contrast_slider, 0.7f, 3.0f); - dt_bauhaus_slider_set_digits(g->contrast_slider, 3); - gtk_widget_set_tooltip_text(g->contrast_slider, _("compression of the applied curve\n" - "implicitly defines the supported input dynamic range")); - g->skewness_slider = dt_bauhaus_slider_from_params(self, "contrast_skewness"); - gtk_widget_set_tooltip_text(g->skewness_slider, _("shift the compression towards shadows or highlights.\n" - "negative values increase contrast in shadows.\n" - "positive values increase contrast in highlights.\n" - "the opposite end will see a reduction in contrast.")); + GtkWidget *slider = dt_bauhaus_slider_from_params(self, "middle_grey_contrast"); + dt_bauhaus_slider_set_soft_range(slider, 0.7f, 3.0f); + dt_bauhaus_slider_set_digits(slider, 3); + gtk_widget_set_tooltip_text(slider, _("compression of the applied curve\n" + "implicitly defines the supported input dynamic range")); + slider = dt_bauhaus_slider_from_params(self, "contrast_skewness"); + gtk_widget_set_tooltip_text(slider, _("shift the compression towards shadows or highlights.\n" + "negative values increase contrast in shadows.\n" + "positive values increase contrast in highlights.\n" + "the opposite end will see a reduction in contrast.")); // Color handling g->color_processing_list = dt_bauhaus_combobox_from_params(self, "color_processing"); @@ -695,29 +929,69 @@ gtk_widget_set_tooltip_text(g->hue_preservation_slider, _("optional correction of the hue twist introduced by\n" "the per-channel processing method.")); - // collapsible section - dt_gui_new_collapsible_section - (&g->cs, - "plugins/darkroom/sigmoid/expand_values", - _("display luminance"), - GTK_BOX(self->widget), - DT_ACTION(self)); - gtk_widget_set_tooltip_text(g->cs.expander, - _("set display black/white targets")); GtkWidget *main_box = self->widget; - self->widget = GTK_WIDGET(g->cs.container); - g->display_black_slider = dt_bauhaus_slider_from_params(self, "display_black_target"); - dt_bauhaus_slider_set_soft_range(g->display_black_slider, 0.0f, 1.0f); - dt_bauhaus_slider_set_digits(g->display_black_slider, 4); - dt_bauhaus_slider_set_format(g->display_black_slider, "%"); - gtk_widget_set_tooltip_text(g->display_black_slider, _("the black luminance of the target display or print.\n" - "can be used creatively for a faded look.")); - g->display_white_slider = dt_bauhaus_slider_from_params(self, "display_white_target"); - dt_bauhaus_slider_set_soft_range(g->display_white_slider, 50.0f, 100.0f); - dt_bauhaus_slider_set_format(g->display_white_slider, "%"); - gtk_widget_set_tooltip_text(g->display_white_slider, _("the white luminance of the target display or print.\n" - "can be used creatively for a faded look or blowing out whites earlier.")); + // primaries collapsible section + dt_gui_new_collapsible_section(&g->primaries_section, "plugins/darkroom/sigmoid/expand_primaries", + _("primaries"), GTK_BOX(main_box), DT_ACTION(self)); + gtk_widget_set_tooltip_text(g->primaries_section.expander, _("set custom primaries")); + + self->widget = GTK_WIDGET(g->primaries_section.container); + dt_iop_module_t *sect = DT_IOP_SECTION_FOR_PARAMS(self, N_("primaries")); + + GtkWidget *base_primaries = dt_bauhaus_combobox_from_params(self, "base_primaries"); + gtk_widget_set_tooltip_text(base_primaries, _("primaries to use as the base for below adjustments")); + +#define SETUP_COLOR_COMBO(color, r, g, b, inset_tooltip, rotation_tooltip) \ + slider = dt_bauhaus_slider_from_params(sect, #color "_inset"); \ + dt_bauhaus_slider_set_format(slider, "%"); \ + dt_bauhaus_slider_set_digits(slider, 1); \ + dt_bauhaus_slider_set_factor(slider, 100.f); \ + dt_bauhaus_slider_set_soft_range(slider, 0.f, 0.5f); \ + dt_bauhaus_slider_set_stop(slider, 0.f, r, g, b); \ + gtk_widget_set_tooltip_text(slider, inset_tooltip); \ + \ + slider = dt_bauhaus_slider_from_params(sect, #color "_rotation"); \ + dt_bauhaus_slider_set_format(slider, "°"); \ + dt_bauhaus_slider_set_digits(slider, 1); \ + dt_bauhaus_slider_set_factor(slider, 180.f / DT_M_PI_F); \ + dt_bauhaus_slider_set_stop(slider, 0.f, r, g, b); \ + gtk_widget_set_tooltip_text(slider, rotation_tooltip); + + const float desaturation = 0.2f; + SETUP_COLOR_COMBO(red, 1.f - desaturation, desaturation, desaturation, _("attenuate the purity of the red primary"), + _("rotate the red primary")); + SETUP_COLOR_COMBO(green, desaturation, 1.f - desaturation, desaturation, _("attenuate the purity of the green primary"), + _("rotate the green primary")); + SETUP_COLOR_COMBO(blue, desaturation, desaturation, 1.f - desaturation, _("attenuate the purity of the blue primary"), + _("rotate the blue primary")); +#undef SETUP_COLOR_COMBO + + slider = dt_bauhaus_slider_from_params(sect, "purity"); + dt_bauhaus_slider_set_format(slider, "%"); + dt_bauhaus_slider_set_digits(slider, 0); + dt_bauhaus_slider_set_factor(slider, 100.f); + gtk_widget_set_tooltip_text(slider, _("recover some of the original purity after the inset")); + + // display luminance section + dt_gui_new_collapsible_section(&g->display_luminance_section, "plugins/darkroom/sigmoid/expand_values", + _("display luminance"), GTK_BOX(main_box), DT_ACTION(self)); + gtk_widget_set_tooltip_text(g->display_luminance_section.expander, _("set display black/white targets")); + + self->widget = GTK_WIDGET(g->display_luminance_section.container); + + slider = dt_bauhaus_slider_from_params(self, "display_black_target"); + dt_bauhaus_slider_set_soft_range(slider, 0.0f, 1.0f); + dt_bauhaus_slider_set_digits(slider, 4); + dt_bauhaus_slider_set_format(slider, "%"); + gtk_widget_set_tooltip_text(slider, _("the black luminance of the target display or print.\n" + "can be used creatively for a faded look.")); + slider = dt_bauhaus_slider_from_params(self, "display_white_target"); + dt_bauhaus_slider_set_soft_range(slider, 50.0f, 100.0f); + dt_bauhaus_slider_set_format(slider, "%"); + gtk_widget_set_tooltip_text(slider, _("the white luminance of the target display or print.\n" + "can be used creatively for a faded look or blowing out whites earlier.")); + self->widget = main_box; } diff -Nru darktable-4.4.2/src/iop/soften.c darktable-4.6.1/src/iop/soften.c --- darktable-4.4.2/src/iop/soften.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/soften.c 2024-02-16 17:31:09.000000000 +0000 @@ -90,7 +90,9 @@ return IOP_GROUP_EFFECT | IOP_GROUP_EFFECTS; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -156,7 +158,6 @@ dt_iop_soften_data_t *d = (dt_iop_soften_data_t *)piece->data; dt_iop_soften_global_data_t *gd = (dt_iop_soften_global_data_t *)self->global_data; - cl_int err = DT_OPENCL_DEFAULT_ERROR; cl_mem dev_tmp = NULL; cl_mem dev_m = NULL; @@ -221,6 +222,7 @@ size_t sizes[3]; size_t local[3]; + cl_int err = DT_OPENCL_SYSMEM_ALLOCATION; dev_tmp = dt_opencl_alloc_device(devid, width, height, sizeof(float) * 4); if(dev_tmp == NULL) goto error; @@ -271,19 +273,12 @@ dt_opencl_set_kernel_args(devid, gd->kernel_soften_mix, 0, CLARG(dev_in), CLARG(dev_tmp), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(amount)); err = dt_opencl_enqueue_kernel_2d(devid, gd->kernel_soften_mix, sizes); - if(err != CL_SUCCESS) goto error; - - dt_opencl_release_mem_object(dev_m); - dt_opencl_release_mem_object(dev_tmp); - free(mat); - return TRUE; error: dt_opencl_release_mem_object(dev_m); dt_opencl_release_mem_object(dev_tmp); free(mat); - dt_print(DT_DEBUG_OPENCL, "[opencl_soften] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif diff -Nru darktable-4.4.2/src/iop/splittoning.c darktable-4.6.1/src/iop/splittoning.c --- darktable-4.4.2/src/iop/splittoning.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/splittoning.c 2024-02-16 17:31:09.000000000 +0000 @@ -91,7 +91,9 @@ return IOP_GROUP_EFFECT | IOP_GROUP_GRADING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -220,7 +222,6 @@ dt_iop_splittoning_data_t *d = (dt_iop_splittoning_data_t *)piece->data; dt_iop_splittoning_global_data_t *gd = (dt_iop_splittoning_global_data_t *)self->global_data; - cl_int err = DT_OPENCL_DEFAULT_ERROR; const int devid = piece->pipe->devid; const int width = roi_out->width; @@ -233,16 +234,10 @@ const float highlight_hue = d->highlight_hue; const float highlight_saturation = d->highlight_saturation; - err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_splittoning, width, height, + return dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_splittoning, width, height, CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(compress), CLARG(balance), CLARG(shadow_hue), CLARG(shadow_saturation), CLARG(highlight_hue), CLARG(highlight_saturation)); - if(err != CL_SUCCESS) goto error; - return TRUE; - -error: - dt_print(DT_DEBUG_OPENCL, "[opencl_splittoning] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; -} + } #endif @@ -365,7 +360,8 @@ dt_dev_add_history_item(darktable.develop, self, TRUE); } -void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece) +void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, + dt_dev_pixelpipe_t *pipe) { dt_iop_splittoning_gui_data_t *g = (dt_iop_splittoning_gui_data_t *)self->gui_data; dt_iop_splittoning_params_t *p = (dt_iop_splittoning_params_t *)self->params; diff -Nru darktable-4.4.2/src/iop/spots.c darktable-4.6.1/src/iop/spots.c --- darktable-4.4.2/src/iop/spots.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/spots.c 2024-02-16 17:31:09.000000000 +0000 @@ -82,9 +82,9 @@ return IOP_FLAGS_SUPPORTS_BLENDING | IOP_FLAGS_NO_MASKS | IOP_FLAGS_DEPRECATED; } -int default_colorspace(dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -92,10 +92,17 @@ int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, - const int new_version) + void **new_params, + int32_t *new_params_size, + int *new_version) { - if(old_version == 1 && new_version == 2) + typedef struct dt_iop_spots_params_v2_t + { + int clone_id[64]; + int clone_algo[64]; + } dt_iop_spots_params_v2_t; + + if(old_version == 1) { typedef struct dt_iop_spots_v1_t { @@ -109,11 +116,12 @@ dt_iop_spots_v1_t spot[32]; } dt_iop_spots_params_v1_t; - dt_iop_spots_params_v1_t *o = (dt_iop_spots_params_v1_t *)old_params; - dt_iop_spots_params_t *n = (dt_iop_spots_params_t *)new_params; - dt_iop_spots_params_t *d = (dt_iop_spots_params_t *)self->default_params; + const dt_iop_spots_params_v1_t *o = (dt_iop_spots_params_v1_t *)old_params; + dt_iop_spots_params_v2_t *n = + (dt_iop_spots_params_v2_t *)malloc(sizeof(dt_iop_spots_params_v2_t)); + + memset(n, 0, sizeof(dt_iop_spots_params_v2_t)); - *n = *d; // start with a fresh copy of default parameters for(int i = 0; i < o->num_spots; i++) { // we have to register a new circle mask @@ -122,7 +130,8 @@ // spots v1 was before raw orientation changes form->version = 1; - dt_masks_point_circle_t *circle = (dt_masks_point_circle_t *)(malloc(sizeof(dt_masks_point_circle_t))); + dt_masks_point_circle_t *circle = + (dt_masks_point_circle_t *)(malloc(sizeof(dt_masks_point_circle_t))); circle->center[0] = o->spot[i].x; circle->center[1] = o->spot[i].y; circle->radius = o->spot[i].radius; @@ -169,6 +178,9 @@ dt_masks_write_masks_history_item(self->dev->image_storage.id, last_spot_num, form); } + *new_params = n; + *new_params_size = sizeof(dt_iop_spots_params_v2_t); + *new_version = 2; return 0; } return 1; @@ -570,7 +582,7 @@ dt_develop_blend_params_t *bp = piece->blendop_data; // we don't modify most of the image: - dt_iop_copy_image_roi(out, in, ch, roi_in, roi_out, 0); + dt_iop_copy_image_roi(out, in, ch, roi_in, roi_out); // iterate through all forms dt_masks_form_t *grp = dt_masks_get_from_id_ext(piece->pipe->forms, bp->mask_id); @@ -755,7 +767,7 @@ void gui_focus(struct dt_iop_module_t *self, gboolean in) { - if(self->enabled && !darktable.develop->image_loading) + if(self->enabled && !darktable.develop->full.pipe->loading) { dt_iop_spots_gui_data_t *g = (dt_iop_spots_gui_data_t *)self->gui_data; @@ -797,15 +809,6 @@ } } -/** commit is the synch point between core and gui, so it copies params to pipe data. */ -void commit_params(struct dt_iop_module_t *self, - dt_iop_params_t *params, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) -{ - memcpy(piece->data, params, sizeof(dt_iop_spots_params_t)); -} - void init_pipe(struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) diff -Nru darktable-4.4.2/src/iop/temperature.c darktable-4.6.1/src/iop/temperature.c --- darktable-4.4.2/src/iop/temperature.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/temperature.c 2024-02-16 17:31:09.000000000 +0000 @@ -56,11 +56,10 @@ #define DT_IOP_LOWEST_TINT 0.135 #define DT_IOP_HIGHEST_TINT 2.326 -#define DT_COEFF_EPS 0.00001f - #define DT_IOP_NUM_OF_STD_TEMP_PRESETS 4 // If you reorder presets combo, change this consts +#define DT_IOP_TEMP_UNKNOWN -1 #define DT_IOP_TEMP_AS_SHOT 0 #define DT_IOP_TEMP_SPOT 1 #define DT_IOP_TEMP_USER 2 @@ -70,15 +69,15 @@ typedef struct dt_iop_temperature_params_t { - float red; // $MIN: 0.0 $MAX: 8.0 - float green; // $MIN: 0.0 $MAX: 8.0 - float blue; // $MIN: 0.0 $MAX: 8.0 - float g2; // $MIN: 0.0 $MAX: 8.0 $DESCRIPTION: "emerald" + float red; // $MIN: 0.0 $MAX: 8.0 + float green; // $MIN: 0.0 $MAX: 8.0 + float blue; // $MIN: 0.0 $MAX: 8.0 + float various; // $MIN: 0.0 $MAX: 8.0 } dt_iop_temperature_params_t; typedef struct dt_iop_temperature_gui_data_t { - GtkWidget *scale_k, *scale_tint, *scale_r, *scale_g, *scale_b, *scale_g2; + GtkWidget *scale_k, *scale_tint, *scale_r, *scale_g, *scale_b, *scale_y; GtkWidget *presets; GtkWidget *finetune; GtkWidget *buttonbar; @@ -90,13 +89,11 @@ GtkWidget *balance_label; int preset_cnt; int preset_num[54]; - double daylight_wb[4]; - double as_shot_wb[4]; double mod_coeff[4]; float mod_temp, mod_tint; double XYZ_to_CAM[4][3], CAM_to_XYZ[3][4]; - int colored_sliders; - int blackbody_is_confusing; + gboolean colored_sliders; + gboolean blackbody_is_confusing; gboolean button_bar_visible; dt_gui_collapsible_section_t cs; } dt_iop_temperature_gui_data_t; @@ -123,10 +120,19 @@ int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, - const int new_version) -{ - if(old_version == 2 && new_version == 3) + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_temperature_params_v3_t + { + float red; + float green; + float blue; + float various; + } dt_iop_temperature_params_v3_t; + + if(old_version == 2) { typedef struct dt_iop_temperature_params_v2_t { @@ -134,14 +140,18 @@ float coeffs[3]; } dt_iop_temperature_params_v2_t; - dt_iop_temperature_params_v2_t *o = (dt_iop_temperature_params_v2_t *)old_params; - dt_iop_temperature_params_t *n = (dt_iop_temperature_params_t *)new_params; + const dt_iop_temperature_params_v2_t *o = (dt_iop_temperature_params_v2_t *)old_params; + dt_iop_temperature_params_v3_t *n = + (dt_iop_temperature_params_v3_t *)malloc(sizeof(dt_iop_temperature_params_v3_t)); n->red = o->coeffs[0]; n->green = o->coeffs[1]; n->blue = o->coeffs[2]; - n->g2 = NAN; + n->various = NAN; + *new_params = n; + *new_params_size = sizeof(dt_iop_temperature_params_v3_t); + *new_version = 3; return 0; } return 1; @@ -150,19 +160,17 @@ static inline void _temp_params_from_array(dt_iop_temperature_params_t *p, const double a[4]) { - p->red = a[0]; - p->green = a[1]; - p->blue = a[2]; - p->g2 = a[3]; + float *coeffs = (float *)p; + for_four_channels(c) + coeffs[c] = (float)a[c]; } static inline void _temp_array_from_params(double a[4], const dt_iop_temperature_params_t *p) { - a[0] = p->red; - a[1] = p->green; - a[2] = p->blue; - a[3] = p->g2; + float *coeffs = (float *)p; + for_four_channels(c) + a[c] = coeffs[c]; } static gboolean _ignore_missing_wb(dt_image_t *img) @@ -225,9 +233,9 @@ return IOP_FLAGS_ALLOW_TILING | IOP_FLAGS_ONE_INSTANCE | IOP_FLAGS_UNSAFE_COPY; } -int default_colorspace(dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { // This module may work in RAW or RGB (e.g. for TIFF files) // depending on the input The module does not change the color space @@ -597,12 +605,13 @@ } piece->pipe->dsc.temperature.enabled = TRUE; - for(int k = 0; k < 4; k++) + self->dev->chroma.temperature = self; + for_four_channels(k) { piece->pipe->dsc.temperature.coeffs[k] = d->coeffs[k]; piece->pipe->dsc.processed_maximum[k] = d->coeffs[k] * piece->pipe->dsc.processed_maximum[k]; - self->dev->proxy.wb_coeffs[k] = d->coeffs[k]; + self->dev->chroma.wb_coeffs[k] = d->coeffs[k]; } } @@ -658,25 +667,20 @@ CLARG(roi_out->x), CLARG(roi_out->y), CLARG(dev_xtrans)); if(err != CL_SUCCESS) goto error; - dt_opencl_release_mem_object(dev_coeffs); - dt_opencl_release_mem_object(dev_xtrans); - piece->pipe->dsc.temperature.enabled = TRUE; - for(int k = 0; k < 4; k++) + self->dev->chroma.temperature = self; + for_four_channels(k) { piece->pipe->dsc.temperature.coeffs[k] = d->coeffs[k]; piece->pipe->dsc.processed_maximum[k] = d->coeffs[k] * piece->pipe->dsc.processed_maximum[k]; - self->dev->proxy.wb_coeffs[k] = d->coeffs[k]; + self->dev->chroma.wb_coeffs[k] = d->coeffs[k]; } - return TRUE; error: dt_opencl_release_mem_object(dev_coeffs); dt_opencl_release_mem_object(dev_xtrans); - dt_print(DT_DEBUG_OPENCL, - "[opencl_white_balance] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif @@ -687,33 +691,30 @@ { dt_iop_temperature_params_t *p = (dt_iop_temperature_params_t *)p1; dt_iop_temperature_data_t *d = (dt_iop_temperature_data_t *)piece->data; - dt_iop_temperature_gui_data_t *g = (dt_iop_temperature_gui_data_t *)self->gui_data; + float *tcoeffs = (float *)p; if(self->hide_enable_button) - { piece->enabled = FALSE; + + dt_dev_chroma_t *chr = &self->dev->chroma; + + if(self->hide_enable_button) + { + for_four_channels(k) + chr->wb_coeffs[k] = 1.0; return; } - d->coeffs[0] = p->red; - d->coeffs[1] = p->green; - d->coeffs[2] = p->blue; - d->coeffs[3] = p->g2; + for_four_channels(k) + { + d->coeffs[k] = tcoeffs[k]; + chr->wb_coeffs[k] = piece->enabled ? d->coeffs[k] : 1.0; + } // 4Bayer images not implemented in OpenCL yet if(self->dev->image_storage.flags & DT_IMAGE_4BAYER) piece->process_cl_ready = FALSE; - if(g) - { - // advertise on the pipe if coeffs are D65 for validity check - gboolean is_D65 = TRUE; - for(int c = 0; c < 3; c++) - if(!feqf(d->coeffs[c], (float)g->daylight_wb[c], DT_COEFF_EPS)) - is_D65 = FALSE; - - self->dev->proxy.wb_is_D65 = is_D65; - } } void init_pipe(struct dt_iop_module_t *self, @@ -895,11 +896,11 @@ dt_bauhaus_slider_clear_stops(g->scale_r); dt_bauhaus_slider_clear_stops(g->scale_g); dt_bauhaus_slider_clear_stops(g->scale_b); - dt_bauhaus_slider_clear_stops(g->scale_g2); + dt_bauhaus_slider_clear_stops(g->scale_y); dt_bauhaus_slider_set_feedback(g->scale_r, !color_rgb); dt_bauhaus_slider_set_feedback(g->scale_g, !color_rgb); dt_bauhaus_slider_set_feedback(g->scale_b, !color_rgb); - dt_bauhaus_slider_set_feedback(g->scale_g2, !color_rgb); + dt_bauhaus_slider_set_feedback(g->scale_y, !color_rgb); if(!color_rgb) return; @@ -918,8 +919,8 @@ dt_bauhaus_slider_set_stop(g->scale_b, 0.0, 0.0, 0.0, 0.0); dt_bauhaus_slider_set_stop(g->scale_b, 1.0, 0.0, 0.0, 1.0); - dt_bauhaus_slider_set_stop(g->scale_g2, 0.0, 0.0, 0.0, 0.0); - dt_bauhaus_slider_set_stop(g->scale_g2, 1.0, 0.0, 1.0, 0.0); + dt_bauhaus_slider_set_stop(g->scale_y, 0.0, 0.0, 0.0, 0.0); + dt_bauhaus_slider_set_stop(g->scale_y, 1.0, 0.0, 1.0, 0.0); } if(!g->blackbody_is_confusing) { @@ -942,12 +943,13 @@ } else { + const dt_dev_chroma_t *chr = &self->dev->chroma; //real (ish) //we consider daylight wb to be "reference white" const double white[3] = { - 1.0/g->daylight_wb[0], - 1.0/g->daylight_wb[1], - 1.0/g->daylight_wb[2], + 1.0 / chr->D65coeffs[0], + 1.0 / chr->D65coeffs[1], + 1.0 / chr->D65coeffs[2], }; const float rchanmul = dt_bauhaus_slider_get(g->scale_r); @@ -960,8 +962,8 @@ dt_bauhaus_slider_set_stop (g->scale_r, 0.0, white[0]*0.0, white[1]*gchanmul, white[2]*bchanmul); dt_bauhaus_slider_set_stop - (g->scale_r, g->daylight_wb[0]/rchanmulmax, - white[0]*g->daylight_wb[0], white[1]*gchanmul, white[2]*bchanmul); + (g->scale_r, chr->D65coeffs[0]/rchanmulmax, + white[0]*chr->D65coeffs[0], white[1]*gchanmul, white[2]*bchanmul); dt_bauhaus_slider_set_stop (g->scale_r, 1.0, white[0]*1.0, white[1]*(gchanmul/gchanmulmax), white[2]*(bchanmul/bchanmulmax)); @@ -969,8 +971,8 @@ dt_bauhaus_slider_set_stop (g->scale_g, 0.0, white[0]*rchanmul, white[1]*0.0, white[2]*bchanmul); dt_bauhaus_slider_set_stop - (g->scale_g, g->daylight_wb[1]/bchanmulmax, - white[0]*rchanmul, white[1]*g->daylight_wb[1], white[2]*bchanmul); + (g->scale_g, chr->D65coeffs[1]/bchanmulmax, + white[0]*rchanmul, white[1]*chr->D65coeffs[1], white[2]*bchanmul); dt_bauhaus_slider_set_stop (g->scale_g, 1.0, white[0]*(rchanmul/rchanmulmax), white[1]*1.0, white[2]*(bchanmul/bchanmulmax)); @@ -978,8 +980,8 @@ dt_bauhaus_slider_set_stop (g->scale_b, 0.0, white[0]*rchanmul, white[1]*gchanmul, white[2]*0.0); dt_bauhaus_slider_set_stop - (g->scale_b, g->daylight_wb[2]/bchanmulmax, - white[0]*rchanmul, white[1]*gchanmul, white[2]*g->daylight_wb[2]); + (g->scale_b, chr->D65coeffs[2]/bchanmulmax, + white[0]*rchanmul, white[1]*gchanmul, white[2]*chr->D65coeffs[2]); dt_bauhaus_slider_set_stop (g->scale_b, 1.0, white[0]*(rchanmul/rchanmulmax), white[1]*(gchanmul/gchanmulmax), white[2]*1.0); @@ -1007,24 +1009,25 @@ const double temp_step = (double)(DT_IOP_HIGHEST_TEMPERATURE - DT_IOP_LOWEST_TEMPERATURE) / (DT_BAUHAUS_SLIDER_MAX_STOPS - 1.0); const double tint_step = (double)(DT_IOP_HIGHEST_TINT - DT_IOP_LOWEST_TINT) / (DT_BAUHAUS_SLIDER_MAX_STOPS - 1.0); - const int blackbody_is_confusing = g->blackbody_is_confusing; + const gboolean blackbody_is_confusing = g->blackbody_is_confusing; const float cur_temp = dt_bauhaus_slider_get(g->scale_k); const float cur_tint = dt_bauhaus_slider_get(g->scale_tint); + const dt_dev_chroma_t *chr = &self->dev->chroma; //we consider daylight wb to be "reference white" const double dayligh_white[3] = { - 1.0/g->daylight_wb[0], - 1.0/g->daylight_wb[1], - 1.0/g->daylight_wb[2], + 1.0 / chr->D65coeffs[0], + 1.0 / chr->D65coeffs[1], + 1.0 / chr->D65coeffs[2], }; double cur_coeffs[4] = {0.0}; temp2mul(self, cur_temp, 1.0, cur_coeffs); const double cur_white[3] = { - 1.0/cur_coeffs[0], - 1.0/cur_coeffs[1], - 1.0/cur_coeffs[2], + 1.0 / cur_coeffs[0], + 1.0 / cur_coeffs[1], + 1.0 / cur_coeffs[2], }; if(blackbody_is_confusing) @@ -1133,44 +1136,6 @@ } } -static void _display_wb_error(struct dt_iop_module_t *self) -{ - // this module instance is doing chromatic adaptation - dt_iop_temperature_gui_data_t *g = (dt_iop_temperature_gui_data_t *)self->gui_data; - if(g == NULL) return; - - ++darktable.gui->reset; - - if(self->dev->proxy.chroma_adaptation != NULL - && !self->dev->proxy.wb_is_D65 - && !dt_image_is_monochrome(&self->dev->image_storage)) - { - // our second biggest problem : another module is doing CAT elsewhere in the pipe - dt_iop_set_module_trouble_message - (self, - _("white balance applied twice"), - _("the color calibration module is enabled,\n" - "and performing chromatic adaptation.\n" - "set the white balance here to camera reference (D65)\n" - "or disable chromatic adaptation in color calibration."), - "double application of white balance"); - } - else - { - // no longer in trouble - dt_iop_set_module_trouble_message(self, NULL, NULL, NULL); - } - - --darktable.gui->reset; -} - - -void gui_focus(struct dt_iop_module_t *self, gboolean in) -{ - _display_wb_error(self); -} - - void gui_update(struct dt_iop_module_t *self) { dt_iop_temperature_gui_data_t *g = (dt_iop_temperature_gui_data_t *)self->gui_data; @@ -1197,27 +1162,24 @@ dt_bauhaus_slider_set(g->scale_r, p->red); dt_bauhaus_slider_set(g->scale_g, p->green); dt_bauhaus_slider_set(g->scale_b, p->blue); - dt_bauhaus_slider_set(g->scale_g2, p->g2); + dt_bauhaus_slider_set(g->scale_y, p->various); - dt_bauhaus_combobox_set(g->presets, -1); + dt_bauhaus_combobox_set(g->presets, DT_IOP_TEMP_UNKNOWN); dt_bauhaus_slider_set(g->finetune, 0); gboolean show_finetune = FALSE; gboolean found = FALSE; - + const dt_dev_chroma_t *chr = &self->dev->chroma; // is this a "as shot" white balance? - if(feqf(p->red, g->as_shot_wb[0], DT_COEFF_EPS) - && feqf(p->green, g->as_shot_wb[1], DT_COEFF_EPS) - && feqf(p->blue, g->as_shot_wb[2], DT_COEFF_EPS)) + if(dt_dev_equal_chroma((float *)p, chr->as_shot)) { dt_bauhaus_combobox_set(g->presets, DT_IOP_TEMP_AS_SHOT); found = TRUE; } + // is this a "D65 white balance"? - else if(feqf(p->red, (float)g->daylight_wb[0], DT_COEFF_EPS) - && feqf(p->green, (float)g->daylight_wb[1], DT_COEFF_EPS) - && feqf(p->blue, (float)g->daylight_wb[2], DT_COEFF_EPS)) + else if(dt_dev_equal_chroma((float *)p, chr->D65coeffs)) { dt_bauhaus_combobox_set(g->presets, DT_IOP_TEMP_D65); found = TRUE; @@ -1238,9 +1200,7 @@ i++) { const dt_wb_data *wbp = dt_wb_preset(i); - if(feqf(p->red, (float)wbp->channels[0], DT_COEFF_EPS) - && feqf(p->green, (float)wbp->channels[1], DT_COEFF_EPS) - && feqf(p->blue, (float)wbp->channels[2], DT_COEFF_EPS)) + if(dt_dev_equal_chroma((float *)p, wbp->channels)) { // got exact match! dt_bauhaus_combobox_set(g->presets, j); @@ -1302,9 +1262,7 @@ dt_wb_preset_interpolate(dt_wb_preset(i - 1), dt_wb_preset(i), &interpolated); - if(feqf(p->red, (float)interpolated.channels[0], DT_COEFF_EPS) - && feqf(p->green, (float)interpolated.channels[1], DT_COEFF_EPS) - && feqf(p->blue, (float)interpolated.channels[2], DT_COEFF_EPS)) + if(dt_dev_equal_chroma((float *)p, interpolated.channels)) { // got exact match! @@ -1363,8 +1321,6 @@ color_rgb_sliders(self); color_finetuning_slider(self); - _display_wb_error(self); - dt_gui_update_collapsible_section(&g->cs); gtk_widget_queue_draw(self->widget); @@ -1448,7 +1404,8 @@ } if(ok) { - for(int k = 0; k < 4; k++) coeffs[k] = img->wb_coeffs[k]; + for_four_channels(k) + coeffs[k] = img->wb_coeffs[k]; return; } @@ -1469,7 +1426,8 @@ if(!calculate_bogus_daylight_wb(module, bwb)) { // found camera matrix and used it to calculate bogus daylight wb - for(int c = 0; c < 4; c++) coeffs[c] = bwb[c]; + for_four_channels(c) + coeffs[c] = bwb[c]; return; } @@ -1499,7 +1457,10 @@ void reload_defaults(dt_iop_module_t *module) { dt_iop_temperature_params_t *d = module->default_params; - *d = (dt_iop_temperature_params_t){ 1.0, 1.0, 1.0, 1.0 }; + + float *dcoeffs = (float *)d; + for_four_channels(k) + dcoeffs[k] = 1.0f; // we might be called from presets update infrastructure => there is no image if(!module->dev || !dt_is_valid_imgid(module->dev->image_storage.id)) @@ -1530,9 +1491,65 @@ module->default_enabled = FALSE; module->hide_enable_button = true_monochrome; + // we want these data in all cases to keep them in dev->chroma + double daylights[4] = {1.0, 1.0, 1.0, 1.0 }; + double as_shot[4] = {1.0, 1.0, 1.0, 1.0 }; + + // to have at least something and definitely not crash + _temp_array_from_params(daylights, d); + + if(!calculate_bogus_daylight_wb(module, daylights)) + { + // found camera matrix and used it to calculate bogus daylight wb + } + else + { + // if we didn't find anything for daylight wb, look for a wb + // preset with appropriate name. we're normalizing that to be D65 + for(int i = 0; i < dt_wb_presets_count(); i++) + { + const dt_wb_data *wbp = dt_wb_preset(i); + + if(!strcmp(wbp->make, module->dev->image_storage.camera_maker) + && !strcmp(wbp->model, module->dev->image_storage.camera_model) + && (!strcmp(wbp->name, "Daylight") //??? PO + || !strcmp(wbp->name, "DirectSunlight")) + && wbp->tuning == 0) + { + for_four_channels(k) + daylights[k] = wbp->channels[k]; + break; + } + } + } + + // Store EXIF WB coeffs + if(is_raw) + { + find_coeffs(module, as_shot); + as_shot[0] /= as_shot[1]; + as_shot[2] /= as_shot[1]; + as_shot[3] /= as_shot[1]; + as_shot[1] = 1.0; + } + + dt_dev_chroma_t *chr = &module->dev->chroma; + for_four_channels(k) + { + chr->as_shot[k] = as_shot[k]; + chr->D65coeffs[k] = daylights[k]; + } + + dt_print(DT_DEBUG_PARAMS, "[dt_iop_reload_defaults] temperature: D65 %.3f %.3f %.3f, AS-SHOT %.3f %.3f %.3f\n", + daylights[0], daylights[1], daylights[2], as_shot[0], as_shot[1], as_shot[2]); + + // this is a single instance module always exposed to dev->chroma + chr->temperature = module; + // White balance module doesn't need to be enabled for true_monochrome raws (like // for leica monochrom cameras). prepare_matrices is a noop as well, as there // isn't a color matrix, so we can skip that as well. + if(!true_monochrome) { if(module->gui_data) prepare_matrices(module); @@ -1548,19 +1565,19 @@ double coeffs[4] = { 0 }; if(is_modern && !calculate_bogus_daylight_wb(module, coeffs)) { - d->red = coeffs[0]/coeffs[1]; - d->blue = coeffs[2]/coeffs[1]; - d->g2 = coeffs[3]/coeffs[1]; - d->green = 1.0f; + dcoeffs[0] = coeffs[0]/coeffs[1]; + dcoeffs[2] = coeffs[2]/coeffs[1]; + dcoeffs[3] = coeffs[3]/coeffs[1]; + dcoeffs[1] = 1.0f; } else { // do best to find starting coeffs find_coeffs(module, coeffs); - d->red = coeffs[0]/coeffs[1]; - d->blue = coeffs[2]/coeffs[1]; - d->g2 = coeffs[3]/coeffs[1]; - d->green = 1.0f; + dcoeffs[0] = coeffs[0]/coeffs[1]; + dcoeffs[2] = coeffs[2]/coeffs[1]; + dcoeffs[3] = coeffs[3]/coeffs[1]; + dcoeffs[1] = 1.0f; } } } @@ -1573,54 +1590,13 @@ gtk_stack_set_visible_child_name(GTK_STACK(module->widget), module->hide_enable_button ? "disabled" : "enabled"); - dt_bauhaus_slider_set_default(g->scale_r, d->red); - dt_bauhaus_slider_set_default(g->scale_g, d->green); - dt_bauhaus_slider_set_default(g->scale_b, d->blue); - dt_bauhaus_slider_set_default(g->scale_g2, d->g2); - - // to have at least something and definitely not crash - _temp_array_from_params(g->daylight_wb, d); - - if(!calculate_bogus_daylight_wb(module, g->daylight_wb)) - { - // found camera matrix and used it to calculate bogus daylight wb - } - else - { - // if we didn't find anything for daylight wb, look for a wb - // preset with appropriate name. we're normalizing that to be - // D65 - for(int i = 0; i < dt_wb_presets_count(); i++) - { - const dt_wb_data *wbp = dt_wb_preset(i); - - if(!strcmp(wbp->make, module->dev->image_storage.camera_maker) - && !strcmp(wbp->model, module->dev->image_storage.camera_model) - && (!strcmp(wbp->name, "Daylight") //??? PO - || !strcmp(wbp->name, "DirectSunlight")) - && wbp->tuning == 0) - { + dt_bauhaus_slider_set_default(g->scale_r, dcoeffs[0]); + dt_bauhaus_slider_set_default(g->scale_g, dcoeffs[1]); + dt_bauhaus_slider_set_default(g->scale_b, dcoeffs[2]); + dt_bauhaus_slider_set_default(g->scale_y, dcoeffs[3]); - for(int k = 0; k < 4; k++) - g->daylight_wb[k] = wbp->channels[k]; - break; - } - } - } - - // Store EXIF WB coeffs - if(is_raw) - find_coeffs(module, g->as_shot_wb); - else - g->as_shot_wb[0] = g->as_shot_wb[1] = g->as_shot_wb[2] = g->as_shot_wb[3] = 1.f; - - g->as_shot_wb[0] /= g->as_shot_wb[1]; - g->as_shot_wb[2] /= g->as_shot_wb[1]; - g->as_shot_wb[3] /= g->as_shot_wb[1]; - g->as_shot_wb[1] = 1.0; - - for(int k = 0; k < 4; k++) - g->mod_coeff[k] = g->daylight_wb[k]; + for_four_channels(k) + g->mod_coeff[k] = daylights[k]; float TempK, tint; mul2temp(module, d, &TempK, &tint); @@ -1704,8 +1680,6 @@ mul2temp(self, p, &g->mod_temp, &g->mod_tint); dt_bauhaus_combobox_set(g->presets, DT_IOP_TEMP_USER); - - _display_wb_error(self); } static gboolean btn_toggled(GtkWidget *togglebutton, @@ -1754,13 +1728,14 @@ pos == DT_IOP_TEMP_D65); gboolean show_finetune = FALSE; + dt_dev_chroma_t *chr = &self->dev->chroma; switch(pos) { - case -1: // just un-setting. + case DT_IOP_TEMP_UNKNOWN: // just un-setting. return; case DT_IOP_TEMP_AS_SHOT: // as shot wb - _temp_params_from_array(p, g->as_shot_wb); + _temp_params_from_array(p, chr->as_shot); break; case DT_IOP_TEMP_SPOT: // from image area wb, expose callback will set p->rgbg2. if(!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(g->colorpicker))) @@ -1776,7 +1751,7 @@ _temp_params_from_array(p, g->mod_coeff); break; case DT_IOP_TEMP_D65: // camera reference d65 - _temp_params_from_array(p, g->daylight_wb); + _temp_params_from_array(p, chr->D65coeffs); break; default: // camera WB presets { @@ -1857,7 +1832,7 @@ gtk_widget_set_visible(GTK_WIDGET(g->finetune), show_finetune); - if(self->off) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->off), 1); + if(self->off) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->off), TRUE); float TempK, tint; @@ -1872,12 +1847,13 @@ } ++darktable.gui->reset; + float *pcoeffs = (float *)p; dt_bauhaus_slider_set(g->scale_k, TempK); dt_bauhaus_slider_set(g->scale_tint, tint); - dt_bauhaus_slider_set(g->scale_r, p->red); - dt_bauhaus_slider_set(g->scale_g, p->green); - dt_bauhaus_slider_set(g->scale_b, p->blue); - dt_bauhaus_slider_set(g->scale_g2, p->g2); + dt_bauhaus_slider_set(g->scale_r, pcoeffs[0]); + dt_bauhaus_slider_set(g->scale_g, pcoeffs[1]); + dt_bauhaus_slider_set(g->scale_b, pcoeffs[2]); + dt_bauhaus_slider_set(g->scale_y, pcoeffs[3]); --darktable.gui->reset; color_temptint_sliders(self); @@ -1887,28 +1863,24 @@ dt_dev_add_history_item(darktable.develop, self, TRUE); } -void color_picker_apply(dt_iop_module_t *self, - GtkWidget *picker, - dt_dev_pixelpipe_iop_t *piece) +void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, + dt_dev_pixelpipe_t *pipe) { if(darktable.gui->reset) return; dt_iop_temperature_gui_data_t *g = (dt_iop_temperature_gui_data_t *)self->gui_data; dt_iop_temperature_params_t *p = (dt_iop_temperature_params_t *)self->params; + float *pcoeffs = (float *)p; // capture gui color picked event. if(self->picked_color_max[0] < self->picked_color_min[0]) return; const float *grayrgb = self->picked_color; // normalize green: - p->green = grayrgb[1] > 0.001f ? 1.0f / grayrgb[1] : 1.0f; - p->red = fmaxf(0.0f, - fminf(8.0f, (grayrgb[0] > 0.001f ? 1.0f / grayrgb[0] : 1.0f) / p->green)); - p->blue = fmaxf(0.0f, - fminf(8.0f, (grayrgb[2] > 0.001f ? 1.0f / grayrgb[2] : 1.0f) / p->green)); - p->g2 = fmaxf(0.0f, - fminf(8.0f, (grayrgb[3] > 0.001f ? 1.0f / grayrgb[3] : 1.0f) / p->green)); - p->green = 1.0; + const float gnormal = grayrgb[1] > 0.001f ? 1.0f / grayrgb[1] : 1.0f; + for_four_channels(c) + pcoeffs[c] = fmaxf(0.0f,fminf(8.0f,(grayrgb[c] > 0.001f ? 1.0f / grayrgb[c] : 1.0f) / gnormal)); + pcoeffs[1] = 1.0f; dt_bauhaus_combobox_set(g->presets, DT_IOP_TEMP_SPOT); } @@ -1927,11 +1899,11 @@ gtk_widget_set_tooltip_text(g->scale_g, _("magenta channel coefficient")); dt_bauhaus_widget_set_label(g->scale_b, NULL, N_("cyan")); gtk_widget_set_tooltip_text(g->scale_b, _("cyan channel coefficient")); - dt_bauhaus_widget_set_label(g->scale_g2, NULL, N_("yellow")); - gtk_widget_set_tooltip_text(g->scale_g2, _("yellow channel coefficient")); + dt_bauhaus_widget_set_label(g->scale_y, NULL, N_("yellow")); + gtk_widget_set_tooltip_text(g->scale_y, _("yellow channel coefficient")); gtk_box_reorder_child(GTK_BOX(g->cs.container), g->scale_b, 0); - gtk_box_reorder_child(GTK_BOX(g->cs.container), g->scale_g2, 1); + gtk_box_reorder_child(GTK_BOX(g->cs.container), g->scale_y, 1); gtk_box_reorder_child(GTK_BOX(g->cs.container), g->scale_g, 2); gtk_box_reorder_child(GTK_BOX(g->cs.container), g->scale_r, 3); } @@ -1943,16 +1915,16 @@ gtk_widget_set_tooltip_text(g->scale_g, _("green channel coefficient")); dt_bauhaus_widget_set_label(g->scale_b, NULL, N_("blue")); gtk_widget_set_tooltip_text(g->scale_b, _("blue channel coefficient")); - dt_bauhaus_widget_set_label(g->scale_g2, NULL, N_("emerald")); - gtk_widget_set_tooltip_text(g->scale_g2, _("emerald channel coefficient")); + dt_bauhaus_widget_set_label(g->scale_y, NULL, N_("emerald")); + gtk_widget_set_tooltip_text(g->scale_y, _("emerald channel coefficient")); gtk_box_reorder_child(GTK_BOX(g->cs.container), g->scale_r, 0); gtk_box_reorder_child(GTK_BOX(g->cs.container), g->scale_g, 1); gtk_box_reorder_child(GTK_BOX(g->cs.container), g->scale_b, 2); - gtk_box_reorder_child(GTK_BOX(g->cs.container), g->scale_g2, 3); + gtk_box_reorder_child(GTK_BOX(g->cs.container), g->scale_y, 3); } - gtk_widget_set_visible(GTK_WIDGET(g->scale_g2), (img->flags & DT_IMAGE_4BAYER)); + gtk_widget_set_visible(GTK_WIDGET(g->scale_y), (img->flags & DT_IMAGE_4BAYER)); } static void temp_label_click(GtkWidget *label, @@ -1996,8 +1968,8 @@ dt_iop_temperature_gui_data_t *g = (dt_iop_temperature_gui_data_t *)self->gui_data; const char *config = dt_conf_get_string_const("plugins/darkroom/temperature/colored_sliders"); - g->colored_sliders = g_strcmp0(config, "no color"); // true if config != "no color" - g->blackbody_is_confusing = g->colored_sliders && g_strcmp0(config, "illuminant color"); // true if config != "illuminant color" + g->colored_sliders = g_strcmp0(config, "no color") ? TRUE : FALSE; + g->blackbody_is_confusing = g->colored_sliders && (g_strcmp0(config, "illuminant color") ? TRUE : FALSE); g->button_bar_visible = dt_conf_get_bool("plugins/darkroom/temperature/button_bar"); gtk_widget_set_visible(g->buttonbar, g->button_bar_visible); @@ -2007,26 +1979,17 @@ color_finetuning_slider(self); } -static void _develop_ui_pipe_finished_callback(gpointer instance, gpointer user_data) -{ - dt_iop_module_t *self = (dt_iop_module_t *)user_data; - _display_wb_error(self); -} - void gui_init(struct dt_iop_module_t *self) { dt_iop_temperature_gui_data_t *g = IOP_GUI_ALLOC(temperature); - DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_DEVELOP_UI_PIPE_FINISHED, - G_CALLBACK(_develop_ui_pipe_finished_callback), self); - const char *config = dt_conf_get_string_const("plugins/darkroom/temperature/colored_sliders"); g->colored_sliders = g_strcmp0(config, "no color"); // true if config != "no color" // true if config != "illuminant color" g->blackbody_is_confusing = g->colored_sliders && g_strcmp0(config, "illuminant color"); - const int feedback = g->colored_sliders ? 0 : 1; + const gboolean feedback = g->colored_sliders ? FALSE : TRUE; g->button_bar_visible = dt_conf_get_bool("plugins/darkroom/temperature/button_bar"); GtkBox *box_enabled = GTK_BOX(gtk_box_new(GTK_ORIENTATION_VERTICAL, DT_BAUHAUS_SPACE)); @@ -2088,12 +2051,8 @@ gtk_box_pack_start(box_enabled, g->finetune, TRUE, TRUE, 0); g->mod_temp = -FLT_MAX; - for(int k = 0; k < 4; k++) - { - g->daylight_wb[k] = 1.0; - g->as_shot_wb[k] = 1.0; + for_four_channels(k) g->mod_coeff[k] = 1.0; - } GtkWidget *temp_label_box = gtk_event_box_new(); g->temp_label = dt_ui_section_label_new(C_("section", "scene illuminant temp")); @@ -2135,13 +2094,13 @@ g->scale_r = dt_bauhaus_slider_from_params(self, N_("red")); g->scale_g = dt_bauhaus_slider_from_params(self, N_("green")); g->scale_b = dt_bauhaus_slider_from_params(self, N_("blue")); - g->scale_g2 = dt_bauhaus_slider_from_params(self, "g2"); + g->scale_y = dt_bauhaus_slider_from_params(self, N_("various")); dt_bauhaus_slider_set_digits(g->scale_r, 3); dt_bauhaus_slider_set_digits(g->scale_g, 3); dt_bauhaus_slider_set_digits(g->scale_b, 3); - dt_bauhaus_slider_set_digits(g->scale_g2, 3); + dt_bauhaus_slider_set_digits(g->scale_y, 3); - gtk_widget_set_no_show_all(g->scale_g2, TRUE); + gtk_widget_set_no_show_all(g->scale_y, TRUE); g_signal_connect(G_OBJECT(g->scale_k), "value-changed", G_CALLBACK(temp_tint_callback), self); @@ -2174,8 +2133,6 @@ self->request_color_pick = DT_REQUEST_COLORPICK_OFF; DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(_preference_changed), self); - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, - G_CALLBACK(_develop_ui_pipe_finished_callback), self); IOP_GUI_FREE; } @@ -2197,7 +2154,6 @@ color_finetuning_slider(self); color_rgb_sliders(self); color_temptint_sliders(self); - _display_wb_error(self); } // clang-format off diff -Nru darktable-4.4.2/src/iop/tonecurve.c darktable-4.6.1/src/iop/tonecurve.c --- darktable-4.4.2/src/iop/tonecurve.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/tonecurve.c 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2009-2021 darktable developers. + Copyright (C) 2009-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -97,35 +97,6 @@ $DESCRIPTION: "RGB, linked channels" */ } dt_iop_tonecurve_autoscale_t; -// parameter structure of tonecurve 1st version, needed for use in legacy_params() -typedef struct dt_iop_tonecurve_params1_t -{ - float tonecurve_x[6], tonecurve_y[6]; - int tonecurve_preset; -} dt_iop_tonecurve_params1_t; - -// parameter structure of tonecurve 3rd version, needed for use in legacy_params() -typedef struct dt_iop_tonecurve_params3_t -{ - dt_iop_tonecurve_node_t tonecurve[3][DT_IOP_TONECURVE_MAXNODES]; // three curves (L, a, b) with max number - // of nodes - int tonecurve_nodes[3]; - int tonecurve_type[3]; - int tonecurve_autoscale_ab; - int tonecurve_preset; -} dt_iop_tonecurve_params3_t; - -typedef struct dt_iop_tonecurve_params4_t -{ - dt_iop_tonecurve_node_t tonecurve[3][DT_IOP_TONECURVE_MAXNODES]; // three curves (L, a, b) with max number - // of nodes - int tonecurve_nodes[3]; - int tonecurve_type[3]; - int tonecurve_autoscale_ab; - int tonecurve_preset; - int tonecurve_unbound_ab; -} dt_iop_tonecurve_params4_t; - typedef struct dt_iop_tonecurve_params_t { dt_iop_tonecurve_node_t tonecurve[3][DT_IOP_TONECURVE_MAXNODES]; // three curves (L, a, b) with max number @@ -200,7 +171,9 @@ return IOP_FLAGS_SUPPORTS_BLENDING | IOP_FLAGS_ALLOW_TILING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } @@ -214,24 +187,48 @@ _("non-linear, Lab, display-referred")); } -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, const int new_version) -{ - if(old_version == 1 && new_version == 5) - { - dt_iop_tonecurve_params1_t *o = (dt_iop_tonecurve_params1_t *)old_params; - dt_iop_tonecurve_params_t *n = (dt_iop_tonecurve_params_t *)new_params; +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_tonecurve_params_v5_t + { + dt_iop_tonecurve_node_t tonecurve[3][DT_IOP_TONECURVE_MAXNODES]; + + int tonecurve_nodes[3]; + int tonecurve_type[3]; + dt_iop_tonecurve_autoscale_t tonecurve_autoscale_ab; + int tonecurve_preset; + int tonecurve_unbound_ab; + dt_iop_rgb_norms_t preserve_colors; + } dt_iop_tonecurve_params_v5_t; + + if(old_version == 1) + { + typedef struct dt_iop_tonecurve_params_v1_t + { + float tonecurve_x[6], tonecurve_y[6]; + int tonecurve_preset; + } dt_iop_tonecurve_params_v1_t; + + const dt_iop_tonecurve_params_v1_t *o = (dt_iop_tonecurve_params_v1_t *)old_params; + dt_iop_tonecurve_params_v5_t *n = + (dt_iop_tonecurve_params_v5_t *)malloc(sizeof(dt_iop_tonecurve_params_v5_t)); // start with a fresh copy of default parameters // unfortunately default_params aren't inited at this stage. - *n = (dt_iop_tonecurve_params_t){ { { { 0.0, 0.0 }, { 1.0, 1.0 } }, - { { 0.0, 0.0 }, { 0.5, 0.5 }, { 1.0, 1.0 } }, - { { 0.0, 0.0 }, { 0.5, 0.5 }, { 1.0, 1.0 } } }, - { 2, 3, 3 }, - { MONOTONE_HERMITE, MONOTONE_HERMITE, MONOTONE_HERMITE }, - 1, - 0, - 1 }; + *n = (dt_iop_tonecurve_params_v5_t) + { { { { 0.0, 0.0 }, { 1.0, 1.0 } }, + { { 0.0, 0.0 }, { 0.5, 0.5 }, { 1.0, 1.0 } }, + { { 0.0, 0.0 }, { 0.5, 0.5 }, { 1.0, 1.0 } } }, + { 2, 3, 3 }, + { MONOTONE_HERMITE, MONOTONE_HERMITE, MONOTONE_HERMITE }, + 1, + 0, + 1 }; for(int k = 0; k < 6; k++) n->tonecurve[ch_L][k].x = o->tonecurve_x[k]; for(int k = 0; k < 6; k++) n->tonecurve[ch_L][k].y = o->tonecurve_y[k]; n->tonecurve_nodes[ch_L] = 6; @@ -240,17 +237,32 @@ n->tonecurve_preset = o->tonecurve_preset; n->tonecurve_unbound_ab = 0; n->preserve_colors = 0; + + *new_params = n; + *new_params_size = sizeof(dt_iop_tonecurve_params_v5_t); + *new_version = 5; return 0; } - else if(old_version == 2 && new_version == 5) + else if(old_version == 2) { - // version 2 never really materialized so there should be no legacy history stacks of that version around + // version 2 never really materialized so there should be no + // legacy history stacks of that version around return 1; } - else if(old_version == 3 && new_version == 5) + else if(old_version == 3) { - dt_iop_tonecurve_params3_t *o = (dt_iop_tonecurve_params3_t *)old_params; - dt_iop_tonecurve_params_t *n = (dt_iop_tonecurve_params_t *)new_params; + typedef struct dt_iop_tonecurve_params_v3_t + { + dt_iop_tonecurve_node_t tonecurve[3][DT_IOP_TONECURVE_MAXNODES]; + int tonecurve_nodes[3]; + int tonecurve_type[3]; + int tonecurve_autoscale_ab; + int tonecurve_preset; + } dt_iop_tonecurve_params_v3_t; + + const dt_iop_tonecurve_params_v3_t *o = (dt_iop_tonecurve_params_v3_t *)old_params; + dt_iop_tonecurve_params_v5_t *n = + (dt_iop_tonecurve_params_v5_t *)malloc(sizeof(dt_iop_tonecurve_params_v5_t)); memcpy(n->tonecurve, o->tonecurve, sizeof(n->tonecurve)); memcpy(n->tonecurve_nodes, o->tonecurve_nodes, sizeof(n->tonecurve_nodes)); @@ -259,15 +271,34 @@ n->tonecurve_preset = o->tonecurve_preset; n->tonecurve_unbound_ab = 0; n->preserve_colors = 0; + + *new_params = n; + *new_params_size = sizeof(dt_iop_tonecurve_params_v5_t); + *new_version = 5; return 0; } - else if(old_version == 4 && new_version == 5) + else if(old_version == 4) { - dt_iop_tonecurve_params4_t *o = (dt_iop_tonecurve_params4_t *)old_params; - dt_iop_tonecurve_params_t *n = (dt_iop_tonecurve_params_t *)new_params; + typedef struct dt_iop_tonecurve_params_v4_t + { + dt_iop_tonecurve_node_t tonecurve[3][DT_IOP_TONECURVE_MAXNODES]; + int tonecurve_nodes[3]; + int tonecurve_type[3]; + int tonecurve_autoscale_ab; + int tonecurve_preset; + int tonecurve_unbound_ab; + } dt_iop_tonecurve_params_v4_t; + + const dt_iop_tonecurve_params_v4_t *o = (dt_iop_tonecurve_params_v4_t *)old_params; + dt_iop_tonecurve_params_v5_t *n = + (dt_iop_tonecurve_params_v5_t *)malloc(sizeof(dt_iop_tonecurve_params_v5_t)); - memcpy(n->tonecurve, o->tonecurve, sizeof(dt_iop_tonecurve_params4_t)); + memcpy(n->tonecurve, o->tonecurve, sizeof(dt_iop_tonecurve_params_v4_t)); n->preserve_colors = 0; + + *new_params = n; + *new_params_size = sizeof(dt_iop_tonecurve_params_v5_t); + *new_version = 5; return 0; } return 1; @@ -326,15 +357,6 @@ CLARG(autoscale_ab), CLARG(unbound_ab), CLARG(dev_coeffs_L), CLARG(dev_coeffs_ab), CLARG(low_approximation), CLARG(preserve_colors), CLARG(dev_profile_info), CLARG(dev_profile_lut)); - if(err != CL_SUCCESS) goto error; - dt_opencl_release_mem_object(dev_L); - dt_opencl_release_mem_object(dev_a); - dt_opencl_release_mem_object(dev_b); - dt_opencl_release_mem_object(dev_coeffs_L); - dt_opencl_release_mem_object(dev_coeffs_ab); - dt_ioppr_free_iccprofile_params_cl(&profile_info_cl, &profile_lut_cl, &dev_profile_info, &dev_profile_lut); - return TRUE; - error: dt_opencl_release_mem_object(dev_L); dt_opencl_release_mem_object(dev_a); @@ -342,8 +364,7 @@ dt_opencl_release_mem_object(dev_coeffs_L); dt_opencl_release_mem_object(dev_coeffs_ab); dt_ioppr_free_iccprofile_params_cl(&profile_info_cl, &profile_lut_cl, &dev_profile_info, &dev_profile_lut); - dt_print(DT_DEBUG_OPENCL, "[opencl_tonecurve] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif /* @@ -764,7 +785,7 @@ { // create part of the pixelpipe dt_iop_tonecurve_data_t *d = (dt_iop_tonecurve_data_t *)malloc(sizeof(dt_iop_tonecurve_data_t)); - dt_iop_tonecurve_params_t *default_params = (dt_iop_tonecurve_params_t *)self->default_params; + const dt_iop_tonecurve_params_t *const default_params = (dt_iop_tonecurve_params_t *)self->default_params; piece->data = (void *)d; d->autoscale_ab = DT_S_SCALE_AUTOMATIC; d->unbound_ab = 1; @@ -959,7 +980,8 @@ } } -void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece) +void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, + dt_dev_pixelpipe_t *pipe) { dt_iop_tonecurve_global_data_t *gd = (dt_iop_tonecurve_global_data_t *)self->global_data; @@ -1104,7 +1126,7 @@ void gui_init(struct dt_iop_module_t *self) { dt_iop_tonecurve_gui_data_t *c = IOP_GUI_ALLOC(tonecurve); - dt_iop_tonecurve_params_t *p = (dt_iop_tonecurve_params_t *)self->default_params; + const dt_iop_tonecurve_params_t *const p = (dt_iop_tonecurve_params_t *)self->default_params; for(int ch = 0; ch < ch_max; ch++) { @@ -1666,7 +1688,7 @@ { dt_iop_module_t *self = (dt_iop_module_t *)user_data; dt_iop_tonecurve_params_t *p = (dt_iop_tonecurve_params_t *)self->params; - dt_iop_tonecurve_params_t *d = (dt_iop_tonecurve_params_t *)self->default_params; + const dt_iop_tonecurve_params_t *const d = (dt_iop_tonecurve_params_t *)self->default_params; dt_iop_tonecurve_gui_data_t *c = (dt_iop_tonecurve_gui_data_t *)self->gui_data; int ch = c->channel; @@ -1798,4 +1820,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/toneequal.c darktable-4.6.1/src/iop/toneequal.c --- darktable-4.4.2/src/iop/toneequal.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/toneequal.c 2024-02-16 17:31:09.000000000 +0000 @@ -287,24 +287,32 @@ int area_active_node; // Flags for UI events - int valid_nodes_x; // TRUE if x coordinates of graph nodes have been inited - int valid_nodes_y; // TRUE if y coordinates of graph nodes have been inited - int area_cursor_valid; // TRUE if mouse cursor is over the graph area - int area_dragging; // TRUE if left-button has been pushed but not released and cursor motion is recorded - int cursor_valid; // TRUE if mouse cursor is over the preview image - int has_focus; // TRUE if the widget has the focus from GTK + gboolean valid_nodes_x; // TRUE if x coordinates of graph nodes have been inited + gboolean valid_nodes_y; // TRUE if y coordinates of graph nodes have been inited + gboolean area_cursor_valid; // TRUE if mouse cursor is over the graph area + gboolean area_dragging; // TRUE if left-button has been pushed + // but not released and cursor motion + // is recorded + gboolean cursor_valid; // TRUE if mouse cursor is over the preview image + gboolean has_focus; // TRUE if the widget has the focus from GTK // Flags for buffer caches invalidation - int interpolation_valid; // TRUE if the interpolation_matrix is ready - int luminance_valid; // TRUE if the luminance cache is ready - int histogram_valid; // TRUE if the histogram cache and stats are ready - int lut_valid; // TRUE if the gui_lut is ready - int graph_valid; // TRUE if the UI graph view is ready - int user_param_valid; // TRUE if users params set in interactive view are in bounds - int factors_valid; // TRUE if radial-basis coeffs are ready + gboolean interpolation_valid; // TRUE if the interpolation_matrix is ready + gboolean luminance_valid; // TRUE if the luminance cache is ready + gboolean histogram_valid; // TRUE if the histogram cache and stats are ready + gboolean lut_valid; // TRUE if the gui_lut is ready + gboolean graph_valid; // TRUE if the UI graph view is ready + gboolean user_param_valid; // TRUE if users params set in + // interactive view are in bounds + gboolean factors_valid; // TRUE if radial-basis coeffs are ready + gboolean distort_signal_actif; } dt_iop_toneequalizer_gui_data_t; +/* the signal DT_SIGNAL_DEVELOP_DISTORT is used to refresh the internal + cached image buffer used for the on-canvas luminance picker. */ +static void _set_distort_signal(dt_iop_module_t *self); +static void _unset_distort_signal(dt_iop_module_t *self); const char *name() { @@ -337,9 +345,9 @@ return IOP_FLAGS_INCLUDE_IN_STYLES | IOP_FLAGS_SUPPORTS_BLENDING; } -int default_colorspace(dt_iop_module_t *self, - dt_dev_pixelpipe_t *pipe, - dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -347,10 +355,33 @@ int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, - const int new_version) -{ - if(old_version == 1 && new_version == 2) + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_toneequalizer_params_v2_t + { + float noise; + float ultra_deep_blacks; + float deep_blacks; + float blacks; + float shadows; + float midtones; + float highlights; + float whites; + float speculars; + float blending; + float smoothing; + float feathering; + float quantization; + float contrast_boost; + float exposure_boost; + dt_iop_toneequalizer_filter_t details; + dt_iop_luminance_mask_method_t method; + int iterations; + } dt_iop_toneequalizer_params_v2_t; + + if(old_version == 1) { typedef struct dt_iop_toneequalizer_params_v1_t { @@ -362,14 +393,10 @@ dt_iop_luminance_mask_method_t method; } dt_iop_toneequalizer_params_v1_t; - dt_iop_toneequalizer_params_v1_t *o = + const dt_iop_toneequalizer_params_v1_t *o = (dt_iop_toneequalizer_params_v1_t *)old_params; - dt_iop_toneequalizer_params_t *n = - (dt_iop_toneequalizer_params_t *)new_params; - dt_iop_toneequalizer_params_t *d = - (dt_iop_toneequalizer_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + dt_iop_toneequalizer_params_v2_t *n = + (dt_iop_toneequalizer_params_v2_t *)malloc(sizeof(dt_iop_toneequalizer_params_v2_t)); // Olds params n->noise = o->noise; @@ -392,8 +419,12 @@ n->method = o->method; // New params - n->quantization = 0.01f; + n->quantization = 0.0f; n->smoothing = sqrtf(2.0f); + + *new_params = n; + *new_params_size = sizeof(dt_iop_toneequalizer_params_v2_t); + *new_version = 2; return 0; } return 1; @@ -582,7 +613,7 @@ return dev->form_gui && dev->form_visible; } -static void hash_set_get(uint64_t *hash_in, +static void hash_set_get(const uint64_t *hash_in, uint64_t *hash_out, dt_pthread_mutex_t *lock) { @@ -602,50 +633,12 @@ dt_iop_gui_enter_critical_section(self); g->max_histogram = 1; - //g->luminance_valid = 0; - g->histogram_valid = 0; + g->luminance_valid = FALSE; + g->histogram_valid = FALSE; g->thumb_preview_hash = 0; g->ui_preview_hash = 0; dt_iop_gui_leave_critical_section(self); - dt_iop_refresh_preview(self); -} - - -static int sanity_check(dt_iop_module_t *self) -{ - // If tone equalizer is put after flip/orientation module, the pixel - // buffer will be in landscape orientation even for pictures - // displayed in portrait orientation so the interactive editing will - // fail. Disable the module and issue a warning then. - - const double position_self = self->iop_order; - const double position_min = - dt_ioppr_get_iop_order(self->dev->iop_order_list, "flip", 0); - - if(position_self < position_min && self->enabled) - { - dt_control_log(_("tone equalizer needs to be after distortion modules" - " in the pipeline – disabled")); - dt_print(DT_DEBUG_ALWAYS, - "tone equalizer needs to be after distortion modules" - " in the pipeline – disabled\n"); - self->enabled = FALSE; - dt_dev_add_history_item(darktable.develop, self, FALSE); - - if(self->dev->gui_attached) - { - // Repaint the on/off icon - if(self->off) - { - ++darktable.gui->reset; - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->off), self->enabled); - --darktable.gui->reset; - } - } - return 0; - } - - return 1; + dt_iop_refresh_all(self); } // gaussian-ish kernel - sum is == 1.0f so we don't care much about actual coeffs @@ -702,6 +695,52 @@ return luminance; } +static void _get_point(struct dt_iop_module_t *module, + const int c_x, + const int c_y, + int *x, + int *y) +{ + // TODO: For this to fully work non depending on the place of the module + // in the pipe we need a dt_dev_distort_backtransform_plus that + // can skip crop only. With the current version if toneequalizer + // is moved below rotation & perspective it will fail as we are + // then missing all the transform after tone-eq. + const double crop_order = + dt_ioppr_get_iop_order(module->dev->iop_order_list, "crop", 0); + + float pts[2] = { c_x, c_y }; + + // only a forward backtransform as the buffer already contains all the transforms + // done before toneequal and we are speaking of on-screen cursor coordinates. + // also we do transform only after crop as crop does change roi for the whole pipe + // and so it is already part of the preview buffer cached in this implementation. + dt_dev_distort_backtransform_plus(darktable.develop, darktable.develop->preview_pipe, + crop_order, + DT_DEV_TRANSFORM_DIR_FORW_EXCL, pts, 1); + *x = pts[0]; + *y = pts[1]; +} + +static float _luminance_from_module_buffer(dt_iop_module_t *self) +{ + dt_iop_toneequalizer_gui_data_t *g = (dt_iop_toneequalizer_gui_data_t *)self->gui_data; + + const size_t c_x = g->cursor_pos_x; + const size_t c_y = g->cursor_pos_y; + + // get buffer x,y given the cursor position + int b_x = 0; + int b_y = 0; + + _get_point(self, c_x, c_y, &b_x, &b_y); + + return get_luminance_from_buffer(g->thumb_preview_buf, + g->thumb_preview_buf_width, + g->thumb_preview_buf_height, + b_x, + b_y); +} /*** * Exposure compensation computation @@ -918,7 +957,6 @@ } } - /*** * Actual transfer functions **/ @@ -998,8 +1036,8 @@ // Get the hash of the upstream pipe to track changes const int position = self->iop_order; - uint64_t hash = dt_dev_pixelpipe_cache_hash(piece->pipe->image.id, - roi_out, piece->pipe, position); + const uint64_t hash = dt_dev_pixelpipe_cache_hash(piece->pipe->image.id, + roi_out, piece->pipe, position); // Sanity checks if(width < 1 || height < 1) return; @@ -1007,14 +1045,6 @@ return; // input should be at least as large as output if(piece->colors != 4) return; // we need RGB signal - if(!sanity_check(self)) - { - // if module just got disabled by sanity checks, due to pipe - // position, just pass input through - dt_iop_image_copy_by_size(out, in, width, height, ch); - return; - } - // Init the luminance masks buffers gboolean cached = FALSE; @@ -1041,7 +1071,7 @@ // Re-allocate a new buffer if the full preview size has changed if(g->full_preview_buf_width != width || g->full_preview_buf_height != height) { - if(g->full_preview_buf) dt_free_align(g->full_preview_buf); + dt_free_align(g->full_preview_buf); g->full_preview_buf = dt_alloc_align_float(num_elem); g->full_preview_buf_width = width; g->full_preview_buf_height = height; @@ -1050,10 +1080,9 @@ luminance = g->full_preview_buf; cached = TRUE; } - else if(piece->pipe->type & DT_DEV_PIXELPIPE_PREVIEW) { - // For DT_DEV_PIXELPIPE_PREVIEW, we need to cache is too to + // For DT_DEV_PIXELPIPE_PREVIEW, we need to cache it too to // compute the full image stats upon user request in GUI threads // locks are required since GUI reads and writes on that buffer. @@ -1061,7 +1090,7 @@ dt_iop_gui_enter_critical_section(self); if(g->thumb_preview_buf_width != width || g->thumb_preview_buf_height != height) { - if(g->thumb_preview_buf) dt_free_align(g->thumb_preview_buf); + dt_free_align(g->thumb_preview_buf); g->thumb_preview_buf = dt_alloc_align_float(num_elem); g->thumb_preview_buf_width = width; g->thumb_preview_buf_height = height; @@ -1629,7 +1658,8 @@ if(self->dev->gui_attached && g) { dt_iop_gui_enter_critical_section(self); - if(g->sigma != p->smoothing) g->interpolation_valid = FALSE; + if(g->sigma != p->smoothing) + g->interpolation_valid = FALSE; g->sigma = p->smoothing; g->user_param_valid = FALSE; // force updating channels factors dt_iop_gui_leave_critical_section(self); @@ -1825,7 +1855,7 @@ return; } - if(!g->luminance_valid || self->dev->pipe->processing || !g->histogram_valid) + if(!g->luminance_valid || self->dev->full.pipe->processing || !g->histogram_valid) { dt_control_log(_("wait for the preview to finish recomputing")); return; @@ -1837,7 +1867,7 @@ // so we aim at centering the exposure distribution on -4 EV dt_iop_gui_enter_critical_section(self); - g->histogram_valid = 0; + g->histogram_valid = FALSE; dt_iop_gui_leave_critical_section(self); update_histogram(self); @@ -1892,7 +1922,7 @@ return; } - if(!g->luminance_valid || self->dev->pipe->processing || !g->histogram_valid) + if(!g->luminance_valid || self->dev->full.pipe->processing || !g->histogram_valid) { dt_control_log(_("wait for the preview to finish recomputing")); return; @@ -1900,7 +1930,7 @@ // The goal is to spread 90 % of the exposure histogram in the [-7, -1] EV dt_iop_gui_enter_critical_section(self); - g->histogram_valid = 0; + g->histogram_valid = FALSE; dt_iop_gui_leave_critical_section(self); update_histogram(self); @@ -1987,14 +2017,15 @@ static void switch_cursors(struct dt_iop_module_t *self) { dt_iop_toneequalizer_gui_data_t *g = (dt_iop_toneequalizer_gui_data_t *)self->gui_data; - if(!g || !self->dev->gui_attached) return; + + if(!g || !self->dev->gui_attached) + return; GtkWidget *widget = dt_ui_main_window(darktable.gui->ui); // if we are editing masks or using colour-pickers, do not display controls - if(!sanity_check(self) - || in_mask_editing(self) - || dt_iop_color_picker_is_visible(self->dev)) + if(in_mask_editing(self) + || dt_iop_canvas_not_sensitive(self->dev)) { // display default cursor GdkCursor *const cursor = @@ -2016,9 +2047,10 @@ // do nothing and let the app decide return; } - else if( ((self->dev->pipe->processing) || - (self->dev->image_status == DT_DEV_PIXELPIPE_DIRTY) || - (self->dev->preview_status == DT_DEV_PIXELPIPE_DIRTY)) && g->cursor_valid) + else if((self->dev->full.pipe->processing + || self->dev->full.pipe->status == DT_DEV_PIXELPIPE_DIRTY + || self->dev->preview_pipe->status == DT_DEV_PIXELPIPE_DIRTY) + && g->cursor_valid) { // if pipe is busy or dirty but cursor is on preview, // display waiting cursor while pipe reprocesses @@ -2028,7 +2060,7 @@ dt_control_queue_redraw_center(); } - else if(g->cursor_valid && !self->dev->pipe->processing) + else if(g->cursor_valid && !self->dev->full.pipe->processing) { // if pipe is clean and idle and cursor is on preview, // hide GTK cursor because we display our custom one @@ -2044,7 +2076,8 @@ { // if module is active and opened but cursor is out of the preview, // display default cursor - GdkCursor *const cursor = gdk_cursor_new_from_name(gdk_display_get_default(), "default"); + GdkCursor *const cursor = + gdk_cursor_new_from_name(gdk_display_get_default(), "default"); gdk_window_set_cursor(gtk_widget_get_window(widget), cursor); g_object_unref(cursor); @@ -2061,37 +2094,24 @@ } } - -int mouse_moved(struct dt_iop_module_t *self, - const double x, - const double y, +int mouse_moved(dt_iop_module_t *self, + const float pzx, + const float pzy, const double pressure, - const int which) + const int which, + const float zoom_scale) { // Whenever the mouse moves over the picture preview, store its - // coordinates in the GUI struct for later use. This works only if - // dev->preview_pipe perfectly overlaps with the UI preview meaning - // all distortions, cropping, rotations etc. are applied before this - // module in the pipe. + // coordinates in the GUI struct for later use. - dt_develop_t *dev = self->dev; + const dt_develop_t *dev = self->dev; dt_iop_toneequalizer_gui_data_t *g = (dt_iop_toneequalizer_gui_data_t *)self->gui_data; - dt_iop_gui_enter_critical_section(self); - const int fail = !sanity_check(self); - dt_iop_gui_leave_critical_section(self); - if(fail) return 0; - - const int wd = dev->preview_pipe->backbuf_width; - const int ht = dev->preview_pipe->backbuf_height; - if(g == NULL) return 0; - if(wd < 1 || ht < 1) return 0; - float pzx, pzy; - dt_dev_get_pointer_zoom_pos(dev, x, y, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; + // compute the on-screen point where the mouse cursor is + float wd, ht; + if(!dt_dev_get_preview_size(dev, &wd, &ht)) return 0; const int x_pointer = pzx * wd; const int y_pointer = pzy * ht; @@ -2113,15 +2133,11 @@ dt_iop_gui_leave_critical_section(self); // store the actual exposure too, to spare I/O op - if(g->cursor_valid && !dev->pipe->processing && g->luminance_valid) - g->cursor_exposure = - log2f(get_luminance_from_buffer(g->thumb_preview_buf, - g->thumb_preview_buf_width, - g->thumb_preview_buf_height, - (size_t)x_pointer, - (size_t)y_pointer)); + if(g->cursor_valid && !dev->full.pipe->processing && g->luminance_valid) + g->cursor_exposure = log2f(_luminance_from_module_buffer(self)); switch_cursors(self); + return 1; } @@ -2190,7 +2206,7 @@ { // Accept the solution dt_simd_memcpy(factors, g->factors, PIXEL_CHAN); - g->lut_valid = 0; + g->lut_valid = FALSE; // Convert the linear temp parameters to log gains and commit float gains[CHANNELS] DT_ALIGNED_ARRAY; @@ -2202,7 +2218,7 @@ // Reset the GUI copy of user params get_channels_factors(factors, p); dt_simd_memcpy(factors, g->temp_user_params, CHANNELS); - g->user_param_valid = 1; + g->user_param_valid = TRUE; } return commit; @@ -2210,8 +2226,8 @@ int scrolled(struct dt_iop_module_t *self, - const double x, - const double y, + const float x, + const float y, const int up, const uint32_t state) { @@ -2219,7 +2235,6 @@ dt_iop_toneequalizer_gui_data_t *g = (dt_iop_toneequalizer_gui_data_t *)self->gui_data; dt_iop_toneequalizer_params_t *p = (dt_iop_toneequalizer_params_t *)self->params; - if(!sanity_check(self)) return 0; if(darktable.gui->reset) return 1; if(g == NULL) return 0; if(!g->has_focus) return 0; @@ -2237,7 +2252,7 @@ || !g->luminance_valid || !g->interpolation_valid || !g->user_param_valid - || dev->pipe->processing + || dev->full.pipe->processing || !g->has_focus); dt_iop_gui_leave_critical_section(self); @@ -2245,12 +2260,7 @@ // re-read the exposure in case it has changed dt_iop_gui_enter_critical_section(self); - g->cursor_exposure = - log2f(get_luminance_from_buffer(g->thumb_preview_buf, - g->thumb_preview_buf_width, - g->thumb_preview_buf_height, - (size_t)g->cursor_pos_x, - (size_t)g->cursor_pos_y)); + g->cursor_exposure = log2f(_luminance_from_module_buffer(self)); dt_iop_gui_leave_critical_section(self); @@ -2383,12 +2393,13 @@ } -void gui_post_expose(struct dt_iop_module_t *self, +void gui_post_expose(dt_iop_module_t *self, cairo_t *cr, - const int32_t width, - const int32_t height, - const int32_t pointerx, - const int32_t pointery) + const float width, + const float height, + const float pointerx, + const float pointery, + const float zoom_scale) { // Draw the custom exposure cursor over the image preview @@ -2402,8 +2413,7 @@ const int fail = (!g->cursor_valid || !g->interpolation_valid - || dev->pipe->processing - || !sanity_check(self) + || dev->full.pipe->processing || !g->has_focus); dt_iop_gui_leave_critical_section(self); @@ -2411,7 +2421,12 @@ if(fail) return; if(!g->graph_valid) - if(!_init_drawing(self, self->widget, g)) return; + if(!_init_drawing(self, self->widget, g)) + return; + + // re-read the exposure in case it has changed + if(g->luminance_valid && self->enabled) + g->cursor_exposure = log2f(_luminance_from_module_buffer(self)); dt_iop_gui_enter_critical_section(self); @@ -2426,14 +2441,6 @@ float luminance_out = 0.0f; if(g->luminance_valid && self->enabled) { - // re-read the exposure in case it has changed - g->cursor_exposure = - log2f(get_luminance_from_buffer(g->thumb_preview_buf, - g->thumb_preview_buf_width, - g->thumb_preview_buf_height, - (size_t)g->cursor_pos_x, - (size_t)g->cursor_pos_y)); - // Get the corresponding exposure exposure_in = g->cursor_exposure; luminance_in = exp2f(exposure_in); @@ -2448,19 +2455,6 @@ if(dt_isnan(exposure_in)) return; // something went wrong - // Rescale and shift Cairo drawing coordinates - const float wd = dev->preview_pipe->backbuf_width; - const float ht = dev->preview_pipe->backbuf_height; - const float zoom_y = dt_control_get_dev_zoom_y(); - const float zoom_x = dt_control_get_dev_zoom_x(); - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 1); - cairo_translate(cr, width / 2.0, height / 2.0); - cairo_scale(cr, zoom_scale, zoom_scale); - cairo_translate(cr, -.5f * wd - zoom_x * wd, -.5f * ht - zoom_y * ht); - - // set custom cursor dimensions const double outer_radius = 16.; const double inner_radius = outer_radius / 2.0; @@ -2564,6 +2558,49 @@ } } +static void _develop_distort_callback(gpointer instance, + gpointer user_data) +{ + dt_iop_module_t *self = (dt_iop_module_t *)user_data; + dt_iop_toneequalizer_gui_data_t *g = (dt_iop_toneequalizer_gui_data_t *)self->gui_data; + if(g == NULL) return; + if(!g->distort_signal_actif) return; + + /* disable the distort signal now to avoid recursive call on this signal as we are + about to reprocess the preview pipe which has some module doing distortion. */ + + _unset_distort_signal(self); + + /* we do reprocess the preview to get a new internal image buffer with the proper + image geometry. */ + if(self->enabled) + dt_dev_reprocess_preview(darktable.develop); +} + +static void _set_distort_signal(dt_iop_module_t *self) +{ + dt_iop_toneequalizer_gui_data_t *g = (dt_iop_toneequalizer_gui_data_t *)self->gui_data; + if(self->enabled && !g->distort_signal_actif) + { + DT_DEBUG_CONTROL_SIGNAL_CONNECT + (darktable.signals, + DT_SIGNAL_DEVELOP_DISTORT, + G_CALLBACK(_develop_distort_callback), self); + g->distort_signal_actif = TRUE; + } +} + +static void _unset_distort_signal(dt_iop_module_t *self) +{ + dt_iop_toneequalizer_gui_data_t *g = (dt_iop_toneequalizer_gui_data_t *)self->gui_data; + if(g->distort_signal_actif) + { + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT + (darktable.signals, + G_CALLBACK(_develop_distort_callback), self); + g->distort_signal_actif = FALSE; + } +} void gui_focus(struct dt_iop_module_t *self, gboolean in) { @@ -2578,8 +2615,12 @@ const gboolean was_mask = g->mask_display; g->mask_display = FALSE; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g->show_luminance_mask), FALSE); - if(was_mask) dt_dev_reprocess_center(self->dev); + if(was_mask) + dt_dev_reprocess_center(self->dev); dt_collection_hint_message(darktable.collection); + + // no need for the distort signal anymore + _unset_distort_signal(self); } else { @@ -2587,6 +2628,8 @@ _("scroll over image to change tone exposure\n" "shift+scroll for large steps; " "ctrl+scroll for small steps")); + // listen to distort change again + _set_distort_signal(self); } } @@ -2598,17 +2641,21 @@ // Cache the equalizer graph objects to avoid recomputing all the view at each redraw gtk_widget_get_allocation(widget, &g->allocation); - if(g->cst) cairo_surface_destroy(g->cst); + if(g->cst) + cairo_surface_destroy(g->cst); g->cst = dt_cairo_image_surface_create(CAIRO_FORMAT_ARGB32, g->allocation.width, g->allocation.height); - if(g->cr) cairo_destroy(g->cr); + if(g->cr) + cairo_destroy(g->cr); g->cr = cairo_create(g->cst); - if(g->layout) g_object_unref(g->layout); + if(g->layout) + g_object_unref(g->layout); g->layout = pango_cairo_create_layout(g->cr); - if(g->desc) pango_font_description_free(g->desc); + if(g->desc) + pango_font_description_free(g->desc); g->desc = pango_font_description_copy_static(darktable.bauhaus->pango_font_desc); pango_layout_set_font_description(g->layout, g->desc); @@ -2722,7 +2769,7 @@ // end of caching section, this will not be drawn again dt_iop_gui_enter_critical_section(self); - g->graph_valid = 1; + g->graph_valid = TRUE; dt_iop_gui_leave_critical_section(self); return TRUE; @@ -3072,7 +3119,7 @@ && event->type == GDK_2BUTTON_PRESS) { dt_iop_toneequalizer_params_t *p = (dt_iop_toneequalizer_params_t *)self->params; - dt_iop_toneequalizer_params_t *d = + const dt_iop_toneequalizer_params_t *const d = (dt_iop_toneequalizer_params_t *)self->default_params; // reset nodes params @@ -3159,7 +3206,7 @@ if(delta_x < radius_threshold) { g->area_active_node = i; - g->area_cursor_valid = 1; + g->area_cursor_valid = TRUE; } } } @@ -3278,6 +3325,13 @@ dt_iop_module_t *self = (dt_iop_module_t *)user_data; dt_iop_toneequalizer_gui_data_t *g = (dt_iop_toneequalizer_gui_data_t *)self->gui_data; if(g == NULL) return; + + // now that the preview pipe is termintated, set back the distort signal to catch + // any new changes from a module doing distortion. this signal has been disconnected + // at the time the DT_SIGNAL_DEVELOP_DISTORT has been handled (see ) and a full + // reprocess of the preview has been scheduled. + _set_distort_signal(self); + switch_cursors(self); gtk_widget_queue_draw(GTK_WIDGET(g->area)); gtk_widget_queue_draw(GTK_WIDGET(g->bar)); @@ -3293,7 +3347,6 @@ switch_cursors(self); } - void gui_reset(struct dt_iop_module_t *self) { dt_iop_toneequalizer_gui_data_t *g = (dt_iop_toneequalizer_gui_data_t *)self->gui_data; @@ -3545,7 +3598,6 @@ G_CALLBACK(_develop_ui_pipe_started_callback), self); } - void gui_cleanup(struct dt_iop_module_t *self) { dt_iop_toneequalizer_gui_data_t *g = (dt_iop_toneequalizer_gui_data_t *)self->gui_data; @@ -3563,13 +3615,15 @@ DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(_develop_preview_pipe_finished_callback), self); + _unset_distort_signal(self); + + dt_free_align(g->thumb_preview_buf); + dt_free_align(g->full_preview_buf); - if(g->thumb_preview_buf) dt_free_align(g->thumb_preview_buf); - if(g->full_preview_buf) dt_free_align(g->full_preview_buf); - if(g->desc) pango_font_description_free(g->desc); + if(g->desc) pango_font_description_free(g->desc); if(g->layout) g_object_unref(g->layout); - if(g->cr) cairo_destroy(g->cr); - if(g->cst) cairo_surface_destroy(g->cst); + if(g->cr) cairo_destroy(g->cr); + if(g->cst) cairo_surface_destroy(g->cst); IOP_GUI_FREE; } diff -Nru darktable-4.4.2/src/iop/tonemap.cc darktable-4.6.1/src/iop/tonemap.cc --- darktable-4.4.2/src/iop/tonemap.cc 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/tonemap.cc 2024-02-16 17:31:09.000000000 +0000 @@ -87,7 +87,9 @@ return _("this module is deprecated. please use the local contrast or tone equalizer module instead."); } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } diff -Nru darktable-4.4.2/src/iop/useless.c darktable-4.6.1/src/iop/useless.c --- darktable-4.4.2/src/iop/useless.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/useless.c 2024-02-16 17:31:09.000000000 +0000 @@ -29,18 +29,29 @@ #include <gtk/gtk.h> #include <stdlib.h> -// This is an example implementation of an image operation module that does nothing useful. -// It demonstrates how the different functions work together. To build your own module, -// take all of the functions that are mandatory, stripping them of comments. -// Then add only the optional functions that are required to implement the functionality -// you need. Don't copy default implementations (hint: if you don't need to change or add -// anything, you probably don't need the copy). Make sure you choose descriptive names -// for your fields and variables. The ones given here are just examples; rename them. +// Silence the compiler during dev of new module as we often +// need to have temporary unfinished code that will hurt the +// compiler. +// THIS MUST be REMOVED before submitting a PR. +#pragma GCC diagnostic ignored "-Wunused-variable" +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" +#pragma GCC diagnostic ignored "-Wunused-function" + + +// This is an example implementation of an image operation module that +// does nothing useful. It demonstrates how the different functions +// work together. To build your own module, take all of the functions +// that are mandatory, stripping them of comments. Then add only the +// optional functions that are required to implement the functionality +// you need. Don't copy default implementations (hint: if you don't +// need to change or add anything, you probably don't need the +// copy). Make sure you choose descriptive names for your fields and +// variables. The ones given here are just examples; rename them. // -// To have your module compile and appear in darkroom, add it to CMakeLists.txt, with -// add_iop(useless "useless.c") -// and to iop_order.c, in the initialisation of legacy_order & v30_order with: -// { {XX.0f }, "useless", 0}, +// To have your module compile and appear in darkroom, add it to +// CMakeLists.txt, with add_iop(useless "useless.c") and to +// iop_order.c, in the initialisation of legacy_order & v30_order +// with: { {XX.0f }, "useless", 0}, // This is the version of the module's parameters, // and includes version information about compile-time dt. @@ -63,23 +74,26 @@ typedef struct dt_iop_useless_params_t { - // The parameters defined here fully record the state of the module and are stored - // (as a serialized binary blob) into the db. - // Make sure everything is in here does not depend on temporary memory (pointers etc). - // This struct defines the layout of self->params and self->default_params. - // You should keep changes to this struct to a minimum. - // If you have to change this struct, it will break - // user data bases, and you have to increment the version - // of DT_MODULE_INTROSPECTION(VERSION) above and provide a legacy_params upgrade path! + // The parameters defined here fully record the state of the module + // and are stored (as a serialized binary blob) into the db. Make + // sure everything is in here does not depend on temporary memory + // (pointers etc). This struct defines the layout of self->params + // and self->default_params. You should keep changes to this struct + // to a minimum. If you have to change this struct, it will break + // user data bases, and you have to increment the version of + // DT_MODULE_INTROSPECTION(VERSION) above and provide a + // legacy_params upgrade path! // - // Tags in the comments get picked up by the introspection framework and are - // used in gui_init to set range and labels (for widgets and history) - // and value checks before commit_params. - // If no explicit init() is specified, the default implementation uses $DEFAULT tags - // to initialise self->default_params, which is then used in gui_init to set widget defaults. + // Tags in the comments get picked up by the introspection framework + // and are used in gui_init to set range and labels (for widgets and + // history) and value checks before commit_params. If no explicit + // init() is specified, the default implementation uses $DEFAULT + // tags to initialise self->default_params, which is then used in + // gui_init to set widget defaults. // - // These field names are just examples; chose meaningful ones! For performance reasons, align - // to 4 byte boundaries (use gboolean, not bool). + // These field names are just examples; chose meaningful ones! For + // performance reasons, align to 4 byte boundaries (use gboolean, + // not bool). int checker_scale; // $MIN: 0 $MAX: 10 $DEFAULT: 1 $DESCRIPTION: "size" float factor; // $MIN: -5.0 $MAX: 5.0 $DEFAULT: 0 gboolean check; // $DESCRIPTION: "checkbox option" @@ -88,9 +102,10 @@ typedef struct dt_iop_useless_gui_data_t { - // Whatever you need to make your gui happy and provide access to widgets between gui_init, gui_update etc. - // Stored in self->gui_data while in darkroom. - // To permanently store per-user gui configuration settings, you could use dt_conf_set/_get. + // Whatever you need to make your gui happy and provide access to + // widgets between gui_init, gui_update etc. Stored in + // self->gui_data while in darkroom. To permanently store per-user + // gui configuration settings, you could use dt_conf_set/_get. GtkWidget *scale, *factor, *check, *method, *extra; // this is needed by gui_update } dt_iop_useless_gui_data_t; @@ -110,6 +125,24 @@ return _("silly example"); } +// a routine returning the description of the module. this is +// displayed when the mouse is over the module's header. +const char **description(struct dt_iop_module_t *self) +{ + return dt_iop_set_description + (self, + // first line is the general description for the module + _("adjustment of the RGB color primaries for color grading"), + // the goal: + _("corrective or creative"), + // the input: + _("linear, RGB, scene-referred"), + // the internal working: + _("linear, RGB"), + // the output: + _("linear, RGB, scene-referred")); +} + // some additional flags (self explanatory i think): int flags() { @@ -123,97 +156,118 @@ return IOP_GROUP_BASIC | IOP_GROUP_TECHNICAL; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } -// Whenever new fields are added to (or removed from) dt_iop_..._params_t or when their meaning -// changes, a translation from the old to the new version must be added here. -// A verbatim copy of the old struct definition should be copied into the routine with a _v?_t ending. -// Since this will get very little future testing (because few developers still have very -// old versions lying around) existing code should be changed as little as possible, if at all. +// Whenever new fields are added to (or removed from) +// dt_iop_..._params_t or when their meaning changes, a translation +// from the old to the new version must be added here. A verbatim +// copy of the old struct definition should be copied into the routine +// with a _v?_t ending. Since this will get very little future +// testing (because few developers still have very old versions lying +// around) existing code should be changed as little as possible, if +// at all. // -// Upgrading from an older version than the previous one should always go through all in between versions -// (unless there was a bug) so that the end result will always be the same. +// Upgrading from an older version than the previous one should always +// go through all in between versions (unless there was a bug) so that +// the end result will always be the same. // // Be careful with changes to structs that are included in _params_t // -// Individually copy each existing field that is still in the new version. This is robust even if reordered. -// If only new fields were added at the end, one call can be used: -// memcpy(n, o, sizeof *o); +// Individually copy each existing field that is still in the new +// version. This is robust even if reordered. If only new fields were +// added at the end, one call can be used: memcpy(n, o, sizeof *o); // -// Hardcode the default values for new fields that were added, rather than referring to default_params; -// in future, the field may not exist anymore or the default may change. The best default for a new version -// to replicate a previous version might not be the optimal default for a fresh image. -// -// FIXME: the calling logic needs to be improved to call upgrades from consecutive version in sequence. -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, const int new_version) +// Hardcode the default values for new fields that were added, rather +// than referring to default_params; in future, the field may not +// exist anymore or the default may change. The best default for a new +// version to replicate a previous version might not be the optimal +// default for a fresh image. + +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) { - typedef dt_iop_useless_params_t dt_iop_useless_params_v3_t; // always create copy of current so code below doesn't need to be touched - - typedef struct dt_iop_useless_params_v2_t + typedef dt_iop_useless_params_v3_t { int checker_scale; float factor; - } dt_iop_useless_params_v2_t; - - if(old_version == 2 && new_version == 3) - { - dt_iop_useless_params_v2_t *o = (dt_iop_useless_params_v2_t *)old_params; - dt_iop_useless_params_v3_t *n = (dt_iop_useless_params_v3_t *)new_params; - - memcpy(n, o, sizeof *o); - n->check = FALSE; - n->method = DT_USELESS_SECOND; - return 0; + int strength; } - typedef struct dt_iop_useless_params_v1_t - { - int checker_scale; - } dt_iop_useless_params_v1_t; + // do migration from 2 to 3 (one step at a time, this legacy_params + // update is incremental and will be done as many time as needed to + // bring the parameters to the latest version of the module. - if(old_version == 1 && new_version == 2) + if(old_version == 2) { - dt_iop_useless_params_v1_t *o = (dt_iop_useless_params_v1_t *)old_params; - dt_iop_useless_params_v2_t *n = (dt_iop_useless_params_v2_t *)new_params; - n->checker_scale = o->checker_scale; - n->factor = 0.0; + typedef struct dt_iop_useless_params_v2_t + { + int checker_scale; + float factor; + } dt_iop_basecurve_params_v5_t; + + dt_iop_useless_params_v2_t *o = (dt_iop_useless_params_v2_t *)old_params; + dt_iop_useless_params_v3_t *n = + (dt_iop_useless_params_v3_t *)malloc(sizeof(dt_iop_useless_params_v3_t)); + memcpy(n, o, sizeof(dt_iop_useless_params_v2_t)); + n->strength = 1; + + *new_params = n; + *new_params_size = sizeof(dt_iop_useless_params_v3_t); + *new_version = 3; return 0; } + return 1; } static const dt_mask_id_t mask_id = NO_MASKID + 1; // key "0" is reserved for the pipe static const char *mask_name = "useless checkerboard"; -void commit_params(dt_iop_module_t *self, dt_iop_params_t *p1, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +void commit_params(dt_iop_module_t *self, + dt_iop_params_t *p1, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { memcpy(piece->data, p1, self->params_size); - // there is no real need for this, but if the number of masks can be changed by the user this is the way to go. - // otherwise we can have old stale masks floating around + // there is no real need for this, but if the number of masks can be + // changed by the user this is the way to go. otherwise we can have + // old stale masks floating around g_hash_table_remove_all(self->raster_mask.source.masks); - g_hash_table_insert(self->raster_mask.source.masks, GINT_TO_POINTER(mask_id), g_strdup(mask_name)); + g_hash_table_insert(self->raster_mask.source.masks, + GINT_TO_POINTER(mask_id), g_strdup(mask_name)); } #if 0 -/** optional, always needed if tiling is permitted by setting IOP_FLAGS_ALLOW_TILING - Also define this if the module uses more memory on the OpenCl device than the in& output buffers. +/** optional, always needed if tiling is permitted by setting + IOP_FLAGS_ALLOW_TILING Also define this if the module uses more + memory on the OpenCl device than the in& output buffers. */ -void tiling_callback(struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, - const dt_iop_roi_t *roi_in, const dt_iop_roi_t *roi_out, +void tiling_callback(struct dt_iop_module_t *self, + struct dt_dev_pixelpipe_iop_t *piece, + const dt_iop_roi_t *roi_in, + const dt_iop_roi_t *roi_out, struct dt_develop_tiling_t *tiling) { - tiling->factor = 2.0f; // input buffer + output buffer; increase if additional memory allocated + tiling->factor = 2.0f; // input buffer + output buffer; increase + // if additional memory allocated tiling->factor_cl = 2.0f; // same, but for OpenCL code path running on GPU - tiling->maxbuf = 1.0f; // largest buffer needed regardless of how tiling splits up the processing + tiling->maxbuf = 1.0f; // largest buffer needed regardless of how + // tiling splits up the processing tiling->maxbuf_cl = 1.0f; // same, but for running on GPU tiling->overhead = 0; // number of bytes of fixed overhead - tiling->overlap = 0; // how many pixels do we need to access from the neighboring tile? + tiling->overlap = 0; // how many pixels do we need to access + // from the neighboring tile? tiling->xalign = 1; tiling->yalign = 1; } @@ -226,8 +280,12 @@ // *roi_out, dt_iop_roi_t *roi_in); #if 0 -/** modify pixel coordinates according to the pixel shifts the module applies (optional, per-pixel ops don't need) */ -int distort_transform(dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, float *points, size_t points_count) +/** modify pixel coordinates according to the pixel shifts the module + * applies (optional, per-pixel ops don't need) */ +gboolean distort_transform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *points, + const size_t points_count) { const dt_iop_useless_params_t *d = (dt_iop_useless_params_t *)piece->data; @@ -235,7 +293,8 @@ const float adjy = 0.0; // nothing to be done if parameters are set to neutral values (no pixel shifts) - if(adjx == 0.0 && adjy == 0.0) return 1; + if(adjx == 0.0 && adjy == 0.0) + return TRUE; // apply the coordinate adjustment to each provided point for(size_t i = 0; i < points_count * 2; i += 2) @@ -244,13 +303,16 @@ points[i + 1] -= adjy; } - return 1; // return 1 on success, 0 if one or more points could not be transformed + return TRUE; // return TRUE on success, FALSE if one or more points could not be transformed } #endif #if 0 /** undo pixel shifts the module applies (optional, per-pixel ops don't need this) */ -int distort_backtransform(dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, float *points, size_t points_count) +gboolean distort_backtransform(dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + float *points, + const size_t points_count) { const dt_iop_useless_params_t *d = (dt_iop_useless_params_t *)piece->data; @@ -258,7 +320,7 @@ const float adjy = 0.0; // nothing to be done if parameters are set to neutral values (no pixel shifts) - if(adjx == 0.0 && adjy == 0.0) return 1; + if(adjx == 0.0 && adjy == 0.0) return TRUE; // apply the inverse coordinate adjustment to each provided point for(size_t i = 0; i < points_count * 2; i += 2) @@ -267,7 +329,7 @@ points[i + 1] += adjy; } - return 1; // return 1 on success, 0 if one or more points could not be back-transformed + return TRUE; // return TRUE on success, FALSE if one or more points could not be back-transformed } #endif @@ -282,11 +344,15 @@ a signal should be used (raise a signal here) and a corresponding callback must be connected to this signal. */ -void process(struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid, - const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) +void process(struct dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + const void *const ivoid, + void *const ovoid, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) { - // this is called for preview and full pipe separately, each with its own pixelpipe piece. - // get our data struct: + // this is called for preview and full pipe separately, each with + // its own pixelpipe piece. get our data struct: dt_iop_useless_params_t *d = (dt_iop_useless_params_t *)piece->data; // the total scale is composed of scale before input to the pipeline (iscale), // and the scale of the roi. @@ -294,29 +360,35 @@ // how many colors in our buffer? const size_t ch = piece->colors; - // most modules only support a single type of input data, so we can check whether that format has been supplied - // and simply pass along the data if not (setting a trouble flag to inform the user) + // most modules only support a single type of input data, so we can + // check whether that format has been supplied and simply pass along + // the data if not (setting a trouble flag to inform the user) dt_iop_useless_gui_data_t *g = (dt_iop_useless_gui_data_t *)self->gui_data; - if(!dt_iop_have_required_input_format(4 /*we need full-color pixels*/, self, piece->colors, + if(!dt_iop_have_required_input_format(4 /*we need full-color pixels*/, + self, piece->colors, ivoid, ovoid, roi_in, roi_out)) return; // we create a raster mask as an example float *mask = NULL; - if(piece->pipe->store_all_raster_masks || dt_iop_is_raster_mask_used(piece->module, mask_id)) + if(piece->pipe->store_all_raster_masks + || dt_iop_is_raster_mask_used(piece->module, mask_id)) { - // Attempt to allocate all of the buffers we need. For this example, we need one buffer that is equal in - // dimensions to the output buffer, has one color channel, and has been zero'd. (See common/imagebuf.h for - // more details on all of the options.) - if(!dt_iop_alloc_image_buffers(module, roi_in, roi_out, - 1/*ch per pixel*/ | DT_IMGSZ_OUTPUT | DT_IMGSZ_FULL | DT_IMGSZ_CLEARBUF, &mask, - 0 /* end of list of buffers to allocate */)) + // Attempt to allocate all of the buffers we need. For this + // example, we need one buffer that is equal in dimensions to the + // output buffer, has one color channel, and has been zero'd. + // (See common/imagebuf.h for more details on all of the options.) + if(!dt_iop_alloc_image_buffers + (module, roi_in, roi_out, + 1/*ch per pixel*/ | DT_IMGSZ_OUTPUT | DT_IMGSZ_FULL | DT_IMGSZ_CLEARBUF, &mask, + 0 /* end of list of buffers to allocate */)) { - // Uh oh, we didn't have enough memory! If multiple buffers were requested, any that had already - // been allocated have been freed, and the module's trouble flag has been set. We can simply pass - // through the input image and return now, since there isn't anything else we need to clean up at - // this point. - dt_iop_copy_image_roi(ovoid, ivoid, ch, roi_in, roi_out, TRUE); + // Uh oh, we didn't have enough memory! If multiple buffers + // were requested, any that had already been allocated have been + // freed, and the module's trouble flag has been set. We can + // simply pass through the input image and return now, since + // there isn't anything else we need to clean up at this point. + dt_iop_copy_image_roi(ovoid, ivoid, ch, roi_in, roi_out); return; } } @@ -332,8 +404,12 @@ { float *in = ((float *)ivoid) + (size_t)ch * roi_in->width - * j; // make sure to address input, output and temp buffers with size_t as we want to also - float *out = ((float *)ovoid) + (size_t)ch * roi_out->width * j; // correctly handle huge images + * j; // make sure to address input, output and temp + // buffers with size_t as we want to also + float *out = ((float *)ovoid) + (size_t)ch * roi_out->width * j; // correctly + // handle + // huge + // images float *out_mask = mask ? &(mask[(size_t)roi_out->width * j]) : NULL; for(int i = 0; i < roi_out->width; i++) { @@ -342,7 +418,9 @@ if((wi / d->checker_scale + wj / d->checker_scale) & 1) { for_each_channel(c, aligned(in,out)) // vectorize if possible - out[c] = in[c] * (1.0 - d->factor); // does this for c=0..2 or c=0..3, whichever is faster + out[c] = in[c] * (1.0 - d->factor); // does this for c=0..2 + // or c=0..3, whichever + // is faster if(out_mask) out_mask[i] = 1.0; } else @@ -364,20 +442,23 @@ { // Allocates memory for a module instance and fills default_params. // If this callback is not provided, the standard implementation in - // dt_iop_default_init is used, which looks at the $DEFAULT introspection tags - // in the comments of the params_t struct definition. - // An explicit implementation of init is only required if not all fields are - // fully supported by dt_iop_default_init, for example arrays with non-identical values. - // In that case, dt_iop_default_init can be called first followed by additional initialisation. - // The values in params will not be used and default_params can be overwritten by - // reload_params on a per-image basis. + // dt_iop_default_init is used, which looks at the $DEFAULT + // introspection tags in the comments of the params_t struct + // definition. An explicit implementation of init is only required + // if not all fields are fully supported by dt_iop_default_init, for + // example arrays with non-identical values. In that case, + // dt_iop_default_init can be called first followed by additional + // initialisation. The values in params will not be used and + // default_params can be overwritten by reload_params on a per-image + // basis. dt_iop_default_init(module); // Any non-default settings; for example disabling the on/off switch: module->hide_enable_button = TRUE; - // To make this work correctly, you also need to hide the widgets, otherwise moving one - // would enable the module anyway. The standard way is to set up a gtk_stack and show - // the page that only has a label with an explanatory text when the module can't be used. + // To make this work correctly, you also need to hide the widgets, + // otherwise moving one would enable the module anyway. The standard + // way is to set up a gtk_stack and show the page that only has a + // label with an explanatory text when the module can't be used. } void init_global(dt_iop_module_so_t *module) @@ -387,9 +468,9 @@ void cleanup(dt_iop_module_t *module) { - // Releases any memory allocated in init(module) - // Implement this function explicitly if the module allocates additional memory besides (default_)params. - // this is rare. + // Releases any memory allocated in init(module) Implement this + // function explicitly if the module allocates additional memory + // besides (default_)params. this is rare. free(module->params); module->params = NULL; free(module->default_params); @@ -402,8 +483,10 @@ module->data = NULL; } -/** Put your local callbacks here, be sure to make them static so they won't be visible outside this file! */ -static void extra_callback(GtkWidget *w, dt_iop_module_t *self) +/** Put your local callbacks here, be sure to make them static so they + * won't be visible outside this file! */ +static void extra_callback(GtkWidget *w, + dt_iop_module_t *self) { // this is important to avoid cycles! if(darktable.gui->reset) return; @@ -425,7 +508,9 @@ } /** optional gui callbacks. */ -void gui_changed(dt_iop_module_t *self, GtkWidget *w, void *previous) +void gui_changed(dt_iop_module_t *self, + GtkWidget *w, + void *previous) { // If defined, this gets called when any of the introspection based widgets // (created with dt_bauhaus_..._from_params) are changed. @@ -446,7 +531,9 @@ // go in reload_defaults (if they depend on the image) or gui_init. } -void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece) +void color_picker_apply(dt_iop_module_t *self, + GtkWidget *picker, + dt_dev_pixelpipe_t *pipe) { dt_iop_useless_params_t *p = (dt_iop_useless_params_t *)self->params; dt_iop_useless_gui_data_t *g = (dt_iop_useless_gui_data_t *)self->gui_data; @@ -470,19 +557,20 @@ // a different history item is selected. // Here, all the widgets need to be set to the current values in param. // - // Note, this moves data from params -> gui. All fields at same time. - // The opposite direction, gui -> params happens one field at a time, for example - // when the user manipulates a slider. It is handled by gui_changed (and the - // automatic callback) for introspection based widgets or by the explicit callback - // set up manually (see example of extra_callback above). + // Note, this moves data from params -> gui. All fields at same + // time. The opposite direction, gui -> params happens one field at + // a time, for example when the user manipulates a slider. It is + // handled by gui_changed (and the automatic callback) for + // introspection based widgets or by the explicit callback set up + // manually (see example of extra_callback above). dt_iop_useless_gui_data_t *g = (dt_iop_useless_gui_data_t *)self->gui_data; dt_iop_useless_params_t *p = (dt_iop_useless_params_t *)self->params; dt_bauhaus_slider_set(g->scale, p->checker_scale); - // For introspection based widgets (dt_bauhaus_slider_from_params) do not use - // any transformations here (for example *100 for percentages) because that will - // break enforcement of $MIN/$MAX. + // For introspection based widgets (dt_bauhaus_slider_from_params) + // do not use any transformations here (for example *100 for + // percentages) because that will break enforcement of $MIN/$MAX. // Use dt_bauhaus_slider_set_factor/offset in gui_init instead. dt_bauhaus_slider_set(g->factor, p->factor); @@ -492,8 +580,9 @@ // Use set_from_value to correctly handle out of order values. dt_bauhaus_combobox_set_from_value(g->method, p->method); - // Any configuration changes to the gui that depend on field values should be done here, - // or can be done in gui_changed which can then be called from here with widget == NULL. + // Any configuration changes to the gui that depend on field values + // should be done here, or can be done in gui_changed which can then + // be called from here with widget == NULL. gui_changed(self, NULL, NULL); } @@ -501,13 +590,14 @@ * loaded from film strip mode. */ void reload_defaults(dt_iop_module_t *module) { - // This only has to be provided if module settings or default_params need to depend on - // image type (raw?) or exif data. - // Make sure to always reset to the default for non-special cases, otherwise the override - // will stick when switching to another image. + // This only has to be provided if module settings or default_params + // need to depend on image type (raw?) or exif data. Make sure to + // always reset to the default for non-special cases, otherwise the + // override will stick when switching to another image. dt_iop_useless_params_t *d = (dt_iop_useless_params_t *)module->default_params; - // As an example, switch off for non-raw images. The enable button was already hidden in init(). + // As an example, switch off for non-raw images. The enable button + // was already hidden in init(). if(!dt_image_is_raw(&module->dev->image_storage)) { module->default_enabled = FALSE; @@ -518,11 +608,12 @@ d->checker_scale = 3; // something dependent on exif, for example. } - // If we are in darkroom, gui_init will already have been called and has initialised - // module->gui_data and widgets. - // So if default values have been changed, it may then be necessary to also change the - // default values in widgets. Resetting the individual widgets will then have the same - // effect as resetting the whole module at once. + // If we are in darkroom, gui_init will already have been called and + // has initialised module->gui_data and widgets. So if default + // values have been changed, it may then be necessary to also change + // the default values in widgets. Resetting the individual widgets + // will then have the same effect as resetting the whole module at + // once. dt_iop_useless_gui_data_t *g = (dt_iop_useless_gui_data_t *)module->gui_data; if(g) { @@ -532,48 +623,55 @@ void gui_init(dt_iop_module_t *self) { - // Allocates memory for the module's user interface in the darkroom and - // sets up the widgets in it. + // Allocates memory for the module's user interface in the darkroom + // and sets up the widgets in it. // - // self->widget needs to be set to the top level widget. - // This can be a (vertical) box, a grid or even a notebook. Modules that are - // disabled for certain types of images (for example non-raw) may use a stack - // where one of the pages contains just a label explaining why it is disabled. + // self->widget needs to be set to the top level widget. This can + // be a (vertical) box, a grid or even a notebook. Modules that are + // disabled for certain types of images (for example non-raw) may + // use a stack where one of the pages contains just a label + // explaining why it is disabled. // - // Widgets that are directly linked to a field in params_t may be set up using the - // dt_bauhaus_..._from_params family. They take a string with the field - // name in the params_t struct definition. The $MIN, $MAX and $DEFAULT tags will be - // used to set up the widget (slider) ranges and default values and the $DESCRIPTION - // is used as the widget label. + // Widgets that are directly linked to a field in params_t may be + // set up using the dt_bauhaus_..._from_params family. They take a + // string with the field name in the params_t struct definition. The + // $MIN, $MAX and $DEFAULT tags will be used to set up the widget + // (slider) ranges and default values and the $DESCRIPTION is used + // as the widget label. // - // The _from_params calls also set up an automatic callback that updates the field in params - // whenever the widget is changed. In addition, gui_changed is called, if it exists, - // so that any other required changes, to dependent fields or to gui widgets, can be made. + // The _from_params calls also set up an automatic callback that + // updates the field in params whenever the widget is changed. In + // addition, gui_changed is called, if it exists, so that any other + // required changes, to dependent fields or to gui widgets, can be + // made. // - // Whenever self->params changes (switching images or history) the widget values have to - // be updated in gui_update. + // Whenever self->params changes (switching images or history) the + // widget values have to be updated in gui_update. // - // Do not set the value of widgets or configure them depending on field values here; - // this should be done in gui_update (or gui_changed or individual widget callbacks) + // Do not set the value of widgets or configure them depending on + // field values here; this should be done in gui_update (or + // gui_changed or individual widget callbacks) // - // If any default values for(slider) widgets or options (in comboboxes) depend on the - // type of image, then the widgets have to be updated in reload_params. + // If any default values for(slider) widgets or options (in + // comboboxes) depend on the type of image, then the widgets have to + // be updated in reload_params. dt_iop_useless_gui_data_t *g = IOP_GUI_ALLOC(useless); - // If the first widget is created using a _from_params call, self->widget does not have to - // be explicitly initialised, as a new vertical box will be created automatically. + // If the first widget is created using a _from_params call, + // self->widget does not have to be explicitly initialised, as a new + // vertical box will be created automatically. self->widget = gtk_box_new(GTK_ORIENTATION_VERTICAL, DT_BAUHAUS_SPACE); - // Linking a slider to an integer will make it take only whole numbers (step=1). - // The new slider is added to self->widget + // Linking a slider to an integer will make it take only whole + // numbers (step=1). The new slider is added to self->widget g->scale = dt_bauhaus_slider_from_params(self, "checker_scale"); - // If the field name should be used as label too, it does not need a $DESCRIPTION; - // mark it for translation here using N_() + // If the field name should be used as label too, it does not need a + // $DESCRIPTION; mark it for translation here using N_() // - // A colorpicker can be attached to a slider, as here, or put standalone in a box. - // When a color is picked, color_picker_apply is called with either the slider or the - // button that triggered it. + // A colorpicker can be attached to a slider, as here, or put + // standalone in a box. When a color is picked, color_picker_apply + // is called with either the slider or the button that triggered it. g->factor = dt_color_picker_new(self, DT_COLOR_PICKER_AREA, dt_bauhaus_slider_from_params(self, N_("factor"))); // The initial slider range can be reduced from the introspection $MIN - $MAX @@ -589,15 +687,17 @@ // Tooltips explain the otherwise compact interface gtk_widget_set_tooltip_text(g->factor, _("adjust factor")); - // A combobox linked to struct field will be filled with the values and $DESCRIPTIONs - // in the struct definition, in the same order. The automatic callback will put the - // enum value, not the position within the combobox list, in the field. + // A combobox linked to struct field will be filled with the values + // and $DESCRIPTIONs in the struct definition, in the same + // order. The automatic callback will put the enum value, not the + // position within the combobox list, in the field. g->method = dt_bauhaus_combobox_from_params(self, "method"); g->check = dt_bauhaus_toggle_from_params(self, "check"); - // Any widgets that are _not_ directly linked to a field need to have a custom callback - // function set up to respond to the "value-changed" signal. + // Any widgets that are _not_ directly linked to a field need to + // have a custom callback function set up to respond to the + // "value-changed" signal. g->extra = dt_bauhaus_slider_new_with_range(self, -0.5, 0.5, 0, 0, 2); dt_bauhaus_widget_set_label(g->extra, NULL, N_("extra")); gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(g->extra), TRUE, TRUE, 0); @@ -606,10 +706,12 @@ void gui_cleanup(dt_iop_module_t *self) { - // This only needs to be provided if gui_init allocates any memory or resources besides - // self->widget and gui_data_t. The default function (if an explicit one isn't provided here) - // takes care of gui_data_t (and gtk destroys the widget anyway). If you override the default, - // you have to do whatever you have to do, and also call IOP_GUI_FREE to clean up gui_data_t. + // This only needs to be provided if gui_init allocates any memory + // or resources besides self->widget and gui_data_t. The default + // function (if an explicit one isn't provided here) takes care of + // gui_data_t (and gtk destroys the widget anyway). If you override + // the default, you have to do whatever you have to do, and also + // call IOP_GUI_FREE to clean up gui_data_t. IOP_GUI_FREE; } @@ -633,7 +735,8 @@ lm = dt_mouse_action_create_format(lm, DT_MOUSE_ACTION_SCROLL, GDK_SHIFT_MASK, _("[%s] some action"), self->name()); // append a second action to the list we will return - lm = dt_mouse_action_create_format(lm, DT_MOUSE_ACTION_LEFT_DRAG, GDK_CONTROL_MASK | GDK_SHIFT_MASK, + lm = dt_mouse_action_create_format(lm, DT_MOUSE_ACTION_LEFT_DRAG, + GDK_CONTROL_MASK | GDK_SHIFT_MASK, _("[%s] other action"), self->name()); return lm; } @@ -644,4 +747,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/velvia.c darktable-4.6.1/src/iop/velvia.c --- darktable-4.4.2/src/iop/velvia.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/velvia.c 2024-02-16 17:31:09.000000000 +0000 @@ -46,15 +46,6 @@ float bias; // $MIN: 0.0 $MAX: 1.0 $DEFAULT: 1.0 $DESCRIPTION: "mid-tones bias" } dt_iop_velvia_params_t; -/* legacy version 1 params */ -typedef struct dt_iop_velvia_params1_t -{ - float saturation; - float vibrance; - float luminance; - float clarity; -} dt_iop_velvia_params1_t; - typedef struct dt_iop_velvia_gui_data_t { GtkBox *vbox; @@ -94,7 +85,9 @@ return IOP_GROUP_COLOR | IOP_GROUP_GRADING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -108,15 +101,38 @@ _("linear, RGB, scene-referred")); } -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, const int new_version) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) { - if(old_version == 1 && new_version == 2) + typedef struct dt_iop_velvia_params_v2_t + { + float strength; + float bias; + } dt_iop_velvia_params_v2_t; + + if(old_version == 1) { - const dt_iop_velvia_params1_t *old = old_params; - dt_iop_velvia_params_t *new = new_params; - new->strength = old->saturation * old->vibrance / 100.0f; - new->bias = old->luminance; + typedef struct dt_iop_velvia_params_v1_t + { + float saturation; + float vibrance; + float luminance; + float clarity; + } dt_iop_velvia_params_v1_t; + + const dt_iop_velvia_params_v1_t *o = old_params; + dt_iop_velvia_params_v2_t *n = + (dt_iop_velvia_params_v2_t *)malloc(sizeof(dt_iop_velvia_params_v2_t)); + n->strength = o->saturation * o->vibrance / 100.0f; + n->bias = o->luminance; + + *new_params = n; + *new_params_size = sizeof(dt_iop_velvia_params_v2_t); + *new_version = 2; return 0; } return 1; @@ -209,20 +225,13 @@ size_t origin[] = { 0, 0, 0 }; size_t region[] = { width, height, 1 }; err = dt_opencl_enqueue_copy_image(devid, dev_in, dev_out, origin, origin, region); - if(err != CL_SUCCESS) goto error; } else { err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_velvia, width, height, CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(strength), CLARG(bias)); - if(err != CL_SUCCESS) goto error; } - - return TRUE; - -error: - dt_print(DT_DEBUG_OPENCL, "[opencl_velvia] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif @@ -289,4 +298,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/vibrance.c darktable-4.6.1/src/iop/vibrance.c --- darktable-4.4.2/src/iop/vibrance.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/vibrance.c 2024-02-16 17:31:09.000000000 +0000 @@ -83,7 +83,9 @@ return IOP_GROUP_COLOR | IOP_GROUP_GRADING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } @@ -142,7 +144,6 @@ { dt_iop_vibrance_data_t *data = (dt_iop_vibrance_data_t *)piece->data; dt_iop_vibrance_global_data_t *gd = (dt_iop_vibrance_global_data_t *)self->global_data; - cl_int err = DT_OPENCL_DEFAULT_ERROR; const int devid = piece->pipe->devid; const int width = roi_in->width; @@ -150,16 +151,9 @@ const float amount = data->amount * 0.01f; - err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_vibrance, width, height, + return dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_vibrance, width, height, CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(amount)); - if(err != CL_SUCCESS) goto error; - - return TRUE; - -error: - dt_print(DT_DEBUG_OPENCL, "[opencl_vibrance] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; -} + } #endif diff -Nru darktable-4.4.2/src/iop/vignette.c darktable-4.6.1/src/iop/vignette.c --- darktable-4.4.2/src/iop/vignette.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/vignette.c 2024-02-16 17:31:09.000000000 +0000 @@ -61,44 +61,6 @@ float y; // $MIN: -1.0 $MAX: 1.0 $DESCRIPTION: "vertical center" } dt_iop_vector_2d_t; -typedef struct dt_iop_vignette_params1_t -{ - double scale; // 0 - 100 Radie - double falloff_scale; // 0 - 100 Radie for falloff inner radie of falloff=scale and - // outer=scale+falloff_scale - double strength; // 0 - 1 strength of effect - double uniformity; // 0 - 1 uniformity of center - double bsratio; // -1 - +1 ratio of brightness/saturation effect - gboolean invert_falloff; - gboolean invert_saturation; - dt_iop_dvector_2d_t center; // Center of vignette -} dt_iop_vignette_params1_t; - -typedef struct dt_iop_vignette_params2_t -{ - float scale; // 0 - 100 Inner radius, percent of largest image dimension - float falloff_scale; // 0 - 100 Radius for falloff -- outer radius = inner radius + falloff_scale - float brightness; // -1 - 1 Strength of brightness reduction - float saturation; // -1 - 1 Strength of saturation reduction - dt_iop_vector_2d_t center; // Center of vignette - gboolean autoratio; // - float whratio; // 0-1 = width/height ratio, 1-2 = height/width ratio + 1 - float shape; -} dt_iop_vignette_params2_t; - -typedef struct dt_iop_vignette_params3_t -{ - float scale; // 0 - 100 Inner radius, percent of largest image dimension - float falloff_scale; // 0 - 100 Radius for falloff -- outer radius = inner radius + falloff_scale - float brightness; // -1 - 1 Strength of brightness reduction - float saturation; // -1 - 1 Strength of saturation reduction - dt_iop_vector_2d_t center; // Center of vignette - gboolean autoratio; // - float whratio; // 0-1 = width/height ratio, 1-2 = height/width ratio + 1 - float shape; - int dithering; // if and how to perform dithering -} dt_iop_vignette_params3_t; - typedef struct dt_iop_vignette_params_t { float scale; // $MIN: 0.0 $MAX: 200.0 $DEFAULT: 80.0 $DESCRIPTION: "fall-off start" Inner radius, percent of largest image dimension @@ -113,7 +75,6 @@ gboolean unbound; // $DEFAULT: TRUE whether the values should be clipped } dt_iop_vignette_params_t; - typedef struct dt_iop_vignette_gui_data_t { GtkWidget *scale; @@ -173,18 +134,57 @@ return IOP_GROUP_EFFECT | IOP_GROUP_EFFECTS; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +int operation_tags() { - return IOP_CS_RGB; + return IOP_TAG_DECORATION; } -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, const int new_version) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { - if(old_version == 1 && new_version == 4) + return IOP_CS_RGB; +} + +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_vignette_params_v4_t + { + float scale; + float falloff_scale; + float brightness; + float saturation; + dt_iop_vector_2d_t center; + gboolean autoratio; + float whratio; + float shape; + dt_iop_dither_t dithering; + gboolean unbound; + } dt_iop_vignette_params_v4_t; + + if(old_version == 1) { - const dt_iop_vignette_params1_t *old = old_params; - dt_iop_vignette_params_t *new = new_params; + typedef struct dt_iop_vignette_params_v1_t + { + double scale; + double falloff_scale; + + double strength; + double uniformity; + double bsratio; + gboolean invert_falloff; + gboolean invert_saturation; + dt_iop_dvector_2d_t center; + } dt_iop_vignette_params_v1_t; + + const dt_iop_vignette_params_v1_t *old = old_params; + dt_iop_vignette_params_v4_t *new = + (dt_iop_vignette_params_v4_t *)malloc(sizeof(dt_iop_vignette_params_v4_t)); new->scale = old->scale; new->falloff_scale = old->falloff_scale; new->brightness = -(1.0 - MAX(old->bsratio, 0.0)) * old->strength / 100.0; @@ -198,12 +198,29 @@ new->shape = 1.0; new->dithering = DITHER_OFF; new->unbound = FALSE; + + *new_params = new; + *new_params_size = sizeof(dt_iop_vignette_params_v4_t); + *new_version = 4; return 0; } - if(old_version == 2 && new_version == 4) + if(old_version == 2) { - const dt_iop_vignette_params2_t *old = old_params; - dt_iop_vignette_params_t *new = new_params; + typedef struct dt_iop_vignette_params_v2_t + { + float scale; + float falloff_scale; + float brightness; + float saturation; + dt_iop_vector_2d_t center; + gboolean autoratio; + float whratio; + float shape; + } dt_iop_vignette_params_v2_t; + + const dt_iop_vignette_params_v2_t *old = old_params; + dt_iop_vignette_params_v4_t *new = + (dt_iop_vignette_params_v4_t *)malloc(sizeof(dt_iop_vignette_params_v4_t)); new->scale = old->scale; new->falloff_scale = old->falloff_scale; new->brightness = old->brightness; @@ -215,12 +232,30 @@ new->shape = old->shape; new->dithering = DITHER_OFF; new->unbound = FALSE; + + *new_params = new; + *new_params_size = sizeof(dt_iop_vignette_params_v4_t); + *new_version = 4; return 0; } - if(old_version == 3 && new_version == 4) + if(old_version == 3) { - const dt_iop_vignette_params3_t *old = old_params; - dt_iop_vignette_params_t *new = new_params; + typedef struct dt_iop_vignette_params_v3_t + { + float scale; + float falloff_scale; + float brightness; + float saturation; + dt_iop_vector_2d_t center; + gboolean autoratio; + float whratio; + float shape; + int dithering; + } dt_iop_vignette_params_v3_t; + + const dt_iop_vignette_params_v3_t *old = old_params; + dt_iop_vignette_params_v4_t *new = + (dt_iop_vignette_params_v4_t *)malloc(sizeof(dt_iop_vignette_params_v4_t)); new->scale = old->scale; new->falloff_scale = old->falloff_scale; new->brightness = old->brightness; @@ -232,27 +267,47 @@ new->shape = old->shape; new->dithering = old->dithering; new->unbound = FALSE; + + *new_params = new; + *new_params_size = sizeof(dt_iop_vignette_params_v4_t); + *new_version = 4; return 0; } return 1; } -static int get_grab(float pointerx, float pointery, float startx, float starty, float endx, float endy, - float zoom_scale) +static int _get_grab(const float pointerx, + const float pointery, + const float startx, + const float starty, + const float endx, + const float endy, + const float zoom_scale) { const float radius = 5.0 / zoom_scale; - if(powf(pointerx - startx, 2) + powf(pointery, 2) <= powf(radius, 2)) return 2; // x size - if(powf(pointerx, 2) + powf(pointery - starty, 2) <= powf(radius, 2)) return 4; // y size - if(powf(pointerx, 2) + powf(pointery, 2) <= powf(radius, 2)) return 1; // center - if(powf(pointerx - endx, 2) + powf(pointery, 2) <= powf(radius, 2)) return 8; // x falloff - if(powf(pointerx, 2) + powf(pointery - endy, 2) <= powf(radius, 2)) return 16; // y falloff + if(powf(pointerx - startx, 2) + powf(pointery, 2) <= powf(radius, 2)) + return 2; // x size + if(powf(pointerx, 2) + powf(pointery - starty, 2) <= powf(radius, 2)) + return 4; // y size + if(powf(pointerx, 2) + powf(pointery, 2) <= powf(radius, 2)) + return 1; // center + if(powf(pointerx - endx, 2) + powf(pointery, 2) <= powf(radius, 2)) + return 8; // x falloff + if(powf(pointerx, 2) + powf(pointery - endy, 2) <= powf(radius, 2)) + return 16; // y falloff return 0; } -static void draw_overlay(cairo_t *cr, float x, float y, float fx, float fy, int grab, float zoom_scale) +static void draw_overlay(cairo_t *cr, + const float x, + const float y, + const float fx, + const float fy, + const int grab, + const float zoom_scale) { // half width/height of the crosshair const float crosshair_w = DT_PIXEL_APPLY_DPI(10.0) / zoom_scale; @@ -295,6 +350,8 @@ cairo_restore(cr); cairo_stroke(cr); + if(dt_iop_canvas_not_sensitive(darktable.develop)) + return; // the handles const float radius_sel = DT_PIXEL_APPLY_DPI(6.0) / zoom_scale; const float radius_reg = DT_PIXEL_APPLY_DPI(4.0) / zoom_scale; @@ -325,17 +382,19 @@ cairo_stroke(cr); } -// FIXME: For portrait images the overlay is a bit off. The coordinates in mouse_moved seem to be ok though. -// WTF? -void gui_post_expose(struct dt_iop_module_t *self, cairo_t *cr, int32_t width, int32_t height, - int32_t pointerx, int32_t pointery) +// FIXME: For portrait images the overlay is a bit off. The +// coordinates in mouse_moved seem to be ok though. +void gui_post_expose(dt_iop_module_t *self, + cairo_t *cr, + const float wd, + const float ht, + const float pzx, + const float pzy, + const float zoom_scale) { - dt_develop_t *dev = self->dev; // dt_iop_vignette_gui_data_t *g = (dt_iop_vignette_gui_data_t *)self->gui_data; dt_iop_vignette_params_t *p = (dt_iop_vignette_params_t *)self->params; - const float wd = dev->preview_pipe->backbuf_width; - const float ht = dev->preview_pipe->backbuf_height; float bigger_side, smaller_side; if(wd >= ht) { @@ -347,19 +406,6 @@ bigger_side = ht; smaller_side = wd; } - const float zoom_y = dt_control_get_dev_zoom_y(); - const float zoom_x = dt_control_get_dev_zoom_x(); - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 1); - float pzx, pzy; - dt_dev_get_pointer_zoom_pos(dev, pointerx, pointery, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; - - cairo_translate(cr, width / 2.0, height / 2.0); - cairo_scale(cr, zoom_scale, zoom_scale); - cairo_translate(cr, -.5f * wd - zoom_x * wd, -.5f * ht - zoom_y * ht); float vignette_x = (p->center.x + 1.0) * 0.5 * wd; float vignette_y = (p->center.y + 1.0) * 0.5 * ht; @@ -410,24 +456,33 @@ } } - int grab = get_grab(pzx * wd - vignette_x, pzy * ht - vignette_y, vignette_w, -vignette_h, vignette_fx, + int grab = _get_grab(pzx * wd - vignette_x, pzy * ht - vignette_y, + vignette_w, -vignette_h, vignette_fx, -vignette_fy, zoom_scale); cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND); - cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(3.0) / zoom_scale); + const double lwidth = + (dt_iop_canvas_not_sensitive(darktable.develop) ? 0.5 : 1.0) / zoom_scale; + cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(3.0) * lwidth); dt_draw_set_color_overlay(cr, FALSE, 0.8); draw_overlay(cr, vignette_w, vignette_h, vignette_fx, vignette_fy, grab, zoom_scale); - cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(1.0) / zoom_scale); + cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(1.0) * lwidth); dt_draw_set_color_overlay(cr, TRUE, 0.8); draw_overlay(cr, vignette_w, vignette_h, vignette_fx, vignette_fy, grab, zoom_scale); } -// FIXME: Pumping of the opposite direction when changing width/height. See two FIXMEs further down. -int mouse_moved(struct dt_iop_module_t *self, double x, double y, double pressure, int which) +// FIXME: Pumping of the opposite direction when changing +// width/height. See two FIXMEs further down. +int mouse_moved(dt_iop_module_t *self, + const float pzx, + const float pzy, + const double pressure, + const int which, + const float zoom_scale) { dt_iop_vignette_gui_data_t *g = (dt_iop_vignette_gui_data_t *)self->gui_data; dt_iop_vignette_params_t *p = (dt_iop_vignette_params_t *)self->params; - const float wd = self->dev->preview_pipe->backbuf_width; - const float ht = self->dev->preview_pipe->backbuf_height; + float wd, ht; + dt_dev_get_preview_size(self->dev, &wd, &ht); float bigger_side, smaller_side; if(wd >= ht) { @@ -439,13 +494,6 @@ bigger_side = ht; smaller_side = wd; } - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(self->dev, zoom, 1<<closeup, 1); - float pzx, pzy; - dt_dev_get_pointer_zoom_pos(self->dev, x, y, &pzx, &pzy); - pzx += 0.5f; - pzy += 0.5f; static int old_grab = -1; int grab = old_grab; @@ -496,9 +544,11 @@ } } - if(grab == 0 || !(darktable.control->button_down && darktable.control->button_down_which == 1)) + if(grab == 0 + || !(darktable.control->button_down && darktable.control->button_down_which == 1)) { - grab = get_grab(pzx * wd - vignette_x, pzy * ht - vignette_y, vignette_w, -vignette_h, vignette_fx, + grab = _get_grab(pzx * wd - vignette_x, pzy * ht - vignette_y, + vignette_w, -vignette_h, vignette_fx, -vignette_fy, zoom_scale); } @@ -516,13 +566,15 @@ } else if(grab == 2) // change the width { - const float max = 0.5 * ((p->whratio <= 1.0) ? bigger_side * p->whratio : bigger_side); + const float max = 0.5 * ((p->whratio <= 1.0) + ? bigger_side * p->whratio + : bigger_side); const float new_vignette_w = MIN(bigger_side, MAX(0.1, pzx * wd - vignette_x)); const float ratio = new_vignette_w / vignette_h; const float new_scale = 100.0 * new_vignette_w / max; - // FIXME: When going over the 1.0 boundary from wide to narrow (>1.0 -> <=1.0) the height slightly - // changes, depending on speed. - // I guess we have to split the computation. + // FIXME: When going over the 1.0 boundary from wide to narrow + // (>1.0 -> <=1.0) the height slightly changes, depending on + // speed. I guess we have to split the computation. if(ratio <= 1.0) { if(dt_modifier_is(which, GDK_CONTROL_MASK)) @@ -549,10 +601,11 @@ { const float new_vignette_h = MIN(bigger_side, MAX(0.1, vignette_y - pzy * ht)); const float ratio = new_vignette_h / vignette_w; - const float max = 0.5 * ((ratio <= 1.0) ? bigger_side * (2.0 - p->whratio) : bigger_side); - // FIXME: When going over the 1.0 boundary from narrow to wide (>1.0 -> <=1.0) the width slightly - // changes, depending on speed. - // I guess we have to split the computation. + const float max = 0.5 * ((ratio <= 1.0) + ? bigger_side * (2.0 - p->whratio) : bigger_side); + // FIXME: When going over the 1.0 boundary from narrow to wide + // (>1.0 -> <=1.0) the width slightly changes, depending on + // speed. I guess we have to split the computation. if(ratio <= 1.0) { if(dt_modifier_is(which, GDK_CONTROL_MASK)) @@ -580,7 +633,8 @@ else if(grab == 8) // change the falloff on the right { const float new_vignette_fx = pzx * wd - vignette_x; - const float max = 0.5 * ((p->whratio <= 1.0) ? bigger_side * p->whratio : bigger_side); + const float max = 0.5 * ((p->whratio <= 1.0) + ? bigger_side * p->whratio : bigger_side); const float delta_x = MIN(2.0f * max, MAX(0.0, new_vignette_fx - vignette_w)); const float new_falloff = 100.0 * delta_x / max; dt_bauhaus_slider_set(g->falloff_scale, new_falloff); @@ -588,7 +642,8 @@ else if(grab == 16) // change the falloff on the top { const float new_vignette_fy = vignette_y - pzy * ht; - const float max = 0.5 * ((p->whratio > 1.0) ? bigger_side * (2.0 - p->whratio) : bigger_side); + const float max = 0.5 * ((p->whratio > 1.0) + ? bigger_side * (2.0 - p->whratio) : bigger_side); const float delta_y = MIN(2.0f * max, MAX(0.0, new_vignette_fy - vignette_h)); const float new_falloff = 100.0 * delta_y / max; dt_bauhaus_slider_set(g->falloff_scale, new_falloff); @@ -618,23 +673,39 @@ return 0; } -int button_pressed(struct dt_iop_module_t *self, double x, double y, double pressure, int which, int type, - uint32_t state) +int button_pressed(dt_iop_module_t *self, + const float x, + const float y, + const double pressure, + const int which, + const int type, + const uint32_t state, + const float zoom_scale) { if(which == 1) return 1; return 0; } -int button_released(struct dt_iop_module_t *self, double x, double y, int which, uint32_t state) +int button_released(dt_iop_module_t *self, + const float x, + const float y, + const int which, + const uint32_t state, + const float zoom_scale) { if(which == 1) return 1; return 0; } -void process(struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, - void *const ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) +void process(struct dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + const void *const ivoid, + void *const ovoid, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) { - if(!dt_iop_have_required_input_format(4 /*we need full-color pixels*/, self, piece->colors, + if(!dt_iop_have_required_input_format(4 /*we need full-color pixels*/, + self, piece->colors, ivoid, ovoid, roi_in, roi_out)) return; @@ -645,11 +716,13 @@ /* Center coordinates of buf_in, these should not consider buf_in->{x,y}! */ const dt_iop_vector_2d_t buf_center = { buf_in->width * .5f, buf_in->height * .5f }; /* Center coordinates of vignette center */ - const dt_iop_vector_2d_t vignette_center = { buf_center.x + data->center.x * buf_in->width / 2.0, - buf_center.y + data->center.y * buf_in->height / 2.0 }; + const dt_iop_vector_2d_t vignette_center = + { buf_center.x + data->center.x * buf_in->width / 2.0, + buf_center.y + data->center.y * buf_in->height / 2.0 }; /* Coordinates of vignette_center in terms of roi_in */ const dt_iop_vector_2d_t roi_center - = { vignette_center.x * roi_in->scale - roi_in->x, vignette_center.y * roi_in->scale - roi_in->y }; + = { vignette_center.x * roi_in->scale - roi_in->x, + vignette_center.y * roi_in->scale - roi_in->y }; float xscale; float yscale; @@ -684,7 +757,8 @@ const float exp1 = 2.0f / shape; const float exp2 = shape / 2.0f; // Pre-scale the center offset - const dt_iop_vector_2d_t roi_center_scaled = { roi_center.x * xscale, roi_center.y * yscale }; + const dt_iop_vector_2d_t roi_center_scaled = { roi_center.x * xscale, + roi_center.y * yscale }; float dither = 0.0f; @@ -717,19 +791,20 @@ const float *in = (const float *)ivoid + k; float *out = (float *)ovoid + k; unsigned int *tea_state = get_tea_state(tea_states,dt_get_thread_num()); - tea_state[0] = j * roi_out->height; /* + dt_get_thread_num() -- do not include, makes results unreproducible */ + tea_state[0] = j * roi_out->height; for(int i = 0; i < roi_out->width; i++) { // current pixel coord translated to local coord const dt_iop_vector_2d_t pv = { fabsf(i * xscale - roi_center_scaled.x), fabsf(j * yscale - roi_center_scaled.y) }; - // Calculate the pixel weight in vignette - const float cplen = powf(powf(pv.x, exp1) + powf(pv.y, exp1), exp2); // Length from center to pv + // Calculate the pixel weight in vignette. Length from center to pv: + const float cplen = powf(powf(pv.x, exp1) + powf(pv.y, exp1), exp2); float weight = 0.f; float dith = 0.0f; - if(cplen >= dscale) // pixel is outside the inner vignette circle, lets calculate weight of vignette + // pixel is outside the inner vignette circle, lets calculate weight of vignette + if(cplen >= dscale) { weight = ((cplen - dscale) / fscale); if(weight >= 1.0f) @@ -784,13 +859,15 @@ #ifdef HAVE_OPENCL -int process_cl(struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, cl_mem dev_in, cl_mem dev_out, - const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) +int process_cl(struct dt_iop_module_t *self, + dt_dev_pixelpipe_iop_t *piece, + cl_mem dev_in, cl_mem dev_out, + const dt_iop_roi_t *const roi_in, + const dt_iop_roi_t *const roi_out) { dt_iop_vignette_data_t *data = (dt_iop_vignette_data_t *)piece->data; dt_iop_vignette_global_data_t *gd = (dt_iop_vignette_global_data_t *)self->global_data; - cl_int err = DT_OPENCL_DEFAULT_ERROR; const int devid = piece->pipe->devid; const int width = roi_out->width; const int height = roi_out->height; @@ -800,11 +877,13 @@ /* Center coordinates of buf_in, these should not consider buf_in->{x,y}! */ const dt_iop_vector_2d_t buf_center = { buf_in->width * .5f, buf_in->height * .5f }; /* Center coordinates of vignette center */ - const dt_iop_vector_2d_t vignette_center = { buf_center.x + data->center.x * buf_in->width / 2.0, - buf_center.y + data->center.y * buf_in->height / 2.0 }; + const dt_iop_vector_2d_t vignette_center = + { buf_center.x + data->center.x * buf_in->width / 2.0, + buf_center.y + data->center.y * buf_in->height / 2.0 }; /* Coordinates of vignette_center in terms of roi_in */ - const dt_iop_vector_2d_t roi_center - = { vignette_center.x * roi_in->scale - roi_in->x, vignette_center.y * roi_in->scale - roi_in->y }; + const dt_iop_vector_2d_t roi_center = + { vignette_center.x * roi_in->scale - roi_in->x, + vignette_center.y * roi_in->scale - roi_in->y }; float xscale; float yscale; @@ -839,7 +918,8 @@ const float exp1 = 2.0 / shape; const float exp2 = shape / 2.0; // Pre-scale the center offset - const dt_iop_vector_2d_t roi_center_scaled = { roi_center.x * xscale, roi_center.y * yscale }; + const dt_iop_vector_2d_t roi_center_scaled = { roi_center.x * xscale, + roi_center.y * yscale }; float dither = 0.0f; @@ -863,17 +943,17 @@ const float saturation = data->saturation; const int unbound = data->unbound; - err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_vignette, width, height, - CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(scale), CLARG(roi_center_scaled_f), - CLARG(expt), CLARG(dscale), CLARG(fscale), CLARG(brightness), CLARG(saturation), CLARG(dither), + return dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_vignette, width, height, + CLARG(dev_in), CLARG(dev_out), + CLARG(width), CLARG(height), + CLARG(scale), + CLARG(roi_center_scaled_f), + CLARG(expt), + CLARG(dscale), CLARG(fscale), + CLARG(brightness), + CLARG(saturation), + CLARG(dither), CLARG(unbound)); - if(err != CL_SUCCESS) goto error; - - return TRUE; - -error: - dt_print(DT_DEBUG_OPENCL, "[opencl_vignette] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; } #endif @@ -905,7 +985,9 @@ gtk_widget_set_sensitive(GTK_WIDGET(g->whratio), !p->autoratio); } -void commit_params(struct dt_iop_module_t *self, dt_iop_params_t *p1, dt_dev_pixelpipe_t *pipe, +void commit_params(struct dt_iop_module_t *self, + dt_iop_params_t *p1, + dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) { dt_iop_vignette_params_t *p = (dt_iop_vignette_params_t *)p1; @@ -938,16 +1020,21 @@ p.dithering = 0; p.unbound = TRUE; dt_gui_presets_add_generic(_("lomo"), self->op, - self->version(), &p, sizeof(p), 1, DEVELOP_BLEND_CS_RGB_DISPLAY); + self->version(), &p, sizeof(p), 1, + DEVELOP_BLEND_CS_RGB_DISPLAY); dt_database_release_transaction(darktable.db); } -void init_pipe(struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +void init_pipe(struct dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { piece->data = malloc(sizeof(dt_iop_vignette_data_t)); } -void cleanup_pipe(struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +void cleanup_pipe(struct dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { free(piece->data); piece->data = NULL; @@ -971,7 +1058,8 @@ g->saturation = dt_bauhaus_slider_from_params(self, N_("saturation")); gtk_box_pack_start(GTK_BOX(self->widget), - dt_ui_section_label_new(C_("section", "position / form")), FALSE, FALSE, 0); + dt_ui_section_label_new(C_("section", "position / form")), + FALSE, FALSE, 0); g->center_x = dt_bauhaus_slider_from_params(self, "center.x"); g->center_y = dt_bauhaus_slider_from_params(self, "center.y"); @@ -989,28 +1077,38 @@ dt_bauhaus_slider_set_format(g->scale, "%"); dt_bauhaus_slider_set_format(g->falloff_scale, "%"); - gtk_widget_set_tooltip_text(g->scale, _("the radii scale of vignette for start of fall-off")); - gtk_widget_set_tooltip_text(g->falloff_scale, _("the radii scale of vignette for end of fall-off")); + gtk_widget_set_tooltip_text + (g->scale, _("the radii scale of vignette for start of fall-off")); + gtk_widget_set_tooltip_text(g->falloff_scale, + _("the radii scale of vignette for end of fall-off")); gtk_widget_set_tooltip_text(g->brightness, _("strength of effect on brightness")); gtk_widget_set_tooltip_text(g->saturation, _("strength of effect on saturation")); gtk_widget_set_tooltip_text(g->center_x, _("horizontal offset of center of the effect")); gtk_widget_set_tooltip_text(g->center_y, _("vertical offset of center of the effect")); - gtk_widget_set_tooltip_text(g->shape, _("shape factor\n0 produces a rectangle\n1 produces a circle or ellipse\n" - "2 produces a diamond")); - gtk_widget_set_tooltip_text(GTK_WIDGET(g->autoratio), _("enable to have the ratio automatically follow the image size")); + gtk_widget_set_tooltip_text + (g->shape, + _("shape factor\n0 produces a rectangle\n1 produces a circle or ellipse\n" + "2 produces a diamond")); + gtk_widget_set_tooltip_text + (GTK_WIDGET(g->autoratio), + _("enable to have the ratio automatically follow the image size")); gtk_widget_set_tooltip_text(g->whratio, _("width-to-height ratio")); - gtk_widget_set_tooltip_text(g->dithering, _("add some level of random noise to prevent banding")); + gtk_widget_set_tooltip_text(g->dithering, + _("add some level of random noise to prevent banding")); } GSList *mouse_actions(struct dt_iop_module_t *self) { GSList *lm = NULL; - lm = dt_mouse_action_create_format(lm, DT_MOUSE_ACTION_LEFT_DRAG, 0, - _("[%s on node] change vignette/feather size"), self->name()); - lm = dt_mouse_action_create_format(lm, DT_MOUSE_ACTION_LEFT_DRAG, GDK_CONTROL_MASK, - _("[%s on node] change vignette/feather size keeping ratio"), self->name()); - lm = dt_mouse_action_create_format(lm, DT_MOUSE_ACTION_LEFT_DRAG, GDK_CONTROL_MASK, - _("[%s on center] move vignette"), self->name()); + lm = dt_mouse_action_create_format + (lm, DT_MOUSE_ACTION_LEFT_DRAG, 0, + _("[%s on node] change vignette/feather size"), self->name()); + lm = dt_mouse_action_create_format + (lm, DT_MOUSE_ACTION_LEFT_DRAG, GDK_CONTROL_MASK, + _("[%s on node] change vignette/feather size keeping ratio"), self->name()); + lm = dt_mouse_action_create_format + (lm, DT_MOUSE_ACTION_LEFT_DRAG, GDK_CONTROL_MASK, + _("[%s on center] move vignette"), self->name()); return lm; } @@ -1019,4 +1117,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/iop/watermark.c darktable-4.6.1/src/iop/watermark.c --- darktable-4.4.2/src/iop/watermark.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/watermark.c 2024-02-16 17:31:09.000000000 +0000 @@ -150,10 +150,40 @@ DT_SCALE_SMALLER_BORDER = 2 // $DESCRIPTION: "smaller border" } dt_iop_watermark_base_scale_v2_t; -int legacy_params(dt_iop_module_t *self, const void *const old_params, const int old_version, - void *new_params, const int new_version) -{ - if(old_version == 1 && new_version == 6) +int legacy_params(dt_iop_module_t *self, + const void *const old_params, + const int old_version, + void **new_params, + int32_t *new_params_size, + int *new_version) +{ + typedef struct dt_iop_watermark_params_v6_t + { + /** opacity value of rendering watermark */ + float opacity; + /** scale value of rendering watermark */ + float scale; + /** Pixel independent xoffset, 0 to 1 */ + float xoffset; + /** Pixel independent yoffset, 0 to 1 */ + float yoffset; + /** Alignment value 0-8 3x3 */ + int alignment; + /** Rotation **/ + float rotate; + dt_iop_watermark_base_scale_t scale_base; + dt_iop_watermark_img_scale_t scale_img; + dt_iop_watermark_svg_scale_t scale_svg; + char filename[64]; + /* simple text */ + char text[512]; + /* text color */ + float color[3]; + /* text font */ + char font[64]; + } dt_iop_watermark_params_v6_t; + + if(old_version == 1) { typedef struct dt_iop_watermark_params_v1_t { @@ -170,11 +200,10 @@ char filename[64]; } dt_iop_watermark_params_v1_t; - dt_iop_watermark_params_v1_t *o = (dt_iop_watermark_params_v1_t *)old_params; - dt_iop_watermark_params_t *n = (dt_iop_watermark_params_t *)new_params; - dt_iop_watermark_params_t *d = (dt_iop_watermark_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + const dt_iop_watermark_params_v1_t *o = (dt_iop_watermark_params_v1_t *)old_params; + dt_iop_watermark_params_v6_t *n = + (dt_iop_watermark_params_v6_t *) + malloc(sizeof(dt_iop_watermark_params_v6_t)); n->opacity = o->opacity; n->scale = o->scale; @@ -187,9 +216,13 @@ g_strlcpy(n->text, "", sizeof(n->text)); g_strlcpy(n->font, "DejaVu Sans 10", sizeof(n->font)); n->color[0] = n->color[1] = n->color[2] = 0; + + *new_params = n; + *new_params_size = sizeof(dt_iop_watermark_params_v6_t); + *new_version = 6; return 0; } - else if(old_version == 2 && new_version == 6) + else if(old_version == 2) { typedef struct dt_iop_watermark_params_v2_t { @@ -207,11 +240,10 @@ char filename[64]; } dt_iop_watermark_params_v2_t; - dt_iop_watermark_params_v2_t *o = (dt_iop_watermark_params_v2_t *)old_params; - dt_iop_watermark_params_t *n = (dt_iop_watermark_params_t *)new_params; - dt_iop_watermark_params_t *d = (dt_iop_watermark_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + const dt_iop_watermark_params_v2_t *o = (dt_iop_watermark_params_v2_t *)old_params; + dt_iop_watermark_params_v6_t *n = + (dt_iop_watermark_params_v6_t *) + malloc(sizeof(dt_iop_watermark_params_v6_t)); n->opacity = o->opacity; n->scale = o->scale; @@ -224,9 +256,13 @@ g_strlcpy(n->text, "", sizeof(n->text)); g_strlcpy(n->font, "DejaVu Sans 10", sizeof(n->font)); n->color[0] = n->color[1] = n->color[2] = 0; + + *new_params = n; + *new_params_size = sizeof(dt_iop_watermark_params_v6_t); + *new_version = 6; return 0; } - else if(old_version == 3 && new_version == 6) + else if(old_version == 3) { typedef struct dt_iop_watermark_params_v3_t { @@ -246,11 +282,10 @@ char filename[64]; } dt_iop_watermark_params_v3_t; - dt_iop_watermark_params_v3_t *o = (dt_iop_watermark_params_v3_t *)old_params; - dt_iop_watermark_params_t *n = (dt_iop_watermark_params_t *)new_params; - dt_iop_watermark_params_t *d = (dt_iop_watermark_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + const dt_iop_watermark_params_v3_t *o = (dt_iop_watermark_params_v3_t *)old_params; + dt_iop_watermark_params_v6_t *n = + (dt_iop_watermark_params_v6_t *) + malloc(sizeof(dt_iop_watermark_params_v6_t)); n->opacity = o->opacity; n->scale = o->scale; @@ -264,9 +299,13 @@ g_strlcpy(n->text, "", sizeof(n->text)); g_strlcpy(n->font, "DejaVu Sans 10", sizeof(n->font)); n->color[0] = n->color[1] = n->color[2] = 0; + + *new_params = n; + *new_params_size = sizeof(dt_iop_watermark_params_v6_t); + *new_version = 6; return 0; } - else if(old_version == 4 && new_version == 6) + else if(old_version == 4) { typedef struct dt_iop_watermark_params_v4_t { @@ -292,11 +331,10 @@ char font[64]; } dt_iop_watermark_params_v4_t; - dt_iop_watermark_params_v4_t *o = (dt_iop_watermark_params_v4_t *)old_params; - dt_iop_watermark_params_t *n = (dt_iop_watermark_params_t *)new_params; - dt_iop_watermark_params_t *d = (dt_iop_watermark_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + const dt_iop_watermark_params_v4_t *o = (dt_iop_watermark_params_v4_t *)old_params; + dt_iop_watermark_params_v6_t *n = + (dt_iop_watermark_params_v6_t *) + malloc(sizeof(dt_iop_watermark_params_v6_t)); n->opacity = o->opacity; n->scale = o->scale; @@ -312,9 +350,13 @@ n->color[0] = o->color[0]; n->color[1] = o->color[1]; n->color[2] = o->color[2]; + + *new_params = n; + *new_params_size = sizeof(dt_iop_watermark_params_v6_t); + *new_version = 6; return 0; } - else if(old_version == 5 && new_version == 6) + else if(old_version == 5) { typedef struct dt_iop_watermark_params_v5_t { @@ -340,11 +382,10 @@ char font[64]; } dt_iop_watermark_params_v5_t; - dt_iop_watermark_params_v5_t *o = (dt_iop_watermark_params_v5_t *)old_params; - dt_iop_watermark_params_t *n = (dt_iop_watermark_params_t *)new_params; - dt_iop_watermark_params_t *d = (dt_iop_watermark_params_t *)self->default_params; - - *n = *d; // start with a fresh copy of default parameters + const dt_iop_watermark_params_v5_t *o = (dt_iop_watermark_params_v5_t *)old_params; + dt_iop_watermark_params_v6_t *n = + (dt_iop_watermark_params_v6_t *) + malloc(sizeof(dt_iop_watermark_params_v6_t)); n->opacity = o->opacity; n->scale = o->scale; @@ -360,6 +401,10 @@ n->color[0] = o->color[0]; n->color[1] = o->color[1]; n->color[2] = o->color[2]; + + *new_params = n; + *new_params_size = sizeof(dt_iop_watermark_params_v6_t); + *new_version = 6; return 0; } return 1; @@ -395,7 +440,9 @@ return IOP_TAG_DECORATION; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_RGB; } @@ -971,7 +1018,8 @@ dt_dev_add_history_item(darktable.develop, self, TRUE); } -void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece) +void color_picker_apply(dt_iop_module_t *self, GtkWidget *picker, + dt_dev_pixelpipe_t *pipe) { dt_iop_watermark_gui_data_t *g = (dt_iop_watermark_gui_data_t *)self->gui_data; dt_iop_watermark_params_t *p = (dt_iop_watermark_params_t *)self->params; @@ -1327,20 +1375,20 @@ // legacy scale on drop-down g->scale_base = dt_bauhaus_combobox_from_params(self, "scale_base"); - gtk_widget_set_tooltip_text(g->scale_base, _("scaling is done relative to this object\n" - "• image: fits marker into whole image\n" - "• larger border: fits larger marker border to larger image border\n" - "• smaller border: fits larger marker border to smaller image border\n" - "• height: fits marker height to image height, e.g. suitable for texts\n" - "• advanced options: activates two additional drop-down menus")); + gtk_widget_set_tooltip_text(g->scale_base, _("choose how to scale the watermark\n" + "• image: scale watermark relative to whole image\n" + "• larger border: scale larger watermark border relative to larger image border\n" + "• smaller border: scale larger watermark border relative to smaller image border\n" + "• height: scale watermark height to image height\n" + "• advanced options: choose watermark and image dimensions independently")); // scale image reference g->scale_img = dt_bauhaus_combobox_from_params(self, "scale_img"); - gtk_widget_set_tooltip_text(g->scale_img, _("reference to which the marker should be scaled to")); + gtk_widget_set_tooltip_text(g->scale_img, _("reference image dimension against which to scale the watermark")); // scale marker reference g->scale_svg = dt_bauhaus_combobox_from_params(self, "scale_svg"); - gtk_widget_set_tooltip_text(g->scale_svg, _("length of the marker which is used as scaling reference")); + gtk_widget_set_tooltip_text(g->scale_svg, _("watermark dimension to scale")); // Create the 3x3 gtk table toggle button table... GtkWidget *bat = gtk_grid_new(); diff -Nru darktable-4.4.2/src/iop/zonesystem.c darktable-4.6.1/src/iop/zonesystem.c --- darktable-4.4.2/src/iop/zonesystem.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/iop/zonesystem.c 2024-02-16 17:31:09.000000000 +0000 @@ -127,7 +127,9 @@ return IOP_GROUP_TONE | IOP_GROUP_GRADING; } -int default_colorspace(dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece) +dt_iop_colorspace_type_t default_colorspace(dt_iop_module_t *self, + dt_dev_pixelpipe_t *pipe, + dt_dev_pixelpipe_iop_t *piece) { return IOP_CS_LAB; } @@ -352,16 +354,10 @@ err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_zonesystem, width, height, CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), CLARG(size), CLARG(dev_zmo), CLARG(dev_zms)); - if(err != CL_SUCCESS) goto error; - dt_opencl_release_mem_object(dev_zmo); - dt_opencl_release_mem_object(dev_zms); - return TRUE; - error: dt_opencl_release_mem_object(dev_zmo); dt_opencl_release_mem_object(dev_zms); - dt_print(DT_DEBUG_OPENCL, "[opencl_zonesystem] couldn't enqueue kernel! %s\n", cl_errstr(err)); - return FALSE; + return err; } #endif @@ -686,7 +682,7 @@ if(dt_gui_ignore_scroll(event)) return FALSE; int delta_y; - if(dt_gui_get_scroll_unit_deltas(event, NULL, &delta_y)) + if(dt_gui_get_scroll_unit_delta(event, &delta_y)) { p->size = CLAMP(p->size - delta_y, 4, MAX_ZONE_SYSTEM_SIZE); p->zone[cs] = -1; diff -Nru darktable-4.4.2/src/libs/CMakeLists.txt darktable-4.6.1/src/libs/CMakeLists.txt --- darktable-4.4.2/src/libs/CMakeLists.txt 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/CMakeLists.txt 2024-02-16 17:31:09.000000000 +0000 @@ -5,20 +5,6 @@ add_definitions(-include common/module_api.h) add_definitions(-include libs/lib_api.h) -add_custom_command( - DEPENDS ${CMAKE_SOURCE_DIR}/tools/authors_h.sh ${CMAKE_SOURCE_DIR}/AUTHORS - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/tools/darktable_authors.h - COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/tools/ - COMMAND bash ${CMAKE_SOURCE_DIR}/tools/authors_h.sh ${CMAKE_SOURCE_DIR}/AUTHORS ${CMAKE_CURRENT_BINARY_DIR}/tools/darktable_authors.h - COMMENT "Generating authors.h for about dialog." -) - -add_custom_target( - generate_authors_h ALL - DEPENDS ${CMAKE_SOURCE_DIR}/tools/authors_h.sh ${CMAKE_SOURCE_DIR}/AUTHORS ${CMAKE_CURRENT_BINARY_DIR}/tools/darktable_authors.h - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} -) - # The modules set(MODULES import export copy_history styles tagging image select collect recentcollect filtering metadata metadata_view navigation histogram history snapshots modulegroups backgroundjobs colorpicker masks session duplicate ioporder) @@ -70,7 +56,6 @@ add_library(viewswitcher MODULE "tools/viewswitcher.c") add_library(darktable_label MODULE "tools/darktable.c") -add_dependencies(darktable_label generate_authors_h) add_library(colorlabels MODULE "tools/colorlabels.c") add_library(ratings MODULE "tools/ratings.c") diff -Nru darktable-4.4.2/src/libs/collect.c darktable-4.6.1/src/libs/collect.c --- darktable-4.4.2/src/libs/collect.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/collect.c 2024-02-16 17:31:09.000000000 +0000 @@ -135,15 +135,28 @@ } _range_t; static void _lib_collect_gui_update(dt_lib_module_t *self); + static void _lib_folders_update_collection(const gchar *filmroll); + static void entry_changed(GtkEntry *entry, dt_lib_collect_rule_t *dr); -static void collection_updated(gpointer instance, dt_collection_change_t query_change, - dt_collection_properties_t changed_property, gpointer imgs, int next, + +static void collection_updated(gpointer instance, + dt_collection_change_t query_change, + dt_collection_properties_t changed_property, + gpointer imgs, + int next, gpointer self); -static void row_activated_with_event(GtkTreeView *view, GtkTreePath *path, GtkTreeViewColumn *col, - GdkEventButton *event, dt_lib_collect_t *d); -static int is_time_property(int property); + +static void row_activated_with_event(GtkTreeView *view, + GtkTreePath *path, + GtkTreeViewColumn *col, + GdkEventButton *event, + dt_lib_collect_t *d); + +static int _is_time_property(const int property); + static void _populate_collect_combo(GtkWidget *w); + int last_state = 0; const char *name(dt_lib_module_t *self) @@ -305,8 +318,6 @@ { g_strlcpy(p->rule[i].string, string, PARAM_STRING_SIZE); } - - // fprintf(stderr,"[%i] %d,%d,%s\n",i, p->rule[i].item, p->rule[i].mode, p->rule[i].string); } p->rules = active + 1; @@ -323,7 +334,9 @@ return p; } -int set_params(dt_lib_module_t *self, const void *params, int size) +int set_params(dt_lib_module_t *self, + const void *params, + const int size) { /* update conf settings from params */ dt_lib_collect_params_t *p = (dt_lib_collect_params_t *)params; @@ -344,7 +357,8 @@ snprintf(confname, sizeof(confname), "plugins/lighttable/collect/string%1u", i); dt_conf_set_string(confname, p->rule[i].string); - /* if one of the rules is a rating filter, the view rating filter will be reset to all */ + /* if one of the rules is a rating filter, the view rating filter + * will be reset to all */ if(p->rule[i].item == DT_COLLECTION_PROP_RATING) { reset_view_filter = TRUE; @@ -367,7 +381,9 @@ _lib_collect_gui_update(self); /* update view */ - dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_NEW_QUERY, DT_COLLECTION_PROP_UNDEF, NULL); + dt_collection_update_query(darktable.collection, + DT_COLLECTION_CHANGE_NEW_QUERY, + DT_COLLECTION_PROP_UNDEF, NULL); return 0; } @@ -382,7 +398,8 @@ return DT_UI_CONTAINER_PANEL_LEFT_CENTER; } -static void view_popup_menu_onSearchFilmroll(GtkWidget *menuitem, gpointer userdata) +static void view_popup_menu_onSearchFilmroll(GtkWidget *menuitem, + gpointer userdata) { GtkTreeView *treeview = GTK_TREE_VIEW(userdata); GtkWidget *win = dt_ui_main_window(darktable.gui->ui); @@ -493,7 +510,8 @@ g_free(new_path); } -static void view_popup_menu_onRemove(GtkWidget *menuitem, gpointer userdata) +static void view_popup_menu_onRemove(GtkWidget *menuitem, + gpointer userdata) { GtkTreeView *treeview = GTK_TREE_VIEW(userdata); @@ -512,31 +530,37 @@ gtk_tree_model_get(model, &iter, DT_LIB_COLLECT_COL_PATH, &filmroll_path, -1); /* Clean selected images, and add to the table those which are going to be deleted */ - DT_DEBUG_SQLITE3_EXEC(dt_database_get(darktable.db), "DELETE FROM main.selected_images", NULL, NULL, NULL); + DT_DEBUG_SQLITE3_EXEC(dt_database_get(darktable.db), + "DELETE FROM main.selected_images", NULL, NULL, NULL); // clang-format off - fullq = g_strdup_printf("INSERT INTO main.selected_images" - " SELECT id" - " FROM main.images" - " WHERE film_id IN (SELECT id FROM main.film_rolls WHERE folder LIKE '%s%%')", - filmroll_path); + fullq = g_strdup_printf + ("INSERT INTO main.selected_images" + " SELECT id" + " FROM main.images" + " WHERE film_id IN (SELECT id FROM main.film_rolls WHERE folder LIKE '%s%%')", + filmroll_path); // clang-format on + DT_DEBUG_SQLITE3_EXEC(dt_database_get(darktable.db), fullq, NULL, NULL, NULL); g_free(filmroll_path); if(dt_control_remove_images()) { - gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(model), &model_iter, &iter); + gtk_tree_model_filter_convert_iter_to_child_iter + (GTK_TREE_MODEL_FILTER(model), &model_iter, &iter); if(gtk_tree_model_get_flags(model) == GTK_TREE_MODEL_LIST_ONLY) { - gtk_list_store_remove(GTK_LIST_STORE(gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(model))), - &model_iter); + gtk_list_store_remove + (GTK_LIST_STORE(gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(model))), + &model_iter); } else { - gtk_tree_store_remove(GTK_TREE_STORE(gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(model))), - &model_iter); + gtk_tree_store_remove + (GTK_TREE_STORE(gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(model))), + &model_iter); } } @@ -544,30 +568,37 @@ } } -static void view_popup_menu(GtkWidget *treeview, GdkEventButton *event, dt_lib_collect_t *d) +static void view_popup_menu(GtkWidget *treeview, + GdkEventButton *event, + dt_lib_collect_t *d) { GtkWidget *menu, *menuitem; menu = gtk_menu_new(); menuitem = gtk_menu_item_new_with_label(_("search filmroll...")); - g_signal_connect(menuitem, "activate", (GCallback)view_popup_menu_onSearchFilmroll, treeview); + g_signal_connect(menuitem, "activate", + (GCallback)view_popup_menu_onSearchFilmroll, treeview); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); menuitem = gtk_menu_item_new_with_label(_("remove...")); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); - g_signal_connect(menuitem, "activate", (GCallback)view_popup_menu_onRemove, treeview); + g_signal_connect(menuitem, "activate", + (GCallback)view_popup_menu_onRemove, treeview); gtk_widget_show_all(GTK_WIDGET(menu)); gtk_menu_popup_at_pointer(GTK_MENU(menu), (GdkEvent *)event); } -static gboolean view_onButtonPressed(GtkWidget *treeview, GdkEventButton *event, dt_lib_collect_t *d) +static gboolean view_onButtonPressed(GtkWidget *treeview, + GdkEventButton *event, + dt_lib_collect_t *d) { /* Get tree path for row that was clicked */ GtkTreePath *path = NULL; - const gboolean get_path = gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(treeview), (gint)event->x, (gint)event->y, + const gboolean get_path = gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(treeview), + (gint)event->x, (gint)event->y, &path, NULL, NULL, NULL); if(event->type == GDK_DOUBLE_BUTTON_PRESS || d->singleclick) @@ -586,10 +617,13 @@ GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); if(get_path && dt_modifier_is(event->state, GDK_SHIFT_MASK) && gtk_tree_selection_count_selected_rows(selection) > 0 - && (d->view_rule == DT_COLLECTION_PROP_DAY || is_time_property(d->view_rule) - || d->view_rule == DT_COLLECTION_PROP_APERTURE || d->view_rule == DT_COLLECTION_PROP_FOCAL_LENGTH - || d->view_rule == DT_COLLECTION_PROP_ISO || d->view_rule == DT_COLLECTION_PROP_EXPOSURE - || d->view_rule == DT_COLLECTION_PROP_ASPECT_RATIO || d->view_rule == DT_COLLECTION_PROP_RATING)) + && (d->view_rule == DT_COLLECTION_PROP_DAY || _is_time_property(d->view_rule) + || d->view_rule == DT_COLLECTION_PROP_APERTURE + || d->view_rule == DT_COLLECTION_PROP_FOCAL_LENGTH + || d->view_rule == DT_COLLECTION_PROP_ISO + || d->view_rule == DT_COLLECTION_PROP_EXPOSURE + || d->view_rule == DT_COLLECTION_PROP_ASPECT_RATIO + || d->view_rule == DT_COLLECTION_PROP_RATING)) { // range selection GList *sels = gtk_tree_selection_get_selected_rows(selection, NULL); @@ -614,9 +648,11 @@ } // case of a context-menu (folder/filmroll) - if(((d->view_rule == DT_COLLECTION_PROP_FOLDERS) || (d->view_rule == DT_COLLECTION_PROP_FILMROLL)) + if(((d->view_rule == DT_COLLECTION_PROP_FOLDERS) + || (d->view_rule == DT_COLLECTION_PROP_FILMROLL)) && (event->type == GDK_BUTTON_PRESS && event->button == 3) - && !(dt_modifier_is(event->state, GDK_SHIFT_MASK) || dt_modifier_is(event->state, GDK_CONTROL_MASK))) + && !(dt_modifier_is(event->state, GDK_SHIFT_MASK) + || dt_modifier_is(event->state, GDK_CONTROL_MASK))) { row_activated_with_event(GTK_TREE_VIEW(treeview), path, NULL, event, d); view_popup_menu(treeview, event, d); @@ -629,7 +665,8 @@ if((!d->singleclick && event->type == GDK_2BUTTON_PRESS && event->button == 1) || (d->singleclick && event->type == GDK_BUTTON_PRESS && event->button == 1) || (!d->singleclick && event->type == GDK_BUTTON_PRESS && event->button == 1 - && (dt_modifier_is(event->state, GDK_SHIFT_MASK) || dt_modifier_is(event->state, GDK_CONTROL_MASK)))) + && (dt_modifier_is(event->state, GDK_SHIFT_MASK) + || dt_modifier_is(event->state, GDK_CONTROL_MASK)))) { row_activated_with_event(GTK_TREE_VIEW(treeview), path, NULL, event, d); @@ -655,11 +692,15 @@ static dt_lib_collect_t *get_collect(dt_lib_collect_rule_t *r) { - dt_lib_collect_t *d = (dt_lib_collect_t *)(((char *)r) - r->num * sizeof(dt_lib_collect_rule_t)); + dt_lib_collect_t *d = + (dt_lib_collect_t *)(((char *)r) - r->num * sizeof(dt_lib_collect_rule_t)); return d; } -static gboolean list_select(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) +static gboolean list_select(GtkTreeModel *model, + GtkTreePath *path, + GtkTreeIter *iter, + gpointer data) { dt_lib_collect_rule_t *dr = (dt_lib_collect_rule_t *)data; dt_lib_collect_t *d = get_collect(dr); @@ -683,7 +724,10 @@ return FALSE; } -static gboolean range_select(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) +static gboolean range_select(GtkTreeModel *model, + GtkTreePath *path, + GtkTreeIter *iter, + gpointer data) { _range_t *range = (_range_t *)data; gchar *str = NULL; @@ -718,7 +762,10 @@ return FALSE; } -static gboolean _datetime_range_select(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) +static gboolean _datetime_range_select(GtkTreeModel *model, + GtkTreePath *path, + GtkTreeIter *iter, + gpointer data) { dt_lib_collect_rule_t *dr = (dt_lib_collect_rule_t *)data; gchar *str; @@ -726,7 +773,9 @@ gtk_tree_model_get(model, iter, DT_LIB_COLLECT_COL_PATH, &str, -1); const GTimeSpan nb = dt_datetime_exif_to_gtimespan(str); g_free(str); - GTimeSpan target = dr->datetime_range.path1 == NULL ? dr->datetime_range.nb1 : dr->datetime_range.nb2; + GTimeSpan target = dr->datetime_range.path1 == NULL + ? dr->datetime_range.nb1 + : dr->datetime_range.nb2; if(nb >= target) { @@ -745,7 +794,8 @@ return GPOINTER_TO_UINT(dt_bauhaus_combobox_get_data(combo)) - 1; } -gboolean _combo_set_active_collection(GtkWidget *combo, const int property) +gboolean _combo_set_active_collection(GtkWidget *combo, + const int property) { const gboolean found = dt_bauhaus_combobox_set_from_value(combo, property + 1); // make sure we have a valid collection @@ -753,7 +803,10 @@ return found; } -static gboolean tree_expand(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) +static gboolean tree_expand(GtkTreeModel *model, + GtkTreePath *path, + GtkTreeIter *iter, + gpointer data) { dt_lib_collect_rule_t *dr = (dt_lib_collect_rule_t *)data; gchar *str = NULL; @@ -805,13 +858,18 @@ return expanded; // if we expanded the path, we can stop iteration (saves half on average) } -static gboolean list_match_string(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) +static gboolean list_match_string(GtkTreeModel *model, + GtkTreePath *path, + GtkTreeIter *iter, + gpointer data) { dt_lib_collect_rule_t *dr = (dt_lib_collect_rule_t *)data; gchar *str = NULL; gboolean visible = FALSE; gboolean was_visible; - gtk_tree_model_get(model, iter, DT_LIB_COLLECT_COL_PATH, &str, DT_LIB_COLLECT_COL_VISIBLE, &was_visible, -1); + gtk_tree_model_get(model, iter, + DT_LIB_COLLECT_COL_PATH, &str, + DT_LIB_COLLECT_COL_VISIBLE, &was_visible, -1); gchar *haystack = g_utf8_strdown(str, -1); const gchar *needle = dr->searchstring; @@ -881,6 +939,7 @@ { if(needle[0] == '%') needle++; + if(!needle[0]) { // empty search string matches all @@ -901,17 +960,23 @@ g_free(str); if(visible != was_visible) - gtk_list_store_set(GTK_LIST_STORE(model), iter, DT_LIB_COLLECT_COL_VISIBLE, visible, -1); + gtk_list_store_set(GTK_LIST_STORE(model), iter, + DT_LIB_COLLECT_COL_VISIBLE, visible, -1); return FALSE; } -static gboolean tree_match_string(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) +static gboolean tree_match_string(GtkTreeModel *model, + GtkTreePath *path, + GtkTreeIter *iter, + gpointer data) { dt_lib_collect_rule_t *dr = (dt_lib_collect_rule_t *)data; gchar *str = NULL; gboolean cur_state, visible; - gtk_tree_model_get(model, iter, DT_LIB_COLLECT_COL_PATH, &str, DT_LIB_COLLECT_COL_VISIBLE, &cur_state, -1); + gtk_tree_model_get(model, iter, + DT_LIB_COLLECT_COL_PATH, &str, + DT_LIB_COLLECT_COL_VISIBLE, &cur_state, -1); if(dr->typing == FALSE && !cur_state) { @@ -921,13 +986,14 @@ { gchar *haystack = dr->sensitive ? g_strdup(str) : g_utf8_strdown(str, -1); const int property = _combo_get_active_collection(dr->combo); - if(is_time_property(property) || property == DT_COLLECTION_PROP_DAY) + if(_is_time_property(property) || property == DT_COLLECTION_PROP_DAY) { // handle of numeric value, which can have some operator before the text visible = TRUE; if(dr->datetime_range.nb1) { const GTimeSpan nb = dt_datetime_exif_to_gtimespan(haystack); + if(!dr->datetime_range.operator) visible = (nb >= dr->datetime_range.nb1 && nb <= dr->datetime_range.nb2); else if(strcmp(dr->datetime_range.operator, ">") == 0) @@ -959,7 +1025,10 @@ return FALSE; } -static gboolean tree_reveal_func(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) +static gboolean tree_reveal_func(GtkTreeModel *model, + GtkTreePath *path, + GtkTreeIter *iter, + gpointer data) { gboolean state; GtkTreeIter parent, child = *iter; @@ -970,7 +1039,8 @@ while(gtk_tree_model_iter_parent(model, &parent, &child)) { gtk_tree_model_get(model, &parent, DT_LIB_COLLECT_COL_VISIBLE, &state, -1); - gtk_tree_store_set(GTK_TREE_STORE(model), &parent, DT_LIB_COLLECT_COL_VISIBLE, TRUE, -1); + gtk_tree_store_set(GTK_TREE_STORE(model), &parent, + DT_LIB_COLLECT_COL_VISIBLE, TRUE, -1); child = parent; } @@ -995,7 +1065,8 @@ gchar *complete_query = g_strdup_printf( "DELETE FROM main.selected_images WHERE imgid NOT IN (%s)", cquery); - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), complete_query, -1, &stmt, NULL); + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + complete_query, -1, &stmt, NULL); DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, 0); DT_DEBUG_SQLITE3_BIND_INT(stmt, 2, -1); sqlite3_step(stmt); @@ -1009,7 +1080,9 @@ if(!darktable.collection->clone) { dt_collection_memory_update(); - DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_COLLECTION_CHANGED, DT_COLLECTION_CHANGE_NEW_QUERY, + DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, + DT_SIGNAL_COLLECTION_CHANGED, + DT_COLLECTION_CHANGE_NEW_QUERY, DT_COLLECTION_PROP_UNDEF, (GList *)NULL, -1); } } @@ -1047,8 +1120,9 @@ int id = -1; // Check if this path also matches a filmroll gtk_tree_model_get(model, &iter, DT_LIB_COLLECT_COL_PATH, &pth, -1); - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "SELECT id FROM main.film_rolls WHERE folder LIKE ?1", -1, &stmt, NULL); + DT_DEBUG_SQLITE3_PREPARE_V2 + (dt_database_get(darktable.db), + "SELECT id FROM main.film_rolls WHERE folder LIKE ?1", -1, &stmt, NULL); DT_DEBUG_SQLITE3_BIND_TEXT(stmt, 1, pth, -1, SQLITE_TRANSIENT); if(sqlite3_step(stmt) == SQLITE_ROW) id = sqlite3_column_int(stmt, 0); sqlite3_finalize(stmt); @@ -1063,7 +1137,8 @@ break; } } - if(gtk_tree_model_iter_n_children(model, level > 0 ? &iter : NULL) != 1) break; + if(gtk_tree_model_iter_n_children(model, level > 0 ? &iter : NULL) != 1) + break; gtk_tree_model_iter_children(model, &child, level > 0 ? &iter : NULL); iter = child; @@ -1088,7 +1163,8 @@ filter = gtk_tree_model_filter_new(model, path); gtk_tree_path_free(path); - gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(filter), DT_LIB_COLLECT_COL_VISIBLE); + gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(filter), + DT_LIB_COLLECT_COL_VISIBLE); return filter; } @@ -1176,13 +1252,18 @@ } -void tree_count_show(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, +void tree_count_show(GtkTreeViewColumn *col, + GtkCellRenderer *renderer, + GtkTreeModel *model, + GtkTreeIter *iter, gpointer data) { gchar *name; guint count; - gtk_tree_model_get(model, iter, DT_LIB_COLLECT_COL_TEXT, &name, DT_LIB_COLLECT_COL_COUNT, &count, -1); + gtk_tree_model_get(model, iter, + DT_LIB_COLLECT_COL_TEXT, &name, + DT_LIB_COLLECT_COL_COUNT, &count, -1); if(!count) { g_object_set(renderer, "text", name, NULL); @@ -1197,9 +1278,13 @@ g_free(name); } -static void _expand_select_tree_path(GtkTreePath *path1, GtkTreePath *path2, dt_lib_collect_t *d) -{ - GtkTreePath *p1 = gtk_tree_model_filter_convert_child_path_to_path(GTK_TREE_MODEL_FILTER(d->treefilter), path1); +static void _expand_select_tree_path(GtkTreePath *path1, + GtkTreePath *path2, + dt_lib_collect_t *d) +{ + GtkTreePath *p1 = + gtk_tree_model_filter_convert_child_path_to_path(GTK_TREE_MODEL_FILTER(d->treefilter), + path1); GtkTreePath *p2 = path2 ? gtk_tree_model_filter_convert_child_path_to_path(GTK_TREE_MODEL_FILTER(d->treefilter), path2) : NULL; GtkTreePath *p3 = NULL; GtkTreeIter iter; @@ -1223,12 +1308,14 @@ } static const char *UNCATEGORIZED_TAG = N_("uncategorized"); -static void tree_view(dt_lib_collect_rule_t *dr) + +static void _tree_view(dt_lib_collect_rule_t *dr) { // update related list dt_lib_collect_t *d = get_collect(dr); const int property = _combo_get_active_collection(dr->combo); char *format_separator = ""; + gboolean sorting_always_asc = TRUE; switch(property) { @@ -1246,15 +1333,19 @@ case DT_COLLECTION_PROP_EXPORT_TIMESTAMP: case DT_COLLECTION_PROP_PRINT_TIMESTAMP: format_separator = "%s:"; + sorting_always_asc = FALSE; break; } set_properties(dr); - GtkTreeModel *model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(d->treefilter)); - // since we'll be inserting elements in the same order that we want them displayed, there is no need for the - // overhead of having the tree view sort itself - gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model), GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, + GtkTreeModel *model = + gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(d->treefilter)); + // since we'll be inserting elements in the same order that we want + // them displayed, there is no need for the overhead of having the + // tree view sort itself + gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model), + GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, GTK_SORT_ASCENDING); if(d->view_rule != property) @@ -1272,22 +1363,24 @@ /* query construction */ gchar *where_ext = dt_collection_get_extended_where(darktable.collection, dr->num); - gchar *query = 0; + gchar *query = NULL; switch(property) { case DT_COLLECTION_PROP_FOLDERS: // clang-format off - query = g_strdup_printf("SELECT folder, film_rolls_id, COUNT(*) AS count, status" - " FROM main.images AS mi" - " JOIN (SELECT fr.id AS film_rolls_id, folder, status" - " FROM main.film_rolls AS fr" - " JOIN memory.film_folder AS ff" - " ON fr.id = ff.id)" - " ON film_id = film_rolls_id " - " WHERE %s" - " GROUP BY folder, film_rolls_id", where_ext); + query = g_strdup_printf + ("SELECT folder, film_rolls_id, COUNT(*) AS count, status" + " FROM main.images AS mi" + " JOIN (SELECT fr.id AS film_rolls_id, folder, status" + " FROM main.film_rolls AS fr" + " JOIN memory.film_folder AS ff" + " ON fr.id = ff.id)" + " ON film_id = film_rolls_id " + " WHERE %s" + " GROUP BY folder, film_rolls_id", where_ext); // clang-format on break; + case DT_COLLECTION_PROP_TAG: { const gboolean is_insensitive = @@ -1295,75 +1388,84 @@ if(is_insensitive) // clang-format off - query = g_strdup_printf("SELECT name, 1 AS tagid, SUM(count) AS count" - " FROM (SELECT tagid, COUNT(*) as count" - " FROM main.images AS mi" - " JOIN main.tagged_images" - " ON id = imgid " - " WHERE %s" - " GROUP BY tagid)" - " JOIN (SELECT lower(name) AS name, id AS tag_id FROM data.tags)" - " ON tagid = tag_id" - " GROUP BY name", where_ext); + query = g_strdup_printf + ("SELECT name, 1 AS tagid, SUM(count) AS count" + " FROM (SELECT tagid, COUNT(*) as count" + " FROM main.images AS mi" + " JOIN main.tagged_images" + " ON id = imgid " + " WHERE %s" + " GROUP BY tagid)" + " JOIN (SELECT lower(name) AS name, id AS tag_id FROM data.tags)" + " ON tagid = tag_id" + " GROUP BY name", where_ext); // clang-format on else // clang-format off - query = g_strdup_printf("SELECT name, tagid, count" - " FROM (SELECT tagid, COUNT(*) AS count" - " FROM main.images AS mi" - " JOIN main.tagged_images" - " ON id = imgid " - " WHERE %s" - " GROUP BY tagid)" - " JOIN (SELECT name, id AS tag_id FROM data.tags)" - " ON tagid = tag_id" - , where_ext); + query = g_strdup_printf + ("SELECT name, tagid, count" + " FROM (SELECT tagid, COUNT(*) AS count" + " FROM main.images AS mi" + " JOIN main.tagged_images" + " ON id = imgid " + " WHERE %s" + " GROUP BY tagid)" + " JOIN (SELECT name, id AS tag_id FROM data.tags)" + " ON tagid = tag_id" + , where_ext); // clang-format on // clang-format off - query = dt_util_dstrcat(query, " UNION ALL " - "SELECT '%s' AS name, 0 as id, COUNT(*) AS count " - "FROM main.images AS mi " - "WHERE mi.id NOT IN" - " (SELECT DISTINCT imgid FROM main.tagged_images AS ti" - " WHERE ti.tagid NOT IN memory.darktable_tags)", - _("not tagged")); + query = dt_util_dstrcat + (query, " UNION ALL " + "SELECT '%s' AS name, 0 as id, COUNT(*) AS count " + "FROM main.images AS mi " + "WHERE mi.id NOT IN" + " (SELECT DISTINCT imgid FROM main.tagged_images AS ti" + " WHERE ti.tagid NOT IN memory.darktable_tags)", + _("not tagged")); // clang-format on } break; + case DT_COLLECTION_PROP_GEOTAGGING: // clang-format off - query = g_strdup_printf("SELECT " - " CASE WHEN mi.longitude IS NULL" - " OR mi.latitude IS null THEN \'%s\'" - " ELSE CASE WHEN ta.imgid IS NULL THEN \'%s\'" - " ELSE \'%s\' || ta.tagname" - " END" - " END AS name," - " ta.tagid AS tag_id, COUNT(*) AS count" - " FROM main.images AS mi" - " LEFT JOIN (SELECT imgid, t.id AS tagid, SUBSTR(t.name, %d) AS tagname" - " FROM main.tagged_images AS ti" - " JOIN data.tags AS t" - " ON ti.tagid = t.id" - " JOIN data.locations AS l" - " ON l.tagid = t.id" - " ) AS ta ON ta.imgid = mi.id" - " WHERE %s" - " GROUP BY name, tag_id", - _("not tagged"), _("tagged"), _("tagged"), - (int)strlen(dt_map_location_data_tag_root()) + 1, where_ext); + query = g_strdup_printf + ("SELECT " + " CASE WHEN mi.longitude IS NULL" + " OR mi.latitude IS null THEN \'%s\'" + " ELSE CASE WHEN ta.imgid IS NULL THEN \'%s\'" + " ELSE \'%s\' || ta.tagname" + " END" + " END AS name," + " ta.tagid AS tag_id, COUNT(*) AS count" + " FROM main.images AS mi" + " LEFT JOIN (SELECT imgid, t.id AS tagid, SUBSTR(t.name, %d) AS tagname" + " FROM main.tagged_images AS ti" + " JOIN data.tags AS t" + " ON ti.tagid = t.id" + " JOIN data.locations AS l" + " ON l.tagid = t.id" + " ) AS ta ON ta.imgid = mi.id" + " WHERE %s" + " GROUP BY name, tag_id", + _("not tagged"), _("tagged"), _("tagged"), + (int)strlen(dt_map_location_data_tag_root()) + 1, where_ext); // clang-format on break; + case DT_COLLECTION_PROP_DAY: // clang-format off - query = g_strdup_printf("SELECT (datetime_taken / 86400000000) * 86400000000 AS date, 1, COUNT(*) AS count" - " FROM main.images AS mi" - " WHERE datetime_taken IS NOT NULL AND datetime_taken <> 0" - " AND %s" - " GROUP BY date", where_ext); + query = g_strdup_printf + ("SELECT (datetime_taken / 86400000000) * 86400000000 AS date, 1," + " COUNT(*) AS count" + " FROM main.images AS mi" + " WHERE datetime_taken IS NOT NULL AND datetime_taken <> 0" + " AND %s" + " GROUP BY date", where_ext); // clang-format on break; + case DT_COLLECTION_PROP_TIME: case DT_COLLECTION_PROP_IMPORT_TIMESTAMP: case DT_COLLECTION_PROP_CHANGE_TIMESTAMP: @@ -1375,11 +1477,21 @@ switch(local_property) { - case DT_COLLECTION_PROP_TIME: colname = "datetime_taken" ; break ; - case DT_COLLECTION_PROP_IMPORT_TIMESTAMP: colname = "import_timestamp" ; break ; - case DT_COLLECTION_PROP_CHANGE_TIMESTAMP: colname = "change_timestamp" ; break ; - case DT_COLLECTION_PROP_EXPORT_TIMESTAMP: colname = "export_timestamp" ; break ; - case DT_COLLECTION_PROP_PRINT_TIMESTAMP: colname = "print_timestamp" ; break ; + case DT_COLLECTION_PROP_TIME: + colname = "datetime_taken"; + break; + case DT_COLLECTION_PROP_IMPORT_TIMESTAMP: + colname = "import_timestamp"; + break; + case DT_COLLECTION_PROP_CHANGE_TIMESTAMP: + colname = "change_timestamp"; + break; + case DT_COLLECTION_PROP_EXPORT_TIMESTAMP: + colname = "export_timestamp"; + break; + case DT_COLLECTION_PROP_PRINT_TIMESTAMP: + colname = "print_timestamp"; + break; } // clang-format off query = g_strdup_printf("SELECT %s AS date, 1, COUNT(*) AS count" @@ -1407,7 +1519,7 @@ while(sqlite3_step(stmt) == SQLITE_ROW) { char *name; - if(is_time_property(property) || property == DT_COLLECTION_PROP_DAY) + if(_is_time_property(property) || property == DT_COLLECTION_PROP_DAY) { char sdt[DT_DATETIME_EXIF_LENGTH] = {0}; dt_datetime_gtimespan_to_exif(sdt, sizeof(sdt), sqlite3_column_int64(stmt, 0)); @@ -1439,20 +1551,24 @@ tuple->name = name; tuple->collate_key = collate_key; tuple->count = count; - tuple->status = property == DT_COLLECTION_PROP_FOLDERS ? sqlite3_column_int(stmt, 3) : -1; + tuple->status = property == DT_COLLECTION_PROP_FOLDERS + ? sqlite3_column_int(stmt, 3) + : -1; sorted_names = g_list_prepend(sorted_names, tuple); } sqlite3_finalize(stmt); g_free(query); + // this order should not be altered. the right feeding of the tree relies on it. sorted_names = g_list_sort(sorted_names, sort_folder_tag); const gboolean sort_descend = dt_conf_get_bool("plugins/collect/descending"); - if(!sort_descend) + if(sorting_always_asc || !sort_descend) sorted_names = g_list_reverse(sorted_names); - gboolean no_uncategorized = (property == DT_COLLECTION_PROP_TAG) - ? dt_conf_get_bool("plugins/lighttable/tagging/no_uncategorized") - : TRUE; + const gboolean no_uncategorized = + (property == DT_COLLECTION_PROP_TAG) + ? dt_conf_get_bool("plugins/lighttable/tagging/no_uncategorized") + : TRUE; for(GList *names = sorted_names; names; names = g_list_next(names)) { @@ -1466,7 +1582,10 @@ gboolean uncategorized_found = FALSE; if(!no_uncategorized && strchr(name, '|') == NULL) { - char *next_name = g_strdup(names->next ? ((name_key_tuple_t *)names->next->data)->name : ""); + char *next_name = g_strdup(names->next + ? ((name_key_tuple_t *)names->next->data)->name + : ""); + if(strlen(next_name) >= strlen(name) + 1 && next_name[strlen(name)] == '|') next_name[strlen(name)] = '\0'; @@ -1475,18 +1594,22 @@ /* add uncategorized root iter if not exists */ if(!uncategorized.stamp) { - gtk_tree_store_insert_with_values(GTK_TREE_STORE(model), &uncategorized, NULL, -1, - DT_LIB_COLLECT_COL_TEXT, _(UNCATEGORIZED_TAG), - DT_LIB_COLLECT_COL_PATH, "", DT_LIB_COLLECT_COL_VISIBLE, TRUE, - DT_LIB_COLLECT_COL_INDEX, index, -1); + gtk_tree_store_insert_with_values + (GTK_TREE_STORE(model), &uncategorized, NULL, -1, + DT_LIB_COLLECT_COL_TEXT, _(UNCATEGORIZED_TAG), + DT_LIB_COLLECT_COL_PATH, "", DT_LIB_COLLECT_COL_VISIBLE, TRUE, + DT_LIB_COLLECT_COL_INDEX, index, -1); index++; } /* adding an uncategorized tag */ - gtk_tree_store_insert_with_values(GTK_TREE_STORE(model), &temp, &uncategorized, 0, - DT_LIB_COLLECT_COL_TEXT, name, - DT_LIB_COLLECT_COL_PATH, name, DT_LIB_COLLECT_COL_VISIBLE, TRUE, - DT_LIB_COLLECT_COL_COUNT, count, DT_LIB_COLLECT_COL_INDEX, index, -1); + gtk_tree_store_insert_with_values + (GTK_TREE_STORE(model), &temp, &uncategorized, 0, + DT_LIB_COLLECT_COL_TEXT, name, + DT_LIB_COLLECT_COL_PATH, name, + DT_LIB_COLLECT_COL_VISIBLE, TRUE, + DT_LIB_COLLECT_COL_COUNT, count, + DT_LIB_COLLECT_COL_INDEX, index, -1); uncategorized_found = TRUE; index++; } @@ -1500,7 +1623,7 @@ tokens = split_path(name); else if(property == DT_COLLECTION_PROP_DAY) tokens = g_strsplit(name, ":", -1); - else if(is_time_property(property)) + else if(_is_time_property(property)) tokens = g_strsplit_set(name, ": ", 4); else tokens = g_strsplit(name, "|", -1); @@ -1542,27 +1665,31 @@ GtkTreeIter iter; pth = dt_util_dstrcat(pth, format_separator, *token); - if(is_time_property(property) && !*(token + 1)) pth[10] = ' '; + if(_is_time_property(property) && !*(token + 1)) pth[10] = ' '; gchar *pth2 = g_strdup(pth); pth2[strlen(pth2) - 1] = '\0'; - gtk_tree_store_insert_with_values(GTK_TREE_STORE(model), &iter, common_length > 0 ? &parent : NULL, 0, - DT_LIB_COLLECT_COL_TEXT, *token, - DT_LIB_COLLECT_COL_PATH, pth2, DT_LIB_COLLECT_COL_VISIBLE, TRUE, - DT_LIB_COLLECT_COL_COUNT, (*(token + 1)?0:count), - DT_LIB_COLLECT_COL_INDEX, index, - DT_LIB_COLLECT_COL_UNREACHABLE, (*(token + 1) ? 0 : !status), -1); + gtk_tree_store_insert_with_values + (GTK_TREE_STORE(model), &iter, common_length > 0 ? &parent : NULL, 0, + DT_LIB_COLLECT_COL_TEXT, *token, + DT_LIB_COLLECT_COL_PATH, pth2, DT_LIB_COLLECT_COL_VISIBLE, TRUE, + DT_LIB_COLLECT_COL_COUNT, (*(token + 1)?0:count), + DT_LIB_COLLECT_COL_INDEX, index, + DT_LIB_COLLECT_COL_UNREACHABLE, (*(token + 1) ? 0 : !status), -1); index++; // also add the item count to parents - if((property == DT_COLLECTION_PROP_DAY || is_time_property(property)) && !*(token + 1)) + if((property == DT_COLLECTION_PROP_DAY + || _is_time_property(property)) && !*(token + 1)) { guint parentcount; GtkTreeIter parent2, child = iter; while(gtk_tree_model_iter_parent(model, &parent2, &child)) { - gtk_tree_model_get(model, &parent2, DT_LIB_COLLECT_COL_COUNT, &parentcount, -1); - gtk_tree_store_set(GTK_TREE_STORE(model), &parent2, DT_LIB_COLLECT_COL_COUNT, count + parentcount, -1); + gtk_tree_model_get(model, &parent2, + DT_LIB_COLLECT_COL_COUNT, &parentcount, -1); + gtk_tree_store_set(GTK_TREE_STORE(model), &parent2, + DT_LIB_COLLECT_COL_COUNT, count + parentcount, -1); child = parent2; } } @@ -1589,7 +1716,7 @@ d->treefilter = _create_filtered_model(model, dr); GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(d->view)); - if(property == DT_COLLECTION_PROP_DAY || is_time_property(property)) + if(property == DT_COLLECTION_PROP_DAY || _is_time_property(property)) { gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE); } @@ -1612,7 +1739,7 @@ gtk_tree_view_collapse_all(d->view); // prepare datetime entry data - if(is_time_property(property) || property == DT_COLLECTION_PROP_DAY) + if(_is_time_property(property) || property == DT_COLLECTION_PROP_DAY) { gchar *number1, *number2; dt_collection_split_operator_datetime(gtk_entry_get_text(GTK_ENTRY(dr->text)), @@ -1627,9 +1754,12 @@ dr->sensitive = (property == DT_COLLECTION_PROP_TAG && dt_conf_is_equal("plugins/lighttable/tagging/case_sensitivity", "sensitive")); - gchar *needle = dr->sensitive ? g_strdup(gtk_entry_get_text(GTK_ENTRY(dr->text))) - : g_utf8_strdown(gtk_entry_get_text(GTK_ENTRY(dr->text)), -1); - if(g_str_has_suffix(needle, "%")) needle[strlen(needle) - 1] = '\0'; + gchar *needle = dr->sensitive + ? g_strdup(gtk_entry_get_text(GTK_ENTRY(dr->text))) + : g_utf8_strdown(gtk_entry_get_text(GTK_ENTRY(dr->text)), -1); + + if(g_str_has_suffix(needle, "%")) + needle[strlen(needle) - 1] = '\0'; dr->startwildcard = needle[0] == '%'; dr->searchstring = needle[0] == '%' ? &needle[1] : needle; dr->expanded_path = NULL; @@ -1640,7 +1770,7 @@ if(!needle[0]) {} // do nothing // select/expand items corresponding to entry - else if(property == DT_COLLECTION_PROP_DAY || is_time_property(property)) + else if(property == DT_COLLECTION_PROP_DAY || _is_time_property(property)) { if(strcmp(dr->datetime_range.operator, "[]") == 0) { @@ -1670,7 +1800,7 @@ g_free(needle); } -static void list_view(dt_lib_collect_rule_t *dr) +static void _list_view(dt_lib_collect_rule_t *dr) { // update related list dt_lib_collect_t *d = get_collect(dr); @@ -1678,7 +1808,8 @@ set_properties(dr); - GtkTreeModel *model = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(d->listfilter)); + GtkTreeModel *model = + gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(d->listfilter)); if(d->view_rule != property) { sqlite3_stmt *stmt; @@ -1695,35 +1826,16 @@ switch(property) { case DT_COLLECTION_PROP_CAMERA:; // camera - int index = 0; // clang-format off - gchar *makermodel_query = g_strdup_printf("SELECT maker, model, COUNT(*) AS count " - "FROM main.images AS mi WHERE %s GROUP BY maker, model", where_ext); + g_snprintf(query, sizeof(query), + "SELECT TRIM(cm.maker || ' ' || cm.model) AS camera," + " 1, COUNT(*) AS count" + " FROM main.images AS mi, main.cameras AS cm" + " WHERE mi.camera_id = cm.id" + " AND %s " + " GROUP BY LOWER(camera)" + " ORDER BY LOWER(camera)", where_ext); // clang-format on - - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - makermodel_query, - -1, &stmt, NULL); - - while(sqlite3_step(stmt) == SQLITE_ROW) - { - const char *exif_maker = (char *)sqlite3_column_text(stmt, 0); - const char *exif_model = (char *)sqlite3_column_text(stmt, 1); - const int count = sqlite3_column_int(stmt, 2); - - gchar *value = dt_collection_get_makermodel(exif_maker, exif_model); - - gtk_list_store_append(GTK_LIST_STORE(model), &iter); - gtk_list_store_set(GTK_LIST_STORE(model), &iter, DT_LIB_COLLECT_COL_TEXT, value, - DT_LIB_COLLECT_COL_ID, index, DT_LIB_COLLECT_COL_TOOLTIP, value, - DT_LIB_COLLECT_COL_PATH, value, DT_LIB_COLLECT_COL_VISIBLE, TRUE, - DT_LIB_COLLECT_COL_COUNT, count, - -1); - - g_free(value); - index++; - } - g_free(makermodel_query); break; case DT_COLLECTION_PROP_HISTORY: // History @@ -1735,13 +1847,19 @@ " WHEN auto_hash == current_hash THEN '%s'" " WHEN current_hash IS NOT NULL THEN '%s'" " ELSE '%s'" - " END as altered, 1, COUNT(*) AS count" + " END as altered, 1, COUNT(*) AS count," + " CASE" + " WHEN basic_hash == current_hash THEN 0" + " WHEN auto_hash == current_hash THEN 1" + " WHEN current_hash IS NOT NULL THEN 3" + " ELSE 2" + " END AS force_order" " FROM main.images AS mi" " LEFT JOIN (SELECT DISTINCT imgid, basic_hash, auto_hash, current_hash" " FROM main.history_hash) ON id = imgid" " WHERE %s" - " GROUP BY altered" - " ORDER BY altered ASC", + " GROUP BY force_order" + " ORDER BY force_order", _("basic"), _("auto applied"), _("altered"), _("basic"), where_ext); // clang-format on break; @@ -1752,11 +1870,18 @@ "SELECT CASE " " WHEN (flags & %d) THEN '%s'" " ELSE '%s'" - " END as lcp, 1, COUNT(*) AS count" + " END as lcp, 1, COUNT(*) AS count," + " CASE " + " WHEN (flags & %d) THEN 0" + " ELSE 1" + " END as force_order" " FROM main.images AS mi " " WHERE %s" - " GROUP BY lcp ORDER BY lcp ASC", - DT_IMAGE_LOCAL_COPY, _("copied locally"), _("not copied locally"), where_ext); + " GROUP BY force_order ORDER BY force_order", + DT_IMAGE_LOCAL_COPY, + _("copied locally"), + _("not copied locally"), + DT_IMAGE_LOCAL_COPY, where_ext); // clang-format on break; @@ -1778,7 +1903,7 @@ " WHEN 1 THEN '%s'" " WHEN 2 THEN '%s'" " WHEN 3 THEN '%s'" - " WHEN 4 THEN '%s' " + " WHEN 4 THEN '%s'" " ELSE ''" " END, color, COUNT(*) AS count" " FROM main.images AS mi" @@ -1787,7 +1912,7 @@ " ON id = color_labels_id " " WHERE %s" " GROUP BY color" - " ORDER BY color DESC", + " ORDER BY color ASC", _("red"), _("yellow"), _("green"), _("blue"), _("purple"), where_ext); // clang-format on break; @@ -1795,18 +1920,23 @@ case DT_COLLECTION_PROP_LENS: // lens // clang-format off g_snprintf(query, sizeof(query), - "SELECT lens, 1, COUNT(*) AS count" - " FROM main.images AS mi" - " WHERE %s" - " GROUP BY lens" - " ORDER BY lens", where_ext); + "SELECT CASE LOWER(TRIM(ln.name))" + " WHEN 'n/a' THEN ''" + " ELSE ln.name" + " END AS lens, 1, COUNT(*) AS count" + " FROM main.images AS mi, main.lens AS ln" + " WHERE mi.lens_id = ln.id" + " AND %s" + " GROUP BY LOWER(lens)" + " ORDER BY LOWER(lens)", where_ext); // clang-format on break; case DT_COLLECTION_PROP_FOCAL_LENGTH: // focal length // clang-format off g_snprintf(query, sizeof(query), - "SELECT CAST(focal_length AS INTEGER) AS focal_length, 1, COUNT(*) AS count" + "SELECT CAST(focal_length AS INTEGER) AS focal_length, 1," + " COUNT(*) AS count" " FROM main.images AS mi" " WHERE %s" " GROUP BY CAST(focal_length AS INTEGER)" @@ -1822,7 +1952,7 @@ " FROM main.images AS mi" " WHERE %s" " GROUP BY iso" - " ORDER BY iso", + " ORDER BY iso ASC", where_ext); // clang-format on break; @@ -1834,7 +1964,7 @@ " FROM main.images AS mi" " WHERE %s" " GROUP BY aperture" - " ORDER BY aperture", + " ORDER BY aperture ASC", where_ext); // clang-format on break; @@ -1845,7 +1975,7 @@ "SELECT CASE" " WHEN (exposure < 0.4) THEN '1/' || CAST(1/exposure + 0.9 AS INTEGER) " " ELSE ROUND(exposure,2) || '\"'" - " END as _exposure, 1, COUNT(*) AS count" + " END AS _exposure, 1, COUNT(*) AS count" " FROM main.images AS mi" " WHERE %s" " GROUP BY _exposure" @@ -1860,8 +1990,8 @@ "SELECT filename, 1, COUNT(*) AS count" " FROM main.images AS mi" " WHERE %s" - " GROUP BY filename" - " ORDER BY filename", where_ext); + " GROUP BY lower(filename)" + " ORDER BY lower(filename) ASC", where_ext); // clang-format on break; @@ -1871,11 +2001,15 @@ "SELECT CASE" " WHEN id = group_id THEN '%s'" " ELSE '%s'" - " END as group_leader, 1, COUNT(*) AS count" + " END as group_leader, 1, COUNT(*) AS count," + " CASE" + " WHEN id = group_id THEN '0'" + " ELSE '1'" + " END AS force_order" " FROM main.images AS mi" " WHERE %s" - " GROUP BY group_leader" - " ORDER BY group_leader ASC", + " GROUP BY force_order" + " ORDER BY force_order ASC", _("group leaders"), _("group followers"), where_ext); // clang-format on break; @@ -1885,13 +2019,15 @@ snprintf(query, sizeof(query), "SELECT m.name AS module_name, 1, COUNT(*) AS count" " FROM main.images AS mi" - " JOIN (SELECT DISTINCT imgid, operation FROM main.history WHERE enabled = 1) AS h" + " JOIN (SELECT DISTINCT imgid, operation" + " FROM main.history" + " WHERE enabled = 1) AS h" " ON h.imgid = mi.id" " JOIN memory.darktable_iop_names AS m" " ON m.operation = h.operation" " WHERE %s" - " GROUP BY module_name" - " ORDER BY module_name", + " GROUP BY lower(module_name)" + " ORDER BY lower(module_name) ASC", where_ext); // clang-format on break; @@ -1913,7 +2049,7 @@ " ON mo.imgid = mi.id" " WHERE %s" " GROUP BY ver" - " ORDER BY ver", + " ORDER BY ver ASC", orders, where_ext); // clang-format on g_free(orders); @@ -1924,20 +2060,23 @@ { // clang-format off g_snprintf(query, sizeof(query), - "SELECT CASE WHEN (flags & 8) == 8 THEN -1 ELSE (flags & 7) END AS rating, 1," + "SELECT CASE WHEN (flags & 8) == 8" + " THEN -1 ELSE (flags & 7) END AS rating, 1," " COUNT(*) AS count" " FROM main.images AS mi" " WHERE %s" " GROUP BY rating" - " ORDER BY rating", where_ext); + " ORDER BY rating ASC", where_ext); // clang-format on } break; default: - if(property >= DT_COLLECTION_PROP_METADATA && property < DT_COLLECTION_PROP_METADATA + DT_METADATA_NUMBER) + if(property >= DT_COLLECTION_PROP_METADATA + && property < DT_COLLECTION_PROP_METADATA + DT_METADATA_NUMBER) { - const int keyid = dt_metadata_get_keyid_by_display_order(property - DT_COLLECTION_PROP_METADATA); + const int keyid = dt_metadata_get_keyid_by_display_order + (property - DT_COLLECTION_PROP_METADATA); const char *name = (gchar *)dt_metadata_get_name(keyid); char *setting = g_strdup_printf("plugins/lighttable/metadata/%s_flag", name); const gboolean hidden = dt_conf_get_int(setting) & DT_METADATA_FLAG_HIDDEN; @@ -1951,11 +2090,13 @@ " 1, COUNT(*) AS count," " CASE WHEN value IS NULL THEN 0 ELSE 1 END AS force_order" " FROM main.images AS mi" - " LEFT JOIN (SELECT id AS meta_data_id, value FROM main.meta_data WHERE key = %d)" + " LEFT JOIN (SELECT id AS meta_data_id, value" + " FROM main.meta_data" + " WHERE key = %d)" " ON id = meta_data_id" " WHERE %s" - " GROUP BY value" - " ORDER BY force_order, value", + " GROUP BY lower(value)" + " ORDER BY force_order ASC, lower(value) ASC", _("not defined"), keyid, where_ext); // clang-format on } @@ -1964,14 +2105,23 @@ // filmroll { gchar *order_by = NULL; - const char *filmroll_sort = dt_conf_get_string_const("plugins/collect/filmroll_sort"); - if(strcmp(filmroll_sort, "id") == 0) - order_by = g_strdup("film_rolls_id DESC"); - else - if(dt_conf_get_bool("plugins/collect/descending")) - order_by = g_strdup("folder DESC"); + + const gboolean sort_by_import_time = + dt_conf_is_equal("plugins/collect/filmroll_sort", "import time"); + + const gboolean sort_descending = dt_conf_get_bool("plugins/collect/descending"); + + if(sort_by_import_time) + { + if(sort_descending) + order_by = g_strdup("film_rolls_id DESC"); else - order_by = g_strdup("folder"); + order_by = g_strdup("film_rolls_id"); + } + else + { + order_by = g_strdup("lower(folder) ASC"); + } // clang-format off g_snprintf(query, sizeof(query), @@ -1999,30 +2149,83 @@ DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), query, -1, &stmt, NULL); while(sqlite3_step(stmt) == SQLITE_ROW) { + const gchar *value = (gchar *)sqlite3_column_text(stmt, 0); const char *folder = (const char *)sqlite3_column_text(stmt, 0); + const int count = sqlite3_column_int(stmt, 2); + if(folder == NULL) continue; // safeguard against degenerated db entries gtk_list_store_append(GTK_LIST_STORE(model), &iter); int status = 0; + if(property == DT_COLLECTION_PROP_FILMROLL) { folder = dt_image_film_roll_name(folder); status = !sqlite3_column_int(stmt, 3); } - const gchar *value = (gchar *)sqlite3_column_text(stmt, 0); - const int count = sqlite3_column_int(stmt, 2); + else if (property == DT_COLLECTION_PROP_RATING) + { + const int rating = sqlite3_column_int(stmt, 0); + switch(rating) + { + case -1: + folder = _("rejected"); + break; + case 0: + folder = _("not rated"); + break; + case 1: + folder = "★"; + break; + case 2: + folder = "★★"; + break; + case 3: + folder = "★★★"; + break; + case 4: + folder = "★★★★"; + break; + case 5: + folder = "★★★★★"; + break; + } + } + + // check if name is empty string + + gboolean only_spaces = TRUE; + for(int k=0; k < strlen(folder); k++) + { + if(folder[k] != ' ' && folder[k] != '\t') + { + only_spaces = FALSE; + break; + } + } + + if(only_spaces) + { + folder = _("unnamed"); + value = _("unnamed"); + } // replace invalid utf8 characters if any gchar *text = g_strdup(value); gchar *ptr = text; - while(!g_utf8_validate(ptr, -1, (const gchar **)&ptr)) ptr[0] = '?'; + while(!g_utf8_validate(ptr, -1, (const gchar **)&ptr)) + ptr[0] = '?'; gchar *escaped_text = g_markup_escape_text(text, -1); - gtk_list_store_set(GTK_LIST_STORE(model), &iter, DT_LIB_COLLECT_COL_TEXT, folder, - DT_LIB_COLLECT_COL_ID, sqlite3_column_int(stmt, 1), DT_LIB_COLLECT_COL_TOOLTIP, - escaped_text, DT_LIB_COLLECT_COL_PATH, value, DT_LIB_COLLECT_COL_VISIBLE, TRUE, - DT_LIB_COLLECT_COL_COUNT, count, DT_LIB_COLLECT_COL_UNREACHABLE, status, + gtk_list_store_set(GTK_LIST_STORE(model), &iter, + DT_LIB_COLLECT_COL_TEXT, folder, + DT_LIB_COLLECT_COL_ID, sqlite3_column_int(stmt, 1), + DT_LIB_COLLECT_COL_TOOLTIP, escaped_text, + DT_LIB_COLLECT_COL_PATH, value, + DT_LIB_COLLECT_COL_VISIBLE, TRUE, + DT_LIB_COLLECT_COL_COUNT, count, + DT_LIB_COLLECT_COL_UNREACHABLE, status, -1); g_free(text); @@ -2036,9 +2239,12 @@ d->listfilter = _create_filtered_model(model, dr); GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(d->view)); - if(property == DT_COLLECTION_PROP_APERTURE || property == DT_COLLECTION_PROP_FOCAL_LENGTH - || property == DT_COLLECTION_PROP_ISO || property == DT_COLLECTION_PROP_EXPOSURE - || property == DT_COLLECTION_PROP_ASPECT_RATIO || property == DT_COLLECTION_PROP_RATING) + if(property == DT_COLLECTION_PROP_APERTURE + || property == DT_COLLECTION_PROP_FOCAL_LENGTH + || property == DT_COLLECTION_PROP_ISO + || property == DT_COLLECTION_PROP_EXPOSURE + || property == DT_COLLECTION_PROP_ASPECT_RATIO + || property == DT_COLLECTION_PROP_RATING) { gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE); } @@ -2058,16 +2264,22 @@ // if needed, we restrict the tree to matching entries if(dr->typing - && (property == DT_COLLECTION_PROP_CAMERA || property == DT_COLLECTION_PROP_FILENAME - || property == DT_COLLECTION_PROP_FILMROLL || property == DT_COLLECTION_PROP_LENS - || property == DT_COLLECTION_PROP_APERTURE || property == DT_COLLECTION_PROP_FOCAL_LENGTH - || property == DT_COLLECTION_PROP_ISO || property == DT_COLLECTION_PROP_MODULE - || property == DT_COLLECTION_PROP_ORDER || property == DT_COLLECTION_PROP_RATING + && (property == DT_COLLECTION_PROP_CAMERA + || property == DT_COLLECTION_PROP_FILENAME + || property == DT_COLLECTION_PROP_FILMROLL + || property == DT_COLLECTION_PROP_LENS + || property == DT_COLLECTION_PROP_APERTURE + || property == DT_COLLECTION_PROP_FOCAL_LENGTH + || property == DT_COLLECTION_PROP_ISO + || property == DT_COLLECTION_PROP_MODULE + || property == DT_COLLECTION_PROP_ORDER + || property == DT_COLLECTION_PROP_RATING || (property >= DT_COLLECTION_PROP_METADATA && property < DT_COLLECTION_PROP_METADATA + DT_METADATA_NUMBER))) { gchar *needle = g_utf8_strdown(gtk_entry_get_text(GTK_ENTRY(dr->text)), -1); - if(g_str_has_suffix(needle, "%")) needle[strlen(needle) - 1] = '\0'; + if(g_str_has_suffix(needle, "%")) + needle[strlen(needle) - 1] = '\0'; dr->searchstring = needle; gtk_tree_model_foreach(model, (GtkTreeModelForeachFunc)list_match_string, dr); dr->searchstring = NULL; @@ -2076,16 +2288,20 @@ // we update list selection gtk_tree_selection_unselect_all(gtk_tree_view_get_selection(d->view)); - if(property == DT_COLLECTION_PROP_APERTURE || property == DT_COLLECTION_PROP_FOCAL_LENGTH - || property == DT_COLLECTION_PROP_ISO || property == DT_COLLECTION_PROP_EXPOSURE - || property == DT_COLLECTION_PROP_ASPECT_RATIO || property == DT_COLLECTION_PROP_RATING) + if(property == DT_COLLECTION_PROP_APERTURE + || property == DT_COLLECTION_PROP_FOCAL_LENGTH + || property == DT_COLLECTION_PROP_ISO + || property == DT_COLLECTION_PROP_EXPOSURE + || property == DT_COLLECTION_PROP_ASPECT_RATIO + || property == DT_COLLECTION_PROP_RATING) { // test selection range [xxx;xxx] GRegex *regex; GMatchInfo *match_info; regex = g_regex_new("^\\s*\\[\\s*(.*)\\s*;\\s*(.*)\\s*\\]\\s*$", 0, 0, NULL); - g_regex_match_full(regex, gtk_entry_get_text(GTK_ENTRY(dr->text)), -1, 0, 0, &match_info, NULL); + g_regex_match_full(regex, gtk_entry_get_text(GTK_ENTRY(dr->text)), -1, 0, 0, + &match_info, NULL); const int match_count = g_match_info_get_match_count(match_info); if(match_count == 3) @@ -2097,7 +2313,8 @@ gtk_tree_model_foreach(d->listfilter, (GtkTreeModelForeachFunc)range_select, range); if(range->path1 && range->path2) { - gtk_tree_selection_select_range(gtk_tree_view_get_selection(d->view), range->path1, range->path2); + gtk_tree_selection_select_range(gtk_tree_view_get_selection(d->view), + range->path1, range->path2); } g_free(range->start); g_free(range->stop); @@ -2119,20 +2336,24 @@ { const int property = _combo_get_active_collection(dr->combo); - if(property == DT_COLLECTION_PROP_FOLDERS || property == DT_COLLECTION_PROP_TAG - || property == DT_COLLECTION_PROP_GEOTAGGING || property == DT_COLLECTION_PROP_DAY - || is_time_property(property)) - tree_view(dr); + if(property == DT_COLLECTION_PROP_FOLDERS + || property == DT_COLLECTION_PROP_TAG + || property == DT_COLLECTION_PROP_GEOTAGGING + || property == DT_COLLECTION_PROP_DAY + || _is_time_property(property)) + _tree_view(dr); else - list_view(dr); + _list_view(dr); } static void _set_tooltip(dt_lib_collect_rule_t *d) { const int property = _combo_get_active_collection(d->combo); - if(property == DT_COLLECTION_PROP_APERTURE || property == DT_COLLECTION_PROP_FOCAL_LENGTH - || property == DT_COLLECTION_PROP_ISO || property == DT_COLLECTION_PROP_ASPECT_RATIO + if(property == DT_COLLECTION_PROP_APERTURE + || property == DT_COLLECTION_PROP_FOCAL_LENGTH + || property == DT_COLLECTION_PROP_ISO + || property == DT_COLLECTION_PROP_ASPECT_RATIO || property == DT_COLLECTION_PROP_EXPOSURE) { gtk_widget_set_tooltip_text(d->text, _("use <, <=, >, >=, <>, =, [;] as operators")); @@ -2143,11 +2364,12 @@ "star rating: 0-5\n" "rejected images: -1")); } - else if(property == DT_COLLECTION_PROP_DAY || is_time_property(property)) + else if(property == DT_COLLECTION_PROP_DAY || _is_time_property(property)) { - gtk_widget_set_tooltip_text(d->text, - _("use <, <=, >, >=, <>, =, [;] as operators\n" - "type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)")); + gtk_widget_set_tooltip_text + (d->text, + _("use <, <=, >, >=, <>, =, [;] as operators\n" + "type dates in the form: YYYY:MM:DD hh:mm:ss.sss (only the year is mandatory)")); } else if(property == DT_COLLECTION_PROP_FILENAME) { @@ -2157,39 +2379,42 @@ } else if(property == DT_COLLECTION_PROP_TAG) { - gtk_widget_set_tooltip_text(d->text, - /* xgettext:no-c-format */ - _("use `%' as wildcard\n" - /* xgettext:no-c-format */ - "click to include hierarchy + sub-hierarchies (suffix `*')\n" - /* xgettext:no-c-format */ - "shift+click to include only the current hierarchy (no suffix)\n" - /* xgettext:no-c-format */ - "ctrl+click to include only sub-hierarchies (suffix `|%')")); + gtk_widget_set_tooltip_text + (d->text, + /* xgettext:no-c-format */ + _("use `%' as wildcard\n" + /* xgettext:no-c-format */ + "click to include hierarchy + sub-hierarchies (suffix `*')\n" + /* xgettext:no-c-format */ + "shift+click to include only the current hierarchy (no suffix)\n" + /* xgettext:no-c-format */ + "ctrl+click to include only sub-hierarchies (suffix `|%')")); } else if(property == DT_COLLECTION_PROP_GEOTAGGING) { - gtk_widget_set_tooltip_text(d->text, - /* xgettext:no-c-format */ - _("use `%' as wildcard\n" - /* xgettext:no-c-format */ - "click to include location + sub-locations (suffix `*')\n" - /* xgettext:no-c-format */ - "shift+click to include only the current location (no suffix)\n" - /* xgettext:no-c-format */ - "ctrl+click to include only sub-locations (suffix `|%')")); + gtk_widget_set_tooltip_text + (d->text, + /* xgettext:no-c-format */ + _("use `%' as wildcard\n" + /* xgettext:no-c-format */ + "click to include location + sub-locations (suffix `*')\n" + /* xgettext:no-c-format */ + "shift+click to include only the current location (no suffix)\n" + /* xgettext:no-c-format */ + "ctrl+click to include only sub-locations (suffix `|%')")); } else if(property == DT_COLLECTION_PROP_FOLDERS) { - gtk_widget_set_tooltip_text(d->text, - /* xgettext:no-c-format */ - _("use `%' as wildcard\n" - /* xgettext:no-c-format */ - "click to include current + sub-folders (suffix `*')\n" - /* xgettext:no-c-format */ - "shift+click to include only the current folder (no suffix)\n" - /* xgettext:no-c-format */ - "ctrl+click to include only sub-folders (suffix `|%')")); + gtk_widget_set_tooltip_text + (d->text, + /* xgettext:no-c-format */ + _("use `%' as wildcard\n" + /* xgettext:no-c-format */ + "click to include current + sub-folders (suffix `*')\n" + /* xgettext:no-c-format */ + "shift+click to include only the current folder (no suffix)\n" + /* xgettext:no-c-format */ + "ctrl+click to include only sub-folders (suffix `|%')")); } else { @@ -2299,7 +2524,8 @@ dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_NEW_QUERY, DT_COLLECTION_PROP_UNDEF, NULL); } -static void combo_changed(GtkWidget *combo, dt_lib_collect_rule_t *d) +static void combo_changed(GtkWidget *combo, + dt_lib_collect_rule_t *d) { if(darktable.gui->reset) return; g_signal_handlers_block_matched(d->text, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, entry_changed, NULL); @@ -2311,7 +2537,7 @@ if(property == DT_COLLECTION_PROP_FOLDERS || property == DT_COLLECTION_PROP_TAG || property == DT_COLLECTION_PROP_GEOTAGGING || property == DT_COLLECTION_PROP_DAY - || is_time_property(property)) + || _is_time_property(property)) { d->typing = FALSE; } @@ -2388,9 +2614,13 @@ } } else if(gtk_tree_selection_count_selected_rows(selection) > 1 - && (item == DT_COLLECTION_PROP_DAY || is_time_property(item) || item == DT_COLLECTION_PROP_APERTURE - || item == DT_COLLECTION_PROP_FOCAL_LENGTH || item == DT_COLLECTION_PROP_ISO - || item == DT_COLLECTION_PROP_EXPOSURE || item == DT_COLLECTION_PROP_ASPECT_RATIO + && (item == DT_COLLECTION_PROP_DAY + || _is_time_property(item) + || item == DT_COLLECTION_PROP_APERTURE + || item == DT_COLLECTION_PROP_FOCAL_LENGTH + || item == DT_COLLECTION_PROP_ISO + || item == DT_COLLECTION_PROP_EXPOSURE + || item == DT_COLLECTION_PROP_ASPECT_RATIO || item == DT_COLLECTION_PROP_RATING)) { /* this is a range selection */ @@ -2442,16 +2672,23 @@ } g_list_free_full(sels, (GDestroyNotify)gtk_tree_path_free); - g_signal_handlers_block_matched(d->rule[active].text, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, entry_changed, NULL); + g_signal_handlers_block_matched(d->rule[active].text, + G_SIGNAL_MATCH_FUNC, 0, 0, NULL, entry_changed, NULL); gtk_entry_set_text(GTK_ENTRY(d->rule[active].text), text); gtk_editable_set_position(GTK_EDITABLE(d->rule[active].text), -1); - g_signal_handlers_unblock_matched(d->rule[active].text, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, entry_changed, NULL); + g_signal_handlers_unblock_matched(d->rule[active].text, + G_SIGNAL_MATCH_FUNC, 0, 0, NULL, entry_changed, NULL); g_free(text); - if(item == DT_COLLECTION_PROP_TAG || (item == DT_COLLECTION_PROP_FOLDERS && !force_update_view) - || item == DT_COLLECTION_PROP_DAY || is_time_property(item) || item == DT_COLLECTION_PROP_COLORLABEL - || item == DT_COLLECTION_PROP_GEOTAGGING || item == DT_COLLECTION_PROP_HISTORY - || item == DT_COLLECTION_PROP_LOCAL_COPY || item == DT_COLLECTION_PROP_GROUPING) + if(item == DT_COLLECTION_PROP_TAG + || (item == DT_COLLECTION_PROP_FOLDERS && !force_update_view) + || item == DT_COLLECTION_PROP_DAY + || _is_time_property(item) + || item == DT_COLLECTION_PROP_COLORLABEL + || item == DT_COLLECTION_PROP_GEOTAGGING + || item == DT_COLLECTION_PROP_HISTORY + || item == DT_COLLECTION_PROP_LOCAL_COPY + || item == DT_COLLECTION_PROP_GROUPING) { set_properties(d->rule + active); // we just have to set the selection } @@ -2460,15 +2697,21 @@ dt_control_signal_block_by_func(darktable.signals, G_CALLBACK(collection_updated), darktable.view_manager->proxy.module_collect.module); - if(order) DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_IMAGES_ORDER_CHANGE, order); - dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_NEW_QUERY, DT_COLLECTION_PROP_UNDEF, NULL); + if(order) + DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, + DT_SIGNAL_IMAGES_ORDER_CHANGE, order); + + dt_collection_update_query(darktable.collection, + DT_COLLECTION_CHANGE_NEW_QUERY, + DT_COLLECTION_PROP_UNDEF, NULL); dt_control_signal_unblock_by_func(darktable.signals, G_CALLBACK(collection_updated), darktable.view_manager->proxy.module_collect.module); gtk_widget_grab_focus(dt_ui_center(darktable.gui->ui)); dt_control_queue_redraw_center(); } -static void entry_activated(GtkWidget *entry, dt_lib_collect_rule_t *d) +static void entry_activated(GtkWidget *entry, + dt_lib_collect_rule_t *d) { GtkTreeView *view; GtkTreeModel *model; @@ -2479,9 +2722,11 @@ const int property = _combo_get_active_collection(d->combo); - if(property != DT_COLLECTION_PROP_FOLDERS && property != DT_COLLECTION_PROP_TAG - && property != DT_COLLECTION_PROP_GEOTAGGING && property != DT_COLLECTION_PROP_DAY - && !is_time_property(property)) + if(property != DT_COLLECTION_PROP_FOLDERS + && property != DT_COLLECTION_PROP_TAG + && property != DT_COLLECTION_PROP_GEOTAGGING + && property != DT_COLLECTION_PROP_DAY + && !_is_time_property(property)) { view = c->view; model = gtk_tree_view_get_model(GTK_TREE_VIEW(view)); @@ -2497,26 +2742,35 @@ gchar *text; gtk_tree_model_get(model, &iter, DT_LIB_COLLECT_COL_PATH, &text, -1); - g_signal_handlers_block_matched(d->text, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, entry_changed, NULL); + g_signal_handlers_block_matched(d->text, + G_SIGNAL_MATCH_FUNC, + 0, 0, NULL, entry_changed, NULL); gtk_entry_set_text(GTK_ENTRY(d->text), text); gtk_editable_set_position(GTK_EDITABLE(d->text), -1); - g_signal_handlers_unblock_matched(d->text, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, entry_changed, NULL); + g_signal_handlers_unblock_matched(d->text, + G_SIGNAL_MATCH_FUNC, + 0, 0, NULL, entry_changed, NULL); g_free(text); update_view(d); } } } - dt_control_signal_block_by_func(darktable.signals, G_CALLBACK(collection_updated), + dt_control_signal_block_by_func(darktable.signals, + G_CALLBACK(collection_updated), darktable.view_manager->proxy.module_collect.module); - dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_NEW_QUERY, DT_COLLECTION_PROP_UNDEF, NULL); - dt_control_signal_unblock_by_func(darktable.signals, G_CALLBACK(collection_updated), + dt_collection_update_query(darktable.collection, + DT_COLLECTION_CHANGE_NEW_QUERY, + DT_COLLECTION_PROP_UNDEF, NULL); + dt_control_signal_unblock_by_func(darktable.signals, + G_CALLBACK(collection_updated), darktable.view_manager->proxy.module_collect.module); d->typing = FALSE; dt_control_queue_redraw_center(); } -static void entry_changed(GtkEntry *entry, dt_lib_collect_rule_t *dr) +static void entry_changed(GtkEntry *entry, + dt_lib_collect_rule_t *dr) { dr->typing = TRUE; update_view(dr); @@ -2527,7 +2781,9 @@ return 400; } -static gboolean entry_focus_in_callback(GtkWidget *w, GdkEventFocus *event, dt_lib_collect_rule_t *d) +static gboolean entry_focus_in_callback(GtkWidget *w, + GdkEventFocus *event, + dt_lib_collect_rule_t *d) { dt_lib_collect_t *c = get_collect(d); if(c->active_rule != d->num) @@ -2539,7 +2795,8 @@ return FALSE; } -static void menuitem_mode(GtkMenuItem *menuitem, dt_lib_collect_rule_t *d) +static void menuitem_mode(GtkMenuItem *menuitem, + dt_lib_collect_rule_t *d) { // add next row with and operator const int _a = dt_conf_get_int("plugins/lighttable/collect/num_rules"); @@ -2548,7 +2805,8 @@ { char confname[200] = { 0 }; snprintf(confname, sizeof(confname), "plugins/lighttable/collect/mode%1d", active); - const dt_lib_collect_mode_t mode = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(menuitem), "menuitem_mode")); + const dt_lib_collect_mode_t mode = + GPOINTER_TO_INT(g_object_get_data(G_OBJECT(menuitem), "menuitem_mode")); dt_conf_set_int(confname, mode); snprintf(confname, sizeof(confname), "plugins/lighttable/collect/string%1d", active); dt_conf_set_string(confname, ""); @@ -2557,10 +2815,13 @@ c->active_rule = active; c->view_rule = -1; } - dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_NEW_QUERY, DT_COLLECTION_PROP_UNDEF, NULL); + dt_collection_update_query(darktable.collection, + DT_COLLECTION_CHANGE_NEW_QUERY, + DT_COLLECTION_PROP_UNDEF, NULL); } -static void menuitem_mode_change(GtkMenuItem *menuitem, dt_lib_collect_rule_t *d) +static void menuitem_mode_change(GtkMenuItem *menuitem, + dt_lib_collect_rule_t *d) { // add next row with and operator const int num = d->num + 1; @@ -2568,16 +2829,23 @@ { char confname[200] = { 0 }; snprintf(confname, sizeof(confname), "plugins/lighttable/collect/mode%1d", num); - const dt_lib_collect_mode_t mode = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(menuitem), "menuitem_mode")); + const dt_lib_collect_mode_t mode = + GPOINTER_TO_INT(g_object_get_data(G_OBJECT(menuitem), "menuitem_mode")); dt_conf_set_int(confname, mode); } dt_lib_collect_t *c = get_collect(d); c->view_rule = -1; - dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_NEW_QUERY, DT_COLLECTION_PROP_UNDEF, NULL); + dt_collection_update_query(darktable.collection, + DT_COLLECTION_CHANGE_NEW_QUERY, + DT_COLLECTION_PROP_UNDEF, NULL); } -static void collection_updated(gpointer instance, dt_collection_change_t query_change, - dt_collection_properties_t changed_property, gpointer imgs, int next, gpointer self) +static void collection_updated(gpointer instance, + dt_collection_change_t query_change, + dt_collection_properties_t changed_property, + gpointer imgs, + int next, + gpointer self) { dt_lib_module_t *dm = (dt_lib_module_t *)self; dt_lib_collect_t *d = (dt_lib_collect_t *)dm->data; @@ -2588,10 +2856,12 @@ // determine if we want to refresh the tree or not gboolean refresh = TRUE; - if(query_change == DT_COLLECTION_CHANGE_RELOAD && changed_property != DT_COLLECTION_PROP_UNDEF) + if(query_change == DT_COLLECTION_CHANGE_RELOAD + && changed_property != DT_COLLECTION_PROP_UNDEF) { - // if we only reload the collection, that means that we don't change the query itself - // so we only rebuild the treeview if a used property has changed + // if we only reload the collection, that means that we don't + // change the query itself so we only rebuild the treeview if a + // used property has changed refresh = FALSE; for(int i = 0; i <= d->active_rule; i++) { @@ -2608,13 +2878,16 @@ } -static void filmrolls_updated(gpointer instance, gpointer self) +static void filmrolls_updated(gpointer instance, + gpointer self) { // TODO: We should update the count of images here _lib_collect_gui_update(self); } -static void filmrolls_imported(gpointer instance, int film_id, gpointer self) +static void filmrolls_imported(gpointer instance, + const int film_id, + gpointer self) { dt_lib_module_t *dm = (dt_lib_module_t *)self; dt_lib_collect_t *d = (dt_lib_collect_t *)dm->data; @@ -2625,12 +2898,16 @@ _lib_collect_gui_update(self); } -static void preferences_changed(gpointer instance, gpointer self) +static void preferences_changed(gpointer instance, + gpointer self) { - dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_UNDEF, NULL); + dt_collection_update_query(darktable.collection, + DT_COLLECTION_CHANGE_RELOAD, + DT_COLLECTION_PROP_UNDEF, NULL); } -static void filmrolls_removed(gpointer instance, gpointer self) +static void filmrolls_removed(gpointer instance, + gpointer self) { dt_lib_module_t *dm = (dt_lib_module_t *)self; dt_lib_collect_t *d = (dt_lib_collect_t *)dm->data; @@ -2644,7 +2921,8 @@ _lib_collect_gui_update(self); } -static void tag_changed(gpointer instance, gpointer self) +static void tag_changed(gpointer instance, + gpointer self) { dt_lib_module_t *dm = (dt_lib_module_t *)self; dt_lib_collect_t *d = (dt_lib_collect_t *)dm->data; @@ -2655,33 +2933,44 @@ d->rule[d->active_rule].typing = FALSE; // need to reload collection since we have tags as active collection filter - dt_control_signal_block_by_func(darktable.signals, G_CALLBACK(collection_updated), + dt_control_signal_block_by_func(darktable.signals, + G_CALLBACK(collection_updated), darktable.view_manager->proxy.module_collect.module); - dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_TAG, NULL); - dt_control_signal_unblock_by_func(darktable.signals, G_CALLBACK(collection_updated), + dt_collection_update_query(darktable.collection, + DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_TAG, NULL); + dt_control_signal_unblock_by_func(darktable.signals, + G_CALLBACK(collection_updated), darktable.view_manager->proxy.module_collect.module); } else { - // currently tag filter isn't the one selected but it might be in one of rules. needs check + // currently tag filter isn't the one selected but it might be in + // one of rules. needs check gboolean needs_update = FALSE; for(int i = 0; i < d->nb_rules && !needs_update; i++) { - needs_update = needs_update || _combo_get_active_collection(d->rule[i].combo) == DT_COLLECTION_PROP_TAG; + needs_update = needs_update + || _combo_get_active_collection(d->rule[i].combo) == DT_COLLECTION_PROP_TAG; } if(needs_update) { // we have tags as one of rules, needs reload. - dt_control_signal_block_by_func(darktable.signals, G_CALLBACK(collection_updated), + dt_control_signal_block_by_func(darktable.signals, + G_CALLBACK(collection_updated), darktable.view_manager->proxy.module_collect.module); - dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_TAG, NULL); - dt_control_signal_unblock_by_func(darktable.signals, G_CALLBACK(collection_updated), + dt_collection_update_query(darktable.collection, + DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_TAG, NULL); + dt_control_signal_unblock_by_func(darktable.signals, + G_CALLBACK(collection_updated), darktable.view_manager->proxy.module_collect.module); } } } -static void _geotag_changed(gpointer instance, GList *imgs, const int locid, gpointer self) +static void _geotag_changed(gpointer instance, + GList *imgs, + const int locid, + gpointer self) { // if locid <> NULL this event doesn't concern collect module if(!locid) @@ -2689,24 +2978,30 @@ dt_lib_module_t *dm = (dt_lib_module_t *)self; dt_lib_collect_t *d = (dt_lib_collect_t *)dm->data; // update tree - if(_combo_get_active_collection(d->rule[d->active_rule].combo) == DT_COLLECTION_PROP_GEOTAGGING) + if(_combo_get_active_collection(d->rule[d->active_rule].combo) + == DT_COLLECTION_PROP_GEOTAGGING) { d->view_rule = -1; d->rule[d->active_rule].typing = FALSE; _lib_collect_gui_update(self); //need to reload collection since we have geotags as active collection filter - dt_control_signal_block_by_func(darktable.signals, G_CALLBACK(collection_updated), + dt_control_signal_block_by_func(darktable.signals, + G_CALLBACK(collection_updated), darktable.view_manager->proxy.module_collect.module); - dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_GEOTAGGING, + dt_collection_update_query(darktable.collection, + DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_GEOTAGGING, NULL); - dt_control_signal_unblock_by_func(darktable.signals, G_CALLBACK(collection_updated), + dt_control_signal_unblock_by_func(darktable.signals, + G_CALLBACK(collection_updated), darktable.view_manager->proxy.module_collect.module); } } } -static void metadata_changed(gpointer instance, int type, gpointer self) +static void metadata_changed(gpointer instance, + int type, + gpointer self) { dt_lib_module_t *dm = (dt_lib_module_t *)self; dt_lib_collect_t *d = (dt_lib_collect_t *)dm->data; @@ -2716,20 +3011,28 @@ // hidden/shown metadata have changed - update the collection list for(int i = 0; i < MAX_RULES; i++) { - g_signal_handlers_block_matched(d->rule[i].combo, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, combo_changed, NULL); + g_signal_handlers_block_matched(d->rule[i].combo, + G_SIGNAL_MATCH_FUNC, 0, 0, NULL, + combo_changed, NULL); const int property = _combo_get_active_collection(d->rule[i].combo); dt_bauhaus_combobox_clear(d->rule[i].combo); _populate_collect_combo(d->rule[i].combo); if(property != -1 && !_combo_set_active_collection(d->rule[i].combo, property)) { // this one has been hidden - remove entry - g_signal_handlers_block_matched(d->rule[i].text, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, entry_changed, NULL); + g_signal_handlers_block_matched(d->rule[i].text, + G_SIGNAL_MATCH_FUNC, 0, 0, NULL, + entry_changed, NULL); gtk_entry_set_text(GTK_ENTRY(d->rule[i].text), ""); - g_signal_handlers_unblock_matched(d->rule[i].text, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, entry_changed, NULL); + g_signal_handlers_unblock_matched(d->rule[i].text, + G_SIGNAL_MATCH_FUNC, 0, 0, NULL, + entry_changed, NULL); d->rule[i].typing = FALSE; set_properties(&d->rule[i]); } - g_signal_handlers_unblock_matched(d->rule[i].combo, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, combo_changed, NULL); + g_signal_handlers_unblock_matched(d->rule[i].combo, + G_SIGNAL_MATCH_FUNC, 0, 0, NULL, + combo_changed, NULL); } } @@ -2739,12 +3042,15 @@ || (prop >= DT_COLLECTION_PROP_METADATA && prop < DT_COLLECTION_PROP_METADATA + DT_METADATA_NUMBER)) { - dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_METADATA, + dt_collection_update_query(darktable.collection, + DT_COLLECTION_CHANGE_RELOAD, + DT_COLLECTION_PROP_METADATA, NULL); } } -static void menuitem_clear(GtkMenuItem *menuitem, dt_lib_collect_rule_t *d) +static void menuitem_clear(GtkMenuItem *menuitem, + dt_lib_collect_rule_t *d) { // remove this row, or if 1st, clear text entry box const int _a = dt_conf_get_int("plugins/lighttable/collect/num_rules"); @@ -2785,12 +3091,17 @@ } c->view_rule = -1; - dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_NEW_QUERY, DT_COLLECTION_PROP_UNDEF, NULL); + dt_collection_update_query(darktable.collection, + DT_COLLECTION_CHANGE_NEW_QUERY, + DT_COLLECTION_PROP_UNDEF, NULL); } -static gboolean popup_button_callback(GtkWidget *widget, GdkEventButton *event, dt_lib_collect_rule_t *d) +static gboolean popup_button_callback(GtkWidget *widget, + GdkEventButton *event, + dt_lib_collect_rule_t *d) { - if(event->button != 1) return FALSE; + if(event->button != 1) + return FALSE; GtkWidget *menu = gtk_menu_new(); GtkWidget *mi; @@ -2804,36 +3115,48 @@ if(d->num == active - 1) { mi = gtk_menu_item_new_with_label(_("narrow down search")); - g_object_set_data(G_OBJECT(mi), "menuitem_mode", GINT_TO_POINTER(DT_LIB_COLLECT_MODE_AND)); + g_object_set_data(G_OBJECT(mi), "menuitem_mode", + GINT_TO_POINTER(DT_LIB_COLLECT_MODE_AND)); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); - g_signal_connect(G_OBJECT(mi), "activate", G_CALLBACK(menuitem_mode), d); + g_signal_connect(G_OBJECT(mi), "activate", + G_CALLBACK(menuitem_mode), d); mi = gtk_menu_item_new_with_label(_("add more images")); - g_object_set_data(G_OBJECT(mi), "menuitem_mode", GINT_TO_POINTER(DT_LIB_COLLECT_MODE_OR)); + g_object_set_data(G_OBJECT(mi), "menuitem_mode", + GINT_TO_POINTER(DT_LIB_COLLECT_MODE_OR)); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); - g_signal_connect(G_OBJECT(mi), "activate", G_CALLBACK(menuitem_mode), d); + g_signal_connect(G_OBJECT(mi), "activate", + G_CALLBACK(menuitem_mode), d); mi = gtk_menu_item_new_with_label(_("exclude images")); - g_object_set_data(G_OBJECT(mi), "menuitem_mode", GINT_TO_POINTER(DT_LIB_COLLECT_MODE_AND_NOT)); + g_object_set_data(G_OBJECT(mi), "menuitem_mode", + GINT_TO_POINTER(DT_LIB_COLLECT_MODE_AND_NOT)); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); - g_signal_connect(G_OBJECT(mi), "activate", G_CALLBACK(menuitem_mode), d); + g_signal_connect(G_OBJECT(mi), "activate", + G_CALLBACK(menuitem_mode), d); } else if(d->num < active - 1) { mi = gtk_menu_item_new_with_label(_("change to: and")); - g_object_set_data(G_OBJECT(mi), "menuitem_mode", GINT_TO_POINTER(DT_LIB_COLLECT_MODE_AND)); + g_object_set_data(G_OBJECT(mi), "menuitem_mode", + GINT_TO_POINTER(DT_LIB_COLLECT_MODE_AND)); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); - g_signal_connect(G_OBJECT(mi), "activate", G_CALLBACK(menuitem_mode_change), d); + g_signal_connect(G_OBJECT(mi), "activate", + G_CALLBACK(menuitem_mode_change), d); mi = gtk_menu_item_new_with_label(_("change to: or")); - g_object_set_data(G_OBJECT(mi), "menuitem_mode", GINT_TO_POINTER(DT_LIB_COLLECT_MODE_OR)); + g_object_set_data(G_OBJECT(mi), "menuitem_mode", + GINT_TO_POINTER(DT_LIB_COLLECT_MODE_OR)); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); - g_signal_connect(G_OBJECT(mi), "activate", G_CALLBACK(menuitem_mode_change), d); + g_signal_connect(G_OBJECT(mi), "activate", + G_CALLBACK(menuitem_mode_change), d); mi = gtk_menu_item_new_with_label(_("change to: except")); - g_object_set_data(G_OBJECT(mi), "menuitem_mode", GINT_TO_POINTER(DT_LIB_COLLECT_MODE_AND_NOT)); + g_object_set_data(G_OBJECT(mi), "menuitem_mode", + GINT_TO_POINTER(DT_LIB_COLLECT_MODE_AND_NOT)); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); - g_signal_connect(G_OBJECT(mi), "activate", G_CALLBACK(menuitem_mode_change), d); + g_signal_connect(G_OBJECT(mi), "activate", + G_CALLBACK(menuitem_mode_change), d); } gtk_widget_show_all(GTK_WIDGET(menu)); @@ -2843,7 +3166,8 @@ return TRUE; } -static void view_set_click(gpointer instance, gpointer user_data) +static void view_set_click(gpointer instance, + gpointer user_data) { dt_lib_module_t *self = (dt_lib_module_t *)user_data; dt_lib_collect_t *d = (dt_lib_collect_t *)self->data; @@ -2853,7 +3177,8 @@ static void _populate_collect_combo(GtkWidget *w) { #define ADD_COLLECT_ENTRY(value) \ - dt_bauhaus_combobox_add_full(w, dt_collection_name(value), DT_BAUHAUS_COMBOBOX_ALIGN_RIGHT, \ + dt_bauhaus_combobox_add_full(w, dt_collection_name(value), \ + DT_BAUHAUS_COMBOBOX_ALIGN_RIGHT, \ GUINT_TO_POINTER(value + 1), NULL, TRUE) dt_bauhaus_combobox_add_section(w, _("files")); @@ -2907,13 +3232,16 @@ #undef ADD_COLLECT_ENTRY } -void _menuitem_preferences(GtkMenuItem *menuitem, dt_lib_module_t *self) +void _menuitem_preferences(GtkMenuItem *menuitem, + dt_lib_module_t *self) { GtkWidget *win = dt_ui_main_window(darktable.gui->ui); - GtkWidget *dialog = gtk_dialog_new_with_buttons(_("collections settings"), GTK_WINDOW(win), - GTK_DIALOG_DESTROY_WITH_PARENT, - _("cancel"), GTK_RESPONSE_NONE, - _("save"), GTK_RESPONSE_ACCEPT, NULL); + GtkWidget *dialog = gtk_dialog_new_with_buttons + (_("collections settings"), GTK_WINDOW(win), + GTK_DIALOG_DESTROY_WITH_PARENT, + _("_cancel"), GTK_RESPONSE_NONE, + _("_save"), GTK_RESPONSE_ACCEPT, NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); dt_prefs_init_dialog_collect(dialog); g_signal_connect(dialog, "key-press-event", G_CALLBACK(dt_handle_dialog_enter), NULL); @@ -2928,17 +3256,23 @@ dt_view_collection_update_history_state(darktable.view_manager); } gtk_widget_destroy(dialog); - dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_NEW_QUERY, DT_COLLECTION_PROP_UNDEF, NULL); + dt_collection_update_query(darktable.collection, + DT_COLLECTION_CHANGE_NEW_QUERY, + DT_COLLECTION_PROP_UNDEF, NULL); } -void set_preferences(void *menu, dt_lib_module_t *self) +void set_preferences(void *menu, + dt_lib_module_t *self) { GtkWidget *mi = gtk_menu_item_new_with_label(_("preferences...")); g_signal_connect(G_OBJECT(mi), "activate", G_CALLBACK(_menuitem_preferences), self); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); } -static gint _sort_model_func(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, dt_lib_module_t *self) +static gint _sort_model_func(GtkTreeModel *model, + GtkTreeIter *a, + GtkTreeIter *b, + dt_lib_module_t *self) { gint ia, ib; gtk_tree_model_get(model, a, DT_LIB_COLLECT_COL_INDEX, &ia, -1); @@ -2947,32 +3281,38 @@ } #ifdef _WIN32 -void _mount_changed(GVolumeMonitor *volume_monitor, GMount *mount, dt_lib_module_t *self) +void _mount_changed(GVolumeMonitor *volume_monitor, + GMount *mount, + dt_lib_module_t *self) #else -void _mount_changed(GUnixMountMonitor *monitor, dt_lib_module_t *self) +void _mount_changed(GUnixMountMonitor *monitor, + dt_lib_module_t *self) #endif { dt_lib_collect_t *d = (dt_lib_collect_t *)self->data; dt_film_set_folder_status(); - // very rough update (rebuild the view). As these events are not too many that remains acceptable - // adding film_id to treeview and listview would be cleaner to update just the parameter "reachable" + // very rough update (rebuild the view). As these events are not too + // many that remains acceptable adding film_id to treeview and + // listview would be cleaner to update just the parameter + // "reachable" dt_lib_collect_rule_t *dr = d->rule + d->active_rule; const int property = _combo_get_active_collection(dr->combo); if(property == DT_COLLECTION_PROP_FOLDERS) { d->rule[d->active_rule].typing = FALSE; d->view_rule = -1; - tree_view(dr); + _tree_view(dr); } else if(property == DT_COLLECTION_PROP_FILMROLL) { d->rule[d->active_rule].typing = FALSE; d->view_rule = -1; - list_view(dr); + _list_view(dr); } } -static void _history_apply(GtkWidget *widget, dt_lib_module_t *self) +static void _history_apply(GtkWidget *widget, + dt_lib_module_t *self) { const int hid = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "history")); if(hid < 0 || hid >= dt_conf_get_int("plugins/lighttable/collect/history_max")) return; @@ -2984,7 +3324,8 @@ const char *line = dt_conf_get_string_const(confname); if(line && line[0] != '\0') { - // we store the wanted offset which will be set by thumbtable on collection_change signal + // we store the wanted offset which will be set by thumbtable on + // collection_change signal dt_conf_set_int("plugins/lighttable/collect/history_next_pos", pos); const int prev_property = dt_conf_get_int("plugins/lighttable/collect/item0"); @@ -2993,24 +3334,30 @@ // for the tag property we need to adjust the order accordingly const int new_property = dt_conf_get_int("plugins/lighttable/collect/item0"); gchar *order = NULL; - if(prev_property != DT_COLLECTION_PROP_TAG && new_property == DT_COLLECTION_PROP_TAG) + if(prev_property != DT_COLLECTION_PROP_TAG + && new_property == DT_COLLECTION_PROP_TAG) { // save global order char buf[4096] = { 0 }; dt_collection_sort_serialize(buf, sizeof(buf)); dt_conf_set_string("plugins/lighttable/collect/lastorder", buf); } - else if(prev_property == DT_COLLECTION_PROP_TAG && new_property != DT_COLLECTION_PROP_TAG) + else if(prev_property == DT_COLLECTION_PROP_TAG + && new_property != DT_COLLECTION_PROP_TAG) { // restore global order order = dt_conf_get_string("plugins/lighttable/collect/lastorder"); dt_collection_set_tag_id((dt_collection_t *)darktable.collection, 0); } - if(order) DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_IMAGES_ORDER_CHANGE, order); + if(order) + DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, + DT_SIGNAL_IMAGES_ORDER_CHANGE, order); } } -static void _history_pretty_print(const char *buf, char *out, size_t outsize) +static void _history_pretty_print(const char *buf, + char *out, + size_t outsize) { memset(out, 0, outsize); @@ -3069,7 +3416,8 @@ else pretty = g_markup_escape_text(str, -1); - c = snprintf(out, outsize, "<b>%s</b> %s", item < DT_COLLECTION_PROP_LAST ? dt_collection_name(item) : "???", + c = snprintf(out, outsize, "<b>%s</b> %s", + item < DT_COLLECTION_PROP_LAST ? dt_collection_name(item) : "???", pretty); g_free(pretty); out += c; @@ -3080,7 +3428,8 @@ } } -static void _history_show(GtkWidget *widget, gpointer user_data) +static void _history_show(GtkWidget *widget, + gpointer user_data) { dt_lib_module_t *self = (dt_lib_module_t *)user_data; // we show a popup with all the history entries @@ -3150,19 +3499,23 @@ gtk_widget_set_name(GTK_WIDGET(box), "lib-dtbutton"); d->rule[i].combo = dt_bauhaus_combobox_new(NULL); - dt_bauhaus_combobox_set_selected_text_align(d->rule[i].combo, DT_BAUHAUS_COMBOBOX_ALIGN_LEFT); + dt_bauhaus_combobox_set_selected_text_align(d->rule[i].combo, + DT_BAUHAUS_COMBOBOX_ALIGN_LEFT); _populate_collect_combo(d->rule[i].combo); dt_bauhaus_combobox_mute_scrolling(d->rule[i].combo); - if(_combo_get_active_collection(d->rule[i].combo) == DT_COLLECTION_PROP_MODULE) has_iop_name_rule = TRUE; + if(_combo_get_active_collection(d->rule[i].combo) == DT_COLLECTION_PROP_MODULE) + has_iop_name_rule = TRUE; - g_signal_connect(G_OBJECT(d->rule[i].combo), "value-changed", G_CALLBACK(combo_changed), d->rule + i); + g_signal_connect(G_OBJECT(d->rule[i].combo), "value-changed", + G_CALLBACK(combo_changed), d->rule + i); gtk_box_pack_start(box, d->rule[i].combo, FALSE, TRUE, 0); w = gtk_entry_new(); gtk_entry_set_max_width_chars(GTK_ENTRY(w), 10); d->rule[i].text = w; gtk_widget_add_events(w, GDK_FOCUS_CHANGE_MASK); - g_signal_connect(G_OBJECT(w), "focus-in-event", G_CALLBACK(entry_focus_in_callback), d->rule + i); + g_signal_connect(G_OBJECT(w), "focus-in-event", + G_CALLBACK(entry_focus_in_callback), d->rule + i); /* xgettext:no-c-format */ gtk_widget_add_events(w, GDK_KEY_PRESS_MASK); @@ -3175,7 +3528,8 @@ dt_gui_add_class(GTK_WIDGET(w), "dt_big_btn_canvas"); d->rule[i].button = w; gtk_widget_set_events(w, GDK_BUTTON_PRESS_MASK); - g_signal_connect(G_OBJECT(w), "button-press-event", G_CALLBACK(popup_button_callback), d->rule + i); + g_signal_connect(G_OBJECT(w), "button-press-event", + G_CALLBACK(popup_button_callback), d->rule + i); gtk_box_pack_start(box, w, FALSE, FALSE, 0); } @@ -3183,7 +3537,8 @@ d->view_rule = -1; d->view = view; gtk_tree_view_set_headers_visible(view, FALSE); - g_signal_connect(G_OBJECT(view), "button-press-event", G_CALLBACK(view_onButtonPressed), d); + g_signal_connect(G_OBJECT(view), "button-press-event", + G_CALLBACK(view_onButtonPressed), d); g_signal_connect(G_OBJECT(view), "popup-menu", G_CALLBACK(view_onPopupMenu), d); GtkTreeViewColumn *col = gtk_tree_view_column_new(); @@ -3191,26 +3546,34 @@ GtkCellRenderer *renderer = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, renderer, TRUE); gtk_tree_view_column_set_cell_data_func(col, renderer, tree_count_show, NULL, NULL); - g_object_set(renderer, "strikethrough", TRUE, "ellipsize", PANGO_ELLIPSIZE_MIDDLE, (gchar *)0); - gtk_tree_view_column_add_attribute(col, renderer, "strikethrough-set", DT_LIB_COLLECT_COL_UNREACHABLE); - - GtkTreeModel *listmodel = GTK_TREE_MODEL(gtk_list_store_new(DT_LIB_COLLECT_NUM_COLS, G_TYPE_STRING, G_TYPE_UINT, - G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, - G_TYPE_BOOLEAN, G_TYPE_UINT, G_TYPE_UINT)); + g_object_set(renderer, "strikethrough", TRUE, "ellipsize", + PANGO_ELLIPSIZE_MIDDLE, (gchar *)0); + gtk_tree_view_column_add_attribute(col, renderer, "strikethrough-set", + DT_LIB_COLLECT_COL_UNREACHABLE); + + GtkTreeModel *listmodel = GTK_TREE_MODEL + (gtk_list_store_new + (DT_LIB_COLLECT_NUM_COLS, G_TYPE_STRING, G_TYPE_UINT, + G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, + G_TYPE_BOOLEAN, G_TYPE_UINT, G_TYPE_UINT)); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(listmodel), DT_LIB_COLLECT_COL_INDEX, (GtkTreeIterCompareFunc)_sort_model_func, self, NULL); d->listfilter = gtk_tree_model_filter_new(listmodel, NULL); - gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(d->listfilter), DT_LIB_COLLECT_COL_VISIBLE); + gtk_tree_model_filter_set_visible_column + (GTK_TREE_MODEL_FILTER(d->listfilter), DT_LIB_COLLECT_COL_VISIBLE); - GtkTreeModel *treemodel = GTK_TREE_MODEL(gtk_tree_store_new(DT_LIB_COLLECT_NUM_COLS, G_TYPE_STRING, G_TYPE_UINT, - G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, - G_TYPE_BOOLEAN, G_TYPE_UINT, G_TYPE_UINT)); + GtkTreeModel *treemodel = GTK_TREE_MODEL + (gtk_tree_store_new(DT_LIB_COLLECT_NUM_COLS, G_TYPE_STRING, G_TYPE_UINT, + G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, + G_TYPE_BOOLEAN, G_TYPE_UINT, G_TYPE_UINT)); d->treefilter = gtk_tree_model_filter_new(treemodel, NULL); - gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(d->treefilter), DT_LIB_COLLECT_COL_VISIBLE); + gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(d->treefilter), + DT_LIB_COLLECT_COL_VISIBLE); g_object_unref(treemodel); gtk_box_pack_start(GTK_BOX(self->widget), - dt_ui_resize_wrap(GTK_WIDGET(view), 200, "plugins/lighttable/collect/windowheight"), TRUE, + dt_ui_resize_wrap(GTK_WIDGET(view), 200, + "plugins/lighttable/collect/windowheight"), TRUE, TRUE, 0); // the bottom buttons for the rules @@ -3219,8 +3582,11 @@ gtk_box_pack_start(GTK_BOX(self->widget), d->history_box, TRUE, TRUE, 0); // dummy widget just to ensure alignment of history button with those in filtering lib gtk_box_pack_start(GTK_BOX(d->history_box), gtk_drawing_area_new(), TRUE, TRUE, 0); - GtkWidget *btn = dt_action_button_new(self, _("history"), G_CALLBACK(_history_show), self, - _("revert to a previous set of rules"), GDK_KEY_k, GDK_CONTROL_MASK); + GtkWidget *btn = dt_action_button_new(self, + N_("history"), + G_CALLBACK(_history_show), self, + _("revert to a previous set of rules"), + GDK_KEY_k, GDK_CONTROL_MASK); gtk_box_pack_start(GTK_BOX(d->history_box), btn, TRUE, TRUE, 0); gtk_widget_show_all(d->history_box); gtk_widget_set_no_show_all(d->history_box, TRUE); @@ -3236,63 +3602,97 @@ if(_combo_get_active_collection(d->rule[0].combo) == DT_COLLECTION_PROP_TAG) { const char *tag = dt_conf_get_string_const("plugins/lighttable/collect/string0"); - dt_collection_set_tag_id((dt_collection_t *)darktable.collection, dt_tag_get_tag_id_by_name(tag)); + dt_collection_set_tag_id((dt_collection_t *)darktable.collection, + dt_tag_get_tag_id_by_name(tag)); } #ifdef _WIN32 d->vmonitor = g_volume_monitor_get(); - g_signal_connect(G_OBJECT(d->vmonitor), "mount-changed", G_CALLBACK(_mount_changed), self); - g_signal_connect(G_OBJECT(d->vmonitor), "mount-added", G_CALLBACK(_mount_changed), self); + g_signal_connect(G_OBJECT(d->vmonitor), "mount-changed", + G_CALLBACK(_mount_changed), self); + g_signal_connect(G_OBJECT(d->vmonitor), "mount-added", + G_CALLBACK(_mount_changed), self); #else d->vmonitor = g_unix_mount_monitor_get(); - g_signal_connect(G_OBJECT(d->vmonitor), "mounts-changed", G_CALLBACK(_mount_changed), self); + g_signal_connect(G_OBJECT(d->vmonitor), "mounts-changed", + G_CALLBACK(_mount_changed), self); #endif - // force redraw collection images because of late update of the table memory.darktable_iop_names + // force redraw collection images because of late update of the + // table memory.darktable_iop_names if(has_iop_name_rule) - dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_MODULE, NULL); - - DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_COLLECTION_CHANGED, G_CALLBACK(collection_updated), - self); - - DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_FILMROLLS_CHANGED, G_CALLBACK(filmrolls_updated), - self); - - DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_PREFERENCES_CHANGE, G_CALLBACK(preferences_changed), - self); - - DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_FILMROLLS_IMPORTED, G_CALLBACK(filmrolls_imported), - self); - - DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_FILMROLLS_REMOVED, G_CALLBACK(filmrolls_removed), - self); - - DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_TAG_CHANGED, G_CALLBACK(tag_changed), - self); - - DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_GEOTAG_CHANGED, G_CALLBACK(_geotag_changed), - self); - - DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_METADATA_CHANGED, G_CALLBACK(metadata_changed), self); - - DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_PREFERENCES_CHANGE, G_CALLBACK(view_set_click), self); - - dt_action_register(DT_ACTION(self), N_("jump back to previous collection"), _history_previous, GDK_KEY_k, - GDK_CONTROL_MASK); + dt_collection_update_query(darktable.collection, + DT_COLLECTION_CHANGE_RELOAD, + DT_COLLECTION_PROP_MODULE, NULL); + + DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, + DT_SIGNAL_COLLECTION_CHANGED, + G_CALLBACK(collection_updated), + self); + + DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, + DT_SIGNAL_FILMROLLS_CHANGED, + G_CALLBACK(filmrolls_updated), + self); + + DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, + DT_SIGNAL_PREFERENCES_CHANGE, + G_CALLBACK(preferences_changed), + self); + + DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, + DT_SIGNAL_FILMROLLS_IMPORTED, + G_CALLBACK(filmrolls_imported), + self); + + DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, + DT_SIGNAL_FILMROLLS_REMOVED, + G_CALLBACK(filmrolls_removed), + self); + + DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, + DT_SIGNAL_TAG_CHANGED, + G_CALLBACK(tag_changed), + self); + + DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, + DT_SIGNAL_GEOTAG_CHANGED, + G_CALLBACK(_geotag_changed), + self); + + DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, + DT_SIGNAL_METADATA_CHANGED, + G_CALLBACK(metadata_changed), self); + + DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, + DT_SIGNAL_PREFERENCES_CHANGE, + G_CALLBACK(view_set_click), self); + + dt_action_register(DT_ACTION(self), N_("jump back to previous collection"), + _history_previous, GDK_KEY_k, + GDK_CONTROL_MASK | GDK_SHIFT_MASK); } void gui_cleanup(dt_lib_module_t *self) { dt_lib_collect_t *d = (dt_lib_collect_t *)self->data; - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(collection_updated), self); - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(filmrolls_updated), self); - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(filmrolls_imported), self); - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(preferences_changed), self); - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(filmrolls_removed), self); - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(tag_changed), self); - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(_geotag_changed), self); - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(view_set_click), self); + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, + G_CALLBACK(collection_updated), self); + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, + G_CALLBACK(filmrolls_updated), self); + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, + G_CALLBACK(filmrolls_imported), self); + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, + G_CALLBACK(preferences_changed), self); + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, + G_CALLBACK(filmrolls_removed), self); + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, + G_CALLBACK(tag_changed), self); + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, + G_CALLBACK(_geotag_changed), self); + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, + G_CALLBACK(view_set_click), self); darktable.view_manager->proxy.module_collect.module = NULL; free(d->params); @@ -3308,10 +3708,12 @@ self->data = NULL; } -static int is_time_property(int property) +static int _is_time_property(int property) { - return (property == DT_COLLECTION_PROP_TIME || property == DT_COLLECTION_PROP_IMPORT_TIMESTAMP - || property == DT_COLLECTION_PROP_CHANGE_TIMESTAMP || property == DT_COLLECTION_PROP_EXPORT_TIMESTAMP + return (property == DT_COLLECTION_PROP_TIME + || property == DT_COLLECTION_PROP_IMPORT_TIMESTAMP + || property == DT_COLLECTION_PROP_CHANGE_TIMESTAMP + || property == DT_COLLECTION_PROP_EXPORT_TIMESTAMP || property == DT_COLLECTION_PROP_PRINT_TIMESTAMP); } @@ -3371,7 +3773,8 @@ static int mode_member(lua_State *L) { - dt_lib_collect_params_rule_t *rule = luaL_checkudata(L, 1, "dt_lib_collect_params_rule_t"); + dt_lib_collect_params_rule_t *rule = + luaL_checkudata(L, 1, "dt_lib_collect_params_rule_t"); if(lua_gettop(L) > 2) { @@ -3381,14 +3784,17 @@ return 0; } - const dt_lib_collect_mode_t tmp = rule->mode; // temp buffer because of bitfield in the original struct + const dt_lib_collect_mode_t tmp = rule->mode; // temp buffer because + // of bitfield in the + // original struct luaA_push(L, dt_lib_collect_mode_t, &tmp); return 1; } static int item_member(lua_State *L) { - dt_lib_collect_params_rule_t *rule = luaL_checkudata(L, 1, "dt_lib_collect_params_rule_t"); + dt_lib_collect_params_rule_t *rule = + luaL_checkudata(L, 1, "dt_lib_collect_params_rule_t"); if(lua_gettop(L) > 2) { @@ -3398,14 +3804,19 @@ return 0; } - const dt_collection_properties_t tmp = rule->item; // temp buffer because of bitfield in the original struct + const dt_collection_properties_t tmp = rule->item; // temp buffer + // because of + // bitfield in + // the original + // struct luaA_push(L, dt_collection_properties_t, &tmp); return 1; } static int data_member(lua_State *L) { - dt_lib_collect_params_rule_t *rule = luaL_checkudata(L, 1, "dt_lib_collect_params_rule_t"); + dt_lib_collect_params_rule_t *rule = + luaL_checkudata(L, 1, "dt_lib_collect_params_rule_t"); if(lua_gettop(L) > 2) { @@ -3413,7 +3824,8 @@ const char*data = luaL_checklstring(L, 3, &tgt_size); if(tgt_size > PARAM_STRING_SIZE) { - return luaL_error(L, "string '%s' too long (max is %d)", data, PARAM_STRING_SIZE); + return luaL_error(L, "string '%s' too long (max is %d)", + data, PARAM_STRING_SIZE); } g_strlcpy(rule->string, data, sizeof(rule->string)); return 0; diff -Nru darktable-4.4.2/src/libs/colorpicker.c darktable-4.6.1/src/libs/colorpicker.c --- darktable-4.4.2/src/libs/colorpicker.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/colorpicker.c 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2011-2021 darktable developers. + Copyright (C) 2011-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -93,7 +93,9 @@ // GUI callbacks -static gboolean _sample_draw_callback(GtkWidget *widget, cairo_t *cr, dt_colorpicker_sample_t *sample) +static gboolean _sample_draw_callback(GtkWidget *widget, + cairo_t *cr, + dt_colorpicker_sample_t *sample) { const guint width = gtk_widget_get_allocated_width(widget); const guint height = gtk_widget_get_allocated_height(widget); @@ -111,7 +113,8 @@ if(icon_width > 0 && icon_height > 0) { GdkRGBA fg_color; - gtk_style_context_get_color(gtk_widget_get_style_context(widget), gtk_widget_get_state_flags(widget), &fg_color); + gtk_style_context_get_color(gtk_widget_get_style_context(widget), + gtk_widget_get_state_flags(widget), &fg_color); gdk_cairo_set_source_rgba(cr, &fg_color); dtgtk_cairo_paint_lock(cr, border, border, icon_width, icon_height, 0, NULL); @@ -121,7 +124,8 @@ return FALSE; } -static void _update_sample_label(dt_lib_module_t *self, dt_colorpicker_sample_t *sample) +static void _update_sample_label(dt_lib_module_t *self, + dt_colorpicker_sample_t *sample) { dt_lib_colorpicker_t *data = self->data; const dt_lib_colorpicker_statistic_t statistic = data->statistic; @@ -141,33 +145,40 @@ switch(data->model) { case DT_LIB_COLORPICKER_MODEL_RGB: - snprintf(text, sizeof(text), "%6d %6d %6d", sample->label_rgb[0], sample->label_rgb[1], sample->label_rgb[2]); + snprintf(text, sizeof(text), "%6d %6d %6d", + sample->label_rgb[0], sample->label_rgb[1], sample->label_rgb[2]); break; case DT_LIB_COLORPICKER_MODEL_LAB: snprintf(text, sizeof(text), "%6.02f %6.02f %6.02f", - CLAMP(sample->lab[statistic][0], .0f, 100.0f), sample->lab[statistic][1], sample->lab[statistic][2]); + CLAMP(sample->lab[statistic][0], .0f, 100.0f), + sample->lab[statistic][1], sample->lab[statistic][2]); break; case DT_LIB_COLORPICKER_MODEL_LCH: dt_Lab_2_LCH(sample->lab[statistic], alt); - snprintf(text, sizeof(text), "%6.02f %6.02f %6.02f", CLAMP(alt[0], .0f, 100.0f), alt[1], alt[2] * 360.f); + snprintf(text, sizeof(text), "%6.02f %6.02f %6.02f", + CLAMP(alt[0], .0f, 100.0f), alt[1], alt[2] * 360.f); break; case DT_LIB_COLORPICKER_MODEL_HSL: dt_RGB_2_HSL(sample->scope[statistic], alt); - snprintf(text, sizeof(text), "%6.02f %6.02f %6.02f", alt[0] * 360.f, alt[1] * 100.f, alt[2] * 100.f); + snprintf(text, sizeof(text), "%6.02f %6.02f %6.02f", + alt[0] * 360.f, alt[1] * 100.f, alt[2] * 100.f); break; case DT_LIB_COLORPICKER_MODEL_HSV: dt_RGB_2_HSV(sample->scope[statistic], alt); - snprintf(text, sizeof(text), "%6.02f %6.02f %6.02f", alt[0] * 360.f, alt[1] * 100.f, alt[2] * 100.f); + snprintf(text, sizeof(text), "%6.02f %6.02f %6.02f", + alt[0] * 360.f, alt[1] * 100.f, alt[2] * 100.f); break; case DT_LIB_COLORPICKER_MODEL_HEX: // clamping to allow for 2-digit hex display snprintf(text, sizeof(text), "0x%02X%02X%02X", - CLAMP(sample->label_rgb[0], 0, 255), CLAMP(sample->label_rgb[1], 0, 255), CLAMP(sample->label_rgb[2], 0, 255)); + CLAMP(sample->label_rgb[0], 0, 255), + CLAMP(sample->label_rgb[1], 0, 255), + CLAMP(sample->label_rgb[2], 0, 255)); break; default: @@ -192,22 +203,28 @@ darktable.lib->proxy.colorpicker.picker_proxy != NULL); } -static gboolean _large_patch_toggle(GtkWidget *widget, GdkEvent *event, dt_lib_colorpicker_t *data) +static gboolean _large_patch_toggle(GtkWidget *widget, + GdkEvent *event, + dt_lib_colorpicker_t *data) { const gboolean show_large_patch = !dt_conf_get_bool("ui_last/colorpicker_large"); dt_conf_set_bool("ui_last/colorpicker_large", show_large_patch); - gtk_widget_set_visible(gtk_widget_get_parent(data->large_color_patch), show_large_patch); + gtk_widget_set_visible(gtk_widget_get_parent(data->large_color_patch), + show_large_patch); return FALSE; } -static void _picker_button_toggled(GtkToggleButton *button, dt_lib_colorpicker_t *data) +static void _picker_button_toggled(GtkToggleButton *button, + dt_lib_colorpicker_t *data) { - gtk_widget_set_sensitive(GTK_WIDGET(data->add_sample_button), gtk_toggle_button_get_active(button)); + gtk_widget_set_sensitive(GTK_WIDGET(data->add_sample_button), + gtk_toggle_button_get_active(button)); } -static void _update_size(dt_lib_module_t *self, dt_lib_colorpicker_size_t size) +static void _update_size(dt_lib_module_t *self, + const dt_lib_colorpicker_size_t size) { dt_lib_colorpicker_t *data = self->data; data->primary_sample.size = size; @@ -227,7 +244,8 @@ /* set sample area proxy impl */ -static void _set_sample_box_area(dt_lib_module_t *self, const dt_boundingbox_t box) +static void _set_sample_box_area(dt_lib_module_t *self, + const dt_boundingbox_t box) { dt_lib_colorpicker_t *data = self->data; @@ -238,7 +256,8 @@ _update_size(self, DT_LIB_COLORPICKER_SIZE_BOX); } -static void _set_sample_point(dt_lib_module_t *self, const float pos[2]) +static void _set_sample_point(dt_lib_module_t *self, + const float pos[2]) { dt_lib_colorpicker_t *data = self->data; @@ -249,29 +268,37 @@ _update_size(self, DT_LIB_COLORPICKER_SIZE_POINT); } -static void _setup_sample(dt_lib_module_t *self, const gboolean denoise, const gboolean pick_output) +static void _setup_sample(dt_lib_module_t *self, + const gboolean denoise, + const gboolean pick_output) { dt_lib_colorpicker_t *data = self->data; data->primary_sample.denoise = denoise; data->primary_sample.pick_output = pick_output; } -static gboolean _sample_tooltip_callback(GtkWidget *widget, gint x, gint y, gboolean keyboard_mode, - GtkTooltip *tooltip, const dt_colorpicker_sample_t *sample) +static gboolean _sample_tooltip_callback(GtkWidget *widget, + const gint x, + const gint y, + const gboolean keyboard_mode, + GtkTooltip *tooltip, + const dt_colorpicker_sample_t *sample) { gchar **sample_parts = g_malloc0_n(14, sizeof(char*)); sample_parts[3] = g_strdup_printf("%22s(0x%02X%02X%02X)\n<big><b>%14s</b></big>", " ", - CLAMP(sample->label_rgb[0], 0, 255), CLAMP(sample->label_rgb[1], 0, 255), + CLAMP(sample->label_rgb[0], 0, 255), + CLAMP(sample->label_rgb[1], 0, 255), CLAMP(sample->label_rgb[2], 0, 255), _("RGB")); sample_parts[7] = g_strdup_printf("\n<big><b>%14s</b></big>", _("Lab")); for(int i = 0; i < DT_PICK_N; i++) { - sample_parts[i] = g_strdup_printf("<span background='#%02X%02X%02X'>%32s</span>", - (int)roundf(CLAMP(sample->display[i][0], 0.f, 1.f) * 255.f), - (int)roundf(CLAMP(sample->display[i][1], 0.f, 1.f) * 255.f), - (int)roundf(CLAMP(sample->display[i][2], 0.f, 1.f) * 255.f), " "); + sample_parts[i] = g_strdup_printf + ("<span background='#%02X%02X%02X'>%32s</span>", + (int)roundf(CLAMP(sample->display[i][0], 0.f, 1.f) * 255.f), + (int)roundf(CLAMP(sample->display[i][1], 0.f, 1.f) * 255.f), + (int)roundf(CLAMP(sample->display[i][2], 0.f, 1.f) * 255.f), " "); sample_parts[i + 4] = g_strdup_printf("<span foreground='#FF7F7F'>%6d</span> " "<span foreground='#7FFF7F'>%6d</span> " @@ -282,7 +309,9 @@ _(dt_lib_colorpicker_statistic_names[i])); sample_parts[i + 8] = g_strdup_printf("%6.02f %6.02f %6.02f %s", - sample->lab[i][0], sample->lab[i][1], sample->lab[i][2], + sample->lab[i][0], + sample->lab[i][1], + sample->lab[i][2], _(dt_lib_colorpicker_statistic_names[i])); } @@ -300,7 +329,8 @@ view = gtk_text_view_new(); dt_gui_add_class(view, "dt_transparent_background"); dt_gui_add_class(view, "dt_monospace"); - g_signal_connect(G_OBJECT(view), "destroy", G_CALLBACK(gtk_widget_destroyed), &view); + g_signal_connect(G_OBJECT(view), "destroy", + G_CALLBACK(gtk_widget_destroyed), &view); } GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view)); @@ -309,37 +339,45 @@ gtk_text_buffer_get_start_iter(buffer, &iter); gtk_text_buffer_insert_markup(buffer, &iter, tooltip_text, -1); gtk_tooltip_set_custom(tooltip, view); - gtk_widget_map(view); // FIXME: workaround added in order to fix #9908, probably a Gtk issue, remove when fixed upstream + gtk_widget_map(view); // FIXME: workaround added in order to fix + // #9908, probably a Gtk issue, remove when + // fixed upstream g_free(tooltip_text); return TRUE; } -static void _statistic_changed(GtkWidget *widget, dt_lib_module_t *self) +static void _statistic_changed(GtkWidget *widget, + dt_lib_module_t *self) { dt_lib_colorpicker_t *data = self->data; data->statistic = dt_bauhaus_combobox_get(widget); darktable.lib->proxy.colorpicker.statistic = (int)data->statistic; - dt_conf_set_string("ui_last/colorpicker_mode", dt_lib_colorpicker_statistic_names[data->statistic]); + dt_conf_set_string("ui_last/colorpicker_mode", + dt_lib_colorpicker_statistic_names[data->statistic]); _update_picker_output(self); _update_samples_output(self); if(darktable.lib->proxy.colorpicker.display_samples) - dt_dev_invalidate_from_gui(darktable.develop); + dt_dev_invalidate_all(darktable.develop); } -static void _color_mode_changed(GtkWidget *widget, dt_lib_module_t *self) +static void _color_mode_changed(GtkWidget *widget, + dt_lib_module_t *self) { dt_lib_colorpicker_t *data = self->data; data->model = dt_bauhaus_combobox_get(widget); - dt_conf_set_string("ui_last/colorpicker_model", dt_lib_colorpicker_model_names[data->model]); + dt_conf_set_string("ui_last/colorpicker_model", + dt_lib_colorpicker_model_names[data->model]); _update_picker_output(self); _update_samples_output(self); } -static void _label_size_allocate_callback(GtkWidget *widget, GdkRectangle *allocation, gpointer user_data) +static void _label_size_allocate_callback(GtkWidget *widget, + GdkRectangle *allocation, + gpointer user_data) { gint label_width; gtk_label_set_attributes(GTK_LABEL(widget), NULL); @@ -359,21 +397,23 @@ } } -static gboolean _sample_enter_callback(GtkWidget *widget, GdkEvent *event, dt_colorpicker_sample_t *sample) +static gboolean _sample_enter_callback(GtkWidget *widget, + GdkEvent *event, + dt_colorpicker_sample_t *sample) { - if(darktable.lib->proxy.colorpicker.picker_proxy) - { - darktable.lib->proxy.colorpicker.selected_sample = sample; - if(darktable.lib->proxy.colorpicker.display_samples) - dt_dev_invalidate_from_gui(darktable.develop); - else - dt_control_queue_redraw_center(); - } + darktable.lib->proxy.colorpicker.selected_sample = sample; + + if(darktable.lib->proxy.colorpicker.display_samples) + dt_dev_invalidate_all(darktable.develop); + + dt_control_queue_redraw_center(); return FALSE; } -static gboolean _sample_leave_callback(GtkWidget *widget, GdkEvent *event, gpointer data) +static gboolean _sample_leave_callback(GtkWidget *widget, + GdkEvent *event, + gpointer data) { if(event->crossing.detail == GDK_NOTIFY_INFERIOR) return FALSE; @@ -381,9 +421,9 @@ { darktable.lib->proxy.colorpicker.selected_sample = NULL; if(darktable.lib->proxy.colorpicker.display_samples) - dt_dev_invalidate_from_gui(darktable.develop); - else - dt_control_queue_redraw_center(); + dt_dev_invalidate_all(darktable.develop); + + dt_control_queue_redraw_center(); } return FALSE; @@ -397,13 +437,16 @@ free(sample); } -static void _remove_sample_cb(GtkButton *widget, dt_colorpicker_sample_t *sample) +static void _remove_sample_cb(GtkButton *widget, + dt_colorpicker_sample_t *sample) { _remove_sample(sample); - dt_dev_invalidate_from_gui(darktable.develop); + dt_dev_invalidate_all(darktable.develop); } -static gboolean _live_sample_button(GtkWidget *widget, GdkEventButton *event, dt_colorpicker_sample_t *sample) +static gboolean _live_sample_button(GtkWidget *widget, + GdkEventButton *event, + dt_colorpicker_sample_t *sample) { if(event->button == 1) { @@ -428,43 +471,52 @@ if(picker->module) { - picker->module->dev->preview_status = DT_DEV_PIXELPIPE_DIRTY; - dt_control_queue_redraw_center(); + picker->module->dev->preview_pipe->status = DT_DEV_PIXELPIPE_DIRTY; } else { - dt_dev_invalidate_from_gui(darktable.develop); + dt_dev_invalidate_all(darktable.develop); } + dt_control_queue_redraw_center(); } return FALSE; } -static void _add_sample(GtkButton *widget, dt_lib_module_t *self) +static void _add_sample(GtkButton *widget, + dt_lib_module_t *self) { if(!darktable.lib->proxy.colorpicker.picker_proxy) return; dt_lib_colorpicker_t *data = self->data; - dt_colorpicker_sample_t *sample = (dt_colorpicker_sample_t *)malloc(sizeof(dt_colorpicker_sample_t)); + dt_colorpicker_sample_t *sample = + (dt_colorpicker_sample_t *)malloc(sizeof(dt_colorpicker_sample_t)); memcpy(sample, &data->primary_sample, sizeof(dt_colorpicker_sample_t)); sample->locked = FALSE; sample->container = gtk_event_box_new(); - gtk_widget_add_events(sample->container, GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); - g_signal_connect(G_OBJECT(sample->container), "enter-notify-event", G_CALLBACK(_sample_enter_callback), sample); - g_signal_connect(G_OBJECT(sample->container), "leave-notify-event", G_CALLBACK(_sample_leave_callback), sample); + gtk_widget_add_events(sample->container, + GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); + g_signal_connect(G_OBJECT(sample->container), "enter-notify-event", + G_CALLBACK(_sample_enter_callback), sample); + g_signal_connect(G_OBJECT(sample->container), "leave-notify-event", + G_CALLBACK(_sample_leave_callback), sample); GtkWidget *container = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_container_add(GTK_CONTAINER(sample->container), container); sample->color_patch = gtk_drawing_area_new(); gtk_widget_add_events(sample->color_patch, GDK_BUTTON_PRESS_MASK); - gtk_widget_set_tooltip_text(sample->color_patch, _("hover to highlight sample on canvas,\n" - "click to lock sample,\n" - "right-click to load sample area into active color picker")); - g_signal_connect(G_OBJECT(sample->color_patch), "button-press-event", G_CALLBACK(_live_sample_button), sample); - g_signal_connect(G_OBJECT(sample->color_patch), "draw", G_CALLBACK(_sample_draw_callback), sample); + gtk_widget_set_tooltip_text + (sample->color_patch, + _("hover to highlight sample on canvas,\n" + "click to lock sample,\n" + "right-click to load sample area into active color picker")); + g_signal_connect(G_OBJECT(sample->color_patch), "button-press-event", + G_CALLBACK(_live_sample_button), sample); + g_signal_connect(G_OBJECT(sample->color_patch), "draw", + G_CALLBACK(_sample_draw_callback), sample); GtkWidget *color_patch_wrapper = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_set_name(color_patch_wrapper, "live-sample"); @@ -476,15 +528,19 @@ gtk_label_set_ellipsize(GTK_LABEL(sample->output_label), PANGO_ELLIPSIZE_START); gtk_label_set_selectable(GTK_LABEL(sample->output_label), TRUE); gtk_widget_set_has_tooltip(sample->output_label, TRUE); - g_signal_connect(G_OBJECT(sample->output_label), "query-tooltip", G_CALLBACK(_sample_tooltip_callback), sample); - g_signal_connect(G_OBJECT(sample->output_label), "size-allocate", G_CALLBACK(_label_size_allocate_callback), sample); + g_signal_connect(G_OBJECT(sample->output_label), "query-tooltip", + G_CALLBACK(_sample_tooltip_callback), sample); + g_signal_connect(G_OBJECT(sample->output_label), "size-allocate", + G_CALLBACK(_label_size_allocate_callback), sample); gtk_box_pack_start(GTK_BOX(container), sample->output_label, TRUE, TRUE, 0); GtkWidget *delete_button = dtgtk_togglebutton_new(dtgtk_cairo_paint_remove, 0, NULL); - g_signal_connect(G_OBJECT(delete_button), "clicked", G_CALLBACK(_remove_sample_cb), sample); + g_signal_connect(G_OBJECT(delete_button), "clicked", + G_CALLBACK(_remove_sample_cb), sample); gtk_box_pack_start(GTK_BOX(container), delete_button, FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(data->samples_container), sample->container, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(data->samples_container), + sample->container, FALSE, FALSE, 0); gtk_widget_show_all(sample->container); darktable.lib->proxy.colorpicker.live_samples @@ -496,29 +552,37 @@ // Updating the display _update_samples_output(self); if(darktable.lib->proxy.colorpicker.display_samples) - dt_dev_invalidate_from_gui(darktable.develop); - else - dt_control_queue_redraw_center(); + dt_dev_invalidate_all(darktable.develop); + + dt_control_queue_redraw_center(); } -static void _display_samples_changed(GtkToggleButton *button, gpointer data) +static void _display_samples_changed(GtkToggleButton *button, + gpointer data) { - dt_conf_set_bool("ui_last/colorpicker_display_samples", gtk_toggle_button_get_active(button)); + dt_conf_set_bool("ui_last/colorpicker_display_samples", + gtk_toggle_button_get_active(button)); darktable.lib->proxy.colorpicker.display_samples = gtk_toggle_button_get_active(button); - dt_dev_invalidate_from_gui(darktable.develop); + dt_dev_invalidate_all(darktable.develop); + dt_control_queue_redraw_center(); } -static void _restrict_histogram_changed(GtkToggleButton *button, gpointer data) +static void _restrict_histogram_changed(GtkToggleButton *button, + gpointer data) { - dt_conf_set_bool("ui_last/colorpicker_restrict_histogram", gtk_toggle_button_get_active(button)); - darktable.lib->proxy.colorpicker.restrict_histogram = gtk_toggle_button_get_active(button); - dt_dev_invalidate_from_gui(darktable.develop); + dt_conf_set_bool("ui_last/colorpicker_restrict_histogram", + gtk_toggle_button_get_active(button)); + darktable.lib->proxy.colorpicker.restrict_histogram = + gtk_toggle_button_get_active(button); + dt_dev_invalidate_all(darktable.develop); + dt_control_queue_redraw_center(); } void gui_init(dt_lib_module_t *self) { // Initializing self data structure - dt_lib_colorpicker_t *data = (dt_lib_colorpicker_t *)calloc(1, sizeof(dt_lib_colorpicker_t)); + dt_lib_colorpicker_t *data = + (dt_lib_colorpicker_t *)calloc(1, sizeof(dt_lib_colorpicker_t)); self->data = (void *)data; @@ -527,7 +591,8 @@ // Initializing proxy functions and data darktable.lib->proxy.colorpicker.module = self; - darktable.lib->proxy.colorpicker.display_samples = dt_conf_get_bool("ui_last/colorpicker_display_samples"); + darktable.lib->proxy.colorpicker.display_samples = + dt_conf_get_bool("ui_last/colorpicker_display_samples"); darktable.lib->proxy.colorpicker.primary_sample = &data->primary_sample; darktable.lib->proxy.colorpicker.picker_proxy = NULL; darktable.lib->proxy.colorpicker.live_samples = NULL; @@ -559,50 +624,66 @@ GtkWidget *color_patch = gtk_drawing_area_new(); data->large_color_patch = color_patch; gtk_widget_set_tooltip_text(color_patch, _("click to (un)hide large color patch")); - gtk_widget_set_events(color_patch, GDK_BUTTON_PRESS_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); - g_signal_connect(G_OBJECT(color_patch), "draw", G_CALLBACK(_sample_draw_callback), &data->primary_sample); - g_signal_connect(G_OBJECT(color_patch), "button-press-event", G_CALLBACK(_large_patch_toggle), data); - g_signal_connect(G_OBJECT(color_patch), "enter-notify-event", G_CALLBACK(_sample_enter_callback), &data->primary_sample); - g_signal_connect(G_OBJECT(color_patch), "leave-notify-event", G_CALLBACK(_sample_leave_callback), &data->primary_sample); + gtk_widget_set_events(color_patch, + GDK_BUTTON_PRESS_MASK + | GDK_ENTER_NOTIFY_MASK + | GDK_LEAVE_NOTIFY_MASK); + g_signal_connect(G_OBJECT(color_patch), "draw", + G_CALLBACK(_sample_draw_callback), &data->primary_sample); + g_signal_connect(G_OBJECT(color_patch), "button-press-event", + G_CALLBACK(_large_patch_toggle), data); + g_signal_connect(G_OBJECT(color_patch), "enter-notify-event", + G_CALLBACK(_sample_enter_callback), &data->primary_sample); + g_signal_connect(G_OBJECT(color_patch), "leave-notify-event", + G_CALLBACK(_sample_leave_callback), &data->primary_sample); gtk_box_pack_start(GTK_BOX(color_patch_wrapper), color_patch, TRUE, TRUE, 0); gtk_widget_show(color_patch); - gtk_widget_set_no_show_all(color_patch_wrapper, dt_conf_get_bool("ui_last/colorpicker_large") == FALSE); + gtk_widget_set_no_show_all(color_patch_wrapper, + dt_conf_get_bool("ui_last/colorpicker_large") == FALSE); gtk_box_pack_start(GTK_BOX(self->widget), color_patch_wrapper, FALSE, FALSE, 0); // The picker button, mode and statistic combo boxes GtkWidget *picker_row = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - data->statistic_selector = dt_bauhaus_combobox_new_full(DT_ACTION(self), NULL, N_("statistic"), - _("select which statistic to show"), - data->statistic, (GtkCallback)_statistic_changed, - self, dt_lib_colorpicker_statistic_names); + data->statistic_selector = + dt_bauhaus_combobox_new_full(DT_ACTION(self), NULL, N_("statistic"), + _("select which statistic to show"), + data->statistic, (GtkCallback)_statistic_changed, + self, dt_lib_colorpicker_statistic_names); dt_bauhaus_combobox_set_entries_ellipsis(data->statistic_selector, PANGO_ELLIPSIZE_NONE); dt_bauhaus_widget_set_label(data->statistic_selector, NULL, NULL); gtk_widget_set_valign(data->statistic_selector, GTK_ALIGN_CENTER); gtk_box_pack_start(GTK_BOX(picker_row), data->statistic_selector, TRUE, TRUE, 0); - data->color_mode_selector = dt_bauhaus_combobox_new_full(DT_ACTION(self), NULL, N_("color mode"), - _("select which color mode to use"), - data->model, (GtkCallback)_color_mode_changed, self, - dt_lib_colorpicker_model_names); + data->color_mode_selector = + dt_bauhaus_combobox_new_full(DT_ACTION(self), NULL, N_("color mode"), + _("select which color mode to use"), + data->model, (GtkCallback)_color_mode_changed, self, + dt_lib_colorpicker_model_names); dt_bauhaus_combobox_set_entries_ellipsis(data->color_mode_selector, PANGO_ELLIPSIZE_NONE); dt_bauhaus_widget_set_label(data->color_mode_selector, NULL, NULL); gtk_widget_set_valign(data->color_mode_selector, GTK_ALIGN_CENTER); gtk_box_pack_start(GTK_BOX(picker_row), data->color_mode_selector, TRUE, TRUE, 0); data->picker_button = dt_color_picker_new(NULL, DT_COLOR_PICKER_POINT_AREA, picker_row); - gtk_widget_set_tooltip_text(data->picker_button, _("turn on color picker\nctrl+click or right-click to select an area")); + gtk_widget_set_tooltip_text + (data->picker_button, + _("turn on color picker\nctrl+click or right-click to select an area")); gtk_widget_set_name(GTK_WIDGET(data->picker_button), "color-picker-button"); - g_signal_connect(G_OBJECT(data->picker_button), "toggled", G_CALLBACK(_picker_button_toggled), data); - dt_action_define(DT_ACTION(self), NULL, N_("pick color"), data->picker_button, &dt_action_def_toggle); + g_signal_connect(G_OBJECT(data->picker_button), "toggled", + G_CALLBACK(_picker_button_toggled), data); + dt_action_define(DT_ACTION(self), NULL, N_("pick color"), + data->picker_button, &dt_action_def_toggle); gtk_box_pack_start(GTK_BOX(self->widget), picker_row, TRUE, TRUE, 0); // The small sample, label and add button GtkWidget *sample_row_events = gtk_event_box_new(); gtk_widget_add_events(sample_row_events, GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); - g_signal_connect(G_OBJECT(sample_row_events), "enter-notify-event", G_CALLBACK(_sample_enter_callback), &data->primary_sample); - g_signal_connect(G_OBJECT(sample_row_events), "leave-notify-event", G_CALLBACK(_sample_leave_callback), &data->primary_sample); + g_signal_connect(G_OBJECT(sample_row_events), "enter-notify-event", + G_CALLBACK(_sample_enter_callback), &data->primary_sample); + g_signal_connect(G_OBJECT(sample_row_events), "leave-notify-event", + G_CALLBACK(_sample_leave_callback), &data->primary_sample); gtk_box_pack_start(GTK_BOX(self->widget), sample_row_events, TRUE, TRUE, 0); GtkWidget *sample_row = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); @@ -611,8 +692,10 @@ data->primary_sample.color_patch = color_patch = gtk_drawing_area_new(); gtk_widget_set_tooltip_text(color_patch, _("click to (un)hide large color patch")); gtk_widget_set_events(color_patch, GDK_BUTTON_PRESS_MASK); - g_signal_connect(G_OBJECT(color_patch), "button-press-event", G_CALLBACK(_large_patch_toggle), data); - g_signal_connect(G_OBJECT(color_patch), "draw", G_CALLBACK(_sample_draw_callback), &data->primary_sample); + g_signal_connect(G_OBJECT(color_patch), "button-press-event", + G_CALLBACK(_large_patch_toggle), data); + g_signal_connect(G_OBJECT(color_patch), "draw", + G_CALLBACK(_sample_draw_callback), &data->primary_sample); color_patch_wrapper = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_set_name(color_patch_wrapper, "live-sample"); @@ -625,15 +708,19 @@ gtk_label_set_selectable(GTK_LABEL(label), TRUE); dt_gui_add_class(label, "dt_monospace"); gtk_widget_set_has_tooltip(label, TRUE); - g_signal_connect(G_OBJECT(label), "query-tooltip", G_CALLBACK(_sample_tooltip_callback), &data->primary_sample); - g_signal_connect(G_OBJECT(label), "size-allocate", G_CALLBACK(_label_size_allocate_callback), &data->primary_sample); + g_signal_connect(G_OBJECT(label), "query-tooltip", + G_CALLBACK(_sample_tooltip_callback), &data->primary_sample); + g_signal_connect(G_OBJECT(label), "size-allocate", + G_CALLBACK(_label_size_allocate_callback), &data->primary_sample); gtk_box_pack_start(GTK_BOX(sample_row), label, TRUE, TRUE, 0); data->add_sample_button = dtgtk_button_new(dtgtk_cairo_paint_square_plus, 0, NULL); ; gtk_widget_set_sensitive(data->add_sample_button, FALSE); - g_signal_connect(G_OBJECT(data->add_sample_button), "clicked", G_CALLBACK(_add_sample), self); - dt_action_define(DT_ACTION(self), NULL, N_("add sample"), data->add_sample_button, &dt_action_def_button); + g_signal_connect(G_OBJECT(data->add_sample_button), "clicked", + G_CALLBACK(_add_sample), self); + dt_action_define(DT_ACTION(self), NULL, N_("add sample"), + data->add_sample_button, &dt_action_def_button); gtk_box_pack_end(GTK_BOX(sample_row), data->add_sample_button, FALSE, FALSE, 0); // Adding the live samples section @@ -643,23 +730,31 @@ data->samples_container = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_box_pack_start(GTK_BOX(self->widget), - dt_ui_resize_wrap(data->samples_container, 1, "plugins/darkroom/colorpicker/windowheight"), TRUE, TRUE, 0); - - data->display_samples_check_box = gtk_check_button_new_with_label(_("display samples on image/vectorscope")); - gtk_label_set_ellipsize(GTK_LABEL(gtk_bin_get_child(GTK_BIN(data->display_samples_check_box))), - PANGO_ELLIPSIZE_MIDDLE); + dt_ui_resize_wrap(data->samples_container, 1, + "plugins/darkroom/colorpicker/windowheight"), + TRUE, TRUE, 0); + + data->display_samples_check_box = + gtk_check_button_new_with_label(_("display samples on image/vectorscope")); + gtk_label_set_ellipsize + (GTK_LABEL(gtk_bin_get_child(GTK_BIN(data->display_samples_check_box))), + PANGO_ELLIPSIZE_MIDDLE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->display_samples_check_box), dt_conf_get_bool("ui_last/colorpicker_display_samples")); g_signal_connect(G_OBJECT(data->display_samples_check_box), "toggled", G_CALLBACK(_display_samples_changed), NULL); gtk_box_pack_start(GTK_BOX(self->widget), data->display_samples_check_box, TRUE, TRUE, 0); - GtkWidget *restrict_button = gtk_check_button_new_with_label(_("restrict scope to selection")); - gtk_label_set_ellipsize(GTK_LABEL(gtk_bin_get_child(GTK_BIN(restrict_button))), PANGO_ELLIPSIZE_MIDDLE); + GtkWidget *restrict_button = + gtk_check_button_new_with_label(_("restrict scope to selection")); + gtk_label_set_ellipsize + (GTK_LABEL(gtk_bin_get_child(GTK_BIN(restrict_button))), + PANGO_ELLIPSIZE_MIDDLE); gboolean restrict_histogram = dt_conf_get_bool("ui_last/colorpicker_restrict_histogram"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(restrict_button), restrict_histogram); darktable.lib->proxy.colorpicker.restrict_histogram = restrict_histogram; - g_signal_connect(G_OBJECT(restrict_button), "toggled", G_CALLBACK(_restrict_histogram_changed), NULL); + g_signal_connect(G_OBJECT(restrict_button), "toggled", + G_CALLBACK(_restrict_histogram_changed), NULL); gtk_box_pack_start(GTK_BOX(self->widget), restrict_button, TRUE, TRUE, 0); } @@ -691,7 +786,7 @@ if(darktable.lib->proxy.colorpicker.restrict_histogram && darktable.lib->proxy.colorpicker.picker_proxy) { - dt_dev_invalidate_from_gui(darktable.develop); + dt_dev_invalidate_all(darktable.develop); } dt_iop_color_picker_reset(NULL, FALSE); @@ -721,11 +816,12 @@ if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->display_samples_check_box))) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->display_samples_check_box), FALSE); else - dt_dev_invalidate_from_gui(darktable.develop); + dt_dev_invalidate_all(darktable.develop); // redraw without a picker dt_control_queue_redraw_center(); } + // clang-format off // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py // vim: shiftwidth=2 expandtab tabstop=2 cindent diff -Nru darktable-4.4.2/src/libs/duplicate.c darktable-4.6.1/src/libs/duplicate.c --- darktable-4.4.2/src/libs/duplicate.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/duplicate.c 2024-02-16 17:31:09.000000000 +0000 @@ -42,9 +42,13 @@ GtkWidget *duplicate_box; dt_imgid_t imgid; - cairo_surface_t *preview_surf; - size_t processed_width; - size_t processed_height; + uint8_t *buf; + float scale; + size_t buf_width; + size_t buf_height; + float zoom_x; + float zoom_y; + dt_view_context_t view_ctx; int preview_id; @@ -191,10 +195,10 @@ { // we leave the view. Let's destroy preview surf if any dt_lib_duplicate_t *d = (dt_lib_duplicate_t *)self->data; - if(d->preview_surf) + if(d->buf) { - cairo_surface_destroy(d->preview_surf); - d->preview_surf = NULL; + dt_free_align(d->buf); + d->buf = NULL; } } void gui_post_expose(dt_lib_module_t *self, @@ -213,24 +217,22 @@ if(!view_ok || d->preview_id != d->imgid) { - uint8_t *buf = NULL; - size_t processed_width; - size_t processed_height; + if(d->buf) + dt_free_align(d->buf); - dt_dev_image(d->imgid, width, height, -1, &buf, &processed_width, &processed_height); + dt_dev_image(d->imgid, width, height, -1, + &d->buf, &d->scale, + &d->buf_width, &d->buf_height, + &d->zoom_x, &d->zoom_y, -1); d->preview_id = d->imgid; - d->processed_width = processed_width; - d->processed_height = processed_height; - - if(d->preview_surf) - cairo_surface_destroy(d->preview_surf); - d->preview_surf = dt_view_create_surface(buf, processed_width, processed_height); } - if(d->preview_surf) - dt_view_paint_surface(cri, width, height, d->preview_surf, - d->processed_width, d->processed_height, DT_WINDOW_MAIN); + if(d->buf) + dt_view_paint_surface(cri, width, height, &darktable.develop->full, DT_WINDOW_MAIN, + d->buf, d->scale, + d->buf_width, d->buf_height, + d->zoom_x, d->zoom_y); } static void _thumb_remove(gpointer user_data) @@ -250,10 +252,10 @@ d->imgid = NO_IMGID; // we drop the preview if any - if(d->preview_surf) + if(d->buf) { - cairo_surface_destroy(d->preview_surf); - d->preview_surf = NULL; + dt_free_align(d->buf); + d->buf = NULL; } // we drop all the thumbs g_list_free_full(d->thumbs, _thumb_remove); @@ -287,9 +289,15 @@ GtkWidget *hb = gtk_grid_new(); const dt_imgid_t imgid = sqlite3_column_int(stmt, 1); dt_gui_add_class(hb, "dt_overlays_always"); - dt_thumbnail_t *thumb = dt_thumbnail_new(100, 100, IMG_TO_FIT, imgid, -1, + dt_thumbnail_t *thumb = dt_thumbnail_new(100, + 100, + IMG_TO_FIT, + imgid, + -1, DT_THUMBNAIL_OVERLAYS_ALWAYS_NORMAL, - DT_THUMBNAIL_CONTAINER_LIGHTTABLE, TRUE); + DT_THUMBNAIL_CONTAINER_LIGHTTABLE, + TRUE, + DT_THUMBNAIL_SELECTION_UNSELECTED); thumb->sel_mode = DT_THUMBNAIL_SEL_MODE_DISABLED; thumb->disable_mouseover = TRUE; thumb->disable_actions = TRUE; @@ -384,9 +392,7 @@ self->data = (void *)d; d->imgid = NO_IMGID; - d->preview_surf = NULL; - d->processed_width = 0; - d->processed_height = 0; + d->buf = NULL; d->view_ctx = 0; self->widget = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); diff -Nru darktable-4.4.2/src/libs/export.c darktable-4.6.1/src/libs/export.c --- darktable-4.4.2/src/libs/export.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/export.c 2024-02-16 17:31:09.000000000 +0000 @@ -74,13 +74,17 @@ DT_DIMENSIONS_SCALE = 3 // set dimensions by scale } dt_dimensions_type_t; -char *dt_lib_export_metadata_configuration_dialog(char *list, const gboolean ondisk); -/** Updates the combo box and shows only the supported formats of current selected storage module */ +char *dt_lib_export_metadata_configuration_dialog(char *list, + const gboolean ondisk); +/** Updates the combo box and shows only the supported formats of + * current selected storage module */ static void _update_formats_combobox(dt_lib_export_t *d); /** Sets the max dimensions based upon what storage and format supports */ static void _update_dimensions(dt_lib_export_t *d); /** get the max output dimension supported by combination of storage and format.. */ -static void _get_max_output_dimension(dt_lib_export_t *d, uint32_t *width, uint32_t *height); +static void _get_max_output_dimension(dt_lib_export_t *d, + uint32_t *width, + uint32_t *height); static void _resync_print_dimensions(dt_lib_export_t *self); static void _resync_pixel_dimensions(dt_lib_export_t *self); @@ -112,7 +116,8 @@ static inline uint32_t print2pixels(dt_lib_export_t *self, const float value) { - const dt_dimensions_type_t d_type = (dt_dimensions_type_t)dt_bauhaus_combobox_get(self->dimensions_type); + const dt_dimensions_type_t d_type = + (dt_dimensions_type_t)dt_bauhaus_combobox_get(self->dimensions_type); switch(d_type) { case(DT_DIMENSIONS_PIXELS): @@ -129,9 +134,11 @@ return ceilf(value); } -static inline float pixels2print(dt_lib_export_t *self, const uint32_t pix) +static inline float pixels2print(dt_lib_export_t *self, + const uint32_t pix) { - const dt_dimensions_type_t d_type = (dt_dimensions_type_t)dt_bauhaus_combobox_get(self->dimensions_type); + const dt_dimensions_type_t d_type = + (dt_dimensions_type_t)dt_bauhaus_combobox_get(self->dimensions_type); switch(d_type) { case(DT_DIMENSIONS_PIXELS): @@ -163,8 +170,7 @@ uint32_t container(dt_lib_module_t *self) { - const dt_view_t *cv = dt_view_manager_get_current_view(darktable.view_manager); - if(cv->view((dt_view_t *)cv) == DT_VIEW_DARKROOM) + if(dt_view_get_current() == DT_VIEW_DARKROOM) return DT_UI_CONTAINER_PANEL_LEFT_CENTER; else return DT_UI_CONTAINER_PANEL_RIGHT_CENTER; @@ -178,19 +184,26 @@ const char *format_name = dt_conf_get_string_const(CONFIG_PREFIX "format_name"); const char *storage_name = dt_conf_get_string_const(CONFIG_PREFIX "storage_name"); - const int format_index = dt_imageio_get_index_of_format(dt_imageio_get_format_by_name(format_name)); - const int storage_index = dt_imageio_get_index_of_storage(dt_imageio_get_storage_by_name(storage_name)); + const int format_index = + dt_imageio_get_index_of_format(dt_imageio_get_format_by_name(format_name)); + const int storage_index = + dt_imageio_get_index_of_storage(dt_imageio_get_storage_by_name(storage_name)); - gtk_widget_set_sensitive(GTK_WIDGET(d->export_button), has_act_on && format_index != -1 && storage_index != -1); + gtk_widget_set_sensitive(GTK_WIDGET(d->export_button), + has_act_on && format_index != -1 && storage_index != -1); } -static void _image_selection_changed_callback(gpointer instance, dt_lib_module_t *self) +static void _image_selection_changed_callback(gpointer instance, + dt_lib_module_t *self) { dt_lib_gui_queue_update(self); } -static void _collection_updated_callback(gpointer instance, dt_collection_change_t query_change, - dt_collection_properties_t changed_property, gpointer imgs, int next, +static void _collection_updated_callback(gpointer instance, + const dt_collection_change_t query_change, + const dt_collection_properties_t changed_property, + gpointer imgs, + const int next, dt_lib_module_t *self) { dt_lib_gui_queue_update(self); @@ -270,29 +283,32 @@ static void _export_button_clicked(GtkWidget *widget, dt_lib_export_t *d) { - /* write current history changes so nothing gets lost, - do that only in the darkroom as there is nothing to be saved - when in the lighttable (and it would write over current history stack) */ - const dt_view_t *cv = dt_view_manager_get_current_view(darktable.view_manager); - if(cv->view(cv) == DT_VIEW_DARKROOM) dt_dev_write_history(darktable.develop); + /* write current history changes so nothing gets lost, do that only + in the darkroom as there is nothing to be saved when in the + lighttable (and it would write over current history stack) */ + if(dt_view_get_current() == DT_VIEW_DARKROOM) dt_dev_write_history(darktable.develop); char style[128] = { 0 }; - // get the format_name and storage_name settings which are plug-ins name and not necessary what is displayed on the combobox. - // note that we cannot take directly the combobox entry index as depending on the storage some format are not listed. + // get the format_name and storage_name settings which are plug-ins + // name and not necessary what is displayed on the combobox. note + // that we cannot take directly the combobox entry index as + // depending on the storage some format are not listed. const char *format_name = dt_conf_get_string_const(CONFIG_PREFIX "format_name"); const char *storage_name = dt_conf_get_string_const(CONFIG_PREFIX "storage_name"); - const int format_index = dt_imageio_get_index_of_format(dt_imageio_get_format_by_name(format_name)); - const int storage_index = dt_imageio_get_index_of_storage(dt_imageio_get_storage_by_name(storage_name)); + const int format_index = + dt_imageio_get_index_of_format(dt_imageio_get_format_by_name(format_name)); + const int storage_index = + dt_imageio_get_index_of_storage(dt_imageio_get_storage_by_name(storage_name)); if(format_index == -1) { - dt_control_log("invalid format for export selected"); + dt_control_log(_("invalid format for export selected")); return; } if(storage_index == -1) { - dt_control_log("invalid storage for export selected"); + dt_control_log(_("invalid storage for export selected")); return; } @@ -318,7 +334,8 @@ uint32_t max_height = dt_conf_get_int(CONFIG_PREFIX "height"); const gboolean upscale = dt_conf_get_bool(CONFIG_PREFIX "upscale"); - const gboolean scaledimension = dt_conf_get_int(CONFIG_PREFIX "dimensions_type") == DT_DIMENSIONS_SCALE; + const gboolean scaledimension = + dt_conf_get_int(CONFIG_PREFIX "dimensions_type") == DT_DIMENSIONS_SCALE; const gboolean high_quality = dt_conf_get_bool(CONFIG_PREFIX "high_quality_processing"); const gboolean export_masks = dt_conf_get_bool(CONFIG_PREFIX "export_masks"); const gboolean style_append = dt_conf_get_bool(CONFIG_PREFIX "style_append"); @@ -346,21 +363,27 @@ } } - const dt_colorspaces_color_profile_type_t icc_type = dt_conf_get_int(CONFIG_PREFIX "icctype"); + const dt_colorspaces_color_profile_type_t icc_type = + dt_conf_get_int(CONFIG_PREFIX "icctype"); gchar *icc_filename = dt_conf_get_string(CONFIG_PREFIX "iccprofile"); const dt_iop_color_intent_t icc_intent = dt_conf_get_int(CONFIG_PREFIX "iccintent"); GList *list = dt_act_on_get_images(TRUE, TRUE, TRUE); - dt_control_export(list, max_width, max_height, format_index, storage_index, high_quality, upscale, scaledimension, export_masks, - style, style_append, icc_type, icc_filename, icc_intent, d->metadata_export); + dt_control_export(list, max_width, max_height, format_index, storage_index, + high_quality, upscale, scaledimension, export_masks, + style, style_append, + icc_type, icc_filename, icc_intent, + d->metadata_export); g_free(icc_filename); _scale_optim(); - gtk_entry_set_text(GTK_ENTRY(d->scale), dt_conf_get_string_const(CONFIG_PREFIX "resizing_factor")); + gtk_entry_set_text(GTK_ENTRY(d->scale), + dt_conf_get_string_const(CONFIG_PREFIX "resizing_factor")); } -static void _scale_changed(GtkEntry *spin, dt_lib_export_t *d) +static void _scale_changed(GtkEntry *spin, + dt_lib_export_t *d) { const char *validSign = ",.0123456789"; const gchar *value = gtk_entry_get_text(spin); @@ -424,7 +447,9 @@ static void _width_changed(GtkEditable *entry, gpointer user_data); static void _height_changed(GtkEditable *entry, gpointer user_data); -static gboolean _scale_mdlclick(GtkEntry *spin, GdkEventButton *event, dt_lib_export_t *d) +static gboolean _scale_mdlclick(GtkEntry *spin, + GdkEventButton *event, + dt_lib_export_t *d) { if(event->button == 2) { @@ -440,7 +465,9 @@ return FALSE; } -static void _widht_mdlclick(GtkEntry *spin, GdkEventButton *event, gpointer user_data) +static void _widht_mdlclick(GtkEntry *spin, + GdkEventButton *event, + gpointer user_data) { if(event->button == 2) { @@ -455,7 +482,9 @@ } } -static void _height_mdlclick(GtkEntry *spin, GdkEventButton *event, gpointer user_data) +static void _height_mdlclick(GtkEntry *spin, + GdkEventButton *event, + gpointer user_data) { if(event->button == 2) { @@ -472,7 +501,8 @@ static void _size_in_px_update(dt_lib_export_t *d) { - const dt_dimensions_type_t d_type = (dt_dimensions_type_t)dt_bauhaus_combobox_get(d->dimensions_type); + const dt_dimensions_type_t d_type = + (dt_dimensions_type_t)dt_bauhaus_combobox_get(d->dimensions_type); if((d_type == DT_DIMENSIONS_SCALE) || (d_type == DT_DIMENSIONS_PIXELS)) { @@ -482,13 +512,17 @@ { gtk_widget_show(d->size_in_px); gchar size_in_px_txt[120]; - snprintf(size_in_px_txt, sizeof(size_in_px_txt) / sizeof(size_in_px_txt[0]), _("which is equal to %s × %s px"), - gtk_entry_get_text(GTK_ENTRY(d->width)), gtk_entry_get_text(GTK_ENTRY(d->height))); + snprintf(size_in_px_txt, sizeof(size_in_px_txt) / sizeof(size_in_px_txt[0]), + _("which is equal to %s × %s px"), + gtk_entry_get_text(GTK_ENTRY(d->width)), + gtk_entry_get_text(GTK_ENTRY(d->height))); gtk_label_set_text(GTK_LABEL(d->size_in_px), size_in_px_txt); } } -void _set_dimensions(dt_lib_export_t *d, uint32_t max_width, uint32_t max_height) +void _set_dimensions(dt_lib_export_t *d, + const uint32_t max_width, + const uint32_t max_height) { gchar *max_width_char = g_strdup_printf("%u", max_width); gchar *max_height_char = g_strdup_printf("%u", max_height); @@ -510,7 +544,8 @@ void _size_update_display(dt_lib_export_t *self) { - const dt_dimensions_type_t d_type = (dt_dimensions_type_t)dt_bauhaus_combobox_get(self->dimensions_type); + const dt_dimensions_type_t d_type = + (dt_dimensions_type_t)dt_bauhaus_combobox_get(self->dimensions_type); gtk_widget_set_visible(self->px_size, d_type == DT_DIMENSIONS_PIXELS); gtk_widget_set_visible(self->print_size, d_type == DT_DIMENSIONS_CM || d_type == DT_DIMENSIONS_INCH); @@ -526,20 +561,34 @@ // make sure we don't do anything useless: if(!dt_control_running()) return; dt_lib_export_t *d = (dt_lib_export_t *)self->data; - gtk_entry_set_text(GTK_ENTRY(d->width), dt_confgen_get(CONFIG_PREFIX "width", DT_DEFAULT)); - gtk_entry_set_text(GTK_ENTRY(d->height), dt_confgen_get(CONFIG_PREFIX "height", DT_DEFAULT)); - dt_bauhaus_combobox_set(d->dimensions_type, dt_confgen_get_int(CONFIG_PREFIX "dimensions_type", DT_DEFAULT)); + gtk_entry_set_text(GTK_ENTRY(d->width), + dt_confgen_get(CONFIG_PREFIX "width", DT_DEFAULT)); + gtk_entry_set_text(GTK_ENTRY(d->height), + dt_confgen_get(CONFIG_PREFIX "height", DT_DEFAULT)); + dt_bauhaus_combobox_set(d->dimensions_type, + dt_confgen_get_int(CONFIG_PREFIX "dimensions_type", DT_DEFAULT)); _size_update_display(d); // Set storage - const int storage_index = dt_imageio_get_index_of_storage(dt_imageio_get_storage_by_name(dt_confgen_get(CONFIG_PREFIX "storage_name", DT_DEFAULT))); + const int storage_index = + dt_imageio_get_index_of_storage(dt_imageio_get_storage_by_name + (dt_confgen_get(CONFIG_PREFIX "storage_name", + DT_DEFAULT))); dt_bauhaus_combobox_set(d->storage, storage_index); - dt_bauhaus_combobox_set(d->upscale, dt_confgen_get_bool(CONFIG_PREFIX "upscale", DT_DEFAULT) ? 1 : 0); - dt_bauhaus_combobox_set(d->high_quality, dt_confgen_get_bool(CONFIG_PREFIX "high_quality_processing", DT_DEFAULT) ? 1 : 0); - dt_bauhaus_combobox_set(d->export_masks, dt_confgen_get_bool(CONFIG_PREFIX "export_masks", DT_DEFAULT) ? 1 : 0); - - dt_bauhaus_combobox_set(d->intent, dt_confgen_get_int(CONFIG_PREFIX "iccintent", DT_DEFAULT) + 1); + dt_bauhaus_combobox_set(d->upscale, + dt_confgen_get_bool(CONFIG_PREFIX "upscale", + DT_DEFAULT) ? 1 : 0); + dt_bauhaus_combobox_set(d->high_quality, + dt_confgen_get_bool(CONFIG_PREFIX "high_quality_processing", + DT_DEFAULT) ? 1 : 0); + dt_bauhaus_combobox_set(d->export_masks, + dt_confgen_get_bool(CONFIG_PREFIX "export_masks", + DT_DEFAULT) ? 1 : 0); + + dt_bauhaus_combobox_set(d->intent, + dt_confgen_get_int(CONFIG_PREFIX "iccintent", + DT_DEFAULT) + 1); // iccprofile const int icctype = dt_confgen_get_int(CONFIG_PREFIX "icctype", DT_DEFAULT); @@ -547,9 +596,12 @@ dt_bauhaus_combobox_set(d->profile, 0); if(icctype != DT_COLORSPACE_NONE) { - for(GList *profiles = darktable.color_profiles->profiles; profiles; profiles = g_list_next(profiles)) + for(GList *profiles = darktable.color_profiles->profiles; + profiles; + profiles = g_list_next(profiles)) { - const dt_colorspaces_color_profile_t *pp = (dt_colorspaces_color_profile_t *)profiles->data; + const dt_colorspaces_color_profile_t *pp = + (dt_colorspaces_color_profile_t *)profiles->data; if(pp->out_pos > -1 && icctype == pp->type && (icctype != DT_COLORSPACE_FILE || !strcmp(iccfilename, pp->filename))) @@ -575,9 +627,11 @@ dt_bauhaus_combobox_set(d->style, 0); // style mode to overwrite as it was the initial behavior - dt_bauhaus_combobox_set(d->style_mode, dt_confgen_get_bool(CONFIG_PREFIX "style_append", DT_DEFAULT)); + dt_bauhaus_combobox_set(d->style_mode, + dt_confgen_get_bool(CONFIG_PREFIX "style_append", DT_DEFAULT)); - gtk_widget_set_visible(GTK_WIDGET(d->style_mode), dt_bauhaus_combobox_get(d->style)==0?FALSE:TRUE); + gtk_widget_set_visible(GTK_WIDGET(d->style_mode), + dt_bauhaus_combobox_get(d->style)==0?FALSE:TRUE); // export metadata presets g_free(d->metadata_export); @@ -591,7 +645,8 @@ dt_lib_gui_queue_update(self); } -static void set_format_by_name(dt_lib_export_t *d, const char *name) +static void set_format_by_name(dt_lib_export_t *d, + const char *name) { // Find the selected format plugin among all existing plugins dt_imageio_module_format_t *module = NULL; @@ -629,20 +684,25 @@ // Let's also update combination of storage/format dimension restrictions _update_dimensions(d); - // only some modules support export of masks - // set it to 0 when insensitive and restore when making it sensitive again. this doesn't survive dt restarts. - const gboolean support_layers = (module->flags(NULL) & FORMAT_FLAGS_SUPPORT_LAYERS) == FORMAT_FLAGS_SUPPORT_LAYERS; + // only some modules support export of masks set it to 0 when + // insensitive and restore when making it sensitive again. this + // doesn't survive dt restarts. + const gboolean support_layers = + (module->flags(NULL) & FORMAT_FLAGS_SUPPORT_LAYERS) == FORMAT_FLAGS_SUPPORT_LAYERS; + const gboolean is_enabled = gtk_widget_get_sensitive(d->export_masks); if(support_layers && !is_enabled) { - // combobox was disabled and shall be enabled. we want to restore the old setting. + // combobox was disabled and shall be enabled. we want to restore + // the old setting. const gboolean export_masks = dt_conf_get_bool(CONFIG_PREFIX "export_masks"); gtk_widget_set_sensitive(d->export_masks, TRUE); dt_bauhaus_combobox_set(d->export_masks, export_masks ? 1 : 0); } else if(!support_layers && is_enabled) { - // combobox was enabled but shall be disabled. we want to save the current setting. + // combobox was enabled but shall be disabled. we want to save the + // current setting. const int export_masks = dt_bauhaus_combobox_get(d->export_masks); dt_bauhaus_combobox_set(d->export_masks, 0); dt_conf_set_bool(CONFIG_PREFIX "export_masks", export_masks == 1); @@ -650,7 +710,8 @@ } } -static void _format_changed(GtkWidget *widget, dt_lib_export_t *d) +static void _format_changed(GtkWidget *widget, + dt_lib_export_t *d) { const gchar *name = dt_bauhaus_combobox_get_text(d->format); g_signal_handlers_block_by_func(widget, _format_changed, d); @@ -658,7 +719,9 @@ g_signal_handlers_unblock_by_func(widget, _format_changed, d); } -static void _get_max_output_dimension(dt_lib_export_t *d, uint32_t *width, uint32_t *height) +static void _get_max_output_dimension(dt_lib_export_t *d, + uint32_t *width, + uint32_t *height) { const char *storage_name = dt_conf_get_string_const(CONFIG_PREFIX "storage_name"); dt_imageio_module_storage_t *storage = dt_imageio_get_storage_by_name(storage_name); @@ -692,8 +755,12 @@ uint32_t height = atoi(gtk_entry_get_text(GTK_ENTRY(d->height))); if(width > d->max_allowed_width || height > d->max_allowed_height) { - width = width > d->max_allowed_width ? dt_conf_get_int(CONFIG_PREFIX "width") : width; - height = height > d->max_allowed_height ? dt_conf_get_int(CONFIG_PREFIX "height") : height; + width = width > d->max_allowed_width + ? dt_conf_get_int(CONFIG_PREFIX "width") + : width; + height = height > d->max_allowed_height + ? dt_conf_get_int(CONFIG_PREFIX "height") + : height; _set_dimensions(d, width, height); } } @@ -707,7 +774,8 @@ _validate_dimensions(d); } -static void set_storage_by_name(dt_lib_export_t *d, const char *name) +static void set_storage_by_name(dt_lib_export_t *d, + const char *name) { int k = -1; dt_imageio_module_storage_t *module = NULL; @@ -716,7 +784,8 @@ { dt_imageio_module_storage_t *storage = (dt_imageio_module_storage_t *)it->data; k++; - if(strcmp(storage->name(storage), name) == 0 || strcmp(storage->plugin_name, name) == 0) + if(strcmp(storage->name(storage), name) == 0 + || strcmp(storage->plugin_name, name) == 0) { module = storage; break; @@ -782,9 +851,12 @@ if(pos > 0) { pos--; - for(GList *profiles = darktable.color_profiles->profiles; profiles; profiles = g_list_next(profiles)) + for(GList *profiles = darktable.color_profiles->profiles; + profiles; + profiles = g_list_next(profiles)) { - const dt_colorspaces_color_profile_t *pp = (dt_colorspaces_color_profile_t *)profiles->data; + const dt_colorspaces_color_profile_t *pp = + (dt_colorspaces_color_profile_t *)profiles->data; if(pp->out_pos == pos) { dt_conf_set_int(CONFIG_PREFIX "icctype", pp->type); @@ -800,11 +872,13 @@ dt_conf_set_string(CONFIG_PREFIX "iccprofile", ""); } -static void _dimensions_type_changed(GtkWidget *widget, dt_lib_export_t *d) +static void _dimensions_type_changed(GtkWidget *widget, + dt_lib_export_t *d) { if(darktable.gui->reset) return; - const dt_dimensions_type_t d_type = (dt_dimensions_type_t)dt_bauhaus_combobox_get(widget); + const dt_dimensions_type_t d_type = + (dt_dimensions_type_t)dt_bauhaus_combobox_get(widget); dt_conf_set_int(CONFIG_PREFIX "dimensions_type", d_type); dt_conf_set_string(CONFIG_PREFIX "resizing", @@ -812,13 +886,15 @@ if(d_type == DT_DIMENSIONS_CM || d_type == DT_DIMENSIONS_INCH) { // set dpi to user-set dpi - dt_conf_set_int("metadata/resolution", dt_conf_get_int(CONFIG_PREFIX "print_dpi")); + dt_conf_set_int("metadata/resolution", + dt_conf_get_int(CONFIG_PREFIX "print_dpi")); _resync_print_dimensions(d); } else { // reset export dpi to default value for scale/pixel specific export - dt_conf_set_int("metadata/resolution", dt_confgen_get_int("metadata/resolution", DT_DEFAULT)); + dt_conf_set_int("metadata/resolution", + dt_confgen_get_int("metadata/resolution", DT_DEFAULT)); } _size_update_display(d); } @@ -994,7 +1070,8 @@ gtk_widget_set_sensitive(d->format, !empty); } -static void _on_storage_list_changed(gpointer instance, dt_lib_module_t *self) +static void _on_storage_list_changed(gpointer instance, + dt_lib_module_t *self) { dt_lib_export_t *d = self->data; dt_imageio_module_storage_t *storage = dt_imageio_get_storage(); @@ -1014,7 +1091,8 @@ dt_bauhaus_combobox_set(d->storage, dt_imageio_get_index_of_storage(storage)); } -static void _lib_export_styles_changed_callback(gpointer instance, gpointer user_data) +static void _lib_export_styles_changed_callback(gpointer instance, + gpointer user_data) { dt_lib_module_t *self = (dt_lib_module_t *)user_data; dt_lib_export_t *d = self->data; @@ -1037,14 +1115,17 @@ { dt_lib_export_t *d = (dt_lib_export_t *)self->data; const gchar *name = dt_bauhaus_combobox_get_text(d->storage); - const gboolean ondisk = name && !g_strcmp0(name, _("file on disk")); // FIXME: NO!!!!!one! - d->metadata_export = dt_lib_export_metadata_configuration_dialog(d->metadata_export, ondisk); + const gboolean ondisk = name + && !g_strcmp0(name, _("file on disk")); // FIXME: NO!!!!!one! + d->metadata_export = + dt_lib_export_metadata_configuration_dialog(d->metadata_export, ondisk); } void set_preferences(void *menu, dt_lib_module_t *self) { GtkWidget *mi = gtk_menu_item_new_with_label(_("preferences...")); - g_signal_connect(G_OBJECT(mi), "activate", G_CALLBACK(_menuitem_preferences), self); + g_signal_connect(G_OBJECT(mi), "activate", + G_CALLBACK(_menuitem_preferences), self); gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); } @@ -1068,7 +1149,10 @@ d->storage_extra_container = gtk_stack_new(); gtk_stack_set_homogeneous(GTK_STACK(d->storage_extra_container),FALSE); gtk_box_pack_start(GTK_BOX(self->widget), d->storage_extra_container, FALSE, TRUE, 0); - for(const GList *it = darktable.imageio->plugins_storage; it; it = g_list_next(it)) + + for(const GList *it = darktable.imageio->plugins_storage; + it; + it = g_list_next(it)) { const dt_imageio_module_storage_t *module = (dt_imageio_module_storage_t *)it->data; dt_bauhaus_combobox_add(d->storage, module->name(module)); @@ -1081,7 +1165,8 @@ // postponed so we can do the two steps in one loop DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_IMAGEIO_STORAGE_CHANGE, G_CALLBACK(_on_storage_list_changed), self); - g_signal_connect(G_OBJECT(d->storage), "value-changed", G_CALLBACK(_storage_changed), (gpointer)d); + g_signal_connect(G_OBJECT(d->storage), "value-changed", + G_CALLBACK(_storage_changed), (gpointer)d); label = dt_ui_section_label_new(C_("section", "format options")); gtk_box_pack_start(GTK_BOX(self->widget), label, FALSE, TRUE, 0); @@ -1089,7 +1174,8 @@ d->format = dt_bauhaus_combobox_new_action(DT_ACTION(self)); dt_bauhaus_widget_set_label(d->format, NULL, N_("file format")); gtk_box_pack_start(GTK_BOX(self->widget), d->format, FALSE, TRUE, 0); - g_signal_connect(G_OBJECT(d->format), "value-changed", G_CALLBACK(_format_changed), (gpointer)d); + g_signal_connect(G_OBJECT(d->format), "value-changed", + G_CALLBACK(_format_changed), (gpointer)d); // add all format widgets to the stack widget d->format_extra_container = gtk_stack_new(); @@ -1116,25 +1202,35 @@ N_("in inch (for print)"), N_("by scale (for file)")); - d->print_width = dt_action_entry_new(DT_ACTION(self), N_("print width"), G_CALLBACK(_print_width_changed), d, + d->print_width = dt_action_entry_new(DT_ACTION(self), + N_("print width"), + G_CALLBACK(_print_width_changed), d, _("maximum output width limit.\n" - "click middle mouse button to reset to 0."), NULL); + "click middle mouse button to reset to 0."), + NULL); - d->print_height = dt_action_entry_new(DT_ACTION(self), N_("print height"), G_CALLBACK(_print_height_changed), d, + d->print_height = dt_action_entry_new(DT_ACTION(self), N_("print height"), + G_CALLBACK(_print_height_changed), d, _("maximum output height limit.\n" - "click middle mouse button to reset to 0."), NULL); + "click middle mouse button to reset to 0."), + NULL); - d->print_dpi = dt_action_entry_new(DT_ACTION(self), N_("dpi"), G_CALLBACK(_print_dpi_changed), d, + d->print_dpi = dt_action_entry_new(DT_ACTION(self), N_("dpi"), + G_CALLBACK(_print_dpi_changed), d, _("resolution in dot per inch"), dt_conf_get_string_const(CONFIG_PREFIX "print_dpi")); - d->width = dt_action_entry_new(DT_ACTION(self), N_("width"), G_CALLBACK(_width_changed), d, + d->width = dt_action_entry_new(DT_ACTION(self), N_("width"), + G_CALLBACK(_width_changed), d, _("maximum output width limit.\n" - "click middle mouse button to reset to 0."), NULL); + "click middle mouse button to reset to 0."), + NULL); - d->height = dt_action_entry_new(DT_ACTION(self), N_("height"), G_CALLBACK(_height_changed), d, + d->height = dt_action_entry_new(DT_ACTION(self), N_("height"), + G_CALLBACK(_height_changed), d, _("maximum output height limit.\n" - "click middle mouse button to reset to 0."), NULL); + "click middle mouse button to reset to 0."), + NULL); d->print_size = gtk_flow_box_new(); gtk_flow_box_set_max_children_per_line(GTK_FLOW_BOX(d->print_size), 5); @@ -1149,7 +1245,8 @@ gtk_box_pack_start(dpi_box, d->print_dpi, TRUE, TRUE, 0); gtk_box_pack_start(dpi_box, gtk_label_new(_("dpi")), FALSE, FALSE, 0); gtk_container_add(GTK_CONTAINER(d->print_size), GTK_WIDGET(dpi_box)); - gtk_container_foreach(GTK_CONTAINER(d->print_size), (GtkCallback)gtk_widget_set_can_focus, GINT_TO_POINTER(FALSE)); + gtk_container_foreach(GTK_CONTAINER(d->print_size), + (GtkCallback)gtk_widget_set_can_focus, GINT_TO_POINTER(FALSE)); d->px_size = gtk_flow_box_new(); gtk_flow_box_set_max_children_per_line(GTK_FLOW_BOX(d->px_size), 3); @@ -1160,13 +1257,16 @@ gtk_box_pack_start(px_box, d->height, TRUE, TRUE, 0); gtk_box_pack_start(px_box, gtk_label_new(_("px")), FALSE, FALSE, 0); gtk_container_add(GTK_CONTAINER(d->px_size), GTK_WIDGET(px_box)); - gtk_container_foreach(GTK_CONTAINER(d->px_size), (GtkCallback)gtk_widget_set_can_focus, GINT_TO_POINTER(FALSE)); + gtk_container_foreach(GTK_CONTAINER(d->px_size), + (GtkCallback)gtk_widget_set_can_focus, GINT_TO_POINTER(FALSE)); - d->scale = dt_action_entry_new(DT_ACTION(self), N_("scale"), G_CALLBACK(_scale_changed), d, - _("it can be an integer, decimal number or simple fraction.\n" - "zero or empty values are equal to 1.\n" - "click middle mouse button to reset to 1."), - dt_conf_get_string_const(CONFIG_PREFIX "resizing_factor")); + d->scale = dt_action_entry_new + (DT_ACTION(self), N_("scale"), + G_CALLBACK(_scale_changed), d, + _("it can be an integer, decimal number or simple fraction.\n" + "zero or empty values are equal to 1.\n" + "click middle mouse button to reset to 1."), + dt_conf_get_string_const(CONFIG_PREFIX "resizing_factor")); gtk_widget_set_halign(GTK_WIDGET(d->scale), GTK_ALIGN_END); d->size_in_px = gtk_label_new(""); @@ -1176,30 +1276,42 @@ gtk_widget_set_halign(GTK_WIDGET(d->scale), GTK_ALIGN_FILL); gtk_widget_set_halign(GTK_WIDGET(d->size_in_px), GTK_ALIGN_END); - gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(d->dimensions_type), FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(d->px_size), FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(d->print_size), FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(d->scale), FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(d->size_in_px), FALSE, FALSE, 0); - - DT_BAUHAUS_COMBOBOX_NEW_FULL(d->upscale, self, NULL, N_("allow upscaling"), NULL, - dt_conf_get_bool(CONFIG_PREFIX "upscale") ? 1 : 0, _callback_bool, - (gpointer)CONFIG_PREFIX "upscale", - N_("no"), N_("yes")); + gtk_box_pack_start(GTK_BOX(self->widget), + GTK_WIDGET(d->dimensions_type), FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(self->widget), + GTK_WIDGET(d->px_size), FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(self->widget), + GTK_WIDGET(d->print_size), FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(self->widget), + GTK_WIDGET(d->scale), FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(self->widget), + GTK_WIDGET(d->size_in_px), FALSE, FALSE, 0); + + DT_BAUHAUS_COMBOBOX_NEW_FULL + (d->upscale, self, NULL, + N_("allow upscaling"), NULL, + dt_conf_get_bool(CONFIG_PREFIX "upscale") ? 1 : 0, + _callback_bool, + (gpointer)CONFIG_PREFIX "upscale", + N_("no"), N_("yes")); gtk_box_pack_start(GTK_BOX(self->widget), d->upscale, FALSE, TRUE, 0); - DT_BAUHAUS_COMBOBOX_NEW_FULL(d->high_quality, self, NULL, N_("high quality resampling"), - _("do high quality resampling during export"), - dt_conf_get_bool(CONFIG_PREFIX "high_quality_processing") ? 1 : 0, _callback_bool, - (gpointer)CONFIG_PREFIX "high_quality_processing", - N_("no"), N_("yes")); + DT_BAUHAUS_COMBOBOX_NEW_FULL + (d->high_quality, self, NULL, + N_("high quality resampling"), + _("do high quality resampling during export"), + dt_conf_get_bool(CONFIG_PREFIX "high_quality_processing") ? 1 : 0, _callback_bool, + (gpointer)CONFIG_PREFIX "high_quality_processing", + N_("no"), N_("yes")); gtk_box_pack_start(GTK_BOX(self->widget), d->high_quality, FALSE, TRUE, 0); - DT_BAUHAUS_COMBOBOX_NEW_FULL(d->export_masks, self, NULL, N_("store masks"), - _("store masks as layers in exported images. only works for some formats."), - dt_conf_get_bool(CONFIG_PREFIX "export_masks") ? 1 : 0, _callback_bool, - (gpointer)CONFIG_PREFIX "export_masks", - N_("no"), N_("yes")); + DT_BAUHAUS_COMBOBOX_NEW_FULL + (d->export_masks, self, NULL, + N_("store masks"), + _("store masks as layers in exported images. only works for some formats."), + dt_conf_get_bool(CONFIG_PREFIX "export_masks") ? 1 : 0, _callback_bool, + (gpointer)CONFIG_PREFIX "export_masks", + N_("no"), N_("yes")); gtk_box_pack_start(GTK_BOX(self->widget), d->export_masks, FALSE, TRUE, 0); // Add profile combo @@ -1259,17 +1371,21 @@ // Add check to control whether the style is to replace or append the current module - DT_BAUHAUS_COMBOBOX_NEW_FULL(d->style_mode, self, NULL, N_("mode"), - _("whether the style items are appended to the history or replacing the history"), - dt_conf_get_bool(CONFIG_PREFIX "style_append") ? 1 : 0, _callback_bool, - (gpointer)CONFIG_PREFIX "style_append", - N_("replace history"), N_("append history")); + DT_BAUHAUS_COMBOBOX_NEW_FULL + (d->style_mode, self, NULL, + N_("mode"), + _("whether the style items are appended to the history or replacing the history"), + dt_conf_get_bool(CONFIG_PREFIX "style_append") ? 1 : 0, _callback_bool, + (gpointer)CONFIG_PREFIX "style_append", + N_("replace history"), N_("append history")); gtk_box_pack_start(GTK_BOX(self->widget), d->style_mode, FALSE, TRUE, 0); // Set callback signals - g_signal_connect(G_OBJECT(d->profile), "value-changed", G_CALLBACK(_profile_changed), (gpointer)d); - g_signal_connect(G_OBJECT(d->style), "value-changed", G_CALLBACK(_style_changed), (gpointer)d); + g_signal_connect(G_OBJECT(d->profile), "value-changed", + G_CALLBACK(_profile_changed), (gpointer)d); + g_signal_connect(G_OBJECT(d->style), "value-changed", + G_CALLBACK(_style_changed), (gpointer)d); DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_STYLE_CHANGED, G_CALLBACK(_lib_export_styles_changed_callback), self); @@ -1278,8 +1394,11 @@ gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(hbox), FALSE, TRUE, 0); // Export button - d->export_button = GTK_BUTTON(dt_action_button_new(self, N_("export"), _export_button_clicked, d, - _("export with current settings"), GDK_KEY_e, GDK_CONTROL_MASK)); + d->export_button = GTK_BUTTON(dt_action_button_new + (self, NC_("actionbutton", "export"), + _export_button_clicked, d, + _("export with current settings"), + GDK_KEY_e, GDK_CONTROL_MASK)); gtk_box_pack_start(hbox, GTK_WIDGET(d->export_button), TRUE, TRUE, 0); gtk_widget_add_events(d->width, GDK_BUTTON_PRESS_MASK); @@ -1288,11 +1407,16 @@ gtk_widget_add_events(d->print_height, GDK_BUTTON_PRESS_MASK); gtk_widget_add_events(d->scale, GDK_BUTTON_PRESS_MASK); - g_signal_connect(G_OBJECT(d->width), "button-press-event", G_CALLBACK(_widht_mdlclick), (gpointer)d); - g_signal_connect(G_OBJECT(d->height), "button-press-event", G_CALLBACK(_height_mdlclick), (gpointer)d); - g_signal_connect(G_OBJECT(d->print_width), "button-press-event", G_CALLBACK(_widht_mdlclick), (gpointer)d); - g_signal_connect(G_OBJECT(d->print_height), "button-press-event", G_CALLBACK(_height_mdlclick), (gpointer)d); - g_signal_connect(G_OBJECT(d->scale), "button-press-event", G_CALLBACK(_scale_mdlclick), (gpointer)d); + g_signal_connect(G_OBJECT(d->width), "button-press-event", + G_CALLBACK(_widht_mdlclick), (gpointer)d); + g_signal_connect(G_OBJECT(d->height), "button-press-event", + G_CALLBACK(_height_mdlclick), (gpointer)d); + g_signal_connect(G_OBJECT(d->print_width), "button-press-event", + G_CALLBACK(_widht_mdlclick), (gpointer)d); + g_signal_connect(G_OBJECT(d->print_height), "button-press-event", + G_CALLBACK(_height_mdlclick), (gpointer)d); + g_signal_connect(G_OBJECT(d->scale), "button-press-event", + G_CALLBACK(_scale_mdlclick), (gpointer)d); // this takes care of keeping hidden widgets hidden gtk_widget_show_all(self->widget); @@ -1307,7 +1431,8 @@ // Set storage setting = dt_conf_get_string_const(CONFIG_PREFIX "storage_name"); - const int storage_index = dt_imageio_get_index_of_storage(dt_imageio_get_storage_by_name(setting)); + const int storage_index = + dt_imageio_get_index_of_storage(dt_imageio_get_storage_by_name(setting)); dt_bauhaus_combobox_set(d->storage, storage_index); dt_bauhaus_combobox_set(d->intent, dt_conf_get_int(CONFIG_PREFIX "iccintent") + 1); @@ -1318,9 +1443,12 @@ dt_bauhaus_combobox_set(d->profile, 0); if(icctype != DT_COLORSPACE_NONE) { - for(GList *profiles = darktable.color_profiles->profiles; profiles; profiles = g_list_next(profiles)) + for(GList *profiles = darktable.color_profiles->profiles; + profiles; + profiles = g_list_next(profiles)) { - const dt_colorspaces_color_profile_t *pp = (dt_colorspaces_color_profile_t *)profiles->data; + const dt_colorspaces_color_profile_t *pp = + (dt_colorspaces_color_profile_t *)profiles->data; if(pp->out_pos > -1 && icctype == pp->type && (icctype != DT_COLORSPACE_FILE || !strcmp(iccfilename, pp->filename))) @@ -1365,23 +1493,30 @@ { dt_lib_export_t *d = (dt_lib_export_t *)self->data; - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(_on_storage_list_changed), self); - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(_lib_export_styles_changed_callback), self); - - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(_image_selection_changed_callback), self); - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(_mouse_over_image_callback), self); - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(_collection_updated_callback), self); + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, + G_CALLBACK(_on_storage_list_changed), self); + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, + G_CALLBACK(_lib_export_styles_changed_callback), self); + + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, + G_CALLBACK(_image_selection_changed_callback), self); + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, + G_CALLBACK(_mouse_over_image_callback), self); + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, + G_CALLBACK(_collection_updated_callback), self); for(const GList *it = darktable.imageio->plugins_storage; it; it = g_list_next(it)) { dt_imageio_module_storage_t *module = (dt_imageio_module_storage_t *)it->data; - if(module->widget) gtk_container_remove(GTK_CONTAINER(d->storage_extra_container), module->widget); + if(module->widget) + gtk_container_remove(GTK_CONTAINER(d->storage_extra_container), module->widget); } for(const GList *it = darktable.imageio->plugins_format; it; it = g_list_next(it)) { dt_imageio_module_format_t *module = (dt_imageio_module_format_t *)it->data; - if(module->widget) gtk_container_remove(GTK_CONTAINER(d->format_extra_container), module->widget); + if(module->widget) + gtk_container_remove(GTK_CONTAINER(d->format_extra_container), module->widget); } g_free(d->metadata_export); @@ -1392,25 +1527,27 @@ void init_presets(dt_lib_module_t *self) { - // TODO: store presets in db: - // dt_lib_presets_add(const char *name, const char *plugin_name, const void *params, const int32_t + // TODO: store presets in db: dt_lib_presets_add(const char *name, + // const char *plugin_name, const void *params, const int32_t // params_size) - // I know that it is super ugly to have this inside a module, but then is export not your average module - // since it handles the params blobs of imageio libs. - // - get all existing presets for export from db, - // - extract the versions of the embedded format/storage blob - // - check if it's up to date - // - if older than the module -> call its legacy_params and update the preset - // - drop presets that cannot be updated + // I know that it is super ugly to have this inside a module, but + // then is export not your average module since it handles the + // params blobs of imageio libs. - get all existing presets for + // export from db, - extract the versions of the embedded + // format/storage blob - check if it's up to date - if older than + // the module -> call its legacy_params and update the preset - drop + // presets that cannot be updated const int version = self->version(); sqlite3_stmt *stmt; DT_DEBUG_SQLITE3_PREPARE_V2( dt_database_get(darktable.db), - "SELECT rowid, op_version, op_params, name FROM data.presets WHERE operation='export'", -1, &stmt, NULL); + "SELECT rowid, op_version, op_params, name" + " FROM data.presets" + " WHERE operation='export'", -1, &stmt, NULL); while(sqlite3_step(stmt) == SQLITE_ROW) { const int rowid = sqlite3_column_int(stmt, 0); @@ -1421,10 +1558,11 @@ if(op_version != version) { - // shouldn't happen, we run legacy_params on the lib level before calling this + // shouldn't happen, we run legacy_params on the lib level + // before calling this dt_print(DT_DEBUG_ALWAYS, - "[export_init_presets] found export preset '%s' with version %d, version %d was " - "expected. dropping preset.\n", + "[export_init_presets] found export preset '%s' with version %d," + " version %d was expected. dropping preset.\n", name, op_version, version); sqlite3_stmt *innerstmt; DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), @@ -1439,8 +1577,9 @@ // extract the interesting parts from the blob const char *buf = (const char *)op_params; - // skip 6*int32_t: max_width, max_height, upscale, high_quality and iccintent, icctype - buf += 6 * sizeof(int32_t); + // skip 6*int32_t: max_width, max_height, upscale, high_quality + // and export_masks, iccintent, icctype + buf += 7 * sizeof(int32_t); // skip metadata presets string buf += strlen(buf) + 1; // next skip iccfilename @@ -1457,7 +1596,8 @@ dt_imageio_module_storage_t *smod = dt_imageio_get_storage_by_name(sname); if(!fmod || !smod) continue; - // next we have fversion, sversion, fsize, ssize, fdata, sdata which is the stuff that might change + // next we have fversion, sversion, fsize, ssize, fdata, sdata + // which is the stuff that might change size_t copy_over_part = (void *)buf - (void *)op_params; const int fversion = *(const int *)buf; @@ -1473,33 +1613,68 @@ buf += fsize; const void *sdata = buf; - void *new_fdata = NULL, *new_sdata = NULL; - size_t new_fsize = fsize, new_ssize = ssize; - const int32_t new_fversion = fmod->version(), new_sversion = smod->version(); - - if(fversion < new_fversion) + void *new_fdata = NULL; + void *new_sdata = NULL; + size_t new_fsize = fsize; + size_t new_ssize = ssize; + const int32_t new_fversion = fmod->version(); + const int32_t new_sversion = smod->version(); + + int32_t cversion = fversion; + int32_t new_version = new_fversion; + size_t new_size = 0; + void *data = (void *)malloc(fsize); + memcpy(data, fdata, fsize); + while(cversion < new_fversion) { - if(!(fmod->legacy_params - && (new_fdata = fmod->legacy_params(fmod, fdata, fsize, fversion, new_fversion, &new_fsize)) - != NULL)) + if(fmod->legacy_params + && (new_fdata = fmod->legacy_params(fmod, data, new_fsize, + cversion, &new_version, &new_size)) + != NULL) + { + free(data); + data = new_fdata; + new_fsize = new_size; + cversion = new_version; + } + else + { goto delete_preset; + } } - if(sversion < new_sversion) + cversion = sversion; + new_version = new_sversion; + new_size = 0; + data = (void *)malloc(ssize); + memcpy(data, sdata, ssize); + while(cversion < new_sversion) { - if(!(smod->legacy_params - && (new_sdata = smod->legacy_params(smod, sdata, ssize, sversion, new_sversion, &new_ssize)) - != NULL)) + if(smod->legacy_params + && (new_sdata = smod->legacy_params(smod, data, new_ssize, + cversion, &new_version, &new_size)) + != NULL) + { + free(data); + data = new_sdata; + new_ssize = new_size; + cversion = new_version; + } + else + { goto delete_preset; + } } if(new_fdata || new_sdata) { // we got an updated blob -> reassemble the parts and update the preset - const size_t new_params_size = op_params_size - (fsize + ssize) + (new_fsize + new_ssize); + const size_t new_params_size = + op_params_size - (fsize + ssize) + (new_fsize + new_ssize); void *new_params = malloc(new_params_size); memcpy(new_params, op_params, copy_over_part); - // next we have fversion, sversion, fsize, ssize, fdata, sdata which is the stuff that might change + // next we have fversion, sversion, fsize, ssize, fdata, sdata + // which is the stuff that might change size_t pos = copy_over_part; memcpy((uint8_t *)new_params + pos, &new_fversion, sizeof(int32_t)); pos += sizeof(int32_t); @@ -1521,13 +1696,17 @@ // write the updated preset back to db dt_print(DT_DEBUG_ALWAYS, - "[export_init_presets] updating export preset '%s' from versions %d/%d to versions %d/%d\n", + "[export_init_presets] updating export preset '%s'" + " from versions %d/%d to versions %d/%d\n", name, fversion, sversion, new_fversion, new_sversion); sqlite3_stmt *innerstmt; DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "UPDATE data.presets SET op_params=?1 WHERE rowid=?2", + "UPDATE data.presets" + " SET op_params=?1" + " WHERE rowid=?2", -1, &innerstmt, NULL); - DT_DEBUG_SQLITE3_BIND_BLOB(innerstmt, 1, new_params, new_params_size, SQLITE_TRANSIENT); + DT_DEBUG_SQLITE3_BIND_BLOB(innerstmt, 1, new_params, new_params_size, + SQLITE_TRANSIENT); DT_DEBUG_SQLITE3_BIND_INT(innerstmt, 2, rowid); sqlite3_step(innerstmt); sqlite3_finalize(innerstmt); @@ -1543,8 +1722,8 @@ free(new_fdata); free(new_sdata); dt_print(DT_DEBUG_ALWAYS, - "[export_init_presets] export preset '%s' can't be updated from versions %d/%d to " - "versions %d/%d. dropping preset\n", + "[export_init_presets] export preset '%s' can't be updated" + " from versions %d/%d to versions %d/%d. dropping preset\n", name, fversion, sversion, new_fversion, new_sversion); sqlite3_stmt *innerstmt; DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), @@ -1558,8 +1737,12 @@ sqlite3_finalize(stmt); } -void *legacy_params(dt_lib_module_t *self, const void *const old_params, const size_t old_params_size, - const int old_version, int *new_version, size_t *new_size) +void *legacy_params(dt_lib_module_t *self, + const void *const old_params, + const size_t old_params_size, + const int old_version, + int *new_version, + size_t *new_size) { if(old_version == 1) { @@ -1589,19 +1772,23 @@ return NULL; } - // now we are just behind the module/storage names and before their param sizes. this is the place where - // we want their versions - // copy everything until here to the new params + // now we are just behind the module/storage names and before + // their param sizes. this is the place where we want their + // versions copy everything until here to the new params size_t first_half = (void *)buf - (void *)old_params; memcpy(new_params, old_params, first_half); - // add the versions. at the time this code was added all modules were at version 1, except of picasa which was at 2. - // every newer version of the imageio modules should result in a preset that is not going through this code. + // add the versions. at the time this code was added all modules + // were at version 1, except of picasa which was at 2. every + // newer version of the imageio modules should result in a preset + // that is not going through this code. int32_t fversion = 1; int32_t sversion = (strcmp(sname, "picasa") == 0 ? 2 : 1); memcpy((uint8_t *)new_params + first_half, &fversion, sizeof(int32_t)); - memcpy((uint8_t *)new_params + first_half + sizeof(int32_t), &sversion, sizeof(int32_t)); + memcpy((uint8_t *)new_params + first_half + sizeof(int32_t), + &sversion, sizeof(int32_t)); // copy the rest of the old params over - memcpy((uint8_t *)new_params + first_half + sizeof(int32_t) * 2, buf, old_params_size - first_half); + memcpy((uint8_t *)new_params + first_half + sizeof(int32_t) * 2, + buf, old_params_size - first_half); *new_size = new_params_size; *new_version = 2; @@ -1614,7 +1801,9 @@ void *new_params = calloc(1, new_params_size); memcpy(new_params, old_params, sizeof(int32_t) * 2); - memcpy((uint8_t *)new_params + sizeof(int32_t) * 3, (uint8_t *)old_params + sizeof(int32_t) * 2, old_params_size - sizeof(int32_t) * 2); + memcpy((uint8_t *)new_params + sizeof(int32_t) * 3, + (uint8_t *)old_params + sizeof(int32_t) * 2, + old_params_size - sizeof(int32_t) * 2); *new_size = new_params_size; *new_version = 3; @@ -1667,7 +1856,9 @@ memcpy((uint8_t *)new_params + pos, iccfilename, strlen(iccfilename) + 1); pos += strlen(iccfilename) + 1; size_t old_pos = 4 * sizeof(int32_t) + strlen(iccprofile) + 1; - memcpy((uint8_t *)new_params + pos, (uint8_t *)old_params + old_pos, old_params_size - old_pos); + memcpy((uint8_t *)new_params + pos, + (uint8_t *)old_params + old_pos, + old_params_size - old_pos); *new_size = new_params_size; *new_version = 4; @@ -1692,7 +1883,9 @@ size_t pos = 0; memcpy(new_params, old_params, sizeof(int32_t) * 3); pos += 4 * sizeof(int32_t); - memcpy((uint8_t *)new_params + pos, (uint8_t *)old_params + pos - sizeof(int32_t), old_params_size - sizeof(int32_t) * 3); + memcpy((uint8_t *)new_params + pos, + (uint8_t *)old_params + pos - sizeof(int32_t), + old_params_size - sizeof(int32_t) * 3); *new_size = new_params_size; *new_version = 5; @@ -1713,7 +1906,8 @@ // - old rest const gboolean omit = dt_conf_get_bool("omit_tag_hierarchy"); - gchar *flags = g_strdup_printf("%x", dt_lib_export_metadata_default_flags() | (omit ? DT_META_OMIT_HIERARCHY : 0)); + gchar *flags = g_strdup_printf + ("%x", dt_lib_export_metadata_default_flags() | (omit ? DT_META_OMIT_HIERARCHY : 0)); const int flags_size = strlen(flags) + 1; const size_t new_params_size = old_params_size + flags_size; void *new_params = calloc(1, new_params_size); @@ -1722,7 +1916,9 @@ pos += 6 * sizeof(int32_t); memcpy((uint8_t *)new_params + pos, flags, flags_size); pos += flags_size; - memcpy((uint8_t *)new_params + pos, (uint8_t *)old_params + pos - flags_size, old_params_size - sizeof(int32_t) * 6); + memcpy((uint8_t *)new_params + pos, + (uint8_t *)old_params + pos - flags_size, + old_params_size - sizeof(int32_t) * 6); g_free(flags); *new_size = new_params_size; @@ -1737,7 +1933,8 @@ // - 6 x int32_t (max_width, max_height, upscale, high_quality, iccintent, icctype) // - old rest // format of v7: - // - 7 x int32_t (max_width, max_height, upscale, high_quality, export_masks, iccintent, icctype) + // - 7 x int32_t (max_width, max_height, upscale, high_quality, + // export_masks, iccintent, icctype) // - old rest const size_t new_params_size = old_params_size + sizeof(int32_t); @@ -1746,7 +1943,9 @@ size_t pos = 0; memcpy(new_params, old_params, sizeof(int32_t) * 4); pos += 5 * sizeof(int32_t); - memcpy((uint8_t *)new_params + pos, (uint8_t *)old_params + pos - sizeof(int32_t), old_params_size - sizeof(int32_t) * 4); + memcpy((uint8_t *)new_params + pos, + (uint8_t *)old_params + pos - sizeof(int32_t), + old_params_size - sizeof(int32_t) * 4); *new_size = new_params_size; *new_version = 7; @@ -1764,35 +1963,38 @@ dt_imageio_module_storage_t *mstorage = dt_imageio_get_storage(); if(!mformat || !mstorage) return NULL; - // size will be only as large as needed to remove random pointers from params (stored at the end). + // size will be only as large as needed to remove random pointers + // from params (stored at the end). size_t fsize = mformat->params_size(mformat); dt_imageio_module_data_t *fdata = mformat->get_params(mformat); size_t ssize = mstorage->params_size(mstorage); void *sdata = mstorage->get_params(mstorage); const int32_t fversion = mformat->version(); const int32_t sversion = mstorage->version(); - // we allow null pointers (plugin not ready for export in current state), and just don't copy back the - // settings later: + // we allow null pointers (plugin not ready for export in current + // state), and just don't copy back the settings later: if(!sdata) ssize = 0; if(!fdata) fsize = 0; if(fdata) { - // clean up format global params (need to set all bytes to reliably detect which preset is active). - // we happen to want to set it all to 0 + // clean up format global params (need to set all bytes to + // reliably detect which preset is active). we happen to want to + // set it all to 0 memset(fdata, 0, sizeof(dt_imageio_module_data_t)); } - // FIXME: also the web preset has to be applied twice to be known as preset! (other dimension magic going on - // here?) - // TODO: get this stuff from gui and not from conf, so it will be sanity-checked (you can never delete an - // insane preset)? - // also store icc profile/intent here. + // FIXME: also the web preset has to be applied twice to be known as + // preset! (other dimension magic going on here?) TODO: get this + // stuff from gui and not from conf, so it will be sanity-checked + // (you can never delete an insane preset)? also store icc + // profile/intent here. const int32_t iccintent = dt_conf_get_int(CONFIG_PREFIX "iccintent"); const int32_t icctype = dt_conf_get_int(CONFIG_PREFIX "icctype"); const int32_t max_width = dt_conf_get_int(CONFIG_PREFIX "width"); const int32_t max_height = dt_conf_get_int(CONFIG_PREFIX "height"); const int32_t upscale = dt_conf_get_bool(CONFIG_PREFIX "upscale") ? 1 : 0; - const int32_t high_quality = dt_conf_get_bool(CONFIG_PREFIX "high_quality_processing") ? 1 : 0; + const int32_t high_quality = + dt_conf_get_bool(CONFIG_PREFIX "high_quality_processing") ? 1 : 0; const int32_t export_masks = dt_conf_get_bool(CONFIG_PREFIX "export_masks") ? 1 : 0; gchar *iccfilename = dt_conf_get_string(CONFIG_PREFIX "iccprofile"); gchar *style = dt_conf_get_string(CONFIG_PREFIX "style"); @@ -1818,9 +2020,12 @@ const int32_t fname_len = strlen(fname); const int32_t sname_len = strlen(sname); - *size = fname_len + sname_len + 2 + 4 * sizeof(int32_t) + fsize + ssize + 7 * sizeof(int32_t) + *size = fname_len + sname_len + 2 + + 4 * sizeof(int32_t) + fsize + ssize + 7 * sizeof(int32_t) + strlen(iccfilename) + 1 + strlen(metadata_export) + 1; + //??? WARNING: Any change here must be also done on get_params AND init_presets + // if some parameters are added before fname & sname char *params = (char *)calloc(1, *size); int pos = 0; memcpy(params + pos, &max_width, sizeof(int32_t)); @@ -1873,12 +2078,16 @@ return params; } -int set_params(dt_lib_module_t *self, const void *params, int size) +int set_params(dt_lib_module_t *self, + const void *params, + const int size) { dt_lib_export_t *d = (dt_lib_export_t *)self->data; // apply these stored presets again (parse blob) const char *buf = (const char *)params; + //??? WARNING: Any change here must be also done on get_params AND init_presets + // if some parameters are added before fname & sname const int max_width = *(const int *)buf; buf += sizeof(int32_t); const int max_height = *(const int *)buf; @@ -1907,9 +2116,12 @@ dt_bauhaus_combobox_set(d->profile, 0); if(icctype != DT_COLORSPACE_NONE) { - for(GList *iter = darktable.color_profiles->profiles; iter; iter = g_list_next(iter)) + for(GList *iter = darktable.color_profiles->profiles; + iter; + iter = g_list_next(iter)) { - const dt_colorspaces_color_profile_t *pp = (dt_colorspaces_color_profile_t *)iter->data; + const dt_colorspaces_color_profile_t *pp = + (dt_colorspaces_color_profile_t *)iter->data; if(pp->out_pos > -1 && icctype == pp->type && (icctype != DT_COLORSPACE_FILE || !strcmp(iccfilename, pp->filename))) @@ -1942,7 +2154,8 @@ buf += sizeof(int32_t); if(size - != strlen(fname) + strlen(sname) + 2 + 4 * sizeof(int32_t) + fsize + ssize + 7 * sizeof(int32_t) + != strlen(fname) + strlen(sname) + 2 + + 4 * sizeof(int32_t) + fsize + ssize + 7 * sizeof(int32_t) + strlen(iccfilename) + 1 + strlen(metadata_export) + 1) return 1; if(fversion != fmod->version() || sversion != smod->version()) return 1; @@ -1971,8 +2184,10 @@ // propagate to modules int res = 0; - if(ssize) res += smod->set_params(smod, sdata, ssize); - if(fsize) res += fmod->set_params(fmod, fdata, fsize); + if(ssize) + res += smod->set_params(smod, sdata, ssize); + if(fsize) + res += fmod->set_params(fmod, fdata, fsize); return res; } diff -Nru darktable-4.4.2/src/libs/export_metadata.c darktable-4.6.1/src/libs/export_metadata.c --- darktable-4.4.2/src/libs/export_metadata.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/export_metadata.c 2024-02-16 17:31:09.000000000 +0000 @@ -104,27 +104,12 @@ } // choice of a metadata tag -static gboolean _click_on_metadata_list(GtkWidget *view, GdkEventButton *event, dt_lib_export_metadata_t *d) +static void _metadata_activated(GtkTreeView *tree_view, + GtkTreePath *path, + GtkTreeViewColumn *column, + dt_lib_export_metadata_t *d) { - if(event->type == GDK_2BUTTON_PRESS && event->button == 1) - { - - GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view)); - GtkTreePath *path = NULL; - // Get tree path for row that was clicked - if(gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(view), (gint)event->x, (gint)event->y, &path, NULL, NULL, NULL)) - { - gtk_tree_selection_select_path(selection, path); - if(event->type == GDK_2BUTTON_PRESS && event->button == 1) - { - _add_selected_metadata(GTK_TREE_VIEW(view), d); - gtk_tree_path_free(path); - return TRUE; - } - } - gtk_tree_path_free(path); - } - return FALSE; + _add_selected_metadata(tree_view, d); } // routine to set individual visibility flag @@ -160,24 +145,26 @@ // dialog to add metadata tag into the formula list static void _add_tag_button_clicked(GtkButton *button, dt_lib_export_metadata_t *d) { - GtkWidget *dialog = gtk_dialog_new_with_buttons(_("select tag"), GTK_WINDOW(d->dialog), GTK_DIALOG_DESTROY_WITH_PARENT, - _("add"), GTK_RESPONSE_ACCEPT, _("done"), GTK_RESPONSE_NONE, NULL); - g_signal_connect(dialog, "key-press-event", G_CALLBACK(dt_handle_dialog_enter), NULL); - gtk_window_set_default_size(GTK_WINDOW(dialog), 300, -1); + GtkWidget *dialog = gtk_dialog_new_with_buttons(_("select tag"), GTK_WINDOW(d->dialog), + GTK_DIALOG_DESTROY_WITH_PARENT, + _("_add"), GTK_RESPONSE_ACCEPT, + _("_done"), GTK_RESPONSE_NONE, NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_NONE); + gtk_window_set_default_size(GTK_WINDOW(dialog), DT_PIXEL_APPLY_DPI(500), DT_PIXEL_APPLY_DPI(300)); GtkWidget *area = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 8); gtk_container_set_border_width(GTK_CONTAINER(vbox), 8); - gtk_container_add(GTK_CONTAINER(area), vbox); + gtk_box_pack_start(GTK_BOX(area), vbox, TRUE, TRUE, 0); GtkWidget *entry = gtk_entry_new(); d->sel_entry = entry; gtk_entry_set_text(GTK_ENTRY(entry), ""); gtk_widget_set_tooltip_text(entry, _("list filter")); - gtk_box_pack_start(GTK_BOX(vbox), entry, TRUE, TRUE, 0); + gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE); + gtk_box_pack_start(GTK_BOX(vbox), entry, FALSE, TRUE, 0); g_signal_connect(G_OBJECT(entry), "changed", G_CALLBACK(_tag_name_changed), d); GtkWidget *w = gtk_scrolled_window_new(NULL, NULL); - gtk_widget_set_size_request(w, DT_PIXEL_APPLY_DPI(500), DT_PIXEL_APPLY_DPI(300)); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(w), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start(GTK_BOX(vbox), w, TRUE, TRUE, 0); GtkTreeView *view = GTK_TREE_VIEW(gtk_tree_view_new()); @@ -219,7 +206,7 @@ gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(liststore), DT_LIB_EXPORT_METADATA_COL_XMP, GTK_SORT_ASCENDING); gtk_tree_view_set_model(view, model); g_object_unref(model); - g_signal_connect(G_OBJECT(view), "button-press-event", G_CALLBACK(_click_on_metadata_list), (gpointer)d); + g_signal_connect(G_OBJECT(view), "row-activated", G_CALLBACK(_metadata_activated), d); #ifdef GDK_WINDOWING_QUARTZ dt_osx_disallow_fullscreen(dialog); @@ -284,18 +271,20 @@ dt_lib_export_metadata_t *d = calloc(1, sizeof(dt_lib_export_metadata_t)); GtkWidget *win = dt_ui_main_window(darktable.gui->ui); - GtkWidget *dialog = gtk_dialog_new_with_buttons(_("edit metadata exportation"), GTK_WINDOW(win), GTK_DIALOG_DESTROY_WITH_PARENT, - _("cancel"), GTK_RESPONSE_NONE, _("save"), GTK_RESPONSE_ACCEPT, NULL); + GtkWidget *dialog = gtk_dialog_new_with_buttons(_("edit metadata exportation"), GTK_WINDOW(win), + GTK_DIALOG_DESTROY_WITH_PARENT, + _("_cancel"), GTK_RESPONSE_NONE, + _("_save"), GTK_RESPONSE_ACCEPT, NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); dt_gui_dialog_add_help(GTK_DIALOG(dialog), "export_dialog"); d->dialog = dialog; - g_signal_connect(dialog, "key-press-event", G_CALLBACK(dt_handle_dialog_enter), NULL); - gtk_window_set_default_size(GTK_WINDOW(dialog), 300, -1); + gtk_window_set_default_size(GTK_WINDOW(dialog), DT_PIXEL_APPLY_DPI(500), -1); GtkWidget *area = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); GtkWidget *hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_container_add(GTK_CONTAINER(area), hbox); + gtk_box_pack_start(GTK_BOX(area), hbox, TRUE, TRUE, 0); // general info GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 8); @@ -364,7 +353,6 @@ gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, TRUE, 0); GtkWidget *w = gtk_scrolled_window_new(NULL, NULL); - gtk_widget_set_size_request(w, DT_PIXEL_APPLY_DPI(450), DT_PIXEL_APPLY_DPI(100)); gtk_widget_set_hexpand(w, TRUE); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(w), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start(GTK_BOX(vbox), w, TRUE, TRUE, 0); diff -Nru darktable-4.4.2/src/libs/filtering.c darktable-4.6.1/src/libs/filtering.c --- darktable-4.4.2/src/libs/filtering.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/filtering.c 2024-02-16 17:31:09.000000000 +0000 @@ -81,6 +81,7 @@ _PRESET_FILTERS = 1 << 0, _PRESET_SORT = 1 << 1, _PRESET_ERASE_TOPBAR = 1 << 2, + _PRESET_TOPBAR = 1 << 3, _PRESET_ALL = _PRESET_FILTERS | _PRESET_SORT | _PRESET_ERASE_TOPBAR } _preset_save_type_t; @@ -133,6 +134,7 @@ GtkWidget *rules_box; GtkWidget *rules_sw; + GtkWidget *topbar_popup; _widgets_sort_t sort[DT_COLLECTION_MAX_RULES]; int nb_sort; @@ -212,6 +214,7 @@ // filters definitions #include "libs/filters/aperture.c" +#include "libs/filters/camera.c" #include "libs/filters/colors.c" #include "libs/filters/date.c" #include "libs/filters/exposure.c" @@ -220,10 +223,11 @@ #include "libs/filters/grouping.c" #include "libs/filters/history.c" #include "libs/filters/iso.c" +#include "libs/filters/lens.c" #include "libs/filters/local_copy.c" #include "libs/filters/module_order.c" -#include "libs/filters/rating_range.c" #include "libs/filters/rating.c" +#include "libs/filters/rating_range.c" #include "libs/filters/ratio.c" #include "libs/filters/search.c" @@ -246,7 +250,9 @@ { DT_COLLECTION_PROP_LOCAL_COPY, _local_copy_widget_init, _local_copy_update }, { DT_COLLECTION_PROP_HISTORY, _history_widget_init, _history_update }, { DT_COLLECTION_PROP_ORDER, _module_order_widget_init, _module_order_update }, - { DT_COLLECTION_PROP_RATING, _rating_widget_init, _rating_update } }; + { DT_COLLECTION_PROP_RATING, _rating_widget_init, _rating_update }, + { DT_COLLECTION_PROP_LENS, _lens_widget_init, _lens_update }, + { DT_COLLECTION_PROP_CAMERA, _camera_widget_init, _camera_update } }; static _filter_t *_filters_get(const dt_collection_properties_t prop) { @@ -395,6 +401,26 @@ } dt_conf_set_int("plugins/lighttable/filtering/num_rules", nb_rules - nb_removed); } + else if(reset & _PRESET_TOPBAR) + { + // let's reset only topbar filters + const int nb_rules + = CLAMP(dt_conf_get_int("plugins/lighttable/filtering/num_rules"), 0, DT_COLLECTION_MAX_RULES); + for(int i = 0; i < nb_rules; i++) + { + char confname[200] = { 0 }; + // read the topbar state + snprintf(confname, sizeof(confname), "plugins/lighttable/filtering/top%1d", i); + if(dt_conf_get_int(confname)) + { + // we "just" reset the filter + snprintf(confname, sizeof(confname), "plugins/lighttable/filtering/mode%1d", i); + dt_conf_set_int(confname, 0); + snprintf(confname, sizeof(confname), "plugins/lighttable/filtering/string%1d", i); + dt_conf_set_string(confname, ""); + } + } + } if(reset & _PRESET_SORT) { @@ -1003,6 +1029,39 @@ _rule_show_popup(widget, NULL, (dt_lib_module_t *)user_data); } +static void _topbar_reset(dt_lib_module_t *self) +{ + _filtering_reset(_PRESET_TOPBAR); + + _filters_gui_update(self); + + dt_collection_set_query_flags(darktable.collection, COLLECTION_QUERY_FULL); + dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_UNDEF, NULL); +} + +static gboolean _topbar_reset_press(GtkWidget *w, + GdkEventButton *e, + dt_lib_module_t *self) +{ + //reset the filters + _topbar_reset(self); + //close the popup + dt_lib_filtering_t *d = (dt_lib_filtering_t *)self->data; + gtk_widget_destroy(d->topbar_popup); + + return FALSE; +} + +static gboolean _topbar_label_press(GtkWidget *w, + GdkEventButton *e, + dt_lib_module_t *self) +{ + //reset on double-click + if(e->button == 1 && e->type == GDK_2BUTTON_PRESS) + _topbar_reset(self); + return FALSE; +} + static void _topbar_update(dt_lib_module_t *self) { dt_lib_filtering_t *d = (dt_lib_filtering_t *)self->data; @@ -1032,9 +1091,12 @@ // we add the filter label if it's the first filter if(nb == 0) { + GtkWidget *evtb = gtk_event_box_new(); GtkWidget *label = gtk_label_new(C_("quickfilter", "filter")); - gtk_box_pack_start(GTK_BOX(fbox), label, TRUE, TRUE, 0); - gtk_widget_show(label); + gtk_container_add(GTK_CONTAINER(evtb), label); + g_signal_connect(G_OBJECT(evtb), "button-press-event", G_CALLBACK(_topbar_label_press), self); + gtk_box_pack_start(GTK_BOX(fbox), evtb, TRUE, TRUE, 0); + gtk_widget_show_all(evtb); } gtk_box_pack_start(GTK_BOX(fbox), d->rule[i].w_special_box_top, FALSE, TRUE, 0); gtk_widget_show_all(d->rule[i].w_special_box_top); @@ -1220,7 +1282,7 @@ g_object_set_data(G_OBJECT(rule->w_prop), "rule", rule); dt_bauhaus_combobox_set_from_value(rule->w_prop, prop); g_signal_connect(G_OBJECT(rule->w_prop), "value-changed", G_CALLBACK(_event_rule_change_type), self); - gtk_box_pack_start(GTK_BOX(hbox), rule->w_prop, TRUE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(hbox), rule->w_prop, TRUE, TRUE, 0); } else if(newprop) { @@ -1686,22 +1748,23 @@ dt_lib_filtering_t *d = (dt_lib_filtering_t *)self->data; // initialize the popover - GtkWidget *pop = gtk_popover_new(bt); - g_object_set(G_OBJECT(pop), "transitions-enabled", FALSE, NULL); + d->topbar_popup = gtk_popover_new(bt); + g_object_set(G_OBJECT(d->topbar_popup), "transitions-enabled", FALSE, NULL); GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); - gtk_container_add(GTK_CONTAINER(pop), vbox); + gtk_container_add(GTK_CONTAINER(d->topbar_popup), vbox); // fill the popover with all pinned rules + GtkWidget *vbox2 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); GtkWidget *lb = gtk_label_new(_("shown filters")); dt_gui_add_class(lb, "dt_section_label"); - gtk_box_pack_start(GTK_BOX(vbox), lb, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox2), lb, TRUE, TRUE, 0); for(int i = 0; i < d->nb_rules; i++) { if(d->rule[i].topbar) { - gtk_box_pack_start(GTK_BOX(vbox), _topbar_menu_new_rule(&d->rule[i], self), TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox2), _topbar_menu_new_rule(&d->rule[i], self), TRUE, TRUE, 0); } } @@ -1711,7 +1774,17 @@ dt_bauhaus_widget_set_label(nr, NULL, _("new filter")); _topbar_populate_rules_combo(nr, d); g_signal_connect(G_OBJECT(nr), "value-changed", G_CALLBACK(_topbar_rule_add), self); - gtk_box_pack_end(GTK_BOX(vbox), nr, TRUE, TRUE, 0); + gtk_box_pack_end(GTK_BOX(vbox2), nr, TRUE, TRUE, 0); + + gtk_box_pack_start(GTK_BOX(vbox), vbox2, TRUE, TRUE, 0); + // the actions part of the popover + lb = gtk_label_new(_("actions")); + dt_gui_add_class(lb, "dt_section_label"); + gtk_box_pack_start(GTK_BOX(vbox), lb, TRUE, TRUE, 0); + GtkWidget *btr = gtk_button_new_with_label(_("reset quickfilters")); + dt_gui_add_class(btr, "dt_transparent_background"); + g_signal_connect(G_OBJECT(btr), "button-press-event", G_CALLBACK(_topbar_reset_press), self); + gtk_box_pack_start(GTK_BOX(vbox), btr, TRUE, TRUE, 0); // show the popover GdkDevice *pointer = gdk_seat_get_pointer(gdk_display_get_default_seat(gdk_display_get_default())); @@ -1726,9 +1799,9 @@ if(pointer_widget && bt != pointer_widget) gtk_widget_translate_coordinates(pointer_widget, bt, x, y, &rect.x, &rect.y); - gtk_popover_set_pointing_to(GTK_POPOVER(pop), &rect); + gtk_popover_set_pointing_to(GTK_POPOVER(d->topbar_popup), &rect); - gtk_widget_show_all(pop); + gtk_widget_show_all(d->topbar_popup); } // save a sort rule inside the conf @@ -1882,7 +1955,8 @@ else sort->sort = dt_bauhaus_combobox_new(NULL); dt_action_t *ac = dt_bauhaus_widget_set_label(sort->sort, NULL, _("sort order")); - DT_BAUHAUS_WIDGET(sort->sort)->show_label = FALSE; + dt_bauhaus_widget_hide_label(sort->sort); + dt_bauhaus_combobox_mute_scrolling(sort->sort); gtk_widget_set_tooltip_text(sort->sort, _("determine the sort order of shown images")); g_signal_connect(G_OBJECT(sort->sort), "value-changed", G_CALLBACK(_sort_combobox_changed), sort); gtk_box_pack_start(GTK_BOX(sort->box), sort->sort, TRUE, TRUE, 0); @@ -2133,7 +2207,7 @@ const int nb = sizeof(filters) / sizeof(_filter_t); for(int i = 0; i < nb; i++) { - dt_lib_filtering_rule_t temp_rule; + dt_lib_filtering_rule_t temp_rule = {0}; temp_rule.w_special_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); filters[i].widget_init(&temp_rule, filters[i].prop, "", self, FALSE); @@ -2157,10 +2231,10 @@ GtkWidget *bhbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_homogeneous(GTK_BOX(bhbox), TRUE); gtk_box_pack_start(GTK_BOX(self->widget), bhbox, TRUE, TRUE, 0); - GtkWidget *btn = dt_action_button_new(self, _("new rule"), G_CALLBACK(_event_rule_append), self, + GtkWidget *btn = dt_action_button_new(self, N_("new rule"), G_CALLBACK(_event_rule_append), self, _("append new rule to collect images"), 0, 0); gtk_box_pack_start(GTK_BOX(bhbox), btn, TRUE, TRUE, 0); - btn = dt_action_button_new(self, _("history"), G_CALLBACK(_event_history_show), self, + btn = dt_action_button_new(self, N_("history"), G_CALLBACK(_event_history_show), self, _("revert to a previous set of rules"), 0, 0); gtk_box_pack_start(GTK_BOX(bhbox), btn, TRUE, TRUE, 0); gtk_widget_show_all(bhbox); @@ -2177,10 +2251,10 @@ bhbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_homogeneous(GTK_BOX(bhbox), TRUE); gtk_box_pack_start(GTK_BOX(self->widget), bhbox, TRUE, TRUE, 0); - btn = dt_action_button_new(self, _("new sort"), G_CALLBACK(_sort_show_add_popup), self, + btn = dt_action_button_new(self, N_("new sort"), G_CALLBACK(_sort_show_add_popup), self, _("append new sort to order images"), 0, 0); gtk_box_pack_start(GTK_BOX(bhbox), btn, TRUE, TRUE, 0); - btn = dt_action_button_new(self, _("history"), G_CALLBACK(_sort_history_show), self, + btn = dt_action_button_new(self, N_("history"), G_CALLBACK(_sort_history_show), self, _("revert to a previous set of sort orders"), 0, 0); gtk_box_pack_start(GTK_BOX(bhbox), btn, TRUE, TRUE, 0); gtk_widget_show_all(bhbox); diff -Nru darktable-4.4.2/src/libs/filters/aperture.c darktable-4.6.1/src/libs/filters/aperture.c --- darktable-4.4.2/src/libs/filters/aperture.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/filters/aperture.c 2024-02-16 17:31:09.000000000 +0000 @@ -20,6 +20,7 @@ This file contains the necessary routines to implement a filter for the filtering module */ +#include "common/utility.h" static gboolean _aperture_update(dt_lib_filtering_rule_t *rule) { @@ -67,7 +68,14 @@ static gchar *_aperture_print_func(const double value, const gboolean detailled) { - return g_strdup_printf("%s%.1lf", detailled ? "f/" : "", value); + if(detailled) + { + return g_strdup_printf("f/%.1lf", value); + } + else + { + return dt_util_float_to_str("%.1f", value); + } } static void _aperture_widget_init(dt_lib_filtering_rule_t *rule, const dt_collection_properties_t prop, diff -Nru darktable-4.4.2/src/libs/filters/camera.c darktable-4.6.1/src/libs/filters/camera.c --- darktable-4.4.2/src/libs/filters/camera.c 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/libs/filters/camera.c 2024-02-16 17:31:09.000000000 +0000 @@ -0,0 +1,375 @@ +/* + This file is part of darktable, + Copyright (C) 2023 darktable developers. + + darktable is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + darktable is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with darktable. If not, see <http://www.gnu.org/licenses/>. +*/ + +/* + This file contains the necessary routines to implement a filter for the filtering module +*/ + +typedef struct _widgets_camera_t +{ + dt_lib_filtering_rule_t *rule; + + GtkWidget *name; + GtkWidget *pop; + GtkWidget *name_tree; + gboolean tree_ok; + int internal_change; +} _widgets_camera_t; + +static void _camera_synchronise(_widgets_camera_t *source) +{ + _widgets_camera_t *dest = NULL; + if(source == source->rule->w_specific_top) + dest = source->rule->w_specific; + else + dest = source->rule->w_specific_top; + + if(dest) + { + source->rule->manual_widget_set++; + const gchar *txt1 = gtk_entry_get_text(GTK_ENTRY(source->name)); + gtk_entry_set_text(GTK_ENTRY(dest->name), txt1); + source->rule->manual_widget_set--; + } +} + +static void _camera_changed(GtkWidget *widget, + gpointer user_data) +{ + _widgets_camera_t *camera = (_widgets_camera_t *)user_data; + if(camera->rule->manual_widget_set) return; + + _rule_set_raw_text(camera->rule, gtk_entry_get_text(GTK_ENTRY(camera->name)), TRUE); + _camera_synchronise(camera); +} + +static gboolean _camera_focus_out(GtkWidget *entry, + GdkEventFocus *event, + gpointer user_data) +{ + _widgets_camera_t *camera = (_widgets_camera_t *)user_data; + if(camera->rule->cleaning) return FALSE; + _camera_changed(entry, user_data); + return FALSE; +} + +void _camera_tree_update(_widgets_camera_t *camera) +{ + dt_lib_filtering_t *d = camera->rule->lib; + + char query[1024] = { 0 }; + + GtkTreeIter iter; + GtkTreeModel *name_model = gtk_tree_view_get_model(GTK_TREE_VIEW(camera->name_tree)); + gtk_list_store_clear(GTK_LIST_STORE(name_model)); + + // clang-format off + g_snprintf(query, sizeof(query), + "SELECT TRIM(cm.maker || ' ' || cm.model) AS camera, COUNT(*) AS count" + " FROM main.images AS mi, main.cameras AS cm" + " WHERE mi.camera_id = cm.id AND %s" + " GROUP BY camera" + " ORDER BY camera", + d->last_where_ext); + // clang-format on + sqlite3_stmt *stmt; + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), query, -1, &stmt, NULL); + int unset = 0; + while(sqlite3_step(stmt) == SQLITE_ROW) + { + gchar *value = (gchar *)sqlite3_column_text(stmt, 0); + const int count = sqlite3_column_int(stmt, 1); + gchar *value_path = g_strdup_printf("\"%s\"", value); + + if(!value || !g_strcmp0(g_strstrip(value), "")) + { + unset += count; + } + else + { + gtk_list_store_append(GTK_LIST_STORE(name_model), &iter); + gtk_list_store_set(GTK_LIST_STORE(name_model), &iter, + TREE_COL_TEXT, value, + TREE_COL_TOOLTIP, value, + TREE_COL_PATH, value_path, + TREE_COL_COUNT, count, -1); + } + g_free(value_path); + } + sqlite3_finalize(stmt); + + // we add the unset entry if any + if(unset > 0) + { + gtk_list_store_append(GTK_LIST_STORE(name_model), &iter); + gtk_list_store_set(GTK_LIST_STORE(name_model), &iter, + TREE_COL_TEXT, _("unnamed"), + TREE_COL_TOOLTIP, _("no camera defined."), + TREE_COL_PATH, _("unnamed"), + TREE_COL_COUNT, unset, -1); + } + camera->tree_ok = TRUE; +} + +void _camera_tree_update_visibility(GtkWidget *w, + _widgets_camera_t *camera) +{ + if(!camera->tree_ok) _camera_tree_update(camera); +} + +static gboolean _camera_select_func(GtkTreeModel *model, + GtkTreePath *path, + GtkTreeIter *iter, + gpointer data) +{ + GtkTreeSelection *sel = (GtkTreeSelection *)data; + gchar **elems = (gchar **)g_object_get_data(G_OBJECT(sel), "elems"); + gchar *str = NULL; + gtk_tree_model_get(model, iter, TREE_COL_PATH, &str, -1); + + for(int i = 0; i < g_strv_length(elems); i++) + { + if(!g_strcmp0(str, elems[i])) + { + gtk_tree_selection_select_path(sel, path); + break; + } + } + + return FALSE; +} + +static void _camera_update_selection(_widgets_camera_t *camera) +{ + // get the current text + GtkWidget *entry = gtk_popover_get_default_widget(GTK_POPOVER(camera->pop)); + const gchar *txt = gtk_entry_get_text(GTK_ENTRY(entry)); + + // get the current treeview + GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(camera->name_tree)); + camera->internal_change++; + gtk_tree_selection_unselect_all(sel); + + if(g_strcmp0(txt, "")) + { + gchar **elems = g_strsplit(txt, ",", -1); + g_object_set_data(G_OBJECT(sel), "elems", elems); + gtk_tree_model_foreach(gtk_tree_view_get_model(GTK_TREE_VIEW(camera->name_tree)), _camera_select_func, sel); + g_strfreev(elems); + } + camera->internal_change--; +} + +static gboolean _camera_press(GtkWidget *w, + GdkEventButton *e, + _widgets_camera_t *camera) +{ + if(e->button == 3) + { + _camera_tree_update_visibility(w, camera); + gtk_popover_set_default_widget(GTK_POPOVER(camera->pop), w); + gtk_popover_set_relative_to(GTK_POPOVER(camera->pop), w); + + // update the selection + _camera_update_selection(camera); + + gtk_widget_show_all(camera->pop); + return TRUE; + } + else if(e->button == 1 && e->type == GDK_2BUTTON_PRESS) + { + gtk_entry_set_text(GTK_ENTRY(camera->name), ""); + _camera_changed(w, camera); + } + return FALSE; +} + +static gboolean _camera_update(dt_lib_filtering_rule_t *rule) +{ + if(!rule->w_specific) return FALSE; + + rule->manual_widget_set++; + _widgets_camera_t *camera = (_widgets_camera_t *)rule->w_specific; + camera->tree_ok = FALSE; + gtk_entry_set_text(GTK_ENTRY(camera->name), rule->raw_text); + if(rule->topbar && rule->w_specific_top) + { + camera = (_widgets_camera_t *)rule->w_specific_top; + camera->tree_ok = FALSE; + gtk_entry_set_text(GTK_ENTRY(camera->name), rule->raw_text); + } + _camera_synchronise(camera); + rule->manual_widget_set--; + + return TRUE; +} + +static void _camera_popup_closed(GtkWidget *w, + _widgets_camera_t *camera) +{ + // we validate the corresponding entry + gtk_widget_activate(gtk_popover_get_default_widget(GTK_POPOVER(w))); +} + +static void _camera_tree_row_activated(GtkTreeView *self, + GtkTreePath *path, + GtkTreeViewColumn *column, + _widgets_camera_t *camera) +{ + // as the selection as already been updated on first click, we just close the popup + gtk_widget_hide(camera->pop); +} + +static void _camera_tree_selection_change(GtkTreeSelection *sel, + _widgets_camera_t *camera) +{ + if(!camera || camera->internal_change) return; + GtkTreeModel *model = gtk_tree_view_get_model(gtk_tree_selection_get_tree_view(sel)); + GList *list = gtk_tree_selection_get_selected_rows(sel, NULL); + + gchar *txt = NULL; + for(const GList *l = list; l; l = g_list_next(l)) + { + GtkTreePath *path = (GtkTreePath *)l->data; + GtkTreeIter iter; + if(gtk_tree_model_get_iter(model, &iter, path)) + { + gchar *val = NULL; + gtk_tree_model_get(model, &iter, TREE_COL_PATH, &val, -1); + if(val) txt = dt_util_dstrcat(txt, "%s%s", (txt == NULL) ? "" : ",", val); + } + } + g_list_free_full(list, (GDestroyNotify)gtk_tree_path_free); + + // we set the entry with this value + GtkWidget *entry = gtk_popover_get_default_widget(GTK_POPOVER(camera->pop)); + gtk_entry_set_text(GTK_ENTRY(entry), (txt == NULL) ? "" : txt); + g_free(txt); +} + +static void _camera_ok_clicked(GtkWidget *w, + _widgets_camera_t *camera) +{ + gtk_widget_hide(camera->pop); +} + +void _camera_tree_count_func(GtkTreeViewColumn *col, + GtkCellRenderer *renderer, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer data) +{ + gchar *name; + guint count; + + gtk_tree_model_get(model, iter, TREE_COL_TEXT, &name, TREE_COL_COUNT, &count, -1); + if(!g_strcmp0(name, "") && count == 0) + { + g_object_set(renderer, "text", name, NULL); + g_object_set(renderer, "sensitive", FALSE, NULL); + } + else + { + gchar *coltext = g_strdup_printf("%s (%u)", name, count); + g_object_set(renderer, "text", coltext, NULL); + g_free(coltext); + g_object_set(renderer, "sensitive", TRUE, NULL); + } + + g_free(name); +} + +static void _camera_widget_init(dt_lib_filtering_rule_t *rule, + const dt_collection_properties_t prop, + const gchar *text, + dt_lib_module_t *self, + const gboolean top) +{ + _widgets_camera_t *camera = (_widgets_camera_t *)g_malloc0(sizeof(_widgets_camera_t)); + camera->rule = rule; + + GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + if(top) + gtk_box_pack_start(GTK_BOX(rule->w_special_box_top), hb, TRUE, TRUE, 0); + else + gtk_box_pack_start(GTK_BOX(rule->w_special_box), hb, TRUE, TRUE, 0); + camera->name = gtk_entry_new(); + gtk_entry_set_width_chars(GTK_ENTRY(camera->name), (top) ? 10 : 0); + gtk_widget_set_can_default(camera->name, TRUE); + gtk_entry_set_placeholder_text(GTK_ENTRY(camera->name), _("camera")); + gtk_widget_set_tooltip_text(camera->name, _("enter camera to search.\n" + "multiple values can be separated by ','\n" + "\nright-click to get existing camera")); + gtk_box_pack_start(GTK_BOX(hb), camera->name, TRUE, TRUE, 0); + g_signal_connect(G_OBJECT(camera->name), "activate", G_CALLBACK(_camera_changed), camera); + g_signal_connect(G_OBJECT(camera->name), "focus-out-event", G_CALLBACK(_camera_focus_out), camera); + g_signal_connect(G_OBJECT(camera->name), "button-press-event", G_CALLBACK(_camera_press), camera); + + if(top) + { + dt_gui_add_class(hb, "dt_quick_filter"); + } + + // the popup + camera->pop = gtk_popover_new(camera->name); + gtk_widget_set_size_request(camera->pop, 250, 400); + g_signal_connect(G_OBJECT(camera->pop), "closed", G_CALLBACK(_camera_popup_closed), camera); + hb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); + gtk_container_add(GTK_CONTAINER(camera->pop), hb); + + // the name tree + GtkWidget *sw = gtk_scrolled_window_new(NULL, NULL); + gtk_box_pack_start(GTK_BOX(hb), sw, TRUE, TRUE, 0); + GtkTreeModel *model + = GTK_TREE_MODEL(gtk_list_store_new(TREE_NUM_COLS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT)); + camera->name_tree = gtk_tree_view_new_with_model(model); + gtk_widget_show(camera->name_tree); + gtk_widget_set_tooltip_text(camera->name_tree, _("click to select camera\n" + "ctrl+click to select multiple values")); + gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(camera->name_tree), FALSE); + GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(camera->name_tree)); + gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE); + g_signal_connect(G_OBJECT(camera->name_tree), "row-activated", G_CALLBACK(_camera_tree_row_activated), camera); + g_signal_connect(G_OBJECT(sel), "changed", G_CALLBACK(_camera_tree_selection_change), camera); + + GtkTreeViewColumn *col = gtk_tree_view_column_new(); + gtk_tree_view_append_column(GTK_TREE_VIEW(camera->name_tree), col); + GtkCellRenderer *renderer = gtk_cell_renderer_text_new(); + gtk_tree_view_column_pack_start(col, renderer, TRUE); + gtk_tree_view_column_set_cell_data_func(col, renderer, _camera_tree_count_func, NULL, NULL); + + gtk_tree_view_set_tooltip_column(GTK_TREE_VIEW(camera->name_tree), TREE_COL_TOOLTIP); + + gtk_container_add(GTK_CONTAINER(sw), camera->name_tree); + + // the button to close the popup + GtkWidget *btn = gtk_button_new_with_label(_("ok")); + gtk_box_pack_start(GTK_BOX(hb), btn, FALSE, TRUE, 0); + g_signal_connect(G_OBJECT(btn), "clicked", G_CALLBACK(_camera_ok_clicked), camera); + + if(top) + rule->w_specific_top = camera; + else + rule->w_specific = camera; +} + +// clang-format off +// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py +// vim: shiftwidth=2 expandtab tabstop=2 cindent +// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; +// clang-format on diff -Nru darktable-4.4.2/src/libs/filters/date.c darktable-4.6.1/src/libs/filters/date.c --- darktable-4.4.2/src/libs/filters/date.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/filters/date.c 2024-02-16 17:31:09.000000000 +0000 @@ -67,7 +67,7 @@ while(sqlite3_step(stmt) == SQLITE_ROW) { const int count = sqlite3_column_int(stmt, 1); - const long dt = sqlite3_column_int64(stmt, 0); + const int64_t dt = sqlite3_column_int64(stmt, 0); dtgtk_range_select_add_block(range, dt, count); if(rangetop) dtgtk_range_select_add_block(rangetop, dt, count); } diff -Nru darktable-4.4.2/src/libs/filters/exposure.c darktable-4.6.1/src/libs/filters/exposure.c --- darktable-4.4.2/src/libs/filters/exposure.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/filters/exposure.c 2024-02-16 17:31:09.000000000 +0000 @@ -20,6 +20,7 @@ This file contains the necessary routines to implement a filter for the filtering module */ +#include "common/utility.h" static gboolean _exposure_update(dt_lib_filtering_rule_t *rule) { @@ -84,12 +85,7 @@ } else { - gchar *locale = g_strdup(setlocale(LC_ALL, NULL)); - setlocale(LC_NUMERIC, "C"); - gchar *txt = g_strdup_printf("%.6lf", value); - setlocale(LC_NUMERIC, locale); - g_free(locale); - return txt; + return dt_util_float_to_str("%.6lf", value); } } @@ -139,4 +135,4 @@ // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; -// clang-format on \ No newline at end of file +// clang-format on diff -Nru darktable-4.4.2/src/libs/filters/filename.c darktable-4.6.1/src/libs/filters/filename.c --- darktable-4.4.2/src/libs/filters/filename.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/filters/filename.c 2024-02-16 17:31:09.000000000 +0000 @@ -57,7 +57,7 @@ if(!txt || strlen(txt) == 0) return; // split the path to find filename and extension parts - gchar **elems = g_strsplit(txt, G_DIR_SEPARATOR_S, -1); + gchar **elems = g_strsplit(txt, "/", -1); const unsigned int size = g_strv_length(elems); if(size == 2) { @@ -250,6 +250,11 @@ gtk_widget_show_all(filename->pop); return TRUE; } + else if(e->button == 1 && e->type == GDK_2BUTTON_PRESS) + { + gtk_entry_set_text(GTK_ENTRY(w), ""); + _filename_changed(w, filename); + } return FALSE; } diff -Nru darktable-4.4.2/src/libs/filters/grouping.c darktable-4.6.1/src/libs/filters/grouping.c --- darktable-4.4.2/src/libs/filters/grouping.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/filters/grouping.c 2024-02-16 17:31:09.000000000 +0000 @@ -109,7 +109,7 @@ g_snprintf(query, sizeof(query), "SELECT gr_count, COUNT(gr_count) " " FROM (SELECT COUNT(*) AS gr_count " - " FROM main.images " + " FROM main.images AS mi" " WHERE %s " " GROUP BY group_id)" " GROUP BY gr_count " @@ -168,7 +168,7 @@ _("select the type of grouped image to filter"), 0, _grouping_changed, grouping, N_("all images"), N_("ungrouped images"), N_("grouped images"), N_("group leaders"), N_("group followers")); - DT_BAUHAUS_WIDGET(grouping->combo)->show_label = FALSE; + dt_bauhaus_widget_hide_label(grouping->combo); if(top) gtk_box_pack_start(GTK_BOX(rule->w_special_box_top), grouping->combo, TRUE, TRUE, 0); diff -Nru darktable-4.4.2/src/libs/filters/history.c darktable-4.6.1/src/libs/filters/history.c --- darktable-4.4.2/src/libs/filters/history.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/filters/history.c 2024-02-16 17:31:09.000000000 +0000 @@ -152,7 +152,7 @@ history->combo = dt_bauhaus_combobox_new_full(DT_ACTION(self), N_("rules"), N_("history"), _("filter on history state"), 0, (GtkCallback)_history_changed, history, _history_names); - DT_BAUHAUS_WIDGET(history->combo)->show_label = FALSE; + dt_bauhaus_widget_hide_label(history->combo); if(top) gtk_box_pack_start(GTK_BOX(rule->w_special_box_top), history->combo, TRUE, TRUE, 0); diff -Nru darktable-4.4.2/src/libs/filters/iso.c darktable-4.6.1/src/libs/filters/iso.c --- darktable-4.4.2/src/libs/filters/iso.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/filters/iso.c 2024-02-16 17:31:09.000000000 +0000 @@ -20,6 +20,7 @@ This file contains the necessary routines to implement a filter for the filtering module */ +#include "common/utility.h" static gboolean _iso_update(dt_lib_filtering_rule_t *rule) { @@ -91,12 +92,7 @@ } else { - gchar *locale = g_strdup(setlocale(LC_ALL, NULL)); - setlocale(LC_NUMERIC, "C"); - gchar *txt = g_strdup_printf("%.0lf", value); - setlocale(LC_NUMERIC, locale); - g_free(locale); - return txt; + return dt_util_float_to_str("%.0lf", value); } } @@ -140,4 +136,4 @@ // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; -// clang-format on \ No newline at end of file +// clang-format on diff -Nru darktable-4.4.2/src/libs/filters/lens.c darktable-4.6.1/src/libs/filters/lens.c --- darktable-4.4.2/src/libs/filters/lens.c 1970-01-01 00:00:00.000000000 +0000 +++ darktable-4.6.1/src/libs/filters/lens.c 2024-02-16 17:31:09.000000000 +0000 @@ -0,0 +1,378 @@ +/* + This file is part of darktable, + Copyright (C) 2023 darktable developers. + + darktable is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + darktable is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with darktable. If not, see <http://www.gnu.org/licenses/>. +*/ + +/* + This file contains the necessary routines to implement a filter for the filtering module +*/ + +typedef struct _widgets_lens_t +{ + dt_lib_filtering_rule_t *rule; + + GtkWidget *name; + GtkWidget *pop; + GtkWidget *name_tree; + gboolean tree_ok; + int internal_change; +} _widgets_lens_t; + +static void _lens_synchronise(_widgets_lens_t *source) +{ + _widgets_lens_t *dest = NULL; + if(source == source->rule->w_specific_top) + dest = source->rule->w_specific; + else + dest = source->rule->w_specific_top; + + if(dest) + { + source->rule->manual_widget_set++; + const gchar *txt1 = gtk_entry_get_text(GTK_ENTRY(source->name)); + gtk_entry_set_text(GTK_ENTRY(dest->name), txt1); + source->rule->manual_widget_set--; + } +} + +static void _lens_changed(GtkWidget *widget, + gpointer user_data) +{ + _widgets_lens_t *lens = (_widgets_lens_t *)user_data; + if(lens->rule->manual_widget_set) return; + + _rule_set_raw_text(lens->rule, gtk_entry_get_text(GTK_ENTRY(lens->name)), TRUE); + _lens_synchronise(lens); +} + +static gboolean _lens_focus_out(GtkWidget *entry, + GdkEventFocus *event, + gpointer user_data) +{ + _widgets_lens_t *lens = (_widgets_lens_t *)user_data; + if(lens->rule->cleaning) return FALSE; + _lens_changed(entry, user_data); + return FALSE; +} + +void _lens_tree_update(_widgets_lens_t *lens) +{ + dt_lib_filtering_t *d = lens->rule->lib; + + char query[1024] = { 0 }; + + GtkTreeIter iter; + GtkTreeModel *name_model = gtk_tree_view_get_model(GTK_TREE_VIEW(lens->name_tree)); + gtk_list_store_clear(GTK_LIST_STORE(name_model)); + + // clang-format off + g_snprintf(query, sizeof(query), + "SELECT CASE LOWER(TRIM(ln.name))" + " WHEN 'n/a' THEN ''" + " ELSE ln.name" + " END AS lens, COUNT(*) AS count" + " FROM main.images AS mi, main.lens AS ln" + " WHERE mi.lens_id = ln.id AND %s" + " GROUP BY lens" + " ORDER BY lens", + d->last_where_ext); + // clang-format on + sqlite3_stmt *stmt; + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), query, -1, &stmt, NULL); + int unset = 0; + while(sqlite3_step(stmt) == SQLITE_ROW) + { + const char *name = (char *)sqlite3_column_text(stmt, 0); + const int count = sqlite3_column_int(stmt, 1); + + if(!name || !g_strcmp0(name, "")) + { + unset += count; + } + else + { + gchar *value_path = g_strdup_printf("\"%s\"", name); + gtk_list_store_append(GTK_LIST_STORE(name_model), &iter); + gtk_list_store_set(GTK_LIST_STORE(name_model), &iter, + TREE_COL_TEXT, name, + TREE_COL_TOOLTIP, name, + TREE_COL_PATH, value_path, + TREE_COL_COUNT, count, -1); + g_free(value_path); + } + } + sqlite3_finalize(stmt); + + // we add the unset entry if any + if(unset > 0) + { + gtk_list_store_append(GTK_LIST_STORE(name_model), &iter); + gtk_list_store_set(GTK_LIST_STORE(name_model), &iter, + TREE_COL_TEXT, _("unnamed"), + TREE_COL_TOOLTIP, _("no lens defined."), + TREE_COL_PATH, _("unnamed"), + TREE_COL_COUNT, unset, -1); + } + lens->tree_ok = TRUE; +} + +void _lens_tree_update_visibility(GtkWidget *w, + _widgets_lens_t *lens) +{ + if(!lens->tree_ok) _lens_tree_update(lens); +} + +static gboolean _lens_select_func(GtkTreeModel *model, + GtkTreePath *path, + GtkTreeIter *iter, + gpointer data) +{ + GtkTreeSelection *sel = (GtkTreeSelection *)data; + gchar **elems = (gchar **)g_object_get_data(G_OBJECT(sel), "elems"); + gchar *str = NULL; + gtk_tree_model_get(model, iter, TREE_COL_PATH, &str, -1); + + for(int i = 0; i < g_strv_length(elems); i++) + { + if(!g_strcmp0(str, elems[i])) + { + gtk_tree_selection_select_path(sel, path); + break; + } + } + + return FALSE; +} + +static void _lens_update_selection(_widgets_lens_t *lens) +{ + // get the current text + GtkWidget *entry = gtk_popover_get_default_widget(GTK_POPOVER(lens->pop)); + const gchar *txt = gtk_entry_get_text(GTK_ENTRY(entry)); + + // get the current treeview + GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(lens->name_tree)); + lens->internal_change++; + gtk_tree_selection_unselect_all(sel); + + if(g_strcmp0(txt, "")) + { + gchar **elems = g_strsplit(txt, ",", -1); + g_object_set_data(G_OBJECT(sel), "elems", elems); + gtk_tree_model_foreach(gtk_tree_view_get_model(GTK_TREE_VIEW(lens->name_tree)), _lens_select_func, sel); + g_strfreev(elems); + } + lens->internal_change--; +} + +static gboolean _lens_press(GtkWidget *w, + GdkEventButton *e, + _widgets_lens_t *lens) +{ + if(e->button == 3) + { + _lens_tree_update_visibility(w, lens); + gtk_popover_set_default_widget(GTK_POPOVER(lens->pop), w); + gtk_popover_set_relative_to(GTK_POPOVER(lens->pop), w); + + // update the selection + _lens_update_selection(lens); + + gtk_widget_show_all(lens->pop); + return TRUE; + } + else if(e->button == 1 && e->type == GDK_2BUTTON_PRESS) + { + gtk_entry_set_text(GTK_ENTRY(lens->name), ""); + _lens_changed(w, lens); + } + return FALSE; +} + +static gboolean _lens_update(dt_lib_filtering_rule_t *rule) +{ + if(!rule->w_specific) return FALSE; + + rule->manual_widget_set++; + _widgets_lens_t *lens = (_widgets_lens_t *)rule->w_specific; + lens->tree_ok = FALSE; + gtk_entry_set_text(GTK_ENTRY(lens->name), rule->raw_text); + if(rule->topbar && rule->w_specific_top) + { + lens = (_widgets_lens_t *)rule->w_specific_top; + lens->tree_ok = FALSE; + gtk_entry_set_text(GTK_ENTRY(lens->name), rule->raw_text); + } + _lens_synchronise(lens); + rule->manual_widget_set--; + + return TRUE; +} + +static void _lens_popup_closed(GtkWidget *w, + _widgets_lens_t *lens) +{ + // we validate the corresponding entry + gtk_widget_activate(gtk_popover_get_default_widget(GTK_POPOVER(w))); +} + +static void _lens_tree_row_activated(GtkTreeView *self, + GtkTreePath *path, + GtkTreeViewColumn *column, + _widgets_lens_t *lens) +{ + // as the selection as already been updated on first click, we just close the popup + gtk_widget_hide(lens->pop); +} + +static void _lens_tree_selection_change(GtkTreeSelection *sel, + _widgets_lens_t *lens) +{ + if(!lens || lens->internal_change) return; + GtkTreeModel *model = gtk_tree_view_get_model(gtk_tree_selection_get_tree_view(sel)); + GList *list = gtk_tree_selection_get_selected_rows(sel, NULL); + + gchar *txt = NULL; + for(const GList *l = list; l; l = g_list_next(l)) + { + GtkTreePath *path = (GtkTreePath *)l->data; + GtkTreeIter iter; + if(gtk_tree_model_get_iter(model, &iter, path)) + { + gchar *val = NULL; + gtk_tree_model_get(model, &iter, TREE_COL_PATH, &val, -1); + if(val) txt = dt_util_dstrcat(txt, "%s%s", (txt == NULL) ? "" : ",", val); + } + } + g_list_free_full(list, (GDestroyNotify)gtk_tree_path_free); + + // we set the entry with this value + GtkWidget *entry = gtk_popover_get_default_widget(GTK_POPOVER(lens->pop)); + gtk_entry_set_text(GTK_ENTRY(entry), (txt == NULL) ? "" : txt); + g_free(txt); +} + +static void _lens_ok_clicked(GtkWidget *w, + _widgets_lens_t *lens) +{ + gtk_widget_hide(lens->pop); +} + +void _lens_tree_count_func(GtkTreeViewColumn *col, + GtkCellRenderer *renderer, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer data) +{ + gchar *name; + guint count; + + gtk_tree_model_get(model, iter, TREE_COL_TEXT, &name, TREE_COL_COUNT, &count, -1); + if(!g_strcmp0(name, "") && count == 0) + { + g_object_set(renderer, "text", name, NULL); + g_object_set(renderer, "sensitive", FALSE, NULL); + } + else + { + gchar *coltext = g_strdup_printf("%s (%u)", name, count); + g_object_set(renderer, "text", coltext, NULL); + g_free(coltext); + g_object_set(renderer, "sensitive", TRUE, NULL); + } + + g_free(name); +} + +static void _lens_widget_init(dt_lib_filtering_rule_t *rule, + const dt_collection_properties_t prop, + const gchar *text, + dt_lib_module_t *self, + const gboolean top) +{ + _widgets_lens_t *lens = (_widgets_lens_t *)g_malloc0(sizeof(_widgets_lens_t)); + lens->rule = rule; + + GtkWidget *hb = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + if(top) + gtk_box_pack_start(GTK_BOX(rule->w_special_box_top), hb, TRUE, TRUE, 0); + else + gtk_box_pack_start(GTK_BOX(rule->w_special_box), hb, TRUE, TRUE, 0); + lens->name = gtk_entry_new(); + gtk_entry_set_width_chars(GTK_ENTRY(lens->name), (top) ? 10 : 0); + gtk_widget_set_can_default(lens->name, TRUE); + gtk_entry_set_placeholder_text(GTK_ENTRY(lens->name), _("lens")); + gtk_widget_set_tooltip_text(lens->name, _("enter lens to search.\n" + "multiple values can be separated by ','\n" + "\nright-click to get existing lens")); + gtk_box_pack_start(GTK_BOX(hb), lens->name, TRUE, TRUE, 0); + g_signal_connect(G_OBJECT(lens->name), "activate", G_CALLBACK(_lens_changed), lens); + g_signal_connect(G_OBJECT(lens->name), "focus-out-event", G_CALLBACK(_lens_focus_out), lens); + g_signal_connect(G_OBJECT(lens->name), "button-press-event", G_CALLBACK(_lens_press), lens); + + if(top) + { + dt_gui_add_class(hb, "dt_quick_filter"); + } + + // the popup + lens->pop = gtk_popover_new(lens->name); + gtk_widget_set_size_request(lens->pop, 250, 400); + g_signal_connect(G_OBJECT(lens->pop), "closed", G_CALLBACK(_lens_popup_closed), lens); + hb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); + gtk_container_add(GTK_CONTAINER(lens->pop), hb); + + // the name tree + GtkWidget *sw = gtk_scrolled_window_new(NULL, NULL); + gtk_box_pack_start(GTK_BOX(hb), sw, TRUE, TRUE, 0); + GtkTreeModel *model + = GTK_TREE_MODEL(gtk_list_store_new(TREE_NUM_COLS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT)); + lens->name_tree = gtk_tree_view_new_with_model(model); + gtk_widget_show(lens->name_tree); + gtk_widget_set_tooltip_text(lens->name_tree, _("click to select lens\n" + "ctrl+click to select multiple values")); + gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(lens->name_tree), FALSE); + GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(lens->name_tree)); + gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE); + g_signal_connect(G_OBJECT(lens->name_tree), "row-activated", G_CALLBACK(_lens_tree_row_activated), lens); + g_signal_connect(G_OBJECT(sel), "changed", G_CALLBACK(_lens_tree_selection_change), lens); + + GtkTreeViewColumn *col = gtk_tree_view_column_new(); + gtk_tree_view_append_column(GTK_TREE_VIEW(lens->name_tree), col); + GtkCellRenderer *renderer = gtk_cell_renderer_text_new(); + gtk_tree_view_column_pack_start(col, renderer, TRUE); + gtk_tree_view_column_set_cell_data_func(col, renderer, _lens_tree_count_func, NULL, NULL); + + gtk_tree_view_set_tooltip_column(GTK_TREE_VIEW(lens->name_tree), TREE_COL_TOOLTIP); + + gtk_container_add(GTK_CONTAINER(sw), lens->name_tree); + + // the button to close the popup + GtkWidget *btn = gtk_button_new_with_label(_("ok")); + gtk_box_pack_start(GTK_BOX(hb), btn, FALSE, TRUE, 0); + g_signal_connect(G_OBJECT(btn), "clicked", G_CALLBACK(_lens_ok_clicked), lens); + + if(top) + rule->w_specific_top = lens; + else + rule->w_specific = lens; +} + +// clang-format off +// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py +// vim: shiftwidth=2 expandtab tabstop=2 cindent +// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; +// clang-format on diff -Nru darktable-4.4.2/src/libs/filters/local_copy.c darktable-4.6.1/src/libs/filters/local_copy.c --- darktable-4.4.2/src/libs/filters/local_copy.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/filters/local_copy.c 2024-02-16 17:31:09.000000000 +0000 @@ -141,7 +141,7 @@ local_copy->combo = dt_bauhaus_combobox_new_full( DT_ACTION(self), N_("rules"), N_("local copy"), _("local copied state filter"), 0, (GtkCallback)_local_copy_changed, local_copy, _local_copy_names); - DT_BAUHAUS_WIDGET(local_copy->combo)->show_label = FALSE; + dt_bauhaus_widget_hide_label(local_copy->combo); if(top) gtk_box_pack_start(GTK_BOX(rule->w_special_box_top), local_copy->combo, TRUE, TRUE, 0); diff -Nru darktable-4.4.2/src/libs/filters/module_order.c darktable-4.6.1/src/libs/filters/module_order.c --- darktable-4.4.2/src/libs/filters/module_order.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/filters/module_order.c 2024-02-16 17:31:09.000000000 +0000 @@ -160,7 +160,7 @@ module_order->combo = dt_bauhaus_combobox_new_full( DT_ACTION(self), N_("rules"), N_("module order"), _("filter images based on their module order"), 0, (GtkCallback)_module_order_changed, module_order, (const char **)_module_order_names); - DT_BAUHAUS_WIDGET(module_order->combo)->show_label = FALSE; + dt_bauhaus_widget_hide_label(module_order->combo); if(top) gtk_box_pack_start(GTK_BOX(rule->w_special_box_top), module_order->combo, TRUE, TRUE, 0); diff -Nru darktable-4.4.2/src/libs/filters/rating.c darktable-4.6.1/src/libs/filters/rating.c --- darktable-4.4.2/src/libs/filters/rating.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/filters/rating.c 2024-02-16 17:31:09.000000000 +0000 @@ -199,7 +199,7 @@ DT_BAUHAUS_COMBOBOX_NEW_FULL(rating_legacy->comparator, self, N_("rules"), N_("comparator"), _("filter by images rating"), 3, _rating_legacy_changed, rating_legacy, "<", "≤", "=", "≥", ">", "≠"); - DT_BAUHAUS_WIDGET(rating_legacy->comparator)->show_label = FALSE; + dt_bauhaus_widget_hide_label(rating_legacy->comparator); gtk_widget_set_halign(rating_legacy->comparator, GTK_ALIGN_START); gtk_widget_set_no_show_all(rating_legacy->comparator, TRUE); dt_gui_add_class(rating_legacy->comparator, "dt_transparent_background"); @@ -210,7 +210,7 @@ DT_BAUHAUS_COMBOBOX_NEW_FULL(rating_legacy->stars, self, N_("rules"), N_("ratings"), _("filter by images rating"), 0, _rating_legacy_changed, rating_legacy, N_("all"), N_("unstarred only"), "★", "★ ★", "★ ★ ★", "★ ★ ★ ★", "★ ★ ★ ★ ★", N_("rejected only"), N_("all except rejected")); - DT_BAUHAUS_WIDGET(rating_legacy->stars)->show_label = FALSE; + dt_bauhaus_widget_hide_label(rating_legacy->stars); // we increase the left padding of the 5 star entry to be sure it's visible with the comparator on top // we do that here to not cause trouble with shortcuts dt_bauhaus_combobox_set_entry_label(rating_legacy->stars, 6, " ★ ★ ★ ★ ★"); diff -Nru darktable-4.4.2/src/libs/filters/rating_range.c darktable-4.6.1/src/libs/filters/rating_range.c --- darktable-4.4.2/src/libs/filters/rating_range.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/filters/rating_range.c 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2022 darktable developers. + Copyright (C) 2022-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -26,7 +26,9 @@ _widgets_range_t *special = (_widgets_range_t *)rule->w_specific; _widgets_range_t *specialtop = (_widgets_range_t *)rule->w_specific_top; GtkDarktableRangeSelect *range = DTGTK_RANGE_SELECT(special->range_select); - GtkDarktableRangeSelect *rangetop = (specialtop) ? DTGTK_RANGE_SELECT(specialtop->range_select) : NULL; + GtkDarktableRangeSelect *rangetop = (specialtop) + ? DTGTK_RANGE_SELECT(specialtop->range_select) + : NULL; rule->manual_widget_set++; char query[1024] = { 0 }; @@ -53,43 +55,62 @@ sqlite3_finalize(stmt); dtgtk_range_select_reset_blocks(range); - dtgtk_range_select_add_range_block(range, 1.0, 1.0, DT_RANGE_BOUND_MIN | DT_RANGE_BOUND_MAX, _("all images"), + dtgtk_range_select_add_range_block(range, 1.0, 1.0, DT_RANGE_BOUND_MIN | DT_RANGE_BOUND_MAX, + _("all images"), nb[0] + nb[1] + nb[2] + nb[3] + nb[4] + nb[5] + nb[6]); - dtgtk_range_select_add_range_block(range, 0.0, 1.0, DT_RANGE_BOUND_MAX, _("all except rejected"), + dtgtk_range_select_add_range_block(range, 0.0, 1.0, DT_RANGE_BOUND_MAX, + _("all except rejected"), nb[1] + nb[2] + nb[3] + nb[4] + nb[5] + nb[6]); - dtgtk_range_select_add_range_block(range, -1.0, -1.0, DT_RANGE_BOUND_FIXED, _("rejected only"), nb[0]); - dtgtk_range_select_add_range_block(range, 0.0, 0.0, DT_RANGE_BOUND_FIXED, _("not rated only"), nb[1]); - dtgtk_range_select_add_range_block(range, 1.0, 5.0, DT_RANGE_BOUND_MAX, "★", nb[2]); - dtgtk_range_select_add_range_block(range, 2.0, 5.0, DT_RANGE_BOUND_MAX, "★ ★", nb[3]); - dtgtk_range_select_add_range_block(range, 3.0, 5.0, DT_RANGE_BOUND_MAX, "★ ★ ★", nb[4]); - dtgtk_range_select_add_range_block(range, 4.0, 5.0, DT_RANGE_BOUND_MAX, "★ ★ ★ ★", nb[5]); - dtgtk_range_select_add_range_block(range, 5.0, 5.0, DT_RANGE_BOUND_MAX, "★ ★ ★ ★ ★", nb[6]); + dtgtk_range_select_add_range_block(range, -1.0, -1.0, DT_RANGE_BOUND_FIXED, + _("rejected only"), nb[0]); + dtgtk_range_select_add_range_block(range, 0.0, 0.0, DT_RANGE_BOUND_FIXED, + _("not rated only"), nb[1]); + dtgtk_range_select_add_range_block(range, 1.0, 5.0, DT_RANGE_BOUND_MAX, + "★", nb[2]); + dtgtk_range_select_add_range_block(range, 2.0, 5.0, DT_RANGE_BOUND_MAX, + "★ ★", nb[3]); + dtgtk_range_select_add_range_block(range, 3.0, 5.0, DT_RANGE_BOUND_MAX, + "★ ★ ★", nb[4]); + dtgtk_range_select_add_range_block(range, 4.0, 5.0, DT_RANGE_BOUND_MAX, + "★ ★ ★ ★", nb[5]); + dtgtk_range_select_add_range_block(range, 5.0, 5.0, DT_RANGE_BOUND_MAX, + "★ ★ ★ ★ ★", nb[6]); if(rangetop) { dtgtk_range_select_reset_blocks(rangetop); dtgtk_range_select_add_range_block(rangetop, 1.0, 1.0, DT_RANGE_BOUND_MIN | DT_RANGE_BOUND_MAX, - _("all images"), nb[0] + nb[1] + nb[2] + nb[3] + nb[4] + nb[5] + nb[6]); - dtgtk_range_select_add_range_block(rangetop, 0.0, 1.0, DT_RANGE_BOUND_MAX, _("all except rejected"), + _("all images"), + nb[0] + nb[1] + nb[2] + nb[3] + nb[4] + nb[5] + nb[6]); + dtgtk_range_select_add_range_block(rangetop, 0.0, 1.0, DT_RANGE_BOUND_MAX, + _("all except rejected"), nb[1] + nb[2] + nb[3] + nb[4] + nb[5] + nb[6]); - dtgtk_range_select_add_range_block(rangetop, -1.0, -1.0, DT_RANGE_BOUND_FIXED, _("rejected only"), nb[0]); - dtgtk_range_select_add_range_block(rangetop, 0.0, 0.0, DT_RANGE_BOUND_FIXED, _("not rated only"), nb[1]); - dtgtk_range_select_add_range_block(rangetop, 1.0, 5.0, DT_RANGE_BOUND_MAX, "★", nb[2]); - dtgtk_range_select_add_range_block(rangetop, 2.0, 5.0, DT_RANGE_BOUND_MAX, "★ ★", nb[3]); - dtgtk_range_select_add_range_block(rangetop, 3.0, 5.0, DT_RANGE_BOUND_MAX, "★ ★ ★", nb[4]); - dtgtk_range_select_add_range_block(rangetop, 4.0, 5.0, DT_RANGE_BOUND_MAX, "★ ★ ★ ★", nb[5]); - dtgtk_range_select_add_range_block(rangetop, 5.0, 5.0, DT_RANGE_BOUND_MAX, "★ ★ ★ ★ ★", nb[6]); + dtgtk_range_select_add_range_block(rangetop, -1.0, -1.0, DT_RANGE_BOUND_FIXED, + _("rejected only"), nb[0]); + dtgtk_range_select_add_range_block(rangetop, 0.0, 0.0, DT_RANGE_BOUND_FIXED, + _("not rated only"), nb[1]); + dtgtk_range_select_add_range_block(rangetop, 1.0, 5.0, DT_RANGE_BOUND_MAX, + "★", nb[2]); + dtgtk_range_select_add_range_block(rangetop, 2.0, 5.0, DT_RANGE_BOUND_MAX, + "★ ★", nb[3]); + dtgtk_range_select_add_range_block(rangetop, 3.0, 5.0, DT_RANGE_BOUND_MAX, + "★ ★ ★", nb[4]); + dtgtk_range_select_add_range_block(rangetop, 4.0, 5.0, DT_RANGE_BOUND_MAX, + "★ ★ ★ ★", nb[5]); + dtgtk_range_select_add_range_block(rangetop, 5.0, 5.0, DT_RANGE_BOUND_MAX, + "★ ★ ★ ★ ★", nb[6]); } dtgtk_range_select_set_selection_from_raw_text(range, rule->raw_text, FALSE); - if(rangetop) dtgtk_range_select_set_selection_from_raw_text(rangetop, rule->raw_text, FALSE); + if(rangetop) + dtgtk_range_select_set_selection_from_raw_text(rangetop, rule->raw_text, FALSE); rule->manual_widget_set--; return TRUE; } -static gchar *_rating_print_func(const double value, const gboolean detailled) +static gchar *_rating_print_func(const double value, const gboolean detailed) { - if(detailled) + if(detailed) { darktable.control->element = value + 1; @@ -106,7 +127,8 @@ static gchar *_rating_get_bounds_pretty(GtkDarktableRangeSelect *range) { - if((range->bounds & DT_RANGE_BOUND_MIN) && (range->bounds & DT_RANGE_BOUND_MAX)) return g_strdup(_("all images")); + if((range->bounds & DT_RANGE_BOUND_MIN) && (range->bounds & DT_RANGE_BOUND_MAX)) + return g_strdup(_("all images")); if((range->bounds & DT_RANGE_BOUND_MIN)) range->select_min_r = range->min_r; if((range->bounds & DT_RANGE_BOUND_MAX)) range->select_max_r = range->max_r; @@ -114,9 +136,7 @@ if(range->select_min_r == range->select_max_r) { gchar *printed_min = range->print(range->select_min_r, TRUE); - gchar *min_only = g_strdup_printf("%s %s", printed_min, _("only")); - g_free(printed_min); - return min_only; + return printed_min; } const int rating_min = (int)floor(range->select_min_r); @@ -165,7 +185,10 @@ { // we want a filled icon cairo_get_source(cr); - cairo_pattern_get_rgba(cairo_get_source(cr), &shade_color.red, &shade_color.green, &shade_color.blue, + cairo_pattern_get_rgba(cairo_get_source(cr), + &shade_color.red, + &shade_color.green, + &shade_color.blue, &shade_color.alpha); shade_color.alpha *= 0.6; my_data = &shade_color; @@ -188,7 +211,10 @@ _ACTION_ELEMENT_MAX = 5 + 1 + 1, }; -static float _action_process_ratings(gpointer target, dt_action_element_t element, dt_action_effect_t effect, float move_size) +static float _action_process_ratings(gpointer target, + dt_action_element_t element, + dt_action_effect_t effect, + float move_size) { if(!target) return DT_ACTION_NOT_VALID; @@ -260,8 +286,9 @@ g_free(txt); } - const gboolean is_active = (new_value >= min || bounds & DT_RANGE_BOUND_MIN) && (new_value <= max || bounds & DT_RANGE_BOUND_MAX); - return - min - 2 + (is_active ? DT_VALUE_PATTERN_ACTIVE : 0); + const gboolean is_active = (new_value >= min || bounds & DT_RANGE_BOUND_MIN) + && (new_value <= max || bounds & DT_RANGE_BOUND_MAX); + return -min - 2 + (is_active ? DT_VALUE_PATTERN_ACTIVE : 0); } const gchar *dt_action_effect_rating[] @@ -287,13 +314,17 @@ _action_process_ratings, _action_elements_ratings }; -static void _rating_range_widget_init(dt_lib_filtering_rule_t *rule, const dt_collection_properties_t prop, - const gchar *text, dt_lib_module_t *self, const gboolean top) +static void _rating_range_widget_init(dt_lib_filtering_rule_t *rule, + const dt_collection_properties_t prop, + const gchar *text, + dt_lib_module_t *self, + const gboolean top) { _widgets_range_t *special = (_widgets_range_t *)g_malloc0(sizeof(_widgets_range_t)); - special->range_select - = dtgtk_range_select_new(dt_collection_name_untranslated(prop), FALSE, DT_RANGE_TYPE_NUMERIC); + special->range_select = dtgtk_range_select_new(dt_collection_name_untranslated(prop), + FALSE, + DT_RANGE_TYPE_NUMERIC); GtkDarktableRangeSelect *range = DTGTK_RANGE_SELECT(special->range_select); gtk_widget_set_name(special->range_select, "dt-range-rating"); // to keep a nice ratio, we don't want the widget to exceed a certain value diff -Nru darktable-4.4.2/src/libs/filters/ratio.c darktable-4.6.1/src/libs/filters/ratio.c --- darktable-4.4.2/src/libs/filters/ratio.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/filters/ratio.c 2024-02-16 17:31:09.000000000 +0000 @@ -20,6 +20,8 @@ This file contains the necessary routines to implement a filter for the filtering module */ +#include "common/utility.h" + static gboolean _ratio_update(dt_lib_filtering_rule_t *rule) { if(!rule->w_specific) return FALSE; @@ -110,11 +112,7 @@ static gchar *_ratio_print_func(const double value, const gboolean detailled) { - gchar *locale = g_strdup(setlocale(LC_ALL, NULL)); - setlocale(LC_NUMERIC, "C"); - gchar *txt = g_strdup_printf("%.2lf", value); - setlocale(LC_NUMERIC, locale); - g_free(locale); + gchar *txt = dt_util_float_to_str("%.2lf", value); if(detailled) { @@ -169,4 +167,4 @@ // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; -// clang-format on \ No newline at end of file +// clang-format on diff -Nru darktable-4.4.2/src/libs/geotagging.c darktable-4.6.1/src/libs/geotagging.c --- darktable-4.4.2/src/libs/geotagging.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/geotagging.c 2024-02-16 17:31:09.000000000 +0000 @@ -806,9 +806,10 @@ { dt_lib_geotagging_t *d = (dt_lib_geotagging_t *)self->data; GtkWidget *win = dt_ui_main_window(darktable.gui->ui); - GtkWidget *dialog = gtk_dialog_new_with_buttons( - _("GPX file track segments"), GTK_WINDOW(win), GTK_DIALOG_DESTROY_WITH_PARENT, - _("done"), GTK_RESPONSE_CANCEL, NULL); + GtkWidget *dialog = gtk_dialog_new_with_buttons(_("GPX file track segments"), GTK_WINDOW(win), + GTK_DIALOG_DESTROY_WITH_PARENT, + _("_done"), GTK_RESPONSE_CANCEL, NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_CANCEL); gchar *filedir = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget)); struct dt_gpx_t *gpx = dt_gpx_new(filedir); @@ -1351,8 +1352,11 @@ _display_datetime(&d->dt0, datetime, FALSE, self); if(locked) { - GDateTime *datetime2 = g_date_time_add(datetime, d->offset); - _new_datetime(datetime2, self); + if (datetime) + { + GDateTime *datetime2 = g_date_time_add(datetime, d->offset); + _new_datetime(datetime2, self); + } } else { @@ -1418,7 +1422,7 @@ int delta_y; int increment = 0; - if(dt_gui_get_scroll_unit_deltas(event, NULL, &delta_y)) + if(dt_gui_get_scroll_unit_delta(event, &delta_y)) { if(delta_y < 0) increment = 1; else if(delta_y > 0) increment = -1; diff -Nru darktable-4.4.2/src/libs/histogram.c darktable-4.6.1/src/libs/histogram.c --- darktable-4.4.2/src/libs/histogram.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/histogram.c 2024-02-16 17:31:09.000000000 +0000 @@ -20,6 +20,7 @@ #include "bauhaus/bauhaus.h" #include "common/atomic.h" +#include "common/color_harmony.h" #include "common/darktable.h" #include "common/debug.h" #include "common/histogram.h" @@ -95,30 +96,6 @@ DT_LIB_HISTOGRAM_VECTORSCOPE_N // needs to be the last one } dt_lib_histogram_vectorscope_type_t; -typedef enum dt_lib_histogram_color_harmony_type_t -{ - DT_LIB_HISTOGRAM_HARMONY_NONE = 0, - DT_LIB_HISTOGRAM_HARMONY_MONOCHROMATIC, - DT_LIB_HISTOGRAM_HARMONY_ANALOGOUS, - DT_LIB_HISTOGRAM_HARMONY_ANALOGOUS_COMPLEMENTARY, - DT_LIB_HISTOGRAM_HARMONY_COMPLEMENTARY, - DT_LIB_HISTOGRAM_HARMONY_SPLIT_COMPLEMENTARY, - DT_LIB_HISTOGRAM_HARMONY_DYAD, - DT_LIB_HISTOGRAM_HARMONY_TRIAD, - DT_LIB_HISTOGRAM_HARMONY_TETRAD, - DT_LIB_HISTOGRAM_HARMONY_SQUARE, - DT_LIB_HISTOGRAM_HARMONY_N // needs to be the last one -} dt_lib_histogram_color_harmony_type_t; - -typedef enum dt_lib_histogram_color_harmony_width_t -{ - DT_LIB_HISTOGRAM_HARMONY_WIDTH_NORMAL = 0, - DT_LIB_HISTOGRAM_HARMONY_WIDTH_LARGE, - DT_LIB_HISTOGRAM_HARMONY_WIDTH_NARROW, - DT_LIB_HISTOGRAM_HARMONY_WIDTH_LINE, - DT_LIB_HISTOGRAM_HARMONY_WIDTH_N // needs to be the last one -} dt_lib_histogram_color_harmony_width_t; - typedef struct dt_lib_histogram_color_harmony_t { const char *name; @@ -127,7 +104,7 @@ const float length[4]; // the radius of the sector, from 0. to 1., linear scale } dt_lib_histogram_color_harmony_t; -dt_lib_histogram_color_harmony_t dt_color_harmonies[DT_LIB_HISTOGRAM_HARMONY_N] = +dt_lib_histogram_color_harmony_t dt_color_harmonies[DT_COLOR_HARMONY_N] = { {N_("none"), 0 }, {N_("monochromatic"), 1, { 0./12. }, {0.80 }}, @@ -165,14 +142,14 @@ "RYB" }; -const gchar *dt_lib_histogram_color_harmony_width_names[DT_LIB_HISTOGRAM_HARMONY_WIDTH_N] = +const gchar *dt_lib_histogram_color_harmony_width_names[DT_COLOR_HARMONY_WIDTH_N] = { "normal", "large", "narrow", "line" }; -const float dt_lib_histogram_color_harmony_width[DT_LIB_HISTOGRAM_HARMONY_WIDTH_N] = +const float dt_lib_histogram_color_harmony_width[DT_COLOR_HARMONY_WIDTH_N] = { 0.5f/12.f, 0.75f/12.f, 0.25f/12.f, 0.0f }; const void *dt_lib_histogram_scope_type_icons[DT_LIB_HISTOGRAM_SCOPE_N] = @@ -215,7 +192,7 @@ GtkWidget *blue_channel_button; // GtkToggleButton -- enable/disable processing B channel GtkWidget *colorspace_button; // GtkButton -- vectorscope colorspace GtkWidget *color_harmony_button - [DT_LIB_HISTOGRAM_HARMONY_N - 1]; // GtkButton -- RYB vectorscope color harmonies + [DT_COLOR_HARMONY_N - 1]; // GtkButton -- RYB vectorscope color harmonies // drag to change parameters gboolean dragging; int32_t button_down_x, button_down_y; @@ -232,10 +209,8 @@ gboolean red, green, blue; float *rgb2ryb_ypp; float *ryb2rgb_ypp; - dt_lib_histogram_color_harmony_type_t color_harmony; - dt_lib_histogram_color_harmony_type_t color_harmony_old; - int harmony_rotation; // in degrees - dt_lib_histogram_color_harmony_width_t harmony_width; + dt_color_harmony_type_t color_harmony_old; + dt_color_harmony_guide_t harmony_guide; } dt_lib_histogram_t; const char *name(dt_lib_module_t *self) @@ -250,7 +225,10 @@ uint32_t container(dt_lib_module_t *self) { - return g_strcmp0(dt_conf_get_string("plugins/darkroom/histogram/panel_position"), "right") ? DT_UI_CONTAINER_PANEL_LEFT_TOP : DT_UI_CONTAINER_PANEL_RIGHT_TOP; + return g_strcmp0 + (dt_conf_get_string_const("plugins/darkroom/histogram/panel_position"), "right") + ? DT_UI_CONTAINER_PANEL_LEFT_TOP + : DT_UI_CONTAINER_PANEL_RIGHT_TOP; } int expandable(dt_lib_module_t *self) @@ -270,7 +248,11 @@ { dt_dev_histogram_collection_params_t histogram_params = { 0 }; const dt_iop_colorspace_type_t cst = IOP_CS_RGB; - dt_dev_histogram_stats_t histogram_stats = { .bins_count = HISTOGRAM_BINS, .ch = 4, .pixels = 0, .buf_size = sizeof(uint32_t) * 4 * HISTOGRAM_BINS }; + dt_dev_histogram_stats_t histogram_stats = + { .bins_count = HISTOGRAM_BINS, + .ch = 4, + .pixels = 0, + .buf_size = sizeof(uint32_t) * 4 * HISTOGRAM_BINS }; uint32_t histogram_max[4] = { 0 }; d->histogram_max = 0; @@ -352,10 +334,12 @@ dt_ioppr_add_profile_info_to_list(darktable.develop, DT_COLORSPACE_HLG_REC2020, "", DT_INTENT_PERCEPTUAL); // lut for all three channels should be the same - const float *const restrict lut = DT_IS_ALIGNED((const float *const restrict)profile->lut_out[0]); + const float *const restrict lut = + DT_IS_ALIGNED((const float *const restrict)profile->lut_out[0]); const float lutmax = profile->lutsize - 1; - const size_t wf_img_stride = cairo_format_stride_for_width(CAIRO_FORMAT_A8, - orient == DT_LIB_HISTOGRAM_ORIENT_HORI ? num_bins : num_tones); + const size_t wf_img_stride = cairo_format_stride_for_width + (CAIRO_FORMAT_A8, + orient == DT_LIB_HISTOGRAM_ORIENT_HORI ? num_bins : num_tones); // Every bin_width x height portion of the image is being described // in a 1 pixel x waveform_tones portion of the histogram. @@ -365,7 +349,9 @@ // count and scale to that? const float brightness = num_tones / 40.0f; - const float scale = brightness / ((orient == DT_LIB_HISTOGRAM_ORIENT_HORI ? sample_height : sample_width) * samples_per_bin); + const float scale = brightness / ((orient == DT_LIB_HISTOGRAM_ORIENT_HORI + ? sample_height + : sample_width) * samples_per_bin); size_t nthreads = dt_get_num_threads(); #if defined(_OPENMP) @@ -377,7 +363,8 @@ for(size_t bin = 0; bin < num_bins; bin++) for(size_t tone = 0; tone < num_tones; tone++) { - uint8_t *const restrict wf_img = DT_IS_ALIGNED((uint8_t *const restrict)d->waveform_img[ch]); + uint8_t *const restrict wf_img = + DT_IS_ALIGNED((uint8_t *const restrict)d->waveform_img[ch]); uint32_t acc = 0; for(size_t n = 0; n < nthreads; n++) { @@ -409,7 +396,9 @@ const float rgb_y_vtx[7] = {0.0, 0.083333, 0.166667, 0.383838, 0.586575, 0.833333, 1.0}; const float ryb_y_vtx[] = {0.0, 0.333333, 0.472217, 0.611105, 0.715271, 0.833333, 1.0}; -static void _ryb2rgb(const dt_aligned_pixel_t ryb, dt_aligned_pixel_t rgb, const float *ryb2rgb_ypp) +static void _ryb2rgb(const dt_aligned_pixel_t ryb, + dt_aligned_pixel_t rgb, + const float *ryb2rgb_ypp) { dt_aligned_pixel_t HSV; dt_RGB_2_HSV(ryb, HSV); @@ -429,10 +418,12 @@ dt_HSV_2_RGB(HSV, ryb); } -static inline float baselog(const float x, const float bound) +static inline float baselog(const float x, + const float bound) { // FIXME: use dt's fastlog()? - return log1pf((VECTORSCOPE_BASE_LOG - 1.f) * x / bound) / logf(VECTORSCOPE_BASE_LOG) * bound; + return log1pf((VECTORSCOPE_BASE_LOG - 1.f) * x / bound) + / logf(VECTORSCOPE_BASE_LOG) * bound; } static inline void log_scale(float *x, float *y, const float r) @@ -639,14 +630,18 @@ const int diam_px = d->vectorscope_diameter_px; const double pattern_max_radius = hypotf(diam_px, diam_px); cairo_matrix_t matrix; - cairo_matrix_init_scale(&matrix, max_radius / pattern_max_radius, max_radius / pattern_max_radius); + cairo_matrix_init_scale(&matrix, max_radius / pattern_max_radius, + max_radius / pattern_max_radius); cairo_matrix_translate(&matrix, -0.5*diam_px, -0.5*diam_px); cairo_pattern_set_matrix(p, &matrix); // rasterize chromaticities pattern for drawing speed - cairo_surface_t *bkgd_surface = cairo_image_surface_create_for_data(d->vectorscope_bkgd, CAIRO_FORMAT_RGB24, - diam_px, diam_px, - cairo_format_stride_for_width(CAIRO_FORMAT_RGB24, diam_px)); + cairo_surface_t *bkgd_surface = + cairo_image_surface_create_for_data + (d->vectorscope_bkgd, CAIRO_FORMAT_RGB24, + diam_px, diam_px, + cairo_format_stride_for_width(CAIRO_FORMAT_RGB24, diam_px)); + cairo_t *crt = cairo_create(bkgd_surface); cairo_set_operator(crt, CAIRO_OPERATOR_SOURCE); cairo_set_source(crt, p); @@ -667,10 +662,11 @@ d->hue_ring_colorspace = d->vectorscope_type; } -static void _get_chromaticity(const dt_aligned_pixel_t RGB, dt_aligned_pixel_t chromaticity, - const dt_lib_histogram_vectorscope_type_t vs_type, - const dt_iop_order_iccprofile_info_t *vs_prof, - const float *rgb2ryb_ypp) +static void _get_chromaticity(const dt_aligned_pixel_t RGB, + dt_aligned_pixel_t chromaticity, + const dt_lib_histogram_vectorscope_type_t vs_type, + const dt_iop_order_iccprofile_info_t *vs_prof, + const float *rgb2ryb_ypp) { switch(vs_type) { @@ -679,12 +675,22 @@ // NOTE: see for comparison/reference rgb_to_JzCzhz() in color_picker.c dt_aligned_pixel_t XYZ_D50; // this goes to the PCS which has standard illuminant D50 - dt_ioppr_rgb_matrix_to_xyz(RGB, XYZ_D50, vs_prof->matrix_in_transposed, vs_prof->lut_in, - vs_prof->unbounded_coeffs_in, vs_prof->lutsize, vs_prof->nonlinearlut); - // FIXME: do have to worry about chromatic adaptation? this assumes that the histogram profile white point is the same as PCS whitepoint (D50) -- if we have a D65 whitepoint profile, how does the result change if we adapt to D65 then convert to L*u*v* with a D65 whitepoint? + dt_ioppr_rgb_matrix_to_xyz(RGB, XYZ_D50, + vs_prof->matrix_in_transposed, + vs_prof->lut_in, + vs_prof->unbounded_coeffs_in, + vs_prof->lutsize, + vs_prof->nonlinearlut); + // FIXME: do have to worry about chromatic adaptation? this + // assumes that the histogram profile white point is the same as + // PCS whitepoint (D50) -- if we have a D65 whitepoint profile, + // how does the result change if we adapt to D65 then convert to + // L*u*v* with a D65 whitepoint? dt_aligned_pixel_t xyY_D50; dt_XYZ_to_xyY(XYZ_D50, xyY_D50); - // using D50 correct u*v* (not u'v') to be relative to the whitepoint (important for vectorscope) and as u*v* is more evenly spaced + // using D50 correct u*v* (not u'v') to be relative to the + // whitepoint (important for vectorscope) and as u*v* is more + // evenly spaced dt_xyY_to_Luv(xyY_D50, chromaticity); break; } @@ -692,17 +698,26 @@ { dt_aligned_pixel_t XYZ_D50; // this goes to the PCS which has standard illuminant D50 - dt_ioppr_rgb_matrix_to_xyz(RGB, XYZ_D50, vs_prof->matrix_in_transposed, vs_prof->lut_in, + dt_ioppr_rgb_matrix_to_xyz(RGB, XYZ_D50, + vs_prof->matrix_in_transposed, + vs_prof->lut_in, vs_prof->unbounded_coeffs_in, vs_prof->lutsize, vs_prof->nonlinearlut); - // FIXME: can skip a hop by pre-multipying matrices: see colorbalancergb and dt_develop_blendif_init_masking_profile() for how to make hacked profile + // FIXME: can skip a hop by pre-multipying matrices: see + // colorbalancergb and dt_develop_blendif_init_masking_profile() + // for how to make hacked profile dt_aligned_pixel_t XYZ_D65; // If the profile whitepoint is D65, its RGB -> XYZ conversion // matrix has been adapted to D50 (PCS standard) via // Bradford. Using Bradford again to adapt back to D65 gives a // pretty clean reversal of the transform. - // FIXME: if the profile whitepoint is D50 (ProPhoto...), then should we use a nicer adaptation (CAT16?) to D65? + // FIXME: if the profile whitepoint is D50 (ProPhoto...), then + // should we use a nicer adaptation (CAT16?) to D65? dt_XYZ_D50_2_XYZ_D65(XYZ_D50, XYZ_D65); - // FIXME: The bulk of processing time is spent in the XYZ -> JzAzBz conversion in the 2*3 powf() in X'Y'Z' -> L'M'S'. Making a LUT for these, using _apply_trc() to do powf() work. It only needs to be accurate enough to be about on the right pixel for a diam_px x diam_px plot + // FIXME: The bulk of processing time is spent in the XYZ -> + // JzAzBz conversion in the 2*3 powf() in X'Y'Z' -> + // L'M'S'. Making a LUT for these, using _apply_trc() to do + // powf() work. It only needs to be accurate enough to be about + // on the right pixel for a diam_px x diam_px plot dt_XYZ_2_JzAzBz(XYZ_D65, chromaticity); break; } @@ -722,9 +737,11 @@ } } -static void _lib_histogram_process_vectorscope(dt_lib_histogram_t *d, const float *const input, - dt_histogram_roi_t *const roi, - const dt_iop_order_iccprofile_info_t *vs_prof) +static void _lib_histogram_process_vectorscope + (dt_lib_histogram_t *d, + const float *const input, + dt_histogram_roi_t *const roi, + const dt_iop_order_iccprofile_info_t *vs_prof) { const int diam_px = d->vectorscope_diameter_px; const dt_lib_histogram_vectorscope_type_t vs_type = d->vectorscope_type; @@ -733,13 +750,20 @@ if(!vs_prof || !dt_is_valid_colormatrix(vs_prof->matrix_in[0][0])) { dt_print(DT_DEBUG_ALWAYS, - "[histogram] unsupported vectorscope profile %i %s, it will be replaced with linear Rec2020\n", - vs_prof->type, vs_prof->filename); - vs_prof = dt_ioppr_add_profile_info_to_list(darktable.develop, DT_COLORSPACE_LIN_REC2020, "", DT_INTENT_RELATIVE_COLORIMETRIC); + "[histogram] unsupported vectorscope profile %i %s," + " it will be replaced with linear Rec2020\n", + vs_prof ? vs_prof->type : 0, + vs_prof ? vs_prof->filename : "unsupported"); + dt_control_log(_("unsupported vectorscope profile selected," + " it will be replaced with linear Rec2020")); + vs_prof = dt_ioppr_add_profile_info_to_list + (darktable.develop, + DT_COLORSPACE_LIN_REC2020, "", DT_INTENT_RELATIVE_COLORIMETRIC); } _lib_histogram_vectorscope_bkgd(d, vs_prof); - // FIXME: particularly for u*v*, center on hue ring bounds rather than plot center, to be able to show a larger plot? + // FIXME: particularly for u*v*, center on hue ring bounds rather + // than plot center, to be able to show a larger plot? const float max_radius = d->vectorscope_radius; const float max_diam = max_radius * 2.f; @@ -755,18 +779,39 @@ const float *rgb2ryb_ypp = d->rgb2ryb_ypp; // RGB -> chromaticity (processor-heavy), count into bins by chromaticity - // FIXME: if we do convert to histogram RGB, should it be an absolute colorimetric conversion (would mean knowing the histogram profile whitepoint and un-adapting its matrices) and then we have a meaningful whitepoint and could plot spectral locus -- or the reverse, adapt the spectral locus to the histogram profile PCS (always D50)? + // + // FIXME: if we do convert to histogram RGB, should it be an + // absolute colorimetric conversion (would mean knowing the + // histogram profile whitepoint and un-adapting its matrices) and + // then we have a meaningful whitepoint and could plot spectral + // locus -- or the reverse, adapt the spectral locus to the + // histogram profile PCS (always D50)? + // // FIXME: pre-allocate? -- use the same buffer as for waveform? dt_atomic_int *const restrict binned = __builtin_assume_aligned(dt_alloc_align(64, sizeof(int) * diam_px * diam_px), 64); memset(binned, 0, sizeof(int) * diam_px * diam_px); - // FIXME: move verbosed interleaved comments into a method note at the start, as the code itself is succinct and clear - // FIXME: even with getting rid of the extra profile conversion hop there's no noticeable speedup -- maybe this loop is memory bound -- if can get rid of one of the output buffers and still no speedup, consider doing more work in this loop, such as atomic binning + // FIXME: move verbosed interleaved comments into a method note at + // the start, as the code itself is succinct and clear + // + // FIXME: even with getting rid of the extra profile conversion hop + // there's no noticeable speedup -- maybe this loop is memory bound + // -- if can get rid of one of the output buffers and still no + // speedup, consider doing more work in this loop, such as atomic + // binning + // // FIXME: make 2x2 averaging be conditional on preprocessor define + // // FIXME: average neighboring pixels on x but not y -- may be enough of an optimization const int sample_max_x = sample_width - (sample_width % 2); const int sample_max_y = sample_height - (sample_height % 2); // FIXME: if decimate/downsample, should blur before this - // FIXME: instead of scaling, if chromaticity really depends only on XY, then make a lookup on startup of for each grid cell on graph output the minimum XY to populate that cell, then either brute-force scan that LUT, or start from position of last pixel and scan, or do an optimized search (1/2, 1/2, 1/2, etc.) -- would also find point sample pixel this way + // + // FIXME: instead of scaling, if chromaticity really depends only on + // XY, then make a lookup on startup of for each grid cell on graph + // output the minimum XY to populate that cell, then either + // brute-force scan that LUT, or start from position of last pixel + // and scan, or do an optimized search (1/2, 1/2, 1/2, etc.) -- + // would also find point sample pixel this way #if defined(_OPENMP) #pragma omp parallel for default(none) \ dt_omp_firstprivate(input, binned, sample_max_x, sample_max_y, roi, rgb2ryb_ypp, diam_px, max_radius, max_diam, vs_prof, vs_type, vs_scale) \ @@ -775,11 +820,11 @@ for(size_t y=0; y<sample_max_y; y+=2) for(size_t x=0; x<sample_max_x; x+=2) { - // FIXME: There are unnecessary color math hops. Right now the data - // comes into dt_lib_histogram_process() in a known profile + // FIXME: There are unnecessary color math hops. Right now the + // data comes into dt_lib_histogram_process() in a known profile // (usually from pixelpipe). Then (usually) it gets converted to - // the histogram profile. Here it gets converted to XYZ D50 before - // making its way to L*u*v* or JzAzBz: + // the histogram profile. Here it gets converted to XYZ D50 + // before making its way to L*u*v* or JzAzBz: // RGB (pixelpipe) -> XYZ(PCS, D50) -> RGB (histogram) -> XYZ (PCS, D50) -> chromaticity // Given that the histogram profile is "well behaved" and the // conversion to histogram profile is relative colorimetric, could @@ -788,17 +833,25 @@ // A catch is that pixelpipe RGB may be a CLUT profile, hence would // need to have an LCMS path unless histogram moves to before colorout. dt_aligned_pixel_t RGB = {0.f}, chromaticity; - // FIXME: for speed, downsample 2x2 -> 1x1 here, which still should produce enough chromaticity data -- Question: AVERAGE(RGBx4) -> chromaticity, or AVERAGE((RGB -> chromaticity)x4)? - // FIXME: could compromise and downsample to 2x1 -- may also be a bit faster than skipping rows - const float *const restrict px = DT_IS_ALIGNED((const float *const restrict)input + - 4U * ((y + roi->crop_y) * roi->width + x + roi->crop_x)); + // FIXME: for speed, downsample 2x2 -> 1x1 here, which still + // should produce enough chromaticity data -- Question: + // AVERAGE(RGBx4) -> chromaticity, or AVERAGE((RGB -> + // chromaticity)x4)? + // + // FIXME: could compromise and downsample to 2x1 -- may also be + // a bit faster than skipping rows + const float *const restrict px = + DT_IS_ALIGNED((const float *const restrict)input + + 4U * ((y + roi->crop_y) * roi->width + x + roi->crop_x)); for(size_t xx=0; xx<2; xx++) for(size_t yy=0; yy<2; yy++) for_each_channel(ch, aligned(px,RGB:16)) RGB[ch] += px[4U * (yy * roi->width + xx) + ch] * 0.25f; _get_chromaticity(RGB, chromaticity, vs_type, vs_prof, rgb2ryb_ypp); - // FIXME: we ignore the L or Jz components -- do they optimize out of the above code, or would in particular a XYZ_2_AzBz but helpful? + // FIXME: we ignore the L or Jz components -- do they optimize + // out of the above code, or would in particular a XYZ_2_AzBz + // but helpful? if(vs_scale == DT_LIB_HISTOGRAM_SCALE_LOGARITHMIC) log_scale(&chromaticity[1], &chromaticity[2], max_radius); @@ -812,7 +865,8 @@ } dt_aligned_pixel_t RGB = {0.f}, chromaticity; - const dt_lib_colorpicker_statistic_t statistic = darktable.lib->proxy.colorpicker.statistic; + const dt_lib_colorpicker_statistic_t statistic = + darktable.lib->proxy.colorpicker.statistic; dt_colorpicker_sample_t *sample; // find position of the primary sample @@ -837,7 +891,8 @@ GSList *samples = darktable.lib->proxy.colorpicker.live_samples; if(samples) { - const dt_colorpicker_sample_t *selected = darktable.lib->proxy.colorpicker.selected_sample; + const dt_colorpicker_sample_t *selected = + darktable.lib->proxy.colorpicker.selected_sample; int pos = 0; for(; samples; samples = g_slist_next(samples)) @@ -865,8 +920,10 @@ // shortcut to change from linear to display gamma const dt_iop_order_iccprofile_info_t *const profile = - dt_ioppr_add_profile_info_to_list(darktable.develop, DT_COLORSPACE_HLG_REC2020, "", DT_INTENT_PERCEPTUAL); - const float *const restrict lut = DT_IS_ALIGNED((const float *const restrict)profile->lut_out[0]); + dt_ioppr_add_profile_info_to_list(darktable.develop, + DT_COLORSPACE_HLG_REC2020, "", DT_INTENT_PERCEPTUAL); + const float *const restrict lut = + DT_IS_ALIGNED((const float *const restrict)profile->lut_out[0]); const float lutmax = profile->lutsize - 1; const int out_stride = cairo_format_stride_for_width(CAIRO_FORMAT_A8, diam_px); uint8_t *const graph = d->vectorscope_graph; @@ -888,10 +945,13 @@ dt_free_align(binned); } -static void dt_lib_histogram_process(struct dt_lib_module_t *self, const float *const input, - int width, int height, - const dt_iop_order_iccprofile_info_t *const profile_info_from, - const dt_iop_order_iccprofile_info_t *const profile_info_to) +static void dt_lib_histogram_process + (struct dt_lib_module_t *self, + const float *const input, + int width, + int height, + const dt_iop_order_iccprofile_info_t *const profile_info_from, + const dt_iop_order_iccprofile_info_t *const profile_info_to) { dt_times_t start; dt_get_perf_times(&start); @@ -909,8 +969,11 @@ return; } - // FIXME: scope goes black when click histogram lib colorpicker on -- is this meant to happen? - // FIXME: scope doesn't redraw when click histogram lib colorpicker off -- is this meant to happen? + // FIXME: scope goes black when click histogram lib colorpicker on + // -- is this meant to happen? + // + // FIXME: scope doesn't redraw when click histogram lib colorpicker + // off -- is this meant to happen? dt_histogram_roi_t roi = { .width = width, .height = height, .crop_x = 0, @@ -919,18 +982,32 @@ .crop_bottom = 0 }; // Constraining the area if the colorpicker is active in area mode + // // FIXME: only need to do colorspace conversion below on roi - // FIXME: if the only time we use roi in histogram to limit area is here, and whenever we use tether there is no colorpicker (true?), and if we're always doing a colorspace transform in darkroom and clip to roi during conversion, then can get rid of all roi code for common/histogram? - // when darkroom colorpicker is active, gui_module is set to colorout - const dt_view_t *cv = dt_view_manager_get_current_view(darktable.view_manager); - if(cv->view(cv) == DT_VIEW_DARKROOM && darktable.lib->proxy.colorpicker.restrict_histogram) + // + // FIXME: if the only time we use roi in histogram to limit area is + // here, and whenever we use tether there is no colorpicker (true?), + // and if we're always doing a colorspace transform in darkroom and + // clip to roi during conversion, then can get rid of all roi code + // for common/histogram? when darkroom colorpicker is active, + // gui_module is set to colorout + if(dt_view_get_current() == DT_VIEW_DARKROOM + && darktable.lib->proxy.colorpicker.restrict_histogram) { - const dt_colorpicker_sample_t *const sample = darktable.lib->proxy.colorpicker.primary_sample; + const dt_colorpicker_sample_t *const sample = + darktable.lib->proxy.colorpicker.primary_sample; dt_iop_color_picker_t *proxy = darktable.lib->proxy.colorpicker.picker_proxy; if(proxy && !proxy->module) { - // FIXME: for histogram process whole image, then pull point sample #'s from primary_picker->scope_mean (point) or _mean, _min, _max (as in rgb curve) and draw them as an overlay - // FIXME: for waveform point sample, could process whole image, then do an overlay of the point sample from primary_picker->scope_mean as red/green/blue dots (or short lines) at appropriate position at the horizontal/vertical position of sample + // FIXME: for histogram process whole image, then pull point + // sample #'s from primary_picker->scope_mean (point) or _mean, + // _min, _max (as in rgb curve) and draw them as an overlay + // + // FIXME: for waveform point sample, could process whole image, + // then do an overlay of the point sample from + // primary_picker->scope_mean as red/green/blue dots (or short + // lines) at appropriate position at the horizontal/vertical + // position of sample if(sample->size == DT_LIB_COLORPICKER_SIZE_BOX) { roi.crop_x = MIN(width, MAX(0, sample->box[0] * width)); @@ -951,12 +1028,22 @@ // Convert pixelpipe output in display RGB to histogram profile. If // in tether view, then the image is already converted by the // caller. - // FIXME: do conversion in-place in the processing to save an extra buffer? -- at least for waveform, which already has to touch each pixel -- will need logic from _transform_matrix_rgb() -- or better yet a per-pixel callback within _transform_matrix_rgb()-ish code - // FIXME: in case of vectorscope, it needs XYZ data, so skip this conversion and instead it's enough that it has input & profile_info_from -- though then we don't see the result of a relative colorimetric conversion to the histogram profile... + // + // FIXME: do conversion in-place in the processing to save an extra + // buffer? -- at least for waveform, which already has to touch each + // pixel -- will need logic from _transform_matrix_rgb() -- or + // better yet a per-pixel callback within + // _transform_matrix_rgb()-ish code + // + // FIXME: in case of vectorscope, it needs XYZ data, so skip this + // conversion and instead it's enough that it has input & + // profile_info_from -- though then we don't see the result of a + // relative colorimetric conversion to the histogram profile... float *img_display = dt_alloc_align_float((size_t)4 * width * height); if(!img_display) return; - dt_ioppr_transform_image_colorspace_rgb(input, img_display, width, height, - profile_info_from, profile_info_to, "final histogram"); + dt_ioppr_transform_image_colorspace_rgb + (input, img_display, width, height, + profile_info_from, profile_info_to, "final histogram"); dt_pthread_mutex_lock(&d->lock); switch(d->scope_type) { @@ -977,16 +1064,21 @@ dt_pthread_mutex_unlock(&d->lock); dt_free_align(img_display); - dt_show_times_f(&start, "[histogram]", "final %s", dt_lib_histogram_scope_type_names[d->scope_type]); + dt_show_times_f(&start, "[histogram]", "final %s", + dt_lib_histogram_scope_type_names[d->scope_type]); } -static void _lib_histogram_draw_histogram(dt_lib_histogram_t *d, cairo_t *cr, - int width, int height, const uint8_t mask[3]) +static void _lib_histogram_draw_histogram(dt_lib_histogram_t *d, + cairo_t *cr, + int width, + int height, + const uint8_t mask[3]) { if(!d->histogram_max) return; - const float hist_max = d->histogram_scale == DT_LIB_HISTOGRAM_SCALE_LINEAR ? d->histogram_max - : logf(1.0 + d->histogram_max); + const float hist_max = d->histogram_scale == DT_LIB_HISTOGRAM_SCALE_LINEAR + ? d->histogram_max + : logf(1.0 + d->histogram_max); // The alpha of each histogram channel is 1, hence the primaries and // overlaid secondaries and neutral colors should be about the same // brightness. The combined group is then drawn with an alpha, which @@ -1000,9 +1092,12 @@ for(int k = 0; k < 3; k++) if(mask[k]) { - // FIXME: this is the last place in dt these are used -- if can eliminate, then can directly set button colors in CSS and simplify things + // FIXME: this is the last place in dt these are used -- if can + // eliminate, then can directly set button colors in CSS and + // simplify things set_color(cr, darktable.bauhaus->graph_colors[k]); - dt_draw_histogram_8(cr, d->histogram, 4, k, d->histogram_scale == DT_LIB_HISTOGRAM_SCALE_LINEAR); + dt_draw_histogram_8(cr, d->histogram, 4, k, + d->histogram_scale == DT_LIB_HISTOGRAM_SCALE_LINEAR); } cairo_pop_group_to_source(cr); cairo_set_operator(cr, CAIRO_OPERATOR_ADD); @@ -1010,18 +1105,23 @@ cairo_restore(cr); } -static void _lib_histogram_draw_waveform(dt_lib_histogram_t *d, cairo_t *cr, - int width, int height, +static void _lib_histogram_draw_waveform(dt_lib_histogram_t *d, + cairo_t *cr, + int width, + int height, const uint8_t mask[3]) { // composite before scaling to screen dimensions, as scaling each // layer on draw causes a >2x slowdown const double alpha_chroma = 0.75, desat_over = 0.75, alpha_over = 0.35; - const int img_width = d->scope_orient == DT_LIB_HISTOGRAM_ORIENT_HORI ? d->waveform_bins : d->waveform_tones; - const int img_height = d->scope_orient == DT_LIB_HISTOGRAM_ORIENT_HORI ? d->waveform_tones : d->waveform_bins; + const int img_width = d->scope_orient == DT_LIB_HISTOGRAM_ORIENT_HORI + ? d->waveform_bins : d->waveform_tones; + const int img_height = d->scope_orient == DT_LIB_HISTOGRAM_ORIENT_HORI + ? d->waveform_tones : d->waveform_bins; const size_t img_stride = cairo_format_stride_for_width(CAIRO_FORMAT_A8, img_width); cairo_surface_t *cs[3] = { NULL, NULL, NULL }; - cairo_surface_t *cst = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, img_width, img_height); + cairo_surface_t *cst = cairo_image_surface_create + (CAIRO_FORMAT_ARGB32, img_width, img_height); cairo_t *crt = cairo_create(cst); cairo_set_operator(crt, CAIRO_OPERATOR_ADD); @@ -1037,7 +1137,10 @@ for(int ch = 0; ch < 3; ch++) if(cs[ch]) { - cairo_set_source_rgba(crt, ch==0 ? 1.:desat_over, ch==1 ? 1.:desat_over, ch==2 ? 1.:desat_over, alpha_over); + cairo_set_source_rgba(crt, + ch==0 ? 1.:desat_over, + ch==1 ? 1.:desat_over, + ch==2 ? 1.:desat_over, alpha_over); cairo_mask_surface(crt, cs[ch], 0., 0.); cairo_surface_destroy(cs[ch]); } @@ -1062,14 +1165,20 @@ cairo_restore(cr); } -static void _lib_histogram_draw_rgb_parade(dt_lib_histogram_t *d, cairo_t *cr, int width, int height) +static void _lib_histogram_draw_rgb_parade(dt_lib_histogram_t *d, + cairo_t *cr, + int width, + int height) { // same composite-to-temp optimization as in waveform code above const double alpha_chroma = 0.85, desat_over = 0.85, alpha_over = 0.65; - const int img_width = d->scope_orient == DT_LIB_HISTOGRAM_ORIENT_HORI ? d->waveform_bins : d->waveform_tones; - const int img_height = d->scope_orient == DT_LIB_HISTOGRAM_ORIENT_HORI ? d->waveform_tones : d->waveform_bins; + const int img_width = d->scope_orient == DT_LIB_HISTOGRAM_ORIENT_HORI + ? d->waveform_bins : d->waveform_tones; + const int img_height = d->scope_orient == DT_LIB_HISTOGRAM_ORIENT_HORI + ? d->waveform_tones : d->waveform_bins; const size_t img_stride = cairo_format_stride_for_width(CAIRO_FORMAT_A8, img_width); - cairo_surface_t *cst = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, img_width, img_height); + cairo_surface_t *cst = + cairo_image_surface_create(CAIRO_FORMAT_ARGB32, img_width, img_height); cairo_t *crt = cairo_create(cst); // Though this scales and throws away data on each composite, it @@ -1088,7 +1197,10 @@ cairo_set_operator(crt, CAIRO_OPERATOR_ADD); cairo_mask_surface(crt, cs, 0., 0.); cairo_set_operator(crt, CAIRO_OPERATOR_HARD_LIGHT); - cairo_set_source_rgba(crt, ch==0 ? 1.:desat_over, ch==1 ? 1.:desat_over, ch==2 ? 1.:desat_over, alpha_over); + cairo_set_source_rgba(crt, + ch==0 ? 1.:desat_over, + ch==1 ? 1.:desat_over, + ch==2 ? 1.:desat_over, alpha_over); cairo_mask_surface(crt, cs, 0., 0.); cairo_surface_destroy(cs); if(d->scope_orient == DT_LIB_HISTOGRAM_ORIENT_HORI) @@ -1128,16 +1240,24 @@ cairo_save(cr); // background - cairo_pattern_t *p = cairo_pattern_create_radial(0.5 * width, 0.5 * height, 0.5 * min_size, - 0.5 * width, 0.5 * height, 0.5 * hypot(min_size, min_size)); - cairo_pattern_add_color_stop_rgb(p, 0., darktable.bauhaus->graph_bg.red, darktable.bauhaus->graph_bg.green, darktable.bauhaus->graph_bg.blue); - cairo_pattern_add_color_stop_rgb(p, 1., darktable.bauhaus->graph_exterior.red, darktable.bauhaus->graph_exterior.green, darktable.bauhaus->graph_exterior.blue); + cairo_pattern_t *p = cairo_pattern_create_radial + (0.5 * width, 0.5 * height, 0.5 * min_size, + 0.5 * width, 0.5 * height, 0.5 * hypot(min_size, min_size)); + cairo_pattern_add_color_stop_rgb(p, 0., + darktable.bauhaus->graph_bg.red, + darktable.bauhaus->graph_bg.green, + darktable.bauhaus->graph_bg.blue); + cairo_pattern_add_color_stop_rgb(p, 1., + darktable.bauhaus->graph_exterior.red, + darktable.bauhaus->graph_exterior.green, + darktable.bauhaus->graph_exterior.blue); cairo_rectangle(cr, 0, 0, width, height); cairo_set_source(cr, p); cairo_fill(cr); cairo_pattern_destroy(p); - // FIXME: the areas to left/right of the scope could have some data (primaries, whitepoint, scale, etc.) + // FIXME: the areas to left/right of the scope could have some data + // (primaries, whitepoint, scale, etc.) cairo_translate(cr, width / 2., height / 2.); cairo_rotate(cr, d->vectorscope_angle); @@ -1150,7 +1270,8 @@ // concentric circles as a scale set_color(cr, darktable.bauhaus->graph_grid); cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(1.)); - const float grid_radius = d->hue_ring_colorspace == DT_LIB_HISTOGRAM_VECTORSCOPE_CIELUV ? 100. : 0.01; + const float grid_radius = d->hue_ring_colorspace == DT_LIB_HISTOGRAM_VECTORSCOPE_CIELUV + ? 100. : 0.01; for(int i = 1; i < 1.f + ceilf(vs_radius/grid_radius); i++) { float r = grid_radius * i; @@ -1162,9 +1283,10 @@ // chromaticities for drawing both hue ring and graph cairo_surface_t *bkgd_surface = - dt_cairo_image_surface_create_for_data(d->vectorscope_bkgd, CAIRO_FORMAT_RGB24, - diam_px, diam_px, - cairo_format_stride_for_width(CAIRO_FORMAT_RGB24, diam_px)); + dt_cairo_image_surface_create_for_data + (d->vectorscope_bkgd, CAIRO_FORMAT_RGB24, + diam_px, diam_px, + cairo_format_stride_for_width(CAIRO_FORMAT_RGB24, diam_px)); cairo_pattern_t *bkgd_pat = cairo_pattern_create_for_surface(bkgd_surface); // primary nodes circles may extend to outside of pattern cairo_pattern_set_extend(bkgd_pat, CAIRO_EXTEND_PAD); @@ -1180,9 +1302,19 @@ // FIXME: also add hue rings (monochrome/dotted) for input/work/output profiles // from Sobotka: - // 1. The input encoding primaries. How dd the image start out life? What is valid data within that? What is invalid introduced by error of camera virtual primaries solving or math such as resampling an image such that negative lobes result? - // 2. The working reference primaries. How did 1. end up in 2.? Are there negative and therefore nonsensical values in the working space? Should a gamut mapping pass be applied before work, between 1. and 2.? - // 3. The output primaries rendition. From a selection of gamut mappings, is one required between 2. and 3.?" + + // 1. The input encoding primaries. How dd the image start out life? + // What is valid data within that? What is invalid introduced by + // error of camera virtual primaries solving or math such as + // resampling an image such that negative lobes result? + // + // 2. The working reference primaries. How did 1. end up in 2.? Are + // there negative and therefore nonsensical values in the working + // space? Should a gamut mapping pass be applied before work, + // between 1. and 2.? + // + // 3. The output primaries rendition. From a selection of gamut + // mappings, is one required between 2. and 3.?" // graticule: histogram profile hue ring cairo_set_operator(cr, CAIRO_OPERATOR_ADD); @@ -1191,7 +1323,8 @@ for(int n = 0; n < 6; n++) for(int h=0; h<VECTORSCOPE_HUES; h++) { - // note that hue_ring coords are calculated as float but converted here to double + // note that hue_ring coords are calculated as float but + // converted here to double const float x = d->hue_ring[n][h][0]; const float y = d->hue_ring[n][h][1]; cairo_line_to(cr, x*scale, y*scale); @@ -1216,44 +1349,52 @@ // vectorscope graph // FIXME: use cairo_pattern_set_filter()? cairo_surface_t *graph_surface = - dt_cairo_image_surface_create_for_data(d->vectorscope_graph, CAIRO_FORMAT_A8, - diam_px, diam_px, - cairo_format_stride_for_width(CAIRO_FORMAT_A8, diam_px)); + dt_cairo_image_surface_create_for_data + (d->vectorscope_graph, CAIRO_FORMAT_A8, + diam_px, diam_px, + cairo_format_stride_for_width(CAIRO_FORMAT_A8, diam_px)); cairo_pattern_t *graph_pat = cairo_pattern_create_for_surface(graph_surface); cairo_pattern_set_matrix(graph_pat, &matrix); cairo_set_operator(cr, CAIRO_OPERATOR_ADD); - const gboolean display_primary_sample = darktable.lib->proxy.colorpicker.restrict_histogram && - darktable.lib->proxy.colorpicker.primary_sample->size == DT_LIB_COLORPICKER_SIZE_POINT; - const gboolean display_live_samples = d->vectorscope_samples && - darktable.lib->proxy.colorpicker.display_samples; + const gboolean display_primary_sample = + darktable.lib->proxy.colorpicker.restrict_histogram + && darktable.lib->proxy.colorpicker.primary_sample->size == DT_LIB_COLORPICKER_SIZE_POINT; + const gboolean display_live_samples = d->vectorscope_samples + && darktable.lib->proxy.colorpicker.display_samples; // we draw the color harmony guidelines - if(d->vectorscope_type == DT_LIB_HISTOGRAM_VECTORSCOPE_RYB && - d->color_harmony != DT_LIB_HISTOGRAM_HARMONY_NONE) + if(d->vectorscope_type == DT_LIB_HISTOGRAM_VECTORSCOPE_RYB + && d->harmony_guide.type != DT_COLOR_HARMONY_NONE) { cairo_save(cr); - const float hw = dt_lib_histogram_color_harmony_width[d->harmony_width]; + const float hw = dt_lib_histogram_color_harmony_width[d->harmony_guide.width]; cairo_set_line_width(cr, DT_PIXEL_APPLY_DPI(1.)); - const dt_lib_histogram_color_harmony_t hm = dt_color_harmonies[d->color_harmony]; + const dt_lib_histogram_color_harmony_t hm = dt_color_harmonies[d->harmony_guide.type]; for(int i = 0; i < hm.sectors; i++) { float hr = vs_radius * hm.length[i]; if(d->vectorscope_scale == DT_LIB_HISTOGRAM_SCALE_LOGARITHMIC) hr = baselog(hr, vs_radius); - const float span1 = (i > 0 ? MIN(hw, (hm.angle[i] - hm.angle[i-1]) / 2.f) : hw); // avoid sectors overlap - const float span2 = (i < hm.sectors - 1 ? MIN(hw, (hm.angle[i+1] - hm.angle[i]) / 2.f): hw); - const float angle1 = ((hm.angle[i] - span1) * 2.f + d->harmony_rotation / 180.f) * M_PI; - const float angle2 = ((hm.angle[i] + span2) * 2.f + d->harmony_rotation / 180.f) * M_PI; + const float span1 = (i > 0 + ? MIN(hw, (hm.angle[i] - hm.angle[i-1]) / 2.f) + : hw); // avoid sectors overlap + const float span2 = (i < hm.sectors - 1 + ? MIN(hw, (hm.angle[i+1] - hm.angle[i]) / 2.f) + : hw); + const float angle1 = + ((hm.angle[i] - span1) * 2.f + d->harmony_guide.rotation / 180.f) * M_PI; + const float angle2 = + ((hm.angle[i] + span2) * 2.f + d->harmony_guide.rotation / 180.f) * M_PI; cairo_arc(cr, 0., 0., hr * scale, angle1, angle2); cairo_line_to(cr, 0., 0.); } cairo_close_path(cr); cairo_set_source(cr, bkgd_pat); set_color(cr, darktable.bauhaus->graph_fg); - if(d->harmony_width == DT_LIB_HISTOGRAM_HARMONY_WIDTH_LINE) + if(d->harmony_guide.width == DT_COLOR_HARMONY_WIDTH_LINE) cairo_stroke(cr); else { @@ -1280,21 +1421,24 @@ // draw information about current selected harmony PangoLayout *layout; PangoRectangle ink; - PangoFontDescription *desc = pango_font_description_copy_static(darktable.bauhaus->pango_font_desc); + PangoFontDescription *desc = + pango_font_description_copy_static(darktable.bauhaus->pango_font_desc); pango_font_description_set_weight(desc, PANGO_WEIGHT_NORMAL); pango_font_description_set_absolute_size(desc, DT_PIXEL_APPLY_DPI(16) * PANGO_SCALE); layout = pango_cairo_create_layout(cr); pango_layout_set_font_description(layout, desc); pango_layout_set_alignment(layout, PANGO_ALIGN_RIGHT); - gchar *text = g_strdup_printf("%d°\n%s", d->harmony_rotation, _(hm.name)); + gchar *text = g_strdup_printf("%d°\n%s", d->harmony_guide.rotation, _(hm.name)); set_color(cr, darktable.bauhaus->graph_fg); pango_layout_set_text(layout, text, -1); pango_layout_get_pixel_extents(layout, NULL, &ink); cairo_scale(cr, 1., -1.); cairo_rotate(cr, -d->vectorscope_angle); - cairo_move_to(cr, 0.48f * width - ink.width - ink.x, 0.48 * height - ink.height - ink.y); + cairo_move_to(cr, + 0.48f * width - ink.width - ink.x, + 0.48 * height - ink.height - ink.y); pango_cairo_show_layout(cr, layout); cairo_stroke(cr); pango_font_description_free(desc); @@ -1353,13 +1497,20 @@ if(pos == d->selected_sample) { set_color(cr, darktable.bauhaus->graph_fg_active); - cairo_arc(cr, scale * sample_xy[0], scale * sample_xy[1], DT_PIXEL_APPLY_DPI(6.), 0., M_PI * 2.); + cairo_arc(cr, + scale * sample_xy[0], + scale * sample_xy[1], + DT_PIXEL_APPLY_DPI(6.), + 0., M_PI * 2.); cairo_fill(cr); } else { set_color(cr, darktable.bauhaus->graph_fg); - cairo_arc(cr, scale * sample_xy[0], scale * sample_xy[1], DT_PIXEL_APPLY_DPI(4.), 0., M_PI * 2.); + cairo_arc(cr, + scale * sample_xy[0], + scale * sample_xy[1], + DT_PIXEL_APPLY_DPI(4.), 0., M_PI * 2.); cairo_stroke(cr); } pos++; @@ -1369,9 +1520,18 @@ cairo_restore(cr); } -// FIXME: have different drawable for each scope in a stack -- simplifies this function from being a swath of conditionals -- then essentially draw callbacks _lib_histogram_draw_waveform, _lib_histogram_draw_rgb_parade, etc. -// FIXME: if exposure change regions are separate widgets, then we could have a menu to swap in different overlay widgets (sort of like basic adjustments) to adjust other things about the image, e.g. tone equalizer, color balance, etc. -static gboolean _drawable_draw_callback(GtkWidget *widget, cairo_t *crf, gpointer user_data) +// FIXME: have different drawable for each scope in a stack -- +// simplifies this function from being a swath of conditionals -- then +// essentially draw callbacks _lib_histogram_draw_waveform, +// _lib_histogram_draw_rgb_parade, etc. +// +// FIXME: if exposure change regions are separate widgets, then we +// could have a menu to swap in different overlay widgets (sort of +// like basic adjustments) to adjust other things about the image, +// e.g. tone equalizer, color balance, etc. +static gboolean _drawable_draw_callback(GtkWidget *widget, + cairo_t *crf, + gpointer user_data) { dt_times_t start; dt_get_perf_times(&start); @@ -1432,7 +1592,8 @@ switch(d->scope_type) { case DT_LIB_HISTOGRAM_SCOPE_HISTOGRAM: - // FIXME: now that vectorscope grid represents log scale, should histogram grid do the same? + // FIXME: now that vectorscope grid represents log scale, should + // histogram grid do the same? dt_draw_grid(cr, 4, 0, 0, width, height); break; case DT_LIB_HISTOGRAM_SCOPE_WAVEFORM: @@ -1442,18 +1603,20 @@ break; case DT_LIB_HISTOGRAM_SCOPE_VECTORSCOPE: // grid is drawn with scope, as it depends on chromaticity scale - // FIXME: now that there is no auto-scale but logarithmic/linear, can draw grid here again? + // FIXME: now that there is no auto-scale but + // logarithmic/linear, can draw grid here again? break; case DT_LIB_HISTOGRAM_SCOPE_N: dt_unreachable_codepath(); } - // FIXME: should set histogram buffer to black if have just entered tether view and nothing is displayed + // FIXME: should set histogram buffer to black if have just entered + // tether view and nothing is displayed dt_pthread_mutex_lock(&d->lock); // darkroom view: draw scope so long as preview pipe is finished // tether view: draw whatever has come in from tether - const dt_view_t *cv = dt_view_manager_get_current_view(darktable.view_manager); - if(cv->view(cv) == DT_VIEW_TETHERING || dev->image_storage.id == dev->preview_pipe->output_imgid) + if(dt_view_get_current() == DT_VIEW_TETHERING + || dev->image_storage.id == dev->preview_pipe->output_imgid) { const uint8_t mask[3] = { d->red, d->green, d->blue }; switch(d->scope_type) @@ -1490,10 +1653,11 @@ cairo_surface_destroy(cst); dt_show_times_f(&start, "[histogram]", "scope draw"); - return TRUE; + return FALSE; } -static gboolean _drawable_motion_notify_callback(GtkWidget *widget, GdkEventMotion *event, +static gboolean _drawable_motion_notify_callback(GtkWidget *widget, + GdkEventMotion *event, gpointer user_data) { dt_lib_histogram_t *d = (dt_lib_histogram_t *)user_data; @@ -1504,19 +1668,26 @@ if(d->dragging) { // FIXME: dragging the vectorscope could change white balance - const gboolean width_wise = (d->scope_type == DT_LIB_HISTOGRAM_SCOPE_HISTOGRAM || - d->scope_orient == DT_LIB_HISTOGRAM_ORIENT_VERT); - const float diff = width_wise ? event->x - d->button_down_x : d->button_down_y - event->y; + const gboolean width_wise = + (d->scope_type == DT_LIB_HISTOGRAM_SCOPE_HISTOGRAM + || d->scope_orient == DT_LIB_HISTOGRAM_ORIENT_VERT); + const float diff = width_wise + ? event->x - d->button_down_x : d->button_down_y - event->y; const int range = width_wise ? allocation.width : allocation.height; - // FIXME: see dt_bauhaus_slider_postponed_value_change(): delay processing until the pixelpipe can update based on dev->preview_average_delay for smoother interaction + // FIXME: see dt_bauhaus_slider_postponed_value_change(): delay + // processing until the pixelpipe can update based on + // dev->preview_average_delay for smoother interaction if(d->highlight == DT_LIB_HISTOGRAM_HIGHLIGHT_EXPOSURE) { - const float exposure = d->button_down_value + diff * 4.0f / (float)range * dt_accel_get_speed_multiplier(widget, event->state); + const float exposure = + d->button_down_value + diff * 4.0f + / (float)range * dt_accel_get_speed_multiplier(widget, event->state); dt_dev_exposure_set_exposure(dev, exposure); } else if(d->highlight == DT_LIB_HISTOGRAM_HIGHLIGHT_BLACK_POINT) { - const float black = d->button_down_value - diff * .1f / (float)range * dt_accel_get_speed_multiplier(widget, event->state); + const float black = d->button_down_value - diff * .1f + / (float)range * dt_accel_get_speed_multiplier(widget, event->state); dt_dev_exposure_set_black(dev, black); } } @@ -1527,17 +1698,19 @@ const float posx = x / (float)(allocation.width); const float posy = y / (float)(allocation.height); const dt_lib_histogram_highlight_t prior_highlight = d->highlight; - const dt_view_t *cv = dt_view_manager_get_current_view(darktable.view_manager); - const gboolean hooks_available = (cv->view(cv) == DT_VIEW_DARKROOM) && dt_dev_exposure_hooks_available(dev); + const gboolean hooks_available = (dt_view_get_current() == DT_VIEW_DARKROOM) + && dt_dev_exposure_hooks_available(dev); - // FIXME: make just one tooltip for the widget depending on whether it is draggable or not, and set it when enter the view - gchar *tip = g_strdup_printf("%s\n", _(dt_lib_histogram_scope_type_names[d->scope_type])); + // FIXME: make just one tooltip for the widget depending on + // whether it is draggable or not, and set it when enter the view + gchar *tip = g_strdup_printf("%s\n", + _(dt_lib_histogram_scope_type_names[d->scope_type])); if(d->scope_type == DT_LIB_HISTOGRAM_SCOPE_VECTORSCOPE) { d->highlight = DT_LIB_HISTOGRAM_HIGHLIGHT_NONE; if(d->scope_type == DT_LIB_HISTOGRAM_SCOPE_VECTORSCOPE && d->vectorscope_type == DT_LIB_HISTOGRAM_VECTORSCOPE_RYB && - d->color_harmony != DT_LIB_HISTOGRAM_HARMONY_NONE) + d->harmony_guide.type != DT_COLOR_HARMONY_NONE) tip = dt_util_dstrcat(tip, "\n%s\n%s\n%s\n%s", _("scroll to coarse-rotate"), _("ctrl+scroll to fine rotate"), @@ -1546,10 +1719,13 @@ } else if(hooks_available) { - if((posx < 0.2f && d->scope_type == DT_LIB_HISTOGRAM_SCOPE_HISTOGRAM) || - ((d->scope_type == DT_LIB_HISTOGRAM_SCOPE_WAVEFORM || d->scope_type == DT_LIB_HISTOGRAM_SCOPE_PARADE) && - ((posy > 7.0f/9.0f && d->scope_orient == DT_LIB_HISTOGRAM_ORIENT_HORI) || - (posx < 2.0f/9.0f && d->scope_orient == DT_LIB_HISTOGRAM_ORIENT_VERT)))) + if((posx < 0.2f && d->scope_type == DT_LIB_HISTOGRAM_SCOPE_HISTOGRAM) + || ((d->scope_type == DT_LIB_HISTOGRAM_SCOPE_WAVEFORM + || d->scope_type == DT_LIB_HISTOGRAM_SCOPE_PARADE) + && ((posy > 7.0f/9.0f + && d->scope_orient == DT_LIB_HISTOGRAM_ORIENT_HORI) + || (posx < 2.0f/9.0f + && d->scope_orient == DT_LIB_HISTOGRAM_ORIENT_VERT)))) { d->highlight = DT_LIB_HISTOGRAM_HIGHLIGHT_BLACK_POINT; tip = dt_util_dstrcat(tip, "\n%s\n%s", @@ -1572,7 +1748,8 @@ gtk_widget_queue_draw(widget); if(d->highlight != DT_LIB_HISTOGRAM_HIGHLIGHT_NONE) { - // FIXME: should really use named cursors, and differentiate between "grab" and "grabbing" + // FIXME: should really use named cursors, and differentiate + // between "grab" and "grabbing" dt_control_change_cursor(GDK_HAND1); } } @@ -1582,7 +1759,9 @@ return FALSE; } -static gboolean _drawable_button_press_callback(GtkWidget *widget, GdkEventButton *event, gpointer user_data) +static gboolean _drawable_button_press_callback(GtkWidget *widget, + GdkEventButton *event, + gpointer user_data) { dt_lib_histogram_t *d = (dt_lib_histogram_t *)user_data; dt_develop_t *dev = darktable.develop; @@ -1595,7 +1774,9 @@ } else { - // FIXME: should change cursor from "grab" to "grabbing", but this would mean rewriting dt_control_change_cursor() to use gdk_cursor_new_from_name() + // FIXME: should change cursor from "grab" to "grabbing", but + // this would mean rewriting dt_control_change_cursor() to use + // gdk_cursor_new_from_name() if(d->highlight == DT_LIB_HISTOGRAM_HIGHLIGHT_EXPOSURE) { d->button_down_value = dt_dev_exposure_get_exposure(dev); @@ -1613,19 +1794,25 @@ return TRUE; } -static void _color_harmony_button_on_off(dt_lib_histogram_color_harmony_type_t on, - dt_lib_histogram_color_harmony_type_t off, - dt_lib_histogram_t *d) -{ - if(off != DT_LIB_HISTOGRAM_HARMONY_NONE) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->color_harmony_button[off - 1]), FALSE); - if(on != DT_LIB_HISTOGRAM_HARMONY_NONE) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->color_harmony_button[on - 1]), TRUE); +static void _color_harmony_button_on(dt_lib_histogram_t *d) +{ + const dt_color_harmony_type_t on = d->harmony_guide.type; + + for(dt_color_harmony_type_t c = DT_COLOR_HARMONY_MONOCHROMATIC; + c < DT_COLOR_HARMONY_N; + c++) + { + gtk_toggle_button_set_active + (GTK_TOGGLE_BUTTON(d->color_harmony_button[c-1]), c == on); + } } static void _color_harmony_changed(dt_lib_histogram_t *d); +static void _color_harmony_changed_record(dt_lib_histogram_t *d); -static gboolean _eventbox_scroll_callback(GtkWidget *widget, GdkEventScroll *event, gpointer user_data) +static gboolean _eventbox_scroll_callback(GtkWidget *widget, + GdkEventScroll *event, + gpointer user_data) { dt_lib_histogram_t *d = (dt_lib_histogram_t *)user_data; int delta_y = 0; @@ -1634,62 +1821,72 @@ // bubble to adjusting the overall widget size gtk_widget_event(d->scope_draw, (GdkEvent*)event); } - // note are using unit rather than smooth scroll events, as + // note we are using unit rather than smooth scroll events, as // exposure changes can get laggy if handling a multitude of smooth // scroll events - else if(dt_gui_get_scroll_unit_deltas(event, NULL, &delta_y) && delta_y != 0) + else if(dt_gui_get_scroll_unit_delta(event, &delta_y) && delta_y != 0) { if(d->highlight != DT_LIB_HISTOGRAM_HIGHLIGHT_NONE) { dt_develop_t *dev = darktable.develop; - // FIXME: see dt_bauhaus_slider_postponed_value_change(): delay processing until the pixelpipe can update based on dev->preview_average_delay for smoother interaction + // FIXME: see dt_bauhaus_slider_postponed_value_change(): delay + // processing until the pixelpipe can update based on + // dev->preview_average_delay for smoother interaction if(d->highlight == DT_LIB_HISTOGRAM_HIGHLIGHT_EXPOSURE) { const float ce = dt_dev_exposure_get_exposure(dev); - dt_dev_exposure_set_exposure(dev, ce - 0.15f * delta_y * dt_accel_get_speed_multiplier(widget, event->state)); + dt_dev_exposure_set_exposure + (dev, + ce - 0.15f * delta_y * dt_accel_get_speed_multiplier(widget, event->state)); } else if(d->highlight == DT_LIB_HISTOGRAM_HIGHLIGHT_BLACK_POINT) { const float cb = dt_dev_exposure_get_black(dev); - dt_dev_exposure_set_black(dev, cb + 0.001f * delta_y * dt_accel_get_speed_multiplier(widget, event->state)); + dt_dev_exposure_set_black + (dev, + cb + 0.001f * delta_y * dt_accel_get_speed_multiplier(widget, event->state)); } } else if(d->scope_type == DT_LIB_HISTOGRAM_SCOPE_VECTORSCOPE) { if(dt_modifier_is(event->state, GDK_SHIFT_MASK)) // SHIFT+SCROLL { - if(d->harmony_width == 0 && delta_y < 0) d->harmony_width = DT_LIB_HISTOGRAM_HARMONY_WIDTH_N - 1; - else d->harmony_width = (d->harmony_width +delta_y) % DT_LIB_HISTOGRAM_HARMONY_WIDTH_N; + if(d->harmony_guide.width == 0 && delta_y < 0) + d->harmony_guide.width = DT_COLOR_HARMONY_WIDTH_N - 1; + else + d->harmony_guide.width = (d->harmony_guide.width +delta_y) % DT_COLOR_HARMONY_WIDTH_N; } else if(dt_modifier_is(event->state, GDK_MOD1_MASK)) // ALT+SCROLL { - if(d->color_harmony_old == DT_LIB_HISTOGRAM_HARMONY_NONE && delta_y < 0) - d->color_harmony = DT_LIB_HISTOGRAM_HARMONY_N - 1; - else d->color_harmony = (d->color_harmony_old + delta_y) % DT_LIB_HISTOGRAM_HARMONY_N; - _color_harmony_button_on_off(d->color_harmony, d->color_harmony_old, d); - d->color_harmony_old = d->color_harmony; + if(d->color_harmony_old == DT_COLOR_HARMONY_NONE && delta_y < 0) + d->harmony_guide.type = DT_COLOR_HARMONY_N - 1; + else + d->harmony_guide.type = (d->color_harmony_old + delta_y) % DT_COLOR_HARMONY_N; + _color_harmony_button_on(d); + d->color_harmony_old = d->harmony_guide.type; } else { int a; if(dt_modifier_is(event->state, GDK_CONTROL_MASK)) // CTRL+SCROLL - a = d->harmony_rotation + delta_y; + a = d->harmony_guide.rotation + delta_y; else // SCROLL { - d->harmony_rotation = (int)(d->harmony_rotation / 15.) * 15; - a = d->harmony_rotation + 15 * delta_y; + d->harmony_guide.rotation = (int)(d->harmony_guide.rotation / 15.) * 15; + a = d->harmony_guide.rotation + 15 * delta_y; } a %= 360; if(a < 0) a += 360; - d->harmony_rotation = a; + d->harmony_guide.rotation = a; } - _color_harmony_changed(d); + _color_harmony_changed_record(d); } } return TRUE; } -static gboolean _drawable_button_release_callback(GtkWidget *widget, GdkEventButton *event, +static gboolean _drawable_button_release_callback(GtkWidget *widget, + GdkEventButton *event, gpointer user_data) { dt_lib_histogram_t *d = (dt_lib_histogram_t *)user_data; @@ -1700,7 +1897,8 @@ return TRUE; } -static gboolean _drawable_leave_notify_callback(GtkWidget *widget, GdkEventCrossing *event, +static gboolean _drawable_leave_notify_callback(GtkWidget *widget, + GdkEventCrossing *event, gpointer user_data) { dt_lib_histogram_t *d = (dt_lib_histogram_t *)user_data; @@ -1734,8 +1932,10 @@ case DT_LIB_HISTOGRAM_SCALE_N: dt_unreachable_codepath(); } - // FIXME: this should really redraw current iop if its background is a histogram (check request_histogram) - darktable.lib->proxy.histogram.is_linear = d->histogram_scale == DT_LIB_HISTOGRAM_SCALE_LINEAR; + // FIXME: this should really redraw current iop if its background is + // a histogram (check request_histogram) + darktable.lib->proxy.histogram.is_linear = + d->histogram_scale == DT_LIB_HISTOGRAM_SCALE_LINEAR; } static void _scope_orient_update(const dt_lib_histogram_t *d) @@ -1832,7 +2032,8 @@ static void _scope_type_changed(dt_lib_histogram_t *d) { - dt_conf_set_string("plugins/darkroom/histogram/mode", dt_lib_histogram_scope_type_names[d->scope_type]); + dt_conf_set_string("plugins/darkroom/histogram/mode", + dt_lib_histogram_scope_type_names[d->scope_type]); _scope_type_update(d); if(d->waveform_bins) @@ -1843,22 +2044,24 @@ else { // generate data for changed scope and trigger widget redraw - const dt_view_t *cv = dt_view_manager_get_current_view(darktable.view_manager); - if(cv->view(cv) == DT_VIEW_DARKROOM) + if(dt_view_get_current() == DT_VIEW_DARKROOM) dt_dev_process_preview(darktable.develop); else dt_control_queue_redraw_center(); } } -static gboolean _scope_histogram_mode_clicked(GtkWidget *button, GdkEventButton *event, dt_lib_histogram_t *d) +static gboolean _scope_histogram_mode_clicked(GtkWidget *button, + GdkEventButton *event, + dt_lib_histogram_t *d) { if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button))) return TRUE; int i; for(i = 0; i < DT_LIB_HISTOGRAM_SCOPE_N; i++) // find the position of the button if(d->scope_type_button[i] == button) break; - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->scope_type_button[d->scope_type]), FALSE); + gtk_toggle_button_set_active + (GTK_TOGGLE_BUTTON(d->scope_type_button[d->scope_type]), FALSE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE); const dt_lib_histogram_scope_type_t scope_type_old = d->scope_type; d->scope_type = i; @@ -1902,8 +2105,7 @@ dt_unreachable_codepath(); } // trigger new process from scratch - const dt_view_t *cv = dt_view_manager_get_current_view(darktable.view_manager); - if(cv->view(cv) == DT_VIEW_DARKROOM) + if(dt_view_get_current() == DT_VIEW_DARKROOM) dt_dev_process_preview(darktable.develop); else dt_control_queue_redraw_center(); @@ -1916,14 +2118,50 @@ dt_lib_histogram_vectorscope_type_names[d->vectorscope_type]); _vectorscope_view_update(d); // trigger new process from scratch depending on whether CIELuv or JzAzBz - // FIXME: it would be nice as with other scopes to make the initial processing independent of the view - const dt_view_t *cv = dt_view_manager_get_current_view(darktable.view_manager); - if(cv->view(cv) == DT_VIEW_DARKROOM) + // FIXME: it would be nice as with other scopes to make the initial + // processing independent of the view + if(dt_view_get_current() == DT_VIEW_DARKROOM) dt_dev_process_preview(darktable.develop); else dt_control_queue_redraw_center(); } +static void _update_color_harmony_gui(dt_lib_module_t *self) +{ + dt_lib_histogram_t *d = (dt_lib_histogram_t *)self->data; + + const dt_imgid_t imgid = darktable.develop->image_storage.id; + + const dt_image_t *img = dt_image_cache_get(darktable.image_cache, imgid, 'r'); + + dt_color_harmony_init(&d->harmony_guide); + + if(img) + { + memcpy(&d->harmony_guide, &img->color_harmony_guide, sizeof(dt_color_harmony_guide_t)); + dt_image_cache_read_release(darktable.image_cache, img); + } + + // restore rotation/width default + if(d->harmony_guide.type == DT_COLOR_HARMONY_NONE) + { + d->harmony_guide.rotation = + dt_conf_get_int("plugins/darkroom/histogram/vectorscope/harmony_rotation"); + d->harmony_guide.width = + dt_conf_get_int("plugins/darkroom/histogram/vectorscope/harmony_width"); + } + + _color_harmony_button_on(d); + _color_harmony_changed(d); +} + +void _signal_image_changed(gpointer instance, gpointer user_data) +{ + dt_lib_module_t *self = (dt_lib_module_t *)user_data; + + _update_color_harmony_gui(self); +} + // FIXME: these all could be the same function with different user_data static void _red_channel_toggle(GtkWidget *button, dt_lib_histogram_t *d) { @@ -1948,69 +2186,93 @@ static void _color_harmony_changed(dt_lib_histogram_t *d) { - dt_conf_set_string("plugins/darkroom/histogram/vectorscope/harmony_type", - dt_color_harmonies[d->color_harmony].name); - dt_conf_set_int("plugins/darkroom/histogram/vectorscope/harmony_width", - d->harmony_width); - dt_conf_set_int("plugins/darkroom/histogram/vectorscope/harmony_rotation", - d->harmony_rotation); gtk_widget_queue_draw(d->scope_draw); } -static gboolean _color_harmony_clicked(GtkWidget *button, GdkEventButton *event, dt_lib_histogram_t *d) +static void _color_harmony_changed_record(dt_lib_histogram_t *d) +{ + dt_conf_set_string("plugins/darkroom/histogram/vectorscope/harmony_type", + dt_color_harmonies[d->harmony_guide.type].name); + // if color harmony unset, still keep the rotation/width as default + if(d->harmony_guide.type != DT_COLOR_HARMONY_NONE) + { + dt_conf_set_int("plugins/darkroom/histogram/vectorscope/harmony_width", + d->harmony_guide.width); + dt_conf_set_int("plugins/darkroom/histogram/vectorscope/harmony_rotation", + d->harmony_guide.rotation); + } + + _color_harmony_changed(d); + + const dt_imgid_t imgid = darktable.develop->image_storage.id; + + dt_image_t *img = dt_image_cache_get(darktable.image_cache, imgid, 'w'); + + memcpy(&img->color_harmony_guide, + &d->harmony_guide, + sizeof(dt_color_harmony_guide_t)); + + dt_image_cache_write_release(darktable.image_cache, img, DT_IMAGE_CACHE_SAFE); +} + +static gboolean _color_harmony_clicked(GtkWidget *button, + GdkEventButton *event, + dt_lib_histogram_t *d) { if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button))) { // clicked on active button, we remove guidelines gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), FALSE); - d->color_harmony = d->color_harmony_old = DT_LIB_HISTOGRAM_HARMONY_NONE; + d->harmony_guide.type = d->color_harmony_old = DT_COLOR_HARMONY_NONE; } else { // find positions of clicked button - int pos = -1; - for(int i = 0; i < DT_LIB_HISTOGRAM_HARMONY_N - 1; i++) + for(dt_color_harmony_type_t i = DT_COLOR_HARMONY_NONE; i < DT_COLOR_HARMONY_N - 1; i++) if(d->color_harmony_button[i] == button) { - pos = i; + d->harmony_guide.type = d->color_harmony_old = i + 1; break; } - _color_harmony_button_on_off(pos + 1, d->color_harmony_old, d); - d->color_harmony = d->color_harmony_old = pos + 1; + _color_harmony_button_on(d); } - _color_harmony_changed(d); + _color_harmony_changed_record(d); return TRUE; } -static gboolean _color_harmony_enter_notify_callback(GtkWidget *widget, GdkEventCrossing *event, - gpointer user_data) +static gboolean _color_harmony_enter_notify_callback(GtkWidget *widget, + GdkEventCrossing *event, + gpointer user_data) { dt_lib_histogram_t *d = (dt_lib_histogram_t *)user_data; // find positions of entered button - int pos = -1; - for(int i = 0; i < DT_LIB_HISTOGRAM_HARMONY_N - 1; i++) + + d->color_harmony_old = d->harmony_guide.type; + + for(dt_color_harmony_type_t i = DT_COLOR_HARMONY_NONE; i < DT_COLOR_HARMONY_N - 1; i++) if(d->color_harmony_button[i] == widget) { - pos = i; + d->harmony_guide.type = i + 1; break; } - d->color_harmony_old = d->color_harmony; - d->color_harmony = pos + 1; + gtk_widget_queue_draw(d->scope_draw); return FALSE; } -static gboolean _color_harmony_leave_notify_callback(GtkWidget *widget, GdkEventCrossing *event, - gpointer user_data) +static gboolean _color_harmony_leave_notify_callback(GtkWidget *widget, + GdkEventCrossing *event, + gpointer user_data) { dt_lib_histogram_t *d = (dt_lib_histogram_t *)user_data; - d->color_harmony = d->color_harmony_old; + d->harmony_guide.type = d->color_harmony_old; gtk_widget_queue_draw(d->scope_draw); return FALSE; } -static gboolean _eventbox_enter_notify_callback(GtkWidget *widget, GdkEventCrossing *event, - gpointer user_data) +static gboolean _eventbox_enter_notify_callback(GtkWidget *widget, + GdkEventCrossing *event, + gpointer user_data) { dt_lib_histogram_t *d = (dt_lib_histogram_t *)user_data; _scope_type_update(d); @@ -2019,7 +2281,8 @@ return FALSE; } -static gboolean _eventbox_motion_notify_callback(GtkWidget *widget, GdkEventMotion *event, +static gboolean _eventbox_motion_notify_callback(GtkWidget *widget, + GdkEventMotion *event, gpointer user_data) { //This is required in order to correctly display the button tooltips @@ -2029,15 +2292,17 @@ GtkAllocation fix_alloc; gtk_widget_get_allocation(d->color_harmony_fix, &fix_alloc); const int full_height = gtk_widget_get_allocated_height(widget); - const int excess = gtk_widget_get_allocated_height(d->color_harmony_box) + fix_alloc.y - full_height; + const int excess = + gtk_widget_get_allocated_height(d->color_harmony_box) + fix_alloc.y - full_height; const int shift = excess * MAX(event->y - fix_alloc.y, 0) / (full_height - fix_alloc.y); gtk_fixed_move(GTK_FIXED(d->color_harmony_fix), d->color_harmony_box, 0, - MAX(shift, 0)); return FALSE; } -static gboolean _eventbox_leave_notify_callback(GtkWidget *widget, GdkEventCrossing *event, - gpointer user_data) +static gboolean _eventbox_leave_notify_callback(GtkWidget *widget, + GdkEventCrossing *event, + gpointer user_data) { // when click between buttons on the buttonbox a leave event is generated -- ignore it if(!(event->mode == GDK_CROSSING_UNGRAB && event->detail == GDK_NOTIFY_INFERIOR)) @@ -2065,13 +2330,20 @@ dt_lib_module_t *self = darktable.lib->proxy.histogram.module; dt_lib_histogram_t *d = (dt_lib_histogram_t *)self->data; - // FIXME: When switch modes, this hack turns off the highlight and turn the cursor back to pointer, as we don't know what/if the new highlight is going to be. Right solution would be to have a highlight update function which takes cursor x,y and is called either here or on pointer motion. Really right solution is probably separate widgets for the drag areas which generate enter/leave events. + // FIXME: When switch modes, this hack turns off the highlight and + // turn the cursor back to pointer, as we don't know what/if the new + // highlight is going to be. Right solution would be to have a + // highlight update function which takes cursor x,y and is called + // either here or on pointer motion. Really right solution is + // probably separate widgets for the drag areas which generate + // enter/leave events. d->dragging = FALSE; d->highlight = DT_LIB_HISTOGRAM_HIGHLIGHT_NONE; dt_control_change_cursor(GDK_LEFT_PTR); - // The cycle order is Hist log -> lin -> waveform hori -> vert -> parade hori -> vert -> - // vectorscope log u*v* -> lin u*v* -> log AzBz -> lin AzBzS (update logic on more scopes) + // The cycle order is Hist log -> lin -> waveform hori -> vert -> + // parade hori -> vert -> vectorscope log u*v* -> lin u*v* -> log + // AzBz -> lin AzBzS (update logic on more scopes) switch(d->scope_type) { case DT_LIB_HISTOGRAM_SCOPE_HISTOGRAM: @@ -2084,7 +2356,8 @@ d->scope_orient = DT_LIB_HISTOGRAM_ORIENT_HORI; dt_conf_set_string("plugins/darkroom/histogram/orient", dt_lib_histogram_orient_names[d->scope_orient]); - _scope_histogram_mode_clicked(d->scope_type_button[DT_LIB_HISTOGRAM_SCOPE_WAVEFORM], NULL, d); + _scope_histogram_mode_clicked + (d->scope_type_button[DT_LIB_HISTOGRAM_SCOPE_WAVEFORM], NULL, d); } break; case DT_LIB_HISTOGRAM_SCOPE_WAVEFORM: @@ -2100,7 +2373,8 @@ // we can't reuse histogram data, as we are changing orientation // so this will force recalculation d->waveform_bins = 0; - _scope_histogram_mode_clicked(d->scope_type_button[DT_LIB_HISTOGRAM_SCOPE_PARADE], NULL, d); + _scope_histogram_mode_clicked + (d->scope_type_button[DT_LIB_HISTOGRAM_SCOPE_PARADE], NULL, d); } break; case DT_LIB_HISTOGRAM_SCOPE_PARADE: @@ -2116,7 +2390,8 @@ d->vectorscope_scale = DT_LIB_HISTOGRAM_SCALE_LOGARITHMIC; dt_conf_set_string("plugins/darkroom/histogram/vectorscope/scale", dt_lib_histogram_scale_names[d->vectorscope_scale]); - _scope_histogram_mode_clicked(d->scope_type_button[DT_LIB_HISTOGRAM_SCOPE_VECTORSCOPE], NULL, d); + _scope_histogram_mode_clicked + (d->scope_type_button[DT_LIB_HISTOGRAM_SCOPE_VECTORSCOPE], NULL, d); } break; case DT_LIB_HISTOGRAM_SCOPE_VECTORSCOPE: @@ -2136,7 +2411,8 @@ d->histogram_scale = DT_LIB_HISTOGRAM_SCALE_LOGARITHMIC; dt_conf_set_string("plugins/darkroom/histogram/histogram", dt_lib_histogram_scale_names[d->histogram_scale]); - _scope_histogram_mode_clicked(d->scope_type_button[DT_LIB_HISTOGRAM_SCOPE_HISTOGRAM], NULL, d); + _scope_histogram_mode_clicked + (d->scope_type_button[DT_LIB_HISTOGRAM_SCOPE_HISTOGRAM], NULL, d); } break; case DT_LIB_HISTOGRAM_SCOPE_N: @@ -2155,39 +2431,51 @@ { dt_lib_module_t *self = darktable.lib->proxy.histogram.module; dt_lib_histogram_t *d = (dt_lib_histogram_t *)self->data; - d->color_harmony = (d->color_harmony_old + 1) % DT_LIB_HISTOGRAM_HARMONY_N; - _color_harmony_button_on_off(d->color_harmony, d->color_harmony_old, d); - d->color_harmony_old = d->color_harmony; - _color_harmony_changed(d); + d->harmony_guide.type = (d->color_harmony_old + 1) % DT_COLOR_HARMONY_N; + _color_harmony_button_on(d); + d->color_harmony_old = d->harmony_guide.type; + _color_harmony_changed_record(d); } // this is only called in darkroom view -static void _lib_histogram_preview_updated_callback(gpointer instance, dt_lib_module_t *self) +static void _lib_histogram_preview_updated_callback(gpointer instance, + dt_lib_module_t *self) { // preview pipe has already given process() the high quality // pre-gamma image. Now that preview pipe is complete, draw it - // FIXME: it would be nice if process() just queued a redraw if not in live view, but then our draw code would have to have some other way to assure that the histogram image is current besides checking the pixelpipe to see if it has processed the current image + // + // FIXME: it would be nice if process() just queued a redraw if not + // in live view, but then our draw code would have to have some + // other way to assure that the histogram image is current besides + // checking the pixelpipe to see if it has processed the current + // image dt_lib_histogram_t *d = (dt_lib_histogram_t *)self->data; gtk_widget_queue_draw(d->scope_draw); } -void view_enter(struct dt_lib_module_t *self, struct dt_view_t *old_view, struct dt_view_t *new_view) +void view_enter(struct dt_lib_module_t *self, + struct dt_view_t *old_view, + struct dt_view_t *new_view) { dt_lib_histogram_t *d = (dt_lib_histogram_t *)self->data; if(new_view->view(new_view) == DT_VIEW_DARKROOM) { - DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_DEVELOP_PREVIEW_PIPE_FINISHED, - G_CALLBACK(_lib_histogram_preview_updated_callback), self); + DT_DEBUG_CONTROL_SIGNAL_CONNECT + (darktable.signals, DT_SIGNAL_DEVELOP_PREVIEW_PIPE_FINISHED, + G_CALLBACK(_lib_histogram_preview_updated_callback), self); } // button box should be hidden when enter view, unless mouse is over // histogram, in which case gtk kindly generates enter events gtk_widget_hide(d->button_box_main); gtk_widget_hide(d->button_box_opt); + _update_color_harmony_gui(self); // FIXME: set histogram data to blank if enter tether with no active image } -void view_leave(struct dt_lib_module_t *self, struct dt_view_t *old_view, struct dt_view_t *new_view) +void view_leave(struct dt_lib_module_t *self, + struct dt_view_t *old_view, + struct dt_view_t *new_view) { DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(_lib_histogram_preview_updated_callback), @@ -2197,7 +2485,8 @@ void gui_init(dt_lib_module_t *self) { /* initialize ui widgets */ - dt_lib_histogram_t *d = (dt_lib_histogram_t *)dt_calloc_align(64, sizeof(dt_lib_histogram_t)); + dt_lib_histogram_t *d = + (dt_lib_histogram_t *)dt_calloc_align(64, sizeof(dt_lib_histogram_t)); self->data = (void *)d; dt_pthread_mutex_init(&d->lock, NULL); @@ -2250,7 +2539,9 @@ // (regardless of ppd). Try to get enough detail for a (default) // 350px panel, possibly 2x that on hidpi. The actual buffer // width will vary with integral binning of image. - // FIXME: increasing waveform_max_bins increases processing speed less than increasing waveform_tones -- tune these better? + // + // FIXME: increasing waveform_max_bins increases processing speed + // less than increasing waveform_tones -- tune these better? d->waveform_max_bins = darktable.mipmap_cache->max_width[DT_MIPMAP_F]/2; // initially no waveform to draw d->waveform_bins = 0; @@ -2263,20 +2554,33 @@ // of tonal gradation. 256 would match the # of bins in a regular // histogram. d->waveform_tones = 160; - // FIXME: combine waveform_8bit and vectorscope_graph, as only ever use one or the other - // FIXME: keep alignment instead via single alloc via dt_alloc_perthread()? - const size_t bytes_hori = d->waveform_tones * cairo_format_stride_for_width(CAIRO_FORMAT_A8, d->waveform_max_bins); - const size_t bytes_vert = d->waveform_max_bins * cairo_format_stride_for_width(CAIRO_FORMAT_A8, d->waveform_tones); + // FIXME: combine waveform_8bit and vectorscope_graph, as only ever + // use one or the other + // + // FIXME: keep alignment instead via single alloc via + // dt_alloc_perthread()? + const size_t bytes_hori = + d->waveform_tones + * cairo_format_stride_for_width(CAIRO_FORMAT_A8, d->waveform_max_bins); + const size_t bytes_vert = + d->waveform_max_bins + * cairo_format_stride_for_width(CAIRO_FORMAT_A8, d->waveform_tones); for(int ch=0; ch<3; ch++) d->waveform_img[ch] = dt_alloc_align(64, sizeof(uint8_t) * MAX(bytes_hori, bytes_vert)); - // FIXME: what is the appropriate resolution for this: balance memory use, processing speed, helpful resolution - // FIXME: make this and waveform params #DEFINEd or const above, rather than set here? + // FIXME: what is the appropriate resolution for this: balance + // memory use, processing speed, helpful resolution + // + // FIXME: make this and waveform params #DEFINEd or const above, + // rather than set here? d->vectorscope_diameter_px = 384; - d->vectorscope_graph = dt_alloc_align(64, sizeof(uint8_t) * d->vectorscope_diameter_px * - cairo_format_stride_for_width(CAIRO_FORMAT_A8, d->vectorscope_diameter_px)); - d->vectorscope_bkgd = dt_alloc_align(64, sizeof(uint8_t) * 4U * d->vectorscope_diameter_px * - cairo_format_stride_for_width(CAIRO_FORMAT_RGB24, d->vectorscope_diameter_px)); + d->vectorscope_graph = dt_alloc_align + (64, sizeof(uint8_t) * d->vectorscope_diameter_px * + cairo_format_stride_for_width(CAIRO_FORMAT_A8, d->vectorscope_diameter_px)); + d->vectorscope_bkgd = + dt_alloc_align(64, sizeof(uint8_t) * 4U * d->vectorscope_diameter_px * + cairo_format_stride_for_width + (CAIRO_FORMAT_RGB24, d->vectorscope_diameter_px)); d->hue_ring_prof = NULL; d->hue_ring_scale = DT_LIB_HISTOGRAM_SCALE_N; d->hue_ring_colorspace = DT_LIB_HISTOGRAM_VECTORSCOPE_N; @@ -2287,34 +2591,45 @@ d->vectorscope_samples = NULL; d->selected_sample = -1; - d->rgb2ryb_ypp = interpolate_set(sizeof(x_vtx)/sizeof(float), (float *)x_vtx, (float *)ryb_y_vtx, CUBIC_SPLINE); - d->ryb2rgb_ypp = interpolate_set(sizeof(x_vtx)/sizeof(float), (float *)x_vtx, (float *)rgb_y_vtx, CUBIC_SPLINE); + d->rgb2ryb_ypp = interpolate_set(sizeof(x_vtx)/sizeof(float), + (float *)x_vtx, (float *)ryb_y_vtx, CUBIC_SPLINE); + d->ryb2rgb_ypp = interpolate_set(sizeof(x_vtx)/sizeof(float), + (float *)x_vtx, (float *)rgb_y_vtx, CUBIC_SPLINE); + // set the default harmony (last used), the actual harmony for the image + // will be restored later. str = dt_conf_get_string_const("plugins/darkroom/histogram/vectorscope/harmony_type"); - for(int i = 0; i < DT_LIB_HISTOGRAM_HARMONY_N; i++) + for(dt_color_harmony_type_t i = DT_COLOR_HARMONY_NONE; i < DT_COLOR_HARMONY_N; i++) if(g_strcmp0(str, dt_color_harmonies[i].name) == 0) - d->color_harmony_old = d->color_harmony = i; - d->harmony_rotation = dt_conf_get_int("plugins/darkroom/histogram/vectorscope/harmony_rotation"); - d->harmony_width = dt_conf_get_int("plugins/darkroom/histogram/vectorscope/harmony_width"); + d->color_harmony_old = d->harmony_guide.type = i; + d->harmony_guide.rotation = + dt_conf_get_int("plugins/darkroom/histogram/vectorscope/harmony_rotation"); + d->harmony_guide.width = + dt_conf_get_int("plugins/darkroom/histogram/vectorscope/harmony_width"); // proxy functions and data so that pixelpipe or tether can // provide data for a histogram // FIXME: do need to pass self, or can wrap a callback as a lambda darktable.lib->proxy.histogram.module = self; darktable.lib->proxy.histogram.process = dt_lib_histogram_process; - darktable.lib->proxy.histogram.is_linear = d->histogram_scale == DT_LIB_HISTOGRAM_SCALE_LINEAR; + darktable.lib->proxy.histogram.is_linear = + d->histogram_scale == DT_LIB_HISTOGRAM_SCALE_LINEAR; // create widgets GtkWidget *overlay = gtk_overlay_new(); - dt_action_t *dark = dt_action_section(&darktable.view_manager->proxy.darkroom.view->actions, N_("histogram")); + dt_action_t *dark = + dt_action_section(&darktable.view_manager->proxy.darkroom.view->actions, + N_("histogram")); dt_action_t *ac = NULL; - dt_action_register(dark, N_("cycle histogram modes"), _lib_histogram_cycle_mode_callback, 0, 0); + dt_action_register(dark, N_("cycle histogram modes"), + _lib_histogram_cycle_mode_callback, 0, 0); // shows the scope, scale, and has draggable areas d->scope_draw = dt_ui_resize_wrap(NULL, 0, "plugins/darkroom/histogram/aspect_percent"); ac = dt_action_define(dark, NULL, N_("hide histogram"), d->scope_draw, NULL); - dt_action_register(ac, NULL, _lib_histogram_collapse_callback, GDK_KEY_H, GDK_CONTROL_MASK | GDK_SHIFT_MASK); + dt_action_register(ac, NULL, _lib_histogram_collapse_callback, + GDK_KEY_H, GDK_CONTROL_MASK | GDK_SHIFT_MASK); gtk_widget_set_events(d->scope_draw, GDK_ENTER_NOTIFY_MASK); // a row of control buttons, split in two button boxes, on left and right side @@ -2351,25 +2666,35 @@ gtk_widget_set_halign(d->button_box_rgb, GTK_ALIGN_END); gtk_box_pack_end(GTK_BOX(box_right), d->button_box_rgb, FALSE, FALSE, 0); - // FIXME: the button transitions when they appear on mouseover (mouse enters scope widget) or change (mouse click) cause redraws of the entire scope -- is there a way to avoid this? + // FIXME: the button transitions when they appear on mouseover + // (mouse enters scope widget) or change (mouse click) cause redraws + // of the entire scope -- is there a way to avoid this? for(int i=0; i<DT_LIB_HISTOGRAM_SCOPE_N; i++) { - d->scope_type_button[i] = dtgtk_togglebutton_new(dt_lib_histogram_scope_type_icons[i], CPF_NONE, NULL); - gtk_widget_set_tooltip_text(d->scope_type_button[i], _(dt_lib_histogram_scope_type_names[i])); + d->scope_type_button[i] = + dtgtk_togglebutton_new(dt_lib_histogram_scope_type_icons[i], CPF_NONE, NULL); + gtk_widget_set_tooltip_text(d->scope_type_button[i], + _(dt_lib_histogram_scope_type_names[i])); dt_action_define(dark, N_("modes"), dt_lib_histogram_scope_type_names[i], d->scope_type_button[i], &dt_action_def_toggle); gtk_box_pack_start(GTK_BOX(box_left), d->scope_type_button[i], FALSE, FALSE, 0); - g_signal_connect(G_OBJECT(d->scope_type_button[i]), "button-press-event", G_CALLBACK(_scope_histogram_mode_clicked), d); + g_signal_connect(G_OBJECT(d->scope_type_button[i]), "button-press-event", + G_CALLBACK(_scope_histogram_mode_clicked), d); } - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->scope_type_button[d->scope_type]), TRUE); + gtk_toggle_button_set_active + (GTK_TOGGLE_BUTTON(d->scope_type_button[d->scope_type]), TRUE); dt_action_t *teth = &darktable.view_manager->proxy.tethering.view->actions; if(teth) { - dt_action_register(teth, N_("cycle histogram modes"), _lib_histogram_cycle_mode_callback, 0, 0); - dt_action_register(teth, N_("hide histogram"), _lib_histogram_collapse_callback, GDK_KEY_H, GDK_CONTROL_MASK | GDK_SHIFT_MASK); - dt_action_register(teth, N_("switch histogram view"), _lib_histogram_change_type_callback, 0, 0); + dt_action_register(teth, N_("cycle histogram modes"), + _lib_histogram_cycle_mode_callback, 0, 0); + dt_action_register(teth, N_("hide histogram"), + _lib_histogram_collapse_callback, + GDK_KEY_H, GDK_CONTROL_MASK | GDK_SHIFT_MASK); + dt_action_register(teth, N_("switch histogram view"), + _lib_histogram_change_type_callback, 0, 0); } // red/green/blue channel on/off @@ -2378,7 +2703,8 @@ gtk_widget_set_name(d->blue_channel_button, "blue-channel-button"); gtk_widget_set_tooltip_text(d->blue_channel_button, _("toggle blue channel")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->blue_channel_button), d->blue); - dt_action_define(dark, N_("toggle colors"), N_("blue"), d->blue_channel_button, &dt_action_def_toggle); + dt_action_define(dark, N_("toggle colors"), N_("blue"), + d->blue_channel_button, &dt_action_def_toggle); gtk_box_pack_end(GTK_BOX(d->button_box_rgb), d->blue_channel_button, FALSE, FALSE, 0); d->green_channel_button = dtgtk_togglebutton_new(dtgtk_cairo_paint_color, CPF_NONE, NULL); @@ -2386,7 +2712,8 @@ gtk_widget_set_name(d->green_channel_button, "green-channel-button"); gtk_widget_set_tooltip_text(d->green_channel_button, _("toggle green channel")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->green_channel_button), d->green); - dt_action_define(dark, N_("toggle colors"), N_("green"), d->green_channel_button, &dt_action_def_toggle); + dt_action_define(dark, N_("toggle colors"), N_("green"), + d->green_channel_button, &dt_action_def_toggle); gtk_box_pack_end(GTK_BOX(d->button_box_rgb), d->green_channel_button, FALSE, FALSE, 0); d->red_channel_button = dtgtk_togglebutton_new(dtgtk_cairo_paint_color, CPF_NONE, NULL); @@ -2394,24 +2721,31 @@ gtk_widget_set_name(d->red_channel_button, "red-channel-button"); gtk_widget_set_tooltip_text(d->red_channel_button, _("toggle red channel")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->red_channel_button), d->red); - dt_action_define(dark, N_("toggle colors"), N_("red"), d->red_channel_button, &dt_action_def_toggle); + dt_action_define(dark, N_("toggle colors"), N_("red"), + d->red_channel_button, &dt_action_def_toggle); gtk_box_pack_end(GTK_BOX(d->button_box_rgb), d->red_channel_button, FALSE, FALSE, 0); d->scope_view_button = dtgtk_button_new(dtgtk_cairo_paint_empty, CPF_NONE, NULL); - ac = dt_action_define(dark, NULL, N_("switch histogram view"), d->scope_view_button, &dt_action_def_button); + ac = dt_action_define(dark, NULL, N_("switch histogram view"), + d->scope_view_button, &dt_action_def_button); gtk_box_pack_end(GTK_BOX(box_right), d->scope_view_button, FALSE, FALSE, 0); d->colorspace_button = dtgtk_button_new(dtgtk_cairo_paint_empty, CPF_NONE, NULL); - dt_action_define(dark, NULL, N_("cycle vectorscope types"), d->colorspace_button, &dt_action_def_button); + dt_action_define(dark, NULL, N_("cycle vectorscope types"), + d->colorspace_button, &dt_action_def_button); gtk_box_pack_end(GTK_BOX(box_right), d->colorspace_button, FALSE, FALSE, 0); // a series of buttons for color harmony guide lines - for(int i = 1; i < DT_LIB_HISTOGRAM_HARMONY_N; i++) + for(dt_color_harmony_type_t i = DT_COLOR_HARMONY_MONOCHROMATIC; + i < DT_COLOR_HARMONY_N; + i++) { GtkWidget *rb = dtgtk_togglebutton_new(dtgtk_cairo_paint_color_harmony, CPF_NONE, &(dt_color_harmonies[i])); - dt_action_define(dark, N_("color harmonies"), dt_color_harmonies[i].name, rb, &dt_action_def_toggle); - g_signal_connect(G_OBJECT(rb), "button-press-event", G_CALLBACK(_color_harmony_clicked), d); + dt_action_define(dark, N_("color harmonies"), + dt_color_harmonies[i].name, rb, &dt_action_def_toggle); + g_signal_connect(G_OBJECT(rb), "button-press-event", + G_CALLBACK(_color_harmony_clicked), d); g_signal_connect(G_OBJECT(rb), "enter-notify-event", G_CALLBACK(_color_harmony_enter_notify_callback), d); g_signal_connect(G_OBJECT(rb), "leave-notify-event", @@ -2420,9 +2754,10 @@ gtk_box_pack_start(GTK_BOX(d->color_harmony_box), rb, FALSE, FALSE, 0); d->color_harmony_button[i-1] = rb; } - _color_harmony_button_on_off(d->color_harmony, DT_LIB_HISTOGRAM_HARMONY_NONE, d); + _color_harmony_button_on(d); - dt_action_register(dark, N_("cycle color harmonies"), _lib_histogram_cycle_harmony_callback, 0, 0); + dt_action_register(dark, N_("cycle color harmonies"), + _lib_histogram_cycle_harmony_callback, 0, 0); // will change visibility of buttons, hence must run after all buttons are declared _scope_type_update(d); @@ -2461,12 +2796,17 @@ gtk_widget_set_name(self->widget, "main-histogram"); /* connect callbacks */ - g_signal_connect(G_OBJECT(d->scope_view_button), "clicked", G_CALLBACK(_scope_view_clicked), d); - g_signal_connect(G_OBJECT(d->colorspace_button), "clicked", G_CALLBACK(_colorspace_clicked), d); - - g_signal_connect(G_OBJECT(d->red_channel_button), "toggled", G_CALLBACK(_red_channel_toggle), d); - g_signal_connect(G_OBJECT(d->green_channel_button), "toggled", G_CALLBACK(_green_channel_toggle), d); - g_signal_connect(G_OBJECT(d->blue_channel_button), "toggled", G_CALLBACK(_blue_channel_toggle), d); + g_signal_connect(G_OBJECT(d->scope_view_button), "clicked", + G_CALLBACK(_scope_view_clicked), d); + g_signal_connect(G_OBJECT(d->colorspace_button), "clicked", + G_CALLBACK(_colorspace_clicked), d); + + g_signal_connect(G_OBJECT(d->red_channel_button), "toggled", + G_CALLBACK(_red_channel_toggle), d); + g_signal_connect(G_OBJECT(d->green_channel_button), "toggled", + G_CALLBACK(_green_channel_toggle), d); + g_signal_connect(G_OBJECT(d->blue_channel_button), "toggled", + G_CALLBACK(_blue_channel_toggle), d); gtk_widget_add_events(d->scope_draw, GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK); @@ -2481,7 +2821,10 @@ g_signal_connect(G_OBJECT(d->scope_draw), "motion-notify-event", G_CALLBACK(_drawable_motion_notify_callback), d); - gtk_widget_add_events(eventbox, GDK_LEAVE_NOTIFY_MASK | GDK_ENTER_NOTIFY_MASK | GDK_POINTER_MOTION_MASK | darktable.gui->scroll_mask); + gtk_widget_add_events + (eventbox, + GDK_LEAVE_NOTIFY_MASK | GDK_ENTER_NOTIFY_MASK + | GDK_POINTER_MOTION_MASK | darktable.gui->scroll_mask); g_signal_connect(G_OBJECT(eventbox), "scroll-event", G_CALLBACK(_eventbox_scroll_callback), d); g_signal_connect(G_OBJECT(eventbox), "enter-notify-event", @@ -2492,6 +2835,9 @@ G_CALLBACK(_eventbox_motion_notify_callback), d); gtk_widget_show_all(self->widget); + + DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_DEVELOP_IMAGE_CHANGED, + G_CALLBACK(_signal_image_changed), self); } void gui_cleanup(dt_lib_module_t *self) @@ -2512,6 +2858,9 @@ g_free(d->ryb2rgb_ypp); dt_free_align(self->data); self->data = NULL; + + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, + G_CALLBACK(_signal_image_changed), self); } // clang-format off diff -Nru darktable-4.4.2/src/libs/history.c darktable-4.6.1/src/libs/history.c --- darktable-4.4.2/src/libs/history.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/history.c 2024-02-16 17:31:09.000000000 +0000 @@ -329,12 +329,12 @@ return hist_ret; } -static int _check_deleted_instances(dt_develop_t *dev, +static gboolean _check_deleted_instances(dt_develop_t *dev, GList **_iop_list, GList *history_list) { GList *iop_list = *_iop_list; - int deleted_module_found = 0; + gboolean deleted_module_found = FALSE; // we will check on dev->iop if there's a module that is not in history GList *modules = iop_list; @@ -342,7 +342,7 @@ { dt_iop_module_t *mod = (dt_iop_module_t *)modules->data; - int delete_module = 0; + gboolean delete_module = FALSE; // base modules are a special case // most base modules won't be in history and must not be deleted @@ -360,8 +360,8 @@ if(strcmp(mod_next->op, mod->op) == 0 && mod_next->multi_priority == 0) { // is the same one, check which one must be deleted - const int mod_in_history = _search_history_by_module(history_list, mod) != NULL; - const int mod_next_in_history = + const gboolean mod_in_history = _search_history_by_module(history_list, mod) != NULL; + const gboolean mod_next_in_history = _search_history_by_module(history_list, mod_next) != NULL; // current is in history and next is not, delete next @@ -369,12 +369,12 @@ { mod = mod_next; modules = modules_next; - delete_module = 1; + delete_module = TRUE; } // current is not in history and next is, delete current else if(!mod_in_history && mod_next_in_history) { - delete_module = 1; + delete_module = TRUE; } else { @@ -405,7 +405,7 @@ // if module is not in history we delete it if(delete_module) { - deleted_module_found = 1; + deleted_module_found = TRUE; if(darktable.develop->gui_module == mod) dt_iop_request_focus(NULL); @@ -1166,10 +1166,18 @@ gtk_widget_show_all(d->history_box); dt_gui_widget_reallocate_now(d->history_box); + if (num == darktable.develop->history_end) + { + // history has changed, scroll to the top + GtkWidget *sw = gtk_widget_get_ancestor(d->history_box, GTK_TYPE_SCROLLED_WINDOW); + GtkAdjustment* adj = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(sw)); + gtk_adjustment_set_value(adj, 0); + } + dt_pthread_mutex_unlock(&darktable.develop->history_mutex); } -static void _lib_history_truncate(gboolean compress) +static void _lib_history_truncate(const gboolean compress) { const dt_imgid_t imgid = darktable.develop->image_storage.id; if(!dt_is_valid_imgid(imgid)) return; @@ -1216,7 +1224,6 @@ sqlite3_step(stmt); sqlite3_finalize(stmt); - darktable.develop->proxy.chroma_adaptation = NULL; dt_dev_reload_history_items(darktable.develop); dt_dev_undo_end_record(darktable.develop); @@ -1295,6 +1302,17 @@ dt_dev_reorder_gui_module_list(darktable.develop); dt_image_update_final_size(imgid); + /* FIXME + The pixelpipe cache is reflecting parameters and it's related output correctness. + Yet - there are modules that require fresh data for internal visualizing. + As there is currently no way to know about that we do a brute-force way and simply + invalidate cachelines. + (we might want an additional iop module flag and keep track of that in pixelpipe cache code ???) + For raws we have at least rawprepare and demosaic + */ + const int order = dt_image_is_raw(&darktable.develop->image_storage) ? 2 : 0; + dt_dev_pixelpipe_cache_invalidate_later(darktable.develop->preview_pipe, order); + /* signal history changed */ dt_dev_undo_end_record(darktable.develop); diff -Nru darktable-4.4.2/src/libs/image.c darktable-4.6.1/src/libs/image.c --- darktable-4.4.2/src/libs/image.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/image.c 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2010-2022 darktable developers. + Copyright (C) 2010-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -15,6 +15,7 @@ You should have received a copy of the GNU General Public License along with darktable. If not, see <http://www.gnu.org/licenses/>. */ + #include "bauhaus/bauhaus.h" #include "common/collection.h" #include "common/darktable.h" @@ -47,12 +48,13 @@ typedef struct dt_lib_image_t { - GtkWidget *rotate_cw_button, *rotate_ccw_button, *remove_button, *delete_button, *create_hdr_button, - *duplicate_button, *reset_button, *move_button, *copy_button, *group_button, *ungroup_button, - *cache_button, *uncache_button, *refresh_button, - *set_monochrome_button, *set_color_button, - *copy_metadata_button, *paste_metadata_button, *clear_metadata_button, - *ratings_flag, *colors_flag, *metadata_flag, *geotags_flag, *tags_flag; + GtkWidget *rotate_cw_button, *rotate_ccw_button, *remove_button; + GtkWidget *delete_button, *create_hdr_button; + GtkWidget *duplicate_button, *reset_button, *move_button, *copy_button; + GtkWidget *group_button, *ungroup_button, *cache_button, *uncache_button; + GtkWidget *refresh_button, *set_monochrome_button, *set_color_button; + GtkWidget *copy_metadata_button, *paste_metadata_button, *clear_metadata_button; + GtkWidget *ratings_flag, *colors_flag, *metadata_flag, *geotags_flag, *tags_flag; GtkWidget *page1; // saved here for lua extensions dt_imgid_t imageid; } dt_lib_image_t; @@ -69,7 +71,7 @@ const char *name(dt_lib_module_t *self) { - return _("selected image[s]"); + return _("actions on selection"); } dt_view_type_flags_t views(dt_lib_module_t *self) @@ -82,14 +84,16 @@ return DT_UI_CONTAINER_PANEL_RIGHT_CENTER; } -/** merges all the selected images into a single group. - * if there is an expanded group, then they will be joined there, otherwise a new one will be created. */ +/** merges all the selected images into a single group. if there is + * an expanded group, then they will be joined there, otherwise a new + * one will be created. */ static void _group_helper_function(void) { dt_imgid_t new_group_id = darktable.gui->expanded_group_id; GList *imgs = NULL; sqlite3_stmt *stmt; - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), "SELECT imgid FROM main.selected_images", -1, + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + "SELECT imgid FROM main.selected_images", -1, &stmt, NULL); while(sqlite3_step(stmt) == SQLITE_ROW) { @@ -105,7 +109,9 @@ darktable.gui->expanded_group_id = new_group_id; else darktable.gui->expanded_group_id = NO_IMGID; - dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_GROUPING, imgs); + dt_collection_update_query(darktable.collection, + DT_COLLECTION_CHANGE_RELOAD, + DT_COLLECTION_PROP_GROUPING, imgs); dt_control_queue_redraw_center(); } @@ -114,7 +120,8 @@ { GList *imgs = NULL; sqlite3_stmt *stmt; - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), "SELECT imgid FROM main.selected_images", -1, + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + "SELECT imgid FROM main.selected_images", -1, &stmt, NULL); while(sqlite3_step(stmt) == SQLITE_ROW) { @@ -122,7 +129,8 @@ const int new_group_id = dt_grouping_remove_from_group(id); if(dt_is_valid_imgid(new_group_id)) { - // new_!dt_is_valid_imgid(group_id) if image to be ungrouped was a single image and no change to any group was made + // new_!dt_is_valid_imgid(group_id) if image to be ungrouped was + // a single image and no change to any group was made imgs = g_list_prepend(imgs, GINT_TO_POINTER(id)); } } @@ -130,7 +138,8 @@ if(imgs != NULL) { darktable.gui->expanded_group_id = NO_IMGID; - dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_GROUPING, + dt_collection_update_query(darktable.collection, + DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_GROUPING, g_list_reverse(imgs)); dt_control_queue_redraw_center(); } @@ -184,8 +193,9 @@ const gboolean act_on_one = (nbimgs == 1); const gboolean act_on_mult = (nbimgs > 1); const uint32_t selected_cnt = dt_collection_get_selected_count(); - const gboolean can_paste - = dt_is_valid_imgid(d->imageid) && (act_on_mult || (act_on_one && (d->imageid != dt_act_on_get_main_image()))); + const gboolean can_paste = + dt_is_valid_imgid(d->imageid) + && (act_on_mult || (act_on_one && (d->imageid != dt_act_on_get_main_image()))); gtk_widget_set_sensitive(GTK_WIDGET(d->remove_button), act_on_any); gtk_widget_set_sensitive(GTK_WIDGET(d->delete_button), act_on_any); @@ -237,7 +247,9 @@ gtk_widget_set_sensitive(GTK_WIDGET(d->set_color_button), is_bw); sqlite3_stmt *stmt; DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), - "SELECT COUNT(id) FROM main.images WHERE group_id = ?1 AND id != ?2", -1, &stmt, NULL); + "SELECT COUNT(id)" + " FROM main.images" + " WHERE group_id = ?1 AND id != ?2", -1, &stmt, NULL); DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, img_group_id); DT_DEBUG_SQLITE3_BIND_INT(stmt, 2, imgid); if(stmt != NULL && sqlite3_step(stmt) == SQLITE_ROW) @@ -258,24 +270,30 @@ } } -static void _image_selection_changed_callback(gpointer instance, dt_lib_module_t *self) +static void _image_selection_changed_callback(gpointer instance, + dt_lib_module_t *self) { dt_lib_gui_queue_update(self); } -static void _collection_updated_callback(gpointer instance, dt_collection_change_t query_change, - dt_collection_properties_t changed_property, gpointer imgs, int next, +static void _collection_updated_callback(gpointer instance, + dt_collection_change_t query_change, + dt_collection_properties_t changed_property, + gpointer imgs, + const int next, dt_lib_module_t *self) { dt_lib_gui_queue_update(self); } -static void _mouse_over_image_callback(gpointer instance, dt_lib_module_t *self) +static void _mouse_over_image_callback(gpointer instance, + dt_lib_module_t *self) { dt_lib_gui_queue_update(self); } -static void _image_preference_changed(gpointer instance, gpointer user_data) +static void _image_preference_changed(gpointer instance, + gpointer user_data) { dt_lib_module_t *self = (dt_lib_module_t*)user_data; dt_lib_image_t *d = (dt_lib_image_t *)self->data; @@ -313,8 +331,8 @@ GList *imgs = dt_act_on_get_images(FALSE, TRUE, FALSE); if(imgs) { - // for all the above actions, we don't use the grpu_on tag, as grouped images have already been added to image - // list + // for all the above actions, we don't use the grpu_on tag, as + // grouped images have already been added to image list const dt_undo_type_t undo_type = (rating_flag ? DT_UNDO_RATINGS : 0) | (colors_flag ? DT_UNDO_COLORLABELS : 0) @@ -366,7 +384,8 @@ { dt_undo_end_group(darktable.undo); dt_image_synch_xmps(imgs); - dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_METADATA, + dt_collection_update_query(darktable.collection, + DT_COLLECTION_CHANGE_RELOAD, DT_COLLECTION_PROP_METADATA, imgs); dt_control_queue_redraw_center(); } @@ -377,7 +396,8 @@ } } -static void copy_metadata_callback(GtkWidget *widget, dt_lib_module_t *self) +static void copy_metadata_callback(GtkWidget *widget, + dt_lib_module_t *self) { dt_lib_image_t *d = (dt_lib_image_t *)self->data; @@ -386,64 +406,74 @@ dt_lib_gui_queue_update(self); } -static void paste_metadata_callback(GtkWidget *widget, dt_lib_module_t *self) +static void paste_metadata_callback(GtkWidget *widget, + dt_lib_module_t *self) { const int mode = dt_conf_get_int("plugins/lighttable/copy_metadata/pastemode"); _execute_metadata(self, mode == 0 ? DT_MA_MERGE : DT_MA_REPLACE); } -static void clear_metadata_callback(GtkWidget *widget, dt_lib_module_t *self) +static void clear_metadata_callback(GtkWidget *widget, + dt_lib_module_t *self) { _execute_metadata(self, DT_MA_CLEAR); } -static void set_monochrome_callback(GtkWidget *widget, dt_lib_module_t *self) +static void set_monochrome_callback(GtkWidget *widget, + dt_lib_module_t *self) { dt_control_monochrome_images(2); } -static void set_color_callback(GtkWidget *widget, dt_lib_module_t *self) +static void set_color_callback(GtkWidget *widget, + dt_lib_module_t *self) { dt_control_monochrome_images(0); } -static void ratings_flag_callback(GtkWidget *widget, dt_lib_module_t *self) +static void ratings_flag_callback(GtkWidget *widget, + dt_lib_module_t *self) { dt_lib_image_t *d = (dt_lib_image_t *)self->data; const gboolean flag = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d->ratings_flag)); dt_conf_set_bool("plugins/lighttable/copy_metadata/rating", flag); } -static void colors_flag_callback(GtkWidget *widget, dt_lib_module_t *self) +static void colors_flag_callback(GtkWidget *widget, + dt_lib_module_t *self) { dt_lib_image_t *d = (dt_lib_image_t *)self->data; const gboolean flag = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d->colors_flag)); dt_conf_set_bool("plugins/lighttable/copy_metadata/colors", flag); } -static void metadata_flag_callback(GtkWidget *widget, dt_lib_module_t *self) +static void metadata_flag_callback(GtkWidget *widget, + dt_lib_module_t *self) { dt_lib_image_t *d = (dt_lib_image_t *)self->data; const gboolean flag = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d->metadata_flag)); dt_conf_set_bool("plugins/lighttable/copy_metadata/metadata", flag); } -static void geotags_flag_callback(GtkWidget *widget, dt_lib_module_t *self) +static void geotags_flag_callback(GtkWidget *widget, + dt_lib_module_t *self) { dt_lib_image_t *d = (dt_lib_image_t *)self->data; const gboolean flag = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d->geotags_flag)); dt_conf_set_bool("plugins/lighttable/copy_metadata/geotags", flag); } -static void tags_flag_callback(GtkWidget *widget, dt_lib_module_t *self) +static void tags_flag_callback(GtkWidget *widget, + dt_lib_module_t *self) { dt_lib_image_t *d = (dt_lib_image_t *)self->data; const gboolean flag = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d->tags_flag)); dt_conf_set_bool("plugins/lighttable/copy_metadata/tags", flag); } -static void pastemode_combobox_changed(GtkWidget *widget, gpointer user_data) +static void pastemode_combobox_changed(GtkWidget *widget, + gpointer user_data) { const int mode = dt_bauhaus_combobox_get(widget); dt_conf_set_int("plugins/lighttable/copy_metadata/pastemode", mode); @@ -457,7 +487,8 @@ static struct dt_action_def_t notebook_def = { }; self->widget = GTK_WIDGET(dt_ui_notebook_new(¬ebook_def)); - dt_action_define(DT_ACTION(self), NULL, N_("page"), GTK_WIDGET(self->widget), ¬ebook_def); + dt_action_define(DT_ACTION(self), NULL, N_("page"), + GTK_WIDGET(self->widget), ¬ebook_def); dt_gui_add_help_link(self->widget, "image"); GtkWidget *page1 = dt_ui_notebook_page(GTK_NOTEBOOK(self->widget), N_("images"), NULL); @@ -471,64 +502,87 @@ gtk_grid_set_column_homogeneous(grid, TRUE); int line = 0; - d->remove_button = dt_action_button_new(self, N_("remove"), button_clicked, GINT_TO_POINTER(0), - _("remove images from the image library, without deleting"), - GDK_KEY_Delete, 0); + d->remove_button = dt_action_button_new + (self, N_("remove"), button_clicked, + GINT_TO_POINTER(0), + _("remove images from the image library, without deleting"), + GDK_KEY_Delete, 0); gtk_grid_attach(grid, d->remove_button, 0, line, 2, 1); // delete button label and tooltip will be updated based on trash pref - d->delete_button = dt_action_button_new(self, N_("delete"), button_clicked, GINT_TO_POINTER(1), NULL, 0, 0); + d->delete_button = dt_action_button_new(self, N_("delete"), button_clicked, + GINT_TO_POINTER(1), NULL, 0, 0); gtk_grid_attach(grid, d->delete_button, 2, line++, 2, 1); - d->move_button = dt_action_button_new(self, N_("move..."), button_clicked, GINT_TO_POINTER(8), + d->move_button = dt_action_button_new(self, N_("move..."), button_clicked, + GINT_TO_POINTER(8), _("move to other folder"), 0, 0); gtk_grid_attach(grid, d->move_button, 0, line, 2, 1); - d->copy_button = dt_action_button_new(self, N_("copy..."), button_clicked, GINT_TO_POINTER(9), + d->copy_button = dt_action_button_new(self, N_("copy..."), button_clicked, + GINT_TO_POINTER(9), _("copy to other folder"), 0, 0); gtk_grid_attach(grid, d->copy_button, 2, line++, 2, 1); - d->create_hdr_button = dt_action_button_new(self, N_("create HDR"), button_clicked, GINT_TO_POINTER(7), - _("create a high dynamic range image from selected shots"), 0, 0); + d->create_hdr_button = dt_action_button_new + (self, N_("create HDR"), button_clicked, + GINT_TO_POINTER(7), + _("create a high dynamic range image from selected shots"), 0, 0); gtk_grid_attach(grid, d->create_hdr_button, 0, line, 2, 1); - d->duplicate_button = dt_action_button_new(self, N_("duplicate"), button_clicked, GINT_TO_POINTER(3), - _("add a duplicate to the image library, including its history stack"), - GDK_KEY_d, GDK_CONTROL_MASK); + d->duplicate_button = dt_action_button_new + (self, N_("duplicate"), button_clicked, GINT_TO_POINTER(3), + _("add a duplicate to the image library, including its history stack"), + GDK_KEY_d, GDK_CONTROL_MASK); gtk_grid_attach(grid, d->duplicate_button, 2, line++, 2, 1); d->rotate_ccw_button = dtgtk_button_new(dtgtk_cairo_paint_refresh, CPF_NONE, NULL);; gtk_widget_set_name(d->rotate_ccw_button, "non-flat"); - gtk_widget_set_tooltip_text(d->rotate_ccw_button, _("rotate selected images 90 degrees CCW")); + gtk_widget_set_tooltip_text(d->rotate_ccw_button, + _("rotate selected images 90 degrees CCW")); gtk_grid_attach(grid, d->rotate_ccw_button, 0, line, 1, 1); - g_signal_connect(G_OBJECT(d->rotate_ccw_button), "clicked", G_CALLBACK(button_clicked), GINT_TO_POINTER(4)); - dt_action_define(DT_ACTION(self), NULL, N_("rotate selected images 90 degrees CCW"), d->rotate_ccw_button, &dt_action_def_button); + g_signal_connect(G_OBJECT(d->rotate_ccw_button), "clicked", + G_CALLBACK(button_clicked), GINT_TO_POINTER(4)); + dt_action_define(DT_ACTION(self), NULL, + N_("rotate selected images 90 degrees CCW"), + d->rotate_ccw_button, &dt_action_def_button); d->rotate_cw_button = dtgtk_button_new(dtgtk_cairo_paint_refresh, 1 | CPF_NONE, NULL); gtk_widget_set_name(d->rotate_cw_button, "non-flat"); - gtk_widget_set_tooltip_text(d->rotate_cw_button, _("rotate selected images 90 degrees CW")); + gtk_widget_set_tooltip_text(d->rotate_cw_button, + _("rotate selected images 90 degrees CW")); gtk_grid_attach(grid, d->rotate_cw_button, 1, line, 1, 1); - g_signal_connect(G_OBJECT(d->rotate_cw_button), "clicked", G_CALLBACK(button_clicked), GINT_TO_POINTER(5)); - dt_action_define(DT_ACTION(self), NULL, N_("rotate selected images 90 degrees CW"), d->rotate_cw_button, &dt_action_def_button); + g_signal_connect(G_OBJECT(d->rotate_cw_button), "clicked", + G_CALLBACK(button_clicked), GINT_TO_POINTER(5)); + dt_action_define(DT_ACTION(self), NULL, + N_("rotate selected images 90 degrees CW"), + d->rotate_cw_button, &dt_action_def_button); - d->reset_button = dt_action_button_new(self, N_("reset rotation"), button_clicked, GINT_TO_POINTER(6), + d->reset_button = dt_action_button_new(self, N_("reset rotation"), + button_clicked, GINT_TO_POINTER(6), _("reset rotation to EXIF data"), 0, 0); gtk_grid_attach(grid, d->reset_button, 2, line++, 2, 1); - d->cache_button = dt_action_button_new(self, N_("copy locally"), button_clicked, GINT_TO_POINTER(12), + d->cache_button = dt_action_button_new(self, N_("copy locally"), + button_clicked, GINT_TO_POINTER(12), _("copy the image locally"), 0, 0); gtk_grid_attach(grid, d->cache_button, 0, line, 2, 1); - d->uncache_button = dt_action_button_new(self, N_("resync local copy"), button_clicked, GINT_TO_POINTER(13), - _("synchronize the image's XMP and remove the local copy"), 0, 0); + d->uncache_button = dt_action_button_new + (self, N_("resync local copy"), + button_clicked, GINT_TO_POINTER(13), + _("synchronize the image's XMP and remove the local copy"), 0, 0); gtk_grid_attach(grid, d->uncache_button, 2, line++, 2, 1); - d->group_button = dt_action_button_new(self, NC_("selected images action", "group"), button_clicked, GINT_TO_POINTER(10), - _("add selected images to expanded group or create a new one"), - GDK_KEY_g, GDK_CONTROL_MASK); + d->group_button = dt_action_button_new + (self, NC_("selected images action", "group"), + button_clicked, GINT_TO_POINTER(10), + _("add selected images to expanded group or create a new one"), + GDK_KEY_g, GDK_CONTROL_MASK); gtk_grid_attach(grid, d->group_button, 0, line, 2, 1); - d->ungroup_button = dt_action_button_new(self, N_("ungroup"), button_clicked, GINT_TO_POINTER(11), + d->ungroup_button = dt_action_button_new(self, N_("ungroup"), + button_clicked, GINT_TO_POINTER(11), _("remove selected images from the group"), GDK_KEY_g, GDK_CONTROL_MASK | GDK_SHIFT_MASK); gtk_grid_attach(grid, d->ungroup_button, 2, line++, 2, 1); @@ -544,7 +598,8 @@ gtk_widget_set_tooltip_text(flag, _("select ratings metadata")); ellipsize_button(flag); gtk_grid_attach(grid, flag, 0, line, 3, 1); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(flag), dt_conf_get_bool("plugins/lighttable/copy_metadata/rating")); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(flag), + dt_conf_get_bool("plugins/lighttable/copy_metadata/rating")); g_signal_connect(G_OBJECT(flag), "clicked", G_CALLBACK(ratings_flag_callback), self); flag = gtk_check_button_new_with_label(_("colors")); @@ -552,7 +607,8 @@ gtk_widget_set_tooltip_text(flag, _("select colors metadata")); ellipsize_button(flag); gtk_grid_attach(grid, flag, 3, line++, 3, 1); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(flag), dt_conf_get_bool("plugins/lighttable/copy_metadata/colors")); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(flag), + dt_conf_get_bool("plugins/lighttable/copy_metadata/colors")); g_signal_connect(G_OBJECT(flag), "clicked", G_CALLBACK(colors_flag_callback), self); flag = gtk_check_button_new_with_label(_("tags")); @@ -560,7 +616,8 @@ gtk_widget_set_tooltip_text(flag, _("select tags metadata")); ellipsize_button(flag); gtk_grid_attach(grid, flag, 0, line, 3, 1); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(flag), dt_conf_get_bool("plugins/lighttable/copy_metadata/tags")); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(flag), + dt_conf_get_bool("plugins/lighttable/copy_metadata/tags")); g_signal_connect(G_OBJECT(flag), "clicked", G_CALLBACK(tags_flag_callback), self); flag = gtk_check_button_new_with_label(_("geo tags")); @@ -568,45 +625,59 @@ gtk_widget_set_tooltip_text(flag, _("select geo tags metadata")); ellipsize_button(flag); gtk_grid_attach(grid, flag, 3, line++, 3, 1); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(flag), dt_conf_get_bool("plugins/lighttable/copy_metadata/geotags")); + gtk_toggle_button_set_active + (GTK_TOGGLE_BUTTON(flag), + dt_conf_get_bool("plugins/lighttable/copy_metadata/geotags")); g_signal_connect(G_OBJECT(flag), "clicked", G_CALLBACK(geotags_flag_callback), self); flag = gtk_check_button_new_with_label(_("metadata")); d->metadata_flag = flag; - gtk_widget_set_tooltip_text(flag, _("select darktable metadata (from metadata editor module)")); + gtk_widget_set_tooltip_text(flag, + _("select darktable metadata (from metadata editor module)")); ellipsize_button(flag); gtk_grid_attach(grid, flag, 0, line++, 3, 1); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(flag), dt_conf_get_bool("plugins/lighttable/copy_metadata/metadata")); - g_signal_connect(G_OBJECT(flag), "clicked", G_CALLBACK(metadata_flag_callback), self); - - dt_lib_module_t *meta = (dt_lib_module_t *) dt_action_section(DT_ACTION(self), N_("metadata")); - d->copy_metadata_button = dt_action_button_new(meta, N_("copy"), copy_metadata_callback, self, - _("set the selected image as source of metadata"), 0, 0); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(flag), + dt_conf_get_bool("plugins/lighttable/copy_metadata/metadata")); + g_signal_connect(G_OBJECT(flag), "clicked", + G_CALLBACK(metadata_flag_callback), self); + + dt_lib_module_t *meta = (dt_lib_module_t *)dt_action_section(DT_ACTION(self), + N_("metadata")); + d->copy_metadata_button = dt_action_button_new + (meta, N_("copy"), + copy_metadata_callback, self, + _("set the selected image as source of metadata"), 0, 0); gtk_grid_attach(grid, d->copy_metadata_button, 0, line, 2, 1); - g_signal_connect(G_OBJECT(d->copy_metadata_button), "clicked", G_CALLBACK(copy_metadata_callback), self); + g_signal_connect(G_OBJECT(d->copy_metadata_button), "clicked", + G_CALLBACK(copy_metadata_callback), self); - d->paste_metadata_button = dt_action_button_new(meta, N_("paste"), paste_metadata_callback, self, - _("paste selected metadata on selected images"), 0, 0); + d->paste_metadata_button = dt_action_button_new + (meta, N_("paste"), paste_metadata_callback, self, + _("paste selected metadata on selected images"), 0, 0); gtk_grid_attach(grid, d->paste_metadata_button, 2, line, 2, 1); - d->clear_metadata_button = dt_action_button_new(meta, N_("clear"), clear_metadata_callback, self, - _("clear selected metadata on selected images"), 0, 0); + d->clear_metadata_button = dt_action_button_new + (meta, N_("clear"), clear_metadata_callback, self, + _("clear selected metadata on selected images"), 0, 0); gtk_grid_attach(grid, d->clear_metadata_button, 4, line++, 2, 1); GtkWidget *pastemode = NULL; - DT_BAUHAUS_COMBOBOX_NEW_FULL(pastemode, self, NULL, N_("mode"), - _("how to handle existing metadata"), - dt_conf_get_int("plugins/lighttable/copy_metadata/pastemode"), - pastemode_combobox_changed, self, - N_("merge"), N_("overwrite")); + DT_BAUHAUS_COMBOBOX_NEW_FULL + (pastemode, self, NULL, N_("mode"), + _("how to handle existing metadata"), + dt_conf_get_int("plugins/lighttable/copy_metadata/pastemode"), + pastemode_combobox_changed, self, + N_("merge"), N_("overwrite")); gtk_grid_attach(grid, pastemode, 0, line++, 6, 1); - d->refresh_button = dt_action_button_new(self, N_("refresh EXIF"), button_clicked, GINT_TO_POINTER(14), - _("update image information to match changes to file"), 0, 0); + d->refresh_button = dt_action_button_new + (self, N_("refresh EXIF"), button_clicked, GINT_TO_POINTER(14), + _("update image information to match changes to file"), 0, 0); gtk_grid_attach(grid, d->refresh_button, 0, line++, 6, 1); - d->set_monochrome_button = dt_action_button_new(self, N_("monochrome"), set_monochrome_callback, self, - _("set selection as monochrome images and activate monochrome workflow"), 0, 0); + d->set_monochrome_button = dt_action_button_new + (self, N_("monochrome"), set_monochrome_callback, self, + _("set selection as monochrome images and activate monochrome workflow"), 0, 0); gtk_grid_attach(grid, d->set_monochrome_button, 0, line, 3, 1); d->set_color_button = dt_action_button_new(self, N_("color"), set_color_callback, self, @@ -622,7 +693,8 @@ DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_COLLECTION_CHANGED, G_CALLBACK(_collection_updated_callback), self); - dt_action_register(DT_ACTION(self), N_("duplicate virgin"), _duplicate_virgin, GDK_KEY_d, GDK_CONTROL_MASK | GDK_SHIFT_MASK); + dt_action_register(DT_ACTION(self), N_("duplicate virgin"), + _duplicate_virgin, GDK_KEY_d, GDK_CONTROL_MASK | GDK_SHIFT_MASK); d->imageid = 0; _image_preference_changed(NULL, self); // update delete button label/tooltip @@ -638,10 +710,14 @@ void gui_cleanup(dt_lib_module_t *self) { - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(_image_preference_changed), self); - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(_image_selection_changed_callback), self); - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(_mouse_over_image_callback), self); - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(_collection_updated_callback), self); + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, + G_CALLBACK(_image_preference_changed), self); + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, + G_CALLBACK(_image_selection_changed_callback), self); + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, + G_CALLBACK(_mouse_over_image_callback), self); + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, + G_CALLBACK(_collection_updated_callback), self); free(self->data); self->data = NULL; @@ -679,7 +755,8 @@ return 0; } -static void lua_button_clicked(GtkWidget *widget, gpointer user_data) +static void lua_button_clicked(GtkWidget *widget, + gpointer user_data) { dt_lua_async_call_alien(lua_button_clicked_cb, 0, NULL, NULL, @@ -716,7 +793,8 @@ lua_callback_data * data = malloc(sizeof(lua_callback_data)); data->key = strdup(name); data->self = self; - const gulong s = g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(lua_button_clicked), data); + const gulong s = g_signal_connect(G_OBJECT(button), "clicked", + G_CALLBACK(lua_button_clicked), data); // save the signal connection in case we need to destroy it later dt_lua_module_entry_push(L, "lib", self->plugin_name); @@ -742,7 +820,9 @@ GtkWidget* widget = NULL; - for(int row = 5; (widget = gtk_grid_get_child_at(GTK_GRID(d->page1), 0, row)) != NULL; row++) + for(int row = 5; + (widget = gtk_grid_get_child_at(GTK_GRID(d->page1), 0, row)) != NULL; + row++) { if(GTK_IS_BUTTON(widget) && strcmp(gtk_widget_get_name(widget), name) == 0) { @@ -788,7 +868,9 @@ GtkWidget* widget = NULL; - for(int row = 5; (widget = gtk_grid_get_child_at(GTK_GRID(d->page1), 0, row)) != NULL; row++) + for(int row = 5; + (widget = gtk_grid_get_child_at(GTK_GRID(d->page1), 0, row)) != NULL; + row++) { if(GTK_IS_BUTTON(widget) && strcmp(gtk_widget_get_name(widget), name) == 0) { diff -Nru darktable-4.4.2/src/libs/import.c darktable-4.6.1/src/libs/import.c --- darktable-4.4.2/src/libs/import.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/import.c 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2011-2022 darktable developers. + Copyright (C) 2011-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -36,6 +36,7 @@ #include "gui/draw.h" #include "gui/import_metadata.h" #include "gui/preferences.h" +#include "imageio/imageio_common.h" // for dt_imageio_is_raw_by_extension() #include "libs/lib.h" #include "libs/lib_api.h" #ifdef GDK_WINDOWING_QUARTZ @@ -67,11 +68,17 @@ static void _import_from_dialog_free(dt_lib_module_t* self); static void _do_select_all(dt_lib_module_t* self); static void _do_select_none(dt_lib_module_t* self); -static void _do_select_new(dt_lib_module_t* self); +static uint32_t _do_select_new(dt_lib_module_t* self); static void _update_places_list(dt_lib_module_t* self); +static gboolean _update_files_list(gpointer user_data); static void _update_folders_list(dt_lib_module_t* self); -static void _lib_import_select_folder(GtkWidget *widget, dt_lib_module_t *self); -static void _remove_place(gchar *folder, GtkTreeIter iter, dt_lib_module_t* self); +static void _update_images_number(dt_lib_module_t* self, + const guint nb_sel); +static void _lib_import_select_folder(GtkWidget *widget, + dt_lib_module_t *self); +static void _remove_place(gchar *folder, + GtkTreeIter iter, + dt_lib_module_t* self); static GList* _get_custom_places(); typedef enum dt_import_cols_t @@ -129,6 +136,7 @@ GtkButton *tethered_shoot; GtkButton *mount_camera; GtkButton *unmount_camera; + GCancellable *cancel_iter; GtkWidget *ignore_exif, *rating, *apply_metadata, *recursive; GtkWidget *import_new; @@ -145,7 +153,7 @@ GtkTreeView *folderview; GtkTreeViewColumn *foldercol; GtkTreeIter iter; - int event; + guint event; guint nb; GdkPixbuf *eye; GtkTreeViewColumn *pixcol; @@ -159,9 +167,16 @@ GtkListStore *placesModel; GtkWidget *placesView; GtkTreeSelection *placesSelection; + GtkWidget *select_all; + GtkWidget *select_new; + GtkWidget *select_none; + GtkWidget *do_select_none; dt_gui_collapsible_section_t cs; + gboolean is_importing; + GList *to_be_visited; + #ifdef USE_LUA GtkWidget *extra_lua_widgets; #endif @@ -191,7 +206,8 @@ #ifdef HAVE_GPHOTO2 /* show import from camera dialog */ -static void _lib_import_from_camera_callback(GtkButton *button, dt_lib_module_t *self) +static void _lib_import_from_camera_callback(GtkButton *button, + dt_lib_module_t *self) { dt_camctl_t *camctl = (dt_camctl_t *)darktable.camctl; camctl->import_ui = TRUE; @@ -205,14 +221,16 @@ } /* enter tethering mode for camera */ -static void _lib_import_tethered_callback(GtkToggleButton *button, gpointer data) +static void _lib_import_tethered_callback(GtkToggleButton *button, + gpointer data) { /* select camera to work with before switching mode */ dt_camctl_select_camera(darktable.camctl, (dt_camera_t *)data); dt_ctl_switch_mode_to("tethering"); } -static void _lib_import_mount_callback(GtkToggleButton *button, gpointer data) +static void _lib_import_mount_callback(GtkToggleButton *button, + gpointer data) { dt_camera_unused_t *camera = (dt_camera_unused_t *)data; camera->trymount = TRUE; @@ -220,7 +238,8 @@ camctl->tickmask = 3; } -static void _lib_import_unmount_callback(GtkToggleButton *button, gpointer data) +static void _lib_import_unmount_callback(GtkToggleButton *button, + gpointer data) { dt_camera_t *camera = (dt_camera_t *)data; camera->unmount = TRUE; @@ -260,7 +279,9 @@ } else { - snprintf(buffer, sizeof(buffer), _("device \"%s\" connected on port \"%s\"."), camera->model, + snprintf(buffer, sizeof(buffer), + _("device \"%s\" connected on port \"%s\"."), + camera->model, camera->port); gtk_widget_set_tooltip_text(label, buffer); } @@ -270,27 +291,36 @@ GtkWidget *vbx = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); if(camera->can_import == TRUE) { - gtk_box_pack_start(GTK_BOX(vbx), (ib = gtk_button_new_with_label(_("copy & import from camera"))), FALSE, - FALSE, 0); - gtk_label_set_ellipsize(GTK_LABEL(gtk_bin_get_child(GTK_BIN(ib))), PANGO_ELLIPSIZE_END); + gtk_box_pack_start(GTK_BOX(vbx), + (ib = gtk_button_new_with_label(_("copy & import from camera"))), + FALSE, FALSE, 0); + gtk_label_set_ellipsize(GTK_LABEL(gtk_bin_get_child(GTK_BIN(ib))), + PANGO_ELLIPSIZE_END); d->import_camera = GTK_BUTTON(ib); d->camera = camera; - g_signal_connect(G_OBJECT(ib), "clicked", G_CALLBACK(_lib_import_from_camera_callback), self); + g_signal_connect(G_OBJECT(ib), "clicked", + G_CALLBACK(_lib_import_from_camera_callback), self); gtk_widget_set_halign(gtk_bin_get_child(GTK_BIN(ib)), GTK_ALIGN_CENTER); dt_gui_add_help_link(ib, "import_camera"); } if(camera->can_tether == TRUE) { - gtk_box_pack_start(GTK_BOX(vbx), (tb = gtk_button_new_with_label(_("tethered shoot"))), FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbx), + (tb = gtk_button_new_with_label(_("tethered shoot"))), + FALSE, FALSE, 0); d->tethered_shoot = GTK_BUTTON(tb); - g_signal_connect(G_OBJECT(tb), "clicked", G_CALLBACK(_lib_import_tethered_callback), camera); + g_signal_connect(G_OBJECT(tb), "clicked", + G_CALLBACK(_lib_import_tethered_callback), camera); gtk_widget_set_halign(gtk_bin_get_child(GTK_BIN(tb)), GTK_ALIGN_CENTER); dt_gui_add_help_link(tb, "import_camera"); } - gtk_box_pack_start(GTK_BOX(vbx), (um = gtk_button_new_with_label(_("unmount camera"))), FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbx), + (um = gtk_button_new_with_label(_("unmount camera"))), + FALSE, FALSE, 0); d->unmount_camera = GTK_BUTTON(um); - g_signal_connect(G_OBJECT(um), "clicked", G_CALLBACK(_lib_import_unmount_callback), camera); + g_signal_connect(G_OBJECT(um), "clicked", + G_CALLBACK(_lib_import_unmount_callback), camera); gtk_widget_set_halign(gtk_bin_get_child(GTK_BIN(um)), GTK_ALIGN_CENTER); dt_gui_add_help_link(um, "mount_camera"); @@ -309,19 +339,25 @@ gtk_box_pack_start(GTK_BOX(d->devices), label, FALSE, FALSE, 0); if(camera->used) - gtk_widget_set_tooltip_text(label, _("camera is locked by another application\n" - "make sure it is no longer mounted\nor quit the locking application")); + gtk_widget_set_tooltip_text + (label, + _("camera is locked by another application\n" + "make sure it is no longer mounted\nor quit the locking application")); else if(camera->boring) - gtk_widget_set_tooltip_text(label, _("tethering and importing is disabled for this camera")); + gtk_widget_set_tooltip_text + (label, + _("tethering and importing is disabled for this camera")); GtkWidget *im = gtk_button_new_with_label(_("mount camera")); GtkWidget *vbx = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_box_pack_start(GTK_BOX(vbx), im, FALSE, FALSE, 0); - gtk_label_set_ellipsize(GTK_LABEL(gtk_bin_get_child(GTK_BIN(im))), PANGO_ELLIPSIZE_END); + gtk_label_set_ellipsize(GTK_LABEL(gtk_bin_get_child(GTK_BIN(im))), + PANGO_ELLIPSIZE_END); d->mount_camera = GTK_BUTTON(im); - g_signal_connect(G_OBJECT(im), "clicked", G_CALLBACK(_lib_import_mount_callback), camera); + g_signal_connect(G_OBJECT(im), "clicked", + G_CALLBACK(_lib_import_mount_callback), camera); gtk_widget_set_halign(gtk_bin_get_child(GTK_BIN(im)), GTK_ALIGN_CENTER); dt_gui_add_help_link(im, "mount_camera"); @@ -331,10 +367,14 @@ dt_pthread_mutex_unlock(&camctl->lock); gtk_widget_show_all(GTK_WIDGET(d->devices)); - dt_action_define(DT_ACTION(self), NULL, N_("copy & import from camera"), GTK_WIDGET(d->import_camera), &dt_action_def_button); - dt_action_define(DT_ACTION(self), NULL, N_("mount camera"), GTK_WIDGET(d->mount_camera), &dt_action_def_button); - dt_action_define(DT_ACTION(self), NULL, N_("tethered shoot"), GTK_WIDGET(d->tethered_shoot), &dt_action_def_button); - dt_action_define(DT_ACTION(self), NULL, N_("unmount camera"), GTK_WIDGET(d->unmount_camera), &dt_action_def_button); + dt_action_define(DT_ACTION(self), NULL, N_("copy & import from camera"), + GTK_WIDGET(d->import_camera), &dt_action_def_button); + dt_action_define(DT_ACTION(self), NULL, N_("mount camera"), + GTK_WIDGET(d->mount_camera), &dt_action_def_button); + dt_action_define(DT_ACTION(self), NULL, N_("tethered shoot"), + GTK_WIDGET(d->tethered_shoot), &dt_action_def_button); + dt_action_define(DT_ACTION(self), NULL, N_("unmount camera"), + GTK_WIDGET(d->unmount_camera), &dt_action_def_button); } static void _free_camera_files(gpointer data) @@ -350,13 +390,16 @@ GList *imgs = dt_camctl_get_images_list(darktable.camctl, d->camera); int nb = 0; - const gboolean include_jpegs = !dt_conf_get_bool("ui_last/import_ignore_jpegs"); + const gboolean include_nonraws = !dt_conf_get_bool("ui_last/import_ignore_nonraws"); for(GList *img = imgs; img; img = g_list_next(img)) { dt_camera_files_t *file = (dt_camera_files_t *)img->data; const char *ext = g_strrstr(file->filename, "."); - if(include_jpegs || (ext && g_ascii_strncasecmp(ext, ".jpg", sizeof(".jpg")) - && g_ascii_strncasecmp(ext, ".jpeg", sizeof(".jpeg")))) + // Either we are not rejecting non-raw, or the file extension + // belongs to the raw format + if(include_nonraws || + (ext && ((dt_imageio_is_raw_by_extension(ext)) || + !g_ascii_strncasecmp(ext, ".dng", sizeof(".dng"))))) { const time_t datetime = file->timestamp; GDateTime *dt_datetime = g_date_time_new_from_unix_local(datetime); @@ -510,32 +553,42 @@ return pixbuf; } -static void _thumb_set_in_listview(GtkTreeModel *model, GtkTreeIter *iter, - const gboolean thumb_sel, dt_lib_module_t *self) +static void _thumb_set_in_listview(GtkTreeModel *model, + GtkTreeIter *iter, + const gboolean thumb_sel, + dt_lib_module_t *self) { dt_lib_import_t *d = (dt_lib_import_t *)self->data; gchar *filename; - gtk_tree_model_get(model, iter, DT_IMPORT_FILENAME, &filename, -1); + gchar *fullname; + gtk_tree_model_get(model, iter, + DT_IMPORT_UI_FILENAME, &filename, + DT_IMPORT_FILENAME, &fullname, + -1); GdkPixbuf *pixbuf = NULL; #ifdef HAVE_GPHOTO2 if(d->import_case == DT_IMPORT_CAMERA) - pixbuf = thumb_sel ? dt_camctl_get_thumbnail(darktable.camctl, d->camera, filename) : d->from.eye; + pixbuf = thumb_sel ? + dt_camctl_get_thumbnail(darktable.camctl, d->camera, filename) + : d->from.eye; else #endif { - const char *folder = dt_conf_get_string_const("ui_last/import_last_directory"); - char *fullname = g_build_filename(folder, filename, NULL); pixbuf = thumb_sel ? _import_get_thumbnail(fullname) : d->from.eye; - g_free(fullname); } gtk_list_store_set(d->from.store, iter, DT_IMPORT_SEL_THUMB, thumb_sel, DT_IMPORT_THUMB, pixbuf, -1); - if(pixbuf) g_object_ref(pixbuf); + if(pixbuf) + g_object_ref(pixbuf); + g_free(filename); + g_free(fullname); } -static gboolean _files_button_press(GtkWidget *view, GdkEventButton *event, dt_lib_module_t *self) +static gboolean _files_button_press(GtkWidget *view, + GdkEventButton *event, + dt_lib_module_t *self) { dt_lib_import_t *d = (dt_lib_import_t *)self->data; if((event->type == GDK_BUTTON_PRESS && event->button == 1)) @@ -543,7 +596,8 @@ GtkTreePath *path = NULL; GtkTreeViewColumn *column = NULL; // Get tree path for row that was clicked - if(gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(view), (gint)event->x, (gint)event->y, + if(gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(view), + (gint)event->x, (gint)event->y, &path, &column, NULL, NULL)) { if(column == d->from.pixcol) @@ -564,7 +618,8 @@ { GtkTreePath *path = NULL; // Get tree path for row that was clicked - if(gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(view), (gint)event->x, (gint)event->y, + if(gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(view), + (gint)event->x, (gint)event->y, &path, NULL, NULL, NULL)) { GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view)); @@ -597,7 +652,8 @@ return FALSE; } -static void _all_thumb_toggled(GtkTreeViewColumn *column, dt_lib_module_t *self) +static void _all_thumb_toggled(GtkTreeViewColumn *column, + dt_lib_module_t *self) { GtkWidget *toggle = gtk_tree_view_column_get_widget(column); const gboolean thumb_sel = !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggle)); @@ -610,9 +666,12 @@ d->from.event = 0; GtkTreeModel *model = GTK_TREE_MODEL(d->from.store); GtkTreeIter iter; - for(gboolean valid = gtk_tree_model_get_iter_first(model, &iter); valid; + for(gboolean valid = gtk_tree_model_get_iter_first(model, &iter); + valid; valid = gtk_tree_model_iter_next(model, &iter)) + { _thumb_set_in_listview(model, &iter, FALSE, self); + } } else if(!d->from.event) { @@ -626,7 +685,8 @@ static void _show_all_thumbs(dt_lib_module_t* self) { dt_lib_import_t *d = (dt_lib_import_t *)self->data; - const gboolean thumb_sel = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d->from.thumbs)); + const gboolean thumb_sel = + gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d->from.thumbs)); if(!d->from.event && thumb_sel) { // if the display is not yet started, start it @@ -636,76 +696,183 @@ } } -static guint _import_set_file_list(const gchar *folder, const int folder_lgth, - const int n, dt_lib_module_t *self) +#define FILE_REQUEST_BLOCK 50 + +static void _import_set_file_list(const gchar *folder, + dt_lib_module_t *self); + +static void _import_cancel(dt_lib_module_t *self) +{ + dt_lib_import_t *d = (dt_lib_import_t *)self->data; + if(d->cancel_iter) + g_cancellable_cancel(d->cancel_iter); + + d->from.nb = 0; + _update_images_number(self, 0); +} + +static void _import_active(dt_lib_module_t *self, + const gboolean active, + const uint32_t nb_sel) +{ + dt_lib_import_t *d = (dt_lib_import_t *)self->data; + + gtk_widget_set_sensitive(d->select_all, active); + gtk_widget_set_sensitive(d->select_none, active); + gtk_widget_set_sensitive(d->select_new, active); + + if(!active || nb_sel > 0) + gtk_dialog_set_response_sensitive(GTK_DIALOG(d->from.dialog), + GTK_RESPONSE_ACCEPT, active); +} + +static void _add_file_callback(GObject *direnum, + GAsyncResult *result, + gpointer user_data) { + dt_lib_module_t* self = (dt_lib_module_t *)user_data; dt_lib_import_t *d = (dt_lib_import_t *)self->data; + GError *error = NULL; - GFile *gfolder = g_file_new_for_path(folder); + GFileEnumerator *dir_files = G_FILE_ENUMERATOR(direnum); + GList *file_list = g_file_enumerator_next_files_finish(dir_files, result, &error); + GFile* gfolder = g_file_enumerator_get_container(dir_files); - // if folder is root, consider one folder separator less - int offset = (g_path_skip_root(folder)[0] ? folder_lgth + 1 : folder_lgth); + if(error) + { + // called when the iterator is cancelled + // g_critical("Unable to add files to list, error: %s", error->message); + g_file_enumerator_close(dir_files, NULL, NULL); + g_object_unref(gfolder); + g_object_unref(direnum); + g_list_free_full(file_list, g_object_unref); + g_error_free(error); + return; + } + else if(file_list == NULL) + { + // Done listing on this iterator -#ifdef WIN32 - // .. but for Windows UNC there will be a folder separator anyway - if(dt_util_path_is_UNC(folder)) offset = folder_lgth + 1; -#endif + g_object_unref(gfolder); + g_file_enumerator_close(dir_files, NULL, NULL); + g_object_unref(direnum); - GFileEnumerator *dir_files = - g_file_enumerate_children(gfolder, - G_FILE_ATTRIBUTE_STANDARD_NAME "," - G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME "," - G_FILE_ATTRIBUTE_TIME_MODIFIED "," - G_FILE_ATTRIBUTE_STANDARD_TYPE, - G_FILE_QUERY_INFO_NONE, NULL, &error); + _update_images_number(self, 0); - GFileInfo *info = NULL; - guint nb = n; - /* get filmroll id for current directory. if not present, checking the db whether - the image has already been imported can be skipped */ - int32_t filmroll_id = dt_film_get_id(folder); - const gboolean recursive = dt_conf_get_bool("ui_last/import_recursive"); - const gboolean include_jpegs = !dt_conf_get_bool("ui_last/import_ignore_jpegs"); + // Do we have more to parse - if(dir_files) + if(d->to_be_visited) + { + GList *l = g_list_first(d->to_be_visited); + char *dirname = (char *)l->data; + d->to_be_visited = g_list_remove_link(d->to_be_visited, l); + _import_set_file_list(dirname, user_data); + g_free(dirname); + } + else + { + // Nothing more to parse, do select the images + // according to the preference. + uint32_t count_sel = 0; + + if(dt_conf_get_bool("ui_last/import_select_new")) + { + count_sel = _do_select_new(self); + } + else + { + _do_select_all(self); + count_sel = d->from.nb; + } + d->is_importing = FALSE; + _import_active(self, TRUE, count_sel); + _update_images_number(self, count_sel); + + gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(d->from.store), + DT_IMPORT_DATETIME, GTK_SORT_ASCENDING); + } + + return; + } + else { - while((info = g_file_enumerator_next_file(dir_files, NULL, &error))) + g_file_enumerator_next_files_async(G_FILE_ENUMERATOR(direnum), + FILE_REQUEST_BLOCK, + G_PRIORITY_LOW, + d->cancel_iter, + _add_file_callback, + user_data); + + const gboolean recursive = dt_conf_get_bool("ui_last/import_recursive"); + const gboolean include_nonraws = !dt_conf_get_bool("ui_last/import_ignore_nonraws"); + + char *folder = g_file_get_path(gfolder); + + // if folder is root, consider one folder separator less + const int offset = g_path_skip_root(folder)[0] +#ifdef WIN32 + // .. but for Windows UNC there will be a folder separator anyway + || dt_util_path_is_UNC(folder) +#endif + ? strlen(folder) + 1 + : strlen(folder); + + const int32_t filmroll_id = dt_film_get_id(folder); + for(GList *node = file_list; + node; + node = node->next) { + GFileInfo *info = node->data; + const char *uifilename = g_file_info_get_display_name(info); const char *filename = g_file_info_get_name(info); + if(!filename) continue; - /* g_file_info_get_is_hidden() always returns 0 on macOS, - so we check if the filename starts with a '.' */ + const GFileType filetype = g_file_info_get_file_type(info); + const time_t datetime = + g_file_info_get_attribute_uint64(info, G_FILE_ATTRIBUTE_TIME_MODIFIED); + + /* g_file_info_get_is_hidden() always returns 0 on macOS, so we + check if the filename starts with a '.' */ const gboolean is_hidden = g_file_info_get_is_hidden(info) || filename[0] == '.'; if (is_hidden) continue; - const time_t datetime = g_file_info_get_attribute_uint64(info, G_FILE_ATTRIBUTE_TIME_MODIFIED); - GDateTime *dt_datetime = g_date_time_new_from_unix_local(datetime); - gchar *dt_txt = g_date_time_format(dt_datetime, "%x %X"); - const GFileType filetype = g_file_info_get_file_type(info); gchar *uifullname = g_build_filename(folder, uifilename, NULL); gchar *fullname = g_build_filename(folder, filename, NULL); if(recursive && filetype == G_FILE_TYPE_DIRECTORY) { - nb = _import_set_file_list(fullname, folder_lgth, nb, self); + if(g_file_test(fullname, G_FILE_TEST_IS_SYMLINK)) + { + dt_print(DT_DEBUG_CONTROL, "[import] skip symlink %s\n", fullname); + } + else + { + d->to_be_visited = g_list_prepend(d->to_be_visited, g_strdup(fullname)); + } } - // supported image format to import + // Before adding to the import list, check that the format is + // supported by this build of dt else if(filetype != G_FILE_TYPE_DIRECTORY && dt_supported_image(filename)) { const char *ext = g_strrstr(filename, "."); - if(include_jpegs || (ext && g_ascii_strncasecmp(ext, ".jpg", sizeof(".jpg")) - && g_ascii_strncasecmp(ext, ".jpeg", sizeof(".jpeg")))) + // Either we are not rejecting non-raw, or the file extension + // belongs to the raw format + if(include_nonraws || + (ext && ((dt_imageio_is_raw_by_extension(ext)) || + !g_ascii_strncasecmp(ext, ".dng", sizeof(".dng"))))) { gboolean already_imported = FALSE; if(d->import_case == DT_IMPORT_INPLACE) { - /* check if image is already imported, using previously fetched filmroll id */ + /* check if image is already imported, using previously + * fetched filmroll id */ if(filmroll_id != -1) - already_imported = dt_image_get_id(filmroll_id, filename) == NO_IMGID ? FALSE : TRUE; + already_imported = dt_image_get_id(filmroll_id, filename) == NO_IMGID + ? FALSE : TRUE; } else { @@ -716,45 +883,117 @@ g_free(basename); } + GDateTime *dt_datetime = g_date_time_new_from_unix_local(datetime); + gchar *dt_txt = g_date_time_format(dt_datetime, "%x %X"); + GtkTreeIter iter; gtk_list_store_append(d->from.store, &iter); gtk_list_store_set(d->from.store, &iter, DT_IMPORT_UI_EXISTS, already_imported ? "✔" : " ", DT_IMPORT_UI_FILENAME, &uifullname[offset], - DT_IMPORT_FILENAME, &fullname[offset], + DT_IMPORT_FILENAME, fullname, DT_IMPORT_UI_DATETIME, dt_txt, DT_IMPORT_DATETIME, datetime, - DT_IMPORT_THUMB, d->from.eye, -1); - nb++; + DT_IMPORT_THUMB, d->from.eye, + -1); + d->from.nb++; + g_free(dt_txt); } - } - g_free(dt_txt); - g_free(fullname); - g_free(uifullname); - g_date_time_unref(dt_datetime); + g_free(fullname); + g_free(uifullname); + } g_object_unref(info); } - g_file_enumerator_close(dir_files, NULL, NULL); - g_object_unref(dir_files); + + g_free(folder); } - return nb; + g_list_free(file_list); +} + +static void _import_set_file_list(const gchar *folder, + dt_lib_module_t *self) +{ + dt_lib_import_t *d = (dt_lib_import_t *)self->data; + + GError *error = NULL; + GFile *gfolder = g_file_new_for_path(folder); + + GFileEnumerator *dir_files = + g_file_enumerate_children(gfolder, + G_FILE_ATTRIBUTE_STANDARD_NAME "," + G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME "," + G_FILE_ATTRIBUTE_TIME_MODIFIED "," + G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN "," + G_FILE_ATTRIBUTE_STANDARD_TYPE, + G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, + d->cancel_iter, + &error); + + if(error) + { + dt_print(DT_DEBUG_ALWAYS, + "[_import_set_file_list] unable to create iterator," + " error: %s", error->message); + g_error_free(error); + } + + g_file_enumerator_next_files_async(dir_files, + FILE_REQUEST_BLOCK, + G_PRIORITY_LOW, + d->cancel_iter, + _add_file_callback, + self); +} + +static void _import_set_file_list_start(const gchar *folder, + dt_lib_module_t *self) +{ + dt_lib_import_t *d = (dt_lib_import_t *)self->data; + + _import_cancel(self); + d->cancel_iter = g_cancellable_new(); + + d->from.nb = 0; + d->to_be_visited = NULL; + d->is_importing = TRUE; + + const gboolean recursive = dt_conf_get_bool("ui_last/import_recursive"); + + if(recursive) + { + // disable sorting as it is very costly for large set of files + gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(d->from.store), + GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, + GTK_SORT_ASCENDING); + } + + _import_active(self, FALSE, 0); + + _import_set_file_list(folder, self); } -static void _update_images_number(GtkWidget *label, const guint nb_sel, const guint nb) +static void _update_images_number(dt_lib_module_t* self, + const guint nb_sel) { + dt_lib_import_t *d = (dt_lib_import_t *)self->data; + GtkWidget *label = d->from.img_nb; char text[256] = { 0 }; - snprintf(text, sizeof(text), ngettext("%d image out of %d selected", "%d images out of %d selected", nb_sel), nb_sel, nb); + snprintf(text, sizeof(text), + ngettext("%d image out of %d selected", "%d images out of %d selected", + nb_sel), nb_sel, d->from.nb); gtk_label_set_text(GTK_LABEL(label), text); } -static void _import_from_selection_changed(GtkTreeSelection *selection, dt_lib_module_t* self) +static void _import_from_selection_changed(GtkTreeSelection *selection, + dt_lib_module_t* self) { dt_lib_import_t *d = (dt_lib_import_t *)self->data; const guint nb_sel = gtk_tree_selection_count_selected_rows(selection); - _update_images_number(d->from.img_nb, nb_sel, d->from.nb); - gtk_dialog_set_response_sensitive(GTK_DIALOG(d->from.dialog), - GTK_RESPONSE_ACCEPT, nb_sel ? TRUE : FALSE); + _update_images_number(self, nb_sel); + if(!d->is_importing) + gtk_dialog_set_response_sensitive(GTK_DIALOG(d->from.dialog), + GTK_RESPONSE_ACCEPT, nb_sel ? TRUE : FALSE); } static void _update_layout(dt_lib_module_t* self) @@ -769,7 +1008,8 @@ } } -static void _usefn_toggled(GtkWidget *widget, dt_lib_module_t* self) +static void _usefn_toggled(GtkWidget *widget, + dt_lib_module_t* self) { _update_layout(self); } @@ -785,7 +1025,8 @@ gtk_tree_view_set_model(d->from.treeview, NULL); gtk_list_store_clear(d->from.store); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model), - GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, GTK_SORT_ASCENDING); + GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, + GTK_SORT_ASCENDING); #ifdef HAVE_GPHOTO2 if(d->import_case == DT_IMPORT_CAMERA) { @@ -797,11 +1038,10 @@ else #endif { - char *folder = dt_conf_get_string("ui_last/import_last_directory"); - d->from.nb = !folder[0] ? 0 : _import_set_file_list(folder, strlen(folder), 0, self); + char *folder = dt_conf_get_path("ui_last/import_last_directory"); + if(folder[0]) + _import_set_file_list_start(folder, self); g_free(folder); - gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model), - DT_IMPORT_DATETIME, GTK_SORT_ASCENDING); } gtk_tree_view_set_model(d->from.treeview, model); g_object_unref(model); @@ -814,33 +1054,40 @@ return FALSE; } -static void _import_new_toggled(GtkWidget *widget, dt_lib_module_t* self) +static void _import_new_toggled(GtkWidget *widget, + dt_lib_module_t* self) { - if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) _do_select_new(self); + if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) + _do_select_new(self); } -static void _ignore_jpegs_toggled(GtkWidget *widget, dt_lib_module_t* self) +static void _ignore_nonraws_toggled(GtkWidget *widget, + dt_lib_module_t* self) { _update_files_list(self); _show_all_thumbs(self); } -static void _recursive_toggled(GtkWidget *widget, dt_lib_module_t* self) +static void _recursive_toggled(GtkWidget *widget, + dt_lib_module_t* self) { _update_files_list(self); _show_all_thumbs(self); } -static void _do_select_all_clicked(GtkWidget *widget, dt_lib_module_t* self) +static void _do_select_all_clicked(GtkWidget *widget, + dt_lib_module_t* self) { _do_select_all(self); } -static void _do_select_none_clicked(GtkWidget *widget, dt_lib_module_t* self) +static void _do_select_none_clicked(GtkWidget *widget, + dt_lib_module_t* self) { _do_select_none(self); } -static void _do_select_new_clicked(GtkWidget *widget, dt_lib_module_t* self) +static void _do_select_new_clicked(GtkWidget *widget, + dt_lib_module_t* self) { _do_select_new(self); } @@ -859,7 +1106,8 @@ DT_ACTION(self)); } -static void _resize_dialog(GtkWidget *widget, dt_lib_module_t* self) +static void _resize_dialog(GtkWidget *widget, + dt_lib_module_t* self) { GtkAllocation allocation; gtk_widget_get_allocation(widget, &allocation); @@ -867,7 +1115,8 @@ dt_conf_set_int("ui_last/import_dialog_height", allocation.height); } -static gboolean _find_iter_folder(GtkTreeModel *model, GtkTreeIter *iter, +static gboolean _find_iter_folder(GtkTreeModel *model, + GtkTreeIter *iter, const char *folder) { gboolean found = FALSE; @@ -893,11 +1142,14 @@ return found; } -static void _get_folders_list(GtkTreeStore *store, GtkTreeIter *parent, - const gchar *folder, const char *selected) -{ - // each time a new folder is added, it is set as not expanded and assigned a fake child - // when expanded, the children are added and the fake child is reused +static void _get_folders_list(GtkTreeStore *store, + GtkTreeIter *parent, + const gchar *folder, + const char *selected) +{ + // each time a new folder is added, it is set as not expanded and + // assigned a fake child when expanded, the children are added and + // the fake child is reused GError *error = NULL; GFile *gfolder = g_file_new_for_path(folder); GFileEnumerator *dir_files = g_file_enumerate_children(gfolder, @@ -937,8 +1189,10 @@ const char *filename = g_file_info_get_name(info); if(!filename) continue; - const gboolean ishidden = g_file_info_get_attribute_boolean(info, G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN); - const gboolean canread = g_file_info_get_attribute_boolean(info, G_FILE_ATTRIBUTE_ACCESS_CAN_READ); + const gboolean ishidden = + g_file_info_get_attribute_boolean(info, G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN); + const gboolean canread = + g_file_info_get_attribute_boolean(info, G_FILE_ATTRIBUTE_ACCESS_CAN_READ); const GFileType filetype = g_file_info_get_file_type(info); if(filetype == G_FILE_TYPE_DIRECTORY && !ishidden && canread) { @@ -991,7 +1245,8 @@ } } -// workaround to erase parasitic selection when click on expander or empty part of the view +// workaround to erase parasitic selection when click on expander or +// empty part of the view static gboolean _clear_parasitic_selection(gpointer user_data) { if(dt_conf_is_equal("ui_last/import_last_directory", "")) @@ -1005,11 +1260,14 @@ return FALSE; } -static gboolean _places_button_press(GtkWidget *view, GdkEventButton *event, dt_lib_module_t *self) +static gboolean _places_button_press(GtkWidget *view, + GdkEventButton *event, + dt_lib_module_t *self) { gboolean res = FALSE; GtkTreePath *path = NULL; - if(gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(view), (gint)event->x, (gint)event->y, &path, NULL, NULL, NULL)) + if(gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(view), + (gint)event->x, (gint)event->y, &path, NULL, NULL, NULL)) { GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(view)); GtkTreeIter iter; @@ -1027,6 +1285,7 @@ gtk_tree_selection_select_path(place_selection, path); dt_conf_set_string("ui_last/import_last_place", folder_path); dt_conf_set_string("ui_last/import_last_directory", ""); + _import_cancel(self); _update_folders_list(self); _update_files_list(self); } @@ -1049,7 +1308,9 @@ return res; } -static gboolean _folders_button_press(GtkWidget *view, GdkEventButton *event, dt_lib_module_t *self) +static gboolean _folders_button_press(GtkWidget *view, + GdkEventButton *event, + dt_lib_module_t *self) { dt_lib_import_t *d = (dt_lib_import_t *)self->data; gboolean res = FALSE; @@ -1058,11 +1319,13 @@ if((button_pressed == 1) && !modifier) { GtkTreePath *path = NULL; - if(gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(view), event->x, event->y, &path, NULL, NULL, NULL)) + if(gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(view), + event->x, event->y, &path, NULL, NULL, NULL)) { GdkRectangle rect; gtk_tree_view_get_cell_area(GTK_TREE_VIEW(view), path, d->from.foldercol, &rect); - const gboolean blank = gtk_tree_view_is_blank_at_pos(GTK_TREE_VIEW(view), event->x, event->y, + const gboolean blank = gtk_tree_view_is_blank_at_pos(GTK_TREE_VIEW(view), + event->x, event->y, NULL, NULL, NULL, NULL); // select and save new folder only if not click on expander if(blank || (event->x > rect.x)) @@ -1087,7 +1350,8 @@ if(event->type == GDK_DOUBLE_BUTTON_PRESS) { GtkTreePath *path = NULL; - gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(view), event->x, event->y, &path, NULL, NULL, NULL); + gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(view), + event->x, event->y, &path, NULL, NULL, NULL); if(gtk_tree_view_row_expanded(d->from.folderview, path)) gtk_tree_view_collapse_row (d->from.folderview, path); else @@ -1096,17 +1360,20 @@ } g_timeout_add_full(G_PRIORITY_DEFAULT_IDLE, 100, _clear_parasitic_selection, self, NULL); - return res; + return res; } -static void _folder_order_clicked(GtkTreeViewColumn *column, dt_lib_module_t *self) +static void _folder_order_clicked(GtkTreeViewColumn *column, + dt_lib_module_t *self) { dt_conf_set_bool("ui_last/import_last_folder_descending", !dt_conf_get_bool("ui_last/import_last_folder_descending")); } -static void _row_expanded(GtkTreeView *view, GtkTreeIter *iter, - GtkTreePath *path, dt_lib_module_t *self) +static void _row_expanded(GtkTreeView *view, + GtkTreeIter *iter, + GtkTreePath *path, + dt_lib_module_t *self) { GtkTreeModel *model = gtk_tree_view_get_model(view); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model), @@ -1116,24 +1383,28 @@ gtk_tree_model_get(model, iter, DT_FOLDER_PATH, &fullname, -1); _get_folders_list(GTK_TREE_STORE(model), iter, fullname, ""); g_free(fullname); - gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model), DT_FOLDER_PATH, - dt_conf_get_bool("ui_last/import_last_folder_descending") - ? GTK_SORT_DESCENDING : GTK_SORT_ASCENDING); + gtk_tree_sortable_set_sort_column_id + (GTK_TREE_SORTABLE(model), DT_FOLDER_PATH, + dt_conf_get_bool("ui_last/import_last_folder_descending") + ? GTK_SORT_DESCENDING : GTK_SORT_ASCENDING); } -static void _paned_position_changed(GtkWidget *widget, dt_lib_module_t* self) +static void _paned_position_changed(GtkWidget *widget, + dt_lib_module_t* self) { const gint position = gtk_paned_get_position(GTK_PANED(widget)); dt_conf_set_int("ui_last/import_dialog_paned_pos", position); } -static void _paned_places_position_changed(GtkWidget *widget, dt_lib_module_t* self) +static void _paned_places_position_changed(GtkWidget *widget, + dt_lib_module_t* self) { const gint position = gtk_paned_get_position(GTK_PANED(widget)); dt_conf_set_int("ui_last/import_dialog_paned_places_pos", position); } -static void _places_reset_callback(GtkWidget *widget, dt_lib_module_t* self) +static void _places_reset_callback(GtkWidget *widget, + dt_lib_module_t* self) { dt_conf_set_bool("ui_last/import_dialog_show_home", TRUE); dt_conf_set_bool("ui_last/import_dialog_show_pictures", TRUE); @@ -1142,15 +1413,18 @@ _update_places_list(self); } -static void _set_places_list(GtkWidget *places_paned, dt_lib_module_t* self) +static void _set_places_list(GtkWidget *places_paned, + dt_lib_module_t* self) { dt_lib_import_t *d = (dt_lib_import_t *)self->data; - d->placesModel = gtk_list_store_new(DT_PLACES_NUM_COLS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT); + d->placesModel = gtk_list_store_new(DT_PLACES_NUM_COLS, G_TYPE_STRING, + G_TYPE_STRING, G_TYPE_INT); d->placesView = gtk_tree_view_new_with_model(GTK_TREE_MODEL(d->placesModel)); GtkWidget *places_top_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); GtkWidget *places_header = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_widget_set_tooltip_text(places_header, _("choose the root of the folder tree below")); + gtk_widget_set_tooltip_text(places_header, + _("choose the root of the folder tree below")); GtkWidget *places_label = gtk_label_new(NULL); gchar *markup = g_strdup_printf("<b> %s</b>",_("places")); @@ -1159,54 +1433,68 @@ gtk_box_pack_start(GTK_BOX(places_header), places_label, FALSE, FALSE, 0); GtkWidget *places_reset = dtgtk_button_new(dtgtk_cairo_paint_reset, 0, NULL); - gtk_widget_set_tooltip_text(places_reset, _("restore all default places you have removed by right-click")); + gtk_widget_set_tooltip_text + (places_reset, + _("restore all default places you have removed by right-click")); g_signal_connect(places_reset, "clicked", G_CALLBACK(_places_reset_callback), self); gtk_box_pack_end(GTK_BOX(places_header), places_reset, FALSE, FALSE, 0); GtkWidget *places_add = dtgtk_button_new(dtgtk_cairo_paint_plus_simple, 0, NULL); - gtk_widget_set_tooltip_text(places_add, _("add a custom place\n\nright-click on a place to remove it")); + gtk_widget_set_tooltip_text + (places_add, + _("add a custom place\n\nright-click on a place to remove it")); g_signal_connect(places_add, "clicked", G_CALLBACK(_lib_import_select_folder), self); gtk_box_pack_end(GTK_BOX(places_header), places_add, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(places_top_box), places_header, FALSE, FALSE, 0); GtkWidget *placesWindow = gtk_scrolled_window_new(NULL, NULL); - gtk_widget_set_tooltip_text(placesWindow, _("you can add custom places using the plus icon")); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(placesWindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + gtk_widget_set_tooltip_text(placesWindow, + _("you can add custom places using the plus icon")); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(placesWindow), + GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(d->placesView),FALSE); gtk_tree_view_set_tooltip_column(GTK_TREE_VIEW(d->placesView), DT_PLACES_PATH); gtk_container_add(GTK_CONTAINER(placesWindow), GTK_WIDGET(d->placesView)); - GtkTreeViewColumn* placesColumn = gtk_tree_view_column_new_with_attributes("", gtk_cell_renderer_text_new(), "text", 0, NULL); + GtkTreeViewColumn* placesColumn = + gtk_tree_view_column_new_with_attributes("", gtk_cell_renderer_text_new(), + "text", 0, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(d->placesView), placesColumn); gtk_box_pack_start(GTK_BOX(places_top_box), placesWindow, TRUE, TRUE, 0); gtk_paned_pack1(GTK_PANED(places_paned), places_top_box, TRUE, TRUE); - g_signal_connect(G_OBJECT(d->placesView), "button-press-event", G_CALLBACK(_places_button_press), self); + g_signal_connect(G_OBJECT(d->placesView), "button-press-event", + G_CALLBACK(_places_button_press), self); } static void _set_folders_list(GtkWidget *places_paned, dt_lib_module_t* self) { dt_lib_import_t *d = (dt_lib_import_t *)self->data; - GtkTreeStore *store = gtk_tree_store_new(DT_FOLDER_NUM_COLS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN); + GtkTreeStore *store = gtk_tree_store_new(DT_FOLDER_NUM_COLS, G_TYPE_STRING, + G_TYPE_STRING, G_TYPE_BOOLEAN); GtkWidget *w = gtk_scrolled_window_new(NULL, NULL); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(w), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(w), GTK_POLICY_AUTOMATIC, + GTK_POLICY_ALWAYS); d->from.folderview = GTK_TREE_VIEW(gtk_tree_view_new()); gtk_container_add(GTK_CONTAINER(w), GTK_WIDGET(d->from.folderview)); - gtk_widget_set_tooltip_text(GTK_WIDGET(d->from.folderview), _("select a folder to see the content")); + gtk_widget_set_tooltip_text(GTK_WIDGET(d->from.folderview), + _("select a folder to see the content")); GtkCellRenderer *renderer = gtk_cell_renderer_text_new(); - GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes(_("folders"), renderer, "text", + GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes(_("folders"), + renderer, "text", DT_FOLDER_NAME, NULL); gtk_tree_view_append_column(d->from.folderview, column); gtk_tree_view_column_set_expand(column, TRUE); gtk_tree_view_column_set_resizable(column, TRUE); gtk_tree_view_set_expander_column(d->from.folderview, column); g_signal_connect(d->from.folderview, "row-expanded", G_CALLBACK(_row_expanded), self); - g_signal_connect(G_OBJECT(d->from.folderview), "button-press-event", G_CALLBACK(_folders_button_press), self); + g_signal_connect(G_OBJECT(d->from.folderview), "button-press-event", + G_CALLBACK(_folders_button_press), self); gtk_tree_view_column_set_sort_column_id(column, DT_FOLDER_PATH); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), DT_FOLDER_PATH, dt_conf_get_bool("ui_last/import_last_folder_descending") @@ -1214,13 +1502,16 @@ g_signal_connect(column, "clicked", G_CALLBACK(_folder_order_clicked), self); gtk_tree_view_column_set_min_width(column, DT_PIXEL_APPLY_DPI(200)); d->from.foldercol = column; - gtk_scrolled_window_set_min_content_width(GTK_SCROLLED_WINDOW(w), DT_PIXEL_APPLY_DPI(200)); + gtk_scrolled_window_set_min_content_width(GTK_SCROLLED_WINDOW(w), + DT_PIXEL_APPLY_DPI(200)); gtk_tree_view_set_model(d->from.folderview, GTK_TREE_MODEL(store)); gtk_tree_view_set_headers_visible(d->from.folderview, TRUE); gtk_paned_pack2(GTK_PANED(places_paned), w, TRUE, TRUE); } -static void _expand_folder(const char *folder, const gboolean select, dt_lib_module_t* self) +static void _expand_folder(const char *folder, + const gboolean select, + dt_lib_module_t* self) { dt_lib_import_t *d = (dt_lib_import_t *)self->data; if(folder && folder[0]) @@ -1269,7 +1560,8 @@ if(homedir) { current_place = homedir; - gtk_list_store_insert_with_values(d->placesModel, &iter, -1, DT_PLACES_NAME, _("home"), DT_PLACES_PATH, + gtk_list_store_insert_with_values(d->placesModel, &iter, -1, + DT_PLACES_NAME, _("home"), DT_PLACES_PATH, current_place, DT_PLACES_TYPE, DT_TYPE_HOME, -1); if(!g_strcmp0(current_place, last_place)) gtk_tree_selection_select_iter(d->placesSelection, &iter); @@ -1277,11 +1569,13 @@ } } - if(dt_conf_get_bool("ui_last/import_dialog_show_pictures") && g_get_user_special_dir(G_USER_DIRECTORY_PICTURES)) + if(dt_conf_get_bool("ui_last/import_dialog_show_pictures") + && g_get_user_special_dir(G_USER_DIRECTORY_PICTURES)) { g_free(current_place); current_place = g_strdup(g_get_user_special_dir(G_USER_DIRECTORY_PICTURES)); - gtk_list_store_insert_with_values(d->placesModel, &iter, -1, DT_PLACES_NAME, _("pictures"), DT_PLACES_PATH, + gtk_list_store_insert_with_values(d->placesModel, &iter, -1, + DT_PLACES_NAME, _("pictures"), DT_PLACES_PATH, current_place, DT_PLACES_TYPE, DT_TYPE_PIC, -1); if(!g_strcmp0(current_place, last_place)) gtk_tree_selection_select_iter(d->placesSelection, &iter); @@ -1316,8 +1610,10 @@ gchar *volname = g_volume_get_name(volume->data); gchar *path = g_file_get_path(placesFile); - gtk_list_store_insert_with_values(d->placesModel, &iter, -1, DT_PLACES_NAME, volname, - DT_PLACES_PATH, path, DT_PLACES_TYPE, DT_TYPE_MOUNT, -1); + gtk_list_store_insert_with_values(d->placesModel, &iter, -1, + DT_PLACES_NAME, volname, + DT_PLACES_PATH, path, + DT_PLACES_TYPE, DT_TYPE_MOUNT, -1); g_free(volname); g_free(path); @@ -1346,15 +1642,18 @@ } #endif - gtk_list_store_insert_with_values(d->placesModel, &iter, -1, DT_PLACES_NAME, basename, - DT_PLACES_PATH, (char *)places_iter->data, DT_PLACES_TYPE, DT_TYPE_CUSTOM, -1); + gtk_list_store_insert_with_values(d->placesModel, &iter, -1, + DT_PLACES_NAME, basename, + DT_PLACES_PATH, (char *)places_iter->data, + DT_PLACES_TYPE, DT_TYPE_CUSTOM, -1); g_free(basename); if(!g_strcmp0(places_iter->data, last_place)) gtk_tree_selection_select_iter(d->placesSelection, &iter); } g_free(last_place); - // the list returned by _get_custom_places references a single string that has been split on commas. Release it - // by freeing the data of the list's first node + // the list returned by _get_custom_places references a single + // string that has been split on commas. Release it by freeing the + // data of the list's first node if(places) g_free(places->data); g_list_free(places); @@ -1368,14 +1667,15 @@ gtk_tree_view_set_model(d->from.folderview, NULL); gtk_tree_store_clear(GTK_TREE_STORE(model)); const char *last_place = dt_conf_get_string_const("ui_last/import_last_place"); - const char *folder = dt_conf_get_string_const("ui_last/import_last_directory"); + char *folder = dt_conf_get_path("ui_last/import_last_directory"); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model), GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, GTK_SORT_ASCENDING); _get_folders_list(GTK_TREE_STORE(model), NULL, last_place, folder); - gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model), DT_FOLDER_PATH, - dt_conf_get_bool("ui_last/import_last_folder_descending") - ? GTK_SORT_DESCENDING : GTK_SORT_ASCENDING); + gtk_tree_sortable_set_sort_column_id + (GTK_TREE_SORTABLE(model), DT_FOLDER_PATH, + dt_conf_get_bool("ui_last/import_last_folder_descending") + ? GTK_SORT_DESCENDING : GTK_SORT_ASCENDING); gtk_tree_view_set_model(d->from.folderview, model); g_object_unref(model); @@ -1383,6 +1683,8 @@ _expand_folder(folder, TRUE, self); else _expand_folder(last_place, FALSE, self); + + g_free(folder); } static void _escape_place_name_comma(char *name) @@ -1397,8 +1699,9 @@ if(name[i] == '\1') name[i] = ','; } -static gboolean _find_iter_place(GtkTreeModel *model, GtkTreeIter *iter, - const char *place) +static gboolean _find_iter_place(GtkTreeModel *model, + GtkTreeIter *iter, + const char *place) { gboolean found = FALSE; if(!place) return found; @@ -1413,7 +1716,8 @@ return found; } -static void _add_custom_place(gchar *place, dt_lib_module_t* self) +static void _add_custom_place(gchar *place, + dt_lib_module_t* self) { dt_lib_import_t *d = (dt_lib_import_t *)self->data; @@ -1439,8 +1743,10 @@ basename = g_strdup(place); } #endif - gtk_list_store_insert_with_values(d->placesModel, &iter, -1, DT_PLACES_NAME, basename, - DT_PLACES_PATH, (char *)place, DT_PLACES_TYPE, DT_TYPE_CUSTOM, -1); + gtk_list_store_insert_with_values(d->placesModel, &iter, -1, + DT_PLACES_NAME, basename, + DT_PLACES_PATH, (char *)place, + DT_PLACES_TYPE, DT_TYPE_CUSTOM, -1); g_free(basename); } @@ -1454,7 +1760,8 @@ _escape_place_name_comma(place); const char *current_places = dt_conf_get_string_const("ui_last/import_custom_places"); int type = 0; - gtk_tree_model_get(GTK_TREE_MODEL(d->placesModel), &iter, DT_PLACES_TYPE, &type, -1); + gtk_tree_model_get(GTK_TREE_MODEL(d->placesModel), &iter, + DT_PLACES_TYPE, &type, -1); if(type == DT_TYPE_HOME) dt_conf_set_bool("ui_last/import_dialog_show_home", FALSE); @@ -1497,16 +1804,19 @@ return places; } -static void _lib_import_select_folder(GtkWidget *widget, dt_lib_module_t *self) +static void _lib_import_select_folder(GtkWidget *widget, + dt_lib_module_t *self) { dt_lib_import_t *d = (dt_lib_import_t *)self->data; GtkWidget *win = dt_ui_main_window(darktable.gui->ui); GtkFileChooserNative *filechooser = gtk_file_chooser_native_new( - _("select directory"), GTK_WINDOW(win), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, _("_open"), _("_cancel")); + _("select directory"), GTK_WINDOW(win), + GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, _("_open"), _("_cancel")); // run the native dialog - dt_conf_get_folder_to_file_chooser("ui_last/import_last_place", GTK_FILE_CHOOSER(filechooser)); + dt_conf_get_folder_to_file_chooser("ui_last/import_last_place", + GTK_FILE_CHOOSER(filechooser)); if(gtk_native_dialog_run(GTK_NATIVE_DIALOG(filechooser)) == GTK_RESPONSE_ACCEPT) { char *dirname = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(filechooser)); @@ -1526,9 +1836,11 @@ { dt_lib_import_t *d = (dt_lib_import_t *)self->data; d->from.store = gtk_list_store_new(DT_IMPORT_NUM_COLS, G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, - G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, + G_TYPE_STRING, G_TYPE_STRING, + G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT64); - d->from.eye = dt_draw_paint_to_pixbuf(GTK_WIDGET(d->from.dialog), 13, 0, dtgtk_cairo_paint_eye); + d->from.eye = dt_draw_paint_to_pixbuf(GTK_WIDGET(d->from.dialog), 13, 0, + dtgtk_cairo_paint_eye); // Create the treview with list model data store d->from.w = gtk_scrolled_window_new(NULL, NULL); @@ -1538,8 +1850,9 @@ gtk_container_add(GTK_CONTAINER(d->from.w), GTK_WIDGET(d->from.treeview)); GtkCellRenderer *renderer = gtk_cell_renderer_text_new(); - GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes("✔", renderer, "text", - DT_IMPORT_UI_EXISTS, NULL); + GtkTreeViewColumn *column = + gtk_tree_view_column_new_with_attributes("✔", renderer, "text", + DT_IMPORT_UI_EXISTS, NULL); g_object_set(renderer, "xalign", 0.5, NULL); gtk_tree_view_append_column(d->from.treeview, column); gtk_tree_view_column_set_alignment(column, 0.5); @@ -1564,7 +1877,9 @@ gtk_tree_view_append_column(d->from.treeview, column); gtk_tree_view_column_set_sort_column_id(column, DT_IMPORT_DATETIME); header = gtk_tree_view_column_get_button(column); - gtk_widget_set_tooltip_text(header, _("file 'modified date/time', may be different from 'Exif date/time'")); + gtk_widget_set_tooltip_text + (header, + _("file 'modified date/time', may be different from 'Exif date/time'")); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(d->from.store), DT_IMPORT_DATETIME, GTK_SORT_ASCENDING); @@ -1590,7 +1905,8 @@ GtkTreeSelection *selection = gtk_tree_view_get_selection(d->from.treeview); gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE); - g_signal_connect(G_OBJECT(selection), "changed", G_CALLBACK(_import_from_selection_changed), self); + g_signal_connect(G_OBJECT(selection), "changed", + G_CALLBACK(_import_from_selection_changed), self); gtk_tree_view_set_model(d->from.treeview, GTK_TREE_MODEL(d->from.store)); gtk_tree_view_set_headers_visible(d->from.treeview, TRUE); @@ -1598,7 +1914,8 @@ gtk_box_pack_start(GTK_BOX(rbox), GTK_WIDGET(d->from.w), TRUE, TRUE, 0); } -static void _browse_basedir_clicked(GtkWidget *widget, GtkEntry *basedir) +static void _browse_basedir_clicked(GtkWidget *widget, + GtkEntry *basedir) { GtkWidget *topwindow = gtk_widget_get_toplevel(widget); if(!GTK_IS_WINDOW(topwindow)) @@ -1607,7 +1924,8 @@ } GtkFileChooserNative *filechooser = gtk_file_chooser_native_new( - _("select directory"), GTK_WINDOW(topwindow), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, _("_open"), _("_cancel")); + _("select directory"), GTK_WINDOW(topwindow), + GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, _("_open"), _("_cancel")); gchar *old = g_strdup(gtk_entry_get_text(basedir)); char *c = g_strstr_len(old, -1, "$"); @@ -1631,7 +1949,8 @@ g_object_unref(filechooser); } -static void _set_expander_content(GtkWidget *rbox, dt_lib_module_t* self) +static void _set_expander_content(GtkWidget *rbox, + dt_lib_module_t* self) { dt_lib_import_t *d = (dt_lib_import_t *)self->data; // separator @@ -1651,8 +1970,10 @@ // import patterns grid = GTK_GRID(gtk_grid_new()); gtk_grid_set_column_spacing(grid, DT_PIXEL_APPLY_DPI(5)); - d->from.datetime = dt_gui_preferences_string(grid, "ui_last/import_datetime_override", 0, line++); - GtkWidget *basedir = dt_gui_preferences_string(grid, "session/base_directory_pattern", 0, line++); + d->from.datetime = dt_gui_preferences_string + (grid, "ui_last/import_datetime_override", 0, line++); + GtkWidget *basedir = dt_gui_preferences_string + (grid, "session/base_directory_pattern", 0, line++); GtkWidget *hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); g_object_ref(basedir); @@ -1664,11 +1985,14 @@ gtk_widget_set_tooltip_text(browsedir, _("select directory")); gtk_box_pack_start(GTK_BOX(hbox), browsedir, FALSE, FALSE, 0); - g_signal_connect(G_OBJECT(browsedir), "clicked", G_CALLBACK(_browse_basedir_clicked), basedir); - gtk_grid_attach_next_to(grid, hbox, gtk_grid_get_child_at(grid, 0, line - 1), GTK_POS_RIGHT, 1, 1); + g_signal_connect(G_OBJECT(browsedir), "clicked", G_CALLBACK(_browse_basedir_clicked), + basedir); + gtk_grid_attach_next_to(grid, hbox, gtk_grid_get_child_at(grid, 0, line - 1), + GTK_POS_RIGHT, 1, 1); dt_gui_preferences_string(grid, "session/sub_directory_pattern", 0, line++); - GtkWidget *usefn = dt_gui_preferences_bool(grid, "session/use_filename", 0, line++, FALSE); + GtkWidget *usefn = dt_gui_preferences_bool(grid, "session/use_filename", 0, + line++, FALSE); d->from.fn_line = line; dt_gui_preferences_string(grid, "session/filename_pattern", 0, line++); gtk_box_pack_start(GTK_BOX(d->from.cs.container), GTK_WIDGET(grid), FALSE, FALSE, 0); @@ -1698,10 +2022,12 @@ GtkWidget *win = dt_ui_main_window(darktable.gui->ui); d->from.dialog = gtk_dialog_new_with_buttons - ( _(_import_text[d->import_case]), NULL, GTK_DIALOG_MODAL, - _("cancel"), GTK_RESPONSE_CANCEL, - _(_import_text[d->import_case]), GTK_RESPONSE_ACCEPT, - NULL); + (_(_import_text[d->import_case]), NULL, + GTK_DIALOG_MODAL, + _("_cancel"), GTK_RESPONSE_CANCEL, + _(_import_text[d->import_case]), GTK_RESPONSE_ACCEPT, + NULL); + gtk_dialog_set_default_response(GTK_DIALOG(d->from.dialog), GTK_RESPONSE_ACCEPT); dt_gui_dialog_add_help(GTK_DIALOG(d->from.dialog), "import_dialog"); #ifdef GDK_WINDOWING_QUARTZ @@ -1712,31 +2038,34 @@ dt_conf_get_int("ui_last/import_dialog_height")); gtk_window_set_transient_for(GTK_WINDOW(d->from.dialog), GTK_WINDOW(win)); GtkWidget *content = gtk_dialog_get_content_area(GTK_DIALOG(d->from.dialog)); - g_signal_connect(d->from.dialog, "check-resize", G_CALLBACK(_resize_dialog), self); - g_signal_connect(d->from.dialog, "key-press-event", G_CALLBACK(dt_handle_dialog_enter), self); + g_signal_connect(d->from.dialog, "check-resize", + G_CALLBACK(_resize_dialog), self); + g_signal_connect(d->from.dialog, "key-press-event", + G_CALLBACK(dt_handle_dialog_enter), self); // images numbers in action-box GtkWidget *box = dt_gui_container_first_child(GTK_CONTAINER(d->from.dialog)); box = dt_gui_container_first_child(GTK_CONTAINER(box)); // action-box - GtkWidget *select_all = gtk_button_new_with_label(_("select all")); - gtk_box_pack_start(GTK_BOX(box), select_all, FALSE, FALSE, 2); - g_signal_connect(select_all, "clicked", G_CALLBACK(_do_select_all_clicked), self); - - GtkWidget *select_none = gtk_button_new_with_label(_("select none")); - gtk_box_pack_start(GTK_BOX(box), select_none, FALSE, FALSE, 2); - g_signal_connect(select_none, "clicked", G_CALLBACK(_do_select_none_clicked), self); - - GtkWidget *select_new = gtk_button_new_with_label(_("select new")); - gtk_box_pack_start(GTK_BOX(box), select_new, FALSE, FALSE, 2); - g_signal_connect(select_new, "clicked", G_CALLBACK(_do_select_new_clicked), self); + d->select_all = gtk_button_new_with_label(_("select all")); + gtk_box_pack_start(GTK_BOX(box), d->select_all, FALSE, FALSE, 2); + g_signal_connect(d->select_all, "clicked", G_CALLBACK(_do_select_all_clicked), self); + + d->select_none = gtk_button_new_with_label(_("select none")); + gtk_box_pack_start(GTK_BOX(box), d->select_none, FALSE, FALSE, 2); + g_signal_connect(d->select_none, "clicked", G_CALLBACK(_do_select_none_clicked), self); + + d->select_new = gtk_button_new_with_label(_("select new")); + gtk_box_pack_start(GTK_BOX(box), d->select_new, FALSE, FALSE, 2); + g_signal_connect(d->select_new, "clicked", G_CALLBACK(_do_select_new_clicked), self); d->from.img_nb = gtk_label_new(""); gtk_widget_set_halign(d->from.img_nb, GTK_ALIGN_END); gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(d->from.img_nb), TRUE, TRUE, 0); GtkWidget *paned = gtk_paned_new(GTK_ORIENTATION_HORIZONTAL); - gtk_paned_set_position(GTK_PANED(paned), dt_conf_get_int("ui_last/import_dialog_paned_pos")); + gtk_paned_set_position(GTK_PANED(paned), + dt_conf_get_int("ui_last/import_dialog_paned_pos")); // right pane GtkWidget *rbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 8); @@ -1748,19 +2077,25 @@ GtkGrid *grid = GTK_GRID(gtk_grid_new()); gtk_grid_set_column_spacing(grid, DT_PIXEL_APPLY_DPI(5)); - d->import_new = dt_gui_preferences_bool(grid, "ui_last/import_select_new", col++, line, TRUE); + d->import_new = dt_gui_preferences_bool(grid, "ui_last/import_select_new", col++, + line, TRUE); gtk_widget_set_hexpand(gtk_grid_get_child_at(grid, col++, line), TRUE); - g_signal_connect(G_OBJECT(d->import_new), "toggled", G_CALLBACK(_import_new_toggled), self); + g_signal_connect(G_OBJECT(d->import_new), "toggled", + G_CALLBACK(_import_new_toggled), self); if(d->import_case != DT_IMPORT_CAMERA) { - d->recursive = dt_gui_preferences_bool(grid, "ui_last/import_recursive", col++, line, TRUE); + d->recursive = dt_gui_preferences_bool(grid, "ui_last/import_recursive", col++, + line, TRUE); gtk_widget_set_hexpand(gtk_grid_get_child_at(grid, col++, line), TRUE); - g_signal_connect(G_OBJECT(d->recursive), "toggled", G_CALLBACK(_recursive_toggled), self); + g_signal_connect(G_OBJECT(d->recursive), "toggled", + G_CALLBACK(_recursive_toggled), self); } - GtkWidget *ignore_jpegs = dt_gui_preferences_bool(grid, "ui_last/import_ignore_jpegs", col++, line, TRUE); + GtkWidget *ignore_nonraws = + dt_gui_preferences_bool(grid, "ui_last/import_ignore_nonraws", col++, line, TRUE); gtk_widget_set_hexpand(gtk_grid_get_child_at(grid, col++, line++), TRUE); - g_signal_connect(G_OBJECT(ignore_jpegs), "toggled", G_CALLBACK(_ignore_jpegs_toggled), self); + g_signal_connect(G_OBJECT(ignore_nonraws), "toggled", + G_CALLBACK(_ignore_nonraws_toggled), self); gtk_box_pack_start(GTK_BOX(rbox), GTK_WIDGET(grid), FALSE, FALSE, 8); // files list @@ -1770,7 +2105,8 @@ #ifdef HAVE_GPHOTO2 if(d->import_case == DT_IMPORT_CAMERA) { - d->from.info = dt_ui_label_new(_("please wait while prefetching the list of images from camera...")); + d->from.info = dt_ui_label_new + (_("please wait while prefetching the list of images from camera...")); gtk_label_set_single_line_mode(GTK_LABEL(d->from.info), FALSE); gtk_box_pack_start(GTK_BOX(rbox), d->from.info, FALSE, FALSE, 0); } @@ -1784,8 +2120,10 @@ GtkWidget *places_paned = gtk_paned_new(GTK_ORIENTATION_VERTICAL); - gtk_paned_set_position(GTK_PANED(places_paned), dt_conf_get_int("ui_last/import_dialog_paned_places_pos")); - g_signal_connect(places_paned, "notify::position", G_CALLBACK(_paned_places_position_changed), self); + gtk_paned_set_position(GTK_PANED(places_paned), + dt_conf_get_int("ui_last/import_dialog_paned_places_pos")); + g_signal_connect(places_paned, "notify::position", + G_CALLBACK(_paned_places_position_changed), self); _set_places_list(places_paned, self); _set_folders_list(places_paned, self); @@ -1806,13 +2144,17 @@ { gtk_widget_show_all(d->from.dialog); } + + // make sure no buttons focused, so default button is marked + gtk_window_set_focus(GTK_WINDOW(d->from.dialog), NULL); } static void _import_set_collection(const char *dirname) { if(dirname) { - dt_collection_properties_t property = dt_conf_get_int("plugins/lighttable/collect/item0"); + dt_collection_properties_t property = + dt_conf_get_int("plugins/lighttable/collect/item0"); if(property != DT_COLLECTION_PROP_FOLDERS && property != DT_COLLECTION_PROP_FILMROLL) @@ -1825,7 +2167,8 @@ dt_conf_set_int("plugins/lighttable/collect/num_rules", 1); dt_conf_set_int("plugins/lighttable/collect/item0", property); dt_conf_set_string("plugins/lighttable/collect/string0", dirname); - dt_collection_update_query(darktable.collection, DT_COLLECTION_CHANGE_NEW_QUERY, DT_COLLECTION_PROP_UNDEF, + dt_collection_update_query(darktable.collection, + DT_COLLECTION_CHANGE_NEW_QUERY, DT_COLLECTION_PROP_UNDEF, NULL); } } @@ -1846,13 +2189,14 @@ gtk_tree_selection_unselect_all(selection); } -static void _do_select_new(dt_lib_module_t* self) +static uint32_t _do_select_new(dt_lib_module_t* self) { dt_lib_import_t *d = (dt_lib_import_t *)self->data; GtkTreeIter iter; GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(d->from.treeview)); GtkTreeSelection *selection = gtk_tree_view_get_selection(d->from.treeview); + uint32_t count = 0; gtk_tree_selection_unselect_all(selection); @@ -1863,10 +2207,15 @@ gchar *sel = NULL; gtk_tree_model_get(model, &iter, DT_IMPORT_UI_EXISTS, &sel, -1); if(sel && !strcmp(sel, " ")) + { gtk_tree_selection_select_iter(selection, &iter); + count++; + } } while(gtk_tree_model_iter_next(model, &iter)); } + + return count; } static void _import_from_dialog_run(dt_lib_module_t* self) @@ -1881,19 +2230,20 @@ GtkTreeModel *model = GTK_TREE_MODEL(d->from.store); GtkTreeSelection *selection = gtk_tree_view_get_selection(d->from.treeview); GList *paths = gtk_tree_selection_get_selected_rows(selection, &model); - char *folder = (d->import_case == DT_IMPORT_CAMERA) ? g_strdup("") : - dt_conf_get_string("ui_last/import_last_directory"); + char *folder = (d->import_case == DT_IMPORT_CAMERA) + ? g_strdup("") + : dt_conf_get_path("ui_last/import_last_directory"); + for(GList *path = paths; path; path = g_list_next(path)) { GtkTreeIter iter; gtk_tree_model_get_iter(model, &iter, (GtkTreePath *)path->data); - char *filename; - gtk_tree_model_get(model, &iter, DT_IMPORT_FILENAME, &filename, -1); - char *fullname = g_build_filename(folder, filename, NULL); + char *fullname; + gtk_tree_model_get(model, &iter, DT_IMPORT_FILENAME, &fullname, -1); imgs = g_list_prepend(imgs, fullname); - g_free(filename); } g_list_free_full(paths, (GDestroyNotify)gtk_tree_path_free); + if(imgs) { const gboolean unique = !imgs->next; @@ -1902,7 +2252,9 @@ if(d->import_case != DT_IMPORT_INPLACE) { const char *entry = gtk_entry_get_text(GTK_ENTRY(d->from.datetime)); - if(entry[0] && !dt_datetime_entry_to_exif(datetime_override, sizeof(datetime_override), entry)) + if(entry[0] + && !dt_datetime_entry_to_exif(datetime_override, + sizeof(datetime_override), entry)) { dt_control_log(_("invalid override date/time format")); break; @@ -1925,7 +2277,7 @@ folder = dt_util_dstrcat(folder, "%%"); _import_set_collection(folder); const dt_imgid_t imgid = dt_conf_get_int("ui_last/import_last_image"); - if(unique && imgid > 0) + if(unique && dt_is_valid_imgid(imgid)) { dt_control_set_mouse_over_id(imgid); dt_ctl_switch_mode_to("darkroom"); @@ -1933,13 +2285,16 @@ } } gtk_tree_selection_unselect_all(selection); - if((d->import_case == DT_IMPORT_INPLACE) || !dt_conf_get_bool("ui_last/import_keep_open")) + if((d->import_case == DT_IMPORT_INPLACE) + || !dt_conf_get_bool("ui_last/import_keep_open")) { g_free(folder); break; } g_free(folder); } + + _import_cancel(self); } static void _import_from_dialog_free(dt_lib_module_t* self) @@ -1960,7 +2315,28 @@ static void _lib_import_from_callback(GtkWidget *widget, dt_lib_module_t* self) { dt_lib_import_t *d = (dt_lib_import_t *)self->data; - d->import_case = (widget == GTK_WIDGET(d->import_inplace)) ? DT_IMPORT_INPLACE : DT_IMPORT_COPY; + d->import_case = (widget == GTK_WIDGET(d->import_inplace)) + ? DT_IMPORT_INPLACE : DT_IMPORT_COPY; + + if(d->import_case == DT_IMPORT_COPY) + { + const gboolean setup = dt_conf_get_bool("setup_import_directory"); + if(setup == FALSE) + { + const gboolean understood = dt_gui_show_standalone_yes_no_dialog + (_("import base directory"), + _("before copying images to the darktable base directory make sure it is defined as you prefer." + "\nfurther information can be found in the darktable manual." + "\n\ninspect darktable preferences -> import." + "\ncheck and possibly correct the 'base directory naming pattern'"), + _("_come back & check"), _("_understood & done")); + if(understood) + dt_conf_set_bool("setup_import_directory", TRUE); + else + return; + } + } + #ifdef HAVE_GPHOTO2 // on some systems, GPhoto2 is somewhat prone to crashing while // scanning for new devices; this manifests as a crash during long @@ -2019,17 +2395,20 @@ // add import buttons GtkWidget *hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - GtkWidget *widget = dt_action_button_new(self, N_("add to library..."), _lib_import_from_callback, self, + GtkWidget *widget = dt_action_button_new(self, N_("add to library..."), + _lib_import_from_callback, self, _("add existing images to the library"), 0, 0); d->import_inplace = GTK_BUTTON(widget); gtk_widget_set_can_focus(widget, TRUE); gtk_widget_set_receives_default(widget, TRUE); gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0); - widget = dt_action_button_new(self, N_("copy & import..."), _lib_import_from_callback, self, - _("copy and optionally rename images before adding them to the library" - "\npatterns can be defined to rename the images and specify the destination folders"), - GDK_KEY_i, GDK_CONTROL_MASK | GDK_SHIFT_MASK); + widget = dt_action_button_new + (self, N_("copy & import..."), + _lib_import_from_callback, self, + _("copy and optionally rename images before adding them to the library" + "\npatterns can be defined to rename the images and specify the destination folders"), + GDK_KEY_i, GDK_CONTROL_MASK | GDK_SHIFT_MASK); d->import_copy = GTK_BUTTON(widget); gtk_widget_set_can_focus(widget, TRUE); gtk_widget_set_receives_default(widget, TRUE); @@ -2044,20 +2423,24 @@ _lib_import_ui_devices_update(self); - DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_CAMERA_DETECTED, G_CALLBACK(_camera_detected), - self); + DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, + DT_SIGNAL_CAMERA_DETECTED, G_CALLBACK(_camera_detected), + self); #endif // collapsible section - _expander_create(&d->cs, GTK_BOX(self->widget), _("parameters"), "ui_last/expander_import", self); + _expander_create(&d->cs, GTK_BOX(self->widget), + _("parameters"), "ui_last/expander_import", self); GtkGrid *grid = GTK_GRID(gtk_grid_new()); gtk_grid_set_column_spacing(grid, DT_PIXEL_APPLY_DPI(5)); guint line = 0; - d->ignore_exif = dt_gui_preferences_bool(grid, "ui_last/ignore_exif_rating", 0, line++, FALSE); + d->ignore_exif = dt_gui_preferences_bool(grid, "ui_last/ignore_exif_rating", 0, + line++, FALSE); d->rating = dt_gui_preferences_int(grid, "ui_last/import_initial_rating", 0, line++); - d->apply_metadata = dt_gui_preferences_bool(grid, "ui_last/import_apply_metadata", 0, line++, FALSE); + d->apply_metadata = dt_gui_preferences_bool(grid, "ui_last/import_apply_metadata", 0, + line++, FALSE); d->metadata.apply_metadata = d->apply_metadata; gtk_box_pack_start(GTK_BOX(d->cs.container), GTK_WIDGET(grid), FALSE, FALSE, 0); d->metadata.box = GTK_WIDGET(d->cs.container); @@ -2081,7 +2464,8 @@ { dt_lib_import_t *d = (dt_lib_import_t *)self->data; #ifdef HAVE_GPHOTO2 - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(_camera_detected), self); + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, + G_CALLBACK(_camera_detected), self); #endif #ifdef USE_LUA detach_lua_widgets(d->extra_lua_widgets); @@ -2098,7 +2482,7 @@ char *name; int type; } _pref[] = { - {"ui_last/import_ignore_jpegs", "ignore_jpegs", DT_BOOL}, + {"ui_last/import_ignore_nonraws", "ignore_nonraws", DT_BOOL}, {"ui_last/import_apply_metadata", "apply_metadata", DT_BOOL}, {"ui_last/import_recursive", "recursive", DT_BOOL}, {"ui_last/ignore_exif_rating", "ignore_exif_rating", DT_BOOL}, @@ -2174,11 +2558,13 @@ { if(_pref[i].type == DT_BOOL) { - pref = dt_util_dstrcat(pref, "%s=%d,", _pref[i].name, dt_conf_get_bool(_pref[i].key) ? 1 : 0); + pref = dt_util_dstrcat(pref, "%s=%d,", _pref[i].name, + dt_conf_get_bool(_pref[i].key) ? 1 : 0); } else if(_pref[i].type == DT_INT) { - pref = dt_util_dstrcat(pref, "%s=%d,", _pref[i].name, dt_conf_get_int(_pref[i].key)); + pref = dt_util_dstrcat(pref, "%s=%d,", _pref[i].name, + dt_conf_get_int(_pref[i].key)); } else if(_pref[i].type == DT_STRING) { @@ -2199,7 +2585,8 @@ setting = g_strdup_printf("ui_last/import_last_%s", metadata_name); const char *metadata_value = dt_conf_get_string_const(setting); - pref = dt_util_dstrcat(pref, "%s=%d%s,", metadata_name, imported ? 1 : 0, metadata_value); + pref = dt_util_dstrcat(pref, "%s=%d%s,", metadata_name, + imported ? 1 : 0, metadata_value); g_free(setting); } } @@ -2207,12 +2594,14 @@ const gboolean imported = dt_conf_get_bool("ui_last/import_last_tags_imported"); const char *tags_value = dt_conf_get_string_const("ui_last/import_last_tags"); pref = dt_util_dstrcat(pref, "%s=%d%s,", "tags", imported ? 1 : 0, tags_value); - if(pref && *pref) pref[strlen(pref) - 1] = '\0'; + if(pref && *pref) + pref[strlen(pref) - 1] = '\0'; return pref; } -static void _apply_preferences(const char *pref, dt_lib_module_t *self) +static void _apply_preferences(const char *pref, + dt_lib_module_t *self) { if(!pref || !pref[0]) return; _set_default_preferences(self); @@ -2248,7 +2637,8 @@ // metadata const int j = dt_metadata_get_keyid_by_name(metadata_name); if(j == -1) continue; - gchar *setting = g_strdup_printf("plugins/lighttable/metadata/%s_flag", metadata_name); + gchar *setting = g_strdup_printf("plugins/lighttable/metadata/%s_flag", + metadata_name); const uint32_t flag = (dt_conf_get_int(setting) & ~DT_METADATA_FLAG_IMPORTED) | ((value[0] == '1') ? DT_METADATA_FLAG_IMPORTED : 0); dt_conf_set_int(setting, flag); @@ -2293,7 +2683,8 @@ { } -void *get_params(dt_lib_module_t *self, int *size) +void *get_params(dt_lib_module_t *self, + int *size) { *size = 0; char *params = _get_current_configuration(self); @@ -2302,7 +2693,9 @@ return params; } -int set_params(dt_lib_module_t *self, const void *params, int size) +int set_params(dt_lib_module_t *self, + const void *params, + int size) { if(!params) return 1; _apply_preferences(params, self); diff -Nru darktable-4.4.2/src/libs/ioporder.c darktable-4.6.1/src/libs/ioporder.c --- darktable-4.4.2/src/libs/ioporder.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/ioporder.c 2024-02-16 17:31:09.000000000 +0000 @@ -120,9 +120,7 @@ static void _image_loaded_callback(gpointer instance, gpointer user_data) { // only in darkroom, so let's avoid any update when in lighttable - const dt_view_t *cv = dt_view_manager_get_current_view(darktable.view_manager); - - if(cv->view(cv) == DT_VIEW_DARKROOM) + if(dt_view_get_current() == DT_VIEW_DARKROOM) { dt_lib_module_t *self = (dt_lib_module_t *)user_data; update(self); diff -Nru darktable-4.4.2/src/libs/lib.h darktable-4.6.1/src/libs/lib.h --- darktable-4.4.2/src/libs/lib.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/lib.h 2024-02-16 17:31:09.000000000 +0000 @@ -87,6 +87,11 @@ { struct dt_lib_module_t *module; } navigation; + + struct + { + gboolean enabled; + } snapshots; } proxy; } dt_lib_t; diff -Nru darktable-4.4.2/src/libs/location.c darktable-4.6.1/src/libs/location.c --- darktable-4.4.2/src/libs/location.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/location.c 2024-02-16 17:31:09.000000000 +0000 @@ -351,7 +351,13 @@ clear_search(lib); /* build the query url */ - const char *search_url = dt_conf_get_string_const("plugins/map/geotagging_search_url"); + const char *conf_name = "plugins/map/geotagging_search_url"; + const char *search_url = dt_conf_get_string_const(conf_name); + if(!g_strcmp0(search_url, "https://nominatim.openstreetmap.org/search/%s?format=xml&limit=%d&polygon_text=1")) + { + dt_conf_set_string(conf_name, NULL); // reset to new default + search_url = dt_conf_get_string_const(conf_name); + } query = g_strdup_printf(search_url, text, LIMIT_RESULT); /* load url */ curl = curl_easy_init(); diff -Nru darktable-4.4.2/src/libs/map_settings.c darktable-4.6.1/src/libs/map_settings.c --- darktable-4.4.2/src/libs/map_settings.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/map_settings.c 2024-02-16 17:31:09.000000000 +0000 @@ -75,64 +75,37 @@ static void _map_source_changed(GtkWidget *widget, gpointer data) { - GtkTreeIter iter; - - if(gtk_combo_box_get_active_iter(GTK_COMBO_BOX(widget), &iter) == TRUE) - { - GtkTreeModel *model = gtk_combo_box_get_model(GTK_COMBO_BOX(widget)); - GValue value = { - 0, - }; - OsmGpsMapSource_t map_source; - - gtk_tree_model_get_value(model, &iter, 1, &value); - map_source = g_value_get_int(&value); - g_value_unset(&value); - dt_view_map_set_map_source(darktable.view_manager, map_source); - } + dt_view_map_set_map_source(darktable.view_manager, + GPOINTER_TO_INT(dt_bauhaus_combobox_get_data(widget))); } -static void _thumbnail_change(dt_action_t *action); - void gui_init(dt_lib_module_t *self) { dt_lib_map_settings_t *d = (dt_lib_map_settings_t *)malloc(sizeof(dt_lib_map_settings_t)); self->data = d; self->widget = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); - GtkBox *hbox; - GtkWidget *label; - - hbox = GTK_BOX(gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0)); - - label = dt_ui_label_new(_("map source")); - gtk_box_pack_start(hbox, label, TRUE, TRUE, 0); - GtkListStore *model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT); - d->map_source_dropdown = gtk_combo_box_new_with_model(GTK_TREE_MODEL(model)); + d->map_source_dropdown = dt_bauhaus_combobox_new_action(DT_ACTION(self)); + dt_bauhaus_widget_set_label(d->map_source_dropdown, NULL, N_("map source")); gtk_widget_set_tooltip_text(d->map_source_dropdown, _("select the source of the map. some entries might not work")); - GtkCellRenderer *renderer = gtk_cell_renderer_text_new(); - gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(d->map_source_dropdown), renderer, FALSE); - gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(d->map_source_dropdown), renderer, "text", 0, NULL); const char *map_source = dt_conf_get_string_const("plugins/map/map_source"); int selection = OSM_GPS_MAP_SOURCE_OPENSTREETMAP - 1, entry = 0; - GtkTreeIter iter; for(int i = 1; i < OSM_GPS_MAP_SOURCE_LAST; i++) { if(osm_gps_map_source_is_valid(i)) { const gchar *name = osm_gps_map_source_get_friendly_name(i); - gtk_list_store_append(model, &iter); - gtk_list_store_set(model, &iter, 0, name, 1, i, -1); + dt_bauhaus_combobox_add_full(d->map_source_dropdown, name, + DT_BAUHAUS_COMBOBOX_ALIGN_RIGHT, + GINT_TO_POINTER(i), NULL, TRUE); if(!g_strcmp0(name, map_source)) selection = entry; entry++; } } - gtk_combo_box_set_active(GTK_COMBO_BOX(d->map_source_dropdown), selection); - gtk_box_pack_start(hbox, d->map_source_dropdown, TRUE, TRUE, 0); - g_signal_connect(G_OBJECT(d->map_source_dropdown), "changed", G_CALLBACK(_map_source_changed), NULL); - g_object_unref(model); - gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(hbox), TRUE, TRUE, 0); + dt_bauhaus_combobox_set(d->map_source_dropdown, selection); + g_signal_connect(G_OBJECT(d->map_source_dropdown), "value-changed", G_CALLBACK(_map_source_changed), NULL); + gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(d->map_source_dropdown), FALSE, TRUE, 0); GtkGrid *grid = GTK_GRID(gtk_grid_new()); gtk_grid_set_column_spacing(grid, DT_PIXEL_APPLY_DPI(5)); @@ -152,11 +125,14 @@ g_signal_connect(G_OBJECT(d->epsilon_factor), "value-changed", G_CALLBACK(_parameter_changed), self); d->min_images = dt_gui_preferences_int(grid, "plugins/map/min_images_per_group", 0, line++); g_signal_connect(G_OBJECT(d->min_images), "value-changed", G_CALLBACK(_parameter_changed), self); - d->images_thumb = dt_gui_preferences_enum(grid, "plugins/map/images_thumbnail", 0, line++); - g_signal_connect(G_OBJECT(d->images_thumb), "changed", G_CALLBACK(_parameter_changed), self); - gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(grid), FALSE, FALSE, 0); - dt_action_register(DT_ACTION(self), N_("thumbnail display"), _thumbnail_change, GDK_KEY_s, GDK_SHIFT_MASK); + gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(grid), FALSE, TRUE, 0); + + d->images_thumb = dt_gui_preferences_enum(DT_ACTION(self), "plugins/map/images_thumbnail"); + dt_action_t *ac = dt_bauhaus_widget_set_label(d->images_thumb, NULL, dt_confgen_get_label("plugins/map/images_thumbnail")); + dt_shortcut_register(ac, 0, 0, GDK_KEY_s, GDK_SHIFT_MASK); + g_signal_connect(G_OBJECT(d->images_thumb), "value-changed", G_CALLBACK(_parameter_changed), self); + gtk_box_pack_start(GTK_BOX(self->widget), d->images_thumb, FALSE, TRUE, 0); } void gui_cleanup(dt_lib_module_t *self) @@ -174,21 +150,7 @@ dt_gui_preferences_int_reset(d->max_images_entry); dt_gui_preferences_int_reset(d->epsilon_factor); dt_gui_preferences_int_reset(d->min_images); - dt_gui_preferences_enum_reset(d->images_thumb); -} - -static void _thumbnail_change(dt_action_t *action) -{ - dt_lib_map_settings_t *d = dt_action_lib(action)->data;; - - const char *str = dt_conf_get_string_const("plugins/map/images_thumbnail"); - if(!g_strcmp0(str, "thumbnail")) - dt_conf_set_string("plugins/map/images_thumbnail", "count"); - else if(!g_strcmp0(str, "count")) - dt_conf_set_string("plugins/map/images_thumbnail", "none"); - else - dt_conf_set_string("plugins/map/images_thumbnail", "thumbnail"); - dt_gui_preferences_enum_update(d->images_thumb); + dt_bauhaus_widget_reset(d->images_thumb); } // clang-format off diff -Nru darktable-4.4.2/src/libs/masks.c darktable-4.6.1/src/libs/masks.c --- darktable-4.4.2/src/libs/masks.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/masks.c 2024-02-16 17:31:09.000000000 +0000 @@ -29,6 +29,7 @@ #include "gui/accelerators.h" #include "gui/draw.h" #include "gui/gtk.h" +#include "gui/preferences.h" #include "gui/styles.h" #include "libs/lib.h" #include "libs/lib_api.h" @@ -110,19 +111,6 @@ [ DT_MASKS_PROPERTY_COMPRESSION] = { N_("compression"), "%", 0.0001, 1, TRUE }, }; -static const gchar *_pressure_sensitivity_names[] = { N_("off"), - N_("hardness (relative)"), - N_("hardness (absolute)"), - N_("opacity (relative)"), - N_("opacity (absolute)"), - N_("brush size (relative)"), - NULL }; - -static const gchar *_brush_smoothing_names[] = { N_("low"), - N_("medium"), - N_("high"), - NULL }; - gboolean _timeout_show_all_feathers(gpointer userdata) { dt_masks_form_gui_t *gui = userdata; @@ -271,18 +259,6 @@ gtk_widget_set_visible(self->smoothing, drawing_brush); } -static void _pressure_changed(GtkWidget *widget, gpointer user_data) -{ - dt_conf_set_string("pressure_sensitivity", - _pressure_sensitivity_names[dt_bauhaus_combobox_get(widget)]); -} - -static void _smoothing_changed(GtkWidget *widget, gpointer user_data) -{ - dt_conf_set_string("brush_smoothing", - _brush_smoothing_names[dt_bauhaus_combobox_get(widget)]); -} - static void _lib_masks_get_values(GtkTreeModel *model, GtkTreeIter *iter, dt_iop_module_t **module, @@ -544,6 +520,21 @@ } } +static void _add_tree_operation(GtkMenuShell *menu, + gchar *label, + dt_masks_state_t state, + dt_masks_state_t selected_states, + gboolean sensitive) +{ + GtkWidget *item = gtk_check_menu_item_new_with_label(label); + gtk_widget_set_sensitive(item, sensitive); + if(selected_states & state) + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), TRUE); + g_signal_connect(item, "activate", (GCallback)_tree_operation, + GINT_TO_POINTER(state)); + gtk_menu_shell_append(menu, item); +} + static void _swap_last_secondlast_item_visibility(dt_lib_masks_t *lm, GtkTreeIter *iter, const dt_mask_id_t secondlast_id, @@ -933,6 +924,7 @@ gboolean is_first_row = FALSE; gboolean is_last_row = FALSE; + dt_masks_state_t selected_states = DT_MASKS_STATE_NONE; int grpid = NO_MASKID; int depth = 0; @@ -967,6 +959,30 @@ } } + for(const GList *items_iter = selected; + items_iter; + items_iter = g_list_next(items_iter)) + { + GtkTreePath *item = (GtkTreePath *)items_iter->data; + + if(gtk_tree_model_get_iter(model, &iter, item)) + { + dt_mask_id_t grid = INVALID_MASKID; + dt_mask_id_t id = INVALID_MASKID; + _lib_masks_get_values(model, &iter, NULL, &grid, &id); + + dt_masks_form_t *grp2 = dt_masks_get_from_id(darktable.develop, grid); + if(grp2 && (grp2->type & DT_MASKS_GROUP)) + { + for(const GList *pts = grp2->points; pts; pts = g_list_next(pts)) + { + dt_masks_point_group_t *pt = (dt_masks_point_group_t *)pts->data; + if(pt->formid == id) selected_states |= pt->state; + } + } + } + } + g_list_free_full(selected, (GDestroyNotify)gtk_tree_path_free); } @@ -1111,42 +1127,20 @@ if(from_group && depth < 3) { gtk_menu_shell_append(menu, gtk_separator_menu_item_new()); - item = gtk_menu_item_new_with_label(_("use inverted shape")); - g_signal_connect(item, "activate", (GCallback)_tree_operation, - GINT_TO_POINTER(DT_MASKS_STATE_INVERSE)); - gtk_menu_shell_append(menu, item); + _add_tree_operation(menu, _("use inverted shape"), + DT_MASKS_STATE_INVERSE, selected_states, TRUE); gtk_menu_shell_append(menu, gtk_separator_menu_item_new()); - - item = gtk_menu_item_new_with_label(_("mode: union")); - gtk_widget_set_sensitive(item, !is_last_row); - g_signal_connect(item, "activate", (GCallback)_tree_operation, - GINT_TO_POINTER(DT_MASKS_STATE_UNION)); - gtk_menu_shell_append(menu, item); - - item = gtk_menu_item_new_with_label(_("mode: intersection")); - gtk_widget_set_sensitive(item, !is_last_row); - g_signal_connect(item, "activate", (GCallback)_tree_operation, - GINT_TO_POINTER(DT_MASKS_STATE_INTERSECTION)); - gtk_menu_shell_append(menu, item); - - item = gtk_menu_item_new_with_label(_("mode: difference")); - gtk_widget_set_sensitive(item, !is_last_row); - g_signal_connect(item, "activate", (GCallback)_tree_operation, - GINT_TO_POINTER(DT_MASKS_STATE_DIFFERENCE)); - gtk_menu_shell_append(menu, item); - - item = gtk_menu_item_new_with_label(_("mode: sum")); - gtk_widget_set_sensitive(item, !is_last_row); - g_signal_connect(item, "activate", (GCallback)_tree_operation, - GINT_TO_POINTER(DT_MASKS_STATE_SUM)); - gtk_menu_shell_append(menu, item); - - item = gtk_menu_item_new_with_label(_("mode: exclusion")); - gtk_widget_set_sensitive(item, !is_last_row); - g_signal_connect(item, "activate", (GCallback)_tree_operation, - GINT_TO_POINTER(DT_MASKS_STATE_EXCLUSION)); - gtk_menu_shell_append(menu, item); + _add_tree_operation(menu, _("mode: union"), + DT_MASKS_STATE_UNION, selected_states, !is_last_row); + _add_tree_operation(menu, _("mode: intersection"), + DT_MASKS_STATE_INTERSECTION, selected_states, !is_last_row); + _add_tree_operation(menu, _("mode: difference"), + DT_MASKS_STATE_DIFFERENCE, selected_states, !is_last_row); + _add_tree_operation(menu, _("mode: sum"), + DT_MASKS_STATE_SUM, selected_states, !is_last_row); + _add_tree_operation(menu, _("mode: exclusion"), + DT_MASKS_STATE_EXCLUSION, selected_states, !is_last_row); gtk_menu_shell_append(menu, gtk_separator_menu_item_new()); item = gtk_menu_item_new_with_label(_("move up")); @@ -1350,13 +1344,15 @@ GtkTreeModel *model = GTK_TREE_MODEL(treestore); int pos = 0; GtkTreeIter iter; - gtk_tree_model_get_iter_first(model, &iter); - do + if(gtk_tree_model_get_iter_first(model, &iter)) { - if (gtk_tree_model_iter_has_child(model, &iter)) - ++pos; - } while(gtk_tree_model_iter_next(model, &iter)); + do + { + if(gtk_tree_model_iter_has_child(model, &iter)) + ++pos; + } while(gtk_tree_model_iter_next(model, &iter)); + } // insert the child immediately after the last group gtk_tree_store_insert(treestore, &child, NULL, pos); @@ -1929,34 +1925,12 @@ G_CALLBACK(_property_changed), GINT_TO_POINTER(i)); } - const char *psens = dt_conf_get_string_const("pressure_sensitivity"); - int pos = 0; - for(int i = 0; _pressure_sensitivity_names[i]; i++) - if(!g_strcmp0(_pressure_sensitivity_names[i], psens)) pos = i; - - d->pressure = - dt_bauhaus_combobox_new_full(DT_ACTION(self), - N_("properties"), - N_("pressure"), - _("pen pressure control for brush masks\n" - "'off': pressure reading ignored,\n" - "'hardness'/'opacity'/'brush size': pressure reading controls specified attribute,\n" - "'absolute'/'relative': pressure reading is taken directly as attribute value or multiplied with pre-defined setting."), - pos, _pressure_changed, NULL, _pressure_sensitivity_names); + d->pressure = dt_gui_preferences_enum(DT_ACTION(self), "pressure_sensitivity"); + dt_bauhaus_widget_set_label(d->pressure, N_("properties"), N_("pressure")); gtk_box_pack_start(GTK_BOX(d->cs.container), d->pressure, FALSE, FALSE, 0); - const char *bsmooth = dt_conf_get_string_const("brush_smoothing"); - pos = 0; - for(int i = 0; _brush_smoothing_names[i]; i++) - if(!g_strcmp0(_brush_smoothing_names[i], bsmooth)) pos = i; - - d->smoothing = - dt_bauhaus_combobox_new_full(DT_ACTION(self), - N_("properties"), - N_("smoothing"), - _("smoothing of brush strokes\n" - "stronger smoothing leads to fewer nodes and easier editing but with lower control of accuracy."), - pos, _smoothing_changed, NULL, _brush_smoothing_names); + d->smoothing = dt_gui_preferences_enum(DT_ACTION(self), "brush_smoothing"); + dt_bauhaus_widget_set_label(d->smoothing, N_("properties"), N_("smoothing")); gtk_box_pack_start(GTK_BOX(d->cs.container), d->smoothing, FALSE, FALSE, 0); // set proxy functions diff -Nru darktable-4.4.2/src/libs/metadata.c darktable-4.6.1/src/libs/metadata.c --- darktable-4.4.2/src/libs/metadata.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/metadata.c 2024-02-16 17:31:09.000000000 +0000 @@ -50,12 +50,8 @@ GtkWidget *swindow[DT_METADATA_NUMBER]; GList *metadata_list[DT_METADATA_NUMBER]; char *setting_name[DT_METADATA_NUMBER]; - char *edited[DT_METADATA_NUMBER]; - gboolean editing[DT_METADATA_NUMBER]; - char *name[DT_METADATA_NUMBER]; GtkWidget *label[DT_METADATA_NUMBER]; - GtkWidget *apply_button; - gboolean init_layout; + GtkWidget *button_box, *apply_button, *cancel_button; GList *last_act_on; } dt_lib_metadata_t; @@ -74,8 +70,6 @@ return DT_UI_CONTAINER_PANEL_RIGHT_CENTER; } -void _textbuffer_changed(GtkTextBuffer *textbuffer, dt_lib_module_t *self); - static gboolean _is_leave_unchanged(GtkTextView *textview) { return GPOINTER_TO_INT(g_object_get_data(G_OBJECT(textview), "tv_multiple")); @@ -89,102 +83,38 @@ return gtk_text_buffer_get_text(buffer, &start, &end, TRUE); } -static void _text_set_all_selected(GtkTextView *textview, - const gboolean selected) +static void _textbuffer_changed(GtkTextBuffer *buffer, dt_lib_metadata_t *d) { - GtkTextBuffer *buffer = gtk_text_view_get_buffer(textview); - GtkTextIter start, end; - gtk_text_buffer_get_bounds(buffer, &start, &end); - gtk_text_buffer_select_range(buffer, selected ? &start : &end, &end); -} + if(darktable.gui->reset) return; -static void _text_set_italic(GtkTextView *textview, - const gboolean italic) -{ - GtkTextBuffer *buffer = gtk_text_view_get_buffer(textview); - GtkTextIter start, end; - gtk_text_buffer_get_bounds(buffer, &start, &end); - if(italic) - gtk_text_buffer_apply_tag_by_name(buffer, "italic", &start, &end); - else - gtk_text_buffer_remove_tag_by_name(buffer, "italic", &start, &end); -} - -static void _set_text_buffer(GtkTextBuffer *buffer, - const char *text) -{ - g_signal_handlers_block_matched(buffer, G_SIGNAL_MATCH_FUNC, - 0, 0, NULL, _textbuffer_changed, NULL); - gtk_text_buffer_set_text(buffer, text, -1); - g_signal_handlers_unblock_matched(buffer, G_SIGNAL_MATCH_FUNC, - 0, 0, NULL, _textbuffer_changed, NULL); -} - -static int _textview_index(GtkTextView *textview) -{ - return GPOINTER_TO_INT(g_object_get_data(G_OBJECT(textview), "tv_index")); -} - -static void _set_textview_editing(const gboolean editing, - const int i, - dt_lib_metadata_t *d) -{ - if(!editing && d->editing[i] && d->last_act_on) - { - g_list_free(d->last_act_on); - d->last_act_on = NULL; - } - d->editing[i] = editing; - if(editing) + gboolean changed = FALSE; + for(unsigned int i = 0; i < DT_METADATA_NUMBER; i++) { - gchar *markup = g_strdup_printf("<u><i>%s</i></u>", d->name[i]); - gtk_label_set_markup(GTK_LABEL(d->label[i]), markup); - g_free(markup); - } - else if(d->label[i]) - gtk_label_set_text(GTK_LABEL(d->label[i]), d->name[i]); -} + if(d->label[i]) + { + gchar *metadata = _get_buffer_text(d->textview[i]); + const gboolean leave_unchanged = _is_leave_unchanged(d->textview[i]); + const gboolean this_changed = d->metadata_list[i] && !leave_unchanged + ? strcmp(metadata, d->metadata_list[i]->data) + : metadata[0] != 0; + g_free(metadata); -static gboolean _is_textview_editing(const int i, - dt_lib_metadata_t *d) -{ - return(d->editing[i]); -} + gtk_widget_set_name(d->label[i], this_changed ? "dt-metadata-changed" : NULL); -static void _save_edited_textview(const int i, - dt_lib_metadata_t *d) -{ - if(d->editing[i]) - { - if(d->edited[i]) - g_free(d->edited[i]); - d->edited[i] = _get_buffer_text(GTK_TEXT_VIEW(d->textview[i])); - _set_textview_editing(FALSE, i, d); - } -} + gtk_container_foreach(GTK_CONTAINER(d->textview[i]), + (GtkCallback)gtk_widget_set_visible, + GINT_TO_POINTER(leave_unchanged && !this_changed)); -static void _restore_edited_textview(const int i, - dt_lib_metadata_t *d) -{ - if(d->edited[i]) - { - GtkTextBuffer *buffer = gtk_text_view_get_buffer(d->textview[i]); - _set_text_buffer(buffer, d->edited[i]); - g_free(d->edited[i]); - d->edited[i] = NULL; - _set_textview_editing(TRUE, i, d); + changed |= this_changed; + } } + + gtk_widget_set_sensitive(d->button_box, changed); } -static void _reset_edited_state(const int i, - dt_lib_metadata_t *d) +static int _textview_index(GtkTextView *textview) { - _set_textview_editing(FALSE, i, d); - if(d->edited[i]) - { - g_free(d->edited[i]); - d->edited[i] = NULL; - } + return GPOINTER_TO_INT(g_object_get_data(G_OBJECT(textview), "tv_index")); } static void _fill_text_view(const uint32_t i, @@ -192,28 +122,14 @@ dt_lib_module_t *self) { dt_lib_metadata_t *d = (dt_lib_metadata_t *)self->data; - gboolean multi = FALSE; + g_object_set_data(G_OBJECT(d->textview[i]), "tv_multiple", GINT_TO_POINTER(count == 1)); GtkTextBuffer *buffer = gtk_text_view_get_buffer(d->textview[i]); - if(_is_textview_editing(i, d)) - {} - else if(count == 0) // no metadata value - { - _set_text_buffer(buffer, ""); - } - else if(count == 1) // images with different metadata values - { - _set_text_buffer(buffer, _("<leave unchanged>")); - multi = TRUE; - } - else // one or several images with the same metadata value - { - _set_text_buffer(buffer, (char *)d->metadata_list[i]->data); - } - g_object_set_data(G_OBJECT(d->textview[i]), "tv_multiple", GINT_TO_POINTER(multi)); - _text_set_italic(d->textview[i], multi); + gtk_text_buffer_set_text(buffer, count <= 1 ? "" : (char *)d->metadata_list[i]->data, -1); } +static void _write_metadata(dt_lib_module_t *self); + void gui_update(dt_lib_module_t *self) { dt_lib_metadata_t *d = (dt_lib_metadata_t *)self->data; @@ -222,7 +138,6 @@ // first we want to make sure the list of images to act on has changed // this is not the case if mouse hover change but still stay in selection for ex. - if(!imgs && !d->last_act_on) return; if(imgs && d->last_act_on && g_list_length(imgs) == g_list_length(d->last_act_on)) { gboolean changed = FALSE; @@ -244,7 +159,8 @@ return; } } - g_list_free(d->last_act_on); + + _write_metadata(self); d->last_act_on = imgs; GList *metadata[DT_METADATA_NUMBER]; @@ -293,6 +209,7 @@ g_free(query); } + ++darktable.gui->reset; for(unsigned int i = 0; i < DT_METADATA_NUMBER; i++) { const uint32_t keyid = dt_metadata_get_keyid_by_display_order(i); @@ -302,15 +219,16 @@ d->metadata_list[i] = metadata[keyid]; _fill_text_view(i, metadata_count[keyid], self); } + --darktable.gui->reset; + + _textbuffer_changed(NULL, self->data); - gtk_widget_set_sensitive(GTK_WIDGET(d->apply_button), imgs_count > 0); + gtk_widget_set_sensitive(self->widget, imgs_count > 0); } static void _image_selection_changed_callback(gpointer instance, dt_lib_module_t *self) { - for(unsigned int i = 0; i < DT_METADATA_NUMBER; i++) - _reset_edited_state(i, (dt_lib_metadata_t *)self->data); dt_lib_gui_queue_update(self); } @@ -321,8 +239,6 @@ const int next, dt_lib_module_t *self) { - for(unsigned int i = 0; i < DT_METADATA_NUMBER; i++) - _reset_edited_state(i, (dt_lib_metadata_t *)self->data); dt_lib_gui_queue_update(self); } @@ -341,56 +257,64 @@ const uint32_t keyid = dt_metadata_get_keyid_by_display_order(i); if(dt_metadata_get_type(i) == DT_METADATA_TYPE_INTERNAL) return; + gchar *metadata = _get_buffer_text(GTK_TEXT_VIEW(d->textview[i])); - if(metadata && !_is_leave_unchanged(GTK_TEXT_VIEW(d->textview[i]))) + const gboolean this_changed = d->metadata_list[i] + && !_is_leave_unchanged(d->textview[i]) + ? strcmp(metadata, d->metadata_list[i]->data) + : metadata[0] != 0; + if(this_changed) _append_kv(key_value, dt_metadata_get_key(keyid), metadata); + else + g_free(metadata); } -static void _write_metadata(GtkTextView *textview, - dt_lib_module_t *self) +static void _write_metadata(dt_lib_module_t *self) { dt_lib_metadata_t *d = (dt_lib_metadata_t *)self->data; GList *key_value = NULL; - if(textview) - { - const int i = _textview_index(textview); + for(unsigned int i = 0; i < DT_METADATA_NUMBER; i++) _metadata_set_list(i, &key_value, d); - _reset_edited_state(i, d); - } - else + + if(key_value) { - for(unsigned int i = 0; i < DT_METADATA_NUMBER; i++) - { - _metadata_set_list(i, &key_value, d); - _reset_edited_state(i, d); - } - } + dt_metadata_set_list(d->last_act_on, key_value, TRUE); - GList *imgs = dt_act_on_get_images(FALSE, TRUE, FALSE); - dt_metadata_set_list(imgs, key_value, TRUE); + for(GList *l = key_value; l; l = l->next->next) g_free(l->next->data); + g_list_free(key_value); - for(GList *l = key_value; l; l = l->next) - { - l = l->next; - g_free(l->data); // metadata value + DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, + DT_SIGNAL_MOUSE_OVER_IMAGE_CHANGE); + DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, + DT_SIGNAL_METADATA_CHANGED, DT_METADATA_SIGNAL_NEW_VALUE); + + dt_image_synch_xmps(d->last_act_on); } - g_list_free(key_value); - DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, - DT_SIGNAL_MOUSE_OVER_IMAGE_CHANGE); - DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, - DT_SIGNAL_METADATA_CHANGED, DT_METADATA_SIGNAL_NEW_VALUE); + g_list_free(d->last_act_on); + d->last_act_on = NULL; - dt_image_synch_xmps(imgs); - g_list_free(imgs); dt_lib_gui_queue_update(self); } static void _apply_button_clicked(GtkButton *button, dt_lib_module_t *self) { - _write_metadata(NULL, self); + _write_metadata(self); + + gtk_window_set_focus(GTK_WINDOW(dt_ui_main_window(darktable.gui->ui)), NULL); +} + +static void _cancel_button_clicked(GtkButton *button, + dt_lib_module_t *self) +{ + dt_lib_metadata_t *d = (dt_lib_metadata_t *)self->data; + g_list_free(d->last_act_on); + d->last_act_on = NULL; + + dt_lib_gui_queue_update(self); + gtk_window_set_focus(GTK_WINDOW(dt_ui_main_window(darktable.gui->ui)), NULL); } static gboolean _key_pressed(GtkWidget *textview, @@ -399,68 +323,33 @@ { dt_lib_metadata_t *d = (dt_lib_metadata_t *)self->data; - if(dt_modifier_is(event->state, GDK_CONTROL_MASK)) - { - switch(event->keyval) - { - case GDK_KEY_Return: - case GDK_KEY_KP_Enter: - // insert new line - event->state &= ~GDK_CONTROL_MASK; //TODO: on Mac, remap Ctrl to Cmd key - _set_textview_editing(TRUE, _textview_index(GTK_TEXT_VIEW(textview)), d); - break; - default: - break; - } - } - else + switch(event->keyval) { - switch(event->keyval) - { - case GDK_KEY_Return: - case GDK_KEY_KP_Enter: - _write_metadata(GTK_TEXT_VIEW(textview), self); - _text_set_all_selected(GTK_TEXT_VIEW(textview), FALSE); + case GDK_KEY_Return: + case GDK_KEY_KP_Enter: + if(!dt_modifier_is(event->state, GDK_CONTROL_MASK)) + { + gtk_button_clicked(GTK_BUTTON(d->apply_button)); return TRUE; - break; - case GDK_KEY_Tab: - case GDK_KEY_KP_Tab: - case GDK_KEY_ISO_Left_Tab: - _write_metadata(GTK_TEXT_VIEW(textview), self); - break; - case GDK_KEY_Escape: + } + break; + case GDK_KEY_Escape: + if(dt_modifier_is(event->state, 0)) { - if(dt_modifier_is(event->state, 0)) - { - for(unsigned int i = 0; i < DT_METADATA_NUMBER; i++) - _reset_edited_state(i, d); - dt_lib_gui_queue_update(self); - gtk_window_set_focus(GTK_WINDOW(dt_ui_main_window(darktable.gui->ui)), NULL); - return TRUE; - } - break; + gtk_button_clicked(GTK_BUTTON(d->cancel_button)); + return TRUE; } - default: - break; - } + break; + default: + break; } return gtk_text_view_im_context_filter_keypress(GTK_TEXT_VIEW(textview), event); } -void _textbuffer_changed(GtkTextBuffer *textbuffer, - dt_lib_module_t *self) -{ - dt_lib_metadata_t *d = (dt_lib_metadata_t *)self->data; - GtkTextView *textview = - GINT_TO_POINTER(g_object_get_data(G_OBJECT(textbuffer), "buffer_tv")); - _set_textview_editing(TRUE, _textview_index(textview), d); - g_object_set_data(G_OBJECT(textview), "tv_multiple", GINT_TO_POINTER(FALSE)); -} - -gboolean _textview_focus(GtkWidget *widget, - GtkDirectionType d, - gpointer user_data) +static gboolean _textview_focus(GtkWidget *widget, + GtkDirectionType d, + gpointer user_data) { GtkWidget *target = g_object_get_data (G_OBJECT(widget), @@ -469,50 +358,6 @@ return TRUE; } -static gboolean _got_focus(GtkWidget *textview, - dt_lib_module_t *self) -{ - dt_lib_metadata_t *d = (dt_lib_metadata_t *)self->data; - if(!_is_textview_editing(_textview_index(GTK_TEXT_VIEW(textview)), d)) - { - if(_is_leave_unchanged(GTK_TEXT_VIEW(textview))) - { - GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview)); - _set_text_buffer(buffer, ""); - _text_set_italic(GTK_TEXT_VIEW(textview), FALSE); - } - _text_set_all_selected(GTK_TEXT_VIEW(textview), TRUE); - } - return TRUE; -} - -static gboolean _lost_focus(GtkWidget *textview, - GdkEventFocus *event, - dt_lib_module_t *self) -{ - if(_is_leave_unchanged(GTK_TEXT_VIEW(textview))) - { - GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview)); - _set_text_buffer(buffer, _("<leave unchanged>")); - _text_set_italic(GTK_TEXT_VIEW(textview), TRUE); - } - else - { - _write_metadata(GTK_TEXT_VIEW(textview), self); - } - - return FALSE; -} - -static gboolean _lib_mouse_leave_callback(GtkWidget *widget, - GdkEventCrossing *e, - gpointer user_data) -{ - _write_metadata(NULL, user_data); - - return 0; -} - int position(const dt_lib_module_t *self) { return 510; @@ -556,6 +401,8 @@ void gui_reset(dt_lib_module_t *self) { dt_lib_metadata_t *d = (dt_lib_metadata_t *)self->data; + + ++darktable.gui->reset; for(unsigned int i = 0; i < DT_METADATA_NUMBER; i++) { const gchar *name = dt_metadata_get_name_by_display_order(i); @@ -567,30 +414,12 @@ if(!hidden && type != DT_METADATA_TYPE_INTERNAL) { GtkTextBuffer *buffer = gtk_text_view_get_buffer(d->textview[i]); - _set_text_buffer(buffer, ""); - _text_set_italic(d->textview[i], FALSE); + gtk_text_buffer_set_text(buffer, "", -1); } } - _write_metadata(NULL, self); -} - -static void _mouse_over_image_callback(gpointer instance, - dt_lib_module_t *self) -{ - dt_lib_metadata_t *d = (dt_lib_metadata_t *)self->data; - // if editing don't lose the current entry - const dt_imgid_t imgid = dt_control_get_mouse_over_id(); - - if(!dt_is_valid_imgid(imgid)) - { // exits thumbnails zone - for(unsigned int i = 0; i < DT_METADATA_NUMBER; i++) - _restore_edited_textview(i, d); - } - else - for(unsigned int i = 0; i < DT_METADATA_NUMBER; i++) - _save_edited_textview(i, d); + --darktable.gui->reset; - dt_lib_gui_queue_update(self); + _write_metadata(self); } static void _toggled_callback(gchar *path_str, @@ -623,14 +452,17 @@ _toggled_callback(path_str, user_data, DT_METADATA_PREF_COL_PRIVATE); } -void _menuitem_preferences(GtkMenuItem *menuitem, - dt_lib_module_t *self) +static void _menuitem_preferences(GtkMenuItem *menuitem, + dt_lib_module_t *self) { GtkWidget *win = dt_ui_main_window(darktable.gui->ui); - GtkWidget *dialog = gtk_dialog_new_with_buttons - (_("metadata settings"), GTK_WINDOW(win), - GTK_DIALOG_DESTROY_WITH_PARENT, _("default"), GTK_RESPONSE_YES, - _("cancel"), GTK_RESPONSE_NONE, _("save"), GTK_RESPONSE_ACCEPT, NULL); + GtkWidget *dialog = gtk_dialog_new_with_buttons(_("metadata settings"), GTK_WINDOW(win), + GTK_DIALOG_DESTROY_WITH_PARENT, + _("_default"), GTK_RESPONSE_YES, + _("_cancel"), GTK_RESPONSE_NONE, + _("_save"), GTK_RESPONSE_ACCEPT, NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); + dt_gui_dialog_add_help(GTK_DIALOG(dialog), "metadata_preferences"); g_signal_connect(dialog, "key-press-event", G_CALLBACK(dt_handle_dialog_enter), NULL); GtkWidget *area = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); @@ -684,6 +516,9 @@ (_("visible"), renderer, "active", DT_METADATA_PREF_COL_VISIBLE, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(view), column); + GtkTreePath *first = gtk_tree_path_new_first (); + gtk_tree_view_set_cursor(GTK_TREE_VIEW(view), first, column, FALSE); + gtk_tree_path_free(first); GtkWidget *header = gtk_tree_view_column_get_button(column); gtk_widget_set_tooltip_text(header, _("tick if the corresponding metadata is of interest for you" @@ -782,7 +617,7 @@ gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); } -void _menu_line_activated(GtkMenuItem *menuitem, GtkTextView *textview) +static void _menu_line_activated(GtkMenuItem *menuitem, GtkTextView *textview) { GtkTextBuffer *buffer = gtk_text_view_get_buffer(textview); gtk_text_buffer_set_text @@ -818,16 +653,12 @@ { if(event->type == GDK_2BUTTON_PRESS) { + g_object_set_data(G_OBJECT(widget), "tv_multiple", GINT_TO_POINTER(FALSE)); GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget)); - _set_text_buffer(buffer, ""); - - GdkEventKey e = {0}; - e.type = GDK_KEY_PRESS; - e.keyval = GDK_KEY_KP_Enter; - e.send_event = TRUE; - e.window = gtk_text_view_get_window(GTK_TEXT_VIEW(widget), GTK_TEXT_WINDOW_TEXT); - gboolean ret_val; - g_signal_emit_by_name(G_OBJECT(widget), "key-press-event", &e, &ret_val); + if(gtk_text_buffer_get_char_count(buffer)) + gtk_text_buffer_set_text(buffer, "", -1); + else + g_signal_emit_by_name(G_OBJECT(buffer), "changed"); // even if unchanged } return FALSE; } @@ -838,10 +669,7 @@ self->data = (void *)d; GtkGrid *grid = GTK_GRID(gtk_grid_new()); - self->widget = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); - GtkWidget *evbox = gtk_event_box_new(); - gtk_container_add(GTK_CONTAINER(self->widget), evbox); - gtk_container_add(GTK_CONTAINER(evbox), GTK_WIDGET(grid)); + self->widget = GTK_WIDGET(grid); gtk_grid_set_row_spacing(grid, DT_PIXEL_APPLY_DPI(0)); gtk_grid_set_column_spacing(grid, DT_PIXEL_APPLY_DPI(10)); @@ -849,14 +677,16 @@ { if(dt_metadata_get_type_by_display_order(i) == DT_METADATA_TYPE_INTERNAL) continue; - d->name[i] = _(dt_metadata_get_name_by_display_order(i)); - d->label[i] = dt_ui_label_new(d->name[i]); + const char *name = (char *)dt_metadata_get_name_by_display_order(i); + d->label[i] = dt_ui_label_new(_(name)); + gtk_widget_set_halign(d->label[i], GTK_ALIGN_FILL); GtkWidget *labelev = gtk_event_box_new(); gtk_widget_add_events(labelev, GDK_BUTTON_PRESS_MASK); gtk_container_add(GTK_CONTAINER(labelev), d->label[i]); gtk_grid_attach(grid, labelev, 0, i, 1, 1); GtkWidget *textview = gtk_text_view_new(); + dt_action_define(DT_ACTION(self), NULL, name, textview, &dt_action_def_entry); gtk_widget_set_tooltip_text(textview, _("metadata text" "\nctrl+enter inserts a new line (caution, may not be compatible with standard metadata)" @@ -867,10 +697,11 @@ g_object_set_data(G_OBJECT(buffer), "buffer_tv", GINT_TO_POINTER(textview)); g_object_set_data(G_OBJECT(textview), "tv_index", GINT_TO_POINTER(i)); g_object_set_data(G_OBJECT(textview), "tv_multiple", GINT_TO_POINTER(FALSE)); - gtk_text_buffer_create_tag(gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview)), - "italic", "style", PANGO_STYLE_ITALIC, NULL); - const char *name = (char *)dt_metadata_get_name_by_display_order(i); + GtkWidget *unchanged = gtk_label_new("<leave unchanged>"); + gtk_widget_set_name(unchanged, "dt-metadata-multi"); + gtk_text_view_add_child_in_window(GTK_TEXT_VIEW(textview), unchanged, GTK_TEXT_WINDOW_WIDGET, 0, 0); + d->setting_name[i] = g_strdup_printf("plugins/lighttable/metadata/%s_text_height", name); GtkWidget *swindow = dt_ui_resize_wrap(GTK_WIDGET(textview), 100, d->setting_name[i]); @@ -883,19 +714,18 @@ //while resizing the panel or typing into the widget //reported upstream to https://gitlab.gnome.org/GNOME/gtk/-/issues/4042 //see also discussions on https://github.com/darktable-org/darktable/pull/10584 - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(gtk_bin_get_child(GTK_BIN(swindow))), - GTK_POLICY_EXTERNAL, GTK_POLICY_AUTOMATIC); + GtkScrolledWindow *realsw = GTK_SCROLLED_WINDOW(gtk_widget_get_parent(textview)); + gtk_scrolled_window_set_policy(realsw, GTK_POLICY_EXTERNAL, GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_min_content_width(realsw, DT_PIXEL_APPLY_DPI(30)); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(textview), GTK_WRAP_WORD_CHAR); gtk_text_view_set_accepts_tab(GTK_TEXT_VIEW(textview), FALSE); - gtk_widget_add_events(textview, GDK_FOCUS_CHANGE_MASK); + gtk_widget_add_events(textview, GDK_FOCUS_CHANGE_MASK | GDK_ENTER_NOTIFY_MASK); g_signal_connect(textview, "key-press-event", G_CALLBACK(_key_pressed), self); g_signal_connect(textview, "focus", G_CALLBACK(_textview_focus), self); g_signal_connect(textview, "populate-popup", G_CALLBACK(_populate_popup_multi), self); - g_signal_connect(textview, "grab-focus", G_CALLBACK(_got_focus), self); - g_signal_connect(textview, "focus-out-event", G_CALLBACK(_lost_focus), self); g_signal_connect(labelev, "button-press-event", G_CALLBACK(_metadata_reset), textview); - g_signal_connect(buffer, "changed", G_CALLBACK(_textbuffer_changed), self); + g_signal_connect(buffer, "changed", G_CALLBACK(_textbuffer_changed), d); d->textview[i] = GTK_TEXT_VIEW(textview); gtk_widget_set_hexpand(textview, TRUE); gtk_widget_set_vexpand(textview, TRUE); @@ -904,22 +734,22 @@ // apply button d->apply_button = dt_action_button_new(self, N_("apply"), _apply_button_clicked, self, _("write metadata for selected images"), 0, 0); - - gtk_grid_attach(grid, GTK_WIDGET(d->apply_button), 0, - DT_METADATA_NUMBER, 2, 1); + d->cancel_button = dt_action_button_new(self, N_("cancel"), _cancel_button_clicked, self, + _("ignore changed metadata"), 0, 0); + d->button_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + gtk_box_pack_start(GTK_BOX(d->button_box), d->apply_button, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(d->button_box), d->cancel_button, TRUE, TRUE, 0); + gtk_grid_attach(grid, d->button_box, 0, DT_METADATA_NUMBER, 2, 1); /* lets signup for mouse over image change signals */ DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_MOUSE_OVER_IMAGE_CHANGE, - G_CALLBACK(_mouse_over_image_callback), self); + G_CALLBACK(_image_selection_changed_callback), self); // and 2 other interesting signals: DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_SELECTION_CHANGED, - G_CALLBACK(_image_selection_changed_callback), self); + G_CALLBACK(_image_selection_changed_callback), self); DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_COLLECTION_CHANGED, - G_CALLBACK(_collection_updated_callback), self); - - g_signal_connect(G_OBJECT(evbox), "leave-notify-event", - G_CALLBACK(_lib_mouse_leave_callback), self); + G_CALLBACK(_collection_updated_callback), self); gtk_widget_show_all(self->widget); gtk_widget_set_no_show_all(self->widget, TRUE); @@ -929,18 +759,16 @@ void gui_cleanup(dt_lib_module_t *self) { dt_lib_metadata_t *d = (dt_lib_metadata_t *)self->data; - DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(_mouse_over_image_callback), self); + DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(_image_selection_changed_callback), self); DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(_image_selection_changed_callback), self); DT_DEBUG_CONTROL_SIGNAL_DISCONNECT(darktable.signals, G_CALLBACK(_collection_updated_callback), self); for(unsigned int i = 0; i < DT_METADATA_NUMBER; i++) { - if(dt_metadata_get_type_by_display_order(i) == DT_METADATA_TYPE_INTERNAL) - continue; - g_signal_handlers_block_by_func(d->textview[i], _lost_focus, self); g_free(d->setting_name[i]); - _reset_edited_state(i, d); + g_list_free_full(d->metadata_list[i], g_free); } + g_list_free(d->last_act_on); free(self->data); self->data = NULL; } diff -Nru darktable-4.4.2/src/libs/metadata_view.c darktable-4.6.1/src/libs/metadata_view.c --- darktable-4.4.2/src/libs/metadata_view.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/metadata_view.c 2024-02-16 17:31:09.000000000 +0000 @@ -92,6 +92,8 @@ md_exif_exposure, md_exif_exposure_bias, md_exif_focal_length, + md_exif_focal_length_ff, + md_exif_crop_factor, md_exif_focus_distance, md_exif_iso, md_exif_datetime, @@ -141,6 +143,8 @@ N_("exposure"), N_("exposure bias"), N_("focal length"), + N_("35mm equiv focal length"), + N_("crop factor"), N_("focus distance"), N_("ISO"), N_("datetime"), @@ -464,8 +468,7 @@ if(!dt_is_valid_imgid(mouse_over_id)) { - const dt_view_t *cv = dt_view_manager_get_current_view(darktable.view_manager); - if(cv->view(cv) == DT_VIEW_DARKROOM) + if(dt_view_get_current() == DT_VIEW_DARKROOM) { mouse_over_id = darktable.develop->image_storage.id; } @@ -519,9 +522,9 @@ "COUNT(DISTINCT export_timestamp), " "COUNT(DISTINCT print_timestamp), " "COUNT(DISTINCT flags), " - "COUNT(DISTINCT model), " - "COUNT(DISTINCT maker), " - "COUNT(DISTINCT lens), " + "COUNT(DISTINCT model_id), " + "COUNT(DISTINCT maker_id), " + "COUNT(DISTINCT lens_id), " "COUNT(DISTINCT aperture), " "COUNT(DISTINCT exposure), " "COUNT(DISTINCT IFNULL(exposure_bias, '')), " @@ -731,14 +734,38 @@ break; case md_exif_focal_length: - if(img->exif_crop && (img->exif_crop != 1.0f)) - (void)g_snprintf(text, sizeof(text), _("%.1f mm (%.1f mm FF equiv, crop %.1f)"), - (double)img->exif_focal_length, - (double)img->exif_crop * img->exif_focal_length, - (double)img->exif_crop); + (void)g_snprintf(text, sizeof(text), _("%.1f mm"), (double)img->exif_focal_length); + _metadata_update_value(md_exif_focal_length, text, self); + break; + + case md_exif_focal_length_ff: + if(!(img->exif_crop)) + { + _metadata_update_value(md_exif_focal_length_ff, NODATA_STRING, self); + break; + } + if(img->exif_crop != 1.0f) + { + (void)g_snprintf(text, sizeof(text), _("%.1f mm"), + (double)img->exif_crop * img->exif_focal_length); + } else + { (void)g_snprintf(text, sizeof(text), _("%.1f mm"), (double)img->exif_focal_length); - _metadata_update_value(md_exif_focal_length, text, self); + } + _metadata_update_value(md_exif_focal_length_ff, text, self); + break; + + case md_exif_crop_factor: + if(img->exif_crop) + { + (void)g_snprintf(text, sizeof(text), _("%.1f"), (double)img->exif_crop); + _metadata_update_value(md_exif_crop_factor, text, self); + } + else + { + _metadata_update_value(md_exif_crop_factor, NODATA_STRING, self); + } break; case md_exif_focus_distance: @@ -1190,8 +1217,11 @@ GtkWidget *win = dt_ui_main_window(darktable.gui->ui); GtkWidget *dialog = gtk_dialog_new_with_buttons(_("metadata settings"), GTK_WINDOW(win), - GTK_DIALOG_DESTROY_WITH_PARENT, _("default"), GTK_RESPONSE_YES, - _("cancel"), GTK_RESPONSE_NONE, _("save"), GTK_RESPONSE_ACCEPT, NULL); + GTK_DIALOG_DESTROY_WITH_PARENT, + _("_default"), GTK_RESPONSE_YES, + _("_cancel"), GTK_RESPONSE_NONE, + _("_save"), GTK_RESPONSE_ACCEPT, NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); g_signal_connect(dialog, "key-press-event", G_CALLBACK(dt_handle_dialog_enter), NULL); GtkWidget *area = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); @@ -1237,6 +1267,9 @@ column = gtk_tree_view_column_new_with_attributes(_("visible"), renderer, "active", DT_METADATA_PREF_COL_VISIBLE, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(view), column); + GtkTreePath *first = gtk_tree_path_new_first (); + gtk_tree_view_set_cursor(GTK_TREE_VIEW(view), first, column, FALSE); + gtk_tree_path_free(first); // drag & drop gtk_tree_view_set_reorderable(GTK_TREE_VIEW(view), TRUE); diff -Nru darktable-4.4.2/src/libs/modulegroups.c darktable-4.6.1/src/libs/modulegroups.c --- darktable-4.4.2/src/libs/modulegroups.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/modulegroups.c 2024-02-16 17:31:09.000000000 +0000 @@ -108,7 +108,7 @@ typedef struct dt_lib_modulegroups_t { - uint32_t current; + int32_t current; GtkWidget *text_entry; GtkWidget *hbox_buttons; GtkWidget *active_btn; @@ -226,6 +226,7 @@ static void _text_entry_changed_callback(GtkEntry *entry, dt_lib_module_t *self) { + if(darktable.gui->reset) return; _lib_modulegroups_update_iop_visibility(self); } @@ -432,7 +433,9 @@ } } -static void _sync_visibility(GtkWidget *widget, dt_lib_modulegroups_basic_item_t *item) +static void _sync_visibility(GtkWidget *widget, + GParamSpec *pspec, + dt_lib_modulegroups_basic_item_t *item) { if(widget == item->temp_widget) gtk_widget_set_visible(item->widget, gtk_widget_get_visible(item->temp_widget)); @@ -592,19 +595,13 @@ gtk_widget_set_tooltip_text(item->widget, txt); g_free(txt); - gtk_widget_add_events(item->widget , GDK_VISIBILITY_NOTIFY_MASK); - g_signal_connect(item->widget , "show", G_CALLBACK(_sync_visibility), item); - g_signal_connect(item->widget , "hide", G_CALLBACK(_sync_visibility), item); - gtk_widget_add_events(item->old_parent , GDK_VISIBILITY_NOTIFY_MASK); - g_signal_connect(item->old_parent , "show", G_CALLBACK(_sync_visibility), item); - g_signal_connect(item->old_parent , "hide", G_CALLBACK(_sync_visibility), item); - gtk_widget_add_events(item->temp_widget, GDK_VISIBILITY_NOTIFY_MASK); - g_signal_connect(item->temp_widget, "show", G_CALLBACK(_sync_visibility), item); - g_signal_connect(item->temp_widget, "hide", G_CALLBACK(_sync_visibility), item); + g_signal_connect(item->widget , "notify::visible", G_CALLBACK(_sync_visibility), item); + g_signal_connect(item->old_parent , "notify::visible", G_CALLBACK(_sync_visibility), item); + g_signal_connect(item->temp_widget , "notify::visible", G_CALLBACK(_sync_visibility), item); g_signal_connect(G_OBJECT(item->temp_widget), "destroy", G_CALLBACK(gtk_widget_destroyed), &item->temp_widget); g_signal_connect_swapped(G_OBJECT(item->temp_widget), "destroy", G_CALLBACK(_basics_remove_widget), item); - _sync_visibility(item->widget, item); + _sync_visibility(item->widget, NULL, item); } // if it's the first widget of a module, we need to create the module box structure @@ -830,9 +827,8 @@ dt_print(DT_DEBUG_IOPORDER, "[lib_modulegroups_update_iop_visibility] modulegroups\n"); // update basic button selection too - g_signal_handlers_block_matched(d->basic_btn, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, _lib_modulegroups_toggle, NULL); + ++darktable.gui->reset; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->basic_btn), d->current == DT_MODULEGROUP_BASICS); - g_signal_handlers_unblock_matched(d->basic_btn, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, _lib_modulegroups_toggle, NULL); /* only show module group as selected if not currently searching */ if((d->show_search || d->force_show_module) && d->current != DT_MODULEGROUP_NONE) @@ -841,16 +837,13 @@ if(bt) { /* toggle button visibility without executing callback */ - g_signal_handlers_block_matched(bt, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, _lib_modulegroups_toggle, NULL); - if((text_entered && text_entered[0] != '\0') || d->force_show_module) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(bt), FALSE); else gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(bt), TRUE); - - g_signal_handlers_unblock_matched(bt, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, _lib_modulegroups_toggle, NULL); } } + --darktable.gui->reset; // hide deprecated message. it will be shown after if needed gtk_widget_set_visible(d->deprecated, FALSE); @@ -865,7 +858,7 @@ GtkWidget *w = module->expander; if(module->enabled) - dt_print(DT_DEBUG_IOPORDER, "%20s %d%s", + dt_print(DT_DEBUG_IOPORDER, "%20s %d%s\n", module->op, module->iop_order, (dt_iop_is_hidden(module)) ? ", hidden" : ""); /* skip modules without an gui */ @@ -983,21 +976,18 @@ static void _lib_modulegroups_toggle(GtkWidget *button, gpointer user_data) { + if(darktable.gui->reset) return; dt_lib_module_t *self = (dt_lib_module_t *)user_data; dt_lib_modulegroups_t *d = (dt_lib_modulegroups_t *)self->data; const gchar *text_entered = (gtk_widget_is_visible(GTK_WIDGET(d->hbox_search_box))) ? gtk_entry_get_text(GTK_ENTRY(d->text_entry)) : NULL; - /* block all button callbacks */ - const int ngroups = g_list_length(d->groups); - for(int k = 0; k <= ngroups; k++) - g_signal_handlers_block_matched(_buttons_get_from_pos(self, k), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, - _lib_modulegroups_toggle, NULL); - g_signal_handlers_block_matched(d->basic_btn, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, _lib_modulegroups_toggle, NULL); + ++darktable.gui->reset; /* deactivate all buttons */ int gid = 0; + const int ngroups = g_list_length(d->groups); for(int k = 0; k <= ngroups; k++) { const GtkWidget *bt = _buttons_get_from_pos(self, k); @@ -1019,19 +1009,11 @@ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(_buttons_get_from_pos(self, gid)), TRUE); } - /* unblock all button callbacks */ - for(int k = 0; k <= ngroups; k++) - g_signal_handlers_unblock_matched(_buttons_get_from_pos(self, k), G_SIGNAL_MATCH_FUNC, 0, 0, NULL, - _lib_modulegroups_toggle, NULL); - g_signal_handlers_unblock_matched(d->basic_btn, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, _lib_modulegroups_toggle, NULL); - /* clear search text */ if(gtk_widget_is_visible(GTK_WIDGET(d->hbox_search_box))) - { - g_signal_handlers_block_matched(d->text_entry, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, _text_entry_changed_callback, NULL); gtk_entry_set_text(GTK_ENTRY(d->text_entry), ""); - g_signal_handlers_unblock_matched(d->text_entry, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, _text_entry_changed_callback, NULL); - } + + --darktable.gui->reset; /* update visibility */ d->force_show_module = NULL; @@ -1593,6 +1575,7 @@ AM("lut3d"); AM("monochrome"); AM("profile"); + AM("primaries"); AM("gamma"); AM("velvia"); @@ -1742,6 +1725,7 @@ AM("channelmixerrgb"); AM("colorbalancergb"); AM("colorzones"); + AM("primaries"); SMG(C_("modulegroup", "correct"), "correct"); AM("cacorrect"); @@ -2218,7 +2202,7 @@ _manage_direct_save(self); } - return found_item ? -1 : 1; + return found_item ? CPF_DIRECTION_DOWN : CPF_DIRECTION_UP; } static int _lib_modulegroups_basics_module_toggle(dt_lib_module_t *self, GtkWidget *widget, gboolean doit) @@ -2751,6 +2735,25 @@ } +static gboolean _scroll_group_buttons(GtkWidget *widget, + GdkEventScroll *event, + dt_lib_module_t *self) +{ + dt_lib_modulegroups_t *d = self->data; + int delta; + if(dt_gui_get_scroll_unit_delta(event, &delta)) + { + GtkWidget *adjacent = d->current == DT_MODULEGROUP_BASICS && delta < 0 + ? d->active_btn + : d->current <= DT_MODULEGROUP_ACTIVE_PIPE && delta > 0 + ? d->basic_btn + : _buttons_get_from_pos(self, d->current - delta); + if(adjacent) gtk_button_clicked(GTK_BUTTON(adjacent)); + } + + return TRUE; +} + void gui_init(dt_lib_module_t *self) { /* initialize ui widgets */ @@ -2766,7 +2769,11 @@ // groups d->hbox_groups = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(d->hbox_buttons), d->hbox_groups, TRUE, TRUE, 0); + GtkWidget *scrollbox = gtk_event_box_new(); + gtk_container_add(GTK_CONTAINER(scrollbox), d->hbox_groups); + g_signal_connect(scrollbox, "scroll-event", G_CALLBACK(_scroll_group_buttons), self); + gtk_widget_add_events(scrollbox, darktable.gui->scroll_mask); + gtk_box_pack_start(GTK_BOX(d->hbox_buttons), scrollbox, TRUE, TRUE, 0); // basic group button d->basic_btn = dtgtk_togglebutton_new(dtgtk_cairo_paint_modulegroup_basics, 0, NULL); @@ -2926,18 +2933,15 @@ } // last, if d->current still valid, we select it otherwise the first one - int cur = d->current; - d->current = DT_MODULEGROUP_NONE; - if(cur > g_list_length(d->groups) && cur != DT_MODULEGROUP_BASICS) cur = DT_MODULEGROUP_ACTIVE_PIPE; - if(cur == DT_MODULEGROUP_BASICS && !d->basics_show) cur = DT_MODULEGROUP_ACTIVE_PIPE; - if(cur == DT_MODULEGROUP_ACTIVE_PIPE) + if(d->current == DT_MODULEGROUP_BASICS ? !d->basics_show : d->current > g_list_length(d->groups)) + d->current = DT_MODULEGROUP_ACTIVE_PIPE; + if(d->current == DT_MODULEGROUP_ACTIVE_PIPE) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->active_btn), TRUE); - else if(cur == DT_MODULEGROUP_BASICS) + else if(d->current == DT_MODULEGROUP_BASICS) { if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d->basic_btn))) { // we need to manually refresh the list - d->current = DT_MODULEGROUP_BASICS; _lib_modulegroups_update_iop_visibility(self); } else @@ -2945,7 +2949,8 @@ } else { - dt_lib_modulegroups_group_t *gr = (dt_lib_modulegroups_group_t *)g_list_nth_data(d->groups, cur - 1); + dt_lib_modulegroups_group_t *gr = (dt_lib_modulegroups_group_t *)g_list_nth_data(d->groups, d->current - 1); + d->current = DT_MODULEGROUP_NONE; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gr->button), TRUE); } } @@ -3395,33 +3400,30 @@ d->editor_reset = FALSE; } -static void _manage_editor_preset_name_verify(GtkWidget *tb, dt_lib_module_t *self) +static void _manage_editor_preset_name_verify(GtkWidget *tb, + gpointer params[]) { - GList *names = (GList *)g_object_get_data(G_OBJECT(tb), "existing_names"); - GtkWidget *lb = (GtkWidget *)g_object_get_data(G_OBJECT(tb), "existing_label"); - GtkWidget *bt_ok = (GtkWidget *)g_object_get_data(G_OBJECT(tb), "ok_btn"); + GtkDialog *dialog = params[0]; + GList *names = params[1]; + GtkWidget *warning_label = params[2]; + const gchar *txt = gtk_entry_get_text(GTK_ENTRY(tb)); + gboolean good = *txt; // we don't want empty name - if(!g_strcmp0(txt, "")) + if(good) { - gtk_widget_set_visible(lb, TRUE); - gtk_widget_set_sensitive(bt_ok, FALSE); - return; - } - - for(const GList *l = names; l; l = g_list_next(l)) - { - gchar *tx = (gchar *)l->data; - if(!g_strcmp0(tx, txt)) + for(const GList *l = names; l; l = g_list_next(l)) { - gtk_widget_set_visible(lb, TRUE); - gtk_widget_set_sensitive(bt_ok, FALSE); - return; + if(!g_strcmp0(l->data, txt)) + { + good = FALSE; + break; + } } } - gtk_widget_set_visible(lb, FALSE); - gtk_widget_set_sensitive(bt_ok, TRUE); + gtk_widget_set_visible(warning_label, !good); + gtk_dialog_set_response_sensitive(dialog, GTK_RESPONSE_OK, good); } static void _manage_editor_preset_action(GtkWidget *btn, dt_lib_module_t *self) @@ -3459,26 +3461,26 @@ sqlite3_finalize(stmt); gint res = GTK_RESPONSE_OK; - GtkWidget *dialog - = gtk_dialog_new_with_buttons(_("rename preset"), GTK_WINDOW(d->dialog), GTK_DIALOG_DESTROY_WITH_PARENT, - _("cancel"), GTK_RESPONSE_CANCEL, _("rename"), GTK_RESPONSE_OK, NULL); + GtkWidget *dialog = gtk_dialog_new_with_buttons(_("rename preset"), GTK_WINDOW(d->dialog), + GTK_DIALOG_DESTROY_WITH_PARENT, + _("_cancel"), GTK_RESPONSE_CANCEL, + _("_rename"), GTK_RESPONSE_OK, NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); #ifdef GDK_WINDOWING_QUARTZ dt_osx_disallow_fullscreen(dialog); #endif - GtkWidget *bt_ok = gtk_dialog_get_widget_for_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); GtkWidget *content_area = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); gtk_box_pack_start(GTK_BOX(content_area), gtk_label_new(_("new preset name:")), FALSE, TRUE, 0); GtkWidget *lb = gtk_label_new(_("a preset with this name already exists!")); GtkWidget *tb = gtk_entry_new(); - gtk_entry_set_text(GTK_ENTRY(tb), new_name); - g_object_set_data(G_OBJECT(tb), "existing_names", names); - g_object_set_data(G_OBJECT(tb), "existing_label", lb); - g_object_set_data(G_OBJECT(tb), "ok_btn", bt_ok); - g_signal_connect(G_OBJECT(tb), "changed", G_CALLBACK(_manage_editor_preset_name_verify), self); + gtk_entry_set_activates_default(GTK_ENTRY(tb), TRUE); + gtk_entry_set_width_chars(GTK_ENTRY(tb), 10 + g_utf8_strlen(gtk_window_get_title(GTK_WINDOW(dialog)), -1)); + gpointer verify_params[] = {dialog, names, lb}; + g_signal_connect(G_OBJECT(tb), "changed", G_CALLBACK(_manage_editor_preset_name_verify), verify_params); gtk_box_pack_start(GTK_BOX(content_area), tb, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(content_area), lb, FALSE, TRUE, 0); gtk_widget_show_all(content_area); - _manage_editor_preset_name_verify(tb, self); + gtk_entry_set_text(GTK_ENTRY(tb), new_name); res = gtk_dialog_run(GTK_DIALOG(dialog)); g_free(new_name); @@ -3929,9 +3931,10 @@ dt_lib_modulegroups_t *d = (dt_lib_modulegroups_t *)self->data; // and we initialize the buttons too - const char *preset = dt_conf_get_string_const("plugins/darkroom/modulegroups_preset"); + char *preset = dt_conf_get_string("plugins/darkroom/modulegroups_preset"); if(!dt_lib_presets_apply(preset, self->plugin_name, self->version())) dt_lib_presets_apply(_(FALLBACK_PRESET_NAME), self->plugin_name, self->version()); + g_free(preset); // and set the current group d->current = dt_conf_get_int("plugins/darkroom/groups"); diff -Nru darktable-4.4.2/src/libs/navigation.c darktable-4.6.1/src/libs/navigation.c --- darktable-4.4.2/src/libs/navigation.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/navigation.c 2024-02-16 17:31:09.000000000 +0000 @@ -101,22 +101,25 @@ dt_lib_module_t *self = (dt_lib_module_t *)user_data; dt_lib_navigation_t *d = (dt_lib_navigation_t *)self->data; - dt_develop_t *dev = darktable.develop; + dt_dev_viewport_t *port = &darktable.develop->full; - dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - int closeup = dt_control_get_dev_closeup(); - const float cur_scale = dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 0); + dt_dev_zoom_t zoom; + int closeup; + dt_dev_get_viewport_params(port, &zoom, &closeup, NULL, NULL); + const float cur_scale = dt_dev_get_zoom_scale(port, zoom, 1<<closeup, 0); gchar *zoomline = zoom == DT_ZOOM_FIT ? g_strdup(_("fit")) : zoom == DT_ZOOM_FILL ? g_strdup(C_("navigationbox", "fill")) - : 0.5 * dt_dev_get_zoom_scale(dev, DT_ZOOM_FIT, 1.0, 0) - == dt_dev_get_zoom_scale(dev, DT_ZOOM_FREE, 1.0, 0) + : 0.5 * dt_dev_get_zoom_scale(port, DT_ZOOM_FIT, 1.0, 0) + == dt_dev_get_zoom_scale(port, DT_ZOOM_FREE, 1.0, 0) ? g_strdup(_("small")) : g_strdup_printf("%.0f%%", cur_scale * 100 * darktable.gui->ppd); ++darktable.gui->reset; - dt_bauhaus_combobox_set(d->zoom, -1); if(!dt_bauhaus_combobox_set_from_text(d->zoom, zoomline)) + { dt_bauhaus_combobox_set_text(d->zoom, zoomline); + dt_bauhaus_combobox_set(d->zoom, -1); + } --darktable.gui->reset; g_free(zoomline); @@ -203,7 +206,7 @@ GDK_KEY_2, GDK_MOD1_MASK); dt_bauhaus_combobox_set_editable(d->zoom, TRUE); - DT_BAUHAUS_WIDGET(d->zoom)->show_label = FALSE; + dt_bauhaus_widget_hide_label(d->zoom); gtk_widget_set_halign(d->zoom, GTK_ALIGN_END); gtk_widget_set_valign(d->zoom, GTK_ALIGN_END); gtk_widget_set_name(d->zoom, "nav-zoom"); @@ -228,8 +231,6 @@ self->data = NULL; } - - static gboolean _lib_navigation_draw_callback(GtkWidget *widget, cairo_t *crf, gpointer user_data) @@ -248,20 +249,20 @@ gtk_render_background(context, cr, 0, 0, allocation.width, allocation.height); /* draw navigation image if available */ - if(dev->preview_pipe->output_backbuf + if(dev->preview_pipe->backbuf && dev->image_storage.id == dev->preview_pipe->output_imgid) { dt_pthread_mutex_t *mutex = &dev->preview_pipe->backbuf_mutex; dt_pthread_mutex_lock(mutex); cairo_save(cr); - const int wd = dev->preview_pipe->output_backbuf_width; - const int ht = dev->preview_pipe->output_backbuf_height; + const int wd = dev->preview_pipe->backbuf_width; + const int ht = dev->preview_pipe->backbuf_height; const float scale = fminf(width / (float)wd, height / (float)ht); const int stride = cairo_format_stride_for_width(CAIRO_FORMAT_RGB24, wd); cairo_surface_t *surface - = cairo_image_surface_create_for_data(dev->preview_pipe->output_backbuf, + = cairo_image_surface_create_for_data(dev->preview_pipe->backbuf, CAIRO_FORMAT_RGB24, wd, ht, stride); cairo_translate(cr, width / 2.0, height / 2.0f); cairo_scale(cr, scale, scale); @@ -273,23 +274,14 @@ cairo_fill(cr); // draw box where we are - dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - int closeup = dt_control_get_dev_closeup(); - float zoom_x = dt_control_get_dev_zoom_x(); - float zoom_y = dt_control_get_dev_zoom_y(); - const float min_scale = dt_dev_get_zoom_scale(dev, DT_ZOOM_FIT, 1<<closeup, 0); - const float cur_scale = dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 0); - if(cur_scale > min_scale) + float zoom_x, zoom_y, boxw, boxh; + if(dt_dev_get_zoom_bounds(&dev->full, &zoom_x, &zoom_y, &boxw, &boxh)) { // Add a dark overlay on the picture to make it fade cairo_rectangle(cr, 0, 0, wd, ht); cairo_set_source_rgba(cr, 0, 0, 0, 0.5); cairo_fill(cr); - float boxw = 1, boxh = 1; - dt_dev_check_zoom_bounds(darktable.develop, &zoom_x, &zoom_y, zoom, - closeup, &boxw, &boxh); - // Repaint the original image in the area of interest cairo_set_source_surface(cr, surface, 0, 0); cairo_translate(cr, wd * (.5f + zoom_x), ht * (.5f + zoom_y)); @@ -320,7 +312,7 @@ cairo_paint(crf); cairo_surface_destroy(cst); - return TRUE; + return FALSE; } void _lib_navigation_set_position(dt_lib_module_t *self, @@ -331,17 +323,14 @@ { dt_lib_navigation_t *d = (dt_lib_navigation_t *)self->data; - dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - - if(d->dragging && zoom != DT_ZOOM_FIT) + if(d->dragging) { const int inset = DT_NAVIGATION_INSET; const float width = wd - 2 * inset; const float height = ht - 2 * inset; - const dt_develop_t *dev = darktable.develop; + dt_dev_viewport_t *port = &darktable.develop->full; int iwd, iht; - dt_dev_get_processed_size(dev, &iwd, &iht); + dt_dev_get_processed_size(port, &iwd, &iht); float zoom_x = fmaxf( -.5, @@ -353,17 +342,7 @@ fminf(((y - inset) / height - .5f) / (iht * fminf(wd / (float)iwd, ht / (float)iht) / (float)ht), .5)); - dt_dev_check_zoom_bounds(darktable.develop, &zoom_x, &zoom_y, - zoom, closeup, NULL, NULL); - dt_control_set_dev_zoom_x(zoom_x); - dt_control_set_dev_zoom_y(zoom_y); - - /* redraw myself */ - _lib_navigation_control_redraw_callback(NULL, self); - - /* redraw pipe */ - dt_dev_invalidate(darktable.develop); - dt_control_queue_redraw_center(); + dt_dev_zoom_move(port, DT_ZOOM_POSITION, 0.0f, 0, zoom_x, zoom_y, TRUE); } } @@ -388,102 +367,33 @@ // dt_lib_module_t *self = (dt_lib_module_t *)user_data; dt_develop_t *dev = darktable.develop; if(!dev) return; - dt_dev_zoom_t zoom; - int closeup, procw, proch; - float zoom_x, zoom_y; - zoom = dt_control_get_dev_zoom(); - closeup = dt_control_get_dev_closeup(); - zoom_x = dt_control_get_dev_zoom_x(); - zoom_y = dt_control_get_dev_zoom_y(); - dt_dev_get_processed_size(dev, &procw, &proch); - float scale = 0; + const float ppd = darktable.gui->ppd; - const gboolean low_ppd = (darktable.gui->ppd == 1); - closeup = 0; - if(val == 0u) - { - // small - scale = 0.5 * dt_dev_get_zoom_scale(dev, DT_ZOOM_FIT, 1.0, 0); - zoom = DT_ZOOM_FREE; - } - else if(val == 1u || val == -1u) - { - // fit to screen + + dt_dev_viewport_t *port = &dev->full; + float scale = 1.0f; + int closeup = 0; + dt_dev_zoom_t zoom = DT_ZOOM_FREE; + + if(val == 0u) // small + scale = 0.5 * dt_dev_get_zoom_scale(port, DT_ZOOM_FIT, 1.0, 0); + else if(val == 1u || val == -1u) // fit to screen zoom = DT_ZOOM_FIT; - scale = dt_dev_get_zoom_scale(dev, DT_ZOOM_FIT, 1.0, 0); - } - else if(val == 2u) - { - // fit to screen + else if(val == 2u) // fill screen zoom = DT_ZOOM_FILL; - closeup = 0; - } - else if(val == 4u) - { - // 100% - if(low_ppd == 1) - { - scale = dt_dev_get_zoom_scale(dev, DT_ZOOM_1, 1.0, 0); - zoom = DT_ZOOM_1; - } - else - { - scale = 1.0f / ppd; - zoom = DT_ZOOM_FREE; - } - } - else if(val == 5u) - { - // 200% - scale = dt_dev_get_zoom_scale(dev, DT_ZOOM_1, 1.0, 0); - zoom = DT_ZOOM_1; - if(low_ppd) closeup = 1; - } - else if(val == 3u) - { - // 50% + else if(val == 3u) // 50% scale = 0.5f / ppd; - zoom = DT_ZOOM_FREE; - } - else if(val == 8u) + else if(val == 4u && ppd != 1.0f) // 100% + scale = 1.0f / ppd; + else if(val >= 4u && val <= 8u) // 100%, 200%, 400%, 800%, 1600% { - // 1600% - scale = dt_dev_get_zoom_scale(dev, DT_ZOOM_1, 1.0, 0); zoom = DT_ZOOM_1; - closeup = (low_ppd) ? 4 : 3; - } - else if(val == 6u) - { - // 400% - scale = dt_dev_get_zoom_scale(dev, DT_ZOOM_1, 1.0, 0); - zoom = DT_ZOOM_1; - closeup = (low_ppd) ? 2 : 1; - } - else if(val == 7u) - { - // 800% - scale = dt_dev_get_zoom_scale(dev, DT_ZOOM_1, 1.0, 0); - zoom = DT_ZOOM_1; - closeup = (low_ppd) ? 3 : 2; + closeup = val - 5 + (ppd == 1.0f); } else - { scale = val / 100.0f * ppd; - zoom = DT_ZOOM_FREE; - } - - // zoom_x = (1.0/(scale*(1<<closeup)))*(zoom_x - .5f*dev->width )/procw; - // zoom_y = (1.0/(scale*(1<<closeup)))*(zoom_y - .5f*dev->height)/proch; - dt_control_set_dev_zoom_scale(scale); - dt_dev_check_zoom_bounds(dev, &zoom_x, &zoom_y, zoom, closeup, NULL, NULL); - dt_control_set_dev_zoom(zoom); - dt_control_set_dev_closeup(closeup); - dt_control_set_dev_zoom_x(zoom_x); - dt_control_set_dev_zoom_y(zoom_y); - dt_dev_invalidate(dev); - dt_control_queue_redraw_center(); - dt_control_navigation_redraw(); + dt_dev_zoom_move(port, zoom, scale, closeup, -1.0f, -1.0f, TRUE); } static gboolean _lib_navigation_button_press_callback(GtkWidget *widget, diff -Nru darktable-4.4.2/src/libs/recentcollect.c darktable-4.6.1/src/libs/recentcollect.c --- darktable-4.4.2/src/libs/recentcollect.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/recentcollect.c 2024-02-16 17:31:09.000000000 +0000 @@ -206,7 +206,7 @@ } current = d->items; - for(int k = 0; k < CLAMPS(_conf_get_max_shown_items(), 0, _conf_get_max_saved_items()); k++) + for(int k = 0; k < CLAMPS(_conf_get_max_shown_items(), 0, _conf_get_max_saved_items()) && current; k++) { dt_lib_recentcollect_item_t *item = (dt_lib_recentcollect_item_t *)current->data; const gchar *line = gtk_button_get_label(GTK_BUTTON(item->button)); @@ -224,8 +224,10 @@ char confname[200]; GtkWidget *win = dt_ui_main_window(darktable.gui->ui); GtkWidget *dialog = gtk_dialog_new_with_buttons(_("recent collections settings"), GTK_WINDOW(win), - GTK_DIALOG_DESTROY_WITH_PARENT, _("cancel"), GTK_RESPONSE_NONE, - _("save"), GTK_RESPONSE_ACCEPT, NULL); + GTK_DIALOG_DESTROY_WITH_PARENT, + _("_cancel"), GTK_RESPONSE_NONE, + _("_save"), GTK_RESPONSE_ACCEPT, NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); dt_prefs_init_dialog_recentcollect(dialog); g_signal_connect(dialog, "key-press-event", G_CALLBACK(dt_handle_dialog_enter), NULL); diff -Nru darktable-4.4.2/src/libs/select.c darktable-4.6.1/src/libs/select.c --- darktable-4.4.2/src/libs/select.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/select.c 2024-02-16 17:31:09.000000000 +0000 @@ -15,6 +15,7 @@ You should have received a copy of the GNU General Public License along with darktable. If not, see <http://www.gnu.org/licenses/>. */ + #include "common/collection.h" #include "common/darktable.h" #include "common/debug.h" @@ -36,7 +37,7 @@ const char *name(dt_lib_module_t *self) { - return _("select"); + return _("selection"); } dt_view_type_flags_t views(dt_lib_module_t *self) diff -Nru darktable-4.4.2/src/libs/snapshots.c darktable-4.6.1/src/libs/snapshots.c --- darktable-4.4.2/src/libs/snapshots.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/snapshots.c 2024-02-16 17:31:09.000000000 +0000 @@ -38,6 +38,8 @@ typedef struct dt_lib_snapshot_t { GtkWidget *button; + GtkWidget *num; + GtkWidget *status; GtkWidget *name; GtkWidget *entry; char *module; @@ -46,25 +48,19 @@ dt_imgid_t imgid; uint32_t history_end; uint32_t id; - /* snapshot cairo surface */ - cairo_surface_t *surface; - uint32_t width, height; -} dt_lib_snapshot_t; - -typedef struct dt_lib_snapshot_params_t -{ uint8_t *buf; + float scale; size_t width, height; -} dt_lib_snapshot_params_t; + float zoom_x, zoom_y; +} dt_lib_snapshot_t; typedef struct dt_lib_snapshots_t { GtkWidget *snapshots_box; int selected; - dt_lib_snapshot_params_t params; gboolean snap_requested; - int expose_again_timeout_id; + guint expose_again_timeout_id; /* current active snapshots */ uint32_t num_snapshots; @@ -158,6 +154,7 @@ { dt_lib_snapshots_t *d = (dt_lib_snapshots_t *)user_data; + d->expose_again_timeout_id = 0; d->snap_requested = TRUE; dt_control_queue_redraw_center(); return FALSE; @@ -183,21 +180,18 @@ // if a new snapshot is needed, do this now if(d->snap_requested && snap->ctx == ctx) { - // export image with proper size - dt_dev_image_ext(snap->imgid, width, height, snap->history_end, - &d->params.buf, &d->params.width, &d->params.height, - darktable.develop->border_size, - darktable.develop->iso_12646.enabled, - snap->id); - - if(snap->surface) cairo_surface_destroy(snap->surface); - snap->surface = dt_view_create_surface(d->params.buf, - d->params.width, d->params.height); + dt_free_align(snap->buf); + snap->buf = NULL; - snap->width = d->params.width; - snap->height = d->params.height; + // export image with proper size + dt_dev_image(snap->imgid, width, height, + snap->history_end, + &snap->buf, &snap->scale, + &snap->width, &snap->height, + &snap->zoom_x, &snap->zoom_y, + snap->id); d->snap_requested = FALSE; - d->expose_again_timeout_id = -1; + d->expose_again_timeout_id = 0; } // if ctx has changed, get a new snapshot at the right zoom @@ -205,7 +199,7 @@ // create many snapshot while zooming (this is slow), so we wait // to the zoom level to be stabilized to create the new snapshot. if(snap->ctx != ctx - || !snap->surface) + || !snap->buf) { // request a new snapshot in the following conditions: // 1. we are not panning @@ -213,15 +207,17 @@ // with the navigation module snap->ctx = ctx; - if(!d->panning && dev->darkroom_mouse_in_center_area) d->snap_requested = TRUE; - if(d->expose_again_timeout_id != -1) g_source_remove(d->expose_again_timeout_id); - if(snap->surface) cairo_surface_destroy(snap->surface); - snap->surface = NULL; + if(!d->panning && dev->darkroom_mouse_in_center_area) + d->snap_requested = TRUE; + if(d->expose_again_timeout_id != 0) + g_source_remove(d->expose_again_timeout_id); + d->expose_again_timeout_id = g_timeout_add(150, _snap_expose_again, d); } - float pzx, pzy; - dt_dev_get_pointer_zoom_pos(dev, 0, 0, &pzx, &pzy); + float pzx, pzy, zoom_scale; + dt_dev_get_pointer_zoom_pos(&dev->full, 0, 0, &pzx, &pzy, &zoom_scale); + pzx = fmin(pzx + 0.5f, 0.0f); pzy = fmin(pzy + 0.5f, 0.0f); @@ -252,11 +248,11 @@ cairo_clip(cri); cairo_fill(cri); - if(snap->surface && !d->snap_requested) + if(snap->buf) { - // display snapshot image surface - dt_view_paint_surface(cri, width, height, - snap->surface, snap->width, snap->height, DT_WINDOW_MAIN); + dt_view_paint_surface(cri, width, height, &dev->full, DT_WINDOW_MAIN, + snap->buf, snap->scale, snap->width, snap->height, + snap->zoom_x, snap->zoom_y); } cairo_reset_clip(cri); @@ -266,10 +262,6 @@ cairo_set_line_width(cri, 1.); - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 1); - if(d->vertical) { const float iheight = dev->preview_pipe->backbuf_height * zoom_scale; @@ -437,7 +429,7 @@ { dt_lib_snapshots_t *d = (dt_lib_snapshots_t *)self->data; - // if panning, do not hanlde here, let darkroom do the job + // if panning, do not handle here, let darkroom do the job if(d->panning) return 0; if(d->selected >= 0) @@ -470,9 +462,86 @@ !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d->snapshot[index].button))); } +static int _look_for_widget(dt_lib_module_t *self, GtkWidget *widget, gboolean entry) +{ + dt_lib_snapshots_t *d = (dt_lib_snapshots_t *)self->data; + + for(int k=0; k<MAX_SNAPSHOT; k++) + { + if((entry ? d->snapshot[k].entry : d->snapshot[k].button) == widget) + return k; + } + + return 0; +} + +static void _entry_activated_callback(GtkEntry *entry, gpointer *user_data) +{ + dt_lib_module_t *self = (dt_lib_module_t *)user_data; + dt_lib_snapshots_t *d = (dt_lib_snapshots_t *)self->data; + + const int index = _look_for_widget(self, (GtkWidget *)entry, TRUE); + + const char *txt = gtk_entry_get_text(GTK_ENTRY(d->snapshot[index].entry)); + + char *label = dt_history_get_name_label(d->snapshot[index].module, txt, TRUE); + gtk_label_set_markup(GTK_LABEL(d->snapshot[index].name), label); + g_free(label); + + gtk_widget_hide(d->snapshot[index].entry); + gtk_widget_show(d->snapshot[index].name); + gtk_widget_grab_focus(d->snapshot[index].button); +} + +static gboolean _lib_button_button_pressed_callback(GtkWidget *widget, + GdkEventButton *event, + gpointer user_data) +{ + dt_lib_module_t *self = (dt_lib_module_t *)user_data; + dt_lib_snapshots_t *d = (dt_lib_snapshots_t *)self->data; + + const int index = _look_for_widget(self, widget, FALSE); + + if(dt_modifier_is(event->state, GDK_CONTROL_MASK)) + { + gtk_widget_hide(d->snapshot[index].name); + gtk_widget_show(d->snapshot[index].entry); + gtk_widget_grab_focus(d->snapshot[index].entry); + } + + gtk_widget_set_focus_on_click(widget, FALSE); + return gtk_widget_has_focus(d->snapshot[index].entry); +} + +static void _init_snapshot_entry(dt_lib_module_t *self, dt_lib_snapshot_t *s) +{ + /* create snapshot button */ + s->button = gtk_toggle_button_new(); + gtk_widget_set_name(s->button, "snapshot-button"); + g_signal_connect(G_OBJECT(s->button), "toggled", + G_CALLBACK(_lib_snapshots_toggled_callback), self); + g_signal_connect(G_OBJECT(s->button), "button-press-event", + G_CALLBACK(_lib_button_button_pressed_callback), self); + + s->num = gtk_label_new(""); + gtk_widget_set_name(s->num, "history-number"); + dt_gui_add_class(s->num, "dt_monospace"); + + s->status = gtk_label_new(""); + dt_gui_add_class(s->status, "dt_monospace"); + + s->name = gtk_label_new(""); + gtk_label_set_ellipsize(GTK_LABEL(s->name), PANGO_ELLIPSIZE_MIDDLE); + gtk_widget_set_halign(s->name, GTK_ALIGN_START); + + s->entry = gtk_entry_new(); + gtk_widget_set_halign(s->entry, GTK_ALIGN_START); + g_signal_connect(G_OBJECT(s->entry), "activate", + G_CALLBACK(_entry_activated_callback), self); +} + static void _clear_snapshot_entry(dt_lib_snapshot_t *s) { - s->surface = NULL; s->ctx = 0; s->imgid = NO_IMGID; s->history_end = -1; @@ -482,42 +551,55 @@ GtkWidget *lstatus = _lib_snapshot_button_get_item(s->button, _SNAPSHOT_BUTTON_STATUS); gtk_widget_set_tooltip_text(s->button, ""); gtk_widget_set_tooltip_text(lstatus, ""); + gtk_widget_hide(s->button); } g_free(s->module); g_free(s->label); + dt_free_align(s->buf); s->module = NULL; s->label = NULL; + s->buf = NULL; + + // and delete corresponding entry from the database + + sqlite3_stmt *stmt; + + DT_DEBUG_SQLITE3_PREPARE_V2 + (dt_database_get(darktable.db), + "DELETE FROM memory.history_snapshot" + " WHERE id = ?1", + -1, &stmt, NULL); + + DT_DEBUG_SQLITE3_BIND_INT(stmt, 1, s->id); + sqlite3_step(stmt); + sqlite3_finalize(stmt); } -static void _clear_snapshots(dt_lib_module_t *self, const dt_imgid_t imgid) +static void _clear_snapshots(dt_lib_module_t *self) { dt_lib_snapshots_t *d = (dt_lib_snapshots_t *)self->data; d->selected = -1; + darktable.lib->proxy.snapshots.enabled = FALSE; d->snap_requested = FALSE; for(uint32_t k = 0; k < d->num_snapshots; k++) { dt_lib_snapshot_t *s = &d->snapshot[k]; - - if(s->surface) cairo_surface_destroy(s->surface); + s->id = k; _clear_snapshot_entry(s); - gtk_widget_hide(s->button); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(s->button), FALSE); } d->num_snapshots = 0; gtk_widget_set_sensitive(d->take_button, TRUE); - DT_DEBUG_SQLITE3_EXEC(dt_database_get(darktable.db), - "DELETE FROM memory.history_snapshot", NULL, NULL, NULL); - dt_control_queue_redraw_center(); } void gui_reset(dt_lib_module_t *self) { - _clear_snapshots(self, -1); + _clear_snapshots(self); } static void _signal_profile_changed(gpointer instance, @@ -537,6 +619,53 @@ } } +static void _remove_snapshot_entry(dt_lib_module_t *self, const uint32_t index) +{ + dt_lib_snapshots_t *d = (dt_lib_snapshots_t *)self->data; + + // First clean the entry + _clear_snapshot_entry(&d->snapshot[index]); + + // Repack all entries + for(uint32_t k = index; k < MAX_SNAPSHOT-1; k++) + { + memcpy(&d->snapshot[k], &d->snapshot[k+1], sizeof(dt_lib_snapshot_t)); + } + + // And finally clear last entry + _clear_snapshot_entry(&d->snapshot[MAX_SNAPSHOT-1]); + // And dedup widgets by initializing the last entry + _init_snapshot_entry(self, &d->snapshot[MAX_SNAPSHOT-1]); + + // We have one less snapshot + d->num_snapshots--; + + // If the remove image snapshot was selected, unselect it + if(d->selected == index) + d->selected = -1; +} + +static void _signal_image_removed(gpointer instance, dt_imgid_t imgid, gpointer user_data) +{ + dt_lib_module_t *self = (dt_lib_module_t *)user_data; + dt_lib_snapshots_t *d = (dt_lib_snapshots_t *)self->data; + + uint32_t k = 0; + + while(k < MAX_SNAPSHOT) + { + dt_lib_snapshot_t *s = &d->snapshot[k]; + + if(s->imgid == imgid) + { + _remove_snapshot_entry(self, k); + dt_control_log(_("snapshots for removed image have been deleted")); + } + else + k++; + } +} + static void _signal_image_changed(gpointer instance, gpointer user_data) { dt_lib_module_t *self = (dt_lib_module_t *)user_data; @@ -583,57 +712,6 @@ dt_control_queue_redraw_center(); } -static int _look_for_widget(dt_lib_module_t *self, GtkWidget *widget, gboolean entry) -{ - dt_lib_snapshots_t *d = (dt_lib_snapshots_t *)self->data; - - for(int k=0; k<MAX_SNAPSHOT; k++) - { - if((entry ? d->snapshot[k].entry : d->snapshot[k].button) == widget) - return k; - } - - return 0; -} - -static void _entry_activated_callback(GtkEntry *entry, gpointer *user_data) -{ - dt_lib_module_t *self = (dt_lib_module_t *)user_data; - dt_lib_snapshots_t *d = (dt_lib_snapshots_t *)self->data; - - const int index = _look_for_widget(self, (GtkWidget *)entry, TRUE); - - const char *txt = gtk_entry_get_text(GTK_ENTRY(d->snapshot[index].entry)); - - char *label = dt_history_get_name_label(d->snapshot[index].module, txt, TRUE); - gtk_label_set_markup(GTK_LABEL(d->snapshot[index].name), label); - g_free(label); - - gtk_widget_hide(d->snapshot[index].entry); - gtk_widget_show(d->snapshot[index].name); - gtk_widget_grab_focus(d->snapshot[index].button); -} - -static gboolean _lib_button_button_pressed_callback(GtkWidget *widget, - GdkEventButton *event, - gpointer user_data) -{ - dt_lib_module_t *self = (dt_lib_module_t *)user_data; - dt_lib_snapshots_t *d = (dt_lib_snapshots_t *)self->data; - - const int index = _look_for_widget(self, widget, FALSE); - - if(dt_modifier_is(event->state, GDK_CONTROL_MASK)) - { - gtk_widget_hide(d->snapshot[index].name); - gtk_widget_show(d->snapshot[index].entry); - gtk_widget_grab_focus(d->snapshot[index].entry); - } - - gtk_widget_set_focus_on_click(widget, FALSE); - return gtk_widget_has_focus(d->snapshot[index].entry); -} - void gui_init(dt_lib_module_t *self) { /* initialize ui widgets */ @@ -650,8 +728,9 @@ d->panning = FALSE; d->selected = -1; d->snap_requested = FALSE; - d->expose_again_timeout_id = -1; + d->expose_again_timeout_id = 0; d->num_snapshots = 0; + darktable.lib->proxy.snapshots.enabled = FALSE; /* initialize ui containers */ self->widget = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); @@ -671,57 +750,35 @@ char localtmpdir[PATH_MAX] = { 0 }; dt_loc_get_tmp_dir(localtmpdir, sizeof(localtmpdir)); - for(int k = MAX_SNAPSHOT-1; k >= 0; k--) + for(int k = 0; k < MAX_SNAPSHOT; k++) { - _clear_snapshot_entry(&d->snapshot[k]); + dt_lib_snapshot_t *s = &d->snapshot[k]; + s->id = k; - /* create snapshot button */ - d->snapshot[k].button = gtk_toggle_button_new(); - gtk_widget_set_name(d->snapshot[k].button, "snapshot-button"); - - // 4 items inside, num, status, name, label - GtkWidget *num = gtk_label_new(""); - gtk_widget_set_name(num, "history-number"); - dt_gui_add_class(num, "dt_monospace"); - - GtkWidget *status = gtk_label_new(""); - dt_gui_add_class(status, "dt_monospace"); - - GtkWidget *name = gtk_label_new(""); - gtk_label_set_ellipsize(GTK_LABEL(name), PANGO_ELLIPSIZE_MIDDLE); - gtk_widget_set_halign(name, GTK_ALIGN_START); - d->snapshot[k].name = name; - - GtkWidget *entry = gtk_entry_new(); - gtk_widget_set_halign(entry, GTK_ALIGN_START); - d->snapshot[k].entry = entry; - g_signal_connect(G_OBJECT(entry), "activate", - G_CALLBACK(_entry_activated_callback), self); + _clear_snapshot_entry(s); + _init_snapshot_entry(self, s); GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(box), num, FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(box), status, FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(box), name, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(box), entry, TRUE, TRUE, 0); + // 4 items inside box, num, status, name, label + + gtk_box_pack_start(GTK_BOX(box), s->num, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(box), s->status, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(box), s->name, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(box), s->entry, TRUE, TRUE, 0); gtk_widget_show_all(box); // hide entry, will be used only when editing - gtk_widget_hide(entry); + gtk_widget_hide(s->entry); - gtk_container_add(GTK_CONTAINER(d->snapshot[k].button), box); - - g_signal_connect(G_OBJECT(d->snapshot[k].button), "toggled", - G_CALLBACK(_lib_snapshots_toggled_callback), self); - g_signal_connect(G_OBJECT(d->snapshot[k].button), "button-press-event", - G_CALLBACK(_lib_button_button_pressed_callback), self); + gtk_container_add(GTK_CONTAINER(s->button), box); /* add button to snapshot box */ - gtk_box_pack_start(GTK_BOX(d->snapshots_box), d->snapshot[k].button, FALSE, FALSE, 0); + gtk_box_pack_end(GTK_BOX(d->snapshots_box), s->button, FALSE, FALSE, 0); /* prevent widget to show on external show all */ - gtk_widget_set_no_show_all(d->snapshot[k].button, TRUE); + gtk_widget_set_no_show_all(s->button, TRUE); } /* add snapshot box and take snapshot button to widget ui*/ @@ -738,11 +795,13 @@ G_CALLBACK(_signal_profile_changed), self); DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_DEVELOP_IMAGE_CHANGED, G_CALLBACK(_signal_image_changed), self); + DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_IMAGE_REMOVED, + G_CALLBACK(_signal_image_removed), self); } void gui_cleanup(dt_lib_module_t *self) { - _clear_snapshots(self, -1); + _clear_snapshots(self); g_free(self->data); self->data = NULL; @@ -758,6 +817,10 @@ dt_dev_write_history(darktable.develop); dt_lib_snapshot_t *s = &d->snapshot[d->num_snapshots]; + + // set new snapshot_id + s->id = d->num_snapshots; + _clear_snapshot_entry(s); if(darktable.develop->history_end > 0) @@ -784,10 +847,6 @@ s->history_end = darktable.develop->history_end; s->imgid = darktable.develop->image_storage.id; - // set new snapshot_id - - s->id = d->num_snapshots; - sqlite3_stmt *stmt; DT_DEBUG_SQLITE3_PREPARE_V2 @@ -826,7 +885,6 @@ gtk_entry_set_text(lentry, s->label ? s->label : ""); - gtk_widget_grab_focus(s->button); g_free(txt); @@ -863,6 +921,7 @@ else gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(d->snapshot[k].button), FALSE); } + darktable.lib->proxy.snapshots.enabled = d->selected >= 0; --darktable.gui->reset; diff -Nru darktable-4.4.2/src/libs/styles.c darktable-4.6.1/src/libs/styles.c --- darktable-4.4.2/src/libs/styles.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/styles.c 2024-02-16 17:31:09.000000000 +0000 @@ -232,7 +232,8 @@ GList *list = dt_act_on_get_images(TRUE, TRUE, FALSE); if(name) { - dt_styles_apply_to_list(name, list, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d->duplicate))); + dt_styles_apply_to_list(name, list, + gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d->duplicate))); g_free(name); } g_list_free(list); @@ -272,7 +273,10 @@ GList *list = dt_act_on_get_images(TRUE, TRUE, FALSE); - if(list) dt_multiple_styles_apply_to_list(style_names, list, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d->duplicate))); + if(list) + dt_multiple_styles_apply_to_list + (style_names, list, + gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(d->duplicate))); g_list_free_full(style_names, g_free); g_list_free(list); @@ -299,6 +303,8 @@ GtkTreeModel *model= gtk_tree_view_get_model(d->tree); GList *styles = gtk_tree_selection_get_selected_rows(selection, &model); + GList *new_name_list = NULL; + for(const GList *style = styles; style; style = g_list_next(style)) { char *name = NULL; @@ -311,21 +317,56 @@ if(name) { - dt_gui_styles_dialog_edit(name); + char *new_name = NULL; + // update view is necessary as we may have changed the style name + dt_gui_styles_dialog_edit(name, &new_name); + new_name_list = g_list_prepend(new_name_list, new_name); _gui_styles_update_view(d); g_free(name); } } - g_list_free_full (styles, (GDestroyNotify) gtk_tree_path_free); + + // we need to iterate over all styles + if(new_name_list) + { + gboolean valid = gtk_tree_model_get_iter_first(model, &iter); + for(; valid; valid = gtk_tree_model_iter_next(model, &iter)) + { + char *name = NULL; + GValue value = {0,}; + gtk_tree_model_get_value(model, &iter, DT_STYLES_COL_FULLNAME, &value); + if(G_VALUE_HOLDS_STRING(&value)) + name = g_strdup(g_value_get_string(&value)); + g_value_unset(&value); + + if(name) + { + // and select back all the previously selected paths + for(const GList *sname = new_name_list; sname; sname = g_list_next(sname)) + { + const char *newname = (char *)sname->data; + if(newname && !strcmp(name, newname)) + { + gtk_tree_selection_select_iter(selection, &iter); + break; + } + } + g_free(name); + } + } + } + g_list_free_full(new_name_list, g_free); + g_list_free_full(styles, (GDestroyNotify) gtk_tree_path_free); } gboolean _ask_before_delete_style(const gint style_cnt) { -return !dt_conf_get_bool("plugins/lighttable/style/ask_before_delete_style") - || dt_gui_show_yes_no_dialog( - ngettext("remove style?", "remove styles?", style_cnt), - ngettext("do you really want to remove %d style?", "do you really want to remove %d styles?", style_cnt), - style_cnt); + return !dt_conf_get_bool("plugins/lighttable/style/ask_before_delete_style") + || dt_gui_show_yes_no_dialog( + ngettext("remove style?", "remove styles?", style_cnt), + ngettext("do you really want to remove %d style?", + "do you really want to remove %d styles?", style_cnt), + style_cnt); } static void _delete_clicked(GtkWidget *w, gpointer user_data) @@ -434,16 +475,22 @@ if(dt_conf_get_bool("plugins/lighttable/style/ask_before_delete_style")) { - GtkWidget *dialog_overwrite_export = gtk_dialog_new_with_buttons(_("overwrite style?"), GTK_WINDOW(win), GTK_DIALOG_DESTROY_WITH_PARENT, - _("cancel"), GTK_RESPONSE_CANCEL, - _("skip"), GTK_RESPONSE_NONE, - _("overwrite"), GTK_RESPONSE_ACCEPT, NULL); + GtkWidget *dialog_overwrite_export = + gtk_dialog_new_with_buttons(_("overwrite style?"), GTK_WINDOW(win), + GTK_DIALOG_DESTROY_WITH_PARENT, + _("_cancel"), GTK_RESPONSE_CANCEL, + _("_skip"), GTK_RESPONSE_NONE, + _("_overwrite"), GTK_RESPONSE_ACCEPT, NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog_overwrite_export), + GTK_RESPONSE_CANCEL); // contents for dialog - GtkWidget *content_area = gtk_dialog_get_content_area(GTK_DIALOG(dialog_overwrite_export)); + GtkWidget *content_area = + gtk_dialog_get_content_area(GTK_DIALOG(dialog_overwrite_export)); sprintf(overwrite_str, _("style `%s' already exists.\ndo you want to overwrite existing style?\n"), stylename); GtkWidget *label = gtk_label_new(overwrite_str); - GtkWidget *overwrite_dialog_check_button = gtk_check_button_new_with_label(_("apply this option to all existing styles")); + GtkWidget *overwrite_dialog_check_button = + gtk_check_button_new_with_label(_("apply this option to all existing styles")); gtk_container_add(GTK_CONTAINER(content_area), label); gtk_container_add(GTK_CONTAINER(content_area), overwrite_dialog_check_button); @@ -617,10 +664,12 @@ // use security check/option if(dt_conf_get_bool("plugins/lighttable/style/ask_before_delete_style")) { - GtkWidget *dialog_overwrite_import = gtk_dialog_new_with_buttons(_("overwrite style?"), GTK_WINDOW(win), GTK_DIALOG_DESTROY_WITH_PARENT, - _("cancel"), GTK_RESPONSE_CANCEL, - _("skip"), GTK_RESPONSE_NONE, - _("overwrite"), GTK_RESPONSE_ACCEPT, NULL); + GtkWidget *dialog_overwrite_import = gtk_dialog_new_with_buttons(_("overwrite style?"), GTK_WINDOW(win), + GTK_DIALOG_DESTROY_WITH_PARENT, + _("_cancel"), GTK_RESPONSE_CANCEL, + _("_skip"), GTK_RESPONSE_NONE, + _("_overwrite"), GTK_RESPONSE_ACCEPT, NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog_overwrite_import), GTK_RESPONSE_CANCEL); // contents for dialog GtkWidget *content_area = gtk_dialog_get_content_area(GTK_DIALOG(dialog_overwrite_import)); diff -Nru darktable-4.4.2/src/libs/tagging.c darktable-4.6.1/src/libs/tagging.c --- darktable-4.4.2/src/libs/tagging.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/tagging.c 2024-02-16 17:31:09.000000000 +0000 @@ -63,9 +63,13 @@ struct { gchar *tagname; - GtkTreePath *path, *lastpath; - int expand_timeout, scroll_timeout, last_y; - gboolean root, tag_source; + GtkTreePath *path; + GtkTreePath *lastpath; + guint expand_timeout; + guint scroll_timeout; + int last_y; + gboolean root; + gboolean tag_source; } drag; gboolean update_selected_tags; } dt_lib_tagging_t; @@ -115,8 +119,7 @@ uint32_t container(dt_lib_module_t *self) { - const dt_view_t *cv = dt_view_manager_get_current_view(darktable.view_manager); - if(cv->view((dt_view_t *)cv) == DT_VIEW_DARKROOM) + if(dt_view_get_current() == DT_VIEW_DARKROOM) return DT_UI_CONTAINER_PANEL_LEFT_CENTER; else return DT_UI_CONTAINER_PANEL_RIGHT_CENTER; @@ -1480,8 +1483,11 @@ if(img_count > 0 || dt_conf_get_bool("plugins/lighttable/tagging/ask_before_delete_tag")) { GtkWidget *win = dt_ui_main_window(darktable.gui->ui); - GtkWidget *dialog = gtk_dialog_new_with_buttons(_("delete tag?"), GTK_WINDOW(win), GTK_DIALOG_DESTROY_WITH_PARENT, - _("cancel"), GTK_RESPONSE_NONE, _("delete"), GTK_RESPONSE_YES, NULL); + GtkWidget *dialog = gtk_dialog_new_with_buttons(_("delete tag?"), GTK_WINDOW(win), + GTK_DIALOG_DESTROY_WITH_PARENT, + _("_cancel"), GTK_RESPONSE_NONE, + _("_delete"), GTK_RESPONSE_YES, NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_NONE); gtk_window_set_default_size(GTK_WINDOW(dialog), 300, -1); GtkWidget *area = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 8); @@ -1568,8 +1574,11 @@ if(tag_count == 0) return; GtkWidget *win = dt_ui_main_window(darktable.gui->ui); - GtkWidget *dialog = gtk_dialog_new_with_buttons( _("delete node?"), GTK_WINDOW(win), GTK_DIALOG_DESTROY_WITH_PARENT, - _("cancel"), GTK_RESPONSE_NONE, _("delete"), GTK_RESPONSE_YES, NULL); + GtkWidget *dialog = gtk_dialog_new_with_buttons(_("delete node?"), GTK_WINDOW(win), + GTK_DIALOG_DESTROY_WITH_PARENT, + _("_cancel"), GTK_RESPONSE_NONE, + _("_delete"), GTK_RESPONSE_YES, NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_NONE); gtk_window_set_default_size(GTK_WINDOW(dialog), 300, -1); GtkWidget *area = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 8); @@ -1629,6 +1638,13 @@ g_free(tagname); } +static void _name_changed(GtkEntry *entry, + GtkDialog *dialog) +{ + const gchar *name = gtk_entry_get_text(entry); + gtk_dialog_set_response_sensitive(dialog, GTK_RESPONSE_YES, name && *name); +} + // create tag allows the user to create a single tag, which can be an element of the hierarchy or not static void _pop_menu_dictionary_create_tag(GtkWidget *menuitem, dt_lib_module_t *self) { @@ -1649,8 +1665,11 @@ DT_LIB_TAGGING_COL_PATH, &path, DT_LIB_TAGGING_COL_ID, &tagid, -1); GtkWidget *win = dt_ui_main_window(darktable.gui->ui); - GtkWidget *dialog = gtk_dialog_new_with_buttons(_("create tag"), GTK_WINDOW(win), GTK_DIALOG_DESTROY_WITH_PARENT, - _("cancel"), GTK_RESPONSE_NONE, _("save"), GTK_RESPONSE_YES, NULL); + GtkWidget *dialog = gtk_dialog_new_with_buttons(_("create tag"), GTK_WINDOW(win), + GTK_DIALOG_DESTROY_WITH_PARENT, + _("_cancel"), GTK_RESPONSE_NONE, + _("_save"), GTK_RESPONSE_YES, NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_YES); gtk_window_set_default_size(GTK_WINDOW(dialog), 300, -1); GtkWidget *area = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 8); @@ -1662,6 +1681,9 @@ label = gtk_label_new(_("name: ")); gtk_box_pack_start(GTK_BOX(box), label, FALSE, TRUE, 0); GtkWidget *entry = gtk_entry_new(); + gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE); + gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog), GTK_RESPONSE_YES, FALSE); + g_signal_connect(entry, "changed", G_CALLBACK(_name_changed), dialog); gtk_box_pack_end(GTK_BOX(box), entry, TRUE, TRUE, 0); GtkWidget *category; @@ -1779,8 +1801,11 @@ } GtkWidget *win = dt_ui_main_window(darktable.gui->ui); - GtkWidget *dialog = gtk_dialog_new_with_buttons(_("edit"), GTK_WINDOW(win), GTK_DIALOG_DESTROY_WITH_PARENT, - _("cancel"), GTK_RESPONSE_NONE, _("save"), GTK_RESPONSE_YES, NULL); + GtkWidget *dialog = gtk_dialog_new_with_buttons(_("edit"), GTK_WINDOW(win), + GTK_DIALOG_DESTROY_WITH_PARENT, + _("_cancel"), GTK_RESPONSE_NONE, + _("_save"), GTK_RESPONSE_YES, NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_YES); gtk_window_set_default_size(GTK_WINDOW(dialog), 300, -1); GtkWidget *area = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 8); @@ -1809,6 +1834,8 @@ label = gtk_label_new(_("name: ")); gtk_box_pack_start(GTK_BOX(box), label, FALSE, TRUE, 0); GtkWidget *entry = gtk_entry_new(); + gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE); + g_signal_connect(entry, "changed", G_CALLBACK(_name_changed), dialog); gtk_entry_set_text(GTK_ENTRY(entry), subtag ? subtag : tagname); gtk_box_pack_end(GTK_BOX(box), entry, TRUE, TRUE, 0); @@ -2053,8 +2080,11 @@ if(tag_count == 0) return; GtkWidget *win = dt_ui_main_window(darktable.gui->ui); - GtkWidget *dialog = gtk_dialog_new_with_buttons(_("change path"), GTK_WINDOW(win), GTK_DIALOG_DESTROY_WITH_PARENT, - _("cancel"), GTK_RESPONSE_NONE, _("save"), GTK_RESPONSE_YES, NULL); + GtkWidget *dialog = gtk_dialog_new_with_buttons(_("change path"), GTK_WINDOW(win), + GTK_DIALOG_DESTROY_WITH_PARENT, + _("_cancel"), GTK_RESPONSE_NONE, + _("_save"), GTK_RESPONSE_YES, NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_YES); gtk_window_set_default_size(GTK_WINDOW(dialog), 300, -1); GtkWidget *area = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 8); @@ -2079,6 +2109,7 @@ g_free(text); GtkWidget *entry = gtk_entry_new(); + gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE); gtk_entry_set_text(GTK_ENTRY(entry), tagname); gtk_box_pack_start(GTK_BOX(vbox), entry, FALSE, TRUE, 0); @@ -3468,9 +3499,10 @@ GtkWidget *win = dt_ui_main_window(darktable.gui->ui); GtkWidget *dialog = gtk_dialog_new_with_buttons(_("tagging settings"), GTK_WINDOW(win), GTK_DIALOG_DESTROY_WITH_PARENT, - _("cancel"), GTK_RESPONSE_NONE, - _("save"), GTK_RESPONSE_ACCEPT, NULL); + _("_cancel"), GTK_RESPONSE_NONE, + _("_save"), GTK_RESPONSE_ACCEPT, NULL); g_signal_connect(dialog, "key-press-event", G_CALLBACK(dt_handle_dialog_enter), NULL); + gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); dt_prefs_init_dialog_tagging(dialog); #ifdef GDK_WINDOWING_QUARTZ diff -Nru darktable-4.4.2/src/libs/tools/darktable.c darktable-4.6.1/src/libs/tools/darktable.c --- darktable-4.4.2/src/libs/tools/darktable.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/tools/darktable.c 2024-02-16 17:31:09.000000000 +0000 @@ -27,9 +27,7 @@ #include "gui/gtk.h" #include "libs/lib.h" #include "libs/lib_api.h" -#ifdef GDK_WINDOWING_QUARTZ -#include "osx/osx.h" -#endif +#include "gui/about.h" #include <librsvg/rsvg.h> // ugh, ugly hack. why do people break stuff all the time? @@ -57,8 +55,6 @@ /* button press callback */ static gboolean _lib_darktable_button_press_callback(GtkWidget *widget, GdkEventButton *event, gpointer user_data); -/* show the about dialog */ -static void _lib_darktable_show_about_dialog(); const char *name(dt_lib_module_t *self) { @@ -268,48 +264,9 @@ gpointer user_data) { /* show about box */ - _lib_darktable_show_about_dialog(); + darktable_show_about_dialog(); return TRUE; } - -static void _lib_darktable_show_about_dialog() -{ - GtkWidget *dialog = gtk_about_dialog_new(); - gtk_widget_set_name (dialog, "about-dialog"); -#ifdef GDK_WINDOWING_QUARTZ - dt_osx_disallow_fullscreen(dialog); -#endif - gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(dialog), PACKAGE_NAME); - gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dialog), darktable_package_version); - char *copyright = g_strdup_printf(_("copyright (c) the authors 2009-%s"), darktable_last_commit_year); - gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(dialog), copyright); - g_free(copyright); - gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(dialog), - _("organize and develop images from digital cameras")); - gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(dialog), "https://www.darktable.org/"); - gtk_about_dialog_set_website_label(GTK_ABOUT_DIALOG(dialog), "website"); - dt_logo_season_t season = dt_util_get_logo_season(); - char *icon; - if(season != DT_LOGO_SEASON_NONE) - icon = g_strdup_printf("darktable-%d", (int)season); - else - icon = g_strdup("darktable"); - gtk_about_dialog_set_logo_icon_name(GTK_ABOUT_DIALOG(dialog), icon); - g_free(icon); - - const char *str = _("all those of you that made previous releases possible"); - -#include "tools/darktable_authors.h" - - const char *final[] = {str, NULL }; - gtk_about_dialog_add_credit_section (GTK_ABOUT_DIALOG(dialog), _("and..."), final); - - gtk_about_dialog_set_translator_credits(GTK_ABOUT_DIALOG(dialog), _("translator-credits")); - - gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(dt_ui_main_window(darktable.gui->ui))); - gtk_dialog_run(GTK_DIALOG(dialog)); - gtk_widget_destroy(dialog); -} // clang-format off // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py // vim: shiftwidth=2 expandtab tabstop=2 cindent diff -Nru darktable-4.4.2/src/libs/tools/global_toolbox.c darktable-4.6.1/src/libs/tools/global_toolbox.c --- darktable-4.4.2/src/libs/tools/global_toolbox.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/tools/global_toolbox.c 2024-02-16 17:31:09.000000000 +0000 @@ -185,13 +185,13 @@ gboolean show = FALSE; // thumbnails part - const dt_view_t *cv = dt_view_manager_get_current_view(darktable.view_manager); + const dt_view_type_flags_t cv = dt_view_get_current(); gboolean thumbs_state; - if(g_strcmp0(cv->module_name, "slideshow") == 0) + if(cv == DT_VIEW_SLIDESHOW) { thumbs_state = FALSE; } - else if(g_strcmp0(cv->module_name, "lighttable") == 0) + else if(cv == DT_VIEW_LIGHTTABLE) { if(dt_view_lighttable_preview_state(darktable.view_manager) || dt_view_lighttable_get_layout(darktable.view_manager) == DT_LIGHTTABLE_LAYOUT_CULLING) @@ -265,7 +265,7 @@ } // and we do the same for culling/preview if needed - if(g_strcmp0(cv->module_name, "lighttable") == 0 + if(cv == DT_VIEW_LIGHTTABLE && (dt_view_lighttable_preview_state(darktable.view_manager) || dt_view_lighttable_get_layout(darktable.view_manager) == DT_LIGHTTABLE_LAYOUT_CULLING)) { @@ -618,26 +618,33 @@ static void _set_mapping_mode_cursor(GtkWidget *widget) { - GdkCursorType cursor = GDK_DIAMOND_CROSS; + GdkDisplay *display = gdk_display_get_default(); + GdkWindow *window = gtk_widget_get_window(dt_ui_main_window(darktable.gui->ui)); + GdkCursor *cursor = NULL; if(GTK_IS_EVENT_BOX(widget)) widget = gtk_bin_get_child(GTK_BIN(widget)); if(widget && !strcmp(gtk_widget_get_name(widget), "module-header")) - cursor = GDK_BASED_ARROW_DOWN; + cursor = gdk_cursor_new_from_name(display, "context-menu"); else if(dt_action_widget(darktable.control->mapping_widget) && darktable.develop) { - switch(dt_dev_modulegroups_basics_module_toggle(darktable.develop, widget, FALSE)) - { - case 1: cursor = GDK_SB_UP_ARROW; break; - case -1: cursor = GDK_SB_DOWN_ARROW; break; - default: cursor = GDK_BOX_SPIRAL; - } + guint size = gdk_display_get_default_cursor_size(display); + cairo_surface_t *surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, size * 1.5, size); + cairo_t *cr = cairo_create(surface); + + dtgtk_cairo_paint_flags_t flags = dt_dev_modulegroups_basics_module_toggle(darktable.develop, widget, FALSE); + dtgtk_cairo_paint_shortcut(cr, 0, 0, size, size, flags, GINT_TO_POINTER(TRUE)); + cursor = gdk_cursor_new_from_surface(display, surface, size/2, size/2); + cairo_surface_destroy(surface); + + gdk_window_set_cursor(window, NULL); // work around bug where gtk seems to buffer surface cursors } + else + cursor = gdk_cursor_new_from_name(display, "not-allowed"); - dt_control_allow_change_cursor(); - dt_control_change_cursor(cursor); - dt_control_forbid_change_cursor(); + gdk_window_set_cursor(window, cursor); + g_object_unref(cursor); } static void _show_shortcuts_prefs(GtkWidget *w) @@ -654,12 +661,13 @@ gtk_window_resize(GTK_WINDOW(shortcuts_dialog), _shortcuts_dialog_posize.w, _shortcuts_dialog_posize.h); } g_signal_connect(G_OBJECT(shortcuts_dialog), "configure-event", G_CALLBACK(_resize_shortcuts_dialog), NULL); + gtk_widget_show_all(shortcuts_dialog); // separately show_all content later, otherwise activates first treeview //grab the content area of the dialog GtkWidget *content = gtk_dialog_get_content_area(GTK_DIALOG(shortcuts_dialog)); gtk_box_pack_start(GTK_BOX(content), dt_shortcuts_prefs(w), TRUE, TRUE, 0); + gtk_widget_show_all(content); - gtk_widget_show_all(shortcuts_dialog); gtk_dialog_run(GTK_DIALOG(shortcuts_dialog)); gtk_widget_destroy(shortcuts_dialog); } @@ -762,6 +770,8 @@ { if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) { + dt_control_forbid_change_cursor(); + _set_mapping_mode_cursor(widget); gdk_event_handler_set(_main_do_event_keymap, user_data, NULL); } else diff -Nru darktable-4.4.2/src/libs/tools/timeline.c darktable-4.6.1/src/libs/tools/timeline.c --- darktable-4.4.2/src/libs/tools/timeline.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/libs/tools/timeline.c 2024-02-16 17:31:09.000000000 +0000 @@ -1322,7 +1322,7 @@ { int z = strip->zoom; int delta_y = 0; - if(dt_gui_get_scroll_unit_deltas(e, NULL, &delta_y)) + if(dt_gui_get_scroll_unit_delta(e, &delta_y)) { if(delta_y < 0) { diff -Nru darktable-4.4.2/src/lua/call.c darktable-4.6.1/src/lua/call.c --- darktable-4.4.2/src/lua/call.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/lua/call.c 2024-02-16 17:31:09.000000000 +0000 @@ -30,10 +30,7 @@ int dt_lua_check_print_error(lua_State* L, int result) { if(result == LUA_OK) return result; - if(darktable.unmuted & DT_DEBUG_LUA) - { - dt_print(DT_DEBUG_LUA, "LUA ERROR : %s\n", lua_tostring(L, -1)); - } + dt_print(DT_DEBUG_LUA, "LUA ERROR : %s\n", lua_tostring(L, -1)); lua_pop(L,1); // remove the error message, it has been handled return result; } diff -Nru darktable-4.4.2/src/lua/configuration.h darktable-4.6.1/src/lua/configuration.h --- darktable-4.4.2/src/lua/configuration.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/lua/configuration.h 2024-02-16 17:31:09.000000000 +0000 @@ -38,10 +38,11 @@ // 3.8.0 was 8.0.0 (moved to lua 5.4 and added some events) // 4.2.0 was 9.0.0 (view toolbox functions and snapshot filename removed) // 4.4.0 was 9.1.0 (added mimic and dt_lua_image_t changes) +// 4.6.0 was 9.2.0 (added change_timestamp to dt_image_t) /* incompatible API change */ #define LUA_API_VERSION_MAJOR 9 /* backward compatible API change */ -#define LUA_API_VERSION_MINOR 1 +#define LUA_API_VERSION_MINOR 2 /* bugfixes that should not change anything to the API */ #define LUA_API_VERSION_PATCH 0 /* suffix for unstable version */ diff -Nru darktable-4.4.2/src/lua/image.c darktable-4.6.1/src/lua/image.c --- darktable-4.4.2/src/lua/image.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/lua/image.c 2024-02-16 17:31:09.000000000 +0000 @@ -345,6 +345,16 @@ } } +static int change_timestamp_member(lua_State *L) +{ + const dt_image_t *my_image = checkreadimage(L, 1); + char sdt[50] = {0}; + dt_datetime_gtimespan_to_local(sdt, sizeof(sdt), my_image->change_timestamp, FALSE, TRUE); + lua_pushstring(L, sdt); + releasereadimage(L, my_image); + return 1; +} + static int local_copy_member(lua_State *L) { if(lua_gettop(L) != 3) @@ -584,6 +594,8 @@ } lua_pushcfunction(L, exif_datetime_taken_member); dt_lua_type_register(L, dt_lua_image_t, "exif_datetime_taken"); + lua_pushcfunction(L, change_timestamp_member); + dt_lua_type_register(L, dt_lua_image_t, "change_timestamp"); // metadata for(unsigned int i = 0; i < DT_METADATA_NUMBER; i++) { diff -Nru darktable-4.4.2/src/osx/osx.h darktable-4.6.1/src/osx/osx.h --- darktable-4.4.2/src/osx/osx.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/osx/osx.h 2024-02-16 17:31:09.000000000 +0000 @@ -24,7 +24,6 @@ extern "C" { #endif -void dt_osx_autoset_dpi(GtkWidget *widget); float dt_osx_get_ppd(); void dt_osx_disallow_fullscreen(GtkWidget *widget); gboolean dt_osx_file_trash(const char *filename, GError **error); diff -Nru darktable-4.4.2/src/osx/osx.mm darktable-4.6.1/src/osx/osx.mm --- darktable-4.4.2/src/osx/osx.mm 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/osx/osx.mm 2024-02-16 17:31:09.000000000 +0000 @@ -39,24 +39,6 @@ #include "osx.h" #include "libintl.h" -void dt_osx_autoset_dpi(GtkWidget *widget) -{ -#if 0 - GdkScreen *screen = gtk_widget_get_screen(widget); - if(!screen) - screen = gdk_screen_get_default(); - if(!screen) - return; - - CGDirectDisplayID id = CGMainDisplayID(); - CGSize size_in_mm = CGDisplayScreenSize(id); - int width = CGDisplayPixelsWide(id); - int height = CGDisplayPixelsHigh(id); - gdk_screen_set_resolution(screen, - 25.4 * sqrt(width * width + height * height) - / sqrt(size_in_mm.width * size_in_mm.width + size_in_mm.height * size_in_mm.height)); -#endif -} float dt_osx_get_ppd() { diff -Nru darktable-4.4.2/src/version_gen.c darktable-4.6.1/src/version_gen.c --- darktable-4.4.2/src/version_gen.c 2023-07-19 07:23:28.000000000 +0000 +++ darktable-4.6.1/src/version_gen.c 2024-02-16 17:32:26.000000000 +0000 @@ -2,13 +2,13 @@ #ifdef HAVE_CONFIG_H #include "config.h" #endif - const char darktable_package_version[] = "4.4.2"; - const char darktable_package_string[] = PACKAGE_NAME " 4.4.2"; - const char darktable_last_commit_year[] = "2023"; + const char darktable_package_version[] = "4.6.1"; + const char darktable_package_string[] = PACKAGE_NAME " 4.6.1"; + const char darktable_last_commit_year[] = "2024"; #else #define DT_MAJOR 4 - #define DT_MINOR 4 - #define DT_PATCH 2 + #define DT_MINOR 6 + #define DT_PATCH 1 #define DT_N_COMMITS 0 - #define LAST_COMMIT_YEAR "2023" + #define LAST_COMMIT_YEAR "2024" #endif diff -Nru darktable-4.4.2/src/views/darkroom.c darktable-4.6.1/src/views/darkroom.c --- darktable-4.4.2/src/views/darkroom.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/views/darkroom.c 2024-02-16 17:31:09.000000000 +0000 @@ -119,8 +119,10 @@ void init(dt_view_t *self) { - self->data = malloc(sizeof(dt_develop_t)); - dt_dev_init((dt_develop_t *)self->data, TRUE); + dt_develop_t *dev = malloc(sizeof(dt_develop_t)); + self->data = darktable.develop = dev; + + dt_dev_init(dev, TRUE); darktable.view_manager->proxy.darkroom.view = self; @@ -138,6 +140,7 @@ lua_pushcfunction(L, dt_lua_event_multiinstance_trigger); dt_lua_event_add(L, "darkroom-image-loaded"); #endif + dev->autosaving = TRUE; } uint32_t view(const dt_view_t *self) @@ -152,19 +155,19 @@ // unref the grid lines popover if needed if(darktable.view_manager->guides_popover) g_object_unref(darktable.view_manager->guides_popover); - if(dev->second_window.second_wnd) + if(dev->second_wnd) { - if(gtk_widget_is_visible(dev->second_window.second_wnd)) + if(gtk_widget_is_visible(dev->second_wnd)) { dt_conf_set_bool("second_window/last_visible", TRUE); - _darkroom_ui_second_window_write_config(dev->second_window.second_wnd); + _darkroom_ui_second_window_write_config(dev->second_wnd); } else dt_conf_set_bool("second_window/last_visible", FALSE); - gtk_widget_destroy(dev->second_window.second_wnd); - dev->second_window.second_wnd = NULL; - dev->second_window.widget = NULL; + gtk_widget_destroy(dev->second_wnd); + dev->second_wnd = NULL; + dev->preview2.widget = NULL; } else { @@ -180,22 +183,6 @@ return DT_DARKROOM_LAYOUT_EDITING; } -static cairo_filter_t _get_filtering_level(dt_develop_t *dev, - const dt_dev_zoom_t zoom, - const int closeup) -{ - const float scale = dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 0); - - // for pixel representation above 1:1, that is when a single pixel on the image - // is represented on screen by multiple pixels we want to disable any cairo filter - // which could only blur or smooth the output. - - if(scale >= 0.9999f) - return CAIRO_FILTER_FAST; - else - return darktable.gui->dr_filter_image; -} - void _display_module_trouble_message_callback(gpointer instance, dt_iop_module_t *module, const char *const trouble_msg, @@ -255,39 +242,18 @@ static void _darkroom_pickers_draw(dt_view_t *self, cairo_t *cri, - const int32_t width, - const int32_t height, - const dt_dev_zoom_t zoom, - const int closeup, - const float zoom_x, - const float zoom_y, + const float wd, + const float ht, + const float zoom_scale, GSList *samples, const gboolean is_primary_sample) { if(!samples) return; - dt_develop_t *dev = (dt_develop_t *)self->data; - cairo_save(cri); - // The colorpicker samples bounding rectangle should only be displayed inside the visible image - const int pwidth = (dev->pipe->output_backbuf_width<<closeup) / darktable.gui->ppd; - const int pheight = (dev->pipe->output_backbuf_height<<closeup) / darktable.gui->ppd; - - const double hbar = (self->width - pwidth) * .5; - const double tbar = (self->height - pheight) * .5; - cairo_rectangle(cri, hbar, tbar, pwidth, pheight); - cairo_clip(cri); - - // FIXME: use dt_dev_get_processed_size() for this? - const double wd = dev->preview_pipe->backbuf_width; - const double ht = dev->preview_pipe->backbuf_height; - const double zoom_scale = dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 1); const double lw = 1.0 / zoom_scale; const double dashes[1] = { lw * 4.0 }; - cairo_translate(cri, 0.5 * width, 0.5 * height); - cairo_scale(cri, zoom_scale, zoom_scale); - cairo_translate(cri, -0.5 * wd - zoom_x * wd, -0.5 * ht - zoom_y * ht); // makes point sample crosshair gap look nicer cairo_set_line_cap(cri, CAIRO_LINE_CAP_SQUARE); @@ -404,6 +370,63 @@ cairo_restore(cri); } +static inline gboolean _full_request(dt_develop_t *dev) +{ + return + dev->full.pipe->status == DT_DEV_PIXELPIPE_DIRTY + || dev->full.pipe->status == DT_DEV_PIXELPIPE_INVALID + || dev->full.pipe->input_timestamp < dev->preview_pipe->input_timestamp; +} + +static inline gboolean _preview_request(dt_develop_t *dev) +{ + return + dev->preview_pipe->status == DT_DEV_PIXELPIPE_DIRTY + || dev->preview_pipe->status == DT_DEV_PIXELPIPE_INVALID + || dev->full.pipe->input_timestamp > dev->preview_pipe->input_timestamp; +} + +static inline gboolean _preview2_request(dt_develop_t *dev) +{ + return + (dev->preview2.pipe->status == DT_DEV_PIXELPIPE_DIRTY + || dev->preview2.pipe->status == DT_DEV_PIXELPIPE_INVALID + || dev->full.pipe->input_timestamp > dev->preview2.pipe->input_timestamp) + && dev->gui_attached + && dev->preview2.widget + && GTK_IS_WIDGET(dev->preview2.widget); +} + +static void _module_gui_post_expose(dt_iop_module_t *module, cairo_t *cri, + float width, float height, + float x, float y, float zoom_scale) +{ + if(!module || !module->gui_post_expose || width < 1.0f || height < 1.0f) return; + + cairo_save(cri); + module->gui_post_expose(module, cri, width, height, x, y, zoom_scale); + cairo_restore(cri); +} + +static void _view_paint_surface(cairo_t *cr, + const size_t width, + const size_t height, + dt_dev_viewport_t *port, + const dt_window_t window) +{ + dt_dev_pixelpipe_t *p = port->pipe; + + dt_pthread_mutex_lock(&p->backbuf_mutex); + + dt_view_paint_surface(cr, width, height, + port, window, + p->backbuf, p->backbuf_scale, + p->backbuf_width, p->backbuf_height, + p->backbuf_zoom_x, p->backbuf_zoom_y); + + dt_pthread_mutex_unlock(&p->backbuf_mutex); +} + void expose( dt_view_t *self, cairo_t *cri, @@ -413,19 +436,11 @@ int32_t pointery) { cairo_set_source_rgb(cri, .2, .2, .2); - cairo_save(cri); dt_develop_t *dev = (dt_develop_t *)self->data; + dt_dev_viewport_t *port = &dev->full; - // account for border, make it transparent for other modules called below: - pointerx -= dev->border_size; - pointery -= dev->border_size; - - const double tb = dev->border_size; - const double dwidth = width; - const double dheight = height; - - if(dev->gui_synch && !dev->image_loading) + if(dev->gui_synch && !port->pipe->loading) { // synch module guis from gtk thread: ++darktable.gui->reset; @@ -438,162 +453,43 @@ dev->gui_synch = FALSE; } - if(dev->image_status == DT_DEV_PIXELPIPE_DIRTY - || dev->image_status == DT_DEV_PIXELPIPE_INVALID - || dev->pipe->input_timestamp < dev->preview_pipe->input_timestamp) - { - dt_dev_process_image(dev); - } + if(_full_request(dev)) dt_dev_process_image(dev); + if(_preview_request(dev)) dt_dev_process_preview(dev); + if(_preview2_request(dev)) dt_dev_process_preview2(dev); - if(dev->preview_status == DT_DEV_PIXELPIPE_DIRTY - || dev->preview_status == DT_DEV_PIXELPIPE_INVALID - || dev->pipe->input_timestamp > dev->preview_pipe->input_timestamp) - { - dt_dev_process_preview(dev); - } + float pzx = 0.0f, pzy = 0.0f, zoom_scale = 0.0f; + dt_dev_get_pointer_zoom_pos(port, pointerx, pointery, &pzx, &pzy, &zoom_scale); - if(dev->preview2_status == DT_DEV_PIXELPIPE_DIRTY - || dev->preview2_status == DT_DEV_PIXELPIPE_INVALID - || dev->pipe->input_timestamp > dev->preview2_pipe->input_timestamp) + // adjust scroll bars + float zoom_x, zoom_y, boxw, boxh; + if(!dt_dev_get_zoom_bounds(port, &zoom_x, &zoom_y, &boxw, &boxh)) + boxw = boxh = 1.0f; + + /* If boxw and boxh very closely match the zoomed size in the darktable window we might have resizing with + every expose because adding a slider will change the image area and might force a resizing in next expose. + So we disable in cases close to full. + */ + if(boxw > 0.95f) { - dt_dev_process_preview2(dev); + zoom_x = .0f; + boxw = 1.01f; } - - dt_pthread_mutex_t *mutex = NULL; - // FIXME: these four dt_control_get_dev_*() calls each lock/unlock global_mutex -- consolidate this work - const float zoom_y = dt_control_get_dev_zoom_y(); - const float zoom_x = dt_control_get_dev_zoom_x(); - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float backbuf_scale = dt_dev_get_zoom_scale(dev, zoom, 1.0f, 0) * darktable.gui->ppd; - - // define and handle a cairo CAIRO_FORMAT_RGB24 surface here to make modules draw more fluently - static cairo_surface_t *image_surface = NULL; - static int image_surface_width = 0; - static int image_surface_height = 0; - static dt_imgid_t image_surface_imgid = NO_IMGID; - // make a usable surface with requested width & height - if(image_surface_width != width - || image_surface_height != height - || image_surface == NULL) + if(boxh > 0.95f) { - image_surface_width = width; - image_surface_height = height; - if(image_surface) cairo_surface_destroy(image_surface); - image_surface = dt_cairo_image_surface_create(CAIRO_FORMAT_RGB24, width, height); - image_surface_imgid = NO_IMGID; // make sure the surface data are unknown + zoom_y = .0f; + boxh = 1.01f; } - cairo_surface_t *surface; - cairo_t *cr = cairo_create(image_surface); - // adjust scroll bars - { - float zx = zoom_x, zy = zoom_y, boxw = 1., boxh = 1.; - dt_dev_check_zoom_bounds(dev, &zx, &zy, zoom, closeup, &boxw, &boxh); + dt_view_set_scrollbar(self, zoom_x, -0.5 + boxw/2, 0.5, boxw/2, zoom_y, -0.5+ boxh/2, 0.5, boxh/2); - /* If boxw and boxh very closely match the zoomed size in the darktable window we might have resizing with - every expose because adding a slider will change the image area and might force a resizing in next expose. - So we disable in cases close to full. - */ - if(boxw > 0.95f) - { - zx = .0f; - boxw = 1.01f; - } - if(boxh > 0.95f) - { - zy = .0f; - boxh = 1.01f; - } + const gboolean expose_full = + port->pipe->backbuf // do we have an image? + && port->pipe->output_imgid == dev->image_storage.id; // same image? - dt_view_set_scrollbar(self, zx, -0.5 + boxw/2, 0.5, boxw/2, zy, -0.5+ boxh/2, 0.5, boxh/2); - } - - if(dev->pipe->output_backbuf // do we have an image? - && dev->pipe->output_imgid == dev->image_storage.id // same image? - && dev->pipe->backbuf_scale == backbuf_scale // same zoom scale? - && dev->pipe->backbuf_zoom_x == zoom_x - && dev->pipe->backbuf_zoom_y == zoom_y) + if(expose_full) { // draw image - mutex = &dev->pipe->backbuf_mutex; - dt_pthread_mutex_lock(mutex); - const size_t wd = dev->pipe->output_backbuf_width; - const size_t ht = dev->pipe->output_backbuf_height; - - surface = dt_view_create_surface(dev->pipe->output_backbuf, wd, ht); - - if(dev->iso_12646.enabled) - { - // force middle grey in background - dt_gui_gtk_set_source_rgb(cr, DT_GUI_COLOR_ISO12646_BG); - } - else - { - if(dev->full_preview) - dt_gui_gtk_set_source_rgb(cr, DT_GUI_COLOR_DARKROOM_PREVIEW_BG); - else - dt_gui_gtk_set_source_rgb(cr, DT_GUI_COLOR_DARKROOM_BG); - } - cairo_paint(cr); - - dt_view_paint_surface(cr, width, height, surface, wd, ht, DT_WINDOW_MAIN); - - cairo_surface_destroy(surface); - dt_pthread_mutex_unlock(mutex); - image_surface_imgid = dev->image_storage.id; - } - else if(dev->preview_pipe->output_backbuf - && dev->preview_pipe->output_imgid == dev->image_storage.id) - { - // draw preview - mutex = &dev->preview_pipe->backbuf_mutex; - dt_pthread_mutex_lock(mutex); - - if(dev->iso_12646.enabled) - { - // force middle grey in background - dt_gui_gtk_set_source_rgb(cr, DT_GUI_COLOR_ISO12646_BG); - } - else - { - dt_gui_gtk_set_source_rgb(cr, DT_GUI_COLOR_DARKROOM_BG); - } - - cairo_paint(cr); - - if(dev->iso_12646.enabled) - { - // draw the white frame around picture - const double ratio = dt_conf_get_float("darkroom/ui/iso12464_ratio"); - const double tbw = tb * (1.0 - ratio); - cairo_rectangle(cr, tbw, tbw, dwidth - 2.0 * tbw, dheight - 2.0 * tbw); - dt_gui_gtk_set_source_rgb(cr, DT_GUI_COLOR_ISO12646_FG); - cairo_fill(cr); - } - - cairo_rectangle(cr, tb, tb, dwidth - 2.0 * tb, dheight - 2.0 *tb); - cairo_clip(cr); - - surface = dt_view_create_surface(dev->preview_pipe->output_backbuf, - dev->preview_pipe->output_backbuf_width, - dev->preview_pipe->output_backbuf_height); - - const double zoom_scale = dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 1); - const double wd = dev->preview_pipe->output_backbuf_width; - const double ht = dev->preview_pipe->output_backbuf_height; - - cairo_translate(cr, dwidth / 2.0, dheight / 2.0); - cairo_scale(cr, zoom_scale, zoom_scale); - cairo_translate(cr, -0.5 * wd - zoom_x * wd, - 0.5 * ht - zoom_y * ht); - - cairo_rectangle(cr, 0.0, 0.0, wd, ht); - cairo_set_source_surface(cr, surface, 0.0, 0.0); - cairo_pattern_set_filter(cairo_get_source(cr), _get_filtering_level(dev, zoom, closeup)); - cairo_fill(cr); - cairo_surface_destroy(surface); - dt_pthread_mutex_unlock(mutex); - image_surface_imgid = dev->image_storage.id; + _view_paint_surface(cri, width, height, port, DT_WINDOW_MAIN); } else if(dev->preview_pipe->output_imgid != dev->image_storage.id) { @@ -629,8 +525,8 @@ if(dt_conf_get_bool("darkroom/ui/loading_screen")) { - dt_gui_gtk_set_source_rgb(cr, DT_GUI_COLOR_DARKROOM_BG); - cairo_paint(cr); + dt_gui_gtk_set_source_rgb(cri, DT_GUI_COLOR_DARKROOM_BG); + cairo_paint(cri); // waiting message PangoRectangle ink; @@ -638,21 +534,20 @@ PangoFontDescription *desc = pango_font_description_copy_static(darktable.bauhaus->pango_font_desc); pango_font_description_set_absolute_size(desc, fontsize * PANGO_SCALE); pango_font_description_set_weight(desc, PANGO_WEIGHT_BOLD); - layout = pango_cairo_create_layout(cr); + layout = pango_cairo_create_layout(cri); pango_layout_set_font_description(layout, desc); pango_layout_set_text(layout, load_txt, -1); pango_layout_get_pixel_extents(layout, &ink, NULL); - const double xc = dwidth / 2.0, yc = dheight * 0.85 - DT_PIXEL_APPLY_DPI(10), wd = ink.width * 0.5; - cairo_move_to(cr, xc - wd, yc + 1.0 / 3.0 * fontsize - fontsize); - pango_cairo_layout_path(cr, layout); - cairo_set_line_width(cr, 2.0); - dt_gui_gtk_set_source_rgb(cr, DT_GUI_COLOR_LOG_BG); - cairo_stroke_preserve(cr); - dt_gui_gtk_set_source_rgb(cr, DT_GUI_COLOR_LOG_FG); - cairo_fill(cr); + const double xc = width / 2.0, yc = height * 0.85 - DT_PIXEL_APPLY_DPI(10), wd = ink.width * 0.5; + cairo_move_to(cri, xc - wd, yc + 1.0 / 3.0 * fontsize - fontsize); + pango_cairo_layout_path(cri, layout); + cairo_set_line_width(cri, 2.0); + dt_gui_gtk_set_source_rgb(cri, DT_GUI_COLOR_LOG_BG); + cairo_stroke_preserve(cri); + dt_gui_gtk_set_source_rgb(cri, DT_GUI_COLOR_LOG_FG); + cairo_fill(cri); pango_font_description_free(desc); g_object_unref(layout); - image_surface_imgid = dev->image_storage.id; } else { @@ -660,17 +555,26 @@ } g_free(load_txt); } - cairo_restore(cri); - - if(image_surface_imgid == dev->image_storage.id) - { - cairo_destroy(cr); - cairo_set_source_surface(cri, image_surface, 0, 0); - cairo_paint(cri); - } /* if we are in full preview mode, we don"t want anything else than the image */ - if(dev->full_preview) return; + if(dev->full_preview) + return; + + float wd, ht; + if(!dt_dev_get_preview_size(dev, &wd, &ht)) return; + + const double tb = port->border_size; + // account for border, make it transparent for other modules called below: + + cairo_save(cri); + + // don't draw guides and color pickers on image margins + cairo_rectangle(cri, tb, tb, width - 2.0 * tb, height - 2.0 * tb); + cairo_clip(cri); + + cairo_translate(cri, 0.5 * width, 0.5 * height); + cairo_scale(cri, zoom_scale, zoom_scale); + cairo_translate(cri, -.5f * wd - zoom_x * wd, -.5f * ht - zoom_y * ht); // Displaying sample areas if enabled if(darktable.lib->proxy.colorpicker.live_samples @@ -678,40 +582,14 @@ || (darktable.lib->proxy.colorpicker.selected_sample && darktable.lib->proxy.colorpicker.selected_sample != darktable.lib->proxy.colorpicker.primary_sample))) { - _darkroom_pickers_draw( - self, cri, width, height, zoom, closeup, zoom_x, zoom_y, - darktable.lib->proxy.colorpicker.live_samples, FALSE); - } - - // draw guide lines if needed - if(!dev->gui_module || !(dev->gui_module->flags() & IOP_FLAGS_GUIDES_SPECIAL_DRAW)) - { - // we restrict the drawing to the image only - // the drawing is done on the preview pipe reference - const double wd = dev->preview_pipe->backbuf_width; - const double ht = dev->preview_pipe->backbuf_height; - const double zoom_scale = dt_dev_get_zoom_scale(dev, zoom, 1 << closeup, 1); - - cairo_save(cri); - // don't draw guides on image margins - cairo_rectangle(cri, tb, tb, dwidth - 2.0 * tb, dheight - 2.0 * tb); - cairo_clip(cri); - // switch to the preview reference - cairo_translate(cri, dwidth / 2.0, dheight / 2.0); - cairo_scale(cri, zoom_scale, zoom_scale); - cairo_translate(cri, - 0.5f * wd - zoom_x * wd, - 0.5f * ht - zoom_y * ht); - dt_guides_draw(cri, 0.0f, 0.0f, wd, ht, zoom_scale); - cairo_restore(cri); + dt_print_pipe(DT_DEBUG_EXPOSE, + "expose livesamples FALSE", + port->pipe, NULL, NULL, NULL, "%dx%d, px=%d py=%d\n", + width, height, pointerx, pointery); + _darkroom_pickers_draw(self, cri, wd, ht, zoom_scale, + darktable.lib->proxy.colorpicker.live_samples, FALSE); } - // display mask if we have a current module activated or if the - // masks manager module is expanded - - const gboolean display_masks = - (dev->gui_module && dev->gui_module->enabled - && dt_dev_modulegroups_get_activated(darktable.develop) != DT_MODULEGROUP_BASICS) - || dt_lib_gui_get_expanded(dt_lib_get_module("masks")); - // draw colorpicker for in focus module or execute module callback hook // FIXME: draw picker in gui_post_expose() hook in // libs/colorpicker.c -- catch would be that live samples would @@ -719,34 +597,90 @@ // by picker if(dt_iop_color_picker_is_visible(dev)) { + dt_print_pipe(DT_DEBUG_EXPOSE, + "expose livesample TRUE", + port->pipe, NULL, NULL, NULL, "%dx%d, px=%d py=%d\n", + width, height, pointerx, pointery); GSList samples = { .data = darktable.lib->proxy.colorpicker.primary_sample, .next = NULL }; - _darkroom_pickers_draw(self, cri, width, height, zoom, closeup, zoom_x, zoom_y, - &samples, TRUE); + _darkroom_pickers_draw(self, cri, wd, ht, zoom_scale, &samples, TRUE); + } + + cairo_reset_clip(cri); + + // display mask if we have a current module activated or if the + // masks manager module is expanded + const gboolean display_masks = + (dev->gui_module + && dev->gui_module->enabled + && dt_dev_modulegroups_get_activated(darktable.develop) != DT_MODULEGROUP_BASICS) + || dt_lib_gui_get_expanded(dt_lib_get_module("masks")); + + if(dev->form_visible && display_masks) + { + dt_print_pipe(DT_DEBUG_EXPOSE, + "expose masks", + port->pipe, dev->gui_module, NULL, NULL, "%dx%d, px=%d py=%d\n", + width, height, pointerx, pointery); + dt_masks_events_post_expose(dev->gui_module, cri, width, height, pzx, pzy, zoom_scale); + } + + // if dragging the rotation line, do it and nothing else + if(dev->proxy.rotate + && (darktable.control->button_down_which == 3 + || dev->gui_module == dev->proxy.rotate)) + { + // reminder, we want this to be exposed always for guidings + _module_gui_post_expose(dev->proxy.rotate, cri, wd, ht, pzx, pzy, zoom_scale); } else { - if(dev->form_visible && display_masks) - dt_masks_events_post_expose(dev->gui_module, cri, width, height, pointerx, pointery); - // module - if(dev->gui_module && dev->gui_module != dev->proxy.rotate - && dev->gui_module->gui_post_expose - && dt_dev_modulegroups_get_activated(darktable.develop) != DT_MODULEGROUP_BASICS) - { - cairo_save(cri); - dev->gui_module->gui_post_expose(dev->gui_module, cri, - width, height, pointerx, pointery); - cairo_restore(cri); + gboolean guides = FALSE; + // true if anything could be exposed + if(dev->gui_module && dev->gui_module != dev->proxy.rotate) + { + // the cropping.exposer->gui_post_expose needs special care + if(expose_full + && dev->gui_module->operation_tags_filter() & IOP_TAG_CROPPING) + { + dt_print_pipe(DT_DEBUG_EXPOSE, + "expose cropper", + port->pipe, dev->cropping.exposer, + NULL, NULL, "%dx%d, px=%d py=%d\n", + width, height, pointerx, pointery); + _module_gui_post_expose(dev->cropping.exposer, cri, wd, ht, pzx, pzy, zoom_scale); + guides = TRUE; + } + + // gui active module + if(dt_dev_modulegroups_get_activated(darktable.develop) != DT_MODULEGROUP_BASICS) + { + dt_print_pipe(DT_DEBUG_EXPOSE, + "expose module", + port->pipe, dev->gui_module, + NULL, NULL, + "%dx%d, px=%d py=%d\n", + width, height, pointerx, pointery); + _module_gui_post_expose(dev->gui_module, cri, wd, ht, pzx, pzy, zoom_scale); + guides = TRUE; + } } + + if(!guides) + dt_guides_draw(cri, 0.0f, 0.0f, wd, ht, zoom_scale); } - if(dev->proxy.rotate) - dev->proxy.rotate->gui_post_expose(dev->proxy.rotate, cri, width, height, pointerx, pointery); + cairo_restore(cri); // indicate if we are in gamut check or softproof mode if(darktable.color_profiles->mode != DT_PROFILE_NORMAL) { gchar *label = darktable.color_profiles->mode == DT_PROFILE_GAMUTCHECK ? _("gamut check") : _("soft proof"); + dt_print_pipe(DT_DEBUG_EXPOSE, + "expose profile", + port->pipe, NULL, NULL, NULL, "%dx%d, px=%d py=%d. proof: %s\n", + width, height, pointerx, pointery, label); + cairo_set_source_rgba(cri, 0.5, 0.5, 0.5, 0.5); PangoLayout *layout; PangoRectangle ink; @@ -771,10 +705,7 @@ void reset(dt_view_t *self) { - dt_control_set_dev_zoom(DT_ZOOM_FIT); - dt_control_set_dev_zoom_x(0); - dt_control_set_dev_zoom_y(0); - dt_control_set_dev_closeup(0); + dt_dev_zoom_move(&darktable.develop->full, DT_ZOOM_FIT, 0.0f, 0, -1.0f, -1.0f, TRUE); } gboolean try_enter(dt_view_t *self) @@ -799,12 +730,13 @@ { dt_control_log(_("image `%s' is currently unavailable"), img->filename); dt_image_cache_read_release(darktable.image_cache, img); - return 1; + return TRUE; } // and drop the lock again. dt_image_cache_read_release(darktable.image_cache, img); darktable.develop->image_storage.id = imgid; - darktable.develop->proxy.wb_coeffs[0] = 0.f; + + dt_dev_reset_chroma(darktable.develop); return FALSE; } @@ -826,19 +758,9 @@ static void _dev_change_image(dt_develop_t *dev, const dt_imgid_t imgid) { - // deactivate module label timer if set - if(darktable.develop->gui_module - && darktable.develop->gui_module->label_recompute_handle) - { - g_source_remove(darktable.develop->gui_module->label_recompute_handle); - darktable.develop->gui_module->label_recompute_handle = 0; - } - // Pipe reset needed when changing image // FIXME: synch with dev_init() and dev_cleanup() instead of redoing it - dev->proxy.chroma_adaptation = NULL; - dev->proxy.wb_is_D65 = TRUE; - dev->proxy.wb_coeffs[0] = 0.f; + dt_dev_reset_chroma(dev); // change active image g_slist_free(darktable.view_manager->active_images); @@ -880,7 +802,7 @@ // update aspect ratio if(dev->preview_pipe->backbuf - && dev->preview_status == DT_DEV_PIXELPIPE_VALID) + && dev->preview_pipe->status == DT_DEV_PIXELPIPE_VALID) { const double aspect_ratio = (double)dev->preview_pipe->backbuf_width / (double)dev->preview_pipe->backbuf_height; @@ -895,10 +817,11 @@ darktable.view_manager->accels_window.prevent_refresh = TRUE; // get current plugin in focus before defocus - if(darktable.develop->gui_module) + const dt_iop_module_t *gui_module = dt_dev_gui_module(); + if(gui_module) { dt_conf_set_string("plugins/darkroom/active", - darktable.develop->gui_module->op); + gui_module->op); } // store last active group @@ -933,7 +856,7 @@ // which in turn try to acquire the gdk lock. // // worst case, it'll drop some change image events. sorry. - if(dt_pthread_mutex_BAD_trylock(&dev->preview_pipe_mutex)) + if(dt_pthread_mutex_BAD_trylock(&dev->preview_pipe->mutex)) { #ifdef USE_LUA @@ -943,9 +866,9 @@ #endif return G_SOURCE_CONTINUE; } - if(dt_pthread_mutex_BAD_trylock(&dev->pipe_mutex)) + if(dt_pthread_mutex_BAD_trylock(&dev->full.pipe->mutex)) { - dt_pthread_mutex_BAD_unlock(&dev->preview_pipe_mutex); + dt_pthread_mutex_BAD_unlock(&dev->preview_pipe->mutex); #ifdef USE_LUA @@ -955,10 +878,10 @@ return G_SOURCE_CONTINUE; } - if(dt_pthread_mutex_BAD_trylock(&dev->preview2_pipe_mutex)) + if(dt_pthread_mutex_BAD_trylock(&dev->preview2.pipe->mutex)) { - dt_pthread_mutex_BAD_unlock(&dev->pipe_mutex); - dt_pthread_mutex_BAD_unlock(&dev->preview_pipe_mutex); + dt_pthread_mutex_BAD_unlock(&dev->full.pipe->mutex); + dt_pthread_mutex_BAD_unlock(&dev->preview_pipe->mutex); #ifdef USE_LUA @@ -1012,10 +935,12 @@ // make sure no signals propagate here: ++darktable.gui->reset; - const guint nb_iop = g_list_length(dev->iop); - dt_dev_pixelpipe_cleanup_nodes(dev->pipe); + dt_pthread_mutex_lock(&dev->history_mutex); + dt_dev_pixelpipe_cleanup_nodes(dev->full.pipe); dt_dev_pixelpipe_cleanup_nodes(dev->preview_pipe); - dt_dev_pixelpipe_cleanup_nodes(dev->preview2_pipe); + dt_dev_pixelpipe_cleanup_nodes(dev->preview2.pipe); + + const guint nb_iop = g_list_length(dev->iop); for(int i = nb_iop - 1; i >= 0; i--) { dt_iop_module_t *module = (dt_iop_module_t *)(g_list_nth_data(dev->iop, i)); @@ -1068,10 +993,11 @@ g_list_free_full(dev->allforms, (void (*)(void *))dt_masks_free_form); dev->allforms = NULL; - dt_dev_pixelpipe_create_nodes(dev->pipe, dev); + dt_dev_pixelpipe_create_nodes(dev->full.pipe, dev); dt_dev_pixelpipe_create_nodes(dev->preview_pipe, dev); - if(dev->second_window.widget && GTK_IS_WIDGET(dev->second_window.widget)) - dt_dev_pixelpipe_create_nodes(dev->preview2_pipe, dev); + if(dev->preview2.widget && GTK_IS_WIDGET(dev->preview2.widget)) + dt_dev_pixelpipe_create_nodes(dev->preview2.pipe, dev); + dt_pthread_mutex_unlock(&dev->history_mutex); dt_dev_read_history(dev); // we have to init all module instances other than "base" instance @@ -1144,9 +1070,9 @@ DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_DEVELOP_IMAGE_CHANGED); // release pixel pipe mutices - dt_pthread_mutex_BAD_unlock(&dev->preview2_pipe_mutex); - dt_pthread_mutex_BAD_unlock(&dev->preview_pipe_mutex); - dt_pthread_mutex_BAD_unlock(&dev->pipe_mutex); + dt_pthread_mutex_BAD_unlock(&dev->preview2.pipe->mutex); + dt_pthread_mutex_BAD_unlock(&dev->preview_pipe->mutex); + dt_pthread_mutex_BAD_unlock(&dev->full.pipe->mutex); // update hint message dt_collection_hint_message(darktable.collection); @@ -1258,23 +1184,8 @@ static void zoom_key_accel(dt_action_t *action) { - dt_develop_t *dev = darktable.develop; - int zoom, closeup; - float zoom_x, zoom_y; - zoom = dt_control_get_dev_zoom(); - zoom_x = dt_control_get_dev_zoom_x(); - zoom_y = dt_control_get_dev_zoom_y(); - closeup = dt_control_get_dev_closeup(); - if(zoom == DT_ZOOM_1) closeup = (closeup > 0) ^ 1; // flip closeup/no closeup, no difference whether it was 1 or larger - dt_dev_check_zoom_bounds(dev, &zoom_x, &zoom_y, DT_ZOOM_1, closeup, NULL, NULL); - dt_control_set_dev_zoom(DT_ZOOM_1); - dt_control_set_dev_zoom_x(zoom_x); - dt_control_set_dev_zoom_y(zoom_y); - dt_control_set_dev_closeup(closeup); - - dt_dev_invalidate(dev); - dt_control_queue_redraw_center(); - dt_control_navigation_redraw(); + // flip closeup/no closeup, no difference whether it was 1 or larger + dt_dev_zoom_move(&darktable.develop->full, DT_ZOOM_1, 0.0f, -1, -1.0f, -1.0f, TRUE); } static void zoom_in_callback(dt_action_t *action) @@ -1282,7 +1193,7 @@ dt_view_t *self = dt_action_view(action); dt_develop_t *dev = self->data; - scrolled(self, dev->width / 2, dev->height / 2, 1, GDK_CONTROL_MASK); + scrolled(self, dev->full.width / 2, dev->full.height / 2, 1, GDK_CONTROL_MASK); } static void zoom_out_callback(dt_action_t *action) @@ -1290,7 +1201,7 @@ dt_view_t *self = dt_action_view(action); dt_develop_t *dev = self->data; - scrolled(self, dev->width / 2, dev->height / 2, 0, GDK_CONTROL_MASK); + scrolled(self, dev->full.width / 2, dev->full.height / 2, 0, GDK_CONTROL_MASK); } static void skip_f_key_accel_callback(dt_action_t *action) @@ -1313,8 +1224,8 @@ { dt_view_t *self = (dt_view_t *)user_data; dt_develop_t *dev = (dt_develop_t *)self->data; - if(dev->second_window.widget) - gtk_widget_queue_draw(dev->second_window.widget); + if(dev->preview2.widget) + gtk_widget_queue_draw(dev->preview2.widget); } static void _darkroom_ui_favorite_presets_popupmenu(GtkWidget *w, gpointer user_data) @@ -1478,13 +1389,13 @@ static void _second_window_quickbutton_clicked(GtkWidget *w, dt_develop_t *dev) { - if(dev->second_window.second_wnd && !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) + if(dev->second_wnd && !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) { - _darkroom_ui_second_window_write_config(dev->second_window.second_wnd); + _darkroom_ui_second_window_write_config(dev->second_wnd); - gtk_widget_destroy(dev->second_window.second_wnd); - dev->second_window.second_wnd = NULL; - dev->second_window.widget = NULL; + gtk_widget_destroy(dev->second_wnd); + dev->second_wnd = NULL; + dev->preview2.widget = NULL; } else if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) _darkroom_display_second_window(dev); @@ -1522,38 +1433,13 @@ return FALSE; } -/* colour assessment */ -static int _iso_12646_get_border(dt_develop_t *d) -{ - if(d->iso_12646.enabled) - { - // the border size is taken from conf as an absolute in cm - // and uses dpi and ppd for an absolute size - const int bsize = darktable.gui->dpi * darktable.gui->ppd * dt_conf_get_float("darkroom/ui/iso12464_border") / 2.54f; - // for safety, at least 2 pixels and at least 40% for content - return MIN(MAX(2, bsize), 0.3f * MIN(d->width, d->height)); - } - else - { - // Reset border size from config - return DT_PIXEL_APPLY_DPI(dt_conf_get_int("plugins/darkroom/ui/border_size")); - } -} - static void _iso_12646_quickbutton_clicked(GtkWidget *w, gpointer user_data) { dt_develop_t *dev = (dt_develop_t *)user_data; if(!dev->gui_attached) return; - dev->iso_12646.enabled = !dev->iso_12646.enabled; - dev->width = dev->orig_width; - dev->height = dev->orig_height; - dev->border_size = _iso_12646_get_border(dev); - dt_dev_configure(dev, dev->width, dev->height); - - dt_dev_second_window_configure(dev, dev->second_window.orig_width, dev->second_window.orig_width); - dt_dev_reprocess_center(dev); - dt_control_queue_redraw_center(); + dev->full.iso_12646 = !dev->full.iso_12646; + dt_dev_configure(&dev->full); } /* overlay color */ @@ -1887,6 +1773,13 @@ } } +static void display2_iso12646_callback(GtkToggleButton *checkbutton, dt_develop_t *dev) +{ + dev->preview2.iso_12646 = gtk_toggle_button_get_active(checkbutton); + dt_conf_set_bool("second_window/iso_12646", dev->preview2.iso_12646); + dt_dev_configure(&dev->preview2); +} + static void histogram_profile_callback(GtkWidget *combo, gpointer user_data) { dt_develop_t *d = (dt_develop_t *)user_data; @@ -1926,36 +1819,20 @@ } } -// FIXME: turning off lcms2 in prefs hides the widget but leaves the window sized like before -> ugly-ish static void _preference_changed(gpointer instance, gpointer user_data) { GtkWidget *display_intent = GTK_WIDGET(user_data); const int force_lcms2 = dt_conf_get_bool("plugins/lighttable/export/force_lcms2"); - if(force_lcms2) - { - gtk_widget_set_no_show_all(display_intent, FALSE); - gtk_widget_set_visible(display_intent, TRUE); - } - else - { - gtk_widget_set_no_show_all(display_intent, TRUE); - gtk_widget_set_visible(display_intent, FALSE); - } + + gtk_widget_set_no_show_all(display_intent, !force_lcms2); + gtk_widget_set_visible(display_intent, force_lcms2); + dt_get_sysresource_level(); dt_opencl_update_settings(); dt_configure_ppd_dpi(darktable.gui); } -static void _preference_prev_downsample_change(gpointer instance, gpointer user_data) -{ - if(user_data != NULL) - { - float *ds_value = user_data; - *ds_value = dt_dev_get_preview_downsampling(); - } -} - static void _preference_changed_button_hide(gpointer instance, dt_develop_t *dev) { for(const GList *modules = dev->iop; modules; modules = g_list_next(modules)) @@ -1963,8 +1840,8 @@ dt_iop_module_t *module = (dt_iop_module_t *)(modules->data); if(module->header) - add_remove_mask_indicator(module, (module->blend_params->mask_mode != DEVELOP_MASK_DISABLED) && - (module->blend_params->mask_mode != DEVELOP_MASK_ENABLED)); + dt_iop_add_remove_mask_indicator(module, (module->blend_params->mask_mode != DEVELOP_MASK_DISABLED) && + (module->blend_params->mask_mode != DEVELOP_MASK_ENABLED)); } } @@ -2178,13 +2055,11 @@ if(effect != DT_ACTION_EFFECT_ON) { dt_ui_restore_panels(darktable.gui->ui); - dt_control_set_dev_zoom(lib->full_preview_last_zoom); - dt_control_set_dev_zoom_x(lib->full_preview_last_zoom_x); - dt_control_set_dev_zoom_y(lib->full_preview_last_zoom_y); - dt_control_set_dev_closeup(lib->full_preview_last_closeup); + // restore previously stored zoom settings + dt_dev_zoom_move(&darktable.develop->full, DT_ZOOM_RESTORE, 0.0f, 0, -1.0f, -1.0f, TRUE); lib->full_preview = FALSE; dt_iop_request_focus(lib->full_preview_last_module); - dt_masks_set_edit_mode(darktable.develop->gui_module, lib->full_preview_masks_state); + dt_masks_set_edit_mode(dt_dev_gui_module(), lib->full_preview_masks_state); dt_dev_invalidate(darktable.develop); dt_control_queue_redraw_center(); dt_control_navigation_redraw(); @@ -2193,30 +2068,24 @@ else { if(effect != DT_ACTION_EFFECT_OFF && - lib->preview_status != DT_DEV_PIXELPIPE_DIRTY && - lib->preview_status != DT_DEV_PIXELPIPE_INVALID) + lib->preview_pipe->status != DT_DEV_PIXELPIPE_DIRTY && + lib->preview_pipe->status != DT_DEV_PIXELPIPE_INVALID) { lib->full_preview = TRUE; // we hide all panels for(int k = 0; k < DT_UI_PANEL_SIZE; k++) dt_ui_panel_show(darktable.gui->ui, k, FALSE, FALSE); // we remember the masks edit state - if(darktable.develop->gui_module) + dt_iop_module_t *gui_module = dt_dev_gui_module(); + if(gui_module) { - dt_iop_gui_blend_data_t *bd = (dt_iop_gui_blend_data_t *)darktable.develop->gui_module->blend_data; + dt_iop_gui_blend_data_t *bd = (dt_iop_gui_blend_data_t *)gui_module->blend_data; if(bd) lib->full_preview_masks_state = bd->masks_shown; } - // we set the zoom values to "fit" - lib->full_preview_last_zoom = dt_control_get_dev_zoom(); - lib->full_preview_last_zoom_x = dt_control_get_dev_zoom_x(); - lib->full_preview_last_zoom_y = dt_control_get_dev_zoom_y(); - lib->full_preview_last_closeup = dt_control_get_dev_closeup(); - dt_control_set_dev_zoom(DT_ZOOM_FIT); - dt_control_set_dev_zoom_x(0); - dt_control_set_dev_zoom_y(0); - dt_control_set_dev_closeup(0); + // we set the zoom values to "fit" after storing previous settings + dt_dev_zoom_move(&darktable.develop->full, DT_ZOOM_FULL_PREVIEW, 0.0f, 0, -1.0f, -1.0f, TRUE); // we quit the active iop if any - lib->full_preview_last_module = darktable.develop->gui_module; + lib->full_preview_last_module = gui_module; dt_iop_request_focus(NULL); gtk_widget_grab_focus(dt_ui_center(darktable.gui->ui)); dt_dev_invalidate(darktable.develop); @@ -2243,33 +2112,13 @@ if(DT_PERFORM_ACTION(move_size)) { - dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - float scale = dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 0); - int procw, proch; - dt_dev_get_processed_size(dev, &procw, &proch); - - // For each cursor press, move one screen by default - float step_changex = dev->width / (procw * scale); - float step_changey = dev->height / (proch * scale); + // For each cursor press, move fifth of screen by default float factor = 0.2f * move_size; if(effect == DT_ACTION_EFFECT_DOWN) factor *= -1; - float zx = dt_control_get_dev_zoom_x(); - float zy = dt_control_get_dev_zoom_y(); - - if(target) - zx += step_changex * factor; - else - zy -= step_changey * factor; - - dt_dev_check_zoom_bounds(dev, &zx, &zy, zoom, closeup, NULL, NULL); - dt_control_set_dev_zoom_x(zx); - dt_control_set_dev_zoom_y(zy); - - dt_dev_invalidate(dev); - dt_control_queue_redraw_center(); - dt_control_navigation_redraw(); + dt_dev_zoom_move(&dev->full, DT_ZOOM_MOVE, factor, 0, + target ? dev->full.width : 0, + target ? 0 : - dev->full.height, TRUE); } return 0; // FIXME return position (%) @@ -2344,12 +2193,12 @@ dt_view_manager_view_toolbox_add(darktable.view_manager, styles, DT_VIEW_DARKROOM); /* create second window display button */ - dev->second_window.button = dtgtk_togglebutton_new(dtgtk_cairo_paint_display2, 0, NULL); - dt_action_define(sa, NULL, N_("second window"), dev->second_window.button, &dt_action_def_toggle); - g_signal_connect(G_OBJECT(dev->second_window.button), "clicked", G_CALLBACK(_second_window_quickbutton_clicked), + dev->second_wnd_button = dtgtk_togglebutton_new(dtgtk_cairo_paint_display2, 0, NULL); + dt_action_define(sa, NULL, N_("second window"), dev->second_wnd_button, &dt_action_def_toggle); + g_signal_connect(G_OBJECT(dev->second_wnd_button), "clicked", G_CALLBACK(_second_window_quickbutton_clicked), dev); - gtk_widget_set_tooltip_text(dev->second_window.button, _("display a second darkroom image window")); - dt_view_manager_view_toolbox_add(darktable.view_manager, dev->second_window.button, DT_VIEW_DARKROOM); + gtk_widget_set_tooltip_text(dev->second_wnd_button, _("display a second darkroom image window")); + dt_view_manager_view_toolbox_add(darktable.view_manager, dev->second_wnd_button, DT_VIEW_DARKROOM); /* Enable ISO 12646-compliant colour assessment conditions */ dev->iso_12646.button = dtgtk_togglebutton_new(dtgtk_cairo_paint_bulb, 0, NULL); @@ -2504,9 +2353,11 @@ // and the popup window, which is shared between the two profile buttons dev->profile.floating_window = gtk_popover_new(NULL); - connect_button_press_release(dev->second_window.button, dev->profile.floating_window); + connect_button_press_release(dev->second_wnd_button, dev->profile.floating_window); connect_button_press_release(dev->profile.softproof_button, dev->profile.floating_window); connect_button_press_release(dev->profile.gamut_button, dev->profile.floating_window); + // randomly connect to one of the buttons, so widgets can be realized + gtk_popover_set_relative_to(GTK_POPOVER(dev->profile.floating_window), dev->second_wnd_button); GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_container_add(GTK_CONTAINER(dev->profile.floating_window), vbox); @@ -2547,12 +2398,18 @@ dt_bauhaus_combobox_set_entries_ellipsis(softproof_profile, PANGO_ELLIPSIZE_MIDDLE); dt_bauhaus_combobox_set_entries_ellipsis(histogram_profile, PANGO_ELLIPSIZE_MIDDLE); + GtkWidget *display2_iso12646 = gtk_check_button_new_with_label(_("second preview window ISO 12646 color assessment")); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(display2_iso12646), dev->preview2.iso_12646); + ac = dt_action_define(DT_ACTION(self), NULL, N_("color assessment second preview"), display2_iso12646, &dt_action_def_toggle); + dt_shortcut_register(ac, 0, 0, GDK_KEY_b, GDK_MOD1_MASK); + gtk_box_pack_start(GTK_BOX(vbox), display_profile, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), display_intent, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), gtk_separator_new(GTK_ORIENTATION_HORIZONTAL), TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), display2_profile, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), display2_intent, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), display2_iso12646, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), gtk_separator_new(GTK_ORIENTATION_HORIZONTAL), TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), softproof_profile, TRUE, TRUE, 0); @@ -2620,18 +2477,17 @@ g_signal_connect(G_OBJECT(display_profile), "value-changed", G_CALLBACK(display_profile_callback), dev); g_signal_connect(G_OBJECT(display2_profile), "value-changed", G_CALLBACK(display2_profile_callback), dev); + g_signal_connect(G_OBJECT(display2_iso12646), "toggled", G_CALLBACK(display2_iso12646_callback), dev); g_signal_connect(G_OBJECT(softproof_profile), "value-changed", G_CALLBACK(softproof_profile_callback), dev); g_signal_connect(G_OBJECT(histogram_profile), "value-changed", G_CALLBACK(histogram_profile_callback), dev); _update_softproof_gamut_checking(dev); - DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_PREFERENCES_CHANGE, - G_CALLBACK(_preference_prev_downsample_change), &(dev->preview_downsampling)); // update the gui when the preferences changed (i.e. show intent when using lcms2) DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_PREFERENCES_CHANGE, G_CALLBACK(_preference_changed), (gpointer)display_intent); - DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_PREFERENCES_CHANGE, G_CALLBACK(_preference_changed), - (gpointer)display2_intent); + DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_PREFERENCES_CHANGE, + G_CALLBACK(_preference_changed), (gpointer)display2_intent); // and when profiles change DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_CONTROL_PROFILE_USER_CHANGED, G_CALLBACK(_display_profile_changed), (gpointer)display_profile); @@ -2662,7 +2518,7 @@ } darktable.view_manager->proxy.darkroom.get_layout = _lib_darkroom_get_layout; - dev->border_size = DT_PIXEL_APPLY_DPI(dt_conf_get_int("plugins/darkroom/ui/border_size")); + dev->full.border_size = DT_PIXEL_APPLY_DPI(dt_conf_get_int("plugins/darkroom/ui/border_size")); // Fullscreen preview key ac = dt_action_define(sa, NULL, N_("full preview"), NULL, &dt_action_def_preview); @@ -2970,8 +2826,7 @@ dt_dev_add_history_item(module_src->dev, module_src, TRUE); - if(darktable.unmuted & DT_DEBUG_IOPORDER) - dt_ioppr_check_iop_order(module_src->dev, 0, "_on_drag_data_received end"); + dt_ioppr_check_iop_order(module_src->dev, 0, "_on_drag_data_received end"); // rebuild the accelerators dt_iop_connect_accels_multi(module_src->so); @@ -3085,10 +2940,7 @@ dt_view_active_images_add(dev->image_storage.id, TRUE); dt_ui_thumbtable(darktable.gui->ui)->mouse_inside = FALSE; // consider mouse outside filmstrip by default - dt_control_set_dev_zoom(DT_ZOOM_FIT); - dt_control_set_dev_zoom_x(0); - dt_control_set_dev_zoom_y(0); - dt_control_set_dev_closeup(0); + dt_dev_zoom_move(&dev->full, DT_ZOOM_FIT, 0.0f, 0, -1.0f, -1.0f, TRUE); // take a copy of the image struct for convenience. @@ -3149,10 +3001,7 @@ } // image should be there now. - float zoom_x, zoom_y; - dt_dev_check_zoom_bounds(dev, &zoom_x, &zoom_y, DT_ZOOM_FIT, 0, NULL, NULL); - dt_control_set_dev_zoom_x(zoom_x); - dt_control_set_dev_zoom_y(zoom_y); + dt_dev_zoom_move(&dev->full, DT_ZOOM_MOVE, -1.f, TRUE, 0.0f, 0.0f, TRUE); /* connect signal for filmstrip image activate */ DT_DEBUG_CONTROL_SIGNAL_CONNECT(darktable.signals, DT_SIGNAL_VIEWMANAGER_THUMBTABLE_ACTIVATE, @@ -3167,7 +3016,7 @@ if(dt_conf_get_bool("second_window/last_visible")) { _darkroom_display_second_window(dev); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dev->second_window.button), TRUE); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dev->second_wnd_button), TRUE); } // just make sure at this stage we have only history info into the undo, all automatic @@ -3237,15 +3086,15 @@ G_CALLBACK(_preference_changed_button_hide), dev); // reset color assessment mode - if(dev->iso_12646.enabled) + if(dev->full.iso_12646) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dev->iso_12646.button), FALSE); - dev->iso_12646.enabled = FALSE; - dev->width = dev->orig_width; - dev->height = dev->orig_height; - dev->second_window.width = dev->second_window.orig_width; - dev->second_window.height = dev->second_window.orig_height; - dev->border_size = DT_PIXEL_APPLY_DPI(dt_conf_get_int("plugins/darkroom/ui/border_size")); + dev->full.iso_12646 = FALSE; + dev->full.width = dev->full.orig_width; + dev->full.height = dev->full.orig_height; + dev->preview2.width = dev->preview2.orig_width; + dev->preview2.height = dev->preview2.orig_height; + dev->full.border_size = DT_PIXEL_APPLY_DPI(dt_conf_get_int("plugins/darkroom/ui/border_size")); } // commit image ops to db @@ -3254,7 +3103,7 @@ const dt_imgid_t imgid = dev->image_storage.id; // update aspect ratio - if(dev->preview_pipe->backbuf && dev->preview_status == DT_DEV_PIXELPIPE_VALID) + if(dev->preview_pipe->backbuf && dev->preview_pipe->status == DT_DEV_PIXELPIPE_VALID) { double aspect_ratio = (double)dev->preview_pipe->backbuf_width / (double)dev->preview_pipe->backbuf_height; dt_image_set_aspect_ratio_to(dev->preview_pipe->image.id, aspect_ratio, FALSE); @@ -3282,17 +3131,18 @@ // clear gui. - dt_pthread_mutex_lock(&dev->preview_pipe_mutex); - dt_pthread_mutex_lock(&dev->preview2_pipe_mutex); - dt_pthread_mutex_lock(&dev->pipe_mutex); + dt_pthread_mutex_lock(&dev->preview_pipe->mutex); + dt_pthread_mutex_lock(&dev->preview2.pipe->mutex); + dt_pthread_mutex_lock(&dev->full.pipe->mutex); dev->gui_leaving = TRUE; - dt_dev_pixelpipe_cleanup_nodes(dev->pipe); - dt_dev_pixelpipe_cleanup_nodes(dev->preview2_pipe); + dt_pthread_mutex_lock(&dev->history_mutex); + + dt_dev_pixelpipe_cleanup_nodes(dev->full.pipe); + dt_dev_pixelpipe_cleanup_nodes(dev->preview2.pipe); dt_dev_pixelpipe_cleanup_nodes(dev->preview_pipe); - dt_pthread_mutex_lock(&dev->history_mutex); while(dev->history) { dt_dev_history_item_t *hist = (dt_dev_history_item_t *)(dev->history->data); @@ -3328,9 +3178,9 @@ dt_pthread_mutex_unlock(&dev->history_mutex); - dt_pthread_mutex_unlock(&dev->pipe_mutex); - dt_pthread_mutex_unlock(&dev->preview2_pipe_mutex); - dt_pthread_mutex_unlock(&dev->preview_pipe_mutex); + dt_pthread_mutex_unlock(&dev->full.pipe->mutex); + dt_pthread_mutex_unlock(&dev->preview2.pipe->mutex); + dt_pthread_mutex_unlock(&dev->preview_pipe->mutex); // cleanup visible masks if(dev->form_gui) @@ -3380,22 +3230,6 @@ dt_control_change_cursor(GDK_LEFT_PTR); } -/* This helper function tests for a position to be within the displayed area - of an image. To avoid "border cases" we accept values to be slightly out of area too. -*/ -static int mouse_in_imagearea(dt_view_t *self, double *x, double *y) -{ - dt_develop_t *dev = (dt_develop_t *)self->data; - - const int closeup = dt_control_get_dev_closeup(); - const int pwidth = (dev->pipe->output_backbuf_width<<closeup) / darktable.gui->ppd; - const int pheight = (dev->pipe->output_backbuf_height<<closeup) / darktable.gui->ppd; - - *x = CLAMP(*x, (self->width - pwidth) / 2, (self->width + pwidth) / 2); - *y = CLAMP(*y, (self->height - pheight) / 2, (self->height + pheight) / 2); - return TRUE; -} - void mouse_enter(dt_view_t *self) { dt_develop_t *dev = (dt_develop_t *)self->data; @@ -3407,9 +3241,6 @@ void mouse_moved(dt_view_t *self, double x, double y, double pressure, int which) { dt_develop_t *dev = (dt_develop_t *)self->data; - const int32_t tb = dev->border_size; - const int32_t capwd = self->width - 2*tb; - const int32_t capht = self->height - 2*tb; // if we are not hovering over a thumbnail in the filmstrip -> show metadata of opened image. dt_imgid_t mouse_over_id = dt_control_get_mouse_over_id(); @@ -3420,86 +3251,74 @@ } dt_control_t *ctl = darktable.control; - const int32_t width_i = self->width; - const int32_t height_i = self->height; - float offx = 0.0f, offy = 0.0f; - if(width_i > capwd) offx = (capwd - width_i) * .5f; - if(height_i > capht) offy = (capht - height_i) * .5f; int handled = 0; + float zoom_x, zoom_y, zoom_scale; + dt_dev_get_pointer_zoom_pos(&dev->full, x, y, &zoom_x, &zoom_y, &zoom_scale); + if(!darktable.develop->darkroom_skip_mouse_events && dt_iop_color_picker_is_visible(dev) && ctl->button_down && ctl->button_down_which == 1) { // module requested a color box - if(mouse_in_imagearea(self, &x, &y)) - { - dt_colorpicker_sample_t *const sample = darktable.lib->proxy.colorpicker.primary_sample; - // Make sure a minimal width/height - float delta_x = 1 / (float) dev->pipe->processed_width; - float delta_y = 1 / (float) dev->pipe->processed_height; - - float zoom_x, zoom_y; - dt_dev_get_pointer_zoom_pos(dev, x + offx, y + offy, &zoom_x, &zoom_y); + dt_colorpicker_sample_t *const sample = darktable.lib->proxy.colorpicker.primary_sample; + // Make sure a minimal width/height + float delta_x = 1 / (float) dev->full.pipe->processed_width; + float delta_y = 1 / (float) dev->full.pipe->processed_height; - if(sample->size == DT_LIB_COLORPICKER_SIZE_BOX) - { - sample->box[0] = fmaxf(0.0, MIN(sample->point[0], .5f + zoom_x) - delta_x); - sample->box[1] = fmaxf(0.0, MIN(sample->point[1], .5f + zoom_y) - delta_y); - sample->box[2] = fminf(1.0, MAX(sample->point[0], .5f + zoom_x) + delta_x); - sample->box[3] = fminf(1.0, MAX(sample->point[1], .5f + zoom_y) + delta_y); - } - else if(sample->size == DT_LIB_COLORPICKER_SIZE_POINT) - { - sample->point[0] = .5f + zoom_x; - sample->point[1] = .5f + zoom_y; - dev->preview_status = DT_DEV_PIXELPIPE_DIRTY; - } + if(sample->size == DT_LIB_COLORPICKER_SIZE_BOX) + { + sample->box[0] = fmaxf(0.0, MIN(sample->point[0], zoom_x) - delta_x); + sample->box[1] = fmaxf(0.0, MIN(sample->point[1], zoom_y) - delta_y); + sample->box[2] = fminf(1.0, MAX(sample->point[0], zoom_x) + delta_x); + sample->box[3] = fminf(1.0, MAX(sample->point[1], zoom_y) + delta_y); + } + else if(sample->size == DT_LIB_COLORPICKER_SIZE_POINT) + { + sample->point[0] = zoom_x; + sample->point[1] = zoom_y; + dev->preview_pipe->status = DT_DEV_PIXELPIPE_DIRTY; } dt_control_queue_redraw_center(); - return; + handled = TRUE; } - x += offx; - y += offy; + // masks if(dev->form_visible - && !darktable.develop->darkroom_skip_mouse_events) - handled = dt_masks_events_mouse_moved(dev->gui_module, x, y, pressure, which); - if(handled) return; + && !handled + && !darktable.develop->darkroom_skip_mouse_events + && !dt_iop_color_picker_is_visible(dev)) + handled = dt_masks_events_mouse_moved(dev->gui_module, zoom_x, zoom_y, pressure, which, zoom_scale); + // module if(dev->gui_module && dev->gui_module->mouse_moved + && !handled && !darktable.develop->darkroom_skip_mouse_events + && !dt_iop_color_picker_is_visible(dev) && dt_dev_modulegroups_get_activated(darktable.develop) != DT_MODULEGROUP_BASICS) - handled = dev->gui_module->mouse_moved(dev->gui_module, x, y, pressure, which); - if(handled) return; + handled = dev->gui_module->mouse_moved(dev->gui_module, zoom_x, zoom_y, pressure, which, zoom_scale); if(ctl->button_down && ctl->button_down_which == 1) { - // depending on dev_zoom, adjust dev_zoom_x/y. - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - int procw, proch; - dt_dev_get_processed_size(dev, &procw, &proch); - const float scale = dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 0); - float old_zoom_x, old_zoom_y; - old_zoom_x = dt_control_get_dev_zoom_x(); - old_zoom_y = dt_control_get_dev_zoom_y(); - float zx = old_zoom_x - (1.0 / scale) * (x - ctl->button_x - offx) / procw; - float zy = old_zoom_y - (1.0 / scale) * (y - ctl->button_y - offy) / proch; - dt_dev_check_zoom_bounds(dev, &zx, &zy, zoom, closeup, NULL, NULL); - dt_control_set_dev_zoom_x(zx); - dt_control_set_dev_zoom_y(zy); - ctl->button_x = x - offx; - ctl->button_y = y - offy; - dt_dev_invalidate(dev); - dt_control_queue_redraw_center(); - dt_control_navigation_redraw(); + if(!handled) + dt_dev_zoom_move(&dev->full, DT_ZOOM_MOVE, -1.f, 0, x - ctl->button_x, y - ctl->button_y, TRUE); + else + { + const int32_t bs = dev->full.border_size; + float dx = MIN(0, x - bs) + MAX(0, x - dev->full.width - bs); + float dy = MIN(0, y - bs) + MAX(0, y - dev->full.height - bs); + if(fabsf(dx) + fabsf(dy) > 0.5f) + dt_dev_zoom_move(&dev->full, DT_ZOOM_MOVE, 1.f, 0, dx, dy, TRUE); + } + ctl->button_x = x; + ctl->button_y = y; } else if(darktable.control->button_down + && !handled && darktable.control->button_down_which == 3 && dev->proxy.rotate) { - dev->proxy.rotate->mouse_moved(dev->proxy.rotate, x, y, pressure, which); + dev->proxy.rotate->mouse_moved(dev->proxy.rotate, zoom_x, zoom_y, pressure, which, zoom_scale); } } @@ -3507,13 +3326,9 @@ int button_released(dt_view_t *self, double x, double y, int which, uint32_t state) { dt_develop_t *dev = darktable.develop; - const int32_t tb = dev->border_size; - const int32_t capwd = self->width - 2*tb; - const int32_t capht = self->height - 2*tb; - const int32_t width_i = self->width; - const int32_t height_i = self->height; - if(width_i > capwd) x += (capwd - width_i) * .5f; - if(height_i > capht) y += (capht - height_i) * .5f; + + float zoom_x, zoom_y, zoom_scale; + dt_dev_get_pointer_zoom_pos(&dev->full, x, y, &zoom_x, &zoom_y, &zoom_scale); if(darktable.develop->darkroom_skip_mouse_events && which == 1) { @@ -3527,24 +3342,25 @@ // only sample box picker at end, for speed if(darktable.lib->proxy.colorpicker.primary_sample->size == DT_LIB_COLORPICKER_SIZE_BOX) { - dev->preview_status = DT_DEV_PIXELPIPE_DIRTY; + dev->preview_pipe->status = DT_DEV_PIXELPIPE_DIRTY; dt_control_queue_redraw_center(); dt_control_change_cursor(GDK_LEFT_PTR); } return 1; } + // rotate if(which == 3 && dev->proxy.rotate) - handled = dev->proxy.rotate->button_released(dev->proxy.rotate, x, y, which, state); + handled = dev->proxy.rotate->button_released(dev->proxy.rotate, zoom_x, zoom_y, which, state, zoom_scale); if(handled) return handled; // masks if(dev->form_visible) - handled = dt_masks_events_button_released(dev->gui_module, x, y, which, state); + handled = dt_masks_events_button_released(dev->gui_module, zoom_x, zoom_y, which, state, zoom_scale); if(handled) return handled; // module if(dev->gui_module && dev->gui_module->button_released && dt_dev_modulegroups_get_activated(darktable.develop) != DT_MODULEGROUP_BASICS) - handled = dev->gui_module->button_released(dev->gui_module, x, y, which, state); + handled = dev->gui_module->button_released(dev->gui_module, zoom_x, zoom_y, which, state, zoom_scale); if(handled) return handled; if(which == 1) dt_control_change_cursor(GDK_LEFT_PTR); @@ -3562,97 +3378,82 @@ { dt_develop_t *dev = (dt_develop_t *)self->data; dt_colorpicker_sample_t *const sample = darktable.lib->proxy.colorpicker.primary_sample; - const int32_t tb = dev->border_size; - const int32_t capwd = self->width - 2*tb; - const int32_t capht = self->height - 2*tb; - const int32_t width_i = self->width; - const int32_t height_i = self->height; - if(width_i > capwd) x += (capwd - width_i) * .5f; - if(height_i > capht) y += (capht - height_i) * .5f; - if(darktable.develop->darkroom_skip_mouse_events && type == GDK_BUTTON_PRESS) + float zoom_x, zoom_y, zoom_scale; + dt_dev_get_pointer_zoom_pos(&dev->full, x, y, &zoom_x, &zoom_y, &zoom_scale); + + if(darktable.develop->darkroom_skip_mouse_events) { if(which == 1) { + if(type == GDK_2BUTTON_PRESS) return 0; dt_control_change_cursor(GDK_HAND1); return 1; } else if(which == 3 && dev->proxy.rotate) - return dev->proxy.rotate->button_pressed(dev->proxy.rotate, x, y, pressure, which, type, state); + return dev->proxy.rotate->button_pressed(dev->proxy.rotate, zoom_x, zoom_y, pressure, which, type, state, zoom_scale); } int handled = 0; if(dt_iop_color_picker_is_visible(dev)) { - float zoom_x, zoom_y; - dt_dev_get_pointer_zoom_pos(dev, x, y, &zoom_x, &zoom_y); - zoom_x += 0.5f; - zoom_y += 0.5f; - - // FIXME: this overlaps with work in dt_dev_get_pointer_zoom_pos() above - // FIXME: this work is only necessary for left-click in box mode or right-click of point live sample - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 1); const int procw = dev->preview_pipe->backbuf_width; const int proch = dev->preview_pipe->backbuf_height; if(which == 1) { - if(mouse_in_imagearea(self, &x, &y)) + // The default box will be a square with 1% of the image width + const float delta_x = 0.01f; + const float delta_y = delta_x * (float)dev->full.pipe->processed_width / (float)dev->full.pipe->processed_height; + + // FIXME: here and in mouse move use to dt_lib_colorpicker_set_{box_area,point} interface? -- would require a different hack for figuring out base of the drag + // hack: for box pickers, these represent the "base" point being dragged + sample->point[0] = zoom_x; + sample->point[1] = zoom_y; + + if(sample->size == DT_LIB_COLORPICKER_SIZE_BOX) { - // The default box will be a square with 1% of the image width - const float delta_x = 0.01f; - const float delta_y = delta_x * (float)dev->pipe->processed_width / (float)dev->pipe->processed_height; - - // FIXME: here and in mouse move use to dt_lib_colorpicker_set_{box_area,point} interface? -- would require a different hack for figuring out base of the drag - // hack: for box pickers, these represent the "base" point being dragged - sample->point[0] = zoom_x; - sample->point[1] = zoom_y; + // this is slightly more than as drawn, to give room for slop + const float handle_px = 6.0f; + float hx = handle_px / (procw * zoom_scale); + float hy = handle_px / (proch * zoom_scale); + gboolean on_corner_prev_box = TRUE; + // initialized to calm gcc-11 + float opposite_x = 0.f, opposite_y = 0.f; + + if(fabsf(zoom_x - sample->box[0]) <= hx) + opposite_x = sample->box[2]; + else if(fabsf(zoom_x - sample->box[2]) <= hx) + opposite_x = sample->box[0]; + else + on_corner_prev_box = FALSE; + + if(fabsf(zoom_y - sample->box[1]) <= hy) + opposite_y = sample->box[3]; + else if(fabsf(zoom_y - sample->box[3]) <= hy) + opposite_y = sample->box[1]; + else + on_corner_prev_box = FALSE; - if(sample->size == DT_LIB_COLORPICKER_SIZE_BOX) + if(on_corner_prev_box) { - // this is slightly more than as drawn, to give room for slop - const float handle_px = 6.0f; - float hx = handle_px / (procw * zoom_scale); - float hy = handle_px / (proch * zoom_scale); - gboolean on_corner_prev_box = TRUE; - // initialized to calm gcc-11 - float opposite_x = 0.f, opposite_y = 0.f; - - if(fabsf(zoom_x - sample->box[0]) <= hx) - opposite_x = sample->box[2]; - else if(fabsf(zoom_x - sample->box[2]) <= hx) - opposite_x = sample->box[0]; - else - on_corner_prev_box = FALSE; - - if(fabsf(zoom_y - sample->box[1]) <= hy) - opposite_y = sample->box[3]; - else if(fabsf(zoom_y - sample->box[3]) <= hy) - opposite_y = sample->box[1]; - else - on_corner_prev_box = FALSE; - - if(on_corner_prev_box) - { - sample->point[0] = opposite_x; - sample->point[1] = opposite_y; - } - else - { - sample->box[0] = fmaxf(0.0, zoom_x - delta_x); - sample->box[1] = fmaxf(0.0, zoom_y - delta_y); - sample->box[2] = fminf(1.0, zoom_x + delta_x); - sample->box[3] = fminf(1.0, zoom_y + delta_y); - } - dt_control_change_cursor(GDK_FLEUR); + sample->point[0] = opposite_x; + sample->point[1] = opposite_y; } - else if(sample->size == DT_LIB_COLORPICKER_SIZE_POINT) + else { - dev->preview_status = DT_DEV_PIXELPIPE_DIRTY; + sample->box[0] = fmaxf(0.0, zoom_x - delta_x); + sample->box[1] = fmaxf(0.0, zoom_y - delta_y); + sample->box[2] = fminf(1.0, zoom_x + delta_x); + sample->box[3] = fminf(1.0, zoom_y + delta_y); } + dt_control_change_cursor(GDK_FLEUR); + } + else if(sample->size == DT_LIB_COLORPICKER_SIZE_POINT) + { + dev->preview_pipe->status = DT_DEV_PIXELPIPE_DIRTY; } + dt_control_queue_redraw_center(); return 1; } @@ -3662,7 +3463,7 @@ // apply a live sample's area to the active picker? // FIXME: this is a naive implementation, nicer would be to cycle through overlapping samples then reset dt_iop_color_picker_t *picker = darktable.lib->proxy.colorpicker.picker_proxy; - if(darktable.lib->proxy.colorpicker.display_samples && mouse_in_imagearea(self, &x, &y)) + if(darktable.lib->proxy.colorpicker.display_samples) for(GSList *samples = darktable.lib->proxy.colorpicker.live_samples; samples; samples = g_slist_next(samples)) { dt_colorpicker_sample_t *live_sample = samples->data; @@ -3687,7 +3488,7 @@ } else continue; - dev->preview_status = DT_DEV_PIXELPIPE_DIRTY; + dev->preview_pipe->status = DT_DEV_PIXELPIPE_DIRTY; dt_control_queue_redraw_center(); return 1; } @@ -3698,7 +3499,7 @@ // FIXME: color_pixer_proxy should have an dt_iop_color_picker_clear_area() function for this dt_boundingbox_t reset = { 0.01f, 0.01f, 0.99f, 0.99f }; dt_lib_colorpicker_set_box_area(darktable.lib, reset); - dev->preview_status = DT_DEV_PIXELPIPE_DIRTY; + dev->preview_pipe->status = DT_DEV_PIXELPIPE_DIRTY; dt_control_queue_redraw_center(); } @@ -3708,12 +3509,12 @@ // masks if(dev->form_visible) - handled = dt_masks_events_button_pressed(dev->gui_module, x, y, pressure, which, type, state); + handled = dt_masks_events_button_pressed(dev->gui_module, zoom_x, zoom_y, pressure, which, type, state); if(handled) return handled; // module if(dev->gui_module && dev->gui_module->button_pressed && dt_dev_modulegroups_get_activated(darktable.develop) != DT_MODULEGROUP_BASICS) - handled = dev->gui_module->button_pressed(dev->gui_module, x, y, pressure, which, type, state); + handled = dev->gui_module->button_pressed(dev->gui_module, zoom_x, zoom_y, pressure, which, type, state, zoom_scale); if(handled) return handled; if(which == 1 && type == GDK_2BUTTON_PRESS) return 0; @@ -3724,259 +3525,44 @@ } if(which == 2 && type == GDK_BUTTON_PRESS) // Middle mouse button - { - // zoom to 1:1 2:1 and back - int procw, proch; - dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - int closeup = dt_control_get_dev_closeup(); - float zoom_x = dt_control_get_dev_zoom_x(); - float zoom_y = dt_control_get_dev_zoom_y(); - dt_dev_get_processed_size(dev, &procw, &proch); - float scale = dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 0); - const gboolean low_ppd = (darktable.gui->ppd == 1); - const float mouse_off_x = x - 0.5f * dev->width; - const float mouse_off_y = y - 0.5f * dev->height; - zoom_x += mouse_off_x / (procw * scale); - zoom_y += mouse_off_y / (proch * scale); - const float tscale = scale * darktable.gui->ppd; - closeup = 0; - - const float scalefit = dt_dev_get_zoom_scale(dev, DT_ZOOM_FIT, 1, 0) * darktable.gui->ppd; - const gboolean ctrl_pressed = dt_modifier_is(state, GDK_CONTROL_MASK); - - // Get config so we can check if the user want to cycle through 100%->200%->FIT or - // only switch between FIT<->100% unless ctrl key is pressed. - const gboolean cycle_zoom_200 = - dt_conf_get_bool("darkroom/mouse/middle_button_cycle_zoom_to_200_percent"); - - // We are at 200% or above. - if(tscale > 1.9999f) - { - zoom = (cycle_zoom_200 || ctrl_pressed) ? DT_ZOOM_FIT : DT_ZOOM_1; - } - else if(tscale > 0.9999f) // >= 100% - { - zoom = (cycle_zoom_200 || ctrl_pressed) ? DT_ZOOM_1 : DT_ZOOM_FIT; - closeup = (low_ppd && (cycle_zoom_200 || ctrl_pressed)) ? 1 : 0; - } - else if(((tscale > scalefit) || (tscale < scalefit)) && !cycle_zoom_200) - { - zoom = ctrl_pressed ? DT_ZOOM_1 : DT_ZOOM_FIT; - } - else - { - zoom = low_ppd ? DT_ZOOM_1 : DT_ZOOM_FREE; - if(!cycle_zoom_200) - closeup = low_ppd && ctrl_pressed ? 1 : 0; - } - - scale = low_ppd ? dt_dev_get_zoom_scale(dev, zoom, 1, 0) : (1.0f / darktable.gui->ppd); - - dt_control_set_dev_zoom_scale(scale); - dt_control_set_dev_closeup(closeup); - scale = dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 0); - zoom_x -= mouse_off_x / (procw * scale); - zoom_y -= mouse_off_y / (proch * scale); - dt_dev_check_zoom_bounds(dev, &zoom_x, &zoom_y, zoom, closeup, NULL, NULL); - dt_control_set_dev_zoom(zoom); - dt_control_set_dev_zoom_x(zoom_x); - dt_control_set_dev_zoom_y(zoom_y); - dt_dev_invalidate(dev); - dt_control_queue_redraw_center(); - dt_control_navigation_redraw(); - return 1; - } + dt_dev_zoom_move(&dev->full, DT_ZOOM_1, 0.0f, -2, x, y, !dt_modifier_is(state, GDK_CONTROL_MASK)); if(which == 3 && dev->proxy.rotate) - return dev->proxy.rotate->button_pressed(dev->proxy.rotate, x, y, pressure, which, type, state); + return dev->proxy.rotate->button_pressed(dev->proxy.rotate, zoom_x, zoom_y, pressure, which, type, state, zoom_scale); return 0; } void scrollbar_changed(dt_view_t *self, double x, double y) { - dt_control_set_dev_zoom_x(x); - dt_control_set_dev_zoom_y(y); - - /* redraw pipe */ - dt_dev_invalidate(darktable.develop); - dt_control_queue_redraw_center(); - dt_control_navigation_redraw(); -} - -static float _calculate_new_scroll_zoom_tscale(const int up, - const gboolean constrained, - const float tscaleold, - const float tscalefit) -{ - enum { - SIZE_SMALL, - SIZE_MEDIUM, - SIZE_LARGE - } image_size; - - if (tscalefit <= 1.0f) - image_size = SIZE_LARGE; - else if (tscalefit <= 2.0f) - image_size = SIZE_MEDIUM; - else - image_size = SIZE_SMALL; - - // at 200% zoom level or more, we use a step of 2x, while at lower level we use 1.1x - const float step = - up - ? (tscaleold >= 2.0f ? 2.0f : 1.1f) - : (tscaleold > 2.0f ? 2.0f : 1.1f); - - // we calculate the new scale - float tscalenew = up ? tscaleold * step : tscaleold / step; - - // when zooming, secure we include 2:1, 1:1 and FIT levels anyway in the zoom stops - if ((tscalenew - tscalefit) * (tscaleold - tscalefit) < 0 && image_size != SIZE_SMALL) - tscalenew = tscalefit; - else if ((tscalenew - 1.0f) * (tscaleold - 1.0f) < 0) - tscalenew = 1.0f; - else if ((tscalenew - 2.0f) * (tscaleold - 2.0f) < 0) - tscalenew = 2.0f; - - float tscalemax, tscalemin; // the zoom soft limits - const float tscaletop = 16.0f; // the zoom hard limits - const float tscalefloor = MIN(0.5f * tscalefit, 1.0f); - - switch (image_size) // here we set the logic of zoom limits - { - case SIZE_LARGE: - tscalemax = constrained - ? (tscaleold > 2.0f - ? tscaletop - : (tscaleold > 1.0f ? 2.0f : 1.0f)) - : tscaletop; - tscalemin = constrained - ? (tscaleold < tscalefit - ? tscalefloor - : tscalefit) - : tscalefloor; - break; - case SIZE_MEDIUM: - tscalemax = constrained - ? (tscaleold > 2.0f - ? tscaletop - : 2.0f) - : tscaletop; - tscalemin = constrained - ? (tscaleold < tscalefit - ? tscalefloor - : tscalefit) - : tscalefloor; - break; - case SIZE_SMALL: - tscalemax = constrained - ? (tscaleold > 2.0f - ? tscaletop - : tscalefit) - : tscaletop; - tscalemin = tscalefloor; - break; - } - - // we enforce the zoom limits - tscalenew = up - ? MIN(tscalenew, tscalemax) - : MAX(tscalenew, tscalemin); - - return tscalenew; + dt_dev_zoom_move(&darktable.develop->full, DT_ZOOM_POSITION, 0.0f, 0, x, y, TRUE); } void scrolled(dt_view_t *self, double x, double y, int up, int state) { dt_develop_t *dev = (dt_develop_t *)self->data; - const int32_t tb = dev->border_size; - const int32_t capwd = self->width - 2*tb; - const int32_t capht = self->height - 2*tb; - const int32_t width_i = self->width; - const int32_t height_i = self->height; - if(width_i > capwd) x += (capwd - width_i) * .5f; - if(height_i > capht) y += (capht - height_i) * .5f; + + float zoom_x, zoom_y, zoom_scale; + dt_dev_get_pointer_zoom_pos(&dev->full, x, y, &zoom_x, &zoom_y, &zoom_scale); int handled = 0; + // masks if(dev->form_visible && !darktable.develop->darkroom_skip_mouse_events) - handled = dt_masks_events_mouse_scrolled(dev->gui_module, x, y, up, state); + handled = dt_masks_events_mouse_scrolled(dev->gui_module, zoom_x, zoom_y, up, state); if(handled) return; + // module if(dev->gui_module && dev->gui_module->scrolled && !darktable.develop->darkroom_skip_mouse_events + && !dt_iop_color_picker_is_visible(dev) && dt_dev_modulegroups_get_activated(darktable.develop) != DT_MODULEGROUP_BASICS) - handled = dev->gui_module->scrolled(dev->gui_module, x, y, up, state); + handled = dev->gui_module->scrolled(dev->gui_module, zoom_x, zoom_y, up, state); if(handled) return; - // free zoom - int procw, proch; - dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - int closeup = dt_control_get_dev_closeup(); - float zoom_x = dt_control_get_dev_zoom_x(); - float zoom_y = dt_control_get_dev_zoom_y(); - dt_dev_get_processed_size(dev, &procw, &proch); - float scale = dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 0); - const float ppd = darktable.gui->ppd; - const float fitscale = dt_dev_get_zoom_scale(dev, DT_ZOOM_FIT, 1.0, 0); - - // offset from center now (current zoom_{x,y} points there) - const float mouse_off_x = x - 0.5f * dev->width; - const float mouse_off_y = y - 0.5f * dev->height; - zoom_x += mouse_off_x / (procw * scale); - zoom_y += mouse_off_y / (proch * scale); - zoom = DT_ZOOM_FREE; - closeup = 0; + // free zoom const gboolean constrained = !dt_modifier_is(state, GDK_CONTROL_MASK); - const gboolean low_ppd = (darktable.gui->ppd == 1); - - const float tscaleold = scale * ppd; - const float tscale = _calculate_new_scroll_zoom_tscale (up, constrained, tscaleold, fitscale * ppd); - if(tscale == tscaleold) return; // no op - scale = tscale / ppd; - - // pixel doubling instead of interpolation at >= 200% lodpi, >= 400% hidpi - if(tscale > 15.9999) - { - scale = dt_dev_get_zoom_scale(dev, DT_ZOOM_1, 1.0, 0); - zoom = DT_ZOOM_1; - closeup = low_ppd ? 4 : 3; - } - else if(tscale > 7.9999f) - { - scale = dt_dev_get_zoom_scale(dev, DT_ZOOM_1, 1.0, 0); - zoom = DT_ZOOM_1; - closeup = low_ppd ? 3 : 2; - } - else if(tscale > 3.9999f) - { - scale = dt_dev_get_zoom_scale(dev, DT_ZOOM_1, 1.0, 0); - zoom = DT_ZOOM_1; - closeup = low_ppd ? 2 : 1; - } - else if(tscale > 1.9999) - { - scale = dt_dev_get_zoom_scale(dev, DT_ZOOM_1, 1.0, 0); - zoom = DT_ZOOM_1; - if(low_ppd) closeup = 1; - } - - if(fabsf(scale - 1.0f) < 0.001f) zoom = DT_ZOOM_1; - if(fabsf(scale - fitscale) < 0.001f) zoom = DT_ZOOM_FIT; - dt_control_set_dev_zoom_scale(scale); - dt_control_set_dev_closeup(closeup); - scale = dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 0); - - zoom_x -= mouse_off_x / (procw * scale); - zoom_y -= mouse_off_y / (proch * scale); - dt_dev_check_zoom_bounds(dev, &zoom_x, &zoom_y, zoom, closeup, NULL, NULL); - dt_control_set_dev_zoom(zoom); - dt_control_set_dev_zoom_x(zoom_x); - dt_control_set_dev_zoom_y(zoom_y); - dt_dev_invalidate(dev); - dt_control_queue_redraw_center(); - dt_control_navigation_redraw(); + dt_dev_zoom_move(&dev->full, DT_ZOOM_SCROLL, 0.0f, up, x, y, constrained); } static void change_slider_accel_precision(dt_action_t *action) @@ -3996,10 +3582,9 @@ void configure(dt_view_t *self, int wd, int ht) { dt_develop_t *dev = (dt_develop_t *)self->data; - dev->orig_width = wd; - dev->orig_height = ht; - dev->border_size = _iso_12646_get_border(dev); - dt_dev_configure(dev, wd, ht); + dev->full.orig_width = wd; + dev->full.orig_height = ht; + dt_dev_configure(&dev->full); } GSList *mouse_actions(const dt_view_t *self) @@ -4040,441 +3625,55 @@ /* helper macro that applies the DPI transformation to fixed pixel values. input should be defaulting to 96 * DPI */ -#define DT_PIXEL_APPLY_DPI_2ND_WND(dev, value) ((value) * dev->second_window.dpi_factor) - -static cairo_filter_t _get_second_window_filtering_level(dt_develop_t *dev, - const dt_dev_zoom_t zoom, - const int closeup) -{ - const float scale = dt_second_window_get_zoom_scale(dev, zoom, 1<<closeup, 0); - - // for pixel representation above 1:1, that is when a single pixel on the image - // is represented on screen by multiple pixels we want to disable any cairo filter - // which could only blur or smooth the output. +#define DT_PIXEL_APPLY_DPI_2ND_WND(dev, value) ((value) * dev->preview2.dpi_factor) - if(scale >= 0.9999f) - return CAIRO_FILTER_FAST; - else - return darktable.gui->dr_filter_image; -} - -static void dt_second_window_change_cursor(dt_develop_t *dev, dt_cursor_t curs) +static void dt_second_window_change_cursor(dt_develop_t *dev, const gchar *curs) { - GtkWidget *widget = dev->second_window.second_wnd; - GdkCursor *cursor = gdk_cursor_new_for_display(gdk_display_get_default(), curs); + GtkWidget *widget = dev->second_wnd; + GdkCursor *cursor = gdk_cursor_new_from_name(gdk_display_get_default(), curs); gdk_window_set_cursor(gtk_widget_get_window(widget), cursor); g_object_unref(cursor); } -static void second_window_expose(GtkWidget *widget, - dt_develop_t *dev, - cairo_t *cri, - const int32_t width, - const int32_t height, - int32_t pointerx, - int32_t pointery) -{ - cairo_set_source_rgb(cri, 0.2, 0.2, 0.2); - cairo_save(cri); - - // account for border, make it transparent for other modules called below: - pointerx -= dev->second_window.border_size; - pointery -= dev->second_window.border_size; - - if(dev->preview2_status == DT_DEV_PIXELPIPE_DIRTY - || dev->preview2_status == DT_DEV_PIXELPIPE_INVALID - || dev->pipe->input_timestamp > dev->preview2_pipe->input_timestamp) - dt_dev_process_preview2(dev); - - dt_pthread_mutex_t *mutex = NULL; - const float zoom_y = dt_second_window_get_dev_zoom_y(dev); - const float zoom_x = dt_second_window_get_dev_zoom_x(dev); - const dt_dev_zoom_t zoom = dt_second_window_get_dev_zoom(dev); - const int closeup = dt_second_window_get_dev_closeup(dev); - const float backbuf_scale = dt_second_window_get_zoom_scale(dev, zoom, 1.0f, 0) * dev->second_window.ppd; - - static cairo_surface_t *image_surface = NULL; - static int image_surface_width = 0; - static int image_surface_height = 0; - static dt_imgid_t image_surface_imgid = NO_IMGID; - - if(image_surface_width != width - || image_surface_height != height - || image_surface == NULL) - { - // create double-buffered image to draw on, to make modules draw more fluently. - image_surface_width = width; - image_surface_height = height; - if(image_surface) cairo_surface_destroy(image_surface); - image_surface = cairo_image_surface_create(CAIRO_FORMAT_RGB24, width * dev->second_window.ppd, height * dev->second_window.ppd); - cairo_surface_set_device_scale(image_surface, dev->second_window.ppd, dev->second_window.ppd); - - image_surface_imgid = NO_IMGID; // invalidate old stuff - } - - cairo_surface_t *surface; - cairo_t *cr = cairo_create(image_surface); - - if(dev->preview2_pipe->output_backbuf // do we have an image? - && dev->preview2_pipe->backbuf_scale == backbuf_scale // is this the zoom scale we want to display? - && dev->preview2_pipe->backbuf_zoom_x == zoom_x - && dev->preview2_pipe->backbuf_zoom_y == zoom_y) - { - // draw image - mutex = &dev->preview2_pipe->backbuf_mutex; - dt_pthread_mutex_lock(mutex); - const size_t wd = dev->preview2_pipe->output_backbuf_width; - const size_t ht = dev->preview2_pipe->output_backbuf_height; - - surface = dt_view_create_surface(dev->preview2_pipe->output_backbuf, wd, ht); - - dt_gui_gtk_set_source_rgb(cr, DT_GUI_COLOR_DARKROOM_BG); - cairo_paint(cr); - - dt_view_paint_surface(cr, width, height, surface, wd, ht, DT_WINDOW_SECOND); - - cairo_surface_destroy(surface); - dt_pthread_mutex_unlock(mutex); - image_surface_imgid = dev->image_storage.id; - } - else if(dev->preview_pipe->output_backbuf) - { - // draw preview - mutex = &dev->preview_pipe->backbuf_mutex; - dt_pthread_mutex_lock(mutex); - - const double tb = dev->second_window.border_size; - const double wd = dev->preview_pipe->output_backbuf_width; - const double ht = dev->preview_pipe->output_backbuf_height; - const double zoom_scale = dt_second_window_get_zoom_scale(dev, zoom, 1 << closeup, 1); - - dt_gui_gtk_set_source_rgb(cr, DT_GUI_COLOR_DARKROOM_BG); - cairo_paint(cr); - cairo_rectangle(cr, tb, tb, width - 2.0 * tb, height - 2.0 * tb); - cairo_clip(cr); - - surface = dt_view_create_surface(dev->preview_pipe->output_backbuf, wd, ht); - - cairo_translate(cr, width / 2.0, height / 2.0f); - cairo_scale(cr, zoom_scale, zoom_scale); - cairo_translate(cr, - 0.5f * wd - zoom_x * wd, - 0.5f * ht - zoom_y * ht); - // avoid to draw the 1px garbage that sometimes shows up in the preview :( - cairo_rectangle(cr, 0.0, 0.0, wd - 1.0, ht - 1.0); - cairo_set_source_surface(cr, surface, 0.0, 0.0); - cairo_pattern_set_filter(cairo_get_source(cr), _get_second_window_filtering_level(dev, zoom, closeup)); - cairo_fill(cr); - cairo_surface_destroy(surface); - dt_pthread_mutex_unlock(mutex); - image_surface_imgid = dev->image_storage.id; - } - - cairo_restore(cri); - - if(image_surface_imgid == dev->image_storage.id) - { - cairo_destroy(cr); - cairo_set_source_surface(cri, image_surface, 0, 0); - cairo_paint(cri); - } -} - -static void second_window_scrolled(GtkWidget *widget, - dt_develop_t *dev, - double x, - double y, - const int up, - const int state) -{ - const int32_t tb = dev->second_window.border_size; - const int32_t capwd = dev->second_window.width - 2 * tb; - const int32_t capht = dev->second_window.height - 2 * tb; - const int32_t width_i = dev->second_window.width; - const int32_t height_i = dev->second_window.height; - if(width_i > capwd) x += (capwd - width_i) * .5f; - if(height_i > capht) y += (capht - height_i) * .5f; - - // free zoom - dt_dev_zoom_t zoom = dt_second_window_get_dev_zoom(dev); - int procw, proch; - int closeup = dt_second_window_get_dev_closeup(dev); - float zoom_x = dt_second_window_get_dev_zoom_x(dev); - float zoom_y = dt_second_window_get_dev_zoom_y(dev); - dt_second_window_get_processed_size(dev, &procw, &proch); - float scale = dt_second_window_get_zoom_scale(dev, zoom, 1 << closeup, 0); - const float ppd = dev->second_window.ppd; - const float fitscale = dt_second_window_get_zoom_scale(dev, DT_ZOOM_FIT, 1.0, 0); - - // offset from center now (current zoom_{x,y} points there) - const float mouse_off_x = x - 0.5f * dev->second_window.width; - const float mouse_off_y = y - 0.5f * dev->second_window.height; - zoom_x += mouse_off_x / (procw * scale); - zoom_y += mouse_off_y / (proch * scale); - zoom = DT_ZOOM_FREE; - closeup = 0; - - const gboolean constrained = !dt_modifier_is(state, GDK_CONTROL_MASK); - const gboolean low_ppd = (dev->second_window.ppd == 1); - - const float tscaleold = scale * ppd; - const float tscale = _calculate_new_scroll_zoom_tscale (up, constrained, tscaleold, fitscale * ppd); - if(tscale == tscaleold) return; // no op - scale = tscale / ppd; - - // pixel doubling instead of interpolation at >= 200% lodpi, >= 400% hidpi - if(tscale > 15.9999f) - { - scale = dt_second_window_get_zoom_scale(dev, DT_ZOOM_1, 1.0, 0); - zoom = DT_ZOOM_1; - closeup = low_ppd ? 4 : 3; - } - else if(tscale > 7.9999f) - { - scale = dt_second_window_get_zoom_scale(dev, DT_ZOOM_1, 1.0, 0); - zoom = DT_ZOOM_1; - closeup = low_ppd ? 3 : 2; - } - else if(tscale > 3.9999f) - { - scale = dt_second_window_get_zoom_scale(dev, DT_ZOOM_1, 1.0, 0); - zoom = DT_ZOOM_1; - closeup = low_ppd ? 2 : 1; - } - else if(tscale > 1.9999f) - { - scale = dt_second_window_get_zoom_scale(dev, DT_ZOOM_1, 1.0, 0); - zoom = DT_ZOOM_1; - if(low_ppd) closeup = 1; - } - - if(fabsf(scale - 1.0f) < 0.001f) zoom = DT_ZOOM_1; - if(fabsf(scale - fitscale) < 0.001f) zoom = DT_ZOOM_FIT; - dt_second_window_set_zoom_scale(dev, scale); - dt_second_window_set_dev_closeup(dev, closeup); - scale = dt_second_window_get_zoom_scale(dev, zoom, 1 << closeup, 0); - - zoom_x -= mouse_off_x / (procw * scale); - zoom_y -= mouse_off_y / (proch * scale); - dt_second_window_check_zoom_bounds(dev, &zoom_x, &zoom_y, zoom, closeup, NULL, NULL); - dt_second_window_set_dev_zoom(dev, zoom); - dt_second_window_set_dev_zoom_x(dev, zoom_x); - dt_second_window_set_dev_zoom_y(dev, zoom_y); - - // pipe needs to be reconstructed - dev->preview2_status = DT_DEV_PIXELPIPE_DIRTY; - - gtk_widget_queue_draw(widget); -} - static void second_window_leave(dt_develop_t *dev) { // reset any changes the selected plugin might have made. - dt_second_window_change_cursor(dev, GDK_LEFT_PTR); -} - -static int second_window_button_pressed(GtkWidget *widget, - dt_develop_t *dev, - double x, - double y, - const double pressure, - const int which, - const int type, - const uint32_t state) -{ - const int32_t tb = dev->second_window.border_size; - const int32_t capwd = dev->second_window.width - 2 * tb; - const int32_t capht = dev->second_window.height - 2 * tb; - const int32_t width_i = dev->second_window.width; - const int32_t height_i = dev->second_window.height; - if(width_i > capwd) x += (capwd - width_i) * .5f; - if(height_i > capht) y += (capht - height_i) * .5f; - - dev->second_window.button_x = x - tb; - dev->second_window.button_y = y - tb; - - if(which == 1 && type == GDK_2BUTTON_PRESS) return 0; - if(which == 1) - { - dt_second_window_change_cursor(dev, GDK_HAND1); - return 1; - } - if(which == 2) - { - // zoom to 1:1 2:1 and back - int procw, proch; - dt_dev_zoom_t zoom = dt_second_window_get_dev_zoom(dev); - int closeup = dt_second_window_get_dev_closeup(dev); - float zoom_x = dt_second_window_get_dev_zoom_x(dev); - float zoom_y = dt_second_window_get_dev_zoom_y(dev); - dt_second_window_get_processed_size(dev, &procw, &proch); - float scale = dt_second_window_get_zoom_scale(dev, zoom, 1 << closeup, 0); - const float ppd = dev->second_window.ppd; - const gboolean low_ppd = dev->second_window.ppd == 1; - - const float mouse_off_x = x - 0.5f * dev->second_window.width; - const float mouse_off_y = y - 0.5f * dev->second_window.height; - zoom_x += mouse_off_x / (procw * scale); - zoom_y += mouse_off_y / (proch * scale); - const float tscale = scale * ppd; - closeup = 0; - - if((tscale > 0.95f) && (tscale < 1.05f)) // we are at 100% and switch to 200% - { - zoom = DT_ZOOM_1; - scale = dt_dev_get_zoom_scale(dev, DT_ZOOM_1, 1.0, 0); - if(low_ppd) closeup = 1; - } - else if((tscale > 1.95f) && (tscale < 2.05f)) // at 200% so switch to zoomfit - { - zoom = DT_ZOOM_FIT; - scale = dt_dev_get_zoom_scale(dev, DT_ZOOM_FIT, 1.0, 0); - } - else // other than 100 or 200% so zoom to 100 % - { - if(low_ppd) - { - zoom = DT_ZOOM_1; - scale = dt_dev_get_zoom_scale(dev, DT_ZOOM_1, 1.0, 0); - } - else - { - zoom = DT_ZOOM_FREE; - scale = 1.0f / ppd; - } - } - dt_second_window_set_zoom_scale(dev, scale); - dt_second_window_set_dev_closeup(dev, closeup); - scale = dt_second_window_get_zoom_scale(dev, zoom, 1 << closeup, 0); - zoom_x -= mouse_off_x / (procw * scale); - zoom_y -= mouse_off_y / (proch * scale); - dt_second_window_check_zoom_bounds(dev, &zoom_x, &zoom_y, zoom, closeup, NULL, NULL); - dt_second_window_set_dev_zoom(dev, zoom); - dt_second_window_set_dev_zoom_x(dev, zoom_x); - dt_second_window_set_dev_zoom_y(dev, zoom_y); - - // pipe needs to be reconstructed - dev->preview2_status = DT_DEV_PIXELPIPE_DIRTY; - - gtk_widget_queue_draw(widget); - - return 1; - } - return 0; -} - -static int second_window_button_released(dt_develop_t *dev, - const double x, - const double y, - const int which, - const uint32_t state) -{ - if(which == 1) dt_second_window_change_cursor(dev, GDK_LEFT_PTR); - return 1; -} - -static void second_window_mouse_moved(GtkWidget *widget, - dt_develop_t *dev, - double x, - double y, - const double pressure, - const int which) -{ - const int32_t tb = dev->second_window.border_size; - const int32_t capwd = dev->second_window.width - 2 * tb; - const int32_t capht = dev->second_window.height - 2 * tb; - - const int32_t width_i = dev->second_window.width; - const int32_t height_i = dev->second_window.height; - int32_t offx = 0.0f, offy = 0.0f; - if(width_i > capwd) offx = (capwd - width_i) * .5f; - if(height_i > capht) offy = (capht - height_i) * .5f; - - x += offx; - y += offy; - - if(which & GDK_BUTTON1_MASK) - { - // depending on dev_zoom, adjust dev_zoom_x/y. - const dt_dev_zoom_t zoom = dt_second_window_get_dev_zoom(dev); - const int closeup = dt_second_window_get_dev_closeup(dev); - int procw, proch; - dt_second_window_get_processed_size(dev, &procw, &proch); - const float scale = dt_second_window_get_zoom_scale(dev, zoom, 1 << closeup, 0); - float old_zoom_x, old_zoom_y; - old_zoom_x = dt_second_window_get_dev_zoom_x(dev); - old_zoom_y = dt_second_window_get_dev_zoom_y(dev); - float zx = old_zoom_x - (1.0 / scale) * (x - dev->second_window.button_x - offx) / procw; - float zy = old_zoom_y - (1.0 / scale) * (y - dev->second_window.button_y - offy) / proch; - dt_second_window_check_zoom_bounds(dev, &zx, &zy, zoom, closeup, NULL, NULL); - dt_second_window_set_dev_zoom_x(dev, zx); - dt_second_window_set_dev_zoom_y(dev, zy); - dev->second_window.button_x = x - offx; - dev->second_window.button_y = y - offy; - - // pipe needs to be reconstructed - dev->preview2_status = DT_DEV_PIXELPIPE_DIRTY; - - gtk_widget_queue_draw(widget); - } + dt_second_window_change_cursor(dev, "default"); } static void _second_window_configure_ppd_dpi(dt_develop_t *dev) { - GtkWidget *widget = dev->second_window.second_wnd; + GtkWidget *widget = dev->second_wnd; + + dev->preview2.ppd = dt_get_system_gui_ppd(widget); + dev->preview2.dpi = dt_get_screen_resolution(widget); - dev->second_window.ppd = dev->second_window.ppd_thb = dt_get_system_gui_ppd(widget); - if(dt_conf_get_bool("ui/performance")) - dev->second_window.ppd_thb *= DT_GUI_THUMBSIZE_REDUCE; - - // get the screen resolution - float screen_dpi_overwrite = dt_conf_get_float("screen_dpi_overwrite"); - if(screen_dpi_overwrite > 0.0) - { - dev->second_window.dpi = screen_dpi_overwrite; - gdk_screen_set_resolution(gtk_widget_get_screen(widget), screen_dpi_overwrite); - dt_print(DT_DEBUG_CONTROL, - "[screen resolution] setting the screen resolution to %f dpi as specified in " - "the configuration file\n", - screen_dpi_overwrite); - } - else - { #ifdef GDK_WINDOWING_QUARTZ - dt_osx_autoset_dpi(widget); + dev->preview2.dpi_factor + = dev->preview2.dpi / 72; // macOS has a fixed DPI of 72 +#else + dev->preview2.dpi_factor + = dev->preview2.dpi / 96; // according to man xrandr and the docs of gdk_screen_set_resolution 96 is the default #endif - dev->second_window.dpi = gdk_screen_get_resolution(gtk_widget_get_screen(widget)); - if(dev->second_window.dpi < 0.0) - { - dev->second_window.dpi = 96.0; - gdk_screen_set_resolution(gtk_widget_get_screen(widget), 96.0); - dt_print(DT_DEBUG_CONTROL, - "[screen resolution] setting the screen resolution to the default 96 dpi\n"); - } - else - dt_print(DT_DEBUG_CONTROL, - "[screen resolution] setting the screen resolution to %f dpi\n", - dev->second_window.dpi); - } - dev->second_window.dpi_factor - = dev->second_window.dpi / 96; // according to man xrandr and the docs of gdk_screen_set_resolution 96 is the default } static gboolean _second_window_draw_callback(GtkWidget *widget, - cairo_t *crf, + cairo_t *cri, dt_develop_t *dev) { - int pointerx, pointery; - GtkAllocation allocation; - gtk_widget_get_allocation(widget, &allocation); - const int32_t width = allocation.width; - const int32_t height = allocation.height; + cairo_set_source_rgb(cri, 0.2, 0.2, 0.2); - dt_dev_second_window_configure(dev, width, height); - dt_control_queue_redraw_center(); + if(_preview2_request(dev)) dt_dev_process_preview2(dev); + + if(dev->preview2.pipe->backbuf) // do we have an image? + { + // draw image + dt_gui_gtk_set_source_rgb(cri, DT_GUI_COLOR_DARKROOM_BG); + cairo_paint(cri); - gdk_window_get_device_position(gtk_widget_get_window(widget), - gdk_seat_get_pointer(gdk_display_get_default_seat(gtk_widget_get_display(widget))), - &pointerx, &pointery, NULL); - second_window_expose(widget, dev, crf, width, height, pointerx, pointery); + _view_paint_surface(cri, dev->preview2.orig_width, dev->preview2.orig_height, + &dev->preview2, DT_WINDOW_SECOND); + } return TRUE; } @@ -4484,10 +3683,11 @@ dt_develop_t *dev) { int delta_y; - if(dt_gui_get_scroll_unit_deltas(event, NULL, &delta_y)) + if(dt_gui_get_scroll_unit_delta(event, &delta_y)) { - second_window_scrolled(widget, dev, event->x, event->y, delta_y < 0, event->state & 0xf); - gtk_widget_queue_draw(widget); + const gboolean constrained = !dt_modifier_is(event->state, GDK_CONTROL_MASK); + dt_dev_zoom_move(&dev->preview2, DT_ZOOM_SCROLL, 0.0f, delta_y < 0, + event->x, event->y, constrained); } return TRUE; @@ -4497,16 +3697,19 @@ GdkEventButton *event, dt_develop_t *dev) { - double pressure = 1.0; - GdkDevice *device = gdk_event_get_source_device((GdkEvent *)event); - - if(device && gdk_device_get_source(device) == GDK_SOURCE_PEN) + if(event->type == GDK_2BUTTON_PRESS) return 0; + if(event->button == 1) { - gdk_event_get_axis((GdkEvent *)event, GDK_AXIS_PRESSURE, &pressure); + darktable.control->button_x = event->x; + darktable.control->button_y = event->y; + dt_second_window_change_cursor(dev, "grabbing"); + return TRUE; + } + if(event->button == 2) + { + dt_dev_zoom_move(&dev->preview2, DT_ZOOM_1, 0.0f, -2, event->x, event->y, !dt_modifier_is(event->state, GDK_CONTROL_MASK)); + return TRUE; } - second_window_button_pressed(w, dev, event->x, event->y, pressure, event->button, event->type, event->state & 0xf); - gtk_widget_grab_focus(w); - gtk_widget_queue_draw(w); return FALSE; } @@ -4514,7 +3717,8 @@ GdkEventButton *event, dt_develop_t *dev) { - second_window_button_released(dev, event->x, event->y, event->button, event->state & 0xf); + if(event->button == 1) dt_second_window_change_cursor(dev, "default"); + gtk_widget_queue_draw(w); return TRUE; } @@ -4523,14 +3727,14 @@ GdkEventMotion *event, dt_develop_t *dev) { - double pressure = 1.0; - GdkDevice *device = gdk_event_get_source_device((GdkEvent *)event); - - if(device && gdk_device_get_source(device) == GDK_SOURCE_PEN) + if(event->state & GDK_BUTTON1_MASK) { - gdk_event_get_axis((GdkEvent *)event, GDK_AXIS_PRESSURE, &pressure); + dt_control_t *ctl = darktable.control; + dt_dev_zoom_move(&dev->preview2, DT_ZOOM_MOVE, -1.f, 0, event->x - ctl->button_x, event->y - ctl->button_y, TRUE); + ctl->button_x = event->x; + ctl->button_y = event->y; + return TRUE; } - second_window_mouse_moved(w, dev, event->x, event->y, pressure, event->state); return FALSE; } @@ -4546,23 +3750,19 @@ GdkEventConfigure *event, dt_develop_t *dev) { - static int oldw = 0; - static int oldh = 0; - - if(oldw != event->width || oldh != event->height) + if(dev->preview2.orig_width != event->width + || dev->preview2.orig_height != event->height) { - dev->second_window.width = event->width; - dev->second_window.height = event->height; - dev->second_window.orig_width = event->width; - dev->second_window.orig_height = event->height; + dev->preview2.width = event->width; + dev->preview2.height = event->height; + dev->preview2.orig_width = event->width; + dev->preview2.orig_height = event->height; // pipe needs to be reconstructed - dev->preview2_status = DT_DEV_PIXELPIPE_DIRTY; - dev->preview2_pipe->changed |= DT_DEV_PIPE_REMOVE; - dev->preview2_pipe->cache_obsolete = TRUE; + dev->preview2.pipe->status = DT_DEV_PIXELPIPE_DIRTY; + dev->preview2.pipe->changed |= DT_DEV_PIPE_REMOVE; + dev->preview2.pipe->cache_obsolete = TRUE; } - oldw = event->width; - oldh = event->height; dt_colorspaces_set_display_profile(DT_COLORSPACE_DISPLAY2); @@ -4570,6 +3770,8 @@ _second_window_configure_ppd_dpi(dev); #endif + dt_dev_configure(&dev->preview2); + return TRUE; } @@ -4578,11 +3780,7 @@ const int width = MAX(10, dt_conf_get_int("second_window/window_w")); const int height = MAX(10, dt_conf_get_int("second_window/window_h")); - dev->second_window.width = width; - dev->second_window.height = height; - dev->second_window.orig_width = width; - dev->second_window.orig_height = height; - dev->second_window.border_size = 0; + dev->preview2.border_size = 0; const gint x = MAX(0, dt_conf_get_int("second_window/window_x")); const gint y = MAX(0, dt_conf_get_int("second_window/window_y")); @@ -4624,74 +3822,68 @@ GdkEvent *event, dt_develop_t *dev) { - _darkroom_ui_second_window_write_config(dev->second_window.second_wnd); + _darkroom_ui_second_window_write_config(dev->second_wnd); - dev->second_window.second_wnd = NULL; - dev->second_window.widget = NULL; + dev->second_wnd = NULL; + dev->preview2.widget = NULL; - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dev->second_window.button), FALSE); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dev->second_wnd_button), FALSE); return FALSE; } static void _darkroom_display_second_window(dt_develop_t *dev) { - if(dev->second_window.second_wnd == NULL) + if(dev->second_wnd == NULL) { - dev->second_window.width = -1; - dev->second_window.height = -1; + dev->preview2.width = -1; + dev->preview2.height = -1; - dev->second_window.second_wnd = gtk_window_new(GTK_WINDOW_TOPLEVEL); - gtk_widget_set_name(dev->second_window.second_wnd, "second_window"); + dev->second_wnd = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_widget_set_name(dev->second_wnd, "second_window"); _second_window_configure_ppd_dpi(dev); - gtk_window_set_icon_name(GTK_WINDOW(dev->second_window.second_wnd), "darktable"); - gtk_window_set_title(GTK_WINDOW(dev->second_window.second_wnd), _("darktable - darkroom preview")); - - GtkWidget *container = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); - gtk_container_add(GTK_CONTAINER(dev->second_window.second_wnd), container); - - GtkWidget *widget = gtk_grid_new(); - gtk_box_pack_start(GTK_BOX(container), widget, TRUE, TRUE, 0); - - dev->second_window.widget = gtk_drawing_area_new(); - gtk_widget_set_size_request(dev->second_window.widget, DT_PIXEL_APPLY_DPI_2ND_WND(dev, 50), DT_PIXEL_APPLY_DPI_2ND_WND(dev, 200)); - gtk_widget_set_hexpand(dev->second_window.widget, TRUE); - gtk_widget_set_vexpand(dev->second_window.widget, TRUE); - gtk_widget_set_app_paintable(dev->second_window.widget, TRUE); + gtk_window_set_icon_name(GTK_WINDOW(dev->second_wnd), "darktable"); + gtk_window_set_title(GTK_WINDOW(dev->second_wnd), _("darktable - darkroom preview")); - gtk_grid_attach(GTK_GRID(widget), dev->second_window.widget, 0, 0, 1, 1); + dev->preview2.widget = gtk_drawing_area_new(); + gtk_container_add(GTK_CONTAINER(dev->second_wnd), dev->preview2.widget); + gtk_widget_set_size_request(dev->preview2.widget, DT_PIXEL_APPLY_DPI_2ND_WND(dev, 50), DT_PIXEL_APPLY_DPI_2ND_WND(dev, 200)); + gtk_widget_set_hexpand(dev->preview2.widget, TRUE); + gtk_widget_set_vexpand(dev->preview2.widget, TRUE); + gtk_widget_set_app_paintable(dev->preview2.widget, TRUE); - gtk_widget_set_events(dev->second_window.widget, GDK_POINTER_MOTION_MASK + gtk_widget_set_events(dev->preview2.widget, GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | darktable.gui->scroll_mask); /* connect callbacks */ - g_signal_connect(G_OBJECT(dev->second_window.widget), "draw", G_CALLBACK(_second_window_draw_callback), dev); - g_signal_connect(G_OBJECT(dev->second_window.widget), "scroll-event", + g_signal_connect(G_OBJECT(dev->preview2.widget), "draw", + G_CALLBACK(_second_window_draw_callback), dev); + g_signal_connect(G_OBJECT(dev->preview2.widget), "scroll-event", G_CALLBACK(_second_window_scrolled_callback), dev); - g_signal_connect(G_OBJECT(dev->second_window.widget), "button-press-event", + g_signal_connect(G_OBJECT(dev->preview2.widget), "button-press-event", G_CALLBACK(_second_window_button_pressed_callback), dev); - g_signal_connect(G_OBJECT(dev->second_window.widget), "button-release-event", + g_signal_connect(G_OBJECT(dev->preview2.widget), "button-release-event", G_CALLBACK(_second_window_button_released_callback), dev); - g_signal_connect(G_OBJECT(dev->second_window.widget), "motion-notify-event", + g_signal_connect(G_OBJECT(dev->preview2.widget), "motion-notify-event", G_CALLBACK(_second_window_mouse_moved_callback), dev); - g_signal_connect(G_OBJECT(dev->second_window.widget), "leave-notify-event", + g_signal_connect(G_OBJECT(dev->preview2.widget), "leave-notify-event", G_CALLBACK(_second_window_leave_callback), dev); - g_signal_connect(G_OBJECT(dev->second_window.widget), "configure-event", + g_signal_connect(G_OBJECT(dev->preview2.widget), "configure-event", G_CALLBACK(_second_window_configure_callback), dev); - g_signal_connect(G_OBJECT(dev->second_window.second_wnd), "delete-event", + g_signal_connect(G_OBJECT(dev->second_wnd), "delete-event", G_CALLBACK(_second_window_delete_callback), dev); - g_signal_connect(G_OBJECT(dev->second_window.second_wnd), "event", + g_signal_connect(G_OBJECT(dev->second_wnd), "event", G_CALLBACK(dt_shortcut_dispatcher), NULL); - _darkroom_ui_second_window_init(dev->second_window.second_wnd, dev); + _darkroom_ui_second_window_init(dev->second_wnd, dev); } - gtk_widget_show_all(dev->second_window.second_wnd); + gtk_widget_show_all(dev->second_wnd); } // clang-format off diff -Nru darktable-4.4.2/src/views/lighttable.c darktable-4.6.1/src/views/lighttable.c --- darktable-4.4.2/src/views/lighttable.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/views/lighttable.c 2024-02-16 17:31:09.000000000 +0000 @@ -389,7 +389,7 @@ { dt_library_t *lib = (dt_library_t *)self->data; - const double start = dt_get_wtime(); + const double start = dt_get_debug_wtime(); const dt_lighttable_layout_t layout = dt_view_lighttable_get_layout(darktable.view_manager); // Let's show full preview if in that state... @@ -429,9 +429,9 @@ // we have started the first expose lib->already_started = TRUE; - const double end = dt_get_wtime(); - if(darktable.unmuted & DT_DEBUG_PERF) - dt_print(DT_DEBUG_LIGHTTABLE, "[lighttable] expose took %0.04f sec\n", end - start); + dt_print(DT_DEBUG_LIGHTTABLE | DT_DEBUG_PERF, + "[lighttable] expose took %0.04f sec\n", + dt_get_wtime() - start); } void enter(dt_view_t *self) diff -Nru darktable-4.4.2/src/views/map.c darktable-4.6.1/src/views/map.c --- darktable-4.4.2/src/views/map.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/views/map.c 2024-02-16 17:31:09.000000000 +0000 @@ -81,7 +81,7 @@ int max_images_drawn; dt_map_box_t bbox; int time_out; - int timeout_event_source; + guint timeout_event_source; int thumbnail; dt_map_image_t *last_hovered_entry; struct @@ -1359,7 +1359,7 @@ * epsilon_factor * 0.01 * 0.000001 / R); dt_times_t start; - dt_get_times(&start); + dt_get_perf_times(&start); _dbscan(p, img_count, epsilon, min_images); dt_show_times(&start, "[map] dbscan calculation"); @@ -2199,7 +2199,7 @@ } else { - /* the line must be splitted in order to seek the geodesic line */ + /* the line must be split in order to seek the geodesic line */ OsmGpsMapPoint *ith_point; double f, ith_lat, ith_lon; const int n_segments = ceil(d / DT_MINIMUM_DISTANCE_FOR_GEODESIC); @@ -2839,14 +2839,18 @@ { // points are ordered by longitude // limit the exploration to epsilon east and west + const double x = db.points[index].x; + const double min_x = x - db.epsilon; + const double max_x = x + db.epsilon; + const double y = db.points[index].y; // west - for(int i = index; i < db.num_points; ++i) + for(int i = index+1; i < db.num_points; ++i) { - if(i == index || db.points[i].cluster_id >= 0) - continue; - if((db.points[i].x - db.points[index].x) > db.epsilon) + if(db.points[i].x > max_x) break; - if(fabs(db.points[i].y - db.points[index].y) > db.epsilon) + if(db.points[i].cluster_id >= 0) // skip points which have already been assigned to a cluster + continue; + if(fabs(db.points[i].y - y) > db.epsilon) continue; else { @@ -2855,13 +2859,13 @@ } } // east - for(int i = index; i >= 0; --i) + for(int i = index-1; i >= 0; --i) { - if(i == (int)index || db.points[i].cluster_id >= 0) - continue; - if((db.points[index].x - db.points[i].x) > db.epsilon) + if(db.points[i].x < min_x) break; - if(fabs(db.points[index].y - db.points[i].y) > db.epsilon) + if(db.points[i].cluster_id >= 0) // skip points which have already been assigned to a cluster + continue; + if(fabs(y - db.points[i].y) > db.epsilon) continue; else { @@ -2879,12 +2883,9 @@ for(unsigned int i = 0; i < db.spreads->num_members; i++) { dt_geo_position_t *d = &db.points[db.spreads->index[i]]; - if(d->cluster_id == NOISE || d->cluster_id == UNCLASSIFIED) - { - db.seeds->index[db.seeds->num_members] = db.spreads->index[i]; - db.seeds->num_members++; - d->cluster_id = db.cluster_id; - } + db.seeds->index[db.seeds->num_members] = db.spreads->index[i]; + db.seeds->num_members++; + d->cluster_id = db.cluster_id; // only NOISE/UNCLASSIFIED are in the list } } diff -Nru darktable-4.4.2/src/views/slideshow.c darktable-4.6.1/src/views/slideshow.c --- darktable-4.4.2/src/views/slideshow.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/views/slideshow.c 2024-02-16 17:31:09.000000000 +0000 @@ -114,7 +114,8 @@ return id; } -static dt_slideshow_slot_t _get_slot_for_image(const dt_slideshow_t *d, const dt_imgid_t imgid) +static dt_slideshow_slot_t _get_slot_for_image(const dt_slideshow_t *d, + const dt_imgid_t imgid) { dt_slideshow_slot_t slt = -1; @@ -182,52 +183,49 @@ dt_control_add_job(darktable.control, DT_JOB_QUEUE_USER_BG, _process_job_create(d)); } -static void _set_delay(dt_slideshow_t *d, int value) +static void _set_delay(dt_slideshow_t *d, + const int value) { d->delay = CLAMP(d->delay + value, 1, 60); dt_conf_set_int("slideshow_delay", d->delay); } -static int _process_image(dt_slideshow_t *d, dt_slideshow_slot_t slot) +static int _process_image(dt_slideshow_t *d, + dt_slideshow_slot_t slot) { dt_pthread_mutex_lock(&d->lock); d->exporting++; const size_t s_width = d->width; const size_t s_height = d->height; const dt_imgid_t imgid = d->buf[slot].imgid; - size_t width = d->buf[slot].width; - size_t height = d->buf[slot].height; - uint8_t *buf; + size_t width, height; + uint8_t *buf = NULL; dt_pthread_mutex_unlock(&d->lock); - dt_dev_image_ext + dt_dev_image (imgid, d->width / darktable.gui->ppd, d->height / darktable.gui->ppd, -1, &buf, + NULL, &width, &height, - 0, - FALSE, - -1); + NULL, NULL, -1); dt_pthread_mutex_lock(&d->lock); // original slot for this image - dt_slideshow_slot_t slt = slot; // check if we have not moved the slideshow forward or backward, if the // slot is not the same, check for a possible new slot for this image. - if(d->buf[slt].imgid != imgid) slt = _get_slot_for_image(d, imgid); // also ensure that the screen has not been resized, otherwise we discard // the image. it will get regenerated in another later job. - if(slt != -1 && d->width == s_width && d->height == s_height) @@ -249,7 +247,8 @@ return 0; } -static gboolean _is_slot_waiting(dt_slideshow_t *d, dt_slideshow_slot_t slot) +static gboolean _is_slot_waiting(const dt_slideshow_t *d, + const dt_slideshow_slot_t slot) { return d->buf[slot].invalidated && d->buf[slot].buf == NULL @@ -257,7 +256,7 @@ && d->buf[slot].rank >= 0; } -static gboolean _is_idle(dt_slideshow_t *d) +static gboolean _is_idle(const dt_slideshow_t *d) { gboolean idle = TRUE; for(dt_slideshow_slot_t slot=S_LEFT; slot<S_SLOT_LAST; slot++) @@ -269,7 +268,8 @@ { dt_slideshow_t *d = (dt_slideshow_t *)user_data; if(!d->auto_advance) return FALSE; - if(!_is_idle(d)) return TRUE; // never try to advance if still exporting, but call me back again + if(!_is_idle(d)) + return TRUE; // never try to advance if still exporting, but call me back again _step_state(d, S_REQUEST_STEP); return FALSE; } @@ -322,12 +322,14 @@ { dt_job_t *job = dt_control_job_create(&_process_job_run, "process slideshow image"); if(!job) return NULL; + dt_control_job_set_params(job, d, NULL); return job; } // state machine stepping -static void _step_state(dt_slideshow_t *d, dt_slideshow_event_t event) +static void _step_state(dt_slideshow_t *d, + const dt_slideshow_event_t event) { dt_pthread_mutex_lock(&d->lock); @@ -383,7 +385,6 @@ } // callbacks for a view module: - const char *name(const dt_view_t *self) { return _("slideshow"); @@ -445,7 +446,8 @@ GdkRectangle rect; GdkDisplay *display = gtk_widget_get_display(window); - GdkMonitor *mon = gdk_display_get_monitor_at_window(display, gtk_widget_get_window(window)); + GdkMonitor *mon = gdk_display_get_monitor_at_window(display, + gtk_widget_get_window(window)); gdk_monitor_get_geometry(mon, &rect); dt_pthread_mutex_lock(&d->lock); @@ -465,7 +467,10 @@ if(dt_is_valid_imgid(imgid)) { sqlite3_stmt *stmt; - gchar *query = g_strdup_printf("SELECT rowid FROM memory.collected_images WHERE imgid=%d", imgid); + gchar *query = g_strdup_printf("SELECT rowid" + " FROM memory.collected_images" + " WHERE imgid=%d", + imgid); DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), query, -1, &stmt, NULL); if(sqlite3_step(stmt) == SQLITE_ROW) { @@ -517,7 +522,8 @@ // otherwise we will crash releasing lock and memory. while(d->exporting > 0) sleep(1); - dt_thumbtable_set_offset(dt_ui_thumbtable(darktable.gui->ui), d->buf[S_CURRENT].rank, FALSE); + dt_thumbtable_set_offset(dt_ui_thumbtable(darktable.gui->ui), + d->buf[S_CURRENT].rank, FALSE); dt_pthread_mutex_lock(&d->lock); @@ -529,7 +535,12 @@ dt_pthread_mutex_unlock(&d->lock); } -void expose(dt_view_t *self, cairo_t *cr, int32_t width, int32_t height, int32_t pointerx, int32_t pointery) +void expose(dt_view_t *self, + cairo_t *cr, + const int32_t width, + const int32_t height, + const int32_t pointerx, + const int32_t pointery) { // draw front buffer. dt_slideshow_t *d = (dt_slideshow_t *)self->data; @@ -545,41 +556,52 @@ _requeue_job(d); } + cairo_paint(cr); + cairo_save(cr); + + cairo_translate(cr, 0.5 * width, 0.5 * height); + // redraw even if the current displayed image is imgid as we want the // "working..." label to be cleared. - if(slot->buf && dt_is_valid_imgid(imgid) && !slot->invalidated) { + double scale = MIN((double)width / slot->width, (double)height / slot->height); + cairo_scale(cr, scale, scale); + cairo_surface_t *surface = dt_view_create_surface(slot->buf, slot->width, slot->height); + cairo_set_source_surface(cr, surface, - 0.5 * slot->width, -0.5 * slot->height); + cairo_pattern_set_filter(cairo_get_source(cr), CAIRO_FILTER_BEST); cairo_paint(cr); - - cairo_save(cr); - - dt_view_paint_buffer - (cr, width, height, - slot->buf, slot->width, slot->height, DT_WINDOW_SLIDESHOW); + cairo_surface_destroy(surface); d->id_displayed = imgid; d->id_preview_displayed = imgid; - cairo_restore(cr); } else if(dt_is_valid_imgid(imgid) && imgid != d->id_preview_displayed) { // get a small preview dt_mipmap_buffer_t buf; dt_mipmap_size_t mip = - dt_mipmap_cache_get_matching_size(darktable.mipmap_cache, width / 8, height /8); + dt_mipmap_cache_get_matching_size(darktable.mipmap_cache, width / 8, height / 8); dt_mipmap_cache_get(darktable.mipmap_cache, &buf, imgid, mip, DT_MIPMAP_BLOCKING, 'r'); if(buf.buf) { + double scale = MIN((double)width / buf.width, (double)height / buf.height); + cairo_scale(cr, scale, scale); + GdkPixbuf *pixbuf = gdk_pixbuf_new_from_data + (buf.buf, GDK_COLORSPACE_RGB, TRUE, 8, buf.width, buf.height, + buf.width * 4, NULL, NULL); + gdk_cairo_set_source_pixbuf(cr, pixbuf, - 0.5 * buf.width, -0.5 * buf.height); + cairo_pattern_set_filter(cairo_get_source(cr), CAIRO_FILTER_GOOD); cairo_paint(cr); - dt_view_paint_pixbuf(cr, width, height, - (uint8_t *)buf.buf, buf.width, buf.height, DT_WINDOW_SLIDESHOW); + g_object_unref(pixbuf); } d->id_preview_displayed = imgid; dt_mipmap_cache_release(darktable.mipmap_cache, &buf); } + cairo_restore(cr); + d->width = width * darktable.gui->ppd; d->height = height * darktable.gui->ppd; @@ -596,23 +618,39 @@ } -void mouse_moved(dt_view_t *self, double x, double y, double pressure, int which) +void mouse_moved(dt_view_t *self, + const double x, + const double y, + const double pressure, + const int which) { dt_slideshow_t *d = (dt_slideshow_t *)self->data; - if(d->mouse_timeout > 0) g_source_remove(d->mouse_timeout); - else dt_control_change_cursor(GDK_LEFT_PTR); + if(d->mouse_timeout > 0) + g_source_remove(d->mouse_timeout); + else + dt_control_change_cursor(GDK_LEFT_PTR); d->mouse_timeout = g_timeout_add_seconds(1, _hide_mouse, self); } -int button_released(dt_view_t *self, double x, double y, int which, uint32_t state) +int button_released(dt_view_t *self, + const double x, + const double y, + const int which, + const uint32_t state) { return 0; } -int button_pressed(dt_view_t *self, double x, double y, double pressure, int which, int type, uint32_t state) +int button_pressed(dt_view_t *self, + const double x, + const double y, + const double pressure, + const int which, + const int type, + const uint32_t state) { dt_slideshow_t *d = (dt_slideshow_t *)self->data; @@ -645,14 +683,20 @@ { dt_slideshow_t *d = dt_action_view(action)->data; _set_delay(d, 1); - dt_control_log(ngettext("slideshow delay set to %d second", "slideshow delay set to %d seconds", d->delay), d->delay); + dt_control_log(ngettext("slideshow delay set to %d second", + "slideshow delay set to %d seconds", + d->delay), + d->delay); } static void _speed_up_callback(dt_action_t *action) { dt_slideshow_t *d = dt_action_view(action)->data; _set_delay(d, -1); - dt_control_log(ngettext("slideshow delay set to %d second", "slideshow delay set to %d seconds", d->delay), d->delay); + dt_control_log(ngettext("slideshow delay set to %d second", + "slideshow delay set to %d seconds", + d->delay), + d->delay); } static void _step_back_callback(dt_action_t *action) @@ -681,28 +725,37 @@ void gui_init(dt_view_t *self) { - dt_action_register(DT_ACTION(self), N_("start and stop"), _start_stop_callback, GDK_KEY_space, 0); - dt_action_register(DT_ACTION(self), N_("exit slideshow"), _exit_callback, GDK_KEY_Escape, 0); + dt_action_register(DT_ACTION(self), N_("start and stop"), + _start_stop_callback, GDK_KEY_space, 0); + dt_action_register(DT_ACTION(self), N_("exit slideshow"), + _exit_callback, GDK_KEY_Escape, 0); dt_action_t *ac; - ac = dt_action_register(DT_ACTION(self), N_("slow down"), _slow_down_callback, GDK_KEY_Up, 0); + ac = dt_action_register(DT_ACTION(self), N_("slow down"), + _slow_down_callback, GDK_KEY_Up, 0); dt_shortcut_register(ac, 0, 0, GDK_KEY_KP_Add, 0); dt_shortcut_register(ac, 0, 0, GDK_KEY_plus, 0); - ac = dt_action_register(DT_ACTION(self), N_("speed up"), _speed_up_callback, GDK_KEY_Down, 0); + ac = dt_action_register(DT_ACTION(self), N_("speed up"), + _speed_up_callback, GDK_KEY_Down, 0); dt_shortcut_register(ac, 0, 0, GDK_KEY_KP_Subtract, 0); dt_shortcut_register(ac, 0, 0, GDK_KEY_minus, 0); - dt_action_register(DT_ACTION(self), N_("step forward"), _step_forward_callback, GDK_KEY_Right, 0); - dt_action_register(DT_ACTION(self), N_("step back"), _step_back_callback, GDK_KEY_Left, 0); + dt_action_register(DT_ACTION(self), N_("step forward"), + _step_forward_callback, GDK_KEY_Right, 0); + dt_action_register(DT_ACTION(self), N_("step back"), + _step_back_callback, GDK_KEY_Left, 0); } GSList *mouse_actions(const dt_view_t *self) { GSList *lm = NULL; - lm = dt_mouse_action_create_simple(lm, DT_MOUSE_ACTION_LEFT, 0, _("go to next image")); - lm = dt_mouse_action_create_simple(lm, DT_MOUSE_ACTION_RIGHT, 0, _("go to previous image")); + lm = dt_mouse_action_create_simple(lm, DT_MOUSE_ACTION_LEFT, 0, + _("go to next image")); + lm = dt_mouse_action_create_simple(lm, DT_MOUSE_ACTION_RIGHT, 0, + _("go to previous image")); return lm; } + // clang-format off // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py // vim: shiftwidth=2 expandtab tabstop=2 cindent diff -Nru darktable-4.4.2/src/views/view.c darktable-4.6.1/src/views/view.c --- darktable-4.4.2/src/views/view.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/views/view.c 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2009-2021 darktable developers. + Copyright (C) 2009-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -52,41 +52,40 @@ #include <strings.h> static void dt_view_manager_load_modules(dt_view_manager_t *vm); -static int dt_view_load_module(void *v, const char *libname, const char *module_name); +static int dt_view_load_module(void *v, + const char *libname, + const char *module_name); static void dt_view_unload_module(dt_view_t *view); void dt_view_manager_init(dt_view_manager_t *vm) { /* prepare statements */ - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), "SELECT imgid FROM main.selected_images " + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + "SELECT imgid FROM main.selected_images " "WHERE imgid = ?1", -1, &vm->statements.is_selected, NULL); - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), "DELETE FROM main.selected_images WHERE imgid = ?1", + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + "DELETE FROM main.selected_images WHERE imgid = ?1", -1, &vm->statements.delete_from_selected, NULL); DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), "INSERT OR IGNORE INTO main.selected_images VALUES (?1)", -1, &vm->statements.make_selected, NULL); - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), "SELECT num FROM main.history WHERE imgid = ?1", -1, + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + "SELECT num FROM main.history WHERE imgid = ?1", -1, &vm->statements.have_history, NULL); - DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), "SELECT color FROM main.color_labels WHERE imgid=?1", + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + "SELECT color FROM main.color_labels WHERE imgid=?1", -1, &vm->statements.get_color, NULL); - DT_DEBUG_SQLITE3_PREPARE_V2( - dt_database_get(darktable.db), - "SELECT id FROM main.images WHERE group_id = (SELECT group_id FROM main.images WHERE id=?1) AND id != ?2", - -1, &vm->statements.get_grouped, NULL); + DT_DEBUG_SQLITE3_PREPARE_V2(dt_database_get(darktable.db), + "SELECT id" + " FROM main.images" + " WHERE group_id = (SELECT group_id" + " FROM main.images" + " WHERE id=?1)" + " AND id != ?2", + -1, &vm->statements.get_grouped, NULL); dt_view_manager_load_modules(vm); - // Modules loaded, let's handle specific cases - for(GList *iter = vm->views; iter; iter = g_list_next(iter)) - { - dt_view_t *view = (dt_view_t *)iter->data; - if(!strcmp(view->module_name, "darkroom")) - { - darktable.develop = (dt_develop_t *)view->data; - break; - } - } - vm->current_view = NULL; vm->audio.audio_player_id = -1; } @@ -102,7 +101,11 @@ void dt_view_manager_cleanup(dt_view_manager_t *vm) { - for(GList *iter = vm->views; iter; iter = g_list_next(iter)) dt_view_unload_module((dt_view_t *)iter->data); + for(GList *iter = vm->views; + iter; + iter = g_list_next(iter)) + dt_view_unload_module((dt_view_t *)iter->data); + g_list_free_full(vm->views, free); vm->views = NULL; } @@ -128,18 +131,22 @@ for(int i = 0; i < n_view_order; i++) { - if(!strcmp(av->module_name, view_order[i])) apos = i; - if(!strcmp(bv->module_name, view_order[i])) bpos = i; + if(!strcmp(av->module_name, view_order[i])) + apos = i; + if(!strcmp(bv->module_name, view_order[i])) + bpos = i; } - // order will be zero iff apos == bpos which can only happen when both views are not in view_order + // order will be zero iff apos == bpos which can only happen when + // both views are not in view_order const int order = apos - bpos; return order ? order : strcmp(aname, bname); } static void dt_view_manager_load_modules(dt_view_manager_t *vm) { - vm->views = dt_module_load_modules("/views", sizeof(dt_view_t), dt_view_load_module, NULL, sort_views); + vm->views = dt_module_load_modules("/views", sizeof(dt_view_t), + dt_view_load_module, NULL, sort_views); } /* default flags for view which does not implement the flags() function */ @@ -149,7 +156,9 @@ } /** load a view module */ -static int dt_view_load_module(void *v, const char *libname, const char *module_name) +static int dt_view_load_module(void *v, + const char *libname, + const char *module_name) { dt_view_t *module = (dt_view_t *)v; g_strlcpy(module->module_name, module_name, sizeof(module->module_name)); @@ -161,9 +170,9 @@ module->vscroll_size = module->vscroll_viewport_size = 1.0; module->hscroll_size = module->hscroll_viewport_size = 1.0; module->vscroll_pos = module->hscroll_pos = 0.0; - module->height = module->width = 100; // set to non-insane defaults before first expose/configure. - - if(!strcmp(module->module_name, "darkroom")) darktable.develop = (dt_develop_t *)module->data; + module->height = module->width = 100; // set to non-insane defaults + // before first + // expose/configure. #ifdef USE_LUA dt_lua_register_view(darktable.lua_state.state, module); @@ -173,7 +182,9 @@ if(darktable.gui) { - module->actions = (dt_action_t){ DT_ACTION_TYPE_VIEW, module->module_name, module->name(module) }; + module->actions = (dt_action_t){ DT_ACTION_TYPE_VIEW, + module->module_name, + module->name(module) }; dt_action_insert_sorted(&darktable.control->actions_views, &module->actions); } @@ -183,9 +194,11 @@ /** unload, cleanup */ static void dt_view_unload_module(dt_view_t *view) { - if(view->cleanup) view->cleanup(view); + if(view->cleanup) + view->cleanup(view); - if(view->module) g_module_close(view->module); + if(view->module) + g_module_close(view->module); } void dt_vm_remove_child(GtkWidget *widget, gpointer data) @@ -197,21 +210,24 @@ When expanders get destroyed, they destroy the child so remove the child before that */ -static void _remove_child(GtkWidget *child,GtkContainer *container) +static void _remove_child(GtkWidget *child, + GtkContainer *container) { - if(DTGTK_IS_EXPANDER(child)) - { - GtkWidget * evb = dtgtk_expander_get_body_event_box(DTGTK_EXPANDER(child)); - gtk_container_remove(GTK_CONTAINER(evb),dtgtk_expander_get_body(DTGTK_EXPANDER(child))); - gtk_widget_destroy(child); - } - else - { - gtk_container_remove(container,child); - } + if(DTGTK_IS_EXPANDER(child)) + { + GtkWidget * evb = dtgtk_expander_get_body_event_box(DTGTK_EXPANDER(child)); + gtk_container_remove(GTK_CONTAINER(evb), + dtgtk_expander_get_body(DTGTK_EXPANDER(child))); + gtk_widget_destroy(child); + } + else + { + gtk_container_remove(container,child); + } } -gboolean dt_view_manager_switch(dt_view_manager_t *vm, const char *view_name) +gboolean dt_view_manager_switch(dt_view_manager_t *vm, + const char *view_name) { gboolean switching_to_none = *view_name == '\0'; dt_view_t *new_view = NULL; @@ -227,13 +243,15 @@ break; } } - if(!new_view) return TRUE; // the requested view doesn't exist + if(!new_view) + return TRUE; // the requested view doesn't exist } return dt_view_manager_switch_by_view(vm, new_view); } -gboolean dt_view_manager_switch_by_view(dt_view_manager_t *vm, const dt_view_t *nv) +gboolean dt_view_manager_switch_by_view(dt_view_manager_t *vm, + const dt_view_t *nv) { dt_view_t *old_view = vm->current_view; dt_view_t *new_view = (dt_view_t *)nv; // views belong to us, we can de-const them :-) @@ -241,12 +259,14 @@ // reset the cursor to the default one dt_control_change_cursor(GDK_LEFT_PTR); + dt_set_backthumb_time(0.0); + // destroy old module list - /* clear the undo list, for now we do this unconditionally. At some point we will probably want to clear - only part - of the undo list. This should probably done with a view proxy routine returning the type of undo to - remove. */ + /* clear the undo list, for now we do this unconditionally. At some + point we will probably want to clear only part of the undo + list. This should probably done with a view proxy routine + returning the type of undo to remove. */ dt_undo_clear(darktable.undo, DT_UNDO_ALL); /* Special case when entering nothing (just before leaving dt) */ @@ -279,7 +299,8 @@ vm->current_view = NULL; /* remove sticky accels window */ - if(vm->accels_window.window) dt_view_accels_hide(vm); + if(vm->accels_window.window) + dt_view_accels_hide(vm); return FALSE; } @@ -291,7 +312,9 @@ const gboolean error = new_view->try_enter(new_view); if(error) { - DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_VIEWMANAGER_VIEW_CANNOT_CHANGE, old_view, new_view); + DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, + DT_SIGNAL_VIEWMANAGER_VIEW_CANNOT_CHANGE, + old_view, new_view); return error; } } @@ -310,7 +333,8 @@ /* does this module belong to current view ?*/ if(dt_lib_is_visible_in_view(plugin, old_view)) { - if(plugin->view_leave) plugin->view_leave(plugin, old_view, new_view); + if(plugin->view_leave) + plugin->view_leave(plugin, old_view, new_view); } } @@ -325,9 +349,12 @@ /* restore visible stat of panels for the new view */ dt_ui_restore_panels(darktable.gui->ui); - /* lets add plugins related to new view into panels. - * this has to be done in reverse order to have the lowest position at the bottom! */ - for(GList *iter = g_list_last(darktable.lib->plugins); iter; iter = g_list_previous(iter)) + /* lets add plugins related to new view into panels. this has to be + * done in reverse order to have the lowest position at the + * bottom! */ + for(GList *iter = g_list_last(darktable.lib->plugins); + iter; + iter = g_list_previous(iter)) { dt_lib_module_t *plugin = (dt_lib_module_t *)(iter->data); if(dt_lib_is_visible_in_view(plugin, new_view)) @@ -356,7 +383,8 @@ gboolean visible = dt_lib_is_visible(plugin); if(plugin->expandable(plugin)) { - snprintf(var, sizeof(var), "plugins/%s/%s/expanded", new_view->module_name, plugin->plugin_name); + snprintf(var, sizeof(var), "plugins/%s/%s/expanded", + new_view->module_name, plugin->plugin_name); expanded = dt_conf_get_bool(var); dt_lib_gui_set_expanded(plugin, expanded); dt_lib_set_visible(plugin, visible); @@ -370,7 +398,8 @@ else gtk_widget_hide(plugin->widget); } - if(plugin->view_enter) plugin->view_enter(plugin, old_view, new_view); + if(plugin->view_enter) + plugin->view_enter(plugin, old_view, new_view); /* add module to its container */ dt_ui_container_add_widget(darktable.gui->ui, plugin->container(plugin), w); @@ -392,7 +421,8 @@ if(vm->accels_window.window && vm->accels_window.sticky) dt_view_accels_refresh(vm); /* raise view changed signal */ - DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_VIEWMANAGER_VIEW_CHANGED, old_view, new_view); + DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, + DT_SIGNAL_VIEWMANAGER_VIEW_CHANGED, old_view, new_view); // update log visibility DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_CONTROL_LOG_REDRAW); @@ -404,15 +434,20 @@ const char *dt_view_manager_name(dt_view_manager_t *vm) { - if(!vm->current_view) return ""; + if(!vm->current_view) + return ""; if(vm->current_view->name) return vm->current_view->name(vm->current_view); else return vm->current_view->module_name; } -void dt_view_manager_expose(dt_view_manager_t *vm, cairo_t *cr, int32_t width, int32_t height, - int32_t pointerx, int32_t pointery) +void dt_view_manager_expose(dt_view_manager_t *vm, + cairo_t *cr, + const int32_t width, + const int32_t height, + const int32_t pointerx, + const int32_t pointery) { if(!vm->current_view) { @@ -436,26 +471,34 @@ px = 10000.0; py = -1.0; } - vm->current_view->expose(vm->current_view, cr, vm->current_view->width, vm->current_view->height, px, py); + vm->current_view->expose(vm->current_view, cr, + vm->current_view->width, + vm->current_view->height, px, py); cairo_restore(cr); /* expose plugins */ - for(const GList *plugins = g_list_last(darktable.lib->plugins); plugins; plugins = g_list_previous(plugins)) + for(const GList *plugins = g_list_last(darktable.lib->plugins); + plugins; + plugins = g_list_previous(plugins)) { dt_lib_module_t *plugin = (dt_lib_module_t *)(plugins->data); /* does this module belong to current view ?*/ if(plugin->gui_post_expose && dt_lib_is_visible_in_view(plugin, vm->current_view)) - plugin->gui_post_expose(plugin, cr, vm->current_view->width, vm->current_view->height, px, py); + plugin->gui_post_expose(plugin, cr, + vm->current_view->width, + vm->current_view->height, px, py); } } } void dt_view_manager_reset(dt_view_manager_t *vm) { - if(!vm->current_view) return; - if(vm->current_view->reset) vm->current_view->reset(vm->current_view); + if(!vm->current_view) + return; + if(vm->current_view->reset) + vm->current_view->reset(vm->current_view); } void dt_view_manager_mouse_leave(dt_view_manager_t *vm) @@ -473,20 +516,28 @@ /* does this module belong to current view ?*/ if(plugin->mouse_leave && dt_lib_is_visible_in_view(plugin, v)) - if(plugin->mouse_leave(plugin)) handled = TRUE; + if(plugin->mouse_leave(plugin)) + handled = TRUE; } /* if not handled by any plugin let pass to view handler*/ - if(!handled && v->mouse_leave) v->mouse_leave(v); + if(!handled && v->mouse_leave) + v->mouse_leave(v); } void dt_view_manager_mouse_enter(dt_view_manager_t *vm) { - if(!vm->current_view) return; - if(vm->current_view->mouse_enter) vm->current_view->mouse_enter(vm->current_view); + if(!vm->current_view) + return; + if(vm->current_view->mouse_enter) + vm->current_view->mouse_enter(vm->current_view); } -void dt_view_manager_mouse_moved(dt_view_manager_t *vm, double x, double y, double pressure, int which) +void dt_view_manager_mouse_moved(dt_view_manager_t *vm, + const double x, + const double y, + const double pressure, + const int which) { if(!vm->current_view) return; dt_view_t *v = vm->current_view; @@ -501,16 +552,23 @@ /* does this module belong to current view ?*/ if(plugin->mouse_moved && dt_lib_is_visible_in_view(plugin, v)) - if(plugin->mouse_moved(plugin, x, y, pressure, which)) handled = TRUE; + if(plugin->mouse_moved(plugin, x, y, pressure, which)) + handled = TRUE; } /* if not handled by any plugin let pass to view handler*/ - if(!handled && v->mouse_moved) v->mouse_moved(v, x, y, pressure, which); + if(!handled && v->mouse_moved) + v->mouse_moved(v, x, y, pressure, which); } -int dt_view_manager_button_released(dt_view_manager_t *vm, double x, double y, int which, uint32_t state) +int dt_view_manager_button_released(dt_view_manager_t *vm, + const double x, + const double y, + const int which, + const uint32_t state) { - if(!vm->current_view) return 0; + if(!vm->current_view) + return 0; dt_view_t *v = vm->current_view; /* lets check if any plugins want to handle button press */ @@ -523,7 +581,8 @@ /* does this module belong to current view ?*/ if(plugin->button_released && dt_lib_is_visible_in_view(plugin, v)) - if(plugin->button_released(plugin, x, y, which, state)) handled = TRUE; + if(plugin->button_released(plugin, x, y, which, state)) + handled = TRUE; } if(handled) @@ -535,10 +594,16 @@ return 0; } -int dt_view_manager_button_pressed(dt_view_manager_t *vm, double x, double y, double pressure, int which, - int type, uint32_t state) +int dt_view_manager_button_pressed(dt_view_manager_t *vm, + const double x, + const double y, + const double pressure, + const int which, + const int type, + const uint32_t state) { - if(!vm->current_view) return 0; + if(!vm->current_view) + return 0; dt_view_t *v = vm->current_view; /* lets check if any plugins want to handle button press */ @@ -551,10 +616,12 @@ /* does this module belong to current view ?*/ if(plugin->button_pressed && dt_lib_is_visible_in_view(plugin, v)) - if(plugin->button_pressed(plugin, x, y, pressure, which, type, state)) handled = TRUE; + if(plugin->button_pressed(plugin, x, y, pressure, which, type, state)) + handled = TRUE; } - if(handled) return 1; + if(handled) + return 1; /* if not handled by any plugin let pass to view handler*/ else if(v->button_pressed) return v->button_pressed(v, x, y, pressure, which, type, state); @@ -562,7 +629,9 @@ return 0; } -void dt_view_manager_configure(dt_view_manager_t *vm, int width, int height) +void dt_view_manager_configure(dt_view_manager_t *vm, + const int width, + const int height) { for(GList *iter = vm->views; iter; iter = g_list_next(iter)) { @@ -570,36 +639,43 @@ dt_view_t *v = (dt_view_t *)iter->data; v->width = width; v->height = height; - if(v->configure) v->configure(v, width, height); + if(v->configure) + v->configure(v, width, height); } } -void dt_view_manager_scrolled(dt_view_manager_t *vm, double x, double y, int up, int state) +void dt_view_manager_scrolled(dt_view_manager_t *vm, + const double x, + const double y, + const int up, + const int state) { - if(!vm->current_view) return; - if(vm->current_view->scrolled) vm->current_view->scrolled(vm->current_view, x, y, up, state); + if(!vm->current_view) + return; + if(vm->current_view->scrolled) + vm->current_view->scrolled(vm->current_view, x, y, up, state); } -void dt_view_manager_scrollbar_changed(dt_view_manager_t *vm, double x, double y) +void dt_view_manager_scrollbar_changed(dt_view_manager_t *vm, + const double x, + const double y) { - if(!vm->current_view) return; + if(!vm->current_view) + return; if(vm->current_view->scrollbar_changed) vm->current_view->scrollbar_changed(vm->current_view, x, y); } -void dt_view_set_scrollbar(dt_view_t *view, float hpos, float hlower, float hsize, float hwinsize, float vpos, - float vlower, float vsize, float vwinsize) +void dt_view_set_scrollbar(dt_view_t *view, + const float hpos, + const float hlower, + const float hsize, + const float hwinsize, + const float vpos, + const float vlower, + const float vsize, + const float vwinsize) { - if(view->vscroll_pos == vpos - && view->vscroll_lower == vlower - && view->vscroll_size == vsize - && view->vscroll_viewport_size == vwinsize - && view->hscroll_pos == hpos - && view->hscroll_lower == hlower - && view->hscroll_size == hsize - && view->hscroll_viewport_size == hwinsize) - return; - view->vscroll_pos = vpos; view->vscroll_lower = vlower; view->vscroll_size = vsize; @@ -609,36 +685,36 @@ view->hscroll_size = hsize; view->hscroll_viewport_size = hwinsize; - GtkWidget *widget; - widget = darktable.gui->widgets.left_border; - gtk_widget_queue_draw(widget); - widget = darktable.gui->widgets.right_border; - gtk_widget_queue_draw(widget); - widget = darktable.gui->widgets.bottom_border; - gtk_widget_queue_draw(widget); - widget = darktable.gui->widgets.top_border; - gtk_widget_queue_draw(widget); + dt_gui_widgets_t *widgets = &darktable.gui->widgets; + gtk_widget_queue_draw(widgets->left_border); + gtk_widget_queue_draw(widgets->right_border); + gtk_widget_queue_draw(widgets->bottom_border); + gtk_widget_queue_draw(widgets->top_border); - if(!darktable.gui->scrollbars.dragging) - dt_ui_update_scrollbars(darktable.gui->ui); + dt_ui_update_scrollbars(darktable.gui->ui); } -dt_view_surface_value_t dt_view_image_get_surface(dt_imgid_t imgid, int width, int height, cairo_surface_t **surface, +dt_view_surface_value_t dt_view_image_get_surface(const dt_imgid_t imgid, + const int width, + const int height, + cairo_surface_t **surface, const gboolean quality) { - double tt = 0; - if((darktable.unmuted & (DT_DEBUG_LIGHTTABLE | DT_DEBUG_PERF)) == (DT_DEBUG_LIGHTTABLE | DT_DEBUG_PERF)) - tt = dt_get_wtime(); + const double tt = dt_get_debug_wtime(); dt_view_surface_value_t ret = DT_VIEW_SURFACE_KO; // if surface not null, clean it up if(*surface - && cairo_surface_get_reference_count(*surface) > 0) cairo_surface_destroy(*surface); + && cairo_surface_get_reference_count(*surface) > 0) + cairo_surface_destroy(*surface); + *surface = NULL; // get mipmap cache image dt_mipmap_cache_t *cache = darktable.mipmap_cache; - dt_mipmap_size_t mip = dt_mipmap_cache_get_matching_size(cache, width * darktable.gui->ppd, height * darktable.gui->ppd); + dt_mipmap_size_t mip = dt_mipmap_cache_get_matching_size(cache, + width * darktable.gui->ppd, + height * darktable.gui->ppd); // if needed, we load the mimap buffer dt_mipmap_buffer_t buf; @@ -654,7 +730,8 @@ } // so we create a new image surface to return - float scale = fminf(width / (float)buf_wd, height / (float)buf_ht) * darktable.gui->ppd_thb; + float scale = fminf(width / (float)buf_wd, + height / (float)buf_ht) * darktable.gui->ppd_thb; const int img_width = roundf(buf_wd * scale); const int img_height = roundf(buf_ht * scale); // due to the forced rounding above, we need to recompute scaling @@ -674,8 +751,8 @@ pthread_rwlock_rdlock(&darktable.color_profiles->xprofile_lock); have_lock = TRUE; - // we only color manage when a thumbnail is sRGB or AdobeRGB. everything else just gets dumped to the - // screen + // we only color manage when a thumbnail is sRGB or + // AdobeRGB. everything else just gets dumped to the screen if(buf.color_space == DT_COLORSPACE_SRGB && darktable.color_profiles->transform_srgb_to_display) { @@ -692,12 +769,16 @@ have_lock = FALSE; if(buf.color_space == DT_COLORSPACE_NONE) { - fprintf(stderr, "oops, there seems to be a code path not setting the color space of thumbnails!\n"); + fprintf(stderr, + "oops, there seems to be a code path not setting the" + " color space of thumbnails!\n"); } - else if(buf.color_space != DT_COLORSPACE_DISPLAY && buf.color_space != DT_COLORSPACE_DISPLAY2) + else if(buf.color_space != DT_COLORSPACE_DISPLAY + && buf.color_space != DT_COLORSPACE_DISPLAY2) { fprintf(stderr, - "oops, there seems to be a code path setting an unhandled color space of thumbnails (%s)!\n", + "oops, there seems to be a code path setting an" + " unhandled color space of thumbnails (%s)!\n", dt_colorspaces_get_name(buf.color_space, "from file")); } } @@ -725,10 +806,13 @@ } } } - if(have_lock) pthread_rwlock_unlock(&darktable.color_profiles->xprofile_lock); + if(have_lock) + pthread_rwlock_unlock(&darktable.color_profiles->xprofile_lock); const int32_t stride = cairo_format_stride_for_width(CAIRO_FORMAT_RGB24, buf_wd); - tmp_surface = cairo_image_surface_create_for_data(rgbbuf, CAIRO_FORMAT_RGB24, buf_wd, buf_ht, stride); + tmp_surface = cairo_image_surface_create_for_data(rgbbuf, + CAIRO_FORMAT_RGB24, + buf_wd, buf_ht, stride); } // draw the image scaled: @@ -738,28 +822,35 @@ cairo_scale(cr, scale, scale); cairo_set_source_surface(cr, tmp_surface, 0, 0); - // set filter no nearest: - // in skull mode, we want to see big pixels. - // in 1 iir mode for the right mip, we want to see exactly what the pipe gave us, 1:1 pixel for pixel. - // in between, filtering just makes stuff go unsharp. + // set filter no nearest: in skull mode, we want to see big + // pixels. in 1 iir mode for the right mip, we want to see + // exactly what the pipe gave us, 1:1 pixel for pixel. in + // between, filtering just makes stuff go unsharp. if((buf_wd <= 8 && buf_ht <= 8) || fabsf(scale - 1.0f) < 0.01f) cairo_pattern_set_filter(cairo_get_source(cr), CAIRO_FILTER_NEAREST); else if(mip != buf.size) cairo_pattern_set_filter(cairo_get_source(cr), - CAIRO_FILTER_FAST); // not the right size, so we scale as fast a possible + CAIRO_FILTER_FAST); // not the right + // size, so we + // scale as fast a + // possible else - cairo_pattern_set_filter(cairo_get_source(cr), ((darktable.gui->filter_image == CAIRO_FILTER_FAST) && quality) - ? CAIRO_FILTER_GOOD - : darktable.gui->filter_image); + cairo_pattern_set_filter(cairo_get_source(cr), + ((darktable.gui->filter_image == CAIRO_FILTER_FAST) + && quality) + ? CAIRO_FILTER_GOOD + : darktable.gui->filter_image); cairo_paint(cr); /* from focus_peaking.h static inline void dt_focuspeaking(cairo_t *cr, int width, int height, uint8_t *const restrict image, const int buf_width, const int buf_height) - The current implementation assumes the data at image is organized as a rectangle without a stride, - So we pass the raw data to be processed, this is more data but correct. + + The current implementation assumes the data at image is + organized as a rectangle without a stride, So we pass the raw + data to be processed, this is more data but correct. */ if(darktable.gui->show_focus_peaking && mip == buf.size) dt_focuspeaking(cr, buf_wd, buf_ht, rgbbuf); @@ -780,25 +871,29 @@ if(rgbbuf) free(rgbbuf); // logs - if((darktable.unmuted & (DT_DEBUG_LIGHTTABLE | DT_DEBUG_PERF)) == (DT_DEBUG_LIGHTTABLE | DT_DEBUG_PERF)) - { + if(darktable.unmuted & DT_DEBUG_PERF) dt_print(DT_DEBUG_LIGHTTABLE | DT_DEBUG_PERF, - "[dt_view_image_get_surface] id %i, dots %ix%i, mip %ix%i, surf %ix%i created in %0.04f sec\n", - imgid, width, height, buf_wd, buf_ht, img_width, img_height, dt_get_wtime() - tt); - } - else if(darktable.unmuted & DT_DEBUG_LIGHTTABLE) - { - dt_print(DT_DEBUG_LIGHTTABLE, "[dt_view_image_get_surface] id %i, dots %ix%i, mip %ix%i, surf %ix%i\n", imgid, - width, height, buf_wd, buf_ht, img_width, img_height); - } + "[dt_view_image_get_surface] id %i, dots %ix%i, mip %ix%i," + " surf %ix%i created in %0.04f sec\n", + imgid, width, height, buf_wd, buf_ht, + img_width, img_height, dt_get_wtime() - tt); + else + dt_print(DT_DEBUG_LIGHTTABLE, + "[dt_view_image_get_surface] id %i, dots %ix%i, mip %ix%i, surf %ix%i\n", + imgid, width, height, buf_wd, buf_ht, img_width, img_height); // we consider skull as ok as the image hasn't to be reload return ret; } -char* dt_view_extend_modes_str(const char * name, const gboolean is_hdr, const gboolean is_bw, const gboolean is_bw_flow) -{ - char* upcase = g_ascii_strup(name, -1); // extension in capital letters to avoid character descenders +char* dt_view_extend_modes_str(const char * name, + const gboolean is_hdr, + const gboolean is_bw, + const gboolean is_bw_flow) +{ + char* upcase = g_ascii_strup(name, -1); // extension in capital + // letters to avoid + // character descenders // convert to canonical format extension if(0 == g_ascii_strcasecmp(upcase, "JPG")) { @@ -846,7 +941,8 @@ * \param[in] imgid The image id * \param[in] value The boolean value for the bit */ -void dt_view_set_selection(dt_imgid_t imgid, int value) +void dt_view_set_selection(const dt_imgid_t imgid, + const int value) { /* clear and reset statement */ DT_DEBUG_SQLITE3_CLEAR_BINDINGS(darktable.view_manager->statements.is_selected); @@ -862,11 +958,14 @@ /* Value is set and should be unset; get rid of it */ /* clear and reset statement */ - DT_DEBUG_SQLITE3_CLEAR_BINDINGS(darktable.view_manager->statements.delete_from_selected); - DT_DEBUG_SQLITE3_RESET(darktable.view_manager->statements.delete_from_selected); + DT_DEBUG_SQLITE3_CLEAR_BINDINGS + (darktable.view_manager->statements.delete_from_selected); + DT_DEBUG_SQLITE3_RESET + (darktable.view_manager->statements.delete_from_selected); /* setup statement and execute */ - DT_DEBUG_SQLITE3_BIND_INT(darktable.view_manager->statements.delete_from_selected, 1, imgid); + DT_DEBUG_SQLITE3_BIND_INT + (darktable.view_manager->statements.delete_from_selected, 1, imgid); sqlite3_step(darktable.view_manager->statements.delete_from_selected); } } @@ -888,7 +987,7 @@ * \brief Toggle the selection bit in the database for the specified image * \param[in] imgid The image id */ -void dt_view_toggle_selection(dt_imgid_t imgid) +void dt_view_toggle_selection(const dt_imgid_t imgid) { /* clear and reset statement */ DT_DEBUG_SQLITE3_CLEAR_BINDINGS(darktable.view_manager->statements.is_selected); @@ -899,11 +998,13 @@ if(sqlite3_step(darktable.view_manager->statements.is_selected) == SQLITE_ROW) { /* clear and reset statement */ - DT_DEBUG_SQLITE3_CLEAR_BINDINGS(darktable.view_manager->statements.delete_from_selected); + DT_DEBUG_SQLITE3_CLEAR_BINDINGS + (darktable.view_manager->statements.delete_from_selected); DT_DEBUG_SQLITE3_RESET(darktable.view_manager->statements.delete_from_selected); /* setup statement and execute */ - DT_DEBUG_SQLITE3_BIND_INT(darktable.view_manager->statements.delete_from_selected, 1, imgid); + DT_DEBUG_SQLITE3_BIND_INT(darktable.view_manager->statements.delete_from_selected, + 1, imgid); sqlite3_step(darktable.view_manager->statements.delete_from_selected); } else @@ -918,16 +1019,29 @@ } } +dt_view_type_flags_t dt_view_get_current(void) +{ + if(!darktable.view_manager) return DT_VIEW_LIGHTTABLE; + + const dt_view_t *cv = dt_view_manager_get_current_view(darktable.view_manager); + if(!cv || ! cv->view) return DT_VIEW_LIGHTTABLE; + + return cv->view(cv); +} + /** * \brief Reset filter */ -void dt_view_filtering_reset(const dt_view_manager_t *vm, gboolean smart_filter) +void dt_view_filtering_reset(const dt_view_manager_t *vm, + const gboolean smart_filter) { if(vm->proxy.module_filtering.module && vm->proxy.module_filtering.reset_filter) - vm->proxy.module_filtering.reset_filter(vm->proxy.module_filtering.module, smart_filter); + vm->proxy.module_filtering.reset_filter + (vm->proxy.module_filtering.module, smart_filter); } -void dt_view_filtering_show_pref_menu(const dt_view_manager_t *vm, GtkWidget *bt) +void dt_view_filtering_show_pref_menu(const dt_view_manager_t *vm, + GtkWidget *bt) { if(vm->proxy.module_filtering.module && vm->proxy.module_filtering.show_pref_menu) vm->proxy.module_filtering.show_pref_menu(vm->proxy.module_filtering.module, bt); @@ -953,18 +1067,20 @@ return NULL; } -void dt_view_active_images_reset(gboolean raise) +void dt_view_active_images_reset(const gboolean raise) { - if(!darktable.view_manager->active_images) return; + if(!darktable.view_manager->active_images) + return; g_slist_free(darktable.view_manager->active_images); darktable.view_manager->active_images = NULL; - if(raise) DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_ACTIVE_IMAGES_CHANGE); + if(raise) + DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_ACTIVE_IMAGES_CHANGE); } void dt_view_active_images_add(dt_imgid_t imgid, gboolean raise) { - darktable.view_manager->active_images - = g_slist_append(darktable.view_manager->active_images, GINT_TO_POINTER(imgid)); + darktable.view_manager->active_images = + g_slist_append(darktable.view_manager->active_images, GINT_TO_POINTER(imgid)); if(raise) DT_DEBUG_CONTROL_SIGNAL_RAISE(darktable.signals, DT_SIGNAL_ACTIVE_IMAGES_CHANGE); } @@ -973,13 +1089,17 @@ return darktable.view_manager->active_images; } -void dt_view_manager_view_toolbox_add(dt_view_manager_t *vm, GtkWidget *tool, dt_view_type_flags_t views) +void dt_view_manager_view_toolbox_add(dt_view_manager_t *vm, + GtkWidget *tool, + const dt_view_type_flags_t views) { if(vm->proxy.view_toolbox.module) vm->proxy.view_toolbox.add(vm->proxy.view_toolbox.module, tool, views); } -void dt_view_manager_module_toolbox_add(dt_view_manager_t *vm, GtkWidget *tool, dt_view_type_flags_t views) +void dt_view_manager_module_toolbox_add(dt_view_manager_t *vm, + GtkWidget *tool, + const dt_view_type_flags_t views) { if(vm->proxy.module_toolbox.module) vm->proxy.module_toolbox.add(vm->proxy.module_toolbox.module, tool, views); @@ -993,7 +1113,8 @@ return DT_DARKROOM_LAYOUT_EDITING; } -void dt_view_lighttable_set_zoom(dt_view_manager_t *vm, gint zoom) +void dt_view_lighttable_set_zoom(dt_view_manager_t *vm, + const gint zoom) { if(vm->proxy.lighttable.module) vm->proxy.lighttable.set_zoom(vm->proxy.lighttable.module, zoom); @@ -1009,7 +1130,8 @@ void dt_view_lighttable_culling_init_mode(dt_view_manager_t *vm) { - if(vm->proxy.lighttable.module) vm->proxy.lighttable.culling_init_mode(vm->proxy.lighttable.view); + if(vm->proxy.lighttable.module) + vm->proxy.lighttable.culling_init_mode(vm->proxy.lighttable.view); } void dt_view_lighttable_culling_preview_refresh(dt_view_manager_t *vm) @@ -1040,13 +1162,18 @@ return FALSE; } -void dt_view_lighttable_set_preview_state(dt_view_manager_t *vm, gboolean state, gboolean sticky, gboolean focus) +void dt_view_lighttable_set_preview_state(dt_view_manager_t *vm, + const gboolean state, + const gboolean sticky, + const gboolean focus) { if(vm->proxy.lighttable.module) vm->proxy.lighttable.set_preview_state(vm->proxy.lighttable.view, state, sticky, focus); } -void dt_view_lighttable_change_offset(dt_view_manager_t *vm, gboolean reset, dt_imgid_t imgid) +void dt_view_lighttable_change_offset(dt_view_manager_t *vm, + const gboolean reset, + const dt_imgid_t imgid) { if(vm->proxy.lighttable.module) vm->proxy.lighttable.change_offset(vm->proxy.lighttable.view, reset, imgid); @@ -1054,7 +1181,8 @@ void dt_view_collection_update(const dt_view_manager_t *vm) { - if(vm->proxy.module_filtering.module) vm->proxy.module_filtering.update(vm->proxy.module_filtering.module); + if(vm->proxy.module_filtering.module) + vm->proxy.module_filtering.update(vm->proxy.module_filtering.module); if(vm->proxy.module_collect.module) vm->proxy.module_collect.update(vm->proxy.module_collect.module); } @@ -1067,7 +1195,9 @@ vm->proxy.module_collect.update_history_visibility(vm->proxy.module_collect.module); } -void dt_view_filtering_set_sort(const dt_view_manager_t *vm, int sort, gboolean asc) +void dt_view_filtering_set_sort(const dt_view_manager_t *vm, + const int sort, + const gboolean asc) { if(vm->proxy.module_filtering.module) vm->proxy.module_filtering.set_sort(vm->proxy.module_filtering.module, sort, asc); @@ -1081,7 +1211,8 @@ return -1; } -void dt_view_tethering_set_job_code(const dt_view_manager_t *vm, const char *name) +void dt_view_tethering_set_job_code(const dt_view_manager_t *vm, + const char *name) { if(vm->proxy.tethering.view) vm->proxy.tethering.set_job_code(vm->proxy.tethering.view, name); @@ -1095,13 +1226,20 @@ } #ifdef HAVE_MAP -void dt_view_map_center_on_location(const dt_view_manager_t *vm, gdouble lon, gdouble lat, gdouble zoom) +void dt_view_map_center_on_location(const dt_view_manager_t *vm, + const gdouble lon, + const gdouble lat, + const gdouble zoom) { if(vm->proxy.map.view) vm->proxy.map.center_on_location(vm->proxy.map.view, lon, lat, zoom); } -void dt_view_map_center_on_bbox(const dt_view_manager_t *vm, gdouble lon1, gdouble lat1, gdouble lon2, gdouble lat2) +void dt_view_map_center_on_bbox(const dt_view_manager_t *vm, + const gdouble lon1, + const gdouble lat1, + const gdouble lon2, + const gdouble lat2) { if(vm->proxy.map.view) vm->proxy.map.center_on_bbox(vm->proxy.map.view, lon1, lat1, lon2, lat2); @@ -1113,38 +1251,49 @@ vm->proxy.map.show_osd(vm->proxy.map.view); } -void dt_view_map_set_map_source(const dt_view_manager_t *vm, OsmGpsMapSource_t map_source) +void dt_view_map_set_map_source(const dt_view_manager_t *vm, + const OsmGpsMapSource_t map_source) { if(vm->proxy.map.view) vm->proxy.map.set_map_source(vm->proxy.map.view, map_source); } -GObject *dt_view_map_add_marker(const dt_view_manager_t *vm, dt_geo_map_display_t type, GList *points) +GObject *dt_view_map_add_marker(const dt_view_manager_t *vm, + const dt_geo_map_display_t type, + GList *points) { if(vm->proxy.map.view) return vm->proxy.map.add_marker(vm->proxy.map.view, type, points); return NULL; } -gboolean dt_view_map_remove_marker(const dt_view_manager_t *vm, dt_geo_map_display_t type, GObject *marker) +gboolean dt_view_map_remove_marker(const dt_view_manager_t *vm, + const dt_geo_map_display_t type, + GObject *marker) { if(vm->proxy.map.view) return vm->proxy.map.remove_marker(vm->proxy.map.view, type, marker); return FALSE; } -void dt_view_map_add_location(const dt_view_manager_t *vm, dt_map_location_data_t *p, const guint posid) +void dt_view_map_add_location(const dt_view_manager_t *vm, + dt_map_location_data_t *p, + const guint posid) { if(vm->proxy.map.view) vm->proxy.map.add_location(vm->proxy.map.view, p, posid); } -void dt_view_map_location_action(const dt_view_manager_t *vm, const int action) +void dt_view_map_location_action(const dt_view_manager_t *vm, + const int action) { if(vm->proxy.map.view) vm->proxy.map.location_action(vm->proxy.map.view, action); } -void dt_view_map_drag_set_icon(const dt_view_manager_t *vm, GdkDragContext *context, const dt_imgid_t imgid, const int count) +void dt_view_map_drag_set_icon(const dt_view_manager_t *vm, + GdkDragContext *context, + const dt_imgid_t imgid, + const int count) { if(vm->proxy.map.view) vm->proxy.map.drag_set_icon(vm->proxy.map.view, context, imgid, count); @@ -1153,14 +1302,18 @@ #endif #ifdef HAVE_PRINT -void dt_view_print_settings(const dt_view_manager_t *vm, dt_print_info_t *pinfo, dt_images_box *imgs) +void dt_view_print_settings(const dt_view_manager_t *vm, + dt_print_info_t *pinfo, + dt_images_box *imgs) { if(vm->proxy.print.view) vm->proxy.print.print_settings(vm->proxy.print.view, pinfo, imgs); } #endif -GSList *dt_mouse_action_create_simple(GSList *actions, dt_mouse_action_type_t type, GdkModifierType accel, +GSList *dt_mouse_action_create_simple(GSList *actions, + const dt_mouse_action_type_t type, + const GdkModifierType accel, const char *const description) { dt_mouse_action_t *a = (dt_mouse_action_t *)calloc(1, sizeof(dt_mouse_action_t)); @@ -1170,8 +1323,11 @@ return g_slist_append(actions, a); } -GSList *dt_mouse_action_create_format(GSList *actions, dt_mouse_action_type_t type, GdkModifierType accel, - const char *const format_string, const char *const replacement) +GSList *dt_mouse_action_create_format(GSList *actions, + const dt_mouse_action_type_t type, + const GdkModifierType accel, + const char *const format_string, + const char *const replacement) { dt_mouse_action_t *a = (dt_mouse_action_t *)calloc(1, sizeof(dt_mouse_action_t)); a->action = type; @@ -1183,9 +1339,12 @@ static gchar *_mouse_action_get_string(dt_mouse_action_t *ma) { gchar *atxt = NULL; - if(ma->mods & GDK_SHIFT_MASK ) atxt = dt_util_dstrcat(atxt, "%s+", _("shift")); - if(ma->mods & GDK_CONTROL_MASK) atxt = dt_util_dstrcat(atxt, "%s+", _("ctrl")); - if(ma->mods & GDK_MOD1_MASK ) atxt = dt_util_dstrcat(atxt, "%s+", _("alt")); + if(ma->mods & GDK_SHIFT_MASK ) + atxt = dt_util_dstrcat(atxt, "%s+", _("shift")); + if(ma->mods & GDK_CONTROL_MASK) + atxt = dt_util_dstrcat(atxt, "%s+", _("ctrl")); + if(ma->mods & GDK_MOD1_MASK ) + atxt = dt_util_dstrcat(atxt, "%s+", _("alt")); switch(ma->action) { @@ -1227,7 +1386,9 @@ vm->accels_window.window = NULL; } -static void _accels_window_sticky(GtkWidget *widget, GdkEventButton *event, dt_view_manager_t *vm) +static void _accels_window_sticky(GtkWidget *widget, + GdkEventButton *event, + dt_view_manager_t *vm) { if(!vm->accels_window.window) return; @@ -1275,15 +1436,17 @@ vm->accels_window.flow_box = gtk_flow_box_new(); dt_gui_add_class(vm->accels_window.flow_box, "dt_accels_box"); - gtk_orientable_set_orientation(GTK_ORIENTABLE(vm->accels_window.flow_box), GTK_ORIENTATION_HORIZONTAL); + gtk_orientable_set_orientation(GTK_ORIENTABLE(vm->accels_window.flow_box), + GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start(GTK_BOX(hb), vm->accels_window.flow_box, TRUE, TRUE, 0); GtkWidget *vb = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); vm->accels_window.sticky_btn = dtgtk_button_new(dtgtk_cairo_paint_multiinstance, 0, NULL); - g_object_set(G_OBJECT(vm->accels_window.sticky_btn), "tooltip-text", - _("switch to a classic window which will stay open after key release"), (char *)NULL); - g_signal_connect(G_OBJECT(vm->accels_window.sticky_btn), "button-press-event", G_CALLBACK(_accels_window_sticky), + gtk_widget_set_tooltip_text(vm->accels_window.sticky_btn, + _("switch to a classic window which will stay open after key release")); + g_signal_connect(G_OBJECT(vm->accels_window.sticky_btn), "button-press-event", + G_CALLBACK(_accels_window_sticky), vm); dt_gui_add_class(vm->accels_window.sticky_btn, "dt_accels_stick"); gtk_box_pack_start(GTK_BOX(vb), vm->accels_window.sticky_btn, FALSE, FALSE, 0); @@ -1300,31 +1463,38 @@ gtk_container_add(GTK_CONTAINER(vm->accels_window.window), sw); gtk_window_set_resizable(GTK_WINDOW(vm->accels_window.window), FALSE); - gtk_window_set_default_size(GTK_WINDOW(vm->accels_window.window), alloc.width, alloc.height); + gtk_window_set_default_size(GTK_WINDOW(vm->accels_window.window), + alloc.width, alloc.height); gtk_window_set_transient_for(GTK_WINDOW(vm->accels_window.window), GTK_WINDOW(dt_ui_main_window(darktable.gui->ui))); gtk_window_set_keep_above(GTK_WINDOW(vm->accels_window.window), TRUE); // needed on macOS to avoid fullscreening the popup with newer GTK - gtk_window_set_type_hint(GTK_WINDOW(vm->accels_window.window), GDK_WINDOW_TYPE_HINT_POPUP_MENU); + gtk_window_set_type_hint(GTK_WINDOW(vm->accels_window.window), + GDK_WINDOW_TYPE_HINT_POPUP_MENU); gtk_window_set_gravity(GTK_WINDOW(vm->accels_window.window), GDK_GRAVITY_STATIC); - gtk_window_set_position(GTK_WINDOW(vm->accels_window.window), GTK_WIN_POS_CENTER_ON_PARENT); + gtk_window_set_position(GTK_WINDOW(vm->accels_window.window), + GTK_WIN_POS_CENTER_ON_PARENT); gtk_widget_show_all(vm->accels_window.window); } void dt_view_accels_hide(dt_view_manager_t *vm) { - if(vm->accels_window.window && vm->accels_window.sticky) return; - if(vm->accels_window.window) gtk_widget_destroy(vm->accels_window.window); + if(vm->accels_window.window && vm->accels_window.sticky) + return; + if(vm->accels_window.window) + gtk_widget_destroy(vm->accels_window.window); vm->accels_window.window = NULL; } void dt_view_accels_refresh(dt_view_manager_t *vm) { - if(!vm->accels_window.window || vm->accels_window.prevent_refresh) return; + if(!vm->accels_window.window || vm->accels_window.prevent_refresh) + return; // drop all existing tables GList *lw = gtk_container_get_children(GTK_CONTAINER(vm->accels_window.flow_box)); + for(const GList *lw_iter = lw; lw_iter; lw_iter = g_list_next(lw_iter)) { GtkWidget *w = (GtkWidget *)lw_iter->data; @@ -1380,9 +1550,11 @@ GtkWidget *list = gtk_tree_view_new_with_model(model); g_object_unref(model); GtkCellRenderer *renderer = gtk_cell_renderer_text_new(); - GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes(_("shortcut"), renderer, "text", 0, NULL); + GtkTreeViewColumn *column = + gtk_tree_view_column_new_with_attributes(_("shortcut"), renderer, "text", 0, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(list), column); - column = gtk_tree_view_column_new_with_attributes(_("action"), renderer, "text", 1, NULL); + column = gtk_tree_view_column_new_with_attributes(_("action"), + renderer, "text", 1, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(list), column); gtk_box_pack_start(GTK_BOX(box), list, FALSE, FALSE, 0); @@ -1396,14 +1568,17 @@ gtk_widget_show_all(vm->accels_window.flow_box); } -static void _audio_child_watch(GPid pid, gint status, gpointer data) +static void _audio_child_watch(const GPid pid, + const gint status, + gpointer data) { dt_view_manager_t *vm = (dt_view_manager_t *)data; vm->audio.audio_player_id = -1; g_spawn_close_pid(pid); } -void dt_view_audio_start(dt_view_manager_t *vm, dt_imgid_t imgid) +void dt_view_audio_start(dt_view_manager_t *vm, + const dt_imgid_t imgid) { char *player = dt_conf_get_string("plugins/lighttable/audio_player"); if(player && *player) @@ -1423,8 +1598,9 @@ if(ret) { vm->audio.audio_player_id = imgid; - vm->audio.audio_player_event_source - = g_child_watch_add(vm->audio.audio_player_pid, (GChildWatchFunc)_audio_child_watch, vm); + vm->audio.audio_player_event_source = + g_child_watch_add(vm->audio.audio_player_pid, + (GChildWatchFunc)_audio_child_watch, vm); } else vm->audio.audio_player_id = -1; @@ -1458,81 +1634,159 @@ vm->audio.audio_player_id = -1; } -void dt_view_paint_surface( - cairo_t *cr, - const size_t width, - const size_t height, - cairo_surface_t *surface, - const size_t processed_width, - const size_t processed_height, - const dt_window_t window) +void dt_view_paint_surface(cairo_t *cr, + const size_t width, + const size_t height, + dt_dev_viewport_t *port, + const dt_window_t window, + uint8_t *buf, + float buf_scale, + int buf_width, + int buf_height, + float buf_zoom_x, + float buf_zoom_y) { dt_develop_t *dev = darktable.develop; - const dt_dev_zoom_t zoom = - (window == DT_WINDOW_MAIN || window == DT_WINDOW_SLIDESHOW) - ? dt_control_get_dev_zoom() - : dt_second_window_get_dev_zoom(dev); - const int closeup = - (window == DT_WINDOW_MAIN || window == DT_WINDOW_SLIDESHOW) - ? dt_control_get_dev_closeup() - : dt_second_window_get_dev_closeup(dev); - const float zoom_scale = - (window == DT_WINDOW_MAIN || window == DT_WINDOW_SLIDESHOW) - ? dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 1) - : dt_second_window_get_zoom_scale(dev, zoom, 1<<closeup, 1); - const float ppd = - (window == DT_WINDOW_MAIN || window == DT_WINDOW_SLIDESHOW) - ? darktable.gui->ppd - : dev->second_window.ppd; - - const float sw = (float)processed_width / ppd; - const float sh = (float)processed_height / ppd; + float pts[] = { buf_zoom_x, buf_zoom_y, + dev->preview_pipe->backbuf_zoom_x, dev->preview_pipe->backbuf_zoom_y }; + dt_dev_distort_transform_plus(dev, port->pipe, 0.0f, DT_DEV_TRANSFORM_DIR_ALL, pts, 2); + + int processed_width, processed_height; + dt_dev_get_processed_size(port, &processed_width, &processed_height); + + float offset_x = pts[0] / processed_width - 0.5f; + float offset_y = pts[1] / processed_height - 0.5f; + float preview_x = pts[2] / processed_width - 0.5f; + float preview_y = pts[3] / processed_height - 0.5f; + + dt_dev_zoom_t zoom; + int closeup; + float zoom_x, zoom_y; + dt_dev_get_viewport_params(port, &zoom, &closeup, &zoom_x, &zoom_y); + + const float ppd = port->ppd; + const double tb = port->border_size; + const float zoom_scale = dt_dev_get_zoom_scale(port, zoom, 1<<closeup, 1); + const float backbuf_scale = dt_dev_get_zoom_scale(port, zoom, 1.0f, 0) * ppd; + + dt_print_pipe(DT_DEBUG_EXPOSE, + "dt_view_paint_surface", + port->pipe, NULL, NULL, NULL, + "viewport zoom_scale %6.3f backbuf_scale %6.3f " + "(x=%6.2f y=%6.2f) -> (x=%+.3f y=%+.3f)\n", + zoom_scale, backbuf_scale, + port->zoom_x, port->zoom_y, zoom_x, zoom_y); cairo_save(cr); - cairo_translate(cr, ceilf(.5f * (width - sw)), ceilf(.5f * (height - sh))); - if(closeup) + if(port->iso_12646) { - const double scale = 1<<closeup; - cairo_scale(cr, scale, scale); - cairo_translate(cr, -(.5 - 0.5/scale) * sw, -(.5 - 0.5/scale) * sh); + // force middle grey in background + dt_gui_gtk_set_source_rgb(cr, DT_GUI_COLOR_ISO12646_BG); } + else + { + if(dev->full_preview) + dt_gui_gtk_set_source_rgb(cr, DT_GUI_COLOR_DARKROOM_PREVIEW_BG); + else + dt_gui_gtk_set_source_rgb(cr, DT_GUI_COLOR_DARKROOM_BG); + } + + cairo_paint(cr); - if(dev->iso_12646.enabled + cairo_translate(cr, 0.5 * width, 0.5 * height); + + dt_pthread_mutex_lock(&dev->preview_pipe->backbuf_mutex); + + const int maxw = MIN(port->width, backbuf_scale * processed_width * (1<<closeup) / ppd); + const int maxh = MIN(port->height, backbuf_scale * processed_height * (1<<closeup) / ppd); + + if(port->iso_12646 && window != DT_WINDOW_SLIDESHOW) { // draw the white frame around picture - const int bs = dev->border_size; - const double ratio = dt_conf_get_float("darkroom/ui/iso12464_ratio"); - const double tbw = bs * ratio; - cairo_rectangle(cr, -tbw, -tbw, sw + 2.0 * tbw, sh + 2.0 * tbw); + const double ratio = dt_conf_get_float("darkroom/ui/iso12464_ratio") * 2; + const double borw = maxw + tb * ratio, borh = maxh + tb * ratio; + cairo_rectangle(cr, -0.5 * borw, -0.5 * borh, borw, borh); dt_gui_gtk_set_source_rgb(cr, DT_GUI_COLOR_ISO12646_FG); cairo_fill(cr); } - cairo_surface_set_device_scale(surface, ppd, ppd); + cairo_rectangle(cr, -0.5 * maxw, -0.5 * maxh, maxw, maxh); + cairo_clip(cr); - cairo_set_source_surface (cr, surface, 0, 0); - cairo_pattern_set_filter - (cairo_get_source(cr), - zoom_scale >= 0.9999f ? CAIRO_FILTER_FAST : darktable.gui->dr_filter_image); - cairo_paint(cr); + cairo_scale(cr, zoom_scale, zoom_scale); - if(darktable.gui->show_focus_peaking - && window != DT_WINDOW_SLIDESHOW) - { - cairo_scale(cr, 1. / ppd, 1. / ppd); - dt_focuspeaking(cr, processed_width, processed_height, cairo_image_surface_get_data(surface)); + const double back_scale = (buf_scale == 0 ? 1.0 : backbuf_scale / buf_scale) * (1<<closeup) / ppd; + + if(dev->preview_pipe->output_imgid == dev->image_storage.id + && (port == &dev->full || port == &dev->preview2)) + { + // draw preview + float wd = processed_width * dev->preview_pipe->processed_width / MAX(1, dev->full.pipe->processed_width); + float ht = processed_height * dev->preview_pipe->processed_width / MAX(1, dev->full.pipe->processed_width); + + cairo_surface_t *preview = dt_view_create_surface(dev->preview_pipe->backbuf, + dev->preview_pipe->backbuf_width, + dev->preview_pipe->backbuf_height); + cairo_set_source_surface(cr, preview, (preview_x - zoom_x) * wd - 0.5 * dev->preview_pipe->backbuf_width, + (preview_y - zoom_y) * ht - 0.5 * dev->preview_pipe->backbuf_height); + cairo_pattern_set_filter(cairo_get_source(cr), CAIRO_FILTER_FAST); + cairo_paint(cr); + + dt_print_pipe(DT_DEBUG_EXPOSE, + "dt_view_paint_surface", + dev->preview_pipe, NULL, NULL, NULL, + "size %4lux%-4lu processed %4.0fx%-4.0f " + "buf %4dx%-4d scale=%.3f " + "zoom (x=%6.2f y=%6.2f) -> offset (x=%+.3f y=%+.3f)\n", + width, height, wd, ht, + dev->preview_pipe->backbuf_width, dev->preview_pipe->backbuf_height, zoom_scale, + dev->preview_pipe->backbuf_zoom_x, dev->preview_pipe->backbuf_zoom_y, + preview_x, preview_y); + cairo_surface_destroy(preview); + } + + dt_pthread_mutex_unlock(&dev->preview_pipe->backbuf_mutex); + + if(port->pipe->output_imgid == dev->image_storage.id + || dev->preview_pipe->output_imgid != dev->image_storage.id) + { + dt_print_pipe(DT_DEBUG_EXPOSE, + "dt_view_paint_surface", + port->pipe, NULL, NULL, NULL, + "size %4lux%-4lu processed %4dx%-4d " + "buf %4dx%-4d scale=%.3f " + "zoom (x=%6.2f y=%6.2f) -> offset (x=%+.3f y=%+.3f)\n", + width, height, processed_width, processed_height, + buf_width, buf_height, buf_scale, + buf_zoom_x, buf_zoom_y, + offset_x, offset_y); + cairo_scale(cr, back_scale / zoom_scale, back_scale / zoom_scale); + cairo_translate(cr, (offset_x - zoom_x) * processed_width * buf_scale - 0.5 * buf_width, + (offset_y - zoom_y) * processed_height * buf_scale - 0.5 * buf_height); + + cairo_surface_t *surface = dt_view_create_surface(buf, buf_width, buf_height); + cairo_set_source_surface(cr, surface, 0, 0); + cairo_pattern_set_filter(cairo_get_source(cr), CAIRO_FILTER_FAST); + cairo_paint(cr); + + if(darktable.gui->show_focus_peaking + && window != DT_WINDOW_SLIDESHOW) + { + dt_focuspeaking(cr, buf_width, buf_height, + cairo_image_surface_get_data(surface)); + } + cairo_surface_destroy(surface); } cairo_restore(cr); } -cairo_surface_t *dt_view_create_surface( - uint8_t *buffer, - const size_t processed_width, - const size_t processed_height) +cairo_surface_t *dt_view_create_surface(uint8_t *buffer, + const size_t processed_width, + const size_t processed_height) { const int32_t stride = cairo_format_stride_for_width(CAIRO_FORMAT_RGB24, processed_width); @@ -1540,115 +1794,29 @@ (buffer, CAIRO_FORMAT_RGB24, processed_width, processed_height, stride); } -void dt_view_paint_buffer( - cairo_t *cr, - const size_t width, - const size_t height, - uint8_t *buffer, - const size_t processed_width, - const size_t processed_height, - const dt_window_t window) -{ - cairo_surface_t *surface = dt_view_create_surface(buffer, processed_width, processed_height); - dt_view_paint_surface(cr, width, height, surface, processed_width, processed_height, window); - cairo_surface_destroy(surface); -} - -void dt_view_paint_pixbuf( - cairo_t *cr, - const size_t width, - const size_t height, - uint8_t *buffer, - const size_t processed_width, - const size_t processed_height, - const dt_window_t window) -{ - dt_develop_t *dev = darktable.develop; - - const dt_dev_zoom_t zoom = - (window == DT_WINDOW_MAIN || window == DT_WINDOW_SLIDESHOW) - ? dt_control_get_dev_zoom() - : dt_second_window_get_dev_zoom(dev); - const int closeup = - (window == DT_WINDOW_MAIN || window == DT_WINDOW_SLIDESHOW) - ? dt_control_get_dev_closeup() - : dt_second_window_get_dev_closeup(dev); - const float zoom_scale = - (window == DT_WINDOW_MAIN || window == DT_WINDOW_SLIDESHOW) - ? dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 1) - : dt_second_window_get_zoom_scale(dev, zoom, 1<<closeup, 1); - - GdkPixbuf *pixbuf = gdk_pixbuf_new_from_data - (buffer, GDK_COLORSPACE_RGB, TRUE, 8, processed_width, processed_height, - processed_width * 4, NULL, NULL); - - int32_t w = 0, h = 0; - if(processed_width < processed_height) - { - // portrait - h = height; - w = processed_width * ((float)h / (float)processed_height); - } - else - { - // landscape - w = width; - h = processed_height * ((float)w / (float)processed_width); - } - - // adjust dimention if needed - if(w > width) - { - const int32_t ow = w; - w = width; - h = h * ((float)w / (float)ow); - } - if(h > height) - { - const int32_t oh = h; - h = height; - w = w * ((float)h / (float)oh); - } - - GdkPixbuf *scaled = gdk_pixbuf_scale_simple(pixbuf, w, h, GDK_INTERP_HYPER); - - cairo_save(cr); - - cairo_translate(cr, ceilf(.5f * (width - w)), ceilf(.5f * (height - h))); - - cairo_pattern_set_filter - (cairo_get_source(cr), - zoom_scale >= 0.9999f ? CAIRO_FILTER_FAST : darktable.gui->dr_filter_image); - gdk_cairo_set_source_pixbuf(cr, scaled, 0, 0); - - cairo_paint(cr); - - if(pixbuf) g_object_unref(pixbuf); - if(scaled) g_object_unref(scaled); -} - #define ADD_TO_CONTEXT(v) ctx = ((ctx << 5) + ctx) ^ (dt_view_context_t)(v); dt_view_context_t dt_view_get_view_context(void) { dt_develop_t *dev = darktable.develop; - const dt_dev_zoom_t zoom = dt_control_get_dev_zoom(); - const int closeup = dt_control_get_dev_closeup(); - const float zoom_scale = dt_dev_get_zoom_scale(dev, zoom, 1<<closeup, 1); - const float zoom_y = dt_control_get_dev_zoom_y(); - const float zoom_x = dt_control_get_dev_zoom_x(); - const gboolean iso_12646 = dev->iso_12646.enabled; + dt_dev_zoom_t zoom; + int closeup; + float zoom_x, zoom_y; + dt_dev_get_viewport_params(&dev->full, &zoom, &closeup, &zoom_x, &zoom_y); + const float zoom_scale = dt_dev_get_zoom_scale(&dev->full, zoom, 1<<closeup, 1); + const gboolean iso_12646 = dev->full.iso_12646; const gboolean focus_peaking = darktable.gui->show_focus_peaking; const float flt_prec = 1.e6; dt_view_context_t ctx = 0; ADD_TO_CONTEXT(closeup); - ADD_TO_CONTEXT(zoom_scale * flt_prec); - ADD_TO_CONTEXT(zoom_x * flt_prec); - ADD_TO_CONTEXT(zoom_y * flt_prec); + ADD_TO_CONTEXT((int)(zoom_scale * flt_prec)); + ADD_TO_CONTEXT((int)(zoom_x * flt_prec)); + ADD_TO_CONTEXT((int)(zoom_y * flt_prec)); ADD_TO_CONTEXT(iso_12646); ADD_TO_CONTEXT(focus_peaking); + // dt_print(DT_DEBUG_EXPOSE, "dt_view_get_view_context ctx==%" PRIx64 " scale=%f\n", ctx, zoom_scale); return ctx; } diff -Nru darktable-4.4.2/src/views/view.h darktable-4.6.1/src/views/view.h --- darktable-4.4.2/src/views/view.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/views/view.h 2024-02-16 17:31:09.000000000 +0000 @@ -59,8 +59,9 @@ DT_VIEW_SLIDESHOW = 1 << 4, DT_VIEW_PRINT = 1 << 5, DT_VIEW_KNIGHT = 1 << 6, + DT_VIEW_FALLBACK = 1 << 29, DT_VIEW_OTHER = 1 << 30, // for your own unpublished user view - DT_VIEW_ALL = ~DT_VIEW_NONE, + DT_VIEW_ALL = ~DT_VIEW_FALLBACK, } dt_view_type_flags_t; // flags that a view can set in flags() @@ -166,17 +167,20 @@ const gboolean is_bw, const gboolean is_bw_flow); /** expose an image and return a cair0_surface. */ -dt_view_surface_value_t dt_view_image_get_surface(dt_imgid_t imgid, - int32_t width, - int32_t height, +dt_view_surface_value_t dt_view_image_get_surface(const dt_imgid_t imgid, + const int32_t width, + const int32_t height, cairo_surface_t **surface, const gboolean quality); /** Set the selection bit to a given value for the specified image */ -void dt_view_set_selection(dt_imgid_t imgid, int value); +void dt_view_set_selection(const dt_imgid_t imgid, + const int value); /** toggle selection of given image. */ -void dt_view_toggle_selection(dt_imgid_t imgid); +void dt_view_toggle_selection(const dt_imgid_t imgid); +/** get the type of the currently active view in darktable.view_manager. */ +dt_view_type_flags_t dt_view_get_current(void); /** * holds all relevant data needed to manage the view @@ -285,9 +289,13 @@ { struct dt_lib_module_t *module; void (*update)(struct dt_lib_module_t *); - void (*set_sort)(struct dt_lib_module_t *, int sort, gboolean asc); - void (*reset_filter)(struct dt_lib_module_t *, gboolean smart_filter); - void (*show_pref_menu)(struct dt_lib_module_t *, GtkWidget *bt); + void (*set_sort)(struct dt_lib_module_t *, + const int sort, + const gboolean asc); + void (*reset_filter)(struct dt_lib_module_t *, + const gboolean smart_filter); + void (*show_pref_menu)(struct dt_lib_module_t *, + GtkWidget *bt); } module_filtering; /* filmstrip proxy object */ @@ -308,16 +316,23 @@ { struct dt_lib_module_t *module; struct dt_view_t *view; - void (*set_zoom)(struct dt_lib_module_t *module, gint zoom); + void (*set_zoom)(struct dt_lib_module_t *module, + const gint zoom); gint (*get_zoom)(struct dt_lib_module_t *module); dt_lighttable_layout_t (*get_layout)(struct dt_lib_module_t *module); - void (*set_layout)(struct dt_lib_module_t *module, dt_lighttable_layout_t layout); + void (*set_layout)(struct dt_lib_module_t *module, + const dt_lighttable_layout_t layout); void (*culling_init_mode)(struct dt_view_t *view); void (*culling_preview_refresh)(struct dt_view_t *view); void (*culling_preview_reload_overlays)(struct dt_view_t *view); gboolean (*get_preview_state)(struct dt_view_t *view); - void (*set_preview_state)(struct dt_view_t *view, gboolean state, gboolean sticky, gboolean focus); - void (*change_offset)(struct dt_view_t *view, gboolean reset, dt_imgid_t imgid); + void (*set_preview_state)(struct dt_view_t *view, + const gboolean state, + const gboolean sticky, + const gboolean focus); + void (*change_offset)(struct dt_view_t *view, + const gboolean reset, + const dt_imgid_t imgid); } lighttable; /* tethering view proxy object */ @@ -325,7 +340,8 @@ { struct dt_view_t *view; const char *(*get_job_code)(const dt_view_t *view); - void (*set_job_code)(const dt_view_t *view, const char *name); + void (*set_job_code)(const dt_view_t *view, + const char *name); int32_t (*get_selected_imgid)(const dt_view_t *view); } tethering; @@ -341,15 +357,33 @@ struct { struct dt_view_t *view; - void (*center_on_location)(const dt_view_t *view, gdouble lon, gdouble lat, double zoom); - void (*center_on_bbox)(const dt_view_t *view, gdouble lon1, gdouble lat1, gdouble lon2, gdouble lat2); + void (*center_on_location)(const dt_view_t *view, + const gdouble lon, + const gdouble lat, + const double zoom); + void (*center_on_bbox)(const dt_view_t *view, + const gdouble lon1, + const gdouble lat1, + const gdouble lon2, + const gdouble lat2); void (*show_osd)(const dt_view_t *view); - void (*set_map_source)(const dt_view_t *view, OsmGpsMapSource_t map_source); - GObject *(*add_marker)(const dt_view_t *view, dt_geo_map_display_t type, GList *points); - gboolean (*remove_marker)(const dt_view_t *view, dt_geo_map_display_t type, GObject *marker); - void (*add_location)(const dt_view_t *view, dt_map_location_data_t *p, const guint posid); - void (*location_action)(const dt_view_t *view, const int action); - void (*drag_set_icon)(const dt_view_t *view, GdkDragContext *context, const dt_imgid_t imgid, const int count); + void (*set_map_source)(const dt_view_t *view, + const OsmGpsMapSource_t map_source); + GObject *(*add_marker)(const dt_view_t *view, + const dt_geo_map_display_t type, + GList *points); + gboolean (*remove_marker)(const dt_view_t *view, + const dt_geo_map_display_t type, + GObject *marker); + void (*add_location)(const dt_view_t *view, + dt_map_location_data_t *p, + const guint posid); + void (*location_action)(const dt_view_t *view, + const int action); + void (*drag_set_icon)(const dt_view_t *view, + GdkDragContext *context, + const dt_imgid_t imgid, + const int count); gboolean (*redraw)(gpointer user_data); gboolean (*display_selected)(gpointer user_data); } map; @@ -360,7 +394,9 @@ struct { struct dt_view_t *view; - void (*print_settings)(const dt_view_t *view, dt_print_info_t *pinfo, dt_images_box *imgs); + void (*print_settings)(const dt_view_t *view, + dt_print_info_t *pinfo, + dt_images_box *imgs); } print; #endif } proxy; @@ -375,11 +411,17 @@ /** return translated name. */ const char *dt_view_manager_name(dt_view_manager_t *vm); /** switch to this module. returns TRUE if the module fails to change. */ -gboolean dt_view_manager_switch(dt_view_manager_t *vm, const char *view_name); -gboolean dt_view_manager_switch_by_view(dt_view_manager_t *vm, const dt_view_t *new_view); +gboolean dt_view_manager_switch(dt_view_manager_t *vm, + const char *view_name); +gboolean dt_view_manager_switch_by_view(dt_view_manager_t *vm, + const dt_view_t *new_view); /** expose current module. */ -void dt_view_manager_expose(dt_view_manager_t *vm, cairo_t *cr, int32_t width, int32_t height, - int32_t pointerx, int32_t pointery); +void dt_view_manager_expose(dt_view_manager_t *vm, + cairo_t *cr, + const int32_t width, + const int32_t height, + const int32_t pointerx, + const int32_t pointery); /** reset current view. */ void dt_view_manager_reset(dt_view_manager_t *vm); /** get current view of the view manager. */ @@ -387,29 +429,66 @@ void dt_view_manager_mouse_enter(dt_view_manager_t *vm); void dt_view_manager_mouse_leave(dt_view_manager_t *vm); -void dt_view_manager_mouse_moved(dt_view_manager_t *vm, double x, double y, double pressure, int which); -int dt_view_manager_button_released(dt_view_manager_t *vm, double x, double y, int which, uint32_t state); -int dt_view_manager_button_pressed(dt_view_manager_t *vm, double x, double y, double pressure, int which, - int type, uint32_t state); -void dt_view_manager_configure(dt_view_manager_t *vm, int width, int height); -void dt_view_manager_scrolled(dt_view_manager_t *vm, double x, double y, int up, int state); -void dt_view_manager_scrollbar_changed(dt_view_manager_t *vm, double x, double y); +void dt_view_manager_mouse_moved(dt_view_manager_t *vm, + const double x, + const double y, + const double pressure, + const int which); +int dt_view_manager_button_released(dt_view_manager_t *vm, + const double x, + const double y, + const int which, + const uint32_t state); +int dt_view_manager_button_pressed(dt_view_manager_t *vm, + const double x, + const double y, + const double pressure, + const int which, + const int type, + const uint32_t state); +void dt_view_manager_configure(dt_view_manager_t *vm, + const int width, + const int height); +void dt_view_manager_scrolled(dt_view_manager_t *vm, + const double x, + const double y, + const int up, + const int state); +void dt_view_manager_scrollbar_changed(dt_view_manager_t *vm, + const double x, + const double y); /** add widget to the current view toolbox */ -void dt_view_manager_view_toolbox_add(dt_view_manager_t *vm, GtkWidget *tool, dt_view_type_flags_t view); +void dt_view_manager_view_toolbox_add(dt_view_manager_t *vm, + GtkWidget *tool, + const dt_view_type_flags_t view); /** add widget to the current module toolbox */ -void dt_view_manager_module_toolbox_add(dt_view_manager_t *vm, GtkWidget *tool, dt_view_type_flags_t view); +void dt_view_manager_module_toolbox_add(dt_view_manager_t *vm, + GtkWidget *tool, + const dt_view_type_flags_t view); /** set scrollbar positions, gui method. */ -void dt_view_set_scrollbar(dt_view_t *view, float hpos, float hscroll_lower, float hsize, float hwinsize, - float vpos, float vscroll_lower, float vsize, float vwinsize); +void dt_view_set_scrollbar(dt_view_t *view, + const float hpos, + const float hscroll_lower, + const float hsize, + const float hwinsize, + const float vpos, + const float vscroll_lower, + const float vsize, + const float vwinsize); /** add mouse action record to list of mouse actions */ -GSList *dt_mouse_action_create_simple(GSList *actions, dt_mouse_action_type_t type, GdkModifierType accel, +GSList *dt_mouse_action_create_simple(GSList *actions, + const dt_mouse_action_type_t type, + const GdkModifierType accel, const char *const description); -GSList *dt_mouse_action_create_format(GSList *actions, dt_mouse_action_type_t type, GdkModifierType accel, - const char *const format_string, const char *const replacement); +GSList *dt_mouse_action_create_format(GSList *actions, + const dt_mouse_action_type_t type, + const GdkModifierType accel, + const char *const format_string, + const char *const replacement); /* * Tethering View PROXY @@ -417,27 +496,32 @@ /** get the current selected image id for tethering session */ int32_t dt_view_tethering_get_selected_imgid(const dt_view_manager_t *vm); /** set the current jobcode for tethering session */ -void dt_view_tethering_set_job_code(const dt_view_manager_t *vm, const char *name); +void dt_view_tethering_set_job_code(const dt_view_manager_t *vm, + const char *name); /** get the current jobcode for tethering session */ const char *dt_view_tethering_get_job_code(const dt_view_manager_t *vm); /** update the collection module */ void dt_view_collection_update(const dt_view_manager_t *vm); -void dt_view_filtering_set_sort(const dt_view_manager_t *vm, int sort, gboolean asc); +void dt_view_filtering_set_sort(const dt_view_manager_t *vm, + const int sort, + const gboolean asc); void dt_view_collection_update_history_state(const dt_view_manager_t *vm); /* * Filter dropdown proxy */ -void dt_view_filtering_reset(const dt_view_manager_t *vm, gboolean smart_filter); +void dt_view_filtering_reset(const dt_view_manager_t *vm, + const gboolean smart_filter); void dt_view_filtering_show_pref_menu(const dt_view_manager_t *vm, GtkWidget *bt); GtkWidget *dt_view_filter_get_filters_box(const dt_view_manager_t *vm); GtkWidget *dt_view_filter_get_sort_box(const dt_view_manager_t *vm); GtkWidget *dt_view_filter_get_count(const dt_view_manager_t *vm); // active images functions -void dt_view_active_images_reset(gboolean raise); -void dt_view_active_images_add(dt_imgid_t imgid, gboolean raise); +void dt_view_active_images_reset(const gboolean raise); +void dt_view_active_images_add(const dt_imgid_t imgid, + const gboolean raise); GSList *dt_view_active_images_get(); /** get the lighttable current layout */ @@ -447,9 +531,13 @@ /** get the lighttable full preview state */ gboolean dt_view_lighttable_preview_state(dt_view_manager_t *vm); /** set the lighttable full preview state */ -void dt_view_lighttable_set_preview_state(dt_view_manager_t *vm, gboolean state, gboolean sticky, gboolean focus); +void dt_view_lighttable_set_preview_state(dt_view_manager_t *vm, + const gboolean state, + const gboolean sticky, + const gboolean focus); /** sets the lighttable image in row zoom */ -void dt_view_lighttable_set_zoom(dt_view_manager_t *vm, gint zoom); +void dt_view_lighttable_set_zoom(dt_view_manager_t *vm, + const gint zoom); /** gets the lighttable image in row zoom */ gint dt_view_lighttable_get_zoom(dt_view_manager_t *vm); /** reinit culling for new mode */ @@ -459,7 +547,9 @@ /** force refresh of culling and/or preview overlays */ void dt_view_lighttable_culling_preview_reload_overlays(dt_view_manager_t *vm); /** sets the offset image (for culling and full preview) */ -void dt_view_lighttable_change_offset(dt_view_manager_t *vm, gboolean reset, dt_imgid_t imgid); +void dt_view_lighttable_change_offset(dt_view_manager_t *vm, + const gboolean reset, + const dt_imgid_t imgid); /* accel window */ void dt_view_accels_show(dt_view_manager_t *vm); @@ -467,29 +557,50 @@ void dt_view_accels_refresh(dt_view_manager_t *vm); /* audio */ -void dt_view_audio_start(dt_view_manager_t *vm, dt_imgid_t imgid); +void dt_view_audio_start(dt_view_manager_t *vm, + const dt_imgid_t imgid); void dt_view_audio_stop(dt_view_manager_t *vm); /* * Map View Proxy */ #ifdef HAVE_MAP -void dt_view_map_center_on_location(const dt_view_manager_t *vm, gdouble lon, gdouble lat, gdouble zoom); -void dt_view_map_center_on_bbox(const dt_view_manager_t *vm, gdouble lon1, gdouble lat1, gdouble lon2, gdouble lat2); +void dt_view_map_center_on_location(const dt_view_manager_t *vm, + const gdouble lon, + const gdouble lat, + const gdouble zoom); +void dt_view_map_center_on_bbox(const dt_view_manager_t *vm, + const gdouble lon1, + const gdouble lat1, + const gdouble lon2, + const gdouble lat2); void dt_view_map_show_osd(const dt_view_manager_t *vm); -void dt_view_map_set_map_source(const dt_view_manager_t *vm, OsmGpsMapSource_t map_source); -GObject *dt_view_map_add_marker(const dt_view_manager_t *vm, dt_geo_map_display_t type, GList *points); -gboolean dt_view_map_remove_marker(const dt_view_manager_t *vm, dt_geo_map_display_t type, GObject *marker); -void dt_view_map_add_location(const dt_view_manager_t *vm, dt_map_location_data_t *p, const guint posid); -void dt_view_map_location_action(const dt_view_manager_t *vm, const int action); -void dt_view_map_drag_set_icon(const dt_view_manager_t *vm, GdkDragContext *context, const dt_imgid_t imgid, const int count); +void dt_view_map_set_map_source(const dt_view_manager_t *vm, + const OsmGpsMapSource_t map_source); +GObject *dt_view_map_add_marker(const dt_view_manager_t *vm, + const dt_geo_map_display_t type, + GList *points); +gboolean dt_view_map_remove_marker(const dt_view_manager_t *vm, + const dt_geo_map_display_t type, + GObject *marker); +void dt_view_map_add_location(const dt_view_manager_t *vm, + dt_map_location_data_t *p, + const guint posid); +void dt_view_map_location_action(const dt_view_manager_t *vm, + const int action); +void dt_view_map_drag_set_icon(const dt_view_manager_t *vm, + GdkDragContext *context, + const dt_imgid_t imgid, + const int count); #endif /* * Print View Proxy */ #ifdef HAVE_PRINT -void dt_view_print_settings(const dt_view_manager_t *vm, dt_print_info_t *pinfo, dt_images_box *imgs); +void dt_view_print_settings(const dt_view_manager_t *vm, + dt_print_info_t *pinfo, + dt_images_box *imgs); #endif /* @@ -504,37 +615,37 @@ DT_WINDOW_SLIDESHOW } dt_window_t; -void dt_view_paint_buffer( - cairo_t *cr, - const size_t width, - const size_t height, - uint8_t *buffer, - const size_t processed_width, - const size_t processed_height, - const dt_window_t window); - -void dt_view_paint_pixbuf( - cairo_t *cr, - const size_t width, - const size_t height, - uint8_t *buffer, - const size_t processed_width, - const size_t processed_height, - const dt_window_t window); - -cairo_surface_t *dt_view_create_surface( - uint8_t *buffer, - const size_t processed_width, - const size_t processed_height); - -void dt_view_paint_surface( - cairo_t *cr, - const size_t width, - const size_t height, - cairo_surface_t *surface, - const size_t processed_width, - const size_t processed_height, - const dt_window_t window); +void dt_view_paint_buffer(cairo_t *cr, + const size_t width, + const size_t height, + uint8_t *buffer, + const size_t processed_width, + const size_t processed_height, + const dt_window_t window); + +void dt_view_paint_pixbuf(cairo_t *cr, + const size_t width, + const size_t height, + uint8_t *buffer, + const size_t processed_width, + const size_t processed_height, + const dt_window_t window); + +cairo_surface_t *dt_view_create_surface(uint8_t *buffer, + const size_t processed_width, + const size_t processed_height); + +void dt_view_paint_surface(cairo_t *cr, + const size_t width, + const size_t height, + dt_dev_viewport_t *port, + const dt_window_t window, + uint8_t *buf, + float buf_scale, + int buf_width, + int buf_height, + float buf_zoom_x, + float buf_zoom_y); typedef uint64_t dt_view_context_t; diff -Nru darktable-4.4.2/src/win/dtwin.c darktable-4.6.1/src/win/dtwin.c --- darktable-4.4.2/src/win/dtwin.c 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/win/dtwin.c 2024-02-16 17:31:09.000000000 +0000 @@ -1,6 +1,6 @@ /* This file is part of darktable, - Copyright (C) 2017-2020 darktable developers. + Copyright (C) 2017-2023 darktable developers. darktable is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -15,12 +15,12 @@ You should have received a copy of the GNU General Public License along with darktable. If not, see <http://www.gnu.org/licenses/>. */ + #include "dtwin.h" #include <setjmp.h> #include <windows.h> // Required by (at least) clang 10.0 as packaged by MSYS2 MinGW64. -// This platform combination is needed for dt appveyor build. #ifdef __clang__ #ifdef __MINGW32__ // 64-bit subsystem also sets this symbol #include <errno.h> @@ -338,15 +338,16 @@ info.dwThreadID = dwThreadID; info.dwFlags = 0; - // Yes, don't get heart attack, naming of thread is done by raising a special exception on Windows - // https://msdn.microsoft.com/en-us/library/xcb2z8hs(v=vs.71).aspx + // We set the thread name by raising an exception. + // Regarding the alternative method and their comparison, see: + // https://learn.microsoft.com/en-us/visualstudio/debugger/how-to-set-a-thread-name-in-native-code RaiseException(MS_VC_EXCEPTION, 0, sizeof(info) / sizeof(DWORD), (const ULONG_PTR *)&info); } -// This is taken from: https://git.gnome.org/browse/glib/tree/gio/glocalfile.c#n2269 -// The glib version of this function unfortunately shows always confirmation dialog boxes -// This version does thrashing silently, without dialog boxes: FOF_SILENT | FOF_NOCONFIRMATION -// When glib version on Windows will do silent trashing we can remove this function +// This is taken from: https://gitlab.gnome.org/GNOME/glib/blob/main/gio/glocalfile.c#L2357 +// The GLib version of this function always shows confirmation dialog boxes, unfortunately. +// This replacement does trashing without dialogs using "FOF_SILENT | FOF_NOCONFIRMATION". +// When GLib version on Windows will be able to trash silently we can remove this function. boolean dt_win_file_trash(GFile *file, GCancellable *cancellable, GError **error) { SHFILEOPSTRUCTW op = { 0 }; @@ -379,9 +380,9 @@ g_free(wfilename); return success; } + // clang-format off // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/src/win/win.h darktable-4.6.1/src/win/win.h --- darktable-4.4.2/src/win/win.h 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/src/win/win.h 2024-02-16 17:31:09.000000000 +0000 @@ -6,10 +6,12 @@ #include <windows.h> #include <psapi.h> -// ugly hack to make our code work. windows.h has some terrible includes which define these things -// that clash with our variable names. Including them can be omitted when adding +// ugly hack to make our code work. windows.h has some terrible +// includes which define these things that clash with our variable +// names. Including them can be omitted when adding // #define WIN32_LEAN_AND_MEAN -// before including windows.h, but then we will miss some defines needed for libraries like libjpeg. +// before including windows.h, but then we will miss some defines +// needed for libraries like libjpeg. #undef near #undef grp2 #undef interface @@ -22,4 +24,3 @@ // vim: shiftwidth=2 expandtab tabstop=2 cindent // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; // clang-format on - diff -Nru darktable-4.4.2/tools/CMakeLists.txt darktable-4.6.1/tools/CMakeLists.txt --- darktable-4.4.2/tools/CMakeLists.txt 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/tools/CMakeLists.txt 2024-02-16 17:31:09.000000000 +0000 @@ -7,13 +7,12 @@ set(TOOLS common.sh purge_from_cache.sh purge_non_existing_images.sh purge_unused_tags.sh) +if ((NOT WIN32) OR BUILD_MSYS2_INSTALL) + if(HAVE_EXIFTOOL) set(TOOLS ${TOOLS} extract_wb_from_images.sh) endif() -install( - PROGRAMS - ${TOOLS} - DESTINATION - ${CMAKE_INSTALL_DATAROOTDIR}/darktable/tools -) +install(PROGRAMS ${TOOLS} DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/darktable/tools) + +endif() diff -Nru darktable-4.4.2/tools/appimage-build-script.sh darktable-4.6.1/tools/appimage-build-script.sh --- darktable-4.4.2/tools/appimage-build-script.sh 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/tools/appimage-build-script.sh 2024-02-16 17:31:09.000000000 +0000 @@ -39,4 +39,17 @@ export VERSION=$(sh ../tools/get_git_version_string.sh) export DISABLE_COPYRIGHT_FILES_DEPLOYMENT=1 -./linuxdeploy-x86_64.AppImage --appdir ../AppDir --plugin gtk --output appimage +# Instruct LDAI (LinuxDeploy AppImage plugin) to embed AppImage update information +export LDAI_UPDATE_INFORMATION="gh-releases-zsync|darktable-org|darktable|nightly|Darktable-*-x86_64.AppImage.zsync" + +# '--deploy-deps-only' are needed to tell linuxdeploy where to collect dependencies +# of modules that are loaded via dlopen (and therefore cannot be found automatically) +./linuxdeploy-x86_64.AppImage \ + --appdir ../AppDir \ + --plugin gtk \ + --deploy-deps-only ../AppDir/usr/lib/x86_64-linux-gnu/darktable/plugins \ + --deploy-deps-only ../AppDir/usr/lib/x86_64-linux-gnu/darktable/plugins/imageio/format \ + --deploy-deps-only ../AppDir/usr/lib/x86_64-linux-gnu/darktable/plugins/imageio/storage \ + --deploy-deps-only ../AppDir/usr/lib/x86_64-linux-gnu/darktable/plugins/lighttable \ + --deploy-deps-only ../AppDir/usr/lib/x86_64-linux-gnu/darktable/views \ + --output appimage diff -Nru darktable-4.4.2/tools/basecurve/CMakeLists.txt darktable-4.6.1/tools/basecurve/CMakeLists.txt --- darktable-4.4.2/tools/basecurve/CMakeLists.txt 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/tools/basecurve/CMakeLists.txt 2024-02-16 17:31:09.000000000 +0000 @@ -9,6 +9,10 @@ find_package(Exiv2 REQUIRED) include_directories(${Exiv2_INCLUDE_DIR}) +if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND Exiv2_VERSION VERSION_GREATER_EQUAL "0.28.0") + set(CMAKE_CXX_STANDARD 17) +endif() + add_executable(darktable-curve-tool darktable-curve-tool.c exif-wrapper.cpp) if (OPENMP_FOUND) set_target_properties(darktable-curve-tool PROPERTIES COMPILE_FLAGS ${OpenMP_CXX_FLAGS}) diff -Nru darktable-4.4.2/tools/diff_lua_api.lua darktable-4.6.1/tools/diff_lua_api.lua --- darktable-4.4.2/tools/diff_lua_api.lua 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/tools/diff_lua_api.lua 2024-02-16 17:31:09.000000000 +0000 @@ -1,7 +1,7 @@ #!/usr/bin/env lua --[[ -Takes two mandatory and one optiona argument +Takes two mandatory and one optional argument * a file containing a dump of the old API * a file containing a dump of the new API * optionally "true" or "nodes" diff -Nru darktable-4.4.2/tools/extract_wb.py darktable-4.6.1/tools/extract_wb.py --- darktable-4.4.2/tools/extract_wb.py 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/tools/extract_wb.py 2024-02-16 17:31:09.000000000 +0000 @@ -209,7 +209,7 @@ eprint("Warning: Fuji does not seem to produce any sensible data for finetuning! If all finetuned values are identical, use one with no finetuning (0)") finetune = int(values[3]) / 20 # Fuji has -180..180 but steps are every 20 gm_skew = gm_skew or (int(values[1].replace(',','')) != 0) - elif tag == "White Balance Fine Tune" and maker == "SONY" and preset == "Cool White Fluorescent": + elif tag == "White Balance Fine Tune" and maker == "SONY" and preset == "Cool White Fluorescent" and int(values[0]) != 0: # Sony's Fluorescent Fun if values[0] == "-1": preset = "Warm White Fluorescent" diff -Nru darktable-4.4.2/tools/generate_darktablerc_conf.xsl darktable-4.6.1/tools/generate_darktablerc_conf.xsl --- darktable-4.4.2/tools/generate_darktablerc_conf.xsl 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/tools/generate_darktablerc_conf.xsl 2024-02-16 17:31:09.000000000 +0000 @@ -18,6 +18,8 @@ #include "control/conf.h" +#define WRAP_TRANSLATION(text) + static void _insert_default(const char *name, const char *value) { dt_confgen_value_t *item = (dt_confgen_value_t *)g_hash_table_lookup(darktable.conf->x_confgen, name); @@ -201,13 +203,15 @@ <xsl:choose> <xsl:when test="../type = 'dir'"> - <xsl:text> gchar *default_path = dt_conf_expand_default_dir("</xsl:text><xsl:apply-templates select="../default"/> - <xsl:text>");</xsl:text> - <xsl:text> </xsl:text> - <xsl:text> _insert_default("</xsl:text><xsl:value-of select="../name" /> - <xsl:text>", default_path);</xsl:text> - <xsl:text> </xsl:text> - <xsl:text> g_free(default_path); </xsl:text> + <xsl:text> { </xsl:text> + <xsl:text> gchar *default_path = dt_conf_expand_default_dir("</xsl:text><xsl:apply-templates select="../default"/> + <xsl:text>");</xsl:text> + <xsl:text> </xsl:text> + <xsl:text> _insert_default("</xsl:text><xsl:value-of select="../name" /> + <xsl:text>", default_path);</xsl:text> + <xsl:text> </xsl:text> + <xsl:text> g_free(default_path); </xsl:text> + <xsl:text> } </xsl:text> </xsl:when> <xsl:otherwise> <xsl:text> _insert_default("</xsl:text><xsl:value-of select="../name" /> @@ -236,23 +240,25 @@ <xsl:variable name="uui" select="../@ui"/> <xsl:text> _insert_shortdescription("</xsl:text><xsl:value-of select="../name" /> + <xsl:if test="not($uui)"> <xsl:text>", "</xsl:text> </xsl:if> <xsl:if test="$uui = 'yes'"> - <xsl:text>", _("</xsl:text> + <xsl:text>", N_("</xsl:text> </xsl:if> <xsl:value-of select="."/> <xsl:if test="not($uui)"> - <xsl:text>");</xsl:text> + <xsl:text>"); +</xsl:text> </xsl:if> <xsl:if test="$uui = 'yes'"> - <xsl:text>"));</xsl:text> + <xsl:text>")); +</xsl:text> </xsl:if> - <xsl:text> </xsl:text> </xsl:template> <xsl:template match="longdescription"> @@ -266,19 +272,20 @@ </xsl:if> <xsl:if test="$uui = 'yes' and $des != ''"> - <xsl:text>", _("</xsl:text> + <xsl:text>", N_("</xsl:text> </xsl:if> <xsl:value-of select="."/> <xsl:if test="not($uui) or $des = ''"> - <xsl:text>");</xsl:text> + <xsl:text>"); +</xsl:text> </xsl:if> <xsl:if test="$uui = 'yes' and $des != ''"> - <xsl:text>"));</xsl:text> + <xsl:text>")); +</xsl:text> </xsl:if> - <xsl:text> </xsl:text> </xsl:template> <xsl:template match="default"> @@ -296,11 +303,9 @@ <xsl:template match="enum" mode="value"> <xsl:for-each select="option"> <xsl:if test="number(.) != ."> - <xsl:text> const char *</xsl:text> - <xsl:value-of select="generate-id(.)" /> - <xsl:text> = C_("preferences", "</xsl:text> + <xsl:text> WRAP_TRANSLATION(C_("preferences", "</xsl:text> <xsl:value-of select="." /> - <xsl:text>"); </xsl:text> + <xsl:text>")); </xsl:text> </xsl:if> </xsl:for-each> </xsl:template> diff -Nru darktable-4.4.2/tools/generate_prefs.xsl darktable-4.6.1/tools/generate_prefs.xsl --- darktable-4.4.2/tools/generate_prefs.xsl 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/tools/generate_prefs.xsl 2024-02-16 17:31:09.000000000 +0000 @@ -5,42 +5,12 @@ <xsl:variable name="lowercase" select="'abcdefghijklmnopqrstuvwxyz'" /> <xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" /> <!-- The start of the gui generating functions --> - <xsl:variable name="tab_start"> (GtkWidget *dialog, GtkWidget *stack, const char *title) -{ - GtkWidget *widget, *label, *labelev, *viewport, *box; - GtkWidget *grid = gtk_grid_new(); - gtk_grid_set_row_spacing(GTK_GRID(grid), DT_PIXEL_APPLY_DPI(3)); - gtk_grid_set_column_spacing(GTK_GRID(grid), DT_PIXEL_APPLY_DPI(5)); - gtk_widget_set_valign(grid, GTK_ALIGN_START); - int line = 0; - char tooltip[1024]; - GtkWidget *tab_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); - GtkWidget *scroll = gtk_scrolled_window_new(NULL, NULL); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - viewport = gtk_viewport_new(NULL, NULL); - gtk_viewport_set_shadow_type(GTK_VIEWPORT(viewport), GTK_SHADOW_NONE); // doesn't seem to work from gtkrc - GtkWidget *help = gtk_button_new_with_label(_("?")); - gtk_widget_set_halign(help, GTK_ALIGN_END); - g_object_set_data_full(G_OBJECT(help), "dt-help-url", - g_strdup_printf("preferences-settings/%s/", title), g_free); - g_signal_connect(help, "clicked", G_CALLBACK(dt_gui_show_help), NULL); - gtk_box_pack_start(GTK_BOX(tab_box), scroll, TRUE, TRUE, 0); - gtk_container_add(GTK_CONTAINER(scroll), viewport); - gtk_container_add(GTK_CONTAINER(viewport), grid); - gtk_box_pack_end(GTK_BOX(tab_box), help, FALSE, FALSE, 0); - gtk_stack_add_titled(GTK_STACK(stack), tab_box, _(title), _(title)); - -</xsl:variable> - - <xsl:variable name="tab_end"> - gtk_widget_show_all(stack); -} -</xsl:variable> <xsl:variable name="dialog_start">(GtkWidget *dialog) { GtkWidget *widget, *label, *labelev, *viewport, *box; GtkWidget *grid = gtk_grid_new(); + GtkSizeGroup *widget_group = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); gtk_grid_set_row_spacing(GTK_GRID(grid), DT_PIXEL_APPLY_DPI(3)); gtk_grid_set_column_spacing(GTK_GRID(grid), DT_PIXEL_APPLY_DPI(5)); gtk_widget_set_valign(grid, GTK_ALIGN_START); @@ -51,9 +21,10 @@ </xsl:variable> <xsl:variable name="dialog_end"> + g_object_unref(widget_group); gtk_box_pack_start(GTK_BOX(area), grid, FALSE, FALSE, 0); return grid; - } +} </xsl:variable> <xsl:param name="HAVE_OPENCL">1</xsl:param> @@ -71,6 +42,7 @@ #include <gtk/gtk.h> #include "control/conf.h" #include "common/calculator.h" +#include "gui/preferences.h" #define NON_DEF_CHAR "●" @@ -80,8 +52,8 @@ gdk_event_get_keyval ((GdkEvent*)event, &keyval); - if (keyval == GDK_KEY_Return || keyval == GDK_KEY_KP_Enter) - return TRUE; + if(keyval == GDK_KEY_Return || keyval == GDK_KEY_KP_Enter) + return TRUE; return FALSE; } @@ -89,22 +61,17 @@ { gboolean is_default = TRUE; - if (GTK_IS_CHECK_BUTTON(widget)) + if(GTK_IS_CHECK_BUTTON(widget)) { const gboolean c_default = dt_confgen_get_bool(confstr, DT_DEFAULT); const gboolean c_state = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); is_default = (c_state == c_default); } - else if(GTK_IS_COMBO_BOX(widget)) + else if(DT_IS_BAUHAUS_WIDGET(widget)) { - const gchar *c_default = dt_confgen_get(confstr, DT_DEFAULT); - GtkTreeIter iter; - GtkTreeModel *model = gtk_combo_box_get_model(GTK_COMBO_BOX(widget)); - const gint active = gtk_combo_box_get_active(GTK_COMBO_BOX(widget)); - gchar *c_state = NULL; - gtk_tree_model_iter_nth_child(model, &iter, NULL, active); - gtk_tree_model_get(model, &iter, 0, &c_state, -1); - is_default = (g_strcmp0(c_state, c_default) == 0); + const int v_default = dt_bauhaus_combobox_get_default(widget); + const int v_state = GPOINTER_TO_INT(dt_bauhaus_combobox_get_data(widget)); + is_default = (v_state == v_default); } else if(GTK_IS_SPIN_BUTTON(widget)) { @@ -135,13 +102,13 @@ { // replace * with space gtk_label_set_text(GTK_LABEL(label), ""); - g_object_set(label, "tooltip-text", NULL, (gchar *)0); + gtk_widget_set_tooltip_text(label, NULL); } else { // replace space with * gtk_label_set_text(GTK_LABEL(label), NON_DEF_CHAR); - g_object_set(label, "tooltip-text", _("this setting has been modified"), (gchar *)0); + gtk_widget_set_tooltip_text(label, _("this setting has been modified")); } } @@ -152,7 +119,7 @@ <xsl:for-each select="./dtconfiglist/dtconfig[@prefs or @dialog]"> <xsl:if test="name != 'opencl' or $HAVE_OPENCL=1"> - <xsl:text>static gboolean reset_widget_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text> (GtkWidget *label, GdkEventButton *event, GtkWidget *widget) { if(event->type == GDK_2BUTTON_PRESS) { </xsl:text> + <xsl:text>static gboolean reset_widget_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text> (GtkWidget *label, GdkEventButton *event, GtkWidget *widget) { if(event->type == GDK_2BUTTON_PRESS) {</xsl:text> <xsl:apply-templates select="." mode="reset"/> <xsl:text> return TRUE; } return FALSE; } </xsl:text> </xsl:if> @@ -177,6 +144,7 @@ <xsl:text> } </xsl:text> <xsl:text> gtk_widget_set_can_focus(GTK_WIDGET(dialog), TRUE); </xsl:text> <xsl:text> gtk_widget_grab_focus(GTK_WIDGET(dialog)); </xsl:text> + <xsl:apply-templates select="." mode="change"/> <xsl:text> } </xsl:text> </xsl:if> @@ -190,289 +158,72 @@ <xsl:text> restart_required = TRUE; </xsl:text> </xsl:if> <xsl:apply-templates select="type" mode="factor"/> - <xsl:text> set_widget_label_default(widget, "</xsl:text> + <xsl:text> + set_widget_label_default(widget, "</xsl:text> <xsl:value-of select="name"/><xsl:text>", GTK_WIDGET(user_data), factor);</xsl:text> <xsl:text> } </xsl:text> </xsl:for-each> <!-- preferences tabs --> - <!-- lighttable --> - - <xsl:text> static void init_tab_lighttable</xsl:text><xsl:value-of select="$tab_start"/> - - <!-- general section --> - <xsl:text> - { - GtkWidget *seclabel = gtk_label_new(_("general")); - GtkWidget *lbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(lbox), seclabel, FALSE, FALSE, 0); - gtk_widget_set_name(lbox, "pref_section"); - gtk_grid_attach(GTK_GRID(grid), lbox, 0, line++, 2, 1); - } - </xsl:text> - - <xsl:for-each select="./dtconfiglist/dtconfig[@prefs='lighttable' and @section='general']"> - <xsl:apply-templates select="." mode="tab_block"/> - </xsl:for-each> - - <!-- module section --> - - <xsl:text> - { - GtkWidget *seclabel = gtk_label_new(_("thumbnails")); - GtkWidget *lbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(lbox), seclabel, FALSE, FALSE, 0); - gtk_widget_set_name(lbox, "pref_section"); - gtk_grid_attach(GTK_GRID(grid), lbox, 0, line++, 2, 1); - } - </xsl:text> - - <xsl:for-each select="./dtconfiglist/dtconfig[@prefs='lighttable' and @section='thumbs']"> - <xsl:apply-templates select="." mode="tab_block"/> - </xsl:for-each> - - <xsl:value-of select="$tab_end" /> - - <!-- darkroom --> - - <xsl:text> static void init_tab_darkroom</xsl:text><xsl:value-of select="$tab_start"/> - - <!-- general section --> - <xsl:text> - { - GtkWidget *seclabel = gtk_label_new(_("general")); - GtkWidget *lbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(lbox), seclabel, FALSE, FALSE, 0); - gtk_widget_set_name(lbox, "pref_section"); - gtk_grid_attach(GTK_GRID(grid), lbox, 0, line++, 2, 1); - } - </xsl:text> - - <xsl:for-each select="./dtconfiglist/dtconfig[@prefs='darkroom' and @section='general']"> - <xsl:apply-templates select="." mode="tab_block"/> - </xsl:for-each> - - <!-- module section --> - - <xsl:text> - { - GtkWidget *seclabel = gtk_label_new(_("modules")); - GtkWidget *lbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(lbox), seclabel, FALSE, FALSE, 0); - gtk_widget_set_name(lbox, "pref_section"); - gtk_grid_attach(GTK_GRID(grid), lbox, 0, line++, 2, 1); - } - </xsl:text> - - <xsl:for-each select="./dtconfiglist/dtconfig[@prefs='darkroom' and @section='modules']"> - <xsl:apply-templates select="." mode="tab_block"/> - </xsl:for-each> - - <xsl:value-of select="$tab_end" /> - - <!-- processing --> +<xsl:text> +static void init_tab_generated(GtkWidget *dialog, GtkWidget *stack) +{ + GtkSizeGroup *widget_group = gtk_size_group_new(GTK_SIZE_GROUP_BOTH);</xsl:text> - <xsl:text> static void init_tab_processing</xsl:text><xsl:value-of select="$tab_start"/> +<xsl:for-each select="/dtconfiglist/dttab"> + <xsl:variable name="pref" select="@name"/> <xsl:text> - { - GtkWidget *seclabel = gtk_label_new(_("image processing")); - GtkWidget *lbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(lbox), seclabel, FALSE, FALSE, 0); - gtk_widget_set_name(lbox, "pref_section"); - gtk_grid_attach(GTK_GRID(grid), lbox, 0, line++, 2, 1); - } - </xsl:text> - - <xsl:for-each select="./dtconfiglist/dtconfig[@prefs='processing' and @section='general']"> - <xsl:apply-templates select="." mode="tab_block"/> - </xsl:for-each> - - <!-- cpu/gpu/memory --> + { + GtkWidget *widget, *label, *labelev, *viewport, *box; + GtkWidget *grid = gtk_grid_new(); + gtk_grid_set_row_spacing(GTK_GRID(grid), DT_PIXEL_APPLY_DPI(3)); + gtk_grid_set_column_spacing(GTK_GRID(grid), DT_PIXEL_APPLY_DPI(5)); + gtk_widget_set_valign(grid, GTK_ALIGN_START); + int line = 0; + char tooltip[1024]; + GtkWidget *tab_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); + GtkWidget *scroll = gtk_scrolled_window_new(NULL, NULL); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + viewport = gtk_viewport_new(NULL, NULL); + gtk_viewport_set_shadow_type(GTK_VIEWPORT(viewport), GTK_SHADOW_NONE); // doesn't seem to work from gtkrc + GtkWidget *help = gtk_button_new_with_label(_("?")); + gtk_widget_set_halign(help, GTK_ALIGN_END); + g_object_set_data_full(G_OBJECT(help), "dt-help-url", + g_strdup("preferences-settings/</xsl:text><xsl:value-of select="@title"/><xsl:text>/"), g_free); + g_signal_connect(help, "clicked", G_CALLBACK(dt_gui_show_help), NULL); + gtk_box_pack_start(GTK_BOX(tab_box), scroll, TRUE, TRUE, 0); + gtk_container_add(GTK_CONTAINER(scroll), viewport); + gtk_container_add(GTK_CONTAINER(viewport), grid); + gtk_box_pack_end(GTK_BOX(tab_box), help, FALSE, FALSE, 0); + gtk_stack_add_titled(GTK_STACK(stack), tab_box, + _("</xsl:text><xsl:value-of select="@title"/><xsl:text>"), _("</xsl:text><xsl:value-of select="@title"/><xsl:text>"));</xsl:text> - <xsl:text> + <xsl:for-each select="./section"> + <xsl:variable name="section" select="@name"/> + <xsl:text> { - GtkWidget *seclabel = gtk_label_new(_("CPU / GPU / memory")); + GtkWidget *seclabel = gtk_label_new(_("</xsl:text><xsl:value-of select="@title"/><xsl:text>")); GtkWidget *lbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start(GTK_BOX(lbox), seclabel, FALSE, FALSE, 0); gtk_widget_set_name(lbox, "pref_section"); gtk_grid_attach(GTK_GRID(grid), lbox, 0, line++, 2, 1); - } - </xsl:text> + }</xsl:text> - <xsl:for-each select="./dtconfiglist/dtconfig[@prefs='processing' and @section='cpugpu']"> - <xsl:if test="name != 'opencl' or $HAVE_OPENCL=1"> + <xsl:for-each select="/dtconfiglist/dtconfig[((@section != 'general' and @section = $section) or + (@section = 'general' and @prefs = $pref) and ($section = 'general' or not($section))) + and (name != 'opencl' or $HAVE_OPENCL = 1)]"> <xsl:apply-templates select="." mode="tab_block"/> - </xsl:if> - </xsl:for-each> - <xsl:value-of select="$tab_end" /> - - <!-- security --> - - <xsl:text> static void init_tab_security</xsl:text><xsl:value-of select="$tab_start"/> - - <!-- general (confirmations) section --> - <xsl:text> - { - GtkWidget *seclabel = gtk_label_new(_("general")); - GtkWidget *lbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(lbox), seclabel, FALSE, FALSE, 0); - gtk_widget_set_name(lbox, "pref_section"); - gtk_grid_attach(GTK_GRID(grid), lbox, 0, line++, 2, 1); - } - </xsl:text> - - <xsl:for-each select="./dtconfiglist/dtconfig[@prefs='security' and @section='general']"> - <xsl:apply-templates select="." mode="tab_block"/> - </xsl:for-each> - - <!-- others section --> - <xsl:text> - { - GtkWidget *seclabel = gtk_label_new(_("other")); - GtkWidget *lbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(lbox), seclabel, FALSE, FALSE, 0); - gtk_widget_set_name(lbox, "pref_section"); - gtk_grid_attach(GTK_GRID(grid), lbox, 0, line++, 2, 1); - } - </xsl:text> - - <xsl:for-each select="./dtconfiglist/dtconfig[@prefs='security' and @section='other']"> - <xsl:apply-templates select="." mode="tab_block"/> - </xsl:for-each> - <xsl:value-of select="$tab_end" /> - - <!-- storage --> - - <xsl:text> static void init_tab_storage</xsl:text><xsl:value-of select="$tab_start"/> - -<xsl:text> - { - GtkWidget *seclabel = gtk_label_new(_("database")); - GtkWidget *lbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(lbox), seclabel, FALSE, FALSE, 0); - gtk_widget_set_name(lbox, "pref_section"); - gtk_grid_attach(GTK_GRID(grid), lbox, 0, line++, 2, 1); - } -</xsl:text> - - <xsl:for-each select="./dtconfiglist/dtconfig[@prefs='storage' and @section='database']"> - <xsl:apply-templates select="." mode="tab_block"/> - </xsl:for-each> -<xsl:text> - { - GtkWidget *seclabel = gtk_label_new(_("XMP")); - GtkWidget *lbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(lbox), seclabel, FALSE, FALSE, 0); - gtk_widget_set_name(lbox, "pref_section"); - gtk_grid_attach(GTK_GRID(grid), lbox, 0, line++, 2, 1); - } -</xsl:text> - - <xsl:for-each select="./dtconfiglist/dtconfig[@prefs='storage' and @section='XMP']"> - <xsl:apply-templates select="." mode="tab_block"/> - </xsl:for-each> - <xsl:value-of select="$tab_end" /> - - <!-- miscellaneous --> - - <xsl:text> static void init_tab_misc</xsl:text><xsl:value-of select="$tab_start"/> -<xsl:text> - { - GtkWidget *seclabel = gtk_label_new(_("interface")); - GtkWidget *lbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(lbox), seclabel, FALSE, FALSE, 0); - gtk_widget_set_name(lbox, "pref_section"); - gtk_grid_attach(GTK_GRID(grid), lbox, 0, line++, 2, 1); - } -</xsl:text> - - <xsl:for-each select="./dtconfiglist/dtconfig[@prefs='misc' and @section='interface']"> - <xsl:apply-templates select="." mode="tab_block"/> - </xsl:for-each> -<xsl:text> - { - GtkWidget *seclabel = gtk_label_new(_("tags")); - GtkWidget *lbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(lbox), seclabel, FALSE, FALSE, 0); - gtk_widget_set_name(lbox, "pref_section"); - gtk_grid_attach(GTK_GRID(grid), lbox, 0, line++, 2, 1); - } -</xsl:text> - - <xsl:for-each select="./dtconfiglist/dtconfig[@prefs='misc' and @section='tags']"> - <xsl:apply-templates select="." mode="tab_block"/> - </xsl:for-each> - -<xsl:text> - { - GtkWidget *seclabel = gtk_label_new(_("shortcuts with multiple instances")); - GtkWidget *lbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(lbox), seclabel, FALSE, FALSE, 0); - gtk_widget_set_name(lbox, "pref_section"); - gtk_grid_attach(GTK_GRID(grid), lbox, 0, line++, 2, 1); - g_object_set(lbox, "tooltip-text", _("where multiple module instances are present, these preferences control rules that are applied (in order) to decide which module instance shortcuts will be applied to"), (gchar *)0); - } -</xsl:text> - - <xsl:for-each select="./dtconfiglist/dtconfig[@prefs='misc' and @section='accel']"> - <xsl:apply-templates select="." mode="tab_block"/> + </xsl:for-each> </xsl:for-each> - - <!-- other views --> - <xsl:text> - { - GtkWidget *seclabel = gtk_label_new(_("map / geolocalization view")); - GtkWidget *lbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(lbox), seclabel, FALSE, FALSE, 0); - gtk_widget_set_name(lbox, "pref_section"); - gtk_grid_attach(GTK_GRID(grid), lbox, 0, line++, 2, 1); - } - </xsl:text> - - <xsl:for-each select="./dtconfiglist/dtconfig[@prefs='otherviews' and @section='geoloc']"> - <xsl:apply-templates select="." mode="tab_block"/> - </xsl:for-each> - - <!-- slideshow section --> + }</xsl:text> +</xsl:for-each> <xsl:text> - { - GtkWidget *seclabel = gtk_label_new(_("slideshow view")); - GtkWidget *lbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(lbox), seclabel, FALSE, FALSE, 0); - gtk_widget_set_name(lbox, "pref_section"); - gtk_grid_attach(GTK_GRID(grid), lbox, 0, line++, 2, 1); - } -</xsl:text> - <xsl:for-each select="./dtconfiglist/dtconfig[@prefs='otherviews' and @section='slideshow']"> - <xsl:apply-templates select="." mode="tab_block"/> - </xsl:for-each> - <xsl:value-of select="$tab_end" /> - - <!-- import --> - - <xsl:text> static void init_tab_import</xsl:text><xsl:value-of select="$tab_start"/> - - <xsl:for-each select="./dtconfiglist/dtconfig[@prefs='import' and @section='import']"> - <xsl:apply-templates select="." mode="tab_block"/> - </xsl:for-each> -<xsl:text> - { - GtkWidget *seclabel = gtk_label_new(_("session options")); - GtkWidget *lbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(lbox), seclabel, FALSE, FALSE, 0); - gtk_widget_set_name(lbox, "pref_section"); - gtk_grid_attach(GTK_GRID(grid), lbox, 0, line++, 2, 1); - } -</xsl:text> - - <xsl:for-each select="./dtconfiglist/dtconfig[@prefs='import' and @section='session']"> - <xsl:apply-templates select="." mode="tab_block"/> - </xsl:for-each> - <xsl:value-of select="$tab_end" /> + g_object_unref(widget_group); +}</xsl:text> <!-- dialog: collect --> @@ -525,98 +276,98 @@ else { labdef = gtk_label_new(NON_DEF_CHAR); - g_object_set(labdef, "tooltip-text", _("this setting has been modified"), (gchar *)0); + gtk_widget_set_tooltip_text(labdef, _("this setting has been modified")); } gtk_widget_set_name(labdef, "preference_non_default"); - label = gtk_label_new(_("</xsl:text><xsl:value-of select="shortdescription"/><xsl:text>")); - gtk_widget_set_halign(label, GTK_ALIGN_START); + label = gtk_label_new_with_mnemonic(_("</xsl:text><xsl:value-of select="shortdescription"/><xsl:text>")); + gtk_label_set_xalign(GTK_LABEL(label), .0); labelev = gtk_event_box_new(); gtk_widget_add_events(labelev, GDK_BUTTON_PRESS_MASK); gtk_container_add(GTK_CONTAINER(labelev), label); </xsl:text> <xsl:apply-templates select="." mode="tab"/> - <xsl:text> gtk_event_box_set_visible_window(GTK_EVENT_BOX(labelev), FALSE);</xsl:text> + <xsl:text> + gtk_event_box_set_visible_window(GTK_EVENT_BOX(labelev), FALSE);</xsl:text> <xsl:if test="longdescription != ''"> <xsl:if test="contains(longdescription,'%')"> <xsl:text> /* xgettext:no-c-format */</xsl:text> </xsl:if> - <xsl:text> g_object_set(widget, "tooltip-text", _("</xsl:text><xsl:value-of select="longdescription"/><xsl:text>"), (gchar *)0);</xsl:text> + <xsl:text> + gtk_widget_set_tooltip_text(widget, _("</xsl:text><xsl:value-of select="longdescription"/><xsl:text>"));</xsl:text> </xsl:if> - <xsl:choose> - <xsl:when test="@capability"> - <xsl:text> - GtkWidget *notavailable = gtk_label_new(_("not available")); - gtk_widget_set_halign(notavailable, GTK_ALIGN_START); - gtk_widget_set_sensitive(notavailable, FALSE); - g_object_set(notavailable, "tooltip-text", _("not available on this system"), (gchar *)0); - gtk_widget_set_sensitive(labelev, dt_capabilities_check("</xsl:text><xsl:value-of select="@capability"/><xsl:text>")); - gtk_widget_set_sensitive(widget, dt_capabilities_check("</xsl:text><xsl:value-of select="@capability"/><xsl:text>")); + <xsl:if test="@capability"> + <xsl:text> if(!dt_capabilities_check("</xsl:text><xsl:value-of select="@capability"/><xsl:text>")) - g_object_set(labelev, "tooltip-text", _("not available on this system"), (gchar *)0); - gtk_grid_attach(GTK_GRID(grid), labelev, 0, line, 1, 1); - gtk_grid_attach(GTK_GRID(grid), dt_capabilities_check("</xsl:text><xsl:value-of select="@capability"/><xsl:text>") ? box : notavailable, 2, line++, 1, 1); - g_signal_connect(G_OBJECT(labelev), "button-press-event", G_CALLBACK(reset_widget_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), (gpointer)widget); -</xsl:text> - </xsl:when> - <xsl:otherwise> - <xsl:text> + { + gtk_widget_destroy(widget); + widget = gtk_label_new(_("not available")); + gtk_widget_set_halign(widget, GTK_ALIGN_START); + gtk_widget_set_tooltip_text(labelev, _("not available on this system")); + gtk_widget_set_tooltip_text(widget, _("not available on this system")); + gtk_widget_set_sensitive(labelev, FALSE); + gtk_widget_set_sensitive(widget, FALSE); + }</xsl:text> + </xsl:if> + <xsl:text> gtk_widget_set_name(widget, "</xsl:text><xsl:value-of select="name"/><xsl:text>"); gtk_grid_attach(GTK_GRID(grid), labelev, 0, line, 1, 1); gtk_grid_attach(GTK_GRID(grid), labdef, 1, line, 1, 1); - gtk_grid_attach(GTK_GRID(grid), box, 2, line++, 1, 1); + gtk_grid_attach(GTK_GRID(grid), widget, 2, line++, 1, 1); + gtk_label_set_mnemonic_widget(GTK_LABEL(label), widget); g_signal_connect(G_OBJECT(labelev), "button-press-event", G_CALLBACK(reset_widget_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), (gpointer)widget); -</xsl:text> - </xsl:otherwise> - </xsl:choose> - <xsl:text> - } -</xsl:text> + }</xsl:text> </xsl:template> <!-- Rules handling code specific for different types --> <!-- RESET --> <xsl:template match="dtconfig[type='string']" mode="reset"> - <xsl:text> gtk_entry_set_text(GTK_ENTRY(widget), "</xsl:text><xsl:value-of select="default"/><xsl:text>");</xsl:text> + <xsl:text> + gtk_entry_set_text(GTK_ENTRY(widget), "</xsl:text><xsl:value-of select="default"/><xsl:text>");</xsl:text> </xsl:template> <xsl:template match="dtconfig[type='longstring']" mode="reset"> - <xsl:text> - gtk_text_buffer_set_text(gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget)), "</xsl:text><xsl:value-of select="default"/><xsl:text>", strlen("</xsl:text><xsl:value-of select="default"/><xsl:text>")); - </xsl:text> + <xsl:text> + gtk_text_buffer_set_text(gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget)), "</xsl:text><xsl:value-of select="default"/><xsl:text>", strlen("</xsl:text><xsl:value-of select="default"/><xsl:text>"));</xsl:text> </xsl:template> <xsl:template match="dtconfig[type='int']" mode="reset"> <xsl:text> </xsl:text><xsl:apply-templates select="type" mode="factor"/> - <xsl:text> gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), </xsl:text><xsl:value-of select="default"/><xsl:text> * factor);</xsl:text> + <xsl:text> + gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), </xsl:text><xsl:value-of select="default"/><xsl:text> * factor);</xsl:text> </xsl:template> <xsl:template match="dtconfig[type='int64']" mode="reset"> <xsl:text> </xsl:text><xsl:apply-templates select="type" mode="factor"/> - <xsl:text> gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), </xsl:text><xsl:value-of select="default"/><xsl:text> * factor);</xsl:text> + <xsl:text> + gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), </xsl:text><xsl:value-of select="default"/><xsl:text> * factor);</xsl:text> </xsl:template> <xsl:template match="dtconfig[type='float']" mode="reset"> <xsl:text> </xsl:text><xsl:apply-templates select="type" mode="factor"/> - <xsl:text> gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), </xsl:text><xsl:value-of select="default"/><xsl:text> * factor);</xsl:text> + <xsl:text> + gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), </xsl:text><xsl:value-of select="default"/><xsl:text> * factor);</xsl:text> </xsl:template> <xsl:template match="dtconfig[type='bool']" mode="reset"> - <xsl:text> gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), </xsl:text><xsl:value-of select="translate(default, $lowercase, $uppercase)"/><xsl:text>);</xsl:text> + <xsl:text> + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), </xsl:text><xsl:value-of select="translate(default, $lowercase, $uppercase)"/><xsl:text>);</xsl:text> </xsl:template> <xsl:template match="dtconfig[type/enum]" mode="reset"> <xsl:variable name="default" select="default"/> <xsl:for-each select="./type/enum/option"> <xsl:if test="$default = ."> - <xsl:text> gtk_combo_box_set_active(GTK_COMBO_BOX(widget), </xsl:text><xsl:value-of select="position()-1"/><xsl:text>);</xsl:text> + <xsl:text> + dt_bauhaus_widget_reset(widget);</xsl:text> </xsl:if> </xsl:for-each> </xsl:template> <xsl:template match="dtconfig[type='dir']" mode="reset"> - <xsl:text> gchar *path = dt_conf_expand_default_dir("</xsl:text><xsl:value-of select="default"/><xsl:text>"); + <xsl:text> + gchar *path = dt_conf_expand_default_dir("</xsl:text><xsl:value-of select="default"/><xsl:text>"); dt_conf_set_string("</xsl:text><xsl:value-of select="name"/><xsl:text>", path); g_free(path); path = dt_conf_get_string("</xsl:text><xsl:value-of select="name"/><xsl:text>"); @@ -626,61 +377,62 @@ <!-- CALLBACK --> <xsl:template match="dtconfig[type='string']" mode="change"> - <xsl:text> dt_conf_set_string("</xsl:text><xsl:value-of select="name"/><xsl:text>", gtk_entry_get_text(GTK_ENTRY(widget)));</xsl:text> + <xsl:text> + dt_conf_set_string("</xsl:text><xsl:value-of select="name"/><xsl:text>", gtk_entry_get_text(GTK_ENTRY(widget)));</xsl:text> </xsl:template> <xsl:template match="dtconfig[type='longstring']" mode="change"> - <xsl:text> - GtkTextIter start, end; - GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget)); - gtk_text_buffer_get_start_iter(buffer, &start); - gtk_text_buffer_get_end_iter(buffer, &end); - dt_conf_set_string("</xsl:text><xsl:value-of select="name"/><xsl:text>", gtk_text_buffer_get_text(buffer, &start, &end, FALSE)); - </xsl:text> + <xsl:text> + GtkTextIter start, end; + GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget)); + gtk_text_buffer_get_start_iter(buffer, &start); + gtk_text_buffer_get_end_iter(buffer, &end); + dt_conf_set_string("</xsl:text><xsl:value-of select="name"/><xsl:text>", gtk_text_buffer_get_text(buffer, &start, &end, FALSE));</xsl:text> </xsl:template> <xsl:template match="dtconfig[type='int']" mode="change"> <xsl:apply-templates select="type" mode="factor"/> - <xsl:text> dt_conf_set_int("</xsl:text><xsl:value-of select="name"/><xsl:text>", gtk_spin_button_get_value(GTK_SPIN_BUTTON(widget)) / factor);</xsl:text> + <xsl:text> + dt_conf_set_int("</xsl:text><xsl:value-of select="name"/><xsl:text>", gtk_spin_button_get_value(GTK_SPIN_BUTTON(widget)) / factor);</xsl:text> </xsl:template> <xsl:template match="dtconfig[type='int64']" mode="change"> <xsl:apply-templates select="type" mode="factor"/> - <xsl:text> dt_conf_set_int64("</xsl:text><xsl:value-of select="name"/><xsl:text>", gtk_spin_button_get_value(GTK_SPIN_BUTTON(widget)) / factor);</xsl:text> + <xsl:text> + dt_conf_set_int64("</xsl:text><xsl:value-of select="name"/><xsl:text>", gtk_spin_button_get_value(GTK_SPIN_BUTTON(widget)) / factor);</xsl:text> </xsl:template> <xsl:template match="dtconfig[type='float']" mode="change"> <xsl:apply-templates select="type" mode="factor"/> - <xsl:text> dt_conf_set_float("</xsl:text><xsl:value-of select="name"/><xsl:text>", gtk_spin_button_get_value(GTK_SPIN_BUTTON(widget)) / factor);</xsl:text> + <xsl:text> + dt_conf_set_float("</xsl:text><xsl:value-of select="name"/><xsl:text>", gtk_spin_button_get_value(GTK_SPIN_BUTTON(widget)) / factor);</xsl:text> </xsl:template> <xsl:template match="dtconfig[type='bool']" mode="change"> - <xsl:text> dt_conf_set_bool("</xsl:text><xsl:value-of select="name"/><xsl:text>", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)));</xsl:text> + <xsl:text> + dt_conf_set_bool("</xsl:text><xsl:value-of select="name"/><xsl:text>", gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)));</xsl:text> </xsl:template> <xsl:template match="dtconfig[type/enum]" mode="change"> - <xsl:text> GtkTreeIter iter; - if(gtk_combo_box_get_active_iter(GTK_COMBO_BOX(widget), &iter)) - { - gchar *s = NULL; - gtk_tree_model_get(gtk_combo_box_get_model(GTK_COMBO_BOX(widget)), &iter, 0, &s, -1); - dt_conf_set_string("</xsl:text><xsl:value-of select="name"/><xsl:text>", s); - g_free(s); - }</xsl:text> + <xsl:text> + const gchar *index = dt_bauhaus_combobox_get_data(widget); + gchar *s = g_strndup(index, strchr(index, ']') - index); + dt_conf_set_string("</xsl:text><xsl:value-of select="name"/><xsl:text>", s); + g_free(s);</xsl:text> </xsl:template> <xsl:template match="dtconfig[type='dir']" mode="change"> - <xsl:text> gchar *folder = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget)); + <xsl:text> + gchar *folder = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget)); dt_conf_set_string("</xsl:text><xsl:value-of select="name"/><xsl:text>", folder); g_free(folder);</xsl:text> </xsl:template> <!-- TAB --> <xsl:template match="dtconfig[type='longstring']" mode="tab"> - <xsl:text> GtkTextBuffer *buffer = gtk_text_buffer_new(NULL); + <xsl:text> + GtkTextBuffer *buffer = gtk_text_buffer_new(NULL); widget = gtk_text_view_new_with_buffer(buffer); - box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(box), widget, TRUE, TRUE, 0); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(widget), GTK_WRAP_WORD); gtk_text_view_set_accepts_tab(GTK_TEXT_VIEW(widget), FALSE); gtk_widget_set_halign(widget, GTK_ALIGN_FILL); @@ -691,195 +443,160 @@ g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(preferences_response_callback_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), widget); g_signal_connect(G_OBJECT(widget), "key-press-event", G_CALLBACK(handle_enter_key), NULL); snprintf(tooltip, 1024, _("double click to reset to `%s'"), "</xsl:text><xsl:value-of select="default"/><xsl:text>"); - g_object_set(labelev, "tooltip-text", tooltip, (gchar *)0); -</xsl:text> + gtk_widget_set_tooltip_text(labelev, tooltip);</xsl:text> </xsl:template> <xsl:template match="dtconfig[type='string']" mode="tab"> - <xsl:text> widget = gtk_entry_new(); - box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(box), widget, TRUE, TRUE, 0); + <xsl:text> + widget = gtk_entry_new(); gtk_widget_set_halign(widget, GTK_ALIGN_FILL); gtk_widget_set_hexpand(widget, TRUE); gchar *setting = dt_conf_get_string("</xsl:text><xsl:value-of select="name"/><xsl:text>"); gtk_entry_set_text(GTK_ENTRY(widget), setting); g_free(setting); - </xsl:text> - <xsl:text>g_signal_connect(G_OBJECT(widget), "changed", G_CALLBACK(preferences_changed_callback_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), labdef);</xsl:text> - <xsl:text> + gtk_label_set_mnemonic_widget(GTK_LABEL(label), widget); + g_signal_connect(G_OBJECT(widget), "changed", G_CALLBACK(preferences_changed_callback_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), labdef); g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(preferences_response_callback_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), widget); snprintf(tooltip, 1024, _("double click to reset to `%s'"), "</xsl:text><xsl:value-of select="default"/><xsl:text>"); - g_object_set(labelev, "tooltip-text", tooltip, (gchar *)0); -</xsl:text> + gtk_widget_set_tooltip_text(labelev, tooltip);</xsl:text> </xsl:template> <xsl:template match="dtconfig[type='dir']" mode="tab"> - <xsl:text> widget = gtk_file_chooser_button_new(_("select directory"), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER); - box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(box), widget, TRUE, TRUE, 0); + <xsl:text> + widget = gtk_file_chooser_button_new(_("select directory"), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER); gtk_file_chooser_button_set_width_chars(GTK_FILE_CHOOSER_BUTTON(widget), 20); gtk_widget_set_halign(widget, GTK_ALIGN_FILL); gtk_widget_set_hexpand(widget, TRUE); gchar *setting = dt_conf_get_string("</xsl:text><xsl:value-of select="name"/><xsl:text>"); gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(widget), setting); g_free(setting); - </xsl:text> - <xsl:text>g_signal_connect(G_OBJECT(widget), "selection-changed", G_CALLBACK(preferences_changed_callback_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), labdef);</xsl:text> - <xsl:text> + g_signal_connect(G_OBJECT(widget), "selection-changed", G_CALLBACK(preferences_changed_callback_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), labdef); g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(preferences_response_callback_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), widget); gchar *default_path = dt_conf_expand_default_dir("</xsl:text><xsl:value-of select="default"/><xsl:text>"); snprintf(tooltip, 1024, _("double click to reset to `%s'"), default_path); g_free(default_path); - g_object_set(labelev, "tooltip-text", tooltip, (gchar *)0); - </xsl:text> + gtk_widget_set_tooltip_text(labelev, tooltip);</xsl:text> </xsl:template> <xsl:template match="dtconfig[type='int']" mode="tab"> - <xsl:text> gint min = G_MININT; gint max = G_MAXINT; </xsl:text> + <xsl:text> + gint min = G_MININT; + gint max = G_MAXINT;</xsl:text> <xsl:apply-templates select="type" mode="range"/> - <xsl:text> </xsl:text><xsl:apply-templates select="type" mode="factor"/> - <xsl:text> double tmp; + <xsl:apply-templates select="type" mode="factor"/> + <xsl:text> + double tmp; tmp = min * (double)factor; min = tmp; tmp = max * (double)factor; max = tmp; widget = gtk_spin_button_new_with_range(min, max, 1); - box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(box), widget, FALSE, FALSE, 0); - gtk_widget_set_hexpand(widget, FALSE); + gtk_widget_set_halign(widget, GTK_ALIGN_START); + gtk_size_group_add_widget(widget_group, widget); gtk_spin_button_set_digits(GTK_SPIN_BUTTON(widget), 0); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), dt_conf_get_int("</xsl:text><xsl:value-of select="name"/><xsl:text>") * factor); - </xsl:text> - <xsl:text>g_signal_connect(G_OBJECT(widget), "value-changed", G_CALLBACK(preferences_changed_callback_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), labdef);</xsl:text> - <xsl:text> + g_signal_connect(G_OBJECT(widget), "value-changed", G_CALLBACK(preferences_changed_callback_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), labdef); g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(preferences_response_callback_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), widget); snprintf(tooltip, 1024, _("double click to reset to `%d'"), (int)(</xsl:text><xsl:value-of select="default"/><xsl:text> * factor)); - g_object_set(labelev, "tooltip-text", tooltip, (gchar *)0); -</xsl:text> + gtk_widget_set_tooltip_text(labelev, tooltip);</xsl:text> </xsl:template> <xsl:template match="dtconfig[type='int64']" mode="tab"> - <xsl:text> gint64 min = G_MININT64; gint64 max = G_MAXINT64; </xsl:text> + <xsl:text> + gint64 min = G_MININT64; + gint64 max = G_MAXINT64;</xsl:text> <xsl:apply-templates select="type" mode="range"/> <xsl:text> </xsl:text><xsl:apply-templates select="type" mode="factor"/> - <xsl:text> min *= factor; max *= factor; + <xsl:text> + min *= factor; max *= factor; widget = gtk_spin_button_new_with_range(min, max, 1); - box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(box), widget, FALSE, FALSE, 0); - gtk_widget_set_hexpand(widget, FALSE); + gtk_widget_set_halign(widget, GTK_ALIGN_START); + gtk_size_group_add_widget(widget_group, widget); gtk_spin_button_set_digits(GTK_SPIN_BUTTON(widget), 0); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), dt_conf_get_int64("</xsl:text><xsl:value-of select="name"/><xsl:text>") * factor); - </xsl:text> - <xsl:text>g_signal_connect(G_OBJECT(widget), "value-changed", G_CALLBACK(preferences_changed_callback_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), labdef);</xsl:text> - <xsl:text> + g_signal_connect(G_OBJECT(widget), "value-changed", G_CALLBACK(preferences_changed_callback_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), labdef); g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(preferences_response_callback_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), widget); char value[100]; snprintf(value, 100, "%"G_GINT64_FORMAT"",(gint64)(</xsl:text><xsl:value-of select="default"/><xsl:text> * factor)); snprintf(tooltip, 1024, _("double click to reset to `%s'"), value); - g_object_set(labelev, "tooltip-text", tooltip, (gchar *)0); -</xsl:text> + gtk_widget_set_tooltip_text(labelev, tooltip);</xsl:text> </xsl:template> <xsl:template match="dtconfig[type='float']" mode="tab"> - <xsl:text> float min = -1000000000.0f; float max = 1000000000.0f; </xsl:text> + <xsl:text> + float min = -1000000000.0f; + float max = 1000000000.0f;</xsl:text> <xsl:apply-templates select="type" mode="range"/> - <xsl:text> </xsl:text><xsl:apply-templates select="type" mode="factor"/> - <xsl:text> min *= factor; max *= factor; + <xsl:apply-templates select="type" mode="factor"/> + <xsl:text> + min *= factor; max *= factor; widget = gtk_spin_button_new_with_range(min, max, 0.001f); - box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(box), widget, FALSE, FALSE, 0); - gtk_widget_set_hexpand(widget, FALSE); gtk_spin_button_set_digits(GTK_SPIN_BUTTON(widget), 5); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), dt_conf_get_float("</xsl:text><xsl:value-of select="name"/><xsl:text>") * factor); - </xsl:text> - <xsl:text>g_signal_connect(G_OBJECT(widget), "value-changed", G_CALLBACK(preferences_changed_callback_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), labdef);</xsl:text> - <xsl:text> + g_signal_connect(G_OBJECT(widget), "value-changed", G_CALLBACK(preferences_changed_callback_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), labdef); g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(preferences_response_callback_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), widget); snprintf(tooltip, 1024, _("double click to reset to `%.03f'"), </xsl:text><xsl:value-of select="default"/><xsl:text> * factor); - g_object_set(labelev, "tooltip-text", tooltip, (gchar *)0); -</xsl:text> + gtk_widget_set_tooltip_text(labelev, tooltip);</xsl:text> </xsl:template> - <xsl:template match="dtconfig[type='bool']" mode="tab"> - <xsl:text> widget = gtk_check_button_new(); - box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(box), widget, FALSE, FALSE, 0); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), dt_conf_get_bool("</xsl:text><xsl:value-of select="name"/><xsl:text>")); - </xsl:text> - <xsl:text>g_signal_connect(G_OBJECT(widget), "toggled", G_CALLBACK(preferences_changed_callback_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), labdef);</xsl:text> + <xsl:template match="dtconfig[type='bool']" mode="tab"> <xsl:text> + widget = gtk_check_button_new(); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), dt_conf_get_bool("</xsl:text><xsl:value-of select="name"/><xsl:text>")); + g_signal_connect(G_OBJECT(widget), "toggled", G_CALLBACK(preferences_changed_callback_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), labdef); g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(preferences_response_callback_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), widget); snprintf(tooltip, 1024, _("double click to reset to `%s'"), C_("preferences", "</xsl:text><xsl:value-of select="translate(default, $lowercase, $uppercase)"/><xsl:text>")); - g_object_set(labelev, "tooltip-text", tooltip, (gchar *)0); -</xsl:text> + gtk_widget_set_tooltip_text(labelev, tooltip);</xsl:text> </xsl:template> <xsl:template match="dtconfig[type/enum]" mode="tab"> - <xsl:text> GtkTreeIter iter; - GtkListStore *store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); - gchar *str = dt_conf_get_string("</xsl:text><xsl:value-of select="name"/><xsl:text>"); - gint pos = -1; -</xsl:text> + <xsl:text> + widget = dt_gui_preferences_enum(NULL, "</xsl:text><xsl:value-of select="name"/><xsl:text>");</xsl:text> <xsl:for-each select="./type/enum/option"> - <xsl:if test="@capability"> - <xsl:text>if(dt_capabilities_check("</xsl:text><xsl:value-of select="@capability"/><xsl:text>")) {</xsl:text> - </xsl:if> + <xsl:sort select="position()" order="descending"/> + <xsl:if test="@capability"> <xsl:text> - gtk_list_store_append(store, &iter); - gtk_list_store_set(store, &iter, 0, "</xsl:text><xsl:value-of select="."/><xsl:text>", 1, C_("preferences", "</xsl:text><xsl:value-of select="."/><xsl:text>"), -1); - if(pos == -1 && strcmp(str, "</xsl:text><xsl:value-of select="."/><xsl:text>") == 0) - pos = </xsl:text><xsl:value-of select="position()-1" /><xsl:text>; - </xsl:text> - <xsl:if test="@capability"> - <xsl:text>} - </xsl:text> - </xsl:if> + if(!dt_capabilities_check("</xsl:text><xsl:value-of select="@capability"/><xsl:text>")) + dt_bauhaus_combobox_remove_at(widget, </xsl:text><xsl:value-of select="last()-position()"/><xsl:text>);</xsl:text> + </xsl:if> </xsl:for-each> <xsl:text> - - g_free(str); - - widget = gtk_combo_box_new_with_model(GTK_TREE_MODEL(store)); - gtk_widget_set_hexpand(widget, FALSE); - g_object_unref(store); - GtkCellRenderer *renderer = gtk_cell_renderer_text_new(); - gtk_cell_renderer_set_padding(renderer, 0, 0); - gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(widget), renderer, TRUE); - gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(widget), renderer, "text", 1, NULL); - gtk_combo_box_set_active(GTK_COMBO_BOX(widget), pos); - box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - gtk_box_pack_start(GTK_BOX(box), widget, FALSE, FALSE, 0); - </xsl:text> - <xsl:text> g_signal_connect(G_OBJECT(widget), "changed", G_CALLBACK(preferences_changed_callback_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), labdef);</xsl:text> - <xsl:text> + gtk_widget_set_halign(widget, GTK_ALIGN_START); + gtk_size_group_add_widget(widget_group, widget); + g_signal_connect(G_OBJECT(widget), "value-changed", G_CALLBACK(preferences_changed_callback_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), labdef); g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(preferences_response_callback_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>), widget); snprintf(tooltip, 1024, _("double click to reset to `%s'"), C_("preferences", "</xsl:text><xsl:value-of select="default"/><xsl:text>")); - g_object_set(labelev, "tooltip-text", tooltip, (gchar *)0); -</xsl:text> + gtk_widget_set_tooltip_text(labelev, tooltip);</xsl:text> </xsl:template> <!-- Grab min/max from input. Is there a better way? --> <xsl:template match="type[@min and @max]" mode="range" priority="5"> - <xsl:text> min = </xsl:text><xsl:value-of select="@min"/><xsl:text>; </xsl:text> - <xsl:text> max = </xsl:text><xsl:value-of select="@max"/><xsl:text>; </xsl:text> + <xsl:text> + min = </xsl:text><xsl:value-of select="@min"/><xsl:text>; + max = </xsl:text><xsl:value-of select="@max"/><xsl:text>;</xsl:text> </xsl:template> <xsl:template match="type[@min]" mode="range" priority="3"> - <xsl:text> min = </xsl:text><xsl:value-of select="@min"/><xsl:text>; </xsl:text> + <xsl:text> + min = </xsl:text><xsl:value-of select="@min"/><xsl:text>;</xsl:text> </xsl:template> <xsl:template match="type[@max]" mode="range" priority="3"> - <xsl:text> max = </xsl:text><xsl:value-of select="@max"/><xsl:text>; </xsl:text> + <xsl:text> + max = </xsl:text><xsl:value-of select="@max"/><xsl:text>;</xsl:text> </xsl:template> <xsl:template match="type" mode="range" priority="1"> - <xsl:text> min = 0; </xsl:text> + <xsl:text> + min = 0;</xsl:text> </xsl:template> <!-- Also look for the factor used in the GUI. --> <xsl:template match="type[@factor]" mode="factor" priority="3"> - <xsl:text> float factor = </xsl:text><xsl:value-of select="@factor"/><xsl:text>; </xsl:text> + <xsl:text> + float factor = </xsl:text><xsl:value-of select="@factor"/><xsl:text>;</xsl:text> </xsl:template> <xsl:template match="type" mode="factor" priority="1"> - <xsl:text> float factor = 1.0f; </xsl:text> + <xsl:text> + float factor = 1.0f;</xsl:text> </xsl:template> diff -Nru darktable-4.4.2/tools/release/create_release.sh darktable-4.6.1/tools/release/create_release.sh --- darktable-4.4.2/tools/release/create_release.sh 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/tools/release/create_release.sh 2024-02-16 17:31:09.000000000 +0000 @@ -1,31 +1,77 @@ #!/bin/bash +function usage() +{ + echo "usage: $0 [--clang|--help]" + echo " --help : Display this help message." + echo " --clang <n> : Minimal CLang version to allow." + exit 1 +} + +CLANG_VERSION= + +OPTIONS=$(getopt -u --long clang:,help -- $0 $@) +[[ $? -eq 0 ]] || usage + +set -- $OPTIONS + +while [[ -n $1 ]]; do + case $1 in + --help) + usage + ;; + --clang) + shift + CLANG_VERSION=$1 + ;; + (--) + ;; + esac + shift +done + DT_SRC_DIR=$(dirname "$0") DT_SRC_DIR=$(cd "$DT_SRC_DIR/../../" && pwd -P) cd "$DT_SRC_DIR" || exit -git shortlog -sne release-3.1.0..HEAD +# Get base of previous release +PREV_TAG=$(git tag --sort=-creatordate | grep '[13579].0$' | head -2 | tail -1) + +git shortlog -sne $PREV_TAG..HEAD echo "are you sure these guys received proper credit in the about dialog?" -echo "HINT: $ tools/generate-authors.sh release-3.1.0 HEAD > AUTHORS" +echo "HINT: $ tools/generate-authors.sh $PREV_TAG HEAD > AUTHORS" read -r answer # prefix rc with ~, so debian thinks its less than echo "* archiving git tree" -dt_decoration=$(git describe --tags --match release-* | sed -e 's,^release-,,;s,-,+,;s,-,~,;' -e 's/rc/~rc/') +dt_decoration=$(git describe --tags --match release-* | + sed -e 's,^release-,,;s,-,+,;s,-,~,;' -e 's/rc/~rc/') + +# Hot-fix for the compiler version if necessary +if [[ -n $CLANG_VERSION ]]; then + CV=$CLANG_VERSION + sed -i "s/\(.*\"Clang\".*\)COMPILER_VERSION VERSION_LESS [0-9][0-9]/\1COMPILER_VERSION VERSION_LESS $CV/" \ + cmake/compiler-versions.cmake \ + src/external/rawspeed/cmake/compiler-versions.cmake +fi echo "* * creating root archive" -git archive --format tar HEAD --prefix=darktable-"$dt_decoration"/ -o darktable-"$dt_decoration".tar +git archive --format tar HEAD \ + --prefix=darktable-"$dt_decoration"/ \ + -o darktable-"$dt_decoration".tar echo "* * creating submodule archives" # for each of git submodules append to the root archive -git submodule foreach --recursive 'git archive --format tar --verbose --prefix="darktable-'"$dt_decoration"'/$path/" HEAD --output "'"$DT_SRC_DIR"'/darktable-sub-$sha1.tar"' +git submodule foreach \ + --recursive 'git archive --format tar --verbose --prefix="darktable-'"$dt_decoration"'/$path/" HEAD --output "'"$DT_SRC_DIR"'/darktable-sub-$sha1.tar"' if [ $(ls "$DT_SRC_DIR/darktable-sub-"*.tar | wc -l) != 0 ]; then echo "* * appending submodule archives, combining all tars" - find "$DT_SRC_DIR" -maxdepth 1 -name "darktable-sub-*.tar" -exec tar --concatenate --file "$DT_SRC_DIR/darktable-$dt_decoration.tar" {} \; + find "$DT_SRC_DIR" -maxdepth 1 -name "darktable-sub-*.tar" \ + -exec tar --concatenate --file "$DT_SRC_DIR/darktable-$dt_decoration.tar" {} \; # remove sub tars echo "* * removing all sub tars" rm -rf "$DT_SRC_DIR/darktable-sub-"*.tar @@ -33,6 +79,11 @@ echo "* * done creating archive" +if [[ -n $CLANG_VERSION ]]; then + git reset --hard + git submodule foreach git reset --hard +fi + TMPDIR=$(mktemp -d -t darktable-XXXXXX) cd "$TMPDIR" || exit @@ -40,7 +91,8 @@ # create version header for non-git tarball: echo "* creating version header" -"$DT_SRC_DIR/tools/create_version_c.sh" "darktable-$dt_decoration/src/version_gen.c" "$dt_decoration" +"$DT_SRC_DIR/tools/create_version_c.sh" \ + "darktable-$dt_decoration/src/version_gen.c" "$dt_decoration" # drop regression_tests. for internal use, and need git anyway echo "* removing tools/regression_tests" diff -Nru darktable-4.4.2/tools/release/generate-translation.sh darktable-4.6.1/tools/release/generate-translation.sh --- darktable-4.4.2/tools/release/generate-translation.sh 2023-07-19 07:21:40.000000000 +0000 +++ darktable-4.6.1/tools/release/generate-translation.sh 2024-02-16 17:31:09.000000000 +0000 @@ -50,14 +50,14 @@ [sk]=Slovak [sl]=Slovenian [sq]=Albanian - [sr@latin]="Serbian Latin" - [sr]="Serbian Cyrilic" + [sr@latin]="Serbian (Latin)" + [sr]="Serbian (Cyrilic)" [sv]=Swedish [th]=Thai [tr]=Turkish [uk]=Ukrainian - [zh_CN]="Chinese - China" - [zh_TW]="Chinese - Taiwan" ) + [zh_CN]="Chinese (Simplified)" + [zh_TW]="Chinese (Traditional)" )